From 3e4713c2a84b614e6f59c252c0e3be387bf16f38 Mon Sep 17 00:00:00 2001 From: flow-bot Date: Wed, 3 Jan 2024 19:33:46 +0000 Subject: [PATCH] Updates --- 404.html | 26 + CNAME | 1 + _src/cli/annotate-exports.md | 80 + _src/cli/coverage.md | 128 + _src/cli/index.md | 96 + _src/config/declarations.md | 59 + _src/config/ignore.md | 58 + _src/config/include.md | 33 + _src/config/index.md | 91 + _src/config/libs.md | 17 + _src/config/lints.md | 15 + _src/config/options.md | 630 + _src/config/untyped.md | 58 + _src/config/version.md | 31 + _src/declarations/index.md | 87 + _src/editors/emacs.md | 22 + _src/editors/index.md | 9 + _src/editors/sublime-text.md | 18 + _src/editors/vim.md | 156 + _src/editors/vscode.md | 20 + _src/editors/webstorm.md | 8 + _src/enums/defining-enums.md | 243 + _src/enums/enabling-enums.md | 57 + _src/enums/index.md | 145 + _src/enums/migrating-legacy-patterns.md | 224 + _src/enums/using-enums.md | 615 + _src/errors/index.md | 79 + _src/faq.md | 277 + _src/getting-started.md | 23 + _src/index.md | 13 + _src/install.md | 163 + _src/lang/annotation-requirement.md | 311 + _src/lang/depth-subtyping.md | 68 + _src/lang/lazy-modes.md | 67 + _src/lang/nominal-structural.md | 141 + _src/lang/refinements.md | 284 + _src/lang/subtypes.md | 148 + _src/lang/type-hierarchy.md | 122 + _src/lang/types-and-expressions.md | 101 + _src/lang/types-first.md | 254 + _src/lang/variables.md | 209 + _src/lang/variance.md | 144 + _src/lang/width-subtyping.md | 65 + _src/libdefs/creation.md | 199 + _src/libdefs/index.md | 46 + _src/linting/flowlint-comments.md | 82 + _src/linting/index.md | 80 + _src/linting/rule-reference.md | 232 + _src/react/components.md | 191 + _src/react/events.md | 68 + _src/react/hoc.md | 179 + _src/react/index.md | 33 + _src/react/multiplatform.md | 132 + _src/react/refs.md | 54 + _src/react/types.md | 308 + _src/strict/index.md | 58 + _src/tools/babel.md | 30 + _src/tools/eslint.md | 104 + _src/tools/flow-remove-types.md | 41 + _src/tools/index.md | 14 + _src/types/aliases.md | 89 + _src/types/any.md | 93 + _src/types/arrays.md | 265 + _src/types/casting.md | 148 + _src/types/classes.md | 391 + _src/types/comments.md | 115 + _src/types/conditional.md | 147 + _src/types/empty.md | 58 + _src/types/functions.md | 393 + _src/types/generators.md | 5 + _src/types/generics.md | 437 + _src/types/index.md | 42 + _src/types/indexed-access.md | 146 + _src/types/interfaces.md | 316 + _src/types/intersections.md | 247 + _src/types/literals.md | 45 + _src/types/mapped-types.md | 139 + _src/types/maybe.md | 79 + _src/types/mixed.md | 114 + _src/types/modules.md | 49 + _src/types/objects.md | 514 + _src/types/opaque-types.md | 159 + _src/types/primitives.md | 404 + _src/types/tuples.md | 259 + _src/types/type-guards.md | 222 + _src/types/typeof.md | 115 + _src/types/unions.md | 250 + _src/types/utilities.md | 771 + _src/usage.md | 88 + assets/css/styles.aaa3b687.css | 1 + ...dicon-b797181c93b3755f4fa1258a4cca14d4.ttf | Bin 0 -> 72504 bytes ...scode-ca5205105d042b2a09dc485fba0634be.gif | Bin 0 -> 676052 bytes assets/js/10.5cab9749.js | 1 + assets/js/1000.14e9de8a.js | 1 + assets/js/1049.9e530d57.js | 1 + assets/js/1065.a0dbdc0e.js | 181 + assets/js/1065.de3b9f15.js | 2 + assets/js/1065.de3b9f15.js.LICENSE.txt | 6 + assets/js/1086.14a78e6c.js | 1 + assets/js/1091.b8bfd1e4.js | 1 + assets/js/1105.80237606.js | 1 + assets/js/1109.53b35ea5.js | 1 + assets/js/1134.0924e525.js | 445 + assets/js/1134.8c5472d2.js | 2 + assets/js/1134.8c5472d2.js.LICENSE.txt | 6 + assets/js/1147.5c68f082.js | 247 + assets/js/1147.9c78ae5a.js | 2 + assets/js/1147.9c78ae5a.js.LICENSE.txt | 6 + assets/js/1151.03a36ca2.js | 1 + assets/js/1156.13b411ab.js | 1370 + assets/js/1156.414b1ab6.js | 2 + assets/js/1156.414b1ab6.js.LICENSE.txt | 6 + assets/js/1209.76276011.js | 1 + assets/js/1217.6123c62f.js | 1 + assets/js/1259.b4096c55.js | 317 + assets/js/1259.ec012273.js | 2 + assets/js/1259.ec012273.js.LICENSE.txt | 6 + assets/js/1313.d10cc958.js | 1 + assets/js/1345.d7ea927e.js | 1 + assets/js/1448.3246558a.js | 2 + assets/js/1448.3246558a.js.LICENSE.txt | 6 + assets/js/1448.ee78432f.js | 187 + assets/js/1466.b69bd1b6.js | 1 + assets/js/1471.0d410d50.js | 2 + assets/js/1471.0d410d50.js.LICENSE.txt | 6 + assets/js/1471.f4935752.js | 93 + assets/js/1540.23466b6d.js | 1 + assets/js/1661.a4318a63.js | 1 + assets/js/168.4084be54.js | 1 + assets/js/1706.b21a58bf.js | 1 + assets/js/180.49ffb9d3.js | 372 + assets/js/180.f35ada22.js | 2 + assets/js/180.f35ada22.js.LICENSE.txt | 6 + assets/js/1848.6e365ebf.js | 1 + assets/js/1886.3930b16b.js | 575 + assets/js/1886.622d7f2a.js | 2 + assets/js/1886.622d7f2a.js.LICENSE.txt | 6 + assets/js/1908.2c382ba8.js | 1 + assets/js/1930.0b17c84b.js | 1 + assets/js/1958.d7cfea40.js | 1 + assets/js/1960.8eff0e2c.js | 406 + assets/js/1960.e580ef88.js | 2 + assets/js/1960.e580ef88.js.LICENSE.txt | 6 + assets/js/1961.00730df4.js | 894 + assets/js/1961.6af70c85.js | 2 + assets/js/1961.6af70c85.js.LICENSE.txt | 6 + assets/js/1984.9797305a.js | 1 + assets/js/1992.689143a6.js | 1 + assets/js/2040.39c04ae1.js | 1 + assets/js/2060.1ce6877c.js | 2 + assets/js/2060.1ce6877c.js.LICENSE.txt | 6 + assets/js/2060.b7f8986c.js | 133 + assets/js/2075.42cb52d9.js | 2 + assets/js/2075.42cb52d9.js.LICENSE.txt | 6 + assets/js/2075.50b99f89.js | 203 + assets/js/2108.c89cbfba.js | 1 + assets/js/2140.0307ae92.js | 2 + assets/js/2140.0307ae92.js.LICENSE.txt | 6 + assets/js/2140.45018a21.js | 264 + assets/js/2160.b1954ec2.js | 1 + assets/js/2175.a467d67a.js | 1 + assets/js/2240.a40b3926.js | 2 + assets/js/2240.a40b3926.js.LICENSE.txt | 6 + assets/js/2240.f7ab52d2.js | 486 + assets/js/2259.ff9afb23.js | 1 + assets/js/2378.08f000fc.js | 1 + assets/js/2394.d9de10ba.js | 1 + assets/js/249.b447d2e4.js | 2 + assets/js/249.b447d2e4.js.LICENSE.txt | 6 + assets/js/249.e91386e0.js | 227 + assets/js/2490.26bb2f27.js | 1 + assets/js/2524.7afc641b.js | 1 + assets/js/2554.0673177f.js | 1 + assets/js/2565.75cc8af7.js | 1 + assets/js/2571.8753aa09.js | 313 + assets/js/2571.e348d774.js | 2 + assets/js/2571.e348d774.js.LICENSE.txt | 6 + assets/js/2601.785852cd.js | 1 + assets/js/2625.8dd63d43.js | 1 + assets/js/2638.edecc05b.js | 1 + assets/js/2657.35cf273e.js | 1 + assets/js/2798.15e85de8.js | 87 + assets/js/2798.58a5b297.js | 1 + assets/js/2814.5021f04e.js | 2 + assets/js/2814.5021f04e.js.LICENSE.txt | 6 + assets/js/2814.f576c6ab.js | 473 + assets/js/2837.c1fc15db.js | 1 + assets/js/2860.ccd1e606.js | 1 + assets/js/287.79aaf96f.js | 1 + assets/js/2886.f51502cb.js | 1 + assets/js/2892.f3674e45.js | 412 + assets/js/2892.fda2dc1b.js | 2 + assets/js/2892.fda2dc1b.js.LICENSE.txt | 6 + assets/js/2911.74ecabdf.js | 334 + assets/js/2911.c5e65e38.js | 2 + assets/js/2911.c5e65e38.js.LICENSE.txt | 10 + assets/js/2954.39c6182a.js | 2 + assets/js/2954.39c6182a.js.LICENSE.txt | 6 + assets/js/2954.c3c96925.js | 221 + assets/js/2955.f3b20e35.js | 2 + assets/js/2955.f3b20e35.js.LICENSE.txt | 8 + assets/js/2974.5a120feb.js | 1 + assets/js/2975.1a577c1a.js | 1 + assets/js/3031.07faec4d.js | 1 + assets/js/3036.2817380a.js | 773 + assets/js/3036.cbfd34be.js | 2 + assets/js/3036.cbfd34be.js.LICENSE.txt | 6 + assets/js/3103.d424af1a.js | 1 + assets/js/3169.75d3a922.js | 1 + assets/js/3175.4623d4bd.js | 1 + assets/js/3271.c17eb19a.js | 1 + assets/js/3292.37fedcae.js | 1 + assets/js/3361.a09822ec.js | 1 + assets/js/3377.4e54056b.js | 1 + assets/js/3389.50bd094d.js | 1 + assets/js/3397.d81097d9.js | 1 + assets/js/3418.fe6aa13b.js | 1 + assets/js/3426.7a8d681d.js | 1 + assets/js/3430.3a4d3a20.js | 1 + assets/js/3470.1f5577ea.js | 1 + assets/js/3482.f5cd412a.js | 1 + assets/js/3490.7c9a646b.js | 1 + assets/js/3525.b75f8037.js | 1 + assets/js/3539.8e41f2f8.js | 1 + assets/js/3584.b7d0f7d5.js | 1 + assets/js/3585.317f86c5.js | 215 + assets/js/3585.589fa714.js | 2 + assets/js/3585.589fa714.js.LICENSE.txt | 6 + assets/js/3590.380dfa4c.js | 1 + assets/js/3619.0c068931.js | 1 + assets/js/3632.512d8b35.js | 2 + assets/js/3632.512d8b35.js.LICENSE.txt | 6 + assets/js/3632.9f3e032d.js | 196 + assets/js/3682.78f44c31.js | 2 + assets/js/3682.78f44c31.js.LICENSE.txt | 6 + assets/js/3682.ac6ff8bf.js | 150 + assets/js/3698.df8b743d.js | 1 + assets/js/3760.313a31a1.js | 441 + assets/js/3760.70ebeccd.js | 2 + assets/js/3760.70ebeccd.js.LICENSE.txt | 6 + assets/js/3769.c0a74c56.js | 1 + assets/js/3808.9cc0ee5e.js | 1 + assets/js/3818.52e10916.js | 1 + assets/js/3835.10b298c2.js | 1 + assets/js/3847.5182a5d7.js | 1 + assets/js/385.c9dbdd20.js | 1 + assets/js/3851.4a9ebda0.js | 1 + assets/js/3898.a25efbec.js | 1 + assets/js/3903.181d5c6e.js | 1 + assets/js/3905.294ba8eb.js | 1 + assets/js/3919.0d67ae42.js | 209 + assets/js/3919.4432453c.js | 2 + assets/js/3919.4432453c.js.LICENSE.txt | 6 + assets/js/3939.7eaae777.js | 1 + assets/js/3997.380b744e.js | 1 + assets/js/4028.02282914.js | 270 + assets/js/4028.c8601f49.js | 2 + assets/js/4028.c8601f49.js.LICENSE.txt | 6 + assets/js/4099.d293f4c8.js | 1 + assets/js/4129.b574e251.js | 2 + assets/js/4129.b574e251.js.LICENSE.txt | 6 + assets/js/4129.e15aae2a.js | 114 + assets/js/4132.cf0d068b.js | 1 + assets/js/4170.1dc21c14.js | 1 + assets/js/4188.752a68bf.js | 160 + assets/js/4188.c58fea82.js | 2 + assets/js/4188.c58fea82.js.LICENSE.txt | 6 + assets/js/4244.296d7732.js | 1 + assets/js/4314.ca390dec.js | 1 + assets/js/4340.d90bec6c.js | 1 + assets/js/4352.37108b95.js | 1 + assets/js/4367.f9d15811.js | 1 + assets/js/4368.6242d162.js | 2 + assets/js/4368.6242d162.js.LICENSE.txt | 6 + assets/js/4368.973542b9.js | 264 + assets/js/4370.b23daaa9.js | 1 + assets/js/4386.bfae335d.js | 338 + assets/js/4386.e5410b3b.js | 2 + assets/js/4386.e5410b3b.js.LICENSE.txt | 6 + assets/js/4392.88be3c03.js | 1 + assets/js/4397.c0bddcab.js | 1 + assets/js/4407.3aae7ab5.js | 909 + assets/js/4407.f24a98c4.js | 2 + assets/js/4407.f24a98c4.js.LICENSE.txt | 6 + assets/js/4422.1cb367d3.js | 1 + assets/js/4469.b5252e80.js | 1 + assets/js/4502.f5fec547.js | 1 + assets/js/4506.77a2991a.js | 1 + assets/js/4508.81b19c11.js | 1 + assets/js/4511.4e5e46a7.js | 1 + assets/js/4588.f2f9f239.js | 1 + assets/js/4702.38902698.js | 1 + assets/js/4721.175dbe5c.js | 1 + assets/js/4784.6b9d1e1e.js | 1 + assets/js/4840.4be9bbc8.js | 1 + assets/js/486.d9b07c81.js | 1 + assets/js/4860.a333a6da.js | 1 + assets/js/4896.a33bc4d6.js | 1 + assets/js/4902.0f5edc01.js | 2 + assets/js/4902.0f5edc01.js.LICENSE.txt | 6 + assets/js/4902.4cb4e7c1.js | 126 + assets/js/4912.6e0d306b.js | 2 + assets/js/4912.6e0d306b.js.LICENSE.txt | 6 + assets/js/4912.dea0f1b5.js | 170 + assets/js/4946.53bdd182.js | 2 + assets/js/4946.53bdd182.js.LICENSE.txt | 6 + assets/js/4946.cfe74c4b.js | 515 + assets/js/4972.a00ed942.js | 1 + assets/js/4991.033580af.js | 1 + assets/js/5062.190662bd.js | 2 + assets/js/5062.190662bd.js.LICENSE.txt | 6 + assets/js/5062.d66ce501.js | 129 + assets/js/5097.c41b7b2f.js | 1 + assets/js/5131.8b42d5f9.js | 1 + assets/js/5172.55cc621c.js | 1 + assets/js/5215.9ac72533.js | 1 + assets/js/5221.d6f374a8.js | 1 + assets/js/5237.407b1995.js | 1 + assets/js/5239.5d7ca55a.js | 1 + assets/js/525.a08afd69.js | 2 + assets/js/525.a08afd69.js.LICENSE.txt | 6 + assets/js/525.fa3dba2f.js | 261 + assets/js/5288.c576776d.js | 2051 + assets/js/5288.f6c54409.js | 2 + assets/js/5288.f6c54409.js.LICENSE.txt | 6 + assets/js/529.44b442f7.js | 1 + assets/js/5316.27fe3ba9.js | 1 + assets/js/5377.42a21e45.js | 2 + assets/js/5377.42a21e45.js.LICENSE.txt | 6 + assets/js/5377.5c0f019b.js | 2067 + assets/js/5414.65f24c3a.js | 1 + assets/js/5501.b615e78d.js | 1 + assets/js/5562.cd4ead74.js | 1 + assets/js/5593.2e65fb56.js | 2 + assets/js/5593.2e65fb56.js.LICENSE.txt | 6 + assets/js/5593.71e13596.js | 186 + assets/js/5641.2eef5e08.js | 1 + assets/js/565.69ec915e.js | 1 + assets/js/5691.cef8c333.js | 1 + assets/js/5703.e6d4941d.js | 2 + assets/js/5703.e6d4941d.js.LICENSE.txt | 6 + assets/js/5703.f7e5fae8.js | 423 + assets/js/5745.ffd36961.js | 1 + assets/js/5789.7ab12558.js | 1 + assets/js/5849.5c57243a.js | 2 + assets/js/5849.5c57243a.js.LICENSE.txt | 6 + assets/js/5849.97b6216c.js | 151 + assets/js/588.e5ea213f.js | 1 + assets/js/5880.29d24193.js | 686 + assets/js/5880.2cab3cef.js | 2 + assets/js/5880.2cab3cef.js.LICENSE.txt | 6 + assets/js/5898.367d7429.js | 1 + assets/js/5962.1b154b2a.js | 212 + assets/js/5962.cf4e9fcb.js | 2 + assets/js/5962.cf4e9fcb.js.LICENSE.txt | 6 + assets/js/5975.ba58926b.js | 1 + assets/js/6020.fd5de0c7.js | 1 + assets/js/6065.9ee332e5.js | 1 + assets/js/6081.624ea89b.js | 1 + assets/js/6082.4af8a070.js | 2 + assets/js/6082.4af8a070.js.LICENSE.txt | 6 + assets/js/6082.953833a2.js | 264 + assets/js/6094.dd70aa33.js | 1 + assets/js/6104.007d544c.js | 1 + assets/js/6136.dfc4bfad.js | 1 + assets/js/6241.2e9f5bdf.js | 2 + assets/js/6241.2e9f5bdf.js.LICENSE.txt | 6 + assets/js/6241.d8cb181b.js | 229 + assets/js/6272.f9b3cdc6.js | 1 + assets/js/6290.068917a8.js | 1 + assets/js/6316.157c4414.js | 1355 + assets/js/6316.3a9fab01.js | 1 + assets/js/6329.369e2ba8.js | 1 + assets/js/6393.7cb3deb5.js | 1 + assets/js/64.d7c257b8.js | 1 + assets/js/6423.a0154131.js | 2 + assets/js/6423.a0154131.js.LICENSE.txt | 6 + assets/js/6423.b6271fc7.js | 281 + assets/js/6424.828d0aa7.js | 2 + assets/js/6424.828d0aa7.js.LICENSE.txt | 6 + assets/js/6424.c64c6dc2.js | 544 + assets/js/6432.8f67f499.js | 1 + assets/js/6449.3e8636c3.js | 2 + assets/js/6449.3e8636c3.js.LICENSE.txt | 6 + assets/js/6449.fbe95a4a.js | 825 + assets/js/6470.33bec0d3.js | 1 + assets/js/6479.5de341cd.js | 1 + assets/js/6489.897c8385.js | 2 + assets/js/6489.897c8385.js.LICENSE.txt | 6 + assets/js/6489.c01d9090.js | 160 + assets/js/650.f276d9bc.js | 1 + assets/js/6522.00dd2490.js | 1 + assets/js/6567.031c15cf.js | 1 + assets/js/6586.89a16f93.js | 1 + assets/js/6587.11bbb595.js | 433 + assets/js/6587.1466021b.js | 2 + assets/js/6587.1466021b.js.LICENSE.txt | 6 + assets/js/6618.901a3e8a.js | 1 + assets/js/6641.0726fefc.js | 1 + assets/js/665.79c8901c.js | 2 + assets/js/665.79c8901c.js.LICENSE.txt | 6 + assets/js/665.add6e792.js | 2627 + assets/js/6686.555ef1a4.js | 1 + assets/js/6717.c41df2f5.js | 2 + assets/js/6717.c41df2f5.js.LICENSE.txt | 6 + assets/js/6717.f3c4e982.js | 358 + assets/js/6778.a7f9f534.js | 1 + assets/js/6780.e538d469.js | 1 + assets/js/6798.a0a87077.js | 1 + assets/js/6894.61d518cf.js | 2 + assets/js/6894.61d518cf.js.LICENSE.txt | 64 + assets/js/6923.4bd4b036.js | 1 + assets/js/6943.36e5dcf5.js | 1 + assets/js/6945.7839b727.js | 1 + assets/js/6956.75567b7a.js | 1 + assets/js/6990.60c608ae.js | 1 + assets/js/7043.6c28e0ba.js | 2 + assets/js/7043.6c28e0ba.js.LICENSE.txt | 6 + assets/js/7043.c99b557e.js | 240 + assets/js/7085.2da88da6.js | 1 + assets/js/7131.af65a3d6.js | 2 + assets/js/7131.af65a3d6.js.LICENSE.txt | 6 + assets/js/7131.ef199ac3.js | 134 + assets/js/7210.dccd8a9d.js | 1 + assets/js/7216.82683887.js | 1 + assets/js/728.1f188d20.js | 1 + assets/js/7287.851fbdcc.js | 2 + assets/js/7287.851fbdcc.js.LICENSE.txt | 6 + assets/js/7287.ee26e9d5.js | 290 + assets/js/7322.62a440b9.js | 1 + assets/js/7324.55dbe265.js | 1 + assets/js/7357.60f17144.js | 1 + assets/js/7454.c4cbd7ac.js | 1 + assets/js/7466.0592b0a0.js | 1 + assets/js/7473.75d32f9d.js | 1 + assets/js/7493.35ce4f7a.js | 1 + assets/js/7520.80cb00fd.js | 1 + assets/js/7521.710cbe18.js | 1 + assets/js/753.c21fceb8.js | 1 + assets/js/7550.c71fbb00.js | 1 + assets/js/7562.8aeb83c2.js | 2 + assets/js/7562.8aeb83c2.js.LICENSE.txt | 6 + assets/js/7562.f9821228.js | 252 + assets/js/7637.a10259f0.js | 2 + assets/js/7637.a10259f0.js.LICENSE.txt | 6 + assets/js/7637.aff67a32.js | 251 + assets/js/7667.b9d7153f.js | 1 + assets/js/7678.09b0f00f.js | 1 + assets/js/7724.5b44829a.js | 41607 ++++++++++++ assets/js/7724.ccc7d3de.js | 2 + assets/js/7724.ccc7d3de.js.LICENSE.txt | 9 + assets/js/7758.dda2fbc1.js | 1 + assets/js/776.52166cee.js | 1 + assets/js/7778.70985237.js | 2 + assets/js/7778.70985237.js.LICENSE.txt | 6 + assets/js/7778.ba66a016.js | 837 + assets/js/7835.3b3c09d8.js | 490 + assets/js/7835.fed695f5.js | 2 + assets/js/7835.fed695f5.js.LICENSE.txt | 6 + assets/js/7966.b4ef84f5.js | 1 + assets/js/7997.402d61b8.js | 1 + assets/js/8017.5a10ad1f.js | 1 + assets/js/8027.0a3be280.js | 1 + assets/js/8063.96e4bd2b.js | 1 + assets/js/8070.b2932ef2.js | 2 + assets/js/8070.b2932ef2.js.LICENSE.txt | 6 + assets/js/8070.e9befa07.js | 618 + assets/js/8071.e0b453f4.js | 1 + assets/js/8073.856ade5f.js | 1 + assets/js/8084.1629b62c.js | 2 + assets/js/8084.1629b62c.js.LICENSE.txt | 6 + assets/js/8084.1c54978e.js | 177 + assets/js/8118.3febc31b.js | 1 + assets/js/813.efa2999f.js | 1 + assets/js/8180.71c4e4e9.js | 563 + assets/js/8180.b2381f36.js | 2 + assets/js/8180.b2381f36.js.LICENSE.txt | 6 + assets/js/836.b690b489.js | 1 + assets/js/8396.b75cac9d.js | 1 + assets/js/8401.334d8112.js | 1130 + assets/js/8401.a31483a7.js | 1 + assets/js/8424.591b7eae.js | 342 + assets/js/8424.b47120a1.js | 2 + assets/js/8424.b47120a1.js.LICENSE.txt | 6 + assets/js/848.6ccac2fb.js | 2 + assets/js/848.6ccac2fb.js.LICENSE.txt | 6 + assets/js/848.78fe8e26.js | 1333 + assets/js/8480.07b41f57.js | 1 + assets/js/8506.dc7fd971.js | 1 + assets/js/8528.45e71d7f.js | 1 + assets/js/854.8e35156d.js | 2 + assets/js/854.8e35156d.js.LICENSE.txt | 6 + assets/js/854.9020f381.js | 213 + assets/js/8641.3df11c4b.js | 1 + assets/js/8670.266e1bf4.js | 243 + assets/js/8670.522cc23d.js | 2 + assets/js/8670.522cc23d.js.LICENSE.txt | 6 + assets/js/8712.1d41ff09.js | 1 + assets/js/8713.c204a0f9.js | 1 + assets/js/8715.172094c4.js | 2 + assets/js/8715.172094c4.js.LICENSE.txt | 6 + assets/js/8715.8b394ad8.js | 356 + assets/js/8719.644b750e.js | 2 + assets/js/8719.644b750e.js.LICENSE.txt | 6 + assets/js/8719.ec1724e6.js | 339 + assets/js/8748.af6aff9f.js | 1 + assets/js/8757.e063498f.js | 1 + assets/js/8819.8f01a10a.js | 1 + assets/js/8880.0e52c112.js | 1 + assets/js/8894.52aa9cfa.js | 1 + assets/js/8899.b1fe8204.js | 1 + assets/js/8906.90c5de7a.js | 2 + assets/js/8906.90c5de7a.js.LICENSE.txt | 6 + assets/js/8906.ef7cf848.js | 229 + assets/js/8946.a7036c9d.js | 2 + assets/js/8946.a7036c9d.js.LICENSE.txt | 6 + assets/js/8946.a960f7e2.js | 76 + assets/js/8985.e67ce2b4.js | 1 + assets/js/908.7a4eb83a.js | 1 + assets/js/911.8605976d.js | 176 + assets/js/911.cb5ea3c2.js | 2 + assets/js/911.cb5ea3c2.js.LICENSE.txt | 6 + assets/js/9172.7f698d9b.js | 2 + assets/js/9172.7f698d9b.js.LICENSE.txt | 1 + assets/js/9206.16398572.js | 1 + assets/js/9225.872a1216.js | 1 + assets/js/9277.9908b298.js | 1 + assets/js/9307.228f79a3.js | 1 + assets/js/931.d69b8a0f.js | 1 + assets/js/9337.6c20da2f.js | 1 + assets/js/9343.60b6adf7.js | 289 + assets/js/9343.bdc8d465.js | 2 + assets/js/9343.bdc8d465.js.LICENSE.txt | 6 + assets/js/9390.f01d7d65.js | 1 + assets/js/9398.016daacb.js | 396 + assets/js/9398.a4b8a2d7.js | 2 + assets/js/9398.a4b8a2d7.js.LICENSE.txt | 6 + assets/js/9400.16453223.js | 301 + assets/js/9400.1d5fbae2.js | 2 + assets/js/9400.1d5fbae2.js.LICENSE.txt | 6 + assets/js/9466.2e6a88ec.js | 1 + assets/js/9487.c37004d9.js | 7371 +++ assets/js/9487.c9fbf014.js | 1 + assets/js/9506.368ed619.js | 1 + assets/js/9537.02320fdb.js | 2 + assets/js/9537.02320fdb.js.LICENSE.txt | 6 + assets/js/9537.18e73c82.js | 207 + assets/js/9541.4560e197.js | 1 + assets/js/957.de39d01c.js | 1 + assets/js/9607.622810b9.js | 2 + assets/js/9607.622810b9.js.LICENSE.txt | 6 + assets/js/9647.b1861c7a.js | 1 + assets/js/9684.19d777f5.js | 2 + assets/js/9684.19d777f5.js.LICENSE.txt | 6 + assets/js/9684.2bbdb36e.js | 463 + assets/js/9701.b0601203.js | 1 + assets/js/972.de4b56d9.js | 1 + assets/js/9837.a4f6fb00.js | 1 + assets/js/9850.0f22bc6f.js | 1 + assets/js/9907.6f8b4686.js | 383 + assets/js/9907.ddc37b5f.js | 2 + assets/js/9907.ddc37b5f.js.LICENSE.txt | 6 + assets/js/996.a97ccabb.js | 2 + assets/js/996.a97ccabb.js.LICENSE.txt | 6 + assets/js/996.b4571109.js | 862 + assets/js/9963.4a87e5a1.js | 1 + assets/js/9993.dfbc0bca.js | 1 + assets/js/common.1e30ee28.js | 1 + assets/js/main.71ee4c5c.js | 2 + assets/js/main.71ee4c5c.js.LICENSE.txt | 63 + assets/js/runtime~main.e6de3bd4.js | 1 + blog/2015/02/18/Import-Types/index.html | 26 + blog/2015/02/18/Typecasts/index.html | 26 + blog/2015/02/20/Flow-Comments/index.html | 26 + .../03/12/Bounded-Polymorphism/index.html | 26 + blog/2015/07/03/Disjoint-Unions/index.html | 41 + blog/2015/07/29/Version-0.14.0/index.html | 26 + blog/2015/09/10/Version-0.15.0/index.html | 26 + blog/2015/09/22/Version-0.16.0/index.html | 26 + blog/2015/10/07/Version-0.17.0/index.html | 26 + blog/2015/11/09/Generators/index.html | 26 + blog/2015/12/01/Version-0.19.0/index.html | 48 + blog/2016/02/02/Version-0.21.0/index.html | 46 + .../07/01/New-Unions-Intersections/index.html | 64 + blog/2016/08/01/Windows-Support/index.html | 55 + blog/2016/10/04/Property-Variance/index.html | 77 + blog/2016/10/13/Flow-Typed/index.html | 98 + .../07/Strict-Function-Call-Arity/index.html | 68 + blog/2017/07/27/Opaque-Types/index.html | 27 + blog/2017/08/04/Linting-in-Flow/index.html | 26 + .../index.html | 28 + .../index.html | 31 + .../03/Flow-Support-in-Recompose/index.html | 29 + .../index.html | 29 + .../index.html | 27 + .../10/18/Exact-Objects-By-Default/index.html | 26 + .../index.html | 27 + .../12/13/React-Abstract-Component/index.html | 27 + .../20/Changes-to-Object-Spreads/index.html | 26 + .../index.html | 26 + .../Live-Flow-Errors-in-your-IDE/index.html | 26 + .../index.html | 26 + .../2/8/A-More-Responsive-Flow/index.html | 26 + .../4/9/Upgrading-Flow-Codebases/index.html | 26 + .../index.html | 26 + .../Improvements-to-Flow-in-2019/index.html | 26 + .../09/What-were-building-in-2020/index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../Sound-Typing-for-this-in-Flow/index.html | 26 + .../index.html | 26 + .../09/13/Introducing-Flow-Enums/index.html | 26 + .../TypeScript-Enums-vs-Flow-Enums/index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../index.html | 26 + .../01/17/Local-Type-Inference/index.html | 26 + .../index.html | 26 + .../index.html | 27 + blog/2023/04/10/Unused-Promise/index.html | 28 + .../index.html | 26 + blog/archive/index.html | 26 + blog/atom.xml | 913 + blog/index.html | 97 + blog/page/2/index.html | 26 + blog/rss.xml | 753 + cd3c4b260f85aac6f600f3c017046ef9.wasm | Bin 0 -> 471543 bytes en/docs/cli/annotate-exports/index.html | 53 + en/docs/cli/coverage/index.html | 60 + en/docs/cli/index.html | 33 + en/docs/config/declarations/index.html | 41 + en/docs/config/ignore/index.html | 36 + en/docs/config/include/index.html | 33 + en/docs/config/index.html | 38 + en/docs/config/libs/index.html | 35 + en/docs/config/lints/index.html | 27 + en/docs/config/options/index.html | 130 + en/docs/config/untyped/index.html | 39 + en/docs/config/version/index.html | 34 + en/docs/declarations/index.html | 48 + en/docs/editors/emacs/index.html | 26 + en/docs/editors/index.html | 26 + en/docs/editors/sublime-text/index.html | 26 + en/docs/editors/vim/index.html | 26 + en/docs/editors/vscode/index.html | 28 + en/docs/editors/webstorm/index.html | 26 + en/docs/enums/defining-enums/index.html | 52 + en/docs/enums/enabling-enums/index.html | 40 + en/docs/enums/index.html | 32 + .../migrating-legacy-patterns/index.html | 37 + en/docs/enums/using-enums/index.html | 53 + en/docs/errors/index.html | 32 + en/docs/faq/index.html | 51 + en/docs/getting-started/index.html | 31 + en/docs/index.html | 26 + en/docs/install/index.html | 43 + .../lang/annotation-requirement/index.html | 101 + en/docs/lang/depth-subtyping/index.html | 39 + en/docs/lang/lazy-modes/index.html | 46 + en/docs/lang/nominal-structural/index.html | 39 + en/docs/lang/refinements/index.html | 56 + en/docs/lang/subtypes/index.html | 71 + en/docs/lang/type-hierarchy/index.html | 28 + en/docs/lang/types-and-expressions/index.html | 55 + en/docs/lang/types-first/index.html | 80 + en/docs/lang/variables/index.html | 72 + en/docs/lang/variance/index.html | 63 + en/docs/lang/width-subtyping/index.html | 37 + en/docs/libdefs/creation/index.html | 70 + en/docs/libdefs/index.html | 47 + en/docs/linting/flowlint-comments/index.html | 39 + en/docs/linting/index.html | 39 + en/docs/linting/rule-reference/index.html | 48 + en/docs/react/components/index.html | 74 + en/docs/react/events/index.html | 42 + en/docs/react/hoc/index.html | 66 + en/docs/react/index.html | 35 + en/docs/react/multiplatform/index.html | 26 + en/docs/react/refs/index.html | 35 + en/docs/react/types/index.html | 92 + en/docs/strict/index.html | 27 + en/docs/tools/babel/index.html | 29 + en/docs/tools/eslint/index.html | 35 + en/docs/tools/flow-remove-types/index.html | 32 + en/docs/tools/index.html | 26 + en/docs/types/aliases/index.html | 33 + en/docs/types/any/index.html | 39 + en/docs/types/arrays/index.html | 71 + en/docs/types/casting/index.html | 51 + en/docs/types/classes/index.html | 66 + en/docs/types/comments/index.html | 39 + en/docs/types/conditional/index.html | 35 + en/docs/types/empty/index.html | 32 + en/docs/types/functions/index.html | 73 + en/docs/types/generators/index.html | 26 + en/docs/types/generics/index.html | 90 + en/docs/types/index.html | 31 + en/docs/types/indexed-access/index.html | 42 + en/docs/types/interfaces/index.html | 65 + en/docs/types/intersections/index.html | 79 + en/docs/types/literals/index.html | 32 + en/docs/types/mapped-types/index.html | 38 + en/docs/types/maybe/index.html | 35 + en/docs/types/mixed/index.html | 38 + en/docs/types/modules/index.html | 28 + en/docs/types/objects/index.html | 92 + en/docs/types/opaque-types/index.html | 42 + en/docs/types/primitives/index.html | 77 + en/docs/types/tuples/index.html | 52 + en/docs/types/type-guards/index.html | 36 + en/docs/types/typeof/index.html | 46 + en/docs/types/unions/index.html | 63 + en/docs/types/utilities/index.html | 116 + en/docs/usage/index.html | 26 + flow/master/flow.js | 52428 ++++++++++++++++ flow/master/flowlib/APACHE_LICENSE | 55 + flow/master/flowlib/bom.js | 2418 + flow/master/flowlib/core.js | 2811 + flow/master/flowlib/cssom.js | 574 + flow/master/flowlib/dom.js | 4582 ++ flow/master/flowlib/indexeddb.js | 149 + flow/master/flowlib/intl.js | 231 + flow/master/flowlib/node.js | 3374 + flow/master/flowlib/react-dom.js | 694 + flow/master/flowlib/react.js | 685 + flow/master/flowlib/serviceworkers.js | 237 + flow/master/flowlib/streams.js | 141 + flow/master/flowlib/webassembly.js | 104 + img/favicon.ico | Bin 0 -> 3626 bytes img/favicon.png | Bin 0 -> 1347 bytes img/featurette-bigger.gif | Bin 0 -> 67115 bytes img/featurette-confidently.gif | Bin 0 -> 33996 bytes img/featurette-faster.gif | Bin 0 -> 37867 bytes img/featurette-smarter.gif | Bin 0 -> 36131 bytes img/flow_for_vscode.gif | Bin 0 -> 676052 bytes img/icon-github.svg | 3 + img/icon-stackoverflow.svg | 6 + img/icon-twitter.svg | 3 + img/logo.svg | 15 + img/oss_logo.png | Bin 0 -> 4728 bytes index.html | 26 + opensearch.xml | 11 + search/index.html | 26 + sitemap.xml | 1 + try/index.html | 26 + 749 files changed, 177109 insertions(+) create mode 100644 404.html create mode 100644 CNAME create mode 100644 _src/cli/annotate-exports.md create mode 100644 _src/cli/coverage.md create mode 100644 _src/cli/index.md create mode 100644 _src/config/declarations.md create mode 100644 _src/config/ignore.md create mode 100644 _src/config/include.md create mode 100644 _src/config/index.md create mode 100644 _src/config/libs.md create mode 100644 _src/config/lints.md create mode 100644 _src/config/options.md create mode 100644 _src/config/untyped.md create mode 100644 _src/config/version.md create mode 100644 _src/declarations/index.md create mode 100644 _src/editors/emacs.md create mode 100644 _src/editors/index.md create mode 100644 _src/editors/sublime-text.md create mode 100644 _src/editors/vim.md create mode 100644 _src/editors/vscode.md create mode 100644 _src/editors/webstorm.md create mode 100644 _src/enums/defining-enums.md create mode 100644 _src/enums/enabling-enums.md create mode 100644 _src/enums/index.md create mode 100644 _src/enums/migrating-legacy-patterns.md create mode 100644 _src/enums/using-enums.md create mode 100644 _src/errors/index.md create mode 100644 _src/faq.md create mode 100644 _src/getting-started.md create mode 100644 _src/index.md create mode 100644 _src/install.md create mode 100644 _src/lang/annotation-requirement.md create mode 100644 _src/lang/depth-subtyping.md create mode 100644 _src/lang/lazy-modes.md create mode 100644 _src/lang/nominal-structural.md create mode 100644 _src/lang/refinements.md create mode 100644 _src/lang/subtypes.md create mode 100644 _src/lang/type-hierarchy.md create mode 100644 _src/lang/types-and-expressions.md create mode 100644 _src/lang/types-first.md create mode 100644 _src/lang/variables.md create mode 100644 _src/lang/variance.md create mode 100644 _src/lang/width-subtyping.md create mode 100644 _src/libdefs/creation.md create mode 100644 _src/libdefs/index.md create mode 100644 _src/linting/flowlint-comments.md create mode 100644 _src/linting/index.md create mode 100644 _src/linting/rule-reference.md create mode 100644 _src/react/components.md create mode 100644 _src/react/events.md create mode 100644 _src/react/hoc.md create mode 100644 _src/react/index.md create mode 100644 _src/react/multiplatform.md create mode 100644 _src/react/refs.md create mode 100644 _src/react/types.md create mode 100644 _src/strict/index.md create mode 100644 _src/tools/babel.md create mode 100644 _src/tools/eslint.md create mode 100644 _src/tools/flow-remove-types.md create mode 100644 _src/tools/index.md create mode 100644 _src/types/aliases.md create mode 100644 _src/types/any.md create mode 100644 _src/types/arrays.md create mode 100644 _src/types/casting.md create mode 100644 _src/types/classes.md create mode 100644 _src/types/comments.md create mode 100644 _src/types/conditional.md create mode 100644 _src/types/empty.md create mode 100644 _src/types/functions.md create mode 100644 _src/types/generators.md create mode 100644 _src/types/generics.md create mode 100644 _src/types/index.md create mode 100644 _src/types/indexed-access.md create mode 100644 _src/types/interfaces.md create mode 100644 _src/types/intersections.md create mode 100644 _src/types/literals.md create mode 100644 _src/types/mapped-types.md create mode 100644 _src/types/maybe.md create mode 100644 _src/types/mixed.md create mode 100644 _src/types/modules.md create mode 100644 _src/types/objects.md create mode 100644 _src/types/opaque-types.md create mode 100644 _src/types/primitives.md create mode 100644 _src/types/tuples.md create mode 100644 _src/types/type-guards.md create mode 100644 _src/types/typeof.md create mode 100644 _src/types/unions.md create mode 100644 _src/types/utilities.md create mode 100644 _src/usage.md create mode 100644 assets/css/styles.aaa3b687.css create mode 100644 assets/fonts/codicon-b797181c93b3755f4fa1258a4cca14d4.ttf create mode 100644 assets/images/flow_for_vscode-ca5205105d042b2a09dc485fba0634be.gif create mode 100644 assets/js/10.5cab9749.js create mode 100644 assets/js/1000.14e9de8a.js create mode 100644 assets/js/1049.9e530d57.js create mode 100644 assets/js/1065.a0dbdc0e.js create mode 100644 assets/js/1065.de3b9f15.js create mode 100644 assets/js/1065.de3b9f15.js.LICENSE.txt create mode 100644 assets/js/1086.14a78e6c.js create mode 100644 assets/js/1091.b8bfd1e4.js create mode 100644 assets/js/1105.80237606.js create mode 100644 assets/js/1109.53b35ea5.js create mode 100644 assets/js/1134.0924e525.js create mode 100644 assets/js/1134.8c5472d2.js create mode 100644 assets/js/1134.8c5472d2.js.LICENSE.txt create mode 100644 assets/js/1147.5c68f082.js create mode 100644 assets/js/1147.9c78ae5a.js create mode 100644 assets/js/1147.9c78ae5a.js.LICENSE.txt create mode 100644 assets/js/1151.03a36ca2.js create mode 100644 assets/js/1156.13b411ab.js create mode 100644 assets/js/1156.414b1ab6.js create mode 100644 assets/js/1156.414b1ab6.js.LICENSE.txt create mode 100644 assets/js/1209.76276011.js create mode 100644 assets/js/1217.6123c62f.js create mode 100644 assets/js/1259.b4096c55.js create mode 100644 assets/js/1259.ec012273.js create mode 100644 assets/js/1259.ec012273.js.LICENSE.txt create mode 100644 assets/js/1313.d10cc958.js create mode 100644 assets/js/1345.d7ea927e.js create mode 100644 assets/js/1448.3246558a.js create mode 100644 assets/js/1448.3246558a.js.LICENSE.txt create mode 100644 assets/js/1448.ee78432f.js create mode 100644 assets/js/1466.b69bd1b6.js create mode 100644 assets/js/1471.0d410d50.js create mode 100644 assets/js/1471.0d410d50.js.LICENSE.txt create mode 100644 assets/js/1471.f4935752.js create mode 100644 assets/js/1540.23466b6d.js create mode 100644 assets/js/1661.a4318a63.js create mode 100644 assets/js/168.4084be54.js create mode 100644 assets/js/1706.b21a58bf.js create mode 100644 assets/js/180.49ffb9d3.js create mode 100644 assets/js/180.f35ada22.js create mode 100644 assets/js/180.f35ada22.js.LICENSE.txt create mode 100644 assets/js/1848.6e365ebf.js create mode 100644 assets/js/1886.3930b16b.js create mode 100644 assets/js/1886.622d7f2a.js create mode 100644 assets/js/1886.622d7f2a.js.LICENSE.txt create mode 100644 assets/js/1908.2c382ba8.js create mode 100644 assets/js/1930.0b17c84b.js create mode 100644 assets/js/1958.d7cfea40.js create mode 100644 assets/js/1960.8eff0e2c.js create mode 100644 assets/js/1960.e580ef88.js create mode 100644 assets/js/1960.e580ef88.js.LICENSE.txt create mode 100644 assets/js/1961.00730df4.js create mode 100644 assets/js/1961.6af70c85.js create mode 100644 assets/js/1961.6af70c85.js.LICENSE.txt create mode 100644 assets/js/1984.9797305a.js create mode 100644 assets/js/1992.689143a6.js create mode 100644 assets/js/2040.39c04ae1.js create mode 100644 assets/js/2060.1ce6877c.js create mode 100644 assets/js/2060.1ce6877c.js.LICENSE.txt create mode 100644 assets/js/2060.b7f8986c.js create mode 100644 assets/js/2075.42cb52d9.js create mode 100644 assets/js/2075.42cb52d9.js.LICENSE.txt create mode 100644 assets/js/2075.50b99f89.js create mode 100644 assets/js/2108.c89cbfba.js create mode 100644 assets/js/2140.0307ae92.js create mode 100644 assets/js/2140.0307ae92.js.LICENSE.txt create mode 100644 assets/js/2140.45018a21.js create mode 100644 assets/js/2160.b1954ec2.js create mode 100644 assets/js/2175.a467d67a.js create mode 100644 assets/js/2240.a40b3926.js create mode 100644 assets/js/2240.a40b3926.js.LICENSE.txt create mode 100644 assets/js/2240.f7ab52d2.js create mode 100644 assets/js/2259.ff9afb23.js create mode 100644 assets/js/2378.08f000fc.js create mode 100644 assets/js/2394.d9de10ba.js create mode 100644 assets/js/249.b447d2e4.js create mode 100644 assets/js/249.b447d2e4.js.LICENSE.txt create mode 100644 assets/js/249.e91386e0.js create mode 100644 assets/js/2490.26bb2f27.js create mode 100644 assets/js/2524.7afc641b.js create mode 100644 assets/js/2554.0673177f.js create mode 100644 assets/js/2565.75cc8af7.js create mode 100644 assets/js/2571.8753aa09.js create mode 100644 assets/js/2571.e348d774.js create mode 100644 assets/js/2571.e348d774.js.LICENSE.txt create mode 100644 assets/js/2601.785852cd.js create mode 100644 assets/js/2625.8dd63d43.js create mode 100644 assets/js/2638.edecc05b.js create mode 100644 assets/js/2657.35cf273e.js create mode 100644 assets/js/2798.15e85de8.js create mode 100644 assets/js/2798.58a5b297.js create mode 100644 assets/js/2814.5021f04e.js create mode 100644 assets/js/2814.5021f04e.js.LICENSE.txt create mode 100644 assets/js/2814.f576c6ab.js create mode 100644 assets/js/2837.c1fc15db.js create mode 100644 assets/js/2860.ccd1e606.js create mode 100644 assets/js/287.79aaf96f.js create mode 100644 assets/js/2886.f51502cb.js create mode 100644 assets/js/2892.f3674e45.js create mode 100644 assets/js/2892.fda2dc1b.js create mode 100644 assets/js/2892.fda2dc1b.js.LICENSE.txt create mode 100644 assets/js/2911.74ecabdf.js create mode 100644 assets/js/2911.c5e65e38.js create mode 100644 assets/js/2911.c5e65e38.js.LICENSE.txt create mode 100644 assets/js/2954.39c6182a.js create mode 100644 assets/js/2954.39c6182a.js.LICENSE.txt create mode 100644 assets/js/2954.c3c96925.js create mode 100644 assets/js/2955.f3b20e35.js create mode 100644 assets/js/2955.f3b20e35.js.LICENSE.txt create mode 100644 assets/js/2974.5a120feb.js create mode 100644 assets/js/2975.1a577c1a.js create mode 100644 assets/js/3031.07faec4d.js create mode 100644 assets/js/3036.2817380a.js create mode 100644 assets/js/3036.cbfd34be.js create mode 100644 assets/js/3036.cbfd34be.js.LICENSE.txt create mode 100644 assets/js/3103.d424af1a.js create mode 100644 assets/js/3169.75d3a922.js create mode 100644 assets/js/3175.4623d4bd.js create mode 100644 assets/js/3271.c17eb19a.js create mode 100644 assets/js/3292.37fedcae.js create mode 100644 assets/js/3361.a09822ec.js create mode 100644 assets/js/3377.4e54056b.js create mode 100644 assets/js/3389.50bd094d.js create mode 100644 assets/js/3397.d81097d9.js create mode 100644 assets/js/3418.fe6aa13b.js create mode 100644 assets/js/3426.7a8d681d.js create mode 100644 assets/js/3430.3a4d3a20.js create mode 100644 assets/js/3470.1f5577ea.js create mode 100644 assets/js/3482.f5cd412a.js create mode 100644 assets/js/3490.7c9a646b.js create mode 100644 assets/js/3525.b75f8037.js create mode 100644 assets/js/3539.8e41f2f8.js create mode 100644 assets/js/3584.b7d0f7d5.js create mode 100644 assets/js/3585.317f86c5.js create mode 100644 assets/js/3585.589fa714.js create mode 100644 assets/js/3585.589fa714.js.LICENSE.txt create mode 100644 assets/js/3590.380dfa4c.js create mode 100644 assets/js/3619.0c068931.js create mode 100644 assets/js/3632.512d8b35.js create mode 100644 assets/js/3632.512d8b35.js.LICENSE.txt create mode 100644 assets/js/3632.9f3e032d.js create mode 100644 assets/js/3682.78f44c31.js create mode 100644 assets/js/3682.78f44c31.js.LICENSE.txt create mode 100644 assets/js/3682.ac6ff8bf.js create mode 100644 assets/js/3698.df8b743d.js create mode 100644 assets/js/3760.313a31a1.js create mode 100644 assets/js/3760.70ebeccd.js create mode 100644 assets/js/3760.70ebeccd.js.LICENSE.txt create mode 100644 assets/js/3769.c0a74c56.js create mode 100644 assets/js/3808.9cc0ee5e.js create mode 100644 assets/js/3818.52e10916.js create mode 100644 assets/js/3835.10b298c2.js create mode 100644 assets/js/3847.5182a5d7.js create mode 100644 assets/js/385.c9dbdd20.js create mode 100644 assets/js/3851.4a9ebda0.js create mode 100644 assets/js/3898.a25efbec.js create mode 100644 assets/js/3903.181d5c6e.js create mode 100644 assets/js/3905.294ba8eb.js create mode 100644 assets/js/3919.0d67ae42.js create mode 100644 assets/js/3919.4432453c.js create mode 100644 assets/js/3919.4432453c.js.LICENSE.txt create mode 100644 assets/js/3939.7eaae777.js create mode 100644 assets/js/3997.380b744e.js create mode 100644 assets/js/4028.02282914.js create mode 100644 assets/js/4028.c8601f49.js create mode 100644 assets/js/4028.c8601f49.js.LICENSE.txt create mode 100644 assets/js/4099.d293f4c8.js create mode 100644 assets/js/4129.b574e251.js create mode 100644 assets/js/4129.b574e251.js.LICENSE.txt create mode 100644 assets/js/4129.e15aae2a.js create mode 100644 assets/js/4132.cf0d068b.js create mode 100644 assets/js/4170.1dc21c14.js create mode 100644 assets/js/4188.752a68bf.js create mode 100644 assets/js/4188.c58fea82.js create mode 100644 assets/js/4188.c58fea82.js.LICENSE.txt create mode 100644 assets/js/4244.296d7732.js create mode 100644 assets/js/4314.ca390dec.js create mode 100644 assets/js/4340.d90bec6c.js create mode 100644 assets/js/4352.37108b95.js create mode 100644 assets/js/4367.f9d15811.js create mode 100644 assets/js/4368.6242d162.js create mode 100644 assets/js/4368.6242d162.js.LICENSE.txt create mode 100644 assets/js/4368.973542b9.js create mode 100644 assets/js/4370.b23daaa9.js create mode 100644 assets/js/4386.bfae335d.js create mode 100644 assets/js/4386.e5410b3b.js create mode 100644 assets/js/4386.e5410b3b.js.LICENSE.txt create mode 100644 assets/js/4392.88be3c03.js create mode 100644 assets/js/4397.c0bddcab.js create mode 100644 assets/js/4407.3aae7ab5.js create mode 100644 assets/js/4407.f24a98c4.js create mode 100644 assets/js/4407.f24a98c4.js.LICENSE.txt create mode 100644 assets/js/4422.1cb367d3.js create mode 100644 assets/js/4469.b5252e80.js create mode 100644 assets/js/4502.f5fec547.js create mode 100644 assets/js/4506.77a2991a.js create mode 100644 assets/js/4508.81b19c11.js create mode 100644 assets/js/4511.4e5e46a7.js create mode 100644 assets/js/4588.f2f9f239.js create mode 100644 assets/js/4702.38902698.js create mode 100644 assets/js/4721.175dbe5c.js create mode 100644 assets/js/4784.6b9d1e1e.js create mode 100644 assets/js/4840.4be9bbc8.js create mode 100644 assets/js/486.d9b07c81.js create mode 100644 assets/js/4860.a333a6da.js create mode 100644 assets/js/4896.a33bc4d6.js create mode 100644 assets/js/4902.0f5edc01.js create mode 100644 assets/js/4902.0f5edc01.js.LICENSE.txt create mode 100644 assets/js/4902.4cb4e7c1.js create mode 100644 assets/js/4912.6e0d306b.js create mode 100644 assets/js/4912.6e0d306b.js.LICENSE.txt create mode 100644 assets/js/4912.dea0f1b5.js create mode 100644 assets/js/4946.53bdd182.js create mode 100644 assets/js/4946.53bdd182.js.LICENSE.txt create mode 100644 assets/js/4946.cfe74c4b.js create mode 100644 assets/js/4972.a00ed942.js create mode 100644 assets/js/4991.033580af.js create mode 100644 assets/js/5062.190662bd.js create mode 100644 assets/js/5062.190662bd.js.LICENSE.txt create mode 100644 assets/js/5062.d66ce501.js create mode 100644 assets/js/5097.c41b7b2f.js create mode 100644 assets/js/5131.8b42d5f9.js create mode 100644 assets/js/5172.55cc621c.js create mode 100644 assets/js/5215.9ac72533.js create mode 100644 assets/js/5221.d6f374a8.js create mode 100644 assets/js/5237.407b1995.js create mode 100644 assets/js/5239.5d7ca55a.js create mode 100644 assets/js/525.a08afd69.js create mode 100644 assets/js/525.a08afd69.js.LICENSE.txt create mode 100644 assets/js/525.fa3dba2f.js create mode 100644 assets/js/5288.c576776d.js create mode 100644 assets/js/5288.f6c54409.js create mode 100644 assets/js/5288.f6c54409.js.LICENSE.txt create mode 100644 assets/js/529.44b442f7.js create mode 100644 assets/js/5316.27fe3ba9.js create mode 100644 assets/js/5377.42a21e45.js create mode 100644 assets/js/5377.42a21e45.js.LICENSE.txt create mode 100644 assets/js/5377.5c0f019b.js create mode 100644 assets/js/5414.65f24c3a.js create mode 100644 assets/js/5501.b615e78d.js create mode 100644 assets/js/5562.cd4ead74.js create mode 100644 assets/js/5593.2e65fb56.js create mode 100644 assets/js/5593.2e65fb56.js.LICENSE.txt create mode 100644 assets/js/5593.71e13596.js create mode 100644 assets/js/5641.2eef5e08.js create mode 100644 assets/js/565.69ec915e.js create mode 100644 assets/js/5691.cef8c333.js create mode 100644 assets/js/5703.e6d4941d.js create mode 100644 assets/js/5703.e6d4941d.js.LICENSE.txt create mode 100644 assets/js/5703.f7e5fae8.js create mode 100644 assets/js/5745.ffd36961.js create mode 100644 assets/js/5789.7ab12558.js create mode 100644 assets/js/5849.5c57243a.js create mode 100644 assets/js/5849.5c57243a.js.LICENSE.txt create mode 100644 assets/js/5849.97b6216c.js create mode 100644 assets/js/588.e5ea213f.js create mode 100644 assets/js/5880.29d24193.js create mode 100644 assets/js/5880.2cab3cef.js create mode 100644 assets/js/5880.2cab3cef.js.LICENSE.txt create mode 100644 assets/js/5898.367d7429.js create mode 100644 assets/js/5962.1b154b2a.js create mode 100644 assets/js/5962.cf4e9fcb.js create mode 100644 assets/js/5962.cf4e9fcb.js.LICENSE.txt create mode 100644 assets/js/5975.ba58926b.js create mode 100644 assets/js/6020.fd5de0c7.js create mode 100644 assets/js/6065.9ee332e5.js create mode 100644 assets/js/6081.624ea89b.js create mode 100644 assets/js/6082.4af8a070.js create mode 100644 assets/js/6082.4af8a070.js.LICENSE.txt create mode 100644 assets/js/6082.953833a2.js create mode 100644 assets/js/6094.dd70aa33.js create mode 100644 assets/js/6104.007d544c.js create mode 100644 assets/js/6136.dfc4bfad.js create mode 100644 assets/js/6241.2e9f5bdf.js create mode 100644 assets/js/6241.2e9f5bdf.js.LICENSE.txt create mode 100644 assets/js/6241.d8cb181b.js create mode 100644 assets/js/6272.f9b3cdc6.js create mode 100644 assets/js/6290.068917a8.js create mode 100644 assets/js/6316.157c4414.js create mode 100644 assets/js/6316.3a9fab01.js create mode 100644 assets/js/6329.369e2ba8.js create mode 100644 assets/js/6393.7cb3deb5.js create mode 100644 assets/js/64.d7c257b8.js create mode 100644 assets/js/6423.a0154131.js create mode 100644 assets/js/6423.a0154131.js.LICENSE.txt create mode 100644 assets/js/6423.b6271fc7.js create mode 100644 assets/js/6424.828d0aa7.js create mode 100644 assets/js/6424.828d0aa7.js.LICENSE.txt create mode 100644 assets/js/6424.c64c6dc2.js create mode 100644 assets/js/6432.8f67f499.js create mode 100644 assets/js/6449.3e8636c3.js create mode 100644 assets/js/6449.3e8636c3.js.LICENSE.txt create mode 100644 assets/js/6449.fbe95a4a.js create mode 100644 assets/js/6470.33bec0d3.js create mode 100644 assets/js/6479.5de341cd.js create mode 100644 assets/js/6489.897c8385.js create mode 100644 assets/js/6489.897c8385.js.LICENSE.txt create mode 100644 assets/js/6489.c01d9090.js create mode 100644 assets/js/650.f276d9bc.js create mode 100644 assets/js/6522.00dd2490.js create mode 100644 assets/js/6567.031c15cf.js create mode 100644 assets/js/6586.89a16f93.js create mode 100644 assets/js/6587.11bbb595.js create mode 100644 assets/js/6587.1466021b.js create mode 100644 assets/js/6587.1466021b.js.LICENSE.txt create mode 100644 assets/js/6618.901a3e8a.js create mode 100644 assets/js/6641.0726fefc.js create mode 100644 assets/js/665.79c8901c.js create mode 100644 assets/js/665.79c8901c.js.LICENSE.txt create mode 100644 assets/js/665.add6e792.js create mode 100644 assets/js/6686.555ef1a4.js create mode 100644 assets/js/6717.c41df2f5.js create mode 100644 assets/js/6717.c41df2f5.js.LICENSE.txt create mode 100644 assets/js/6717.f3c4e982.js create mode 100644 assets/js/6778.a7f9f534.js create mode 100644 assets/js/6780.e538d469.js create mode 100644 assets/js/6798.a0a87077.js create mode 100644 assets/js/6894.61d518cf.js create mode 100644 assets/js/6894.61d518cf.js.LICENSE.txt create mode 100644 assets/js/6923.4bd4b036.js create mode 100644 assets/js/6943.36e5dcf5.js create mode 100644 assets/js/6945.7839b727.js create mode 100644 assets/js/6956.75567b7a.js create mode 100644 assets/js/6990.60c608ae.js create mode 100644 assets/js/7043.6c28e0ba.js create mode 100644 assets/js/7043.6c28e0ba.js.LICENSE.txt create mode 100644 assets/js/7043.c99b557e.js create mode 100644 assets/js/7085.2da88da6.js create mode 100644 assets/js/7131.af65a3d6.js create mode 100644 assets/js/7131.af65a3d6.js.LICENSE.txt create mode 100644 assets/js/7131.ef199ac3.js create mode 100644 assets/js/7210.dccd8a9d.js create mode 100644 assets/js/7216.82683887.js create mode 100644 assets/js/728.1f188d20.js create mode 100644 assets/js/7287.851fbdcc.js create mode 100644 assets/js/7287.851fbdcc.js.LICENSE.txt create mode 100644 assets/js/7287.ee26e9d5.js create mode 100644 assets/js/7322.62a440b9.js create mode 100644 assets/js/7324.55dbe265.js create mode 100644 assets/js/7357.60f17144.js create mode 100644 assets/js/7454.c4cbd7ac.js create mode 100644 assets/js/7466.0592b0a0.js create mode 100644 assets/js/7473.75d32f9d.js create mode 100644 assets/js/7493.35ce4f7a.js create mode 100644 assets/js/7520.80cb00fd.js create mode 100644 assets/js/7521.710cbe18.js create mode 100644 assets/js/753.c21fceb8.js create mode 100644 assets/js/7550.c71fbb00.js create mode 100644 assets/js/7562.8aeb83c2.js create mode 100644 assets/js/7562.8aeb83c2.js.LICENSE.txt create mode 100644 assets/js/7562.f9821228.js create mode 100644 assets/js/7637.a10259f0.js create mode 100644 assets/js/7637.a10259f0.js.LICENSE.txt create mode 100644 assets/js/7637.aff67a32.js create mode 100644 assets/js/7667.b9d7153f.js create mode 100644 assets/js/7678.09b0f00f.js create mode 100644 assets/js/7724.5b44829a.js create mode 100644 assets/js/7724.ccc7d3de.js create mode 100644 assets/js/7724.ccc7d3de.js.LICENSE.txt create mode 100644 assets/js/7758.dda2fbc1.js create mode 100644 assets/js/776.52166cee.js create mode 100644 assets/js/7778.70985237.js create mode 100644 assets/js/7778.70985237.js.LICENSE.txt create mode 100644 assets/js/7778.ba66a016.js create mode 100644 assets/js/7835.3b3c09d8.js create mode 100644 assets/js/7835.fed695f5.js create mode 100644 assets/js/7835.fed695f5.js.LICENSE.txt create mode 100644 assets/js/7966.b4ef84f5.js create mode 100644 assets/js/7997.402d61b8.js create mode 100644 assets/js/8017.5a10ad1f.js create mode 100644 assets/js/8027.0a3be280.js create mode 100644 assets/js/8063.96e4bd2b.js create mode 100644 assets/js/8070.b2932ef2.js create mode 100644 assets/js/8070.b2932ef2.js.LICENSE.txt create mode 100644 assets/js/8070.e9befa07.js create mode 100644 assets/js/8071.e0b453f4.js create mode 100644 assets/js/8073.856ade5f.js create mode 100644 assets/js/8084.1629b62c.js create mode 100644 assets/js/8084.1629b62c.js.LICENSE.txt create mode 100644 assets/js/8084.1c54978e.js create mode 100644 assets/js/8118.3febc31b.js create mode 100644 assets/js/813.efa2999f.js create mode 100644 assets/js/8180.71c4e4e9.js create mode 100644 assets/js/8180.b2381f36.js create mode 100644 assets/js/8180.b2381f36.js.LICENSE.txt create mode 100644 assets/js/836.b690b489.js create mode 100644 assets/js/8396.b75cac9d.js create mode 100644 assets/js/8401.334d8112.js create mode 100644 assets/js/8401.a31483a7.js create mode 100644 assets/js/8424.591b7eae.js create mode 100644 assets/js/8424.b47120a1.js create mode 100644 assets/js/8424.b47120a1.js.LICENSE.txt create mode 100644 assets/js/848.6ccac2fb.js create mode 100644 assets/js/848.6ccac2fb.js.LICENSE.txt create mode 100644 assets/js/848.78fe8e26.js create mode 100644 assets/js/8480.07b41f57.js create mode 100644 assets/js/8506.dc7fd971.js create mode 100644 assets/js/8528.45e71d7f.js create mode 100644 assets/js/854.8e35156d.js create mode 100644 assets/js/854.8e35156d.js.LICENSE.txt create mode 100644 assets/js/854.9020f381.js create mode 100644 assets/js/8641.3df11c4b.js create mode 100644 assets/js/8670.266e1bf4.js create mode 100644 assets/js/8670.522cc23d.js create mode 100644 assets/js/8670.522cc23d.js.LICENSE.txt create mode 100644 assets/js/8712.1d41ff09.js create mode 100644 assets/js/8713.c204a0f9.js create mode 100644 assets/js/8715.172094c4.js create mode 100644 assets/js/8715.172094c4.js.LICENSE.txt create mode 100644 assets/js/8715.8b394ad8.js create mode 100644 assets/js/8719.644b750e.js create mode 100644 assets/js/8719.644b750e.js.LICENSE.txt create mode 100644 assets/js/8719.ec1724e6.js create mode 100644 assets/js/8748.af6aff9f.js create mode 100644 assets/js/8757.e063498f.js create mode 100644 assets/js/8819.8f01a10a.js create mode 100644 assets/js/8880.0e52c112.js create mode 100644 assets/js/8894.52aa9cfa.js create mode 100644 assets/js/8899.b1fe8204.js create mode 100644 assets/js/8906.90c5de7a.js create mode 100644 assets/js/8906.90c5de7a.js.LICENSE.txt create mode 100644 assets/js/8906.ef7cf848.js create mode 100644 assets/js/8946.a7036c9d.js create mode 100644 assets/js/8946.a7036c9d.js.LICENSE.txt create mode 100644 assets/js/8946.a960f7e2.js create mode 100644 assets/js/8985.e67ce2b4.js create mode 100644 assets/js/908.7a4eb83a.js create mode 100644 assets/js/911.8605976d.js create mode 100644 assets/js/911.cb5ea3c2.js create mode 100644 assets/js/911.cb5ea3c2.js.LICENSE.txt create mode 100644 assets/js/9172.7f698d9b.js create mode 100644 assets/js/9172.7f698d9b.js.LICENSE.txt create mode 100644 assets/js/9206.16398572.js create mode 100644 assets/js/9225.872a1216.js create mode 100644 assets/js/9277.9908b298.js create mode 100644 assets/js/9307.228f79a3.js create mode 100644 assets/js/931.d69b8a0f.js create mode 100644 assets/js/9337.6c20da2f.js create mode 100644 assets/js/9343.60b6adf7.js create mode 100644 assets/js/9343.bdc8d465.js create mode 100644 assets/js/9343.bdc8d465.js.LICENSE.txt create mode 100644 assets/js/9390.f01d7d65.js create mode 100644 assets/js/9398.016daacb.js create mode 100644 assets/js/9398.a4b8a2d7.js create mode 100644 assets/js/9398.a4b8a2d7.js.LICENSE.txt create mode 100644 assets/js/9400.16453223.js create mode 100644 assets/js/9400.1d5fbae2.js create mode 100644 assets/js/9400.1d5fbae2.js.LICENSE.txt create mode 100644 assets/js/9466.2e6a88ec.js create mode 100644 assets/js/9487.c37004d9.js create mode 100644 assets/js/9487.c9fbf014.js create mode 100644 assets/js/9506.368ed619.js create mode 100644 assets/js/9537.02320fdb.js create mode 100644 assets/js/9537.02320fdb.js.LICENSE.txt create mode 100644 assets/js/9537.18e73c82.js create mode 100644 assets/js/9541.4560e197.js create mode 100644 assets/js/957.de39d01c.js create mode 100644 assets/js/9607.622810b9.js create mode 100644 assets/js/9607.622810b9.js.LICENSE.txt create mode 100644 assets/js/9647.b1861c7a.js create mode 100644 assets/js/9684.19d777f5.js create mode 100644 assets/js/9684.19d777f5.js.LICENSE.txt create mode 100644 assets/js/9684.2bbdb36e.js create mode 100644 assets/js/9701.b0601203.js create mode 100644 assets/js/972.de4b56d9.js create mode 100644 assets/js/9837.a4f6fb00.js create mode 100644 assets/js/9850.0f22bc6f.js create mode 100644 assets/js/9907.6f8b4686.js create mode 100644 assets/js/9907.ddc37b5f.js create mode 100644 assets/js/9907.ddc37b5f.js.LICENSE.txt create mode 100644 assets/js/996.a97ccabb.js create mode 100644 assets/js/996.a97ccabb.js.LICENSE.txt create mode 100644 assets/js/996.b4571109.js create mode 100644 assets/js/9963.4a87e5a1.js create mode 100644 assets/js/9993.dfbc0bca.js create mode 100644 assets/js/common.1e30ee28.js create mode 100644 assets/js/main.71ee4c5c.js create mode 100644 assets/js/main.71ee4c5c.js.LICENSE.txt create mode 100644 assets/js/runtime~main.e6de3bd4.js create mode 100644 blog/2015/02/18/Import-Types/index.html create mode 100644 blog/2015/02/18/Typecasts/index.html create mode 100644 blog/2015/02/20/Flow-Comments/index.html create mode 100644 blog/2015/03/12/Bounded-Polymorphism/index.html create mode 100644 blog/2015/07/03/Disjoint-Unions/index.html create mode 100644 blog/2015/07/29/Version-0.14.0/index.html create mode 100644 blog/2015/09/10/Version-0.15.0/index.html create mode 100644 blog/2015/09/22/Version-0.16.0/index.html create mode 100644 blog/2015/10/07/Version-0.17.0/index.html create mode 100644 blog/2015/11/09/Generators/index.html create mode 100644 blog/2015/12/01/Version-0.19.0/index.html create mode 100644 blog/2016/02/02/Version-0.21.0/index.html create mode 100644 blog/2016/07/01/New-Unions-Intersections/index.html create mode 100644 blog/2016/08/01/Windows-Support/index.html create mode 100644 blog/2016/10/04/Property-Variance/index.html create mode 100644 blog/2016/10/13/Flow-Typed/index.html create mode 100644 blog/2017/05/07/Strict-Function-Call-Arity/index.html create mode 100644 blog/2017/07/27/Opaque-Types/index.html create mode 100644 blog/2017/08/04/Linting-in-Flow/index.html create mode 100644 blog/2017/08/16/Even-Better-Support-for-React-in-Flow/index.html create mode 100644 blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/index.html create mode 100644 blog/2017/09/03/Flow-Support-in-Recompose/index.html create mode 100644 blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/index.html create mode 100644 blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/index.html create mode 100644 blog/2018/10/18/Exact-Objects-By-Default/index.html create mode 100644 blog/2018/10/29/Asking-for-Required-Annotations/index.html create mode 100644 blog/2018/12/13/React-Abstract-Component/index.html create mode 100644 blog/2019/08/20/Changes-to-Object-Spreads/index.html create mode 100644 blog/2019/1/28/What-the-flow-team-has-been-up-to/index.html create mode 100644 blog/2019/10/25/Live-Flow-Errors-in-your-IDE/index.html create mode 100644 blog/2019/10/30/Spreads-Common-Errors-and-Fixes/index.html create mode 100644 blog/2019/2/8/A-More-Responsive-Flow/index.html create mode 100644 blog/2019/4/9/Upgrading-Flow-Codebases/index.html create mode 100644 blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/index.html create mode 100644 blog/2020/02/19/Improvements-to-Flow-in-2019/index.html create mode 100644 blog/2020/03/09/What-were-building-in-2020/index.html create mode 100644 blog/2020/03/16/Making-Flow-error-suppressions-more-specific/index.html create mode 100644 blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/index.html create mode 100644 blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/index.html create mode 100644 blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/index.html create mode 100644 blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/index.html create mode 100644 blog/2021/06/02/Sound-Typing-for-this-in-Flow/index.html create mode 100644 blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/index.html create mode 100644 blog/2021/09/13/Introducing-Flow-Enums/index.html create mode 100644 blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/index.html create mode 100644 blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/index.html create mode 100644 blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/index.html create mode 100644 blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/index.html create mode 100644 blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/index.html create mode 100644 blog/2023/01/17/Local-Type-Inference/index.html create mode 100644 blog/2023/02/16/Exact-object-types-by-default-by-default/index.html create mode 100644 blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/index.html create mode 100644 blog/2023/04/10/Unused-Promise/index.html create mode 100644 blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/index.html create mode 100644 blog/archive/index.html create mode 100644 blog/atom.xml create mode 100644 blog/index.html create mode 100644 blog/page/2/index.html create mode 100644 blog/rss.xml create mode 100644 cd3c4b260f85aac6f600f3c017046ef9.wasm create mode 100644 en/docs/cli/annotate-exports/index.html create mode 100644 en/docs/cli/coverage/index.html create mode 100644 en/docs/cli/index.html create mode 100644 en/docs/config/declarations/index.html create mode 100644 en/docs/config/ignore/index.html create mode 100644 en/docs/config/include/index.html create mode 100644 en/docs/config/index.html create mode 100644 en/docs/config/libs/index.html create mode 100644 en/docs/config/lints/index.html create mode 100644 en/docs/config/options/index.html create mode 100644 en/docs/config/untyped/index.html create mode 100644 en/docs/config/version/index.html create mode 100644 en/docs/declarations/index.html create mode 100644 en/docs/editors/emacs/index.html create mode 100644 en/docs/editors/index.html create mode 100644 en/docs/editors/sublime-text/index.html create mode 100644 en/docs/editors/vim/index.html create mode 100644 en/docs/editors/vscode/index.html create mode 100644 en/docs/editors/webstorm/index.html create mode 100644 en/docs/enums/defining-enums/index.html create mode 100644 en/docs/enums/enabling-enums/index.html create mode 100644 en/docs/enums/index.html create mode 100644 en/docs/enums/migrating-legacy-patterns/index.html create mode 100644 en/docs/enums/using-enums/index.html create mode 100644 en/docs/errors/index.html create mode 100644 en/docs/faq/index.html create mode 100644 en/docs/getting-started/index.html create mode 100644 en/docs/index.html create mode 100644 en/docs/install/index.html create mode 100644 en/docs/lang/annotation-requirement/index.html create mode 100644 en/docs/lang/depth-subtyping/index.html create mode 100644 en/docs/lang/lazy-modes/index.html create mode 100644 en/docs/lang/nominal-structural/index.html create mode 100644 en/docs/lang/refinements/index.html create mode 100644 en/docs/lang/subtypes/index.html create mode 100644 en/docs/lang/type-hierarchy/index.html create mode 100644 en/docs/lang/types-and-expressions/index.html create mode 100644 en/docs/lang/types-first/index.html create mode 100644 en/docs/lang/variables/index.html create mode 100644 en/docs/lang/variance/index.html create mode 100644 en/docs/lang/width-subtyping/index.html create mode 100644 en/docs/libdefs/creation/index.html create mode 100644 en/docs/libdefs/index.html create mode 100644 en/docs/linting/flowlint-comments/index.html create mode 100644 en/docs/linting/index.html create mode 100644 en/docs/linting/rule-reference/index.html create mode 100644 en/docs/react/components/index.html create mode 100644 en/docs/react/events/index.html create mode 100644 en/docs/react/hoc/index.html create mode 100644 en/docs/react/index.html create mode 100644 en/docs/react/multiplatform/index.html create mode 100644 en/docs/react/refs/index.html create mode 100644 en/docs/react/types/index.html create mode 100644 en/docs/strict/index.html create mode 100644 en/docs/tools/babel/index.html create mode 100644 en/docs/tools/eslint/index.html create mode 100644 en/docs/tools/flow-remove-types/index.html create mode 100644 en/docs/tools/index.html create mode 100644 en/docs/types/aliases/index.html create mode 100644 en/docs/types/any/index.html create mode 100644 en/docs/types/arrays/index.html create mode 100644 en/docs/types/casting/index.html create mode 100644 en/docs/types/classes/index.html create mode 100644 en/docs/types/comments/index.html create mode 100644 en/docs/types/conditional/index.html create mode 100644 en/docs/types/empty/index.html create mode 100644 en/docs/types/functions/index.html create mode 100644 en/docs/types/generators/index.html create mode 100644 en/docs/types/generics/index.html create mode 100644 en/docs/types/index.html create mode 100644 en/docs/types/indexed-access/index.html create mode 100644 en/docs/types/interfaces/index.html create mode 100644 en/docs/types/intersections/index.html create mode 100644 en/docs/types/literals/index.html create mode 100644 en/docs/types/mapped-types/index.html create mode 100644 en/docs/types/maybe/index.html create mode 100644 en/docs/types/mixed/index.html create mode 100644 en/docs/types/modules/index.html create mode 100644 en/docs/types/objects/index.html create mode 100644 en/docs/types/opaque-types/index.html create mode 100644 en/docs/types/primitives/index.html create mode 100644 en/docs/types/tuples/index.html create mode 100644 en/docs/types/type-guards/index.html create mode 100644 en/docs/types/typeof/index.html create mode 100644 en/docs/types/unions/index.html create mode 100644 en/docs/types/utilities/index.html create mode 100644 en/docs/usage/index.html create mode 100644 flow/master/flow.js create mode 100644 flow/master/flowlib/APACHE_LICENSE create mode 100644 flow/master/flowlib/bom.js create mode 100644 flow/master/flowlib/core.js create mode 100644 flow/master/flowlib/cssom.js create mode 100644 flow/master/flowlib/dom.js create mode 100644 flow/master/flowlib/indexeddb.js create mode 100644 flow/master/flowlib/intl.js create mode 100644 flow/master/flowlib/node.js create mode 100644 flow/master/flowlib/react-dom.js create mode 100644 flow/master/flowlib/react.js create mode 100644 flow/master/flowlib/serviceworkers.js create mode 100644 flow/master/flowlib/streams.js create mode 100644 flow/master/flowlib/webassembly.js create mode 100644 img/favicon.ico create mode 100644 img/favicon.png create mode 100644 img/featurette-bigger.gif create mode 100644 img/featurette-confidently.gif create mode 100644 img/featurette-faster.gif create mode 100644 img/featurette-smarter.gif create mode 100644 img/flow_for_vscode.gif create mode 100644 img/icon-github.svg create mode 100644 img/icon-stackoverflow.svg create mode 100644 img/icon-twitter.svg create mode 100644 img/logo.svg create mode 100644 img/oss_logo.png create mode 100644 index.html create mode 100644 opensearch.xml create mode 100644 search/index.html create mode 100644 sitemap.xml create mode 100644 try/index.html diff --git a/404.html b/404.html new file mode 100644 index 00000000000..1f18faa0922 --- /dev/null +++ b/404.html @@ -0,0 +1,26 @@ + + + + + +Page Not Found | Flow + + + + + + + + + + + + + + +
+
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + + + \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 00000000000..23e7ab96957 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +flow.org diff --git a/_src/cli/annotate-exports.md b/_src/cli/annotate-exports.md new file mode 100644 index 00000000000..95c90642d96 --- /dev/null +++ b/_src/cli/annotate-exports.md @@ -0,0 +1,80 @@ +--- +title: Flow Annotate-Exports +slug: /cli/annotate-exports +--- + +Upgrading to [Types-First](../../lang/types-first) mode may require a substantial +number of type annotations at module boundaries. To help with the process of +upgrading large codebases, we are providing a codemod command, whose goal is to +fill in these missing annotations. This command is included in the Flow binary +in versions `>= 0.125`. + +> Note: As of version 0.134, types-first is the default mode. If you are using a +version `>=0.134`, make sure you set `types_first=false` in your .flowconfig while +running this codemod. + +This command uses types that Flow infers, to fill in positions that would otherwise +raise *signature-verification* failures. It will include the necessary type import +statements, as long as the respective types are exported from their defining modules. + +It is designed for use on multiple files at once, rather than one file at a time. +For this reason it doesn't connect to an existing Flow server, but rather starts +a checking process of its own. + +As is typical with such mechanized approaches, it comes with a few caveats: + +1. It won’t be able to fill in every required type annotation. Some cases will +require manual effort. +2. Inserted annotations may cause new flow errors, since it’s not always possible +to match inferred type with types that can be written as annotations. +3. File formatting may be affected. If a code formatter (e.g. prettier) is used, +it is recommended that you run it after the codemod has finished running. + + +### How to apply the codemod {#toc-how-to-apply-the-codemod} + +A typical way to invoke this command is + +``` +flow codemod annotate-exports \ + --write \ + --repeat \ + --log-level info \ + /path/to/folder \ + 2> out.log +``` + +This command will transform files under `/path/to/folder`. This does not need to +be the root directory (the one containing `.flowconfig`). + +It uses the following flags: +* `--write` will update files that require annotations under `/path/to/folder` +in-place. Without this flag the resulting files will be printed on the command line. + +* `--repeat` ensures that the transformation will be applied until no more files +change. This mode is necessary here, because each new type the codemod adds may +require new locations to be annotated. + +* `--log-level info` outputs useful debugging information in the standard error stream. +This option might lead to verbose output, so we're redirecting the error output +to a log file `out.log`. + +Another convenient way to provide the input is by passing the flag +``` +--input-file file.txt +``` +where `file.txt` contains a specific list of files to be transformed. + +### Codemod output {#toc-codemod-output} + +After each iteration of the codemod, a summary will be printed on the CLI. This +summary includes statistical information about the number of annotations that were +added, and how many locations were skipped. It also prints counts for various kinds +of errors that were encountered. These can be matched to the errors printed in the +logs. + +A common error case is when a type `A`, defined in a file `a.js`, but not exported, +is inferred in file `b.js`. The codemod will skip adding this annotation and report +an error in the logs. The fix this case, you can export `A` in `a.js`. Note that +it is not necessary to manually import `A` in `b.js`. The codemod will do this +automatically. diff --git a/_src/cli/coverage.md b/_src/cli/coverage.md new file mode 100644 index 00000000000..5a95b85e2e6 --- /dev/null +++ b/_src/cli/coverage.md @@ -0,0 +1,128 @@ +--- +title: Flow Coverage +slug: /cli/coverage +--- +The coverage command provides a metric of the amount of checking that Flow has +performed on each part of your code. A program with high Flow coverage should +increase your confidence that Flow has detected any potential runtime errors. + +The determining factor for this is the presence of [`any`](../../types/any/) in the +inferred type of each expression. An expression whose inferred type is `any` is +considered *uncovered*, otherwise it is considered *covered*. + +To see why this metric was chosen for determining Flow's effectiveness, consider +the example + +```js flow-check +const one: any = 1; +one(); +``` + +This code leads to a runtime type error, since we are attempting to perform a call +on a number. Flow, however, does not flag an error here, because we have annotated +variable `one` as `any`. Flow's checking is effectively turned off whenever `any` +is involved, so it will silently allow the call. The use of this *unsafe* type has +rendered the type checker ineffective, and the coverage metric is here to surface +this, by reporting all instances of `one` as uncovered. + +## Design Space {#toc-design-space} + +**Which types should be "covered"?** + +What was described above is a rather coarse grained way to determine coverage. One +could imagine a criterion that flags expressions as uncovered if *any* part of their +type includes `any`, for example `Array`. While there is value in a metric like +this, the "uncovered" part of the type will typically be uncovered through various +operations on values of this type. For example, in the code + +```js flow-check +declare const arr: Array; +arr.forEach(x => {}); +``` + +the parameter `x` will be flagged as uncovered. Also, in practice, a strict criterion +like this would be too noisy and rather expensive to compute on the fly. + +**Union types** + +An exception to this principle are union types: the type `number | any` is considered +*uncovered*, even though technically `any` is not the top-level constructor. +Unions merely encode an option among *a set of* other types. In that sense we are +conservatively viewing an expression as uncovered, when at least one possible type +of that expression causes limited checking. For example, in the code + +```js flow-check +let x: number | any = 1; +x = "a"; +``` + +Flow will let you assign anything to `x`, which reduces confidence in the use +of `x` as a number. Thus `x` is considered uncovered. + +**The empty type** + +An interesting type from a coverage perspective is the [`empty`](../../types/empty) type. +This type roughly corresponds to *dead code*. As such checking around expressions with +type `empty` is more relaxed, but for a good reason: this code will not be executed at +runtime. Since it is a common practice to clean up such code, Flow coverage will +also report code whose type is inferred to be `empty`, but distinguishes it from +the case of `any`. + + +## Command Line Use {#toc-command-line-use} + +To find out the coverage of a file foo.js with the following contents + +```js flow-check +function add(one: any, two: any): number { + return one + two; +} + +add(1, 2); +``` + +you can issue the following command + +``` +$ flow coverage file.js +Covered: 50.00% (5 of 10 expressions) +``` +This output means that 5 out of the 10 nodes of this program were inferred to have type +`any`. To see exactly which parts are uncovered you can also pass one of the following +flags: +* `--color`: This will print foo.js on the terminal with the uncovered locations in +red color. E.g. `flow coverage --color file.js` +* `--json`: This will list out all location spans that are uncovered under +the tag `"uncovered_locs"`. E.g. `flow coverage --json file.js` + +Finally, as an example of dead code, consider the code: + +```js flow-check +function f(x: 'a' | 'b') { + if (x === 'a') { + // ... + } else if (x === 'b') { + // ... + } else { + x; + } +} +``` + +The final `else` clause should never be reached, as we've already checked for both members of the union. +Because of this, `x` is inferred to have the type `empty` in that branch. + +In the colored version of this command, these parts appear in blue color, +and in the JSON version they are under the field `"empty_locs"`. + +**Use on multiple files** + +If you want to check coverage of multiple files at once, Flow offers the +`batch-coverage` command: +``` +$ flow batch-coverage dir/ +``` +will report coverage statistics for each file under `dir/`, as well as aggregate +results. + +Note that `batch-coverage` requires a non-lazy Flow server. diff --git a/_src/cli/index.md b/_src/cli/index.md new file mode 100644 index 00000000000..4bb855b5108 --- /dev/null +++ b/_src/cli/index.md @@ -0,0 +1,96 @@ +--- +title: Flow CLI +slug: /cli +description: How to use Flow from the command line. Including how to manage the Flow background process. +--- + +The flow command line tool is made to be easy-to-use for simple cases. + +Using the command `flow` will type-check your current directory if the +`.flowconfig` file is present. A flow server will automatically be started if +needed. + +The CLI tool also provides several other options and commands that allow you to +control the server and build tools that integrate with Flow. For example, this +is how the [Nuclide](https://nuclide.io/) editor integrates with Flow to +provide autocompletion, type errors, etc. in its UI. + +To find out more about the CLI just type: + +```sh +flow --help +``` + +This will give you information about everything that flow can do. Running this +command should print something like this: + +``` +Usage: flow [COMMAND] [PROJECT_ROOT] + +Valid values for COMMAND: + ast Print the AST + autocomplete Queries autocompletion information + batch-coverage Shows aggregate coverage information for a group of files or directories + check Does a full Flow check and prints the results + check-contents Run typechecker on contents from stdin + config Read or write the .flowconfig file + coverage Shows coverage information for a given file + cycle Output .dot file for cycle containing the given file + find-module Resolves a module reference to a file + find-refs Gets the reference locations of a variable or property + force-recheck Forces the server to recheck a given list of files + get-def Gets the definition location of a variable or property + graph Outputs dependency graphs of flow repositories + init Initializes a directory to be used as a flow root directory + ls Lists files visible to Flow + lsp Acts as a server for the Language Server Protocol over stdin/stdout [experimental] + print-signature Prints the type signature of a file as extracted in types-first mode + server Runs a Flow server in the foreground + start Starts a Flow server + status (default) Shows current Flow errors by asking the Flow server + stop Stops a Flow server + type-at-pos Shows the type at a given file and position + version Print version information + +Default values if unspecified: + COMMAND status + PROJECT_ROOT current folder + +Status command options: + --color Display terminal output in color. never, always, auto (default: auto) + --from Specify client (for use by editor plugins) + --help This list of options + --json Output results in JSON format + --no-auto-start If the server is not running, do not start it; just exit + --old-output-format Use old output format (absolute file names, line and column numbers) + --one-line Escapes newlines so that each error prints on one line + --quiet Suppresses the server-status information that would have been printed to stderr + --retries Set the number of retries. (default: 3) + --show-all-errors Print all errors (the default is to truncate after 50 errors) + --strip-root Print paths without the root + --temp-dir Directory in which to store temp files (default: /tmp/flow/) + --timeout Maximum time to wait, in seconds + --version Print version number and exit +``` + +Example with custom project root: +```sh +mydir +├── frontend +│ ├── .flowconfig +│ └── app.js +└── backend +``` + +```sh +flow check frontend +``` + +You can then, further dig into particular COMMANDs by adding the `--help` flag. + +So, for example, if you want to know more about how the autocomplete works, you +can use this command: + +```sh +flow autocomplete --help +``` diff --git a/_src/config/declarations.md b/_src/config/declarations.md new file mode 100644 index 00000000000..695caf4a65a --- /dev/null +++ b/_src/config/declarations.md @@ -0,0 +1,59 @@ +--- +title: .flowconfig [declarations] +slug: /config/declarations +--- + +Often third-party libraries have broken type definitions or have type +definitions only compatible with a certain version of Flow. In those cases it +may be useful to use type information from the third-party libraries without +typechecking their contents. + +The `[declarations]` section in a `.flowconfig` file tells Flow to parse files +matching the specified regular expressions in _declaration mode_. In declaration +mode the code is not typechecked. However, the signatures of functions, classes, +etc are extracted and used by the typechecker when checking other code. + +Conceptually one can think of declaration mode as if Flow still typechecks the +files but acts as if there is a `$FlowFixMe` comment on every line. + +See also [`[untyped]`](../untyped) for not typechecking files, and instead using `any` for all contents. + +Things to keep in mind: + +1. Declaration mode should only be used for existing third-party code. You + should never use this for code under your control. +2. These are [OCaml regular expressions](http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp). +3. These regular expressions match against absolute paths. They probably should + start with `.*` + +An example `[declarations]` section might look like: + +``` +[declarations] +.*/third_party/.* +.*/src/\(foo\|bar\)/.* +.*\.decl\.js +``` + +This `[declarations]` section will parse in declaration mode: + +1. Any file or directory under a directory named `third_party` +2. Any file or directory under `.*/src/foo` or under `.*/src/bar` +3. Any file that ends with the extension `.decl.js` + +You may use the `` placeholder in your regular expressions. +At runtime, Flow will treat the placeholder as if it were the absolute +path to the project's root directory. This is useful for writing regular +expressions that are relative rather than absolute. + +For example, you can write: + +``` +[declarations] +/third_party/.* +``` + +Which would parse in declaration mode any file or directory under the directory +named `third_party/` within the project root. However, unlike the previous +example's `.*/third_party/.*`, it would NOT parse files or directories under +directories named `third_party/`, like `src/third_party/`. diff --git a/_src/config/ignore.md b/_src/config/ignore.md new file mode 100644 index 00000000000..5ca1f347f3b --- /dev/null +++ b/_src/config/ignore.md @@ -0,0 +1,58 @@ +--- +title: .flowconfig [ignore] +slug: /config/ignore +--- + +The `[ignore]` section in a `.flowconfig` file tells Flow to ignore files +matching the specified regular expressions when type checking your code. By +default, nothing is ignored. + +Things to keep in mind: + +1. These are [OCaml regular expressions](http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp). +2. These regular expressions match against absolute paths. They probably should + start with `.*` +3. Ignores are processed AFTER includes. If you both include and ignore a file + it will be ignored. + +An example `[ignore]` section might look like: + +``` +[ignore] +.*/__tests__/.* +.*/src/\(foo\|bar\)/.* +.*\.ignore\.js +``` + +This `[ignore]` section will ignore: + +1. Any file or directory under a directory named `__tests__` +2. Any file or directory under `.*/src/foo` or under `.*/src/bar` +3. Any file that ends with the extension `.ignore.js` + +You may use the `` placeholder in your regular expressions. +At runtime, Flow will treat the placeholder as if it were the absolute +path to the project's root directory. This is useful for writing regular +expressions that are relative rather than absolute. + +For example, you can write: + +``` +[ignore] +/__tests__/.* +``` + +Which would ignore any file or directory under the directory named `__tests__/` +within the project root. However, unlike the previous example's +`.*/__tests__/.*`, it would NOT ignore files or directories under other +directories named `__tests__/`, like `src/__tests__/`. + +### Exclusions {#toc-ignore-exclusions} +Sometimes you may want to ignore all files inside a directory with the exception of a few. An optional prefix "!" which negates the pattern may help. With this, any matching file excluded by a previous pattern will become included again. + +``` +[ignore] +/node_modules/.* +!/node_modules/not-ignored-package-A/.* +!/node_modules/not-ignored-package-B/.* +``` diff --git a/_src/config/include.md b/_src/config/include.md new file mode 100644 index 00000000000..33e6f5be7d7 --- /dev/null +++ b/_src/config/include.md @@ -0,0 +1,33 @@ +--- +title: .flowconfig [include] +slug: /config/include +--- + +The `[include]` section in a `.flowconfig` file tells Flow to include the +specified files or directories. Including a directory recursively includes all +the files under that directory. Symlinks are followed as long as they lead to a +file or directory that is also included. Each line in the include section is a +path to include. These paths can be relative to the root directory or absolute, +and support both single and double star wildcards. + +The project root directory (where your `.flowconfig` lives) is automatically +included. + +For example, if `/path/to/root/.flowconfig` contains the following `[include]` +section: + +``` +[include] +../externalFile.js +../externalDir/ +../otherProject/*.js +../otherProject/**/coolStuff/ +``` + +Then when Flow checks the project in `/path/to/root`, it will read and watch + +1. `/path/to/root/` (automatically included) +2. `/path/to/externalFile.js` +3. `/path/to/externalDir/` +4. Any file in `/path/to/otherProject/` that ends in `.js` +5. Any directory under `/path/to/otherProject` named `coolStuff/` diff --git a/_src/config/index.md b/_src/config/index.md new file mode 100644 index 00000000000..179c53e0ab8 --- /dev/null +++ b/_src/config/index.md @@ -0,0 +1,91 @@ +--- +title: .flowconfig +slug: /config +description: Flow tries to work out of the box as much as possible, but can be configured to work with any codebase. +--- + +Every Flow project contains a `.flowconfig` file. You can configure Flow by +modifying `.flowconfig`. New projects or projects that are starting to use Flow +can generate a default `.flowconfig` by running `flow init`. + +### `.flowconfig` format {#toc-flowconfig-format} + +The `.flowconfig` uses a custom format that vaguely resembles INI files. + +The `.flowconfig` consists of different sections: + +* [`[version]`](./version) +* [`[options]`](./options) +* [`[include]`](./include) +* [`[ignore]`](./ignore) +* [`[untyped]`](./untyped) +* [`[declarations]`](./declarations) +* [`[libs]`](./libs) +* [`[lints]`](./lints) +* [`[strict]`](../strict/#toc-enabling-flow-strict-in-a-flowconfig) + +### Comments {#toc-comments} + +Lines beginning with zero or more spaces followed by an `#` or `;` or `💩` are +ignored. For example: + +``` +# This is a comment + # This is a comment +; This is a comment + ; This is a comment +💩 This is a comment + 💩 This is a comment +``` + +### Where to put the `.flowconfig` {#toc-where-to-put-the-flowconfig} + +The location of the `.flowconfig` is significant. Flow treats the directory that +contains the `.flowconfig` as the _project root_. By default Flow includes all +the source code under the project root. The paths in the +[[include] section](./include) are relative to the project root. Some other +configuration also lets you reference the project root via the macro +``. + +Most people put the `.flowconfig` in the root of their project (i.e. next to the +`package.json`). Some people put all their code in a `src/` directory and +therefore put the `.flowconfig` at `src/.flowconfig`. + +### Example {#toc-example} + +Say you have the following directory structure, with your `.flowconfig` in +`mydir`: + +```text +otherdir +└── src + ├── othercode.js +mydir +├── .flowconfig +├── build +│ ├── first.js +│ └── shim.js +├── lib +│ └── flow +├── node_modules +│ └── es6-shim +└── src + ├── first.js + └── shim.js +``` + +Here is an example of how you could use the `.flowconfig` directives. + +```text +[include] +../otherdir/src + +[ignore] +.*/build/.* + +[libs] +./lib +``` + +Now `flow` will include a directory outside the `.flowconfig` path in its +check, ignore the `build` directory and use the declarations in `lib`. diff --git a/_src/config/libs.md b/_src/config/libs.md new file mode 100644 index 00000000000..5cb33e10826 --- /dev/null +++ b/_src/config/libs.md @@ -0,0 +1,17 @@ +--- +title: .flowconfig [libs] +slug: /config/libs +--- + +The `[libs]` section in a `.flowconfig` file tells Flow to include the +specified [library definitions](../../libdefs/) when type +checking your code. Multiple libraries can be specified. By default, the +`flow-typed` folder in your project root directory is included as a library +directory. This default allows you to use +[`flow-typed`](https://github.com/flowtype/flow-typed) to install library +definitions without additional configuration. + +Each line in the `[libs]` section is a path to the library file or directory +which you would like to include. These paths can be relative to the project +root directory or absolute. Including a directory recursively includes all the +files under that directory as library files. diff --git a/_src/config/lints.md b/_src/config/lints.md new file mode 100644 index 00000000000..dcaed41dc3e --- /dev/null +++ b/_src/config/lints.md @@ -0,0 +1,15 @@ +--- +title: .flowconfig [lints] +slug: /config/lints +--- + +The `[lints]` section in a `.flowconfig` file can contain several key-value +pairs of the form: + +``` +[lints] +ruleA=severityA +ruleB=severityB +``` + +Check out the [linting docs](../../linting) for more information. diff --git a/_src/config/options.md b/_src/config/options.md new file mode 100644 index 00000000000..1c2c1eace00 --- /dev/null +++ b/_src/config/options.md @@ -0,0 +1,630 @@ +--- +title: .flowconfig [options] +slug: /config/options +--- + +import {SinceVersion, UntilVersion} from '../../components/VersionTags'; + +The `[options]` section in a `.flowconfig` file can contain several key-value +pairs of the form: + +``` +[options] +keyA=valueA +keyB=valueB +``` + +Any options that are omitted will use their default values. Some options +can be overridden with command line flags. + +## Available options {#toc-available-options} + +### all {#toc-all} + +Type: `boolean` + +Set this to `true` to check all files, not just those with `@flow`. + +The default value for `all` is `false`. + +### autoimports {#toc-autoimports} + +Type: `boolean` + +When enabled, IDE autocomplete suggests the exports of other files, and the necessary `import` statements are automatically inserted. A "quick fix" code action is also provided on undefined variables that suggests matching imports. + +The default value for `autoimports` is `true` as of Flow v0.155.0. + +### babel_loose_array_spread {#toc-babel-loose-array-spread} + +Type: `boolean` + +Set this to `true` to check that array spread syntax is only used with arrays, not arbitrary iterables (such as `Map` or `Set`). This is useful if you transform your code with Babel in [loose mode](https://babeljs.io/docs/en/babel-plugin-transform-spread#loose) which makes this non-spec-compliant assumption at runtime. + +For example: + +```js +const set = new Set(); +const values = [...set]; // Valid ES2015, but Set is not compatible with $ReadOnlyArray in Babel loose mode +``` + +The default value for `babel_loose_array_spread` is `false`. + +### emoji {#toc-emoji} + +Type: `boolean` + +Set this to `true` to add emoji to the status messages that Flow +outputs when it's busy checking your project. + +The default value for `emoji` is `false`. + +### enums {#toc-enums} + +Type: `boolean` + +Set this to `true` to enable [Flow Enums](../../enums). +[Additional steps](../../enums/enabling-enums/) are required beyond just enabling the `.flowconfig` option. + +The default value for `enums` is `false`. + +### exact_by_default {#toc-exact-by-default} + +Type: `boolean` + +When set to `true` (the default as of version 0.202), Flow interprets object types as exact by default: + +```js flow-check +type O1 = {foo: number} // exact +type O2 = {| foo: number |} // exact +type O3 = {foo: number, ...} // inexact +``` + +When this flag is `false`, Flow has the following behavior: + +```js flow-check +type O1 = {foo: number} // inexact +type O2 = {| foo: number |} // exact +type O3 = {foo: number, ...} // inexact +``` + +- From inception to Flow version 0.199, the default value of the flag was `false`. +- In versions 0.200 and 0.201, the flag was required to be explicitly set to either `true` or `false`. +- From version 0.202, the default value is `true`. + +You can read more about this change in our blog post about making [exact by object types by default, by default](https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69). + +### experimental.const_params {#toc-experimental-const-params} + +Type: `boolean` + +Setting this to `true` makes Flow treat all function parameters as const +bindings. Reassigning a param is an error which lets Flow be less conservative +with refinements. + +The default value is `false`. + +### include_warnings {#toc-include-warnings} + +Type: `boolean` + +Setting this to `true` makes Flow commands include warnings in the error output. +Warnings are hidden by default in the CLI to avoid console spew. (An IDE is a +much better interface to show warnings.) + +The default value is `false`. + +### lazy_mode {#toc-lazy-mode} + +Type: `boolean` + +For more on lazy modes, see the [lazy modes docs](../../lang/lazy-modes/). + +Setting `lazy_mode` in the `.flowconfig` will cause new Flow servers for that +root to use lazy mode (or no lazy mode if set to `false`). This option can +be overridden from the CLI using the `--lazy-mode` flag. + +The default value is `false`. + +### max_header_tokens {#toc-max-header-tokens} + +Type: `integer` + +Flow tries to avoid parsing non-flow files. This means Flow needs to +start lexing a file to see if it has `@flow` or `@noflow` in it. This option +lets you configure how much of the file Flow lexes before it decides there is +no relevant docblock. + +- Neither `@flow` nor `@noflow` - Parse this file with Flow syntax disallowed and do not typecheck it. +- `@flow` - Parse this file with Flow syntax allowed and typecheck it. +- `@noflow` - Parse this file with Flow syntax allowed and do not typecheck it. This is meant as an escape hatch to suppress Flow in a file without having to delete all the Flow-specific syntax. + +The default value of `max_header_tokens` is 10. + +### module.file_ext {#toc-module-file-ext} + +By default, Flow will look for files with the extensions `.js`, `.jsx`, `.mjs`, +`.cjs` and `.json`. You can override this behavior with this option. + +For example, if you do: + +``` +[options] +module.file_ext=.foo +module.file_ext=.bar +``` + +Then Flow will instead look for the file extensions `.foo` and `.bar`. + +> **Note:** you can specify `module.file_ext` multiple times + +### module.ignore_non_literal_requires {#toc-module-ignore-non-literal-requires} + +Type: `boolean` + +Set this to `true` and Flow will no longer complain when you use `require()` +with something other than a string literal. + +The default value is `false`. + +### module.name_mapper {#toc-module-name-mapper} + +Type: `regex -> string` + +Specify a regular expression to match against module names, and a replacement +pattern, separated by a `->`. + +For example: + +``` +module.name_mapper='^image![a-zA-Z0-9$_]+$' -> 'ImageStub' +``` + +This makes Flow treat `require('image!foo.jpg')` as if it were +`require('ImageStub')`. + +These are [OCaml regular expressions](http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp). +Use `\(` and `\)` (slashes required!) to create a capturing group, which you +can refer to in the replacement pattern as `\1` (up to `\9`). + +> **Note:** you can specify `module.name_mapper` multiple times + +### module.name_mapper.extension {#toc-module-name-mapper-extension} + +Type: `string -> string` + +Specify a file extension to match, and a replacement module name, separated by +a `->`. + +> **Note:** This is just shorthand for +> `module.name_mapper='^\(.*\)\.EXTENSION$' -> 'TEMPLATE'`) + +For example: + +``` +module.name_mapper.extension='css' -> '/CSSFlowStub.js.flow' +``` + +Makes Flow treat `require('foo.css')` as if it were +`require(PROJECT_ROOT + '/CSSFlowStub')`. + +> **Note:** You can specify `module.name_mapper.extension` multiple times for +> different extensions. + +### module.system {#toc-module-system} + +Type: `node | haste` + +The module system to use to resolve `import` and `require`. +Haste mode is used by Meta. + +The default is `node`. + +### module.system.node.main_field {#toc-module-system-node-main-field} + +Type: `string` + +Flow reads `package.json` files for the `"name"` and `"main"` fields to figure +out the name of the module and which file should be used to provide that +module. + +So if Flow sees this in the `.flowconfig`: + +``` +[options] +module.system.node.main_field=foo +module.system.node.main_field=bar +module.system.node.main_field=baz +``` + +and then it comes across a `package.json` with + +``` +{ + "name": "kittens", + "main": "main.js", + "bar": "bar.js", + "baz": "baz.js" +} +``` + +Flow will use `bar.js` to provide the `"kittens"` module. + +If this option is unspecified, Flow will always use the `"main"` field. + +See [this GitHub issue for the original motivation](https://github.com/facebook/flow/issues/5725) + +### module.system.node.resolve_dirname {#toc-module-system-node-resolve-dirname} + +Type: `string` + +By default, Flow will look in directories named `node_modules` for node +modules. You can configure this behavior with this option. + +For example, if you do: + +``` +[options] +module.system.node.resolve_dirname=node_modules +module.system.node.resolve_dirname=custom_node_modules +``` + +Then Flow will look in directories named `node_modules` or +`custom_node_modules`. + +> **Note:** you can specify `module.system.node.resolve_dirname` multiple times + +### module.use_strict {#toc-module-use-strict} + +Type: `boolean` + +Set this to `true` if you use a transpiler that adds `"use strict";` to the top +of every module. + +The default value is `false`. + +### munge_underscores {#toc-munge-underscores} + +Type: `boolean` + +Set this to `true` to have Flow treat underscore-prefixed class properties and +methods as private. This should be used in conjunction with [`jstransform`'s +ES6 class transform](https://github.com/facebook/jstransform/blob/master/visitors/es6-class-visitors.js), +which enforces the same privacy at runtime. + +The default value is `false`. + +### no_flowlib {#toc-no-flowlib} + +Type: `boolean` + +Flow has builtin library definitions. Setting this to `true` will tell Flow to +ignore the builtin library definitions. + +The default value is `false`. + +### react.runtime {#toc-react-runtime} + +Type: `automatic | classic` + +Set this to `automatic` if you are using React's automatic runtime in `@babel/plugin-transform-react-jsx`. +Otherwise, use `classic`. [See the babel documentation](https://babeljs.io/docs/en/babel-plugin-transform-react-jsx) +for details about the transform. + +The default value is `classic`. + +### server.max_workers {#toc-server-max-workers} + +Type: `integer` + +The maximum number of workers the Flow server can start. By default, the server +will use all available cores. + +### sharedmemory.hash_table_pow {#toc-sharedmemory-hash-table-pow} + +Type: `unsigned integer` + +The 3 largest parts of the shared memory are a dependency table, a hash table, +and a heap. While the heap grows and shrinks, the two tables are allocated in +full. This option lets you change the size of the hash table. + +Setting this option to X means the table will support up to 2^X elements, +which is 16*2^X bytes. + +By default, this is set to 19 (Table size is 2^19, which is 8 megabytes) + +### sharedmemory.heap_size {#toc-sharedmemory-heap-size} + +Type: `unsigned integer` + +This option configures the maximum possible size for the shared heap. You should +most likely not need to configure this, as it doesn't really affect how much +RSS Flow uses. However, if you are working on a massive codebase you might see +the following error after init: "Heap init size is too close to max heap size; +GC will never get triggered!" In this case, you may need to increase the size +of the heap. + +By default, this is set to 26843545600 (25 * 2^30 bytes, which is 25GiB) + +### suppress_type {#toc-suppress-type} + +Type: `string` + +This option lets you alias `any` with a given string. This is useful for +explaining why you're using `any`. For example, let's say you sometimes want +to sometimes use `any` to suppress an error and sometimes to mark a TODO. +Your code might look like + +``` +const myString: any = 1 + 1; +const myBoolean: any = 1 + 1; +``` + +If you add the following to your configuration: + +``` +[options] +suppress_type=$FlowFixMe +suppress_type=$FlowTODO +``` + +You can update your code to the more readable: + +``` +const myString: $FlowFixMe = 1 + 1; +const myBoolean: $FlowTODO = 1 + 1; +``` + +> **Note:** You can specify `suppress_type` multiple times. + +### traces {#toc-traces} + +Type: `integer` + +Enables traces on all error output (showing additional details about the flow +of types through the system), to the depth specified. This can be very +expensive, so is disabled by default. + +### use_mixed_in_catch_variables {#toc-use-mixed-in-catch-variables} + +Type: `boolean` + +Changes the default type of `catch` variables from [`any`](../../types/any) to [`mixed`](../../types/mixed). E.g. + +```js flow-check +try { +} catch (e) { +} +``` + +in the above example, if the option is `true`, `catch` will be typed as `mixed` as it lacks an explicit type annotation. + +## Deprecated options + +The following options no longer exist in the latest version of Flow: + +### esproposal.class_instance_fields {#toc-esproposal-class-instance-fields} + +Type: `enable | ignore | warn` + +Set this to `warn` to indicate that Flow should give a warning on use of +instance [class fields](https://github.com/tc39/proposal-class-public-fields) +per the pending spec. + +You may also set this to `ignore` to indicate that Flow should simply ignore +the syntax (i.e. Flow will not use this syntax to indicate the presence of a +property on instances of the class). + +The default value of this option is `enable`, which allows use of this proposed +syntax. + +### esproposal.class_static_fields {#toc-esproposal-class-static-fields} + +Type: `enable | ignore | warn` + +Set this to `warn` to indicate that Flow should give a warning on use of static +[class fields](https://github.com/tc39/proposal-class-public-fields) +per the pending spec. + +You may also set this to `ignore` to indicate that Flow should simply ignore +the syntax (i.e. Flow will not use this syntax to indicate the presence of a +static property on the class). + +The default value of this option is `enable`, which allows use of this proposed +syntax. + +### esproposal.decorators {#toc-esproposal-decorators} + +Type: `ignore | warn` + +Set this to `ignore` to indicate that Flow should ignore decorators. + +The default value of this option is `warn`, which gives a warning on use since +this proposal is still very early-stage. + +### esproposal.export_star_as {#toc-esproposal-export-star-as} + +Type: `enable | ignore | warn` + +Set this to `enable` to indicate that Flow should support the `export * as` +syntax from [leebyron's proposal](https://github.com/leebyron/ecmascript-more-export-from). + +You may also set this to `ignore` to indicate that Flow should simply ignore +the syntax. The default value of this option is `warn`, which gives a warning +on use since this proposal is still very early-stage. + +### esproposal.optional_chaining {#toc-esproposal-optional-chaining} + +Type: `enable | ignore | warn` + +Set this to `enable` to indicate that Flow should support the use of +[optional chaining](https://github.com/tc39/proposal-optional-chaining) +per the pending spec. + +You may also set this to `ignore` to indicate that Flow should simply ignore +the syntax. + +The default value of this option is `warn`, which gives a warning on +use since this proposal is still very early-stage. + +### esproposal.nullish_coalescing {#toc-esproposal-nullish-coalescing} + +Type: `enable | ignore | warn` + +Set this to `enable` to indicate that Flow should support the use of +[nullish coalescing](https://github.com/tc39/proposal-nullish-coalescing) +per the pending spec. + +You may also set this to `ignore` to indicate that Flow should simply ignore +the syntax. + +The default value of this option is `warn`, which gives a warning on +use since this proposal is still very early-stage. + +### inference_mode {#toc-inference-mode} + +Type: `classic | constrain-writes` + +Setting this to `constrain-writes` will enable the constrained-writes inference mode. + +For more info, see the [variable declaration docs](../../lang/variables). + +The default value is `classic` + +### log.file {#toc-log-file} + +Type: `string` + +The path to the log file (defaults to `/tmp/flow/.log`). + +### sharedmemory.dirs {#toc-sharedmemory-dirs} + +Type: `string` + +This affects Linux only. + +Flow's shared memory lives in a memory mapped file. On more modern versions of +Linux (3.17+), there is a system call `memfd_create` which allows Flow to create +the file anonymously and only in memory. However, in older kernels, Flow needs +to create a file on the file system. Ideally this file lives on a memory-backed +tmpfs. This option lets you decide where that file is created. + +By default this option is set to `/dev/shm` and `/tmp` + +> **Note:** You can specify `sharedmemory.dirs` multiple times. + +### sharedmemory.minimum_available {#toc-sharedmemory-minimum-available} + +Type: `unsigned integer` + +This affects Linux only. + +As explained in the [`sharedmemory.dirs`](#toc-sharedmemory-dirs-string) option's description, Flow needs to +create a file on a filesystem for older kernels. `sharedmemory.dirs` specifies +a list of locations where the shared memory file can be created. For each +location, Flow will check to make sure the filesystem has enough space for the +shared memory file. If Flow will likely run out of space, it skips that location +and tries the next. This option lets you configure the minimum amount of space +needed on a filesystem for shared memory. + +By default it is 536870912 (2^29 bytes, which is half a gigabyte). + +### strip_root {#toc-strip-root} + +Type: `boolean` + +Obsolete. Set this to `true` to always strip the root directory from file paths +in error messages when using `--json`, `--from emacs`, and `--from vim`. +Do not use this option. Instead, pass the command line flag `--strip-root`. + +By default this is `false`. + +### suppress_comment {#toc-suppress-comment} + +Type: `regex` + +Defines a magical comment that suppresses any Flow errors on the following +line. For example: + +``` +suppress_comment= \\(.\\|\n\\)*\\$FlowFixMe +``` + +will match a comment like this: + +``` +// $FlowFixMe: suppressing this error until we can refactor +var x : string = 123; +``` + +and suppress the error. If there is no error on the next line (the suppression +is unnecessary), an "Unused suppression" warning will be shown instead. + +If no suppression comments are specified in your config, Flow will apply one +default: `// $FlowFixMe`. + +> **Note:** You can specify `suppress_comment` multiple times. If you do define +> any `suppress_comment`s, the built-in `$FlowFixMe` suppression will be erased +> in favor of the regexps you specify. If you wish to use `$FlowFixMe` with +> some additional custom suppression comments, you must manually specify +> `\\(.\\|\n\\)*\\$FlowFixMe` in your custom list of suppressions. + +> **Note:** In version v0.127.0, the option to specify the suppression comment +> syntax was removed. `$FlowFixMe`, `$FlowIssue`, `$FlowExpectedError`, +> and `$FlowIgnore` became the only standard suppressions. + +### temp_dir {#toc-temp-dir} + +Type: `string` + +Tell Flow which directory to use as a temp directory. Can be overridden with the +command line flag `--temp-dir`. + +The default value is `/tmp/flow`. + +### types_first {#toc-types-first} + +Type: `boolean` + +For more on types-first mode, see the [types-first docs](../../lang/types-first/). + +Flow builds intermediate artifacts to represent signatures of modules as they are +checked. If this option is set to `false`, then these artifacts are built using +inferred type information. If this option is set to `true`, then they are built +using type annotations at module boundaries. + +The default value for `types_first` is `true` (as of version 0.134). + +### well_formed_exports {#toc-well-formed-exports} + +Type: `boolean` + +Enforce the following restrictions on file exports: +* Statements manipulating `module.exports` and the `exports` alias may only appear + as top-level statements. +* Parts of the source that are visible from a file's exports need to be annotated + unless their type can be trivially inferred (e.g. the exported expression is a + numeric literal). This is a requirement for types-first mode to function properly. + Failure to properly annotate exports raise `signature-verification-failure`s. + +This option is set to `true` by default, since it is implied by [`types_first`](#toc-types-first-boolean), +but the option is useful on its own when upgrading a project from classic mode to +types-first mode. + +### well_formed_exports.includes {#toc-well-formed-exports-includes} + +Type: `string` + +Limit the scope of the `well_formed_exports` requirement to a specific directory +of this project. For example +``` +well_formed_exports=true +well_formed_exports.includes=/dirA +well_formed_exports.includes=/dirB +``` +will only report export related errors in files under `dirA` and `dirB`. This option +requires `well_formed_exports` to be set to `true`. + +The purpose of this option is to help prepare a codebase for Flow types-first mode. + +Between versions v0.125.0 and v0.127.0, this option was named `well_formed_exports.whitelist`. diff --git a/_src/config/untyped.md b/_src/config/untyped.md new file mode 100644 index 00000000000..59b8ebe5da8 --- /dev/null +++ b/_src/config/untyped.md @@ -0,0 +1,58 @@ +--- +title: .flowconfig [untyped] +slug: /config/untyped +--- + +The `[untyped]` section in a `.flowconfig` file tells Flow to not typecheck files +matching the specified regular expressions and instead throw away types and treat modules as [`any`](../../types/any). + +This is different from the [`[ignore]`](../ignore) config section that causes matching files to be ignored by the module resolver, +which inherently makes them un-typechecked, and also unresolvable by `import` or `require`. +When ignored, [`[libs]`](../libs) must then be specified for each `import` using `flow-typed`, which may not always be desired. + +It is also different from the [`[declarations]`](../declarations) section. +This also does not typecheck the file contents, but `[declarations]` does extract and use the signatures of functions, classes, etc, when checking other code. + +`[untyped]` instead causes a file to be ignored by the typechecker as if it had `@noflow` in it, +resolve modules as `any` type, but allow them to NOT be ignored by the module resolver. +Any matching file is skipped by Flow (not even parsed, like other `@noflow` files!), but can still be `require()`'d. + +Things to keep in mind: + +1. These are [OCaml regular expressions](http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp). +2. These regular expressions match against absolute paths. They probably should + start with `.*` + +An example `[untyped]` section might look like: + +``` +[untyped] +.*/third_party/.* +.*/src/\(foo\|bar\)/.* +.*\.untyped\.js +``` + +This `[untyped]` section will parse: + +1. Any file or directory under a directory named `third_party` +2. Any file or directory under `.*/src/foo` or under `.*/src/bar` +3. Any file that ends with the extension `.untyped.js` + +You may use the `` placeholder in your regular expressions. +At runtime, Flow will treat the placeholder as if it were the absolute path +to the project's root directory. This is useful for writing regular +expressions that are relative rather than absolute. + +For example, you can write: + +``` +[untyped] +/third_party/.* +``` + +Which would parse in declaration mode any file or directory under the directory +named `third_party/` within the project root. However, unlike the previous +example's `.*/third_party/.*`, it would NOT parse files or directories under +directories named `third_party/`, like `src/third_party/`. + + diff --git a/_src/config/version.md b/_src/config/version.md new file mode 100644 index 00000000000..71488dc2848 --- /dev/null +++ b/_src/config/version.md @@ -0,0 +1,31 @@ +--- +title: .flowconfig [version] +slug: /config/version +--- + +You can specify in the `.flowconfig` which version of Flow you expect to use. +You do this with the `[version]` section. If this section is omitted or left +blank, then any version is allowed. If a version is specified and not matched, +then Flow will immediately error and exit. + +So if you have the following in your `.flowconfig`: + +``` +[version] +0.22.0 +``` + +and you try to use Flow v0.21.0, then Flow will immediately error with the +message + +`"Wrong version of Flow. The config specifies version 0.22.0 but this is version +0.21.0"` + +So far, we support the following ways to specify supported versions + +- Explicit versions, (e.g. `0.22.0`, which only matches `0.22.0`). +- Intersection ranges, which are ANDed together, (e.g. `>=0.13.0 <0.14.0`, + which matches `0.13.0` and `0.13.5` but not `0.14.0`). +- Caret ranges, which allow changes that do not modify the left-most non-zero + digit (e.g. `^0.13.0` expands into `>=0.13.0 <0.14.0`, and `^0.13.1` expands + into `>=0.13.1 <0.14.0`, whereas `^1.2.3` expands into `>=1.2.3 <2.0.0`). diff --git a/_src/declarations/index.md b/_src/declarations/index.md new file mode 100644 index 00000000000..be66dc47806 --- /dev/null +++ b/_src/declarations/index.md @@ -0,0 +1,87 @@ +--- +title: Declaration Files +slug: /declarations +description: Learn how to write types in .flow files. +--- + +## What's a Declaration File? {#toc-what-s-a-declaration-file} + +Let's look at a more general, and sometimes more convenient way to +declare types for modules: `.flow` files. + +There are two possible use cases, depending on whether an implementation file exists +or not. + +In the first case, the exported types of a module are declared in a _declaration +file_ `.flow`, that is located in the same directory as the corresponding _implementation +file_ ``. The declaration file completely shadows the colocated +implementation. In other words, Flow will completely ignore `` and just +read `.flow` instead. + +In the second case, the implementation file is missing entirely. `.flow` +is treated as if it is named ``. + +Note that the `.flow` extension applies both to `.js` files as well as `.json` +ones. The corresponding declaration files have extensions `.js.flow` and `.json.flow`, +respectively. + +Now let's see an example of the first case documented above. Suppose we have the +following code in a file `src/LookBeforeYouLeap.js`: + +```js +import { isLeapYear } from "./Misc"; +if (isLeapYear("2020")) console.log("Yay!"); +``` + +and suppose that `src/Misc.js` has an incompatible implementation of `isLeapYear`: + +```js flow-check +export function isLeapYear(year: number): boolean { + return year % 4 == 0; // yeah, this is approximate +} +``` + +If we now create a declaration file `src/Misc.js.flow`, the declarations in it +will be used instead of the code in `src/Misc.js`. Let's say we have the +following declarations in `src/Misc.js.flow`. + +> NOTE: The syntax for declarations in a declaration file is the same as we've seen in +> [Creating Library Definitions section](../libdefs/creation). + +```js flow-check +declare export function isLeapYear(year: string): boolean; +``` + +What do you think will happen? + +Right, the `isLeapYear` call in `src/LookBeforeYouLeap.js` will typecheck, since +the `year` parameter expects a `string` in the declaration file. + +As this example shows, declaration files must be written with care: it is up +to the programmer to ensure they are correct, otherwise they may hide type +errors. + + +## Inlining declarations in regular code {#toc-inlining-declarations-in-regular-code} + +Sometimes it is useful to make declarations inline, as part of the source of +an implementation file. + +In the following example, say you want to finish writing +the function `fooList` without bothering to mock up its dependencies first: a +function `foo` that takes a `number` and returns a `string`, and a class +`List` that has a `map` method. You can do this by including declarations for +`List` and `foo`: + +```js flow-check +declare class List { + map(f: (x: T) => U): List; +} +declare function foo(n: number): string; + +function fooList(ns: List): List { + return ns.map(foo); +} +``` + +Just don't forget to replace the declarations with proper implementations. diff --git a/_src/editors/emacs.md b/_src/editors/emacs.md new file mode 100644 index 00000000000..b5d019457b3 --- /dev/null +++ b/_src/editors/emacs.md @@ -0,0 +1,22 @@ +--- +title: Emacs +slug: /editors/emacs +--- + +### flow-for-emacs {#toc-flow-for-emacs} + +You can add support for Flow in Emacs by using [flow-for-emacs](https://github.com/flowtype/flow-for-emacs) + +### Requirements {#toc-emacs-requirements} + +* Requires Flow to be installed and available on your path. +* Requires projects containing JavaScript files to be initialised with flow init. +* Requires JavaScript files to be marked with /* @flow */ at the top. + +### Installation {#toc-emacs-installation} + +```sh +cd ~/.emacs.d/ +git clone https://github.com/flowtype/flow-for-emacs.git +echo -e "\n(load-file \"~/.emacs.d/flow-for-emacs/flow.el\")" >> ~/.emacs +``` diff --git a/_src/editors/index.md b/_src/editors/index.md new file mode 100644 index 00000000000..0fa527cde78 --- /dev/null +++ b/_src/editors/index.md @@ -0,0 +1,9 @@ +--- +title: Editors +description: "Detailed guides, tips, and resources on how to integrate Flow with different code editors." +slug: /editors +--- + +You can benefit from having Flow run as you develop by integrating into your editor. + +Editor plugins are provided and maintained by the community. If you have trouble configuring or using a specific plugin for your IDE, please visit the project's repo or search for a community provided answer. diff --git a/_src/editors/sublime-text.md b/_src/editors/sublime-text.md new file mode 100644 index 00000000000..d9eec66894b --- /dev/null +++ b/_src/editors/sublime-text.md @@ -0,0 +1,18 @@ +--- +title: Sublime Text +slug: /editors/sublime-text +--- + +### Flow For Sublime Text 2 and 3 {#toc-flow-for-sublime-text-2-and-3} + +[Sublime Text](https://www.sublimetext.com/) can be integrated with Flow by using [Package Control](https://packagecontrol.io) + +* Install the Package Control plugin if you don't have it +* Press Ctrl+Shift+P to bring up the Command Palette (or use Tools > Command Palette menu) +* Select Package Control: Install Package +* Type 'Flow' to find 'Flow for Sublime Text 2 and 3' +* Select 'Flow for Sublime Text 2 and 3' to install + +### SublimeLinter-flow {#toc-sublimelinter-flow} + +You may also wish to install a popular SublimeLinter plugin for Flow like [SublimeLinter-flow](https://packagecontrol.io/packages/SublimeLinter-flow). diff --git a/_src/editors/vim.md b/_src/editors/vim.md new file mode 100644 index 00000000000..f35781e7286 --- /dev/null +++ b/_src/editors/vim.md @@ -0,0 +1,156 @@ +--- +title: Vim +slug: /editors/vim +--- + +Flow's editor integration is primarily via the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/). There are [many vim LSP clients](https://microsoft.github.io/language-server-protocol/implementors/tools/) to choose from, such as [ALE](#toc-ale). + +## ALE {#toc-ale} + +The Asynchronous Lint Engine (ALE) plugin for Vim 8+ and NeoVim, [vim-ale](https://github.com/w0rp/ale), is a generalized linting engine with support for Flow and many other tools. + +### Installation {#toc-installation} + +Follow the [instructions](https://github.com/w0rp/ale#3-installation) in the ALE README. + +Configure ALE to use the `flow-language-server` linter for JavaScript files: + +```vim +" In ~/.vim/ftplugin/javascript.vim, or somewhere similar. + +" Enables only Flow for JavaScript. See :ALEInfo for a list of other available +" linters. NOTE: the `flow` linter uses an old API; prefer `flow-language-server`. +let b:ale_linters = ['flow-language-server'] + +" Or in ~/.vim/vimrc: +let g:ale_linters = { +\ 'javascript': ['flow-language-server'], +\} +``` + +## coc.nvim-neovim {#toc-coc-nvim-neovim} + +[Coc](https://github.com/neoclide/coc.nvim) is an intellisense engine for vim8 & neovim. + +### Setup {#toc-setup} + +```vim +set nocompatible +filetype off + +" install coc.nvim using Plug or preffered plugin manager +call plug#begin('~/.vim/plugged') +Plug 'neoclide/coc.nvim', {'branch': 'release'} +call plug#end() + +filetype plugin indent on + +" ======= coc settings +set updatetime=300 +set shortmess+=c + +" Use leader T to show documentation in preview window +nnoremap t :call show_documentation() + + +function! s:show_documentation() + if (index(['vim','help'], &filetype) >= 0) + execute 'h '.expand('<cword>') + else + call CocAction('doHover') + endif +endfunction + +" instead of having ~/.vim/coc-settings.json +let s:LSP_CONFIG = { +\ 'flow': { +\ 'command': exepath('flow'), +\ 'args': ['lsp'], +\ 'filetypes': ['javascript', 'javascriptreact'], +\ 'initializationOptions': {}, +\ 'requireRootPattern': 1, +\ 'settings': {}, +\ 'rootPatterns': ['.flowconfig'] +\ } +\} + +let s:languageservers = {} +for [lsp, config] in items(s:LSP_CONFIG) + let s:not_empty_cmd = !empty(get(config, 'command')) + if s:not_empty_cmd | let s:languageservers[lsp] = config | endif +endfor + +if !empty(s:languageservers) + call coc#config('languageserver', s:languageservers) + endif +``` + +## LanguageClient-neovim {#toc-languageclient-neovim} + +Another way to add support for Flow in Vim is to use [LanguageClient-neovim](https://github.com/autozimu/LanguageClient-neovim). + +* Suports vim 8 and neovim +* Adds completions to omnifunc +* Checks JavaScript files for type errors on save +* Look up types under cursor + +### Requirements {#toc-requirements} + +* Requires Flow to be installed and available on your path. +* Requires projects containing JavaScript files to be initialised with flow init. +* Requires JavaScript files to be marked with /* @flow */ at the top. + +### Pathogen {#toc-pathogen} + +```sh +cd ~/.vim/bundle +git clone git://github.com/autozimu/LanguageClient-neovim.git +``` + +### NeoBundle {#toc-neobundle} + +Add this to your ~/.vimrc + +```vim + NeoBundleLazy 'autozimu/LanguageClient-neovim', { + \ 'autoload': { + \ 'filetypes': 'javascript' + \ }} +``` + +With Flow build step, using flow-bin + +```vim + NeoBundleLazy 'autozimu/LanguageClient-neovim', { + \ 'autoload': { + \ 'filetypes': 'javascript' + \ }, + \ 'build': { + \ 'mac': 'npm install -g flow-bin', + \ 'unix': 'npm install -g flow-bin' + \ }} +``` + +### VimPlug {#toc-vimplug} + +```vim + Plug 'autozimu/LanguageClient-neovim', { + \ 'branch': 'next', + \ 'do': 'bash install.sh && npm install -g flow-bin', + \ } +``` + +### Setup {#toc-setup} +```vim +let g:LanguageClient_rootMarkers = { +\ 'javascript': ['.flowconfig', 'package.json'] +\ } +let g:LanguageClient_serverCommands={ +\ 'javascript': ['flow', 'lsp'], +\ 'javascript.jsx': ['flow', 'lsp'] +\} + +" check the type under cursor w/ leader T +nnoremap t :call LanguageClient_textDocument_hover() +nnoremap y :call LanguageClient_textDocument_definition() +``` diff --git a/_src/editors/vscode.md b/_src/editors/vscode.md new file mode 100644 index 00000000000..b1fce3373c9 --- /dev/null +++ b/_src/editors/vscode.md @@ -0,0 +1,20 @@ +--- +title: Visual Studio Code +slug: /editors/vscode +--- + +![Screenshot of Flow Language Support](/img/flow_for_vscode.gif) + +Support for Flow in [Visual Studio Code](https://code.visualstudio.com/) is provided by +the [Flow Language Support](https://marketplace.visualstudio.com/items?itemName=flowtype.flow-for-vscode) +extension. It provides all the functionality you would expect: + +- IntelliSense (Autocomplete) +- Go to Definition / Peek Definition +- Diagnostics (Errors, Warnings) +- Hover type information +- Toggleable code coverage reports + +## Installation + +Search for "Flow Language Support" in the VS Code extensions panel or install through the [Marketplace](https://marketplace.visualstudio.com/items?itemName=flowtype.flow-for-vscode). diff --git a/_src/editors/webstorm.md b/_src/editors/webstorm.md new file mode 100644 index 00000000000..bccca7b354a --- /dev/null +++ b/_src/editors/webstorm.md @@ -0,0 +1,8 @@ +--- +title: WebStorm +slug: /editors/webstorm +--- + +Webstorm installation instructions can be found here: +- [WebStorm 2016.3](https://www.jetbrains.com/help/webstorm/2016.3/using-the-flow-type-checker.html) +- [WebStorm 2017.1](https://www.jetbrains.com/help/webstorm/2017.1/flow-type-checker.html) diff --git a/_src/enums/defining-enums.md b/_src/enums/defining-enums.md new file mode 100644 index 00000000000..9810332c91e --- /dev/null +++ b/_src/enums/defining-enums.md @@ -0,0 +1,243 @@ +--- +title: Defining enums +slug: /enums/defining-enums +--- + +Learn how to define a Flow Enum. Looking for a quick overview? Check out the [Quickstart Guide](../#toc-quickstart). + +An enum declaration is a statement. Its name defines both a value (from which to [access its members](../using-enums/#toc-accessing-enum-members), +and call its [methods](../using-enums/#toc-methods)), and a type (which can be [used as an annotation](../using-enums/#toc-using-as-a-type-annotation) for the type of its members). + +Enum members must all be of the same type, and those members can be one of four types: +[string](#toc-string-enums), [number](#toc-number-enums), [boolean](#toc-boolean-enums), and [symbol](#toc-symbol-enums). + +Every enum has some common properties: + +#### Consistent member type {#toc-consistent-member-type} +The type of the enum members must be consistent. For example, you can’t mix `string` and `number` members in one enum. +They must all be strings, numbers, or booleans (you do not provide values for `symbol` based enums). + +#### Member name starting character {#toc-member-name-starting-character} +Member names must be valid identifiers (e.g. not start with numbers), and must not start with lowercase `a` through `z`. +Names starting with those letters are reserved for enum [methods](../using-enums/#toc-methods) (e.g. `Status.cast(...)`). + +This is not allowed: + +```js flow-check +enum Status { + active, // Error: names can't start with lowercase 'a' through 'z' +} +``` + +#### Unique member names {#toc-unique-member-names} +Member names must be unique. This is not allowed: + +```js flow-check +enum Status { + Active, + Active, // Error: the name 'Active` was already used above +} +``` + +#### Literal member values {#toc-literal-member-values} +If you specify a value for an enum member, it must be a literal (string, number, or boolean), not a computed value. This is not allowed: + +```js flow-check +enum Status { + Active = 1 + 2, // Error: the value must be a literal +} +``` + +#### Unique member values {#toc-unique-member-values} +Member values must be unique. This is not allowed: + +```js flow-check +enum Status { + Active = 1, + Paused = 1, // Error: the value has already been used above +} +``` + +#### Fixed at declaration {#toc-fixed-at-declaration} +An enum is not extendable, so you can’t add new members after the fact while your code is running. +At runtime, enum member values can’t change and the members can’t be deleted. In this way they act like a frozen object. + + +## String enums {#toc-string-enums} +String enums are the default. If you don’t specify an `of` clause (e.g. `enum Status of number {}`, `enum Status of symbol {}`, etc.), +and do not specify any values (e.g. `enum Status {Active = 1}`) then the definition will default to be a string enum. + +Unlike the other types of enums (e.g. number enums), you can either specify values for the enum members, or not specify values and allow them to be defaulted. + +If you don’t specify values for your enum members, they default to strings which are the same as the name of your members. + +```js flow-check +enum Status { + Active, + Paused, + Off, +} +``` +Is the same as: + +```js flow-check +enum Status { + Active = 'Active', + Paused = 'Paused', + Off = 'Off', +} +``` +You must consistently either specify the value for all members, or none of the members. This is not allowed: + +```js flow-check +enum Status { + Active = 'active', + Paused = 'paused', + Off, // Error: you must specify a value for all members (or none of the members) +} +``` +Optionally, you can use an `of` clause: + +```js flow-check +enum Status of string { + Active, + Paused, + Off, +} +``` + +We infer the type of the enum based on its values if there is no `of` clause. +Using an `of` clause will ensure that if you use incorrect values, the error message will always interpret it as an enum of that type. + + +## Number enums {#toc-number-enums} +Number enums must have their values specified. + +You can specify a number enum like this: + +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +``` +Optionally, you can use an `of` clause. +This does not affect the type-checking behavior of a valid Flow Enum, +it just ensures that all enum members are `number`s as the definition site. + +```js flow-check +enum Status of number { + Active = 1, + Paused = 2, + Off = 3, +} +``` + +We do not allow defaulting of number enums (unlike some other languages), because if a member from the middle of such an enum is added or removed, +all subsequent member values would be changed. This can be unsafe (e.g. push safety, serialization, logging). + Requiring the user to be explicit about the renumbering makes them think about the consequences of doing so. + +The value provided must be a number literal. (Note: there is no literal for negative numbers in JavaScript, they are the application of a unary `-` operation on a number literal.) +We could expand allowed values in the future to include certain non-literals, if requests to do so arise. + + +## Boolean enums {#toc-boolean-enums} +Boolean enums must have their values specified. Boolean enums can only have two members. + +You can specify a boolean enum like this: + +```js flow-check +enum Status { + Active = true, + Off = false, +} +``` +Optionally, you can use an `of` clause. +This does not affect the type-checking behavior of a valid Flow Enum, +it just ensures that all enum members are `boolean`s as the definition site. + +```js flow-check +enum Status of boolean { + Active = true, + Off = false, +} +``` + + +## Symbol enums {#toc-symbol-enums} +Symbol enums can’t have their values specified. Each member is a new symbol, with the symbol description set to the name of the member. +You must use the `of` clause with symbol enums, to distinguish them from string enums, which are the default when omitting values. + +You can specify a symbol enum like this: + +```js flow-check +enum Status of symbol { + Active, + Paused, + Off, +} +``` + + +## Flow Enums with Unknown Members {#toc-flow-enums-with-unknown-members} +You can specify that your enum contains "unknown members" by adding a `...` to the end of the declaration: + +```js flow-check +enum Status { + Active, + Paused, + Off, + ... +} +const status: Status = Status.Active; + +switch (status) { + case Status.Active: break; + case Status.Paused: break; + case Status.Off: break; +} +``` + +When this is used, Flow will always require a `default` when [switching over the enum](../using-enums/#toc-exhaustive-checking-with-unknown-members), +even if all known enum members are checked. The `default` checks for "unknown" members you haven't explicitly listed. + +This feature is useful when an enum value crosses some boundary and the enum declaration on each side may have different memebers. +For example, an enum definition which is used on both the client and the server: an enum member could be added, which would be immediately seen by the server, +but could be sent to an outdated client which isn't yet aware of the new member. + +One use case for this would be the JS output of [GraphQL Enums](https://graphql.org/learn/schema/#enumeration-types): +Flow Enums with unknown members could be used instead of the added `'%future added value'` member. + + +## Enums at runtime {#toc-enums-at-runtime} +Enums exist as values at runtime. We use a [Babel transform](https://www.npmjs.com/package/babel-plugin-transform-flow-enums) to transform +Flow Enum declarations into calls to the [enums runtime](https://www.npmjs.com/package/flow-enums-runtime) (read more in the [enabling enums documentation](../enabling-enums/)). +We use a runtime so all enums can share an implementation of the enum [methods](../using-enums/#toc-methods). + +We use `Object.create(null)` for enums' prototype (which has the enum methods), so properties in `Object.prototype` will not pollute enums. +The only own properties of the enum object are the enum members. The members are non-enumerable (use the [`.members()` method](../using-enums/#toc-members) for that). +The entire enum object is frozen, so it cannot be modified. + + +## Style guide {#toc-style-guide} + +#### Naming enums {#toc-naming-enums} +We encourage you to define enum names in `PascalCase`, following the naming conventions of other types. All caps names (e.g. `STATUS`) are harder to read and discouraged. + +We encourage you to name enums in the singular. E.g. `Status`, not `Statuses`. Just like the type of `true` and `false` is `boolean`, not `booleans`. + +Don't append `Enum` to the name (e.g. don't name your enum `StatusEnum`). This is unnecessary, just like we don't append `Class` to every class name, and `Type` to every type alias. + +#### Naming enum members {#toc-naming-enum-members} +We encourage you to define enum member names in `PascalCase`. All caps names (e.g. `ACTIVE`) are harder to read and discouraged. +Additionally, since Flow enforces that these are constants, you don't need to use the name to signal that intent to the programmer. + +See also: the rule about [enum member name starting characters](#toc-member-name-starting-character). + +#### Don't create a separate type {#toc-don-t-create-a-separate-type} +A Flow Enum, like a class, is both a type and a value. You don't need to create a separate type alias, you can use the enum name. + +#### Use dot access for accessing members {#toc-use-dot-access-for-accessing-members} +Prefer `Status.Active` vs. `const {Active} = Status;`. This makes it easier find uses of the enum with text search, and makes it clearer to the reader what enum is involved. + Additionally, this is required for [switch statements involving enums](../using-enums/#toc-exhaustively-checking-enums-with-a-switch). diff --git a/_src/enums/enabling-enums.md b/_src/enums/enabling-enums.md new file mode 100644 index 00000000000..2c6616ec3ad --- /dev/null +++ b/_src/enums/enabling-enums.md @@ -0,0 +1,57 @@ +--- +title: Enabling enums in your project +slug: /enums/enabling-enums +--- + +## Upgrade tooling {#toc-upgrade-tooling} +To enable Flow Enums in your repo, you must first update the following packages: + +- Upgrade to at least Flow 0.159 + - Flow needs to have some configuration set to enable enums - see below. +- Upgrade [Prettier](https://prettier.io/) to at least version 2.2 + - As of that version, Prettier can handle parsing and pretty printing Flow Enums out of the box. + - You must use the `flow` [parser option](https://prettier.io/docs/en/options.html#parser) for JavaScript files to be able to format Flow Enums. +- Upgrade [Babel](https://babeljs.io/) to at least version 7.13.0 + - As of that version, Babel can parse Flow Enums. However, to enable this parsing some configuration needs to be supplied, + and additionally it does not include the transform required - see below. +- Upgrade [jscodeshift](https://github.com/facebook/jscodeshift) to at least version 0.11.0 +- Upgrade [hermes-parser](https://www.npmjs.com/package/hermes-parser) to at least version 0.4.8 +- For ESLint, either: + - Use [hermes-eslint](https://www.npmjs.com/package/hermes-eslint) as your ESLint parser, at least version 0.4.8 + - Or upgrade [babel-eslint](https://github.com/babel/babel-eslint) to version 10.1.0 + - As of that version, `babel-eslint` can handle Flow Enums out of the box. + - Do not upgrade to 11.x, this branch does not support Flow Enums. + - Or use another solution using Babel 7.13.0 or later, with Flow enabled - this may also work + +If you have any other tool which examines your code, you need to update it as well. If it uses [flow-parser](https://www.npmjs.com/package/flow-parser), +[hermes-parser](https://www.npmjs.com/package/hermes-parser) or `@babel/parser`, upgrade those as per the instructions above. +If it uses some other parser, you will need to implement parsing Flow Enums in that parser. You can look at the existing code in Babel, Flow, and Hermes parsers to guide your work. + + +## Enable enums {#toc-enable-enums} +- In your `.flowconfig`, under the `[options]` heading, add `enums=true` +- Add the Flow Enums Babel transform. It turns enum declaration AST nodes into calls to the runtime: + [babel-plugin-transform-flow-enums](https://www.npmjs.com/package/babel-plugin-transform-flow-enums). + Add it to your development dependencies and adjust your Babel configuration to use the transform. + The transform by default requires the runtime package directly (below), but you can configure this. +- Add the Flow Enum runtime package to your production dependencies. + This will be required and used at runtime to create Flow Enums: [flow-enums-runtime](https://www.npmjs.com/package/flow-enums-runtime) + + +## Enable suggested ESLint rules {#toc-enable-suggested-eslint-rules} +Enums can be exhaustively checked in `switch` statements, so may increase the use of `switch` statements compared to before. +To prevent common issues with `switch` statements, we suggest you enable these ESLint rules (at least as warnings): + +- [no-fallthrough](https://eslint.org/docs/rules/no-fallthrough): + This prevents the user from accidentally forgetting a `break` statement at the end of their switch case, while supporting common use-cases. +- [no-case-declarations](https://eslint.org/docs/rules/no-case-declarations): + This prevents lexicaly scoped declarations (`let`, `const`) from being introduced in a switch case, without wrapping that case in a new block. + Otherwise, declarations in different cases could conflict. + +We also have some Flow Enums specific rules as part of [eslint-plugin-fb-flow](https://www.npmjs.com/package/eslint-plugin-fb-flow): +- [use-flow-enums](https://www.npmjs.com/package/eslint-plugin-fb-flow#use-flow-enums): + Suggests that enum-like `Object.freeze` and `keyMirror` usage be turned into Flow Enums instead. +- [flow-enums-default-if-possible](https://www.npmjs.com/package/eslint-plugin-fb-flow#flow-enums-default-if-possible): + Auto-fixes string enums with specified values identical to the member names to defaulted enums. +- [no-flow-enums-object-mapping](https://www.npmjs.com/package/eslint-plugin-fb-flow#no-flow-enums-object-mapping): + Suggests using a function with a switch to map enum values to other values, instead of an object literal. diff --git a/_src/enums/index.md b/_src/enums/index.md new file mode 100644 index 00000000000..29fb8c8bc7e --- /dev/null +++ b/_src/enums/index.md @@ -0,0 +1,145 @@ +--- +title: Flow Enums +description: "Define a fixed set of constants which create their own type. Exhaustively checked in switch statements." +slug: /enums +--- + +Flow Enums define a fixed set of constants which create their own type. + +Unlike other features of Flow, Flow Enums exist as values at runtime, as well as existing as types. + +[Read how to enable Flow Enums in your project](./enabling-enums/). + + +## Benefits {#toc-benefits} +Enums provide several benefits over existing patterns: + +* Reduce repetition: Enum declarations provide both the type and the value of the enum. +* Improve Flow performance: Enums are guaranteed to have good type-checking performance, + unlike unions which may be expensive to type-check in certain situations. +* Enable new functionality: Enums come with a `cast` [method](./using-enums/#toc-methods), which converts from a primitive type to an enum type safely. +* Enhance safety: Enums define their own type which does not implicitly coerce to and from other types (e.g. from `string`s), + and are required to be [exhaustively checked in switch statements](./using-enums/#toc-exhaustively-checking-enums-with-a-switch). These properties can help prevent logic bugs. + + +## Quickstart {#toc-quickstart} + +#### [Defining enums](./defining-enums) {#toc-defining-enums-defining-enums} +An enum named `Status` with three members: `Active`, `Paused`, and `Off`. + +```js flow-check +enum Status { + Active, + Paused, + Off, +} +``` +By default, enums define members with string values which mirror their names. You can also explicitly set values: +```js flow-check +enum Status { + Active = 'active', + Paused = 'paused', + Off = 'off', +} +``` +You can use numbers as well: +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +``` +Values must be unique, literals, and all of the same type. Check out the [full docs on defining enums](./defining-enums/) to learn more. + + +#### [Using enums](./using-enums/) {#toc-using-enums-using-enums} +To access an enum member, use dot access: + +```js +Status.Active +``` +To use the enum type as an annotation, use the enum name: + +```js +const status: Status = Status.Active; +``` +Cast from the representation type (in this case, a `string`) to the enum type: + +```js +const status: Status | void = Status.cast(someString); +``` +You can easily provide a default value with the `??` operator: + +```js +const status: Status = Status.cast(someString) ?? Status.Off; +``` +Read more about the [other methods enums provide](./using-enums/#toc-methods), including `isValid`, `members`, and `getName`. + +Cast an enum type to its representation type (must be done explicitly): + +```js +(status: string) +``` +Checks of enums in `switch` statements are exhaustive - we ensure you check all members: +```js flow-check +enum Status { + Active, + Paused, + Off, +} +const status: Status = Status.Active; + +// ERROR: Incomplete exhaustive check +switch (status) { + case Status.Active: break; + case Status.Paused: break; + // We forgot to add `case: Status.Off:` here, resulting in error above. + // Using `default:` would also work to check all remaining members. +} +``` +Read more about [exhaustively checking enums](./using-enums/#toc-exhaustively-checking-enums-with-a-switch). + +Check out the [the full docs on using enums](./using-enums/) to learn more. + + +## When to use Flow Enums {#toc-when-to-use-flow-enums} +If you previously defined a union type of literals, you can use an enum to define that type instead. Instead of + +```js flow-check +type Status = + | 'Active' + | 'Paused' + | 'Off'; + +const x: Status = 'Active'; +``` + +or +```js flow-check +const Status = Object.freeze({ + Active: 'Active', + Paused: 'Paused', + Off: 'Off', +}); +type StatusType = $Keys; +const x: StatusType = Status.Active; +``` + +you can use: +```js flow-check +enum Status { + Active, + Paused, + Off, +} +const x: Status = Status.Active; +``` + +See [migrating from legacy patterns](./migrating-legacy-patterns) to learn more about migrating legacy JavaScript enum patterns to Flow Enums. + + +## When to not use Flow Enums {#toc-when-to-not-use-flow-enums} +Enums are designed to cover many use cases and exhibit certain benefits. The design makes a variety of trade-offs to make this happen, and in certain situations, +these trade-offs might not be right for you. In those cases, you can continue to use existing patterns to satisfy your use cases. +[Read more about those situations](./using-enums/#toc-when-to-not-use-enums). diff --git a/_src/enums/migrating-legacy-patterns.md b/_src/enums/migrating-legacy-patterns.md new file mode 100644 index 00000000000..2b2687e5bf6 --- /dev/null +++ b/_src/enums/migrating-legacy-patterns.md @@ -0,0 +1,224 @@ +--- +title: Migrating from legacy patterns +slug: /enums/migrating-legacy-patterns +--- + +Learn how to migrate to Flow Enums from legacy JavaScript enum patterns like `Object.freeze`. + +First, learn how to [update the enum definition site](#toc-updating-definitions), and next learn how to [update files that import and use the enum](#toc-updating-usage). + +## Updating definitions {#toc-updating-definitions} + +#### Object.freeze {#toc-object-freeze} +If you are using `Object.freeze`, you can migrate to an enum if the values of the object are: + +* All the same primitive type, and that type is `boolean`, `string`, `number`, or `symbol`. +* All literals. +* Contain no duplicate values. + +Replace + +```js flow-check +const Status = Object.freeze({ + Active: 1, + Paused: 2, + Off: 3, +}); + +export type StatusType = $Values; + +export default Status; +``` + +with +```js flow-check +export default enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +``` + +- Check to ensure that the key names do not start with lowercase ‘a’-‘z’ (disallowed in enums). If they do, you’ll need to rename the member names. +- Remove any usage of `$Keys<...>` or `$Values<...>` on the enum type, these are no longer needed as a Flow Enum defines a type itself (its name). +- Delete any type exports based on the enum, as you just need to export the Flow Enum. A Flow Enum acts as both a type and a value (like a class). + +Then, take a look at [how to update files that import and use the enum](#toc-updating-usage). + + +#### keyMirror {#toc-keymirror} +The `keyMirror` utility creates an object whose values are mirrors of its key names. You can replace `keyMirror` usage with a string based enum. + +Replace + +```js +import keyMirror from 'keyMirror'; + +const Status = keyMirror({ + Active: null, + Paused: null, + Off: null, +}); + +export type StatusType = $Keys; + +export default Status; +``` + +with + +```js flow-check +export default enum Status { + Active, + Paused, + Off, +} +``` + +- Check to ensure that the key names do not start with lowercase ‘a’-‘z’ (disallowed in enums). If they do, you’ll need to rename the member names. +- Remove any usage of `$Keys<...>` on the enum type, it's no longer needed as a Flow Enum defines a type itself (its name). +- Delete any type exports based on the enum, you just need to export the Flow Enum. A Flow Enum acts as both a type and a value (like a class). + +Then, take a look at [how to update files that import and use the enum](#toc-updating-usage). + + +## Updating usage {#toc-updating-usage} + +#### Fix type imports {#toc-fix-type-imports} +Previous patterns required you to export (and then import) a type separate from the enum itself. +Flow Enums are both types and values (like a class), so you just need to export the Flow Enum itself. Since there is now one export, you only need one import. +Read more about [exporting enums](../using-enums/#toc-exporting-enums) and [importing enums](../using-enums/#toc-importing-enums). + +If you previously had: +```js flow-check +const Status = Object.freeze({ + Active: 1, + Paused: 2, + Off: 3, +}); +export type StatusType = $Values; +export default Status; +``` + +And you've replaced it with: +```js flow-check +export default enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +``` + +Then you need to fix the imports as well: + +##### If both type and value were imported {#toc-if-both-type-and-value-were-imported} +For a user of the enum, if you previously imported both the type and the value, you can delete the type import and update annotations used. + +Change +```js +import type {StatusType} from 'status'; + +import Status from 'status'; + +const myStatus: StatusType = Status.Active; +``` +to +```js +// Type import is deleted + +import Status from 'status'; + +const myStatus: Status = Status.Active; // Changed type annotation to just `Status` +``` + +##### If only the type was imported {#toc-if-only-the-type-was-imported} +For a user of the enum, if you previously imported just the type, change the type import to a default import rather than a named import. + +Change +```js +import type {StatusType} from 'status'; + +function isActive(status: StatusType) { ... } +``` +to + +```js +// Remove the braces `{` `}` and changed the name - this is a default import now +import type Status from 'status'; + +function isActive(status: Status) { ... } // Changed type annotation to just `Status` +``` + + +#### Mapping enums to other values {#toc-mapping-enums-to-other-values} +Sometimes you want to map from an enum value to some other value. Previously, we sometimes used object literals for this. +With Flow Enums, use a function with a `switch` instead. The switch is [exhaustively checked](../using-enums/#toc-exhaustively-checking-enums-with-a-switch), +so Flow will ensure you update your mapping when you add or remove Flow Enum members. + +Replace this pattern + +```js +const STATUS_ICON: {[Status]: string} = { + [Status.Active]: 'green-checkmark', + [Status.Paused]: 'grey-pause', + [Status.Off]: 'red-x', +}; +const icon = STATUS_ICON[status]; +``` + +with + +```js +function statusIcon(status: Status): string { + switch (status) { + case Status.Active: + return 'green-checkmark'; + case Status.Paused: + return 'grey-pause'; + case Status.Off: + return 'red-x'; + } +} +const icon = statusIcon(status); +``` +Read more about [mapping enums to other values](../using-enums/#toc-mapping-enums-to-other-values). + + +#### Usage as the representation type (e.g. a string) {#toc-usage-as-the-representation-type-e-g-a-string} +You can't use a Flow Enum directly as its representation type (e.g. a `string`). +If you get Flow errors about using an enum as its representation type, first try to refactor your code so that it expects the enum type instead of the representation type +(e.g. change annotations from `string` to `Status`). If you really want to use the enum as its representation type, you can add in explicit casts. +See [casting to represetation type](../using-enums/#toc-casting-to-representation-type). + + +#### Casting to the enum type {#toc-casting-to-the-enum-type} +If before you cast from an enum's representation type (e.g. `string`) to the enum type with something like this: + +```js +function castToStatus(input: number): StatusType | void { + switch(input) { + case 1: return Status.Active; + case 2: return Status.Paused; + case 3: return Status.Off; + default: return undefined; + } +} + +castToStatus(x); +``` + +You can now just use the [cast](../using-enums/#toc-cast) method: + +```js +Status.cast(x); +``` + + +#### Update switch statements {#toc-update-switch-statements} +Flow Enums are exhaustively checked in `switch` statements. You might need to update your code when you are switching over an enum value. +Read more at [exhaustively checking enums in switch statements](../using-enums/#toc-exhaustively-checking-enums-with-a-switch). + + +#### Operations over enum members {#toc-operations-over-enum-members} +If previously you used functionality like `Object.values`, `Object.keys`, or `for-in` loops to get and operate on the enum members, +you can use the [members method](../using-enums/#toc-members) instead. diff --git a/_src/enums/using-enums.md b/_src/enums/using-enums.md new file mode 100644 index 00000000000..ae02ba1556e --- /dev/null +++ b/_src/enums/using-enums.md @@ -0,0 +1,615 @@ +--- +title: Using enums +slug: /enums/using-enums +--- + +Flow Enums are not a syntax for [union types](../../types/unions/). They are their own type, and each member of a Flow Enum has the same type. +Large union types can cause performance issues, as Flow has to consider each member as a separate type. With Flow Enums, no matter how large your enum is, +Flow will always exhibit good performance as it only has one type to keep track of. + +We use the following enum in the examples below: +```js +enum Status { + Active, + Paused, + Off, +} +``` + +### Accessing enum members {#toc-accessing-enum-members} +Access members with the dot syntax: + +```js +const status = Status.Active; +``` +You can’t use computed access: + +```js flow-check +enum Status { + Active, + Paused, + Off, +} +const x = "Active"; +Status[x]; // Error: computed access on enums is not allowed +``` + +### Using as a type annotation {#toc-using-as-a-type-annotation} +The enum declaration defines both a value (from which you can access the enum members and methods) and a type of the same name, which is the type of the enum members. + +```js +function calculateStatus(): Status { + ... +} + +const status: Status = calculateStatus(); +``` + +### Casting to representation type {#toc-casting-to-representation-type} +Enums do not implicitly coerce to their representation type or vice-versa. +If you want to convert from the enum type to the representation type, you can use an explicit cast `(x: string)`: + +```js flow-check +enum Status { + Active, + Paused, + Off, +} + +const s: string = Status.Active; // Error: 'Status' is not compatible with 'string' +const statusString: string = (Status.Active: string); +``` + +To convert from a nullable enum type to nullable string, you can do: +```js +const maybeStatus: ?Status = ....; +const maybeStatusString: ?string = maybeStatus && (maybeStatus: string); +``` + +If you want to convert from the representation type (e.g. `string`) to an enum type (if valid), check out the [cast method](#toc-cast). + +### Methods {#toc-methods} +Enum declarations also define some helpful methods. + +Below, `TEnum` is the type of the enum (e.g. `Status`), and `TRepresentationType` is the type of the representation type for that enum (e.g. `string`). + +#### .cast {#toc-cast} +Type: `cast(input: ?TRepresentationType): TEnum | void` + +The `cast` method allows you to safely convert a primitive value, like a `string`, to the enum type (if it is a valid value of the enum), and `undefined` otherwise. + +```js +const data: string = getData(); +const maybeStatus: Status | void = Status.cast(data); +if (maybeStatus != null) { + const status: Status = maybeStatus; + // do stuff with status +} +``` + +Set a default value in one line with the `??` operator: +```js +const status: Status = Status.cast(data) ?? Status.Off; +``` + +The type of the argument of `cast` depends on the type of enum. If it is a [string enum](../defining-enums/#toc-string-enums), the type of the argument will be `string`. +If it is a [number enum](../defining-enums/#toc-number-enums), the type of the argument will be `number`, and so on. +If you wish to cast a `mixed` value, first use a `typeof` refinement: +```js +const data: mixed = ...; +if (typeof data === 'string') { + const maybeStatus: Status | void = Status.cast(data); +} +``` + +`cast` uses `this` (representing the object of enum members), so if you want to pass the function itself as a value, you should use an arrow function. For example: +```js +const strings: Array = ...; +// WRONG: const statuses: Array = strings.map(Status.cast); +const statuses: Array = strings.map((input) => Status.cast(input)); // Correct +``` + +Runtime cost: For [mirrored string enums](../defining-enums/#toc-string-enums) (e.g `enum E {A, B}`), as the member names are the same as the values, the runtime cost is constant - +equivalent to calling `.hasOwnProperty`. For other enums, a `Map` is created on the first call, and subsequent calls simply call `.has` on the cached map. +Thus the cost is amoritzed constant. + +#### .isValid {#toc-isvalid} +Type: `isValid(input: ?TRepresentationType): boolean` + +The `isValid` method is like `cast`, but simply returns a boolean: `true` if the input supplied is a valid enum value, and `false` if it is not. + +```js +const data: string = getData(); +const isStatus: boolean = Status.isValid(data); +``` + +`isValid` uses `this` (representing the object of enum members), so if you want to pass the function itself as a value, you should use an arrow function. For example: + +```js +const strings: Array = ...; +// WRONG: const statusStrings = strings.filter(Status.isValid); +const statusStrings = strings.filter((input) => Status.isValid(input)); // Correct +``` + +Runtime cost: The same as described under `.cast` above. + +#### .members {#toc-members} +Type: `members(): Iterator` + +The `members` method returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#iterators) (that is iterable) of all the enum members. + +```js +const buttons = []; +function getButtonForStatus(status: Status) { ... } + +for (const status of Status.members()) { + buttons.push(getButtonForStatus(status)); +} +``` +The iteration order is guaranteed to be the same as the order of the members in the declaration. + +The enum is not enumerable or iterable itself (e.g. a for-in/for-of loop over the enum will not iterate over its members), you have to use the `.members()` method for that purpose. + +You can convert the iterable into an `Array` using: `Array.from(Status.members())`. +You can make use of [`Array.from`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from)'s second argument to map over the values at +the same time you construct the array: e.g. + +```js +const buttonArray = Array.from( + Status.members(), + status => getButtonForStatus(status), +); +``` + +#### .getName {#toc-getname} +Type: `getName(value: TEnum): string` + +The `getName` method maps enum values to the string name of that value's enum member. When using `number`/`boolean`/`symbol` enums, +this can be useful for debugging and for generating internal CRUD UIs. For example: +```js +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +const status: Status = ...; + +console.log(Status.getName(status)); +// Will print a string, either "Active", "Paused", or "Off" depending on the value. +``` +Runtime cost: The same as described under `.cast` above. A single cached reverse map from enum value to enum name is used for `.cast`, `.isValid`, and `.getName`. +The first call of any of those methods will create this cached map. + + +### Exhaustively checking enums with a `switch` {#toc-exhaustively-checking-enums-with-a-switch} +When checking an enum value in a `switch` statement, we enforce that you check against all possible enum members, and don’t include redundant cases. +This helps ensure you consider all possibilities when writing code that uses enums. It especially helps with refactoring when adding or removing members, +by pointing out the different places you need to update. + +```js +const status: Status = ...; + +switch (status) { // Good, all members checked + case Status.Active: + break; + case Status.Paused: + break; + case Status.Off: + break; +} +``` + +You can use `default` to match all members not checked so far: +```js +switch (status) { + case Status.Active: + break; + default: // When `Status.Paused` or `Status.Off` + break; +} +``` + +You can check multiple enum members in one switch case: +```js +switch (status) { + case Status.Active: + case Status.Paused: + break; + case Status.Off: + break; +} +``` + +You must match against all of the members of the enum (or supply a `default` case): +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +const status: Status = Status.Active; + +// Error: you haven't checked 'Status.Off' in the switch +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; +} +``` + +You can’t repeat cases (as this would be dead code!): +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +const status: Status = Status.Active; + +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + case Status.Off: + break; + case Status.Paused: // Error: you already checked for 'Status.Paused' + break; +} +``` + +A `default` case is redundant if you’ve already matched all cases: +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +const status: Status = Status.Active; + +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + case Status.Off: + break; + default: // Error: you've already checked all cases, the 'default' is redundant + break; +} +// The following is OK because the `default` covers the `Status.Off` case: +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + default: + break; +} +``` +Except if you are switching over an enum with [unknown members](../defining-enums/#toc-flow-enums-with-unknown-members). + +If you nest exhaustively checked switches inside exhaustively checked switches, and are returning from each branch, you must add a `break;` after the nested switch: +```js +switch (status) { + case Status.Active: + return 1; + case Status.Paused: + return 2; + case Status.Off: + switch (otherStatus) { + case Status.Active: + return 1; + case Status.Paused: + return 2; + case Status.Off: + return 3; + } + break; +} +``` + +Remember, you can add blocks to your switch cases. They are useful if you want to use local variables: + +```js +switch (status) { + case Status.Active: { + const x = f(); + ... + break; + } + case Status.Paused: { + const x = g(); + ... + break; + } + case Status.Off: { + const y = ...; + ... + break; + } +} +``` +If you didn't add blocks in this example, the two declarations of `const x` would conflict and result in an error. + +Enums are not checked exhaustively in `if` statements or other contexts other than `switch` statements. + + +### Exhaustive checking with unknown members {#toc-exhaustive-checking-with-unknown-members} +If your enum has [unknown members](../defining-enums/#toc-flow-enums-with-unknown-members) (specified with the `...`), e.g. + +```js +enum Status { + Active, + Paused, + Off, + ... +} +``` + +Then a `default` is always required when switching over the enum. The `default` checks for "unknown" members you haven't explicitly listed. + +```js +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + case Status.Off: + break; + default: + // Checks for members not explicitly listed +} +``` + +You can use the `require-explicit-enum-switch-cases` [Flow Lint](../../linting/flowlint-comments/) to require that all known members are explicitly listed as cases. For example: + +```js flow-check +enum Status { + Active = 1, + Paused = 2, + Off = 3, +} +const status: Status = Status.Active; + +// flowlint-next-line require-explicit-enum-switch-cases:error +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + default: + break; +} +``` + +You can fix if by doing: +```js +// flowlint-next-line require-explicit-enum-switch-cases:error +switch (status) { + case Status.Active: + break; + case Status.Paused: + break; + case Status.Off: // Added the missing `Status.Off` case + break; + default: + break; +} +``` +The `require-explicit-enum-switch-cases` lint is not one to enable globally, but rather on a per-`switch` basis when you want the behavior. +With normal enums, for each `switch` statement on it, you can either provide a `default` or not, and thus decide if you want to require each case explicitly listed or not. +Similarly for Flow Enums with unknown members, you can also enable this lint on a per-switch basis. + +The lint works for switches of regular Flow Enum types as well. +It in effect bans the usage of `default` in that `switch` statement, by requiring the explicit listing of all enum members as cases. + + +### Mapping enums to other values {#toc-mapping-enums-to-other-values} +There are a variety of reasons you may want to map an enum value to another value, e.g. a label, icon, element, and so on. + +With previous patterns, it was common to use object literals for this purpose, however with Flow Enums we prefer functions which contain a switch, which we can exhaustively check. + +Instead of: +```js +const STATUS_ICON: {[Status]: string} = { + [Status.Active]: 'green-checkmark', + [Status.Paused]: 'grey-pause', + [Status.Off]: 'red-x', +}; +const icon = STATUS_ICON[status]; +``` + +Which doesn't actually guarantee that we are mapping each `Status` to some value, use: +```js +function getStatusIcon(status: Status): string { + switch (status) { + case Status.Active: + return 'green-checkmark'; + case Status.Paused: + return 'grey-pause'; + case Status.Off: + return 'red-x'; + } +} +const icon = getStatusIcon(status); +``` + +In the future if you add or remove an enum member, Flow will tell you to update the switch as well so it's always accurate. + +If you actually want a dictionary which is not exhaustive, you can use a [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map): +```js +const counts = new Map([ + [Status.Active, 2], + [Status.Off, 5], +]); +const activeCount: Status | void = counts.get(Status.Active); +``` + +Flow Enums cannot be used as keys in object literals, as [explained later on this page](#toc-distinct-object-keys). + + +### Enums in a union {#toc-enums-in-a-union} +If your enum value is in a union (e.g. `?Status`), first refine to only the enum type: + +```js +const status: ?Status = ...; + +if (status != null) { + (status: Status); // 'status' is refined to 'Status' at this point + switch (status) { + case Status.Active: break; + case Status.Paused: break; + case Status.Off: break; + } +} +``` +If you want to refine *to* the enum value, you can use `typeof` with the representation type, for example: + +```js +const val: Status | number = ...; + +// 'Status' is a string enum +if (typeof val === 'string') { + (val: Status); // 'val' is refined to 'Status' at this point + switch (val) { + case Status.Active: break; + case Status.Paused: break; + case Status.Off: break; + } +} +``` + + +### Exporting enums {#toc-exporting-enums} +An enum is a type and a value (like a class is). To export both the type and the value, export it like a you would a value: + +```js flow-check +export enum Status {} +``` +Or, as the default export (note: you must always specify an enum name, `export default enum {}` is not allowed): + +```js flow-check +export default enum Status {} +``` + +Using CommonJS: +```js flow-check +enum Status {} +module.exports = Status; +``` + +To export **only** its type, but not the value, you can do: + +```js flow-check +enum Status {} +export type {Status}; +``` +Other functions within the file will still have access to the enum implementation. + + +### Importing enums {#toc-importing-enums} +If you have exported an enum like this: + +```js flow-check +// status.js +export default enum Status { + Active, + Paused, + Off, +} +``` + +You can import it as both a value and a type like this: +```js +import Status from 'status'; + +const x: Status /* used as type */ = Status.Active /* used as value */; +``` + +If you only need to use the type, you can import it as a type: +```js +import type Status from 'status'; + +function printStatus(status: Status) { + ... +} +``` + +Using CommonJS: +```js +const Status = require('status'); +``` + + +### Generic enums {#toc-generic-enums} +There is currently no way to specify a generic enum type, but there have been enough requests that it is something we will look into in the future. + +For some use cases of generic enums, you can currently ask users to supply functions which call the enum [methods](#toc-methods) instead (rather than passing in the enum itself), for example: + +```js +function castToEnumArray( + f: TRepresentationType => TEnum, + xs: Array, +): Array { + return xs.map(f); +} + +castToEnumArray((input) => Status.cast(input), ["Active", "Paused", "Invalid"]); +``` + + +### When to not use enums {#toc-when-to-not-use-enums} +Enums are designed to cover many use cases and exhibit certain benefits. The design makes a variety of trade-offs to make this happen, and in certain situations, +these trade-offs might not be right for you. In these cases, you can continue to use existing patterns to satisfy your use cases. + + +#### Distinct object keys {#toc-distinct-object-keys} +You can’t use enum members as distinct object keys. + +The following pattern works because the types of `LegacyStatus.Active` and `LegacyStatus.Off` are different. One has the type `'Active'` and one has the type `'Off'`. + +```js flow-check +const LegacyStatus = Object.freeze({ + Active: 'Active', + Paused: 'Paused', + Off: 'Off', +}); +const o = { + [LegacyStatus.Active]: "hi", + [LegacyStatus.Off]: 1, +}; +const x: string = o[LegacyStatus.Active]; // OK +const y: number = o[LegacyStatus.Off]; // OK +const z: boolean = o[LegacyStatus.Active]; // Error - as expected +``` +We can’t use the same pattern with enums. All enum members have the same type, the enum type, so Flow can’t track the relationship between keys and values. + +If you wish to map from an enum value to another value, you should use a [function with an exhaustively-checked switch instead](#toc-mapping-enums-to-other-values). + + +#### Disjoint object unions {#toc-disjoint-object-unions} +A defining feature of enums is that unlike unions, each enum member does not form its own separate type. Every member has the same type, the enum type. +This allows enum usage to be analyzed by Flow in a consistently fast way, however it means that in certain situations which require separate types, we can’t use enums. +Consider the following union, following the [disjoint object union](../../types/unions/#toc-disjoint-object-unions) pattern: + +```js flow-check +type Action = + | {type: 'Upload', data: string} + | {type: 'Delete', id: number}; +``` +Each object type in the union has a single common field (`type`) which is used to distinguish which object type we are dealing with. + +We can’t use enum types for this field, because for this mechanism to work, the type of that field must be different in each member of the union, +but enum members all have the same type. + +In the future, we might add the ability for enums to encapsulate additional data besides a key and a primitive value - this would allow us to replace disjoint object unions. + + +#### Guaranteed inlining {#toc-guaranteed-inlining} +Flow Enums are designed to allow for inlining (e.g. [member values must be literals](../defining-enums/#toc-literal-member-values), +[enums are frozen](../defining-enums/#toc-fixed-at-declaration)), however the inlining itself needs to be part of the build system (whatever you use) rather than Flow itself. + +While enum member access (e.g. `Status.Active`) can be inlined (other than [symbol enums](../defining-enums/#toc-symbol-enums) which cannot be inlined due to the nature of symbols), +usage of its methods (e.g. `Status.cast(x)`) cannot be inlined. diff --git a/_src/errors/index.md b/_src/errors/index.md new file mode 100644 index 00000000000..a4a2ef79fd6 --- /dev/null +++ b/_src/errors/index.md @@ -0,0 +1,79 @@ +--- +title: Error Suppressions +slug: /errors +description: "Learn how to suppress Flow's type errors." +--- + +Flow reports many different kinds of errors for many common programming mistakes, but not every JavaScript pattern can be understood by Flow. +If you are confident your code is correct, and that Flow is +erroring too conservatively, you can suppress the error so that +Flow does not report it. + +### What is a Suppression? {#toc-what-is-a-suppression} + +A suppression is a special kind of comment that you can place on the line before a type +error. It tells Flow not to report that error when checking your code. Suppression +comments look like the following: + +``` +// [] extra text +``` + +A suppressor can be one of the following: +- `$FlowFixMe`: for type errors that you intend to fix later +- `$FlowIssue`: for a type error that you suspect is an issue with Flow +- `$FlowExpectedError`: for a location where you expect Flow to produce a type error (for instance, when performing an invalid type cast). +- `$FlowIgnore`: for locations where you want Flow to ignore your code + +Note that all of the suppressors behave identically; we simply recommend using them as described here for your own ease of reference. + +The `` portion of a suppression is optional, but when included specifies which [error code](#toc-making-suppressions-more-granular-with-error-codes) the suppression affects. + +Some examples of suppression comments: + +``` +// $FlowFixMe + +// $FlowIssue[incompatible-type] + +/* $FlowIgnore[prop-missing] some other text here */ + +/* $FlowFixMe[incompatible-cast] this + is a multi-line + comment */ + +{ /* $FlowIssue this is how you suppress errors inside JSX */ } +``` + +In order to be a valid suppression comment, there are also some conditions that must be true: +- No text can precede the suppressor, or come between the suppressor and the code. For example: `// some text then $FlowFixMe` is not a valid suppression, nor is `// $FlowIssue some text [incompatible-type]` or ` //$FlowFixMe [prop-missing]` (note the space here!). +- Suppressions must be on the line immediately before the error they suppress, otherwise they will not apply. + +### Making Suppressions More Granular with Error Codes {#toc-making-suppressions-more-granular-with-error-codes} + +Suppressible Flow errors will also have an error code associated with them (after version 0.127). This code concisely describes the type of issue the error is reporting, and is different between different kinds of errors. + +In order to prevent suppressions from suppressing different kinds of type errors on the same line (by default suppressions without codes suppress every error on the following line), you can add an error code to your suppression. For example: `// $FlowFixMe[incompatible-type]` would only suppress errors with the `incompatible-type` code. So: + +```js flow-check +//$FlowFixMe[incompatible-type] +(3 : string); +``` +would report no errors, but +```js flow-check +//$FlowFixMe[prop-missing] +(3 : string); +``` +would still report a type incompatibility. + +To suppress multiple error codes on the same line, you can stack suppression comments one after another, and they will all apply to the first non-comment line like so: + +```js flow-check +let y : number | { x : number } = 1; + +// $FlowFixMe[incompatible-type] +// $FlowFixMe[prop-missing] +(y.x : string); +``` + +This will suppress both of the two errors on this line. diff --git a/_src/faq.md b/_src/faq.md new file mode 100644 index 00000000000..3171487e16c --- /dev/null +++ b/_src/faq.md @@ -0,0 +1,277 @@ +--- +title: FAQ +description: Have a question about using Flow? Check here first! +slug: /faq +--- + +## I checked that `foo.bar` is not `null`, but Flow still thinks it is. Why does this happen and how can I fix it? + +Flow does not keep track of side effects, so any function call may potentially nullify your check. +This is called [refinement invalidation](../lang/refinements/#toc-refinement-invalidations). Example: + +```js flow-check +type Param = { + bar: ?string, +} +function myFunc(foo: Param): string { + if (foo.bar) { + console.log("checked!"); + return foo.bar; // Flow errors. If you remove the console.log, it works + } + + return "default string"; +} +``` + +You can get around this by storing your checked values in local variables: + +```js flow-check +type Param = { + bar: ?string, +} +function myFunc(foo: Param): string { + if (foo.bar) { + const bar = foo.bar; + console.log("checked!"); + return bar; // Ok! + } + + return "default string"; +} +``` + +## I checked that my value is of type A, so why does Flow still believe it's A | B? + +Refinement invalidation can also occur variables are updated: + +```js flow-check +type T = string | number; + +let x: T = 'hi'; + +function f() { + x = 1; +} + +if (typeof x === 'string') { + f(); + (x: string); +} +``` + +A work around would be to make the variable `const` and refactor your code to avoid the reassignment: + +```js flow-check +type T = string | number; + +const x: T = 'hi'; + +function f(x: T): number { + return 1; +} + +if (typeof x === 'string') { + const xUpdated = f(x); + (xUpdated: number); + (x: string); +} +``` + +## I'm in a closure and Flow ignores the if check that asserts that `foo.bar` is defined. Why? + +In the previous section we showed how refinements are lost after a function call. The exact same thing happens within closures, since +Flow does not track how your value might change before the closure is called: + +```js flow-check +const people = [{age: 12}, {age: 18}, {age: 24}]; +const oldPerson: {age: ?number} = {age: 70}; +if (oldPerson.age) { + people.forEach(person => { + console.log(`The person is ${person.age} and the old one is ${oldPerson.age}`); + }) +} +``` + +The solution here is to move the if check in the `forEach`, or to assign the `age` to an intermediate variable: + +```js flow-check +const people = [{age: 12}, {age: 18}, {age: 24}]; +const oldPerson: {age: ?number} = {age: 70}; +if (oldPerson.age) { + const age = oldPerson.age; + people.forEach(person => { + console.log(`The person is ${person.age} and the old one is ${age}`); + }) +} +``` + +## But Flow should understand that this function cannot invalidate this refinement, right? + +Flow is not [complete](../lang/types-and-expressions/#toc-soundness-and-completeness), so it cannot check all code perfectly. Instead, +Flow will make conservative assumptions to try to be sound. + +## Why can't I use a function in my if-clause to check the type of a property? + +Flow doesn't track refinements made in separated function calls: + +```js flow-check +const add = (first: number, second: number) => first + second; +const val: string | number = 1; +const isNumber = (valueToRefine: mixed) => typeof valueToRefine === 'number'; +if (isNumber(val)) { + add(val, 2); +} +``` + +However, Flow has [predicates functions](../types/functions/#predicate-functions) that can do these checks via `%checks`: + +```js flow-check +const add = (first: number, second: number) => first + second; +const val: string | number = 1; +const isNumber = (valueToRefine: mixed): %checks => typeof valueToRefine === 'number'; +if (isNumber(val)) { + add(val, 2); +} +``` + +## Why can't I pass an `Array` to a function that takes an `Array` + +The function's argument allows `string` values in its array, but in this case Flow prevents the original array from receiving a `number`. +Inside the function, you would be able to push a `number` to the argument array, causing the type of the original array to no longer be accurate. + +You can fix this error by changing the type of the argument to `$ReadOnlyArray`, making it [covariant](../lang/variance/#toc-covariance). +This prevents the function body from pushing anything to the array, allowing it to accept narrower types. + +As an example, this would not work: + +```js flow-check +const fn = (arr: Array) => { + arr.push(123); // Oops! Array was passed in - now inaccurate + return arr; +}; + +const arr: Array = ['abc']; + +fn(arr); // Error! +``` + +but with `$ReadOnlyArray` you can achieve what you were looking for: + +```js flow-check +const fn = (arr: $ReadOnlyArray) => { + // arr.push(321); NOTE! Since you are using $ReadOnlyArray<...> you cannot push anything to it + return arr; +}; + +const arr: Array = ['abc']; + +fn(arr); +``` + +## Why can't I pass `{a: string}` to a function that takes `{a: string | number}` + +The function argument allows `string` values in its field, but in this case Flow prevents the original object from having a `number` written to it. +Within the body of the function you would be able to mutate the object so that the property `a` would receive a `number`, causing the type of the original object to no longer be accurate. + +You can fix this error by making the property [covariant](../lang/variance/#toc-covariance) (read-only): `{+a: string | number}`. +This prevents the function body from writing to the property, making it safe to pass more restricted types to the function. + +As an example, this would not work: + +```js flow-check +const fn = (obj: {a: string | number}) => { + obj.a = 123; // Oops! {a: string} was passed in - now inaccurate + return obj; +}; + +const object: {a: string} = {a: 'str' }; + +fn(object); // Error! +``` + +but with a covariant property you can achieve what you were looking for: + +```js flow-check +const fn = (obj: {+a: string | number}) => { + // obj.a = 123 NOTE! Since you are using covariant {+a: string | number}, you can't mutate it + return obj; +}; + +const object: {a: string} = { a: 'str' }; + +fn(object); +``` + +## Why can't I refine a union of objects? + +There are two potential reasons: +1. You are using inexact objects. +2. You are destructuring the object. When destructuring, Flow loses track of object properties. + +Broken example: + +```js flow-check +type Action = + | {type: 'A', payload: string} + | {type: 'B', payload: number}; + +// Not OK +const fn = ({type, payload}: Action) => { + switch (type) { + case 'A': return payload.length; // Error! + case 'B': return payload + 10; + } +} +``` + +Fixed example: + +```js flow-check +type Action = + | {type: 'A', payload: string} + | {type: 'B', payload: number}; + +// OK +const fn = (action: Action) => { + switch (action.type) { + case 'A': return action.payload.length; + case 'B': return action.payload + 10; + } +} +``` + +## I got a "Missing type annotation" error. Where does it come from? + +Flow requires type annotations at module boundaries to make sure it can scale. To read more about that, check out our [blog post](https://medium.com/flow-type/asking-for-required-annotations-64d4f9c1edf8) about that. + +The most common case you'll encounter is when exporting a function or React component. Flow requires you to annotate inputs. For instance in this example, Flow will complain: + +```js flow-check +export const add = a => a + 1; +``` + +The fix here is to add types to the parameters of `add`: + +```js flow-check +export const add = (a: number): number => a + 1; +``` + +To see how you can annotate exported React components, check out our docs on [HOCs](../react/hoc/#toc-exporting-wrapped-components). + +There are other cases where this happens, and they might be harder to understand. You'll get an error like `Missing type annotation for U` For instance, you wrote this code: + +```js flow-check +const array = ['a', 'b'] +export const genericArray = array.map(a => a) +``` + +Here, Flow will complain on the `export`, asking for a type annotation. Flow wants you to annotate exports returned by a generic function. The type of `Array.prototype.map` is `map(callbackfn: (value: T, index: number, array: Array) => U, thisArg?: any): Array`. The `` corresponds to what is called a [generic](../types/generics/), to express the fact that the type of the function passed to map is linked to the type of the array. + +Understanding the logic behind generics might be useful, but what you really need to know to make your typings valid is that you need to help Flow to understand the type of `genericArray`. + +You can do that by annotating the exported constant: + +```js flow-check +const array = ['a', 'b'] +export const genericArray: Array = array.map(a => a) +``` diff --git a/_src/getting-started.md b/_src/getting-started.md new file mode 100644 index 00000000000..981862a45fc --- /dev/null +++ b/_src/getting-started.md @@ -0,0 +1,23 @@ +--- +title: Getting Started +slug: /getting-started +description: Never used a type system before or just new to Flow? Let's get you up and running in a few minutes. +--- + +Flow is a static type checker for your JavaScript code. It does a lot of work +to make you more productive. Making you code faster, smarter, more confidently, +and to a bigger scale. + +Flow checks your code for errors through **static type annotations**. These +_types_ allow you to tell Flow how you want your code to work, and Flow will +make sure it does work that way. + +```js flow-check +function square(n: number): number { + return n * n; +} + +square("2"); // Error! +``` + +First step: [install Flow](../install). diff --git a/_src/index.md b/_src/index.md new file mode 100644 index 00000000000..01ae475b7ad --- /dev/null +++ b/_src/index.md @@ -0,0 +1,13 @@ +--- +title: Documentation +description: Guides and references for all you need to know about Flow +displayed_sidebar: docsSidebar +spug: / +--- + +Guides and references for all you need to know about Flow. + +import DocCardList from '@theme/DocCardList'; +import docsCategories from '../src/js/docs-categories'; + + diff --git a/_src/install.md b/_src/install.md new file mode 100644 index 00000000000..1d149e709f1 --- /dev/null +++ b/_src/install.md @@ -0,0 +1,163 @@ +--- +title: Installation +slug: /install +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## Setup Compiler + +First you'll need to setup a compiler to strip away Flow types. You can +choose between [Babel](http://babeljs.io/) and +[flow-remove-types](https://github.com/facebook/flow/tree/master/packages/flow-remove-types). + + + + +[Babel](http://babeljs.io/) is a compiler for JavaScript code that has +support for Flow. Babel will take your Flow code and strip out any type +annotations. Read more about [using Babel](../tools/babel). + +First install `@babel/core`, `@babel/cli`, and `@babel/preset-flow` with +either [Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/). + +```bash npm2yarn +npm install --save-dev @babel/core @babel/cli @babel/preset-flow +``` + +Next you need to create a `.babelrc` file at the root of your project with +`"@babel/preset-flow"` in your `"presets"`. + +```json +{ "presets": ["@babel/preset-flow"] } +``` + +If you then put all your source files in a `src` directory you can compile them +to another directory by running: + +```bash +./node_modules/.bin/babel src/ -d lib/ +``` + +You can add this to your `package.json` scripts easily, alongside your `"devDependencies"` on Babel. + +```json +{ + "name": "my-project", + "main": "lib/index.js", + "scripts": { + "build": "babel src/ -d lib/", + "prepublish": "yarn run build" + } +} +``` + +> **Note:** You'll probably want to add a `prepublish` script that runs this +> transform as well, so that it runs before you publish your code to the npm +> registry. + + + + +[flow-remove-types](https://github.com/facebook/flow/tree/master/packages/flow-remove-types) is a small +CLI tool for stripping Flow type annotations from files. It's a lighter-weight +alternative to Babel for projects that don't need everything Babel provides. + +First install `flow-remove-types` with either +[Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/). + +```bash npm2yarn +npm install --save-dev flow-remove-types +``` + +If you then put all your source files in a `src` directory you can compile them +to another directory by running: + +```sh +./node_modules/.bin/flow-remove-types src/ -d lib/ +``` + +You can add this to your `package.json` scripts easily, alongside your `"devDependencies"` on `flow-remove-types`. + +```json +{ + "name": "my-project", + "main": "lib/index.js", + "scripts": { + "build": "flow-remove-types src/ -d lib/", + "prepublish": "yarn run build" + } +} +``` + +> **Note:** You'll probably want to add a `prepublish` script that runs this +> transform as well, so that it runs before you publish your code to the npm +> registry. + + + + +## Setup Flow + +Flow works best when installed per-project with explicit versioning rather than +globally. + +Luckily, if you're already familiar with `npm` or `yarn`, this process should +be pretty familiar! + +### Add a `devDependency` on the `flow-bin` npm package + +```bash npm2yarn +npm install --save-dev flow-bin +``` + +### Add a `"flow"` script to your `package.json` + +```json +{ + "name": "my-flow-project", + "version": "1.0.0", + "devDependencies": { + "flow-bin": "^0.225.1" + }, + "scripts": { + "flow": "flow" + } +} +``` + +### Run Flow + +The first time, run: + +```bash npm2yarn +npm run flow init +``` + +``` +> my-flow-project@1.0.0 flow /Users/Projects/my-flow-project +> flow "init" +``` + +After running `flow` with `init` the first time, run: + +```bash npm2yarn +npm run flow +``` + +``` +> my-flow-project@1.0.0 flow /Users/Projects/my-flow-project +> flow + +No errors! +``` + +## Setup ESLint + +If you use ESLint, you can read [our page on ESLint](../tools/eslint) to set it up to support Flow. diff --git a/_src/lang/annotation-requirement.md b/_src/lang/annotation-requirement.md new file mode 100644 index 00000000000..93273ea1ed9 --- /dev/null +++ b/_src/lang/annotation-requirement.md @@ -0,0 +1,311 @@ +--- +title: Annotation Requirement +slug: /lang/annotation-requirement +--- + +> **Note:** As of version 0.199 Flow uses [Local Type Inference](https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347) as its inference algorithm. +The rules in this section reflect the main design features in this inference scheme. + +Flow tries to avoid requiring type annotation for parts of programs where types can easily +be inferred from the immediate context of an expression, variable, parameter, etc. + +## Variable declarations + +Take for example the following variable definition +```js +const len = "abc".length; +``` +All information necessary to infer the type of `len` is included in the initializer +`"abc".length`. Flow will first determine that `"abc"` is a string, and then that the +`length` property of a string is a number. + +The same logic can be applied for all `const`-like initializations. Where things +get a little more complicated is when variable initialization spans across multiple statements, +for example in +```js flow-check +declare var maybeString: ?string; + +let len; +if (typeof maybeString === "string") { + len = maybeString.length; +} else { + len = 0; +} +``` +Flow can still determine that `len` is a `number`, but in order to do so it looks +ahead to multiple initializer statements. See section on [variable declarations](../variables) +for details on how various initializer patterns determine the type of a variable, +and when an annotation on a variable declaration is necessary. + +## Function Parameters + +Unlike variable declarations, this kind of "lookahead" reasoning cannot be used to determine +the type of function parameters. Consider the function +```js +function getLength(x) { + return x.length; +} +``` +There are many kinds of `x` on which we could access and return a `length` property: +an object with a `length` property, or a string, just to name a few. If later on in +the program we had the following calls to `getLength` +```js +getLength("abc"); +getLength({ length: 1 }); +``` +one possible inference would be that `x` is a `string | { length: number }`. What this implies, +however, is that the type of `getLength` is determined by any part of the current +program. This kind of global reasoning can lead to surprising action-at-a-distance +behavior, and so is avoided. Instead, Flow requires that function parameters are annotated. Failure to +provide such a type annotation manifests as a `[missing-local-annot]` error on the parameter `x`, +and the body of the function is checked with `x: any`: +```js flow-check +function getLength(x) { + return x.length; +} + +const n = getLength(1); // no error since getLength's parameter type is 'any' +``` + +To fix this error, one can simply annotate `x` as +```js flow-check +function getLength(x: string) { + return x.length; +} +``` +The same requirement holds for class methods +```js flow-check +class WrappedString { + data: string; + setStringNoAnnotation(x) { + this.data = x; + } + setString(x: string) { + this.data = x; + } +} +``` + +## Contextual Typing {#toc-contextual-typing} + +Function parameters do not always need to be explicitly annotated. In the case of a +callback function to a function call, the parameter type can easily +be inferred from the immediate context. Consider for example the following code +```js +const arr = [0, 1, 2]; +const arrPlusOne = arr.find(x => x % 2 === 1); +``` +Flow infers that the type of `arr` is `Array`. Combining this with the builtin +information for `Array.find`, Flow can determine that the type of `x => x % 2 + 1` +needs to be `number => mixed`. This type acts as a *hint* for Flow and provides enough +information to determine the type of `x` as `number`. + +Any attendant annotation can potentially act as a hint to a function parameter, for example +```js flow-check +const fn1: (x: number) => number = x => x + 1; +``` +However, it is also possible that an annotation cannot be used as a function +parameter hint: +```js flow-check +const fn2: mixed = x => x + 1; +``` +In this example the `mixed` type simply does not include enough information to +extract a candidate type for `x`. + +Flow can infer the types for unannotated parameters even when they are nested within +other expressions like objects. For example in +in +```js flow-check +const fn3: { f: (number) => void } = { f: (x) => {(x: string)} }; +``` +Flow will infer `number` as the type of `x`, and so the cast fails. + + +## Function Return Types {#toc-function-return-types} + +Unlike function parameters, a function's return type does not need to be annotated in general. +So the above definition of `getLength` won't raise any Flow errors. + +There are, however, a couple of notable exceptions to this rule. The first one is +class methods. If we included to the `WrappedString` class a `getString` method +that returns the internal `data` property: +```js flow-check +class WrappedString { + data: string; + getString(x: string) { + return this.data; + } +} +``` +Flow would complain that `getString` is missing an annotation on the return. + +The second exception is recursive definitions. A trivial example of this would be +```js flow-check +function foo() { + return bar(); +} + +function bar() { + return foo(); +} +``` +The above code raises a `[definition-cycle]` error, which points to the two locations +that form a dependency cycle, the two missing return annotations. Adding +a return annotation to either function would resolve the issue. + +Effectively, the requirement on an annotation for method returns is a special-case +of the recursive definition restriction. The recursion is possible through access on +`this`. + +## Generic Calls {#toc-generic-calls} + +In calls to [generic functions](../../types/generics) the type of the result may +depend on the types of the values passed in as arguments. +This section discusses how this result is computed, when type arguments are not +explicitly provided. + +Consider for example the definition +```js +declare function map( + f: (T) => U, + array: $ReadOnlyArray, +): Array; +``` +and a potential call with arguments `x => x + 1` and `[1, 2, 3]`: +```js +map(x => x + 1, [1, 2, 3]); +``` +Here Flow infers that the type of `x` is `number`. + +Some other common examples of generic calls are calling the constructor of the generic +[`Set` class](https://github.com/facebook/flow/blob/82f88520f2bfe0fa13748b5ead711432941f4cb9/lib/core.js#L1799-L1801) +or calling `useState` from the React library: +```js flow-check +const set = new Set([1, 2, 3]); + +import { useState } from 'react'; +const [num, setNum] = useState(42); +``` +Flow here infers that the type of `set` is `Set`, and that `num` and `setNum` +are `number` and `(number) => void`, respectively. + +### Computing a Solution + +Computing the result of a generic call amounts to: +1. coming up with a solution for `T` and `U` that does not contain generic parts, +2. replacing `T` and `U` with the solution in the signature of `map`, and +3. performing a call to this new signature of `map`. + +This process is designed with two goals in mind: +* *Soundness*. The results need to lead to a correct call when we reach step (3). +* *Completeness*. The types Flow produces need to be as precise and informative as possible, +to ensure that other parts of the program will be successfully checked. + +Let's see how these two goals come into play in the `map` example from above. + +Flow detects that `$ReadOnlyArray` needs to be compatible with the type of `[1, 2, 3]`. +It can therefore infer that `T` is `number`. + +With the knowledge of `T` it can now successfully check `x => x + 1`. The parameter `x` +is contextually typed as `number`, and thus the result `x + 1` is also a number. +This final constraint allows us to compute `U` as a `number` too. + +The new signature of `map` after replacing the generic parts with the above solution +is +```js +(f: (number) => number, array: $ReadOnlyArray) => Array +``` +It is easy to see that the call would be successfully checked. + +### Errors during Polymorphic Calls + +If the above process goes on smoothly, you should not be seeing any errors associated with the call. +What happens though when this process fails? + +There are two reasons why this process could fail: + +#### Under-constrained Type Parameters + +There are cases where Flow might not have enough information to decide the type of a type parameter. +Let's examine again a call to the builtin generic +[`Set` class](https://github.com/facebook/flow/blob/82f88520f2bfe0fa13748b5ead711432941f4cb9/lib/core.js#L1799-L1801) +constructor, this time without passing any arguments: +```js flow-check +const set = new Set(); +set.add("abc"); +``` +During the call to `new Set`, we are not providing enough information for Flow to +determine the type for `T`, even though the subsequent call to `set.add` clearly +implies that `T` will be a string. Remember that inference of type arguments is +local to the call, so Flow will not attempt to look ahead in later statements +to determine this. + +In the absence of information, Flow would be at liberty to infer *any* type +as `T`: `any`, `mixed`, `empty`, etc. +This kind of decision is undesirable, as it can lead to surprising results. +For example, if we silently decided on `Set` then the call to `set.add("abc")` would +fail with an incompatibility between `string` and `empty`, without a clear indication +of where the `empty` came from. + +So instead, in situations like this, you'll get an `[underconstrained-implicit-instantiation]` error. +The way to fix this error is by adding a type annotation. There a few potential ways to do this: + +- Add an annotation at the call-site in one of two ways: + * an explicit type argument + ```js + const set = new Set(); + ``` + * an annotation on the initialization variable: + ```js + const set: Set = new Set(); + ``` + +- Add a default type on the type parameter `T` at the definition of the class: + ```js + declare class SetWithDefault extends $ReadOnlySet { + constructor(iterable?: ?Iterable): void; + // more methods ... + } + ``` + In the absence of any type information at the call-site, Flow will use the default + type of `T` as the inferred type argument: + ```js + const defaultSet = new SetWithDefault(); // defaultSet is SetWithDefault + ``` + +#### Incompatibility Errors + +Even when Flow manages to infer non-generic types for the type parameters in a generic +call, these types might still lead to incompatibilities either in the current call or in +code later on. + +For example, if we had the following call to `map`: +```js flow-check +declare function map(f: (T) => U, array: $ReadOnlyArray): Array; +map(x => x + 1, [{}]); +``` +Flow will infer `T` as `{}`, and therefore type `x` as `{}`. This will cause an error when checking the arrow function +since the `+` operation is not allowed on objects. + +Finally, a common source of errors is the case where the inferred type in a generic +call is correct for the call itself, but not indicative of the expected use later in the code. +For example, consider +```js flow-check +import { useState } from 'react'; +const [str, setStr] = useState(""); + +declare var maybeString: ?string; +setStr(maybeString); +``` +Passing the string `""` to the call to `useState` makes Flow infer `string` as the type +of the state. So `setStr` will also expect a `string` as input when called later on, +and therefore passing a `?string` will be an error. + +Again, to fix this error it suffices to annotate the expected "wider" type of state +when calling `useState`: +```js +const [str, setStr] = useState(""); +``` + +## Empty Array Literals {#toc-empty-array-literals} +Empty array literals (`[]`) are handled specially in Flow. You can read about their [behavior and requirements](../../types/arrays/#toc-empty-array-literals). diff --git a/_src/lang/depth-subtyping.md b/_src/lang/depth-subtyping.md new file mode 100644 index 00000000000..d77206e51a3 --- /dev/null +++ b/_src/lang/depth-subtyping.md @@ -0,0 +1,68 @@ +--- +title: Depth Subtyping +slug: /lang/depth-subtyping +--- + +Assume we have two [classes](../../types/classes), which have a subtype relationship using `extends`: + +```js flow-check +class Person { + name: string; +} +class Employee extends Person { + department: string; +} +``` + +It's valid to use an `Employee` instance where a `Person` instance is expected. + +```js flow-check +class Person { name: string } +class Employee extends Person { department: string } + +const employee: Employee = new Employee(); +const person: Person = employee; // OK +``` + +However, it is not valid to use an object containing an `Employee` instance +where an object containing a `Person` instance is expected. + +```js flow-check +class Person { name: string } +class Employee extends Person { department: string } + +const employee: {who: Employee} = {who: new Employee()}; +const person: {who: Person} = employee; // Error +``` + +This is an error because objects are mutable. The value referenced by the +`employee` variable is the same as the value referenced by the `person` +variable. + +```js +person.who = new Person(); +``` + +If we write into the `who` property of the `person` object, we've also changed +the value of `employee.who`, which is explicitly annotated to be an `Employee` +instance. + +If we prevented any code from ever writing a new value to the object through +the `person` variable, it would be safe to use the `employee` variable. Flow +provides a syntax for this: + +```js flow-check +class Person { name: string } +class Employee extends Person { department: string } + +const employee: {who: Employee} = {who: new Employee()}; +const person: {+who: Person} = employee; // OK +person.who = new Person(); // Error! +``` + +The plus sign `+` indicates that the `who` property is [covariant](../variance/#toc-covariance). +Using a covariant property allows us to use objects which have subtype-compatible +values for that property. By default, object properties are invariant, which allow +both reads and writes, but are more restrictive in the values they accept. + +Read more about [property variance](../variance/). diff --git a/_src/lang/lazy-modes.md b/_src/lang/lazy-modes.md new file mode 100644 index 00000000000..2d10c3807dc --- /dev/null +++ b/_src/lang/lazy-modes.md @@ -0,0 +1,67 @@ +--- +title: Lazy Mode +slug: /lang/lazy-modes +--- + +By default, the Flow server will typecheck all your code. This way it can answer +questions like "are there any Flow errors anywhere in my code". This is very +useful for tooling, like a continuous integration hook which prevents code +changes which introduce Flow errors. + +However, sometimes a Flow user might not care about all the code. If they are +editing a file `foo.js`, they might only want Flow to typecheck the subset of +the repository needed to answer questions about `foo.js`. Since Flow would only +check a smaller number of files, this would be faster. This is the motivation +behind Flow's lazy mode. + +## Classifying Files {#toc-classifying-files} + +Lazy mode classifes your code into four categories: + +1. **Focused files**. These are the files which the user cares about. +2. **Dependent files**. These are the files which depend on the focused files. +Changes to the focused files might cause type errors in the dependent files. +3. **Dependency files**. These are the files which are needed in order to +typecheck the focused or dependent files. +4. **Unchecked files**. All other files. + +Lazy mode will still find all the JavaScript files and parse them. But it won't +typecheck the unchecked files. + +## Choosing Focused Files {#toc-choosing-focused-files} + +Flow will focus files when they change on disk, using Flow's built-in file watcher +("dfind") or Watchman. + +So, all files that change while Flow is running will be focused. But what about +files that change when Flow is not running? If you're using Git or Mercurial, +Flow will ask it for all of the files that have changed since the mergebase +with "master" (the common ancestor of the current commit and the master branch). + +If you're not using "master" (e.g. "main" instead), you can change this with +the `file_watcher.mergebase_with` config. If you're working from a clone, you +might want to set this to "origin/master" (for Git), which will focus all files +that have changed locally, even if you commit to your local "master" branch. + +The net result is that Flow will find the same errors in lazy mode as in a full +check, so long as there are no errors upstream. For example, if your CI ensures +that there are no errors in "master," then it's redundant for Flow to check all +of the unchanged files for errors that can't exist. + +## Using Lazy Mode {#toc-using-lazy-mode} + +To enable lazy mode, set `lazy_mode=true` in the `.flowconfig`. + +To start Flow in lazy mode manually, run + +```bash +flow start --lazy-mode true +``` + +## Forcing Flow to Treat a File as Focused {#toc-forcing-flow-to-treat-a-file-as-focused} + +You can force Flow to treat one or more files as focused from the CLI. + +```bash +flow force-recheck --focus path/to/A.js path/to/B.js +``` diff --git a/_src/lang/nominal-structural.md b/_src/lang/nominal-structural.md new file mode 100644 index 00000000000..d28d4bd1fea --- /dev/null +++ b/_src/lang/nominal-structural.md @@ -0,0 +1,141 @@ +--- +title: Nominal & Structural Typing +slug: /lang/nominal-structural +--- + +A static type checker can use either the name (nominal typing) or the structure (structural typing) +of types when comparing them against other types (like when checking if one is a [subtype](../subtypes) of another). + +## Nominal typing {#toc-nominal-typing} + +Languages like C++, Java, and Swift have primarily nominal type systems. + +```js +// Pseudo code: nominal system +class Foo { method(input: string) { /* ... */ } } +class Bar { method(input: string) { /* ... */ } } + +let foo: Foo = new Bar(); // Error! +``` + +In this pseudo-code example, the nominal type system errors even though both classes have a method of the same name and type. +This is because the name (and declaration location) of the classes is different. + +## Structural typing {#toc-structural-typing} + +Languages like Go and Elm have primarily structural type systems. + +```js +// Pseudo code: structural system +class Foo { method(input: string) { /* ... */ } } +class Bar { method(input: string) { /* ... */ } } + +let foo: Foo = new Bar(); // Works! +``` + +In this pseudo-code example, the structural type system allows a `Bar` to be used as a `Foo`, +since both classes have methods and fields of the same name and type. + +If the shape of the classes differ however, then a structural system would produce an error: + +```js +// Pseudo code +class Foo { method(input: string) { /* ... */ } } +class Bar { method(input: number) { /* ... */ } } + +let foo: Foo = new Bar(); // Error! +``` + +We've demonstrated both nominal and structural typing of classes, but there are +also other complex types like objects and functions which can also be either +nominally or structurally compared. +Additionally, a type system may have aspects of both structural and nominal systems. + +## In Flow + +Flow uses structural typing for objects and functions, but nominal typing for classes. + +### Functions are structurally typed {#toc-functions-are-structurally-typed} + +When comparing a [function type](../../types/functions) with a function it must have the same structure +in order to be considered valid. + +```js flow-check +type FuncType = (input: string) => void; +function func(input: string) { /* ... */ } +let test: FuncType = func; // Works! +``` + +### Objects are structurally typed {#toc-objects-are-structurally-typed} + +When comparing an [object type](../../types/objects) with an object it must have the same structure +in order to be considered valid. + +```js flow-check +type ObjType = {property: string}; +let obj = {property: "value"}; +let test: ObjType = obj; // Works +``` + +### Classes are nominally typed {#toc-classes-are-nominally-typed} + +When you have two [classes](../../types/classes) with the same structure, they still are not +considered equivalent because Flow uses nominal typing for classes. + +```js flow-check +class Foo { method(input: string) { /* ... */ } } +class Bar { method(input: string) { /* ... */ } } +let test: Foo = new Bar(); // Error! +``` + +If you wanted to use a class structurally you could do that using an [interface](../../types/interfaces): + +```js flow-check +interface Interface { + method(value: string): void; +}; + +class Foo { method(input: string) { /* ... */ } } +class Bar { method(input: string) { /* ... */ } } + +let test1: Interface = new Foo(); // Works +let test2: Interface = new Bar(); // Works +``` + +### Opaque types +You can use [opaque types](../../types/opaque-types) to turn a previously structurally typed alias into a nominal one (outside of the file that it is defined). + +```js flow-check +// A.js +export type MyTypeAlias = string; +export opaque type MyOpaqueType = string; + +const x: MyTypeAlias = "hi"; // Works +const y: MyOpaqueType = "hi"; // Works +``` + +In a different file: + +```js +// B.js +import type {MyTypeAlias, MyOpaqueType} from "A.js"; + +const x: MyTypeAlias = "hi"; // Works +const y: MyOpaqueType = "hi"; // Error! `MyOpaqueType` is not interchangable with `string` +// ^^^^ Cannot assign "hi" to y because string is incompatible with MyOpaqueType +``` + +### Flow Enums + +[Flow Enums](../../enums) do not allow enum members with the same value, but which belong to different enums, to be used interchangeably. + +```js flow-check +enum A { + X = "x", +} +enum B { + X = "x", +} + +const a: A = B.X; // Error! +``` diff --git a/_src/lang/refinements.md b/_src/lang/refinements.md new file mode 100644 index 00000000000..9b11299f45e --- /dev/null +++ b/_src/lang/refinements.md @@ -0,0 +1,284 @@ +--- +title: Type Refinements +slug: /lang/refinements +--- + +Refinements allow us to narrow the type of a value based on conditional tests. + +For example, in the function below `value` is a [union](../../types/unions) of `"A"` or `"B"`. + +```js flow-check +function func(value: "A" | "B") { + if (value === "A") { + (value: "A"); + } +} +``` + +Inside of the `if` block we know that value must be `"A"` because that's the only +time the if-statement will be true. + +The ability for a static type checker to be able to tell that the value inside +the if statement must be `"A"` is known as a refinement. + +Next we'll add an `else` block to our if statement. + +```js flow-check +function func(value: "A" | "B") { + if (value === "A") { + (value: "A"); + } else { + (value: "B"); + } +} +``` + +Inside of the `else` block we know that value must be `"B"` because it can only +be `"A"` or `"B"` and we've removed `"A"` from the possibilities. + +## Ways to refine in Flow + +### `typeof` checks +You can use a `typeof value === ""` check to refine a value to one of the categories supported by the [`typeof`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof) operator. + +The `typeof` operator can output `"undefined"`,`"boolean"`, `"number"`, `"bigint"`, `"string"`, `"symbol"`, `"function"`, or `"object"`. + +Keep in mind that the `typeof` operator will return `"object"` for objects, but also `null` and arrays as well. + +```js flow-check +function func(value: mixed) { + if (typeof value === "string") { + (value: string); + } else if (typeof value === "boolean") { + (value: boolean); + } else if (typeof value === "object") { + // `value` could be null, an array, or an object + (value: null | interface {} | $ReadOnlyArray); + } +} +``` + +To check for `null`, use a `value === null` [equality](#equality-checks) check. + +```js flow-check +function func(value: mixed) { + if (value === null) { + (value: null); // `value` is null + } +} +``` + +To check for [arrays](../../types/arrays), use `Array.isArray`: + +```js flow-check +function func(value: mixed) { + if (Array.isArray(value)) { + (value: $ReadOnlyArray); // `value` is an array + } +} +``` + +### Equality checks + +As shown in the introductory example, you can use an equality check to narrow a value to a specific type. +This also applies to equality checks made in `switch` statements. + +```js flow-check +function func(value: "A" | "B" | "C") { + if (value === "A") { + (value: "A"); + } else { + (value: "B" | "C"); + } + + switch (value) { + case "A": + (value: "A"); + break; + case "B": + (value: "B"); + break; + case "C": + (value: "C"); + break; + } +} +``` + +While in general it is not recommended to use `==` in JavaScript, due to the coercions it performs, +doing `value == null` (or `value != null`) checks `value` exactly for `null` and `void`. +This works well with Flow's [maybe](../../types/maybe) types, which create a union with `null` and `void`. + +```js flow-check +function func(value: ?string) { + if (value != null) { + (value: string); + } else { + (value: null | void); + } +} +``` + +You can refine a union of object types based on a common tag, which we call [disjoint object unions](../../types/unions/#toc-disjoint-object-unions): + +```js flow-check +type A = {type: "A", s: string}; +type B = {type: "B", n: number}; + +function func(value: A | B) { + if (value.type === "A") { + // `value` is A + (value.s: string); // Works + } else { + // `value` is B + (value.n: number); // Works + } +} +``` + +### Truthiness checks + +You can use non-booleans in JavaScript conditionals. +`0`, `NaN`, `""`, `null`, and `undefined` will all coerce to `false` (and so are considered "falsey"). +Other values will coerce to `true` (and so are considered "truthy"). + +```js flow-check +function func(value: ?string) { + if (value) { + (value: string); // Works + } else { + (value: null | void); // Error! Could still be the empty string "" + } +} +``` + +You can see in the above example why doing a truthy check when your value can be a string or number is not suggested: +it is possible to unintentionally check against the `""` or `0`. +We created a [Flow lint](../../linting) called [sketchy-null](../../linting/rule-reference/#toc-sketchy-null) to guard against this scenario: + +```js flow-check +// flowlint sketchy-null:error +function func(value: ?string) { + if (value) { // Error! + } +} +``` + +### `instanceof` checks + +You can use the [instanceof](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof) operator to narrow a value as well. +It checks if the supplied constructor's prototype is anywhere in a value's prototype chain. + +```js flow-check +class A { + amaze(): void {} +} +class B extends A { + build(): void {} +} + +function func(value: mixed) { + if (value instanceof B) { + value.amaze(); // Works + value.build(); // Works + } + + if (value instanceof A) { + value.amaze(); // Works + value.build(); // Error + } + + if (value instanceof Object) { + value.toString(); // Works + } +} +``` + +### Assignments + +Flow follows your control flow and narrows the type of a variable after you have assigned to it. + +```js flow-check +declare const b: boolean; + +let x: ?string = b ? "str" : null; + +(x: ?string); + +x = "hi"; + +// We know `x` must now be a string after the assignment +(x: string); // Works +``` + +### Type Guards + +You can create a reusable refinement by defining a function which is a [type guard](../../types/type-guards/). + +```js flow-check +function nonMaybe(x: ?T): x is T { + return x != null; +} + +function func(value: ?string) { + if (nonMaybe(value)) { + (value: string); // Works! + } +} +``` + +## Refinement Invalidations {#toc-refinement-invalidations} + +It is also possible to invalidate refinements, for example: + +```js flow-check +function otherFunc() { /* ... */ } + +function func(value: {prop?: string}) { + if (value.prop) { + otherFunc(); + value.prop.charAt(0); // Error! + } +} +``` + +The reason for this is that we don't know that `otherFunc()` hasn't done +something to our value. Imagine the following scenario: + +```js flow-check +const obj: {prop?: string} = {prop: "test"}; + +function otherFunc() { + if (Math.random() > 0.5) { + delete obj.prop; + } +} + +function func(value: {prop?: string}) { + if (value.prop) { + otherFunc(); + value.prop.charAt(0); // Error! + } +} + +func(obj); +``` + +Inside of `otherFunc()` we sometimes remove `prop`. Flow doesn't know if the +`if (value.prop)` check is still true, so it invalidates the refinement. + +There's a straightforward way to get around this. Store the value before +calling another function and use the stored value instead. This way you can +prevent the refinement from invalidating. + +```js flow-check +function otherFunc() { /* ... */ } + +function func(value: {prop?: string}) { + if (value.prop) { + const prop = value.prop; + otherFunc(); + prop.charAt(0); + } +} +``` diff --git a/_src/lang/subtypes.md b/_src/lang/subtypes.md new file mode 100644 index 00000000000..0fe6c045ac4 --- /dev/null +++ b/_src/lang/subtypes.md @@ -0,0 +1,148 @@ +--- +title: Subsets & Subtypes +slug: /lang/subtypes +--- + +## What is a subtype? {#toc-what-is-a-subtype} + +A type like `number`, `boolean`, or `string` describes a set of possible +values. A `number` describes every possible number, so a single number +(such as `42`) would be a *subtype* of the `number` type. Conversely, `number` +would be a *supertype* of the type `42`. + +If we want to know whether one type is the subtype of another, we need to look at +all the possible values for both types and figure out if the other has a +_subset_ of the values. + +For example, if we had a `TypeA` which described the numbers 1 through 3 +(a [union](../../types/unions) of [literal types](../../types/literals)), and +a `TypeB` which described the numbers 1 through 5: `TypeA` would be considered +a _subtype_ of `TypeB`, because `TypeA` is a subset of `TypeB`. + +```js flow-check +type TypeA = 1 | 2 | 3; +type TypeB = 1 | 2 | 3 | 4 | 5; +``` + +Consider a `TypeLetters` which described the strings: "A", "B", "C", and a +`TypeNumbers` which described the numbers: 1, 2, 3. Neither of them would +be a subtype of the other, as they each contain a completely different set of +values. + +```js flow-check +type TypeLetters = "A" | "B" | "C"; +type TypeNumbers = 1 | 2 | 3; +``` + +Finally, if we had a `TypeA` which described the numbers 1 through 3, and a +`TypeB` which described the numbers 3 through 5. Neither of them would be a +subtype of the other. Even though they both have 3 and describe numbers, they +each have some unique items. + +```js flow-check +type TypeA = 1 | 2 | 3; +type TypeB = 3 | 4 | 5; +``` + +## When are subtypes used? {#toc-when-are-subtypes-used} + +Most of the work that Flow does is comparing types against one another. + +For example, in order to know if you are calling a function correctly, Flow +needs to compare the arguments you are passing with the parameters the +function expects. + +This often means figuring out if the value you are passing in is a subtype of +the value you are expecting. + +So if you write a function that expects the numbers 1 through 5, any subtype of +that set will be acceptable. + +```js flow-check +function f(param: 1 | 2 | 3 | 4 | 5) { + // ... +} + +declare const oneOrTwo: 1 | 2; // Subset of the input parameters type. +declare const fiveOrSix: 5 | 6; // Not a subset of the input parameters type. + +f(oneOrTwo); // Works! +f(fiveOrSix); // Error! +``` + +## Subtypes of complex types {#toc-subtypes-of-complex-types} + +Flow needs to compare more than just sets of primitive values, it also needs to +be able to compare objects, functions, and every other type that appears in the +language. + +### Subtypes of objects {#toc-subtypes-of-objects} + +You can start to compare two objects by their keys. If one object contains all +the keys of another object, then it may be a subtype. + +For example, if we had an `ObjectA` which contained the key `foo`, and an +`ObjectB` which contained the keys `foo` and `bar`. Then it's possible that +`ObjectB` is a subtype of `ObjectA`, if `ObjectA` is inexact. + +```js flow-check +type ObjectA = {foo: string, ...}; +type ObjectB = {foo: string, bar: number}; + +let objectB: ObjectB = {foo: 'test', bar: 42}; +let objectA: ObjectA = objectB; // Works! +``` + +But we also need to compare the types of the values. If both objects had a key +`foo` but one was a `number` and the other was a `string`, then one would not +be the subtype of the other. + +```js flow-check +type ObjectA = {foo: string, ...}; +type ObjectB = {foo: number, bar: number}; + +let objectB: ObjectB = { foo: 1, bar: 2 }; +let objectA: ObjectA = objectB; // Error! +``` + +If these values on the object happen to be other objects, we would have to +compare those against one another. We need to compare every value +recursively until we can decide if we have a subtype or not. + +### Subtypes of functions {#toc-subtypes-of-functions} + +Subtyping rules for functions are more complicated. So far, we've seen that `A` +is a subtype of `B` if `B` contains all possible values for `A`. For functions, +it's not clear how this relationship would apply. To simplify things, you can think +of a function type `A` as being a subtype of a function type `B` if functions of type +`A` can be used wherever a function of type `B` is expected. + +Let's say we have a function type and a few functions. Which of the functions can +be used safely in code that expects the given function type? + +```js flow-check +type FuncType = (1 | 2) => "A" | "B"; + +declare function f1(1 | 2): "A" | "B" | "C"; +declare function f2(1 | null): "A" | "B"; +declare function f3(1 | 2 | 3): "A"; + +(f1: FuncType); // Error +(f2: FuncType); // Error +(f3: FuncType); // Works! +``` + +- `f1` can return a value that `FuncType` never does, so code that relies on `FuncType` +might not be safe if `f1` is used. Its type is not a subtype of `FuncType`. +- `f2` can't handle all the argument values that `FuncType` does, so code that relies on +`FuncType` can't safely use `f2`. Its type is also not a subtype of `FuncType`. +- `f3` can accept all the argument values that `FuncType` does, and only returns +values that `FuncType` does, so its type is a subtype of `FuncType`. + +In general, the function subtyping rule is this: a function type `B` is a subtype +of a function type `A` if and only if `B`'s inputs are a superset of `A`'s, and `B`'s outputs +are a subset of `A`'s. The subtype must accept _at least_ the same inputs as its parent, +and must return _at most_ the same outputs. + +The decision of which direction to apply the subtyping rule on inputs and outputs is +governed by [variance](../variance), which is the topic of the next section. diff --git a/_src/lang/type-hierarchy.md b/_src/lang/type-hierarchy.md new file mode 100644 index 00000000000..fa39415a8fd --- /dev/null +++ b/_src/lang/type-hierarchy.md @@ -0,0 +1,122 @@ +--- +title: Type Hierarchy +slug: /lang/type-hierarchy +--- + +Types in Flow form a hierarchy based on [subtyping](../subtypes): + +```mermaid +graph BT + +mixed -.- any + +symbol --> mixed +null --> mixed +maybe["Maybe: + ?string"] +maybe --> mixed +null --> maybe +void --> maybe +void --> mixed +string --> maybe +string --> mixed + +union["Union: + number | bigint"] +number --> union +number --> mixed +union --> mixed +bigint --> mixed +bigint --> union + +boolean --> mixed +true --> boolean +false --> boolean + +empty-interface["interface {}"] --> mixed +some-interface["interface {prop: string}"] --> empty-interface +someclass["class A {prop: string}"] --> some-interface +inexact-empty-obj["Inexact empty object: + {...}"] +inexact-empty-obj --> empty-interface +inexact-some-obj["Inexact object: + {prop: string, ...}"] --> inexact-empty-obj +inexact-some-obj --> some-interface +exact-some-obj["Exact object: + {prop: string}"] --> inexact-some-obj +exact-empty-obj["Exact empty object: + {}"] +exact-empty-obj --> inexact-empty-obj +roarray["$ReadOnlyArray<T>"] --> empty-interface +tuple["Tuple: + [T, T]"] +tuple --> roarray +array["Array<T>"] --> roarray + +any-func["Function: + (...$ReadOnlyArray<empty>) => mixed"] +any-func --> empty-interface +some-func["(number) => boolean"] --> any-func +some-func2["(string) => string"] --> any-func + +inter["Intersection: + (number => boolean) & (string => string)"] +inter --> some-func +inter --> some-func2 + +empty --> inter +empty --> null +empty --> void +empty --> true +empty --> false +empty --> exact-some-obj +empty --> exact-empty-obj +empty --> tuple +empty --> array +empty --> string +empty --> number +empty --> bigint +empty --> someclass +empty --> symbol +any-bottom["any"] -.- empty + +click mixed "../../types/mixed" +click any "../../types/any" +click any-bottom "../../types/any" +click empty "../../types/empty" +click boolean "../../types/primitives/#toc-booleans" +click number "../../types/primitives/#toc-numbers" +click string "../../types/primitives/#toc-strings" +click symbol "../../types/primitives/#toc-symbols" +click bigint "../../types/primitives/#toc-bigints" +click null "../../types/primitives/#toc-null-and-void" +click void "../../types/primitives/#toc-null-and-void" +click true "../../types/literals" +click false "../../types/literals" +click union "../../types/unions" +click inter "../../types/intersections" +click maybe "../../types/maybe" +click array "../../types/arrays" +click roarray "../../types/arrays/#toc-readonlyarray" +click tuple "../../types/tuples" +click someclass "../../types/classes" +click empty-interface "../../types/interfaces" +click some-interface "../../types/interfaces" +click exact-some-obj "../../types/objects" +click exact-empty-obj "../../types/objects" +click inexact-some-obj "../../types/objects/#exact-and-inexact-object-types" +click inexact-empty-obj "../../types/objects/#exact-and-inexact-object-types" +click any-func "../../types/functions" +click some-func "../../types/functions" +click some-func2 "../../types/functions" + +classDef default fill:#eee, stroke:#000, stroke-width:1px +``` + +Click on a node to go to the documentation for that type. + +Types appearing higher in this graph are more general, while those appearing lower are more specific. +An arrow pointing from type `A` to type `B` means that `A` is a subtype of `B`. +For example, the type `string` is a subtype of `?string`. + +How can `any` be at both the top and the bottom? Because [it is unsafe](../../types/any/). This is denoted with a dotted line. diff --git a/_src/lang/types-and-expressions.md b/_src/lang/types-and-expressions.md new file mode 100644 index 00000000000..9a9b82ad2bd --- /dev/null +++ b/_src/lang/types-and-expressions.md @@ -0,0 +1,101 @@ +--- +title: Types & Expressions +slug: /lang/types-and-expressions +--- + +In JavaScript there are many types of values: numbers, strings, booleans, +functions, objects, and more. + +```js flow-check +(1234: number); +("hi": string); +(true: boolean); +([1, 2]: Array); +({prop: "value"}: {prop: string}); +(function func(s: string) {}: string => void); +``` + +These values can be used in many different ways: + +```js flow-check +1 + 2; +"foo" + "bar"; +!true; +[1, 2].push(3); +const obj = {prop: "s"}; +let value = obj.prop; +obj.prop = "value"; +function func(s: string) {} +func("value"); +``` + +All of these different expressions create a new type which is a result of the +types of values and the operations run on them. + +```js flow-check +let num: number = 1 + 2; +let str: string = "foo" + "bar"; +``` + +In Flow every value and expression has a type. + +## Figuring out types statically {#toc-figuring-out-types-statically} + +Flow needs a way to be able to figure out the type of every expression. But it +can't just run your code to figure it out, if it did it would be affected by +any issues that your code has. For example, if you created an infinite loop +Flow would wait for it to finish forever. + +Instead, Flow needs to be able to figure out the type of a value by analyzing +it without running it (static analysis). It works its way through every known +type and starts to figure out what all the expressions around them result in. + +For example, to figure out the result of the following expression, Flow needs to +figure out what its values are first. + +```js +val1 + val2; +``` + +If the values are numbers, then the expression results in a number. If the +values are strings, then the expression results in a string. There are a number +of different possibilities here, so Flow must look up what the values are. + +If Flow is unable to figure out what the exact type is for each value, Flow +must figure out what every possible value is and check to make sure that the +code around it will still work with all of the possible types. + +## Soundness and Completeness {#toc-soundness-and-completeness} + +When you run your code, a single expression will only be run with a limited set +of values. But still Flow checks _every_ possible value. In this way Flow is +checking too many things or _over-approximating_ what will be valid code. + +By checking every possible value, Flow might catch errors that will not +actually occur when the code is run. Flow does this in order to be _"sound"_. + +In type systems, ***soundness*** is the ability for a type checker to catch +every single error that _might_ happen at runtime. This comes at the cost of +sometimes catching errors that will not actually happen at runtime. + +On the flip-side, ***completeness*** is the ability for a type checker to only +ever catch errors that _would_ happen at runtime. This comes at the cost of +sometimes missing errors that will happen at runtime. + +In an ideal world, every type checker would be both sound _and_ complete so +that it catches _every_ error that _will_ happen at runtime. + +Flow tries to be as sound and complete as possible. But because JavaScript was +not designed around a type system, Flow sometimes has to make a tradeoff. When +this happens Flow tends to favor soundness over completeness, ensuring that +code doesn't have any bugs. + +Soundness is fine as long as Flow isn't being too noisy and preventing you from +being productive. Sometimes when soundness would get in your way too much, Flow +will favor completeness instead. There's only a handful of cases where Flow +does this. + +Other type systems will favor completeness instead, only reporting real errors +in favor of possibly missing errors. Unit/Integration testing is an extreme +form of this approach. Often this comes at the cost of missing the errors that +are the most complicated to find, leaving that part up to the developer. diff --git a/_src/lang/types-first.md b/_src/lang/types-first.md new file mode 100644 index 00000000000..e3480e3c082 --- /dev/null +++ b/_src/lang/types-first.md @@ -0,0 +1,254 @@ +--- +title: File Signatures (Types-First) +slug: /lang/types-first +--- + +Flow checks codebases by processing each file separately in dependency +order. For every file containing important typing information for the checking +process, a signature needs to be extracted and stored in +main memory, to be used for files that depend on it. Flow relies on annotations +available at the boundaries of files to build these signatures. We call this +requirement of Flow's architecture *Types-First*. + +The benefit of this architecture is dual: + +1. It dramatically improves *performance*, in particular when it comes to +rechecks. Suppose we want Flow to check a file `foo.js`, for which it hasn't +checked its dependencies yet. Flow extracts the dependency signatures just by +looking at the annotations around the exports. This process is mostly +syntactic, and therefore much faster than full type inference that legacy versions +of Flow (prior to v0.125) used to perform in order to generate signatures. + +2. It improves error *reliability*. Inferred types often become complicated, and may +lead to errors being reported in downstream files, far away from their actual source. +Type annotations at file boundaries of files can help localize such errors, and +address them in the file that introduced them. + +The trade-off for this performance benefit is that exported parts of the code need to be +annotated with types, or to be expressions whose type can be trivially inferred +(for example numbers and strings). + +More information on the Types-First architecture can be found in [this post](https://medium.com/flow-type/types-first-a-scalable-new-architecture-for-flow-3d8c7ba1d4eb). + +## How to upgrade your codebase to Types-First {#toc-how-to-upgrade-your-codebase-to-types-first} + +> Note: Types-first has been the default mode since v0.134 and the only available +mode since v0.143. No `.flowconfig` options are necessary to enable it since then. +In case you're upgrading your codebase from a much earlier version here are some +useful tools. + +### Upgrade Flow version {#toc-upgrade-flow-version} + +Types-first mode was officially released with version 0.125, but has been available in +*experimental* status as of version 0.102. If you are currently on an older +Flow version, you’d have to first upgrade Flow. Using the latest Flow version +is the best way to benefit from the performance benefits outlined above. + +### Prepare your codebase for Types-First {#toc-prepare-your-codebase-for-types-first} + +Types-first requires annotations at module boundaries in order to build type +signature for files. If these annotations are missing, then a `signature-verification-failure` +is raised, and the exported type for the respective part of the code will be `any`. + +To see what types are missing to make your codebase types-first ready, add the +following line to the `[options]` section of the `.flowconfig` file: + +``` +well_formed_exports=true +``` + +Consider for example a file `foo.js` that exports a function call to `foo` + +```js +declare function foo(x: T): T; +module.exports = foo(1); +``` + +The return type of function calls is currently not trivially inferable (due to +features like polymorphism, overloading etc.). Their result needs to be annotated +and so you’d see the following error: + +``` +Cannot build a typed interface for this module. You should annotate the exports +of this module with types. Cannot determine the type of this call expression. Please +provide an annotation, e.g., by adding a type cast around this expression. +(`signature-verification-failure`) + + 4│ module.exports = foo(1); + ^^^^^^ +``` + +To resolve this, you can add an annotation like the following: + +```js +declare function foo(x: T): T; +module.exports = (foo(1): number); +``` + +> Note: As of version 0.134, types-first is the default mode. This mode automatically +enables `well_formed_exports`, so you would see these errors without explicitly +setting this flag. It is advisable to set `types_first=false` during this part of +the upgrade. + +#### Seal your intermediate results {#toc-seal-your-intermediate-results} + +As you make progress adding types to your codebase, you can include directories +so that they don’t regress as new code gets committed, and until the entire project +has well-formed exports. You can do this by adding lines like the following to your +.flowconfig: + +``` +well_formed_exports.includes=/path/to/directory +``` + +> Warning: That this is a *substring* check, not a regular expression (for performance +reasons). + + +#### A codemod for large codebases {#toc-a-codemod-for-large-codebases} + + +Adding the necessary annotations to large codebases can be quite tedious. To ease +this burden, we are providing a codemod based on Flow's inference, that can be +used to annotate multiple files in bulk. See [this tutorial](../../cli/annotate-exports/) for more. + + +### Enable the types-first flag {#toc-enable-the-types-first-flag} + +Once you have eliminated signature verification errors, you can turn on the types-first +mode, by adding the following line to the `[options]` section of the `.flowconfig` file: + +``` +types_first=true +``` + +You can also pass `--types-first` to the `flow check` or `flow start` commands. + +The `well_formed_exports` flag from before is implied by `types_first`. Once +this process is completed and types-first has been enabled, you can remove +`well_formed_exports`. + +Unfortunately, it is not possible to enable types-first mode for part of your repo; this switch +affects all files managed by the current `.flowconfig`. + +> Note: The above flags are available in versions of Flow `>=0.102` with the `experimental.` +prefix (and prior to v0.128, it used `whitelist` in place of `includes`): +``` +experimental.well_formed_exports=true +experimental.well_formed_exports.whitelist=/path/to/directory +experimental.types_first=true +``` + +> Note: If you are using a version where types-first is enabled by default (ie. `>=0.134`), +make sure you set `types_first=false` in your .flowconfig while running the codemods. + + +### Deal with newly introduced errors {#toc-deal-with-newly-introduced-errors} + +Switching between classic and types-first mode may cause some new Flow errors, +besides signature-verification failures that we mentioned earlier. These errors +are due differences in the way types based on annotations are interpreted, compared +to their respective inferred types. + +Below are some common error patterns and how to overcome them. + + +#### Array tuples treated as regular arrays in exports {#toc-array-tuples-treated-as-regular-arrays-in-exports} + + +In types-first, an array literal in an *export position* + +```js +module.exports = [e1, e2]; +``` + +is treated as having type `Array`, where `e1` and `e2` have types `t1` +and `t2`, instead of the tuple type `[t1, t2]`. + +In classic mode, the inferred type encompassed both types at the same time. This +might cause errors in importing files that expect for example to find type `t1` +in the first position of the import. + +**Fix:** If a tuple type is expected, then the annotation `[t1, t2]` needs to be +explicitly added on the export side. + +#### Indirect object assignments in exports {#toc-indirect-object-assignments-in-exports} + + +Flow allows the code + +```js +function foo(): void {} +foo.x = () => {}; +foo.x.y = 2; +module.exports = foo; +``` + +but in types-first the exported type will be + +```plaintext +{ + (): void; + x: () => void; +} +``` + +In other words it won’t take into account the update on `y`. + +**Fix:** To include the update on `y` in the exported type, the export will need +to be annotated with the type + +```plaintext +{ + (): void; + x: { (): void; y: number; }; +}; +``` + +The same holds for more complex assignment patterns like + +```js +function foo(): void {} +Object.assign(foo, { x: 1}); +module.exports = foo; +``` + +where you’ll need to manually annotate the export with `{ (): void; x: number }`, +or assignments preceding the function definition + +```js +foo.x = 1; +function foo(): void {} +module.exports = foo; +``` + +Note that in the last example, Flow types-first will pick up the static update if +it was after the definition: + +```js +function foo(): void {} +foo.x = 1; +module.exports = foo; +``` + +### Exported variables with updates {#toc-exported-variables-with-updates} + +The types-first signature extractor will not pick up subsequent update of an exported +let-bound variables. Consider the example + +```js +let foo: number | string = 1; +foo = "blah"; +module.exports = foo; +``` + +In classic mode the exported type would be `string`. In types-first it will be +`number | string`, so if downstream typing depends on the more precise type, then +you might get some errors. + +**Fix:** Introduce a new variable on the update and export that one. For example +```js +const foo1: number | string = 1; +const foo2 = "blah"; +module.exports = foo2; +``` diff --git a/_src/lang/variables.md b/_src/lang/variables.md new file mode 100644 index 00000000000..a78479ffa24 --- /dev/null +++ b/_src/lang/variables.md @@ -0,0 +1,209 @@ +--- +title: Variable Declarations +slug: /lang/variables +--- + +import {SinceVersion} from '../../components/VersionTags'; + +When you are declaring a new variable, you may optionally declare its type. + +JavaScript has three ways of declaring local variables: + +- `var` - declares a variable, optionally assigning a value. + ([MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var)) +- `let` - declares a block-scoped variable, optionally assigning a value. + ([MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)) +- `const` - declares a block-scoped variable, assigning a value that cannot be re-assigned. + ([MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const)) + +In Flow these fall into two groups: + +- `let` and `var` - variables that **can** be reassigned. +- `const` - variables that **cannot** be reassigned. + +```js flow-check +var varVariable = 1; +let letVariable = 1; +const constVariable = 1; + +varVariable = 2; // Works! +letVariable = 2; // Works! +constVariable = 2; // Error! +``` + +## `const` {#toc-const} + +Since a `const` variable cannot be re-assigned at a later time it is fairly +simple. + +Flow can either infer the type from the value you are assigning to it or you +can provide it with a type. + +```js flow-check +const foo /* : number */ = 1; +const bar: number = 2; +``` + +## `var` and `let` {#toc-var-and-let} +Since `var` and `let` can be re-assigned, there's a few more rules you'll need +to know about. + +When you provide a type, you will be able to re-assign the value, but it must +always be of a compatible type. + +```js flow-check +let foo: number = 1; +foo = 2; // Works! +foo = "3"; // Error! +``` + +When the variable has no annotation, Flow infers a precise type based on + their initializer or initial assignment. All subsequent assignments +to that variable will be constrained by this type. This section shows some examples +of how Flow determines what type an unannotated variable is inferred to have. + + +**If you want a variable to have a different type than what Flow infers for it, +you can always add a type annotation to the variable’s declaration. That will +override everything discussed in this page!** + +### Variables initialized at their declarations {#toc-variables-initialized-at-their-declarations} + +The common case for unannotated variables is very straightforward: when a +variable is declared with an initializer that is not the literal `null`, that +variable will from then on have the type of the initializer, and future writes +to the variable will be constrained by that type. + +```js flow-check +import * as React from 'react'; + +type Props = $ReadOnly<{ prop: string }>; + +declare var x: number; +declare var y: number; +declare var props: Props; + +let product = Math.sqrt(x) + y; +// `product` has type `number` + +let Component = ({prop}: Props): React.Node => { return
} +// `Component` has type`React.ComponentType` + +let element = +// `element` has type `React.Element>` + +/* Let's define a new component */ + +type OtherProps = $ReadOnly<{ ...Props, extra_prop: number }>; +declare var OtherComponent: (OtherProps) => React.Node; +declare var other_props: OtherProps + +/* Any subsequent assignments to `product`, `Component`, or `element` will be + * checked against the types that Flow infers for the initializers, and if + * conflicting types are assigned, Flow will signal an error. */ + +product = "Our new product is..."; +Component = ({prop}: OtherProps): React.Node => { return
}; +element = ; +``` + +If you want these examples to typecheck, and for Flow to realize that different +kinds of values can be written to these variables, you must add a type +annotation reflecting this more general type to their declarations: +```js +let product: number | string = ... +let Component: mixed = ... // No good type to represent this! Consider restructuring +let element: React.Node = ... +``` +### Variables declared without initializers {#toc-variables-declared-without-initializers} + +Often variables are declared without initializers. In such cases, Flow will try +to choose the "first" assignment or assignments to the variable to define its +type. "First" here means both top-to-bottom and nearer-scope to +deeper-scope—we’ll try to choose an assignment that happens in the same function +scope as the variable’s declaration, and only look inside nested functions if we +don’t find any assignments locally: +```js flow-check +let topLevelAssigned; +function helper() { + topLevelAssigned = 42; // Error: `topLevelAssigned` has type `string` +} +topLevelAssigned = "Hello world"; // This write determines the var's type +topLevelAssigned = true; // Error: `topLevelAssigned` has type `string` +``` +If there are two or more possible "first assignments," due to an `if`- or +`switch`-statement, they’ll both count—this is one of the few ways that Flow +will still infer unions for variable types: +```js flow-check +let myNumberOrString; +declare var condition: boolean; +if (condition) { + myNumberOrString = 42; // Determines type +} else { + myNumberOrString = "Hello world"; // Determines type +} +myNumberOrString = 21; // fine, compatible with type +myNumberOrString = "Goodbye"; // fine, compatible with type +myNumberOrString = false; // Error: `myNumberOrString` has type `number | string` +``` +This only applies when the variable is written to in both branches, however. If +only one branch contains a write, that write becomes the type of the variable +afterwards (though Flow will still check to make sure that the variable is +definitely initialized): + +```js flow-check +let oneBranchAssigned; +declare var condition: boolean; +if (condition) { + oneBranchAssigned = "Hello world!"; +} +oneBranchAssigned.toUpperCase(); // Error: `oneBranchAssigned` may be uninitialized +oneBranchAssigned = 42; // Error: `oneBranchAssigned` has type `string` +``` +### Variables initialized to `null` {#toc-variables-initialized-to-null} + +Finally, the one exception to the general principle that variable’s types are +determined by their first assignment(s) is when a variable is initialized as (or +whose first assignment is) the literal value `null`. In such cases, the *next* +non-null assignment (using the same rules as above) determines the rest of the +variable’s type, and the overall type of the variable becomes a union of `null` +and the type of the subsequent assignment. This supports the common pattern +where a variable starts off as `null` before getting assigned by a value of some +other type: +```js flow-check +function findIDValue(dict: {[key: string]: T}): T { + let idVal = null; // initialized as `null` + for (const key in dict) { + if (key === 'ID') { + idVal = dict[key]; // Infer that `idVal` has type `null | T` + } + } + if (idVal === null) { + throw new Error("No entry for ID!"); + } + return idVal; +} +``` + +## Catch variables +If a `catch` variable does not have an annotation, its default type is [`any`](../../types/any). + +You can optionally annotate it with exactly [`mixed`](../../types/mixed) or `any`. E.g. + +```js flow-check +try { +} catch (e: mixed) { + if (e instanceof TypeError) { + (e: TypeError); // OK + } else if (e instanceof Error) { + (e: Error); // OK + } else { + throw e; + } +} +``` + +By using `mixed`, you can improve your safety and Flow [coverage](../../cli/coverage/), +at the trade-off of increased runtime checks. + +You can change the default type of `catch` variables when there is no annotation by setting the [`use_mixed_in_catch_variables`](../../config/options/#toc-use-mixed-in-catch-variables) option to true. diff --git a/_src/lang/variance.md b/_src/lang/variance.md new file mode 100644 index 00000000000..61f7fa5cd97 --- /dev/null +++ b/_src/lang/variance.md @@ -0,0 +1,144 @@ +--- +title: Type Variance +slug: /lang/variance +--- + +Variance is a topic that comes up fairly often in type systems. It is used to determine +how type parameters behave with respect to subtyping. + +First we'll setup a couple of classes that extend one another. + +```js +class Noun {} +class City extends Noun {} +class SanFrancisco extends City {} +``` + +We saw in the section on [generic types](../../types/generics/#toc-variance-sigils) +that it is possible to +use variance sigils to describe when a type parameter is used in an output position, +when it is used in an input position, and when it is used in either one. + +Here we'll dive deeper into each one of these cases. + +## Covariance {#toc-covariance} + +Consider for example the type +```js +type CovariantOf = { + +prop: X; + getter(): X; +} +``` +Here, `X` appears strictly in *output* positions: it is used to read out information +from objects `o` of type `CovariantOf`, either through property accesses `o.prop`, +or through calls to `o.getter()`. + +Notably, there is no way to input data through the reference to the object `o`, +given that `prop` is a readonly property. + +When these conditions hold, we can use the sigil `+` to annotate `X` in the definition +of `CovariantOf`: +```js +type CovariantOf<+X> = { + +prop: X; + getter(): X; +} +``` + +These conditions have important implications on the way that we can treat an object +of type `CovariantOf` with respect to subtyping. As a reminder, subtyping rules +help us answer the question: "given some context that expects values of type +`T`, is it safe to pass in values of type `S`?" If this is the case, then `S` is a +subtype of `T`. + +Using our `CovariantOf` definition, and given that `City` is a subtype of `Noun`, it is +also the case that `CovariantOf` is a subtype of `CovariantOf`. Indeed +* it is safe to *read* a property `prop` of type `City` when a property +of type `Noun` is expected, and +* it is safe to *return* values of type `City` when calling `getter()`, when +values of type `Noun` are expected. + +Combining these two, it will always be safe to use `CovariantOf` whenever a +`CovariantOf` is expected. + +A commonly used example where covariance is used is [`$ReadOnlyArray`](../../types/arrays/#toc-readonlyarray). +Just like with the `prop` property, one cannot use a `$ReadOnlyArray` reference to write data +to an array. This allows more flexible subtyping rules: Flow only needs to prove that +`S` is a subtype of `T` to determine that `$ReadOnlyArray` is also a subtype +of `$ReadOnlyArray`. + + +## Invariance {#toc-invariance} + +Let's see what happens if we try to relax the restrictions on the use of `X` and make, +for example, `prop` be a read-write property. We arrive at the type definition +```js +type NonCovariantOf = { + prop: X; + getter(): X; +}; +``` +Let's also declare a variable `nonCovariantCity` of type `NonCovariantOf` +```js +declare var nonCovariantCity: NonCovariantOf; +``` +Now, it is not safe to consider `nonCovariantCity` as an object of type `NonCovariantOf`. +Were we allowed to do this, we could have the following declaration: +```js +const nonCovariantNoun: NonCovariantOf = nonCovariantCity; +``` +This type permits the following assignment: +```js +nonCovariantNoun.prop = new Noun; +``` +which would invalidate the original type for `nonCovariantCity` as it would now be storing +a `Noun` in its `prop` field. + + +What distinguishes `NonCovariantOf` from the `CovariantOf` definition is that type parameter `X` is used both +in input and output positions, as it is being used to both read and write to +property `prop`. Such a type parameter is called *invariant* and is the default case +of variance, thus requiring no prepending sigil: +```js +type InvariantOf = { + prop: X; + getter(): X; + setter(X): void; +}; +``` +Assuming a variable +```js +declare var invariantCity: InvariantOf; +``` +it is *not* safe to use `invariantCity` in a context where: +- an `InvariantOf` is needed, because we should not be able to write a `Noun` to property +`prop`. +- an `InvariantOf` is needed, because reading `prop` could return a `City` which +may not be `SanFrancisco`. + +In orther words, `InvariantOf` is neither a subtype of `InvariantOf` nor +a subtype of `InvariantOf`. + + +## Contravariance {#toc-contravariance} + +When a type parameter is only used in *input* positions, we say that it is used in +a *contravariant* way. This means that it only appears in positions through which +we write data to the structure. We use the sigil `-` to describe this kind of type +parameters: + +```js +type ContravariantOf<-X> = { + -prop: X; + setter(X): void; +}; +``` +Common contravariant positions are write-only properties and "setter" functions. + +An object of type `ContravariantOf` can be used whenever an object of type +`ContravariantOf` is expected, but not when a `ContravariantOf` is. +In other words, `ContravariantOf` is a subtype of `ContravariantOf`, but not +`ContravariantOf`. +This is because it is fine to write `SanFrancisco` into a property that can have any `City` written +to, but it is not safe to write just any `Noun`. diff --git a/_src/lang/width-subtyping.md b/_src/lang/width-subtyping.md new file mode 100644 index 00000000000..d2e21005ed4 --- /dev/null +++ b/_src/lang/width-subtyping.md @@ -0,0 +1,65 @@ +--- +title: Width Subtyping +slug: /lang/width-subtyping +--- + +It's safe to use an object with "extra" properties in a position that is +annotated with a specific set of properties, if that object type is [inexact](../../types/objects/#exact-and-inexact-object-types). + +```js flow-check +function func(obj: {foo: string, ...}) { + // ... +} + +func({ + foo: "test", // Works! + bar: 42 // Works! +}); +``` + +Within `func`, we know that `obj` has at least a property `foo` and the +property access expression `obj.foo` will have type `string`. + +This is a kind of subtyping commonly referred to as "width subtyping" because +a type that is "wider" (i.e., has more properties) is a subtype of a +narrower type. + +So in the following example, `obj2` is a _subtype_ of `obj1`. + +```js flow-check +let obj1: {foo: string, ...} = {foo: 'test'}; +let obj2 = {foo: 'test', bar: 42}; +(obj2: {foo: string, ...}); +``` + +However, it's often useful to know that a property is definitely absent. + +```js flow-check +function func(obj: {foo: string, ...} | {bar: number, ...}) { + if (obj.foo) { + (obj.foo: string); // Error! + } +} +``` + +The above code has a type error because Flow would also allow the call +expression `func({foo: 1, bar: 2})`, because `{foo: number, bar: number}` +is a subtype of `{bar: number, ...}`, one of the members of the parameter's union +type. + +For cases like this where it's useful to assert the absence of a property, +You can use [exact object types](../../types/objects/#exact-and-inexact-object-types). + +```js flow-check +function func(obj: {foo: string} | {bar: number}) { + if (obj.foo) { + (obj.foo: string); // Works! + } +} +``` + +[Exact object types](../../types/objects/#exact-and-inexact-object-types) disable width +subtyping, and do not allow additional properties to exist. + +Using exact object types lets Flow know that no extra properties will exist at +runtime, which allows [refinements](../refinements/) to get more specific. diff --git a/_src/libdefs/creation.md b/_src/libdefs/creation.md new file mode 100644 index 00000000000..c4256b758d4 --- /dev/null +++ b/_src/libdefs/creation.md @@ -0,0 +1,199 @@ +--- +title: Creating Library Definitions +slug: /libdefs/creation +--- + +Before spending the time to write your own libdef, we recommend that you look to +see if there is already a libdef for the third-party code that you're addressing. +`flow-typed` is a [tool and repository](https://github.com/flowtype/flow-typed/) +for sharing common libdefs within the Flow community -- so it's a good way to +knock out a good chunk of any public libdefs you might need for your project. + +However sometimes there isn't a pre-existing libdef or you have third-party +code that isn't public and/or you really just need to write a libdef yourself. +To do this you'll start by creating a `.js` file for each libdef you're going to +write and put them in the `/flow-typed` directory at the root of your project. +In these libdef file(s) you'll use a special set of Flow syntax (explained +below) to describe the interfaces of the relevant third-party code. + +## Declaring A Global Function {#toc-declaring-a-global-function} + +To declare a global function that should be accessible throughout your project, +use the `declare function` syntax in a libdef file: + +**flow-typed/myLibDef.js** +```js flow-check +declare function foo(a: number): string; +``` + +This tells Flow that any code within the project can reference the +`foo` global function, and that the function takes one argument (a `number`) and +it returns a `string`. + +## Declaring A Global Class {#toc-declaring-a-global-class} + +To declare a global class that should be accessible throughout your project, +use the `declare class` syntax in a libdef file: + +**flow-typed/myLibDef.js** +```js flow-check +declare class URL { + constructor(urlStr: string): URL; + toString(): string; + + static compare(url1: URL, url2: URL): boolean; +} +``` + +This tells Flow that any code within the project can reference the `URL` global +class. Note that this class definition does not have any implementation details +-- it exclusively defines the interface of the class. + +## Declaring A Global Variable {#toc-declaring-a-global-variable} + +To declare a global variable that should be accessible throughout your project, +use the `declare var`, `declare let`, or `declare const` syntax in a libdef file: + +**flow-typed/myLibDef.js** +```js flow-check +declare const PI: number; +``` + +This tells Flow that any code within the project can reference the `PI` global +variable -- which, in this case, is a `number`. + +## Declaring A Global Type {#toc-declaring-a-global-type} + +To declare a global type that should be accessible throughout your project, +use the `declare type` syntax in a libdef file: + +**flow-typed/myLibDef.js** +```js flow-check +declare type UserID = number; +``` + +This tells Flow that any code within the project can reference the `UserID` +global type -- which, in this case, is just an alias for `number`. + +## Declaring A Module {#toc-declaring-a-module} + +Often, third-party code is organized in terms of modules rather than globals. To +write a libdef that declares the presence of a module you'll want to use the +`declare module` syntax: + +```js flow-check +declare module "some-third-party-library" { + // This is where we'll list the module's exported interface(s) +} +``` + +The name specified in quotes after `declare module` can be any string, but it +should correspond to the same string you'd use to `require` or `import` the +third-party module into your project. For defining modules that are accessed via +a relative `require`/`import` path, please see the docs on the [`.flow` files](../../declarations) + +Within the body of a `declare module` block, you can specify the set of exports +for that module. However, before we start talking about exports we have to talk +about the two kinds of modules that Flow supports: CommonJS and ES modules. + +Flow can handle both CommonJS and ES modules, but there are some relevant +differences between the two that need to be considered when using +`declare module`. + +#### Declaring An ES Module {#toc-declaring-an-es-module} + +[ES modules](https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export) +have two kinds of exports: A **named** export and a **default** export. Flow supports the ability +to declare either or both of these kinds of exports within a `declare module` body as follows: + +###### Named Exports {#toc-named-exports} + +**flow-typed/some-es-module.js** +```js flow-check +declare module "some-es-module" { + // Declares a named "concatPath" export + declare export function concatPath(dirA: string, dirB: string): string; +} +``` + +Note that you can also declare other things inside the body of the +`declare module`, and those things will be scoped to the body of the +`declare module` -- **but they will not be exported from the module**: + +**flow-typed/some-es-module.js** +```js flow-check +declare module "some-es-module" { + // Defines the type of a Path class within this `declare module` body, but + // does not export it. It can only be referenced by other things inside the + // body of this `declare module` + declare class Path { + toString(): string; + } + + // Declares a named "concatPath" export which returns an instance of the + // `Path` class (defined above) + declare export function concatPath(dirA: string, dirB: string): Path; +} +``` + +###### Default Exports {#toc-default-exports} + +**flow-typed/some-es-module.js** +```js flow-check +declare module "some-es-module" { + declare class URL { + constructor(urlStr: string): URL; + toString(): string; + + static compare(url1: URL, url2: URL): boolean; + } + + // Declares a default export whose type is `typeof URL` + declare export default typeof URL; +} +``` + +It is also possible to declare both **named** and **default** exports in the +same `declare module` body. + +#### Declaring A CommonJS Module {#toc-declaring-a-commonjs-module} + +CommonJS modules have a single value that is exported (the `module.exports` +value). To describe the type of this single value within a `declare module` +body, you'll use the `declare module.exports` syntax: + +**flow-typed/some-commonjs-module.js** +```js flow-check +declare module "some-commonjs-module" { + // The export of this module is an object with a "concatPath" method + declare module.exports: { + concatPath(dirA: string, dirB: string): string; + }; +} +``` + +Note that you can also declare other things inside the body of the +`declare module`, and those things will be scoped to the body of the +`declare module`, **but they will not be exported from the module**: + +**flow-typed/some-commonjs-module.js** +```js flow-check +declare module "some-commonjs-module" { + // Defines the type of a Path class within this `declare module` body, but + // does not export it. It can only be referenced by other things inside the + // body of this `declare module` + declare class Path { + toString(): string; + } + + // The "concatPath" function now returns an instance of the `Path` class + // (defined above). + declare module.exports: { + concatPath(dirA: string, dirB: string): Path + }; +} +``` + +NOTE: Because a given module cannot be both an ES module and a CommonJS module, + it is an error to mix `declare export [...]` with + `declare module.exports: ...` in the same `declare module` body. diff --git a/_src/libdefs/index.md b/_src/libdefs/index.md new file mode 100644 index 00000000000..c4be1c5b6d0 --- /dev/null +++ b/_src/libdefs/index.md @@ -0,0 +1,46 @@ +--- +title: Library Definitions +slug: /libdefs +description: Learn how to create and use library definitions for the third-party code your code depends on. +--- + +## What's a "Library Definition"? {#toc-what-s-a-library-definition} + +Most real JavaScript programs depend on third-party code and not just code +immediately under the control of the project. That means a project using Flow +may need to reference outside code that either doesn't have type information or +doesn't have accurate and/or precise type information. In order to handle this, +Flow supports the concept of a "library definition" (a.k.a. "libdef"). + +A libdef is a special file that informs Flow about the type signature of some +specific third-party module or package of modules that your application uses. +If you're familiar with languages that have header files (like `C++`), you can +think of libdefs as a similar concept. + +These special files use the same `.js` extension as normal JS code, but they are +placed in a directory called `flow-typed` in the root directory of your project. +Placement in this directory tells Flow to interpret them as libdefs rather than +normal JS files. + +> NOTE: Using the `/flow-typed` directory for libdefs is a convention that +> enables Flow to JustWork™ out of the box and encourages consistency +> across projects that use Flow, but it is also possible to explicitly +> configure Flow to look elsewhere for libdefs using the [`[libs]` section +> of your `.flowconfig`](../config/libs). + +You can also learn about [declaration files](../declarations). + +## General Best Practices {#toc-general-best-practices} + +**Try to provide a libdef for each third-party library your project uses.** + +If a third-party library that has no type information is used by your project, +Flow will treat it like any other untyped dependency and mark all of its exports +as `any`. + +Because of this behavior, it is a best practice to find or write libdefs for as +many of the third-party libraries that you use as you can. We recommend checking +out the `flow-typed` +[tool and repository](https://github.com/flow-typed/flow-typed/) +, which helps you quickly find and install pre-existing libdefs for your +third-party dependencies. diff --git a/_src/linting/flowlint-comments.md b/_src/linting/flowlint-comments.md new file mode 100644 index 00000000000..ff8eee30a2e --- /dev/null +++ b/_src/linting/flowlint-comments.md @@ -0,0 +1,82 @@ +--- +title: Flowlint Comments +slug: /linting/flowlint-comments +--- + +You can use `flowlint` comments to specify more granular lint settings within a file. +These comments come in three froms: +* [flowlint](#toc-flowlint) +* [flowlint-line](#toc-flowlint-line) +* [flowlint-next-line](#toc-flowlint-next-line) + +In all forms, whitespace and asterisks between words are ignored, allowing for flexible formatting. + +### flowlint {#toc-flowlint} +The basic `flowlint` comment takes a comma-delimited list of `rule:severity` pairs and +applies those settings for the rest of the source file until overridden. This has +three primary purposes: applying settings over a block, applying settings over a file, +and applying settings over part of a line. + +**settings over a block of code:** +A pair of `flowlint` comments can be used to apply a certain setting over a block of code. +For example, to disable the untyped-type-import lint over a block of type imports would look like this: +```js +import type { + // flowlint untyped-type-import:off + Foo, + Bar, + Baz, + // flowlint untyped-type-import:error +} from './untyped.js'; +``` + +**settings over a file:** +A `flowlint` comment doesn't have to have a matching comment to form a block. +An unmatched comment simply applies its settings to the rest of the file. You +could use this, for example, to suppress all sketchy-null-check lints in a particular file: +```js +// flowlint sketchy-null:off +... +``` + +**settings over part of a line:** +The settings applied by `flowlint` start and end right at the comment itself. This +means that you can do things like +```js +function foo(a: ?boolean, b: ?boolean) { + if (/* flowlint sketchy-null-bool:off */a/* flowlint sketchy-null-bool:warn */ && b) { + ... + } else { + ... + } +} +``` +if you want control at an even finer level than you get from the line-based comments. + +### flowlint-line {#toc-flowlint-line} +A `flowlint-line` comment works similarly to a `flowlint` comment, except it only +applies its settings to the current line instead of applying them for the rest of the file. +The primary use for `flowlint-line` comments is to suppress a lint on a particular line: +```js +function foo(x: ?boolean) { + if (x) { // flowlint-line sketchy-null-bool:off + ... + } else { + ... + } +} +``` + + +### flowlint-next-line {#toc-flowlint-next-line} +`flowlint-next-line` works the same as `flowlint-line`, except it applies its settings to the next line instead of the current line: +```js +function foo(x: ?boolean) { + // flowlint-next-line sketchy-null-bool:off + if (x) { + ... + } else { + ... + } +} +``` diff --git a/_src/linting/index.md b/_src/linting/index.md new file mode 100644 index 00000000000..d1f0df52c20 --- /dev/null +++ b/_src/linting/index.md @@ -0,0 +1,80 @@ +--- +title: Linting Overview +slug: /linting +description: Learn how to configure Flow's linter to find potentially harmful code. +--- + +Flow contains a linting framework that can tell you about more than just type errors. This framework is highly configurable in order to show you the information you want and hide the information you don't. + +### Configuring Lints in the `.flowconfig` {#toc-configuring-lints-in-the-flowconfig} + +Lint settings can be specified in the `[lints]` section of the `.flowconfig` as a list of `rule=severity` pairs. These settings apply globally to the entire project. + +``` +[lints] +all=warn +untyped-type-import=error +sketchy-null-bool=off +``` + +### Configuring Lints from the CLI {#toc-configuring-lints-from-the-cli} + +Lint settings can be specified using the `--lints` flag of a Flow server command as a comma-delimited list of `rule=severity` pairs. These settings apply globally to the entire project. + +``` +flow start --lints "all=warn, untyped-type-import=error, sketchy-null-bool=off" +``` + +### Configuring Lints with Comments {#toc-configuring-lints-with-comments} + +Lint settings can be specified inside a file using `flowlint` comments. These +settings apply to a region of a file, or a single line, or part of a line. For +more details see [Flowlint Comments](./flowlint-comments). + +```js flow-check +// flowlint sketchy-null:error +const x: ?number = 0; + +if (x) {} // Error + +// flowlint-next-line sketchy-null:off +if (x) {} // No Error + +if (x) {} /* flowlint-line sketchy-null:off */ // No Error + +// flowlint sketchy-null:off +if (x) {} // No Error +if (x) {} // No Error +``` + +### Lint Settings Precedence {#toc-lint-settings-precedence} + +Lint settings in `flowlint` comments have the highest priority, followed by lint rules in the `--lints` flag, followed by the `.flowconfig`. +This order allows you to use `flowlint` comments for fine-grained linting control, the `--lints` flag for trying out new lint settings, and the `.flowconfig` for stable project-wide settings. + +Within the `--lints` flag and the `.flowconfig`, rules lower down override rules higher up, allowing you to write things like +``` +[lints] +# warn on all sketchy-null checks +sketchy-null=warn +# ... except for booleans +sketchy-null-bool=off +``` + +The lint settings parser is fairly intelligent and will stop you if you write a redundant rule, a rule that gets completely overwritten, or an unused flowlint suppression. This should prevent most accidental misconfigurations of lint rules. + +### Severity Levels and Meanings {#toc-severity-levels-and-meanings} + +**off:** +The lint is ignored. Setting a lint to `off` is similar to suppressing a type error with a suppression comment, except with much more granularity. + +**warn:** +Warnings are a new severity level introduced by the linting framework. They are treated differently than errors in a couple of ways: +* Warnings don't affect the exit code of Flow. If Flow finds warnings but no errors, it still returns 0. +* Warnings aren't shown on the CLI by default, to avoid spew. CLI warnings can be + enabled by passing the `--include-warnings` flag to the Flow server or the + Flow client, or by setting `include_warnings=true` in the `.flowconfig`. + This is good for smaller projects that want to see all project warnings at once. + +**error:** +Lints with severity `error` are treated exactly the same as any other Flow error. diff --git a/_src/linting/rule-reference.md b/_src/linting/rule-reference.md new file mode 100644 index 00000000000..ed987c2cca5 --- /dev/null +++ b/_src/linting/rule-reference.md @@ -0,0 +1,232 @@ +--- +title: Lint Rule Reference +slug: /linting/rule-reference +--- + +### `all` {#toc-all} +While `all` isn't technically a lint rule, it's worth mentioning here. `all` sets the default +level for lint rules that don't have a level set explicitly. `all` can only +occur as the first entry in a `.flowconfig` or as the first rule in a `--lints` +flag. It's not allowed in comments at all because it would have different +semantics than would be expected. + +### `ambiguous-object-type` {#toc-ambiguous-object-type} +Triggers when you use object type syntax without explicitly specifying exactness or inexactness. + +This lint setting is ignored when [`exact_by_default`](../../config/options/#toc-exact-by-default) is set to `false`. + +```js flow-check +// flowlint ambiguous-object-type:error + +type A = {x: number}; // Error +type B = {x: number, ...} // Ok +type C = {| x: number |} // Ok +``` + +### `deprecated-type` {#toc-deprecated-type} +Triggered on the `bool` type, which is just an alias for `boolean`. Just use `boolean` instead. + +```js flow-check +// flowlint deprecated-type:error + +type A = Array; // Error +``` + +### `implicit-inexact-object` {#toc-implicit-inexact-object} +Like [`ambiguous-object-type`](#toc-ambiguous-object-type), except triggers even when the `exact_by_default` option is set to `false`. + +### `nonstrict-import` {#toc-nonstrict-import} +Used in conjuction with [Flow Strict](../../strict/). Triggers when importing a non `@flow strict` module. When enabled, dependencies of a `@flow strict` module must also be `@flow strict`. + +### `sketchy-null` {#toc-sketchy-null} +Triggers when you do an existence check on a value that can be either null/undefined or falsey. + +For example: +```js flow-check +// flowlint sketchy-null:error + +const x: ?number = 5; +if (x) {} // sketchy because x could be either null or 0. + +const y: number = 5; +if (y) {} // not sketchy because y can't be null, only 0. + +const z: ?{foo: number} = {foo: 5}; +if (z) {} // not sketchy, because z can't be falsey, only null/undefined. +``` + +Setting `sketchy-null` sets the level for all sketchy null checks, but there are more granular rules for particular types. These are: +* `sketchy-null-bool` +* `sketchy-null-number` +* `sketchy-null-string` +* `sketchy-null-mixed` +* `sketchy-null-bigint` + +The type-specific variants are useful for specifying that some types of sketchy null checks are acceptable while others should be errors/warnings. For example, if you want to allow boolean sketchy null checks (for the pattern of treating undefined optional booleans as false) but forbid other types of sketchy null checks, you can do so with this `.flowconfig` `[lints]` section: +``` +[lints] +sketchy-null=warn +sketchy-null-bool=off +``` +and now +```js +function foo (bar: ?bool): void { + if (bar) { + ... + } else { + ... + } +} +``` +doesn't report a warning. + +Suppressing one type of sketchy null check only suppresses that type, so, for example +```js flow-check +// flowlint sketchy-null:error, sketchy-null-bool:off +const x: ?(number | bool) = 0; +if (x) {} +``` +would still have a `sketchy-null-number` error on line 3. + +### `sketchy-number` {#toc-sketchy-number} +Triggers when a `number` is used in a manner which may lead to unexpected results if the value is falsy. +Currently, this lint triggers if a `number` appears in: +* the left-hand side of an `&&` expression. + +As a motivating example, consider this common idiom in React: + +```js +{showFoo && } +``` + +Here, `showFoo` is a boolean which controls whether or not to display the `` element. If `showFoo` is true, then this evaluates to `{}`. If `showFoo` is false, then this evaluates to `{false}`, which doesn't display anything. + +Now suppose that instead of a boolean, we have a numerical value representing, say, the number of comments on a post. We want to display a count of the comments, unless there are no comments. We might naively try to do something similar to the boolean case: + +```js +{count && <>[{count} comments]} +``` + +If `count` is, say, `5`, then this displays "[5 comments]". However, if `count` is `0`, then this displays "0" instead of displaying nothing. (This problem is unique to `number` because `0` and `NaN` are the only falsy values which React renders with a visible result.) This could be subtly dangerous: if this immediately follows another numerical value, it might appear to the user that we have multiplied that value by 10! Instead, we should do a proper conditional check: + +```js +{count ? <>[{count} comments] : null} +``` + +### `unclear-type` {#toc-unclear-type} +Triggers when you use `any`, `Object`, or `Function` as type annotations. These +types are unsafe. + +```js flow-check +// flowlint unclear-type:error + +declare const a: any; // Error +declare const c: Object; // Error +declare const d: Function; // Error +``` + +### `unnecessary-invariant` {#toc-unnecessary-invariant} +Triggers when you use `invariant` to check a condition which we know must be truthy based on the available type information. This is quite conservative: for example, if all we know about the condition is that it is a `boolean`, then the lint will not fire even if the condition must be `true` at runtime. + +Note that this lint does not trigger when we know a condition is always `false`. It is a common idiom to use `invariant()` or `invariant(false, ...)` to throw in code that should be unreachable. + +```js flow-check +// flowlint unnecessary-invariant:error +declare function invariant(boolean): void; + +declare const x: Array; // Array is truthy +invariant(x); +``` + +### `unnecessary-optional-chain` {#toc-unnecessary-optional-chain} + +Triggers when you use `?.` where it isn't needed. This comes in two main flavors. The first is when the left-hand-side cannot be nullish: + +```js flow-check +// flowlint unnecessary-optional-chain:error +type Foo = { + bar: number +} + +declare var foo: Foo; +foo?.bar; // Error +``` + +The second is when the left-hand-side could be nullish, but the short-circuiting behavior of `?.` is sufficient to handle it anyway: + +```js flow-check +// flowlint unnecessary-optional-chain:error +type Foo = { + bar: { + baz: number + } +} + +declare var foo: ?Foo; +foo?.bar?.baz; // Error +``` + +In the second example, the first use of `?.` is valid, since `foo` is potentially nullish, but the second use of `?.` is unnecessary. The left-hand-side of the second `?.` (`foo?.bar`) can only be nullish as a result of `foo` being nullish, and when `foo` is nullish, short-circuiting lets us avoid the second `?.` altogether! + +```js +foo?.bar.baz; +``` + +This makes it clear to the reader that `bar` is not a potentially nullish property. + +### `unsafe-getters-setters` {#toc-unsafe-getters-setters} +Triggers when you use getters or setters. Getters and setters can have side +effects and are unsafe. + +For example: + +```js flow-check +// flowlint unsafe-getters-setters:error +let a = 1; +const o = { + get a() { return a; }, // Error: unsafe-getters-setters + set b(x: number) { a = x; }, // Error: unsafe-getters-setters + c: 10, +}; +``` + +### `untyped-import` {#toc-untyped-import} +Triggers when you import from an untyped file. Importing from an untyped file +results in those imports being typed as `any`, which is unsafe. + +### `untyped-type-import` {#toc-untyped-type-import} +Triggers when you import a type from an untyped file. Importing a type from an +untyped file results in an `any` alias, which is typically not the intended behavior. +Enabling this lint brings extra attention to this case and can help improve Flow +coverage of typed files by limiting the spread of implicit `any` types. + +### `unused-promise` {#toc-unused-promise} +Triggers when a `Promise` is unused. This can be dangerous, because errors are potentially unhandled, and the code may not execute in the desired order. + +A promise can be "used" by... +* `await`ing it +* Calling `.then` with a rejection handler (i.e., with two arguments) +* Calling `.catch` +* Calling `.finally` +* Storing it in a variable, passing it to a function, etc. + +For example: + +```js flow-check +// flowlint unused-promise:error +declare function foo(): Promise; + +async function bar() { + await foo(); // ok + foo(); // error, we forgot to await! +} + +function baz() { + foo().catch(err => {console.log(err)}); // ok + foo(); // error +} +``` + +You can explicitly ignore the promise with the `void` operator (e.g., `void foo();`). + +Note: As of v0.201.0, this rule subsumed the `unused-promise-in-async-scope` and `unused-promise-in-sync-scope` rules. diff --git a/_src/react/components.md b/_src/react/components.md new file mode 100644 index 00000000000..640c143b178 --- /dev/null +++ b/_src/react/components.md @@ -0,0 +1,191 @@ +--- +title: Components +slug: /react/components +--- + +Adding Flow types to your [React components](https://react.dev/learn/your-first-component) is incredibly powerful. After typing +your component, Flow will statically ensure that you are using the component in +the way it was designed to be used. + +## Functional Components {#toc-functional-components} + +Adding Flow types to a functional component is the same as [adding types to a standard function](../../types/functions/). +Just create an object type for the props and Flow will ensure that the props passed to the component match up with what is expected. + +```js flow-check +import * as React from 'react'; + +type Props = { + foo: number, + bar?: string, +}; + +function MyComponent(props: Props) { + props.doesNotExist; // Error! You did not define a `doesNotExist` prop. + + return
{props.bar}
; +} + + +``` + +> **Note:** We import `React` as a namespace here with +> `import * as React from 'react'` instead of as a default with +> `import React from 'react'`. When importing React as an ES module you may use +> either style, but importing as a namespace gives you access to React's +> [utility types](../types). + + +### Adding Default Props to Functional Components {#toc-adding-default-props-to-functional-components} + +A nice pattern to add default props to functional components is to use +[destructuring with default values](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment/#default_value). +By destructuring the props in the function parameter, you can assign a value to any props that are not passed +to the component (or passed with the value `undefined`). + +```js flow-check +import * as React from 'react'; + +type Props = { + foo?: number, // foo is optional to pass in. + bar: string, // bar is required. +}; + +function MyComponent({foo = 42, bar}: Props) { + // Flow knows that foo is not null or undefined + const baz = foo + 1; +} + +// And we don't need to include foo. +; +``` + +## Class Components {#toc-class-components} + +To Flowify a [class component](https://react.dev/reference/react/Component#defining-a-class-component), the type of the props can be passed as the first +argument to the `React.Component` type. This will have the same effect as adding types +to the `props` parameter of a function component. + +```js flow-check +import * as React from 'react'; + +type Props = { + foo: number, + bar?: string, +}; + +class MyComponent extends React.Component { + render(): React.Node { + this.props.doesNotExist; // Error! You did not define a `doesNotExist` prop. + + return
{this.props.bar}
; + } +} + +; +``` + +Now wherever we use `this.props` in our React component Flow will treat it as +the `Props` type we defined. + +> **Note:** If you don't need to use the `Props` type again you could also +> define it inline: `extends React.Component<{ foo: number, bar?: string }>`. + +`React.Component` is a [generic type](../../types/generics) that takes two type +arguments: props and state. The second type argument, `State`, is optional. By +default it is `undefined` so you can see in the example above we did not include +`State`. We will learn more about state in the next section... + +### Adding State {#toc-adding-state} + +To add a type for state to your React class component: create a new object +type, in the example below we name it `State`, and pass it as the second type +argument to `React.Component`. + +```js flow-check +import * as React from 'react'; + +type Props = { /* ... */ }; + +type State = { + count: number, +}; + +class MyComponent extends React.Component { + state: State = { + count: 0, + }; + + componentDidMount() { + setInterval(() => { + this.setState(prevState => ({ + count: prevState.count + 1, + })); + }, 1000); + } + + render(): React.Node { + return
Count: {this.state.count}
; + } +} + +; +``` + +In the example above we are using a [React `setState()` updater function](https://react.dev/reference/react/Component#setstate) +but you could also pass a partial state object to `setState()`. + +> **Note:** If you don't need to use the `State` type again you could also +> define it inline: `extends React.Component<{}, { count: number }>`. + +### Using Default Props for Class Components {#toc-using-default-props-for-class-components} + +React supports the notion of `defaultProps` which you can think of as default +function arguments. When you create an element and do not include a prop +which has a default then React will substitute that prop with its corresponding +value from `defaultProps`. Flow supports this notion as well. To type default +props add a `static defaultProps` property to your class. + +```js flow-check +import * as React from 'react'; + +type Props = { + foo: number, // foo is required. + bar: string, // bar is required. +}; + +class MyComponent extends React.Component { + static defaultProps: {foo: number} = { + foo: 42, // ...but we have a default prop for foo. + }; +} + +// So we don't need to include foo. + +``` + +> **Note:** You don't need to make `foo` nullable in your `Props` type. Flow +> will make sure that `foo` is optional if you have a default prop for `foo`. + +If you add a type annotation to `defaultProps` you can define the type as +```js flow-check +type DefaultProps = { + foo: number, +}; +``` +and spread that into the `Props` type: +```js +type Props = { + ...DefaultProps, + bar: string, +}; +``` +This way you avoid duplicating the properties that happen to have a default value. + +> **Note:** You can also apply this format of default props to functional components +> by adding a `defaultProps` property to a the component function. However, it is generally +> simpler to use the destructuring pattern described above. +> ```js flow-check +> function MyComponent(props: {foo: number}) {} +> MyComponent.defaultProps = {foo: 42}; +> ``` diff --git a/_src/react/events.md b/_src/react/events.md new file mode 100644 index 00000000000..0790d4953d9 --- /dev/null +++ b/_src/react/events.md @@ -0,0 +1,68 @@ +--- +title: Event Handling +slug: /react/events +--- + +The [React docs for handling events](https://react.dev/learn/responding-to-events) show how an event handler can be attached to +a React element. To type these event handlers you may use the `SyntheticEvent` +types like this: + +```js flow-check +import {useState} from 'react'; +import * as React from 'react'; + +function MyComponent(): React.Node { + const [state, setState] = useState({count: 0}); + + const handleClick = (event: SyntheticEvent) => { + // To access your button instance use `event.currentTarget`. + (event.currentTarget: HTMLButtonElement); + + setState(prevState => ({ + count: prevState.count + 1, + })); + }; + + return ( +
+

Count: {state.count}

+ +
+ ); +} +``` + +There are also more specific synthetic event types like +`SyntheticKeyboardEvent`, `SyntheticMouseEvent`, or +`SyntheticTouchEvent`. The `SyntheticEvent` types all take a single type +argument: the type of the HTML element the event handler was placed on. + +If you don't want to add the type of your element instance you can also use +`SyntheticEvent` with *no* type arguments like so: `SyntheticEvent<>`. + +> **Note:** To get the element instance, like `HTMLButtonElement` in the example +> above, it is a common mistake to use `event.target` instead of +> `event.currentTarget`. The reason you want to use `event.currentTarget` is +> that `event.target` may be the wrong element due to [event propagation][]. + +[event propagation]: https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Examples#example_5_event_propagation + +> **Note:** React uses its own event system so it is important to use the +> `SyntheticEvent` types instead of the DOM types such as `Event`, +> `KeyboardEvent`, and `MouseEvent`. + +The `SyntheticEvent` types that React provides and the DOM events they are +related to are: + +- `SyntheticEvent` for [Event](https://developer.mozilla.org/en-US/docs/Web/API/Event) +- `SyntheticAnimationEvent` for [AnimationEvent](https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent) +- `SyntheticCompositionEvent` for [CompositionEvent](https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent) +- `SyntheticInputEvent` for [InputEvent](https://developer.mozilla.org/en-US/docs/Web/API/InputEvent) +- `SyntheticUIEvent` for [UIEvent](https://developer.mozilla.org/en-US/docs/Web/API/UIEvent) +- `SyntheticFocusEvent` for [FocusEvent](https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent) +- `SyntheticKeyboardEvent` for [KeyboardEvent](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent) +- `SyntheticMouseEvent` for [MouseEvent](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent) +- `SyntheticDragEvent` for [DragEvent](https://developer.mozilla.org/en-US/docs/Web/API/DragEvent) +- `SyntheticWheelEvent` for [WheelEvent](https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent) +- `SyntheticTouchEvent` for [TouchEvent](https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent) +- `SyntheticTransitionEvent` for [TransitionEvent](https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent) diff --git a/_src/react/hoc.md b/_src/react/hoc.md new file mode 100644 index 00000000000..727036ed159 --- /dev/null +++ b/_src/react/hoc.md @@ -0,0 +1,179 @@ +--- +title: Higher-order Components +slug: /react/hoc +--- + +A popular pattern in React is the [higher-order component pattern][], so it's +important that we can provide effective types for higher-order components in +Flow. If you don't already know what a higher-order component is then make sure +to read the [React documentation on higher-order components][] before +continuing. + +[higher-order component pattern]: https://facebook.github.io/react/docs/higher-order-components.html +[React documentation on higher-order components]: https://facebook.github.io/react/docs/higher-order-components.html + +You can make use of the [`React.AbstractComponent`](../types/#toc-react-abstractcomponent) type to annotate your higher order components. + +### The Trivial HOC {#toc-the-trivial-hoc} + +Let's start with the simplest HOC: + +```js flow-check +import * as React from 'react'; + +function trivialHOC( + Component: React.AbstractComponent +): React.AbstractComponent { + return Component; +} +``` + +This is a basic template for what your HOCs might look like. At runtime, this HOC doesn't +do anything at all. Let's take a look at some more complex examples. + +### Injecting Props {#toc-injecting-props} + +A common use case for higher-order components is to inject a prop. +The HOC automatically sets a prop and returns a component which no longer requires +that prop. For example, consider a navigation prop. How would one type this? + +To remove a prop from the config, we can take a component that includes the +prop and return a component that does not. It's best to construct these +types using object type spread. + +```js flow-check +import * as React from 'react'; + +type InjectedProps = {foo: number} + +function injectProp( + Component: React.AbstractComponent<{...Config, ...InjectedProps}> +): React.AbstractComponent { + return function WrapperComponent( + props: Config, + ) { + return ; + }; +} + +function MyComponent(props: { + a: number, + b: number, + ...InjectedProps, +}): React.Node {} + +const MyEnhancedComponent = injectProp(MyComponent); + +// We don't need to pass in `foo` even though `MyComponent` requires it: +; // OK + +// We still require `a` and `b`: +; // ERROR +``` + +### Preserving the Instance Type of a Component {#toc-preserving-the-instance-type-of-a-component} + +Recall that the instance type of a function component is `void`. Our example +above wraps a component in a function, so the returned component has the instance +type `void`. + +```js flow-check +import * as React from 'react'; + +type InjectedProps = {foo: number} + +function injectProp( + Component: React.AbstractComponent<{...Config, ...InjectedProps}> +): React.AbstractComponent { + return function WrapperComponent( + props: Config, + ) { + return ; + }; +} + +// A class component in this example +class MyComponent extends React.Component<{ + a: number, + b: number, + ...InjectedProps, +}> {} + +const MyEnhancedComponent = injectProp(MyComponent); + +// If we create a ref object for the component, it will never be assigned +// an instance of MyComponent! +const ref = React.createRef(); + +// Error, mixed is incompatible with MyComponent. +; +``` + +We get this error message because `React.AbstractComponent` doesn't set the `Instance` type +parameter, so it is automatically set to `mixed`. If we wanted to preserve the instance type +of the component, we can use [`React.forwardRef`](https://reactjs.org/docs/forwarding-refs.html): + +```js flow-check +import * as React from 'react'; + +type InjectedProps = {foo: number} + +function injectAndPreserveInstance( + Component: React.AbstractComponent<{...Config, ...InjectedProps}, Instance> +): React.AbstractComponent { + return React.forwardRef((props, ref) => + + ); +} + +class MyComponent extends React.Component<{ + a: number, + b: number, + ...InjectedProps, +}> {} + +const MyEnhancedComponent = injectAndPreserveInstance(MyComponent); + +const ref = React.createRef(); + +// All good! The ref is forwarded. +; +``` + +### Exporting Wrapped Components {#toc-exporting-wrapped-components} + +If you try to export a wrapped component, chances are that you'll run into a missing annotation error: + +```js flow-check +import * as React from 'react'; + +function trivialHOC( + Component: React.AbstractComponent, +): React.AbstractComponent { + return Component; +} + +type Props = $ReadOnly<{bar: number, foo?: number}>; + +function MyComponent({bar, foo = 3}: Props): React.Node {} + +export const MyEnhancedComponent = trivialHOC(MyComponent); // ERROR +``` + +You can add an annotation to your exported component using `React.AbstractComponent`: + +```js flow-check +import * as React from 'react'; + +function trivialHOC( + Component: React.AbstractComponent, +): React.AbstractComponent { + return Component; +} + +type Props = $ReadOnly<{bar: number, foo?: number}>; + +function MyComponent({bar, foo = 3}: Props): React.Node {} + +export const MyEnhancedComponent: React.AbstractComponent = trivialHOC(MyComponent); // OK +``` diff --git a/_src/react/index.md b/_src/react/index.md new file mode 100644 index 00000000000..db920a4dbf3 --- /dev/null +++ b/_src/react/index.md @@ -0,0 +1,33 @@ +--- +title: Getting Started +slug: /react +description: Learn how to use Flow to effectively type common and advanced React patterns. +--- + +Developers will often use Flow and React together, so it is important that Flow +can effectively type both common and advanced React patterns. This guide will +teach you how to use Flow to create safer React applications. + +In this guide we will assume you know [the React basics](https://react.dev/learn) and focus on adding +types for patterns you are already familiar with. We will be using examples +based on `react-dom`, but all of these patterns work in other environments +like `react-native` as well. + +## Setup Flow with React {#toc-setup-flow-with-react} + +Flow and Babel work well together, so it doesn't take much to adopt Flow as a +React user who already uses Babel. If you need to setup Babel with Flow, you can +follow [this guide](../tools/babel/). + +## React Runtimes + +Flow supports the `@babel/plugin-transform-react-jsx` runtime options required +to use JSX without explicitly importing the React namespace. + +If you are using the new automatic runtime, use this configuration in your `.flowconfig` so +that Flow knows to auto-import `jsx`: + +```ini +[options] +react.runtime=automatic +``` diff --git a/_src/react/multiplatform.md b/_src/react/multiplatform.md new file mode 100644 index 00000000000..ec8c658e118 --- /dev/null +++ b/_src/react/multiplatform.md @@ -0,0 +1,132 @@ +--- +title: Multi-platform Support for React Native +slug: /react/multiplatform +description: "Flow's support for multiple platforms inside a single React Native codebase" +--- + +:::caution +The feature is still experimental. Behaviors might change in the future. +::: + +## Benefits {#toc-benefits} + +React Native supports conditional bundling of files with [platform specific extensions](https://reactnative.dev/docs/platform-specific-code#platform-specific-extensions). For example, if you have different implementations of an Image component for iOS and Android, you can have an `Image.ios.js` file and `Image.android.js` file, and an import of Image can be resolved to either file based on the platform you are targeting. + +These platform specific files live under the same repository, but it would normally require two flowconfigs to check them like the following setup: + +```toml title=.flowconfig +; for ios +[ignore] +.*\.android\.js$ +[options] +module.file_ext=.js +module.file_ext=.ios.js +``` + +```toml title=.flowconfig.android +; for android +[ignore] +; Ignore other platform suffixes +.*\.ios\.js$ +[options] +module.file_ext=.js +module.file_ext=.android.js +``` + +Flow's optional React Native multi-platform support allows you to check your entire project with mixed platforms under a single Flow root, so that during the development of a module with both .ios and .android files, you no longer have to run both Flow servers and constantly switch between different servers to see type errors on different platforms. + +## Quick Start {#toc-quick-start} + +You can start by deleting the flowconfig for all other platforms, deleting all the platform specific configs in the only remaining flowconfig, and add the following new lines to the `options` section: + +``` +experimental.multi_platform=true +experimental.multi_platform.extensions=.ios +experimental.multi_platform.extensions=.android +``` + +For example, these are the required changes for the `.flowconfig` example above: + +```diff title=.flowconfig +[ignore] +- .*\.android\.js$ +[options] +module.file_ext=.js +- module.file_ext=.ios.js ++ experimental.multi_platform=true ++ experimental.multi_platform.extensions=.ios ++ experimental.multi_platform.extensions=.android +``` + +After enabling the new configurations, there will likely be new errors. The sections below explain the additional rules that Flow imposes to check a multiplatform React Native project. + +## Common Interface Files {#toc-common-interface-file} + +Suppose you have a file that imports the `Image` module, but `Image` module has different iOS and Android implementations as follows: + +```jsx title=MyReactNativeApp.js +import * as React from 'react'; +import Image from './Image'; + +; +; +``` + +```jsx title=Image.ios.js +import * as React from 'react'; + +type Props = { src: string, lazyLoading?: boolean }; + +export default function Image(props: Props): React.Node { /* ... */ } +``` + +```jsx title=Image.android.js +import * as React from 'react'; + +type Props = { src: string, lazyLoading: boolean }; + +export default class Image extends React.Components { + static defaultProps: { lazyLoading: boolean } = { lazyLoading: false }; + render(): React.Node { /* ... */ } +} +``` + +When you enabled multiplatform support, you will likely see that error that the `./Image` module cannot be resolved. To fix the error, you need to create a common interface file under the same directory: + +### Common Interface File in `.js.flow` {#toc-common-interface-file-in-js-flow} + +One option is to write a common interface file in `.js.flow`: + +```jsx title=Image.js.flow +import * as React from 'react'; + +type Props = { src: string, lazyLoading?: boolean }; + +declare const Image: React.AbstractComponent; +export default Image; +``` + +Flow will ensure that the module types of both `Image.ios.js` and `./Image.android.js` are subtype of the module type of `./Image.js.flow`. Flow will also ensure that there exists an implementation for each platform you declared in your `.flowconfig`. + +### Common Interface File in `.js` {#toc-common-interface-file-in-js} + +Sometimes you might target desktop platforms in addition to iOS and Android, and you only have a special implementation for one platform, and all the other platforms will use the fallback implementation in a `.js` file. For example: + +```jsx title=Image.js +import * as React from 'react'; +import DefaultImage from 'react-native/Libraries/Image'; + +export default DefaultImage; +``` + +```jsx title=Image.ios.js +import * as React from 'react'; + +type Props = { src: string, lazyLoading: boolean }; + +export default function Image(props: Props): React.Node { + // Custom implementation to take advantage of some unique iOS capabilities +} +``` + +In this case, Flow will use the `.js` file as the common interface file, and check all other platform-specific implementation files' against the `.js` file. Since the `.js` file is already a fallback implementation, Flow will no longer require that platform-specific implementation files exist for all platforms. diff --git a/_src/react/refs.md b/_src/react/refs.md new file mode 100644 index 00000000000..9711fc4c751 --- /dev/null +++ b/_src/react/refs.md @@ -0,0 +1,54 @@ +--- +title: Ref Functions +slug: /react/refs +--- + +React allows you to grab the instance of an element or component with [refs](https://react.dev/learn/manipulating-the-dom-with-refs). + +## Refs in Functional Components {#toc-refs-in-functional-components} + +Inside a functional component, refs are accessed with the `useRef` hook: + +```js flow-check +import {useRef} from 'react'; +import * as React from 'react'; + +function MyComponent() { + const buttonRef = useRef(null); + (buttonRef: {current: null | HTMLButtonElement}); // useRef wraps the ref value in an object + return ; +} +``` + +Note that `useRef` wraps the ref value in an object with a `current` property. This must be +reflected in the type of anything accepting the ref value. + +## Refs in Class Components {#toc-refs-in-class-components} + +Refs in class components are similar to function components. To create one, add a +property to your class and assign the result of `React.createRef` to it. + +```js flow-check +import * as React from 'react'; + +class MyComponent extends React.Component<{}> { + // The `null` here is important because you may not always have the instance. + buttonRef: {current: null | HTMLButtonElement}; + + constructor() { + super(); + this.buttonRef = React.createRef(); + } + + render(): React.Node { + return ; + } +} +``` + +One notable difference between `useRef` and `createRef` is that `createRef` does not accept +a default value. It will initialize the ref with the value `null`. This is because +DOM elements will not exist until the first render of `MyComponent` and so a `null` value +must be used. + +Again, note that the ref value is wrapped in an object with a `current` property. diff --git a/_src/react/types.md b/_src/react/types.md new file mode 100644 index 00000000000..4fb0cfd3bde --- /dev/null +++ b/_src/react/types.md @@ -0,0 +1,308 @@ +--- +title: Type Reference +slug: /react/types +--- + +React exports a handful of utility types that may be useful to you when typing +advanced React patterns. In previous sections we have seen a few of them. The +following is a complete reference for each of these types along with some +examples for how/where to use them. + +These types are all exported as named type exports from the `react` module. If +you want to access them as members on the `React` object (e.g. +[`React.Node`](#toc-react-node)) and +you are importing React as an ES module then you should import `React` as a +namespace: + +```js +import * as React from 'react'; +``` + +If you are using CommonJS you can also require React: + +```js +const React = require('react'); +``` + +You can also use named type imports in either an ES module environment or a +CommonJS environment: + +```js +import type {Node} from 'react'; +``` + +We will refer to all the types in the following reference as if we imported them +with: + +```js +import * as React from 'react'; +``` + +> **Note:** While importing React with a default import works: +> +> ``` +> import React from 'react'; +> ``` +> +> You will have access to all of the values that React exports, but you will +> **not** have access to the types documented below! This is because Flow will +> not add types to a default export since the default export could be any value +> (like a number). Flow will add exported named types to an ES namespace object +> which you can get with `import * as React from 'react'` since Flow knows if +> you export a value with the same name as an exported type. +> +> Again, if you import React with: `import React from 'react'` you will be able +> to access `React.Component`, `React.createElement()`, `React.Children`, and +> other JavaScript *values*. However, you will not be able to access +> [`React.Node`](#toc-react-node), [`React.ChildrenArray`](#toc-react-childrenarray) or +> other Flow *types*. You will need to use a named type import like: +> `import type {Node} from 'react'` in addition to your default import. + +## `React.Node` {#toc-react-node} + +This represents any node that can be rendered in a React application. +`React.Node` can be null, a boolean, a number, a string, a React +element, or an array of any of those types recursively. + +`React.Node` is a good default to use to annotate the return type of a function component +and class render methods. You can also use it to type elements your component takes in as children. + +Here is an example of `React.Node` being used as the return type to a function component: + +```js +function MyComponent(props: {}): React.Node { + // ... +} +``` + +It may also be used as the return type of a class `render` method: +```js +class MyComponent extends React.Component<{}> { + render(): React.Node { + // ... + } +} +``` + +Here is an example of `React.Node` as the prop type for children: + +```js +function MyComponent({ children }: { children: React.Node }) { + return
{children}
; +} +``` + +All `react-dom` JSX intrinsics have `React.Node` as their children type. +`
`, ``, and all the rest. + +## `React.MixedElement` {#toc-react-mixedelement} + +The most general type of all React elements (similar to `mixed` for all values). `React.MixedElement` is defined as +`React.Element`. + +A common use case of this type is when we want to annotate an element with a type that hides the element details. For example +```js +const element: React.MixedElement =
; +``` + +## `React.Element` {#toc-react-element} + +A React element is the type for the value of a JSX element: + +```js +const element: React.Element<'div'> =
; +``` + +`React.Element` is also the return type of +`React.createElement()`/`React.jsx()`. + +A `React.Element` takes a single type argument, +`typeof Component`. `typeof Component` is the component type of the React +element. For an intrinsic element, `typeof Component` will be the string literal +for the intrinsic you used. Here are a few examples with DOM intrinsics: + +```js +(
: React.Element<'div'>); // OK +(: React.Element<'span'>); // OK +(
: React.Element<'span'>); // Error: div is not a span. +``` + +`typeof Component` can also be your React class component or function component. + +```js +function Foo(props: {}) {} +class Bar extends React.Component<{}> {} + +(: React.Element); // OK +(: React.Element); // OK +(: React.Element); // Error: Foo is not Bar +``` + +Take note of the `typeof`, it is required! We want to get the +type *of* the value `Foo`. `(Foo: Foo)` is an error because `Foo` cannot be used +as a type, so the following is correct: `(Foo: typeof Foo)`. + +`Bar` without `typeof` would be the type of an instance of `Bar`: `(new Bar(): Bar)`. +We want the type *of* `Bar` not the type of an instance of `Bar`. +`Class` would also work here, but we prefer `typeof` for consistency +with function components. + +## `React.ChildrenArray` {#toc-react-childrenarray} + +A React children array can be a single value or an array nested to any level. +It is designed to be used with the [`React.Children` API](https://react.dev/reference/react/Children). + +For example if you want to get a normal JavaScript array from a +`React.ChildrenArray` see the following example: + +```js +import * as React from 'react'; + +// A children array can be a single value... +const children: React.ChildrenArray = 42; +// ...or an arbitrarily nested array. +const children: React.ChildrenArray = [[1, 2], 3, [4, 5]]; + +// Using the `React.Children` API can flatten the array. +const array: Array = React.Children.toArray(children); +``` + +## `React.AbstractComponent` {#toc-react-abstractcomponent} + +`React.AbstractComponent` represents a component with +a config of type Config and instance of type Instance. + +The `Config` of a component is the type of the object you need to pass in to JSX in order +to create an element with that component. The `Instance` of a component is the type of the value +that is written to the `current` field of a ref object passed into the `ref` prop in JSX. + +Config is required, but Instance is optional and defaults to mixed. + +A class or function component with config `Config` may be used in places that expect +`React.AbstractComponent`. + +This is Flow's most abstract representation of a React component, and is most useful for +writing HOCs and library definitions. + +## `React.ComponentType` {#toc-react-componenttype} + +This is the same as [`React.AbstractComponent`](#toc-react-abstractcomponent), but only specifies the first type argument. + +## `React.ElementType` {#toc-react-elementtype} + +Similar to [`React.AbstractComponent`](#toc-react-abstractcomponent) except it also +includes JSX intrinsics (strings). + +The definition for `React.ElementType` is roughly: + +```js +type ElementType = + | string + | React.AbstractComponent; +``` + +## `React.Key` {#toc-react-key} + +The type of the key prop on React elements. It is a union of strings and +numbers defined as: + +```js +type Key = string | number; +``` + +## `React.Ref` {#toc-react-ref} + +The type of the [ref prop on React elements][]. `React.Ref` +could be a string, ref object, or ref function. + +[ref prop on React elements]: https://react.dev/learn/manipulating-the-dom-with-refs + +The ref function will take one and only argument which will be the element +instance which is retrieved using +[`React.ElementRef`](#toc-react-elementref) or null since +[React will pass null into a ref function when unmounting][]. + +[React will pass null into a ref function when unmounting]: https://react.dev/learn/manipulating-the-dom-with-refs#how-to-manage-a-list-of-refs-using-a-ref-callback + +Like [`React.Element`](#toc-react-element), `typeof Component` +must be the type *of* a React component so you need to use `typeof` as in +`React.Ref`. + +The definition for `React.Ref` is roughly: + +```js +type Ref = + | string + | (instance: React.ElementRef | null) => mixed; + | { -current: React$ElementRef | null, ... } +``` + +## `React.ElementConfig` {#toc-react-elementconfig} + +This utility gets the type of the object that you must pass in to a +component in order to instantiate it via `createElement()` or `jsx()`. + +Importantly, props with defaults are optional in the resulting type. + +For example, + +```js +import * as React from 'react'; + +class MyComponent extends React.Component<{foo: number}> { + static defaultProps = {foo: 42}; + + render() { + return this.props.foo; + } +} + +// `React.ElementProps<>` requires `foo` even though it has a `defaultProp`. +({foo: 42}: React.ElementProps); + +// `React.ElementConfig<>` does not require `foo` since it has a `defaultProp`. +({}: React.ElementConfig); +``` + +Like [`React.Element`](#toc-react-element), `typeof Component` must be the +type *of* a React component so you need to use `typeof` as in +`React.ElementProps`. + + +## `React.ElementProps` {#toc-react-elementprops} + +> **Note:** Because [`React.ElementProps`](#toc-react-elementprops) does not preserve the optionality of `defaultProps`, [`React.ElementConfig`](#toc-react-elementconfig) (which does) is more often the right choice, especially for simple props pass-through as with [higher-order components](../hoc/#toc-supporting-defaultprops-with-react-elementconfig). +You probably should not use ElementProps. + +Gets the props for a React element type, *without* preserving the optionality of `defaultProps`. +`typeof Component` could be the type of a React class component, a function component, or a JSX intrinsic string. +This type is used for the `props` property on [`React.Element`](#toc-react-element). + +Like [`React.Element`](#toc-react-element), `typeof Component` must be the +type *of* a React component so you need to use `typeof` as in +`React.ElementProps`. + +## `React.ElementRef` {#toc-react-elementref} + +Gets the instance type for a React element. The instance will be different for +various component types: + +- React.AbstractComponent will return the Instance type. +- React class components will be the class instance. So if you had + `class Foo extends React.Component<{}> {}` and used + `React.ElementRef` then the type would be the instance of `Foo`. +- React function components do not have a backing instance and so + `React.ElementRef` (when `Bar` is `function Bar() {}`) will give + you the undefined type. +- JSX intrinsics like `div` will give you their DOM instance. For + `React.ElementRef<'div'>` that would be `HTMLDivElement`. For + `React.ElementRef<'input'>` that would be `HTMLInputElement`. + +Like [`React.Element`](#toc-react-element), `typeof Component` must be the +type *of* a React component so you need to use `typeof` as in +`React.ElementRef`. + +## `React.Config` {#toc-react-config} + +Calculates a config object from props and default props. This is most useful for annotating +HOCs that are abstracted over configs. See our [docs on writing HOCs](../hoc) for more information. diff --git a/_src/strict/index.md b/_src/strict/index.md new file mode 100644 index 00000000000..f7eb60295a1 --- /dev/null +++ b/_src/strict/index.md @@ -0,0 +1,58 @@ +--- +title: Flow Strict +slug: /strict +description: Learn how to enable stricter type checking on a file-by-file basis. +--- + +You can enable stronger safety guarantees in Flow (such as banning `any`/`Object`/`Function` types and requiring all dependencies to be typed) by adding **`@flow strict`** to your files. + +### Overview {#toc-overview} +Flow was designed for easy adoption, so it allows you opt-out of type checking in certain situations, permitting unsafe behaviors. But since many codebases now have a high adoption of Flow types, this trade-off can be flipped. You can use *Flow Strict* to disallow previously-allowed unsafe patterns. This gives you improved safety guarantees that catch more bugs and make refactoring easier. And you can implement these stronger guarantees incrementally, on a file-by-file basis. + +### Features {#toc-features} +Enabling Flow Strict for a file means that several previously-allowed patterns will now trigger a Flow error. Each disallowed pattern has a corresponding [Flow Lint](../linting/) rule which triggers the error. The list of rules enabled for `@flow strict` is configured in each `.flowconfig`. Here are the recommended rules: + + - [`nonstrict-import`](../linting/rule-reference/#toc-nonstrict-import): Triggers an error when importing from a module which is not also `@flow strict`. This is very important, because it means that when a file is marked as strict, all of its dependencies are strict as well. + - [`unclear-type`](../linting/rule-reference/#toc-unclear-type): Triggers an error when using `Object`, `Function`, or `any` in a type annotation. + - [`untyped-import`](../linting/rule-reference/#toc-untyped-import): Triggers an error when importing from an untyped module. + - [`untyped-type-import`](../linting/rule-reference/#toc-untyped-type-import): Triggers an error when importing a type from an untyped module. + - [`unsafe-getters-setters`](../linting/rule-reference/#toc-unsafe-getters-setters): Triggers an error when using getters and setters, which can be unsafe. + - [`sketchy-null`](../linting/rule-reference/#toc-sketchy-null): Triggers an error when doing an existence check on a value that could be null/undefined or falsey. + +For a full list of available lint rules, see the [Lint Rule Reference](../linting/rule-reference/). + +Additionally, note that function parameters are considered const (i.e., treated as if they were declared with `const` rather than `let`). This feature is not yet configurable in Flow Strict; it is always on. + +### Enabling Flow Strict in a .flowconfig {#toc-enabling-flow-strict-in-a-flowconfig} +Flow Strict is configured in each `.flowconfig`. To enable: +1. Add a `[strict]` section to the `.flowconfig`. +2. List the lint rules to enable . These are strongly recommended: +```text +[strict] +nonstrict-import +unclear-type +unsafe-getters-setters +untyped-import +untyped-type-import +``` +Also recommended, but optional as it may be too noisy in some codebases: +`sketchy-null` + +We recommend you enable all your desired rules from the beginning, then adopt Flow Strict file-by-file. This works better than enabling a single rule, adding `@flow strict` to many files, and then adding more rules to the config. + +### Adoption {#toc-adoption} +Add `@flow strict` to a file and fix all errors that appear. Because Flow Strict requires dependencies to also be strict (if the `nonstrict-import` rule is enabled), start at the leaves of the dependency tree and work up from there. Do not add `$FlowFixMe` to suppress the new errors as they appear; just add `@flow strict` once all issues have been resolved. Since the most common reasons for using `$FlowFixMe` stem from reliance on untyped dependencies or behavior, future issues should be greatly reduced once Flow Strict is enabled. + +Be liberal with enabling Flow Strict. Unlike adding or removing `@flow`, adding or removing `@flow strict` (by itself) does not change Flow coverage. It only prevents or allows certain new unsafe behavior from being added in the future. Even if in the future Flow Strict has to be disabled for the file, at least unsafe behavior was prevented from being added in the meantime. + +Library definitions are considered strict (as they can be included in many different projects with contradicting strict configurations). + +### Strict Local {#toc-strict-local} +If you enable the `nonstrict-import` rule in your Flow Strict configuration (recommended), then all dependencies of a strict file must also be strict. While this the optimal goal, for large pre-existing codebases it may be beneficial to allow some of the benefits of Flow Strict to be put in use before all dependencies are strict. + +`@flow strict-local` is the same as `@flow strict`, except it does not require its dependencies to also be strict (i.e. it is "locally" strict). It does not have a separate configuration: it uses the same configuration as Flow Strict, just without the `nonstrict-import` rule. + +Once all the dependencies of a `@flow strict-local` file are strict, the file can be upgraded to a `@flow strict` file. A `@flow strict` file cannot depend on a `@flow strict-local` file as this would break the `nonstrict-import` rule. + +### What's Ahead {#toc-what-s-ahead} +Eventually, some features of Flow Strict could become the default behavior of Flow, if those features prove successful and achieve widespread adoption. diff --git a/_src/tools/babel.md b/_src/tools/babel.md new file mode 100644 index 00000000000..cb7b9a7a8dd --- /dev/null +++ b/_src/tools/babel.md @@ -0,0 +1,30 @@ +--- +title: Babel +slug: /tools/babel +--- + +Flow and [Babel](http://babeljs.io/) are designed to work great together. It +takes just a few steps to set them up together. + +If you don't have Babel setup already, you can do that by following +[this guide](http://babeljs.io/docs/setup/). + +Once you have Babel setup, install `@babel/preset-flow` and `babel-plugin-syntax-hermes-parser` with either +[Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/). + +```sh +yarn add --dev @babel/preset-flow babel-plugin-syntax-hermes-parser +# or +npm install --save-dev @babel/preset-flow babel-plugin-syntax-hermes-parser +``` + +Then add the `@babel/preset-flow` preset and `babel-plugin-syntax-hermes-parser` plugin to your Babel config. + +```json +{ + "presets": ["@babel/preset-flow"], + "plugins": ["babel-plugin-syntax-hermes-parser"], +} +``` + +You can read the documentation of [babel-plugin-syntax-hermes-parser](https://github.com/facebook/hermes/blob/main/tools/hermes-parser/js/babel-plugin-syntax-hermes-parser/README.md) to see how to configure it. [This website's Babel config](https://github.com/facebook/flow/blob/baa74a889dc81fe36f0fd362db6d3e27d44d961d/website/babel.config.js#L10-L17) provides an example with custom parser options. diff --git a/_src/tools/eslint.md b/_src/tools/eslint.md new file mode 100644 index 00000000000..21385ba1b01 --- /dev/null +++ b/_src/tools/eslint.md @@ -0,0 +1,104 @@ +--- +title: ESLint +slug: /tools/eslint +--- + +ESLint is a static analysis tool which can help you quickly find and +fix bugs and stylistic errors in your code. The rules ESLint provide +complement the checks provided by Flow's type system. + +You can quick-start setup ESLint, install `hermes-eslint` with either +[Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/). + +```sh +yarn add --dev eslint hermes-eslint eslint-plugin-ft-flow +# or +npm install --save-dev eslint hermes-eslint eslint-plugin-ft-flow +``` + +Then create a `.eslintrc.js` file in your project root with the following: + +```js +module.exports = { + root: true, + parser: 'hermes-eslint', + plugins: [ + 'ft-flow' + ], + extends: [ + 'eslint:recommended', + 'plugin:ft-flow/recommended', + ], +}; +``` + +In the above config the order of the `extends` plugins is important as `plugin:ft-flow/recommended` +disables some rules from `eslint:recommended` so it needs to be defined after to work correctly. + +For more information about configuring ESLint, [check out the ESLint docs](https://eslint.org/). + +You can then lint your codebase with: + +```sh +yarn run eslint . --ext .js,.jsx +# or +npm run eslint . --ext .js,.jsx +``` + +### Usage With Prettier {#toc-usage-with-prettier} + +If you use [`prettier`](https://www.npmjs.com/package/prettier), there is also +a helpful config to help ensure ESLint doesn't report on formatting issues that +prettier will fix: [`eslint-config-prettier`](https://www.npmjs.com/package/eslint-config-prettier). + +Using this config by adding it to the **_end_** of your `extends`: + +```diff + module.exports = { + root: true, + parser: 'hermes-eslint', + plugins: [ + 'ft-flow' + ], + extends: [ + 'eslint:recommended', + 'plugin:ft-flow/recommended', ++ 'prettier', + ], + }; +``` + + +### Additional Plugins {#toc-additional-plugins} + +ESLint plugins provide additional rules and other functionality on top of ESLint. +Below are just a few examples that might be useful: + +- Helpful language rules by the Flow team: [`eslint-plugin-fb-flow`](https://www.npmjs.com/package/eslint-plugin-fb-flow) +- React best practices: [`eslint-plugin-react`](https://www.npmjs.com/package/eslint-plugin-react) + and [`eslint-plugin-react-hooks`](https://www.npmjs.com/package/eslint-plugin-react-hooks) +- Jest testing: [`eslint-plugin-jest`](https://www.npmjs.com/package/eslint-plugin-jest) +- Import/export conventions : [`eslint-plugin-import`](https://www.npmjs.com/package/eslint-plugin-import) +- NodeJS best practices: [`eslint-plugin-node`](https://www.npmjs.com/package/eslint-plugin-node) +- ESLint comment restrictions: [`eslint-plugin-eslint-comments`](https://www.npmjs.com/package/eslint-plugin-eslint-comments) + +Every plugin that is out there includes documentation on the various configurations and rules they offer. +A typical plugin might be used like: + +```diff + module.exports = { + root: true, + parser: 'hermes-eslint', + plugins: [ + 'ft-flow' ++ 'jest', + ], + extends: [ + 'eslint:recommended', + 'plugin:ft-flow/recommended', ++ 'plugin:jest/recommended', + ], + }; +``` + +Search ["eslint-plugin" on npm](https://www.npmjs.com/search?q=eslint-plugin) for more. diff --git a/_src/tools/flow-remove-types.md b/_src/tools/flow-remove-types.md new file mode 100644 index 00000000000..628e30b7e47 --- /dev/null +++ b/_src/tools/flow-remove-types.md @@ -0,0 +1,41 @@ +--- +title: flow-remove-types +slug: /tools/flow-remove-types +--- + +[`flow-remove-types`](https://github.com/facebook/flow/tree/master/packages/flow-remove-types) is a small +CLI tool for stripping Flow type annotations from files. It's a lighter-weight +alternative to Babel for projects that don't need everything Babel provides. + +First install `flow-remove-types` with either +[Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/). + +```sh +yarn add --dev flow-remove-types +# or +npm install --save-dev flow-remove-types +``` + +If you then put all your source files in a `src` directory you can compile them +to another directory by running: + +```sh +yarn run flow-remove-types src/ -d lib/ +``` + +You can add this to your `package.json` scripts easily. + +```json +{ + "name": "my-project", + "main": "lib/index.js", + "scripts": { + "build": "flow-remove-types src/ -d lib/", + "prepublish": "yarn run build" + } +} +``` + +> **Note:** You'll probably want to add a `prepublish` script that runs this +> transform as well, so that it runs before you publish your code to the npm +> registry. diff --git a/_src/tools/index.md b/_src/tools/index.md new file mode 100644 index 00000000000..a5c280a11c9 --- /dev/null +++ b/_src/tools/index.md @@ -0,0 +1,14 @@ +--- +title: Tools +slug: /tools +displayed_sidebar: docsSidebar +description: Detailed guides, tips, and resources on how to integrate Flow with different JavaScript tools. +--- + +import DocCardList from '@theme/DocCardList'; + + diff --git a/_src/types/aliases.md b/_src/types/aliases.md new file mode 100644 index 00000000000..403451cc86e --- /dev/null +++ b/_src/types/aliases.md @@ -0,0 +1,89 @@ +--- +title: Type Aliases +slug: /types/aliases +--- + +When you have complicated types that you want to reuse in multiple places, you +can alias them in Flow using a **type alias**. + +```js flow-check +type MyObject = { + foo: number, + bar: boolean, + baz: string, +}; +``` + +These type aliases can be used anywhere a type can be used. + +```js flow-check +type MyObject = { + // ... +}; + +const val: MyObject = { /* ... */ }; +function method(val: MyObject) { /* ... */ } +class Foo { constructor(val: MyObject) { /* ... */ } } +``` + +Type aliases are just that: aliases. They don't create a _different_ type, just another name for one. +This means that a type alias is completely interchangeable with the type it is equal to. + +```js flow-check +type MyNumber = number; +declare const x: MyNumber; +declare function foo(x: number): void; +foo(x); // ok, because MyNumber = number +``` + +[Opaque type aliases](../opaque-types) offer an alternative for when you don't want to treat the +types as the same. + +## Type Alias Syntax {#toc-type-alias-syntax} + +Type aliases are created using the keyword `type` followed by its name, an +equals sign `=`, and a type definition. + +```js +type Alias = Type; +``` + +Any type can appear inside a type alias. + +```js flow-check +type NumberAlias = number; +type ObjectAlias = { + property: string, + method(): number, +}; +type UnionAlias = 1 | 2 | 3; +type AliasAlias = ObjectAlias; +``` + +#### Type Alias Generics {#toc-type-alias-generics} + +Type aliases can also have their own [generics](../generics). + +```js flow-check +type MyObject = { + property: A, + method(val: B): C, +}; +``` + +Type alias generics are [parameterized](../generics#toc-parameterized-generics). +When you use a type alias you need to pass parameters for each of its generics. + +```js flow-check +type MyObject = { + foo: A, + bar: B, + baz: C, +}; + +var val: MyObject = { + foo: 1, + bar: true, + baz: 'three', +}; +``` diff --git a/_src/types/any.md b/_src/types/any.md new file mode 100644 index 00000000000..02cdd60dd44 --- /dev/null +++ b/_src/types/any.md @@ -0,0 +1,93 @@ +--- +title: Any +slug: /types/any +--- + +> **Warning:** Do not mistake `any` with [`mixed`](../mixed). It's also not the same as [`empty`](../empty). + +If you want a way to opt-out of using the type checker, `any` is the way to do +it. **Using `any` is completely unsafe, and should be avoided whenever +possible.** + +For example, the following code will not report any errors: + +```js flow-check +function add(one: any, two: any): number { + return one + two; +} + +add(1, 2); // Works. +add("1", "2"); // Works. +add({}, []); // Works. +``` + +Even code that will cause runtime errors will not be caught by Flow: + +```js flow-check +function getNestedProperty(obj: any) { + return obj.foo.bar.baz; +} + +getNestedProperty({}); +``` + +There are only a couple of scenarios where you might consider using `any`: + +1. When you are in the process of converting existing code to using Flow + types and you are currently blocked on having the code type checked (maybe + other code needs to be converted first). +2. When you are certain your code works and for some reason Flow is unable to + type check it correctly. There are a (decreasing) number of idioms in + JavaScript that Flow is unable to statically type. + +You can ban `any` by enabling the [`unclear-type`](../../linting/rule-reference/#toc-unclear-type) lint rule. + +You can use the [coverage](../../cli/coverage/) command to identify code typed as `any`. + +## Avoid leaking `any` {#toc-avoid-leaking-any} + +When you have a value with the type `any`, you can cause Flow to infer `any` +for the results of all of the operations you perform. + +For example, if you get a property on an object typed `any`, the resulting +value will also have the type `any`. + +```js flow-check +function fn(obj: any) { + let foo = obj.foo; // Results in `any` type +} +``` + +You could then use the resulting value in another operation, such as adding it +as if it were a number and the result will also be `any`. + +```js flow-check +function fn(obj: any) { + let foo = obj.foo; // Results in `any` type + let bar = foo * 2; // Results in `any` type +} +``` + +You could continue this process until `any` has leaked all over your code. + +```js flow-check +function fn(obj: any) { + let foo = obj.foo; + let bar = foo * 2; + return bar; // Results in `any` type +} + +let bar = fn({ foo: 2 }); // Results in `any` type +let baz = "baz:" + bar; // Results in `any` type +``` + +Prevent this from happening by cutting `any` off as soon as possible by casting +it to another type. + +```js flow-check +function fn(obj: any) { + let foo: number = obj.foo; +} +``` + +Now your code will not leak `any`. diff --git a/_src/types/arrays.md b/_src/types/arrays.md new file mode 100644 index 00000000000..45ecbe9dcc8 --- /dev/null +++ b/_src/types/arrays.md @@ -0,0 +1,265 @@ +--- +title: Arrays +slug: /types/arrays +--- + +Array types represent lists of **unknown length**, where all items have the **same type**. +This is in contrast to [tuple types](../tuples), which have a fixed length and where each element can have a different type. + +JavaScript array literal values can be used to create both tuple and array types: + +```js flow-check +const arr: Array = [1, 2, 3]; // As an array type +const tup: [number, number, number] = [1, 2, 3]; // As a tuple type +``` + +## `Array` Type {#toc-array-type} + +The type `Array` represents an array of items of type `T`. +For example, an array of numbers would be `Array`: + +```js flow-check +const arr: Array = [1, 2, 3]; +``` + +You can put any type within `Array`: + +```js flow-check +const arr1: Array = [true, false, true]; +const arr2: Array = ["A", "B", "C"]; +const arr3: Array = [1, true, "three"]; +``` + +## `$ReadOnlyArray` Type {#toc-readonlyarray} + +You can use the type `$ReadOnlyArray` instead of `Array` to represent a [read-only](../../lang/variance) array which cannot be mutated. +You can't write to a read-only array directly, and can't use methods which mutate the array like `.push()`, `.push()`, etc. + +```js flow-check +const readonlyArray: $ReadOnlyArray = [1, 2, 3] + +const first = readonlyArray[0]; // OK to read +readonlyArray[1] = 20; // Error! +readonlyArray.push(4); // Error! +``` + +Note that an array of type `$ReadOnlyArray` can still have mutable _elements_: + +```js flow-check +const readonlyArray: $ReadOnlyArray<{x: number}> = [{x: 1}]; +readonlyArray[0] = {x: 42}; // Error! +readonlyArray[0].x = 42; // Works +``` + +The main advantage to using `$ReadOnlyArray` instead of `Array` is that `$ReadOnlyArray`'s +type parameter is [*covariant*](../../lang/variance/#toc-covariance) +while `Array`'s type parameter is [*invariant*](../../lang/variance/#toc-invariance). +That means that `$ReadOnlyArray` is a subtype of `$ReadOnlyArray` while +`Array` is NOT a subtype of `Array`. So it's often useful to use +`$ReadOnlyArray` in type annotations for arrays of various types of elements. +Take, for instance, the following scenario: + +```js flow-check +const someOperation = (arr: Array) => { + // Here we could do `arr.push('a string')` +} + +const array: Array = [1]; +someOperation(array) // Error! +``` + +Since the parameter `arr` of the `someOperation` function is typed as a mutable +`Array`, pushing a string into it would be possible inside that scope, which +would then break the type contract of the outside `array` variable. By +annotating the parameter as `$ReadOnlyArray` instead in this case, Flow can be +sure this won't happen and no errors will occur: + +```js flow-check +const someOperation = (arr: $ReadOnlyArray) => { + // Nothing can be added to `arr` +} + +const array: Array = [1]; +someOperation(array); // Works +``` + +`$ReadOnlyArray` represents the supertype of all arrays and all [tuples](../tuples): + +```js flow-check +const tup: [number, string] = [1, 'hi']; +const arr: Array = [1, 2]; + +function f(xs: $ReadOnlyArray) { /* ... */ } + +f(tup); // Works +f(arr); // Works +``` + +## Empty Array Literals {#toc-empty-array-literals} + +Empty array literals (`[]`) are handled specially in Flow when it comes to their [annotation requirements](../../lang/annotation-requirement). +What makes them special is that they do not contain enough information to +determine their type, and at the same time they are too common to always +require type annotations in their immediate context. + +So, to type empty arrays Flow follows these rules: + +### Contextual Inference + +First, if [contextual information](../../lang/annotation-requirement/#toc-contextual-typing) exists, +we'll use it to determine the array element type: + +```js flow-check +function takesStringArray(x: Array): void {} + +const arr1: Array = []; +takesStringArray([]); +``` + +In both cases, the `[]` will be typed as an `Array`. + +Note that for the contextual information to work, the type needs to be available +right at the definition of the array. This means that the last two lines in the following +code will error: + +``` js flow-check +function takesStringArray(x: Array): void {} + +const arr2 = []; +takesStringArray(arr2); +``` + +The second error is due to `arr2` being inferred as `Array` which leads to another error at the call +to `takesStringArray`. + +### Initializer Inference + +Flow allows another way to determine the types of empty arrays when they are immediately assigned to a variable: + +```js +const arr3 = []; +``` + +The way it does this is reminiscent of the typing of +[variables without initializers](../../lang/variables/#toc-variables-declared-without-initializers): +Flow tries to choose the "first" *assignment* or *assignments* +to the variable to define its type. In the case of empty arrays, an assignment is either +* an indexed write statement `a[i] = e;`, or +* an array `push` call `a.push(e)`. + +In either case the type of `e` is used as the type of the array element. + +Here are some examples: + +#### Straight-line Code +Once the first assignemnt has been found, the type of the array element is pinned to that of the +assigned expression. Subsequent writes to array with elements of +a different type are errors: + +``` js flow-check +const arr3 = []; +arr3.push(42); // arr3 is inferred as Array +arr3.push("abc"); // Error! +``` + +#### Conditional Code + +If the array is assigned in sibling branches of conditional statements, the type +of the array element is pinned to the union of the assigned types: + +``` js flow-check +declare const cond: boolean; + +const arr4 = []; +if (cond) { + arr4[0] = 42; +} else { + arr4.push("abc"); +} +// arr4 is inferred as Array +arr4.push("def"); // Works +arr4[0] = true; // Error! +``` + +#### Nearer Scope Wins + +Shallow scope of assignment is prefered when there are multiple scopes where assignments happen: + +``` js flow-check +const arr5 = []; +function f() { + arr5.push(42); // Error! +} +f(); +arr5.push("abc"); // This assignment wins. arr5 is inferred as Array +arr5.push(1); // Error! +``` + +## Array access is unsafe {#toc-array-access-is-unsafe} + +When you retrieve an element from an array there is always a possibility that +it is `undefined`. You could have either accessed an index which is out of the +bounds of the array, or the element could not exist because it is a "sparse +array". + +For example, you could be accessing an element that is out of the bounds of the +array: + +```js flow-check +const array: Array = [0, 1, 2]; +const value: number = array[3]; // Works + // ^ undefined +``` + +Or you could be accessing an element that does not exist if it is a "sparse array": + +```js flow-check +const array: Array = []; + +array[0] = 0; +array[2] = 2; + +const value: number = array[1]; // Works + // ^ undefined +``` + +In order to make this safe, Flow would have to mark every single array access +as "*possibly undefined"*. + +Flow does not do this because it would be extremely inconvenient to use. You +would be forced to refine the type of every value you get when accessing an +array. + +```js flow-check +const array: Array = [0, 1, 2]; +const value: number | void = array[1]; + +if (value !== undefined) { + // number +} +``` + +## Discouraged Array Type Shorthand Syntax {#toc-array-type-shorthand-syntax} + +There is an alternative to the `Array` syntax: `T[]`. +This syntax is discouraged and may be deprecated in the future. + +```js flow-check +const arr: number[] = [0, 1, 2, 3]; +``` + +Just note that `?Type[]` is the equivalent of `?Array` and not `Array`. + +```js flow-check +const arr1: ?number[] = null; // Works +const arr2: ?number[] = [1, 2]; // Works +const arr3: ?number[] = [null]; // Error! +``` + +If you want to make it `Array` you can use parenthesis like: `(?Type)[]` + +```js flow-check +const arr1: (?number)[] = null; // Error! +const arr2: (?number)[] = [1, 2]; // Works +const arr3: (?number)[] = [null]; // Works +``` diff --git a/_src/types/casting.md b/_src/types/casting.md new file mode 100644 index 00000000000..e243c0769a4 --- /dev/null +++ b/_src/types/casting.md @@ -0,0 +1,148 @@ +--- +title: Type Casting Expressions +slug: /types/casting +--- + +Sometimes it is useful to assert a type without using something like a function +or a variable to do so. For this Flow supports an inline type cast expression +syntax which can be used in a number of different ways. + +## Type Cast Expression Syntax {#toc-type-cast-expression-syntax} + +In order to create a type cast expression around a `value`, add a colon `:` +with the `Type` and wrap the expression with parentheses `(` `)`. + +```js +(value: Type) +``` + +> **Note:** The parentheses are necessary to avoid ambiguity with other syntax. + +Type cast expressions can appear anywhere an expression can appear. + +```js +let val = (value: Type); +let obj = { prop: (value: Type) }; +let arr = ([(value: Type), (value: Type)]: Array); +``` + +The value itself can also be an expression: + +```js +(2 + 2: number); +``` + +When you strip the types all that is left is the value. + +```js +(value: Type); +``` + +```js +value; +``` + +## Type Assertions {#toc-type-assertions} + +Using type cast expressions you can assert that values are certain types. + +```js flow-check +let value = 42; + +(value: 42); // Works! +(value: number); // Works! +(value: string); // Error! +``` + +Asserting types in this way works the same as types do anywhere else. + +## Type Casting {#toc-type-casting} + +When you write a type cast expression, the result of that expression is the +value with the provided type. If you hold onto the resulting value, it will +have the new type. + +```js flow-check +let value = 42; + +(value: 42); // Works! +(value: number); // Works! + +let newValue = (value: number); + +(newValue: 42); // Error! +(newValue: number); // Works! +``` + +## Using type cast expressions {#toc-using-type-cast-expressions} + +> **Note:** We're going to go through a stripped down example for +> demonstrating how to make use of type cast expressions. This example is not +> solved well in practice. + +### Type Casting through any {#toc-type-casting-through-any} + +Because type casts work the same as all other type annotations, you can only +cast values to less specific types. You cannot change the type or make it +something more specific. + +But you can use [any](../any) to cast to whatever type you want. + +```js flow-check +let value = 42; + +(value: number); // Works! +(value: string); // Error! + +let newValue = ((value: any): string); + +(newValue: number); // Error! +(newValue: string); // Works! +``` + +By casting the value to any, you can then cast to whatever you want. + +This is unsafe and not recommended. But it's sometimes useful when you are +doing something with a value which is very difficult or impossible to type and +want to make sure that the result has the desired type. + +For example, the following function for cloning an object. + +```js flow-check +function cloneObject(obj: any) { + const clone: {[string]: mixed} = {}; + + Object.keys(obj).forEach(key => { + clone[key] = obj[key]; + }); + + return clone; +} +``` + +It would be hard to create a type for this because we're creating a new object +based on another object. + +If we cast through any, we can return a type which is more useful. + +```js flow-check +function cloneObject(obj: T): T { + const clone: {[string]: mixed} = {}; + + Object.keys(obj).forEach(key => { + clone[key] = obj[key]; + }); + + return ((clone: any): T); +} + +const clone = cloneObject({ + foo: 1, + bar: true, + baz: 'three' +}); + +(clone.foo: 1); // Works! +(clone.bar: true); // Works! +(clone.baz: 'three'); // Works! +``` diff --git a/_src/types/classes.md b/_src/types/classes.md new file mode 100644 index 00000000000..f94f0ef0cdc --- /dev/null +++ b/_src/types/classes.md @@ -0,0 +1,391 @@ +--- +title: Classes +slug: /types/classes +--- + +JavaScript [classes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes) +in Flow operate both as a value and a type. You can use the name of the class as the type of its instances: + +```js flow-check +class MyClass { + // ... +} + +const myInstance: MyClass = new MyClass(); // Works! +``` + +This is because classes in Flow are [nominally typed](../../lang/nominal-structural). + +This means two classes with identical shapes are not compatible: + +```js flow-check +class A { + x: number; +} +class B { + x: number; +} +const foo: B = new A(); // Error! +const bar: A = new B(); // Error! +``` + +You also cannot use an [object type](../objects) to describe an instance of a class: + +```js flow-check +class MyClass { + x: number; +} +const foo: {x: number, ...} = new MyClass(); // Error! +``` + +You can use [interfaces](../interfaces) to accomplish this instead: + +```js flow-check +class A { + x: number; +} +class B { + x: number; +} + +interface WithXNum { + x: number; +} + +const foo: WithXNum = new A(); // Works! +const bar: WithXNum = new B(); // Works! + +const n: number = foo.x; // Works! +``` + +## Class Syntax {#toc-class-syntax} + +Classes in Flow are just like normal JavaScript classes, but with added types. + +### Class Methods {#toc-class-methods} + +Just like in [functions](../functions), class methods can have annotations for both parameters +(input) and returns (output): + +```js flow-check +class MyClass { + method(value: string): number { + return 0; + } +} +``` + +Also just like regular functions, class methods may have `this` annotations as well. +However, if one is not provided, Flow will infer the class instance type (or the class type for static methods) +instead of `mixed`. When an explicit `this` parameter is provided, it must be a [supertype](../../lang/subtypes/) of +the class instance type (or class type for static methods). + +```js flow-check +class MyClass { + method(this: interface {x: string}) { /* ... */ } // Error! +} +``` + +Unlike class properties, however, class methods cannot be unbound or rebound from +the class on which you defined them. So all of the following are errors in Flow: + +```js flow-check +class MyClass { method() {} } +const a = new MyClass(); +a.method; // Error! +const {method} = a; // Error! +a.method.bind({}); // Error! +``` + +Methods are considered [read-only](../../lang/variance): + +```js flow-check +class MyClass { + method() {} +} + +const a = new MyClass(); +a.method = function() {}; // Error! +``` + +Flow supports [private methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields), +a feature of ES2022. Private methods start with a hash symbol `#`: + +```js flow-check +class MyClass { + #internalMethod() { + return 1; + } + publicApi() { + return this.#internalMethod(); + } +} + +const a = new MyClass(); +a.#internalMethod(); // Error! +a.publicApi(); // Works! +``` + +Flow requires return type annotations on methods in most cases. +This is because it is common to reference `this` inside of a method, and `this` is typed as the instance of the class - +but to know the type of the class we need to know the return type of its methods! + +```js flow-check +class MyClass { + foo() { // Error! + return this.bar(); + } + bar() { // Error! + return 1; + } +} +``` +```js flow-check +class MyClassFixed { + foo(): number { // Works! + return this.bar(); + } + bar(): number { // Works! + return 1; + } +} +``` + +### Class Fields (Properties) {#toc-class-fields-properties} + +Whenever you want to use a class field in Flow you must first give it an +annotation: + +```js flow-check +class MyClass { + method() { + this.prop = 42; // Error! + } +} +``` + +Fields are annotated within the body of the class with the field name followed +by a colon `:` and the type: + +```js flow-check +class MyClass { + prop: number; + method() { + this.prop = 42; + } +} +``` + +Fields added outside of the class definition need to be annotated within the body +of the class: + +```js flow-check +function func(x: number): number { + return x + 1; +} + +class MyClass { + static constant: number; + static helper: (number) => number; + prop: number => number; +} +MyClass.helper = func +MyClass.constant = 42 +MyClass.prototype.prop = func +``` + +Flow also supports using the [class properties syntax](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#field_declarations): + +```js flow-check +class MyClass { + prop = 42; +} +``` + +When using this syntax, you are not required to give it a type annotation. But +you still can if you need to: + +```js flow-check +class MyClass { + prop: number = 42; +} +``` + +You can mark a class field as read-only (or write-only) using [variance](../../lang/variance) annotations. +These can only be written to in the constructor: + +```js flow-check +class MyClass { + +prop: number; + + constructor() { + this.prop = 1; // Works! + } + + method() { + this.prop = 1; // Error! + } +} + +const a = new MyClass(); +const n: number = a.prop; // Works! +a.prop = 1; // Error! +``` + +Flow supports [private fields](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields), +a feature of ES2022. Private fields start with a hash symbol `#`: + +```js flow-check +class MyClass { + #internalValue: number; + + constructor() { + this.#internalValue = 1; + } + + publicApi() { + return this.#internalValue; + } +} + +const a = new MyClass(); +const x: number = a.#internalValue; // Error! +const y: number = a.publicApi(); // Works! +``` + +### Extending classes and implementing interfaces + +You can optionally `extend` one other class: + +```js flow-check +class Base { + x: number; +} + +class MyClass extends Base { + y: string; +} +``` + +And also implement multiple [interfaces](../interfaces): + +```js flow-check +interface WithXNum { + x: number; +} +interface Readable { + read(): string; +} + +class MyClass implements WithXNum, Readable { + x: number; + read(): string { + return String(this.x); + } +} +``` + +You don't need to `implement` an interface to be a subtype of it, but doing so enforces that your class meets the requirements: + +```js flow-check +interface WithXNum { + x: number; +} + +class MyClass implements WithXNum { // Error! +} +``` + +### Class Constructors {#toc-class-fields-constructors} + +You can initialize your class properties in class constructors: + +```js flow-check +class MyClass { + foo: number; + + constructor() { + this.foo = 1; + } +} +``` + +You must first call `super(...)` in a derived class before you can access `this` and `super`: + +```js flow-check +class Base { + bar: number; +} + +class MyClass extends Base { + foo: number; + + constructor() { + this.foo; // Error + this.bar; // Error + super.bar; // Error + super(); + this.foo; // OK + this.bar; // OK + super.bar; // OK + } +} +``` + +However, Flow will not enforce that all class properties are initialized in constructors: + +```js flow-check +class MyClass { + foo: number; + bar: number; + + constructor() { + this.foo = 1; + } + + useBar() { + (this.bar: number); // No errors. + } +} +``` + +### Class Generics {#toc-class-generics} + +Classes can also have their own [generics](../generics): + +```js flow-check +class MyClass { + property: A; + method(val: B): C { + throw new Error(); + } +} +``` + +Class generics are [parameterized](../generics#toc-parameterized-generics). +When you use a class as a type you need to pass parameters for each of its +generics: + +```js flow-check +class MyClass { + constructor(arg1: A, arg2: B, arg3: C) { + // ... + } +} + +const val: MyClass = new MyClass(1, true, 'three'); +``` + +## Classes in annotations {#toc-classes-in-annotations} + +When you use the name of your class in an annotation, it means an _instance_ of your class: + +```js +class MyClass {} + +const b: MyClass = new MyClass(); // Works! +const a: MyClass = MyClass; // Error! +``` + +See [here](../utilities#toc-class) for details on `Class`, which allows you +to refer to the type of the class in an annotation. diff --git a/_src/types/comments.md b/_src/types/comments.md new file mode 100644 index 00000000000..5b22efde67e --- /dev/null +++ b/_src/types/comments.md @@ -0,0 +1,115 @@ +--- +title: Comment Types +slug: /types/comments +--- + +Flow supports a comment-based syntax, which makes it possible to use Flow +without having to compile your files. + +```js flow-check +/*:: +type MyAlias = { + foo: number, + bar: boolean, + baz: string, +}; +*/ + +function method(value /*: MyAlias */) /*: boolean */ { + return value.bar; +} + +method({foo: 1, bar: true, baz: ["oops"]}); +``` + +These comments allow Flow to work in plain JavaScript files without any +additional work. + +## Comment types syntax {#toc-comment-types-syntax} + +There are two primary pieces of the syntax: type includes and type annotations. + +### Type include comments {#toc-comment-type-include} + +If you want to have Flow treat a comment as if it were normal syntax, you can +do so by adding a double colon `::` to the start of the comment: + +```js flow-check +/*:: +type MyAlias = { + foo: number, + bar: boolean, + baz: string, +}; +*/ + +class MyClass { + /*:: prop: string; */ +} +``` + +This includes the code into the syntax that Flow sees: + +```js flow-check +type MyAlias = { + foo: number, + bar: boolean, + baz: string, +}; + +class MyClass { + prop: string; +} +``` + +But JavaScript ignores these comments, so your code is valid JavaScript syntax: + +```js flow-check +class MyClass { + +} +``` + +This syntax is also available in a `flow-include` form: + +```js flow-check +/*flow-include +type MyAlias = { + foo: number, + bar: boolean, + baz: string, +}; +*/ + +class MyClass { + /*flow-include prop: string; */ +} +``` + +### Type annotation comments {#toc-comment-type-annotation} + +Instead of typing out a full include every time, you can also use the type +annotation shorthand with a single colon `:` at the start of the comment. + +```js flow-check +function method(param /*: string */) /*: number */ { + return 1; +} +``` + +This would be the same as including a type annotation inside an include comment. + +```js flow-check +function method(param /*:: : string */) /*:: : number */ { + return 1; +} +``` + +> **Note:** If you want to use optional function parameters you'll need to use +> the include comment form. + +--- + +> **Special thanks to**: [Jarno Rantanen](https://github.com/jareware) for +> building [flotate](https://github.com/jareware/flotate) and supporting us +> merging his syntax upstream into Flow. diff --git a/_src/types/conditional.md b/_src/types/conditional.md new file mode 100644 index 00000000000..7aacb6a7122 --- /dev/null +++ b/_src/types/conditional.md @@ -0,0 +1,147 @@ +--- +title: Conditional Types +slug: /types/conditional +--- + +Flow's conditional type allows you to conditionally choose between two different output types by inspecting an input type. It is useful to extract parts of a type, or to describe a complex overload. + +## Basic Usage {#toc-basic-usage} + +It has a syntax that is similar to conditional expressions: `CheckType extends ExtendsType ? TrueType : FalseType`. + +If `CheckType` is a subtype of `ExtendsType`, the conditional type will be evaluated to `TrueType`. Otherwise, it will be evaluated to `FalseType`. + +The following example illustrates both cases. + +```js flow-check +class Animal {} +class Dog extends Animal {} + +type TypeofAnimal = Dog extends Animal ? 'animal' : 'unknown'; // evaluates to 'animal' +type TypeofString = string extends Animal ? 'animal' : 'unknown'; // evaluates to 'unknown' +``` + +## Generic Conditional Types {#toc-generic-conditional-types} + +This might not look very useful, since you already know what type it will evaluate to. However, combining with generics, you can perform complex computations over types. For example, you can write down a type-level `typeof` operator: + +```js flow-check +type TypeOf = + T extends null ? 'null' : + T extends void ? 'undefined' : + T extends string ? 'string' : + T extends number ? 'number' : + T extends boolean ? 'boolean' : + T extends (...$ReadOnlyArray)=>mixed ? 'function' : 'object' + +type T1 = TypeOf; // evaluates to 'null' +type T2 = TypeOf; // evaluates to 'undefined' +type T3 = TypeOf; // evaluates to 'string' +type T4 = TypeOf; // evaluates to 'number' +type T5 = TypeOf; // evaluates to 'boolean' +type T6 = TypeOf<(string)=>boolean>; // evaluates to 'function' +type T7 = TypeOf<{foo: string}>; // evaluates to 'object' +``` + +## Function return types dependent on input types {#toc-dependent-function-return} + +Conditional types also allow you to intuitively describe the conditions for choosing different function overloads: + +```js flow-check +declare function wrap(value: T): T extends string ? { type: 'string', value: string } + : T extends number ? { type: 'number', value: number } + : { type: 'unsupported' } + +const v1 = wrap(3); // has type { type: 'number', value: number } +const v2 = wrap('4'); // has type { type: 'string', value: string } +const v3 = wrap({}); // has type { type: 'unsupported' } +``` + +The above example can also be written with function overload: + +```js flow-check +declare function wrap(value: string): { type: 'string', value: string } +declare function wrap(value: number): { type: 'number', value: number } +declare function wrap(value: mixed): { type: 'unsupported' } + +const v1 = wrap(3); // has type { type: 'number', value: number } +const v2 = wrap('4'); // has type { type: 'string', value: string } +const v3 = wrap({}); // has type { type: 'unsupported' } +``` + +## Inferring Within Conditional Types {#toc-infer-type} + +You can use the power of conditional types to extract parts of a type using `infer` types. For example, the builtin `ReturnType` is powered by conditional types: + +```js flow-check +type ReturnType = T extends (...args: $ReadOnlyArray) => infer Return ? Return : empty; + +type N = ReturnType<(string) => number>; // evaluates to `number` +type S = ReturnType<(number) => string>; // evaluates to `string` +``` + +We used the infer type here to introduce a new generic type variable named `Return`, which can be used in the type branch of the conditional type. Infer types can only appear on the right hand side of the `extends` clause in conditional types. Flow will perform a subtyping check between the check type and the extends type to automatically figure out its type based on the input type `T`. + +In the example of `type N = ReturnType<(string) => number>`, Flow checks if `(string) => number` is a subtype of `(...args: $ReadOnlyArray) => infer Return`, and during this process `Return` is constrained to `number`. + +When doing extractions like the above example, you usually want the conditional type to always choose the true branch where the type is successfully extracted. For example, silently choosing the false branch is not great: + +```js flow-check +type ExtractReturnTypeNoValidation = + T extends (...args: $ReadOnlyArray) => infer Return ? Return : any; + +(1: ExtractReturnTypeNoValidation); // no error :( +``` + +Instead, you might want Flow to error when the input is not a function type. This can be accomplished by adding constraints to the type parameter: + +```js flow-check +type ReturnType) => mixed> = + T extends (...args: $ReadOnlyArray) => infer Return ? Return : any; + +(1: ReturnType<(string) => number>); +(1: ReturnType); +``` + +## Distributive Conditional Types {#toc-distributive-conditional-type} + +When a generic conditional type is given a union type as a type argument, the conditional _distributes_ over the union's members. For example, the `TypeOf` example above can distribute over a union: + +```js flow-check +type TypeOf = + T extends null ? 'null' : + T extends void ? 'undefined' : + T extends string ? 'string' : 'other'; + +type StringOrNull = TypeOf; // evaluates to 'string' | 'null' +``` + +This works by first breaking up the union type, and then passing each type to the conditional type to be evaluated separately. In the example above, this looks something like: + +``` +TypeOf +--> (break up the union) --> TypeOf | TypeOf +--> (evaluate each conditional type separately) --> 'string' | 'null' +``` + +If you want to avoid this behavior, you can wrap the check type and extends type with unary tuple type: + +```js flow-check +type NonDistributiveTypeOf = + [T] extends [null] ? 'null' : + [T] extends [void] ? 'undefined' : + [T] extends [string] ? 'string' : 'other'; + +type Other = NonDistributiveTypeOf; // evaluates to 'other' +``` + +This trick works because Flow will only enable the distributive behavior of conditional type if the check type is a generic type. The example above does not choose any true branch of the conditional type, because `[string | null]` is not a subtype of `[null]`, `[void]`, or `[string]`, since tuples are [invariantly](../../lang/variance/#toc-invariance) typed. + +## Adoption {#toc-adoption} + +To use conditional types, you need to upgrade your infrastructure so that it supports the syntax: + +- `flow` and `flow-parser`: 0.208.0. Between v0.208 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the `[options]` heading, add `conditional_type=true`. +- `prettier`: 3 +- `babel` with `babel-plugin-syntax-hermes-parser`. See [our Babel guide](../../tools/babel/) for setup instructions. +- `eslint` with `hermes-eslint`. See [our ESLint guide](../../tools/eslint/) for setup instructions. diff --git a/_src/types/empty.md b/_src/types/empty.md new file mode 100644 index 00000000000..b4609361f68 --- /dev/null +++ b/_src/types/empty.md @@ -0,0 +1,58 @@ +--- +title: Empty +slug: /types/empty +--- + +The `empty` type has no values. It is the [subtype of all other types](../../lang/type-hierarchy) (i.e. the [bottom type](https://en.wikipedia.org/wiki/Bottom_type)). +In this way it is the opposite of [`mixed`](../mixed), which is the supertype of all types. + +It is not common to annotate your code using `empty`. However, there are a couple of situations that it might be useful: + +If you have a function that always throws, you can annotate the return as `empty`, as the function never returns: + +```js flow-check +function throwIt(msg: string): empty { + throw new Error(msg); +} +``` + +You can use a cast to `empty` to assert that you have refined away all members of a union: + +```js flow-check +function f(x: 'a' | 'b'): number { + switch (x) { + case 'a': + return 1; + case 'b': + return 2; + default: + return (x: empty); + } +} +``` + +If you had not checked for all members of the union (for example, changed `x` to be of type `'a' | 'b' | 'c'`), +then `x` would no longer be `empty` in the `default`, and Flow would error. + +> Note: If you want exhaustively checked enums by defualt, without having to cast to `empty`, +> you could enable and use [Flow Enums](../../enums) in your project. + +Since `empty` is the subtype of all types, all operations are permitted on something that has the `empty` type. +However since no values can be `empty`, this is "safe", unlike with [`any`](../any). + +```js flow-check +const str = "hello"; + +if (typeof str === "string") { + (str: string); // Yes it's a string +} else { + // Works! Since we will never enter this branch + (str: empty); + const n: number = str + 1; +} +``` + +We put "safe" in quotes above, as due type safety holes in your code or bugs within Flow itself, +it is possible to get values which are `empty` typed. + +You can use the [coverage](../../cli/coverage/) command to identify code typed as `empty`. diff --git a/_src/types/functions.md b/_src/types/functions.md new file mode 100644 index 00000000000..e54db72b4ba --- /dev/null +++ b/_src/types/functions.md @@ -0,0 +1,393 @@ +--- +title: Functions +slug: /types/functions +--- + +Functions have two places where types are applied: parameters (input) and the return value (output). + +```js flow-check +function concat(a: string, b: string): string { + return a + b; +} + +concat("foo", "bar"); // Works! +concat(true, false); // Error! +``` + +Using inference, return types are often optional: + +```js flow-check +function concat(a: string, b: string) { + return a + b; +} + +const s: string = concat("foo", "bar"); // Works! +``` + +If defined where we can get the type from the context of the expression, type annotations can be optional: + +```js flow-check +[1, 2, 3].map(x => x * x); // From the context, we know parameter `x` has type `number` +``` + +## Syntax of functions + +There are three forms of functions that each have their own slightly different syntax. + +### Function Declarations + +```js flow-check +function func(str: string, bool?: boolean, ...nums: Array): void { + // ... +} +``` + +### Arrow Functions + +```js flow-check +let func = (str: string, bool?: boolean, ...nums: Array): void => { + // ... +}; +``` + +### Function Types + +```js flow-check +type T = (str: string, bool?: boolean, ...nums: Array) => void; +``` + +You may also optionally leave out the parameter names. + +```js flow-check +type T = (string, boolean | void, Array) => void; +``` + +You might use these functions types for something like a callback. + +```js flow-check +function func(callback: (error: Error | null, value: string | null) => void) { + // ... +} +``` + +### Type arguments + +Functions can have type arguments: + +```js flow-check +function f(x: T): Array { + return [x]; +} + +const g = (x: T): Array => [x]; + +type H = (T) => Array; +``` + +## Function Parameters + +Function parameters can have types by adding a colon `:` followed by the type +after the name of the parameter. + +```js flow-check +function func(param1: string, param2: boolean) { + // ... +} +``` + +### Optional Parameters + +You can also have optional parameters by adding a question mark `?` after the +name of the parameter and before the colon `:`. + +```js flow-check +function func(optionalValue?: string) { + // ... +} +``` + +Optional parameters will accept missing, `undefined`, or matching types. But +they will not accept `null`. + +```js flow-check +function func(optionalValue?: string) { + // ... +} + +func(); // Works. +func(undefined); // Works. +func("string"); // Works. + +func(null); // Error! +``` + +### Rest Parameters + +JavaScript also supports having rest parameters or parameters that collect an +array of arguments at the end of a list of parameters. These have an ellipsis +`...` before them. + +You can also add type annotations for rest parameters using the same syntax but +with an `Array`. + +```js flow-check +function func(...args: Array) { + // ... +} +``` + +You can pass as many arguments as you want into a rest parameter. + +```js flow-check +function func(...args: Array) { + // ... +} + +func(); // Works. +func(1); // Works. +func(1, 2); // Works. +func(1, 2, 3); // Works. +``` + +> Note: If you add a type annotation to a rest parameter, it must always +> explicitly be an `Array` of `$ReadOnlyArray` type. + +### `this` parameter + +Every function in JavaScript can be called with a special context named `this`. +You can call a function with any context that you want. Flow allows you to annotate +the type for this context by adding a special parameter at the start of the function's parameter list: + +```js flow-check +function func(this: { x: T }) : T { + return this.x; +} + +const num: number = func.call({x : 42}); +const str: string = func.call({x : 42}); // Error! +``` + +This parameter has no effect at runtime, and is erased along with types when Flow is transformed into JavaScript. +When present, `this` parameters must always appear at the very beginning of the function's parameter list, and must +have an annotation. Additionally, [arrow functions](./#toc-arrow-functions) may not have a `this` parameter annotation, as +these functions bind their `this` parameter at the definition site, rather than the call site. + +If an explicit `this` parameter is not provided, Flow will attempt to infer one based on usage. If `this` is not mentioned +in the body of the function, Flow will infer `mixed` for its `this` parameter. + + +## Function Returns + +Function returns can also add a type using a colon `:` followed by the type +after the list of parameters. + +```js flow-check +function func(): number { + return 1; +} +``` + +Return types ensure that every branch of your function returns the same type. +This prevents you from accidentally not returning a value under certain +conditions. + +```js flow-check +function func(): boolean { + if (Math.random() > 0.5) { + return true; + } +} +``` + +Async functions implicitly return a promise, so the return type must always be a `Promise`. + +```js flow-check +async function func(): Promise { + return 123; +} +``` + +### Predicate Functions + +Sometimes you will want to move the condition from an `if` statement into a function: + +```js flow-check +function concat(a: ?string, b: ?string): string { + if (a != null && b != null) { + return a + b; + } + return ''; +} +``` + +However, Flow will error in the code below: + +```js flow-check +function truthy(a: ?string, b: ?string): boolean { + return a != null && b != null; +} + +function concat(a: ?string, b: ?string): string { + if (truthy(a, b)) { + return a + b; // Error! + } + return ''; +} +``` + +This is because the refinement information of `a` and `b` as `string` instead of `?string` is lost when returning from the `truthy` function. + +You can fix this by making `truthy` a *predicate function*, by using the `%checks` annotation like so: + +```js flow-check +function truthy(a: ?string, b: ?string): boolean %checks { + return a != null && b != null; +} + +function concat(a: ?string, b: ?string): string { + if (truthy(a, b)) { + return a + b; + } + return ''; +} +``` + +#### Limitations of predicate functions + +The body of these predicate functions need to be expressions (i.e. local variable declarations are not supported). +But it's possible to call other predicate functions inside a predicate function. +For example: + +```js flow-check +function isString(y: mixed): %checks { + return typeof y === "string"; +} + +function isNumber(y: mixed): %checks { + return typeof y === "number"; +} + +function isNumberOrString(y: mixed): %checks { + return isString(y) || isNumber(y); +} + +function foo(x: string | number | Array): string | number { + if (isNumberOrString(x)) { + return x + x; + } else { + return x.length; // no error, because Flow infers that x can only be an array + } +} + +foo('a'); +foo(5); +foo([]); +``` + +Another limitation is on the range of predicates that can be encoded. The refinements +that are supported in a predicate function must refer directly to the value that +is passed in as an argument to the respective call. + +For example, consider the *inlined* refinement + +```js flow-check +declare var obj: { n?: number }; + +if (obj.n != null) { + const n: number = obj.n; +} +``` +Here, Flow will let you refine `obj.n` from `?number` to `number`. Note that the +refinement here is on the property `n` of `obj`, rather than `obj` itself. + +If you tried to create a *predicate* function to encode the same condition, +then the following refinement would fail + +```js flow-check +function bar(a: {n?: number, ...}): %checks { + return a.n != null; +} + +declare var obj: {n?: number}; + +if (bar(obj)) { + const n: number = obj.n; // Error +} +``` +This is because the only refinements supported through `bar` would be on `obj` itself. + + +## Callable Objects + +Callable objects can be typed, for example: + +```js flow-check +type CallableObj = { + (number, number): number, + bar: string, + ... +}; + +function add(x: number, y: number) { + return x + y; +} + +add.bar = "hello world"; + +(add: CallableObj); +``` + +In general, functions can have properties assigned to them if they are function declarations, or +simple variable declarations of the form `const f = () => ...`. The properties must be assigned in +the format `f.prop = ;`, in the same statement list as the function definition (i.e. not conditionally). + +Note that the object representing the static properties assigned to the function is inexact. + +## Overloaded functions +You can use intersection types to define [overloaded function types](../intersections/#toc-intersection-of-function-types): + +```js flow-check +declare const fn: + & ((x: 'string') => string) + & ((x: 'number') => number) + +const s: string = fn('string'); +const n: number = fn('number'); +``` + +## Any function + +If you want to specify you want to allow any function, and do not care what it is, you can use this pattern: + +```js flow-check +function useCallback) => mixed>( + callback: T, + inputs: ?$ReadOnlyArray, +): T { + return callback; +} +useCallback((x: string) => true); // OK +useCallback((x: number) => [1]); // OK +``` + +You could use type arguments to capture the arguments and return type, to do more complicated transformations: + +```js flow-check +function func, TReturn>( + callback: (...TArgs) => TReturn, +): (boolean, ...TArgs) => Array { + return (b, ...args): Array => { + if (b) { + return [callback(...args)]; + } else { + return []; + } + }; +} + +const f: (boolean, string, number) => Array = + func((x: string, y: number) => x.slice(y)); // OK +``` + +The type `Function` is just an alias for [`any`](../any), and is unsafe. +You can ban its use in your code with the [unclear-type lint](../../linting/rule-reference/#toc-unclear-type). diff --git a/_src/types/generators.md b/_src/types/generators.md new file mode 100644 index 00000000000..b3f042c834f --- /dev/null +++ b/_src/types/generators.md @@ -0,0 +1,5 @@ +--- +layout: guide +--- + + diff --git a/_src/types/generics.md b/_src/types/generics.md new file mode 100644 index 00000000000..8716ab1aed4 --- /dev/null +++ b/_src/types/generics.md @@ -0,0 +1,437 @@ +--- +title: Generics +slug: /types/generics +--- + +Generics (sometimes referred to as polymorphic types) are a way of abstracting +a type away. + +Imagine writing the following `identity` function which returns whatever value +was passed. + +```js +function identity(value) { + return value; +} +``` + +We would have a lot of trouble trying to write specific types for this function +since it could be anything. + +```js flow-check +function identity(value: string): string { + return value; +} +``` + +Instead we can create a generic (or polymorphic type) in our function and use +it in place of other types. + +```js flow-check +function identity(value: T): T { + return value; +} +``` + +Generics can be used within functions, function types, classes, type aliases, +and interfaces. + +> **Warning:** Flow does not infer generic types. If you want something to have a +generic type, **annotate it**. Otherwise, Flow may infer a type that is less +polymorphic than you expect. + +### Syntax of generics {#toc-syntax-of-generics} + +There are a number of different places where generic types appear in syntax. + +### Functions with generics {#toc-functions-with-generics} + +Functions can create generics by adding the type parameter list `` before +the function parameter list. + +You can use generics in the same places you'd add any other type in a function +(parameter or return types). + +```js flow-check +function method(param: T): T { + return param; +} + +const f = function(param: T): T { + return param; +} +``` + +### Function types with generics {#toc-function-types-with-generics} + +Function types can create generics in the same way as normal functions, by +adding the type parameter list `` before the function type parameter list. + +You can use generics in the same places you'd add any other type in a function +type (parameter or return types). + +```js +(param: T) => T +``` + +Which then gets used as its own type. + +```js flow-check +function method(func: (param: T) => T) { + // ... +} +``` + +### Classes with generics {#toc-classes-with-generics} + +Classes can create generics by placing the type parameter list before the body +of the class. + +```js flow-check +class Item { + // ... +} +``` + +You can use generics in the same places you'd add any other type in a class +(property types and method parameter/return types). + +```js flow-check +class Item { + prop: T; + + constructor(param: T) { + this.prop = param; + } + + method(): T { + return this.prop; + } +} +``` + +### Type aliases with generics {#toc-type-aliases-with-generics} + +```js flow-check +type Item = { + foo: T, + bar: T, +}; +``` + +### Interfaces with generics {#toc-interfaces-with-generics} + +```js flow-check +interface Item { + foo: T, + bar: T, +} +``` + +### Supplying Type Arguments to Callables {#toc-supplying-type-arguments-to-callables} + +You can give callable entities type arguments for their generics directly in the call: + +```js flow-check +function doSomething(param: T): T { + // ... + return param; +} + +doSomething(3); +``` + +You can also give generic classes type arguments directly in the `new` expression: +```js flow-check +class GenericClass {} +const c = new GenericClass(); +``` + +If you only want to specify some of the type arguments, you can use `_` to let flow infer a type for you: + +```js flow-check +class GenericClass{} +const c = new GenericClass(); +``` + +> **Warning:** For performance purposes, we always recommend you annotate with +concrete arguments when you can. `_` is not unsafe, but it is slower than explicitly +specifying the type arguments. + +## Behavior of generics {#toc-behavior-of-generics} + +### Generics act like variables {#toc-generics-act-like-variables} + +Generic types work a lot like variables or function parameters except that they +are used for types. You can use them whenever they are in scope. + +```js flow-check +function constant(value: T): () => T { + return function(): T { + return value; + }; +} +``` + +### Create as many generics as you need {#toc-create-as-many-generics-as-you-need} + +You can have as many of these generics as you need in the type parameter list, +naming them whatever you want: + +```js flow-check +function identity(one: One, two: Two, three: Three) { + // ... +} +``` + +### Generics track values around {#toc-generics-track-values-around} + +When using a generic type for a value, Flow will track the value and make sure +that you aren't replacing it with something else. + +```js flow-check +function identity(value: T): T { + return "foo"; // Error! +} + +function identity(value: T): T { + value = "foo"; // Error! + return value; // Error! +} +``` + +Flow tracks the specific type of the value you pass through a generic, letting +you use it later. + +```js flow-check +function identity(value: T): T { + return value; +} + +let one: 1 = identity(1); +let two: 2 = identity(2); +let three: 3 = identity(42); // Error +``` + +### Adding types to generics {#toc-adding-types-to-generics} + +Similar to `mixed`, generics have an "unknown" type. You're not allowed to use +a generic as if it were a specific type. + +```js flow-check +function logFoo(obj: T): T { + console.log(obj.foo); // Error! + return obj; +} +``` + +You could refine the type, but the generic will still allow any type to be +passed in. + +```js flow-check +function logFoo(obj: T): T { + if (obj && obj.foo) { + console.log(obj.foo); // Works. + } + return obj; +} + +logFoo({ foo: 'foo', bar: 'bar' }); // Works. +logFoo({ bar: 'bar' }); // Works. :( +``` + +Instead, you could add a type to your generic like you would with a function +parameter. + +```js flow-check +function logFoo(obj: T): T { + console.log(obj.foo); // Works! + return obj; +} + +logFoo({ foo: 'foo', bar: 'bar' }); // Works! +logFoo({ bar: 'bar' }); // Error! +``` + +This way you can keep the behavior of generics while only allowing certain +types to be used. + +```js flow-check +function identity(value: T): T { + return value; +} + +let one: 1 = identity(1); +let two: 2 = identity(2); +// $ExpectError +let three: "three" = identity("three"); +``` + +### Generic types act as bounds {#toc-generic-types-act-as-bounds} + +```js flow-check +function identity(val: T): T { + return val; +} + +let foo: 'foo' = 'foo'; // Works! +let bar: 'bar' = identity('bar'); // Works! +``` + +In Flow, most of the time when you pass one type into another you lose the +original type. So that when you pass a specific type into a less specific one +Flow "forgets" it was once something more specific. + +```js flow-check +function identity(val: string): string { + return val; +} + +let foo: 'foo' = 'foo'; // Works! +// $ExpectError +let bar: 'bar' = identity('bar'); // Error! +``` + +Generics allow you to hold onto the more specific type while adding a +constraint. In this way types on generics act as "bounds". + +```js flow-check +function identity(val: T): T { + return val; +} + +let foo: 'foo' = 'foo'; // Works! +let bar: 'bar' = identity('bar'); // Works! +``` + +Note that when you have a value with a bound generic type, you can't use it as +if it were a more specific type. + +```js flow-check +function identity(val: T): T { + let str: string = val; // Works! + let bar: 'bar' = val; // Error! + return val; +} + +identity('bar'); +``` + +### Parameterized generics {#toc-parameterized-generics} + +Generics sometimes allow you to pass types in like arguments to a function. +These are known as parameterized generics (or parametric polymorphism). + +For example, a type alias with a generic is parameterized. When you go to use +it you will have to provide a type argument. + +```js flow-check +type Item = { + prop: T, +} + +let item: Item = { + prop: "value" +}; +``` + +You can think of this like passing arguments to a function, only the return +value is a type that you can use. + +Classes (when being used as a type), type aliases, and interfaces all require +that you pass type arguments. Functions and function types do not have +parameterized generics. + +***Classes*** + +```js flow-check +class Item { + prop: T; + constructor(param: T) { + this.prop = param; + } +} + +let item1: Item = new Item(42); // Works! +let item2: Item = new Item(42); // Error! +``` + +***Type Aliases*** + +```js flow-check +type Item = { + prop: T, +}; + +let item1: Item = { prop: 42 }; // Works! +let item2: Item = { prop: 42 }; // Error! +``` + +***Interfaces*** + +```js flow-check +interface HasProp { + prop: T, +} + +class Item { + prop: string; +} + +(Item.prototype: HasProp); // Works! +(Item.prototype: HasProp); // Error! +``` + +### Adding defaults to parameterized generics {#toc-adding-defaults-to-parameterized-generics} + +You can also provide defaults for parameterized generics just like parameters +of a function. + +```js flow-check +type Item = { + prop: T, +}; + +let foo: Item<> = { prop: 1 }; +let bar: Item<2> = { prop: 2 }; +``` + +You must always include the brackets `<>` when using the type (just like +parentheses for a function call). + +### Variance Sigils {#toc-variance-sigils} + +You can also specify the subtyping behavior of a generic via variance sigils. +By default, generics behave invariantly, but you may add a `+` to their +declaration to make them behave covariantly, or a `-` to their declaration to +make them behave contravariantly. See [our docs on variance](../../lang/variance) +for a more information on variance in Flow. + +Variance sigils allow you to be more specific about how you intend to +use your generics, giving Flow the power to do more precise type checking. +For example, you may want this relationship to hold: + +```js flow-check +type GenericBox<+T> = T; + +var x: GenericBox = 3; +(x: GenericBox); +``` + +The example above could not be accomplished without the `+` variance sigil: + +```js flow-check +type GenericBoxError = T; + +var x: GenericBoxError = 3; +(x: GenericBoxError); // number | string is not compatible with number. +``` + +Note that if you annotate your generic with variance sigils then Flow will +check to make sure those types only appear in positions that make sense for +that variance sigil. For example, you cannot declare a generic type parameter +to behave covariantly and use it in a contravariant position: + +```js flow-check +type NotActuallyCovariant<+T> = (T) => void; +``` diff --git a/_src/types/index.md b/_src/types/index.md new file mode 100644 index 00000000000..da8e2a8ad61 --- /dev/null +++ b/_src/types/index.md @@ -0,0 +1,42 @@ +--- +title: Type Annotations +slug: /types +description: "Learn how to add Flow type annotations to your code: Primitives, Objects, Functions, Classes, and more." +--- + +Adding type annotations is an important part of your interaction with Flow. + +Flow has a powerful ability to infer the types of your programs. The majority +For example, you don't have to produce annotations for common patterns like `Array.map`: + +```js flow-check +["foo", "bar"].map(s => ( // s is inferred to have type string + s.length +)); +``` + +Still, there are places where you'll want to add types. + +Imagine the following `concat` function for concatenating two strings together. + +```js flow-check +function concat(a, b) { + return a + b; +} +``` + +You need to add annotations on parameters of `concat`, so that Flow can type +check its body. Now you'll get a warning from Flow if you are calling this +function with unexpected types. + +```js flow-check +function concat(a: string, b: string) { + return a + b; +} + +concat("A", "B"); // Works! +concat(1, 2); // Error! +``` + +This guide will teach you the syntax and semantics of all the different types +you can have in Flow. diff --git a/_src/types/indexed-access.md b/_src/types/indexed-access.md new file mode 100644 index 00000000000..65602ee2deb --- /dev/null +++ b/_src/types/indexed-access.md @@ -0,0 +1,146 @@ +--- +title: Indexed Access Types +slug: /types/indexed-access +--- + +Flow’s Indexed Access Types allow you to get the type of a property from an [object](../objects), [array](../arrays), or [tuple](../tuples) type. + +## Usage {#toc-indexed-access-type-usage} + +Access an object type's property: +```js flow-check +type Cat = { + name: string, + age: number, + hungry: boolean, +}; + +type Hungry = Cat['hungry']; // type Hungry = boolean +const isHungry: Hungry = true; // OK - `Hungry` is an alias for `boolean` + +// The index can be a type, not just a literal: +type AgeProp = 'age'; +type Age = Cat[AgeProp]; // type Age = number +const catAge: Age = 6; // OK - `Age` is an alias for `number` +``` + +Access an array type's element, by getting the type at the array's indices (which are `number`s): +```js flow-check +type CatNames = Array; + +type CatName = CatNames[number]; // type CatName = string +const myCatsName: CatName = 'whiskers'; // OK - `CatName` is an alias for `string` +``` + +Access a tuple type's elements: +```js flow-check +type Pair = [string, number]; + +const name: Pair[0] = 'whiskers'; // OK - `Pair[0]` is an alias for `string` +const age: Pair[1] = 6; // OK - `Pair[1]` is an alias for `number` +const wrong: Pair[2] = true; // Error - `Pair` only has two elements +``` + +The index can be a union, including the result of calling [`$Keys<...>`](../utilities/#toc-keys): +```js flow-check +type Cat = { + name: string, + age: number, + hungry: boolean, +}; + +type Values = Cat[$Keys]; // type Values = string | number | boolean +``` + +The index can also be a generic: +```js flow-check +function getProp>(o: O, k: K): O[K] { + return o[k]; +} + +const x: number = getProp({a: 42}, 'a'); // OK +const y: string = getProp({a: 42}, 'a'); // Error - `number` is not a `string` +getProp({a: 42}, 'b'); // Error - `b` does not exist in object type +``` + +You can nest these accesses: +```js flow-check +type Cat = { + name: string, + age: number, + hungry: boolean, + personality: { + friendly: boolean, + hungerLevel: number, + } +}; + +type Friendly = Cat['personality']['friendly']; // type Friendly = boolean +const isFriendly: Friendly = true; // Pet the cat +``` + + +## Optional Indexed Access Types {#toc-optional-indexed-access-types} + +Optional Indexed Access Types work like optional chaining. They allow you to access properties from nullable object types. +If before you did: + +```js +type T = $ElementType<$NonMaybeType, 'prop'> | void; +``` + +You can now do: + +```js +type T = Obj?.['prop']; +``` + +Like optional chaining, the resulting types of Optional Indexed Access Types include `void`. +If you have a long chain of nested optional accesses, you can wrap the entire thing with a `$NonMaybeType<...>` if you don’t want `void` in your resulting type. + +Example: + +```js flow-check +type TasksContent = ?{ + tasks?: Array<{ + items?: { + metadata?: { + title: string, + completed: boolean, + }, + }, + }>, +}; + +type TaskData = TasksContent?.['tasks']?.[number]?.['items']?.['metadata']; +``` + +There is one small difference between optional chaining and Optional Indexed Access Types. +If the object type you access is not nullable, the resulting type in optional chaining will not include `void`. +With Optional Indexed Access Types, for implementation reasons, the resulting type will always include `void`. +However, if your object type is not nullable then you don’t need to use an Optional Indexed Access Type, but should just use a regular Indexed Access Type. + + +## Adoption {#toc-adoption} + +To use Indexed Access Types, you need to upgrade your infrastructure so that it supports the syntax: + +- `flow` and `flow-parser`: 0.155 +- `prettier`: 2.3.2 +- `babel`: 7.14 + +Indexed Access Types are a replacement for the [`$PropertyType`](../utilities#toc-propertytype) and [`$ElementType`](../utilities#toc-elementtype) utility types. +If you're familiar with those utility types already, here is a quick conversion guide: +- `$PropertyType` → `Obj['prop']` +- `$ElementType` → `Obj[T]` +- `$ElementType<$PropertyType, T>` → `Obj['prop'][T]` + +We have created an ESLint rule that warns on `$ElementType` and `$PropertyType` usage and recommends Indexed Access Types instead. +It includes an auto-fixer that can handle most cases. You can simply enable this rule on your codebase and autofix all existing issues. + +Install [`eslint-plugin-fb-flow`](https://www.npmjs.com/package/eslint-plugin-fb-flow), and add `fb-flow` to your ESLint plugin list. +Then enable the rule in your ESLint config: + +``` +'fb-flow/use-indexed-access-type': 1, +``` diff --git a/_src/types/interfaces.md b/_src/types/interfaces.md new file mode 100644 index 00000000000..45f7dba1305 --- /dev/null +++ b/_src/types/interfaces.md @@ -0,0 +1,316 @@ +--- +title: Interfaces +slug: /types/interfaces +--- + +[Classes](../classes) in Flow are [nominally typed](../../lang/nominal-structural). This means that when you have two separate +classes you cannot use one in place of the other even when they have the same +exact properties and methods: + +```js flow-check +class Foo { + serialize(): string { return '[Foo]'; } +} + +class Bar { + serialize(): string { return '[Bar]'; } +} + +const foo: Foo = new Bar(); // Error! +``` + +Instead, you can use `interface` in order to declare the structure of the class +that you are expecting. + +```js flow-check +interface Serializable { + serialize(): string; +} + +class Foo { + serialize(): string { return '[Foo]'; } +} + +class Bar { + serialize(): string { return '[Bar]'; } +} + +const foo: Serializable = new Foo(); // Works! +const bar: Serializable = new Bar(); // Works! +``` + +You can also declare an anonymous interface: + +```js flow-check +class Foo { + a: number; +} + +function getNumber(o: interface {a: number}): number { + return o.a; +} + +getNumber(new Foo()); // Works! +``` + +You can also use `implements` to tell Flow that you want the class to match an +interface. This prevents you from making incompatible changes when editing the +class. + +```js flow-check +interface Serializable { + serialize(): string; +} + +class Foo implements Serializable { + serialize(): string { return '[Foo]'; } // Works! +} + +class Bar implements Serializable { + serialize(): number { return 42; } // Error! +} +``` + +You can also use `implements` with multiple interfaces. + +```js +class Foo implements Bar, Baz { + // ... +} +``` + +Interfaces can describe both instances and objects, unlike object types which can only describe objects: + +```js flow-check +class Foo { + a: number; +} +const foo = new Foo(); +const o: {a: number} = {a: 1}; + +interface MyInterface { + a: number; +} + +function acceptsMyInterface(x: MyInterface) { /* ... */ } +acceptsMyInterface(o); // Works! +acceptsMyInterface(foo); // Works! + +function acceptsObj(x: {a: number, ...}) { /* ... */ } +acceptsObj(o); // Works! +acceptsObj(foo); // Error! +``` + +Unlike objects, interfaces cannot be [exact](../objects/#exact-and-inexact-object-types), as they can always have other, unknown properties. + +## Interface Syntax {#toc-interface-syntax} + +Interfaces are created using the keyword `interface` followed by its name and +a block which contains the body of the type definition. + +```js flow-check +interface MyInterface { + // ... +} +``` + +The syntax of the block matches the syntax of object types. + +### Interface Methods {#toc-interface-methods} + +You can add methods to interfaces following the same syntax as class methods. Any [`this` parameters](../functions/#this-parameter) you +provide are also subject to the same restrictions as class methods. + +```js flow-check +interface MyInterface { + method(value: string): number; +} +``` + +Also like [class methods](../classes#toc-class-methods), interface methods must also remain bound to the interface on which they were defined. + +You can define [overloaded methods](../intersections/#declaring-overloaded-functions) by declaring the same method name multiple times with different type signatures: + +```js flow-check +interface MyInterface { + method(value: string): string; + method(value: boolean): boolean; +} + +function func(a: MyInterface) { + const x: string = a.method('hi'); // Works! + const y: boolean = a.method(true); // Works! + + const z: boolean = a.method('hi'); // Error! +} +``` + +### Interface Properties {#toc-interface-properties} + +You can add properties to interfaces following the same syntax as class +properties: + +```js flow-check +interface MyInterface { + property: string; +} +``` + +Interface properties can be optional as well: + +```js flow-check +interface MyInterface { + property?: string; +} +``` + +### Interfaces as maps {#toc-interfaces-as-maps} + +You can create [indexer properties](../objects#toc-objects-as-maps) the same +way as with objects: + +```js flow-check +interface MyInterface { + [key: string]: number; +} +``` + +### Interface Generics {#toc-interface-generics} + +Interfaces can also have their own [generics](../generics/): + +```js flow-check +interface MyInterface { + property: A; + method(val: B): C; +} +``` + +Interface generics are [parameterized](../generics#toc-parameterized-generics). +When you use an interface you need to pass parameters for each of its generics: + +```js flow-check +interface MyInterface { + foo: A; + bar: B; + baz: C; +} + +const val: MyInterface = { + foo: 1, + bar: true, + baz: 'three', +}; +``` + +## Interface property variance (read-only and write-only) {#toc-interface-property-variance-read-only-and-write-only} + +Interface properties are [invariant](../../lang/variance/) by default. But you +can add modifiers to make them covariant (read-only) or contravariant +(write-only). + +```js flow-check +interface MyInterface { + +covariant: number; // read-only + -contravariant: number; // write-only +} +``` + +#### Covariant (read-only) properties on interfaces {#toc-covariant-read-only-properties-on-interfaces} + +You can make a property covariant by adding a plus symbol `+` in front of the +property name: + +```js flow-check +interface MyInterface { + +readOnly: number | string; +} +``` + +This allows you to pass a more specific type in place of that property: + +```js flow-check +interface Invariant { + property: number | string; +} +interface Covariant { + +readOnly: number | string; +} + +const x: {property: number} = {property: 42}; +const y: {readOnly: number} = {readOnly: 42}; + +const value1: Invariant = x; // Error! +const value2: Covariant = y; // Works +``` + +Because of how covariance works, covariant properties also become read-only +when used. Which can be useful over normal properties. + +```js flow-check +interface Invariant { + property: number | string; +} +interface Covariant { + +readOnly: number | string; +} + +function func1(value: Invariant) { + value.property; // Works! + value.property = 3.14; // Works! +} + +function func2(value: Covariant) { + value.readOnly; // Works! + value.readOnly = 3.14; // Error! +} +``` + +#### Contravariant (write-only) properties on interfaces {#toc-contravariant-write-only-properties-on-interfaces} + +You can make a property contravariant by adding a minus symbol - in front of +the property name. + +```js flow-check +interface InterfaceName { + -writeOnly: number; +} +``` + +This allows you to pass a less specific type in place of that property. + +```js flow-check +interface Invariant { + property: number; +} +interface Contravariant { + -writeOnly: number; +} + +const numberOrString = Math.random() > 0.5 ? 42 : 'forty-two'; + +const value1: Invariant = {property: numberOrString}; // Error! +const value2: Contravariant = {writeOnly: numberOrString}; // Works! +``` + +Because of how contravariance works, contravariant properties also become +write-only when used. Which can be useful over normal properties. + +```js flow-check +interface Invariant { + property: number; +} +interface Contravariant { + -writeOnly: number; +} + +function func1(value: Invariant) { + value.property; // Works! + value.property = 3.14; // Works! +} + +function func2(value: Contravariant) { + value.writeOnly; // Error! + value.writeOnly = 3.14; // Works! +} +``` diff --git a/_src/types/intersections.md b/_src/types/intersections.md new file mode 100644 index 00000000000..0cdd9451ee9 --- /dev/null +++ b/_src/types/intersections.md @@ -0,0 +1,247 @@ +--- +title: Intersections +slug: /types/intersections +--- + +Sometimes it is useful to create a type which is ***all of*** a set of other +types. For example, you might want to write a function which accepts a value that +implements two different [interfaces](../interfaces): + +```js flow-check +interface Serializable { + serialize(): string; +} + +interface HasLength { + length: number; +} + +function func(value: Serializable & HasLength) { + // ... +} + +func({ + length: 3, + serialize() { + return '3'; + }, +}); // Works + +func({length: 3}); // Error! Doesn't implement both interfaces +``` + + +## Intersection type syntax {#toc-intersection-type-syntax} + +Intersection types are any number of types which are joined by an ampersand `&`. + +```js +Type1 & Type2 & ... & TypeN +``` + +You may also add a leading ampersand which is useful when breaking intersection +types onto multiple lines. + +```js +type Foo = + & Type1 + & Type2 + & ... + & TypeN +``` + +Each of the members of a intersection type can be any type, even another +intersection type. + +```js +type Foo = Type1 & Type2; +type Bar = Type3 & Type4; + +type Baz = Foo & Bar; +``` + +## Intersection types require all in, but one out + +Intersection types are the opposite of union types. When calling a function +that accepts an intersection type, we must pass in ***all of those types***. But +inside of our function we only have to treat it as ***any one of those +types***. + +```js flow-check +type A = {a: number, ...}; +type B = {b: boolean, ...}; +type C = {c: string, ...}; + +function func(value: A & B & C) { + const a: A = value; + const b: B = value; + const c: C = value; +} +``` + +Even as we treat our value as just one of the types, we do not get an error +because it satisfies all of them. + +## Intersection of function types {#toc-intersection-of-function-types} + +A common use of intersection types is to express functions that return +different results based on the input we pass in. Suppose for example +that we want to write the type of a function that: +* returns a string, when we pass in the value `"string"`, +* returns a number, when we pass in the value `"number"`, and +* returns any possible type (`mixed`), when we pass in any other string. + +The type of this function will be +```js flow-check +type Fn = + & ((x: "string") => string) + & ((x: "number") => number) + & ((x: string) => mixed); +``` +Each line in the above definition is called an *overload*, and we say that functions +of type `Fn` are *overloaded*. + +Note the use of parentheses around the arrow types. These are necessary to override +the precedence of the "arrow" constructor over the intersection. + +### Calling an overloaded function + +Using the above definition we can declare a function `fn` that has the following behavior: +```js flow-check +declare const fn: + & ((x: "string") => string) + & ((x: "number") => number) + & ((x: string) => mixed); + +const s: string = fn("string"); // Works +const n: number = fn("number"); // Works +const b: boolean = fn("boolean"); // Error! +``` +Flow achieves this behavior by matching the type of the argument to the *first* +overload with a compatible parameter type. Notice for example that the argument +`"string"` matches both the first and the last overload. Flow will +just pick the first one. If no overload matches, Flow will raise an error at the +call site. + +### Declaring overloaded functions + +An equivalent way to declare the same function `fn` would be by using consecutive +"declare function" statements +```js flow-check +declare function fn(x: "string"): string; +declare function fn(x: "number"): number; +declare function fn(x: string): mixed; +``` + +A limitation in Flow is that it can't *check* the body of a function against +an intersection type. In other words, if we provided the following implementation +for `fn` right after the above declarations +```js flow-check +function fn(x: mixed) { + if (x === "string") { return ""; } + else if (x === "number") { return 0; } + else { return null; } +} +``` +Flow silently accepts it (and uses `Fn` as the inferred type), but does not check +the implementation against this signature. This makes this kind of declaration +a better suited candidate for [library definitions](../../libdefs/), where implementations are omitted. + + +## Intersections of object types {#toc-intersections-of-object-types} + +When you create an intersection of [inexact object types](../objects/#exact-and-inexact-object-types), +you are saying that your object satisfies each member of the intersection. + +For example, when you create an intersection of two inexact objects with different sets +of properties, it will result in an object with all of the properties. + +```js flow-check +type One = {foo: number, ...}; +type Two = {bar: boolean, ...}; + +type Both = One & Two; + +const value: Both = { + foo: 1, + bar: true +}; +``` + +When you have properties that overlap by having the same name, Flow follows the same +strategy as with overloaded functions: it will return the type of the first property +that matches this name. + +For example, if you merge two inexact objects with a property named `prop`, first with a +type of `number` and second with a type of `boolean`, accessing `prop` will return +`number`. + +```js flow-check +type One = {prop: number, ...}; +type Two = {prop: boolean, ...}; + +declare const both: One & Two; + +const prop1: number = both.prop; // Works +const prop2: boolean = both.prop; // Error! +``` + +To combine exact object types, you should use [object type spread](../objects/#object-type-spread) instead: + +```js flow-check +type One = {foo: number}; +type Two = {bar: boolean}; + +type Both = { + ...One, + ...Two, +}; + +const value: Both = { + foo: 1, + bar: true +}; +``` + +**Note:** When it comes to objects, the order-specific way in which intersection +types are implemented in Flow, may often seem counter-intuitive from a set theoretic +point of view. In sets, the operands of intersection can change order arbitrarily +(commutative property). For this reason, it is a better practice to define this +kind of operation over object types using object type spread where the ordering +semantics are better specified. + + +## Impossible intersection types {#toc-impossible-intersection-types} + +Using intersection types, it is possible to create types which are impossible +to create at runtime. Intersection types will allow you to combine any set of +types, even ones that conflict with one another. + +For example, you can create an intersection of a number and a string. + +```js flow-check +type NumberAndString = number & string; + +function func(value: NumberAndString) { /* ... */ } + +func(3.14); // Error! +func('hi'); // Error! +``` + +But you can't possibly create a value which is both a *number and a string*, +but you can create a type for it. There's no practical use for creating types +like this, but it's a side effect of how intersection types work. + +An accidental way to create an impossible type is to create an intersection of +[exact object types](../objects/#exact-and-inexact-object-types). For example: + +```js flow-check +function func(obj: {a: number} & {b: string}) { /* ... */ } + +func({a: 1}); // Error! +func({b: 'hi'}); // Error! +func({a: 1, b: 'hi'}); // Error! +``` + +It's not possible for an object to have exactly the property `a` and no other +properties, and simultaneously exactly the property `b` and no other properties. diff --git a/_src/types/literals.md b/_src/types/literals.md new file mode 100644 index 00000000000..b60f1cde0ec --- /dev/null +++ b/_src/types/literals.md @@ -0,0 +1,45 @@ +--- +title: Literal Types +slug: /types/literals +--- + +Flow has [primitive types](../primitives) for +literal values, but can also use literal values as types. + +For example, instead of accepting `number` type, we could accept only the +literal value `2`. + +```js flow-check +function acceptsTwo(value: 2) { /* ... */ } + +acceptsTwo(2); // Works! + +acceptsTwo(3); // Error! +acceptsTwo("2"); // Error! +``` + +You can use primitive values for these types: + +- Booleans: like `true` or `false` +- Numbers: like `42` or `3.14` +- Strings: like `"foo"` or `"bar"` +- BigInts: like `42n` + +Using these with [union types](../unions) is powerful: + +```js flow-check +function getColor(name: "success" | "warning" | "danger") { + switch (name) { + case "success" : return "green"; + case "warning" : return "yellow"; + case "danger" : return "red"; + } +} + +getColor("success"); // Works! +getColor("danger"); // Works! + +getColor("error"); // Error! +``` + +Consider using [Flow Enums](../../enums) instead of unions of literal types, if they fit your use-case. diff --git a/_src/types/mapped-types.md b/_src/types/mapped-types.md new file mode 100644 index 00000000000..7c297ead544 --- /dev/null +++ b/_src/types/mapped-types.md @@ -0,0 +1,139 @@ +--- +title: Mapped Types +slug: /types/mapped-types +--- + +Flow's mapped types allow you to transform object types. They are useful for modeling complex runtime operations over objects. + +## Basic Usage {#toc-basic-usage} + +Mapped Types have syntax similar to indexed object types but use the `in` keyword: +```js flow-check +type O = {foo: number, bar: string}; + +type Methodify = () => T; + +type MappedType = {[key in keyof O]: Methodify}; +``` + +In this example, `MappedType` has all of the keys from `O` with all of the value types transformed by +`Methoditfy`. The `key` variable is substituted for each key in `O` when creating the property, so +this type evaluates to: +``` +{ + foo: Methodify, + bar: Methodify, +} += { + foo: () => number, + bar: () => string, +} +``` + +## Mapped Type Sources {#toc-mapped-type-sources} + +We call the type that comes after the `in` keyword the *source* of the mapped type. The source of +a mapped type must be a subtype of `string | number | symbol`: +```js flow-check +type MappedType = {[key in boolean]: number}; // ERROR! +``` + +Typically, you'll want to create a mapped type based on another object type. In this case, you +should write your mapped type using an inline `keyof`: +```js flow-check +type GetterOf = () => T; +type Obj = {foo: number, bar: string}; +type MappedObj = {[key in keyof Obj]: GetterOf}; +``` + +> NOTE: `keyof` only works inline in mapped types for now. Full support for `keyof` is not yet available. + +But you do not need to use an object to generate a mapped type. You can also use a union of string +literal types to represent the keys of an object type: +```js flow-check +type Union = 'foo' | 'bar' | 'baz'; +type MappedType = {[key in Union]: number}; +// = {foo: number, bar: number, baz: number}; +``` + +Importantly, when using string literals the union is collapsed into a *single object type*: +```js flow-check +type MappedTypeFromKeys = {[key in Keys]: number}; +type MappedFooAndBar = MappedTypeFromKeys<'foo' | 'bar'>; +// = {foo: number, bar: number}, not {foo: number} | {bar: number} +``` + +If you use a type like `number` or `string` in the source of your mapped type then Flow will create +an indexer: +```js flow-check +type MappedTypeFromKeys = {[key in Keys]: number}; +type MappedFooAndBarWithIndexer = MappedTypeFromKeys<'foo' | 'bar' | string>; +// = {foo: number, bar: number, [string]: number} +``` + +## Distributive Mapped Types {#toc-distributive-mapped-types} + +When the mapped type uses an inline `keyof` or a type parameter bound by a `$Keys` +Flow will distribute the mapped type over unions of object types. + +For example: +```js flow-check +// This mapped type uses keyof inline +type MakeAllValuesNumber = {[key in keyof O]: number}; +type ObjWithFoo = {foo: string}; +type ObjWithBar = {bar: string}; + +type DistributedMappedType = MakeAllValuesNumber< + | ObjWithFoo + | ObjWithBar +>; // = {foo: number} | {bar: number}; + +// This mapped type uses a type parameter bound by $Keys +type Pick> = {[key in Keys]: O[key]}; +type O1 = {foo: number, bar: number}; +type O2 = {bar: string, baz: number}; +type PickBar = Pick; // = {bar: number} | {bar: string}; +``` + +Distributive mapped types will also distribute over `null` and `undefined`: +```js flow-check +type Distributive = {[key in keyof O]: O[key]}; +type Obj = {foo: number}; +type MaybeMapped = Distributive;// = ?{foo: number} +(null: MaybeMapped); // OK +(undefined: MaybeMapped); // OK +({foo: 3}: MaybeMapped); // OK +``` + +## Property Modifiers {#toc-property-modifiers} + +You can also add `+` or `-` variance modifiers and the optionality modifier `?` in mapped types: +```js flow-check +type O = {foo: number, bar: string} +type ReadOnlyPartialO = {+[key in keyof O]?: O[key]}; // = {+foo?: number, +bar?: string}; +``` + +When no variance nor optionality modifiers are provided and the mapped type is distributive, +the variance and optionality are determined by the input object: +```js flow-check +type O = {+foo: number, bar?: string}; +type Mapped = {[key in keyof O]: O[key]}; // = {+foo: number, bar?: string} +``` + +Otherwise, the properties are read-write and required when no property modifiers are present: +```js flow-check +type Union = 'foo' | 'bar' | 'baz'; +type MappedType = {[key in Union]: number}; +// = {foo: number, bar: number, baz: number}; +``` + +> NOTE: Flow does not yet support removing variance or optionality modifiers. + +## Adoption {#toc-adoption} + +To use mapped types, you need to upgrade your infrastructure so that it supports the syntax: + +- `flow` and `flow-parser`: 0.210.0. Between v0.210.0 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the `[options]` heading, add `mapped_type=true`. +- `prettier`: 3 +- `babel` with `babel-plugin-syntax-hermes-parser`. See [our Babel guide](../../tools/babel/) for setup instructions. +- `eslint` with `hermes-eslint`. See [our ESLint guide](../../tools/eslint/) for setup instructions. diff --git a/_src/types/maybe.md b/_src/types/maybe.md new file mode 100644 index 00000000000..8bee2966b1a --- /dev/null +++ b/_src/types/maybe.md @@ -0,0 +1,79 @@ +--- +title: Maybe Types +slug: /types/maybe +--- + +You can prefix a type with `?` to make it a [union](../unions) with `null` and `void`: +`?T` is equivalent to the union `T | null | void`. + +For example, `?number` is equivalent to `number | null | void`, and allows for numbers, `null`, and `undefined` as values. It's "maybe" a number. + +```js flow-check +function acceptsMaybeNumber(value: ?number) { + // ... +} + +acceptsMaybeNumber(42); // Works! +acceptsMaybeNumber(); // Works! (implicitly undefined) +acceptsMaybeNumber(undefined); // Works! +acceptsMaybeNumber(null); // Works! +acceptsMaybeNumber("42"); // Error! +``` + +In the case of objects, a **missing** property is not the same thing as an explicitly `undefined` property. + +```js flow-check +function acceptsMaybeProp({value}: {value: ?number}) { + // ... +} + +acceptsMaybeProp({value: undefined}); // Works! +acceptsMaybeProp({}); // Error! +``` + +If you want to allow missing properties, use [optional property](../objects/#toc-optional-object-type-properties) syntax, where the `?` is placed _before_ the colon. +It is also possible to combine both syntaxes for an optional maybe type, for example `{value?: ?number}`. + + +## Refining maybe types {#toc-refining-maybe-types} + +Imagine we have the type `?number`, if we want to use that value as a `number` +we'll need to first check that it is not `null` or `undefined`. + +```js flow-check +function acceptsMaybeNumber(value: ?number): number { + if (value !== null && value !== undefined) { + return value * 2; + } + return 0; +} +``` + +You can simplify the two checks against `null` and `undefined` using a single +`!= null` check which will do both. + +```js flow-check +function acceptsMaybeNumber(value: ?number): number { + if (value != null) { + return value * 2; + } + return 0; +} +``` +Most double equal checks are discouraged in JavaScript, but the above pattern is safe (it checks for exactly `null` and `undefined`). + +You could also flip it around, and check to make sure that the value has a type +of `number` before using it. + +```js flow-check +function acceptsMaybeNumber(value: ?number): number { + if (typeof value === 'number') { + return value * 2; + } + return 0; +} +``` + +However, type refinements can be lost. For instance, calling a function after refining the type of an object's property will invalidate this refinement. +Consult the [refinement invalidations](../../lang/refinements/#toc-refinement-invalidations) docs for more details, to understand why Flow works this way, +and how you can avoid this common pitfall. diff --git a/_src/types/mixed.md b/_src/types/mixed.md new file mode 100644 index 00000000000..27ab6cfac49 --- /dev/null +++ b/_src/types/mixed.md @@ -0,0 +1,114 @@ +--- +title: Mixed +slug: /types/mixed +--- + +`mixed` is the [supertype of all types](../../lang/type-hierarchy). All values are `mixed`. +However, this means that very few operations are permitted on it, without refining to some more specific type. +That's because the valid operations on `mixed` must be valid for all types. + +In general, programs have several different categories of types: + +**A single type:** + +Here the input value can only be a `number`. + +```js flow-check +function square(n: number) { + return n * n; +} +``` + +**A group of different possible types:** + +Here the input value could be either a `string` or a `number`. + +```js flow-check +function stringifyBasicValue(value: string | number) { + return '' + value; +} +``` + +**A type based on another type:** + +Here the return type will be the same as the type of whatever value is passed +into the function. + +```js flow-check +function identity(value: T): T { + return value; +} +``` + +These three are the most common categories of types. They will make up the +majority of the types you'll be writing. + +However, there is also a fourth category. + +**An arbitrary type that could be anything:** + +Here the passed in value is an unknown type, it could be any type and the +function would still work. + +```js flow-check +function getTypeOf(value: mixed): string { + return typeof value; +} +``` + +These unknown types are less common, but are still useful at times. + +You should represent these values with `mixed`. + +## Anything goes in, Nothing comes out {#toc-anything-goes-in-nothing-comes-out} + +`mixed` will accept any type of value. Strings, numbers, objects, functions– +anything will work. + +```js flow-check +function stringify(value: mixed) { + // ... +} + +stringify("foo"); +stringify(3.14); +stringify(null); +stringify({}); +``` + +When you try to use a value of a `mixed` type you must first figure out what +the actual type is or you'll end up with an error. + +```js flow-check +function stringify(value: mixed) { + return "" + value; // Error! +} + +stringify("foo"); +``` + +Instead you must ensure the value is a certain type by [refining](../../lang/refinements/) it. + +```js flow-check +function stringify(value: mixed) { + if (typeof value === 'string') { + return "" + value; // Works! + } else { + return ""; + } +} + +stringify("foo"); +``` + +Because of the `typeof value === 'string'` check, Flow knows the `value` can +only be a `string` inside of the `if` statement. This is known as a +[refinement](../../lang/refinements/). + +## Versus `any` +`mixed` is safe, while [`any`](../any) is not. Both accept all values, but `any` also unsafely allows all operations. + +## Versus `empty` +`mixed` is the opposite of [`empty`](../empty): +- Everything is a `mixed`, but few operations are permitted on it without first refining to a specific type. It is the supertype of all types. +- Nothing is `empty`, but any operation is permitted on it. It is the subtype of all types. diff --git a/_src/types/modules.md b/_src/types/modules.md new file mode 100644 index 00000000000..2f52b8bc7c5 --- /dev/null +++ b/_src/types/modules.md @@ -0,0 +1,49 @@ +--- +title: Module Types +slug: /types/modules +--- + +## Importing and exporting types {#toc-importing-and-exporting-types} + +It is often useful to share types between modules (files). +In Flow, you can export type aliases, interfaces, and classes from one file and import them in another. + +**`exports.js`** + +```js flow-check +export default class MyClass {}; +export type MyObject = { /* ... */ }; +export interface MyInterface { /* ... */ }; +``` + +**`imports.js`** + +```js +import type MyClass, {MyObject, MyInterface} from './exports'; +``` + +> ***Don't forget to add `@flow` at the top of your file, otherwise Flow won't report errors***. + +## Importing and exporting values as types {#toc-importing-and-exporting-values} + +Flow also supports importing the type of values exported by other modules using [`typeof`](../typeof/). + +**`exports.js`** + +```js flow-check +const myNumber = 42; +export default myNumber; +export class MyClass { /* ... */ }; +``` + +**`imports.js`** + +```js +import typeof MyNumber from './exports'; +import typeof {MyClass} from './exports'; + +const x: MyNumber = 1; // Works: like using `number` +``` + +Just like other type imports, this code can be stripped away by a compiler so +that it does not add a runtime dependency on the other module. diff --git a/_src/types/objects.md b/_src/types/objects.md new file mode 100644 index 00000000000..3737dc77339 --- /dev/null +++ b/_src/types/objects.md @@ -0,0 +1,514 @@ +--- +title: Objects +slug: /types/objects +--- + +Objects can be used in many different ways in JavaScript. +There are a number of ways to type them in order to support the different use cases. + +- Exact object types: An object which has exactly a set of properties, e.g. `{a: number}`. We recommend using exact object types rather than inexact ones, as they are more precise and interact better with other type system features, like [spreads](#object-type-spread). +- [Inexact object types](#exact-and-inexact-object-types): An object with at least a set of properties, but potentially other, unknown ones, e.g. `{a: number, ...}`. +- [Objects with indexers](#toc-objects-as-maps): An object that can used as a map from a key type to a value type, e.g. `{[string]: boolean}`. +- [Interfaces](../interfaces): Interfaces are separate from object types. Only they can describe instances of classes. E.g. `interfaces {a: number}`. + +Object types try to match the syntax for objects in JavaScript as much as +possible. Using curly braces `{}` and name-value pairs using a colon `:` split +by commas `,`. + +```js flow-check +const obj1: {foo: boolean} = {foo: true}; +const obj2: { + foo: number, + bar: boolean, + baz: string, +} = { + foo: 1, + bar: true, + baz: 'three', +}; +``` + +## Optional object type properties {#toc-optional-object-type-properties} + +In JavaScript, accessing a property that doesn't exist evaluates to +`undefined`. This is a common source of errors in JavaScript programs, so Flow +turns these into type errors. + +```js flow-check +const obj = {foo: "bar"}; +obj.bar; // Error! +``` + +If you have an object that sometimes does not have a property you can make it +an _optional property_ by adding a question mark `?` after the property name in +the object type. + +```js flow-check +const obj: {foo?: boolean} = {}; + +obj.foo = true; // Works! +obj.foo = 'hello'; // Error! +``` + +In addition to their set value type, these optional properties can either be +`void` or omitted altogether. However, they cannot be `null`. + +```js flow-check +function acceptsObject(value: {foo?: string}) { /* ... */ } + +acceptsObject({foo: "bar"}); // Works! +acceptsObject({foo: undefined}); // Works! +acceptsObject({}); // Works! + +acceptsObject({foo: null}); // Error! +``` + + +To make all properties in an object type optional, you can use the [`Partial`](../utilities/#toc-partial) utility type: + +```js flow-check +type Obj = { + foo: string, +}; + +type PartialObj = Partial; // Same as `{foo?: string}` +``` + +To make all properties in an object type required, you can use the [`Required`](../utilities/#toc-required) utility type: + +```js flow-check +type PartialObj = { + foo?: string, +}; + +type Obj = Required; // Same as `{foo: string}` +``` + +## Read-only object properties + +You can add [variance](../../lang/variance) annotations to your object properties. + +To mark a property as read-only, you can use the `+`: + +```js flow-check +type Obj = { + +foo: string, +}; + +function func(o: Obj) { + const x: string = o.foo; // Works! + o.foo = 'hi'; // Error! +} +``` + +To make all object properties in an object type read-only, you can use the [`$ReadOnly`](../utilities/#toc-readonly) utility type: + +```js flow-check +type Obj = { + foo: string, +}; + +type ReadOnlyObj = $ReadOnly; // Same as `{+foo: string}` +``` + +You can also mark your properties as write-only with `-`: + +```js flow-check +type Obj = { + -foo: string, +}; + +function func(o: Obj) { + const x: string = o.foo; // Error! + o.foo = 'hi'; // Works! +} +``` + + +## Object methods {#toc-object-methods} + +Method syntax in objects has the same runtime behavior as a function property. These two objects are equivalent at runtime: + +```js flow-check +const a = { + foo: function () { return 3; } +}; +const b = { + foo() { return 3; } +} +``` + +However, despite their equivalent runtime behavior, Flow checks them slightly differently. In particular, object +properties written with method syntax are [read-only](../../lang/variance); Flow will not allow you to write a new value to them. + +```js flow-check +const b = { + foo() { return 3; } +} +b.foo = () => { return 2; } // Error! +``` + +Additionally, object methods do not allow the use of `this` in their bodies, in order to guarantee simple behavior +for their `this` parameters. Prefer to reference the object by name instead of using `this`. + +```js flow-check +const a = { + x: 3, + foo() { return this.x; } // Error! +} +const b = { + x: 3, + foo(): number { return b.x; } // Works! +} +``` + +## Object type inference {#toc-object-type-inference} + +> NOTE: The behavior of empty object literals has changed in version 0.191 - +> see this [blog post](https://medium.com/flow-type/improved-handling-of-the-empty-object-in-flow-ead91887e40c) for more details. + +When you create an object value, its type is set at the creation point. You cannot add new properties, +or modify the type of existing properties. + +```js flow-check +const obj = { + foo: 1, + bar: true, +}; + +const n: number = obj.foo; // Works! +const b: boolean = obj.bar; // Works! + +obj.UNKNOWN; // Error - prop `UNKNOWN` is not in the object value +obj.foo = true; // Error - `foo` is of type `number` +``` + +If you supply a type annotation, you can add properties missing in the object value as optional properties: + +```js flow-check +const obj: { + foo?: number, + bar: boolean, +} = { + // `foo` is not set here + bar: true, +}; + +const n: number | void = obj.foo; // Works! +const b: boolean = obj.bar; // Works! + +if (b) { + obj.foo = 3; // Works! +} +``` + +You can also give a wider type for a particular property: + +```js flow-check +const obj: { + foo: number | string, +} = { + foo: 1, +}; + +const foo: number | string = obj.foo; // Works! +obj.foo = "hi"; // Works! +``` + +The empty object can be interpreted as a [dictionary](#toc-objects-as-maps), if you supply the appropriate type annotation: + +```js flow-check +const dict: {[string]: number} = {}; // Works! +``` + +You may need to add type annotations to an object literal, if it references itself recursively (beyond simple cases): + +```js flow-check +const Utils = { // Error + foo() { + return Utils.bar(); + }, + bar() { + return 1; + } +}; + +const FixedUtils = { // Works! + foo(): number { + return FixedUtils.bar(); + }, + bar(): number { + return 1; + } +}; +``` + +## Exact and inexact object types + +Exact object types are the default (as of version 0.202), unless you have set [`exact_by_default=false`](../../config/options#toc-exact-by-default) in your `.flowconfig`. + +Inexact objects (denoted with the `...`) allow extra properties to be passed in: + +```js flow-check +function method(obj: {foo: string, ...}) { /* ... */ } + +method({foo: "test", bar: 42}); // Works! +``` + +> **Note:** This is because of ["width subtyping"](../../lang/width-subtyping). + +But exact object types do not: + +```js flow-check +function method(obj: {foo: string}) { /* ... */ } + +method({foo: "test", bar: 42}); // Error! +``` + +If you have set `exact_by_default=false`, you can denote exact object types by adding a pair of "vertical bars" or "pipes" to the inside of the curly braces: + +```js flow-check +const x: {|foo: string|} = {foo: "Hello", bar: "World!"}; // Error! +``` + +[Intersections](../intersections) of exact object types may not work as you expect. If you need to combine exact object types, use [object type spread](#object-type-spread): + +```js flow-check +type FooT = {foo: string}; +type BarT = {bar: number}; + +type FooBarT = {...FooT, ...BarT}; +const fooBar: FooBarT = {foo: '123', bar: 12}; // Works! + +type FooBarFailT = FooT & BarT; +const fooBarFail: FooBarFailT = {foo: '123', bar: 12}; // Error! +``` + +## Object type spread + +Just like you can spread object values, you can also spread object types: + +```js flow-check +type ObjA = { + a: number, + b: string, +}; + +const x: ObjA = {a: 1, b: "hi"}; + +type ObjB = { + ...ObjA, + c: boolean, +}; + +const y: ObjB = {a: 1, b: 'hi', c: true}; // Works! +const z: ObjB = {...x, c: true}; // Works! +``` + +You have to be careful spreading inexact objects. +The resulting object must also be inexact, +and the spread inexact object may have unknown properties that can override previous properties in unknown ways: + +```js flow-check +type Inexact = { + a: number, + b: string, + ... +}; + +type ObjB = { // Error! + c: boolean, + ...Inexact, +}; + +const x: ObjB = {a:1, b: 'hi', c: true}; +``` + +The same issue exists with objects with [indexers](#toc-objects-as-maps), as they also have unknown keys: + +```js flow-check +type Dict = { + [string]: number, +}; + +type ObjB = { // Error! + c: boolean, + ...Dict, +}; + +const x: ObjB = {a: 1, b: 2, c: true}; +``` + +Spreading an object value at runtime only spreads "own" properties, that is properties that are on the object directly, not the prototype chain. +Object type spread works in the same way. +Because of this, you can't spread [interfaces](../interfaces), as they don't track whether a property is "own" or not: + +```js flow-check +interface Iface { + a: number; + b: string; +} + +type ObjB = { // Error! + c: boolean, + ...Iface, +}; + +const x: ObjB = {a: 1, b: 'hi', c: true}; +``` + +## Objects as maps {#toc-objects-as-maps} + +JavaScript includes a [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) class, +but it is still very common to use objects as maps as well. In this use case, an object +will likely have properties added to it and retrieved throughout its lifecycle. +Furthermore, the property keys may not even be known statically, so writing out +a type annotation would not be possible. + +For objects like these, Flow provides a special kind of property, called an +"indexer property." An indexer property allows reads and writes using any key +that matches the indexer key type. + +```js flow-check +const o: {[string]: number} = {}; +o["foo"] = 0; +o["bar"] = 1; +const foo: number = o["foo"]; +``` + +An indexer can be optionally named, for documentation purposes: + +```js flow-check +const obj: {[user_id: number]: string} = {}; +obj[1] = "Julia"; +obj[2] = "Camille"; +obj[3] = "Justin"; +obj[4] = "Mark"; +``` + +When an object type has an indexer property, property accesses are assumed to +have the annotated type, even if the object does not have a value in that slot +at runtime. It is the programmer's responsibility to ensure the access is safe, +as with arrays. + +```js flow-check +const obj: {[number]: string} = {}; +obj[42].length; // No type error, but will throw at runtime +``` + +Indexer properties can be mixed with named properties: + +```js flow-check +const obj: { + size: number, + [id: number]: string +} = { + size: 0 +}; + +function add(id: number, name: string) { + obj[id] = name; + obj.size++; +} +``` + +You can mark an indexer property as read-only (or write-only) using [variance](../../lang/variance) annotations: + +```js flow-check +type ReadOnly = {+[string]: number}; +type WriteOnly = {-[string]: number}; +``` + +## Keys, values, and indexed access + +You can extract the keys of an object type using the [`$Keys`](../utilities/#toc-keys) utility type: + +```js flow-check +type Obj = { + foo: string, + bar: number, +}; + +type T = $Keys; + +function acceptsKeys(k: T) { /* ... */ } + +acceptsKeys('foo'); // Works! +acceptsKeys('bar'); // Works! +acceptsKeys('hi'); // Error! +``` + +You can extract the values of an object type using the [`$Values`](../utilities/#toc-values) utility type: + +```js flow-check +type Obj = { + foo: string, + bar: number, +}; + +type T = $Values; + +function acceptsValues(v: T) { /* ... */ } + +acceptsValues(2); // Works! +acceptsValues('hi'); // Works! +acceptsValues(true); // Error! +``` + +You can get the type of an object type's specific property using [indexed access types](../indexed-access): + +```js flow-check +type Obj = { + foo: string, + bar: number, +}; + +type T = Obj['foo']; + +function acceptsStr(x: T) { /* ... */ } + +acceptsStr('hi'); // Works! +acceptsStr(1); // Error! +``` + +## Arbitrary objects + +If you want to accept an arbitrary object safely, there are a couple of patterns you could use. + +An empty inexact object `{...}` accepts any object: + +```js flow-check +function func(obj: {...}) { + // ... +} + +func({}); // Works! +func({a: 1, b: "foo"}); // Works! +``` + +It's often the right choice for a [generic](../generics) bounded to accept any object: + +```js flow-check +function func(obj: T) { + // ... +} + +func({}); // Works! +func({a: 1, b: "foo"}); // Works! +``` + +However, you can't access any properties off of `{...}`. + +You can also try using a [dictionary](#toc-objects-as-maps) with [`mixed`](../mixed) values, which would allow you to access any property (with a resulting `mixed` type): + +```js flow-check +function func(obj: {+[string]: mixed}) { + const x: mixed = obj['bar']; +} + +func({}); // Works! +func({a: 1, b: "foo"}); // Works! +``` + +The type `Object` is just an alias for [`any`](../any), and is unsafe. +You can ban its use in your code with the [unclear-type lint](../../linting/rule-reference/#toc-unclear-type). diff --git a/_src/types/opaque-types.md b/_src/types/opaque-types.md new file mode 100644 index 00000000000..6c01800bc44 --- /dev/null +++ b/_src/types/opaque-types.md @@ -0,0 +1,159 @@ +--- +title: Opaque Type Aliases +slug: /types/opaque-types +--- + +Opaque type aliases are type aliases that do not allow access to their +underlying type outside of the file in which they are defined. + +```js flow-check +opaque type ID = string; +``` + +Opaque type aliases, like regular type aliases, may be used anywhere a type can +be used. + + +```js flow-check +opaque type ID = string; + +function identity(x: ID): ID { + return x; +} +export type {ID}; +``` + +## Opaque Type Alias Syntax {#toc-opaque-type-alias-syntax} + +Opaque type aliases are created using the words `opaque type` followed by its +name, an equals sign `=`, and a type definition. + +```js +opaque type Alias = Type; +``` + +You can optionally add a subtyping constraint to an opaque type alias by adding +a colon `:` and a type after the name. + +```js +opaque type Alias: SuperType = Type; +``` + +Any type can appear as the super type or type of an opaque type alias. + +```js flow-check +opaque type StringAlias = string; +opaque type ObjectAlias = { + property: string, + method(): number, +}; +opaque type UnionAlias = 1 | 2 | 3; +opaque type AliasAlias: ObjectAlias = ObjectAlias; +opaque type VeryOpaque: AliasAlias = ObjectAlias; +``` + +## Opaque Type Alias Type Checking {#toc-opaque-type-alias-type-checking} + +### Within the Defining File {#toc-within-the-defining-file} + +When in the same file the alias is defined, opaque type aliases behave exactly +as regular [type aliases](../aliases/) do. + +```js flow-check +opaque type NumberAlias = number; + +(0: NumberAlias); + +function add(x: NumberAlias, y: NumberAlias): NumberAlias { + return x + y; +} +function toNumberAlias(x: number): NumberAlias { return x; } +function toNumber(x: NumberAlias): number { return x; } +``` + +### Outside the Defining File {#toc-outside-the-defining-file} + +When importing an opaque type alias, it behaves like a +[nominal type](../../lang/nominal-structural/#toc-nominal-typing), hiding its +underlying type. + +**`exports.js`** + +```js +export opaque type NumberAlias = number; +``` + +**`imports.js`** + +```js +import type {NumberAlias} from './exports'; + +(0: NumberAlias) // Error: 0 is not a NumberAlias! + +function convert(x: NumberAlias): number { + return x; // Error: x is not a number! +} +``` + +### Subtyping Constraints {#toc-subtyping-constraints} + +When you add a subtyping constraint to an opaque type alias, we allow the opaque +type to be used as the super type when outside of the defining file. + +**`exports.js`** + +```js flow-check +export opaque type ID: string = string; +``` + +**`imports.js`** + +```js +import type {ID} from './exports'; + +function formatID(x: ID): string { + return "ID: " + x; // Ok! IDs are strings. +} + +function toID(x: string): ID { + return x; // Error: strings are not IDs. +} +``` + +When you create an opaque type alias with a subtyping constraint, the type in +the type position must be a subtype of the type in the super type position. + +```js flow-check +opaque type Bad: string = number; // Error: number is not a subtype of string +opaque type Good: {x: string, ...} = {x: string, y: number}; +``` + +### Generics {#toc-generics} + +Opaque type aliases can also have their own [generics](../generics/), +and they work exactly as generics do in regular [type aliases](../aliases#toc-type-alias-generics) + +```js flow-check +opaque type MyObject: {foo: A, bar: B, ...} = { + foo: A, + bar: B, + baz: C, +}; + +var val: MyObject = { + foo: 1, + bar: true, + baz: 'three', +}; +``` + +### Library Definitions {#toc-library-definitions} + +You can also declare opaque type aliases in +[libdefs](../../libdefs). There, you omit the underlying +type, but may still optionally include a super type. + +```js flow-check +declare opaque type Foo; +declare opaque type PositiveNumber: number; +``` diff --git a/_src/types/primitives.md b/_src/types/primitives.md new file mode 100644 index 00000000000..e94a09bb07d --- /dev/null +++ b/_src/types/primitives.md @@ -0,0 +1,404 @@ +--- +title: Primitive Types +slug: /types/primitives +--- + +JavaScript has a number of different primitive types +([MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#primitive_values)): + +| | Example | Flow type | +| - | ------- | --------- | +| **Booleans** | `true` or `false` | `boolean` +| **Strings** | `'foo'` | `string` +| **Numbers** | `123` | `number` +| **Null** | `null` | `null` +| **Undefined** | `undefined` | `void` +| **Symbols** *(new in ES2015)* | `Symbol('foo')` | `symbol` +| **BigInts** *(new in ES2020)* | `123n` | `bigint` + +Some primitive types appear in the language as literal values: + +```js flow-check +true; +"hello"; +3.14; +null; +undefined; +3n; +``` + +BigInts and Symbols can be created with calls to `BigInt` and `Symbol`, respectively: + +```js flow-check +BigInt("2364023476023"); +Symbol("hello"); +``` + +The Flow types of literal values are lowercase (mirroring the output of JavaScript's +[`typeof` expression](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof)): + +```js flow-check +function func(a: number, b: string, c: boolean, d: bigint) { /* ... */ } + +func(3.14, "hello", true, 3n); +``` + +Some literals can also be used as [literal types](../literals): + +```js flow-check +function acceptTwo(x: 2) { /* ... */ } + +acceptTwo(2); // Works! +acceptTwo(1); // Error! +``` + +Some primitives can also be wrapped as objects: + +> NOTE: You probably never want to use the wrapper object variants. + +```js flow-check +new Boolean(false); +new String("world"); +new Number(42); +``` + +Types for the wrapper objects are capitalized (the same as their constructor): + +```js flow-check +function func(x: Number, y: String, z: Boolean) { + // ... +} + +func(new Number(42), new String("world"), new Boolean(false)); +``` + +These wrapper objects are rarely used. + +## Booleans {#toc-booleans} + +Booleans are `true` and `false` values in JavaScript. The `boolean` type in +Flow accepts these values. + +```js flow-check +function acceptsBoolean(value: boolean) { /* ... */ } + +acceptsBoolean(true); // Works! +acceptsBoolean(false); // Works! + +acceptsBoolean("foo"); // Error! +``` + +JavaScript can also implicitly convert other types of values into booleans. + +```js +if (42) {} // 42 => true +if ("") {} // "" => false +``` + +Flow understands these coercions and will allow them as part of an +`if` statement's test or other conditional contexts. + +To explicitly convert non-booleans to a `boolean`, you can use `Boolean(x)` or `!!x`. + +```js flow-check +function acceptsBoolean(value: boolean) { /* ... */ } + +acceptsBoolean(0); // Error! + +acceptsBoolean(Boolean(0)); // Works! +acceptsBoolean(!!0); // Works! +``` + +You can [refine](../../lang/refinements/) a value to `boolean` using a `typeof` check: + +```js flow-check +function acceptsBoolean(value: boolean) { /* ... */ } + +function func(value: mixed) { + if (typeof value === 'boolean') { + acceptsBoolean(value); // Works: `value` is `boolean` + } +} +``` + +Remember that `boolean` and `Boolean` are different types. + +- A `boolean` is a literal value like `true` or `false` or the result of an + expression like `a === b`. +- A `Boolean` is a wrapper object created by the global `new Boolean(x)` + constructor. You probably don't want to use this! + +## Numbers {#toc-numbers} + +Number literals in JavaScript are floating point numbers, for example `42` or `3.14`. +JavaScript also considers `Infinity` and `NaN` to be numbers. +These are represented by the `number` type. JavaScript also has a separate [BigInt type](#toc-bigints). + +```js flow-check +function acceptsNumber(value: number) { /* ... */ } + +acceptsNumber(42); // Works! +acceptsNumber(3.14); // Works! +acceptsNumber(NaN); // Works! +acceptsNumber(Infinity); // Works! + +acceptsNumber("foo"); // Error! +acceptsNumber(123n); // Error! +``` + +You can [refine](../../lang/refinements/) a value to `number` using a `typeof` check: + +```js flow-check +function acceptsNumber(value: number) { /* ... */ } + +function func(value: mixed) { + if (typeof value === 'number') { + acceptsNumber(value); // Works: `value` is `number` + } +} +``` + +Remember that `number` and `Number` are different types. + +- A `number` is a literal value like `42` or `3.14` or the result of an + expression like `parseFloat(x)`. +- A `Number` is a wrapper object created by the global `new Number(x)` constructor. You probably don't want to use this! + +## Strings {#toc-strings} + +Strings are `"foo"` values in JavaScript. The `string` type in Flow accepts these values. + +```js flow-check +function acceptsString(value: string) { /* ... */ } + +acceptsString("foo"); // Works! +acceptsString(`template literal`); // Works! + +acceptsString(false); // Error! +``` + +JavaScript implicitly converts other types of values into strings by +concatenating them. + +```js +"foo" + 42; // "foo42" +"foo" + {}; // "foo[object Object]" +``` + +Flow will only accept strings and numbers when concatenating them to strings. + +```js flow-check +"foo" + "foo"; // Works! +"foo" + 42; // Works! +`foo ${42}`; // Works! + +"foo" + {}; // Error! +"foo" + []; // Error! +`foo ${[]}`; // Error! +``` + +You must be explicit and convert other types into strings. You can do this by +using the String function or using another method for stringifying values. + +```js flow-check +"foo" + String({}); // Works! +"foo" + [].toString(); // Works! +"" + JSON.stringify({}) // Works! +``` + +You can [refine](../../lang/refinements/) a value to `string` using a `typeof` check: + +```js flow-check +function acceptsString(value: string) { /* ... */ } + +function func(value: mixed) { + if (typeof value === 'string') { + acceptsString(value); // Works: `value` is `string` + } +} +``` + +Remember that `string` and `String` are different types. + +- A `string` is a literal value like `"foo"` or the result of an expression + like `"" + 42`. +- A `String` is a wrapper object created by the global `new String(x)` constructor. You probably don't want to use this! + +## `null` and `undefined` {#toc-null-and-void} + +JavaScript has both `null` and `undefined`. Flow treats these as separate +types: `null` and `void` (for `undefined`). + +```js flow-check +function acceptsNull(value: null) { /* ... */ } + +acceptsNull(null); // Works! +acceptsNull(undefined); // Error! + +function acceptsUndefined(value: void) { /* ... */ } + +acceptsUndefined(undefined); // Works! +acceptsUndefined(null); // Error! +``` + +You can [refine](../../lang/refinements/) a value to `null` or `void` using equality checks: + +```js flow-check +function acceptsNull(value: null) { /* ... */ } + +function func(value: mixed) { + if (value === null) { + acceptsNull(value); // Works: `value` is `null` + } +} +``` + +```js flow-check +function acceptsUndefined(value: void) { /* ... */ } + +function func(value: mixed) { + if (value === undefined) { + acceptsUndefined(value); // Works: `value` is `void` + } +} +``` + +`null` and `void` also appear in other types: + +### Maybe types {#toc-maybe-types} + +[Maybe types](../maybe) are for places where a value is optional and you can create them by +adding a question mark in front of the type such as `?string` or `?number`. + +`?T` is equivalent to `T | null | void`. + +```js flow-check +function acceptsMaybeString(value: ?string) { /* ... */ } + +acceptsMaybeString("bar"); // Works! +acceptsMaybeString(undefined); // Works! +acceptsMaybeString(null); // Works! +acceptsMaybeString(); // Works! +``` + +To refine, `value == null` checks exactly for both `null` and `undefined`. + +Read the [maybe type docs](../maybe) for more details. + +### Optional object properties {#toc-optional-object-properties} + +Object types can have optional properties where a question mark `?` comes after +the property name. + +```js +{propertyName?: string} +``` + +In addition to their set value type, these optional properties can either be +`void` or omitted altogether. However, they cannot be `null`. + +```js flow-check +function acceptsObject(value: {foo?: string}) { /* ... */ } + +acceptsObject({foo: "bar"}); // Works! +acceptsObject({foo: undefined}); // Works! +acceptsObject({}); // Works! + +acceptsObject({foo: null}); // Error! +``` + +### Optional function parameters {#toc-optional-function-parameters} + +Functions can have optional parameters where a question mark `?` comes after +the parameter name. + +```js +function func(param?: string) { /* ... */ } +``` + +In addition to their set type, these optional parameters can either be `void` +or omitted altogether. However, they cannot be `null`. + +```js flow-check +function acceptsOptionalString(value?: string) { /* ... */ } + +acceptsOptionalString("bar"); // Works! +acceptsOptionalString(undefined); // Works! +acceptsOptionalString(); // Works! + +acceptsOptionalString(null); // Error! +``` + +### Function parameters with defaults {#toc-function-parameters-with-defaults} + +Function parameters can also have defaults. This is a feature of ES2015. + +```js +function func(value: string = "default") { /* ... */ } +``` + +In addition to their set type, default parameters can also be `void` or omitted +altogether. However, they cannot be `null`. + +```js flow-check +function acceptsOptionalString(value: string = "foo") { /* ... */ } + +acceptsOptionalString("bar"); // Works! +acceptsOptionalString(undefined); // Works! +acceptsOptionalString(); // Works! + +acceptsOptionalString(null); // Error! +``` + +## Symbols {#toc-symbols} + +Symbols are created with `Symbol()` in JavaScript. Flow has basic support for symbols, using the `symbol` type. + +```js flow-check +function acceptsSymbol(value: symbol) { /* ... */ } + +acceptsSymbol(Symbol()); // Works! +acceptsSymbol(Symbol.isConcatSpreadable); // Works! + +acceptsSymbol(false); // Error! +``` + +You can [refine](../../lang/refinements/) a value to `symbol` using a `typeof` check: + +```js flow-check +function acceptsSymbol(value: symbol) { /* ... */ } + +function func(value: mixed) { + if (typeof value === 'symbol') { + acceptsSymbol(value); // Works: `value` is `symbol` + } +} +``` + + +## BigInts {#toc-bigints} + +BigInts can be used to represent integers of arbitrary precision. In other words, they can store integers which are too large to store as a `number`. + +A `bigint` literal is just a `number` literal along with an `n` suffix. + +Note that `bigint` and `number` are incompatible types. That is, a `bigint` cannot be used where a `number` is expected, and vice versa. + +```js flow-check +function acceptsBigInt(value: bigint) { /* ... */ } + +acceptsBigInt(42n); // Works! +acceptsBigInt(42); // Error! +``` + +You can [refine](../../lang/refinements/) a value to `bigint` using a `typeof` check: + +```js flow-check +function acceptsBigInt(value: bigint) { /* ... */ } + +function func(value: mixed) { + if (typeof value === 'bigint') { + acceptsBigInt(value); // Works: `value` is `bigint` + } +} +``` diff --git a/_src/types/tuples.md b/_src/types/tuples.md new file mode 100644 index 00000000000..deafedd44d5 --- /dev/null +++ b/_src/types/tuples.md @@ -0,0 +1,259 @@ +--- +title: Tuples +slug: /types/tuples +--- + +Tuple types represent a **fixed length** list, where the elements can have **different types**. +This is in contrast to [array types](../arrays), which have an unknown length and all elements have the same type. + +## Tuple Basics + +JavaScript array literal values can be used to create both tuple and array types: + +```js flow-check +const arr: Array = [1, 2, 3]; // As an array type +const tup: [number, number, number] = [1, 2, 3]; // As a tuple type +``` + +In Flow you can create tuple types using the `[type1, type2, type3]` syntax: + +```js flow-check +const tuple1: [number] = [1]; +const tuple2: [number, boolean] = [1, true]; +const tuple3: [number, boolean, string] = [1, true, "three"]; +``` + +When you get a value from a tuple at a specific index, it will return the +type at that index: + +```js flow-check +const tuple: [number, boolean, string] = [1, true, "three"]; + +const num: number = tuple[0]; // Works! +const bool: boolean = tuple[1]; // Works! +const str: string = tuple[2]; // Works! +``` + +Trying to access an index that does not exist results in an index-out-of-bounds error: + +```js flow-check +const tuple: [number, boolean, string] = [1, true, "three"]; + +const none = tuple[3]; // Error! +``` + +If Flow doesn't know which index you are trying to access it will return all +possible types: + +```js flow-check +const tuple: [number, boolean, string] = [1, true, "three"]; + +function getItem(n: number) { + const val: number | boolean | string = tuple[n]; + // ... +} +``` + +When setting a new value inside a tuple, the new value must match the type at +that index: + +```js flow-check +const tuple: [number, boolean, string] = [1, true, "three"]; + +tuple[0] = 2; // Works! +tuple[1] = false; // Works! +tuple[2] = "foo"; // Works! + +tuple[0] = "bar"; // Error! +tuple[1] = 42; // Error! +tuple[2] = false; // Error! +``` + +## Strictly enforced tuple length (arity) {#toc-strictly-enforced-tuple-length-arity} + +The length of the tuple is known as the "arity". The length of a tuple is +strictly enforced in Flow. + +This means that a shorter tuple can't be used in place of a longer one: + +```js flow-check +const tuple1: [number, boolean] = [1, true]; + +const tuple2: [number, boolean, void] = tuple1; // Error! +``` + +Also, a longer tuple can't be used in place of a shorter one: + +```js flow-check +const tuple1: [number, boolean, void] = [1, true, undefined]; + +const tuple2: [number, boolean] = tuple1; // Error! +``` + +[Optional elements](#optional-tuple-elements) make the arity into a range. + +## Tuples don't match array types {#toc-tuples-don-t-match-array-types} + +Since Flow does not know the length of an array, an `Array` type cannot be +passed into a tuple: + +```js flow-check +const array: Array = [1, 2]; + +const tuple: [number, number] = array; // Error! +``` + +Also a tuple type cannot be passed into to an `Array` type, since then you +could mutate the tuple in an unsafe way (for example, `push`ing a third item onto it): + +```js flow-check +const tuple: [number, number] = [1, 2]; + +const array: Array = tuple; // Error! +``` + +However, you can pass it to a [`$ReadOnlyArray`](../arrays/#toc-readonlyarray) type, since mutation is disallowed: + +```js flow-check +const tuple: [number, number] = [1, 2]; + +const array: $ReadOnlyArray = tuple; // Works! +``` + +## Cannot use mutating array methods on tuples {#toc-cannot-use-mutating-array-methods-on-tuples} + +You cannot use `Array.prototype` methods that mutate the tuple, only ones that do not: + +```js flow-check +const tuple: [number, number] = [1, 2]; +tuple.join(', '); // Works! + +tuple.push(3); // Error! +``` + +## Length refinement + +You can refine a [union](../unions) of tuples by their length: + +```js flow-check +type Union = [number, string] | [boolean]; +function f(x: Union) { + if (x.length === 2) { + // `x` is `[number, string]` + const n: number = x[0]; // OK + const s: string = x[1]; // OK + } else { + // `x` is `[boolean]` + const b: boolean = x[0]; + } +} +``` + +## Tuple element labels + +> NOTE: This and the following sections require your tooling to be updated as described in the "Adoption" section at the end of this page. + +You can add a label to tuple elements. This label does not affect the type of the tuple element, +but is useful in self-documenting the purpose of the tuple elements, especially when multiple elements have the same type. + +```js flow-check +type Range = [x: number, y: number]; +``` + +The label is also necessary to add a variance annotation or optionality modifier to an element (as without the label we would have parsing ambiguities). + +## Variance annotations and read-only tuples + +You can add [variance](../../lang/variance) annotations (to denote read-only/write-only) on labeled tuple elements, just like on object properties: + +```js flow-check +type T = [+foo: number, -bar: string]; +``` + +This allows you to mark elements as read-only or write-only. For example: + +```js flow-check +function f(readOnlyTuple: [+foo: number, +bar: string]) { + const n: number = readOnlyTuple[0]; // OK to read + readOnlyTuple[1] = 1; // ERROR! Cannot write +} +``` + +You can also use the [`$ReadOnly`](../utilities/#toc-readonly) on tuple types as a shorthand for marking each property as read-only: + +```js flow-check +type T = $ReadOnly<[number, string]>; // Same as `[+a: number, +b: string]` +``` + +## Optional tuple elements + +You can mark tuple elements as optional with `?` after an element’s label. This allows you to omit the optional elements. +Optional elements must be at the end of the tuple type, after all required elements. + +```js flow-check +type T = [foo: number, bar?: string]; +([1, "s"]: T); // OK: has all elements +([1]: T); // OK: skipping optional element +``` + +You cannot write `undefined` to the optional element - add `| void` to the element type if you want to do so: + +```js flow-check +type T = [foo?: number, bar?: number | void]; +declare const x: T; +x[0] = undefined; // ERROR +([undefined]: T); // ERROR + +x[1] = undefined; // OK: we've added `| void` to the element type +``` + +You can also use the [`Partial`](../utilities/#toc-partial) and [`Required`](../utilities/#toc-required) utility types to make all elements optional or required respectively: + +```js flow-check +type AllRequired = [number, string]; +([]: Partial); // OK: like `[a?: number, b?: string]` now + +type AllOptional = [a?: number, b?: string]; +([]: Required); // ERROR: like `[a: number, b: string]` now +``` + +Tuples with optional elements have an arity (length) that is a range rather than a single number. For example, `[number, b?: string]` has an length of 1-2. + +## Tuple spread + +You can spread a tuple type into another tuple type to make a longer tuple type: + +```js flow-check +type A = [number, string]; +type T = [...A, boolean]; // Same as `[number, string, boolean]` +([1, "s", true]: T); // OK +``` + +Tuple spreads preserve labels, variance, and optionality. You cannot spread arrays into tuples, only other tuples. + +At the value level, if you spread a tuple with optional elements into an array literal, then you cannot have anything after that spread and retain the tuple view of the array value. +That is because a tuple with optional elements has a length that's a range, so we don't know at what index any subsequent values would be at. +You can still type this value as the appropriate `Array` type - only the tuple view of the value is affected. + +```js flow-check +const a: [foo?: 1] = []; +const b = [0, ...a, 2]; // At runtime this is `[0, 2]` +(b: [0, 1 | void, 2]); // ERROR +(b: Array); // OK + +const c: [0, foo?: 1] = [0]; +const d: [bar?: 2] = [2]; +const e = [...c, ...d]; // At runtime this is `[0, 2]` +(e: [0, foo?: 1, bar?: 2]); // ERROR +(e: Array); // OK +``` + +## Adoption + +To use labeled tuple elements (including optional elements and variance annotations on elements) and tuple spread elements, +you need to upgrade your infrastructure so that it supports the syntax: + +- `flow` and `flow-parser`: 0.212.0 +- `prettier`: 3 +- `babel` with `babel-plugin-syntax-hermes-parser`. See [our Babel guide](../../tools/babel/) for setup instructions. +- `eslint` with `hermes-eslint`. See [our ESLint guide](../../tools/eslint/) for setup instructions. diff --git a/_src/types/type-guards.md b/_src/types/type-guards.md new file mode 100644 index 00000000000..e94e9ed995f --- /dev/null +++ b/_src/types/type-guards.md @@ -0,0 +1,222 @@ +--- +title: Type Guards +slug: /types/type-guards +--- + +Flow lets you define functions whose return expression encodes some type predicate over a parameter `param`. This predicate is annotated in place of a return type annotation as `param is PredicateType`. It declares that if the function returns `true` then `param` is of type `PredicateType`. + +The syntax for a function like this is: +```js +function predicate(param: InputType): param is PredicateType { + return ; +} +``` +The type of this function can also be written in terms of a type guard annotation: +```js +type PredicateFunc = (param: InputType) => param is PredicateType; +``` + + +## Basic Usage {#toc-basic-usage} + +Let's see a simple example where we define a type guard function and then use it to refine some values. + +### Defining a type guard function + +```js flow-check +type A = { type: "A"; data: string }; +type B = { type: "B"; data: number }; +type AorB = A | B; + +function isA(value: AorB): value is A { + return value.type === "A"; +} +``` +We have defined a data type `AorB` that is a disjoint union of two types `A` and `B` that each have a property `type` used as tag. + +We have also written a *user defined type guard* function `isA` defined over objects of type `AorB`. This function returns `true` when the value of of the `type` property of its input is `"A"`. Using the definitions of `A` and `B`, Flow can prove that when the value of `type` is `"A"` then the type of `value` will be `A`. + +### Using a type guard function to refine values + +Functions that have a declared type guard can be used to refine values in conditionals. In the example above, we can use `isA` to refine a variable of type `AorB` to just `A`: + +```js flow-check +type A = { type: "A"; data: string }; +type B = { type: "B"; data: number }; +type AorB = A | B; + +function isA(value: AorB): value is A { + return value.type === "A"; +} + +function test(x: AorB) { + if (isA(x)) { + // `x` has now been refined to type A. + // We can assign it variables of type A ... + const y: A = x; + // ...and access A's properties through `x` + const stringData: string = x.data; + + // As a sanity check, the following assignment to B will error + const error: B = x; + } +} +``` +In the then-branch of the conditional `if (isA(x))`, `x` will have the type `A`. + + + + +## Refine with `Array.filter` + +Flow recognizes when you call `filter` on an array of type `Array` with a callback function that holds a type guard with type `(value: T) => value is S`. +It will use this to produce an output array of type `Array`. Note that `S` needs to be a subtype of the type of the array element `T`. + +For example +```js flow-check +type Success = $ReadOnly<{type: 'success', value: 23}>; +type Error = $ReadOnly<{type: 'error', error: string}>; + +type Response = + | Success + | Error + +function filterSuccess(response: Array): Array { + return response.filter( + (response): response is Success => response.type === 'success' + ); +} + +function filterError1(response: Array): Array { + const result = response.filter( + (response): response is Success => response.type === 'success' + ); + // The following is expected to error + return result; +} + +function filterError2(response: Array): Array { + const result = response.filter( + // The following is expected to error + (response): response is Error => response.type === 'success' + ); + return result; +} +``` +In `filterError1`, filtering produces `Array` that is not compatible with the expected return type `Array`. + +In `filterError2`, the predicate `response.type === 'success'` is used to refine `Response`s to `Success`s, not `Error`s. + + +## Defining Type Guard Functions {#toc-restrictions-of-type-guard-functions} + +To ensure that refinement with type guard functions is sound, Flow runs a number of checks associated with these functions. + +### Predicate parameter is a regular parameter to the function + +In a type guard annotation of the form `parameter is Type`, `parameter` needs to belong to the current function's parameter list. +```js flow-check +function missing(param: mixed): prop is number { + return typeof param === "number"; +} +``` + +It cannot be a parameter bound in a destructuring pattern, or a rest paramter: +```js flow-check +function destructuring({prop}: {prop: mixed}): prop is number { + return typeof prop === "number"; +} +``` +```js flow-check +function rest(...value: Array): value is Array { + return Array.isArray(value); +} +``` +### Predicate type is consistent with the parameter type + +The type guard `Type` needs to be compatible with the type of the parameter. In other words, given a definition +```js +function isT(x: ParamType): x is Type { + return ... +} +``` +Flow will check that `Type` is a subtype of `ParamType`. So the following will be an error: +```js flow-check +function isNumber(x: string): x is number { + return typeof x === "number"; +} +``` + +### Type guard function returns boolean + +A type guard function needs to return a boolean expression. The following are invalid declarations: +```js flow-check +function isNumberNoReturn(x: string): x is string {} +``` +```js flow-check +function nonMaybe(x: ?V): x is V { + return x; +} +``` +A correct version of `nonMaybe` would be +```js flow-check +function nonMaybe(x: ?V): x is V { + return !!x; +} +``` + +### Predicate type is consistent with refined type + +In addition to the above checks, Flow also ensures that the declared type guard is consistent with the check happening in the body of the function. To establish this it needs to guarantee two things: + +1. The type of the refined parameter at the return location *after* the predicate of the return expression has been applied is a subtype of the guard type. For example, the following definitions are correct: +```js flow-check +function numOrStr(x: mixed): x is number | string { + return (typeof x === "number" || typeof x === "string"); +} + +function numOrStrWithException(x: mixed): x is number | string { + if (typeof x === "number") { + return true; + } else { + if (typeof x === "string") { + return true; + } else { + throw new Error(""); + } + } +} +``` +But in the following Flow will raise errors: +```js flow-check +function numOrStrError(x: mixed): x is number | string { + return (typeof x === "number" || typeof x === "boolean"); +} +``` + +2. The parameter that is refined cannot be reassigned in the body of the type guard function. Therefore the following are errors: +```js flow-check +function isNumberError1(x: mixed): x is number { + x = 1; + return typeof x === "number"; +} +``` +```js flow-check +function isNumberError2(x: mixed): x is number { + function foo() { + x = 1; + } + foo(); + return typeof x === "number"; +} +``` + + +## Adoption {#toc-adoption} + +To use type guards, you need to upgrade your infrastructure so that it supports the syntax: + +- `flow` and `flow-parser`: 0.209.1. Between v0.209.1 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the `[options]` heading, add `type_guards=true`. +- `prettier`: 3 +- `babel` with `babel-plugin-syntax-hermes-parser`. See [our Babel guide](../../tools/babel/) for setup instructions. +- `eslint` with `hermes-eslint`. See [our ESLint guide](../../tools/eslint/) for setup instructions. diff --git a/_src/types/typeof.md b/_src/types/typeof.md new file mode 100644 index 00000000000..783f8653b75 --- /dev/null +++ b/_src/types/typeof.md @@ -0,0 +1,115 @@ +--- +title: Typeof Types +slug: /types/typeof +--- + +JavaScript has a `typeof` operator which returns a string describing a value. + +```js flow-check +typeof 1 === 'number' +typeof true === 'boolean' +typeof 'three' === 'string' +``` + +However it is limited in that this string only describes so much about the type. + +```js flow-check +typeof {foo: true} === 'object' +typeof null === 'object' +typeof [true, false] === 'object' +``` + +In Flow, there is a similar `typeof` type operator, but it's much more powerful. + +## `typeof` type syntax {#toc-typeof-type-syntax} + + +The `typeof` operator returns the Flow type of a given value to be used as a type. + +```js flow-check +let num1 = 42; +let num2: typeof num1 = 3.14; // Works! +let num3: typeof num1 = 'world'; // Error! + +let bool1 = true; +let bool2: typeof bool1 = false; // Works! +let bool3: typeof bool1 = 42; // Error! + +let str1 = 'hello'; +let str2: typeof str1 = 'world'; // Works! +let str3: typeof str1 = false; // Error! +``` + +You can use any value with `typeof`, as long as the arugment itself is a variable or member access: + +```js flow-check +let obj1 = {foo: 1, bar: true, baz: 'three'}; +let obj2: typeof obj1 = {foo: 42, bar: false, baz: 'hello'}; +let num: typeof obj1.bar = 1; + +let arr1 = [1, 2, 3]; +let arr2: typeof arr1 = [3, 2, 1]; + +type T = typeof {a: 1}; // Invalid! +``` + +## `typeof` inherits behaviors of inference {#toc-typeof-inherits-behaviors-of-inference} + +When you use `typeof`, you're taking the results of Flow's inference and +asserting it as a type. While this can be very useful, it can also lead to some +unexpected results. + +For example, when you use literal values in Flow, their inferred type is the +primitive that it belongs to. Thus, the number 42 has the inferred type of +`number`. You can see this when you use `typeof`. + +```js flow-check +let num1 = 42; +let num2: typeof num1 = 3.14; // Works! + +let bool1 = true; +let bool2: typeof bool1 = false; // Works! + +let str1 = 'hello'; +let str2: typeof str1 = 'world'; // Works! +``` + +However, this only happens with the inferred type. If you specify the literal +type, it will be used in `typeof`. + +```js flow-check +let num1: 42 = 42; +let num2: typeof num1 = 3.14; // Error! + +let bool1: true = true; +let bool2: typeof bool1 = false; // Error! + +let str1: 'hello' = 'hello'; +let str2: typeof str1 = 'world'; // Error! +``` + +## `typeof` inherits behaviors of other types {#toc-typeof-inherits-behaviors-of-other-types} + +There are many different types in Flow, some of these types behave differently +than others. These differences make sense for that particular type but not for +others. + +When you use `typeof`, you're inserting another type with all of its behaviors. +This can make `typeof` seem inconsistent where it is not. + +For example, if you use `typeof` with a class you need to remember that classes +are *nominally* typed instead of *structurally* typed. So that two classes with +the same exact shape are not considered equivalent. + +```js flow-check +class MyClass { + method(val: number) { /* ... */ } +} + +class YourClass { + method(val: number) { /* ... */ } +} + +let test1: typeof MyClass = YourClass; // Error! +let test2: typeof MyClass = MyClass; // Works! +``` diff --git a/_src/types/unions.md b/_src/types/unions.md new file mode 100644 index 00000000000..7527e47026a --- /dev/null +++ b/_src/types/unions.md @@ -0,0 +1,250 @@ +--- +title: Unions +slug: /types/unions +--- + +Sometimes it's useful to create a type which is ***one of*** a set of other +types. For example, you might want to write a function which accepts a set of +primitive value types. For this Flow supports **union types**. + +```js flow-check +function toStringPrimitives(value: number | boolean | string): string { + return String(value); +} + +toStringPrimitives(1); // Works! +toStringPrimitives(true); // Works! +toStringPrimitives('three'); // Works! + +toStringPrimitives({prop: 'val'}); // Error! +toStringPrimitives([1, 2, 3, 4, 5]); // Error! +``` + +## Union type syntax {#toc-union-type-syntax} + +Union types are any number of types which are joined by a vertical bar `|`. + +```js +Type1 | Type2 | ... | TypeN +``` + +You may also add a leading vertical bar which is useful when breaking union +types onto multiple lines. + +```js +type Foo = + | Type1 + | Type2 + | ... + | TypeN +``` + +Each of the members of a union type can be any type, even another union type. + +```js flow-check +type Numbers = 1 | 2; +type Colors = 'red' | 'blue' + +type Fish = Numbers | Colors; +``` + +If you have enabled [Flow Enums](../../enums/), they may be an alternative to unions of [literal types](../literals). + +## Union shorthands + +The union of some type `T` with `null` or `void` is common, so we provide a shorthand called [maybe types](../maybe), by using the `?` prefix. The type `?T` is equivalent to `T | null | void`: + +```js flow-check +function maybeString(x: ?string) { /* ... */ } +maybeString('hi'); // Works! +maybeString(null); // Works! +maybeString(undefined); // Works! +``` + +The union of every single type that exists is the [`mixed`](../mixed) type: + +```js flow-check +function everything(x: mixed) { /* ... */ } +everything(1); // Works! +everything(true); // Works! +everything(null); // Works! +everything({foo: 1}); // Works! +everything(new Error()); // Works! +``` + +## Unions & Refinements {#toc-unions-refinements} + +When you have a value which is a union type it's often useful to break it apart +and handle each individual type separately. With union types in Flow you can +[refine](../../lang/refinements) the value down to a single type. + +For example, if we have a value with a union type that is a `number`, a +`boolean`, or a `string`, we can treat the number case separately by using +JavaScript's `typeof` operator. + +```js flow-check +function toStringPrimitives(value: number | boolean | string) { + if (typeof value === 'number') { + return value.toLocaleString([], {maximumSignificantDigits: 3}); // Works! + } + // ... +} +``` + +By checking the `typeof` our value and testing to see if it is a `number`, Flow +knows that inside of that block it is only a number. We can then write code +which treats our value as a number inside of that block. + +## Union types requires one in, but all out {#toc-union-types-requires-one-in-but-all-out} + +When calling a function that accepts a union type we must pass in ***one of +those types***. But inside of the function we are required to handle ***all of +the possible types***. + +Let's rewrite the function to handle each type individually using [refinements](../../lang/refinements). + +```js flow-check +function toStringPrimitives(value: number | boolean | string): string { + if (typeof value === 'number') { + return String(value); + } else if (typeof value === 'boolean') { + return String(value); + } + return value; // If we got here, it's a `string`! +} +``` + +If we do not handle each possible type of our value, Flow will give us an error: + +```js flow-check +function toStringPrimitives(value: number | boolean | string): string { + if (typeof value === 'number') { + return String(value); + } + return value; // Error! +} +``` + +## Disjoint Object Unions {#toc-disjoint-object-unions} + +There's a special type of union in Flow known as a "disjoint object union" which can +be used with [refinements](../../lang/refinements/). These disjoint object unions are +made up of any number of object types which are each tagged by a single property. + +For example, imagine we have a function for handling a response from a server +after we've sent it a request. When the request is successful, we'll get back +an object with a `type` property set to `'success'` and a `value` that we've +updated. + +```js +{type: 'success', value: 23} +``` + +When the request fails, we'll get back an object with `type` set to `'error'` +and an `error` property describing the error. + +```js +{type: 'error', error: 'Bad request'} +``` + +We can try to express both of these objects in a single object type. However, +we'll quickly run into issues where we know a property exists based on the +`type` property but Flow does not. + +```js flow-check +type Response = { + type: 'success' | 'error', + value?: number, + error?: string +}; + +function handleResponse(response: Response) { + if (response.type === 'success') { + const value: number = response.value; // Error! + } else { + const error: string = response.error; // Error! + } +} +``` + +Trying to combine these two separate types into a single one will only cause us +trouble. + +Instead, if we create a union type of both object types, Flow will be able to +know which object we're using based on the `type` property. + +```js flow-check +type Response = + | {type: 'success', value: 23} + | {type: 'error', error: string}; + +function handleResponse(response: Response) { + if (response.type === 'success') { + const value: number = response.value; // Works! + } else { + const error: string = response.error; // Works! + } +} +``` + +In order to use this pattern, there must be a key that is in every object in your union (in our example above, `type`), +and every object must set a different [literal type](../literals) for that key (in our example, the string `'success'`, and the string `'error'`). +You can use any kind of literal type, including numbers and booleans. + +### Disjoint object unions with exact types {#toc-disjoint-unions-with-exact-types} + +Disjoint unions require you to use a single property to distinguish each object +type. You cannot distinguish two different [inexact objects](../objects/#exact-and-inexact-object-types) by different properties. + +```js flow-check +type Success = {success: true, value: boolean, ...}; +type Failed = {error: true, message: string, ...}; + +function handleResponse(response: Success | Failed) { + if (response.success) { + const value: boolean = response.value; // Error! + } +} +``` + +This is because in Flow it is okay to pass an object value with more properties +than the inexact object type expects (because of [width subtyping](../../lang/width-subtyping/)). + +```js flow-check +type Success = {success: true, value: boolean, ...}; +type Failed = {error: true, message: string, ...}; + +function handleResponse(response: Success | Failed) { + // ... +} + +handleResponse({ + success: true, + error: true, + value: true, + message: 'hi' +}); +``` + +Unless the objects somehow conflict with one another there is no way to +distinguish them. + +However, to get around this you could use **exact object types**. + +```js flow-check +type Success = {success: true, value: boolean}; +type Failed = {error: true, message: string}; + +type Response = Success | Failed; + +function handleResponse(response: Response) { + if (response.success) { + const value: boolean = response.value; + } else { + const message: string = response.message; + } +} +``` + +With exact object types, we cannot have additional properties, so the objects +conflict with one another and we are able to distinguish which is which. diff --git a/_src/types/utilities.md b/_src/types/utilities.md new file mode 100644 index 00000000000..d5d2d1d5367 --- /dev/null +++ b/_src/types/utilities.md @@ -0,0 +1,771 @@ +--- +title: Utility Types +slug: /types/utilities +--- + +import {SinceVersion, UntilVersion} from '../../components/VersionTags'; + +Flow provides a set of utility types to operate on other types to create new types. + +## `$Keys` {#toc-keys} + +You can extract the type of the keys from an [object type](../objects). Typically this will be a [union](../unions) of [string literal](../literals) types: + +```js flow-check +const countries = { + US: "United States", + IT: "Italy", + FR: "France" +}; + +type Country = $Keys; + +const italy: Country = 'IT'; // Works +const nope: Country = 'nope'; // Error! +``` + +In the example above, the type of `Country` is equivalent to `type Country = 'US' | 'IT' | 'FR'`, but Flow was able to extract it from the keys of `countries`. + +If you want to create an enum type, [Flow Enums](../../enums) might be a better fit for your use-case. + +## `$Values` {#toc-values} + +`$Values` represents the union type of all the value types of the enumerable properties in an [object type](../objects/): + +```js flow-check +type Props = { + name: string, + age: number, +}; + +// The following two types are equivalent: +type PropValues = string | number; +type Prop$Values = $Values; + +const name: Prop$Values = 'Jon'; // Works +const age: Prop$Values = 42; // Works +const fn: Prop$Values = true; // Error! +``` + +Note that using `$Values` on the [`typeof`](../typeof) an object literal will result in a type more general than you might expect: + +```js flow-check +const obj = { + foo: 1, + bar: 2, +}; + +function acceptsValues(x: $Values) { /* ... */ } + +acceptsValues(1); // Works +acceptsValues(3); // Works, because the type was interpreted as `number`. +``` + +This behavior changes if you use `Object.freeze` on the object literal expression: + +```js flow-check +const obj = Object.freeze({ + foo: 1, + bar: 2, +}); + +function acceptsValues(x: $Values) { /* ... */ } + +acceptsValues(1); // Works +acceptsValues(3); // Error! Because the type was interpreted as `1 | 2`. +``` + +If you want to create an enum type, [Flow Enums](../../enums) might be a better fit for your use-case. + +## `$ReadOnly` {#toc-readonly} + +`$ReadOnly` is a type that represents the read-only version of a given [object type](../objects/) +or [tuple type](../tuples) `T` (support for tuples is for Flow ). +A read-only object type is an object type whose keys are all [read-only](../objects/#read-only-object-properties). +Similarly, a read-only tuple is one where each element is [read-only](../tuples/#variance-annotations-and-read-only-tuples). + +This means that the following are equivalent: +```js flow-check +type ReadOnlyObj = { + +key: number, // read-only field, marked by the `+` annotation +}; +type ReadOnlyTuple = [+foo: number]; +``` +→ +```js flow-check +type ReadOnlyObj = $ReadOnly<{ + key: number, +}>; +type ReadOnlyTuple = $ReadOnly<[number]>; +``` + +This is useful when you need to use a read-only version of an object type you've already defined, without manually having to re-define and annotate each key as read-only. For example: + +```js flow-check +type Props = { + name: string, + age: number, +}; + +type ReadOnlyProps = $ReadOnly; + +function render(props: ReadOnlyProps) { + const {name, age} = props; // Works + props.age = 42; // Error! +} +``` + +Additionally, other utility types, such as [`$ObjMap`](#toc-objmap), may strip any read/write annotations, so `$ReadOnly` is a handy way to quickly make the object read-only again after operating on it: + +```js flow-check +type Obj = { + +key: number, +}; + +type MappedObj = $ReadOnly<$ObjMap(T) => Array>> // Still read-only +``` + +The `$ReadOnly` utility works on object and tuple types. +If you want to make other types read-only, you can use one of the following: +- `Array` -> [`$ReadOnlyArray`](../arrays/#toc-readonlyarray) +- `Set` -> `$ReadOnlySet` +- `Map` -> `$ReadOnlyMap` +- `WeakSet` -> `$ReadOnlyWeakSet` +- `WeakMap` -> `$ReadOnlyWeakMap` + +## `Partial` {#toc-partial} + +This utility converts all of an object or interface's named fields to be optional, +while maintaining all the object's other properties (e.g. exactness, variance). +Use this utility instead of `$Shape`. + +Since Flow , it also converts all of a tuple type's elements to be [optional](../tuples/#optional-tuple-elements). + +Example for objects: +```js flow-check +type Person = { + name: string, + age: number, +}; +type PartialPerson = Partial; +// Above equivalent to `{name?: string, age?: number}` + +const a: PartialPerson = {}; // OK +const b: PartialPerson = {name: 'George'}; // OK +const c: PartialPerson = {name: 'George', age: 123}; // OK + +(c: Person); // ERROR: `PersonDetails` is not a `Person` (unlike with `$Shape`) +``` + +For tuples: +```js flow-check +type AllRequired = [number, string]; +([]: Partial); // OK: like `[a?: number, b?: string]` now +``` + +A object or tuple of type `T` cannot be supplied to `Partial`, due to mutability. You can resolve this by making the object [read-only](#toc-readonly): + +```js flow-check +type Person = { + name: string, + age: number, +}; + +const person: Person = {name: 'George', age: 123}; + +function noPerson(o: Partial) { + // Can mutate: + o.name = undefined; +} +noPerson(person); // Error! + +function okPerson(o: $ReadOnly>) { + // Can't mutate - it's read-only! +} +okPerson(person); // Works +``` + +Note: Up until Flow version 0.201, this utility type was named `$Partial`. + +## `Required` {#toc-required} + +The `Required` utility type is the opposite of [`Partial`](#toc-partial): +it converts all of an object or interface’s optional fields to be required. + +Since Flow , it also converts all of a tuple type's elements to be [required](../tuples/#optional-tuple-elements). + +Example for objects: +```js flow-check +type PartialPerson = { + name?: string, + age?: number, +}; +type Person = Required; +// Above equivalent to `{name: string, age: number}` + +const a: Person = {name: 'George', age: 123}; // OK +const b: Person = {age: 123}; // ERROR: missing `name` property +``` + +For tuples: +```js flow-check +type AllOptional = [a?: number, b?: string]; +([]: Required); // ERROR: like `[a: number, b: string]` now +``` + +## `ReturnType` {#toc-return-type} + +This utility type extracts the return type from a given function type. + +```js flow-check +declare function f(s: string, n: number): boolean; +type Bool = ReturnType; +(true: Bool); +(1: Bool); // Error: number is not boolean +``` + +## `Parameters` {#toc-parameters} + +This utility type extracts the parameter types from a given function type into a [tuple type](../tuples/). + +```js flow-check +declare function f(s: string, n: number): boolean; +type Tuple = Parameters; // Evaluates to [string, number] +('s': Tuple[0]); +(1: Tuple[1]); +(false: Tuple[2]); // Error: tuple type only has two elements +``` + +## `Exclude` {#toc-exclude} + +This utility type excludes all subtypes of `U` from `T`. + +```js flow-check +type T = Exclude<1 | 2 | 3 | 4, 1 | 3>; // evaluates to 2 | 4 +(1: T); // error +(2: T); // ok +(3: T); // error +(4: T); // ok +``` + +## `Extract` {#toc-extract} + +This utility type retains only subtypes of `U` from `T`. + +```js flow-check +declare class Car {} +declare class Animal {} +declare class Dog extends Animal {} +declare class Cat extends Animal {} +type T = Extract; // evaluates to Dog | Cat +(new Car(): T); // error +(new Dog(): T); // ok +(new Cat(): T); // ok +``` + +## `ThisParameterType` {#toc-this-parameter-type} + +This utility type extracts the type of the `this` parameter of a given function type. + +```js flow-check +type T = ThisParameterType<(this: number, bar: string) => void>; // Evaluates to number +('1': T); // error +(2: T); // ok +``` + +## `OmitThisParameter` {#toc-omit-this-parameter-type} + +This utility type removes the `this` parameter from a given function type. + +```js flow-check +type HasThisParamFun = (this: number, bar: string) => void; +type NoThisParamFun = OmitThisParameter // Evaluates to (bar: string) => void +declare const hasThisParam: HasThisParamFun; +declare const noThisParam: NoThisParamFun; + +hasThisParam(''); // error: global object is not number +noThisParam(''); // ok: no this type requirement +``` + +## `Pick` {#toc-pick} + +This utility type allows you to generate an object type using a subset of the fields from +another object type. + +```js flow-check +type O = {foo: number, bar: string, baz: boolean}; +type FooAndBar = Pick; + +declare const fooAndBar: FooAndBar; +fooAndBar.baz; // error: baz is missing +(fooAndBar.foo: number); // ok +(fooAndBar.bar: string); // ok +``` + +## `Omit` {#toc-omit} + +This utility type allows you to generate an object type by omitting the specified fields from +another object type. +```js flow-check +type O = {foo: number, bar: string, baz: boolean}; +type JustBaz= Omit; + +declare const justBaz: JustBaz; +(justBaz.baz: boolean); // ok +justBaz.foo; // error: missing foo +justBaz.bar; // error: missing bar +``` + +## `Record` {#toc-record} + +This utility type allows you to generate an object type from a union of keys with the given +`Type` for each field. +```js flow-check +type NumberRecord = Record<'foo' | 'bar', number>; +declare const numberRecord: NumberRecord; +(numberRecord.foo: number); // ok +(numberRecord.bar: number); // ok +numberRecord.baz; // error +``` + +Note that `Record` is different than using an indexer: +```js flow-check +type NumberRecord = Record<'foo' | 'bar', number>; +type IndexedObject = {['foo' | 'bar']: number}; + +// Record uses explicit fields, which means they are all required +const rec: Record = {}; // error +// Indexers do not have this same requirement +const idx: IndexedObject = {}; // no error +``` + +## `$Exact` {#toc-exact} + +You can use `$Exact` to make an [inexact object type](../objects/#exact-and-inexact-object-types) exact: + +```js flow-check +type InexactUser = {name: string, ...}; +type ExactUser = $Exact; + +const user = {name: 'John Wilkes Booth'}; +// These will both be satisfied because they are equivalent: +const a: ExactUser = user; +const b: {name: string} = user; +``` + +This is an utility type to avoid, as it's clearer and more concinse to start off with an exact object type and make it inexact using [object type spread](../objects/#object-type-spread) +(if you wish to have both inexact and exact variants of one object type): + +```js flow-check +type ExactUser = {name: string}; +type InexactUser = {...ExactUser, ...}; + +const user = {name: 'John Wilkes Booth'}; +const a: ExactUser = user; +``` + +## `$Diff` {#toc-diff} + +As the name hints, `$Diff` is the type representing the set difference of `A` and `B`, i.e. `A \ B`, where `A` and `B` are both [object types](../objects/). Here's an example: + +```js flow-check +type Props = {name: string, age: number, ...}; +type DefaultProps = {age: number}; +type RequiredProps = $Diff; + +function setProps(props: RequiredProps) { + // ... +} + +setProps({name: 'foo'}); // Works +setProps({name: 'foo', age: 42, baz: false}); // Works, you can pass extra props too +setProps({age: 42}); // Error! `name` is required +``` + +As you may have noticed, the example is not a random one. +`$Diff` is exactly what the React definition file uses to define the type of the props accepted by a React Component. + +Note that `$Diff` will error if the object you are removing properties from does not have the property being removed, i.e. if `B` has a key that doesn't exist in `A`: + +```js flow-check +type Props = {name: string, age: number}; +type DefaultProps = {age: number, other: string}; +type RequiredProps = $Diff; // Error! + +function setProps(props: RequiredProps) { + props.name; + // ... +} +``` + +As a workaround, you can specify the property not present in `A` as optional. For example: + +```js flow-check +type A = $Diff<{}, {nope: number}>; // Error! +type B = $Diff<{}, {nope: number | void}>; // Works + +const a: A = {}; +const b: B = {}; +``` + +## `$Rest` {#toc-rest} + +`$Rest` is the type that represents the runtime object rest operation, e.g.: `const {foo, ...rest} = obj`, where `A` and `B` are both [object types](../objects/). +The resulting type from this operation will be an object type containing `A`'s *own* properties that are not *own* properties in `B`. +In flow, we treat all properties on [exact object types](../objects/#exact-and-inexact-object-types) as [own](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty). +For inexact objects, a property may or may not be own. + +For example: + +```js flow-check +type Props = {name: string, age: number}; + +const props: Props = {name: 'Jon', age: 42}; +const {age, ...otherProps} = props; +(otherProps: $Rest); +otherProps.age; // Error! +``` + +The main difference with [`$Diff`](#toc-diff), is that `$Rest` aims to represent the true runtime rest operation, +which implies that exact object types are treated differently in `$Rest`. +For example, `$Rest<{n: number}, {...}>` will result in `{n?: number}` because an in-exact empty object may have an `n` property, +while `$Diff<{n: number}, {...}>` will result in `{n: number}`. + +## `$NonMaybeType` {#toc-nonmaybe} + +`$NonMaybeType` converts a type `T` to a non-[maybe type](../maybe). +In other words, the values of `$NonMaybeType` are the values of `T` except for `null` and `undefined`. + +```js flow-check +type MaybeName = ?string; +type Name = $NonMaybeType; + +('Gabriel': MaybeName); // Works +(null: MaybeName); // Works +('Gabriel': Name); // Works +(null: Name); // Error! `null` can't be annotated as Name because Name is not a maybe type +``` + +## `$KeyMirror` {#toc-keymirror} + +`$KeyMirror` is a special case of `$ObjMapi`, when `F` is the identity +function type, ie. `(K) => K`. In other words, it maps each property of an object +to the type of the property key. Instead of writing `$ObjMapi(K) => K>`, +you can write `$KeyMirror`. For example: +```js +const obj = { + a: true, + b: 'foo' +}; + +declare function run(o: O): $KeyMirror; + +// newObj is of type {a: 'a', b: 'b'} +const newObj = run(obj); + +(newObj.a: 'a'); // Works +(newObj.b: 'a'); // Error! String 'b' is incompatible with 'a' +``` + +Tip: Prefer using `$KeyMirror` instead of `$ObjMapi` (if possible) to fix certain +kinds of `[invalid-exported-annotation]` errors. + +## `$TupleMap` {#toc-tuplemap} + +`$TupleMap` takes an iterable type `T` (e.g.: [`Tuple`](../tuples) or [`Array`](../arrays)), and a [function type](../functions) `F`, +and returns the iterable type obtained by mapping the type of each value in the iterable with the provided function type `F`. +This is analogous to the JavaScript function `map`. + +Following our example from [`$ObjMap`](#toc-objmap), let's assume that `run` takes an array of functions, instead of an object, and maps over them returning an array of the function call results. We could annotate its return type like this: + +```js flow-check +// Function type that takes a `() => V` and returns a `V` (its return type) +type ExtractReturnType = (() => V) => V + +function run A>>(iter: I): $TupleMap { + return iter.map(fn => fn()); +} + +const arr = [() => 'foo', () => 'bar']; +(run(arr)[0]: string); // Works +(run(arr)[1]: string); // Works +(run(arr)[1]: boolean); // Error! +``` + +## `Class` {#toc-class} + +Given a type `T` representing instances of a class `C`, the type `Class` is the type of the class `C`. +For example: + +```js flow-check +class Store {} +class ExtendedStore extends Store {} +class Model {} + +function makeStore(storeClass: Class) { + return new storeClass(); +} + +(makeStore(Store): Store); +(makeStore(ExtendedStore): Store); +(makeStore(Model): Model); // Error! +``` + +For classes that take type parameters, you must also provide the parameter. For example: + +```js flow-check +class ParamStore { + constructor(data: T) {} +} + +function makeParamStore(storeClass: Class>, data: T): ParamStore { + return new storeClass(data); +} +(makeParamStore(ParamStore, 1): ParamStore); +(makeParamStore(ParamStore, 1): ParamStore); // Error! +``` + +## `$Exports` {#toc-exports} + +The following are functionally equivalent + +```js +import typeof * as T from 'my-module'; +``` + +```js +type T = $Exports<'my-module'>; +``` + +The advantage of the `$Exports` syntax is that you can `export` the type on the same line +```js +export type T = $Exports<'my-module'>; +``` + +where as you would otherwise need to export an alias in the `import typeof` case +```js +import typeof * as T from 'my-module'; +export type MyModuleType = T; +``` + +## Deprecated utility types + +### `$PropertyType` {#toc-propertytype} + +**WARNING:** `$PropertyType` is deprecated as of Flow version 0.155, and will be removed in a future version of Flow. + +`$PropertyType` is equivalent to the `T['k']` [indexed access type](../indexed-access). + +### `$ElementType` {#toc-elementtype} + +**WARNING:** `$ElementType` is deprecated as of Flow version 0.155, and will be removed in a future version of Flow. + +`$ElementType` is equivalent to the `T[K]` [indexed access type](../indexed-access). + +### `$Partial` +A former alias of [Partial](#toc-partial). Support was removed in version 0.203. + +### `$Shape` {#toc-shape} + +NOTE: **Deprecated!** This utility is unsafe - please use [`Partial`](#toc-partial) documented above to make all of an object's fields optional. + +A variable of type `$Shape`, where `T` is some object type, can be assigned objects `o` +that contain a subset of the properties included in `T`. For each property `p: S` of `T`, +the type of a potential binding of `p` in `o` must be compatible with `S`. + +For example +```js flow-check +type Person = { + age: number, + name: string, +} +type PersonDetails = $Shape; + +const person1: Person = {age: 28}; // ERROR: missing `name` +const person2: Person = {name: 'a'}; // ERROR: missing `age` +const person3: PersonDetails = {age: 28}; // OK +const person4: PersonDetails = {name: 'a'}; // OK +const person5: PersonDetails = {age: 28, name: 'a'}; // OK +const person6: PersonDetails = {age: '28'}; // ERROR: string is incompatible with number +``` + +NOTE: `$Shape` is **not** equivalent to `T` with all its fields marked as optional. +In particular, Flow unsoundly allows `$Shape` to be used as a `T` in several +contexts. For example in + +```js +const personShape: PersonDetails = {age: 28}; +(personShape: Person); +``` +Flow will unsoundly allow this last cast to succeed. + +It is also not equivalent to itself in some contexts: + +```js flow-check +function f(input: $Shape): $Shape { + return input; // ERROR: `T` is incompatible with `$Shape` of `T` +} +``` + +This utility type is deprecated and will be deleted in the future - +use [`Partial`](#toc-partial) instead. + +### `$Call` {#toc-call} +NOTE: **Deprecated!** This utility is deprecated as of Flow version 0.208 - please use [Conditional Types](../conditional) or [Indexed Access Types](../indexed-access) to extract types instead. + +`$Call` is a type that represents the result of calling the given [function type](../functions) `F` with 0 or more arguments `T...`. +This is analogous to calling a function at runtime (or more specifically, it's analogous to calling [`Function.prototype.call`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call)), but at the type level; this means that function type calls happens statically, i.e. not at runtime. + +Let's see a couple of examples: +```js flow-check +// Takes an object type, returns the type of its `prop` key +type ExtractPropType = ({prop: T, ...}) => T; +type Obj = {prop: number}; +type PropType = $Call; // Call `ExtractPropType` with `Obj` as an argument +type Nope = $Call; // Error! Argument doesn't match `Obj`. + +(5: PropType); // Works +(true: PropType); // Error! PropType is a number +``` + +```js flow-check +// Takes a function type, and returns its return type +type ExtractReturnType = (() => R) => R; +type Fn = () => number; +type ReturnType = $Call; + +(5: ReturnType); // Works +(true: ReturnType); // Error! ReturnType is a number +``` + +`$Call` can be very powerful because it allows you to make calls in type-land that you would otherwise have to do at runtime. +The type-land calls happen statically and will be erased at runtime. + +```js flow-check +// Getting return types: +function getFirstValue(map: Map): ?V { + for (const [key, value] of map.entries()) { + return value; + } + return null; +} + +// Using $Call, we can get the actual return type of the function above: +type Value = $Call>; + +(5: Value); +(true: Value); // Error! Value is a `number` + +// We could generalize it further: +type GetMapValue = + $Call; + +(5: GetMapValue>); +(true: GetMapValue>); +(true: GetMapValue>); // Error! value is a `number` +``` + +### `$ObjMap` {#toc-objmap} +NOTE: **Deprecated!** This utility is deprecated as of Flow version 0.211- please use [Mapped Types](../mapped-types) instead. + +`ObjMap` takes an [object type](../objects) `T`, and a [function type](../functions) `F`, and returns the object type obtained by mapping the type of each value in the object with the provided function type `F`. In other words, `$ObjMap` will [call](#toc-call) (at the type level) the given function type `F` for every property value type in `T`, and return the resulting object type from those calls. + +Let's see an example. Suppose you have a function called `run` that takes an object of thunks (functions in the form `() => A`) as input: + +```js flow-check +function run) => mixed}>(o: O): $FlowFixMe { + return Object.keys(o).reduce<{[string]: (...$ReadOnlyArray) => mixed}>( + (acc, k) => ({...acc, [(k: string)]: o[k]()}), + {}, + ); +} +``` + +The function's purpose is to run all the thunks and return an object made of values. What's the return type of this function? + +The keys are the same, but the values have a different type, namely the return type of each function. +At a value level (the implementation of the function) we're essentially mapping over the object to produce new values for the keys. +How to express this at a type level? + +This is where `ObjMap` comes in handy + +```js flow-check +// let's write a function type that takes a `() => V` and returns a `V` (its return type) +type ExtractReturnType = (() => V) => V; + +declare function run) => mixed}>(o: O): $ObjMap; + +const o = { + a: () => true, + b: () => 'foo' +}; + +(run(o).a: boolean); // Works +(run(o).b: string); // Works +(run(o).b: boolean); // Error! `b` is a string +run(o).c; // Error! `c` was not in the original object +``` + +This is extremely useful for expressing the return type of functions that manipulate objects values. +You could use a similar approach (for instance) to provide the return type of bluebird's [`Promise.props`](http://bluebirdjs.com/docs/api/promise.props.html) function, +which is like `Promise.all` but takes an object as input. + +Here's a possible declaration of this function, which is very similar to our first example: + +```js flow-check +declare function props(promises: O): Promise<$ObjMap>; + +const promises = {a: Promise.resolve(42)}; +props(promises).then(o => { + (o.a: 42); // Works + (o.a: 43); // Error! Flow knows it's 42 +}); +``` + +### `$ObjMapi` {#toc-objmapi} +NOTE: **Deprecated!** This utility is deprecated as of Flow version 0.211- please use [Mapped Types](../mapped-types) instead. + +`ObjMapi` is similar to [`ObjMap`](#toc-objmap). The difference is that function +type `F` will be [called](#toc-call) with both the key and value types of the elements of +the object type `T`, instead of just the value types. For example: + +```js flow-check +const o = { + a: () => true, + b: () => 'foo' +}; + +type ExtractReturnObjectType = (K, () => V) => { k: K, v: V }; + +declare function run(o: O): $ObjMapi; + +(run(o).a: {k: 'a', v: boolean}); // Works +(run(o).b: {k: 'b', v: string}); // Works +(run(o).a: {k: 'b', v: boolean}); // Error! `a.k` is "a" +(run(o).b: {k: 'b', v: number}); // Error! `b.v` is a string +run(o).c; // Error! `c` was not in the original object +``` + +### `$ObjMapConst` {#toc-objmapconst} +NOTE: **Deprecated!** This utility is deprecated as of Flow version 0.211- please use [Mapped Types](../mapped-types) instead. + +`$ObjMapConst` is a special case of `$ObjMap`, when `F` is a constant +function type, e.g. `() => T`. Instead of writing `$ObjMap T>`, you +can write `$ObjMapConst`. For example: +```js +const obj = { + a: true, + b: 'foo' +}; + +declare function run(o: O): $ObjMapConst; + +// newObj is of type {a: number, b: number} +const newObj = run(obj); + +(newObj.a: number); // Works +(newObj.b: string); // Error! Property `b` is a number +``` + +Tip: Prefer using `$ObjMapConst` instead of `$ObjMap` (if possible) to fix certain +kinds of `[invalid-exported-annotation]` errors. diff --git a/_src/usage.md b/_src/usage.md new file mode 100644 index 00000000000..9731c6475ed --- /dev/null +++ b/_src/usage.md @@ -0,0 +1,88 @@ +--- +title: Usage +slug: /usage +--- + +Once you have [installed](../install/) Flow, you will want to get a feel of how to use Flow at the most basic level. For most new Flow projects, you will follow this general pattern: + +- [Initialize your project](#toc-initialize-your-project) with `flow init`. +- Start the [Flow background process](#toc-run-the-flow-background-process) with `flow`. +- [Determine](#toc-prepare-your-code-for-flow) which files Flow will monitor with `// @flow`. +- [Write Flow code](#toc-write-flow-code) for your project. +- [Check your code](#toc-check-your-code) for type errors. + +### Initialize Your Project {#toc-initialize-your-project} + +Preparing a project for Flow requires only one command: + +```sh +flow init +``` + +Run this command at the top level of your project to create one, empty file called [`.flowconfig`](../config/). At its most basic level, `.flowconfig` tells the Flow background process the root of where to begin checking Flow code for errors. + +And that is it. Your project is now Flow-enabled. + +> It is common to have an empty `.flowconfig` file for your project. However, you can [configure and customize Flow](../config/) in many ways through options available to be added to `.flowconfig`. + +### Run the Flow Background Process {#toc-run-the-flow-background-process} + +The core benefit to Flow is its ability to quickly check your code for errors. Once you have enabled your project for Flow, you can start the process that allows Flow to check your code incrementally and with great speed. + +```sh +flow status +``` + +This command first starts a background process that will check all [Flow files](#toc-prepare-your-code-for-flow) for errors. The background process continues running, monitoring changes to your code and checking those changes incrementally for errors. + +> You can also type `flow` to accomplish the same effect as `status` is the default flag to the `flow` binary. + +> Only one background process will be running at any given time, so if you run `flow status` multiple times, it will use the same process. + +> To stop the background process, run `flow stop`. + +### Prepare Your Code for Flow {#toc-prepare-your-code-for-flow} + +The Flow background process monitors all Flow files. However, how does it know which files are Flow files and, thus, should be checked? Placing the following **before any code** in a JavaScript file is the flag the process uses to answer that question. + +```js flow-check +// @flow +``` + +This flag is in the form of a normal JavaScript comment annotated with `@flow`. The Flow background process gathers all the files with this flag and uses the type information available from all of these files to ensure consistency and error free programming. + +> You can also use the form `/* @flow */` for the flag as well. + +> For files in your project without this flag, the Flow background process skips and ignores the code (unless you call `flow check --all`, which is beyond the scope of basic usage). + +### Write Flow Code {#toc-write-flow-code} + +Now that all the setup and initialization is complete, you are ready to write actual Flow code. For each file that you have flagged with `// @flow`, you now have the full power of Flow and its type-checking available to you. Here is an example Flow file: + +```js flow-check +function foo(x: ?number): string { + if (x) { + return x; + } + return "default string"; +} +``` + +Notice the types added to the parameter of the function along with a return type at the end of the function. You might be able to tell from looking at this code that there is an error in the return type since the function can also return a `number`. However, you do not need to visually inspect the code since the Flow background process will be able to catch this error for you when you [check your code](#toc-check-your-code). + +### Check Your Code {#toc-check-your-code} + +The great thing about Flow is that you can get near real-time feedback on the state of your code. At any point that you want to check for errors, just run: + +```sh +# equivalent to `flow status` +flow +``` + +The first time this is run, the [Flow background process](#toc-run-flow-background-process) will be spawned and all of your Flow files will be checked. Then, as you continue to iterate on your project, the background process will continuously monitor your code such that when you run `flow` again, the updated result will be near instantaneous. + +For the [code above](#toc-write-flow-code), running `flow` will yield: + +```sh +3:12-3:12: Cannot return `x` because number is incompatible with string. [incompatible-return] +``` diff --git a/assets/css/styles.aaa3b687.css b/assets/css/styles.aaa3b687.css new file mode 100644 index 00000000000..5c97286612b --- /dev/null +++ b/assets/css/styles.aaa3b687.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.monaco-editor,html{-webkit-text-size-adjust:100%}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:rgba(0,0,0,.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,.2),0 2px 4px 0 rgba(0,0,0,.1);--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:rgba(0,0,0,.03);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#dc2319;--ifm-color-primary-dark:#dc2319;--ifm-color-primary-darker:#dc2319;--ifm-color-primary-darkest:#dc2319;--ifm-color-primary-light:#dc2319;--ifm-color-primary-lighter:#dc2319;--ifm-color-primary-lightest:#dc2319;--ifm-navbar-height:3.5rem;--ifm-navbar-padding-vertical:0;--ifm-code-font-size:95%;--flow-yellow:#e8bd36;--flow-gray-darker:#384048;--flow-gray-darkest:#2d343a;--flow-green:#9cd732;--flow-red:#dc2319;--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:transparent;--docusaurus-collapse-button-bg-hover:rgba(0,0,0,.1);--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12);--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base);--sash-size:4px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:transparent}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base)}body{word-wrap:break-word}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.tabItem_LNqP{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6,.featureDecorationRise_hJ0D:after{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid rgba(0,0,0,.1);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}.monaco-editor .editor-widget input,.monaco-hover .hover-contents a.code-link,.monaco-hover .hover-contents a.code-link:hover,.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator,a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}.container_lyt7,.container_lyt7>svg,.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label,img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul,.tabList__CuJ{margin-bottom:var(--ifm-leading)}.markdown li{word-wrap:break-word}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.monaco-action-bar.vertical,.text--left{text-align:left}.text--justify{text-align:justify}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone,.monaco-inputbox-container,.text--right,.tryEditorConfigInputCell_xR5n{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.featureHeading_TLGJ,.featuretteHeading_haRC,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.monaco-description-button .monaco-button-description,.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text,.monaco-icon-label.italic:after,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.text--italic{font-style:italic}.monaco-editor .peekview-widget .head .peekview-title .filename,.monaco-editor .peekview-widget .head .peekview-title .meta,.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:rgba(53,120,229,.15);--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:rgba(235,237,240,.15);--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:rgba(0,164,0,.15);--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:rgba(84,199,236,.15);--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:rgba(255,186,0,.15);--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:rgba(250,56,62,.15);--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{-webkit-text-decoration-color:var(--ifm-alert-border-color);text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.flowErrorUnderlineLeftPadding_BT3g,.monaco-action-bar.vertical .actions-container,.monaco-editor .mtkz,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .view-zones .view-lines .view-line span,.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs__link:-webkit-any-link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs__link:any-link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:transparent;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button,.quick-input-box{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor transparent;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child,.monaco-hover .code:first-child,.monaco-hover li>ul,.monaco-hover p:first-child,.monaco-hover ul:first-child,.quick-input-widget.hidden-input .quick-input-list{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child,.monaco-hover .code:last-child,.monaco-hover li>p,.monaco-hover p:last-child,.monaco-hover ul:last-child,.tabItem_Ymn6>:last-child{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_xvU1{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:-webkit-sticky;position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.monaco-editor .find-widget textarea,.navbar__items--center .navbar__brand{margin:0}.monaco-editor .suggest-details>.monaco-scrollable-element,.monaco-table>.monaco-list,.monaco-tree-type-filter-input,.navbar__items--center+.navbar__items--right,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:hsla(0,0%,100%,.1);--ifm-navbar-search-input-placeholder-color:hsla(0,0%,100%,.5);color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:hsla(0,0%,100%,.05);--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:rgba(0,0,0,.6);position:fixed;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid transparent;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:hsla(0,0%,100%,.05);--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:hsla(0,0%,100%,.1);--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:hsla(0,0%,100%,.07);--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.docusaurus-highlight-code-line{background-color:#484d5b;display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.navbar,.navbar-sidebar{background-color:#2d343a}.navbar .menu__link,.navbar .navbar-sidebar__back,.navbar .navbar__link,.navbar .navbar__toggle{color:hsla(0,0%,100%,.7)}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container,.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before,.monaco-list>.monaco-scrollable-element,.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view,.monaco-tl-contents,.monaco-tl-twistie,.navbar__brand,.navbar__logo,body,html{height:100%}.navbar .navbar__icon{padding:0 1rem 0 0}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description,.navbar .navbar__icon:hover,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label,.navbar .navbar__icon:active{opacity:.7}.navbar .navbar__icon:before{background-color:hsla(0,0%,100%,.7);content:"";display:flex;height:20px;width:21px}.navbar .twitter__link:before{background:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0idHdpdHRlciIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjUwIDIwMy4xIj48cGF0aCBmaWxsPSIjZmZmIiBmaWxsLW9wYWNpdHk9Ii43IiBkPSJNNzguNiAyMDMuMWM5NC4zIDAgMTQ1LjktNzguMiAxNDUuOS0xNDUuOSAwLTIuMiAwLTQuNC0uMS02LjYgMTAtNy4zIDE4LjctMTYuMyAyNS42LTI2LjUtOS40IDQuMS0xOS4zIDYuOS0yOS41IDguMSAxMC43LTYuNCAxOC43LTE2LjUgMjIuNS0yOC40LTEwLjEgNi0yMS4xIDEwLjItMzIuNiAxMi40QzE5MS00LjUgMTU4LjUtNS41IDEzNy44IDE0Yy0xMy4zIDEyLjUtMTkgMzEuMi0xNC44IDQ5QzgxLjkgNjAuOSA0My40IDQxLjQgMTcuNCA5LjQgMy44IDMyLjggMTAuNyA2Mi44IDMzLjMgNzcuOGMtOC4yLS4yLTE2LjEtMi40LTIzLjMtNi40di42YzAgMjQuNCAxNy4yIDQ1LjQgNDEuMiA1MC4zLTcuNiAyLjEtMTUuNSAyLjQtMjMuMi45IDYuNyAyMC45IDI2IDM1LjIgNDcuOSAzNS42LTE4LjIgMTQuMy00MC42IDIyLTYzLjcgMjItNC4xIDAtOC4yLS4zLTEyLjItLjcgMjMuNSAxNS4xIDUwLjcgMjMgNzguNiAyMyIvPjwvc3ZnPg==) no-repeat}.navbar .stackoverflow__link:before{background:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0ic3RhY2tvdmVyZmxvdyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMzIuNiAzMS44IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzMi42IDMxLjgiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iLjciIGQ9Ik0yNS40IDI5di04LjVoMi45djExLjNIMi44VjIwLjVoMi44VjI5eiIvPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iLjciIGQ9Im04LjcgMTkuNyAxMy45IDIuOS42LTIuOC0xMy45LTIuOS0uNiAyLjh6bTEuOC02LjcgMTIuOSA2IDEuMi0yLjYtMTIuOS02LTEuMiAyLjZ6bTMuNi02LjNMMjUgMTUuOGwxLjgtMi4yLTEwLjktOS0xLjggMi4xek0yMS4yIDBsLTIuMyAxLjcgOC40IDExLjQgMi4zLTEuN0wyMS4yIDB6TTguNCAyNi4xaDE0LjJ2LTIuOEg4LjR2Mi44eiIvPjwvc3ZnPg==) no-repeat}.navbar .github__link:before{background:url(data:image/svg+xml;base64,PHN2ZyBjbGFzcz0iZ2l0aHViIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMi42IDMxLjgiPjxwYXRoIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iLjciIGQ9Ik0xNi4zIDBDNy4zIDAgMCA3LjMgMCAxNi4zYzAgNy4yIDQuNyAxMy4zIDExLjEgMTUuNS44LjEgMS4xLS40IDEuMS0uOHYtMi44Yy00LjUgMS01LjUtMi4yLTUuNS0yLjItLjctMS45LTEuOC0yLjQtMS44LTIuNC0xLjUtMSAuMS0xIC4xLTEgMS42LjEgMi41IDEuNyAyLjUgMS43IDEuNSAyLjUgMy44IDEuOCA0LjcgMS40LjEtMS4xLjYtMS44IDEtMi4yLTMuNi0uNC03LjQtMS44LTcuNC04LjEgMC0xLjguNi0zLjIgMS43LTQuNC0uMS0uMy0uNy0yIC4yLTQuMiAwIDAgMS40LS40IDQuNSAxLjcgMS4zLS40IDIuNy0uNSA0LjEtLjUgMS40IDAgMi44LjIgNC4xLjUgMy4xLTIuMSA0LjUtMS43IDQuNS0xLjcuOSAyLjIuMyAzLjkuMiA0LjMgMSAxLjEgMS43IDIuNiAxLjcgNC40IDAgNi4zLTMuOCA3LjYtNy40IDggLjYuNSAxLjEgMS41IDEuMSAzVjMxYzAgLjQuMy45IDEuMS44IDYuNS0yLjIgMTEuMS04LjMgMTEuMS0xNS41QzMyLjYgNy4zIDI1LjMgMCAxNi4zIDB6Ii8+PC9zdmc+) no-repeat}.navbar-sidebar .navbar__icon{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.codeBlockContent_Ttwj:hover>.copyButton_Szi8,.codeBlockTitle_bovw:hover+.codeBlockContent_Ttwj .copyButton_Szi8,.copyButton_Szi8:focus,.footerLogoLink_BH7S:hover,.hash-link:focus,.minimap.autohide:hover,.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-diff-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays:hover .codicon,.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-editor.hc-light .insert-sign,.navbar-sidebar .navbar__icon:active,.navbar-sidebar .navbar__icon:hover,.quick-input-list .quick-input-list-rows .monaco-highlighted-label span,:hover>.hash-link{opacity:1}.rounded{border-radius:.25rem}.version{border-radius:6px;display:inline-block;font-size:12px;padding:3px 5px;vertical-align:middle}.version.added{background:var(--flow-green);color:#fff}.version.removed{background:var(--flow-red);color:#fff}.gh-btn{position:relative;vertical-align:middle}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .suggest-preview-additional-widget,.monaco-editor .view-lines,.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite e;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}.loader_vvXV{margin-top:2rem}.search-result-match{background:rgba(255,215,142,.25);color:var(--docsearch-hit-color);padding:.09em 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:hsla(0,0%,100%,.05);--docusaurus-collapse-button-bg-hover:hsla(0,0%,100%,.1)}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.sidebar_re4s{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:-webkit-sticky;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.imgFluid_d2uQ{height:auto;max-width:100%}.heroBanner_UJJx{overflow:hidden;text-align:center}.feature_nI3B,.heroBanner_UJJx{padding:4rem 0;position:relative}.feature_nI3B{align-items:center;width:100%}.DocSearch-Button,.DocSearch-Button-Container{align-items:center;display:flex}.featureHero_TZRQ{-webkit-font-smoothing:antialiased;background:var(--flow-gray-darker);color:#fff;line-height:1.1;margin-left:auto;margin-right:auto;overflow:hidden;padding:7rem 0}.feature_nI3B.featureHero_TZRQ .featureButton_Npcu{border-color:hsla(0,0%,100%,.2);color:#fff}.featureHero_TZRQ .featureHeading_TLGJ{color:var(--flow-yellow);margin-bottom:2rem;text-shadow:1px 1px #2d343a,2px 2px #2d343a,3px 3px #2d343a,4px 4px #2d343a,5px 5px #2d343a,6px 6px #2d343a,7px 7px #2d343a,8px 8px #2d343a,9px 9px #2d343a,10px 10px #2d343a,11px 11px #2d343a,12px 12px #2d343a,13px 13px #2d343a,14px 14px #2d343a,15px 15px #2d343a,16px 16px #2d343a,17px 17px #2d343a,18px 18px #2d343a,19px 19px #2d343a,20px 20px #2d343a,21px 21px #2d343a,22px 22px #2d343a,23px 23px #2d343a,24px 24px #2d343a,25px 25px #2d343a,26px 26px #2d343a,27px 27px #2d343a,28px 28px #2d343a,29px 29px #2d343a,30px 30px #2d343a,31px 31px #2d343a,32px 32px #2d343a,33px 33px #2d343a,34px 34px #2d343a,35px 35px #2d343a,36px 36px #2d343a,37px 37px #2d343a,38px 38px #2d343a,39px 39px #2d343a,40px 40px #2d343a,41px 41px #2d343a,42px 42px #2d343a,43px 43px #2d343a,44px 44px #2d343a,45px 45px #2d343a,46px 46px #2d343a,47px 47px #2d343a,48px 48px #2d343a,49px 49px #2d343a,50px 50px #2d343a,51px 51px #2d343a,52px 52px #2d343a,53px 53px #2d343a,54px 54px #2d343a,55px 55px #2d343a,56px 56px #2d343a,57px 57px #2d343a,58px 58px #2d343a,59px 59px #2d343a,60px 60px #2d343a,61px 61px #2d343a,62px 62px #2d343a,63px 63px #2d343a,64px 64px #2d343a,65px 65px #2d343a,66px 66px #2d343a,67px 67px #2d343a,68px 68px #2d343a,69px 69px #2d343a,70px 70px #2d343a,71px 71px #2d343a,72px 72px #2d343a,73px 73px #2d343a,74px 74px #2d343a,75px 75px #2d343a,76px 76px #2d343a,77px 77px #2d343a,78px 78px #2d343a,79px 79px #2d343a,80px 80px #2d343a,81px 81px #2d343a,82px 82px #2d343a,83px 83px #2d343a,84px 84px #2d343a,85px 85px #2d343a,86px 86px #2d343a,87px 87px #2d343a,88px 88px #2d343a,89px 89px #2d343a,90px 90px #2d343a,91px 91px #2d343a,92px 92px #2d343a,93px 93px #2d343a,94px 94px #2d343a,95px 95px #2d343a,96px 96px #2d343a,97px 97px #2d343a,98px 98px #2d343a,99px 99px #2d343a,100px 100px #2d343a,101px 101px #2d343a,102px 102px #2d343a,103px 103px #2d343a,104px 104px #2d343a,105px 105px #2d343a,106px 106px #2d343a,107px 107px #2d343a,108px 108px #2d343a,109px 109px #2d343a,110px 110px #2d343a,111px 111px #2d343a,112px 112px #2d343a,113px 113px #2d343a,114px 114px #2d343a,115px 115px #2d343a,116px 116px #2d343a,117px 117px #2d343a,118px 118px #2d343a,119px 119px #2d343a,120px 120px #2d343a,121px 121px #2d343a,122px 122px #2d343a,123px 123px #2d343a,124px 124px #2d343a,125px 125px #2d343a,126px 126px #2d343a,127px 127px #2d343a,128px 128px #2d343a,129px 129px #2d343a,130px 130px #2d343a,131px 131px #2d343a,132px 132px #2d343a,133px 133px #2d343a,134px 134px #2d343a,135px 135px #2d343a,136px 136px #2d343a,137px 137px #2d343a,138px 138px #2d343a,139px 139px #2d343a,140px 140px #2d343a,141px 141px #2d343a,142px 142px #2d343a,143px 143px #2d343a,144px 144px #2d343a,145px 145px #2d343a,146px 146px #2d343a,147px 147px #2d343a,148px 148px #2d343a,149px 149px #2d343a,150px 150px #2d343a,151px 151px #2d343a,152px 152px #2d343a,153px 153px #2d343a,154px 154px #2d343a,155px 155px #2d343a,156px 156px #2d343a,157px 157px #2d343a,158px 158px #2d343a,159px 159px #2d343a,160px 160px #2d343a,161px 161px #2d343a,162px 162px #2d343a,163px 163px #2d343a,164px 164px #2d343a,165px 165px #2d343a,166px 166px #2d343a,167px 167px #2d343a,168px 168px #2d343a,169px 169px #2d343a,170px 170px #2d343a,171px 171px #2d343a,172px 172px #2d343a,173px 173px #2d343a,174px 174px #2d343a,175px 175px #2d343a,176px 176px #2d343a,177px 177px #2d343a,178px 178px #2d343a,179px 179px #2d343a,180px 180px #2d343a,181px 181px #2d343a,182px 182px #2d343a,183px 183px #2d343a,184px 184px #2d343a,185px 185px #2d343a,186px 186px #2d343a,187px 187px #2d343a,188px 188px #2d343a,189px 189px #2d343a,190px 190px #2d343a,191px 191px #2d343a,192px 192px #2d343a,193px 193px #2d343a,194px 194px #2d343a,195px 195px #2d343a,196px 196px #2d343a,197px 197px #2d343a,198px 198px #2d343a,199px 199px #2d343a,200px 200px #2d343a,201px 201px #2d343a,202px 202px #2d343a,203px 203px #2d343a,204px 204px #2d343a,205px 205px #2d343a,206px 206px #2d343a,207px 207px #2d343a,208px 208px #2d343a,209px 209px #2d343a,210px 210px #2d343a,211px 211px #2d343a,212px 212px #2d343a,213px 213px #2d343a,214px 214px #2d343a,215px 215px #2d343a,216px 216px #2d343a,217px 217px #2d343a,218px 218px #2d343a,219px 219px #2d343a,220px 220px #2d343a,221px 221px #2d343a,222px 222px #2d343a,223px 223px #2d343a,224px 224px #2d343a,225px 225px #2d343a,226px 226px #2d343a,227px 227px #2d343a,228px 228px #2d343a,229px 229px #2d343a,230px 230px #2d343a,231px 231px #2d343a,232px 232px #2d343a,233px 233px #2d343a,234px 234px #2d343a,235px 235px #2d343a,236px 236px #2d343a,237px 237px #2d343a,238px 238px #2d343a,239px 239px #2d343a,240px 240px #2d343a,241px 241px #2d343a,242px 242px #2d343a,243px 243px #2d343a,244px 244px #2d343a,245px 245px #2d343a,246px 246px #2d343a,247px 247px #2d343a,248px 248px #2d343a,249px 249px #2d343a,250px 250px #2d343a,251px 251px #2d343a,252px 252px #2d343a,253px 253px #2d343a,254px 254px #2d343a,255px 255px #2d343a,256px 256px #2d343a,257px 257px #2d343a,258px 258px #2d343a,259px 259px #2d343a,260px 260px #2d343a,261px 261px #2d343a,262px 262px #2d343a,263px 263px #2d343a,264px 264px #2d343a,265px 265px #2d343a,266px 266px #2d343a,267px 267px #2d343a,268px 268px #2d343a,269px 269px #2d343a,270px 270px #2d343a,271px 271px #2d343a,272px 272px #2d343a,273px 273px #2d343a,274px 274px #2d343a,275px 275px #2d343a,276px 276px #2d343a,277px 277px #2d343a,278px 278px #2d343a,279px 279px #2d343a,280px 280px #2d343a,281px 281px #2d343a,282px 282px #2d343a,283px 283px #2d343a,284px 284px #2d343a,285px 285px #2d343a,286px 286px #2d343a,287px 287px #2d343a,288px 288px #2d343a,289px 289px #2d343a,290px 290px #2d343a,291px 291px #2d343a,292px 292px #2d343a,293px 293px #2d343a,294px 294px #2d343a,295px 295px #2d343a,296px 296px #2d343a,297px 297px #2d343a,298px 298px #2d343a,299px 299px #2d343a,300px 300px #2d343a,301px 301px #2d343a,302px 302px #2d343a,303px 303px #2d343a,304px 304px #2d343a,305px 305px #2d343a,306px 306px #2d343a,307px 307px #2d343a,308px 308px #2d343a,309px 309px #2d343a,310px 310px #2d343a,311px 311px #2d343a,312px 312px #2d343a,313px 313px #2d343a,314px 314px #2d343a,315px 315px #2d343a,316px 316px #2d343a,317px 317px #2d343a,318px 318px #2d343a,319px 319px #2d343a,320px 320px #2d343a,321px 321px #2d343a,322px 322px #2d343a,323px 323px #2d343a,324px 324px #2d343a,325px 325px #2d343a,326px 326px #2d343a,327px 327px #2d343a,328px 328px #2d343a,329px 329px #2d343a,330px 330px #2d343a,331px 331px #2d343a,332px 332px #2d343a,333px 333px #2d343a,334px 334px #2d343a,335px 335px #2d343a,336px 336px #2d343a,337px 337px #2d343a,338px 338px #2d343a,339px 339px #2d343a,340px 340px #2d343a,341px 341px #2d343a,342px 342px #2d343a,343px 343px #2d343a,344px 344px #2d343a,345px 345px #2d343a,346px 346px #2d343a,347px 347px #2d343a,348px 348px #2d343a,349px 349px #2d343a,350px 350px #2d343a,351px 351px #2d343a,352px 352px #2d343a,353px 353px #2d343a,354px 354px #2d343a,355px 355px #2d343a,356px 356px #2d343a,357px 357px #2d343a,358px 358px #2d343a,359px 359px #2d343a,360px 360px #2d343a,361px 361px #2d343a,362px 362px #2d343a,363px 363px #2d343a,364px 364px #2d343a,365px 365px #2d343a,366px 366px #2d343a,367px 367px #2d343a,368px 368px #2d343a,369px 369px #2d343a,370px 370px #2d343a,371px 371px #2d343a,372px 372px #2d343a,373px 373px #2d343a,374px 374px #2d343a,375px 375px #2d343a,376px 376px #2d343a,377px 377px #2d343a,378px 378px #2d343a,379px 379px #2d343a,380px 380px #2d343a,381px 381px #2d343a,382px 382px #2d343a,383px 383px #2d343a,384px 384px #2d343a,385px 385px #2d343a,386px 386px #2d343a,387px 387px #2d343a,388px 388px #2d343a,389px 389px #2d343a,390px 390px #2d343a,391px 391px #2d343a,392px 392px #2d343a,393px 393px #2d343a,394px 394px #2d343a,395px 395px #2d343a,396px 396px #2d343a,397px 397px #2d343a,398px 398px #2d343a,399px 399px #2d343a,400px 400px #2d343a,401px 401px #2d343a,402px 402px #2d343a,403px 403px #2d343a,404px 404px #2d343a,405px 405px #2d343a,406px 406px #2d343a,407px 407px #2d343a,408px 408px #2d343a,409px 409px #2d343a,410px 410px #2d343a,411px 411px #2d343a,412px 412px #2d343a,413px 413px #2d343a,414px 414px #2d343a,415px 415px #2d343a,416px 416px #2d343a,417px 417px #2d343a,418px 418px #2d343a,419px 419px #2d343a,420px 420px #2d343a,421px 421px #2d343a,422px 422px #2d343a,423px 423px #2d343a,424px 424px #2d343a,425px 425px #2d343a,426px 426px #2d343a,427px 427px #2d343a,428px 428px #2d343a,429px 429px #2d343a,430px 430px #2d343a,431px 431px #2d343a,432px 432px #2d343a,433px 433px #2d343a,434px 434px #2d343a,435px 435px #2d343a,436px 436px #2d343a,437px 437px #2d343a,438px 438px #2d343a,439px 439px #2d343a,440px 440px #2d343a,441px 441px #2d343a,442px 442px #2d343a,443px 443px #2d343a,444px 444px #2d343a,445px 445px #2d343a,446px 446px #2d343a,447px 447px #2d343a,448px 448px #2d343a,449px 449px #2d343a,450px 450px #2d343a,451px 451px #2d343a,452px 452px #2d343a,453px 453px #2d343a,454px 454px #2d343a,455px 455px #2d343a,456px 456px #2d343a,457px 457px #2d343a,458px 458px #2d343a,459px 459px #2d343a,460px 460px #2d343a,461px 461px #2d343a,462px 462px #2d343a,463px 463px #2d343a,464px 464px #2d343a,465px 465px #2d343a,466px 466px #2d343a,467px 467px #2d343a,468px 468px #2d343a,469px 469px #2d343a,470px 470px #2d343a,471px 471px #2d343a,472px 472px #2d343a,473px 473px #2d343a,474px 474px #2d343a,475px 475px #2d343a,476px 476px #2d343a,477px 477px #2d343a,478px 478px #2d343a,479px 479px #2d343a,480px 480px #2d343a,481px 481px #2d343a,482px 482px #2d343a,483px 483px #2d343a,484px 484px #2d343a,485px 485px #2d343a,486px 486px #2d343a,487px 487px #2d343a,488px 488px #2d343a,489px 489px #2d343a,490px 490px #2d343a,491px 491px #2d343a,492px 492px #2d343a,493px 493px #2d343a,494px 494px #2d343a,495px 495px #2d343a,496px 496px #2d343a,497px 497px #2d343a,498px 498px #2d343a,499px 499px #2d343a,500px 500px #2d343a}.featureDark_a6DN .featureHeading_TLGJ,.featureHero_TZRQ .featureHeading_TLGJ span{color:#fff}.featureDecoration__xwc{position:absolute;width:10%;z-index:1}.featureDecoration__xwc:after,.featureDecoration__xwc:before{border:2rem solid red;content:"";display:block;position:absolute;z-index:0}.codicon-wrench-subaction,.featureDecoration__xwc:after{opacity:.5}.featureDecorationRise_hJ0D{bottom:100%;left:0}.featureDecorationRise_hJ0D:after,.featureDecorationRise_hJ0D:before{border-left:0!important;border-right-color:transparent!important;border-top:0!important;bottom:0;left:0}.featureDecorationDrop_I6lf{right:0;top:100%}.featureDecorationDrop_I6lf:after,.featureDecorationDrop_I6lf:before{border-bottom-width:0!important;border-left-color:transparent!important;border-right-width:0!important;right:0;top:0}.featureDecorationDrop_I6lf:after{margin-right:50%}.feature_nI3B .featureButton_Npcu{border:4px solid transparent;display:block;font-size:1.6rem;font-weight:800;letter-spacing:.04em;line-height:1;margin-bottom:1rem;padding:1rem 1.25rem;position:relative;text-align:center;text-transform:uppercase;vertical-align:middle}.feature_nI3B .featureButton_Npcu:active,.feature_nI3B .featureButton_Npcu:focus,.feature_nI3B .featureButton_Npcu:hover{background-color:var(--flow-yellow);border-color:var(--flow-yellow);color:var(--flow-gray-darkest);text-decoration:none}.featurette_bF5V{margin-bottom:2rem;margin-top:2rem}.featureSmall_lp6d{padding:4rem 0 3rem}.featureHeading_TLGJ{font-size:2.5rem;font-weight:900;position:relative}.featuretteHeading_haRC{color:#55595c;font-weight:900}.featureImage_yA8i{height:200px;width:200px}.featureText_jiyO{font-size:1.3rem}.featuretteText_Qk9t{color:#55595c;font-size:1.1rem}.featureGray_eU5K{background:#eee}.featureGray_eU5K .featureHeading_TLGJ,.featureLight_Ee7O .featureHeading_TLGJ{color:#444}.featureGray_eU5K .featureText_jiyO,.featureLight_Ee7O .featureText_jiyO{color:#666}.code_TD_d,.featureLight_Ee7O{background:#fff}.featureLight_Ee7O .featureDecoration__xwc:after,.featureLight_Ee7O .featureDecoration__xwc:before{border-color:#fff}.featureDark_a6DN{background:var(--flow-gray-darkest)}.featureDark_a6DN .featureText_jiyO{color:#ccc}.featureDark_a6DN .featureDecoration__xwc:after,.featureDark_a6DN .featureDecoration__xwc:before{border-color:var(--flow-gray-darkest)}.featureYellow_kO_R{background:var(--flow-yellow);text-align:center}.featureYellow_kO_R .featureHeading_TLGJ{color:var(--flow-gray-darkest)}.featureYellow_kO_R .featureButton_Npcu{background:#fff;border-color:#fff;color:var(--flow-gray-darkest)}.featureYellow_kO_R .featureButton_Npcu:active,.featureYellow_kO_R .featureButton_Npcu:focus,.featureYellow_kO_R .featureButton_Npcu:hover{background-color:var(--flow-gray-darkest);border-color:var(--flow-gray-darkest);color:var(--flow-yellow);text-decoration:none}.featureYellow_kO_R .featureDecoration__xwc:after,.featureYellow_kO_R .featureDecoration__xwc:before{border-color:var(--flow-yellow)}.featureHeroText_Vxrh{margin-top:1.5rem;position:relative}.releaseVersion_sUFB{color:#fff;text-decoration:underline}.DocSearch-Button{background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *,.monaco-editor .bracket-match{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a,.monaco-editor .codelens-decoration>a{text-decoration:none}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:0 0;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards k;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:focus{outline:0}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:0 0}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul,.errors_L9uf ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a,.cta_wrapper_gL2E,.monaco-action-bar .action-item.action-dropdown-item,.monaco-editor .find-widget.replaceToggled>.replace-part,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right,.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:-webkit-sticky;position:sticky;top:0;z-index:10}.DocSearch-Footer,.editorContainer_Bd0o,.monaco-findInput,.quick-input-progress.monaco-progress-container{position:relative}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action,.quick-input-action,.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon,.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon,.monaco-action-bar.vertical .action-item,.tocCollapsibleContent_vkbj a{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.monaco-editor .parameter-hints-widget .signature .parameter.active,.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight,.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file,.quick-input-list .monaco-highlighted-label .highlight,.tab_i50q,.tryEditorConfigLabel_ngPW{font-weight:700}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key,.quick-input-list .quick-input-list-rows>.quick-input-list-row,.quick-input-titlebar{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.toolbar_aOgB{background:#fff;border-bottom:1px solid #ddd;display:flex;font-size:14px}.tryEditorConfig_b_Gg{background-color:#fff;height:calc(100vh - var(--ifm-navbar-height) - 40px);overflow:auto;position:absolute;width:100%;z-index:10}.tryEditorConfig_b_Gg table{display:table;margin-bottom:0;width:100%}.tryEditorConfig_b_Gg tr:first-child{border:none}.tryEditorConfig_b_Gg td{border-left:none;border-right:none;border-top:none}.tryEditorConfig_b_Gg h3{margin-bottom:5px;margin-top:5px}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element,.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label,.monaco-editor .tokens-inspect-widget .tm-metadata-table,.monaco-progress-container.discrete.done .progress-bit,.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view,.tryEditorConfigLabelCell_xSL2{width:100%}.tryEditorConfigLabelCell_xSL2 a{padding-left:5px}.resetBanner_Yek_,.version_hqjX{align-items:center;display:flex;gap:10px;justify-content:flex-end;margin-left:auto;margin-right:10px}.tryEditor_yXoz{display:flex;flex:1;height:calc(100vh - var(--ifm-navbar-height))}.code_TD_d,.results_sFhT{flex:1;width:50%}.results_sFhT{background:#f7f7f7;border-left:1px solid #ddd;font-size:12px;position:relative}.resultBody_oQwQ{display:flex;flex:1;height:calc(100vh - var(--ifm-navbar-height) - 40px);overflow:auto}.tabs_UvjV{display:flex;list-style:none;margin:0;padding:0}.tab_i50q{border-right:1px solid #ddd;cursor:pointer;padding:7px 15px}.versionWarning_jUOj{color:red}.selectedTab_lDqe{background:#fff;border-bottom:2px solid #404040;margin-bottom:-1px}.loader_pHWQ{display:flex;justify-content:center;margin-top:10px}@keyframes a{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.loader_pHWQ>div{animation:1.4s ease-in-out infinite both a;background-color:#ccc;border-radius:100%;height:14px;width:14px}.loader_pHWQ>.bounce1__odZ{animation-delay:-.32s}.loader_pHWQ>.bounce2_a9T1{animation-delay:-.16s}.resultBody_oQwQ{margin-bottom:0;padding:7px 10px}.errors_L9uf li+li{border-top:1px solid #eee;margin-top:10px;padding-top:10px}.errors_L9uf li ul li,.errors_L9uf li ul li+li{border:none;margin:inherit;padding:inherit;padding-left:20px}.monaco-editor .arrow-revert-change:hover,.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon:before,.monaco-editor .contentWidgets .codicon-light-bulb:hover,.monaco-editor .contentWidgets .codicon-lightbulb-autofix:hover,.monaco-editor .detected-link-active,.monaco-editor .margin-view-zones .lightbulb-glyph:hover,.monaco-editor .marker-widget .descriptioncontainer .filename,.monaco-editor .parameter-hints-widget .docs .markdown-docs a:hover,.monaco-editor .peekview-widget .head .peekview-title.clickable,.monaco-hover a:hover,.msgHighlight_M1rB,.msgType_AmYR{cursor:pointer}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-aria-container{clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;top:0;width:1px;left:-999em}.monaco-editor.hc-black,.monaco-editor.hc-light{-ms-high-contrast-adjust:none}::-ms-clear{display:none}.monaco-editor{--monaco-monospace-font:"SF Mono",Monaco,Menlo,Consolas,"Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New",monospace;font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;overflow:visible;position:relative}.monaco-editor .overflow-guard{overflow:hidden;position:relative}.monaco-editor .blockDecorations-container,.monaco-editor .cursors-layer,.monaco-editor .glyph-margin,.monaco-editor .view-overlays,.monaco-editor .view-ruler{position:absolute;top:0}.monaco-editor .inputarea{background-color:initial;border:none;color:transparent;margin:0;min-height:0;min-width:0;outline:0!important;overflow:hidden;padding:0;position:absolute;resize:none}.monaco-diff-editor .diffOverview .diffViewport,.monaco-editor .inputarea.ime-input,.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.monaco-editor .margin-view-overlays .line-numbers{box-sizing:border-box;cursor:default;display:inline-block;font-variant-numeric:tabular-nums;height:100%;position:absolute;text-align:right;vertical-align:middle}.monaco-editor .relative-current-line-number{display:inline-block;text-align:left;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{box-sizing:border-box;display:block;left:0;position:absolute;top:0}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.context-view,.monaco-diff-editor .diff-review-shadow,.monaco-editor .lines-content .cdr,.monaco-editor .lines-content .cslr{position:absolute}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{background:0 0;opacity:1;transition:opacity .1s linear}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{display:none;position:absolute}.monaco-scrollable-element>.shadow.top{display:block;height:3px;left:3px;top:0;width:100%}.monaco-scrollable-element>.shadow.left{display:block;height:100%;left:0;top:3px;width:3px}.monaco-scrollable-element>.shadow.top-left-corner{display:block;height:3px;left:0;top:0;width:3px}.monaco-editor .margin-view-overlays .cgmr{align-items:center;display:flex;justify-content:center;position:absolute}.monaco-editor .blockDecorations-block,.monaco-editor .lines-content .core-guide{box-sizing:border-box;position:absolute}.mtkcontrol{background:#960000!important;color:#fff!important}.monaco-editor .suggest-widget .monaco-list,.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines,.monaco-list.mouse-support{user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-editor.enable-user-select{user-select:auto;-webkit-user-select:initial;-ms-user-select:initial}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .lines-decorations{background:#fff;position:absolute;top:0}.monaco-editor .margin-view-overlays .cldr{height:100%;position:absolute}.monaco-editor .margin-view-overlays .cmdr{height:100%;left:0;position:absolute;width:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{left:-6px;position:absolute;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{left:-1px;position:absolute;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.monaco-editor .overlayWidgets{left:0;position:absolute;top:0}.monaco-editor .scroll-decoration{height:6px;left:0;position:absolute;top:0}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius,.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius,.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius,.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius,.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer>.cursor{overflow:hidden;position:absolute}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:0 0!important;border-style:solid;border-width:1px;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{background:0 0!important;border-bottom-style:solid;border-bottom-width:2px;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{background:0 0!important;border-bottom-style:solid;border-bottom-width:1px;box-sizing:border-box}@keyframes b{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes c{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes d{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:.5s ease-in-out 20 alternate b}.cursor-phase{animation:.5s ease-in-out 20 alternate c}.cursor-expand>.cursor{animation:.5s ease-in-out 20 alternate d}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:0 0}.hc-black .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle,.hc-light .monaco-custom-toggle:hover,.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar,.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67%,.4)}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{align-items:center;display:flex!important;font-size:11px!important;opacity:.7!important}.monaco-editor .arrow-revert-change,.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-sash{position:absolute;touch-action:none;z-index:35}.monaco-sash.disabled{pointer-events:none;cursor:default!important;pointer-events:none!important}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.vertical{cursor:ew-resize;height:100%;top:0;width:var(--sash-size)}.monaco-sash.horizontal{cursor:ns-resize;height:var(--sash-size);left:0;width:100%}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";cursor:all-scroll;display:block;height:calc(var(--sash-size)*2);position:absolute;width:calc(var(--sash-size)*2);z-index:100}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--sash-size)*-.5);top:calc(var(--sash-size)*-1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{bottom:calc(var(--sash-size)*-1);left:calc(var(--sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{left:calc(var(--sash-size)*-1);top:calc(var(--sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{right:calc(var(--sash-size)*-1);top:calc(var(--sash-size)*-.5)}.monaco-sash:before{background:0 0;content:"";height:100%;pointer-events:none;position:absolute;transition:background-color .1s ease-out;width:100%}.monaco-sash.vertical:before{left:calc(50% - var(--sash-hover-size)/ 2);width:var(--sash-hover-size)}.monaco-sash.horizontal:before{height:var(--sash-hover-size);top:calc(50% - var(--sash-hover-size)/ 2)}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-diff-editor .diff-review-line-number{display:inline-block;text-align:right}.monaco-diff-editor .diff-review{position:absolute;user-select:none;-webkit-user-select:none;-ms-user-select:none}.monaco-diff-editor .diff-review-summary{padding-left:10px}.monaco-diff-editor .diff-review-table{display:table;min-width:100%}.monaco-diff-editor .diff-review-row{white-space:pre;display:table-row;width:100%}.monaco-diff-editor .diff-review-spacer{display:inline-block;vertical-align:middle;width:10px}.monaco-diff-editor .diff-review-spacer>.codicon{font-size:9px!important}.monaco-diff-editor .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px}.monaco-diff-editor .diff-review-actions .action-label{height:16px;margin:2px 0;width:16px}.monaco-action-bar{height:100%}.monaco-action-bar .actions-container{align-items:center;display:flex;height:100%;margin:0 auto;padding:0;width:100%}.monaco-action-bar .action-item{align-items:center;cursor:pointer;display:block;justify-content:center;position:relative}.monaco-action-bar .action-item.disabled,.monaco-button-dropdown.disabled,.monaco-dropdown>.dropdown-label>.action-label.disabled,.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines{cursor:default}.monaco-action-bar .action-item .codicon{align-items:center;display:flex;height:16px;width:16px}.monaco-action-bar .action-label{border-radius:5px;font-size:11px;padding:3px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover,.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-action-bar.vertical .action-label.separator{border-bottom:1px solid #bbb;display:block;margin-left:.8em;margin-right:.8em;padding-top:1px}.monaco-action-bar .action-item .action-label.separator{background-color:#bbb;cursor:default;height:16px;margin:5px 4px!important;min-width:1px;padding:0;width:1px}.monaco-action-bar .action-item.select-container{align-items:center;display:flex;flex:1;justify-content:center;margin-right:10px;max-width:170px;min-width:60px;overflow:hidden}.monaco-action-bar .action-item.action-dropdown-item>.action-label{margin-right:1px}.context-view.fixed{all:initial;color:inherit;font-family:inherit;font-size:13px;position:fixed}@font-face{font-display:block;font-family:codicon;src:url(/assets/fonts/codicon-b797181c93b3755f4fa1258a4cca14d4.ttf) format("truetype")}.codicon[class*=codicon-]{text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font:16px/1 codicon;text-align:center;text-decoration:none;text-transform:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}@keyframes e{to{transform:rotate(1turn)}}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{animation:1.5s steps(30) infinite e}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .find-widget .monaco-findInput .input,.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,87%,.4);border:1px solid hsla(0,0%,80%,.4);border-bottom-color:hsla(0,0%,73%,.4);box-shadow:inset 0 -1px 0 hsla(0,0%,73%,.4);color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #6fc3df;box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:initial;border:1px solid #0f4a85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,50%,.17);border:1px solid rgba(51,51,51,.6);border-bottom-color:rgba(68,68,68,.6);box-shadow:inset 0 -1px 0 rgba(68,68,68,.6);color:#ccc}.monaco-text-button{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;padding:4px;text-align:center;width:100%}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled,.monaco-button.disabled:focus{cursor:default;opacity:.4!important}.monaco-description-button .monaco-button-description>.codicon,.monaco-description-button .monaco-button-label>.codicon,.monaco-text-button>.codicon{color:inherit!important;margin:0 .2em}.monaco-button-dropdown{cursor:pointer;display:flex}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator,.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{cursor:default;padding:4px 0}.monaco-button-dropdown .monaco-button-dropdown-separator>div,.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{border-left-width:0!important}.blogPostFooterDetailsFull_mRVl,.monaco-description-button{flex-direction:column}.monaco-description-button .monaco-button-label{font-weight:500}.monaco-description-button .monaco-button-description,.monaco-description-button .monaco-button-label,.monaco-editor .contentWidgets .codicon-light-bulb,.monaco-editor .contentWidgets .codicon-lightbulb-autofix{align-items:center;display:flex;justify-content:center}.monaco-count-badge{border-radius:11px;box-sizing:border-box;display:inline-block;font-size:11px;font-weight:400;line-height:11px;min-height:18px;min-width:18px;padding:3px 6px;text-align:center}.monaco-count-badge.long{border-radius:2px;line-height:normal;min-height:auto;padding:2px 3px}.monaco-progress-container{height:5px;overflow:hidden;width:100%}.monaco-progress-container .progress-bit{display:none;height:5px;left:0;position:absolute;width:2%}.monaco-editor .rename-box.preview .rename-label,.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.infinite .progress-bit{animation-duration:4s;animation-iteration-count:infinite;animation-name:f;animation-timing-function:linear;transform:translateZ(0)}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes f{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4900%) scaleX(1)}}.quick-input-widget{-webkit-app-region:no-drag;left:50%;margin-left:-300px;position:absolute;width:600px;z-index:2550}.quick-input-left-action-bar{display:flex;flex:1;margin-left:4px}.quick-input-title{overflow:hidden;padding:3px 0;text-align:center;text-overflow:ellipsis}.quick-input-right-action-bar{display:flex;flex:1;margin-right:4px}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.codeActionMenuWidget .monaco-list .monaco-list-row:not(.separator),.codeActionMenuWidget .monaco-list .separator,.monaco-editor .suggest-widget .monaco-list .monaco-list-row{background-position:2px 2px;-mox-box-sizing:border-box;touch-action:none;background-repeat:no-repeat}.quick-input-description{margin:6px}.quick-input-header .quick-input-description{margin:4px 2px}.quick-input-header{display:flex;margin-bottom:-2px;padding:6px 6px 0}.quick-input-widget.hidden-input .quick-input-header{margin-bottom:0;padding:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all,.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-filter{display:flex;flex-grow:1;position:relative}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{left:-10000px;position:absolute}.quick-input-count{align-items:center;align-self:center;display:flex;position:absolute;right:4px}.buttonGroup__atx,.copyButton_Szi8{right:calc(var(--ifm-pre-padding)/2)}.quick-input-count .monaco-count-badge{border-radius:2px;line-height:normal;min-height:auto;padding:2px 4px;vertical-align:middle}.quick-input-action .monaco-text-button{align-items:center;display:flex;font-size:11px;height:27.5px;padding:0 6px}.quick-input-message{margin-top:-1px;overflow-wrap:break-word;padding:5px}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-progress.monaco-progress-container,.quick-input-progress.monaco-progress-container .progress-bit{height:2px}.quick-input-list{line-height:22px;margin-top:6px;padding:0 1px 1px}.quick-input-list .monaco-list{max-height:440px;overflow:hidden}.quick-input-list .quick-input-list-entry{box-sizing:border-box;display:flex;height:100%;overflow:hidden;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-style:solid;border-top-width:1px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.monaco-custom-toggle,.monaco-inputbox.idle{border:1px solid transparent}.quick-input-list .quick-input-list-label{display:flex;flex:1;height:100%;overflow:hidden}.quick-input-list .quick-input-list-rows{display:flex;flex:1;flex-direction:column;height:100%;margin-left:5px;overflow:hidden;text-overflow:ellipsis}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-list .quick-input-list-entry-action-bar .action-label,.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label,.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox,.tags_jXut{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding,.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:8px}.quick-input-list .quick-input-list-label-meta{line-height:normal;opacity:.7;overflow:hidden;text-overflow:ellipsis}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible;margin-right:4px;margin-top:1px}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.monaco-inputbox{box-sizing:border-box;display:block;font-size:inherit;padding:0;position:relative}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px}.monaco-inputbox>.ibwrapper,.monaco-list-rows,.monaco-split-view2{height:100%;position:relative;width:100%}.monaco-inputbox>.ibwrapper>.input{border:none;box-sizing:border-box;color:inherit;display:inline-block;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;resize:none;width:100%}.monaco-editor .parameter-hints-widget .docs .markdown-docs code,.monaco-editor .parameter-hints-widget .overloads,.monaco-editor .suggest-details p code,.monaco-editor .tokens-inspect-widget .tm-token,.monaco-editor .tokens-inspect-widget .tm-token-type,.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{-ms-overflow-style:none;display:block;outline:0;scrollbar-width:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>.mirror{word-wrap:break-word;box-sizing:border-box;display:inline-block;left:0;position:absolute;top:0;visibility:hidden;white-space:pre-wrap;width:100%}.monaco-inputbox-container .monaco-inputbox-message{word-wrap:break-word;box-sizing:border-box;display:inline-block;font-size:12px;line-height:17px;margin-top:-1px;overflow:hidden;padding:.4em;text-align:left;width:100%}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;height:16px;width:16px}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-position:0;background-repeat:no-repeat;background-size:16px;display:inline-block;flex-shrink:0;height:22px;line-height:inherit!important;padding-right:6px;vertical-align:top;width:16px}.monaco-icon-label>.monaco-icon-label-container{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-size:.9em;margin-left:.5em;opacity:.7;white-space:pre}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.deprecated{opacity:.66;text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{font-size:90%;font-weight:600;margin:auto 16px 0 5px;opacity:.75;text-align:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon,.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file,.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-keybinding{align-items:center;display:flex;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{border-radius:3px;border-style:solid;border-width:1px;display:inline-block;font-size:11px;margin:0 2px;padding:3px 5px;vertical-align:middle}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-dropdown-with-default>.action-container>.action-label,.monaco-dropdown-with-primary>.action-container>.action-label,.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label,.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-list,.monaco-split-view2>.monaco-scrollable-element>.split-view-container{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-list-type-filter-message,.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:normal;position:absolute}.monaco-list.horizontal-scrolling .monaco-list-rows{min-width:100%;width:auto}.monaco-list-row{box-sizing:border-box;overflow:hidden;position:absolute;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-drag-image{border-radius:10px;display:inline-block;font-size:12px;padding:1px 7px;position:absolute;z-index:1000}.monaco-list-type-filter-message{box-sizing:border-box;height:100%;left:0;opacity:.7;padding:40px 1em 1em;pointer-events:none;text-align:center;top:0;width:100%}.monaco-table,.monaco-tl-row{display:flex;position:relative}.monaco-editor .find-widget .button.toggle.disabled,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls,.monaco-editor .find-widget.hiddenEditor,.monaco-editor .find-widget.reduced-find-widget .matchesCount,.monaco-editor .find-widget>.replace-part,.monaco-editor .monaco-editor-overlaymessage.below .anchor.below,.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,.monaco-editor .parameter-hints-widget .docs.empty,.monaco-editor .suggest-details.no-docs,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty,.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide,.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-hover.hidden,.monaco-list-type-filter-message:empty,.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2>.sash-container{height:100%;pointer-events:none;position:absolute;width:100%}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-editor .suggest-widget>.tree,.monaco-split-view2>.monaco-scrollable-element{height:100%;width:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{background-color:var(--separator-border);content:" ";left:0;pointer-events:none;position:absolute;top:0;z-index:5}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{flex-direction:column;height:100%;white-space:nowrap;width:100%}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{font-weight:700;height:100%;width:100%}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{border-left:1px solid transparent;content:"";left:calc(var(--sash-size)/2);position:absolute;width:0}.monaco-table>.monaco-split-view2,.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-custom-toggle{border-radius:3px;box-sizing:border-box;cursor:pointer;float:left;height:20px;margin-left:2px;overflow:hidden;padding:1px;user-select:none;-webkit-user-select:none;-ms-user-select:none;width:20px}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.monaco-custom-toggle.monaco-checkbox{background-size:16px!important;border:1px solid transparent;border-radius:3px;height:18px;margin-left:0;margin-right:9px;opacity:1;padding:0;width:18px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls,.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.hc-light .monaco-findInput.highlight-0 .controls,.monaco-findInput.highlight-0 .controls{animation:.1s linear g}.hc-light .monaco-findInput.highlight-1 .controls,.monaco-findInput.highlight-1 .controls{animation:.1s linear h}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:.1s linear i}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:.1s linear j}@keyframes g{0%{background:rgba(253,255,0,.8)}to{background:0 0}}@keyframes h{0%{background:rgba(253,255,0,.8)}99%{background:0 0}}@keyframes i{0%{background:hsla(0,0%,100%,.44)}to{background:0 0}}@keyframes j{0%{background:hsla(0,0%,100%,.44)}99%{background:0 0}}.monaco-tl-row{align-items:center;height:100%}.monaco-tl-indent{height:100%;left:16px;pointer-events:none;position:absolute;top:0}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{border-left:1px solid transparent;box-sizing:border-box;display:inline-block;height:100%;transition:border-color .1s linear}.monaco-tl-twistie{align-items:center;display:flex!important;flex-shrink:0;font-size:10px;justify-content:center;padding-right:6px;text-align:right;transform:translateX(3px);width:16px}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:1.25s steps(30) infinite e}.monaco-tree-type-filter{display:flex;margin:0 6px;max-width:200px;padding:3px;position:absolute;top:0;transition:top .3s;z-index:100}.monaco-tree-type-filter.disabled{top:-40px}.monaco-tree-type-filter-grab{align-items:center;cursor:grab;display:flex!important;justify-content:center;margin-right:2px}.colorpicker-body .strip.grabbing,.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes k{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:.15s ease-out k}@keyframes l{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:.1s ease-out l}.monaco-editor .codelens-decoration.fadein,.monaco-hover{animation:.1s linear m}.monaco-editor .monaco-editor-overlaymessage .message{background-color:var(--vscode-inputValidation-infoBackground);border:1px solid var(--vscode-inputValidation-infoBorder);color:var(--vscode-inputValidation-infoForeground);padding:1px 4px}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-light .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .suggest-details,.monaco-editor.hc-light .suggest-widget{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{border:8px solid transparent;height:0!important;position:absolute;width:0!important;z-index:1000}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.codeActionMenuWidget{background-color:var(--vscode-menu-background);border-color:none;border-radius:5px;border-width:0;box-shadow:0 2px 8px rgb(0,0,0,16%);color:var(--vscode-menu-foreground);display:block;font-size:13px;min-width:160px;overflow:auto;padding:8px 0;width:100%;z-index:40}.codeActionMenuWidget .monaco-list:not(.element-focused):focus:before{content:"";height:100%;left:0;outline:0!important;outline-offset:0!important;pointer-events:none;position:absolute;top:0;width:100%;z-index:5}.codeActionMenuWidget .monaco-list{border:0!important;user-select:none;-webkit-user-select:none;-ms-user-select:none}.codeActionMenuWidget .monaco-list .monaco-scrollable-element .monaco-list-rows{height:100%!important}.codeActionMenuWidget .monaco-list .monaco-scrollable-element{overflow:visible}.codeActionMenuWidget .monaco-list .monaco-list-row:not(.separator){box-sizing:border-box;cursor:pointer;display:flex;padding:0 26px;white-space:nowrap;width:100%}.codeActionMenuWidget .monaco-list .monaco-list-row:hover:not(.option-disabled),.codeActionMenuWidget .monaco-list .moncao-list-row.focused:not(.option-disabled){background-color:var(--vscode-menu-selectionBackground)!important;color:var(--vscode-menu-selectionForeground)!important}.codeActionMenuWidget .monaco-list .option-disabled,.codeActionMenuWidget .monaco-list .option-disabled .focused{-webkit-touch-callout:none;color:var(--vscode-disabledForeground)!important;pointer-events:none;-webkit-user-select:none;user-select:none}.codeActionMenuWidget .monaco-list .separator{border-bottom:1px solid var(--vscode-menu-separatorBackground);border-radius:0;box-sizing:border-box;cursor:pointer;display:flex;font-size:inherit;height:0!important;margin:5px 0!important;opacity:1;padding-top:0!important;white-space:nowrap;width:100%}.monaco-editor .codelens-decoration{color:var(--vscode-editorCodeLens-foreground);display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;-ms-user-select:none;vertical-align:sub;white-space:nowrap}.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);vertical-align:middle}@keyframes m{0%{opacity:0;visibility:visible}to{opacity:1}}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none;-ms-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:.1em solid #000;box-sizing:border-box;cursor:pointer;display:inline-block;height:.8em;line-height:.8em;margin:.1em .2em 0;width:.8em}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:.1em solid #eee}.colorpicker-header{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=") 0 0/9px 9px;display:flex;height:24px;image-rendering:pixelated;position:relative}.colorpicker-header .picked-color{align-items:center;color:#fff;cursor:pointer;display:flex;flex:1;justify-content:center;line-height:24px;width:216px}.monaco-editor .suggest-details,.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px;left:8px;position:absolute}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{cursor:pointer;width:74px;z-index:inherit}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{flex:1;height:150px;min-width:220px;overflow:hidden;position:relative}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px rgba(0,0,0,.8);height:9px;margin:-5px 0 0 -5px;position:absolute;width:9px}.colorpicker-body .strip{height:150px;width:25px}.colorpicker-body .hue-strip{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);cursor:grab;margin-left:8px;position:relative}.colorpicker-body .opacity-strip{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=") 0 0/9px 9px;cursor:grab;image-rendering:pixelated;margin-left:8px;position:relative}.colorpicker-body .slider{border:1px solid hsla(0,0%,100%,.71);box-shadow:0 0 1px rgba(0,0,0,.85);box-sizing:border-box;height:4px;left:-2px;position:absolute;top:0;width:calc(100% + 4px)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.monaco-editor .goto-definition-link{cursor:pointer;text-decoration:underline}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;flex-wrap:nowrap;justify-content:space-between}.monaco-editor .peekview-widget .head .peekview-title{align-items:center;display:flex;font-size:13px;margin-left:20px;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;padding-right:2px;text-align:right}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px}.monaco-editor .zone-widget .zone-widget-container{border-bottom-style:solid;border-bottom-width:0;border-top-style:solid;border-top-width:0;position:relative}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{align-items:center;cursor:pointer;display:flex;height:100%;justify-content:center}.monaco-dropdown-with-default,.monaco-dropdown-with-primary{border-radius:5px;display:flex!important;flex-direction:row}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-],.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;line-height:16px;margin-left:-3px;padding-left:0;padding-right:0}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label,.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{background-position:50%;background-repeat:no-repeat;background-size:16px;display:block}.monaco-action-bar .action-item.menu-entry .action-label.icon,.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{background-position:50%;background-repeat:no-repeat;background-size:16px;height:16px;width:16px}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-bottom-width:1px;border-top-width:1px}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span,.monaco-hover .hover-contents a.code-link>span{border-bottom:1px solid transparent;text-underline-position:under;text-decoration:underline}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;padding:3em 0;text-align:center;width:100%}.monaco-editor .reference-zone-widget .ref-tree{background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground);line-height:23px}.monaco-editor .reference-zone-widget .ref-tree .reference{overflow:hidden;text-overflow:ellipsis}.monaco-editor .reference-zone-widget .ref-tree .reference-file{color:var(--vscode-peekViewResult-fileForeground);display:inline-flex;height:100%;width:100%}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-left:auto;margin-right:12px}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input,.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder,transparent);box-sizing:border-box}.monaco-hover{box-sizing:initial;cursor:default;line-height:1.5em;overflow:hidden;position:absolute;user-select:text;-webkit-user-select:text;-ms-user-select:text;z-index:50}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){word-wrap:break-word;max-width:500px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul,.monaco-hover .code,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover hr{border-left:0;border-right:0;box-sizing:border-box;height:1px;margin:4px -8px -4px}.monaco-editor .suggest-details ol,.monaco-editor .suggest-details ul,.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-editor .parameter-hints-widget .docs .code,.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,.monaco-hover .monaco-tokenized-source{white-space:pre-wrap}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-hover .hover-row.status-bar .actions .action-container{cursor:pointer;margin-right:16px}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before,.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after,.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{display:inline-block;margin-bottom:4px}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{cursor:default;opacity:.4;pointer-events:none}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;margin-right:4px;vertical-align:text-top}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{font-style:italic;opacity:.6}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{padding:8px 12px 0 20px;position:absolute;user-select:text;-webkit-user-select:text;-ms-user-select:text;white-space:pre}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{color:inherit;opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{color:var(--vscode-textLink-foreground);color:var(--vscode-textLink-activeForeground)}.monaco-editor .snippet-placeholder{background-color:var(--vscode-editor-snippetTabstopHighlightBackground,transparent);min-width:2px;outline-color:var(--vscode-editor-snippetTabstopHighlightBorder,transparent);outline-style:solid;outline-width:1px}.monaco-editor .finish-snippet-placeholder{background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground,transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder,transparent);outline-style:solid;outline-width:1px}.monaco-editor.hc-light .dnd-target,.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.monaco-editor .find-widget{box-sizing:border-box;height:33px;line-height:19px;overflow:hidden;padding:0 4px;position:absolute;transform:translateY(calc(-100% - 10px));transition:transform .2s linear;z-index:35}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:-webkit-focus-ring-color solid 1px;outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:initial;min-height:0}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{display:flex;font-size:12px;margin:4px 0 0 17px}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-bottom:2px;padding-top:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{align-items:center;display:flex;height:25px}.monaco-editor .find-widget .monaco-findInput{display:flex;flex:1;vertical-align:middle}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{box-sizing:border-box;display:flex;flex:initial;height:25px;line-height:23px;margin:0 0 0 3px;padding:2px 0 0 2px;text-align:center;vertical-align:middle}.monaco-editor .find-widget .button{align-items:center;background-position:50%;background-repeat:no-repeat;border-radius:5px;cursor:pointer;display:flex;flex:initial;height:16px;justify-content:center;margin-left:3px;padding:3px;width:16px}.monaco-editor .find-widget .codicon-find-selection{border-radius:5px;height:22px;padding:3px;width:22px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{padding:1px 6px;top:-1px;width:auto}.monaco-editor .find-widget .button.toggle{border-radius:0;box-sizing:border-box;height:100%;left:3px;position:absolute;top:0;width:18px}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part>.monaco-findInput{display:flex;flex:auto;flex-grow:0;flex-shrink:0;position:relative;vertical-align:middle}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important}.monaco-editor .find-widget .monaco-sash{left:0!important}.monaco-editor.hc-black .find-widget .button:before{left:2px;position:relative;top:1px}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{align-items:center;cursor:pointer;display:flex;font-size:140%;justify-content:center;margin-left:2px;opacity:0;transition:opacity .5s}.monaco-editor .inline-folded:after{color:grey;content:"⋯";cursor:pointer;display:inline;line-height:1em;margin:.1em .2em 0}.monaco-editor .suggest-widget{display:flex;flex-direction:column;z-index:40}.monaco-editor .suggest-widget.message{align-items:center;flex-direction:row}.monaco-editor .suggest-details,.monaco-editor .suggest-widget{background-color:var(--vscode-editorSuggestWidget-background);border-color:var(--vscode-editorSuggestWidget-border);border-style:solid;border-width:1px;flex:0 1 auto;width:100%}.monaco-editor .suggest-widget .suggest-status-bar{border-top:1px solid var(--vscode-editorSuggestWidget-border);box-sizing:border-box;display:none;flex-flow:row nowrap;font-size:80%;justify-content:space-between;overflow:hidden;padding:0 4px;width:100%}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{box-sizing:border-box;cursor:pointer;display:flex;padding-right:10px;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;cursor:pointer;font-size:14px;opacity:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;right:2px;top:6px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{opacity:.6;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{align-self:center;font-size:85%;line-height:normal;margin-left:12px;opacity:.4;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:none}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-grow:1;flex-shrink:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{flex-shrink:4;max-width:70%;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;height:18px;position:absolute;right:10px;visibility:hidden;width:18px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{background-position:50%;background-repeat:no-repeat;background-size:80%;display:block;height:16px;margin-left:2px;width:16px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{align-items:center;display:flex;margin-right:4px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{border:.1em solid #000;display:inline-block;height:.7em;margin:0 0 0 .3em;width:.7em}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{cursor:default;display:flex;flex-direction:column}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background);border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;margin:0 24px 0 0;opacity:.7;overflow:hidden;padding:4px 0 12px 5px;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{min-height:calc(1rem + 8px);padding:0;white-space:normal}.monaco-editor .parameter-hints-widget .signature,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{word-wrap:break-word;white-space:pre-wrap}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{cursor:pointer;display:inline-block;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{font-size:0;opacity:0}.monaco-editor .detected-link,.monaco-editor .detected-link-active,.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .parameter-hints-widget{cursor:default;display:flex;flex-direction:column;line-height:1.5em;z-index:39}.monaco-editor .parameter-hints-widget>.phwrapper{display:flex;flex-direction:row;max-width:440px}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.visible{transition:left .05s ease-in-out}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs code{border-radius:3px;padding:0 .4em}.monaco-editor .parameter-hints-widget .controls{align-items:center;display:none;flex-direction:column;justify-content:flex-end;min-width:22px}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{background-repeat:no-repeat;cursor:pointer;height:16px;width:16px}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{height:12px;line-height:12px;text-align:center}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{color:inherit;z-index:100}.monaco-editor .rename-box.preview{padding:3px 3px 0}.monaco-editor .rename-box .rename-input{padding:3px;width:calc(100% - 6px)}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .unicode-highlight{background-color:var(--vscode-editorUnicodeHighlight-background);border:1px solid var(--vscode-editorUnicodeHighlight-border);box-sizing:border-box}.editor-banner{background:var(--vscode-banner-background);box-sizing:border-box;cursor:default;display:flex;font-size:12px;height:26px;overflow:visible;width:100%;background-color:var(--vscode-banner-background)}.editor-banner .icon-container{align-items:center;display:flex;flex-shrink:0;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-position:50%;background-repeat:no-repeat;background-size:16px;margin:0 6px 0 10px;padding:0;width:16px}.editor-banner .message-container{align-items:center;display:flex;line-height:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-banner .message-container p{-webkit-margin-before:0;-webkit-margin-after:0;margin-block-end:0;margin-block-start:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{margin:2px 8px;padding:0 12px;width:inherit}.editor-banner .message-actions-container a{margin-left:12px;padding:3px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-editor .accessibilityHelpWidget{overflow:scroll;padding:10px;vertical-align:middle}.monaco-editor .iPadShowKeyboard{background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiM0MjQyNDIiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+") 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px;height:36px;margin:0;min-height:0;min-width:0;overflow:hidden;padding:0;position:absolute;resize:none;width:58px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQ4LjAzNiA0LjAxSDQuMDA4VjMyLjAzaDQ0LjAyOFY0LjAxWk00LjAwOC4wMDhBNC4wMDMgNC4wMDMgMCAwIDAgLjAwNSA0LjAxVjMyLjAzYTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzIDQuMDAyaDQ0LjAyOGE0LjAwMyA0LjAwMyAwIDAgMCA0LjAwMy00LjAwMlY0LjAxQTQuMDAzIDQuMDAzIDAgMCAwIDQ4LjAzNi4wMDhINC4wMDhaTTguMDEgOC4wMTNoNC4wMDN2NC4wMDNIOC4wMVY4LjAxM1ptMTIuMDA4IDBoLTQuMDAydjQuMDAzaDQuMDAyVjguMDEzWm00LjAwMyAwaDQuMDAydjQuMDAzaC00LjAwMlY4LjAxM1ptMTIuMDA4IDBoLTQuMDAzdjQuMDAzaDQuMDAzVjguMDEzWm00LjAwMiAwaDQuMDAzdjQuMDAzSDQwLjAzVjguMDEzWm0tMjQuMDE1IDguMDA1SDguMDF2NC4wMDNoOC4wMDZ2LTQuMDAzWm00LjAwMiAwaDQuMDAzdjQuMDAzaC00LjAwM3YtNC4wMDNabTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3YtNC4wMDNabTEyLjAwOCAwdjQuMDAzaC04LjAwNXYtNC4wMDNoOC4wMDVabS0zMi4wMjEgOC4wMDVIOC4wMXY0LjAwM2g0LjAwM3YtNC4wMDNabTQuMDAzIDBoMjAuMDEzdjQuMDAzSDE2LjAxNnYtNC4wMDNabTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzdi00LjAwM1oiIGZpbGw9IiNDNUM1QzUiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDUzdjM2SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+") 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{padding:10px;user-select:text;-webkit-user-select:text;-ms-user-select:text;z-index:50}.tokens-inspect-separator{border:0;height:1px}.monaco-editor .tokens-inspect-widget .tm-token-length{float:right;font-size:60%;font-weight:400}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:-webkit-sticky;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:-webkit-sticky;position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.CodeBlockFilenameTab_T2zd{border:1px solid var(--ifm-color-primary-contrast-foreground);border-radius:8px 8px 0 0;color:var(--ifm-color-primary-contrast-foreground);font-weight:300;padding:6px 10px}.codeBlockContainer_r6yT{border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading);overflow:hidden}.codeBlockContent_Ttwj{direction:ltr;position:relative}.codeBlockTitle_bovw{border-bottom:1px solid var(--ifm-color-emphasis-300);font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_ec6o{border-radius:0;margin:0;padding:0}.copyButton_Szi8{background:rgba(0,0,0,.3);border-radius:var(--ifm-global-radius);color:var(--ifm-color-white);opacity:0;padding:.4rem .5rem;position:absolute;top:calc(var(--ifm-pre-padding)/2);transition:opacity .2s ease-in-out;-webkit-user-select:none;user-select:none}.codeBlockLines_pvST{display:flex;flex-direction:column;float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLine_WHOb{display:table-row}.codeBlockLineNumber_gZUW{display:table-cell;opacity:.5;padding-right:1em;text-align:right;-webkit-user-select:none;user-select:none;width:2.5em}.codeBlockLineContent_Nema{display:table-cell;position:relative}.flowErrors_qefp{background-color:#d5382f;border-radius:0;color:#fff;margin:0;padding:.5rem 1rem;white-space:normal;word-break:break-word}.flowErrorUnderlineContainer_r80d{bottom:0;height:0;line-height:0;position:absolute}.flowErrorUnderline_swOQ{border-bottom:2px dotted #d5382f;cursor:help;display:inline-block;line-height:2px;-webkit-user-select:none;user-select:none}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 rgba(0,0,0,.15);transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 rgba(0,0,0,.2)}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:transparent transparent transparent var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.containsTaskList_mC6p{list-style:none}:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.button_ipBY{background-color:var(--ifm-color-primary-dark);border:2px solid transparent;border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-size:14px;padding:12px 27px;text-align:center;text-decoration:none}.button_ipBY:hover{background-color:#fff;border:2px solid var(--ifm-color-primary-dark);color:var(--ifm-color-primary-dark)}.button_ipBY:disabled{cursor:not-allowed;opacity:.6}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.editor_ksb3{grid-gap:12px;display:grid;grid-template-areas:"c c" "d e";grid-template-columns:50% 50%}.editor_header_k1u9{align-content:center;align-items:baseline;display:flex;grid-area:c;justify-content:space-between}.cta_wrapper_gL2E>*+*{margin-left:8px}.editor_input_J9Qe{background:#3a3b3c;grid-area:d}.editor_preview_IykG{grid-area:e}.preview_fail_note_lUiM{border:1px solid #f6f6f6;color:var(--ifm-color-primary-dark);width:50%}.live_editor_gff9{background-color:#3a3b3c;caret-color:#fff;font-family:Roboto Mono,Menlo,monospace;font-size:14px;min-height:400px}.live_error_EIYU{background:none;color:red;font-family:monospace;font-size:1em;padding:10px;white-space:break-spaces}.live_preview_LmGk{border:1px solid #fff;padding:10px}.unknown_component_htsO{background-color:#ffe9e9;border:2px solid #ff7e7e;border-radius:var(--ifm-global-radius);margin-bottom:8px;padding:2px 8px}.unknown_component_children_WmeU{border:2px solid var(--collapse-button-bg-color-dark);border-radius:var(--ifm-global-radius);padding:4px 8px;position:relative}.unknown_component_children_WmeU:before{background:var(--collapse-button-bg-color-dark);border-bottom-left-radius:var(--ifm-global-radius);color:var(--ifm-color-primary-contrast-background);content:"children";display:block;padding:0 4px;position:absolute;right:0;top:-1px}.filepath_validation_list_jJSD{color:#ea0000}.FeedbackButton_oOHZ{background-color:#e4e6eb;border:0 solid #e2e8f0;border-radius:1.5rem;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-size:16px;font-weight:600;line-height:1;padding:1rem 1.6rem;text-align:center;touch-action:manipulation;user-select:none;-webkit-user-select:none}.FeedbackButton_oOHZ:hover{background-color:#828282}.FeedbackIcon_kE_h{height:13px;padding-right:5px}@media screen and (min-width:346px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:2.7rem}}@media screen and (min-width:404px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:3.1rem}}@media screen and (min-width:460px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:3.4rem}}@media screen and (min-width:518px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:3.6rem}}@media screen and (min-width:548px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:3.8rem}}@media only screen and (min-width:576px){.featureDecoration__xwc:after,.featureDecoration__xwc:before{border-width:3rem}}@media screen and (min-width:576px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:4rem;max-width:100%;width:540px}}@media only screen and (min-width:768px){.featureDecoration__xwc{width:7.5%}}@media screen and (min-width:768px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:5rem;max-width:100%;width:720px}.feature_nI3B .featureButton_Npcu{display:inline-block;margin-bottom:0;margin-right:2rem}.featurette_bF5V{height:8rem;margin-bottom:3rem;margin-top:0}}@media only screen and (min-width:992px){.featureDecoration__xwc:after,.featureDecoration__xwc:before{border-width:5rem}}@media screen and (min-width:992px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:4rem;max-width:100%;width:960px}.featureHero_TZRQ .featureHeading_TLGJ .hiddenLargerUp_LvEH{display:none!important}.feature_nI3B .featureButton_Npcu{margin-bottom:0}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:-webkit-sticky;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:-webkit-sticky;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media only screen and (min-width:1200px){.featureDecoration__xwc{width:5%}.featureHeadingCenter_F0Tm{margin-top:3.5rem}}@media screen and (min-width:1200px){.featureHero_TZRQ .featureHeading_TLGJ{font-size:4.5rem;max-width:100%;width:1140px}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (min-width:1680px){.docusaurus-mermaid-container{margin-left:calc(-50vw + var(--doc-sidebar-width) + var(--ifm-container-width-xl)/ 2);margin-right:calc(-50vw + var(--ifm-container-width-xl)/ 2);max-width:none!important}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media screen and (max-width:966px){.heroBanner_UJJx{padding:2rem}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media screen and (max-width:768px){.featurette_bF5V{height:11rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_xvU1{font-size:2rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (-ms-high-contrast:active){.monaco-editor.vs .view-overlays .current-line,.monaco-editor.vs-dark .view-overlays .current-line{border-color:windowtext!important;border-left:0;border-right:0}.monaco-editor.vs .cursor,.monaco-editor.vs-dark .cursor{background-color:windowtext!important}.monaco-editor.vs .dnd-target,.monaco-editor.vs-dark .dnd-target{border-color:windowtext!important}.monaco-editor.vs .selected-text,.monaco-editor.vs-dark .selected-text{background-color:highlight!important}.monaco-editor.vs .view-line,.monaco-editor.vs .view-overlays,.monaco-editor.vs-dark .view-line,.monaco-editor.vs-dark .view-overlays{-ms-high-contrast-adjust:none}.monaco-editor.vs .view-line span,.monaco-editor.vs-dark .view-line span{color:windowtext!important}.monaco-editor.vs .view-line span.inline-selected-text,.monaco-editor.vs-dark .view-line span.inline-selected-text{color:highlighttext!important}.monaco-editor.vs .reference-decoration,.monaco-editor.vs .selectionHighlight,.monaco-editor.vs .wordHighlight,.monaco-editor.vs .wordHighlightStrong,.monaco-editor.vs-dark .reference-decoration,.monaco-editor.vs-dark .selectionHighlight,.monaco-editor.vs-dark .wordHighlight,.monaco-editor.vs-dark .wordHighlightStrong{background:0 0!important;border:2px dotted highlight!important;box-sizing:border-box}.monaco-editor.vs .rangeHighlight,.monaco-editor.vs-dark .rangeHighlight{background:0 0!important;border:1px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs .bracket-match,.monaco-editor.vs-dark .bracket-match{background:0 0!important;border-color:windowtext!important}.monaco-editor.vs .currentFindMatch,.monaco-editor.vs .findMatch,.monaco-editor.vs-dark .currentFindMatch,.monaco-editor.vs-dark .findMatch{background:0 0!important;border:2px dotted activeborder!important;box-sizing:border-box}.monaco-editor.vs .find-widget,.monaco-editor.vs-dark .find-widget{border:1px solid windowtext}.monaco-editor.vs .monaco-list .monaco-list-row,.monaco-editor.vs-dark .monaco-list .monaco-list-row{-ms-high-contrast-adjust:none;color:windowtext!important}.monaco-editor.vs .monaco-list .monaco-list-row.focused,.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused{background-color:highlight!important;color:highlighttext!important}.monaco-editor.vs .monaco-list .monaco-list-row:hover,.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover{background:0 0!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs .monaco-scrollable-element>.scrollbar,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar{-ms-high-contrast-adjust:none;background:background!important;border:1px solid windowtext;box-sizing:border-box}.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider{background:windowtext!important}.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs .monaco-scrollable-element>.scrollbar>.slider:hover,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider.active,.monaco-editor.vs-dark .monaco-scrollable-element>.scrollbar>.slider:hover{background:highlight!important}.monaco-editor.vs .decorationsOverviewRuler,.monaco-editor.vs-dark .decorationsOverviewRuler{opacity:0}.monaco-diff-editor.vs .diffOverviewRuler,.monaco-diff-editor.vs-dark .diffOverviewRuler,.monaco-editor.vs .minimap,.monaco-editor.vs-dark .minimap{display:none}.monaco-editor.vs .squiggly-d-error,.monaco-editor.vs-dark .squiggly-d-error{background:0 0!important;border-bottom:4px double #e47777}.monaco-editor.vs .squiggly-b-info,.monaco-editor.vs .squiggly-c-warning,.monaco-editor.vs-dark .squiggly-b-info,.monaco-editor.vs-dark .squiggly-c-warning{border-bottom:4px double #71b771}.monaco-editor.vs .squiggly-a-hint,.monaco-editor.vs-dark .squiggly-a-hint{border-bottom:4px double #6c6c6c}.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{-ms-high-contrast-adjust:none;background-color:highlight!important;color:highlighttext!important}.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label{-ms-high-contrast-adjust:none;background:0 0!important;border:1px solid highlight;box-sizing:border-box}.monaco-editor.vs .line-delete,.monaco-editor.vs .line-insert,.monaco-editor.vs-dark .line-delete,.monaco-editor.vs-dark .line-insert{background:0 0!important;border:1px solid highlight!important;box-sizing:border-box}.monaco-editor.vs .char-delete,.monaco-editor.vs .char-insert,.monaco-editor.vs-dark .char-delete,.monaco-editor.vs-dark .char-insert{background:0 0!important}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv,.codeBlockLines_pvST{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/fonts/codicon-b797181c93b3755f4fa1258a4cca14d4.ttf b/assets/fonts/codicon-b797181c93b3755f4fa1258a4cca14d4.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5abfa748fb56c712c19d127f550727acc3fabe59 GIT binary patch literal 72504 zcmeFa37A_~eFu8Z)zw{fudeQubhT?{G?Hc?&!UmW%Qzm}Sv-#8B#z@Op2XSgB#twN zkPx#Z#AZuE2oQ#_vId|$<8n6&B4tvi^#f6pxkScb_feqZ^S@4tTU9^7AC$#EY2%5j7^k{8G2(EIS+!9Seed`t7*=9ijZY3Z$P&qiK^Ty9?3yu11K=2x0uYniR>bmX)@ zj_a;u*RXH0Z}M&YoA@on{+6$T+&{(({2;gZx$GDGe0C0hAD`u0_&Mw?Y?Axzb?lGX zvur)TnZ1G~`Gf48><&J_74|%Pf#1dci2Vlp7=JCloZZE5;urC2_*Hx-zn1Ukd-;{@ zclc%edI)YAtu&x#MVJLy9z{)D=n6TOX9ac<+sQ6wyVzyya@NgySc&zrGV6o%A4J=S z*$5kjo-xM8*#xVz23y0{vUSiq&R`qZMz)D^!!eosafig%<8*H?o`90d_N6 zU{fOgdo{bA9b&IxuVt@ice2CmP3+C=Zgvm5m%WYM$KKBFXYXL|V((^) z>^r>>>6r&iNpFg#8x#2>U4eID4G^KKldqN%krBBs9BEv(K{6vCp$F zurIPNu`jc)u8eilEQ&+)D3;q&-*egVIbU(9#$OZcUHH=pNM@ICx$ejVS(Z{V-wxA52T z*Yi90o%{{_Fh9cI$lt`@%<8@c z*gvozvP;;d?0PoMZeY9ljcgy=&#q%TScO&D&)E_7R`v;K%^dpUJo_82@@am6$Jk?h z6W_>9zJt5Gi(Say&1TuZvNy8dW&gxOyqooNha0TMrr4Q$f#1*X=5OI|Wgq4ZzM4zy zTK+J9gny9V%5USZ=C|`h{58-}W9(cWVGr>4va8us>}%{#*;mWL>PqJpK;ov)^NX#!j%mV1Evs^Do)A*tgkt*mv32+0*@&Q`-T?hng`TRjzsB78E0$${$o_>r$5yj6OR=-rZ?mJ2KcvI{|NReE31i;Z1Q}p^ zfFlV6{Av$A1MF{6UM0X+p}bmv?2qO(0_+&dYXx`#<#hu5Aj-W0+(Nle0Gx|8uNPpy zKzV}zxEX8SD8SA^xnF>Tk2Y@-;Ik+X2=FZ^Zx#UmW6cEta6;CkX9H{!1KgW64-0^gv*r;2_A!)i6yWsC zHwl2tv*w!x7~O;D0&t?`-2(g~l=ld5>d$)x_*E$1F2Hx9ykCG*KfgnOQ~yvq0Z#q= zE&+Ze$_E74@1T6Q0KW|7q5$L!YraQ-tk@>e4j`G@e6Ik>+9vfqKr*%YegQ}(*8G3~ zWE5)>EdWR>*8EKY$Su};%S0+4j9`5^(wJl6cM z0HhylJ}Lk?$eO<`0Ex(&M+G1oS@W0xq$F#8L;&)VH9sl<$;q0J2|$LjCiNcxY08=( z7l2%4O`;tD3Co&~3qaPg=I;tX>ayk&0+7F~`FjG8#H{)I0;H!j|3CoJnKeHl06EQ? ze<%Qn&6=MSfb3>X8fO5cIBR}N0P>tQpA>*(XU*dRknybfX#q%k*8GeBdpx z)_h6;x&Ukbi2$?$*8HphI|JqC1fVIf=H~^VGqC0t1fV^z<`)H^N3iCX1fWr{=2rxu zTd?NW1fXTG=AQ{b-(bxX0?<5I^JxKgCCaZ0KpSDrKNo;r!kXU@fQG`Fe<1)}g*Cq^ z0Ih{J|55<@3u}H$0GbSI{*?f98rJ-_0JIy{{A&T|Ijs2|0cbp|`CS3%KCJmY0cb(2 z`8NX4hgkFb0?>?D^KS*9BeCW)0??LNb4dVt6KnoJ02&l){+$4HDc1aZ0d^Ri#2~F0PTx4e=GnUi#3}9(8yS`B>>%wHJ=rLmd2X@BmjMlHGd)i z&5bqxSpYg5Yd$9cZH_hnMF4soYyMOK8Xjx@OaQtbYn~K<*2kJZ7l8i9n*S;QO^`MJ zO#nI}YyLt2+97NHy8!e=*8HUadl=<^2n6l=6+Q#dB3bi!0qB#g`GNp6OV)f*06HdA z69H(Oti=VOce0iw01cG2LITi5SxXjxR?1po0qCc!r3gS%Wi3?zIxA~w0_2x$=>pJW zS<4iFM$1|e0qC}@WeGsbWi49(`Yvll1)%w|mLmWin6+X8(1uyd6@XsMTAlzjWY&rc zuxC&v1fVsuR#E`^Gi&(*(4<)_B>L$f z`lnBTQ~&e}aO#Hv0Z#oeD8PxXLjs&=HY~u2W+MWeXf`UqiDs(=$amZt6W~OraRE+r znh@Ybr%3@$bgBt(qSKTBr*_u`IJLVWz^UES0-V~tT7Xl#*9dTG_gVo??OrFqsogUI zoZ7lxfV>y2GX&tpW~~hZoZ2@lz^P3e1vs^7lK`hSZ5H6vrZWXNwdpJYPHj3{fK!{! z5#UtEEdreCI48iVj#~vd)$v>bPIcTSz^RVg1vowbd;w0+zd!(fXx6$=fYbAL2ylAN zMFO0jvr~Z6y)PEv=b_vs!09=c2ynXhr2?GpeVG8K>n<1Iblq+NPS?!~aJuda0ZzYP zDZuIXJp!D5ze<49v8x3*mDdRH>rh@R!1tk~?*P96K0KWs}egS?b%9{iz9@07>zz?ImS%4owxgfybi1MHSe-p}A2=F(fqn#GX)LHAT0uv#9@2o|10bs|o*1ZC3H%g)r0Nb9mh(-XceAXfw z0kHR3>wW=P{;c&50r&t|i)aVH8^BsbI{w^O9F_e!8@J%SGKLEZF<%a~giSok&oZ9=S0C!RTwgB%!c~pR1i1L^Kd>*Xz5dnBV zSnHz#@Pn`xJsW^Wgta~<0N)5}eO!S36UyHa;31Tc3&3;2T67-3`cXb1z#WvoCjh?+ zYyG|eJS?pB2LkZ5uolr8U}vKILjg{6>yrYA%CXiT32+)apAz6SzMd3-pN6%L3oxS1 zrv)gM+WL$DUybsQ1>nzNt)~RowJ85YfIp1#vjUv@;d26<`seck{8p4-5a73={GtG- z`T8XRemlx93-CiIzaqe2gYv5a@E)<&p9;W_#9ChyplD<3&jjFGVyzPbjK=TN0`NDn z*4G8#d19?U7hu$;ZwSB}#ae$M0KXJ#eNzA)D%Sc-0r;v|>stcwTCvt&3BZ5FTHh9c zCyTZIS^z#R*7}YByj!gGT><#HSnGQN@OZHn%>jVzLHT_Fc)?ifZw25FW36Wd;2C4B zB?0)zSnCG@@RqUG-w7}pM}IE>4;pLzg8+PKto1_y)`jvP1xSf){YZd$D1R&fpBrm6 z1t^-_qVoXw;aKZg0eIwC>z@SRn`5n?2*69nTK_Bne;sQ*CqU8S*1rhAhsRn!6@WL7 zwSFc5zaDFy6o7}1wSF!DUmt7zs{p)yto3gKjQaT(0`LT~*1roNCe2#E6o7Y-wf;i@ zenQszl>kMwTh9x?cgR{V2vGdHMQsM)PbAk+0C*PJvs?f^M)oY`1_9ni_AKT(0e(mJ ztSkTzBzrb20AD0~7SAKVE6JY4^9b-yvS;x;0z8%MS$ZA-pCx!o)}k4j&bzAybMv@LWr^i6p{zF&SO zJc56hhd&}QAGj3MQhPlPO+`QF%i}`^0g!%nQ zB(e~BFmfXD1Iw^pZGFW0g*|R>wI8v672Oow7kwc5DJSJz;Jn3oES8DAI`-Mv4_(L2 zx%at0@V0u7#qIc}_`dj^@%!Ts#~+J76+aRGX<{L9cj7~dpC+$L-j{qh`5nL4-{Bwd z7yT#vFZ;htYm#06H{&M;!89Otc*_K(zJd!z)c`lpEZp!Y@ekl8^ z-0O3X=f0Yk@>k{`DZ~p4g`yV>lfYe?gzU+(fy6?pY*Kl zIn?vL&J#zWTog+UP-86dV=;Na=top>NAB}Ar`^300 zzIFW2_&dixGXCZ9=O*G4QxiKTUNLe1#LqeADKK^o2>1seX912 z+E1pAOnqSLGgHsichp}||9t(qMxk*{L*tJ zbWLT=t~GC3^VFK}ukBg8W$oA38S9R$J2CUbOmls1{ax!HU4Qb7oo9UfjFTJA-tg3H zeD=E8*UmmR`_qjB8)rA(u<`DV%}s?(M>i{*_icXP=H{8nGhch=V`qNjtbw!6JZs0< z_Sv_b{opz7IhUUE)h(;Gymres=cKvD+&kxfvi0n(3tJ!9`pK=|-ukO^cb)srbH8!! zFSZSByKdX(xBcsRk9jkY2-*M}X zr*=GZk$ch3i+;FM+c~@QuAPtW{Kn3c7Y|(g)Ws)vb?v(DlENitU-IQkTg}s zcg+{CW!E~_c3r#b+B2?w_}XW#>$>iS>mJ|RwRg+j2lo~BeQICx`nA^|xc(zIup4G? zxbKFK->BW#cjI+8zVpUs_Z$09+%$93GY57Z_`rd0lLwNbldy7P@W@S)C#XC*!h39< zh$o9YIldkt9JQxfpOGiV3*1loO0_aMBaIiNxXo3iI>P-`>k#~@R;p8V{HsolNIkZc zh>Md|oRk>hwaFQd%M)>h5A|)nU~^wCZB;I>*s0uNe-95Cwv#ZT`GgXZdUna0nHZl`oL9FkSdiQAdDVZ<}G;n|uj%c`D= za(7jxcWtS(wl}ki_ziJ9hWJ+ozSBO?D2aAWR%dv9B!o|u(u@T1NGj-thL6v1(6EGn zS-dA1O80Q?$$&Ldir=}VS%UhhVhWDKV&pUE0tr5iw7YfJI{Ba zHAES!`)aj@w~1=qPpH*;qt9wItiI!-IE=!Yw)^_*X?y^&NJ2o@g|@4sMkTr)&&Tzp zYF&&qL9;4GRL=+(L*?2&uVOc>#^c3_nTbLHZ$&RXG(MCL-X7@Ne?!Hp*Q3RWV*7+* zy8T;v2#;I&OrLzp_3A{eRIh>*bqvI~4S6xc{lv-+d)ZAn?tbd7r`HI-p-S96Rj1RQ z*={Fjtorp@RaNM5!Gn2K3=i?-2TwJmAZ~fuGr!cP!tZo`11(lQ^5xH5&l3|hzg{h= ze!G!)s=AWQzpfoCNc(?Mqvf$62mOh@oB&m8r9^ejyftra^R^w{z1!aQ`Ok0bj9GZI zAlvIi`JfLvzyB2H+vj?x&ifZSZ#@UKe4^X2`FVTW=RUWsZ@0bM+UB;;gRgE$+z+EC z7)M_jwMMO?SG;?4)GF-TR}{~M4)%0#o*1c#l79%l7q7p*c(pjc@RIX_k&MYveMH=+ za02Jq1+R0z_H)G*&o^NTl2 z($>wAyp?lFl7^PT8dt+hVOJyXo5|~-Sp8}0BtrOsAsC9jccyIz-WJH>Rq#CbRl|;PmPt_(XrJlyTsmJ!0t4A3d zqRC{`>P{waGBwRSLZ^=eG$3ssv0r#y6Bt_~h@dqn%H=6)kJ_$ayVgZ?IJAtCdaAyv z(o?BTB+;0lx3z*CwL3MUFqe=L^wlF9yfZ`P9D5#pX3_e2w7TNO0nZ&cN=_P*PCx57`gMU25y zZ5c;9I&@Y$v`>;KtgPd8>JhaRM-!^3Hj!QBK7Trq4QQO^MDw__ZojH|s;PtG30?`v z{Ti-YFZ>%1J93-6iL|Z@nuj8f#nYLj*Cu%)>Jqv2;DXM0Q!p+vh^|gzT%aD4Bht%< zLYuJFQaxBN~DGUs_ z@$z8RiMw8DC8+=7?!Qk0Jh zwFlCPlpcJmL0aQ@tv;a=!vLyyual$+z9mZB*{en(>Rw&H+OeIh^?PMy_a*kBc~!D5 zU7Qww#~b30tD#6FWISm&j`8FtL!o2#`$N(Pt%^JCHoS)Gd7dlyGdl@hpizY0BR#AR zZ9oNEuT3rb!l z8Qjt@B}soRKv4n1JSZuKDoaqi!$DyvlB7EpcrEqG?i*px^5$lKcN01tEhl#Dxe_p~*miL+`2o zUrx>`8%-6Bo=qg|WYP}a|L>q}M(^%)p452`o)%<>iaBV(dd$Mx)(<_RRKxI21U3g0 zUra41R>7fa%_p@9?_`S96Wp2A=k-}#KdB#`n_HYS8v5Mf%I-PXA9G7N!^r82hOwCQ zJbOSl41LgQc;4KVgNm*z16R=W7yV2&Q4g}0E+gC3BNc%AFv)5(0cNBM)EZk#`iZ!o zAgzF;rZUJ^mBvPpo!CRnatdNOi5Z~Q<0{Hi*VHEKl^F@zbHLFjr^b`Jay><8KfJ$N zkNG+*%&F-ZB8q!PPZ86w$ajcE;-84vorT+-@{1S2WYqDzbE0)Pl^@)48;6 z8%CzLWJ$Pv5qD2JI0g4z<{cUM_Ds?Wy$R62M6{nkZ`4XTSbQgSZwY_kI!n5~G`qOy zRfwKKcS(VsV~D<-L;RXlhCDCPIHoeOhC^J_kcN><8Y1*Ba2VXS2E7n=K&eJ#%EPdt zNg(x%NFZYEYhA-#PSGrIz0${J3+hEliWGZ_5#DQ-?QnmU8z4*ZCcn$i>sB(G&m|+; zx6Nc%SJI@*GTDfeP0(fBcA_?}s_&#U_N%#QG*|W0NlxvF(OY1% zN1>1V!3ZruBN;>v5asKx!Km2?9y>?5GY}AgQQaB2WG9n}O~Qf%1eqlDc1hn!aKNe# zj=%Ifje73nyhSfZ#CD0;#~~7ezlwY6uhKb)vfTO1RXV|-uKBB@o;UB2G!gGd@QJ>O zavny8=ri(5tV4FpUFb86cOI3L$|%R!m)1)&=z{7 z6LU!pZ`LE>u&yW&D=-qmxTkD{jnRu|=Dmww2jx91D>7t4)r^F-a44*VR9%VaVF(t@ zR;-v2?dk5yrDKMyg>5YoMk&j-yhGx;>SnB5p%7JV9fw1TrmJ!|WQJ73H1Jqd1JA-? zIjn^s>`YnxyNkW~nTuD@TSJD{on)^P4Zzp@@nVSd8X_7*vqCN}keS4*A4mjrN<8U< zeg#gwqKa;)V&YUrCCoE%;V67*(C2aGQ0m{y0g0*vyQq`Gc6fC1$z!-06h^gtLPQ< zO*nih4pFyaFvwa!Qgp1oSvDg&D2%ho_@i!>O-r?lg`Aa%X{6f;-Y!9VB-^%^vi9mF z2o@NBKE`SZ)bdNUF{K1+VRAj6EcK{0&>EI+;JGBl@=-6kF6!1}P7)dl=l&;RCY0x% zV#19^ z%jCQA>uSAf(#!GI39pvW=mNRJJC zB`B-phauMqRSX76@a;^?v#gArU0nX#V)fV=%jyz8jEZmHj$2mN4uc0(+={oa+sat> zRyt-~N}oZ4pw95*{0Y?=jGtP(cz$G;xhrz>1(Ay{Ms%iq&YuKy>i7u7kL@#;&v_bm z!hN6@k=NzZ!3|z|&Pn)h=p6VL;c;pIDo$O#&-2J6hCj64Rri-PLA^# z4sFNFg+rlm&NJe{$8gw)K~%3eB0hS0%m|0u<4E|Vnb*Fr0*jv9sB-77ZmfIEkaay) zh<5jO7g8}@eCBD{80(Jpc1H`rp;Q4s2cN0Vr+iBTl!@w9dekwx^_b1U!+bIl$hd&; zpMoK=;^m+I_)e{UKU#>|RyqpZJ*2_ik}u}yTL>CXNK;KCV%ZnIw1&N+=3Ih7pheSG zzG&x?MwGOFe6yoP+qNQxscNB*zqASMrnTiGxX2GMZxgUWLI1!xFTAgHGSx|AsV>G# z@p!3^-Ztm^@_3ESwZG%wT%3;NyH?8E2=0a$t0$bg!f&mD!3P33F)>-G!pudl22lir zC`xO$TGm79*)_dCutmw!LF^)UI~*@N4<+WQKvpN?ZO<3kbW@MYhN(%iZkrJ`>6o4_$C8PA!?L77c$;?A zFv0H=$(XD!>-D5VPC~CZQ|Lz&MG*0W0uL8#hGZ84E9n5mB*Ga+>=Wu1I55F!HWX+ zS?#WMCjcMn;6ws%$1UgyU0u;a!76--D=++#Kh3f+MMqvF@suPi zlOgg*)QL<`z@cQ4N=L%~20 z%+$hfihFUpZ1uj@D%<#IRgRWN^}v_q>Bsed2t$7{3?mHl{IU2o*Tk*f-phKe;M20r zMAku?b&1FbiH(4TLKFq&LSQk}*GObE1Ony}JCn7tctMu*gRenO9C0Bk=G@BRxg$p& zu(R3D8HYS#fiC?%cerr`^boS+N63yPUcF3d)nD9XZ{BQg3f|w^`GBvTF%1g-D_nt<$;B)^zd z6ek>xTZUq$Y+biAdPFs|G27NFgT*USUdrl29E*32c6-S}k~`64*s*PBL$;C2IG$-* zr5-;NlH*CGcx&pqYkjM)ufr=**Kx}J7j+H%FsIj+IOB@i*5S3K%67UNq!+a|?N=(t0P_`{!rM{Ola5j z>aMXdgc;vqkB{4pPsZkBpBozw0*yg&rS>GLjVs1?2zL>)8xxsy2n_0%jcbHc=3YLW z54#xQrw`&&@-RXfPo9t;LYAmCAp=&h`raTexst*EY$=FSQXP@uf=Mxi(M_|EEYl*Q zqQWXgjKdR*7D2U%Admy58+@ja0X2X$4~nJ*$BC~16wD<$RaID=4Z|1#Ll9+yiiYl$ z5z|FD!zknL!0OeW)zf1Iv0nVxs8q@*aOQNSGD@fGqvi5p{h*FlqcRWE)Q$95J^WP+3CyNA?1V`K^UJf@GTQ~I%oLVeu^>5<5Q!p2r>Xy z(XWpAOKl^6S75$Y6IpMnH z`9)JZOvmuH;I(D<)50Di|JVG&!XlI$SZ0_VI#y^zph5M4j;kqS&x1gdD7OOfSMoDq zRO4#_7OsknnIPptO`_LfMbuS{YZVd@{ttvVc-&XvZS~K|ZdlVR=chKTF3Y(}rYkp^ zOO{uS^m?JxT~?nQj>V%=ByPB2L)B!yBO2Ci#9=1Qh+A-V%L!E)86I}&2DnYGzG3xI z7q>_c6!b{f@aVwZR=*yPNOl4uu{$K2VXmr!wrROh+Z&1dVYkp5wNulBkq)m5;x``j zq#8zw7zPQ<*|q}|jE^iFgtP)%j%+R;QeJ!;<+WrzSw9)1h`<9O*UqlN1G78fIUZgE zqPUWCFX|4sQIGRdUtg(dB_olfB|WOfd_Sf>S_sRwVZoOoTZS!%KOYK5=u0FVx;M^g zrA=F3?}OD^#*D1Nt9d5ss)C;=fo7M$C`uqk>DS3?OA6Q&ICKq;`g#@2r8GH34s%$d z7-lM%lCLHpacl7H`iZy3a*TwuoE|XiK8>-)f3yAKSn4KJUNPj*n^wowNPvD_}3T`Ak0_ zYWK+*|I;3+i`qlr)&J`TNQu+>;*)pY@Q7~ModzVR`&M*BTBD8#B~I&zE1mO`8~5I- zgkB%Gp8{Tq^&EePIZm2X7us-Ye#5v$bS0R{G`@iSvA$kka=ZI_lOZ=B$)%%`WxD+- zZ41RrzZsEYJ)INgH7Vlf(weE22G+o(E%b`Eo$iq2t*_LuNVBK|E39;PZf1`=o{>ZCMH_@CN2G_-SQ_3A=lb$$s~PvEc3-^BSCVRYg@4AO~< zI0OAC?ze>dVT&)^4>JV3cyX?DW@-NL{&nr^#qW?LrNz0$r8g{Jx9n>oj~ND`I=y@M z?#ao?#rgT&{gXAY6k!{Q^KiXd#ZU7m0o)_dwc7L-G?@Vl1v{0d0>J>)Z<(k>T4WRY zzUTx&=~&V$qZOz(9+U&GPC#edgslFZ;M8>}YS1rXr%aMQlBkr{p^^v)kXKH{3&tOM zRUthb4kfrVs&!Jkz&Yp)axj2r!1SM(RKZV530N{yyQJU6mLYguu3q_=ZoH|4kZ^9; zn7lYUiFi?YBv>LRzInSGkMh_>i zhb;U{^|-p*(Y8L=z9zcj8W3Xnn$cYD@?`Qz_ikMC*XD6JcFox%?Q4i%>9D67fseG! zcfedBdTqqo5e^HIGY}e(#|tuLLLeL&2<6(mU^odl=HVB207)?sM$ru9pc|SZtGT3v zEl8vnJ6z_A2Tvs(Ff#)Kz@;X5{_+jH#tNgn3qMzdJ=3D(xc(5yci0n&5WwY9C?}`HZZZQ7uNd2!^)MMKWk9={@AvNzh6H$hZVW;)rqN z`9!TOl2sG+gGVt7cOO0a!Y}P>ueH4`2jQuJ{{}g<-pAC9(M{T`t{$T)Bj*0Mm;J@< zd+o^QkL2JlK7L%B13jPmJrnp+;LH(@KWPNHO_&vwc|le_rc8T0yeVBRX|6FmUQ#oo zV^L2ZN*SfH-)A4YWaE9_T)e2cuIi`N^7xQv#r<)^Ln3qGgXs1($zc*M?fHy)$rx=E z8yF5+s~{l>VM!kzl0+FkEFTIO)dKZ~XircrY_M!-0p1>o`?~qo>%*Zv?uSdQAZo_VrHy&u%KcHTL?0@`55Mz zMSDop+f)c*k1wIaKUY@QA{nD^e4^hU*t9vBvp1CNTD`Pb7_qWBGu3SwU89-aHGU%3 zGiT@0$tW7v;e{`(n3I^tRgkn=EAra&|HYhiaE%5Uk!Q5yL!D@62Vp>ipZRT<>W=NP zD^jT|V%zszam9HZ|LP@L>Iq-FWXltmwCzy3A5oo^PrnIwR$l(-ORuASmC$n#te8Bg zc0Ezwo?Ki^<_?@Ruko*meC%B?5IeSRghx={E-{8@U=boW82(gb){EZsh1WW+bmyE^ z+5BXe#Pd?BI?`{}wz;oz$UmHXYHrj^!uo*grzf8Da_;?fw5wxJvnKd~L9r~@w(u_? zfmba;krj7dG|q{S<;LRYjFL09n7kcdZ@C5EH;9|J=f?6qklW;wJqz8^f7v~<;vPKR zxye%dCNF7kH)x7_z;g`QAH|HtGJ_=9$93c|LiI-Ybb_0|w#C%2g!Ai~jIFD>;3OAz zJ>{SWu^$h0rLM0mrJi_#456<+(V17+%L-E2LdN1bv`)2-d|L7klNh94Lnf?>CAS}?Jm4CX5R!04;#p+p!lSGrAGIJMr?xgZcv;2jt6G)d{T8R! z>cIw~Be>(B)z9tTO0UiPBLh4d<|9L938uJ{@5#q*yd+c39C|<3?KJWy($Ra6QW5Fv zquccNS@%b98(t{dZZXXVBmGj;bseb>w@DXVyDP_WpGYi^Jjhri;$<@9oM&?B;qF+h zdpMnM(}?oU;v!oQ#==y`wFAjdE~e$N;?Kq4>$^zgH{7U?^id9W!5;NIL~FuGj59vw zy#rnm9KQYbqJ{WvTSjJ}OOb~U1F~_Z>4%pEBN;O*a76`K+TgsHqETM*Deo0VJaS19eV{N( zosN+E;VWlR3-q%bwV}RiX;yVsIqHU-tSDMIyd4fr8df5Y^rUgrz{?4R{%A4eI3X{r zDaaoV!#^KHV%+7VQK7d{-rq}ea8M)48QDRJO**25@UnG68AuQTiP|(0z5tVW)^h$1 zU5l^*lrlsdk;k)SAVtJGabm%1AmgynPUiXc(-r!*;$GzIpnAZkdfL5^GhM1JX9F#k z7b?qDsgw^^mg~~Fp1huI`a(0Lv|<|6@nq)~2ixhkA~d5fEgkC+MEDG;O`$+KBX$bg zvvV)B<@o$;r!|nl3qe-Wx1a8emv;T(;#hvZpd%S|ou@CA8}su-gdi@obfhsi2PLfI zr=WO`=nIhr1RmV>u;5Na&CbXnX-(fN$V|hFjEuQM!ACeF=jNI;0u22ia&Ust@KB`; zBLR#ZfB%M6%!u!Lfy58&q(HSIl^q{yv-<2R*Xk*y4a3@FT?PBMduYgk-Hosj)+Xuc zQYmtkwI?<-)Qw1&1<&e=_LJrcv)C&|C4aqCQ-dIi|BLMVLqnN!!|!`GpLMzyyLtM3 z;d3)Xq4#J1w2?J%;Iw|Q-y#RR>n1BT5)2aRiwW|Bx4Q+h8l!eD81P=hTRM2~;33T4rC#<@oaCusaa@f0 zHeHg)!%n~(Hi^C>H5v{sat0x_3Yysr?4$Zr6#*>#qgW87^gvFuB}=vb!DPQvDMTyD zRn>UG38~SFJJ?-Gr=?glU-2r@F2B3SsmR0DaOXuU%$)xEVAb_yJ!$p~j3h?Vk;qBC z*i-fgoO}o|!_>C3Jwtgd7OQk#AWz#rkq5m;kps7#c1C~!<9syqbLkOUm+6^>6KK@Ku0;{9zd5pK50}cnc?9~rD9ZJ!svD-npTE} zlytOW>&f<4Q==1lBc6<9Af|0_4Mv=0$q74Um%9D1mFwwBDiLj-r-M6*n`-7uZqxn> zd#OrKU1gggMb)@rn_Sbwe%9rausU+3?qoQU?ddKcQY-Z6j!uwhdpJnULDu~j5u*yG z|I0$4huzBjJh<2CVWW;rg%z)n^%>aKRYXO|F!}kAwQ-|0^l5}wjtyIzHd@18<1qS0 z*fX>ylXzAqZ;>qaK)jKj6%N8J?eC~9B*Pl1RyyYG_JY?7|LD!T^PYFYI|yF_K7xAU z7Z^SZNGGHp7lI!;VM!p$JBLsfa$k0tGVe{>7-zoa|&g|w@N^o(2dVo}p5PwVi# zVx?1QBC`q>zay!k39FoxRY{iPU8ZmM7jPj`({SM}L%NqfKkS4?O0q1ea&|B^H0r^@ zE%;Fkv1Q^%2yE6n2?l}CCm~gZ4u<7QlnzNAQMjQwLa&R7e10IGPgt&-0RzrWl+>Wg z`t+7l6?-z@UnunFT@R;ZyqVNsHmF@`czC%Q9bOaUnGRr=x9z9{JrL=#}fNREo9>n zrz;&ckS?bujg*l@8XrvOs-{J;7(szqhEh=?pY9%Wx->g_TUFzfe20WQ#h)CH_XH9Z4rMfqxH-IFP@zvh<%=^RFm3%E zZ#mxBhrAxVoOpcgaJ1+|Gs97*%Z?)jO&sO^jQRibN-w+uN zS<1RpFOq5FUIq$bM^6;>rp!HBC9|@|LFANlT=IA%AY236tWzVo(KvE^R^QTN_4ix7 z^wzUngSqLYMSb?ZlGTrYn{0ZAUW&XjCq} z&{j#4@cPvm2`Z4cG~EcIx5iu{*%zs9kLI%8$Oa5DywHPGN1}<1TBf1v_rYgXN8I3? zj#W!ZZ9#QWCt6Gh1p(wi2f|^6_i@<$K$2?MnALe99=G5GGY#!r*XoYDe~sGjou_ul)9n`M^X~43 zH|=Ri(}-2{NRBs<25v@?S)ZIXDOF@Srbo72H{$4lB>e1ld2t03W1 z{UOv~l;H#3DKFc&P}6Rtnj$<+9}RD>rfoW?ZCayg2lsg!j^C&uUjVBBZRqdNl#Ur; z8?pAV-H1k~kw4j(+l?9pe)C{$k^#R%4l$V(mI=HSb+Sn?!|OpsU{FH5l1HFqBc~ON z;vIJcHp#sDMt+;4?6~d_KcqU_w>x8LyMGWVIB;xw1^=Y+B-J$ZwftTuba2rNIn&NL z8Ee2Au+tn1Lb^E7rX%Az!Y4{TT!mTnJ^qn32-1>2V!6`mJUze9O8hw z?ispQ@mxsjQ+TD*h=x4qy7NjbAamu(TOD=BsDaKOU83Cj;IB+qPh~I9cggdP9$lJqgN2-8Yl8JGf1AWS(bCcb+ROUm5$xNDq7p-@?zhDovrLuUx;FXF({?t2P_r6*yK zJlPO-NHFfeg+NkJs)|*>yXWS)+I7jkeV25d(z8`?Dmd;sXOTrmgbdDJsLUg!L0kd# z;S!{pw*5W-fwm9Rj!_69k{Szc0%4|(Amam~jMfMQ1-Teie1WD2LC34ULK=cf=~&^YGK7?E-J&ZS#oq8s~p!PlNl>2#r=rk77h3#k?q;m=S55o=+=x=pbU9<*;;zSizsOSVX`PCqC-y5?5wF%uLYv<@D$ zUi~Aw{?%>T{{-_ncxGKZGB5&5>N8vBBIldu|JJ!%BNv(%ytrkHdH(q)wr({qxPbT& z_VyTQ`*YfS(N9nihZxWVd~0yG5RY8uM5pw3(Il`U&Aio7F1k{ZZ-zyzn#;^+Ww5U? z9Id7zT_=qlP|d)NkYbF3)Vy?JsW1D;7jDcAr47-h@`uL7hu*0l}o&= zZkYVU04Vl=YPq*z+RkIG=88HYtPU<-b}O-y#s&}da8FgEwy>~py?O)b)?yx)1K$zl zK;pSDamXx&V1TMZ6iHAm;NHU{AtZ7q^l?35?2jq)y0_g?_g_hhVOY=TIAk9KhPR-~l8}X>!t?tMnXNnu@HVI~*1EH%V{Y z{x*I{A*Qb$I!Sld^(Wt*KNxacV)M9hN5*7=h|U?oYAw1Kh9S6Vutp2_1g+{->^=~z z&8lL&A*dIan^@5W6D|nk)tBw{WtYxJjih0fW2w;aa5xn$M>S+!m!qlh(6EB9u&^rG z;o)qhYD^l{G7P+QrK+9b7m~?>PfOKc-hXE}IMu?9f-474yV1triWL{*BW`&ZX}|^F z?-Blj&KMy*g;w`YBW_8$b!n;w)`O%G=<@Ujqgo*_Tx!;2oBPiy&bB`s9KAJ)lW zu@ja`g^jQz1xpW>=R^j2Y7#A8MScVf`SvuGf|-lSiwz#YuLD~U(>GXgN2~MjiDE6_ z1bug_w2^PFqUAtldn z;r5gi1fdk{;!tli+Wcn;GAl|RBxtfh#tTMp;7VOyp#L^ESE=NJH(eym^P#Pwfz<<{ zt)h61$gIZ{40zKEh)L7<9l+?l2rccXK?+u7QmW8IU@1|Q6hYF7YH|iKHF7ot!X#K> ziw=creUQBH(3(|PqETceh?JvyQsfvXQDp}mpV`@@nQ zhvj8C&TB$Oq}z^|3QmE+yD#Dd*IB7-{0R;rWGkUa%rV;ShxE|+F#32sasw|$`@yMc zNFxzv95y!$!(ebz&aj^da)&{a+7#vK2pYhnjU@)iwnCe$@MlpnIaJ6X&k9Kb%D+=( zuu8iy5RzrfkyRH7A-)-o+hFP_a@i=?T@x}gF6VnwM>V6<609ww24Uq~^lf3=HWfJ% zv-ObtexjBo%b@|>-nR|iRb>a%3tb_FwQLqt1f7wfHJmV!UXlo9%j0siL+!haC=oLj zw_X#LL%NMGifKV#22aNS5JxssH?)gsP~#%n8L$oo0U89YsS8%rQF=E*U_m$x3mHKt zgo&^aMXDw#(22wdB1 zcbUhWnF5`V$I+&ea5d5(=n!ctsS=II4u1)e;EgzK&Ok{cu?waNeKS!a@^}Uo^QH1D zh~wosXro!N5XVS=331$0GsjMakr@_vXajP{P6XowmjuHkpa##yqaa2Ci$jsEv62|0 zx#cP2z$g9%5y}uYbr$XJf-OaRiEM!mdO6xI5)3I^NOOcb8cBx;u90q9!^jc4JdL*} zhlI(|@m4R(x@sp4wbuEt}oom+Dv(+qKqmfw5kHwIk zU@pHtqhLy4V6AAsie;N1lf>s=CEL+}DMXFK;7Ac!#pu%>isNRv+$gpd#Op1XtGM6U zNYO+Q@DBR_lLDJ68mwtX8c{tk(cxPlxd1~6-I);9RIqp%DkEipQmP5IjlhbhHRRH5 zc*opu!!DPnj~y<1WxS9U;els1FfJpyj%vh-^Bsgmb<~C>GmUlnIIU8d^WKZoP&p43 z#ThI0kyxDK|^pQ4WAwJ&WCB$L63Bw zOS@Mc+pxbYn>Xh(3yqu3CPxm2E)8P*e^TAFPji_#7j^+ciWEG`*qHvQq2no(R*Ov>&@XU3V>AUPDpvl8>v{(ht)DJoV>XF zFrti%2RvXHIvGW7zyN~{7ss*Z#WGExB4bCaF-jdFngshpfh1#M3QEOI!g%@NuW{IoSV*x!Km@~Bj?u7b8Uz}Ad-1J8>} z6_rNFAXFoG*n>fYRTqeDAR;gd-3dt8Cb8BY^A4XWxdjP}Q*}ztQE-SR7)&UL-bxiisg$fM<2UAk8E+#N|JDl{UB)A;>pY8qlgh0f`NFy8q5eg#K&?6@{a7Dt3LgL`W!3v2( z5`;ST3gEE_|t+?qjO&4(^ae)Oy#Os5ArZ&&5=mOPxm^nMea&_%x17Q zH^@6GV{Iw@<7u&ulq<*KvcTBx#0{eG&Qoqo9=b3^4uYKEz_y|6!NBMvKOOnD$p8#K z3->(s*(uff9J8y-j6QclhySyZ_ZlxLmttlyQjA2sFMd?hKB~pu``-K;HSLXh>{YLN z-Ibblr3RNnyUtyhXA0$qVHG^32~cu0)QAZP17GFo=aGA|$0}~J=j`H@R>f+#`tv70 zxu>|vnk(+9z%|y1V`hT;koUK}A8F@)P&LV)Lzz?r`W)OA>wphK#i&%ohv3G@YAILn zuTfq>E2IUc;DEvNkB zr}ujecF;P^Q?j;$JCb`GMlO1tvb9%!7O}UN9Uqiv3@0XXm0Yf(AENP~!>xU9XPw`M zmmP5{_~U6fto4(7gMnkX+X#^gPbT)&1{A6&>n{P(>4e$Z1Rfc00E4vNVK@i4K4;-Kmow)=5 zS)TTOeCZP)pT#2}#cGp5{_==~lsiZ|$b39HC`l;*FMC-XtS}bCQypYI5i<5%1sNYw z!>ZxMk(8VkWf@6eG z*xZ?}6K%}S4BBw2ZuY0A{Y*~o&JBZ8_T&>Y=dN|Td-Qxo$qrdlXU&0`i08)fKlH@l zUu7OVBmrX+OJFgN$xlS136YiGxXtp=trc{&Yu~ns%JLj{_uDZf*UVyru0t_<|E|06 zVfL;~Xj9;O#OVJ4MlV@ptHjJBg&w!Vu1Hl-zD^mNq@K|hb4W0PSVi10P&6pcb9*#8 z<~U$UlDk;KJD0!m3qc*tA9u_85ZAv@qiEUISh< z^*ZpTwoObv!d}EM#g0y-$C4cca|1yw&@^~~Ip9TGQDaX6_*49#2WSOp728@ULDn`B z9;>Jv&EALRXh0hJ>QQGD`w3v>>>P9-?AxW!E{^IwYOT+-v78A58oP0A^$?Enmh_6@ zVv+5nIvknOU93J$U{@a4ZK@gG(>NgYS3)BO_U+Ma3?+R6(WO&9Vv4JK80V;a9qw8v z-3f~S1U_8hB*ww|1k&9mwYTY$CznQTZKr09@tPi)v$fjT9Tk1Y{fctWC3?dThkY;X z`{5&PT^oJ%G{ym}M6v)oZZ=Yw=ECwD3f8JsR^bh1>_k}(7wlCgw$XJW7_31*BgH6- znu%Srf~=+jw16O+A~X|%9n>DufrE;}<_PZ@pK6CbLNapDlOSaWEvjo&6q!v<54K{2{#6lxwdB9hQj@T zOG{eXGQA4kK$&rIlIiI2U<5*3g{u%(V3_C=*Ij~9%j2(~=vr4k>3IhaVmp_v*Z=N> zvU3LG=Tt15GD#D#r+Xnu#>I}Mbsy@FnvB!J7d44@N_QDoF<$&BbrMN2h<#PCvXOQv zg(nW%&Gz6D6xB}r{-0ee)(xAETha?dVYlik(eCwn$&E#a6&LBFu2P86Z}?Vq!%py< z<7^eS{vD@Xkf2*Bk>K=m<8&h@>}GK= zcS6`ss)VdW6`KgDRXa2if=G!MLQtK-7?vF(SFf|uuv4F`>$*DJ;~aOXG>@&I4+8C;cA265arNZe2M&RC1R}tJe)#smU(d=ydP0GbOM^*)teN;F3^r>OoQttVXhd zFyYjS&~^*_m~^>hLrN%01xk4Y|JQ_JX-Y+r^)7; z6jopk(#p^6h<0Y*b*G-!)`!4O;t7uov@`Ua(QUj=9XGQua3w?-6l|QMD_L_~eVzU~ zy_CQXXSA0lcx|FY<6hK_^54#+|H%-#BXbOla0{R-G- zFS+8Rr((lV{9(UQgkW5X@tn53sKPt@i-t`V931M*~L(?+G(wCq2BI(5^bFJ;uD+Z+$$S8Vn$&ls!1^sRcj~B_J@#nj%c|YvZ6c1 ztZOINcIG^-^~+(#Z-(T@|4LxP3ygftAghA3#q}Jf8`fG=Ct-HMCWe!e#B?Ad*K;i0 zMvoGQp!~nT^h*(087)|5RP`{(8oD$u$MWSN7h$ecS1eh;;G8e(dEJj;u^P5VLG?`R zK@+lUo(gvjCi4~94dp1QW>DR2*>1_#@3#F|S4t0sdwuNTbVVVr=X5V5&!W*_i!$=j zLPF0DY}ZkEyGb8DgZ}r^GAY0i-WWYJf`T>8I6@hfa8*szAt=dBwfqa#tW~NL3Vc~u zLxY)D^2Gt}7O<`2yjQ?vNx@Q-wBqWrR#uOxcwb%AaI^?7?H?-92wA8V?^ge?f2&vN z5(kc9n{F4&#%vg#-rS-*8ihA!vHd-dt<9D6@IATQ-NQL#Cd2h8o@oYKByX*Cmjw^Y?+4MQB zbZhV0<6WA8^*zoaOcD>6zcX=v?YP{pv?_t6XZ7GI{*y(ea0Q@2mWOIHY@``;?iug|`Ct zFoMeu9K+3~JNlmDg7)S;U#hGf{k602v(JXrd_n5`GG%R#%V)VK?Aw=oua_X^y?o`__&gnUHW?!fhtS@lF14oeMUUB|dM! zoe+DgB`#nEHiJ{*T&Ibw5*&=X%G_B_@hCb80f#TLOzbFgTB|o~KfBwkB=3(^lEcTc z$A2k2_)SL~aK3W$rj>MKzrz17f8P9jGCa6rd`X3 zW)PKfCYvp#J3G^-BF)*|FiUZjayk%86P=l&@1zoDp;pX#FnhZHn*J8LA|A4W5g71V zXm?+tGN^fVU5Cd;|2+l~6wMt(X6PEE`~o#7xFfqGkq#sBUIOtuEEl!?OO@O)K&2u( z`Czd(6`(=PSUu^59qD3(BX~f5ORt%_lf^9sY33d7+h?!I5S)@2!)vo|ci$m;(#AMM zqV3T>Pttf2T`xEW_?=6;5@(M$j2MIk;v0ofadhh%1POge+d;Pwad0b8PflhfFcPgY zfsvT0+EhLbbJP9_`N|yFdGbKE72J{+G94M%pse4Pjmj<2G$L%Ir#Z^;N5YNZnoM^4 znyq;oVu`W>2^ALhWt@h%GQOZeaW13`x~Wpc6Gw)qg#R;nVB_&h zDvTU82BqD#``rF2Mgbl3fXWZ9K8H+5oWaPKg3s?_15k!VyrjucNegQ)|NY)f0?Sr# zMsxTe9B@KDQLu94E=E=acxV_Z3@A<32!k@MpG|+;@`L-QS!HLZTCt{ZlYy( z>VP%ck|-e>{|}2BA;HDBHaA)Se4o`BEfKVg@9Q_3Bo>@!NNi$=TM(j@>lI%!xI95R zNIFY?LoR^TF8uV~+Wx%IK=8fU_zlNSMU}PfV+3C#`kzG?F*NAwS``vhq^l*GlCU(> zLSjRZ!;*uK4|%IFpl*vPpUuwAW#gTxLM~qf%_G{fYY6!62k!4_9?0ZDg2)z9r4z~a z*0kX!{XT&4EgU3_xRq>8nIH~4k$J?fM51o0!}PqCz2%HLUKyL{QkhJlU0hC#hjF}Z zZf~=acF*2}aO9~>8t%E!x@9w#ygF!t39Esg%0MH(N-WknG&a;3^JBde$0mAXH(L9e zoBLYJBkk=YWtv!baMK^FG@7E0rke2F_*zx=5t@U3ZCr=s9Tb8Ab~jdI2nIsGL^O#N zF>Hi??Eom!om0t!&cUQg99IS&_V&<_t;*e`q(Bt2Bh`35i-OQjc4T6I?MEw)nHiT@;$1O)t((f3h`ISJVZ<#R!T1AfDpUp;#M_86HRTq}L}mqkpDgl~LvNgzxB*jJ9_UgN9s3XM?^J10@IeQs zB~y?5a{V2aecx{`gG?Yf6!;7AnOjwgwLd^;4BxKE5<}Va^ilO=&f8gCHs8|viRM4J zlZ$^Qo>!@ilzNef1r=|mWk#*z_ zNGupNBCR76N{|HW1G-^I-|+{$*p&Ui{qpTieECY{3V(BZx&jnoERGm$5Ct3 zUo!tRvK)dmR74!C;G{;20&IZue+?&}>Ypc*tC19IhslgMrV?q-cIW#_o^!#hBotdtdr1HoU)l+Ec#DNl@tBhN8?NlV1Nr92$ z<$F8H#;9;}0%qiqOd=h%TfFS6@JdLwl(V^7JIq$4qb3|dcRP?n@zf#L=`6IDn|C*- z$QY@VJ5kJLdPr;(w$EPTjRRWV)Z4%j9_3f<{nqbo|Gx#$j1JHb-uW9%-@O+vVoPAAy7l9!{&R#4|m2yd+y07Zmc8* z^Q;tjxSaDd5?RGZ>te*ei&+AWlAdA0#c2<7O+OIG^Ofs9Zu#^6X=~Rm>+};}{&MF} zN%(0m-o=}nM%C+$Oih$*n7Qp|I%udNSH46N)>xZ_OV<%Uc;oL2MjErO;pF?t^{BV8 z;YHW;^Yi}ve8n3Wa62w_xcqdks+KA1v+=2^_-C!DpE+@zvCG%%Nf5|2Tq2nQ!*ZFQ zK2)n)G)lY*;3be)O(t-?#Xd%HW3cYy1yP!-mUo)(^!rk=srW-?>gb8%CzQL-8gh@% z&(HtL@bH!COujX4b$7?(E%}xQR7Zy@NZe6o7ht=A?3{)M2R0t@w6d6c5;8)ciu8+X zD#|NaF2i8U)M@| z&mHRLpu5j2OSc8Qis%5uR?!1_r+9mdkEeS-#7+9yDJtAGD`md+=WzG^QSM%U$8gMj7JEk*4>E$dNIF zHjuZV&SD^^C!ufhV%p8{3&#w9YMSUY`|Z)OeBhX>ipQ}>Ox@0cG?AUW6#`}i^_OQ$ zObR+L6~=4G;~>Kp@vC$bI}8)rZmW$QujKr@r>~m<`F#_Zn4_cbJv(rBJ6(T)5-63bl?c8CXYbC>Y9I9N<5j11s z0xmq87@4(Gldv&?Thq=5@AU^-?Hd2@CpE64Vs7yB5i|N|U=MsWnf{8auOO~Frkrff zc7vbZ7nupS##g|*1i5x}T%QPc7z9Q`u2p_Rz>b?_mgR#A%o4DeFWEP4NL)Q>(`2op z?Ir&G#eDIL;|K54xqF_(d;SfQCw`m`$-n5oh$Kah3I`qG9Ao34ktdO5z>&yOm>(UH zt42hG6z`T$B_+4XsFMFe*FuiF@k`jg{7IxB8Q-!@gJAm>$_v2jzS|f=@V=ih; z|7JdW`}XZimQ%}cAqjfY`2yiL#5GG)fdnbi500J(t=Mt|1)>LUum_vYHeG4@aMQ<{ zeu~lF2!X*Kk19z=KQPzF;f}=dosJmOcnt#5BNI=|{n|$odmQ>5El;528E@!Ih_Jy5 zR49&!DNid>L8xrs7%{Qfa>fdcSU&?tw^7p!@X64Kup`n;Wvt6;3M7Lwr3@LuiJ_=o3?Mf&+!I4KS92am_=Nf zl>j-G<~E32G6%54?(ZgbIJ``AguI1*!ty?62N5*zb#og{>SBtFwv{fn3*w z!X#68R9Z2YxR!|Nv=*@4g7@@k-*vi^@!f6?<5g_Ws9{`la^AssaxVr(WhCQ!lkr3D z!$;w?)X~F?Hp{q7eMa}h(2(Wa-SK3%Xg2VOIiid|`4Y-w3+z2FSRh8pW|miba)T*9%F=N9Qs=D!|Vfm5wEa4W3-f_YZc z$@JPOT0C!6bw2^Z;=v^g6oJ#3!W)ff!i*);z|_BrBzjIPdd6j_f*fO9hcJ*(D(frE z!LN!$PQ^?Ir`za*j~`HPERtg?YNV5gC*no!#7)bHdgy6nEjeZ0qg>J^~?z4}~5on{G4a z1nXtD_yqbP+6yXoF$C|g7WME$ILw>)Iti&7#@_&v6p%0pb=o3pAr@65m5xPi$=9en zy93t_D*CVx8uB(~HQ7;CU~A6?aE7OSZ&-)}K8=04il;}yT0ICzY}9y^SXrDbZ*Af}=Q*({$DRW9gM~7OtA!Z@(h2v88zsx!8{$Y)qnku@gx6Cld&-6o>{Py{M{jHJ1trJ`QtgM64BvO^j1fU5ble z5$6V(bOHQUx4cPJ&W%lNvILN=4xWQtbyDUV4Dqob|8>+-(=o=eGeuMfwS3O?tFzEU8wCh!B`IQ%?8Am z$$w>J4f;v%pt^cx@Mbmd^l2}9;FTkr{Y-o!JrRG?W3`43>A%pH8fR7P+$?aT#RpQU z8=w9FS;OwcSJLyph@cR*`yVqm^ID43+6>}DAcw*L)e!Djg+-Kt*U9HLv+Z_od$zsT zF8S4iNwOHPsFn%)M5!+_IT`6IovHccw$0}FTtAcHvJX)$P^{i^m;%975YP+ z!BB&T%Cu_?aDKKDVk5$eYOC@IKXt_OCo*YZMbI}d?e+^^!ppYhS~4E#MT@C)WjaV- zNMzEH@egKG$t*?_(g_s5d(cbfkL>r7sA?K^2HHjJqJexS*?L8a2&A2Wy+zRBy+z8^ zJV=dwVH~U4m`=vnTUcGMUk6zc@;xbVh{$f*Aj|OyKfB5C2}FoSKYXL<8@jx^w5KOT zsQ`e{vv+jHI4`&yG* zg0U_-^CbM*A!MMtV~qlLM7Uwhju;X!BUmF^pKatsGlyan?if0S>$^_0@%(l`Ojl{B zq}qli01+Qlu~a5SO3os>HuA6$?nK~FA&SDzj7A6YV6kk+zuYMeP7IYwa^uHhDDGTX zVsTfC+fme(Wbq`mDQP(qZgRTNprMWu-E}uDfPQqCfhI~+gfnzn_Z)b4r5uU*rPh2~ z`{3Y@^la@64HUj!80i7`Y)^Icv9`+2?QmSRG}@^bns8s!V@QinQ6|M;@@7KOK;ywr zaHt4>f$f_mFlUbAGz)nz$`Ok&G*m-4^>Bwova<;46@5T~>%f$$SQF&_&G-Piq|!Mz zDFFjEKOZC*%>m}mbv=N?(w@sDQ;37dGT!-A<`}+YE@_hid0;idgoqzyrrMGjOaE%V z%C&pfz7SWWE1Ip)YDsTva_r6-JIOrxbOsN%0CqE>WY8Jln7{qIhGFm zEYYymdI(k#x)P4%1aw8Bt+d6B#L^>U!ePNrjs`-b+6q7}f~%)pK53FI+%IGR#yq+V z=HngZN6H6}4J1pG<<@~_vqDVYwZI{8Am_PuOB;@fR(3ErG#+qdACJb$lcnUqv4dr- z(#?bWYp&my2^?bwxk+LftoUGXU_vuw@F;xryxB=3UYsu(6cgbEcjS^0njy5JF+)Xm z5p{{oSo!6jrXvVC`k2rZW!;WDPW-kw$KSq|tSE$PntYA^XT$7^ejB>J7@E|6bXWcwK;n0S#_@MXdg%0Jr-yub9^lbc)|l4Ln*= z@&^39xO>awf_EDI`b*)_X55#4sDl3sU7}+vRWGKk5DChLB!LOk5zCN$@kk}m(iCn3aJJjm+oqWb|o^hU; zo4cQl;azjU12#Ugk<0DbQ}`S1%Cuy23XBoOE#LYF=MxTp&ppFe?zuzve@{+6|1x)o zf8iPd0%gM{$~suV!W3A#$I6!^a)JHPbqItS{En8EfgyMqB$v_Q}r+gdX<# zM-O!-hK`Rq*?47WWN*8bmLHi$0UwL%0!am=YxufA^-U>(_FG>4W_Cy{$U}`EQjRF= zV0*f~Bi(-BKzq7_%{QP~4`@oi%Ceq`&!|Kv==D)+r$)fN(IVWaMAIWS1mdeKQhHI+ zs}vn!iQf=<<;=H;W%>F{?y&Aun+94pUL`MzxD1-e+?xG@T$=E!;0zBM{9pQHI;ng ziO)UyX!6vls}D~lo=86NRDfNzwQk>#87B6#AWBlwO~JSD(K5PF)@suMvRJ$pl#sQi z?`nES)4Lgc*qezUugPdftrg5jVLXd0d7--xqC878gVf584dbuEg(JhLAtdx%vRZI+ zut<_oy4!*i93MtMV##&Gc;Q04wPLF{O6o}lI)c-dvN+ft{dZANe@GZf9(0`Yt=Mz5 zq@POc-5ZT%lLy^w)COS_lv|6`;;1qrrnNVTgM$TIXAxeVNg@fE(Q%1{w&Ex$6VLlxx@$%CNkU3qW=IPRH=W$ z4yi&Ei~`E5Vgeo!kX17q@uG1LFhfAlT2oM40gpX%28Hmne~ISS{&e_Fh^R)tl-_O-uV&StAd_DSuFfURpQL^ngS2&aiE=78T^O(cDp{c z2J$1ftYUdLQ7~0Hjop$zjFD+y6@VnQG6{rC)&o(eZ*Kls-yYZRpzi5pM{W?&yd#sS zy|K*#!zkm}*JHUfurq!v;U{8m(EbXzEa;)5zkqnvv$0`dL85AySFyTWo|^Iw_tf^M zJN!)b(C+SoD*A{!J0CF3+GN!~z%y+99N|@W>BzVJSZ=3?q!tT=wm;A&9!6V2 zgAk|LL5|)}n_x=RqYzq$z}+Byvc_uzgoxlWlAsQ>nKYrk7nO#@PKdwz3pb{oFkQgy z5{@ac4HENB)XC?jPCL>v`V)&y#EK`dbPf7hn1KwD@K3ueu|>?tTwG z9&=n35yQ6$$*{93=YGNSU+?y`an<`j$Yrg)E?_4ie;!As3eaGhdQsR3pmtun@Ek^` zsC``IfG7%tutOH1m&7&5*;+VAi!$|PXFOC{i@LHHO?$EZ`(s`@nlI(qiCZJG-JXx6 z-QjpVnfg+IZ9X4x2@T%sPKvQtYKi2`NNa1v%te|@_-8gpa&a%x)*LOCe7{tTHn&0} za*-S=Cb|2QFhcyiKX{T1ufXQhOndjCGulT+w@El_9M^pr9}F6yaSRmHA2}GYJVQ+r zI8nYbc0|uXIJ;h8L*8qgyznfy$iv!vnXkOy-?-_Vp86c13}|i`3Gl{*#2PWzG{5+3 zxYy{<54k;;pQ*Z|pD!}B6e8z!0#2(tMo(7X@CEKQjnBR>s>jh&x=Tmh_msd63)Ze+ z>vc@Oa;X@iOm$cWGg*p%66P$1(M zld&n`9b@BpP+(+4kBjNiv=}A?_=_;blpa&*!GYeM$Lz?8HDP!8#lP8C^sTp8ZN+29 z()miy&|sva*i(G4*Z-m!^NTM3RZG$DvL`G;%pU9M9T+^_+{O)labNyeGnaNm28Vho zdDIvaAGGxiZmdCX1TRvMl1Jfp@eXZZ3y%=910)8~C{=(KY4|}DcjgvV$&a8T*y6;t zWIkWuXBVA3sFL?vv622o6S%F{%!BglyhaeDis@>$qtcnlbXGdDCj<_vt?i5V3%u<> z@>u{^F2N=U(&WC_(?B%=6GisROs1o!Bb)6w4ip8bOgs8jbc37{zhtSrm{aQYh86c!`g`OqB!K z3eAn=w(KJ5Fy*)O zwUUFmA*+clD9Drr_reIHlh8KEqDugg<-gT?>k;d%){)KS(e=^g;qKF)e(PJkBaz6F z%gdvq-Q7>pmRhb79%8A2 z3XK=LMc?`U!}rwV{Xspnm>;a6QV*NaG0+5Wqy4Oa1jVmQ{D8%bECGTT^-!r>0u;oN z{Jw%HMLAx?eTfBy)qT9yNM09d*(Io!cHh2CI%gM#yj&I*RWe4mS(^)1EbB(L9?i$XsHi&DmQ1BF== zER3l_uV@7<8bt|afxQA1jU81enV$f%8xlBZPkknPDOET_nwv<;oc?g}?@JM#_k^!c z-1^MqWFZA!$Fy0BR7IH^>U3H(j#jJJN~@E}((1h9M^ZB><#&3fohnaF>ChI^9hKbGk~^_V1aW(6 zMmj6#b9rZ*ktfj;V*3aRoo&c0$;%~B(Fan^4-T@k% z;73C85tQxYI3{zP6I273HVvOZA#5YxwA)52VU@u;h zHqNfSgJ13S?T<_Tr)O=-xx*2M?B@O#xP)!uMkQ-aiGdJ|={D8LJ4rq$#`HMaSiDqF zKLmP377gMU-~%BgCVI!MWX0k=ikLTE90S?9(!JD`jtlw_L)Ba;P8EcLk4{1{+iUCr6Q^hbd^u(mmO7@<5AEh$2w3M(duOGna@+ zV$`C}f%*optrL%V+2;EnM^)b?{Sxrld%*)uiAF;Fs0%W^#5|6#dVXsSVLhq*Qs+pE zotyLK+U}bu%CAJ7;15hi8?_I%IwJW6>5Nq*t>cAlfr z^f`SE%sonScs5#&d3D!+=pN}8j>CS^NB+%f_IZ8axnM^QKc~al5dQQP+3GC~^y9!= z%Lf^9QzHS{hz9J)r*WX6x8*=D<2aau;=5PmeZ(HXihD2Sw0N|$;Ne+Yv-D!jVuAxI z3d*9GXoPaY_i5``;La${-hqtwcl-Bu^zBU?O6=X!zJGuF9=+MOZ+O@$0Yd1sIO#s( z=Gbk|_NCe7VCl^y_-@H{v?by#rfDZ_KsRH*6h5Nyw7w2`@S@X_*!cj~qaC|bR!cV3 zYTg6 z>rnih{yr{@yTn8OfZip&9v@{*JAT~ukK5on`_EUWRuF^)5H0(OOH;jD>qQBlv6D@& zrUwRMFs!)XjKfGn4_U|~jIf*+g>wP;1I)MaBT?ME5OgHEt7>@>vC1@LXlvxhQl(Z< z3>9$vnUqDYbsv!9m_+Bm|7D6TrPN|Pm2W0Y!uadur{`_o{4XjtYi{tA(8~97GVaMAA`^_aY3fVAtj^ZMZEQH z*yePSwQACQ)#f8pQwPqxvBMh}bpKTOdmQIC>@qF8$M-%GZ~ncOpKTfN1J`l-db>P{ zf?&i;Ooo)VFDy}b!LURTn6&x(-V(oS`iyp2|I>EA8$;GF>ms}Ty^SJ|Ns-=w<{1P2 zqg}OYdt^6S0nz_%FJ6H+A`XD#Ap^f9f8dB$!^nmr6KmX~?GGH?6)hh;$#=)@mP2FR z(YBF;e77D7ln)IQi4*D8c-raRQ?b)lNkww8&V%%sEb}!Rpd3d7VK!&jb#(P1yMb= z^|VFu*=!-w(o-_CSvj6<2gLK1NNLSDe(RrkL?Fbxueimek!~S&l#~>2h=9S}+|wRe zjh1>^j6zRG%t_=kM%zQd#lI5#EFm0nFR!&V&ja6JC{Y;EB}|*>6|u5qv$wOG;?PF~ z2Akq_di(Zwx_5N@UVTG&D-o$X%gurz`H`ldWDZoZ_f*ibkr@@@GAzh3f=G|nd|bS9 zBtQoh6#(u+U+_*x@Wes5Sb!V_K7(?-X3MIzVnKHL(1D_S!E2|+15n9SgAO^WOzE2d z!W7jWp|8?OkTp6JiWX2Wyj(bk4VmIZQ7`K0%6T*~xDt0nW0|<4(in3iAez)-hM6f6 z%J{Z)sbCY+gJ&pErNoiqd6|~2wDS{XS zeZwpu4dFy=#~@@lrV_>WbRh$bzm4w^np@jOAzsKP+*m|R2391IR=9j;UubOBB! zzSV$8#v;vz?c|xgF@a)dSv8YBl3Bbh$@}343B7f!L@^#ocDQbGrIE{YThAX8QX}{iRZWXy?)L%#LSoKWgj7ke>)-pA>coByaKKz?em3 zeJ5CE!aG);*{a1RCGYj#a%$@l4^U?R$m84NR_wMB)(U8m7Ij{k$rk2!=oMLOZ%(~( zLoJmG_~30 zwta2j3+XkOL5v4m(M0)?M&RNLmmaCP6BF*PM<1%Wp;OW7!hn~d`p|ca?y&}q@#62h!!2(2bfxM}^?G^x zwap&;mFdSPlD+!h2b&MKTpo5?x|_Sb-YK_QxM({q!(K~e%HETxCMS~B+?%!>BicD~SO=qmZzqcV z3H~dDfK5C}MZy2R#=ak%RxP>Sq1L$PMgga5!^)s~4n1(F=Wn4z$#}Z2oQ}ioSg5e{ zV{Zma?fduv1ik_KL{2n$*0JCx?58lETzok62p0wQPD`a=x?I10D*)^8$va%l64)!@ z!~mECGKq}Gq~@q3KCZeot{9gLES7GOGjMK()xp3M=)z?s-}D85VCs?&J}8Da{@zC{ z-qcieY6@?43E!O%fua$s98cgjcE;c8S1D6+$_8cb3Dz@V7I-q89KX;ZU9gS~)ZPO! zLu48&3nLbjG`lkODyxbiQwm?1mcluz*#up@Z&@LeAcBszE$cbd^jD0lgx2hdDpZtu z&=#m3J}cJyGDlLoyS#UI>?&p+7<<>rBS($_chP>V{C$N7+w9rzn|@a4OE6EQ?Lsd* zi7eD&4H69sLMC+$@x~&@b!s}Z={WNBiPNX;r{DIpb?w^M22W&8XXNWcd+x8MYe)A! zefS}?HUZBma-!q`rdPwv^IF%XwOk{Jp*l+-WMSf2QtnA6J#<0;EIN7T4o-IsI?;w_ zOc5)dAe6}D(Eb8wg9+P^c$UxvR{2^>Z{$F<*q+U{7o!J^d}ntlWdMN@Xrlc) z!5W5TEYs#i{fhow1BK>%Lv|@}vl}%?##HfKu?FbNr7WvXJ7$ zE~Z)WLCSLqzJ;v#CR33fvp|*?E3y9r<|70Y*npn9m{(OMkw`kx0uE=muQ>`lb45Z? zGiD!67bgi`A`(SKfDa?rO96XbNv`C7+{)}pL(sN;GhZC*hM$#~T$sE3*K=5=f$THu zWS?AZXRxVE-M9e+#PrI_bv&mwSI(TdqaCNFMQHR1roRhAM33>nyNi|g?y-raf~sY7 z{F`Td6l&A{8Ryz-Uh~B3UiZ4`)29i!PhU#Q*G~-33>+UF-FM$`ePFAvC6ABfw-rBu z-OyuE-O$Bw3?vp5Vg7Dm1ql-}J$0RYkp8ax)b-2dMBkoNrJOU;9o?NdBh})x6g?y9 zq^ku~FHP|dE2CDhO|A%;n4054$4c>#k7kvlTY3Q*2-%we}YQcZeM2XOMONcR}Qhwx% zQ0=WfNwj`Oa9zXsP(n8?u~NHP=}$C0uCeM77-Z${)=sRF(m^YP@OZ+yjaerw8h%Fx zat#8`kk$^mO2AD;tO(rSARtt94Cj4<5C|)@9C4Ho=TP&JId}HS?BF1Oi*8p}_;(f)GHINfZuUKM2$Nen@*j>s#<&Y-8nRE@A(YNIU!(#Ks?B9AQ2ey$04Rtz5wH zBdp%7tSQP(XA-VNWQXj^c**PT@_wq+=5=-7B#pp)H0E=~Jou%(kCfbQughy|bGy9m z?Y@+ryie8#Y&>8Mh%>7X+J=;auZq9EOTbPOw9CS3s5#=eQb)PPDkAo^Qk} z#|YHQXLe_kW5o$VJ`&(&_hw&Jw!aS)?HI;f!Ybrs*@e@zfDA9UX@oq(F@L|5ow#k)rqugG0e86DWK88 z_ykiW(60u(HT1h>DAj|*B>K>^|$5-vUq_SbIT{+j)*zvtMF&o<8+`0jTy zBF37INkp#L4Tas7w}HnGo!W?rVW`~Y)W%vNV+9`<)I;d|8oqJGo$hQ{{Bi{4Dj2UkvGt=ZM`WiXld;?1D=*ey{E0&!A@9tKm%!5>_*v% z=>Rvb*9T27I7out5H2qK-7c3oCo))&3#X4cK(|RFk7}=FA#Lzm8iz&4Q6ht4vx1{T zk8M>kL?NYp9T9ENJ`^=i+XFGao+y*wc;(2d(*3>*297imY0y zmMW^&z59-(S`Q%P6jL>CSE^t%*9Jc9{-OKlWbP`BbQZkYF0a_Ur&;|x=&bGg+PQI; zSHOZ4`9=4)yarA0BX&UQpnZCES;m-nsY4V{)Js&OfWsE0cGX5Xk==(UQz`%CLqq?D zBa~fK0}r0erP2ou)jkvy(mCk1mJ(eZnFE7GZ&%GL^d9ir%89n-^bi~~A9Qs0#;9!R z(SrdmVu0wjBw}CYl&1R30lm&NrnHD8-z381jsq4UZfz4};^jl{>tEm)1kdl5?N5+U zf<7UXmo^YoBVm+yZOJo-XK0md;n)b7G2+^&6A#cKSQgE^7lGaR zyR+uoX52m5J-tOkZ{whr$kgfH?o_v{`AbR{R>o7~ey z)Us*rdRRrOr`IPP98hAZmXu+h)S_>LuhzVl__k|3@VD`A5By(qFY!y}JkBoG5jNI!F{|NX{{7rz!)VSjZI!2C&z{(BMouND=HsAn%4*dk9 zm&F8`E$GPn$bA>wIo7E^`H{Y*&*;zR&UjCCC--!c0;CtNE|e!s-aEiQ2y<9VKr_}O z{&*~Z!UpIWDYFv)4&teB%czY1ZlV@Fl8D^rM1~SxY%mhNFA|$K_gGGTBIi{4x&~sC zg$j5!Wz`ZrlW2{`OHm7@cOn;e+T)3{Y2vR2n){m{^&j=u-Y_vW^Vmb-yJb}cdFlad zEK5jbNFfsbBYIDwCGjiPsMuAqSK?|ciJ7`b$M=tq6i`SA4@3McAbag#b>NB&+;%mf z+_~`_iVHcnZ=5BTrxDUBT2pZgCHN6}r%=QpLp8lFo{hgQZrgkX8;>fZ z=^?nbffh-!n_|Zpr<(}hCtC!YbUcHO~));pjeE+e!xg%>qwI4zx8Ku5_qzQnRaeWPm`oIg_#1}YBZq9Ob&l* zUfwX`=mNeJM3H?)Ltr$eB)=9u?EOsyXyJF>uSPKlJglBjr_|GGTFt6CwWQXe4c+(- z7jal4(in*v2Ghc3fGQluXk>gyl;2ivY@b!-0J`vfre2|8P%9mgVilt{7Vb`{C|~1d zafA$p778pO$e^rakOTIqI*tnt2JwAJy$I{VWdW<6=NE1G$hf%X43AjmzJm73L9ae6 z8;D@THL`ydtNZc=0%kF;=PC>`nBRT-_epu(ps^ELo8Q+BQ^15Yi(rH8D_CRuF}hRH zn#uO)zWw8RSl4uLKV`$?k!e$u2gUK>QDMLHRKzl6aE|UHPXxwIZJNMZuEXkLF%b=5yRfUym1P|^rQHfqSa?ZAOhzBkxIjKc(Z``2XGmZ(l(8$MR{~qn+=DnGdT&LR zGLo5*OC*A`JunclXwE7Pmw2SI;3UD4WX43<1TTvOpehAa1&=|~PdPxBF~oQR;d`wZ zFVV`I@=)%U2gtYFuhHcBl_wF_$92qyOx^R=jYZ z`d}P8ZQAh}e%vF~lb~m*q$yQQCBd<<$?h6=p$WK`6FU$!K-HHw0+xi9BVvKjIcZTX z^ceB}V_jx4Wf(Yu(IkK@Pz?$rc^-M)flm}Blp-And<|*mtfX?Vqa<1=H`A7YAdy;)Y@{?Nowl22(lRD~ z79@{}JFzb*GH4TcO>jBo(LTHd1{uDT`VsYUsvRlvdc0+`k#fDKX+9z<^8y~h!WFEw zS?2%in|`k8HsQ$P^(l~Sj83gVhSUeh`eHOUm?C#c@(riRzd&d?X@y?F=628F|!ZtVYb&agEV44gd&`)JqTZl^gg&eKu&w z+J!=m-EJT{C?i*t)yI(KM*kuGL9yTe=BA*0k8~987h=T?-AurPm6JjBlK=C4W+xKZ0v0uFkBS%I2$;Us*rmD?u^|R zr8b&I$Q3+H9wDO(O27cmfl49a5^<>sQ%(@|81hmB&6>L& z>L8Rr*>Aw$hGu~g&#>n0Q8qAH8el{Mkibk~Y;q_bb0Ip^-8L*IM+}G43`C8Y#ECNL z7n3fCCuY{p6rdA0c)!DP>-AAsLtc zL}o3n=V|>uq$Yw(fbP-yG$*r+s;RhSbL4XA2&0IRQplfWiILQ$0eNAIKvJ`QOJL3G;zli*y@zJc|500m5H6+U5xq*LG zBTLX$76UC3H^hZNR3OniR&ueEYewMG{O#Kfd$*~1mz?TC1CT){wU5}dr=bR0-WGwA zo+qi0#DauIgcVIhFhTpkUd=yr-bHc-Va|ph&{5AK*umitv4$8Si>gAN8i!ptoXV&8 z`>>fKj*0)n%o4D_8MfKntFv7>qgQ3Tcp6AKFV$M~y~%XS&oo26>6GS7*2_H1fnsaQ zi=?bH&KRmUvio`>l`5oC??DYt9-&13tELCPWZJnz3@7t!u9uZ3YG ze`nY`kvQQ3c^URmE3&tRjF8nH-&mI=iI@c&FP3K6rhPyy+S_9HIW2qJQr^2d4tID* zz4o~RgT8p+=jh4|q+Nr={NRyNOkxM(p&Q;8E!YTo+oSm%9!ktA(! z_aer5rtFD`UXET=M>4yl07E6ei>TtrTB;?4gW?OJX+3L14I2w1G9{~q1l)}L`b$=^ z^`fp~7j-)fI?GlSArg!|pTb zKEEifhqSB*{g}wq#(welfbXZRnHAy5Mr*}d#BFP3P#>7YWCP`~t$a^+t6SpOA48B?L=3g(ewK=dZm9C!R1%$U zD(A$yD{l91l)Pk8MaL4fmeZFjz1KZ}gp|US;vjh9&@f2oHzKv-u2eLUYioB89E|62 zU$gw)t~O>=Yw3$LoN4U6KWas$-c{^OCCe!sK`JgWfS&7i#(RuZa_m@pe(&4dL-7Ln zf8nVPxrd}u^s#E_zqGz`8|SaaSQH^h`clZ1c*S5F6Q61Ao7>PZ$~8B&gH(1R5uXst z>csTsCNmHtC*Op7X>>t}w?|1Qk(8U8GXE%6^e*IwV~F9FgQ}@&{Z9NX>0fi4bK!aT zABk6J@)`2AQ8@$CEf+QJ56@!@Mj?Hk^T9L1`@`q=iXIEEr1BTWD8WHvswL)OEVAtOp1%G) z+5Db#vdAhG!$UD`CX;SLk~p&fJ8ny7I<2ClVJ_t2sG+mzKaG2)mF@)JyE&Om8VN56 zqsbCz*l~~QFiJevGLudobv^5`%`a(dZQoHl)|f4;HD+TWgj#pFWv{Lv=LQNaQBH~W zUX)nhEFaA|;Nsf3BVD%m*Qx`P`1njX*C(cXZvlfaZF6$Uo(`OGpL$CFUYnfUB$H^b zblvtEw^e?y##!5y*eV&V3owve>qw5W94B|Q?A+;{p4il3 zToX>CROgITbc&w|w47+wHid9%!UT;F9JmlE0-FV3a6CS21@yKI;NbOzZZf5{?oL!d zp|9FEyUHYpA|ETM7E5-yThf)5?<FKzsu zHBX*2A479^VDj{iB0cblke=mP5Z_ ziGnyhnZDWOv3_*%`~W=w4k&UntimL+uNF?-+MgF^*XjIRm>LM8c_wVq$Pfg z*6bC4-sc%x6E;qiC+<0d%Comuwbb0gsngAF?JrK9D!8?pdsesd%O`;4{em^g!Z$T9 zsL%)&fXNHrBbuvl#7hg0PPgu^Sh@HBU?aLKt5rdk@3ivhfUQ040lK_6Z8XMI;PaJ1 z&lzAR;c_NE@jI}DnVKlbaVcQcKs!(y1Gc%KH~769UHB_0&r2eFw0K^s7w2KzhpSj2 zEHD1s4Xoj(5B~ar$W(7}Pu5NK__aK}{9<6y43vffUnVNU{k472 zyM1^x2!;5dTkdy2VH_yCor6wir!yGYZM2snyUkL&xhvA%9@%A;N_iHi4D^bm;iO&@ zSsD{$G=qbqmW*KY%@ppZWv9RFl?Om|)EoVdFE?AeBBhdkjNZD0;HD6HkaT!f5<(|} zz3s%}02IX`qKH1xGm!pGi@C_DgpgyOzf0a$0{71e<_cYxj&X%p=a zjvF?HMDz#a?@e&qG`-{H-eyWN-)L5_#g-6qLGx1j)b5OaD<$Et5ExZUi7Zoe22kR4r&AY`5;&-0x+UA!^psDGm_I@I^t2t=(((Hqfcp^K6jm#V zIKp@X&xB509*alTwr2`fEr>5+L-E8Poq?{;+n>rv#FoTu5%V?CpQ<${%V;X*t>}|C zI$Qj#^QHBq4(JLlI(0C)-}fX!ln=V@pxi#>MIxMEs%*43s80i zSQ&QK=hhA|qEu^&KP)!+HiCA*kO6!}!jyJYZhjloXfxH?(VD_qb6*>}?)X49-rAkJkQ z=RE&Q4h%N~;|n)J`Y7vIfVnz^z2lh7Mj3jHLY^eH`Mfq>Vr32v@p$}Yv^ow`J-TtE zBOKqvi;58;R{T?ehro5#QMNi|FZ(dix6j4X&GF~rKW-pfT=jgxWQd!fk@JzzJSK_0 z!5@f|DWsU;`r^k#ZF?0Q7LR1HG9ZHWP2@L;PZq6-j0lJkLYT}PK|_3h`n%%)Exvi- z-@ZxmHvgIH-uhQO9LI^EFZmXq3ln}oOE3CeQF~w#(43zp@xmV$S^J>=a17{5p6@OB zr9w+f0WMR1;54u87{C7D#OsrLhxaCT+xG5og9}1%E(#6kUeg`QZsfZ0(TVCQCayEO z+fbW=_Hhu~Ah>GtS&5g=mT*j+DB;?OYC~eHvO4M>AJyB_#L*Ki(U{Lo{~aAgiFcB? zwkEjfF8L3`STT9380>Juutvv5hEeFss)b%>Y!qYx%F6HKu&ip`;(#H?1(eKJrvI(q zduLiX`E;hcvye@tay{vmWCCEj^wCTv*_`A0u0J>W6@T8z^dre zfKGKXUR&yi@5{9{w{{-%+-xzQ@pFweKzvaHZ`7uc8Iw^f<5!Pd36bQ(xD|W&SDwuZ zOTXoZ(F)ZZB!cYqP1l;<%eY1S5@UBBg@~Bvn2HGUyo><7>=!dRby(`7|3Pv^ytU?yjd|78Z)i(MB$AU5H8Ph$TAVBf5^JB8=!CZr)u`A; z;JpeaMH!KSb=1FL1E$lKg^w4yPV}G-4oq+hppm~Bso#j@vCLva$#{;Kjxxeh874s< zk7mK&skvkL-Xq-ww7C}>L=V!!Bg{l0f?D_m;>wG{OAf@qH`ewA406y!l#etqF@4eE zkr-iUVj@qePUEQhp*V3K77<0oWFq0WbarKkgX!*Q^_@g>A@3wx-;>{+wF?E(bMG!V z#JqH*BnmG}zWMm8OYykT1E%jA)LwZVOiG4&xKOQhv=z}BJH@sR(h5C-@dzdMgi0bX zBPJ)+WVXB9)|^MYZD}iaXIm`w=9*zyBedBC##umX!uMNfy0qgBaje*WLjs2wb1(IV zwa^rUv;mP4=|l6-3{_B+b(FlAJI0CyOT;NI*=mOZ_;R`(2oCqpX)A045er9F>{yw-O>0$AZB?osp6l zAa{?EC;#y+Nc1gI6|9%$zK~jQYWjcNMh{p~vV+8Xd*kwJAy>Zac==9kk%(8T`bmx7 zkj5iVci$G3P@Xbm2`ictDsJ3w{_wxb-)H;%{PLrRTp zljF6R09~opa&S%ZR>m^*YC7Yn9)p zIJ-uPGn84zfq9*6sn0Td_whZ)6V7vVy=kTC01NHl)-&qdvB(tzy3~u(>zWtkSI>7j zaQ8=j8fjM~T-Ft|adBlUMNV;q{AXUPUZ-BK-k{#7&frV) zCiP}Dqt2>XHK*$8oSIkX)q;A9x}X--MYW`s)rz{LR@ItXR~zcGx}u&@SJgH3UFxms zZR+jn9qOIxyVduoP4%pLmwLDQUiBXJed@jHeYitBuimddpgyQRq&}>^U;TjkL3LgI zkosXf0De^cnEHtNsQQ@txcY?pr22976Y5j6<4>xeQlC*b)K9CQQJ+;mt3IdxiTb?y zIrRng^Xi|f|3&>X^+om1)i0?3Reed_RR5d$MfFSS%j%cauc%*Dzox#TeqH?w^)J=G zQoo`8wfar$ZS_0qch&Ey-&g-ueN}x;{ek*->ffvXp#G!!-_;+gKT>zp zAFKaE{fYWh^=InO)nBOpq`t1cq5eTlEw>TlJ5Q~zE4o%$c@ z@74dM{-^q;`j+|!qlpz&Y#Z920rPJhrzXcp7)ir5JR@bKjf{a|)W~6wEf__k*=R9Z zjW(lXw3AS!(KhdW>G9YSfHf#%^Pe(P!*6`tc+fG=_|Q#;`GB>^DY@F=O1A zFeZ%y#zEtdahS-VqsB4gxN*X`kL(&Jjr)xUj0cT}jE9XW;}PRg<1yoL;|b%{#wp`T za@oD2Ho2;4H+2xI;_1w(t`oiUz^?Lu=)%whZmF0z{^|i>%+?)l`I=^ta z?#!&NE??_?r&_$ zjfvnYeMdUjUb{H6xTwpy>wsL{C^)!6-{bAPXRDC4D>Ezc;LOHKa^~8`DiyC^US3&? z>7B$`Ub?>8zqY=-Vg}psvrtz`UHA0H+TzUGdD(TgccZcyJG(fubRl|nd2x=f798`?(bi#FRd-mb9H<6e0}ypKi9|fRjD`Z zy3CD*b%y86>YUB6oLQBoFlQGRR#vWZfcFU6Mz%cmH|BJEEYkeRV0U9hc4B%b%6eQ+ z&Mq%5&a4D?I_xa3_Fv?vM9oT;=h* zGPAbUuV-345$-ZNwt_xzfvBSH9<@RAI;6`Io$)=boeI zHkKeT48rY#TfXf@o%ftsT%O-?XYQrW-}@dLOKTe|E6c0v^*J}VgBGAu>W%x^TVGh( zU=qm~^0qF~2e)=pS{{Izlq?`%FM=ExV>6m-B|L2 z<1#;HR@eK_t;{@rg$eTb9p7EHz{oG0%UP(y6`%e7iOs?udzDQe|cf9zRc_F zI2P_*Tt2(7Sa;?Y&YkOLDXGsT_2$C-5_Ez-k>gA#Jq&|WtM!XiqH*17eTgEN1YBoH z%gcn2rsOxEvzN$7gyG=_Fq|8VogbCN*i=-OmAEDXJ!{S=IT!U znU$HPIZYqfWPEUBUFayI!>M0wkiEGGoAGn?`kb_40;)qtFD%WhUbXeMPzXnFQOAXu zxZYfuJLl<*wT-j9*~VhM5bR#P$OyRrrC4R`EU#Y8+;v!Xf(Kk%Sc%GBOup7!zSmin z_<@$1!Cvg#BF$o-W5LmVV(G07?&F9nU)&K88LzRoxWM|edNn+`yi#A1$LUL>^AOAE z`~pkwJgWsO3Iu4~nHLfSeE;=hi#!IXu7IzrNf*dwynVzP?tv=k!wjN_aB;;*%~1&TpL6FTcDbub}r9 z*Hewn1)+M712fo<%`YyWtvf-9(%{zo>de`*Oagva&iBh28E!Ja-QXzWaGg$x={@dX zg{iM*=2w?Dm~dBVj&uF%S6AxE^Rz3oU3Xnf?^x$)U^+i~p2anFetC7_8YBp6yvjg{ zQP<`5*uv7;sVd>nmwXn3d!k|ektgS(-bgOy6_G-P+lX`c}T;N#?v*ufb zh+K`nWo>!MyHGznbGBdJdI4S{a-n`TvN&_aW#({EW0W|JJys$!*enJ!D>%Qfe)TNN zsWe9OOB@e)yT*xGYF%e;dyRb-z71~n8@tTA`eJ`@QSPo|Z`oK|UpRL)bJsyBGJV&P z<#Xq%InE3hUj^ePJDT9uMCqJf@!}7l)O*>qJ-;$n5&Y8qb#2f&f{K z>6KX&HuvntA|r5PefiwNGxpXIS5JSTGpj7WQQ1ofb0*`1V_YcPi!524s0HdU0dD9+z1x6VA~anhsfP$|~wCE%!Gz zqf5){^^AN8Pu;%`eW!)EyKyAG3@tr3Gh0u}Jm_CpWf7`hNiMI>&nzum({FFmKPz<6 z3N)N$Jiao+8aO+%l+dhLFgc^L?J$X%FtSdW!KS^kz*0b)u18iDmXiF3XbJ^iziI|M z3956oKj2iOvd!1Vyh}Y`F!@kuz1kp{mf!eFN1B(yO_aFlp(Y1K!6xKOSAPgi%sfs zKDJt)uRoKL#T5aMH4jdYq8wkh1ia6vGiDu;nX`Z0R+AExtBG3(GqM8*5SdO{}q|F+$E! zJGZgT+=1;&tU;w`&j*5Eu$|SNx7uG{y1ancB*Wfo9HPr;)-^NOb=T_a@QU+m{j!9{ z!##8D{6c+k&RT=dL3WGlUxuN%Ce!6=YK_K_u{v9a#?RKhwdD3U5nZmcfI*kL2>9A&OUSXKKjWZYP>*trZ9&!;rFnoxxhilAi+Aw%QYKBxZ8`hlR zv^v9r8(t3w!yObHUO<0x$@y0Q+hh7Vg?l9hcutj5~^ zF3g-=tn;X)+5QHL8w(*rBaCaumXs8 z=aXA|vlr)5TRW_03o}dJ);`p7;~9TzcSVTB+IhI)?We6@+<0dD0UKx0^lZe#J1G7c z_&r2=XZ<|$gR)oG*xa~yc1>u1JlNb=iLEnM)?(|c)Xk+CV9gqepY1(atG%srdLd10 z?QX1C>sJbN-t|0OR};! z+w!Fsc1gd!C&diXl15{hi--HNp?QD%^2LxNVyhwNIczd{^~%I1lxB%xU|hZ!y@C*7 zU71;x{n(Y6_1W{zmGcYh!H8s&>D4de*bG)aTekbJz*uJ3x}e8xKcfgiY;MPqjin1q aw7tK54Sg0|WnEidz9Wm6ms&$f3LcXxMpw-$GIEACd@Wr5=EEV{UBaVzdx916vXmtw`~KG*&Jf;S)X zEtwoMnK@_9L_tYjSj3VVjuW&B_+L;F5;IfL^Re)f@axNoYr9BD1uJW+t2(b~a;F;^ zX`4oUHg~JCx3O}`?e%hs_RZz@>#_H%PYM7}eep_3XsAxe`_V&-ilZRj5&d<&c zuU=lRtZ#2`VKCVL8|wcz(ZJBu<#csqq%`GtIl1A0|JBhv!y_OAcmVAG>+wHK03vKK z#$Az}G-a~fbIL_DCevD1I7GKe(@{UJ!mYvF=C2ZG{=)RQ7KhEpmFtqAe~lA=9>hbN zK3~3n28X&wMn%WO#>FQjhN4EMBx9sxW@KmO=Hx*NP&11%phacn6_r)hRY+xZ4XBOH zO|30$Uz?B`x;nf1`Uk!Z4k00qjCGApj!n%>&mk_1EPP*HSzTM-*xcG)hWoy|uzP@b z`0MBh0qzX${1VQ=*4o(Y-a_lq!tCkw;r$Kv4+J7-Zl)fJM8u;tC2pqt7AV_u6sgcc zizn)OF(C%eYrIB_QWYeySa%nr{e-uBSMYh-0<(Xr1#Y) z3;o$2D0Wshb#1Du+tYWsaWs$HQ(!* z6_u2QYpEiQ5$ae?(6!~%$WUz|-0E1d<8#+Fw&wj^PjNrWUX6J_dc*YzwimPMle2E- z{l)&k?+B%1(*LBrTG5JIdbr4%U;3daSlFzx%=YPTHAM3rp=KpamJ)9-?K?H|YJ{rb zrkYEeoJf9@u2t6$uLXe|TQ5`Jnu;8YXcoI%LsElEPh0(($}D%i^%8OFamVP`pQ~qS z)V}4�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

r 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⩔|1l_B=~(ft{uLCu{uUJWBZ9(~ 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 z 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 literal 0 HcmV?d00001 diff --git a/assets/js/10.5cab9749.js b/assets/js/10.5cab9749.js new file mode 100644 index 00000000000..6e855351628 --- /dev/null +++ b/assets/js/10.5cab9749.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[10],{30010:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2023/08/17/Announcing-5-new-Flow-tuple-type-features","metadata":{"permalink":"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features","source":"@site/blog/2023-08-17-Announcing-5-new-Flow-tuple-type-features.md","title":"Announcing 5 new Flow tuple type features","description":"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.","date":"2023-08-17T00:00:00.000Z","formattedDate":"August 17, 2023","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Announcing 5 new Flow tuple type features","short-title":"Announcing 5 new Flow tuple type features","author":"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-5-new-flow-tuple-type-features-ff4d7f11c50a"},"nextItem":{"title":"Flow can now detect unused Promises","permalink":"/blog/2023/04/10/Unused-Promise"}},"content":"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more."},{"id":"/2023/04/10/Unused-Promise","metadata":{"permalink":"/blog/2023/04/10/Unused-Promise","source":"@site/blog/2023-04-10-Unused-Promise.md","title":"Flow can now detect unused Promises","description":"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,","date":"2023-04-10T00:00:00.000Z","formattedDate":"April 10, 2023","tags":[],"hasTruncateMarker":false,"authors":[{"name":"David Richey"}],"frontMatter":{"title":"Flow can now detect unused Promises","short-title":"Flow can now detect unused Promises","author":"David Richey","medium-link":"https://medium.com/flow-type/flow-can-now-detect-unused-promises-b49341256640"},"prevItem":{"title":"Announcing 5 new Flow tuple type features","permalink":"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features"},"nextItem":{"title":"Announcing Partial & Required Flow utility types + catch annotations","permalink":"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"}},"content":"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,\\nbecause errors are potentially unhandled, and the code may not execute in the intended order. They are\\nusually mistakes that Flow is perfectly positioned to warn you about."},{"id":"/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations","metadata":{"permalink":"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations","source":"@site/blog/2023-03-15-Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations.md","title":"Announcing Partial & Required Flow utility types + catch annotations","description":"Starting in Flow version 0.201, make an object type\u2019s fields all optional using Partial (use instead of the unsafe $Shape),","date":"2023-03-15T00:00:00.000Z","formattedDate":"March 15, 2023","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Announcing Partial & Required Flow utility types + catch annotations","short-title":"Announcing Partial & Required Flow utility types","author":"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-partial-required-flow-utility-types-catch-annotations-3a32f0bf2a20"},"prevItem":{"title":"Flow can now detect unused Promises","permalink":"/blog/2023/04/10/Unused-Promise"},"nextItem":{"title":"Exact object types by default, by default","permalink":"/blog/2023/02/16/Exact-object-types-by-default-by-default"}},"content":"Starting in Flow version 0.201, make an object type\u2019s fields all optional using `Partial` (use instead of the unsafe `$Shape`),\\nand make an object type\u2019s optional fields required with `Required`."},{"id":"/2023/02/16/Exact-object-types-by-default-by-default","metadata":{"permalink":"/blog/2023/02/16/Exact-object-types-by-default-by-default","source":"@site/blog/2023-02-16-Exact-object-types-by-default-by-default.md","title":"Exact object types by default, by default","description":"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.","date":"2023-02-16T00:00:00.000Z","formattedDate":"February 16, 2023","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Exact object types by default, by default","short-title":"Exact object types by default, by default","author":"George Zahariev","medium-link":"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},"prevItem":{"title":"Announcing Partial & Required Flow utility types + catch annotations","permalink":"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"},"nextItem":{"title":"Local Type Inference for Flow","permalink":"/blog/2023/01/17/Local-Type-Inference"}},"content":"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan."},{"id":"/2023/01/17/Local-Type-Inference","metadata":{"permalink":"/blog/2023/01/17/Local-Type-Inference","source":"@site/blog/2023-01-17-Local-Type-Inference.md","title":"Local Type Inference for Flow","description":"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.","date":"2023-01-17T00:00:00.000Z","formattedDate":"January 17, 2023","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Sam Zhou"}],"frontMatter":{"title":"Local Type Inference for Flow","short-title":"Local Type Inference","author":"Sam Zhou","medium-link":"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},"prevItem":{"title":"Exact object types by default, by default","permalink":"/blog/2023/02/16/Exact-object-types-by-default-by-default"},"nextItem":{"title":"Improved handling of the empty object in Flow","permalink":"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"}},"content":"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases."},{"id":"/2022/10/20/Improved-handling-of-the-empty-object-in-Flow","metadata":{"permalink":"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow","source":"@site/blog/2022-10-20-Improved-handling-of-the-empty-object-in-Flow.md","title":"Improved handling of the empty object in Flow","description":"Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.","date":"2022-10-20T00:00:00.000Z","formattedDate":"October 20, 2022","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Improved handling of the empty object in Flow","short-title":"Improvements to empty object","author":"George Zahariev","medium-link":"https://medium.com/flow-type/improved-handling-of-the-empty-object-in-flow-ead91887e40c"},"prevItem":{"title":"Local Type Inference for Flow","permalink":"/blog/2023/01/17/Local-Type-Inference"},"nextItem":{"title":"Requiring More Annotations to Functions and Classes in Flow","permalink":"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes"}},"content":"Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior."},{"id":"/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes","metadata":{"permalink":"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes","source":"@site/blog/2022-09-30-Requiring-More-Annotations-on-Functions-and-Classes.md","title":"Requiring More Annotations to Functions and Classes in Flow","description":"Flow will now require more annotations to functions and classes.","date":"2022-09-30T00:00:00.000Z","formattedDate":"September 30, 2022","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Sam Zhou"}],"frontMatter":{"title":"Requiring More Annotations to Functions and Classes in Flow","short-title":"Functions and Classes Annotation Requirements","author":"Sam Zhou","medium-link":"https://medium.com/flow-type/requiring-more-annotations-to-functions-and-classes-in-flow-e8aa9b1d76bd"},"prevItem":{"title":"Improved handling of the empty object in Flow","permalink":"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"},"nextItem":{"title":"New Flow Language Rule: Constrained Writes","permalink":"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"}},"content":"Flow will now require more annotations to functions and classes."},{"id":"/2022/08/05/New-Flow-Language-Rule-Constrained-Writes","metadata":{"permalink":"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes","source":"@site/blog/2022-08-05-New-Flow-Language-Rule-Constrained-Writes.md","title":"New Flow Language Rule: Constrained Writes","description":"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.","date":"2022-08-05T00:00:00.000Z","formattedDate":"August 5, 2022","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"New Flow Language Rule: Constrained Writes","short-title":"Introducing Constrained Writes","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/new-flow-language-rule-constrained-writes-4c70e375d190"},"prevItem":{"title":"Requiring More Annotations to Functions and Classes in Flow","permalink":"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes"},"nextItem":{"title":"Introducing: Local Type Inference for Flow","permalink":"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow"}},"content":"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated."},{"id":"/2021/09/27/Introducing-Local-Type-Inference-for-Flow","metadata":{"permalink":"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow","source":"@site/blog/2021-09-27-Introducing-Local-Type-Inference-for-Flow.md","title":"Introducing: Local Type Inference for Flow","description":"We\'re replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally.","date":"2021-09-27T00:00:00.000Z","formattedDate":"September 27, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Michael Vitousek"}],"frontMatter":{"title":"Introducing: Local Type Inference for Flow","short-title":"Introducing Local Type Inference","author":"Michael Vitousek","medium-link":"https://medium.com/flow-type/introducing-local-type-inference-for-flow-6af65b7830aa"},"prevItem":{"title":"New Flow Language Rule: Constrained Writes","permalink":"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"},"nextItem":{"title":"Introducing Flow Enums","permalink":"/blog/2021/09/13/Introducing-Flow-Enums"}},"content":"We\'re replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally."},{"id":"/2021/09/13/Introducing-Flow-Enums","metadata":{"permalink":"/blog/2021/09/13/Introducing-Flow-Enums","source":"@site/blog/2021-09-13-Introducing-Flow-Enums.md","title":"Introducing Flow Enums","description":"Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.","date":"2021-09-13T00:00:00.000Z","formattedDate":"September 13, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Introducing Flow Enums","short-title":"Introducing Flow Enums","author":"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-enums-16d4239b3180"},"prevItem":{"title":"Introducing: Local Type Inference for Flow","permalink":"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow"},"nextItem":{"title":"TypeScript Enums vs. Flow Enums","permalink":"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums"}},"content":"Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type."},{"id":"/2021/09/13/TypeScript-Enums-vs-Flow-Enums","metadata":{"permalink":"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums","source":"@site/blog/2021-09-13-TypeScript-Enums-vs-Flow-Enums.md","title":"TypeScript Enums vs. Flow Enums","description":"A comparison of the enums features of TypeScript and Flow.","date":"2021-09-13T00:00:00.000Z","formattedDate":"September 13, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"TypeScript Enums vs. Flow Enums","short-title":"TypeScript Enums vs. Flow Enums","author":"George Zahariev","medium-link":"https://medium.com/flow-type/typescript-enums-vs-flow-enums-83da2ca4a9b4"},"prevItem":{"title":"Introducing Flow Enums","permalink":"/blog/2021/09/13/Introducing-Flow-Enums"},"nextItem":{"title":"Introducing Flow Indexed Access Types","permalink":"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types"}},"content":"A comparison of the enums features of TypeScript and Flow."},{"id":"/2021/07/21/Introducing-Flow-Indexed-Access-Types","metadata":{"permalink":"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types","source":"@site/blog/2021-07-21-Introducing-Flow-Indexed-Access-Types.md","title":"Introducing Flow Indexed Access Types","description":"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.","date":"2021-07-21T00:00:00.000Z","formattedDate":"July 21, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"George Zahariev"}],"frontMatter":{"title":"Introducing Flow Indexed Access Types","short-title":"Flow Indexed Access Types","author":"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-indexed-access-types-b27175251fd0"},"prevItem":{"title":"TypeScript Enums vs. Flow Enums","permalink":"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums"},"nextItem":{"title":"Sound Typing for \'this\' in Flow","permalink":"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"}},"content":"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type."},{"id":"/2021/06/02/Sound-Typing-for-this-in-Flow","metadata":{"permalink":"/blog/2021/06/02/Sound-Typing-for-this-in-Flow","source":"@site/blog/2021-06-02-Sound-Typing-for-this-in-Flow.md","title":"Sound Typing for \'this\' in Flow","description":"Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.","date":"2021-06-02T00:00:00.000Z","formattedDate":"June 2, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Daniel Sainati"}],"frontMatter":{"title":"Sound Typing for \'this\' in Flow","short-title":"Sound Typing for \'this\'","author":"Daniel Sainati","medium-link":"https://medium.com/flow-type/sound-typing-for-this-in-flow-d62db2af969e"},"prevItem":{"title":"Introducing Flow Indexed Access Types","permalink":"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types"},"nextItem":{"title":"Clarity on Flow\'s Direction and Open Source Engagement","permalink":"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement"}},"content":"Improvements in soundness for `this`-typing in Flow, including the ability to annotate `this` on functions and methods."},{"id":"/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement","metadata":{"permalink":"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement","source":"@site/blog/2021-05-25-Clarity-on-Flows-Direction-and-Open-Source-Engagement.md","title":"Clarity on Flow\'s Direction and Open Source Engagement","description":"An update on Flow\'s direction and open source engagement.","date":"2021-05-25T00:00:00.000Z","formattedDate":"May 25, 2021","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Vladan Djeric"}],"frontMatter":{"title":"Clarity on Flow\'s Direction and Open Source Engagement","short-title":"Flow Direction Update","author":"Vladan Djeric","medium-link":"https://medium.com/flow-type/clarity-on-flows-direction-and-open-source-engagement-e721a4eb4d8b"},"prevItem":{"title":"Sound Typing for \'this\' in Flow","permalink":"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"},"nextItem":{"title":"Types-First the only supported mode in Flow (Jan 2021)","permalink":"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow"}},"content":"An update on Flow\'s direction and open source engagement."},{"id":"/2020/12/01/Types-first-the-only-supported-mode-in-flow","metadata":{"permalink":"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow","source":"@site/blog/2020-12-01-Types-first-the-only-supported-mode-in-flow.md","title":"Types-First the only supported mode in Flow (Jan 2021)","description":"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021).","date":"2020-12-01T00:00:00.000Z","formattedDate":"December 1, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Panagiotis Vekris"}],"frontMatter":{"title":"Types-First the only supported mode in Flow (Jan 2021)","short-title":"Types-First only supported mode","author":"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-the-only-supported-mode-in-flow-jan-2021-3c4cb14d7b6c"},"prevItem":{"title":"Clarity on Flow\'s Direction and Open Source Engagement","permalink":"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement"},"nextItem":{"title":"Flow\'s Improved Handling of Generic Types","permalink":"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types"}},"content":"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021)."},{"id":"/2020/11/16/Flows-Improved-Handling-of-Generic-Types","metadata":{"permalink":"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types","source":"@site/blog/2020-11-16-Flows-Improved-Handling-of-Generic-Types.md","title":"Flow\'s Improved Handling of Generic Types","description":"Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages.","date":"2020-11-16T00:00:00.000Z","formattedDate":"November 16, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Michael Vitousek"}],"frontMatter":{"title":"Flow\'s Improved Handling of Generic Types","short-title":"Generic Types Improvements","author":"Michael Vitousek","medium-link":"https://medium.com/flow-type/flows-improved-handling-of-generic-types-b5909cc5e3c5"},"prevItem":{"title":"Types-First the only supported mode in Flow (Jan 2021)","permalink":"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow"},"nextItem":{"title":"Types-First: A Scalable New Architecture for Flow","permalink":"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow"}},"content":"Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages."},{"id":"/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow","metadata":{"permalink":"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow","source":"@site/blog/2020-05-18-Types-First-A-Scalable-New-Architecture-for-Flow.md","title":"Types-First: A Scalable New Architecture for Flow","description":"Flow Types-First mode is out! It unlocks Flow\u2019s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post.","date":"2020-05-18T00:00:00.000Z","formattedDate":"May 18, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Panagiotis Vekris"}],"frontMatter":{"title":"Types-First: A Scalable New Architecture for Flow","short-title":"Types-First: A Scalable New","author":"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-a-scalable-new-architecture-for-flow-3d8c7ba1d4eb"},"prevItem":{"title":"Flow\'s Improved Handling of Generic Types","permalink":"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types"},"nextItem":{"title":"Making Flow error suppressions more specific","permalink":"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific"}},"content":"Flow Types-First mode is out! It unlocks Flow\u2019s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post."},{"id":"/2020/03/16/Making-Flow-error-suppressions-more-specific","metadata":{"permalink":"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific","source":"@site/blog/2020-03-16-Making-Flow-error-suppressions-more-specific.md","title":"Making Flow error suppressions more specific","description":"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors.","date":"2020-03-16T00:00:00.000Z","formattedDate":"March 16, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Daniel Sainati"}],"frontMatter":{"title":"Making Flow error suppressions more specific","short-title":"Making Flow error suppressions","author":"Daniel Sainati","medium-link":"https://medium.com/flow-type/making-flow-error-suppressions-more-specific-280aa4e3c95c"},"prevItem":{"title":"Types-First: A Scalable New Architecture for Flow","permalink":"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow"},"nextItem":{"title":"What we\u2019re building in 2020","permalink":"/blog/2020/03/09/What-were-building-in-2020"}},"content":"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors."},{"id":"/2020/03/09/What-were-building-in-2020","metadata":{"permalink":"/blog/2020/03/09/What-were-building-in-2020","source":"@site/blog/2020-03-09-What-were-building-in-2020.md","title":"What we\u2019re building in 2020","description":"Learn about how Flow will improve in 2020.","date":"2020-03-09T00:00:00.000Z","formattedDate":"March 9, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Andrew Pardoe"}],"frontMatter":{"title":"What we\u2019re building in 2020","short-title":"What we\u2019re building in 2020","author":"Andrew Pardoe","medium-link":"https://medium.com/flow-type/what-were-building-in-2020-bcb92f620c75"},"prevItem":{"title":"Making Flow error suppressions more specific","permalink":"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific"},"nextItem":{"title":"Improvements to Flow in 2019","permalink":"/blog/2020/02/19/Improvements-to-Flow-in-2019"}},"content":"Learn about how Flow will improve in 2020."},{"id":"/2020/02/19/Improvements-to-Flow-in-2019","metadata":{"permalink":"/blog/2020/02/19/Improvements-to-Flow-in-2019","source":"@site/blog/2020-02-19-Improvements-to-Flow-in-2019.md","title":"Improvements to Flow in 2019","description":"Take a look back at improvements we made to Flow in 2019.","date":"2020-02-19T00:00:00.000Z","formattedDate":"February 19, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Andrew Pardoe"}],"frontMatter":{"title":"Improvements to Flow in 2019","short-title":"Improvements to Flow in 2019","author":"Andrew Pardoe","medium-link":"https://medium.com/flow-type/improvements-to-flow-in-2019-c8378e7aa007"},"prevItem":{"title":"What we\u2019re building in 2020","permalink":"/blog/2020/03/09/What-were-building-in-2020"},"nextItem":{"title":"How to upgrade to exact-by-default object type syntax","permalink":"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"}},"content":"Take a look back at improvements we made to Flow in 2019."},{"id":"/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax","metadata":{"permalink":"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax","source":"@site/blog/2020-01-29-How-to-Upgrade-to-exact-by-default-object-type-syntax.md","title":"How to upgrade to exact-by-default object type syntax","description":"Object types will become exact-by-default. Read this post to learn how to get your code ready!","date":"2020-01-29T00:00:00.000Z","formattedDate":"January 29, 2020","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"How to upgrade to exact-by-default object type syntax","short-title":"Upgrade to exact-by-default","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/how-to-upgrade-to-exact-by-default-object-type-syntax-7aa44b4d08ab"},"prevItem":{"title":"Improvements to Flow in 2019","permalink":"/blog/2020/02/19/Improvements-to-Flow-in-2019"},"nextItem":{"title":"Spreads: Common Errors & Fixes","permalink":"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes"}},"content":"Object types will become exact-by-default. Read this post to learn how to get your code ready!"},{"id":"/2019/10/30/Spreads-Common-Errors-and-Fixes","metadata":{"permalink":"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes","source":"@site/blog/2019-10-30-Spreads-Common-Errors-and-Fixes.md","title":"Spreads: Common Errors & Fixes","description":"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.","date":"2019-10-30T00:00:00.000Z","formattedDate":"October 30, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Spreads: Common Errors & Fixes","short-title":"Spreads: Common Errors & Fixes","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/spreads-common-errors-fixes-9701012e9d58"},"prevItem":{"title":"How to upgrade to exact-by-default object type syntax","permalink":"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"},"nextItem":{"title":"Live Flow errors in your IDE","permalink":"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"}},"content":"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them."},{"id":"/2019/10/25/Live-Flow-Errors-in-your-IDE","metadata":{"permalink":"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE","source":"@site/blog/2019-10-25-Live-Flow-Errors-in-your-IDE.md","title":"Live Flow errors in your IDE","description":"Live errors while you type makes Flow feel faster in your IDE!","date":"2019-10-25T00:00:00.000Z","formattedDate":"October 25, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"Live Flow errors in your IDE","short-title":"Live Flow errors in your IDE","author":"Gabe Levi","medium-link":"https://medium.com/flow-type/live-flow-errors-in-your-ide-bcbeda0b316"},"prevItem":{"title":"Spreads: Common Errors & Fixes","permalink":"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes"},"nextItem":{"title":"Coming Soon: Changes to Object Spreads","permalink":"/blog/2019/08/20/Changes-to-Object-Spreads"}},"content":"Live errors while you type makes Flow feel faster in your IDE!"},{"id":"/2019/08/20/Changes-to-Object-Spreads","metadata":{"permalink":"/blog/2019/08/20/Changes-to-Object-Spreads","source":"@site/blog/2019-08-20-Changes-to-Object-Spreads.md","title":"Coming Soon: Changes to Object Spreads","description":"Changes are coming to how Flow models object spreads! Learn more in this post.","date":"2019-08-20T00:00:00.000Z","formattedDate":"August 20, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Coming Soon: Changes to Object Spreads","short-title":"Changes to Object Spreads","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/coming-soon-changes-to-object-spreads-73204aef84e1"},"prevItem":{"title":"Live Flow errors in your IDE","permalink":"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"},"nextItem":{"title":"Upgrading Flow Codebases","permalink":"/blog/2019/4/9/Upgrading-Flow-Codebases"}},"content":"Changes are coming to how Flow models object spreads! Learn more in this post."},{"id":"/2019/4/9/Upgrading-Flow-Codebases","metadata":{"permalink":"/blog/2019/4/9/Upgrading-Flow-Codebases","source":"@site/blog/2019-4-9-Upgrading-Flow-Codebases.md","title":"Upgrading Flow Codebases","description":"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!","date":"2019-04-09T00:00:00.000Z","formattedDate":"April 9, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Upgrading Flow Codebases","short-title":"Upgrading Flow Codebases","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/upgrading-flow-codebases-40ef8dd3ccd8"},"prevItem":{"title":"Coming Soon: Changes to Object Spreads","permalink":"/blog/2019/08/20/Changes-to-Object-Spreads"},"nextItem":{"title":"A More Responsive Flow","permalink":"/blog/2019/2/8/A-More-Responsive-Flow"}},"content":"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!"},{"id":"/2019/2/8/A-More-Responsive-Flow","metadata":{"permalink":"/blog/2019/2/8/A-More-Responsive-Flow","source":"@site/blog/2019-2-8-A-More-Responsive-Flow.md","title":"A More Responsive Flow","description":"Flow 0.92 improves on the Flow developer experience.","date":"2019-02-08T00:00:00.000Z","formattedDate":"February 8, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"A More Responsive Flow","short-title":"A More Responsive Flow","author":"Gabe Levi","medium-link":"https://medium.com/flow-type/a-more-responsive-flow-1a8cb01aec11"},"prevItem":{"title":"Upgrading Flow Codebases","permalink":"/blog/2019/4/9/Upgrading-Flow-Codebases"},"nextItem":{"title":"What the Flow Team Has Been Up To","permalink":"/blog/2019/1/28/What-the-flow-team-has-been-up-to"}},"content":"Flow 0.92 improves on the Flow developer experience."},{"id":"/2019/1/28/What-the-flow-team-has-been-up-to","metadata":{"permalink":"/blog/2019/1/28/What-the-flow-team-has-been-up-to","source":"@site/blog/2019-1-28-What-the-flow-team-has-been-up-to.md","title":"What the Flow Team Has Been Up To","description":"Take a look at what the Flow was up to in 2018.","date":"2019-01-28T00:00:00.000Z","formattedDate":"January 28, 2019","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Avik Chaudhuri"}],"frontMatter":{"title":"What the Flow Team Has Been Up To","short-title":"What the Flow Team Has Been Up To","author":"Avik Chaudhuri","medium-link":"https://medium.com/flow-type/what-the-flow-team-has-been-up-to-54239c62004f"},"prevItem":{"title":"A More Responsive Flow","permalink":"/blog/2019/2/8/A-More-Responsive-Flow"},"nextItem":{"title":"Supporting React.forwardRef and Beyond","permalink":"/blog/2018/12/13/React-Abstract-Component"}},"content":"Take a look at what the Flow was up to in 2018."},{"id":"/2018/12/13/React-Abstract-Component","metadata":{"permalink":"/blog/2018/12/13/React-Abstract-Component","source":"@site/blog/2018-12-13-React-Abstract-Component.md","title":"Supporting React.forwardRef and Beyond","description":"We made some major changes to our React model to better model new React components. Let\'s","date":"2018-12-13T00:00:00.000Z","formattedDate":"December 13, 2018","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Supporting React.forwardRef and Beyond","short-title":"Supporting React.forwardRef","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/supporting-react-forwardref-and-beyond-f8dd88f35544"},"prevItem":{"title":"What the Flow Team Has Been Up To","permalink":"/blog/2019/1/28/What-the-flow-team-has-been-up-to"},"nextItem":{"title":"Asking for Required Annotations","permalink":"/blog/2018/10/29/Asking-for-Required-Annotations"}},"content":"We made some major changes to our React model to better model new React components. Let\'s\\ntalk about React.AbstractComponent!"},{"id":"/2018/10/29/Asking-for-Required-Annotations","metadata":{"permalink":"/blog/2018/10/29/Asking-for-Required-Annotations","source":"@site/blog/2018-10-29-Asking-for-Required-Annotations.md","title":"Asking for Required Annotations","description":"Flow will be asking for more annotations starting in 0.85.0. Learn how","date":"2018-10-29T00:00:00.000Z","formattedDate":"October 29, 2018","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Sam Goldman"}],"frontMatter":{"title":"Asking for Required Annotations","short-title":"Asking for Required Annotations","author":"Sam Goldman","medium-link":"https://medium.com/flow-type/asking-for-required-annotations-64d4f9c1edf8"},"prevItem":{"title":"Supporting React.forwardRef and Beyond","permalink":"/blog/2018/12/13/React-Abstract-Component"},"nextItem":{"title":"On the Roadmap: Exact Objects by Default","permalink":"/blog/2018/10/18/Exact-Objects-By-Default"}},"content":"Flow will be asking for more annotations starting in 0.85.0. Learn how\\nto deal with these errors in our latest blog post."},{"id":"/2018/10/18/Exact-Objects-By-Default","metadata":{"permalink":"/blog/2018/10/18/Exact-Objects-By-Default","source":"@site/blog/2018-10-18-Exact-Objects-By-Default.md","title":"On the Roadmap: Exact Objects by Default","description":"We are changing object types to be exact by default. We\'ll be releasing codemods to help you upgrade.","date":"2018-10-18T00:00:00.000Z","formattedDate":"October 18, 2018","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"On the Roadmap: Exact Objects by Default","short-title":"Exact Objects by Default","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/on-the-roadmap-exact-objects-by-default-16b72933c5cf"},"prevItem":{"title":"Asking for Required Annotations","permalink":"/blog/2018/10/29/Asking-for-Required-Annotations"},"nextItem":{"title":"New Flow Errors on Unknown Property Access in Conditionals","permalink":"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals"}},"content":"We are changing object types to be exact by default. We\'ll be releasing codemods to help you upgrade."},{"id":"/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals","metadata":{"permalink":"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals","source":"@site/blog/2018-03-16-New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals.md","title":"New Flow Errors on Unknown Property Access in Conditionals","description":"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown","date":"2018-03-16T00:00:00.000Z","formattedDate":"March 16, 2018","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"New Flow Errors on Unknown Property Access in Conditionals","short-title":"Unknown Props in Conditionals","author":"Gabe Levi","medium-link":"https://medium.com/flow-type/new-flow-errors-on-unknown-property-access-in-conditionals-461da66ea10"},"prevItem":{"title":"On the Roadmap: Exact Objects by Default","permalink":"/blog/2018/10/18/Exact-Objects-By-Default"},"nextItem":{"title":"Better Flow Error Messages for the JavaScript Ecosystem","permalink":"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"}},"content":"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown\\nproperties in conditionals."},{"id":"/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem","metadata":{"permalink":"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem","source":"@site/blog/2018-02-20-Better-Flow-Error-Messages-for-the-Javascript-Ecosystem.md","title":"Better Flow Error Messages for the JavaScript Ecosystem","description":"Over the last year, the Flow team has been slowly auditing and improving all the","date":"2018-02-20T00:00:00.000Z","formattedDate":"February 20, 2018","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Caleb Meredith"}],"frontMatter":{"title":"Better Flow Error Messages for the JavaScript Ecosystem","short-title":"Better Error Messages","author":"Caleb Meredith","medium-link":"https://medium.com/flow-type/better-flow-error-messages-for-the-javascript-ecosystem-73b6da948ae2"},"prevItem":{"title":"New Flow Errors on Unknown Property Access in Conditionals","permalink":"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals"},"nextItem":{"title":"Typing Higher-Order Components in Recompose With Flow","permalink":"/blog/2017/09/03/Flow-Support-in-Recompose"}},"content":"Over the last year, the Flow team has been slowly auditing and improving all the\\npossible error messages generated by the type checker. In Flow 0.66 we\u2019re\\nexcited to announce a new error message format designed to decrease the time it\\ntakes you to read and fix each bug Flow finds."},{"id":"/2017/09/03/Flow-Support-in-Recompose","metadata":{"permalink":"/blog/2017/09/03/Flow-Support-in-Recompose","source":"@site/blog/2017-09-03-Flow-Support-in-Recompose.md","title":"Typing Higher-Order Components in Recompose With Flow","description":"One month ago Recompose landed an","date":"2017-09-03T00:00:00.000Z","formattedDate":"September 3, 2017","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Ivan Starkov"}],"frontMatter":{"title":"Typing Higher-Order Components in Recompose With Flow","short-title":"Flow Support in Recompose","author":"Ivan Starkov","medium-link":"https://medium.com/flow-type/flow-support-in-recompose-1b76f58f4cfc"},"prevItem":{"title":"Better Flow Error Messages for the JavaScript Ecosystem","permalink":"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"},"nextItem":{"title":"Private Object Properties Using Flow\u2019s Opaque Type Aliases","permalink":"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"}},"content":"One month ago [Recompose](https://github.com/acdlite/recompose) landed an\\nofficial Flow library definition. The definitions were a long time coming,\\nconsidering the original PR was created by\\n[@GiulioCanti](https://twitter.com/GiulioCanti) a year ago."},{"id":"/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases","metadata":{"permalink":"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases","source":"@site/blog/2017-08-25-Private-Object-Properties-Using-Flows-Opaque-Type-Aliases.md","title":"Private Object Properties Using Flow\u2019s Opaque Type Aliases","description":"In the last few weeks, a proposal for private class fields in Javascript reached","date":"2017-08-25T00:00:00.000Z","formattedDate":"August 25, 2017","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Private Object Properties Using Flow\u2019s Opaque Type Aliases","short-title":"Private Props w/ Opaque Types","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/private-object-properties-using-flows-opaque-type-aliases-e0100e9b0282"},"prevItem":{"title":"Typing Higher-Order Components in Recompose With Flow","permalink":"/blog/2017/09/03/Flow-Support-in-Recompose"},"nextItem":{"title":"Even Better Support for React in Flow","permalink":"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow"}},"content":"In the last few weeks, a proposal for [private class fields in Javascript](https://github.com/tc39/proposal-class-fields) reached\\nstage 3. This is going to be a great way to hide implementation details away\\nfrom users of your classes. However, locking yourself in to an OOP style of\\nprogramming is not always ideal if you prefer a more functional style. Let\u2019s\\ntalk about how you can use Flow\u2019s [opaque type aliases](https://flow.org/en/docs/types/opaque-types/) to get private properties\\n on any object type."},{"id":"/2017/08/16/Even-Better-Support-for-React-in-Flow","metadata":{"permalink":"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow","source":"@site/blog/2017-08-16-Even-Better-Support-for-React-in-Flow.md","title":"Even Better Support for React in Flow","description":"The first version of Flow support for React was a magical implementation of","date":"2017-08-16T00:00:00.000Z","formattedDate":"August 16, 2017","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Caleb Meredith"}],"frontMatter":{"title":"Even Better Support for React in Flow","short-title":"Even Better React Support","author":"Caleb Meredith","medium-link":"https://medium.com/flow-type/even-better-support-for-react-in-flow-25b0a3485627"},"prevItem":{"title":"Private Object Properties Using Flow\u2019s Opaque Type Aliases","permalink":"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"},"nextItem":{"title":"Linting in Flow","permalink":"/blog/2017/08/04/Linting-in-Flow"}},"content":"The first version of Flow support for React was a magical implementation of\\n`React.createClass()`. Since then, React has evolved significantly. It is time\\nto rethink how Flow models React."},{"id":"/2017/08/04/Linting-in-Flow","metadata":{"permalink":"/blog/2017/08/04/Linting-in-Flow","source":"@site/blog/2017-08-04-Linting-in-Flow.md","title":"Linting in Flow","description":"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.","date":"2017-08-04T00:00:00.000Z","formattedDate":"August 4, 2017","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Roger Ballard"}],"frontMatter":{"title":"Linting in Flow","short-title":"Linting in Flow","author":"Roger Ballard","medium-link":"https://medium.com/flow-type/linting-in-flow-7709d7a7e969"},"prevItem":{"title":"Even Better Support for React in Flow","permalink":"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow"},"nextItem":{"title":"Opaque Type Aliases","permalink":"/blog/2017/07/27/Opaque-Types"}},"content":"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter."},{"id":"/2017/07/27/Opaque-Types","metadata":{"permalink":"/blog/2017/07/27/Opaque-Types","source":"@site/blog/2017-07-27-Opaque-Types.md","title":"Opaque Type Aliases","description":"Do you ever wish that you could hide your implementation details away","date":"2017-07-27T00:00:00.000Z","formattedDate":"July 27, 2017","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jordan Brown"}],"frontMatter":{"title":"Opaque Type Aliases","short-title":"Opaque Type Aliases","author":"Jordan Brown","medium-link":"https://medium.com/flow-type/hiding-implementation-details-with-flows-new-opaque-type-aliases-feature-40e188c2a3f9"},"prevItem":{"title":"Linting in Flow","permalink":"/blog/2017/08/04/Linting-in-Flow"},"nextItem":{"title":"Strict Checking of Function Call Arity","permalink":"/blog/2017/05/07/Strict-Function-Call-Arity"}},"content":"Do you ever wish that you could hide your implementation details away\\nfrom your users? Find out how opaque type aliases can get the job done!"},{"id":"/2017/05/07/Strict-Function-Call-Arity","metadata":{"permalink":"/blog/2017/05/07/Strict-Function-Call-Arity","source":"@site/blog/2017-05-07-Strict-Function-Call-Arity.md","title":"Strict Checking of Function Call Arity","description":"One of Flow\'s original goals was to be able to understand idiomatic JavaScript.","date":"2017-05-07T00:00:00.000Z","formattedDate":"May 7, 2017","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"Strict Checking of Function Call Arity","short-title":"Strict Function Call Arity","author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Opaque Type Aliases","permalink":"/blog/2017/07/27/Opaque-Types"},"nextItem":{"title":"Introducing Flow-Typed","permalink":"/blog/2016/10/13/Flow-Typed"}},"content":"One of Flow\'s original goals was to be able to understand idiomatic JavaScript.\\nIn JavaScript, you can call a function with more arguments than the function\\nexpects. Therefore, Flow never complained about calling a function with\\nextraneous arguments.\\n\\nWe are changing this behavior.\\n\\n\x3c!--truncate--\x3e\\n\\n### What is arity?\\n\\nA function\'s *arity* is the number of arguments it expects. Since some functions\\nhave optional parameters and some use rest parameters, we can define the\\n*minimum arity* as the smallest number of arguments it expects and the *maximum\\narity* as the largest number of arguments it expects.\\n\\n```js\\nfunction no_args() {} // arity of 0\\nfunction two_args(a, b) {} // arity of 2\\nfunction optional_args(a, b?) {} // min arity of 1, max arity of 2\\nfunction many_args(a, ...rest) {} // min arity of 1, no max arity\\n```\\n\\n### Motivation\\n\\nConsider the following code:\\n\\n```js\\nfunction add(a, b) { return a + b; }\\nconst sum = add(1, 1, 1, 1);\\n```\\n\\nThe author apparently thought the `add()` function adds up all its\\narguments, and that `sum` will have the value `4`. However, only the first two\\narguments are summed, and `sum` actually will have the value `2`. This is\\nobviously a bug, so why doesn\'t JavaScript or Flow complain?\\n\\nAnd while the error in the above example is easy to see, in real code it\'s often\\na lot harder to notice. For example, what is the value of `total` here:\\n\\n```js\\nconst total = parseInt(\\"10\\", 2) + parseFloat(\\"10.1\\", 2);\\n```\\n\\n`\\"10\\"` in base 2 is `2` in decimal and `\\"10.1\\"` in base 2 is `2.5` in decimal.\\nSo the author probably thought that `total` would be `4.5`. However, the correct\\nanswer is `12.1`. `parseInt(\\"10\\", 2)` does evaluates to `2`, as expected.\\nHowever, `parseFloat(\\"10.1\\", 2)` evaluates to `10.1`. `parseFloat()` only takes\\na single argument. The second argument is ignored!\\n\\n### Why JavaScript allows extraneous arguments\\n\\nAt this point, you might feel like this is just an example of JavaScript making\\nterrible life decisions. However, this behavior is very convenient in a bunch of\\nsituations!\\n\\n#### Callbacks\\n\\nIf you couldn\'t call a function with more arguments than it handles, then\\nmapping over an array would look like\\n\\n```js\\nconst doubled_arr = [1, 2, 3].map((element, index, arr) => element * 2);\\n```\\n\\nWhen you call `Array.prototype.map`, you pass in a callback. For each element in\\nthe array, that callback is invoked and passed 3 arguments:\\n\\n1. The element\\n2. The index of the element\\n3. The array over which you\'re mapping\\n\\nHowever, your callback often only needs to reference the first argument: the\\nelement. It\'s really nice that you can write\\n\\n```js\\nconst doubled_arr = [1, 2, 3].map(element => element * 2);\\n```\\n\\n#### Stubbing\\n\\nSometimes I come across code like this\\n\\n```js\\nlet log = () => {};\\nif (DEBUG) {\\n log = (message) => console.log(message);\\n}\\nlog(\\"Hello world\\");\\n```\\n\\nThe idea is that in a development environment, calling `log()` will output a\\nmessage, but in production it does nothing. Since you can call a\\nfunction with more arguments than it expects, it is easy to stub out `log()` in\\nproduction.\\n\\n#### Variadic functions using `arguments`\\n\\nA variadic function is a function that can take an indefinite number of\\narguments. The old-school way to write variadic functions in JavaScript is by\\nusing `arguments`. For example\\n\\n```js\\nfunction sum_all() {\\n let ret = 0;\\n for (let i = 0; i < arguments.length; i++) { ret += arguments[i]; }\\n return ret;\\n}\\nconst total = sum_all(1, 2, 3); // returns 6\\n```\\n\\nFor all intents and purposes, `sum_all` appears like it takes no arguments. So\\neven though it appears to have an arity of 0, it is convenient that we can call\\nit with more arguments.\\n\\n### Changes to Flow\\n\\nWe think we have found a compromise which catches the motivating bugs without\\nbreaking the convenience of JavaScript.\\n\\n#### Calling a function\\n\\nIf a function has a maximum arity of N, then Flow will start complaining if you\\ncall it with more than N arguments.\\n\\n```js\\ntest:1\\n 1: const num = parseFloat(\\"10.5\\", 2);\\n ^ unused function argument\\n 19: declare function parseFloat(string: mixed): number;\\n ^^^^^^^^^^^^^^^^^^^^^^^ function type expects no more than 1 argument. See lib: /core.js:19\\n```\\n\\n#### Function subtyping\\n\\nFlow will not change its function subtyping behavior. A function\\nwith a smaller maximum arity is still a subtype of a function with a larger\\nmaximum arity. This allows callbacks to still work as before.\\n\\n```js\\nclass Array {\\n ...\\n map(callbackfn: (value: T, index: number, array: Array) => U, thisArg?: any): Array;\\n ...\\n}\\nconst arr = [1,2,3].map(() => 4); // No error, evaluates to [4,4,4]\\n```\\n\\nIn this example, `() => number` is a subtype of `(number, number, Array) => number`.\\n\\n#### Stubbing and variadic functions\\n\\nThis will, unfortunately, cause Flow to complain about stubs and variadic\\nfunctions which are written using `arguments`. However, you can fix these by\\nusing rest parameters\\n\\n```js\\nlet log (...rest) => {};\\n\\nfunction sum_all(...rest) {\\n let ret = 0;\\n for (let i = 0; i < rest.length; i++) { ret += rest[i]; }\\n return ret;\\n}\\n```\\n\\n### Rollout plan\\n\\nFlow v0.46.0 will ship with strict function call arity turned off by default. It\\ncan be enabled via your `.flowconfig` with the flag\\n\\n```ini\\nexperimental.strict_call_arity=true\\n```\\n\\nFlow v0.47.0 will ship with strict function call arity turned on and the\\n`experimental.strict_call_arity` flag will be removed.\\n\\n\\n#### Why turn this on over two releases?\\n\\nThis decouples the switch to strict checking of function call arity from the\\nrelease.\\n\\n#### Why not keep the `experimental.strict_call_arity` flag?\\n\\nThis is a pretty core change. If we kept both behaviors, we\'d have to test that\\neverything works with and without this change. As we add more flags, the number\\nof combinations grows exponentially, and Flow\'s behavior gets harder to reason\\nabout. For this reason, we\'re choosing only one behavior: strict checking of\\nfunction call arity.\\n\\n### What do you think?\\n\\nThis change was motivated by feedback from Flow users. We really appreciate\\nall the members of our community who take the time to share their feedback with\\nus. This feedback is invaluable and helps us make Flow better, so please keep\\nit coming!"},{"id":"/2016/10/13/Flow-Typed","metadata":{"permalink":"/blog/2016/10/13/Flow-Typed","source":"@site/blog/2016-10-13-Flow-Typed.md","title":"Introducing Flow-Typed","description":"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are","date":"2016-10-13T00:00:00.000Z","formattedDate":"October 13, 2016","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Jeff Morrison"}],"frontMatter":{"title":"Introducing Flow-Typed","short-title":"Introducing Flow-Typed","author":"Jeff Morrison","hide_table_of_contents":true},"prevItem":{"title":"Strict Checking of Function Call Arity","permalink":"/blog/2017/05/07/Strict-Function-Call-Arity"},"nextItem":{"title":"Property Variance and Other Upcoming Changes","permalink":"/blog/2016/10/04/Property-Variance"}},"content":"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are\\nimportant for having a great experience with Flow. Today, we are introducing\\n**flow-typed**: A [repository](https://github.com/flowtype/flow-typed/) and\\n[CLI tool](http://npmjs.org/packages/flow-typed) that represent the first parts\\nof a new workflow for building, sharing, and distributing Flow libdefs.\\n\\nThe goal of this project is to grow an ecosystem of libdefs that\\n[allows Flow\'s type inference to shine](https://medium.com/@thejameskyle/flow-mapping-an-object-373d64c44592)\\nand that aligns with Flow\'s mission: To extract precise and *accurate* types\\nfrom real-world JavaScript. We\'ve learned a lot from similar efforts like\\nDefinitelyTyped for TypeScript and we want to bring some of the lessons we\'ve\\nlearned to the Flow ecosystem.\\n\\nHere are some of the objectives of this project:\\n\\n\x3c!--truncate--\x3e\\n\\n- Libdefs should be **versioned** \u2014 both against the libraries they describe\\n *and* against the version(s) of Flow they are compatible with.\\n- Libdefs should meet a **high quality bar**, including **libdef tests** to\\n ensure that their quality persists over time.\\n- There must be a straightforward way to **contribute libdef improvements over\\n time** and for developers to **benefit from those improvements** over time.\\n- The process of managing libdefs for a Flow project should be **automated,\\n simple, and easy to get right**.\\n\\n### Versioned & Tested Libdefs\\n\\nAnyone can contribute a libdef (or improve on an existing one), but when doing\\nso it\'s important that we maintain a high quality bar so that all developers\\nfeel confident in the libdefs they are using. To address this, flow-typed\\nrequires that all libdef contributions are explicitly versioned against both\\nthe version of the library they are describing and the version(s) of Flow the\\nlibdef is compatible with.\\n\\nAdditionally, all libdefs must be accompanied by tests that exercise the\\nimportant parts of the API and assert that they yield the correct types. By\\nincluding both version information and tests with each libdef, we can\\nautomatically verify in Travis that the tests work as expected for all versions\\nof Flow a libdef is compatible with. Tests also help to ensure that future\\nchanges to the libdef don\'t regress its features over time.\\n\\n### Automating Libdef Installation\\n\\nWe\'ve built a simple CLI tool called `flow-typed` that helps to automate the\\nprocess of finding, installing, and upgrading libdefs in your Flow projects. It\\nuses the explicit version info associated with each libdef to find all\\nnecessary libdefs based on your project\'s package.json dependencies. This\\nminimizes the work you need to do in order to pull in and update libdefs in\\nyour projects.\\n\\nYou can get the flow-typed CLI using either yarn (`yarn global add flow-typed`)\\nor npm (`npm install -g flow-typed`).\\n\\n### Installing Libdefs\\n\\nInstalling libdefs from the flow-typed repository is a matter of running a\\nsingle command on your project after installing your dependencies:\\n\\n```\\n> yarn install # Or `npm install` if you\'re old-school :)\\n> flow-typed install\\n```\\n\\nThe `flow-typed install` command reads your project\'s package.json file,\\nqueries the flow-typed repository for libdefs matching your dependencies, and\\ninstalls the correctly-versioned libdefs into the `flow-typed/` directory for\\nyou. By default, Flow knows to look in the `flow-typed/` directory for libdefs\\n\u2014 so there is no additional configuration necessary.\\n\\nNote that it\'s necessary to run this command *after* running `yarn` or\\n`npm install`. This is because this command will also generate stub libdefs for\\nyou if one of your dependencies doesn\'t have types.\\n\\nOnce libdefs have been installed, **we recommend that you check them in to your\\nproject\'s repo**. Libdefs in the flow-typed repository may be improved over\\ntime (fixing a bug, more precise types, etc). If this happens for a libdef that\\nyou depend on, you\'ll want to have control over when that update is applied to\\nyour project. Periodically you can run `flow-typed update` to download any\\nlibdef updates, verify that your project still typechecks, and the commit the\\nupdates.\\n\\n### Why Not Just Use Npm To Distribute Libdefs?\\n\\nOver time libdefs in the flow-typed repo may be updated to fix bugs, improve\\naccuracy, or make use of new Flow features that better describe the types of\\nthe library. As a result, there are really 3 versions that apply to each\\nlibdef: The version of the library being described, the current version of the\\nlibdef in the flow-typed repo, and the version(s) of Flow the libdef is\\ncompatible with.\\n\\nIf an update is made to some libdef that you use in your project after you\'ve\\nalready installed it, there\'s a good chance that update may find new type\\nerrors in your project that were previously unknown. While it is certainly a\\ngood thing to find errors that were previously missed, you\'ll want to have\\ncontrol over when those changes get pulled in to your project.\\n\\nThis is the reason we advise that you commit your installed libdefs to version\\ncontrol rather than rely on a system like npm+semver to download and install a\\nnon-deterministic semver-ranged version from npm. Checking in your libdefs\\nensures that all collaborators on your project have consistent output from Flow\\nat any given commit in version history.\\n\\n### Building a Community\\n\\nThis is first and foremost a community project. It was started by a community\\nmember (hey [@splodingsocks](https://github.com/splodingsocks)!) and has\\nalready benefitted from hours of work by many others. Moreover, this will\\ncontinue to be a community effort: Anyone can create and/or help maintain a\\nlibdef for any npm library. Authors may create libdefs for their packages when\\npublishing, and/or consumers can create them when someone else hasn\'t already\\ndone so. Either way, everyone benefits!\\n\\nWe\'d like to send a big shout-out to [@marudor](https://github.com/marudor) for\\ncontributing so many of his own libdefs and spending time helping others to\\nwrite and contribute libdefs. Additionally we\'d like to thank\\n[@ryyppy](https://github.com/ryyppy) for helping to design and iterate on the\\nCLI and installation workflow as well as manage libdef reviews.\\n\\nThe Flow core team intends to stay invested in developing and improving this\\nproject, but in order for it to truly succeed we need your help! If you\'ve\\nalready written some libdefs for Flow projects that you work on, we encourage\\nyou to [contribute](https://github.com/flowtype/flow-typed/#how-do-i-contribute-library-definitions)\\nthem for others to benefit from them as well. By managing libdefs in a\\ncommunity-driven repository, the community as a whole can work together to\\nextend Flow\'s capabilities beyond just explicitly-typed JS.\\n\\nIt\'s still early days and there\'s still a lot to do, so we\'re excited to hear\\nyour ideas/feedback and read your pull requests! :)\\n\\nHappy typing!"},{"id":"/2016/10/04/Property-Variance","metadata":{"permalink":"/blog/2016/10/04/Property-Variance","source":"@site/blog/2016-10-04-Property-Variance.md","title":"Property Variance and Other Upcoming Changes","description":"The next release of Flow, 0.34, will include a few important changes to object","date":"2016-10-04T00:00:00.000Z","formattedDate":"October 4, 2016","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Sam Goldman"}],"frontMatter":{"title":"Property Variance and Other Upcoming Changes","short-title":"Property Variance","author":"Sam Goldman","hide_table_of_contents":true},"prevItem":{"title":"Introducing Flow-Typed","permalink":"/blog/2016/10/13/Flow-Typed"},"nextItem":{"title":"Windows Support is Here!","permalink":"/blog/2016/08/01/Windows-Support"}},"content":"The next release of Flow, 0.34, will include a few important changes to object\\ntypes:\\n\\n* property variance,\\n* invariant-by-default dictionary types,\\n* covariant-by-default method types,\\n* and more flexible getters and setters.\\n\\n\x3c!--truncate--\x3e\\n\\n### What is Variance?\\n\\nDefining the subtype relationship between types is a core responsibility of Flow\\nas a type system. These relationships are determined either directly for\\nsimple types or, for complex types, defined in terms of their parts.\\n\\nVariance describes the subtyping relationship for complex types as it relates\\nto the subtyping relationships of their parts.\\n\\nFor example, Flow directly encodes the knowledge that `string` is a subtype of\\n`?string`. Intuitively, a `string` type contains string values while a `?string`\\ntype contains `null`, `undefined`, and also string values, so membership in the\\nformer naturally implies membership in the later.\\n\\nThe subtype relationships between two function types is not as direct. Rather,\\nit is derived from the subtype relationships between the functions\' parameter\\nand return types.\\n\\nLet\'s see how this works for two simple function types:\\n\\n```js\\ntype F1 = (x: P1) => R1;\\ntype F2 = (x: P2) => R2;\\n```\\n\\nWhether `F2` is a subtype of `F1` depends on the relationships between `P1` and\\n`P2` and `R1` and `R2`. Let\'s use the notation `B <: A` to mean `B` is a\\nsubtype of `A`.\\n\\nIt turns out that `F2 <: F1` if `P1 <: P2` and `R2 <: R1`. Notice that the\\nrelationship for parameters is reversed? In technical terms, we can say that\\nfunction types are \\"contravariant\\" with respect to their parameter types and\\n\\"covariant\\" with respect to their return types.\\n\\nLet\'s look at an example:\\n\\n```js\\nfunction f(callback: (x: string) => ?number): number {\\n return callback(\\"hi\\") || 0;\\n}\\n```\\n\\nWhat kinds of functions can we pass to `f`? Based on the subtyping rule above,\\nthen we can pass a function whose parameter type is a supertype of `string` and\\nwhose return type is a subtype of `?number`.\\n\\n```js\\nfunction g(x: ?string): number {\\n return x ? x.length : 0;\\n}\\nf(g);\\n```\\n\\nThe body of `f` will only ever pass `string` values into `g`, which is safe\\nbecause `g` takes at least `string` by taking `?string`. Conversely, `g` will\\nonly ever return `number` values to `f`, which is safe because `f` handles at\\nleast `number` by handling `?number`.\\n\\n#### Input and Output\\n\\nOne convenient way to remember when something is covariant vs. contravariant is\\nto think about \\"input\\" and \\"output.\\"\\n\\nParameters are in an *input* position, often called a \\"negative\\" position.\\nComplex types are contravariant in their input positions.\\n\\nReturn is an *output* position, often called a \\"positive\\" position. Complex\\ntypes are covariant in their output positions.\\n\\n## Property Invariance\\n\\nJust as function types are composed of parameter and return types, so too are\\nobject types composed of property types. Thus, the subtyping relationship\\nbetween objects is derived from the subtyping relationships of their\\nproperties.\\n\\nHowever, unlike functions which have input parameters and an output return,\\nobject properties can be read and written. That is, properties are *both* input\\nand output.\\n\\nLet\'s see how this works for two simple object types:\\n\\n```js\\ntype O1 = {p: T1};\\ntype O2 = {p: T2};\\n```\\n\\nAs with function types, whether `O2` is a subtype of `O1` depends on the\\nrelationship between its parts, `T1` and `T2`.\\n\\nHere it turns out that `O2 <: O1` if `T2 <: T1` *and* `T1 <: T2`. In technical\\nterms, object types are \\"invariant\\" with respect to their property types.\\n\\nLet\'s look at an example:\\n\\n```js\\nfunction f(o: {p: ?string}): void {\\n // We can read p from o\\n let len: number;\\n if (o.p) {\\n len = o.p.length;\\n } else {\\n len = 0;\\n }\\n\\n // We can also write into p\\n o.p = null;\\n}\\n```\\n\\nWhat kinds of objects can we pass into `f`, then? If we try to pass in an\\nobject with a subtype property, we get an error:\\n\\n```js\\nvar o1: {p: string} = {p: \\"\\"};\\nf(o1);\\n```\\n\\n```\\nfunction f(o: {p: ?string}) {}\\n ^ null. This type is incompatible with\\nvar o1: {p: string} = {p: \\"\\"};\\n ^ string\\nfunction f(o: {p: ?string}) {}\\n ^ undefined. This type is incompatible with\\nvar o1: {p: string} = {p: \\"\\"};\\n ^ string\\n```\\n\\nFlow has correctly identified an error here. If the body of `f` writes `null`\\ninto `o.p`, then `o1.p` would no longer have type `string`.\\n\\nIf we try to pass an object with a supertype property, we again get an error:\\n\\n```js\\nvar o2: {p: ?(string|number)} = {p: 0};\\nf(o2);\\n```\\n\\n```\\nvar o1: {p: ?(string|number)} = {p: \\"\\"};\\n ^ number. This type is incompatible with\\nfunction f(o: {p: ?string}) {}\\n ^ string\\n```\\n\\nAgain, Flow correctly identifies an error, because if `f` tried to read `p`\\nfrom `o`, it would find a number.\\n\\n### Property Variance\\n\\nSo objects have to be invariant with respect to their property types because\\nproperties can be read from and written to. But just because you *can* read and\\nwrite, doesn\'t mean you always do.\\n\\nConsider a function that gets the length of an nullable string property:\\n\\n```js\\nfunction f(o: {p: ?string}): number {\\n return o.p ? o.p.length : 0;\\n}\\n```\\n\\nWe never write into `o.p`, so we should be able to pass in an object where the\\ntype of property `p` is a subtype of `?string`. Until now, this wasn\'t possible\\nin Flow.\\n\\nWith property variance, you can explicitly annotate object properties as being\\ncovariant and contravariant. For example, we can rewrite the above function:\\n\\n```js\\nfunction f(o: {+p: ?string}): number {\\n return o.p ? o.p.length : 0;\\n}\\n\\nvar o: {p: string} = {p: \\"\\"};\\nf(o); // no type error!\\n```\\n\\nIt\'s crucial that covariant properties only ever appear in output positions. It\\nis an error to write to a covariant property:\\n\\n```js\\nfunction f(o: {+p: ?string}) {\\n o.p = null;\\n}\\n```\\n\\n```\\no.p = null;\\n^ object type. Covariant property `p` incompatible with contravariant use in\\no.p = null;\\n^ assignment of property `p`\\n```\\n\\nConversely, if a function only ever writes to a property, we can annotate the\\nproperty as contravariant. This might come up in a function that initializes an\\nobject with default values, for example.\\n\\n```js\\nfunction g(o: {-p: string}): void {\\n o.p = \\"default\\";\\n}\\nvar o: {p: ?string} = {p: null};\\ng(o);\\n```\\n\\nContravariant properties can only ever appear in input positions. It is an\\nerror to read from a contravariant property:\\n\\n```js\\nfunction f(o: {-p: string}) {\\n o.p.length;\\n}\\n```\\n\\n```\\no.p.length;\\n^ object type. Contravariant property `p` incompatible with covariant use in\\no.p.length;\\n^ property `p`\\n```\\n\\n### Invariant-by-default Dictionary Types\\n\\nThe object type `{[key: string]: ?number}` describes an object that can be used\\nas a map. We can read any property and Flow will infer the result type as\\n`?number`. We can also write `null` or `undefined` or `number` into any\\nproperty.\\n\\nIn Flow 0.33 and earlier, these dictionary types were treated covariantly by\\nthe type system. For example, Flow accepted the following code:\\n\\n```js\\nfunction f(o: {[key: string]: ?number}) {\\n o.p = null;\\n}\\ndeclare var o: {p: number};\\nf(o);\\n```\\n\\nThis is unsound because `f` can overwrite property `p` with `null`. In Flow\\n0.34, dictionaries are invariant, like named properties. The same code now\\nresults in the following type error:\\n\\n```\\nfunction f(o: {[key: string]: ?number}) {}\\n ^ null. This type is incompatible with\\ndeclare var o: {p: number};\\n ^ number\\nfunction f(o: {[key: string]: ?number}) {}\\n ^ undefined. This type is incompatible with\\ndeclare var o: {p: number};\\n ^ number\\n```\\n\\nCovariant and contravariant dictionaries can be incredibly useful, though. To\\nsupport this, the same syntax used to support variance for named properties can\\nbe used for dictionaries as well.\\n\\n```\\nfunction f(o: {+[key: string]: ?number}) {}\\ndeclare var o: {p: number};\\nf(o); // no type error!\\n```\\n\\n### Covariant-by-default Method Types\\n\\nES6 gave us a shorthand way to write object properties which are functions.\\n\\n```js\\nvar o = {\\n m(x) {\\n return x * 2\\n }\\n}\\n```\\n\\nFlow now interprets properties which use this shorthand method syntax as\\ncovariant by default. This means it is an error to write to the property `m`.\\n\\nIf you don\'t want covariance, you can use the long form syntax:\\n\\n```js\\nvar o = {\\n m: function(x) {\\n return x * 2;\\n }\\n}\\n```\\n\\n### More Flexible Getters and Setters\\n\\nIn Flow 0.33 and earlier, getters and setters had to agree exactly on their\\nreturn type and parameter type, respectively. Flow 0.34 lifts that restriction.\\n\\nThis means you can write code like the following:\\n\\n```js\\n// @flow\\ndeclare var x: string;\\n\\nvar o = {\\n get x(): string {\\n return x;\\n },\\n set x(value: ?string) {\\n x = value || \\"default\\";\\n }\\n}\\n```"},{"id":"/2016/08/01/Windows-Support","metadata":{"permalink":"/blog/2016/08/01/Windows-Support","source":"@site/blog/2016-08-01-Windows-Support.md","title":"Windows Support is Here!","description":"We are excited to announce that Flow is now officially available on 64-bit","date":"2016-08-01T00:00:00.000Z","formattedDate":"August 1, 2016","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"Windows Support is Here!","short-title":"Windows Support","author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Property Variance and Other Upcoming Changes","permalink":"/blog/2016/10/04/Property-Variance"},"nextItem":{"title":"New Implementation of Unions and Intersections","permalink":"/blog/2016/07/01/New-Unions-Intersections"}},"content":"We are excited to announce that Flow is now officially available on 64-bit\\nWindows! Starting with\\n[Flow v0.30.0](https://github.com/facebook/flow/releases/tag/v0.30.0), we will\\npublish a Windows binary with each release. You can download the Windows binary\\nin a .zip file directly from the\\n[GitHub releases page](https://github.com/facebook/flow/releases) or install it\\nusing the [flow-bin npm package](https://www.npmjs.com/package/flow-bin). Try\\nit out and [report any issues](https://github.com/facebook/flow/issues) you\\ncome across!\\n\\n![Windows Support GIF]({{ site.baseurl }}/static/windows.gif)\\n\\nGetting Flow working on Windows was not easy, and it was made possible by the\\nhard work of [Gr\xe9goire](https://github.com/OCamlPro-Henry),\\n[\xc7agdas](https://github.com/OCamlPro-Bozman) and\\n[Fabrice](https://github.com/lefessan) from\\n[OCamlPro](https://www.ocamlpro.com/).\\n\\n\x3c!--truncate--\x3e\\n\\n### Getting Started with Windows\\n\\n#### Getting Started with flow-bin on Windows\\n\\nDoes your JavaScript project use npm to manage dependencies? Well, then the\\neasiest way for you to install Flow is with npm! Just run\\n\\n```bash\\n> npm install --save-dev flow-bin\\n```\\n\\n(Note: on Windows, it is recommended to use npm v3, to avoid the long\\n`node_modules` paths that npm v2 creates)\\n\\nThis will install the\\n[flow-bin npm package](https://www.npmjs.com/package/flow-bin) and\\nautomatically add it to your package.json. Once installed, there are a few ways\\nto use the Flow binary. One is to use `./node_modules/.bin/flow` directly. For\\nexample, every Flow project needs a `.flowconfig` file in the root directory.\\nIf you don\'t already have a `.flowconfig`, you could create it with Powershell,\\nlike\\n\\n```bash\\n> New-Item .flowconfig\\n```\\n\\nor you could run the `flow init` command, using `./node_modules/.bin/flow`\\n\\n```bash\\n> ./node_modules/.bin/flow init\\n```\\n\\nAnother way to run Flow is via an npm script. In your package.json file, there\\nis a `\\"scripts\\"` section. Maybe it looks like this:\\n\\n```js\\n\\"scripts\\": {\\n \\"test\\": \\"make test\\"\\n}\\n```\\n\\nYou can run the Flow binary directly from a script by referencing `flow` in a\\nscript, like so:\\n\\n```js\\n\\"scripts\\": {\\n \\"test\\": \\"make test\\",\\n \\"flow_check\\": \\"flow check || exit 0\\"\\n}\\n```\\n\\nand then running that script via `npm run`\\n\\n```bash\\n> npm run flow_check\\n```\\n\\n(Note: the `|| exit 0` part of the script is optional, but `npm run` will show\\nan error message if the script finishes with a non-zero exit code)\\n\\nYou can also install `flow-bin` globally with\\n\\n```bash\\n> npm install --global flow-bin\\n```\\n\\n#### Getting Started with flow.exe\\n\\nEach [GitHub release of Flow](https://github.com/facebook/flow/releases)\\nstarting with v0.30.0 will have a zipped Windows binary. For example, the\\n[v0.30.0 release](https://github.com/facebook/flow/releases/tag/v0.30.0)\\nincludes [flow-win64-v0.30.0.zip](https://github.com/facebook/flow/releases/download/v0.30.0/flow-win64-v0.30.0.zip).\\nIf you download and unzip that, you will find a `flow/` directory, which\\ncontains `flow.exe`. `flow.exe` is the Flow binary, so if you put that\\nsomewhere in your path, and you should be good to go.\\n\\n```bash\\n> mkdir demo\\n> cd demo\\n> flow.exe init\\n> \\"/* @flow */ var x: number = true;\\" | Out-File -Encoding ascii test.js\\n> flow.exe check\\ntest.js:1\\n 1: /* @flow */ var x: number = true;\\n ^^^^ boolean. This type is incompatible with\\n\\n 1: /* @flow */ var x: number = true;\\n ^^^^^^ number\\n```"},{"id":"/2016/07/01/New-Unions-Intersections","metadata":{"permalink":"/blog/2016/07/01/New-Unions-Intersections","source":"@site/blog/2016-07-01-New-Unions-Intersections.md","title":"New Implementation of Unions and Intersections","description":"Summary","date":"2016-07-01T00:00:00.000Z","formattedDate":"July 1, 2016","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Sam Goldman"}],"frontMatter":{"title":"New Implementation of Unions and Intersections","short-title":"New Unions and Intersections","author":"Sam Goldman","hide_table_of_contents":true},"prevItem":{"title":"Windows Support is Here!","permalink":"/blog/2016/08/01/Windows-Support"},"nextItem":{"title":"Version 0.21.0","permalink":"/blog/2016/02/02/Version-0.21.0"}},"content":"### Summary\\n\\nBefore Flow 0.28, the implementation of union/intersection types had serious\\nbugs and was [the][gh1759] [root][gh1664] [cause][gh1663] [of][gh1462]\\n[a][gh1455] [lot][gh1371] [of][gh1349] [weird][gh842] [behaviors][gh815] you\\nmay have run into with Flow in the past. These bugs have now been addressed in\\n[a diff landing in 0.28][fotu].\\n\\n\x3c!--truncate--\x3e\\n\\nAs you might expect after a major rewrite of a tricky part of the type system\\nimplementation, there will be a short period of adjustment: you may run into\\nkinks that we will try to iron out promptly, and you may run into some\\nunfamiliar error messages.\\n\\n### New Error Messages\\n\\n```\\n Could not decide which case to select\\n\\n\\n Case 1 may work:\\n \\n\\n But if it doesn\'t, case 2 looks promising too:\\n \\n\\n Please provide additional annotation(s) to determine whether case 1 works\\n (or consider merging it with case 2):\\n \\n \\n ...\\n```\\n\\nWhat this means is that at ``, Flow needs to make a choice: one\\nof the members of the union/intersection type at\\n`` must be applied, but Flow can\'t choose\\nsafely based on available information. In particular, it cannot decide between\\ncase `1` and `2`, so Flow lists a bunch of annotations that can help it\\ndisambiguate the two cases.\\n\\n### Actions Needed\\n\\nYou can fix the errors in two ways:\\n\\n- Actually go and annotate the listed locations. This should be by far the most\\n common fix.\\n- Discover that there is real, unintentional ambiguity between case 1 and 2,\\n and rewrite the two cases in the union type to remove the ambiguity. When\\n this happens, typically it will fix a large number of errors.\\n\\nThere are two more possibilities, however:\\n\\n- There\'s no real ambiguity and Flow is being too conservative / dumb. In this\\n case, go ahead and do the annotations anyway and file an issue on GitHub. We\\n plan to do a lot of short-term follow-up work to disambiguate more cases\\n automatically, so over time you should see less of (3).\\n- You have no idea what\'s going on. The cases being pointed to don\'t make sense.\\n They don\'t correspond to what you have at ``. Hopefully you\\n won\'t run into (4) too often, but if you do **please file an issue**, since\\n this means there are still latent bugs in the implementation.\\n\\nIf you file an issue on GitHub, please include code to reproduce the issue. You\\ncan use [Try Flow](https://flowtype.org/try/) to share your repro case easily.\\n\\nIf you\'re curious about the whys and hows of these new error messages, here\'s\\nan excerpt from the commit message of the \\"fate of the union\\" diff:\\n\\n### Problem\\n\\nFlow\'s inference engine is designed to find more errors over time as\\nconstraints are added...but it is not designed to backtrack. Unfortunately,\\nchecking the type of an expression against a union type does need backtracking:\\nif some branch of the union doesn\'t work out, the next branch must be tried,\\nand so on. (The same is true for checks that involve intersection types.)\\n\\nThe situation is further complicated by the fact that the type of the\\nexpression may not be completely known at the point of checking, so that a\\nbranch that looks promising now might turn out to be incorrect later.\\n\\n### Solution\\n\\nThe basic idea is to delay trying a branch until a point where we can decide\\nwhether the branch will definitely fail or succeed, without further\\ninformation. If trying a branch results in failure, we can move on to the next\\nbranch without needing to backtrack. If a branch succeeds, we are done. The\\nfinal case is where the branch looks promising, but we cannot be sure without\\nadding constraints: in this case we try other branches, and *bail* when we run\\ninto ambiguities...requesting additional annotations to decide which branch to\\nselect. Overall, this means that (1) we never commit to a branch that might\\nturn out to be incorrect and (2) can always select a correct branch (if such\\nexists) given enough annotations.\\n\\n[gh1759]: https://github.com/facebook/flow/issues/1759\\n[gh1664]: https://github.com/facebook/flow/issues/1664\\n[gh1663]: https://github.com/facebook/flow/issues/1663\\n[gh1462]: https://github.com/facebook/flow/issues/1462\\n[gh1455]: https://github.com/facebook/flow/issues/1455\\n[gh1371]: https://github.com/facebook/flow/issues/1371\\n[gh1349]: https://github.com/facebook/flow/issues/1349\\n[gh842]: https://github.com/facebook/flow/issues/824\\n[gh815]: https://github.com/facebook/flow/issues/815\\n[fotu]: https://github.com/facebook/flow/commit/2df7671e7bda770b95e6b1eaede96d7a8ab1f2ac"},{"id":"/2016/02/02/Version-0.21.0","metadata":{"permalink":"/blog/2016/02/02/Version-0.21.0","source":"@site/blog/2016-02-02-Version-0.21.0.md","title":"Version 0.21.0","description":"Yesterday we deployed Flow v0.21.0! As always, we\'ve listed out the most","date":"2016-02-02T00:00:00.000Z","formattedDate":"February 2, 2016","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"Version 0.21.0","short-title":"Version 0.21.0","author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"New Implementation of Unions and Intersections","permalink":"/blog/2016/07/01/New-Unions-Intersections"},"nextItem":{"title":"Version-0.19.0","permalink":"/blog/2015/12/01/Version-0.19.0"}},"content":"Yesterday we deployed Flow v0.21.0! As always, we\'ve listed out the most\\ninteresting changes in the\\n[Changelog](https://github.com/facebook/flow/blob/master/Changelog.md#v0210).\\nHowever, since I\'m on a plane and can\'t sleep, I thought it might be fun to\\ndive into a couple of the changes! Hope this blog post turns out interesting\\nand legible!\\n\\n### JSX Intrinsics\\n\\nIf you\'re writing JSX, it\'s probably a mix of your own React Components and\\nsome intrinsics. For example, you might write\\n\\n```js\\nrender() {\\n return

;\\n}\\n```\\n\\nIn this example, `FluffyBunny` is a React Component you wrote and `div` is a\\nJSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React\\nand by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the\\ntype `any`. This meant Flow let you set any property on JSX intrinsics. Flow\\nv0.21.0 will, by default, do the same thing as v0.20.0, However now you can\\nalso configure Flow to properly type your JSX intrinsics!\\n\\n\x3c!--truncate--\x3e\\n\\n#### Example of how to use JSX intrinsics\\n\\n.flowconfig\\n\\n```js\\n[libs]\\nmyLib.js\\n```\\n\\nmyLib.js\\n\\n```js\\n// JSXHelper is a type alias to make this example more concise.\\n// There\'s nothing special or magic here.\\n// JSXHelper<{name: string}> is a React component\\n// with the single string property \\"name\\", which has a default\\ntype JSXHelper = Class>;\\n\\n// $JSXIntrinsics is special and magic.\\n// This declares the types for `div` and `span`\\ntype $JSXIntrinsics = {\\n div: JSXHelper<{id: string}>,\\n span: JSXHelper<{id: string, class: string}>,\\n};\\n```\\n\\nmyCode.js\\n\\n```js\\n
; // No error\\n
; // Error: `id` prop is a string, not a number!\\n```\\n\\n#### What is going on here?\\n\\nThe new bit of magic is this `$JSXIntrinsics` type alias. When Flow sees\\n`` it will look to see if `$JSXIntrinsics` exists and if so will grab\\nthe type of `$JSXIntrinsics[\'foo\']`. It will use this type to figure out which\\nproperties are available and need to be set.\\n\\nWe haven\'t hardcoded the intrinsics into Flow since the available intrinsics\\nwill depend on your environment. For example, React native would have different\\nintrinsics than React for the web would.\\n\\n### Smarter string refinements\\n\\nOne of the main ways that we make Flow smarter is by teaching it to recognize\\nmore ways that JavaScript programmers refine types. Here\'s an example of a\\ncommon way to refine nullable values:\\n\\n```js\\nclass Person {\\n name: ?string;\\n ...\\n getName(): string {\\n // Before the if, this.name could be null, undefined, or a string\\n if (this.name != null) {\\n // But now the programmer has refined this.name to definitely be a string\\n return this.name;\\n }\\n // And now we know that this.name is null or undefined.\\n return \'You know who\';\\n }\\n}\\n```\\n\\n#### New string refinements\\n\\nIn v0.21.0, one of the refinements we added is the ability to refine types by\\ncomparing them to strings.\\n\\nThis is useful for refining unions of string literals into string literals\\n\\n```js\\nfunction test(x: \'foo\' | \'bar\'): \'foo\' {\\n if (x === \'foo\') {\\n // Now Flow understands that x has the type \'foo\'\\n return x;\\n } else {\\n return \'foo\';\\n }\\n}\\n```\\n\\nAnd can also narrow the value of strings:\\n\\n```js\\nfunction test(x: string): \'foo\' {\\n if (x === \'foo\') {\\n // Now Flow knows x has the type \'foo\'\\n return x;\\n } else {\\n return \'foo\';\\n }\\n}\\n```\\n\\nThis is one of the many refinements that Flow currently can recognize and\\nfollow, and we\'ll keep adding more! Stay tuned!"},{"id":"/2015/12/01/Version-0.19.0","metadata":{"permalink":"/blog/2015/12/01/Version-0.19.0","source":"@site/blog/2015-12-01-Version-0.19.0.md","title":"Version-0.19.0","description":"Flow v0.19.0 was deployed today! It has a ton of changes, which the","date":"2015-12-01T00:00:00.000Z","formattedDate":"December 1, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Version 0.21.0","permalink":"/blog/2016/02/02/Version-0.21.0"},"nextItem":{"title":"Typing Generators with Flow","permalink":"/blog/2015/11/09/Generators"}},"content":"Flow v0.19.0 was deployed today! It has a ton of changes, which the\\n[Changelog](https://github.com/facebook/flow/blob/master/Changelog.md#v0190)\\nsummarizes. The Changelog can be a little concise, though, so here are some\\nlonger explanations for some of the changes. Hope this helps!\\n\\n### `@noflow`\\n\\nFlow is opt-in by default (you add `@flow` to a file). However we noticed that\\nsometimes people would add Flow annotations to files that were missing `@flow`.\\nOften, these people didn\'t notice that the file was being ignored by Flow. So\\nwe decided to stop allowing Flow syntax in non-Flow files. This is easily fixed\\nby adding either `@flow` or `@noflow` to your file. The former will make the\\nfile a Flow file. The latter will tell Flow to completely ignore the file.\\n\\n### Declaration files\\n\\nFiles that end with `.flow` are now treated specially. They are the preferred\\nprovider of modules. That is if both `foo.js` and `foo.js.flow` exist, then\\nwhen you write `import Foo from \'./foo\'`, Flow will use the type exported from\\n`foo.js.flow` rather than `foo.js`.\\n\\nWe imagine two main ways people will use `.flow` files.\\n\\n\x3c!--truncate--\x3e\\n\\n1. As interface files. Maybe you have some library `coolLibrary.js` that is\\n really hard to type with inline Flow types. You could put\\n `coolLibrary.js.flow` next to it and declare the types that `coolLibrary.js`\\n exports.\\n\\n ```js\\n// coolLibrary.js.flow\\ndeclare export var coolVar: number;\\ndeclare export function coolFunction(): void;\\ndeclare export class coolClass {}\\n ```\\n\\n2. As the original source. Maybe you want to ship the minified, transformed\\n version of `awesomeLibrary.js`, but people who use `awesomeLibrary.js` also\\n use Flow. Well you could do something like\\n\\n ```bash\\ncp awesomeLibraryOriginalCode.js awesomeLibrary.js.flow\\nbabel awesomeLibraryOriginalCode --out-file awesomeLibrary.js\\n ```\\n\\n### Order of precedence for lib files\\n\\nNow your local lib files will override the builtin lib files. Is one of the\\nbuiltin flow libs wrong? Send a pull request! But then while you\'re waiting for\\nthe next release, you can use your own definition! The order of precedence is\\nas follows:\\n\\n1. Any paths supplied on the command line via --lib\\n2. The files found in the paths specified in the .flowconfig `[libs]` (in\\n listing order)\\n3. The Flow core library files\\n\\nFor example, if I want to override the builtin definition of Array and instead\\nuse my own version, I could update my `.flowconfig` to contain\\n\\n```\\n// .flowconfig\\n[libs]\\nmyArray.js\\n```\\n\\n```js\\n// myArray.js\\ndeclare class Array {\\n // Put whatever you like in here!\\n}\\n```\\n\\n### Deferred initialization\\n\\nPreviously the following code was an error, because the initialization of\\n`myString` happens later. Now Flow is fine with it.\\n\\n```js\\nfunction foo(someFlag: boolean): string {\\n var myString:string;\\n if (someFlag) {\\n myString = \\"yup\\";\\n } else {\\n myString = \\"nope\\";\\n }\\n return myString;\\n}\\n```"},{"id":"/2015/11/09/Generators","metadata":{"permalink":"/blog/2015/11/09/Generators","source":"@site/blog/2015-11-09-Generators.md","title":"Typing Generators with Flow","description":"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.","date":"2015-11-09T00:00:00.000Z","formattedDate":"November 9, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Sam Goldman"}],"frontMatter":{"title":"Typing Generators with Flow","short-title":"Generators","author":"Sam Goldman","hide_table_of_contents":true},"prevItem":{"title":"Version-0.19.0","permalink":"/blog/2015/12/01/Version-0.19.0"},"nextItem":{"title":"Version-0.17.0","permalink":"/blog/2015/10/07/Version-0.17.0"}},"content":"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an [upcoming feature](https://github.com/tc39/ecmascript-asyncawait) already supported by Flow.\\n\\n\x3c!--truncate--\x3e\\n\\nSo much wonderful material has already been produced describing generators. I am going to focus on the interaction of static typing with generators. Please refer to the following materials for information about generators:\\n\\n* Jafar Husain gave an [incredibly lucid and well-illustrated talk](https://www.youtube.com/watch?v=DqMFX91ToLw#t=970) that covers generators. I have linked to the point where he gets into generators, but I highly recommend the entire talk.\\n* Exploring ES6, a comprehensive book by Axel Rauschmayer, who has generously made the contents available for free online, has a [chapter on generators](http://exploringjs.com/es6/ch_generators.html).\\n* The venerable MDN has a [useful page](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators) describing the `Iterator` interface and generators.\\n\\nIn Flow, the `Generator` interface has three type parameters: `Yield`, `Return`, and `Next`. `Yield` is the type of values which are yielded from the generator function. `Return` is the type of the value which is returned from the generator function. `Next` is the type of values which are passed into the generator via the `next` method on the `Generator` itself. For example, a generator value of type `Generator` will yield `string`s, return a `number`, and will receive `boolean`s from its caller.\\n\\nFor any type `T`, a `Generator` is both an `Iterable` and an `Iterator`.\\n\\nThe unique nature of generators allows us to represent infinite sequences naturally. Consider the infinite sequence of natural numbers:\\n\\n```javascript\\nfunction *nats() {\\n let i = 0;\\n while (true) {\\n yield i++;\\n }\\n}\\n```\\n\\nBecause generators are also iterators, we can manually iterate the generator:\\n\\n```javascript\\nconst gen = nats();\\nconsole.log(gen.next()); // { done: false, value: 0 }\\nconsole.log(gen.next()); // { done: false, value: 1 }\\nconsole.log(gen.next()); // { done: false, value: 2 }\\n```\\n\\nWhen `done` is false, `value` will have the generator\'s `Yield` type. When `done` is true, `value` will have the generator\'s `Return` type or `void` if the consumer iterates past the completion value.\\n\\n```javascript\\nfunction *test() {\\n yield 1;\\n return \\"complete\\";\\n}\\nconst gen = test();\\nconsole.log(gen.next()); // { done: false, value: 1 }\\nconsole.log(gen.next()); // { done: true, value: \\"complete\\" }\\nconsole.log(gen.next()); // { done: true, value: undefined }\\n```\\n\\nBecause of this behavior, manually iterating poses typing difficulties. Let\'s try to take the first 10 values from the `nats` generator through manual iteration:\\n\\n```javascript\\nconst gen = nats();\\nconst take10: number[] = [];\\nfor (let i = 0; i < 10; i++) {\\n const { done, value } = gen.next();\\n if (done) {\\n break;\\n } else {\\n take10.push(value); // error!\\n }\\n}\\n```\\n\\n```\\ntest.js:13\\n 13: const { done, value } = gen.next();\\n ^^^^^^^^^^ call of method `next`\\n 17: take10.push(value); // error!\\n ^^^^^ undefined. This type is incompatible with\\n 11: const take10: number[] = [];\\n ^^^^^^ number\\n```\\n\\nFlow is complaining that `value` might be `undefined`. This is because the type of `value` is `Yield | Return | void`, which simplifies in the instance of `nats` to `number | void`. We can introduce a dynamic type test to convince Flow of the invariant that `value` will always be `number` when `done` is false.\\n\\n```javascript\\nconst gen = nats();\\nconst take10: number[] = [];\\nfor (let i = 0; i < 10; i++) {\\n const { done, value } = gen.next();\\n if (done) {\\n break;\\n } else {\\n if (typeof value === \\"undefined\\") {\\n throw new Error(\\"`value` must be a number.\\");\\n }\\n take10.push(value); // no error\\n }\\n}\\n```\\n\\nThere is an [open issue](https://github.com/facebook/flow/issues/577) which would make the dynamic type test above unnecessary, by using the `done` value as a sentinel to refine a tagged union. That is, when `done` is `true`, Flow would know that `value` is always of type `Yield` and otherwise of type `Return | void`.\\n\\nEven without the dynamic type test, this code is quite verbose and it\'s hard to see the intent. Because generators are also iterable, we can also use `for...of` loops:\\n\\n```javascript\\nconst take10: number[] = [];\\nlet i = 0;\\nfor (let nat of nats()) {\\n if (i === 10) break;\\n take10.push(nat);\\n i++;\\n}\\n```\\n\\nThat\'s much better. The `for...of` looping construct ignores completion values, so Flow understands that `nat` will always be `number`. Let\'s generalize this pattern further using generator functions:\\n\\n```javascript\\nfunction *take(n: number, xs: Iterable): Iterable {\\n if (n <= 0) return;\\n let i = 0;\\n for (let x of xs) {\\n yield x;\\n if (++i === n) return;\\n }\\n}\\n\\nfor (let n of take(10, nats())) {\\n console.log(n); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\\n}\\n```\\n\\nNote that we explicitly annotated the parameters and return type of the `take` generator. This is necessary to ensure Flow understands the fully generic type. This is because Flow does not currently infer a fully generic type, but instead accumulates lower bounds, resulting in a union type.\\n\\n```javascript\\nfunction identity(x) { return x }\\nvar a: string = identity(\\"\\"); // error\\nvar b: number = identity(0); // error\\n```\\n\\nThe above code produces errors because Flow adds `string` and `number` as lower bounds to the type variable describing the type of the value bound by `x`. That is, Flow believes the type of `identity` is `(x: string | number) => string | number` because those are the types which actually passed through the function.\\n\\nAnother important feature of generators is the ability to pass values into the generator from the consumer. Let\'s consider a generator `scan`, which reduces values passed into the generator using a provided function. Our `scan` is similar to `Array.prototype.reduce`, but it returns each intermediate value and the values are provided imperatively via `next`.\\n\\nAs a first pass, we might write this:\\n\\n```javascript\\nfunction *scan(init: U, f: (acc: U, x: T) => U): Generator {\\n let acc = init;\\n while (true) {\\n const next = yield acc;\\n acc = f(acc, next);\\n }\\n}\\n```\\n\\nWe can use this definition to implement an imperative sum procedure:\\n\\n```javascript\\nlet sum = scan(0, (a,b) => a + b);\\nconsole.log(sum.next()); // { done: false, value: 0 }\\nconsole.log(sum.next(1)); // { done: false, value: 1 }\\nconsole.log(sum.next(2)); // { done: false, value: 3 }\\nconsole.log(sum.next(3)); // { done: false, value: 6 }\\n```\\n\\nHowever, when we try to check the above definition of `scan`, Flow complains:\\n\\n```\\ntest.js:7\\n 7: acc = f(acc, next);\\n ^^^^^^^^^^^^ function call\\n 7: acc = f(acc, next);\\n ^^^^ undefined. This type is incompatible with\\n 3: function *scan(init: U, f: (acc: U, x: T) => U): Generator {\\n ^ some incompatible instantiation of T\\n```\\n\\nFlow is complaining that our value, `next`, may be `void` instead of the expected `T`, which is `number` in the `sum` example. This behavior is necessary to ensure type safety. In order to prime the generator, our consumer must first call `next` without an argument. To accommodate this, Flow understands the argument to `next` to be optional. This means Flow will allow the following code:\\n\\n```javascript\\nlet sum = scan(0, (a,b) => a + b);\\nconsole.log(sum.next()); // first call primes the generator\\nconsole.log(sum.next()); // we should pass a value, but don\'t need to\\n```\\n\\nIn general, Flow doesn\'t know which invocation is \\"first.\\" While it should be an error to pass a value to the first `next`, and an error to *not* pass a value to subsequent `next`s, Flow compromises and forces your generator to deal with a potentially `void` value. In short, given a generator of type `Generator` and a value `x` of type `Y`, the type of the expression `yield x` is `N | void`.\\n\\nWe can update our definition to use a dynamic type test that enforces the non-`void` invariant at runtime:\\n\\n```javascript\\nfunction *scan(init: U, f: (acc: U, x: T) => U): Generator {\\n let acc = init;\\n while (true) {\\n const next = yield acc;\\n if (typeof next === \\"undefined\\") {\\n throw new Error(\\"Caller must provide an argument to `next`.\\");\\n }\\n acc = f(acc, next);\\n }\\n}\\n```\\n\\nThere is one more important caveat when dealing with typed generators. Every value yielded from the generator must be described by a single type. Similarly, every value passed to the generator via `next` must be described by a single type.\\n\\nConsider the following generator:\\n\\n```javascript\\nfunction *foo() {\\n yield 0;\\n yield \\"\\";\\n}\\n\\nconst gen = foo();\\nconst a: number = gen.next().value; // error\\nconst b: string = gen.next().value; // error\\n```\\n\\nThis is perfectly legal JavaScript and the values `a` and `b` do have the correct types at runtime. However, Flow rejects this program. Our generator\'s `Yield` type parameter has a concrete type of `number | string`. The `value` property of the iterator result object has the type `number | string | void`.\\n\\nWe can observe similar behavior for values passed into the generator:\\n\\n```\\nfunction *bar() {\\n var a = yield;\\n var b = yield;\\n return {a,b};\\n}\\n\\nconst gen = bar();\\ngen.next(); // prime the generator\\ngen.next(0);\\nconst ret: { a: number, b: string } = gen.next(\\"\\").value; // error\\n```\\n\\nThe value `ret` has the annotated type at runtime, but Flow also rejects this program. Our generator\'s `Next` type parameter has a concrete type of `number | string`. The `value` property of the iterator result object thus has the type `void | { a: void | number | string, b: void | number | string }`.\\n\\nWhile it may be possible to use dynamic type tests to resolve these issues, another practical option is to use `any` to take on the type safety responsibility yourself.\\n\\n```javascript\\nfunction *bar(): Generator {\\n var a = yield;\\n var b = yield;\\n return {a,b};\\n}\\n\\nconst gen = bar();\\ngen.next(); // prime the generator\\ngen.next(0);\\nconst ret: void | { a: number, b: string } = gen.next(\\"\\").value; // OK\\n```\\n\\n(Note that the annotation `Generator` is equivalent to `Generator`.)\\n\\nPhew! I hope that this will help you use generators in your own code. I also hope this gave you a little insight into the difficulties of applying static analysis to a highly dynamic language such as JavaScript.\\n\\nTo summarize, here are some of the lessons we\'ve learned for using generators in statically typed JS:\\n\\n* Use generators to implement custom iterables.\\n* Use dynamic type tests to unpack the optional return type of yield expressions.\\n* Avoid generators that yield or receive values of multiple types, or use `any`."},{"id":"/2015/10/07/Version-0.17.0","metadata":{"permalink":"/blog/2015/10/07/Version-0.17.0","source":"@site/blog/2015-10-07-Version-0.17.0.md","title":"Version-0.17.0","description":"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:","date":"2015-10-07T00:00:00.000Z","formattedDate":"October 7, 2015","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Typing Generators with Flow","permalink":"/blog/2015/11/09/Generators"},"nextItem":{"title":"Version-0.16.0","permalink":"/blog/2015/09/22/Version-0.16.0"}},"content":"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:\\n\\n![New error format]({{ site.baseurl }}/static/new_error_format_v0_17_0.png)\\n\\nThis should hopefully help our command line users understand many errors without having to refer to their source code. We\'ll keep iterating on this format, so tell us what you like and what you don\'t like! Thanks to [@frantic](https://github.com/frantic) for building this feature!\\n\\nThere are a whole bunch of other features and fixes in this release! Head on over to our [Release](https://github.com/facebook/flow/releases/tag/v0.17.0) for the full list!"},{"id":"/2015/09/22/Version-0.16.0","metadata":{"permalink":"/blog/2015/09/22/Version-0.16.0","source":"@site/blog/2015-09-22-Version-0.16.0.md","title":"Version-0.16.0","description":"On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!","date":"2015-09-22T00:00:00.000Z","formattedDate":"September 22, 2015","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Jeff Morrison"}],"frontMatter":{"author":"Jeff Morrison","hide_table_of_contents":true},"prevItem":{"title":"Version-0.17.0","permalink":"/blog/2015/10/07/Version-0.17.0"},"nextItem":{"title":"Version-0.15.0","permalink":"/blog/2015/09/10/Version-0.15.0"}},"content":"On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again [@samwgoldman](https://github.com/samwgoldman))!\\n\\nAs always, the [Changelog](https://github.com/facebook/flow/blob/master/Changelog.md#v0160) is best at summing up the big changes."},{"id":"/2015/09/10/Version-0.15.0","metadata":{"permalink":"/blog/2015/09/10/Version-0.15.0","source":"@site/blog/2015-09-10-Version-0.15.0.md","title":"Version-0.15.0","description":"Today we released Flow v0.15.0! A lot has changed in the last month and we\'re excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!","date":"2015-09-10T00:00:00.000Z","formattedDate":"September 10, 2015","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Version-0.16.0","permalink":"/blog/2015/09/22/Version-0.16.0"},"nextItem":{"title":"Version-0.14.0","permalink":"/blog/2015/07/29/Version-0.14.0"}},"content":"Today we released Flow v0.15.0! A lot has changed in the last month and we\'re excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!\\n\\nCheck out the [Changelog](https://github.com/facebook/flow/blob/master/Changelog.md#v0150) to see what\'s new."},{"id":"/2015/07/29/Version-0.14.0","metadata":{"permalink":"/blog/2015/07/29/Version-0.14.0","source":"@site/blog/2015-07-29-Version-0.14.0.md","title":"Version-0.14.0","description":"It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.","date":"2015-07-29T00:00:00.000Z","formattedDate":"July 29, 2015","tags":[],"hasTruncateMarker":false,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Version-0.15.0","permalink":"/blog/2015/09/10/Version-0.15.0"},"nextItem":{"title":"Announcing Disjoint Unions","permalink":"/blog/2015/07/03/Disjoint-Unions"}},"content":"It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.\\n\\nSo here is Flow v0.14.0! Check out the [Changelog](https://github.com/facebook/flow/blob/master/Changelog.md#v0140) for the canonical list of what has changed."},{"id":"/2015/07/03/Disjoint-Unions","metadata":{"permalink":"/blog/2015/07/03/Disjoint-Unions","source":"@site/blog/2015-07-03-Disjoint-Unions.md","title":"Announcing Disjoint Unions","description":"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:","date":"2015-07-03T00:00:00.000Z","formattedDate":"July 3, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Avik Chaudhuri"}],"frontMatter":{"title":"Announcing Disjoint Unions","short-title":"Disjoint Unions","author":"Avik Chaudhuri","hide_table_of_contents":true},"prevItem":{"title":"Version-0.14.0","permalink":"/blog/2015/07/29/Version-0.14.0"},"nextItem":{"title":"Announcing Bounded Polymorphism","permalink":"/blog/2015/03/12/Bounded-Polymorphism"}},"content":"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:\\n\\n* Specifying such data by a set of disjoint cases, distinguished by \u201ctags\u201d, where each tag is associated with a different \u201crecord\u201d of properties. (These descriptions are called \u201cdisjoint union\u201d or \u201cvariant\u201d types.)\\n* Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)\\n\\nExamples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!\\n\\nAs of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a \\"sentinel\\") in those object types.\\n\\nFlow\'s syntax for disjoint unions looks like:\\n\\n```javascript\\ntype BinaryTree =\\n { kind: \\"leaf\\", value: number } |\\n { kind: \\"branch\\", left: BinaryTree, right: BinaryTree }\\n\\nfunction sumLeaves(tree: BinaryTree): number {\\n if (tree.kind === \\"leaf\\") {\\n return tree.value;\\n } else {\\n return sumLeaves(tree.left) + sumLeaves(tree.right);\\n }\\n}\\n```\\n\\n\x3c!--truncate--\x3e\\n\\n## The problem\\n\\nConsider the following function that returns different objects depending on the data passed into it:\\n\\n```javascript\\ntype Result = { status: string, errorCode?: number }\\n\\nfunction getResult(op): Result {\\n var statusCode = op();\\n if (statusCode === 0) {\\n return { status: \'done\' };\\n } else {\\n return { status: \'error\', errorCode: statusCode };\\n }\\n}\\n```\\n\\nThe result contains a `status` property that is either `\'done\'` or `\'error\'`,\\nand an optional `errorCode` property that holds a numeric status code when the\\n`status` is `\'error\'`.\\n\\nOne may now try to write another function that gets the error code from a result:\\n\\n```javascript\\nfunction getErrorCode(result: Result): number {\\n switch (result.status) {\\n case \'error\':\\n return result.errorCode;\\n default:\\n return 0;\\n }\\n}\\n```\\n\\nUnfortunately, this code does not typecheck. The `Result` type does not precisely\\ncapture the relationship between the `status` property and the `errorCode` property.\\nNamely it doesn\'t capture that when the `status` property is `\'error\'`, the `errorCode`\\nproperty will be present and defined on the object. As a result, Flow thinks that\\n`result.errorCode` in the above function may return `undefined` instead of `number`.\\n\\nPrior to version 0.13.1 there was no way to express this relationship, which meant\\nthat it was not possible to check the type safety of this simple, familiar idiom!\\n\\n## The solution\\n\\nAs of version 0.13.1 it is possible to write a more precise type for `Result`\\nthat better captures the intent and helps Flow narrow down the possible shapes\\nof an object based on the outcome of a dynamic `===` check. Now, we can write:\\n\\n```javaScript\\ntype Result = Done | Error\\ntype Done = { status: \'done\' }\\ntype Error = { status: \'error\', errorCode: number }\\n```\\n\\nIn other words, we can explicitly list out the possible shapes of results. These\\ncases are distinguished by the value of the `status` property. Note that here\\nwe use the string literal types `\'done\'` and `\'error\'`. These match exactly the strings\\n`\'done\'` and `\'error\'`, which means that `===` checks on those values are enough for\\nFlow to narrow down the corresponding type cases. With this additional reasoning, the\\nfunction `getErrorCode` now typechecks, without needing any changes to the code!\\n\\nIn addition to string literals, Flow also supports number literals as singleton types\\nso they can also be used in disjoint unions and case analyses.\\n\\n## Why we built this\\n\\nDisjoint unions are at the heart of several good programming practices pervasive in functional programming languages. Supporting them in Flow means that JavaScript can use these practices in a type-safe manner. For example, disjoint unions can be used to write type-safe [Flux dispatchers](https://facebook.github.io/flux/docs/dispatcher.html). They are also heavily used in a recently released [reference implementation of GraphQL](https://github.com/graphql/graphql-js)."},{"id":"/2015/03/12/Bounded-Polymorphism","metadata":{"permalink":"/blog/2015/03/12/Bounded-Polymorphism","source":"@site/blog/2015-03-12-Bounded-Polymorphism.md","title":"Announcing Bounded Polymorphism","description":"As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow\'s bounded polymorphism syntax looks like","date":"2015-03-12T00:00:00.000Z","formattedDate":"March 12, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Avik Chaudhuri"}],"frontMatter":{"title":"Announcing Bounded Polymorphism","short-title":"Bounded Polymorphism","author":"Avik Chaudhuri","hide_table_of_contents":true},"prevItem":{"title":"Announcing Disjoint Unions","permalink":"/blog/2015/07/03/Disjoint-Unions"},"nextItem":{"title":"Announcing Flow Comments","permalink":"/blog/2015/02/20/Flow-Comments"}},"content":"As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow\'s bounded polymorphism syntax looks like\\n\\n```JavaScript\\nclass BagOfBones { ... }\\nfunction eat(meal: T): Indigestion { ... }\\n```\\n\\n## The problem\\n\\nConsider the following code that defines a polymorphic function in Flow:\\n\\n```JavaScript\\nfunction fooBad(obj: T): T {\\n console.log(Math.abs(obj.x));\\n return obj;\\n}\\n```\\n\\nThis code does not (and should not!) type check. Not all values `obj: T` have a property `x`, let alone a property `x` that is a `number`, given the additional requirement imposed by `Math.abs()`.\\n\\n\x3c!--truncate--\x3e\\n\\nBut what if you wanted `T` to not range over all types, but instead over only the types of objects with an `x` property that has the type `number`? Intuitively, given that condition, the body should type check. Unfortunately, the only way you could enforce this condition prior to Flow 0.5.0 was by giving up on polymorphism entirely! For example you could write:\\n\\n```JavaScript\\n// Old lame workaround\\nfunction fooStillBad(obj: { x: number }): {x: number } {\\n console.log(Math.abs(obj.x));\\n return obj;\\n}\\n```\\n\\nBut while this change would make the body type check, it would cause Flow to lose information across call sites. For example:\\n\\n```JavaScript\\n// The return type of fooStillBad() is {x: number}\\n// so Flow thinks result has the type {x: number}\\nvar result = fooStillBad({x: 42, y: \\"oops\\"});\\n\\n// This will be an error since result\'s type\\n// doesn\'t have a property \\"y\\"\\nvar test: {x: number; y: string} = result;\\n```\\n\\n## The solution\\n\\nAs of version 0.5.0, such typing problems can be solved elegantly using bounded polymorphism. Type parameters such as `T` can specify bounds that constrain the types that the type parameters range over. For example, we can write:\\n\\n```JavaScript\\nfunction fooGood(obj: T): T {\\n console.log(Math.abs(obj.x));\\n return obj;\\n}\\n```\\n\\nNow the body type checks under the assumption that `T` is a subtype of `{ x: number }`. Furthermore, no information is lost across call sites. Using the example from above:\\n\\n```JavaScript\\n// With bounded polymorphism, Flow knows the return\\n// type is {x: number; y: string}\\nvar result = fooGood({x: 42, y: \\"yay\\"});\\n\\n// This works!\\nvar test: {x: number; y: string} = result;\\n```\\n\\nOf course, polymorphic classes may also specify bounds. For example, the following code type checks:\\n\\n```JavaScript\\nclass Store {\\n obj: T;\\n constructor(obj: T) { this.obj = obj; }\\n foo() { console.log(Math.abs(this.obj.x)); }\\n}\\n```\\n\\nInstantiations of the class are appropriately constrained. If you write\\n\\n```JavaScript\\nvar store = new Store({x: 42, y: \\"hi\\"});\\n```\\n\\nThen `store.obj` has type `{x: number; y: string}`.\\n\\nAny type may be used as a type parameter\'s bound. The type does not need to be an object type (as in the examples above). It may even be another type parameter that is in scope. For example, consider adding the following method to the above `Store` class:\\n\\n```JavaScript\\nclass Store {\\n ...\\n bar(obj: U): U {\\n this.obj = obj;\\n console.log(Math.abs(obj.x));\\n return obj;\\n }\\n}\\n```\\n\\nSince `U` is a subtype of `T`, the method body type checks (as you may expect, `U` must also satisfy `T`\'s bound, by transitivity of subtyping). Now the following code type checks:\\n\\n```JavaScript\\n // store is a Store<{x: number; y: string}>\\n var store = new Store({x: 42, y: \\"yay\\"});\\n\\n var result = store.bar({x: 0, y: \\"hello\\", z: \\"world\\"});\\n\\n // This works!\\n var test: {x: number; y: string; z: string } = result;\\n```\\n\\nAlso, in a polymorphic definition with multiple type parameters, any type parameter may appear in the bound of any following type parameter. This is useful for type checking examples like the following:\\n\\n```JavaScript\\nfunction copyArray(from: Array, to: Array) {\\n from.forEach(elem => to.push(elem));\\n}\\n```\\n\\n## Why we built this\\n\\nThe addition of bounded polymorphism significantly increases the expressiveness of Flow\'s type system, by enabling signatures and definitions to specify relationships between their type parameters, without having to sacrifice the benefits of generics. We expect that the increased expressiveness will be particularly useful to library writers, and will also allow us to write better declarations for framework APIs such as those provided by React.\\n\\n## Transformations\\n\\nLike type annotations and other Flow features, polymorphic function and class definitions need to be transformed before the code can be run. The transforms are available in react-tools `0.13.0`, which was recently released"},{"id":"/2015/02/20/Flow-Comments","metadata":{"permalink":"/blog/2015/02/20/Flow-Comments","source":"@site/blog/2015-02-20-Flow-Comments.md","title":"Announcing Flow Comments","description":"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can\'t fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!","date":"2015-02-20T00:00:00.000Z","formattedDate":"February 20, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Gabe Levi"}],"frontMatter":{"title":"Announcing Flow Comments","short-title":"Flow Comments","author":"Gabe Levi","hide_table_of_contents":true},"prevItem":{"title":"Announcing Bounded Polymorphism","permalink":"/blog/2015/03/12/Bounded-Polymorphism"},"nextItem":{"title":"Announcing Import Type","permalink":"/blog/2015/02/18/Import-Types"}},"content":"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can\'t fit a Flow-stripping transformation into their setup. This was one of our [most requested features](https://github.com/facebook/flow/issues/3) and hopefully it will enable even more people to use Flow!\\n\\nThis feature introduces 3 special comments: `/*:`, `/*::`, and `/*flow-include`. Flow will read the code inside these special comments and treat the code as if the special comment tokens didn\'t exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments.\\n\\n\x3c!--truncate--\x3e\\n\\n## The Flow Comment Syntax\\n\\nThere are 3 special comments that Flow currently supports. You may recognize this syntax from [Jarno Rantanen](https://github.com/jareware)\'s excellent project, [flotate](https://github.com/jareware/flotate).\\n\\n### 1. `/*:`\\n\\n`/*: */` is interpreted by Flow as `: `\\n\\n```JavaScript\\nfunction foo(x/*: number*/)/* : string */ { ... }\\n```\\n\\nis interpreted by Flow as\\n\\n```JavaScript\\nfunction foo(x: number): string { ... }\\n```\\n\\nbut appears to the JavaScript engine (ignoring comments) as\\n\\n```JavaScript\\nfunction foo(x) { ... }\\n```\\n\\n### 2. `/*::`\\n\\n`/*:: */` is interpreted by Flow as ``\\n\\n```JavaScript\\n/*:: type foo = number; */\\n```\\n\\nis interpreted by Flow as\\n\\n```JavaScript\\ntype foo = number;\\n```\\n\\nbut appears to the runtime (ignoring comments) as\\n\\n```JavaScript\\n\\n```\\n\\n### 3. `/*flow-include`\\n\\n`/*flow-include */` is interpreted by Flow as ``. It behaves the same as `/*::`\\n\\n```JavaScript\\n/*flow-include type foo = number; */\\n```\\n\\nis interpreted by Flow as\\n\\n```JavaScript\\ntype foo = number;\\n```\\n\\nbut appears to the runtime (ignoring comments) as\\n\\n```JavaScript\\n\\n```\\n\\nNote: whitespace is ignored after the `/*` but before the `:`, `::`, or `flow-include`. So you can write things like\\n\\n```JavaScript\\n/* : number */\\n/* :: type foo = number */\\n/* flow-include type foo = number */\\n```\\n\\n## Future Work\\n\\nWe plan to update our Flow transformation to wrap Flow syntax with these special comments, rather than stripping it away completely. This will help people write Flow code but publish code that works with or without Flow.\\n\\n## Thanks\\n\\nSpecial thanks to [Jarno Rantanen](https://github.com/jareware) for building [flotate](https://github.com/jareware/flotate) and supporting us merging his syntax upstream into Flow."},{"id":"/2015/02/18/Import-Types","metadata":{"permalink":"/blog/2015/02/18/Import-Types","source":"@site/blog/2015-02-18-Import-Types.md","title":"Announcing Import Type","description":"As of Flow 0.3.0, it\'s now possible to import types from another module. So, for example, if you\'re only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.","date":"2015-02-18T00:00:00.000Z","formattedDate":"February 18, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Jeff Morrison"}],"frontMatter":{"title":"Announcing Import Type","short-title":"Import Type","author":"Jeff Morrison","hide_table_of_contents":true},"prevItem":{"title":"Announcing Flow Comments","permalink":"/blog/2015/02/20/Flow-Comments"},"nextItem":{"title":"Announcing Typecasts","permalink":"/blog/2015/02/18/Typecasts"}},"content":"As of Flow 0.3.0, it\'s now possible to import types from another module. So, for example, if you\'re only importing a class for purposes of referencing it in a type annotation, you can now use the new `import type` syntax to do this.\\n\\n## Motivation\\n\\nHas this ever happened to you:\\n\\n```JavaScript\\n// @flow\\n\\n// Post-transformation lint error: Unused variable \'URI\'\\nimport URI from \\"URI\\";\\n\\n// But if you delete the require you get a Flow error:\\n// identifier URI - Unknown global name\\nmodule.exports = function(x: URI): URI {\\n return x;\\n}\\n```\\n\\nNow you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we\'ve added the new `import type` syntax. With `import type`, you can convey what you really mean here \u2014 that you want to import the *type* of the class and not really the class itself.\\n\\n\x3c!--truncate--\x3e\\n\\n## Enter Import Type\\n\\nSo instead of the above code, you can now write this:\\n\\n```JavaScript\\n// @flow\\n\\nimport type URI from \'URI\';\\nmodule.exports = function(x: URI): URI {\\n return x;\\n};\\n```\\n\\nIf you have a module that exports multiple classes (like, say, a Crayon and a Marker class), you can import the type for each of them together or separately like this:\\n\\n```JavaScript\\n// @flow\\n\\nimport type {Crayon, Marker} from \'WritingUtensils\';\\nmodule.exports = function junkDrawer(x: Crayon, y: Marker): void {}\\n```\\n\\n## Transformations\\n\\nLike type annotations and other Flow features, `import type` need to be transformed away before the code can be run. The transforms will be available in react-tools `0.13.0` when it is published soon, but for now they\'re available in `0.13.0-beta.2`, which you can install with\\n\\n```bash\\nnpm install react-tools@0.13.0-beta.2\\n```\\n\\n## Anticipatory Q&A\\n\\n### Wait, but what happens at runtime after I\'ve added an `import type` declaration?\\n*Nothing! All `import type` declarations get stripped away just like other flow syntax.*\\n\\n### Can I use `import type` to pull in type aliases from another module, too?\\nNot quite yet...but soon! There are a few other moving parts that we need to build first, but we\'re working on it.\\n\\nEDIT: Yes! As of Flow 0.10 you can use the `export type MyType = ... ;` syntax to compliment the `import type` syntax. Here\'s a trivial example:\\n\\n```javascript\\n// @flow\\n\\n// MyTypes.js\\nexport type UserID = number;\\nexport type User = {\\n id: UserID,\\n firstName: string,\\n lastName: string\\n};\\n```\\n\\n```javascript\\n// @flow\\n\\n// User.js\\nimport type {UserID, User} from \\"MyTypes\\";\\n\\nfunction getUserID(user: User): UserID {\\n return user.id;\\n}\\n```\\n\\nNote that we only support the explicit named-export statements for now (i.e. `export type UserID = number;`). In a future version we can add support for latent named-export statements (i.e. `type UserID = number; export {UserID};`) and default type exports (i.e. `export default type MyType = ... ;`)...but for now these forms aren\'t yet supported for type exports."},{"id":"/2015/02/18/Typecasts","metadata":{"permalink":"/blog/2015/02/18/Typecasts","source":"@site/blog/2015-02-18-Typecasts.md","title":"Announcing Typecasts","description":"As of version 0.3.0, Flow supports typecast expression.","date":"2015-02-18T00:00:00.000Z","formattedDate":"February 18, 2015","tags":[],"hasTruncateMarker":true,"authors":[{"name":"Basil Hosmer"}],"frontMatter":{"title":"Announcing Typecasts","short-title":"Typecasts","author":"Basil Hosmer","hide_table_of_contents":true},"prevItem":{"title":"Announcing Import Type","permalink":"/blog/2015/02/18/Import-Types"}},"content":"As of version 0.3.0, Flow supports typecast expression.\\n\\nA typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:\\n\\n```JavaScript\\n(1 + 1 : number);\\nvar a = { name: (null: ?string) };\\n([1, \'a\', true]: Array).map(fn);\\n```\\n\\nFor any JavaScript expression `` and any Flow type ``, you can write\\n\\n```JavaScript\\n( : )\\n```\\n\\n**Note:** the parentheses are necessary.\\n\\n\x3c!--truncate--\x3e\\n\\n## How Typecasts Work\\n\\nTo evaluate a typecast expression, Flow will first check that `` is a ``.\\n\\n```JavaScript\\n(1+1: number); // this is fine\\n(1+1: string); // but this is is an error\\n```\\n\\nSecond, Flow will infer that the typecast expression `(: )` has the type ``.\\n\\n```JavaScript\\n[(0: ?number)]; // Flow will infer the type Array\\n[0]; // Without the typecast, Flow infers the type Array\\n```\\n\\n## Safety\\n\\nTypecasts obey the same rules as other type annotations, so they provide the same safety guarantees. This means they are safe unless you explicitly use the `any` type to defeat Flow\'s typechecking. Here are examples of upcasting (which is allowed), downcasting (which is forbidden), and using `any`.\\n\\n```JavaScript\\nclass Base {}\\nclass Child extends Base {}\\nvar child: Child = new Child();\\n\\n// Upcast from Child to Base, a more general type: OK\\nvar base: Base = new Child();\\n\\n// Upcast from Child to Base, a more general type: OK\\n(child: Base);\\n\\n// Downcast from Base to Child: unsafe, ERROR\\n(base: Child);\\n\\n// Upcast base to any then downcast any to Child.\\n// Unsafe downcasting from any is allowed: OK\\n((base: any): Child);\\n```\\n\\n## More examples\\n\\nTypecasts are particularly useful to check assumptions and help Flow infer the types you intend. Here are some examples:\\n\\n```JavaScript\\n(x: number) // Make Flow check that x is a number\\n(0: ?number) // Tells Flow that this expression is actually nullable.\\n(null: ?number) // Tells Flow that this expression is a nullable number.\\n```\\n\\n## Transformations\\n\\nLike type annotations and other Flow features, typecasts need to be transformed away before the code can be run. The transforms will be available in react-tools `0.13.0` when it is published soon, but for now they\'re available in `0.13.0-beta.2`, which you can install with\\n\\n```bash\\nnpm install react-tools@0.13.0-beta.2\\n```"}]}')}}]); \ No newline at end of file diff --git a/assets/js/1000.14e9de8a.js b/assets/js/1000.14e9de8a.js new file mode 100644 index 00000000000..fac794b351c --- /dev/null +++ b/assets/js/1000.14e9de8a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1e3],{91e3:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>r,toc:()=>s});var n=t(87462),a=(t(67294),t(3905));const l={author:"Gabe Levi",hide_table_of_contents:!0},i=void 0,r={permalink:"/blog/2015/12/01/Version-0.19.0",source:"@site/blog/2015-12-01-Version-0.19.0.md",title:"Version-0.19.0",description:"Flow v0.19.0 was deployed today! It has a ton of changes, which the",date:"2015-12-01T00:00:00.000Z",formattedDate:"December 1, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Version 0.21.0",permalink:"/blog/2016/02/02/Version-0.21.0"},nextItem:{title:"Typing Generators with Flow",permalink:"/blog/2015/11/09/Generators"}},d={authorsImageUrls:[void 0]},s=[{value:"@noflow",id:"noflow",level:3},{value:"Declaration files",id:"declaration-files",level:3}],m={toc:s};function p(e){let{components:o,...t}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},m,t,{components:o,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow v0.19.0 was deployed today! It has a ton of changes, which the\n",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0190"},"Changelog"),"\nsummarizes. The Changelog can be a little concise, though, so here are some\nlonger explanations for some of the changes. Hope this helps!"),(0,a.mdx)("h3",{id:"noflow"},(0,a.mdx)("inlineCode",{parentName:"h3"},"@noflow")),(0,a.mdx)("p",null,"Flow is opt-in by default (you add ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow")," to a file). However we noticed that\nsometimes people would add Flow annotations to files that were missing ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow"),".\nOften, these people didn't notice that the file was being ignored by Flow. So\nwe decided to stop allowing Flow syntax in non-Flow files. This is easily fixed\nby adding either ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow")," or ",(0,a.mdx)("inlineCode",{parentName:"p"},"@noflow")," to your file. The former will make the\nfile a Flow file. The latter will tell Flow to completely ignore the file."),(0,a.mdx)("h3",{id:"declaration-files"},"Declaration files"),(0,a.mdx)("p",null,"Files that end with ",(0,a.mdx)("inlineCode",{parentName:"p"},".flow")," are now treated specially. They are the preferred\nprovider of modules. That is if both ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js")," and ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js.flow")," exist, then\nwhen you write ",(0,a.mdx)("inlineCode",{parentName:"p"},"import Foo from './foo'"),", Flow will use the type exported from\n",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js.flow")," rather than ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js"),"."),(0,a.mdx)("p",null,"We imagine two main ways people will use ",(0,a.mdx)("inlineCode",{parentName:"p"},".flow")," files."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1049.9e530d57.js b/assets/js/1049.9e530d57.js new file mode 100644 index 00000000000..799a15ccea2 --- /dev/null +++ b/assets/js/1049.9e530d57.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1049],{11049:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var o=n(87462),i=(n(67294),n(3905));const a={title:"Clarity on Flow's Direction and Open Source Engagement","short-title":"Flow Direction Update",author:"Vladan Djeric","medium-link":"https://medium.com/flow-type/clarity-on-flows-direction-and-open-source-engagement-e721a4eb4d8b"},r=void 0,l={permalink:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement",source:"@site/blog/2021-05-25-Clarity-on-Flows-Direction-and-Open-Source-Engagement.md",title:"Clarity on Flow's Direction and Open Source Engagement",description:"An update on Flow's direction and open source engagement.",date:"2021-05-25T00:00:00.000Z",formattedDate:"May 25, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"Vladan Djeric"}],frontMatter:{title:"Clarity on Flow's Direction and Open Source Engagement","short-title":"Flow Direction Update",author:"Vladan Djeric","medium-link":"https://medium.com/flow-type/clarity-on-flows-direction-and-open-source-engagement-e721a4eb4d8b"},prevItem:{title:"Sound Typing for 'this' in Flow",permalink:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"},nextItem:{title:"Types-First the only supported mode in Flow (Jan 2021)",permalink:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow"}},s={authorsImageUrls:[void 0]},d=[],c={toc:d};function p(e){let{components:t,...n}=e;return(0,i.mdx)("wrapper",(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"An update on Flow's direction and open source engagement."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1065.a0dbdc0e.js b/assets/js/1065.a0dbdc0e.js new file mode 100644 index 00000000000..f53dbcecfe4 --- /dev/null +++ b/assets/js/1065.a0dbdc0e.js @@ -0,0 +1,181 @@ +"use strict"; +exports.id = 1065; +exports.ids = [1065]; +exports.modules = { + +/***/ 71065: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/restructuredtext/restructuredtext.ts +var conf = { + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">", notIn: ["string"] } + ], + surroundingPairs: [ + { open: "(", close: ")" }, + { open: "[", close: "]" }, + { open: "`", close: "`" } + ], + folding: { + markers: { + start: new RegExp("^\\s*"), + end: new RegExp("^\\s*") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".rst", + control: /[\\`*_\[\]{}()#+\-\.!]/, + escapes: /\\(?:@control)/, + empty: [ + "area", + "base", + "basefont", + "br", + "col", + "frame", + "hr", + "img", + "input", + "isindex", + "link", + "meta", + "param" + ], + alphanumerics: /[A-Za-z0-9]/, + simpleRefNameWithoutBq: /(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/, + simpleRefName: /(?:`@phrase`|@simpleRefNameWithoutBq)/, + phrase: /@simpleRefNameWithoutBq(?:\s@simpleRefNameWithoutBq)*/, + citationName: /[A-Za-z][A-Za-z0-9-_.]*/, + blockLiteralStart: /(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/, + precedingChars: /(?:[ -:/'"<([{])/, + followingChars: /(?:[ -.,:;!?/'")\]}>]|$)/, + punctuation: /(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/, + tokenizer: { + root: [ + [/^(@punctuation{3,}$){1,1}?/, "keyword"], + [/^\s*([\*\-+‣•]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/, "keyword"], + [/([ ]::)\s*$/, "keyword", "@blankLineOfLiteralBlocks"], + [/(::)\s*$/, "keyword", "@blankLineOfLiteralBlocks"], + { include: "@tables" }, + { include: "@explicitMarkupBlocks" }, + { include: "@inlineMarkup" } + ], + explicitMarkupBlocks: [ + { include: "@citations" }, + { include: "@footnotes" }, + [ + /^(\.\.\s)(@simpleRefName)(::\s)(.*)$/, + [{ token: "", next: "subsequentLines" }, "keyword", "", ""] + ], + [ + /^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/, + [{ token: "", next: "hyperlinks" }, "", "", "string.link", "", "", "string.link"] + ], + [ + /^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/, + [{ token: "", next: "subsequentLines" }, "", "", "", "string.link"] + ], + [/^(__\s+)(.+)/, ["", "string.link"]], + [ + /^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/, + [{ token: "", next: "subsequentLines" }, "", "string.link", "", "keyword", ""], + "@rawBlocks" + ], + [/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/, ["", "string.link", ""]], + [/^(\.\.)([ ].*)$/, [{ token: "", next: "@comments" }, "comment"]] + ], + inlineMarkup: [ + { include: "@citationsReference" }, + { include: "@footnotesReference" }, + [/(@simpleRefName)(_{1,2})/, ["string.link", ""]], + [/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/, ["", "string.link", "", "string.link", "", "", ""]], + [/\*\*([^\\*]|\*(?!\*))+\*\*/, "strong"], + [/\*[^*]+\*/, "emphasis"], + [/(``)((?:[^`]|\`(?!`))+)(``)/, ["", "keyword", ""]], + [/(__\s+)(.+)/, ["", "keyword"]], + [/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/, ["", "keyword", "", "", ""]], + [/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/, ["", "", "", "keyword", ""]], + [/(`)([^`]+)(`)/, ""], + [/(_`)(@phrase)(`)/, ["", "string.link", ""]] + ], + citations: [ + [ + /^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/, + [{ token: "", next: "@subsequentLines" }, "string.link", "", ""] + ] + ], + citationsReference: [[/(\[)(@citationName)(\]_)/, ["", "string.link", ""]]], + footnotes: [ + [ + /^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/, + [{ token: "", next: "@subsequentLines" }, "string.link", ""] + ], + [ + /^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/, + [{ token: "", next: "@subsequentLines" }, "string.link", "", ""] + ], + [ + /^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/, + [{ token: "", next: "@subsequentLines" }, "string.link", "", ""] + ] + ], + footnotesReference: [ + [/(\[)([0-9]+)(\])(_)/, ["", "string.link", "", ""]], + [/(\[)(#@simpleRefName?)(\])(_)/, ["", "string.link", "", ""]], + [/(\[)(\*)(\])(_)/, ["", "string.link", "", ""]] + ], + blankLineOfLiteralBlocks: [ + [/^$/, "", "@subsequentLinesOfLiteralBlocks"], + [/^.*$/, "", "@pop"] + ], + subsequentLinesOfLiteralBlocks: [ + [/(@blockLiteralStart+)(.*)/, ["keyword", ""]], + [/^(?!blockLiteralStart)/, "", "@popall"] + ], + subsequentLines: [ + [/^[\s]+.*/, ""], + [/^(?!\s)/, "", "@pop"] + ], + hyperlinks: [ + [/^[\s]+.*/, "string.link"], + [/^(?!\s)/, "", "@pop"] + ], + comments: [ + [/^[\s]+.*/, "comment"], + [/^(?!\s)/, "", "@pop"] + ], + tables: [ + [/\+-[+-]+/, "keyword"], + [/\+=[+=]+/, "keyword"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1065.de3b9f15.js b/assets/js/1065.de3b9f15.js new file mode 100644 index 00000000000..d7bfbba1809 --- /dev/null +++ b/assets/js/1065.de3b9f15.js @@ -0,0 +1,2 @@ +/*! For license information please see 1065.de3b9f15.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1065],{71065:(e,n,s)=>{s.r(n),s.d(n,{conf:()=>i,language:()=>t});var i={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#?region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#?endregion\\b.*--\x3e")}}},t={defaultToken:"",tokenPostfix:".rst",control:/[\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],alphanumerics:/[A-Za-z0-9]/,simpleRefNameWithoutBq:/(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/,simpleRefName:/(?:`@phrase`|@simpleRefNameWithoutBq)/,phrase:/@simpleRefNameWithoutBq(?:\s@simpleRefNameWithoutBq)*/,citationName:/[A-Za-z][A-Za-z0-9-_.]*/,blockLiteralStart:/(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/,precedingChars:/(?:[ -:/'"<([{])/,followingChars:/(?:[ -.,:;!?/'")\]}>]|$)/,punctuation:/(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/,tokenizer:{root:[[/^(@punctuation{3,}$){1,1}?/,"keyword"],[/^\s*([\*\-+\u2023\u2022]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/,"keyword"],[/([ ]::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],[/(::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],{include:"@tables"},{include:"@explicitMarkupBlocks"},{include:"@inlineMarkup"}],explicitMarkupBlocks:[{include:"@citations"},{include:"@footnotes"},[/^(\.\.\s)(@simpleRefName)(::\s)(.*)$/,[{token:"",next:"subsequentLines"},"keyword","",""]],[/^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/,[{token:"",next:"hyperlinks"},"","","string.link","","","string.link"]],[/^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/,[{token:"",next:"subsequentLines"},"","","","string.link"]],[/^(__\s+)(.+)/,["","string.link"]],[/^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/,[{token:"",next:"subsequentLines"},"","string.link","","keyword",""],"@rawBlocks"],[/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/,["","string.link",""]],[/^(\.\.)([ ].*)$/,[{token:"",next:"@comments"},"comment"]]],inlineMarkup:[{include:"@citationsReference"},{include:"@footnotesReference"},[/(@simpleRefName)(_{1,2})/,["string.link",""]],[/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/,["","string.link","","string.link","","",""]],[/\*\*([^\\*]|\*(?!\*))+\*\*/,"strong"],[/\*[^*]+\*/,"emphasis"],[/(``)((?:[^`]|\`(?!`))+)(``)/,["","keyword",""]],[/(__\s+)(.+)/,["","keyword"]],[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/,["","keyword","","",""]],[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/,["","","","keyword",""]],[/(`)([^`]+)(`)/,""],[/(_`)(@phrase)(`)/,["","string.link",""]]],citations:[[/^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],citationsReference:[[/(\[)(@citationName)(\]_)/,["","string.link",""]]],footnotes:[[/^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/,[{token:"",next:"@subsequentLines"},"string.link",""]],[/^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]],[/^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],footnotesReference:[[/(\[)([0-9]+)(\])(_)/,["","string.link","",""]],[/(\[)(#@simpleRefName?)(\])(_)/,["","string.link","",""]],[/(\[)(\*)(\])(_)/,["","string.link","",""]]],blankLineOfLiteralBlocks:[[/^$/,"","@subsequentLinesOfLiteralBlocks"],[/^.*$/,"","@pop"]],subsequentLinesOfLiteralBlocks:[[/(@blockLiteralStart+)(.*)/,["keyword",""]],[/^(?!blockLiteralStart)/,"","@popall"]],subsequentLines:[[/^[\s]+.*/,""],[/^(?!\s)/,"","@pop"]],hyperlinks:[[/^[\s]+.*/,"string.link"],[/^(?!\s)/,"","@pop"]],comments:[[/^[\s]+.*/,"comment"],[/^(?!\s)/,"","@pop"]],tables:[[/\+-[+-]+/,"keyword"],[/\+=[+=]+/,"keyword"]]}}}}]); \ No newline at end of file diff --git a/assets/js/1065.de3b9f15.js.LICENSE.txt b/assets/js/1065.de3b9f15.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1065.de3b9f15.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1086.14a78e6c.js b/assets/js/1086.14a78e6c.js new file mode 100644 index 00000000000..e9d76c47d67 --- /dev/null +++ b/assets/js/1086.14a78e6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1086],{61086:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>m,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>r});var a=t(87462),s=(t(67294),t(3905));t(45475);const i={title:"Using enums",slug:"/enums/using-enums"},u=void 0,o={unversionedId:"enums/using-enums",id:"enums/using-enums",title:"Using enums",description:"Flow Enums are not a syntax for union types. They are their own type, and each member of a Flow Enum has the same type.",source:"@site/docs/enums/using-enums.md",sourceDirName:"enums",slug:"/enums/using-enums",permalink:"/en/docs/enums/using-enums",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/enums/using-enums.md",tags:[],version:"current",frontMatter:{title:"Using enums",slug:"/enums/using-enums"},sidebar:"docsSidebar",previous:{title:"Defining enums",permalink:"/en/docs/enums/defining-enums"},next:{title:"Migrating from legacy patterns",permalink:"/en/docs/enums/migrating-legacy-patterns"}},m={},r=[{value:"Accessing enum members",id:"toc-accessing-enum-members",level:3},{value:"Using as a type annotation",id:"toc-using-as-a-type-annotation",level:3},{value:"Casting to representation type",id:"toc-casting-to-representation-type",level:3},{value:"Methods",id:"toc-methods",level:3},{value:".cast",id:"toc-cast",level:4},{value:".isValid",id:"toc-isvalid",level:4},{value:".members",id:"toc-members",level:4},{value:".getName",id:"toc-getname",level:4},{value:"Exhaustively checking enums with a switch",id:"toc-exhaustively-checking-enums-with-a-switch",level:3},{value:"Exhaustive checking with unknown members",id:"toc-exhaustive-checking-with-unknown-members",level:3},{value:"Mapping enums to other values",id:"toc-mapping-enums-to-other-values",level:3},{value:"Enums in a union",id:"toc-enums-in-a-union",level:3},{value:"Exporting enums",id:"toc-exporting-enums",level:3},{value:"Importing enums",id:"toc-importing-enums",level:3},{value:"Generic enums",id:"toc-generic-enums",level:3},{value:"When to not use enums",id:"toc-when-to-not-use-enums",level:3},{value:"Distinct object keys",id:"toc-distinct-object-keys",level:4},{value:"Disjoint object unions",id:"toc-disjoint-object-unions",level:4},{value:"Guaranteed inlining",id:"toc-guaranteed-inlining",level:4}],l={toc:r};function d(e){let{components:n,...t}=e;return(0,s.mdx)("wrapper",(0,a.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow Enums are not a syntax for ",(0,s.mdx)("a",{parentName:"p",href:"../../types/unions/"},"union types"),". They are their own type, and each member of a Flow Enum has the same type.\nLarge union types can cause performance issues, as Flow has to consider each member as a separate type. With Flow Enums, no matter how large your enum is,\nFlow will always exhibit good performance as it only has one type to keep track of."),(0,s.mdx)("p",null,"We use the following enum in the examples below:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"enum Status {\n Active,\n Paused,\n Off,\n}\n")),(0,s.mdx)("h3",{id:"toc-accessing-enum-members"},"Accessing enum members"),(0,s.mdx)("p",null,"Access members with the dot syntax:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const status = Status.Active;\n")),(0,s.mdx)("p",null,"You can\u2019t use computed access:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":8,"endLine":7,"endColumn":8,"description":"Cannot access `x` on enum `Status` [1] because computed access is not allowed on enums. [invalid-enum-access]"}]','[{"startLine":7,"startColumn":8,"endLine":7,"endColumn":8,"description":"Cannot':!0,access:!0,"`x`":!0,on:!0,enum:!0,"`Status`":!0,"[1]":!0,because:!0,computed:!0,is:!0,not:!0,allowed:!0,"enums.":!0,'[invalid-enum-access]"}]':!0},'enum Status {\n Active,\n Paused,\n Off,\n}\nconst x = "Active";\nStatus[x]; // Error: computed access on enums is not allowed\n')),(0,s.mdx)("h3",{id:"toc-using-as-a-type-annotation"},"Using as a type annotation"),(0,s.mdx)("p",null,"The enum declaration defines both a value (from which you can access the enum members and methods) and a type of the same name, which is the type of the enum members."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"function calculateStatus(): Status {\n ...\n}\n\nconst status: Status = calculateStatus();\n")),(0,s.mdx)("h3",{id:"toc-casting-to-representation-type"},"Casting to representation type"),(0,s.mdx)("p",null,"Enums do not implicitly coerce to their representation type or vice-versa.\nIf you want to convert from the enum type to the representation type, you can use an explicit cast ",(0,s.mdx)("inlineCode",{parentName:"p"},"(x: string)"),":"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":19,"endLine":7,"endColumn":31,"description":"Cannot assign `Status.Active` to `s` because `Status` [1] is incompatible with string [2]. You can explicitly cast your enum value to a string using `(: string)`. [incompatible-type]"}]','[{"startLine":7,"startColumn":19,"endLine":7,"endColumn":31,"description":"Cannot':!0,assign:!0,"`Status.Active`":!0,to:!0,"`s`":!0,because:!0,"`Status`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,You:!0,can:!0,explicitly:!0,cast:!0,your:!0,enum:!0,value:!0,a:!0,using:!0,"`(:":!0,"string)`.":!0,'[incompatible-type]"}]':!0},"enum Status {\n Active,\n Paused,\n Off,\n}\n\nconst s: string = Status.Active; // Error: 'Status' is not compatible with 'string'\nconst statusString: string = (Status.Active: string);\n")),(0,s.mdx)("p",null,"To convert from a nullable enum type to nullable string, you can do:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const maybeStatus: ?Status = ....;\nconst maybeStatusString: ?string = maybeStatus && (maybeStatus: string);\n")),(0,s.mdx)("p",null,"If you want to convert from the representation type (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"string"),") to an enum type (if valid), check out the ",(0,s.mdx)("a",{parentName:"p",href:"#toc-cast"},"cast method"),"."),(0,s.mdx)("h3",{id:"toc-methods"},"Methods"),(0,s.mdx)("p",null,"Enum declarations also define some helpful methods."),(0,s.mdx)("p",null,"Below, ",(0,s.mdx)("inlineCode",{parentName:"p"},"TEnum")," is the type of the enum (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"Status"),"), and ",(0,s.mdx)("inlineCode",{parentName:"p"},"TRepresentationType")," is the type of the representation type for that enum (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"string"),")."),(0,s.mdx)("h4",{id:"toc-cast"},".cast"),(0,s.mdx)("p",null,"Type: ",(0,s.mdx)("inlineCode",{parentName:"p"},"cast(input: ?TRepresentationType): TEnum | void")),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"cast")," method allows you to safely convert a primitive value, like a ",(0,s.mdx)("inlineCode",{parentName:"p"},"string"),", to the enum type (if it is a valid value of the enum), and ",(0,s.mdx)("inlineCode",{parentName:"p"},"undefined")," otherwise."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const data: string = getData();\nconst maybeStatus: Status | void = Status.cast(data);\nif (maybeStatus != null) {\n const status: Status = maybeStatus;\n // do stuff with status\n}\n")),(0,s.mdx)("p",null,"Set a default value in one line with the ",(0,s.mdx)("inlineCode",{parentName:"p"},"??")," operator:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const status: Status = Status.cast(data) ?? Status.Off;\n")),(0,s.mdx)("p",null,"The type of the argument of ",(0,s.mdx)("inlineCode",{parentName:"p"},"cast")," depends on the type of enum. If it is a ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-string-enums"},"string enum"),", the type of the argument will be ",(0,s.mdx)("inlineCode",{parentName:"p"},"string"),".\nIf it is a ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-number-enums"},"number enum"),", the type of the argument will be ",(0,s.mdx)("inlineCode",{parentName:"p"},"number"),", and so on.\nIf you wish to cast a ",(0,s.mdx)("inlineCode",{parentName:"p"},"mixed")," value, first use a ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof")," refinement:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const data: mixed = ...;\nif (typeof data === 'string') {\n const maybeStatus: Status | void = Status.cast(data);\n}\n")),(0,s.mdx)("p",null,(0,s.mdx)("inlineCode",{parentName:"p"},"cast")," uses ",(0,s.mdx)("inlineCode",{parentName:"p"},"this")," (representing the object of enum members), so if you want to pass the function itself as a value, you should use an arrow function. For example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const strings: Array = ...;\n// WRONG: const statuses: Array = strings.map(Status.cast);\nconst statuses: Array = strings.map((input) => Status.cast(input)); // Correct\n")),(0,s.mdx)("p",null,"Runtime cost: For ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-string-enums"},"mirrored string enums")," (e.g ",(0,s.mdx)("inlineCode",{parentName:"p"},"enum E {A, B}"),"), as the member names are the same as the values, the runtime cost is constant -\nequivalent to calling ",(0,s.mdx)("inlineCode",{parentName:"p"},".hasOwnProperty"),". For other enums, a ",(0,s.mdx)("inlineCode",{parentName:"p"},"Map")," is created on the first call, and subsequent calls simply call ",(0,s.mdx)("inlineCode",{parentName:"p"},".has")," on the cached map.\nThus the cost is amoritzed constant."),(0,s.mdx)("h4",{id:"toc-isvalid"},".isValid"),(0,s.mdx)("p",null,"Type: ",(0,s.mdx)("inlineCode",{parentName:"p"},"isValid(input: ?TRepresentationType): boolean")),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"isValid")," method is like ",(0,s.mdx)("inlineCode",{parentName:"p"},"cast"),", but simply returns a boolean: ",(0,s.mdx)("inlineCode",{parentName:"p"},"true")," if the input supplied is a valid enum value, and ",(0,s.mdx)("inlineCode",{parentName:"p"},"false")," if it is not."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const data: string = getData();\nconst isStatus: boolean = Status.isValid(data);\n")),(0,s.mdx)("p",null,(0,s.mdx)("inlineCode",{parentName:"p"},"isValid")," uses ",(0,s.mdx)("inlineCode",{parentName:"p"},"this")," (representing the object of enum members), so if you want to pass the function itself as a value, you should use an arrow function. For example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const strings: Array = ...;\n// WRONG: const statusStrings = strings.filter(Status.isValid);\nconst statusStrings = strings.filter((input) => Status.isValid(input)); // Correct\n")),(0,s.mdx)("p",null,"Runtime cost: The same as described under ",(0,s.mdx)("inlineCode",{parentName:"p"},".cast")," above."),(0,s.mdx)("h4",{id:"toc-members"},".members"),(0,s.mdx)("p",null,"Type: ",(0,s.mdx)("inlineCode",{parentName:"p"},"members(): Iterator")),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"members")," method returns an ",(0,s.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#iterators"},"iterator")," (that is iterable) of all the enum members."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const buttons = [];\nfunction getButtonForStatus(status: Status) { ... }\n\nfor (const status of Status.members()) {\n buttons.push(getButtonForStatus(status));\n}\n")),(0,s.mdx)("p",null,"The iteration order is guaranteed to be the same as the order of the members in the declaration."),(0,s.mdx)("p",null,"The enum is not enumerable or iterable itself (e.g. a for-in/for-of loop over the enum will not iterate over its members), you have to use the ",(0,s.mdx)("inlineCode",{parentName:"p"},".members()")," method for that purpose."),(0,s.mdx)("p",null,"You can convert the iterable into an ",(0,s.mdx)("inlineCode",{parentName:"p"},"Array")," using: ",(0,s.mdx)("inlineCode",{parentName:"p"},"Array.from(Status.members())"),".\nYou can make use of ",(0,s.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from"},(0,s.mdx)("inlineCode",{parentName:"a"},"Array.from")),"'s second argument to map over the values at\nthe same time you construct the array: e.g. "),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const buttonArray = Array.from(\n Status.members(),\n status => getButtonForStatus(status),\n);\n")),(0,s.mdx)("h4",{id:"toc-getname"},".getName"),(0,s.mdx)("p",null,"Type: ",(0,s.mdx)("inlineCode",{parentName:"p"},"getName(value: TEnum): string")),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"getName")," method maps enum values to the string name of that value's enum member. When using ",(0,s.mdx)("inlineCode",{parentName:"p"},"number"),"/",(0,s.mdx)("inlineCode",{parentName:"p"},"boolean"),"/",(0,s.mdx)("inlineCode",{parentName:"p"},"symbol")," enums,\nthis can be useful for debugging and for generating internal CRUD UIs. For example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\nconst status: Status = ...;\n\nconsole.log(Status.getName(status));\n// Will print a string, either "Active", "Paused", or "Off" depending on the value.\n')),(0,s.mdx)("p",null,"Runtime cost: The same as described under ",(0,s.mdx)("inlineCode",{parentName:"p"},".cast")," above. A single cached reverse map from enum value to enum name is used for ",(0,s.mdx)("inlineCode",{parentName:"p"},".cast"),", ",(0,s.mdx)("inlineCode",{parentName:"p"},".isValid"),", and ",(0,s.mdx)("inlineCode",{parentName:"p"},".getName"),".\nThe first call of any of those methods will create this cached map."),(0,s.mdx)("h3",{id:"toc-exhaustively-checking-enums-with-a-switch"},"Exhaustively checking enums with a ",(0,s.mdx)("inlineCode",{parentName:"h3"},"switch")),(0,s.mdx)("p",null,"When checking an enum value in a ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statement, we enforce that you check against all possible enum members, and don\u2019t include redundant cases.\nThis helps ensure you consider all possibilities when writing code that uses enums. It especially helps with refactoring when adding or removing members,\nby pointing out the different places you need to update."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const status: Status = ...;\n\nswitch (status) { // Good, all members checked\n case Status.Active:\n break;\n case Status.Paused:\n break;\n case Status.Off:\n break;\n}\n")),(0,s.mdx)("p",null,"You can use ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," to match all members not checked so far:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"switch (status) {\n case Status.Active:\n break;\n default: // When `Status.Paused` or `Status.Off`\n break;\n}\n")),(0,s.mdx)("p",null,"You can check multiple enum members in one switch case:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"switch (status) {\n case Status.Active:\n case Status.Paused:\n break;\n case Status.Off:\n break;\n}\n")),(0,s.mdx)("p",null,"You must match against all of the members of the enum (or supply a ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," case):"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Incomplete exhaustive check: the member `Off` of enum `Status` [1] has not been considered in check of `status`. [invalid-exhaustive-check]"}]','[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Incomplete':!0,exhaustive:!0,"check:":!0,the:!0,member:!0,"`Off`":!0,of:!0,enum:!0,"`Status`":!0,"[1]":!0,has:!0,not:!0,been:!0,considered:!0,in:!0,check:!0,"`status`.":!0,'[invalid-exhaustive-check]"}]':!0},"enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\nconst status: Status = Status.Active;\n\n// Error: you haven't checked 'Status.Off' in the switch\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n}\n")),(0,s.mdx)("p",null,"You can\u2019t repeat cases (as this would be dead code!):"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":15,"startColumn":8,"endLine":15,"endColumn":20,"description":"Invalid exhaustive check: case checks for enum member `Paused` of `Status` [1], but member `Paused` was already checked at case [2]. [invalid-exhaustive-check]"}]','[{"startLine":15,"startColumn":8,"endLine":15,"endColumn":20,"description":"Invalid':!0,exhaustive:!0,"check:":!0,case:!0,checks:!0,for:!0,enum:!0,member:!0,"`Paused`":!0,of:!0,"`Status`":!0,"[1],":!0,but:!0,was:!0,already:!0,checked:!0,at:!0,"[2].":!0,'[invalid-exhaustive-check]"}]':!0},"enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\nconst status: Status = Status.Active;\n\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n case Status.Off:\n break;\n case Status.Paused: // Error: you already checked for 'Status.Paused'\n break;\n}\n")),(0,s.mdx)("p",null,"A ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," case is redundant if you\u2019ve already matched all cases:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":15,"startColumn":3,"endLine":16,"endColumn":10,"description":"Invalid exhaustive check: default case checks for additional enum members of `Status` [1], but all of its members have already been checked. [invalid-exhaustive-check]"}]','[{"startLine":15,"startColumn":3,"endLine":16,"endColumn":10,"description":"Invalid':!0,exhaustive:!0,"check:":!0,default:!0,case:!0,checks:!0,for:!0,additional:!0,enum:!0,members:!0,of:!0,"`Status`":!0,"[1],":!0,but:!0,all:!0,its:!0,have:!0,already:!0,been:!0,"checked.":!0,'[invalid-exhaustive-check]"}]':!0},"enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\nconst status: Status = Status.Active;\n\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n case Status.Off:\n break;\n default: // Error: you've already checked all cases, the 'default' is redundant\n break;\n}\n// The following is OK because the `default` covers the `Status.Off` case:\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n default:\n break;\n}\n")),(0,s.mdx)("p",null,"Except if you are switching over an enum with ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-flow-enums-with-unknown-members"},"unknown members"),"."),(0,s.mdx)("p",null,"If you nest exhaustively checked switches inside exhaustively checked switches, and are returning from each branch, you must add a ",(0,s.mdx)("inlineCode",{parentName:"p"},"break;")," after the nested switch:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"switch (status) {\n case Status.Active:\n return 1;\n case Status.Paused:\n return 2;\n case Status.Off:\n switch (otherStatus) {\n case Status.Active:\n return 1;\n case Status.Paused:\n return 2;\n case Status.Off:\n return 3;\n }\n break;\n}\n")),(0,s.mdx)("p",null,"Remember, you can add blocks to your switch cases. They are useful if you want to use local variables:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"switch (status) {\n case Status.Active: {\n const x = f();\n ...\n break;\n }\n case Status.Paused: {\n const x = g();\n ...\n break;\n }\n case Status.Off: {\n const y = ...;\n ...\n break;\n }\n}\n")),(0,s.mdx)("p",null,"If you didn't add blocks in this example, the two declarations of ",(0,s.mdx)("inlineCode",{parentName:"p"},"const x")," would conflict and result in an error."),(0,s.mdx)("p",null,"Enums are not checked exhaustively in ",(0,s.mdx)("inlineCode",{parentName:"p"},"if")," statements or other contexts other than ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statements."),(0,s.mdx)("h3",{id:"toc-exhaustive-checking-with-unknown-members"},"Exhaustive checking with unknown members"),(0,s.mdx)("p",null,"If your enum has ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-flow-enums-with-unknown-members"},"unknown members")," (specified with the ",(0,s.mdx)("inlineCode",{parentName:"p"},"..."),"), e.g."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"enum Status {\n Active,\n Paused,\n Off,\n ...\n}\n")),(0,s.mdx)("p",null,"Then a ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," is always required when switching over the enum. The ",(0,s.mdx)("inlineCode",{parentName:"p"},"default"),' checks for "unknown" members you haven\'t explicitly listed.'),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"switch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n case Status.Off:\n break;\n default:\n // Checks for members not explicitly listed\n}\n")),(0,s.mdx)("p",null,"You can use the ",(0,s.mdx)("inlineCode",{parentName:"p"},"require-explicit-enum-switch-cases")," ",(0,s.mdx)("a",{parentName:"p",href:"../../linting/flowlint-comments/"},"Flow Lint")," to require that all known members are explicitly listed as cases. For example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Incomplete exhaustive check: the member `Off` of enum `Status` [1] has not been considered in check of `status`. The default case [2] does not check for the missing members as the `require-explicit-enum-switch-cases` lint has been enabled. [require-explicit-enum-switch-cases]"}]','[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Incomplete':!0,exhaustive:!0,"check:":!0,the:!0,member:!0,"`Off`":!0,of:!0,enum:!0,"`Status`":!0,"[1]":!0,has:!0,not:!0,been:!0,considered:!0,in:!0,check:!0,"`status`.":!0,The:!0,default:!0,case:!0,"[2]":!0,does:!0,for:!0,missing:!0,members:!0,as:!0,"`require-explicit-enum-switch-cases`":!0,lint:!0,"enabled.":!0,'[require-explicit-enum-switch-cases]"}]':!0},"enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\nconst status: Status = Status.Active;\n\n// flowlint-next-line require-explicit-enum-switch-cases:error\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n default:\n break;\n}\n")),(0,s.mdx)("p",null,"You can fix if by doing:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"// flowlint-next-line require-explicit-enum-switch-cases:error\nswitch (status) {\n case Status.Active:\n break;\n case Status.Paused:\n break;\n case Status.Off: // Added the missing `Status.Off` case\n break;\n default:\n break;\n}\n")),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"require-explicit-enum-switch-cases")," lint is not one to enable globally, but rather on a per-",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," basis when you want the behavior.\nWith normal enums, for each ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statement on it, you can either provide a ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," or not, and thus decide if you want to require each case explicitly listed or not.\nSimilarly for Flow Enums with unknown members, you can also enable this lint on a per-switch basis."),(0,s.mdx)("p",null,"The lint works for switches of regular Flow Enum types as well.\nIt in effect bans the usage of ",(0,s.mdx)("inlineCode",{parentName:"p"},"default")," in that ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statement, by requiring the explicit listing of all enum members as cases."),(0,s.mdx)("h3",{id:"toc-mapping-enums-to-other-values"},"Mapping enums to other values"),(0,s.mdx)("p",null,"There are a variety of reasons you may want to map an enum value to another value, e.g. a label, icon, element, and so on."),(0,s.mdx)("p",null,"With previous patterns, it was common to use object literals for this purpose, however with Flow Enums we prefer functions which contain a switch, which we can exhaustively check."),(0,s.mdx)("p",null,"Instead of:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const STATUS_ICON: {[Status]: string} = {\n [Status.Active]: 'green-checkmark',\n [Status.Paused]: 'grey-pause',\n [Status.Off]: 'red-x',\n};\nconst icon = STATUS_ICON[status];\n")),(0,s.mdx)("p",null,"Which doesn't actually guarantee that we are mapping each ",(0,s.mdx)("inlineCode",{parentName:"p"},"Status")," to some value, use:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"function getStatusIcon(status: Status): string {\n switch (status) {\n case Status.Active:\n return 'green-checkmark';\n case Status.Paused:\n return 'grey-pause';\n case Status.Off:\n return 'red-x';\n }\n}\nconst icon = getStatusIcon(status);\n")),(0,s.mdx)("p",null,"In the future if you add or remove an enum member, Flow will tell you to update the switch as well so it's always accurate."),(0,s.mdx)("p",null,"If you actually want a dictionary which is not exhaustive, you can use a ",(0,s.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map"},(0,s.mdx)("inlineCode",{parentName:"a"},"Map")),":"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const counts = new Map([\n [Status.Active, 2],\n [Status.Off, 5],\n]);\nconst activeCount: Status | void = counts.get(Status.Active);\n")),(0,s.mdx)("p",null,"Flow Enums cannot be used as keys in object literals, as ",(0,s.mdx)("a",{parentName:"p",href:"#toc-distinct-object-keys"},"explained later on this page"),"."),(0,s.mdx)("h3",{id:"toc-enums-in-a-union"},"Enums in a union"),(0,s.mdx)("p",null,"If your enum value is in a union (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"?Status"),"), first refine to only the enum type:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const status: ?Status = ...;\n\nif (status != null) {\n (status: Status); // 'status' is refined to 'Status' at this point\n switch (status) {\n case Status.Active: break;\n case Status.Paused: break;\n case Status.Off: break;\n }\n}\n")),(0,s.mdx)("p",null,"If you want to refine ",(0,s.mdx)("em",{parentName:"p"},"to")," the enum value, you can use ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof")," with the representation type, for example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const val: Status | number = ...;\n\n// 'Status' is a string enum\nif (typeof val === 'string') {\n (val: Status); // 'val' is refined to 'Status' at this point\n switch (val) {\n case Status.Active: break;\n case Status.Paused: break;\n case Status.Off: break;\n }\n}\n")),(0,s.mdx)("h3",{id:"toc-exporting-enums"},"Exporting enums"),(0,s.mdx)("p",null,"An enum is a type and a value (like a class is). To export both the type and the value, export it like a you would a value:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export enum Status {}\n")),(0,s.mdx)("p",null,"Or, as the default export (note: you must always specify an enum name, ",(0,s.mdx)("inlineCode",{parentName:"p"},"export default enum {}")," is not allowed):"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export default enum Status {}\n")),(0,s.mdx)("p",null,"Using CommonJS:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {}\nmodule.exports = Status;\n")),(0,s.mdx)("p",null,"To export ",(0,s.mdx)("strong",{parentName:"p"},"only")," its type, but not the value, you can do:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {}\nexport type {Status};\n")),(0,s.mdx)("p",null,"Other functions within the file will still have access to the enum implementation."),(0,s.mdx)("h3",{id:"toc-importing-enums"},"Importing enums"),(0,s.mdx)("p",null,"If you have exported an enum like this:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"// status.js\nexport default enum Status {\n Active,\n Paused,\n Off,\n}\n")),(0,s.mdx)("p",null,"You can import it as both a value and a type like this:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"import Status from 'status';\n\nconst x: Status /* used as type */ = Status.Active /* used as value */;\n")),(0,s.mdx)("p",null,"If you only need to use the type, you can import it as a type:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"import type Status from 'status';\n\nfunction printStatus(status: Status) {\n ...\n}\n")),(0,s.mdx)("p",null,"Using CommonJS:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const Status = require('status');\n")),(0,s.mdx)("h3",{id:"toc-generic-enums"},"Generic enums"),(0,s.mdx)("p",null,"There is currently no way to specify a generic enum type, but there have been enough requests that it is something we will look into in the future."),(0,s.mdx)("p",null,"For some use cases of generic enums, you can currently ask users to supply functions which call the enum ",(0,s.mdx)("a",{parentName:"p",href:"#toc-methods"},"methods")," instead (rather than passing in the enum itself), for example:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'function castToEnumArray(\n f: TRepresentationType => TEnum,\n xs: Array,\n): Array {\n return xs.map(f);\n}\n\ncastToEnumArray((input) => Status.cast(input), ["Active", "Paused", "Invalid"]);\n')),(0,s.mdx)("h3",{id:"toc-when-to-not-use-enums"},"When to not use enums"),(0,s.mdx)("p",null,"Enums are designed to cover many use cases and exhibit certain benefits. The design makes a variety of trade-offs to make this happen, and in certain situations,\nthese trade-offs might not be right for you. In these cases, you can continue to use existing patterns to satisfy your use cases."),(0,s.mdx)("h4",{id:"toc-distinct-object-keys"},"Distinct object keys"),(0,s.mdx)("p",null,"You can\u2019t use enum members as distinct object keys."),(0,s.mdx)("p",null,"The following pattern works because the types of ",(0,s.mdx)("inlineCode",{parentName:"p"},"LegacyStatus.Active")," and ",(0,s.mdx)("inlineCode",{parentName:"p"},"LegacyStatus.Off")," are different. One has the type ",(0,s.mdx)("inlineCode",{parentName:"p"},"'Active'")," and one has the type ",(0,s.mdx)("inlineCode",{parentName:"p"},"'Off'"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":20,"endLine":12,"endColumn":41,"description":"Cannot assign `o[LegacyStatus.Active]` to `z` because string [1] is incompatible with boolean [2]. [incompatible-type]"}]','[{"startLine":12,"startColumn":20,"endLine":12,"endColumn":41,"description":"Cannot':!0,assign:!0,"`o[LegacyStatus.Active]`":!0,to:!0,"`z`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-type]"}]':!0},"const LegacyStatus = Object.freeze({\n Active: 'Active',\n Paused: 'Paused',\n Off: 'Off',\n});\nconst o = {\n [LegacyStatus.Active]: \"hi\",\n [LegacyStatus.Off]: 1,\n};\nconst x: string = o[LegacyStatus.Active]; // OK\nconst y: number = o[LegacyStatus.Off]; // OK\nconst z: boolean = o[LegacyStatus.Active]; // Error - as expected\n")),(0,s.mdx)("p",null,"We can\u2019t use the same pattern with enums. All enum members have the same type, the enum type, so Flow can\u2019t track the relationship between keys and values."),(0,s.mdx)("p",null,"If you wish to map from an enum value to another value, you should use a ",(0,s.mdx)("a",{parentName:"p",href:"#toc-mapping-enums-to-other-values"},"function with an exhaustively-checked switch instead"),"."),(0,s.mdx)("h4",{id:"toc-disjoint-object-unions"},"Disjoint object unions"),(0,s.mdx)("p",null,"A defining feature of enums is that unlike unions, each enum member does not form its own separate type. Every member has the same type, the enum type.\nThis allows enum usage to be analyzed by Flow in a consistently fast way, however it means that in certain situations which require separate types, we can\u2019t use enums.\nConsider the following union, following the ",(0,s.mdx)("a",{parentName:"p",href:"../../types/unions/#toc-disjoint-object-unions"},"disjoint object union")," pattern:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Action =\n | {type: 'Upload', data: string}\n | {type: 'Delete', id: number};\n")),(0,s.mdx)("p",null,"Each object type in the union has a single common field (",(0,s.mdx)("inlineCode",{parentName:"p"},"type"),") which is used to distinguish which object type we are dealing with."),(0,s.mdx)("p",null,"We can\u2019t use enum types for this field, because for this mechanism to work, the type of that field must be different in each member of the union,\nbut enum members all have the same type."),(0,s.mdx)("p",null,"In the future, we might add the ability for enums to encapsulate additional data besides a key and a primitive value - this would allow us to replace disjoint object unions."),(0,s.mdx)("h4",{id:"toc-guaranteed-inlining"},"Guaranteed inlining"),(0,s.mdx)("p",null,"Flow Enums are designed to allow for inlining (e.g. ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-literal-member-values"},"member values must be literals"),",\n",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-fixed-at-declaration"},"enums are frozen"),"), however the inlining itself needs to be part of the build system (whatever you use) rather than Flow itself."),(0,s.mdx)("p",null,"While enum member access (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"Status.Active"),") can be inlined (other than ",(0,s.mdx)("a",{parentName:"p",href:"../defining-enums/#toc-symbol-enums"},"symbol enums")," which cannot be inlined due to the nature of symbols),\nusage of its methods (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"Status.cast(x)"),") cannot be inlined."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1091.b8bfd1e4.js b/assets/js/1091.b8bfd1e4.js new file mode 100644 index 00000000000..0021db98e73 --- /dev/null +++ b/assets/js/1091.b8bfd1e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1091],{21091:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>r,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var n=t(87462),l=(t(67294),t(3905));t(45475);const a={title:"Lazy Mode",slug:"/lang/lazy-modes"},s=void 0,i={unversionedId:"lang/lazy-modes",id:"lang/lazy-modes",title:"Lazy Mode",description:"By default, the Flow server will typecheck all your code. This way it can answer",source:"@site/docs/lang/lazy-modes.md",sourceDirName:"lang",slug:"/lang/lazy-modes",permalink:"/en/docs/lang/lazy-modes",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/lazy-modes.md",tags:[],version:"current",frontMatter:{title:"Lazy Mode",slug:"/lang/lazy-modes"},sidebar:"docsSidebar",previous:{title:"Type Refinements",permalink:"/en/docs/lang/refinements"},next:{title:"File Signatures (Types-First)",permalink:"/en/docs/lang/types-first"}},r={},d=[{value:"Classifying Files",id:"toc-classifying-files",level:2},{value:"Choosing Focused Files",id:"toc-choosing-focused-files",level:2},{value:"Using Lazy Mode",id:"toc-using-lazy-mode",level:2},{value:"Forcing Flow to Treat a File as Focused",id:"toc-forcing-flow-to-treat-a-file-as-focused",level:2}],c={toc:d};function h(e){let{components:o,...t}=e;return(0,l.mdx)("wrapper",(0,n.Z)({},c,t,{components:o,mdxType:"MDXLayout"}),(0,l.mdx)("p",null,'By default, the Flow server will typecheck all your code. This way it can answer\nquestions like "are there any Flow errors anywhere in my code". This is very\nuseful for tooling, like a continuous integration hook which prevents code\nchanges which introduce Flow errors.'),(0,l.mdx)("p",null,"However, sometimes a Flow user might not care about all the code. If they are\nediting a file ",(0,l.mdx)("inlineCode",{parentName:"p"},"foo.js"),", they might only want Flow to typecheck the subset of\nthe repository needed to answer questions about ",(0,l.mdx)("inlineCode",{parentName:"p"},"foo.js"),". Since Flow would only\ncheck a smaller number of files, this would be faster. This is the motivation\nbehind Flow's lazy mode."),(0,l.mdx)("h2",{id:"toc-classifying-files"},"Classifying Files"),(0,l.mdx)("p",null,"Lazy mode classifes your code into four categories:"),(0,l.mdx)("ol",null,(0,l.mdx)("li",{parentName:"ol"},(0,l.mdx)("strong",{parentName:"li"},"Focused files"),". These are the files which the user cares about."),(0,l.mdx)("li",{parentName:"ol"},(0,l.mdx)("strong",{parentName:"li"},"Dependent files"),". These are the files which depend on the focused files.\nChanges to the focused files might cause type errors in the dependent files."),(0,l.mdx)("li",{parentName:"ol"},(0,l.mdx)("strong",{parentName:"li"},"Dependency files"),". These are the files which are needed in order to\ntypecheck the focused or dependent files."),(0,l.mdx)("li",{parentName:"ol"},(0,l.mdx)("strong",{parentName:"li"},"Unchecked files"),". All other files.")),(0,l.mdx)("p",null,"Lazy mode will still find all the JavaScript files and parse them. But it won't\ntypecheck the unchecked files."),(0,l.mdx)("h2",{id:"toc-choosing-focused-files"},"Choosing Focused Files"),(0,l.mdx)("p",null,'Flow will focus files when they change on disk, using Flow\'s built-in file watcher\n("dfind") or Watchman.'),(0,l.mdx)("p",null,'So, all files that change while Flow is running will be focused. But what about\nfiles that change when Flow is not running? If you\'re using Git or Mercurial,\nFlow will ask it for all of the files that have changed since the mergebase\nwith "master" (the common ancestor of the current commit and the master branch).'),(0,l.mdx)("p",null,'If you\'re not using "master" (e.g. "main" instead), you can change this with\nthe ',(0,l.mdx)("inlineCode",{parentName:"p"},"file_watcher.mergebase_with"),' config. If you\'re working from a clone, you\nmight want to set this to "origin/master" (for Git), which will focus all files\nthat have changed locally, even if you commit to your local "master" branch.'),(0,l.mdx)("p",null,"The net result is that Flow will find the same errors in lazy mode as in a full\ncheck, so long as there are no errors upstream. For example, if your CI ensures\nthat there are no errors in \"master,\" then it's redundant for Flow to check all\nof the unchanged files for errors that can't exist."),(0,l.mdx)("h2",{id:"toc-using-lazy-mode"},"Using Lazy Mode"),(0,l.mdx)("p",null,"To enable lazy mode, set ",(0,l.mdx)("inlineCode",{parentName:"p"},"lazy_mode=true")," in the ",(0,l.mdx)("inlineCode",{parentName:"p"},".flowconfig"),"."),(0,l.mdx)("p",null,"To start Flow in lazy mode manually, run"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"flow start --lazy-mode true\n")),(0,l.mdx)("h2",{id:"toc-forcing-flow-to-treat-a-file-as-focused"},"Forcing Flow to Treat a File as Focused"),(0,l.mdx)("p",null,"You can force Flow to treat one or more files as focused from the CLI."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"flow force-recheck --focus path/to/A.js path/to/B.js\n")))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1105.80237606.js b/assets/js/1105.80237606.js new file mode 100644 index 00000000000..5aee99a7cb6 --- /dev/null +++ b/assets/js/1105.80237606.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1105],{41105:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>i,contentTitle:()=>n,default:()=>l,frontMatter:()=>a,metadata:()=>m,toc:()=>d});var t=r(87462),s=(r(67294),r(3905));const a={title:"Spreads: Common Errors & Fixes","short-title":"Spreads: Common Errors & Fixes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/spreads-common-errors-fixes-9701012e9d58"},n=void 0,m={permalink:"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes",source:"@site/blog/2019-10-30-Spreads-Common-Errors-and-Fixes.md",title:"Spreads: Common Errors & Fixes",description:"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.",date:"2019-10-30T00:00:00.000Z",formattedDate:"October 30, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Spreads: Common Errors & Fixes","short-title":"Spreads: Common Errors & Fixes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/spreads-common-errors-fixes-9701012e9d58"},prevItem:{title:"How to upgrade to exact-by-default object type syntax",permalink:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"},nextItem:{title:"Live Flow errors in your IDE",permalink:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"}},i={authorsImageUrls:[void 0]},d=[],p={toc:d};function l(e){let{components:o,...r}=e;return(0,s.mdx)("wrapper",(0,t.Z)({},p,r,{components:o,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1109.53b35ea5.js b/assets/js/1109.53b35ea5.js new file mode 100644 index 00000000000..b89f1b11c12 --- /dev/null +++ b/assets/js/1109.53b35ea5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1109],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docsSidebar":[{"type":"category","label":"Introduction","items":[{"type":"link","label":"Getting Started","href":"/en/docs/getting-started","docId":"getting-started"},{"type":"link","label":"Installation","href":"/en/docs/install","docId":"install"},{"type":"link","label":"Usage","href":"/en/docs/usage","docId":"usage"}],"collapsed":true,"collapsible":true},{"type":"link","label":"FAQ","href":"/en/docs/faq","docId":"faq"},{"type":"category","label":"Type Annotations","items":[{"type":"link","label":"Type Annotations","href":"/en/docs/types","docId":"types/index"},{"type":"link","label":"Primitive Types","href":"/en/docs/types/primitives","docId":"types/primitives"},{"type":"link","label":"Literal Types","href":"/en/docs/types/literals","docId":"types/literals"},{"type":"link","label":"Mixed","href":"/en/docs/types/mixed","docId":"types/mixed"},{"type":"link","label":"Empty","href":"/en/docs/types/empty","docId":"types/empty"},{"type":"link","label":"Any","href":"/en/docs/types/any","docId":"types/any"},{"type":"link","label":"Maybe Types","href":"/en/docs/types/maybe","docId":"types/maybe"},{"type":"link","label":"Functions","href":"/en/docs/types/functions","docId":"types/functions"},{"type":"link","label":"Objects","href":"/en/docs/types/objects","docId":"types/objects"},{"type":"link","label":"Arrays","href":"/en/docs/types/arrays","docId":"types/arrays"},{"type":"link","label":"Tuples","href":"/en/docs/types/tuples","docId":"types/tuples"},{"type":"link","label":"Classes","href":"/en/docs/types/classes","docId":"types/classes"},{"type":"link","label":"Type Aliases","href":"/en/docs/types/aliases","docId":"types/aliases"},{"type":"link","label":"Opaque Type Aliases","href":"/en/docs/types/opaque-types","docId":"types/opaque-types"},{"type":"link","label":"Interfaces","href":"/en/docs/types/interfaces","docId":"types/interfaces"},{"type":"link","label":"Generics","href":"/en/docs/types/generics","docId":"types/generics"},{"type":"link","label":"Unions","href":"/en/docs/types/unions","docId":"types/unions"},{"type":"link","label":"Intersections","href":"/en/docs/types/intersections","docId":"types/intersections"},{"type":"link","label":"Indexed Access Types","href":"/en/docs/types/indexed-access","docId":"types/indexed-access"},{"type":"link","label":"Conditional Types","href":"/en/docs/types/conditional","docId":"types/conditional"},{"type":"link","label":"Mapped Types","href":"/en/docs/types/mapped-types","docId":"types/mapped-types"},{"type":"link","label":"Type Guards","href":"/en/docs/types/type-guards","docId":"types/type-guards"},{"type":"link","label":"Typeof Types","href":"/en/docs/types/typeof","docId":"types/typeof"},{"type":"link","label":"Type Casting Expressions","href":"/en/docs/types/casting","docId":"types/casting"},{"type":"link","label":"Utility Types","href":"/en/docs/types/utilities","docId":"types/utilities"},{"type":"link","label":"Module Types","href":"/en/docs/types/modules","docId":"types/modules"},{"type":"link","label":"Comment Types","href":"/en/docs/types/comments","docId":"types/comments"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Type System","items":[{"type":"link","label":"Types & Expressions","href":"/en/docs/lang/types-and-expressions","docId":"lang/types-and-expressions"},{"type":"link","label":"Variable Declarations","href":"/en/docs/lang/variables","docId":"lang/variables"},{"type":"link","label":"Subsets & Subtypes","href":"/en/docs/lang/subtypes","docId":"lang/subtypes"},{"type":"link","label":"Type Hierarchy","href":"/en/docs/lang/type-hierarchy","docId":"lang/type-hierarchy"},{"type":"link","label":"Type Variance","href":"/en/docs/lang/variance","docId":"lang/variance"},{"type":"link","label":"Nominal & Structural Typing","href":"/en/docs/lang/nominal-structural","docId":"lang/nominal-structural"},{"type":"link","label":"Depth Subtyping","href":"/en/docs/lang/depth-subtyping","docId":"lang/depth-subtyping"},{"type":"link","label":"Width Subtyping","href":"/en/docs/lang/width-subtyping","docId":"lang/width-subtyping"},{"type":"link","label":"Type Refinements","href":"/en/docs/lang/refinements","docId":"lang/refinements"},{"type":"link","label":"Lazy Mode","href":"/en/docs/lang/lazy-modes","docId":"lang/lazy-modes"},{"type":"link","label":"File Signatures (Types-First)","href":"/en/docs/lang/types-first","docId":"lang/types-first"},{"type":"link","label":"Annotation Requirement","href":"/en/docs/lang/annotation-requirement","docId":"lang/annotation-requirement"}],"collapsed":true,"collapsible":true},{"type":"category","label":"React","items":[{"type":"link","label":"Getting Started","href":"/en/docs/react","docId":"react/index"},{"type":"link","label":"Components","href":"/en/docs/react/components","docId":"react/components"},{"type":"link","label":"Event Handling","href":"/en/docs/react/events","docId":"react/events"},{"type":"link","label":"Ref Functions","href":"/en/docs/react/refs","docId":"react/refs"},{"type":"link","label":"Higher-order Components","href":"/en/docs/react/hoc","docId":"react/hoc"},{"type":"link","label":"Type Reference","href":"/en/docs/react/types","docId":"react/types"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Flow Enums","items":[{"type":"link","label":"Flow Enums","href":"/en/docs/enums","docId":"enums/index"},{"type":"link","label":"Enabling enums in your project","href":"/en/docs/enums/enabling-enums","docId":"enums/enabling-enums"},{"type":"link","label":"Defining enums","href":"/en/docs/enums/defining-enums","docId":"enums/defining-enums"},{"type":"link","label":"Using enums","href":"/en/docs/enums/using-enums","docId":"enums/using-enums"},{"type":"link","label":"Migrating from legacy patterns","href":"/en/docs/enums/migrating-legacy-patterns","docId":"enums/migrating-legacy-patterns"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Declarations","href":"/en/docs/declarations","docId":"declarations/index"},{"type":"category","label":"Library Definitions","items":[{"type":"link","label":"Library Definitions","href":"/en/docs/libdefs","docId":"libdefs/index"},{"type":"link","label":"Creating Library Definitions","href":"/en/docs/libdefs/creation","docId":"libdefs/creation"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Error Suppressions","href":"/en/docs/errors","docId":"errors/index"},{"type":"category","label":"Linting","items":[{"type":"link","label":"Linting Overview","href":"/en/docs/linting","docId":"linting/index"},{"type":"link","label":"Flowlint Comments","href":"/en/docs/linting/flowlint-comments","docId":"linting/flowlint-comments"},{"type":"link","label":"Lint Rule Reference","href":"/en/docs/linting/rule-reference","docId":"linting/rule-reference"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Flow Strict","href":"/en/docs/strict","docId":"strict/index"},{"type":"category","label":"Flow CLI","items":[{"type":"link","label":"Flow CLI","href":"/en/docs/cli","docId":"cli/index"},{"type":"link","label":"Flow Coverage","href":"/en/docs/cli/coverage","docId":"cli/coverage"},{"type":"link","label":"Flow Annotate-Exports","href":"/en/docs/cli/annotate-exports","docId":"cli/annotate-exports"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Configuration","items":[{"type":"link","label":".flowconfig","href":"/en/docs/config","docId":"config/index"},{"type":"link","label":".flowconfig [version]","href":"/en/docs/config/version","docId":"config/version"},{"type":"link","label":".flowconfig [options]","href":"/en/docs/config/options","docId":"config/options"},{"type":"link","label":".flowconfig [include]","href":"/en/docs/config/include","docId":"config/include"},{"type":"link","label":".flowconfig [ignore]","href":"/en/docs/config/ignore","docId":"config/ignore"},{"type":"link","label":".flowconfig [untyped]","href":"/en/docs/config/untyped","docId":"config/untyped"},{"type":"link","label":".flowconfig [declarations]","href":"/en/docs/config/declarations","docId":"config/declarations"},{"type":"link","label":".flowconfig [libs]","href":"/en/docs/config/libs","docId":"config/libs"},{"type":"link","label":".flowconfig [lints]","href":"/en/docs/config/lints","docId":"config/lints"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Tools","items":[{"type":"link","label":"Babel","href":"/en/docs/tools/babel","docId":"tools/babel"},{"type":"link","label":"ESLint","href":"/en/docs/tools/eslint","docId":"tools/eslint"},{"type":"link","label":"flow-remove-types","href":"/en/docs/tools/flow-remove-types","docId":"tools/flow-remove-types"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Editors","items":[{"type":"link","label":"Editors","href":"/en/docs/editors","docId":"editors/index"},{"type":"link","label":"Visual Studio Code","href":"/en/docs/editors/vscode","docId":"editors/vscode"},{"type":"link","label":"Sublime Text","href":"/en/docs/editors/sublime-text","docId":"editors/sublime-text"},{"type":"link","label":"Vim","href":"/en/docs/editors/vim","docId":"editors/vim"},{"type":"link","label":"Emacs","href":"/en/docs/editors/emacs","docId":"editors/emacs"},{"type":"link","label":"WebStorm","href":"/en/docs/editors/webstorm","docId":"editors/webstorm"}],"collapsed":true,"collapsible":true}]},"docs":{"cli/annotate-exports":{"id":"cli/annotate-exports","title":"Flow Annotate-Exports","description":"Upgrading to Types-First mode may require a substantial","sidebar":"docsSidebar"},"cli/coverage":{"id":"cli/coverage","title":"Flow Coverage","description":"The coverage command provides a metric of the amount of checking that Flow has","sidebar":"docsSidebar"},"cli/index":{"id":"cli/index","title":"Flow CLI","description":"How to use Flow from the command line. Including how to manage the Flow background process.","sidebar":"docsSidebar"},"config/declarations":{"id":"config/declarations","title":".flowconfig [declarations]","description":"Often third-party libraries have broken type definitions or have type","sidebar":"docsSidebar"},"config/ignore":{"id":"config/ignore","title":".flowconfig [ignore]","description":"The [ignore] section in a .flowconfig file tells Flow to ignore files","sidebar":"docsSidebar"},"config/include":{"id":"config/include","title":".flowconfig [include]","description":"The [include] section in a .flowconfig file tells Flow to include the","sidebar":"docsSidebar"},"config/index":{"id":"config/index","title":".flowconfig","description":"Flow tries to work out of the box as much as possible, but can be configured to work with any codebase.","sidebar":"docsSidebar"},"config/libs":{"id":"config/libs","title":".flowconfig [libs]","description":"The [libs] section in a .flowconfig file tells Flow to include the","sidebar":"docsSidebar"},"config/lints":{"id":"config/lints","title":".flowconfig [lints]","description":"The [lints] section in a .flowconfig file can contain several key-value","sidebar":"docsSidebar"},"config/options":{"id":"config/options","title":".flowconfig [options]","description":"The [options] section in a .flowconfig file can contain several key-value","sidebar":"docsSidebar"},"config/untyped":{"id":"config/untyped","title":".flowconfig [untyped]","description":"The [untyped] section in a .flowconfig file tells Flow to not typecheck files","sidebar":"docsSidebar"},"config/version":{"id":"config/version","title":".flowconfig [version]","description":"You can specify in the .flowconfig which version of Flow you expect to use.","sidebar":"docsSidebar"},"declarations/index":{"id":"declarations/index","title":"Declaration Files","description":"Learn how to write types in .flow files.","sidebar":"docsSidebar"},"editors/emacs":{"id":"editors/emacs","title":"Emacs","description":"flow-for-emacs","sidebar":"docsSidebar"},"editors/index":{"id":"editors/index","title":"Editors","description":"Detailed guides, tips, and resources on how to integrate Flow with different code editors.","sidebar":"docsSidebar"},"editors/sublime-text":{"id":"editors/sublime-text","title":"Sublime Text","description":"Flow For Sublime Text 2 and 3","sidebar":"docsSidebar"},"editors/vim":{"id":"editors/vim","title":"Vim","description":"Flow\'s editor integration is primarily via the Language Server Protocol. There are many vim LSP clients to choose from, such as ALE.","sidebar":"docsSidebar"},"editors/vscode":{"id":"editors/vscode","title":"Visual Studio Code","description":"Screenshot of Flow Language Support","sidebar":"docsSidebar"},"editors/webstorm":{"id":"editors/webstorm","title":"WebStorm","description":"Webstorm installation instructions can be found here:","sidebar":"docsSidebar"},"enums/defining-enums":{"id":"enums/defining-enums","title":"Defining enums","description":"Learn how to define a Flow Enum. Looking for a quick overview? Check out the Quickstart Guide.","sidebar":"docsSidebar"},"enums/enabling-enums":{"id":"enums/enabling-enums","title":"Enabling enums in your project","description":"Upgrade tooling","sidebar":"docsSidebar"},"enums/index":{"id":"enums/index","title":"Flow Enums","description":"Define a fixed set of constants which create their own type. Exhaustively checked in switch statements.","sidebar":"docsSidebar"},"enums/migrating-legacy-patterns":{"id":"enums/migrating-legacy-patterns","title":"Migrating from legacy patterns","description":"Learn how to migrate to Flow Enums from legacy JavaScript enum patterns like Object.freeze.","sidebar":"docsSidebar"},"enums/using-enums":{"id":"enums/using-enums","title":"Using enums","description":"Flow Enums are not a syntax for union types. They are their own type, and each member of a Flow Enum has the same type.","sidebar":"docsSidebar"},"errors/index":{"id":"errors/index","title":"Error Suppressions","description":"Learn how to suppress Flow\'s type errors.","sidebar":"docsSidebar"},"faq":{"id":"faq","title":"FAQ","description":"Have a question about using Flow? Check here first!","sidebar":"docsSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"Never used a type system before or just new to Flow? Let\'s get you up and running in a few minutes.","sidebar":"docsSidebar"},"index":{"id":"index","title":"Documentation","description":"Guides and references for all you need to know about Flow","sidebar":"docsSidebar"},"install":{"id":"install","title":"Installation","description":"Setup Compiler","sidebar":"docsSidebar"},"lang/annotation-requirement":{"id":"lang/annotation-requirement","title":"Annotation Requirement","description":"Note: As of version 0.199 Flow uses Local Type Inference as its inference algorithm.","sidebar":"docsSidebar"},"lang/depth-subtyping":{"id":"lang/depth-subtyping","title":"Depth Subtyping","description":"Assume we have two classes, which have a subtype relationship using extends:","sidebar":"docsSidebar"},"lang/lazy-modes":{"id":"lang/lazy-modes","title":"Lazy Mode","description":"By default, the Flow server will typecheck all your code. This way it can answer","sidebar":"docsSidebar"},"lang/nominal-structural":{"id":"lang/nominal-structural","title":"Nominal & Structural Typing","description":"A static type checker can use either the name (nominal typing) or the structure (structural typing)","sidebar":"docsSidebar"},"lang/refinements":{"id":"lang/refinements","title":"Type Refinements","description":"Refinements allow us to narrow the type of a value based on conditional tests.","sidebar":"docsSidebar"},"lang/subtypes":{"id":"lang/subtypes","title":"Subsets & Subtypes","description":"What is a subtype?","sidebar":"docsSidebar"},"lang/type-hierarchy":{"id":"lang/type-hierarchy","title":"Type Hierarchy","description":"Types in Flow form a hierarchy based on subtyping:","sidebar":"docsSidebar"},"lang/types-and-expressions":{"id":"lang/types-and-expressions","title":"Types & Expressions","description":"In JavaScript there are many types of values: numbers, strings, booleans,","sidebar":"docsSidebar"},"lang/types-first":{"id":"lang/types-first","title":"File Signatures (Types-First)","description":"Flow checks codebases by processing each file separately in dependency","sidebar":"docsSidebar"},"lang/variables":{"id":"lang/variables","title":"Variable Declarations","description":"When you are declaring a new variable, you may optionally declare its type.","sidebar":"docsSidebar"},"lang/variance":{"id":"lang/variance","title":"Type Variance","description":"Variance is a topic that comes up fairly often in type systems. It is used to determine","sidebar":"docsSidebar"},"lang/width-subtyping":{"id":"lang/width-subtyping","title":"Width Subtyping","description":"It\'s safe to use an object with \\"extra\\" properties in a position that is","sidebar":"docsSidebar"},"libdefs/creation":{"id":"libdefs/creation","title":"Creating Library Definitions","description":"Before spending the time to write your own libdef, we recommend that you look to","sidebar":"docsSidebar"},"libdefs/index":{"id":"libdefs/index","title":"Library Definitions","description":"Learn how to create and use library definitions for the third-party code your code depends on.","sidebar":"docsSidebar"},"linting/flowlint-comments":{"id":"linting/flowlint-comments","title":"Flowlint Comments","description":"You can use flowlint comments to specify more granular lint settings within a file.","sidebar":"docsSidebar"},"linting/index":{"id":"linting/index","title":"Linting Overview","description":"Learn how to configure Flow\'s linter to find potentially harmful code.","sidebar":"docsSidebar"},"linting/rule-reference":{"id":"linting/rule-reference","title":"Lint Rule Reference","description":"all","sidebar":"docsSidebar"},"react/components":{"id":"react/components","title":"Components","description":"Adding Flow types to your React components is incredibly powerful. After typing","sidebar":"docsSidebar"},"react/events":{"id":"react/events","title":"Event Handling","description":"The React docs for handling events show how an event handler can be attached to","sidebar":"docsSidebar"},"react/hoc":{"id":"react/hoc","title":"Higher-order Components","description":"A popular pattern in React is the higher-order component pattern, so it\'s","sidebar":"docsSidebar"},"react/index":{"id":"react/index","title":"Getting Started","description":"Learn how to use Flow to effectively type common and advanced React patterns.","sidebar":"docsSidebar"},"react/multiplatform":{"id":"react/multiplatform","title":"Multi-platform Support for React Native","description":"Flow\'s support for multiple platforms inside a single React Native codebase"},"react/refs":{"id":"react/refs","title":"Ref Functions","description":"React allows you to grab the instance of an element or component with refs.","sidebar":"docsSidebar"},"react/types":{"id":"react/types","title":"Type Reference","description":"React exports a handful of utility types that may be useful to you when typing","sidebar":"docsSidebar"},"strict/index":{"id":"strict/index","title":"Flow Strict","description":"Learn how to enable stricter type checking on a file-by-file basis.","sidebar":"docsSidebar"},"tools/babel":{"id":"tools/babel","title":"Babel","description":"Flow and Babel are designed to work great together. It","sidebar":"docsSidebar"},"tools/eslint":{"id":"tools/eslint","title":"ESLint","description":"ESLint is a static analysis tool which can help you quickly find and","sidebar":"docsSidebar"},"tools/flow-remove-types":{"id":"tools/flow-remove-types","title":"flow-remove-types","description":"flow-remove-types is a small","sidebar":"docsSidebar"},"tools/index":{"id":"tools/index","title":"Tools","description":"Detailed guides, tips, and resources on how to integrate Flow with different JavaScript tools.","sidebar":"docsSidebar"},"types/aliases":{"id":"types/aliases","title":"Type Aliases","description":"When you have complicated types that you want to reuse in multiple places, you","sidebar":"docsSidebar"},"types/any":{"id":"types/any","title":"Any","description":"Warning: Do not mistake any with mixed. It\'s also not the same as empty.","sidebar":"docsSidebar"},"types/arrays":{"id":"types/arrays","title":"Arrays","description":"Array types represent lists of unknown length, where all items have the same type.","sidebar":"docsSidebar"},"types/casting":{"id":"types/casting","title":"Type Casting Expressions","description":"Sometimes it is useful to assert a type without using something like a function","sidebar":"docsSidebar"},"types/classes":{"id":"types/classes","title":"Classes","description":"JavaScript classes","sidebar":"docsSidebar"},"types/comments":{"id":"types/comments","title":"Comment Types","description":"Flow supports a comment-based syntax, which makes it possible to use Flow","sidebar":"docsSidebar"},"types/conditional":{"id":"types/conditional","title":"Conditional Types","description":"Flow\'s conditional type allows you to conditionally choose between two different output types by inspecting an input type. It is useful to extract parts of a type, or to describe a complex overload.","sidebar":"docsSidebar"},"types/empty":{"id":"types/empty","title":"Empty","description":"The empty type has no values. It is the subtype of all other types (i.e. the bottom type).","sidebar":"docsSidebar"},"types/functions":{"id":"types/functions","title":"Functions","description":"Functions have two places where types are applied: parameters (input) and the return value (output).","sidebar":"docsSidebar"},"types/generators":{"id":"types/generators","title":"generators","description":""},"types/generics":{"id":"types/generics","title":"Generics","description":"Generics (sometimes referred to as polymorphic types) are a way of abstracting","sidebar":"docsSidebar"},"types/index":{"id":"types/index","title":"Type Annotations","description":"Learn how to add Flow type annotations to your code: Primitives, Objects, Functions, Classes, and more.","sidebar":"docsSidebar"},"types/indexed-access":{"id":"types/indexed-access","title":"Indexed Access Types","description":"Flow\u2019s Indexed Access Types allow you to get the type of a property from an object, array, or tuple type.","sidebar":"docsSidebar"},"types/interfaces":{"id":"types/interfaces","title":"Interfaces","description":"Classes in Flow are nominally typed. This means that when you have two separate","sidebar":"docsSidebar"},"types/intersections":{"id":"types/intersections","title":"Intersections","description":"Sometimes it is useful to create a type which is all of a set of other","sidebar":"docsSidebar"},"types/literals":{"id":"types/literals","title":"Literal Types","description":"Flow has primitive types for","sidebar":"docsSidebar"},"types/mapped-types":{"id":"types/mapped-types","title":"Mapped Types","description":"Flow\'s mapped types allow you to transform object types. They are useful for modeling complex runtime operations over objects.","sidebar":"docsSidebar"},"types/maybe":{"id":"types/maybe","title":"Maybe Types","description":"You can prefix a type with ? to make it a union with null and void:","sidebar":"docsSidebar"},"types/mixed":{"id":"types/mixed","title":"Mixed","description":"mixed is the supertype of all types. All values are mixed.","sidebar":"docsSidebar"},"types/modules":{"id":"types/modules","title":"Module Types","description":"Importing and exporting types","sidebar":"docsSidebar"},"types/objects":{"id":"types/objects","title":"Objects","description":"Objects can be used in many different ways in JavaScript.","sidebar":"docsSidebar"},"types/opaque-types":{"id":"types/opaque-types","title":"Opaque Type Aliases","description":"Opaque type aliases are type aliases that do not allow access to their","sidebar":"docsSidebar"},"types/primitives":{"id":"types/primitives","title":"Primitive Types","description":"JavaScript has a number of different primitive types","sidebar":"docsSidebar"},"types/tuples":{"id":"types/tuples","title":"Tuples","description":"Tuple types represent a fixed length list, where the elements can have different types.","sidebar":"docsSidebar"},"types/type-guards":{"id":"types/type-guards","title":"Type Guards","description":"Flow lets you define functions whose return expression encodes some type predicate over a parameter param. This predicate is annotated in place of a return type annotation as param is PredicateType. It declares that if the function returns true then param is of type PredicateType.","sidebar":"docsSidebar"},"types/typeof":{"id":"types/typeof","title":"Typeof Types","description":"JavaScript has a typeof operator which returns a string describing a value.","sidebar":"docsSidebar"},"types/unions":{"id":"types/unions","title":"Unions","description":"Sometimes it\'s useful to create a type which is one of a set of other","sidebar":"docsSidebar"},"types/utilities":{"id":"types/utilities","title":"Utility Types","description":"Flow provides a set of utility types to operate on other types to create new types.","sidebar":"docsSidebar"},"usage":{"id":"usage","title":"Usage","description":"Once you have installed Flow, you will want to get a feel of how to use Flow at the most basic level. For most new Flow projects, you will follow this general pattern:","sidebar":"docsSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/1134.0924e525.js b/assets/js/1134.0924e525.js new file mode 100644 index 00000000000..c290339ad70 --- /dev/null +++ b/assets/js/1134.0924e525.js @@ -0,0 +1,445 @@ +"use strict"; +exports.id = 1134; +exports.ids = [1134,6717]; +exports.modules = { + +/***/ 41134: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96717); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/javascript/javascript.ts + +var conf = _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.conf; +var language = { + defaultToken: "invalid", + tokenPostfix: ".js", + keywords: [ + "break", + "case", + "catch", + "class", + "continue", + "const", + "constructor", + "debugger", + "default", + "delete", + "do", + "else", + "export", + "extends", + "false", + "finally", + "for", + "from", + "function", + "get", + "if", + "import", + "in", + "instanceof", + "let", + "new", + "null", + "return", + "set", + "super", + "switch", + "symbol", + "this", + "throw", + "true", + "try", + "typeof", + "undefined", + "var", + "void", + "while", + "with", + "yield", + "async", + "await", + "of" + ], + typeKeywords: [], + operators: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.operators, + symbols: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.symbols, + escapes: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.escapes, + digits: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.digits, + octaldigits: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.octaldigits, + binarydigits: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.binarydigits, + hexdigits: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.hexdigits, + regexpctl: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.regexpctl, + regexpesc: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.regexpesc, + tokenizer: _typescript_typescript_js__WEBPACK_IMPORTED_MODULE_0__.language.tokenizer +}; + + + +/***/ }), + +/***/ 96717: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15030); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/typescript/typescript.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + onEnterRules: [ + { + beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, + afterText: /^\s*\*\/$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent, + appendText: " * " + } + }, + { + beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + appendText: " * " + } + }, + { + beforeText: /^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + appendText: "* " + } + }, + { + beforeText: /^(\t|(\ \ ))*\ \*\/\s*$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + removeText: 1 + } + } + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: "`", close: "`", notIn: ["string", "comment"] }, + { open: "/**", close: " */", notIn: ["string"] } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*#?region\\b"), + end: new RegExp("^\\s*//\\s*#?endregion\\b") + } + } +}; +var language = { + defaultToken: "invalid", + tokenPostfix: ".ts", + keywords: [ + "abstract", + "any", + "as", + "asserts", + "bigint", + "boolean", + "break", + "case", + "catch", + "class", + "continue", + "const", + "constructor", + "debugger", + "declare", + "default", + "delete", + "do", + "else", + "enum", + "export", + "extends", + "false", + "finally", + "for", + "from", + "function", + "get", + "if", + "implements", + "import", + "in", + "infer", + "instanceof", + "interface", + "is", + "keyof", + "let", + "module", + "namespace", + "never", + "new", + "null", + "number", + "object", + "out", + "package", + "private", + "protected", + "public", + "override", + "readonly", + "require", + "global", + "return", + "set", + "static", + "string", + "super", + "switch", + "symbol", + "this", + "throw", + "true", + "try", + "type", + "typeof", + "undefined", + "unique", + "unknown", + "var", + "void", + "while", + "with", + "yield", + "async", + "await", + "of" + ], + operators: [ + "<=", + ">=", + "==", + "!=", + "===", + "!==", + "=>", + "+", + "-", + "**", + "*", + "/", + "%", + "++", + "--", + "<<", + ">", + ">>>", + "&", + "|", + "^", + "!", + "~", + "&&", + "||", + "??", + "?", + ":", + "=", + "+=", + "-=", + "*=", + "**=", + "/=", + "%=", + "<<=", + ">>=", + ">>>=", + "&=", + "|=", + "^=", + "@" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [/!(?=([^=]|$))/, "delimiter"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/(@digits)[eE]([\-+]?(@digits))?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, "number.float"], + [/0[xX](@hexdigits)n?/, "number.hex"], + [/0[oO]?(@octaldigits)n?/, "number.octal"], + [/0[bB](@binarydigits)n?/, "number.binary"], + [/(@digits)n?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string_double"], + [/'/, "string", "@string_single"], + [/`/, "string", "@string_backtick"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@jsdoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + jsdoc: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + regexp: [ + [ + /(\{)(\d+(?:,\d*)?)(\})/, + ["regexp.escape.control", "regexp.escape.control", "regexp.escape.control"] + ], + [ + /(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/, + ["regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }] + ], + [/(\()(\?:|\?=|\?!)/, ["regexp.escape.control", "regexp.escape.control"]], + [/[()]/, "regexp.escape.control"], + [/@regexpctl/, "regexp.escape.control"], + [/[^\\\/]/, "regexp"], + [/@regexpesc/, "regexp.escape"], + [/\\\./, "regexp.invalid"], + [/(\/)([dgimsuy]*)/, [{ token: "regexp", bracket: "@close", next: "@pop" }, "keyword.other"]] + ], + regexrange: [ + [/-/, "regexp.escape.control"], + [/\^/, "regexp.invalid"], + [/@regexpesc/, "regexp.escape"], + [/[^\]]/, "regexp"], + [ + /\]/, + { + token: "regexp.escape.control", + next: "@pop", + bracket: "@close" + } + ] + ], + string_double: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + string_single: [ + [/[^\\']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/'/, "string", "@pop"] + ], + string_backtick: [ + [/\$\{/, { token: "delimiter.bracket", next: "@bracketCounting" }], + [/[^\\`$]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/`/, "string", "@pop"] + ], + bracketCounting: [ + [/\{/, "delimiter.bracket", "@bracketCounting"], + [/\}/, "delimiter.bracket", "@pop"], + { include: "common" } + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1134.8c5472d2.js b/assets/js/1134.8c5472d2.js new file mode 100644 index 00000000000..f7ebb3fd2b6 --- /dev/null +++ b/assets/js/1134.8c5472d2.js @@ -0,0 +1,2 @@ +/*! For license information please see 1134.8c5472d2.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1134,6717],{41134:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>r,language:()=>i});var o=n(96717),r=o.conf,i={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:o.language.operators,symbols:o.language.symbols,escapes:o.language.escapes,digits:o.language.digits,octaldigits:o.language.octaldigits,binarydigits:o.language.binarydigits,hexdigits:o.language.hexdigits,regexpctl:o.language.regexpctl,regexpesc:o.language.regexpesc,tokenizer:o.language.tokenizer}},96717:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>d,language:()=>u});var o,r,i=n(15030),s=Object.defineProperty,a=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,l=(e,t,n,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of c(t))g.call(e,r)||r===n||s(e,r,{get:()=>t[r],enumerable:!(o=a(t,r))||o.enumerable});return e},p={};l(p,o=i,"default"),r&&l(r,o,"default");var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:p.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:p.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:p.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:p.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},u={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}}}}]); \ No newline at end of file diff --git a/assets/js/1134.8c5472d2.js.LICENSE.txt b/assets/js/1134.8c5472d2.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1134.8c5472d2.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1147.5c68f082.js b/assets/js/1147.5c68f082.js new file mode 100644 index 00000000000..aec82eca2c1 --- /dev/null +++ b/assets/js/1147.5c68f082.js @@ -0,0 +1,247 @@ +"use strict"; +exports.id = 1147; +exports.ids = [1147]; +exports.modules = { + +/***/ 21147: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/coffee/coffee.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + blockComment: ["###", "###"], + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*#region\\b"), + end: new RegExp("^\\s*#endregion\\b") + } + } +}; +var language = { + defaultToken: "", + ignoreCase: true, + tokenPostfix: ".coffee", + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + regEx: /\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/, + keywords: [ + "and", + "or", + "is", + "isnt", + "not", + "on", + "yes", + "@", + "no", + "off", + "true", + "false", + "null", + "this", + "new", + "delete", + "typeof", + "in", + "instanceof", + "return", + "throw", + "break", + "continue", + "debugger", + "if", + "else", + "switch", + "for", + "while", + "do", + "try", + "catch", + "finally", + "class", + "extends", + "super", + "undefined", + "then", + "unless", + "until", + "loop", + "of", + "by", + "when" + ], + symbols: /[=>{r.r(n),r.d(n,{conf:()=>t,language:()=>s});var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".coffee",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:["and","or","is","isnt","not","on","yes","@","no","off","true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","else","switch","for","while","do","try","catch","finally","class","extends","super","undefined","then","unless","until","loop","of","by","when"],symbols:/[=>{e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var o=e(87462),a=(e(67294),e(3905));e(45475);const i={title:"Type Annotations",slug:"/types",description:"Learn how to add Flow type annotations to your code: Primitives, Objects, Functions, Classes, and more."},s=void 0,r={unversionedId:"types/index",id:"types/index",title:"Type Annotations",description:"Learn how to add Flow type annotations to your code: Primitives, Objects, Functions, Classes, and more.",source:"@site/docs/types/index.md",sourceDirName:"types",slug:"/types",permalink:"/en/docs/types",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/index.md",tags:[],version:"current",frontMatter:{title:"Type Annotations",slug:"/types",description:"Learn how to add Flow type annotations to your code: Primitives, Objects, Functions, Classes, and more."},sidebar:"docsSidebar",previous:{title:"FAQ",permalink:"/en/docs/faq"},next:{title:"Primitive Types",permalink:"/en/docs/types/primitives"}},l={},c=[],d={toc:c};function m(n){let{components:t,...e}=n;return(0,a.mdx)("wrapper",(0,o.Z)({},d,e,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Adding type annotations is an important part of your interaction with Flow."),(0,a.mdx)("p",null,"Flow has a powerful ability to infer the types of your programs. The majority\nFor example, you don't have to produce annotations for common patterns like ",(0,a.mdx)("inlineCode",{parentName:"p"},"Array.map"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'["foo", "bar"].map(s => ( // s is inferred to have type string\n s.length\n));\n')),(0,a.mdx)("p",null,"Still, there are places where you'll want to add types."),(0,a.mdx)("p",null,"Imagine the following ",(0,a.mdx)("inlineCode",{parentName:"p"},"concat")," function for concatenating two strings together."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":17,"endLine":1,"endColumn":17,"description":"Missing an annotation on `a`. [missing-local-annot]"},{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Missing an annotation on `b`. [missing-local-annot]"}]','[{"startLine":1,"startColumn":17,"endLine":1,"endColumn":17,"description":"Missing':!0,an:!0,annotation:!0,on:!0,"`a`.":!0,'[missing-local-annot]"},{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Missing':!0,"`b`.":!0,'[missing-local-annot]"}]':!0},"function concat(a, b) {\n return a + b;\n}\n")),(0,a.mdx)("p",null,"You need to add annotations on parameters of ",(0,a.mdx)("inlineCode",{parentName:"p"},"concat"),", so that Flow can type\ncheck its body. Now you'll get a warning from Flow if you are calling this\nfunction with unexpected types."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":8,"endLine":6,"endColumn":8,"description":"Cannot call `concat` with `1` bound to `a` because number [1] is incompatible with string [2]. [incompatible-call]"},{"startLine":6,"startColumn":11,"endLine":6,"endColumn":11,"description":"Cannot call `concat` with `2` bound to `b` because number [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":6,"startColumn":8,"endLine":6,"endColumn":8,"description":"Cannot':!0,call:!0,"`concat`":!0,with:!0,"`1`":!0,bound:!0,to:!0,"`a`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"},{"startLine":6,"startColumn":11,"endLine":6,"endColumn":11,"description":"Cannot':!0,"`2`":!0,"`b`":!0,'[incompatible-call]"}]':!0},'function concat(a: string, b: string) {\n return a + b;\n}\n\nconcat("A", "B"); // Works!\nconcat(1, 2); // Error!\n')),(0,a.mdx)("p",null,"This guide will teach you the syntax and semantics of all the different types\nyou can have in Flow."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1156.13b411ab.js b/assets/js/1156.13b411ab.js new file mode 100644 index 00000000000..9645ea935c4 --- /dev/null +++ b/assets/js/1156.13b411ab.js @@ -0,0 +1,1370 @@ +"use strict"; +exports.id = 1156; +exports.ids = [1156]; +exports.modules = { + +/***/ 1156: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/solidity/solidity.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "{", close: "}", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".sol", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" }, + { token: "delimiter.angle", open: "<", close: ">" } + ], + keywords: [ + "pragma", + "solidity", + "contract", + "library", + "using", + "struct", + "function", + "modifier", + "constructor", + "address", + "string", + "bool", + "Int", + "Uint", + "Byte", + "Fixed", + "Ufixed", + "int", + "int8", + "int16", + "int24", + "int32", + "int40", + "int48", + "int56", + "int64", + "int72", + "int80", + "int88", + "int96", + "int104", + "int112", + "int120", + "int128", + "int136", + "int144", + "int152", + "int160", + "int168", + "int176", + "int184", + "int192", + "int200", + "int208", + "int216", + "int224", + "int232", + "int240", + "int248", + "int256", + "uint", + "uint8", + "uint16", + "uint24", + "uint32", + "uint40", + "uint48", + "uint56", + "uint64", + "uint72", + "uint80", + "uint88", + "uint96", + "uint104", + "uint112", + "uint120", + "uint128", + "uint136", + "uint144", + "uint152", + "uint160", + "uint168", + "uint176", + "uint184", + "uint192", + "uint200", + "uint208", + "uint216", + "uint224", + "uint232", + "uint240", + "uint248", + "uint256", + "byte", + "bytes", + "bytes1", + "bytes2", + "bytes3", + "bytes4", + "bytes5", + "bytes6", + "bytes7", + "bytes8", + "bytes9", + "bytes10", + "bytes11", + "bytes12", + "bytes13", + "bytes14", + "bytes15", + "bytes16", + "bytes17", + "bytes18", + "bytes19", + "bytes20", + "bytes21", + "bytes22", + "bytes23", + "bytes24", + "bytes25", + "bytes26", + "bytes27", + "bytes28", + "bytes29", + "bytes30", + "bytes31", + "bytes32", + "fixed", + "fixed0x8", + "fixed0x16", + "fixed0x24", + "fixed0x32", + "fixed0x40", + "fixed0x48", + "fixed0x56", + "fixed0x64", + "fixed0x72", + "fixed0x80", + "fixed0x88", + "fixed0x96", + "fixed0x104", + "fixed0x112", + "fixed0x120", + "fixed0x128", + "fixed0x136", + "fixed0x144", + "fixed0x152", + "fixed0x160", + "fixed0x168", + "fixed0x176", + "fixed0x184", + "fixed0x192", + "fixed0x200", + "fixed0x208", + "fixed0x216", + "fixed0x224", + "fixed0x232", + "fixed0x240", + "fixed0x248", + "fixed0x256", + "fixed8x8", + "fixed8x16", + "fixed8x24", + "fixed8x32", + "fixed8x40", + "fixed8x48", + "fixed8x56", + "fixed8x64", + "fixed8x72", + "fixed8x80", + "fixed8x88", + "fixed8x96", + "fixed8x104", + "fixed8x112", + "fixed8x120", + "fixed8x128", + "fixed8x136", + "fixed8x144", + "fixed8x152", + "fixed8x160", + "fixed8x168", + "fixed8x176", + "fixed8x184", + "fixed8x192", + "fixed8x200", + "fixed8x208", + "fixed8x216", + "fixed8x224", + "fixed8x232", + "fixed8x240", + "fixed8x248", + "fixed16x8", + "fixed16x16", + "fixed16x24", + "fixed16x32", + "fixed16x40", + "fixed16x48", + "fixed16x56", + "fixed16x64", + "fixed16x72", + "fixed16x80", + "fixed16x88", + "fixed16x96", + "fixed16x104", + "fixed16x112", + "fixed16x120", + "fixed16x128", + "fixed16x136", + "fixed16x144", + "fixed16x152", + "fixed16x160", + "fixed16x168", + "fixed16x176", + "fixed16x184", + "fixed16x192", + "fixed16x200", + "fixed16x208", + "fixed16x216", + "fixed16x224", + "fixed16x232", + "fixed16x240", + "fixed24x8", + "fixed24x16", + "fixed24x24", + "fixed24x32", + "fixed24x40", + "fixed24x48", + "fixed24x56", + "fixed24x64", + "fixed24x72", + "fixed24x80", + "fixed24x88", + "fixed24x96", + "fixed24x104", + "fixed24x112", + "fixed24x120", + "fixed24x128", + "fixed24x136", + "fixed24x144", + "fixed24x152", + "fixed24x160", + "fixed24x168", + "fixed24x176", + "fixed24x184", + "fixed24x192", + "fixed24x200", + "fixed24x208", + "fixed24x216", + "fixed24x224", + "fixed24x232", + "fixed32x8", + "fixed32x16", + "fixed32x24", + "fixed32x32", + "fixed32x40", + "fixed32x48", + "fixed32x56", + "fixed32x64", + "fixed32x72", + "fixed32x80", + "fixed32x88", + "fixed32x96", + "fixed32x104", + "fixed32x112", + "fixed32x120", + "fixed32x128", + "fixed32x136", + "fixed32x144", + "fixed32x152", + "fixed32x160", + "fixed32x168", + "fixed32x176", + "fixed32x184", + "fixed32x192", + "fixed32x200", + "fixed32x208", + "fixed32x216", + "fixed32x224", + "fixed40x8", + "fixed40x16", + "fixed40x24", + "fixed40x32", + "fixed40x40", + "fixed40x48", + "fixed40x56", + "fixed40x64", + "fixed40x72", + "fixed40x80", + "fixed40x88", + "fixed40x96", + "fixed40x104", + "fixed40x112", + "fixed40x120", + "fixed40x128", + "fixed40x136", + "fixed40x144", + "fixed40x152", + "fixed40x160", + "fixed40x168", + "fixed40x176", + "fixed40x184", + "fixed40x192", + "fixed40x200", + "fixed40x208", + "fixed40x216", + "fixed48x8", + "fixed48x16", + "fixed48x24", + "fixed48x32", + "fixed48x40", + "fixed48x48", + "fixed48x56", + "fixed48x64", + "fixed48x72", + "fixed48x80", + "fixed48x88", + "fixed48x96", + "fixed48x104", + "fixed48x112", + "fixed48x120", + "fixed48x128", + "fixed48x136", + "fixed48x144", + "fixed48x152", + "fixed48x160", + "fixed48x168", + "fixed48x176", + "fixed48x184", + "fixed48x192", + "fixed48x200", + "fixed48x208", + "fixed56x8", + "fixed56x16", + "fixed56x24", + "fixed56x32", + "fixed56x40", + "fixed56x48", + "fixed56x56", + "fixed56x64", + "fixed56x72", + "fixed56x80", + "fixed56x88", + "fixed56x96", + "fixed56x104", + "fixed56x112", + "fixed56x120", + "fixed56x128", + "fixed56x136", + "fixed56x144", + "fixed56x152", + "fixed56x160", + "fixed56x168", + "fixed56x176", + "fixed56x184", + "fixed56x192", + "fixed56x200", + "fixed64x8", + "fixed64x16", + "fixed64x24", + "fixed64x32", + "fixed64x40", + "fixed64x48", + "fixed64x56", + "fixed64x64", + "fixed64x72", + "fixed64x80", + "fixed64x88", + "fixed64x96", + "fixed64x104", + "fixed64x112", + "fixed64x120", + "fixed64x128", + "fixed64x136", + "fixed64x144", + "fixed64x152", + "fixed64x160", + "fixed64x168", + "fixed64x176", + "fixed64x184", + "fixed64x192", + "fixed72x8", + "fixed72x16", + "fixed72x24", + "fixed72x32", + "fixed72x40", + "fixed72x48", + "fixed72x56", + "fixed72x64", + "fixed72x72", + "fixed72x80", + "fixed72x88", + "fixed72x96", + "fixed72x104", + "fixed72x112", + "fixed72x120", + "fixed72x128", + "fixed72x136", + "fixed72x144", + "fixed72x152", + "fixed72x160", + "fixed72x168", + "fixed72x176", + "fixed72x184", + "fixed80x8", + "fixed80x16", + "fixed80x24", + "fixed80x32", + "fixed80x40", + "fixed80x48", + "fixed80x56", + "fixed80x64", + "fixed80x72", + "fixed80x80", + "fixed80x88", + "fixed80x96", + "fixed80x104", + "fixed80x112", + "fixed80x120", + "fixed80x128", + "fixed80x136", + "fixed80x144", + "fixed80x152", + "fixed80x160", + "fixed80x168", + "fixed80x176", + "fixed88x8", + "fixed88x16", + "fixed88x24", + "fixed88x32", + "fixed88x40", + "fixed88x48", + "fixed88x56", + "fixed88x64", + "fixed88x72", + "fixed88x80", + "fixed88x88", + "fixed88x96", + "fixed88x104", + "fixed88x112", + "fixed88x120", + "fixed88x128", + "fixed88x136", + "fixed88x144", + "fixed88x152", + "fixed88x160", + "fixed88x168", + "fixed96x8", + "fixed96x16", + "fixed96x24", + "fixed96x32", + "fixed96x40", + "fixed96x48", + "fixed96x56", + "fixed96x64", + "fixed96x72", + "fixed96x80", + "fixed96x88", + "fixed96x96", + "fixed96x104", + "fixed96x112", + "fixed96x120", + "fixed96x128", + "fixed96x136", + "fixed96x144", + "fixed96x152", + "fixed96x160", + "fixed104x8", + "fixed104x16", + "fixed104x24", + "fixed104x32", + "fixed104x40", + "fixed104x48", + "fixed104x56", + "fixed104x64", + "fixed104x72", + "fixed104x80", + "fixed104x88", + "fixed104x96", + "fixed104x104", + "fixed104x112", + "fixed104x120", + "fixed104x128", + "fixed104x136", + "fixed104x144", + "fixed104x152", + "fixed112x8", + "fixed112x16", + "fixed112x24", + "fixed112x32", + "fixed112x40", + "fixed112x48", + "fixed112x56", + "fixed112x64", + "fixed112x72", + "fixed112x80", + "fixed112x88", + "fixed112x96", + "fixed112x104", + "fixed112x112", + "fixed112x120", + "fixed112x128", + "fixed112x136", + "fixed112x144", + "fixed120x8", + "fixed120x16", + "fixed120x24", + "fixed120x32", + "fixed120x40", + "fixed120x48", + "fixed120x56", + "fixed120x64", + "fixed120x72", + "fixed120x80", + "fixed120x88", + "fixed120x96", + "fixed120x104", + "fixed120x112", + "fixed120x120", + "fixed120x128", + "fixed120x136", + "fixed128x8", + "fixed128x16", + "fixed128x24", + "fixed128x32", + "fixed128x40", + "fixed128x48", + "fixed128x56", + "fixed128x64", + "fixed128x72", + "fixed128x80", + "fixed128x88", + "fixed128x96", + "fixed128x104", + "fixed128x112", + "fixed128x120", + "fixed128x128", + "fixed136x8", + "fixed136x16", + "fixed136x24", + "fixed136x32", + "fixed136x40", + "fixed136x48", + "fixed136x56", + "fixed136x64", + "fixed136x72", + "fixed136x80", + "fixed136x88", + "fixed136x96", + "fixed136x104", + "fixed136x112", + "fixed136x120", + "fixed144x8", + "fixed144x16", + "fixed144x24", + "fixed144x32", + "fixed144x40", + "fixed144x48", + "fixed144x56", + "fixed144x64", + "fixed144x72", + "fixed144x80", + "fixed144x88", + "fixed144x96", + "fixed144x104", + "fixed144x112", + "fixed152x8", + "fixed152x16", + "fixed152x24", + "fixed152x32", + "fixed152x40", + "fixed152x48", + "fixed152x56", + "fixed152x64", + "fixed152x72", + "fixed152x80", + "fixed152x88", + "fixed152x96", + "fixed152x104", + "fixed160x8", + "fixed160x16", + "fixed160x24", + "fixed160x32", + "fixed160x40", + "fixed160x48", + "fixed160x56", + "fixed160x64", + "fixed160x72", + "fixed160x80", + "fixed160x88", + "fixed160x96", + "fixed168x8", + "fixed168x16", + "fixed168x24", + "fixed168x32", + "fixed168x40", + "fixed168x48", + "fixed168x56", + "fixed168x64", + "fixed168x72", + "fixed168x80", + "fixed168x88", + "fixed176x8", + "fixed176x16", + "fixed176x24", + "fixed176x32", + "fixed176x40", + "fixed176x48", + "fixed176x56", + "fixed176x64", + "fixed176x72", + "fixed176x80", + "fixed184x8", + "fixed184x16", + "fixed184x24", + "fixed184x32", + "fixed184x40", + "fixed184x48", + "fixed184x56", + "fixed184x64", + "fixed184x72", + "fixed192x8", + "fixed192x16", + "fixed192x24", + "fixed192x32", + "fixed192x40", + "fixed192x48", + "fixed192x56", + "fixed192x64", + "fixed200x8", + "fixed200x16", + "fixed200x24", + "fixed200x32", + "fixed200x40", + "fixed200x48", + "fixed200x56", + "fixed208x8", + "fixed208x16", + "fixed208x24", + "fixed208x32", + "fixed208x40", + "fixed208x48", + "fixed216x8", + "fixed216x16", + "fixed216x24", + "fixed216x32", + "fixed216x40", + "fixed224x8", + "fixed224x16", + "fixed224x24", + "fixed224x32", + "fixed232x8", + "fixed232x16", + "fixed232x24", + "fixed240x8", + "fixed240x16", + "fixed248x8", + "ufixed", + "ufixed0x8", + "ufixed0x16", + "ufixed0x24", + "ufixed0x32", + "ufixed0x40", + "ufixed0x48", + "ufixed0x56", + "ufixed0x64", + "ufixed0x72", + "ufixed0x80", + "ufixed0x88", + "ufixed0x96", + "ufixed0x104", + "ufixed0x112", + "ufixed0x120", + "ufixed0x128", + "ufixed0x136", + "ufixed0x144", + "ufixed0x152", + "ufixed0x160", + "ufixed0x168", + "ufixed0x176", + "ufixed0x184", + "ufixed0x192", + "ufixed0x200", + "ufixed0x208", + "ufixed0x216", + "ufixed0x224", + "ufixed0x232", + "ufixed0x240", + "ufixed0x248", + "ufixed0x256", + "ufixed8x8", + "ufixed8x16", + "ufixed8x24", + "ufixed8x32", + "ufixed8x40", + "ufixed8x48", + "ufixed8x56", + "ufixed8x64", + "ufixed8x72", + "ufixed8x80", + "ufixed8x88", + "ufixed8x96", + "ufixed8x104", + "ufixed8x112", + "ufixed8x120", + "ufixed8x128", + "ufixed8x136", + "ufixed8x144", + "ufixed8x152", + "ufixed8x160", + "ufixed8x168", + "ufixed8x176", + "ufixed8x184", + "ufixed8x192", + "ufixed8x200", + "ufixed8x208", + "ufixed8x216", + "ufixed8x224", + "ufixed8x232", + "ufixed8x240", + "ufixed8x248", + "ufixed16x8", + "ufixed16x16", + "ufixed16x24", + "ufixed16x32", + "ufixed16x40", + "ufixed16x48", + "ufixed16x56", + "ufixed16x64", + "ufixed16x72", + "ufixed16x80", + "ufixed16x88", + "ufixed16x96", + "ufixed16x104", + "ufixed16x112", + "ufixed16x120", + "ufixed16x128", + "ufixed16x136", + "ufixed16x144", + "ufixed16x152", + "ufixed16x160", + "ufixed16x168", + "ufixed16x176", + "ufixed16x184", + "ufixed16x192", + "ufixed16x200", + "ufixed16x208", + "ufixed16x216", + "ufixed16x224", + "ufixed16x232", + "ufixed16x240", + "ufixed24x8", + "ufixed24x16", + "ufixed24x24", + "ufixed24x32", + "ufixed24x40", + "ufixed24x48", + "ufixed24x56", + "ufixed24x64", + "ufixed24x72", + "ufixed24x80", + "ufixed24x88", + "ufixed24x96", + "ufixed24x104", + "ufixed24x112", + "ufixed24x120", + "ufixed24x128", + "ufixed24x136", + "ufixed24x144", + "ufixed24x152", + "ufixed24x160", + "ufixed24x168", + "ufixed24x176", + "ufixed24x184", + "ufixed24x192", + "ufixed24x200", + "ufixed24x208", + "ufixed24x216", + "ufixed24x224", + "ufixed24x232", + "ufixed32x8", + "ufixed32x16", + "ufixed32x24", + "ufixed32x32", + "ufixed32x40", + "ufixed32x48", + "ufixed32x56", + "ufixed32x64", + "ufixed32x72", + "ufixed32x80", + "ufixed32x88", + "ufixed32x96", + "ufixed32x104", + "ufixed32x112", + "ufixed32x120", + "ufixed32x128", + "ufixed32x136", + "ufixed32x144", + "ufixed32x152", + "ufixed32x160", + "ufixed32x168", + "ufixed32x176", + "ufixed32x184", + "ufixed32x192", + "ufixed32x200", + "ufixed32x208", + "ufixed32x216", + "ufixed32x224", + "ufixed40x8", + "ufixed40x16", + "ufixed40x24", + "ufixed40x32", + "ufixed40x40", + "ufixed40x48", + "ufixed40x56", + "ufixed40x64", + "ufixed40x72", + "ufixed40x80", + "ufixed40x88", + "ufixed40x96", + "ufixed40x104", + "ufixed40x112", + "ufixed40x120", + "ufixed40x128", + "ufixed40x136", + "ufixed40x144", + "ufixed40x152", + "ufixed40x160", + "ufixed40x168", + "ufixed40x176", + "ufixed40x184", + "ufixed40x192", + "ufixed40x200", + "ufixed40x208", + "ufixed40x216", + "ufixed48x8", + "ufixed48x16", + "ufixed48x24", + "ufixed48x32", + "ufixed48x40", + "ufixed48x48", + "ufixed48x56", + "ufixed48x64", + "ufixed48x72", + "ufixed48x80", + "ufixed48x88", + "ufixed48x96", + "ufixed48x104", + "ufixed48x112", + "ufixed48x120", + "ufixed48x128", + "ufixed48x136", + "ufixed48x144", + "ufixed48x152", + "ufixed48x160", + "ufixed48x168", + "ufixed48x176", + "ufixed48x184", + "ufixed48x192", + "ufixed48x200", + "ufixed48x208", + "ufixed56x8", + "ufixed56x16", + "ufixed56x24", + "ufixed56x32", + "ufixed56x40", + "ufixed56x48", + "ufixed56x56", + "ufixed56x64", + "ufixed56x72", + "ufixed56x80", + "ufixed56x88", + "ufixed56x96", + "ufixed56x104", + "ufixed56x112", + "ufixed56x120", + "ufixed56x128", + "ufixed56x136", + "ufixed56x144", + "ufixed56x152", + "ufixed56x160", + "ufixed56x168", + "ufixed56x176", + "ufixed56x184", + "ufixed56x192", + "ufixed56x200", + "ufixed64x8", + "ufixed64x16", + "ufixed64x24", + "ufixed64x32", + "ufixed64x40", + "ufixed64x48", + "ufixed64x56", + "ufixed64x64", + "ufixed64x72", + "ufixed64x80", + "ufixed64x88", + "ufixed64x96", + "ufixed64x104", + "ufixed64x112", + "ufixed64x120", + "ufixed64x128", + "ufixed64x136", + "ufixed64x144", + "ufixed64x152", + "ufixed64x160", + "ufixed64x168", + "ufixed64x176", + "ufixed64x184", + "ufixed64x192", + "ufixed72x8", + "ufixed72x16", + "ufixed72x24", + "ufixed72x32", + "ufixed72x40", + "ufixed72x48", + "ufixed72x56", + "ufixed72x64", + "ufixed72x72", + "ufixed72x80", + "ufixed72x88", + "ufixed72x96", + "ufixed72x104", + "ufixed72x112", + "ufixed72x120", + "ufixed72x128", + "ufixed72x136", + "ufixed72x144", + "ufixed72x152", + "ufixed72x160", + "ufixed72x168", + "ufixed72x176", + "ufixed72x184", + "ufixed80x8", + "ufixed80x16", + "ufixed80x24", + "ufixed80x32", + "ufixed80x40", + "ufixed80x48", + "ufixed80x56", + "ufixed80x64", + "ufixed80x72", + "ufixed80x80", + "ufixed80x88", + "ufixed80x96", + "ufixed80x104", + "ufixed80x112", + "ufixed80x120", + "ufixed80x128", + "ufixed80x136", + "ufixed80x144", + "ufixed80x152", + "ufixed80x160", + "ufixed80x168", + "ufixed80x176", + "ufixed88x8", + "ufixed88x16", + "ufixed88x24", + "ufixed88x32", + "ufixed88x40", + "ufixed88x48", + "ufixed88x56", + "ufixed88x64", + "ufixed88x72", + "ufixed88x80", + "ufixed88x88", + "ufixed88x96", + "ufixed88x104", + "ufixed88x112", + "ufixed88x120", + "ufixed88x128", + "ufixed88x136", + "ufixed88x144", + "ufixed88x152", + "ufixed88x160", + "ufixed88x168", + "ufixed96x8", + "ufixed96x16", + "ufixed96x24", + "ufixed96x32", + "ufixed96x40", + "ufixed96x48", + "ufixed96x56", + "ufixed96x64", + "ufixed96x72", + "ufixed96x80", + "ufixed96x88", + "ufixed96x96", + "ufixed96x104", + "ufixed96x112", + "ufixed96x120", + "ufixed96x128", + "ufixed96x136", + "ufixed96x144", + "ufixed96x152", + "ufixed96x160", + "ufixed104x8", + "ufixed104x16", + "ufixed104x24", + "ufixed104x32", + "ufixed104x40", + "ufixed104x48", + "ufixed104x56", + "ufixed104x64", + "ufixed104x72", + "ufixed104x80", + "ufixed104x88", + "ufixed104x96", + "ufixed104x104", + "ufixed104x112", + "ufixed104x120", + "ufixed104x128", + "ufixed104x136", + "ufixed104x144", + "ufixed104x152", + "ufixed112x8", + "ufixed112x16", + "ufixed112x24", + "ufixed112x32", + "ufixed112x40", + "ufixed112x48", + "ufixed112x56", + "ufixed112x64", + "ufixed112x72", + "ufixed112x80", + "ufixed112x88", + "ufixed112x96", + "ufixed112x104", + "ufixed112x112", + "ufixed112x120", + "ufixed112x128", + "ufixed112x136", + "ufixed112x144", + "ufixed120x8", + "ufixed120x16", + "ufixed120x24", + "ufixed120x32", + "ufixed120x40", + "ufixed120x48", + "ufixed120x56", + "ufixed120x64", + "ufixed120x72", + "ufixed120x80", + "ufixed120x88", + "ufixed120x96", + "ufixed120x104", + "ufixed120x112", + "ufixed120x120", + "ufixed120x128", + "ufixed120x136", + "ufixed128x8", + "ufixed128x16", + "ufixed128x24", + "ufixed128x32", + "ufixed128x40", + "ufixed128x48", + "ufixed128x56", + "ufixed128x64", + "ufixed128x72", + "ufixed128x80", + "ufixed128x88", + "ufixed128x96", + "ufixed128x104", + "ufixed128x112", + "ufixed128x120", + "ufixed128x128", + "ufixed136x8", + "ufixed136x16", + "ufixed136x24", + "ufixed136x32", + "ufixed136x40", + "ufixed136x48", + "ufixed136x56", + "ufixed136x64", + "ufixed136x72", + "ufixed136x80", + "ufixed136x88", + "ufixed136x96", + "ufixed136x104", + "ufixed136x112", + "ufixed136x120", + "ufixed144x8", + "ufixed144x16", + "ufixed144x24", + "ufixed144x32", + "ufixed144x40", + "ufixed144x48", + "ufixed144x56", + "ufixed144x64", + "ufixed144x72", + "ufixed144x80", + "ufixed144x88", + "ufixed144x96", + "ufixed144x104", + "ufixed144x112", + "ufixed152x8", + "ufixed152x16", + "ufixed152x24", + "ufixed152x32", + "ufixed152x40", + "ufixed152x48", + "ufixed152x56", + "ufixed152x64", + "ufixed152x72", + "ufixed152x80", + "ufixed152x88", + "ufixed152x96", + "ufixed152x104", + "ufixed160x8", + "ufixed160x16", + "ufixed160x24", + "ufixed160x32", + "ufixed160x40", + "ufixed160x48", + "ufixed160x56", + "ufixed160x64", + "ufixed160x72", + "ufixed160x80", + "ufixed160x88", + "ufixed160x96", + "ufixed168x8", + "ufixed168x16", + "ufixed168x24", + "ufixed168x32", + "ufixed168x40", + "ufixed168x48", + "ufixed168x56", + "ufixed168x64", + "ufixed168x72", + "ufixed168x80", + "ufixed168x88", + "ufixed176x8", + "ufixed176x16", + "ufixed176x24", + "ufixed176x32", + "ufixed176x40", + "ufixed176x48", + "ufixed176x56", + "ufixed176x64", + "ufixed176x72", + "ufixed176x80", + "ufixed184x8", + "ufixed184x16", + "ufixed184x24", + "ufixed184x32", + "ufixed184x40", + "ufixed184x48", + "ufixed184x56", + "ufixed184x64", + "ufixed184x72", + "ufixed192x8", + "ufixed192x16", + "ufixed192x24", + "ufixed192x32", + "ufixed192x40", + "ufixed192x48", + "ufixed192x56", + "ufixed192x64", + "ufixed200x8", + "ufixed200x16", + "ufixed200x24", + "ufixed200x32", + "ufixed200x40", + "ufixed200x48", + "ufixed200x56", + "ufixed208x8", + "ufixed208x16", + "ufixed208x24", + "ufixed208x32", + "ufixed208x40", + "ufixed208x48", + "ufixed216x8", + "ufixed216x16", + "ufixed216x24", + "ufixed216x32", + "ufixed216x40", + "ufixed224x8", + "ufixed224x16", + "ufixed224x24", + "ufixed224x32", + "ufixed232x8", + "ufixed232x16", + "ufixed232x24", + "ufixed240x8", + "ufixed240x16", + "ufixed248x8", + "event", + "enum", + "let", + "mapping", + "private", + "public", + "external", + "inherited", + "payable", + "true", + "false", + "var", + "import", + "constant", + "if", + "else", + "for", + "else", + "for", + "while", + "do", + "break", + "continue", + "throw", + "returns", + "return", + "suicide", + "new", + "is", + "this", + "super" + ], + operators: [ + "=", + ">", + "<", + "!", + "~", + "?", + ":", + "==", + "<=", + ">=", + "!=", + "&&", + "||", + "++", + "--", + "+", + "-", + "*", + "/", + "&", + "|", + "^", + "%", + "<<", + ">>", + ">>>", + "+=", + "-=", + "*=", + "/=", + "&=", + "|=", + "^=", + "%=", + "<<=", + ">>=", + ">>>=" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/, "number.hex"], + [/0[0-7']*[0-7](@integersuffix)/, "number.octal"], + [/0[bB][0-1']*[0-1](@integersuffix)/, "number.binary"], + [/\d[\d']*\d(@integersuffix)/, "number"], + [/\d(@integersuffix)/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@doccomment"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + doccomment: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1156.414b1ab6.js b/assets/js/1156.414b1ab6.js new file mode 100644 index 00000000000..aa4f1972a47 --- /dev/null +++ b/assets/js/1156.414b1ab6.js @@ -0,0 +1,2 @@ +/*! For license information please see 1156.414b1ab6.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1156],{1156:(x,e,i)=>{i.r(e),i.d(e,{conf:()=>d,language:()=>f});var d={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},f={defaultToken:"",tokenPostfix:".sol",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["pragma","solidity","contract","library","using","struct","function","modifier","constructor","address","string","bool","Int","Uint","Byte","Fixed","Ufixed","int","int8","int16","int24","int32","int40","int48","int56","int64","int72","int80","int88","int96","int104","int112","int120","int128","int136","int144","int152","int160","int168","int176","int184","int192","int200","int208","int216","int224","int232","int240","int248","int256","uint","uint8","uint16","uint24","uint32","uint40","uint48","uint56","uint64","uint72","uint80","uint88","uint96","uint104","uint112","uint120","uint128","uint136","uint144","uint152","uint160","uint168","uint176","uint184","uint192","uint200","uint208","uint216","uint224","uint232","uint240","uint248","uint256","byte","bytes","bytes1","bytes2","bytes3","bytes4","bytes5","bytes6","bytes7","bytes8","bytes9","bytes10","bytes11","bytes12","bytes13","bytes14","bytes15","bytes16","bytes17","bytes18","bytes19","bytes20","bytes21","bytes22","bytes23","bytes24","bytes25","bytes26","bytes27","bytes28","bytes29","bytes30","bytes31","bytes32","fixed","fixed0x8","fixed0x16","fixed0x24","fixed0x32","fixed0x40","fixed0x48","fixed0x56","fixed0x64","fixed0x72","fixed0x80","fixed0x88","fixed0x96","fixed0x104","fixed0x112","fixed0x120","fixed0x128","fixed0x136","fixed0x144","fixed0x152","fixed0x160","fixed0x168","fixed0x176","fixed0x184","fixed0x192","fixed0x200","fixed0x208","fixed0x216","fixed0x224","fixed0x232","fixed0x240","fixed0x248","fixed0x256","fixed8x8","fixed8x16","fixed8x24","fixed8x32","fixed8x40","fixed8x48","fixed8x56","fixed8x64","fixed8x72","fixed8x80","fixed8x88","fixed8x96","fixed8x104","fixed8x112","fixed8x120","fixed8x128","fixed8x136","fixed8x144","fixed8x152","fixed8x160","fixed8x168","fixed8x176","fixed8x184","fixed8x192","fixed8x200","fixed8x208","fixed8x216","fixed8x224","fixed8x232","fixed8x240","fixed8x248","fixed16x8","fixed16x16","fixed16x24","fixed16x32","fixed16x40","fixed16x48","fixed16x56","fixed16x64","fixed16x72","fixed16x80","fixed16x88","fixed16x96","fixed16x104","fixed16x112","fixed16x120","fixed16x128","fixed16x136","fixed16x144","fixed16x152","fixed16x160","fixed16x168","fixed16x176","fixed16x184","fixed16x192","fixed16x200","fixed16x208","fixed16x216","fixed16x224","fixed16x232","fixed16x240","fixed24x8","fixed24x16","fixed24x24","fixed24x32","fixed24x40","fixed24x48","fixed24x56","fixed24x64","fixed24x72","fixed24x80","fixed24x88","fixed24x96","fixed24x104","fixed24x112","fixed24x120","fixed24x128","fixed24x136","fixed24x144","fixed24x152","fixed24x160","fixed24x168","fixed24x176","fixed24x184","fixed24x192","fixed24x200","fixed24x208","fixed24x216","fixed24x224","fixed24x232","fixed32x8","fixed32x16","fixed32x24","fixed32x32","fixed32x40","fixed32x48","fixed32x56","fixed32x64","fixed32x72","fixed32x80","fixed32x88","fixed32x96","fixed32x104","fixed32x112","fixed32x120","fixed32x128","fixed32x136","fixed32x144","fixed32x152","fixed32x160","fixed32x168","fixed32x176","fixed32x184","fixed32x192","fixed32x200","fixed32x208","fixed32x216","fixed32x224","fixed40x8","fixed40x16","fixed40x24","fixed40x32","fixed40x40","fixed40x48","fixed40x56","fixed40x64","fixed40x72","fixed40x80","fixed40x88","fixed40x96","fixed40x104","fixed40x112","fixed40x120","fixed40x128","fixed40x136","fixed40x144","fixed40x152","fixed40x160","fixed40x168","fixed40x176","fixed40x184","fixed40x192","fixed40x200","fixed40x208","fixed40x216","fixed48x8","fixed48x16","fixed48x24","fixed48x32","fixed48x40","fixed48x48","fixed48x56","fixed48x64","fixed48x72","fixed48x80","fixed48x88","fixed48x96","fixed48x104","fixed48x112","fixed48x120","fixed48x128","fixed48x136","fixed48x144","fixed48x152","fixed48x160","fixed48x168","fixed48x176","fixed48x184","fixed48x192","fixed48x200","fixed48x208","fixed56x8","fixed56x16","fixed56x24","fixed56x32","fixed56x40","fixed56x48","fixed56x56","fixed56x64","fixed56x72","fixed56x80","fixed56x88","fixed56x96","fixed56x104","fixed56x112","fixed56x120","fixed56x128","fixed56x136","fixed56x144","fixed56x152","fixed56x160","fixed56x168","fixed56x176","fixed56x184","fixed56x192","fixed56x200","fixed64x8","fixed64x16","fixed64x24","fixed64x32","fixed64x40","fixed64x48","fixed64x56","fixed64x64","fixed64x72","fixed64x80","fixed64x88","fixed64x96","fixed64x104","fixed64x112","fixed64x120","fixed64x128","fixed64x136","fixed64x144","fixed64x152","fixed64x160","fixed64x168","fixed64x176","fixed64x184","fixed64x192","fixed72x8","fixed72x16","fixed72x24","fixed72x32","fixed72x40","fixed72x48","fixed72x56","fixed72x64","fixed72x72","fixed72x80","fixed72x88","fixed72x96","fixed72x104","fixed72x112","fixed72x120","fixed72x128","fixed72x136","fixed72x144","fixed72x152","fixed72x160","fixed72x168","fixed72x176","fixed72x184","fixed80x8","fixed80x16","fixed80x24","fixed80x32","fixed80x40","fixed80x48","fixed80x56","fixed80x64","fixed80x72","fixed80x80","fixed80x88","fixed80x96","fixed80x104","fixed80x112","fixed80x120","fixed80x128","fixed80x136","fixed80x144","fixed80x152","fixed80x160","fixed80x168","fixed80x176","fixed88x8","fixed88x16","fixed88x24","fixed88x32","fixed88x40","fixed88x48","fixed88x56","fixed88x64","fixed88x72","fixed88x80","fixed88x88","fixed88x96","fixed88x104","fixed88x112","fixed88x120","fixed88x128","fixed88x136","fixed88x144","fixed88x152","fixed88x160","fixed88x168","fixed96x8","fixed96x16","fixed96x24","fixed96x32","fixed96x40","fixed96x48","fixed96x56","fixed96x64","fixed96x72","fixed96x80","fixed96x88","fixed96x96","fixed96x104","fixed96x112","fixed96x120","fixed96x128","fixed96x136","fixed96x144","fixed96x152","fixed96x160","fixed104x8","fixed104x16","fixed104x24","fixed104x32","fixed104x40","fixed104x48","fixed104x56","fixed104x64","fixed104x72","fixed104x80","fixed104x88","fixed104x96","fixed104x104","fixed104x112","fixed104x120","fixed104x128","fixed104x136","fixed104x144","fixed104x152","fixed112x8","fixed112x16","fixed112x24","fixed112x32","fixed112x40","fixed112x48","fixed112x56","fixed112x64","fixed112x72","fixed112x80","fixed112x88","fixed112x96","fixed112x104","fixed112x112","fixed112x120","fixed112x128","fixed112x136","fixed112x144","fixed120x8","fixed120x16","fixed120x24","fixed120x32","fixed120x40","fixed120x48","fixed120x56","fixed120x64","fixed120x72","fixed120x80","fixed120x88","fixed120x96","fixed120x104","fixed120x112","fixed120x120","fixed120x128","fixed120x136","fixed128x8","fixed128x16","fixed128x24","fixed128x32","fixed128x40","fixed128x48","fixed128x56","fixed128x64","fixed128x72","fixed128x80","fixed128x88","fixed128x96","fixed128x104","fixed128x112","fixed128x120","fixed128x128","fixed136x8","fixed136x16","fixed136x24","fixed136x32","fixed136x40","fixed136x48","fixed136x56","fixed136x64","fixed136x72","fixed136x80","fixed136x88","fixed136x96","fixed136x104","fixed136x112","fixed136x120","fixed144x8","fixed144x16","fixed144x24","fixed144x32","fixed144x40","fixed144x48","fixed144x56","fixed144x64","fixed144x72","fixed144x80","fixed144x88","fixed144x96","fixed144x104","fixed144x112","fixed152x8","fixed152x16","fixed152x24","fixed152x32","fixed152x40","fixed152x48","fixed152x56","fixed152x64","fixed152x72","fixed152x80","fixed152x88","fixed152x96","fixed152x104","fixed160x8","fixed160x16","fixed160x24","fixed160x32","fixed160x40","fixed160x48","fixed160x56","fixed160x64","fixed160x72","fixed160x80","fixed160x88","fixed160x96","fixed168x8","fixed168x16","fixed168x24","fixed168x32","fixed168x40","fixed168x48","fixed168x56","fixed168x64","fixed168x72","fixed168x80","fixed168x88","fixed176x8","fixed176x16","fixed176x24","fixed176x32","fixed176x40","fixed176x48","fixed176x56","fixed176x64","fixed176x72","fixed176x80","fixed184x8","fixed184x16","fixed184x24","fixed184x32","fixed184x40","fixed184x48","fixed184x56","fixed184x64","fixed184x72","fixed192x8","fixed192x16","fixed192x24","fixed192x32","fixed192x40","fixed192x48","fixed192x56","fixed192x64","fixed200x8","fixed200x16","fixed200x24","fixed200x32","fixed200x40","fixed200x48","fixed200x56","fixed208x8","fixed208x16","fixed208x24","fixed208x32","fixed208x40","fixed208x48","fixed216x8","fixed216x16","fixed216x24","fixed216x32","fixed216x40","fixed224x8","fixed224x16","fixed224x24","fixed224x32","fixed232x8","fixed232x16","fixed232x24","fixed240x8","fixed240x16","fixed248x8","ufixed","ufixed0x8","ufixed0x16","ufixed0x24","ufixed0x32","ufixed0x40","ufixed0x48","ufixed0x56","ufixed0x64","ufixed0x72","ufixed0x80","ufixed0x88","ufixed0x96","ufixed0x104","ufixed0x112","ufixed0x120","ufixed0x128","ufixed0x136","ufixed0x144","ufixed0x152","ufixed0x160","ufixed0x168","ufixed0x176","ufixed0x184","ufixed0x192","ufixed0x200","ufixed0x208","ufixed0x216","ufixed0x224","ufixed0x232","ufixed0x240","ufixed0x248","ufixed0x256","ufixed8x8","ufixed8x16","ufixed8x24","ufixed8x32","ufixed8x40","ufixed8x48","ufixed8x56","ufixed8x64","ufixed8x72","ufixed8x80","ufixed8x88","ufixed8x96","ufixed8x104","ufixed8x112","ufixed8x120","ufixed8x128","ufixed8x136","ufixed8x144","ufixed8x152","ufixed8x160","ufixed8x168","ufixed8x176","ufixed8x184","ufixed8x192","ufixed8x200","ufixed8x208","ufixed8x216","ufixed8x224","ufixed8x232","ufixed8x240","ufixed8x248","ufixed16x8","ufixed16x16","ufixed16x24","ufixed16x32","ufixed16x40","ufixed16x48","ufixed16x56","ufixed16x64","ufixed16x72","ufixed16x80","ufixed16x88","ufixed16x96","ufixed16x104","ufixed16x112","ufixed16x120","ufixed16x128","ufixed16x136","ufixed16x144","ufixed16x152","ufixed16x160","ufixed16x168","ufixed16x176","ufixed16x184","ufixed16x192","ufixed16x200","ufixed16x208","ufixed16x216","ufixed16x224","ufixed16x232","ufixed16x240","ufixed24x8","ufixed24x16","ufixed24x24","ufixed24x32","ufixed24x40","ufixed24x48","ufixed24x56","ufixed24x64","ufixed24x72","ufixed24x80","ufixed24x88","ufixed24x96","ufixed24x104","ufixed24x112","ufixed24x120","ufixed24x128","ufixed24x136","ufixed24x144","ufixed24x152","ufixed24x160","ufixed24x168","ufixed24x176","ufixed24x184","ufixed24x192","ufixed24x200","ufixed24x208","ufixed24x216","ufixed24x224","ufixed24x232","ufixed32x8","ufixed32x16","ufixed32x24","ufixed32x32","ufixed32x40","ufixed32x48","ufixed32x56","ufixed32x64","ufixed32x72","ufixed32x80","ufixed32x88","ufixed32x96","ufixed32x104","ufixed32x112","ufixed32x120","ufixed32x128","ufixed32x136","ufixed32x144","ufixed32x152","ufixed32x160","ufixed32x168","ufixed32x176","ufixed32x184","ufixed32x192","ufixed32x200","ufixed32x208","ufixed32x216","ufixed32x224","ufixed40x8","ufixed40x16","ufixed40x24","ufixed40x32","ufixed40x40","ufixed40x48","ufixed40x56","ufixed40x64","ufixed40x72","ufixed40x80","ufixed40x88","ufixed40x96","ufixed40x104","ufixed40x112","ufixed40x120","ufixed40x128","ufixed40x136","ufixed40x144","ufixed40x152","ufixed40x160","ufixed40x168","ufixed40x176","ufixed40x184","ufixed40x192","ufixed40x200","ufixed40x208","ufixed40x216","ufixed48x8","ufixed48x16","ufixed48x24","ufixed48x32","ufixed48x40","ufixed48x48","ufixed48x56","ufixed48x64","ufixed48x72","ufixed48x80","ufixed48x88","ufixed48x96","ufixed48x104","ufixed48x112","ufixed48x120","ufixed48x128","ufixed48x136","ufixed48x144","ufixed48x152","ufixed48x160","ufixed48x168","ufixed48x176","ufixed48x184","ufixed48x192","ufixed48x200","ufixed48x208","ufixed56x8","ufixed56x16","ufixed56x24","ufixed56x32","ufixed56x40","ufixed56x48","ufixed56x56","ufixed56x64","ufixed56x72","ufixed56x80","ufixed56x88","ufixed56x96","ufixed56x104","ufixed56x112","ufixed56x120","ufixed56x128","ufixed56x136","ufixed56x144","ufixed56x152","ufixed56x160","ufixed56x168","ufixed56x176","ufixed56x184","ufixed56x192","ufixed56x200","ufixed64x8","ufixed64x16","ufixed64x24","ufixed64x32","ufixed64x40","ufixed64x48","ufixed64x56","ufixed64x64","ufixed64x72","ufixed64x80","ufixed64x88","ufixed64x96","ufixed64x104","ufixed64x112","ufixed64x120","ufixed64x128","ufixed64x136","ufixed64x144","ufixed64x152","ufixed64x160","ufixed64x168","ufixed64x176","ufixed64x184","ufixed64x192","ufixed72x8","ufixed72x16","ufixed72x24","ufixed72x32","ufixed72x40","ufixed72x48","ufixed72x56","ufixed72x64","ufixed72x72","ufixed72x80","ufixed72x88","ufixed72x96","ufixed72x104","ufixed72x112","ufixed72x120","ufixed72x128","ufixed72x136","ufixed72x144","ufixed72x152","ufixed72x160","ufixed72x168","ufixed72x176","ufixed72x184","ufixed80x8","ufixed80x16","ufixed80x24","ufixed80x32","ufixed80x40","ufixed80x48","ufixed80x56","ufixed80x64","ufixed80x72","ufixed80x80","ufixed80x88","ufixed80x96","ufixed80x104","ufixed80x112","ufixed80x120","ufixed80x128","ufixed80x136","ufixed80x144","ufixed80x152","ufixed80x160","ufixed80x168","ufixed80x176","ufixed88x8","ufixed88x16","ufixed88x24","ufixed88x32","ufixed88x40","ufixed88x48","ufixed88x56","ufixed88x64","ufixed88x72","ufixed88x80","ufixed88x88","ufixed88x96","ufixed88x104","ufixed88x112","ufixed88x120","ufixed88x128","ufixed88x136","ufixed88x144","ufixed88x152","ufixed88x160","ufixed88x168","ufixed96x8","ufixed96x16","ufixed96x24","ufixed96x32","ufixed96x40","ufixed96x48","ufixed96x56","ufixed96x64","ufixed96x72","ufixed96x80","ufixed96x88","ufixed96x96","ufixed96x104","ufixed96x112","ufixed96x120","ufixed96x128","ufixed96x136","ufixed96x144","ufixed96x152","ufixed96x160","ufixed104x8","ufixed104x16","ufixed104x24","ufixed104x32","ufixed104x40","ufixed104x48","ufixed104x56","ufixed104x64","ufixed104x72","ufixed104x80","ufixed104x88","ufixed104x96","ufixed104x104","ufixed104x112","ufixed104x120","ufixed104x128","ufixed104x136","ufixed104x144","ufixed104x152","ufixed112x8","ufixed112x16","ufixed112x24","ufixed112x32","ufixed112x40","ufixed112x48","ufixed112x56","ufixed112x64","ufixed112x72","ufixed112x80","ufixed112x88","ufixed112x96","ufixed112x104","ufixed112x112","ufixed112x120","ufixed112x128","ufixed112x136","ufixed112x144","ufixed120x8","ufixed120x16","ufixed120x24","ufixed120x32","ufixed120x40","ufixed120x48","ufixed120x56","ufixed120x64","ufixed120x72","ufixed120x80","ufixed120x88","ufixed120x96","ufixed120x104","ufixed120x112","ufixed120x120","ufixed120x128","ufixed120x136","ufixed128x8","ufixed128x16","ufixed128x24","ufixed128x32","ufixed128x40","ufixed128x48","ufixed128x56","ufixed128x64","ufixed128x72","ufixed128x80","ufixed128x88","ufixed128x96","ufixed128x104","ufixed128x112","ufixed128x120","ufixed128x128","ufixed136x8","ufixed136x16","ufixed136x24","ufixed136x32","ufixed136x40","ufixed136x48","ufixed136x56","ufixed136x64","ufixed136x72","ufixed136x80","ufixed136x88","ufixed136x96","ufixed136x104","ufixed136x112","ufixed136x120","ufixed144x8","ufixed144x16","ufixed144x24","ufixed144x32","ufixed144x40","ufixed144x48","ufixed144x56","ufixed144x64","ufixed144x72","ufixed144x80","ufixed144x88","ufixed144x96","ufixed144x104","ufixed144x112","ufixed152x8","ufixed152x16","ufixed152x24","ufixed152x32","ufixed152x40","ufixed152x48","ufixed152x56","ufixed152x64","ufixed152x72","ufixed152x80","ufixed152x88","ufixed152x96","ufixed152x104","ufixed160x8","ufixed160x16","ufixed160x24","ufixed160x32","ufixed160x40","ufixed160x48","ufixed160x56","ufixed160x64","ufixed160x72","ufixed160x80","ufixed160x88","ufixed160x96","ufixed168x8","ufixed168x16","ufixed168x24","ufixed168x32","ufixed168x40","ufixed168x48","ufixed168x56","ufixed168x64","ufixed168x72","ufixed168x80","ufixed168x88","ufixed176x8","ufixed176x16","ufixed176x24","ufixed176x32","ufixed176x40","ufixed176x48","ufixed176x56","ufixed176x64","ufixed176x72","ufixed176x80","ufixed184x8","ufixed184x16","ufixed184x24","ufixed184x32","ufixed184x40","ufixed184x48","ufixed184x56","ufixed184x64","ufixed184x72","ufixed192x8","ufixed192x16","ufixed192x24","ufixed192x32","ufixed192x40","ufixed192x48","ufixed192x56","ufixed192x64","ufixed200x8","ufixed200x16","ufixed200x24","ufixed200x32","ufixed200x40","ufixed200x48","ufixed200x56","ufixed208x8","ufixed208x16","ufixed208x24","ufixed208x32","ufixed208x40","ufixed208x48","ufixed216x8","ufixed216x16","ufixed216x24","ufixed216x32","ufixed216x40","ufixed224x8","ufixed224x16","ufixed224x24","ufixed224x32","ufixed232x8","ufixed232x16","ufixed232x24","ufixed240x8","ufixed240x16","ufixed248x8","event","enum","let","mapping","private","public","external","inherited","payable","true","false","var","import","constant","if","else","for","else","for","while","do","break","continue","throw","returns","return","suicide","new","is","this","super"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/1156.414b1ab6.js.LICENSE.txt b/assets/js/1156.414b1ab6.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1156.414b1ab6.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1209.76276011.js b/assets/js/1209.76276011.js new file mode 100644 index 00000000000..452b1fe994e --- /dev/null +++ b/assets/js/1209.76276011.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1209],{41209:(e,t,l)=>{l.r(t),l.d(t,{assets:()=>s,contentTitle:()=>n,default:()=>u,frontMatter:()=>a,metadata:()=>r,toc:()=>m});var i=l(87462),o=(l(67294),l(3905));l(45475);const a={title:"Sublime Text",slug:"/editors/sublime-text"},n=void 0,r={unversionedId:"editors/sublime-text",id:"editors/sublime-text",title:"Sublime Text",description:"Flow For Sublime Text 2 and 3",source:"@site/docs/editors/sublime-text.md",sourceDirName:"editors",slug:"/editors/sublime-text",permalink:"/en/docs/editors/sublime-text",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/sublime-text.md",tags:[],version:"current",frontMatter:{title:"Sublime Text",slug:"/editors/sublime-text"},sidebar:"docsSidebar",previous:{title:"Visual Studio Code",permalink:"/en/docs/editors/vscode"},next:{title:"Vim",permalink:"/en/docs/editors/vim"}},s={},m=[{value:"Flow For Sublime Text 2 and 3",id:"toc-flow-for-sublime-text-2-and-3",level:3},{value:"SublimeLinter-flow",id:"toc-sublimelinter-flow",level:3}],d={toc:m};function u(e){let{components:t,...l}=e;return(0,o.mdx)("wrapper",(0,i.Z)({},d,l,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("h3",{id:"toc-flow-for-sublime-text-2-and-3"},"Flow For Sublime Text 2 and 3"),(0,o.mdx)("p",null,(0,o.mdx)("a",{parentName:"p",href:"https://www.sublimetext.com/"},"Sublime Text")," can be integrated with Flow by using ",(0,o.mdx)("a",{parentName:"p",href:"https://packagecontrol.io"},"Package Control")),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"Install the Package Control plugin if you don't have it"),(0,o.mdx)("li",{parentName:"ul"},"Press Ctrl+Shift+P to bring up the Command Palette (or use Tools > Command Palette menu)"),(0,o.mdx)("li",{parentName:"ul"},"Select Package Control: Install Package"),(0,o.mdx)("li",{parentName:"ul"},"Type 'Flow' to find 'Flow for Sublime Text 2 and 3'"),(0,o.mdx)("li",{parentName:"ul"},"Select 'Flow for Sublime Text 2 and 3' to install")),(0,o.mdx)("h3",{id:"toc-sublimelinter-flow"},"SublimeLinter-flow"),(0,o.mdx)("p",null,"You may also wish to install a popular SublimeLinter plugin for Flow like ",(0,o.mdx)("a",{parentName:"p",href:"https://packagecontrol.io/packages/SublimeLinter-flow"},"SublimeLinter-flow"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1217.6123c62f.js b/assets/js/1217.6123c62f.js new file mode 100644 index 00000000000..d48487d72fa --- /dev/null +++ b/assets/js/1217.6123c62f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1217],{91217:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>h});var s=o(87462),n=(o(67294),o(3905));const a={author:"Gabe Levi",hide_table_of_contents:!0},r=void 0,i={permalink:"/blog/2015/07/29/Version-0.14.0",source:"@site/blog/2015-07-29-Version-0.14.0.md",title:"Version-0.14.0",description:"It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.",date:"2015-07-29T00:00:00.000Z",formattedDate:"July 29, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Version-0.15.0",permalink:"/blog/2015/09/10/Version-0.15.0"},nextItem:{title:"Announcing Disjoint Unions",permalink:"/blog/2015/07/03/Disjoint-Unions"}},l={authorsImageUrls:[void 0]},h=[],u={toc:h};function c(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,s.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release."),(0,n.mdx)("p",null,"So here is Flow v0.14.0! Check out the ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0140"},"Changelog")," for the canonical list of what has changed."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1259.b4096c55.js b/assets/js/1259.b4096c55.js new file mode 100644 index 00000000000..25f34de8680 --- /dev/null +++ b/assets/js/1259.b4096c55.js @@ -0,0 +1,317 @@ +"use strict"; +exports.id = 1259; +exports.ids = [1259]; +exports.modules = { + +/***/ 91259: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/redis/redis.ts +var conf = { + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".redis", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "APPEND", + "AUTH", + "BGREWRITEAOF", + "BGSAVE", + "BITCOUNT", + "BITFIELD", + "BITOP", + "BITPOS", + "BLPOP", + "BRPOP", + "BRPOPLPUSH", + "CLIENT", + "KILL", + "LIST", + "GETNAME", + "PAUSE", + "REPLY", + "SETNAME", + "CLUSTER", + "ADDSLOTS", + "COUNT-FAILURE-REPORTS", + "COUNTKEYSINSLOT", + "DELSLOTS", + "FAILOVER", + "FORGET", + "GETKEYSINSLOT", + "INFO", + "KEYSLOT", + "MEET", + "NODES", + "REPLICATE", + "RESET", + "SAVECONFIG", + "SET-CONFIG-EPOCH", + "SETSLOT", + "SLAVES", + "SLOTS", + "COMMAND", + "COUNT", + "GETKEYS", + "CONFIG", + "GET", + "REWRITE", + "SET", + "RESETSTAT", + "DBSIZE", + "DEBUG", + "OBJECT", + "SEGFAULT", + "DECR", + "DECRBY", + "DEL", + "DISCARD", + "DUMP", + "ECHO", + "EVAL", + "EVALSHA", + "EXEC", + "EXISTS", + "EXPIRE", + "EXPIREAT", + "FLUSHALL", + "FLUSHDB", + "GEOADD", + "GEOHASH", + "GEOPOS", + "GEODIST", + "GEORADIUS", + "GEORADIUSBYMEMBER", + "GETBIT", + "GETRANGE", + "GETSET", + "HDEL", + "HEXISTS", + "HGET", + "HGETALL", + "HINCRBY", + "HINCRBYFLOAT", + "HKEYS", + "HLEN", + "HMGET", + "HMSET", + "HSET", + "HSETNX", + "HSTRLEN", + "HVALS", + "INCR", + "INCRBY", + "INCRBYFLOAT", + "KEYS", + "LASTSAVE", + "LINDEX", + "LINSERT", + "LLEN", + "LPOP", + "LPUSH", + "LPUSHX", + "LRANGE", + "LREM", + "LSET", + "LTRIM", + "MGET", + "MIGRATE", + "MONITOR", + "MOVE", + "MSET", + "MSETNX", + "MULTI", + "PERSIST", + "PEXPIRE", + "PEXPIREAT", + "PFADD", + "PFCOUNT", + "PFMERGE", + "PING", + "PSETEX", + "PSUBSCRIBE", + "PUBSUB", + "PTTL", + "PUBLISH", + "PUNSUBSCRIBE", + "QUIT", + "RANDOMKEY", + "READONLY", + "READWRITE", + "RENAME", + "RENAMENX", + "RESTORE", + "ROLE", + "RPOP", + "RPOPLPUSH", + "RPUSH", + "RPUSHX", + "SADD", + "SAVE", + "SCARD", + "SCRIPT", + "FLUSH", + "LOAD", + "SDIFF", + "SDIFFSTORE", + "SELECT", + "SETBIT", + "SETEX", + "SETNX", + "SETRANGE", + "SHUTDOWN", + "SINTER", + "SINTERSTORE", + "SISMEMBER", + "SLAVEOF", + "SLOWLOG", + "SMEMBERS", + "SMOVE", + "SORT", + "SPOP", + "SRANDMEMBER", + "SREM", + "STRLEN", + "SUBSCRIBE", + "SUNION", + "SUNIONSTORE", + "SWAPDB", + "SYNC", + "TIME", + "TOUCH", + "TTL", + "TYPE", + "UNSUBSCRIBE", + "UNLINK", + "UNWATCH", + "WAIT", + "WATCH", + "ZADD", + "ZCARD", + "ZCOUNT", + "ZINCRBY", + "ZINTERSTORE", + "ZLEXCOUNT", + "ZRANGE", + "ZRANGEBYLEX", + "ZREVRANGEBYLEX", + "ZRANGEBYSCORE", + "ZRANK", + "ZREM", + "ZREMRANGEBYLEX", + "ZREMRANGEBYRANK", + "ZREMRANGEBYSCORE", + "ZREVRANGE", + "ZREVRANGEBYSCORE", + "ZREVRANK", + "ZSCORE", + "ZUNIONSTORE", + "SCAN", + "SSCAN", + "HSCAN", + "ZSCAN" + ], + operators: [], + builtinFunctions: [], + builtinVariables: [], + pseudoColumns: [], + tokenizer: { + root: [ + { include: "@whitespace" }, + { include: "@pseudoColumns" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@scopes" }, + [/[;,.]/, "delimiter"], + [/[()]/, "@brackets"], + [ + /[\w@#$]+/, + { + cases: { + "@keywords": "keyword", + "@operators": "operator", + "@builtinVariables": "predefined", + "@builtinFunctions": "predefined", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + pseudoColumns: [ + [ + /[$][A-Za-z_][\w@#$]*/, + { + cases: { + "@pseudoColumns": "predefined", + "@default": "identifier" + } + } + ] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [ + [/'/, { token: "string", next: "@string" }], + [/"/, { token: "string.double", next: "@stringDouble" }] + ], + string: [ + [/[^']+/, "string"], + [/''/, "string"], + [/'/, { token: "string", next: "@pop" }] + ], + stringDouble: [ + [/[^"]+/, "string.double"], + [/""/, "string.double"], + [/"/, { token: "string.double", next: "@pop" }] + ], + scopes: [] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1259.ec012273.js b/assets/js/1259.ec012273.js new file mode 100644 index 00000000000..c9e50680768 --- /dev/null +++ b/assets/js/1259.ec012273.js @@ -0,0 +1,2 @@ +/*! For license information please see 1259.ec012273.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1259],{91259:(E,S,e)=>{e.r(S),e.d(S,{conf:()=>T,language:()=>R});var T={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},R={defaultToken:"",tokenPostfix:".redis",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["APPEND","AUTH","BGREWRITEAOF","BGSAVE","BITCOUNT","BITFIELD","BITOP","BITPOS","BLPOP","BRPOP","BRPOPLPUSH","CLIENT","KILL","LIST","GETNAME","PAUSE","REPLY","SETNAME","CLUSTER","ADDSLOTS","COUNT-FAILURE-REPORTS","COUNTKEYSINSLOT","DELSLOTS","FAILOVER","FORGET","GETKEYSINSLOT","INFO","KEYSLOT","MEET","NODES","REPLICATE","RESET","SAVECONFIG","SET-CONFIG-EPOCH","SETSLOT","SLAVES","SLOTS","COMMAND","COUNT","GETKEYS","CONFIG","GET","REWRITE","SET","RESETSTAT","DBSIZE","DEBUG","OBJECT","SEGFAULT","DECR","DECRBY","DEL","DISCARD","DUMP","ECHO","EVAL","EVALSHA","EXEC","EXISTS","EXPIRE","EXPIREAT","FLUSHALL","FLUSHDB","GEOADD","GEOHASH","GEOPOS","GEODIST","GEORADIUS","GEORADIUSBYMEMBER","GETBIT","GETRANGE","GETSET","HDEL","HEXISTS","HGET","HGETALL","HINCRBY","HINCRBYFLOAT","HKEYS","HLEN","HMGET","HMSET","HSET","HSETNX","HSTRLEN","HVALS","INCR","INCRBY","INCRBYFLOAT","KEYS","LASTSAVE","LINDEX","LINSERT","LLEN","LPOP","LPUSH","LPUSHX","LRANGE","LREM","LSET","LTRIM","MGET","MIGRATE","MONITOR","MOVE","MSET","MSETNX","MULTI","PERSIST","PEXPIRE","PEXPIREAT","PFADD","PFCOUNT","PFMERGE","PING","PSETEX","PSUBSCRIBE","PUBSUB","PTTL","PUBLISH","PUNSUBSCRIBE","QUIT","RANDOMKEY","READONLY","READWRITE","RENAME","RENAMENX","RESTORE","ROLE","RPOP","RPOPLPUSH","RPUSH","RPUSHX","SADD","SAVE","SCARD","SCRIPT","FLUSH","LOAD","SDIFF","SDIFFSTORE","SELECT","SETBIT","SETEX","SETNX","SETRANGE","SHUTDOWN","SINTER","SINTERSTORE","SISMEMBER","SLAVEOF","SLOWLOG","SMEMBERS","SMOVE","SORT","SPOP","SRANDMEMBER","SREM","STRLEN","SUBSCRIBE","SUNION","SUNIONSTORE","SWAPDB","SYNC","TIME","TOUCH","TTL","TYPE","UNSUBSCRIBE","UNLINK","UNWATCH","WAIT","WATCH","ZADD","ZCARD","ZCOUNT","ZINCRBY","ZINTERSTORE","ZLEXCOUNT","ZRANGE","ZRANGEBYLEX","ZREVRANGEBYLEX","ZRANGEBYSCORE","ZRANK","ZREM","ZREMRANGEBYLEX","ZREMRANGEBYRANK","ZREMRANGEBYSCORE","ZREVRANGE","ZREVRANGEBYSCORE","ZREVRANK","ZSCORE","ZUNIONSTORE","SCAN","SSCAN","HSCAN","ZSCAN"],operators:[],builtinFunctions:[],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/assets/js/1259.ec012273.js.LICENSE.txt b/assets/js/1259.ec012273.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1259.ec012273.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1313.d10cc958.js b/assets/js/1313.d10cc958.js new file mode 100644 index 00000000000..86823395d13 --- /dev/null +++ b/assets/js/1313.d10cc958.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1313],{61313:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var n=o(87462),i=(o(67294),o(3905));const a={title:"Improved handling of the empty object in Flow","short-title":"Improvements to empty object",author:"George Zahariev","medium-link":"https://medium.com/flow-type/improved-handling-of-the-empty-object-in-flow-ead91887e40c"},r=void 0,s={permalink:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow",source:"@site/blog/2022-10-20-Improved-handling-of-the-empty-object-in-Flow.md",title:"Improved handling of the empty object in Flow",description:"Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.",date:"2022-10-20T00:00:00.000Z",formattedDate:"October 20, 2022",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Improved handling of the empty object in Flow","short-title":"Improvements to empty object",author:"George Zahariev","medium-link":"https://medium.com/flow-type/improved-handling-of-the-empty-object-in-flow-ead91887e40c"},prevItem:{title:"Local Type Inference for Flow",permalink:"/blog/2023/01/17/Local-Type-Inference"},nextItem:{title:"Requiring More Annotations to Functions and Classes in Flow",permalink:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes"}},l={authorsImageUrls:[void 0]},d=[],m={toc:d};function p(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,n.Z)({},m,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1345.d7ea927e.js b/assets/js/1345.d7ea927e.js new file mode 100644 index 00000000000..4d890fcb340 --- /dev/null +++ b/assets/js/1345.d7ea927e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1345],{28592:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>m,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var o=a(87462),n=(a(67294),a(3905));const s={author:"Jeff Morrison",hide_table_of_contents:!0},r=void 0,i={permalink:"/blog/2015/09/22/Version-0.16.0",source:"@site/blog/2015-09-22-Version-0.16.0.md",title:"Version-0.16.0",description:"On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!",date:"2015-09-22T00:00:00.000Z",formattedDate:"September 22, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Jeff Morrison"}],frontMatter:{author:"Jeff Morrison",hide_table_of_contents:!0},prevItem:{title:"Version-0.17.0",permalink:"/blog/2015/10/07/Version-0.17.0"},nextItem:{title:"Version-0.15.0",permalink:"/blog/2015/09/10/Version-0.15.0"}},m={authorsImageUrls:[void 0]},l=[],p={toc:l};function d(e){let{components:t,...a}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/samwgoldman"},"@samwgoldman"),")!"),(0,n.mdx)("p",null,"As always, the ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0160"},"Changelog")," is best at summing up the big changes."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1448.3246558a.js b/assets/js/1448.3246558a.js new file mode 100644 index 00000000000..173c6a2d8dc --- /dev/null +++ b/assets/js/1448.3246558a.js @@ -0,0 +1,2 @@ +/*! For license information please see 1448.3246558a.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1448],{11448:(e,o,t)=>{t.r(o),t.d(o,{conf:()=>n,language:()=>s});var n={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}]},s={defaultToken:"",tokenPostfix:".cameligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["abs","assert","block","Bytes","case","Crypto","Current","else","failwith","false","for","fun","if","in","let","let%entry","let%init","List","list","Map","map","match","match%nat","mod","not","operation","Operation","of","record","Set","set","sender","skip","source","String","then","to","true","type","with"],typeKeywords:["int","unit","string","tz","nat","bool"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%","->","<-","&&","||"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/1448.3246558a.js.LICENSE.txt b/assets/js/1448.3246558a.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1448.3246558a.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1448.ee78432f.js b/assets/js/1448.ee78432f.js new file mode 100644 index 00000000000..5318123bb36 --- /dev/null +++ b/assets/js/1448.ee78432f.js @@ -0,0 +1,187 @@ +"use strict"; +exports.id = 1448; +exports.ids = [1448]; +exports.modules = { + +/***/ 11448: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/cameligo/cameligo.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' }, + { open: "(*", close: "*)" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' }, + { open: "(*", close: "*)" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".cameligo", + ignoreCase: true, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + keywords: [ + "abs", + "assert", + "block", + "Bytes", + "case", + "Crypto", + "Current", + "else", + "failwith", + "false", + "for", + "fun", + "if", + "in", + "let", + "let%entry", + "let%init", + "List", + "list", + "Map", + "map", + "match", + "match%nat", + "mod", + "not", + "operation", + "Operation", + "of", + "record", + "Set", + "set", + "sender", + "skip", + "source", + "String", + "then", + "to", + "true", + "type", + "with" + ], + typeKeywords: ["int", "unit", "string", "tz", "nat", "bool"], + operators: [ + "=", + ">", + "<", + "<=", + ">=", + "<>", + ":", + ":=", + "and", + "mod", + "or", + "+", + "-", + "*", + "/", + "@", + "&", + "^", + "%", + "->", + "<-", + "&&", + "||" + ], + symbols: /[=><:@\^&|+\-*\/\^%]+/, + tokenizer: { + root: [ + [ + /[a-zA-Z_][\w]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/\$[0-9a-fA-F]{1,16}/, "number.hex"], + [/\d+/, "number"], + [/[;,.]/, "delimiter"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/'/, "string", "@string"], + [/'[^\\']'/, "string"], + [/'/, "string.invalid"], + [/\#\d+/, "string"] + ], + comment: [ + [/[^\(\*]+/, "comment"], + [/\*\)/, "comment", "@pop"], + [/\(\*/, "comment"] + ], + string: [ + [/[^\\']+/, "string"], + [/\\./, "string.escape.invalid"], + [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\(\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1466.b69bd1b6.js b/assets/js/1466.b69bd1b6.js new file mode 100644 index 00000000000..da2a9b5de70 --- /dev/null +++ b/assets/js/1466.b69bd1b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1466],{11466:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>r,toc:()=>m});var t=a(87462),i=(a(67294),a(3905));const l={title:"Strict Checking of Function Call Arity","short-title":"Strict Function Call Arity",author:"Gabe Levi",hide_table_of_contents:!0},o=void 0,r={permalink:"/blog/2017/05/07/Strict-Function-Call-Arity",source:"@site/blog/2017-05-07-Strict-Function-Call-Arity.md",title:"Strict Checking of Function Call Arity",description:"One of Flow's original goals was to be able to understand idiomatic JavaScript.",date:"2017-05-07T00:00:00.000Z",formattedDate:"May 7, 2017",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Strict Checking of Function Call Arity","short-title":"Strict Function Call Arity",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Opaque Type Aliases",permalink:"/blog/2017/07/27/Opaque-Types"},nextItem:{title:"Introducing Flow-Typed",permalink:"/blog/2016/10/13/Flow-Typed"}},s={authorsImageUrls:[void 0]},m=[{value:"What is arity?",id:"what-is-arity",level:3},{value:"Motivation",id:"motivation",level:3},{value:"Why JavaScript allows extraneous arguments",id:"why-javascript-allows-extraneous-arguments",level:3},{value:"Callbacks",id:"callbacks",level:4},{value:"Stubbing",id:"stubbing",level:4},{value:"Variadic functions using arguments",id:"variadic-functions-using-arguments",level:4},{value:"Changes to Flow",id:"changes-to-flow",level:3},{value:"Calling a function",id:"calling-a-function",level:4},{value:"Function subtyping",id:"function-subtyping",level:4},{value:"Stubbing and variadic functions",id:"stubbing-and-variadic-functions",level:4},{value:"Rollout plan",id:"rollout-plan",level:3},{value:"Why turn this on over two releases?",id:"why-turn-this-on-over-two-releases",level:4},{value:"Why not keep the experimental.strict_call_arity flag?",id:"why-not-keep-the-experimentalstrict_call_arity-flag",level:4},{value:"What do you think?",id:"what-do-you-think",level:3}],u={toc:m};function d(e){let{components:n,...a}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},u,a,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"One of Flow's original goals was to be able to understand idiomatic JavaScript.\nIn JavaScript, you can call a function with more arguments than the function\nexpects. Therefore, Flow never complained about calling a function with\nextraneous arguments."),(0,i.mdx)("p",null,"We are changing this behavior."),(0,i.mdx)("h3",{id:"what-is-arity"},"What is arity?"),(0,i.mdx)("p",null,"A function's ",(0,i.mdx)("em",{parentName:"p"},"arity")," is the number of arguments it expects. Since some functions\nhave optional parameters and some use rest parameters, we can define the\n",(0,i.mdx)("em",{parentName:"p"},"minimum arity")," as the smallest number of arguments it expects and the ",(0,i.mdx)("em",{parentName:"p"},"maximum\narity")," as the largest number of arguments it expects."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function no_args() {} // arity of 0\nfunction two_args(a, b) {} // arity of 2\nfunction optional_args(a, b?) {} // min arity of 1, max arity of 2\nfunction many_args(a, ...rest) {} // min arity of 1, no max arity\n")),(0,i.mdx)("h3",{id:"motivation"},"Motivation"),(0,i.mdx)("p",null,"Consider the following code:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function add(a, b) { return a + b; }\nconst sum = add(1, 1, 1, 1);\n")),(0,i.mdx)("p",null,"The author apparently thought the ",(0,i.mdx)("inlineCode",{parentName:"p"},"add()")," function adds up all its\narguments, and that ",(0,i.mdx)("inlineCode",{parentName:"p"},"sum")," will have the value ",(0,i.mdx)("inlineCode",{parentName:"p"},"4"),". However, only the first two\narguments are summed, and ",(0,i.mdx)("inlineCode",{parentName:"p"},"sum")," actually will have the value ",(0,i.mdx)("inlineCode",{parentName:"p"},"2"),". This is\nobviously a bug, so why doesn't JavaScript or Flow complain?"),(0,i.mdx)("p",null,"And while the error in the above example is easy to see, in real code it's often\na lot harder to notice. For example, what is the value of ",(0,i.mdx)("inlineCode",{parentName:"p"},"total")," here:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'const total = parseInt("10", 2) + parseFloat("10.1", 2);\n')),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},'"10"')," in base 2 is ",(0,i.mdx)("inlineCode",{parentName:"p"},"2")," in decimal and ",(0,i.mdx)("inlineCode",{parentName:"p"},'"10.1"')," in base 2 is ",(0,i.mdx)("inlineCode",{parentName:"p"},"2.5")," in decimal.\nSo the author probably thought that ",(0,i.mdx)("inlineCode",{parentName:"p"},"total")," would be ",(0,i.mdx)("inlineCode",{parentName:"p"},"4.5"),". However, the correct\nanswer is ",(0,i.mdx)("inlineCode",{parentName:"p"},"12.1"),". ",(0,i.mdx)("inlineCode",{parentName:"p"},'parseInt("10", 2)')," does evaluates to ",(0,i.mdx)("inlineCode",{parentName:"p"},"2"),", as expected.\nHowever, ",(0,i.mdx)("inlineCode",{parentName:"p"},'parseFloat("10.1", 2)')," evaluates to ",(0,i.mdx)("inlineCode",{parentName:"p"},"10.1"),". ",(0,i.mdx)("inlineCode",{parentName:"p"},"parseFloat()")," only takes\na single argument. The second argument is ignored!"),(0,i.mdx)("h3",{id:"why-javascript-allows-extraneous-arguments"},"Why JavaScript allows extraneous arguments"),(0,i.mdx)("p",null,"At this point, you might feel like this is just an example of JavaScript making\nterrible life decisions. However, this behavior is very convenient in a bunch of\nsituations!"),(0,i.mdx)("h4",{id:"callbacks"},"Callbacks"),(0,i.mdx)("p",null,"If you couldn't call a function with more arguments than it handles, then\nmapping over an array would look like"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const doubled_arr = [1, 2, 3].map((element, index, arr) => element * 2);\n")),(0,i.mdx)("p",null,"When you call ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array.prototype.map"),", you pass in a callback. For each element in\nthe array, that callback is invoked and passed 3 arguments:"),(0,i.mdx)("ol",null,(0,i.mdx)("li",{parentName:"ol"},"The element"),(0,i.mdx)("li",{parentName:"ol"},"The index of the element"),(0,i.mdx)("li",{parentName:"ol"},"The array over which you're mapping")),(0,i.mdx)("p",null,"However, your callback often only needs to reference the first argument: the\nelement. It's really nice that you can write"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const doubled_arr = [1, 2, 3].map(element => element * 2);\n")),(0,i.mdx)("h4",{id:"stubbing"},"Stubbing"),(0,i.mdx)("p",null,"Sometimes I come across code like this"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'let log = () => {};\nif (DEBUG) {\n log = (message) => console.log(message);\n}\nlog("Hello world");\n')),(0,i.mdx)("p",null,"The idea is that in a development environment, calling ",(0,i.mdx)("inlineCode",{parentName:"p"},"log()")," will output a\nmessage, but in production it does nothing. Since you can call a\nfunction with more arguments than it expects, it is easy to stub out ",(0,i.mdx)("inlineCode",{parentName:"p"},"log()")," in\nproduction."),(0,i.mdx)("h4",{id:"variadic-functions-using-arguments"},"Variadic functions using ",(0,i.mdx)("inlineCode",{parentName:"h4"},"arguments")),(0,i.mdx)("p",null,"A variadic function is a function that can take an indefinite number of\narguments. The old-school way to write variadic functions in JavaScript is by\nusing ",(0,i.mdx)("inlineCode",{parentName:"p"},"arguments"),". For example"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function sum_all() {\n let ret = 0;\n for (let i = 0; i < arguments.length; i++) { ret += arguments[i]; }\n return ret;\n}\nconst total = sum_all(1, 2, 3); // returns 6\n")),(0,i.mdx)("p",null,"For all intents and purposes, ",(0,i.mdx)("inlineCode",{parentName:"p"},"sum_all")," appears like it takes no arguments. So\neven though it appears to have an arity of 0, it is convenient that we can call\nit with more arguments."),(0,i.mdx)("h3",{id:"changes-to-flow"},"Changes to Flow"),(0,i.mdx)("p",null,"We think we have found a compromise which catches the motivating bugs without\nbreaking the convenience of JavaScript."),(0,i.mdx)("h4",{id:"calling-a-function"},"Calling a function"),(0,i.mdx)("p",null,"If a function has a maximum arity of N, then Flow will start complaining if you\ncall it with more than N arguments."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'test:1\n 1: const num = parseFloat("10.5", 2);\n ^ unused function argument\n 19: declare function parseFloat(string: mixed): number;\n ^^^^^^^^^^^^^^^^^^^^^^^ function type expects no more than 1 argument. See lib: /core.js:19\n')),(0,i.mdx)("h4",{id:"function-subtyping"},"Function subtyping"),(0,i.mdx)("p",null,"Flow will not change its function subtyping behavior. A function\nwith a smaller maximum arity is still a subtype of a function with a larger\nmaximum arity. This allows callbacks to still work as before."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"class Array {\n ...\n map(callbackfn: (value: T, index: number, array: Array) => U, thisArg?: any): Array;\n ...\n}\nconst arr = [1,2,3].map(() => 4); // No error, evaluates to [4,4,4]\n")),(0,i.mdx)("p",null,"In this example, ",(0,i.mdx)("inlineCode",{parentName:"p"},"() => number")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"(number, number, Array) => number"),"."),(0,i.mdx)("h4",{id:"stubbing-and-variadic-functions"},"Stubbing and variadic functions"),(0,i.mdx)("p",null,"This will, unfortunately, cause Flow to complain about stubs and variadic\nfunctions which are written using ",(0,i.mdx)("inlineCode",{parentName:"p"},"arguments"),". However, you can fix these by\nusing rest parameters"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"let log (...rest) => {};\n\nfunction sum_all(...rest) {\n let ret = 0;\n for (let i = 0; i < rest.length; i++) { ret += rest[i]; }\n return ret;\n}\n")),(0,i.mdx)("h3",{id:"rollout-plan"},"Rollout plan"),(0,i.mdx)("p",null,"Flow v0.46.0 will ship with strict function call arity turned off by default. It\ncan be enabled via your ",(0,i.mdx)("inlineCode",{parentName:"p"},".flowconfig")," with the flag"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-ini"},"experimental.strict_call_arity=true\n")),(0,i.mdx)("p",null,"Flow v0.47.0 will ship with strict function call arity turned on and the\n",(0,i.mdx)("inlineCode",{parentName:"p"},"experimental.strict_call_arity")," flag will be removed."),(0,i.mdx)("h4",{id:"why-turn-this-on-over-two-releases"},"Why turn this on over two releases?"),(0,i.mdx)("p",null,"This decouples the switch to strict checking of function call arity from the\nrelease."),(0,i.mdx)("h4",{id:"why-not-keep-the-experimentalstrict_call_arity-flag"},"Why not keep the ",(0,i.mdx)("inlineCode",{parentName:"h4"},"experimental.strict_call_arity")," flag?"),(0,i.mdx)("p",null,"This is a pretty core change. If we kept both behaviors, we'd have to test that\neverything works with and without this change. As we add more flags, the number\nof combinations grows exponentially, and Flow's behavior gets harder to reason\nabout. For this reason, we're choosing only one behavior: strict checking of\nfunction call arity."),(0,i.mdx)("h3",{id:"what-do-you-think"},"What do you think?"),(0,i.mdx)("p",null,"This change was motivated by feedback from Flow users. We really appreciate\nall the members of our community who take the time to share their feedback with\nus. This feedback is invaluable and helps us make Flow better, so please keep\nit coming!"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1471.0d410d50.js b/assets/js/1471.0d410d50.js new file mode 100644 index 00000000000..0012bbf1683 --- /dev/null +++ b/assets/js/1471.0d410d50.js @@ -0,0 +1,2 @@ +/*! For license information please see 1471.0d410d50.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1471],{31471:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>s,language:()=>o});var s={comments:{lineComment:"#"}},o={defaultToken:"keyword",ignoreCase:!0,tokenPostfix:".azcli",str:/[^#\s]/,tokenizer:{root:[{include:"@comment"},[/\s-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}]],type:[{include:"@comment"},[/-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":"key.identifier"}}],[/@str+\s*/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}]],comment:[[/#.*$/,{cases:{"@eos":{token:"comment",next:"@popall"}}}]]}}}}]); \ No newline at end of file diff --git a/assets/js/1471.0d410d50.js.LICENSE.txt b/assets/js/1471.0d410d50.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1471.0d410d50.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1471.f4935752.js b/assets/js/1471.f4935752.js new file mode 100644 index 00000000000..47806db1008 --- /dev/null +++ b/assets/js/1471.f4935752.js @@ -0,0 +1,93 @@ +"use strict"; +exports.id = 1471; +exports.ids = [1471]; +exports.modules = { + +/***/ 31471: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/azcli/azcli.ts +var conf = { + comments: { + lineComment: "#" + } +}; +var language = { + defaultToken: "keyword", + ignoreCase: true, + tokenPostfix: ".azcli", + str: /[^#\s]/, + tokenizer: { + root: [ + { include: "@comment" }, + [ + /\s-+@str*\s*/, + { + cases: { + "@eos": { token: "key.identifier", next: "@popall" }, + "@default": { token: "key.identifier", next: "@type" } + } + } + ], + [ + /^-+@str*\s*/, + { + cases: { + "@eos": { token: "key.identifier", next: "@popall" }, + "@default": { token: "key.identifier", next: "@type" } + } + } + ] + ], + type: [ + { include: "@comment" }, + [ + /-+@str*\s*/, + { + cases: { + "@eos": { token: "key.identifier", next: "@popall" }, + "@default": "key.identifier" + } + } + ], + [ + /@str+\s*/, + { + cases: { + "@eos": { token: "string", next: "@popall" }, + "@default": "string" + } + } + ] + ], + comment: [ + [ + /#.*$/, + { + cases: { + "@eos": { token: "comment", next: "@popall" } + } + } + ] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1540.23466b6d.js b/assets/js/1540.23466b6d.js new file mode 100644 index 00000000000..1fad28b12e3 --- /dev/null +++ b/assets/js/1540.23466b6d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1540],{31540:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>m});var a=t(87462),i=(t(67294),t(3905));t(45475);const r={title:"Mixed",slug:"/types/mixed"},l=void 0,s={unversionedId:"types/mixed",id:"types/mixed",title:"Mixed",description:"mixed is the supertype of all types. All values are mixed.",source:"@site/docs/types/mixed.md",sourceDirName:"types",slug:"/types/mixed",permalink:"/en/docs/types/mixed",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/mixed.md",tags:[],version:"current",frontMatter:{title:"Mixed",slug:"/types/mixed"},sidebar:"docsSidebar",previous:{title:"Literal Types",permalink:"/en/docs/types/literals"},next:{title:"Empty",permalink:"/en/docs/types/empty"}},o={},m=[{value:"Anything goes in, Nothing comes out",id:"toc-anything-goes-in-nothing-comes-out",level:2},{value:"Versus any",id:"versus-any",level:2},{value:"Versus empty",id:"versus-empty",level:2}],p={toc:m};function d(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," is the ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/type-hierarchy"},"supertype of all types"),". All values are ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed"),".\nHowever, this means that very few operations are permitted on it, without refining to some more specific type.\nThat's because the valid operations on ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," must be valid for all types."),(0,i.mdx)("p",null,"In general, programs have several different categories of types:"),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},"A single type:")),(0,i.mdx)("p",null,"Here the input value can only be a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function square(n: number) {\n return n * n;\n}\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},"A group of different possible types:")),(0,i.mdx)("p",null,"Here the input value could be either a ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," or a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function stringifyBasicValue(value: string | number) {\n return '' + value;\n}\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},"A type based on another type:")),(0,i.mdx)("p",null,"Here the return type will be the same as the type of whatever value is passed\ninto the function."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity(value: T): T {\n return value;\n}\n")),(0,i.mdx)("p",null,"These three are the most common categories of types. They will make up the\nmajority of the types you'll be writing."),(0,i.mdx)("p",null,"However, there is also a fourth category."),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},"An arbitrary type that could be anything:")),(0,i.mdx)("p",null,"Here the passed in value is an unknown type, it could be any type and the\nfunction would still work."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function getTypeOf(value: mixed): string {\n return typeof value;\n}\n")),(0,i.mdx)("p",null,"These unknown types are less common, but are still useful at times."),(0,i.mdx)("p",null,"You should represent these values with ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed"),"."),(0,i.mdx)("h2",{id:"toc-anything-goes-in-nothing-comes-out"},"Anything goes in, Nothing comes out"),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," will accept any type of value. Strings, numbers, objects, functions\u2013\nanything will work."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function stringify(value: mixed) {\n // ...\n}\n\nstringify("foo");\nstringify(3.14);\nstringify(null);\nstringify({});\n')),(0,i.mdx)("p",null,"When you try to use a value of a ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," type you must first figure out what\nthe actual type is or you'll end up with an error."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":19,"description":"Cannot use operator `+` with operands string [1] and mixed [2] [unsafe-addition]"}]','[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":19,"description":"Cannot':!0,use:!0,operator:!0,"`+`":!0,with:!0,operands:!0,string:!0,"[1]":!0,and:!0,mixed:!0,"[2]":!0,'[unsafe-addition]"}]':!0},'function stringify(value: mixed) {\n return "" + value; // Error!\n}\n\nstringify("foo");\n')),(0,i.mdx)("p",null,"Instead you must ensure the value is a certain type by ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refining")," it."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function stringify(value: mixed) {\n if (typeof value === \'string\') {\n return "" + value; // Works!\n } else {\n return "";\n }\n}\n\nstringify("foo");\n')),(0,i.mdx)("p",null,"Because of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"typeof value === 'string'")," check, Flow knows the ",(0,i.mdx)("inlineCode",{parentName:"p"},"value")," can\nonly be a ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," inside of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"if")," statement. This is known as a\n",(0,i.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refinement"),"."),(0,i.mdx)("h2",{id:"versus-any"},"Versus ",(0,i.mdx)("inlineCode",{parentName:"h2"},"any")),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," is safe, while ",(0,i.mdx)("a",{parentName:"p",href:"../any"},(0,i.mdx)("inlineCode",{parentName:"a"},"any"))," is not. Both accept all values, but ",(0,i.mdx)("inlineCode",{parentName:"p"},"any")," also unsafely allows all operations."),(0,i.mdx)("h2",{id:"versus-empty"},"Versus ",(0,i.mdx)("inlineCode",{parentName:"h2"},"empty")),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," is the opposite of ",(0,i.mdx)("a",{parentName:"p",href:"../empty"},(0,i.mdx)("inlineCode",{parentName:"a"},"empty")),":"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},"Everything is a ",(0,i.mdx)("inlineCode",{parentName:"li"},"mixed"),", but few operations are permitted on it without first refining to a specific type. It is the supertype of all types."),(0,i.mdx)("li",{parentName:"ul"},"Nothing is ",(0,i.mdx)("inlineCode",{parentName:"li"},"empty"),", but any operation is permitted on it. It is the subtype of all types.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1661.a4318a63.js b/assets/js/1661.a4318a63.js new file mode 100644 index 00000000000..c3719c55d64 --- /dev/null +++ b/assets/js/1661.a4318a63.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1661],{91262:(e,l,n)=>{n.d(l,{Z:()=>r});var t=n(67294),o=n(72389);function r(e){let{children:l,fallback:n}=e;return(0,o.default)()?t.createElement(t.Fragment,null,null==l?void 0:l()):null!=n?n:null}},51661:(e,l,n)=>{n.r(l),n.d(l,{default:()=>i});var t=n(67294),o=n(91262),r=n(52263),s=n(89007);n(51854);const a=t.lazy((()=>Promise.all([n.e(532),n.e(2955),n.e(5316)]).then(n.bind(n,75316))));function i(){const e=(0,r.default)(),{siteConfig:l={}}=e;return t.createElement(s.Z,{title:"Try Flow: the Flow Playground",description:l.description,noFooter:!0},t.createElement(o.Z,null,(()=>t.createElement(t.Suspense,{fallback:t.createElement("div",null,"Loading...")},t.createElement(a,{defaultFlowVersion:l.customFields.flowVersion,flowVersions:l.customFields.allFlowVersions})))))}}}]); \ No newline at end of file diff --git a/assets/js/168.4084be54.js b/assets/js/168.4084be54.js new file mode 100644 index 00000000000..a35869ed7f5 --- /dev/null +++ b/assets/js/168.4084be54.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[168],{10168:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var o=n(87462),a=(n(67294),n(3905));const l={title:"Local Type Inference for Flow","short-title":"Local Type Inference",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},r=void 0,i={permalink:"/blog/2023/01/17/Local-Type-Inference",source:"@site/blog/2023-01-17-Local-Type-Inference.md",title:"Local Type Inference for Flow",description:"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.",date:"2023-01-17T00:00:00.000Z",formattedDate:"January 17, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"Sam Zhou"}],frontMatter:{title:"Local Type Inference for Flow","short-title":"Local Type Inference",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},prevItem:{title:"Exact object types by default, by default",permalink:"/blog/2023/02/16/Exact-object-types-by-default-by-default"},nextItem:{title:"Improved handling of the empty object in Flow",permalink:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"}},c={authorsImageUrls:[void 0]},s=[],d={toc:s};function p(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1706.b21a58bf.js b/assets/js/1706.b21a58bf.js new file mode 100644 index 00000000000..bf97dd4953e --- /dev/null +++ b/assets/js/1706.b21a58bf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1706],{1706:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>c,toc:()=>i});var a=o(87462),n=(o(67294),o(3905));const r={title:"On the Roadmap: Exact Objects by Default","short-title":"Exact Objects by Default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/on-the-roadmap-exact-objects-by-default-16b72933c5cf"},s=void 0,c={permalink:"/blog/2018/10/18/Exact-Objects-By-Default",source:"@site/blog/2018-10-18-Exact-Objects-By-Default.md",title:"On the Roadmap: Exact Objects by Default",description:"We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade.",date:"2018-10-18T00:00:00.000Z",formattedDate:"October 18, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"On the Roadmap: Exact Objects by Default","short-title":"Exact Objects by Default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/on-the-roadmap-exact-objects-by-default-16b72933c5cf"},prevItem:{title:"Asking for Required Annotations",permalink:"/blog/2018/10/29/Asking-for-Required-Annotations"},nextItem:{title:"New Flow Errors on Unknown Property Access in Conditionals",permalink:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals"}},l={authorsImageUrls:[void 0]},i=[],d={toc:i};function u(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,a.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/180.49ffb9d3.js b/assets/js/180.49ffb9d3.js new file mode 100644 index 00000000000..88b8f8f01e4 --- /dev/null +++ b/assets/js/180.49ffb9d3.js @@ -0,0 +1,372 @@ +"use strict"; +exports.id = 180; +exports.ids = [180]; +exports.modules = { + +/***/ 90180: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/scala/scala.ts +var conf = { + wordPattern: /(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))") + } + } +}; +var language = { + tokenPostfix: ".scala", + keywords: [ + "asInstanceOf", + "catch", + "class", + "classOf", + "def", + "do", + "else", + "extends", + "finally", + "for", + "foreach", + "forSome", + "if", + "import", + "isInstanceOf", + "macro", + "match", + "new", + "object", + "package", + "return", + "throw", + "trait", + "try", + "type", + "until", + "val", + "var", + "while", + "with", + "yield", + "given", + "enum", + "then" + ], + softKeywords: ["as", "export", "extension", "end", "derives", "on"], + constants: ["true", "false", "null", "this", "super"], + modifiers: [ + "abstract", + "final", + "implicit", + "lazy", + "override", + "private", + "protected", + "sealed" + ], + softModifiers: ["inline", "opaque", "open", "transparent", "using"], + name: /(?:[a-z_$][\w$]*|`[^`]+`)/, + type: /(?:[A-Z][\w$]*)/, + symbols: /[=>))/, ["@brackets", "white", "variable"]], + [ + /@name/, + { + cases: { + "@keywords": "keyword", + "@softKeywords": "keyword", + "@modifiers": "keyword.modifier", + "@softModifiers": "keyword.modifier", + "@constants": { + token: "constant", + next: "@allowMethod" + }, + "@default": { + token: "identifier", + next: "@allowMethod" + } + } + } + ], + [/@type/, "type", "@allowMethod"], + { include: "@whitespace" }, + [/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/, "annotation"], + [/[{(]/, "@brackets"], + [/[})]/, "@brackets", "@allowMethod"], + [/\[/, "operator.square"], + [/](?!\s*(?:va[rl]|def|type)\b)/, "operator.square", "@allowMethod"], + [/]/, "operator.square"], + [/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/, "keyword"], + [/@symbols/, "operator"], + [/[;,\.]/, "delimiter"], + [/'[a-zA-Z$][\w$]*(?!')/, "attribute.name"], + [/'[^\\']'/, "string", "@allowMethod"], + [/(')(@escapes)(')/, ["string", "string.escape", { token: "string", next: "@allowMethod" }]], + [/'/, "string.invalid"] + ], + import: [ + [/;/, "delimiter", "@pop"], + [/^|$/, "", "@pop"], + [/[ \t]+/, "white"], + [/[\n\r]+/, "white", "@pop"], + [/\/\*/, "comment", "@comment"], + [/@name|@type/, "type"], + [/[(){}]/, "@brackets"], + [/[[\]]/, "operator.square"], + [/[\.,]/, "delimiter"] + ], + allowMethod: [ + [/^|$/, "", "@pop"], + [/[ \t]+/, "white"], + [/[\n\r]+/, "white", "@pop"], + [/\/\*/, "comment", "@comment"], + [/(?==>[\s\w([{])/, "keyword", "@pop"], + [ + /(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/, + { + cases: { + "@keywords": { token: "keyword", next: "@pop" }, + "->|<-|>:|<:|<%": { token: "keyword", next: "@pop" }, + "@default": { token: "@rematch", next: "@pop" } + } + } + ], + ["", "", "@pop"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\/\*/, "comment", "@push"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + case: [ + [/\b_\*/, "key"], + [/\b(_|true|false|null|this|super)\b/, "keyword", "@allowMethod"], + [/\bif\b|=>/, "keyword", "@pop"], + [/`[^`]+`/, "identifier", "@allowMethod"], + [/@name/, "variable", "@allowMethod"], + [/:::?|\||@(?![a-z_$])/, "keyword"], + { include: "@root" } + ], + vardef: [ + [/\b_\*/, "key"], + [/\b(_|true|false|null|this|super)\b/, "keyword"], + [/@name/, "variable"], + [/:::?|\||@(?![a-z_$])/, "keyword"], + [/=|:(?!:)/, "operator", "@pop"], + [/$/, "white", "@pop"], + { include: "@root" } + ], + string: [ + [/[^\\"\n\r]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [ + /"/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ] + ], + stringt: [ + [/[^\\"\n\r]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"(?=""")/, "string"], + [ + /"""/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/"/, "string"] + ], + fstring: [ + [/@escapes/, "string.escape"], + [ + /"/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/\$\$/, "string"], + [/(\$)([a-z_]\w*)/, ["operator", "identifier"]], + [/\$\{/, "operator", "@interp"], + [/%%/, "string"], + [ + /(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, + ["metatag", "keyword.modifier", "number", "metatag"] + ], + [/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, ["metatag", "number", "metatag"]], + [/(%)([\-#+ 0,(])(@fstring_conv)/, ["metatag", "keyword.modifier", "metatag"]], + [/(%)(@fstring_conv)/, ["metatag", "metatag"]], + [/./, "string"] + ], + fstringt: [ + [/@escapes/, "string.escape"], + [/"(?=""")/, "string"], + [ + /"""/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/\$\$/, "string"], + [/(\$)([a-z_]\w*)/, ["operator", "identifier"]], + [/\$\{/, "operator", "@interp"], + [/%%/, "string"], + [ + /(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, + ["metatag", "keyword.modifier", "number", "metatag"] + ], + [/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/, ["metatag", "number", "metatag"]], + [/(%)([\-#+ 0,(])(@fstring_conv)/, ["metatag", "keyword.modifier", "metatag"]], + [/(%)(@fstring_conv)/, ["metatag", "metatag"]], + [/./, "string"] + ], + sstring: [ + [/@escapes/, "string.escape"], + [ + /"/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/\$\$/, "string"], + [/(\$)([a-z_]\w*)/, ["operator", "identifier"]], + [/\$\{/, "operator", "@interp"], + [/./, "string"] + ], + sstringt: [ + [/@escapes/, "string.escape"], + [/"(?=""")/, "string"], + [ + /"""/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/\$\$/, "string"], + [/(\$)([a-z_]\w*)/, ["operator", "identifier"]], + [/\$\{/, "operator", "@interp"], + [/./, "string"] + ], + interp: [[/{/, "operator", "@push"], [/}/, "operator", "@pop"], { include: "@root" }], + rawstring: [ + [/[^"]/, "string"], + [ + /"/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ] + ], + rawstringt: [ + [/[^"]/, "string"], + [/"(?=""")/, "string"], + [ + /"""/, + { + token: "string.quote", + bracket: "@close", + switchTo: "@allowMethod" + } + ], + [/"/, "string"] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/180.f35ada22.js b/assets/js/180.f35ada22.js new file mode 100644 index 00000000000..cabd6979175 --- /dev/null +++ b/assets/js/180.f35ada22.js @@ -0,0 +1,2 @@ +/*! For license information please see 180.f35ada22.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[180],{90180:(e,t,o)=>{o.r(t),o.d(t,{conf:()=>r,language:()=>n});var r={wordPattern:/(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},n={tokenPostfix:".scala",keywords:["asInstanceOf","catch","class","classOf","def","do","else","extends","finally","for","foreach","forSome","if","import","isInstanceOf","macro","match","new","object","package","return","throw","trait","try","type","until","val","var","while","with","yield","given","enum","then"],softKeywords:["as","export","extension","end","derives","on"],constants:["true","false","null","this","super"],modifiers:["abstract","final","implicit","lazy","override","private","protected","sealed"],softModifiers:["inline","opaque","open","transparent","using"],name:/(?:[a-z_$][\w$]*|`[^`]+`)/,type:/(?:[A-Z][\w$]*)/,symbols:/[=>))/,["@brackets","white","variable"]],[/@name/,{cases:{"@keywords":"keyword","@softKeywords":"keyword","@modifiers":"keyword.modifier","@softModifiers":"keyword.modifier","@constants":{token:"constant",next:"@allowMethod"},"@default":{token:"identifier",next:"@allowMethod"}}}],[/@type/,"type","@allowMethod"],{include:"@whitespace"},[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/,"annotation"],[/[{(]/,"@brackets"],[/[})]/,"@brackets","@allowMethod"],[/\[/,"operator.square"],[/](?!\s*(?:va[rl]|def|type)\b)/,"operator.square","@allowMethod"],[/]/,"operator.square"],[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/,"keyword"],[/@symbols/,"operator"],[/[;,\.]/,"delimiter"],[/'[a-zA-Z$][\w$]*(?!')/,"attribute.name"],[/'[^\\']'/,"string","@allowMethod"],[/(')(@escapes)(')/,["string","string.escape",{token:"string",next:"@allowMethod"}]],[/'/,"string.invalid"]],import:[[/;/,"delimiter","@pop"],[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/@name|@type/,"type"],[/[(){}]/,"@brackets"],[/[[\]]/,"operator.square"],[/[\.,]/,"delimiter"]],allowMethod:[[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/(?==>[\s\w([{])/,"keyword","@pop"],[/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/,{cases:{"@keywords":{token:"keyword",next:"@pop"},"->|<-|>:|<:|<%":{token:"keyword",next:"@pop"},"@default":{token:"@rematch",next:"@pop"}}}],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],case:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword","@allowMethod"],[/\bif\b|=>/,"keyword","@pop"],[/`[^`]+`/,"identifier","@allowMethod"],[/@name/,"variable","@allowMethod"],[/:::?|\||@(?![a-z_$])/,"keyword"],{include:"@root"}],vardef:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword"],[/@name/,"variable"],[/:::?|\||@(?![a-z_$])/,"keyword"],[/=|:(?!:)/,"operator","@pop"],[/$/,"white","@pop"],{include:"@root"}],string:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],stringt:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],fstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],fstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],sstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],sstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],interp:[[/{/,"operator","@push"],[/}/,"operator","@pop"],{include:"@root"}],rawstring:[[/[^"]/,"string"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],rawstringt:[[/[^"]/,"string"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/180.f35ada22.js.LICENSE.txt b/assets/js/180.f35ada22.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/180.f35ada22.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1848.6e365ebf.js b/assets/js/1848.6e365ebf.js new file mode 100644 index 00000000000..39c3fba0a54 --- /dev/null +++ b/assets/js/1848.6e365ebf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1848],{1848:(o,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var t=n(87462),r=(n(67294),n(3905));const s={title:"New Flow Errors on Unknown Property Access in Conditionals","short-title":"Unknown Props in Conditionals",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/new-flow-errors-on-unknown-property-access-in-conditionals-461da66ea10"},i=void 0,a={permalink:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals",source:"@site/blog/2018-03-16-New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals.md",title:"New Flow Errors on Unknown Property Access in Conditionals",description:"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown",date:"2018-03-16T00:00:00.000Z",formattedDate:"March 16, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{title:"New Flow Errors on Unknown Property Access in Conditionals","short-title":"Unknown Props in Conditionals",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/new-flow-errors-on-unknown-property-access-in-conditionals-461da66ea10"},prevItem:{title:"On the Roadmap: Exact Objects by Default",permalink:"/blog/2018/10/18/Exact-Objects-By-Default"},nextItem:{title:"Better Flow Error Messages for the JavaScript Ecosystem",permalink:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"}},l={authorsImageUrls:[void 0]},c=[],w={toc:c};function p(o){let{components:e,...n}=o;return(0,r.mdx)("wrapper",(0,t.Z)({},w,n,{components:e,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown\nproperties in conditionals."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1886.3930b16b.js b/assets/js/1886.3930b16b.js new file mode 100644 index 00000000000..def6e8a80cd --- /dev/null +++ b/assets/js/1886.3930b16b.js @@ -0,0 +1,575 @@ +"use strict"; +exports.id = 1886; +exports.ids = [1886]; +exports.modules = { + +/***/ 81886: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/systemverilog/systemverilog.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["begin", "end"], + ["case", "endcase"], + ["casex", "endcase"], + ["casez", "endcase"], + ["checker", "endchecker"], + ["class", "endclass"], + ["clocking", "endclocking"], + ["config", "endconfig"], + ["function", "endfunction"], + ["generate", "endgenerate"], + ["group", "endgroup"], + ["interface", "endinterface"], + ["module", "endmodule"], + ["package", "endpackage"], + ["primitive", "endprimitive"], + ["program", "endprogram"], + ["property", "endproperty"], + ["specify", "endspecify"], + ["sequence", "endsequence"], + ["table", "endtable"], + ["task", "endtask"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: "{", close: "}" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + offSide: false, + markers: { + start: new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b"), + end: new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".sv", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" }, + { token: "delimiter.angle", open: "<", close: ">" } + ], + keywords: [ + "accept_on", + "alias", + "always", + "always_comb", + "always_ff", + "always_latch", + "and", + "assert", + "assign", + "assume", + "automatic", + "before", + "begin", + "bind", + "bins", + "binsof", + "bit", + "break", + "buf", + "bufif0", + "bufif1", + "byte", + "case", + "casex", + "casez", + "cell", + "chandle", + "checker", + "class", + "clocking", + "cmos", + "config", + "const", + "constraint", + "context", + "continue", + "cover", + "covergroup", + "coverpoint", + "cross", + "deassign", + "default", + "defparam", + "design", + "disable", + "dist", + "do", + "edge", + "else", + "end", + "endcase", + "endchecker", + "endclass", + "endclocking", + "endconfig", + "endfunction", + "endgenerate", + "endgroup", + "endinterface", + "endmodule", + "endpackage", + "endprimitive", + "endprogram", + "endproperty", + "endspecify", + "endsequence", + "endtable", + "endtask", + "enum", + "event", + "eventually", + "expect", + "export", + "extends", + "extern", + "final", + "first_match", + "for", + "force", + "foreach", + "forever", + "fork", + "forkjoin", + "function", + "generate", + "genvar", + "global", + "highz0", + "highz1", + "if", + "iff", + "ifnone", + "ignore_bins", + "illegal_bins", + "implements", + "implies", + "import", + "incdir", + "include", + "initial", + "inout", + "input", + "inside", + "instance", + "int", + "integer", + "interconnect", + "interface", + "intersect", + "join", + "join_any", + "join_none", + "large", + "let", + "liblist", + "library", + "local", + "localparam", + "logic", + "longint", + "macromodule", + "matches", + "medium", + "modport", + "module", + "nand", + "negedge", + "nettype", + "new", + "nexttime", + "nmos", + "nor", + "noshowcancelled", + "not", + "notif0", + "notif1", + "null", + "or", + "output", + "package", + "packed", + "parameter", + "pmos", + "posedge", + "primitive", + "priority", + "program", + "property", + "protected", + "pull0", + "pull1", + "pulldown", + "pullup", + "pulsestyle_ondetect", + "pulsestyle_onevent", + "pure", + "rand", + "randc", + "randcase", + "randsequence", + "rcmos", + "real", + "realtime", + "ref", + "reg", + "reject_on", + "release", + "repeat", + "restrict", + "return", + "rnmos", + "rpmos", + "rtran", + "rtranif0", + "rtranif1", + "s_always", + "s_eventually", + "s_nexttime", + "s_until", + "s_until_with", + "scalared", + "sequence", + "shortint", + "shortreal", + "showcancelled", + "signed", + "small", + "soft", + "solve", + "specify", + "specparam", + "static", + "string", + "strong", + "strong0", + "strong1", + "struct", + "super", + "supply0", + "supply1", + "sync_accept_on", + "sync_reject_on", + "table", + "tagged", + "task", + "this", + "throughout", + "time", + "timeprecision", + "timeunit", + "tran", + "tranif0", + "tranif1", + "tri", + "tri0", + "tri1", + "triand", + "trior", + "trireg", + "type", + "typedef", + "union", + "unique", + "unique0", + "unsigned", + "until", + "until_with", + "untyped", + "use", + "uwire", + "var", + "vectored", + "virtual", + "void", + "wait", + "wait_order", + "wand", + "weak", + "weak0", + "weak1", + "while", + "wildcard", + "wire", + "with", + "within", + "wor", + "xnor", + "xor" + ], + builtin_gates: [ + "and", + "nand", + "nor", + "or", + "xor", + "xnor", + "buf", + "not", + "bufif0", + "bufif1", + "notif1", + "notif0", + "cmos", + "nmos", + "pmos", + "rcmos", + "rnmos", + "rpmos", + "tran", + "tranif1", + "tranif0", + "rtran", + "rtranif1", + "rtranif0" + ], + operators: [ + "=", + "+=", + "-=", + "*=", + "/=", + "%=", + "&=", + "|=", + "^=", + "<<=", + ">>+", + "<<<=", + ">>>=", + "?", + ":", + "+", + "-", + "!", + "~", + "&", + "~&", + "|", + "~|", + "^", + "~^", + "^~", + "+", + "-", + "*", + "/", + "%", + "==", + "!=", + "===", + "!==", + "==?", + "!=?", + "&&", + "||", + "**", + "<", + "<=", + ">", + ">=", + "&", + "|", + "^", + ">>", + "<<", + ">>>", + "<<<", + "++", + "--", + "->", + "<->", + "inside", + "dist", + "::", + "+:", + "-:", + "*>", + "&&&", + "|->", + "|=>", + "#=#" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + { include: "@numbers" }, + [/[;,.]/, "delimiter"], + { include: "@strings" } + ], + identifier_or_keyword: [ + [ + /@identifier/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ] + ], + numbers: [ + [/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/, "number.float"], + [/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/, "number.float"], + [/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/, "number"], + [/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/, "number.binary"], + [/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/, "number.octal"], + [/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/, "number.hex"], + [/1step/, "number"], + [/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/, "number"], + [/'[01xXzZ]+/, "number"] + ], + module_instance: [ + { include: "@whitespace" }, + [/(#?)(\()/, ["", { token: "@brackets", next: "@port_connection" }]], + [/@identifier\s*[;={}\[\],]/, { token: "@rematch", next: "@pop" }], + [/@symbols|[;={}\[\],]/, { token: "@rematch", next: "@pop" }], + [/@identifier/, "type"], + [/;/, "delimiter", "@pop"] + ], + port_connection: [ + { include: "@identifier_or_keyword" }, + { include: "@whitespace" }, + [/@systemcall/, "variable.predefined"], + { include: "@numbers" }, + { include: "@strings" }, + [/[,]/, "delimiter"], + [/\(/, "@brackets", "@port_connection"], + [/\)/, "@brackets", "@pop"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + strings: [ + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + include: [ + [ + /(\s*)(")([\w*\/*]*)(.\w*)(")/, + [ + "", + "string.include.identifier", + "string.include.identifier", + "string.include.identifier", + { token: "string.include.identifier", next: "@pop" } + ] + ], + [ + /(\s*)(<)([\w*\/*]*)(.\w*)(>)/, + [ + "", + "string.include.identifier", + "string.include.identifier", + "string.include.identifier", + { token: "string.include.identifier", next: "@pop" } + ] + ] + ], + table: [ + { include: "@whitespace" }, + [/[()]/, "@brackets"], + [/[:;]/, "delimiter"], + [/[01\-*?xXbBrRfFpPnN]/, "variable.predefined"], + ["endtable", "keyword.endtable", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1886.622d7f2a.js b/assets/js/1886.622d7f2a.js new file mode 100644 index 00000000000..2f90ca8010f --- /dev/null +++ b/assets/js/1886.622d7f2a.js @@ -0,0 +1,2 @@ +/*! For license information please see 1886.622d7f2a.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1886],{81886:(e,n,i)=>{i.r(n),i.d(n,{conf:()=>t,language:()=>r});var t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["begin","end"],["case","endcase"],["casex","endcase"],["casez","endcase"],["checker","endchecker"],["class","endclass"],["clocking","endclocking"],["config","endconfig"],["function","endfunction"],["generate","endgenerate"],["group","endgroup"],["interface","endinterface"],["module","endmodule"],["package","endpackage"],["primitive","endprimitive"],["program","endprogram"],["property","endproperty"],["specify","endspecify"],["sequence","endsequence"],["table","endtable"],["task","endtask"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!1,markers:{start:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b"),end:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b")}}},r={defaultToken:"",tokenPostfix:".sv",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","null","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],builtin_gates:["and","nand","nor","or","xor","xnor","buf","not","bufif0","bufif1","notif1","notif0","cmos","nmos","pmos","rcmos","rnmos","rpmos","tran","tranif1","tranif0","rtran","rtranif1","rtranif0"],operators:["=","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>+","<<<=",">>>=","?",":","+","-","!","~","&","~&","|","~|","^","~^","^~","+","-","*","/","%","==","!=","===","!==","==?","!=?","&&","||","**","<","<=",">",">=","&","|","^",">>","<<",">>>","<<<","++","--","->","<->","inside","dist","::","+:","-:","*>","&&&","|->","|=>","#=#"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],{include:"@numbers"},[/[;,.]/,"delimiter"],{include:"@strings"}],identifier_or_keyword:[[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}]],numbers:[[/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/,"number.float"],[/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/,"number.float"],[/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/,"number"],[/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/,"number.binary"],[/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/,"number.octal"],[/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/,"number.hex"],[/1step/,"number"],[/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/,"number"],[/'[01xXzZ]+/,"number"]],module_instance:[{include:"@whitespace"},[/(#?)(\()/,["",{token:"@brackets",next:"@port_connection"}]],[/@identifier\s*[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@symbols|[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@identifier/,"type"],[/;/,"delimiter","@pop"]],port_connection:[{include:"@identifier_or_keyword"},{include:"@whitespace"},[/@systemcall/,"variable.predefined"],{include:"@numbers"},{include:"@strings"},[/[,]/,"delimiter"],[/\(/,"@brackets","@port_connection"],[/\)/,"@brackets","@pop"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],strings:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],include:[[/(\s*)(")([\w*\/*]*)(.\w*)(")/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]],[/(\s*)(<)([\w*\/*]*)(.\w*)(>)/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]]],table:[{include:"@whitespace"},[/[()]/,"@brackets"],[/[:;]/,"delimiter"],[/[01\-*?xXbBrRfFpPnN]/,"variable.predefined"],["endtable","keyword.endtable","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/1886.622d7f2a.js.LICENSE.txt b/assets/js/1886.622d7f2a.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1886.622d7f2a.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1908.2c382ba8.js b/assets/js/1908.2c382ba8.js new file mode 100644 index 00000000000..99b9040bada --- /dev/null +++ b/assets/js/1908.2c382ba8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1908],{11908:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>n,metadata:()=>i,toc:()=>h});var r=o(87462),a=(o(67294),o(3905));const n={author:"Gabe Levi",hide_table_of_contents:!0},s=void 0,i={permalink:"/blog/2015/10/07/Version-0.17.0",source:"@site/blog/2015-10-07-Version-0.17.0.md",title:"Version-0.17.0",description:"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:",date:"2015-10-07T00:00:00.000Z",formattedDate:"October 7, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Typing Generators with Flow",permalink:"/blog/2015/11/09/Generators"},nextItem:{title:"Version-0.16.0",permalink:"/blog/2015/09/22/Version-0.16.0"}},l={authorsImageUrls:[void 0]},h=[],d={toc:h};function u(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,r.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:"),(0,a.mdx)("p",null,"![New error format]","({{ site.baseurl }}/static/new_error_format_v0_17_0.png)"),(0,a.mdx)("p",null,"This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/frantic"},"@frantic")," for building this feature!"),(0,a.mdx)("p",null,"There are a whole bunch of other features and fixes in this release! Head on over to our ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases/tag/v0.17.0"},"Release")," for the full list!"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1930.0b17c84b.js b/assets/js/1930.0b17c84b.js new file mode 100644 index 00000000000..d15e2996c5b --- /dev/null +++ b/assets/js/1930.0b17c84b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1930],{71930:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>p,default:()=>c,frontMatter:()=>m,metadata:()=>r,toc:()=>i});var a=t(87462),o=(t(67294),t(3905));t(45475);const m={title:"Type Reference",slug:"/react/types"},p=void 0,r={unversionedId:"react/types",id:"react/types",title:"Type Reference",description:"React exports a handful of utility types that may be useful to you when typing",source:"@site/docs/react/types.md",sourceDirName:"react",slug:"/react/types",permalink:"/en/docs/react/types",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/types.md",tags:[],version:"current",frontMatter:{title:"Type Reference",slug:"/react/types"},sidebar:"docsSidebar",previous:{title:"Higher-order Components",permalink:"/en/docs/react/hoc"},next:{title:"Flow Enums",permalink:"/en/docs/enums"}},l={},i=[{value:"React.Node",id:"toc-react-node",level:2},{value:"React.MixedElement",id:"toc-react-mixedelement",level:2},{value:"React.Element<typeof Component>",id:"toc-react-element",level:2},{value:"React.ChildrenArray<T>",id:"toc-react-childrenarray",level:2},{value:"React.AbstractComponent<Config, Instance>",id:"toc-react-abstractcomponent",level:2},{value:"React.ComponentType<Config>",id:"toc-react-componenttype",level:2},{value:"React.ElementType",id:"toc-react-elementtype",level:2},{value:"React.Key",id:"toc-react-key",level:2},{value:"React.Ref<typeof Component>",id:"toc-react-ref",level:2},{value:"React.ElementConfig<typeof Component>",id:"toc-react-elementconfig",level:2},{value:"React.ElementProps<typeof Component>",id:"toc-react-elementprops",level:2},{value:"React.ElementRef<typeof Component>",id:"toc-react-elementref",level:2},{value:"React.Config<Props, DefaultProps>",id:"toc-react-config",level:2}],d={toc:i};function c(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"React exports a handful of utility types that may be useful to you when typing\nadvanced React patterns. In previous sections we have seen a few of them. The\nfollowing is a complete reference for each of these types along with some\nexamples for how/where to use them."),(0,o.mdx)("p",null,"These types are all exported as named type exports from the ",(0,o.mdx)("inlineCode",{parentName:"p"},"react")," module. If\nyou want to access them as members on the ",(0,o.mdx)("inlineCode",{parentName:"p"},"React")," object (e.g.\n",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-node"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Node")),") and\nyou are importing React as an ES module then you should import ",(0,o.mdx)("inlineCode",{parentName:"p"},"React")," as a\nnamespace:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"import * as React from 'react';\n")),(0,o.mdx)("p",null,"If you are using CommonJS you can also require React:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"const React = require('react');\n")),(0,o.mdx)("p",null,"You can also use named type imports in either an ES module environment or a\nCommonJS environment:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"import type {Node} from 'react';\n")),(0,o.mdx)("p",null,"We will refer to all the types in the following reference as if we imported them\nwith:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"import * as React from 'react';\n")),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," While importing React with a default import works:"),(0,o.mdx)("pre",{parentName:"blockquote"},(0,o.mdx)("code",{parentName:"pre"},"import React from 'react';\n")),(0,o.mdx)("p",{parentName:"blockquote"},"You will have access to all of the values that React exports, but you will\n",(0,o.mdx)("strong",{parentName:"p"},"not")," have access to the types documented below! This is because Flow will\nnot add types to a default export since the default export could be any value\n(like a number). Flow will add exported named types to an ES namespace object\nwhich you can get with ",(0,o.mdx)("inlineCode",{parentName:"p"},"import * as React from 'react'")," since Flow knows if\nyou export a value with the same name as an exported type."),(0,o.mdx)("p",{parentName:"blockquote"},"Again, if you import React with: ",(0,o.mdx)("inlineCode",{parentName:"p"},"import React from 'react'")," you will be able\nto access ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Component"),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.createElement()"),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Children"),", and\nother JavaScript ",(0,o.mdx)("em",{parentName:"p"},"values"),". However, you will not be able to access\n",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-node"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Node")),", ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-childrenarray"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.ChildrenArray"))," or\nother Flow ",(0,o.mdx)("em",{parentName:"p"},"types"),". You will need to use a named type import like:\n",(0,o.mdx)("inlineCode",{parentName:"p"},"import type {Node} from 'react'")," in addition to your default import.")),(0,o.mdx)("h2",{id:"toc-react-node"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.Node")),(0,o.mdx)("p",null,"This represents any node that can be rendered in a React application.\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Node")," can be null, a boolean, a number, a string, a React\nelement, or an array of any of those types recursively."),(0,o.mdx)("p",null,(0,o.mdx)("inlineCode",{parentName:"p"},"React.Node")," is a good default to use to annotate the return type of a function component\nand class render methods. You can also use it to type elements your component takes in as children."),(0,o.mdx)("p",null,"Here is an example of ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Node")," being used as the return type to a function component:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"function MyComponent(props: {}): React.Node {\n // ...\n}\n")),(0,o.mdx)("p",null,"It may also be used as the return type of a class ",(0,o.mdx)("inlineCode",{parentName:"p"},"render")," method:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"class MyComponent extends React.Component<{}> {\n render(): React.Node {\n // ...\n }\n}\n")),(0,o.mdx)("p",null,"Here is an example of ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Node")," as the prop type for children:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"function MyComponent({ children }: { children: React.Node }) {\n return
{children}
;\n}\n")),(0,o.mdx)("p",null,"All ",(0,o.mdx)("inlineCode",{parentName:"p"},"react-dom")," JSX intrinsics have ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Node")," as their children type.\n",(0,o.mdx)("inlineCode",{parentName:"p"},"
"),", ",(0,o.mdx)("inlineCode",{parentName:"p"},""),", and all the rest."),(0,o.mdx)("h2",{id:"toc-react-mixedelement"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.MixedElement")),(0,o.mdx)("p",null,"The most general type of all React elements (similar to ",(0,o.mdx)("inlineCode",{parentName:"p"},"mixed")," for all values). ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.MixedElement")," is defined as\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Element"),"."),(0,o.mdx)("p",null,"A common use case of this type is when we want to annotate an element with a type that hides the element details. For example"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"const element: React.MixedElement =
;\n")),(0,o.mdx)("h2",{id:"toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.Element")),(0,o.mdx)("p",null,"A React element is the type for the value of a JSX element:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"const element: React.Element<'div'> =
;\n")),(0,o.mdx)("p",null,(0,o.mdx)("inlineCode",{parentName:"p"},"React.Element")," is also the return type of\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.createElement()"),"/",(0,o.mdx)("inlineCode",{parentName:"p"},"React.jsx()"),"."),(0,o.mdx)("p",null,"A ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Element")," takes a single type argument,\n",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component"),". ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," is the component type of the React\nelement. For an intrinsic element, ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," will be the string literal\nfor the intrinsic you used. Here are a few examples with DOM intrinsics:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"(
: React.Element<'div'>); // OK\n(: React.Element<'span'>); // OK\n(
: React.Element<'span'>); // Error: div is not a span.\n")),(0,o.mdx)("p",null,(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," can also be your React class component or function component."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"function Foo(props: {}) {}\nclass Bar extends React.Component<{}> {}\n\n(: React.Element); // OK\n(: React.Element); // OK\n(: React.Element); // Error: Foo is not Bar\n")),(0,o.mdx)("p",null,"Take note of the ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof"),", it is required! We want to get the\ntype ",(0,o.mdx)("em",{parentName:"p"},"of")," the value ",(0,o.mdx)("inlineCode",{parentName:"p"},"Foo"),". ",(0,o.mdx)("inlineCode",{parentName:"p"},"(Foo: Foo)")," is an error because ",(0,o.mdx)("inlineCode",{parentName:"p"},"Foo")," cannot be used\nas a type, so the following is correct: ",(0,o.mdx)("inlineCode",{parentName:"p"},"(Foo: typeof Foo)"),"."),(0,o.mdx)("p",null,(0,o.mdx)("inlineCode",{parentName:"p"},"Bar")," without ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," would be the type of an instance of ",(0,o.mdx)("inlineCode",{parentName:"p"},"Bar"),": ",(0,o.mdx)("inlineCode",{parentName:"p"},"(new Bar(): Bar)"),".\nWe want the type ",(0,o.mdx)("em",{parentName:"p"},"of")," ",(0,o.mdx)("inlineCode",{parentName:"p"},"Bar")," not the type of an instance of ",(0,o.mdx)("inlineCode",{parentName:"p"},"Bar"),".\n",(0,o.mdx)("inlineCode",{parentName:"p"},"Class")," would also work here, but we prefer ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," for consistency\nwith function components."),(0,o.mdx)("h2",{id:"toc-react-childrenarray"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ChildrenArray")),(0,o.mdx)("p",null,"A React children array can be a single value or an array nested to any level.\nIt is designed to be used with the ",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/reference/react/Children"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Children")," API"),"."),(0,o.mdx)("p",null,"For example if you want to get a normal JavaScript array from a\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.ChildrenArray")," see the following example:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"import * as React from 'react';\n\n// A children array can be a single value...\nconst children: React.ChildrenArray = 42;\n// ...or an arbitrarily nested array.\nconst children: React.ChildrenArray = [[1, 2], 3, [4, 5]];\n\n// Using the `React.Children` API can flatten the array.\nconst array: Array = React.Children.toArray(children);\n")),(0,o.mdx)("h2",{id:"toc-react-abstractcomponent"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.AbstractComponent")),(0,o.mdx)("p",null,(0,o.mdx)("inlineCode",{parentName:"p"},"React.AbstractComponent")," represents a component with\na config of type Config and instance of type Instance."),(0,o.mdx)("p",null,"The ",(0,o.mdx)("inlineCode",{parentName:"p"},"Config")," of a component is the type of the object you need to pass in to JSX in order\nto create an element with that component. The ",(0,o.mdx)("inlineCode",{parentName:"p"},"Instance")," of a component is the type of the value\nthat is written to the ",(0,o.mdx)("inlineCode",{parentName:"p"},"current")," field of a ref object passed into the ",(0,o.mdx)("inlineCode",{parentName:"p"},"ref")," prop in JSX."),(0,o.mdx)("p",null,"Config is required, but Instance is optional and defaults to mixed."),(0,o.mdx)("p",null,"A class or function component with config ",(0,o.mdx)("inlineCode",{parentName:"p"},"Config")," may be used in places that expect\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.AbstractComponent"),"."),(0,o.mdx)("p",null,"This is Flow's most abstract representation of a React component, and is most useful for\nwriting HOCs and library definitions."),(0,o.mdx)("h2",{id:"toc-react-componenttype"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ComponentType")),(0,o.mdx)("p",null,"This is the same as ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-abstractcomponent"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.AbstractComponent")),", but only specifies the first type argument."),(0,o.mdx)("h2",{id:"toc-react-elementtype"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ElementType")),(0,o.mdx)("p",null,"Similar to ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-abstractcomponent"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.AbstractComponent"))," except it also\nincludes JSX intrinsics (strings)."),(0,o.mdx)("p",null,"The definition for ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.ElementType")," is roughly:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"type ElementType =\n | string\n | React.AbstractComponent;\n")),(0,o.mdx)("h2",{id:"toc-react-key"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.Key")),(0,o.mdx)("p",null,"The type of the key prop on React elements. It is a union of strings and\nnumbers defined as:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"type Key = string | number;\n")),(0,o.mdx)("h2",{id:"toc-react-ref"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.Ref")),(0,o.mdx)("p",null,"The type of the ",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/learn/manipulating-the-dom-with-refs"},"ref prop on React elements"),". ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Ref"),"\ncould be a string, ref object, or ref function."),(0,o.mdx)("p",null,"The ref function will take one and only argument which will be the element\ninstance which is retrieved using\n",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-elementref"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.ElementRef"))," or null since\n",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/learn/manipulating-the-dom-with-refs#how-to-manage-a-list-of-refs-using-a-ref-callback"},"React will pass null into a ref function when unmounting"),"."),(0,o.mdx)("p",null,"Like ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Element")),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component"),"\nmust be the type ",(0,o.mdx)("em",{parentName:"p"},"of")," a React component so you need to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," as in\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Ref"),"."),(0,o.mdx)("p",null,"The definition for ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.Ref")," is roughly:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"type Ref =\n | string\n | (instance: React.ElementRef | null) => mixed;\n | { -current: React$ElementRef | null, ... }\n")),(0,o.mdx)("h2",{id:"toc-react-elementconfig"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ElementConfig")),(0,o.mdx)("p",null,"This utility gets the type of the object that you must pass in to a\ncomponent in order to instantiate it via ",(0,o.mdx)("inlineCode",{parentName:"p"},"createElement()")," or ",(0,o.mdx)("inlineCode",{parentName:"p"},"jsx()"),"."),(0,o.mdx)("p",null,"Importantly, props with defaults are optional in the resulting type."),(0,o.mdx)("p",null,"For example,"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"import * as React from 'react';\n\nclass MyComponent extends React.Component<{foo: number}> {\n static defaultProps = {foo: 42};\n\n render() {\n return this.props.foo;\n }\n}\n\n// `React.ElementProps<>` requires `foo` even though it has a `defaultProp`.\n({foo: 42}: React.ElementProps);\n\n// `React.ElementConfig<>` does not require `foo` since it has a `defaultProp`.\n({}: React.ElementConfig);\n")),(0,o.mdx)("p",null,"Like ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Element")),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," must be the\ntype ",(0,o.mdx)("em",{parentName:"p"},"of")," a React component so you need to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," as in\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.ElementProps"),"."),(0,o.mdx)("h2",{id:"toc-react-elementprops"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ElementProps")),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," Because ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-elementprops"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.ElementProps"))," does not preserve the optionality of ",(0,o.mdx)("inlineCode",{parentName:"p"},"defaultProps"),", ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-elementconfig"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.ElementConfig"))," (which does) is more often the right choice, especially for simple props pass-through as with ",(0,o.mdx)("a",{parentName:"p",href:"../hoc/#toc-supporting-defaultprops-with-react-elementconfig"},"higher-order components"),".\nYou probably should not use ElementProps.")),(0,o.mdx)("p",null,"Gets the props for a React element type, ",(0,o.mdx)("em",{parentName:"p"},"without")," preserving the optionality of ",(0,o.mdx)("inlineCode",{parentName:"p"},"defaultProps"),".\n",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," could be the type of a React class component, a function component, or a JSX intrinsic string.\nThis type is used for the ",(0,o.mdx)("inlineCode",{parentName:"p"},"props")," property on ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Element")),"."),(0,o.mdx)("p",null,"Like ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Element")),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," must be the\ntype ",(0,o.mdx)("em",{parentName:"p"},"of")," a React component so you need to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," as in\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.ElementProps"),"."),(0,o.mdx)("h2",{id:"toc-react-elementref"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.ElementRef")),(0,o.mdx)("p",null,"Gets the instance type for a React element. The instance will be different for\nvarious component types:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"React.AbstractComponent will return the Instance type."),(0,o.mdx)("li",{parentName:"ul"},"React class components will be the class instance. So if you had\n",(0,o.mdx)("inlineCode",{parentName:"li"},"class Foo extends React.Component<{}> {}")," and used\n",(0,o.mdx)("inlineCode",{parentName:"li"},"React.ElementRef")," then the type would be the instance of ",(0,o.mdx)("inlineCode",{parentName:"li"},"Foo"),"."),(0,o.mdx)("li",{parentName:"ul"},"React function components do not have a backing instance and so\n",(0,o.mdx)("inlineCode",{parentName:"li"},"React.ElementRef")," (when ",(0,o.mdx)("inlineCode",{parentName:"li"},"Bar")," is ",(0,o.mdx)("inlineCode",{parentName:"li"},"function Bar() {}"),") will give\nyou the undefined type."),(0,o.mdx)("li",{parentName:"ul"},"JSX intrinsics like ",(0,o.mdx)("inlineCode",{parentName:"li"},"div")," will give you their DOM instance. For\n",(0,o.mdx)("inlineCode",{parentName:"li"},"React.ElementRef<'div'>")," that would be ",(0,o.mdx)("inlineCode",{parentName:"li"},"HTMLDivElement"),". For\n",(0,o.mdx)("inlineCode",{parentName:"li"},"React.ElementRef<'input'>")," that would be ",(0,o.mdx)("inlineCode",{parentName:"li"},"HTMLInputElement"),".")),(0,o.mdx)("p",null,"Like ",(0,o.mdx)("a",{parentName:"p",href:"#toc-react-element"},(0,o.mdx)("inlineCode",{parentName:"a"},"React.Element")),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof Component")," must be the\ntype ",(0,o.mdx)("em",{parentName:"p"},"of")," a React component so you need to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"typeof")," as in\n",(0,o.mdx)("inlineCode",{parentName:"p"},"React.ElementRef"),"."),(0,o.mdx)("h2",{id:"toc-react-config"},(0,o.mdx)("inlineCode",{parentName:"h2"},"React.Config")),(0,o.mdx)("p",null,"Calculates a config object from props and default props. This is most useful for annotating\nHOCs that are abstracted over configs. See our ",(0,o.mdx)("a",{parentName:"p",href:"../hoc"},"docs on writing HOCs")," for more information."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1958.d7cfea40.js b/assets/js/1958.d7cfea40.js new file mode 100644 index 00000000000..3cc2938f2e7 --- /dev/null +++ b/assets/js/1958.d7cfea40.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1958],{1958:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>m,toc:()=>r});var a=t(87462),o=(t(67294),t(3905));t(45475);const s={title:"Comment Types",slug:"/types/comments"},l=void 0,m={unversionedId:"types/comments",id:"types/comments",title:"Comment Types",description:"Flow supports a comment-based syntax, which makes it possible to use Flow",source:"@site/docs/types/comments.md",sourceDirName:"types",slug:"/types/comments",permalink:"/en/docs/types/comments",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/comments.md",tags:[],version:"current",frontMatter:{title:"Comment Types",slug:"/types/comments"},sidebar:"docsSidebar",previous:{title:"Module Types",permalink:"/en/docs/types/modules"},next:{title:"Types & Expressions",permalink:"/en/docs/lang/types-and-expressions"}},i={},r=[{value:"Comment types syntax",id:"toc-comment-types-syntax",level:2},{value:"Type include comments",id:"toc-comment-type-include",level:3},{value:"Type annotation comments",id:"toc-comment-type-annotation",level:3}],p={toc:r};function d(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Flow supports a comment-based syntax, which makes it possible to use Flow\nwithout having to compile your files."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":13,"startColumn":33,"endLine":13,"endColumn":40,"description":"Cannot call `method` with object literal bound to `value` because array literal [1] is incompatible with string [2] in property `baz`. [incompatible-call]"}]','[{"startLine":13,"startColumn":33,"endLine":13,"endColumn":40,"description":"Cannot':!0,call:!0,"`method`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`value`":!0,because:!0,array:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2]":!0,in:!0,property:!0,"`baz`.":!0,'[incompatible-call]"}]':!0},'/*::\ntype MyAlias = {\n foo: number,\n bar: boolean,\n baz: string,\n};\n*/\n\nfunction method(value /*: MyAlias */) /*: boolean */ {\n return value.bar;\n}\n\nmethod({foo: 1, bar: true, baz: ["oops"]});\n')),(0,o.mdx)("p",null,"These comments allow Flow to work in plain JavaScript files without any\nadditional work."),(0,o.mdx)("h2",{id:"toc-comment-types-syntax"},"Comment types syntax"),(0,o.mdx)("p",null,"There are two primary pieces of the syntax: type includes and type annotations."),(0,o.mdx)("h3",{id:"toc-comment-type-include"},"Type include comments"),(0,o.mdx)("p",null,"If you want to have Flow treat a comment as if it were normal syntax, you can\ndo so by adding a double colon ",(0,o.mdx)("inlineCode",{parentName:"p"},"::")," to the start of the comment:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"/*::\ntype MyAlias = {\n foo: number,\n bar: boolean,\n baz: string,\n};\n*/\n\nclass MyClass {\n /*:: prop: string; */\n}\n")),(0,o.mdx)("p",null,"This includes the code into the syntax that Flow sees:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type MyAlias = {\n foo: number,\n bar: boolean,\n baz: string,\n};\n\nclass MyClass {\n prop: string;\n}\n")),(0,o.mdx)("p",null,"But JavaScript ignores these comments, so your code is valid JavaScript syntax:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n\n}\n")),(0,o.mdx)("p",null,"This syntax is also available in a ",(0,o.mdx)("inlineCode",{parentName:"p"},"flow-include")," form:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"/*flow-include\ntype MyAlias = {\n foo: number,\n bar: boolean,\n baz: string,\n};\n*/\n\nclass MyClass {\n /*flow-include prop: string; */\n}\n")),(0,o.mdx)("h3",{id:"toc-comment-type-annotation"},"Type annotation comments"),(0,o.mdx)("p",null,"Instead of typing out a full include every time, you can also use the type\nannotation shorthand with a single colon ",(0,o.mdx)("inlineCode",{parentName:"p"},":")," at the start of the comment."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function method(param /*: string */) /*: number */ {\n return 1;\n}\n")),(0,o.mdx)("p",null,"This would be the same as including a type annotation inside an include comment."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function method(param /*:: : string */) /*:: : number */ {\n return 1;\n}\n")),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," If you want to use optional function parameters you'll need to use\nthe include comment form.")),(0,o.mdx)("hr",null),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Special thanks to"),": ",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/jareware"},"Jarno Rantanen")," for\nbuilding ",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/jareware/flotate"},"flotate")," and supporting us\nmerging his syntax upstream into Flow.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1960.8eff0e2c.js b/assets/js/1960.8eff0e2c.js new file mode 100644 index 00000000000..bf7856cb6f3 --- /dev/null +++ b/assets/js/1960.8eff0e2c.js @@ -0,0 +1,406 @@ +"use strict"; +exports.id = 1960; +exports.ids = [1960]; +exports.modules = { + +/***/ 71960: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/cpp/cpp.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: "{", close: "}" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*#pragma\\s+region\\b"), + end: new RegExp("^\\s*#pragma\\s+endregion\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".cpp", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" }, + { token: "delimiter.angle", open: "<", close: ">" } + ], + keywords: [ + "abstract", + "amp", + "array", + "auto", + "bool", + "break", + "case", + "catch", + "char", + "class", + "const", + "constexpr", + "const_cast", + "continue", + "cpu", + "decltype", + "default", + "delegate", + "delete", + "do", + "double", + "dynamic_cast", + "each", + "else", + "enum", + "event", + "explicit", + "export", + "extern", + "false", + "final", + "finally", + "float", + "for", + "friend", + "gcnew", + "generic", + "goto", + "if", + "in", + "initonly", + "inline", + "int", + "interface", + "interior_ptr", + "internal", + "literal", + "long", + "mutable", + "namespace", + "new", + "noexcept", + "nullptr", + "__nullptr", + "operator", + "override", + "partial", + "pascal", + "pin_ptr", + "private", + "property", + "protected", + "public", + "ref", + "register", + "reinterpret_cast", + "restrict", + "return", + "safe_cast", + "sealed", + "short", + "signed", + "sizeof", + "static", + "static_assert", + "static_cast", + "struct", + "switch", + "template", + "this", + "thread_local", + "throw", + "tile_static", + "true", + "try", + "typedef", + "typeid", + "typename", + "union", + "unsigned", + "using", + "virtual", + "void", + "volatile", + "wchar_t", + "where", + "while", + "_asm", + "_based", + "_cdecl", + "_declspec", + "_fastcall", + "_if_exists", + "_if_not_exists", + "_inline", + "_multiple_inheritance", + "_pascal", + "_single_inheritance", + "_stdcall", + "_virtual_inheritance", + "_w64", + "__abstract", + "__alignof", + "__asm", + "__assume", + "__based", + "__box", + "__builtin_alignof", + "__cdecl", + "__clrcall", + "__declspec", + "__delegate", + "__event", + "__except", + "__fastcall", + "__finally", + "__forceinline", + "__gc", + "__hook", + "__identifier", + "__if_exists", + "__if_not_exists", + "__inline", + "__int128", + "__int16", + "__int32", + "__int64", + "__int8", + "__interface", + "__leave", + "__m128", + "__m128d", + "__m128i", + "__m256", + "__m256d", + "__m256i", + "__m64", + "__multiple_inheritance", + "__newslot", + "__nogc", + "__noop", + "__nounwind", + "__novtordisp", + "__pascal", + "__pin", + "__pragma", + "__property", + "__ptr32", + "__ptr64", + "__raise", + "__restrict", + "__resume", + "__sealed", + "__single_inheritance", + "__stdcall", + "__super", + "__thiscall", + "__try", + "__try_cast", + "__typeof", + "__unaligned", + "__unhook", + "__uuidof", + "__value", + "__virtual_inheritance", + "__w64", + "__wchar_t" + ], + operators: [ + "=", + ">", + "<", + "!", + "~", + "?", + ":", + "==", + "<=", + ">=", + "!=", + "&&", + "||", + "++", + "--", + "+", + "-", + "*", + "/", + "&", + "|", + "^", + "%", + "<<", + ">>", + ">>>", + "+=", + "-=", + "*=", + "/=", + "&=", + "|=", + "^=", + "%=", + "<<=", + ">>=", + ">>>=" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/, "number.hex"], + [/0[0-7']*[0-7](@integersuffix)/, "number.octal"], + [/0[bB][0-1']*[0-1](@integersuffix)/, "number.binary"], + [/\d[\d']*\d(@integersuffix)/, "number"], + [/\d(@integersuffix)/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@doccomment"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*\\$/, "comment", "@linecomment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + linecomment: [ + [/.*[^\\]$/, "comment", "@pop"], + [/[^]+/, "comment"] + ], + doccomment: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + raw: [ + [ + /(.*)(\))(?:([^ ()\\\t"]*))(\")/, + { + cases: { + "$3==$S2": [ + "string.raw", + "string.raw.end", + "string.raw.end", + { token: "string.raw.end", next: "@pop" } + ], + "@default": ["string.raw", "string.raw", "string.raw", "string.raw"] + } + } + ], + [/.*/, "string.raw"] + ], + annotation: [ + { include: "@whitespace" }, + [/using|alignas/, "keyword"], + [/[a-zA-Z0-9_]+/, "annotation"], + [/[,:]/, "delimiter"], + [/[()]/, "@brackets"], + [/\]\s*\]/, { token: "annotation", next: "@pop" }] + ], + include: [ + [ + /(\s*)(<)([^<>]*)(>)/, + [ + "", + "keyword.directive.include.begin", + "string.include.identifier", + { token: "keyword.directive.include.end", next: "@pop" } + ] + ], + [ + /(\s*)(")([^"]*)(")/, + [ + "", + "keyword.directive.include.begin", + "string.include.identifier", + { token: "keyword.directive.include.end", next: "@pop" } + ] + ] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1960.e580ef88.js b/assets/js/1960.e580ef88.js new file mode 100644 index 00000000000..e01923b872c --- /dev/null +++ b/assets/js/1960.e580ef88.js @@ -0,0 +1,2 @@ +/*! For license information please see 1960.e580ef88.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1960],{71960:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>i,language:()=>r});var i={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},r={defaultToken:"",tokenPostfix:".cpp",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["abstract","amp","array","auto","bool","break","case","catch","char","class","const","constexpr","const_cast","continue","cpu","decltype","default","delegate","delete","do","double","dynamic_cast","each","else","enum","event","explicit","export","extern","false","final","finally","float","for","friend","gcnew","generic","goto","if","in","initonly","inline","int","interface","interior_ptr","internal","literal","long","mutable","namespace","new","noexcept","nullptr","__nullptr","operator","override","partial","pascal","pin_ptr","private","property","protected","public","ref","register","reinterpret_cast","restrict","return","safe_cast","sealed","short","signed","sizeof","static","static_assert","static_cast","struct","switch","template","this","thread_local","throw","tile_static","true","try","typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","wchar_t","where","while","_asm","_based","_cdecl","_declspec","_fastcall","_if_exists","_if_not_exists","_inline","_multiple_inheritance","_pascal","_single_inheritance","_stdcall","_virtual_inheritance","_w64","__abstract","__alignof","__asm","__assume","__based","__box","__builtin_alignof","__cdecl","__clrcall","__declspec","__delegate","__event","__except","__fastcall","__finally","__forceinline","__gc","__hook","__identifier","__if_exists","__if_not_exists","__inline","__int128","__int16","__int32","__int64","__int8","__interface","__leave","__m128","__m128d","__m128i","__m256","__m256d","__m256i","__m64","__multiple_inheritance","__newslot","__nogc","__noop","__nounwind","__novtordisp","__pascal","__pin","__pragma","__property","__ptr32","__ptr64","__raise","__restrict","__resume","__sealed","__single_inheritance","__stdcall","__super","__thiscall","__try","__try_cast","__typeof","__unaligned","__unhook","__uuidof","__value","__virtual_inheritance","__w64","__wchar_t"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*\\$/,"comment","@linecomment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],linecomment:[[/.*[^\\]$/,"comment","@pop"],[/[^]+/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],raw:[[/(.*)(\))(?:([^ ()\\\t"]*))(\")/,{cases:{"$3==$S2":["string.raw","string.raw.end","string.raw.end",{token:"string.raw.end",next:"@pop"}],"@default":["string.raw","string.raw","string.raw","string.raw"]}}],[/.*/,"string.raw"]],annotation:[{include:"@whitespace"},[/using|alignas/,"keyword"],[/[a-zA-Z0-9_]+/,"annotation"],[/[,:]/,"delimiter"],[/[()]/,"@brackets"],[/\]\s*\]/,{token:"annotation",next:"@pop"}]],include:[[/(\s*)(<)([^<>]*)(>)/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]],[/(\s*)(")([^"]*)(")/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]]]}}}}]); \ No newline at end of file diff --git a/assets/js/1960.e580ef88.js.LICENSE.txt b/assets/js/1960.e580ef88.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1960.e580ef88.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1961.00730df4.js b/assets/js/1961.00730df4.js new file mode 100644 index 00000000000..ad693725a60 --- /dev/null +++ b/assets/js/1961.00730df4.js @@ -0,0 +1,894 @@ +"use strict"; +exports.id = 1961; +exports.ids = [1961]; +exports.modules = { + +/***/ 31961: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/mysql/mysql.ts +var conf = { + comments: { + lineComment: "--", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".sql", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "ACCESSIBLE", + "ADD", + "ALL", + "ALTER", + "ANALYZE", + "AND", + "AS", + "ASC", + "ASENSITIVE", + "BEFORE", + "BETWEEN", + "BIGINT", + "BINARY", + "BLOB", + "BOTH", + "BY", + "CALL", + "CASCADE", + "CASE", + "CHANGE", + "CHAR", + "CHARACTER", + "CHECK", + "COLLATE", + "COLUMN", + "CONDITION", + "CONSTRAINT", + "CONTINUE", + "CONVERT", + "CREATE", + "CROSS", + "CUBE", + "CUME_DIST", + "CURRENT_DATE", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "CURSOR", + "DATABASE", + "DATABASES", + "DAY_HOUR", + "DAY_MICROSECOND", + "DAY_MINUTE", + "DAY_SECOND", + "DEC", + "DECIMAL", + "DECLARE", + "DEFAULT", + "DELAYED", + "DELETE", + "DENSE_RANK", + "DESC", + "DESCRIBE", + "DETERMINISTIC", + "DISTINCT", + "DISTINCTROW", + "DIV", + "DOUBLE", + "DROP", + "DUAL", + "EACH", + "ELSE", + "ELSEIF", + "EMPTY", + "ENCLOSED", + "ESCAPED", + "EXCEPT", + "EXISTS", + "EXIT", + "EXPLAIN", + "FALSE", + "FETCH", + "FIRST_VALUE", + "FLOAT", + "FLOAT4", + "FLOAT8", + "FOR", + "FORCE", + "FOREIGN", + "FROM", + "FULLTEXT", + "FUNCTION", + "GENERATED", + "GET", + "GRANT", + "GROUP", + "GROUPING", + "GROUPS", + "HAVING", + "HIGH_PRIORITY", + "HOUR_MICROSECOND", + "HOUR_MINUTE", + "HOUR_SECOND", + "IF", + "IGNORE", + "IN", + "INDEX", + "INFILE", + "INNER", + "INOUT", + "INSENSITIVE", + "INSERT", + "INT", + "INT1", + "INT2", + "INT3", + "INT4", + "INT8", + "INTEGER", + "INTERVAL", + "INTO", + "IO_AFTER_GTIDS", + "IO_BEFORE_GTIDS", + "IS", + "ITERATE", + "JOIN", + "JSON_TABLE", + "KEY", + "KEYS", + "KILL", + "LAG", + "LAST_VALUE", + "LATERAL", + "LEAD", + "LEADING", + "LEAVE", + "LEFT", + "LIKE", + "LIMIT", + "LINEAR", + "LINES", + "LOAD", + "LOCALTIME", + "LOCALTIMESTAMP", + "LOCK", + "LONG", + "LONGBLOB", + "LONGTEXT", + "LOOP", + "LOW_PRIORITY", + "MASTER_BIND", + "MASTER_SSL_VERIFY_SERVER_CERT", + "MATCH", + "MAXVALUE", + "MEDIUMBLOB", + "MEDIUMINT", + "MEDIUMTEXT", + "MIDDLEINT", + "MINUTE_MICROSECOND", + "MINUTE_SECOND", + "MOD", + "MODIFIES", + "NATURAL", + "NOT", + "NO_WRITE_TO_BINLOG", + "NTH_VALUE", + "NTILE", + "NULL", + "NUMERIC", + "OF", + "ON", + "OPTIMIZE", + "OPTIMIZER_COSTS", + "OPTION", + "OPTIONALLY", + "OR", + "ORDER", + "OUT", + "OUTER", + "OUTFILE", + "OVER", + "PARTITION", + "PERCENT_RANK", + "PRECISION", + "PRIMARY", + "PROCEDURE", + "PURGE", + "RANGE", + "RANK", + "READ", + "READS", + "READ_WRITE", + "REAL", + "RECURSIVE", + "REFERENCES", + "REGEXP", + "RELEASE", + "RENAME", + "REPEAT", + "REPLACE", + "REQUIRE", + "RESIGNAL", + "RESTRICT", + "RETURN", + "REVOKE", + "RIGHT", + "RLIKE", + "ROW", + "ROWS", + "ROW_NUMBER", + "SCHEMA", + "SCHEMAS", + "SECOND_MICROSECOND", + "SELECT", + "SENSITIVE", + "SEPARATOR", + "SET", + "SHOW", + "SIGNAL", + "SMALLINT", + "SPATIAL", + "SPECIFIC", + "SQL", + "SQLEXCEPTION", + "SQLSTATE", + "SQLWARNING", + "SQL_BIG_RESULT", + "SQL_CALC_FOUND_ROWS", + "SQL_SMALL_RESULT", + "SSL", + "STARTING", + "STORED", + "STRAIGHT_JOIN", + "SYSTEM", + "TABLE", + "TERMINATED", + "THEN", + "TINYBLOB", + "TINYINT", + "TINYTEXT", + "TO", + "TRAILING", + "TRIGGER", + "TRUE", + "UNDO", + "UNION", + "UNIQUE", + "UNLOCK", + "UNSIGNED", + "UPDATE", + "USAGE", + "USE", + "USING", + "UTC_DATE", + "UTC_TIME", + "UTC_TIMESTAMP", + "VALUES", + "VARBINARY", + "VARCHAR", + "VARCHARACTER", + "VARYING", + "VIRTUAL", + "WHEN", + "WHERE", + "WHILE", + "WINDOW", + "WITH", + "WRITE", + "XOR", + "YEAR_MONTH", + "ZEROFILL" + ], + operators: [ + "AND", + "BETWEEN", + "IN", + "LIKE", + "NOT", + "OR", + "IS", + "NULL", + "INTERSECT", + "UNION", + "INNER", + "JOIN", + "LEFT", + "OUTER", + "RIGHT" + ], + builtinFunctions: [ + "ABS", + "ACOS", + "ADDDATE", + "ADDTIME", + "AES_DECRYPT", + "AES_ENCRYPT", + "ANY_VALUE", + "Area", + "AsBinary", + "AsWKB", + "ASCII", + "ASIN", + "AsText", + "AsWKT", + "ASYMMETRIC_DECRYPT", + "ASYMMETRIC_DERIVE", + "ASYMMETRIC_ENCRYPT", + "ASYMMETRIC_SIGN", + "ASYMMETRIC_VERIFY", + "ATAN", + "ATAN2", + "ATAN", + "AVG", + "BENCHMARK", + "BIN", + "BIT_AND", + "BIT_COUNT", + "BIT_LENGTH", + "BIT_OR", + "BIT_XOR", + "Buffer", + "CAST", + "CEIL", + "CEILING", + "Centroid", + "CHAR", + "CHAR_LENGTH", + "CHARACTER_LENGTH", + "CHARSET", + "COALESCE", + "COERCIBILITY", + "COLLATION", + "COMPRESS", + "CONCAT", + "CONCAT_WS", + "CONNECTION_ID", + "Contains", + "CONV", + "CONVERT", + "CONVERT_TZ", + "ConvexHull", + "COS", + "COT", + "COUNT", + "CRC32", + "CREATE_ASYMMETRIC_PRIV_KEY", + "CREATE_ASYMMETRIC_PUB_KEY", + "CREATE_DH_PARAMETERS", + "CREATE_DIGEST", + "Crosses", + "CUME_DIST", + "CURDATE", + "CURRENT_DATE", + "CURRENT_ROLE", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "CURTIME", + "DATABASE", + "DATE", + "DATE_ADD", + "DATE_FORMAT", + "DATE_SUB", + "DATEDIFF", + "DAY", + "DAYNAME", + "DAYOFMONTH", + "DAYOFWEEK", + "DAYOFYEAR", + "DECODE", + "DEFAULT", + "DEGREES", + "DES_DECRYPT", + "DES_ENCRYPT", + "DENSE_RANK", + "Dimension", + "Disjoint", + "Distance", + "ELT", + "ENCODE", + "ENCRYPT", + "EndPoint", + "Envelope", + "Equals", + "EXP", + "EXPORT_SET", + "ExteriorRing", + "EXTRACT", + "ExtractValue", + "FIELD", + "FIND_IN_SET", + "FIRST_VALUE", + "FLOOR", + "FORMAT", + "FORMAT_BYTES", + "FORMAT_PICO_TIME", + "FOUND_ROWS", + "FROM_BASE64", + "FROM_DAYS", + "FROM_UNIXTIME", + "GEN_RANGE", + "GEN_RND_EMAIL", + "GEN_RND_PAN", + "GEN_RND_SSN", + "GEN_RND_US_PHONE", + "GeomCollection", + "GeomCollFromText", + "GeometryCollectionFromText", + "GeomCollFromWKB", + "GeometryCollectionFromWKB", + "GeometryCollection", + "GeometryN", + "GeometryType", + "GeomFromText", + "GeometryFromText", + "GeomFromWKB", + "GeometryFromWKB", + "GET_FORMAT", + "GET_LOCK", + "GLength", + "GREATEST", + "GROUP_CONCAT", + "GROUPING", + "GTID_SUBSET", + "GTID_SUBTRACT", + "HEX", + "HOUR", + "ICU_VERSION", + "IF", + "IFNULL", + "INET_ATON", + "INET_NTOA", + "INET6_ATON", + "INET6_NTOA", + "INSERT", + "INSTR", + "InteriorRingN", + "Intersects", + "INTERVAL", + "IS_FREE_LOCK", + "IS_IPV4", + "IS_IPV4_COMPAT", + "IS_IPV4_MAPPED", + "IS_IPV6", + "IS_USED_LOCK", + "IS_UUID", + "IsClosed", + "IsEmpty", + "ISNULL", + "IsSimple", + "JSON_APPEND", + "JSON_ARRAY", + "JSON_ARRAY_APPEND", + "JSON_ARRAY_INSERT", + "JSON_ARRAYAGG", + "JSON_CONTAINS", + "JSON_CONTAINS_PATH", + "JSON_DEPTH", + "JSON_EXTRACT", + "JSON_INSERT", + "JSON_KEYS", + "JSON_LENGTH", + "JSON_MERGE", + "JSON_MERGE_PATCH", + "JSON_MERGE_PRESERVE", + "JSON_OBJECT", + "JSON_OBJECTAGG", + "JSON_OVERLAPS", + "JSON_PRETTY", + "JSON_QUOTE", + "JSON_REMOVE", + "JSON_REPLACE", + "JSON_SCHEMA_VALID", + "JSON_SCHEMA_VALIDATION_REPORT", + "JSON_SEARCH", + "JSON_SET", + "JSON_STORAGE_FREE", + "JSON_STORAGE_SIZE", + "JSON_TABLE", + "JSON_TYPE", + "JSON_UNQUOTE", + "JSON_VALID", + "LAG", + "LAST_DAY", + "LAST_INSERT_ID", + "LAST_VALUE", + "LCASE", + "LEAD", + "LEAST", + "LEFT", + "LENGTH", + "LineFromText", + "LineStringFromText", + "LineFromWKB", + "LineStringFromWKB", + "LineString", + "LN", + "LOAD_FILE", + "LOCALTIME", + "LOCALTIMESTAMP", + "LOCATE", + "LOG", + "LOG10", + "LOG2", + "LOWER", + "LPAD", + "LTRIM", + "MAKE_SET", + "MAKEDATE", + "MAKETIME", + "MASK_INNER", + "MASK_OUTER", + "MASK_PAN", + "MASK_PAN_RELAXED", + "MASK_SSN", + "MASTER_POS_WAIT", + "MAX", + "MBRContains", + "MBRCoveredBy", + "MBRCovers", + "MBRDisjoint", + "MBREqual", + "MBREquals", + "MBRIntersects", + "MBROverlaps", + "MBRTouches", + "MBRWithin", + "MD5", + "MEMBER OF", + "MICROSECOND", + "MID", + "MIN", + "MINUTE", + "MLineFromText", + "MultiLineStringFromText", + "MLineFromWKB", + "MultiLineStringFromWKB", + "MOD", + "MONTH", + "MONTHNAME", + "MPointFromText", + "MultiPointFromText", + "MPointFromWKB", + "MultiPointFromWKB", + "MPolyFromText", + "MultiPolygonFromText", + "MPolyFromWKB", + "MultiPolygonFromWKB", + "MultiLineString", + "MultiPoint", + "MultiPolygon", + "NAME_CONST", + "NOT IN", + "NOW", + "NTH_VALUE", + "NTILE", + "NULLIF", + "NumGeometries", + "NumInteriorRings", + "NumPoints", + "OCT", + "OCTET_LENGTH", + "OLD_PASSWORD", + "ORD", + "Overlaps", + "PASSWORD", + "PERCENT_RANK", + "PERIOD_ADD", + "PERIOD_DIFF", + "PI", + "Point", + "PointFromText", + "PointFromWKB", + "PointN", + "PolyFromText", + "PolygonFromText", + "PolyFromWKB", + "PolygonFromWKB", + "Polygon", + "POSITION", + "POW", + "POWER", + "PS_CURRENT_THREAD_ID", + "PS_THREAD_ID", + "PROCEDURE ANALYSE", + "QUARTER", + "QUOTE", + "RADIANS", + "RAND", + "RANDOM_BYTES", + "RANK", + "REGEXP_INSTR", + "REGEXP_LIKE", + "REGEXP_REPLACE", + "REGEXP_REPLACE", + "RELEASE_ALL_LOCKS", + "RELEASE_LOCK", + "REPEAT", + "REPLACE", + "REVERSE", + "RIGHT", + "ROLES_GRAPHML", + "ROUND", + "ROW_COUNT", + "ROW_NUMBER", + "RPAD", + "RTRIM", + "SCHEMA", + "SEC_TO_TIME", + "SECOND", + "SESSION_USER", + "SHA1", + "SHA", + "SHA2", + "SIGN", + "SIN", + "SLEEP", + "SOUNDEX", + "SOURCE_POS_WAIT", + "SPACE", + "SQRT", + "SRID", + "ST_Area", + "ST_AsBinary", + "ST_AsWKB", + "ST_AsGeoJSON", + "ST_AsText", + "ST_AsWKT", + "ST_Buffer", + "ST_Buffer_Strategy", + "ST_Centroid", + "ST_Collect", + "ST_Contains", + "ST_ConvexHull", + "ST_Crosses", + "ST_Difference", + "ST_Dimension", + "ST_Disjoint", + "ST_Distance", + "ST_Distance_Sphere", + "ST_EndPoint", + "ST_Envelope", + "ST_Equals", + "ST_ExteriorRing", + "ST_FrechetDistance", + "ST_GeoHash", + "ST_GeomCollFromText", + "ST_GeometryCollectionFromText", + "ST_GeomCollFromTxt", + "ST_GeomCollFromWKB", + "ST_GeometryCollectionFromWKB", + "ST_GeometryN", + "ST_GeometryType", + "ST_GeomFromGeoJSON", + "ST_GeomFromText", + "ST_GeometryFromText", + "ST_GeomFromWKB", + "ST_GeometryFromWKB", + "ST_HausdorffDistance", + "ST_InteriorRingN", + "ST_Intersection", + "ST_Intersects", + "ST_IsClosed", + "ST_IsEmpty", + "ST_IsSimple", + "ST_IsValid", + "ST_LatFromGeoHash", + "ST_Length", + "ST_LineFromText", + "ST_LineStringFromText", + "ST_LineFromWKB", + "ST_LineStringFromWKB", + "ST_LineInterpolatePoint", + "ST_LineInterpolatePoints", + "ST_LongFromGeoHash", + "ST_Longitude", + "ST_MakeEnvelope", + "ST_MLineFromText", + "ST_MultiLineStringFromText", + "ST_MLineFromWKB", + "ST_MultiLineStringFromWKB", + "ST_MPointFromText", + "ST_MultiPointFromText", + "ST_MPointFromWKB", + "ST_MultiPointFromWKB", + "ST_MPolyFromText", + "ST_MultiPolygonFromText", + "ST_MPolyFromWKB", + "ST_MultiPolygonFromWKB", + "ST_NumGeometries", + "ST_NumInteriorRing", + "ST_NumInteriorRings", + "ST_NumPoints", + "ST_Overlaps", + "ST_PointAtDistance", + "ST_PointFromGeoHash", + "ST_PointFromText", + "ST_PointFromWKB", + "ST_PointN", + "ST_PolyFromText", + "ST_PolygonFromText", + "ST_PolyFromWKB", + "ST_PolygonFromWKB", + "ST_Simplify", + "ST_SRID", + "ST_StartPoint", + "ST_SwapXY", + "ST_SymDifference", + "ST_Touches", + "ST_Transform", + "ST_Union", + "ST_Validate", + "ST_Within", + "ST_X", + "ST_Y", + "StartPoint", + "STATEMENT_DIGEST", + "STATEMENT_DIGEST_TEXT", + "STD", + "STDDEV", + "STDDEV_POP", + "STDDEV_SAMP", + "STR_TO_DATE", + "STRCMP", + "SUBDATE", + "SUBSTR", + "SUBSTRING", + "SUBSTRING_INDEX", + "SUBTIME", + "SUM", + "SYSDATE", + "SYSTEM_USER", + "TAN", + "TIME", + "TIME_FORMAT", + "TIME_TO_SEC", + "TIMEDIFF", + "TIMESTAMP", + "TIMESTAMPADD", + "TIMESTAMPDIFF", + "TO_BASE64", + "TO_DAYS", + "TO_SECONDS", + "Touches", + "TRIM", + "TRUNCATE", + "UCASE", + "UNCOMPRESS", + "UNCOMPRESSED_LENGTH", + "UNHEX", + "UNIX_TIMESTAMP", + "UpdateXML", + "UPPER", + "USER", + "UTC_DATE", + "UTC_TIME", + "UTC_TIMESTAMP", + "UUID", + "UUID_SHORT", + "UUID_TO_BIN", + "VALIDATE_PASSWORD_STRENGTH", + "VALUES", + "VAR_POP", + "VAR_SAMP", + "VARIANCE", + "VERSION", + "WAIT_FOR_EXECUTED_GTID_SET", + "WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS", + "WEEK", + "WEEKDAY", + "WEEKOFYEAR", + "WEIGHT_STRING", + "Within", + "X", + "Y", + "YEAR", + "YEARWEEK" + ], + builtinVariables: [], + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@complexIdentifiers" }, + { include: "@scopes" }, + [/[;,.]/, "delimiter"], + [/[()]/, "@brackets"], + [ + /[\w@]+/, + { + cases: { + "@operators": "operator", + "@builtinVariables": "predefined", + "@builtinFunctions": "predefined", + "@keywords": "keyword", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + [/--+.*/, "comment"], + [/#+.*/, "comment"], + [/\/\*/, { token: "comment.quote", next: "@comment" }] + ], + comment: [ + [/[^*/]+/, "comment"], + [/\*\//, { token: "comment.quote", next: "@pop" }], + [/./, "comment"] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [ + [/'/, { token: "string", next: "@string" }], + [/"/, { token: "string.double", next: "@stringDouble" }] + ], + string: [ + [/[^']+/, "string"], + [/''/, "string"], + [/'/, { token: "string", next: "@pop" }] + ], + stringDouble: [ + [/[^"]+/, "string.double"], + [/""/, "string.double"], + [/"/, { token: "string.double", next: "@pop" }] + ], + complexIdentifiers: [[/`/, { token: "identifier.quote", next: "@quotedIdentifier" }]], + quotedIdentifier: [ + [/[^`]+/, "identifier"], + [/``/, "identifier"], + [/`/, { token: "identifier.quote", next: "@pop" }] + ], + scopes: [] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/1961.6af70c85.js b/assets/js/1961.6af70c85.js new file mode 100644 index 00000000000..c6be1bdf33e --- /dev/null +++ b/assets/js/1961.6af70c85.js @@ -0,0 +1,2 @@ +/*! For license information please see 1961.6af70c85.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1961],{31961:(E,T,S)=>{S.r(T),S.d(T,{conf:()=>R,language:()=>A});var R={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},A={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BIGINT","BINARY","BLOB","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHAR","CHARACTER","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CUBE","CUME_DIST","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEC","DECIMAL","DECLARE","DEFAULT","DELAYED","DELETE","DENSE_RANK","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FIRST_VALUE","FLOAT","FLOAT4","FLOAT8","FOR","FORCE","FOREIGN","FROM","FULLTEXT","FUNCTION","GENERATED","GET","GRANT","GROUP","GROUPING","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","INTERVAL","INTO","IO_AFTER_GTIDS","IO_BEFORE_GTIDS","IS","ITERATE","JOIN","JSON_TABLE","KEY","KEYS","KILL","LAG","LAST_VALUE","LATERAL","LEAD","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LONGBLOB","LONGTEXT","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NTH_VALUE","NTILE","NULL","NUMERIC","OF","ON","OPTIMIZE","OPTIMIZER_COSTS","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PERCENT_RANK","PRECISION","PRIMARY","PROCEDURE","PURGE","RANGE","RANK","READ","READS","READ_WRITE","REAL","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","ROW","ROWS","ROW_NUMBER","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SMALLINT","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STORED","STRAIGHT_JOIN","SYSTEM","TABLE","TERMINATED","THEN","TINYBLOB","TINYINT","TINYTEXT","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VARBINARY","VARCHAR","VARCHARACTER","VARYING","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","Area","AsBinary","AsWKB","ASCII","ASIN","AsText","AsWKT","ASYMMETRIC_DECRYPT","ASYMMETRIC_DERIVE","ASYMMETRIC_ENCRYPT","ASYMMETRIC_SIGN","ASYMMETRIC_VERIFY","ATAN","ATAN2","ATAN","AVG","BENCHMARK","BIN","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","Buffer","CAST","CEIL","CEILING","Centroid","CHAR","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","Contains","CONV","CONVERT","CONVERT_TZ","ConvexHull","COS","COT","COUNT","CRC32","CREATE_ASYMMETRIC_PRIV_KEY","CREATE_ASYMMETRIC_PUB_KEY","CREATE_DH_PARAMETERS","CREATE_DIGEST","Crosses","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT","DEGREES","DES_DECRYPT","DES_ENCRYPT","DENSE_RANK","Dimension","Disjoint","Distance","ELT","ENCODE","ENCRYPT","EndPoint","Envelope","Equals","EXP","EXPORT_SET","ExteriorRing","EXTRACT","ExtractValue","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_PICO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEN_RANGE","GEN_RND_EMAIL","GEN_RND_PAN","GEN_RND_SSN","GEN_RND_US_PHONE","GeomCollection","GeomCollFromText","GeometryCollectionFromText","GeomCollFromWKB","GeometryCollectionFromWKB","GeometryCollection","GeometryN","GeometryType","GeomFromText","GeometryFromText","GeomFromWKB","GeometryFromWKB","GET_FORMAT","GET_LOCK","GLength","GREATEST","GROUP_CONCAT","GROUPING","GTID_SUBSET","GTID_SUBTRACT","HEX","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INSERT","INSTR","InteriorRingN","Intersects","INTERVAL","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","IS_UUID","IsClosed","IsEmpty","ISNULL","IsSimple","JSON_APPEND","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_ARRAYAGG","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LineFromText","LineStringFromText","LineFromWKB","LineStringFromWKB","LineString","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASK_INNER","MASK_OUTER","MASK_PAN","MASK_PAN_RELAXED","MASK_SSN","MASTER_POS_WAIT","MAX","MBRContains","MBRCoveredBy","MBRCovers","MBRDisjoint","MBREqual","MBREquals","MBRIntersects","MBROverlaps","MBRTouches","MBRWithin","MD5","MEMBER OF","MICROSECOND","MID","MIN","MINUTE","MLineFromText","MultiLineStringFromText","MLineFromWKB","MultiLineStringFromWKB","MOD","MONTH","MONTHNAME","MPointFromText","MultiPointFromText","MPointFromWKB","MultiPointFromWKB","MPolyFromText","MultiPolygonFromText","MPolyFromWKB","MultiPolygonFromWKB","MultiLineString","MultiPoint","MultiPolygon","NAME_CONST","NOT IN","NOW","NTH_VALUE","NTILE","NULLIF","NumGeometries","NumInteriorRings","NumPoints","OCT","OCTET_LENGTH","OLD_PASSWORD","ORD","Overlaps","PASSWORD","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","Point","PointFromText","PointFromWKB","PointN","PolyFromText","PolygonFromText","PolyFromWKB","PolygonFromWKB","Polygon","POSITION","POW","POWER","PS_CURRENT_THREAD_ID","PS_THREAD_ID","PROCEDURE ANALYSE","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_REPLACE","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","ROLES_GRAPHML","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SHA1","SHA","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SOURCE_POS_WAIT","SPACE","SQRT","SRID","ST_Area","ST_AsBinary","ST_AsWKB","ST_AsGeoJSON","ST_AsText","ST_AsWKT","ST_Buffer","ST_Buffer_Strategy","ST_Centroid","ST_Collect","ST_Contains","ST_ConvexHull","ST_Crosses","ST_Difference","ST_Dimension","ST_Disjoint","ST_Distance","ST_Distance_Sphere","ST_EndPoint","ST_Envelope","ST_Equals","ST_ExteriorRing","ST_FrechetDistance","ST_GeoHash","ST_GeomCollFromText","ST_GeometryCollectionFromText","ST_GeomCollFromTxt","ST_GeomCollFromWKB","ST_GeometryCollectionFromWKB","ST_GeometryN","ST_GeometryType","ST_GeomFromGeoJSON","ST_GeomFromText","ST_GeometryFromText","ST_GeomFromWKB","ST_GeometryFromWKB","ST_HausdorffDistance","ST_InteriorRingN","ST_Intersection","ST_Intersects","ST_IsClosed","ST_IsEmpty","ST_IsSimple","ST_IsValid","ST_LatFromGeoHash","ST_Length","ST_LineFromText","ST_LineStringFromText","ST_LineFromWKB","ST_LineStringFromWKB","ST_LineInterpolatePoint","ST_LineInterpolatePoints","ST_LongFromGeoHash","ST_Longitude","ST_MakeEnvelope","ST_MLineFromText","ST_MultiLineStringFromText","ST_MLineFromWKB","ST_MultiLineStringFromWKB","ST_MPointFromText","ST_MultiPointFromText","ST_MPointFromWKB","ST_MultiPointFromWKB","ST_MPolyFromText","ST_MultiPolygonFromText","ST_MPolyFromWKB","ST_MultiPolygonFromWKB","ST_NumGeometries","ST_NumInteriorRing","ST_NumInteriorRings","ST_NumPoints","ST_Overlaps","ST_PointAtDistance","ST_PointFromGeoHash","ST_PointFromText","ST_PointFromWKB","ST_PointN","ST_PolyFromText","ST_PolygonFromText","ST_PolyFromWKB","ST_PolygonFromWKB","ST_Simplify","ST_SRID","ST_StartPoint","ST_SwapXY","ST_SymDifference","ST_Touches","ST_Transform","ST_Union","ST_Validate","ST_Within","ST_X","ST_Y","StartPoint","STATEMENT_DIGEST","STATEMENT_DIGEST_TEXT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","Touches","TRIM","TRUNCATE","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UpdateXML","UPPER","USER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VALUES","VAR_POP","VAR_SAMP","VARIANCE","VERSION","WAIT_FOR_EXECUTED_GTID_SET","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","Within","X","Y","YEAR","YEARWEEK"],builtinVariables:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/#+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],complexIdentifiers:[[/`/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^`]+/,"identifier"],[/``/,"identifier"],[/`/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/assets/js/1961.6af70c85.js.LICENSE.txt b/assets/js/1961.6af70c85.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/1961.6af70c85.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/1984.9797305a.js b/assets/js/1984.9797305a.js new file mode 100644 index 00000000000..c7894ed6e3e --- /dev/null +++ b/assets/js/1984.9797305a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1984],{81984:(e,o,r)=>{r.r(o),r.d(o,{assets:()=>i,contentTitle:()=>n,default:()=>l,frontMatter:()=>a,metadata:()=>m,toc:()=>d});var t=r(87462),s=(r(67294),r(3905));const a={title:"Spreads: Common Errors & Fixes","short-title":"Spreads: Common Errors & Fixes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/spreads-common-errors-fixes-9701012e9d58"},n=void 0,m={permalink:"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes",source:"@site/blog/2019-10-30-Spreads-Common-Errors-and-Fixes.md",title:"Spreads: Common Errors & Fixes",description:"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.",date:"2019-10-30T00:00:00.000Z",formattedDate:"October 30, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Spreads: Common Errors & Fixes","short-title":"Spreads: Common Errors & Fixes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/spreads-common-errors-fixes-9701012e9d58"},prevItem:{title:"How to upgrade to exact-by-default object type syntax",permalink:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"},nextItem:{title:"Live Flow errors in your IDE",permalink:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"}},i={authorsImageUrls:[void 0]},d=[],p={toc:d};function l(e){let{components:o,...r}=e;return(0,s.mdx)("wrapper",(0,t.Z)({},p,r,{components:o,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1992.689143a6.js b/assets/js/1992.689143a6.js new file mode 100644 index 00000000000..73a9a9acec4 --- /dev/null +++ b/assets/js/1992.689143a6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[1992],{61992:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>c,toc:()=>i});var a=o(87462),n=(o(67294),o(3905));const r={title:"On the Roadmap: Exact Objects by Default","short-title":"Exact Objects by Default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/on-the-roadmap-exact-objects-by-default-16b72933c5cf"},s=void 0,c={permalink:"/blog/2018/10/18/Exact-Objects-By-Default",source:"@site/blog/2018-10-18-Exact-Objects-By-Default.md",title:"On the Roadmap: Exact Objects by Default",description:"We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade.",date:"2018-10-18T00:00:00.000Z",formattedDate:"October 18, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"On the Roadmap: Exact Objects by Default","short-title":"Exact Objects by Default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/on-the-roadmap-exact-objects-by-default-16b72933c5cf"},prevItem:{title:"Asking for Required Annotations",permalink:"/blog/2018/10/29/Asking-for-Required-Annotations"},nextItem:{title:"New Flow Errors on Unknown Property Access in Conditionals",permalink:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals"}},l={authorsImageUrls:[void 0]},i=[],d={toc:i};function u(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,a.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2040.39c04ae1.js b/assets/js/2040.39c04ae1.js new file mode 100644 index 00000000000..80f25700d07 --- /dev/null +++ b/assets/js/2040.39c04ae1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2040],{32040:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>r,toc:()=>u});var a=n(87462),s=(n(67294),n(3905));n(45475);const l={title:"Nominal & Structural Typing",slug:"/lang/nominal-structural"},o=void 0,r={unversionedId:"lang/nominal-structural",id:"lang/nominal-structural",title:"Nominal & Structural Typing",description:"A static type checker can use either the name (nominal typing) or the structure (structural typing)",source:"@site/docs/lang/nominal-structural.md",sourceDirName:"lang",slug:"/lang/nominal-structural",permalink:"/en/docs/lang/nominal-structural",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/nominal-structural.md",tags:[],version:"current",frontMatter:{title:"Nominal & Structural Typing",slug:"/lang/nominal-structural"},sidebar:"docsSidebar",previous:{title:"Type Variance",permalink:"/en/docs/lang/variance"},next:{title:"Depth Subtyping",permalink:"/en/docs/lang/depth-subtyping"}},i={},u=[{value:"Nominal typing",id:"toc-nominal-typing",level:2},{value:"Structural typing",id:"toc-structural-typing",level:2},{value:"In Flow",id:"in-flow",level:2},{value:"Functions are structurally typed",id:"toc-functions-are-structurally-typed",level:3},{value:"Objects are structurally typed",id:"toc-objects-are-structurally-typed",level:3},{value:"Classes are nominally typed",id:"toc-classes-are-nominally-typed",level:3},{value:"Opaque types",id:"opaque-types",level:3},{value:"Flow Enums",id:"flow-enums",level:3}],p={toc:u};function m(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"A static type checker can use either the name (nominal typing) or the structure (structural typing)\nof types when comparing them against other types (like when checking if one is a ",(0,s.mdx)("a",{parentName:"p",href:"../subtypes"},"subtype")," of another)."),(0,s.mdx)("h2",{id:"toc-nominal-typing"},"Nominal typing"),(0,s.mdx)("p",null,"Languages like C++, Java, and Swift have primarily nominal type systems."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"// Pseudo code: nominal system\nclass Foo { method(input: string) { /* ... */ } }\nclass Bar { method(input: string) { /* ... */ } }\n\nlet foo: Foo = new Bar(); // Error!\n")),(0,s.mdx)("p",null,"In this pseudo-code example, the nominal type system errors even though both classes have a method of the same name and type.\nThis is because the name (and declaration location) of the classes is different."),(0,s.mdx)("h2",{id:"toc-structural-typing"},"Structural typing"),(0,s.mdx)("p",null,"Languages like Go and Elm have primarily structural type systems."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"// Pseudo code: structural system\nclass Foo { method(input: string) { /* ... */ } }\nclass Bar { method(input: string) { /* ... */ } }\n\nlet foo: Foo = new Bar(); // Works!\n")),(0,s.mdx)("p",null,"In this pseudo-code example, the structural type system allows a ",(0,s.mdx)("inlineCode",{parentName:"p"},"Bar")," to be used as a ",(0,s.mdx)("inlineCode",{parentName:"p"},"Foo"),",\nsince both classes have methods and fields of the same name and type."),(0,s.mdx)("p",null,"If the shape of the classes differ however, then a structural system would produce an error:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"// Pseudo code\nclass Foo { method(input: string) { /* ... */ } }\nclass Bar { method(input: number) { /* ... */ } }\n\nlet foo: Foo = new Bar(); // Error!\n")),(0,s.mdx)("p",null,"We've demonstrated both nominal and structural typing of classes, but there are\nalso other complex types like objects and functions which can also be either\nnominally or structurally compared.\nAdditionally, a type system may have aspects of both structural and nominal systems."),(0,s.mdx)("h2",{id:"in-flow"},"In Flow"),(0,s.mdx)("p",null,"Flow uses structural typing for objects and functions, but nominal typing for classes."),(0,s.mdx)("h3",{id:"toc-functions-are-structurally-typed"},"Functions are structurally typed"),(0,s.mdx)("p",null,"When comparing a ",(0,s.mdx)("a",{parentName:"p",href:"../../types/functions"},"function type")," with a function it must have the same structure\nin order to be considered valid."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type FuncType = (input: string) => void;\nfunction func(input: string) { /* ... */ }\nlet test: FuncType = func; // Works!\n")),(0,s.mdx)("h3",{id:"toc-objects-are-structurally-typed"},"Objects are structurally typed"),(0,s.mdx)("p",null,"When comparing an ",(0,s.mdx)("a",{parentName:"p",href:"../../types/objects"},"object type")," with an object it must have the same structure\nin order to be considered valid."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type ObjType = {property: string};\nlet obj = {property: "value"};\nlet test: ObjType = obj; // Works\n')),(0,s.mdx)("h3",{id:"toc-classes-are-nominally-typed"},"Classes are nominally typed"),(0,s.mdx)("p",null,"When you have two ",(0,s.mdx)("a",{parentName:"p",href:"../../types/classes"},"classes")," with the same structure, they still are not\nconsidered equivalent because Flow uses nominal typing for classes."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":17,"endLine":3,"endColumn":25,"description":"Cannot assign `new Bar()` to `test` because `Bar` [1] is incompatible with `Foo` [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":17,"endLine":3,"endColumn":25,"description":"Cannot':!0,assign:!0,"`new":!0,"Bar()`":!0,to:!0,"`test`":!0,because:!0,"`Bar`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`Foo`":!0,"[2].":!0,'[incompatible-type]"}]':!0},"class Foo { method(input: string) { /* ... */ } }\nclass Bar { method(input: string) { /* ... */ } }\nlet test: Foo = new Bar(); // Error!\n")),(0,s.mdx)("p",null,"If you wanted to use a class structurally you could do that using an ",(0,s.mdx)("a",{parentName:"p",href:"../../types/interfaces"},"interface"),":"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface Interface {\n method(value: string): void;\n};\n\nclass Foo { method(input: string) { /* ... */ } }\nclass Bar { method(input: string) { /* ... */ } }\n\nlet test1: Interface = new Foo(); // Works\nlet test2: Interface = new Bar(); // Works\n")),(0,s.mdx)("h3",{id:"opaque-types"},"Opaque types"),(0,s.mdx)("p",null,"You can use ",(0,s.mdx)("a",{parentName:"p",href:"../../types/opaque-types"},"opaque types")," to turn a previously structurally typed alias into a nominal one (outside of the file that it is defined)."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'// A.js\nexport type MyTypeAlias = string;\nexport opaque type MyOpaqueType = string;\n\nconst x: MyTypeAlias = "hi"; // Works\nconst y: MyOpaqueType = "hi"; // Works\n')),(0,s.mdx)("p",null,"In a different file:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'// B.js\nimport type {MyTypeAlias, MyOpaqueType} from "A.js";\n\nconst x: MyTypeAlias = "hi"; // Works\nconst y: MyOpaqueType = "hi"; // Error! `MyOpaqueType` is not interchangable with `string`\n// ^^^^ Cannot assign "hi" to y because string is incompatible with MyOpaqueType\n')),(0,s.mdx)("h3",{id:"flow-enums"},"Flow Enums"),(0,s.mdx)("p",null,(0,s.mdx)("a",{parentName:"p",href:"../../enums"},"Flow Enums")," do not allow enum members with the same value, but which belong to different enums, to be used interchangeably."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":14,"endLine":8,"endColumn":16,"description":"Cannot assign `B.X` to `a` because `B` [1] is incompatible with `A` [2]. [incompatible-type]"}]','[{"startLine":8,"startColumn":14,"endLine":8,"endColumn":16,"description":"Cannot':!0,assign:!0,"`B.X`":!0,to:!0,"`a`":!0,because:!0,"`B`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`A`":!0,"[2].":!0,'[incompatible-type]"}]':!0},'enum A {\n X = "x",\n}\nenum B {\n X = "x",\n}\n\nconst a: A = B.X; // Error!\n')))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2060.1ce6877c.js b/assets/js/2060.1ce6877c.js new file mode 100644 index 00000000000..ab296587c95 --- /dev/null +++ b/assets/js/2060.1ce6877c.js @@ -0,0 +1,2 @@ +/*! For license information please see 2060.1ce6877c.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2060],{32060:(e,o,n)=>{n.r(o),n.d(o,{conf:()=>t,language:()=>s});var t={comments:{lineComment:";",blockComment:["#|","|#"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".scheme",brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],keywords:["case","do","let","loop","if","else","when","cons","car","cdr","cond","lambda","lambda*","syntax-rules","format","set!","quote","eval","append","list","list?","member?","load"],constants:["#t","#f"],operators:["eq?","eqv?","equal?","and","or","not","null?"],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,"number.hex"],[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/,"number.float"],[/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/,["keyword","white","variable"]],{include:"@whitespace"},{include:"@strings"},[/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,{cases:{"@keywords":"keyword","@constants":"constant","@operators":"operators","@default":"identifier"}}]],comment:[[/[^\|#]+/,"comment"],[/#\|/,"comment","@push"],[/\|#/,"comment","@pop"],[/[\|#]/,"comment"]],whitespace:[[/[ \t\r\n]+/,"white"],[/#\|/,"comment","@comment"],[/;.*$/,"comment"]],strings:[[/"$/,"string","@popall"],[/"(?=.)/,"string","@multiLineString"]],multiLineString:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string.escape"],[/"/,"string","@popall"],[/\\$/,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/2060.1ce6877c.js.LICENSE.txt b/assets/js/2060.1ce6877c.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2060.1ce6877c.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2060.b7f8986c.js b/assets/js/2060.b7f8986c.js new file mode 100644 index 00000000000..56d7c26ae2d --- /dev/null +++ b/assets/js/2060.b7f8986c.js @@ -0,0 +1,133 @@ +"use strict"; +exports.id = 2060; +exports.ids = [2060]; +exports.modules = { + +/***/ 32060: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/scheme/scheme.ts +var conf = { + comments: { + lineComment: ";", + blockComment: ["#|", "|#"] + }, + brackets: [ + ["(", ")"], + ["{", "}"], + ["[", "]"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ] +}; +var language = { + defaultToken: "", + ignoreCase: true, + tokenPostfix: ".scheme", + brackets: [ + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" } + ], + keywords: [ + "case", + "do", + "let", + "loop", + "if", + "else", + "when", + "cons", + "car", + "cdr", + "cond", + "lambda", + "lambda*", + "syntax-rules", + "format", + "set!", + "quote", + "eval", + "append", + "list", + "list?", + "member?", + "load" + ], + constants: ["#t", "#f"], + operators: ["eq?", "eqv?", "equal?", "and", "or", "not", "null?"], + tokenizer: { + root: [ + [/#[xXoObB][0-9a-fA-F]+/, "number.hex"], + [/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/, "number.float"], + [ + /(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/, + ["keyword", "white", "variable"] + ], + { include: "@whitespace" }, + { include: "@strings" }, + [ + /[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/, + { + cases: { + "@keywords": "keyword", + "@constants": "constant", + "@operators": "operators", + "@default": "identifier" + } + } + ] + ], + comment: [ + [/[^\|#]+/, "comment"], + [/#\|/, "comment", "@push"], + [/\|#/, "comment", "@pop"], + [/[\|#]/, "comment"] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/#\|/, "comment", "@comment"], + [/;.*$/, "comment"] + ], + strings: [ + [/"$/, "string", "@popall"], + [/"(?=.)/, "string", "@multiLineString"] + ], + multiLineString: [ + [/[^\\"]+$/, "string", "@popall"], + [/[^\\"]+/, "string"], + [/\\./, "string.escape"], + [/"/, "string", "@popall"], + [/\\$/, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2075.42cb52d9.js b/assets/js/2075.42cb52d9.js new file mode 100644 index 00000000000..760ef95859c --- /dev/null +++ b/assets/js/2075.42cb52d9.js @@ -0,0 +1,2 @@ +/*! For license information please see 2075.42cb52d9.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2075],{62075:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>r});var i={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},r={defaultToken:"",tokenPostfix:".css",ws:"[ \t\n\r\f]*",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.bracket"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},["[^)\r\n]+","string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/2075.42cb52d9.js.LICENSE.txt b/assets/js/2075.42cb52d9.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2075.42cb52d9.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2075.50b99f89.js b/assets/js/2075.50b99f89.js new file mode 100644 index 00000000000..718c36b9fde --- /dev/null +++ b/assets/js/2075.50b99f89.js @@ -0,0 +1,203 @@ +"use strict"; +exports.id = 2075; +exports.ids = [2075]; +exports.modules = { + +/***/ 62075: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/css/css.ts +var conf = { + wordPattern: /(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g, + comments: { + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "'", close: "'", notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"), + end: new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".css", + ws: "[ \n\r\f]*", + identifier: "-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*", + brackets: [ + { open: "{", close: "}", token: "delimiter.bracket" }, + { open: "[", close: "]", token: "delimiter.bracket" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + tokenizer: { + root: [{ include: "@selector" }], + selector: [ + { include: "@comments" }, + { include: "@import" }, + { include: "@strings" }, + [ + "[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)", + { token: "keyword", next: "@keyframedeclaration" } + ], + ["[@](page|content|font-face|-moz-document)", { token: "keyword" }], + ["[@](charset|namespace)", { token: "keyword", next: "@declarationbody" }], + [ + "(url-prefix)(\\()", + ["attribute.value", { token: "delimiter.parenthesis", next: "@urldeclaration" }] + ], + [ + "(url)(\\()", + ["attribute.value", { token: "delimiter.parenthesis", next: "@urldeclaration" }] + ], + { include: "@selectorname" }, + ["[\\*]", "tag"], + ["[>\\+,]", "delimiter"], + ["\\[", { token: "delimiter.bracket", next: "@selectorattribute" }], + ["{", { token: "delimiter.bracket", next: "@selectorbody" }] + ], + selectorbody: [ + { include: "@comments" }, + ["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))", "attribute.name", "@rulevalue"], + ["}", { token: "delimiter.bracket", next: "@pop" }] + ], + selectorname: [ + ["(\\.|#(?=[^{])|%|(@identifier)|:)+", "tag"] + ], + selectorattribute: [{ include: "@term" }, ["]", { token: "delimiter.bracket", next: "@pop" }]], + term: [ + { include: "@comments" }, + [ + "(url-prefix)(\\()", + ["attribute.value", { token: "delimiter.parenthesis", next: "@urldeclaration" }] + ], + [ + "(url)(\\()", + ["attribute.value", { token: "delimiter.parenthesis", next: "@urldeclaration" }] + ], + { include: "@functioninvocation" }, + { include: "@numbers" }, + { include: "@name" }, + { include: "@strings" }, + ["([<>=\\+\\-\\*\\/\\^\\|\\~,])", "delimiter"], + [",", "delimiter"] + ], + rulevalue: [ + { include: "@comments" }, + { include: "@strings" }, + { include: "@term" }, + ["!important", "keyword"], + [";", "delimiter", "@pop"], + ["(?=})", { token: "", next: "@pop" }] + ], + warndebug: [["[@](warn|debug)", { token: "keyword", next: "@declarationbody" }]], + import: [["[@](import)", { token: "keyword", next: "@declarationbody" }]], + urldeclaration: [ + { include: "@strings" }, + ["[^)\r\n]+", "string"], + ["\\)", { token: "delimiter.parenthesis", next: "@pop" }] + ], + parenthizedterm: [ + { include: "@term" }, + ["\\)", { token: "delimiter.parenthesis", next: "@pop" }] + ], + declarationbody: [ + { include: "@term" }, + [";", "delimiter", "@pop"], + ["(?=})", { token: "", next: "@pop" }] + ], + comments: [ + ["\\/\\*", "comment", "@comment"], + ["\\/\\/+.*", "comment"] + ], + comment: [ + ["\\*\\/", "comment", "@pop"], + [/[^*/]+/, "comment"], + [/./, "comment"] + ], + name: [["@identifier", "attribute.value"]], + numbers: [ + ["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?", { token: "attribute.value.number", next: "@units" }], + ["#[0-9a-fA-F_]+(?!\\w)", "attribute.value.hex"] + ], + units: [ + [ + "(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?", + "attribute.value.unit", + "@pop" + ] + ], + keyframedeclaration: [ + ["@identifier", "attribute.value"], + ["{", { token: "delimiter.bracket", switchTo: "@keyframebody" }] + ], + keyframebody: [ + { include: "@term" }, + ["{", { token: "delimiter.bracket", next: "@selectorbody" }], + ["}", { token: "delimiter.bracket", next: "@pop" }] + ], + functioninvocation: [ + ["@identifier\\(", { token: "attribute.value", next: "@functionarguments" }] + ], + functionarguments: [ + ["\\$@identifier@ws:", "attribute.name"], + ["[,]", "delimiter"], + { include: "@term" }, + ["\\)", { token: "attribute.value", next: "@pop" }] + ], + strings: [ + ['~?"', { token: "string", next: "@stringenddoublequote" }], + ["~?'", { token: "string", next: "@stringendquote" }] + ], + stringenddoublequote: [ + ["\\\\.", "string"], + ['"', { token: "string", next: "@pop" }], + [/[^\\"]+/, "string"], + [".", "string"] + ], + stringendquote: [ + ["\\\\.", "string"], + ["'", { token: "string", next: "@pop" }], + [/[^\\']+/, "string"], + [".", "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2108.c89cbfba.js b/assets/js/2108.c89cbfba.js new file mode 100644 index 00000000000..450d4bf694a --- /dev/null +++ b/assets/js/2108.c89cbfba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2108],{22108:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>p,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var a=t(87462),r=(t(67294),t(3905));const i={title:"Property Variance and Other Upcoming Changes","short-title":"Property Variance",author:"Sam Goldman",hide_table_of_contents:!0},p=void 0,o={permalink:"/blog/2016/10/04/Property-Variance",source:"@site/blog/2016-10-04-Property-Variance.md",title:"Property Variance and Other Upcoming Changes",description:"The next release of Flow, 0.34, will include a few important changes to object",date:"2016-10-04T00:00:00.000Z",formattedDate:"October 4, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"Property Variance and Other Upcoming Changes","short-title":"Property Variance",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Introducing Flow-Typed",permalink:"/blog/2016/10/13/Flow-Typed"},nextItem:{title:"Windows Support is Here!",permalink:"/blog/2016/08/01/Windows-Support"}},l={authorsImageUrls:[void 0]},s=[{value:"What is Variance?",id:"what-is-variance",level:3},{value:"Input and Output",id:"input-and-output",level:4},{value:"Property Invariance",id:"property-invariance",level:2},{value:"Property Variance",id:"property-variance",level:3},{value:"Invariant-by-default Dictionary Types",id:"invariant-by-default-dictionary-types",level:3},{value:"Covariant-by-default Method Types",id:"covariant-by-default-method-types",level:3},{value:"More Flexible Getters and Setters",id:"more-flexible-getters-and-setters",level:3}],d={toc:s};function m(e){let{components:n,...t}=e;return(0,r.mdx)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"The next release of Flow, 0.34, will include a few important changes to object\ntypes:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},"property variance,"),(0,r.mdx)("li",{parentName:"ul"},"invariant-by-default dictionary types,"),(0,r.mdx)("li",{parentName:"ul"},"covariant-by-default method types,"),(0,r.mdx)("li",{parentName:"ul"},"and more flexible getters and setters.")),(0,r.mdx)("h3",{id:"what-is-variance"},"What is Variance?"),(0,r.mdx)("p",null,"Defining the subtype relationship between types is a core responsibility of Flow\nas a type system. These relationships are determined either directly for\nsimple types or, for complex types, defined in terms of their parts."),(0,r.mdx)("p",null,"Variance describes the subtyping relationship for complex types as it relates\nto the subtyping relationships of their parts."),(0,r.mdx)("p",null,"For example, Flow directly encodes the knowledge that ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," is a subtype of\n",(0,r.mdx)("inlineCode",{parentName:"p"},"?string"),". Intuitively, a ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," type contains string values while a ",(0,r.mdx)("inlineCode",{parentName:"p"},"?string"),"\ntype contains ",(0,r.mdx)("inlineCode",{parentName:"p"},"null"),", ",(0,r.mdx)("inlineCode",{parentName:"p"},"undefined"),", and also string values, so membership in the\nformer naturally implies membership in the later."),(0,r.mdx)("p",null,"The subtype relationships between two function types is not as direct. Rather,\nit is derived from the subtype relationships between the functions' parameter\nand return types."),(0,r.mdx)("p",null,"Let's see how this works for two simple function types:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"type F1 = (x: P1) => R1;\ntype F2 = (x: P2) => R2;\n")),(0,r.mdx)("p",null,"Whether ",(0,r.mdx)("inlineCode",{parentName:"p"},"F2")," is a subtype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"F1")," depends on the relationships between ",(0,r.mdx)("inlineCode",{parentName:"p"},"P1")," and\n",(0,r.mdx)("inlineCode",{parentName:"p"},"P2")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"R1")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"R2"),". Let's use the notation ",(0,r.mdx)("inlineCode",{parentName:"p"},"B <: A")," to mean ",(0,r.mdx)("inlineCode",{parentName:"p"},"B")," is a\nsubtype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"A"),"."),(0,r.mdx)("p",null,"It turns out that ",(0,r.mdx)("inlineCode",{parentName:"p"},"F2 <: F1")," if ",(0,r.mdx)("inlineCode",{parentName:"p"},"P1 <: P2")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"R2 <: R1"),'. Notice that the\nrelationship for parameters is reversed? In technical terms, we can say that\nfunction types are "contravariant" with respect to their parameter types and\n"covariant" with respect to their return types.'),(0,r.mdx)("p",null,"Let's look at an example:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},'function f(callback: (x: string) => ?number): number {\n return callback("hi") || 0;\n}\n')),(0,r.mdx)("p",null,"What kinds of functions can we pass to ",(0,r.mdx)("inlineCode",{parentName:"p"},"f"),"? Based on the subtyping rule above,\nthen we can pass a function whose parameter type is a supertype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," and\nwhose return type is a subtype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"?number"),"."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function g(x: ?string): number {\n return x ? x.length : 0;\n}\nf(g);\n")),(0,r.mdx)("p",null,"The body of ",(0,r.mdx)("inlineCode",{parentName:"p"},"f")," will only ever pass ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," values into ",(0,r.mdx)("inlineCode",{parentName:"p"},"g"),", which is safe\nbecause ",(0,r.mdx)("inlineCode",{parentName:"p"},"g")," takes at least ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," by taking ",(0,r.mdx)("inlineCode",{parentName:"p"},"?string"),". Conversely, ",(0,r.mdx)("inlineCode",{parentName:"p"},"g")," will\nonly ever return ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," values to ",(0,r.mdx)("inlineCode",{parentName:"p"},"f"),", which is safe because ",(0,r.mdx)("inlineCode",{parentName:"p"},"f")," handles at\nleast ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," by handling ",(0,r.mdx)("inlineCode",{parentName:"p"},"?number"),"."),(0,r.mdx)("h4",{id:"input-and-output"},"Input and Output"),(0,r.mdx)("p",null,'One convenient way to remember when something is covariant vs. contravariant is\nto think about "input" and "output."'),(0,r.mdx)("p",null,"Parameters are in an ",(0,r.mdx)("em",{parentName:"p"},"input"),' position, often called a "negative" position.\nComplex types are contravariant in their input positions.'),(0,r.mdx)("p",null,"Return is an ",(0,r.mdx)("em",{parentName:"p"},"output"),' position, often called a "positive" position. Complex\ntypes are covariant in their output positions.'),(0,r.mdx)("h2",{id:"property-invariance"},"Property Invariance"),(0,r.mdx)("p",null,"Just as function types are composed of parameter and return types, so too are\nobject types composed of property types. Thus, the subtyping relationship\nbetween objects is derived from the subtyping relationships of their\nproperties."),(0,r.mdx)("p",null,"However, unlike functions which have input parameters and an output return,\nobject properties can be read and written. That is, properties are ",(0,r.mdx)("em",{parentName:"p"},"both")," input\nand output."),(0,r.mdx)("p",null,"Let's see how this works for two simple object types:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"type O1 = {p: T1};\ntype O2 = {p: T2};\n")),(0,r.mdx)("p",null,"As with function types, whether ",(0,r.mdx)("inlineCode",{parentName:"p"},"O2")," is a subtype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"O1")," depends on the\nrelationship between its parts, ",(0,r.mdx)("inlineCode",{parentName:"p"},"T1")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"T2"),"."),(0,r.mdx)("p",null,"Here it turns out that ",(0,r.mdx)("inlineCode",{parentName:"p"},"O2 <: O1")," if ",(0,r.mdx)("inlineCode",{parentName:"p"},"T2 <: T1")," ",(0,r.mdx)("em",{parentName:"p"},"and")," ",(0,r.mdx)("inlineCode",{parentName:"p"},"T1 <: T2"),'. In technical\nterms, object types are "invariant" with respect to their property types.'),(0,r.mdx)("p",null,"Let's look at an example:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function f(o: {p: ?string}): void {\n // We can read p from o\n let len: number;\n if (o.p) {\n len = o.p.length;\n } else {\n len = 0;\n }\n\n // We can also write into p\n o.p = null;\n}\n")),(0,r.mdx)("p",null,"What kinds of objects can we pass into ",(0,r.mdx)("inlineCode",{parentName:"p"},"f"),", then? If we try to pass in an\nobject with a subtype property, we get an error:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},'var o1: {p: string} = {p: ""};\nf(o1);\n')),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},'function f(o: {p: ?string}) {}\n ^ null. This type is incompatible with\nvar o1: {p: string} = {p: ""};\n ^ string\nfunction f(o: {p: ?string}) {}\n ^ undefined. This type is incompatible with\nvar o1: {p: string} = {p: ""};\n ^ string\n')),(0,r.mdx)("p",null,"Flow has correctly identified an error here. If the body of ",(0,r.mdx)("inlineCode",{parentName:"p"},"f")," writes ",(0,r.mdx)("inlineCode",{parentName:"p"},"null"),"\ninto ",(0,r.mdx)("inlineCode",{parentName:"p"},"o.p"),", then ",(0,r.mdx)("inlineCode",{parentName:"p"},"o1.p")," would no longer have type ",(0,r.mdx)("inlineCode",{parentName:"p"},"string"),"."),(0,r.mdx)("p",null,"If we try to pass an object with a supertype property, we again get an error:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"var o2: {p: ?(string|number)} = {p: 0};\nf(o2);\n")),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},'var o1: {p: ?(string|number)} = {p: ""};\n ^ number. This type is incompatible with\nfunction f(o: {p: ?string}) {}\n ^ string\n')),(0,r.mdx)("p",null,"Again, Flow correctly identifies an error, because if ",(0,r.mdx)("inlineCode",{parentName:"p"},"f")," tried to read ",(0,r.mdx)("inlineCode",{parentName:"p"},"p"),"\nfrom ",(0,r.mdx)("inlineCode",{parentName:"p"},"o"),", it would find a number."),(0,r.mdx)("h3",{id:"property-variance"},"Property Variance"),(0,r.mdx)("p",null,"So objects have to be invariant with respect to their property types because\nproperties can be read from and written to. But just because you ",(0,r.mdx)("em",{parentName:"p"},"can")," read and\nwrite, doesn't mean you always do."),(0,r.mdx)("p",null,"Consider a function that gets the length of an nullable string property:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function f(o: {p: ?string}): number {\n return o.p ? o.p.length : 0;\n}\n")),(0,r.mdx)("p",null,"We never write into ",(0,r.mdx)("inlineCode",{parentName:"p"},"o.p"),", so we should be able to pass in an object where the\ntype of property ",(0,r.mdx)("inlineCode",{parentName:"p"},"p")," is a subtype of ",(0,r.mdx)("inlineCode",{parentName:"p"},"?string"),". Until now, this wasn't possible\nin Flow."),(0,r.mdx)("p",null,"With property variance, you can explicitly annotate object properties as being\ncovariant and contravariant. For example, we can rewrite the above function:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},'function f(o: {+p: ?string}): number {\n return o.p ? o.p.length : 0;\n}\n\nvar o: {p: string} = {p: ""};\nf(o); // no type error!\n')),(0,r.mdx)("p",null,"It's crucial that covariant properties only ever appear in output positions. It\nis an error to write to a covariant property:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function f(o: {+p: ?string}) {\n o.p = null;\n}\n")),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"o.p = null;\n^ object type. Covariant property `p` incompatible with contravariant use in\no.p = null;\n^ assignment of property `p`\n")),(0,r.mdx)("p",null,"Conversely, if a function only ever writes to a property, we can annotate the\nproperty as contravariant. This might come up in a function that initializes an\nobject with default values, for example."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},'function g(o: {-p: string}): void {\n o.p = "default";\n}\nvar o: {p: ?string} = {p: null};\ng(o);\n')),(0,r.mdx)("p",null,"Contravariant properties can only ever appear in input positions. It is an\nerror to read from a contravariant property:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function f(o: {-p: string}) {\n o.p.length;\n}\n")),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"o.p.length;\n^ object type. Contravariant property `p` incompatible with covariant use in\no.p.length;\n^ property `p`\n")),(0,r.mdx)("h3",{id:"invariant-by-default-dictionary-types"},"Invariant-by-default Dictionary Types"),(0,r.mdx)("p",null,"The object type ",(0,r.mdx)("inlineCode",{parentName:"p"},"{[key: string]: ?number}")," describes an object that can be used\nas a map. We can read any property and Flow will infer the result type as\n",(0,r.mdx)("inlineCode",{parentName:"p"},"?number"),". We can also write ",(0,r.mdx)("inlineCode",{parentName:"p"},"null")," or ",(0,r.mdx)("inlineCode",{parentName:"p"},"undefined")," or ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," into any\nproperty."),(0,r.mdx)("p",null,"In Flow 0.33 and earlier, these dictionary types were treated covariantly by\nthe type system. For example, Flow accepted the following code:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"function f(o: {[key: string]: ?number}) {\n o.p = null;\n}\ndeclare var o: {p: number};\nf(o);\n")),(0,r.mdx)("p",null,"This is unsound because ",(0,r.mdx)("inlineCode",{parentName:"p"},"f")," can overwrite property ",(0,r.mdx)("inlineCode",{parentName:"p"},"p")," with ",(0,r.mdx)("inlineCode",{parentName:"p"},"null"),". In Flow\n0.34, dictionaries are invariant, like named properties. The same code now\nresults in the following type error:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"function f(o: {[key: string]: ?number}) {}\n ^ null. This type is incompatible with\ndeclare var o: {p: number};\n ^ number\nfunction f(o: {[key: string]: ?number}) {}\n ^ undefined. This type is incompatible with\ndeclare var o: {p: number};\n ^ number\n")),(0,r.mdx)("p",null,"Covariant and contravariant dictionaries can be incredibly useful, though. To\nsupport this, the same syntax used to support variance for named properties can\nbe used for dictionaries as well."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"function f(o: {+[key: string]: ?number}) {}\ndeclare var o: {p: number};\nf(o); // no type error!\n")),(0,r.mdx)("h3",{id:"covariant-by-default-method-types"},"Covariant-by-default Method Types"),(0,r.mdx)("p",null,"ES6 gave us a shorthand way to write object properties which are functions."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"var o = {\n m(x) {\n return x * 2\n }\n}\n")),(0,r.mdx)("p",null,"Flow now interprets properties which use this shorthand method syntax as\ncovariant by default. This means it is an error to write to the property ",(0,r.mdx)("inlineCode",{parentName:"p"},"m"),"."),(0,r.mdx)("p",null,"If you don't want covariance, you can use the long form syntax:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"var o = {\n m: function(x) {\n return x * 2;\n }\n}\n")),(0,r.mdx)("h3",{id:"more-flexible-getters-and-setters"},"More Flexible Getters and Setters"),(0,r.mdx)("p",null,"In Flow 0.33 and earlier, getters and setters had to agree exactly on their\nreturn type and parameter type, respectively. Flow 0.34 lifts that restriction."),(0,r.mdx)("p",null,"This means you can write code like the following:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},'// @flow\ndeclare var x: string;\n\nvar o = {\n get x(): string {\n return x;\n },\n set x(value: ?string) {\n x = value || "default";\n }\n}\n')))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2140.0307ae92.js b/assets/js/2140.0307ae92.js new file mode 100644 index 00000000000..539911c1ca5 --- /dev/null +++ b/assets/js/2140.0307ae92.js @@ -0,0 +1,2 @@ +/*! For license information please see 2140.0307ae92.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2140],{22140:(e,o,r)=>{r.r(o),r.d(o,{conf:()=>t,language:()=>a});var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},a={defaultToken:"",tokenPostfix:".r",roxygen:["@alias","@aliases","@assignee","@author","@backref","@callGraph","@callGraphDepth","@callGraphPrimitives","@concept","@describeIn","@description","@details","@docType","@encoding","@evalNamespace","@evalRd","@example","@examples","@export","@exportClass","@exportMethod","@exportPattern","@family","@field","@formals","@format","@import","@importClassesFrom","@importFrom","@importMethodsFrom","@include","@inherit","@inheritDotParams","@inheritParams","@inheritSection","@keywords","@md","@method","@name","@noMd","@noRd","@note","@param","@rawNamespace","@rawRd","@rdname","@references","@return","@S3method","@section","@seealso","@setClass","@slot","@source","@template","@templateVar","@title","@TODO","@usage","@useDynLib"],constants:["NULL","FALSE","TRUE","NA","Inf","NaN","NA_integer_","NA_real_","NA_complex_","NA_character_","T","F","LETTERS","letters","month.abb","month.name","pi","R.version.string"],keywords:["break","next","return","if","else","for","in","repeat","while","array","category","character","complex","double","function","integer","list","logical","matrix","numeric","vector","data.frame","factor","library","require","attach","detach","source"],special:["\\n","\\r","\\t","\\b","\\a","\\f","\\v","\\'",'\\"',"\\\\"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@numbers"},{include:"@strings"},[/[{}\[\]()]/,"@brackets"],{include:"@operators"},[/#'$/,"comment.doc"],[/#'/,"comment.doc","@roxygen"],[/(^#.*$)/,"comment"],[/\s+/,"white"],[/[,:;]/,"delimiter"],[/@[a-zA-Z]\w*/,"tag"],[/[a-zA-Z]\w*/,{cases:{"@keywords":"keyword","@constants":"constant","@default":"identifier"}}]],roxygen:[[/@\w+/,{cases:{"@roxygen":"tag","@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/\s+/,{cases:{"@eos":{token:"comment.doc",next:"@pop"},"@default":"comment.doc"}}],[/.*/,{token:"comment.doc",next:"@pop"}]],numbers:[[/0[xX][0-9a-fA-F]+/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?/,"number"]],operators:[[/<{1,2}-/,"operator"],[/->{1,2}/,"operator"],[/%[^%\s]+%/,"operator"],[/\*\*/,"operator"],[/%%/,"operator"],[/&&/,"operator"],[/\|\|/,"operator"],[/<>/,"operator"],[/[-+=&|!<>^~*/:$]/,"operator"]],strings:[[/'/,"string.escape","@stringBody"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/'/,"string.escape","@popall"],[/./,"string"]],dblStringBody:[[/\\./,{cases:{"@special":"string","@default":"error-token"}}],[/"/,"string.escape","@popall"],[/./,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/2140.0307ae92.js.LICENSE.txt b/assets/js/2140.0307ae92.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2140.0307ae92.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2140.45018a21.js b/assets/js/2140.45018a21.js new file mode 100644 index 00000000000..3fbc3409d74 --- /dev/null +++ b/assets/js/2140.45018a21.js @@ -0,0 +1,264 @@ +"use strict"; +exports.id = 2140; +exports.ids = [2140]; +exports.modules = { + +/***/ 22140: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/r/r.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".r", + roxygen: [ + "@alias", + "@aliases", + "@assignee", + "@author", + "@backref", + "@callGraph", + "@callGraphDepth", + "@callGraphPrimitives", + "@concept", + "@describeIn", + "@description", + "@details", + "@docType", + "@encoding", + "@evalNamespace", + "@evalRd", + "@example", + "@examples", + "@export", + "@exportClass", + "@exportMethod", + "@exportPattern", + "@family", + "@field", + "@formals", + "@format", + "@import", + "@importClassesFrom", + "@importFrom", + "@importMethodsFrom", + "@include", + "@inherit", + "@inheritDotParams", + "@inheritParams", + "@inheritSection", + "@keywords", + "@md", + "@method", + "@name", + "@noMd", + "@noRd", + "@note", + "@param", + "@rawNamespace", + "@rawRd", + "@rdname", + "@references", + "@return", + "@S3method", + "@section", + "@seealso", + "@setClass", + "@slot", + "@source", + "@template", + "@templateVar", + "@title", + "@TODO", + "@usage", + "@useDynLib" + ], + constants: [ + "NULL", + "FALSE", + "TRUE", + "NA", + "Inf", + "NaN", + "NA_integer_", + "NA_real_", + "NA_complex_", + "NA_character_", + "T", + "F", + "LETTERS", + "letters", + "month.abb", + "month.name", + "pi", + "R.version.string" + ], + keywords: [ + "break", + "next", + "return", + "if", + "else", + "for", + "in", + "repeat", + "while", + "array", + "category", + "character", + "complex", + "double", + "function", + "integer", + "list", + "logical", + "matrix", + "numeric", + "vector", + "data.frame", + "factor", + "library", + "require", + "attach", + "detach", + "source" + ], + special: ["\\n", "\\r", "\\t", "\\b", "\\a", "\\f", "\\v", "\\'", '\\"', "\\\\"], + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.bracket" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + tokenizer: { + root: [ + { include: "@numbers" }, + { include: "@strings" }, + [/[{}\[\]()]/, "@brackets"], + { include: "@operators" }, + [/#'$/, "comment.doc"], + [/#'/, "comment.doc", "@roxygen"], + [/(^#.*$)/, "comment"], + [/\s+/, "white"], + [/[,:;]/, "delimiter"], + [/@[a-zA-Z]\w*/, "tag"], + [ + /[a-zA-Z]\w*/, + { + cases: { + "@keywords": "keyword", + "@constants": "constant", + "@default": "identifier" + } + } + ] + ], + roxygen: [ + [ + /@\w+/, + { + cases: { + "@roxygen": "tag", + "@eos": { token: "comment.doc", next: "@pop" }, + "@default": "comment.doc" + } + } + ], + [ + /\s+/, + { + cases: { + "@eos": { token: "comment.doc", next: "@pop" }, + "@default": "comment.doc" + } + } + ], + [/.*/, { token: "comment.doc", next: "@pop" }] + ], + numbers: [ + [/0[xX][0-9a-fA-F]+/, "number.hex"], + [/-?(\d*\.)?\d+([eE][+\-]?\d+)?/, "number"] + ], + operators: [ + [/<{1,2}-/, "operator"], + [/->{1,2}/, "operator"], + [/%[^%\s]+%/, "operator"], + [/\*\*/, "operator"], + [/%%/, "operator"], + [/&&/, "operator"], + [/\|\|/, "operator"], + [/<>/, "operator"], + [/[-+=&|!<>^~*/:$]/, "operator"] + ], + strings: [ + [/'/, "string.escape", "@stringBody"], + [/"/, "string.escape", "@dblStringBody"] + ], + stringBody: [ + [ + /\\./, + { + cases: { + "@special": "string", + "@default": "error-token" + } + } + ], + [/'/, "string.escape", "@popall"], + [/./, "string"] + ], + dblStringBody: [ + [ + /\\./, + { + cases: { + "@special": "string", + "@default": "error-token" + } + } + ], + [/"/, "string.escape", "@popall"], + [/./, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2160.b1954ec2.js b/assets/js/2160.b1954ec2.js new file mode 100644 index 00000000000..e3c840734a9 --- /dev/null +++ b/assets/js/2160.b1954ec2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2160],{92160:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=a(87462),r=(a(67294),a(3905));const o={title:"Property Variance and Other Upcoming Changes","short-title":"Property Variance",author:"Sam Goldman",hide_table_of_contents:!0},i=void 0,l={permalink:"/blog/2016/10/04/Property-Variance",source:"@site/blog/2016-10-04-Property-Variance.md",title:"Property Variance and Other Upcoming Changes",description:"The next release of Flow, 0.34, will include a few important changes to object",date:"2016-10-04T00:00:00.000Z",formattedDate:"October 4, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"Property Variance and Other Upcoming Changes","short-title":"Property Variance",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Introducing Flow-Typed",permalink:"/blog/2016/10/13/Flow-Typed"},nextItem:{title:"Windows Support is Here!",permalink:"/blog/2016/08/01/Windows-Support"}},p={authorsImageUrls:[void 0]},s=[],d={toc:s};function m(e){let{components:t,...a}=e;return(0,r.mdx)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"The next release of Flow, 0.34, will include a few important changes to object\ntypes:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},"property variance,"),(0,r.mdx)("li",{parentName:"ul"},"invariant-by-default dictionary types,"),(0,r.mdx)("li",{parentName:"ul"},"covariant-by-default method types,"),(0,r.mdx)("li",{parentName:"ul"},"and more flexible getters and setters.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2175.a467d67a.js b/assets/js/2175.a467d67a.js new file mode 100644 index 00000000000..09795933a4f --- /dev/null +++ b/assets/js/2175.a467d67a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2175],{22175:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>s,contentTitle:()=>r,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var n=t(87462),a=(t(67294),t(3905));t(45475);const l={title:"Usage",slug:"/usage"},r=void 0,i={unversionedId:"usage",id:"usage",title:"Usage",description:"Once you have installed Flow, you will want to get a feel of how to use Flow at the most basic level. For most new Flow projects, you will follow this general pattern:",source:"@site/docs/usage.md",sourceDirName:".",slug:"/usage",permalink:"/en/docs/usage",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/usage.md",tags:[],version:"current",frontMatter:{title:"Usage",slug:"/usage"},sidebar:"docsSidebar",previous:{title:"Installation",permalink:"/en/docs/install"},next:{title:"FAQ",permalink:"/en/docs/faq"}},s={},c=[{value:"Initialize Your Project",id:"toc-initialize-your-project",level:3},{value:"Run the Flow Background Process",id:"toc-run-the-flow-background-process",level:3},{value:"Prepare Your Code for Flow",id:"toc-prepare-your-code-for-flow",level:3},{value:"Write Flow Code",id:"toc-write-flow-code",level:3},{value:"Check Your Code",id:"toc-check-your-code",level:3}],d={toc:c};function u(e){let{components:o,...t}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},d,t,{components:o,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Once you have ",(0,a.mdx)("a",{parentName:"p",href:"../install/"},"installed")," Flow, you will want to get a feel of how to use Flow at the most basic level. For most new Flow projects, you will follow this general pattern:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"#toc-initialize-your-project"},"Initialize your project")," with ",(0,a.mdx)("inlineCode",{parentName:"li"},"flow init"),"."),(0,a.mdx)("li",{parentName:"ul"},"Start the ",(0,a.mdx)("a",{parentName:"li",href:"#toc-run-the-flow-background-process"},"Flow background process")," with ",(0,a.mdx)("inlineCode",{parentName:"li"},"flow"),"."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"#toc-prepare-your-code-for-flow"},"Determine")," which files Flow will monitor with ",(0,a.mdx)("inlineCode",{parentName:"li"},"// @flow"),"."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"#toc-write-flow-code"},"Write Flow code")," for your project."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"#toc-check-your-code"},"Check your code")," for type errors.")),(0,a.mdx)("h3",{id:"toc-initialize-your-project"},"Initialize Your Project"),(0,a.mdx)("p",null,"Preparing a project for Flow requires only one command:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},"flow init\n")),(0,a.mdx)("p",null,"Run this command at the top level of your project to create one, empty file called ",(0,a.mdx)("a",{parentName:"p",href:"../config/"},(0,a.mdx)("inlineCode",{parentName:"a"},".flowconfig")),". At its most basic level, ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig")," tells the Flow background process the root of where to begin checking Flow code for errors."),(0,a.mdx)("p",null,"And that is it. Your project is now Flow-enabled."),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"It is common to have an empty ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file for your project. However, you can ",(0,a.mdx)("a",{parentName:"p",href:"../config/"},"configure and customize Flow")," in many ways through options available to be added to ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig"),".")),(0,a.mdx)("h3",{id:"toc-run-the-flow-background-process"},"Run the Flow Background Process"),(0,a.mdx)("p",null,"The core benefit to Flow is its ability to quickly check your code for errors. Once you have enabled your project for Flow, you can start the process that allows Flow to check your code incrementally and with great speed."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},"flow status\n")),(0,a.mdx)("p",null,"This command first starts a background process that will check all ",(0,a.mdx)("a",{parentName:"p",href:"#toc-prepare-your-code-for-flow"},"Flow files")," for errors. The background process continues running, monitoring changes to your code and checking those changes incrementally for errors."),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"You can also type ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow")," to accomplish the same effect as ",(0,a.mdx)("inlineCode",{parentName:"p"},"status")," is the default flag to the ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow")," binary.")),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"Only one background process will be running at any given time, so if you run ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow status")," multiple times, it will use the same process.")),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"To stop the background process, run ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow stop"),".")),(0,a.mdx)("h3",{id:"toc-prepare-your-code-for-flow"},"Prepare Your Code for Flow"),(0,a.mdx)("p",null,"The Flow background process monitors all Flow files. However, how does it know which files are Flow files and, thus, should be checked? Placing the following ",(0,a.mdx)("strong",{parentName:"p"},"before any code")," in a JavaScript file is the flag the process uses to answer that question."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"// @flow\n")),(0,a.mdx)("p",null,"This flag is in the form of a normal JavaScript comment annotated with ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow"),". The Flow background process gathers all the files with this flag and uses the type information available from all of these files to ensure consistency and error free programming."),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"You can also use the form ",(0,a.mdx)("inlineCode",{parentName:"p"},"/* @flow */")," for the flag as well.")),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"For files in your project without this flag, the Flow background process skips and ignores the code (unless you call ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow check --all"),", which is beyond the scope of basic usage).")),(0,a.mdx)("h3",{id:"toc-write-flow-code"},"Write Flow Code"),(0,a.mdx)("p",null,"Now that all the setup and initialization is complete, you are ready to write actual Flow code. For each file that you have flagged with ",(0,a.mdx)("inlineCode",{parentName:"p"},"// @flow"),", you now have the full power of Flow and its type-checking available to you. Here is an example Flow file:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":12,"endLine":3,"endColumn":12,"description":"Cannot return `x` because number [1] is incompatible with string [2]. [incompatible-return]"}]','[{"startLine":3,"startColumn":12,"endLine":3,"endColumn":12,"description":"Cannot':!0,return:!0,"`x`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,'[incompatible-return]"}]':!0},'function foo(x: ?number): string {\n if (x) {\n return x;\n }\n return "default string";\n}\n')),(0,a.mdx)("p",null,"Notice the types added to the parameter of the function along with a return type at the end of the function. You might be able to tell from looking at this code that there is an error in the return type since the function can also return a ",(0,a.mdx)("inlineCode",{parentName:"p"},"number"),". However, you do not need to visually inspect the code since the Flow background process will be able to catch this error for you when you ",(0,a.mdx)("a",{parentName:"p",href:"#toc-check-your-code"},"check your code"),"."),(0,a.mdx)("h3",{id:"toc-check-your-code"},"Check Your Code"),(0,a.mdx)("p",null,"The great thing about Flow is that you can get near real-time feedback on the state of your code. At any point that you want to check for errors, just run:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},"# equivalent to `flow status`\nflow\n")),(0,a.mdx)("p",null,"The first time this is run, the ",(0,a.mdx)("a",{parentName:"p",href:"#toc-run-flow-background-process"},"Flow background process")," will be spawned and all of your Flow files will be checked. Then, as you continue to iterate on your project, the background process will continuously monitor your code such that when you run ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow")," again, the updated result will be near instantaneous."),(0,a.mdx)("p",null,"For the ",(0,a.mdx)("a",{parentName:"p",href:"#toc-write-flow-code"},"code above"),", running ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow")," will yield:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},"3:12-3:12: Cannot return `x` because number is incompatible with string. [incompatible-return]\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2240.a40b3926.js b/assets/js/2240.a40b3926.js new file mode 100644 index 00000000000..6f3d3b67d4b --- /dev/null +++ b/assets/js/2240.a40b3926.js @@ -0,0 +1,2 @@ +/*! For license information please see 2240.a40b3926.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2240],{92240:(e,t,i)=>{i.r(t),i.d(t,{conf:()=>n,language:()=>o});var n={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:'"',close:'"'}],autoClosingPairs:[{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["comment"]},{open:'"""',close:'"""'},{open:"`",close:"`",notIn:["string","comment"]},{open:"(",close:")"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"<<",close:">>"}],indentationRules:{increaseIndentPattern:/^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/,decreaseIndentPattern:/^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/}},o={defaultToken:"source",tokenPostfix:".elixir",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"<<",close:">>",token:"delimiter.angle.special"}],declarationKeywords:["def","defp","defn","defnp","defguard","defguardp","defmacro","defmacrop","defdelegate","defcallback","defmacrocallback","defmodule","defprotocol","defexception","defimpl","defstruct"],operatorKeywords:["and","in","not","or","when"],namespaceKeywords:["alias","import","require","use"],otherKeywords:["after","case","catch","cond","do","else","end","fn","for","if","quote","raise","receive","rescue","super","throw","try","unless","unquote_splicing","unquote","with"],constants:["true","false","nil"],nameBuiltin:["__MODULE__","__DIR__","__ENV__","__CALLER__","__STACKTRACE__"],operator:/-[->]?|!={0,2}|\*{1,2}|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/,variableName:/[a-z_][a-zA-Z0-9_]*[?!]?/,atomName:/[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,specialAtomName:/\.\.\.|<<>>|%\{\}|%|\{\}/,aliasPart:/[A-Z][a-zA-Z0-9_]*/,moduleName:/@aliasPart(?:\.@aliasPart)*/,sigilSymmetricDelimiter:/"""|'''|"|'|\/|\|/,sigilStartDelimiter:/@sigilSymmetricDelimiter|<|\{|\[|\(/,sigilEndDelimiter:/@sigilSymmetricDelimiter|>|\}|\]|\)/,sigilModifiers:/[a-zA-Z0-9]*/,decimal:/\d(?:_?\d)*/,hex:/[0-9a-fA-F](_?[0-9a-fA-F])*/,octal:/[0-7](_?[0-7])*/,binary:/[01](_?[01])*/,escape:/\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./,tokenizer:{root:[{include:"@whitespace"},{include:"@comments"},{include:"@keywordsShorthand"},{include:"@numbers"},{include:"@identifiers"},{include:"@strings"},{include:"@atoms"},{include:"@sigils"},{include:"@attributes"},{include:"@symbols"}],whitespace:[[/\s+/,"white"]],comments:[[/(#)(.*)/,["comment.punctuation","comment"]]],keywordsShorthand:[[/(@atomName)(:)/,["constant","constant.punctuation"]],[/"(?=([^"]|#\{.*?\}|\\")*":)/,{token:"constant.delimiter",next:"@doubleQuotedStringKeyword"}],[/'(?=([^']|#\{.*?\}|\\')*':)/,{token:"constant.delimiter",next:"@singleQuotedStringKeyword"}]],doubleQuotedStringKeyword:[[/":/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringKeyword:[[/':/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],numbers:[[/0b@binary/,"number.binary"],[/0o@octal/,"number.octal"],[/0x@hex/,"number.hex"],[/@decimal\.@decimal([eE]-?@decimal)?/,"number.float"],[/@decimal/,"number"]],identifiers:[[/\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/,["keyword.declaration","white",{cases:{unquote:"keyword","@default":"function"}}]],[/(@variableName)(?=\s*\.?\s*\()/,{cases:{"@declarationKeywords":"keyword.declaration","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@default":"function.call"}}],[/(@moduleName)(\s*)(\.)(\s*)(@variableName)/,["type.identifier","white","operator","white","function.call"]],[/(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/,["constant.punctuation","constant","white","operator","white","function.call"]],[/(\|>)(\s*)(@variableName)/,["operator","white",{cases:{"@otherKeywords":"keyword","@default":"function.call"}}]],[/(&)(\s*)(@variableName)/,["operator","white","function.call"]],[/@variableName/,{cases:{"@declarationKeywords":"keyword.declaration","@operatorKeywords":"keyword.operator","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@constants":"constant.language","@nameBuiltin":"variable.language","_.*":"comment.unused","@default":"identifier"}}],[/@moduleName/,"type.identifier"]],strings:[[/"""/,{token:"string.delimiter",next:"@doubleQuotedHeredoc"}],[/'''/,{token:"string.delimiter",next:"@singleQuotedHeredoc"}],[/"/,{token:"string.delimiter",next:"@doubleQuotedString"}],[/'/,{token:"string.delimiter",next:"@singleQuotedString"}]],doubleQuotedHeredoc:[[/"""/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedHeredoc:[[/'''/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],doubleQuotedString:[[/"/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedString:[[/'/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],atoms:[[/(:)(@atomName)/,["constant.punctuation","constant"]],[/:"/,{token:"constant.delimiter",next:"@doubleQuotedStringAtom"}],[/:'/,{token:"constant.delimiter",next:"@singleQuotedStringAtom"}]],doubleQuotedStringAtom:[[/"/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringAtom:[[/'/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],sigils:[[/~[a-z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.interpol"}],[/~[A-Z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.noInterpol"}]],sigil:[[/~([a-zA-Z])\{/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.{.}"}],[/~([a-zA-Z])\[/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.[.]"}],[/~([a-zA-Z])\(/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.(.)"}],[/~([a-zA-Z])\"}],[/~([a-zA-Z])(@sigilSymmetricDelimiter)/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.$2.$2"}]],"sigilStart.interpol.s":[[/~s@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.s":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContentInterpol"}],"sigilStart.noInterpol.S":[[/~S@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.S":[[/(^|[^\\])\\@sigilEndDelimiter/,"string"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContent"}],"sigilStart.interpol.r":[[/~r@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.r":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContentInterpol"}],"sigilStart.noInterpol.R":[[/~R@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.R":[[/(^|[^\\])\\@sigilEndDelimiter/,"regexp"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContent"}],"sigilStart.interpol":[[/~([a-zA-Z])@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol":[[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContentInterpol"}],"sigilStart.noInterpol":[[/~([a-zA-Z])@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol":[[/(^|[^\\])\\@sigilEndDelimiter/,"sigil"],[/(@sigilEndDelimiter)@sigilModifiers/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContent"}],attributes:[[/\@(module|type)?doc (~[sS])?"""/,{token:"comment.block.documentation",next:"@doubleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?"/,{token:"comment.block.documentation",next:"@doubleQuotedStringDocstring"}],[/\@(module|type)?doc false/,"comment.block.documentation"],[/\@(@variableName)/,"variable"]],doubleQuotedHeredocDocstring:[[/"""/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],doubleQuotedStringDocstring:[[/"/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],symbols:[[/\?(\\.|[^\\\s])/,"number.constant"],[/&\d+/,"operator"],[/<<<|>>>/,"operator"],[/[()\[\]\{\}]|<<|>>/,"@brackets"],[/\.\.\./,"identifier"],[/=>/,"punctuation"],[/@operator/,"operator"],[/[:;,.%]/,"punctuation"]],stringContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringContent"}],stringContent:[[/./,"string"]],stringConstantContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringConstantContent"}],stringConstantContent:[[/./,"constant"]],regexpContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@regexpContent"}],regexpContent:[[/(\s)(#)(\s.*)$/,["white","comment.punctuation","comment"]],[/./,"regexp"]],sigilContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@sigilContent"}],sigilContent:[[/./,"sigil"]],docstringContent:[[/./,"comment.block.documentation"]],escapeChar:[[/@escape/,"constant.character.escape"]],interpolation:[[/#{/,{token:"delimiter.bracket.embed",next:"@interpolationContinue"}]],interpolationContinue:[[/}/,{token:"delimiter.bracket.embed",next:"@pop"}],{include:"@root"}]}}}}]); \ No newline at end of file diff --git a/assets/js/2240.a40b3926.js.LICENSE.txt b/assets/js/2240.a40b3926.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2240.a40b3926.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2240.f7ab52d2.js b/assets/js/2240.f7ab52d2.js new file mode 100644 index 00000000000..e0bc67e7e93 --- /dev/null +++ b/assets/js/2240.f7ab52d2.js @@ -0,0 +1,486 @@ +"use strict"; +exports.id = 2240; +exports.ids = [2240]; +exports.modules = { + +/***/ 92240: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/elixir/elixir.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'" }, + { open: '"', close: '"' } + ], + autoClosingPairs: [ + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["comment"] }, + { open: '"""', close: '"""' }, + { open: "`", close: "`", notIn: ["string", "comment"] }, + { open: "(", close: ")" }, + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "<<", close: ">>" } + ], + indentationRules: { + increaseIndentPattern: /^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/, + decreaseIndentPattern: /^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/ + } +}; +var language = { + defaultToken: "source", + tokenPostfix: ".elixir", + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "<<", close: ">>", token: "delimiter.angle.special" } + ], + declarationKeywords: [ + "def", + "defp", + "defn", + "defnp", + "defguard", + "defguardp", + "defmacro", + "defmacrop", + "defdelegate", + "defcallback", + "defmacrocallback", + "defmodule", + "defprotocol", + "defexception", + "defimpl", + "defstruct" + ], + operatorKeywords: ["and", "in", "not", "or", "when"], + namespaceKeywords: ["alias", "import", "require", "use"], + otherKeywords: [ + "after", + "case", + "catch", + "cond", + "do", + "else", + "end", + "fn", + "for", + "if", + "quote", + "raise", + "receive", + "rescue", + "super", + "throw", + "try", + "unless", + "unquote_splicing", + "unquote", + "with" + ], + constants: ["true", "false", "nil"], + nameBuiltin: ["__MODULE__", "__DIR__", "__ENV__", "__CALLER__", "__STACKTRACE__"], + operator: /-[->]?|!={0,2}|\*{1,2}|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/, + variableName: /[a-z_][a-zA-Z0-9_]*[?!]?/, + atomName: /[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/, + specialAtomName: /\.\.\.|<<>>|%\{\}|%|\{\}/, + aliasPart: /[A-Z][a-zA-Z0-9_]*/, + moduleName: /@aliasPart(?:\.@aliasPart)*/, + sigilSymmetricDelimiter: /"""|'''|"|'|\/|\|/, + sigilStartDelimiter: /@sigilSymmetricDelimiter|<|\{|\[|\(/, + sigilEndDelimiter: /@sigilSymmetricDelimiter|>|\}|\]|\)/, + sigilModifiers: /[a-zA-Z0-9]*/, + decimal: /\d(?:_?\d)*/, + hex: /[0-9a-fA-F](_?[0-9a-fA-F])*/, + octal: /[0-7](_?[0-7])*/, + binary: /[01](_?[01])*/, + escape: /\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./, + tokenizer: { + root: [ + { include: "@whitespace" }, + { include: "@comments" }, + { include: "@keywordsShorthand" }, + { include: "@numbers" }, + { include: "@identifiers" }, + { include: "@strings" }, + { include: "@atoms" }, + { include: "@sigils" }, + { include: "@attributes" }, + { include: "@symbols" } + ], + whitespace: [[/\s+/, "white"]], + comments: [[/(#)(.*)/, ["comment.punctuation", "comment"]]], + keywordsShorthand: [ + [/(@atomName)(:)/, ["constant", "constant.punctuation"]], + [ + /"(?=([^"]|#\{.*?\}|\\")*":)/, + { token: "constant.delimiter", next: "@doubleQuotedStringKeyword" } + ], + [ + /'(?=([^']|#\{.*?\}|\\')*':)/, + { token: "constant.delimiter", next: "@singleQuotedStringKeyword" } + ] + ], + doubleQuotedStringKeyword: [ + [/":/, { token: "constant.delimiter", next: "@pop" }], + { include: "@stringConstantContentInterpol" } + ], + singleQuotedStringKeyword: [ + [/':/, { token: "constant.delimiter", next: "@pop" }], + { include: "@stringConstantContentInterpol" } + ], + numbers: [ + [/0b@binary/, "number.binary"], + [/0o@octal/, "number.octal"], + [/0x@hex/, "number.hex"], + [/@decimal\.@decimal([eE]-?@decimal)?/, "number.float"], + [/@decimal/, "number"] + ], + identifiers: [ + [ + /\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/, + [ + "keyword.declaration", + "white", + { + cases: { + unquote: "keyword", + "@default": "function" + } + } + ] + ], + [ + /(@variableName)(?=\s*\.?\s*\()/, + { + cases: { + "@declarationKeywords": "keyword.declaration", + "@namespaceKeywords": "keyword", + "@otherKeywords": "keyword", + "@default": "function.call" + } + } + ], + [ + /(@moduleName)(\s*)(\.)(\s*)(@variableName)/, + ["type.identifier", "white", "operator", "white", "function.call"] + ], + [ + /(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/, + ["constant.punctuation", "constant", "white", "operator", "white", "function.call"] + ], + [ + /(\|>)(\s*)(@variableName)/, + [ + "operator", + "white", + { + cases: { + "@otherKeywords": "keyword", + "@default": "function.call" + } + } + ] + ], + [ + /(&)(\s*)(@variableName)/, + ["operator", "white", "function.call"] + ], + [ + /@variableName/, + { + cases: { + "@declarationKeywords": "keyword.declaration", + "@operatorKeywords": "keyword.operator", + "@namespaceKeywords": "keyword", + "@otherKeywords": "keyword", + "@constants": "constant.language", + "@nameBuiltin": "variable.language", + "_.*": "comment.unused", + "@default": "identifier" + } + } + ], + [/@moduleName/, "type.identifier"] + ], + strings: [ + [/"""/, { token: "string.delimiter", next: "@doubleQuotedHeredoc" }], + [/'''/, { token: "string.delimiter", next: "@singleQuotedHeredoc" }], + [/"/, { token: "string.delimiter", next: "@doubleQuotedString" }], + [/'/, { token: "string.delimiter", next: "@singleQuotedString" }] + ], + doubleQuotedHeredoc: [ + [/"""/, { token: "string.delimiter", next: "@pop" }], + { include: "@stringContentInterpol" } + ], + singleQuotedHeredoc: [ + [/'''/, { token: "string.delimiter", next: "@pop" }], + { include: "@stringContentInterpol" } + ], + doubleQuotedString: [ + [/"/, { token: "string.delimiter", next: "@pop" }], + { include: "@stringContentInterpol" } + ], + singleQuotedString: [ + [/'/, { token: "string.delimiter", next: "@pop" }], + { include: "@stringContentInterpol" } + ], + atoms: [ + [/(:)(@atomName)/, ["constant.punctuation", "constant"]], + [/:"/, { token: "constant.delimiter", next: "@doubleQuotedStringAtom" }], + [/:'/, { token: "constant.delimiter", next: "@singleQuotedStringAtom" }] + ], + doubleQuotedStringAtom: [ + [/"/, { token: "constant.delimiter", next: "@pop" }], + { include: "@stringConstantContentInterpol" } + ], + singleQuotedStringAtom: [ + [/'/, { token: "constant.delimiter", next: "@pop" }], + { include: "@stringConstantContentInterpol" } + ], + sigils: [ + [/~[a-z]@sigilStartDelimiter/, { token: "@rematch", next: "@sigil.interpol" }], + [/~[A-Z]@sigilStartDelimiter/, { token: "@rematch", next: "@sigil.noInterpol" }] + ], + sigil: [ + [/~([a-zA-Z])\{/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.{.}" }], + [/~([a-zA-Z])\[/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.[.]" }], + [/~([a-zA-Z])\(/, { token: "@rematch", switchTo: "@sigilStart.$S2.$1.(.)" }], + [/~([a-zA-Z])\" }], + [ + /~([a-zA-Z])(@sigilSymmetricDelimiter)/, + { token: "@rematch", switchTo: "@sigilStart.$S2.$1.$2.$2" } + ] + ], + "sigilStart.interpol.s": [ + [ + /~s@sigilStartDelimiter/, + { + token: "string.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.interpol.s": [ + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "string.delimiter", next: "@pop" }, + "@default": "string" + } + } + ], + { include: "@stringContentInterpol" } + ], + "sigilStart.noInterpol.S": [ + [ + /~S@sigilStartDelimiter/, + { + token: "string.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.noInterpol.S": [ + [/(^|[^\\])\\@sigilEndDelimiter/, "string"], + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "string.delimiter", next: "@pop" }, + "@default": "string" + } + } + ], + { include: "@stringContent" } + ], + "sigilStart.interpol.r": [ + [ + /~r@sigilStartDelimiter/, + { + token: "regexp.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.interpol.r": [ + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "regexp.delimiter", next: "@pop" }, + "@default": "regexp" + } + } + ], + { include: "@regexpContentInterpol" } + ], + "sigilStart.noInterpol.R": [ + [ + /~R@sigilStartDelimiter/, + { + token: "regexp.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.noInterpol.R": [ + [/(^|[^\\])\\@sigilEndDelimiter/, "regexp"], + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "regexp.delimiter", next: "@pop" }, + "@default": "regexp" + } + } + ], + { include: "@regexpContent" } + ], + "sigilStart.interpol": [ + [ + /~([a-zA-Z])@sigilStartDelimiter/, + { + token: "sigil.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.interpol": [ + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "sigil.delimiter", next: "@pop" }, + "@default": "sigil" + } + } + ], + { include: "@sigilContentInterpol" } + ], + "sigilStart.noInterpol": [ + [ + /~([a-zA-Z])@sigilStartDelimiter/, + { + token: "sigil.delimiter", + switchTo: "@sigilContinue.$S2.$S3.$S4.$S5" + } + ] + ], + "sigilContinue.noInterpol": [ + [/(^|[^\\])\\@sigilEndDelimiter/, "sigil"], + [ + /(@sigilEndDelimiter)@sigilModifiers/, + { + cases: { + "$1==$S5": { token: "sigil.delimiter", next: "@pop" }, + "@default": "sigil" + } + } + ], + { include: "@sigilContent" } + ], + attributes: [ + [ + /\@(module|type)?doc (~[sS])?"""/, + { + token: "comment.block.documentation", + next: "@doubleQuotedHeredocDocstring" + } + ], + [ + /\@(module|type)?doc (~[sS])?"/, + { + token: "comment.block.documentation", + next: "@doubleQuotedStringDocstring" + } + ], + [/\@(module|type)?doc false/, "comment.block.documentation"], + [/\@(@variableName)/, "variable"] + ], + doubleQuotedHeredocDocstring: [ + [/"""/, { token: "comment.block.documentation", next: "@pop" }], + { include: "@docstringContent" } + ], + doubleQuotedStringDocstring: [ + [/"/, { token: "comment.block.documentation", next: "@pop" }], + { include: "@docstringContent" } + ], + symbols: [ + [/\?(\\.|[^\\\s])/, "number.constant"], + [/&\d+/, "operator"], + [/<<<|>>>/, "operator"], + [/[()\[\]\{\}]|<<|>>/, "@brackets"], + [/\.\.\./, "identifier"], + [/=>/, "punctuation"], + [/@operator/, "operator"], + [/[:;,.%]/, "punctuation"] + ], + stringContentInterpol: [ + { include: "@interpolation" }, + { include: "@escapeChar" }, + { include: "@stringContent" } + ], + stringContent: [[/./, "string"]], + stringConstantContentInterpol: [ + { include: "@interpolation" }, + { include: "@escapeChar" }, + { include: "@stringConstantContent" } + ], + stringConstantContent: [[/./, "constant"]], + regexpContentInterpol: [ + { include: "@interpolation" }, + { include: "@escapeChar" }, + { include: "@regexpContent" } + ], + regexpContent: [ + [/(\s)(#)(\s.*)$/, ["white", "comment.punctuation", "comment"]], + [/./, "regexp"] + ], + sigilContentInterpol: [ + { include: "@interpolation" }, + { include: "@escapeChar" }, + { include: "@sigilContent" } + ], + sigilContent: [[/./, "sigil"]], + docstringContent: [[/./, "comment.block.documentation"]], + escapeChar: [[/@escape/, "constant.character.escape"]], + interpolation: [[/#{/, { token: "delimiter.bracket.embed", next: "@interpolationContinue" }]], + interpolationContinue: [ + [/}/, { token: "delimiter.bracket.embed", next: "@pop" }], + { include: "@root" } + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2259.ff9afb23.js b/assets/js/2259.ff9afb23.js new file mode 100644 index 00000000000..d2913de4289 --- /dev/null +++ b/assets/js/2259.ff9afb23.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2259],{82259:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var a=n(87462),o=(n(67294),n(3905));const i={title:"Announcing Disjoint Unions","short-title":"Disjoint Unions",author:"Avik Chaudhuri",hide_table_of_contents:!0},r=void 0,s={permalink:"/blog/2015/07/03/Disjoint-Unions",source:"@site/blog/2015-07-03-Disjoint-Unions.md",title:"Announcing Disjoint Unions",description:"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:",date:"2015-07-03T00:00:00.000Z",formattedDate:"July 3, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Avik Chaudhuri"}],frontMatter:{title:"Announcing Disjoint Unions","short-title":"Disjoint Unions",author:"Avik Chaudhuri",hide_table_of_contents:!0},prevItem:{title:"Version-0.14.0",permalink:"/blog/2015/07/29/Version-0.14.0"},nextItem:{title:"Announcing Bounded Polymorphism",permalink:"/blog/2015/03/12/Bounded-Polymorphism"}},l={authorsImageUrls:[void 0]},d=[{value:"The problem",id:"the-problem",level:2},{value:"The solution",id:"the-solution",level:2},{value:"Why we built this",id:"why-we-built-this",level:2}],p={toc:d};function m(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"Specifying such data by a set of disjoint cases, distinguished by \u201ctags\u201d, where each tag is associated with a different \u201crecord\u201d of properties. (These descriptions are called \u201cdisjoint union\u201d or \u201cvariant\u201d types.)"),(0,o.mdx)("li",{parentName:"ul"},"Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)")),(0,o.mdx)("p",null,"Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!"),(0,o.mdx)("p",null,'As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.'),(0,o.mdx)("p",null,"Flow's syntax for disjoint unions looks like:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-javascript"},'type BinaryTree =\n { kind: "leaf", value: number } |\n { kind: "branch", left: BinaryTree, right: BinaryTree }\n\nfunction sumLeaves(tree: BinaryTree): number {\n if (tree.kind === "leaf") {\n return tree.value;\n } else {\n return sumLeaves(tree.left) + sumLeaves(tree.right);\n }\n}\n')),(0,o.mdx)("h2",{id:"the-problem"},"The problem"),(0,o.mdx)("p",null,"Consider the following function that returns different objects depending on the data passed into it:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-javascript"},"type Result = { status: string, errorCode?: number }\n\nfunction getResult(op): Result {\n var statusCode = op();\n if (statusCode === 0) {\n return { status: 'done' };\n } else {\n return { status: 'error', errorCode: statusCode };\n }\n}\n")),(0,o.mdx)("p",null,"The result contains a ",(0,o.mdx)("inlineCode",{parentName:"p"},"status")," property that is either ",(0,o.mdx)("inlineCode",{parentName:"p"},"'done'")," or ",(0,o.mdx)("inlineCode",{parentName:"p"},"'error'"),",\nand an optional ",(0,o.mdx)("inlineCode",{parentName:"p"},"errorCode")," property that holds a numeric status code when the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"status")," is ",(0,o.mdx)("inlineCode",{parentName:"p"},"'error'"),"."),(0,o.mdx)("p",null,"One may now try to write another function that gets the error code from a result:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-javascript"},"function getErrorCode(result: Result): number {\n switch (result.status) {\n case 'error':\n return result.errorCode;\n default:\n return 0;\n }\n}\n")),(0,o.mdx)("p",null,"Unfortunately, this code does not typecheck. The ",(0,o.mdx)("inlineCode",{parentName:"p"},"Result")," type does not precisely\ncapture the relationship between the ",(0,o.mdx)("inlineCode",{parentName:"p"},"status")," property and the ",(0,o.mdx)("inlineCode",{parentName:"p"},"errorCode")," property.\nNamely it doesn't capture that when the ",(0,o.mdx)("inlineCode",{parentName:"p"},"status")," property is ",(0,o.mdx)("inlineCode",{parentName:"p"},"'error'"),", the ",(0,o.mdx)("inlineCode",{parentName:"p"},"errorCode"),"\nproperty will be present and defined on the object. As a result, Flow thinks that\n",(0,o.mdx)("inlineCode",{parentName:"p"},"result.errorCode")," in the above function may return ",(0,o.mdx)("inlineCode",{parentName:"p"},"undefined")," instead of ",(0,o.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,o.mdx)("p",null,"Prior to version 0.13.1 there was no way to express this relationship, which meant\nthat it was not possible to check the type safety of this simple, familiar idiom!"),(0,o.mdx)("h2",{id:"the-solution"},"The solution"),(0,o.mdx)("p",null,"As of version 0.13.1 it is possible to write a more precise type for ",(0,o.mdx)("inlineCode",{parentName:"p"},"Result"),"\nthat better captures the intent and helps Flow narrow down the possible shapes\nof an object based on the outcome of a dynamic ",(0,o.mdx)("inlineCode",{parentName:"p"},"===")," check. Now, we can write:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-javaScript"},"type Result = Done | Error\ntype Done = { status: 'done' }\ntype Error = { status: 'error', errorCode: number }\n")),(0,o.mdx)("p",null,"In other words, we can explicitly list out the possible shapes of results. These\ncases are distinguished by the value of the ",(0,o.mdx)("inlineCode",{parentName:"p"},"status")," property. Note that here\nwe use the string literal types ",(0,o.mdx)("inlineCode",{parentName:"p"},"'done'")," and ",(0,o.mdx)("inlineCode",{parentName:"p"},"'error'"),". These match exactly the strings\n",(0,o.mdx)("inlineCode",{parentName:"p"},"'done'")," and ",(0,o.mdx)("inlineCode",{parentName:"p"},"'error'"),", which means that ",(0,o.mdx)("inlineCode",{parentName:"p"},"===")," checks on those values are enough for\nFlow to narrow down the corresponding type cases. With this additional reasoning, the\nfunction ",(0,o.mdx)("inlineCode",{parentName:"p"},"getErrorCode")," now typechecks, without needing any changes to the code!"),(0,o.mdx)("p",null,"In addition to string literals, Flow also supports number literals as singleton types\nso they can also be used in disjoint unions and case analyses."),(0,o.mdx)("h2",{id:"why-we-built-this"},"Why we built this"),(0,o.mdx)("p",null,"Disjoint unions are at the heart of several good programming practices pervasive in functional programming languages. Supporting them in Flow means that JavaScript can use these practices in a type-safe manner. For example, disjoint unions can be used to write type-safe ",(0,o.mdx)("a",{parentName:"p",href:"https://facebook.github.io/flux/docs/dispatcher.html"},"Flux dispatchers"),". They are also heavily used in a recently released ",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/graphql/graphql-js"},"reference implementation of GraphQL"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2378.08f000fc.js b/assets/js/2378.08f000fc.js new file mode 100644 index 00000000000..5326b22ed39 --- /dev/null +++ b/assets/js/2378.08f000fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2378],{12378:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var o=n(87462),i=(n(67294),n(3905));const a={title:"Introducing Flow-Typed","short-title":"Introducing Flow-Typed",author:"Jeff Morrison",hide_table_of_contents:!0},r=void 0,l={permalink:"/blog/2016/10/13/Flow-Typed",source:"@site/blog/2016-10-13-Flow-Typed.md",title:"Introducing Flow-Typed",description:"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are",date:"2016-10-13T00:00:00.000Z",formattedDate:"October 13, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Jeff Morrison"}],frontMatter:{title:"Introducing Flow-Typed","short-title":"Introducing Flow-Typed",author:"Jeff Morrison",hide_table_of_contents:!0},prevItem:{title:"Strict Checking of Function Call Arity",permalink:"/blog/2017/05/07/Strict-Function-Call-Arity"},nextItem:{title:"Property Variance and Other Upcoming Changes",permalink:"/blog/2016/10/04/Property-Variance"}},s={authorsImageUrls:[void 0]},d=[{value:"Versioned & Tested Libdefs",id:"versioned--tested-libdefs",level:3},{value:"Automating Libdef Installation",id:"automating-libdef-installation",level:3},{value:"Installing Libdefs",id:"installing-libdefs",level:3},{value:"Why Not Just Use Npm To Distribute Libdefs?",id:"why-not-just-use-npm-to-distribute-libdefs",level:3},{value:"Building a Community",id:"building-a-community",level:3}],p={toc:d};function m(e){let{components:t,...n}=e;return(0,i.mdx)("wrapper",(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are\nimportant for having a great experience with Flow. Today, we are introducing\n",(0,i.mdx)("strong",{parentName:"p"},"flow-typed"),": A ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/flowtype/flow-typed/"},"repository")," and\n",(0,i.mdx)("a",{parentName:"p",href:"http://npmjs.org/packages/flow-typed"},"CLI tool")," that represent the first parts\nof a new workflow for building, sharing, and distributing Flow libdefs."),(0,i.mdx)("p",null,"The goal of this project is to grow an ecosystem of libdefs that\n",(0,i.mdx)("a",{parentName:"p",href:"https://medium.com/@thejameskyle/flow-mapping-an-object-373d64c44592"},"allows Flow's type inference to shine"),"\nand that aligns with Flow's mission: To extract precise and ",(0,i.mdx)("em",{parentName:"p"},"accurate")," types\nfrom real-world JavaScript. We've learned a lot from similar efforts like\nDefinitelyTyped for TypeScript and we want to bring some of the lessons we've\nlearned to the Flow ecosystem."),(0,i.mdx)("p",null,"Here are some of the objectives of this project:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},"Libdefs should be ",(0,i.mdx)("strong",{parentName:"li"},"versioned")," \u2014 both against the libraries they describe\n",(0,i.mdx)("em",{parentName:"li"},"and")," against the version(s) of Flow they are compatible with."),(0,i.mdx)("li",{parentName:"ul"},"Libdefs should meet a ",(0,i.mdx)("strong",{parentName:"li"},"high quality bar"),", including ",(0,i.mdx)("strong",{parentName:"li"},"libdef tests")," to\nensure that their quality persists over time."),(0,i.mdx)("li",{parentName:"ul"},"There must be a straightforward way to ",(0,i.mdx)("strong",{parentName:"li"},"contribute libdef improvements over\ntime")," and for developers to ",(0,i.mdx)("strong",{parentName:"li"},"benefit from those improvements")," over time."),(0,i.mdx)("li",{parentName:"ul"},"The process of managing libdefs for a Flow project should be ",(0,i.mdx)("strong",{parentName:"li"},"automated,\nsimple, and easy to get right"),".")),(0,i.mdx)("h3",{id:"versioned--tested-libdefs"},"Versioned & Tested Libdefs"),(0,i.mdx)("p",null,"Anyone can contribute a libdef (or improve on an existing one), but when doing\nso it's important that we maintain a high quality bar so that all developers\nfeel confident in the libdefs they are using. To address this, flow-typed\nrequires that all libdef contributions are explicitly versioned against both\nthe version of the library they are describing and the version(s) of Flow the\nlibdef is compatible with."),(0,i.mdx)("p",null,"Additionally, all libdefs must be accompanied by tests that exercise the\nimportant parts of the API and assert that they yield the correct types. By\nincluding both version information and tests with each libdef, we can\nautomatically verify in Travis that the tests work as expected for all versions\nof Flow a libdef is compatible with. Tests also help to ensure that future\nchanges to the libdef don't regress its features over time."),(0,i.mdx)("h3",{id:"automating-libdef-installation"},"Automating Libdef Installation"),(0,i.mdx)("p",null,"We've built a simple CLI tool called ",(0,i.mdx)("inlineCode",{parentName:"p"},"flow-typed")," that helps to automate the\nprocess of finding, installing, and upgrading libdefs in your Flow projects. It\nuses the explicit version info associated with each libdef to find all\nnecessary libdefs based on your project's package.json dependencies. This\nminimizes the work you need to do in order to pull in and update libdefs in\nyour projects."),(0,i.mdx)("p",null,"You can get the flow-typed CLI using either yarn (",(0,i.mdx)("inlineCode",{parentName:"p"},"yarn global add flow-typed"),")\nor npm (",(0,i.mdx)("inlineCode",{parentName:"p"},"npm install -g flow-typed"),")."),(0,i.mdx)("h3",{id:"installing-libdefs"},"Installing Libdefs"),(0,i.mdx)("p",null,"Installing libdefs from the flow-typed repository is a matter of running a\nsingle command on your project after installing your dependencies:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre"},"> yarn install # Or `npm install` if you're old-school :)\n> flow-typed install\n")),(0,i.mdx)("p",null,"The ",(0,i.mdx)("inlineCode",{parentName:"p"},"flow-typed install")," command reads your project's package.json file,\nqueries the flow-typed repository for libdefs matching your dependencies, and\ninstalls the correctly-versioned libdefs into the ",(0,i.mdx)("inlineCode",{parentName:"p"},"flow-typed/")," directory for\nyou. By default, Flow knows to look in the ",(0,i.mdx)("inlineCode",{parentName:"p"},"flow-typed/")," directory for libdefs\n\u2014 so there is no additional configuration necessary."),(0,i.mdx)("p",null,"Note that it's necessary to run this command ",(0,i.mdx)("em",{parentName:"p"},"after")," running ",(0,i.mdx)("inlineCode",{parentName:"p"},"yarn")," or\n",(0,i.mdx)("inlineCode",{parentName:"p"},"npm install"),". This is because this command will also generate stub libdefs for\nyou if one of your dependencies doesn't have types."),(0,i.mdx)("p",null,"Once libdefs have been installed, ",(0,i.mdx)("strong",{parentName:"p"},"we recommend that you check them in to your\nproject's repo"),". Libdefs in the flow-typed repository may be improved over\ntime (fixing a bug, more precise types, etc). If this happens for a libdef that\nyou depend on, you'll want to have control over when that update is applied to\nyour project. Periodically you can run ",(0,i.mdx)("inlineCode",{parentName:"p"},"flow-typed update")," to download any\nlibdef updates, verify that your project still typechecks, and the commit the\nupdates."),(0,i.mdx)("h3",{id:"why-not-just-use-npm-to-distribute-libdefs"},"Why Not Just Use Npm To Distribute Libdefs?"),(0,i.mdx)("p",null,"Over time libdefs in the flow-typed repo may be updated to fix bugs, improve\naccuracy, or make use of new Flow features that better describe the types of\nthe library. As a result, there are really 3 versions that apply to each\nlibdef: The version of the library being described, the current version of the\nlibdef in the flow-typed repo, and the version(s) of Flow the libdef is\ncompatible with."),(0,i.mdx)("p",null,"If an update is made to some libdef that you use in your project after you've\nalready installed it, there's a good chance that update may find new type\nerrors in your project that were previously unknown. While it is certainly a\ngood thing to find errors that were previously missed, you'll want to have\ncontrol over when those changes get pulled in to your project."),(0,i.mdx)("p",null,"This is the reason we advise that you commit your installed libdefs to version\ncontrol rather than rely on a system like npm+semver to download and install a\nnon-deterministic semver-ranged version from npm. Checking in your libdefs\nensures that all collaborators on your project have consistent output from Flow\nat any given commit in version history."),(0,i.mdx)("h3",{id:"building-a-community"},"Building a Community"),(0,i.mdx)("p",null,"This is first and foremost a community project. It was started by a community\nmember (hey ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/splodingsocks"},"@splodingsocks"),"!) and has\nalready benefitted from hours of work by many others. Moreover, this will\ncontinue to be a community effort: Anyone can create and/or help maintain a\nlibdef for any npm library. Authors may create libdefs for their packages when\npublishing, and/or consumers can create them when someone else hasn't already\ndone so. Either way, everyone benefits!"),(0,i.mdx)("p",null,"We'd like to send a big shout-out to ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/marudor"},"@marudor")," for\ncontributing so many of his own libdefs and spending time helping others to\nwrite and contribute libdefs. Additionally we'd like to thank\n",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/ryyppy"},"@ryyppy")," for helping to design and iterate on the\nCLI and installation workflow as well as manage libdef reviews."),(0,i.mdx)("p",null,"The Flow core team intends to stay invested in developing and improving this\nproject, but in order for it to truly succeed we need your help! If you've\nalready written some libdefs for Flow projects that you work on, we encourage\nyou to ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/flowtype/flow-typed/#how-do-i-contribute-library-definitions"},"contribute"),"\nthem for others to benefit from them as well. By managing libdefs in a\ncommunity-driven repository, the community as a whole can work together to\nextend Flow's capabilities beyond just explicitly-typed JS."),(0,i.mdx)("p",null,"It's still early days and there's still a lot to do, so we're excited to hear\nyour ideas/feedback and read your pull requests! :)"),(0,i.mdx)("p",null,"Happy typing!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2394.d9de10ba.js b/assets/js/2394.d9de10ba.js new file mode 100644 index 00000000000..11329cbbd64 --- /dev/null +++ b/assets/js/2394.d9de10ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2394],{54949:(e,n,o)=>{o.d(n,{S:()=>t,l:()=>l});var i=o(67294);function t(e){let{version:n}=e;return i.createElement("span",{class:"version added",title:"Added in "+n},"\u2265",n)}function l(e){let{version:n}=e;return i.createElement("span",{class:"version removed",title:"Removed after "+n},"\u2264",n)}},82394:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>m,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>d,toc:()=>r});var i=o(87462),t=(o(67294),o(3905)),l=(o(45475),o(54949));const a={title:".flowconfig [options]",slug:"/config/options"},s=void 0,d={unversionedId:"config/options",id:"config/options",title:".flowconfig [options]",description:"The [options] section in a .flowconfig file can contain several key-value",source:"@site/docs/config/options.md",sourceDirName:"config",slug:"/config/options",permalink:"/en/docs/config/options",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/options.md",tags:[],version:"current",frontMatter:{title:".flowconfig [options]",slug:"/config/options"},sidebar:"docsSidebar",previous:{title:".flowconfig [version]",permalink:"/en/docs/config/version"},next:{title:".flowconfig [include]",permalink:"/en/docs/config/include"}},m={},r=[{value:"Available options",id:"toc-available-options",level:2},{value:"all",id:"toc-all",level:3},{value:'autoimports ',id:"toc-autoimports",level:3},{value:"babel_loose_array_spread",id:"toc-babel-loose-array-spread",level:3},{value:"emoji",id:"toc-emoji",level:3},{value:"enums",id:"toc-enums",level:3},{value:"exact_by_default",id:"toc-exact-by-default",level:3},{value:"experimental.const_params",id:"toc-experimental-const-params",level:3},{value:"include_warnings",id:"toc-include-warnings",level:3},{value:"lazy_mode",id:"toc-lazy-mode",level:3},{value:"max_header_tokens",id:"toc-max-header-tokens",level:3},{value:"module.file_ext",id:"toc-module-file-ext",level:3},{value:"module.ignore_non_literal_requires",id:"toc-module-ignore-non-literal-requires",level:3},{value:"module.name_mapper",id:"toc-module-name-mapper",level:3},{value:"module.name_mapper.extension",id:"toc-module-name-mapper-extension",level:3},{value:"module.system",id:"toc-module-system",level:3},{value:"module.system.node.main_field",id:"toc-module-system-node-main-field",level:3},{value:"module.system.node.resolve_dirname",id:"toc-module-system-node-resolve-dirname",level:3},{value:"module.use_strict",id:"toc-module-use-strict",level:3},{value:"munge_underscores",id:"toc-munge-underscores",level:3},{value:"no_flowlib",id:"toc-no-flowlib",level:3},{value:'react.runtime ',id:"toc-react-runtime",level:3},{value:"server.max_workers",id:"toc-server-max-workers",level:3},{value:"sharedmemory.hash_table_pow",id:"toc-sharedmemory-hash-table-pow",level:3},{value:"sharedmemory.heap_size",id:"toc-sharedmemory-heap-size",level:3},{value:"suppress_type",id:"toc-suppress-type",level:3},{value:"traces",id:"toc-traces",level:3},{value:'use_mixed_in_catch_variables ',id:"toc-use-mixed-in-catch-variables",level:3},{value:"Deprecated options",id:"deprecated-options",level:2},{value:'esproposal.class_instance_fields ',id:"toc-esproposal-class-instance-fields",level:3},{value:'esproposal.class_static_fields ',id:"toc-esproposal-class-static-fields",level:3},{value:'esproposal.decorators ',id:"toc-esproposal-decorators",level:3},{value:'esproposal.export_star_as ',id:"toc-esproposal-export-star-as",level:3},{value:'esproposal.optional_chaining ',id:"toc-esproposal-optional-chaining",level:3},{value:'esproposal.nullish_coalescing ',id:"toc-esproposal-nullish-coalescing",level:3},{value:'inference_mode ',id:"toc-inference-mode",level:3},{value:"log.file",id:"toc-log-file",level:3},{value:"sharedmemory.dirs",id:"toc-sharedmemory-dirs",level:3},{value:"sharedmemory.minimum_available",id:"toc-sharedmemory-minimum-available",level:3},{value:'strip_root ',id:"toc-strip-root",level:3},{value:'suppress_comment ',id:"toc-suppress-comment",level:3},{value:"temp_dir",id:"toc-temp-dir",level:3},{value:'types_first ',id:"toc-types-first",level:3},{value:'well_formed_exports ',id:"toc-well-formed-exports",level:3},{value:'well_formed_exports.includes ',id:"toc-well-formed-exports-includes",level:3}],p={toc:r};function u(e){let{components:n,...o}=e;return(0,t.mdx)("wrapper",(0,i.Z)({},p,o,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"The ",(0,t.mdx)("inlineCode",{parentName:"p"},"[options]")," section in a ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file can contain several key-value\npairs of the form:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[options]\nkeyA=valueA\nkeyB=valueB\n")),(0,t.mdx)("p",null,"Any options that are omitted will use their default values. Some options\ncan be overridden with command line flags."),(0,t.mdx)("h2",{id:"toc-available-options"},"Available options"),(0,t.mdx)("h3",{id:"toc-all"},"all"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to check all files, not just those with ",(0,t.mdx)("inlineCode",{parentName:"p"},"@flow"),"."),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"all")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-autoimports"},"autoimports ",(0,t.mdx)(l.S,{version:"0.143.0",mdxType:"SinceVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"When enabled, IDE autocomplete suggests the exports of other files, and the necessary ",(0,t.mdx)("inlineCode",{parentName:"p"},"import"),' statements are automatically inserted. A "quick fix" code action is also provided on undefined variables that suggests matching imports.'),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"autoimports")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," as of Flow v0.155.0."),(0,t.mdx)("h3",{id:"toc-babel-loose-array-spread"},"babel_loose_array_spread"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to check that array spread syntax is only used with arrays, not arbitrary iterables (such as ",(0,t.mdx)("inlineCode",{parentName:"p"},"Map")," or ",(0,t.mdx)("inlineCode",{parentName:"p"},"Set"),"). This is useful if you transform your code with Babel in ",(0,t.mdx)("a",{parentName:"p",href:"https://babeljs.io/docs/en/babel-plugin-transform-spread#loose"},"loose mode")," which makes this non-spec-compliant assumption at runtime."),(0,t.mdx)("p",null,"For example:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-js"},"const set = new Set();\nconst values = [...set]; // Valid ES2015, but Set is not compatible with $ReadOnlyArray in Babel loose mode\n")),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"babel_loose_array_spread")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-emoji"},"emoji"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to add emoji to the status messages that Flow\noutputs when it's busy checking your project."),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"emoji")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-enums"},"enums"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to enable ",(0,t.mdx)("a",{parentName:"p",href:"../../enums"},"Flow Enums"),".\n",(0,t.mdx)("a",{parentName:"p",href:"../../enums/enabling-enums/"},"Additional steps")," are required beyond just enabling the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," option."),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"enums")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-exact-by-default"},"exact_by_default"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"When set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," (the default as of version 0.202), Flow interprets object types as exact by default:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type O1 = {foo: number} // exact\ntype O2 = {| foo: number |} // exact\ntype O3 = {foo: number, ...} // inexact\n")),(0,t.mdx)("p",null,"When this flag is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),", Flow has the following behavior:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type O1 = {foo: number} // inexact\ntype O2 = {| foo: number |} // exact\ntype O3 = {foo: number, ...} // inexact\n")),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},"From inception to Flow version 0.199, the default value of the flag was ",(0,t.mdx)("inlineCode",{parentName:"li"},"false"),"."),(0,t.mdx)("li",{parentName:"ul"},"In versions 0.200 and 0.201, the flag was required to be explicitly set to either ",(0,t.mdx)("inlineCode",{parentName:"li"},"true")," or ",(0,t.mdx)("inlineCode",{parentName:"li"},"false"),"."),(0,t.mdx)("li",{parentName:"ul"},"From version 0.202, the default value is ",(0,t.mdx)("inlineCode",{parentName:"li"},"true"),".")),(0,t.mdx)("p",null,"You can read more about this change in our blog post about making ",(0,t.mdx)("a",{parentName:"p",href:"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},"exact by object types by default, by default"),"."),(0,t.mdx)("h3",{id:"toc-experimental-const-params"},"experimental.const_params"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Setting this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," makes Flow treat all function parameters as const\nbindings. Reassigning a param is an error which lets Flow be less conservative\nwith refinements."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-include-warnings"},"include_warnings"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Setting this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," makes Flow commands include warnings in the error output.\nWarnings are hidden by default in the CLI to avoid console spew. (An IDE is a\nmuch better interface to show warnings.)"),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-lazy-mode"},"lazy_mode"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"For more on lazy modes, see the ",(0,t.mdx)("a",{parentName:"p",href:"../../lang/lazy-modes/"},"lazy modes docs"),"."),(0,t.mdx)("p",null,"Setting ",(0,t.mdx)("inlineCode",{parentName:"p"},"lazy_mode")," in the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," will cause new Flow servers for that\nroot to use lazy mode (or no lazy mode if set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"). This option can\nbe overridden from the CLI using the ",(0,t.mdx)("inlineCode",{parentName:"p"},"--lazy-mode")," flag."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-max-header-tokens"},"max_header_tokens"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"integer")),(0,t.mdx)("p",null,"Flow tries to avoid parsing non-flow files. This means Flow needs to\nstart lexing a file to see if it has ",(0,t.mdx)("inlineCode",{parentName:"p"},"@flow")," or ",(0,t.mdx)("inlineCode",{parentName:"p"},"@noflow")," in it. This option\nlets you configure how much of the file Flow lexes before it decides there is\nno relevant docblock."),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},"Neither ",(0,t.mdx)("inlineCode",{parentName:"li"},"@flow")," nor ",(0,t.mdx)("inlineCode",{parentName:"li"},"@noflow")," - Parse this file with Flow syntax disallowed and do not typecheck it."),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"@flow")," - Parse this file with Flow syntax allowed and typecheck it."),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"@noflow")," - Parse this file with Flow syntax allowed and do not typecheck it. This is meant as an escape hatch to suppress Flow in a file without having to delete all the Flow-specific syntax.")),(0,t.mdx)("p",null,"The default value of ",(0,t.mdx)("inlineCode",{parentName:"p"},"max_header_tokens")," is 10."),(0,t.mdx)("h3",{id:"toc-module-file-ext"},"module.file_ext"),(0,t.mdx)("p",null,"By default, Flow will look for files with the extensions ",(0,t.mdx)("inlineCode",{parentName:"p"},".js"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},".jsx"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},".mjs"),",\n",(0,t.mdx)("inlineCode",{parentName:"p"},".cjs")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},".json"),". You can override this behavior with this option."),(0,t.mdx)("p",null,"For example, if you do:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[options]\nmodule.file_ext=.foo\nmodule.file_ext=.bar\n")),(0,t.mdx)("p",null,"Then Flow will instead look for the file extensions ",(0,t.mdx)("inlineCode",{parentName:"p"},".foo")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},".bar"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," you can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"module.file_ext")," multiple times")),(0,t.mdx)("h3",{id:"toc-module-ignore-non-literal-requires"},"module.ignore_non_literal_requires"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," and Flow will no longer complain when you use ",(0,t.mdx)("inlineCode",{parentName:"p"},"require()"),"\nwith something other than a string literal."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-module-name-mapper"},"module.name_mapper"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"regex -> string")),(0,t.mdx)("p",null,"Specify a regular expression to match against module names, and a replacement\npattern, separated by a ",(0,t.mdx)("inlineCode",{parentName:"p"},"->"),"."),(0,t.mdx)("p",null,"For example:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"module.name_mapper='^image![a-zA-Z0-9$_]+$' -> 'ImageStub'\n")),(0,t.mdx)("p",null,"This makes Flow treat ",(0,t.mdx)("inlineCode",{parentName:"p"},"require('image!foo.jpg')")," as if it were\n",(0,t.mdx)("inlineCode",{parentName:"p"},"require('ImageStub')"),"."),(0,t.mdx)("p",null,"These are ",(0,t.mdx)("a",{parentName:"p",href:"http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp"},"OCaml regular expressions"),".\nUse ",(0,t.mdx)("inlineCode",{parentName:"p"},"\\(")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},"\\)")," (slashes required!) to create a capturing group, which you\ncan refer to in the replacement pattern as ",(0,t.mdx)("inlineCode",{parentName:"p"},"\\1")," (up to ",(0,t.mdx)("inlineCode",{parentName:"p"},"\\9"),")."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," you can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"module.name_mapper")," multiple times")),(0,t.mdx)("h3",{id:"toc-module-name-mapper-extension"},"module.name_mapper.extension"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string -> string")),(0,t.mdx)("p",null,"Specify a file extension to match, and a replacement module name, separated by\na ",(0,t.mdx)("inlineCode",{parentName:"p"},"->"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," This is just shorthand for\n",(0,t.mdx)("inlineCode",{parentName:"p"},"module.name_mapper='^\\(.*\\)\\.EXTENSION$' -> 'TEMPLATE'"),")")),(0,t.mdx)("p",null,"For example:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"module.name_mapper.extension='css' -> '/CSSFlowStub.js.flow'\n")),(0,t.mdx)("p",null,"Makes Flow treat ",(0,t.mdx)("inlineCode",{parentName:"p"},"require('foo.css')")," as if it were\n",(0,t.mdx)("inlineCode",{parentName:"p"},"require(PROJECT_ROOT + '/CSSFlowStub')"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," You can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"module.name_mapper.extension")," multiple times for\ndifferent extensions.")),(0,t.mdx)("h3",{id:"toc-module-system"},"module.system"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"node | haste")),(0,t.mdx)("p",null,"The module system to use to resolve ",(0,t.mdx)("inlineCode",{parentName:"p"},"import")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},"require"),".\nHaste mode is used by Meta."),(0,t.mdx)("p",null,"The default is ",(0,t.mdx)("inlineCode",{parentName:"p"},"node"),"."),(0,t.mdx)("h3",{id:"toc-module-system-node-main-field"},"module.system.node.main_field"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"Flow reads ",(0,t.mdx)("inlineCode",{parentName:"p"},"package.json")," files for the ",(0,t.mdx)("inlineCode",{parentName:"p"},'"name"')," and ",(0,t.mdx)("inlineCode",{parentName:"p"},'"main"')," fields to figure\nout the name of the module and which file should be used to provide that\nmodule."),(0,t.mdx)("p",null,"So if Flow sees this in the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[options]\nmodule.system.node.main_field=foo\nmodule.system.node.main_field=bar\nmodule.system.node.main_field=baz\n")),(0,t.mdx)("p",null,"and then it comes across a ",(0,t.mdx)("inlineCode",{parentName:"p"},"package.json")," with"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},'{\n "name": "kittens",\n "main": "main.js",\n "bar": "bar.js",\n "baz": "baz.js"\n}\n')),(0,t.mdx)("p",null,"Flow will use ",(0,t.mdx)("inlineCode",{parentName:"p"},"bar.js")," to provide the ",(0,t.mdx)("inlineCode",{parentName:"p"},'"kittens"')," module."),(0,t.mdx)("p",null,"If this option is unspecified, Flow will always use the ",(0,t.mdx)("inlineCode",{parentName:"p"},'"main"')," field."),(0,t.mdx)("p",null,"See ",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/5725"},"this GitHub issue for the original motivation")),(0,t.mdx)("h3",{id:"toc-module-system-node-resolve-dirname"},"module.system.node.resolve_dirname"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"By default, Flow will look in directories named ",(0,t.mdx)("inlineCode",{parentName:"p"},"node_modules")," for node\nmodules. You can configure this behavior with this option."),(0,t.mdx)("p",null,"For example, if you do:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[options]\nmodule.system.node.resolve_dirname=node_modules\nmodule.system.node.resolve_dirname=custom_node_modules\n")),(0,t.mdx)("p",null,"Then Flow will look in directories named ",(0,t.mdx)("inlineCode",{parentName:"p"},"node_modules")," or\n",(0,t.mdx)("inlineCode",{parentName:"p"},"custom_node_modules"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," you can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"module.system.node.resolve_dirname")," multiple times")),(0,t.mdx)("h3",{id:"toc-module-use-strict"},"module.use_strict"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," if you use a transpiler that adds ",(0,t.mdx)("inlineCode",{parentName:"p"},'"use strict";')," to the top\nof every module."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-munge-underscores"},"munge_underscores"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to have Flow treat underscore-prefixed class properties and\nmethods as private. This should be used in conjunction with ",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/facebook/jstransform/blob/master/visitors/es6-class-visitors.js"},(0,t.mdx)("inlineCode",{parentName:"a"},"jstransform"),"'s\nES6 class transform"),",\nwhich enforces the same privacy at runtime."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-no-flowlib"},"no_flowlib"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Flow has builtin library definitions. Setting this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," will tell Flow to\nignore the builtin library definitions."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-react-runtime"},"react.runtime ",(0,t.mdx)(l.S,{version:"0.123.0",mdxType:"SinceVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"automatic | classic")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"automatic")," if you are using React's automatic runtime in ",(0,t.mdx)("inlineCode",{parentName:"p"},"@babel/plugin-transform-react-jsx"),".\nOtherwise, use ",(0,t.mdx)("inlineCode",{parentName:"p"},"classic"),". ",(0,t.mdx)("a",{parentName:"p",href:"https://babeljs.io/docs/en/babel-plugin-transform-react-jsx"},"See the babel documentation"),"\nfor details about the transform."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"classic"),"."),(0,t.mdx)("h3",{id:"toc-server-max-workers"},"server.max_workers"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"integer")),(0,t.mdx)("p",null,"The maximum number of workers the Flow server can start. By default, the server\nwill use all available cores."),(0,t.mdx)("h3",{id:"toc-sharedmemory-hash-table-pow"},"sharedmemory.hash_table_pow"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"unsigned integer")),(0,t.mdx)("p",null,"The 3 largest parts of the shared memory are a dependency table, a hash table,\nand a heap. While the heap grows and shrinks, the two tables are allocated in\nfull. This option lets you change the size of the hash table."),(0,t.mdx)("p",null,"Setting this option to X means the table will support up to 2^X elements,\nwhich is 16*2^X bytes."),(0,t.mdx)("p",null,"By default, this is set to 19 (Table size is 2^19, which is 8 megabytes)"),(0,t.mdx)("h3",{id:"toc-sharedmemory-heap-size"},"sharedmemory.heap_size"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"unsigned integer")),(0,t.mdx)("p",null,'This option configures the maximum possible size for the shared heap. You should\nmost likely not need to configure this, as it doesn\'t really affect how much\nRSS Flow uses. However, if you are working on a massive codebase you might see\nthe following error after init: "Heap init size is too close to max heap size;\nGC will never get triggered!" In this case, you may need to increase the size\nof the heap.'),(0,t.mdx)("p",null,"By default, this is set to 26843545600 (25 * 2^30 bytes, which is 25GiB)"),(0,t.mdx)("h3",{id:"toc-suppress-type"},"suppress_type"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"This option lets you alias ",(0,t.mdx)("inlineCode",{parentName:"p"},"any")," with a given string. This is useful for\nexplaining why you're using ",(0,t.mdx)("inlineCode",{parentName:"p"},"any"),". For example, let's say you sometimes want\nto sometimes use ",(0,t.mdx)("inlineCode",{parentName:"p"},"any")," to suppress an error and sometimes to mark a TODO.\nYour code might look like"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"const myString: any = 1 + 1;\nconst myBoolean: any = 1 + 1;\n")),(0,t.mdx)("p",null,"If you add the following to your configuration:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[options]\nsuppress_type=$FlowFixMe\nsuppress_type=$FlowTODO\n")),(0,t.mdx)("p",null,"You can update your code to the more readable:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"const myString: $FlowFixMe = 1 + 1;\nconst myBoolean: $FlowTODO = 1 + 1;\n")),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," You can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"suppress_type")," multiple times.")),(0,t.mdx)("h3",{id:"toc-traces"},"traces"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"integer")),(0,t.mdx)("p",null,"Enables traces on all error output (showing additional details about the flow\nof types through the system), to the depth specified. This can be very\nexpensive, so is disabled by default."),(0,t.mdx)("h3",{id:"toc-use-mixed-in-catch-variables"},"use_mixed_in_catch_variables ",(0,t.mdx)(l.S,{version:"0.201",mdxType:"SinceVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Changes the default type of ",(0,t.mdx)("inlineCode",{parentName:"p"},"catch")," variables from ",(0,t.mdx)("a",{parentName:"p",href:"../../types/any"},(0,t.mdx)("inlineCode",{parentName:"a"},"any"))," to ",(0,t.mdx)("a",{parentName:"p",href:"../../types/mixed"},(0,t.mdx)("inlineCode",{parentName:"a"},"mixed")),". E.g."),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"try {\n} catch (e) {\n}\n")),(0,t.mdx)("p",null,"in the above example, if the option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"true"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},"catch")," will be typed as ",(0,t.mdx)("inlineCode",{parentName:"p"},"mixed")," as it lacks an explicit type annotation."),(0,t.mdx)("h2",{id:"deprecated-options"},"Deprecated options"),(0,t.mdx)("p",null,"The following options no longer exist in the latest version of Flow:"),(0,t.mdx)("h3",{id:"toc-esproposal-class-instance-fields"},"esproposal.class_instance_fields ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable | ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn")," to indicate that Flow should give a warning on use of\ninstance ",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/tc39/proposal-class-public-fields"},"class fields"),"\nper the pending spec."),(0,t.mdx)("p",null,"You may also set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should simply ignore\nthe syntax (i.e. Flow will not use this syntax to indicate the presence of a\nproperty on instances of the class)."),(0,t.mdx)("p",null,"The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable"),", which allows use of this proposed\nsyntax."),(0,t.mdx)("h3",{id:"toc-esproposal-class-static-fields"},"esproposal.class_static_fields ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable | ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn")," to indicate that Flow should give a warning on use of static\n",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/tc39/proposal-class-public-fields"},"class fields"),"\nper the pending spec."),(0,t.mdx)("p",null,"You may also set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should simply ignore\nthe syntax (i.e. Flow will not use this syntax to indicate the presence of a\nstatic property on the class)."),(0,t.mdx)("p",null,"The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable"),", which allows use of this proposed\nsyntax."),(0,t.mdx)("h3",{id:"toc-esproposal-decorators"},"esproposal.decorators ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should ignore decorators."),(0,t.mdx)("p",null,"The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn"),", which gives a warning on use since\nthis proposal is still very early-stage."),(0,t.mdx)("h3",{id:"toc-esproposal-export-star-as"},"esproposal.export_star_as ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable | ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable")," to indicate that Flow should support the ",(0,t.mdx)("inlineCode",{parentName:"p"},"export * as"),"\nsyntax from ",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/leebyron/ecmascript-more-export-from"},"leebyron's proposal"),"."),(0,t.mdx)("p",null,"You may also set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should simply ignore\nthe syntax. The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn"),", which gives a warning\non use since this proposal is still very early-stage."),(0,t.mdx)("h3",{id:"toc-esproposal-optional-chaining"},"esproposal.optional_chaining ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable | ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable")," to indicate that Flow should support the use of\n",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/tc39/proposal-optional-chaining"},"optional chaining"),"\nper the pending spec."),(0,t.mdx)("p",null,"You may also set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should simply ignore\nthe syntax."),(0,t.mdx)("p",null,"The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn"),", which gives a warning on\nuse since this proposal is still very early-stage."),(0,t.mdx)("h3",{id:"toc-esproposal-nullish-coalescing"},"esproposal.nullish_coalescing ",(0,t.mdx)(l.l,{version:"0.148",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable | ignore | warn")),(0,t.mdx)("p",null,"Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"enable")," to indicate that Flow should support the use of\n",(0,t.mdx)("a",{parentName:"p",href:"https://github.com/tc39/proposal-nullish-coalescing"},"nullish coalescing"),"\nper the pending spec."),(0,t.mdx)("p",null,"You may also set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"ignore")," to indicate that Flow should simply ignore\nthe syntax."),(0,t.mdx)("p",null,"The default value of this option is ",(0,t.mdx)("inlineCode",{parentName:"p"},"warn"),", which gives a warning on\nuse since this proposal is still very early-stage."),(0,t.mdx)("h3",{id:"toc-inference-mode"},"inference_mode ",(0,t.mdx)(l.S,{version:"0.184.0",mdxType:"SinceVersion"})," ",(0,t.mdx)(l.l,{version:"0.202.0",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"classic | constrain-writes")),(0,t.mdx)("p",null,"Setting this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"constrain-writes")," will enable the constrained-writes inference mode."),(0,t.mdx)("p",null,"For more info, see the ",(0,t.mdx)("a",{parentName:"p",href:"../../lang/variables"},"variable declaration docs"),"."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"classic")),(0,t.mdx)("h3",{id:"toc-log-file"},"log.file"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"The path to the log file (defaults to ",(0,t.mdx)("inlineCode",{parentName:"p"},"/tmp/flow/.log"),")."),(0,t.mdx)("h3",{id:"toc-sharedmemory-dirs"},"sharedmemory.dirs"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"This affects Linux only."),(0,t.mdx)("p",null,"Flow's shared memory lives in a memory mapped file. On more modern versions of\nLinux (3.17+), there is a system call ",(0,t.mdx)("inlineCode",{parentName:"p"},"memfd_create")," which allows Flow to create\nthe file anonymously and only in memory. However, in older kernels, Flow needs\nto create a file on the file system. Ideally this file lives on a memory-backed\ntmpfs. This option lets you decide where that file is created."),(0,t.mdx)("p",null,"By default this option is set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"/dev/shm")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},"/tmp")),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," You can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"sharedmemory.dirs")," multiple times.")),(0,t.mdx)("h3",{id:"toc-sharedmemory-minimum-available"},"sharedmemory.minimum_available"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"unsigned integer")),(0,t.mdx)("p",null,"This affects Linux only."),(0,t.mdx)("p",null,"As explained in the ",(0,t.mdx)("a",{parentName:"p",href:"#toc-sharedmemory-dirs-string"},(0,t.mdx)("inlineCode",{parentName:"a"},"sharedmemory.dirs"))," option's description, Flow needs to\ncreate a file on a filesystem for older kernels. ",(0,t.mdx)("inlineCode",{parentName:"p"},"sharedmemory.dirs")," specifies\na list of locations where the shared memory file can be created. For each\nlocation, Flow will check to make sure the filesystem has enough space for the\nshared memory file. If Flow will likely run out of space, it skips that location\nand tries the next. This option lets you configure the minimum amount of space\nneeded on a filesystem for shared memory."),(0,t.mdx)("p",null,"By default it is 536870912 (2^29 bytes, which is half a gigabyte)."),(0,t.mdx)("h3",{id:"toc-strip-root"},"strip_root ",(0,t.mdx)(l.l,{version:"0.48",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Obsolete. Set this to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," to always strip the root directory from file paths\nin error messages when using ",(0,t.mdx)("inlineCode",{parentName:"p"},"--json"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},"--from emacs"),", and ",(0,t.mdx)("inlineCode",{parentName:"p"},"--from vim"),".\nDo not use this option. Instead, pass the command line flag ",(0,t.mdx)("inlineCode",{parentName:"p"},"--strip-root"),"."),(0,t.mdx)("p",null,"By default this is ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),"."),(0,t.mdx)("h3",{id:"toc-suppress-comment"},"suppress_comment ",(0,t.mdx)(l.l,{version:"0.126",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"regex")),(0,t.mdx)("p",null,"Defines a magical comment that suppresses any Flow errors on the following\nline. For example:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"suppress_comment= \\\\(.\\\\|\\n\\\\)*\\\\$FlowFixMe\n")),(0,t.mdx)("p",null,"will match a comment like this:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"// $FlowFixMe: suppressing this error until we can refactor\nvar x : string = 123;\n")),(0,t.mdx)("p",null,'and suppress the error. If there is no error on the next line (the suppression\nis unnecessary), an "Unused suppression" warning will be shown instead.'),(0,t.mdx)("p",null,"If no suppression comments are specified in your config, Flow will apply one\ndefault: ",(0,t.mdx)("inlineCode",{parentName:"p"},"// $FlowFixMe"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," You can specify ",(0,t.mdx)("inlineCode",{parentName:"p"},"suppress_comment")," multiple times. If you do define\nany ",(0,t.mdx)("inlineCode",{parentName:"p"},"suppress_comment"),"s, the built-in ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowFixMe")," suppression will be erased\nin favor of the regexps you specify. If you wish to use ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowFixMe")," with\nsome additional custom suppression comments, you must manually specify\n",(0,t.mdx)("inlineCode",{parentName:"p"},"\\\\(.\\\\|\\n\\\\)*\\\\$FlowFixMe")," in your custom list of suppressions.")),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},(0,t.mdx)("strong",{parentName:"p"},"Note:")," In version v0.127.0, the option to specify the suppression comment\nsyntax was removed. ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowFixMe"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowIssue"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowExpectedError"),",\nand ",(0,t.mdx)("inlineCode",{parentName:"p"},"$FlowIgnore")," became the only standard suppressions.")),(0,t.mdx)("h3",{id:"toc-temp-dir"},"temp_dir"),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"Tell Flow which directory to use as a temp directory. Can be overridden with the\ncommand line flag ",(0,t.mdx)("inlineCode",{parentName:"p"},"--temp-dir"),"."),(0,t.mdx)("p",null,"The default value is ",(0,t.mdx)("inlineCode",{parentName:"p"},"/tmp/flow"),"."),(0,t.mdx)("h3",{id:"toc-types-first"},"types_first ",(0,t.mdx)(l.S,{version:"0.125.0",mdxType:"SinceVersion"})," ",(0,t.mdx)(l.l,{version:"0.142",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"For more on types-first mode, see the ",(0,t.mdx)("a",{parentName:"p",href:"../../lang/types-first/"},"types-first docs"),"."),(0,t.mdx)("p",null,"Flow builds intermediate artifacts to represent signatures of modules as they are\nchecked. If this option is set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"false"),", then these artifacts are built using\ninferred type information. If this option is set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true"),", then they are built\nusing type annotations at module boundaries."),(0,t.mdx)("p",null,"The default value for ",(0,t.mdx)("inlineCode",{parentName:"p"},"types_first")," is ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," (as of version 0.134)."),(0,t.mdx)("h3",{id:"toc-well-formed-exports"},"well_formed_exports ",(0,t.mdx)(l.S,{version:"0.125.0",mdxType:"SinceVersion"})," ",(0,t.mdx)(l.l,{version:"0.142",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"boolean")),(0,t.mdx)("p",null,"Enforce the following restrictions on file exports:"),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},"Statements manipulating ",(0,t.mdx)("inlineCode",{parentName:"li"},"module.exports")," and the ",(0,t.mdx)("inlineCode",{parentName:"li"},"exports")," alias may only appear\nas top-level statements."),(0,t.mdx)("li",{parentName:"ul"},"Parts of the source that are visible from a file's exports need to be annotated\nunless their type can be trivially inferred (e.g. the exported expression is a\nnumeric literal). This is a requirement for types-first mode to function properly.\nFailure to properly annotate exports raise ",(0,t.mdx)("inlineCode",{parentName:"li"},"signature-verification-failure"),"s.")),(0,t.mdx)("p",null,"This option is set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true")," by default, since it is implied by ",(0,t.mdx)("a",{parentName:"p",href:"#toc-types-first-boolean"},(0,t.mdx)("inlineCode",{parentName:"a"},"types_first")),",\nbut the option is useful on its own when upgrading a project from classic mode to\ntypes-first mode."),(0,t.mdx)("h3",{id:"toc-well-formed-exports-includes"},"well_formed_exports.includes ",(0,t.mdx)(l.S,{version:"0.128.0",mdxType:"SinceVersion"})," ",(0,t.mdx)(l.l,{version:"0.142",mdxType:"UntilVersion"})),(0,t.mdx)("p",null,"Type: ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")),(0,t.mdx)("p",null,"Limit the scope of the ",(0,t.mdx)("inlineCode",{parentName:"p"},"well_formed_exports")," requirement to a specific directory\nof this project. For example"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"well_formed_exports=true\nwell_formed_exports.includes=/dirA\nwell_formed_exports.includes=/dirB\n")),(0,t.mdx)("p",null,"will only report export related errors in files under ",(0,t.mdx)("inlineCode",{parentName:"p"},"dirA")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},"dirB"),". This option\nrequires ",(0,t.mdx)("inlineCode",{parentName:"p"},"well_formed_exports")," to be set to ",(0,t.mdx)("inlineCode",{parentName:"p"},"true"),"."),(0,t.mdx)("p",null,"The purpose of this option is to help prepare a codebase for Flow types-first mode."),(0,t.mdx)("p",null,"Between versions v0.125.0 and v0.127.0, this option was named ",(0,t.mdx)("inlineCode",{parentName:"p"},"well_formed_exports.whitelist"),"."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/249.b447d2e4.js b/assets/js/249.b447d2e4.js new file mode 100644 index 00000000000..cdf8ad42667 --- /dev/null +++ b/assets/js/249.b447d2e4.js @@ -0,0 +1,2 @@ +/*! For license information please see 249.b447d2e4.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[249],{80249:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"}]},s={defaultToken:"",tokenPostfix:".go",keywords:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var","bool","true","false","uint8","uint16","uint32","uint64","int8","int16","int32","int64","float32","float64","complex64","complex128","byte","rune","uint","int","uintptr","string","nil"],operators:["+","-","*","/","%","&","|","^","<<",">>","&^","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=","&^=","&&","||","<-","++","--","==","<",">","=","!","!=","<=",">=",":=","...","(",")","","]","{","}",",",";",".",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex"],[/0[0-7']*[0-7]/,"number.octal"],[/0[bB][0-1']*[0-1]/,"number.binary"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/`/,"string","@rawstring"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],rawstring:[[/[^\`]/,"string"],[/`/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/249.b447d2e4.js.LICENSE.txt b/assets/js/249.b447d2e4.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/249.b447d2e4.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/249.e91386e0.js b/assets/js/249.e91386e0.js new file mode 100644 index 00000000000..b5eaf6110f8 --- /dev/null +++ b/assets/js/249.e91386e0.js @@ -0,0 +1,227 @@ +"use strict"; +exports.id = 249; +exports.ids = [249]; +exports.modules = { + +/***/ 80249: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/go/go.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "`", close: "`", notIn: ["string"] }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "`", close: "`" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".go", + keywords: [ + "break", + "case", + "chan", + "const", + "continue", + "default", + "defer", + "else", + "fallthrough", + "for", + "func", + "go", + "goto", + "if", + "import", + "interface", + "map", + "package", + "range", + "return", + "select", + "struct", + "switch", + "type", + "var", + "bool", + "true", + "false", + "uint8", + "uint16", + "uint32", + "uint64", + "int8", + "int16", + "int32", + "int64", + "float32", + "float64", + "complex64", + "complex128", + "byte", + "rune", + "uint", + "int", + "uintptr", + "string", + "nil" + ], + operators: [ + "+", + "-", + "*", + "/", + "%", + "&", + "|", + "^", + "<<", + ">>", + "&^", + "+=", + "-=", + "*=", + "/=", + "%=", + "&=", + "|=", + "^=", + "<<=", + ">>=", + "&^=", + "&&", + "||", + "<-", + "++", + "--", + "==", + "<", + ">", + "=", + "!", + "!=", + "<=", + ">=", + ":=", + "...", + "(", + ")", + "", + "]", + "{", + "}", + ",", + ";", + ".", + ":" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\d+[eE]([\-+]?\d+)?/, "number.float"], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, "number.hex"], + [/0[0-7']*[0-7]/, "number.octal"], + [/0[bB][0-1']*[0-1]/, "number.binary"], + [/\d[\d']*/, "number"], + [/\d/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"], + [/`/, "string", "@rawstring"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@doccomment"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + doccomment: [ + [/[^\/*]+/, "comment.doc"], + [/\/\*/, "comment.doc.invalid"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + rawstring: [ + [/[^\`]/, "string"], + [/`/, "string", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2490.26bb2f27.js b/assets/js/2490.26bb2f27.js new file mode 100644 index 00000000000..7dc4ebbae60 --- /dev/null +++ b/assets/js/2490.26bb2f27.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2490],{52490:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var o=n(87462),i=(n(67294),n(3905));n(45475);const a={title:"Flow Annotate-Exports",slug:"/cli/annotate-exports"},r=void 0,s={unversionedId:"cli/annotate-exports",id:"cli/annotate-exports",title:"Flow Annotate-Exports",description:"Upgrading to Types-First mode may require a substantial",source:"@site/docs/cli/annotate-exports.md",sourceDirName:"cli",slug:"/cli/annotate-exports",permalink:"/en/docs/cli/annotate-exports",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/cli/annotate-exports.md",tags:[],version:"current",frontMatter:{title:"Flow Annotate-Exports",slug:"/cli/annotate-exports"},sidebar:"docsSidebar",previous:{title:"Flow Coverage",permalink:"/en/docs/cli/coverage"},next:{title:".flowconfig",permalink:"/en/docs/config"}},l={},d=[{value:"How to apply the codemod",id:"toc-how-to-apply-the-codemod",level:3},{value:"Codemod output",id:"toc-codemod-output",level:3}],m={toc:d};function p(e){let{components:t,...n}=e;return(0,i.mdx)("wrapper",(0,o.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Upgrading to ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/types-first"},"Types-First")," mode may require a substantial\nnumber of type annotations at module boundaries. To help with the process of\nupgrading large codebases, we are providing a codemod command, whose goal is to\nfill in these missing annotations. This command is included in the Flow binary\nin versions ",(0,i.mdx)("inlineCode",{parentName:"p"},">= 0.125"),"."),(0,i.mdx)("blockquote",null,(0,i.mdx)("p",{parentName:"blockquote"},"Note: As of version 0.134, types-first is the default mode. If you are using a\nversion ",(0,i.mdx)("inlineCode",{parentName:"p"},">=0.134"),", make sure you set ",(0,i.mdx)("inlineCode",{parentName:"p"},"types_first=false")," in your .flowconfig while\nrunning this codemod.")),(0,i.mdx)("p",null,"This command uses types that Flow infers, to fill in positions that would otherwise\nraise ",(0,i.mdx)("em",{parentName:"p"},"signature-verification")," failures. It will include the necessary type import\nstatements, as long as the respective types are exported from their defining modules."),(0,i.mdx)("p",null,"It is designed for use on multiple files at once, rather than one file at a time.\nFor this reason it doesn't connect to an existing Flow server, but rather starts\na checking process of its own."),(0,i.mdx)("p",null,"As is typical with such mechanized approaches, it comes with a few caveats:"),(0,i.mdx)("ol",null,(0,i.mdx)("li",{parentName:"ol"},"It won\u2019t be able to fill in every required type annotation. Some cases will\nrequire manual effort."),(0,i.mdx)("li",{parentName:"ol"},"Inserted annotations may cause new flow errors, since it\u2019s not always possible\nto match inferred type with types that can be written as annotations."),(0,i.mdx)("li",{parentName:"ol"},"File formatting may be affected. If a code formatter (e.g. prettier) is used,\nit is recommended that you run it after the codemod has finished running.")),(0,i.mdx)("h3",{id:"toc-how-to-apply-the-codemod"},"How to apply the codemod"),(0,i.mdx)("p",null,"A typical way to invoke this command is"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre"},"flow codemod annotate-exports \\\n --write \\\n --repeat \\\n --log-level info \\\n /path/to/folder \\\n 2> out.log\n")),(0,i.mdx)("p",null,"This command will transform files under ",(0,i.mdx)("inlineCode",{parentName:"p"},"/path/to/folder"),". This does not need to\nbe the root directory (the one containing ",(0,i.mdx)("inlineCode",{parentName:"p"},".flowconfig"),")."),(0,i.mdx)("p",null,"It uses the following flags:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("p",{parentName:"li"},(0,i.mdx)("inlineCode",{parentName:"p"},"--write")," will update files that require annotations under ",(0,i.mdx)("inlineCode",{parentName:"p"},"/path/to/folder"),"\nin-place. Without this flag the resulting files will be printed on the command line.")),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("p",{parentName:"li"},(0,i.mdx)("inlineCode",{parentName:"p"},"--repeat")," ensures that the transformation will be applied until no more files\nchange. This mode is necessary here, because each new type the codemod adds may\nrequire new locations to be annotated.")),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("p",{parentName:"li"},(0,i.mdx)("inlineCode",{parentName:"p"},"--log-level info")," outputs useful debugging information in the standard error stream.\nThis option might lead to verbose output, so we're redirecting the error output\nto a log file ",(0,i.mdx)("inlineCode",{parentName:"p"},"out.log"),"."))),(0,i.mdx)("p",null,"Another convenient way to provide the input is by passing the flag"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre"},"--input-file file.txt\n")),(0,i.mdx)("p",null,"where ",(0,i.mdx)("inlineCode",{parentName:"p"},"file.txt")," contains a specific list of files to be transformed."),(0,i.mdx)("h3",{id:"toc-codemod-output"},"Codemod output"),(0,i.mdx)("p",null,"After each iteration of the codemod, a summary will be printed on the CLI. This\nsummary includes statistical information about the number of annotations that were\nadded, and how many locations were skipped. It also prints counts for various kinds\nof errors that were encountered. These can be matched to the errors printed in the\nlogs."),(0,i.mdx)("p",null,"A common error case is when a type ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),", defined in a file ",(0,i.mdx)("inlineCode",{parentName:"p"},"a.js"),", but not exported,\nis inferred in file ",(0,i.mdx)("inlineCode",{parentName:"p"},"b.js"),". The codemod will skip adding this annotation and report\nan error in the logs. The fix this case, you can export ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," in ",(0,i.mdx)("inlineCode",{parentName:"p"},"a.js"),". Note that\nit is not necessary to manually import ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," in ",(0,i.mdx)("inlineCode",{parentName:"p"},"b.js"),". The codemod will do this\nautomatically."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2524.7afc641b.js b/assets/js/2524.7afc641b.js new file mode 100644 index 00000000000..b92cb2a54c1 --- /dev/null +++ b/assets/js/2524.7afc641b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2524],{22524:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>m,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var s=t(87462),n=(t(67294),t(3905));const a={title:"Coming Soon: Changes to Object Spreads","short-title":"Changes to Object Spreads",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/coming-soon-changes-to-object-spreads-73204aef84e1"},r=void 0,i={permalink:"/blog/2019/08/20/Changes-to-Object-Spreads",source:"@site/blog/2019-08-20-Changes-to-Object-Spreads.md",title:"Coming Soon: Changes to Object Spreads",description:"Changes are coming to how Flow models object spreads! Learn more in this post.",date:"2019-08-20T00:00:00.000Z",formattedDate:"August 20, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Coming Soon: Changes to Object Spreads","short-title":"Changes to Object Spreads",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/coming-soon-changes-to-object-spreads-73204aef84e1"},prevItem:{title:"Live Flow errors in your IDE",permalink:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"},nextItem:{title:"Upgrading Flow Codebases",permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases"}},m={authorsImageUrls:[void 0]},d=[],l={toc:d};function p(e){let{components:o,...t}=e;return(0,n.mdx)("wrapper",(0,s.Z)({},l,t,{components:o,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"Changes are coming to how Flow models object spreads! Learn more in this post."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2554.0673177f.js b/assets/js/2554.0673177f.js new file mode 100644 index 00000000000..e611c45816d --- /dev/null +++ b/assets/js/2554.0673177f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2554],{52554:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>c,frontMatter:()=>n,metadata:()=>s,toc:()=>m});var r=o(87462),i=(o(67294),o(3905));const n={title:"Typing Higher-Order Components in Recompose With Flow","short-title":"Flow Support in Recompose",author:"Ivan Starkov","medium-link":"https://medium.com/flow-type/flow-support-in-recompose-1b76f58f4cfc"},a=void 0,s={permalink:"/blog/2017/09/03/Flow-Support-in-Recompose",source:"@site/blog/2017-09-03-Flow-Support-in-Recompose.md",title:"Typing Higher-Order Components in Recompose With Flow",description:"One month ago Recompose landed an",date:"2017-09-03T00:00:00.000Z",formattedDate:"September 3, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Ivan Starkov"}],frontMatter:{title:"Typing Higher-Order Components in Recompose With Flow","short-title":"Flow Support in Recompose",author:"Ivan Starkov","medium-link":"https://medium.com/flow-type/flow-support-in-recompose-1b76f58f4cfc"},prevItem:{title:"Better Flow Error Messages for the JavaScript Ecosystem",permalink:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"},nextItem:{title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases",permalink:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"}},p={authorsImageUrls:[void 0]},m=[],l={toc:m};function c(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,r.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"One month ago ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/acdlite/recompose"},"Recompose")," landed an\nofficial Flow library definition. The definitions were a long time coming,\nconsidering the original PR was created by\n",(0,i.mdx)("a",{parentName:"p",href:"https://twitter.com/GiulioCanti"},"@GiulioCanti")," a year ago."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2565.75cc8af7.js b/assets/js/2565.75cc8af7.js new file mode 100644 index 00000000000..756cc516506 --- /dev/null +++ b/assets/js/2565.75cc8af7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2565],{42565:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>m,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var t=a(87462),o=(a(67294),a(3905));a(45475);const l={title:"Any",slug:"/types/any"},r=void 0,i={unversionedId:"types/any",id:"types/any",title:"Any",description:"Warning: Do not mistake any with mixed. It's also not the same as empty.",source:"@site/docs/types/any.md",sourceDirName:"types",slug:"/types/any",permalink:"/en/docs/types/any",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/any.md",tags:[],version:"current",frontMatter:{title:"Any",slug:"/types/any"},sidebar:"docsSidebar",previous:{title:"Empty",permalink:"/en/docs/types/empty"},next:{title:"Maybe Types",permalink:"/en/docs/types/maybe"}},d={},s=[{value:"Avoid leaking any",id:"toc-avoid-leaking-any",level:2}],p={toc:s};function m(e){let{components:n,...a}=e;return(0,o.mdx)("wrapper",(0,t.Z)({},p,a,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Warning:")," Do not mistake ",(0,o.mdx)("inlineCode",{parentName:"p"},"any")," with ",(0,o.mdx)("a",{parentName:"p",href:"../mixed"},(0,o.mdx)("inlineCode",{parentName:"a"},"mixed")),". It's also not the same as ",(0,o.mdx)("a",{parentName:"p",href:"../empty"},(0,o.mdx)("inlineCode",{parentName:"a"},"empty")),".")),(0,o.mdx)("p",null,"If you want a way to opt-out of using the type checker, ",(0,o.mdx)("inlineCode",{parentName:"p"},"any")," is the way to do\nit. ",(0,o.mdx)("strong",{parentName:"p"},"Using ",(0,o.mdx)("inlineCode",{parentName:"strong"},"any")," is completely unsafe, and should be avoided whenever\npossible.")),(0,o.mdx)("p",null,"For example, the following code will not report any errors:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function add(one: any, two: any): number {\n return one + two;\n}\n\nadd(1, 2); // Works.\nadd("1", "2"); // Works.\nadd({}, []); // Works.\n')),(0,o.mdx)("p",null,"Even code that will cause runtime errors will not be caught by Flow:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function getNestedProperty(obj: any) {\n return obj.foo.bar.baz;\n}\n\ngetNestedProperty({});\n")),(0,o.mdx)("p",null,"There are only a couple of scenarios where you might consider using ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),":"),(0,o.mdx)("ol",null,(0,o.mdx)("li",{parentName:"ol"},"When you are in the process of converting existing code to using Flow\ntypes and you are currently blocked on having the code type checked (maybe\nother code needs to be converted first)."),(0,o.mdx)("li",{parentName:"ol"},"When you are certain your code works and for some reason Flow is unable to\ntype check it correctly. There are a (decreasing) number of idioms in\nJavaScript that Flow is unable to statically type.")),(0,o.mdx)("p",null,"You can ban ",(0,o.mdx)("inlineCode",{parentName:"p"},"any")," by enabling the ",(0,o.mdx)("a",{parentName:"p",href:"../../linting/rule-reference/#toc-unclear-type"},(0,o.mdx)("inlineCode",{parentName:"a"},"unclear-type"))," lint rule."),(0,o.mdx)("p",null,"You can use the ",(0,o.mdx)("a",{parentName:"p",href:"../../cli/coverage/"},"coverage")," command to identify code typed as ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,o.mdx)("h2",{id:"toc-avoid-leaking-any"},"Avoid leaking ",(0,o.mdx)("inlineCode",{parentName:"h2"},"any")),(0,o.mdx)("p",null,"When you have a value with the type ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),", you can cause Flow to infer ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),"\nfor the results of all of the operations you perform."),(0,o.mdx)("p",null,"For example, if you get a property on an object typed ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),", the resulting\nvalue will also have the type ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function fn(obj: any) {\n let foo = obj.foo; // Results in `any` type\n}\n")),(0,o.mdx)("p",null,"You could then use the resulting value in another operation, such as adding it\nas if it were a number and the result will also be ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function fn(obj: any) {\n let foo = obj.foo; // Results in `any` type\n let bar = foo * 2; // Results in `any` type\n}\n")),(0,o.mdx)("p",null,"You could continue this process until ",(0,o.mdx)("inlineCode",{parentName:"p"},"any")," has leaked all over your code."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function fn(obj: any) {\n let foo = obj.foo;\n let bar = foo * 2;\n return bar; // Results in `any` type\n}\n\nlet bar = fn({ foo: 2 }); // Results in `any` type\nlet baz = "baz:" + bar; // Results in `any` type\n')),(0,o.mdx)("p",null,"Prevent this from happening by cutting ",(0,o.mdx)("inlineCode",{parentName:"p"},"any")," off as soon as possible by casting\nit to another type."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function fn(obj: any) {\n let foo: number = obj.foo;\n}\n")),(0,o.mdx)("p",null,"Now your code will not leak ",(0,o.mdx)("inlineCode",{parentName:"p"},"any"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2571.8753aa09.js b/assets/js/2571.8753aa09.js new file mode 100644 index 00000000000..d549ca62df1 --- /dev/null +++ b/assets/js/2571.8753aa09.js @@ -0,0 +1,313 @@ +"use strict"; +exports.id = 2571; +exports.ids = [2571]; +exports.modules = { + +/***/ 2571: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15030); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/html/html.ts +var EMPTY_ELEMENTS = [ + "area", + "base", + "br", + "col", + "embed", + "hr", + "img", + "input", + "keygen", + "link", + "menuitem", + "meta", + "param", + "source", + "track", + "wbr" +]; +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, + comments: { + blockComment: [""] + }, + brackets: [ + [""], + ["<", ">"], + ["{", "}"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" } + ], + onEnterRules: [ + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + afterText: /^<\/([_:\w][_:\w-.\d]*)\s*>$/i, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ], + folding: { + markers: { + start: new RegExp("^\\s*"), + end: new RegExp("^\\s*") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".html", + ignoreCase: true, + tokenizer: { + root: [ + [/)/, ["delimiter", "tag", "", "delimiter"]], + [/(<)(script)/, ["delimiter", { token: "tag", next: "@script" }]], + [/(<)(style)/, ["delimiter", { token: "tag", next: "@style" }]], + [/(<)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter", { token: "tag", next: "@otherTag" }]], + [/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter", { token: "tag", next: "@otherTag" }]], + [/]+/, "metatag.content"], + [/>/, "metatag", "@pop"] + ], + comment: [ + [/-->/, "comment", "@pop"], + [/[^-]+/, "comment.content"], + [/./, "comment.content"] + ], + otherTag: [ + [/\/?>/, "delimiter", "@pop"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/] + ], + script: [ + [/type/, "attribute.name", "@scriptAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/(<\/)(script\s*)(>)/, ["delimiter", "tag", { token: "delimiter", next: "@pop" }]] + ], + scriptAfterType: [ + [/=/, "delimiter", "@scriptAfterTypeEquals"], + [ + />/, + { + token: "delimiter", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptAfterTypeEquals: [ + [ + /"module"/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.text/javascript" + } + ], + [ + /'module'/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.text/javascript" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptWithCustomType: [ + [ + />/, + { + token: "delimiter", + next: "@scriptEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptEmbedded: [ + [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }], + [/[^<]+/, ""] + ], + style: [ + [/type/, "attribute.name", "@styleAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/(<\/)(style\s*)(>)/, ["delimiter", "tag", { token: "delimiter", next: "@pop" }]] + ], + styleAfterType: [ + [/=/, "delimiter", "@styleAfterTypeEquals"], + [ + />/, + { + token: "delimiter", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleAfterTypeEquals: [ + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleWithCustomType: [ + [ + />/, + { + token: "delimiter", + next: "@styleEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleEmbedded: [ + [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }], + [/[^<]+/, ""] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2571.e348d774.js b/assets/js/2571.e348d774.js new file mode 100644 index 00000000000..b91dce37719 --- /dev/null +++ b/assets/js/2571.e348d774.js @@ -0,0 +1,2 @@ +/*! For license information please see 2571.e348d774.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2571],{2571:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>u,language:()=>b});var i,r,o=n(15030),s=Object.defineProperty,a=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,m=(e,t,n,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of d(t))p.call(e,r)||r===n||s(e,r,{get:()=>t[r],enumerable:!(i=a(t,r))||i.enumerable});return e},l={};m(l,i=o,"default"),r&&m(r,i,"default");var c=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],u={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${c.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:l.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${c.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:l.languages.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*\x3c!--\\s*#region\\b.*--\x3e"),end:new RegExp("^\\s*\x3c!--\\s*#endregion\\b.*--\x3e")}}},b={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"module"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/'module'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}}}]); \ No newline at end of file diff --git a/assets/js/2571.e348d774.js.LICENSE.txt b/assets/js/2571.e348d774.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2571.e348d774.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2601.785852cd.js b/assets/js/2601.785852cd.js new file mode 100644 index 00000000000..1183a239e66 --- /dev/null +++ b/assets/js/2601.785852cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2601],{52601:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var n=a(87462),o=(a(67294),a(3905));a(45475);const i={title:"Getting Started",slug:"/react",description:"Learn how to use Flow to effectively type common and advanced React patterns."},r=void 0,s={unversionedId:"react/index",id:"react/index",title:"Getting Started",description:"Learn how to use Flow to effectively type common and advanced React patterns.",source:"@site/docs/react/index.md",sourceDirName:"react",slug:"/react",permalink:"/en/docs/react",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/index.md",tags:[],version:"current",frontMatter:{title:"Getting Started",slug:"/react",description:"Learn how to use Flow to effectively type common and advanced React patterns."},sidebar:"docsSidebar",previous:{title:"Annotation Requirement",permalink:"/en/docs/lang/annotation-requirement"},next:{title:"Components",permalink:"/en/docs/react/components"}},l={},c=[{value:"Setup Flow with React",id:"toc-setup-flow-with-react",level:2},{value:"React Runtimes",id:"react-runtimes",level:2}],d={toc:c};function p(e){let{components:t,...a}=e;return(0,o.mdx)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Developers will often use Flow and React together, so it is important that Flow\ncan effectively type both common and advanced React patterns. This guide will\nteach you how to use Flow to create safer React applications."),(0,o.mdx)("p",null,"In this guide we will assume you know ",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/learn"},"the React basics")," and focus on adding\ntypes for patterns you are already familiar with. We will be using examples\nbased on ",(0,o.mdx)("inlineCode",{parentName:"p"},"react-dom"),", but all of these patterns work in other environments\nlike ",(0,o.mdx)("inlineCode",{parentName:"p"},"react-native")," as well."),(0,o.mdx)("h2",{id:"toc-setup-flow-with-react"},"Setup Flow with React"),(0,o.mdx)("p",null,"Flow and Babel work well together, so it doesn't take much to adopt Flow as a\nReact user who already uses Babel. If you need to setup Babel with Flow, you can\nfollow ",(0,o.mdx)("a",{parentName:"p",href:"../tools/babel/"},"this guide"),"."),(0,o.mdx)("h2",{id:"react-runtimes"},"React Runtimes"),(0,o.mdx)("p",null,"Flow supports the ",(0,o.mdx)("inlineCode",{parentName:"p"},"@babel/plugin-transform-react-jsx")," runtime options required\nto use JSX without explicitly importing the React namespace."),(0,o.mdx)("p",null,"If you are using the new automatic runtime, use this configuration in your ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig")," so\nthat Flow knows to auto-import ",(0,o.mdx)("inlineCode",{parentName:"p"},"jsx"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-ini"},"[options]\nreact.runtime=automatic\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2625.8dd63d43.js b/assets/js/2625.8dd63d43.js new file mode 100644 index 00000000000..1ba88e5fe66 --- /dev/null +++ b/assets/js/2625.8dd63d43.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2625],{12625:(n,t,e)=>{e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var i=e(87462),o=(e(67294),e(3905));const s={title:"Sound Typing for 'this' in Flow","short-title":"Sound Typing for 'this'",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/sound-typing-for-this-in-flow-d62db2af969e"},a=void 0,r={permalink:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow",source:"@site/blog/2021-06-02-Sound-Typing-for-this-in-Flow.md",title:"Sound Typing for 'this' in Flow",description:"Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.",date:"2021-06-02T00:00:00.000Z",formattedDate:"June 2, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"Daniel Sainati"}],frontMatter:{title:"Sound Typing for 'this' in Flow","short-title":"Sound Typing for 'this'",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/sound-typing-for-this-in-flow-d62db2af969e"},prevItem:{title:"Introducing Flow Indexed Access Types",permalink:"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types"},nextItem:{title:"Clarity on Flow's Direction and Open Source Engagement",permalink:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement"}},l={authorsImageUrls:[void 0]},d=[],p={toc:d};function u(n){let{components:t,...e}=n;return(0,o.mdx)("wrapper",(0,i.Z)({},p,e,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Improvements in soundness for ",(0,o.mdx)("inlineCode",{parentName:"p"},"this"),"-typing in Flow, including the ability to annotate ",(0,o.mdx)("inlineCode",{parentName:"p"},"this")," on functions and methods."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2638.edecc05b.js b/assets/js/2638.edecc05b.js new file mode 100644 index 00000000000..3e7ec530e2e --- /dev/null +++ b/assets/js/2638.edecc05b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2638],{82638:e=>{e.exports=JSON.parse('{"permalink":"/blog/page/2","page":2,"postsPerPage":50,"totalPages":2,"totalCount":54,"previousPage":"/blog","blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/2657.35cf273e.js b/assets/js/2657.35cf273e.js new file mode 100644 index 00000000000..a22650cb1a3 --- /dev/null +++ b/assets/js/2657.35cf273e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2657],{52991:(e,t,o)=>{o.d(t,{Z:()=>g});var n=o(67294),i=o(86010),r=o(53438),s=o(39960),l=o(13919),a=o(95999);const c="cardContainer_fWXF",d="cardTitle_rnsV",m="cardDescription_PWke";function u(e){let{href:t,children:o}=e;return n.createElement(s.default,{href:t,className:(0,i.default)("card padding--lg",c)},o)}function f(e){let{href:t,icon:o,title:r,description:s}=e;return n.createElement(u,{href:t},n.createElement("h2",{className:(0,i.default)("text--truncate",d),title:r},o," ",r),s&&n.createElement("p",{className:(0,i.default)("text--truncate",m),title:s},s))}function p(e){var t;let{item:o}=e;const i=(0,r.Wl)(o);return i?n.createElement(f,{href:i,icon:"\ud83d\uddc3\ufe0f",title:o.label,description:null!=(t=o.description)?t:(0,a.translate)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:o.items.length})}):null}function h(e){var t,o;let{item:i}=e;const s=(0,l.Z)(i.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",a=(0,r.xz)(null!=(t=i.docId)?t:void 0);return n.createElement(f,{href:i.href,icon:s,title:i.label,description:null!=(o=i.description)?o:null==a?void 0:a.description})}function w(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(h,{item:t});case"category":return n.createElement(p,{item:t});default:throw new Error("unknown item type "+JSON.stringify(t))}}function b(e){let{className:t}=e;const o=(0,r.jA)();return n.createElement(g,{items:o.items,className:t})}function g(e){const{items:t,className:o}=e;if(!t)return n.createElement(b,e);const s=(0,r.MN)(t);return n.createElement("section",{className:(0,i.default)("row",o)},s.map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(w,{item:e})))))}},52657:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var n=o(87462),i=(o(67294),o(3905)),r=(o(45475),o(52991));const s={title:"Tools",slug:"/tools",displayed_sidebar:"docsSidebar",description:"Detailed guides, tips, and resources on how to integrate Flow with different JavaScript tools."},l=void 0,a={unversionedId:"tools/index",id:"tools/index",title:"Tools",description:"Detailed guides, tips, and resources on how to integrate Flow with different JavaScript tools.",source:"@site/docs/tools/index.md",sourceDirName:"tools",slug:"/tools",permalink:"/en/docs/tools",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/tools/index.md",tags:[],version:"current",frontMatter:{title:"Tools",slug:"/tools",displayed_sidebar:"docsSidebar",description:"Detailed guides, tips, and resources on how to integrate Flow with different JavaScript tools."},sidebar:"docsSidebar"},c={},d=[],m={toc:d};function u(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,n.Z)({},m,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)(r.Z,{items:[{type:"link",label:"Babel",href:"/en/docs/tools/babel"},{type:"link",label:"ESLint",href:"/en/docs/tools/eslint"},{type:"link",label:"flow-remove-types",href:"/en/docs/tools/flow-remove-types"}],mdxType:"DocCardList"}))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2798.15e85de8.js b/assets/js/2798.15e85de8.js new file mode 100644 index 00000000000..e1a0742b219 --- /dev/null +++ b/assets/js/2798.15e85de8.js @@ -0,0 +1,87 @@ +"use strict"; +exports.id = 2798; +exports.ids = [2798]; +exports.modules = { + +/***/ 52798: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/ini/ini.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".ini", + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [/^\[[^\]]*\]/, "metatag"], + [/(^\w+)(\s*)(\=)/, ["key", "", "delimiter"]], + { include: "@whitespace" }, + [/\d+/, "number"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", '@string."'], + [/'/, "string", "@string.'"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/^\s*[#;].*$/, "comment"] + ], + string: [ + [/[^\\"']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [ + /["']/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2798.58a5b297.js b/assets/js/2798.58a5b297.js new file mode 100644 index 00000000000..707f88a9712 --- /dev/null +++ b/assets/js/2798.58a5b297.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2798],{22798:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var a=t(87462),o=(t(67294),t(3905));t(45475);const s={title:"Depth Subtyping",slug:"/lang/depth-subtyping"},r=void 0,i={unversionedId:"lang/depth-subtyping",id:"lang/depth-subtyping",title:"Depth Subtyping",description:"Assume we have two classes, which have a subtype relationship using extends:",source:"@site/docs/lang/depth-subtyping.md",sourceDirName:"lang",slug:"/lang/depth-subtyping",permalink:"/en/docs/lang/depth-subtyping",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/depth-subtyping.md",tags:[],version:"current",frontMatter:{title:"Depth Subtyping",slug:"/lang/depth-subtyping"},sidebar:"docsSidebar",previous:{title:"Nominal & Structural Typing",permalink:"/en/docs/lang/nominal-structural"},next:{title:"Width Subtyping",permalink:"/en/docs/lang/width-subtyping"}},p={},l=[],m={toc:l};function d(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Assume we have two ",(0,o.mdx)("a",{parentName:"p",href:"../../types/classes"},"classes"),", which have a subtype relationship using ",(0,o.mdx)("inlineCode",{parentName:"p"},"extends"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Person {\n name: string;\n}\nclass Employee extends Person {\n department: string;\n}\n")),(0,o.mdx)("p",null,"It's valid to use an ",(0,o.mdx)("inlineCode",{parentName:"p"},"Employee")," instance where a ",(0,o.mdx)("inlineCode",{parentName:"p"},"Person")," instance is expected."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Person { name: string }\nclass Employee extends Person { department: string }\n\nconst employee: Employee = new Employee();\nconst person: Person = employee; // OK\n")),(0,o.mdx)("p",null,"However, it is not valid to use an object containing an ",(0,o.mdx)("inlineCode",{parentName:"p"},"Employee")," instance\nwhere an object containing a ",(0,o.mdx)("inlineCode",{parentName:"p"},"Person")," instance is expected."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":31,"endLine":5,"endColumn":38,"description":"Cannot assign `employee` to `person` because `Person` [1] is incompatible with `Employee` [2] in property `who`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-type]"}]','[{"startLine":5,"startColumn":31,"endLine":5,"endColumn":38,"description":"Cannot':!0,assign:!0,"`employee`":!0,to:!0,"`person`":!0,because:!0,"`Person`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`Employee`":!0,"[2]":!0,in:!0,property:!0,"`who`.":!0,This:!0,invariantly:!0,"typed.":!0,See:!0,"https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number.":!0,'[incompatible-type]"}]':!0},"class Person { name: string }\nclass Employee extends Person { department: string }\n\nconst employee: {who: Employee} = {who: new Employee()};\nconst person: {who: Person} = employee; // Error\n")),(0,o.mdx)("p",null,"This is an error because objects are mutable. The value referenced by the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"employee")," variable is the same as the value referenced by the ",(0,o.mdx)("inlineCode",{parentName:"p"},"person"),"\nvariable."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"person.who = new Person();\n")),(0,o.mdx)("p",null,"If we write into the ",(0,o.mdx)("inlineCode",{parentName:"p"},"who")," property of the ",(0,o.mdx)("inlineCode",{parentName:"p"},"person")," object, we've also changed\nthe value of ",(0,o.mdx)("inlineCode",{parentName:"p"},"employee.who"),", which is explicitly annotated to be an ",(0,o.mdx)("inlineCode",{parentName:"p"},"Employee"),"\ninstance."),(0,o.mdx)("p",null,"If we prevented any code from ever writing a new value to the object through\nthe ",(0,o.mdx)("inlineCode",{parentName:"p"},"person")," variable, it would be safe to use the ",(0,o.mdx)("inlineCode",{parentName:"p"},"employee")," variable. Flow\nprovides a syntax for this:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":8,"endLine":6,"endColumn":10,"description":"Cannot assign `new Person()` to `person.who` because property `who` is not writable. [cannot-write]"}]','[{"startLine":6,"startColumn":8,"endLine":6,"endColumn":10,"description":"Cannot':!0,assign:!0,"`new":!0,"Person()`":!0,to:!0,"`person.who`":!0,because:!0,property:!0,"`who`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"}]':!0},"class Person { name: string }\nclass Employee extends Person { department: string }\n\nconst employee: {who: Employee} = {who: new Employee()};\nconst person: {+who: Person} = employee; // OK\nperson.who = new Person(); // Error!\n")),(0,o.mdx)("p",null,"The plus sign ",(0,o.mdx)("inlineCode",{parentName:"p"},"+")," indicates that the ",(0,o.mdx)("inlineCode",{parentName:"p"},"who")," property is ",(0,o.mdx)("a",{parentName:"p",href:"../variance/#toc-covariance"},"covariant"),".\nUsing a covariant property allows us to use objects which have subtype-compatible\nvalues for that property. By default, object properties are invariant, which allow\nboth reads and writes, but are more restrictive in the values they accept."),(0,o.mdx)("p",null,"Read more about ",(0,o.mdx)("a",{parentName:"p",href:"../variance/"},"property variance"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2814.5021f04e.js b/assets/js/2814.5021f04e.js new file mode 100644 index 00000000000..91c93a6cae8 --- /dev/null +++ b/assets/js/2814.5021f04e.js @@ -0,0 +1,2 @@ +/*! For license information please see 2814.5021f04e.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2814],{12814:(e,o,n)=>{n.r(o),n.d(o,{conf:()=>t,language:()=>r});var t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}]},r={defaultToken:"",tokenPostfix:".ecl",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],pounds:["append","break","declare","demangle","end","for","getdatatype","if","inmodule","loop","mangle","onwarning","option","set","stored","uniquename"].join("|"),keywords:["__compressed__","after","all","and","any","as","atmost","before","beginc","best","between","case","cluster","compressed","compression","const","counter","csv","default","descend","embed","encoding","encrypt","end","endc","endembed","endmacro","enum","escape","except","exclusive","expire","export","extend","fail","few","fileposition","first","flat","forward","from","full","function","functionmacro","group","grouped","heading","hole","ifblock","import","in","inner","interface","internal","joined","keep","keyed","last","left","limit","linkcounted","literal","little_endian","load","local","locale","lookup","lzw","macro","many","maxcount","maxlength","min skew","module","mofn","multiple","named","namespace","nocase","noroot","noscan","nosort","not","noxpath","of","onfail","only","opt","or","outer","overwrite","packed","partition","penalty","physicallength","pipe","prefetch","quote","record","repeat","retry","return","right","right1","right2","rows","rowset","scan","scope","self","separator","service","shared","skew","skip","smart","soapaction","sql","stable","store","terminator","thor","threshold","timelimit","timeout","token","transform","trim","type","unicodeorder","unordered","unsorted","unstable","update","use","validate","virtual","whole","width","wild","within","wnotrim","xml","xpath"],functions:["abs","acos","aggregate","allnodes","apply","ascii","asin","assert","asstring","atan","atan2","ave","build","buildindex","case","catch","choose","choosen","choosesets","clustersize","combine","correlation","cos","cosh","count","covariance","cron","dataset","dedup","define","denormalize","dictionary","distribute","distributed","distribution","ebcdic","enth","error","evaluate","event","eventextra","eventname","exists","exp","fail","failcode","failmessage","fetch","fromunicode","fromxml","getenv","getisvalid","global","graph","group","hash","hash32","hash64","hashcrc","hashmd5","having","httpcall","httpheader","if","iff","index","intformat","isvalid","iterate","join","keydiff","keypatch","keyunicode","length","library","limit","ln","loadxml","local","log","loop","map","matched","matchlength","matchposition","matchtext","matchunicode","max","merge","mergejoin","min","nofold","nolocal","nonempty","normalize","nothor","notify","output","parallel","parse","pipe","power","preload","process","project","pull","random","range","rank","ranked","realformat","recordof","regexfind","regexreplace","regroup","rejected","rollup","round","roundup","row","rowdiff","sample","sequential","set","sin","sinh","sizeof","soapcall","sort","sorted","sqrt","stepped","stored","sum","table","tan","tanh","thisnode","topn","tounicode","toxml","transfer","transform","trim","truncate","typeof","ungroup","unicodeorder","variance","wait","which","workunit","xmldecode","xmlencode","xmltext","xmlunicode"],typesint:["integer","unsigned"].join("|"),typesnum:["data","qstring","string","unicode","utf8","varstring","varunicode"],typesone:["ascii","big_endian","boolean","data","decimal","ebcdic","grouped","integer","linkcounted","pattern","qstring","real","record","rule","set of","streamed","string","token","udecimal","unicode","unsigned","utf8","varstring","varunicode"].join("|"),operators:["+","-","/",":=","<","<>","=",">","\\","and","in","not","or"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/2814.5021f04e.js.LICENSE.txt b/assets/js/2814.5021f04e.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/2814.5021f04e.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/2814.f576c6ab.js b/assets/js/2814.f576c6ab.js new file mode 100644 index 00000000000..f1bb47b806f --- /dev/null +++ b/assets/js/2814.f576c6ab.js @@ -0,0 +1,473 @@ +"use strict"; +exports.id = 2814; +exports.ids = [2814]; +exports.modules = { + +/***/ 12814: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/ecl/ecl.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".ecl", + ignoreCase: true, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + pounds: [ + "append", + "break", + "declare", + "demangle", + "end", + "for", + "getdatatype", + "if", + "inmodule", + "loop", + "mangle", + "onwarning", + "option", + "set", + "stored", + "uniquename" + ].join("|"), + keywords: [ + "__compressed__", + "after", + "all", + "and", + "any", + "as", + "atmost", + "before", + "beginc", + "best", + "between", + "case", + "cluster", + "compressed", + "compression", + "const", + "counter", + "csv", + "default", + "descend", + "embed", + "encoding", + "encrypt", + "end", + "endc", + "endembed", + "endmacro", + "enum", + "escape", + "except", + "exclusive", + "expire", + "export", + "extend", + "fail", + "few", + "fileposition", + "first", + "flat", + "forward", + "from", + "full", + "function", + "functionmacro", + "group", + "grouped", + "heading", + "hole", + "ifblock", + "import", + "in", + "inner", + "interface", + "internal", + "joined", + "keep", + "keyed", + "last", + "left", + "limit", + "linkcounted", + "literal", + "little_endian", + "load", + "local", + "locale", + "lookup", + "lzw", + "macro", + "many", + "maxcount", + "maxlength", + "min skew", + "module", + "mofn", + "multiple", + "named", + "namespace", + "nocase", + "noroot", + "noscan", + "nosort", + "not", + "noxpath", + "of", + "onfail", + "only", + "opt", + "or", + "outer", + "overwrite", + "packed", + "partition", + "penalty", + "physicallength", + "pipe", + "prefetch", + "quote", + "record", + "repeat", + "retry", + "return", + "right", + "right1", + "right2", + "rows", + "rowset", + "scan", + "scope", + "self", + "separator", + "service", + "shared", + "skew", + "skip", + "smart", + "soapaction", + "sql", + "stable", + "store", + "terminator", + "thor", + "threshold", + "timelimit", + "timeout", + "token", + "transform", + "trim", + "type", + "unicodeorder", + "unordered", + "unsorted", + "unstable", + "update", + "use", + "validate", + "virtual", + "whole", + "width", + "wild", + "within", + "wnotrim", + "xml", + "xpath" + ], + functions: [ + "abs", + "acos", + "aggregate", + "allnodes", + "apply", + "ascii", + "asin", + "assert", + "asstring", + "atan", + "atan2", + "ave", + "build", + "buildindex", + "case", + "catch", + "choose", + "choosen", + "choosesets", + "clustersize", + "combine", + "correlation", + "cos", + "cosh", + "count", + "covariance", + "cron", + "dataset", + "dedup", + "define", + "denormalize", + "dictionary", + "distribute", + "distributed", + "distribution", + "ebcdic", + "enth", + "error", + "evaluate", + "event", + "eventextra", + "eventname", + "exists", + "exp", + "fail", + "failcode", + "failmessage", + "fetch", + "fromunicode", + "fromxml", + "getenv", + "getisvalid", + "global", + "graph", + "group", + "hash", + "hash32", + "hash64", + "hashcrc", + "hashmd5", + "having", + "httpcall", + "httpheader", + "if", + "iff", + "index", + "intformat", + "isvalid", + "iterate", + "join", + "keydiff", + "keypatch", + "keyunicode", + "length", + "library", + "limit", + "ln", + "loadxml", + "local", + "log", + "loop", + "map", + "matched", + "matchlength", + "matchposition", + "matchtext", + "matchunicode", + "max", + "merge", + "mergejoin", + "min", + "nofold", + "nolocal", + "nonempty", + "normalize", + "nothor", + "notify", + "output", + "parallel", + "parse", + "pipe", + "power", + "preload", + "process", + "project", + "pull", + "random", + "range", + "rank", + "ranked", + "realformat", + "recordof", + "regexfind", + "regexreplace", + "regroup", + "rejected", + "rollup", + "round", + "roundup", + "row", + "rowdiff", + "sample", + "sequential", + "set", + "sin", + "sinh", + "sizeof", + "soapcall", + "sort", + "sorted", + "sqrt", + "stepped", + "stored", + "sum", + "table", + "tan", + "tanh", + "thisnode", + "topn", + "tounicode", + "toxml", + "transfer", + "transform", + "trim", + "truncate", + "typeof", + "ungroup", + "unicodeorder", + "variance", + "wait", + "which", + "workunit", + "xmldecode", + "xmlencode", + "xmltext", + "xmlunicode" + ], + typesint: ["integer", "unsigned"].join("|"), + typesnum: ["data", "qstring", "string", "unicode", "utf8", "varstring", "varunicode"], + typesone: [ + "ascii", + "big_endian", + "boolean", + "data", + "decimal", + "ebcdic", + "grouped", + "integer", + "linkcounted", + "pattern", + "qstring", + "real", + "record", + "rule", + "set of", + "streamed", + "string", + "token", + "udecimal", + "unicode", + "unsigned", + "utf8", + "varstring", + "varunicode" + ].join("|"), + operators: ["+", "-", "/", ":=", "<", "<>", "=", ">", "\\", "and", "in", "not", "or"], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F_]+/, "number.hex"], + [/0[bB][01]+/, "number.hex"], + [/[0-9_]+/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\v\f\r\n]+/, ""], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + string: [ + [/[^\\']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/'/, "string", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/2837.c1fc15db.js b/assets/js/2837.c1fc15db.js new file mode 100644 index 00000000000..fe814bfdc5f --- /dev/null +++ b/assets/js/2837.c1fc15db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2837],{52837:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>p,toc:()=>s});var o=n(87462),a=(n(67294),n(3905));const r={title:"Announcing Import Type","short-title":"Import Type",author:"Jeff Morrison",hide_table_of_contents:!0},i=void 0,p={permalink:"/blog/2015/02/18/Import-Types",source:"@site/blog/2015-02-18-Import-Types.md",title:"Announcing Import Type",description:"As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.",date:"2015-02-18T00:00:00.000Z",formattedDate:"February 18, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Jeff Morrison"}],frontMatter:{title:"Announcing Import Type","short-title":"Import Type",author:"Jeff Morrison",hide_table_of_contents:!0},prevItem:{title:"Announcing Flow Comments",permalink:"/blog/2015/02/20/Flow-Comments"},nextItem:{title:"Announcing Typecasts",permalink:"/blog/2015/02/18/Typecasts"}},l={authorsImageUrls:[void 0]},s=[{value:"Motivation",id:"motivation",level:2},{value:"Enter Import Type",id:"enter-import-type",level:2},{value:"Transformations",id:"transformations",level:2},{value:"Anticipatory Q&A",id:"anticipatory-qa",level:2},{value:"Wait, but what happens at runtime after I've added an import type declaration?",id:"wait-but-what-happens-at-runtime-after-ive-added-an-import-type-declaration",level:3},{value:"Can I use import type to pull in type aliases from another module, too?",id:"can-i-use-import-type-to-pull-in-type-aliases-from-another-module-too",level:3}],m={toc:s};function d(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," syntax to do this."),(0,a.mdx)("h2",{id:"motivation"},"Motivation"),(0,a.mdx)("p",null,"Has this ever happened to you:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"// @flow\n\n// Post-transformation lint error: Unused variable 'URI'\nimport URI from \"URI\";\n\n// But if you delete the require you get a Flow error:\n// identifier URI - Unknown global name\nmodule.exports = function(x: URI): URI {\n return x;\n}\n")),(0,a.mdx)("p",null,"Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," syntax. With ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type"),", you can convey what you really mean here \u2014 that you want to import the ",(0,a.mdx)("em",{parentName:"p"},"type")," of the class and not really the class itself."),(0,a.mdx)("h2",{id:"enter-import-type"},"Enter Import Type"),(0,a.mdx)("p",null,"So instead of the above code, you can now write this:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"// @flow\n\nimport type URI from 'URI';\nmodule.exports = function(x: URI): URI {\n return x;\n};\n")),(0,a.mdx)("p",null,"If you have a module that exports multiple classes (like, say, a Crayon and a Marker class), you can import the type for each of them together or separately like this:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"// @flow\n\nimport type {Crayon, Marker} from 'WritingUtensils';\nmodule.exports = function junkDrawer(x: Crayon, y: Marker): void {}\n")),(0,a.mdx)("h2",{id:"transformations"},"Transformations"),(0,a.mdx)("p",null,"Like type annotations and other Flow features, ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," need to be transformed away before the code can be run. The transforms will be available in react-tools ",(0,a.mdx)("inlineCode",{parentName:"p"},"0.13.0")," when it is published soon, but for now they're available in ",(0,a.mdx)("inlineCode",{parentName:"p"},"0.13.0-beta.2"),", which you can install with"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-bash"},"npm install react-tools@0.13.0-beta.2\n")),(0,a.mdx)("h2",{id:"anticipatory-qa"},"Anticipatory Q&A"),(0,a.mdx)("h3",{id:"wait-but-what-happens-at-runtime-after-ive-added-an-import-type-declaration"},"Wait, but what happens at runtime after I've added an ",(0,a.mdx)("inlineCode",{parentName:"h3"},"import type")," declaration?"),(0,a.mdx)("p",null,(0,a.mdx)("em",{parentName:"p"},"Nothing! All ",(0,a.mdx)("inlineCode",{parentName:"em"},"import type")," declarations get stripped away just like other flow syntax.")),(0,a.mdx)("h3",{id:"can-i-use-import-type-to-pull-in-type-aliases-from-another-module-too"},"Can I use ",(0,a.mdx)("inlineCode",{parentName:"h3"},"import type")," to pull in type aliases from another module, too?"),(0,a.mdx)("del",null,"Not quite yet...but soon! There are a few other moving parts that we need to build first, but we're working on it."),(0,a.mdx)("p",null,"EDIT: Yes! As of Flow 0.10 you can use the ",(0,a.mdx)("inlineCode",{parentName:"p"},"export type MyType = ... ;")," syntax to compliment the ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," syntax. Here's a trivial example:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-javascript"},"// @flow\n\n// MyTypes.js\nexport type UserID = number;\nexport type User = {\n id: UserID,\n firstName: string,\n lastName: string\n};\n")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-javascript"},'// @flow\n\n// User.js\nimport type {UserID, User} from "MyTypes";\n\nfunction getUserID(user: User): UserID {\n return user.id;\n}\n')),(0,a.mdx)("p",null,"Note that we only support the explicit named-export statements for now (i.e. ",(0,a.mdx)("inlineCode",{parentName:"p"},"export type UserID = number;"),"). In a future version we can add support for latent named-export statements (i.e. ",(0,a.mdx)("inlineCode",{parentName:"p"},"type UserID = number; export {UserID};"),") and default type exports (i.e. ",(0,a.mdx)("inlineCode",{parentName:"p"},"export default type MyType = ... ;"),")...but for now these forms aren't yet supported for type exports."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2860.ccd1e606.js b/assets/js/2860.ccd1e606.js new file mode 100644 index 00000000000..4966beb7d61 --- /dev/null +++ b/assets/js/2860.ccd1e606.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2860],{2860:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>m,frontMatter:()=>s,metadata:()=>r,toc:()=>p});var i=t(87462),a=(t(67294),t(3905));t(45475);const s={title:"Type Hierarchy",slug:"/lang/type-hierarchy"},c=void 0,r={unversionedId:"lang/type-hierarchy",id:"lang/type-hierarchy",title:"Type Hierarchy",description:"Types in Flow form a hierarchy based on subtyping:",source:"@site/docs/lang/type-hierarchy.md",sourceDirName:"lang",slug:"/lang/type-hierarchy",permalink:"/en/docs/lang/type-hierarchy",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/type-hierarchy.md",tags:[],version:"current",frontMatter:{title:"Type Hierarchy",slug:"/lang/type-hierarchy"},sidebar:"docsSidebar",previous:{title:"Subsets & Subtypes",permalink:"/en/docs/lang/subtypes"},next:{title:"Type Variance",permalink:"/en/docs/lang/variance"}},o={},p=[],y={toc:p};function m(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},y,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Types in Flow form a hierarchy based on ",(0,a.mdx)("a",{parentName:"p",href:"../subtypes"},"subtyping"),":"),(0,a.mdx)("mermaid",{value:'graph BT\n\nmixed -.- any\n\nsymbol --\x3e mixed\nnull --\x3e mixed\nmaybe["Maybe:\n ?string"]\nmaybe --\x3e mixed\nnull --\x3e maybe\nvoid --\x3e maybe\nvoid --\x3e mixed\nstring --\x3e maybe\nstring --\x3e mixed\n\nunion["Union:\n number | bigint"]\nnumber --\x3e union\nnumber --\x3e mixed\nunion --\x3e mixed\nbigint --\x3e mixed\nbigint --\x3e union\n\nboolean --\x3e mixed\ntrue --\x3e boolean\nfalse --\x3e boolean\n\nempty-interface["interface {}"] --\x3e mixed\nsome-interface["interface {prop: string}"] --\x3e empty-interface\nsomeclass["class A {prop: string}"] --\x3e some-interface\ninexact-empty-obj["Inexact empty object:\n {...}"]\ninexact-empty-obj --\x3e empty-interface\ninexact-some-obj["Inexact object:\n {prop: string, ...}"] --\x3e inexact-empty-obj\ninexact-some-obj --\x3e some-interface\nexact-some-obj["Exact object:\n {prop: string}"] --\x3e inexact-some-obj\nexact-empty-obj["Exact empty object:\n {}"]\nexact-empty-obj --\x3e inexact-empty-obj\nroarray["$ReadOnlyArray<T>"] --\x3e empty-interface\ntuple["Tuple:\n [T, T]"]\ntuple --\x3e roarray\narray["Array<T>"] --\x3e roarray\n\nany-func["Function:\n (...$ReadOnlyArray<empty>) => mixed"]\nany-func --\x3e empty-interface\nsome-func["(number) => boolean"] --\x3e any-func\nsome-func2["(string) => string"] --\x3e any-func\n\ninter["Intersection:\n (number => boolean) & (string => string)"]\ninter --\x3e some-func\ninter --\x3e some-func2\n\nempty --\x3e inter\nempty --\x3e null\nempty --\x3e void\nempty --\x3e true\nempty --\x3e false\nempty --\x3e exact-some-obj\nempty --\x3e exact-empty-obj\nempty --\x3e tuple\nempty --\x3e array\nempty --\x3e string\nempty --\x3e number\nempty --\x3e bigint\nempty --\x3e someclass\nempty --\x3e symbol\nany-bottom["any"] -.- empty\n\nclick mixed "../../types/mixed"\nclick any "../../types/any"\nclick any-bottom "../../types/any"\nclick empty "../../types/empty"\nclick boolean "../../types/primitives/#toc-booleans"\nclick number "../../types/primitives/#toc-numbers"\nclick string "../../types/primitives/#toc-strings"\nclick symbol "../../types/primitives/#toc-symbols"\nclick bigint "../../types/primitives/#toc-bigints"\nclick null "../../types/primitives/#toc-null-and-void"\nclick void "../../types/primitives/#toc-null-and-void"\nclick true "../../types/literals"\nclick false "../../types/literals"\nclick union "../../types/unions"\nclick inter "../../types/intersections"\nclick maybe "../../types/maybe"\nclick array "../../types/arrays"\nclick roarray "../../types/arrays/#toc-readonlyarray"\nclick tuple "../../types/tuples"\nclick someclass "../../types/classes"\nclick empty-interface "../../types/interfaces"\nclick some-interface "../../types/interfaces"\nclick exact-some-obj "../../types/objects"\nclick exact-empty-obj "../../types/objects"\nclick inexact-some-obj "../../types/objects/#exact-and-inexact-object-types"\nclick inexact-empty-obj "../../types/objects/#exact-and-inexact-object-types"\nclick any-func "../../types/functions"\nclick some-func "../../types/functions"\nclick some-func2 "../../types/functions"\n\nclassDef default fill:#eee, stroke:#000, stroke-width:1px'}),(0,a.mdx)("p",null,"Click on a node to go to the documentation for that type."),(0,a.mdx)("p",null,"Types appearing higher in this graph are more general, while those appearing lower are more specific.\nAn arrow pointing from type ",(0,a.mdx)("inlineCode",{parentName:"p"},"A")," to type ",(0,a.mdx)("inlineCode",{parentName:"p"},"B")," means that ",(0,a.mdx)("inlineCode",{parentName:"p"},"A")," is a subtype of ",(0,a.mdx)("inlineCode",{parentName:"p"},"B"),".\nFor example, the type ",(0,a.mdx)("inlineCode",{parentName:"p"},"string")," is a subtype of ",(0,a.mdx)("inlineCode",{parentName:"p"},"?string"),"."),(0,a.mdx)("p",null,"How can ",(0,a.mdx)("inlineCode",{parentName:"p"},"any")," be at both the top and the bottom? Because ",(0,a.mdx)("a",{parentName:"p",href:"../../types/any/"},"it is unsafe"),". This is denoted with a dotted line."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/287.79aaf96f.js b/assets/js/287.79aaf96f.js new file mode 100644 index 00000000000..e2a10b38a95 --- /dev/null +++ b/assets/js/287.79aaf96f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[287],{60287:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var o=n(87462),a=(n(67294),n(3905));const l={title:"Local Type Inference for Flow","short-title":"Local Type Inference",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},r=void 0,i={permalink:"/blog/2023/01/17/Local-Type-Inference",source:"@site/blog/2023-01-17-Local-Type-Inference.md",title:"Local Type Inference for Flow",description:"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.",date:"2023-01-17T00:00:00.000Z",formattedDate:"January 17, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"Sam Zhou"}],frontMatter:{title:"Local Type Inference for Flow","short-title":"Local Type Inference",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},prevItem:{title:"Exact object types by default, by default",permalink:"/blog/2023/02/16/Exact-object-types-by-default-by-default"},nextItem:{title:"Improved handling of the empty object in Flow",permalink:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"}},c={authorsImageUrls:[void 0]},s=[],d={toc:s};function p(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Local Type Inference makes Flow\u2019s inference behavior more reliable and predictable, by modestly increasing Flow\u2019s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2886.f51502cb.js b/assets/js/2886.f51502cb.js new file mode 100644 index 00000000000..5dcda244e1f --- /dev/null +++ b/assets/js/2886.f51502cb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2886],{62886:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var o=n(87462),r=(n(67294),n(3905));const a={title:"Introducing: Local Type Inference for Flow","short-title":"Introducing Local Type Inference",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/introducing-local-type-inference-for-flow-6af65b7830aa"},l=void 0,i={permalink:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow",source:"@site/blog/2021-09-27-Introducing-Local-Type-Inference-for-Flow.md",title:"Introducing: Local Type Inference for Flow",description:"We're replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally.",date:"2021-09-27T00:00:00.000Z",formattedDate:"September 27, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"Michael Vitousek"}],frontMatter:{title:"Introducing: Local Type Inference for Flow","short-title":"Introducing Local Type Inference",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/introducing-local-type-inference-for-flow-6af65b7830aa"},prevItem:{title:"New Flow Language Rule: Constrained Writes",permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"},nextItem:{title:"Introducing Flow Enums",permalink:"/blog/2021/09/13/Introducing-Flow-Enums"}},c={authorsImageUrls:[void 0]},s=[],u={toc:s};function d(e){let{components:t,...n}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"We're replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2892.f3674e45.js b/assets/js/2892.f3674e45.js new file mode 100644 index 00000000000..f73cccd8832 --- /dev/null +++ b/assets/js/2892.f3674e45.js @@ -0,0 +1,412 @@ +"use strict"; +exports.id = 2892; +exports.ids = [2892]; +exports.modules = { + +/***/ 22892: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/pug/pug.ts +var conf = { + comments: { + lineComment: "//" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: "{", close: "}", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] } + ], + folding: { + offSide: true + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".pug", + ignoreCase: true, + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.array", open: "[", close: "]" }, + { token: "delimiter.parenthesis", open: "(", close: ")" } + ], + keywords: [ + "append", + "block", + "case", + "default", + "doctype", + "each", + "else", + "extends", + "for", + "if", + "in", + "include", + "mixin", + "typeof", + "unless", + "var", + "when" + ], + tags: [ + "a", + "abbr", + "acronym", + "address", + "area", + "article", + "aside", + "audio", + "b", + "base", + "basefont", + "bdi", + "bdo", + "blockquote", + "body", + "br", + "button", + "canvas", + "caption", + "center", + "cite", + "code", + "col", + "colgroup", + "command", + "datalist", + "dd", + "del", + "details", + "dfn", + "div", + "dl", + "dt", + "em", + "embed", + "fieldset", + "figcaption", + "figure", + "font", + "footer", + "form", + "frame", + "frameset", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "header", + "hgroup", + "hr", + "html", + "i", + "iframe", + "img", + "input", + "ins", + "keygen", + "kbd", + "label", + "li", + "link", + "map", + "mark", + "menu", + "meta", + "meter", + "nav", + "noframes", + "noscript", + "object", + "ol", + "optgroup", + "option", + "output", + "p", + "param", + "pre", + "progress", + "q", + "rp", + "rt", + "ruby", + "s", + "samp", + "script", + "section", + "select", + "small", + "source", + "span", + "strike", + "strong", + "style", + "sub", + "summary", + "sup", + "table", + "tbody", + "td", + "textarea", + "tfoot", + "th", + "thead", + "time", + "title", + "tr", + "tracks", + "tt", + "u", + "ul", + "video", + "wbr" + ], + symbols: /[\+\-\*\%\&\|\!\=\/\.\,\:]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [ + /^(\s*)([a-zA-Z_-][\w-]*)/, + { + cases: { + "$2@tags": { + cases: { + "@eos": ["", "tag"], + "@default": ["", { token: "tag", next: "@tag.$1" }] + } + }, + "$2@keywords": ["", { token: "keyword.$2" }], + "@default": ["", ""] + } + } + ], + [ + /^(\s*)(#[a-zA-Z_-][\w-]*)/, + { + cases: { + "@eos": ["", "tag.id"], + "@default": ["", { token: "tag.id", next: "@tag.$1" }] + } + } + ], + [ + /^(\s*)(\.[a-zA-Z_-][\w-]*)/, + { + cases: { + "@eos": ["", "tag.class"], + "@default": ["", { token: "tag.class", next: "@tag.$1" }] + } + } + ], + [/^(\s*)(\|.*)$/, ""], + { include: "@whitespace" }, + [ + /[a-zA-Z_$][\w$]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "" + } + } + ], + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, "delimiter"], + [/\d+\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/\d+/, "number"], + [/"/, "string", '@string."'], + [/'/, "string", "@string.'"] + ], + tag: [ + [/(\.)(\s*$)/, [{ token: "delimiter", next: "@blockText.$S2." }, ""]], + [/\s+/, { token: "", next: "@simpleText" }], + [ + /#[a-zA-Z_-][\w-]*/, + { + cases: { + "@eos": { token: "tag.id", next: "@pop" }, + "@default": "tag.id" + } + } + ], + [ + /\.[a-zA-Z_-][\w-]*/, + { + cases: { + "@eos": { token: "tag.class", next: "@pop" }, + "@default": "tag.class" + } + } + ], + [/\(/, { token: "delimiter.parenthesis", next: "@attributeList" }] + ], + simpleText: [ + [/[^#]+$/, { token: "", next: "@popall" }], + [/[^#]+/, { token: "" }], + [ + /(#{)([^}]*)(})/, + { + cases: { + "@eos": [ + "interpolation.delimiter", + "interpolation", + { + token: "interpolation.delimiter", + next: "@popall" + } + ], + "@default": ["interpolation.delimiter", "interpolation", "interpolation.delimiter"] + } + } + ], + [/#$/, { token: "", next: "@popall" }], + [/#/, ""] + ], + attributeList: [ + [/\s+/, ""], + [ + /(\w+)(\s*=\s*)("|')/, + ["attribute.name", "delimiter", { token: "attribute.value", next: "@value.$3" }] + ], + [/\w+/, "attribute.name"], + [ + /,/, + { + cases: { + "@eos": { + token: "attribute.delimiter", + next: "@popall" + }, + "@default": "attribute.delimiter" + } + } + ], + [/\)$/, { token: "delimiter.parenthesis", next: "@popall" }], + [/\)/, { token: "delimiter.parenthesis", next: "@pop" }] + ], + whitespace: [ + [/^(\s*)(\/\/.*)$/, { token: "comment", next: "@blockText.$1.comment" }], + [/[ \t\r\n]+/, ""], + [//, { token: "comment", next: "@pop" }], + [//,{token:"comment",next:"@pop"}],[//,"comment","@pop"],[/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">", notIn: ["string"] } + ], + surroundingPairs: [ + { open: "(", close: ")" }, + { open: "[", close: "]" }, + { open: "`", close: "`" } + ], + folding: { + markers: { + start: new RegExp("^\\s*"), + end: new RegExp("^\\s*") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".md", + control: /[\\`*_\[\]{}()#+\-\.!]/, + noncontrol: /[^\\`*_\[\]{}()#+\-\.!]/, + escapes: /\\(?:@control)/, + jsescapes: /\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/, + empty: [ + "area", + "base", + "basefont", + "br", + "col", + "frame", + "hr", + "img", + "input", + "isindex", + "link", + "meta", + "param" + ], + tokenizer: { + root: [ + [/^\s*\|/, "@rematch", "@table_header"], + [/^(\s{0,3})(#+)((?:[^\\#]|@escapes)+)((?:#+)?)/, ["white", "keyword", "keyword", "keyword"]], + [/^\s*(=+|\-+)\s*$/, "keyword"], + [/^\s*((\*[ ]?)+)\s*$/, "meta.separator"], + [/^\s*>+/, "comment"], + [/^\s*([\*\-+:]|\d+\.)\s/, "keyword"], + [/^(\t|[ ]{4})[^ ].*$/, "string"], + [/^\s*~~~\s*((?:\w|[\/\-#])+)?\s*$/, { token: "string", next: "@codeblock" }], + [ + /^\s*```\s*((?:\w|[\/\-#])+).*$/, + { token: "string", next: "@codeblockgh", nextEmbedded: "$1" } + ], + [/^\s*```\s*$/, { token: "string", next: "@codeblock" }], + { include: "@linecontent" } + ], + table_header: [ + { include: "@table_common" }, + [/[^\|]+/, "keyword.table.header"] + ], + table_body: [{ include: "@table_common" }, { include: "@linecontent" }], + table_common: [ + [/\s*[\-:]+\s*/, { token: "keyword", switchTo: "table_body" }], + [/^\s*\|/, "keyword.table.left"], + [/^\s*[^\|]/, "@rematch", "@pop"], + [/^\s*$/, "@rematch", "@pop"], + [ + /\|/, + { + cases: { + "@eos": "keyword.table.right", + "@default": "keyword.table.middle" + } + } + ] + ], + codeblock: [ + [/^\s*~~~\s*$/, { token: "string", next: "@pop" }], + [/^\s*```\s*$/, { token: "string", next: "@pop" }], + [/.*$/, "variable.source"] + ], + codeblockgh: [ + [/```\s*$/, { token: "string", next: "@pop", nextEmbedded: "@pop" }], + [/[^`]+/, "variable.source"] + ], + linecontent: [ + [/&\w+;/, "string.escape"], + [/@escapes/, "escape"], + [/\b__([^\\_]|@escapes|_(?!_))+__\b/, "strong"], + [/\*\*([^\\*]|@escapes|\*(?!\*))+\*\*/, "strong"], + [/\b_[^_]+_\b/, "emphasis"], + [/\*([^\\*]|@escapes)+\*/, "emphasis"], + [/`([^\\`]|@escapes)+`/, "variable"], + [/\{+[^}]+\}+/, "string.target"], + [/(!?\[)((?:[^\]\\]|@escapes)*)(\]\([^\)]+\))/, ["string.link", "", "string.link"]], + [/(!?\[)((?:[^\]\\]|@escapes)*)(\])/, "string.link"], + { include: "html" } + ], + html: [ + [/<(\w+)\/>/, "tag"], + [ + /<(\w+)(\-|\w)*/, + { + cases: { + "@empty": { token: "tag", next: "@tag.$1" }, + "@default": { token: "tag", next: "@tag.$1" } + } + } + ], + [/<\/(\w+)(\-|\w)*\s*>/, { token: "tag" }], + [//, "comment", "@pop"], + [/|$)/,T.html=m(T.html,"i").replace("comment",T._comment).replace("tag",T._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),T.paragraph=m(T._paragraph).replace("hr",T.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.blockquote=m(T.blockquote).replace("paragraph",T.paragraph).getRegex(),T.normal=L({},T),T.gfm=L({},T.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),T.gfm.table=m(T.gfm.table).replace("hr",T.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.gfm.paragraph=m(T._paragraph).replace("hr",T.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",T.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",T._tag).getRegex(),T.pedantic=L({},T.normal,{html:m("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",T._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:S,paragraph:m(T.normal._paragraph).replace("hr",T.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",T.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var M={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:S,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:S,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(i="x"+i.toString(16)),n+="&#"+i+";";return n}M._punctuation="!\"#$%&'()+\\-.,/:;<=>?@\\[\\]`^{|}~",M.punctuation=m(M.punctuation).replace(/punctuation/g,M._punctuation).getRegex(),M.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,M.escapedEmSt=/\\\*|\\_/g,M._comment=m(T._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),M.emStrong.lDelim=m(M.emStrong.lDelim).replace(/punct/g,M._punctuation).getRegex(),M.emStrong.rDelimAst=m(M.emStrong.rDelimAst,"g").replace(/punct/g,M._punctuation).getRegex(),M.emStrong.rDelimUnd=m(M.emStrong.rDelimUnd,"g").replace(/punct/g,M._punctuation).getRegex(),M._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,M._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,M._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,M.autolink=m(M.autolink).replace("scheme",M._scheme).replace("email",M._email).getRegex(),M._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,M.tag=m(M.tag).replace("comment",M._comment).replace("attribute",M._attribute).getRegex(),M._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,M._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,M._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,M.link=m(M.link).replace("label",M._label).replace("href",M._href).replace("title",M._title).getRegex(),M.reflink=m(M.reflink).replace("label",M._label).replace("ref",T._label).getRegex(),M.nolink=m(M.nolink).replace("ref",T._label).getRegex(),M.reflinkSearch=m(M.reflinkSearch,"g").replace("reflink",M.reflink).replace("nolink",M.nolink).getRegex(),M.normal=L({},M),M.pedantic=L({},M.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:m(/^!?\[(label)\]\((.*?)\)/).replace("label",M._label).getRegex(),reflink:m(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",M._label).getRegex()}),M.gfm=L({},M.normal,{escape:m(M.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\0?t[t.length-1].raw+="\n":t.push(i);else if(i=this.tokenizer.code(e))e=e.substring(i.raw.length),!(n=t[t.length-1])||"paragraph"!==n.type&&"text"!==n.type?t.push(i):(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.fences(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.heading(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.hr(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.blockquote(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.list(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.html(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.def(e))e=e.substring(i.raw.length),!(n=t[t.length-1])||"paragraph"!==n.type&&"text"!==n.type?this.tokens.links[i.tag]||(this.tokens.links[i.tag]={href:i.href,title:i.title}):(n.raw+="\n"+i.raw,n.text+="\n"+i.raw,this.inlineQueue[this.inlineQueue.length-1].src=n.text);else if(i=this.tokenizer.table(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.lheading(e))e=e.substring(i.raw.length),t.push(i);else if(o=e,this.options.extensions&&this.options.extensions.startBlock&&function(){var t=1/0,i=e.slice(1),n=void 0;r.options.extensions.startBlock.forEach((function(e){"number"==typeof(n=e.call({lexer:this},i))&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(o=e.substring(0,t+1))}(),this.state.top&&(i=this.tokenizer.paragraph(o)))n=t[t.length-1],s&&"paragraph"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i),s=o.length!==e.length,e=e.substring(i.raw.length);else if(i=this.tokenizer.text(e))e=e.substring(i.raw.length),(n=t[t.length-1])&&"text"===n.type?(n.raw+="\n"+i.raw,n.text+="\n"+i.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=n.text):t.push(i);else if(e){var a="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(a);break}throw new Error(a)}return this.state.top=!0,t},r.inline=function(e,t){this.inlineQueue.push({src:e,tokens:t})},r.inlineTokens=function(e,t){var i,n,o,s=this;void 0===t&&(t=[]);var r,a,l,c=e;if(this.tokens.links){var d=Object.keys(this.tokens.links);if(d.length>0)for(;null!=(r=this.tokenizer.rules.inline.reflinkSearch.exec(c));)d.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,r.index)+"["+N("a",r[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(r=this.tokenizer.rules.inline.blockSkip.exec(c));)c=c.slice(0,r.index)+"["+N("a",r[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(r=this.tokenizer.rules.inline.escapedEmSt.exec(c));)c=c.slice(0,r.index)+"++"+c.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(a||(l=""),a=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((function(n){return!!(i=n.call({lexer:s},e,t))&&(e=e.substring(i.raw.length),t.push(i),!0)}))))if(i=this.tokenizer.escape(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.tag(e))e=e.substring(i.raw.length),(n=t[t.length-1])&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.link(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.reflink(e,this.tokens.links))e=e.substring(i.raw.length),(n=t[t.length-1])&&"text"===i.type&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(i=this.tokenizer.emStrong(e,c,l))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.codespan(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.br(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.del(e))e=e.substring(i.raw.length),t.push(i);else if(i=this.tokenizer.autolink(e,R))e=e.substring(i.raw.length),t.push(i);else if(this.state.inLink||!(i=this.tokenizer.url(e,R))){if(o=e,this.options.extensions&&this.options.extensions.startInline&&function(){var t=1/0,i=e.slice(1),n=void 0;s.options.extensions.startInline.forEach((function(e){"number"==typeof(n=e.call({lexer:this},i))&&n>=0&&(t=Math.min(t,n))})),t<1/0&&t>=0&&(o=e.substring(0,t+1))}(),i=this.tokenizer.inlineText(o,A))e=e.substring(i.raw.length),"_"!==i.raw.slice(-1)&&(l=i.raw.slice(-1)),a=!0,(n=t[t.length-1])&&"text"===n.type?(n.raw+=i.raw,n.text+=i.text):t.push(i);else if(e){var h="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(h);break}throw new Error(h)}}else e=e.substring(i.raw.length),t.push(i);return t},n=i,s=[{key:"rules",get:function(){return{block:T,inline:M}}}],(o=null)&&t(n.prototype,o),s&&t(n,s),Object.defineProperty(n,"prototype",{writable:!1}),i}(),P=function(){function t(t){this.options=t||e.defaults}var i=t.prototype;return i.code=function(e,t,i){var n=(t||"").match(/\S*/)[0];if(this.options.highlight){var o=this.options.highlight(e,n);null!=o&&o!==e&&(i=!0,e=o)}return e=e.replace(/\n$/,"")+"\n",n?'
'+(i?e:h(e,!0))+"
\n":"
"+(i?e:h(e,!0))+"
\n"},i.blockquote=function(e){return"
\n"+e+"
\n"},i.html=function(e){return e},i.heading=function(e,t,i,n){return this.options.headerIds?"'+e+"\n":""+e+"\n"},i.hr=function(){return this.options.xhtml?"
\n":"
\n"},i.list=function(e,t,i){var n=t?"ol":"ul";return"<"+n+(t&&1!==i?' start="'+i+'"':"")+">\n"+e+"\n"},i.listitem=function(e){return"
  • "+e+"
  • \n"},i.checkbox=function(e){return" "},i.paragraph=function(e){return"

    "+e+"

    \n"},i.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},i.tablerow=function(e){return"\n"+e+"\n"},i.tablecell=function(e,t){var i=t.header?"th":"td";return(t.align?"<"+i+' align="'+t.align+'">':"<"+i+">")+e+"\n"},i.strong=function(e){return""+e+""},i.em=function(e){return""+e+""},i.codespan=function(e){return""+e+""},i.br=function(){return this.options.xhtml?"
    ":"
    "},i.del=function(e){return""+e+""},i.link=function(e,t,i){if(null===(e=v(this.options.sanitize,this.options.baseUrl,e)))return i;var n='
    "},i.image=function(e,t,i){if(null===(e=v(this.options.sanitize,this.options.baseUrl,e)))return i;var n=''+i+'":">"},i.text=function(e){return e},t}(),F=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,i){return""+i},t.image=function(e,t,i){return""+i},t.br=function(){return""},e}(),B=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var i=e,n=0;if(this.seen.hasOwnProperty(i)){n=this.seen[e];do{i=e+"-"+ ++n}while(this.seen.hasOwnProperty(i))}return t||(this.seen[e]=n,this.seen[i]=0),i},t.slug=function(e,t){void 0===t&&(t={});var i=this.serialize(e);return this.getNextSafeSlug(i,t.dryrun)},e}(),V=function(){function t(t){this.options=t||e.defaults,this.options.renderer=this.options.renderer||new P,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new F,this.slugger=new B}t.parse=function(e,i){return new t(i).parse(e)},t.parseInline=function(e,i){return new t(i).parseInline(e)};var i=t.prototype;return i.parse=function(e,t){void 0===t&&(t=!0);var i,n,o,s,r,a,l,c,d,h,u,p,m,f,_,v,b,C,w,y="",S=e.length;for(i=0;i0&&"paragraph"===_.tokens[0].type?(_.tokens[0].text=C+" "+_.tokens[0].text,_.tokens[0].tokens&&_.tokens[0].tokens.length>0&&"text"===_.tokens[0].tokens[0].type&&(_.tokens[0].tokens[0].text=C+" "+_.tokens[0].tokens[0].text)):_.tokens.unshift({type:"text",text:C}):f+=C),f+=this.parse(_.tokens,m),d+=this.renderer.listitem(f,b,v);y+=this.renderer.list(d,u,p);continue;case"html":y+=this.renderer.html(h.text);continue;case"paragraph":y+=this.renderer.paragraph(this.parseInline(h.tokens));continue;case"text":for(d=h.tokens?this.parseInline(h.tokens):h.text;i+1An error occurred:

    "+h(l.message+"",!0)+"
    ";throw l}}W.options=W.setOptions=function(t){var i;return L(W.defaults,t),i=W.defaults,e.defaults=i,W},W.getDefaults=o,W.defaults=e.defaults,W.use=function(){for(var e=arguments.length,t=new Array(e),i=0;iAn error occurred:

    "+h(n.message+"",!0)+"
    ";throw n}},W.Parser=V,W.parser=V.parse,W.Renderer=P,W.TextRenderer=F,W.Lexer=O,W.lexer=O.lex,W.Tokenizer=I,W.Slugger=B,W.parse=W;var H=W.options,z=W.setOptions,j=W.use,K=W.walkTokens,U=W.parseInline,$=W,q=V.parse,G=O.lex;e.Lexer=O,e.Parser=V,e.Renderer=P,e.Slugger=B,e.TextRenderer=F,e.Tokenizer=I,e.getDefaults=o,e.lexer=G,e.marked=W,e.options=H,e.parse=$,e.parseInline=U,e.parser=q,e.setOptions=z,e.use=j,e.walkTokens=K,Object.defineProperty(e,"__esModule",{value:!0})},"object"==typeof exports?i(exports):e.amd?e(0,i):i((t="undefined"!=typeof globalThis?globalThis:t||self).marked={})}();var Sa=ya||exports,La=i(23897);function ka(e,t){return/^\w[\w\d+.-]*:/.test(t)?t:e.path.endsWith("/")?(0,ui.i3)(e,t).toString():(0,ui.i3)((0,ui.XX)(e),t).toString()}function xa(e,t){const{config:i,allowedSchemes:n}=function(e){const t=[Qo.lg.http,Qo.lg.https,Qo.lg.mailto,Qo.lg.data,Qo.lg.file,Qo.lg.vscodeFileResource,Qo.lg.vscodeRemote,Qo.lg.vscodeRemoteResource];e.isTrusted&&t.push(Qo.lg.command);return{config:{ALLOWED_TAGS:["ul","li","p","b","i","code","blockquote","ol","h1","h2","h3","h4","h5","h6","hr","em","pre","table","thead","tbody","tr","th","td","div","del","a","strong","br","img","span"],ALLOWED_ATTR:["href","data-href","target","title","src","alt","class","style","data-code","width","height","align"],ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:t}}(e);_a.v5("uponSanitizeAttribute",((e,t)=>{if("style"!==t.attrName&&"class"!==t.attrName);else{if("SPAN"===e.tagName){if("style"===t.attrName)return void(t.keepAttr=/^(color\:#[0-9a-fA-F]+;)?(background-color\:#[0-9a-fA-F]+;)?$/.test(t.attrValue));if("class"===t.attrName)return void(t.keepAttr=/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(t.attrValue))}t.keepAttr=!1}}));const o=At._F(n);try{return _a.Nw(t,Object.assign(Object.assign({},i),{RETURN_TRUSTED_TYPE:!0}))}finally{_a.ok("uponSanitizeAttribute"),o.dispose()}}var Da,Na=i(50988),Ea=i(82963),Ia=i(52136),Ta=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ma=function(e,t){return function(i,n){t(i,n,e)}},Aa=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let Ra=class e{constructor(e,t,i){this._options=e,this._languageService=t,this._openerService=i,this._onDidRenderAsync=new Yt.Q5,this.onDidRenderAsync=this._onDidRenderAsync.event}dispose(){this._onDidRenderAsync.dispose()}render(e,t,i){if(!e){return{element:document.createElement("span"),dispose:()=>{}}}const n=new Ce.SL,o=n.add(function(e,t={},i={}){var n;const o=new Ce.SL;let s=!1;const r=(0,ba.az)(t),a=function(t){let i;try{i=(0,La.Q)(decodeURIComponent(t))}catch(n){}return i?(i=(0,Yn.rs)(i,(t=>e.uris&&e.uris[t]?ct.o.revive(e.uris[t]):void 0)),encodeURIComponent(JSON.stringify(i))):t},l=function(t,i){const n=e.uris&&e.uris[t];let o=ct.o.revive(n);return i?t.startsWith(Qo.lg.data+":")?t:(o||(o=ct.o.parse(t)),Qo.Gi.asBrowserUri(o).toString(!0)):o?ct.o.parse(t).toString()===o.toString()?t:(o.query&&(o=o.with({query:a(o.query)})),o.toString()):t},c=new Sa.Renderer;c.image=(e,t,i)=>{let n=[],o=[];return e&&(({href:e,dimensions:n}=(0,ne.v1)(e)),o.push(`src="${(0,ne.d9)(e)}"`)),i&&o.push(`alt="${(0,ne.d9)(i)}"`),t&&o.push(`title="${(0,ne.d9)(t)}"`),n.length&&(o=o.concat(n)),""},c.link=(e,t,i)=>"string"!=typeof e?"":(e===i&&(i=(0,ne.oR)(i)),t="string"==typeof t?(0,ne.d9)((0,ne.oR)(t)):"",`
    /g,">").replace(/"/g,""").replace(/'/g,"'")}" title="${t||e}">${i}`),c.paragraph=e=>`

    ${e}

    `;const d=[];if(t.codeBlockRenderer&&(c.code=(e,i)=>{const n=oo.a.nextId(),o=t.codeBlockRenderer(null!=i?i:"",e);return d.push(o.then((e=>[n,e]))),`
    ${(0,ot.YU)(e)}
    `}),t.actionHandler){const i=t.actionHandler.disposables.add(new va.Y(r,"click")),n=t.actionHandler.disposables.add(new va.Y(r,"auxclick"));t.actionHandler.disposables.add(Yt.ju.any(i.event,n.event)((i=>{const n=new Ca.n(i);if(!n.leftButton&&!n.middleButton)return;let o=n.target;if("A"===o.tagName||(o=o.parentElement,o&&"A"===o.tagName))try{let i=o.dataset.href;i&&(e.baseUri&&(i=ka(ct.o.from(e.baseUri),i)),t.actionHandler.callback(i,n))}catch(s){(0,lt.dL)(s)}finally{n.preventDefault()}})))}e.supportHtml||(i.sanitizer=t=>(e.isTrusted?t.match(/^(]+>)|(<\/\s*span>)$/):void 0)?t:"",i.sanitize=!0,i.silent=!0),i.renderer=c;let h=null!==(n=e.value)&&void 0!==n?n:"";h.length>1e5&&(h=`${h.substr(0,1e5)}\u2026`),e.supportThemeIcons&&(h=(0,wa.f$)(h));let u=Sa.parse(h,i);e.supportThemeIcons&&(u=(0,rn.T)(u).map((e=>"string"==typeof e?e:e.outerHTML)).join(""));const g=(new DOMParser).parseFromString(xa(e,u),"text/html");if(g.body.querySelectorAll("img").forEach((t=>{const i=t.getAttribute("src");if(i){let o=i;try{e.baseUri&&(o=ka(ct.o.from(e.baseUri),o))}catch(n){}t.src=l(o,!0)}})),g.body.querySelectorAll("a").forEach((t=>{const i=t.getAttribute("href");if(t.setAttribute("href",""),!i||/^data:|javascript:/i.test(i)||/^command:/i.test(i)&&!e.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(i))t.replaceWith(...t.childNodes);else{let n=l(i,!1);e.baseUri&&(n=ka(ct.o.from(e.baseUri),i)),t.dataset.href=n}})),r.innerHTML=xa(e,g.body.innerHTML),d.length>0&&Promise.all(d).then((e=>{var i,n;if(s)return;const o=new Map(e),a=r.querySelectorAll("div[data-code]");for(const t of a){const e=o.get(null!==(i=t.dataset.code)&&void 0!==i?i:"");e&&At.mc(t,e)}null===(n=t.asyncRenderCallback)||void 0===n||n.call(t)})),t.asyncRenderCallback)for(const p of r.getElementsByTagName("img")){const e=o.add(At.nm(p,"load",(()=>{e.dispose(),t.asyncRenderCallback()})))}return{element:r,dispose:()=>{s=!0,o.dispose()}}}(e,Object.assign(Object.assign({},this._getRenderOptions(e,n)),t),i));return{element:o.element,dispose:()=>n.dispose()}}_getRenderOptions(t,i){return{codeBlockRenderer:(t,i)=>Aa(this,void 0,void 0,(function*(){var n,o,s;let r;t?r=this._languageService.getLanguageIdByLanguageName(t):this._options.editor&&(r=null===(n=this._options.editor.getModel())||void 0===n?void 0:n.getLanguageId()),r||(r=Zo.bd);const a=yield(0,Ea.C2)(this._languageService,i,r),l=document.createElement("span");if(l.innerHTML=null!==(s=null===(o=e._ttpTokenizer)||void 0===o?void 0:o.createHTML(a))&&void 0!==s?s:a,this._options.editor){const e=this._options.editor.getOption(46);(0,Ia.N)(l,e)}else this._options.codeBlockFontFamily&&(l.style.fontFamily=this._options.codeBlockFontFamily);return void 0!==this._options.codeBlockFontSize&&(l.style.fontSize=this._options.codeBlockFontSize),l})),asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:e=>this._openerService.open(e,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:t.isTrusted}).catch(lt.dL),disposables:i}}}};Ra._ttpTokenizer=null===(Da=window.trustedTypes)||void 0===Da?void 0:Da.createPolicy("tokenizeToString",{createHTML:e=>e}),Ra=Ta([Ma(1,zn.O),Ma(2,Na.v4)],Ra);const Oa=At.$;class Pa extends Ce.JT{constructor(e,t,i=Na.SW){super(),this._renderDisposeables=this._register(new Ce.SL),this._editor=e,this._isVisible=!1,this._messages=[],this._hover=this._register(new ur),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new Ra({editor:this._editor},t,i)),this._computer=new Fa(this._editor),this._hoverOperation=this._register(new _r(this._editor,this._computer)),this._register(this._hoverOperation.onResult((e=>{this._withResult(e.value)}))),this._register(this._editor.onDidChangeModelDecorations((()=>this._onModelDecorationsChanged()))),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(46)&&this._updateFont()}))),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return Pa.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach((e=>this._editor.applyFontInfo(e)))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}startShowingAt(e){this._computer.lineNumber!==e&&(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=e,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(e){this._messages=e,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(e,t){this._renderDisposeables.clear();const i=document.createDocumentFragment();for(const n of t){const e=Oa("div.hover-row.markdown-hover"),t=At.R3(e,Oa("div.hover-contents")),o=this._renderDisposeables.add(this._markdownRenderer.render(n.value));t.appendChild(o.element),i.appendChild(e)}this._updateContents(i),this._showAt(e)}_updateContents(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._updateFont()}_showAt(e){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const t=this._editor.getLayoutInfo(),i=this._editor.getTopForLineNumber(e),n=this._editor.getScrollTop(),o=this._editor.getOption(61),s=i-n-(this._hover.containerDomNode.clientHeight-o)/2;this._hover.containerDomNode.style.left=`${t.glyphMarginLeft+t.glyphMarginWidth}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(s),0)}px`}}Pa.ID="editor.contrib.modesGlyphHoverWidget";class Fa{constructor(e){this._editor=e,this._lineNumber=-1}get lineNumber(){return this._lineNumber}set lineNumber(e){this._lineNumber=e}computeSync(){const e=e=>({value:e}),t=this._editor.getLineDecorations(this._lineNumber),i=[];if(!t)return i;for(const n of t){if(!n.options.glyphMarginClassName)continue;const t=n.options.glyphMarginHoverMessage;t&&!(0,ne.CP)(t)&&i.push(...(0,at._2)(t).map(e))}return i}}var Ba=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class Va{constructor(e,t,i){this.provider=e,this.hover=t,this.ordinal=i}}function Wa(e,t,i,n){const o=e.ordered(t).map(((e,o)=>function(e,t,i,n,o){return Ba(this,void 0,void 0,(function*(){try{const s=yield Promise.resolve(e.provideHover(i,n,o));if(s&&function(e){const t=void 0!==e.range,i=void 0!==e.contents&&e.contents&&e.contents.length>0;return t&&i}(s))return new Va(e,s,t)}catch(s){(0,lt.Cp)(s)}}))}(e,o,t,i,n)));return be.Aq.fromPromises(o).coalesce()}(0,se.sb)("_executeHoverProvider",((e,t,i)=>function(e,t,i,n){return Wa(e,t,i,n).map((e=>e.hover)).toPromise()}(e.get(rt.p).hoverProvider,t,i,it.T.None)));var Ha=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},za=function(e,t){return function(i,n){t(i,n,e)}};const ja=At.$;class Ka{constructor(e,t,i,n){this.owner=e,this.range=t,this.contents=i,this.ordinal=n}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let Ua=class{constructor(e,t,i,n,o){this._editor=e,this._languageService=t,this._openerService=i,this._configurationService=n,this._languageFeaturesService=o,this.hoverOrdinal=2}createLoadingMessage(e){return new Ka(this,e.range,[(new ne.W5).appendText(le.NC("modesContentHover.loading","Loading..."))],2e3)}computeSync(e,t){if(!this._editor.hasModel()||1!==e.type)return[];const i=this._editor.getModel(),n=e.range.startLineNumber,o=i.getLineMaxColumn(n),s=[];let r=1e3;const a=i.getLineLength(n),l=i.getLanguageIdAtPosition(e.range.startLineNumber,e.range.startColumn),c=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:l});"number"==typeof c&&a>=c&&s.push(new Ka(this,e.range,[{value:le.NC("too many characters","Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],r++));for(const d of t){const t=d.range.startLineNumber===n?d.range.startColumn:1,i=d.range.endLineNumber===n?d.range.endColumn:o,a=d.options.hoverMessage;if(!a||(0,ne.CP)(a))continue;const l=new ye.e(e.range.startLineNumber,t,e.range.startLineNumber,i);s.push(new Ka(this,l,(0,at._2)(a),r++))}return s}computeAsync(e,t,i){if(!this._editor.hasModel()||1!==e.type)return be.Aq.EMPTY;const n=this._editor.getModel();if(!this._languageFeaturesService.hoverProvider.has(n))return be.Aq.EMPTY;const o=new we.L(e.range.startLineNumber,e.range.startColumn);return Wa(this._languageFeaturesService.hoverProvider,n,o,i).filter((e=>!(0,ne.CP)(e.hover.contents))).map((t=>{const i=t.hover.range?ye.e.lift(t.hover.range):e.range;return new Ka(this,i,t.hover.contents,t.ordinal)}))}renderHoverParts(e,t){return $a(e,t,this._editor,this._languageService,this._openerService)}};function $a(e,t,i,n,o){t.sort(((e,t)=>e.ordinal-t.ordinal));const s=new Ce.SL;for(const r of t)for(const t of r.contents){if((0,ne.CP)(t))continue;const r=ja("div.hover-row.markdown-hover"),a=At.R3(r,ja("div.hover-contents")),l=s.add(new Ra({editor:i},n,o));s.add(l.onDidRenderAsync((()=>{a.className="hover-contents code-hover-contents",e.onContentsChanged()})));const c=s.add(l.render(t));a.appendChild(c.element),e.fragment.appendChild(r)}return s}Ua=Ha([za(1,zn.O),za(2,Na.v4),za(3,Pt.Ui),za(4,rt.p)],Ua);var qa=i(36357),Ga=i(91741),Qa=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Za=function(e,t){return function(i,n){t(i,n,e)}};class Ya{constructor(e,t,i){this.marker=e,this.index=t,this.total=i}}let Ja=class{constructor(e,t,i){this._markerService=t,this._configService=i,this._onDidChange=new Yt.Q5,this.onDidChange=this._onDidChange.event,this._dispoables=new Ce.SL,this._markers=[],this._nextIdx=-1,ct.o.isUri(e)?this._resourceFilter=t=>t.toString()===e.toString():e&&(this._resourceFilter=e);const n=this._configService.getValue("problems.sortOrder"),o=(e,t)=>{let i=(0,ot.qu)(e.resource.toString(),t.resource.toString());return 0===i&&(i="position"===n?ye.e.compareRangesUsingStarts(e,t)||di.ZL.compare(e.severity,t.severity):di.ZL.compare(e.severity,t.severity)||ye.e.compareRangesUsingStarts(e,t)),i},s=()=>{this._markers=this._markerService.read({resource:ct.o.isUri(e)?e:void 0,severities:di.ZL.Error|di.ZL.Warning|di.ZL.Info}),"function"==typeof e&&(this._markers=this._markers.filter((e=>this._resourceFilter(e.resource)))),this._markers.sort(o)};s(),this._dispoables.add(t.onMarkerChanged((e=>{this._resourceFilter&&!e.some((e=>this._resourceFilter(e)))||(s(),this._nextIdx=-1,this._onDidChange.fire())})))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(e){return!this._resourceFilter&&!e||!(!this._resourceFilter||!e)&&this._resourceFilter(e)}get selected(){const e=this._markers[this._nextIdx];return e&&new Ya(e,this._nextIdx+1,this._markers.length)}_initIdx(e,t,i){let n=!1,o=this._markers.findIndex((t=>t.resource.toString()===e.uri.toString()));o<0&&(o=(0,at.ry)(this._markers,{resource:e.uri},((e,t)=>(0,ot.qu)(e.resource.toString(),t.resource.toString()))),o<0&&(o=~o));for(let s=o;st.resource.toString()===e.toString()));if(!(i<0))for(;i{const i=e.getColor(De.JpG);if(i){const e=Zt.lA.error.cssSelector;t.addRule(`\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.text-search-provider-messages .providerMessage ${e},\n\t\t\t.extensions-viewlet > .extensions ${e} {\n\t\t\t\tcolor: ${i};\n\t\t\t}\n\t\t`)}const n=e.getColor(De.BOY);if(n){const e=Zt.lA.warning.cssSelector;t.addRule(`\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e},\n\t\t\t.extension-editor ${e},\n\t\t\t.text-search-provider-messages .providerMessage ${e},\n\t\t\t.preferences-editor ${e} {\n\t\t\t\tcolor: ${n};\n\t\t\t}\n\t\t`)}const o=e.getColor(De.OLZ);if(o){const e=Zt.lA.info.cssSelector;t.addRule(`\n\t\t\t.monaco-editor .zone-widget ${e},\n\t\t\t.markers-panel .marker-icon${e},\n\t\t\t.extensions-viewlet > .extensions ${e},\n\t\t\t.text-search-provider-messages .providerMessage ${e},\n\t\t\t.extension-editor ${e} {\n\t\t\t\tcolor: ${o};\n\t\t\t}\n\t\t`)}}));var ol=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},sl=function(e,t){return function(i,n){t(i,n,e)}};class rl{constructor(e,t,i,n,o){this._openerService=n,this._labelService=o,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new Ce.SL,this._editor=t;const s=document.createElement("div");s.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),s.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),s.appendChild(this._relatedBlock),this._disposables.add(At.mu(this._relatedBlock,"click",(e=>{e.preventDefault();const t=this._relatedDiagnostics.get(e.target);t&&i(t)}))),this._scrollable=new dr.NB(s,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll((e=>{s.style.left=`-${e.scrollLeft}px`,s.style.top=`-${e.scrollTop}px`}))),this._disposables.add(this._scrollable)}dispose(){(0,Ce.B9)(this._disposables)}update(e){const{source:t,message:i,relatedInformation:n,code:o}=e;let s=((null==t?void 0:t.length)||0)+"()".length;o&&(s+="string"==typeof o?o.length:o.value.length);const r=(0,ot.uq)(i);this._lines=r.length,this._longestLineLength=0;for(const h of r)this._longestLineLength=Math.max(h.length+s,this._longestLineLength);At.PO(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);let a=this._messageBlock;for(const h of r)a=document.createElement("div"),a.innerText=h,""===h&&(a.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(a);if(t||o){const e=document.createElement("span");if(e.classList.add("details"),a.appendChild(e),t){const i=document.createElement("span");i.innerText=t,i.classList.add("source"),e.appendChild(i)}if(o)if("string"==typeof o){const t=document.createElement("span");t.innerText=`(${o})`,t.classList.add("code"),e.appendChild(t)}else{this._codeLink=At.$("a.code-link"),this._codeLink.setAttribute("href",`${o.target.toString()}`),this._codeLink.onclick=e=>{this._openerService.open(o.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()};At.R3(this._codeLink,At.$("span")).innerText=o.value,e.appendChild(this._codeLink)}}if(At.PO(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),(0,at.Of)(n)){const e=this._relatedBlock.appendChild(document.createElement("div"));e.style.paddingTop=`${Math.floor(.66*this._editor.getOption(61))}px`,this._lines+=1;for(const t of n){const i=document.createElement("div"),n=document.createElement("a");n.classList.add("filename"),n.innerText=`${this._labelService.getUriBasenameLabel(t.resource)}(${t.startLineNumber}, ${t.startColumn}): `,n.title=this._labelService.getUriLabel(t.resource),this._relatedDiagnostics.set(n,t);const o=document.createElement("span");o.innerText=t.message,i.appendChild(n),i.appendChild(o),this._lines+=1,e.appendChild(i)}}const l=this._editor.getOption(46),c=Math.ceil(l.typicalFullwidthCharacterWidth*this._longestLineLength*.75),d=l.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:c,scrollHeight:d})}layout(e,t){this._scrollable.getDomNode().style.height=`${e}px`,this._scrollable.getDomNode().style.width=`${t}px`,this._scrollable.setScrollDimensions({width:t,height:e})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(e){let t="";switch(e.severity){case di.ZL.Error:t=le.NC("Error","Error");break;case di.ZL.Warning:t=le.NC("Warning","Warning");break;case di.ZL.Info:t=le.NC("Info","Info");break;case di.ZL.Hint:t=le.NC("Hint","Hint")}let i=le.NC("marker aria","{0} at {1}. ",t,e.startLineNumber+":"+e.startColumn);const n=this._editor.getModel();if(n&&e.startLineNumber<=n.getLineCount()&&e.startLineNumber>=1){i=`${n.getLineContent(e.startLineNumber)}, ${i}`}return i}}let al=class e extends Mo{constructor(e,t,i,n,o,s,r){super(e,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},o),this._themeService=t,this._openerService=i,this._menuService=n,this._contextKeyService=s,this._labelService=r,this._callOnDispose=new Ce.SL,this._onDidSelectRelatedInformation=new Yt.Q5,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=di.ZL.Warning,this._backgroundColor=_n.Il.white,this._applyTheme(t.getColorTheme()),this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(e){this._backgroundColor=e.getColor(_l);let t=hl,i=ul;this._severity===di.ZL.Warning?(t=gl,i=pl):this._severity===di.ZL.Info&&(t=ml,i=fl);const n=e.getColor(t),o=e.getColor(i);this.style({arrowColor:n,frameColor:n,headerBackgroundColor:o,primaryHeadingColor:e.getColor(Ro),secondaryHeadingColor:e.getColor(Oo)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(t){super._fillHead(t),this._disposables.add(this._actionbarWidget.actionRunner.onBeforeRun((e=>this.editor.focus())));const i=[],n=this._menuService.createMenu(e.TitleMenu,this._contextKeyService);wo(n,void 0,i),this._actionbarWidget.push(i,{label:!1,icon:!0,index:0}),n.dispose()}_fillTitleIcon(e){this._icon=At.R3(e,At.$(""))}_fillBody(e){this._parentContainer=e,e.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),e.appendChild(this._container),this._message=new rl(this._container,this.editor,(e=>this._onDidSelectRelatedInformation.fire(e)),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(e,t,i){this._container.classList.remove("stale"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());const n=ye.e.lift(e),o=this.editor.getPosition(),s=o&&n.containsPosition(o)?o:n.getStartPosition();super.show(s,this.computeRequiredHeight());const r=this.editor.getModel();if(r){const e=i>1?le.NC("problems","{0} of {1} problems",t,i):le.NC("change","{0} of {1} problem",t,i);this.setTitle((0,ui.EZ)(r.uri),e)}this._icon.className=`codicon ${tl.className(di.ZL.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(s,0),this.editor.focus()}updateMarker(e){this._container.classList.remove("stale"),this._message.update(e)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height=`${e}px`}_onWidth(e){this._message.layout(this._heightInPixel,e)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};al.TitleMenu=new xe.eH("gotoErrorTitleMenu"),al=ol([sl(1,Ne.XE),sl(2,Na.v4),sl(3,xe.co),sl(4,Mt.TG),sl(5,ce.i6),sl(6,ts.e)],al);const ll=(0,De.kwl)(De.lXJ,De.b6y),cl=(0,De.kwl)(De.uoC,De.pW3),dl=(0,De.kwl)(De.c63,De.T83),hl=(0,De.P6G)("editorMarkerNavigationError.background",{dark:ll,light:ll,hcDark:De.lRK,hcLight:De.lRK},le.NC("editorMarkerNavigationError","Editor marker navigation widget error color.")),ul=(0,De.P6G)("editorMarkerNavigationError.headerBackground",{dark:(0,De.ZnX)(hl,.1),light:(0,De.ZnX)(hl,.1),hcDark:null,hcLight:null},le.NC("editorMarkerNavigationErrorHeaderBackground","Editor marker navigation widget error heading background.")),gl=(0,De.P6G)("editorMarkerNavigationWarning.background",{dark:cl,light:cl,hcDark:De.lRK,hcLight:De.lRK},le.NC("editorMarkerNavigationWarning","Editor marker navigation widget warning color.")),pl=(0,De.P6G)("editorMarkerNavigationWarning.headerBackground",{dark:(0,De.ZnX)(gl,.1),light:(0,De.ZnX)(gl,.1),hcDark:"#0C141F",hcLight:(0,De.ZnX)(gl,.2)},le.NC("editorMarkerNavigationWarningBackground","Editor marker navigation widget warning heading background.")),ml=(0,De.P6G)("editorMarkerNavigationInfo.background",{dark:dl,light:dl,hcDark:De.lRK,hcLight:De.lRK},le.NC("editorMarkerNavigationInfo","Editor marker navigation widget info color.")),fl=(0,De.P6G)("editorMarkerNavigationInfo.headerBackground",{dark:(0,De.ZnX)(ml,.1),light:(0,De.ZnX)(ml,.1),hcDark:null,hcLight:null},le.NC("editorMarkerNavigationInfoHeaderBackground","Editor marker navigation widget info heading background.")),_l=(0,De.P6G)("editorMarkerNavigation.background",{dark:De.cvW,light:De.cvW,hcDark:De.cvW,hcLight:De.cvW},le.NC("editorMarkerNavigationBackground","Editor marker navigation widget background."));var vl=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},bl=function(e,t){return function(i,n){t(i,n,e)}},Cl=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let wl=class e{constructor(e,t,i,n,o){this._markerNavigationService=t,this._contextKeyService=i,this._editorService=n,this._instantiationService=o,this._sessionDispoables=new Ce.SL,this._editor=e,this._widgetVisible=kl.bindTo(this._contextKeyService)}static get(t){return t.getContribution(e.ID)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(e){if(this._model&&this._model.matches(e))return this._model;let t=!1;return this._model&&(t=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(e),t&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(al,this._editor),this._widget.onDidClose((()=>this.close()),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition((e=>{var t,i,n;(null===(t=this._model)||void 0===t?void 0:t.selected)&&ye.e.containsPosition(null===(i=this._model)||void 0===i?void 0:i.selected.marker,e.position)||null===(n=this._model)||void 0===n||n.resetIndex()}))),this._sessionDispoables.add(this._model.onDidChange((()=>{if(!this._widget||!this._widget.position||!this._model)return;const e=this._model.find(this._editor.getModel().uri,this._widget.position);e?this._widget.updateMarker(e.marker):this._widget.showStale()}))),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((e=>{this._editorService.openCodeEditor({resource:e.resource,options:{pinned:!0,revealIfOpened:!0,selection:ye.e.lift(e).collapseToStart()}},this._editor),this.close(!1)}))),this._sessionDispoables.add(this._editor.onDidChangeModel((()=>this._cleanUp()))),this._model}close(e=!0){this._cleanUp(),e&&this._editor.focus()}showAtMarker(e){if(this._editor.hasModel()){const t=this._getOrCreateModel(this._editor.getModel().uri);t.resetIndex(),t.move(!0,this._editor.getModel(),new we.L(e.startLineNumber,e.startColumn)),t.selected&&this._widget.showAtMarker(t.selected.marker,t.selected.index,t.selected.total)}}nagivate(t,i){var n,o;return Cl(this,void 0,void 0,(function*(){if(this._editor.hasModel()){const s=this._getOrCreateModel(i?void 0:this._editor.getModel().uri);if(s.move(t,this._editor.getModel(),this._editor.getPosition()),!s.selected)return;if(s.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const r=yield this._editorService.openCodeEditor({resource:s.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:s.selected.marker}},this._editor);r&&(null===(n=e.get(r))||void 0===n||n.close(),null===(o=e.get(r))||void 0===o||o.nagivate(t,i))}else this._widget.showAtMarker(s.selected.marker,s.selected.index,s.selected.total)}}))}};wl.ID="editor.contrib.markerController",wl=vl([bl(1,Xa),bl(2,ce.i6),bl(3,ze.$),bl(4,Mt.TG)],wl);class yl extends se.R6{constructor(e,t,i){super(i),this._next=e,this._multiFile=t}run(e,t){var i;return Cl(this,void 0,void 0,(function*(){t.hasModel()&&(null===(i=wl.get(t))||void 0===i||i.nagivate(this._next,this._multiFile))}))}}class Sl extends yl{constructor(){super(!0,!1,{id:Sl.ID,label:Sl.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:ae.u.focus,primary:578,weight:100},menuOpts:{menuId:al.TitleMenu,title:Sl.LABEL,icon:(0,il.q5)("marker-navigation-next",Zt.lA.arrowDown,le.NC("nextMarkerIcon","Icon for goto next marker.")),group:"navigation",order:1}})}}Sl.ID="editor.action.marker.next",Sl.LABEL=le.NC("markerAction.next.label","Go to Next Problem (Error, Warning, Info)");class Ll extends yl{constructor(){super(!1,!1,{id:Ll.ID,label:Ll.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:ae.u.focus,primary:1602,weight:100},menuOpts:{menuId:al.TitleMenu,title:Ll.LABEL,icon:(0,il.q5)("marker-navigation-previous",Zt.lA.arrowUp,le.NC("previousMarkerIcon","Icon for goto previous marker.")),group:"navigation",order:2}})}}Ll.ID="editor.action.marker.prev",Ll.LABEL=le.NC("markerAction.previous.label","Go to Previous Problem (Error, Warning, Info)");(0,se._K)(wl.ID,wl),(0,se.Qr)(Sl),(0,se.Qr)(Ll),(0,se.Qr)(class extends yl{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:le.NC("markerAction.nextInFiles.label","Go to Next Problem in Files (Error, Warning, Info)"),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:ae.u.focus,primary:66,weight:100},menuOpts:{menuId:xe.eH.MenubarGoMenu,title:le.NC({key:"miGotoNextProblem",comment:["&& denotes a mnemonic"]},"Next &&Problem"),group:"6_problem_nav",order:1}})}}),(0,se.Qr)(class extends yl{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:le.NC("markerAction.previousInFiles.label","Go to Previous Problem in Files (Error, Warning, Info)"),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:ae.u.focus,primary:1090,weight:100},menuOpts:{menuId:xe.eH.MenubarGoMenu,title:le.NC({key:"miGotoPreviousProblem",comment:["&& denotes a mnemonic"]},"Previous &&Problem"),group:"6_problem_nav",order:2}})}});const kl=new ce.uy("markersNavigationVisible",!1),xl=se._l.bindToContribution(wl.get);(0,se.fK)(new xl({id:"closeMarkersNavigation",precondition:kl,handler:e=>e.close(),kbOpts:{weight:150,kbExpr:ae.u.focus,primary:9,secondary:[1033]}}));var Dl=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Nl=function(e,t){return function(i,n){t(i,n,e)}};const El=At.$;class Il{constructor(e,t,i){this.owner=e,this.range=t,this.marker=i}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}const Tl={type:1,filter:{include:pt.QuickFix},triggerAction:tt.QuickFixHover};let Ml=class{constructor(e,t,i,n){this._editor=e,this._markerDecorationsService=t,this._openerService=i,this._languageFeaturesService=n,this.hoverOrdinal=5,this.recentMarkerCodeActionsInfo=void 0}computeSync(e,t){if(!this._editor.hasModel()||1!==e.type)return[];const i=this._editor.getModel(),n=e.range.startLineNumber,o=i.getLineMaxColumn(n),s=[];for(const r of t){const t=r.range.startLineNumber===n?r.range.startColumn:1,a=r.range.endLineNumber===n?r.range.endColumn:o,l=this._markerDecorationsService.getMarker(i.uri,r);if(!l)continue;const c=new ye.e(e.range.startLineNumber,t,e.range.startLineNumber,a);s.push(new Il(this,c,l))}return s}renderHoverParts(e,t){if(!t.length)return Ce.JT.None;const i=new Ce.SL;t.forEach((t=>e.fragment.appendChild(this.renderMarkerHover(t,i))));const n=1===t.length?t[0]:t.sort(((e,t)=>di.ZL.compare(e.marker.severity,t.marker.severity)))[0];return this.renderMarkerStatusbar(e,n,i),i}renderMarkerHover(e,t){const i=El("div.hover-row"),n=At.R3(i,El("div.marker.hover-contents")),{source:o,message:s,code:r,relatedInformation:a}=e.marker;this._editor.applyFontInfo(n);const l=At.R3(n,El("span"));if(l.style.whiteSpace="pre-wrap",l.innerText=s,o||r)if(r&&"string"!=typeof r){const e=El("span");if(o){At.R3(e,El("span")).innerText=o}const i=At.R3(e,El("a.code-link"));i.setAttribute("href",r.target.toString()),t.add(At.nm(i,"click",(e=>{this._openerService.open(r.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()})));At.R3(i,El("span")).innerText=r.value;const s=At.R3(n,e);s.style.opacity="0.6",s.style.paddingLeft="6px"}else{const e=At.R3(n,El("span"));e.style.opacity="0.6",e.style.paddingLeft="6px",e.innerText=o&&r?`${o}(${r})`:o||`(${r})`}if((0,at.Of)(a))for(const{message:c,resource:d,startLineNumber:h,startColumn:u}of a){const e=At.R3(n,El("div"));e.style.marginTop="8px";const i=At.R3(e,El("a"));i.innerText=`${(0,ui.EZ)(d)}(${h}, ${u}): `,i.style.cursor="pointer",t.add(At.nm(i,"click",(e=>{e.stopPropagation(),e.preventDefault(),this._openerService&&this._openerService.open(d,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:h,startColumn:u}}}).catch(lt.dL)})));const o=At.R3(e,El("span"));o.innerText=c,this._editor.applyFontInfo(o)}return i}renderMarkerStatusbar(e,t,i){if(t.marker.severity!==di.ZL.Error&&t.marker.severity!==di.ZL.Warning&&t.marker.severity!==di.ZL.Info||e.statusBar.addAction({label:le.NC("view problem","View Problem"),commandId:Sl.ID,run:()=>{var i;e.hide(),null===(i=wl.get(this._editor))||void 0===i||i.showAtMarker(t.marker),this._editor.focus()}}),!this._editor.getOption(83)){const n=e.statusBar.append(El("div"));this.recentMarkerCodeActionsInfo&&(di.H0.makeKey(this.recentMarkerCodeActionsInfo.marker)===di.H0.makeKey(t.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(n.textContent=le.NC("noQuickFixes","No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const o=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?Ce.JT.None:i.add((0,be.Vg)((()=>n.textContent=le.NC("checkingForQuickFixes","Checking for quick fixes...")),200));n.textContent||(n.textContent=String.fromCharCode(160));const s=this.getCodeActions(t.marker);i.add((0,Ce.OF)((()=>s.cancel()))),s.then((s=>{if(o.dispose(),this.recentMarkerCodeActionsInfo={marker:t.marker,hasCodeActions:s.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions)return s.dispose(),void(n.textContent=le.NC("noQuickFixes","No quick fixes available"));n.style.display="none";let r=!1;i.add((0,Ce.OF)((()=>{r||s.dispose()}))),e.statusBar.addAction({label:le.NC("quick fixes","Quick Fix..."),commandId:Ii.Id,run:t=>{r=!0;const i=xi.get(this._editor),n=At.i(t);e.hide(),null==i||i.showCodeActions(Tl,s,{x:n.left+6,y:n.top+n.height+6,width:n.width,height:n.height})}})}),lt.dL)}}getCodeActions(e){return(0,be.PG)((t=>xt(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new ye.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),Tl,gt.Ex.None,t)))}};Ml=Dl([Nl(1,qa.i),Nl(2,Na.v4),Nl(3,rt.p)],Ml),(0,Ne.Ic)(((e,t)=>{const i=e.getColor(De.url);i&&t.addRule(`.monaco-hover .hover-contents a.code-link span { color: ${i}; }`);const n=e.getColor(De.sgC);n&&t.addRule(`.monaco-hover .hover-contents a.code-link span:hover { color: ${n}; }`)}));var Al=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Rl=function(e,t){return function(i,n){t(i,n,e)}};let Ol=class e{constructor(e,t,i,n,o){this._editor=e,this._instantiationService=t,this._openerService=i,this._languageService=n,this._toUnhook=new Ce.SL,this._isMouseDown=!1,this._hoverClicked=!1,this._contentWidget=null,this._glyphWidget=null,this._hookEvents(),this._didChangeConfigurationHandler=this._editor.onDidChangeConfiguration((e=>{e.hasChanged(55)&&(this._unhookEvents(),this._hookEvents())}))}static get(t){return t.getContribution(e.ID)}_hookEvents(){const e=this._editor.getOption(55);this._isHoverEnabled=e.enabled,this._isHoverSticky=e.sticky,this._isHoverEnabled?(this._toUnhook.add(this._editor.onMouseDown((e=>this._onEditorMouseDown(e)))),this._toUnhook.add(this._editor.onMouseUp((e=>this._onEditorMouseUp(e)))),this._toUnhook.add(this._editor.onMouseMove((e=>this._onEditorMouseMove(e)))),this._toUnhook.add(this._editor.onKeyDown((e=>this._onKeyDown(e))))):(this._toUnhook.add(this._editor.onMouseMove((e=>this._onEditorMouseMove(e)))),this._toUnhook.add(this._editor.onKeyDown((e=>this._onKeyDown(e))))),this._toUnhook.add(this._editor.onMouseLeave((e=>this._onEditorMouseLeave(e)))),this._toUnhook.add(this._editor.onDidChangeModel((()=>this._hideWidgets()))),this._toUnhook.add(this._editor.onDidScrollChange((e=>this._onEditorScrollChanged(e))))}_unhookEvents(){this._toUnhook.clear()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(e){this._isMouseDown=!0;const t=e.target;9!==t.type||t.detail!==pa.ID?12===t.type&&t.detail===Pa.ID||(12!==t.type&&(this._hoverClicked=!1),this._hideWidgets()):this._hoverClicked=!0}_onEditorMouseUp(e){this._isMouseDown=!1}_onEditorMouseLeave(e){var t;const i=e.event.browserEvent.relatedTarget;(null===(t=this._contentWidget)||void 0===t?void 0:t.containsNode(i))||this._hideWidgets()}_onEditorMouseMove(e){var t,i,n,o,s;const r=e.target;if(this._isMouseDown&&this._hoverClicked)return;if(this._isHoverSticky&&9===r.type&&r.detail===pa.ID)return;if(this._isHoverSticky&&!(null===(i=null===(t=e.event.browserEvent.view)||void 0===t?void 0:t.getSelection())||void 0===i?void 0:i.isCollapsed))return;if(!this._isHoverSticky&&9===r.type&&r.detail===pa.ID&&(null===(n=this._contentWidget)||void 0===n?void 0:n.isColorPickerVisible()))return;if(this._isHoverSticky&&12===r.type&&r.detail===Pa.ID)return;if(!this._isHoverEnabled)return void this._hideWidgets();if(!this._getOrCreateContentWidget().maybeShowAt(e))return 2===r.type&&r.position?(null===(s=this._contentWidget)||void 0===s||s.hide(),this._glyphWidget||(this._glyphWidget=new Pa(this._editor,this._languageService,this._openerService)),void this._glyphWidget.startShowingAt(r.position.lineNumber)):void this._hideWidgets();null===(o=this._glyphWidget)||void 0===o||o.hide()}_onKeyDown(e){5!==e.keyCode&&6!==e.keyCode&&57!==e.keyCode&&4!==e.keyCode&&this._hideWidgets()}_hideWidgets(){var e,t,i;this._isMouseDown&&this._hoverClicked&&(null===(e=this._contentWidget)||void 0===e?void 0:e.isColorPickerVisible())||(this._hoverClicked=!1,null===(t=this._glyphWidget)||void 0===t||t.hide(),null===(i=this._contentWidget)||void 0===i||i.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(ua,this._editor)),this._contentWidget}isColorPickerVisible(){var e;return(null===(e=this._contentWidget)||void 0===e?void 0:e.isColorPickerVisible())||!1}showContentHover(e,t,i){this._getOrCreateContentWidget().startShowingAtRange(e,t,i)}dispose(){var e,t;this._unhookEvents(),this._toUnhook.dispose(),this._didChangeConfigurationHandler.dispose(),null===(e=this._glyphWidget)||void 0===e||e.dispose(),null===(t=this._contentWidget)||void 0===t||t.dispose()}};Ol.ID="editor.contrib.hover",Ol=Al([Rl(1,Mt.TG),Rl(2,Na.v4),Rl(3,zn.O),Rl(4,ce.i6)],Ol);class Pl extends se.R6{constructor(){super({id:"editor.action.showHover",label:le.NC({key:"showHover",comment:["Label for action that will trigger the showing of a hover in the editor.","This allows for users to show the hover without using the mouse."]},"Show Hover"),alias:"Show Hover",precondition:void 0,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2087),weight:100}})}run(e,t){if(!t.hasModel())return;const i=Ol.get(t);if(!i)return;const n=t.getPosition(),o=new ye.e(n.lineNumber,n.column,n.lineNumber,n.column),s=2===t.getOption(2);i.showContentHover(o,1,s)}}class Fl extends se.R6{constructor(){super({id:"editor.action.showDefinitionPreviewHover",label:le.NC({key:"showDefinitionPreviewHover",comment:["Label for action that will trigger the showing of definition preview hover in the editor.","This allows for users to show the definition preview hover without using the mouse."]},"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0})}run(e,t){const i=Ol.get(t);if(!i)return;const n=t.getPosition();if(!n)return;const o=new ye.e(n.lineNumber,n.column,n.lineNumber,n.column),s=cr.get(t);if(!s)return;s.startFindDefinitionFromCursor(n).then((()=>{i.showContentHover(o,1,!0)}))}}(0,se._K)(Ol.ID,Ol),(0,se.Qr)(Pl),(0,se.Qr)(Fl),Cr.register(Ua),Cr.register(Ml),(0,Ne.Ic)(((e,t)=>{const i=e.getColor(De.ptc);i&&t.addRule(`.monaco-editor .hoverHighlight { background-color: ${i}; }`);const n=e.getColor(De.yJx);n&&t.addRule(`.monaco-editor .monaco-hover { background-color: ${n}; }`);const o=e.getColor(De.CNo);o&&(t.addRule(`.monaco-editor .monaco-hover { border: 1px solid ${o}; }`),t.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${o.transparent(.5)}; }`),t.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${o.transparent(.5)}; }`),t.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${o.transparent(.5)}; }`));const s=e.getColor(De.url);s&&t.addRule(`.monaco-editor .monaco-hover a { color: ${s}; }`);const r=e.getColor(De.sgC);r&&t.addRule(`.monaco-editor .monaco-hover a:hover { color: ${r}; }`);const a=e.getColor(De.Sbf);a&&t.addRule(`.monaco-editor .monaco-hover { color: ${a}; }`);const l=e.getColor(De.LoV);l&&t.addRule(`.monaco-editor .monaco-hover .hover-row .actions { background-color: ${l}; }`);const c=e.getColor(De.SwI);c&&t.addRule(`.monaco-editor .monaco-hover code { background-color: ${c}; }`)}));class Bl extends Ce.JT{constructor(e){super(),this._editor=e,this._register(e.onMouseDown((e=>this.onMouseDown(e))))}dispose(){super.dispose()}onMouseDown(e){const t=e.target;if(6!==t.type)return;if(!t.detail.injectedText)return;if(t.detail.injectedText.options.attachedData!==Ln)return;if(!t.range)return;const i=this._editor.getContribution(Ol.ID);if(i&&!i.isColorPickerVisible()){const e=new ye.e(t.range.startLineNumber,t.range.startColumn+1,t.range.endLineNumber,t.range.endColumn+1);i.showContentHover(e,1,!1)}}}Bl.ID="editor.contrib.colorContribution",(0,se._K)(Bl.ID,Bl),Cr.register(Hn);var Vl=i(23547),Wl=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function Hl(e){return{asString:()=>Wl(this,void 0,void 0,(function*(){return e})),asFile:()=>{},value:"string"==typeof e?e:void 0}}class zl{constructor(){this._entries=new Map}get size(){return this._entries.size}has(e){return this._entries.has(this.toKey(e))}get(e){var t;return null===(t=this._entries.get(this.toKey(e)))||void 0===t?void 0:t[0]}append(e,t){const i=this._entries.get(e);i?i.push(t):this._entries.set(this.toKey(e),[t])}replace(e,t){this._entries.set(this.toKey(e),[t])}delete(e){this._entries.delete(this.toKey(e))}*entries(){for(const[e,t]of this._entries.entries())for(const i of t)yield[e,i]}values(){return Array.from(this._entries.values()).flat()}forEach(e){for(const[t,i]of this.entries())e(i,t)}toKey(e){return e.toLowerCase()}}var jl=i(81170);const Kl=function(){if("object"==typeof crypto&&"function"==typeof crypto.randomUUID)return crypto.randomUUID.bind(crypto);let e;e="object"==typeof crypto&&"function"==typeof crypto.getRandomValues?crypto.getRandomValues.bind(crypto):function(e){for(let t=0;t0){const o=e.dataTransfer.getData(Ul);if(o)try{i.push(...(0,La.Q)(o))}catch(n){}else try{const t=e.dataTransfer.getData(Vl.g.RESOURCES);i.push(...function(e){const t=[];if(e){const i=JSON.parse(e);for(const e of i)if(e.indexOf(":")>0){const{selection:i,uri:n}=(0,Na.xI)(ct.o.parse(e));t.push({resource:n,options:{selection:i}})}}return t}(t))}catch(n){}if(null===(t=e.dataTransfer)||void 0===t?void 0:t.files)for(let t=0;ti.getAsString(e)));t.append(e,Hl(n))}else if("file"===i.kind){const n=i.getAsFile();n&&t.append(e,Yl(n))}}return t}function Yl(e){const t=e.path?ct.o.parse(e.path):void 0;return function(e,t,i){return{asString:()=>Wl(this,void 0,void 0,(function*(){return""})),asFile:()=>({name:e,uri:t,data:i}),value:void 0}}(e.name,t,(()=>Ql(this,void 0,void 0,(function*(){return new Uint8Array(yield e.arrayBuffer())}))))}const Jl=Object.freeze([Ul,$l,Vl.g.RESOURCES]);const Xl=Object.freeze({create:e=>(0,at.EB)(e.map((e=>e.toString()))).join("\r\n"),parse:e=>e.split("\r\n").filter((e=>!e.startsWith("#")))});var ec=i(43557),tc=i(69386),ic=i(40382),nc=i(15527);function oc(e,t=We.ED){return(0,nc.oP)(e,t)?e.charAt(0).toUpperCase()+e.slice(1):e}Object.create(null);var sc=i(55336),rc=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ac=function(e,t){return function(i,n){t(i,n,e)}};Object.freeze({CURRENT_YEAR:!0,CURRENT_YEAR_SHORT:!0,CURRENT_MONTH:!0,CURRENT_DATE:!0,CURRENT_HOUR:!0,CURRENT_MINUTE:!0,CURRENT_SECOND:!0,CURRENT_DAY_NAME:!0,CURRENT_DAY_NAME_SHORT:!0,CURRENT_MONTH_NAME:!0,CURRENT_MONTH_NAME_SHORT:!0,CURRENT_SECONDS_UNIX:!0,SELECTION:!0,CLIPBOARD:!0,TM_SELECTED_TEXT:!0,TM_CURRENT_LINE:!0,TM_CURRENT_WORD:!0,TM_LINE_INDEX:!0,TM_LINE_NUMBER:!0,TM_FILENAME:!0,TM_FILENAME_BASE:!0,TM_DIRECTORY:!0,TM_FILEPATH:!0,CURSOR_INDEX:!0,CURSOR_NUMBER:!0,RELATIVE_FILEPATH:!0,BLOCK_COMMENT_START:!0,BLOCK_COMMENT_END:!0,LINE_COMMENT:!0,WORKSPACE_NAME:!0,WORKSPACE_FOLDER:!0,RANDOM:!0,RANDOM_HEX:!0,UUID:!0});class lc{constructor(e){this._delegates=e}resolve(e){for(const t of this._delegates){const i=t.resolve(e);if(void 0!==i)return i}}}class cc{constructor(e,t,i,n){this._model=e,this._selection=t,this._selectionIdx=i,this._overtypingCapturer=n}resolve(e){const{name:t}=e;if("SELECTION"===t||"TM_SELECTED_TEXT"===t){let t=this._model.getValueInRange(this._selection)||void 0,i=this._selection.startLineNumber!==this._selection.endLineNumber;if(!t&&this._overtypingCapturer){const e=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);e&&(t=e.value,i=e.multiline)}if(t&&i&&e.snippet){const i=this._model.getLineContent(this._selection.startLineNumber),n=(0,ot.V8)(i,0,this._selection.startColumn-1);let o=n;e.snippet.walk((t=>t!==e&&(t instanceof Sr&&(o=(0,ot.V8)((0,ot.uq)(t.value).pop())),!0)));const s=(0,ot.Mh)(o,n);t=t.replace(/(\r\n|\r|\n)(.*)/g,((e,t,i)=>`${t}${o.substr(s)}${i}`))}return t}if("TM_CURRENT_LINE"===t)return this._model.getLineContent(this._selection.positionLineNumber);if("TM_CURRENT_WORD"===t){const e=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return e&&e.word||void 0}return"TM_LINE_INDEX"===t?String(this._selection.positionLineNumber-1):"TM_LINE_NUMBER"===t?String(this._selection.positionLineNumber):"CURSOR_INDEX"===t?String(this._selectionIdx):"CURSOR_NUMBER"===t?String(this._selectionIdx+1):void 0}}class dc{constructor(e,t){this._labelService=e,this._model=t}resolve(e){const{name:t}=e;if("TM_FILENAME"===t)return sc.EZ(this._model.uri.fsPath);if("TM_FILENAME_BASE"===t){const e=sc.EZ(this._model.uri.fsPath),t=e.lastIndexOf(".");return t<=0?e:e.slice(0,t)}return"TM_DIRECTORY"===t?"."===sc.XX(this._model.uri.fsPath)?"":this._labelService.getUriLabel((0,ui.XX)(this._model.uri)):"TM_FILEPATH"===t?this._labelService.getUriLabel(this._model.uri):"RELATIVE_FILEPATH"===t?this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0}):void 0}}class hc{constructor(e,t,i,n){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=i,this._spread=n}resolve(e){if("CLIPBOARD"!==e.name)return;const t=this._readClipboardText();if(t){if(this._spread){const e=t.split(/\r\n|\n|\r/).filter((e=>!(0,ot.m5)(e)));if(e.length===this._selectionCount)return e[this._selectionIdx]}return t}}}let uc=class{constructor(e,t,i){this._model=e,this._selection=t,this._languageConfigurationService=i}resolve(e){const{name:t}=e,i=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),n=this._languageConfigurationService.getLanguageConfiguration(i).comments;if(n)return"LINE_COMMENT"===t?n.lineCommentToken||void 0:"BLOCK_COMMENT_START"===t?n.blockCommentStartToken||void 0:"BLOCK_COMMENT_END"===t&&n.blockCommentEndToken||void 0}};uc=rc([ac(2,Xn.c_)],uc);class gc{constructor(){this._date=new Date}resolve(e){const{name:t}=e;return"CURRENT_YEAR"===t?String(this._date.getFullYear()):"CURRENT_YEAR_SHORT"===t?String(this._date.getFullYear()).slice(-2):"CURRENT_MONTH"===t?String(this._date.getMonth().valueOf()+1).padStart(2,"0"):"CURRENT_DATE"===t?String(this._date.getDate().valueOf()).padStart(2,"0"):"CURRENT_HOUR"===t?String(this._date.getHours().valueOf()).padStart(2,"0"):"CURRENT_MINUTE"===t?String(this._date.getMinutes().valueOf()).padStart(2,"0"):"CURRENT_SECOND"===t?String(this._date.getSeconds().valueOf()).padStart(2,"0"):"CURRENT_DAY_NAME"===t?gc.dayNames[this._date.getDay()]:"CURRENT_DAY_NAME_SHORT"===t?gc.dayNamesShort[this._date.getDay()]:"CURRENT_MONTH_NAME"===t?gc.monthNames[this._date.getMonth()]:"CURRENT_MONTH_NAME_SHORT"===t?gc.monthNamesShort[this._date.getMonth()]:"CURRENT_SECONDS_UNIX"===t?String(Math.floor(this._date.getTime()/1e3)):void 0}}gc.dayNames=[le.NC("Sunday","Sunday"),le.NC("Monday","Monday"),le.NC("Tuesday","Tuesday"),le.NC("Wednesday","Wednesday"),le.NC("Thursday","Thursday"),le.NC("Friday","Friday"),le.NC("Saturday","Saturday")],gc.dayNamesShort=[le.NC("SundayShort","Sun"),le.NC("MondayShort","Mon"),le.NC("TuesdayShort","Tue"),le.NC("WednesdayShort","Wed"),le.NC("ThursdayShort","Thu"),le.NC("FridayShort","Fri"),le.NC("SaturdayShort","Sat")],gc.monthNames=[le.NC("January","January"),le.NC("February","February"),le.NC("March","March"),le.NC("April","April"),le.NC("May","May"),le.NC("June","June"),le.NC("July","July"),le.NC("August","August"),le.NC("September","September"),le.NC("October","October"),le.NC("November","November"),le.NC("December","December")],gc.monthNamesShort=[le.NC("JanuaryShort","Jan"),le.NC("FebruaryShort","Feb"),le.NC("MarchShort","Mar"),le.NC("AprilShort","Apr"),le.NC("MayShort","May"),le.NC("JuneShort","Jun"),le.NC("JulyShort","Jul"),le.NC("AugustShort","Aug"),le.NC("SeptemberShort","Sep"),le.NC("OctoberShort","Oct"),le.NC("NovemberShort","Nov"),le.NC("DecemberShort","Dec")];class pc{constructor(e){this._workspaceService=e}resolve(e){if(!this._workspaceService)return;const t=(0,ic.uT)(this._workspaceService.getWorkspace());return t?"WORKSPACE_NAME"===e.name?this._resolveWorkspaceName(t):"WORKSPACE_FOLDER"===e.name?this._resoveWorkspacePath(t):void 0:void 0}_resolveWorkspaceName(e){if((0,ic.eb)(e))return sc.EZ(e.uri.path);let t=sc.EZ(e.configPath.path);return t.endsWith(ic.A6)&&(t=t.substr(0,t.length-ic.A6.length-1)),t}_resoveWorkspacePath(e){if((0,ic.eb)(e))return oc(e.uri.fsPath);const t=sc.EZ(e.configPath.path);let i=e.configPath.fsPath;return i.endsWith(t)&&(i=i.substr(0,i.length-t.length-1)),i?oc(i):"/"}}class mc{resolve(e){const{name:t}=e;return"RANDOM"===t?Math.random().toString().slice(-6):"RANDOM_HEX"===t?Math.random().toString(16).slice(-6):"UUID"===t?Kl():void 0}}var fc=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},_c=function(e,t){return function(i,n){t(i,n,e)}};class vc{constructor(e,t,i){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=i,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=(0,at.vM)(t.placeholders,kr.compareByIndex),this._placeholderGroupsIdx=-1}initialize(e){this._offset=e.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(-1===this._offset)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const e=this._editor.getModel();this._editor.changeDecorations((t=>{for(const i of this._snippet.placeholders){const n=this._snippet.offset(i),o=this._snippet.fullLen(i),s=ye.e.fromPositions(e.getPositionAt(this._offset+n),e.getPositionAt(this._offset+n+o)),r=i.isFinalTabstop?vc._decor.inactiveFinal:vc._decor.inactive,a=t.addDecoration(s,r);this._placeholderDecorations.set(i,a)}}))}move(e){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const e=[];for(const t of this._placeholderGroups[this._placeholderGroupsIdx])if(t.transform){const i=this._placeholderDecorations.get(t),n=this._editor.getModel().getDecorationRange(i),o=this._editor.getModel().getValueInRange(n),s=t.transform.resolve(o).split(/\r\n|\r|\n/);for(let e=1;e0&&this._editor.executeEdits("snippet.placeholderTransform",e)}let t=!1;!0===e&&this._placeholderGroupsIdx0&&(this._placeholderGroupsIdx-=1,t=!0);const i=this._editor.getModel().changeDecorations((e=>{const i=new Set,n=[];for(const o of this._placeholderGroups[this._placeholderGroupsIdx]){const s=this._placeholderDecorations.get(o),r=this._editor.getModel().getDecorationRange(s);n.push(new re.Y(r.startLineNumber,r.startColumn,r.endLineNumber,r.endColumn)),t=t&&this._hasPlaceholderBeenCollapsed(o),e.changeDecorationOptions(s,o.isFinalTabstop?vc._decor.activeFinal:vc._decor.active),i.add(o);for(const t of this._snippet.enclosingPlaceholders(o)){const n=this._placeholderDecorations.get(t);e.changeDecorationOptions(n,t.isFinalTabstop?vc._decor.activeFinal:vc._decor.active),i.add(t)}}for(const[t,o]of this._placeholderDecorations)i.has(t)||e.changeDecorationOptions(o,t.isFinalTabstop?vc._decor.inactiveFinal:vc._decor.inactive);return n}));return t?this.move(e):null!=i?i:[]}_hasPlaceholderBeenCollapsed(e){let t=e;for(;t;){if(t instanceof kr){const e=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(e).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||0===this._placeholderGroups.length}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){return 0===this._snippet.placeholders.length||1===this._snippet.placeholders.length&&this._snippet.placeholders[0].isFinalTabstop}computePossibleSelections(){const e=new Map;for(const t of this._placeholderGroups){let i;for(const n of t){if(n.isFinalTabstop)break;i||(i=[],e.set(n.index,i));const t=this._placeholderDecorations.get(n),o=this._editor.getModel().getDecorationRange(t);if(!o){e.delete(n.index);break}i.push(o)}}return e}get activeChoice(){if(!this._placeholderDecorations)return;const e=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!(null==e?void 0:e.choice))return;const t=this._placeholderDecorations.get(e);if(!t)return;const i=this._editor.getModel().getDecorationRange(t);return i?{range:i,choice:e.choice}:void 0}get hasChoice(){let e=!1;return this._snippet.walk((t=>(e=t instanceof xr,!e))),e}merge(e){const t=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations((i=>{for(const n of this._placeholderGroups[this._placeholderGroupsIdx]){const o=e.shift();console.assert(-1!==o._offset),console.assert(!o._placeholderDecorations);const s=o._snippet.placeholderInfo.last.index;for(const e of o._snippet.placeholderInfo.all)e.isFinalTabstop?e.index=n.index+(s+1)/this._nestingLevel:e.index=n.index+e.index/this._nestingLevel;this._snippet.replace(n,o._snippet.children);const r=this._placeholderDecorations.get(n);i.removeDecoration(r),this._placeholderDecorations.delete(n);for(const e of o._snippet.placeholders){const n=o._snippet.offset(e),s=o._snippet.fullLen(e),r=ye.e.fromPositions(t.getPositionAt(o._offset+n),t.getPositionAt(o._offset+n+s)),a=i.addDecoration(r,vc._decor.inactive);this._placeholderDecorations.set(e,a)}}this._placeholderGroups=(0,at.vM)(this._snippet.placeholders,kr.compareByIndex)}))}}vc._decor={active:Le.qx.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:Le.qx.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:Le.qx.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:Le.qx.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})};const bc={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let Cc=class e{constructor(e,t,i=bc,n){this._editor=e,this._template=t,this._options=i,this._languageConfigurationService=n,this._templateMerges=[],this._snippets=[]}static adjustWhitespace(e,t,i,n,o){const s=e.getLineContent(t.lineNumber),r=(0,ot.V8)(s,0,t.column-1);let a;return i.walk((t=>{if(!(t instanceof Sr)||t.parent instanceof xr)return!0;const o=t.value.split(/\r\n|\r|\n/);if(n){const n=i.offset(t);if(0===n)o[0]=e.normalizeIndentation(o[0]);else{a=null!=a?a:i.toString();const t=a.charCodeAt(n-1);10!==t&&13!==t||(o[0]=e.normalizeIndentation(r+o[0]))}for(let t=1;te.get(ic.ec))),p=t.invokeWithinContext((e=>new dc(e.get(ts.e),u))),m=()=>a,f=u.getValueInRange(e.adjustSelection(u,t.getSelection(),n,0)),_=u.getValueInRange(e.adjustSelection(u,t.getSelection(),0,o)),v=u.getLineFirstNonWhitespaceColumn(t.getSelection().positionLineNumber),b=t.getSelections().map(((e,t)=>({selection:e,idx:t}))).sort(((e,t)=>ye.e.compareRangesUsingStarts(e.selection,t.selection)));for(const{selection:C,idx:w}of b){let a=e.adjustSelection(u,C,n,0),y=e.adjustSelection(u,C,0,o);f!==u.getValueInRange(a)&&(a=C),_!==u.getValueInRange(y)&&(y=C);const S=C.setStartPosition(a.startLineNumber,a.startColumn).setEndPosition(y.endLineNumber,y.endColumn),L=(new Mr).parse(i,!0,s),k=S.getStartPosition(),x=e.adjustWhitespace(u,k,L,r||w>0&&v!==u.getLineFirstNonWhitespaceColumn(C.positionLineNumber),!0);L.resolveVariables(new lc([p,new hc(m,w,b.length,"spread"===t.getOption(73)),new cc(u,C,w,l),new uc(u,C,c),new gc,new pc(g),new mc])),d[w]=tc.h.replace(S,L.toString()),d[w].identifier={major:w,minor:0},d[w]._isTracked=!0,h[w]=new vc(t,L,x)}return{edits:d,snippets:h}}static createEditsAndSnippetsFromEdits(e,t,i,n,o,s,r){if(!e.hasModel()||0===t.length)return{edits:[],snippets:[]};const a=[],l=e.getModel(),c=new Mr,d=new Tr,h=new lc([e.invokeWithinContext((e=>new dc(e.get(ts.e),l))),new hc((()=>o),0,e.getSelections().length,"spread"===e.getOption(73)),new cc(l,e.getSelection(),0,s),new uc(l,e.getSelection(),r),new gc,new pc(e.invokeWithinContext((e=>e.get(ic.ec)))),new mc]);t=t.sort(((e,t)=>ye.e.compareRangesUsingStarts(e.range,t.range)));let u=0;for(let g=0;g0){const i=t[g-1].range,n=ye.e.fromPositions(i.getEndPosition(),e.getStartPosition()),o=new Sr(l.getValueInRange(n));d.appendChild(o),u+=o.value.length}c.parseFragment(i,d),d.resolveVariables(h);const n=d.toString(),o=n.slice(u);u=n.length;const s=tc.h.replace(e,o);s.identifier={major:g,minor:0},s._isTracked=!0,a.push(s)}return c.ensureFinalTabstop(d,i,!0),{edits:a,snippets:[new vc(e,d,"")]}}dispose(){(0,Ce.B9)(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return;const{edits:t,snippets:i}="string"==typeof this._template?e.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):e.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=i,this._editor.executeEdits("snippet",t,(e=>{const t=e.filter((e=>!!e.identifier));for(let n=0;nre.Y.fromPositions(e.range.getEndPosition())))})),this._editor.revealRange(this._editor.getSelections()[0])}merge(t,i=bc){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,t]);const{edits:n,snippets:o}=e.createEditsAndSnippetsFromSelections(this._editor,t,i.overwriteBefore,i.overwriteAfter,!0,i.adjustWhitespace,i.clipboardText,i.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",n,(e=>{const t=e.filter((e=>!!e.identifier));for(let n=0;nre.Y.fromPositions(e.range.getEndPosition())))}))}next(){const e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}prev(){const e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}_move(e){const t=[];for(const i of this._snippets){const n=i.move(e);t.push(...n)}return t}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const e=this._editor.getSelections();if(e.length{e.push(...n.get(t))}))}e.sort(ye.e.compareRangesUsingStarts);for(const[i,n]of t)if(n.length===e.length){n.sort(ye.e.compareRangesUsingStarts);for(let o=0;o0}};Cc=fc([_c(3,Xn.c_)],Cc);var wc=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},yc=function(e,t){return function(i,n){t(i,n,e)}};const Sc={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let Lc=class e{constructor(t,i,n,o,s){this._editor=t,this._logService=i,this._languageFeaturesService=n,this._languageConfigurationService=s,this._snippetListener=new Ce.SL,this._modelVersionId=-1,this._inSnippet=e.InSnippetMode.bindTo(o),this._hasNextTabstop=e.HasNextTabstop.bindTo(o),this._hasPrevTabstop=e.HasPrevTabstop.bindTo(o)}static get(t){return t.getContribution(e.ID)}dispose(){var e;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),null===(e=this._session)||void 0===e||e.dispose(),this._snippetListener.dispose()}apply(e,t){try{this._doInsert(e,void 0===t?Sc:Object.assign(Object.assign({},Sc),t))}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_edits=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"")}}insert(e,t){try{this._doInsert(e,void 0===t?Sc:Object.assign(Object.assign({},Sc),t))}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_template=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"")}}_doInsert(e,t){var i;if(this._editor.hasModel()){if(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&"string"!=typeof e&&this.cancel(),this._session?((0,$i.p_)("string"==typeof e),this._session.merge(e,t)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new Cc(this._editor,e,t,this._languageConfigurationService),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),null===(i=this._session)||void 0===i?void 0:i.hasChoice){this._choiceCompletionItemProvider={provideCompletionItems:(e,t)=>{if(!this._session||e!==this._editor.getModel()||!we.L.equals(this._editor.getPosition(),t))return;const{activeChoice:i}=this._session;if(!i||0===i.choice.options.length)return;const n=e.getValueInRange(i.range),o=Boolean(i.choice.options.find((e=>e.value===n))),s=[];for(let r=0;re.isFlush&&this.cancel()))),this._snippetListener.add(this._editor.onDidChangeModel((()=>this.cancel()))),this._snippetListener.add(this._editor.onDidChangeCursorSelection((()=>this._updateState())))}}_updateState(){if(this._session&&this._editor.hasModel()){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){if(!this._session||!this._editor.hasModel())return void(this._currentChoice=void 0);const{activeChoice:e}=this._session;e&&this._choiceCompletionItemProvider?this._currentChoice!==e.choice&&(this._currentChoice=e.choice,queueMicrotask((()=>{!function(e,t){var i;null===(i=e.getContribution("editor.contrib.suggestController"))||void 0===i||i.triggerSuggest((new Set).add(t),void 0,!0)}(this._editor,this._choiceCompletionItemProvider)}))):this._currentChoice=void 0}finish(){for(;this._inSnippet.get();)this.next()}cancel(e=!1){var t;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,null===(t=this._session)||void 0===t||t.dispose(),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){this._session&&this._session.prev(),this._updateState()}next(){this._session&&this._session.next(),this._updateState()}isInSnippet(){return Boolean(this._inSnippet.get())}};Lc.ID="snippetController2",Lc.InSnippetMode=new ce.uy("inSnippetMode",!1,(0,le.NC)("inSnippetMode","Whether the editor in current in snippet mode")),Lc.HasNextTabstop=new ce.uy("hasNextTabstop",!1,(0,le.NC)("hasNextTabstop","Whether there is a next tab stop when in snippet mode")),Lc.HasPrevTabstop=new ce.uy("hasPrevTabstop",!1,(0,le.NC)("hasPrevTabstop","Whether there is a previous tab stop when in snippet mode")),Lc=wc([yc(1,ec.VZ),yc(2,rt.p),yc(3,ce.i6),yc(4,Xn.c_)],Lc),(0,se._K)(Lc.ID,Lc);const kc=se._l.bindToContribution(Lc.get);function xc(e,t,i){const n=Lc.get(e);return!!n&&(e.focus(),n.apply(i.map((e=>({range:re.Y.liftSelection(e),template:t})))),n.isInSnippet())}(0,se.fK)(new kc({id:"jumpToNextSnippetPlaceholder",precondition:ce.Ao.and(Lc.InSnippetMode,Lc.HasNextTabstop),handler:e=>e.next(),kbOpts:{weight:130,kbExpr:ae.u.editorTextFocus,primary:2}})),(0,se.fK)(new kc({id:"jumpToPrevSnippetPlaceholder",precondition:ce.Ao.and(Lc.InSnippetMode,Lc.HasPrevTabstop),handler:e=>e.prev(),kbOpts:{weight:130,kbExpr:ae.u.editorTextFocus,primary:1026}})),(0,se.fK)(new kc({id:"leaveSnippet",precondition:Lc.InSnippetMode,handler:e=>e.cancel(!0),kbOpts:{weight:130,kbExpr:ae.u.editorTextFocus,primary:9,secondary:[1033]}})),(0,se.fK)(new kc({id:"acceptSnippet",precondition:Lc.InSnippetMode,handler:e=>e.finish()}));var Dc=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Nc=function(e,t){return function(i,n){t(i,n,e)}},Ec=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const Ic="application/vnd.code.copyMetadata";let Tc=class extends Ce.JT{constructor(e,t,i,n,o){super(),this._bulkEditService=t,this._clipboardService=i,this._configurationService=n,this._languageFeaturesService=o,this._editor=e;const s=e.getContainerDomNode();this._register((0,At.nm)(s,"copy",(e=>this.handleCopy(e)))),this._register((0,At.nm)(s,"cut",(e=>this.handleCopy(e)))),this._register((0,At.nm)(s,"paste",(e=>this.handlePaste(e)),!0))}arePasteActionsEnabled(e){return this._configurationService.getValue("editor.experimental.pasteActions.enabled",{resource:e.uri})}handleCopy(e){var t;if(!e.clipboardData||!this._editor.hasTextFocus())return;const i=this._editor.getModel(),n=this._editor.getSelections();if(!i||!(null==n?void 0:n.length))return;if(!this.arePasteActionsEnabled(i))return;const o=[...n],s=n[0],r=s.isEmpty();if(r){if(!this._editor.getOption(33))return;o[0]=new ye.e(s.startLineNumber,0,s.startLineNumber,i.getLineLength(s.startLineNumber))}const a=this._languageFeaturesService.documentPasteEditProvider.ordered(i).filter((e=>!!e.prepareDocumentPaste));if(!a.length)return void this.setCopyMetadata(e.clipboardData,{wasFromEmptySelection:r});const l=Zl(e.clipboardData),c=Kl();this.setCopyMetadata(e.clipboardData,{id:c,wasFromEmptySelection:r});const d=(0,be.PG)((e=>Ec(this,void 0,void 0,(function*(){const t=yield Promise.all(a.map((t=>t.prepareDocumentPaste(i,o,l,e))));for(const e of t)null==e||e.forEach(((e,t)=>{l.replace(t,e)}));return l}))));null===(t=this._currentClipboardItem)||void 0===t||t.dataTransferPromise.cancel(),this._currentClipboardItem={handle:c,dataTransferPromise:d}}setCopyMetadata(e,t){e.setData(Ic,JSON.stringify(t))}handlePaste(e){var t,i,n;return Ec(this,void 0,void 0,(function*(){if(!e.clipboardData||!this._editor.hasTextFocus())return;const o=this._editor.getSelections();if(!(null==o?void 0:o.length)||!this._editor.hasModel())return;const s=this._editor.getModel();if(!this.arePasteActionsEnabled(s))return;let r;const a=null===(t=e.clipboardData)||void 0===t?void 0:t.getData(Ic);a&&"string"==typeof a&&(r=JSON.parse(a));const l=this._languageFeaturesService.documentPasteEditProvider.ordered(s);if(!l.length)return;e.preventDefault(),e.stopImmediatePropagation();const c=s.getVersionId(),d=new dt.Dl(this._editor,3);try{const t=Zl(e.clipboardData);if((null==r?void 0:r.id)&&(null===(i=this._currentClipboardItem)||void 0===i?void 0:i.handle)===r.id){(yield this._currentClipboardItem.dataTransferPromise).forEach(((e,i)=>{t.replace(i,e)}))}if(!t.has(jl.v.uriList)){const e=yield this._clipboardService.readResources();e.length&&t.append(jl.v.uriList,Hl(Xl.create(e)))}t.delete(Ic);for(const e of l){if(!e.pasteMimeTypes.some((e=>e.toLowerCase()===Vl.g.FILES.toLowerCase()?[...t.values()].some((e=>e.asFile())):t.has(e))))continue;const i=yield e.provideDocumentPasteEdits(s,o,t,d.token);if(c!==s.getVersionId())return;if(i)return xc(this._editor,"string"==typeof i.insertText?Mr.escape(i.insertText):i.insertText.snippet,o),void(i.additionalEdit&&(yield this._bulkEditService.apply(st.fo.convert(i.additionalEdit),{editor:this._editor})))}const a=null!==(n=t.get(jl.v.text))&&void 0!==n?n:t.get("text");if(!a)return;const h=yield a.asString();if(c!==s.getVersionId())return;this._editor.trigger("keyboard","paste",{text:h,pasteOnNewLine:null==r?void 0:r.wasFromEmptySelection,multicursorText:null})}finally{d.dispose()}}))}};Tc.ID="editor.contrib.copyPasteActionController",Tc=Dc([Nc(1,st.vu),Nc(2,je.p),Nc(3,Pt.Ui),Nc(4,rt.p)],Tc),(0,se._K)(Tc.ID,Tc),zi.B.as(Hi.IP.Configuration).registerConfiguration(Object.assign(Object.assign({},Wi.wk),{properties:{"editor.experimental.pasteActions.enabled":{type:"boolean",scope:5,description:le.NC("pasteActions","Enable/disable running edits from extensions on paste."),default:!1}}}));class Mc{constructor(e,t,i){this.languageConfigurationService=i,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,i){if(i<0)return!1;const n=t.length;if(i+n>e.length)return!1;for(let o=0;o=65&&n<=90&&n+32===s||s>=65&&s<=90&&s+32===n))return!1}return!0}_createOperationsForBlockComment(e,t,i,n,o,s){const r=e.startLineNumber,a=e.startColumn,l=e.endLineNumber,c=e.endColumn,d=o.getLineContent(r),h=o.getLineContent(l);let u,g=d.lastIndexOf(t,a-1+t.length),p=h.indexOf(i,c-1-i.length);if(-1!==g&&-1!==p)if(r===l){d.substring(g+t.length,p).indexOf(i)>=0&&(g=-1,p=-1)}else{const e=d.substring(g+t.length),n=h.substring(0,p);(e.indexOf(i)>=0||n.indexOf(i)>=0)&&(g=-1,p=-1)}-1!==g&&-1!==p?(n&&g+t.length0&&32===h.charCodeAt(p-1)&&(i=" "+i,p-=1),u=Mc._createRemoveBlockCommentOperations(new ye.e(r,g+t.length+1,l,p+1),t,i)):(u=Mc._createAddBlockCommentOperations(e,t,i,this._insertSpace),this._usedEndToken=1===u.length?i:null);for(const m of u)s.addTrackedEditOperation(m.range,m.text)}static _createRemoveBlockCommentOperations(e,t,i){const n=[];return ye.e.isEmpty(e)?n.push(tc.h.delete(new ye.e(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(n.push(tc.h.delete(new ye.e(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),n.push(tc.h.delete(new ye.e(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),n}static _createAddBlockCommentOperations(e,t,i,n){const o=[];return ye.e.isEmpty(e)?o.push(tc.h.replace(new ye.e(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+i)):(o.push(tc.h.insert(new we.L(e.startLineNumber,e.startColumn),t+(n?" ":""))),o.push(tc.h.insert(new we.L(e.endLineNumber,e.endColumn),(n?" ":"")+i))),o}getEditOperations(e,t){const i=this._selection.startLineNumber,n=this._selection.startColumn;e.tokenization.tokenizeIfCheap(i);const o=e.getLanguageIdAtPosition(i,n),s=this.languageConfigurationService.getLanguageConfiguration(o).comments;s&&s.blockCommentStartToken&&s.blockCommentEndToken&&this._createOperationsForBlockComment(this._selection,s.blockCommentStartToken,s.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){const i=t.getInverseEditOperations();if(2===i.length){const e=i[0],t=i[1];return new re.Y(e.range.endLineNumber,e.range.endColumn,t.range.startLineNumber,t.range.startColumn)}{const e=i[0].range,t=this._usedEndToken?-this._usedEndToken.length-1:0;return new re.Y(e.endLineNumber,e.endColumn+t,e.endLineNumber,e.endColumn+t)}}}class Ac{constructor(e,t,i,n,o,s,r){this.languageConfigurationService=e,this._selection=t,this._tabSize=i,this._type=n,this._insertSpace=o,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=s,this._ignoreFirstLine=r||!1}static _gatherPreflightCommentStrings(e,t,i,n){e.tokenization.tokenizeIfCheap(t);const o=e.getLanguageIdAtPosition(t,1),s=n.getLanguageConfiguration(o).comments,r=s?s.lineCommentToken:null;if(!r)return null;const a=[];for(let l=0,c=i-t+1;lr?o-1:o}}}class Rc extends se.R6{constructor(e,t){super(t),this._type=e}run(e,t){const i=e.get(Xn.c_);if(!t.hasModel())return;const n=[],o=t.getModel().getOptions(),s=t.getOption(19),r=t.getSelections().map(((e,t)=>({selection:e,index:t,ignoreFirstLine:!1})));r.sort(((e,t)=>ye.e.compareRangesUsingStarts(e.selection,t.selection)));let a=r[0];for(let l=1;l=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Fc=function(e,t){return function(i,n){t(i,n,e)}};let Bc=class e{constructor(e,t,i,n,o,s,r){this._contextMenuService=t,this._contextViewService=i,this._contextKeyService=n,this._keybindingService=o,this._menuService=s,this._configurationService=r,this._toDispose=new Ce.SL,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu((e=>this._onContextMenu(e)))),this._toDispose.add(this._editor.onMouseWheel((e=>{if(this._contextMenuIsBeingShownCount>0){const t=this._contextViewService.getContextViewElement(),i=e.srcElement;i.shadowRoot&&At.Ay(t)===i.shadowRoot||this._contextViewService.hideContextView()}}))),this._toDispose.add(this._editor.onKeyDown((e=>{this._editor.getOption(20)&&58===e.keyCode&&(e.preventDefault(),e.stopPropagation(),this.showContextMenu())})))}static get(t){return t.getContribution(e.ID)}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(20))return this._editor.focus(),void(e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position));if(12===e.target.type)return;if(6===e.target.type&&e.target.detail.injectedText)return;if(e.event.preventDefault(),e.event.stopPropagation(),11===e.target.type)return this._showScrollbarContextMenu({x:e.event.posx-1,width:2,y:e.event.posy-1,height:2});if(6!==e.target.type&&7!==e.target.type&&1!==e.target.type)return;if(this._editor.focus(),e.target.position){let t=!1;for(const i of this._editor.getSelections())if(i.containsPosition(e.target.position)){t=!0;break}t||this._editor.setPosition(e.target.position)}let t=null;1!==e.target.type&&(t={x:e.event.posx-1,width:2,y:e.event.posy-1,height:2}),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(20))return;if(!this._editor.hasModel())return;const t=this._getMenuActions(this._editor.getModel(),this._editor.isSimpleWidget?xe.eH.SimpleEditorContext:xe.eH.EditorContext);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){const i=[],n=this._menuService.createMenu(t,this._contextKeyService),o=n.getActions({arg:e.uri});n.dispose();for(const s of o){const[,t]=s;let n=0;for(const o of t)if(o instanceof xe.NZ){const t=this._getMenuActions(e,o.item.submenu);t.length>0&&(i.push(new Ot.wY(o.id,o.label,t)),n++)}else i.push(o),n++;n&&i.push(new Ot.Z0)}return i.length&&i.pop(),i}_doShowContextMenu(e,t=null){if(!this._editor.hasModel())return;const i=this._editor.getOption(55);if(this._editor.updateOptions({hover:{enabled:!1}}),!t){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const e=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),i=At.i(this._editor.getDomNode()),n=i.left+e.left,o=i.top+e.top+e.height;t={x:n,y:o}}const n=this._editor.getOption(117)&&!We.gn;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:n?this._editor.getDomNode():void 0,getAnchor:()=>t,getActions:()=>e,getActionViewItem:e=>{const t=this._keybindingFor(e);if(t)return new uo.g(e,e,{label:!0,keybinding:t.getLabel(),isMenu:!0});const i=e;return"function"==typeof i.getActionViewItem?i.getActionViewItem():new uo.g(e,e,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:e=>this._keybindingFor(e),onHide:e=>{this._contextMenuIsBeingShownCount--,this._editor.focus(),this._editor.updateOptions({hover:i})}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel())return;const t=this._editor.getOption(67);let i=0;const n=e=>({id:"menu-action-"+ ++i,label:e.label,tooltip:"",class:void 0,enabled:void 0===e.enabled||e.enabled,checked:e.checked,run:e.run,dispose:()=>null}),o=(e,t,o,s,r)=>{if(!t)return n({label:e,enabled:t,run:()=>{}});const a=e=>()=>{this._configurationService.updateValue(o,e)},l=[];for(const i of r)l.push(n({label:i.label,checked:s===i.value,run:a(i.value)}));return((e,t)=>new Ot.wY("menu-action-"+ ++i,e,t,void 0))(e,l)},s=[];s.push(n({label:le.NC("context.minimap.minimap","Minimap"),checked:t.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!t.enabled)}})),s.push(new Ot.Z0),s.push(n({label:le.NC("context.minimap.renderCharacters","Render Characters"),enabled:t.enabled,checked:t.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!t.renderCharacters)}})),s.push(o(le.NC("context.minimap.size","Vertical size"),t.enabled,"editor.minimap.size",t.size,[{label:le.NC("context.minimap.size.proportional","Proportional"),value:"proportional"},{label:le.NC("context.minimap.size.fill","Fill"),value:"fill"},{label:le.NC("context.minimap.size.fit","Fit"),value:"fit"}])),s.push(o(le.NC("context.minimap.slider","Slider"),t.enabled,"editor.minimap.showSlider",t.showSlider,[{label:le.NC("context.minimap.slider.mouseover","Mouse Over"),value:"mouseover"},{label:le.NC("context.minimap.slider.always","Always"),value:"always"}]));const r=this._editor.getOption(117)&&!We.gn;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:r?this._editor.getDomNode():void 0,getAnchor:()=>e,getActions:()=>s,onHide:e=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};Bc.ID="editor.contrib.contextmenu",Bc=Pc([Fc(1,Ft.i),Fc(2,Ft.u),Fc(3,ce.i6),Fc(4,Bt.d),Fc(5,xe.co),Fc(6,Pt.Ui)],Bc);class Vc extends se.R6{constructor(){super({id:"editor.action.showContextMenu",label:le.NC("action.showContextMenu.label","Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:ae.u.textInputFocus,primary:1092,weight:100}})}run(e,t){var i;null===(i=Bc.get(t))||void 0===i||i.showContextMenu()}}(0,se._K)(Bc.ID,Bc),(0,se.Qr)(Vc);class Wc{constructor(e){this.selections=e}equals(e){const t=this.selections.length;if(t!==e.selections.length)return!1;for(let i=0;i{this._undoStack=[],this._redoStack=[]}))),this._register(e.onDidChangeModelContent((e=>{this._undoStack=[],this._redoStack=[]}))),this._register(e.onDidChangeCursorSelection((t=>{if(this._isCursorUndoRedo)return;if(!t.oldSelections)return;if(t.oldModelVersionId!==t.modelVersionId)return;const i=new Wc(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new Hc(i,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())})))}static get(e){return e.getContribution(zc.ID)}cursorUndo(){this._editor.hasModel()&&0!==this._undoStack.length&&(this._redoStack.push(new Hc(new Wc(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){this._editor.hasModel()&&0!==this._redoStack.length&&(this._undoStack.push(new Hc(new Wc(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}}zc.ID="editor.contrib.cursorUndoRedoController";class jc extends se.R6{constructor(){super({id:"cursorUndo",label:le.NC("cursor.undo","Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:ae.u.textInputFocus,primary:2099,weight:100}})}run(e,t,i){var n;null===(n=zc.get(t))||void 0===n||n.cursorUndo()}}class Kc extends se.R6{constructor(){super({id:"cursorRedo",label:le.NC("cursor.redo","Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}run(e,t,i){var n;null===(n=zc.get(t))||void 0===n||n.cursorRedo()}}(0,se._K)(zc.ID,zc),(0,se.Qr)(jc),(0,se.Qr)(Kc);class Uc{constructor(e,t,i){this.selection=e,this.targetPosition=t,this.copy=i,this.targetSelection=null}getEditOperations(e,t){const i=e.getValueInRange(this.selection);this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new ye.e(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),i),!this.selection.containsPosition(this.targetPosition)||this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition))?this.copy?this.targetSelection=new re.Y(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumber>this.selection.endLineNumber?this.targetSelection=new re.Y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn):this.targetPosition.lineNumberthis._onEditorMouseDown(e)))),this._register(this._editor.onMouseUp((e=>this._onEditorMouseUp(e)))),this._register(this._editor.onMouseDrag((e=>this._onEditorMouseDrag(e)))),this._register(this._editor.onMouseDrop((e=>this._onEditorMouseDrop(e)))),this._register(this._editor.onMouseDropCanceled((()=>this._onEditorMouseDropCanceled()))),this._register(this._editor.onKeyDown((e=>this.onEditorKeyDown(e)))),this._register(this._editor.onKeyUp((e=>this.onEditorKeyUp(e)))),this._register(this._editor.onDidBlurEditorWidget((()=>this.onEditorBlur()))),this._register(this._editor.onDidBlurEditorText((()=>this.onEditorBlur()))),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(e){this._editor.getOption(31)&&!this._editor.getOption(18)&&($c(e)&&(this._modifierPressed=!0),this._mouseDown&&$c(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(e){this._editor.getOption(31)&&!this._editor.getOption(18)&&($c(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===qc.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(e){this._mouseDown=!0}_onEditorMouseUp(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(e){const t=e.target;if(null===this._dragSelection){const e=(this._editor.getSelections()||[]).filter((e=>t.position&&e.containsPosition(t.position)));if(1!==e.length)return;this._dragSelection=e[0]}$c(e.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){const t=new we.L(e.target.position.lineNumber,e.target.position.column);if(null===this._dragSelection){let i=null;if(e.event.shiftKey){const e=this._editor.getSelection();if(e){const{selectionStartLineNumber:n,selectionStartColumn:o}=e;i=[new re.Y(n,o,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map((e=>e.containsPosition(t)?new re.Y(t.lineNumber,t.column,t.lineNumber,t.column):e));this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||($c(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(qc.ID,new Uc(this._dragSelection,t,$c(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(e){this._dndDecorationIds.set([{range:new ye.e(e.lineNumber,e.column,e.lineNumber,e.column),options:qc._DECORATION_OPTIONS}]),this._editor.revealPosition(e,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(e){return 6===e.type||7===e.type}_hitMargin(e){return 2===e.type||3===e.type||4===e.type}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}qc.ID="editor.contrib.dragAndDrop",qc.TRIGGER_KEY_VALUE=We.dz?6:5,qc._DECORATION_OPTIONS=Le.qx.register({description:"dnd-target",className:"dnd-target"}),(0,se._K)(qc.ID,qc);var Gc=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Qc=function(e,t){return function(i,n){t(i,n,e)}},Zc=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let Yc=class extends Ce.JT{constructor(e,t,i,n,o){super(),this._bulkEditService=t,this._languageFeaturesService=i,this._progressService=n,this._register(e.onDropIntoEditor((t=>this.onDropIntoEditor(e,t.position,t.event)))),this._languageFeaturesService.documentOnDropEditProvider.register("*",new Jc(o))}onDropIntoEditor(e,t,i){return Zc(this,void 0,void 0,(function*(){if(!i.dataTransfer||!e.hasModel())return;const n=e.getModel(),o=n.getVersionId(),s=yield this.extractDataTransferData(i);if(0===s.size)return;if(e.getModel().getVersionId()!==o)return;const r=new dt.Dl(e,1);try{const i=this._languageFeaturesService.documentOnDropEditProvider.ordered(n),a=yield this._progressService.withProgress({location:15,delay:750,title:(0,le.NC)("dropProgressTitle","Running drop handlers..."),cancellable:!0},(()=>(0,be.eP)((()=>Zc(this,void 0,void 0,(function*(){for(const e of i){const i=yield e.provideDocumentOnDropEdits(n,t,s,r.token);if(r.token.isCancellationRequested)return;if(i)return i}})))(),r.token)),(()=>{r.cancel()}));if(r.token.isCancellationRequested||e.getModel().getVersionId()!==o)return;if(a){const i=new ye.e(t.lineNumber,t.column,t.lineNumber,t.column);return xc(e,"string"==typeof a.insertText?Mr.escape(a.insertText):a.insertText.snippet,[re.Y.fromRange(i,0)]),void(a.additionalEdit&&(yield this._bulkEditService.apply(st.fo.convert(a.additionalEdit),{editor:e})))}}finally{r.dispose()}}))}extractDataTransferData(e){return Zc(this,void 0,void 0,(function*(){if(!e.dataTransfer)return new zl;const t=Zl(e.dataTransfer);return function(e,t,i=!1){var n;if(t.dataTransfer&&(i||!e.has(jl.v.uriList))){const i=ql(t).filter((e=>e.resource)).map((e=>e.resource.toString()));for(const e of null===(n=t.dataTransfer)||void 0===n?void 0:n.items){const t=e.getAsFile();t&&i.push(t.path?ct.o.file(t.path).toString():t.name)}i.length&&e.replace(jl.v.uriList,Hl(Xl.create(i)))}for(const o of Jl)e.delete(o)}(t,e),t}))}};Yc.ID="editor.contrib.dropIntoEditorController",Yc=Gc([Qc(1,st.vu),Qc(2,rt.p),Qc(3,gt.R9),Qc(4,ic.ec)],Yc);let Jc=class{constructor(e){this._workspaceContextService=e}provideDocumentOnDropEdits(e,t,i,n){var o;return Zc(this,void 0,void 0,(function*(){const e=i.get(jl.v.uriList);if(e){const t=yield e.asString(),i=this.getUriListInsertText(t);if(i)return{insertText:i}}const t=null!==(o=i.get("text"))&&void 0!==o?o:i.get(jl.v.text);if(t){return{insertText:yield t.asString()}}}))}getUriListInsertText(e){const t=[];for(const i of Xl.parse(e))try{t.push(ct.o.parse(i))}catch(Hs){}if(t.length)return t.map((e=>{const t=this._workspaceContextService.getWorkspaceFolder(e);if(t){const i=(0,ui.lX)(t.uri,e);if(i)return i}return e.fsPath})).join(" ")}};Jc=Gc([Qc(0,ic.ec)],Jc),(0,se._K)(Yc.ID,Yc);var Xc=i(77277);class ed{constructor(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const e=this._findScopeDecorationIds.map((e=>this._editor.getModel().getDecorationRange(e))).filter((e=>!!e));if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){const t=this._decorations.indexOf(e);return t>=0?t+1:1}getCurrentMatchesPosition(e){const t=this._editor.getModel().getDecorationsInRange(e);for(const i of t){const e=i.options;if(e===ed._FIND_MATCH_DECORATION||e===ed._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(i.id)}return 0}setCurrentFindMatch(e){let t=null,i=0;if(e)for(let n=0,o=this._decorations.length;n{if(null!==this._highlightedDecorationId&&(e.changeDecorationOptions(this._highlightedDecorationId,ed._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),null!==t&&(this._highlightedDecorationId=t,e.changeDecorationOptions(this._highlightedDecorationId,ed._CURRENT_FIND_MATCH_DECORATION)),null!==this._rangeHighlightDecorationId&&(e.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),null!==t){let i=this._editor.getModel().getDecorationRange(t);if(i.startLineNumber!==i.endLineNumber&&1===i.endColumn){const e=i.endLineNumber-1,t=this._editor.getModel().getLineMaxColumn(e);i=new ye.e(i.startLineNumber,i.startColumn,e,t)}this._rangeHighlightDecorationId=e.addDecoration(i,ed._RANGE_HIGHLIGHT_DECORATION)}})),i}set(e,t){this._editor.changeDecorations((i=>{let n=ed._FIND_MATCH_DECORATION;const o=[];if(e.length>1e3){n=ed._FIND_MATCH_NO_OVERVIEW_DECORATION;const t=this._editor.getModel().getLineCount(),i=this._editor.getLayoutInfo().height/t,s=Math.max(2,Math.ceil(3/i));let r=e[0].range.startLineNumber,a=e[0].range.endLineNumber;for(let n=1,l=e.length;n=t.startLineNumber?t.endLineNumber>a&&(a=t.endLineNumber):(o.push({range:new ye.e(r,1,a,1),options:ed._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),r=t.startLineNumber,a=t.endLineNumber)}o.push({range:new ye.e(r,1,a,1),options:ed._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const s=new Array(e.length);for(let t=0,r=e.length;ti.removeDecoration(e))),this._findScopeDecorationIds=[]),(null==t?void 0:t.length)&&(this._findScopeDecorationIds=t.map((e=>i.addDecoration(e,ed._FIND_SCOPE_DECORATION))))}))}matchBeforePosition(e){if(0===this._decorations.length)return null;for(let t=this._decorations.length-1;t>=0;t--){const i=this._decorations[t],n=this._editor.getModel().getDecorationRange(i);if(n&&!(n.endLineNumber>e.lineNumber)){if(n.endLineNumbere.column))return n}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(0===this._decorations.length)return null;for(let t=0,i=this._decorations.length;te.lineNumber)return n;if(!(n.startColumn0){const e=[];for(let t=0;tye.e.compareRangesUsingStarts(e.range,t.range)));const i=[];let n=e[0];for(let t=1;t0?t[0].toUpperCase()+t.substr(1):e[0][0].toUpperCase()!==e[0][0]&&t.length>0?t[0].toLowerCase()+t.substr(1):t}return t}function nd(e,t,i){return-1!==e[0].indexOf(i)&&-1!==t.indexOf(i)&&e[0].split(i).length===t.split(i).length}function od(e,t,i){const n=t.split(i),o=e[0].split(i);let s="";return n.forEach(((e,t)=>{s+=id([o[t]],e)+i})),s.slice(0,-1)}class sd{constructor(e){this.staticValue=e,this.kind=0}}class rd{constructor(e){this.pieces=e,this.kind=1}}class ad{constructor(e){e&&0!==e.length?1===e.length&&null!==e[0].staticValue?this._state=new sd(e[0].staticValue):this._state=new rd(e):this._state=new sd("")}static fromStaticValue(e){return new ad([ld.staticValue(e)])}get hasReplacementPatterns(){return 1===this._state.kind}buildReplaceString(e,t){if(0===this._state.kind)return t?id(e,this._state.staticValue):this._state.staticValue;let i="";for(let n=0,o=this._state.pieces.length;n0){const e=[],i=t.caseOps.length;let n=0;for(let s=0,r=o.length;s=i){e.push(o.slice(s));break}switch(t.caseOps[n]){case"U":e.push(o[s].toUpperCase());break;case"u":e.push(o[s].toUpperCase()),n++;break;case"L":e.push(o[s].toLowerCase());break;case"l":e.push(o[s].toLowerCase()),n++;break;default:e.push(o[s])}}o=e.join("")}i+=o}return i}static _substitute(e,t){if(null===t)return"";if(0===e)return t[0];let i="";for(;e>0;){if(ethis.research(!1)),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition((e=>{3!==e.reason&&5!==e.reason&&6!==e.reason||this._decorations.setStartPosition(this._editor.getPosition())}))),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent((e=>{this._ignoreModelContentChanged||(e.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())}))),this._toDispose.add(this._state.onFindReplaceStateChange((e=>this._onStateChanged(e)))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,(0,Ce.B9)(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){if(!this._isDisposed&&this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)){this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet((()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)}),240)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)}}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(e,t){let i=null;void 0!==t?null!==t&&(i=Array.isArray(t)?t:[t]):i=this._decorations.getFindScopes(),null!==i&&(i=i.map((e=>{if(e.startLineNumber!==e.endLineNumber){let t=e.endLineNumber;return 1===e.endColumn&&(t-=1),new ye.e(e.startLineNumber,1,t,this._editor.getModel().getLineMaxColumn(t))}return e})));const n=this._findMatches(i,!1,Od);this._decorations.set(n,i);const o=this._editor.getSelection();let s=this._decorations.getCurrentMatchesPosition(o);if(0===s&&n.length>0){const e=(0,at.lG)(n.map((e=>e.range)),(e=>ye.e.compareRangesUsingStarts(e,o)>=0));s=e>0?e-1+1:s}this._state.changeMatchInfo(s,this._decorations.getCount(),void 0),e&&this._editor.getOption(37).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){const t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:n}=e;const o=this._editor.getModel();return t||1===n?(1===i?i=o.getLineCount():i--,n=o.getLineMaxColumn(i)):n--,new we.L(i,n)}_moveToPrevMatch(e,t=!1){if(!this._state.canNavigateBack()){const t=this._decorations.matchAfterPosition(e);return void(t&&this._setCurrentFindMatch(t))}if(this._decorations.getCount()=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:n}=e;const o=this._editor.getModel();return t||n===o.getLineMaxColumn(i)?(i===o.getLineCount()?i=1:i++,n=1):n++,new we.L(i,n)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const t=this._decorations.matchBeforePosition(e);return void(t&&this._setCurrentFindMatch(t))}if(this._decorations.getCount()=o)break;const s=e.charCodeAt(n);if(36===s){i.emitUnchanged(n-1),i.emitStatic("$",n+1);continue}if(48===s||38===s){i.emitUnchanged(n-1),i.emitMatchIndex(0,n+1,t),t.length=0;continue}if(49<=s&&s<=57){let r=s-48;if(n+1=o)break;const s=e.charCodeAt(n);switch(s){case 92:i.emitUnchanged(n-1),i.emitStatic("\\",n+1);break;case 110:i.emitUnchanged(n-1),i.emitStatic("\n",n+1);break;case 116:i.emitUnchanged(n-1),i.emitStatic("\t",n+1);break;case 117:case 85:case 108:case 76:i.emitUnchanged(n-1),i.emitStatic("",n+1),t.push(String.fromCharCode(s))}}}return i.finalize()}(this._state.replaceString):ad.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;const e=this._getReplacePattern(),t=this._editor.getSelection(),i=this._getNextMatch(t.getStartPosition(),!0,!1);if(i)if(t.equalsRange(i.range)){const n=e.buildReplaceString(i.matches,this._state.preserveCase),o=new Pe.T4(t,n);this._executeEditorCommand("replace",o),this._decorations.setStartPosition(new we.L(t.startLineNumber,t.startColumn+n.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(i.range)}_findMatches(e,t,i){const n=(e||[null]).map((e=>Pd._getSearchRange(this._editor.getModel(),e)));return this._editor.getModel().findMatches(this._state.searchString,n,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(119):null,t,i)}replaceAll(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();null===e&&this._state.matchesCount>=Od?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const e=new Xc.bc(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(119):null).parseSearchRequest();if(!e)return;let t=e.regex;if(!t.multiline){let e="mu";t.ignoreCase&&(e+="i"),t.global&&(e+="g"),t=new RegExp(t.source,e)}const i=this._editor.getModel(),n=i.getValue(1),o=i.getFullModelRange(),s=this._getReplacePattern();let r;const a=this._state.preserveCase;r=s.hasReplacementPatterns||a?n.replace(t,(function(){return s.buildReplaceString(arguments,a)})):n.replace(t,s.buildReplaceString(null,a));const l=new Pe.hP(o,r,this._editor.getSelection());this._executeEditorCommand("replaceAll",l)}_regularReplaceAll(e){const t=this._getReplacePattern(),i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),n=[];for(let s=0,r=i.length;se.range)),n);this._executeEditorCommand("replaceAll",o)}selectAllMatches(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();let t=this._findMatches(e,!1,1073741824).map((e=>new re.Y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)));const i=this._editor.getSelection();for(let n=0,o=t.length;nthis._hide()),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=i,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const o=n.getColorTheme().getColor(De.PRb),s=n.getColorTheme().getColor(De.Pvw),r=n.getColorTheme().getColor(De.XEs);this.caseSensitive=this._register(new Fd.rk({appendTitle:this._keybindingLabelFor(Dd),isChecked:this._state.matchCase,inputActiveOptionBorder:o,inputActiveOptionForeground:s,inputActiveOptionBackground:r})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange((()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)}))),this.wholeWords=this._register(new Fd.Qx({appendTitle:this._keybindingLabelFor(Nd),isChecked:this._state.wholeWord,inputActiveOptionBorder:o,inputActiveOptionForeground:s,inputActiveOptionBackground:r})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange((()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)}))),this.regex=this._register(new Fd.eH({appendTitle:this._keybindingLabelFor(Ed),isChecked:this._state.isRegex,inputActiveOptionBorder:o,inputActiveOptionForeground:s,inputActiveOptionBackground:r})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange((()=>{this._state.change({isRegex:this.regex.checked},!1)}))),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange((e=>{let t=!1;e.isRegex&&(this.regex.checked=this._state.isRegex,t=!0),e.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,t=!0),e.matchCase&&(this.caseSensitive.checked=this._state.matchCase,t=!0),!this._state.isRevealed&&t&&this._revealTemporarily()}))),this._register(At.nm(this._domNode,At.tw.MOUSE_LEAVE,(e=>this._onMouseLeave()))),this._register(At.nm(this._domNode,"mouseover",(e=>this._onMouseOver()))),this._applyTheme(n.getColorTheme()),this._register(n.onDidColorThemeChange(this._applyTheme.bind(this)))}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return Bd.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}_applyTheme(e){const t={inputActiveOptionBorder:e.getColor(De.PRb),inputActiveOptionForeground:e.getColor(De.Pvw),inputActiveOptionBackground:e.getColor(De.XEs)};this.caseSensitive.style(t),this.wholeWords.style(t),this.regex.style(t)}}function Vd(e,t){return 1===e||2!==e&&t}Bd.ID="editor.contrib.findOptionsWidget",(0,Ne.Ic)(((e,t)=>{const i=e.getColor(De.D0T);i&&t.addRule(`.monaco-editor .findOptionsWidget { background-color: ${i}; }`);const n=e.getColor(De.Hfx);n&&t.addRule(`.monaco-editor .findOptionsWidget { color: ${n}; }`);const o=e.getColor(De.rh);o&&t.addRule(`.monaco-editor .findOptionsWidget { box-shadow: 0 0 8px 2px ${o}; }`);const s=e.getColor(De.lRK);s&&t.addRule(`.monaco-editor .findOptionsWidget { border: 2px solid ${s}; }`)}));class Wd extends Ce.JT{constructor(){super(),this._onFindReplaceStateChange=this._register(new Yt.Q5),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return Vd(this._isRegexOverride,this._isRegex)}get wholeWord(){return Vd(this._wholeWordOverride,this._wholeWord)}get matchCase(){return Vd(this._matchCaseOverride,this._matchCase)}get preserveCase(){return Vd(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}changeMatchInfo(e,t,i){const n={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let o=!1;0===t&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,n.matchesPosition=!0,o=!0),this._matchesCount!==t&&(this._matchesCount=t,n.matchesCount=!0,o=!0),void 0!==i&&(ye.e.equalsRange(this._currentMatch,i)||(this._currentMatch=i,n.currentMatch=!0,o=!0)),o&&this._onFindReplaceStateChange.fire(n)}change(e,t,i=!0){var n;const o={moveCursor:t,updateHistory:i,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let s=!1;const r=this.isRegex,a=this.wholeWord,l=this.matchCase,c=this.preserveCase;void 0!==e.searchString&&this._searchString!==e.searchString&&(this._searchString=e.searchString,o.searchString=!0,s=!0),void 0!==e.replaceString&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,o.replaceString=!0,s=!0),void 0!==e.isRevealed&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,o.isRevealed=!0,s=!0),void 0!==e.isReplaceRevealed&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,o.isReplaceRevealed=!0,s=!0),void 0!==e.isRegex&&(this._isRegex=e.isRegex),void 0!==e.wholeWord&&(this._wholeWord=e.wholeWord),void 0!==e.matchCase&&(this._matchCase=e.matchCase),void 0!==e.preserveCase&&(this._preserveCase=e.preserveCase),void 0!==e.searchScope&&((null===(n=e.searchScope)||void 0===n?void 0:n.every((e=>{var t;return null===(t=this._searchScope)||void 0===t?void 0:t.some((t=>!ye.e.equalsRange(t,e)))})))||(this._searchScope=e.searchScope,o.searchScope=!0,s=!0)),void 0!==e.loop&&this._loop!==e.loop&&(this._loop=e.loop,o.loop=!0,s=!0),void 0!==e.isSearching&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,o.isSearching=!0,s=!0),void 0!==e.filters&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,o.filters=!0,s=!0),this._isRegexOverride=void 0!==e.isRegexOverride?e.isRegexOverride:0,this._wholeWordOverride=void 0!==e.wholeWordOverride?e.wholeWordOverride:0,this._matchCaseOverride=void 0!==e.matchCaseOverride?e.matchCaseOverride:0,this._preserveCaseOverride=void 0!==e.preserveCaseOverride?e.preserveCaseOverride:0,r!==this.isRegex&&(s=!0,o.isRegex=!0),a!==this.wholeWord&&(s=!0,o.wholeWord=!0),l!==this.matchCase&&(s=!0,o.matchCase=!0),c!==this.preserveCase&&(s=!0,o.preserveCase=!0),s&&this._onFindReplaceStateChange.fire(o)}canNavigateBack(){return this.canNavigateInLoop()||1!==this.matchesPosition}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition=Od}}function Hd(e){var t,i;return"Up"===(null===(t=e.lookupKeybinding("history.showPrevious"))||void 0===t?void 0:t.getElectronAccelerator())&&"Down"===(null===(i=e.lookupKeybinding("history.showNext"))||void 0===i?void 0:i.getElectronAccelerator())}var zd=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const jd=(0,il.q5)("find-selection",Zt.lA.selection,le.NC("findSelectionIcon","Icon for 'Find in Selection' in the editor find widget.")),Kd=(0,il.q5)("find-collapsed",Zt.lA.chevronRight,le.NC("findCollapsedIcon","Icon to indicate that the editor find widget is collapsed.")),Ud=(0,il.q5)("find-expanded",Zt.lA.chevronDown,le.NC("findExpandedIcon","Icon to indicate that the editor find widget is expanded.")),$d=(0,il.q5)("find-replace",Zt.lA.replace,le.NC("findReplaceIcon","Icon for 'Replace' in the editor find widget.")),qd=(0,il.q5)("find-replace-all",Zt.lA.replaceAll,le.NC("findReplaceAllIcon","Icon for 'Replace All' in the editor find widget.")),Gd=(0,il.q5)("find-previous-match",Zt.lA.arrowUp,le.NC("findPreviousMatchIcon","Icon for 'Find Previous' in the editor find widget.")),Qd=(0,il.q5)("find-next-match",Zt.lA.arrowDown,le.NC("findNextMatchIcon","Icon for 'Find Next' in the editor find widget.")),Zd=le.NC("label.find","Find"),Yd=le.NC("placeholder.find","Find"),Jd=le.NC("label.previousMatchButton","Previous Match"),Xd=le.NC("label.nextMatchButton","Next Match"),eh=le.NC("label.toggleSelectionFind","Find in Selection"),th=le.NC("label.closeButton","Close"),ih=le.NC("label.replace","Replace"),nh=le.NC("placeholder.replace","Replace"),oh=le.NC("label.replaceButton","Replace"),sh=le.NC("label.replaceAllButton","Replace All"),rh=le.NC("label.toggleReplaceButton","Toggle Replace"),ah=le.NC("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",Od),lh=le.NC("label.matchesLocation","{0} of {1}"),ch=le.NC("label.noResults","No results"),dh=419;let hh=69;const uh="ctrlEnterReplaceAll.windows.donotask",gh=We.dz?256:2048;class ph{constructor(e){this.afterLineNumber=e,this.heightInPx=33,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function mh(e,t,i){const n=!!t.match(/\n/);i&&n&&i.selectionStart>0&&e.stopPropagation()}function fh(e,t,i){const n=!!t.match(/\n/);i&&n&&i.selectionEndthis._updateHistoryDelayer.cancel()))),this._register(this._state.onFindReplaceStateChange((e=>this._onStateChanged(e)))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration((e=>{if(e.hasChanged(83)&&(this._codeEditor.getOption(83)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),e.hasChanged(133)&&this._tryUpdateWidgetWidth(),e.hasChanged(2)&&this.updateAccessibilitySupport(),e.hasChanged(37)){const e=this._codeEditor.getOption(37).addExtraSpaceOnTop;e&&!this._viewZone&&(this._viewZone=new ph(0),this._showViewZone()),!e&&this._viewZone&&this._removeViewZone()}}))),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection((()=>{this._isVisible&&this._updateToggleSelectionFindButton()}))),this._register(this._codeEditor.onDidFocusEditorWidget((()=>zd(this,void 0,void 0,(function*(){if(this._isVisible){const e=yield this._controller.getGlobalBufferTerm();e&&e!==this._state.searchString&&(this._state.change({searchString:e},!1),this._findInput.select())}}))))),this._findInputFocused=hd.bindTo(s),this._findFocusTracker=this._register(At.go(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus((()=>{this._findInputFocused.set(!0),this._updateSearchScope()}))),this._register(this._findFocusTracker.onDidBlur((()=>{this._findInputFocused.set(!1)}))),this._replaceInputFocused=ud.bindTo(s),this._replaceFocusTracker=this._register(At.go(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus((()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()}))),this._register(this._replaceFocusTracker.onDidBlur((()=>{this._replaceInputFocused.set(!1)}))),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(37).addExtraSpaceOnTop&&(this._viewZone=new ph(0)),this._applyTheme(r.getColorTheme()),this._register(r.onDidColorThemeChange(this._applyTheme.bind(this))),this._register(this._codeEditor.onDidChangeModel((()=>{this._isVisible&&(this._viewZoneId=void 0)}))),this._register(this._codeEditor.onDidScrollChange((e=>{e.scrollTopChanged?this._layoutViewZone():setTimeout((()=>{this._layoutViewZone()}),0)})))}getId(){return _h.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?this._codeEditor.getOption(83)||this._isReplaceVisible||(this._isReplaceVisible=!0,this._replaceInput.width=At.w(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){const e=this._state.searchString.length>0&&0===this._state.matchesCount;this._domNode.classList.toggle("no-results",e),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,lt.dL)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){let e;if(this._matchesCount.style.minWidth=hh+"px",this._state.matchesCount>=Od?this._matchesCount.title=ah:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild),this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=Od&&(t+="+");let i=String(this._state.matchesPosition);"0"===i&&(i="?"),e=ot.WU(lh,i,t)}else e=ch;this._matchesCount.appendChild(document.createTextNode(e)),(0,ie.Z9)(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),hh=Math.max(hh,this._matchesCount.clientWidth)}_getAriaLabel(e,t,i){if(e===ch)return""===i?le.NC("ariaSearchNoResultEmpty","{0} found",e):le.NC("ariaSearchNoResult","{0} found for '{1}'",e,i);if(t){const n=le.NC("ariaSearchNoResultWithLineNum","{0} found for '{1}', at {2}",e,i,t.startLineNumber+":"+t.startColumn),o=this._codeEditor.getModel();if(o&&t.startLineNumber<=o.getLineCount()&&t.startLineNumber>=1){return`${o.getLineContent(t.startLineNumber)}, ${n}`}return n}return le.NC("ariaSearchNoResultWithLineNumNoCurrentMatch","{0} found for '{1}'",e,i)}_updateToggleSelectionFindButton(){const e=this._codeEditor.getSelection(),t=!!e&&(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn),i=this._toggleSelectionFind.checked;this._isVisible&&(i||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const i=!this._codeEditor.getOption(83);this._toggleReplaceBtn.setEnabled(this._isVisible&&i)}_reveal(){if(this._revealTimeouts.forEach((e=>{clearTimeout(e)})),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const e=this._codeEditor.getSelection();switch(this._codeEditor.getOption(37).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const t=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=t;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout((()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")}),0)),this._revealTimeouts.push(setTimeout((()=>{this._findInput.validate()}),200)),this._codeEditor.layoutOverlayWidget(this);let t=!0;if(this._codeEditor.getOption(37).seedSearchStringFromSelection&&e){const i=this._codeEditor.getDomNode();if(i){const n=At.i(i),o=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),s=n.left+(o?o.left:0),r=o?o.top:0;if(this._viewZone&&re.startLineNumber&&(t=!1);const i=At.xQ(this._domNode).left;s>i&&(t=!1);const o=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());n.left+(o?o.left:0)>i&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._revealTimeouts.forEach((e=>{clearTimeout(e)})),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(e){if(!this._codeEditor.getOption(37).addExtraSpaceOnTop)return void this._removeViewZone();if(!this._isVisible)return;const t=this._viewZone;void 0===this._viewZoneId&&t&&this._codeEditor.changeViewZones((i=>{t.heightInPx=this._getHeight(),this._viewZoneId=i.addZone(t),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+t.heightInPx)}))}_showViewZone(e=!0){if(!this._isVisible)return;if(!this._codeEditor.getOption(37).addExtraSpaceOnTop)return;void 0===this._viewZone&&(this._viewZone=new ph(0));const t=this._viewZone;this._codeEditor.changeViewZones((i=>{if(void 0!==this._viewZoneId){const n=this._getHeight();if(n===t.heightInPx)return;const o=n-t.heightInPx;return t.heightInPx=n,i.layoutZone(this._viewZoneId),void(e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+o))}{let n=this._getHeight();if(n-=this._codeEditor.getOption(77).top,n<=0)return;t.heightInPx=n,this._viewZoneId=i.addZone(t),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+n)}}))}_removeViewZone(){this._codeEditor.changeViewZones((e=>{void 0!==this._viewZoneId&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))}))}_applyTheme(e){const t={inputActiveOptionBorder:e.getColor(De.PRb),inputActiveOptionBackground:e.getColor(De.XEs),inputActiveOptionForeground:e.getColor(De.Pvw),inputBackground:e.getColor(De.sEe),inputForeground:e.getColor(De.zJb),inputBorder:e.getColor(De.dt_),inputValidationInfoBackground:e.getColor(De._lC),inputValidationInfoForeground:e.getColor(De.YI3),inputValidationInfoBorder:e.getColor(De.EPQ),inputValidationWarningBackground:e.getColor(De.RV_),inputValidationWarningForeground:e.getColor(De.SUG),inputValidationWarningBorder:e.getColor(De.C3g),inputValidationErrorBackground:e.getColor(De.paE),inputValidationErrorForeground:e.getColor(De._t9),inputValidationErrorBorder:e.getColor(De.OZR)};this._findInput.style(t),this._replaceInput.style(t),this._toggleSelectionFind.style(t)}_tryUpdateWidgetWidth(){if(!this._isVisible)return;if(!At.Uw(this._domNode))return;const e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0)return void this._domNode.classList.add("hiddenEditor");this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const t=e.width,i=e.minimap.minimapWidth;let n=!1,o=!1,s=!1;if(this._resized){if(At.w(this._domNode)>dh)return this._domNode.style.maxWidth=t-28-i-15+"px",void(this._replaceInput.width=At.w(this._findInput.domNode))}if(447+i>=t&&(o=!0),447+i-hh>=t&&(s=!0),447+i-hh>=t+50&&(n=!0),this._domNode.classList.toggle("collapsed-find-widget",n),this._domNode.classList.toggle("narrow-find-widget",s),this._domNode.classList.toggle("reduced-find-widget",o),s||n||(this._domNode.style.maxWidth=t-28-i-15+"px"),this._resized){this._findInput.inputBox.layout();const e=this._findInput.inputBox.element.clientWidth;e>0&&(this._replaceInput.width=e)}else this._isReplaceVisible&&(this._replaceInput.width=At.w(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4,e}_tryUpdateHeight(){const e=this._getHeight();return(null===this._cachedHeight||this._cachedHeight!==e)&&(this._cachedHeight=e,this._domNode.style.height=`${e}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const e=this._codeEditor.getSelections();e.map((e=>{1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1)));const t=this._state.currentMatch;return e.startLineNumber===e.endLineNumber||ye.e.equalsRange(e,t)?null:e})).filter((e=>!!e)),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){return e.equals(3|gh)?(this._keybindingService.dispatchEvent(e,e.target)||this._findInput.inputBox.insertAtCursor("\n"),void e.preventDefault()):e.equals(2)?(this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?mh(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):e.equals(18)?fh(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea")):void 0}_onReplaceInputKeyDown(e){return e.equals(3|gh)?(this._keybindingService.dispatchEvent(e,e.target)||(We.ED&&We.tY&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(le.NC("ctrlEnter.keybindingChanged","Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(uh,!0,0,0)),this._replaceInput.inputBox.insertAtCursor("\n")),void e.preventDefault()):e.equals(2)?(this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(1026)?(this._findInput.focus(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):e.equals(16)?mh(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):e.equals(18)?fh(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea")):void 0}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new Qr(null,this._contextViewProvider,{width:221,label:Zd,placeholder:Yd,appendCaseSensitiveLabel:this._keybindingLabelFor(Dd),appendWholeWordsLabel:this._keybindingLabelFor(Nd),appendRegexLabel:this._keybindingLabelFor(Ed),validation:e=>{if(0===e.length||!this._findInput.getRegex())return null;try{return new RegExp(e,"gu"),null}catch(t){return{content:t.message}}},flexibleHeight:true,flexibleWidth:true,flexibleMaxHeight:118,showHistoryHint:()=>Hd(this._keybindingService)},this._contextKeyService,!0)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown((e=>this._onFindInputKeyDown(e)))),this._register(this._findInput.inputBox.onDidChange((()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)}))),this._register(this._findInput.onDidOptionChange((()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)}))),this._register(this._findInput.onCaseSensitiveKeyDown((e=>{e.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),e.preventDefault())}))),this._register(this._findInput.onRegexKeyDown((e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),e.preventDefault())}))),this._register(this._findInput.inputBox.onDidHeightChange((e=>{this._tryUpdateHeight()&&this._showViewZone()}))),We.IJ&&this._register(this._findInput.onMouseDown((e=>this._onFindInputMouseDown(e)))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new vh({label:Jd+this._keybindingLabelFor(yd),icon:Gd,onTrigger:()=>{this._codeEditor.getAction(yd).run().then(void 0,lt.dL)}})),this._nextBtn=this._register(new vh({label:Xd+this._keybindingLabelFor(wd),icon:Qd,onTrigger:()=>{this._codeEditor.getAction(wd).run().then(void 0,lt.dL)}}));const e=document.createElement("div");e.className="find-part",e.appendChild(this._findInput.domNode);const t=document.createElement("div");t.className="find-actions",e.appendChild(t),t.appendChild(this._matchesCount),t.appendChild(this._prevBtn.domNode),t.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new Rr.Z({icon:jd,title:eh+this._keybindingLabelFor(Id),isChecked:!1})),this._register(this._toggleSelectionFind.onChange((()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){const e=this._codeEditor.getSelections();e.map((e=>(1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()?null:e))).filter((e=>!!e)),e.length&&this._state.change({searchScope:e},!0)}}else this._state.change({searchScope:null},!0)}))),t.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new vh({label:th+this._keybindingLabelFor(xd),icon:il.s_,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),e.preventDefault())}})),t.appendChild(this._closeBtn.domNode),this._replaceInput=this._register(new Zr(null,void 0,{label:ih,placeholder:nh,appendPreserveCaseLabel:this._keybindingLabelFor(Td),history:[],flexibleHeight:true,flexibleWidth:true,flexibleMaxHeight:118,showHistoryHint:()=>Hd(this._keybindingService)},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown((e=>this._onReplaceInputKeyDown(e)))),this._register(this._replaceInput.inputBox.onDidChange((()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)}))),this._register(this._replaceInput.inputBox.onDidHeightChange((e=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()}))),this._register(this._replaceInput.onDidOptionChange((()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)}))),this._register(this._replaceInput.onPreserveCaseKeyDown((e=>{e.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),e.preventDefault())}))),this._replaceBtn=this._register(new vh({label:oh+this._keybindingLabelFor(Md),icon:$d,onTrigger:()=>{this._controller.replace()},onKeyDown:e=>{e.equals(1026)&&(this._closeBtn.focus(),e.preventDefault())}})),this._replaceAllBtn=this._register(new vh({label:sh+this._keybindingLabelFor(Ad),icon:qd,onTrigger:()=>{this._controller.replaceAll()}}));const i=document.createElement("div");i.className="replace-part",i.appendChild(this._replaceInput.domNode);const n=document.createElement("div");n.className="replace-actions",i.appendChild(n),n.appendChild(this._replaceBtn.domNode),n.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new vh({label:rh,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=At.w(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}})),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.style.width="419px",this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(e),this._domNode.appendChild(i),this._resizeSash=new no.g(this._domNode,this,{orientation:0,size:2}),this._resized=!1;let o=dh;this._register(this._resizeSash.onDidStart((()=>{o=At.w(this._domNode)}))),this._register(this._resizeSash.onDidChange((e=>{this._resized=!0;const t=o+e.startX-e.currentX;if(t(parseFloat(At.Dx(this._domNode).maxWidth)||0)||(this._domNode.style.width=`${t}px`,this._isReplaceVisible&&(this._replaceInput.width=At.w(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())}))),this._register(this._resizeSash.onDidReset((()=>{const e=At.w(this._domNode);if(e{this._opts.onTrigger(),e.preventDefault()})),this.onkeydown(this._domNode,(e=>{var t,i;if(e.equals(10)||e.equals(3))return this._opts.onTrigger(),void e.preventDefault();null===(i=(t=this._opts).onKeyDown)||void 0===i||i.call(t,e)}))}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){this._domNode.classList.toggle("disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(e){this._domNode.setAttribute("aria-expanded",String(!!e)),e?(this._domNode.classList.remove(...Ne.kS.asClassNameArray(Kd)),this._domNode.classList.add(...Ne.kS.asClassNameArray(Ud))):(this._domNode.classList.remove(...Ne.kS.asClassNameArray(Ud)),this._domNode.classList.add(...Ne.kS.asClassNameArray(Kd)))}}(0,Ne.Ic)(((e,t)=>{const i=(e,i)=>{i&&t.addRule(`.monaco-editor ${e} { background-color: ${i}; }`)};i(".findMatch",e.getColor(De.MUv)),i(".currentFindMatch",e.getColor(De.nyM)),i(".findScope",e.getColor(De.jUe));i(".find-widget",e.getColor(De.D0T));const n=e.getColor(De.rh);n&&t.addRule(`.monaco-editor .find-widget { box-shadow: 0 0 8px 2px ${n}; }`);const o=e.getColor(De.EiJ);o&&t.addRule(`.monaco-editor .findMatch { border: 1px ${(0,_o.c3)(e.type)?"dotted":"solid"} ${o}; box-sizing: border-box; }`);const s=e.getColor(De.pnM);s&&t.addRule(`.monaco-editor .currentFindMatch { border: 2px solid ${s}; padding: 1px; box-sizing: border-box; }`);const r=e.getColor(De.gkn);r&&t.addRule(`.monaco-editor .findScope { border: 1px ${(0,_o.c3)(e.type)?"dashed":"solid"} ${r}; }`);const a=e.getColor(De.lRK);a&&t.addRule(`.monaco-editor .find-widget { border: 1px solid ${a}; }`);const l=e.getColor(De.Hfx);l&&t.addRule(`.monaco-editor .find-widget { color: ${l}; }`);const c=e.getColor(De.Ido);c&&t.addRule(`.monaco-editor .find-widget.no-results .matchesCount { color: ${c}; }`);const d=e.getColor(De.Ng6);if(d)t.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${d}; }`);else{const i=e.getColor(De.D1_);i&&t.addRule(`.monaco-editor .find-widget .monaco-sash { background-color: ${i}; }`)}const h=e.getColor(De.lUq);h&&t.addRule(`\n\t\t.monaco-editor .find-widget .button:not(.disabled):hover,\n\t\t.monaco-editor .find-widget .codicon-find-selection:hover {\n\t\t\tbackground-color: ${h} !important;\n\t\t}\n\t`);const u=e.getColor(De.R80);u&&t.addRule(`.monaco-editor .find-widget .monaco-inputbox.synthetic-focus { outline-color: ${u}; }`)}));var bh=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ch=function(e,t){return function(i,n){t(i,n,e)}},wh=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function yh(e,t="single",i=!1){if(!e.hasModel())return null;const n=e.getSelection();if("single"===t&&n.startLineNumber===n.endLineNumber||"multiple"===t)if(n.isEmpty()){const t=e.getConfiguredWordAtPosition(n.getStartPosition());if(t&&!1===i)return t.word}else if(e.getModel().getValueLengthInRange(n)<524288)return e.getModel().getValueInRange(n);return null}let Sh=class e extends Ce.JT{constructor(e,t,i,n){super(),this._editor=e,this._findWidgetVisible=dd.bindTo(t),this._contextKeyService=t,this._storageService=i,this._clipboardService=n,this._updateHistoryDelayer=new be.vp(500),this._state=this._register(new Wd),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange((e=>this._onStateChanged(e)))),this._model=null,this._register(this._editor.onDidChangeModel((()=>{const e=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),e&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(37).loop})})))}get editor(){return this._editor}static get(t){return t.getContribution(e.ID)}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,0),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,0),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,0),e.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,0)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!hd.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){const e=this._editor.getSelections();e.map((e=>(1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._editor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()?null:e))).filter((e=>!!e)),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){this._state.isRegex&&(e=ot.ec(e)),this._state.change({searchString:e},!1)}highlightFindOptions(e=!1){}_start(e,t){return wh(this,void 0,void 0,(function*(){if(this.disposeModel(),!this._editor.hasModel())return;const i=Object.assign(Object.assign({},t),{isRevealed:!0});if("single"===e.seedSearchStringFromSelection){const t=yh(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);t&&(this._state.isRegex?i.searchString=ot.ec(t):i.searchString=t)}else if("multiple"===e.seedSearchStringFromSelection&&!e.updateSearchScope){const t=yh(this._editor,e.seedSearchStringFromSelection);t&&(i.searchString=t)}if(!i.searchString&&e.seedSearchStringFromGlobalClipboard){const e=yield this.getGlobalBufferTerm();if(!this._editor.hasModel())return;e&&(i.searchString=e)}if(e.forceRevealReplace||i.isReplaceRevealed?i.isReplaceRevealed=!0:this._findWidgetVisible.get()||(i.isReplaceRevealed=!1),e.updateSearchScope){const e=this._editor.getSelections();e.some((e=>!e.isEmpty()))&&(i.searchScope=e)}i.loop=e.loop,this._state.change(i,!1),this._model||(this._model=new Pd(this._editor,this._state))}))}start(e,t){return this._start(e,t)}moveToNextMatch(){return!!this._model&&(this._model.moveToNextMatch(),!0)}moveToPrevMatch(){return!!this._model&&(this._model.moveToPrevMatch(),!0)}replace(){return!!this._model&&(this._model.replace(),!0)}replaceAll(){return!!this._model&&(this._model.replaceAll(),!0)}selectAllMatches(){return!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)}getGlobalBufferTerm(){return wh(this,void 0,void 0,(function*(){return this._editor.getOption(37).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}))}setGlobalBufferTerm(e){this._editor.getOption(37).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}};Sh.ID="editor.contrib.findController",Sh=bh([Ch(1,ce.i6),Ch(2,Xi.Uy),Ch(3,je.p)],Sh);let Lh=class extends Sh{constructor(e,t,i,n,o,s,r,a){super(e,i,r,a),this._contextViewService=t,this._keybindingService=n,this._themeService=o,this._notificationService=s,this._widget=null,this._findOptionsWidget=null}_start(e,t){const i=Object.create(null,{_start:{get:()=>super._start}});return wh(this,void 0,void 0,(function*(){this._widget||this._createFindWidget();const n=this._editor.getSelection();let o=!1;switch(this._editor.getOption(37).autoFindInSelection){case"always":o=!0;break;case"never":o=!1;break;case"multiline":o=!!n&&n.startLineNumber!==n.endLineNumber;break}e.updateSearchScope=e.updateSearchScope||o,yield i._start.call(this,e,t),this._widget&&(2===e.shouldFocus?this._widget.focusReplaceInput():1===e.shouldFocus&&this._widget.focusFindInput())}))}highlightFindOptions(e=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new _h(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new Bd(this._editor,this._state,this._keybindingService,this._themeService))}};Lh=bh([Ch(1,Ft.u),Ch(2,ce.i6),Ch(3,Bt.d),Ch(4,Ne.XE),Ch(5,hi.lT),Ch(6,Xi.Uy),Ch(7,je.p)],Lh);(0,se.rn)(new se.jY({id:vd,label:le.NC("startFindAction","Find"),alias:"Find",precondition:ce.Ao.or(ae.u.focus,ce.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:xe.eH.MenubarEditMenu,group:"3_find",title:le.NC({key:"miFind",comment:["&& denotes a mnemonic"]},"&&Find"),order:1}})).addImplementation(0,((e,t,i)=>{const n=Sh.get(t);return!!n&&n.start({forceRevealReplace:!1,seedSearchStringFromSelection:"never"!==t.getOption(37).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(37).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:t.getOption(37).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(37).loop})}));const kh={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},regex:{type:"boolean"},regexOverride:{type:"number",description:le.NC("actions.find.isRegexOverride",'Overrides "Use Regular Expression" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},wholeWord:{type:"boolean"},wholeWordOverride:{type:"number",description:le.NC("actions.find.wholeWordOverride",'Overrides "Match Whole Word" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},matchCase:{type:"boolean"},matchCaseOverride:{type:"number",description:le.NC("actions.find.matchCaseOverride",'Overrides "Math Case" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},preserveCase:{type:"boolean"},preserveCaseOverride:{type:"number",description:le.NC("actions.find.preserveCaseOverride",'Overrides "Preserve Case" flag.\nThe flag will not be saved for the future.\n0: Do Nothing\n1: True\n2: False')},findInSelection:{type:"boolean"}}}}]};class xh extends se.R6{constructor(){super({id:Cd,label:le.NC("startFindWithArgsAction","Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},description:kh})}run(e,t,i){return wh(this,void 0,void 0,(function*(){const e=Sh.get(t);if(e){const n=i?{searchString:i.searchString,replaceString:i.replaceString,isReplaceRevealed:void 0!==i.replaceString,isRegex:i.isRegex,wholeWord:i.matchWholeWord,matchCase:i.isCaseSensitive,preserveCase:i.preserveCase}:{};yield e.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===e.getState().searchString.length&&"never"!==t.getOption(37).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(37).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(null==i?void 0:i.findInSelection)||!1,loop:t.getOption(37).loop},n),e.setGlobalBufferTerm(e.getState().searchString)}}))}}class Dh extends se.R6{constructor(){super({id:bd,label:le.NC("startFindWithSelectionAction","Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}run(e,t){return wh(this,void 0,void 0,(function*(){const e=Sh.get(t);e&&(yield e.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(37).loop}),e.setGlobalBufferTerm(e.getState().searchString))}))}}class Nh extends se.R6{run(e,t){return wh(this,void 0,void 0,(function*(){const e=Sh.get(t);e&&!this._run(e)&&(yield e.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===e.getState().searchString.length&&"never"!==t.getOption(37).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(37).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(37).loop}),this._run(e))}))}}class Eh extends se.R6{run(e,t){return wh(this,void 0,void 0,(function*(){const e=Sh.get(t);if(!e)return;const i="selection"===t.getOption(37).seedSearchStringFromSelection;let n=null;"never"!==t.getOption(37).seedSearchStringFromSelection&&(n=yh(t,"single",i)),n&&e.setSearchString(n),this._run(e)||(yield e.start({forceRevealReplace:!1,seedSearchStringFromSelection:"never"!==t.getOption(37).seedSearchStringFromSelection?"single":"none",seedSearchStringFromNonEmptySelection:i,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(37).loop}),this._run(e))}))}}(0,se.rn)(new se.jY({id:kd,label:le.NC("startReplace","Replace"),alias:"Replace",precondition:ce.Ao.or(ae.u.focus,ce.Ao.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:xe.eH.MenubarEditMenu,group:"3_find",title:le.NC({key:"miReplace",comment:["&& denotes a mnemonic"]},"&&Replace"),order:2}})).addImplementation(0,((e,t,i)=>{if(!t.hasModel()||t.getOption(83))return!1;const n=Sh.get(t);if(!n)return!1;const o=t.getSelection(),s=n.isFindInputFocused(),r=!o.isEmpty()&&o.startLineNumber===o.endLineNumber&&"never"!==t.getOption(37).seedSearchStringFromSelection&&!s,a=s||r?2:1;return n.start({forceRevealReplace:!0,seedSearchStringFromSelection:r?"single":"none",seedSearchStringFromNonEmptySelection:"selection"===t.getOption(37).seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:"never"!==t.getOption(37).seedSearchStringFromSelection,shouldFocus:a,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(37).loop})})),(0,se._K)(Sh.ID,Lh),(0,se.Qr)(xh),(0,se.Qr)(Dh),(0,se.Qr)(class extends Nh{constructor(){super({id:wd,label:le.NC("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:ae.u.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:ce.Ao.and(ae.u.focus,hd),primary:3,weight:100}]})}_run(e){return!!e.moveToNextMatch()&&(e.editor.pushUndoStop(),!0)}}),(0,se.Qr)(class extends Nh{constructor(){super({id:yd,label:le.NC("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:ae.u.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:ce.Ao.and(ae.u.focus,hd),primary:1027,weight:100}]})}_run(e){return e.moveToPrevMatch()}}),(0,se.Qr)(class extends Eh{constructor(){super({id:Sd,label:le.NC("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:ae.u.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}}),(0,se.Qr)(class extends Eh{constructor(){super({id:Ld,label:le.NC("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:ae.u.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}});const Ih=se._l.bindToContribution(Sh.get);(0,se.fK)(new Ih({id:xd,precondition:dd,handler:e=>e.closeFindWidget(),kbOpts:{weight:105,kbExpr:ce.Ao.and(ae.u.focus,ce.Ao.not("isComposing")),primary:9,secondary:[1033]}})),(0,se.fK)(new Ih({id:Dd,precondition:void 0,handler:e=>e.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:ae.u.focus,primary:gd.primary,mac:gd.mac,win:gd.win,linux:gd.linux}})),(0,se.fK)(new Ih({id:Nd,precondition:void 0,handler:e=>e.toggleWholeWords(),kbOpts:{weight:105,kbExpr:ae.u.focus,primary:pd.primary,mac:pd.mac,win:pd.win,linux:pd.linux}})),(0,se.fK)(new Ih({id:Ed,precondition:void 0,handler:e=>e.toggleRegex(),kbOpts:{weight:105,kbExpr:ae.u.focus,primary:md.primary,mac:md.mac,win:md.win,linux:md.linux}})),(0,se.fK)(new Ih({id:Id,precondition:void 0,handler:e=>e.toggleSearchScope(),kbOpts:{weight:105,kbExpr:ae.u.focus,primary:fd.primary,mac:fd.mac,win:fd.win,linux:fd.linux}})),(0,se.fK)(new Ih({id:Td,precondition:void 0,handler:e=>e.togglePreserveCase(),kbOpts:{weight:105,kbExpr:ae.u.focus,primary:_d.primary,mac:_d.mac,win:_d.win,linux:_d.linux}})),(0,se.fK)(new Ih({id:Md,precondition:dd,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:ae.u.focus,primary:3094}})),(0,se.fK)(new Ih({id:Md,precondition:dd,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:ce.Ao.and(ae.u.focus,ud),primary:3}})),(0,se.fK)(new Ih({id:Ad,precondition:dd,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:ae.u.focus,primary:2563}})),(0,se.fK)(new Ih({id:Ad,precondition:dd,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:ce.Ao.and(ae.u.focus,ud),primary:void 0,mac:{primary:2051}}})),(0,se.fK)(new Ih({id:Rd,precondition:dd,handler:e=>e.selectAllMatches(),kbOpts:{weight:105,kbExpr:ae.u.focus,primary:515}}));const Th=16777215,Mh=4278190080;class Ah{constructor(e){const t=Math.ceil(e/32);this._states=new Uint32Array(t)}get(e){const t=e/32|0,i=e%32;return 0!=(this._states[t]&1<65535)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=e,this._endIndexes=t,this._collapseStates=new Ah(e.length),this._userDefinedStates=new Ah(e.length),this._recoveredStates=new Ah(e.length),this._types=i,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const e=[],t=(t,i)=>{const n=e[e.length-1];return this.getStartLineNumber(n)<=t&&this.getEndLineNumber(n)>=i};for(let i=0,n=this._startIndexes.length;iTh||o>Th)throw new Error("startLineNumber or endLineNumber must not exceed 16777215");for(;e.length>0&&!t(n,o);)e.pop();const s=e.length>0?e[e.length-1]:-1;e.push(i),this._startIndexes[i]=n+((255&s)<<24),this._endIndexes[i]=o+((65280&s)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&Th}getEndLineNumber(e){return this._endIndexes[e]&Th}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){return this._collapseStates.get(e)}setCollapsed(e,t){this._collapseStates.set(e,t)}isUserDefined(e){return this._userDefinedStates.get(e)}setUserDefined(e,t){return this._userDefinedStates.set(e,t)}isRecovered(e){return this._recoveredStates.get(e)}setRecovered(e,t){return this._recoveredStates.set(e,t)}getSource(e){return this.isUserDefined(e)?1:this.isRecovered(e)?2:0}setSource(e,t){1===t?(this.setUserDefined(e,!0),this.setRecovered(e,!1)):2===t?(this.setUserDefined(e,!1),this.setRecovered(e,!0)):(this.setUserDefined(e,!1),this.setRecovered(e,!1))}setCollapsedAllOfType(e,t){let i=!1;if(this._types)for(let n=0;n>>24)+((this._endIndexes[e]&Mh)>>>16);return 65535===t?-1:t}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,i=this._startIndexes.length;if(0===i)return-1;for(;t=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);-1!==t;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}toString(){const e=[];for(let t=0;tArray.isArray(e)?i=>ii=c.startLineNumber))l&&l.startLineNumber===c.startLineNumber?(1===c.source?e=c:(e=l,e.isCollapsed=c.isCollapsed&&l.endLineNumber===c.endLineNumber,e.source=0),l=o(++r)):(e=c,c.isCollapsed&&0===c.source&&(e.source=2)),c=s(++a);else{let t=a,i=c;for(;;){if(!i||i.startLineNumber>l.endLineNumber){e=l;break}if(1===i.source&&i.endLineNumber>l.endLineNumber)break;i=s(++t)}l=o(++r)}if(e){for(;h&&h.endLineNumbere.startLineNumber&&e.startLineNumber>u&&e.endLineNumber<=i&&(!h||h.endLineNumber>=e.endLineNumber)&&(g.push(e),u=e.startLineNumber,h&&d.push(h),h=e)}}return g}}class Oh{constructor(e,t){this.ranges=e,this.index=t}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}containsLine(e){return this.startLineNumber<=e&&e<=this.endLineNumber}}class Ph{constructor(e,t){this._updateEventEmitter=new Yt.Q5,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new Rh(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}get regions(){return this._regions}get textModel(){return this._textModel}toggleCollapseState(e){if(!e.length)return;e=e.sort(((e,t)=>e.regionIndex-t.regionIndex));const t={};this._decorationProvider.changeDecorations((i=>{let n=0,o=-1,s=-1;const r=e=>{for(;ns&&(s=e),n++}};for(const a of e){const e=a.regionIndex,i=this._editorDecorationIds[e];if(i&&!t[i]){t[i]=!0,r(e);const n=!this._regions.isCollapsed(e);this._regions.setCollapsed(e,n),o=Math.max(o,this._regions.getEndLineNumber(e))}}r(this._regions.length)})),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){const t=new Array,i=t=>{for(const i of e)if(!(i.startLineNumber>t.endLineNumber||t.startLineNumber>i.endLineNumber))return!0;return!1};for(let n=0;ni&&(i=s)}this._decorationProvider.changeDecorations((e=>this._editorDecorationIds=e.deltaDecorations(this._editorDecorationIds,t))),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(e=[]){const t=(t,i)=>{for(const n of e)if(t0?t:void 0}applyMemento(e){var t,i;if(!Array.isArray(e))return;const n=[],o=this._textModel.getLineCount();for(const r of e){if(r.startLineNumber>=r.endLineNumber||r.startLineNumber<1||r.endLineNumber>o)continue;const e=this._getLinesChecksum(r.startLineNumber+1,r.endLineNumber);r.checksum&&e!==r.checksum||n.push({startLineNumber:r.startLineNumber,endLineNumber:r.endLineNumber,type:void 0,isCollapsed:null===(t=r.isCollapsed)||void 0===t||t,source:null!==(i=r.source)&&void 0!==i?i:0})}const s=Rh.sanitizeAndMerge(this._regions,n,o);this.updatePost(Rh.fromFoldRanges(s))}_getLinesChecksum(e,t){return(0,ji.vp)(this._textModel.getLineContent(e)+this._textModel.getLineContent(t))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(e,t){const i=[];if(this._regions){let n=this._regions.findRange(e),o=1;for(;n>=0;){const e=this._regions.toRegion(n);t&&!t(e,o)||i.push(e),o++,n=e.parentIndex}}return i}getRegionAtLine(e){if(this._regions){const t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){const i=[],n=e?e.regionIndex+1:0,o=e?e.endLineNumber:Number.MAX_VALUE;if(t&&2===t.length){const e=[];for(let s=n,r=this._regions.length;s0&&!n.containedBy(e[e.length-1]);)e.pop();e.push(n),t(n,e.length)&&i.push(n)}}else for(let s=n,r=this._regions.length;s0)for(const s of n){const n=e.getRegionAtLine(s);if(n&&(n.isCollapsed!==t&&o.push(n),i>1)){const s=e.getRegionsInside(n,((e,n)=>e.isCollapsed!==t&&ne.isCollapsed!==t&&ne.isCollapsed!==t&&n<=i));o.push(...n)}e.toggleCollapseState(o)}function Vh(e,t,i){const n=[];for(const s of i){const t=e.getAllRegionsAtLine(s,void 0);t.length>0&&n.push(t[0])}const o=e.getRegionsInside(null,(e=>n.every((t=>!t.containedBy(e)&&!e.containedBy(t)))&&e.isCollapsed!==t));e.toggleCollapseState(o)}function Wh(e,t,i){const n=e.textModel,o=e.regions,s=[];for(let r=o.length-1;r>=0;r--)if(i!==o.isCollapsed(r)){const e=o.getStartLineNumber(r);t.test(n.getLineContent(e))&&s.push(o.toRegion(r))}e.toggleCollapseState(s)}function Hh(e,t,i){const n=e.regions,o=[];for(let s=n.length-1;s>=0;s--)i!==n.isCollapsed(s)&&t===n.getType(s)&&o.push(n.toRegion(s));e.toggleCollapseState(o)}var zh=i(23795);class jh{constructor(e){this._updateEventEmitter=new Yt.Q5,this._hasLineChanges=!1,this._foldingModel=e,this._foldingModelListener=e.onDidChange((e=>this.updateHiddenRanges())),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}notifyChangeModelContent(e){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=e.changes.some((e=>e.range.endLineNumber!==e.range.startLineNumber||0!==(0,zh.Q)(e.text)[0])))}updateHiddenRanges(){let e=!1;const t=[];let i=0,n=0,o=Number.MAX_VALUE,s=-1;const r=this._foldingModel.regions;for(;i0}isHidden(e){return null!==Kh(this._hiddenRanges,e)}adjustSelections(e){let t=!1;const i=this._foldingModel.textModel;let n=null;const o=e=>(n&&function(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}(e,n)||(n=Kh(this._hiddenRanges,e)),n?n.startLineNumber-1:null);for(let s=0,r=e.length;s0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function Kh(e,t){const i=(0,at.lG)(e,(e=>t=0&&e[i].endLineNumber>=t?e[i]:null}class Uh{constructor(e,t,i){this.editorModel=e,this.languageConfigurationService=t,this.maxFoldingRegions=i,this.id="indent"}dispose(){}compute(e,t){const i=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,n=i&&!!i.offSide,o=i&&i.markers;return Promise.resolve(function(e,t,i,n,o){const s=e.getOptions().tabSize,r=new $h(n=null!=n?n:5e3,o);let a;i&&(a=new RegExp(`(${i.start.source})|(?:${i.end.source})`));const l=[],c=e.getLineCount()+1;l.push({indent:-1,endAbove:c,line:c});for(let d=e.getLineCount();d>0;d--){const i=e.getLineContent(d),n=(0,Jt.q)(i,s);let o,c=l[l.length-1];if(-1!==n){if(a&&(o=i.match(a))){if(!o[1]){l.push({indent:-2,endAbove:d,line:d});continue}{let e=l.length-1;for(;e>0&&-2!==l[e].indent;)e--;if(e>0){l.length=e+1,c=l[e],r.insertFirst(d,c.line,n),c.line=d,c.indent=n,c.endAbove=d;continue}}}if(c.indent>n){do{l.pop(),c=l[l.length-1]}while(c.indent>n);const e=c.endAbove-1;e-d>=1&&r.insertFirst(d,e,n)}c.indent===n?c.endAbove=d:l.push({indent:n,endAbove:d,line:d})}else t&&(c.endAbove=d)}return r.toIndentRanges(e)}(this.editorModel,n,o,this.maxFoldingRegions,t))}}class $h{constructor(e,t){this._notifyTooManyRegions=t,this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,i){if(e>Th||t>Th)return;const n=this._length;this._startIndexes[n]=e,this._endIndexes[n]=t,this._length++,i<1e3&&(this._indentOccurrences[i]=(this._indentOccurrences[i]||0)+1)}toIndentRanges(e){var t;if(this._length<=this._foldingRangesLimit){const e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let i=this._length-1,n=0;i>=0;i--,n++)e[n]=this._startIndexes[i],t[n]=this._endIndexes[i];return new Rh(e,t)}{null===(t=this._notifyTooManyRegions)||void 0===t||t.call(this,this._foldingRangesLimit);let i=0,n=this._indentOccurrences.length;for(let e=0;ethis._foldingRangesLimit){n=e;break}i+=t}}const o=e.getOptions().tabSize,s=new Uint32Array(this._foldingRangesLimit),r=new Uint32Array(this._foldingRangesLimit);for(let t=this._length-1,a=0;t>=0;t--){const l=this._startIndexes[t],c=e.getLineContent(l),d=(0,Jt.q)(c,o);(dPromise.resolve(e.provideFoldingRanges(t,Jh,i)).then((e=>{if(!i.isCancellationRequested&&Array.isArray(e)){Array.isArray(n)||(n=[]);const i=t.getLineCount();for(const t of e)t.start>0&&t.end>t.start&&t.end<=i&&n.push({start:t.start,end:t.end,rank:o,kind:t.kind})}}),lt.Cp)));return Promise.all(o).then((e=>n))}(this.providers,this.editorModel,e).then((e=>{if(e){const i=function(e,t,i){const n=e.sort(((e,t)=>{let i=e.start-t.start;return 0===i&&(i=e.rank-t.rank),i})),o=new eu(t,i);let s;const r=[];for(const a of n)if(s){if(a.start>s.start)if(a.end<=s.end)r.push(s),s=a,o.add(a.start,a.end,a.kind&&a.kind.value,r.length);else{if(a.start>s.end){do{s=r.pop()}while(s&&a.start>s.end);s&&r.push(s),s=a}o.add(a.start,a.end,a.kind&&a.kind.value,r.length)}}else s=a,o.add(a.start,a.end,a.kind&&a.kind.value,r.length);return o.toIndentRanges()}(e,this.limit,t);return i}return null}))}dispose(){var e;null===(e=this.disposables)||void 0===e||e.dispose()}}class eu{constructor(e,t){this._notifyTooManyRegions=t,this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,i,n){if(e>Th||t>Th)return;const o=this._length;this._startIndexes[o]=e,this._endIndexes[o]=t,this._nestingLevels[o]=n,this._types[o]=i,this._length++,n<30&&(this._nestingLevelCounts[n]=(this._nestingLevelCounts[n]||0)+1)}toIndentRanges(){var e;if(this._length<=this._foldingRangesLimit){const e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let i=0;ithis._foldingRangesLimit){i=e;break}t+=n}}const n=new Uint32Array(this._foldingRangesLimit),o=new Uint32Array(this._foldingRangesLimit),s=[];for(let e=0,r=0;e=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},iu=function(e,t){return function(i,n){t(i,n,e)}};const nu=new ce.uy("foldingEnabled",!1);let ou=class e extends Ce.JT{constructor(e,t,i,n,o,s){super(),this.contextKeyService=t,this.languageConfigurationService=i,this.languageFeaturesService=s,this._tooManyRegionsNotified=!1,this.localToDispose=this._register(new Ce.SL),this.editor=e;const r=this.editor.getOptions();this._isEnabled=r.get(39),this._useFoldingProviders="indentation"!==r.get(40),this._unfoldOnClickAfterEndOfLine=r.get(44),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=r.get(42),this._maxFoldingRegions=r.get(43),this.updateDebounceInfo=o.for(s.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new Yh(e),this.foldingDecorationProvider.showFoldingControls=r.get(101),this.foldingDecorationProvider.showFoldingHighlights=r.get(41),this.foldingEnabled=nu.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._notifyTooManyRegions=e=>{this._tooManyRegionsNotified||(n.notify({severity:nl.Z.Warning,sticky:!0,message:le.NC("maximum fold ranges","The number of foldable regions is limited to a maximum of {0}. Increase configuration option ['Folding Maximum Regions'](command:workbench.action.openSettings?[\"editor.foldingMaximumRegions\"]) to enable more.",e)}),this._tooManyRegionsNotified=!0)},this._register(this.editor.onDidChangeModel((()=>this.onModelChanged()))),this._register(this.editor.onDidChangeConfiguration((e=>{if(e.hasChanged(39)&&(this._isEnabled=this.editor.getOptions().get(39),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),e.hasChanged(43)&&(this._maxFoldingRegions=this.editor.getOptions().get(43),this._tooManyRegionsNotified=!1,this.onModelChanged()),e.hasChanged(101)||e.hasChanged(41)){const e=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=e.get(101),this.foldingDecorationProvider.showFoldingHighlights=e.get(41),this.triggerFoldingModelChanged()}e.hasChanged(40)&&(this._useFoldingProviders="indentation"!==this.editor.getOptions().get(40),this.onFoldingStrategyChanged()),e.hasChanged(44)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(44)),e.hasChanged(42)&&(this._foldingImportsByDefault=this.editor.getOptions().get(42))}))),this.onModelChanged()}static get(t){return t.getContribution(e.ID)}saveViewState(){const e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){const t=this.foldingModel.getMemento(),i=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:i,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(e){const t=this.editor.getModel();if(t&&this._isEnabled&&!t.isTooLargeForTokenization()&&this.hiddenRangeModel&&e&&e.lineCount===t.getLineCount()&&(this._currentModelHasFoldedImports=!!e.foldedImports,e.collapsedRegions&&e.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(e.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const e=this.editor.getModel();this._isEnabled&&e&&!e.isTooLargeForTokenization()&&(this._currentModelHasFoldedImports=!1,this.foldingModel=new Ph(e,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new jh(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange((e=>this.onHiddenRangesChanges(e)))),this.updateScheduler=new be.vp(this.updateDebounceInfo.get(e)),this.cursorChangedScheduler=new be.pY((()=>this.revealCursor()),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange((()=>this.onFoldingStrategyChanged()))),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration((()=>this.onFoldingStrategyChanged()))),this.localToDispose.add(this.editor.onDidChangeModelContent((e=>this.onDidChangeModelContent(e)))),this.localToDispose.add(this.editor.onDidChangeCursorPosition((()=>this.onCursorPositionChanged()))),this.localToDispose.add(this.editor.onMouseDown((e=>this.onEditorMouseDown(e)))),this.localToDispose.add(this.editor.onMouseUp((e=>this.onEditorMouseUp(e)))),this.localToDispose.add({dispose:()=>{this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.updateScheduler&&this.updateScheduler.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,this.rangeProvider&&this.rangeProvider.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){this.rangeProvider&&this.rangeProvider.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(e){if(this.rangeProvider)return this.rangeProvider;if(this.rangeProvider=new Uh(e,this.languageConfigurationService,this._maxFoldingRegions),this._useFoldingProviders&&this.foldingModel){const t=this.languageFeaturesService.foldingRangeProvider.ordered(this.foldingModel.textModel);t.length>0&&(this.rangeProvider=new Xh(e,t,(()=>this.triggerFoldingModelChanged()),this._maxFoldingRegions))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){var t;null===(t=this.hiddenRangeModel)||void 0===t||t.notifyChangeModelContent(e),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger((()=>{const e=this.foldingModel;if(!e)return null;const t=new vn.G(!0),i=this.getRangeProvider(e.textModel),n=this.foldingRegionPromise=(0,be.PG)((e=>i.compute(e,this._notifyTooManyRegions)));return n.then((i=>{if(i&&n===this.foldingRegionPromise){let n;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const e=i.setCollapsedAllOfType(Wo.AD.Imports.value,!0);e&&(n=Ki.Z.capture(this.editor),this._currentModelHasFoldedImports=e)}const o=this.editor.getSelections(),s=o?o.map((e=>e.startLineNumber)):[];e.update(i,s),null==n||n.restore(this.editor);const r=this.updateDebounceInfo.update(e.textModel,t.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=r)}return e}))})).then(void 0,(e=>((0,lt.dL)(e),null))))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){const e=this.editor.getSelections();e&&this.hiddenRangeModel.adjustSelections(e)&&this.editor.setSelections(e)}this.editor.setHiddenAreas(e)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const e=this.getFoldingModel();e&&e.then((e=>{if(e){const t=this.editor.getSelections();if(t&&t.length>0){const i=[];for(const n of t){const t=n.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(t)&&i.push(...e.getAllRegionsAtLine(t,(e=>e.isCollapsed&&t>e.startLineNumber)))}i.length&&(e.toggleCollapseState(i),this.reveal(t[0].getPosition()))}}})).then(void 0,lt.dL)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range)return;if(!e.event.leftButton&&!e.event.middleButton)return;const t=e.target.range;let i=!1;switch(e.target.type){case 4:{const t=e.target.detail,n=e.target.element.offsetLeft;if(t.offsetX-n<5)return;i=!0;break}case 7:if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()){if(!e.target.detail.isAfterLines)break}return;case 6:if(this.hiddenRangeModel.hasRanges()){const e=this.editor.getModel();if(e&&t.startColumn===e.getLineMaxColumn(t.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:i}}onEditorMouseUp(e){const t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;const i=this.mouseDownInfo.lineNumber,n=this.mouseDownInfo.iconClicked,o=e.target.range;if(!o||o.startLineNumber!==i)return;if(n){if(4!==e.target.type)return}else{const e=this.editor.getModel();if(!e||o.startColumn!==e.getLineMaxColumn(i))return}const s=t.getRegionAtLine(i);if(s&&s.startLineNumber===i){const o=s.isCollapsed;if(n||o){let n=[];if(e.event.altKey){const e=e=>!e.containedBy(s)&&!s.containedBy(e),i=t.getRegionsInside(null,e);for(const t of i)t.isCollapsed&&n.push(t);0===n.length&&(n=i)}else{const i=e.event.middleButton||e.event.shiftKey;if(i)for(const e of t.getRegionsInside(s))e.isCollapsed===o&&n.push(e);!o&&i&&0!==n.length||n.push(s)}t.toggleCollapseState(n),this.reveal({lineNumber:i,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}};ou.ID="editor.contrib.folding",ou=tu([iu(1,ce.i6),iu(2,Xn.c_),iu(3,hi.lT),iu(4,un.A),iu(5,rt.p)],ou);class su extends se.R6{runEditorCommand(e,t,i){const n=e.get(Xn.c_),o=ou.get(t);if(!o)return;const s=o.getFoldingModel();return s?(this.reportTelemetry(e,t),s.then((e=>{if(e){this.invoke(o,e,t,i,n);const s=t.getSelection();s&&o.reveal(s.getStartPosition())}}))):void 0}getSelectedLines(e){const t=e.getSelections();return t?t.map((e=>e.startLineNumber)):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map((e=>e+1)):this.getSelectedLines(t)}run(e,t){}}function ru(e){if(!$i.o8(e)){if(!$i.Kn(e))return!1;const t=e;if(!$i.o8(t.levels)&&!$i.hj(t.levels))return!1;if(!$i.o8(t.direction)&&!$i.HD(t.direction))return!1;if(!($i.o8(t.selectionLines)||$i.kJ(t.selectionLines)&&t.selectionLines.every($i.hj)))return!1}return!0}class au extends su{getFoldingLevel(){return parseInt(this.id.substr(au.ID_PREFIX.length))}invoke(e,t,i){!function(e,t,i,n){const o=e.getRegionsInside(null,((e,o)=>o===t&&e.isCollapsed!==i&&!n.some((t=>e.containsLine(t)))));e.toggleCollapseState(o)}(t,this.getFoldingLevel(),!0,this.getSelectedLines(i))}}au.ID_PREFIX="editor.foldLevel",au.ID=e=>au.ID_PREFIX+e;(0,se._K)(ou.ID,ou),(0,se.Qr)(class extends su{constructor(){super({id:"editor.unfold",label:le.NC("unfoldAction.label","Unfold"),alias:"Unfold",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:3161,mac:{primary:2649},weight:100},description:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t",constraint:ru,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,n){const o=n&&n.levels||1,s=this.getLineNumbers(n,i);n&&"up"===n.direction?Bh(t,!1,o,s):Fh(t,!1,o,s)}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.unfoldRecursively",label:le.NC("unFoldRecursivelyAction.label","Unfold Recursively"),alias:"Unfold Recursively",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2137),weight:100}})}invoke(e,t,i,n){Fh(t,!1,Number.MAX_VALUE,this.getSelectedLines(i))}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.fold",label:le.NC("foldAction.label","Fold"),alias:"Fold",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:3159,mac:{primary:2647},weight:100},description:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t",constraint:ru,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,n){const o=this.getLineNumbers(n,i),s=n&&n.levels,r=n&&n.direction;"number"!=typeof s&&"string"!=typeof r?function(e,t,i){const n=[];for(const o of i){const i=e.getAllRegionsAtLine(o,(e=>e.isCollapsed!==t));i.length>0&&n.push(i[0])}e.toggleCollapseState(n)}(t,!0,o):"up"===r?Bh(t,!0,s||1,o):Fh(t,!0,s||1,o)}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.foldRecursively",label:le.NC("foldRecursivelyAction.label","Fold Recursively"),alias:"Fold Recursively",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2135),weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);Fh(t,!0,Number.MAX_VALUE,n)}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.foldAll",label:le.NC("foldAllAction.label","Fold All"),alias:"Fold All",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2069),weight:100}})}invoke(e,t,i){Fh(t,!0)}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.unfoldAll",label:le.NC("unfoldAllAction.label","Unfold All"),alias:"Unfold All",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2088),weight:100}})}invoke(e,t,i){Fh(t,!1)}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.foldAllBlockComments",label:le.NC("foldAllBlockComments.label","Fold All Block Comments"),alias:"Fold All Block Comments",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2133),weight:100}})}invoke(e,t,i,n,o){if(t.regions.hasTypes())Hh(t,Wo.AD.Comment.value,!0);else{const e=i.getModel();if(!e)return;const n=o.getLanguageConfiguration(e.getLanguageId()).comments;if(n&&n.blockCommentStartToken){Wh(t,new RegExp("^\\s*"+(0,ot.ec)(n.blockCommentStartToken)),!0)}}}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.foldAllMarkerRegions",label:le.NC("foldAllMarkerRegions.label","Fold All Regions"),alias:"Fold All Regions",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2077),weight:100}})}invoke(e,t,i,n,o){if(t.regions.hasTypes())Hh(t,Wo.AD.Region.value,!0);else{const e=i.getModel();if(!e)return;const n=o.getLanguageConfiguration(e.getLanguageId()).foldingRules;if(n&&n.markers&&n.markers.start){Wh(t,new RegExp(n.markers.start),!0)}}}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:le.NC("unfoldAllMarkerRegions.label","Unfold All Regions"),alias:"Unfold All Regions",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2078),weight:100}})}invoke(e,t,i,n,o){if(t.regions.hasTypes())Hh(t,Wo.AD.Region.value,!1);else{const e=i.getModel();if(!e)return;const n=o.getLanguageConfiguration(e.getLanguageId()).foldingRules;if(n&&n.markers&&n.markers.start){Wh(t,new RegExp(n.markers.start),!1)}}}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.foldAllExcept",label:le.NC("foldAllExcept.label","Fold All Regions Except Selected"),alias:"Fold All Regions Except Selected",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2131),weight:100}})}invoke(e,t,i){Vh(t,!0,this.getSelectedLines(i))}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.unfoldAllExcept",label:le.NC("unfoldAllExcept.label","Unfold All Regions Except Selected"),alias:"Unfold All Regions Except Selected",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2129),weight:100}})}invoke(e,t,i){Vh(t,!1,this.getSelectedLines(i))}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.toggleFold",label:le.NC("toggleFoldAction.label","Toggle Fold"),alias:"Toggle Fold",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2090),weight:100}})}invoke(e,t,i){!function(e,t,i){const n=[];for(const o of i){const i=e.getRegionAtLine(o);if(i){const o=!i.isCollapsed;if(n.push(i),t>1){const s=e.getRegionsInside(i,((e,i)=>e.isCollapsed!==o&&i0){const e=function(e,t){let i=null;const n=t.getRegionAtLine(e);if(null!==n&&(i=n.startLineNumber,e===i)){const e=n.parentIndex;i=-1!==e?t.regions.getStartLineNumber(e):null}return i}(n[0],t);null!==e&&i.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.gotoPreviousFold",label:le.NC("gotoPreviousFold.label","Go to Previous Folding Range"),alias:"Go to Previous Folding Range",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);if(n.length>0){const e=function(e,t){let i=t.getRegionAtLine(e);if(null!==i&&i.startLineNumber===e){if(e!==i.startLineNumber)return i.startLineNumber;{const e=i.parentIndex;let n=0;for(-1!==e&&(n=t.regions.getStartLineNumber(i.parentIndex));null!==i;){if(!(i.regionIndex>0))return null;if(i=t.regions.toRegion(i.regionIndex-1),i.startLineNumber<=n)return null;if(i.parentIndex===e)return i.startLineNumber}}}else if(t.regions.length>0)for(i=t.regions.toRegion(t.regions.length-1);null!==i;){if(i.startLineNumber0?t.regions.toRegion(i.regionIndex-1):null}return null}(n[0],t);null!==e&&i.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.gotoNextFold",label:le.NC("gotoNextFold.label","Go to Next Folding Range"),alias:"Go to Next Folding Range",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,weight:100}})}invoke(e,t,i){const n=this.getSelectedLines(i);if(n.length>0){const e=function(e,t){let i=t.getRegionAtLine(e);if(null!==i&&i.startLineNumber===e){const e=i.parentIndex;let n=0;if(-1!==e)n=t.regions.getEndLineNumber(i.parentIndex);else{if(0===t.regions.length)return null;n=t.regions.getEndLineNumber(t.regions.length-1)}for(;null!==i;){if(!(i.regionIndex=n)return null;if(i.parentIndex===e)return i.startLineNumber}}else if(t.regions.length>0)for(i=t.regions.toRegion(0);null!==i;){if(i.startLineNumber>e)return i.startLineNumber;i=i.regionIndexe.startLineNumber&&(o.push({startLineNumber:e.startLineNumber,endLineNumber:t,type:void 0,isCollapsed:!0,source:1}),i.setSelection({startLineNumber:e.startLineNumber,startColumn:1,endLineNumber:e.startLineNumber,endColumn:1}))}if(o.length>0){o.sort(((e,t)=>e.startLineNumber-t.startLineNumber));const e=Rh.sanitizeAndMerge(t.regions,o,null===(n=i.getModel())||void 0===n?void 0:n.getLineCount());t.updatePost(Rh.fromFoldRanges(e))}}}}),(0,se.Qr)(class extends su{constructor(){super({id:"editor.removeManualFoldingRanges",label:le.NC("removeManualFoldingRanges.label","Remove Manual Folding Ranges"),alias:"Remove Manual Folding Ranges",precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2132),weight:100}})}invoke(e,t,i){const n=i.getSelections();if(n){const i=[];for(const e of n){const{startLineNumber:t,endLineNumber:n}=e;i.push(n>=t?{startLineNumber:t,endLineNumber:n}:{endLineNumber:n,startLineNumber:t})}t.removeManualRanges(i),e.triggerFoldingModelChanged()}}});for(let Ww=1;Ww<=7;Ww++)(0,se.QG)(new au({id:au.ID(Ww),label:le.NC("foldLevelAction.label","Fold Level {0}",Ww),alias:`Fold Level ${Ww}`,precondition:nu,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2048|21+Ww),weight:100}}));const lu=(0,De.P6G)("editor.foldBackground",{light:(0,De.ZnX)(De.hEj,.3),dark:(0,De.ZnX)(De.hEj,.3),hcDark:null,hcLight:null},le.NC("foldBackgroundBackground","Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0),cu=(0,De.P6G)("editorGutter.foldingControlForeground",{dark:De.XZx,light:De.XZx,hcDark:De.XZx,hcLight:De.XZx},le.NC("editorGutter.foldingControlForeground","Color of the folding control in the editor gutter."));(0,Ne.Ic)(((e,t)=>{const i=e.getColor(lu);i&&t.addRule(`.monaco-editor .folded-background { background-color: ${i}; }`);const n=e.getColor(cu);n&&t.addRule(`\n\t\t.monaco-editor .cldr${Ne.kS.asCSSSelector(qh)},\n\t\t.monaco-editor .cldr${Ne.kS.asCSSSelector(Gh)},\n\t\t.monaco-editor .cldr${Ne.kS.asCSSSelector(Zh)},\n\t\t.monaco-editor .cldr${Ne.kS.asCSSSelector(Qh)} {\n\t\t\tcolor: ${n} !important;\n\t\t}\n\t\t`)}));var du=i(82334);class hu extends se.R6{constructor(){super({id:"editor.action.fontZoomIn",label:le.NC("EditorFontZoomIn.label","Editor Font Zoom In"),alias:"Editor Font Zoom In",precondition:void 0})}run(e,t){du.C.setZoomLevel(du.C.getZoomLevel()+1)}}class uu extends se.R6{constructor(){super({id:"editor.action.fontZoomOut",label:le.NC("EditorFontZoomOut.label","Editor Font Zoom Out"),alias:"Editor Font Zoom Out",precondition:void 0})}run(e,t){du.C.setZoomLevel(du.C.getZoomLevel()-1)}}class gu extends se.R6{constructor(){super({id:"editor.action.fontZoomReset",label:le.NC("EditorFontZoomReset.label","Editor Font Zoom Reset"),alias:"Editor Font Zoom Reset",precondition:void 0})}run(e,t){du.C.setZoomLevel(0)}}(0,se.Qr)(hu),(0,se.Qr)(uu),(0,se.Qr)(gu);var pu=i(44906),mu=i(85215),fu=i(71373),_u=i(35120),vu=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},bu=function(e,t){return function(i,n){t(i,n,e)}},Cu=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let wu=class{constructor(e,t,i){this._editor=e,this._languageFeaturesService=t,this._workerService=i,this._disposables=new Ce.SL,this._sessionDisposables=new Ce.SL,this._disposables.add(t.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(e.onDidChangeModel((()=>this._update()))),this._disposables.add(e.onDidChangeModelLanguage((()=>this._update()))),this._disposables.add(e.onDidChangeConfiguration((e=>{e.hasChanged(51)&&this._update()})))}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(51))return;if(!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;const i=new pu.q;for(const n of t.autoFormatTriggerCharacters)i.add(n.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType((e=>{const t=e.charCodeAt(e.length-1);i.has(t)&&this._trigger(String.fromCharCode(t))})))}_trigger(e){if(!this._editor.hasModel())return;if(this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const t=this._editor.getModel(),i=this._editor.getPosition(),n=new it.A,o=this._editor.onDidChangeModelContent((e=>{if(e.isFlush)return n.cancel(),void o.dispose();for(let t=0,s=e.changes.length;t{n.token.isCancellationRequested||(0,at.Of)(e)&&(_u.V.execute(this._editor,e,!0),(0,fu.Zg)(e))})).finally((()=>{o.dispose()}))}};wu.ID="editor.contrib.autoFormat",wu=vu([bu(1,rt.p),bu(2,mu.p)],wu);let yu=class{constructor(e,t,i){this.editor=e,this._languageFeaturesService=t,this._instantiationService=i,this._callOnDispose=new Ce.SL,this._callOnModel=new Ce.SL,this._callOnDispose.add(e.onDidChangeConfiguration((()=>this._update()))),this._callOnDispose.add(e.onDidChangeModel((()=>this._update()))),this._callOnDispose.add(e.onDidChangeModelLanguage((()=>this._update()))),this._callOnDispose.add(t.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(50)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste((({range:e})=>this._trigger(e))))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(fu.x$,this.editor,e,2,gt.Ex.None,it.T.None).catch(lt.dL))}};yu.ID="editor.contrib.formatOnPaste",yu=vu([bu(1,rt.p),bu(2,Mt.TG)],yu);class Su extends se.R6{constructor(){super({id:"editor.action.formatDocument",label:le.NC("formatDocument.label","Format Document"),alias:"Format Document",precondition:ce.Ao.and(ae.u.notInCompositeEditor,ae.u.writable,ae.u.hasDocumentFormattingProvider),kbOpts:{kbExpr:ae.u.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}run(e,t){return Cu(this,void 0,void 0,(function*(){if(t.hasModel()){const i=e.get(Mt.TG),n=e.get(gt.ek);yield n.showWhile(i.invokeFunction(fu.Qq,t,1,gt.Ex.None,it.T.None),250)}}))}}class Lu extends se.R6{constructor(){super({id:"editor.action.formatSelection",label:le.NC("formatSelection.label","Format Selection"),alias:"Format Selection",precondition:ce.Ao.and(ae.u.writable,ae.u.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:ae.u.editorTextFocus,primary:(0,oe.gx)(2089,2084),weight:100},contextMenuOpts:{when:ae.u.hasNonEmptySelection,group:"1_modification",order:1.31}})}run(e,t){return Cu(this,void 0,void 0,(function*(){if(!t.hasModel())return;const i=e.get(Mt.TG),n=t.getModel(),o=t.getSelections().map((e=>e.isEmpty()?new ye.e(e.startLineNumber,1,e.startLineNumber,n.getLineMaxColumn(e.startLineNumber)):e)),s=e.get(gt.ek);yield s.showWhile(i.invokeFunction(fu.x$,t,o,1,gt.Ex.None,it.T.None),250)}))}}(0,se._K)(wu.ID,wu),(0,se._K)(yu.ID,yu),(0,se.Qr)(Su),(0,se.Qr)(Lu),ut.P0.registerCommand("editor.action.format",(e=>Cu(void 0,void 0,void 0,(function*(){const t=e.get(ze.$).getFocusedCodeEditor();if(!t||!t.hasModel())return;const i=e.get(ut.Hy);t.getSelection().isEmpty()?yield i.executeCommand("editor.action.formatDocument"):yield i.executeCommand("editor.action.formatSelection")}))));var ku=i(53725),xu=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Du=function(e,t){return function(i,n){t(i,n,e)}},Nu=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class Eu{remove(){var e;null===(e=this.parent)||void 0===e||e.children.delete(this.id)}static findId(e,t){let i;"string"==typeof e?i=`${t.id}/${e}`:(i=`${t.id}/${e.name}`,void 0!==t.children.get(i)&&(i=`${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));let n=i;for(let o=0;void 0!==t.children.get(n);o++)n=`${i}_${o}`;return n}static empty(e){return 0===e.children.size}}class Iu extends Eu{constructor(e,t,i){super(),this.id=e,this.parent=t,this.symbol=i,this.children=new Map}}class Tu extends Eu{constructor(e,t,i,n){super(),this.id=e,this.parent=t,this.label=i,this.order=n,this.children=new Map}}class Mu extends Eu{constructor(e){super(),this.uri=e,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}static create(e,t,i){const n=new it.A(i),o=new Mu(t.uri),s=e.ordered(t),r=s.map(((e,i)=>{var s;const r=Eu.findId(`provider_${i}`,o),a=new Tu(r,o,null!==(s=e.displayName)&&void 0!==s?s:"Unknown Outline Provider",i);return Promise.resolve(e.provideDocumentSymbols(t,n.token)).then((e=>{for(const t of e||[])Mu._makeOutlineElement(t,a);return a}),(e=>((0,lt.Cp)(e),a))).then((e=>{Eu.empty(e)?e.remove():o._groups.set(r,e)}))})),a=e.onDidChange((()=>{const i=e.ordered(t);(0,at.fS)(i,s)||n.cancel()}));return Promise.all(r).then((()=>n.token.isCancellationRequested&&!i.isCancellationRequested?Mu.create(e,t,i):o._compact())).finally((()=>{a.dispose()}))}static _makeOutlineElement(e,t){const i=Eu.findId(e,t),n=new Iu(i,t,e);if(e.children)for(const o of e.children)Mu._makeOutlineElement(o,n);t.children.set(n.id,n)}_compact(){let e=0;for(const[t,i]of this._groups)0===i.children.size?this._groups.delete(t):e+=1;if(1!==e)this.children=this._groups;else{const e=ku.$.first(this._groups.values());for(const[,t]of e.children)t.parent=this,this.children.set(t.id,t)}return this}getTopLevelSymbols(){const e=[];for(const t of this.children.values())t instanceof Iu?e.push(t.symbol):e.push(...ku.$.map(t.children.values(),(e=>e.symbol)));return e.sort(((e,t)=>ye.e.compareRangesUsingStarts(e.range,t.range)))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return Mu._flattenDocumentSymbols(t,e,""),t.sort(((e,t)=>we.L.compare(ye.e.getStartPosition(e.range),ye.e.getStartPosition(t.range))||we.L.compare(ye.e.getEndPosition(t.range),ye.e.getEndPosition(e.range))))}static _flattenDocumentSymbols(e,t,i){for(const n of t)e.push({kind:n.kind,tags:n.tags,name:n.name,detail:n.detail,containerName:n.containerName||i,range:n.range,selectionRange:n.selectionRange,children:void 0}),n.children&&Mu._flattenDocumentSymbols(e,n.children,n.name)}}const Au=(0,Mt.yh)("IOutlineModelService");let Ru=class{constructor(e,t,i){this._languageFeaturesService=e,this._disposables=new Ce.SL,this._cache=new Yi.z6(10,.7),this._debounceInformation=t.for(e.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(i.onModelRemoved((e=>{this._cache.delete(e.id)})))}dispose(){this._disposables.dispose()}getOrCreate(e,t){return Nu(this,void 0,void 0,(function*(){const i=this._languageFeaturesService.documentSymbolProvider,n=i.ordered(e);let o=this._cache.get(e.id);if(!o||o.versionId!==e.getVersionId()||!(0,at.fS)(o.provider,n)){const t=new it.A;o={versionId:e.getVersionId(),provider:n,promiseCnt:0,source:t,promise:Mu.create(i,e,t.token),model:void 0},this._cache.set(e.id,o);const s=Date.now();o.promise.then((t=>{o.model=t,this._debounceInformation.update(e,Date.now()-s)})).catch((t=>{this._cache.delete(e.id)}))}if(o.model)return o.model;o.promiseCnt+=1;const s=t.onCancellationRequested((()=>{0==--o.promiseCnt&&(o.source.cancel(),this._cache.delete(e.id))}));try{return yield o.promise}finally{s.dispose()}}))}};Ru=xu([Du(0,rt.p),Du(1,un.A),Du(2,ht.q)],Ru),(0,Ji.z)(Au,Ru,!0);var Ou=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};ut.P0.registerCommand("_executeDocumentSymbolProvider",(function(e,...t){return Ou(this,void 0,void 0,(function*(){const[i]=t;(0,$i.p_)(ct.o.isUri(i));const n=e.get(Au),o=e.get(jn.S),s=yield o.createModelReference(i);try{return(yield n.getOrCreate(s.object.textEditorModel,it.T.None)).getTopLevelSymbols()}finally{s.dispose()}}))}));const Pu="editor.action.inlineSuggest.commit";var Fu=i(7988);class Bu{constructor(e){this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let t=0;t{const t=ye.e.lift(e.range);return{startOffset:i.getOffset(t.getStartPosition()),endOffset:i.getOffset(t.getEndPosition()),text:e.text}}));n.sort(((e,t)=>t.startOffset-e.startOffset));for(const o of n)e=e.substring(0,o.startOffset)+o.text+e.substring(o.endOffset);return e}(e.substr(0,t.column-1),this.parts.map((e=>({range:{startLineNumber:1,endLineNumber:1,startColumn:e.column,endColumn:e.column},text:e.lines.join("\n")})))).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every((e=>0===e.lines.length))}}class Hu{constructor(e,t,i){this.column=e,this.lines=t,this.preview=i}}class zu{constructor(e,t,i,n,o=0){this.lineNumber=e,this.columnStart=t,this.length=i,this.newLines=n,this.additionalReservedLineCount=o,this.parts=[new Hu(this.columnStart+this.length,this.newLines,!1)]}renderForScreenReader(e){return this.newLines.join("\n")}}class ju extends Ce.JT{constructor(e){super(),this.editor=e,this._expanded=void 0,this.onDidChangeEmitter=new Yt.Q5,this.onDidChange=this.onDidChangeEmitter.event,this._register(e.onDidChangeConfiguration((e=>{e.hasChanged(108)&&void 0===this._expanded&&this.onDidChangeEmitter.fire()})))}setExpanded(e){this._expanded=!0,this.onDidChangeEmitter.fire()}}var Ku=i(22571);function Uu(e,t){if(!t)return t;const i=e.getValueInRange(t.range),n=ot.Mh(i,t.insertText),o=e.getOffsetAt(t.range.getStartPosition())+n,s=e.getPositionAt(o),r=i.substr(n),a=ot.P1(r,t.insertText),l=e.getPositionAt(Math.max(o,e.getOffsetAt(t.range.getEndPosition())-a));return{range:ye.e.fromPositions(s,l),insertText:t.insertText.substr(n,t.insertText.length-n-a),snippetInfo:t.snippetInfo,filterText:t.filterText,additionalTextEdits:t.additionalTextEdits}}function $u(e,t,i,n,o=0){if(e.range.startLineNumber!==e.range.endLineNumber)return;const s=t.getLineContent(e.range.startLineNumber),r=ot.V8(s).length;if(e.range.startColumn-1<=r){const t=ot.V8(e.insertText).length,i=s.substring(e.range.startColumn-1,r),n=ye.e.fromPositions(e.range.getStartPosition().delta(0,i.length),e.range.getEndPosition()),o=e.insertText.startsWith(i)?e.insertText.substring(i.length):e.insertText.substring(t);e={range:n,insertText:o,command:e.command,snippetInfo:void 0,filterText:e.filterText,additionalTextEdits:e.additionalTextEdits}}const a=t.getValueInRange(e.range),l=function(e,t){if((null==qu?void 0:qu.originalValue)===e&&(null==qu?void 0:qu.newValue)===t)return null==qu?void 0:qu.changes;{let i=Qu(e,t,!0);if(i){const n=Gu(i);if(n>0){const o=Qu(e,t,!1);o&&Gu(o)0===e.originalLength));if(e.length>1||1===e.length&&e[0].originalStart!==a.length)return}const h=e.insertText.length-o;for(const u of l){const t=e.range.startColumn+u.originalStart+u.originalLength;if("subwordSmart"===i&&n&&n.lineNumber===e.range.startLineNumber&&t0)return;if(0===u.modifiedLength)continue;const o=u.modifiedStart+u.modifiedLength,s=Math.max(u.modifiedStart,Math.min(o,h)),r=e.insertText.substring(u.modifiedStart,s),a=e.insertText.substring(s,Math.max(u.modifiedStart,o));if(r.length>0){const e=ot.uq(r);d.push(new Hu(t,e,!1))}if(a.length>0){const e=ot.uq(a);d.push(new Hu(t,e,!0))}}return new Wu(c,d,0)}let qu;function Gu(e){let t=0;for(const i of e)t+=Math.max(i.originalLength-i.modifiedLength,0);return t}function Qu(e,t,i){if(e.length>5e3||t.length>5e3)return;function n(e){let t=0;for(let i=0,n=e.length;it&&(t=n)}return t}const o=Math.max(n(e),n(t));function s(e){if(e<0)throw new Error("unexpected");return o+e+1}function r(e){let t=0,n=0;const o=new Int32Array(e.length);for(let r=0,a=e.length;ra},{getElements:()=>l}).ComputeDiff(!1).changes}var Zu=i(35382),Yu=i(45035),Ju=i(64837),Xu=i(61761),eg=i(6735);class tg{constructor(e){this.lines=e,this.tokenization={getLineTokens:e=>this.lines[e-1]}}getLineCount(){return this.lines.length}getLineLength(e){return this.lines[e-1].getLineContent().length}}var ig=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ng=function(e,t){return function(i,n){t(i,n,e)}},og=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let sg=class extends Ce.JT{constructor(e,t,i,n,o,s,r){super(),this.editor=e,this.cache=t,this.commandService=i,this.languageConfigurationService=n,this.languageFeaturesService=o,this.debounceService=s,this.onDidChangeEmitter=new Yt.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.completionSession=this._register(new Ce.XK),this.active=!1,this.disposed=!1,this.debounceValue=this.debounceService.for(this.languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this._register(i.onDidExecuteCommand((t=>{new Set([ee.wk.Tab.id,ee.wk.DeleteLeft.id,ee.wk.DeleteRight.id,Pu,"acceptSelectedSuggestion"]).has(t.commandId)&&e.hasTextFocus()&&this.handleUserInput()}))),this._register(this.editor.onDidType((e=>{this.handleUserInput()}))),this._register(this.editor.onDidChangeCursorPosition((e=>{(3===e.reason||this.session&&!this.session.isValid)&&this.hide()}))),this._register((0,Ce.OF)((()=>{this.disposed=!0}))),this._register(this.editor.onDidBlurEditorWidget((()=>{r.getValue("editor.inlineSuggest.hideOnBlur")||this.hide()})))}handleUserInput(){this.session&&!this.session.isValid&&this.hide(),setTimeout((()=>{this.disposed||this.startSessionIfTriggered()}),0)}get session(){return this.completionSession.value}get ghostText(){var e;return null===(e=this.session)||void 0===e?void 0:e.ghostText}get minReservedLineCount(){return this.session?this.session.minReservedLineCount:0}setExpanded(e){var t;null===(t=this.session)||void 0===t||t.setExpanded(e)}setActive(e){var t;this.active=e,e&&(null===(t=this.session)||void 0===t||t.scheduleAutomaticUpdate())}startSessionIfTriggered(){this.editor.getOption(57).enabled&&(this.session&&this.session.isValid||this.trigger(Wo.bw.Automatic))}trigger(e){this.completionSession.value?e===Wo.bw.Explicit&&this.completionSession.value.ensureUpdateWithExplicitContext():(this.completionSession.value=new rg(this.editor,this.editor.getPosition(),(()=>this.active),this.commandService,this.cache,e,this.languageConfigurationService,this.languageFeaturesService.inlineCompletionsProvider,this.debounceValue),this.completionSession.value.takeOwnership(this.completionSession.value.onDidChange((()=>{this.onDidChangeEmitter.fire()}))))}hide(){this.completionSession.clear(),this.onDidChangeEmitter.fire()}commitCurrentSuggestion(){var e;null===(e=this.session)||void 0===e||e.commitCurrentCompletion()}showNext(){var e;null===(e=this.session)||void 0===e||e.showNextInlineCompletion()}showPrevious(){var e;null===(e=this.session)||void 0===e||e.showPreviousInlineCompletion()}hasMultipleInlineCompletions(){var e;return og(this,void 0,void 0,(function*(){const t=yield null===(e=this.session)||void 0===e?void 0:e.hasMultipleInlineCompletions();return void 0!==t&&t}))}};sg=ig([ng(2,ut.Hy),ng(3,Xn.c_),ng(4,rt.p),ng(5,un.A),ng(6,Pt.Ui)],sg);class rg extends ju{constructor(e,t,i,n,o,s,r,a,l){let c;super(e),this.triggerPosition=t,this.shouldUpdate=i,this.commandService=n,this.cache=o,this.initialTriggerKind=s,this.languageConfigurationService=r,this.registry=a,this.debounce=l,this.minReservedLineCount=0,this.updateOperation=this._register(new Ce.XK),this.updateSoon=this._register(new be.pY((()=>{const e=this.initialTriggerKind;return this.initialTriggerKind=Wo.bw.Automatic,this.update(e)}),50)),this.filteredCompletions=[],this.currentlySelectedCompletionId=void 0,this._register(this.onDidChange((()=>{var e;const t=this.currentCompletion;if(t&&t.sourceInlineCompletion!==c){c=t.sourceInlineCompletion;const i=t.sourceProvider;null===(e=i.handleItemDidShow)||void 0===e||e.call(i,t.sourceInlineCompletions,c)}}))),this._register((0,Ce.OF)((()=>{this.cache.clear()}))),this._register(this.editor.onDidChangeCursorPosition((e=>{var t;3!==e.reason&&(null===(t=this.cache.value)||void 0===t||t.updateRanges(),this.cache.value&&(this.updateFilteredInlineCompletions(),this.onDidChangeEmitter.fire()))}))),this._register(this.editor.onDidChangeModelContent((e=>{var t;null===(t=this.cache.value)||void 0===t||t.updateRanges(),this.updateFilteredInlineCompletions(),this.scheduleAutomaticUpdate()}))),this._register(this.registry.onDidChange((()=>{this.updateSoon.schedule(this.debounce.get(this.editor.getModel()))}))),this.scheduleAutomaticUpdate()}updateFilteredInlineCompletions(){if(!this.cache.value)return void(this.filteredCompletions=[]);const e=this.editor.getModel(),t=e.validatePosition(this.editor.getPosition());this.filteredCompletions=this.cache.value.completions.filter((i=>{const n=e.getValueInRange(i.synchronizedRange).toLowerCase(),o=i.inlineCompletion.filterText.toLowerCase(),s=e.getLineIndentColumn(i.synchronizedRange.startLineNumber),r=Math.max(0,t.column-i.synchronizedRange.startColumn);let a=o.substring(0,r),l=o.substring(r),c=n.substring(0,r),d=n.substring(r);return i.synchronizedRange.startColumn<=s&&(c=c.trimStart(),0===c.length&&(d=d.trimStart()),a=a.trimStart(),0===a.length&&(l=l.trimStart())),a.startsWith(c)&&(0,es.Sy)(d,l)}))}fixAndGetIndexOfCurrentSelection(){if(!this.currentlySelectedCompletionId||!this.cache.value)return 0;if(0===this.cache.value.completions.length)return 0;const e=this.filteredCompletions.findIndex((e=>e.semanticId===this.currentlySelectedCompletionId));return-1===e?(this.currentlySelectedCompletionId=void 0,0):e}get currentCachedCompletion(){if(this.cache.value)return this.filteredCompletions[this.fixAndGetIndexOfCurrentSelection()]}showNextInlineCompletion(){return og(this,void 0,void 0,(function*(){yield this.ensureUpdateWithExplicitContext();const e=this.filteredCompletions||[];if(e.length>0){const t=(this.fixAndGetIndexOfCurrentSelection()+1)%e.length;this.currentlySelectedCompletionId=e[t].semanticId}else this.currentlySelectedCompletionId=void 0;this.onDidChangeEmitter.fire()}))}showPreviousInlineCompletion(){return og(this,void 0,void 0,(function*(){yield this.ensureUpdateWithExplicitContext();const e=this.filteredCompletions||[];if(e.length>0){const t=(this.fixAndGetIndexOfCurrentSelection()+e.length-1)%e.length;this.currentlySelectedCompletionId=e[t].semanticId}else this.currentlySelectedCompletionId=void 0;this.onDidChangeEmitter.fire()}))}ensureUpdateWithExplicitContext(){var e;return og(this,void 0,void 0,(function*(){this.updateOperation.value?this.updateOperation.value.triggerKind===Wo.bw.Explicit?yield this.updateOperation.value.promise:yield this.update(Wo.bw.Explicit):(null===(e=this.cache.value)||void 0===e?void 0:e.triggerKind)!==Wo.bw.Explicit&&(yield this.update(Wo.bw.Explicit))}))}hasMultipleInlineCompletions(){var e;return og(this,void 0,void 0,(function*(){return yield this.ensureUpdateWithExplicitContext(),((null===(e=this.cache.value)||void 0===e?void 0:e.completions.length)||0)>1}))}get ghostText(){const e=this.currentCompletion;if(!e)return;const t=this.editor.getPosition();if(e.range.getEndPosition().isBefore(t))return;const i=this.editor.getOptions().get(57).mode,n=$u(e,this.editor.getModel(),i,t);if(n){if(n.isEmpty())return;return n}return new zu(e.range.startLineNumber,e.range.startColumn,e.range.endColumn-e.range.startColumn,e.insertText.split("\n"),0)}get currentCompletion(){const e=this.currentCachedCompletion;if(e)return e.toLiveInlineCompletion()}get isValid(){return this.editor.getPosition().lineNumber===this.triggerPosition.lineNumber}scheduleAutomaticUpdate(){this.updateOperation.clear(),this.updateSoon.schedule(this.debounce.get(this.editor.getModel()))}update(e){return og(this,void 0,void 0,(function*(){if(!this.shouldUpdate())return;const t=this.editor.getPosition(),i=new Date,n=(0,be.PG)((n=>og(this,void 0,void 0,(function*(){let o;try{o=yield dg(this.registry,t,this.editor.getModel(),{triggerKind:e,selectedSuggestionInfo:void 0},n,this.languageConfigurationService);const s=new Date;this.debounce.update(this.editor.getModel(),s.getTime()-i.getTime())}catch(s){return void(0,lt.dL)(s)}n.isCancellationRequested||(this.cache.setValue(this.editor,o,e),this.updateFilteredInlineCompletions(),this.onDidChangeEmitter.fire())})))),o=new ag(n,e);this.updateOperation.value=o,yield n,this.updateOperation.value===o&&this.updateOperation.clear()}))}takeOwnership(e){this._register(e)}commitCurrentCompletion(){if(!this.ghostText)return;const e=this.currentCompletion;e&&this.commit(e)}commit(e){var t;const i=this.cache.clearAndLeak();e.snippetInfo?(this.editor.executeEdits("inlineSuggestion.accept",[tc.h.replaceMove(e.range,""),...e.additionalTextEdits]),this.editor.setPosition(e.snippetInfo.range.getStartPosition()),null===(t=Lc.get(this.editor))||void 0===t||t.insert(e.snippetInfo.snippet)):this.editor.executeEdits("inlineSuggestion.accept",[tc.h.replaceMove(e.range,e.insertText),...e.additionalTextEdits]),e.command?this.commandService.executeCommand(e.command.id,...e.command.arguments||[]).finally((()=>{null==i||i.dispose()})).then(void 0,lt.Cp):null==i||i.dispose(),this.onDidChangeEmitter.fire()}get commands(){var e;return[...new Set((null===(e=this.cache.value)||void 0===e?void 0:e.completions.map((e=>e.inlineCompletion.sourceInlineCompletions)))||[])].flatMap((e=>e.commands||[]))}}class ag{constructor(e,t){this.promise=e,this.triggerKind=t}dispose(){this.promise.cancel()}}class lg extends Ce.JT{constructor(e,t,i,n){super(),this.editor=t,this.onChange=i,this.triggerKind=n,this.isDisposing=!1;const o=t.changeDecorations((t=>t.deltaDecorations([],e.items.map((e=>({range:e.range,options:{description:"inline-completion-tracking-range"}}))))));this._register((0,Ce.OF)((()=>{this.isDisposing=!0,t.removeDecorations(o)}))),this.completions=e.items.map(((e,t)=>new cg(e,o[t]))),this._register(t.onDidChangeModelContent((()=>{this.updateRanges()}))),this._register(e)}updateRanges(){if(this.isDisposing)return;let e=!1;const t=this.editor.getModel();for(const i of this.completions){const n=t.getDecorationRange(i.decorationId);n?i.synchronizedRange.equalsRange(n)||(e=!0,i.synchronizedRange=n):(0,lt.dL)(new Error("Decoration has no range"))}e&&this.onChange()}}class cg{constructor(e,t){this.inlineCompletion=e,this.decorationId=t,this.semanticId=JSON.stringify({text:this.inlineCompletion.insertText,abbreviation:this.inlineCompletion.filterText,startLine:this.inlineCompletion.range.startLineNumber,startColumn:this.inlineCompletion.range.startColumn,command:this.inlineCompletion.command}),this.synchronizedRange=e.range}toLiveInlineCompletion(){return{insertText:this.inlineCompletion.insertText,range:this.synchronizedRange,command:this.inlineCompletion.command,sourceProvider:this.inlineCompletion.sourceProvider,sourceInlineCompletions:this.inlineCompletion.sourceInlineCompletions,sourceInlineCompletion:this.inlineCompletion.sourceInlineCompletion,snippetInfo:this.inlineCompletion.snippetInfo,filterText:this.inlineCompletion.filterText,additionalTextEdits:this.inlineCompletion.additionalTextEdits}}}function dg(e,t,i,n,o=it.T.None,s){return og(this,void 0,void 0,(function*(){const r=function(e,t){const i=t.getWordAtPosition(e),n=t.getLineMaxColumn(e.lineNumber);return i?new ye.e(e.lineNumber,i.startColumn,e.lineNumber,n):ye.e.fromPositions(e,e.with(void 0,n))}(t,i),a=e.all(i),l=yield Promise.all(a.map((e=>og(this,void 0,void 0,(function*(){const s=yield Promise.resolve(e.provideInlineCompletions(i,t,n,o)).catch(lt.Cp);return{completions:s,provider:e,dispose:()=>{s&&e.freeInlineCompletions(s)}}}))))),c=new Map;for(const e of l){const t=e.completions;if(t)for(const n of t.items){let o,a,l=n.range?ye.e.lift(n.range):r;if(l.startLineNumber!==l.endLineNumber)continue;if("string"==typeof n.insertText){if(o=n.insertText,s&&n.completeBracketPairs){o=hg(o,l.getStartPosition(),i,s);const e=o.length-n.insertText.length;0!==e&&(l=new ye.e(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+e))}a=void 0}else if("snippet"in n.insertText){o=(new Mr).parse(n.insertText.snippet).toString(),a={snippet:n.insertText.snippet,range:l}}else(0,$i.vE)(n.insertText);const d={insertText:o,snippetInfo:a,range:l,command:n.command,sourceProvider:e.provider,sourceInlineCompletions:t,sourceInlineCompletion:n,filterText:n.filterText||o,additionalTextEdits:n.additionalTextEdits||Vu};c.set(JSON.stringify({insertText:o,range:n.range}),d)}}return{items:[...c.values()],dispose:()=>{for(const e of l)e.dispose()}}}))}function hg(e,t,i,n){const o=i.getLineContent(t.lineNumber).substring(0,t.column-1)+e,s=i.tokenization.tokenizeLineWithEdit(t,o.length-(t.column-1),e),r=null==s?void 0:s.sliceAndInflate(t.column-1,o.length,0);if(!r)return e;const a=function(e,t){const i=new Xu.FE,n=new Zu.Z(i,(e=>t.getLanguageConfiguration(e))),o=new eg.xH(new tg([e]),n),s=(0,Ju.w)(o,[],void 0,!0);let r="";const a=e.getLineContent();return function e(t,i){if(2===t.kind)if(e(t.openingBracket,i),i=(0,Yu.Ii)(i,t.openingBracket.length),t.child&&(e(t.child,i),i=(0,Yu.Ii)(i,t.child.length)),t.closingBracket)e(t.closingBracket,i),i=(0,Yu.Ii)(i,t.closingBracket.length);else{const e=n.getSingleLanguageBracketTokens(t.openingBracket.languageId).findClosingTokenText(t.openingBracket.bracketIds);r+=e}else if(3===t.kind);else if(0===t.kind||1===t.kind)r+=a.substring((0,Yu.F_)(i),(0,Yu.F_)((0,Yu.Ii)(i,t.length)));else if(4===t.kind)for(const n of t.children)e(n,i),i=(0,Yu.Ii)(i,n.length)}(s,Yu.xl),r}(r,n);return a}var ug=i(8313),gg=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},pg=function(e,t){return function(i,n){t(i,n,e)}};class mg{constructor(e){this.name=e}select(e,t,i){if(0===i.length)return 0;const n=i[0].score[0];for(let o=0;othis._saveState()),500),this._disposables.add(e.onWillSaveState((e=>{e.reason===Xi.fk.SHUTDOWN&&this._saveState()})))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,i){this._withStrategy(e,t).memorize(e,t,i),this._persistSoon.schedule()}select(e,t,i){return this._withStrategy(e,t).select(e,t,i)}_withStrategy(t,i){var n;const o=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:t.getLanguageIdAtPosition(i.lineNumber,i.column),resource:t.uri});if((null===(n=this._strategy)||void 0===n?void 0:n.name)!==o){this._saveState();const t=e._strategyCtors.get(o)||fg;this._strategy=new t;try{const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=this._storageService.get(`${e._storagePrefix}/${o}`,t);i&&this._strategy.fromJSON(JSON.parse(i))}catch(s){}}return this._strategy}_saveState(){if(this._strategy){const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=JSON.stringify(this._strategy);this._storageService.store(`${e._storagePrefix}/${this._strategy.name}`,i,t,1)}}};_g._strategyCtors=new Map([["recentlyUsedByPrefix",class extends mg{constructor(){super("recentlyUsedByPrefix"),this._trie=Yi.Id.forStrings(),this._seq=0}memorize(e,t,i){const{word:n}=e.getWordUntilPosition(t),o=`${e.getLanguageId()}/${n}`;this._trie.set(o,{type:i.completion.kind,insertText:i.completion.insertText,touch:this._seq++})}select(e,t,i){const{word:n}=e.getWordUntilPosition(t);if(!n)return super.select(e,t,i);const o=`${e.getLanguageId()}/${n}`;let s=this._trie.get(o);if(s||(s=this._trie.findSubstr(o)),s)for(let r=0;re.push([i,t]))),e.sort(((e,t)=>-(e[1].touch-t[1].touch))).forEach(((e,t)=>e[1].touch=t)),e.slice(0,200)}fromJSON(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(const[t,i]of e)i.type="number"==typeof i.type?i.type:Wo.gX.fromString(i.type),this._trie.set(t,i)}}}],["recentlyUsed",class extends mg{constructor(){super("recentlyUsed"),this._cache=new Yi.z6(300,.66),this._seq=0}memorize(e,t,i){const n=`${e.getLanguageId()}/${i.textLabel}`;this._cache.set(n,{touch:this._seq++,type:i.completion.kind,insertText:i.completion.insertText})}select(e,t,i){if(0===i.length)return 0;const n=e.getLineContent(t.lineNumber).substr(t.column-10,t.column-1);if(/\s$/.test(n))return super.select(e,t,i);const o=i[0].score[0];let s=-1,r=-1,a=-1;for(let l=0;la&&n.type===i[l].completion.kind&&n.insertText===i[l].completion.insertText&&(a=n.touch,r=l),i[l].completion.preselect&&-1===s)return l}return-1!==r?r:-1!==s?s:0}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();for(const[t,i]of e)i.touch=0,i.type="number"==typeof i.type?i.type:Wo.gX.fromString(i.type),this._cache.set(t,i);this._seq=this._cache.size}}],["first",fg]]),_g._storagePrefix="suggest/memories",_g=gg([pg(0,Xi.Uy),pg(1,Pt.Ui)],_g);const vg=(0,Mt.yh)("ISuggestMemories");(0,Ji.z)(vg,_g,!0);var bg=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Cg=function(e,t){return function(i,n){t(i,n,e)}};let wg=class e{constructor(t,i){this._editor=t,this._enabled=!1,this._ckAtEnd=e.AtEnd.bindTo(i),this._configListener=this._editor.onDidChangeConfiguration((e=>e.hasChanged(113)&&this._update())),this._update()}dispose(){var e;this._configListener.dispose(),null===(e=this._selectionListener)||void 0===e||e.dispose(),this._ckAtEnd.reset()}_update(){const e="on"===this._editor.getOption(113);if(this._enabled!==e)if(this._enabled=e,this._enabled){const e=()=>{if(!this._editor.hasModel())return void this._ckAtEnd.set(!1);const e=this._editor.getModel(),t=this._editor.getSelection(),i=e.getWordAtPosition(t.getStartPosition());i?this._ckAtEnd.set(i.endColumn===t.getStartPosition().column):this._ckAtEnd.set(!1)};this._selectionListener=this._editor.onDidChangeCursorSelection(e),e()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};wg.AtEnd=new ce.uy("atEndOfWord",!1),wg=bg([Cg(1,ce.i6)],wg);var yg=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Sg=function(e,t){return function(i,n){t(i,n,e)}};let Lg=class e{constructor(t,i){this._editor=t,this._index=0,this._ckOtherSuggestions=e.OtherSuggestions.bindTo(i)}dispose(){this.reset()}reset(){var e;this._ckOtherSuggestions.reset(),null===(e=this._listener)||void 0===e||e.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:t,index:i},n){if(0===t.items.length)return void this.reset();e._moveIndex(!0,t,i)!==i?(this._acceptNext=n,this._model=t,this._index=i,this._listener=this._editor.onDidChangeCursorPosition((()=>{this._ignore||this.reset()})),this._ckOtherSuggestions.set(!0)):this.reset()}static _moveIndex(e,t,i){let n=i;for(;n=(n+t.items.length+(e?1:-1))%t.items.length,n!==i&&t.items[n].completion.additionalTextEdits;);return n}next(){this._move(!0)}prev(){this._move(!1)}_move(t){if(this._model)try{this._ignore=!0,this._index=e._moveIndex(t,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};Lg.OtherSuggestions=new ce.uy("hasOtherSuggestions",!1),Lg=yg([Sg(1,ce.i6)],Lg);class kg{constructor(e,t,i){this._disposables=new Ce.SL,this._disposables.add(t.onDidShow((()=>this._onItem(t.getFocusedItem())))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType((n=>{if(this._active&&!t.isFrozen()){const t=n.charCodeAt(n.length-1);this._active.acceptCharacters.has(t)&&e.getOption(0)&&i(this._active.item)}})))}_onItem(e){if(!e||!(0,at.Of)(e.item.completion.commitCharacters))return void this.reset();if(this._active&&this._active.item.item===e.item)return;const t=new pu.q;for(const i of e.item.completion.commitCharacters)i.length>0&&t.add(i.charCodeAt(0));this._active={acceptCharacters:t,item:e}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}var xg=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class Dg{provideSelectionRanges(e,t){return xg(this,void 0,void 0,(function*(){const i=[];for(const n of t){const t=[];i.push(t);const o=new Map;yield new Promise((t=>Dg._bracketsRightYield(t,0,e,n,o))),yield new Promise((i=>Dg._bracketsLeftYield(i,0,e,n,o,t)))}return i}))}static _bracketsRightYield(e,t,i,n,o){const s=new Map,r=Date.now();for(;;){if(t>=Dg._maxRounds){e();break}if(!n){e();break}const a=i.bracketPairs.findNextBracket(n);if(!a){e();break}if(Date.now()-r>Dg._maxDuration){setTimeout((()=>Dg._bracketsRightYield(e,t+1,i,n,o)));break}if(a.bracketInfo.isOpeningBracket){const e=a.bracketInfo.bracketText,t=s.has(e)?s.get(e):0;s.set(e,t+1)}else{const e=a.bracketInfo.getClosedBrackets()[0].bracketText;let t=s.has(e)?s.get(e):0;if(t-=1,s.set(e,Math.max(0,t)),t<0){let t=o.get(e);t||(t=new Ga.S,o.set(e,t)),t.push(a.range)}}n=a.range.getEndPosition()}}static _bracketsLeftYield(e,t,i,n,o,s){const r=new Map,a=Date.now();for(;;){if(t>=Dg._maxRounds&&0===o.size){e();break}if(!n){e();break}const l=i.bracketPairs.findPrevBracket(n);if(!l){e();break}if(Date.now()-a>Dg._maxDuration){setTimeout((()=>Dg._bracketsLeftYield(e,t+1,i,n,o,s)));break}if(l.bracketInfo.isOpeningBracket){const e=l.bracketInfo.bracketText;let t=r.has(e)?r.get(e):0;if(t-=1,r.set(e,Math.max(0,t)),t<0){const t=o.get(e);if(t){const n=t.shift();0===t.size&&o.delete(e);const r=ye.e.fromPositions(l.range.getEndPosition(),n.getStartPosition()),a=ye.e.fromPositions(l.range.getStartPosition(),n.getEndPosition());s.push({range:r}),s.push({range:a}),Dg._addBracketLeading(i,a,s)}}}else{const e=l.bracketInfo.getClosedBrackets()[0].bracketText,t=r.has(e)?r.get(e):0;r.set(e,t+1)}n=l.range.getStartPosition()}}static _addBracketLeading(e,t,i){if(t.startLineNumber===t.endLineNumber)return;const n=t.startLineNumber,o=e.getLineFirstNonWhitespaceColumn(n);0!==o&&o!==t.startColumn&&(i.push({range:ye.e.fromPositions(new we.L(n,o),t.getEndPosition())}),i.push({range:ye.e.fromPositions(new we.L(n,1),t.getEndPosition())}));const s=n-1;if(s>0){const n=e.getLineFirstNonWhitespaceColumn(s);n===t.startColumn&&n!==e.getLineLastNonWhitespaceColumn(s)&&(i.push({range:ye.e.fromPositions(new we.L(s,n),t.getEndPosition())}),i.push({range:ye.e.fromPositions(new we.L(s,1),t.getEndPosition())}))}}}Dg._maxDuration=30,Dg._maxRounds=2;var Ng=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class Eg{static create(e,t){return Ng(this,void 0,void 0,(function*(){if(!t.getOption(108).localityBonus)return Eg.None;if(!t.hasModel())return Eg.None;const i=t.getModel(),n=t.getPosition();if(!e.canComputeWordRanges(i.uri))return Eg.None;const[o]=yield(new Dg).provideSelectionRanges(i,[n]);if(0===o.length)return Eg.None;const s=yield e.computeWordRanges(i.uri,o[0].range);if(!s)return Eg.None;const r=i.getWordUntilPosition(n);return delete s[r.word],new class extends Eg{distance(e,i){if(!n.equals(t.getPosition()))return 0;if(17===i.kind)return 2<<20;const r="string"==typeof i.label?i.label:i.label.label,a=s[r];if((0,at.XY)(a))return 2<<20;const l=(0,at.ry)(a,ye.e.fromPositions(e),ye.e.compareRangesUsingStarts),c=l>=0?a[l]:a[Math.max(0,~l-1)];let d=o.length;for(const t of o){if(!ye.e.containsRange(t.range,c))break;d-=1}return d}}}))}}Eg.None=new class extends Eg{distance(){return 0}};class Ig{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}}class Tg{constructor(e,t,i,n,o,s,r=es.mX.default,a){this.clipboardText=a,this._snippetCompareFn=Tg._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=n,this._options=o,this._refilterKind=1,this._lineContext=i,this._fuzzyScoreOptions=r,"top"===s?this._snippetCompareFn=Tg._compareCompletionItemsSnippetsUp:"bottom"===s&&(this._snippetCompareFn=Tg._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(e){this._lineContext.leadingLineContent===e.leadingLineContent&&this._lineContext.characterCountDelta===e.characterCountDelta||(this._refilterKind=this._lineContext.characterCountDelta2e3?es.EW:es.l7;for(let l=0;l=h)c.score=es.CL.Default;else if("string"==typeof c.completion.filterText){const t=a(n,o,e,c.completion.filterText,c.filterTextLow,0,this._fuzzyScoreOptions);if(!t)continue;0===(0,ot.zY)(c.completion.filterText,c.textLabel)?c.score=t:(c.score=(0,es.jB)(n,o,e,c.textLabel,c.labelLow,0),c.score[0]=t[0])}else{const t=a(n,o,e,c.textLabel,c.labelLow,0,this._fuzzyScoreOptions);if(!t)continue;c.score=t}}c.idx=l,c.distance=this._wordDistance.distance(c.position,c.completion),r.push(c),e.push(c.textLabel.length)}this._filteredItems=r.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?(0,at.HW)(e.length-.85,e,((e,t)=>e-t)):0}}static _compareCompletionItems(e,t){return e.score[0]>t.score[0]?-1:e.score[0]t.distance?1:e.idxt.idx?1:0}static _compareCompletionItemsSnippetsDown(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return 1;if(27===t.completion.kind)return-1}return Tg._compareCompletionItems(e,t)}static _compareCompletionItemsSnippetsUp(e,t){if(e.completion.kind!==t.completion.kind){if(27===e.completion.kind)return-1;if(27===t.completion.kind)return 1}return Tg._compareCompletionItems(e,t)}}var Mg=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ag=function(e,t){return function(i,n){t(i,n,e)}},Rg=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class Og{constructor(e,t,i,n,o){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.auto=i,this.shy=n,this.noSelect=o}static shouldAutoTrigger(e){if(!e.hasModel())return!1;const t=e.getModel(),i=e.getPosition();t.tokenization.tokenizeIfCheap(i.lineNumber);const n=t.getWordAtPosition(i);return!!n&&(n.endColumn===i.column&&!!isNaN(Number(n.word)))}}let Pg=class e{constructor(e,t,i,n,o,s,r,a){this._editor=e,this._editorWorkerService=t,this._clipboardService=i,this._telemetryService=n,this._logService=o,this._contextKeyService=s,this._configurationService=r,this._languageFeaturesService=a,this._toDispose=new Ce.SL,this._triggerCharacterListener=new Ce.SL,this._triggerQuickSuggest=new be._F,this._state=0,this._completionDisposables=new Ce.SL,this._onDidCancel=new Yt.Q5,this._onDidTrigger=new Yt.Q5,this._onDidSuggest=new Yt.Q5,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new re.Y(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel((()=>{this._updateTriggerCharacters(),this.cancel()}))),this._toDispose.add(this._editor.onDidChangeModelLanguage((()=>{this._updateTriggerCharacters(),this.cancel()}))),this._toDispose.add(this._editor.onDidChangeConfiguration((()=>{this._updateTriggerCharacters()}))),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange((()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()})));let l=!1;this._toDispose.add(this._editor.onDidCompositionStart((()=>{l=!0}))),this._toDispose.add(this._editor.onDidCompositionEnd((()=>{l=!1,this._onCompositionEnd()}))),this._toDispose.add(this._editor.onDidChangeCursorSelection((e=>{l||this._onCursorChange(e)}))),this._toDispose.add(this._editor.onDidChangeModelContent((()=>{l||this._refilterCompletionItems()}))),this._updateTriggerCharacters()}dispose(){(0,Ce.B9)(this._triggerCharacterListener),(0,Ce.B9)([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(83)||!this._editor.hasModel()||!this._editor.getOption(111))return;const e=new Map;for(const i of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const t of i.triggerCharacters||[]){let n=e.get(t);n||(n=new Set,n.add(ia),e.set(t,n)),n.add(i)}const t=t=>{if(!function(e,t,i){if(!Boolean(t.getContextKeyValue("inlineSuggestionVisible")))return!0;const n=i.getValue("editor.inlineSuggest.allowSuggestOnTriggerCharacters");return void 0!==n&&Boolean(n)}(this._editor,this._contextKeyService,this._configurationService))return;if(Og.shouldAutoTrigger(this._editor))return;if(!t){const e=this._editor.getPosition();t=this._editor.getModel().getLineContent(e.lineNumber).substr(0,e.column-1)}let i="";(0,ot.YK)(t.charCodeAt(t.length-1))?(0,ot.ZG)(t.charCodeAt(t.length-2))&&(i=t.substr(t.length-2)):i=t.charAt(t.length-1);const n=e.get(i);if(n){const e=this._completionModel?{items:this._completionModel.adopt(n),clipboardText:this._completionModel.clipboardText}:void 0;this.trigger({auto:!0,shy:!1,noSelect:!1,triggerCharacter:i},Boolean(this._completionModel),n,e)}};this._triggerCharacterListener.add(this._editor.onDidType(t)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd((()=>t())))}get state(){return this._state}cancel(e=!1){var t;0!==this._state&&(this._triggerQuickSuggest.cancel(),null===(t=this._requestToken)||void 0===t||t.cancel(),this._requestToken=void 0,this._state=0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){0!==this._state&&(this._editor.hasModel()&&this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.trigger({auto:2===this._state,shy:!1,noSelect:!1},!0):this.cancel())}_onCursorChange(e){if(!this._editor.hasModel())return;const t=this._currentSelection;this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||0!==e.reason&&3!==e.reason||"keyboard"!==e.source&&"deleteLeft"!==e.source?this.cancel():0===this._state&&0===e.reason?(t.containsRange(this._currentSelection)||t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():0!==this._state&&3===e.reason&&this._refilterCompletionItems()}_onCompositionEnd(){0===this._state?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){var e;la.isAllOff(this._editor.getOption(81))||this._editor.getOption(108).snippetsPreventQuickSuggestions&&(null===(e=Lc.get(this._editor))||void 0===e?void 0:e.isInSnippet())||(this.cancel(),this._triggerQuickSuggest.cancelAndSet((()=>{if(0!==this._state)return;if(!Og.shouldAutoTrigger(this._editor))return;if(!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const e=this._editor.getModel(),t=this._editor.getPosition(),i=this._editor.getOption(81);if(!la.isAllOff(i)){if(!la.isAllOn(i)){e.tokenization.tokenizeIfCheap(t.lineNumber);const n=e.tokenization.getLineTokens(t.lineNumber),o=n.getStandardTokenType(n.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if("on"!==la.valueFor(i,o))return}(function(e,t,i){if(!Boolean(t.getContextKeyValue("inlineSuggestionVisible")))return!0;const n=i.getValue("editor.inlineSuggest.allowQuickSuggestions");return void 0!==n&&Boolean(n)})(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(e)&&this.trigger({auto:!0,shy:!1,noSelect:!1})}}),this._editor.getOption(82)))}_refilterCompletionItems(){Promise.resolve().then((()=>{if(0===this._state)return;if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getPosition(),i=new Og(e,t,2===this._state,!1,!1);this._onNewContext(i)}))}trigger(t,i=!1,n,o,s){var r;if(!this._editor.hasModel())return;const a=this._editor.getModel(),l=t.auto,c=new Og(a,this._editor.getPosition(),l,t.shy,t.noSelect);this.cancel(i),this._state=l?2:1,this._onDidTrigger.fire({auto:l,shy:t.shy,position:this._editor.getPosition()}),this._context=c;let d={triggerKind:null!==(r=t.triggerKind)&&void 0!==r?r:0};t.triggerCharacter&&(d={triggerKind:1,triggerCharacter:t.triggerCharacter}),this._requestToken=new it.A;const h=this._editor.getOption(103);let u=1;switch(h){case"top":u=0;break;case"bottom":u=2}const{itemKind:g,showDeprecated:p}=e._createSuggestFilter(this._editor),m=new ta(u,s?new Set:g,n,p),f=Eg.create(this._editorWorkerService,this._editor),_=oa(this._languageFeaturesService.completionProvider,a,this._editor.getPosition(),m,d,this._requestToken.token);Promise.all([_,f]).then((([e,i])=>Rg(this,void 0,void 0,(function*(){var n;if(null===(n=this._requestToken)||void 0===n||n.dispose(),!this._editor.hasModel())return;let s=null==o?void 0:o.clipboardText;if(!s&&e.needsClipboard&&(s=yield this._clipboardService.readText()),0===this._state)return;const r=this._editor.getModel();let a=e.items;if(o){const e=aa(u);a=a.concat(o.items).sort(e)}const c=new Og(r,this._editor.getPosition(),l,t.shy,t.noSelect);this._completionModel=new Tg(a,this._context.column,{leadingLineContent:c.leadingLineContent,characterCountDelta:c.column-this._context.column},i,this._editor.getOption(108),this._editor.getOption(103),void 0,s),this._completionDisposables.add(e.disposable),this._onNewContext(c),this._reportDurationsTelemetry(e.durations)})))).catch(lt.dL)}_reportDurationsTelemetry(e){this._telemetryGate++%230==0&&setTimeout((()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(e)}),this._logService.debug("suggest.durations.json",e)}))}static _createSuggestFilter(e){const t=new Set;"none"===e.getOption(103)&&t.add(27);const i=e.getOption(108);return i.showMethods||t.add(0),i.showFunctions||t.add(1),i.showConstructors||t.add(2),i.showFields||t.add(3),i.showVariables||t.add(4),i.showClasses||t.add(5),i.showStructs||t.add(6),i.showInterfaces||t.add(7),i.showModules||t.add(8),i.showProperties||t.add(9),i.showEvents||t.add(10),i.showOperators||t.add(11),i.showUnits||t.add(12),i.showValues||t.add(13),i.showConstants||t.add(14),i.showEnums||t.add(15),i.showEnumMembers||t.add(16),i.showKeywords||t.add(17),i.showWords||t.add(18),i.showColors||t.add(19),i.showFiles||t.add(20),i.showReferences||t.add(21),i.showColors||t.add(22),i.showFolders||t.add(23),i.showTypeParameters||t.add(24),i.showSnippets||t.add(27),i.showUsers||t.add(25),i.showIssues||t.add(26),{itemKind:t,showDeprecated:i.showDeprecated}}_onNewContext(e){if(this._context)if(e.lineNumber===this._context.lineNumber)if((0,ot.V8)(e.leadingLineContent)===(0,ot.V8)(this._context.leadingLineContent)){if(e.columnthis._context.leadingWord.startColumn){const e=new Set(this._languageFeaturesService.completionProvider.all(this._editor.getModel()));for(const i of this._completionModel.allProvider)e.delete(i);const t=this._completionModel.adopt(new Set);this.trigger({auto:this._context.auto,shy:!1,noSelect:!1},!0,e,{items:t,clipboardText:this._completionModel.clipboardText})}else if(e.column>this._context.column&&this._completionModel.incomplete.size>0&&0!==e.leadingWord.word.length){const{incomplete:e}=this._completionModel,t=this._completionModel.adopt(e);this.trigger({auto:2===this._state,shy:!1,noSelect:!1,triggerKind:2},!0,e,{items:t,clipboardText:this._completionModel.clipboardText})}else{const t=this._completionModel.lineContext;let i=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},0===this._completionModel.items.length){if(Og.shouldAutoTrigger(this._editor)&&this._context.leadingWord.endColumn0,i&&0===e.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this._completionModel,auto:this._context.auto,shy:this._context.shy,noSelect:this._context.noSelect,isFrozen:i})}}else this.cancel();else this.cancel()}};Pg=Mg([Ag(1,mu.p),Ag(2,je.p),Ag(3,Vt.b),Ag(4,ec.VZ),Ag(5,ce.i6),Ag(6,Pt.Ui),Ag(7,rt.p)],Pg);class Fg{constructor(e,t){this._disposables=new Ce.SL,this._lastOvertyped=[],this._empty=!0,this._disposables.add(e.onWillType((()=>{if(!this._empty)return;if(!e.hasModel())return;const t=e.getSelections(),i=t.length;let n=!1;for(let e=0;eFg._maxSelectionLength)return;this._lastOvertyped[e]={value:o.getValueInRange(i),multiline:i.startLineNumber!==i.endLineNumber}}this._empty=!1}))),this._disposables.add(t.onDidCancel((e=>{this._empty||e.retrigger||(this._empty=!0)})))}getLastOvertypedInfo(e){if(!this._empty&&e>=0&&e=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Wg=function(e,t){return function(i,n){t(i,n,e)}};class Hg extends yo{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();this.label&&(this.label.textContent=(0,le.NC)("ddd","{0} ({1})",this._action.label,Hg.symbolPrintEnter(e)))}static symbolPrintEnter(e){var t;return null===(t=e.getLabel())||void 0===t?void 0:t.replace(/\benter\b/gi,"\u23ce")}}let zg=class{constructor(e,t,i,n){this._menuService=i,this._contextKeyService=n,this._menuDisposables=new Ce.SL,this.element=At.R3(e,At.$(".suggest-status-bar"));const o=e=>e instanceof xe.U8?t.createInstance(Hg,e,void 0):void 0;this._leftActions=new Zn.o(this.element,{actionViewItemProvider:o}),this._rightActions=new Zn.o(this.element,{actionViewItemProvider:o}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this.element.remove()}show(){const e=this._menuService.createMenu(Xr,this._contextKeyService),t=()=>{const t=[],i=[];for(const[n,o]of e.getActions())"left"===n?t.push(...o):i.push(...o);this._leftActions.clear(),this._leftActions.push(t),this._rightActions.clear(),this._rightActions.push(i)};this._menuDisposables.add(e.onDidChange((()=>t()))),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};zg=Vg([Wg(1,Mt.TG),Wg(2,xe.co),Wg(3,ce.i6)],zg);const jg=(0,De.P6G)("symbolIcon.arrayForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.arrayForeground","The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),Kg=(0,De.P6G)("symbolIcon.booleanForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.booleanForeground","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),Ug=(0,De.P6G)("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,le.NC)("symbolIcon.classForeground","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),$g=(0,De.P6G)("symbolIcon.colorForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.colorForeground","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),qg=(0,De.P6G)("symbolIcon.constantForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.constantForeground","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),Gg=(0,De.P6G)("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,le.NC)("symbolIcon.constructorForeground","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),Qg=(0,De.P6G)("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,le.NC)("symbolIcon.enumeratorForeground","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),Zg=(0,De.P6G)("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,le.NC)("symbolIcon.enumeratorMemberForeground","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),Yg=(0,De.P6G)("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,le.NC)("symbolIcon.eventForeground","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),Jg=(0,De.P6G)("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,le.NC)("symbolIcon.fieldForeground","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),Xg=(0,De.P6G)("symbolIcon.fileForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.fileForeground","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),ep=(0,De.P6G)("symbolIcon.folderForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.folderForeground","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),tp=(0,De.P6G)("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,le.NC)("symbolIcon.functionForeground","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),ip=(0,De.P6G)("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,le.NC)("symbolIcon.interfaceForeground","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),np=(0,De.P6G)("symbolIcon.keyForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.keyForeground","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),op=(0,De.P6G)("symbolIcon.keywordForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.keywordForeground","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),sp=(0,De.P6G)("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,le.NC)("symbolIcon.methodForeground","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),rp=(0,De.P6G)("symbolIcon.moduleForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.moduleForeground","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),ap=(0,De.P6G)("symbolIcon.namespaceForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.namespaceForeground","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),lp=(0,De.P6G)("symbolIcon.nullForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.nullForeground","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),cp=(0,De.P6G)("symbolIcon.numberForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.numberForeground","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),dp=(0,De.P6G)("symbolIcon.objectForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.objectForeground","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),hp=(0,De.P6G)("symbolIcon.operatorForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.operatorForeground","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),up=(0,De.P6G)("symbolIcon.packageForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.packageForeground","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),gp=(0,De.P6G)("symbolIcon.propertyForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.propertyForeground","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),pp=(0,De.P6G)("symbolIcon.referenceForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.referenceForeground","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),mp=(0,De.P6G)("symbolIcon.snippetForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.snippetForeground","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),fp=(0,De.P6G)("symbolIcon.stringForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.stringForeground","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),_p=(0,De.P6G)("symbolIcon.structForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.structForeground","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),vp=(0,De.P6G)("symbolIcon.textForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.textForeground","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),bp=(0,De.P6G)("symbolIcon.typeParameterForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.typeParameterForeground","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),Cp=(0,De.P6G)("symbolIcon.unitForeground",{dark:De.dRz,light:De.dRz,hcDark:De.dRz,hcLight:De.dRz},(0,le.NC)("symbolIcon.unitForeground","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),wp=(0,De.P6G)("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,le.NC)("symbolIcon.variableForeground","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));(0,Ne.Ic)(((e,t)=>{const i=e.getColor(jg);i&&t.addRule(`${Zt.lA.symbolArray.cssSelector} { color: ${i}; }`);const n=e.getColor(Kg);n&&t.addRule(`${Zt.lA.symbolBoolean.cssSelector} { color: ${n}; }`);const o=e.getColor(Ug);o&&t.addRule(`${Zt.lA.symbolClass.cssSelector} { color: ${o}; }`);const s=e.getColor(sp);s&&t.addRule(`${Zt.lA.symbolMethod.cssSelector} { color: ${s}; }`);const r=e.getColor($g);r&&t.addRule(`${Zt.lA.symbolColor.cssSelector} { color: ${r}; }`);const a=e.getColor(qg);a&&t.addRule(`${Zt.lA.symbolConstant.cssSelector} { color: ${a}; }`);const l=e.getColor(Gg);l&&t.addRule(`${Zt.lA.symbolConstructor.cssSelector} { color: ${l}; }`);const c=e.getColor(Qg);c&&t.addRule(`\n\t\t\t${Zt.lA.symbolValue.cssSelector},${Zt.lA.symbolEnum.cssSelector} { color: ${c}; }`);const d=e.getColor(Zg);d&&t.addRule(`${Zt.lA.symbolEnumMember.cssSelector} { color: ${d}; }`);const h=e.getColor(Yg);h&&t.addRule(`${Zt.lA.symbolEvent.cssSelector} { color: ${h}; }`);const u=e.getColor(Jg);u&&t.addRule(`${Zt.lA.symbolField.cssSelector} { color: ${u}; }`);const g=e.getColor(Xg);g&&t.addRule(`${Zt.lA.symbolFile.cssSelector} { color: ${g}; }`);const p=e.getColor(ep);p&&t.addRule(`${Zt.lA.symbolFolder.cssSelector} { color: ${p}; }`);const m=e.getColor(tp);m&&t.addRule(`${Zt.lA.symbolFunction.cssSelector} { color: ${m}; }`);const f=e.getColor(ip);f&&t.addRule(`${Zt.lA.symbolInterface.cssSelector} { color: ${f}; }`);const _=e.getColor(np);_&&t.addRule(`${Zt.lA.symbolKey.cssSelector} { color: ${_}; }`);const v=e.getColor(op);v&&t.addRule(`${Zt.lA.symbolKeyword.cssSelector} { color: ${v}; }`);const b=e.getColor(rp);b&&t.addRule(`${Zt.lA.symbolModule.cssSelector} { color: ${b}; }`);const C=e.getColor(ap);C&&t.addRule(`${Zt.lA.symbolNamespace.cssSelector} { color: ${C}; }`);const w=e.getColor(lp);w&&t.addRule(`${Zt.lA.symbolNull.cssSelector} { color: ${w}; }`);const y=e.getColor(cp);y&&t.addRule(`${Zt.lA.symbolNumber.cssSelector} { color: ${y}; }`);const S=e.getColor(dp);S&&t.addRule(`${Zt.lA.symbolObject.cssSelector} { color: ${S}; }`);const L=e.getColor(hp);L&&t.addRule(`${Zt.lA.symbolOperator.cssSelector} { color: ${L}; }`);const k=e.getColor(up);k&&t.addRule(`${Zt.lA.symbolPackage.cssSelector} { color: ${k}; }`);const x=e.getColor(gp);x&&t.addRule(`${Zt.lA.symbolProperty.cssSelector} { color: ${x}; }`);const D=e.getColor(pp);D&&t.addRule(`${Zt.lA.symbolReference.cssSelector} { color: ${D}; }`);const N=e.getColor(mp);N&&t.addRule(`${Zt.lA.symbolSnippet.cssSelector} { color: ${N}; }`);const E=e.getColor(fp);E&&t.addRule(`${Zt.lA.symbolString.cssSelector} { color: ${E}; }`);const I=e.getColor(_p);I&&t.addRule(`${Zt.lA.symbolStruct.cssSelector} { color: ${I}; }`);const T=e.getColor(vp);T&&t.addRule(`${Zt.lA.symbolText.cssSelector} { color: ${T}; }`);const M=e.getColor(bp);M&&t.addRule(`${Zt.lA.symbolTypeParameter.cssSelector} { color: ${M}; }`);const A=e.getColor(Cp);A&&t.addRule(`${Zt.lA.symbolUnit.cssSelector} { color: ${A}; }`);const R=e.getColor(wp);R&&t.addRule(`${Zt.lA.symbolVariable.cssSelector} { color: ${R}; }`)}));class yp{constructor(){let e;this._onDidWillResize=new Yt.Q5,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new Yt.Q5,this.onDidResize=this._onDidResize.event,this._sashListener=new Ce.SL,this._size=new At.Ro(0,0),this._minSize=new At.Ro(0,0),this._maxSize=new At.Ro(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new no.g(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new no.g(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new no.g(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:no.l.North}),this._southSash=new no.g(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:no.l.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let t=0,i=0;this._sashListener.add(Yt.ju.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)((()=>{void 0===e&&(this._onDidWillResize.fire(),e=this._size,t=0,i=0)}))),this._sashListener.add(Yt.ju.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)((()=>{void 0!==e&&(e=void 0,t=0,i=0,this._onDidResize.fire({dimension:this._size,done:!0}))}))),this._sashListener.add(this._eastSash.onDidChange((n=>{e&&(i=n.currentX-n.startX,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))}))),this._sashListener.add(this._westSash.onDidChange((n=>{e&&(i=-(n.currentX-n.startX),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))}))),this._sashListener.add(this._northSash.onDidChange((n=>{e&&(t=-(n.currentY-n.startY),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))}))),this._sashListener.add(this._southSash.onDidChange((n=>{e&&(t=n.currentY-n.startY,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))}))),this._sashListener.add(Yt.ju.any(this._eastSash.onDidReset,this._westSash.onDidReset)((e=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))),this._sashListener.add(Yt.ju.any(this._northSash.onDidReset,this._southSash.onDidReset)((e=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))})))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(e,t,i,n){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=i?3:0,this._westSash.state=n?3:0}layout(e=this.size.height,t=this.size.width){const{height:i,width:n}=this._minSize,{height:o,width:s}=this._maxSize;e=Math.max(i,Math.min(o,e)),t=Math.max(n,Math.min(s,t));const r=new At.Ro(t,e);At.Ro.equals(r,this._size)||(this.domNode.style.height=e+"px",this.domNode.style.width=t+"px",this._size=r,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(e){this._maxSize=e}get maxSize(){return this._maxSize}set minSize(e){this._minSize=e}get minSize(){return this._minSize}set preferredSize(e){this._preferredSize=e}get preferredSize(){return this._preferredSize}}var Sp=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Lp=function(e,t){return function(i,n){t(i,n,e)}};function kp(e){return!!e&&Boolean(e.completion.documentation||e.completion.detail&&e.completion.detail!==e.completion.label)}let xp=class{constructor(e,t){this._editor=e,this._onDidClose=new Yt.Q5,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new Yt.Q5,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new Ce.SL,this._renderDisposeable=new Ce.SL,this._borderWidth=1,this._size=new At.Ro(330,0),this.domNode=At.$(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=t.createInstance(Ra,{editor:e}),this._body=At.$(".body"),this._scrollbar=new dr.s$(this._body,{alwaysConsumeMouseWheel:!0}),At.R3(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=At.R3(this._body,At.$(".header")),this._close=At.R3(this._header,At.$("span"+Zt.lA.close.cssSelector)),this._close.title=le.NC("details.close","Close"),this._type=At.R3(this._header,At.$("p.type")),this._docs=At.R3(this._body,At.$("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(46)&&this._configureFont()})))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const e=this._editor.getOptions(),t=e.get(46),i=t.getMassagedFontFamily(),n=e.get(109)||t.fontSize,o=e.get(110)||t.lineHeight,s=t.fontWeight,r=`${n}px`,a=`${o}px`;this.domNode.style.fontSize=r,this.domNode.style.lineHeight=""+o/n,this.domNode.style.fontWeight=s,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=i,this._close.style.height=a,this._close.style.width=a}getLayoutInfo(){const e=this._editor.getOption(110)||this._editor.getOption(46).lineHeight,t=this._borderWidth;return{lineHeight:e,borderWidth:t,borderHeight:2*t,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=le.NC("loading","Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,2*this.getLayoutInfo().lineHeight),this._onDidChangeContents.fire(this)}renderItem(e,t){var i,n;this._renderDisposeable.clear();let{detail:o,documentation:s}=e.completion;if(t){let t="";t+=`score: ${e.score[0]}\n`,t+=`prefix: ${null!==(i=e.word)&&void 0!==i?i:"(no prefix)"}\n`,t+=`word: ${e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel}\n`,t+=`distance: ${e.distance} (localityBonus-setting)\n`,t+=`index: ${e.idx}, based on ${e.completion.sortText&&`sortText: "${e.completion.sortText}"`||"label"}\n`,t+=`commit_chars: ${null===(n=e.completion.commitCharacters)||void 0===n?void 0:n.join("")}\n`,s=(new ne.W5).appendCodeblock("empty",t),o=`Provider: ${e.provider._debugDisplayName}`}if(t||kp(e)){if(this.domNode.classList.remove("no-docs","no-type"),o){const e=o.length>1e5?`${o.substr(0,1e5)}\u2026`:o;this._type.textContent=e,this._type.title=e,At.$Z(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gim.test(e))}else At.PO(this._type),this._type.title="",At.Cp(this._type),this.domNode.classList.add("no-type");if(At.PO(this._docs),"string"==typeof s)this._docs.classList.remove("markdown-docs"),this._docs.textContent=s;else if(s){this._docs.classList.add("markdown-docs"),At.PO(this._docs);const e=this._markdownRenderer.render(s);this._docs.appendChild(e.element),this._renderDisposeable.add(e),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync((()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)})))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=e=>{e.preventDefault(),e.stopPropagation()},this._close.onclick=e=>{e.preventDefault(),e.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}else this.clearContents()}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get size(){return this._size}layout(e,t){const i=new At.Ro(e,t);At.Ro.equals(i,this._size)||(this._size=i,At.dp(this.domNode,e,t)),this._scrollbar.scanDomNode()}scrollDown(e=8){this._body.scrollTop+=e}scrollUp(e=8){this._body.scrollTop-=e}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(e){this._borderWidth=e}get borderWidth(){return this._borderWidth}};xp=Sp([Lp(1,Mt.TG)],xp);class Dp{constructor(e,t){let i,n;this.widget=e,this._editor=t,this._disposables=new Ce.SL,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new yp,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(e.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let o=0,s=0;this._disposables.add(this._resizable.onDidWillResize((()=>{i=this._topLeft,n=this._resizable.size}))),this._disposables.add(this._resizable.onDidResize((e=>{if(i&&n){this.widget.layout(e.dimension.width,e.dimension.height);let t=!1;e.west&&(s=n.width-e.dimension.width,t=!0),e.north&&(o=n.height-e.dimension.height,t=!0),t&&this._applyTopLeft({top:i.top+o,left:i.left+s})}e.done&&(i=void 0,n=void 0,o=0,s=0,this._userSize=e.dimension)}))),this._disposables.add(this.widget.onDidChangeContents((()=>{var e;this._anchorBox&&this._placeAtAnchor(this._anchorBox,null!==(e=this._userSize)&&void 0!==e?e:this.widget.size,this._preferAlignAtTop)})))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return null}show(){this._added||(this._editor.addOverlayWidget(this),this.getDomNode().style.position="fixed",this._added=!0)}hide(e=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),e&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(e,t){var i;const n=e.getBoundingClientRect();this._anchorBox=n,this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,null!==(i=this._userSize)&&void 0!==i?i:this.widget.size,t)}_placeAtAnchor(e,t,i){var n;const o=At.D6(document.body),s=this.widget.getLayoutInfo(),r=new At.Ro(220,2*s.lineHeight),a=e.top,l=function(){const i=o.width-(e.left+e.width+s.borderWidth+s.horizontalPadding),n=-s.borderWidth+e.left+e.width,l=new At.Ro(i,o.height-e.top-s.borderHeight-s.verticalPadding),c=l.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:a,left:n,fit:i-t.width,maxSizeTop:l,maxSizeBottom:c,minSize:r.with(Math.min(i,r.width))}}(),c=[l,function(){const i=e.left-s.borderWidth-s.horizontalPadding,n=Math.max(s.horizontalPadding,e.left-t.width-s.borderWidth),l=new At.Ro(i,o.height-e.top-s.borderHeight-s.verticalPadding),c=l.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:a,left:n,fit:i-t.width,maxSizeTop:l,maxSizeBottom:c,minSize:r.with(Math.min(i,r.width))}}(),function(){const i=e.left,n=-s.borderWidth+e.top+e.height,a=new At.Ro(e.width-s.borderHeight,o.height-e.top-e.height-s.verticalPadding);return{top:n,left:i,fit:a.height-t.height,maxSizeBottom:a,maxSizeTop:a,minSize:r.with(a.width)}}()],d=null!==(n=c.find((e=>e.fit>=0)))&&void 0!==n?n:c.sort(((e,t)=>t.fit-e.fit))[0],h=e.top+e.height-s.borderHeight;let u,g=t.height;const p=Math.max(d.maxSizeTop.height,d.maxSizeBottom.height);let m;g>p&&(g=p),i?g<=d.maxSizeTop.height?(u=!0,m=d.maxSizeTop):(u=!1,m=d.maxSizeBottom):g<=d.maxSizeBottom.height?(u=!1,m=d.maxSizeBottom):(u=!0,m=d.maxSizeTop),this._applyTopLeft({left:d.left,top:u?d.top:h-g}),this.getDomNode().style.position="fixed",this._resizable.enableSashes(!u,d===l,u,d!==l),this._resizable.minSize=d.minSize,this._resizable.maxSize=m,this._resizable.layout(g,Math.min(m.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(e){this._topLeft=e,this.getDomNode().style.left=`${this._topLeft.left}px`,this.getDomNode().style.top=`${this._topLeft.top}px`}}var Np;!function(e){e[e.FILE=0]="FILE",e[e.FOLDER=1]="FOLDER",e[e.ROOT_FOLDER=2]="ROOT_FOLDER"}(Np||(Np={}));const Ep=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function Ip(e,t,i,n){const o=n===Np.ROOT_FOLDER?["rootfolder-icon"]:n===Np.FOLDER?["folder-icon"]:["file-icon"];if(i){let s;if(i.scheme===Qo.lg.data){s=ui.Vb.parseMetaData(i).get(ui.Vb.META_DATA_LABEL)}else{const e=i.path.match(Ep);e?(s=Tp(e[2].toLowerCase()),e[1]&&o.push(`${Tp(e[1].toLowerCase())}-name-dir-icon`)):s=Tp(i.authority.toLowerCase())}if(n===Np.FOLDER)o.push(`${s}-name-folder-icon`);else{if(s){if(o.push(`${s}-name-file-icon`),o.push("name-file-icon"),s.length<=255){const e=s.split(".");for(let t=1;t=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Rp=function(e,t){return function(i,n){t(i,n,e)}};function Op(e){return`suggest-aria-id:${e}`}const Pp=(0,il.q5)("suggest-more-info",Zt.lA.chevronRight,le.NC("suggestMoreInfoIcon","Icon for more information in the suggest widget.")),Fp=new((Mp=class e{extract(t,i){if(t.textLabel.match(e._regexStrict))return i[0]=t.textLabel,!0;if(t.completion.detail&&t.completion.detail.match(e._regexStrict))return i[0]=t.completion.detail,!0;if("string"==typeof t.completion.documentation){const n=e._regexRelaxed.exec(t.completion.documentation);if(n&&(0===n.index||n.index+n[0].length===t.completion.documentation.length))return i[0]=n[0],!0}return!1}})._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/,Mp._regexStrict=new RegExp(`^${Mp._regexRelaxed.source}$`,"i"),Mp);let Bp=class{constructor(e,t,i,n){this._editor=e,this._modelService=t,this._languageService=i,this._themeService=n,this._onDidToggleDetails=new Yt.Q5,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){const t=Object.create(null);t.disposables=new Ce.SL,t.root=e,t.root.classList.add("show-file-icons"),t.icon=(0,At.R3)(e,(0,At.$)(".icon")),t.colorspan=(0,At.R3)(t.icon,(0,At.$)("span.colorspan"));const i=(0,At.R3)(e,(0,At.$)(".contents")),n=(0,At.R3)(i,(0,At.$)(".main"));t.iconContainer=(0,At.R3)(n,(0,At.$)(".icon-label.codicon")),t.left=(0,At.R3)(n,(0,At.$)("span.left")),t.right=(0,At.R3)(n,(0,At.$)("span.right")),t.iconLabel=new Xo.g(t.left,{supportHighlights:!0,supportIcons:!0}),t.disposables.add(t.iconLabel),t.parametersLabel=(0,At.R3)(t.left,(0,At.$)("span.signature-label")),t.qualifierLabel=(0,At.R3)(t.left,(0,At.$)("span.qualifier-label")),t.detailsLabel=(0,At.R3)(t.right,(0,At.$)("span.details-label")),t.readMore=(0,At.R3)(t.right,(0,At.$)("span.readMore"+Ne.kS.asCSSSelector(Pp))),t.readMore.title=le.NC("readMore","Read More");const o=()=>{const e=this._editor.getOptions(),i=e.get(46),o=i.getMassagedFontFamily(),s=i.fontFeatureSettings,r=e.get(109)||i.fontSize,a=e.get(110)||i.lineHeight,l=i.fontWeight,c=`${r}px`,d=`${a}px`,h=`${i.letterSpacing}px`;t.root.style.fontSize=c,t.root.style.fontWeight=l,t.root.style.letterSpacing=h,n.style.fontFamily=o,n.style.fontFeatureSettings=s,n.style.lineHeight=d,t.icon.style.height=d,t.icon.style.width=d,t.readMore.style.height=d,t.readMore.style.width=d};return o(),t.disposables.add(this._editor.onDidChangeConfiguration((e=>{(e.hasChanged(46)||e.hasChanged(109)||e.hasChanged(110))&&o()}))),t}renderElement(e,t,i){const{completion:n}=e;i.root.id=Op(t),i.colorspan.style.backgroundColor="";const o={labelEscapeNewLines:!0,matches:(0,es.mB)(e.score)},s=[];if(19===n.kind&&Fp.extract(e,s))i.icon.className="icon customcolor",i.iconContainer.className="icon hide",i.colorspan.style.backgroundColor=s[0];else if(20===n.kind&&this._themeService.getFileIconTheme().hasFileIcons){i.icon.className="icon hide",i.iconContainer.className="icon hide";const t=Ip(this._modelService,this._languageService,ct.o.from({scheme:"fake",path:e.textLabel}),Np.FILE),s=Ip(this._modelService,this._languageService,ct.o.from({scheme:"fake",path:n.detail}),Np.FILE);o.extraClasses=t.length>s.length?t:s}else 23===n.kind&&this._themeService.getFileIconTheme().hasFolderIcons?(i.icon.className="icon hide",i.iconContainer.className="icon hide",o.extraClasses=[Ip(this._modelService,this._languageService,ct.o.from({scheme:"fake",path:e.textLabel}),Np.FOLDER),Ip(this._modelService,this._languageService,ct.o.from({scheme:"fake",path:n.detail}),Np.FOLDER)].flat()):(i.icon.className="icon hide",i.iconContainer.className="",i.iconContainer.classList.add("suggest-icon",...Zt.dT.asClassNameArray(Wo.gX.toIcon(n.kind))));n.tags&&n.tags.indexOf(1)>=0&&(o.extraClasses=(o.extraClasses||[]).concat(["deprecated"]),o.matches=[]),i.iconLabel.setLabel(e.textLabel,void 0,o),"string"==typeof n.label?(i.parametersLabel.textContent="",i.detailsLabel.textContent=Vp(n.detail||""),i.root.classList.add("string-label")):(i.parametersLabel.textContent=Vp(n.label.detail||""),i.detailsLabel.textContent=Vp(n.label.description||""),i.root.classList.remove("string-label")),this._editor.getOption(108).showInlineDetails?(0,At.$Z)(i.detailsLabel):(0,At.Cp)(i.detailsLabel),kp(e)?(i.right.classList.add("can-expand-details"),(0,At.$Z)(i.readMore),i.readMore.onmousedown=e=>{e.stopPropagation(),e.preventDefault()},i.readMore.onclick=e=>{e.stopPropagation(),e.preventDefault(),this._onDidToggleDetails.fire()}):(i.right.classList.remove("can-expand-details"),(0,At.Cp)(i.readMore),i.readMore.onmousedown=null,i.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};function Vp(e){return e.replace(/\r\n|\r|\n/g,"")}Bp=Ap([Rp(1,ht.q),Rp(2,zn.O),Rp(3,Ne.XE)],Bp);var Wp=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Hp=function(e,t){return function(i,n){t(i,n,e)}},zp=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};(0,De.P6G)("editorSuggestWidget.background",{dark:De.D0T,light:De.D0T,hcDark:De.D0T,hcLight:De.D0T},le.NC("editorSuggestWidgetBackground","Background color of the suggest widget.")),(0,De.P6G)("editorSuggestWidget.border",{dark:De.D1_,light:De.D1_,hcDark:De.D1_,hcLight:De.D1_},le.NC("editorSuggestWidgetBorder","Border color of the suggest widget."));const jp=(0,De.P6G)("editorSuggestWidget.foreground",{dark:De.NOs,light:De.NOs,hcDark:De.NOs,hcLight:De.NOs},le.NC("editorSuggestWidgetForeground","Foreground color of the suggest widget.")),Kp=((0,De.P6G)("editorSuggestWidget.selectedForeground",{dark:De.NPS,light:De.NPS,hcDark:De.NPS,hcLight:De.NPS},le.NC("editorSuggestWidgetSelectedForeground","Foreground color of the selected entry in the suggest widget.")),(0,De.P6G)("editorSuggestWidget.selectedIconForeground",{dark:De.cbQ,light:De.cbQ,hcDark:De.cbQ,hcLight:De.cbQ},le.NC("editorSuggestWidgetSelectedIconForeground","Icon foreground color of the selected entry in the suggest widget.")),(0,De.P6G)("editorSuggestWidget.selectedBackground",{dark:De.Vqd,light:De.Vqd,hcDark:De.Vqd,hcLight:De.Vqd},le.NC("editorSuggestWidgetSelectedBackground","Background color of the selected entry in the suggest widget.")));(0,De.P6G)("editorSuggestWidget.highlightForeground",{dark:De.Gwp,light:De.Gwp,hcDark:De.Gwp,hcLight:De.Gwp},le.NC("editorSuggestWidgetHighlightForeground","Color of the match highlights in the suggest widget.")),(0,De.P6G)("editorSuggestWidget.focusHighlightForeground",{dark:De.PX0,light:De.PX0,hcDark:De.PX0,hcLight:De.PX0},le.NC("editorSuggestWidgetFocusHighlightForeground","Color of the match highlights in the suggest widget when an item is focused.")),(0,De.P6G)("editorSuggestWidgetStatus.foreground",{dark:(0,De.ZnX)(jp,.5),light:(0,De.ZnX)(jp,.5),hcDark:(0,De.ZnX)(jp,.5),hcLight:(0,De.ZnX)(jp,.5)},le.NC("editorSuggestWidgetStatusForeground","Foreground color of the suggest widget status."));class Up{constructor(e,t){this._service=e,this._key=`suggestWidget.size/${t.getEditorType()}/${t instanceof io}`}restore(){var e;const t=null!==(e=this._service.get(this._key,0))&&void 0!==e?e:"";try{const e=JSON.parse(t);if(At.Ro.is(e))return At.Ro.lift(e)}catch(zs){}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}}let $p=class e{constructor(e,t,i,n,o){this.editor=e,this._storageService=t,this._state=0,this._isAuto=!1,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new be._F,this._disposables=new Ce.SL,this._onDidSelect=new Yt.Q5,this._onDidFocus=new Yt.Q5,this._onDidHide=new Yt.Q5,this._onDidShow=new Yt.Q5,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new Yt.Q5,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new yp,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new qp(this,e),this._persistedSize=new Up(t,e);class s{constructor(e,t,i=!1,n=!1){this.persistedSize=e,this.currentSize=t,this.persistHeight=i,this.persistWidth=n}}let r;this._disposables.add(this.element.onDidWillResize((()=>{this._contentWidget.lockPreference(),r=new s(this._persistedSize.restore(),this.element.size)}))),this._disposables.add(this.element.onDidResize((e=>{var t,i,n,o;if(this._resize(e.dimension.width,e.dimension.height),r&&(r.persistHeight=r.persistHeight||!!e.north||!!e.south,r.persistWidth=r.persistWidth||!!e.east||!!e.west),e.done){if(r){const{itemHeight:e,defaultSize:s}=this.getLayoutInfo(),a=Math.round(e/2);let{width:l,height:c}=this.element.size;(!r.persistHeight||Math.abs(r.currentSize.height-c)<=a)&&(c=null!==(i=null===(t=r.persistedSize)||void 0===t?void 0:t.height)&&void 0!==i?i:s.height),(!r.persistWidth||Math.abs(r.currentSize.width-l)<=a)&&(l=null!==(o=null===(n=r.persistedSize)||void 0===n?void 0:n.width)&&void 0!==o?o:s.width),this._persistedSize.store(new At.Ro(l,c))}this._contentWidget.unlockPreference(),r=void 0}}))),this._messageElement=At.R3(this.element.domNode,At.$(".message")),this._listElement=At.R3(this.element.domNode,At.$(".tree"));const a=o.createInstance(xp,this.editor);a.onDidClose(this.toggleDetails,this,this._disposables),this._details=new Dp(a,this.editor);const l=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(108).showIcons);l();const c=o.createInstance(Bp,this.editor);this._disposables.add(c),this._disposables.add(c.onDidToggleDetails((()=>this.toggleDetails()))),this._list=new Rt.aV("SuggestWidget",this._listElement,{getHeight:e=>this.getLayoutInfo().itemHeight,getTemplateId:e=>"suggestion"},[c],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>le.NC("suggest","Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:e=>{let t=e.textLabel;if("string"!=typeof e.completion.label){const{detail:i,description:n}=e.completion.label;i&&n?t=le.NC("label.full","{0}{1}, {2}",t,i,n):i?t=le.NC("label.detail","{0}{1}",t,i):n&&(t=le.NC("label.desc","{0}, {1}",t,n))}if(!e.isResolved||!this._isDetailsVisible())return t;const{documentation:i,detail:n}=e.completion,o=ot.WU("{0}{1}",n||"",i?"string"==typeof i?i:i.value:"");return le.NC("ariaCurrenttSuggestionReadDetails","{0}, docs: {1}",t,o)}}}),this._status=o.createInstance(zg,this.element.domNode);const d=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(108).showStatusBar);d(),this._disposables.add((0,is.Jl)(this._list,n,{listInactiveFocusBackground:Kp,listInactiveFocusOutline:De.xL1})),this._disposables.add(n.onDidColorThemeChange((e=>this._onThemeChange(e)))),this._onThemeChange(n.getColorTheme()),this._disposables.add(this._list.onMouseDown((e=>this._onListMouseDownOrTap(e)))),this._disposables.add(this._list.onTap((e=>this._onListMouseDownOrTap(e)))),this._disposables.add(this._list.onDidChangeSelection((e=>this._onListSelection(e)))),this._disposables.add(this._list.onDidChangeFocus((e=>this._onListFocus(e)))),this._disposables.add(this.editor.onDidChangeCursorSelection((()=>this._onCursorSelectionChanged()))),this._disposables.add(this.editor.onDidChangeConfiguration((e=>{e.hasChanged(108)&&(d(),l())}))),this._ctxSuggestWidgetVisible=Jr.Visible.bindTo(i),this._ctxSuggestWidgetDetailsVisible=Jr.DetailsVisible.bindTo(i),this._ctxSuggestWidgetMultipleSuggestions=Jr.MultipleSuggestions.bindTo(i),this._ctxSuggestWidgetHasFocusedSuggestion=Jr.HasFocusedSuggestion.bindTo(i),this._disposables.add(At.mu(this._details.widget.domNode,"keydown",(e=>{this._onDetailsKeydown.fire(e)}))),this._disposables.add(this.editor.onMouseDown((e=>this._onEditorMouseDown(e))))}dispose(){var e;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),null===(e=this._loadingTimeout)||void 0===e||e.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){0!==this._state&&this._contentWidget.layout()}_onListMouseDownOrTap(e){void 0!==e.element&&void 0!==e.index&&(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}_onListSelection(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}_select(e,t){const i=this._completionModel;i&&(this._onDidSelect.fire({item:e,index:t,model:i}),this.editor.focus())}_onThemeChange(e){this._details.widget.borderWidth=(0,_o.c3)(e.type)?2:1}_onListFocus(e){var t;if(this._ignoreFocusEvents)return;if(!e.elements.length)return this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),void this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const i=e.elements[0],n=e.indexes[0];i!==this._focusedItem&&(null===(t=this._currentSuggestionDetails)||void 0===t||t.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=i,this._list.reveal(n),this._currentSuggestionDetails=(0,be.PG)((e=>zp(this,void 0,void 0,(function*(){const t=(0,be.Vg)((()=>{this._isDetailsVisible()&&this.showDetails(!0)}),250),n=e.onCancellationRequested((()=>t.dispose())),o=yield i.resolve(e);return t.dispose(),n.dispose(),o})))),this._currentSuggestionDetails.then((()=>{n>=this._list.length||i!==this._list.element(n)||(this._ignoreFocusEvents=!0,this._list.splice(n,1,[i]),this._list.setFocus([n]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:Op(n)}))})).catch(lt.dL)),this._onDidFocus.fire({item:i,index:n,model:this._completionModel})}_setState(t){if(this._state!==t)switch(this._state=t,this.element.domNode.classList.toggle("frozen",4===t),this.element.domNode.classList.remove("message"),t){case 0:At.Cp(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=e.LOADING_MESSAGE,At.Cp(this._listElement,this._status.element),At.$Z(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0;break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=e.NO_SUGGESTIONS_MESSAGE,At.Cp(this._listElement,this._status.element),At.$Z(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0;break;case 3:case 4:At.Cp(this._messageElement),At.$Z(this._listElement,this._status.element),this._show();break;case 5:At.Cp(this._messageElement),At.$Z(this._listElement,this._status.element),this._details.show(),this._show()}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet((()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)}),100)}showTriggered(e,t){0===this._state&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout=(0,be.Vg)((()=>this._setState(1)),t)))}showSuggestions(e,t,i,n){var o,s;if(this._contentWidget.setPosition(this.editor.getPosition()),null===(o=this._loadingTimeout)||void 0===o||o.dispose(),null===(s=this._currentSuggestionDetails)||void 0===s||s.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),i&&2!==this._state&&0!==this._state)return void this._setState(4);const r=this._completionModel.items.length,a=0===r;if(this._ctxSuggestWidgetMultipleSuggestions.set(r>1),a)return this._setState(n?0:2),void(this._completionModel=void 0);this._focusedItem=void 0,this._list.splice(0,this._list.length,this._completionModel.items),this._setState(i?4:3),t>=0&&(this._list.reveal(t,0),this._list.setFocus([t])),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(0!==this._state&&2!==this._state&&1!==this._state&&this._completionModel)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){5===this._state?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):3===this._state&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):!kp(this._list.getFocusedElements()[0])&&!this._explainMode||3!==this._state&&5!==this._state&&4!==this._state||(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(e){this._details.show(),e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._positionDetails(),this.editor.focus(),this.element.domNode.classList.add("shows-details")}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var e;null===(e=this._loadingTimeout)||void 0===e||e.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const t=this._persistedSize.restore(),i=Math.ceil(4.3*this.getLayoutInfo().itemHeight);t&&t.heightl&&(a=l);const c=this._completionModel?this._completionModel.stats.pLabelLen*s.typicalHalfwidthCharacterWidth:a,d=s.statusBarHeight+this._list.contentHeight+s.borderHeight,h=s.itemHeight+s.statusBarHeight,u=At.i(this.editor.getDomNode()),g=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),p=u.top+g.top+g.height,m=Math.min(o.height-p-s.verticalPadding,d),f=u.top+g.top-s.verticalPadding,_=Math.min(f,d);let v=Math.min(Math.max(_,m)+s.borderHeight,d);r===(null===(t=this._cappedHeight)||void 0===t?void 0:t.capped)&&(r=this._cappedHeight.wanted),rv&&(r=v);const b=150;r>m||this._forceRenderingAbove&&f>b?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),v=_):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),v=m),this.element.preferredSize=new At.Ro(c,s.defaultSize.height),this.element.maxSize=new At.Ro(l,v),this.element.minSize=new At.Ro(220,h),this._cappedHeight=r===d?{wanted:null!==(n=null===(i=this._cappedHeight)||void 0===i?void 0:i.wanted)&&void 0!==n?n:e.height,capped:r}:void 0}this._resize(a,r)}_resize(e,t){const{width:i,height:n}=this.element.maxSize;e=Math.min(i,e),t=Math.min(n,t);const{statusBarHeight:o}=this.getLayoutInfo();this._list.layout(t-o,e),this._listElement.style.height=t-o+"px",this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var e;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,2===(null===(e=this._contentWidget.getPosition())||void 0===e?void 0:e.preference[0]))}getLayoutInfo(){const e=this.editor.getOption(46),t=(0,Bg.uZ)(this.editor.getOption(110)||e.lineHeight,8,1e3),i=this.editor.getOption(108).showStatusBar&&2!==this._state&&1!==this._state?t:0,n=this._details.widget.borderWidth,o=2*n;return{itemHeight:t,statusBarHeight:i,borderWidth:n,borderHeight:o,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new At.Ro(430,i+12*t+o)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(e){this._storageService.store("expandSuggestionDocs",e,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};$p.LOADING_MESSAGE=le.NC("suggestWidget.loading","Loading..."),$p.NO_SUGGESTIONS_MESSAGE=le.NC("suggestWidget.noSuggestions","No suggestions."),$p=Wp([Hp(1,Xi.Uy),Hp(2,ce.i6),Hp(3,Ne.XE),Hp(4,Mt.TG)],$p);class qp{constructor(e,t){this._widget=e,this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return!this._hidden&&this._position&&this._preference?{position:this._position,preference:[this._preference]}:null}beforeRender(){const{height:e,width:t}=this._widget.element.size,{borderWidth:i,horizontalPadding:n}=this._widget.getLayoutInfo();return new At.Ro(t+2*i+n,e+2*i)}afterRender(e){this._widget._afterRender(e)}setPreference(e){this._preferenceLocked||(this._preference=e)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(e){this._position=e}}var Gp=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Qp=function(e,t){return function(i,n){t(i,n,e)}};class Zp{constructor(e,t){this._model=e,this._position=t;if(e.getLineMaxColumn(t.lineNumber)!==t.column){const i=e.getOffsetAt(t),n=e.getPositionAt(i+1);this._marker=e.deltaDecorations([],[{range:ye.e.fromPositions(t,n),options:{description:"suggest-line-suffix",stickiness:1}}])}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.deltaDecorations(this._marker,[])}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){const t=this._model.getDecorationRange(this._marker[0]);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}return this._model.getLineMaxColumn(e.lineNumber)-e.column}}let Yp=class e{constructor(e,t,i,n,o,s,r){this._memoryService=t,this._commandService=i,this._contextKeyService=n,this._instantiationService=o,this._logService=s,this._telemetryService=r,this._lineSuffix=new Ce.XK,this._toDispose=new Ce.SL,this._selectors=new Jp((e=>e.priority)),this._telemetryGate=0,this.editor=e,this.model=o.createInstance(Pg,this.editor);const a=Jr.InsertMode.bindTo(n);a.set(e.getOption(108).insertMode),this.model.onDidTrigger((()=>a.set(e.getOption(108).insertMode))),this.widget=this._toDispose.add(new be.Ue((()=>{const e=this._instantiationService.createInstance($p,this.editor);this._toDispose.add(e),this._toDispose.add(e.onDidSelect((e=>this._insertSuggestion(e,0)),this));const t=new kg(this.editor,e,(e=>this._insertSuggestion(e,2)));this._toDispose.add(t),this._toDispose.add(this.model.onDidSuggest((e=>{0===e.completionModel.items.length&&t.reset()})));const i=Jr.MakesTextEdit.bindTo(this._contextKeyService),n=Jr.HasInsertAndReplaceRange.bindTo(this._contextKeyService),o=Jr.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add((0,Ce.OF)((()=>{i.reset(),n.reset(),o.reset()}))),this._toDispose.add(e.onDidFocus((({item:e})=>{const t=this.editor.getPosition(),s=e.editStart.column,r=t.column;let a=!0;if(!("smart"!==this.editor.getOption(1)||2!==this.model.state||e.completion.additionalTextEdits||4&e.completion.insertTextRules||r-s!==e.completion.insertText.length)){a=this.editor.getModel().getValueInRange({startLineNumber:t.lineNumber,startColumn:s,endLineNumber:t.lineNumber,endColumn:r})!==e.completion.insertText}i.set(a),n.set(!we.L.equals(e.editInsertEnd,e.editReplaceEnd)),o.set(Boolean(e.provider.resolveCompletionItem)||Boolean(e.completion.documentation)||e.completion.detail!==e.completion.label)}))),this._toDispose.add(e.onDetailsKeyDown((e=>{e.toKeybinding().equals(new ug.QC(!0,!1,!1,!1,33))||We.dz&&e.toKeybinding().equals(new ug.QC(!1,!1,!1,!0,33))?e.stopPropagation():e.toKeybinding().isModifierKey()||this.editor.focus()}))),e}))),this._overtypingCapturer=this._toDispose.add(new be.Ue((()=>this._toDispose.add(new Fg(this.editor,this.model))))),this._alternatives=this._toDispose.add(new be.Ue((()=>this._toDispose.add(new Lg(this.editor,this._contextKeyService))))),this._toDispose.add(o.createInstance(wg,e)),this._toDispose.add(this.model.onDidTrigger((e=>{this.widget.value.showTriggered(e.auto,e.shy?250:50),this._lineSuffix.value=new Zp(this.editor.getModel(),e.position)}))),this._toDispose.add(this.model.onDidSuggest((e=>{if(e.shy)return;let t=-1;if(!e.noSelect){for(const i of this._selectors.itemsOrderedByPriorityDesc)if(t=i.select(this.editor.getModel(),this.editor.getPosition(),e.completionModel.items),-1!==t)break;-1===t&&(t=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),e.completionModel.items))}this.widget.value.showSuggestions(e.completionModel,t,e.isFrozen,e.auto)}))),this._toDispose.add(this.model.onDidCancel((e=>{e.retrigger||this.widget.value.hideWidget()}))),this._toDispose.add(this.editor.onDidBlurEditorWidget((()=>{this.model.cancel(),this.model.clear()})));const l=Jr.AcceptSuggestionsOnEnter.bindTo(n),c=()=>{const e=this.editor.getOption(1);l.set("on"===e||"smart"===e)};this._toDispose.add(this.editor.onDidChangeConfiguration((()=>c()))),c()}static get(t){return t.getContribution(e.ID)}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose()}_insertSuggestion(e,t){if(!e||!e.item)return this._alternatives.value.reset(),this.model.cancel(),void this.model.clear();if(!this.editor.hasModel())return;const i=Lc.get(this.editor);if(!i)return;const n=this.editor.getModel(),o=n.getAlternativeVersionId(),{item:s}=e,r=[],a=new it.A;1&t||this.editor.pushUndoStop();const l=this.getOverwriteInfo(s,Boolean(8&t));if(this._memoryService.memorize(n,this.editor.getPosition(),s),Array.isArray(s.completion.additionalTextEdits)){const e=Ki.Z.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",s.completion.additionalTextEdits.map((e=>tc.h.replaceMove(ye.e.lift(e.range),e.text)))),e.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!s.isResolved){const e=new vn.G(!0);let i;const o=n.onDidChangeContent((e=>{if(e.isFlush)return a.cancel(),void o.dispose();for(const t of e.changes){const e=ye.e.getEndPosition(t.range);i&&!we.L.isBefore(e,i)||(i=e)}})),l=t;t|=2;let c=!1;const d=this.editor.onWillType((()=>{d.dispose(),c=!0,2&l||this.editor.pushUndoStop()}));r.push(s.resolve(a.token).then((()=>{if(!s.completion.additionalTextEdits||a.token.isCancellationRequested)return!1;if(i&&s.completion.additionalTextEdits.some((e=>we.L.isBefore(i,ye.e.getStartPosition(e.range)))))return!1;c&&this.editor.pushUndoStop();const e=Ki.Z.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",s.completion.additionalTextEdits.map((e=>tc.h.replaceMove(ye.e.lift(e.range),e.text)))),e.restoreRelativeVerticalPositionOfCursor(this.editor),!c&&2&l||this.editor.pushUndoStop(),!0})).then((t=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",e.elapsed(),t),o.dispose(),d.dispose()})))}let{insertText:c}=s.completion;4&s.completion.insertTextRules||(c=Mr.escape(c)),i.insert(c,{overwriteBefore:l.overwriteBefore,overwriteAfter:l.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(1&s.completion.insertTextRules),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),2&t||this.editor.pushUndoStop(),s.completion.command?s.completion.command.id===Xp.id?this.model.trigger({auto:!0,shy:!1,noSelect:!1},!0):(r.push(this._commandService.executeCommand(s.completion.command.id,...s.completion.command.arguments?[...s.completion.command.arguments]:[]).catch(lt.dL)),this.model.cancel()):this.model.cancel(),4&t&&this._alternatives.value.set(e,(e=>{for(a.cancel();n.canUndo();){o!==n.getAlternativeVersionId()&&n.undo(),this._insertSuggestion(e,3|(8&t?8:0));break}})),this._alertCompletionItem(s),Promise.all(r).finally((()=>{this._reportSuggestionAcceptedTelemetry(s,n,e),this.model.clear(),a.dispose()}))}_reportSuggestionAcceptedTelemetry(e,t,i){var n;if(this._telemetryGate++%100!=0)return;const o=e.extensionId?e.extensionId.value:(null!==(n=i.item.provider._debugDisplayName)&&void 0!==n?n:"unknown").split("(",1)[0].toLowerCase();this._telemetryService.publicLog2("suggest.acceptedSuggestion",{providerId:o,kind:e.completion.kind,basenameHash:(0,ji.vp)((0,ui.EZ)(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:(0,ui.DZ)(t.uri)})}getOverwriteInfo(e,t){(0,$i.p_)(this.editor.hasModel());let i="replace"===this.editor.getOption(108).insertMode;t&&(i=!i);const n=e.position.column-e.editStart.column,o=(i?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column;return{overwriteBefore:n+(this.editor.getPosition().column-e.position.column),overwriteAfter:o+(this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0)}}_alertCompletionItem(e){if((0,at.Of)(e.completion.additionalTextEdits)){const t=le.NC("aria.alert.snippet","Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);(0,ie.Z9)(t)}}triggerSuggest(e,t,i,n){this.editor.hasModel()&&(this.model.trigger({auto:null!=t&&t,shy:!1,noSelect:null!=n&&n},!1,e,void 0,i),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(e){if(!this.editor.hasModel())return;const t=this.editor.getPosition(),i=()=>{t.equals(this.editor.getPosition())&&this._commandService.executeCommand(e.fallback)},n=e=>{if(4&e.completion.insertTextRules||e.completion.additionalTextEdits)return!0;const t=this.editor.getPosition(),i=e.editStart.column,n=t.column;if(n-i!==e.completion.insertText.length)return!0;return this.editor.getModel().getValueInRange({startLineNumber:t.lineNumber,startColumn:i,endLineNumber:t.lineNumber,endColumn:n})!==e.completion.insertText};Yt.ju.once(this.model.onDidTrigger)((e=>{const t=[];Yt.ju.any(this.model.onDidTrigger,this.model.onDidCancel)((()=>{(0,Ce.B9)(t),i()}),void 0,t),this.model.onDidSuggest((({completionModel:e})=>{if((0,Ce.B9)(t),0===e.items.length)return void i();const o=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),e.items),s=e.items[o];n(s)?(this.editor.pushUndoStop(),this._insertSuggestion({index:o,item:s,model:e},7)):i()}),void 0,t)})),this.model.trigger({auto:!1,shy:!0,noSelect:!1}),this.editor.revealPosition(t,0),this.editor.focus()}acceptSelectedSuggestion(e,t){const i=this.widget.value.getFocusedItem();let n=0;e&&(n|=4),t&&(n|=8),this._insertSuggestion(i,n)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(e){return this._selectors.register(e)}};Yp.ID="editor.contrib.suggestController",Yp=Gp([Qp(1,vg),Qp(2,ut.Hy),Qp(3,ce.i6),Qp(4,Mt.TG),Qp(5,ec.VZ),Qp(6,Vt.b)],Yp);class Jp{constructor(e){this.prioritySelector=e,this._items=new Array}register(e){if(-1!==this._items.indexOf(e))throw new Error("Value is already registered");return this._items.push(e),this._items.sort(((e,t)=>this.prioritySelector(t)-this.prioritySelector(e))),{dispose:()=>{const t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class Xp extends se.R6{constructor(){super({id:Xp.id,label:le.NC("suggest.trigger.label","Trigger Suggest"),alias:"Trigger Suggest",precondition:ce.Ao.and(ae.u.writable,ae.u.hasCompletionItemProvider),kbOpts:{kbExpr:ae.u.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,i){const n=Yp.get(t);if(!n)return;let o,s;i&&"object"==typeof i&&(!0===i.auto&&(o=!0),!0===i.noSelection&&(s=!0)),n.triggerSuggest(void 0,o,void 0,s)}}Xp.id="editor.action.triggerSuggest",(0,se._K)(Yp.ID,Yp),(0,se.Qr)(Xp);const em=190,tm=se._l.bindToContribution(Yp.get);(0,se.fK)(new tm({id:"acceptSelectedSuggestion",precondition:ce.Ao.and(Jr.Visible,Jr.HasFocusedSuggestion),handler(e){e.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:ce.Ao.and(Jr.Visible,ae.u.textInputFocus),weight:em},{primary:3,kbExpr:ce.Ao.and(Jr.Visible,ae.u.textInputFocus,Jr.AcceptSuggestionsOnEnter,Jr.MakesTextEdit),weight:em}],menuOpts:[{menuId:Xr,title:le.NC("accept.insert","Insert"),group:"left",order:1,when:Jr.HasInsertAndReplaceRange.toNegated()},{menuId:Xr,title:le.NC("accept.insert","Insert"),group:"left",order:1,when:ce.Ao.and(Jr.HasInsertAndReplaceRange,Jr.InsertMode.isEqualTo("insert"))},{menuId:Xr,title:le.NC("accept.replace","Replace"),group:"left",order:1,when:ce.Ao.and(Jr.HasInsertAndReplaceRange,Jr.InsertMode.isEqualTo("replace"))}]})),(0,se.fK)(new tm({id:"acceptAlternativeSelectedSuggestion",precondition:ce.Ao.and(Jr.Visible,ae.u.textInputFocus,Jr.HasFocusedSuggestion),kbOpts:{weight:em,kbExpr:ae.u.textInputFocus,primary:1027,secondary:[1026]},handler(e){e.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:Xr,group:"left",order:2,when:ce.Ao.and(Jr.HasInsertAndReplaceRange,Jr.InsertMode.isEqualTo("insert")),title:le.NC("accept.replace","Replace")},{menuId:Xr,group:"left",order:2,when:ce.Ao.and(Jr.HasInsertAndReplaceRange,Jr.InsertMode.isEqualTo("replace")),title:le.NC("accept.insert","Insert")}]})),ut.P0.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),(0,se.fK)(new tm({id:"hideSuggestWidget",precondition:Jr.Visible,handler:e=>e.cancelSuggestWidget(),kbOpts:{weight:em,kbExpr:ae.u.textInputFocus,primary:9,secondary:[1033]}})),(0,se.fK)(new tm({id:"selectNextSuggestion",precondition:ce.Ao.and(Jr.Visible,Jr.MultipleSuggestions),handler:e=>e.selectNextSuggestion(),kbOpts:{weight:em,kbExpr:ae.u.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),(0,se.fK)(new tm({id:"selectNextPageSuggestion",precondition:ce.Ao.and(Jr.Visible,Jr.MultipleSuggestions),handler:e=>e.selectNextPageSuggestion(),kbOpts:{weight:em,kbExpr:ae.u.textInputFocus,primary:12,secondary:[2060]}})),(0,se.fK)(new tm({id:"selectLastSuggestion",precondition:ce.Ao.and(Jr.Visible,Jr.MultipleSuggestions),handler:e=>e.selectLastSuggestion()})),(0,se.fK)(new tm({id:"selectPrevSuggestion",precondition:ce.Ao.and(Jr.Visible,Jr.MultipleSuggestions),handler:e=>e.selectPrevSuggestion(),kbOpts:{weight:em,kbExpr:ae.u.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),(0,se.fK)(new tm({id:"selectPrevPageSuggestion",precondition:ce.Ao.and(Jr.Visible,Jr.MultipleSuggestions),handler:e=>e.selectPrevPageSuggestion(),kbOpts:{weight:em,kbExpr:ae.u.textInputFocus,primary:11,secondary:[2059]}})),(0,se.fK)(new tm({id:"selectFirstSuggestion",precondition:ce.Ao.and(Jr.Visible,Jr.MultipleSuggestions),handler:e=>e.selectFirstSuggestion()})),(0,se.fK)(new tm({id:"toggleSuggestionDetails",precondition:Jr.Visible,handler:e=>e.toggleSuggestionDetails(),kbOpts:{weight:em,kbExpr:ae.u.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:Xr,group:"right",order:1,when:ce.Ao.and(Jr.DetailsVisible,Jr.CanResolve),title:le.NC("detail.more","show less")},{menuId:Xr,group:"right",order:1,when:ce.Ao.and(Jr.DetailsVisible.toNegated(),Jr.CanResolve),title:le.NC("detail.less","show more")}]})),(0,se.fK)(new tm({id:"toggleExplainMode",precondition:Jr.Visible,handler:e=>e.toggleExplainMode(),kbOpts:{weight:100,primary:2133}})),(0,se.fK)(new tm({id:"toggleSuggestionFocus",precondition:Jr.Visible,handler:e=>e.toggleSuggestionFocus(),kbOpts:{weight:em,kbExpr:ae.u.textInputFocus,primary:2570,mac:{primary:778}}})),(0,se.fK)(new tm({id:"insertBestCompletion",precondition:ce.Ao.and(ae.u.textInputFocus,ce.Ao.equals("config.editor.tabCompletion","on"),wg.AtEnd,Jr.Visible.toNegated(),Lg.OtherSuggestions.toNegated(),Lc.InSnippetMode.toNegated()),handler:(e,t)=>{e.triggerSuggestAndAcceptBest((0,$i.Kn)(t)?Object.assign({fallback:"tab"},t):{fallback:"tab"})},kbOpts:{weight:em,primary:2}})),(0,se.fK)(new tm({id:"insertNextSuggestion",precondition:ce.Ao.and(ae.u.textInputFocus,ce.Ao.equals("config.editor.tabCompletion","on"),Lg.OtherSuggestions,Jr.Visible.toNegated(),Lc.InSnippetMode.toNegated()),handler:e=>e.acceptNextSuggestion(),kbOpts:{weight:em,kbExpr:ae.u.textInputFocus,primary:2}})),(0,se.fK)(new tm({id:"insertPrevSuggestion",precondition:ce.Ao.and(ae.u.textInputFocus,ce.Ao.equals("config.editor.tabCompletion","on"),Lg.OtherSuggestions,Jr.Visible.toNegated(),Lc.InSnippetMode.toNegated()),handler:e=>e.acceptPrevSuggestion(),kbOpts:{weight:em,kbExpr:ae.u.textInputFocus,primary:1026}})),(0,se.Qr)(class extends se.R6{constructor(){super({id:"editor.action.resetSuggestSize",label:le.NC("suggest.reset.label","Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}run(e,t){var i;null===(i=Yp.get(t))||void 0===i||i.resetWidgetSize()}});class im extends Ce.JT{constructor(e,t){super(),this.editor=e,this.suggestControllerPreselector=t,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this.onDidChangeEmitter=new Yt.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.setInactiveDelayed=this._register(new be.pY((()=>{this.isSuggestWidgetVisible||this._isActive&&(this._isActive=!1,this.onDidChangeEmitter.fire())}),100)),this._register(e.onKeyDown((e=>{e.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))}))),this._register(e.onKeyUp((e=>{e.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))})));const i=Yp.get(this.editor);if(i){this._register(i.registerSelector({priority:100,select:(e,t,n)=>{const o=this.editor.getModel(),s=Uu(o,this.suggestControllerPreselector());if(!s)return-1;const r=we.L.lift(t),a=n.map(((e,t)=>{const n=nm(i,r,e,this.isShiftKeyPressed),a=Uu(o,null==n?void 0:n.normalizedInlineCompletion);if(!a)return;var l,c;return{index:t,valid:(l=s.range,(c=a.range).startLineNumber===l.startLineNumber&&c.startColumn===l.startColumn&&(c.endLineNumbere&&e.valid)),l=(0,at.Dc)(a,(0,at.tT)((e=>e.prefixLength),at.fv));return l?l.index:-1}}));let e=!1;const t=()=>{e||(e=!0,this._register(i.widget.value.onDidShow((()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))),this._register(i.widget.value.onDidHide((()=>{this.isSuggestWidgetVisible=!1,this.setInactiveDelayed.schedule(),this.update(this._isActive)}))),this._register(i.widget.value.onDidFocus((()=>{this.isSuggestWidgetVisible=!0,this.update(!0)}))))};this._register(Yt.ju.once(i.model.onDidTrigger)((e=>{t()})))}this.update(this._isActive)}get state(){if(this._isActive)return{selectedItem:this._currentSuggestItemInfo}}update(e){const t=this.getSuggestItemInfo();let i=!1;(function(e,t){if(e===t)return!0;if(!e||!t)return!1;return e.completionItemKind===t.completionItemKind&&e.isSnippetText===t.isSnippetText&&function(e,t){return e===t||!(!e||!t)&&e.range.equalsRange(t.range)&&e.insertText===t.insertText&&e.command===t.command}(e.normalizedInlineCompletion,t.normalizedInlineCompletion)})(this._currentSuggestItemInfo,t)||(this._currentSuggestItemInfo=t,i=!0),this._isActive!==e&&(this._isActive=e,i=!0),i&&this.onDidChangeEmitter.fire()}getSuggestItemInfo(){const e=Yp.get(this.editor);if(!e)return;if(!this.isSuggestWidgetVisible)return;const t=e.widget.value.getFocusedItem();return t?nm(e,this.editor.getPosition(),t.item,this.isShiftKeyPressed):void 0}stopForceRenderingAbove(){const e=Yp.get(this.editor);e&&e.stopForceRenderingAbove()}forceRenderingAbove(){const e=Yp.get(this.editor);e&&e.forceRenderingAbove()}}function nm(e,t,i,n){if(Array.isArray(i.completion.additionalTextEdits)&&i.completion.additionalTextEdits.length>0)return{completionItemKind:i.completion.kind,isSnippetText:!1,normalizedInlineCompletion:{range:ye.e.fromPositions(t,t),insertText:"",filterText:"",snippetInfo:void 0,additionalTextEdits:[]}};let{insertText:o}=i.completion,s=!1;if(4&i.completion.insertTextRules){const i=(new Mr).parse(o),n=e.editor.getModel();if(i.children.length>100)return;Cc.adjustWhitespace(n,t,i,!0,!0),o=i.toString(),s=!0}const r=e.getOverwriteInfo(i,n);return{isSnippetText:s,completionItemKind:i.completion.kind,normalizedInlineCompletion:{insertText:o,filterText:o,range:ye.e.fromPositions(t.delta(0,-r.overwriteBefore),t.delta(0,Math.max(r.overwriteAfter,0))),snippetInfo:void 0,additionalTextEdits:[]}}}var om=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},sm=function(e,t){return function(i,n){t(i,n,e)}},rm=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let am=class extends ju{constructor(e,t,i){super(e),this.cache=t,this.languageFeaturesService=i,this.suggestionInlineCompletionSource=this._register(new im(this.editor,(()=>{var e,t;return null===(t=null===(e=this.cache.value)||void 0===e?void 0:e.completions[0])||void 0===t?void 0:t.toLiveInlineCompletion()}))),this.updateOperation=this._register(new Ce.XK),this.updateCacheSoon=this._register(new be.pY((()=>this.updateCache()),50)),this.minReservedLineCount=0,this._register(this.suggestionInlineCompletionSource.onDidChange((()=>{if(!this.editor.hasModel())return;this.updateCacheSoon.schedule();this.suggestionInlineCompletionSource.state||(this.minReservedLineCount=0);const e=this.ghostText;e&&(this.minReservedLineCount=Math.max(this.minReservedLineCount,e.parts.map((e=>e.lines.length-1)).reduce(((e,t)=>e+t),0))),this.minReservedLineCount>=1?this.suggestionInlineCompletionSource.forceRenderingAbove():this.suggestionInlineCompletionSource.stopForceRenderingAbove(),this.onDidChangeEmitter.fire()}))),this._register(this.cache.onDidChange((()=>{this.onDidChangeEmitter.fire()}))),this._register(this.editor.onDidChangeCursorPosition((e=>{this.minReservedLineCount=0,this.updateCacheSoon.schedule(),this.onDidChangeEmitter.fire()}))),this._register((0,Ce.OF)((()=>this.suggestionInlineCompletionSource.stopForceRenderingAbove())))}get isActive(){return void 0!==this.suggestionInlineCompletionSource.state}isSuggestionPreviewEnabled(){return this.editor.getOption(108).preview}updateCache(){return rm(this,void 0,void 0,(function*(){const e=this.suggestionInlineCompletionSource.state;if(!e||!e.selectedItem)return;const t={text:e.selectedItem.normalizedInlineCompletion.insertText,range:e.selectedItem.normalizedInlineCompletion.range,isSnippetText:e.selectedItem.isSnippetText,completionKind:e.selectedItem.completionItemKind},i=this.editor.getPosition();if(e.selectedItem.isSnippetText||27===e.selectedItem.completionItemKind||20===e.selectedItem.completionItemKind||23===e.selectedItem.completionItemKind)return void this.cache.clear();const n=(0,be.PG)((e=>rm(this,void 0,void 0,(function*(){let n;try{n=yield dg(this.languageFeaturesService.inlineCompletionsProvider,i,this.editor.getModel(),{triggerKind:Wo.bw.Automatic,selectedSuggestionInfo:t},e)}catch(o){return void(0,lt.dL)(o)}e.isCancellationRequested?n.dispose():(this.cache.setValue(this.editor,n,Wo.bw.Automatic),this.onDidChangeEmitter.fire())})))),o=new ag(n,Wo.bw.Automatic);this.updateOperation.value=o,yield n,this.updateOperation.value===o&&this.updateOperation.clear()}))}get ghostText(){var e,t,i;const n=this.isSuggestionPreviewEnabled(),o=this.editor.getModel(),s=Uu(o,null===(t=null===(e=this.cache.value)||void 0===e?void 0:e.completions[0])||void 0===t?void 0:t.toLiveInlineCompletion()),r=this.suggestionInlineCompletionSource.state,a=Uu(o,null===(i=null==r?void 0:r.selectedItem)||void 0===i?void 0:i.normalizedInlineCompletion),l=s&&a&&s.insertText.startsWith(a.insertText)&&s.range.equalsRange(a.range);if(!n&&!l)return;const c=l?s:a||s,d=l?c.insertText.length-a.insertText.length:0;return this.toGhostText(c,d)}toGhostText(e,t){const i=this.editor.getOptions().get(108).previewMode;return e?$u(e,this.editor.getModel(),i,this.editor.getPosition(),t)||new Wu(e.range.endLineNumber,[],this.minReservedLineCount):void 0}};am=om([sm(2,rt.p)],am);var lm=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},cm=function(e,t){return function(i,n){t(i,n,e)}},dm=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class hm extends Ce.JT{constructor(){super(...arguments),this.onDidChangeEmitter=new Yt.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.hasCachedGhostText=!1,this.currentModelRef=this._register(new Ce.XK)}get targetModel(){var e;return null===(e=this.currentModelRef.value)||void 0===e?void 0:e.object}setTargetModel(e){var t,i,n;(null===(t=this.currentModelRef.value)||void 0===t?void 0:t.object)!==e&&(this.currentModelRef.clear(),this.currentModelRef.value=e?(i=e,n=e.onDidChange((()=>{this.hasCachedGhostText=!1,this.onDidChangeEmitter.fire()})),{object:i,dispose:()=>null==n?void 0:n.dispose()}):void 0,this.hasCachedGhostText=!1,this.onDidChangeEmitter.fire())}get ghostText(){var e,t;return this.hasCachedGhostText||(this.cachedGhostText=null===(t=null===(e=this.currentModelRef.value)||void 0===e?void 0:e.object)||void 0===t?void 0:t.ghostText,this.hasCachedGhostText=!0),this.cachedGhostText}setExpanded(e){var t;null===(t=this.targetModel)||void 0===t||t.setExpanded(e)}get minReservedLineCount(){return this.targetModel?this.targetModel.minReservedLineCount:0}}let um=class extends hm{constructor(e,t){super(),this.editor=e,this.instantiationService=t,this.sharedCache=this._register(new gm),this.suggestWidgetAdapterModel=this._register(this.instantiationService.createInstance(am,this.editor,this.sharedCache)),this.inlineCompletionsModel=this._register(this.instantiationService.createInstance(sg,this.editor,this.sharedCache)),this._register(this.suggestWidgetAdapterModel.onDidChange((()=>{this.updateModel()}))),this.updateModel()}get activeInlineCompletionsModel(){if(this.targetModel===this.inlineCompletionsModel)return this.inlineCompletionsModel}updateModel(){this.setTargetModel(this.suggestWidgetAdapterModel.isActive?this.suggestWidgetAdapterModel:this.inlineCompletionsModel),this.inlineCompletionsModel.setActive(this.targetModel===this.inlineCompletionsModel)}shouldShowHoverAt(e){var t;const i=null===(t=this.activeInlineCompletionsModel)||void 0===t?void 0:t.ghostText;return!!i&&i.parts.some((t=>e.containsPosition(new we.L(i.lineNumber,t.column))))}triggerInlineCompletion(){var e;null===(e=this.activeInlineCompletionsModel)||void 0===e||e.trigger(Wo.bw.Explicit)}commitInlineCompletion(){var e;null===(e=this.activeInlineCompletionsModel)||void 0===e||e.commitCurrentSuggestion()}hideInlineCompletion(){var e;null===(e=this.activeInlineCompletionsModel)||void 0===e||e.hide()}showNextInlineCompletion(){var e;null===(e=this.activeInlineCompletionsModel)||void 0===e||e.showNext()}showPreviousInlineCompletion(){var e;null===(e=this.activeInlineCompletionsModel)||void 0===e||e.showPrevious()}hasMultipleInlineCompletions(){var e;return dm(this,void 0,void 0,(function*(){const t=yield null===(e=this.activeInlineCompletionsModel)||void 0===e?void 0:e.hasMultipleInlineCompletions();return void 0!==t&&t}))}};um=lm([cm(1,Mt.TG)],um);class gm extends Ce.JT{constructor(){super(...arguments),this.onDidChangeEmitter=new Yt.Q5,this.onDidChange=this.onDidChangeEmitter.event,this.cache=this._register(new Ce.XK)}get value(){return this.cache.value}setValue(e,t,i){this.cache.value=new lg(t,e,(()=>this.onDidChangeEmitter.fire()),i)}clearAndLeak(){return this.cache.clearAndLeak()}clear(){this.cache.clear()}}var pm,mm=i(77378),fm=i(50072),_m=i(92550),vm=i(72202),bm=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Cm=function(e,t){return function(i,n){t(i,n,e)}};const wm=null===(pm=window.trustedTypes)||void 0===pm?void 0:pm.createPolicy("editorGhostText",{createHTML:e=>e});let ym=class extends Ce.JT{constructor(e,t,i,n){super(),this.editor=e,this.model=t,this.instantiationService=i,this.languageService=n,this.disposed=!1,this.partsWidget=this._register(this.instantiationService.createInstance(Lm,this.editor)),this.additionalLinesWidget=this._register(new km(this.editor,this.languageService.languageIdCodec)),this.viewMoreContentWidget=void 0,this.replacementDecoration=this._register(new Sm(this.editor)),this._register(this.editor.onDidChangeConfiguration((e=>{(e.hasChanged(29)||e.hasChanged(107)||e.hasChanged(90)||e.hasChanged(85)||e.hasChanged(47)||e.hasChanged(46)||e.hasChanged(61))&&this.update()}))),this._register((0,Ce.OF)((()=>{var e;this.disposed=!0,this.update(),null===(e=this.viewMoreContentWidget)||void 0===e||e.dispose(),this.viewMoreContentWidget=void 0}))),this._register(t.onDidChange((()=>{this.update()}))),this.update()}shouldShowHoverAtViewZone(e){return this.additionalLinesWidget.viewZoneId===e}update(){var e;const t=this.model.ghostText;if(!this.editor.hasModel()||!t||this.disposed)return this.partsWidget.clear(),this.additionalLinesWidget.clear(),void this.replacementDecoration.clear();const i=new Array,n=new Array;function o(e,t){if(n.length>0){const i=n[n.length-1];t&&i.decorations.push(new _m.Kp(i.content.length+1,i.content.length+1+e[0].length,t,0)),i.content+=e[0],e=e.slice(1)}for(const i of e)n.push({content:i,decorations:t?[new _m.Kp(1,i.length+1,t,0)]:[]})}t instanceof zu?this.replacementDecoration.setDecorations([{range:new ye.e(t.lineNumber,t.columnStart,t.lineNumber,t.columnStart+t.length),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}]):this.replacementDecoration.setDecorations([]);const s=this.editor.getModel().getLineContent(t.lineNumber);let r,a=0;for(const l of t.parts){let e=l.lines;void 0===r?(i.push({column:l.column,text:e[0],preview:l.preview}),e=e.slice(1)):o([s.substring(a,l.column-1)],void 0),e.length>0&&(o(e,"ghost-text"),void 0===r&&l.column<=s.length&&(r=l.column)),a=l.column-1}void 0!==r&&o([s.substring(a)],void 0),this.partsWidget.setParts(t.lineNumber,i,void 0!==r?{column:r,length:s.length+1-r}:void 0),this.additionalLinesWidget.updateLines(t.lineNumber,n,t.additionalReservedLineCount),null===(e=this.viewMoreContentWidget)||void 0===e||e.dispose(),this.viewMoreContentWidget=void 0}renderViewMoreLines(e,t,i){const n=this.editor.getOption(46),o=document.createElement("div");o.className="suggest-preview-additional-widget",(0,Ia.N)(o,n);const s=document.createElement("span");s.className="content-spacer",s.append(t),o.append(s);const r=document.createElement("span");r.className="content-newline suggest-preview-text",r.append("\u23ce "),o.append(r);const a=new Ce.SL,l=document.createElement("div");return l.className="button suggest-preview-text",l.append(`+${i} lines\u2026`),a.add(At.mu(l,"mousedown",(e=>{var t;null===(t=this.model)||void 0===t||t.setExpanded(!0),e.preventDefault(),this.editor.focus()}))),o.append(l),new xm(this.editor,e,o,a)}};ym=bm([Cm(2,Mt.TG),Cm(3,zn.O)],ym);class Sm{constructor(e){this.editor=e,this.decorationIds=[]}setDecorations(e){this.editor.changeDecorations((t=>{this.decorationIds=t.deltaDecorations(this.decorationIds,e)}))}clear(){this.setDecorations([])}dispose(){this.clear()}}class Lm{constructor(e){this.editor=e,this.decorationIds=[]}dispose(){this.clear()}clear(){this.editor.changeDecorations((e=>{this.decorationIds=e.deltaDecorations(this.decorationIds,[])}))}setParts(e,t,i){if(!this.editor.getModel())return;const n=new Array;i&&n.push({range:ye.e.fromPositions(new we.L(e,i.column),new we.L(e,i.column+i.length)),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}}),this.editor.changeDecorations((i=>{this.decorationIds=i.deltaDecorations(this.decorationIds,t.map((t=>({range:ye.e.fromPositions(new we.L(e,t.column)),options:{description:"ghost-text",after:{content:t.text,inlineClassName:t.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:Se.RM.Left},showIfCollapsed:!0}}))).concat(n))}))}}class km{constructor(e,t){this.editor=e,this.languageIdCodec=t,this._viewZoneId=void 0}get viewZoneId(){return this._viewZoneId}dispose(){this.clear()}clear(){this.editor.changeViewZones((e=>{this._viewZoneId&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0)}))}updateLines(e,t,i){const n=this.editor.getModel();if(!n)return;const{tabSize:o}=n.getOptions();this.editor.changeViewZones((n=>{this._viewZoneId&&(n.removeZone(this._viewZoneId),this._viewZoneId=void 0);const s=Math.max(t.length,i);if(s>0){const i=document.createElement("div");!function(e,t,i,n,o){const s=n.get(29),r=n.get(107),a="none",l=n.get(85),c=n.get(47),d=n.get(46),h=n.get(61),u=(0,fm.l$)(1e4);u.appendASCIIString('
    ');for(let m=0,f=i.length;m');const g=ot.$i(n),p=ot.Ut(n),f=mm.A.createEmpty(n,o);(0,vm.d1)(new vm.IJ(d.isMonospace&&!s,d.canUseHalfwidthRightwardsArrow,n,!1,g,p,0,f,e.decorations,t,0,d.spaceWidth,d.middotWidth,d.wsmiddotWidth,r,a,l,c!==Ui.n0.OFF,null),u),u.appendASCIIString("
    ")}u.appendASCIIString("
    "),(0,Ia.N)(e,d);const g=u.build(),p=wm?wm.createHTML(g):g;e.innerHTML=p}(i,o,t,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=n.addZone({afterLineNumber:e,heightInLines:s,domNode:i,afterColumnAffinity:1})}}))}}class xm extends Ce.JT{constructor(e,t,i,n){super(),this.editor=e,this.position=t,this.domNode=i,this.allowEditorOverflow=!1,this.suppressMouseDown=!1,this._register(n),this._register((0,Ce.OF)((()=>{this.editor.removeContentWidget(this)}))),this.editor.addContentWidget(this)}getId(){return"editor.widget.viewMoreLinesWidget"}getDomNode(){return this.domNode}getPosition(){return{position:this.position,preference:[0]}}}(0,Ne.Ic)(((e,t)=>{const i=e.getColor(ke.N5);i&&(t.addRule(`.monaco-editor .ghost-text-decoration { color: ${i.toString()} !important; }`),t.addRule(`.monaco-editor .ghost-text-decoration-preview { color: ${i.toString()} !important; }`),t.addRule(`.monaco-editor .suggest-preview-text .ghost-text { color: ${i.toString()} !important; }`));const n=e.getColor(ke.IO);n&&(t.addRule(`.monaco-editor .ghost-text-decoration { background-color: ${n.toString()}; }`),t.addRule(`.monaco-editor .ghost-text-decoration-preview { background-color: ${n.toString()}; }`),t.addRule(`.monaco-editor .suggest-preview-text .ghost-text { background-color: ${n.toString()}; }`));const o=e.getColor(ke.x3);o&&(t.addRule(`.monaco-editor .suggest-preview-text .ghost-text { border: 1px solid ${o}; }`),t.addRule(`.monaco-editor .ghost-text-decoration { border: 1px solid ${o}; }`),t.addRule(`.monaco-editor .ghost-text-decoration-preview { border: 1px solid ${o}; }`))}));var Dm=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Nm=function(e,t){return function(i,n){t(i,n,e)}},Em=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let Im=class e extends Ce.JT{constructor(e,t){super(),this.editor=e,this.instantiationService=t,this.triggeredExplicitly=!1,this.activeController=this._register(new Ce.XK),this.activeModelDidChangeEmitter=this._register(new Yt.Q5),this._register(this.editor.onDidChangeModel((()=>{this.updateModelController()}))),this._register(this.editor.onDidChangeConfiguration((e=>{e.hasChanged(108)&&this.updateModelController(),e.hasChanged(57)&&this.updateModelController()}))),this.updateModelController()}static get(t){return t.getContribution(e.ID)}get activeModel(){var e;return null===(e=this.activeController.value)||void 0===e?void 0:e.model}updateModelController(){const e=this.editor.getOption(108),t=this.editor.getOption(57);this.activeController.value=void 0,this.activeController.value=this.editor.hasModel()&&(e.preview||t.enabled||this.triggeredExplicitly)?this.instantiationService.createInstance(Mm,this.editor):void 0,this.activeModelDidChangeEmitter.fire()}shouldShowHoverAt(e){var t;return(null===(t=this.activeModel)||void 0===t?void 0:t.shouldShowHoverAt(e))||!1}shouldShowHoverAtViewZone(e){var t,i;return(null===(i=null===(t=this.activeController.value)||void 0===t?void 0:t.widget)||void 0===i?void 0:i.shouldShowHoverAtViewZone(e))||!1}trigger(){var e;this.triggeredExplicitly=!0,this.activeController.value||this.updateModelController(),null===(e=this.activeModel)||void 0===e||e.triggerInlineCompletion()}commit(){var e;null===(e=this.activeModel)||void 0===e||e.commitInlineCompletion()}hide(){var e;null===(e=this.activeModel)||void 0===e||e.hideInlineCompletion()}showNextInlineCompletion(){var e;null===(e=this.activeModel)||void 0===e||e.showNextInlineCompletion()}showPreviousInlineCompletion(){var e;null===(e=this.activeModel)||void 0===e||e.showPreviousInlineCompletion()}hasMultipleInlineCompletions(){var e;return Em(this,void 0,void 0,(function*(){const t=yield null===(e=this.activeModel)||void 0===e?void 0:e.hasMultipleInlineCompletions();return void 0!==t&&t}))}};Im.inlineSuggestionVisible=new ce.uy("inlineSuggestionVisible",!1,le.NC("inlineSuggestionVisible","Whether an inline suggestion is visible")),Im.inlineSuggestionHasIndentation=new ce.uy("inlineSuggestionHasIndentation",!1,le.NC("inlineSuggestionHasIndentation","Whether the inline suggestion starts with whitespace")),Im.inlineSuggestionHasIndentationLessThanTabSize=new ce.uy("inlineSuggestionHasIndentationLessThanTabSize",!0,le.NC("inlineSuggestionHasIndentationLessThanTabSize","Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab")),Im.ID="editor.contrib.ghostTextController",Im=Dm([Nm(1,Mt.TG)],Im);class Tm{constructor(e){this.contextKeyService=e,this.inlineCompletionVisible=Im.inlineSuggestionVisible.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentation=Im.inlineSuggestionHasIndentation.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentationLessThanTabSize=Im.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService)}}let Mm=class extends Ce.JT{constructor(e,t,i){super(),this.editor=e,this.instantiationService=t,this.contextKeyService=i,this.contextKeys=new Tm(this.contextKeyService),this.model=this._register(this.instantiationService.createInstance(um,this.editor)),this.widget=this._register(this.instantiationService.createInstance(ym,this.editor,this.model)),this._register((0,Ce.OF)((()=>{this.contextKeys.inlineCompletionVisible.set(!1),this.contextKeys.inlineCompletionSuggestsIndentation.set(!1),this.contextKeys.inlineCompletionSuggestsIndentationLessThanTabSize.set(!0)}))),this._register(this.model.onDidChange((()=>{this.updateContextKeys()}))),this.updateContextKeys()}updateContextKeys(){var e;this.contextKeys.inlineCompletionVisible.set(void 0!==(null===(e=this.model.activeInlineCompletionsModel)||void 0===e?void 0:e.ghostText));let t=!1,i=!0;const n=this.model.inlineCompletionsModel.ghostText;if(this.model.activeInlineCompletionsModel&&n&&n.parts.length>0){const{column:e,lines:o}=n.parts[0],s=o[0];if(e<=this.editor.getModel().getLineIndentColumn(n.lineNumber)){let e=(0,ot.LC)(s);-1===e&&(e=s.length-1),t=e>0;const n=this.editor.getModel().getOptions().tabSize;i=Fu.i.visibleColumnFromColumn(s,e+1,n)=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Fm=function(e,t){return function(i,n){t(i,n,e)}};class Bm{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return 1===e.type&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}hasMultipleSuggestions(){return this.controller.hasMultipleInlineCompletions()}get commands(){var e,t,i;return(null===(i=null===(t=null===(e=this.controller.activeModel)||void 0===e?void 0:e.activeInlineCompletionsModel)||void 0===t?void 0:t.completionSession.value)||void 0===i?void 0:i.commands)||[]}}let Vm=class{constructor(e,t,i,n,o,s,r){this._editor=e,this._commandService=t,this._menuService=i,this._contextKeyService=n,this._languageService=o,this._openerService=s,this.accessibilityService=r,this.hoverOrdinal=3}suggestHoverAnchor(e){const t=Im.get(this._editor);if(!t)return null;const i=e.target;if(8===i.type){const e=i.detail;if(t.shouldShowHoverAtViewZone(e.viewZoneId))return new br(1e3,this,ye.e.fromPositions(e.positionBefore||e.position,e.positionBefore||e.position))}if(7===i.type&&t.shouldShowHoverAt(i.range))return new br(1e3,this,i.range);if(6===i.type){if(i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range))return new br(1e3,this,i.range)}return null}computeSync(e,t){const i=Im.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new Bm(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new Ce.SL,n=t[0];this.accessibilityService.isScreenReaderOptimized()&&this.renderScreenReaderText(e,n,i);const o=i.add(this._menuService.createMenu(xe.eH.InlineCompletionsActions,this._contextKeyService)),s=e.statusBar.addAction({label:le.NC("showNextInlineSuggestion","Next"),commandId:Am.ID,run:()=>this._commandService.executeCommand(Am.ID)}),r=e.statusBar.addAction({label:le.NC("showPreviousInlineSuggestion","Previous"),commandId:Rm.ID,run:()=>this._commandService.executeCommand(Rm.ID)});e.statusBar.addAction({label:le.NC("acceptInlineSuggestion","Accept"),commandId:Pu,run:()=>this._commandService.executeCommand(Pu)});const a=[s,r];for(const l of a)l.setEnabled(!1);n.hasMultipleSuggestions().then((e=>{for(const t of a)t.setEnabled(e)}));for(const l of n.commands)e.statusBar.addAction({label:l.title,commandId:l.id,run:()=>this._commandService.executeCommand(l.id,...l.arguments||[])});for(const[l,c]of o.getActions())for(const t of c)t instanceof xe.U8&&e.statusBar.addAction({label:t.label,commandId:t.item.id,run:()=>this._commandService.executeCommand(t.item.id)});return i}renderScreenReaderText(e,t,i){var n,o;const s=At.$,r=s("div.hover-row.markdown-hover"),a=At.R3(r,s("div.hover-contents")),l=i.add(new Ra({editor:this._editor},this._languageService,this._openerService)),c=null===(o=null===(n=t.controller.activeModel)||void 0===n?void 0:n.inlineCompletionsModel)||void 0===o?void 0:o.ghostText;if(c){const t=this._editor.getModel().getLineContent(c.lineNumber);(t=>{i.add(l.onDidRenderAsync((()=>{a.className="hover-contents code-hover-contents",e.onContentsChanged()})));const n=le.NC("inlineSuggestionFollows","Suggestion:"),o=i.add(l.render((new ne.W5).appendText(n).appendCodeblock("text",t)));a.replaceChildren(o.element)})(c.renderForScreenReader(t))}e.fragment.appendChild(r)}};Vm=Pm([Fm(1,ut.Hy),Fm(2,xe.co),Fm(3,ce.i6),Fm(4,zn.O),Fm(5,Na.v4),Fm(6,Jn.F)],Vm),(0,se._K)(Im.ID,Im),(0,se.Qr)(Om),(0,se.Qr)(Am),(0,se.Qr)(Rm),Cr.register(Vm);const Wm=se._l.bindToContribution(Im.get),Hm=new Wm({id:Pu,precondition:Im.inlineSuggestionVisible,handler(e){e.commit(),e.editor.focus()}});(0,se.fK)(Hm),Ho.W.registerKeybindingRule({primary:2,weight:200,id:Hm.id,when:ce.Ao.and(Hm.precondition,ae.u.tabMovesFocus.toNegated(),Im.inlineSuggestionHasIndentationLessThanTabSize)}),(0,se.fK)(new Wm({id:"editor.action.inlineSuggest.hide",precondition:Im.inlineSuggestionVisible,kbOpts:{weight:100,primary:9},handler(e){e.hide()}}));var zm=i(10291);function jm(e,t){let i=0;for(let n=0;n=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Gm=function(e,t){return function(i,n){t(i,n,e)}};function Qm(e,t,i,n,o){if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return[];const s=t.getLanguageConfiguration(e.getLanguageId()).indentationRules;if(!s)return[];for(n=Math.min(n,e.getLineCount());i<=n&&s.unIndentedLinePattern;){const t=e.getLineContent(i);if(!s.unIndentedLinePattern.test(t))break;i++}if(i>n-1)return[];const{tabSize:r,indentSize:a,insertSpaces:l}=e.getOptions(),c=(e,t)=>(t=t||1,zm.U.shiftIndent(e,e.length+t,r,a,l)),d=(e,t)=>(t=t||1,zm.U.unshiftIndent(e,e.length+t,r,a,l)),h=[];let u;const g=e.getLineContent(i);let p=g;if(null!=o){u=o;const e=ot.V8(g);p=u+g.substring(e.length),s.decreaseIndentPattern&&s.decreaseIndentPattern.test(p)&&(u=d(u),p=u+g.substring(e.length)),g!==p&&h.push(tc.h.replaceMove(new re.Y(i,1,i,e.length+1),(0,Um.x)(u,a,l)))}else u=ot.V8(g);let m=u;s.increaseIndentPattern&&s.increaseIndentPattern.test(p)?(m=c(m),u=c(u)):s.indentNextLinePattern&&s.indentNextLinePattern.test(p)&&(m=c(m));for(let f=++i;f<=n;f++){const t=e.getLineContent(f),i=ot.V8(t),n=m+t.substring(i.length);s.decreaseIndentPattern&&s.decreaseIndentPattern.test(n)&&(m=d(m),u=d(u)),i!==m&&h.push(tc.h.replaceMove(new re.Y(f,1,f,i.length+1),(0,Um.x)(m,a,l))),s.unIndentedLinePattern&&s.unIndentedLinePattern.test(t)||(s.increaseIndentPattern&&s.increaseIndentPattern.test(n)?(u=c(u),m=u):m=s.indentNextLinePattern&&s.indentNextLinePattern.test(n)?c(m):u)}return h}class Zm extends se.R6{constructor(){super({id:Zm.ID,label:le.NC("indentationToSpaces","Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:ae.u.writable})}run(e,t){const i=t.getModel();if(!i)return;const n=i.getOptions(),o=t.getSelection();if(!o)return;const s=new lf(o,n.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!0})}}Zm.ID="editor.action.indentationToSpaces";class Ym extends se.R6{constructor(){super({id:Ym.ID,label:le.NC("indentationToTabs","Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:ae.u.writable})}run(e,t){const i=t.getModel();if(!i)return;const n=i.getOptions(),o=t.getSelection();if(!o)return;const s=new cf(o,n.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!1})}}Ym.ID="editor.action.indentationToTabs";class Jm extends se.R6{constructor(e,t){super(t),this.insertSpaces=e}run(e,t){const i=e.get(hn.eJ),n=e.get(ht.q),o=t.getModel();if(!o)return;const s=n.getCreationOptions(o.getLanguageId(),o.uri,o.isForSimpleWidget),r=[1,2,3,4,5,6,7,8].map((e=>({id:e.toString(),label:e.toString(),description:e===s.tabSize?le.NC("configuredTabSize","Configured Tab Size"):void 0}))),a=Math.min(o.getOptions().tabSize-1,7);setTimeout((()=>{i.pick(r,{placeHolder:le.NC({key:"selectTabWidth",comment:["Tab corresponds to the tab key"]},"Select Tab Size for Current File"),activeItem:r[a]}).then((e=>{e&&o&&!o.isDisposed()&&o.updateOptions({tabSize:parseInt(e.label,10),insertSpaces:this.insertSpaces})}))}),50)}}class Xm extends Jm{constructor(){super(!1,{id:Xm.ID,label:le.NC("indentUsingTabs","Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0})}}Xm.ID="editor.action.indentUsingTabs";class ef extends Jm{constructor(){super(!0,{id:ef.ID,label:le.NC("indentUsingSpaces","Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0})}}ef.ID="editor.action.indentUsingSpaces";class tf extends se.R6{constructor(){super({id:tf.ID,label:le.NC("detectIndentation","Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0})}run(e,t){const i=e.get(ht.q),n=t.getModel();if(!n)return;const o=i.getCreationOptions(n.getLanguageId(),n.uri,n.isForSimpleWidget);n.detectIndentation(o.insertSpaces,o.tabSize)}}tf.ID="editor.action.detectIndentation";class nf extends se.R6{constructor(){super({id:"editor.action.reindentlines",label:le.NC("editor.reindentlines","Reindent Lines"),alias:"Reindent Lines",precondition:ae.u.writable})}run(e,t){const i=e.get(Xn.c_),n=t.getModel();if(!n)return;const o=Qm(n,i,1,n.getLineCount());o.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,o),t.pushUndoStop())}}class of extends se.R6{constructor(){super({id:"editor.action.reindentselectedlines",label:le.NC("editor.reindentselectedlines","Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:ae.u.writable})}run(e,t){const i=e.get(Xn.c_),n=t.getModel();if(!n)return;const o=t.getSelections();if(null===o)return;const s=[];for(const r of o){let e=r.startLineNumber,t=r.endLineNumber;if(e!==t&&1===r.endColumn&&t--,1===e){if(e===t)continue}else e--;const o=Qm(n,i,e,t);s.push(...o)}s.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,s),t.pushUndoStop())}}class sf{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(const i of e)i.range&&"string"==typeof i.text&&this._edits.push(i)}getEditOperations(e,t){for(const n of this._edits)t.addEditOperation(ye.e.lift(n.range),n.text);let i=!1;Array.isArray(this._edits)&&1===this._edits.length&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),i||(this._selectionId=t.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}let rf=class{constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new Ce.SL,this.callOnModel=new Ce.SL,this.callOnDispose.add(e.onDidChangeConfiguration((()=>this.update()))),this.callOnDispose.add(e.onDidChangeModel((()=>this.update()))),this.callOnDispose.add(e.onDidChangeModelLanguage((()=>this.update())))}update(){this.callOnModel.clear(),this.editor.getOption(9)<4||this.editor.getOption(50)||this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste((({range:e})=>{this.trigger(e)})))}trigger(e){const t=this.editor.getSelections();if(null===t||t.length>1)return;const i=this.editor.getModel();if(!i)return;if(!i.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;const n=this.editor.getOption(9),{tabSize:o,indentSize:s,insertSpaces:r}=i.getOptions(),a=[],l={shiftIndent:e=>zm.U.shiftIndent(e,e.length+1,o,s,r),unshiftIndent:e=>zm.U.unshiftIndent(e,e.length+1,o,s,r)};let c=e.startLineNumber;for(;c<=e.endLineNumber&&this.shouldIgnoreLine(i,c);)c++;if(c>e.endLineNumber)return;let d=i.getLineContent(c);if(!/\S/.test(d.substring(0,e.startColumn-1))){const e=(0,$m.n8)(n,i,i.getLanguageId(),c,l,this._languageConfigurationService);if(null!==e){const t=ot.V8(d),n=jm(e,o);if(n!==jm(t,o)){const e=Km(n,o,r);a.push({range:new ye.e(c,1,c,t.length+1),text:e}),d=e+d.substr(t.length)}else{const e=(0,$m.tI)(i,c,this._languageConfigurationService);if(0===e||8===e)return}}}const h=c;for(;ci.tokenization.getLineTokens(e),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(e,t)=>i.getLanguageIdAtPosition(e,t)},getLineContent:e=>e===h?d:i.getLineContent(e)},s=(0,$m.n8)(n,t,i.getLanguageId(),c+1,l,this._languageConfigurationService);if(null!==s){const t=jm(s,o),n=jm(ot.V8(i.getLineContent(c+1)),o);if(t!==n){const s=t-n;for(let t=c+1;t<=e.endLineNumber;t++){const e=i.getLineContent(t),n=ot.V8(e),l=Km(jm(n,o)+s,o,r);l!==n&&a.push({range:new ye.e(t,1,t,n.length+1),text:l})}}}}if(a.length>0){this.editor.pushUndoStop();const e=new sf(a,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",e),this.editor.pushUndoStop()}}shouldIgnoreLine(e,t){e.tokenization.forceTokenization(t);const i=e.getLineFirstNonWhitespaceColumn(t);if(0===i)return!0;const n=e.tokenization.getLineTokens(t);if(n.getCount()>0){const e=n.findTokenIndexAtOffset(i);if(e>=0&&1===n.getStandardTokenType(e))return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};function af(e,t,i,n){if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return;let o="";for(let r=0;rthis._currentResolve=void 0))),yield this._currentResolve}}))}_doResolve(e){var t,i;return df(this,void 0,void 0,(function*(){try{const n=yield Promise.resolve(this.provider.resolveInlayHint(this.hint,e));this.hint.tooltip=null!==(t=null==n?void 0:n.tooltip)&&void 0!==t?t:this.hint.tooltip,this.hint.label=null!==(i=null==n?void 0:n.label)&&void 0!==i?i:this.hint.label,this._isResolved=!0}catch(n){(0,lt.Cp)(n),this._isResolved=!1}}))}}class gf{constructor(e,t,i){this._disposables=new Ce.SL,this.ranges=e,this.provider=new Set;const n=[];for(const[o,s]of t){this._disposables.add(o),this.provider.add(s);for(const e of o.hints){const t=i.validatePosition(e.position);let o="before";const r=gf._getRangeAtPosition(i,t);let a;r.getStartPosition().isBefore(t)?(a=ye.e.fromPositions(r.getStartPosition(),t),o="after"):(a=ye.e.fromPositions(t,r.getEndPosition()),o="before"),n.push(new uf(e,new hf(a,o),s))}}this.items=n.sort(((e,t)=>we.L.compare(e.hint.position,t.hint.position)))}static create(e,t,i,n){return df(this,void 0,void 0,(function*(){const o=[],s=e.ordered(t).reverse().map((e=>i.map((i=>df(this,void 0,void 0,(function*(){try{const s=yield e.provideInlayHints(t,i,n);(null==s?void 0:s.hints.length)&&o.push([s,e])}catch(s){(0,lt.Cp)(s)}}))))));if(yield Promise.all(s.flat()),n.isCancellationRequested||t.isDisposed())throw new lt.FU;return new gf(i,o,t)}))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(e,t){const i=t.lineNumber,n=e.getWordAtPosition(t);if(n)return new ye.e(i,n.startColumn,i,n.endColumn);e.tokenization.tokenizeIfCheap(i);const o=e.tokenization.getLineTokens(i),s=t.column-1,r=o.findTokenIndexAtOffset(s);let a=o.getStartOffset(r),l=o.getEndOffset(r);return l-a==1&&(a===s&&r>1?(a=o.getStartOffset(r-1),l=o.getEndOffset(r-1)):l===s&&r(0,xe.vr)(e)?e.command.id:"")));for(const e of se.Uc.getEditorActions())e instanceof Xs&&u.has(e.id)&&h.push(new Ot.aU(e.id,e.label,void 0,!0,(()=>pf(this,void 0,void 0,(function*(){const i=yield s.createModelReference(d.uri);try{yield l.invokeFunction(e.run.bind(e),t,new Js(i.object.textEditorModel,ye.e.getStartPosition(d.range)))}finally{i.dispose()}})))));if(n.part.command){const{command:e}=n.part;h.push(new Ot.Z0),h.push(new Ot.aU(e.id,e.title,void 0,!0,(()=>pf(this,void 0,void 0,(function*(){var t;try{yield a.executeCommand(e.id,...null!==(t=e.arguments)&&void 0!==t?t:[])}catch(i){c.notify({severity:hi.zb.Error,source:n.item.provider.displayName,message:i})}})))))}const g=t.getOption(117);r.showContextMenu({domForShadowRoot:g&&null!==(o=t.getDomNode())&&void 0!==o?o:void 0,getAnchor:()=>{const e=At.i(i);return{x:e.left,y:e.top+e.height+8}},getActions:()=>h,onHide:()=>{t.focus()},autoSelectFirstItem:!0})}))}function ff(e,t,i,n){return pf(this,void 0,void 0,(function*(){const o=e.get(jn.S),s=yield o.createModelReference(n.uri);yield i.invokeWithinContext((e=>pf(this,void 0,void 0,(function*(){const o=t.hasSideBySideModifier,r=e.get(ce.i6),a=Eo.inPeekEditor.getValue(r),l=!o&&i.getOption(80)&&!a;return new er({openToSide:o,openInPeek:l,muteMessage:!0},{alias:"",label:"",id:"",precondition:void 0}).run(e,i,{model:s.object.textEditorModel,position:ye.e.getStartPosition(n.range)})})))),s.dispose()}))}var _f=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},vf=function(e,t){return function(i,n){t(i,n,e)}},bf=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class Cf{constructor(){this._entries=new Yi.z6(50)}get(e){const t=Cf._key(e);return this._entries.get(t)}set(e,t){const i=Cf._key(e);this._entries.set(i,t)}static _key(e){return`${e.uri.toString()}/${e.getVersionId()}`}}const wf=(0,Mt.yh)("IInlayHintsCache");(0,Ji.z)(wf,Cf,!0);class yf{constructor(e,t){this.item=e,this.index=t}get part(){const e=this.item.hint.label;return"string"==typeof e?{label:e}:e[this.index]}}class Sf{constructor(e,t){this.part=e,this.hasTriggerModifier=t}}let Lf=class e{constructor(e,t,i,n,o,s,r){this._editor=e,this._languageFeaturesService=t,this._inlayHintsCache=n,this._commandService=o,this._notificationService=s,this._instaService=r,this._disposables=new Ce.SL,this._sessionDisposables=new Ce.SL,this._decorationsMetadata=new Map,this._ruleFactory=new bn.t7(this._editor),this._activeRenderMode=0,this._debounceInfo=i.for(t.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(t.inlayHintsProvider.onDidChange((()=>this._update()))),this._disposables.add(e.onDidChangeModel((()=>this._update()))),this._disposables.add(e.onDidChangeModelLanguage((()=>this._update()))),this._disposables.add(e.onDidChangeConfiguration((e=>{e.hasChanged(129)&&this._update()}))),this._update()}static get(t){var i;return null!==(i=t.getContribution(e.ID))&&void 0!==i?i:void 0}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const e=this._editor.getOption(129);if("off"===e.enabled)return;const t=this._editor.getModel();if(!t||!this._languageFeaturesService.inlayHintsProvider.has(t))return;const i=this._inlayHintsCache.get(t);let n;i&&this._updateHintsDecorators([t.getFullModelRange()],i),this._sessionDisposables.add((0,Ce.OF)((()=>{t.isDisposed()||this._cacheHintsForFastRestore(t)})));const o=new Set,s=new be.pY((()=>bf(this,void 0,void 0,(function*(){const e=Date.now();null==n||n.dispose(!0),n=new it.A;const i=t.onWillDispose((()=>null==n?void 0:n.cancel()));try{const r=n.token,a=yield gf.create(this._languageFeaturesService.inlayHintsProvider,t,this._getHintsRanges(),r);if(s.delay=this._debounceInfo.update(t,Date.now()-e),r.isCancellationRequested)return void a.dispose();for(const e of a.provider)"function"!=typeof e.onDidChangeInlayHints||o.has(e)||(o.add(e),this._sessionDisposables.add(e.onDidChangeInlayHints((()=>{s.isScheduled()||s.schedule()}))));this._sessionDisposables.add(a),this._updateHintsDecorators(a.ranges,a.items),this._cacheHintsForFastRestore(t)}catch(r){(0,lt.dL)(r)}finally{n.dispose(),i.dispose()}}))),this._debounceInfo.get(t));if(this._sessionDisposables.add(s),this._sessionDisposables.add((0,Ce.OF)((()=>null==n?void 0:n.dispose(!0)))),s.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange((e=>{!e.scrollTopChanged&&s.isScheduled()||s.schedule()}))),this._sessionDisposables.add(this._editor.onDidChangeModelContent((e=>{const t=Math.max(s.delay,1250);s.schedule(t)}))),"on"===e.enabled)this._activeRenderMode=0;else{let t,i;"onUnlessPressed"===e.enabled?(t=0,i=1):(t=1,i=0),this._activeRenderMode=t,this._sessionDisposables.add(At._q.getInstance().event((e=>{if(!this._editor.hasModel())return;const n=e.altKey&&e.ctrlKey?i:t;if(n!==this._activeRenderMode){this._activeRenderMode=n;const e=this._editor.getModel(),t=this._copyInlayHintsWithCurrentAnchor(e);this._updateHintsDecorators([e.getFullModelRange()],t),s.schedule(0)}})))}this._sessionDisposables.add(this._installDblClickGesture((()=>s.schedule(0)))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const e=new Ce.SL,t=e.add(new Qn(this._editor)),i=new Ce.SL;return e.add(i),e.add(t.onMouseMoveOrRelevantKeyDown((e=>{const[t]=e,n=this._getInlayHintLabelPart(t),o=this._editor.getModel();if(!n||!o)return void i.clear();const s=new it.A;i.add((0,Ce.OF)((()=>s.dispose(!0)))),n.item.resolve(s.token),this._activeInlayHintPart=n.part.command||n.part.location?new Sf(n,t.hasTriggerModifier):void 0;const r=n.item.hint.position.lineNumber,a=new ye.e(r,1,r,o.getLineMaxColumn(r)),l=this._getInlineHintsForRange(a);this._updateHintsDecorators([a],l),i.add((0,Ce.OF)((()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([a],l)})))}))),e.add(t.onCancel((()=>i.clear()))),e.add(t.onExecute((e=>bf(this,void 0,void 0,(function*(){const t=this._getInlayHintLabelPart(e);if(t){const i=t.part;i.location?this._instaService.invokeFunction(ff,e,this._editor,i.location):Wo.mY.is(i.command)&&(yield this._invokeCommand(i.command,t.item))}}))))),e}_getInlineHintsForRange(e){const t=new Set;for(const i of this._decorationsMetadata.values())e.containsRange(i.item.anchor.range)&&t.add(i.item);return Array.from(t)}_installDblClickGesture(e){return this._editor.onMouseUp((t=>bf(this,void 0,void 0,(function*(){if(2!==t.event.detail)return;const i=this._getInlayHintLabelPart(t);if(i&&(t.event.preventDefault(),yield i.item.resolve(it.T.None),(0,at.Of)(i.item.hint.textEdits))){const t=i.item.hint.textEdits.map((e=>tc.h.replace(ye.e.lift(e.range),e.text)));this._editor.executeEdits("inlayHint.default",t),e()}}))))}_installContextMenu(){return this._editor.onContextMenu((e=>bf(this,void 0,void 0,(function*(){if(!(e.event.target instanceof HTMLElement))return;const t=this._getInlayHintLabelPart(e);t&&(yield this._instaService.invokeFunction(mf,this._editor,e.event.target,t))}))))}_getInlayHintLabelPart(e){var t;if(6!==e.target.type)return;const i=null===(t=e.target.detail.injectedText)||void 0===t?void 0:t.options;return i instanceof Le.HS&&(null==i?void 0:i.attachedData)instanceof yf?i.attachedData:void 0}_invokeCommand(e,t){var i;return bf(this,void 0,void 0,(function*(){try{yield this._commandService.executeCommand(e.id,...null!==(i=e.arguments)&&void 0!==i?i:[])}catch(n){this._notificationService.notify({severity:hi.zb.Error,source:t.provider.displayName,message:n})}}))}_cacheHintsForFastRestore(e){const t=this._copyInlayHintsWithCurrentAnchor(e);this._inlayHintsCache.set(e,t)}_copyInlayHintsWithCurrentAnchor(e){const t=new Map;for(const[i,n]of this._decorationsMetadata){if(t.has(n.item))continue;const o=e.getDecorationRange(i);if(o){const e=new hf(o,n.item.anchor.direction),i=n.item.with({anchor:e});t.set(n.item,i)}}return Array.from(t.values())}_getHintsRanges(){const e=this._editor.getModel(),t=this._editor.getVisibleRangesPlusViewportAboveBelow(),i=[];for(const n of t.sort(ye.e.compareRangesUsingStarts)){const t=e.validateRange(new ye.e(n.startLineNumber-30,n.startColumn,n.endLineNumber+30,n.endColumn));0!==i.length&&ye.e.areIntersectingOrTouching(i[i.length-1],t)?i[i.length-1]=ye.e.plusRange(i[i.length-1],t):i.push(t)}return i}_updateHintsDecorators(t,i){var n,o;const s=[],r=(e,t,i,n,o)=>{const r={content:i,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:t.className,cursorStops:n,attachedData:o};s.push({item:e,classNameRef:t,decoration:{range:e.anchor.range,options:{description:"InlayHint",showIfCollapsed:e.anchor.range.isEmpty(),collapseOnReplaceEdit:!e.anchor.range.isEmpty(),stickiness:0,[e.anchor.direction]:0===this._activeRenderMode?r:void 0}}})},a=(e,t)=>{const i=this._ruleFactory.createClassNameRef({width:(l/3|0)+"px",display:"inline-block"});r(e,i,"\u200a",t?Se.RM.Right:Se.RM.None)},{fontSize:l,fontFamily:c,padding:d,isUniform:h}=this._getLayoutInfo(),u="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(u,c);for(const p of i){p.hint.paddingLeft&&a(p,!1);const t="string"==typeof p.hint.label?[{label:p.hint.label}]:p.hint.label;for(let e=0;ee._MAX_DECORATORS)break}const g=[];for(const e of t)for(const{id:t}of null!==(o=this._editor.getDecorationsInRange(e))&&void 0!==o?o:[]){const e=this._decorationsMetadata.get(t);e&&(g.push(t),e.classNameRef.dispose(),this._decorationsMetadata.delete(t))}this._editor.changeDecorations((e=>{const t=e.deltaDecorations(g,s.map((e=>e.decoration)));for(let i=0;ii)&&(o=i);const s=e.fontFamily||n;return{fontSize:o,fontFamily:s,padding:t,isUniform:!t&&s===n&&o===i}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}};function kf(e){return e.replace(/[ \t]/g,"\xa0")}Lf.ID="editor.contrib.InlayHints",Lf._MAX_DECORATORS=1500,Lf=_f([vf(1,rt.p),vf(2,un.A),vf(3,wf),vf(4,ut.Hy),vf(5,hi.lT),vf(6,Mt.TG)],Lf),ut.P0.registerCommand("_executeInlayHintProvider",((e,...t)=>bf(void 0,void 0,void 0,(function*(){const[i,n]=t;(0,$i.p_)(ct.o.isUri(i)),(0,$i.p_)(ye.e.isIRange(n));const{inlayHintsProvider:o}=e.get(rt.p),s=yield e.get(jn.S).createModelReference(i);try{const e=yield gf.create(o,s.object.textEditorModel,[ye.e.lift(n)],it.T.None),t=e.items.map((e=>e.hint));return setTimeout((()=>e.dispose()),0),t}finally{s.dispose()}}))));var xf=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Df=function(e,t){return function(i,n){t(i,n,e)}},Nf=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))},Ef=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,i=e[Symbol.asyncIterator];return i?i.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(i){t[i]=e[i]&&function(t){return new Promise((function(n,o){(function(e,t,i,n){Promise.resolve(n).then((function(t){e({value:t,done:i})}),t)})(n,o,(t=e[i](t)).done,t.value)}))}}};class If extends br{constructor(e,t){super(10,t,e.item.anchor.range),this.part=e}}let Tf=class extends Ua{constructor(e,t,i,n,o,s){super(e,t,i,n,s),this._resolverService=o,this.hoverOrdinal=6}suggestHoverAnchor(e){var t;if(!Lf.get(this._editor))return null;if(6!==e.target.type)return null;const i=null===(t=e.target.detail.injectedText)||void 0===t?void 0:t.options;return i instanceof Le.HS&&i.attachedData instanceof yf?new If(i.attachedData,this):null}computeSync(){return[]}computeAsync(e,t,i){return e instanceof If?new be.Aq((t=>Nf(this,void 0,void 0,(function*(){var n,o;const{part:s}=e;if(yield s.item.resolve(i),i.isCancellationRequested)return;let r,a;if("string"==typeof s.item.hint.tooltip?r=(new ne.W5).appendText(s.item.hint.tooltip):s.item.hint.tooltip&&(r=s.item.hint.tooltip),r&&t.emitOne(new Ka(this,e.range,[r],0)),(0,at.Of)(s.item.hint.textEdits)&&t.emitOne(new Ka(this,e.range,[(new ne.W5).appendText((0,le.NC)("hint.dbl","Double click to insert"))],10001)),"string"==typeof s.part.tooltip?a=(new ne.W5).appendText(s.part.tooltip):s.part.tooltip&&(a=s.part.tooltip),a&&t.emitOne(new Ka(this,e.range,[a],1)),s.part.location||s.part.command){let i;const n="altKey"===this._editor.getOption(72)?We.dz?(0,le.NC)("links.navigate.kb.meta.mac","cmd + click"):(0,le.NC)("links.navigate.kb.meta","ctrl + click"):We.dz?(0,le.NC)("links.navigate.kb.alt.mac","option + click"):(0,le.NC)("links.navigate.kb.alt","alt + click");s.part.location&&s.part.command?i=(new ne.W5).appendText((0,le.NC)("hint.defAndCommand","Go to Definition ({0}), right click for more",n)):s.part.location?i=(new ne.W5).appendText((0,le.NC)("hint.def","Go to Definition ({0})",n)):s.part.command&&(i=new ne.W5(`[${(0,le.NC)("hint.cmd","Execute Command")}](${l=s.part.command,ct.o.from({scheme:Qo.lg.command,path:l.id,query:l.arguments&&encodeURIComponent(JSON.stringify(l.arguments))}).toString()} "${s.part.command.title}") (${n})`,{isTrusted:!0})),i&&t.emitOne(new Ka(this,e.range,[i],1e4))}var l;const c=yield this._resolveInlayHintLabelPartHover(s,i);try{for(var d,h=Ef(c);!(d=yield h.next()).done;){const e=d.value;t.emitOne(e)}}catch(u){n={error:u}}finally{try{d&&!d.done&&(o=h.return)&&(yield o.call(h))}finally{if(n)throw n.error}}})))):be.Aq.EMPTY}_resolveInlayHintLabelPartHover(e,t){return Nf(this,void 0,void 0,(function*(){if(!e.part.location)return be.Aq.EMPTY;const{uri:i,range:n}=e.part.location,o=yield this._resolverService.createModelReference(i);try{const i=o.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(i)?Wa(this._languageFeaturesService.hoverProvider,i,new we.L(n.startLineNumber,n.startColumn),t).filter((e=>!(0,ne.CP)(e.hover.contents))).map((t=>new Ka(this,e.item.anchor.range,t.hover.contents,2+t.ordinal))):be.Aq.EMPTY}finally{o.dispose()}}))}};Tf=xf([Df(1,zn.O),Df(2,Na.v4),Df(3,Pt.Ui),Df(4,jn.S),Df(5,rt.p)],Tf),(0,se._K)(Lf.ID,Lf),Cr.register(Tf);class Mf{constructor(e,t,i){this._editRange=e,this._originalSelection=t,this._text=i}getEditOperations(e,t){t.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(e,t){const i=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new re.Y(i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn),i.endLineNumber,Math.min(this._originalSelection.positionColumn,i.endColumn)):new re.Y(i.endLineNumber,i.endColumn-this._text.length,i.endLineNumber,i.endColumn)}}var Af=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Rf=function(e,t){return function(i,n){t(i,n,e)}};let Of=class e{constructor(e,t){this.editor=e,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection()}static get(t){return t.getContribution(e.ID)}dispose(){}run(t,i){this.currentRequest&&this.currentRequest.cancel();const n=this.editor.getSelection(),o=this.editor.getModel();if(!o||!n)return;let s=n;if(s.startLineNumber!==s.endLineNumber)return;const r=new dt.yy(this.editor,5),a=o.uri;return this.editorWorkerService.canNavigateValueSet(a)?(this.currentRequest=(0,be.PG)((e=>this.editorWorkerService.navigateValueSet(a,s,i))),this.currentRequest.then((i=>{if(!i||!i.range||!i.value)return;if(!r.validate(this.editor))return;const n=ye.e.lift(i.range);let o=i.range;const a=i.value.length-(s.endColumn-s.startColumn);o={startLineNumber:o.startLineNumber,startColumn:o.startColumn,endLineNumber:o.endLineNumber,endColumn:o.startColumn+i.value.length},a>1&&(s=new re.Y(s.startLineNumber,s.startColumn,s.endLineNumber,s.endColumn+a-1));const l=new Mf(n,s,i.value);this.editor.pushUndoStop(),this.editor.executeCommand(t,l),this.editor.pushUndoStop(),this.decorations.set([{range:o,options:e.DECORATION}]),this.decorationRemover&&this.decorationRemover.cancel(),this.decorationRemover=(0,be.Vs)(350),this.decorationRemover.then((()=>this.decorations.clear())).catch(lt.dL)})).catch(lt.dL)):Promise.resolve(void 0)}};Of.ID="editor.contrib.inPlaceReplaceController",Of.DECORATION=Le.qx.register({description:"in-place-replace",className:"valueSetReplacement"}),Of=Af([Rf(1,mu.p)],Of);class Pf extends se.R6{constructor(){super({id:"editor.action.inPlaceReplace.up",label:le.NC("InPlaceReplaceAction.previous.label","Replace with Previous Value"),alias:"Replace with Previous Value",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:3154,weight:100}})}run(e,t){const i=Of.get(t);return i?i.run(this.id,!0):Promise.resolve(void 0)}}class Ff extends se.R6{constructor(){super({id:"editor.action.inPlaceReplace.down",label:le.NC("InPlaceReplaceAction.next.label","Replace with Next Value"),alias:"Replace with Next Value",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:3156,weight:100}})}run(e,t){const i=Of.get(t);return i?i.run(this.id,!1):Promise.resolve(void 0)}}(0,se._K)(Of.ID,Of),(0,se.Qr)(Pf),(0,se.Qr)(Ff),(0,Ne.Ic)(((e,t)=>{const i=e.getColor(ke.Dl);i&&t.addRule(`.monaco-editor.vs .valueSetReplacement { outline: solid 2px ${i}; }`)}));var Bf=i(28108);class Vf extends se.R6{constructor(){super({id:"expandLineSelection",label:le.NC("expandLineSelection","Expand Line Selection"),alias:"Expand Line Selection",precondition:void 0,kbOpts:{weight:0,kbExpr:ae.u.textInputFocus,primary:2090}})}run(e,t,i){if(i=i||{},!t.hasModel())return;const n=t._getViewModel();n.model.pushStackElement(),n.setCursorStates(i.source,3,Bf.P.expandLineSelection(n,n.getCursorStates())),n.revealPrimaryCursor(i.source,!0)}}(0,se.Qr)(Vf);class Wf{constructor(e,t){this._selection=e,this._cursors=t,this._selectionId=null}getEditOperations(e,t){const i=function(e,t){t.sort(((e,t)=>e.lineNumber===t.lineNumber?e.column-t.column:e.lineNumber-t.lineNumber));for(let r=t.length-2;r>=0;r--)t[r].lineNumber===t[r+1].lineNumber&&t.splice(r,1);const i=[];let n=0,o=0;const s=t.length;for(let r=1,a=e.getLineCount();r<=a;r++){const a=e.getLineContent(r),l=a.length+1;let c=0;if(o=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},$f=function(e,t){return function(i,n){t(i,n,e)}};let qf=class{constructor(e,t,i,n){this._languageConfigurationService=n,this._selection=e,this._isMovingDown=t,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(e,t){const i=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===i)return void(this._selectionId=t.trackSelection(this._selection));if(!this._isMovingDown&&1===this._selection.startLineNumber)return void(this._selectionId=t.trackSelection(this._selection));this._moveEndPositionDown=!1;let n=this._selection;n.startLineNumbere.tokenization.getLineTokens(t),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(t,i)=>e.getLanguageIdAtPosition(t,i)},getLineContent:null};if(n.startLineNumber===n.endLineNumber&&1===e.getLineMaxColumn(n.startLineNumber)){const i=n.startLineNumber,o=this._isMovingDown?i+1:i-1;1===e.getLineMaxColumn(o)?t.addEditOperation(new ye.e(1,1,1,1),null):(t.addEditOperation(new ye.e(i,1,i,1),e.getLineContent(o)),t.addEditOperation(new ye.e(o,1,o,e.getLineMaxColumn(o)),null)),n=new re.Y(o,1,o,1)}else{let i,s;if(this._isMovingDown){i=n.endLineNumber+1,s=e.getLineContent(i),t.addEditOperation(new ye.e(i-1,e.getLineMaxColumn(i-1),i,e.getLineMaxColumn(i)),null);let c=s;if(this.shouldAutoIndent(e,n)){const d=this.matchEnterRule(e,a,o,i,n.startLineNumber-1);if(null!==d){const t=Km(d+jm(ot.V8(e.getLineContent(i)),o),o,r);c=t+this.trimLeft(s)}else{l.getLineContent=t=>t===n.startLineNumber?e.getLineContent(i):e.getLineContent(t);const t=(0,$m.n8)(this._autoIndent,l,e.getLanguageIdAtPosition(i,1),n.startLineNumber,a,this._languageConfigurationService);if(null!==t){const n=ot.V8(e.getLineContent(i)),a=jm(t,o);if(a!==jm(n,o)){const e=Km(a,o,r);c=e+this.trimLeft(s)}}}t.addEditOperation(new ye.e(n.startLineNumber,1,n.startLineNumber,1),c+"\n");const h=this.matchEnterRuleMovingDown(e,a,o,n.startLineNumber,i,c);if(null!==h)0!==h&&this.getIndentEditsOfMovingBlock(e,t,n,o,r,h);else{l.getLineContent=t=>t===n.startLineNumber?c:t>=n.startLineNumber+1&&t<=n.endLineNumber+1?e.getLineContent(t-1):e.getLineContent(t);const s=(0,$m.n8)(this._autoIndent,l,e.getLanguageIdAtPosition(i,1),n.startLineNumber+1,a,this._languageConfigurationService);if(null!==s){const i=ot.V8(e.getLineContent(n.startLineNumber)),a=jm(s,o),l=jm(i,o);if(a!==l){const i=a-l;this.getIndentEditsOfMovingBlock(e,t,n,o,r,i)}}}}else t.addEditOperation(new ye.e(n.startLineNumber,1,n.startLineNumber,1),c+"\n")}else if(i=n.startLineNumber-1,s=e.getLineContent(i),t.addEditOperation(new ye.e(i,1,i+1,1),null),t.addEditOperation(new ye.e(n.endLineNumber,e.getLineMaxColumn(n.endLineNumber),n.endLineNumber,e.getLineMaxColumn(n.endLineNumber)),"\n"+s),this.shouldAutoIndent(e,n)){l.getLineContent=t=>t===i?e.getLineContent(n.startLineNumber):e.getLineContent(t);const s=this.matchEnterRule(e,a,o,n.startLineNumber,n.startLineNumber-2);if(null!==s)0!==s&&this.getIndentEditsOfMovingBlock(e,t,n,o,r,s);else{const s=(0,$m.n8)(this._autoIndent,l,e.getLanguageIdAtPosition(n.startLineNumber,1),i,a,this._languageConfigurationService);if(null!==s){const i=ot.V8(e.getLineContent(n.startLineNumber)),a=jm(s,o),l=jm(i,o);if(a!==l){const i=a-l;this.getIndentEditsOfMovingBlock(e,t,n,o,r,i)}}}}}this._selectionId=t.trackSelection(n)}buildIndentConverter(e,t,i){return{shiftIndent:n=>zm.U.shiftIndent(n,n.length+1,e,t,i),unshiftIndent:n=>zm.U.unshiftIndent(n,n.length+1,e,t,i)}}parseEnterResult(e,t,i,n,o){if(o){let s=o.indentation;o.indentAction===jf.wU.None||o.indentAction===jf.wU.Indent?s=o.indentation+o.appendText:o.indentAction===jf.wU.IndentOutdent?s=o.indentation:o.indentAction===jf.wU.Outdent&&(s=t.unshiftIndent(o.indentation)+o.appendText);const r=e.getLineContent(n);if(this.trimLeft(r).indexOf(this.trimLeft(s))>=0){const o=ot.V8(e.getLineContent(n));let r=ot.V8(s);const a=(0,$m.tI)(e,n,this._languageConfigurationService);null!==a&&2&a&&(r=t.unshiftIndent(r));return jm(r,i)-jm(o,i)}}return null}matchEnterRuleMovingDown(e,t,i,n,o,s){if(ot.ow(s)>=0){const s=e.getLineMaxColumn(o),r=(0,Kf.A)(this._autoIndent,e,new ye.e(o,s,o,s),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,r)}{let o=n-1;for(;o>=1;){const t=e.getLineContent(o);if(ot.ow(t)>=0)break;o--}if(o<1||n>e.getLineCount())return null;const s=e.getLineMaxColumn(o),r=(0,Kf.A)(this._autoIndent,e,new ye.e(o,s,o,s),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,r)}}matchEnterRule(e,t,i,n,o,s){let r=o;for(;r>=1;){let t;t=r===o&&void 0!==s?s:e.getLineContent(r);if(ot.ow(t)>=0)break;r--}if(r<1||n>e.getLineCount())return null;const a=e.getLineMaxColumn(r),l=(0,Kf.A)(this._autoIndent,e,new ye.e(r,a,r,a),this._languageConfigurationService);return this.parseEnterResult(e,t,i,n,l)}trimLeft(e){return e.replace(/^\s+/,"")}shouldAutoIndent(e,t){if(this._autoIndent<4)return!1;if(!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;const i=e.getLanguageIdAtPosition(t.startLineNumber,1);return i===e.getLanguageIdAtPosition(t.endLineNumber,1)&&null!==this._languageConfigurationService.getLanguageConfiguration(i).indentRulesSupport}getIndentEditsOfMovingBlock(e,t,i,n,o,s){for(let r=i.startLineNumber;r<=i.endLineNumber;r++){const a=e.getLineContent(r),l=ot.V8(a),c=Km(jm(l,n)+s,n,o);c!==l&&(t.addEditOperation(new ye.e(r,1,r,l.length+1),c),r===i.endLineNumber&&i.endColumn<=l.length+1&&""===c&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&i.startLineNumber=o)return null;const s=[];for(let a=n;a<=o;a++)s.push(e.getLineContent(a));let r=s.slice(0);return r.sort(Gf.getCollator().compare),!0===i&&(r=r.reverse()),{startLineNumber:n,endLineNumber:o,before:s,after:r}}Gf._COLLATOR=null;class Zf extends se.R6{constructor(e,t){super(t),this.down=e}run(e,t){if(!t.hasModel())return;const i=t.getSelections().map(((e,t)=>({selection:e,index:t,ignore:!1})));i.sort(((e,t)=>ye.e.compareRangesUsingStarts(e.selection,t.selection)));let n=i[0];for(let s=1;snew we.L(e.positionLineNumber,e.positionColumn))));const o=t.getSelection();if(null===o)return;const s=new Wf(o,n);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop()}}t_.ID="editor.action.trimTrailingWhitespace";class i_ extends se.R6{constructor(){super({id:"editor.action.deleteLines",label:le.NC("lines.delete","Delete Line"),alias:"Delete Line",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.textInputFocus,primary:3113,weight:100}})}run(e,t){if(!t.hasModel())return;const i=this._getLinesToRemove(t),n=t.getModel();if(1===n.getLineCount()&&1===n.getLineMaxColumn(1))return;let o=0;const s=[],r=[];for(let a=0,l=i.length;a1&&(t-=1,c=n.getLineMaxColumn(t)),s.push(tc.h.replace(new re.Y(t,c,l,d),"")),r.push(new re.Y(t-o,e.positionColumn,t-o,e.positionColumn)),o+=e.endLineNumber-e.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,s,r),t.pushUndoStop()}_getLinesToRemove(e){const t=e.getSelections().map((e=>{let t=e.endLineNumber;return e.startLineNumbere.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber));const i=[];let n=t[0];for(let o=1;o=t[o].startLineNumber?n.endLineNumber=t[o].endLineNumber:(i.push(n),n=t[o]);return i.push(n),i}}class n_ extends se.R6{constructor(){super({id:"editor.action.indentLines",label:le.NC("lines.indent","Indent Line"),alias:"Indent Line",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:2137,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Hf.u6.indent(i.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}class o_ extends se.R6{constructor(){super({id:"editor.action.outdentLines",label:le.NC("lines.outdent","Outdent Line"),alias:"Outdent Line",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:2135,weight:100}})}run(e,t){ee.wk.Outdent.runEditorCommand(e,t,null)}}class s_ extends se.R6{constructor(){super({id:"editor.action.insertLineBefore",label:le.NC("lines.insertBefore","Insert Line Above"),alias:"Insert Line Above",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:3075,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Hf.u6.lineInsertBefore(i.cursorConfig,t.getModel(),t.getSelections())))}}class r_ extends se.R6{constructor(){super({id:"editor.action.insertLineAfter",label:le.NC("lines.insertAfter","Insert Line Below"),alias:"Insert Line Below",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:2051,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Hf.u6.lineInsertAfter(i.cursorConfig,t.getModel(),t.getSelections())))}}class a_ extends se.R6{run(e,t){if(!t.hasModel())return;const i=t.getSelection(),n=this._getRangesToDelete(t),o=[];for(let a=0,l=n.length-1;atc.h.replace(e,"")));t.pushUndoStop(),t.executeEdits(this.id,r,s),t.pushUndoStop()}}class l_ extends se.R6{constructor(){super({id:"editor.action.joinLines",label:le.NC("lines.joinLines","Join Lines"),alias:"Join Lines",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(e,t){const i=t.getSelections();if(null===i)return;let n=t.getSelection();if(null===n)return;i.sort(ye.e.compareRangesUsingStarts);const o=[],s=i.reduce(((e,t)=>e.isEmpty()?e.endLineNumber===t.startLineNumber?(n.equalsSelection(e)&&(n=t),t):t.startLineNumber>e.endLineNumber+1?(o.push(e),t):new re.Y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn):t.startLineNumber>e.endLineNumber?(o.push(e),t):new re.Y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn)));o.push(s);const r=t.getModel();if(null===r)return;const a=[],l=[];let c=n,d=0;for(let h=0,u=o.length;h=1){let i=!0;""===m&&(i=!1),!i||" "!==m.charAt(m.length-1)&&"\t"!==m.charAt(m.length-1)||(i=!1,m=m.replace(/[\s\uFEFF\xA0]+$/g," "));const n=e.substr(t-1);m+=(i?" ":"")+n,g=i?n.length+1:n.length}else g=0}const f=new ye.e(t,i,s,u);if(!f.isEmpty()){let i;e.isEmpty()?(a.push(tc.h.replace(f,m)),i=new re.Y(f.startLineNumber-d,m.length-g+1,t-d,m.length-g+1)):e.startLineNumber===e.endLineNumber?(a.push(tc.h.replace(f,m)),i=new re.Y(e.startLineNumber-d,e.startColumn,e.endLineNumber-d,e.endColumn)):(a.push(tc.h.replace(f,m)),i=new re.Y(e.startLineNumber-d,e.startColumn,e.startLineNumber-d,m.length-p)),null!==ye.e.intersectRanges(f,n)?c=i:l.push(i)}d+=f.endLineNumber-f.startLineNumber}l.unshift(c),t.pushUndoStop(),t.executeEdits(this.id,a,l),t.pushUndoStop()}}class c_ extends se.R6{constructor(){super({id:"editor.action.transpose",label:le.NC("editor.transpose","Transpose characters around the cursor"),alias:"Transpose characters around the cursor",precondition:ae.u.writable})}run(e,t){const i=t.getSelections();if(null===i)return;const n=t.getModel();if(null===n)return;const o=[];for(let s=0,r=i.length;s=r){if(t.lineNumber===n.getLineCount())continue;const e=new ye.e(t.lineNumber,Math.max(1,t.column-1),t.lineNumber+1,1),i=n.getValueInRange(e).split("").reverse().join("");o.push(new Pe.T4(new re.Y(t.lineNumber,Math.max(1,t.column-1),t.lineNumber+1,1),i))}else{const e=new ye.e(t.lineNumber,Math.max(1,t.column-1),t.lineNumber,t.column+1),i=n.getValueInRange(e).split("").reverse().join("");o.push(new Pe.hP(e,i,new re.Y(t.lineNumber,t.column+1,t.lineNumber,t.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class d_ extends se.R6{run(e,t){const i=t.getSelections();if(null===i)return;const n=t.getModel();if(null===n)return;const o=t.getOption(119),s=[];for(const r of i)if(r.isEmpty()){const e=r.getStartPosition(),i=t.getConfiguredWordAtPosition(e);if(!i)continue;const a=new ye.e(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn),l=n.getValueInRange(a);s.push(tc.h.replace(a,this._modifyText(l,o)))}else{const e=n.getValueInRange(r);s.push(tc.h.replace(r,this._modifyText(e,o)))}t.pushUndoStop(),t.executeEdits(this.id,s),t.pushUndoStop()}}class h_{constructor(e,t){this._pattern=e,this._flags=t,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch(e){}}return this._actual}isSupported(){return null!==this.get()}}class u_ extends d_{constructor(){super({id:"editor.action.transformToTitlecase",label:le.NC("editor.transformToTitlecase","Transform to Title Case"),alias:"Transform to Title Case",precondition:ae.u.writable})}_modifyText(e,t){const i=u_.titleBoundary.get();return i?e.toLocaleLowerCase().replace(i,(e=>e.toLocaleUpperCase())):e}}u_.titleBoundary=new h_("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");class g_ extends d_{constructor(){super({id:"editor.action.transformToSnakecase",label:le.NC("editor.transformToSnakecase","Transform to Snake Case"),alias:"Transform to Snake Case",precondition:ae.u.writable})}_modifyText(e,t){const i=g_.caseBoundary.get(),n=g_.singleLetters.get();return i&&n?e.replace(i,"$1_$2").replace(n,"$1_$2$3").toLocaleLowerCase():e}}g_.caseBoundary=new h_("(\\p{Ll})(\\p{Lu})","gmu"),g_.singleLetters=new h_("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");class p_ extends d_{constructor(){super({id:"editor.action.transformToKebabcase",label:le.NC("editor.transformToKebabcase","Transform to Kebab Case"),alias:"Transform to Kebab Case",precondition:ae.u.writable})}static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every((e=>e.isSupported()))}_modifyText(e,t){const i=p_.caseBoundary.get(),n=p_.singleLetters.get(),o=p_.underscoreBoundary.get();return i&&n&&o?e.replace(o,"$1-$3").replace(i,"$1-$2").replace(n,"$1-$2").toLocaleLowerCase():e}}p_.caseBoundary=new h_("(\\p{Ll})(\\p{Lu})","gmu"),p_.singleLetters=new h_("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu"),p_.underscoreBoundary=new h_("(\\S)(_)(\\S)","gm"),(0,se.Qr)(class extends Zf{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:le.NC("lines.copyUp","Copy Line Up"),alias:"Copy Line Up",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:xe.eH.MenubarSelectionMenu,group:"2_line",title:le.NC({key:"miCopyLinesUp",comment:["&& denotes a mnemonic"]},"&&Copy Line Up"),order:1}})}}),(0,se.Qr)(class extends Zf{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:le.NC("lines.copyDown","Copy Line Down"),alias:"Copy Line Down",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:xe.eH.MenubarSelectionMenu,group:"2_line",title:le.NC({key:"miCopyLinesDown",comment:["&& denotes a mnemonic"]},"Co&&py Line Down"),order:2}})}}),(0,se.Qr)(Yf),(0,se.Qr)(class extends Jf{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:le.NC("lines.moveUp","Move Line Up"),alias:"Move Line Up",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:xe.eH.MenubarSelectionMenu,group:"2_line",title:le.NC({key:"miMoveLinesUp",comment:["&& denotes a mnemonic"]},"Mo&&ve Line Up"),order:3}})}}),(0,se.Qr)(class extends Jf{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:le.NC("lines.moveDown","Move Line Down"),alias:"Move Line Down",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:xe.eH.MenubarSelectionMenu,group:"2_line",title:le.NC({key:"miMoveLinesDown",comment:["&& denotes a mnemonic"]},"Move &&Line Down"),order:4}})}}),(0,se.Qr)(class extends Xf{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:le.NC("lines.sortAscending","Sort Lines Ascending"),alias:"Sort Lines Ascending",precondition:ae.u.writable})}}),(0,se.Qr)(class extends Xf{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:le.NC("lines.sortDescending","Sort Lines Descending"),alias:"Sort Lines Descending",precondition:ae.u.writable})}}),(0,se.Qr)(e_),(0,se.Qr)(t_),(0,se.Qr)(i_),(0,se.Qr)(n_),(0,se.Qr)(o_),(0,se.Qr)(s_),(0,se.Qr)(r_),(0,se.Qr)(class extends a_{constructor(){super({id:"deleteAllLeft",label:le.NC("lines.deleteAllLeft","Delete All Left"),alias:"Delete All Left",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(e,t){let i=null;const n=[];let o=0;return t.forEach((t=>{let s;if(1===t.endColumn&&o>0){const e=t.startLineNumber-o;s=new re.Y(e,t.startColumn,e,t.startColumn)}else s=new re.Y(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn);o+=t.endLineNumber-t.startLineNumber,t.intersectRanges(e)?i=s:n.push(s)})),i&&n.unshift(i),n}_getRangesToDelete(e){const t=e.getSelections();if(null===t)return[];let i=t;const n=e.getModel();return null===n?[]:(i.sort(ye.e.compareRangesUsingStarts),i=i.map((e=>{if(e.isEmpty()){if(1===e.startColumn){const t=Math.max(1,e.startLineNumber-1),i=1===e.startLineNumber?1:n.getLineContent(t).length+1;return new ye.e(t,i,e.startLineNumber,1)}return new ye.e(e.startLineNumber,1,e.startLineNumber,e.startColumn)}return new ye.e(e.startLineNumber,1,e.endLineNumber,e.endColumn)})),i)}}),(0,se.Qr)(class extends a_{constructor(){super({id:"deleteAllRight",label:le.NC("lines.deleteAllRight","Delete All Right"),alias:"Delete All Right",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(e,t){let i=null;const n=[];for(let o=0,s=t.length,r=0;o{if(e.isEmpty()){const i=t.getLineMaxColumn(e.startLineNumber);return e.startColumn===i?new ye.e(e.startLineNumber,e.startColumn,e.startLineNumber+1,1):new ye.e(e.startLineNumber,e.startColumn,e.startLineNumber,i)}return e}));return n.sort(ye.e.compareRangesUsingStarts),n}}),(0,se.Qr)(l_),(0,se.Qr)(c_),(0,se.Qr)(class extends d_{constructor(){super({id:"editor.action.transformToUppercase",label:le.NC("editor.transformToUppercase","Transform to Uppercase"),alias:"Transform to Uppercase",precondition:ae.u.writable})}_modifyText(e,t){return e.toLocaleUpperCase()}}),(0,se.Qr)(class extends d_{constructor(){super({id:"editor.action.transformToLowercase",label:le.NC("editor.transformToLowercase","Transform to Lowercase"),alias:"Transform to Lowercase",precondition:ae.u.writable})}_modifyText(e,t){return e.toLocaleLowerCase()}}),g_.caseBoundary.isSupported()&&g_.singleLetters.isSupported()&&(0,se.Qr)(g_),u_.titleBoundary.isSupported()&&(0,se.Qr)(u_),p_.isSupported()&&(0,se.Qr)(p_);var m_=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},f_=function(e,t){return function(i,n){t(i,n,e)}},__=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const v_=new ce.uy("LinkedEditingInputVisible",!1),b_="linked-editing-decoration";let C_=class e extends Ce.JT{constructor(e,t,i,n,o){super(),this.languageConfigurationService=n,this._syncRangesToken=0,this._localToDispose=this._register(new Ce.SL),this._editor=e,this._providers=i.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=v_.bindTo(t),this._debounceInformation=o.for(this._providers,"Linked Editing",{min:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new Ce.SL),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequest=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel((()=>this.reinitialize(!0)))),this._register(this._editor.onDidChangeConfiguration((e=>{(e.hasChanged(64)||e.hasChanged(84))&&this.reinitialize(!1)}))),this._register(this._providers.onDidChange((()=>this.reinitialize(!1)))),this._register(this._editor.onDidChangeModelLanguage((()=>this.reinitialize(!0)))),this.reinitialize(!0)}static get(t){return t.getContribution(e.ID)}reinitialize(e){const t=this._editor.getModel(),i=null!==t&&(this._editor.getOption(64)||this._editor.getOption(84))&&this._providers.has(t);if(i===this._enabled&&!e)return;if(this._enabled=i,this.clearRanges(),this._localToDispose.clear(),!i||null===t)return;this._localToDispose.add(Yt.ju.runAndSubscribe(t.onDidChangeLanguageConfiguration,(()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition()})));const n=new be.vp(this._debounceInformation.get(t)),o=()=>{var e;this._rangeUpdateTriggerPromise=n.trigger((()=>this.updateRanges()),null!==(e=this._debounceDuration)&&void 0!==e?e:this._debounceInformation.get(t))},s=new be.vp(0),r=e=>{this._rangeSyncTriggerPromise=s.trigger((()=>this._syncRanges(e)))};this._localToDispose.add(this._editor.onDidChangeCursorPosition((()=>{o()}))),this._localToDispose.add(this._editor.onDidChangeModelContent((e=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const t=this._currentDecorations.getRange(0);if(t&&e.changes.every((e=>t.intersectRanges(e.range))))return void r(this._syncRangesToken)}o()}))),this._localToDispose.add({dispose:()=>{n.dispose(),s.dispose()}}),this.updateRanges()}_syncRanges(e){if(!this._editor.hasModel()||e!==this._syncRangesToken||0===this._currentDecorations.length)return;const t=this._editor.getModel(),i=this._currentDecorations.getRange(0);if(!i||i.startLineNumber!==i.endLineNumber)return this.clearRanges();const n=t.getValueInRange(i);if(this._currentWordPattern){const e=n.match(this._currentWordPattern);if((e?e[0].length:0)!==n.length)return this.clearRanges()}const o=[];for(let s=1,r=this._currentDecorations.length;s1)return void this.clearRanges();const n=this._editor.getModel(),o=n.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===o){if(i.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const e=this._currentDecorations.getRange(0);if(e&&e.containsPosition(i))return}}this._currentRequestPosition=i,this._currentRequestModelVersion=o;const s=(0,be.PG)((t=>__(this,void 0,void 0,(function*(){try{const r=new vn.G(!1),a=yield S_(this._providers,n,i,t);if(this._debounceInformation.update(n,r.elapsed()),s!==this._currentRequest)return;if(this._currentRequest=null,o!==n.getVersionId())return;let l=[];(null==a?void 0:a.ranges)&&(l=a.ranges),this._currentWordPattern=(null==a?void 0:a.wordPattern)||this._languageWordPattern;let c=!1;for(let e=0,t=l.length;e({range:t,options:e.DECORATION})));this._visibleContextKey.set(!0),this._currentDecorations.set(d),this._syncRangesToken++}catch(r){(0,lt.n2)(r)||(0,lt.dL)(r),this._currentRequest!==s&&this._currentRequest||this.clearRanges()}}))));return this._currentRequest=s,s}))}};C_.ID="editor.contrib.linkedEditing",C_.DECORATION=Le.qx.register({description:"linked-editing",stickiness:0,className:b_}),C_=m_([f_(1,ce.i6),f_(2,rt.p),f_(3,Xn.c_),f_(4,un.A)],C_);class w_ extends se.R6{constructor(){super({id:"editor.action.linkedEditing",label:le.NC("linkedEditing.label","Start Linked Editing"),alias:"Start Linked Editing",precondition:ce.Ao.and(ae.u.writable,ae.u.hasRenameProvider),kbOpts:{kbExpr:ae.u.editorTextFocus,primary:3132,weight:100}})}runCommand(e,t){const i=e.get(ze.$),[n,o]=Array.isArray(t)&&t||[void 0,void 0];return ct.o.isUri(n)&&we.L.isIPosition(o)?i.openCodeEditor({resource:n},i.getActiveCodeEditor()).then((e=>{e&&(e.setPosition(o),e.invokeWithinContext((t=>(this.reportTelemetry(t,e),this.run(t,e)))))}),lt.dL):super.runCommand(e,t)}run(e,t){const i=C_.get(t);return i?Promise.resolve(i.updateRanges(!0)):Promise.resolve()}}const y_=se._l.bindToContribution(C_.get);function S_(e,t,i,n){const o=e.ordered(t);return(0,be.Ps)(o.map((e=>()=>__(this,void 0,void 0,(function*(){try{return yield e.provideLinkedEditingRanges(t,i,n)}catch(o){return void(0,lt.Cp)(o)}})))),(e=>!!e&&at.Of(null==e?void 0:e.ranges)))}(0,se.fK)(new y_({id:"cancelLinkedEditingInput",precondition:v_,handler:e=>e.clearRanges(),kbOpts:{kbExpr:ae.u.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));const L_=(0,De.P6G)("editor.linkedEditingBackground",{dark:_n.Il.fromHex("#f00").transparent(.3),light:_n.Il.fromHex("#f00").transparent(.3),hcDark:_n.Il.fromHex("#f00").transparent(.3),hcLight:_n.Il.white},le.NC("editorLinkedEditingBackground","Background color when the editor auto renames on type."));(0,Ne.Ic)(((e,t)=>{const i=e.getColor(L_);i&&t.addRule(`.monaco-editor .${b_} { background: ${i}; border-left-color: ${i}; }`)})),(0,se.sb)("_executeLinkedEditingProvider",((e,t,i)=>{const{linkedEditingRangeProvider:n}=e.get(rt.p);return S_(n,t,i,it.T.None)})),(0,se._K)(C_.ID,C_),(0,se.Qr)(w_);var k_=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class x_{constructor(e,t){this._link=e,this._provider=t}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}resolve(e){return k_(this,void 0,void 0,(function*(){return this._link.url?this._link.url:"function"==typeof this._provider.resolveLink?Promise.resolve(this._provider.resolveLink(this._link,e)).then((t=>(this._link=t||this._link,this._link.url?this.resolve(e):Promise.reject(new Error("missing"))))):Promise.reject(new Error("missing"))}))}}class D_{constructor(e){this._disposables=new Ce.SL;let t=[];for(const[i,n]of e){const e=i.links.map((e=>new x_(e,n)));t=D_._union(t,e),(0,Ce.Wf)(i)&&this._disposables.add(i)}this.links=t}dispose(){this._disposables.dispose(),this.links.length=0}static _union(e,t){const i=[];let n,o,s,r;for(n=0,s=0,o=e.length,r=t.length;nPromise.resolve(e.provideLinks(t,i)).then((t=>{t&&(n[o]=[t,e])}),lt.Cp)));return Promise.all(o).then((()=>{const e=new D_((0,at.kX)(n));return i.isCancellationRequested?(e.dispose(),new D_([])):e}))}ut.P0.registerCommand("_executeLinkProvider",((e,...t)=>k_(void 0,void 0,void 0,(function*(){let[i,n]=t;(0,$i.p_)(i instanceof ct.o),"number"!=typeof n&&(n=0);const{linkProvider:o}=e.get(rt.p),s=e.get(ht.q).getModel(i);if(!s)return[];const r=yield N_(o,s,it.T.None);if(!r)return[];for(let e=0;e=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},I_=function(e,t){return function(i,n){t(i,n,e)}},T_=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let M_=class e extends Ce.JT{constructor(e,t,i,n,o){super(),this.editor=e,this.openerService=t,this.notificationService=i,this.languageFeaturesService=n,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=o.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new be.pY((()=>this.computeLinksNow()),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const s=this._register(new Qn(e));this._register(s.onMouseMoveOrRelevantKeyDown((([e,t])=>{this._onEditorMouseMove(e,t)}))),this._register(s.onExecute((e=>{this.onEditorMouseUp(e)}))),this._register(s.onCancel((e=>{this.cleanUpActiveLinkDecoration()}))),this._register(e.onDidChangeConfiguration((e=>{e.hasChanged(65)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))}))),this._register(e.onDidChangeModelContent((e=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))}))),this._register(e.onDidChangeModel((e=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)}))),this._register(e.onDidChangeModelLanguage((e=>{this.stop(),this.computeLinks.schedule(0)}))),this._register(this.providers.onDidChange((e=>{this.stop(),this.computeLinks.schedule(0)}))),this.computeLinks.schedule(0)}static get(t){return t.getContribution(e.ID)}computeLinksNow(){return T_(this,void 0,void 0,(function*(){if(!this.editor.hasModel()||!this.editor.getOption(65))return;const e=this.editor.getModel();if(this.providers.has(e)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=(0,be.PG)((t=>N_(this.providers,e,t)));try{const t=new vn.G(!1);if(this.activeLinksList=yield this.computePromise,this.debounceInformation.update(e,t.elapsed()),e.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){(0,lt.dL)(t)}finally{this.computePromise=null}}}))}updateDecorations(e){const t="altKey"===this.editor.getOption(72),i=[],n=Object.keys(this.currentOccurrences);for(const s of n){const e=this.currentOccurrences[s];i.push(e.decorationId)}const o=[];if(e)for(const s of e)o.push(R_.decoration(s,t));this.editor.changeDecorations((t=>{const n=t.deltaDecorations(i,o);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let i=0,o=n.length;i{t.activate(e,i),this.activeLinkDecorationId=t.decorationId}))}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const e="altKey"===this.editor.getOption(72);if(this.activeLinkDecorationId){const t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations((i=>{t.deactivate(i,e)})),this.activeLinkDecorationId=null}}onEditorMouseUp(e){if(!this.isEnabled(e))return;const t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}openLinkOccurrence(e,t,i=!1){if(!this.openerService)return;const{link:n}=e;n.resolve(it.T.None).then((e=>{if("string"==typeof e&&this.editor.hasModel()){const t=this.editor.getModel().uri;if(t.scheme===Qo.lg.file&&e.startsWith(`${Qo.lg.file}:`)){const i=ct.o.parse(e);if(i.scheme===Qo.lg.file){const n=ui.z_(i);let o=null;n.startsWith("/./")?o=`.${n.substr(1)}`:n.startsWith("//./")&&(o=`.${n.substr(2)}`),o&&(e=ui.Vo(t,o))}}}return this.openerService.open(e,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})}),(e=>{const t=e instanceof Error?e.message:e;"invalid"===t?this.notificationService.warn(le.NC("invalid.url","Failed to open this link because it is not well-formed: {0}",n.url.toString())):"missing"===t?this.notificationService.warn(le.NC("missing.url","Failed to open this link because its target is missing.")):(0,lt.dL)(e)}))}getLinkOccurrence(e){if(!this.editor.hasModel()||!e)return null;const t=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);for(const i of t){const e=this.currentOccurrences[i.id];if(e)return e}return null}isEnabled(e,t){return Boolean(6===e.target.type&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}stop(){var e;this.computeLinks.cancel(),this.activeLinksList&&(null===(e=this.activeLinksList)||void 0===e||e.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};M_.ID="editor.linkDetector",M_=E_([I_(1,Na.v4),I_(2,hi.lT),I_(3,rt.p),I_(4,un.A)],M_);const A_={general:Le.qx.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:Le.qx.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class R_{constructor(e,t){this.link=e,this.decorationId=t}static decoration(e,t){return{range:e.range,options:R_._getOptions(e,t,!1)}}static _getOptions(e,t,i){const n=Object.assign({},i?A_.active:A_.general);return n.hoverMessage=function(e,t){const i=e.url&&/^command:/i.test(e.url.toString()),n=e.tooltip?e.tooltip:i?le.NC("links.navigate.executeCmd","Execute command"):le.NC("links.navigate.follow","Follow link"),o=t?We.dz?le.NC("links.navigate.kb.meta.mac","cmd + click"):le.NC("links.navigate.kb.meta","ctrl + click"):We.dz?le.NC("links.navigate.kb.alt.mac","option + click"):le.NC("links.navigate.kb.alt","alt + click");if(e.url){let t="";if(/^command:/i.test(e.url.toString())){const i=e.url.toString().match(/^command:([^?#]+)/);if(i){const e=i[1];t=le.NC("tooltip.explanation","Execute command {0}",e)}}return new ne.W5("",!0).appendLink(e.url.toString(!0).replace(/ /g,"%20"),n,t).appendMarkdown(` (${o})`)}return(new ne.W5).appendText(`${n} (${o})`)}(e,t),n}activate(e,t){e.changeDecorationOptions(this.decorationId,R_._getOptions(this.link,t,!0))}deactivate(e,t){e.changeDecorationOptions(this.decorationId,R_._getOptions(this.link,t,!1))}}class O_ extends se.R6{constructor(){super({id:"editor.action.openLink",label:le.NC("label","Open Link"),alias:"Open Link",precondition:void 0})}run(e,t){const i=M_.get(t);if(!i)return;if(!t.hasModel())return;const n=t.getSelections();for(const o of n){const e=i.getLinkOccurrence(o.getEndPosition());e&&i.openLinkOccurrence(e,!1)}}}(0,se._K)(M_.ID,M_),(0,se.Qr)(O_),(0,Ne.Ic)(((e,t)=>{const i=e.getColor(De._Yy);i&&t.addRule(`.monaco-editor .detected-link-active { color: ${i} !important; }`)}));var P_=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},F_=function(e,t){return function(i,n){t(i,n,e)}};function B_(e,t){const i=t.filter((t=>!e.find((e=>e.equals(t)))));if(i.length>=1){const e=i.map((e=>`line ${e.viewState.position.lineNumber} column ${e.viewState.position.column}`)).join(", "),t=1===i.length?le.NC("cursorAdded","Cursor added: {0}",e):le.NC("cursorsAdded","Cursors added: {0}",e);(0,ie.i7)(t)}}class V_ extends se.R6{constructor(){super({id:"editor.action.insertCursorAbove",label:le.NC("mutlicursor.insertAbove","Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:xe.eH.MenubarSelectionMenu,group:"3_multi",title:le.NC({key:"miInsertCursorAbove",comment:["&& denotes a mnemonic"]},"&&Add Cursor Above"),order:2}})}run(e,t,i){if(!t.hasModel())return;let n=!0;i&&!1===i.logicalLine&&(n=!1);const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const s=o.getCursorStates();o.setCursorStates(i.source,3,Bf.P.addCursorUp(o,s,n)),o.revealTopMostCursor(i.source),B_(s,o.getCursorStates())}}class W_ extends se.R6{constructor(){super({id:"editor.action.insertCursorBelow",label:le.NC("mutlicursor.insertBelow","Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:xe.eH.MenubarSelectionMenu,group:"3_multi",title:le.NC({key:"miInsertCursorBelow",comment:["&& denotes a mnemonic"]},"A&&dd Cursor Below"),order:3}})}run(e,t,i){if(!t.hasModel())return;let n=!0;i&&!1===i.logicalLine&&(n=!1);const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const s=o.getCursorStates();o.setCursorStates(i.source,3,Bf.P.addCursorDown(o,s,n)),o.revealBottomMostCursor(i.source),B_(s,o.getCursorStates())}}class H_ extends se.R6{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:le.NC("mutlicursor.insertAtEndOfEachLineSelected","Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:xe.eH.MenubarSelectionMenu,group:"3_multi",title:le.NC({key:"miInsertCursorAtEndOfEachLineSelected",comment:["&& denotes a mnemonic"]},"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(e,t,i){if(!e.isEmpty()){for(let n=e.startLineNumber;n1&&i.push(new re.Y(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;const i=t.getModel(),n=t.getSelections(),o=t._getViewModel(),s=o.getCursorStates(),r=[];n.forEach((e=>this.getCursorsForSelection(e,i,r))),r.length>0&&t.setSelections(r),B_(s,o.getCursorStates())}}class z_ extends se.R6{constructor(){super({id:"editor.action.addCursorsToBottom",label:le.NC("mutlicursor.addCursorsToBottom","Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),n=t.getModel().getLineCount(),o=[];for(let a=i[0].startLineNumber;a<=n;a++)o.push(new re.Y(a,i[0].startColumn,a,i[0].endColumn));const s=t._getViewModel(),r=s.getCursorStates();o.length>0&&t.setSelections(o),B_(r,s.getCursorStates())}}class j_ extends se.R6{constructor(){super({id:"editor.action.addCursorsToTop",label:le.NC("mutlicursor.addCursorsToTop","Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),n=[];for(let r=i[0].startLineNumber;r>=1;r--)n.push(new re.Y(r,i[0].startColumn,r,i[0].endColumn));const o=t._getViewModel(),s=o.getCursorStates();n.length>0&&t.setSelections(n),B_(s,o.getCursorStates())}}class K_{constructor(e,t,i){this.selections=e,this.revealRange=t,this.revealScrollType=i}}class U_{constructor(e,t,i,n,o,s,r){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=i,this.searchText=n,this.wholeWord=o,this.matchCase=s,this.currentMatch=r}static create(e,t){if(!e.hasModel())return null;const i=t.getState();if(!e.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new U_(e,t,!1,i.searchString,i.wholeWord,i.matchCase,null);let n,o,s=!1;const r=e.getSelections();1===r.length&&r[0].isEmpty()?(s=!0,n=!0,o=!0):(n=i.wholeWord,o=i.matchCase);const a=e.getSelection();let l,c=null;if(a.isEmpty()){const t=e.getConfiguredWordAtPosition(a.getStartPosition());if(!t)return null;l=t.word,c=new re.Y(a.startLineNumber,t.startColumn,a.startLineNumber,t.endColumn)}else l=e.getModel().getValueInRange(a).replace(/\r\n/g,"\n");return new U_(e,t,s,l,n,o,c)}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new K_(t.concat(e),e,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new K_(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findNextMatch(this.searchText,t.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(119):null,!1);return i?new re.Y(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new K_(t.concat(e),e,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new K_(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,t.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(119):null,!1);return i?new re.Y(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}selectAll(e){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const t=this._editor.getModel();return e?t.findMatches(this.searchText,e,!1,this.matchCase,this.wholeWord?this._editor.getOption(119):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(119):null,!1,1073741824)}}class $_ extends Ce.JT{constructor(e){super(),this._sessionDispose=this._register(new Ce.SL),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}static get(e){return e.getContribution($_.ID)}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){const t=U_.create(this._editor,e);if(!t)return;this._session=t;const i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection((e=>{this._ignoreSelectionChange||this._endSession()}))),this._sessionDispose.add(this._editor.onDidBlurEditorText((()=>{this._endSession()}))),this._sessionDispose.add(e.getState().onFindReplaceStateChange((e=>{(e.matchCase||e.wholeWord)&&this._endSession()})))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const e={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(e,!1)}this._session=null}_setSelections(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}_expandEmptyToWord(e,t){if(!t.isEmpty())return t;const i=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return i?new re.Y(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):t}_applySessionResult(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}getSession(e){return this._session}addSelectionToNextFindMatch(e){if(this._editor.hasModel()){if(!this._session){const t=this._editor.getSelections();if(t.length>1){const i=e.getState().matchCase;if(!Z_(this._editor.getModel(),t,i)){const e=this._editor.getModel(),i=[];for(let n=0,o=t.length;n0&&i.isRegex){const e=this._editor.getModel();t=i.searchScope?e.findMatches(i.searchString,i.searchScope,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(119):null,!1,1073741824):e.findMatches(i.searchString,!0,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(119):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll(i.searchScope)}if(t.length>0){const e=this._editor.getSelection();for(let i=0,n=t.length;inew re.Y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn))))}}}$_.ID="editor.contrib.multiCursorController";class q_ extends se.R6{run(e,t){const i=$_.get(t);if(!i)return;const n=Sh.get(t);if(!n)return;const o=t._getViewModel();if(o){const e=o.getCursorStates();this._run(i,n),B_(e,o.getCursorStates())}}}class G_{constructor(e,t,i,n,o){this._model=e,this._searchText=t,this._matchCase=i,this._wordSeparators=n,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,o&&this._model===o._model&&this._searchText===o._searchText&&this._matchCase===o._matchCase&&this._wordSeparators===o._wordSeparators&&this._modelVersionId===o._modelVersionId&&(this._cachedFindMatches=o._cachedFindMatches)}findMatches(){return null===this._cachedFindMatches&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map((e=>e.range)),this._cachedFindMatches.sort(ye.e.compareRangesUsingStarts)),this._cachedFindMatches}}let Q_=class e extends Ce.JT{constructor(e,t){super(),this._languageFeaturesService=t,this.editor=e,this._isEnabled=e.getOption(99),this._decorations=e.createDecorationsCollection(),this.updateSoon=this._register(new be.pY((()=>this._update()),300)),this.state=null,this._register(e.onDidChangeConfiguration((t=>{this._isEnabled=e.getOption(99)}))),this._register(e.onDidChangeCursorSelection((e=>{this._isEnabled&&(e.selection.isEmpty()?3===e.reason?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())}))),this._register(e.onDidChangeModel((e=>{this._setState(null)}))),this._register(e.onDidChangeModelContent((e=>{this._isEnabled&&this.updateSoon.schedule()})));const i=Sh.get(e);i&&this._register(i.getState().onFindReplaceStateChange((e=>{this._update()})))}_update(){this._setState(e._createState(this.state,this._isEnabled,this.editor))}static _createState(e,t,i){if(!t)return null;if(!i.hasModel())return null;const n=i.getSelection();if(n.startLineNumber!==n.endLineNumber)return null;const o=$_.get(i);if(!o)return null;const s=Sh.get(i);if(!s)return null;let r=o.getSession(s);if(!r){const e=i.getSelections();if(e.length>1){const t=s.getState().matchCase;if(!Z_(i.getModel(),e,t))return null}r=U_.create(i,s)}if(!r)return null;if(r.currentMatch)return null;if(/^[ \t]+$/.test(r.searchText))return null;if(r.searchText.length>200)return null;const a=s.getState(),l=a.matchCase;if(a.isRevealed){let e=a.searchString;l||(e=e.toLowerCase());let t=r.searchText;if(l||(t=t.toLowerCase()),e===t&&r.matchCase===a.matchCase&&r.wholeWord===a.wholeWord&&!a.isRegex)return null}return new G_(i.getModel(),r.searchText,r.matchCase,r.wholeWord?i.getOption(119):null,e)}_setState(t){if(this.state=t,!this.state)return void this._decorations.clear();if(!this.editor.hasModel())return;const i=this.editor.getModel();if(i.isTooLargeForTokenization())return;const n=this.state.findMatches(),o=this.editor.getSelections();o.sort(ye.e.compareRangesUsingStarts);const s=[];for(let e=0,l=0,c=n.length,d=o.length;e=d)s.push(t),e++;else{const i=ye.e.compareRangesUsingStarts(t,o[l]);i<0?(!o[l].isEmpty()&&ye.e.areIntersecting(t,o[l])||s.push(t),e++):(i>0||e++,l++)}}const r=this._languageFeaturesService.documentHighlightProvider.has(i)&&this.editor.getOption(74),a=s.map((t=>({range:t,options:r?e._SELECTION_HIGHLIGHT:e._SELECTION_HIGHLIGHT_OVERVIEW})));this._decorations.set(a)}dispose(){this._setState(null),super.dispose()}};function Z_(e,t,i){const n=Y_(e,t[0],!i);for(let o=1,s=t.length;oev(void 0,void 0,void 0,(function*(){const[i,n,o]=t;(0,$i.p_)(ct.o.isUri(i)),(0,$i.p_)(we.L.isIPosition(n)),(0,$i.p_)("string"==typeof o||!o);const s=e.get(rt.p),r=yield e.get(jn.S).createModelReference(i);try{const e=yield iv(s.signatureHelpProvider,r.object.textEditorModel,we.L.lift(n),{triggerKind:Wo.WW.Invoke,isRetrigger:!1,triggerCharacter:o},it.T.None);if(!e)return;return setTimeout((()=>e.dispose()),0),e.value}finally{r.dispose()}}))));var nv,ov=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};!function(e){e.Default={type:0};e.Pending=class{constructor(e,t){this.request=e,this.previouslyActiveHints=t,this.type=2}};e.Active=class{constructor(e){this.hints=e,this.type=1}}}(nv||(nv={}));class sv extends Ce.JT{constructor(e,t,i=sv.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new Yt.Q5),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=nv.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new Ce.XK),this.triggerChars=new pu.q,this.retriggerChars=new pu.q,this.triggerId=0,this.editor=e,this.providers=t,this.throttledDelayer=new be.vp(i),this._register(this.editor.onDidBlurEditorWidget((()=>this.cancel()))),this._register(this.editor.onDidChangeConfiguration((()=>this.onEditorConfigurationChange()))),this._register(this.editor.onDidChangeModel((e=>this.onModelChanged()))),this._register(this.editor.onDidChangeModelLanguage((e=>this.onModelChanged()))),this._register(this.editor.onDidChangeCursorSelection((e=>this.onCursorChange(e)))),this._register(this.editor.onDidChangeModelContent((e=>this.onModelContentChange()))),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType((e=>this.onDidType(e)))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(e){2===this._state.type&&this._state.request.cancel(),this._state=e}cancel(e=!1){this.state=nv.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}trigger(e,t){const i=this.editor.getModel();if(!i||!this.providers.has(i))return;const n=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger((()=>this.doTrigger(n)),t).catch(lt.dL)}next(){if(1!==this.state.type)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t%e==e-1,n=this.editor.getOption(78).cycle;!(e<2||i)||n?this.updateActiveSignature(i&&n?0:t+1):this.cancel()}previous(){if(1!==this.state.type)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=0===t,n=this.editor.getOption(78).cycle;!(e<2||i)||n?this.updateActiveSignature(i&&n?e-1:t-1):this.cancel()}updateActiveSignature(e){1===this.state.type&&(this.state=new nv.Active(Object.assign(Object.assign({},this.state.hints),{activeSignature:e})),this._onChangedHints.fire(this.state.hints))}doTrigger(e){return ov(this,void 0,void 0,(function*(){const t=1===this.state.type||2===this.state.type,i=this.getLastActiveHints();if(this.cancel(!0),0===this._pendingTriggers.length)return!1;const n=this._pendingTriggers.reduce(rv);this._pendingTriggers=[];const o={triggerKind:n.triggerKind,triggerCharacter:n.triggerCharacter,isRetrigger:t,activeSignatureHelp:i};if(!this.editor.hasModel())return!1;const s=this.editor.getModel(),r=this.editor.getPosition();this.state=new nv.Pending((0,be.PG)((e=>iv(this.providers,s,r,o,e))),i);try{const t=yield this.state.request;return e!==this.triggerId?(null==t||t.dispose(),!1):t&&t.value.signatures&&0!==t.value.signatures.length?(this.state=new nv.Active(t.value),this._lastSignatureHelpResult.value=t,this._onChangedHints.fire(this.state.hints),!0):(null==t||t.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1)}catch(a){return e===this.triggerId&&(this.state=nv.Default),(0,lt.dL)(a),!1}}))}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return 1===this.state.type||2===this.state.type||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars=new pu.q,this.retriggerChars=new pu.q;const e=this.editor.getModel();if(e)for(const t of this.providers.ordered(e)){for(const e of t.signatureHelpTriggerCharacters||[])this.triggerChars.add(e.charCodeAt(0)),this.retriggerChars.add(e.charCodeAt(0));for(const e of t.signatureHelpRetriggerCharacters||[])this.retriggerChars.add(e.charCodeAt(0))}}onDidType(e){if(!this.triggerOnType)return;const t=e.length-1,i=e.charCodeAt(t);(this.triggerChars.has(i)||this.isTriggered&&this.retriggerChars.has(i))&&this.trigger({triggerKind:Wo.WW.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){"mouse"===e.source?this.cancel():this.isTriggered&&this.trigger({triggerKind:Wo.WW.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:Wo.WW.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(78).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}function rv(e,t){switch(t.triggerKind){case Wo.WW.Invoke:return t;case Wo.WW.ContentChange:return e;case Wo.WW.TriggerCharacter:default:return t}}sv.DEFAULT_DELAY=120;var av=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},lv=function(e,t){return function(i,n){t(i,n,e)}};const cv=At.$,dv=(0,il.q5)("parameter-hints-next",Zt.lA.chevronDown,le.NC("parameterHintsNextIcon","Icon for show next parameter hint.")),hv=(0,il.q5)("parameter-hints-previous",Zt.lA.chevronUp,le.NC("parameterHintsPreviousIcon","Icon for show previous parameter hint."));let uv=class e extends Ce.JT{constructor(e,t,i,n,o){super(),this.editor=e,this.renderDisposeables=this._register(new Ce.SL),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new Ra({editor:e},n,i)),this.model=this._register(new sv(e,o.signatureHelpProvider)),this.keyVisible=tv.Visible.bindTo(t),this.keyMultipleSignatures=tv.MultipleSignatures.bindTo(t),this._register(this.model.onChangedHints((e=>{e?(this.show(),this.render(e)):this.hide()})))}createParameterHintDOMNodes(){const e=cv(".editor-widget.parameter-hints-widget"),t=At.R3(e,cv(".phwrapper"));t.tabIndex=-1;const i=At.R3(t,cv(".controls")),n=At.R3(i,cv(".button"+Ne.kS.asCSSSelector(hv))),o=At.R3(i,cv(".overloads")),s=At.R3(i,cv(".button"+Ne.kS.asCSSSelector(dv)));this._register(At.nm(n,"click",(e=>{At.zB.stop(e),this.previous()}))),this._register(At.nm(s,"click",(e=>{At.zB.stop(e),this.next()})));const r=cv(".body"),a=new dr.s$(r,{alwaysConsumeMouseWheel:!0});this._register(a),t.appendChild(a.getDomNode());const l=At.R3(r,cv(".signature")),c=At.R3(r,cv(".docs"));e.style.userSelect="text",this.domNodes={element:e,signature:l,overloads:o,docs:c,scrollbar:a},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection((e=>{this.visible&&this.editor.layoutContentWidget(this)})));const d=()=>{if(!this.domNodes)return;const e=this.editor.getOption(46);this.domNodes.element.style.fontSize=`${e.fontSize}px`,this.domNodes.element.style.lineHeight=""+e.lineHeight/e.fontSize};d(),this._register(Yt.ju.chain(this.editor.onDidChangeConfiguration.bind(this.editor)).filter((e=>e.hasChanged(46))).on(d,null)),this._register(this.editor.onDidLayoutChange((e=>this.updateMaxHeight()))),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout((()=>{var e;null===(e=this.domNodes)||void 0===e||e.element.classList.add("visible")}),100),this.editor.layoutContentWidget(this))}hide(){var e;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,null===(e=this.domNodes)||void 0===e||e.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(e){var t;if(this.renderDisposeables.clear(),!this.domNodes)return;const i=e.signatures.length>1;this.domNodes.element.classList.toggle("multiple",i),this.keyMultipleSignatures.set(i),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const n=e.signatures[e.activeSignature];if(!n)return;const o=At.R3(this.domNodes.signature,cv(".code")),s=this.editor.getOption(46);o.style.fontSize=`${s.fontSize}px`,o.style.fontFamily=s.fontFamily;const r=n.parameters.length>0,a=null!==(t=n.activeParameter)&&void 0!==t?t:e.activeParameter;if(r)this.renderParameters(o,n,a);else{At.R3(o,cv("span")).textContent=n.label}const l=n.parameters[a];if(null==l?void 0:l.documentation){const e=cv("span.documentation");if("string"==typeof l.documentation)e.textContent=l.documentation;else{const t=this.renderMarkdownDocs(l.documentation);e.appendChild(t.element)}At.R3(this.domNodes.docs,cv("p",{},e))}if(void 0===n.documentation);else if("string"==typeof n.documentation)At.R3(this.domNodes.docs,cv("p",{},n.documentation));else{const e=this.renderMarkdownDocs(n.documentation);At.R3(this.domNodes.docs,e.element)}const c=this.hasDocs(n,l);if(this.domNodes.signature.classList.toggle("has-docs",c),this.domNodes.docs.classList.toggle("empty",!c),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,"0")+"/"+e.signatures.length,l){let e="";const t=n.parameters[a];e=Array.isArray(t.label)?n.label.substring(t.label[0],t.label[1]):t.label,t.documentation&&(e+="string"==typeof t.documentation?`, ${t.documentation}`:`, ${t.documentation.value}`),n.documentation&&(e+="string"==typeof n.documentation?`, ${n.documentation}`:`, ${n.documentation.value}`),this.announcedLabel!==e&&(ie.Z9(le.NC("hint","{0}, hint",e)),this.announcedLabel=e)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(e){const t=this.renderDisposeables.add(this.markdownRenderer.render(e,{asyncRenderCallback:()=>{var e;null===(e=this.domNodes)||void 0===e||e.scrollbar.scanDomNode()}}));return t.element.classList.add("markdown-docs"),t}hasDocs(e,t){return!!(t&&"string"==typeof t.documentation&&(0,$i.cW)(t.documentation).length>0)||(!!(t&&"object"==typeof t.documentation&&(0,$i.cW)(t.documentation).value.length>0)||(!!(e.documentation&&"string"==typeof e.documentation&&(0,$i.cW)(e.documentation).length>0)||!!(e.documentation&&"object"==typeof e.documentation&&(0,$i.cW)(e.documentation.value).length>0)))}renderParameters(e,t,i){const[n,o]=this.getParameterLabelOffsets(t,i),s=document.createElement("span");s.textContent=t.label.substring(0,n);const r=document.createElement("span");r.textContent=t.label.substring(n,o),r.className="parameter active";const a=document.createElement("span");a.textContent=t.label.substring(o),At.R3(e,s,r,a)}getParameterLabelOffsets(e,t){const i=e.parameters[t];if(i){if(Array.isArray(i.label))return i.label;if(i.label.length){const t=new RegExp(`(\\W|^)${(0,ot.ec)(i.label)}(?=\\W|$)`,"g");t.test(e.label);const n=t.lastIndex-i.label.length;return n>=0?[n,t.lastIndex]:[0,0]}return[0,0]}return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}cancel(){this.model.cancel()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return e.ID}trigger(e){this.model.trigger(e,0)}updateMaxHeight(){if(!this.domNodes)return;const e=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=e;const t=this.domNodes.element.getElementsByClassName("phwrapper");t.length&&(t[0].style.maxHeight=e)}};uv.ID="editor.widget.parameterHintsWidget",uv=av([lv(1,ce.i6),lv(2,Na.v4),lv(3,zn.O),lv(4,rt.p)],uv);const gv=(0,De.P6G)("editorHoverWidget.highlightForeground",{dark:De.Gwp,light:De.Gwp,hcDark:De.Gwp,hcLight:De.Gwp},le.NC("editorHoverWidgetHighlightForeground","Foreground color of the active item in the parameter hint."));(0,Ne.Ic)(((e,t)=>{const i=e.getColor(De.CNo);if(i){const n=(0,_o.c3)(e.type)?2:1;t.addRule(`.monaco-editor .parameter-hints-widget { border: ${n}px solid ${i}; }`),t.addRule(`.monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid ${i.transparent(.5)}; }`),t.addRule(`.monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid ${i.transparent(.5)}; }`)}const n=e.getColor(De.yJx);n&&t.addRule(`.monaco-editor .parameter-hints-widget { background-color: ${n}; }`);const o=e.getColor(De.url);o&&t.addRule(`.monaco-editor .parameter-hints-widget a { color: ${o}; }`);const s=e.getColor(De.sgC);s&&t.addRule(`.monaco-editor .parameter-hints-widget a:hover { color: ${s}; }`);const r=e.getColor(De.Sbf);r&&t.addRule(`.monaco-editor .parameter-hints-widget { color: ${r}; }`);const a=e.getColor(De.SwI);a&&t.addRule(`.monaco-editor .parameter-hints-widget code { background-color: ${a}; }`);const l=e.getColor(gv);l&&t.addRule(`.monaco-editor .parameter-hints-widget .parameter.active { color: ${l}}`)}));var pv=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},mv=function(e,t){return function(i,n){t(i,n,e)}};let fv=class e extends Ce.JT{constructor(e,t){super(),this.editor=e,this.widget=this._register(t.createInstance(uv,this.editor))}static get(t){return t.getContribution(e.ID)}cancel(){this.widget.cancel()}previous(){this.widget.previous()}next(){this.widget.next()}trigger(e){this.widget.trigger(e)}};fv.ID="editor.controller.parameterHints",fv=pv([mv(1,Mt.TG)],fv);class _v extends se.R6{constructor(){super({id:"editor.action.triggerParameterHints",label:le.NC("parameterHints.trigger.label","Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:ae.u.hasSignatureHelpProvider,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:3082,weight:100}})}run(e,t){const i=fv.get(t);i&&i.trigger({triggerKind:Wo.WW.Invoke})}}(0,se._K)(fv.ID,fv),(0,se.Qr)(_v);const vv=se._l.bindToContribution(fv.get);(0,se.fK)(new vv({id:"closeParameterHints",precondition:tv.Visible,handler:e=>e.cancel(),kbOpts:{weight:175,kbExpr:ae.u.focus,primary:9,secondary:[1033]}})),(0,se.fK)(new vv({id:"showPrevParameterHint",precondition:ce.Ao.and(tv.Visible,tv.MultipleSignatures),handler:e=>e.previous(),kbOpts:{weight:175,kbExpr:ae.u.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),(0,se.fK)(new vv({id:"showNextParameterHint",precondition:ce.Ao.and(tv.Visible,tv.MultipleSignatures),handler:e=>e.next(),kbOpts:{weight:175,kbExpr:ae.u.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var bv=i(71765),Cv=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},wv=function(e,t){return function(i,n){t(i,n,e)}};const yv=new ce.uy("renameInputVisible",!1,(0,le.NC)("renameInputVisible","Whether the rename input widget is visible"));let Sv=class{constructor(e,t,i,n,o){this._editor=e,this._acceptKeybindings=t,this._themeService=i,this._keybindingService=n,this._disposables=new Ce.SL,this.allowEditorOverflow=!0,this._visibleContextKey=yv.bindTo(o),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(46)&&this._updateFont()}))),this._disposables.add(i.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){if(!this._domNode){this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._input=document.createElement("input"),this._input.className="rename-input",this._input.type="text",this._input.setAttribute("aria-label",(0,le.NC)("renameAriaLabel","Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._input),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label);const e=()=>{var e,t;const[i,n]=this._acceptKeybindings;this._keybindingService.lookupKeybinding(i),this._label.innerText=(0,le.NC)({key:"label",comment:['placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"']},"{0} to Rename, {1} to Preview",null===(e=this._keybindingService.lookupKeybinding(i))||void 0===e?void 0:e.getLabel(),null===(t=this._keybindingService.lookupKeybinding(n))||void 0===t?void 0:t.getLabel())};e(),this._disposables.add(this._keybindingService.onDidUpdateKeybindings(e)),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())}return this._domNode}_updateStyles(e){var t,i,n,o;if(!this._input||!this._domNode)return;const s=e.getColor(De.rh);this._domNode.style.backgroundColor=String(null!==(t=e.getColor(De.D0T))&&void 0!==t?t:""),this._domNode.style.boxShadow=s?` 0 0 8px 2px ${s}`:"",this._domNode.style.color=String(null!==(i=e.getColor(De.zJb))&&void 0!==i?i:""),this._input.style.backgroundColor=String(null!==(n=e.getColor(De.sEe))&&void 0!==n?n:"");const r=e.getColor(De.dt_);this._input.style.borderWidth=r?"1px":"0px",this._input.style.borderStyle=r?"solid":"none",this._input.style.borderColor=null!==(o=null==r?void 0:r.toString())&&void 0!==o?o:"none"}_updateFont(){if(!this._input||!this._label)return;const e=this._editor.getOption(46);this._input.style.fontFamily=e.fontFamily,this._input.style.fontWeight=e.fontWeight,this._input.style.fontSize=`${e.fontSize}px`,this._label.style.fontSize=.8*e.fontSize+"px"}getPosition(){return this._visible?{position:this._position,preference:[2,1]}:null}afterRender(e){e||this.cancelInput(!0)}acceptInput(e){var t;null===(t=this._currentAcceptInput)||void 0===t||t.call(this,e)}cancelInput(e){var t;null===(t=this._currentCancelInput)||void 0===t||t.call(this,e)}getInput(e,t,i,n,o,s){this._domNode.classList.toggle("preview",o),this._position=new we.L(e.startLineNumber,e.startColumn),this._input.value=t,this._input.setAttribute("selectionStart",i.toString()),this._input.setAttribute("selectionEnd",n.toString()),this._input.size=Math.max(1.1*(e.endColumn-e.startColumn),20);const r=new Ce.SL;return new Promise((e=>{this._currentCancelInput=t=>(this._currentAcceptInput=void 0,this._currentCancelInput=void 0,e(t),!0),this._currentAcceptInput=i=>{0!==this._input.value.trim().length&&this._input.value!==t?(this._currentAcceptInput=void 0,this._currentCancelInput=void 0,e({newName:this._input.value,wantsPreview:o&&i})):this.cancelInput(!0)},r.add(s.onCancellationRequested((()=>this.cancelInput(!0)))),r.add(this._editor.onDidBlurEditorWidget((()=>this.cancelInput(!1)))),this._show()})).finally((()=>{r.dispose(),this._hide()}))}_show(){this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout((()=>{this._input.focus(),this._input.setSelectionRange(parseInt(this._input.getAttribute("selectionStart")),parseInt(this._input.getAttribute("selectionEnd")))}),100)}_hide(){this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}};Sv=Cv([wv(2,Ne.XE),wv(3,Bt.d),wv(4,ce.i6)],Sv);var Lv=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},kv=function(e,t){return function(i,n){t(i,n,e)}},xv=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class Dv{constructor(e,t,i){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=i.ordered(e)}hasProvider(){return this._providers.length>0}resolveRenameLocation(e){return xv(this,void 0,void 0,(function*(){const t=[];for(this._providerRenameIdx=0;this._providerRenameIdx0?t.join("\n"):void 0}:{range:ye.e.fromPositions(this.position),text:"",rejectReason:t.length>0?t.join("\n"):void 0}}))}provideRenameEdits(e,t){return xv(this,void 0,void 0,(function*(){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)}))}_provideRenameEdits(e,t,i,n){return xv(this,void 0,void 0,(function*(){const o=this._providers[t];if(!o)return{edits:[],rejectReason:i.join("\n")};const s=yield o.provideRenameEdits(this.model,this.position,e,n);return s?s.rejectReason?this._provideRenameEdits(e,t+1,i.concat(s.rejectReason),n):s:this._provideRenameEdits(e,t+1,i.concat(le.NC("no result","No result.")),n)}))}}let Nv=class e{constructor(e,t,i,n,o,s,r,a){this.editor=e,this._instaService=t,this._notificationService=i,this._bulkEditService=n,this._progressService=o,this._logService=s,this._configService=r,this._languageFeaturesService=a,this._disposableStore=new Ce.SL,this._cts=new it.A,this._renameInputField=this._disposableStore.add(new be.Ue((()=>this._disposableStore.add(this._instaService.createInstance(Sv,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"])))))}static get(t){return t.getContribution(e.ID)}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}run(){var e,t;return xv(this,void 0,void 0,(function*(){if(this._cts.dispose(!0),!this.editor.hasModel())return;const i=this.editor.getPosition(),n=new Dv(this.editor.getModel(),i,this._languageFeaturesService.renameProvider);if(!n.hasProvider())return;let o;this._cts=new dt.Dl(this.editor,5);try{const e=n.resolveRenameLocation(this._cts.token);this._progressService.showWhile(e,250),o=yield e}catch(h){return void(null===(e=Et.get(this.editor))||void 0===e||e.showMessage(h||le.NC("resolveRenameLocationFailed","An unknown error occurred while resolving rename location"),i))}if(!o)return;if(o.rejectReason)return void(null===(t=Et.get(this.editor))||void 0===t||t.showMessage(o.rejectReason,i));if(this._cts.token.isCancellationRequested)return;this._cts.dispose(),this._cts=new dt.Dl(this.editor,5,o.range);const s=this.editor.getSelection();let r=0,a=o.text.length;ye.e.isEmpty(s)||ye.e.spansMultipleLines(s)||!ye.e.containsRange(o.range,s)||(r=Math.max(0,s.startColumn-o.range.startColumn),a=Math.min(o.range.endColumn,s.endColumn)-o.range.startColumn);const l=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),c=yield this._renameInputField.value.getInput(o.range,o.text,r,a,l,this._cts.token);if("boolean"==typeof c)return void(c&&this.editor.focus());this.editor.focus();const d=(0,be.eP)(n.provideRenameEdits(c.newName,this._cts.token),this._cts.token).then((e=>xv(this,void 0,void 0,(function*(){e&&this.editor.hasModel()&&(e.rejectReason?this._notificationService.info(e.rejectReason):(this.editor.setSelection(ye.e.fromPositions(this.editor.getSelection().getPosition())),this._bulkEditService.apply(st.fo.convert(e),{editor:this.editor,showPreview:c.wantsPreview,label:le.NC("label","Renaming '{0}' to '{1}'",null==o?void 0:o.text,c.newName),code:"undoredo.rename",quotableLabel:le.NC("quotableLabel","Renaming {0} to {1}",null==o?void 0:o.text,c.newName),respectAutoSaveConfig:!0}).then((e=>{e.ariaSummary&&(0,ie.Z9)(le.NC("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",o.text,c.newName,e.ariaSummary))})).catch((e=>{this._notificationService.error(le.NC("rename.failedApply","Rename failed to apply edits")),this._logService.error(e)}))))}))),(e=>{this._notificationService.error(le.NC("rename.failed","Rename failed to compute edits")),this._logService.error(e)}));return this._progressService.showWhile(d,250),d}))}acceptRenameInput(e){this._renameInputField.value.acceptInput(e)}cancelRenameInput(){this._renameInputField.value.cancelInput(!0)}};Nv.ID="editor.contrib.renameController",Nv=Lv([kv(1,Mt.TG),kv(2,hi.lT),kv(3,st.vu),kv(4,gt.ek),kv(5,ec.VZ),kv(6,bv.V),kv(7,rt.p)],Nv);class Ev extends se.R6{constructor(){super({id:"editor.action.rename",label:le.NC("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:ce.Ao.and(ae.u.writable,ae.u.hasRenameProvider),kbOpts:{kbExpr:ae.u.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(e,t){const i=e.get(ze.$),[n,o]=Array.isArray(t)&&t||[void 0,void 0];return ct.o.isUri(n)&&we.L.isIPosition(o)?i.openCodeEditor({resource:n},i.getActiveCodeEditor()).then((e=>{e&&(e.setPosition(o),e.invokeWithinContext((t=>(this.reportTelemetry(t,e),this.run(t,e)))))}),lt.dL):super.runCommand(e,t)}run(e,t){const i=Nv.get(t);return i?i.run():Promise.resolve()}}(0,se._K)(Nv.ID,Nv),(0,se.Qr)(Ev);const Iv=se._l.bindToContribution(Nv.get);(0,se.fK)(new Iv({id:"acceptRenameInput",precondition:yv,handler:e=>e.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:ae.u.focus,primary:3}})),(0,se.fK)(new Iv({id:"acceptRenameInputWithPreview",precondition:ce.Ao.and(yv,ce.Ao.has("config.editor.rename.enablePreview")),handler:e=>e.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:ae.u.focus,primary:1027}})),(0,se.fK)(new Iv({id:"cancelRenameInput",precondition:yv,handler:e=>e.cancelRenameInput(),kbOpts:{weight:199,kbExpr:ae.u.focus,primary:9,secondary:[1033]}})),(0,se.sb)("_executeDocumentRenameProvider",(function(e,t,i,...n){const[o]=n;(0,$i.p_)("string"==typeof o);const{renameProvider:s}=e.get(rt.p);return function(e,t,i,n){return xv(this,void 0,void 0,(function*(){const o=new Dv(t,i,e),s=yield o.resolveRenameLocation(it.T.None);return(null==s?void 0:s.rejectReason)?{edits:[],rejectReason:s.rejectReason}:o.provideRenameEdits(n,it.T.None)}))}(s,t,i,o)})),(0,se.sb)("_executePrepareRename",(function(e,t,i){return xv(this,void 0,void 0,(function*(){const{renameProvider:n}=e.get(rt.p),o=new Dv(t,i,n),s=yield o.resolveRenameLocation(it.T.None);if(null==s?void 0:s.rejectReason)throw new Error(s.rejectReason);return s}))})),zi.B.as(Hi.IP.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:le.NC("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var Tv,Mv=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Av=function(e,t){return function(i,n){t(i,n,e)}},Rv=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let Ov=class extends Ce.JT{constructor(e,t){super(),this._sessionStore=new Ce.SL,this._ranges=[],this._rangesVersionId=0,this._editor=e,this._languageFeaturesService=t,this.stickyScrollWidget=new Bv(this._editor),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(34)&&this.onConfigurationChange()}))),this._updateSoon=this._register(new be.pY((()=>this._update(!0)),50)),this.onConfigurationChange()}onConfigurationChange(){if(!1===this._editor.getOption(34).stickyScroll.enabled)return this.stickyScrollWidget.emptyRootNode(),this._editor.removeOverlayWidget(this.stickyScrollWidget),void this._sessionStore.clear();this._editor.addOverlayWidget(this.stickyScrollWidget),this._sessionStore.add(this._editor.onDidChangeModel((()=>this._update(!0)))),this._sessionStore.add(this._editor.onDidScrollChange((()=>this._update(!1)))),this._sessionStore.add(this._editor.onDidChangeHiddenAreas((()=>this._update(!0)))),this._sessionStore.add(this._editor.onDidChangeModelTokens((e=>this._onTokensChange(e)))),this._sessionStore.add(this._editor.onDidChangeModelContent((()=>this._updateSoon.schedule()))),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange((()=>this._update(!0)))),this._update(!0)}_needsUpdate(e){const t=this.stickyScrollWidget.getCurrentLines();for(const i of t)for(const t of e.ranges)if(i>=t.fromLineNumber&&i<=t.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._update(!1)}_update(e=!1){var t,i;return Rv(this,void 0,void 0,(function*(){e&&(null===(t=this._cts)||void 0===t||t.dispose(!0),this._cts=new it.A,yield this._updateOutlineModel(this._cts.token));const n=null===(i=this._editor._getViewModel())||void 0===i?void 0:i.getHiddenAreas();if(n)for(const e of n)this._ranges=this._ranges.filter((t=>!(t[0]>=e.startLineNumber&&t[1]<=e.endLineNumber+1)));this._renderStickyScroll()}))}_findLineRanges(e,t){if(null==e?void 0:e.children.size){let i=!1;for(const n of null==e?void 0:e.children.values()){const e=n.symbol.kind;4!==e&&8!==e&&11!==e&&10!==e&&5!==e&&1!==e||(i=!0,this._findLineRanges(n,t+1))}i||this._addOutlineRanges(e,t)}else this._addOutlineRanges(e,t)}_addOutlineRanges(e,t){let i=0,n=0;for(;e;){const o=e.symbol.kind;if(4!==o&&8!==o&&11!==o&&10!==o&&5!==o&&1!==o||(i=null==e?void 0:e.symbol.range.startLineNumber,n=null==e?void 0:e.symbol.range.endLineNumber,this._ranges.push([i,n,t]),t--),!(e.parent instanceof Iu))break;e=e.parent}}_updateOutlineModel(e){return Rv(this,void 0,void 0,(function*(){if(this._editor.hasModel()){const t=this._editor.getModel(),i=t.getVersionId(),n=yield Mu.create(this._languageFeaturesService.documentSymbolProvider,t,e);if(e.isCancellationRequested)return;this._ranges=[],this._rangesVersionId=i;for(const e of n.children.values()){if(e instanceof Iu){const t=e.symbol.kind;4===t||8===t||11===t||10===t||5===t||1===t?this._findLineRanges(e,1):this._findLineRanges(e,0)}this._ranges=this._ranges.sort((function(e,t){return e[0]!==t[0]?e[0]-t[0]:e[1]!==t[1]?t[1]-e[1]:e[2]-t[2]}));let t=[];for(const[e,i]of this._ranges.entries()){const[n,o,s]=i;t[0]===n&&t[1]===o?this._ranges.splice(e,1):t=i}}}}))}_renderStickyScroll(){if(!this._editor.hasModel())return;const e=this._editor.getOption(61),t=this._editor.getModel();if(this._rangesVersionId!==t.getVersionId())return;const i=this._editor.getScrollTop();this.stickyScrollWidget.emptyRootNode();const n=new Set;for(const[o,s]of this._ranges.entries()){const[r,a,l]=s;if(a-r>0&&""!==t.getLineContent(r)){const t=(l-1)*e,s=l*e,c=this._editor.getBottomForLineNumber(r)-i,d=this._editor.getTopForLineNumber(a)-i,h=this._editor.getBottomForLineNumber(a)-i;if(n.has(r))this._ranges.splice(o,1);else{if(t>=d-1&&tc&&se});class Fv{constructor(e,t,i,n,o){this._lineNumber=e,this._depth=t,this._editor=i,this._zIndex=n,this._relativePosition=o,this.effectiveLineHeight=0,this.effectiveLineHeight=this._editor.getOption(61)+this._relativePosition}get lineNumber(){return this._lineNumber}getDomNode(){const e=document.createElement("div"),t=this._editor._getViewModel(),i=t.coordinatesConverter.convertModelPositionToViewPosition(new we.L(this._lineNumber,1)).lineNumber,n=t.getViewLineRenderingData(i);let o;try{o=_m.Kp.filter(n.inlineDecorations,i,n.minColumn,n.maxColumn)}catch(h){o=[]}const s=new vm.IJ(!0,!0,n.content,n.continuesWithWrappedLine,n.isBasicASCII,n.containsRTL,0,n.tokens,o,n.tabSize,n.startVisibleColumn,1,1,1,100,"none",!0,!0,null),r=(0,fm.l$)(400);let a;(0,vm.d1)(s,r),a=Pv?Pv.createHTML(r.build()):r.build();const l=document.createElement("span");l.style.backgroundColor="var(--vscode-editorStickyScroll-background)",l.style.overflow="hidden",l.style.whiteSpace="nowrap",l.style.display="inline-block",l.style.lineHeight=this._editor.getOption(61).toString()+"px",l.innerHTML=a;const c=document.createElement("span");c.style.width=this._editor.getLayoutInfo().contentLeft.toString()+"px",c.style.backgroundColor="var(--vscode-editorStickyScroll-background)",c.style.color="var(--vscode-editorLineNumber-foreground)",c.style.display="inline-block",c.style.lineHeight=this._editor.getOption(61).toString()+"px";const d=document.createElement("span");return d.innerText=this._lineNumber.toString(),d.style.paddingLeft=this._editor.getLayoutInfo().lineNumbersLeft.toString()+"px",d.style.width=this._editor.getLayoutInfo().lineNumbersWidth.toString()+"px",d.style.backgroundColor="var(--vscode-editorStickyScroll-background)",d.style.textAlign="right",d.style.float="left",d.style.lineHeight=this._editor.getOption(61).toString()+"px",c.appendChild(d),e.onclick=e=>{e.stopPropagation(),e.preventDefault(),this._editor.revealPosition({lineNumber:this._lineNumber-this._depth+1,column:1})},e.onmouseover=t=>{d.style.background="var(--vscode-editorStickyScrollHover-background)",l.style.backgroundColor="var(--vscode-editorStickyScrollHover-background)",c.style.backgroundColor="var(--vscode-editorStickyScrollHover-background)",e.style.backgroundColor="var(--vscode-editorStickyScrollHover-background)",d.style.cursor="pointer",l.style.cursor="pointer",e.style.cursor="pointer",c.style.cursor="pointer"},e.onmouseleave=t=>{d.style.background="var(--vscode-editorStickyScroll-background)",l.style.backgroundColor="var(--vscode-editorStickyScroll-background)",c.style.backgroundColor="var(--vscode-editorStickyScroll-background)",e.style.backgroundColor="var(--vscode-editorStickyScroll-background)"},this._editor.applyFontInfo(l),this._editor.applyFontInfo(d),e.appendChild(c),e.appendChild(l),e.style.zIndex=this._zIndex.toString(),e.style.backgroundColor="var(--vscode-editorStickyScroll-background)",e.style.overflow="hidden",e.style.whiteSpace="nowrap",e.style.width="100%",e.style.lineHeight=this._editor.getOption(61).toString()+"px",e.style.height=this._editor.getOption(61).toString()+"px",this._relativePosition&&(e.style.position="relative",e.style.top=this._relativePosition+"px",e.style.width="100%"),e}}class Bv{constructor(e){this._editor=e,this.arrayOfCodeLines=[],this.rootDomNode=document.createElement("div"),this.rootDomNode=document.createElement("div"),this.rootDomNode.style.width="100%",this.rootDomNode.style.boxShadow="var(--vscode-scrollbar-shadow) 0 6px 6px -6px"}getCurrentLines(){const e=[];for(const t of this.arrayOfCodeLines)e.push(t.lineNumber);return e}pushCodeLine(e){this.arrayOfCodeLines.push(e)}updateRootNode(){let e=0;for(const t of this.arrayOfCodeLines)e+=t.effectiveLineHeight,this.rootDomNode.appendChild(t.getDomNode());this.rootDomNode.style.height=e.toString()+"px"}emptyRootNode(){this.arrayOfCodeLines.length=0,At.PO(this.rootDomNode)}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this.rootDomNode.style.zIndex="2",this.rootDomNode.style.backgroundColor="var(--vscode-editorStickyScroll-background)",this.rootDomNode}getPosition(){return{preference:null}}}(0,se._K)(Ov.ID,Ov);class Vv{provideSelectionRanges(e,t){const i=[];for(const n of t){const t=[];i.push(t),this._addInWordRanges(t,e,n),this._addWordRanges(t,e,n),this._addWhitespaceLine(t,e,n),t.push({range:e.getFullModelRange()})}return i}_addInWordRanges(e,t,i){const n=t.getWordAtPosition(i);if(!n)return;const{word:o,startColumn:s}=n,r=i.column-s;let a=r,l=r,c=0;for(;a>=0;a--){const e=o.charCodeAt(a);if(a!==r&&(95===e||45===e))break;if((0,ot.mK)(e)&&(0,ot.df)(c))break;c=e}for(a+=1;l0&&0===t.getLineFirstNonWhitespaceColumn(i.lineNumber)&&0===t.getLineLastNonWhitespaceColumn(i.lineNumber)&&e.push({range:new ye.e(i.lineNumber,1,i.lineNumber,t.getLineMaxColumn(i.lineNumber))})}}var Wv=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Hv=function(e,t){return function(i,n){t(i,n,e)}},zv=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class jv{constructor(e,t){this.index=e,this.ranges=t}mov(e){const t=this.index+(e?1:-1);if(t<0||t>=this.ranges.length)return this;const i=new jv(t,this.ranges);return i.ranges[t].equalsRange(this.ranges[this.index])?i.mov(e):i}}let Kv=class e{constructor(e,t){this._editor=e,this._languageFeaturesService=t,this._ignoreSelection=!1}static get(t){return t.getContribution(e.ID)}dispose(){var e;null===(e=this._selectionListener)||void 0===e||e.dispose()}run(e){return zv(this,void 0,void 0,(function*(){if(!this._editor.hasModel())return;const t=this._editor.getSelections(),i=this._editor.getModel();if(this._state||(yield $v(this._languageFeaturesService.selectionRangeProvider,i,t.map((e=>e.getPosition())),this._editor.getOption(104),it.T.None).then((e=>{var i;if(at.Of(e)&&e.length===t.length&&this._editor.hasModel()&&at.fS(this._editor.getSelections(),t,((e,t)=>e.equalsSelection(t)))){for(let i=0;ie.containsPosition(t[i].getStartPosition())&&e.containsPosition(t[i].getEndPosition()))),e[i].unshift(t[i]);this._state=e.map((e=>new jv(0,e))),null===(i=this._selectionListener)||void 0===i||i.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition((()=>{var e;this._ignoreSelection||(null===(e=this._selectionListener)||void 0===e||e.dispose(),this._state=void 0)}))}}))),!this._state)return;this._state=this._state.map((t=>t.mov(e)));const n=this._state.map((e=>re.Y.fromPositions(e.ranges[e.index].getStartPosition(),e.ranges[e.index].getEndPosition())));this._ignoreSelection=!0;try{this._editor.setSelections(n)}finally{this._ignoreSelection=!1}}))}};Kv.ID="editor.contrib.smartSelectController",Kv=Wv([Hv(1,rt.p)],Kv);class Uv extends se.R6{constructor(e,t){super(t),this._forward=e}run(e,t){return zv(this,void 0,void 0,(function*(){const e=Kv.get(t);e&&(yield e.run(this._forward))}))}}ut.P0.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");function $v(e,t,i,n,o){return zv(this,void 0,void 0,(function*(){const s=e.all(t).concat(new Vv);1===s.length&&s.unshift(new Dg);const r=[],a=[];for(const e of s)r.push(Promise.resolve(e.provideSelectionRanges(t,i,o)).then((e=>{if(at.Of(e)&&e.length===i.length)for(let t=0;t{if(0===e.length)return[];e.sort(((e,t)=>we.L.isBefore(e.getStartPosition(),t.getStartPosition())?1:we.L.isBefore(t.getStartPosition(),e.getStartPosition())||we.L.isBefore(e.getEndPosition(),t.getEndPosition())?-1:we.L.isBefore(t.getEndPosition(),e.getEndPosition())?1:0));const i=[];let o;for(const t of e)(!o||ye.e.containsRange(t,o)&&!ye.e.equalsRange(t,o))&&(i.push(t),o=t);if(!n.selectLeadingAndTrailingWhitespace)return i;const s=[i[0]];for(let n=1;n=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Qv=function(e,t){return function(i,n){t(i,n,e)}},Zv=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};class Yv{constructor(e,t,i,n,o,s){this.range=e,this.insertText=t,this.filterText=i,this.additionalTextEdits=n,this.command=o,this.completion=s}}let Jv=class extends Ce.L6{constructor(e,t,i,n,o,s){super(o.disposable),this.model=e,this.line=t,this.word=i,this.completionModel=n,this._suggestMemoryService=s}canBeReused(e,t,i){return this.model===e&&this.line===t&&this.word.word.length>0&&this.word.startColumn===i.startColumn&&this.word.endColumn=0&&a.resolve(it.T.None)}return t}};Jv=Gv([Qv(5,vg)],Jv);let Xv=class{constructor(e,t,i,n){this._getEditorOption=e,this._languageFeatureService=t,this._clipboardService=i,this._suggestMemoryService=n}provideInlineCompletions(e,t,i,n){var o;return Zv(this,void 0,void 0,(function*(){if(i.selectedSuggestionInfo)return;const s=this._getEditorOption(81,e);if(la.isAllOff(s))return;e.tokenization.tokenizeIfCheap(t.lineNumber);const r=e.tokenization.getLineTokens(t.lineNumber),a=r.getStandardTokenType(r.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if("inline"!==la.valueFor(s,a))return;let l,c,d=e.getWordAtPosition(t);if((null==d?void 0:d.word)||(l=this._getTriggerCharacterInfo(e,t)),!(null==d?void 0:d.word)&&!l)return;if(d||(d=e.getWordUntilPosition(t)),d.endColumn!==t.column)return;const h=e.getValueInRange(new ye.e(t.lineNumber,1,t.lineNumber,t.column));if(!l&&(null===(o=this._lastResult)||void 0===o?void 0:o.canBeReused(e,t.lineNumber,d))){const e=new Ig(h,t.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=e,this._lastResult.acquire(),c=this._lastResult}else{const i=yield oa(this._languageFeatureService.completionProvider,e,t,new ta(void 0,void 0,null==l?void 0:l.providers),l&&{triggerKind:1,triggerCharacter:l.ch},n);let o;i.needsClipboard&&(o=yield this._clipboardService.readText());const s=new Tg(i.items,t.column,new Ig(h,0),Eg.None,this._getEditorOption(108,e),this._getEditorOption(103,e),{boostFullMatch:!1,firstMatchCanBeWeak:!1},o);c=new Jv(e,t.lineNumber,d,s,i,this._suggestMemoryService)}return this._lastResult=c,c}))}handleItemDidShow(e,t){t.completion.resolve(it.T.None)}freeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(e,t){var i;const n=e.getValueInRange(ye.e.fromPositions({lineNumber:t.lineNumber,column:t.column-1},t)),o=new Set;for(const s of this._languageFeatureService.completionProvider.all(e))(null===(i=s.triggerCharacters)||void 0===i?void 0:i.includes(n))&&o.add(s);if(0!==o.size)return{providers:o,ch:n}}};Xv=Gv([Qv(1,rt.p),Qv(2,je.p),Qv(3,vg)],Xv);let eb=class e{constructor(t,i,n,o){if(1==++e._counter){const s=o.createInstance(Xv,((e,i)=>{var o;return(null!==(o=n.listCodeEditors().find((e=>e.getModel()===i)))&&void 0!==o?o:t).getOption(e)}));e._disposable=i.inlineCompletionsProvider.register("*",s)}}dispose(){var t;0==--e._counter&&(null===(t=e._disposable)||void 0===t||t.dispose(),e._disposable=void 0)}};eb._counter=0,eb=Gv([Qv(1,rt.p),Qv(2,ze.$),Qv(3,Mt.TG)],eb),(0,se._K)("suggest.inlineCompletionsProvider",eb);class tb extends se.R6{constructor(){super({id:"editor.action.forceRetokenize",label:le.NC("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getModel();i.tokenization.resetTokenization();const n=new vn.G(!0);i.tokenization.forceTokenization(i.getLineCount()),n.stop(),console.log(`tokenization took ${n.elapsed()}`)}}(0,se.Qr)(tb);var ib=i(37940);class nb extends se.R6{constructor(){super({id:nb.ID,label:le.NC({key:"toggle.tabMovesFocus",comment:["Turn on/off use of tab key for moving focus around VS Code"]},"Toggle Tab Key Moves Focus"),alias:"Toggle Tab Key Moves Focus",precondition:void 0,kbOpts:{kbExpr:null,primary:2091,mac:{primary:1323},weight:100}})}run(e,t){const i=!ib.n.getTabFocusMode();ib.n.setTabFocusMode(i),i?(0,ie.Z9)(le.NC("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element")):(0,ie.Z9)(le.NC("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}}nb.ID="editor.action.toggleTabFocusMode",(0,se.Qr)(nb);var ob=i(31446),sb=i(30168),rb=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},ab=function(e,t){return function(i,n){t(i,n,e)}};let lb=class extends Ce.JT{constructor(e,t,i={},n){var o;super(),this._link=t,this._enabled=!0,this.el=(0,At.R3)(e,(0,At.$)("a.monaco-link",{tabIndex:null!==(o=t.tabIndex)&&void 0!==o?o:0,href:t.href,title:t.title},t.label)),this.el.setAttribute("role","button");const s=this._register(new va.Y(this.el,"click")),r=this._register(new va.Y(this.el,"keypress")),a=Yt.ju.chain(r.event).map((e=>new ho.y(e))).filter((e=>3===e.keyCode)).event,l=this._register(new va.Y(this.el,Qt.t.Tap)).event;this._register(Qt.o.addTarget(this.el));const c=Yt.ju.any(s.event,a,l);this._register(c((e=>{this.enabled&&(At.zB.stop(e,!0),(null==i?void 0:i.opener)?i.opener(this._link.href):n.open(this._link.href,{allowCommands:!0}))}))),this.enabled=!0}get enabled(){return this._enabled}set enabled(e){e?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=e}};lb=rb([ab(3,Na.v4)],lb),(0,Ne.Ic)(((e,t)=>{const i=e.getColor(De.url);i&&t.addRule(`.monaco-link { color: ${i}; }`);const n=e.getColor(De.sgC);n&&t.addRule(`.monaco-link:hover { color: ${n}; }`)}));var cb=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},db=function(e,t){return function(i,n){t(i,n,e)}};let hb=class extends Ce.JT{constructor(e,t){super(),this._editor=e,this.instantiationService=t,this.banner=this._register(this.instantiationService.createInstance(ub))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(e){this.banner.show(Object.assign(Object.assign({},e),{onClose:()=>{var t;this.hide(),null===(t=e.onClose)||void 0===t||t.call(e)}})),this._editor.setBanner(this.banner.element,26)}};hb=cb([db(1,Mt.TG)],hb);let ub=class extends Ce.JT{constructor(e){super(),this.instantiationService=e,this.markdownRenderer=this.instantiationService.createInstance(Ra,{}),this.element=(0,At.$)("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(e){return e.ariaLabel?e.ariaLabel:"string"==typeof e.message?e.message:void 0}getBannerMessage(e){if("string"==typeof e){const t=(0,At.$)("span");return t.innerText=e,t}return this.markdownRenderer.render(e).element}clear(){(0,At.PO)(this.element)}show(e){(0,At.PO)(this.element);const t=this.getAriaLabel(e);t&&this.element.setAttribute("aria-label",t);const i=(0,At.R3)(this.element,(0,At.$)("div.icon-container"));i.setAttribute("aria-hidden","true"),e.icon&&i.appendChild((0,At.$)(`div${Ne.kS.asCSSSelector(e.icon)}`));const n=(0,At.R3)(this.element,(0,At.$)("div.message-container"));if(n.setAttribute("aria-hidden","true"),n.appendChild(this.getBannerMessage(e.message)),this.messageActionsContainer=(0,At.R3)(this.element,(0,At.$)("div.message-actions-container")),e.actions)for(const s of e.actions)this._register(this.instantiationService.createInstance(lb,this.messageActionsContainer,Object.assign(Object.assign({},s),{tabIndex:-1}),{}));const o=(0,At.R3)(this.element,(0,At.$)("div.action-container"));this.actionBar=this._register(new Zn.o(o)),this.actionBar.push(this._register(new Ot.aU("banner.close","Close Banner",Ne.kS.asClassName(il.s_),!0,(()=>{"function"==typeof e.onClose&&e.onClose()}))),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};ub=cb([db(0,Mt.TG)],ub);var gb=i(33425),pb=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},mb=function(e,t){return function(i,n){t(i,n,e)}},fb=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const _b=(0,il.q5)("extensions-warning-message",Zt.lA.warning,le.NC("warningIcon","Icon shown with a warning message in the extensions editor."));let vb=class extends Ce.JT{constructor(e,t,i,n){super(),this._editor=e,this._editorWorkerService=t,this._workspaceTrustService=i,this._highlighter=null,this._bannerClosed=!1,this._updateState=e=>{if(e&&e.hasMore){if(this._bannerClosed)return;const t=Math.max(e.ambiguousCharacterCount,e.nonBasicAsciiCharacterCount,e.invisibleCharacterCount);let i;if(e.nonBasicAsciiCharacterCount>=t)i={message:le.NC("unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters","This document contains many non-basic ASCII unicode characters"),command:new Ib};else if(e.ambiguousCharacterCount>=t)i={message:le.NC("unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters","This document contains many ambiguous unicode characters"),command:new Nb};else{if(!(e.invisibleCharacterCount>=t))throw new Error("Unreachable");i={message:le.NC("unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters","This document contains many invisible unicode characters"),command:new Eb}}this._bannerController.show({id:"unicodeHighlightBanner",message:i.message,icon:_b,actions:[{label:i.command.shortLabel,href:`command:${i.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(n.createInstance(hb,e)),this._register(this._editor.onDidChangeModel((()=>{this._bannerClosed=!1,this._updateHighlighter()}))),this._options=e.getOption(115),this._register(i.onDidChangeTrust((e=>{this._updateHighlighter()}))),this._register(e.onDidChangeConfiguration((t=>{t.hasChanged(115)&&(this._options=e.getOption(115),this._updateHighlighter())}))),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const e=function(e,t){return{nonBasicASCII:t.nonBasicASCII===Ui.Av?!e:t.nonBasicASCII,ambiguousCharacters:t.ambiguousCharacters,invisibleCharacters:t.invisibleCharacters,includeComments:t.includeComments===Ui.Av?!e:t.includeComments,includeStrings:t.includeStrings===Ui.Av?!e:t.includeStrings,allowedCharacters:t.allowedCharacters,allowedLocales:t.allowedLocales}}(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([e.nonBasicASCII,e.ambiguousCharacters,e.invisibleCharacters].every((e=>!1===e)))return;const t={nonBasicASCII:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments,includeStrings:e.includeStrings,allowedCodePoints:Object.keys(e.allowedCharacters).map((e=>e.codePointAt(0))),allowedLocales:Object.keys(e.allowedLocales).map((e=>{if("_os"===e){return(new Intl.NumberFormat).resolvedOptions().locale}return"_vscode"===e?We.dK:e}))};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new bb(this._editor,t,this._updateState,this._editorWorkerService):this._highlighter=new Cb(this._editor,t,this._updateState)}getDecorationInfo(e){return this._highlighter?this._highlighter.getDecorationInfo(e):null}};vb.ID="editor.contrib.unicodeHighlighter",vb=pb([mb(1,mu.p),mb(2,gb.Y),mb(3,Mt.TG)],vb);let bb=class extends Ce.JT{constructor(e,t,i,n){super(),this._editor=e,this._options=t,this._updateState=i,this._editorWorkerService=n,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new be.pY((()=>this._update()),250)),this._register(this._editor.onDidChangeModelContent((()=>{this._updateSoon.schedule()}))),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII())return void this._decorations.clear();const e=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then((t=>{if(this._model.isDisposed())return;if(this._model.getVersionId()!==e)return;this._updateState(t);const i=[];if(!t.hasMore)for(const e of t.ranges)i.push({range:e,options:kb.instance.getDecorationFromOptions(this._options)});this._decorations.set(i)}))}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel();if(!(0,sb.Fd)(t,e))return null;return{reason:Lb(t.getValueInRange(e.range),this._options),inComment:(0,sb.$t)(t,e),inString:(0,sb.zg)(t,e)}}};bb=pb([mb(3,mu.p)],bb);class Cb extends Ce.JT{constructor(e,t,i){super(),this._editor=e,this._options=t,this._updateState=i,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new be.pY((()=>this._update()),250)),this._register(this._editor.onDidLayoutChange((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidScrollChange((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidChangeHiddenAreas((()=>{this._updateSoon.schedule()}))),this._register(this._editor.onDidChangeModelContent((()=>{this._updateSoon.schedule()}))),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII())return void this._decorations.clear();const e=this._editor.getVisibleRanges(),t=[],i={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const n of e){const e=ob.a.computeUnicodeHighlights(this._model,this._options,n);for(const t of e.ranges)i.ranges.push(t);i.ambiguousCharacterCount+=i.ambiguousCharacterCount,i.invisibleCharacterCount+=i.invisibleCharacterCount,i.nonBasicAsciiCharacterCount+=i.nonBasicAsciiCharacterCount,i.hasMore=i.hasMore||e.hasMore}if(!i.hasMore)for(const n of i.ranges)t.push({range:n,options:kb.instance.getDecorationFromOptions(this._options)});this._updateState(i),this._decorations.set(t)}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel(),i=t.getValueInRange(e.range);return(0,sb.Fd)(t,e)?{reason:Lb(i,this._options),inComment:(0,sb.$t)(t,e),inString:(0,sb.zg)(t,e)}:null}}let wb=class{constructor(e,t,i){this._editor=e,this._languageService=t,this._openerService=i,this.hoverOrdinal=4}computeSync(e,t){if(!this._editor.hasModel()||1!==e.type)return[];const i=this._editor.getModel(),n=this._editor.getContribution(vb.ID);if(!n)return[];const o=[];let s=300;for(const r of t){const e=n.getDecorationInfo(r);if(!e)continue;const t=i.getValueInRange(r.range).codePointAt(0),a=Sb(t);let l;switch(e.reason.kind){case 0:l=le.NC("unicodeHighlight.characterIsAmbiguous","The character {0} could be confused with the character {1}, which is more common in source code.",a,Sb(e.reason.confusableWith.codePointAt(0)));break;case 1:l=le.NC("unicodeHighlight.characterIsInvisible","The character {0} is invisible.",a);break;case 2:l=le.NC("unicodeHighlight.characterIsNonBasicAscii","The character {0} is not a basic ASCII character.",a)}const c={codePoint:t,reason:e.reason,inComment:e.inComment,inString:e.inString},d=le.NC("unicodeHighlight.adjustSettings","Adjust settings"),h=`command:${Tb.ID}?${encodeURIComponent(JSON.stringify(c))}`,u=new ne.W5("",!0).appendMarkdown(l).appendText(" ").appendLink(h,d);o.push(new Ka(this,r.range,[u],s++))}return o}renderHoverParts(e,t){return $a(e,t,this._editor,this._languageService,this._openerService)}};function yb(e){return`U+${e.toString(16).padStart(4,"0")}`}function Sb(e){let t=`\`${yb(e)}\``;return ot.vU.isInvisibleCharacter(e)||(t+=` "${function(e){if(96===e)return"`` ` ``";return"`"+String.fromCodePoint(e)+"`"}(e)}"`),t}function Lb(e,t){return ob.a.computeUnicodeHighlightReason(e,t)}wb=pb([mb(1,zn.O),mb(2,Na.v4)],wb);class kb{constructor(){this.map=new Map}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(e,t){const i=`${e}${t}`;let n=this.map.get(i);return n||(n=Le.qx.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:e,hideInStringTokens:t}),this.map.set(i,n)),n}}kb.instance=new kb;class xb extends se.R6{constructor(){super({id:Nb.ID,label:le.NC("action.unicodeHighlight.disableHighlightingInComments","Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=le.NC("unicodeHighlight.disableHighlightingInComments.shortLabel","Disable Highlight In Comments")}run(e,t,i){return fb(this,void 0,void 0,(function*(){const t=null==e?void 0:e.get(Pt.Ui);t&&this.runAction(t)}))}runAction(e){return fb(this,void 0,void 0,(function*(){yield e.updateValue(Ui.qt.includeComments,!1,2)}))}}class Db extends se.R6{constructor(){super({id:Nb.ID,label:le.NC("action.unicodeHighlight.disableHighlightingInStrings","Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=le.NC("unicodeHighlight.disableHighlightingInStrings.shortLabel","Disable Highlight In Strings")}run(e,t,i){return fb(this,void 0,void 0,(function*(){const t=null==e?void 0:e.get(Pt.Ui);t&&this.runAction(t)}))}runAction(e){return fb(this,void 0,void 0,(function*(){yield e.updateValue(Ui.qt.includeStrings,!1,2)}))}}class Nb extends se.R6{constructor(){super({id:Nb.ID,label:le.NC("action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters","Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=le.NC("unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel","Disable Ambiguous Highlight")}run(e,t,i){return fb(this,void 0,void 0,(function*(){const t=null==e?void 0:e.get(Pt.Ui);t&&this.runAction(t)}))}runAction(e){return fb(this,void 0,void 0,(function*(){yield e.updateValue(Ui.qt.ambiguousCharacters,!1,2)}))}}Nb.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";class Eb extends se.R6{constructor(){super({id:Eb.ID,label:le.NC("action.unicodeHighlight.disableHighlightingOfInvisibleCharacters","Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=le.NC("unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel","Disable Invisible Highlight")}run(e,t,i){return fb(this,void 0,void 0,(function*(){const t=null==e?void 0:e.get(Pt.Ui);t&&this.runAction(t)}))}runAction(e){return fb(this,void 0,void 0,(function*(){yield e.updateValue(Ui.qt.invisibleCharacters,!1,2)}))}}Eb.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";class Ib extends se.R6{constructor(){super({id:Ib.ID,label:le.NC("action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters","Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=le.NC("unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel","Disable Non ASCII Highlight")}run(e,t,i){return fb(this,void 0,void 0,(function*(){const t=null==e?void 0:e.get(Pt.Ui);t&&this.runAction(t)}))}runAction(e){return fb(this,void 0,void 0,(function*(){yield e.updateValue(Ui.qt.nonBasicASCII,!1,2)}))}}Ib.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";class Tb extends se.R6{constructor(){super({id:Tb.ID,label:le.NC("action.unicodeHighlight.showExcludeOptions","Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}run(e,t,i){return fb(this,void 0,void 0,(function*(){const{codePoint:t,reason:n,inString:o,inComment:s}=i,r=String.fromCodePoint(t),a=e.get(hn.eJ),l=e.get(Pt.Ui);const c=[];if(0===n.kind)for(const e of n.notAmbiguousInLocales)c.push({label:le.NC("unicodeHighlight.allowCommonCharactersInLanguage",'Allow unicode characters that are more common in the language "{0}".',e),run:()=>fb(this,void 0,void 0,(function*(){Mb(l,[e])}))});if(c.push({label:function(e){return ot.vU.isInvisibleCharacter(e)?le.NC("unicodeHighlight.excludeInvisibleCharFromBeingHighlighted","Exclude {0} (invisible character) from being highlighted",yb(e)):le.NC("unicodeHighlight.excludeCharFromBeingHighlighted","Exclude {0} from being highlighted",`${yb(e)} "${r}"`)}(t),run:()=>function(e,t){return fb(this,void 0,void 0,(function*(){const i=e.getValue(Ui.qt.allowedCharacters);let n;n="object"==typeof i&&i?i:{};for(const e of t)n[String.fromCodePoint(e)]=!0;yield e.updateValue(Ui.qt.allowedCharacters,n,2)}))}(l,[t])}),s){const e=new xb;c.push({label:e.label,run:()=>fb(this,void 0,void 0,(function*(){return e.runAction(l)}))})}else if(o){const e=new Db;c.push({label:e.label,run:()=>fb(this,void 0,void 0,(function*(){return e.runAction(l)}))})}if(0===n.kind){const e=new Nb;c.push({label:e.label,run:()=>fb(this,void 0,void 0,(function*(){return e.runAction(l)}))})}else if(1===n.kind){const e=new Eb;c.push({label:e.label,run:()=>fb(this,void 0,void 0,(function*(){return e.runAction(l)}))})}else if(2===n.kind){const e=new Ib;c.push({label:e.label,run:()=>fb(this,void 0,void 0,(function*(){return e.runAction(l)}))})}else!function(e){throw new Error(`Unexpected value: ${e}`)}(n);const d=yield a.pick(c,{title:le.NC("unicodeHighlight.configureUnicodeHighlightOptions","Configure Unicode Highlight Options")});d&&(yield d.run())}))}}function Mb(e,t){var i;return fb(this,void 0,void 0,(function*(){const n=null===(i=e.inspect(Ui.qt.allowedLocales).user)||void 0===i?void 0:i.value;let o;o="object"==typeof n&&n?Object.assign({},n):{};for(const e of t)o[e]=!0;yield e.updateValue(Ui.qt.allowedLocales,o,2)}))}Tb.ID="editor.action.unicodeHighlight.showExcludeOptions",(0,se.Qr)(Nb),(0,se.Qr)(Eb),(0,se.Qr)(Ib),(0,se.Qr)(Tb),(0,se._K)(vb.ID,vb),Cr.register(wb);var Ab=i(28820),Rb=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ob=function(e,t){return function(i,n){t(i,n,e)}},Pb=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const Fb="ignoreUnusualLineTerminators";let Bb=class extends Ce.JT{constructor(e,t,i){super(),this._editor=e,this._dialogService=t,this._codeEditorService=i,this._config=this._editor.getOption(116),this._register(this._editor.onDidChangeConfiguration((e=>{e.hasChanged(116)&&(this._config=this._editor.getOption(116),this._checkForUnusualLineTerminators())}))),this._register(this._editor.onDidChangeModel((()=>{this._checkForUnusualLineTerminators()}))),this._register(this._editor.onDidChangeModelContent((e=>{e.isUndoing||this._checkForUnusualLineTerminators()})))}_checkForUnusualLineTerminators(){return Pb(this,void 0,void 0,(function*(){if("off"===this._config)return;if(!this._editor.hasModel())return;const e=this._editor.getModel();if(!e.mightContainUnusualLineTerminators())return;const t=function(e,t){return e.getModelProperty(t.uri,Fb)}(this._codeEditorService,e);if(!0===t)return;if(this._editor.getOption(83))return;if("auto"===this._config)return void e.removeUnusualLineTerminators(this._editor.getSelections());(yield this._dialogService.confirm({title:le.NC("unusualLineTerminators.title","Unusual Line Terminators"),message:le.NC("unusualLineTerminators.message","Detected unusual line terminators"),detail:le.NC("unusualLineTerminators.detail","The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",(0,ui.EZ)(e.uri)),primaryButton:le.NC("unusualLineTerminators.fix","Remove Unusual Line Terminators"),secondaryButton:le.NC("unusualLineTerminators.ignore","Ignore")})).confirmed?e.removeUnusualLineTerminators(this._editor.getSelections()):function(e,t,i){e.setModelProperty(t.uri,Fb,i)}(this._codeEditorService,e,!0)}))}};Bb.ID="editor.contrib.unusualLineTerminatorsDetector",Bb=Rb([Ob(1,Ab.S),Ob(2,ze.$)],Bb),(0,se._K)(Bb.ID,Bb);var Vb=i(32670),Wb=i(51200),Hb=i(68997),zb=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},jb=function(e,t){return function(i,n){t(i,n,e)}};let Kb=class extends Ce.JT{constructor(e,t,i,n,o,s){super(),this._modelService=t,this._themeService=i,this._configurationService=n,this._editor=e,this._provider=s.documentRangeSemanticTokensProvider,this._debounceInformation=o.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new be.pY((()=>this._tokenizeViewportNow()),100)),this._outstandingRequests=[];const r=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange((()=>{r()}))),this._register(this._editor.onDidChangeModel((()=>{this._cancelAll(),r()}))),this._register(this._editor.onDidChangeModelContent((e=>{this._cancelAll(),r()}))),this._register(this._provider.onDidChange((()=>{this._cancelAll(),r()}))),this._register(this._configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration(Wb.e3)&&(this._cancelAll(),r())}))),this._register(this._themeService.onDidColorThemeChange((()=>{this._cancelAll(),r()})))}_cancelAll(){for(const e of this._outstandingRequests)e.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(e){for(let t=0,i=this._outstandingRequests.length;tthis._requestRange(e,t))))}_requestRange(e,t){const i=e.getVersionId(),n=(0,be.PG)((i=>Promise.resolve((0,Vb.OG)(this._provider,e,t,i)))),o=new vn.G(!1);return n.then((n=>{if(this._debounceInformation.update(e,o.elapsed()),!n||!n.tokens||e.isDisposed()||e.getVersionId()!==i)return;const{provider:s,tokens:r}=n,a=this._modelService.getSemanticTokensProviderStyling(s);e.tokenization.setPartialSemanticTokens(t,(0,Hb.h)(r,a,e.getLanguageId()))})).then((()=>this._removeOutstandingRequest(n)),(()=>this._removeOutstandingRequest(n))),n}};Kb.ID="editor.contrib.viewportSemanticTokens",Kb=zb([jb(1,ht.q),jb(2,Ne.XE),jb(3,Pt.Ui),jb(4,un.A),jb(5,rt.p)],Kb),(0,se._K)(Kb.ID,Kb);var Ub=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},$b=function(e,t){return function(i,n){t(i,n,e)}};const qb=(0,De.P6G)("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},le.NC("wordHighlight","Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0),Gb=(0,De.P6G)("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},le.NC("wordHighlightStrong","Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0),Qb=(0,De.P6G)("editor.wordHighlightBorder",{light:null,dark:null,hcDark:De.xL1,hcLight:De.xL1},le.NC("wordHighlightBorder","Border color of a symbol during read-access, like reading a variable.")),Zb=(0,De.P6G)("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:De.xL1,hcLight:De.xL1},le.NC("wordHighlightStrongBorder","Border color of a symbol during write-access, like writing to a variable.")),Yb=(0,De.P6G)("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},le.NC("overviewRulerWordHighlightForeground","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Jb=(0,De.P6G)("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hcDark:"#C0A0C0CC",hcLight:"#C0A0C0CC"},le.NC("overviewRulerWordHighlightStrongForeground","Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Xb=new ce.uy("hasWordHighlights",!1);function eC(e,t,i,n){const o=e.ordered(t);return(0,be.Ps)(o.map((e=>()=>Promise.resolve(e.provideDocumentHighlights(t,i,n)).then(void 0,lt.Cp))),at.Of)}class tC{constructor(e,t,i){this._model=e,this._selection=t,this._wordSeparators=i,this._wordRange=this._getCurrentWordRange(e,t),this._result=null}get result(){return this._result||(this._result=(0,be.PG)((e=>this._compute(this._model,this._selection,this._wordSeparators,e)))),this._result}_getCurrentWordRange(e,t){const i=e.getWordAtPosition(t.getPosition());return i?new ye.e(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):null}isValid(e,t,i){const n=t.startLineNumber,o=t.startColumn,s=t.endColumn,r=this._getCurrentWordRange(e,t);let a=Boolean(this._wordRange&&this._wordRange.equalsRange(r));for(let l=0,c=i.length;!a&&l=s&&(a=!0)}return a}cancel(){this.result.cancel()}}class iC extends tC{constructor(e,t,i,n){super(e,t,i),this._providers=n}_compute(e,t,i,n){return eC(this._providers,e,t.getPosition(),n).then((e=>e||[]))}}class nC extends tC{constructor(e,t,i){super(e,t,i),this._selectionIsEmpty=t.isEmpty()}_compute(e,t,i,n){return(0,be.Vs)(250,n).then((()=>{if(!t.isEmpty())return[];const n=e.getWordAtPosition(t.getPosition());if(!n||n.word.length>1e3)return[];return e.findMatches(n.word,!0,!1,!0,i,!1).map((e=>({range:e.range,kind:Wo.MY.Text})))}))}isValid(e,t,i){const n=t.isEmpty();return this._selectionIsEmpty===n&&super.isValid(e,t,i)}}(0,se.sb)("_executeDocumentHighlights",((e,t,i)=>eC(e.get(rt.p).documentHighlightProvider,t,i,it.T.None)));class oC{constructor(e,t,i){this.toUnhook=new Ce.SL,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=[],this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this.providers=t,this._hasWordHighlights=Xb.bindTo(i),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(74),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition((e=>{this._ignorePositionChangeEvent||this.occurrencesHighlight&&this._onPositionChanged(e)}))),this.toUnhook.add(e.onDidChangeModelContent((e=>{this._stopAll()}))),this.toUnhook.add(e.onDidChangeConfiguration((e=>{const t=this.editor.getOption(74);this.occurrencesHighlight!==t&&(this.occurrencesHighlight=t,this._stopAll())}))),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight&&this._run()}_getSortedHighlights(){return this.decorations.getRanges().sort(ye.e.compareRangesUsingStarts)}moveNext(){const e=this._getSortedHighlights(),t=(e.findIndex((e=>e.containsPosition(this.editor.getPosition())))+1)%e.length,i=e[t];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);const n=this._getWord();if(n){const o=this.editor.getModel().getLineContent(i.startLineNumber);(0,ie.Z9)(`${o}, ${t+1} of ${e.length} for '${n.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const e=this._getSortedHighlights(),t=(e.findIndex((e=>e.containsPosition(this.editor.getPosition())))-1+e.length)%e.length,i=e[t];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(i.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(i);const n=this._getWord();if(n){const o=this.editor.getModel().getLineContent(i.startLineNumber);(0,ie.Z9)(`${o}, ${t+1} of ${e.length} for '${n.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeDecorations(){this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1))}_stopAll(){this._removeDecorations(),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){this.occurrencesHighlight&&3===e.reason?this._run():this._stopAll()}_getWord(){const e=this.editor.getSelection(),t=e.startLineNumber,i=e.startColumn;return this.model.getWordAtPosition({lineNumber:t,column:i})}_run(){const e=this.editor.getSelection();if(e.startLineNumber!==e.endLineNumber)return void this._stopAll();const t=e.startColumn,i=e.endColumn,n=this._getWord();if(!n||n.startColumn>t||n.endColumn{e===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=t||[],this._beginRenderDecorations())}),lt.dL)}}_beginRenderDecorations(){const e=(new Date).getTime(),t=this.lastCursorPositionChangeTime+250;e>=t?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout((()=>{this.renderDecorations()}),t-e)}renderDecorations(){this.renderDecorationsTimer=-1;const e=[];for(const t of this.workerRequestValue)t.range&&e.push({range:t.range,options:oC._getDecorationOptions(t.kind)});this.decorations.set(e),this._hasWordHighlights.set(this.hasDecorations())}static _getDecorationOptions(e){return e===Wo.MY.Write?this._WRITE_OPTIONS:e===Wo.MY.Text?this._TEXT_OPTIONS:this._REGULAR_OPTIONS}dispose(){this._stopAll(),this.toUnhook.dispose()}}oC._WRITE_OPTIONS=Le.qx.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:(0,Ne.EN)(Jb),position:Se.sh.Center},minimap:{color:(0,Ne.EN)(De.IYc),position:Se.F5.Inline}}),oC._TEXT_OPTIONS=Le.qx.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,Ne.EN)(De.SPM),position:Se.sh.Center},minimap:{color:(0,Ne.EN)(De.IYc),position:Se.F5.Inline}}),oC._REGULAR_OPTIONS=Le.qx.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:(0,Ne.EN)(Yb),position:Se.sh.Center},minimap:{color:(0,Ne.EN)(De.IYc),position:Se.F5.Inline}});let sC=class e extends Ce.JT{constructor(e,t,i){super(),this.wordHighlighter=null;const n=()=>{e.hasModel()&&(this.wordHighlighter=new oC(e,i.documentHighlightProvider,t))};this._register(e.onDidChangeModel((e=>{this.wordHighlighter&&(this.wordHighlighter.dispose(),this.wordHighlighter=null),n()}))),n()}static get(t){return t.getContribution(e.ID)}saveViewState(){return!(!this.wordHighlighter||!this.wordHighlighter.hasDecorations())}moveNext(){this.wordHighlighter&&this.wordHighlighter.moveNext()}moveBack(){this.wordHighlighter&&this.wordHighlighter.moveBack()}restoreViewState(e){this.wordHighlighter&&e&&this.wordHighlighter.restore()}dispose(){this.wordHighlighter&&(this.wordHighlighter.dispose(),this.wordHighlighter=null),super.dispose()}};sC.ID="editor.contrib.wordHighlighter",sC=Ub([$b(1,ce.i6),$b(2,rt.p)],sC);class rC extends se.R6{constructor(e,t){super(t),this._isNext=e}run(e,t){const i=sC.get(t);i&&(this._isNext?i.moveNext():i.moveBack())}}class aC extends se.R6{constructor(){super({id:"editor.action.wordHighlight.trigger",label:le.NC("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:Xb.toNegated(),kbOpts:{kbExpr:ae.u.editorTextFocus,primary:0,weight:100}})}run(e,t,i){const n=sC.get(t);n&&n.restoreViewState(!0)}}(0,se._K)(sC.ID,sC),(0,se.Qr)(class extends rC{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:le.NC("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:Xb,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:65,weight:100}})}}),(0,se.Qr)(class extends rC{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:le.NC("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:Xb,kbOpts:{kbExpr:ae.u.editorTextFocus,primary:1089,weight:100}})}}),(0,se.Qr)(aC),(0,Ne.Ic)(((e,t)=>{const i=e.getColor(De.Rzx);i&&(t.addRule(`.monaco-editor .focused .selectionHighlight { background-color: ${i}; }`),t.addRule(`.monaco-editor .selectionHighlight { background-color: ${i.transparent(.5)}; }`));const n=e.getColor(qb);n&&t.addRule(`.monaco-editor .wordHighlight { background-color: ${n}; }`);const o=e.getColor(Gb);o&&t.addRule(`.monaco-editor .wordHighlightStrong { background-color: ${o}; }`);const s=e.getColor(De.g_n);s&&t.addRule(`.monaco-editor .selectionHighlight { border: 1px ${(0,_o.c3)(e.type)?"dotted":"solid"} ${s}; box-sizing: border-box; }`);const r=e.getColor(Qb);r&&t.addRule(`.monaco-editor .wordHighlight { border: 1px ${(0,_o.c3)(e.type)?"dashed":"solid"} ${r}; box-sizing: border-box; }`);const a=e.getColor(Zb);a&&t.addRule(`.monaco-editor .wordHighlightStrong { border: 1px ${(0,_o.c3)(e.type)?"dashed":"solid"} ${a}; box-sizing: border-box; }`)}));var lC=i(55343),cC=i(92896),dC=i(24929),hC=i(39282);class uC extends se._l{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){if(!t.hasModel())return;const n=(0,dC.u)(t.getOption(119)),o=t.getModel(),s=t.getSelections().map((e=>{const t=new we.L(e.positionLineNumber,e.positionColumn),i=this._move(n,o,t,this._wordNavigationType);return this._moveTo(e,i,this._inSelectionMode)}));if(o.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",3,s.map((e=>lC.Vi.fromModelSelection(e)))),1===s.length){const e=new we.L(s[0].positionLineNumber,s[0].positionColumn);t.revealPosition(e,0)}}_moveTo(e,t,i){return i?new re.Y(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new re.Y(t.lineNumber,t.column,t.lineNumber,t.column)}}class gC extends uC{_move(e,t,i,n){return cC.w.moveWordLeft(e,t,i,n)}}class pC extends uC{_move(e,t,i,n){return cC.w.moveWordRight(e,t,i,n)}}class mC extends se._l{constructor(e){super(e),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){const n=e.get(Xn.c_);if(!t.hasModel())return;const o=(0,dC.u)(t.getOption(119)),s=t.getModel(),r=t.getSelections(),a=t.getOption(5),l=t.getOption(8),c=n.getLanguageConfiguration(s.getLanguageId()).getAutoClosingPairs(),d=t._getViewModel(),h=r.map((e=>{const i=this._delete({wordSeparators:o,model:s,selection:e,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:t.getOption(6),autoClosingBrackets:a,autoClosingQuotes:l,autoClosingPairs:c,autoClosedCharacters:d.getCursorAutoClosedCharacters()},this._wordNavigationType);return new Pe.T4(i,"")}));t.pushUndoStop(),t.executeCommands(this.id,h),t.pushUndoStop()}}class fC extends mC{_delete(e,t){const i=cC.w.deleteWordLeft(e,t);return i||new ye.e(1,1,1,1)}}class _C extends mC{_delete(e,t){const i=cC.w.deleteWordRight(e,t);if(i)return i;const n=e.model.getLineCount(),o=e.model.getLineMaxColumn(n);return new ye.e(n,o,n,o)}}class vC extends se.R6{constructor(){super({id:"deleteInsideWord",precondition:ae.u.writable,label:le.NC("deleteInsideWord","Delete Word"),alias:"Delete Word"})}run(e,t,i){if(!t.hasModel())return;const n=(0,dC.u)(t.getOption(119)),o=t.getModel(),s=t.getSelections().map((e=>{const t=cC.w.deleteInsideWord(n,o,e);return new Pe.T4(t,"")}));t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}(0,se.fK)(new class extends gC{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}),(0,se.fK)(new class extends gC{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}),(0,se.fK)(new class extends gC{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:ce.Ao.and(ae.u.textInputFocus,null===(e=ce.Ao.and(Jn.U,hC.cv))||void 0===e?void 0:e.negate()),primary:2063,mac:{primary:527},weight:100}})}}),(0,se.fK)(new class extends gC{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}),(0,se.fK)(new class extends gC{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}),(0,se.fK)(new class extends gC{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:ce.Ao.and(ae.u.textInputFocus,null===(e=ce.Ao.and(Jn.U,hC.cv))||void 0===e?void 0:e.negate()),primary:3087,mac:{primary:1551},weight:100}})}}),(0,se.fK)(new class extends pC{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}),(0,se.fK)(new class extends pC{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:ce.Ao.and(ae.u.textInputFocus,null===(e=ce.Ao.and(Jn.U,hC.cv))||void 0===e?void 0:e.negate()),primary:2065,mac:{primary:529},weight:100}})}}),(0,se.fK)(new class extends pC{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}),(0,se.fK)(new class extends pC{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}),(0,se.fK)(new class extends pC{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:ce.Ao.and(ae.u.textInputFocus,null===(e=ce.Ao.and(Jn.U,hC.cv))||void 0===e?void 0:e.negate()),primary:3089,mac:{primary:1553},weight:100}})}}),(0,se.fK)(new class extends pC{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}),(0,se.fK)(new class extends gC{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(e,t,i,n){return super._move((0,dC.u)(Ui.BH.wordSeparators.defaultValue),t,i,n)}}),(0,se.fK)(new class extends gC{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(e,t,i,n){return super._move((0,dC.u)(Ui.BH.wordSeparators.defaultValue),t,i,n)}}),(0,se.fK)(new class extends pC{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(e,t,i,n){return super._move((0,dC.u)(Ui.BH.wordSeparators.defaultValue),t,i,n)}}),(0,se.fK)(new class extends pC{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(e,t,i,n){return super._move((0,dC.u)(Ui.BH.wordSeparators.defaultValue),t,i,n)}}),(0,se.fK)(new class extends fC{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:ae.u.writable})}}),(0,se.fK)(new class extends fC{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:ae.u.writable})}}),(0,se.fK)(new class extends fC{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}),(0,se.fK)(new class extends _C{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:ae.u.writable})}}),(0,se.fK)(new class extends _C{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:ae.u.writable})}}),(0,se.fK)(new class extends _C{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}),(0,se.Qr)(vC);class bC extends uC{_move(e,t,i,n){return cC.L.moveWordPartLeft(e,t,i)}}ut.P0.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");ut.P0.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class CC extends uC{_move(e,t,i,n){return cC.L.moveWordPartRight(e,t,i)}}(0,se.fK)(new class extends mC{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(e,t){const i=cC.L.deleteWordPartLeft(e);return i||new ye.e(1,1,1,1)}}),(0,se.fK)(new class extends mC{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:ae.u.writable,kbOpts:{kbExpr:ae.u.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(e,t){const i=cC.L.deleteWordPartRight(e);if(i)return i;const n=e.model.getLineCount(),o=e.model.getLineMaxColumn(n);return new ye.e(n,o,n,o)}}),(0,se.fK)(new class extends bC{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:ae.u.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}),(0,se.fK)(new class extends bC{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:ae.u.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}),(0,se.fK)(new class extends CC{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:ae.u.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}),(0,se.fK)(new class extends CC{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:ae.u.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}});class wC extends Ce.JT{constructor(e){super(),this.editor=e,this._register(this.editor.onDidAttemptReadOnlyEdit((()=>this._onDidAttemptReadOnlyEdit())))}_onDidAttemptReadOnlyEdit(){const e=Et.get(this.editor);e&&this.editor.hasModel()&&(this.editor.isSimpleWidget?e.showMessage(le.NC("editor.simple.readonly","Cannot edit in read-only input"),this.editor.getPosition()):e.showMessage(le.NC("editor.readonly","Cannot edit in read-only editor"),this.editor.getPosition()))}}wC.ID="editor.contrib.readOnlyMessageController",(0,se._K)(wC.ID,wC);var yC=i(20913),SC=i(38626),LC=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},kC=function(e,t){return function(i,n){t(i,n,e)}};const xC=new ce.uy("accessibilityHelpWidgetVisible",!1);let DC=class e extends Ce.JT{constructor(e,t){super(),this._editor=e,this._widget=this._register(t.createInstance(NC,this._editor))}static get(t){return t.getContribution(e.ID)}show(){this._widget.show()}hide(){this._widget.hide()}};DC.ID="editor.contrib.accessibilityHelpController",DC=LC([kC(1,Mt.TG)],DC);let NC=class e extends Nn.${constructor(e,t,i,n){super(),this._contextKeyService=t,this._keybindingService=i,this._openerService=n,this._editor=e,this._isVisibleKey=xC.bindTo(this._contextKeyService),this._domNode=(0,SC.X)(document.createElement("div")),this._domNode.setClassName("accessibilityHelpWidget"),this._domNode.setDisplay("none"),this._domNode.setAttribute("role","dialog"),this._domNode.setAttribute("aria-hidden","true"),this._contentDomNode=(0,SC.X)(document.createElement("div")),this._contentDomNode.setAttribute("role","document"),this._domNode.appendChild(this._contentDomNode),this._isVisible=!1,this._register(this._editor.onDidLayoutChange((()=>{this._isVisible&&this._layout()}))),this._register(At.mu(this._contentDomNode.domNode,"keydown",(e=>{if(this._isVisible&&(e.equals(2083)&&((0,ie.Z9)(yC.Oe.emergencyConfOn),this._editor.updateOptions({accessibilitySupport:"on"}),At.PO(this._contentDomNode.domNode),this._buildContent(),this._contentDomNode.domNode.focus(),e.preventDefault(),e.stopPropagation()),e.equals(2086))){(0,ie.Z9)(yC.Oe.openingDocs);let t=this._editor.getRawOptions().accessibilityHelpUrl;void 0===t&&(t="https://go.microsoft.com/fwlink/?linkid=852450"),this._openerService.open(ct.o.parse(t)),e.preventDefault(),e.stopPropagation()}}))),this.onblur(this._contentDomNode.domNode,(()=>{this.hide()})),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return e.ID}getDomNode(){return this._domNode.domNode}getPosition(){return{preference:null}}show(){this._isVisible||(this._isVisible=!0,this._isVisibleKey.set(!0),this._layout(),this._domNode.setDisplay("block"),this._domNode.setAttribute("aria-hidden","false"),this._contentDomNode.domNode.tabIndex=0,this._buildContent(),this._contentDomNode.domNode.focus())}_descriptionForCommand(e,t,i){const n=this._keybindingService.lookupKeybinding(e);return n?ot.WU(t,n.getAriaLabel()):ot.WU(i,e)}_buildContent(){const e=this._editor.getOptions(),t=this._editor.getSelections();let i=0;if(t){const e=this._editor.getModel();e&&t.forEach((t=>{i+=e.getValueLengthInRange(t)}))}let n=function(e,t){return e&&0!==e.length?1===e.length?t?ot.WU(yC.Oe.singleSelectionRange,e[0].positionLineNumber,e[0].positionColumn,t):ot.WU(yC.Oe.singleSelection,e[0].positionLineNumber,e[0].positionColumn):t?ot.WU(yC.Oe.multiSelectionRange,e.length,t):e.length>0?ot.WU(yC.Oe.multiSelection,e.length):"":yC.Oe.noSelection}(t,i);e.get(56)?e.get(83)?n+=yC.Oe.readonlyDiffEditor:n+=yC.Oe.editableDiffEditor:e.get(83)?n+=yC.Oe.readonlyEditor:n+=yC.Oe.editableEditor;const o=We.dz?yC.Oe.changeConfigToOnMac:yC.Oe.changeConfigToOnWinLinux;switch(e.get(2)){case 0:n+="\n\n - "+o;break;case 2:n+="\n\n - "+yC.Oe.auto_on;break;case 1:n+="\n\n - "+yC.Oe.auto_off,n+=" "+o}e.get(132)?n+="\n\n - "+this._descriptionForCommand(nb.ID,yC.Oe.tabFocusModeOnMsg,yC.Oe.tabFocusModeOnMsgNoKb):n+="\n\n - "+this._descriptionForCommand(nb.ID,yC.Oe.tabFocusModeOffMsg,yC.Oe.tabFocusModeOffMsgNoKb);n+="\n\n - "+(We.dz?yC.Oe.openDocMac:yC.Oe.openDocWinLinux),n+="\n\n"+yC.Oe.outroMsg,this._contentDomNode.domNode.appendChild((0,ba.BO)(n)),this._contentDomNode.domNode.setAttribute("aria-label",n)}hide(){this._isVisible&&(this._isVisible=!1,this._isVisibleKey.reset(),this._domNode.setDisplay("none"),this._domNode.setAttribute("aria-hidden","true"),this._contentDomNode.domNode.tabIndex=-1,At.PO(this._contentDomNode.domNode),this._editor.focus())}_layout(){const t=this._editor.getLayoutInfo(),i=Math.max(5,Math.min(e.WIDTH,t.width-40)),n=Math.max(5,Math.min(e.HEIGHT,t.height-40));this._domNode.setWidth(i),this._domNode.setHeight(n);const o=Math.round((t.height-n)/2);this._domNode.setTop(o);const s=Math.round((t.width-i)/2);this._domNode.setLeft(s)}};NC.ID="editor.contrib.accessibilityHelpWidget",NC.WIDTH=500,NC.HEIGHT=300,NC=LC([kC(1,ce.i6),kC(2,Bt.d),kC(3,Na.v4)],NC);class EC extends se.R6{constructor(){super({id:"editor.action.showAccessibilityHelp",label:yC.Oe.showAccessibilityHelpAction,alias:"Show Accessibility Help",precondition:void 0,kbOpts:{primary:571,weight:100,linux:{primary:1595,secondary:[571]}}})}run(e,t){const i=DC.get(t);i&&i.show()}}(0,se._K)(DC.ID,DC),(0,se.Qr)(EC);const IC=se._l.bindToContribution(DC.get);(0,se.fK)(new IC({id:"closeAccessibilityHelp",precondition:xC,handler:e=>e.hide(),kbOpts:{weight:200,kbExpr:ae.u.focus,primary:9,secondary:[1033]}})),(0,Ne.Ic)(((e,t)=>{const i=e.getColor(De.D0T);i&&t.addRule(`.monaco-editor .accessibilityHelpWidget { background-color: ${i}; }`);const n=e.getColor(De.Hfx);n&&t.addRule(`.monaco-editor .accessibilityHelpWidget { color: ${n}; }`);const o=e.getColor(De.rh);o&&t.addRule(`.monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px ${o}; }`);const s=e.getColor(De.lRK);s&&t.addRule(`.monaco-editor .accessibilityHelpWidget { border: 2px solid ${s}; }`)}));class TC extends Ce.JT{constructor(e){super(),this.editor=e,this.widget=null,We.gn&&(this._register(e.onDidChangeConfiguration((()=>this.update()))),this.update())}update(){const e=!this.editor.getOption(83);!this.widget&&e?this.widget=new MC(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}TC.ID="editor.contrib.iPadShowKeyboard";class MC extends Ce.JT{constructor(e){super(),this.editor=e,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(At.nm(this._domNode,"touchstart",(e=>{this.editor.focus()}))),this._register(At.nm(this._domNode,"focus",(e=>{this.editor.focus()}))),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return MC.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}MC.ID="editor.contrib.ShowKeyboardWidget",(0,se._K)(TC.ID,TC);var AC=i(45797),RC=i(276),OC=i(44156),PC=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},FC=function(e,t){return function(i,n){t(i,n,e)}};let BC=class e extends Ce.JT{constructor(e,t,i){super(),this._editor=e,this._languageService=i,this._widget=null,this._register(this._editor.onDidChangeModel((e=>this.stop()))),this._register(this._editor.onDidChangeModelLanguage((e=>this.stop()))),this._register(Wo.RW.onDidChange((e=>this.stop()))),this._register(this._editor.onKeyUp((e=>9===e.keyCode&&this.stop())))}static get(t){return t.getContribution(e.ID)}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new WC(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};BC.ID="editor.contrib.inspectTokens",BC=PC([FC(1,OC.Z),FC(2,zn.O)],BC);class VC extends se.R6{constructor(){super({id:"editor.action.inspectTokens",label:yC.ug.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(e,t){const i=BC.get(t);i&&i.launch()}}class WC extends Ce.JT{constructor(e,t){super(),this.allowEditorOverflow=!0,this._editor=e,this._languageService=t,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=function(e,t){const i=Wo.RW.get(t);if(i)return i;const n=e.encodeLanguageId(t);return{getInitialState:()=>RC.TJ,tokenize:(e,i,n)=>(0,RC.Ri)(t,n),tokenizeEncoded:(e,t,i)=>(0,RC.Dy)(n,i)}}(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition((e=>this._compute(this._editor.getPosition())))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return WC._ID}_compute(e){const t=this._getTokensAtLine(e.lineNumber);let i=0;for(let a=t.tokens1.length-1;a>=0;a--){const n=t.tokens1[a];if(e.column-1>=n.offset){i=a;break}}let n=0;for(let a=t.tokens2.length>>>1;a>=0;a--)if(e.column-1>=t.tokens2[a<<1]){n=a;break}const o=this._model.getLineContent(e.lineNumber);let s="";if(i{const i=e.getColor(De.CNo);if(i){const n=(0,_o.c3)(e.type)?2:1;t.addRule(`.monaco-editor .tokens-inspect-widget { border: ${n}px solid ${i}; }`),t.addRule(`.monaco-editor .tokens-inspect-widget .tokens-inspect-separator { background-color: ${i}; }`)}const n=e.getColor(De.yJx);n&&t.addRule(`.monaco-editor .tokens-inspect-widget { background-color: ${n}; }`);const o=e.getColor(De.Sbf);o&&t.addRule(`.monaco-editor .tokens-inspect-widget { color: ${o}; }`)}));var HC=i(90725),zC=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},jC=function(e,t){return function(i,n){t(i,n,e)}};let KC=class e{constructor(e,t){this.quickInputService=e,this.keybindingService=t,this.registry=zi.B.as(HC.IP.Quickaccess)}provide(t){const i=new Ce.SL;return i.add(t.onDidAccept((()=>{const[e]=t.selectedItems;e&&this.quickInputService.quickAccess.show(e.prefix,{preserveValue:!0})}))),i.add(t.onDidChangeValue((t=>{const i=this.registry.getQuickAccessProvider(t.substr(e.PREFIX.length));i&&i.prefix&&i.prefix!==e.PREFIX&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})}))),t.items=this.getQuickAccessProviders(),i}getQuickAccessProviders(){const t=[];for(const i of this.registry.getQuickAccessProviders().sort(((e,t)=>e.prefix.localeCompare(t.prefix))))if(i.prefix!==e.PREFIX)for(const e of i.helpEntries){const n=e.prefix||i.prefix,o=n||"\u2026";t.push({prefix:n,label:o,keybinding:e.commandId?this.keybindingService.lookupKeybinding(e.commandId):void 0,ariaLabel:(0,le.NC)("helpPickAriaLabel","{0}, {1}",o,e.description),description:e.description})}return t}};KC.PREFIX="?",KC=zC([jC(0,hn.eJ),jC(1,Bt.d)],KC),zi.B.as(HC.IP.Quickaccess).registerQuickAccessProvider({ctor:KC,prefix:"",helpEntries:[{description:yC.ld.helpQuickAccessActionLabel}]});class UC{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(e,t){var i;const n=new Ce.SL;e.canAcceptInBackground=!!(null===(i=this.options)||void 0===i?void 0:i.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const o=n.add(new Ce.XK);return o.value=this.doProvide(e,t),n.add(this.onDidActiveTextEditorControlChange((()=>{o.value=void 0,o.value=this.doProvide(e,t)}))),n}doProvide(e,t){const i=new Ce.SL,n=this.activeTextEditorControl;if(n&&this.canProvideWithTextEditor(n)){const o={editor:n},s=(0,Vo.Pi)(n);if(s){let e=(0,$i.f6)(n.saveViewState());i.add(s.onDidChangeCursorPosition((()=>{e=(0,$i.f6)(n.saveViewState())}))),o.restoreViewState=()=>{e&&n===this.activeTextEditorControl&&n.restoreViewState(e)},i.add((0,Zi.I)(t.onCancellationRequested)((()=>{var e;return null===(e=o.restoreViewState)||void 0===e?void 0:e.call(o)})))}i.add((0,Ce.OF)((()=>this.clearDecorations(n)))),i.add(this.provideWithTextEditor(o,e,t))}else i.add(this.provideWithoutTextEditor(e,t));return i}canProvideWithTextEditor(e){return!0}gotoLocation({editor:e},t){e.setSelection(t.range),e.revealRangeInCenter(t.range,0),t.preserveFocus||e.focus()}getModel(e){var t;return(0,Vo.QI)(e)?null===(t=e.getModel())||void 0===t?void 0:t.modified:e.getModel()}addDecorations(e,t){e.changeDecorations((e=>{const i=[];this.rangeHighlightDecorationId&&(i.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),i.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const n=[{range:t,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:(0,Ne.EN)(ke.m9),position:Se.sh.Full}}}],[o,s]=e.deltaDecorations(i,n);this.rangeHighlightDecorationId={rangeHighlightId:o,overviewRulerDecorationId:s}}))}clearDecorations(e){const t=this.rangeHighlightDecorationId;t&&(e.changeDecorations((e=>{e.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])})),this.rangeHighlightDecorationId=void 0)}}class $C extends UC{constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(e){const t=(0,le.NC)("cannotRunGotoLine","Open a text editor first to go to a line.");return e.items=[{label:t}],e.ariaLabel=t,Ce.JT.None}provideWithTextEditor(e,t,i){const n=e.editor,o=new Ce.SL;o.add(t.onDidAccept((i=>{const[o]=t.selectedItems;if(o){if(!this.isValidLineNumber(n,o.lineNumber))return;this.gotoLocation(e,{range:this.toRange(o.lineNumber,o.column),keyMods:t.keyMods,preserveFocus:i.inBackground}),i.inBackground||t.hide()}})));const s=()=>{const e=this.parsePosition(n,t.value.trim().substr($C.PREFIX.length)),i=this.getPickLabel(n,e.lineNumber,e.column);if(t.items=[{lineNumber:e.lineNumber,column:e.column,label:i}],t.ariaLabel=i,!this.isValidLineNumber(n,e.lineNumber))return void this.clearDecorations(n);const o=this.toRange(e.lineNumber,e.column);n.revealRangeInCenter(o,0),this.addDecorations(n,o)};s(),o.add(t.onDidChangeValue((()=>s())));const r=(0,Vo.Pi)(n);if(r){2===r.getOptions().get(62).renderType&&(r.updateOptions({lineNumbers:"on"}),o.add((0,Ce.OF)((()=>r.updateOptions({lineNumbers:"relative"})))))}return o}toRange(e=1,t=1){return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}parsePosition(e,t){const i=t.split(/,|:|#/).map((e=>parseInt(e,10))).filter((e=>!isNaN(e))),n=this.lineCount(e)+1;return{lineNumber:i[0]>0?i[0]:n+i[0],column:i[1]}}getPickLabel(e,t,i){if(this.isValidLineNumber(e,t))return this.isValidColumn(e,t,i)?(0,le.NC)("gotoLineColumnLabel","Go to line {0} and character {1}.",t,i):(0,le.NC)("gotoLineLabel","Go to line {0}.",t);const n=e.getPosition()||{lineNumber:1,column:1},o=this.lineCount(e);return o>1?(0,le.NC)("gotoLineLabelEmptyWithLimit","Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",n.lineNumber,n.column,o):(0,le.NC)("gotoLineLabelEmpty","Current Line: {0}, Character: {1}. Type a line number to navigate to.",n.lineNumber,n.column)}isValidLineNumber(e,t){return!(!t||"number"!=typeof t)&&(t>0&&t<=this.lineCount(e))}isValidColumn(e,t,i){if(!i||"number"!=typeof i)return!1;const n=this.getModel(e);if(!n)return!1;const o={lineNumber:t,column:i};return n.validatePosition(o).equals(o)}lineCount(e){var t,i;return null!==(i=null===(t=this.getModel(e))||void 0===t?void 0:t.getLineCount())&&void 0!==i?i:0}}$C.PREFIX=":";var qC=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},GC=function(e,t){return function(i,n){t(i,n,e)}};let QC=class extends $C{constructor(e){super(),this.editorService=e,this.onDidActiveTextEditorControlChange=Yt.ju.None}get activeTextEditorControl(){return(0,$i.f6)(this.editorService.getFocusedCodeEditor())}};QC=qC([GC(0,ze.$)],QC);class ZC extends se.R6{constructor(){super({id:ZC.ID,label:yC.qq.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:ae.u.focus,primary:2085,mac:{primary:293},weight:100}})}run(e){e.get(hn.eJ).quickAccess.show(QC.PREFIX)}}ZC.ID="editor.action.gotoLine",(0,se.Qr)(ZC),zi.B.as(HC.IP.Quickaccess).registerQuickAccessProvider({ctor:QC,prefix:QC.PREFIX,helpEntries:[{description:yC.qq.gotoLineActionLabel,commandId:ZC.ID}]});const YC=[void 0,[]];function JC(e,t,i=0,n=0){const o=t;return o.values&&o.values.length>1?function(e,t,i,n){let o=0;const s=[];for(const r of t){const[t,a]=XC(e,r,i,n);if("number"!=typeof t)return YC;o+=t,s.push(...a)}return[o,ew(s)]}(e,o.values,i,n):XC(e,t,i,n)}function XC(e,t,i,n){const o=(0,es.EW)(t.original,t.originalLowercase,i,e,e.toLowerCase(),n,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return o?[o[0],(0,es.mB)(o)]:YC}Object.freeze({score:0});function ew(e){const t=e.sort(((e,t)=>e.start-t.start)),i=[];let n;for(const o of t)n&&tw(n,o)?(n.start=Math.min(n.start,o.start),n.end=Math.max(n.end,o.end)):(n=o,i.push(o));return i}function tw(e,t){return!(e.end=0,r=iw(e);let a;const l=e.split(" ");if(l.length>1)for(const c of l){const e=iw(c),{pathNormalized:t,normalized:i,normalizedLowercase:n}=ow(c);i&&(a||(a=[]),a.push({original:c,originalLowercase:c.toLowerCase(),pathNormalized:t,normalized:i,normalizedLowercase:n,expectContiguousMatch:e}))}return{original:e,originalLowercase:t,pathNormalized:i,normalized:n,normalizedLowercase:o,values:a,containsPathSeparator:s,expectContiguousMatch:r}}function ow(e){let t;t=We.ED?e.replace(/\//g,sc.ir):e.replace(/\\/g,sc.ir);const i=(0,ot.R1)(t).replace(/\s|"/g,"");return{pathNormalized:t,normalized:i,normalizedLowercase:i.toLowerCase()}}function sw(e){return Array.isArray(e)?nw(e.map((e=>e.original)).join(" ")):nw(e.original)}var rw=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},aw=function(e,t){return function(i,n){t(i,n,e)}},lw=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let cw=class e extends UC{constructor(e,t,i=Object.create(null)){super(i),this._languageFeaturesService=e,this._outlineModelService=t,this.options=i,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(e){return this.provideLabelPick(e,(0,le.NC)("cannotRunGotoSymbolWithoutEditor","To go to a symbol, first open a text editor with symbol information.")),Ce.JT.None}provideWithTextEditor(e,t,i){const n=e.editor,o=this.getModel(n);return o?this._languageFeaturesService.documentSymbolProvider.has(o)?this.doProvideWithEditorSymbols(e,o,t,i):this.doProvideWithoutEditorSymbols(e,o,t,i):Ce.JT.None}doProvideWithoutEditorSymbols(e,t,i,n){const o=new Ce.SL;return this.provideLabelPick(i,(0,le.NC)("cannotRunGotoSymbolWithoutSymbolProvider","The active text editor does not provide symbol information.")),(()=>{lw(this,void 0,void 0,(function*(){(yield this.waitForLanguageSymbolRegistry(t,o))&&!n.isCancellationRequested&&o.add(this.doProvideWithEditorSymbols(e,t,i,n))}))})(),o}provideLabelPick(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}waitForLanguageSymbolRegistry(e,t){return lw(this,void 0,void 0,(function*(){if(this._languageFeaturesService.documentSymbolProvider.has(e))return!0;const i=new be.CR,n=t.add(this._languageFeaturesService.documentSymbolProvider.onDidChange((()=>{this._languageFeaturesService.documentSymbolProvider.has(e)&&(n.dispose(),i.complete(!0))})));return t.add((0,Ce.OF)((()=>i.complete(!1)))),i.p}))}doProvideWithEditorSymbols(t,i,n,o){var s;const r=t.editor,a=new Ce.SL;a.add(n.onDidAccept((e=>{const[i]=n.selectedItems;i&&i.range&&(this.gotoLocation(t,{range:i.range.selection,keyMods:n.keyMods,preserveFocus:e.inBackground}),e.inBackground||n.hide())}))),a.add(n.onDidTriggerItemButton((({item:e})=>{e&&e.range&&(this.gotoLocation(t,{range:e.range.selection,keyMods:n.keyMods,forceSideBySide:!0}),n.hide())})));const l=this.getDocumentSymbols(i,o);let c;const d=t=>lw(this,void 0,void 0,(function*(){null==c||c.dispose(!0),n.busy=!1,c=new it.A(o),n.busy=!0;try{const i=nw(n.value.substr(e.PREFIX.length).trim()),s=yield this.doGetSymbolPicks(l,i,void 0,c.token);if(o.isCancellationRequested)return;if(s.length>0){if(n.items=s,t&&0===i.original.length){const e=(0,at.dF)(s,(e=>Boolean("separator"!==e.type&&e.range&&ye.e.containsPosition(e.range.decoration,t))));e&&(n.activeItems=[e])}}else i.original.length>0?this.provideLabelPick(n,(0,le.NC)("noMatchingSymbolResults","No matching editor symbols")):this.provideLabelPick(n,(0,le.NC)("noSymbolResults","No editor symbols"))}finally{o.isCancellationRequested||(n.busy=!1)}}));a.add(n.onDidChangeValue((()=>d(void 0)))),d(null===(s=r.getSelection())||void 0===s?void 0:s.getPosition());let h=2;return a.add(n.onDidChangeActive((()=>{const[e]=n.activeItems;if(e&&e.range){if(h-- >0)return;r.revealRangeInCenter(e.range.selection,0),this.addDecorations(r,e.range.decoration)}}))),a}doGetSymbolPicks(t,i,n,o){return lw(this,void 0,void 0,(function*(){const s=yield t;if(o.isCancellationRequested)return[];const r=0===i.original.indexOf(e.SCOPE_PREFIX),a=r?1:0;let l,c;i.values&&i.values.length>1?(l=sw(i.values[0]),c=sw(i.values.slice(1))):l=i;const d=[];for(let g=0;ga){let L=!1;if(l!==i&&([v,b]=JC(f,Object.assign(Object.assign({},i),{values:void 0}),a,_),"number"==typeof v&&(L=!0)),"number"!=typeof v&&([v,b]=JC(f,l,a,_),"number"!=typeof v))continue;if(!L&&c){if(y&&c.original.length>0&&([C,w]=JC(y,c)),"number"!=typeof C)continue;"number"==typeof v&&(v+=C)}}const S=p.tags&&p.tags.indexOf(1)>=0;d.push({index:g,kind:p.kind,score:v,label:f,ariaLabel:m,description:y,highlights:S?void 0:{label:b,description:w},range:{selection:ye.e.collapseToStart(p.selectionRange),decoration:p.range},strikethrough:S,buttons:(()=>{var e,t;const i=(null===(e=this.options)||void 0===e?void 0:e.openSideBySideDirection)?null===(t=this.options)||void 0===t?void 0:t.openSideBySideDirection():void 0;if(i)return[{iconClass:"right"===i?Zt.lA.splitHorizontal.classNames:Zt.lA.splitVertical.classNames,tooltip:"right"===i?(0,le.NC)("openToSide","Open to the Side"):(0,le.NC)("openToBottom","Open to the Bottom")}]})()})}const h=d.sort(((e,t)=>r?this.compareByKindAndScore(e,t):this.compareByScore(e,t)));let u=[];if(r){let k,x,D=0;function N(){x&&"number"==typeof k&&D>0&&(x.label=(0,ot.WU)(hw[k]||dw,D))}for(const E of h)k!==E.kind?(N(),k=E.kind,D=1,x={type:"separator"},u.push(x)):D++,u.push(E);N()}else h.length>0&&(u=[{label:(0,le.NC)("symbols","symbols ({0})",d.length),type:"separator"},...h]);return u}))}compareByScore(e,t){if("number"!=typeof e.score&&"number"==typeof t.score)return 1;if("number"==typeof e.score&&"number"!=typeof t.score)return-1;if("number"==typeof e.score&&"number"==typeof t.score){if(e.score>t.score)return-1;if(e.scoret.index?1:0}compareByKindAndScore(e,t){const i=hw[e.kind]||dw,n=hw[t.kind]||dw,o=i.localeCompare(n);return 0===o?this.compareByScore(e,t):o}getDocumentSymbols(e,t){return lw(this,void 0,void 0,(function*(){const i=yield this._outlineModelService.getOrCreate(e,t);return t.isCancellationRequested?[]:i.asListOfDocumentSymbols()}))}};cw.PREFIX="@",cw.SCOPE_PREFIX=":",cw.PREFIX_BY_CATEGORY=`${cw.PREFIX}${cw.SCOPE_PREFIX}`,cw=rw([aw(0,rt.p),aw(1,Au)],cw);const dw=(0,le.NC)("property","properties ({0})"),hw={5:(0,le.NC)("method","methods ({0})"),11:(0,le.NC)("function","functions ({0})"),8:(0,le.NC)("_constructor","constructors ({0})"),12:(0,le.NC)("variable","variables ({0})"),4:(0,le.NC)("class","classes ({0})"),22:(0,le.NC)("struct","structs ({0})"),23:(0,le.NC)("event","events ({0})"),24:(0,le.NC)("operator","operators ({0})"),10:(0,le.NC)("interface","interfaces ({0})"),2:(0,le.NC)("namespace","namespaces ({0})"),3:(0,le.NC)("package","packages ({0})"),25:(0,le.NC)("typeParameter","type parameters ({0})"),1:(0,le.NC)("modules","modules ({0})"),6:(0,le.NC)("property","properties ({0})"),9:(0,le.NC)("enum","enumerations ({0})"),21:(0,le.NC)("enumMember","enumeration members ({0})"),14:(0,le.NC)("string","strings ({0})"),0:(0,le.NC)("file","files ({0})"),17:(0,le.NC)("array","arrays ({0})"),15:(0,le.NC)("number","numbers ({0})"),16:(0,le.NC)("boolean","booleans ({0})"),18:(0,le.NC)("object","objects ({0})"),19:(0,le.NC)("key","keys ({0})"),7:(0,le.NC)("field","fields ({0})"),13:(0,le.NC)("constant","constants ({0})")};var uw=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},gw=function(e,t){return function(i,n){t(i,n,e)}};let pw=class extends cw{constructor(e,t,i){super(t,i),this.editorService=e,this.onDidActiveTextEditorControlChange=Yt.ju.None}get activeTextEditorControl(){return(0,$i.f6)(this.editorService.getFocusedCodeEditor())}};pw=uw([gw(0,ze.$),gw(1,rt.p),gw(2,Au)],pw);class mw extends se.R6{constructor(){super({id:mw.ID,label:yC.aq.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:ae.u.hasDocumentSymbolProvider,kbOpts:{kbExpr:ae.u.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(e){e.get(hn.eJ).quickAccess.show(cw.PREFIX)}}function fw(e,t){return t&&(e.stack||e.stacktrace)?le.NC("stackTrace.format","{0}: {1}",vw(e),_w(e.stack)||_w(e.stacktrace)):vw(e)}function _w(e){return Array.isArray(e)?e.join("\n"):e}function vw(e){return"string"==typeof e.code&&"number"==typeof e.errno&&"string"==typeof e.syscall?le.NC("nodeExceptionMessage","A system error occurred ({0})",e.message):e.message||le.NC("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}function bw(e=null,t=!1){if(!e)return le.NC("error.defaultMessage","An unknown error occurred. Please consult the log for more details.");if(Array.isArray(e)){const i=at.kX(e),n=bw(i[0],t);return i.length>1?le.NC("error.moreErrors","{0} ({1} errors in total)",n,i.length):n}if($i.HD(e))return e;if(e.detail){const i=e.detail;if(i.error)return fw(i.error,t);if(i.exception)return fw(i.exception,t)}return e.stack?fw(e,t):e.message?e.message:le.NC("error.defaultMessage","An unknown error occurred. Please consult the log for more details.")}mw.ID="editor.action.quickOutline",(0,se.Qr)(mw),zi.B.as(HC.IP.Quickaccess).registerQuickAccessProvider({ctor:pw,prefix:cw.PREFIX,helpEntries:[{description:yC.aq.quickOutlineActionLabel,prefix:cw.PREFIX,commandId:mw.ID},{description:yC.aq.quickOutlineByCategoryActionLabel,prefix:cw.PREFIX_BY_CATEGORY}]});var Cw,ww=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function yw(e){const t=e;return Array.isArray(t.items)}!function(e){e[e.NO_ACTION=0]="NO_ACTION",e[e.CLOSE_PICKER=1]="CLOSE_PICKER",e[e.REFRESH_PICKER=2]="REFRESH_PICKER",e[e.REMOVE_ITEM=3]="REMOVE_ITEM"}(Cw||(Cw={}));class Sw extends Ce.JT{constructor(e,t){super(),this.prefix=e,this.options=t}provide(e,t){var i;const n=new Ce.SL;let o;e.canAcceptInBackground=!!(null===(i=this.options)||void 0===i?void 0:i.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const s=n.add(new Ce.XK),r=()=>ww(this,void 0,void 0,(function*(){const i=s.value=new Ce.SL;null==o||o.dispose(!0),e.busy=!1,o=new it.A(t);const n=o.token,r=e.value.substr(this.prefix.length).trim(),a=this._getPicks(r,i,n),l=(t,i)=>{var n;let o,s;if(yw(t)?(o=t.items,s=t.active):o=t,0===o.length){if(i)return!1;r.length>0&&(null===(n=this.options)||void 0===n?void 0:n.noResultsPick)&&(o=[this.options.noResultsPick])}return e.items=o,s&&(e.activeItems=[s]),!0};if(null===a);else if(function(e){const t=e;return!!t.picks&&t.additionalPicks instanceof Promise}(a)){let t=!1,i=!1;yield Promise.all([(()=>ww(this,void 0,void 0,(function*(){yield(0,be.Vs)(Sw.FAST_PICKS_RACE_DELAY),n.isCancellationRequested||i||(t=l(a.picks,!0))})))(),(()=>ww(this,void 0,void 0,(function*(){e.busy=!0;try{const o=yield a.additionalPicks;if(n.isCancellationRequested)return;let s,r,c,d;if(yw(a.picks)?(s=a.picks.items,r=a.picks.active):s=a.picks,yw(o)?(c=o.items,d=o.active):c=o,c.length>0||!t){let t;if(!r&&!d){const i=e.activeItems[0];i&&-1!==s.indexOf(i)&&(t=i)}l({items:[...s,...c],active:r||d||t})}}finally{n.isCancellationRequested||(e.busy=!1),i=!0}})))()])}else if(a instanceof Promise){e.busy=!0;try{const t=yield a;if(n.isCancellationRequested)return;l(t)}finally{n.isCancellationRequested||(e.busy=!1)}}else l(a)}));return n.add(e.onDidChangeValue((()=>r()))),r(),n.add(e.onDidAccept((t=>{const[i]=e.selectedItems;"function"==typeof(null==i?void 0:i.accept)&&(t.inBackground||e.hide(),i.accept(e.keyMods,t))}))),n.add(e.onDidTriggerItemButton((({button:i,item:n})=>ww(this,void 0,void 0,(function*(){var o,s;if("function"==typeof n.trigger){const a=null!==(s=null===(o=n.buttons)||void 0===o?void 0:o.indexOf(i))&&void 0!==s?s:-1;if(a>=0){const i=n.trigger(a,e.keyMods),o="number"==typeof i?i:yield i;if(t.isCancellationRequested)return;switch(o){case Cw.NO_ACTION:break;case Cw.CLOSE_PICKER:e.hide();break;case Cw.REFRESH_PICKER:r();break;case Cw.REMOVE_ITEM:{const t=e.items.indexOf(n);if(-1!==t){const i=e.items.slice(),n=i.splice(t,1),o=e.activeItems.filter((e=>e!==n[0])),s=e.keepScrollPosition;e.keepScrollPosition=!0,e.items=i,o&&(e.activeItems=o),e.keepScrollPosition=s}break}}}}}))))),n}}Sw.FAST_PICKS_RACE_DELAY=200;var Lw=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},kw=function(e,t){return function(i,n){t(i,n,e)}},xw=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let Dw=class e extends Sw{constructor(t,i,n,o,s,r){super(e.PREFIX,t),this.instantiationService=i,this.keybindingService=n,this.commandService=o,this.telemetryService=s,this.dialogService=r,this.commandsHistory=this._register(this.instantiationService.createInstance(Nw)),this.options=t}_getPicks(t,i,n){return xw(this,void 0,void 0,(function*(){const o=yield this.getCommandPicks(i,n);if(n.isCancellationRequested)return[];const s=[];for(const i of o){const n=(0,$i.f6)(e.WORD_FILTER(t,i.label)),o=i.commandAlias?(0,$i.f6)(e.WORD_FILTER(t,i.commandAlias)):void 0;n||o?(i.highlights={label:n,detail:this.options.showAlias?o:void 0},s.push(i)):t===i.commandId&&s.push(i)}const r=new Map;for(const e of s){const t=r.get(e.label);t?(e.description=e.commandId,t.description=t.commandId):r.set(e.label,e)}s.sort(((e,t)=>{const i=this.commandsHistory.peek(e.commandId),n=this.commandsHistory.peek(t.commandId);return i&&n?i>n?-1:1:i?-1:n?1:e.label.localeCompare(t.label)}));const a=[];let l=!1;for(let e=0;exw(this,void 0,void 0,(function*(){this.commandsHistory.push(t.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:t.commandId,from:"quick open"});try{yield this.commandService.executeCommand(t.commandId)}catch(e){(0,lt.n2)(e)||this.dialogService.show(nl.Z.Error,(0,le.NC)("canNotRun","Command '{0}' resulted in an error ({1})",t.label,bw(e)))}}))}))}return a}))}};Dw.PREFIX=">",Dw.WORD_FILTER=(0,es.or)(es.Ji,es.KZ,es.ir),Dw=Lw([kw(1,Mt.TG),kw(2,Bt.d),kw(3,ut.Hy),kw(4,Vt.b),kw(5,Ab.S)],Dw);let Nw=class e extends Ce.JT{constructor(e,t){super(),this.storageService=e,this.configurationService=t,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration((()=>this.updateConfiguration())))}updateConfiguration(){this.configuredCommandsHistoryLength=e.getConfiguredCommandHistoryLength(this.configurationService),e.cache&&e.cache.limit!==this.configuredCommandsHistoryLength&&(e.cache.limit=this.configuredCommandsHistoryLength,e.saveState(this.storageService))}load(){const t=this.storageService.get(e.PREF_KEY_CACHE,0);let i;if(t)try{i=JSON.parse(t)}catch(o){}const n=e.cache=new Yi.z6(this.configuredCommandsHistoryLength,1);if(i){let e;e=i.usesLRU?i.entries:i.entries.sort(((e,t)=>e.value-t.value)),e.forEach((e=>n.set(e.key,e.value)))}e.counter=this.storageService.getNumber(e.PREF_KEY_COUNTER,0,e.counter)}push(t){e.cache&&(e.cache.set(t,e.counter++),e.saveState(this.storageService))}peek(t){var i;return null===(i=e.cache)||void 0===i?void 0:i.peek(t)}static saveState(t){if(!e.cache)return;const i={usesLRU:!0,entries:[]};e.cache.forEach(((e,t)=>i.entries.push({key:t,value:e}))),t.store(e.PREF_KEY_CACHE,JSON.stringify(i),0,0),t.store(e.PREF_KEY_COUNTER,e.counter,0,0)}static getConfiguredCommandHistoryLength(t){var i,n;const o=null===(n=null===(i=t.getValue().workbench)||void 0===i?void 0:i.commandPalette)||void 0===n?void 0:n.history;return"number"==typeof o?o:e.DEFAULT_COMMANDS_HISTORY_LENGTH}};Nw.DEFAULT_COMMANDS_HISTORY_LENGTH=50,Nw.PREF_KEY_CACHE="commandPalette.mru.cache",Nw.PREF_KEY_COUNTER="commandPalette.mru.counter",Nw.counter=1,Nw=Lw([kw(0,Xi.Uy),kw(1,Pt.Ui)],Nw);class Ew extends Dw{constructor(e,t,i,n,o,s){super(e,t,i,n,o,s)}getCodeEditorCommandPicks(){const e=this.activeTextEditorControl;if(!e)return[];const t=[];for(const i of e.getSupportedActions())t.push({commandId:i.id,commandAlias:i.alias,label:(0,wa.x$)(i.label)||i.id});return t}}var Iw=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Tw=function(e,t){return function(i,n){t(i,n,e)}},Mw=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};let Aw=class extends Ew{constructor(e,t,i,n,o,s){super({showAlias:!1},e,i,n,o,s),this.codeEditorService=t}get activeTextEditorControl(){return(0,$i.f6)(this.codeEditorService.getFocusedCodeEditor())}getCommandPicks(){return Mw(this,void 0,void 0,(function*(){return this.getCodeEditorCommandPicks()}))}};Aw=Iw([Tw(0,Mt.TG),Tw(1,ze.$),Tw(2,Bt.d),Tw(3,ut.Hy),Tw(4,Vt.b),Tw(5,Ab.S)],Aw);class Rw extends se.R6{constructor(){super({id:Rw.ID,label:yC.UX.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:ae.u.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(e){e.get(hn.eJ).quickAccess.show(Aw.PREFIX)}}Rw.ID="editor.action.quickCommand",(0,se.Qr)(Rw),zi.B.as(HC.IP.Quickaccess).registerQuickAccessProvider({ctor:Aw,prefix:Aw.PREFIX,helpEntries:[{description:yC.UX.quickCommandHelp,commandId:Rw.ID}]});var Ow=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Pw=function(e,t){return function(i,n){t(i,n,e)}};let Fw=class extends ks{constructor(e,t,i,n,o,s,r){super(!0,e,t,i,n,o,s,r)}};Fw=Ow([Pw(1,ce.i6),Pw(2,ze.$),Pw(3,hi.lT),Pw(4,Mt.TG),Pw(5,Xi.Uy),Pw(6,Pt.Ui)],Fw),(0,se._K)(ks.ID,Fw);var Bw=i(88542);class Vw extends se.R6{constructor(){super({id:"editor.action.toggleHighContrast",label:yC.xi.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(e,t){const i=e.get(OC.Z),n=i.getColorTheme();(0,_o.c3)(n.type)?(i.setTheme(this._originalThemeName||((0,_o._T)(n.type)?Bw.rW:Bw.TG)),this._originalThemeName=null):(i.setTheme((0,_o._T)(n.type)?Bw.kR:Bw.MU),this._originalThemeName=n.themeName)}}(0,se.Qr)(Vw)},88542:(e,t,i)=>{"use strict";i.d(t,{kR:()=>I,MU:()=>T,nI:()=>B,rW:()=>E,TG:()=>N});var n=i(65321),o=i(16268),s=i(41264),r=i(4669),a=i(43155),l=i(45797);class c{constructor(e,t,i,n,o){this._parsedThemeRuleBrand=void 0,this.token=e,this.index=t,this.fontStyle=i,this.foreground=n,this.background=o}}const d=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;class h{constructor(){this._lastColorId=0,this._id2color=[],this._color2id=new Map}getId(e){if(null===e)return 0;const t=e.match(d);if(!t)throw new Error("Illegal value for token color: "+e);e=t[1].toUpperCase();let i=this._color2id.get(e);return i||(i=++this._lastColorId,this._color2id.set(e,i),this._id2color[i]=s.Il.fromHex("#"+e),i)}getColorMap(){return this._id2color.slice(0)}}class u{constructor(e,t){this._colorMap=e,this._root=t,this._cache=new Map}static createFromRawTokenTheme(e,t){return this.createFromParsedTokenTheme(function(e){if(!e||!Array.isArray(e))return[];const t=[];let i=0;for(let n=0,o=e.length;n{const i=function(e,t){return et?1:0}(e.token,t.token);return 0!==i?i:e.index-t.index}));let i=0,n="000000",o="ffffff";for(;e.length>=1&&""===e[0].token;){const t=e.shift();-1!==t.fontStyle&&(i=t.fontStyle),null!==t.foreground&&(n=t.foreground),null!==t.background&&(o=t.background)}const s=new h;for(const d of t)s.getId(d);const r=s.getId(n),a=s.getId(o),l=new p(i,r,a),c=new m(l);for(let d=0,h=e.length;d>>0,this._cache.set(t,i)}return(i|e<<0)>>>0}}const g=/\b(comment|string|regex|regexp)\b/;class p{constructor(e,t,i){this._themeTrieElementRuleBrand=void 0,this._fontStyle=e,this._foreground=t,this._background=i,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new p(this._fontStyle,this._foreground,this._background)}acceptOverwrite(e,t,i){-1!==e&&(this._fontStyle=e),0!==t&&(this._foreground=t),0!==i&&(this._background=i),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}class m{constructor(e){this._themeTrieElementBrand=void 0,this._mainRule=e,this._children=new Map}match(e){if(""===e)return this._mainRule;const t=e.indexOf(".");let i,n;-1===t?(i=e,n=""):(i=e.substring(0,t),n=e.substring(t+1));const o=this._children.get(i);return void 0!==o?o.match(n):this._mainRule}insert(e,t,i,n){if(""===e)return void this._mainRule.acceptOverwrite(t,i,n);const o=e.indexOf(".");let s,r;-1===o?(s=e,r=""):(s=e.substring(0,o),r=e.substring(o+1));let a=this._children.get(s);void 0===a&&(a=new m(this._mainRule.clone()),this._children.set(s,a)),a.insert(r,t,i,n)}}var f=i(8625),_=i(73910);const v={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"098658"},{token:"attribute.value.unit",foreground:"098658"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[_.cvW]:"#FFFFFE",[_.NOs]:"#000000",[_.ES4]:"#E5EBF1",[f.tR]:"#D3D3D3",[f.Ym]:"#939393",[_.Rzx]:"#ADD6FF4D"}},b={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[_.cvW]:"#1E1E1E",[_.NOs]:"#D4D4D4",[_.ES4]:"#3A3D41",[f.tR]:"#404040",[f.Ym]:"#707070",[_.Rzx]:"#ADD6FF26"}},C={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[_.cvW]:"#000000",[_.NOs]:"#FFFFFF",[f.tR]:"#FFFFFF",[f.Ym]:"#FFFFFF"}},w={base:"hc-light",inherit:!1,rules:[{token:"",foreground:"292929",background:"FFFFFF"},{token:"invalid",foreground:"B5200D"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"264F70"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"B5200D"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"264F78"},{token:"attribute.value",foreground:"0451A5"},{token:"string",foreground:"A31515"},{token:"string.sql",foreground:"B5200D"},{token:"keyword",foreground:"0000FF"},{token:"keyword.flow",foreground:"AF00DB"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[_.cvW]:"#FFFFFF",[_.NOs]:"#292929",[f.tR]:"#292929",[f.Ym]:"#292929"}};var y=i(89872),S=i(97781),L=i(5976),k=i(92321),x=i(59554);class D{getIcon(e){const t=(0,x.Ks)();let i=e.defaults;for(;S.kS.isThemeIcon(i);){const e=t.getIcon(i.id);if(!e)return;i=e.defaults}return i}}const N="vs",E="vs-dark",I="hc-black",T="hc-light",M=y.B.as(_.IPX.ColorContribution),A=y.B.as(S.IP.ThemingContribution);class R{constructor(e,t){this.semanticHighlighting=!1,this.themeData=t;const i=t.base;e.length>0?(O(e)?this.id=e:this.id=i+" "+e,this.themeName=e):(this.id=i,this.themeName=i),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const e=new Map;for(const t in this.themeData.colors)e.set(t,s.Il.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){const t=P(this.themeData.base);for(const i in t.colors)e.has(i)||e.set(i,s.Il.fromHex(t.colors[i]))}this.colors=e}return this.colors}getColor(e,t){const i=this.getColors().get(e);return i||(!1!==t?this.getDefault(e):void 0)}getDefault(e){let t=this.defaultColors[e];return t||(t=M.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}defines(e){return Object.prototype.hasOwnProperty.call(this.getColors(),e)}get type(){switch(this.base){case N:return k.eL.LIGHT;case I:return k.eL.HIGH_CONTRAST_DARK;case T:return k.eL.HIGH_CONTRAST_LIGHT;default:return k.eL.DARK}}get tokenTheme(){if(!this._tokenTheme){let e=[],t=[];if(this.themeData.inherit){const i=P(this.themeData.base);e=i.rules,i.encodedTokensColors&&(t=i.encodedTokensColors)}const i=this.themeData.colors["editor.foreground"],n=this.themeData.colors["editor.background"];if(i||n){const t={token:""};i&&(t.foreground=i),n&&(t.background=n),e.push(t)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=u.createFromRawTokenTheme(e,t)}return this._tokenTheme}getTokenStyleMetadata(e,t,i){const n=this.tokenTheme._match([e].concat(t).join(".")).metadata,o=l.N.getForeground(n),s=l.N.getFontStyle(n);return{foreground:o,italic:Boolean(1&s),bold:Boolean(2&s),underline:Boolean(4&s),strikethrough:Boolean(8&s)}}}function O(e){return e===N||e===E||e===I||e===T}function P(e){switch(e){case N:return v;case E:return b;case I:return C;case T:return w}}function F(e){const t=P(e);return new R(e,t)}class B extends L.JT{constructor(){super(),this._onColorThemeChange=this._register(new r.Q5),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new r.Q5),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new D,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(N,F(N)),this._knownThemes.set(E,F(E)),this._knownThemes.set(I,F(I)),this._knownThemes.set(T,F(T));const e=function(e){const t=new r.Q5,i=(0,x.Ks)();return i.onDidChange((()=>t.fire())),null==e||e.onDidProductIconThemeChange((()=>t.fire())),{onDidChange:t.event,getCSS(){const t=e?e.getProductIconTheme():new D,o={},s=e=>{const i=t.getIcon(e);if(!i)return;const s=i.font;return s?(o[s.id]=s.definition,`.codicon-${e.id}:before { content: '${i.fontCharacter}'; font-family: ${(0,n._h)(s.id)}; }`):`.codicon-${e.id}:before { content: '${i.fontCharacter}'; }`},r=[];for(const e of i.getIcons()){const t=s(e);t&&r.push(t)}for(const e in o){const t=o[e],i=t.weight?`font-weight: ${t.weight};`:"",s=t.style?`font-style: ${t.style};`:"",a=t.src.map((e=>`${(0,n.wY)(e.location)} format('${e.format}')`)).join(", ");r.push(`@font-face { src: ${a}; font-family: ${(0,n._h)(e)};${i}${s} font-display: block; }`)}return r.join("\n")}}}(this);this._codiconCSS=e.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS}\n${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(N),this._onOSSchemeChanged(),e.onDidChange((()=>{this._codiconCSS=e.getCSS(),this._updateCSS()})),(0,o.addMatchMediaChangeListener)("(forced-colors: active)",(()=>{this._onOSSchemeChanged()}))}registerEditorContainer(e){return n.OO(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=n.dS(),this._globalStyleElement.className="monaco-colors",this._globalStyleElement.textContent=this._allCSS,this._styleElements.push(this._globalStyleElement)),L.JT.None}_registerShadowDomContainer(e){const t=n.dS(e);return t.className="monaco-colors",t.textContent=this._allCSS,this._styleElements.push(t),{dispose:()=>{for(let e=0;e{t.base===e&&t.notifyBaseUpdated()})),this._theme.themeName===e&&this.setTheme(e)}getColorTheme(){return this._theme}setColorMapOverride(e){this._colorMapOverride=e,this._updateThemeOrColorMap()}setTheme(e){let t;t=this._knownThemes.has(e)?this._knownThemes.get(e):this._knownThemes.get(N),this._updateActualTheme(t)}_updateActualTheme(e){e&&this._theme!==e&&(this._theme=e,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const e=window.matchMedia("(forced-colors: active)").matches;if(e!==(0,k.c3)(this._theme.type)){let t;t=(0,k._T)(this._theme.type)?e?I:E:e?T:N,this._updateActualTheme(this._knownThemes.get(t))}}}setAutoDetectHighContrast(e){this._autoDetectHighContrast=e,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const e=[],t={},i={addRule:i=>{t[i]||(e.push(i),t[i]=!0)}};A.getThemingParticipants().forEach((e=>e(this._theme,i,this._environment)));const n=[];for(const s of M.getColors()){const e=this._theme.getColor(s.id,!0);e&&n.push(`${(0,_.QO2)(s.id)}: ${e.toString()};`)}i.addRule(`.monaco-editor { ${n.join("\n")} }`);const o=this._colorMapOverride||this._theme.tokenTheme.getColorMap();i.addRule(function(e){const t=[];for(let i=1,n=e.length;ie.textContent=this._allCSS))}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}},44156:(e,t,i)=>{"use strict";i.d(t,{Z:()=>n});const n=(0,i(72065).yh)("themeService")},39585:(e,t,i)=>{"use strict";i.d(t,{TG:()=>v});var n,o,s=i(15030),r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,d=(e,t,i,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of l(t))c.call(e,o)||o===i||r(e,o,{get:()=>t[o],enumerable:!(n=a(t,o))||n.enumerable});return e},h={};d(h,n=s,"default"),o&&d(o,n,"default");var u=(e=>(e[e.None=0]="None",e[e.CommonJS=1]="CommonJS",e[e.AMD=2]="AMD",e[e.UMD=3]="UMD",e[e.System=4]="System",e[e.ES2015=5]="ES2015",e[e.ESNext=99]="ESNext",e))(u||{}),g=(e=>(e[e.None=0]="None",e[e.Preserve=1]="Preserve",e[e.React=2]="React",e[e.ReactNative=3]="ReactNative",e[e.ReactJSX=4]="ReactJSX",e[e.ReactJSXDev=5]="ReactJSXDev",e))(g||{}),p=(e=>(e[e.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",e[e.LineFeed=1]="LineFeed",e))(p||{}),m=(e=>(e[e.ES3=0]="ES3",e[e.ES5=1]="ES5",e[e.ES2015=2]="ES2015",e[e.ES2016=3]="ES2016",e[e.ES2017=4]="ES2017",e[e.ES2018=5]="ES2018",e[e.ES2019=6]="ES2019",e[e.ES2020=7]="ES2020",e[e.ESNext=99]="ESNext",e[e.JSON=100]="JSON",e[e.Latest=99]="Latest",e))(m||{}),f=(e=>(e[e.Classic=1]="Classic",e[e.NodeJs=2]="NodeJs",e))(f||{}),_=class{_onDidChange=new h.Emitter;_onDidExtraLibsChange=new h.Emitter;_extraLibs;_removedExtraLibs;_eagerModelSync;_compilerOptions;_diagnosticsOptions;_workerOptions;_onDidExtraLibsChangeTimeout;_inlayHintsOptions;constructor(e,t,i,n){this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(n),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(i=void 0===t?`ts:extralib-${Math.random().toString(36).substring(2,15)}`:t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let n=1;return this._removedExtraLibs[i]&&(n=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(n=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:n},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let e=this._extraLibs[i];e&&e.version===n&&(delete this._extraLibs[i],this._removedExtraLibs[i]=n,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const e=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,i=t.content;let n=1;this._removedExtraLibs[e]&&(n=this._removedExtraLibs[e]+1),this._extraLibs[e]={content:i,version:n}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){-1===this._onDidExtraLibsChangeTimeout&&(this._onDidExtraLibsChangeTimeout=window.setTimeout((()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)}),0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}},v=new _({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{}),b=new _({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{});function C(){return i.e(8401).then(i.bind(i,78401))}h.languages.typescript={ModuleKind:u,JsxEmit:g,NewLineKind:p,ScriptTarget:m,ModuleResolutionKind:f,typescriptVersion:"4.5.5",typescriptDefaults:v,javascriptDefaults:b,getTypeScriptWorker:()=>C().then((e=>e.getTypeScriptWorker())),getJavaScriptWorker:()=>C().then((e=>e.getJavaScriptWorker()))},h.languages.onLanguage("typescript",(()=>C().then((e=>e.setupTypeScript(v))))),h.languages.onLanguage("javascript",(()=>C().then((e=>e.setupJavaScript(b)))))},63580:(e,t,i)=>{"use strict";i.d(t,{NC:()=>s,aj:()=>r});let n="undefined"!=typeof document&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;function o(e,t){let i;return i=0===t.length?e:e.replace(/\{(\d+)\}/g,((e,i)=>{const n=i[0],o=t[n];let s=e;return"string"==typeof o?s=o:"number"!=typeof o&&"boolean"!=typeof o&&null!=o||(s=String(o)),s})),n&&(i="\uff3b"+i.replace(/[aouei]/g,"$&$&")+"\uff3d"),i}function s(e,t,...i){return o(t,i)}function r(e){}},31106:(e,t,i)=>{"use strict";i.d(t,{F:()=>o,U:()=>s});var n=i(38819);const o=(0,i(72065).yh)("accessibilityService"),s=new n.uy("accessibilityModeEnabled",!1)},84144:(e,t,i)=>{"use strict";i.d(t,{BH:()=>v,NZ:()=>b,U8:()=>C,co:()=>_,eH:()=>f,vr:()=>m});var n=i(74741),o=i(73046),s=i(4669),r=i(53725),a=i(5976),l=i(91741),c=i(94565),d=i(38819),h=i(72065),u=i(97781),g=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},p=function(e,t){return function(i,n){t(i,n,e)}};function m(e){return void 0!==e.command}class f{constructor(e){if(f._instances.has(e))throw new TypeError(`MenuId with identifier '${e}' already exists. Use MenuId.for(ident) or a unique identifier`);f._instances.set(e,this),this.id=e}}f._instances=new Map,f.CommandPalette=new f("CommandPalette"),f.DebugBreakpointsContext=new f("DebugBreakpointsContext"),f.DebugCallStackContext=new f("DebugCallStackContext"),f.DebugConsoleContext=new f("DebugConsoleContext"),f.DebugVariablesContext=new f("DebugVariablesContext"),f.DebugWatchContext=new f("DebugWatchContext"),f.DebugToolBar=new f("DebugToolBar"),f.DebugToolBarStop=new f("DebugToolBarStop"),f.EditorContext=new f("EditorContext"),f.SimpleEditorContext=new f("SimpleEditorContext"),f.EditorContextCopy=new f("EditorContextCopy"),f.EditorContextPeek=new f("EditorContextPeek"),f.EditorContextShare=new f("EditorContextShare"),f.EditorTitle=new f("EditorTitle"),f.EditorTitleRun=new f("EditorTitleRun"),f.EditorTitleContext=new f("EditorTitleContext"),f.EmptyEditorGroup=new f("EmptyEditorGroup"),f.EmptyEditorGroupContext=new f("EmptyEditorGroupContext"),f.ExplorerContext=new f("ExplorerContext"),f.ExtensionContext=new f("ExtensionContext"),f.GlobalActivity=new f("GlobalActivity"),f.CommandCenter=new f("CommandCenter"),f.LayoutControlMenuSubmenu=new f("LayoutControlMenuSubmenu"),f.LayoutControlMenu=new f("LayoutControlMenu"),f.MenubarMainMenu=new f("MenubarMainMenu"),f.MenubarAppearanceMenu=new f("MenubarAppearanceMenu"),f.MenubarDebugMenu=new f("MenubarDebugMenu"),f.MenubarEditMenu=new f("MenubarEditMenu"),f.MenubarCopy=new f("MenubarCopy"),f.MenubarFileMenu=new f("MenubarFileMenu"),f.MenubarGoMenu=new f("MenubarGoMenu"),f.MenubarHelpMenu=new f("MenubarHelpMenu"),f.MenubarLayoutMenu=new f("MenubarLayoutMenu"),f.MenubarNewBreakpointMenu=new f("MenubarNewBreakpointMenu"),f.MenubarPanelAlignmentMenu=new f("MenubarPanelAlignmentMenu"),f.MenubarPanelPositionMenu=new f("MenubarPanelPositionMenu"),f.MenubarPreferencesMenu=new f("MenubarPreferencesMenu"),f.MenubarRecentMenu=new f("MenubarRecentMenu"),f.MenubarSelectionMenu=new f("MenubarSelectionMenu"),f.MenubarShare=new f("MenubarShare"),f.MenubarSwitchEditorMenu=new f("MenubarSwitchEditorMenu"),f.MenubarSwitchGroupMenu=new f("MenubarSwitchGroupMenu"),f.MenubarTerminalMenu=new f("MenubarTerminalMenu"),f.MenubarViewMenu=new f("MenubarViewMenu"),f.MenubarHomeMenu=new f("MenubarHomeMenu"),f.OpenEditorsContext=new f("OpenEditorsContext"),f.ProblemsPanelContext=new f("ProblemsPanelContext"),f.SCMChangeContext=new f("SCMChangeContext"),f.SCMResourceContext=new f("SCMResourceContext"),f.SCMResourceFolderContext=new f("SCMResourceFolderContext"),f.SCMResourceGroupContext=new f("SCMResourceGroupContext"),f.SCMSourceControl=new f("SCMSourceControl"),f.SCMTitle=new f("SCMTitle"),f.SearchContext=new f("SearchContext"),f.StatusBarWindowIndicatorMenu=new f("StatusBarWindowIndicatorMenu"),f.StatusBarRemoteIndicatorMenu=new f("StatusBarRemoteIndicatorMenu"),f.TestItem=new f("TestItem"),f.TestItemGutter=new f("TestItemGutter"),f.TestPeekElement=new f("TestPeekElement"),f.TestPeekTitle=new f("TestPeekTitle"),f.TouchBarContext=new f("TouchBarContext"),f.TitleBarContext=new f("TitleBarContext"),f.TitleBarTitleContext=new f("TitleBarTitleContext"),f.TunnelContext=new f("TunnelContext"),f.TunnelPrivacy=new f("TunnelPrivacy"),f.TunnelProtocol=new f("TunnelProtocol"),f.TunnelPortInline=new f("TunnelInline"),f.TunnelTitle=new f("TunnelTitle"),f.TunnelLocalAddressInline=new f("TunnelLocalAddressInline"),f.TunnelOriginInline=new f("TunnelOriginInline"),f.ViewItemContext=new f("ViewItemContext"),f.ViewContainerTitle=new f("ViewContainerTitle"),f.ViewContainerTitleContext=new f("ViewContainerTitleContext"),f.ViewTitle=new f("ViewTitle"),f.ViewTitleContext=new f("ViewTitleContext"),f.CommentThreadTitle=new f("CommentThreadTitle"),f.CommentThreadActions=new f("CommentThreadActions"),f.CommentTitle=new f("CommentTitle"),f.CommentActions=new f("CommentActions"),f.InteractiveToolbar=new f("InteractiveToolbar"),f.InteractiveCellTitle=new f("InteractiveCellTitle"),f.InteractiveCellDelete=new f("InteractiveCellDelete"),f.InteractiveCellExecute=new f("InteractiveCellExecute"),f.InteractiveInputExecute=new f("InteractiveInputExecute"),f.NotebookToolbar=new f("NotebookToolbar"),f.NotebookCellTitle=new f("NotebookCellTitle"),f.NotebookCellDelete=new f("NotebookCellDelete"),f.NotebookCellInsert=new f("NotebookCellInsert"),f.NotebookCellBetween=new f("NotebookCellBetween"),f.NotebookCellListTop=new f("NotebookCellTop"),f.NotebookCellExecute=new f("NotebookCellExecute"),f.NotebookCellExecutePrimary=new f("NotebookCellExecutePrimary"),f.NotebookDiffCellInputTitle=new f("NotebookDiffCellInputTitle"),f.NotebookDiffCellMetadataTitle=new f("NotebookDiffCellMetadataTitle"),f.NotebookDiffCellOutputsTitle=new f("NotebookDiffCellOutputsTitle"),f.NotebookOutputToolbar=new f("NotebookOutputToolbar"),f.NotebookEditorLayoutConfigure=new f("NotebookEditorLayoutConfigure"),f.NotebookKernelSource=new f("NotebookKernelSource"),f.BulkEditTitle=new f("BulkEditTitle"),f.BulkEditContext=new f("BulkEditContext"),f.TimelineItemContext=new f("TimelineItemContext"),f.TimelineTitle=new f("TimelineTitle"),f.TimelineTitleContext=new f("TimelineTitleContext"),f.TimelineFilterSubMenu=new f("TimelineFilterSubMenu"),f.AccountsContext=new f("AccountsContext"),f.PanelTitle=new f("PanelTitle"),f.AuxiliaryBarTitle=new f("AuxiliaryBarTitle"),f.TerminalInstanceContext=new f("TerminalInstanceContext"),f.TerminalEditorInstanceContext=new f("TerminalEditorInstanceContext"),f.TerminalNewDropdownContext=new f("TerminalNewDropdownContext"),f.TerminalTabContext=new f("TerminalTabContext"),f.TerminalTabEmptyAreaContext=new f("TerminalTabEmptyAreaContext"),f.TerminalInlineTabContext=new f("TerminalInlineTabContext"),f.WebviewContext=new f("WebviewContext"),f.InlineCompletionsActions=new f("InlineCompletionsActions"),f.NewFile=new f("NewFile"),f.MergeToolbar=new f("MergeToolbar"),f.MergeInput1Toolbar=new f("MergeToolbar1Toolbar"),f.MergeInput2Toolbar=new f("MergeToolbar2Toolbar");const _=(0,h.yh)("menuService"),v=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new s.Q5,this.onDidChangeMenu=this._onDidChangeMenu.event,this._commandPaletteChangeEvent={has:e=>e===f.CommandPalette}}addCommand(e){return this.addCommands(r.$.single(e))}addCommands(e){for(const t of e)this._commands.set(t.id,t);return this._onDidChangeMenu.fire(this._commandPaletteChangeEvent),(0,a.OF)((()=>{let t=!1;for(const i of e)t=this._commands.delete(i.id)||t;t&&this._onDidChangeMenu.fire(this._commandPaletteChangeEvent)}))}getCommand(e){return this._commands.get(e)}getCommands(){const e=new Map;return this._commands.forEach(((t,i)=>e.set(i,t))),e}appendMenuItem(e,t){return this.appendMenuItems(r.$.single({id:e,item:t}))}appendMenuItems(e){const t=new Set,i=new l.S;for(const{id:n,item:o}of e){let e=this._menuItems.get(n);e||(e=new l.S,this._menuItems.set(n,e)),i.push(e.push(o)),t.add(n)}return this._onDidChangeMenu.fire(t),(0,a.OF)((()=>{if(i.size>0){for(const e of i)e();this._onDidChangeMenu.fire(t),i.clear()}}))}getMenuItems(e){let t;return t=this._menuItems.has(e)?[...this._menuItems.get(e)]:[],e===f.CommandPalette&&this._appendImplicitItems(t),t}_appendImplicitItems(e){const t=new Set;for(const i of e)m(i)&&(t.add(i.command.id),i.alt&&t.add(i.alt.id));this._commands.forEach(((i,n)=>{t.has(n)||e.push({command:i})}))}};class b extends n.wY{constructor(e,t,i,n){super(`submenuitem.${e.submenu.id}`,"string"==typeof e.title?e.title:e.title.value,[],"submenu"),this.item=e,this._menuService=t,this._contextKeyService=i,this._options=n}get actions(){const e=[],t=this._menuService.createMenu(this.item.submenu,this._contextKeyService),i=t.getActions(this._options);t.dispose();for(const[,o]of i)o.length>0&&(e.push(...o),e.push(new n.Z0));return e.length&&e.pop(),e}}let C=class e{constructor(t,i,n,s,r,a){var l,c;if(this.hideActions=s,this._commandService=a,this.id=t.id,this.label=(null==n?void 0:n.renderShortTitle)&&t.shortTitle?"string"==typeof t.shortTitle?t.shortTitle:t.shortTitle.value:"string"==typeof t.title?t.title:t.title.value,this.tooltip=null!==(c="string"==typeof t.tooltip?t.tooltip:null===(l=t.tooltip)||void 0===l?void 0:l.value)&&void 0!==c?c:"",this.enabled=!t.precondition||r.contextMatchesRules(t.precondition),this.checked=void 0,t.toggled){const e=t.toggled.condition?t.toggled:{condition:t.toggled};this.checked=r.contextMatchesRules(e.condition),this.checked&&e.tooltip&&(this.tooltip="string"==typeof e.tooltip?e.tooltip:e.tooltip.value),e.title&&(this.label="string"==typeof e.title?e.title:e.title.value)}this.item=t,this.alt=i?new e(i,void 0,n,s,r,a):void 0,this._options=n,u.kS.isThemeIcon(t.icon)&&(this.class=o.dT.asClassName(t.icon))}dispose(){}run(...e){var t,i;let n=[];return(null===(t=this._options)||void 0===t?void 0:t.arg)&&(n=[...n,this._options.arg]),(null===(i=this._options)||void 0===i?void 0:i.shouldForwardArgs)&&(n=[...n,...e]),this._commandService.executeCommand(this.id,...n)}};C=g([p(4,d.i6),p(5,c.Hy)],C)},84972:(e,t,i)=>{"use strict";i.d(t,{p:()=>n});const n=(0,i(72065).yh)("clipboardService")},94565:(e,t,i)=>{"use strict";i.d(t,{Hy:()=>l,P0:()=>c});var n=i(4669),o=i(53725),s=i(5976),r=i(91741),a=i(98401);const l=(0,i(72065).yh)("commandService"),c=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new n.Q5,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(e,t){if(!e)throw new Error("invalid command");if("string"==typeof e){if(!t)throw new Error("invalid command");return this.registerCommand({id:e,handler:t})}if(e.description){const t=[];for(const n of e.description.args)t.push(n.constraint);const i=e.handler;e.handler=function(e,...n){return(0,a.D8)(n,t),i(e,...n)}}const{id:i}=e;let n=this._commands.get(i);n||(n=new r.S,this._commands.set(i,n));const o=n.unshift(e),l=(0,s.OF)((()=>{o();const e=this._commands.get(i);(null==e?void 0:e.isEmpty())&&this._commands.delete(i)}));return this._onDidRegisterCommand.fire(i),l}registerCommandAlias(e,t){return c.registerCommand(e,((e,...i)=>e.get(l).executeCommand(t,...i)))}getCommand(e){const t=this._commands.get(e);if(t&&!t.isEmpty())return o.$.first(t)}getCommands(){const e=new Map;for(const t of this._commands.keys()){const i=this.getCommand(t);i&&e.set(t,i)}return e}};c.registerCommand("noop",(()=>{}))},33108:(e,t,i)=>{"use strict";i.d(t,{KV:()=>s,Mt:()=>l,Od:()=>o,UI:()=>c,Ui:()=>n,xL:()=>r});const n=(0,i(72065).yh)("configurationService");function o(e,t){const i=Object.create(null);for(const n in e)s(i,n,e[n],t);return i}function s(e,t,i,n){const o=t.split("."),s=o.pop();let r=e;for(let l=0;l{"use strict";i.d(t,{IP:()=>d,eU:()=>y,ny:()=>S});var n=i(9488),o=i(4669),s=i(98401),r=i(63580),a=i(33108),l=i(81294),c=i(89872);const d={Configuration:"base.contributions.configuration"},h={properties:{},patternProperties:{}},u={properties:{},patternProperties:{}},g={properties:{},patternProperties:{}},p={properties:{},patternProperties:{}},m={properties:{},patternProperties:{}},f={properties:{},patternProperties:{}},_="vscode://schemas/settings/resourceLanguage",v=c.B.as(l.I.JSONContribution);const b="\\[([^\\]]+)\\]",C=new RegExp(b,"g"),w="^(\\[([^\\]]+)\\])+$",y=new RegExp(w);function S(e){const t=[];if(y.test(e)){let i=C.exec(e);for(;null==i?void 0:i.length;){const n=i[1].trim();n&&t.push(n),i=C.exec(e)}}return(0,n.EB)(t)}const L=new class{constructor(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new o.Q5,this._onDidUpdateConfiguration=new o.Q5,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:r.NC("defaultLanguageConfigurationOverrides.title","Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!1,errorMessage:"Unknown editor configuration setting",allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},v.registerSchema(_,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,t=!0){this.registerConfigurations([e],t)}registerConfigurations(e,t=!0){const i=this.doRegisterConfigurations(e,t);v.registerSchema(_,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i})}registerDefaultConfigurations(e){var t;const i=[],n=[];for(const{overrides:o,source:l}of e)for(const e in o)if(i.push(e),y.test(e)){const i=this.configurationDefaultsOverrides.get(e),c=null!==(t=null==i?void 0:i.valuesSources)&&void 0!==t?t:new Map;if(l)for(const t of Object.keys(o[e]))c.set(t,l);const d=Object.assign(Object.assign({},(null==i?void 0:i.value)||{}),o[e]);this.configurationDefaultsOverrides.set(e,{source:l,value:d,valuesSources:c});const h=(0,a.UI)(e),u={type:"object",default:d,description:r.NC("defaultLanguageConfiguration.description","Configure settings to be overridden for the {0} language.",h),$ref:_,defaultDefaultValue:d,source:s.HD(l)?void 0:l,defaultValueSource:l};n.push(...S(e)),this.configurationProperties[e]=u,this.defaultLanguageConfigurationOverridesNode.properties[e]=u}else{this.configurationDefaultsOverrides.set(e,{value:o[e],source:l});const t=this.configurationProperties[e];t&&(this.updatePropertyDefaultValue(e,t),this.updateSchema(e,t))}this.registerOverrideIdentifiers(n),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i,defaultsOverrides:!0})}registerOverrideIdentifiers(e){for(const t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,t){const i=[];return e.forEach((e=>{i.push(...this.validateAndRegisterProperties(e,t,e.extensionInfo,e.restrictedProperties)),this.configurationContributors.push(e),this.registerJSONConfiguration(e)})),i}validateAndRegisterProperties(e,t=!0,i,n,o=3){var r;o=s.Jp(e.scope)?o:e.scope;const a=[],l=e.properties;if(l)for(const d in l){const e=l[d];t&&k(d,e)?delete l[d]:(e.source=i,e.defaultDefaultValue=l[d].default,this.updatePropertyDefaultValue(d,e),y.test(d)?e.scope=void 0:(e.scope=s.Jp(e.scope)?o:e.scope,e.restricted=s.Jp(e.restricted)?!!(null==n?void 0:n.includes(d)):e.restricted),!l[d].hasOwnProperty("included")||l[d].included?(this.configurationProperties[d]=l[d],(null===(r=l[d].policy)||void 0===r?void 0:r.name)&&this.policyConfigurations.set(l[d].policy.name,d),!l[d].deprecationMessage&&l[d].markdownDeprecationMessage&&(l[d].deprecationMessage=l[d].markdownDeprecationMessage),a.push(d)):(this.excludedConfigurationProperties[d]=l[d],delete l[d]))}const c=e.allOf;if(c)for(const s of c)a.push(...this.validateAndRegisterProperties(s,t,i,n,o));return a}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(e){const t=e=>{const i=e.properties;if(i)for(const t in i)this.updateSchema(t,i[t]);const n=e.allOf;null==n||n.forEach(t)};t(e)}updateSchema(e,t){switch(h.properties[e]=t,t.scope){case 1:u.properties[e]=t;break;case 2:g.properties[e]=t;break;case 6:p.properties[e]=t;break;case 3:m.properties[e]=t;break;case 4:f.properties[e]=t;break;case 5:f.properties[e]=t,this.resourceLanguageSettingsSchema.properties[e]=t}}updateOverridePropertyPatternKey(){for(const e of this.overrideIdentifiers.values()){const t=`[${e}]`,i={type:"object",description:r.NC("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:r.NC("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:_};this.updatePropertyDefaultValue(t,i),h.properties[t]=i,u.properties[t]=i,g.properties[t]=i,p.properties[t]=i,m.properties[t]=i,f.properties[t]=i}this._onDidSchemaChange.fire()}registerOverridePropertyPatternKey(){const e={type:"object",description:r.NC("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:r.NC("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:_};h.patternProperties[w]=e,u.patternProperties[w]=e,g.patternProperties[w]=e,p.patternProperties[w]=e,m.patternProperties[w]=e,f.patternProperties[w]=e,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){const i=this.configurationDefaultsOverrides.get(e);let n=null==i?void 0:i.value,o=null==i?void 0:i.source;s.o8(n)&&(n=t.defaultDefaultValue,o=void 0),s.o8(n)&&(n=function(e){switch(Array.isArray(e)?e[0]:e){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}(t.type)),t.default=n,t.defaultValueSource=o}};function k(e,t){var i,n,o,s;return e.trim()?y.test(e)?r.NC("config.property.languageDefault","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",e):void 0!==L.getConfigurationProperties()[e]?r.NC("config.property.duplicate","Cannot register '{0}'. This property is already registered.",e):(null===(i=t.policy)||void 0===i?void 0:i.name)&&void 0!==L.getPolicyConfigurations().get(null===(n=t.policy)||void 0===n?void 0:n.name)?r.NC("config.policy.duplicate","Cannot register '{0}'. The associated policy {1} is already registered with {2}.",e,null===(o=t.policy)||void 0===o?void 0:o.name,L.getPolicyConfigurations().get(null===(s=t.policy)||void 0===s?void 0:s.name)):null:r.NC("config.property.empty","Cannot register an empty property")}c.B.add(d.Configuration,L)},38819:(e,t,i)=>{"use strict";i.d(t,{Ao:()=>l,Eq:()=>T,Fb:()=>c,K8:()=>R,i6:()=>I,uy:()=>E});var n=i(1432),o=i(97295),s=i(72065);const r=new Map;r.set("false",!1),r.set("true",!0),r.set("isMac",n.dz),r.set("isLinux",n.IJ),r.set("isWindows",n.ED),r.set("isWeb",n.$L),r.set("isMacNative",n.dz&&!n.$L),r.set("isEdge",n.un),r.set("isFirefox",n.vU),r.set("isChrome",n.i7),r.set("isSafari",n.G6);const a=Object.prototype.hasOwnProperty;class l{static has(e){return g.create(e)}static equals(e,t){return p.create(e,t)}static regex(e,t){return L.create(e,t)}static not(e){return v.create(e)}static and(...e){return D.create(e,null)}static or(...e){return N.create(e,null,!0)}static deserialize(e,t=!1){if(e)return this._deserializeOrExpression(e,t)}static _deserializeOrExpression(e,t){const i=e.split("||");return N.create(i.map((e=>this._deserializeAndExpression(e,t))),null,!0)}static _deserializeAndExpression(e,t){const i=e.split("&&");return D.create(i.map((e=>this._deserializeOne(e,t))),null)}static _deserializeOne(e,t){if((e=e.trim()).indexOf("!=")>=0){const i=e.split("!=");return _.create(i[0].trim(),this._deserializeValue(i[1],t))}if(e.indexOf("==")>=0){const i=e.split("==");return p.create(i[0].trim(),this._deserializeValue(i[1],t))}if(e.indexOf("=~")>=0){const i=e.split("=~");return L.create(i[0].trim(),this._deserializeRegexValue(i[1],t))}if(e.indexOf(" not in ")>=0){const t=e.split(" not in ");return f.create(t[0].trim(),t[1].trim())}if(e.indexOf(" in ")>=0){const t=e.split(" in ");return m.create(t[0].trim(),t[1].trim())}if(/^[^<=>]+>=[^<=>]+$/.test(e)){const t=e.split(">=");return w.create(t[0].trim(),t[1].trim())}if(/^[^<=>]+>[^<=>]+$/.test(e)){const t=e.split(">");return C.create(t[0].trim(),t[1].trim())}if(/^[^<=>]+<=[^<=>]+$/.test(e)){const t=e.split("<=");return S.create(t[0].trim(),t[1].trim())}if(/^[^<=>]+<[^<=>]+$/.test(e)){const t=e.split("<");return y.create(t[0].trim(),t[1].trim())}return/^\!\s*/.test(e)?v.create(e.substr(1).trim()):g.create(e)}static _deserializeValue(e,t){if("true"===(e=e.trim()))return!0;if("false"===e)return!1;const i=/^'([^']*)'$/.exec(e);return i?i[1].trim():e}static _deserializeRegexValue(e,t){if((0,o.m5)(e)){if(t)throw new Error("missing regexp-value for =~-expression");return console.warn("missing regexp-value for =~-expression"),null}const i=e.indexOf("/"),n=e.lastIndexOf("/");if(i===n||i<0){if(t)throw new Error(`bad regexp-value '${e}', missing /-enclosure`);return console.warn(`bad regexp-value '${e}', missing /-enclosure`),null}const s=e.slice(i+1,n),r="i"===e[n+1]?"i":"";try{return new RegExp(s,r)}catch(a){if(t)throw new Error(`bad regexp-value '${e}', parse error: ${a}`);return console.warn(`bad regexp-value '${e}', parse error: ${a}`),null}}}function c(e,t){const i=e?e.substituteConstants():void 0,n=t?t.substituteConstants():void 0;return!i&&!n||!(!i||!n)&&i.equals(n)}function d(e,t){return e.cmp(t)}class h{constructor(){this.type=0}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!1}serialize(){return"false"}keys(){return[]}negate(){return u.INSTANCE}}h.INSTANCE=new h;class u{constructor(){this.type=1}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!0}serialize(){return"true"}keys(){return[]}negate(){return h.INSTANCE}}u.INSTANCE=new u;class g{constructor(e,t){this.key=e,this.negated=t,this.type=2}static create(e,t=null){const i=r.get(e);return"boolean"==typeof i?i?u.INSTANCE:h.INSTANCE:new g(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:M(this.key,e.key)}equals(e){return e.type===this.type&&this.key===e.key}substituteConstants(){const e=r.get(this.key);return"boolean"==typeof e?e?u.INSTANCE:h.INSTANCE:this}evaluate(e){return!!e.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=v.create(this.key,this)),this.negated}}class p{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=4}static create(e,t,i=null){if("boolean"==typeof t)return t?g.create(e,i):v.create(e,i);const n=r.get(e);if("boolean"==typeof n){return t===(n?"true":"false")?u.INSTANCE:h.INSTANCE}return new p(e,t,i)}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){const e=r.get(this.key);if("boolean"==typeof e){const t=e?"true":"false";return this.value===t?u.INSTANCE:h.INSTANCE}return this}evaluate(e){return e.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=_.create(this.key,this.value,this)),this.negated}}class m{constructor(e,t){this.key=e,this.valueKey=t,this.type=10,this.negated=null}static create(e,t){return new m(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.valueKey,e.key,e.valueKey)}equals(e){return e.type===this.type&&(this.key===e.key&&this.valueKey===e.valueKey)}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.valueKey),i=e.getValue(this.key);return Array.isArray(t)?t.includes(i):"string"==typeof i&&"object"==typeof t&&null!==t&&a.call(t,i)}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=f.create(this.key,this.valueKey)),this.negated}}class f{constructor(e,t){this.key=e,this.valueKey=t,this.type=11,this._negated=m.create(e,t)}static create(e,t){return new f(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this._negated.cmp(e._negated)}equals(e){return e.type===this.type&&this._negated.equals(e._negated)}substituteConstants(){return this}evaluate(e){return!this._negated.evaluate(e)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}class _{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=5}static create(e,t,i=null){if("boolean"==typeof t)return t?v.create(e,i):g.create(e,i);const n=r.get(e);if("boolean"==typeof n){return t===(n?"true":"false")?h.INSTANCE:u.INSTANCE}return new _(e,t,i)}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){const e=r.get(this.key);if("boolean"==typeof e){const t=e?"true":"false";return this.value===t?h.INSTANCE:u.INSTANCE}return this}evaluate(e){return e.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=p.create(this.key,this.value,this)),this.negated}}class v{constructor(e,t){this.key=e,this.negated=t,this.type=3}static create(e,t=null){const i=r.get(e);return"boolean"==typeof i?i?h.INSTANCE:u.INSTANCE:new v(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:M(this.key,e.key)}equals(e){return e.type===this.type&&this.key===e.key}substituteConstants(){const e=r.get(this.key);return"boolean"==typeof e?e?h.INSTANCE:u.INSTANCE:this}evaluate(e){return!e.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=g.create(this.key,this)),this.negated}}function b(e,t){if("string"==typeof e){const t=parseFloat(e);isNaN(t)||(e=t)}return"string"==typeof e||"number"==typeof e?t(e):h.INSTANCE}class C{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=12}static create(e,t,i=null){return b(t,(t=>new C(e,t,i)))}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!=typeof this.value&&parseFloat(e.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=S.create(this.key,this.value,this)),this.negated}}class w{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=13}static create(e,t,i=null){return b(t,(t=>new w(e,t,i)))}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!=typeof this.value&&parseFloat(e.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=y.create(this.key,this.value,this)),this.negated}}class y{constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=14}static create(e,t,i=null){return b(t,(t=>new y(e,t,i)))}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!=typeof this.value&&parseFloat(e.getValue(this.key))new S(e,t,i)))}cmp(e){return e.type!==this.type?this.type-e.type:A(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type&&(this.key===e.key&&this.value===e.value)}substituteConstants(){return this}evaluate(e){return"string"!=typeof this.value&&parseFloat(e.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=C.create(this.key,this.value,this)),this.negated}}class L{constructor(e,t){this.key=e,this.regexp=t,this.type=7,this.negated=null}static create(e,t){return new L(e,t)}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.keye.key)return 1;const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return ti?1:0}equals(e){if(e.type===this.type){const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return this.key===e.key&&t===i}return!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.key);return!!this.regexp&&this.regexp.test(t)}serialize(){const e=this.regexp?`/${this.regexp.source}/${this.regexp.ignoreCase?"i":""}`:"/invalid/";return`${this.key} =~ ${e}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=k.create(this)),this.negated}}class k{constructor(e){this._actual=e,this.type=8}static create(e){return new k(e)}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type&&this._actual.equals(e._actual)}substituteConstants(){return this}evaluate(e){return!this._actual.evaluate(e)}serialize(){throw new Error("Method not implemented.")}keys(){return this._actual.keys()}negate(){return this._actual}}function x(e){let t=null;for(let i=0,n=e.length;ie.expr.length)return 1;for(let t=0,i=this.expr.length;t1;){const e=i[i.length-1];if(9!==e.type)break;i.pop();const t=i.pop(),n=0===i.length,o=N.create(e.expr.map((e=>D.create([e,t],null))),null,n);o&&(i.push(o),i.sort(d))}return 1===i.length?i[0]:new D(i,t)}}serialize(){return this.expr.map((e=>e.serialize())).join(" && ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());this.negated=N.create(e,this,!0)}return this.negated}}class N{constructor(e,t){this.expr=e,this.negated=t,this.type=9}static create(e,t,i){return N._normalizeArr(e,t,i)}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.lengthe.expr.length)return 1;for(let t=0,i=this.expr.length;te.serialize())).join(" || ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());for(;e.length>1;){const t=e.shift(),i=e.shift(),n=[];for(const e of O(t))for(const t of O(i))n.push(D.create([e,t],null));const o=0===e.length;e.unshift(N.create(n,null,o))}this.negated=e[0]}return this.negated}}class E extends g{constructor(e,t,i){super(e,null),this._defaultValue=t,"object"==typeof i?E._info.push(Object.assign(Object.assign({},i),{key:e})):!0!==i&&E._info.push({key:e,description:i,type:null!=t?typeof t:void 0})}static all(){return E._info.values()}bindTo(e){return e.createKey(this.key,this._defaultValue)}getValue(e){return e.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(e){return p.create(this.key,e)}}E._info=[];const I=(0,s.yh)("contextKeyService"),T="setContext";function M(e,t){return et?1:0}function A(e,t,i,n){return ei?1:tn?1:0}function R(e,t){if(6===t.type&&9!==e.type&&6!==e.type)for(const n of t.expr)if(e.equals(n))return!0;const i=O(e.negate()).concat(O(t));i.sort(d);for(let n=0;n{"use strict";i.d(t,{cv:()=>r,d0:()=>a});var n=i(1432),o=i(63580),s=i(38819);new s.uy("isMac",n.dz,(0,o.NC)("isMac","Whether the operating system is macOS")),new s.uy("isLinux",n.IJ,(0,o.NC)("isLinux","Whether the operating system is Linux"));const r=new s.uy("isWindows",n.ED,(0,o.NC)("isWindows","Whether the operating system is Windows")),a=(new s.uy("isWeb",n.$L,(0,o.NC)("isWeb","Whether the platform is a web browser")),new s.uy("isMacNative",n.dz&&!n.$L,(0,o.NC)("isMacNative","Whether the operating system is macOS on a non-browser platform")),new s.uy("isIOS",n.gn,(0,o.NC)("isIOS","Whether the operating system is iOS")),new s.uy("isDevelopment",!1,!0),new s.uy("productQualityType","",(0,o.NC)("productQualityType","Quality type of VS Code")),"inputFocus");new s.uy(a,!1,(0,o.NC)("inputFocus","Whether keyboard focus is inside an input box"))},5606:(e,t,i)=>{"use strict";i.d(t,{i:()=>s,u:()=>o});var n=i(72065);const o=(0,n.yh)("contextViewService"),s=(0,n.yh)("contextMenuService")},28820:(e,t,i)=>{"use strict";i.d(t,{S:()=>n});const n=(0,i(72065).yh)("dialogService")},97108:(e,t,i)=>{"use strict";i.d(t,{M:()=>n});class n{constructor(e,t=[],i=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=i}}},65026:(e,t,i)=>{"use strict";i.d(t,{d:()=>r,z:()=>s});var n=i(97108);const o=[];function s(e,t,i){t instanceof n.M||(t=new n.M(t,[],i)),o.push([e,t])}function r(){return o}},72065:(e,t,i)=>{"use strict";var n;i.d(t,{I8:()=>n,TG:()=>o,yh:()=>r}),function(e){e.serviceIds=new Map,e.DI_TARGET="$di$target",e.DI_DEPENDENCIES="$di$dependencies",e.getServiceDependencies=function(t){return t[e.DI_DEPENDENCIES]||[]}}(n||(n={}));const o=r("instantiationService");function s(e,t,i){t[n.DI_TARGET]===t?t[n.DI_DEPENDENCIES].push({id:e,index:i}):(t[n.DI_DEPENDENCIES]=[{id:e,index:i}],t[n.DI_TARGET]=t)}function r(e){if(n.serviceIds.has(e))return n.serviceIds.get(e);const t=function(e,i,n){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");s(t,e,n)};return t.toString=()=>e,n.serviceIds.set(e,t),t}},60972:(e,t,i)=>{"use strict";i.d(t,{y:()=>n});class n{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}get(e){return this._entries.get(e)}}},81294:(e,t,i)=>{"use strict";i.d(t,{I:()=>s});var n=i(4669),o=i(89872);const s={JSONContribution:"base.contributions.json"};const r=new class{constructor(){this._onDidChangeSchema=new n.Q5,this.schemasById={}}registerSchema(e,t){var i;this.schemasById[(i=e,i.length>0&&"#"===i.charAt(i.length-1)?i.substring(0,i.length-1):i)]=t,this._onDidChangeSchema.fire(e)}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}};o.B.add(s.JSONContribution,r)},91847:(e,t,i)=>{"use strict";i.d(t,{d:()=>n});const n=(0,i(72065).yh)("keybindingService")},49989:(e,t,i)=>{"use strict";i.d(t,{W:()=>l});var n=i(8313),o=i(1432),s=i(94565),r=i(89872);class a{constructor(){this._coreKeybindings=[],this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(e){if(1===o.OS){if(e&&e.win)return e.win}else if(2===o.OS){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e}registerKeybindingRule(e){const t=a.bindToCurrentPlatform(e);if(t&&t.primary){const i=(0,n.gm)(t.primary,o.OS);i&&this._registerDefaultKeybinding(i,e.id,e.args,e.weight,0,e.when)}if(t&&Array.isArray(t.secondary))for(let i=0,s=t.secondary.length;i=21&&e<=30||(e>=31&&e<=56||(80===e||81===e||82===e||83===e||84===e||85===e||86===e||110===e||111===e||87===e||88===e||89===e||90===e||91===e||92===e))}_assertNoCtrlAlt(e,t){e.ctrlKey&&e.altKey&&!e.metaKey&&a._mightProduceChar(e.keyCode)&&console.warn("Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ",e," for ",t)}_registerDefaultKeybinding(e,t,i,n,s,r){1===o.OS&&this._assertNoCtrlAlt(e.parts[0],t),this._coreKeybindings.push({keybinding:e.parts,command:t,commandArgs:i,when:r,weight1:n,weight2:s,extensionId:null,isBuiltinExtension:!1}),this._cachedMergedKeybindings=null}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=[].concat(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(c)),this._cachedMergedKeybindings.slice(0)}}const l=new a;function c(e,t){return e.weight1!==t.weight1?e.weight1-t.weight1:e.commandt.command?1:e.weight2-t.weight2}r.B.add("platform.keybindingsRegistry",l)},44349:(e,t,i)=>{"use strict";i.d(t,{e:()=>n});const n=(0,i(72065).yh)("labelService")},74615:(e,t,i)=>{"use strict";i.d(t,{Lw:()=>We,XN:()=>He,ls:()=>Et,ev:()=>vt,CQ:()=>Ke,PS:()=>Ze,uJ:()=>Je});var n=i(65321),o=i(9488),s=i(71050),r=i(4669),a=i(5976),l=i(69047);class c{constructor(e,t){this.renderer=e,this.modelProvider=t}get templateId(){return this.renderer.templateId}renderTemplate(e){return{data:this.renderer.renderTemplate(e),disposable:a.JT.None}}renderElement(e,t,i,n){if(i.disposable&&i.disposable.dispose(),!i.data)return;const o=this.modelProvider();if(o.isResolved(e))return this.renderer.renderElement(o.get(e),e,i.data,n);const r=new s.A,a=o.resolve(e,r.token);i.disposable={dispose:()=>r.cancel()},this.renderer.renderPlaceholder(e,i.data),a.then((t=>this.renderer.renderElement(t,e,i.data,n)))}disposeTemplate(e){e.disposable&&(e.disposable.dispose(),e.disposable=void 0),e.data&&(this.renderer.disposeTemplate(e.data),e.data=void 0)}}class d{constructor(e,t){this.modelProvider=e,this.accessibilityProvider=t}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(e){const t=this.modelProvider();return t.isResolved(e)?this.accessibilityProvider.getAriaLabel(t.get(e)):null}}var h=i(23937);class u{constructor(e,t,i){this.columns=e,this.getColumnSize=i,this.templateId=u.TemplateId,this.renderedTemplates=new Set;const n=new Map(t.map((e=>[e.templateId,e])));this.renderers=[];for(const o of e){const e=n.get(o.templateId);if(!e)throw new Error(`Table cell renderer for template id ${o.templateId} not found.`);this.renderers.push(e)}}renderTemplate(e){const t=(0,n.R3)(e,(0,n.$)(".monaco-table-tr")),i=[],o=[];for(let r=0;rnew g(e,t))),m={size:d.reduce(((e,t)=>e+t.column.weight),0),views:d.map((e=>({size:e.column.weight,view:e})))};this.splitview=this.disposables.add(new h.z(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:m})),this.splitview.el.style.height=`${i.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${i.headerRowHeight}px`;const f=new u(o,s,(e=>this.splitview.getViewSize(e)));var _;this.list=this.disposables.add(new l.aV(e,this.domNode,(_=i,{getHeight:e=>_.getHeight(e),getTemplateId:()=>u.TemplateId}),[f],c)),r.ju.any(...d.map((e=>e.onDidLayout)))((([e,t])=>f.layoutColumn(e,t)),null,this.disposables),this.splitview.onDidSashReset((e=>{const t=o.reduce(((e,t)=>e+t.weight),0),i=o[e].weight/t*this.cachedWidth;this.splitview.resizeView(e,i)}),null,this.disposables),this.styleElement=(0,n.dS)(this.domNode),this.style({})}get onDidChangeFocus(){return this.list.onDidChangeFocus}get onDidChangeSelection(){return this.list.onDidChangeSelection}get onMouseDblClick(){return this.list.onMouseDblClick}get onPointer(){return this.list.onPointer}get onDidFocus(){return this.list.onDidFocus}get onDidDispose(){return this.list.onDidDispose}updateOptions(e){this.list.updateOptions(e)}splice(e,t,i=[]){this.list.splice(e,t,i)}getHTMLElement(){return this.domNode}style(e){const t=[];t.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\ttop: ${this.virtualDelegate.headerRowHeight+1}px;\n\t\t\theight: calc(100% - ${this.virtualDelegate.headerRowHeight}px);\n\t\t}`),this.styleElement.textContent=t.join("\n"),this.list.style(e)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}p.InstanceCount=0;i(4850);var m,f=i(59069),_=(i(90317),i(3070),i(72010));i(82900);!function(e){e[e.Unknown=0]="Unknown",e[e.Twistie=1]="Twistie",e[e.Element=2]="Element",e[e.Filter=3]="Filter"}(m||(m={}));class v extends Error{constructor(e,t){super(`TreeError [${e}] ${t}`)}}class b{constructor(e){this.fn=e,this._map=new WeakMap}map(e){let t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t}}var C=i(15393),w=i(22571),y=i(53725);function S(e){return"object"==typeof e&&"visibility"in e&&"data"in e}function L(e){switch(e){case!0:return 1;case!1:return 0;default:return e}}function k(e){return"boolean"==typeof e.collapsible}class x{constructor(e,t,i,n={}){this.user=e,this.list=t,this.rootRef=[],this.eventBufferer=new r.E7,this._onDidChangeCollapseState=new r.Q5,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new r.Q5,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new r.Q5,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new C.vp(C.ne),this.collapseByDefault=void 0!==n.collapseByDefault&&n.collapseByDefault,this.filter=n.filter,this.autoExpandSingleChildren=void 0!==n.autoExpandSingleChildren&&n.autoExpandSingleChildren,this.root={parent:void 0,element:i,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(e,t,i=y.$.empty(),n={}){if(0===e.length)throw new v(this.user,"Invalid tree location");n.diffIdentityProvider?this.spliceSmart(n.diffIdentityProvider,e,t,i,n):this.spliceSimple(e,t,i,n)}spliceSmart(e,t,i,n,o,s){var r;void 0===n&&(n=y.$.empty()),void 0===s&&(s=null!==(r=o.diffDepth)&&void 0!==r?r:0);const{parentNode:a}=this.getParentNodeWithListIndex(t);if(!a.lastDiffIds)return this.spliceSimple(t,i,n,o);const l=[...n],c=t[t.length-1],d=new w.Hs({getElements:()=>a.lastDiffIds},{getElements:()=>[...a.children.slice(0,c),...l,...a.children.slice(c+i)].map((t=>e.getId(t.element).toString()))}).ComputeDiff(!1);if(d.quitEarly)return a.lastDiffIds=void 0,this.spliceSimple(t,i,l,o);const h=t.slice(0,-1),u=(t,i,n)=>{if(s>0)for(let r=0;rt.originalStart-e.originalStart)))u(g,p,g-(m.originalStart+m.originalLength)),g=m.originalStart,p=m.modifiedStart-c,this.spliceSimple([...h,g],m.originalLength,y.$.slice(l,p,p+m.modifiedLength),o);u(g,p,g)}spliceSimple(e,t,i=y.$.empty(),{onDidCreateNode:n,onDidDeleteNode:s,diffIdentityProvider:r}){const{parentNode:a,listIndex:l,revealed:c,visible:d}=this.getParentNodeWithListIndex(e),h=[],u=y.$.map(i,(e=>this.createTreeNode(e,a,a.visible?1:0,c,h,n))),g=e[e.length-1],p=a.children.length>0;let m=0;for(let o=g;o>=0&&or.getId(e.element).toString()))):a.lastDiffIds=a.children.map((e=>r.getId(e.element).toString())):a.lastDiffIds=void 0;let C=0;for(const o of b)o.visible&&C++;if(0!==C)for(let o=g+f.length;oe+(t.visible?t.renderNodeCount:0)),0);this._updateAncestorsRenderNodeCount(a,v-e),this.list.splice(l,e,h)}if(b.length>0&&s){const e=t=>{s(t),t.children.forEach(e)};b.forEach(e)}this._onDidSplice.fire({insertedNodes:f,deletedNodes:b});const w=a.children.length>0;p!==w&&this.setCollapsible(e.slice(0,-1),w);let S=a;for(;S;){if(2===S.visibility){this.refilterDelayer.trigger((()=>this.refilter()));break}S=S.parent}}rerender(e){if(0===e.length)throw new v(this.user,"Invalid tree location");const{node:t,listIndex:i,revealed:n}=this.getTreeNodeWithListIndex(e);t.visible&&n&&this.list.splice(i,1,[t])}has(e){return this.hasTreeNode(e)}getListIndex(e){const{listIndex:t,visible:i,revealed:n}=this.getTreeNodeWithListIndex(e);return i&&n?t:-1}getListRenderCount(e){return this.getTreeNode(e).renderNodeCount}isCollapsible(e){return this.getTreeNode(e).collapsible}setCollapsible(e,t){const i=this.getTreeNode(e);void 0===t&&(t=!i.collapsible);const n={collapsible:t};return this.eventBufferer.bufferEvents((()=>this._setCollapseState(e,n)))}isCollapsed(e){return this.getTreeNode(e).collapsed}setCollapsed(e,t,i){const n=this.getTreeNode(e);void 0===t&&(t=!n.collapsed);const o={collapsed:t,recursive:i||!1};return this.eventBufferer.bufferEvents((()=>this._setCollapseState(e,o)))}_setCollapseState(e,t){const{node:i,listIndex:n,revealed:o}=this.getTreeNodeWithListIndex(e),s=this._setListNodeCollapseState(i,n,o,t);if(i!==this.root&&this.autoExpandSingleChildren&&s&&!k(t)&&i.collapsible&&!i.collapsed&&!t.recursive){let n=-1;for(let e=0;e-1){n=-1;break}n=e}}n>-1&&this._setCollapseState([...e,n],t)}return s}_setListNodeCollapseState(e,t,i,n){const o=this._setNodeCollapseState(e,n,!1);if(!i||!e.visible||!o)return o;const s=e.renderNodeCount,r=this.updateNodeAfterCollapseChange(e),a=s-(-1===t?0:1);return this.list.splice(t+1,a,r.slice(1)),o}_setNodeCollapseState(e,t,i){let n;if(e===this.root?n=!1:(k(t)?(n=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(n=e.collapsed!==t.collapsed,e.collapsed=t.collapsed):n=!1,n&&this._onDidChangeCollapseState.fire({node:e,deep:i})),!k(t)&&t.recursive)for(const o of e.children)n=this._setNodeCollapseState(o,t,!0)||n;return n}expandTo(e){this.eventBufferer.bufferEvents((()=>{let t=this.getTreeNode(e);for(;t.parent;)t=t.parent,e=e.slice(0,e.length-1),t.collapsed&&this._setCollapseState(e,{collapsed:!1,recursive:!1})}))}refilter(){const e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t),this.refilterDelayer.cancel()}createTreeNode(e,t,i,n,o,s){const r={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:"boolean"==typeof e.collapsible?e.collapsible:void 0!==e.collapsed,collapsed:void 0===e.collapsed?this.collapseByDefault:e.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},a=this._filterNode(r,i);r.visibility=a,n&&o.push(r);const l=e.children||y.$.empty(),c=n&&0!==a&&!r.collapsed,d=y.$.map(l,(e=>this.createTreeNode(e,r,a,c,o,s)));let h=0,u=1;for(const g of d)r.children.push(g),u+=g.renderNodeCount,g.visible&&(g.visibleChildIndex=h++);return r.collapsible=r.collapsible||r.children.length>0,r.visibleChildrenCount=h,r.visible=2===a?h>0:1===a,r.visible?r.collapsed||(r.renderNodeCount=u):(r.renderNodeCount=0,n&&o.pop()),null==s||s(r),r}updateNodeAfterCollapseChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterCollapseChange(e,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterCollapseChange(e,t){if(!1===e.visible)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed)for(const i of e.children)e.renderNodeCount+=this._updateNodeAfterCollapseChange(i,t);return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount}updateNodeAfterFilterChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterFilterChange(e,t,i,n=!0){let o;if(e!==this.root){if(o=this._filterNode(e,t),0===o)return e.visible=!1,e.renderNodeCount=0,!1;n&&i.push(e)}const s=i.length;e.renderNodeCount=e===this.root?0:1;let r=!1;if(e.collapsed&&0===o)e.visibleChildrenCount=0;else{let t=0;for(const s of e.children)r=this._updateNodeAfterFilterChange(s,o,i,n&&!e.collapsed)||r,s.visible&&(s.visibleChildIndex=t++);e.visibleChildrenCount=t}return e!==this.root&&(e.visible=2===o?r:1===o,e.visibility=o),e.visible?e.collapsed||(e.renderNodeCount+=i.length-s):(e.renderNodeCount=0,n&&i.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible}_updateAncestorsRenderNodeCount(e,t){if(0!==t)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent}_filterNode(e,t){const i=this.filter?this.filter.filter(e.element,t):1;return"boolean"==typeof i?(e.filterData=void 0,i?1:0):S(i)?(e.filterData=i.data,L(i.visibility)):(e.filterData=void 0,L(i))}hasTreeNode(e,t=this.root){if(!e||0===e.length)return!0;const[i,...n]=e;return!(i<0||i>t.children.length)&&this.hasTreeNode(n,t.children[i])}getTreeNode(e,t=this.root){if(!e||0===e.length)return t;const[i,...n]=e;if(i<0||i>t.children.length)throw new v(this.user,"Invalid tree location");return this.getTreeNode(n,t.children[i])}getTreeNodeWithListIndex(e){if(0===e.length)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:t,listIndex:i,revealed:n,visible:o}=this.getParentNodeWithListIndex(e),s=e[e.length-1];if(s<0||s>t.children.length)throw new v(this.user,"Invalid tree location");const r=t.children[s];return{node:r,listIndex:i,revealed:n,visible:o&&r.visible}}getParentNodeWithListIndex(e,t=this.root,i=0,n=!0,o=!0){const[s,...r]=e;if(s<0||s>t.children.length)throw new v(this.user,"Invalid tree location");for(let a=0;ae.element))),this.data=e}}function P(e){return e instanceof _.kX?new O(e):e}class F{constructor(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=a.JT.None}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((e=>e.element)),t)}onDragStart(e,t){var i,n;null===(n=(i=this.dnd).onDragStart)||void 0===n||n.call(i,P(e),t)}onDragOver(e,t,i,n,s=!0){const r=this.dnd.onDragOver(P(e),t&&t.element,i,n),a=this.autoExpandNode!==t;if(a&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),void 0===t)return r;if(a&&"boolean"!=typeof r&&r.autoExpand&&(this.autoExpandDisposable=(0,C.Vg)((()=>{const e=this.modelProvider(),i=e.getNodeLocation(t);e.isCollapsed(i)&&e.setCollapsed(i,!1),this.autoExpandNode=void 0}),500)),"boolean"==typeof r||!r.accept||void 0===r.bubble||r.feedback){if(!s){return{accept:"boolean"==typeof r?r:r.accept,effect:"boolean"==typeof r?void 0:r.effect,feedback:[i]}}return r}if(1===r.bubble){const i=this.modelProvider(),o=i.getNodeLocation(t),s=i.getParentNodeLocation(o),r=i.getNode(s),a=s&&i.getListIndex(s);return this.onDragOver(e,r,a,n,!1)}const l=this.modelProvider(),c=l.getNodeLocation(t),d=l.getListIndex(c),h=l.getListRenderCount(c);return Object.assign(Object.assign({},r),{feedback:(0,o.w6)(d,d+h)})}drop(e,t,i,n){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(P(e),t&&t.element,i,n)}onDragEnd(e){var t,i;null===(i=(t=this.dnd).onDragEnd)||void 0===i||i.call(t,e)}}class B{constructor(e){this.delegate=e}getHeight(e){return this.delegate.getHeight(e.element)}getTemplateId(e){return this.delegate.getTemplateId(e.element)}hasDynamicHeight(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)}setDynamicHeight(e,t){var i,n;null===(n=(i=this.delegate).setDynamicHeight)||void 0===n||n.call(i,e.element,t)}}!function(e){e.None="none",e.OnHover="onHover",e.Always="always"}(E||(E={}));class V{constructor(e,t=[]){this._elements=t,this.disposables=new a.SL,this.onDidChange=r.ju.forEach(e,(e=>this._elements=e),this.disposables)}get elements(){return this._elements}dispose(){this.disposables.dispose()}}class W{constructor(e,t,i,n,o={}){var s;this.renderer=e,this.modelProvider=t,this.activeNodes=n,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=W.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.renderedIndentGuides=new N,this.activeIndentNodes=new Set,this.indentGuidesDisposable=a.JT.None,this.disposables=new a.SL,this.templateId=e.templateId,this.updateOptions(o),r.ju.map(i,(e=>e.node))(this.onDidChangeNodeTwistieState,this,this.disposables),null===(s=e.onDidChangeTwistieState)||void 0===s||s.call(e,this.onDidChangeTwistieState,this,this.disposables)}updateOptions(e={}){if(void 0!==e.indent&&(this.indent=(0,M.uZ)(e.indent,0,40)),void 0!==e.renderIndentGuides){const t=e.renderIndentGuides!==E.None;if(t!==this.shouldRenderIndentGuides&&(this.shouldRenderIndentGuides=t,this.indentGuidesDisposable.dispose(),t)){const e=new a.SL;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,e),this.indentGuidesDisposable=e,this._onDidChangeActiveNodes(this.activeNodes.elements)}}void 0!==e.hideTwistiesOfChildlessElements&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}renderTemplate(e){const t=(0,n.R3)(e,(0,n.$)(".monaco-tl-row")),i=(0,n.R3)(t,(0,n.$)(".monaco-tl-indent")),o=(0,n.R3)(t,(0,n.$)(".monaco-tl-twistie")),s=(0,n.R3)(t,(0,n.$)(".monaco-tl-contents")),r=this.renderer.renderTemplate(s);return{container:e,indent:i,twistie:o,indentGuidesDisposable:a.JT.None,templateData:r}}renderElement(e,t,i,n){"number"==typeof n&&(this.renderedNodes.set(e,{templateData:i,height:n}),this.renderedElements.set(e.element,e));const o=W.DefaultIndent+(e.depth-1)*this.indent;i.twistie.style.paddingLeft=`${o}px`,i.indent.style.width=o+this.indent-16+"px",this.renderTwistie(e,i),"number"==typeof n&&this.renderIndentGuides(e,i),this.renderer.renderElement(e,t,i.templateData,n)}disposeElement(e,t,i,n){var o,s;i.indentGuidesDisposable.dispose(),null===(s=(o=this.renderer).disposeElement)||void 0===s||s.call(o,e,t,i.templateData,n),"number"==typeof n&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}onDidChangeTwistieState(e){const t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)}onDidChangeNodeTwistieState(e){const t=this.renderedNodes.get(e);t&&(this.renderTwistie(e,t.templateData),this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderIndentGuides(e,t.templateData))}renderTwistie(e,t){t.twistie.classList.remove(...D.lA.treeItemExpanded.classNamesArray);let i=!1;this.renderer.renderTwistie&&(i=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(i||t.twistie.classList.add(...D.lA.treeItemExpanded.classNamesArray),t.twistie.classList.add("collapsible"),t.twistie.classList.toggle("collapsed",e.collapsed)):t.twistie.classList.remove("collapsible","collapsed"),e.collapsible?t.container.setAttribute("aria-expanded",String(!e.collapsed)):t.container.removeAttribute("aria-expanded")}renderIndentGuides(e,t){if((0,n.PO)(t.indent),t.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const i=new a.SL,o=this.modelProvider();let s=e;for(;;){const e=o.getNodeLocation(s),r=o.getParentNodeLocation(e);if(!r)break;const l=o.getNode(r),c=(0,n.$)(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(l)&&c.classList.add("active"),0===t.indent.childElementCount?t.indent.appendChild(c):t.indent.insertBefore(c,t.indent.firstElementChild),this.renderedIndentGuides.add(l,c),i.add((0,a.OF)((()=>this.renderedIndentGuides.delete(l,c)))),s=l}t.indentGuidesDisposable=i}_onDidChangeActiveNodes(e){if(!this.shouldRenderIndentGuides)return;const t=new Set,i=this.modelProvider();e.forEach((e=>{const n=i.getNodeLocation(e);try{const o=i.getParentNodeLocation(n);e.collapsible&&e.children.length>0&&!e.collapsed?t.add(e):o&&t.add(i.getNode(o))}catch(o){}})),this.activeIndentNodes.forEach((e=>{t.has(e)||this.renderedIndentGuides.forEach(e,(e=>e.classList.remove("active")))})),t.forEach((e=>{this.activeIndentNodes.has(e)||this.renderedIndentGuides.forEach(e,(e=>e.classList.add("active")))})),this.activeIndentNodes=t}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),(0,a.B9)(this.disposables)}}W.DefaultIndent=8;class H{constructor(e,t,i){this.tree=e,this.keyboardNavigationLabelProvider=t,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new a.SL,e.onWillRefilter(this.reset,this,this.disposables)}get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}filter(e,t){let i=1;if(this._filter){const n=this._filter.filter(e,t);if(i="boolean"==typeof n?n?1:0:S(n)?L(n.visibility):n,0===i)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:T.CL.Default,visibility:i};const n=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),o=Array.isArray(n)?n:[n];for(const s of o){const e=s&&s.toString();if(void 0===e)return{data:T.CL.Default,visibility:i};const t=(0,T.EW)(this._pattern,this._lowercasePattern,0,e,e.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(t)return this._matchCount++,1===o.length?{data:t,visibility:i}:{data:{label:e,score:t},visibility:i}}return this.tree.findMode===I.Filter?2:{data:T.CL.Default,visibility:i}}reset(){this._totalCount=0,this._matchCount=0}dispose(){(0,a.B9)(this.disposables)}}!function(e){e[e.Highlight=0]="Highlight",e[e.Filter=1]="Filter"}(I||(I={}));class z{constructor(e,t,i,n,o){var s;this.tree=e,this.view=i,this.filter=n,this.contextViewProvider=o,this._pattern="",this.width=0,this._onDidChangeMode=new r.Q5,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangePattern=new r.Q5,this._onDidChangeOpenState=new r.Q5,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new a.SL,this.disposables=new a.SL,this._mode=null!==(s=e.options.defaultFindMode)&&void 0!==s?s:I.Highlight,t.onDidSplice(this.onDidSpliceModel,this,this.disposables)}get pattern(){return this._pattern}get mode(){return this._mode}set mode(e){e!==this._mode&&(this._mode=e,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(e))}onDidSpliceModel(){this.widget&&0!==this.pattern.length&&(this.tree.refilter(),this.render())}render(){var e,t;const i=this.filter.totalCount>0&&0===this.filter.matchCount;this.pattern&&i?null===(e=this.widget)||void 0===e||e.showMessage({type:2,content:(0,R.NC)("not found","No elements found.")}):null===(t=this.widget)||void 0===t||t.clearMessage()}shouldAllowFocus(e){return!this.widget||!this.pattern||this._mode===I.Filter||(this.filter.totalCount>0&&this.filter.matchCount<=1||!T.CL.isDefault(e.filterData))}style(e){var t;this.styles=e,null===(t=this.widget)||void 0===t||t.style(e)}layout(e){var t;this.width=e,null===(t=this.widget)||void 0===t||t.layout(e)}dispose(){this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}}function j(e){let t=m.Unknown;return(0,n.uU)(e.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?t=m.Twistie:(0,n.uU)(e.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?t=m.Element:(0,n.uU)(e.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(t=m.Filter),{browserEvent:e.browserEvent,element:e.element?e.element.element:null,target:t}}function K(e,t){t(e),e.children.forEach((e=>K(e,t)))}class U{constructor(e,t){this.getFirstViewElementWithTrait=e,this.identityProvider=t,this.nodes=[],this._onDidChange=new r.Q5,this.onDidChange=this._onDidChange.event}get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}set(e,t){!(null==t?void 0:t.__forceEvent)&&(0,o.fS)(this.nodes,e)||this._set(e,!1,t)}_set(e,t,i){if(this.nodes=[...e],this.elements=void 0,this._nodeSet=void 0,!t){const e=this;this._onDidChange.fire({get elements(){return e.get()},browserEvent:i})}}get(){return this.elements||(this.elements=this.nodes.map((e=>e.element))),[...this.elements]}getNodes(){return this.nodes}has(e){return this.nodeSet.has(e)}onDidModelSplice({insertedNodes:e,deletedNodes:t}){if(!this.identityProvider){const e=this.createNodeSet(),i=t=>e.delete(t);return t.forEach((e=>K(e,i))),void this.set([...e.values()])}const i=new Set,n=e=>i.add(this.identityProvider.getId(e.element).toString());t.forEach((e=>K(e,n)));const o=new Map,s=e=>o.set(this.identityProvider.getId(e.element).toString(),e);e.forEach((e=>K(e,s)));const r=[];for(const a of this.nodes){const e=this.identityProvider.getId(a.element).toString();if(i.has(e)){const t=o.get(e);t&&r.push(t)}else r.push(a)}if(this.nodes.length>0&&0===r.length){const e=this.getFirstViewElementWithTrait();e&&r.push(e)}this._set(r,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class $ extends l.sx{constructor(e,t){super(e),this.tree=t}onViewPointer(e){if((0,l.iK)(e.browserEvent.target)||(0,l.cK)(e.browserEvent.target)||(0,l.hD)(e.browserEvent.target))return;const t=e.element;if(!t)return super.onViewPointer(e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return super.onViewPointer(e);const i=e.browserEvent.target,n=i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&e.browserEvent.offsetX<16;let o=!1;if(o="function"==typeof this.tree.expandOnlyOnTwistieClick?this.tree.expandOnlyOnTwistieClick(t.element):!!this.tree.expandOnlyOnTwistieClick,o&&!n&&2!==e.browserEvent.detail)return super.onViewPointer(e);if(!this.tree.expandOnDoubleClick&&2===e.browserEvent.detail)return super.onViewPointer(e);if(t.collapsible){const i=this.tree.model,s=i.getNodeLocation(t),r=e.browserEvent.altKey;if(this.tree.setFocus([s]),i.setCollapsed(s,void 0,r),o&&n)return}super.onViewPointer(e)}onDoubleClick(e){!e.browserEvent.target.classList.contains("monaco-tl-twistie")&&this.tree.expandOnDoubleClick&&super.onDoubleClick(e)}}class q extends l.aV{constructor(e,t,i,n,o,s,r,a){super(e,t,i,n,a),this.focusTrait=o,this.selectionTrait=s,this.anchorTrait=r}createMouseController(e){return new $(this,e.tree)}splice(e,t,i=[]){if(super.splice(e,t,i),0===i.length)return;const n=[],s=[];let r;i.forEach(((t,i)=>{this.focusTrait.has(t)&&n.push(e+i),this.selectionTrait.has(t)&&s.push(e+i),this.anchorTrait.has(t)&&(r=e+i)})),n.length>0&&super.setFocus((0,o.EB)([...super.getFocus(),...n])),s.length>0&&super.setSelection((0,o.EB)([...super.getSelection(),...s])),"number"==typeof r&&super.setAnchor(r)}setFocus(e,t,i=!1){super.setFocus(e,t),i||this.focusTrait.set(e.map((e=>this.element(e))),t)}setSelection(e,t,i=!1){super.setSelection(e,t),i||this.selectionTrait.set(e.map((e=>this.element(e))),t)}setAnchor(e,t=!1){super.setAnchor(e),t||(void 0===e?this.anchorTrait.set([]):this.anchorTrait.set([this.element(e)]))}}class G{constructor(e,t,i,o,s={}){var c;this._user=e,this._options=s,this.eventBufferer=new r.E7,this.onDidChangeFindOpenState=r.ju.None,this.disposables=new a.SL,this._onWillRefilter=new r.Q5,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new r.Q5;const d=new B(i),h=new r.ZD,u=new r.ZD,g=this.disposables.add(new V(u.event));this.renderers=o.map((e=>new W(e,(()=>this.model),h.event,g,s)));for(const n of this.renderers)this.disposables.add(n);let p;var m,_;s.keyboardNavigationLabelProvider&&(p=new H(this,s.keyboardNavigationLabelProvider,s.filter),s=Object.assign(Object.assign({},s),{filter:p}),this.disposables.add(p)),this.focus=new U((()=>this.view.getFocusedElements()[0]),s.identityProvider),this.selection=new U((()=>this.view.getSelectedElements()[0]),s.identityProvider),this.anchor=new U((()=>this.view.getAnchorElement()),s.identityProvider),this.view=new q(e,t,d,this.renderers,this.focus,this.selection,this.anchor,Object.assign(Object.assign({},(m=()=>this.model,(_=s)&&Object.assign(Object.assign({},_),{identityProvider:_.identityProvider&&{getId:e=>_.identityProvider.getId(e.element)},dnd:_.dnd&&new F(m,_.dnd),multipleSelectionController:_.multipleSelectionController&&{isSelectionSingleChangeEvent:e=>_.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},e),{element:e.element})),isSelectionRangeChangeEvent:e=>_.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},e),{element:e.element}))},accessibilityProvider:_.accessibilityProvider&&Object.assign(Object.assign({},_.accessibilityProvider),{getSetSize(e){const t=m(),i=t.getNodeLocation(e),n=t.getParentNodeLocation(i);return t.getNode(n).visibleChildrenCount},getPosInSet:e=>e.visibleChildIndex+1,isChecked:_.accessibilityProvider&&_.accessibilityProvider.isChecked?e=>_.accessibilityProvider.isChecked(e.element):void 0,getRole:_.accessibilityProvider&&_.accessibilityProvider.getRole?e=>_.accessibilityProvider.getRole(e.element):()=>"treeitem",getAriaLabel:e=>_.accessibilityProvider.getAriaLabel(e.element),getWidgetAriaLabel:()=>_.accessibilityProvider.getWidgetAriaLabel(),getWidgetRole:_.accessibilityProvider&&_.accessibilityProvider.getWidgetRole?()=>_.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:_.accessibilityProvider&&_.accessibilityProvider.getAriaLevel?e=>_.accessibilityProvider.getAriaLevel(e.element):e=>e.depth,getActiveDescendantId:_.accessibilityProvider.getActiveDescendantId&&(e=>_.accessibilityProvider.getActiveDescendantId(e.element))}),keyboardNavigationLabelProvider:_.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},_.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:e=>_.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)})}))),{tree:this})),this.model=this.createModel(e,this.view,s),h.input=this.model.onDidChangeCollapseState;const v=r.ju.forEach(this.model.onDidSplice,(e=>{this.eventBufferer.bufferEvents((()=>{this.focus.onDidModelSplice(e),this.selection.onDidModelSplice(e)}))}),this.disposables);if(v((()=>null),null,this.disposables),u.input=r.ju.chain(r.ju.any(v,this.focus.onDidChange,this.selection.onDidChange)).debounce((()=>null),0).map((()=>{const e=new Set;for(const t of this.focus.getNodes())e.add(t);for(const t of this.selection.getNodes())e.add(t);return[...e.values()]})).event,!1!==s.keyboardSupport){const e=r.ju.chain(this.view.onKeyDown).filter((e=>!(0,l.cK)(e.target))).map((e=>new f.y(e)));e.filter((e=>15===e.keyCode)).on(this.onLeftArrow,this,this.disposables),e.filter((e=>17===e.keyCode)).on(this.onRightArrow,this,this.disposables),e.filter((e=>10===e.keyCode)).on(this.onSpace,this,this.disposables)}(null===(c=s.findWidgetEnabled)||void 0===c||c)&&s.keyboardNavigationLabelProvider&&s.contextViewProvider?(this.findController=new z(this,this.model,this.view,p,s.contextViewProvider),this.focusNavigationFilter=e=>this.findController.shouldAllowFocus(e),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode):this.onDidChangeFindMode=r.ju.None,this.styleElement=(0,n.dS)(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===E.Always)}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return r.ju.filter(r.ju.map(this.view.onMouseDblClick,j),(e=>e.target!==m.Filter))}get onPointer(){return r.ju.map(this.view.onPointer,j)}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return r.ju.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){var e,t;return null!==(t=null===(e=this.findController)||void 0===e?void 0:e.mode)&&void 0!==t?t:I.Highlight}set findMode(e){this.findController&&(this.findController.mode=e)}get expandOnDoubleClick(){return void 0===this._options.expandOnDoubleClick||this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return void 0===this._options.expandOnlyOnTwistieClick||this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}updateOptions(e={}){this._options=Object.assign(Object.assign({},this._options),e);for(const t of this.renderers)t.updateOptions(e);this.view.updateOptions(this._options),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===E.Always)}get options(){return this._options}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(e){this.view.scrollTop=e}domFocus(){this.view.domFocus()}layout(e,t){var i;this.view.layout(e,t),(0,A.hj)(t)&&(null===(i=this.findController)||void 0===i||i.layout(t))}style(e){var t;const i=`.${this.view.domId}`,n=[];e.treeIndentGuidesStroke&&(n.push(`.monaco-list${i}:hover .monaco-tl-indent > .indent-guide, .monaco-list${i}.always .monaco-tl-indent > .indent-guide { border-color: ${e.treeIndentGuidesStroke.transparent(.4)}; }`),n.push(`.monaco-list${i} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`)),this.styleElement.textContent=n.join("\n"),null===(t=this.findController)||void 0===t||t.style(e),this.view.style(e)}getParentElement(e){const t=this.model.getParentNodeLocation(e);return this.model.getNode(t).element}getFirstElementChild(e){return this.model.getFirstElementChild(e)}getNode(e){return this.model.getNode(e)}collapse(e,t=!1){return this.model.setCollapsed(e,!0,t)}expand(e,t=!1){return this.model.setCollapsed(e,!1,t)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(e,t){const i=e.map((e=>this.model.getNode(e)));this.selection.set(i,t);const n=e.map((e=>this.model.getListIndex(e))).filter((e=>e>-1));this.view.setSelection(n,t,!0)}getSelection(){return this.selection.get()}setFocus(e,t){const i=e.map((e=>this.model.getNode(e)));this.focus.set(i,t);const n=e.map((e=>this.model.getListIndex(e))).filter((e=>e>-1));this.view.setFocus(n,t,!0)}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const i=this.model.getListIndex(e);-1!==i&&this.view.reveal(i,t)}onLeftArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!0)){const e=this.model.getParentNodeLocation(n);if(!e)return;const t=this.model.getListIndex(e);this.view.reveal(t),this.view.setFocus([t])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i);if(!this.model.setCollapsed(n,!1)){if(!i.children.some((e=>e.visible)))return;const[e]=this.view.getFocus(),t=e+1;this.view.reveal(t),this.view.setFocus([t])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(0===t.length)return;const i=t[0],n=this.model.getNodeLocation(i),o=e.browserEvent.altKey;this.model.setCollapsed(n,void 0,o)}dispose(){(0,a.B9)(this.disposables),this.view.dispose()}}class Q{constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new x(e,t,null,i),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,i.sorter&&(this.sorter={compare:(e,t)=>i.sorter.compare(e.element,t.element)}),this.identityProvider=i.identityProvider}setChildren(e,t=y.$.empty(),i={}){const n=this.getElementLocation(e);this._setChildren(n,this.preserveCollapseState(t),i)}_setChildren(e,t=y.$.empty(),i){const n=new Set,o=new Set;this.model.splice([...e,0],Number.MAX_VALUE,t,Object.assign(Object.assign({},i),{onDidCreateNode:e=>{var t;if(null===e.element)return;const s=e;if(n.add(s.element),this.nodes.set(s.element,s),this.identityProvider){const e=this.identityProvider.getId(s.element).toString();o.add(e),this.nodesByIdentity.set(e,s)}null===(t=i.onDidCreateNode)||void 0===t||t.call(i,s)},onDidDeleteNode:e=>{var t;if(null===e.element)return;const s=e;if(n.has(s.element)||this.nodes.delete(s.element),this.identityProvider){const e=this.identityProvider.getId(s.element).toString();o.has(e)||this.nodesByIdentity.delete(e)}null===(t=i.onDidDeleteNode)||void 0===t||t.call(i,s)}}))}preserveCollapseState(e=y.$.empty()){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),y.$.map(e,(e=>{let t=this.nodes.get(e.element);if(!t&&this.identityProvider){const i=this.identityProvider.getId(e.element).toString();t=this.nodesByIdentity.get(i)}if(!t)return Object.assign(Object.assign({},e),{children:this.preserveCollapseState(e.children)});const i="boolean"==typeof e.collapsible?e.collapsible:t.collapsible,n=void 0!==e.collapsed?e.collapsed:t.collapsed;return Object.assign(Object.assign({},e),{collapsible:i,collapsed:n,children:this.preserveCollapseState(e.children)})}))}rerender(e){const t=this.getElementLocation(e);this.model.rerender(t)}getFirstElementChild(e=null){const t=this.getElementLocation(e);return this.model.getFirstElementChild(t)}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getElementLocation(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getElementLocation(e);return this.model.getListRenderCount(t)}isCollapsible(e){const t=this.getElementLocation(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getElementLocation(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getElementLocation(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const n=this.getElementLocation(e);return this.model.setCollapsed(n,t,i)}expandTo(e){const t=this.getElementLocation(e);this.model.expandTo(t)}refilter(){this.model.refilter()}getNode(e=null){if(null===e)return this.model.getNode(this.model.rootRef);const t=this.nodes.get(e);if(!t)throw new v(this.user,`Tree element not found: ${e}`);return t}getNodeLocation(e){return e.element}getParentNodeLocation(e){if(null===e)throw new v(this.user,"Invalid getParentNodeLocation call");const t=this.nodes.get(e);if(!t)throw new v(this.user,`Tree element not found: ${e}`);const i=this.model.getNodeLocation(t),n=this.model.getParentNodeLocation(i);return this.model.getNode(n).element}getElementLocation(e){if(null===e)return[];const t=this.nodes.get(e);if(!t)throw new v(this.user,`Tree element not found: ${e}`);return this.model.getNodeLocation(t)}}function Z(e){return{element:{elements:[e.element],incompressible:e.incompressible||!1},children:y.$.map(y.$.from(e.children),Z),collapsible:e.collapsible,collapsed:e.collapsed}}function Y(e){const t=[e.element],i=e.incompressible||!1;let n,o;for(;[o,n]=y.$.consume(y.$.from(e.children),2),1===o.length&&!o[0].incompressible;)e=o[0],t.push(e.element);return{element:{elements:t,incompressible:i},children:y.$.map(y.$.concat(o,n),Y),collapsible:e.collapsible,collapsed:e.collapsed}}function J(e,t=0){let i;return i=tJ(e,0))),0===t&&e.element.incompressible?{element:e.element.elements[t],children:i,incompressible:!0,collapsible:e.collapsible,collapsed:e.collapsed}:{element:e.element.elements[t],children:i,collapsible:e.collapsible,collapsed:e.collapsed}}function X(e){return J(e,0)}function ee(e,t,i){return e.element===t?Object.assign(Object.assign({},e),{children:i}):Object.assign(Object.assign({},e),{children:y.$.map(y.$.from(e.children),(e=>ee(e,t,i)))})}class te{constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.model=new Q(e,t,i),this.enabled=void 0===i.compressionEnabled||i.compressionEnabled,this.identityProvider=i.identityProvider}get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}setChildren(e,t=y.$.empty(),i){const n=i.diffIdentityProvider&&(o=i.diffIdentityProvider,{getId:e=>e.elements.map((e=>o.getId(e).toString())).join("\0")});var o;if(null===e){const e=y.$.map(t,this.enabled?Y:Z);return void this._setChildren(null,e,{diffIdentityProvider:n,diffDepth:1/0})}const s=this.nodes.get(e);if(!s)throw new Error("Unknown compressed tree node");const r=this.model.getNode(s),a=this.model.getParentNodeLocation(s),l=this.model.getNode(a),c=ee(X(r),e,t),d=(this.enabled?Y:Z)(c),h=l.children.map((e=>e===r?d:e));this._setChildren(l.element,h,{diffIdentityProvider:n,diffDepth:r.depth-l.depth})}setCompressionEnabled(e){if(e===this.enabled)return;this.enabled=e;const t=this.model.getNode().children,i=y.$.map(t,X),n=y.$.map(i,e?Y:Z);this._setChildren(null,n,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(e,t,i){const n=new Set;this.model.setChildren(e,t,Object.assign(Object.assign({},i),{onDidCreateNode:e=>{for(const t of e.element.elements)n.add(t),this.nodes.set(t,e.element)},onDidDeleteNode:e=>{for(const t of e.element.elements)n.has(t)||this.nodes.delete(t)}}))}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getCompressedNode(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getCompressedNode(e);return this.model.getListRenderCount(t)}getNode(e){if(void 0===e)return this.model.getNode();const t=this.getCompressedNode(e);return this.model.getNode(t)}getNodeLocation(e){const t=this.model.getNodeLocation(e);return null===t?null:t.elements[t.elements.length-1]}getParentNodeLocation(e){const t=this.getCompressedNode(e),i=this.model.getParentNodeLocation(t);return null===i?null:i.elements[i.elements.length-1]}getFirstElementChild(e){const t=this.getCompressedNode(e);return this.model.getFirstElementChild(t)}isCollapsible(e){const t=this.getCompressedNode(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getCompressedNode(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getCompressedNode(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const n=this.getCompressedNode(e);return this.model.setCollapsed(n,t,i)}expandTo(e){const t=this.getCompressedNode(e);this.model.expandTo(t)}rerender(e){const t=this.getCompressedNode(e);this.model.rerender(t)}refilter(){this.model.refilter()}getCompressedNode(e){if(null===e)return null;const t=this.nodes.get(e);if(!t)throw new v(this.user,`Tree element not found: ${e}`);return t}}const ie=e=>e[e.length-1];class ne{constructor(e,t){this.unwrapper=e,this.node=t}get element(){return null===this.node.element?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map((e=>new ne(this.unwrapper,e)))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class oe{constructor(e,t,i={}){this.rootRef=null,this.elementMapper=i.elementMapper||ie;const n=e=>this.elementMapper(e.elements);this.nodeMapper=new b((e=>new ne(n,e))),this.model=new te(e,function(e,t){return{splice(i,n,o){t.splice(i,n,o.map((t=>e.map(t))))},updateElementHeight(e,i){t.updateElementHeight(e,i)}}}(this.nodeMapper,t),function(e,t){return Object.assign(Object.assign({},t),{identityProvider:t.identityProvider&&{getId:i=>t.identityProvider.getId(e(i))},sorter:t.sorter&&{compare:(e,i)=>t.sorter.compare(e.elements[0],i.elements[0])},filter:t.filter&&{filter:(i,n)=>t.filter.filter(e(i),n)}})}(n,i))}get onDidSplice(){return r.ju.map(this.model.onDidSplice,(({insertedNodes:e,deletedNodes:t})=>({insertedNodes:e.map((e=>this.nodeMapper.map(e))),deletedNodes:t.map((e=>this.nodeMapper.map(e)))})))}get onDidChangeCollapseState(){return r.ju.map(this.model.onDidChangeCollapseState,(({node:e,deep:t})=>({node:this.nodeMapper.map(e),deep:t})))}get onDidChangeRenderNodeCount(){return r.ju.map(this.model.onDidChangeRenderNodeCount,(e=>this.nodeMapper.map(e)))}setChildren(e,t=y.$.empty(),i={}){this.model.setChildren(e,t,i)}setCompressionEnabled(e){this.model.setCompressionEnabled(e)}has(e){return this.model.has(e)}getListIndex(e){return this.model.getListIndex(e)}getListRenderCount(e){return this.model.getListRenderCount(e)}getNode(e){return this.nodeMapper.map(this.model.getNode(e))}getNodeLocation(e){return e.element}getParentNodeLocation(e){return this.model.getParentNodeLocation(e)}getFirstElementChild(e){const t=this.model.getFirstElementChild(e);return null==t?t:this.elementMapper(t.elements)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}setCollapsed(e,t,i){return this.model.setCollapsed(e,t,i)}expandTo(e){return this.model.expandTo(e)}rerender(e){return this.model.rerender(e)}refilter(){return this.model.refilter()}getCompressedTreeNode(e=null){return this.model.getNode(e)}}var se=i(49898),re=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r};class ae extends G{constructor(e,t,i,n,o={}){super(e,t,i,n,o),this.user=e}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}setChildren(e,t=y.$.empty(),i){this.model.setChildren(e,t,i)}rerender(e){void 0!==e?this.model.rerender(e):this.view.rerender()}hasElement(e){return this.model.has(e)}createModel(e,t,i){return new Q(e,t,i)}}class le{constructor(e,t){this._compressedTreeNodeProvider=e,this.renderer=t,this.templateId=t.templateId,t.onDidChangeTwistieState&&(this.onDidChangeTwistieState=t.onDidChangeTwistieState)}get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}renderTemplate(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){const o=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element);1===o.element.elements.length?(i.compressedTreeNode=void 0,this.renderer.renderElement(e,t,i.data,n)):(i.compressedTreeNode=o,this.renderer.renderCompressedElements(o,t,i.data,n))}disposeElement(e,t,i,n){var o,s,r,a;i.compressedTreeNode?null===(s=(o=this.renderer).disposeCompressedElements)||void 0===s||s.call(o,i.compressedTreeNode,t,i.data,n):null===(a=(r=this.renderer).disposeElement)||void 0===a||a.call(r,e,t,i.data,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){return!!this.renderer.renderTwistie&&this.renderer.renderTwistie(e,t)}}re([se.H],le.prototype,"compressedTreeNodeProvider",null);class ce extends ae{constructor(e,t,i,n,o={}){const s=()=>this;super(e,t,i,n.map((e=>new le(s,e))),function(e,t){return t&&Object.assign(Object.assign({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel(i){let n;try{n=e().getCompressedTreeNode(i)}catch(o){return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(i)}return 1===n.element.elements.length?t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(i):t.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(n.element.elements)}}})}(s,o))}setChildren(e,t=y.$.empty(),i){this.model.setChildren(e,t,i)}createModel(e,t,i){return new oe(e,t,i)}updateOptions(e={}){super.updateOptions(e),void 0!==e.compressionEnabled&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(e=null){return this.model.getCompressedTreeNode(e)}}var de=i(17301),he=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};function ue(e){return Object.assign(Object.assign({},e),{children:[],refreshPromise:void 0,stale:!0,slow:!1,collapsedByDefault:void 0})}function ge(e,t){return!!t.parent&&(t.parent===e||ge(e,t.parent))}class pe{constructor(e){this.node=e}get element(){return this.node.element.element}get children(){return this.node.children.map((e=>new pe(e)))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class me{constructor(e,t,i){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderTwistie(e,t){return e.slow?(t.classList.add(...D.lA.treeItemLoading.classNamesArray),!0):(t.classList.remove(...D.lA.treeItemLoading.classNamesArray),!1)}disposeElement(e,t,i,n){var o,s;null===(s=(o=this.renderer).disposeElement)||void 0===s||s.call(o,this.nodeMapper.map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear()}}function fe(e){return{browserEvent:e.browserEvent,elements:e.elements.map((e=>e.element))}}function _e(e){return{browserEvent:e.browserEvent,element:e.element&&e.element.element,target:e.target}}class ve extends _.kX{constructor(e){super(e.elements.map((e=>e.element))),this.data=e}}function be(e){return e instanceof _.kX?new ve(e):e}class Ce{constructor(e){this.dnd=e}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map((e=>e.element)),t)}onDragStart(e,t){var i,n;null===(n=(i=this.dnd).onDragStart)||void 0===n||n.call(i,be(e),t)}onDragOver(e,t,i,n,o=!0){return this.dnd.onDragOver(be(e),t&&t.element,i,n)}drop(e,t,i,n){this.dnd.drop(be(e),t&&t.element,i,n)}onDragEnd(e){var t,i;null===(i=(t=this.dnd).onDragEnd)||void 0===i||i.call(t,e)}}function we(e){return e&&Object.assign(Object.assign({},e),{collapseByDefault:!0,identityProvider:e.identityProvider&&{getId:t=>e.identityProvider.getId(t.element)},dnd:e.dnd&&new Ce(e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent:t=>e.multipleSelectionController.isSelectionSingleChangeEvent(Object.assign(Object.assign({},t),{element:t.element})),isSelectionRangeChangeEvent:t=>e.multipleSelectionController.isSelectionRangeChangeEvent(Object.assign(Object.assign({},t),{element:t.element}))},accessibilityProvider:e.accessibilityProvider&&Object.assign(Object.assign({},e.accessibilityProvider),{getPosInSet:void 0,getSetSize:void 0,getRole:e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>"treeitem",isChecked:e.accessibilityProvider.isChecked?t=>{var i;return!!(null===(i=e.accessibilityProvider)||void 0===i?void 0:i.isChecked(t.element))}:void 0,getAriaLabel:t=>e.accessibilityProvider.getAriaLabel(t.element),getWidgetAriaLabel:()=>e.accessibilityProvider.getWidgetAriaLabel(),getWidgetRole:e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e.accessibilityProvider.getAriaLevel&&(t=>e.accessibilityProvider.getAriaLevel(t.element)),getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))}),filter:e.filter&&{filter:(t,i)=>e.filter.filter(t.element,i)},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},e.keyboardNavigationLabelProvider),{getKeyboardNavigationLabel:t=>e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}),sorter:void 0,expandOnlyOnTwistieClick:void 0===e.expandOnlyOnTwistieClick?void 0:"function"!=typeof e.expandOnlyOnTwistieClick?e.expandOnlyOnTwistieClick:t=>e.expandOnlyOnTwistieClick(t.element),additionalScrollHeight:e.additionalScrollHeight})}function ye(e,t){t(e),e.children.forEach((e=>ye(e,t)))}class Se{constructor(e,t,i,n,o,s={}){this.user=e,this.dataSource=o,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new r.Q5,this._onDidChangeNodeSlowState=new r.Q5,this.nodeMapper=new b((e=>new pe(e))),this.disposables=new a.SL,this.identityProvider=s.identityProvider,this.autoExpandSingleChildren=void 0!==s.autoExpandSingleChildren&&s.autoExpandSingleChildren,this.sorter=s.sorter,this.collapseByDefault=s.collapseByDefault,this.tree=this.createTree(e,t,i,n,s),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.root=ue({element:void 0,parent:null,hasChildren:!0}),this.identityProvider&&(this.root=Object.assign(Object.assign({},this.root),{id:null})),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}get onDidChangeFocus(){return r.ju.map(this.tree.onDidChangeFocus,fe)}get onDidChangeSelection(){return r.ju.map(this.tree.onDidChangeSelection,fe)}get onMouseDblClick(){return r.ju.map(this.tree.onMouseDblClick,_e)}get onPointer(){return r.ju.map(this.tree.onPointer,_e)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidDispose(){return this.tree.onDidDispose}createTree(e,t,i,n,o){const s=new B(i),r=n.map((e=>new me(e,this.nodeMapper,this._onDidChangeNodeSlowState.event))),a=we(o)||{};return new ae(e,t,s,r,a)}updateOptions(e={}){this.tree.updateOptions(e)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(e){this.tree.scrollTop=e}domFocus(){this.tree.domFocus()}layout(e,t){this.tree.layout(e,t)}style(e){this.tree.style(e)}getInput(){return this.root.element}setInput(e,t){return he(this,void 0,void 0,(function*(){this.refreshPromises.forEach((e=>e.cancel())),this.refreshPromises.clear(),this.root.element=e;const i=t&&{viewState:t,focus:[],selection:[]};yield this._updateChildren(e,!0,!1,i),i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&"number"==typeof t.scrollTop&&(this.scrollTop=t.scrollTop)}))}_updateChildren(e=this.root.element,t=!0,i=!1,n,o){return he(this,void 0,void 0,(function*(){if(void 0===this.root.element)throw new v(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield r.ju.toPromise(this._onDidRender.event));const s=this.getDataNode(e);if(yield this.refreshAndRenderNode(s,t,n,o),i)try{this.tree.rerender(s)}catch(a){}}))}rerender(e){if(void 0===e||e===this.root.element)return void this.tree.rerender();const t=this.getDataNode(e);this.tree.rerender(t)}getNode(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getNode(t===this.root?null:t);return this.nodeMapper.map(i)}collapse(e,t=!1){const i=this.getDataNode(e);return this.tree.collapse(i===this.root?null:i,t)}expand(e,t=!1){return he(this,void 0,void 0,(function*(){if(void 0===this.root.element)throw new v(this.user,"Tree input not set");this.root.refreshPromise&&(yield this.root.refreshPromise,yield r.ju.toPromise(this._onDidRender.event));const i=this.getDataNode(e);if(this.tree.hasElement(i)&&!this.tree.isCollapsible(i))return!1;if(i.refreshPromise&&(yield this.root.refreshPromise,yield r.ju.toPromise(this._onDidRender.event)),i!==this.root&&!i.refreshPromise&&!this.tree.isCollapsed(i))return!1;const n=this.tree.expand(i===this.root?null:i,t);return i.refreshPromise&&(yield this.root.refreshPromise,yield r.ju.toPromise(this._onDidRender.event)),n}))}setSelection(e,t){const i=e.map((e=>this.getDataNode(e)));this.tree.setSelection(i,t)}getSelection(){return this.tree.getSelection().map((e=>e.element))}setFocus(e,t){const i=e.map((e=>this.getDataNode(e)));this.tree.setFocus(i,t)}getFocus(){return this.tree.getFocus().map((e=>e.element))}reveal(e,t){this.tree.reveal(this.getDataNode(e),t)}getParentElement(e){const t=this.tree.getParentElement(this.getDataNode(e));return t&&t.element}getFirstElementChild(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getFirstElementChild(t===this.root?null:t);return i&&i.element}getDataNode(e){const t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new v(this.user,`Data tree node not found: ${e}`);return t}refreshAndRenderNode(e,t,i,n){return he(this,void 0,void 0,(function*(){yield this.refreshNode(e,t,i),this.render(e,i,n)}))}refreshNode(e,t,i){return he(this,void 0,void 0,(function*(){let n;if(this.subTreeRefreshPromises.forEach(((o,s)=>{!n&&function(e,t){return e===t||ge(e,t)||ge(t,e)}(s,e)&&(n=o.then((()=>this.refreshNode(e,t,i))))})),n)return n;if(e!==this.root){if(this.tree.getNode(e).collapsed)return e.hasChildren=!!this.dataSource.hasChildren(e.element),void(e.stale=!0)}return this.doRefreshSubTree(e,t,i)}))}doRefreshSubTree(e,t,i){return he(this,void 0,void 0,(function*(){let n;e.refreshPromise=new Promise((e=>n=e)),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally((()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)}));try{const o=yield this.doRefreshNode(e,t,i);e.stale=!1,yield C.jT.settled(o.map((e=>this.doRefreshSubTree(e,t,i))))}finally{n()}}))}doRefreshNode(e,t,i){return he(this,void 0,void 0,(function*(){let n;if(e.hasChildren=!!this.dataSource.hasChildren(e.element),e.hasChildren){const t=this.doGetChildren(e);if((0,A.TW)(t))n=Promise.resolve(t);else{const i=(0,C.Vs)(800);i.then((()=>{e.slow=!0,this._onDidChangeNodeSlowState.fire(e)}),(e=>null)),n=t.finally((()=>i.cancel()))}}else n=Promise.resolve(y.$.empty());try{const o=yield n;return this.setChildren(e,o,t,i)}catch(o){if(e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),(0,de.n2)(o))return[];throw o}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}}))}doGetChildren(e){let t=this.refreshPromises.get(e);if(t)return t;const i=this.dataSource.getChildren(e.element);return(0,A.TW)(i)?this.processChildren(i):(t=(0,C.PG)((()=>he(this,void 0,void 0,(function*(){return this.processChildren(yield i)})))),this.refreshPromises.set(e,t),t.finally((()=>{this.refreshPromises.delete(e)})))}_onDidChangeCollapseState({node:e,deep:t}){null!==e.element&&!e.collapsed&&e.element.stale&&(t?this.collapse(e.element.element):this.refreshAndRenderNode(e.element,!1).catch(de.dL))}setChildren(e,t,i,n){const o=[...t];if(0===e.children.length&&0===o.length)return[];const s=new Map,r=new Map;for(const c of e.children)if(s.set(c.element,c),this.identityProvider){const e=this.tree.isCollapsed(c);r.set(c.id,{node:c,collapsed:e})}const a=[],l=o.map((t=>{const o=!!this.dataSource.hasChildren(t);if(!this.identityProvider){const i=ue({element:t,parent:e,hasChildren:o});return o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(i.collapsedByDefault=!1,a.push(i)),i}const l=this.identityProvider.getId(t).toString(),c=r.get(l);if(c){const e=c.node;return s.delete(e.element),this.nodes.delete(e.element),this.nodes.set(t,e),e.element=t,e.hasChildren=o,i?c.collapsed?(e.children.forEach((e=>ye(e,(e=>this.nodes.delete(e.element))))),e.children.splice(0,e.children.length),e.stale=!0):a.push(e):o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(e.collapsedByDefault=!1,a.push(e)),e}const d=ue({element:t,parent:e,id:l,hasChildren:o});return n&&n.viewState.focus&&n.viewState.focus.indexOf(l)>-1&&n.focus.push(d),n&&n.viewState.selection&&n.viewState.selection.indexOf(l)>-1&&n.selection.push(d),n&&n.viewState.expanded&&n.viewState.expanded.indexOf(l)>-1?a.push(d):o&&this.collapseByDefault&&!this.collapseByDefault(t)&&(d.collapsedByDefault=!1,a.push(d)),d}));for(const c of s.values())ye(c,(e=>this.nodes.delete(e.element)));for(const c of l)this.nodes.set(c.element,c);return e.children.splice(0,e.children.length,...l),e!==this.root&&this.autoExpandSingleChildren&&1===l.length&&0===a.length&&(l[0].collapsedByDefault=!1,a.push(l[0])),a}render(e,t,i){const n=e.children.map((e=>this.asTreeElement(e,t))),o=i&&Object.assign(Object.assign({},i),{diffIdentityProvider:i.diffIdentityProvider&&{getId:e=>i.diffIdentityProvider.getId(e.element)}});this.tree.setChildren(e===this.root?null:e,n,o),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}asTreeElement(e,t){if(e.stale)return{element:e,collapsible:e.hasChildren,collapsed:!0};let i;return i=!(t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1)&&e.collapsedByDefault,e.collapsedByDefault=void 0,{element:e,children:e.hasChildren?y.$.map(e.children,(e=>this.asTreeElement(e,t))):[],collapsible:e.hasChildren,collapsed:i}}processChildren(e){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),e}dispose(){this.disposables.dispose()}}class Le{constructor(e){this.node=e}get element(){return{elements:this.node.element.elements.map((e=>e.element)),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map((e=>new Le(e)))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}}class ke{constructor(e,t,i,n){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=n,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,n){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,n)}renderCompressedElements(e,t,i,n){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}renderTwistie(e,t){return e.slow?(t.classList.add(...D.lA.treeItemLoading.classNamesArray),!0):(t.classList.remove(...D.lA.treeItemLoading.classNamesArray),!1)}disposeElement(e,t,i,n){var o,s;null===(s=(o=this.renderer).disposeElement)||void 0===s||s.call(o,this.nodeMapper.map(e),t,i.templateData,n)}disposeCompressedElements(e,t,i,n){var o,s;null===(s=(o=this.renderer).disposeCompressedElements)||void 0===s||s.call(o,this.compressibleNodeMapperProvider().map(e),t,i.templateData,n)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=(0,a.B9)(this.disposables)}}class xe extends Se{constructor(e,t,i,n,o,s,r={}){super(e,t,i,o,s,r),this.compressionDelegate=n,this.compressibleNodeMapper=new b((e=>new Le(e))),this.filter=r.filter}createTree(e,t,i,n,o){const s=new B(i),r=n.map((e=>new ke(e,this.nodeMapper,(()=>this.compressibleNodeMapper),this._onDidChangeNodeSlowState.event))),a=function(e){const t=e&&we(e);return t&&Object.assign(Object.assign({},t),{keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&Object.assign(Object.assign({},t.keyboardNavigationLabelProvider),{getCompressedNodeKeyboardNavigationLabel:t=>e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map((e=>e.element)))})})}(o)||{};return new ce(e,t,s,r,a)}asTreeElement(e,t){return Object.assign({incompressible:this.compressionDelegate.isIncompressible(e.element)},super.asTreeElement(e,t))}updateOptions(e={}){this.tree.updateOptions(e)}render(e,t){if(!this.identityProvider)return super.render(e,t);const i=e=>this.identityProvider.getId(e).toString(),n=e=>{const t=new Set;for(const n of e){const e=this.tree.getCompressedTreeNode(n===this.root?null:n);if(e.element)for(const n of e.element.elements)t.add(i(n.element))}return t},o=n(this.tree.getSelection()),s=n(this.tree.getFocus());super.render(e,t);const r=this.getSelection();let a=!1;const l=this.getFocus();let c=!1;const d=e=>{const t=e.element;if(t)for(let n=0;n{const t=this.filter.filter(e,1),i="boolean"==typeof(n=t)?n?1:0:S(n)?L(n.visibility):L(n);var n;if(2===i)throw new Error("Recursive tree visibility not supported in async data compressed trees");return 1===i}))),super.processChildren(e)}}class De extends G{constructor(e,t,i,n,o,s={}){super(e,t,i,n,s),this.user=e,this.dataSource=o,this.identityProvider=s.identityProvider}createModel(e,t,i){return new Q(e,t,i)}}var Ne=i(33108),Ee=i(23193),Ie=i(38819),Te=i(39282),Me=i(5606),Ae=i(72065),Re=i(91847),Oe=i(89872),Pe=i(88810),Fe=i(97781),Be=function(e,t,i,n){var o,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,i,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(r=(s<3?o(r):s>3?o(t,i,r):o(t,i))||r);return s>3&&r&&Object.defineProperty(t,i,r),r},Ve=function(e,t){return function(i,n){t(i,n,e)}};const We=(0,Ae.yh)("listService");let He=class{constructor(e){this._themeService=e,this.disposables=new a.SL,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}get lastFocusedList(){return this._lastFocusedWidget}setLastFocusedList(e){var t,i;e!==this._lastFocusedWidget&&(null===(t=this._lastFocusedWidget)||void 0===t||t.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=e,null===(i=this._lastFocusedWidget)||void 0===i||i.getHTMLElement().classList.add("last-focused"))}register(e,t){if(!this._hasCreatedStyleController){this._hasCreatedStyleController=!0;const e=new l.wD((0,n.dS)(),"");this.disposables.add((0,Pe.Jl)(e,this._themeService))}if(this.lists.some((t=>t.widget===e)))throw new Error("Cannot register the same widget multiple times");const i={widget:e,extraContextKeys:t};return this.lists.push(i),e.getHTMLElement()===document.activeElement&&this.setLastFocusedList(e),(0,a.F8)(e.onDidFocus((()=>this.setLastFocusedList(e))),(0,a.OF)((()=>this.lists.splice(this.lists.indexOf(i),1))),e.onDidDispose((()=>{this.lists=this.lists.filter((e=>e!==i)),this._lastFocusedWidget===e&&this.setLastFocusedList(void 0)})))}dispose(){this.disposables.dispose()}};He=Be([Ve(0,Fe.XE)],He);const ze=new Ie.uy("listFocus",!0),je=new Ie.uy("listSupportsMultiselect",!0),Ke=Ie.Ao.and(ze,Ie.Ao.not(Te.d0)),Ue=new Ie.uy("listHasSelectionOrFocus",!1),$e=new Ie.uy("listDoubleSelection",!1),qe=new Ie.uy("listMultiSelection",!1),Ge=new Ie.uy("listSelectionNavigation",!1),Qe=new Ie.uy("listSupportsFind",!0),Ze=new Ie.uy("treeElementCanCollapse",!1),Ye=new Ie.uy("treeElementHasParent",!1),Je=new Ie.uy("treeElementCanExpand",!1),Xe=new Ie.uy("treeElementHasChild",!1),et=new Ie.uy("treeFindOpen",!1),tt="listTypeNavigationMode",it="listAutomaticKeyboardNavigation";function nt(e,t){const i=e.createScoped(t.getHTMLElement());return ze.bindTo(i),i}const ot="workbench.list.multiSelectModifier",st="workbench.list.openMode",rt="workbench.list.horizontalScrolling",at="workbench.list.defaultFindMode",lt="workbench.list.keyboardNavigation",ct="workbench.tree.indent",dt="workbench.tree.renderIndentGuides",ht="workbench.list.smoothScrolling",ut="workbench.list.mouseWheelScrollSensitivity",gt="workbench.list.fastScrollSensitivity",pt="workbench.tree.expandMode";function mt(e){return"alt"===e.getValue(ot)}class ft extends a.JT{constructor(e){super(),this.configurationService=e,this.useAltAsMultipleSelectionModifier=mt(e),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration((e=>{e.affectsConfiguration(ot)&&(this.useAltAsMultipleSelectionModifier=mt(this.configurationService))})))}isSelectionSingleChangeEvent(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:(0,l.Zo)(e)}isSelectionRangeChangeEvent(e){return(0,l.wn)(e)}}function _t(e,t){var i;const n=e.get(Ne.Ui),o=e.get(Re.d),s=new a.SL;return[Object.assign(Object.assign({},t),{keyboardNavigationDelegate:{mightProducePrintableCharacter:e=>o.mightProducePrintableCharacter(e)},smoothScrolling:Boolean(n.getValue(ht)),mouseWheelScrollSensitivity:n.getValue(ut),fastScrollSensitivity:n.getValue(gt),multipleSelectionController:null!==(i=t.multipleSelectionController)&&void 0!==i?i:s.add(new ft(n)),keyboardNavigationEventFilter:kt(o)}),s]}let vt=class extends l.aV{constructor(e,t,i,n,o,s,r,a,l,c){const d=void 0!==o.horizontalScrolling?o.horizontalScrolling:Boolean(l.getValue(rt)),[h,u]=c.invokeFunction(_t,o);super(e,t,i,n,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,Pe.o)(a.getColorTheme(),Pe.O2)),h),{horizontalScrolling:d})),this.disposables.add(u),this.contextKeyService=nt(s,this),this.themeService=a,this.listSupportsMultiSelect=je.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==o.multipleSelectionSupport);Ge.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)),this.listHasSelectionOrFocus=Ue.bindTo(this.contextKeyService),this.listDoubleSelection=$e.bindTo(this.contextKeyService),this.listMultiSelection=qe.bindTo(this.contextKeyService),this.horizontalScrolling=o.horizontalScrolling,this._useAltAsMultipleSelectionModifier=mt(l),this.disposables.add(this.contextKeyService),this.disposables.add(r.register(this)),o.overrideStyles&&this.updateStyles(o.overrideStyles),this.disposables.add(this.onDidChangeSelection((()=>{const e=this.getSelection(),t=this.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.listHasSelectionOrFocus.set(e.length>0||t.length>0),this.listMultiSelection.set(e.length>1),this.listDoubleSelection.set(2===e.length)}))}))),this.disposables.add(this.onDidChangeFocus((()=>{const e=this.getSelection(),t=this.getFocus();this.listHasSelectionOrFocus.set(e.length>0||t.length>0)}))),this.disposables.add(l.onDidChangeConfiguration((e=>{e.affectsConfiguration(ot)&&(this._useAltAsMultipleSelectionModifier=mt(l));let t={};if(e.affectsConfiguration(rt)&&void 0===this.horizontalScrolling){const e=Boolean(l.getValue(rt));t=Object.assign(Object.assign({},t),{horizontalScrolling:e})}if(e.affectsConfiguration(ht)){const e=Boolean(l.getValue(ht));t=Object.assign(Object.assign({},t),{smoothScrolling:e})}if(e.affectsConfiguration(ut)){const e=l.getValue(ut);t=Object.assign(Object.assign({},t),{mouseWheelScrollSensitivity:e})}if(e.affectsConfiguration(gt)){const e=l.getValue(gt);t=Object.assign(Object.assign({},t),{fastScrollSensitivity:e})}Object.keys(t).length>0&&this.updateOptions(t)}))),this.navigator=new yt(this,Object.assign({configurationService:l},o)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles&&this.updateStyles(e.overrideStyles),void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,Pe.Jl)(this,this.themeService,e)}dispose(){var e;null===(e=this._styler)||void 0===e||e.dispose(),super.dispose()}};vt=Be([Ve(5,Ie.i6),Ve(6,We),Ve(7,Fe.XE),Ve(8,Ne.Ui),Ve(9,Ae.TG)],vt);let bt=class extends class{constructor(e,t,i,n,o={}){const s=()=>this.model,r=n.map((e=>new c(e,s)));this.list=new l.aV(e,t,i,r,function(e,t){return Object.assign(Object.assign({},t),{accessibilityProvider:t.accessibilityProvider&&new d(e,t.accessibilityProvider)})}(s,o))}updateOptions(e){this.list.updateOptions(e)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return r.ju.map(this.list.onMouseDblClick,(({element:e,index:t,browserEvent:i})=>({element:void 0===e?void 0:this._model.get(e),index:t,browserEvent:i})))}get onPointer(){return r.ju.map(this.list.onPointer,(({element:e,index:t,browserEvent:i})=>({element:void 0===e?void 0:this._model.get(e),index:t,browserEvent:i})))}get onDidChangeSelection(){return r.ju.map(this.list.onDidChangeSelection,(({elements:e,indexes:t,browserEvent:i})=>({elements:e.map((e=>this._model.get(e))),indexes:t,browserEvent:i})))}get model(){return this._model}set model(e){this._model=e,this.list.splice(0,this.list.length,(0,o.w6)(e.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map((e=>this.model.get(e)))}style(e){this.list.style(e)}dispose(){this.list.dispose()}}{constructor(e,t,i,n,o,s,r,l,c,d){const h=void 0!==o.horizontalScrolling?o.horizontalScrolling:Boolean(c.getValue(rt)),[u,g]=d.invokeFunction(_t,o);super(e,t,i,n,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,Pe.o)(l.getColorTheme(),Pe.O2)),u),{horizontalScrolling:h})),this.disposables=new a.SL,this.disposables.add(g),this.contextKeyService=nt(s,this),this.themeService=l,this.horizontalScrolling=o.horizontalScrolling,this.listSupportsMultiSelect=je.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==o.multipleSelectionSupport);Ge.bindTo(this.contextKeyService).set(Boolean(o.selectionNavigation)),this._useAltAsMultipleSelectionModifier=mt(c),this.disposables.add(this.contextKeyService),this.disposables.add(r.register(this)),o.overrideStyles&&this.updateStyles(o.overrideStyles),o.overrideStyles&&this.disposables.add((0,Pe.Jl)(this,l,o.overrideStyles)),this.disposables.add(c.onDidChangeConfiguration((e=>{e.affectsConfiguration(ot)&&(this._useAltAsMultipleSelectionModifier=mt(c));let t={};if(e.affectsConfiguration(rt)&&void 0===this.horizontalScrolling){const e=Boolean(c.getValue(rt));t=Object.assign(Object.assign({},t),{horizontalScrolling:e})}if(e.affectsConfiguration(ht)){const e=Boolean(c.getValue(ht));t=Object.assign(Object.assign({},t),{smoothScrolling:e})}if(e.affectsConfiguration(ut)){const e=c.getValue(ut);t=Object.assign(Object.assign({},t),{mouseWheelScrollSensitivity:e})}if(e.affectsConfiguration(gt)){const e=c.getValue(gt);t=Object.assign(Object.assign({},t),{fastScrollSensitivity:e})}Object.keys(t).length>0&&this.updateOptions(t)}))),this.navigator=new yt(this,Object.assign({configurationService:c},o)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles&&this.updateStyles(e.overrideStyles),void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,Pe.Jl)(this,this.themeService,e)}dispose(){var e;null===(e=this._styler)||void 0===e||e.dispose(),this.disposables.dispose(),super.dispose()}};bt=Be([Ve(5,Ie.i6),Ve(6,We),Ve(7,Fe.XE),Ve(8,Ne.Ui),Ve(9,Ae.TG)],bt);let Ct=class extends p{constructor(e,t,i,n,o,s,r,a,l,c,d){const h=void 0!==s.horizontalScrolling?s.horizontalScrolling:Boolean(c.getValue(rt)),[u,g]=d.invokeFunction(_t,s);super(e,t,i,n,o,Object.assign(Object.assign(Object.assign({keyboardSupport:!1},(0,Pe.o)(l.getColorTheme(),Pe.O2)),u),{horizontalScrolling:h})),this.disposables.add(g),this.contextKeyService=nt(r,this),this.themeService=l,this.listSupportsMultiSelect=je.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==s.multipleSelectionSupport);Ge.bindTo(this.contextKeyService).set(Boolean(s.selectionNavigation)),this.listHasSelectionOrFocus=Ue.bindTo(this.contextKeyService),this.listDoubleSelection=$e.bindTo(this.contextKeyService),this.listMultiSelection=qe.bindTo(this.contextKeyService),this.horizontalScrolling=s.horizontalScrolling,this._useAltAsMultipleSelectionModifier=mt(c),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),s.overrideStyles&&this.updateStyles(s.overrideStyles),this.disposables.add(this.onDidChangeSelection((()=>{const e=this.getSelection(),t=this.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.listHasSelectionOrFocus.set(e.length>0||t.length>0),this.listMultiSelection.set(e.length>1),this.listDoubleSelection.set(2===e.length)}))}))),this.disposables.add(this.onDidChangeFocus((()=>{const e=this.getSelection(),t=this.getFocus();this.listHasSelectionOrFocus.set(e.length>0||t.length>0)}))),this.disposables.add(c.onDidChangeConfiguration((e=>{e.affectsConfiguration(ot)&&(this._useAltAsMultipleSelectionModifier=mt(c));let t={};if(e.affectsConfiguration(rt)&&void 0===this.horizontalScrolling){const e=Boolean(c.getValue(rt));t=Object.assign(Object.assign({},t),{horizontalScrolling:e})}if(e.affectsConfiguration(ht)){const e=Boolean(c.getValue(ht));t=Object.assign(Object.assign({},t),{smoothScrolling:e})}if(e.affectsConfiguration(ut)){const e=c.getValue(ut);t=Object.assign(Object.assign({},t),{mouseWheelScrollSensitivity:e})}if(e.affectsConfiguration(gt)){const e=c.getValue(gt);t=Object.assign(Object.assign({},t),{fastScrollSensitivity:e})}Object.keys(t).length>0&&this.updateOptions(t)}))),this.navigator=new St(this,Object.assign({configurationService:c},s)),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles&&this.updateStyles(e.overrideStyles),void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){var t;null===(t=this._styler)||void 0===t||t.dispose(),this._styler=(0,Pe.Jl)(this,this.themeService,e)}dispose(){var e;null===(e=this._styler)||void 0===e||e.dispose(),this.disposables.dispose(),super.dispose()}};Ct=Be([Ve(6,Ie.i6),Ve(7,We),Ve(8,Fe.XE),Ve(9,Ne.Ui),Ve(10,Ae.TG)],Ct);class wt extends a.JT{constructor(e,t){var i;super(),this.widget=e,this._onDidOpen=this._register(new r.Q5),this.onDidOpen=this._onDidOpen.event,this._register(r.ju.filter(this.widget.onDidChangeSelection,(e=>e.browserEvent instanceof KeyboardEvent))((e=>this.onSelectionFromKeyboard(e)))),this._register(this.widget.onPointer((e=>this.onPointer(e.element,e.browserEvent)))),this._register(this.widget.onMouseDblClick((e=>this.onMouseDblClick(e.element,e.browserEvent)))),"boolean"!=typeof(null==t?void 0:t.openOnSingleClick)&&(null==t?void 0:t.configurationService)?(this.openOnSingleClick="doubleClick"!==(null==t?void 0:t.configurationService.getValue(st)),this._register(null==t?void 0:t.configurationService.onDidChangeConfiguration((()=>{this.openOnSingleClick="doubleClick"!==(null==t?void 0:t.configurationService.getValue(st))})))):this.openOnSingleClick=null===(i=null==t?void 0:t.openOnSingleClick)||void 0===i||i}onSelectionFromKeyboard(e){if(1!==e.elements.length)return;const t=e.browserEvent,i="boolean"!=typeof t.preserveFocus||t.preserveFocus,n="boolean"==typeof t.pinned?t.pinned:!i;this._open(this.getSelectedElement(),i,n,!1,e.browserEvent)}onPointer(e,t){if(!this.openOnSingleClick)return;if(2===t.detail)return;const i=1===t.button,n=t.ctrlKey||t.metaKey||t.altKey;this._open(e,!0,i,n,t)}onMouseDblClick(e,t){if(!t)return;const i=t.target;if(i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&t.offsetX<16)return;const n=t.ctrlKey||t.metaKey||t.altKey;this._open(e,!1,!0,n,t)}_open(e,t,i,n,o){e&&this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:i,revealIfVisible:!0},sideBySide:n,element:e,browserEvent:o})}}class yt extends wt{constructor(e,t){super(e,t),this.widget=e}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class St extends wt{constructor(e,t){super(e,t)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class Lt extends wt{constructor(e,t){super(e,t)}getSelectedElement(){var e;return null!==(e=this.widget.getSelection()[0])&&void 0!==e?e:void 0}}function kt(e){let t=!1;return i=>{if(i.toKeybinding().isModifierKey())return!1;if(t)return t=!1,!1;const n=e.softDispatch(i,i.target);return(null==n?void 0:n.enterChord)?(t=!0,!1):(t=!1,!n)}}let xt=class extends ae{constructor(e,t,i,n,o,s,r,a,l,c){const{options:d,getTypeNavigationMode:h,disposable:u}=s.invokeFunction(Mt,o);super(e,t,i,n,d),this.disposables.add(u),this.internals=new At(this,o,h,o.overrideStyles,r,a,l,c),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};xt=Be([Ve(5,Ae.TG),Ve(6,Ie.i6),Ve(7,We),Ve(8,Fe.XE),Ve(9,Ne.Ui)],xt);let Dt=class extends ce{constructor(e,t,i,n,o,s,r,a,l,c){const{options:d,getTypeNavigationMode:h,disposable:u}=s.invokeFunction(Mt,o);super(e,t,i,n,d),this.disposables.add(u),this.internals=new At(this,o,h,o.overrideStyles,r,a,l,c),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Dt=Be([Ve(5,Ae.TG),Ve(6,Ie.i6),Ve(7,We),Ve(8,Fe.XE),Ve(9,Ne.Ui)],Dt);let Nt=class extends De{constructor(e,t,i,n,o,s,r,a,l,c,d){const{options:h,getTypeNavigationMode:u,disposable:g}=r.invokeFunction(Mt,s);super(e,t,i,n,o,h),this.disposables.add(g),this.internals=new At(this,s,u,s.overrideStyles,a,l,c,d),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Nt=Be([Ve(6,Ae.TG),Ve(7,Ie.i6),Ve(8,We),Ve(9,Fe.XE),Ve(10,Ne.Ui)],Nt);let Et=class extends Se{constructor(e,t,i,n,o,s,r,a,l,c,d){const{options:h,getTypeNavigationMode:u,disposable:g}=r.invokeFunction(Mt,s);super(e,t,i,n,o,h),this.disposables.add(g),this.internals=new At(this,s,u,s.overrideStyles,a,l,c,d),this.disposables.add(this.internals)}get onDidOpen(){return this.internals.onDidOpen}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Et=Be([Ve(6,Ae.TG),Ve(7,Ie.i6),Ve(8,We),Ve(9,Fe.XE),Ve(10,Ne.Ui)],Et);let It=class extends xe{constructor(e,t,i,n,o,s,r,a,l,c,d,h){const{options:u,getTypeNavigationMode:g,disposable:p}=a.invokeFunction(Mt,r);super(e,t,i,n,o,s,u),this.disposables.add(p),this.internals=new At(this,r,g,r.overrideStyles,l,c,d,h),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};function Tt(e){const t=e.getValue(at);if("highlight"===t)return I.Highlight;if("filter"===t)return I.Filter;const i=e.getValue(lt);return"simple"===i||"highlight"===i?I.Highlight:"filter"===i?I.Filter:void 0}function Mt(e,t){var i;const n=e.get(Ne.Ui),o=e.get(Me.u),s=e.get(Ie.i6),r=e.get(Ae.TG),a=void 0!==t.horizontalScrolling?t.horizontalScrolling:Boolean(n.getValue(rt)),[c,d]=r.invokeFunction(_t,t),h=t.additionalScrollHeight;return{getTypeNavigationMode:()=>{const e=s.getContextKeyValue(tt);if("automatic"===e)return l.AA.Automatic;if("trigger"===e)return l.AA.Trigger;return!1===s.getContextKeyValue(it)?l.AA.Trigger:void 0},disposable:d,options:Object.assign(Object.assign({keyboardSupport:!1},c),{indent:"number"==typeof n.getValue(ct)?n.getValue(ct):void 0,renderIndentGuides:n.getValue(dt),smoothScrolling:Boolean(n.getValue(ht)),defaultFindMode:Tt(n),horizontalScrolling:a,additionalScrollHeight:h,hideTwistiesOfChildlessElements:t.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:null!==(i=t.expandOnlyOnTwistieClick)&&void 0!==i?i:"doubleClick"===n.getValue(pt),contextViewProvider:o})}}It=Be([Ve(7,Ae.TG),Ve(8,Ie.i6),Ve(9,We),Ve(10,Fe.XE),Ve(11,Ne.Ui)],It);let At=class{constructor(e,t,i,n,o,s,r,a){var l;this.tree=e,this.themeService=r,this.disposables=[],this.contextKeyService=nt(o,e),this.listSupportsMultiSelect=je.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(!1!==t.multipleSelectionSupport);Ge.bindTo(this.contextKeyService).set(Boolean(t.selectionNavigation)),this.listSupportFindWidget=Qe.bindTo(this.contextKeyService),this.listSupportFindWidget.set(null===(l=t.findWidgetEnabled)||void 0===l||l),this.hasSelectionOrFocus=Ue.bindTo(this.contextKeyService),this.hasDoubleSelection=$e.bindTo(this.contextKeyService),this.hasMultiSelection=qe.bindTo(this.contextKeyService),this.treeElementCanCollapse=Ze.bindTo(this.contextKeyService),this.treeElementHasParent=Ye.bindTo(this.contextKeyService),this.treeElementCanExpand=Je.bindTo(this.contextKeyService),this.treeElementHasChild=Xe.bindTo(this.contextKeyService),this.treeFindOpen=et.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=mt(a),this.updateStyleOverrides(n);const c=()=>{const t=e.getFocus()[0];if(!t)return;const i=e.getNode(t);this.treeElementCanCollapse.set(i.collapsible&&!i.collapsed),this.treeElementHasParent.set(!!e.getParentElement(t)),this.treeElementCanExpand.set(i.collapsible&&i.collapsed),this.treeElementHasChild.set(!!e.getFirstElementChild(t))},d=new Set;d.add(tt),d.add(it),this.disposables.push(this.contextKeyService,s.register(e),e.onDidChangeSelection((()=>{const t=e.getSelection(),i=e.getFocus();this.contextKeyService.bufferChangeEvents((()=>{this.hasSelectionOrFocus.set(t.length>0||i.length>0),this.hasMultiSelection.set(t.length>1),this.hasDoubleSelection.set(2===t.length)}))})),e.onDidChangeFocus((()=>{const t=e.getSelection(),i=e.getFocus();this.hasSelectionOrFocus.set(t.length>0||i.length>0),c()})),e.onDidChangeCollapseState(c),e.onDidChangeModel(c),e.onDidChangeFindOpenState((e=>this.treeFindOpen.set(e))),a.onDidChangeConfiguration((i=>{let n={};if(i.affectsConfiguration(ot)&&(this._useAltAsMultipleSelectionModifier=mt(a)),i.affectsConfiguration(ct)){const e=a.getValue(ct);n=Object.assign(Object.assign({},n),{indent:e})}if(i.affectsConfiguration(dt)){const e=a.getValue(dt);n=Object.assign(Object.assign({},n),{renderIndentGuides:e})}if(i.affectsConfiguration(ht)){const e=Boolean(a.getValue(ht));n=Object.assign(Object.assign({},n),{smoothScrolling:e})}if((i.affectsConfiguration(at)||i.affectsConfiguration(lt))&&e.updateOptions({defaultFindMode:Tt(a)}),i.affectsConfiguration(rt)&&void 0===t.horizontalScrolling){const e=Boolean(a.getValue(rt));n=Object.assign(Object.assign({},n),{horizontalScrolling:e})}if(i.affectsConfiguration(pt)&&void 0===t.expandOnlyOnTwistieClick&&(n=Object.assign(Object.assign({},n),{expandOnlyOnTwistieClick:"doubleClick"===a.getValue(pt)})),i.affectsConfiguration(ut)){const e=a.getValue(ut);n=Object.assign(Object.assign({},n),{mouseWheelScrollSensitivity:e})}if(i.affectsConfiguration(gt)){const e=a.getValue(gt);n=Object.assign(Object.assign({},n),{fastScrollSensitivity:e})}Object.keys(n).length>0&&e.updateOptions(n)})),this.contextKeyService.onDidChangeContext((t=>{t.affectsSome(d)&&e.updateOptions({typeNavigationMode:i()})}))),this.navigator=new Lt(e,Object.assign({configurationService:a},t)),this.disposables.push(this.navigator)}get onDidOpen(){return this.navigator.onDidOpen}updateOptions(e){void 0!==e.multipleSelectionSupport&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyleOverrides(e){(0,a.B9)(this.styler),this.styler=e?(0,Pe.Jl)(this.tree,this.themeService,e):a.JT.None}dispose(){this.disposables=(0,a.B9)(this.disposables),(0,a.B9)(this.styler),this.styler=void 0}};At=Be([Ve(4,Ie.i6),Ve(5,We),Ve(6,Fe.XE),Ve(7,Ne.Ui)],At);Oe.B.as(Ee.IP.Configuration).registerConfiguration({id:"workbench",order:7,title:(0,R.NC)("workbenchConfigurationTitle","Workbench"),type:"object",properties:{[ot]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[(0,R.NC)("multiSelectModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),(0,R.NC)("multiSelectModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:(0,R.NC)({key:"multiSelectModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")},[st]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,R.NC)({key:"openModeModifier",comment:["`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized."]},"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[rt]:{type:"boolean",default:!1,description:(0,R.NC)("horizontalScrolling setting","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[ct]:{type:"number",default:8,minimum:4,maximum:40,description:(0,R.NC)("tree indent setting","Controls tree indentation in pixels.")},[dt]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:(0,R.NC)("render tree indent guides","Controls whether the tree should render indent guides.")},[ht]:{type:"boolean",default:!1,description:(0,R.NC)("list smoothScrolling setting","Controls whether lists and trees have smooth scrolling.")},[ut]:{type:"number",default:1,markdownDescription:(0,R.NC)("Mouse Wheel Scroll Sensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[gt]:{type:"number",default:5,description:(0,R.NC)("Fast Scroll Sensitivity","Scrolling speed multiplier when pressing `Alt`.")},[at]:{type:"string",enum:["highlight","filter"],enumDescriptions:[(0,R.NC)("defaultFindModeSettingKey.highlight","Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),(0,R.NC)("defaultFindModeSettingKey.filter","Filter elements when searching.")],default:"highlight",description:(0,R.NC)("defaultFindModeSettingKey","Controls the default find mode for lists and trees in the workbench.")},[lt]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[(0,R.NC)("keyboardNavigationSettingKey.simple","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),(0,R.NC)("keyboardNavigationSettingKey.highlight","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),(0,R.NC)("keyboardNavigationSettingKey.filter","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:(0,R.NC)("keyboardNavigationSettingKey","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:(0,R.NC)("keyboardNavigationSettingKeyDeprecated","Please use 'workbench.list.defaultFindMode' instead.")},[pt]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,R.NC)("expand mode","Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")}}})},43557:(e,t,i)=>{"use strict";i.d(t,{$V:()=>d,VZ:()=>s,in:()=>r,kw:()=>c});var n=i(4669),o=i(5976);const s=(0,i(72065).yh)("logService");var r;!function(e){e[e.Trace=0]="Trace",e[e.Debug=1]="Debug",e[e.Info=2]="Info",e[e.Warning=3]="Warning",e[e.Error=4]="Error",e[e.Critical=5]="Critical",e[e.Off=6]="Off"}(r||(r={}));const a=r.Info;class l extends o.JT{constructor(){super(...arguments),this.level=a,this._onDidChangeLogLevel=this._register(new n.Q5)}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}}class c extends l{constructor(e=a){super(),this.setLevel(e)}trace(e,...t){this.getLevel()<=r.Trace&&console.log("%cTRACE","color: #888",e,...t)}debug(e,...t){this.getLevel()<=r.Debug&&console.log("%cDEBUG","background: #eee; color: #888",e,...t)}info(e,...t){this.getLevel()<=r.Info&&console.log("%c INFO","color: #33f",e,...t)}error(e,...t){this.getLevel()<=r.Error&&console.log("%c ERR","color: #f33",e,...t)}dispose(){}}class d extends o.JT{constructor(e){super(),this.logger=e,this._register(e)}getLevel(){return this.logger.getLevel()}trace(e,...t){this.logger.trace(e,...t)}debug(e,...t){this.logger.debug(e,...t)}info(e,...t){this.logger.info(e,...t)}error(e,...t){this.logger.error(e,...t)}}},98674:(e,t,i)=>{"use strict";i.d(t,{H0:()=>o,ZL:()=>n,lT:()=>l});var n,o,s=i(14603),r=i(63580),a=i(72065);!function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(n||(n={})),function(e){e.compare=function(e,t){return t-e};const t=Object.create(null);t[e.Error]=(0,r.NC)("sev.error","Error"),t[e.Warning]=(0,r.NC)("sev.warning","Warning"),t[e.Info]=(0,r.NC)("sev.info","Info"),e.toString=function(e){return t[e]||""},e.fromSeverity=function(t){switch(t){case s.Z.Error:return e.Error;case s.Z.Warning:return e.Warning;case s.Z.Info:return e.Info;case s.Z.Ignore:return e.Hint}},e.toSeverity=function(t){switch(t){case e.Error:return s.Z.Error;case e.Warning:return s.Z.Warning;case e.Info:return s.Z.Info;case e.Hint:return s.Z.Ignore}}}(n||(n={})),function(e){const t="";function i(e,i){const o=[t];return e.source?o.push(e.source.replace("\xa6","\\\xa6")):o.push(t),e.code?"string"==typeof e.code?o.push(e.code.replace("\xa6","\\\xa6")):o.push(e.code.value.replace("\xa6","\\\xa6")):o.push(t),void 0!==e.severity&&null!==e.severity?o.push(n.toString(e.severity)):o.push(t),e.message&&i?o.push(e.message.replace("\xa6","\\\xa6")):o.push(t),void 0!==e.startLineNumber&&null!==e.startLineNumber?o.push(e.startLineNumber.toString()):o.push(t),void 0!==e.startColumn&&null!==e.startColumn?o.push(e.startColumn.toString()):o.push(t),void 0!==e.endLineNumber&&null!==e.endLineNumber?o.push(e.endLineNumber.toString()):o.push(t),void 0!==e.endColumn&&null!==e.endColumn?o.push(e.endColumn.toString()):o.push(t),o.push(t),o.join("\xa6")}e.makeKey=function(e){return i(e,!0)},e.makeKeyOptionalMessage=i}(o||(o={}));const l=(0,a.yh)("markerService")},59422:(e,t,i)=>{"use strict";i.d(t,{EO:()=>a,lT:()=>r,zb:()=>s});var n=i(14603),o=i(72065),s=n.Z;const r=(0,o.yh)("notificationService");class a{}},50988:(e,t,i)=>{"use strict";i.d(t,{Gs:()=>h,SW:()=>c,v4:()=>l,xI:()=>u,xn:()=>d});var n=i(5976),o=i(97295),s=i(70666),r=i(72065),a=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};const l=(0,r.yh)("openerService"),c=Object.freeze({_serviceBrand:void 0,registerOpener:()=>n.JT.None,registerValidator:()=>n.JT.None,registerExternalUriResolver:()=>n.JT.None,setDefaultExternalOpener(){},registerExternalOpener:()=>n.JT.None,open(){return a(this,void 0,void 0,(function*(){return!1}))},resolveExternalUri(e){return a(this,void 0,void 0,(function*(){return{resolved:e,dispose(){}}}))}});function d(e,t){return s.o.isUri(e)?(0,o.qq)(e.scheme,t):(0,o.ok)(e,t+":")}function h(e,...t){return t.some((t=>d(e,t)))}function u(e){let t;const i=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(e.fragment);return i&&(t={startLineNumber:parseInt(i[1]),startColumn:i[2]?parseInt(i[2]):1,endLineNumber:i[4]?parseInt(i[4]):void 0,endColumn:i[4]?i[5]?parseInt(i[5]):1:void 0},e=e.with({fragment:""})),{selection:t,uri:e}}},90535:(e,t,i)=>{"use strict";i.d(t,{Ex:()=>s,R9:()=>o,ek:()=>r});var n=i(72065);const o=(0,n.yh)("progressService");Object.freeze({total(){},worked(){},done(){}});class s{constructor(e){this.callback=e}report(e){this._value=e,this.callback(this._value)}}s.None=Object.freeze({report(){}});const r=(0,n.yh)("editorProgressService")},90725:(e,t,i)=>{"use strict";i.d(t,{IP:()=>a,Ry:()=>n});var n,o=i(9488),s=i(5976),r=i(89872);!function(e){e[e.PRESERVE=0]="PRESERVE",e[e.LAST=1]="LAST"}(n||(n={}));const a={Quickaccess:"workbench.contributions.quickaccess"};r.B.add(a.Quickaccess,new class{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(e){return 0===e.prefix.length?this.defaultProvider=e:this.providers.push(e),this.providers.sort(((e,t)=>t.prefix.length-e.prefix.length)),(0,s.OF)((()=>{this.providers.splice(this.providers.indexOf(e),1),this.defaultProvider===e&&(this.defaultProvider=void 0)}))}getQuickAccessProviders(){return(0,o.kX)([this.defaultProvider,...this.providers])}getQuickAccessProvider(e){return e&&this.providers.find((t=>e.startsWith(t.prefix)))||void 0||this.defaultProvider}})},41157:(e,t,i)=>{"use strict";i.d(t,{eJ:()=>s,jG:()=>o.jG});var n=i(72065),o=i(67746);const s=(0,n.yh)("quickInputService")},89872:(e,t,i)=>{"use strict";i.d(t,{B:()=>s});var n=i(35146),o=i(98401);const s=new class{constructor(){this.data=new Map}add(e,t){n.ok(o.HD(e)),n.ok(o.Kn(t)),n.ok(!this.data.has(e),"There is already an extension with this id"),this.data.set(e,t)}as(e){return this.data.get(e)||null}}},87060:(e,t,i)=>{"use strict";i.d(t,{Uy:()=>g,vm:()=>f,fk:()=>p});var n,o=i(4669),s=i(5976),r=i(98401),a=i(15393),l=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(t){s(t)}}function a(e){try{l(n.throw(e))}catch(t){s(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))};!function(e){e[e.None=0]="None",e[e.Initialized=1]="Initialized",e[e.Closed=2]="Closed"}(n||(n={}));class c extends s.JT{constructor(e,t=Object.create(null)){super(),this.database=e,this.options=t,this._onDidChangeStorage=this._register(new o.Q5),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=n.None,this.cache=new Map,this.flushDelayer=new a.rH(c.DEFAULT_FLUSH_DELAY),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal((e=>this.onDidChangeItemsExternal(e))))}onDidChangeItemsExternal(e){var t,i;null===(t=e.changed)||void 0===t||t.forEach(((e,t)=>this.accept(t,e))),null===(i=e.deleted)||void 0===i||i.forEach((e=>this.accept(e,void 0)))}accept(e,t){if(this.state===n.Closed)return;let i=!1;if((0,r.Jp)(t))i=this.cache.delete(e);else{this.cache.get(e)!==t&&(this.cache.set(e,t),i=!0)}i&&this._onDidChangeStorage.fire(e)}get(e,t){const i=this.cache.get(e);return(0,r.Jp)(i)?t:i}getBoolean(e,t){const i=this.get(e);return(0,r.Jp)(i)?t:"true"===i}getNumber(e,t){const i=this.get(e);return(0,r.Jp)(i)?t:parseInt(i,10)}set(e,t){return l(this,void 0,void 0,(function*(){if(this.state===n.Closed)return;if((0,r.Jp)(t))return this.delete(e);const i=String(t);return this.cache.get(e)!==i?(this.cache.set(e,i),this.pendingInserts.set(e,i),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire(e),this.doFlush()):void 0}))}delete(e){return l(this,void 0,void 0,(function*(){if(this.state===n.Closed)return;return this.cache.delete(e)?(this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire(e),this.doFlush()):void 0}))}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}flushPending(){return l(this,void 0,void 0,(function*(){if(!this.hasPending)return;const e={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(e).finally((()=>{var e;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)null===(e=this.whenFlushedCallbacks.pop())||void 0===e||e()}))}))}doFlush(e){return l(this,void 0,void 0,(function*(){return this.flushDelayer.trigger((()=>this.flushPending()),e)}))}dispose(){this.flushDelayer.dispose(),super.dispose()}}c.DEFAULT_FLUSH_DELAY=100;class d{constructor(){this.onDidChangeItemsExternal=o.ju.None,this.items=new Map}updateItems(e){var t,i;return l(this,void 0,void 0,(function*(){null===(t=e.insert)||void 0===t||t.forEach(((e,t)=>this.items.set(t,e))),null===(i=e.delete)||void 0===i||i.forEach((e=>this.items.delete(e)))}))}}var h=i(72065);const u="__$__targetStorageMarker",g=(0,h.yh)("storageService");var p;!function(e){e[e.NONE=0]="NONE",e[e.SHUTDOWN=1]="SHUTDOWN"}(p||(p={}));class m extends s.JT{constructor(e={flushInterval:m.DEFAULT_FLUSH_INTERVAL}){super(),this.options=e,this._onDidChangeValue=this._register(new o.K3),this.onDidChangeValue=this._onDidChangeValue.event,this._onDidChangeTarget=this._register(new o.K3),this._onWillSaveState=this._register(new o.Q5),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}emitDidChangeValue(e,t){if(t===u){switch(e){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0}this._onDidChangeTarget.fire({scope:e})}else this._onDidChangeValue.fire({scope:e,key:t,target:this.getKeyTargets(e)[t]})}get(e,t,i){var n;return null===(n=this.getStorage(t))||void 0===n?void 0:n.get(e,i)}getBoolean(e,t,i){var n;return null===(n=this.getStorage(t))||void 0===n?void 0:n.getBoolean(e,i)}getNumber(e,t,i){var n;return null===(n=this.getStorage(t))||void 0===n?void 0:n.getNumber(e,i)}store(e,t,i,n){(0,r.Jp)(t)?this.remove(e,i):this.withPausedEmitters((()=>{var o;this.updateKeyTarget(e,i,n),null===(o=this.getStorage(i))||void 0===o||o.set(e,t)}))}remove(e,t){this.withPausedEmitters((()=>{var i;this.updateKeyTarget(e,t,void 0),null===(i=this.getStorage(t))||void 0===i||i.delete(e)}))}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(e,t,i){var n,o;const s=this.getKeyTargets(t);"number"==typeof i?s[e]!==i&&(s[e]=i,null===(n=this.getStorage(t))||void 0===n||n.set(u,JSON.stringify(s))):"number"==typeof s[e]&&(delete s[e],null===(o=this.getStorage(t))||void 0===o||o.set(u,JSON.stringify(s)))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(e){switch(e){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(e){const t=this.get(u,e);if(t)try{return JSON.parse(t)}catch(i){}return Object.create(null)}}m.DEFAULT_FLUSH_INTERVAL=6e4;class f extends m{constructor(){super(),this.applicationStorage=this._register(new c(new d)),this.profileStorage=this._register(new c(new d)),this.workspaceStorage=this._register(new c(new d)),this._register(this.workspaceStorage.onDidChangeStorage((e=>this.emitDidChangeValue(1,e)))),this._register(this.profileStorage.onDidChangeStorage((e=>this.emitDidChangeValue(0,e)))),this._register(this.applicationStorage.onDidChangeStorage((e=>this.emitDidChangeValue(-1,e))))}getStorage(e){switch(e){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}}},10829:(e,t,i)=>{"use strict";i.d(t,{b:()=>n});const n=(0,i(72065).yh)("telemetryService")},73910:(e,t,i)=>{"use strict";i.d(t,{$DX:()=>Ut,$d5:()=>St,ABB:()=>Z,AS1:()=>Lt,AWI:()=>Se,BOY:()=>fi,Bqu:()=>gt,C3g:()=>O,CA6:()=>ui,CNo:()=>Ve,Cdg:()=>Ht,CzK:()=>Ze,D0T:()=>ue,D1_:()=>pe,DEr:()=>zt,Dut:()=>le,E3h:()=>$t,EPQ:()=>M,EQn:()=>Pt,ES4:()=>De,EiJ:()=>Re,F3d:()=>wt,F9q:()=>st,Fm_:()=>ni,Fu1:()=>Ge,GO4:()=>K,Gj_:()=>li,Gwp:()=>kt,HCL:()=>$e,Hfx:()=>ge,Hz8:()=>jt,IPX:()=>h,IYc:()=>ri,Ido:()=>m,Itd:()=>hi,Ivo:()=>ci,JpG:()=>mi,K19:()=>Le,LLc:()=>lt,L_H:()=>X,L_t:()=>ct,LoV:()=>We,M6C:()=>mt,MUv:()=>Te,NOs:()=>he,NPS:()=>Bt,Ng6:()=>me,OLZ:()=>_i,OZR:()=>B,Oop:()=>ut,P4M:()=>Xe,P6G:()=>g,P6Y:()=>ot,PRb:()=>D,PX0:()=>xt,PpC:()=>je,Pvw:()=>E,QO2:()=>d,R80:()=>_,RV_:()=>A,Rzx:()=>Ne,SPM:()=>oi,SUG:()=>R,SUY:()=>si,Saq:()=>Mt,Sbf:()=>Be,Snq:()=>Si,SwI:()=>y,T83:()=>ae,Tnx:()=>ft,UnT:()=>Rt,VVv:()=>ze,Vqd:()=>Wt,XEs:()=>N,XL$:()=>rt,XZx:()=>f,Xy4:()=>gi,YI3:()=>T,ZGJ:()=>qt,ZnX:()=>Ci,_2n:()=>ht,_Yy:()=>He,_bK:()=>dt,_lC:()=>I,_t9:()=>F,_wn:()=>G,b6y:()=>te,b7$:()=>j,bKB:()=>Ue,brw:()=>pi,c63:()=>re,cbQ:()=>Vt,cvW:()=>de,dCr:()=>pt,dRz:()=>p,dt_:()=>x,etL:()=>Q,fEB:()=>ce,few:()=>se,g8u:()=>$,g_n:()=>Ee,gkn:()=>Oe,gpD:()=>ie,hEj:()=>ke,hX8:()=>Ke,hzo:()=>et,j51:()=>it,j5u:()=>z,jUe:()=>Me,jbW:()=>Kt,kJk:()=>be,kVY:()=>di,keg:()=>Ye,kvU:()=>bt,kwl:()=>wi,lRK:()=>v,lUq:()=>Gt,lWp:()=>ye,lXJ:()=>ee,loF:()=>ve,mHy:()=>at,mV1:()=>yt,nyM:()=>Ie,oQ$:()=>we,oSI:()=>Tt,opG:()=>Ce,ov3:()=>ai,pW3:()=>oe,paE:()=>P,phM:()=>qe,pnM:()=>Ae,ptc:()=>Pe,qeD:()=>q,rg2:()=>_t,rh:()=>S,s$:()=>Ct,sEe:()=>L,sKV:()=>Qe,sgC:()=>w,tZ6:()=>_e,uoC:()=>ne,url:()=>C,uxu:()=>Ot,vGG:()=>It,xL1:()=>b,xi6:()=>tt,y65:()=>At,yJx:()=>Fe,yb5:()=>xe,ynu:()=>Y,ypS:()=>Je,ytC:()=>vt,zJb:()=>k,zKr:()=>fe,zOm:()=>nt,zRJ:()=>J});var n=i(15393),o=i(41264),s=i(4669),r=i(98401),a=i(63580),l=i(81294),c=i(89872);function d(e){return`--vscode-${e.replace(/\./g,"-")}`}const h={ColorContribution:"base.contributions.colors"};const u=new class{constructor(){this._onDidChangeSchema=new s.Q5,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(e,t,i,n=!1,o){const s={id:e,description:i,defaults:t,needsTransparency:n,deprecationMessage:o};this.colorsById[e]=s;const r={type:"string",description:i,format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return o&&(r.deprecationMessage=o),this.colorSchema.properties[e]=r,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(i),this._onDidChangeSchema.fire(),e}getColors(){return Object.keys(this.colorsById).map((e=>this.colorsById[e]))}resolveDefaultColor(e,t){const i=this.colorsById[e];if(i&&i.defaults){return Si(i.defaults[t.type],t)}}getColorSchema(){return this.colorSchema}toString(){return Object.keys(this.colorsById).sort(((e,t)=>{const i=-1===e.indexOf(".")?0:1,n=-1===t.indexOf(".")?0:1;return i!==n?i-n:e.localeCompare(t)})).map((e=>`- \`${e}\`: ${this.colorsById[e].description}`)).join("\n")}};function g(e,t,i,n,o){return u.registerColor(e,(null===(s=t)||void 0===s.hcLight&&(null===s.hcDark||"string"==typeof s.hcDark?s.hcLight=s.hcDark:s.hcLight=s.light),s),i,n,o);var s}c.B.add(h.ColorContribution,u);const p=g("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},a.NC("foreground","Overall foreground color. This color is only used if not overridden by a component.")),m=(g("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},a.NC("disabledForeground","Overall foreground for disabled elements. This color is only used if not overridden by a component.")),g("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},a.NC("errorForeground","Overall foreground color for error messages. This color is only used if not overridden by a component."))),f=(g("descriptionForeground",{light:"#717171",dark:Ci(p,.7),hcDark:Ci(p,.7),hcLight:Ci(p,.7)},a.NC("descriptionForeground","Foreground color for description text providing additional information, for example for a label.")),g("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},a.NC("iconForeground","The default color for icons in the workbench."))),_=g("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#0F4A85"},a.NC("focusBorder","Overall border color for focused elements. This color is only used if not overridden by a component.")),v=g("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},a.NC("contrastBorder","An extra border around elements to separate them from others for greater contrast.")),b=g("contrastActiveBorder",{light:null,dark:null,hcDark:_,hcLight:_},a.NC("activeContrastBorder","An extra border around active elements to separate them from others for greater contrast.")),C=(g("selection.background",{light:null,dark:null,hcDark:null,hcLight:null},a.NC("selectionBackground","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.")),g("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:o.Il.black,hcLight:"#292929"},a.NC("textSeparatorForeground","Color for text separators.")),g("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#3794FF",hcLight:"#0F4A85"},a.NC("textLinkForeground","Foreground color for links in text."))),w=g("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#3794FF",hcLight:"#0F4A85"},a.NC("textLinkActiveForeground","Foreground color for links in text when clicked on and on mouse hover.")),y=(g("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#D7BA7D",hcLight:"#292929"},a.NC("textPreformatForeground","Foreground color for preformatted text segments.")),g("textBlockQuote.background",{light:"#7f7f7f1a",dark:"#7f7f7f1a",hcDark:null,hcLight:"#F2F2F2"},a.NC("textBlockQuoteBackground","Background color for block quotes in text.")),g("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:o.Il.white,hcLight:"#292929"},a.NC("textBlockQuoteBorder","Border color for block quotes in text.")),g("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:o.Il.black,hcLight:"#F2F2F2"},a.NC("textCodeBlockBackground","Background color for code blocks in text."))),S=g("widget.shadow",{dark:Ci(o.Il.black,.36),light:Ci(o.Il.black,.16),hcDark:null,hcLight:null},a.NC("widgetShadow","Shadow color of widgets such as find/replace inside the editor.")),L=g("input.background",{dark:"#3C3C3C",light:o.Il.white,hcDark:o.Il.black,hcLight:o.Il.white},a.NC("inputBoxBackground","Input box background.")),k=g("input.foreground",{dark:p,light:p,hcDark:p,hcLight:p},a.NC("inputBoxForeground","Input box foreground.")),x=g("input.border",{dark:null,light:null,hcDark:v,hcLight:v},a.NC("inputBoxBorder","Input box border.")),D=g("inputOption.activeBorder",{dark:"#007ACC00",light:"#007ACC00",hcDark:v,hcLight:v},a.NC("inputBoxActiveOptionBorder","Border color of activated options in input fields.")),N=(g("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},a.NC("inputOption.hoverBackground","Background color of activated options in input fields.")),g("inputOption.activeBackground",{dark:Ci(_,.4),light:Ci(_,.2),hcDark:o.Il.transparent,hcLight:o.Il.transparent},a.NC("inputOption.activeBackground","Background hover color of options in input fields."))),E=g("inputOption.activeForeground",{dark:o.Il.white,light:o.Il.black,hcDark:null,hcLight:p},a.NC("inputOption.activeForeground","Foreground color of activated options in input fields.")),I=(g("input.placeholderForeground",{light:Ci(p,.5),dark:Ci(p,.5),hcDark:Ci(p,.7),hcLight:Ci(p,.7)},a.NC("inputPlaceholderForeground","Input box foreground color for placeholder text.")),g("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:o.Il.black,hcLight:o.Il.white},a.NC("inputValidationInfoBackground","Input validation background color for information severity."))),T=g("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:p},a.NC("inputValidationInfoForeground","Input validation foreground color for information severity.")),M=g("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:v,hcLight:v},a.NC("inputValidationInfoBorder","Input validation border color for information severity.")),A=g("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:o.Il.black,hcLight:o.Il.white},a.NC("inputValidationWarningBackground","Input validation background color for warning severity.")),R=g("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:p},a.NC("inputValidationWarningForeground","Input validation foreground color for warning severity.")),O=g("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:v,hcLight:v},a.NC("inputValidationWarningBorder","Input validation border color for warning severity.")),P=g("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:o.Il.black,hcLight:o.Il.white},a.NC("inputValidationErrorBackground","Input validation background color for error severity.")),F=g("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:p},a.NC("inputValidationErrorForeground","Input validation foreground color for error severity.")),B=g("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:v,hcLight:v},a.NC("inputValidationErrorBorder","Input validation border color for error severity.")),V=g("dropdown.background",{dark:"#3C3C3C",light:o.Il.white,hcDark:o.Il.black,hcLight:o.Il.white},a.NC("dropdownBackground","Dropdown background.")),W=(g("dropdown.listBackground",{dark:null,light:null,hcDark:o.Il.black,hcLight:o.Il.white},a.NC("dropdownListBackground","Dropdown list background.")),g("dropdown.foreground",{dark:"#F0F0F0",light:null,hcDark:o.Il.white,hcLight:p},a.NC("dropdownForeground","Dropdown foreground."))),H=g("dropdown.border",{dark:V,light:"#CECECE",hcDark:v,hcLight:v},a.NC("dropdownBorder","Dropdown border.")),z=(g("checkbox.background",{dark:V,light:V,hcDark:V,hcLight:V},a.NC("checkbox.background","Background color of checkbox widget.")),g("checkbox.foreground",{dark:W,light:W,hcDark:W,hcLight:W},a.NC("checkbox.foreground","Foreground color of checkbox widget.")),g("checkbox.border",{dark:H,light:H,hcDark:H,hcLight:H},a.NC("checkbox.border","Border color of checkbox widget.")),g("button.foreground",{dark:o.Il.white,light:o.Il.white,hcDark:o.Il.white,hcLight:o.Il.white},a.NC("buttonForeground","Button foreground color."))),j=(g("button.separator",{dark:Ci(z,.4),light:Ci(z,.4),hcDark:Ci(z,.4),hcLight:Ci(z,.4)},a.NC("buttonSeparator","Button separator color.")),g("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},a.NC("buttonBackground","Button background color."))),K=g("button.hoverBackground",{dark:bi(j,.2),light:vi(j,.2),hcDark:null,hcLight:null},a.NC("buttonHoverBackground","Button background color when hovering.")),U=(g("button.border",{dark:v,light:v,hcDark:v,hcLight:v},a.NC("buttonBorder","Button border color.")),g("button.secondaryForeground",{dark:o.Il.white,light:o.Il.white,hcDark:o.Il.white,hcLight:p},a.NC("buttonSecondaryForeground","Secondary button foreground color.")),g("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:o.Il.white},a.NC("buttonSecondaryBackground","Secondary button background color."))),$=(g("button.secondaryHoverBackground",{dark:bi(U,.2),light:vi(U,.2),hcDark:null,hcLight:null},a.NC("buttonSecondaryHoverBackground","Secondary button background color when hovering.")),g("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:o.Il.black,hcLight:"#0F4A85"},a.NC("badgeBackground","Badge background color. Badges are small information labels, e.g. for search results count."))),q=g("badge.foreground",{dark:o.Il.white,light:"#333",hcDark:o.Il.white,hcLight:o.Il.white},a.NC("badgeForeground","Badge foreground color. Badges are small information labels, e.g. for search results count.")),G=g("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},a.NC("scrollbarShadow","Scrollbar shadow to indicate that the view is scrolled.")),Q=g("scrollbarSlider.background",{dark:o.Il.fromHex("#797979").transparent(.4),light:o.Il.fromHex("#646464").transparent(.4),hcDark:Ci(v,.6),hcLight:Ci(v,.4)},a.NC("scrollbarSliderBackground","Scrollbar slider background color.")),Z=g("scrollbarSlider.hoverBackground",{dark:o.Il.fromHex("#646464").transparent(.7),light:o.Il.fromHex("#646464").transparent(.7),hcDark:Ci(v,.8),hcLight:Ci(v,.8)},a.NC("scrollbarSliderHoverBackground","Scrollbar slider background color when hovering.")),Y=g("scrollbarSlider.activeBackground",{dark:o.Il.fromHex("#BFBFBF").transparent(.4),light:o.Il.fromHex("#000000").transparent(.6),hcDark:v,hcLight:v},a.NC("scrollbarSliderActiveBackground","Scrollbar slider background color when clicked on.")),J=g("progressBar.background",{dark:o.Il.fromHex("#0E70C0"),light:o.Il.fromHex("#0E70C0"),hcDark:v,hcLight:v},a.NC("progressBarBackground","Background color of the progress bar that can show for long running operations.")),X=g("editorError.background",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("editorError.background","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),ee=g("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},a.NC("editorError.foreground","Foreground color of error squigglies in the editor.")),te=g("editorError.border",{dark:null,light:null,hcDark:o.Il.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},a.NC("errorBorder","Border color of error boxes in the editor.")),ie=g("editorWarning.background",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("editorWarning.background","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),ne=g("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD37",hcLight:"#895503"},a.NC("editorWarning.foreground","Foreground color of warning squigglies in the editor.")),oe=g("editorWarning.border",{dark:null,light:null,hcDark:o.Il.fromHex("#FFCC00").transparent(.8),hcLight:"#"},a.NC("warningBorder","Border color of warning boxes in the editor.")),se=g("editorInfo.background",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("editorInfo.background","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),re=g("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},a.NC("editorInfo.foreground","Foreground color of info squigglies in the editor.")),ae=g("editorInfo.border",{dark:null,light:null,hcDark:o.Il.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},a.NC("infoBorder","Border color of info boxes in the editor.")),le=g("editorHint.foreground",{dark:o.Il.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},a.NC("editorHint.foreground","Foreground color of hint squigglies in the editor.")),ce=g("editorHint.border",{dark:null,light:null,hcDark:o.Il.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},a.NC("hintBorder","Border color of hint boxes in the editor.")),de=(g("sash.hoverBorder",{dark:_,light:_,hcDark:_,hcLight:_},a.NC("sashActiveBorder","Border color of active sashes.")),g("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:o.Il.black,hcLight:o.Il.white},a.NC("editorBackground","Editor background color."))),he=g("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:o.Il.white,hcLight:p},a.NC("editorForeground","Editor default foreground color.")),ue=(g("editorStickyScroll.background",{light:de,dark:de,hcDark:de,hcLight:de},a.NC("editorStickyScrollBackground","Sticky scroll background color for the editor")),g("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:o.Il.fromHex("#0F4A85").transparent(.1)},a.NC("editorStickyScrollHoverBackground","Sticky scroll on hover background color for the editor")),g("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:o.Il.white},a.NC("editorWidgetBackground","Background color of editor widgets, such as find/replace."))),ge=g("editorWidget.foreground",{dark:p,light:p,hcDark:p,hcLight:p},a.NC("editorWidgetForeground","Foreground color of editor widgets, such as find/replace.")),pe=g("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:v,hcLight:v},a.NC("editorWidgetBorder","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.")),me=g("editorWidget.resizeBorder",{light:null,dark:null,hcDark:null,hcLight:null},a.NC("editorWidgetResizeBorder","Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.")),fe=g("quickInput.background",{dark:ue,light:ue,hcDark:ue,hcLight:ue},a.NC("pickerBackground","Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),_e=g("quickInput.foreground",{dark:ge,light:ge,hcDark:ge,hcLight:ge},a.NC("pickerForeground","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),ve=g("quickInputTitle.background",{dark:new o.Il(new o.VS(255,255,255,.105)),light:new o.Il(new o.VS(0,0,0,.06)),hcDark:"#000000",hcLight:o.Il.white},a.NC("pickerTitleBackground","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),be=g("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:o.Il.white,hcLight:"#0F4A85"},a.NC("pickerGroupForeground","Quick picker color for grouping labels.")),Ce=g("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:o.Il.white,hcLight:"#0F4A85"},a.NC("pickerGroupBorder","Quick picker color for grouping borders.")),we=g("keybindingLabel.background",{dark:new o.Il(new o.VS(128,128,128,.17)),light:new o.Il(new o.VS(221,221,221,.4)),hcDark:o.Il.transparent,hcLight:o.Il.transparent},a.NC("keybindingLabelBackground","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),ye=g("keybindingLabel.foreground",{dark:o.Il.fromHex("#CCCCCC"),light:o.Il.fromHex("#555555"),hcDark:o.Il.white,hcLight:p},a.NC("keybindingLabelForeground","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),Se=g("keybindingLabel.border",{dark:new o.Il(new o.VS(51,51,51,.6)),light:new o.Il(new o.VS(204,204,204,.4)),hcDark:new o.Il(new o.VS(111,195,223)),hcLight:v},a.NC("keybindingLabelBorder","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),Le=g("keybindingLabel.bottomBorder",{dark:new o.Il(new o.VS(68,68,68,.6)),light:new o.Il(new o.VS(187,187,187,.4)),hcDark:new o.Il(new o.VS(111,195,223)),hcLight:p},a.NC("keybindingLabelBottomBorder","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),ke=g("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},a.NC("editorSelectionBackground","Color of the editor selection.")),xe=g("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:o.Il.white},a.NC("editorSelectionForeground","Color of the selected text for high contrast.")),De=g("editor.inactiveSelectionBackground",{light:Ci(ke,.5),dark:Ci(ke,.5),hcDark:Ci(ke,.7),hcLight:Ci(ke,.5)},a.NC("editorInactiveSelection","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),Ne=g("editor.selectionHighlightBackground",{light:yi(ke,de,.3,.6),dark:yi(ke,de,.3,.6),hcDark:null,hcLight:null},a.NC("editorSelectionHighlight","Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),!0),Ee=g("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:b,hcLight:b},a.NC("editorSelectionHighlightBorder","Border color for regions with the same content as the selection.")),Ie=g("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},a.NC("editorFindMatch","Color of the current search match.")),Te=g("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},a.NC("findMatchHighlight","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),Me=g("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},a.NC("findRangeHighlight","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),Ae=g("editor.findMatchBorder",{light:null,dark:null,hcDark:b,hcLight:b},a.NC("editorFindMatchBorder","Border color of the current search match.")),Re=g("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:b,hcLight:b},a.NC("findMatchHighlightBorder","Border color of the other search matches.")),Oe=g("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:Ci(b,.4),hcLight:Ci(b,.4)},a.NC("findRangeHighlightBorder","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),Pe=(g("searchEditor.findMatchBackground",{light:Ci(Te,.66),dark:Ci(Te,.66),hcDark:Te,hcLight:Te},a.NC("searchEditor.queryMatch","Color of the Search Editor query matches.")),g("searchEditor.findMatchBorder",{light:Ci(Re,.66),dark:Ci(Re,.66),hcDark:Re,hcLight:Re},a.NC("searchEditor.editorFindMatchBorder","Border color of the Search Editor query matches.")),g("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},a.NC("hoverHighlight","Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),!0)),Fe=g("editorHoverWidget.background",{light:ue,dark:ue,hcDark:ue,hcLight:ue},a.NC("hoverBackground","Background color of the editor hover.")),Be=g("editorHoverWidget.foreground",{light:ge,dark:ge,hcDark:ge,hcLight:ge},a.NC("hoverForeground","Foreground color of the editor hover.")),Ve=g("editorHoverWidget.border",{light:pe,dark:pe,hcDark:pe,hcLight:pe},a.NC("hoverBorder","Border color of the editor hover.")),We=g("editorHoverWidget.statusBarBackground",{dark:bi(Fe,.2),light:vi(Fe,.05),hcDark:ue,hcLight:ue},a.NC("statusBarBackground","Background color of the editor hover status bar.")),He=g("editorLink.activeForeground",{dark:"#4E94CE",light:o.Il.blue,hcDark:o.Il.cyan,hcLight:"#292929"},a.NC("activeLinkForeground","Color of active links.")),ze=g("editorInlayHint.foreground",{dark:Ci(q,.8),light:Ci(q,.8),hcDark:q,hcLight:q},a.NC("editorInlayHintForeground","Foreground color of inline hints")),je=g("editorInlayHint.background",{dark:Ci($,.6),light:Ci($,.3),hcDark:$,hcLight:$},a.NC("editorInlayHintBackground","Background color of inline hints")),Ke=g("editorInlayHint.typeForeground",{dark:ze,light:ze,hcDark:ze,hcLight:ze},a.NC("editorInlayHintForegroundTypes","Foreground color of inline hints for types")),Ue=g("editorInlayHint.typeBackground",{dark:je,light:je,hcDark:je,hcLight:je},a.NC("editorInlayHintBackgroundTypes","Background color of inline hints for types")),$e=g("editorInlayHint.parameterForeground",{dark:ze,light:ze,hcDark:ze,hcLight:ze},a.NC("editorInlayHintForegroundParameter","Foreground color of inline hints for parameters")),qe=g("editorInlayHint.parameterBackground",{dark:je,light:je,hcDark:je,hcLight:je},a.NC("editorInlayHintBackgroundParameter","Background color of inline hints for parameters")),Ge=g("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},a.NC("editorLightBulbForeground","The color used for the lightbulb actions icon.")),Qe=g("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},a.NC("editorLightBulbAutoFixForeground","The color used for the lightbulb auto fix actions icon.")),Ze=new o.Il(new o.VS(155,185,85,.2)),Ye=new o.Il(new o.VS(255,0,0,.2)),Je=g("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c66",hcDark:null,hcLight:null},a.NC("diffEditorInserted","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),Xe=g("diffEditor.removedTextBackground",{dark:"#ff000066",light:"#ff00004d",hcDark:null,hcLight:null},a.NC("diffEditorRemoved","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),et=g("diffEditor.insertedLineBackground",{dark:Ze,light:Ze,hcDark:null,hcLight:null},a.NC("diffEditorInsertedLines","Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),tt=g("diffEditor.removedLineBackground",{dark:Ye,light:Ye,hcDark:null,hcLight:null},a.NC("diffEditorRemovedLines","Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),it=g("diffEditorGutter.insertedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("diffEditorInsertedLineGutter","Background color for the margin where lines got inserted.")),nt=g("diffEditorGutter.removedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("diffEditorRemovedLineGutter","Background color for the margin where lines got removed.")),ot=g("diffEditorOverview.insertedForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("diffEditorOverviewInserted","Diff overview ruler foreground for inserted content.")),st=g("diffEditorOverview.removedForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("diffEditorOverviewRemoved","Diff overview ruler foreground for removed content.")),rt=g("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},a.NC("diffEditorInsertedOutline","Outline color for the text that got inserted.")),at=g("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},a.NC("diffEditorRemovedOutline","Outline color for text that got removed.")),lt=g("diffEditor.border",{dark:null,light:null,hcDark:v,hcLight:v},a.NC("diffEditorBorder","Border color between the two text editors.")),ct=g("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},a.NC("diffDiagonalFill","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.")),dt=g("list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listFocusBackground","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),ht=g("list.focusForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listFocusForeground","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),ut=g("list.focusOutline",{dark:_,light:_,hcDark:b,hcLight:b},a.NC("listFocusOutline","List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),gt=g("list.focusAndSelectionOutline",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listFocusAndSelectionOutline","List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.")),pt=g("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:o.Il.fromHex("#0F4A85").transparent(.1)},a.NC("listActiveSelectionBackground","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),mt=g("list.activeSelectionForeground",{dark:o.Il.white,light:o.Il.white,hcDark:null,hcLight:null},a.NC("listActiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),ft=g("list.activeSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listActiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),_t=g("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:o.Il.fromHex("#0F4A85").transparent(.1)},a.NC("listInactiveSelectionBackground","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),vt=g("list.inactiveSelectionForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listInactiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),bt=g("list.inactiveSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listInactiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),Ct=g("list.inactiveFocusBackground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listInactiveFocusBackground","List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),wt=g("list.inactiveFocusOutline",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listInactiveFocusOutline","List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),yt=g("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:o.Il.fromHex("#0F4A85").transparent(.1)},a.NC("listHoverBackground","List/Tree background when hovering over items using the mouse.")),St=g("list.hoverForeground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("listHoverForeground","List/Tree foreground when hovering over items using the mouse.")),Lt=g("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},a.NC("listDropBackground","List/Tree drag and drop background when moving items around using the mouse.")),kt=g("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:_,hcLight:_},a.NC("highlight","List/Tree foreground color of the match highlights when searching inside the list/tree.")),xt=g("list.focusHighlightForeground",{dark:kt,light:(Dt=pt,Nt=kt,Et="#BBE7FF",{op:5,if:Dt,then:Nt,else:Et}),hcDark:kt,hcLight:kt},a.NC("listFocusHighlightForeground","List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree."));var Dt,Nt,Et;g("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},a.NC("invalidItemForeground","List/Tree foreground color for invalid items, for example an unresolved root in explorer.")),g("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},a.NC("listErrorForeground","Foreground color of list items containing errors.")),g("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},a.NC("listWarningForeground","Foreground color of list items containing warnings."));const It=g("listFilterWidget.background",{light:vi(ue,0),dark:bi(ue,0),hcDark:ue,hcLight:ue},a.NC("listFilterWidgetBackground","Background color of the type filter widget in lists and trees.")),Tt=g("listFilterWidget.outline",{dark:o.Il.transparent,light:o.Il.transparent,hcDark:"#f38518",hcLight:"#007ACC"},a.NC("listFilterWidgetOutline","Outline color of the type filter widget in lists and trees.")),Mt=g("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:v,hcLight:v},a.NC("listFilterWidgetNoMatchesOutline","Outline color of the type filter widget in lists and trees, when there are no matches.")),At=g("listFilterWidget.shadow",{dark:S,light:S,hcDark:S,hcLight:S},a.NC("listFilterWidgetShadow","Shadown color of the type filter widget in lists and trees.")),Rt=(g("list.filterMatchBackground",{dark:Te,light:Te,hcDark:null,hcLight:null},a.NC("listFilterMatchHighlight","Background color of the filtered match.")),g("list.filterMatchBorder",{dark:Re,light:Re,hcDark:v,hcLight:b},a.NC("listFilterMatchHighlightBorder","Border color of the filtered match.")),g("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},a.NC("treeIndentGuidesStroke","Tree stroke color for the indentation guides."))),Ot=g("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},a.NC("tableColumnsBorder","Table border color between columns.")),Pt=g("tree.tableOddRowsBackground",{dark:Ci(p,.04),light:Ci(p,.04),hcDark:null,hcLight:null},a.NC("tableOddRowsBackgroundColor","Background color for odd table rows.")),Ft=(g("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},a.NC("listDeemphasizedForeground","List/Tree foreground color for items that are deemphasized. ")),g("quickInput.list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},"",void 0,a.NC("quickInput.list.focusBackground deprecation","Please use quickInputList.focusBackground instead"))),Bt=g("quickInputList.focusForeground",{dark:mt,light:mt,hcDark:mt,hcLight:mt},a.NC("quickInput.listFocusForeground","Quick picker foreground color for the focused item.")),Vt=g("quickInputList.focusIconForeground",{dark:ft,light:ft,hcDark:ft,hcLight:ft},a.NC("quickInput.listFocusIconForeground","Quick picker icon foreground color for the focused item.")),Wt=g("quickInputList.focusBackground",{dark:wi(Ft,pt),light:wi(Ft,pt),hcDark:null,hcLight:null},a.NC("quickInput.listFocusBackground","Quick picker background color for the focused item.")),Ht=g("menu.border",{dark:null,light:null,hcDark:v,hcLight:v},a.NC("menuBorder","Border color of menus.")),zt=g("menu.foreground",{dark:W,light:p,hcDark:W,hcLight:W},a.NC("menuForeground","Foreground color of menu items.")),jt=g("menu.background",{dark:V,light:V,hcDark:V,hcLight:V},a.NC("menuBackground","Background color of menu items.")),Kt=g("menu.selectionForeground",{dark:mt,light:mt,hcDark:mt,hcLight:mt},a.NC("menuSelectionForeground","Foreground color of the selected menu item in menus.")),Ut=g("menu.selectionBackground",{dark:pt,light:pt,hcDark:pt,hcLight:pt},a.NC("menuSelectionBackground","Background color of the selected menu item in menus.")),$t=g("menu.selectionBorder",{dark:null,light:null,hcDark:b,hcLight:b},a.NC("menuSelectionBorder","Border color of the selected menu item in menus.")),qt=g("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:v,hcLight:v},a.NC("menuSeparatorBackground","Color of a separator menu item in menus.")),Gt=g("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},a.NC("toolbarHoverBackground","Toolbar background when hovering over actions using the mouse")),Qt=(g("toolbar.hoverOutline",{dark:null,light:null,hcDark:b,hcLight:b},a.NC("toolbarHoverOutline","Toolbar outline when hovering over actions using the mouse")),g("toolbar.activeBackground",{dark:bi(Gt,.1),light:vi(Gt,.1),hcDark:null,hcLight:null},a.NC("toolbarActiveBackground","Toolbar background when holding the mouse over actions")),g("editor.snippetTabstopHighlightBackground",{dark:new o.Il(new o.VS(124,124,124,.3)),light:new o.Il(new o.VS(10,50,100,.2)),hcDark:new o.Il(new o.VS(124,124,124,.3)),hcLight:new o.Il(new o.VS(10,50,100,.2))},a.NC("snippetTabstopHighlightBackground","Highlight background color of a snippet tabstop.")),g("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("snippetTabstopHighlightBorder","Highlight border color of a snippet tabstop.")),g("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("snippetFinalTabstopHighlightBackground","Highlight background color of the final tabstop of a snippet.")),g("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new o.Il(new o.VS(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},a.NC("snippetFinalTabstopHighlightBorder","Highlight border color of the final tabstop of a snippet.")),g("breadcrumb.foreground",{light:Ci(p,.8),dark:Ci(p,.8),hcDark:Ci(p,.8),hcLight:Ci(p,.8)},a.NC("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),g("breadcrumb.background",{light:de,dark:de,hcDark:de,hcLight:de},a.NC("breadcrumbsBackground","Background color of breadcrumb items.")),g("breadcrumb.focusForeground",{light:vi(p,.2),dark:bi(p,.1),hcDark:bi(p,.1),hcLight:bi(p,.1)},a.NC("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),g("breadcrumb.activeSelectionForeground",{light:vi(p,.2),dark:bi(p,.1),hcDark:bi(p,.1),hcLight:bi(p,.1)},a.NC("breadcrumbsSelectedForeground","Color of selected breadcrumb items.")),g("breadcrumbPicker.background",{light:ue,dark:ue,hcDark:ue,hcLight:ue},a.NC("breadcrumbsSelectedBackground","Background color of breadcrumb item picker.")),o.Il.fromHex("#40C8AE").transparent(.5)),Zt=o.Il.fromHex("#40A6FF").transparent(.5),Yt=o.Il.fromHex("#606060").transparent(.4),Jt=.4,Xt=g("merge.currentHeaderBackground",{dark:Qt,light:Qt,hcDark:null,hcLight:null},a.NC("mergeCurrentHeaderBackground","Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),ei=(g("merge.currentContentBackground",{dark:Ci(Xt,Jt),light:Ci(Xt,Jt),hcDark:Ci(Xt,Jt),hcLight:Ci(Xt,Jt)},a.NC("mergeCurrentContentBackground","Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),g("merge.incomingHeaderBackground",{dark:Zt,light:Zt,hcDark:null,hcLight:null},a.NC("mergeIncomingHeaderBackground","Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0)),ti=(g("merge.incomingContentBackground",{dark:Ci(ei,Jt),light:Ci(ei,Jt),hcDark:Ci(ei,Jt),hcLight:Ci(ei,Jt)},a.NC("mergeIncomingContentBackground","Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),g("merge.commonHeaderBackground",{dark:Yt,light:Yt,hcDark:null,hcLight:null},a.NC("mergeCommonHeaderBackground","Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0)),ii=(g("merge.commonContentBackground",{dark:Ci(ti,Jt),light:Ci(ti,Jt),hcDark:Ci(ti,Jt),hcLight:Ci(ti,Jt)},a.NC("mergeCommonContentBackground","Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),g("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},a.NC("mergeBorder","Border color on headers and the splitter in inline merge-conflicts."))),ni=(g("editorOverviewRuler.currentContentForeground",{dark:Ci(Xt,1),light:Ci(Xt,1),hcDark:ii,hcLight:ii},a.NC("overviewRulerCurrentContentForeground","Current overview ruler foreground for inline merge-conflicts.")),g("editorOverviewRuler.incomingContentForeground",{dark:Ci(ei,1),light:Ci(ei,1),hcDark:ii,hcLight:ii},a.NC("overviewRulerIncomingContentForeground","Incoming overview ruler foreground for inline merge-conflicts.")),g("editorOverviewRuler.commonContentForeground",{dark:Ci(ti,1),light:Ci(ti,1),hcDark:ii,hcLight:ii},a.NC("overviewRulerCommonContentForeground","Common ancestor overview ruler foreground for inline merge-conflicts.")),g("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:""},a.NC("overviewRulerFindMatchForeground","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0)),oi=g("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},a.NC("overviewRulerSelectionHighlightForeground","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),si=g("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},a.NC("minimapFindMatchHighlight","Minimap marker color for find matches."),!0),ri=g("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},a.NC("minimapSelectionOccurrenceHighlight","Minimap marker color for repeating editor selections."),!0),ai=g("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},a.NC("minimapSelectionHighlight","Minimap marker color for the editor selection."),!0),li=g("minimap.errorHighlight",{dark:new o.Il(new o.VS(255,18,18,.7)),light:new o.Il(new o.VS(255,18,18,.7)),hcDark:new o.Il(new o.VS(255,50,50,1)),hcLight:"#B5200D"},a.NC("minimapError","Minimap marker color for errors.")),ci=g("minimap.warningHighlight",{dark:ne,light:ne,hcDark:oe,hcLight:oe},a.NC("overviewRuleWarning","Minimap marker color for warnings.")),di=g("minimap.background",{dark:null,light:null,hcDark:null,hcLight:null},a.NC("minimapBackground","Minimap background color.")),hi=g("minimap.foregroundOpacity",{dark:o.Il.fromHex("#000f"),light:o.Il.fromHex("#000f"),hcDark:o.Il.fromHex("#000f"),hcLight:o.Il.fromHex("#000f")},a.NC("minimapForegroundOpacity",'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.')),ui=g("minimapSlider.background",{light:Ci(Q,.5),dark:Ci(Q,.5),hcDark:Ci(Q,.5),hcLight:Ci(Q,.5)},a.NC("minimapSliderBackground","Minimap slider background color.")),gi=g("minimapSlider.hoverBackground",{light:Ci(Z,.5),dark:Ci(Z,.5),hcDark:Ci(Z,.5),hcLight:Ci(Z,.5)},a.NC("minimapSliderHoverBackground","Minimap slider background color when hovering.")),pi=g("minimapSlider.activeBackground",{light:Ci(Y,.5),dark:Ci(Y,.5),hcDark:Ci(Y,.5),hcLight:Ci(Y,.5)},a.NC("minimapSliderActiveBackground","Minimap slider background color when clicked on.")),mi=g("problemsErrorIcon.foreground",{dark:ee,light:ee,hcDark:ee,hcLight:ee},a.NC("problemsErrorIconForeground","The color used for the problems error icon.")),fi=g("problemsWarningIcon.foreground",{dark:ne,light:ne,hcDark:ne,hcLight:ne},a.NC("problemsWarningIconForeground","The color used for the problems warning icon.")),_i=g("problemsInfoIcon.foreground",{dark:re,light:re,hcDark:re,hcLight:re},a.NC("problemsInfoIconForeground","The color used for the problems info icon."));g("charts.foreground",{dark:p,light:p,hcDark:p,hcLight:p},a.NC("chartsForeground","The foreground color used in charts.")),g("charts.lines",{dark:Ci(p,.5),light:Ci(p,.5),hcDark:Ci(p,.5),hcLight:Ci(p,.5)},a.NC("chartsLines","The color used for horizontal lines in charts.")),g("charts.red",{dark:ee,light:ee,hcDark:ee,hcLight:ee},a.NC("chartsRed","The red color used in chart visualizations.")),g("charts.blue",{dark:re,light:re,hcDark:re,hcLight:re},a.NC("chartsBlue","The blue color used in chart visualizations.")),g("charts.yellow",{dark:ne,light:ne,hcDark:ne,hcLight:ne},a.NC("chartsYellow","The yellow color used in chart visualizations.")),g("charts.orange",{dark:si,light:si,hcDark:si,hcLight:si},a.NC("chartsOrange","The orange color used in chart visualizations.")),g("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},a.NC("chartsGreen","The green color used in chart visualizations.")),g("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},a.NC("chartsPurple","The purple color used in chart visualizations."));function vi(e,t){return{op:0,value:e,factor:t}}function bi(e,t){return{op:1,value:e,factor:t}}function Ci(e,t){return{op:2,value:e,factor:t}}function wi(...e){return{op:3,values:e}}function yi(e,t,i,n){return{op:4,value:e,background:t,factor:i,transparency:n}}function Si(e,t){if(null!==e)return"string"==typeof e?"#"===e[0]?o.Il.fromHex(e):t.getColor(e):e instanceof o.Il?e:"object"==typeof e?function(e,t){var i,n,s;switch(e.op){case 0:return null===(i=Si(e.value,t))||void 0===i?void 0:i.darken(e.factor);case 1:return null===(n=Si(e.value,t))||void 0===n?void 0:n.lighten(e.factor);case 2:return null===(s=Si(e.value,t))||void 0===s?void 0:s.transparent(e.factor);case 3:for(const i of e.values){const e=Si(i,t);if(e)return e}return;case 5:return Si(t.defines(e.if)?e.then:e.else,t);case 4:{const i=Si(e.value,t);if(!i)return;const n=Si(e.background,t);return n?i.isDarkerThan(n)?o.Il.getLighterColor(i,n,e.factor).transparent(e.transparency):o.Il.getDarkerColor(i,n,e.factor).transparent(e.transparency):i.transparent(e.factor*e.transparency)}default:throw(0,r.vE)(e)}}(e,t):void 0}const Li="vscode://schemas/workbench-colors",ki=c.B.as(l.I.JSONContribution);ki.registerSchema(Li,u.getColorSchema());const xi=new n.pY((()=>ki.notifySchemaChanged(Li)),200);u.onDidChangeSchema((()=>{xi.isScheduled()||xi.schedule()}))},59554:(e,t,i)=>{"use strict";i.d(t,{Ks:()=>f,q5:()=>m,s_:()=>C});var n=i(15393),o=i(73046),s=i(4669),r=i(98401),a=i(70666),l=i(63580),c=i(81294),d=i(89872),h=i(97781);var u,g;!function(e){e.getDefinition=function(e,t){let i=e.defaults;for(;h.kS.isThemeIcon(i);){const e=p.getIcon(i.id);if(!e)return;i=e.defaults}return i}}(u||(u={})),function(e){e.toJSONObject=function(e){return{weight:e.weight,style:e.style,src:e.src.map((e=>({format:e.format,location:e.location.toString()})))}},e.fromJSONObject=function(e){const t=e=>(0,r.HD)(e)?e:void 0;if(e&&Array.isArray(e.src)&&e.src.every((e=>(0,r.HD)(e.format)&&(0,r.HD)(e.location))))return{weight:t(e.weight),style:t(e.style),src:e.src.map((e=>({format:e.format,location:a.o.parse(e.location)})))}}}(g||(g={}));const p=new class{constructor(){this._onDidChange=new s.Q5,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:(0,l.NC)("iconDefinition.fontId","The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:(0,l.NC)("iconDefinition.fontCharacter","The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:`^${o.dT.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(e,t,i,n){const o=this.iconsById[e];if(o){if(i&&!o.description){o.description=i,this.iconSchema.properties[e].markdownDescription=`${i} $(${e})`;const t=this.iconReferenceSchema.enum.indexOf(e);-1!==t&&(this.iconReferenceSchema.enumDescriptions[t]=i),this._onDidChange.fire()}return o}const s={id:e,description:i,defaults:t,deprecationMessage:n};this.iconsById[e]=s;const r={$ref:"#/definitions/icons"};return n&&(r.deprecationMessage=n),i&&(r.markdownDescription=`${i}: $(${e})`),this.iconSchema.properties[e]=r,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(i||""),this._onDidChange.fire(),{id:e}}getIcons(){return Object.keys(this.iconsById).map((e=>this.iconsById[e]))}getIcon(e){return this.iconsById[e]}getIconSchema(){return this.iconSchema}toString(){const e=(e,t)=>e.id.localeCompare(t.id),t=e=>{for(;h.kS.isThemeIcon(e.defaults);)e=this.iconsById[e.defaults.id];return`codicon codicon-${e?e.id:""}`},i=[];i.push("| preview | identifier | default codicon ID | description"),i.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const n=Object.keys(this.iconsById).map((e=>this.iconsById[e]));for(const o of n.filter((e=>!!e.description)).sort(e))i.push(`||${o.id}|${h.kS.isThemeIcon(o.defaults)?o.defaults.id:o.id}|${o.description||""}|`);i.push("| preview | identifier "),i.push("| ----------- | --------------------------------- |");for(const o of n.filter((e=>!h.kS.isThemeIcon(e.defaults))).sort(e))i.push(`||${o.id}|`);return i.join("\n")}};function m(e,t,i,n){return p.registerIcon(e,t,i,n)}function f(){return p}d.B.add("base.contributions.icons",p),function(){for(const e of o.lA.getAll())p.registerIcon(e.id,e.definition,e.description)}();const _="vscode://schemas/icons",v=d.B.as(c.I.JSONContribution);v.registerSchema(_,p.getIconSchema());const b=new n.pY((()=>v.notifySchemaChanged(_)),200);p.onDidChange((()=>{b.isScheduled()||b.schedule()}));const C=m("widget-close",o.lA.close,(0,l.NC)("widgetClose","Icon for the close action in widgets."));m("goto-previous-location",o.lA.arrowUp,(0,l.NC)("previousChangeIcon","Icon for goto previous editor location.")),m("goto-next-location",o.lA.arrowDown,(0,l.NC)("nextChangeIcon","Icon for goto next editor location.")),h.kS.modify(o.lA.sync,"spin"),h.kS.modify(o.lA.loading,"spin")},88810:(e,t,i)=>{"use strict";i.d(t,{Jl:()=>a,O2:()=>l,WZ:()=>r,o:()=>o,tj:()=>d});var n=i(73910);function o(e,t){const i=Object.create(null);for(const o in t){const s=t[o];s&&(i[o]=(0,n.Snq)(s,e))}return i}function s(e,t,i){function n(){const n=o(e.getColorTheme(),t);"function"==typeof i?i(n):i.style(n)}return n(),e.onDidColorThemeChange(n)}function r(e,t,i){return s(t,{badgeBackground:(null==i?void 0:i.badgeBackground)||n.g8u,badgeForeground:(null==i?void 0:i.badgeForeground)||n.qeD,badgeBorder:n.lRK},e)}function a(e,t,i){return s(t,Object.assign(Object.assign({},l),i||{}),e)}const l={listFocusBackground:n._bK,listFocusForeground:n._2n,listFocusOutline:n.Oop,listActiveSelectionBackground:n.dCr,listActiveSelectionForeground:n.M6C,listActiveSelectionIconForeground:n.Tnx,listFocusAndSelectionOutline:n.Bqu,listFocusAndSelectionBackground:n.dCr,listFocusAndSelectionForeground:n.M6C,listInactiveSelectionBackground:n.rg2,listInactiveSelectionIconForeground:n.kvU,listInactiveSelectionForeground:n.ytC,listInactiveFocusBackground:n.s$,listInactiveFocusOutline:n.F3d,listHoverBackground:n.mV1,listHoverForeground:n.$d5,listDropBackground:n.AS1,listSelectionOutline:n.xL1,listHoverOutline:n.xL1,listFilterWidgetBackground:n.vGG,listFilterWidgetOutline:n.oSI,listFilterWidgetNoMatchesOutline:n.Saq,listFilterWidgetShadow:n.y65,treeIndentGuidesStroke:n.UnT,tableColumnsBorder:n.uxu,tableOddRowsBackgroundColor:n.EQn,inputActiveOptionBorder:n.PRb,inputActiveOptionForeground:n.Pvw,inputActiveOptionBackground:n.XEs,inputBackground:n.sEe,inputForeground:n.zJb,inputBorder:n.dt_,inputValidationInfoBackground:n._lC,inputValidationInfoForeground:n.YI3,inputValidationInfoBorder:n.EPQ,inputValidationWarningBackground:n.RV_,inputValidationWarningForeground:n.SUG,inputValidationWarningBorder:n.C3g,inputValidationErrorBackground:n.paE,inputValidationErrorForeground:n._t9,inputValidationErrorBorder:n.OZR},c={shadowColor:n.rh,borderColor:n.Cdg,foregroundColor:n.DEr,backgroundColor:n.Hz8,selectionForegroundColor:n.jbW,selectionBackgroundColor:n.$DX,selectionBorderColor:n.E3h,separatorColor:n.ZGJ,scrollbarShadow:n._wn,scrollbarSliderBackground:n.etL,scrollbarSliderHoverBackground:n.ABB,scrollbarSliderActiveBackground:n.ynu};function d(e,t,i){return s(t,Object.assign(Object.assign({},c),i),e)}},92321:(e,t,i)=>{"use strict";var n;function o(e){return e===n.HIGH_CONTRAST_DARK||e===n.HIGH_CONTRAST_LIGHT}function s(e){return e===n.DARK||e===n.HIGH_CONTRAST_DARK}i.d(t,{_T:()=>s,c3:()=>o,eL:()=>n}),function(e){e.DARK="dark",e.LIGHT="light",e.HIGH_CONTRAST_DARK="hcDark",e.HIGH_CONTRAST_LIGHT="hcLight"}(n||(n={}))},97781:(e,t,i)=>{"use strict";i.d(t,{EN:()=>u,IP:()=>p,Ic:()=>f,XE:()=>c,bB:()=>_,kS:()=>h,m6:()=>g});var n=i(73046),o=i(4669),s=i(5976),r=i(72065),a=i(89872),l=i(92321);const c=(0,r.yh)("themeService");var d,h;function u(e){return{id:e}}function g(e){switch(e){case l.eL.DARK:return"vs-dark";case l.eL.HIGH_CONTRAST_DARK:return"hc-black";case l.eL.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}!function(e){e.isThemeColor=function(e){return e&&"object"==typeof e&&"string"==typeof e.id}}(d||(d={})),function(e){e.isThemeIcon=function(e){return e&&"object"==typeof e&&"string"==typeof e.id&&(void 0===e.color||d.isThemeColor(e.color))};const t=new RegExp(`^\\$\\((${n.dT.iconNameExpression}(?:${n.dT.iconModifierExpression})?)\\)$`);e.fromString=function(e){const i=t.exec(e);if(!i)return;const[,n]=i;return{id:n}},e.fromId=function(e){return{id:e}},e.modify=function(e,t){let i=e.id;const n=i.lastIndexOf("~");return-1!==n&&(i=i.substring(0,n)),t&&(i=`${i}~${t}`),{id:i}},e.getModifier=function(e){const t=e.id.lastIndexOf("~");if(-1!==t)return e.id.substring(t+1)},e.isEqual=function(e,t){var i,n;return e.id===t.id&&(null===(i=e.color)||void 0===i?void 0:i.id)===(null===(n=t.color)||void 0===n?void 0:n.id)},e.asThemeIcon=function(e,t){return{id:e.id,color:t?u(t):void 0}},e.asClassNameArray=n.dT.asClassNameArray,e.asClassName=n.dT.asClassName,e.asCSSSelector=n.dT.asCSSSelector}(h||(h={}));const p={ThemingContribution:"base.contributions.theming"};const m=new class{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new o.Q5}onColorThemeChange(e){return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),(0,s.OF)((()=>{const t=this.themingParticipants.indexOf(e);this.themingParticipants.splice(t,1)}))}getThemingParticipants(){return this.themingParticipants}};function f(e){return m.onColorThemeChange(e)}a.B.add(p.ThemingContribution,m);class _ extends s.JT{constructor(e){super(),this.themeService=e,this.theme=e.getColorTheme(),this._register(this.themeService.onDidColorThemeChange((e=>this.onThemeChange(e))))}onThemeChange(e){this.theme=e,this.updateStyles()}updateStyles(){}}},64862:(e,t,i)=>{"use strict";i.d(t,{Xt:()=>s,YO:()=>o,gJ:()=>r,tJ:()=>n});const n=(0,i(72065).yh)("undoRedoService");class o{constructor(e,t){this.resource=e,this.elements=t}}class s{constructor(){this.id=s._ID++,this.order=1}nextOrder(){return 0===this.id?0:this.order++}}s._ID=0,s.None=new s;class r{constructor(){this.id=r._ID++,this.order=1}nextOrder(){return 0===this.id?0:this.order++}}r._ID=0,r.None=new r},40382:(e,t,i)=>{"use strict";i.d(t,{A6:()=>c,eb:()=>r,ec:()=>s,md:()=>l,uT:()=>a});var n=i(63580),o=(i(43702),i(70666));const s=(0,i(72065).yh)("contextService");function r(e){const t=e;return"string"==typeof(null==t?void 0:t.id)&&o.o.isUri(t.uri)}function a(e){return e.configuration?{id:e.id,configPath:e.configuration}:1===e.folders.length?{id:e.id,uri:e.folders[0].uri}:void 0}class l{constructor(e,t){this.raw=t,this.uri=e.uri,this.index=e.index,this.name=e.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}const c="code-workspace";(0,n.NC)("codeWorkspace","Code Workspace")},33425:(e,t,i)=>{"use strict";i.d(t,{Y:()=>n});const n=(0,i(72065).yh)("workspaceTrustManagementService")},55171:function(e,t,i){var n;e.exports=(n=i(67294),function(e){var t={};function i(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)i.d(n,o,function(t){return e[t]}.bind(null,o));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=48)}([function(e,t){e.exports=n},function(e,t){var i=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=i)},function(e,t,i){var n=i(26)("wks"),o=i(17),s=i(3).Symbol,r="function"==typeof s;(e.exports=function(e){return n[e]||(n[e]=r&&s[e]||(r?s:o)("Symbol."+e))}).store=n},function(e,t){var i=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(e,t,i){e.exports=!i(8)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t){var i={}.hasOwnProperty;e.exports=function(e,t){return i.call(e,t)}},function(e,t,i){var n=i(7),o=i(16);e.exports=i(4)?function(e,t,i){return n.f(e,t,o(1,i))}:function(e,t,i){return e[t]=i,e}},function(e,t,i){var n=i(10),o=i(35),s=i(23),r=Object.defineProperty;t.f=i(4)?Object.defineProperty:function(e,t,i){if(n(e),t=s(t,!0),n(i),o)try{return r(e,t,i)}catch(e){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(e[t]=i.value),e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,i){var n=i(40),o=i(22);e.exports=function(e){return n(o(e))}},function(e,t,i){var n=i(11);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports={}},function(e,t,i){var n=i(39),o=i(27);e.exports=Object.keys||function(e){return n(e,o)}},function(e,t){e.exports=!0},function(e,t,i){var n=i(3),o=i(1),s=i(53),r=i(6),a=i(5),l=function(e,t,i){var c,d,h,u=e&l.F,g=e&l.G,p=e&l.S,m=e&l.P,f=e&l.B,_=e&l.W,v=g?o:o[t]||(o[t]={}),b=v.prototype,C=g?n:p?n[t]:(n[t]||{}).prototype;for(c in g&&(i=t),i)(d=!u&&C&&void 0!==C[c])&&a(v,c)||(h=d?C[c]:i[c],v[c]=g&&"function"!=typeof C[c]?i[c]:f&&d?s(h,n):_&&C[c]==h?function(e){var t=function(t,i,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,i)}return new e(t,i,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(h):m&&"function"==typeof h?s(Function.call,h):h,m&&((v.virtual||(v.virtual={}))[c]=h,e&l.R&&b&&!b[c]&&r(b,c,h)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){var i=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++i+n).toString(36))}},function(e,t,i){var n=i(22);e.exports=function(e){return Object(n(e))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,i){"use strict";var n=i(52)(!0);i(34)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,i=this._i;return i>=t.length?{value:void 0,done:!0}:(e=n(t,i),this._i+=e.length,{value:e,done:!1})}))},function(e,t){var i=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:i)(e)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,i){var n=i(11);e.exports=function(e,t){if(!n(e))return e;var i,o;if(t&&"function"==typeof(i=e.toString)&&!n(o=i.call(e)))return o;if("function"==typeof(i=e.valueOf)&&!n(o=i.call(e)))return o;if(!t&&"function"==typeof(i=e.toString)&&!n(o=i.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){var i={}.toString;e.exports=function(e){return i.call(e).slice(8,-1)}},function(e,t,i){var n=i(26)("keys"),o=i(17);e.exports=function(e){return n[e]||(n[e]=o(e))}},function(e,t,i){var n=i(1),o=i(3),s=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return s[e]||(s[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:i(14)?"pure":"global",copyright:"\xa9 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,i){var n=i(7).f,o=i(5),s=i(2)("toStringTag");e.exports=function(e,t,i){e&&!o(e=i?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},function(e,t,i){i(62);for(var n=i(3),o=i(6),s=i(12),r=i(2)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;ldocument.F=Object<\/script>"),e.close(),l=e.F;n--;)delete l.prototype[s[n]];return l()};e.exports=Object.create||function(e,t){var i;return null!==e?(a.prototype=n(e),i=new a,a.prototype=null,i[r]=e):i=l(),void 0===t?i:o(i,t)}},function(e,t,i){var n=i(5),o=i(9),s=i(57)(!1),r=i(25)("IE_PROTO");e.exports=function(e,t){var i,a=o(e),l=0,c=[];for(i in a)i!=r&&n(a,i)&&c.push(i);for(;t.length>l;)n(a,i=t[l++])&&(~s(c,i)||c.push(i));return c}},function(e,t,i){var n=i(24);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t,i){var n=i(39),o=i(27).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},function(e,t,i){var n=i(24),o=i(2)("toStringTag"),s="Arguments"==n(function(){return arguments}());e.exports=function(e){var t,i,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?i:s?n(t):"Object"==(r=n(t))&&"function"==typeof t.callee?"Arguments":r}},function(e,t){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(e){"object"==typeof window&&(i=window)}e.exports=i},function(e,t){var i=/-?\d+(\.\d+)?%?/g;e.exports=function(e){return e.match(i)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getBase16Theme=t.createStyling=t.invertTheme=void 0;var n=g(i(49)),o=g(i(76)),s=g(i(81)),r=g(i(89)),a=g(i(93)),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(94)),c=g(i(132)),d=g(i(133)),h=g(i(138)),u=i(139);function g(e){return e&&e.__esModule?e:{default:e}}var p=l.default,m=(0,r.default)(p),f=(0,h.default)(d.default,u.rgb2yuv,(function(e){var t,i=(0,s.default)(e,3);return[(t=i[0],t<.25?1:t<.5?.9-t:1.1-t),i[1],i[2]]}),u.yuv2rgb,c.default),_=function(e){return function(t){return{className:[t.className,e.className].filter(Boolean).join(" "),style:(0,o.default)({},t.style||{},e.style||{})}}},v=function(e,t){var i=(0,r.default)(t);for(var s in e)-1===i.indexOf(s)&&i.push(s);return i.reduce((function(i,s){return i[s]=function(e,t){if(void 0===e)return t;if(void 0===t)return e;var i=void 0===e?"undefined":(0,n.default)(e),s=void 0===t?"undefined":(0,n.default)(t);switch(i){case"string":switch(s){case"string":return[t,e].filter(Boolean).join(" ");case"object":return _({className:e,style:t});case"function":return function(i){for(var n=arguments.length,o=Array(n>1?n-1:0),s=1;s1?n-1:0),s=1;s1?n-1:0),s=1;s1?n-1:0),s=1;s1?n-1:0),s=1;s2?i-2:0),a=2;a3?t-3:0),n=3;n1&&void 0!==arguments[1]?arguments[1]:{},l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=s.defaultBase16,d=void 0===c?p:c,h=s.base16Themes,u=w(l,void 0===h?null:h);u&&(l=(0,o.default)({},u,l));var g=m.reduce((function(e,t){return e[t]=l[t]||d[t],e}),{}),f=(0,r.default)(l).reduce((function(e,t){return-1===m.indexOf(t)?(e[t]=l[t],e):e}),{}),_=e(g),C=v(f,_);return(0,a.default)(b,2).apply(void 0,[C].concat(i))}),3),t.getBase16Theme=function(e,t){if(e&&e.extend&&(e=e.extend),"string"==typeof e){var i=e.split(":"),n=(0,s.default)(i,2),o=n[0],r=n[1];e=(t||{})[o]||l[o],"inverted"===r&&(e=C(e))}return e&&e.hasOwnProperty("base00")?e:void 0})},function(e,t,i){"use strict";var n,o="object"==typeof Reflect?Reflect:null,s=o&&"function"==typeof o.apply?o.apply:function(e,t,i){return Function.prototype.apply.call(e,t,i)};n=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var r=Number.isNaN||function(e){return e!=e};function a(){a.init.call(this)}e.exports=a,e.exports.once=function(e,t){return new Promise((function(i,n){function o(){void 0!==s&&e.removeListener("error",s),i([].slice.call(arguments))}var s;"error"!==t&&(s=function(i){e.removeListener(t,o),n(i)},e.once("error",s)),e.once(t,o)}))},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var l=10;function c(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function d(e){return void 0===e._maxListeners?a.defaultMaxListeners:e._maxListeners}function h(e,t,i,n){var o,s,r,a;if(c(i),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,i.listener?i.listener:i),s=e._events),r=s[t]),void 0===r)r=s[t]=i,++e._eventsCount;else if("function"==typeof r?r=s[t]=n?[i,r]:[r,i]:n?r.unshift(i):r.push(i),(o=d(e))>0&&r.length>o&&!r.warned){r.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+r.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=r.length,a=l,console&&console.warn&&console.warn(a)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function g(e,t,i){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:i},o=u.bind(n);return o.listener=i,n.wrapFn=o,o}function p(e,t,i){var n=e._events;if(void 0===n)return[];var o=n[t];return void 0===o?[]:"function"==typeof o?i?[o.listener||o]:[o]:i?function(e){for(var t=new Array(e.length),i=0;i0&&(r=t[0]),r instanceof Error)throw r;var a=new Error("Unhandled error."+(r?" ("+r.message+")":""));throw a.context=r,a}var l=o[e];if(void 0===l)return!1;if("function"==typeof l)s(l,this,t);else{var c=l.length,d=f(l,c);for(i=0;i=0;s--)if(i[s]===t||i[s].listener===t){r=i[s].listener,o=s;break}if(o<0)return this;0===o?i.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},a.prototype.listeners=function(e){return p(this,e,!0)},a.prototype.rawListeners=function(e){return p(this,e,!1)},a.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},a.prototype.listenerCount=m,a.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},function(e,t,i){e.exports.Dispatcher=i(140)},function(e,t,i){e.exports=i(142)},function(e,t,i){"use strict";t.__esModule=!0;var n=r(i(50)),o=r(i(65)),s="function"==typeof o.default&&"symbol"==typeof n.default?function(e){return typeof e}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":typeof e};function r(e){return e&&e.__esModule?e:{default:e}}t.default="function"==typeof o.default&&"symbol"===s(n.default)?function(e){return void 0===e?"undefined":s(e)}:function(e){return e&&"function"==typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":void 0===e?"undefined":s(e)}},function(e,t,i){e.exports={default:i(51),__esModule:!0}},function(e,t,i){i(20),i(29),e.exports=i(30).f("iterator")},function(e,t,i){var n=i(21),o=i(22);e.exports=function(e){return function(t,i){var s,r,a=String(o(t)),l=n(i),c=a.length;return l<0||l>=c?e?"":void 0:(s=a.charCodeAt(l))<55296||s>56319||l+1===c||(r=a.charCodeAt(l+1))<56320||r>57343?e?a.charAt(l):s:e?a.slice(l,l+2):r-56320+(s-55296<<10)+65536}}},function(e,t,i){var n=i(54);e.exports=function(e,t,i){if(n(e),void 0===t)return e;switch(i){case 1:return function(i){return e.call(t,i)};case 2:return function(i,n){return e.call(t,i,n)};case 3:return function(i,n,o){return e.call(t,i,n,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,i){"use strict";var n=i(38),o=i(16),s=i(28),r={};i(6)(r,i(2)("iterator"),(function(){return this})),e.exports=function(e,t,i){e.prototype=n(r,{next:o(1,i)}),s(e,t+" Iterator")}},function(e,t,i){var n=i(7),o=i(10),s=i(13);e.exports=i(4)?Object.defineProperties:function(e,t){o(e);for(var i,r=s(t),a=r.length,l=0;a>l;)n.f(e,i=r[l++],t[i]);return e}},function(e,t,i){var n=i(9),o=i(58),s=i(59);e.exports=function(e){return function(t,i,r){var a,l=n(t),c=o(l.length),d=s(r,c);if(e&&i!=i){for(;c>d;)if((a=l[d++])!=a)return!0}else for(;c>d;d++)if((e||d in l)&&l[d]===i)return e||d||0;return!e&&-1}}},function(e,t,i){var n=i(21),o=Math.min;e.exports=function(e){return e>0?o(n(e),9007199254740991):0}},function(e,t,i){var n=i(21),o=Math.max,s=Math.min;e.exports=function(e,t){return(e=n(e))<0?o(e+t,0):s(e,t)}},function(e,t,i){var n=i(3).document;e.exports=n&&n.documentElement},function(e,t,i){var n=i(5),o=i(18),s=i(25)("IE_PROTO"),r=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?r:null}},function(e,t,i){"use strict";var n=i(63),o=i(64),s=i(12),r=i(9);e.exports=i(34)(Array,"Array",(function(e,t){this._t=r(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,i=this._i++;return!e||i>=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?i:"values"==t?e[i]:[i,e[i]])}),"values"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,i){e.exports={default:i(66),__esModule:!0}},function(e,t,i){i(67),i(73),i(74),i(75),e.exports=i(1).Symbol},function(e,t,i){"use strict";var n=i(3),o=i(5),s=i(4),r=i(15),a=i(37),l=i(68).KEY,c=i(8),d=i(26),h=i(28),u=i(17),g=i(2),p=i(30),m=i(31),f=i(69),_=i(70),v=i(10),b=i(11),C=i(18),w=i(9),y=i(23),S=i(16),L=i(38),k=i(71),x=i(72),D=i(32),N=i(7),E=i(13),I=x.f,T=N.f,M=k.f,A=n.Symbol,R=n.JSON,O=R&&R.stringify,P=g("_hidden"),F=g("toPrimitive"),B={}.propertyIsEnumerable,V=d("symbol-registry"),W=d("symbols"),H=d("op-symbols"),z=Object.prototype,j="function"==typeof A&&!!D.f,K=n.QObject,U=!K||!K.prototype||!K.prototype.findChild,$=s&&c((function(){return 7!=L(T({},"a",{get:function(){return T(this,"a",{value:7}).a}})).a}))?function(e,t,i){var n=I(z,t);n&&delete z[t],T(e,t,i),n&&e!==z&&T(z,t,n)}:T,q=function(e){var t=W[e]=L(A.prototype);return t._k=e,t},G=j&&"symbol"==typeof A.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof A},Q=function(e,t,i){return e===z&&Q(H,t,i),v(e),t=y(t,!0),v(i),o(W,t)?(i.enumerable?(o(e,P)&&e[P][t]&&(e[P][t]=!1),i=L(i,{enumerable:S(0,!1)})):(o(e,P)||T(e,P,S(1,{})),e[P][t]=!0),$(e,t,i)):T(e,t,i)},Z=function(e,t){v(e);for(var i,n=f(t=w(t)),o=0,s=n.length;s>o;)Q(e,i=n[o++],t[i]);return e},Y=function(e){var t=B.call(this,e=y(e,!0));return!(this===z&&o(W,e)&&!o(H,e))&&(!(t||!o(this,e)||!o(W,e)||o(this,P)&&this[P][e])||t)},J=function(e,t){if(e=w(e),t=y(t,!0),e!==z||!o(W,t)||o(H,t)){var i=I(e,t);return!i||!o(W,t)||o(e,P)&&e[P][t]||(i.enumerable=!0),i}},X=function(e){for(var t,i=M(w(e)),n=[],s=0;i.length>s;)o(W,t=i[s++])||t==P||t==l||n.push(t);return n},ee=function(e){for(var t,i=e===z,n=M(i?H:w(e)),s=[],r=0;n.length>r;)!o(W,t=n[r++])||i&&!o(z,t)||s.push(W[t]);return s};j||(a((A=function(){if(this instanceof A)throw TypeError("Symbol is not a constructor!");var e=u(arguments.length>0?arguments[0]:void 0),t=function(i){this===z&&t.call(H,i),o(this,P)&&o(this[P],e)&&(this[P][e]=!1),$(this,e,S(1,i))};return s&&U&&$(z,e,{configurable:!0,set:t}),q(e)}).prototype,"toString",(function(){return this._k})),x.f=J,N.f=Q,i(41).f=k.f=X,i(19).f=Y,D.f=ee,s&&!i(14)&&a(z,"propertyIsEnumerable",Y,!0),p.f=function(e){return q(g(e))}),r(r.G+r.W+r.F*!j,{Symbol:A});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ie=0;te.length>ie;)g(te[ie++]);for(var ne=E(g.store),oe=0;ne.length>oe;)m(ne[oe++]);r(r.S+r.F*!j,"Symbol",{for:function(e){return o(V,e+="")?V[e]:V[e]=A(e)},keyFor:function(e){if(!G(e))throw TypeError(e+" is not a symbol!");for(var t in V)if(V[t]===e)return t},useSetter:function(){U=!0},useSimple:function(){U=!1}}),r(r.S+r.F*!j,"Object",{create:function(e,t){return void 0===t?L(e):Z(L(e),t)},defineProperty:Q,defineProperties:Z,getOwnPropertyDescriptor:J,getOwnPropertyNames:X,getOwnPropertySymbols:ee});var se=c((function(){D.f(1)}));r(r.S+r.F*se,"Object",{getOwnPropertySymbols:function(e){return D.f(C(e))}}),R&&r(r.S+r.F*(!j||c((function(){var e=A();return"[null]"!=O([e])||"{}"!=O({a:e})||"{}"!=O(Object(e))}))),"JSON",{stringify:function(e){for(var t,i,n=[e],o=1;arguments.length>o;)n.push(arguments[o++]);if(i=t=n[1],(b(t)||void 0!==e)&&!G(e))return _(t)||(t=function(e,t){if("function"==typeof i&&(t=i.call(this,e,t)),!G(t))return t}),n[1]=t,O.apply(R,n)}}),A.prototype[F]||i(6)(A.prototype,F,A.prototype.valueOf),h(A,"Symbol"),h(Math,"Math",!0),h(n.JSON,"JSON",!0)},function(e,t,i){var n=i(17)("meta"),o=i(11),s=i(5),r=i(7).f,a=0,l=Object.isExtensible||function(){return!0},c=!i(8)((function(){return l(Object.preventExtensions({}))})),d=function(e){r(e,n,{value:{i:"O"+ ++a,w:{}}})},h=e.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,n)){if(!l(e))return"F";if(!t)return"E";d(e)}return e[n].i},getWeak:function(e,t){if(!s(e,n)){if(!l(e))return!0;if(!t)return!1;d(e)}return e[n].w},onFreeze:function(e){return c&&h.NEED&&l(e)&&!s(e,n)&&d(e),e}}},function(e,t,i){var n=i(13),o=i(32),s=i(19);e.exports=function(e){var t=n(e),i=o.f;if(i)for(var r,a=i(e),l=s.f,c=0;a.length>c;)l.call(e,r=a[c++])&&t.push(r);return t}},function(e,t,i){var n=i(24);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t,i){var n=i(9),o=i(41).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return r&&"[object Window]"==s.call(e)?function(e){try{return o(e)}catch(e){return r.slice()}}(e):o(n(e))}},function(e,t,i){var n=i(19),o=i(16),s=i(9),r=i(23),a=i(5),l=i(35),c=Object.getOwnPropertyDescriptor;t.f=i(4)?c:function(e,t){if(e=s(e),t=r(t,!0),l)try{return c(e,t)}catch(e){}if(a(e,t))return o(!n.f.call(e,t),e[t])}},function(e,t){},function(e,t,i){i(31)("asyncIterator")},function(e,t,i){i(31)("observable")},function(e,t,i){"use strict";t.__esModule=!0;var n,o=(n=i(77))&&n.__esModule?n:{default:n};t.default=o.default||function(e){for(var t=1;td;)for(var g,p=l(arguments[d++]),m=h?o(p).concat(h(p)):o(p),f=m.length,_=0;f>_;)g=m[_++],n&&!u.call(p,g)||(i[g]=p[g]);return i}:c},function(e,t,i){"use strict";t.__esModule=!0;var n=s(i(82)),o=s(i(85));function s(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if(Array.isArray(e))return e;if((0,n.default)(Object(e)))return function(e,t){var i=[],n=!0,s=!1,r=void 0;try{for(var a,l=(0,o.default)(e);!(n=(a=l.next()).done)&&(i.push(a.value),!t||i.length!==t);n=!0);}catch(e){s=!0,r=e}finally{try{!n&&l.return&&l.return()}finally{if(s)throw r}}return i}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t,i){e.exports={default:i(83),__esModule:!0}},function(e,t,i){i(29),i(20),e.exports=i(84)},function(e,t,i){var n=i(42),o=i(2)("iterator"),s=i(12);e.exports=i(1).isIterable=function(e){var t=Object(e);return void 0!==t[o]||"@@iterator"in t||s.hasOwnProperty(n(t))}},function(e,t,i){e.exports={default:i(86),__esModule:!0}},function(e,t,i){i(29),i(20),e.exports=i(87)},function(e,t,i){var n=i(10),o=i(88);e.exports=i(1).getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},function(e,t,i){var n=i(42),o=i(2)("iterator"),s=i(12);e.exports=i(1).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||s[n(e)]}},function(e,t,i){e.exports={default:i(90),__esModule:!0}},function(e,t,i){i(91),e.exports=i(1).Object.keys},function(e,t,i){var n=i(18),o=i(13);i(92)("keys",(function(){return function(e){return o(n(e))}}))},function(e,t,i){var n=i(15),o=i(1),s=i(8);e.exports=function(e,t){var i=(o.Object||{})[e]||Object[e],r={};r[e]=t(i),n(n.S+n.F*s((function(){i(1)})),"Object",r)}},function(e,t,i){(function(t){var i=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],n=/^\s+|\s+$/g,o=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,s=/\{\n\/\* \[wrapped with (.+)\] \*/,r=/,? & /,a=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^\[object .+?Constructor\]$/,d=/^0o[0-7]+$/i,h=/^(?:0|[1-9]\d*)$/,u=parseInt,g="object"==typeof t&&t&&t.Object===Object&&t,p="object"==typeof self&&self&&self.Object===Object&&self,m=g||p||Function("return this")();function f(e,t,i){switch(i.length){case 0:return e.call(t);case 1:return e.call(t,i[0]);case 2:return e.call(t,i[0],i[1]);case 3:return e.call(t,i[0],i[1],i[2])}return e.apply(t,i)}function _(e,t){return!(!e||!e.length)&&function(e,t,i){if(t!=t)return function(e,t,i,n){for(var o=e.length,s=i+(n?1:-1);n?s--:++s-1}function v(e){return e!=e}function b(e,t){for(var i=e.length,n=0;i--;)e[i]===t&&n++;return n}function C(e,t){for(var i=-1,n=e.length,o=0,s=[];++i2?y:void 0);function P(e){return X(e)?M(e):{}}function F(e){return!(!X(e)||function(e){return!!D&&D in e}(e))&&(function(e){var t=X(e)?I.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(e){}return t}(e)?T:c).test(function(e){if(null!=e){try{return N.call(e)}catch(e){}try{return e+""}catch(e){}}return""}(e))}function B(e,t,i,n){for(var o=-1,s=e.length,r=i.length,a=-1,l=t.length,c=A(s-r,0),d=Array(l+c),h=!n;++a1&&w.reverse(),d&&l1?"& ":"")+t[n],t=t.join(i>2?", ":" "),e.replace(o,"{\n/* [wrapped with "+t+"] */\n")}function G(e,t){return!!(t=null==t?9007199254740991:t)&&("number"==typeof e||h.test(e))&&e>-1&&e%1==0&&e1&&n--,s=6*n<1?t+6*(i-t)*n:2*n<1?i:3*n<2?t+(i-t)*(2/3-n)*6:t,o[c]=255*s;return o}},function(e,t,i){(function(t){var i="object"==typeof t&&t&&t.Object===Object&&t,n="object"==typeof self&&self&&self.Object===Object&&self,o=i||n||Function("return this")();function s(e,t,i){switch(i.length){case 0:return e.call(t);case 1:return e.call(t,i[0]);case 2:return e.call(t,i[0],i[1]);case 3:return e.call(t,i[0],i[1],i[2])}return e.apply(t,i)}function r(e,t){for(var i=-1,n=t.length,o=e.length;++i-1&&e%1==0&&e<=9007199254740991}(e.length)&&!function(e){var t=function(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}(e)?c.call(e):"";return"[object Function]"==t||"[object GeneratorFunction]"==t}(e)}(e)}(e)&&l.call(e,"callee")&&(!h.call(e,"callee")||"[object Arguments]"==c.call(e))}(e)||!!(u&&e&&e[u])}var m,f,_,v=Array.isArray,b=(f=function(e){var t=(e=function e(t,i,n,o,s){var a=-1,l=t.length;for(n||(n=p),s||(s=[]);++a0&&n(c)?i>1?e(c,i-1,n,o,s):r(s,c):o||(s[s.length]=c)}return s}(e,1)).length,i=t;for(m&&e.reverse();i--;)if("function"!=typeof e[i])throw new TypeError("Expected a function");return function(){for(var i=0,n=t?e[i].apply(this,arguments):arguments[0];++i2?i-2:0),s=2;s=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}function S(e){var t=function(e){return{}.toString.call(e).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}(e);return"number"===t&&(t=isNaN(e)?"nan":(0|e)!=e?"float":"integer"),t}v.__suppressDeprecationWarning=!0,b.__suppressDeprecationWarning=!0,C.__suppressDeprecationWarning=!0;var L={scheme:"rjv-default",author:"mac gainor",base00:"rgba(0, 0, 0, 0)",base01:"rgb(245, 245, 245)",base02:"rgb(235, 235, 235)",base03:"#93a1a1",base04:"rgba(0, 0, 0, 0.3)",base05:"#586e75",base06:"#073642",base07:"#002b36",base08:"#d33682",base09:"#cb4b16",base0A:"#dc322f",base0B:"#859900",base0C:"#6c71c4",base0D:"#586e75",base0E:"#2aa198",base0F:"#268bd2"},k={scheme:"rjv-grey",author:"mac gainor",base00:"rgba(1, 1, 1, 0)",base01:"rgba(1, 1, 1, 0.1)",base02:"rgba(0, 0, 0, 0.2)",base03:"rgba(1, 1, 1, 0.3)",base04:"rgba(0, 0, 0, 0.4)",base05:"rgba(1, 1, 1, 0.5)",base06:"rgba(1, 1, 1, 0.6)",base07:"rgba(1, 1, 1, 0.7)",base08:"rgba(1, 1, 1, 0.8)",base09:"rgba(1, 1, 1, 0.8)",base0A:"rgba(1, 1, 1, 0.8)",base0B:"rgba(1, 1, 1, 0.8)",base0C:"rgba(1, 1, 1, 0.8)",base0D:"rgba(1, 1, 1, 0.8)",base0E:"rgba(1, 1, 1, 0.8)",base0F:"rgba(1, 1, 1, 0.8)"},x={white:"#fff",black:"#000",transparent:"rgba(1, 1, 1, 0)",globalFontFamily:"monospace",globalCursor:"default",indentBlockWidth:"5px",braceFontWeight:"bold",braceCursor:"pointer",ellipsisFontSize:"18px",ellipsisLineHeight:"10px",ellipsisCursor:"pointer",keyMargin:"0px 5px",keyLetterSpacing:"0.5px",keyFontStyle:"none",keyBorderRadius:"3px",keyColonWeight:"bold",keyVerticalAlign:"top",keyOpacity:"0.85",keyOpacityHover:"1",keyValPaddingTop:"3px",keyValPaddingBottom:"3px",keyValPaddingRight:"5px",keyValBorderLeft:"1px solid",keyValBorderHover:"2px solid",keyValPaddingHover:"3px 5px 3px 4px",pushedContentMarginLeft:"6px",variableValuePaddingRight:"6px",nullFontSize:"11px",nullFontWeight:"bold",nullPadding:"1px 2px",nullBorderRadius:"3px",nanFontSize:"11px",nanFontWeight:"bold",nanPadding:"1px 2px",nanBorderRadius:"3px",undefinedFontSize:"11px",undefinedFontWeight:"bold",undefinedPadding:"1px 2px",undefinedBorderRadius:"3px",dataTypeFontSize:"11px",dataTypeMarginRight:"4px",datatypeOpacity:"0.8",objectSizeBorderRadius:"3px",objectSizeFontStyle:"italic",objectSizeMargin:"0px 6px 0px 0px",clipboardCursor:"pointer",clipboardCheckMarginLeft:"-12px",metaDataPadding:"0px 0px 0px 10px",arrayGroupMetaPadding:"0px 0px 0px 4px",iconContainerWidth:"17px",tooltipPadding:"4px",editInputMinWidth:"130px",editInputBorderRadius:"2px",editInputPadding:"5px",editInputMarginRight:"4px",editInputFontFamily:"monospace",iconCursor:"pointer",iconFontSize:"15px",iconPaddingRight:"1px",dateValueMarginLeft:"2px",iconMarginRight:"3px",detectedRowPaddingTop:"3px",addKeyCoverBackground:"rgba(255, 255, 255, 0.3)",addKeyCoverPosition:"absolute",addKeyCoverPositionPx:"0px",addKeyModalWidth:"200px",addKeyModalMargin:"auto",addKeyModalPadding:"10px",addKeyModalRadius:"3px"},D=i(45),N=function(e){var t=function(e){return{backgroundColor:e.base00,ellipsisColor:e.base09,braceColor:e.base07,expandedIcon:e.base0D,collapsedIcon:e.base0E,keyColor:e.base07,arrayKeyColor:e.base0C,objectSize:e.base04,copyToClipboard:e.base0F,copyToClipboardCheck:e.base0D,objectBorder:e.base02,dataTypes:{boolean:e.base0E,date:e.base0D,float:e.base0B,function:e.base0D,integer:e.base0F,string:e.base09,nan:e.base08,null:e.base0A,undefined:e.base05,regexp:e.base0A,background:e.base02},editVariable:{editIcon:e.base0E,cancelIcon:e.base09,removeIcon:e.base09,addIcon:e.base0E,checkIcon:e.base0E,background:e.base01,color:e.base0A,border:e.base07},addKeyModal:{background:e.base05,border:e.base04,color:e.base0A,labelColor:e.base01},validationFailure:{background:e.base09,iconColor:e.base01,fontColor:e.base01}}}(e);return{"app-container":{fontFamily:x.globalFontFamily,cursor:x.globalCursor,backgroundColor:t.backgroundColor,position:"relative"},ellipsis:{display:"inline-block",color:t.ellipsisColor,fontSize:x.ellipsisFontSize,lineHeight:x.ellipsisLineHeight,cursor:x.ellipsisCursor},"brace-row":{display:"inline-block",cursor:"pointer"},brace:{display:"inline-block",cursor:x.braceCursor,fontWeight:x.braceFontWeight,color:t.braceColor},"expanded-icon":{color:t.expandedIcon},"collapsed-icon":{color:t.collapsedIcon},colon:{display:"inline-block",margin:x.keyMargin,color:t.keyColor,verticalAlign:"top"},objectKeyVal:function(e,i){return{style:s({paddingTop:x.keyValPaddingTop,paddingRight:x.keyValPaddingRight,paddingBottom:x.keyValPaddingBottom,borderLeft:x.keyValBorderLeft+" "+t.objectBorder,":hover":{paddingLeft:i.paddingLeft-1+"px",borderLeft:x.keyValBorderHover+" "+t.objectBorder}},i)}},"object-key-val-no-border":{padding:x.keyValPadding},"pushed-content":{marginLeft:x.pushedContentMarginLeft},variableValue:function(e,t){return{style:s({display:"inline-block",paddingRight:x.variableValuePaddingRight,position:"relative"},t)}},"object-name":{display:"inline-block",color:t.keyColor,letterSpacing:x.keyLetterSpacing,fontStyle:x.keyFontStyle,verticalAlign:x.keyVerticalAlign,opacity:x.keyOpacity,":hover":{opacity:x.keyOpacityHover}},"array-key":{display:"inline-block",color:t.arrayKeyColor,letterSpacing:x.keyLetterSpacing,fontStyle:x.keyFontStyle,verticalAlign:x.keyVerticalAlign,opacity:x.keyOpacity,":hover":{opacity:x.keyOpacityHover}},"object-size":{color:t.objectSize,borderRadius:x.objectSizeBorderRadius,fontStyle:x.objectSizeFontStyle,margin:x.objectSizeMargin,cursor:"default"},"data-type-label":{fontSize:x.dataTypeFontSize,marginRight:x.dataTypeMarginRight,opacity:x.datatypeOpacity},boolean:{display:"inline-block",color:t.dataTypes.boolean},date:{display:"inline-block",color:t.dataTypes.date},"date-value":{marginLeft:x.dateValueMarginLeft},float:{display:"inline-block",color:t.dataTypes.float},function:{display:"inline-block",color:t.dataTypes.function,cursor:"pointer",whiteSpace:"pre-line"},"function-value":{fontStyle:"italic"},integer:{display:"inline-block",color:t.dataTypes.integer},string:{display:"inline-block",color:t.dataTypes.string},nan:{display:"inline-block",color:t.dataTypes.nan,fontSize:x.nanFontSize,fontWeight:x.nanFontWeight,backgroundColor:t.dataTypes.background,padding:x.nanPadding,borderRadius:x.nanBorderRadius},null:{display:"inline-block",color:t.dataTypes.null,fontSize:x.nullFontSize,fontWeight:x.nullFontWeight,backgroundColor:t.dataTypes.background,padding:x.nullPadding,borderRadius:x.nullBorderRadius},undefined:{display:"inline-block",color:t.dataTypes.undefined,fontSize:x.undefinedFontSize,padding:x.undefinedPadding,borderRadius:x.undefinedBorderRadius,backgroundColor:t.dataTypes.background},regexp:{display:"inline-block",color:t.dataTypes.regexp},"copy-to-clipboard":{cursor:x.clipboardCursor},"copy-icon":{color:t.copyToClipboard,fontSize:x.iconFontSize,marginRight:x.iconMarginRight,verticalAlign:"top"},"copy-icon-copied":{color:t.copyToClipboardCheck,marginLeft:x.clipboardCheckMarginLeft},"array-group-meta-data":{display:"inline-block",padding:x.arrayGroupMetaPadding},"object-meta-data":{display:"inline-block",padding:x.metaDataPadding},"icon-container":{display:"inline-block",width:x.iconContainerWidth},tooltip:{padding:x.tooltipPadding},removeVarIcon:{verticalAlign:"top",display:"inline-block",color:t.editVariable.removeIcon,cursor:x.iconCursor,fontSize:x.iconFontSize,marginRight:x.iconMarginRight},addVarIcon:{verticalAlign:"top",display:"inline-block",color:t.editVariable.addIcon,cursor:x.iconCursor,fontSize:x.iconFontSize,marginRight:x.iconMarginRight},editVarIcon:{verticalAlign:"top",display:"inline-block",color:t.editVariable.editIcon,cursor:x.iconCursor,fontSize:x.iconFontSize,marginRight:x.iconMarginRight},"edit-icon-container":{display:"inline-block",verticalAlign:"top"},"check-icon":{display:"inline-block",cursor:x.iconCursor,color:t.editVariable.checkIcon,fontSize:x.iconFontSize,paddingRight:x.iconPaddingRight},"cancel-icon":{display:"inline-block",cursor:x.iconCursor,color:t.editVariable.cancelIcon,fontSize:x.iconFontSize,paddingRight:x.iconPaddingRight},"edit-input":{display:"inline-block",minWidth:x.editInputMinWidth,borderRadius:x.editInputBorderRadius,backgroundColor:t.editVariable.background,color:t.editVariable.color,padding:x.editInputPadding,marginRight:x.editInputMarginRight,fontFamily:x.editInputFontFamily},"detected-row":{paddingTop:x.detectedRowPaddingTop},"key-modal-request":{position:x.addKeyCoverPosition,top:x.addKeyCoverPositionPx,left:x.addKeyCoverPositionPx,right:x.addKeyCoverPositionPx,bottom:x.addKeyCoverPositionPx,backgroundColor:x.addKeyCoverBackground},"key-modal":{width:x.addKeyModalWidth,backgroundColor:t.addKeyModal.background,marginLeft:x.addKeyModalMargin,marginRight:x.addKeyModalMargin,padding:x.addKeyModalPadding,borderRadius:x.addKeyModalRadius,marginTop:"15px",position:"relative"},"key-modal-label":{color:t.addKeyModal.labelColor,marginLeft:"2px",marginBottom:"5px",fontSize:"11px"},"key-modal-input-container":{overflow:"hidden"},"key-modal-input":{width:"100%",padding:"3px 6px",fontFamily:"monospace",color:t.addKeyModal.color,border:"none",boxSizing:"border-box",borderRadius:"2px"},"key-modal-cancel":{backgroundColor:t.editVariable.removeIcon,position:"absolute",top:"0px",right:"0px",borderRadius:"0px 3px 0px 3px",cursor:"pointer"},"key-modal-cancel-icon":{color:t.addKeyModal.labelColor,fontSize:x.iconFontSize,transform:"rotate(45deg)"},"key-modal-submit":{color:t.editVariable.addIcon,fontSize:x.iconFontSize,position:"absolute",right:"2px",top:"3px",cursor:"pointer"},"function-ellipsis":{display:"inline-block",color:t.ellipsisColor,fontSize:x.ellipsisFontSize,lineHeight:x.ellipsisLineHeight,cursor:x.ellipsisCursor},"validation-failure":{float:"right",padding:"3px 6px",borderRadius:"2px",cursor:"pointer",color:t.validationFailure.fontColor,backgroundColor:t.validationFailure.background},"validation-failure-label":{marginRight:"6px"},"validation-failure-clear":{position:"relative",verticalAlign:"top",cursor:"pointer",color:t.validationFailure.iconColor,fontSize:x.iconFontSize,transform:"rotate(45deg)"}}};function E(e,t,i){return e||console.error("theme has not been set"),function(e){var t=L;return!1!==e&&"none"!==e||(t=k),Object(D.createStyling)(N,{defaultBase16:t})(e)}(e)(t,i)}var I=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=(e.rjvId,e.type_name),i=e.displayDataTypes,n=e.theme;return i?_.a.createElement("span",Object.assign({className:"data-type-label"},E(n,"data-type-label")),t):null}}]),i}(_.a.PureComponent),T=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props;return _.a.createElement("div",E(e.theme,"boolean"),_.a.createElement(I,Object.assign({type_name:"bool"},e)),e.value?"true":"false")}}]),i}(_.a.PureComponent),M=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props;return _.a.createElement("div",E(e.theme,"date"),_.a.createElement(I,Object.assign({type_name:"date"},e)),_.a.createElement("span",Object.assign({className:"date-value"},E(e.theme,"date-value")),e.value.toLocaleTimeString("en-us",{weekday:"short",year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})))}}]),i}(_.a.PureComponent),A=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props;return _.a.createElement("div",E(e.theme,"float"),_.a.createElement(I,Object.assign({type_name:"float"},e)),this.props.value)}}]),i}(_.a.PureComponent);function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,r=!0,a=!1;return{s:function(){i=e[Symbol.iterator]()},n:function(){var e=i.next();return r=e.done,e},e:function(e){a=!0,s=e},f:function(){try{r||null==i.return||i.return()}finally{if(a)throw s}}}}function F(e){return function(e){if(Array.isArray(e))return R(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||O(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var B=i(46),V=new(i(47).Dispatcher),W=new(function(e){d(i,e);var t=m(i);function i(){var e;r(this,i);for(var n=arguments.length,o=new Array(n),a=0;at&&(o.style.cursor="pointer",this.state.collapsed&&(n=_.a.createElement("span",null,n.substring(0,t),_.a.createElement("span",E(i,"ellipsis")," ...")))),_.a.createElement("div",E(i,"string"),_.a.createElement(I,Object.assign({type_name:"string"},e)),_.a.createElement("span",Object.assign({className:"string-value"},o,{onClick:this.toggleCollapsed}),'"',n,'"'))}}]),i}(_.a.PureComponent),G=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){return _.a.createElement("div",E(this.props.theme,"undefined"),"undefined")}}]),i}(_.a.PureComponent);function Q(){return(Q=Object.assign||function(e){for(var t=1;t=0||(o[i]=e[i]);return o}(e,["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"]),h=void 0!==d.value,u=Object(f.useRef)(null),g=X(u,t),p=Object(f.useRef)(0),m=Object(f.useRef)(),_=function(){var e=u.current,t=n&&m.current?m.current:function(e){var t=window.getComputedStyle(e);if(null===t)return null;var i,n=(i=t,oe.reduce((function(e,t){return e[t]=i[t],e}),{})),o=n.boxSizing;return""===o?null:(se&&"border-box"===o&&(n.width=parseFloat(n.width)+parseFloat(n.borderRightWidth)+parseFloat(n.borderLeftWidth)+parseFloat(n.paddingRight)+parseFloat(n.paddingLeft)+"px"),{sizingStyle:n,paddingSize:parseFloat(n.paddingBottom)+parseFloat(n.paddingTop),borderSize:parseFloat(n.borderBottomWidth)+parseFloat(n.borderTopWidth)})}(e);if(t){m.current=t;var i=function(e,t,i,n){void 0===i&&(i=1),void 0===n&&(n=1/0),ie||((ie=document.createElement("textarea")).setAttribute("tab-index","-1"),ie.setAttribute("aria-hidden","true"),te(ie)),null===ie.parentNode&&document.body.appendChild(ie);var o=e.paddingSize,s=e.borderSize,r=e.sizingStyle,a=r.boxSizing;Object.keys(r).forEach((function(e){var t=e;ie.style[t]=r[t]})),te(ie),ie.value=t;var l=function(e,t){var i=e.scrollHeight;return"border-box"===t.sizingStyle.boxSizing?i+t.borderSize:i-t.paddingSize}(ie,e);ie.value="x";var c=ie.scrollHeight-o,d=c*i;"border-box"===a&&(d=d+o+s),l=Math.max(d,l);var h=c*n;return"border-box"===a&&(h=h+o+s),[l=Math.min(h,l),c]}(t,e.value||e.placeholder||"x",s,o),r=i[0],a=i[1];p.current!==r&&(p.current=r,e.style.setProperty("height",r+"px","important"),c(r,{rowHeight:a}))}};return Object(f.useLayoutEffect)(_),i=Y(_),Object(f.useLayoutEffect)((function(){var e=function(e){i.current(e)};return window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),Object(f.createElement)("textarea",Q({},d,{onChange:function(e){h||_(),a(e)},ref:g}))},ae=Object(f.forwardRef)(re);function le(e){e=e.trim();try{if("["===(e=JSON.stringify(JSON.parse(e)))[0])return ce("array",JSON.parse(e));if("{"===e[0])return ce("object",JSON.parse(e));if(e.match(/\-?\d+\.\d+/)&&e.match(/\-?\d+\.\d+/)[0]===e)return ce("float",parseFloat(e));if(e.match(/\-?\d+e-\d+/)&&e.match(/\-?\d+e-\d+/)[0]===e)return ce("float",Number(e));if(e.match(/\-?\d+/)&&e.match(/\-?\d+/)[0]===e)return ce("integer",parseInt(e));if(e.match(/\-?\d+e\+\d+/)&&e.match(/\-?\d+e\+\d+/)[0]===e)return ce("integer",Number(e))}catch(e){}switch(e=e.toLowerCase()){case"undefined":return ce("undefined",void 0);case"nan":return ce("nan",NaN);case"null":return ce("null",null);case"true":return ce("boolean",!0);case"false":return ce("boolean",!1);default:if(e=Date.parse(e))return ce("date",new Date(e))}return ce(!1,null)}function ce(e,t){return{type:e,value:t}}var de=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7,13H17V11H7"})))}}]),i}(_.a.PureComponent),he=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 24 24",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("path",{d:"M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M13,7H11V11H7V13H11V17H13V13H17V11H13V7Z"})))}}]),i}(_.a.PureComponent),ue=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]),n=ye(t).style;return _.a.createElement("span",i,_.a.createElement("svg",{fill:n.color,width:n.height,height:n.width,style:n,viewBox:"0 0 1792 1792"},_.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-832q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h832q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),i}(_.a.PureComponent),ge=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]),n=ye(t).style;return _.a.createElement("span",i,_.a.createElement("svg",{fill:n.color,width:n.height,height:n.width,style:n,viewBox:"0 0 1792 1792"},_.a.createElement("path",{d:"M1344 800v64q0 14-9 23t-23 9h-352v352q0 14-9 23t-23 9h-64q-14 0-23-9t-9-23v-352h-352q-14 0-23-9t-9-23v-64q0-14 9-23t23-9h352v-352q0-14 9-23t23-9h64q14 0 23 9t9 23v352h352q14 0 23 9t9 23zm128 448v-832q0-66-47-113t-113-47h-832q-66 0-113 47t-47 113v832q0 66 47 113t113 47h832q66 0 113-47t47-113zm128-832v832q0 119-84.5 203.5t-203.5 84.5h-832q-119 0-203.5-84.5t-84.5-203.5v-832q0-119 84.5-203.5t203.5-84.5h832q119 0 203.5 84.5t84.5 203.5z"})))}}]),i}(_.a.PureComponent),pe=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",{style:s(s({},ye(t).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},_.a.createElement("path",{d:"M0 14l6-6-6-6z"})))}}]),i}(_.a.PureComponent),me=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",{style:s(s({},ye(t).style),{},{paddingLeft:"2px",verticalAlign:"top"}),viewBox:"0 0 15 15",fill:"currentColor"},_.a.createElement("path",{d:"M0 5l6 6 6-6z"})))}}]),i}(_.a.PureComponent),fe=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m30 35h-25v-22.5h25v7.5h2.5v-12.5c0-1.4-1.1-2.5-2.5-2.5h-7.5c0-2.8-2.2-5-5-5s-5 2.2-5 5h-7.5c-1.4 0-2.5 1.1-2.5 2.5v27.5c0 1.4 1.1 2.5 2.5 2.5h25c1.4 0 2.5-1.1 2.5-2.5v-5h-2.5v5z m-20-27.5h2.5s2.5-1.1 2.5-2.5 1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5 1.3 2.5 2.5 2.5h2.5s2.5 1.1 2.5 2.5h-20c0-1.5 1.1-2.5 2.5-2.5z m-2.5 20h5v-2.5h-5v2.5z m17.5-5v-5l-10 7.5 10 7.5v-5h12.5v-5h-12.5z m-17.5 10h7.5v-2.5h-7.5v2.5z m12.5-17.5h-12.5v2.5h12.5v-2.5z m-7.5 5h-5v2.5h5v-2.5z"}))))}}]),i}(_.a.PureComponent),_e=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m28.6 25q0-0.5-0.4-1l-4-4 4-4q0.4-0.5 0.4-1 0-0.6-0.4-1.1l-2-2q-0.4-0.4-1-0.4-0.6 0-1 0.4l-4.1 4.1-4-4.1q-0.4-0.4-1-0.4-0.6 0-1 0.4l-2 2q-0.5 0.5-0.5 1.1 0 0.5 0.5 1l4 4-4 4q-0.5 0.5-0.5 1 0 0.7 0.5 1.1l2 2q0.4 0.4 1 0.4 0.6 0 1-0.4l4-4.1 4.1 4.1q0.4 0.4 1 0.4 0.6 0 1-0.4l2-2q0.4-0.4 0.4-1z m8.7-5q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),i}(_.a.PureComponent),ve=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m30.1 21.4v-2.8q0-0.6-0.4-1t-1-0.5h-5.7v-5.7q0-0.6-0.4-1t-1-0.4h-2.9q-0.6 0-1 0.4t-0.4 1v5.7h-5.7q-0.6 0-1 0.5t-0.5 1v2.8q0 0.6 0.5 1t1 0.5h5.7v5.7q0 0.5 0.4 1t1 0.4h2.9q0.6 0 1-0.4t0.4-1v-5.7h5.7q0.6 0 1-0.5t0.4-1z m7.2-1.4q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),i}(_.a.PureComponent),be=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m31.6 21.6h-10v10h-3.2v-10h-10v-3.2h10v-10h3.2v10h10v3.2z"}))))}}]),i}(_.a.PureComponent),Ce=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m19.8 26.4l2.6-2.6-3.4-3.4-2.6 2.6v1.3h2.2v2.1h1.2z m9.8-16q-0.3-0.4-0.7 0l-7.8 7.8q-0.4 0.4 0 0.7t0.7 0l7.8-7.8q0.4-0.4 0-0.7z m1.8 13.2v4.3q0 2.6-1.9 4.5t-4.5 1.9h-18.6q-2.6 0-4.5-1.9t-1.9-4.5v-18.6q0-2.7 1.9-4.6t4.5-1.8h18.6q1.4 0 2.6 0.5 0.3 0.2 0.4 0.5 0.1 0.4-0.2 0.7l-1.1 1.1q-0.3 0.3-0.7 0.1-0.5-0.1-1-0.1h-18.6q-1.4 0-2.5 1.1t-1 2.5v18.6q0 1.4 1 2.5t2.5 1h18.6q1.5 0 2.5-1t1.1-2.5v-2.9q0-0.2 0.2-0.4l1.4-1.5q0.3-0.3 0.8-0.1t0.4 0.6z m-2.1-16.5l6.4 6.5-15 15h-6.4v-6.5z m9.9 3l-2.1 2-6.4-6.4 2.1-2q0.6-0.7 1.5-0.7t1.5 0.7l3.4 3.4q0.6 0.6 0.6 1.5t-0.6 1.5z"}))))}}]),i}(_.a.PureComponent),we=function(e){d(i,e);var t=m(i);function i(){return r(this,i),t.apply(this,arguments)}return l(i,[{key:"render",value:function(){var e=this.props,t=e.style,i=y(e,["style"]);return _.a.createElement("span",i,_.a.createElement("svg",Object.assign({},ye(t),{viewBox:"0 0 40 40",fill:"currentColor",preserveAspectRatio:"xMidYMid meet"}),_.a.createElement("g",null,_.a.createElement("path",{d:"m31.7 16.4q0-0.6-0.4-1l-2.1-2.1q-0.4-0.4-1-0.4t-1 0.4l-9.1 9.1-5-5q-0.5-0.4-1-0.4t-1 0.4l-2.1 2q-0.4 0.4-0.4 1 0 0.6 0.4 1l8.1 8.1q0.4 0.4 1 0.4 0.6 0 1-0.4l12.2-12.1q0.4-0.4 0.4-1z m5.6 3.6q0 4.7-2.3 8.6t-6.3 6.2-8.6 2.3-8.6-2.3-6.2-6.2-2.3-8.6 2.3-8.6 6.2-6.2 8.6-2.3 8.6 2.3 6.3 6.2 2.3 8.6z"}))))}}]),i}(_.a.PureComponent);function ye(e){return e||(e={}),{style:s(s({verticalAlign:"middle"},e),{},{color:e.color?e.color:"#000000",height:"1em",width:"1em"})}}var Se=function(e){d(i,e);var t=m(i);function i(e){var n;return r(this,i),(n=t.call(this,e)).copiedTimer=null,n.handleCopy=function(){var e=document.createElement("textarea"),t=n.props,i=t.clickCallback,o=t.src,s=t.namespace;e.innerHTML=JSON.stringify(n.clipboardValue(o),null," "),document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),n.copiedTimer=setTimeout((function(){n.setState({copied:!1})}),5500),n.setState({copied:!0},(function(){"function"==typeof i&&i({src:o,namespace:s,name:s[s.length-1]})}))},n.getClippyIcon=function(){var e=n.props.theme;return n.state.copied?_.a.createElement("span",null,_.a.createElement(fe,Object.assign({className:"copy-icon"},E(e,"copy-icon"))),_.a.createElement("span",E(e,"copy-icon-copied"),"\u2714")):_.a.createElement(fe,Object.assign({className:"copy-icon"},E(e,"copy-icon")))},n.clipboardValue=function(e){switch(S(e)){case"function":case"regexp":return e.toString();default:return e}},n.state={copied:!1},n}return l(i,[{key:"componentWillUnmount",value:function(){this.copiedTimer&&(clearTimeout(this.copiedTimer),this.copiedTimer=null)}},{key:"render",value:function(){var e=this.props,t=(e.src,e.theme),i=e.hidden,n=e.rowHovered,o=E(t,"copy-to-clipboard").style,r="inline";return i&&(r="none"),_.a.createElement("span",{className:"copy-to-clipboard-container",title:"Copy to clipboard",style:{verticalAlign:"top",display:n?"inline-block":"none"}},_.a.createElement("span",{style:s(s({},o),{},{display:r}),onClick:this.handleCopy},this.getClippyIcon()))}}]),i}(_.a.PureComponent),Le=function(e){d(i,e);var t=m(i);function i(e){var n;return r(this,i),(n=t.call(this,e)).getEditIcon=function(){var e=n.props,t=e.variable,i=e.theme;return _.a.createElement("div",{className:"click-to-edit",style:{verticalAlign:"top",display:n.state.hovered?"inline-block":"none"}},_.a.createElement(Ce,Object.assign({className:"click-to-edit-icon"},E(i,"editVarIcon"),{onClick:function(){n.prepopInput(t)}})))},n.prepopInput=function(e){if(!1!==n.props.onEdit){var t=function(e){var t;switch(S(e)){case"undefined":t="undefined";break;case"nan":t="NaN";break;case"string":t=e;break;case"date":case"function":case"regexp":t=e.toString();break;default:try{t=JSON.stringify(e,null," ")}catch(e){t=""}}return t}(e.value),i=le(t);n.setState({editMode:!0,editValue:t,parsedInput:{type:i.type,value:i.value}})}},n.getRemoveIcon=function(){var e=n.props,t=e.variable,i=e.namespace,o=e.theme,s=e.rjvId;return _.a.createElement("div",{className:"click-to-remove",style:{verticalAlign:"top",display:n.state.hovered?"inline-block":"none"}},_.a.createElement(_e,Object.assign({className:"click-to-remove-icon"},E(o,"removeVarIcon"),{onClick:function(){V.dispatch({name:"VARIABLE_REMOVED",rjvId:s,data:{name:t.name,namespace:i,existing_value:t.value,variable_removed:!0}})}})))},n.getValue=function(e,t){var i=!t&&e.type,o=g(n).props;switch(i){case!1:return n.getEditInput();case"string":return _.a.createElement(q,Object.assign({value:e.value},o));case"integer":return _.a.createElement(U,Object.assign({value:e.value},o));case"float":return _.a.createElement(A,Object.assign({value:e.value},o));case"boolean":return _.a.createElement(T,Object.assign({value:e.value},o));case"function":return _.a.createElement(z,Object.assign({value:e.value},o));case"null":return _.a.createElement(K,o);case"nan":return _.a.createElement(j,o);case"undefined":return _.a.createElement(G,o);case"date":return _.a.createElement(M,Object.assign({value:e.value},o));case"regexp":return _.a.createElement($,Object.assign({value:e.value},o));default:return _.a.createElement("div",{className:"object-value"},JSON.stringify(e.value))}},n.getEditInput=function(){var e=n.props.theme,t=n.state.editValue;return _.a.createElement("div",null,_.a.createElement(ae,Object.assign({type:"text",inputRef:function(e){return e&&e.focus()},value:t,className:"variable-editor",onChange:function(e){var t=e.target.value,i=le(t);n.setState({editValue:t,parsedInput:{type:i.type,value:i.value}})},onKeyDown:function(e){switch(e.key){case"Escape":n.setState({editMode:!1,editValue:""});break;case"Enter":(e.ctrlKey||e.metaKey)&&n.submitEdit(!0)}e.stopPropagation()},placeholder:"update this value",minRows:2},E(e,"edit-input"))),_.a.createElement("div",E(e,"edit-icon-container"),_.a.createElement(_e,Object.assign({className:"edit-cancel"},E(e,"cancel-icon"),{onClick:function(){n.setState({editMode:!1,editValue:""})}})),_.a.createElement(we,Object.assign({className:"edit-check string-value"},E(e,"check-icon"),{onClick:function(){n.submitEdit()}})),_.a.createElement("div",null,n.showDetected())))},n.submitEdit=function(e){var t=n.props,i=t.variable,o=t.namespace,s=t.rjvId,r=n.state,a=r.editValue,l=r.parsedInput,c=a;e&&l.type&&(c=l.value),n.setState({editMode:!1}),V.dispatch({name:"VARIABLE_UPDATED",rjvId:s,data:{name:i.name,namespace:o,existing_value:i.value,new_value:c,variable_removed:!1}})},n.showDetected=function(){var e=n.props,t=e.theme,i=(e.variable,e.namespace,e.rjvId,n.state.parsedInput),o=(i.type,i.value,n.getDetectedInput());if(o)return _.a.createElement("div",null,_.a.createElement("div",E(t,"detected-row"),o,_.a.createElement(we,{className:"edit-check detected",style:s({verticalAlign:"top",paddingLeft:"3px"},E(t,"check-icon").style),onClick:function(){n.submitEdit(!0)}})))},n.getDetectedInput=function(){var e=n.state.parsedInput,t=e.type,i=e.value,o=g(n).props,r=o.theme;if(!1!==t)switch(t.toLowerCase()){case"object":return _.a.createElement("span",null,_.a.createElement("span",{style:s(s({},E(r,"brace").style),{},{cursor:"default"})},"{"),_.a.createElement("span",{style:s(s({},E(r,"ellipsis").style),{},{cursor:"default"})},"..."),_.a.createElement("span",{style:s(s({},E(r,"brace").style),{},{cursor:"default"})},"}"));case"array":return _.a.createElement("span",null,_.a.createElement("span",{style:s(s({},E(r,"brace").style),{},{cursor:"default"})},"["),_.a.createElement("span",{style:s(s({},E(r,"ellipsis").style),{},{cursor:"default"})},"..."),_.a.createElement("span",{style:s(s({},E(r,"brace").style),{},{cursor:"default"})},"]"));case"string":return _.a.createElement(q,Object.assign({value:i},o));case"integer":return _.a.createElement(U,Object.assign({value:i},o));case"float":return _.a.createElement(A,Object.assign({value:i},o));case"boolean":return _.a.createElement(T,Object.assign({value:i},o));case"function":return _.a.createElement(z,Object.assign({value:i},o));case"null":return _.a.createElement(K,o);case"nan":return _.a.createElement(j,o);case"undefined":return _.a.createElement(G,o);case"date":return _.a.createElement(M,Object.assign({value:new Date(i)},o))}},n.state={editMode:!1,editValue:"",hovered:!1,renameKey:!1,parsedInput:{type:!1,value:null}},n}return l(i,[{key:"render",value:function(){var e=this,t=this.props,i=t.variable,n=t.singleIndent,o=t.type,r=t.theme,a=t.namespace,l=t.indentWidth,c=t.enableClipboard,d=t.onEdit,h=t.onDelete,u=t.onSelect,g=t.displayArrayKey,p=t.quotesOnKeys,m=this.state.editMode;return _.a.createElement("div",Object.assign({},E(r,"objectKeyVal",{paddingLeft:l*n}),{onMouseEnter:function(){return e.setState(s(s({},e.state),{},{hovered:!0}))},onMouseLeave:function(){return e.setState(s(s({},e.state),{},{hovered:!1}))},className:"variable-row",key:i.name}),"array"==o?g?_.a.createElement("span",Object.assign({},E(r,"array-key"),{key:i.name+"_"+a}),i.name,_.a.createElement("div",E(r,"colon"),":")):null:_.a.createElement("span",null,_.a.createElement("span",Object.assign({},E(r,"object-name"),{className:"object-key",key:i.name+"_"+a}),!!p&&_.a.createElement("span",{style:{verticalAlign:"top"}},'"'),_.a.createElement("span",{style:{display:"inline-block"}},i.name),!!p&&_.a.createElement("span",{style:{verticalAlign:"top"}},'"')),_.a.createElement("span",E(r,"colon"),":")),_.a.createElement("div",Object.assign({className:"variable-value",onClick:!1===u&&!1===d?null:function(t){var n=F(a);(t.ctrlKey||t.metaKey)&&!1!==d?e.prepopInput(i):!1!==u&&(n.shift(),u(s(s({},i),{},{namespace:n})))}},E(r,"variableValue",{cursor:!1===u?"default":"pointer"})),this.getValue(i,m)),c?_.a.createElement(Se,{rowHovered:this.state.hovered,hidden:m,src:i.value,clickCallback:c,theme:r,namespace:[].concat(F(a),[i.name])}):null,!1!==d&&0==m?this.getEditIcon():null,!1!==h&&0==m?this.getRemoveIcon():null)}}]),i}(_.a.PureComponent),ke=function(e){d(i,e);var t=m(i);function i(){var e;r(this,i);for(var n=arguments.length,o=new Array(n),a=0;a0?r:null,namespace:o.splice(0,o.length-1),existing_value:a,variable_removed:!1,key_name:null};"object"===S(a)?V.dispatch({name:"ADD_VARIABLE_KEY_REQUEST",rjvId:l,data:e}):V.dispatch({name:"VARIABLE_ADDED",rjvId:l,data:s(s({},e),{},{new_value:[].concat(F(a),[null])})})}})))},e.getRemoveObject=function(t){var i=e.props,n=i.theme,o=(i.hover,i.namespace),s=i.name,r=i.src,a=i.rjvId;if(1!==o.length)return _.a.createElement("span",{className:"click-to-remove",style:{display:t?"inline-block":"none"}},_.a.createElement(_e,Object.assign({className:"click-to-remove-icon"},E(n,"removeVarIcon"),{onClick:function(){V.dispatch({name:"VARIABLE_REMOVED",rjvId:a,data:{name:s,namespace:o.splice(0,o.length-1),existing_value:r,variable_removed:!0}})}})))},e.render=function(){var t=e.props,i=t.theme,n=t.onDelete,o=t.onAdd,s=t.enableClipboard,r=t.src,a=t.namespace,l=t.rowHovered;return _.a.createElement("div",Object.assign({},E(i,"object-meta-data"),{className:"object-meta-data",onClick:function(e){e.stopPropagation()}}),e.getObjectSize(),s?_.a.createElement(Se,{rowHovered:l,clickCallback:s,src:r,theme:i,namespace:a}):null,!1!==o?e.getAddAttribute(l):null,!1!==n?e.getRemoveObject(l):null)},e}return i}(_.a.PureComponent);function xe(e){var t=e.parent_type,i=e.namespace,n=e.quotesOnKeys,o=e.theme,s=e.jsvRoot,r=e.name,a=e.displayArrayKey,l=e.name?e.name:"";return!s||!1!==r&&null!==r?"array"==t?a?_.a.createElement("span",Object.assign({},E(o,"array-key"),{key:i}),_.a.createElement("span",{className:"array-key"},l),_.a.createElement("span",E(o,"colon"),":")):_.a.createElement("span",null):_.a.createElement("span",Object.assign({},E(o,"object-name"),{key:i}),_.a.createElement("span",{className:"object-key"},n&&_.a.createElement("span",{style:{verticalAlign:"top"}},'"'),_.a.createElement("span",null,l),n&&_.a.createElement("span",{style:{verticalAlign:"top"}},'"')),_.a.createElement("span",E(o,"colon"),":")):_.a.createElement("span",null)}function De(e){var t=e.theme;switch(e.iconStyle){case"triangle":return _.a.createElement(me,Object.assign({},E(t,"expanded-icon"),{className:"expanded-icon"}));case"square":return _.a.createElement(ue,Object.assign({},E(t,"expanded-icon"),{className:"expanded-icon"}));default:return _.a.createElement(de,Object.assign({},E(t,"expanded-icon"),{className:"expanded-icon"}))}}function Ne(e){var t=e.theme;switch(e.iconStyle){case"triangle":return _.a.createElement(pe,Object.assign({},E(t,"collapsed-icon"),{className:"collapsed-icon"}));case"square":return _.a.createElement(ge,Object.assign({},E(t,"collapsed-icon"),{className:"collapsed-icon"}));default:return _.a.createElement(he,Object.assign({},E(t,"collapsed-icon"),{className:"collapsed-icon"}))}}var Ee=function(e){d(i,e);var t=m(i);function i(e){var n;return r(this,i),(n=t.call(this,e)).toggleCollapsed=function(e){var t=[];for(var i in n.state.expanded)t.push(n.state.expanded[i]);t[e]=!t[e],n.setState({expanded:t})},n.state={expanded:[]},n}return l(i,[{key:"getExpandedIcon",value:function(e){var t=this.props,i=t.theme,n=t.iconStyle;return this.state.expanded[e]?_.a.createElement(De,{theme:i,iconStyle:n}):_.a.createElement(Ne,{theme:i,iconStyle:n})}},{key:"render",value:function(){var e=this,t=this.props,i=t.src,n=t.groupArraysAfterLength,o=(t.depth,t.name),s=t.theme,r=t.jsvRoot,a=t.namespace,l=(t.parent_type,y(t,["src","groupArraysAfterLength","depth","name","theme","jsvRoot","namespace","parent_type"])),c=0,d=5*this.props.indentWidth;r||(c=5*this.props.indentWidth);var h=n,u=Math.ceil(i.length/h);return _.a.createElement("div",Object.assign({className:"object-key-val"},E(s,r?"jsv-root":"objectKeyVal",{paddingLeft:c})),_.a.createElement(xe,this.props),_.a.createElement("span",null,_.a.createElement(ke,Object.assign({size:i.length},this.props))),F(Array(u)).map((function(t,n){return _.a.createElement("div",Object.assign({key:n,className:"object-key-val array-group"},E(s,"objectKeyVal",{marginLeft:6,paddingLeft:d})),_.a.createElement("span",E(s,"brace-row"),_.a.createElement("div",Object.assign({className:"icon-container"},E(s,"icon-container"),{onClick:function(t){e.toggleCollapsed(n)}}),e.getExpandedIcon(n)),e.state.expanded[n]?_.a.createElement(Me,Object.assign({key:o+n,depth:0,name:!1,collapsed:!1,groupArraysAfterLength:h,index_offset:n*h,src:i.slice(n*h,n*h+h),namespace:a,type:"array",parent_type:"array_group",theme:s},l)):_.a.createElement("span",Object.assign({},E(s,"brace"),{onClick:function(t){e.toggleCollapsed(n)},className:"array-group-brace"}),"[",_.a.createElement("div",Object.assign({},E(s,"array-group-meta-data"),{className:"array-group-meta-data"}),_.a.createElement("span",Object.assign({className:"object-size"},E(s,"object-size")),n*h," - ",n*h+h>i.length?i.length:n*h+h)),"]")))})))}}]),i}(_.a.PureComponent),Ie=function(e){d(i,e);var t=m(i);function i(e){var n;r(this,i),(n=t.call(this,e)).toggleCollapsed=function(){n.setState({expanded:!n.state.expanded},(function(){H.set(n.props.rjvId,n.props.namespace,"expanded",n.state.expanded)}))},n.getObjectContent=function(e,t,i){return _.a.createElement("div",{className:"pushed-content object-container"},_.a.createElement("div",Object.assign({className:"object-content"},E(n.props.theme,"pushed-content")),n.renderObjectContents(t,i)))},n.getEllipsis=function(){return 0===n.state.size?null:_.a.createElement("div",Object.assign({},E(n.props.theme,"ellipsis"),{className:"node-ellipsis",onClick:n.toggleCollapsed}),"...")},n.getObjectMetaData=function(e){var t=n.props,i=(t.rjvId,t.theme,n.state),o=i.size,s=i.hovered;return _.a.createElement(ke,Object.assign({rowHovered:s,size:o},n.props))},n.renderObjectContents=function(e,t){var i,o=n.props,s=o.depth,r=o.parent_type,a=o.index_offset,l=o.groupArraysAfterLength,c=o.namespace,d=n.state.object_type,h=[],u=Object.keys(e||{});return n.props.sortKeys&&"array"!==d&&(u=u.sort()),u.forEach((function(o){if(i=new Te(o,e[o]),"array_group"===r&&a&&(i.name=parseInt(i.name)+a),e.hasOwnProperty(o))if("object"===i.type)h.push(_.a.createElement(Me,Object.assign({key:i.name,depth:s+1,name:i.name,src:i.value,namespace:c.concat(i.name),parent_type:d},t)));else if("array"===i.type){var u=Me;l&&i.value.length>l&&(u=Ee),h.push(_.a.createElement(u,Object.assign({key:i.name,depth:s+1,name:i.name,src:i.value,namespace:c.concat(i.name),type:"array",parent_type:d},t)))}else h.push(_.a.createElement(Le,Object.assign({key:i.name+"_"+c,variable:i,singleIndent:5,namespace:c,type:n.props.type},t)))})),h};var o=i.getState(e);return n.state=s(s({},o),{},{prevProps:{}}),n}return l(i,[{key:"getBraceStart",value:function(e,t){var i=this,n=this.props,o=n.src,s=n.theme,r=n.iconStyle;if("array_group"===n.parent_type)return _.a.createElement("span",null,_.a.createElement("span",E(s,"brace"),"array"===e?"[":"{"),t?this.getObjectMetaData(o):null);var a=t?De:Ne;return _.a.createElement("span",null,_.a.createElement("span",Object.assign({onClick:function(e){i.toggleCollapsed()}},E(s,"brace-row")),_.a.createElement("div",Object.assign({className:"icon-container"},E(s,"icon-container")),_.a.createElement(a,{theme:s,iconStyle:r})),_.a.createElement(xe,this.props),_.a.createElement("span",E(s,"brace"),"array"===e?"[":"{")),t?this.getObjectMetaData(o):null)}},{key:"render",value:function(){var e=this,t=this.props,i=t.depth,n=t.src,o=(t.namespace,t.name,t.type,t.parent_type),r=t.theme,a=t.jsvRoot,l=t.iconStyle,c=y(t,["depth","src","namespace","name","type","parent_type","theme","jsvRoot","iconStyle"]),d=this.state,h=d.object_type,u=d.expanded,g={};return a||"array_group"===o?"array_group"===o&&(g.borderLeft=0,g.display="inline"):g.paddingLeft=5*this.props.indentWidth,_.a.createElement("div",Object.assign({className:"object-key-val",onMouseEnter:function(){return e.setState(s(s({},e.state),{},{hovered:!0}))},onMouseLeave:function(){return e.setState(s(s({},e.state),{},{hovered:!1}))}},E(r,a?"jsv-root":"objectKeyVal",g)),this.getBraceStart(h,u),u?this.getObjectContent(i,n,s({theme:r,iconStyle:l},c)):this.getEllipsis(),_.a.createElement("span",{className:"brace-row"},_.a.createElement("span",{style:s(s({},E(r,"brace").style),{},{paddingLeft:u?"3px":"0px"})},"array"===h?"]":"}"),u?null:this.getObjectMetaData(n)))}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps;return e.src!==n.src||e.collapsed!==n.collapsed||e.name!==n.name||e.namespace!==n.namespace||e.rjvId!==n.rjvId?s(s({},i.getState(e)),{},{prevProps:e}):null}}]),i}(_.a.PureComponent);Ie.getState=function(e){var t=Object.keys(e.src).length,i=(!1===e.collapsed||!0!==e.collapsed&&e.collapsed>e.depth)&&(!e.shouldCollapse||!1===e.shouldCollapse({name:e.name,src:e.src,type:S(e.src),namespace:e.namespace}))&&0!==t;return{expanded:H.get(e.rjvId,e.namespace,"expanded",i),object_type:"array"===e.type?"array":"object",parent_type:"array"===e.type?"array":"object",size:t,hovered:!1}};var Te=function e(t,i){r(this,e),this.name=t,this.value=i,this.type=S(i)};w(Ie);var Me=Ie,Ae=function(e){d(i,e);var t=m(i);function i(){var e;r(this,i);for(var n=arguments.length,o=new Array(n),s=0;st.groupArraysAfterLength&&(n=Ee),_.a.createElement("div",{className:"pretty-json-container object-container"},_.a.createElement("div",{className:"object-content"},_.a.createElement(n,Object.assign({namespace:i,depth:0,jsvRoot:!0},t))))},e}return i}(_.a.PureComponent),Re=function(e){d(i,e);var t=m(i);function i(e){var n;return r(this,i),(n=t.call(this,e)).closeModal=function(){V.dispatch({rjvId:n.props.rjvId,name:"RESET"})},n.submit=function(){n.props.submit(n.state.input)},n.state={input:e.input?e.input:""},n}return l(i,[{key:"render",value:function(){var e=this,t=this.props,i=t.theme,n=t.rjvId,o=t.isValid,s=this.state.input,r=o(s);return _.a.createElement("div",Object.assign({className:"key-modal-request"},E(i,"key-modal-request"),{onClick:this.closeModal}),_.a.createElement("div",Object.assign({},E(i,"key-modal"),{onClick:function(e){e.stopPropagation()}}),_.a.createElement("div",E(i,"key-modal-label"),"Key Name:"),_.a.createElement("div",{style:{position:"relative"}},_.a.createElement("input",Object.assign({},E(i,"key-modal-input"),{className:"key-modal-input",ref:function(e){return e&&e.focus()},spellCheck:!1,value:s,placeholder:"...",onChange:function(t){e.setState({input:t.target.value})},onKeyPress:function(t){r&&"Enter"===t.key?e.submit():"Escape"===t.key&&e.closeModal()}})),r?_.a.createElement(we,Object.assign({},E(i,"key-modal-submit"),{className:"key-modal-submit",onClick:function(t){return e.submit()}})):null),_.a.createElement("span",E(i,"key-modal-cancel"),_.a.createElement(be,Object.assign({},E(i,"key-modal-cancel-icon"),{className:"key-modal-cancel",onClick:function(){V.dispatch({rjvId:n,name:"RESET"})}})))))}}]),i}(_.a.PureComponent),Oe=function(e){d(i,e);var t=m(i);function i(){var e;r(this,i);for(var n=arguments.length,o=new Array(n),a=0;a=55296&&i<=56319&&a+1=56320&&t<=57343&&(c=65536+(i-55296<<10)|t-56320,d=!0)}n&&(o[a]=l,d&&(o[a+1]=l),c<=127?s[l+0]=a:c<=2047?(s[l+0]=a,s[l+1]=a):c<=65535?(s[l+0]=a,s[l+1]=a,s[l+2]=a):(s[l+0]=a,s[l+1]=a,s[l+2]=a,s[l+3]=a)),c<=127?r[l++]=c:c<=2047?(r[l++]=192|(1984&c)>>>6,r[l++]=128|(63&c)>>>0):c<=65535?(r[l++]=224|(61440&c)>>>12,r[l++]=128|(4032&c)>>>6,r[l++]=128|(63&c)>>>0):(r[l++]=240|(1835008&c)>>>18,r[l++]=128|(258048&c)>>>12,r[l++]=128|(4032&c)>>>6,r[l++]=128|(63&c)>>>0),d&&a++}this.utf16Length=t,this.utf8Length=i,this.utf16Value=e,this.utf8Value=r,this.utf16OffsetToUtf8=o,this.utf8OffsetToUtf16=s}static _utf8ByteLength(e){let t=0;for(let i=0,n=e.length;i=55296&&o<=56319&&i+1=56320&&t<=57343&&(s=65536+(o-55296<<10)|t-56320,r=!0)}t+=s<=127?1:s<=2047?2:s<=65535?3:4,r&&i++}return t}createString(e){const t=e._omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,t),t}}class l{constructor(e){if(this.id=++l.LAST_ID,!s)throw new Error("Must invoke loadWASM first.");this._onigBinding=s,this.content=e;const t=new a(e);this.utf16Length=t.utf16Length,this.utf8Length=t.utf8Length,this.utf16OffsetToUtf8=t.utf16OffsetToUtf8,this.utf8OffsetToUtf16=t.utf8OffsetToUtf16,this.utf8Length<1e4&&!l._sharedPtrInUse?(l._sharedPtr||(l._sharedPtr=s._omalloc(1e4)),l._sharedPtrInUse=!0,s.HEAPU8.set(t.utf8Value,l._sharedPtr),this.ptr=l._sharedPtr):this.ptr=t.createString(s)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===l._sharedPtr?l._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}t.OnigString=l,l.LAST_ID=0,l._sharedPtr=0,l._sharedPtrInUse=!1;class c{constructor(e){if(!s)throw new Error("Must invoke loadWASM first.");const t=[],i=[];for(let l=0,c=e.length;lWebAssembly.instantiateStreaming(e,t)}(n):function(e){return async t=>{const i=await e.arrayBuffer();return WebAssembly.instantiate(i,t)}}(n):function(e){return t=>WebAssembly.instantiate(e,t)}(n)}return h=new Promise(((e,t)=>{n=e,r=t})),function(e,t,i,n){o.default({print:t,instantiateWasm:(t,i)=>{if("undefined"==typeof performance){const e=()=>Date.now();t.env.emscripten_get_now=e,t.wasi_snapshot_preview1.emscripten_get_now=e}return e(t).then((e=>i(e.instance)),n),{}}}).then((e=>{s=e,i()}))}(t,i,n,r),h},t.createOnigString=function(e){return new l(e)},t.createOnigScanner=function(e){return new c(e)},t.setDefaultDebugCall=function(e){r=e}},418:e=>{var t=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(e){var t,i,n=void 0!==(e=e||{})?e:{};n.ready=new Promise((function(e,n){t=e,i=n}));var o,s={};for(o in n)n.hasOwnProperty(o)&&(s[o]=n[o]);var r,a=[],l=!1,c=!1,d="";function h(e){return n.locateFile?n.locateFile(e,d):d+e}r=function(e){var t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(v("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs?a=scriptArgs:void 0!==arguments&&(a=arguments),"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var u=n.print||console.log.bind(console),g=n.printErr||console.warn.bind(console);for(o in s)s.hasOwnProperty(o)&&(n[o]=s[o]);s=null,n.arguments&&(a=n.arguments),n.thisProgram&&n.thisProgram,n.quit&&n.quit;var p,m,f=function(e){};n.wasmBinary&&(p=n.wasmBinary),n.noExitRuntime,"object"!=typeof WebAssembly&&j("no native wasm support detected");var _=!1;function v(e,t){e||j("Assertion failed: "+t)}var b,C,w,y="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function S(e,t,i){for(var n=t+i,o=t;e[o]&&!(o>=n);)++o;if(o-t>16&&e.subarray&&y)return y.decode(e.subarray(t,o));for(var s="";t>10,56320|1023&c)}}else s+=String.fromCharCode((31&r)<<6|a)}else s+=String.fromCharCode(r)}return s}function L(e,t){return e?S(C,e,t):""}function k(e,t){return e%t>0&&(e+=t-e%t),e}function x(e){b=e,n.HEAP8=new Int8Array(e),n.HEAP16=new Int16Array(e),n.HEAP32=w=new Int32Array(e),n.HEAPU8=C=new Uint8Array(e),n.HEAPU16=new Uint16Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),n.HEAPF64=new Float64Array(e)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le"),n.INITIAL_MEMORY;var D,N=[],E=[],I=[],T=[];function M(){if(n.preRun)for("function"==typeof n.preRun&&(n.preRun=[n.preRun]);n.preRun.length;)P(n.preRun.shift());J(N)}function A(){J(E)}function R(){J(I)}function O(){if(n.postRun)for("function"==typeof n.postRun&&(n.postRun=[n.postRun]);n.postRun.length;)F(n.postRun.shift());J(T)}function P(e){N.unshift(e)}function F(e){T.unshift(e)}E.push({func:function(){le()}});var B=0,V=null,W=null;function H(e){B++,n.monitorRunDependencies&&n.monitorRunDependencies(B)}function z(e){if(B--,n.monitorRunDependencies&&n.monitorRunDependencies(B),0==B&&(null!==V&&(clearInterval(V),V=null),W)){var t=W;W=null,t()}}function j(e){n.onAbort&&n.onAbort(e),g(e+=""),_=!0,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.";var t=new WebAssembly.RuntimeError(e);throw i(t),t}function K(e,t){return String.prototype.startsWith?e.startsWith(t):0===e.indexOf(t)}n.preloadedImages={},n.preloadedAudios={};var U="data:application/octet-stream;base64,";function $(e){return K(e,U)}var q,G="onig.wasm";function Q(e){try{if(e==G&&p)return new Uint8Array(p);if(r)return r(e);throw"both async and sync fetching of the wasm failed"}catch(e){j(e)}}function Z(){return p||!l&&!c||"function"!=typeof fetch?Promise.resolve().then((function(){return Q(G)})):fetch(G,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+G+"'";return e.arrayBuffer()})).catch((function(){return Q(G)}))}function Y(){var e={env:ae,wasi_snapshot_preview1:ae};function t(e,t){var i=e.exports;n.asm=i,x((m=n.asm.memory).buffer),D=n.asm.__indirect_function_table,z()}function o(e){t(e.instance)}function s(t){return Z().then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){g("failed to asynchronously prepare wasm: "+e),j(e)}))}if(H(),n.instantiateWasm)try{return n.instantiateWasm(e,t)}catch(e){return g("Module.instantiateWasm callback failed with error: "+e),!1}return(p||"function"!=typeof WebAssembly.instantiateStreaming||$(G)||"function"!=typeof fetch?s(o):fetch(G,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(o,(function(e){return g("wasm streaming compile failed: "+e),g("falling back to ArrayBuffer instantiation"),s(o)}))}))).catch(i),{}}function J(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var i=t.func;"number"==typeof i?void 0===t.arg?D.get(i)():D.get(i)(t.arg):i(void 0===t.arg?null:t.arg)}else t(n)}}function X(e,t,i){C.copyWithin(e,t,t+i)}function ee(){return C.length}function te(e){try{return m.grow(e-b.byteLength+65535>>>16),x(m.buffer),1}catch(e){}}function ie(e){var t=ee(),i=2147483648;if(e>i)return!1;for(var n=1;n<=4;n*=2){var o=t*(1+.2/n);if(o=Math.min(o,e+100663296),te(Math.min(i,k(Math.max(e,o),65536))))return!0}return!1}$(G)||(G=h(G)),q="undefined"!=typeof dateNow?dateNow:function(){return performance.now()};var ne={mappings:{},buffers:[null,[],[]],printChar:function(e,t){var i=ne.buffers[e];0===t||10===t?((1===e?u:g)(S(i,0)),i.length=0):i.push(t)},varargs:void 0,get:function(){return ne.varargs+=4,w[ne.varargs-4>>2]},getStr:function(e){return L(e)},get64:function(e,t){return e}};function oe(e,t,i,n){for(var o=0,s=0;s>2],a=w[t+(8*s+4)>>2],l=0;l>2]=o,0}function se(e){f(0|e)}var re,ae={emscripten_get_now:q,emscripten_memcpy_big:X,emscripten_resize_heap:ie,fd_write:oe,setTempRet0:se},le=(Y(),n.___wasm_call_ctors=function(){return(le=n.___wasm_call_ctors=n.asm.__wasm_call_ctors).apply(null,arguments)});function ce(e){function i(){re||(re=!0,n.calledRun=!0,_||(A(),R(),t(n),n.onRuntimeInitialized&&n.onRuntimeInitialized(),O()))}e=e||a,B>0||(M(),B>0||(n.setStatus?(n.setStatus("Running..."),setTimeout((function(){setTimeout((function(){n.setStatus("")}),1),i()}),1)):i()))}if(n.___errno_location=function(){return(n.___errno_location=n.asm.__errno_location).apply(null,arguments)},n._omalloc=function(){return(n._omalloc=n.asm.omalloc).apply(null,arguments)},n._ofree=function(){return(n._ofree=n.asm.ofree).apply(null,arguments)},n._getLastOnigError=function(){return(n._getLastOnigError=n.asm.getLastOnigError).apply(null,arguments)},n._createOnigScanner=function(){return(n._createOnigScanner=n.asm.createOnigScanner).apply(null,arguments)},n._freeOnigScanner=function(){return(n._freeOnigScanner=n.asm.freeOnigScanner).apply(null,arguments)},n._findNextOnigScannerMatch=function(){return(n._findNextOnigScannerMatch=n.asm.findNextOnigScannerMatch).apply(null,arguments)},n._findNextOnigScannerMatchDbg=function(){return(n._findNextOnigScannerMatchDbg=n.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},n.stackSave=function(){return(n.stackSave=n.asm.stackSave).apply(null,arguments)},n.stackRestore=function(){return(n.stackRestore=n.asm.stackRestore).apply(null,arguments)},n.stackAlloc=function(){return(n.stackAlloc=n.asm.stackAlloc).apply(null,arguments)},n.dynCall_jiji=function(){return(n.dynCall_jiji=n.asm.dynCall_jiji).apply(null,arguments)},n.UTF8ToString=L,W=function e(){re||ce(),re||(W=e)},n.run=ce,n.preInit)for("function"==typeof n.preInit&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.pop()();return ce(),e.ready});e.exports=t}},i={},function e(n){var o=i[n];if(void 0!==o)return o.exports;var s=i[n]={exports:{}};return t[n].call(s.exports,s,s.exports,e),s.exports}(770))},22190:function(e){e.exports=(()=>{"use strict";var e={350:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UseOnigurumaFindOptions=t.DebugFlags=void 0,t.DebugFlags={InDebugMode:"undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG},t.UseOnigurumaFindOptions=!1},527:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BalancedBracketSelectors=t.LocalStackElement=t.StackElement=t.ScopeListElement=t.StackElementMetadata=t.Grammar=t.ScopeMetadata=t.ScopeDependencyProcessor=t.ScopeDependencyCollector=t.PartialScopeDependency=t.FullScopeDependency=t.createGrammar=void 0;var n=i(878),o=i(792),s=i(736),r=i(350),a="undefined"==typeof performance?function(){return Date.now()}:function(){return performance.now()};t.createGrammar=function(e,t,i,n,o,s,r,a){return new w(e,t,i,n,o,s,r,a)};var l=function(e){this.scopeName=e};t.FullScopeDependency=l;var c=function(){function e(e,t){this.scopeName=e,this.include=t}return e.prototype.toKey=function(){return"".concat(this.scopeName,"#").concat(this.include)},e}();t.PartialScopeDependency=c;var d=function(){function e(){this.full=[],this.partial=[],this.visitedRule=new Set,this._seenFull=new Set,this._seenPartial=new Set}return e.prototype.add=function(e){e instanceof l?this._seenFull.has(e.scopeName)||(this._seenFull.add(e.scopeName),this.full.push(e)):this._seenPartial.has(e.toKey())||(this._seenPartial.add(e.toKey()),this.partial.push(e))},e}();function h(e,t,i,o,s){for(var r=0,a=o;r=0){var _=g.substring(0,f),v=g.substring(f+1);_===t.scopeName?p(e,t,t,v,u):_===i.scopeName?p(e,t,i,v,u):e.add(new c(_,g.substring(f+1)))}else e.add(new l(g))}}}}t.ScopeDependencyCollector=d;var u=function(){function e(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new l(this.initialScopeName)]}return e.prototype.processQueue=function(){var e=this.Q;this.Q=[];for(var t=new d,i=0,n=e;i"))}function p(e,t,i,n,o){void 0===o&&(o=i.repository),o&&o[n]&&h(e,t,i,[o[n]],o)}function m(e,t,i){if(i.patterns&&Array.isArray(i.patterns)&&h(e,t,i,i.patterns,i.repository),i.injections){var n=[];for(var o in i.injections)n.push(i.injections[o]);h(e,t,i,n,i.repository)}}function f(e,t){if(!e)return!1;if(e===t)return!0;var i=t.length;return e.length>i&&e.substr(0,i)===t&&"."===e[i]}function _(e,t){if(t.length>")}var c=Object.keys(this._embeddedLanguages).map((function(t){return e._escapeRegExpCharacters(t)}));0===c.length?this._embeddedLanguagesRegex=null:(c.sort(),c.reverse(),this._embeddedLanguagesRegex=new RegExp("^((".concat(c.join(")|("),"))($|\\.)"),""))}return e.prototype.onDidChangeTheme=function(){this._cache=new Map,this._defaultMetaData=new b("",this._initialLanguage,8,[this._themeProvider.getDefaults()])},e.prototype.getDefaultMetadata=function(){return this._defaultMetaData},e._escapeRegExpCharacters=function(e){return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")},e.prototype.getMetadataForScope=function(t){if(null===t)return e._NULL_SCOPE_METADATA;var i=this._cache.get(t);return i||(i=this._doGetMetadataForScope(t),this._cache.set(t,i),i)},e.prototype._doGetMetadataForScope=function(e){var t=this._scopeToLanguage(e),i=this._toStandardTokenType(e),n=this._themeProvider.themeMatch(e);return new b(e,t,i,n)},e.prototype._scopeToLanguage=function(e){if(!e)return 0;if(!this._embeddedLanguagesRegex)return 0;var t=e.match(this._embeddedLanguagesRegex);return t&&(this._embeddedLanguages[t[1]]||0)||0},e.prototype._toStandardTokenType=function(t){var i=t.match(e.STANDARD_TOKEN_TYPE_REGEXP);if(!i)return 8;switch(i[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")},e._NULL_SCOPE_METADATA=new b("",0,0,null),e.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/,e}(),w=function(){function e(e,t,i,n,o,r,a,l){if(this.balancedBracketSelectors=r,this._scopeName=e,this._scopeMetadataProvider=new C(i,a,n),this._onigLib=l,this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=a,this._grammar=S(t,null),this._injections=null,this._tokenTypeMatchers=[],o)for(var c=0,d=Object.keys(o);c0)){console.log("Grammar ".concat(this._scopeName," contains the following injections:"));for(var e=0,t=this._injections;ed)break;for(;c.length>0&&c[c.length-1].endPos<=g.start;)o.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop();if(c.length>0?o.produceFromScopes(c[c.length-1].scopes,g.start):o.produce(n,g.start),u.retokenizeCapturedWithRuleId){var p=u.getName(a,r),m=n.contentNameScopesList.push(e,p),f=u.getContentName(a,r),_=m.push(e,f),v=n.push(u.retokenizeCapturedWithRuleId,g.start,-1,!1,null,m,_),b=e.createOnigString(a.substring(0,g.end));I(e,b,i&&0===g.start,g.start,v,o,!1,0),y(b)}else{var C=u.getName(a,r);if(null!==C){var w=(c.length>0?c[c.length-1].scopes:n.contentNameScopesList).push(e,C);c.push(new R(w,g.end))}}}}}for(;c.length>0;)o.produceFromScopes(c[c.length-1].scopes,c[c.length-1].endPos),c.pop()}}function k(e){for(var t=[],i=0,n=e.rules.length;in&&(n=f.captureIndices[0].end,i=!1))}return{stack:s,linePos:n,anchorPosition:l,isFirstLine:i}}(e,t,i,n,s,l);s=p.stack,n=p.linePos,i=p.isFirstLine,g=p.anchorPosition}for(var m=Date.now();!u;){if(0!==d&&Date.now()-m>d)return new E(s,!0);f()}return new E(s,!1);function f(){r.DebugFlags.InDebugMode&&(console.log(""),console.log("@@scanNext ".concat(n,": |").concat(t.content.substr(n).replace(/\n$/,"\\n"),"|")));var c=function(e,t,i,n,o,s){var l=function(e,t,i,n,o,s){var l=o.getRule(e),c=D(l,e,o.endRule,i,n===s),d=c.ruleScanner,h=c.findOptions,u=0;r.DebugFlags.InDebugMode&&(u=a());var g=d.scanner.findNextMatchSync(t,n,h);if(r.DebugFlags.InDebugMode){var p=a()-u;p>5&&console.warn("Rule ".concat(l.debugName," (").concat(l.id,") matching took ").concat(p," against '").concat(t,"'")),console.log(" scanning for (linePos: ".concat(n,", anchorPosition: ").concat(s,")")),console.log(k(d)),g&&console.log("matched rule id: ".concat(d.rules[g.index]," from ").concat(g.captureIndices[0].start," to ").concat(g.captureIndices[0].end))}return g?{captureIndices:g.captureIndices,matchedRuleId:d.rules[g.index]}:null}(e,t,i,n,o,s),c=e.getInjections();if(0===c.length)return l;var d=function(e,t,i,n,o,s,a){for(var l,c=Number.MAX_VALUE,d=null,h=0,u=s.contentNameScopesList.generateScopes(),g=0,p=e.length;g=c)&&(c=C,d=b.captureIndices,l=_.rules[b.index],h=m.priority,c===o))break}}}return d?{priorityMatch:-1===h,captureIndices:d,matchedRuleId:l}:null}(c,e,t,i,n,o,s);if(!d)return l;if(!l)return d;var h=l.captureIndices[0].start,u=d.captureIndices[0].start;return u0)&&d[0].end>n;if(-1===p){var f=s.getRule(e);r.DebugFlags.InDebugMode&&console.log(" popping "+f.debugName+" - "+f.debugEndRegExp),l.produce(s,d[0].start),s=s.setContentNameScopesList(s.nameScopesList),L(e,t,i,s,l,f.endCaptures,d),l.produce(s,d[0].end);var _=s;if(s=s.pop(),g=_.getAnchorPos(),!m&&_.getEnterPos()===n)return r.DebugFlags.InDebugMode&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),s=_,l.produce(s,h),void(u=!0)}else{var v=e.getRule(p);l.produce(s,d[0].start);var b=s,C=v.getName(t.content,d),w=s.contentNameScopesList.push(e,C);if(s=s.push(p,n,g,d[0].end===h,null,w,w),v instanceof o.BeginEndRule){var y=v;r.DebugFlags.InDebugMode&&console.log(" pushing "+y.debugName+" - "+y.debugBeginRegExp),L(e,t,i,s,l,y.beginCaptures,d),l.produce(s,d[0].end),g=d[0].end;var S=y.getContentName(t.content,d),x=w.push(e,S);if(s=s.setContentNameScopesList(x),y.endHasBackReferences&&(s=s.setEndRule(y.getEndWithResolvedBackReferences(t.content,d))),!m&&b.hasSameRuleAs(s))return r.DebugFlags.InDebugMode&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),s=s.pop(),l.produce(s,h),void(u=!0)}else if(v instanceof o.BeginWhileRule){if(y=v,r.DebugFlags.InDebugMode&&console.log(" pushing "+y.debugName),L(e,t,i,s,l,y.beginCaptures,d),l.produce(s,d[0].end),g=d[0].end,S=y.getContentName(t.content,d),x=w.push(e,S),s=s.setContentNameScopesList(x),y.whileHasBackReferences&&(s=s.setEndRule(y.getWhileWithResolvedBackReferences(t.content,d))),!m&&b.hasSameRuleAs(s))return r.DebugFlags.InDebugMode&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),s=s.pop(),l.produce(s,h),void(u=!0)}else{var N=v;if(r.DebugFlags.InDebugMode&&console.log(" matched "+N.debugName+" - "+N.debugMatchRegExp),L(e,t,i,s,l,N.captures,d),l.produce(s,d[0].end),s=s.pop(),!m)return r.DebugFlags.InDebugMode&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),s=s.safePop(),l.produce(s,h),void(u=!0)}}d[0].end>n&&(n=d[0].end,i=!1)}}var T=function(){function e(){}return e.toBinaryStr=function(e){for(var t=e.toString(2);t.length<32;)t="0"+t;return t},e.printMetadata=function(t){var i=e.getLanguageId(t),n=e.getTokenType(t),o=e.getFontStyle(t),s=e.getForeground(t),r=e.getBackground(t);console.log({languageId:i,tokenType:n,fontStyle:o,foreground:s,background:r})},e.getLanguageId=function(e){return(255&e)>>>0},e.getTokenType=function(e){return(768&e)>>>8},e.containsBalancedBrackets=function(e){return 0!=(1024&e)},e.getFontStyle=function(e){return(30720&e)>>>11},e.getForeground=function(e){return(16744448&e)>>>15},e.getBackground=function(e){return(4278190080&e)>>>24},e.set=function(t,i,n,o,s,r,a){var l=e.getLanguageId(t),c=e.getTokenType(t),d=e.containsBalancedBrackets(t)?1:0,h=e.getFontStyle(t),u=e.getForeground(t),g=e.getBackground(t);return 0!==i&&(l=i),8!==n&&(c=n),null!==o&&(d=o?1:0),-1!==s&&(h=s),0!==r&&(u=r),0!==a&&(g=a),(l<<0|c<<8|d<<10|h<<11|u<<15|g<<24)>>>0},e}();t.StackElementMetadata=T;var M=function(){function e(e,t,i){this.parent=e,this.scope=t,this.metadata=i}return e._equals=function(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.scope!==t.scope||e.metadata!==t.metadata)return!1;e=e.parent,t=t.parent}},e.prototype.equals=function(t){return e._equals(this,t)},e._matchesScope=function(e,t,i){return t===e||e.substring(0,i.length)===i},e._matches=function(e,t){if(null===t)return!0;for(var i=t.length,n=0,o=t[n],s=o+".";e;){if(this._matchesScope(e.scope,o,s)){if(++n===i)return!0;s=(o=t[n])+"."}e=e.parent}return!1},e.mergeMetadata=function(e,t,i){if(null===i)return e;var n=-1,o=0,s=0;if(null!==i.themeData)for(var r=0,a=i.themeData.length;r=0?e._push(this,t,i.split(/ /g)):e._push(this,t,[i])},e._generateScopes=function(e){for(var t=[],i=0;e;)t[i++]=e.scope,e=e.parent;return t.reverse(),t},e.prototype.generateScopes=function(){return e._generateScopes(this)},e}();t.ScopeListElement=M;var A=function(){function e(e,t,i,n,o,s,r,a){this._stackElementBrand=void 0,this.parent=e,this.depth=this.parent?this.parent.depth+1:1,this.ruleId=t,this._enterPos=i,this._anchorPos=n,this.beginRuleCapturedEOL=o,this.endRule=s,this.nameScopesList=r,this.contentNameScopesList=a}return e._structuralEquals=function(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}},e._equals=function(e,t){return e===t||!!this._structuralEquals(e,t)&&e.contentNameScopesList.equals(t.contentNameScopesList)},e.prototype.clone=function(){return this},e.prototype.equals=function(t){return null!==t&&e._equals(this,t)},e._reset=function(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent},e.prototype.reset=function(){e._reset(this)},e.prototype.pop=function(){return this.parent},e.prototype.safePop=function(){return this.parent?this.parent:this},e.prototype.push=function(t,i,n,o,s,r,a){return new e(this,t,i,n,o,s,r,a)},e.prototype.getEnterPos=function(){return this._enterPos},e.prototype.getAnchorPos=function(){return this._anchorPos},e.prototype.getRule=function(e){return e.getRule(this.ruleId)},e.prototype._writeString=function(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]="(".concat(this.ruleId,", TODO-").concat(this.nameScopesList,", TODO-").concat(this.contentNameScopesList,")"),t},e.prototype.toString=function(){var e=[];return this._writeString(e,0),"["+e.join(",")+"]"},e.prototype.setContentNameScopesList=function(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)},e.prototype.setEndRule=function(t){return this.endRule===t?this:new e(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)},e.prototype.hasSameRuleAs=function(e){for(var t=this;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1},e.NULL=new e(null,0,0,0,!1,null,null,null),e}();t.StackElement=A;var R=function(e,t){this.scopes=e,this.endPos=t};t.LocalStackElement=R;var O=function(){function e(e,t){var i=this;this.allowAny=!1,this.balancedBracketScopes=e.flatMap((function(e){return"*"===e?(i.allowAny=!0,[]):(0,s.createMatchers)(e,_).map((function(e){return e.matcher}))})),this.unbalancedBracketScopes=t.flatMap((function(e){return(0,s.createMatchers)(e,_).map((function(e){return e.matcher}))}))}return Object.defineProperty(e.prototype,"matchesAlways",{get:function(){return this.allowAny&&0===this.unbalancedBracketScopes.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"matchesNever",{get:function(){return 0===this.balancedBracketScopes.length&&!this.allowAny},enumerable:!1,configurable:!0}),e.prototype.match=function(e){for(var t=0,i=this.unbalancedBracketScopes;t=t)){if(this._emitBinaryTokens){var n=e.metadata,o=!1;if((null===(i=this.balancedBracketSelectors)||void 0===i?void 0:i.matchesAlways)&&(o=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){for(var s=e.generateScopes(),a=0,l=this._tokenTypeOverrides;a0&&this._binaryTokens[this._binaryTokens.length-1]===n)return void(this._lastTokenEndIndex=t);if(r.DebugFlags.InDebugMode){var d=e.generateScopes();console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,t).replace(/\n$/,"\\n")+"|");for(var h=0;h0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens},e.prototype.getBinaryResult=function(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);for(var i=new Uint32Array(this._binaryTokens.length),n=0,o=this._binaryTokens.length;n{Object.defineProperty(t,"__esModule",{value:!0}),t.parseRawGrammar=void 0;var n=i(69),o=i(350),s=i(974);t.parseRawGrammar=function(e,t){return void 0===t&&(t=null),null!==t&&/\.json$/.test(t)?(i=e,r=t,o.DebugFlags.InDebugMode?(0,s.parse)(i,r,!0):JSON.parse(i)):function(e,t){return o.DebugFlags.InDebugMode?n.parseWithLocation(e,t,"$vscodeTextmateLocation"):n.parse(e)}(e,t);var i,r}},974:(e,t)=>{function i(e,t){throw new Error("Near offset "+e.pos+": "+t+" ~~~"+e.source.substr(e.pos,50)+"~~~")}Object.defineProperty(t,"__esModule",{value:!0}),t.parse=void 0,t.parse=function(e,t,r){var a=new n(e),l=new o,c=0,d=null,h=[],u=[];function g(){h.push(c),u.push(d)}function p(){c=h.pop(),d=u.pop()}function m(e){i(a,e)}for(;s(a,l);){if(0===c){if(null!==d&&m("too many constructs in root"),3===l.type){d={},r&&(d.$vscodeTextmateLocation=l.toLocation(t)),g(),c=1;continue}if(2===l.type){d=[],g(),c=4;continue}m("unexpected token in root")}if(2===c){if(5===l.type){p();continue}if(7===l.type){c=3;continue}m("expected , or }")}if(1===c||3===c){if(1===c&&5===l.type){p();continue}if(1===l.type){var f=l.value;if(s(a,l)&&6===l.type||m("expected colon"),s(a,l)||m("expected value"),c=2,1===l.type){d[f]=l.value;continue}if(8===l.type){d[f]=null;continue}if(9===l.type){d[f]=!0;continue}if(10===l.type){d[f]=!1;continue}if(11===l.type){d[f]=parseFloat(l.value);continue}if(2===l.type){var _=[];d[f]=_,g(),c=4,d=_;continue}if(3===l.type){var v={};r&&(v.$vscodeTextmateLocation=l.toLocation(t)),d[f]=v,g(),c=1,d=v;continue}}m("unexpected token in dict")}if(5===c){if(4===l.type){p();continue}if(7===l.type){c=6;continue}m("expected , or ]")}if(4===c||6===c){if(4===c&&4===l.type){p();continue}if(c=5,1===l.type){d.push(l.value);continue}if(8===l.type){d.push(null);continue}if(9===l.type){d.push(!0);continue}if(10===l.type){d.push(!1);continue}if(11===l.type){d.push(parseFloat(l.value));continue}if(2===l.type){_=[],d.push(_),g(),c=4,d=_;continue}if(3===l.type){v={},r&&(v.$vscodeTextmateLocation=l.toLocation(t)),d.push(v),g(),c=1,d=v;continue}m("unexpected token in array")}m("unknown state")}return 0!==u.length&&m("unclosed constructs"),d};var n=function(e){this.source=e,this.pos=0,this.len=e.length,this.line=1,this.char=0},o=function(){function e(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}return e.prototype.toLocation=function(e){return{filename:e,line:this.line,char:this.char}},e}();function s(e,t){t.value=null,t.type=0,t.offset=-1,t.len=-1,t.line=-1,t.char=-1;for(var n,o=e.source,s=e.pos,r=e.len,a=e.line,l=e.char;;){if(s>=r)return!1;if(32!==(n=o.charCodeAt(s))&&9!==n&&13!==n){if(10!==n)break;s++,a++,l=0}else s++,l++}if(t.offset=s,t.line=a,t.char=l,34===n){for(t.type=1,s++,l++;;){if(s>=r)return!1;if(n=o.charCodeAt(s),s++,l++,92!==n){if(34===n)break}else s++,l++}t.value=o.substring(t.offset+1,s-1).replace(/\\u([0-9A-Fa-f]{4})/g,(function(e,t){return String.fromCodePoint(parseInt(t,16))})).replace(/\\(.)/g,(function(t,n){switch(n){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:i(e,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===n)t.type=2,s++,l++;else if(123===n)t.type=3,s++,l++;else if(93===n)t.type=4,s++,l++;else if(125===n)t.type=5,s++,l++;else if(58===n)t.type=6,s++,l++;else if(44===n)t.type=7,s++,l++;else if(110===n){if(t.type=8,s++,l++,117!==(n=o.charCodeAt(s)))return!1;if(s++,l++,108!==(n=o.charCodeAt(s)))return!1;if(s++,l++,108!==(n=o.charCodeAt(s)))return!1;s++,l++}else if(116===n){if(t.type=9,s++,l++,114!==(n=o.charCodeAt(s)))return!1;if(s++,l++,117!==(n=o.charCodeAt(s)))return!1;if(s++,l++,101!==(n=o.charCodeAt(s)))return!1;s++,l++}else if(102===n){if(t.type=10,s++,l++,97!==(n=o.charCodeAt(s)))return!1;if(s++,l++,108!==(n=o.charCodeAt(s)))return!1;if(s++,l++,115!==(n=o.charCodeAt(s)))return!1;if(s++,l++,101!==(n=o.charCodeAt(s)))return!1;s++,l++}else for(t.type=11;;){if(s>=r)return!1;if(!(46===(n=o.charCodeAt(s))||n>=48&&n<=57||101===n||69===n||45===n||43===n))break;s++,l++}return t.len=s-t.offset,null===t.value&&(t.value=o.substr(t.offset,t.len)),e.pos=s,e.line=a,e.char=l,!0}},787:function(e,t,i){var n=this&&this.__createBinding||(Object.create?function(e,t,i,n){void 0===n&&(n=i);var o=Object.getOwnPropertyDescriptor(t,i);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,n,o)}:function(e,t,i,n){void 0===n&&(n=i),e[n]=t[i]}),o=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||n(t,e,i)},s=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(e){s(e)}}function a(e){try{l(n.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))},r=this&&this.__generator||function(e,t){var i,n,o,s,r={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return r.label++,{value:s[1],done:!1};case 5:r.label++,n=s[1],s=[0];continue;case 7:s=r.ops.pop(),r.trys.pop();continue;default:if(!((o=(o=r.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){r=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]0?[4,Promise.all(s.Q.map((function(e){return a._loadSingleGrammar(e.scopeName)})))]:[3,3];case 2:return r.sent(),s.processQueue(),[3,1];case 3:return[2,this._grammarForScopeName(e,t,i,n,o)]}}))}))},e.prototype.addGrammar=function(e,t,i,n){return void 0===t&&(t=[]),void 0===i&&(i=0),void 0===n&&(n=null),s(this,void 0,void 0,(function(){return r(this,(function(o){switch(o.label){case 0:return this._syncRegistry.addGrammar(e,t),[4,this._grammarForScopeName(e.scopeName,i,n)];case 1:return[2,o.sent()]}}))}))},e.prototype._grammarForScopeName=function(e,t,i,n,o){return void 0===t&&(t=0),void 0===i&&(i=null),void 0===n&&(n=null),void 0===o&&(o=null),this._syncRegistry.grammarForScopeName(e,t,i,n,o)},e}();t.Registry=h,t.INITIAL=d.StackElement.NULL,t.parseRawGrammar=l.parseRawGrammar},736:(e,t)=>{function i(e){return!!e&&!!e.match(/[\w\.:]+/)}Object.defineProperty(t,"__esModule",{value:!0}),t.createMatchers=void 0,t.createMatchers=function(e,t){for(var n,o,s,r=[],a=(s=(o=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g).exec(n=e),{next:function(){if(!s)return null;var e=s[0];return s=o.exec(n),e}}),l=a.next();null!==l;){var c=0;if(2===l.length&&":"===l.charAt(1)){switch(l.charAt(0)){case"R":c=1;break;case"L":c=-1;break;default:console.log("Unknown priority ".concat(l," in scope selector"))}l=a.next()}var d=u();if(r.push({matcher:d,priority:c}),","!==l)break;l=a.next()}return r;function h(){if("-"===l){l=a.next();var e=h();return function(t){return!!e&&!e(t)}}if("("===l){l=a.next();var n=function(){for(var e=[],t=u();t&&(e.push(t),"|"===l||","===l);){do{l=a.next()}while("|"===l||","===l);t=u()}return function(t){return e.some((function(e){return e(t)}))}}();return")"===l&&(l=a.next()),n}if(i(l)){var o=[];do{o.push(l),l=a.next()}while(i(l));return function(e){return t(o,e)}}return null}function u(){for(var e=[],t=h();t;)e.push(t),t=h();return function(t){return e.every((function(e){return e(t)}))}}}},69:(e,t)=>{function i(e,t,i){var n=e.length,o=0,s=1,r=0;function a(t){if(null===i)o+=t;else for(;t>0;)10===e.charCodeAt(o)?(o++,s++,r=0):(o++,r++),t--}function l(e){null===i?o=e:a(e-o)}function c(){for(;o0&&65279===e.charCodeAt(0)&&(o=1);var g=0,p=null,m=[],f=[],_=null;function v(e,t){m.push(g),f.push(p),g=e,p=t}function b(){if(0===m.length)return C("illegal state stack");g=m.pop(),p=f.pop()}function C(t){throw new Error("Near offset "+o+": "+t+" ~~~"+e.substr(o,50)+"~~~")}var w,y,S,L,k,x=function(){if(null===_)return C("missing ");var e={};null!==i&&(e[i]={filename:t,line:s,char:r}),p[_]=e,_=null,v(1,e)},D=function(){if(null===_)return C("missing ");var e=[];p[_]=e,_=null,v(2,e)};function N(){if(1!==g)return C("unexpected ");b()}function E(){return 1===g||2!==g?C("unexpected "):void b()}function I(e){if(1===g){if(null===_)return C("missing ");p[_]=e,_=null}else 2===g?p.push(e):p=e}function T(e){if(isNaN(e))return C("cannot parse float");if(1===g){if(null===_)return C("missing ");p[_]=e,_=null}else 2===g?p.push(e):p=e}function M(e){if(isNaN(e))return C("cannot parse integer");if(1===g){if(null===_)return C("missing ");p[_]=e,_=null}else 2===g?p.push(e):p=e}function A(e){if(1===g){if(null===_)return C("missing ");p[_]=e,_=null}else 2===g?p.push(e):p=e}function R(e){if(1===g){if(null===_)return C("missing ");p[_]=e,_=null}else 2===g?p.push(e):p=e}function O(e){if(1===g){if(null===_)return C("missing ");p[_]=e,_=null}else 2===g?p.push(e):p=e}function P(e){if(e.isClosed)return"";var t=u(""),t.replace(/&#([0-9]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,10))})).replace(/&#x([0-9a-f]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,16))})).replace(/&|<|>|"|'/g,(function(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return e}))}for(;o=n));){var F=e.charCodeAt(o);if(a(1),60!==F)return C("expected <");if(o>=n)return C("unexpected end of input");var B=e.charCodeAt(o);if(63!==B)if(33!==B){if(47===B){if(a(1),c(),d("plist")){h(">");continue}if(d("dict")){h(">"),N();continue}if(d("array")){h(">"),E();continue}return C("unexpected closed tag")}var V=(y=void 0,S=void 0,S=!1,47===(y=u(">")).charCodeAt(y.length-1)&&(S=!0,y=y.substring(0,y.length-1)),{name:y.trim(),isClosed:S});switch(V.name){case"dict":1===g?x():2===g?(k=void 0,k={},null!==i&&(k[i]={filename:t,line:s,char:r}),p.push(k),v(1,k)):(p={},null!==i&&(p[i]={filename:t,line:s,char:r}),v(1,p)),V.isClosed&&N();continue;case"array":1===g?D():2===g?(L=void 0,L=[],p.push(L),v(2,L)):v(2,p=[]),V.isClosed&&E();continue;case"key":w=P(V),1!==g?C("unexpected "):null!==_?C("too many "):_=w;continue;case"string":I(P(V));continue;case"real":T(parseFloat(P(V)));continue;case"integer":M(parseInt(P(V),10));continue;case"date":A(new Date(P(V)));continue;case"data":R(P(V));continue;case"true":P(V),O(!0);continue;case"false":P(V),O(!1);continue}if(!/^plist/.test(V.name))return C("unexpected opened tag "+V.name)}else{if(a(1),d("--")){h("--\x3e");continue}h(">")}else a(1),h("?>")}return p}Object.defineProperty(t,"__esModule",{value:!0}),t.parse=t.parseWithLocation=void 0,t.parseWithLocation=function(e,t,n){return i(e,t,n)},t.parse=function(e){return i(e,null,null)}},652:function(e,t,i){var n=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{l(n.next(e))}catch(e){s(e)}}function a(e){try{l(n.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}l((n=n.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var i,n,o,s,r={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(i)throw new TypeError("Generator is already executing.");for(;r;)try{if(i=1,n&&(o=2&s[0]?n.return:s[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,s[1])).done)return o;switch(n=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return r.label++,{value:s[1],done:!1};case 5:r.label++,n=s[1],s=[0];continue;case 7:s=r.ops.pop(),r.trys.pop();continue;default:if(!((o=(o=r.trys).length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){r=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]s&&(s=l);for(var a=0;a<=s;a++)o[a]=null;for(var r in t)if("$vscodeTextmateLocation"!==r){var l=parseInt(r,10),c=0;t[r].patterns&&(c=e.getCompiledRuleId(t[r],i,n)),o[l]=e.createCaptureRule(i,t[r].$vscodeTextmateLocation,t[r].name,t[r].contentName,c)}}return o},e._compilePatterns=function(t,i,n){var o=[];if(t)for(var s=0,r=t.length;s=0?(d=a.include.substring(0,u),h=a.include.substring(u+1)):d=a.include;var g=i.getExternalGrammar(d,n);if(g)if(h){var _=g.repository[h];_&&(l=e.getCompiledRuleId(_,i,g.repository))}else l=e.getCompiledRuleId(g.repository.$self,i,g.repository)}else l=e.getCompiledRuleId(a,i,n);if(-1!==l){var v=i.getRule(l),b=!1;if((v instanceof p||v instanceof m||v instanceof f)&&v.hasMissingPatterns&&0===v.patterns.length&&(b=!0),b)continue;o.push(l)}}return{patterns:o,hasMissingPatterns:(t?t.length:0)!==o.length}},e}();t.RuleFactory=_},583:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeTrieElement=t.ThemeTrieElementRule=t.strArrCmp=t.strcmp=t.Theme=t.ColorMap=t.parseTheme=t.ParsedThemeRule=void 0;var i=function(e,t,i,n,o,s){this.scope=e,this.parentScopes=t,this.index=i,this.fontStyle=n,this.foreground=o,this.background=s};function n(e){return!!(/^#[0-9a-f]{6}$/i.test(e)||/^#[0-9a-f]{8}$/i.test(e)||/^#[0-9a-f]{3}$/i.test(e)||/^#[0-9a-f]{4}$/i.test(e))}function o(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];for(var t=e.settings,o=[],s=0,r=0,a=t.length;r1&&(_=m.slice(0,m.length-1)).reverse(),o[s++]=new i(f,_,r,d,g,p)}}}return o}function s(e,t){e.sort((function(e,t){var i=l(e.scope,t.scope);return 0!==i||0!==(i=c(e.parentScopes,t.parentScopes))?i:e.index-t.index}));for(var i=0,n="#000000",o="#ffffff";e.length>=1&&""===e[0].scope;){var s=e.shift();-1!==s.fontStyle&&(i=s.fontStyle),null!==s.foreground&&(n=s.foreground),null!==s.background&&(o=s.background)}for(var u=new r(t),g=new d(0,null,i,u.getId(n),u.getId(o)),p=new h(new d(0,null,-1,0,0),[]),m=0,f=e.length;mt?1:0}function c(e,t){if(null===e&&null===t)return 0;if(!e)return-1;if(!t)return 1;var i=e.length,n=t.length;if(i===n){for(var o=0;oe?console.log("how did this happen?"):this.scopeDepth=e,-1!==t&&(this.fontStyle=t),0!==i&&(this.foreground=i),0!==n&&(this.background=n)},e}();t.ThemeTrieElementRule=d;var h=function(){function e(e,t,i){void 0===t&&(t=[]),void 0===i&&(i={}),this._mainRule=e,this._rulesWithParentScopes=t,this._children=i}return e._sortBySpecificity=function(e){return 1===e.length||e.sort(this._cmpBySpecificity),e},e._cmpBySpecificity=function(e,t){if(e.scopeDepth===t.scopeDepth){var i=e.parentScopes,n=t.parentScopes,o=null===i?0:i.length,s=null===n?0:n.length;if(o===s)for(var r=0;r{Object.defineProperty(t,"__esModule",{value:!0})},878:(e,t)=>{function i(e){return Array.isArray(e)?function(e){for(var t=[],n=0,o=e.length;n{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>p,frontMatter:()=>h,metadata:()=>l,toc:()=>r});var o=a(87462),n=(a(67294),a(3905));const h={title:"What the Flow Team Has Been Up To","short-title":"What the Flow Team Has Been Up To",author:"Avik Chaudhuri","medium-link":"https://medium.com/flow-type/what-the-flow-team-has-been-up-to-54239c62004f"},s=void 0,l={permalink:"/blog/2019/1/28/What-the-flow-team-has-been-up-to",source:"@site/blog/2019-1-28-What-the-flow-team-has-been-up-to.md",title:"What the Flow Team Has Been Up To",description:"Take a look at what the Flow was up to in 2018.",date:"2019-01-28T00:00:00.000Z",formattedDate:"January 28, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Avik Chaudhuri"}],frontMatter:{title:"What the Flow Team Has Been Up To","short-title":"What the Flow Team Has Been Up To",author:"Avik Chaudhuri","medium-link":"https://medium.com/flow-type/what-the-flow-team-has-been-up-to-54239c62004f"},prevItem:{title:"A More Responsive Flow",permalink:"/blog/2019/2/8/A-More-Responsive-Flow"},nextItem:{title:"Supporting React.forwardRef and Beyond",permalink:"/blog/2018/12/13/React-Abstract-Component"}},i={authorsImageUrls:[void 0]},r=[],m={toc:r};function p(e){let{components:t,...a}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"Take a look at what the Flow was up to in 2018."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2975.1a577c1a.js b/assets/js/2975.1a577c1a.js new file mode 100644 index 00000000000..aa050f9c036 --- /dev/null +++ b/assets/js/2975.1a577c1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[2975],{2975:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>p});var n=o(87462),t=(o(67294),o(3905));o(45475);const s={title:"Error Suppressions",slug:"/errors",description:"Learn how to suppress Flow's type errors."},i=void 0,a={unversionedId:"errors/index",id:"errors/index",title:"Error Suppressions",description:"Learn how to suppress Flow's type errors.",source:"@site/docs/errors/index.md",sourceDirName:"errors",slug:"/errors",permalink:"/en/docs/errors",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/errors/index.md",tags:[],version:"current",frontMatter:{title:"Error Suppressions",slug:"/errors",description:"Learn how to suppress Flow's type errors."},sidebar:"docsSidebar",previous:{title:"Creating Library Definitions",permalink:"/en/docs/libdefs/creation"},next:{title:"Linting Overview",permalink:"/en/docs/linting"}},l={},p=[{value:"What is a Suppression?",id:"toc-what-is-a-suppression",level:3},{value:"Making Suppressions More Granular with Error Codes",id:"toc-making-suppressions-more-granular-with-error-codes",level:3}],m={toc:p};function d(e){let{components:r,...o}=e;return(0,t.mdx)("wrapper",(0,n.Z)({},m,o,{components:r,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"Flow reports many different kinds of errors for many common programming mistakes, but not every JavaScript pattern can be understood by Flow.\nIf you are confident your code is correct, and that Flow is\nerroring too conservatively, you can suppress the error so that\nFlow does not report it."),(0,t.mdx)("h3",{id:"toc-what-is-a-suppression"},"What is a Suppression?"),(0,t.mdx)("p",null,"A suppression is a special kind of comment that you can place on the line before a type\nerror. It tells Flow not to report that error when checking your code. Suppression\ncomments look like the following:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"// [] extra text\n")),(0,t.mdx)("p",null,"A suppressor can be one of the following:"),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"$FlowFixMe"),": for type errors that you intend to fix later"),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"$FlowIssue"),": for a type error that you suspect is an issue with Flow"),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"$FlowExpectedError"),": for a location where you expect Flow to produce a type error (for instance, when performing an invalid type cast)."),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"$FlowIgnore"),": for locations where you want Flow to ignore your code")),(0,t.mdx)("p",null,"Note that all of the suppressors behave identically; we simply recommend using them as described here for your own ease of reference."),(0,t.mdx)("p",null,"The ",(0,t.mdx)("inlineCode",{parentName:"p"},"")," portion of a suppression is optional, but when included specifies which ",(0,t.mdx)("a",{parentName:"p",href:"#toc-making-suppressions-more-granular-with-error-codes"},"error code")," the suppression affects."),(0,t.mdx)("p",null,"Some examples of suppression comments:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"// $FlowFixMe\n\n// $FlowIssue[incompatible-type]\n\n/* $FlowIgnore[prop-missing] some other text here */\n\n/* $FlowFixMe[incompatible-cast] this\n is a multi-line\n comment */\n\n{ /* $FlowIssue this is how you suppress errors inside JSX */ }\n")),(0,t.mdx)("p",null,"In order to be a valid suppression comment, there are also some conditions that must be true:"),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},"No text can precede the suppressor, or come between the suppressor and the code. For example: ",(0,t.mdx)("inlineCode",{parentName:"li"},"// some text then $FlowFixMe")," is not a valid suppression, nor is ",(0,t.mdx)("inlineCode",{parentName:"li"},"// $FlowIssue some text [incompatible-type]")," or ",(0,t.mdx)("inlineCode",{parentName:"li"}," //$FlowFixMe [prop-missing]")," (note the space here!)."),(0,t.mdx)("li",{parentName:"ul"},"Suppressions must be on the line immediately before the error they suppress, otherwise they will not apply.")),(0,t.mdx)("h3",{id:"toc-making-suppressions-more-granular-with-error-codes"},"Making Suppressions More Granular with Error Codes"),(0,t.mdx)("p",null,"Suppressible Flow errors will also have an error code associated with them (after version 0.127). This code concisely describes the type of issue the error is reporting, and is different between different kinds of errors."),(0,t.mdx)("p",null,"In order to prevent suppressions from suppressing different kinds of type errors on the same line (by default suppressions without codes suppress every error on the following line), you can add an error code to your suppression. For example: ",(0,t.mdx)("inlineCode",{parentName:"p"},"// $FlowFixMe[incompatible-type]")," would only suppress errors with the ",(0,t.mdx)("inlineCode",{parentName:"p"},"incompatible-type")," code. So:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":2,"endLine":2,"endColumn":2,"description":"Cannot cast `3` to string because number [1] is incompatible with string [2]. [incompatible-cast]"}]','[{"startLine":2,"startColumn":2,"endLine":2,"endColumn":2,"description":"Cannot':!0,cast:!0,"`3`":!0,to:!0,string:!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"//$FlowFixMe[incompatible-type]\n(3 : string);\n")),(0,t.mdx)("p",null,"would report no errors, but"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":2,"endLine":2,"endColumn":2,"description":"Cannot cast `3` to string because number [1] is incompatible with string [2]. [incompatible-cast]"}]','[{"startLine":2,"startColumn":2,"endLine":2,"endColumn":2,"description":"Cannot':!0,cast:!0,"`3`":!0,to:!0,string:!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"//$FlowFixMe[prop-missing]\n(3 : string);\n")),(0,t.mdx)("p",null,"would still report a type incompatibility."),(0,t.mdx)("p",null,"To suppress multiple error codes on the same line, you can stack suppression comments one after another, and they will all apply to the first non-comment line like so:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":2,"endLine":5,"endColumn":4,"description":"Cannot cast `y.x` to string because number [1] is incompatible with string [2]. [incompatible-cast]"}]','[{"startLine":5,"startColumn":2,"endLine":5,"endColumn":4,"description":"Cannot':!0,cast:!0,"`y.x`":!0,to:!0,string:!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"let y : number | { x : number } = 1;\n\n// $FlowFixMe[incompatible-type]\n// $FlowFixMe[prop-missing]\n(y.x : string);\n")),(0,t.mdx)("p",null,"This will suppress both of the two errors on this line."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3031.07faec4d.js b/assets/js/3031.07faec4d.js new file mode 100644 index 00000000000..7ff2b56cf86 --- /dev/null +++ b/assets/js/3031.07faec4d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3031],{33031:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>m,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var o=a(87462),n=(a(67294),a(3905));const s={author:"Jeff Morrison",hide_table_of_contents:!0},r=void 0,i={permalink:"/blog/2015/09/22/Version-0.16.0",source:"@site/blog/2015-09-22-Version-0.16.0.md",title:"Version-0.16.0",description:"On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!",date:"2015-09-22T00:00:00.000Z",formattedDate:"September 22, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Jeff Morrison"}],frontMatter:{author:"Jeff Morrison",hide_table_of_contents:!0},prevItem:{title:"Version-0.17.0",permalink:"/blog/2015/10/07/Version-0.17.0"},nextItem:{title:"Version-0.15.0",permalink:"/blog/2015/09/10/Version-0.15.0"}},m={authorsImageUrls:[void 0]},l=[],p={toc:l};function d(e){let{components:t,...a}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/samwgoldman"},"@samwgoldman"),")!"),(0,n.mdx)("p",null,"As always, the ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0160"},"Changelog")," is best at summing up the big changes."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3036.2817380a.js b/assets/js/3036.2817380a.js new file mode 100644 index 00000000000..74e2649cc10 --- /dev/null +++ b/assets/js/3036.2817380a.js @@ -0,0 +1,773 @@ +"use strict"; +exports.id = 3036; +exports.ids = [3036]; +exports.modules = { + +/***/ 33036: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/clojure/clojure.ts +var conf = { + comments: { + lineComment: ";;" + }, + brackets: [ + ["[", "]"], + ["(", ")"], + ["{", "}"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: '"', close: '"' }, + { open: "(", close: ")" }, + { open: "{", close: "}" } + ], + surroundingPairs: [ + { open: "[", close: "]" }, + { open: '"', close: '"' }, + { open: "(", close: ")" }, + { open: "{", close: "}" } + ] +}; +var language = { + defaultToken: "", + ignoreCase: true, + tokenPostfix: ".clj", + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "{", close: "}", token: "delimiter.curly" } + ], + constants: ["true", "false", "nil"], + numbers: /^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/, + characters: /^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/, + escapes: /^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + qualifiedSymbols: /^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/, + specialForms: [ + ".", + "catch", + "def", + "do", + "if", + "monitor-enter", + "monitor-exit", + "new", + "quote", + "recur", + "set!", + "throw", + "try", + "var" + ], + coreSymbols: [ + "*", + "*'", + "*1", + "*2", + "*3", + "*agent*", + "*allow-unresolved-vars*", + "*assert*", + "*clojure-version*", + "*command-line-args*", + "*compile-files*", + "*compile-path*", + "*compiler-options*", + "*data-readers*", + "*default-data-reader-fn*", + "*e", + "*err*", + "*file*", + "*flush-on-newline*", + "*fn-loader*", + "*in*", + "*math-context*", + "*ns*", + "*out*", + "*print-dup*", + "*print-length*", + "*print-level*", + "*print-meta*", + "*print-namespace-maps*", + "*print-readably*", + "*read-eval*", + "*reader-resolver*", + "*source-path*", + "*suppress-read*", + "*unchecked-math*", + "*use-context-classloader*", + "*verbose-defrecords*", + "*warn-on-reflection*", + "+", + "+'", + "-", + "-'", + "->", + "->>", + "->ArrayChunk", + "->Eduction", + "->Vec", + "->VecNode", + "->VecSeq", + "-cache-protocol-fn", + "-reset-methods", + "..", + "/", + "<", + "<=", + "=", + "==", + ">", + ">=", + "EMPTY-NODE", + "Inst", + "StackTraceElement->vec", + "Throwable->map", + "accessor", + "aclone", + "add-classpath", + "add-watch", + "agent", + "agent-error", + "agent-errors", + "aget", + "alength", + "alias", + "all-ns", + "alter", + "alter-meta!", + "alter-var-root", + "amap", + "ancestors", + "and", + "any?", + "apply", + "areduce", + "array-map", + "as->", + "aset", + "aset-boolean", + "aset-byte", + "aset-char", + "aset-double", + "aset-float", + "aset-int", + "aset-long", + "aset-short", + "assert", + "assoc", + "assoc!", + "assoc-in", + "associative?", + "atom", + "await", + "await-for", + "await1", + "bases", + "bean", + "bigdec", + "bigint", + "biginteger", + "binding", + "bit-and", + "bit-and-not", + "bit-clear", + "bit-flip", + "bit-not", + "bit-or", + "bit-set", + "bit-shift-left", + "bit-shift-right", + "bit-test", + "bit-xor", + "boolean", + "boolean-array", + "boolean?", + "booleans", + "bound-fn", + "bound-fn*", + "bound?", + "bounded-count", + "butlast", + "byte", + "byte-array", + "bytes", + "bytes?", + "case", + "cast", + "cat", + "char", + "char-array", + "char-escape-string", + "char-name-string", + "char?", + "chars", + "chunk", + "chunk-append", + "chunk-buffer", + "chunk-cons", + "chunk-first", + "chunk-next", + "chunk-rest", + "chunked-seq?", + "class", + "class?", + "clear-agent-errors", + "clojure-version", + "coll?", + "comment", + "commute", + "comp", + "comparator", + "compare", + "compare-and-set!", + "compile", + "complement", + "completing", + "concat", + "cond", + "cond->", + "cond->>", + "condp", + "conj", + "conj!", + "cons", + "constantly", + "construct-proxy", + "contains?", + "count", + "counted?", + "create-ns", + "create-struct", + "cycle", + "dec", + "dec'", + "decimal?", + "declare", + "dedupe", + "default-data-readers", + "definline", + "definterface", + "defmacro", + "defmethod", + "defmulti", + "defn", + "defn-", + "defonce", + "defprotocol", + "defrecord", + "defstruct", + "deftype", + "delay", + "delay?", + "deliver", + "denominator", + "deref", + "derive", + "descendants", + "destructure", + "disj", + "disj!", + "dissoc", + "dissoc!", + "distinct", + "distinct?", + "doall", + "dorun", + "doseq", + "dosync", + "dotimes", + "doto", + "double", + "double-array", + "double?", + "doubles", + "drop", + "drop-last", + "drop-while", + "eduction", + "empty", + "empty?", + "ensure", + "ensure-reduced", + "enumeration-seq", + "error-handler", + "error-mode", + "eval", + "even?", + "every-pred", + "every?", + "ex-data", + "ex-info", + "extend", + "extend-protocol", + "extend-type", + "extenders", + "extends?", + "false?", + "ffirst", + "file-seq", + "filter", + "filterv", + "find", + "find-keyword", + "find-ns", + "find-protocol-impl", + "find-protocol-method", + "find-var", + "first", + "flatten", + "float", + "float-array", + "float?", + "floats", + "flush", + "fn", + "fn?", + "fnext", + "fnil", + "for", + "force", + "format", + "frequencies", + "future", + "future-call", + "future-cancel", + "future-cancelled?", + "future-done?", + "future?", + "gen-class", + "gen-interface", + "gensym", + "get", + "get-in", + "get-method", + "get-proxy-class", + "get-thread-bindings", + "get-validator", + "group-by", + "halt-when", + "hash", + "hash-combine", + "hash-map", + "hash-ordered-coll", + "hash-set", + "hash-unordered-coll", + "ident?", + "identical?", + "identity", + "if-let", + "if-not", + "if-some", + "ifn?", + "import", + "in-ns", + "inc", + "inc'", + "indexed?", + "init-proxy", + "inst-ms", + "inst-ms*", + "inst?", + "instance?", + "int", + "int-array", + "int?", + "integer?", + "interleave", + "intern", + "interpose", + "into", + "into-array", + "ints", + "io!", + "isa?", + "iterate", + "iterator-seq", + "juxt", + "keep", + "keep-indexed", + "key", + "keys", + "keyword", + "keyword?", + "last", + "lazy-cat", + "lazy-seq", + "let", + "letfn", + "line-seq", + "list", + "list*", + "list?", + "load", + "load-file", + "load-reader", + "load-string", + "loaded-libs", + "locking", + "long", + "long-array", + "longs", + "loop", + "macroexpand", + "macroexpand-1", + "make-array", + "make-hierarchy", + "map", + "map-entry?", + "map-indexed", + "map?", + "mapcat", + "mapv", + "max", + "max-key", + "memfn", + "memoize", + "merge", + "merge-with", + "meta", + "method-sig", + "methods", + "min", + "min-key", + "mix-collection-hash", + "mod", + "munge", + "name", + "namespace", + "namespace-munge", + "nat-int?", + "neg-int?", + "neg?", + "newline", + "next", + "nfirst", + "nil?", + "nnext", + "not", + "not-any?", + "not-empty", + "not-every?", + "not=", + "ns", + "ns-aliases", + "ns-imports", + "ns-interns", + "ns-map", + "ns-name", + "ns-publics", + "ns-refers", + "ns-resolve", + "ns-unalias", + "ns-unmap", + "nth", + "nthnext", + "nthrest", + "num", + "number?", + "numerator", + "object-array", + "odd?", + "or", + "parents", + "partial", + "partition", + "partition-all", + "partition-by", + "pcalls", + "peek", + "persistent!", + "pmap", + "pop", + "pop!", + "pop-thread-bindings", + "pos-int?", + "pos?", + "pr", + "pr-str", + "prefer-method", + "prefers", + "primitives-classnames", + "print", + "print-ctor", + "print-dup", + "print-method", + "print-simple", + "print-str", + "printf", + "println", + "println-str", + "prn", + "prn-str", + "promise", + "proxy", + "proxy-call-with-super", + "proxy-mappings", + "proxy-name", + "proxy-super", + "push-thread-bindings", + "pvalues", + "qualified-ident?", + "qualified-keyword?", + "qualified-symbol?", + "quot", + "rand", + "rand-int", + "rand-nth", + "random-sample", + "range", + "ratio?", + "rational?", + "rationalize", + "re-find", + "re-groups", + "re-matcher", + "re-matches", + "re-pattern", + "re-seq", + "read", + "read-line", + "read-string", + "reader-conditional", + "reader-conditional?", + "realized?", + "record?", + "reduce", + "reduce-kv", + "reduced", + "reduced?", + "reductions", + "ref", + "ref-history-count", + "ref-max-history", + "ref-min-history", + "ref-set", + "refer", + "refer-clojure", + "reify", + "release-pending-sends", + "rem", + "remove", + "remove-all-methods", + "remove-method", + "remove-ns", + "remove-watch", + "repeat", + "repeatedly", + "replace", + "replicate", + "require", + "reset!", + "reset-meta!", + "reset-vals!", + "resolve", + "rest", + "restart-agent", + "resultset-seq", + "reverse", + "reversible?", + "rseq", + "rsubseq", + "run!", + "satisfies?", + "second", + "select-keys", + "send", + "send-off", + "send-via", + "seq", + "seq?", + "seqable?", + "seque", + "sequence", + "sequential?", + "set", + "set-agent-send-executor!", + "set-agent-send-off-executor!", + "set-error-handler!", + "set-error-mode!", + "set-validator!", + "set?", + "short", + "short-array", + "shorts", + "shuffle", + "shutdown-agents", + "simple-ident?", + "simple-keyword?", + "simple-symbol?", + "slurp", + "some", + "some->", + "some->>", + "some-fn", + "some?", + "sort", + "sort-by", + "sorted-map", + "sorted-map-by", + "sorted-set", + "sorted-set-by", + "sorted?", + "special-symbol?", + "spit", + "split-at", + "split-with", + "str", + "string?", + "struct", + "struct-map", + "subs", + "subseq", + "subvec", + "supers", + "swap!", + "swap-vals!", + "symbol", + "symbol?", + "sync", + "tagged-literal", + "tagged-literal?", + "take", + "take-last", + "take-nth", + "take-while", + "test", + "the-ns", + "thread-bound?", + "time", + "to-array", + "to-array-2d", + "trampoline", + "transduce", + "transient", + "tree-seq", + "true?", + "type", + "unchecked-add", + "unchecked-add-int", + "unchecked-byte", + "unchecked-char", + "unchecked-dec", + "unchecked-dec-int", + "unchecked-divide-int", + "unchecked-double", + "unchecked-float", + "unchecked-inc", + "unchecked-inc-int", + "unchecked-int", + "unchecked-long", + "unchecked-multiply", + "unchecked-multiply-int", + "unchecked-negate", + "unchecked-negate-int", + "unchecked-remainder-int", + "unchecked-short", + "unchecked-subtract", + "unchecked-subtract-int", + "underive", + "unquote", + "unquote-splicing", + "unreduced", + "unsigned-bit-shift-right", + "update", + "update-in", + "update-proxy", + "uri?", + "use", + "uuid?", + "val", + "vals", + "var-get", + "var-set", + "var?", + "vary-meta", + "vec", + "vector", + "vector-of", + "vector?", + "volatile!", + "volatile?", + "vreset!", + "vswap!", + "when", + "when-first", + "when-let", + "when-not", + "when-some", + "while", + "with-bindings", + "with-bindings*", + "with-in-str", + "with-loading-context", + "with-local-vars", + "with-meta", + "with-open", + "with-out-str", + "with-precision", + "with-redefs", + "with-redefs-fn", + "xml-seq", + "zero?", + "zipmap" + ], + tokenizer: { + root: [ + { include: "@whitespace" }, + [/@numbers/, "number"], + [/@characters/, "string"], + { include: "@string" }, + [/[()\[\]{}]/, "@brackets"], + [/\/#"(?:\.|(?:")|[^"\n])*"\/g/, "regexp"], + [/[#'@^`~]/, "meta"], + [ + /@qualifiedSymbols/, + { + cases: { + "^:.+$": "constant", + "@specialForms": "keyword", + "@coreSymbols": "keyword", + "@constants": "constant", + "@default": "identifier" + } + } + ] + ], + whitespace: [ + [/[\s,]+/, "white"], + [/;.*$/, "comment"], + [/\(comment\b/, "comment", "@comment"] + ], + comment: [ + [/\(/, "comment", "@push"], + [/\)/, "comment", "@pop"], + [/[^()]/, "comment"] + ], + string: [[/"/, "string", "@multiLineString"]], + multiLineString: [ + [/"/, "string", "@popall"], + [/@escapes/, "string.escape"], + [/./, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/3036.cbfd34be.js b/assets/js/3036.cbfd34be.js new file mode 100644 index 00000000000..a4be0ef63c3 --- /dev/null +++ b/assets/js/3036.cbfd34be.js @@ -0,0 +1,2 @@ +/*! For license information please see 3036.cbfd34be.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3036],{33036:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>r,language:()=>s});var r={comments:{lineComment:";;"},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}],surroundingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}]},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".clj",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],constants:["true","false","nil"],numbers:/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,characters:/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,escapes:/^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/,specialForms:[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],coreSymbols:["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],tokenizer:{root:[{include:"@whitespace"},[/@numbers/,"number"],[/@characters/,"string"],{include:"@string"},[/[()\[\]{}]/,"@brackets"],[/\/#"(?:\.|(?:")|[^"\n])*"\/g/,"regexp"],[/[#'@^`~]/,"meta"],[/@qualifiedSymbols/,{cases:{"^:.+$":"constant","@specialForms":"keyword","@coreSymbols":"keyword","@constants":"constant","@default":"identifier"}}]],whitespace:[[/[\s,]+/,"white"],[/;.*$/,"comment"],[/\(comment\b/,"comment","@comment"]],comment:[[/\(/,"comment","@push"],[/\)/,"comment","@pop"],[/[^()]/,"comment"]],string:[[/"/,"string","@multiLineString"]],multiLineString:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/./,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/3036.cbfd34be.js.LICENSE.txt b/assets/js/3036.cbfd34be.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/3036.cbfd34be.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/3103.d424af1a.js b/assets/js/3103.d424af1a.js new file mode 100644 index 00000000000..4a879eb602f --- /dev/null +++ b/assets/js/3103.d424af1a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3103],{92879:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>u});var a=n(87462),i=(n(67294),n(3905));const o={title:"Announcing Partial & Required Flow utility types + catch annotations","short-title":"Announcing Partial & Required Flow utility types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-partial-required-flow-utility-types-catch-annotations-3a32f0bf2a20"},l=void 0,r={permalink:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations",source:"@site/blog/2023-03-15-Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations.md",title:"Announcing Partial & Required Flow utility types + catch annotations",description:"Starting in Flow version 0.201, make an object type\u2019s fields all optional using Partial (use instead of the unsafe $Shape),",date:"2023-03-15T00:00:00.000Z",formattedDate:"March 15, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Announcing Partial & Required Flow utility types + catch annotations","short-title":"Announcing Partial & Required Flow utility types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-partial-required-flow-utility-types-catch-annotations-3a32f0bf2a20"},prevItem:{title:"Flow can now detect unused Promises",permalink:"/blog/2023/04/10/Unused-Promise"},nextItem:{title:"Exact object types by default, by default",permalink:"/blog/2023/02/16/Exact-object-types-by-default-by-default"}},s={authorsImageUrls:[void 0]},u=[],d={toc:u};function c(t){let{components:e,...n}=t;return(0,i.mdx)("wrapper",(0,a.Z)({},d,n,{components:e,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Starting in Flow version 0.201, make an object type\u2019s fields all optional using ",(0,i.mdx)("inlineCode",{parentName:"p"},"Partial")," (use instead of the unsafe ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Shape"),"),\nand make an object type\u2019s optional fields required with ",(0,i.mdx)("inlineCode",{parentName:"p"},"Required"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3169.75d3a922.js b/assets/js/3169.75d3a922.js new file mode 100644 index 00000000000..33f45f5f602 --- /dev/null +++ b/assets/js/3169.75d3a922.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3169],{63169:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var r=a(67294),l=a(39960),n=a(95999),c=a(10833),s=a(89007);function i(e){let{year:t,posts:a}=e;return r.createElement(r.Fragment,null,r.createElement("h3",null,t),r.createElement("ul",null,a.map((e=>r.createElement("li",{key:e.metadata.date},r.createElement(l.default,{to:e.metadata.permalink},e.metadata.formattedDate," - ",e.metadata.title))))))}function m(e){let{years:t}=e;return r.createElement("section",{className:"margin-vert--lg"},r.createElement("div",{className:"container"},r.createElement("div",{className:"row"},t.map(((e,t)=>r.createElement("div",{key:t,className:"col col--4 margin-vert--lg"},r.createElement(i,e)))))))}function o(e){let{archive:t}=e;const a=(0,n.translate)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),l=(0,n.translate)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),i=function(e){const t=e.reduceRight(((e,t)=>{var a;const r=t.metadata.date.split("-")[0],l=null!=(a=e.get(r))?a:[];return e.set(r,[t,...l])}),new Map);return Array.from(t,(e=>{let[t,a]=e;return{year:t,posts:a}}))}(t.blogPosts);return r.createElement(r.Fragment,null,r.createElement(c.d,{title:a,description:l}),r.createElement(s.Z,null,r.createElement("header",{className:"hero hero--primary"},r.createElement("div",{className:"container"},r.createElement("h1",{className:"hero__title"},a),r.createElement("p",{className:"hero__subtitle"},l))),r.createElement("main",null,i.length>0&&r.createElement(m,{years:i}))))}}}]); \ No newline at end of file diff --git a/assets/js/3175.4623d4bd.js b/assets/js/3175.4623d4bd.js new file mode 100644 index 00000000000..d8bc0f518a1 --- /dev/null +++ b/assets/js/3175.4623d4bd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3175],{53175:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>r,contentTitle:()=>s,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var t=o(87462),a=(o(67294),o(3905));const i={title:"Announcing Bounded Polymorphism","short-title":"Bounded Polymorphism",author:"Avik Chaudhuri",hide_table_of_contents:!0},s=void 0,l={permalink:"/blog/2015/03/12/Bounded-Polymorphism",source:"@site/blog/2015-03-12-Bounded-Polymorphism.md",title:"Announcing Bounded Polymorphism",description:"As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like",date:"2015-03-12T00:00:00.000Z",formattedDate:"March 12, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Avik Chaudhuri"}],frontMatter:{title:"Announcing Bounded Polymorphism","short-title":"Bounded Polymorphism",author:"Avik Chaudhuri",hide_table_of_contents:!0},prevItem:{title:"Announcing Disjoint Unions",permalink:"/blog/2015/07/03/Disjoint-Unions"},nextItem:{title:"Announcing Flow Comments",permalink:"/blog/2015/02/20/Flow-Comments"}},r={authorsImageUrls:[void 0]},d=[{value:"The problem",id:"the-problem",level:2}],m={toc:d};function p(e){let{components:n,...o}=e;return(0,a.mdx)("wrapper",(0,t.Z)({},m,o,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"class BagOfBones { ... }\nfunction eat(meal: T): Indigestion { ... }\n")),(0,a.mdx)("h2",{id:"the-problem"},"The problem"),(0,a.mdx)("p",null,"Consider the following code that defines a polymorphic function in Flow:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function fooBad(obj: T): T {\n console.log(Math.abs(obj.x));\n return obj;\n}\n")),(0,a.mdx)("p",null,"This code does not (and should not!) type check. Not all values ",(0,a.mdx)("inlineCode",{parentName:"p"},"obj: T")," have a property ",(0,a.mdx)("inlineCode",{parentName:"p"},"x"),", let alone a property ",(0,a.mdx)("inlineCode",{parentName:"p"},"x")," that is a ",(0,a.mdx)("inlineCode",{parentName:"p"},"number"),", given the additional requirement imposed by ",(0,a.mdx)("inlineCode",{parentName:"p"},"Math.abs()"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3271.c17eb19a.js b/assets/js/3271.c17eb19a.js new file mode 100644 index 00000000000..93c36fc0535 --- /dev/null +++ b/assets/js/3271.c17eb19a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3271],{53271:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var o=n(87462),a=(n(67294),n(3905));const i={title:"Asking for Required Annotations","short-title":"Asking for Required Annotations",author:"Sam Goldman","medium-link":"https://medium.com/flow-type/asking-for-required-annotations-64d4f9c1edf8"},r=void 0,s={permalink:"/blog/2018/10/29/Asking-for-Required-Annotations",source:"@site/blog/2018-10-29-Asking-for-Required-Annotations.md",title:"Asking for Required Annotations",description:"Flow will be asking for more annotations starting in 0.85.0. Learn how",date:"2018-10-29T00:00:00.000Z",formattedDate:"October 29, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Sam Goldman"}],frontMatter:{title:"Asking for Required Annotations","short-title":"Asking for Required Annotations",author:"Sam Goldman","medium-link":"https://medium.com/flow-type/asking-for-required-annotations-64d4f9c1edf8"},prevItem:{title:"Supporting React.forwardRef and Beyond",permalink:"/blog/2018/12/13/React-Abstract-Component"},nextItem:{title:"On the Roadmap: Exact Objects by Default",permalink:"/blog/2018/10/18/Exact-Objects-By-Default"}},l={authorsImageUrls:[void 0]},d=[],m={toc:d};function u(t){let{components:e,...n}=t;return(0,a.mdx)("wrapper",(0,o.Z)({},m,n,{components:e,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow will be asking for more annotations starting in 0.85.0. Learn how\nto deal with these errors in our latest blog post."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3292.37fedcae.js b/assets/js/3292.37fedcae.js new file mode 100644 index 00000000000..1b7e85c5ab9 --- /dev/null +++ b/assets/js/3292.37fedcae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3292],{53292:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>r,toc:()=>p});var o=n(87462),s=(n(67294),n(3905));n(45475);const a={title:"Typeof Types",slug:"/types/typeof"},i=void 0,r={unversionedId:"types/typeof",id:"types/typeof",title:"Typeof Types",description:"JavaScript has a typeof operator which returns a string describing a value.",source:"@site/docs/types/typeof.md",sourceDirName:"types",slug:"/types/typeof",permalink:"/en/docs/types/typeof",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/typeof.md",tags:[],version:"current",frontMatter:{title:"Typeof Types",slug:"/types/typeof"},sidebar:"docsSidebar",previous:{title:"Type Guards",permalink:"/en/docs/types/type-guards"},next:{title:"Type Casting Expressions",permalink:"/en/docs/types/casting"}},l={},p=[{value:"typeof type syntax",id:"toc-typeof-type-syntax",level:2},{value:"typeof inherits behaviors of inference",id:"toc-typeof-inherits-behaviors-of-inference",level:2},{value:"typeof inherits behaviors of other types",id:"toc-typeof-inherits-behaviors-of-other-types",level:2}],m={toc:p};function d(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"JavaScript has a ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof")," operator which returns a string describing a value."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"typeof 1 === 'number'\ntypeof true === 'boolean'\ntypeof 'three' === 'string'\n")),(0,s.mdx)("p",null,"However it is limited in that this string only describes so much about the type."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"typeof {foo: true} === 'object'\ntypeof null === 'object'\ntypeof [true, false] === 'object'\n")),(0,s.mdx)("p",null,"In Flow, there is a similar ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof")," type operator, but it's much more powerful."),(0,s.mdx)("h2",{id:"toc-typeof-type-syntax"},(0,s.mdx)("inlineCode",{parentName:"h2"},"typeof")," type syntax"),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof")," operator returns the Flow type of a given value to be used as a type."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":25,"endLine":3,"endColumn":31,"description":"Cannot assign `\'world\'` to `num3` because string [1] is incompatible with number [2]. [incompatible-type]"},{"startLine":7,"startColumn":27,"endLine":7,"endColumn":28,"description":"Cannot assign `42` to `bool3` because number [1] is incompatible with boolean [2]. [incompatible-type]"},{"startLine":11,"startColumn":25,"endLine":11,"endColumn":29,"description":"Cannot assign `false` to `str3` because boolean [1] is incompatible with string [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":25,"endLine":3,"endColumn":31,"description":"Cannot':!0,assign:!0,"`'world'`":!0,to:!0,"`num3`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-type]"},{"startLine":7,"startColumn":27,"endLine":7,"endColumn":28,"description":"Cannot':!0,"`42`":!0,"`bool3`":!0,boolean:!0,'[incompatible-type]"},{"startLine":11,"startColumn":25,"endLine":11,"endColumn":29,"description":"Cannot':!0,"`false`":!0,"`str3`":!0,'[incompatible-type]"}]':!0},"let num1 = 42;\nlet num2: typeof num1 = 3.14; // Works!\nlet num3: typeof num1 = 'world'; // Error!\n\nlet bool1 = true;\nlet bool2: typeof bool1 = false; // Works!\nlet bool3: typeof bool1 = 42; // Error!\n\nlet str1 = 'hello';\nlet str2: typeof str1 = 'world'; // Works!\nlet str3: typeof str1 = false; // Error!\n")),(0,s.mdx)("p",null,"You can use any value with ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof"),", as long as the arugment itself is a variable or member access:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":17,"endLine":8,"endColumn":17,"description":"`typeof` can only be used to get the type of variables."}]','[{"startLine":8,"startColumn":17,"endLine":8,"endColumn":17,"description":"`typeof`':!0,can:!0,only:!0,be:!0,used:!0,to:!0,get:!0,the:!0,type:!0,of:!0,'variables."}]':!0},"let obj1 = {foo: 1, bar: true, baz: 'three'};\nlet obj2: typeof obj1 = {foo: 42, bar: false, baz: 'hello'};\nlet num: typeof obj1.bar = 1;\n\nlet arr1 = [1, 2, 3];\nlet arr2: typeof arr1 = [3, 2, 1];\n\ntype T = typeof {a: 1}; // Invalid!\n")),(0,s.mdx)("h2",{id:"toc-typeof-inherits-behaviors-of-inference"},(0,s.mdx)("inlineCode",{parentName:"h2"},"typeof")," inherits behaviors of inference"),(0,s.mdx)("p",null,"When you use ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof"),", you're taking the results of Flow's inference and\nasserting it as a type. While this can be very useful, it can also lead to some\nunexpected results."),(0,s.mdx)("p",null,"For example, when you use literal values in Flow, their inferred type is the\nprimitive that it belongs to. Thus, the number 42 has the inferred type of\n",(0,s.mdx)("inlineCode",{parentName:"p"},"number"),". You can see this when you use ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"let num1 = 42;\nlet num2: typeof num1 = 3.14; // Works!\n\nlet bool1 = true;\nlet bool2: typeof bool1 = false; // Works!\n\nlet str1 = 'hello';\nlet str2: typeof str1 = 'world'; // Works!\n")),(0,s.mdx)("p",null,"However, this only happens with the inferred type. If you specify the literal\ntype, it will be used in ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":25,"endLine":2,"endColumn":28,"description":"Cannot assign `3.14` to `num2` because number [1] is incompatible with number literal `42` [2]. [incompatible-type]"},{"startLine":5,"startColumn":27,"endLine":5,"endColumn":31,"description":"Cannot assign `false` to `bool2` because boolean [1] is incompatible with boolean literal `true` [2]. [incompatible-type]"},{"startLine":8,"startColumn":25,"endLine":8,"endColumn":31,"description":"Cannot assign `\'world\'` to `str2` because string [1] is incompatible with string literal `hello` [2]. [incompatible-type]"}]','[{"startLine":2,"startColumn":25,"endLine":2,"endColumn":28,"description":"Cannot':!0,assign:!0,"`3.14`":!0,to:!0,"`num2`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,literal:!0,"`42`":!0,"[2].":!0,'[incompatible-type]"},{"startLine":5,"startColumn":27,"endLine":5,"endColumn":31,"description":"Cannot':!0,"`false`":!0,"`bool2`":!0,boolean:!0,"`true`":!0,'[incompatible-type]"},{"startLine":8,"startColumn":25,"endLine":8,"endColumn":31,"description":"Cannot':!0,"`'world'`":!0,"`str2`":!0,string:!0,"`hello`":!0,'[incompatible-type]"}]':!0},"let num1: 42 = 42;\nlet num2: typeof num1 = 3.14; // Error!\n\nlet bool1: true = true;\nlet bool2: typeof bool1 = false; // Error!\n\nlet str1: 'hello' = 'hello';\nlet str2: typeof str1 = 'world'; // Error!\n")),(0,s.mdx)("h2",{id:"toc-typeof-inherits-behaviors-of-other-types"},(0,s.mdx)("inlineCode",{parentName:"h2"},"typeof")," inherits behaviors of other types"),(0,s.mdx)("p",null,"There are many different types in Flow, some of these types behave differently\nthan others. These differences make sense for that particular type but not for\nothers."),(0,s.mdx)("p",null,"When you use ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof"),", you're inserting another type with all of its behaviors.\nThis can make ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof")," seem inconsistent where it is not."),(0,s.mdx)("p",null,"For example, if you use ",(0,s.mdx)("inlineCode",{parentName:"p"},"typeof")," with a class you need to remember that classes\nare ",(0,s.mdx)("em",{parentName:"p"},"nominally")," typed instead of ",(0,s.mdx)("em",{parentName:"p"},"structurally")," typed. So that two classes with\nthe same exact shape are not considered equivalent."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":29,"endLine":9,"endColumn":37,"description":"Cannot assign `YourClass` to `test1` because `YourClass` [1] is incompatible with `MyClass` [2]. [incompatible-type]"}]','[{"startLine":9,"startColumn":29,"endLine":9,"endColumn":37,"description":"Cannot':!0,assign:!0,"`YourClass`":!0,to:!0,"`test1`":!0,because:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`MyClass`":!0,"[2].":!0,'[incompatible-type]"}]':!0},"class MyClass {\n method(val: number) { /* ... */ }\n}\n\nclass YourClass {\n method(val: number) { /* ... */ }\n}\n\nlet test1: typeof MyClass = YourClass; // Error!\nlet test2: typeof MyClass = MyClass; // Works!\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3361.a09822ec.js b/assets/js/3361.a09822ec.js new file mode 100644 index 00000000000..98597aaffc7 --- /dev/null +++ b/assets/js/3361.a09822ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3361],{93361:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>r,toc:()=>m});var a=n(87462),s=(n(67294),n(3905));n(45475);const o={title:"Migrating from legacy patterns",slug:"/enums/migrating-legacy-patterns"},i=void 0,r={unversionedId:"enums/migrating-legacy-patterns",id:"enums/migrating-legacy-patterns",title:"Migrating from legacy patterns",description:"Learn how to migrate to Flow Enums from legacy JavaScript enum patterns like Object.freeze.",source:"@site/docs/enums/migrating-legacy-patterns.md",sourceDirName:"enums",slug:"/enums/migrating-legacy-patterns",permalink:"/en/docs/enums/migrating-legacy-patterns",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/enums/migrating-legacy-patterns.md",tags:[],version:"current",frontMatter:{title:"Migrating from legacy patterns",slug:"/enums/migrating-legacy-patterns"},sidebar:"docsSidebar",previous:{title:"Using enums",permalink:"/en/docs/enums/using-enums"},next:{title:"Declaration Files",permalink:"/en/docs/declarations"}},u={},m=[{value:"Updating definitions",id:"toc-updating-definitions",level:2},{value:"Object.freeze",id:"toc-object-freeze",level:4},{value:"keyMirror",id:"toc-keymirror",level:4},{value:"Updating usage",id:"toc-updating-usage",level:2},{value:"Fix type imports",id:"toc-fix-type-imports",level:4},{value:"If both type and value were imported",id:"toc-if-both-type-and-value-were-imported",level:5},{value:"If only the type was imported",id:"toc-if-only-the-type-was-imported",level:5},{value:"Mapping enums to other values",id:"toc-mapping-enums-to-other-values",level:4},{value:"Usage as the representation type (e.g. a string)",id:"toc-usage-as-the-representation-type-e-g-a-string",level:4},{value:"Casting to the enum type",id:"toc-casting-to-the-enum-type",level:4},{value:"Update switch statements",id:"toc-update-switch-statements",level:4},{value:"Operations over enum members",id:"toc-operations-over-enum-members",level:4}],l={toc:m};function p(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,a.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Learn how to migrate to Flow Enums from legacy JavaScript enum patterns like ",(0,s.mdx)("inlineCode",{parentName:"p"},"Object.freeze"),"."),(0,s.mdx)("p",null,"First, learn how to ",(0,s.mdx)("a",{parentName:"p",href:"#toc-updating-definitions"},"update the enum definition site"),", and next learn how to ",(0,s.mdx)("a",{parentName:"p",href:"#toc-updating-usage"},"update files that import and use the enum"),"."),(0,s.mdx)("h2",{id:"toc-updating-definitions"},"Updating definitions"),(0,s.mdx)("h4",{id:"toc-object-freeze"},"Object.freeze"),(0,s.mdx)("p",null,"If you are using ",(0,s.mdx)("inlineCode",{parentName:"p"},"Object.freeze"),", you can migrate to an enum if the values of the object are:"),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},"All the same primitive type, and that type is ",(0,s.mdx)("inlineCode",{parentName:"li"},"boolean"),", ",(0,s.mdx)("inlineCode",{parentName:"li"},"string"),", ",(0,s.mdx)("inlineCode",{parentName:"li"},"number"),", or ",(0,s.mdx)("inlineCode",{parentName:"li"},"symbol"),"."),(0,s.mdx)("li",{parentName:"ul"},"All literals."),(0,s.mdx)("li",{parentName:"ul"},"Contain no duplicate values.")),(0,s.mdx)("p",null,"Replace"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const Status = Object.freeze({\n Active: 1,\n Paused: 2,\n Off: 3,\n});\n\nexport type StatusType = $Values;\n\nexport default Status;\n")),(0,s.mdx)("p",null,"with"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export default enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\n")),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},"Check to ensure that the key names do not start with lowercase \u2018a\u2019-\u2018z\u2019 (disallowed in enums). If they do, you\u2019ll need to rename the member names."),(0,s.mdx)("li",{parentName:"ul"},"Remove any usage of ",(0,s.mdx)("inlineCode",{parentName:"li"},"$Keys<...>")," or ",(0,s.mdx)("inlineCode",{parentName:"li"},"$Values<...>")," on the enum type, these are no longer needed as a Flow Enum defines a type itself (its name)."),(0,s.mdx)("li",{parentName:"ul"},"Delete any type exports based on the enum, as you just need to export the Flow Enum. A Flow Enum acts as both a type and a value (like a class).")),(0,s.mdx)("p",null,"Then, take a look at ",(0,s.mdx)("a",{parentName:"p",href:"#toc-updating-usage"},"how to update files that import and use the enum"),"."),(0,s.mdx)("h4",{id:"toc-keymirror"},"keyMirror"),(0,s.mdx)("p",null,"The ",(0,s.mdx)("inlineCode",{parentName:"p"},"keyMirror")," utility creates an object whose values are mirrors of its key names. You can replace ",(0,s.mdx)("inlineCode",{parentName:"p"},"keyMirror")," usage with a string based enum."),(0,s.mdx)("p",null,"Replace"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"import keyMirror from 'keyMirror';\n\nconst Status = keyMirror({\n Active: null,\n Paused: null,\n Off: null,\n});\n\nexport type StatusType = $Keys;\n\nexport default Status;\n")),(0,s.mdx)("p",null,"with"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export default enum Status {\n Active,\n Paused,\n Off,\n}\n")),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},"Check to ensure that the key names do not start with lowercase \u2018a\u2019-\u2018z\u2019 (disallowed in enums). If they do, you\u2019ll need to rename the member names."),(0,s.mdx)("li",{parentName:"ul"},"Remove any usage of ",(0,s.mdx)("inlineCode",{parentName:"li"},"$Keys<...>")," on the enum type, it's no longer needed as a Flow Enum defines a type itself (its name)."),(0,s.mdx)("li",{parentName:"ul"},"Delete any type exports based on the enum, you just need to export the Flow Enum. A Flow Enum acts as both a type and a value (like a class).")),(0,s.mdx)("p",null,"Then, take a look at ",(0,s.mdx)("a",{parentName:"p",href:"#toc-updating-usage"},"how to update files that import and use the enum"),"."),(0,s.mdx)("h2",{id:"toc-updating-usage"},"Updating usage"),(0,s.mdx)("h4",{id:"toc-fix-type-imports"},"Fix type imports"),(0,s.mdx)("p",null,"Previous patterns required you to export (and then import) a type separate from the enum itself.\nFlow Enums are both types and values (like a class), so you just need to export the Flow Enum itself. Since there is now one export, you only need one import.\nRead more about ",(0,s.mdx)("a",{parentName:"p",href:"../using-enums/#toc-exporting-enums"},"exporting enums")," and ",(0,s.mdx)("a",{parentName:"p",href:"../using-enums/#toc-importing-enums"},"importing enums"),"."),(0,s.mdx)("p",null,"If you previously had:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const Status = Object.freeze({\n Active: 1,\n Paused: 2,\n Off: 3,\n});\nexport type StatusType = $Values;\nexport default Status;\n")),(0,s.mdx)("p",null,"And you've replaced it with:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export default enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\n")),(0,s.mdx)("p",null,"Then you need to fix the imports as well:"),(0,s.mdx)("h5",{id:"toc-if-both-type-and-value-were-imported"},"If both type and value were imported"),(0,s.mdx)("p",null,"For a user of the enum, if you previously imported both the type and the value, you can delete the type import and update annotations used."),(0,s.mdx)("p",null,"Change"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"import type {StatusType} from 'status';\n\nimport Status from 'status';\n\nconst myStatus: StatusType = Status.Active;\n")),(0,s.mdx)("p",null,"to"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"// Type import is deleted\n\nimport Status from 'status';\n\nconst myStatus: Status = Status.Active; // Changed type annotation to just `Status`\n")),(0,s.mdx)("h5",{id:"toc-if-only-the-type-was-imported"},"If only the type was imported"),(0,s.mdx)("p",null,"For a user of the enum, if you previously imported just the type, change the type import to a default import rather than a named import."),(0,s.mdx)("p",null,"Change"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"import type {StatusType} from 'status';\n\nfunction isActive(status: StatusType) { ... }\n")),(0,s.mdx)("p",null,"to"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"// Remove the braces `{` `}` and changed the name - this is a default import now\nimport type Status from 'status';\n\nfunction isActive(status: Status) { ... } // Changed type annotation to just `Status`\n")),(0,s.mdx)("h4",{id:"toc-mapping-enums-to-other-values"},"Mapping enums to other values"),(0,s.mdx)("p",null,"Sometimes you want to map from an enum value to some other value. Previously, we sometimes used object literals for this.\nWith Flow Enums, use a function with a ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," instead. The switch is ",(0,s.mdx)("a",{parentName:"p",href:"../using-enums/#toc-exhaustively-checking-enums-with-a-switch"},"exhaustively checked"),",\nso Flow will ensure you update your mapping when you add or remove Flow Enum members."),(0,s.mdx)("p",null,"Replace this pattern"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"const STATUS_ICON: {[Status]: string} = {\n [Status.Active]: 'green-checkmark',\n [Status.Paused]: 'grey-pause',\n [Status.Off]: 'red-x',\n};\nconst icon = STATUS_ICON[status];\n")),(0,s.mdx)("p",null,"with"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"function statusIcon(status: Status): string {\n switch (status) {\n case Status.Active:\n return 'green-checkmark';\n case Status.Paused:\n return 'grey-pause';\n case Status.Off:\n return 'red-x';\n }\n}\nconst icon = statusIcon(status);\n")),(0,s.mdx)("p",null,"Read more about ",(0,s.mdx)("a",{parentName:"p",href:"../using-enums/#toc-mapping-enums-to-other-values"},"mapping enums to other values"),"."),(0,s.mdx)("h4",{id:"toc-usage-as-the-representation-type-e-g-a-string"},"Usage as the representation type (e.g. a string)"),(0,s.mdx)("p",null,"You can't use a Flow Enum directly as its representation type (e.g. a ",(0,s.mdx)("inlineCode",{parentName:"p"},"string"),").\nIf you get Flow errors about using an enum as its representation type, first try to refactor your code so that it expects the enum type instead of the representation type\n(e.g. change annotations from ",(0,s.mdx)("inlineCode",{parentName:"p"},"string")," to ",(0,s.mdx)("inlineCode",{parentName:"p"},"Status"),"). If you really want to use the enum as its representation type, you can add in explicit casts.\nSee ",(0,s.mdx)("a",{parentName:"p",href:"../using-enums/#toc-casting-to-representation-type"},"casting to represetation type"),"."),(0,s.mdx)("h4",{id:"toc-casting-to-the-enum-type"},"Casting to the enum type"),(0,s.mdx)("p",null,"If before you cast from an enum's representation type (e.g. ",(0,s.mdx)("inlineCode",{parentName:"p"},"string"),") to the enum type with something like this:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"function castToStatus(input: number): StatusType | void {\n switch(input) {\n case 1: return Status.Active;\n case 2: return Status.Paused;\n case 3: return Status.Off;\n default: return undefined;\n }\n}\n\ncastToStatus(x);\n")),(0,s.mdx)("p",null,"You can now just use the ",(0,s.mdx)("a",{parentName:"p",href:"../using-enums/#toc-cast"},"cast")," method:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"Status.cast(x);\n")),(0,s.mdx)("h4",{id:"toc-update-switch-statements"},"Update switch statements"),(0,s.mdx)("p",null,"Flow Enums are exhaustively checked in ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statements. You might need to update your code when you are switching over an enum value.\nRead more at ",(0,s.mdx)("a",{parentName:"p",href:"../using-enums/#toc-exhaustively-checking-enums-with-a-switch"},"exhaustively checking enums in switch statements"),"."),(0,s.mdx)("h4",{id:"toc-operations-over-enum-members"},"Operations over enum members"),(0,s.mdx)("p",null,"If previously you used functionality like ",(0,s.mdx)("inlineCode",{parentName:"p"},"Object.values"),", ",(0,s.mdx)("inlineCode",{parentName:"p"},"Object.keys"),", or ",(0,s.mdx)("inlineCode",{parentName:"p"},"for-in")," loops to get and operate on the enum members,\nyou can use the ",(0,s.mdx)("a",{parentName:"p",href:"../using-enums/#toc-members"},"members method")," instead."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3377.4e54056b.js b/assets/js/3377.4e54056b.js new file mode 100644 index 00000000000..4b41794d4b1 --- /dev/null +++ b/assets/js/3377.4e54056b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3377],{73377:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>m});var o=r(87462),s=(r(67294),r(3905));const a={title:"Better Flow Error Messages for the JavaScript Ecosystem","short-title":"Better Error Messages",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/better-flow-error-messages-for-the-javascript-ecosystem-73b6da948ae2"},n=void 0,i={permalink:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem",source:"@site/blog/2018-02-20-Better-Flow-Error-Messages-for-the-Javascript-Ecosystem.md",title:"Better Flow Error Messages for the JavaScript Ecosystem",description:"Over the last year, the Flow team has been slowly auditing and improving all the",date:"2018-02-20T00:00:00.000Z",formattedDate:"February 20, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Caleb Meredith"}],frontMatter:{title:"Better Flow Error Messages for the JavaScript Ecosystem","short-title":"Better Error Messages",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/better-flow-error-messages-for-the-javascript-ecosystem-73b6da948ae2"},prevItem:{title:"New Flow Errors on Unknown Property Access in Conditionals",permalink:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals"},nextItem:{title:"Typing Higher-Order Components in Recompose With Flow",permalink:"/blog/2017/09/03/Flow-Support-in-Recompose"}},l={authorsImageUrls:[void 0]},m=[],c={toc:m};function p(e){let{components:t,...r}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Over the last year, the Flow team has been slowly auditing and improving all the\npossible error messages generated by the type checker. In Flow 0.66 we\u2019re\nexcited to announce a new error message format designed to decrease the time it\ntakes you to read and fix each bug Flow finds."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3389.50bd094d.js b/assets/js/3389.50bd094d.js new file mode 100644 index 00000000000..5a3a14548a0 --- /dev/null +++ b/assets/js/3389.50bd094d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3389],{23389:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>s,toc:()=>m});var r=a(87462),t=(a(67294),a(3905));a(45475);const i={title:"Arrays",slug:"/types/arrays"},o=void 0,s={unversionedId:"types/arrays",id:"types/arrays",title:"Arrays",description:"Array types represent lists of unknown length, where all items have the same type.",source:"@site/docs/types/arrays.md",sourceDirName:"types",slug:"/types/arrays",permalink:"/en/docs/types/arrays",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/arrays.md",tags:[],version:"current",frontMatter:{title:"Arrays",slug:"/types/arrays"},sidebar:"docsSidebar",previous:{title:"Objects",permalink:"/en/docs/types/objects"},next:{title:"Tuples",permalink:"/en/docs/types/tuples"}},l={},m=[{value:"Array Type",id:"toc-array-type",level:2},{value:"$ReadOnlyArray Type",id:"toc-readonlyarray",level:2},{value:"Empty Array Literals",id:"toc-empty-array-literals",level:2},{value:"Contextual Inference",id:"contextual-inference",level:3},{value:"Initializer Inference",id:"initializer-inference",level:3},{value:"Straight-line Code",id:"straight-line-code",level:4},{value:"Conditional Code",id:"conditional-code",level:4},{value:"Nearer Scope Wins",id:"nearer-scope-wins",level:4},{value:"Array access is unsafe",id:"toc-array-access-is-unsafe",level:2},{value:"Discouraged Array Type Shorthand Syntax",id:"toc-array-type-shorthand-syntax",level:2}],d={toc:m};function p(e){let{components:n,...a}=e;return(0,t.mdx)("wrapper",(0,r.Z)({},d,a,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"Array types represent lists of ",(0,t.mdx)("strong",{parentName:"p"},"unknown length"),", where all items have the ",(0,t.mdx)("strong",{parentName:"p"},"same type"),".\nThis is in contrast to ",(0,t.mdx)("a",{parentName:"p",href:"../tuples"},"tuple types"),", which have a fixed length and where each element can have a different type."),(0,t.mdx)("p",null,"JavaScript array literal values can be used to create both tuple and array types:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const arr: Array = [1, 2, 3]; // As an array type\nconst tup: [number, number, number] = [1, 2, 3]; // As a tuple type\n")),(0,t.mdx)("h2",{id:"toc-array-type"},(0,t.mdx)("inlineCode",{parentName:"h2"},"Array")," Type"),(0,t.mdx)("p",null,"The type ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array")," represents an array of items of type ",(0,t.mdx)("inlineCode",{parentName:"p"},"T"),".\nFor example, an array of numbers would be ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const arr: Array = [1, 2, 3];\n")),(0,t.mdx)("p",null,"You can put any type within ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const arr1: Array = [true, false, true];\nconst arr2: Array = ["A", "B", "C"];\nconst arr3: Array = [1, true, "three"];\n')),(0,t.mdx)("h2",{id:"toc-readonlyarray"},(0,t.mdx)("inlineCode",{parentName:"h2"},"$ReadOnlyArray")," Type"),(0,t.mdx)("p",null,"You can use the type ",(0,t.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," instead of ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array")," to represent a ",(0,t.mdx)("a",{parentName:"p",href:"../../lang/variance"},"read-only")," array which cannot be mutated.\nYou can't write to a read-only array directly, and can't use methods which mutate the array like ",(0,t.mdx)("inlineCode",{parentName:"p"},".push()"),", ",(0,t.mdx)("inlineCode",{parentName:"p"},".push()"),", etc."),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":1,"endLine":4,"endColumn":16,"description":"Cannot assign `20` to `readonlyArray[1]` because read-only arrays cannot be written to. [cannot-write]"},{"startLine":5,"startColumn":15,"endLine":5,"endColumn":18,"description":"Cannot call `readonlyArray.push` because property `push` is missing in `$ReadOnlyArray` [1]. [prop-missing]"}]','[{"startLine":4,"startColumn":1,"endLine":4,"endColumn":16,"description":"Cannot':!0,assign:!0,"`20`":!0,to:!0,"`readonlyArray[1]`":!0,because:!0,"read-only":!0,arrays:!0,cannot:!0,be:!0,written:!0,"to.":!0,'[cannot-write]"},{"startLine":5,"startColumn":15,"endLine":5,"endColumn":18,"description":"Cannot':!0,call:!0,"`readonlyArray.push`":!0,property:!0,"`push`":!0,is:!0,missing:!0,in:!0,"`$ReadOnlyArray`":!0,"[1].":!0,'[prop-missing]"}]':!0},"const readonlyArray: $ReadOnlyArray = [1, 2, 3]\n\nconst first = readonlyArray[0]; // OK to read\nreadonlyArray[1] = 20; // Error!\nreadonlyArray.push(4); // Error!\n")),(0,t.mdx)("p",null,"Note that an array of type ",(0,t.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," can still have mutable ",(0,t.mdx)("em",{parentName:"p"},"elements"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":1,"endLine":2,"endColumn":16,"description":"Cannot assign object literal to `readonlyArray[0]` because read-only arrays cannot be written to. [cannot-write]"}]','[{"startLine":2,"startColumn":1,"endLine":2,"endColumn":16,"description":"Cannot':!0,assign:!0,object:!0,literal:!0,to:!0,"`readonlyArray[0]`":!0,because:!0,"read-only":!0,arrays:!0,cannot:!0,be:!0,written:!0,"to.":!0,'[cannot-write]"}]':!0},"const readonlyArray: $ReadOnlyArray<{x: number}> = [{x: 1}];\nreadonlyArray[0] = {x: 42}; // Error!\nreadonlyArray[0].x = 42; // Works\n")),(0,t.mdx)("p",null,"The main advantage to using ",(0,t.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," instead of ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array")," is that ",(0,t.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray"),"'s\ntype parameter is ",(0,t.mdx)("a",{parentName:"p",href:"../../lang/variance/#toc-covariance"},(0,t.mdx)("em",{parentName:"a"},"covariant")),"\nwhile ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array"),"'s type parameter is ",(0,t.mdx)("a",{parentName:"p",href:"../../lang/variance/#toc-invariance"},(0,t.mdx)("em",{parentName:"a"},"invariant")),".\nThat means that ",(0,t.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," is a subtype of ",(0,t.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," while\n",(0,t.mdx)("inlineCode",{parentName:"p"},"Array")," is NOT a subtype of ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array"),". So it's often useful to use\n",(0,t.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," in type annotations for arrays of various types of elements.\nTake, for instance, the following scenario:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":15,"endLine":6,"endColumn":19,"description":"Cannot call `someOperation` with `array` bound to `arr` because string [1] is incompatible with number [2] in array element. Arrays are invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number. [incompatible-call]"}]','[{"startLine":6,"startColumn":15,"endLine":6,"endColumn":19,"description":"Cannot':!0,call:!0,"`someOperation`":!0,with:!0,"`array`":!0,bound:!0,to:!0,"`arr`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,number:!0,"[2]":!0,in:!0,array:!0,"element.":!0,Arrays:!0,are:!0,invariantly:!0,"typed.":!0,See:!0,"https://flow.org/en/docs/faq/#why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number.":!0,'[incompatible-call]"}]':!0},"const someOperation = (arr: Array) => {\n // Here we could do `arr.push('a string')`\n}\n\nconst array: Array = [1];\nsomeOperation(array) // Error!\n")),(0,t.mdx)("p",null,"Since the parameter ",(0,t.mdx)("inlineCode",{parentName:"p"},"arr")," of the ",(0,t.mdx)("inlineCode",{parentName:"p"},"someOperation")," function is typed as a mutable\n",(0,t.mdx)("inlineCode",{parentName:"p"},"Array"),", pushing a string into it would be possible inside that scope, which\nwould then break the type contract of the outside ",(0,t.mdx)("inlineCode",{parentName:"p"},"array")," variable. By\nannotating the parameter as ",(0,t.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," instead in this case, Flow can be\nsure this won't happen and no errors will occur:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const someOperation = (arr: $ReadOnlyArray) => {\n // Nothing can be added to `arr`\n}\n\nconst array: Array = [1];\nsomeOperation(array); // Works\n")),(0,t.mdx)("p",null,(0,t.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," represents the supertype of all arrays and all ",(0,t.mdx)("a",{parentName:"p",href:"../tuples"},"tuples"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const tup: [number, string] = [1, 'hi'];\nconst arr: Array = [1, 2];\n\nfunction f(xs: $ReadOnlyArray) { /* ... */ }\n\nf(tup); // Works\nf(arr); // Works\n")),(0,t.mdx)("h2",{id:"toc-empty-array-literals"},"Empty Array Literals"),(0,t.mdx)("p",null,"Empty array literals (",(0,t.mdx)("inlineCode",{parentName:"p"},"[]"),") are handled specially in Flow when it comes to their ",(0,t.mdx)("a",{parentName:"p",href:"../../lang/annotation-requirement"},"annotation requirements"),".\nWhat makes them special is that they do not contain enough information to\ndetermine their type, and at the same time they are too common to always\nrequire type annotations in their immediate context."),(0,t.mdx)("p",null,"So, to type empty arrays Flow follows these rules:"),(0,t.mdx)("h3",{id:"contextual-inference"},"Contextual Inference"),(0,t.mdx)("p",null,"First, if ",(0,t.mdx)("a",{parentName:"p",href:"../../lang/annotation-requirement/#toc-contextual-typing"},"contextual information")," exists,\nwe'll use it to determine the array element type:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function takesStringArray(x: Array): void {}\n\nconst arr1: Array = [];\ntakesStringArray([]);\n")),(0,t.mdx)("p",null,"In both cases, the ",(0,t.mdx)("inlineCode",{parentName:"p"},"[]")," will be typed as an ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array"),"."),(0,t.mdx)("p",null,"Note that for the contextual information to work, the type needs to be available\nright at the definition of the array. This means that the last two lines in the following\ncode will error:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":7,"endLine":3,"endColumn":10,"description":"Cannot determine type of empty array literal. Please provide an annotation. [missing-empty-array-annot]"},{"startLine":4,"startColumn":18,"endLine":4,"endColumn":21,"description":"Cannot call `takesStringArray` with `arr2` bound to `x` because string [1] is incompatible with unknown element of empty array [2] in array element. Arrays are invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number. [incompatible-call]"}]','[{"startLine":3,"startColumn":7,"endLine":3,"endColumn":10,"description":"Cannot':!0,determine:!0,type:!0,of:!0,empty:!0,array:!0,"literal.":!0,Please:!0,provide:!0,an:!0,"annotation.":!0,'[missing-empty-array-annot]"},{"startLine":4,"startColumn":18,"endLine":4,"endColumn":21,"description":"Cannot':!0,call:!0,"`takesStringArray`":!0,with:!0,"`arr2`":!0,bound:!0,to:!0,"`x`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,unknown:!0,element:!0,"[2]":!0,in:!0,"element.":!0,Arrays:!0,are:!0,invariantly:!0,"typed.":!0,See:!0,"https://flow.org/en/docs/faq/#why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number.":!0,'[incompatible-call]"}]':!0},"function takesStringArray(x: Array): void {}\n\nconst arr2 = [];\ntakesStringArray(arr2);\n")),(0,t.mdx)("p",null,"The second error is due to ",(0,t.mdx)("inlineCode",{parentName:"p"},"arr2")," being inferred as ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array")," which leads to another error at the call\nto ",(0,t.mdx)("inlineCode",{parentName:"p"},"takesStringArray"),"."),(0,t.mdx)("h3",{id:"initializer-inference"},"Initializer Inference"),(0,t.mdx)("p",null,"Flow allows another way to determine the types of empty arrays when they are immediately assigned to a variable:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-js"},"const arr3 = [];\n")),(0,t.mdx)("p",null,"The way it does this is reminiscent of the typing of\n",(0,t.mdx)("a",{parentName:"p",href:"../../lang/variables/#toc-variables-declared-without-initializers"},"variables without initializers"),':\nFlow tries to choose the "first" ',(0,t.mdx)("em",{parentName:"p"},"assignment")," or ",(0,t.mdx)("em",{parentName:"p"},"assignments"),"\nto the variable to define its type. In the case of empty arrays, an assignment is either"),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},"an indexed write statement ",(0,t.mdx)("inlineCode",{parentName:"li"},"a[i] = e;"),", or"),(0,t.mdx)("li",{parentName:"ul"},"an array ",(0,t.mdx)("inlineCode",{parentName:"li"},"push")," call ",(0,t.mdx)("inlineCode",{parentName:"li"},"a.push(e)"),".")),(0,t.mdx)("p",null,"In either case the type of ",(0,t.mdx)("inlineCode",{parentName:"p"},"e")," is used as the type of the array element."),(0,t.mdx)("p",null,"Here are some examples:"),(0,t.mdx)("h4",{id:"straight-line-code"},"Straight-line Code"),(0,t.mdx)("p",null,"Once the first assignemnt has been found, the type of the array element is pinned to that of the\nassigned expression. Subsequent writes to array with elements of\na different type are errors:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":11,"endLine":3,"endColumn":15,"description":"Cannot call `arr3.push` because string [1] is incompatible with number [2] in array element. [incompatible-call]"}]','[{"startLine":3,"startColumn":11,"endLine":3,"endColumn":15,"description":"Cannot':!0,call:!0,"`arr3.push`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2]":!0,in:!0,array:!0,"element.":!0,'[incompatible-call]"}]':!0},'const arr3 = [];\narr3.push(42); // arr3 is inferred as Array\narr3.push("abc"); // Error!\n')),(0,t.mdx)("h4",{id:"conditional-code"},"Conditional Code"),(0,t.mdx)("p",null,"If the array is assigned in sibling branches of conditional statements, the type\nof the array element is pinned to the union of the assigned types:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":11,"startColumn":11,"endLine":11,"endColumn":14,"description":"Cannot assign `true` to `arr4[0]` because: [incompatible-type] Either boolean [1] is incompatible with number [2]. Or boolean [1] is incompatible with string [3]."}]','[{"startLine":11,"startColumn":11,"endLine":11,"endColumn":14,"description":"Cannot':!0,assign:!0,"`true`":!0,to:!0,"`arr4[0]`":!0,"because:":!0,"[incompatible-type]":!0,Either:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,Or:!0,string:!0,'[3]."}]':!0},'declare const cond: boolean;\n\nconst arr4 = [];\nif (cond) {\n arr4[0] = 42;\n} else {\n arr4.push("abc");\n}\n// arr4 is inferred as Array\narr4.push("def"); // Works\narr4[0] = true; // Error!\n')),(0,t.mdx)("h4",{id:"nearer-scope-wins"},"Nearer Scope Wins"),(0,t.mdx)("p",null,"Shallow scope of assignment is prefered when there are multiple scopes where assignments happen:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":13,"endLine":3,"endColumn":14,"description":"Cannot call `arr5.push` because number [1] is incompatible with string [2] in array element. [incompatible-call]"},{"startLine":7,"startColumn":11,"endLine":7,"endColumn":11,"description":"Cannot call `arr5.push` because number [1] is incompatible with string [2] in array element. [incompatible-call]"}]','[{"startLine":3,"startColumn":13,"endLine":3,"endColumn":14,"description":"Cannot':!0,call:!0,"`arr5.push`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2]":!0,in:!0,array:!0,"element.":!0,'[incompatible-call]"},{"startLine":7,"startColumn":11,"endLine":7,"endColumn":11,"description":"Cannot':!0,'[incompatible-call]"}]':!0},'const arr5 = [];\nfunction f() {\n arr5.push(42); // Error!\n}\nf();\narr5.push("abc"); // This assignment wins. arr5 is inferred as Array\narr5.push(1); // Error!\n')),(0,t.mdx)("h2",{id:"toc-array-access-is-unsafe"},"Array access is unsafe"),(0,t.mdx)("p",null,"When you retrieve an element from an array there is always a possibility that\nit is ",(0,t.mdx)("inlineCode",{parentName:"p"},"undefined"),'. You could have either accessed an index which is out of the\nbounds of the array, or the element could not exist because it is a "sparse\narray".'),(0,t.mdx)("p",null,"For example, you could be accessing an element that is out of the bounds of the\narray:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const array: Array = [0, 1, 2];\nconst value: number = array[3]; // Works\n // ^ undefined\n")),(0,t.mdx)("p",null,'Or you could be accessing an element that does not exist if it is a "sparse array":'),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const array: Array = [];\n\narray[0] = 0;\narray[2] = 2;\n\nconst value: number = array[1]; // Works\n // ^ undefined\n")),(0,t.mdx)("p",null,'In order to make this safe, Flow would have to mark every single array access\nas "',(0,t.mdx)("em",{parentName:"p"},'possibly undefined"'),"."),(0,t.mdx)("p",null,"Flow does not do this because it would be extremely inconvenient to use. You\nwould be forced to refine the type of every value you get when accessing an\narray."),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const array: Array = [0, 1, 2];\nconst value: number | void = array[1];\n\nif (value !== undefined) {\n // number\n}\n")),(0,t.mdx)("h2",{id:"toc-array-type-shorthand-syntax"},"Discouraged Array Type Shorthand Syntax"),(0,t.mdx)("p",null,"There is an alternative to the ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array")," syntax: ",(0,t.mdx)("inlineCode",{parentName:"p"},"T[]"),".\nThis syntax is discouraged and may be deprecated in the future."),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const arr: number[] = [0, 1, 2, 3];\n")),(0,t.mdx)("p",null,"Just note that ",(0,t.mdx)("inlineCode",{parentName:"p"},"?Type[]")," is the equivalent of ",(0,t.mdx)("inlineCode",{parentName:"p"},"?Array")," and not ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array"),"."),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":26,"endLine":3,"endColumn":29,"description":"Cannot assign array literal to `arr3` because null [1] is incompatible with number [2] in array element. [incompatible-type]"}]','[{"startLine":3,"startColumn":26,"endLine":3,"endColumn":29,"description":"Cannot':!0,assign:!0,array:!0,literal:!0,to:!0,"`arr3`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2]":!0,in:!0,"element.":!0,'[incompatible-type]"}]':!0},"const arr1: ?number[] = null; // Works\nconst arr2: ?number[] = [1, 2]; // Works\nconst arr3: ?number[] = [null]; // Error!\n")),(0,t.mdx)("p",null,"If you want to make it ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array")," you can use parenthesis like: ",(0,t.mdx)("inlineCode",{parentName:"p"},"(?Type)[]")),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":27,"endLine":1,"endColumn":30,"description":"Cannot assign `null` to `arr1` because null [1] is incompatible with array type [2]. [incompatible-type]"}]','[{"startLine":1,"startColumn":27,"endLine":1,"endColumn":30,"description":"Cannot':!0,assign:!0,"`null`":!0,to:!0,"`arr1`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,array:!0,type:!0,"[2].":!0,'[incompatible-type]"}]':!0},"const arr1: (?number)[] = null; // Error!\nconst arr2: (?number)[] = [1, 2]; // Works\nconst arr3: (?number)[] = [null]; // Works\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3397.d81097d9.js b/assets/js/3397.d81097d9.js new file mode 100644 index 00000000000..de573772f72 --- /dev/null +++ b/assets/js/3397.d81097d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3397],{3397:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>d,frontMatter:()=>l,metadata:()=>c,toc:()=>r});var t=i(87462),o=(i(67294),i(3905));i(45475);const l={title:".flowconfig [lints]",slug:"/config/lints"},s=void 0,c={unversionedId:"config/lints",id:"config/lints",title:".flowconfig [lints]",description:"The [lints] section in a .flowconfig file can contain several key-value",source:"@site/docs/config/lints.md",sourceDirName:"config",slug:"/config/lints",permalink:"/en/docs/config/lints",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/lints.md",tags:[],version:"current",frontMatter:{title:".flowconfig [lints]",slug:"/config/lints"},sidebar:"docsSidebar",previous:{title:".flowconfig [libs]",permalink:"/en/docs/config/libs"},next:{title:"Babel",permalink:"/en/docs/tools/babel"}},a={},r=[],f={toc:r};function d(e){let{components:n,...i}=e;return(0,o.mdx)("wrapper",(0,t.Z)({},f,i,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"The ",(0,o.mdx)("inlineCode",{parentName:"p"},"[lints]")," section in a ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file can contain several key-value\npairs of the form:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre"},"[lints]\nruleA=severityA\nruleB=severityB\n")),(0,o.mdx)("p",null,"Check out the ",(0,o.mdx)("a",{parentName:"p",href:"../../linting"},"linting docs")," for more information."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3418.fe6aa13b.js b/assets/js/3418.fe6aa13b.js new file mode 100644 index 00000000000..5712c68ee68 --- /dev/null +++ b/assets/js/3418.fe6aa13b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3418],{53418:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var r=t(87462),i=(t(67294),t(3905));t(45475);const a={title:"Type Guards",slug:"/types/type-guards"},o=void 0,s={unversionedId:"types/type-guards",id:"types/type-guards",title:"Type Guards",description:"Flow lets you define functions whose return expression encodes some type predicate over a parameter param. This predicate is annotated in place of a return type annotation as param is PredicateType. It declares that if the function returns true then param is of type PredicateType.",source:"@site/docs/types/type-guards.md",sourceDirName:"types",slug:"/types/type-guards",permalink:"/en/docs/types/type-guards",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/type-guards.md",tags:[],version:"current",frontMatter:{title:"Type Guards",slug:"/types/type-guards"},sidebar:"docsSidebar",previous:{title:"Mapped Types",permalink:"/en/docs/types/mapped-types"},next:{title:"Typeof Types",permalink:"/en/docs/types/typeof"}},p={},d=[{value:"Basic Usage",id:"toc-basic-usage",level:2},{value:"Defining a type guard function",id:"defining-a-type-guard-function",level:3},{value:"Using a type guard function to refine values",id:"using-a-type-guard-function-to-refine-values",level:3},{value:"Refine with Array.filter",id:"refine-with-arrayfilter",level:2},{value:"Defining Type Guard Functions",id:"toc-restrictions-of-type-guard-functions",level:2},{value:"Predicate parameter is a regular parameter to the function",id:"predicate-parameter-is-a-regular-parameter-to-the-function",level:3},{value:"Predicate type is consistent with the parameter type",id:"predicate-type-is-consistent-with-the-parameter-type",level:3},{value:"Type guard function returns boolean",id:"type-guard-function-returns-boolean",level:3},{value:"Predicate type is consistent with refined type",id:"predicate-type-is-consistent-with-refined-type",level:3},{value:"Adoption",id:"toc-adoption",level:2}],l={toc:d};function u(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,r.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Flow lets you define functions whose return expression encodes some type predicate over a parameter ",(0,i.mdx)("inlineCode",{parentName:"p"},"param"),". This predicate is annotated in place of a return type annotation as ",(0,i.mdx)("inlineCode",{parentName:"p"},"param is PredicateType"),". It declares that if the function returns ",(0,i.mdx)("inlineCode",{parentName:"p"},"true")," then ",(0,i.mdx)("inlineCode",{parentName:"p"},"param")," is of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"PredicateType"),"."),(0,i.mdx)("p",null,"The syntax for a function like this is:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function predicate(param: InputType): param is PredicateType {\n return ;\n}\n")),(0,i.mdx)("p",null,"The type of this function can also be written in terms of a type guard annotation:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type PredicateFunc = (param: InputType) => param is PredicateType;\n")),(0,i.mdx)("h2",{id:"toc-basic-usage"},"Basic Usage"),(0,i.mdx)("p",null,"Let's see a simple example where we define a type guard function and then use it to refine some values."),(0,i.mdx)("h3",{id:"defining-a-type-guard-function"},"Defining a type guard function"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type A = { type: "A"; data: string };\ntype B = { type: "B"; data: number };\ntype AorB = A | B;\n\nfunction isA(value: AorB): value is A {\n return value.type === "A";\n}\n')),(0,i.mdx)("p",null,"We have defined a data type ",(0,i.mdx)("inlineCode",{parentName:"p"},"AorB")," that is a disjoint union of two types ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," that each have a property ",(0,i.mdx)("inlineCode",{parentName:"p"},"type")," used as tag."),(0,i.mdx)("p",null,"We have also written a ",(0,i.mdx)("em",{parentName:"p"},"user defined type guard")," function ",(0,i.mdx)("inlineCode",{parentName:"p"},"isA")," defined over objects of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"AorB"),". This function returns ",(0,i.mdx)("inlineCode",{parentName:"p"},"true")," when the value of of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"type")," property of its input is ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"'),". Using the definitions of ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"B"),", Flow can prove that when the value of ",(0,i.mdx)("inlineCode",{parentName:"p"},"type")," is ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"')," then the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"value")," will be ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),"."),(0,i.mdx)("h3",{id:"using-a-type-guard-function-to-refine-values"},"Using a type guard function to refine values"),(0,i.mdx)("p",null,"Functions that have a declared type guard can be used to refine values in conditionals. In the example above, we can use ",(0,i.mdx)("inlineCode",{parentName:"p"},"isA")," to refine a variable of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"AorB")," to just ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":18,"startColumn":22,"endLine":18,"endColumn":22,"description":"Cannot assign `x` to `error` because string [1] is incompatible with number [2] in property `data`. [incompatible-type]"},{"startLine":18,"startColumn":22,"endLine":18,"endColumn":22,"description":"Cannot assign `x` to `error` because string literal `A` [1] is incompatible with string literal `B` [2] in property `type`. [incompatible-type]"}]','[{"startLine":18,"startColumn":22,"endLine":18,"endColumn":22,"description":"Cannot':!0,assign:!0,"`x`":!0,to:!0,"`error`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2]":!0,in:!0,property:!0,"`data`.":!0,'[incompatible-type]"},{"startLine":18,"startColumn":22,"endLine":18,"endColumn":22,"description":"Cannot':!0,literal:!0,"`A`":!0,"`B`":!0,"`type`.":!0,'[incompatible-type]"}]':!0},'type A = { type: "A"; data: string };\ntype B = { type: "B"; data: number };\ntype AorB = A | B;\n\nfunction isA(value: AorB): value is A {\n return value.type === "A";\n}\n\nfunction test(x: AorB) {\n if (isA(x)) {\n // `x` has now been refined to type A.\n // We can assign it variables of type A ...\n const y: A = x;\n // ...and access A\'s properties through `x`\n const stringData: string = x.data;\n\n // As a sanity check, the following assignment to B will error\n const error: B = x;\n }\n}\n')),(0,i.mdx)("p",null,"In the then-branch of the conditional ",(0,i.mdx)("inlineCode",{parentName:"p"},"if (isA(x))"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," will have the type ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),"."),(0,i.mdx)("h2",{id:"refine-with-arrayfilter"},"Refine with ",(0,i.mdx)("inlineCode",{parentName:"h2"},"Array.filter")),(0,i.mdx)("p",null,"Flow recognizes when you call ",(0,i.mdx)("inlineCode",{parentName:"p"},"filter")," on an array of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array")," with a callback function that holds a type guard with type ",(0,i.mdx)("inlineCode",{parentName:"p"},"(value: T) => value is S"),".\nIt will use this to produce an output array of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array"),". Note that ",(0,i.mdx)("inlineCode",{parentName:"p"},"S")," needs to be a subtype of the type of the array element ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),"."),(0,i.mdx)("p",null,"For example"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":19,"startColumn":10,"endLine":19,"endColumn":15,"description":"Cannot return `result` because property `error` is missing in object type [1] but exists in object type [2] in array element. [prop-missing]"},{"startLine":19,"startColumn":10,"endLine":19,"endColumn":15,"description":"Cannot return `result` because property `value` is missing in object type [1] but exists in object type [2] in array element. [prop-missing]"},{"startLine":19,"startColumn":10,"endLine":19,"endColumn":15,"description":"Cannot return `result` because string literal `success` [1] is incompatible with string literal `error` [2] in property `type` of array element. [incompatible-return]"},{"startLine":25,"startColumn":38,"endLine":25,"endColumn":64,"description":"Cannot return `response.type === \'success\'` because property `error` is missing in object type [1] but exists in object type [2] in the type inferred for type guard parameter `response` [3]. [prop-missing]"},{"startLine":25,"startColumn":38,"endLine":25,"endColumn":64,"description":"Cannot return `response.type === \'success\'` because property `value` is missing in object type [1] but exists in object type [2] in the type inferred for type guard parameter `response` [3]. [prop-missing]"},{"startLine":25,"startColumn":38,"endLine":25,"endColumn":64,"description":"Cannot return `response.type === \'success\'` because string literal `success` [1] is incompatible with string literal `error` [2] in property `type` of the type inferred for type guard parameter `response` [3]. [incompatible-return]"}]','[{"startLine":19,"startColumn":10,"endLine":19,"endColumn":15,"description":"Cannot':!0,return:!0,"`result`":!0,because:!0,property:!0,"`error`":!0,is:!0,missing:!0,in:!0,object:!0,type:!0,"[1]":!0,but:!0,exists:!0,"[2]":!0,array:!0,"element.":!0,'[prop-missing]"},{"startLine":19,"startColumn":10,"endLine":19,"endColumn":15,"description":"Cannot':!0,"`value`":!0,string:!0,literal:!0,"`success`":!0,incompatible:!0,with:!0,"`type`":!0,of:!0,'[incompatible-return]"},{"startLine":25,"startColumn":38,"endLine":25,"endColumn":64,"description":"Cannot':!0,"`response.type":!0,"":"","'success'`":!0,the:!0,inferred:!0,for:!0,guard:!0,parameter:!0,"`response`":!0,"[3].":!0,'[prop-missing]"},{"startLine":25,"startColumn":38,"endLine":25,"endColumn":64,"description":"Cannot':!0,'[incompatible-return]"}]':!0},"type Success = $ReadOnly<{type: 'success', value: 23}>;\ntype Error = $ReadOnly<{type: 'error', error: string}>;\n\ntype Response =\n | Success\n | Error\n\nfunction filterSuccess(response: Array): Array {\n return response.filter(\n (response): response is Success => response.type === 'success'\n );\n}\n\nfunction filterError1(response: Array): Array {\n const result = response.filter(\n (response): response is Success => response.type === 'success'\n );\n // The following is expected to error\n return result;\n}\n\nfunction filterError2(response: Array): Array {\n const result = response.filter(\n // The following is expected to error\n (response): response is Error => response.type === 'success'\n );\n return result;\n}\n")),(0,i.mdx)("p",null,"In ",(0,i.mdx)("inlineCode",{parentName:"p"},"filterError1"),", filtering produces ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array")," that is not compatible with the expected return type ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array"),"."),(0,i.mdx)("p",null,"In ",(0,i.mdx)("inlineCode",{parentName:"p"},"filterError2"),", the predicate ",(0,i.mdx)("inlineCode",{parentName:"p"},"response.type === 'success'")," is used to refine ",(0,i.mdx)("inlineCode",{parentName:"p"},"Response"),"s to ",(0,i.mdx)("inlineCode",{parentName:"p"},"Success"),"s, not ",(0,i.mdx)("inlineCode",{parentName:"p"},"Error"),"s."),(0,i.mdx)("h2",{id:"toc-restrictions-of-type-guard-functions"},"Defining Type Guard Functions"),(0,i.mdx)("p",null,"To ensure that refinement with type guard functions is sound, Flow runs a number of checks associated with these functions."),(0,i.mdx)("h3",{id:"predicate-parameter-is-a-regular-parameter-to-the-function"},"Predicate parameter is a regular parameter to the function"),(0,i.mdx)("p",null,"In a type guard annotation of the form ",(0,i.mdx)("inlineCode",{parentName:"p"},"parameter is Type"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"parameter")," needs to belong to the current function's parameter list."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":33,"endLine":1,"endColumn":36,"description":"Cannot find type guard parameter `prop` [1] in the parameters of this function (type). [function-predicate]"}]','[{"startLine":1,"startColumn":33,"endLine":1,"endColumn":36,"description":"Cannot':!0,find:!0,type:!0,guard:!0,parameter:!0,"`prop`":!0,"[1]":!0,in:!0,the:!0,parameters:!0,of:!0,this:!0,function:!0,"(type).":!0,'[function-predicate]"}]':!0},'function missing(param: mixed): prop is number {\n return typeof param === "number";\n}\n')),(0,i.mdx)("p",null,"It cannot be a parameter bound in a destructuring pattern, or a rest paramter:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":48,"endLine":1,"endColumn":51,"description":"A type guard parameter `prop` [1] cannot reference pattern parameter `prop` [2]. [function-predicate]"}]','[{"startLine":1,"startColumn":48,"endLine":1,"endColumn":51,"description":"A':!0,type:!0,guard:!0,parameter:!0,"`prop`":!0,"[1]":!0,cannot:!0,reference:!0,pattern:!0,"[2].":!0,'[function-predicate]"}]':!0},'function destructuring({prop}: {prop: mixed}): prop is number {\n return typeof prop === "number";\n}\n')),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":40,"endLine":1,"endColumn":44,"description":"A type guard parameter `value` [1] cannot reference rest parameter `value` [2]. [function-predicate]"}]','[{"startLine":1,"startColumn":40,"endLine":1,"endColumn":44,"description":"A':!0,type:!0,guard:!0,parameter:!0,"`value`":!0,"[1]":!0,cannot:!0,reference:!0,rest:!0,"[2].":!0,'[function-predicate]"}]':!0},"function rest(...value: Array): value is Array {\n return Array.isArray(value);\n}\n")),(0,i.mdx)("h3",{id:"predicate-type-is-consistent-with-the-parameter-type"},"Predicate type is consistent with the parameter type"),(0,i.mdx)("p",null,"The type guard ",(0,i.mdx)("inlineCode",{parentName:"p"},"Type")," needs to be compatible with the type of the parameter. In other words, given a definition"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function isT(x: ParamType): x is Type {\n return ...\n}\n")),(0,i.mdx)("p",null,"Flow will check that ",(0,i.mdx)("inlineCode",{parentName:"p"},"Type")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"ParamType"),". So the following will be an error:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":36,"endLine":1,"endColumn":41,"description":"Cannot use number [1] as type prediate for parameter `x` because number [1] is incompatible with string [2]. A user defined type guard needs to be compatible with its parameter\'s type. [incompatible-type-guard]"}]','[{"startLine":1,"startColumn":36,"endLine":1,"endColumn":41,"description":"Cannot':!0,use:!0,number:!0,"[1]":!0,as:!0,type:!0,prediate:!0,for:!0,parameter:!0,"`x`":!0,because:!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,A:!0,user:!0,defined:!0,guard:!0,needs:!0,to:!0,be:!0,compatible:!0,its:!0,"parameter's":!0,"type.":!0,'[incompatible-type-guard]"}]':!0},'function isNumber(x: string): x is number {\n return typeof x === "number";\n}\n')),(0,i.mdx)("h3",{id:"type-guard-function-returns-boolean"},"Type guard function returns boolean"),(0,i.mdx)("p",null,"A type guard function needs to return a boolean expression. The following are invalid declarations:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":39,"endLine":1,"endColumn":49,"description":"Cannot declare a type predicate [1] for function [2] because boolean [1] is incompatible with implicitly-returned undefined. [incompatible-return]"}]','[{"startLine":1,"startColumn":39,"endLine":1,"endColumn":49,"description":"Cannot':!0,declare:!0,a:!0,type:!0,predicate:!0,"[1]":!0,for:!0,function:!0,"[2]":!0,because:!0,boolean:!0,is:!0,incompatible:!0,with:!0,"implicitly-returned":!0,"undefined.":!0,'[incompatible-return]"}]':!0},"function isNumberNoReturn(x: string): x is string {}\n")),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":10,"description":"Cannot return `x` because null or undefined [1] is incompatible with boolean [2]. [incompatible-return]"},{"startLine":2,"startColumn":10,"endLine":2,"endColumn":10,"description":"Cannot return `x` because object type [1] is incompatible with boolean [2]. [incompatible-return]"}]','[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":10,"description":"Cannot':!0,return:!0,"`x`":!0,because:!0,null:!0,or:!0,undefined:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-return]"},{"startLine":2,"startColumn":10,"endLine":2,"endColumn":10,"description":"Cannot':!0,object:!0,type:!0,'[incompatible-return]"}]':!0},"function nonMaybe(x: ?V): x is V {\n return x;\n}\n")),(0,i.mdx)("p",null,"A correct version of ",(0,i.mdx)("inlineCode",{parentName:"p"},"nonMaybe")," would be"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function nonMaybe(x: ?V): x is V {\n return !!x;\n}\n")),(0,i.mdx)("h3",{id:"predicate-type-is-consistent-with-refined-type"},"Predicate type is consistent with refined type"),(0,i.mdx)("p",null,"In addition to the above checks, Flow also ensures that the declared type guard is consistent with the check happening in the body of the function. To establish this it needs to guarantee two things:"),(0,i.mdx)("ol",null,(0,i.mdx)("li",{parentName:"ol"},"The type of the refined parameter at the return location ",(0,i.mdx)("em",{parentName:"li"},"after")," the predicate of the return expression has been applied is a subtype of the guard type. For example, the following definitions are correct:")),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function numOrStr(x: mixed): x is number | string {\n return (typeof x === "number" || typeof x === "string");\n}\n\nfunction numOrStrWithException(x: mixed): x is number | string {\n if (typeof x === "number") {\n return true;\n } else {\n if (typeof x === "string") {\n return true;\n } else {\n throw new Error("");\n }\n }\n}\n')),(0,i.mdx)("p",null,"But in the following Flow will raise errors:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":36,"endLine":2,"endColumn":57,"description":"Cannot return `((typeof x) === \\"number\\") || ((typeof x) === \\"boolean\\")` because in the type inferred for type guard parameter `x` [1]: [incompatible-return] Either boolean [2] is incompatible with number [3]. Or boolean [2] is incompatible with string [4]."}]','[{"startLine":2,"startColumn":36,"endLine":2,"endColumn":57,"description":"Cannot':!0,return:!0,"`((typeof":!0,"x)":!0,"":"",'\\"number\\")':!0,"||":!0,"((typeof":!0,'\\"boolean\\")`':!0,because:!0,in:!0,the:!0,type:!0,inferred:!0,for:!0,guard:!0,parameter:!0,"`x`":!0,"[1]:":!0,"[incompatible-return]":!0,Either:!0,boolean:!0,"[2]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[3].":!0,Or:!0,string:!0,'[4]."}]':!0},'function numOrStrError(x: mixed): x is number | string {\n return (typeof x === "number" || typeof x === "boolean");\n}\n')),(0,i.mdx)("ol",{start:2},(0,i.mdx)("li",{parentName:"ol"},"The parameter that is refined cannot be reassigned in the body of the type guard function. Therefore the following are errors:")),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":10,"endLine":3,"endColumn":30,"description":"Cannot use type guard parameter `x` [1] because at this return point it is writen to in [2]. [function-predicate]"}]','[{"startLine":3,"startColumn":10,"endLine":3,"endColumn":30,"description":"Cannot':!0,use:!0,type:!0,guard:!0,parameter:!0,"`x`":!0,"[1]":!0,because:!0,at:!0,this:!0,return:!0,point:!0,it:!0,is:!0,writen:!0,to:!0,in:!0,"[2].":!0,'[function-predicate]"}]':!0},'function isNumberError1(x: mixed): x is number {\n x = 1;\n return typeof x === "number";\n}\n')),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":36,"endLine":1,"endColumn":36,"description":"Cannot use type guard parameter `x`, because `x` [1] is reassigned in [2]. [function-predicate]"}]','[{"startLine":1,"startColumn":36,"endLine":1,"endColumn":36,"description":"Cannot':!0,use:!0,type:!0,guard:!0,parameter:!0,"`x`,":!0,because:!0,"`x`":!0,"[1]":!0,is:!0,reassigned:!0,in:!0,"[2].":!0,'[function-predicate]"}]':!0},'function isNumberError2(x: mixed): x is number {\n function foo() {\n x = 1;\n }\n foo();\n return typeof x === "number";\n}\n')),(0,i.mdx)("h2",{id:"toc-adoption"},"Adoption"),(0,i.mdx)("p",null,"To use type guards, you need to upgrade your infrastructure so that it supports the syntax:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"flow")," and ",(0,i.mdx)("inlineCode",{parentName:"li"},"flow-parser"),": 0.209.1. Between v0.209.1 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the ",(0,i.mdx)("inlineCode",{parentName:"li"},"[options]")," heading, add ",(0,i.mdx)("inlineCode",{parentName:"li"},"type_guards=true"),"."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"prettier"),": 3"),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"babel")," with ",(0,i.mdx)("inlineCode",{parentName:"li"},"babel-plugin-syntax-hermes-parser"),". See ",(0,i.mdx)("a",{parentName:"li",href:"../../tools/babel/"},"our Babel guide")," for setup instructions."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"eslint")," with ",(0,i.mdx)("inlineCode",{parentName:"li"},"hermes-eslint"),". See ",(0,i.mdx)("a",{parentName:"li",href:"../../tools/eslint/"},"our ESLint guide")," for setup instructions.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3426.7a8d681d.js b/assets/js/3426.7a8d681d.js new file mode 100644 index 00000000000..55b9983bea0 --- /dev/null +++ b/assets/js/3426.7a8d681d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3426],{23426:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var a=t(87462),r=(t(67294),t(3905));t(45475);const i={title:"Functions",slug:"/types/functions"},o=void 0,l={unversionedId:"types/functions",id:"types/functions",title:"Functions",description:"Functions have two places where types are applied: parameters (input) and the return value (output).",source:"@site/docs/types/functions.md",sourceDirName:"types",slug:"/types/functions",permalink:"/en/docs/types/functions",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/functions.md",tags:[],version:"current",frontMatter:{title:"Functions",slug:"/types/functions"},sidebar:"docsSidebar",previous:{title:"Maybe Types",permalink:"/en/docs/types/maybe"},next:{title:"Objects",permalink:"/en/docs/types/objects"}},s={},u=[{value:"Syntax of functions",id:"syntax-of-functions",level:2},{value:"Function Declarations",id:"function-declarations",level:3},{value:"Arrow Functions",id:"arrow-functions",level:3},{value:"Function Types",id:"function-types",level:3},{value:"Type arguments",id:"type-arguments",level:3},{value:"Function Parameters",id:"function-parameters",level:2},{value:"Optional Parameters",id:"optional-parameters",level:3},{value:"Rest Parameters",id:"rest-parameters",level:3},{value:"this parameter",id:"this-parameter",level:3},{value:"Function Returns",id:"function-returns",level:2},{value:"Predicate Functions",id:"predicate-functions",level:3},{value:"Limitations of predicate functions",id:"limitations-of-predicate-functions",level:4},{value:"Callable Objects",id:"callable-objects",level:2},{value:"Overloaded functions",id:"overloaded-functions",level:2},{value:"Any function",id:"any-function",level:2}],m={toc:u};function d(n){let{components:e,...t}=n;return(0,r.mdx)("wrapper",(0,a.Z)({},m,t,{components:e,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Functions have two places where types are applied: parameters (input) and the return value (output)."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":8,"endLine":6,"endColumn":11,"description":"Cannot call `concat` with `true` bound to `a` because boolean [1] is incompatible with string [2]. [incompatible-call]"},{"startLine":6,"startColumn":14,"endLine":6,"endColumn":18,"description":"Cannot call `concat` with `false` bound to `b` because boolean [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":6,"startColumn":8,"endLine":6,"endColumn":11,"description":"Cannot':!0,call:!0,"`concat`":!0,with:!0,"`true`":!0,bound:!0,to:!0,"`a`":!0,because:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"},{"startLine":6,"startColumn":14,"endLine":6,"endColumn":18,"description":"Cannot':!0,"`false`":!0,"`b`":!0,'[incompatible-call]"}]':!0},'function concat(a: string, b: string): string {\n return a + b;\n}\n\nconcat("foo", "bar"); // Works!\nconcat(true, false); // Error!\n')),(0,r.mdx)("p",null,"Using inference, return types are often optional:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function concat(a: string, b: string) {\n return a + b;\n}\n\nconst s: string = concat("foo", "bar"); // Works!\n')),(0,r.mdx)("p",null,"If defined where we can get the type from the context of the expression, type annotations can be optional:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"[1, 2, 3].map(x => x * x); // From the context, we know parameter `x` has type `number`\n")),(0,r.mdx)("h2",{id:"syntax-of-functions"},"Syntax of functions"),(0,r.mdx)("p",null,"There are three forms of functions that each have their own slightly different syntax."),(0,r.mdx)("h3",{id:"function-declarations"},"Function Declarations"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(str: string, bool?: boolean, ...nums: Array): void {\n // ...\n}\n")),(0,r.mdx)("h3",{id:"arrow-functions"},"Arrow Functions"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"let func = (str: string, bool?: boolean, ...nums: Array): void => {\n // ...\n};\n")),(0,r.mdx)("h3",{id:"function-types"},"Function Types"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type T = (str: string, bool?: boolean, ...nums: Array) => void;\n")),(0,r.mdx)("p",null,"You may also optionally leave out the parameter names."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type T = (string, boolean | void, Array) => void;\n")),(0,r.mdx)("p",null,"You might use these functions types for something like a callback."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(callback: (error: Error | null, value: string | null) => void) {\n // ...\n}\n")),(0,r.mdx)("h3",{id:"type-arguments"},"Type arguments"),(0,r.mdx)("p",null,"Functions can have type arguments:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function f(x: T): Array {\n return [x];\n}\n\nconst g = (x: T): Array => [x];\n\ntype H = (T) => Array;\n")),(0,r.mdx)("h2",{id:"function-parameters"},"Function Parameters"),(0,r.mdx)("p",null,"Function parameters can have types by adding a colon ",(0,r.mdx)("inlineCode",{parentName:"p"},":")," followed by the type\nafter the name of the parameter."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(param1: string, param2: boolean) {\n // ...\n}\n")),(0,r.mdx)("h3",{id:"optional-parameters"},"Optional Parameters"),(0,r.mdx)("p",null,"You can also have optional parameters by adding a question mark ",(0,r.mdx)("inlineCode",{parentName:"p"},"?")," after the\nname of the parameter and before the colon ",(0,r.mdx)("inlineCode",{parentName:"p"},":"),"."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(optionalValue?: string) {\n // ...\n}\n")),(0,r.mdx)("p",null,"Optional parameters will accept missing, ",(0,r.mdx)("inlineCode",{parentName:"p"},"undefined"),", or matching types. But\nthey will not accept ",(0,r.mdx)("inlineCode",{parentName:"p"},"null"),"."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":6,"endLine":9,"endColumn":9,"description":"Cannot call `func` with `null` bound to `optionalValue` because null [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":9,"startColumn":6,"endLine":9,"endColumn":9,"description":"Cannot':!0,call:!0,"`func`":!0,with:!0,"`null`":!0,bound:!0,to:!0,"`optionalValue`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function func(optionalValue?: string) {\n // ...\n}\n\nfunc(); // Works.\nfunc(undefined); // Works.\nfunc("string"); // Works.\n\nfunc(null); // Error!\n')),(0,r.mdx)("h3",{id:"rest-parameters"},"Rest Parameters"),(0,r.mdx)("p",null,"JavaScript also supports having rest parameters or parameters that collect an\narray of arguments at the end of a list of parameters. These have an ellipsis\n",(0,r.mdx)("inlineCode",{parentName:"p"},"...")," before them."),(0,r.mdx)("p",null,"You can also add type annotations for rest parameters using the same syntax but\nwith an ",(0,r.mdx)("inlineCode",{parentName:"p"},"Array"),"."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(...args: Array) {\n // ...\n}\n")),(0,r.mdx)("p",null,"You can pass as many arguments as you want into a rest parameter."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(...args: Array) {\n // ...\n}\n\nfunc(); // Works.\nfunc(1); // Works.\nfunc(1, 2); // Works.\nfunc(1, 2, 3); // Works.\n")),(0,r.mdx)("blockquote",null,(0,r.mdx)("p",{parentName:"blockquote"},"Note: If you add a type annotation to a rest parameter, it must always\nexplicitly be an ",(0,r.mdx)("inlineCode",{parentName:"p"},"Array")," of ",(0,r.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," type.")),(0,r.mdx)("h3",{id:"this-parameter"},(0,r.mdx)("inlineCode",{parentName:"h3"},"this")," parameter"),(0,r.mdx)("p",null,"Every function in JavaScript can be called with a special context named ",(0,r.mdx)("inlineCode",{parentName:"p"},"this"),".\nYou can call a function with any context that you want. Flow allows you to annotate\nthe type for this context by adding a special parameter at the start of the function's parameter list:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":21,"endLine":6,"endColumn":39,"description":"Cannot assign `func.call(...)` to `str` because number [1] is incompatible with string [2]. [incompatible-type]"}]','[{"startLine":6,"startColumn":21,"endLine":6,"endColumn":39,"description":"Cannot':!0,assign:!0,"`func.call(...)`":!0,to:!0,"`str`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,'[incompatible-type]"}]':!0},"function func(this: { x: T }) : T {\n return this.x;\n}\n\nconst num: number = func.call({x : 42});\nconst str: string = func.call({x : 42}); // Error!\n")),(0,r.mdx)("p",null,"This parameter has no effect at runtime, and is erased along with types when Flow is transformed into JavaScript.\nWhen present, ",(0,r.mdx)("inlineCode",{parentName:"p"},"this")," parameters must always appear at the very beginning of the function's parameter list, and must\nhave an annotation. Additionally, ",(0,r.mdx)("a",{parentName:"p",href:"./#toc-arrow-functions"},"arrow functions")," may not have a ",(0,r.mdx)("inlineCode",{parentName:"p"},"this")," parameter annotation, as\nthese functions bind their ",(0,r.mdx)("inlineCode",{parentName:"p"},"this")," parameter at the definition site, rather than the call site."),(0,r.mdx)("p",null,"If an explicit ",(0,r.mdx)("inlineCode",{parentName:"p"},"this")," parameter is not provided, Flow will attempt to infer one based on usage. If ",(0,r.mdx)("inlineCode",{parentName:"p"},"this")," is not mentioned\nin the body of the function, Flow will infer ",(0,r.mdx)("inlineCode",{parentName:"p"},"mixed")," for its ",(0,r.mdx)("inlineCode",{parentName:"p"},"this")," parameter."),(0,r.mdx)("h2",{id:"function-returns"},"Function Returns"),(0,r.mdx)("p",null,"Function returns can also add a type using a colon ",(0,r.mdx)("inlineCode",{parentName:"p"},":")," followed by the type\nafter the list of parameters."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(): number {\n return 1;\n}\n")),(0,r.mdx)("p",null,"Return types ensure that every branch of your function returns the same type.\nThis prevents you from accidentally not returning a value under certain\nconditions."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":18,"endLine":1,"endColumn":24,"description":"Cannot expect boolean as the return type of function because boolean [1] is incompatible with implicitly-returned undefined. [incompatible-return]"}]','[{"startLine":1,"startColumn":18,"endLine":1,"endColumn":24,"description":"Cannot':!0,expect:!0,boolean:!0,as:!0,the:!0,return:!0,type:!0,of:!0,function:!0,because:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"implicitly-returned":!0,"undefined.":!0,'[incompatible-return]"}]':!0},"function func(): boolean {\n if (Math.random() > 0.5) {\n return true;\n }\n}\n")),(0,r.mdx)("p",null,"Async functions implicitly return a promise, so the return type must always be a ",(0,r.mdx)("inlineCode",{parentName:"p"},"Promise"),"."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"async function func(): Promise {\n return 123;\n}\n")),(0,r.mdx)("h3",{id:"predicate-functions"},"Predicate Functions"),(0,r.mdx)("p",null,"Sometimes you will want to move the condition from an ",(0,r.mdx)("inlineCode",{parentName:"p"},"if")," statement into a function:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function concat(a: ?string, b: ?string): string {\n if (a != null && b != null) {\n return a + b;\n }\n return '';\n}\n")),(0,r.mdx)("p",null,"However, Flow will error in the code below:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":12,"endLine":7,"endColumn":16,"description":"Cannot use operator `+` with operands null or undefined [1] and null or undefined [2] [unsafe-addition]"},{"startLine":7,"startColumn":12,"endLine":7,"endColumn":16,"description":"Cannot use operator `+` with operands null or undefined [1] and string [2] [unsafe-addition]"},{"startLine":7,"startColumn":12,"endLine":7,"endColumn":16,"description":"Cannot use operator `+` with operands string [1] and null or undefined [2] [unsafe-addition]"}]','[{"startLine":7,"startColumn":12,"endLine":7,"endColumn":16,"description":"Cannot':!0,use:!0,operator:!0,"`+`":!0,with:!0,operands:!0,null:!0,or:!0,undefined:!0,"[1]":!0,and:!0,"[2]":!0,'[unsafe-addition]"},{"startLine":7,"startColumn":12,"endLine":7,"endColumn":16,"description":"Cannot':!0,string:!0,'[unsafe-addition]"}]':!0},"function truthy(a: ?string, b: ?string): boolean {\n return a != null && b != null;\n}\n\nfunction concat(a: ?string, b: ?string): string {\n if (truthy(a, b)) {\n return a + b; // Error!\n }\n return '';\n}\n")),(0,r.mdx)("p",null,"This is because the refinement information of ",(0,r.mdx)("inlineCode",{parentName:"p"},"a")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"b")," as ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," instead of ",(0,r.mdx)("inlineCode",{parentName:"p"},"?string")," is lost when returning from the ",(0,r.mdx)("inlineCode",{parentName:"p"},"truthy")," function."),(0,r.mdx)("p",null,"You can fix this by making ",(0,r.mdx)("inlineCode",{parentName:"p"},"truthy")," a ",(0,r.mdx)("em",{parentName:"p"},"predicate function"),", by using the ",(0,r.mdx)("inlineCode",{parentName:"p"},"%checks")," annotation like so:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function truthy(a: ?string, b: ?string): boolean %checks {\n return a != null && b != null;\n}\n\nfunction concat(a: ?string, b: ?string): string {\n if (truthy(a, b)) {\n return a + b;\n }\n return '';\n}\n")),(0,r.mdx)("h4",{id:"limitations-of-predicate-functions"},"Limitations of predicate functions"),(0,r.mdx)("p",null,"The body of these predicate functions need to be expressions (i.e. local variable declarations are not supported).\nBut it's possible to call other predicate functions inside a predicate function.\nFor example:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function isString(y: mixed): %checks {\n return typeof y === "string";\n}\n\nfunction isNumber(y: mixed): %checks {\n return typeof y === "number";\n}\n\nfunction isNumberOrString(y: mixed): %checks {\n return isString(y) || isNumber(y);\n}\n\nfunction foo(x: string | number | Array): string | number {\n if (isNumberOrString(x)) {\n return x + x;\n } else {\n return x.length; // no error, because Flow infers that x can only be an array\n }\n}\n\nfoo(\'a\');\nfoo(5);\nfoo([]);\n')),(0,r.mdx)("p",null,"Another limitation is on the range of predicates that can be encoded. The refinements\nthat are supported in a predicate function must refer directly to the value that\nis passed in as an argument to the respective call."),(0,r.mdx)("p",null,"For example, consider the ",(0,r.mdx)("em",{parentName:"p"},"inlined")," refinement"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare var obj: { n?: number };\n\nif (obj.n != null) {\n const n: number = obj.n;\n}\n")),(0,r.mdx)("p",null,"Here, Flow will let you refine ",(0,r.mdx)("inlineCode",{parentName:"p"},"obj.n")," from ",(0,r.mdx)("inlineCode",{parentName:"p"},"?number")," to ",(0,r.mdx)("inlineCode",{parentName:"p"},"number"),". Note that the\nrefinement here is on the property ",(0,r.mdx)("inlineCode",{parentName:"p"},"n")," of ",(0,r.mdx)("inlineCode",{parentName:"p"},"obj"),", rather than ",(0,r.mdx)("inlineCode",{parentName:"p"},"obj")," itself."),(0,r.mdx)("p",null,"If you tried to create a ",(0,r.mdx)("em",{parentName:"p"},"predicate")," function to encode the same condition,\nthen the following refinement would fail"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":21,"endLine":8,"endColumn":25,"description":"Cannot assign `obj.n` to `n` because undefined [1] is incompatible with number [2]. [incompatible-type]"}]','[{"startLine":8,"startColumn":21,"endLine":8,"endColumn":25,"description":"Cannot':!0,assign:!0,"`obj.n`":!0,to:!0,"`n`":!0,because:!0,undefined:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-type]"}]':!0},"function bar(a: {n?: number, ...}): %checks {\n return a.n != null;\n}\n\ndeclare var obj: {n?: number};\n\nif (bar(obj)) {\n const n: number = obj.n; // Error\n}\n")),(0,r.mdx)("p",null,"This is because the only refinements supported through ",(0,r.mdx)("inlineCode",{parentName:"p"},"bar")," would be on ",(0,r.mdx)("inlineCode",{parentName:"p"},"obj")," itself."),(0,r.mdx)("h2",{id:"callable-objects"},"Callable Objects"),(0,r.mdx)("p",null,"Callable objects can be typed, for example:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type CallableObj = {\n (number, number): number,\n bar: string,\n ...\n};\n\nfunction add(x: number, y: number) {\n return x + y;\n}\n\nadd.bar = "hello world";\n\n(add: CallableObj);\n')),(0,r.mdx)("p",null,"In general, functions can have properties assigned to them if they are function declarations, or\nsimple variable declarations of the form ",(0,r.mdx)("inlineCode",{parentName:"p"},"const f = () => ..."),". The properties must be assigned in\nthe format ",(0,r.mdx)("inlineCode",{parentName:"p"},"f.prop = ;"),", in the same statement list as the function definition (i.e. not conditionally)."),(0,r.mdx)("p",null,"Note that the object representing the static properties assigned to the function is inexact."),(0,r.mdx)("h2",{id:"overloaded-functions"},"Overloaded functions"),(0,r.mdx)("p",null,"You can use intersection types to define ",(0,r.mdx)("a",{parentName:"p",href:"../intersections/#toc-intersection-of-function-types"},"overloaded function types"),":"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare const fn:\n & ((x: 'string') => string)\n & ((x: 'number') => number)\n\nconst s: string = fn('string');\nconst n: number = fn('number');\n")),(0,r.mdx)("h2",{id:"any-function"},"Any function"),(0,r.mdx)("p",null,"If you want to specify you want to allow any function, and do not care what it is, you can use this pattern:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function useCallback) => mixed>(\n callback: T,\n inputs: ?$ReadOnlyArray,\n): T {\n return callback;\n}\nuseCallback((x: string) => true); // OK\nuseCallback((x: number) => [1]); // OK\n")),(0,r.mdx)("p",null,"You could use type arguments to capture the arguments and return type, to do more complicated transformations:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func, TReturn>(\n callback: (...TArgs) => TReturn,\n): (boolean, ...TArgs) => Array {\n return (b, ...args): Array => {\n if (b) {\n return [callback(...args)];\n } else {\n return [];\n }\n };\n}\n\nconst f: (boolean, string, number) => Array =\n func((x: string, y: number) => x.slice(y)); // OK\n")),(0,r.mdx)("p",null,"The type ",(0,r.mdx)("inlineCode",{parentName:"p"},"Function")," is just an alias for ",(0,r.mdx)("a",{parentName:"p",href:"../any"},(0,r.mdx)("inlineCode",{parentName:"a"},"any")),", and is unsafe.\nYou can ban its use in your code with the ",(0,r.mdx)("a",{parentName:"p",href:"../../linting/rule-reference/#toc-unclear-type"},"unclear-type lint"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3430.3a4d3a20.js b/assets/js/3430.3a4d3a20.js new file mode 100644 index 00000000000..641b9e2fa34 --- /dev/null +++ b/assets/js/3430.3a4d3a20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3430],{63430:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>p});var i=t(87462),a=(t(67294),t(3905));t(45475);const o={title:"Unions",slug:"/types/unions"},s=void 0,r={unversionedId:"types/unions",id:"types/unions",title:"Unions",description:"Sometimes it's useful to create a type which is one of a set of other",source:"@site/docs/types/unions.md",sourceDirName:"types",slug:"/types/unions",permalink:"/en/docs/types/unions",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/unions.md",tags:[],version:"current",frontMatter:{title:"Unions",slug:"/types/unions"},sidebar:"docsSidebar",previous:{title:"Generics",permalink:"/en/docs/types/generics"},next:{title:"Intersections",permalink:"/en/docs/types/intersections"}},l={},p=[{value:"Union type syntax",id:"toc-union-type-syntax",level:2},{value:"Union shorthands",id:"union-shorthands",level:2},{value:"Unions & Refinements",id:"toc-unions-refinements",level:2},{value:"Union types requires one in, but all out",id:"toc-union-types-requires-one-in-but-all-out",level:2},{value:"Disjoint Object Unions",id:"toc-disjoint-object-unions",level:2},{value:"Disjoint object unions with exact types",id:"toc-disjoint-unions-with-exact-types",level:3}],u={toc:p};function m(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Sometimes it's useful to create a type which is ",(0,a.mdx)("strong",{parentName:"p"},(0,a.mdx)("em",{parentName:"strong"},"one of"))," a set of other\ntypes. For example, you might want to write a function which accepts a set of\nprimitive value types. For this Flow supports ",(0,a.mdx)("strong",{parentName:"p"},"union types"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":20,"endLine":9,"endColumn":32,"description":"Cannot call `toStringPrimitives` with object literal bound to `value` because: [incompatible-call] Either object literal [1] is incompatible with number [2]. Or object literal [1] is incompatible with boolean [3]. Or object literal [1] is incompatible with string [4]."},{"startLine":10,"startColumn":20,"endLine":10,"endColumn":34,"description":"Cannot call `toStringPrimitives` with array literal bound to `value` because: [incompatible-call] Either array literal [1] is incompatible with number [2]. Or array literal [1] is incompatible with boolean [3]. Or array literal [1] is incompatible with string [4]."}]','[{"startLine":9,"startColumn":20,"endLine":9,"endColumn":32,"description":"Cannot':!0,call:!0,"`toStringPrimitives`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`value`":!0,"because:":!0,"[incompatible-call]":!0,Either:!0,"[1]":!0,is:!0,incompatible:!0,number:!0,"[2].":!0,Or:!0,boolean:!0,"[3].":!0,string:!0,'[4]."},{"startLine":10,"startColumn":20,"endLine":10,"endColumn":34,"description":"Cannot':!0,array:!0,'[4]."}]':!0},"function toStringPrimitives(value: number | boolean | string): string {\n return String(value);\n}\n\ntoStringPrimitives(1); // Works!\ntoStringPrimitives(true); // Works!\ntoStringPrimitives('three'); // Works!\n\ntoStringPrimitives({prop: 'val'}); // Error!\ntoStringPrimitives([1, 2, 3, 4, 5]); // Error!\n")),(0,a.mdx)("h2",{id:"toc-union-type-syntax"},"Union type syntax"),(0,a.mdx)("p",null,"Union types are any number of types which are joined by a vertical bar ",(0,a.mdx)("inlineCode",{parentName:"p"},"|"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"Type1 | Type2 | ... | TypeN\n")),(0,a.mdx)("p",null,"You may also add a leading vertical bar which is useful when breaking union\ntypes onto multiple lines."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"type Foo =\n | Type1\n | Type2\n | ...\n | TypeN\n")),(0,a.mdx)("p",null,"Each of the members of a union type can be any type, even another union type."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Numbers = 1 | 2;\ntype Colors = 'red' | 'blue'\n\ntype Fish = Numbers | Colors;\n")),(0,a.mdx)("p",null,"If you have enabled ",(0,a.mdx)("a",{parentName:"p",href:"../../enums/"},"Flow Enums"),", they may be an alternative to unions of ",(0,a.mdx)("a",{parentName:"p",href:"../literals"},"literal types"),"."),(0,a.mdx)("h2",{id:"union-shorthands"},"Union shorthands"),(0,a.mdx)("p",null,"The union of some type ",(0,a.mdx)("inlineCode",{parentName:"p"},"T")," with ",(0,a.mdx)("inlineCode",{parentName:"p"},"null")," or ",(0,a.mdx)("inlineCode",{parentName:"p"},"void")," is common, so we provide a shorthand called ",(0,a.mdx)("a",{parentName:"p",href:"../maybe"},"maybe types"),", by using the ",(0,a.mdx)("inlineCode",{parentName:"p"},"?")," prefix. The type ",(0,a.mdx)("inlineCode",{parentName:"p"},"?T")," is equivalent to ",(0,a.mdx)("inlineCode",{parentName:"p"},"T | null | void"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function maybeString(x: ?string) { /* ... */ }\nmaybeString('hi'); // Works!\nmaybeString(null); // Works!\nmaybeString(undefined); // Works!\n")),(0,a.mdx)("p",null,"The union of every single type that exists is the ",(0,a.mdx)("a",{parentName:"p",href:"../mixed"},(0,a.mdx)("inlineCode",{parentName:"a"},"mixed"))," type:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function everything(x: mixed) { /* ... */ }\neverything(1); // Works!\neverything(true); // Works!\neverything(null); // Works!\neverything({foo: 1}); // Works!\neverything(new Error()); // Works!\n")),(0,a.mdx)("h2",{id:"toc-unions-refinements"},"Unions & Refinements"),(0,a.mdx)("p",null,"When you have a value which is a union type it's often useful to break it apart\nand handle each individual type separately. With union types in Flow you can\n",(0,a.mdx)("a",{parentName:"p",href:"../../lang/refinements"},"refine")," the value down to a single type."),(0,a.mdx)("p",null,"For example, if we have a value with a union type that is a ",(0,a.mdx)("inlineCode",{parentName:"p"},"number"),", a\n",(0,a.mdx)("inlineCode",{parentName:"p"},"boolean"),", or a ",(0,a.mdx)("inlineCode",{parentName:"p"},"string"),", we can treat the number case separately by using\nJavaScript's ",(0,a.mdx)("inlineCode",{parentName:"p"},"typeof")," operator."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function toStringPrimitives(value: number | boolean | string) {\n if (typeof value === 'number') {\n return value.toLocaleString([], {maximumSignificantDigits: 3}); // Works!\n }\n // ...\n}\n")),(0,a.mdx)("p",null,"By checking the ",(0,a.mdx)("inlineCode",{parentName:"p"},"typeof")," our value and testing to see if it is a ",(0,a.mdx)("inlineCode",{parentName:"p"},"number"),", Flow\nknows that inside of that block it is only a number. We can then write code\nwhich treats our value as a number inside of that block."),(0,a.mdx)("h2",{id:"toc-union-types-requires-one-in-but-all-out"},"Union types requires one in, but all out"),(0,a.mdx)("p",null,"When calling a function that accepts a union type we must pass in ",(0,a.mdx)("strong",{parentName:"p"},(0,a.mdx)("em",{parentName:"strong"},"one of\nthose types")),". But inside of the function we are required to handle ",(0,a.mdx)("strong",{parentName:"p"},(0,a.mdx)("em",{parentName:"strong"},"all of\nthe possible types")),"."),(0,a.mdx)("p",null,"Let's rewrite the function to handle each type individually using ",(0,a.mdx)("a",{parentName:"p",href:"../../lang/refinements"},"refinements"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function toStringPrimitives(value: number | boolean | string): string {\n if (typeof value === 'number') {\n return String(value);\n } else if (typeof value === 'boolean') {\n return String(value);\n }\n return value; // If we got here, it's a `string`!\n}\n")),(0,a.mdx)("p",null,"If we do not handle each possible type of our value, Flow will give us an error:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":10,"endLine":5,"endColumn":14,"description":"Cannot return `value` because boolean [1] is incompatible with string [2]. [incompatible-return]"}]','[{"startLine":5,"startColumn":10,"endLine":5,"endColumn":14,"description":"Cannot':!0,return:!0,"`value`":!0,because:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,'[incompatible-return]"}]':!0},"function toStringPrimitives(value: number | boolean | string): string {\n if (typeof value === 'number') {\n return String(value);\n }\n return value; // Error!\n}\n")),(0,a.mdx)("h2",{id:"toc-disjoint-object-unions"},"Disjoint Object Unions"),(0,a.mdx)("p",null,'There\'s a special type of union in Flow known as a "disjoint object union" which can\nbe used with ',(0,a.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refinements"),". These disjoint object unions are\nmade up of any number of object types which are each tagged by a single property."),(0,a.mdx)("p",null,"For example, imagine we have a function for handling a response from a server\nafter we've sent it a request. When the request is successful, we'll get back\nan object with a ",(0,a.mdx)("inlineCode",{parentName:"p"},"type")," property set to ",(0,a.mdx)("inlineCode",{parentName:"p"},"'success'")," and a ",(0,a.mdx)("inlineCode",{parentName:"p"},"value")," that we've\nupdated."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"{type: 'success', value: 23}\n")),(0,a.mdx)("p",null,"When the request fails, we'll get back an object with ",(0,a.mdx)("inlineCode",{parentName:"p"},"type")," set to ",(0,a.mdx)("inlineCode",{parentName:"p"},"'error'"),"\nand an ",(0,a.mdx)("inlineCode",{parentName:"p"},"error")," property describing the error."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"{type: 'error', error: 'Bad request'}\n")),(0,a.mdx)("p",null,"We can try to express both of these objects in a single object type. However,\nwe'll quickly run into issues where we know a property exists based on the\n",(0,a.mdx)("inlineCode",{parentName:"p"},"type")," property but Flow does not."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":27,"endLine":9,"endColumn":40,"description":"Cannot assign `response.value` to `value` because undefined [1] is incompatible with number [2]. [incompatible-type]"},{"startLine":11,"startColumn":27,"endLine":11,"endColumn":40,"description":"Cannot assign `response.error` to `error` because undefined [1] is incompatible with string [2]. [incompatible-type]"}]','[{"startLine":9,"startColumn":27,"endLine":9,"endColumn":40,"description":"Cannot':!0,assign:!0,"`response.value`":!0,to:!0,"`value`":!0,because:!0,undefined:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-type]"},{"startLine":11,"startColumn":27,"endLine":11,"endColumn":40,"description":"Cannot':!0,"`response.error`":!0,"`error`":!0,string:!0,'[incompatible-type]"}]':!0},"type Response = {\n type: 'success' | 'error',\n value?: number,\n error?: string\n};\n\nfunction handleResponse(response: Response) {\n if (response.type === 'success') {\n const value: number = response.value; // Error!\n } else {\n const error: string = response.error; // Error!\n }\n}\n")),(0,a.mdx)("p",null,"Trying to combine these two separate types into a single one will only cause us\ntrouble."),(0,a.mdx)("p",null,"Instead, if we create a union type of both object types, Flow will be able to\nknow which object we're using based on the ",(0,a.mdx)("inlineCode",{parentName:"p"},"type")," property."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Response =\n | {type: 'success', value: 23}\n | {type: 'error', error: string};\n\nfunction handleResponse(response: Response) {\n if (response.type === 'success') {\n const value: number = response.value; // Works!\n } else {\n const error: string = response.error; // Works!\n }\n}\n")),(0,a.mdx)("p",null,"In order to use this pattern, there must be a key that is in every object in your union (in our example above, ",(0,a.mdx)("inlineCode",{parentName:"p"},"type"),"),\nand every object must set a different ",(0,a.mdx)("a",{parentName:"p",href:"../literals"},"literal type")," for that key (in our example, the string ",(0,a.mdx)("inlineCode",{parentName:"p"},"'success'"),", and the string ",(0,a.mdx)("inlineCode",{parentName:"p"},"'error'"),").\nYou can use any kind of literal type, including numbers and booleans."),(0,a.mdx)("h3",{id:"toc-disjoint-unions-with-exact-types"},"Disjoint object unions with exact types"),(0,a.mdx)("p",null,"Disjoint unions require you to use a single property to distinguish each object\ntype. You cannot distinguish two different ",(0,a.mdx)("a",{parentName:"p",href:"../objects/#exact-and-inexact-object-types"},"inexact objects")," by different properties."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":37,"endLine":6,"endColumn":41,"description":"Cannot get `response.value` because property `value` is missing in object type [1]. [prop-missing]"}]','[{"startLine":6,"startColumn":37,"endLine":6,"endColumn":41,"description":"Cannot':!0,get:!0,"`response.value`":!0,because:!0,property:!0,"`value`":!0,is:!0,missing:!0,in:!0,object:!0,type:!0,"[1].":!0,'[prop-missing]"}]':!0},"type Success = {success: true, value: boolean, ...};\ntype Failed = {error: true, message: string, ...};\n\nfunction handleResponse(response: Success | Failed) {\n if (response.success) {\n const value: boolean = response.value; // Error!\n }\n}\n")),(0,a.mdx)("p",null,"This is because in Flow it is okay to pass an object value with more properties\nthan the inexact object type expects (because of ",(0,a.mdx)("a",{parentName:"p",href:"../../lang/width-subtyping/"},"width subtyping"),")."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Success = {success: true, value: boolean, ...};\ntype Failed = {error: true, message: string, ...};\n\nfunction handleResponse(response: Success | Failed) {\n // ...\n}\n\nhandleResponse({\n success: true,\n error: true,\n value: true,\n message: 'hi'\n});\n")),(0,a.mdx)("p",null,"Unless the objects somehow conflict with one another there is no way to\ndistinguish them."),(0,a.mdx)("p",null,"However, to get around this you could use ",(0,a.mdx)("strong",{parentName:"p"},"exact object types"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Success = {success: true, value: boolean};\ntype Failed = {error: true, message: string};\n\ntype Response = Success | Failed;\n\nfunction handleResponse(response: Response) {\n if (response.success) {\n const value: boolean = response.value;\n } else {\n const message: string = response.message;\n }\n}\n")),(0,a.mdx)("p",null,"With exact object types, we cannot have additional properties, so the objects\nconflict with one another and we are able to distinguish which is which."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3470.1f5577ea.js b/assets/js/3470.1f5577ea.js new file mode 100644 index 00000000000..932a660ad32 --- /dev/null +++ b/assets/js/3470.1f5577ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3470],{73470:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>s});var i=n(87462),a=(n(67294),n(3905));n(45475);const r={title:"Flow Strict",slug:"/strict",description:"Learn how to enable stricter type checking on a file-by-file basis."},o=void 0,l={unversionedId:"strict/index",id:"strict/index",title:"Flow Strict",description:"Learn how to enable stricter type checking on a file-by-file basis.",source:"@site/docs/strict/index.md",sourceDirName:"strict",slug:"/strict",permalink:"/en/docs/strict",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/strict/index.md",tags:[],version:"current",frontMatter:{title:"Flow Strict",slug:"/strict",description:"Learn how to enable stricter type checking on a file-by-file basis."},sidebar:"docsSidebar",previous:{title:"Lint Rule Reference",permalink:"/en/docs/linting/rule-reference"},next:{title:"Flow CLI",permalink:"/en/docs/cli"}},d={},s=[{value:"Overview",id:"toc-overview",level:3},{value:"Features",id:"toc-features",level:3},{value:"Enabling Flow Strict in a .flowconfig",id:"toc-enabling-flow-strict-in-a-flowconfig",level:3},{value:"Adoption",id:"toc-adoption",level:3},{value:"Strict Local",id:"toc-strict-local",level:3},{value:"What's Ahead",id:"toc-what-s-ahead",level:3}],c={toc:s};function m(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"You can enable stronger safety guarantees in Flow (such as banning ",(0,a.mdx)("inlineCode",{parentName:"p"},"any"),"/",(0,a.mdx)("inlineCode",{parentName:"p"},"Object"),"/",(0,a.mdx)("inlineCode",{parentName:"p"},"Function")," types and requiring all dependencies to be typed) by adding ",(0,a.mdx)("strong",{parentName:"p"},(0,a.mdx)("inlineCode",{parentName:"strong"},"@flow strict"))," to your files."),(0,a.mdx)("h3",{id:"toc-overview"},"Overview"),(0,a.mdx)("p",null,"Flow was designed for easy adoption, so it allows you opt-out of type checking in certain situations, permitting unsafe behaviors. But since many codebases now have a high adoption of Flow types, this trade-off can be flipped. You can use ",(0,a.mdx)("em",{parentName:"p"},"Flow Strict")," to disallow previously-allowed unsafe patterns. This gives you improved safety guarantees that catch more bugs and make refactoring easier. And you can implement these stronger guarantees incrementally, on a file-by-file basis."),(0,a.mdx)("h3",{id:"toc-features"},"Features"),(0,a.mdx)("p",null,"Enabling Flow Strict for a file means that several previously-allowed patterns will now trigger a Flow error. Each disallowed pattern has a corresponding ",(0,a.mdx)("a",{parentName:"p",href:"../linting/"},"Flow Lint")," rule which triggers the error. The list of rules enabled for ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow strict")," is configured in each ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig"),". Here are the recommended rules:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"../linting/rule-reference/#toc-nonstrict-import"},(0,a.mdx)("inlineCode",{parentName:"a"},"nonstrict-import")),": Triggers an error when importing from a module which is not also ",(0,a.mdx)("inlineCode",{parentName:"li"},"@flow strict"),". This is very important, because it means that when a file is marked as strict, all of its dependencies are strict as well."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"../linting/rule-reference/#toc-unclear-type"},(0,a.mdx)("inlineCode",{parentName:"a"},"unclear-type")),": Triggers an error when using ",(0,a.mdx)("inlineCode",{parentName:"li"},"Object"),", ",(0,a.mdx)("inlineCode",{parentName:"li"},"Function"),", or ",(0,a.mdx)("inlineCode",{parentName:"li"},"any")," in a type annotation."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"../linting/rule-reference/#toc-untyped-import"},(0,a.mdx)("inlineCode",{parentName:"a"},"untyped-import")),": Triggers an error when importing from an untyped module."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"../linting/rule-reference/#toc-untyped-type-import"},(0,a.mdx)("inlineCode",{parentName:"a"},"untyped-type-import")),": Triggers an error when importing a type from an untyped module."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"../linting/rule-reference/#toc-unsafe-getters-setters"},(0,a.mdx)("inlineCode",{parentName:"a"},"unsafe-getters-setters")),": Triggers an error when using getters and setters, which can be unsafe."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("a",{parentName:"li",href:"../linting/rule-reference/#toc-sketchy-null"},(0,a.mdx)("inlineCode",{parentName:"a"},"sketchy-null")),": Triggers an error when doing an existence check on a value that could be null/undefined or falsey.")),(0,a.mdx)("p",null,"For a full list of available lint rules, see the ",(0,a.mdx)("a",{parentName:"p",href:"../linting/rule-reference/"},"Lint Rule Reference"),"."),(0,a.mdx)("p",null,"Additionally, note that function parameters are considered const (i.e., treated as if they were declared with ",(0,a.mdx)("inlineCode",{parentName:"p"},"const")," rather than ",(0,a.mdx)("inlineCode",{parentName:"p"},"let"),"). This feature is not yet configurable in Flow Strict; it is always on."),(0,a.mdx)("h3",{id:"toc-enabling-flow-strict-in-a-flowconfig"},"Enabling Flow Strict in a .flowconfig"),(0,a.mdx)("p",null,"Flow Strict is configured in each ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig"),". To enable:"),(0,a.mdx)("ol",null,(0,a.mdx)("li",{parentName:"ol"},"Add a ",(0,a.mdx)("inlineCode",{parentName:"li"},"[strict]")," section to the ",(0,a.mdx)("inlineCode",{parentName:"li"},".flowconfig"),"."),(0,a.mdx)("li",{parentName:"ol"},"List the lint rules to enable . These are strongly recommended:")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-text"},"[strict]\nnonstrict-import\nunclear-type\nunsafe-getters-setters\nuntyped-import\nuntyped-type-import\n")),(0,a.mdx)("p",null,"Also recommended, but optional as it may be too noisy in some codebases:\n",(0,a.mdx)("inlineCode",{parentName:"p"},"sketchy-null")),(0,a.mdx)("p",null,"We recommend you enable all your desired rules from the beginning, then adopt Flow Strict file-by-file. This works better than enabling a single rule, adding ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow strict")," to many files, and then adding more rules to the config."),(0,a.mdx)("h3",{id:"toc-adoption"},"Adoption"),(0,a.mdx)("p",null,"Add ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow strict")," to a file and fix all errors that appear. Because Flow Strict requires dependencies to also be strict (if the ",(0,a.mdx)("inlineCode",{parentName:"p"},"nonstrict-import")," rule is enabled), start at the leaves of the dependency tree and work up from there. Do not add ",(0,a.mdx)("inlineCode",{parentName:"p"},"$FlowFixMe")," to suppress the new errors as they appear; just add ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow strict")," once all issues have been resolved. Since the most common reasons for using ",(0,a.mdx)("inlineCode",{parentName:"p"},"$FlowFixMe")," stem from reliance on untyped dependencies or behavior, future issues should be greatly reduced once Flow Strict is enabled."),(0,a.mdx)("p",null,"Be liberal with enabling Flow Strict. Unlike adding or removing ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow"),", adding or removing ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow strict")," (by itself) does not change Flow coverage. It only prevents or allows certain new unsafe behavior from being added in the future. Even if in the future Flow Strict has to be disabled for the file, at least unsafe behavior was prevented from being added in the meantime."),(0,a.mdx)("p",null,"Library definitions are considered strict (as they can be included in many different projects with contradicting strict configurations)."),(0,a.mdx)("h3",{id:"toc-strict-local"},"Strict Local"),(0,a.mdx)("p",null,"If you enable the ",(0,a.mdx)("inlineCode",{parentName:"p"},"nonstrict-import")," rule in your Flow Strict configuration (recommended), then all dependencies of a strict file must also be strict. While this the optimal goal, for large pre-existing codebases it may be beneficial to allow some of the benefits of Flow Strict to be put in use before all dependencies are strict."),(0,a.mdx)("p",null,(0,a.mdx)("inlineCode",{parentName:"p"},"@flow strict-local")," is the same as ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow strict"),', except it does not require its dependencies to also be strict (i.e. it is "locally" strict). It does not have a separate configuration: it uses the same configuration as Flow Strict, just without the ',(0,a.mdx)("inlineCode",{parentName:"p"},"nonstrict-import")," rule."),(0,a.mdx)("p",null,"Once all the dependencies of a ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow strict-local")," file are strict, the file can be upgraded to a ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow strict")," file. A ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow strict")," file cannot depend on a ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow strict-local")," file as this would break the ",(0,a.mdx)("inlineCode",{parentName:"p"},"nonstrict-import")," rule."),(0,a.mdx)("h3",{id:"toc-what-s-ahead"},"What's Ahead"),(0,a.mdx)("p",null,"Eventually, some features of Flow Strict could become the default behavior of Flow, if those features prove successful and achieve widespread adoption."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3482.f5cd412a.js b/assets/js/3482.f5cd412a.js new file mode 100644 index 00000000000..4dacee81c5b --- /dev/null +++ b/assets/js/3482.f5cd412a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3482],{13482:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>n,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>p,toc:()=>l});var s=o(87462),a=(o(67294),o(3905));const r={title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases","short-title":"Private Props w/ Opaque Types",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/private-object-properties-using-flows-opaque-type-aliases-e0100e9b0282"},i=void 0,p={permalink:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases",source:"@site/blog/2017-08-25-Private-Object-Properties-Using-Flows-Opaque-Type-Aliases.md",title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases",description:"In the last few weeks, a proposal for private class fields in Javascript reached",date:"2017-08-25T00:00:00.000Z",formattedDate:"August 25, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases","short-title":"Private Props w/ Opaque Types",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/private-object-properties-using-flows-opaque-type-aliases-e0100e9b0282"},prevItem:{title:"Typing Higher-Order Components in Recompose With Flow",permalink:"/blog/2017/09/03/Flow-Support-in-Recompose"},nextItem:{title:"Even Better Support for React in Flow",permalink:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow"}},n={authorsImageUrls:[void 0]},l=[],u={toc:l};function c(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,s.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"In the last few weeks, a proposal for ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/tc39/proposal-class-fields"},"private class fields in Javascript")," reached\nstage 3. This is going to be a great way to hide implementation details away\nfrom users of your classes. However, locking yourself in to an OOP style of\nprogramming is not always ideal if you prefer a more functional style. Let\u2019s\ntalk about how you can use Flow\u2019s ",(0,a.mdx)("a",{parentName:"p",href:"https://flow.org/en/docs/types/opaque-types/"},"opaque type aliases")," to get private properties\non any object type."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3490.7c9a646b.js b/assets/js/3490.7c9a646b.js new file mode 100644 index 00000000000..3b5c9842c0b --- /dev/null +++ b/assets/js/3490.7c9a646b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3490],{83490:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>m});var n=i(87462),r=(i(67294),i(3905));const o={title:"What we\u2019re building in 2020","short-title":"What we\u2019re building in 2020",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/what-were-building-in-2020-bcb92f620c75"},a=void 0,l={permalink:"/blog/2020/03/09/What-were-building-in-2020",source:"@site/blog/2020-03-09-What-were-building-in-2020.md",title:"What we\u2019re building in 2020",description:"Learn about how Flow will improve in 2020.",date:"2020-03-09T00:00:00.000Z",formattedDate:"March 9, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Andrew Pardoe"}],frontMatter:{title:"What we\u2019re building in 2020","short-title":"What we\u2019re building in 2020",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/what-were-building-in-2020-bcb92f620c75"},prevItem:{title:"Making Flow error suppressions more specific",permalink:"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific"},nextItem:{title:"Improvements to Flow in 2019",permalink:"/blog/2020/02/19/Improvements-to-Flow-in-2019"}},s={authorsImageUrls:[void 0]},m=[],w={toc:m};function u(e){let{components:t,...i}=e;return(0,r.mdx)("wrapper",(0,n.Z)({},w,i,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Learn about how Flow will improve in 2020."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3525.b75f8037.js b/assets/js/3525.b75f8037.js new file mode 100644 index 00000000000..d9088ac961e --- /dev/null +++ b/assets/js/3525.b75f8037.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3525],{73525:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>d,default:()=>c,frontMatter:()=>l,metadata:()=>r,toc:()=>s});var a=t(87462),o=(t(67294),t(3905));t(45475);const l={title:"Creating Library Definitions",slug:"/libdefs/creation"},d=void 0,r={unversionedId:"libdefs/creation",id:"libdefs/creation",title:"Creating Library Definitions",description:"Before spending the time to write your own libdef, we recommend that you look to",source:"@site/docs/libdefs/creation.md",sourceDirName:"libdefs",slug:"/libdefs/creation",permalink:"/en/docs/libdefs/creation",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/libdefs/creation.md",tags:[],version:"current",frontMatter:{title:"Creating Library Definitions",slug:"/libdefs/creation"},sidebar:"docsSidebar",previous:{title:"Library Definitions",permalink:"/en/docs/libdefs"},next:{title:"Error Suppressions",permalink:"/en/docs/errors"}},i={},s=[{value:"Declaring A Global Function",id:"toc-declaring-a-global-function",level:2},{value:"Declaring A Global Class",id:"toc-declaring-a-global-class",level:2},{value:"Declaring A Global Variable",id:"toc-declaring-a-global-variable",level:2},{value:"Declaring A Global Type",id:"toc-declaring-a-global-type",level:2},{value:"Declaring A Module",id:"toc-declaring-a-module",level:2},{value:"Declaring An ES Module",id:"toc-declaring-an-es-module",level:4},{value:"Named Exports",id:"toc-named-exports",level:6},{value:"Default Exports",id:"toc-default-exports",level:6},{value:"Declaring A CommonJS Module",id:"toc-declaring-a-commonjs-module",level:4}],m={toc:s};function c(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Before spending the time to write your own libdef, we recommend that you look to\nsee if there is already a libdef for the third-party code that you're addressing.\n",(0,o.mdx)("inlineCode",{parentName:"p"},"flow-typed")," is a ",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/flowtype/flow-typed/"},"tool and repository"),"\nfor sharing common libdefs within the Flow community -- so it's a good way to\nknock out a good chunk of any public libdefs you might need for your project."),(0,o.mdx)("p",null,"However sometimes there isn't a pre-existing libdef or you have third-party\ncode that isn't public and/or you really just need to write a libdef yourself.\nTo do this you'll start by creating a ",(0,o.mdx)("inlineCode",{parentName:"p"},".js")," file for each libdef you're going to\nwrite and put them in the ",(0,o.mdx)("inlineCode",{parentName:"p"},"/flow-typed")," directory at the root of your project.\nIn these libdef file(s) you'll use a special set of Flow syntax (explained\nbelow) to describe the interfaces of the relevant third-party code."),(0,o.mdx)("h2",{id:"toc-declaring-a-global-function"},"Declaring A Global Function"),(0,o.mdx)("p",null,"To declare a global function that should be accessible throughout your project,\nuse the ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare function")," syntax in a libdef file:"),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"flow-typed/myLibDef.js")),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare function foo(a: number): string;\n")),(0,o.mdx)("p",null,"This tells Flow that any code within the project can reference the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"foo")," global function, and that the function takes one argument (a ",(0,o.mdx)("inlineCode",{parentName:"p"},"number"),") and\nit returns a ",(0,o.mdx)("inlineCode",{parentName:"p"},"string"),"."),(0,o.mdx)("h2",{id:"toc-declaring-a-global-class"},"Declaring A Global Class"),(0,o.mdx)("p",null,"To declare a global class that should be accessible throughout your project,\nuse the ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare class")," syntax in a libdef file:"),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"flow-typed/myLibDef.js")),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare class URL {\n constructor(urlStr: string): URL;\n toString(): string;\n\n static compare(url1: URL, url2: URL): boolean;\n}\n")),(0,o.mdx)("p",null,"This tells Flow that any code within the project can reference the ",(0,o.mdx)("inlineCode",{parentName:"p"},"URL")," global\nclass. Note that this class definition does not have any implementation details\n-- it exclusively defines the interface of the class."),(0,o.mdx)("h2",{id:"toc-declaring-a-global-variable"},"Declaring A Global Variable"),(0,o.mdx)("p",null,"To declare a global variable that should be accessible throughout your project,\nuse the ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare var"),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare let"),", or ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare const")," syntax in a libdef file:"),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"flow-typed/myLibDef.js")),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare const PI: number;\n")),(0,o.mdx)("p",null,"This tells Flow that any code within the project can reference the ",(0,o.mdx)("inlineCode",{parentName:"p"},"PI")," global\nvariable -- which, in this case, is a ",(0,o.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,o.mdx)("h2",{id:"toc-declaring-a-global-type"},"Declaring A Global Type"),(0,o.mdx)("p",null,"To declare a global type that should be accessible throughout your project,\nuse the ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare type")," syntax in a libdef file:"),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"flow-typed/myLibDef.js")),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare type UserID = number;\n")),(0,o.mdx)("p",null,"This tells Flow that any code within the project can reference the ",(0,o.mdx)("inlineCode",{parentName:"p"},"UserID"),"\nglobal type -- which, in this case, is just an alias for ",(0,o.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,o.mdx)("h2",{id:"toc-declaring-a-module"},"Declaring A Module"),(0,o.mdx)("p",null,"Often, third-party code is organized in terms of modules rather than globals. To\nwrite a libdef that declares the presence of a module you'll want to use the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module")," syntax:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare module \"some-third-party-library\" {\n // This is where we'll list the module's exported interface(s)\n}\n")),(0,o.mdx)("p",null,"The name specified in quotes after ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module")," can be any string, but it\nshould correspond to the same string you'd use to ",(0,o.mdx)("inlineCode",{parentName:"p"},"require")," or ",(0,o.mdx)("inlineCode",{parentName:"p"},"import")," the\nthird-party module into your project. For defining modules that are accessed via\na relative ",(0,o.mdx)("inlineCode",{parentName:"p"},"require"),"/",(0,o.mdx)("inlineCode",{parentName:"p"},"import")," path, please see the docs on the ",(0,o.mdx)("a",{parentName:"p",href:"../../declarations"},(0,o.mdx)("inlineCode",{parentName:"a"},".flow")," files")),(0,o.mdx)("p",null,"Within the body of a ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module")," block, you can specify the set of exports\nfor that module. However, before we start talking about exports we have to talk\nabout the two kinds of modules that Flow supports: CommonJS and ES modules."),(0,o.mdx)("p",null,"Flow can handle both CommonJS and ES modules, but there are some relevant\ndifferences between the two that need to be considered when using\n",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module"),"."),(0,o.mdx)("h4",{id:"toc-declaring-an-es-module"},"Declaring An ES Module"),(0,o.mdx)("p",null,(0,o.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export"},"ES modules"),"\nhave two kinds of exports: A ",(0,o.mdx)("strong",{parentName:"p"},"named")," export and a ",(0,o.mdx)("strong",{parentName:"p"},"default")," export. Flow supports the ability\nto declare either or both of these kinds of exports within a ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module")," body as follows:"),(0,o.mdx)("h6",{id:"toc-named-exports"},"Named Exports"),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"flow-typed/some-es-module.js")),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'declare module "some-es-module" {\n // Declares a named "concatPath" export\n declare export function concatPath(dirA: string, dirB: string): string;\n}\n')),(0,o.mdx)("p",null,"Note that you can also declare other things inside the body of the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module"),", and those things will be scoped to the body of the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module")," -- ",(0,o.mdx)("strong",{parentName:"p"},"but they will not be exported from the module"),":"),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"flow-typed/some-es-module.js")),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'declare module "some-es-module" {\n // Defines the type of a Path class within this `declare module` body, but\n // does not export it. It can only be referenced by other things inside the\n // body of this `declare module`\n declare class Path {\n toString(): string;\n }\n\n // Declares a named "concatPath" export which returns an instance of the\n // `Path` class (defined above)\n declare export function concatPath(dirA: string, dirB: string): Path;\n}\n')),(0,o.mdx)("h6",{id:"toc-default-exports"},"Default Exports"),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"flow-typed/some-es-module.js")),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'declare module "some-es-module" {\n declare class URL {\n constructor(urlStr: string): URL;\n toString(): string;\n\n static compare(url1: URL, url2: URL): boolean;\n }\n\n // Declares a default export whose type is `typeof URL`\n declare export default typeof URL;\n}\n')),(0,o.mdx)("p",null,"It is also possible to declare both ",(0,o.mdx)("strong",{parentName:"p"},"named")," and ",(0,o.mdx)("strong",{parentName:"p"},"default")," exports in the\nsame ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module")," body."),(0,o.mdx)("h4",{id:"toc-declaring-a-commonjs-module"},"Declaring A CommonJS Module"),(0,o.mdx)("p",null,"CommonJS modules have a single value that is exported (the ",(0,o.mdx)("inlineCode",{parentName:"p"},"module.exports"),"\nvalue). To describe the type of this single value within a ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module"),"\nbody, you'll use the ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module.exports")," syntax:"),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"flow-typed/some-commonjs-module.js")),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'declare module "some-commonjs-module" {\n // The export of this module is an object with a "concatPath" method\n declare module.exports: {\n concatPath(dirA: string, dirB: string): string;\n };\n}\n')),(0,o.mdx)("p",null,"Note that you can also declare other things inside the body of the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module"),", and those things will be scoped to the body of the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module"),", ",(0,o.mdx)("strong",{parentName:"p"},"but they will not be exported from the module"),":"),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"flow-typed/some-commonjs-module.js")),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'declare module "some-commonjs-module" {\n // Defines the type of a Path class within this `declare module` body, but\n // does not export it. It can only be referenced by other things inside the\n // body of this `declare module`\n declare class Path {\n toString(): string;\n }\n\n // The "concatPath" function now returns an instance of the `Path` class\n // (defined above).\n declare module.exports: {\n concatPath(dirA: string, dirB: string): Path\n };\n}\n')),(0,o.mdx)("p",null,"NOTE: Because a given module cannot be both an ES module and a CommonJS module,\nit is an error to mix ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare export [...]")," with\n",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module.exports: ...")," in the same ",(0,o.mdx)("inlineCode",{parentName:"p"},"declare module")," body."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3539.8e41f2f8.js b/assets/js/3539.8e41f2f8.js new file mode 100644 index 00000000000..ca273b85eda --- /dev/null +++ b/assets/js/3539.8e41f2f8.js @@ -0,0 +1 @@ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3539],{30677:(e,t,r)=>{"use strict";r.d(t,{Z:()=>I});var i=r(67294),s=r(86010),a=r(9460),n=r(44996);function o(e){var t;let{children:r,className:s}=e;const{frontMatter:o,assets:c}=(0,a.C)(),{withBaseUrl:l}=(0,n.useBaseUrlUtils)(),p=null!=(t=c.image)?t:o.image;return i.createElement("article",{className:s,itemProp:"blogPost",itemScope:!0,itemType:"http://schema.org/BlogPosting"},p&&i.createElement("meta",{itemProp:"image",content:l(p,{absolute:!0})}),r)}var c=r(39960);const l="title_xvU1";function p(e){let{className:t}=e;const{metadata:r}=(0,a.C)(),{permalink:n,title:o,frontMatter:p}=r,_=p["medium-link"],j=null==_,S=j?"h1":"h2";return i.createElement(S,{className:(0,s.default)(l,t),itemProp:"headline"},j?o:i.createElement(c.default,{itemProp:"url",to:_},o))}var _=r(95999),j=r(88824);const S="container_mt6G";function m(e){let{readingTime:t}=e;const r=function(){const{selectMessage:e}=(0,j.c)();return t=>{const r=Math.ceil(t);return e(r,(0,_.translate)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:r}))}}();return i.createElement(i.Fragment,null,r(t))}function u(e){let{date:t,formattedDate:r}=e;return i.createElement("time",{dateTime:t,itemProp:"datePublished"},r)}function g(){return i.createElement(i.Fragment,null," \xb7 ")}function E(e){let{className:t}=e;const{metadata:r}=(0,a.C)(),{date:n,formattedDate:o,readingTime:c}=r;return i.createElement("div",{className:(0,s.default)(S,"margin-vert--md",t)},i.createElement(u,{date:n,formattedDate:o}),void 0!==c&&i.createElement(i.Fragment,null,i.createElement(g,null),i.createElement(m,{readingTime:c})))}function d(e){return e.href?i.createElement(c.default,e):i.createElement(i.Fragment,null,e.children)}function y(e){let{author:t,className:r}=e;const{name:a,title:n,url:o,imageURL:c,email:l}=t,p=o||l&&"mailto:"+l||void 0;return i.createElement("div",{className:(0,s.default)("avatar margin-bottom--sm",r)},c&&i.createElement(d,{href:p,className:"avatar__photo-link"},i.createElement("img",{className:"avatar__photo",src:c,alt:a})),a&&i.createElement("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},i.createElement("div",{className:"avatar__name"},i.createElement(d,{href:p,itemProp:"url"},i.createElement("span",{itemProp:"name"},a))),n&&i.createElement("small",{className:"avatar__subtitle",itemProp:"description"},n)))}const h="authorCol_Hf19",x="imageOnlyAuthorRow_pa_O",P="imageOnlyAuthorCol_G86a";function C(e){let{className:t}=e;const{metadata:{authors:r},assets:n}=(0,a.C)();if(0===r.length)return null;const o=r.every((e=>{let{name:t}=e;return!t}));return i.createElement("div",{className:(0,s.default)("margin-top--md margin-bottom--sm",o?x:"row",t)},r.map(((e,t)=>{var r;return i.createElement("div",{className:(0,s.default)(!o&&"col col--6",o?P:h),key:t},i.createElement(y,{author:{...e,imageURL:null!=(r=n.authorsImageUrls[t])?r:e.imageURL}}))})))}function f(){return i.createElement("header",null,i.createElement(p,null),i.createElement(E,null),i.createElement(C,null))}var B=r(18780),b=r(51788),v=r.n(b);function M(e){let{children:t,className:r}=e;const{isBlogPostPage:n}=(0,a.C)();return i.createElement("div",{id:n?B.blogPostContainerID:void 0,className:(0,s.default)("markdown",r),itemProp:"articleBody"},i.createElement(v(),null,t))}var k=r(86121),G=r.n(k),N=r(86233),T=r(87462);function L(){return i.createElement("b",null,i.createElement(_.default,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More"))}function O(e){const{blogPostTitle:t,...r}=e;return i.createElement(c.default,(0,T.Z)({"aria-label":(0,_.translate)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t})},r),i.createElement(L,null))}const w="blogPostFooterDetailsFull_mRVl";function A(){const{metadata:e,isBlogPostPage:t}=(0,a.C)(),{tags:r,title:n,editUrl:o,hasTruncateMarker:c}=e,l=!t&&c,p=r.length>0;return p||l||o?i.createElement("footer",{className:(0,s.default)("row docusaurus-mt-lg",t&&w)},p&&i.createElement("div",{className:(0,s.default)("col",{"col--9":l})},i.createElement(N.Z,{tags:r})),t&&o&&i.createElement("div",{className:"col margin-top--sm"},i.createElement(G(),{editUrl:o})),l&&i.createElement("div",{className:(0,s.default)("col text--right",{"col--3":p})},i.createElement(O,{blogPostTitle:n,to:e.permalink}))):null}function I(e){let{children:t,className:r}=e;const n=function(){const{isBlogPostPage:e}=(0,a.C)();return e?void 0:"margin-bottom--xl"}();return i.createElement(o,{className:(0,s.default)(n,r)},i.createElement(f,null),i.createElement(M,null,t),i.createElement(A,null))}},65203:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>E});var i=r(67294),s=r(86010),a=r(10833),n=r(35281),o=r(9460),c=r(62524),l=r(30677),p=r(87462),_=r(95999),j=r(32244);function S(e){const{nextItem:t,prevItem:r}=e;return i.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,_.translate)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"})},r&&i.createElement(j.Z,(0,p.Z)({},r,{subLabel:i.createElement(_.default,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post"},"Newer Post")})),t&&i.createElement(j.Z,(0,p.Z)({},t,{subLabel:i.createElement(_.default,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post"},"Older Post"),isNext:!0})))}function m(){var e;const{assets:t,metadata:r}=(0,o.C)(),{title:s,description:n,date:c,tags:l,authors:p,frontMatter:_}=r,{keywords:j}=_,S=null!=(e=t.image)?e:_.image;return i.createElement(a.d,{title:s,description:n,keywords:j,image:S},i.createElement("meta",{property:"og:type",content:"article"}),i.createElement("meta",{property:"article:published_time",content:c}),p.some((e=>e.url))&&i.createElement("meta",{property:"article:author",content:p.map((e=>e.url)).filter(Boolean).join(",")}),l.length>0&&i.createElement("meta",{property:"article:tag",content:l.map((e=>e.label)).join(",")}))}var u=r(39407);function g(e){let{sidebar:t,children:r}=e;const{metadata:s,toc:a}=(0,o.C)(),{nextItem:n,prevItem:p,frontMatter:_}=s,{hide_table_of_contents:j,toc_min_heading_level:m,toc_max_heading_level:g}=_;return i.createElement(c.Z,{sidebar:t,toc:!j&&a.length>0?i.createElement(u.Z,{toc:a,minHeadingLevel:m,maxHeadingLevel:g}):void 0},i.createElement(l.Z,null,r),(n||p)&&i.createElement(S,{nextItem:n,prevItem:p}))}function E(e){const t=e.content;return i.createElement(o.n,{content:e.content,isBlogPostPage:!0},i.createElement(a.FG,{className:(0,s.default)(n.k.wrapper.blogPages,n.k.page.blogPostPage)},i.createElement(m,null),i.createElement(g,{sidebar:e.sidebar},i.createElement(t,null))))}},9460:(e,t,r)=>{"use strict";r.d(t,{C:()=>o,n:()=>n});var i=r(67294),s=r(902);const a=i.createContext(null);function n(e){let{children:t,content:r,isBlogPostPage:s=!1}=e;const n=function(e){let{content:t,isBlogPostPage:r}=e;return(0,i.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:r})),[t,r])}({content:r,isBlogPostPage:s});return i.createElement(a.Provider,{value:n},t)}function o(){const e=(0,i.useContext)(a);if(null===e)throw new s.i6("BlogPostProvider");return e}},62524:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});var i=r(67294),s=r(89007);r(39960),r(95999);var a=r(39407);const n=function(e){const{toc:t,children:r,...n}=e;return i.createElement(s.Z,n,i.createElement("div",{className:"container margin-vert--lg"},i.createElement("div",{className:"row"},i.createElement("main",{className:"col col--9 col--offset-1"},r),t&&i.createElement("div",{className:"col col--2"},i.createElement(a.Z,{toc:t})))))}},18573:(e,t,r)=>{"use strict";r.d(t,{Z:()=>c});var i=r(87462),s=r(67294),a=r(20625),n=r.n(a),o=r(45475);function c(e){return"language-flow"===e.className?s.createElement(o.Z,e):"language-js"===e.className||"language-jsx"===e.className?s.createElement(n(),(0,i.Z)({},e,{className:"language-tsx"})):s.createElement(n(),e)}},7771:(e,t,r)=>{var i={"./Binary_Property/ASCII.js":46962,"./Binary_Property/ASCII_Hex_Digit.js":60270,"./Binary_Property/Alphabetic.js":26969,"./Binary_Property/Any.js":22499,"./Binary_Property/Assigned.js":9213,"./Binary_Property/Bidi_Control.js":38838,"./Binary_Property/Bidi_Mirrored.js":5720,"./Binary_Property/Case_Ignorable.js":49965,"./Binary_Property/Cased.js":32948,"./Binary_Property/Changes_When_Casefolded.js":65314,"./Binary_Property/Changes_When_Casemapped.js":78562,"./Binary_Property/Changes_When_Lowercased.js":12104,"./Binary_Property/Changes_When_NFKC_Casefolded.js":41347,"./Binary_Property/Changes_When_Titlecased.js":50589,"./Binary_Property/Changes_When_Uppercased.js":50046,"./Binary_Property/Dash.js":77336,"./Binary_Property/Default_Ignorable_Code_Point.js":32016,"./Binary_Property/Deprecated.js":42339,"./Binary_Property/Diacritic.js":97707,"./Binary_Property/Emoji.js":23694,"./Binary_Property/Emoji_Component.js":94007,"./Binary_Property/Emoji_Modifier.js":13916,"./Binary_Property/Emoji_Modifier_Base.js":98053,"./Binary_Property/Emoji_Presentation.js":10906,"./Binary_Property/Extended_Pictographic.js":66359,"./Binary_Property/Extender.js":17743,"./Binary_Property/Grapheme_Base.js":75530,"./Binary_Property/Grapheme_Extend.js":38693,"./Binary_Property/Hex_Digit.js":91556,"./Binary_Property/IDS_Binary_Operator.js":2103,"./Binary_Property/IDS_Trinary_Operator.js":18502,"./Binary_Property/ID_Continue.js":19494,"./Binary_Property/ID_Start.js":20567,"./Binary_Property/Ideographic.js":19586,"./Binary_Property/Join_Control.js":36983,"./Binary_Property/Logical_Order_Exception.js":72947,"./Binary_Property/Lowercase.js":49111,"./Binary_Property/Math.js":65667,"./Binary_Property/Noncharacter_Code_Point.js":20052,"./Binary_Property/Pattern_Syntax.js":60514,"./Binary_Property/Pattern_White_Space.js":78588,"./Binary_Property/Quotation_Mark.js":1053,"./Binary_Property/Radical.js":25361,"./Binary_Property/Regional_Indicator.js":94375,"./Binary_Property/Sentence_Terminal.js":89697,"./Binary_Property/Soft_Dotted.js":35514,"./Binary_Property/Terminal_Punctuation.js":21043,"./Binary_Property/Unified_Ideograph.js":75771,"./Binary_Property/Uppercase.js":28368,"./Binary_Property/Variation_Selector.js":27186,"./Binary_Property/White_Space.js":61846,"./Binary_Property/XID_Continue.js":74003,"./Binary_Property/XID_Start.js":3468,"./General_Category/Cased_Letter.js":13090,"./General_Category/Close_Punctuation.js":8526,"./General_Category/Connector_Punctuation.js":26100,"./General_Category/Control.js":80282,"./General_Category/Currency_Symbol.js":15352,"./General_Category/Dash_Punctuation.js":45647,"./General_Category/Decimal_Number.js":98349,"./General_Category/Enclosing_Mark.js":18220,"./General_Category/Final_Punctuation.js":88482,"./General_Category/Format.js":87586,"./General_Category/Initial_Punctuation.js":88147,"./General_Category/Letter.js":65964,"./General_Category/Letter_Number.js":66793,"./General_Category/Line_Separator.js":63061,"./General_Category/Lowercase_Letter.js":19340,"./General_Category/Mark.js":93748,"./General_Category/Math_Symbol.js":32895,"./General_Category/Modifier_Letter.js":66710,"./General_Category/Modifier_Symbol.js":43026,"./General_Category/Nonspacing_Mark.js":95580,"./General_Category/Number.js":90055,"./General_Category/Open_Punctuation.js":25622,"./General_Category/Other.js":76288,"./General_Category/Other_Letter.js":61453,"./General_Category/Other_Number.js":88795,"./General_Category/Other_Punctuation.js":47221,"./General_Category/Other_Symbol.js":66733,"./General_Category/Paragraph_Separator.js":12600,"./General_Category/Private_Use.js":61704,"./General_Category/Punctuation.js":36290,"./General_Category/Separator.js":64661,"./General_Category/Space_Separator.js":54343,"./General_Category/Spacing_Mark.js":11276,"./General_Category/Surrogate.js":93474,"./General_Category/Symbol.js":54581,"./General_Category/Titlecase_Letter.js":8550,"./General_Category/Unassigned.js":22525,"./General_Category/Uppercase_Letter.js":28829,"./Script/Adlam.js":56129,"./Script/Ahom.js":50147,"./Script/Anatolian_Hieroglyphs.js":50926,"./Script/Arabic.js":56820,"./Script/Armenian.js":14899,"./Script/Avestan.js":69929,"./Script/Balinese.js":30706,"./Script/Bamum.js":15533,"./Script/Bassa_Vah.js":89979,"./Script/Batak.js":83765,"./Script/Bengali.js":72693,"./Script/Bhaiksuki.js":10236,"./Script/Bopomofo.js":30468,"./Script/Brahmi.js":45770,"./Script/Braille.js":65529,"./Script/Buginese.js":74206,"./Script/Buhid.js":96208,"./Script/Canadian_Aboriginal.js":66700,"./Script/Carian.js":93961,"./Script/Caucasian_Albanian.js":74121,"./Script/Chakma.js":12128,"./Script/Cham.js":52189,"./Script/Cherokee.js":75033,"./Script/Chorasmian.js":73507,"./Script/Common.js":85998,"./Script/Coptic.js":56036,"./Script/Cuneiform.js":13563,"./Script/Cypriot.js":49182,"./Script/Cypro_Minoan.js":80084,"./Script/Cyrillic.js":84087,"./Script/Deseret.js":48844,"./Script/Devanagari.js":35690,"./Script/Dives_Akuru.js":57201,"./Script/Dogra.js":71932,"./Script/Duployan.js":95187,"./Script/Egyptian_Hieroglyphs.js":49778,"./Script/Elbasan.js":42781,"./Script/Elymaic.js":83103,"./Script/Ethiopic.js":26672,"./Script/Georgian.js":73661,"./Script/Glagolitic.js":85857,"./Script/Gothic.js":32096,"./Script/Grantha.js":71742,"./Script/Greek.js":62199,"./Script/Gujarati.js":11931,"./Script/Gunjala_Gondi.js":27600,"./Script/Gurmukhi.js":76482,"./Script/Han.js":26294,"./Script/Hangul.js":38858,"./Script/Hanifi_Rohingya.js":50043,"./Script/Hanunoo.js":95307,"./Script/Hatran.js":20280,"./Script/Hebrew.js":12674,"./Script/Hiragana.js":54058,"./Script/Imperial_Aramaic.js":70521,"./Script/Inherited.js":21448,"./Script/Inscriptional_Pahlavi.js":64086,"./Script/Inscriptional_Parthian.js":35772,"./Script/Javanese.js":98272,"./Script/Kaithi.js":52764,"./Script/Kannada.js":98276,"./Script/Katakana.js":98285,"./Script/Kayah_Li.js":10821,"./Script/Kharoshthi.js":67559,"./Script/Khitan_Small_Script.js":48304,"./Script/Khmer.js":39834,"./Script/Khojki.js":42593,"./Script/Khudawadi.js":64415,"./Script/Lao.js":37740,"./Script/Latin.js":46818,"./Script/Lepcha.js":7647,"./Script/Limbu.js":92627,"./Script/Linear_A.js":16193,"./Script/Linear_B.js":71901,"./Script/Lisu.js":25734,"./Script/Lycian.js":6450,"./Script/Lydian.js":28293,"./Script/Mahajani.js":48193,"./Script/Makasar.js":50865,"./Script/Malayalam.js":24789,"./Script/Mandaic.js":9535,"./Script/Manichaean.js":83061,"./Script/Marchen.js":76528,"./Script/Masaram_Gondi.js":9921,"./Script/Medefaidrin.js":93378,"./Script/Meetei_Mayek.js":6940,"./Script/Mende_Kikakui.js":3897,"./Script/Meroitic_Cursive.js":65999,"./Script/Meroitic_Hieroglyphs.js":59758,"./Script/Miao.js":65484,"./Script/Modi.js":34575,"./Script/Mongolian.js":75392,"./Script/Mro.js":36388,"./Script/Multani.js":60556,"./Script/Myanmar.js":15837,"./Script/Nabataean.js":6820,"./Script/Nandinagari.js":51892,"./Script/New_Tai_Lue.js":32003,"./Script/Newa.js":15297,"./Script/Nko.js":17594,"./Script/Nushu.js":7493,"./Script/Nyiakeng_Puachue_Hmong.js":14406,"./Script/Ogham.js":75847,"./Script/Ol_Chiki.js":88416,"./Script/Old_Hungarian.js":40115,"./Script/Old_Italic.js":29109,"./Script/Old_North_Arabian.js":96840,"./Script/Old_Permic.js":39291,"./Script/Old_Persian.js":24678,"./Script/Old_Sogdian.js":78647,"./Script/Old_South_Arabian.js":70744,"./Script/Old_Turkic.js":59527,"./Script/Old_Uyghur.js":11791,"./Script/Oriya.js":23761,"./Script/Osage.js":39384,"./Script/Osmanya.js":90237,"./Script/Pahawh_Hmong.js":62976,"./Script/Palmyrene.js":60351,"./Script/Pau_Cin_Hau.js":19767,"./Script/Phags_Pa.js":25712,"./Script/Phoenician.js":86458,"./Script/Psalter_Pahlavi.js":74874,"./Script/Rejang.js":27603,"./Script/Runic.js":84788,"./Script/Samaritan.js":45810,"./Script/Saurashtra.js":37632,"./Script/Sharada.js":15058,"./Script/Shavian.js":76250,"./Script/Siddham.js":39573,"./Script/SignWriting.js":54039,"./Script/Sinhala.js":1611,"./Script/Sogdian.js":34250,"./Script/Sora_Sompeng.js":43065,"./Script/Soyombo.js":18135,"./Script/Sundanese.js":95849,"./Script/Syloti_Nagri.js":46566,"./Script/Syriac.js":7810,"./Script/Tagalog.js":67833,"./Script/Tagbanwa.js":58009,"./Script/Tai_Le.js":1187,"./Script/Tai_Tham.js":40377,"./Script/Tai_Viet.js":99e3,"./Script/Takri.js":72294,"./Script/Tamil.js":98682,"./Script/Tangsa.js":77808,"./Script/Tangut.js":75540,"./Script/Telugu.js":65084,"./Script/Thaana.js":6867,"./Script/Thai.js":49907,"./Script/Tibetan.js":29341,"./Script/Tifinagh.js":81261,"./Script/Tirhuta.js":57954,"./Script/Toto.js":68196,"./Script/Ugaritic.js":29097,"./Script/Vai.js":5767,"./Script/Vithkuqi.js":45785,"./Script/Wancho.js":27172,"./Script/Warang_Citi.js":17315,"./Script/Yezidi.js":34961,"./Script/Yi.js":90923,"./Script/Zanabazar_Square.js":92108,"./Script_Extensions/Adlam.js":99614,"./Script_Extensions/Ahom.js":24915,"./Script_Extensions/Anatolian_Hieroglyphs.js":8983,"./Script_Extensions/Arabic.js":75627,"./Script_Extensions/Armenian.js":13585,"./Script_Extensions/Avestan.js":79384,"./Script_Extensions/Balinese.js":47072,"./Script_Extensions/Bamum.js":31856,"./Script_Extensions/Bassa_Vah.js":24945,"./Script_Extensions/Batak.js":92147,"./Script_Extensions/Bengali.js":61530,"./Script_Extensions/Bhaiksuki.js":64063,"./Script_Extensions/Bopomofo.js":29962,"./Script_Extensions/Brahmi.js":61752,"./Script_Extensions/Braille.js":28434,"./Script_Extensions/Buginese.js":15148,"./Script_Extensions/Buhid.js":78881,"./Script_Extensions/Canadian_Aboriginal.js":55254,"./Script_Extensions/Carian.js":79110,"./Script_Extensions/Caucasian_Albanian.js":76550,"./Script_Extensions/Chakma.js":88753,"./Script_Extensions/Cham.js":98451,"./Script_Extensions/Cherokee.js":80196,"./Script_Extensions/Chorasmian.js":38676,"./Script_Extensions/Common.js":46921,"./Script_Extensions/Coptic.js":44141,"./Script_Extensions/Cuneiform.js":30286,"./Script_Extensions/Cypriot.js":73326,"./Script_Extensions/Cypro_Minoan.js":82300,"./Script_Extensions/Cyrillic.js":77115,"./Script_Extensions/Deseret.js":59108,"./Script_Extensions/Devanagari.js":59426,"./Script_Extensions/Dives_Akuru.js":44660,"./Script_Extensions/Dogra.js":41422,"./Script_Extensions/Duployan.js":66667,"./Script_Extensions/Egyptian_Hieroglyphs.js":20449,"./Script_Extensions/Elbasan.js":25810,"./Script_Extensions/Elymaic.js":83509,"./Script_Extensions/Ethiopic.js":37837,"./Script_Extensions/Georgian.js":77680,"./Script_Extensions/Glagolitic.js":97772,"./Script_Extensions/Gothic.js":60674,"./Script_Extensions/Grantha.js":52336,"./Script_Extensions/Greek.js":86310,"./Script_Extensions/Gujarati.js":92436,"./Script_Extensions/Gunjala_Gondi.js":20642,"./Script_Extensions/Gurmukhi.js":33831,"./Script_Extensions/Han.js":16613,"./Script_Extensions/Hangul.js":87001,"./Script_Extensions/Hanifi_Rohingya.js":88583,"./Script_Extensions/Hanunoo.js":82758,"./Script_Extensions/Hatran.js":66416,"./Script_Extensions/Hebrew.js":85222,"./Script_Extensions/Hiragana.js":60191,"./Script_Extensions/Imperial_Aramaic.js":57632,"./Script_Extensions/Inherited.js":96988,"./Script_Extensions/Inscriptional_Pahlavi.js":52121,"./Script_Extensions/Inscriptional_Parthian.js":82809,"./Script_Extensions/Javanese.js":55081,"./Script_Extensions/Kaithi.js":57574,"./Script_Extensions/Kannada.js":81868,"./Script_Extensions/Katakana.js":10774,"./Script_Extensions/Kayah_Li.js":76701,"./Script_Extensions/Kharoshthi.js":81466,"./Script_Extensions/Khitan_Small_Script.js":21325,"./Script_Extensions/Khmer.js":6068,"./Script_Extensions/Khojki.js":77706,"./Script_Extensions/Khudawadi.js":54258,"./Script_Extensions/Lao.js":77149,"./Script_Extensions/Latin.js":38334,"./Script_Extensions/Lepcha.js":12299,"./Script_Extensions/Limbu.js":25476,"./Script_Extensions/Linear_A.js":54625,"./Script_Extensions/Linear_B.js":38810,"./Script_Extensions/Lisu.js":90845,"./Script_Extensions/Lycian.js":68978,"./Script_Extensions/Lydian.js":67905,"./Script_Extensions/Mahajani.js":89576,"./Script_Extensions/Makasar.js":3405,"./Script_Extensions/Malayalam.js":974,"./Script_Extensions/Mandaic.js":28940,"./Script_Extensions/Manichaean.js":6677,"./Script_Extensions/Marchen.js":14740,"./Script_Extensions/Masaram_Gondi.js":82278,"./Script_Extensions/Medefaidrin.js":55949,"./Script_Extensions/Meetei_Mayek.js":13329,"./Script_Extensions/Mende_Kikakui.js":97146,"./Script_Extensions/Meroitic_Cursive.js":23715,"./Script_Extensions/Meroitic_Hieroglyphs.js":43199,"./Script_Extensions/Miao.js":26499,"./Script_Extensions/Modi.js":36995,"./Script_Extensions/Mongolian.js":98606,"./Script_Extensions/Mro.js":11462,"./Script_Extensions/Multani.js":45402,"./Script_Extensions/Myanmar.js":76318,"./Script_Extensions/Nabataean.js":34924,"./Script_Extensions/Nandinagari.js":8236,"./Script_Extensions/New_Tai_Lue.js":14575,"./Script_Extensions/Newa.js":71314,"./Script_Extensions/Nko.js":40577,"./Script_Extensions/Nushu.js":44432,"./Script_Extensions/Nyiakeng_Puachue_Hmong.js":53612,"./Script_Extensions/Ogham.js":19298,"./Script_Extensions/Ol_Chiki.js":55285,"./Script_Extensions/Old_Hungarian.js":16737,"./Script_Extensions/Old_Italic.js":73023,"./Script_Extensions/Old_North_Arabian.js":35723,"./Script_Extensions/Old_Permic.js":56370,"./Script_Extensions/Old_Persian.js":1402,"./Script_Extensions/Old_Sogdian.js":14718,"./Script_Extensions/Old_South_Arabian.js":40316,"./Script_Extensions/Old_Turkic.js":5462,"./Script_Extensions/Old_Uyghur.js":2280,"./Script_Extensions/Oriya.js":29434,"./Script_Extensions/Osage.js":77045,"./Script_Extensions/Osmanya.js":82301,"./Script_Extensions/Pahawh_Hmong.js":84766,"./Script_Extensions/Palmyrene.js":72685,"./Script_Extensions/Pau_Cin_Hau.js":34107,"./Script_Extensions/Phags_Pa.js":66506,"./Script_Extensions/Phoenician.js":42186,"./Script_Extensions/Psalter_Pahlavi.js":55507,"./Script_Extensions/Rejang.js":35435,"./Script_Extensions/Runic.js":76355,"./Script_Extensions/Samaritan.js":1509,"./Script_Extensions/Saurashtra.js":23386,"./Script_Extensions/Sharada.js":86116,"./Script_Extensions/Shavian.js":51826,"./Script_Extensions/Siddham.js":22026,"./Script_Extensions/SignWriting.js":96007,"./Script_Extensions/Sinhala.js":51104,"./Script_Extensions/Sogdian.js":82401,"./Script_Extensions/Sora_Sompeng.js":44399,"./Script_Extensions/Soyombo.js":37415,"./Script_Extensions/Sundanese.js":3894,"./Script_Extensions/Syloti_Nagri.js":5419,"./Script_Extensions/Syriac.js":21038,"./Script_Extensions/Tagalog.js":1744,"./Script_Extensions/Tagbanwa.js":54217,"./Script_Extensions/Tai_Le.js":63153,"./Script_Extensions/Tai_Tham.js":4926,"./Script_Extensions/Tai_Viet.js":39311,"./Script_Extensions/Takri.js":55970,"./Script_Extensions/Tamil.js":80882,"./Script_Extensions/Tangsa.js":92138,"./Script_Extensions/Tangut.js":46776,"./Script_Extensions/Telugu.js":40444,"./Script_Extensions/Thaana.js":23431,"./Script_Extensions/Thai.js":94846,"./Script_Extensions/Tibetan.js":137,"./Script_Extensions/Tifinagh.js":67065,"./Script_Extensions/Tirhuta.js":98082,"./Script_Extensions/Toto.js":6715,"./Script_Extensions/Ugaritic.js":29213,"./Script_Extensions/Vai.js":85388,"./Script_Extensions/Vithkuqi.js":97706,"./Script_Extensions/Wancho.js":68659,"./Script_Extensions/Warang_Citi.js":27900,"./Script_Extensions/Yezidi.js":8051,"./Script_Extensions/Yi.js":99799,"./Script_Extensions/Zanabazar_Square.js":25904,"./index.js":94274,"./unicode-version.js":47993};function s(e){var t=a(e);return r(t)}function a(e){if(!r.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}s.keys=function(){return Object.keys(i)},s.resolve=a,e.exports=s,s.id=7771}}]); \ No newline at end of file diff --git a/assets/js/3584.b7d0f7d5.js b/assets/js/3584.b7d0f7d5.js new file mode 100644 index 00000000000..e0a3885f774 --- /dev/null +++ b/assets/js/3584.b7d0f7d5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3584],{43584:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var a=t(87462),o=(t(67294),t(3905));t(45475);const i={title:"FAQ",description:"Have a question about using Flow? Check here first!",slug:"/faq"},r=void 0,s={unversionedId:"faq",id:"faq",title:"FAQ",description:"Have a question about using Flow? Check here first!",source:"@site/docs/faq.md",sourceDirName:".",slug:"/faq",permalink:"/en/docs/faq",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/faq.md",tags:[],version:"current",frontMatter:{title:"FAQ",description:"Have a question about using Flow? Check here first!",slug:"/faq"},sidebar:"docsSidebar",previous:{title:"Usage",permalink:"/en/docs/usage"},next:{title:"Type Annotations",permalink:"/en/docs/types"}},l={},d=[{value:"I checked that foo.bar is not null, but Flow still thinks it is. Why does this happen and how can I fix it?",id:"i-checked-that-foobar-is-not-null-but-flow-still-thinks-it-is-why-does-this-happen-and-how-can-i-fix-it",level:2},{value:"I checked that my value is of type A, so why does Flow still believe it's A\xa0| B?",id:"i-checked-that-my-value-is-of-type-a-so-why-does-flow-still-believe-its-a-b",level:2},{value:"I'm in a closure and Flow ignores the if check that asserts that foo.bar is defined. Why?",id:"im-in-a-closure-and-flow-ignores-the-if-check-that-asserts-that-foobar-is-defined-why",level:2},{value:"But Flow should understand that this function cannot invalidate this refinement, right?",id:"but-flow-should-understand-that-this-function-cannot-invalidate-this-refinement-right",level:2},{value:"Why can't I use a function in my if-clause to check the type of a property?",id:"why-cant-i-use-a-function-in-my-if-clause-to-check-the-type-of-a-property",level:2},{value:"Why can't I pass an Array<string> to a function that takes an Array<string |\xa0number>",id:"why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number",level:2},{value:"Why can't I pass {a: string} to a function that takes {a: string |\xa0number}",id:"why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number",level:2},{value:"Why can't I refine a union of objects?",id:"why-cant-i-refine-a-union-of-objects",level:2},{value:"I got a "Missing type annotation" error. Where does it come from?",id:"i-got-a-missing-type-annotation-error-where-does-it-come-from",level:2}],c={toc:d};function u(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("h2",{id:"i-checked-that-foobar-is-not-null-but-flow-still-thinks-it-is-why-does-this-happen-and-how-can-i-fix-it"},"I checked that ",(0,o.mdx)("inlineCode",{parentName:"h2"},"foo.bar")," is not ",(0,o.mdx)("inlineCode",{parentName:"h2"},"null"),", but Flow still thinks it is. Why does this happen and how can I fix it?"),(0,o.mdx)("p",null,"Flow does not keep track of side effects, so any function call may potentially nullify your check.\nThis is called ",(0,o.mdx)("a",{parentName:"p",href:"../lang/refinements/#toc-refinement-invalidations"},"refinement invalidation"),". Example:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":12,"endLine":7,"endColumn":18,"description":"Cannot return `foo.bar` because null or undefined [1] is incompatible with string [2]. [incompatible-return]"}]','[{"startLine":7,"startColumn":12,"endLine":7,"endColumn":18,"description":"Cannot':!0,return:!0,"`foo.bar`":!0,because:!0,null:!0,or:!0,undefined:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,'[incompatible-return]"}]':!0},'type Param = {\n bar: ?string,\n}\nfunction myFunc(foo: Param): string {\n if (foo.bar) {\n console.log("checked!");\n return foo.bar; // Flow errors. If you remove the console.log, it works\n }\n\n return "default string";\n}\n')),(0,o.mdx)("p",null,"You can get around this by storing your checked values in local variables:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type Param = {\n bar: ?string,\n}\nfunction myFunc(foo: Param): string {\n if (foo.bar) {\n const bar = foo.bar;\n console.log("checked!");\n return bar; // Ok!\n }\n\n return "default string";\n}\n')),(0,o.mdx)("h2",{id:"i-checked-that-my-value-is-of-type-a-so-why-does-flow-still-believe-its-a-b"},"I checked that my value is of type A, so why does Flow still believe it's A\xa0| B?"),(0,o.mdx)("p",null,"Refinement invalidation can also occur variables are updated:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":11,"startColumn":4,"endLine":11,"endColumn":4,"description":"Cannot cast `x` to string because number [1] is incompatible with string [2]. [incompatible-cast]"}]','[{"startLine":11,"startColumn":4,"endLine":11,"endColumn":4,"description":"Cannot':!0,cast:!0,"`x`":!0,to:!0,string:!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"type T = string | number;\n\nlet x: T = 'hi';\n\nfunction f() {\n x = 1;\n}\n\nif (typeof x === 'string') {\n f();\n (x: string);\n}\n")),(0,o.mdx)("p",null,"A work around would be to make the variable ",(0,o.mdx)("inlineCode",{parentName:"p"},"const")," and refactor your code to avoid the reassignment:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type T = string | number;\n\nconst x: T = 'hi';\n\nfunction f(x: T): number {\n return 1;\n}\n\nif (typeof x === 'string') {\n const xUpdated = f(x);\n (xUpdated: number);\n (x: string);\n}\n")),(0,o.mdx)("h2",{id:"im-in-a-closure-and-flow-ignores-the-if-check-that-asserts-that-foobar-is-defined-why"},"I'm in a closure and Flow ignores the if check that asserts that ",(0,o.mdx)("inlineCode",{parentName:"h2"},"foo.bar")," is defined. Why?"),(0,o.mdx)("p",null,"In the previous section we showed how refinements are lost after a function call. The exact same thing happens within closures, since\nFlow does not track how your value might change before the closure is called:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":67,"endLine":5,"endColumn":79,"description":"Cannot coerce `oldPerson.age` to string because null or undefined [1] should not be coerced. [incompatible-type]"}]','[{"startLine":5,"startColumn":67,"endLine":5,"endColumn":79,"description":"Cannot':!0,coerce:!0,"`oldPerson.age`":!0,to:!0,string:!0,because:!0,null:!0,or:!0,undefined:!0,"[1]":!0,should:!0,not:!0,be:!0,"coerced.":!0,'[incompatible-type]"}]':!0},"const people = [{age: 12}, {age: 18}, {age: 24}];\nconst oldPerson: {age: ?number} = {age: 70};\nif (oldPerson.age) {\n people.forEach(person => {\n console.log(`The person is ${person.age} and the old one is ${oldPerson.age}`);\n })\n}\n")),(0,o.mdx)("p",null,"The solution here is to move the if check in the ",(0,o.mdx)("inlineCode",{parentName:"p"},"forEach"),", or to assign the ",(0,o.mdx)("inlineCode",{parentName:"p"},"age")," to an intermediate variable:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const people = [{age: 12}, {age: 18}, {age: 24}];\nconst oldPerson: {age: ?number} = {age: 70};\nif (oldPerson.age) {\n const age = oldPerson.age;\n people.forEach(person => {\n console.log(`The person is ${person.age} and the old one is ${age}`);\n })\n}\n")),(0,o.mdx)("h2",{id:"but-flow-should-understand-that-this-function-cannot-invalidate-this-refinement-right"},"But Flow should understand that this function cannot invalidate this refinement, right?"),(0,o.mdx)("p",null,"Flow is not ",(0,o.mdx)("a",{parentName:"p",href:"../lang/types-and-expressions/#toc-soundness-and-completeness"},"complete"),", so it cannot check all code perfectly. Instead,\nFlow will make conservative assumptions to try to be sound."),(0,o.mdx)("h2",{id:"why-cant-i-use-a-function-in-my-if-clause-to-check-the-type-of-a-property"},"Why can't I use a function in my if-clause to check the type of a property?"),(0,o.mdx)("p",null,"Flow doesn't track refinements made in separated function calls:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":7,"endLine":5,"endColumn":9,"description":"Cannot call `add` with `val` bound to `first` because string [1] is incompatible with number [2]. [incompatible-call]"}]','[{"startLine":5,"startColumn":7,"endLine":5,"endColumn":9,"description":"Cannot':!0,call:!0,"`add`":!0,with:!0,"`val`":!0,bound:!0,to:!0,"`first`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,number:!0,"[2].":!0,'[incompatible-call]"}]':!0},"const add = (first: number, second: number) => first + second;\nconst val: string | number = 1;\nconst isNumber = (valueToRefine: mixed) => typeof valueToRefine === 'number';\nif (isNumber(val)) {\n add(val, 2);\n}\n")),(0,o.mdx)("p",null,"However, Flow has ",(0,o.mdx)("a",{parentName:"p",href:"../types/functions/#predicate-functions"},"predicates functions")," that can do these checks via ",(0,o.mdx)("inlineCode",{parentName:"p"},"%checks"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const add = (first: number, second: number) => first + second;\nconst val: string | number = 1;\nconst isNumber = (valueToRefine: mixed): %checks => typeof valueToRefine === 'number';\nif (isNumber(val)) {\n add(val, 2);\n}\n")),(0,o.mdx)("h2",{id:"why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number"},"Why can't I pass an ",(0,o.mdx)("inlineCode",{parentName:"h2"},"Array")," to a function that takes an ",(0,o.mdx)("inlineCode",{parentName:"h2"},"Array")),(0,o.mdx)("p",null,"The function's argument allows ",(0,o.mdx)("inlineCode",{parentName:"p"},"string")," values in its array, but in this case Flow prevents the original array from receiving a ",(0,o.mdx)("inlineCode",{parentName:"p"},"number"),".\nInside the function, you would be able to push a ",(0,o.mdx)("inlineCode",{parentName:"p"},"number")," to the argument array, causing the type of the original array to no longer be accurate."),(0,o.mdx)("p",null,"You can fix this error by changing the type of the argument to ",(0,o.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray"),", making it ",(0,o.mdx)("a",{parentName:"p",href:"../lang/variance/#toc-covariance"},"covariant"),".\nThis prevents the function body from pushing anything to the array, allowing it to accept narrower types."),(0,o.mdx)("p",null,"As an example, this would not work:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":4,"endLine":8,"endColumn":6,"description":"Cannot call `fn` with `arr` bound to `arr` because number [1] is incompatible with string [2] in array element. Arrays are invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number. [incompatible-call]"}]','[{"startLine":8,"startColumn":4,"endLine":8,"endColumn":6,"description":"Cannot':!0,call:!0,"`fn`":!0,with:!0,"`arr`":!0,bound:!0,to:!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2]":!0,in:!0,array:!0,"element.":!0,Arrays:!0,are:!0,invariantly:!0,"typed.":!0,See:!0,"https://flow.org/en/docs/faq/#why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number.":!0,'[incompatible-call]"}]':!0},"const fn = (arr: Array) => {\n arr.push(123); // Oops! Array was passed in - now inaccurate\n return arr;\n};\n\nconst arr: Array = ['abc'];\n\nfn(arr); // Error!\n")),(0,o.mdx)("p",null,"but with ",(0,o.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," you can achieve what you were looking for:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const fn = (arr: $ReadOnlyArray) => {\n // arr.push(321); NOTE! Since you are using $ReadOnlyArray<...> you cannot push anything to it\n return arr;\n};\n\nconst arr: Array = ['abc'];\n\nfn(arr);\n")),(0,o.mdx)("h2",{id:"why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number"},"Why can't I pass ",(0,o.mdx)("inlineCode",{parentName:"h2"},"{a: string}")," to a function that takes ",(0,o.mdx)("inlineCode",{parentName:"h2"},"{a: string |\xa0number}")),(0,o.mdx)("p",null,"The function argument allows ",(0,o.mdx)("inlineCode",{parentName:"p"},"string")," values in its field, but in this case Flow prevents the original object from having a ",(0,o.mdx)("inlineCode",{parentName:"p"},"number")," written to it.\nWithin the body of the function you would be able to mutate the object so that the property ",(0,o.mdx)("inlineCode",{parentName:"p"},"a")," would receive a ",(0,o.mdx)("inlineCode",{parentName:"p"},"number"),", causing the type of the original object to no longer be accurate."),(0,o.mdx)("p",null,"You can fix this error by making the property ",(0,o.mdx)("a",{parentName:"p",href:"../lang/variance/#toc-covariance"},"covariant")," (read-only): ",(0,o.mdx)("inlineCode",{parentName:"p"},"{+a: string |\xa0number}"),".\nThis prevents the function body from writing to the property, making it safe to pass more restricted types to the function."),(0,o.mdx)("p",null,"As an example, this would not work:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":4,"endLine":8,"endColumn":9,"description":"Cannot call `fn` with `object` bound to `obj` because number [1] is incompatible with string [2] in property `a`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-call]"}]','[{"startLine":8,"startColumn":4,"endLine":8,"endColumn":9,"description":"Cannot':!0,call:!0,"`fn`":!0,with:!0,"`object`":!0,bound:!0,to:!0,"`obj`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2]":!0,in:!0,property:!0,"`a`.":!0,This:!0,invariantly:!0,"typed.":!0,See:!0,"https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number.":!0,'[incompatible-call]"}]':!0},"const fn = (obj: {a: string | number}) => {\n obj.a = 123; // Oops! {a: string} was passed in - now inaccurate\n return obj;\n};\n\nconst object: {a: string} = {a: 'str' };\n\nfn(object); // Error!\n")),(0,o.mdx)("p",null,"but with a covariant property you can achieve what you were looking for:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const fn = (obj: {+a: string | number}) => {\n // obj.a = 123 NOTE! Since you are using covariant {+a: string | number}, you can't mutate it\n return obj;\n};\n\nconst object: {a: string} = { a: 'str' };\n\nfn(object);\n")),(0,o.mdx)("h2",{id:"why-cant-i-refine-a-union-of-objects"},"Why can't I refine a union of objects?"),(0,o.mdx)("p",null,"There are two potential reasons:"),(0,o.mdx)("ol",null,(0,o.mdx)("li",{parentName:"ol"},"You are using inexact objects."),(0,o.mdx)("li",{parentName:"ol"},"You are destructuring the object. When destructuring, Flow loses track of object properties.")),(0,o.mdx)("p",null,"Broken example:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":30,"endLine":8,"endColumn":35,"description":"Cannot get `payload.length` because property `length` is missing in `Number` [1]. [prop-missing]"}]','[{"startLine":8,"startColumn":30,"endLine":8,"endColumn":35,"description":"Cannot':!0,get:!0,"`payload.length`":!0,because:!0,property:!0,"`length`":!0,is:!0,missing:!0,in:!0,"`Number`":!0,"[1].":!0,'[prop-missing]"}]':!0},"type Action =\n | {type: 'A', payload: string}\n | {type: 'B', payload: number};\n\n// Not OK\nconst fn = ({type, payload}: Action) => {\n switch (type) {\n case 'A': return payload.length; // Error!\n case 'B': return payload + 10;\n }\n}\n")),(0,o.mdx)("p",null,"Fixed example:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Action =\n | {type: 'A', payload: string}\n | {type: 'B', payload: number};\n\n// OK\nconst fn = (action: Action) => {\n switch (action.type) {\n case 'A': return action.payload.length;\n case 'B': return action.payload + 10;\n }\n}\n")),(0,o.mdx)("h2",{id:"i-got-a-missing-type-annotation-error-where-does-it-come-from"},'I got a "Missing type annotation" error. Where does it come from?'),(0,o.mdx)("p",null,"Flow requires type annotations at module boundaries to make sure it can scale. To read more about that, check out our ",(0,o.mdx)("a",{parentName:"p",href:"https://medium.com/flow-type/asking-for-required-annotations-64d4f9c1edf8"},"blog post")," about that."),(0,o.mdx)("p",null,"The most common case you'll encounter is when exporting a function or React component. Flow requires you to annotate inputs. For instance in this example, Flow will complain:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Cannot build a typed interface for this module. You should annotate the exports of this module with types. Missing type annotation at array pattern: [signature-verification-failure]"},{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Missing an annotation on `a`. [missing-local-annot]"},{"startLine":1,"startColumn":21,"endLine":1,"endColumn":20,"description":"Cannot build a typed interface for this module. You should annotate the exports of this module with types. Missing type annotation at function return: [signature-verification-failure]"}]','[{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Cannot':!0,build:!0,a:!0,typed:!0,interface:!0,for:!0,this:!0,"module.":!0,You:!0,should:!0,annotate:!0,the:!0,exports:!0,of:!0,module:!0,with:!0,"types.":!0,Missing:!0,type:!0,annotation:!0,at:!0,array:!0,"pattern:":!0,'[signature-verification-failure]"},{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Missing':!0,an:!0,on:!0,"`a`.":!0,'[missing-local-annot]"},{"startLine":1,"startColumn":21,"endLine":1,"endColumn":20,"description":"Cannot':!0,function:!0,"return:":!0,'[signature-verification-failure]"}]':!0},"export const add = a => a + 1;\n")),(0,o.mdx)("p",null,"The fix here is to add types to the parameters of ",(0,o.mdx)("inlineCode",{parentName:"p"},"add"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export const add = (a: number): number => a + 1;\n")),(0,o.mdx)("p",null,"To see how you can annotate exported React components, check out our docs on ",(0,o.mdx)("a",{parentName:"p",href:"../react/hoc/#toc-exporting-wrapped-components"},"HOCs"),"."),(0,o.mdx)("p",null,"There are other cases where this happens, and they might be harder to understand. You'll get an error like ",(0,o.mdx)("inlineCode",{parentName:"p"},"Missing type annotation for U")," For instance, you wrote this code:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":29,"endLine":2,"endColumn":45,"description":"Cannot build a typed interface for this module. You should annotate the exports of this module with types. Cannot determine the type of this call expression. Please provide an annotation, e.g., by adding a type cast around this expression. [signature-verification-failure]"}]','[{"startLine":2,"startColumn":29,"endLine":2,"endColumn":45,"description":"Cannot':!0,build:!0,a:!0,typed:!0,interface:!0,for:!0,this:!0,"module.":!0,You:!0,should:!0,annotate:!0,the:!0,exports:!0,of:!0,module:!0,with:!0,"types.":!0,Cannot:!0,determine:!0,type:!0,call:!0,"expression.":!0,Please:!0,provide:!0,an:!0,"annotation,":!0,"e.g.,":!0,by:!0,adding:!0,cast:!0,around:!0,'[signature-verification-failure]"}]':!0},"const array = ['a', 'b']\nexport const genericArray = array.map(a => a)\n")),(0,o.mdx)("p",null,"Here, Flow will complain on the ",(0,o.mdx)("inlineCode",{parentName:"p"},"export"),", asking for a type annotation. Flow wants you to annotate exports returned by a generic function. The type of ",(0,o.mdx)("inlineCode",{parentName:"p"},"Array.prototype.map")," is ",(0,o.mdx)("inlineCode",{parentName:"p"},"map(callbackfn: (value: T, index: number, array: Array) => U, thisArg?: any): Array"),". The ",(0,o.mdx)("inlineCode",{parentName:"p"},"")," corresponds to what is called a ",(0,o.mdx)("a",{parentName:"p",href:"../types/generics/"},"generic"),", to express the fact that the type of the function passed to map is linked to the type of the array."),(0,o.mdx)("p",null,"Understanding the logic behind generics might be useful, but what you really need to know to make your typings valid is that you need to help Flow to understand the type of ",(0,o.mdx)("inlineCode",{parentName:"p"},"genericArray"),"."),(0,o.mdx)("p",null,"You can do that by annotating the exported constant:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const array = ['a', 'b']\nexport const genericArray: Array = array.map(a => a)\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3585.317f86c5.js b/assets/js/3585.317f86c5.js new file mode 100644 index 00000000000..d5e00cd5ebd --- /dev/null +++ b/assets/js/3585.317f86c5.js @@ -0,0 +1,215 @@ +"use strict"; +exports.id = 3585; +exports.ids = [3585]; +exports.modules = { + +/***/ 23585: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15030); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/yaml/yaml.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + offSide: true + }, + onEnterRules: [ + { + beforeText: /:\s*$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.Indent + } + } + ] +}; +var language = { + tokenPostfix: ".yaml", + brackets: [ + { token: "delimiter.bracket", open: "{", close: "}" }, + { token: "delimiter.square", open: "[", close: "]" } + ], + keywords: ["true", "True", "TRUE", "false", "False", "FALSE", "null", "Null", "Null", "~"], + numberInteger: /(?:0|[+-]?[0-9]+)/, + numberFloat: /(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/, + numberOctal: /0o[0-7]+/, + numberHex: /0x[0-9a-fA-F]+/, + numberInfinity: /[+-]?\.(?:inf|Inf|INF)/, + numberNaN: /\.(?:nan|Nan|NAN)/, + numberDate: /\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/, + escapes: /\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/, + tokenizer: { + root: [ + { include: "@whitespace" }, + { include: "@comment" }, + [/%[^ ]+.*$/, "meta.directive"], + [/---/, "operators.directivesEnd"], + [/\.{3}/, "operators.documentEnd"], + [/[-?:](?= )/, "operators"], + { include: "@anchor" }, + { include: "@tagHandle" }, + { include: "@flowCollections" }, + { include: "@blockStyle" }, + [/@numberInteger(?![ \t]*\S+)/, "number"], + [/@numberFloat(?![ \t]*\S+)/, "number.float"], + [/@numberOctal(?![ \t]*\S+)/, "number.octal"], + [/@numberHex(?![ \t]*\S+)/, "number.hex"], + [/@numberInfinity(?![ \t]*\S+)/, "number.infinity"], + [/@numberNaN(?![ \t]*\S+)/, "number.nan"], + [/@numberDate(?![ \t]*\S+)/, "number.date"], + [/(".*?"|'.*?'|.*?)([ \t]*)(:)( |$)/, ["type", "white", "operators", "white"]], + { include: "@flowScalars" }, + [ + /[^#]+/, + { + cases: { + "@keywords": "keyword", + "@default": "string" + } + } + ] + ], + object: [ + { include: "@whitespace" }, + { include: "@comment" }, + [/\}/, "@brackets", "@pop"], + [/,/, "delimiter.comma"], + [/:(?= )/, "operators"], + [/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/, "type"], + { include: "@flowCollections" }, + { include: "@flowScalars" }, + { include: "@tagHandle" }, + { include: "@anchor" }, + { include: "@flowNumber" }, + [ + /[^\},]+/, + { + cases: { + "@keywords": "keyword", + "@default": "string" + } + } + ] + ], + array: [ + { include: "@whitespace" }, + { include: "@comment" }, + [/\]/, "@brackets", "@pop"], + [/,/, "delimiter.comma"], + { include: "@flowCollections" }, + { include: "@flowScalars" }, + { include: "@tagHandle" }, + { include: "@anchor" }, + { include: "@flowNumber" }, + [ + /[^\],]+/, + { + cases: { + "@keywords": "keyword", + "@default": "string" + } + } + ] + ], + multiString: [[/^( +).+$/, "string", "@multiStringContinued.$1"]], + multiStringContinued: [ + [ + /^( *).+$/, + { + cases: { + "$1==$S2": "string", + "@default": { token: "@rematch", next: "@popall" } + } + } + ] + ], + whitespace: [[/[ \t\r\n]+/, "white"]], + comment: [[/#.*$/, "comment"]], + flowCollections: [ + [/\[/, "@brackets", "@array"], + [/\{/, "@brackets", "@object"] + ], + flowScalars: [ + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/'[^']*'/, "string"], + [/"/, "string", "@doubleQuotedString"] + ], + doubleQuotedString: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + blockStyle: [[/[>|][0-9]*[+-]?$/, "operators", "@multiString"]], + flowNumber: [ + [/@numberInteger(?=[ \t]*[,\]\}])/, "number"], + [/@numberFloat(?=[ \t]*[,\]\}])/, "number.float"], + [/@numberOctal(?=[ \t]*[,\]\}])/, "number.octal"], + [/@numberHex(?=[ \t]*[,\]\}])/, "number.hex"], + [/@numberInfinity(?=[ \t]*[,\]\}])/, "number.infinity"], + [/@numberNaN(?=[ \t]*[,\]\}])/, "number.nan"], + [/@numberDate(?=[ \t]*[,\]\}])/, "number.date"] + ], + tagHandle: [[/\![^ ]*/, "tag"]], + anchor: [[/[&*][^ ]+/, "namespace"]] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/3585.589fa714.js b/assets/js/3585.589fa714.js new file mode 100644 index 00000000000..654b59f17f7 --- /dev/null +++ b/assets/js/3585.589fa714.js @@ -0,0 +1,2 @@ +/*! For license information please see 3585.589fa714.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3585],{23585:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>m,language:()=>b});var r,o,l=t(15030),a=Object.defineProperty,i=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,u=Object.prototype.hasOwnProperty,s=(e,n,t,r)=>{if(n&&"object"==typeof n||"function"==typeof n)for(let o of c(n))u.call(e,o)||o===t||a(e,o,{get:()=>n[o],enumerable:!(r=i(n,o))||r.enumerable});return e},d={};s(d,r=l,"default"),o&&s(o,r,"default");var m={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:d.languages.IndentAction.Indent}}]},b={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|.*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/[^#]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}}}}]); \ No newline at end of file diff --git a/assets/js/3585.589fa714.js.LICENSE.txt b/assets/js/3585.589fa714.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/3585.589fa714.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/3590.380dfa4c.js b/assets/js/3590.380dfa4c.js new file mode 100644 index 00000000000..d66b56ee118 --- /dev/null +++ b/assets/js/3590.380dfa4c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3590],{83590:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>u,contentTitle:()=>m,default:()=>l,frontMatter:()=>r,metadata:()=>i,toc:()=>a});var n=s(87462),o=(s(67294),s(3905));const r={title:"TypeScript Enums vs. Flow Enums","short-title":"TypeScript Enums vs. Flow Enums",author:"George Zahariev","medium-link":"https://medium.com/flow-type/typescript-enums-vs-flow-enums-83da2ca4a9b4"},m=void 0,i={permalink:"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums",source:"@site/blog/2021-09-13-TypeScript-Enums-vs-Flow-Enums.md",title:"TypeScript Enums vs. Flow Enums",description:"A comparison of the enums features of TypeScript and Flow.",date:"2021-09-13T00:00:00.000Z",formattedDate:"September 13, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"TypeScript Enums vs. Flow Enums","short-title":"TypeScript Enums vs. Flow Enums",author:"George Zahariev","medium-link":"https://medium.com/flow-type/typescript-enums-vs-flow-enums-83da2ca4a9b4"},prevItem:{title:"Introducing Flow Enums",permalink:"/blog/2021/09/13/Introducing-Flow-Enums"},nextItem:{title:"Introducing Flow Indexed Access Types",permalink:"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types"}},u={authorsImageUrls:[void 0]},a=[],p={toc:a};function l(e){let{components:t,...s}=e;return(0,o.mdx)("wrapper",(0,n.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"A comparison of the enums features of TypeScript and Flow."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3619.0c068931.js b/assets/js/3619.0c068931.js new file mode 100644 index 00000000000..976e1f06eee --- /dev/null +++ b/assets/js/3619.0c068931.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3619],{43619:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>n,contentTitle:()=>a,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=o(87462),s=(o(67294),o(3905));const l={title:"Types-First: A Scalable New Architecture for Flow","short-title":"Types-First: A Scalable New",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-a-scalable-new-architecture-for-flow-3d8c7ba1d4eb"},a=void 0,i={permalink:"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow",source:"@site/blog/2020-05-18-Types-First-A-Scalable-New-Architecture-for-Flow.md",title:"Types-First: A Scalable New Architecture for Flow",description:"Flow Types-First mode is out! It unlocks Flow\u2019s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post.",date:"2020-05-18T00:00:00.000Z",formattedDate:"May 18, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Panagiotis Vekris"}],frontMatter:{title:"Types-First: A Scalable New Architecture for Flow","short-title":"Types-First: A Scalable New",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-a-scalable-new-architecture-for-flow-3d8c7ba1d4eb"},prevItem:{title:"Flow's Improved Handling of Generic Types",permalink:"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types"},nextItem:{title:"Making Flow error suppressions more specific",permalink:"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific"}},n={authorsImageUrls:[void 0]},c=[],p={toc:c};function u(e){let{components:t,...o}=e;return(0,s.mdx)("wrapper",(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow Types-First mode is out! It unlocks Flow\u2019s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3632.512d8b35.js b/assets/js/3632.512d8b35.js new file mode 100644 index 00000000000..a8355e0bfde --- /dev/null +++ b/assets/js/3632.512d8b35.js @@ -0,0 +1,2 @@ +/*! For license information please see 3632.512d8b35.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3632],{53632:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>r,language:()=>o});var r={comments:{lineComment:"#",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},o={defaultToken:"",tokenPostfix:".hcl",keywords:["var","local","path","for_each","any","string","number","bool","true","false","null","if ","else ","endif ","for ","in","endfor"],operators:["=",">=","<=","==","!=","+","-","*","/","%","&&","||","!","<",">","?","...",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"/,"string","@string"],[/'/,"invalid"]],heredoc:[[/<<[-]*\s*["]?([\w\-]+)["]?/,{token:"string.heredoc.delimiter",next:"@heredocBody.$1"}]],heredocBody:[[/([\w\-]+)$/,{cases:{"$1==$S2":[{token:"string.heredoc.delimiter",next:"@popall"}],"@default":"string.heredoc"}}],[/./,"string.heredoc"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"],[/#.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/\$\{/,{token:"delimiter",next:"@stringExpression"}],[/[^\\"\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@popall"]],stringInsideExpression:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],stringExpression:[[/\}/,{token:"delimiter",next:"@pop"}],[/"/,"string","@stringInsideExpression"],{include:"@terraform"}]}}}}]); \ No newline at end of file diff --git a/assets/js/3632.512d8b35.js.LICENSE.txt b/assets/js/3632.512d8b35.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/3632.512d8b35.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/3632.9f3e032d.js b/assets/js/3632.9f3e032d.js new file mode 100644 index 00000000000..57b1665ea33 --- /dev/null +++ b/assets/js/3632.9f3e032d.js @@ -0,0 +1,196 @@ +"use strict"; +exports.id = 3632; +exports.ids = [3632]; +exports.modules = { + +/***/ 53632: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/hcl/hcl.ts +var conf = { + comments: { + lineComment: "#", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".hcl", + keywords: [ + "var", + "local", + "path", + "for_each", + "any", + "string", + "number", + "bool", + "true", + "false", + "null", + "if ", + "else ", + "endif ", + "for ", + "in", + "endfor" + ], + operators: [ + "=", + ">=", + "<=", + "==", + "!=", + "+", + "-", + "*", + "/", + "%", + "&&", + "||", + "!", + "<", + ">", + "?", + "...", + ":" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "operator", + "@default": "" + } + } + ], + [/\d*\d+[eE]([\-+]?\d+)?/, "number.float"], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/\d[\d']*/, "number"], + [/\d/, "number"], + [/[;,.]/, "delimiter"], + [/"/, "string", "@string"], + [/'/, "invalid"] + ], + heredoc: [ + [/<<[-]*\s*["]?([\w\-]+)["]?/, { token: "string.heredoc.delimiter", next: "@heredocBody.$1" }] + ], + heredocBody: [ + [ + /([\w\-]+)$/, + { + cases: { + "$1==$S2": [ + { + token: "string.heredoc.delimiter", + next: "@popall" + } + ], + "@default": "string.heredoc" + } + } + ], + [/./, "string.heredoc"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"], + [/#.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + string: [ + [/\$\{/, { token: "delimiter", next: "@stringExpression" }], + [/[^\\"\$]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@popall"] + ], + stringInsideExpression: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + stringExpression: [ + [/\}/, { token: "delimiter", next: "@pop" }], + [/"/, "string", "@stringInsideExpression"], + { include: "@terraform" } + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/3682.78f44c31.js b/assets/js/3682.78f44c31.js new file mode 100644 index 00000000000..edd308cf39d --- /dev/null +++ b/assets/js/3682.78f44c31.js @@ -0,0 +1,2 @@ +/*! For license information please see 3682.78f44c31.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3682],{23682:(e,t,o)=>{o.r(t),o.d(t,{conf:()=>n,language:()=>s});var n={comments:{lineComment:"#"},brackets:[["[","]"],["<",">"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}],surroundingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}]},s={defaultToken:"",tokenPostfix:".pla",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"<",close:">",token:"delimiter.angle"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:[".i",".o",".mv",".ilb",".ob",".label",".type",".phase",".pair",".symbolic",".symbolic-output",".kiss",".p",".e",".end"],comment:/#.*$/,identifier:/[a-zA-Z]+[a-zA-Z0-9_\-]*/,plaContent:/[01\-~\|]+/,tokenizer:{root:[{include:"@whitespace"},[/@comment/,"comment"],[/\.([a-zA-Z_\-]+)/,{cases:{"@eos":{token:"keyword.$1"},"@keywords":{cases:{".type":{token:"keyword.$1",next:"@type"},"@default":{token:"keyword.$1",next:"@keywordArg"}}},"@default":{token:"keyword.$1"}}}],[/@identifier/,"identifier"],[/@plaContent/,"string"]],whitespace:[[/[ \t\r\n]+/,""]],type:[{include:"@whitespace"},[/\w+/,{token:"type",next:"@pop"}]],keywordArg:[[/[ \t\r\n]+/,{cases:{"@eos":{token:"",next:"@pop"},"@default":""}}],[/@comment/,"comment","@pop"],[/[<>()\[\]]/,{cases:{"@eos":{token:"@brackets",next:"@pop"},"@default":"@brackets"}}],[/\-?\d+/,{cases:{"@eos":{token:"number",next:"@pop"},"@default":"number"}}],[/@identifier/,{cases:{"@eos":{token:"identifier",next:"@pop"},"@default":"identifier"}}],[/[;=]/,{cases:{"@eos":{token:"delimiter",next:"@pop"},"@default":"delimiter"}}]]}}}}]); \ No newline at end of file diff --git a/assets/js/3682.78f44c31.js.LICENSE.txt b/assets/js/3682.78f44c31.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/3682.78f44c31.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/3682.ac6ff8bf.js b/assets/js/3682.ac6ff8bf.js new file mode 100644 index 00000000000..8d359442083 --- /dev/null +++ b/assets/js/3682.ac6ff8bf.js @@ -0,0 +1,150 @@ +"use strict"; +exports.id = 3682; +exports.ids = [3682]; +exports.modules = { + +/***/ 23682: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/pla/pla.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["[", "]"], + ["<", ">"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: "<", close: ">" }, + { open: "(", close: ")" } + ], + surroundingPairs: [ + { open: "[", close: "]" }, + { open: "<", close: ">" }, + { open: "(", close: ")" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".pla", + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "<", close: ">", token: "delimiter.angle" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + ".i", + ".o", + ".mv", + ".ilb", + ".ob", + ".label", + ".type", + ".phase", + ".pair", + ".symbolic", + ".symbolic-output", + ".kiss", + ".p", + ".e", + ".end" + ], + comment: /#.*$/, + identifier: /[a-zA-Z]+[a-zA-Z0-9_\-]*/, + plaContent: /[01\-~\|]+/, + tokenizer: { + root: [ + { include: "@whitespace" }, + [/@comment/, "comment"], + [ + /\.([a-zA-Z_\-]+)/, + { + cases: { + "@eos": { token: "keyword.$1" }, + "@keywords": { + cases: { + ".type": { token: "keyword.$1", next: "@type" }, + "@default": { token: "keyword.$1", next: "@keywordArg" } + } + }, + "@default": { token: "keyword.$1" } + } + } + ], + [/@identifier/, "identifier"], + [/@plaContent/, "string"] + ], + whitespace: [[/[ \t\r\n]+/, ""]], + type: [{ include: "@whitespace" }, [/\w+/, { token: "type", next: "@pop" }]], + keywordArg: [ + [ + /[ \t\r\n]+/, + { + cases: { + "@eos": { token: "", next: "@pop" }, + "@default": "" + } + } + ], + [/@comment/, "comment", "@pop"], + [ + /[<>()\[\]]/, + { + cases: { + "@eos": { token: "@brackets", next: "@pop" }, + "@default": "@brackets" + } + } + ], + [ + /\-?\d+/, + { + cases: { + "@eos": { token: "number", next: "@pop" }, + "@default": "number" + } + } + ], + [ + /@identifier/, + { + cases: { + "@eos": { token: "identifier", next: "@pop" }, + "@default": "identifier" + } + } + ], + [ + /[;=]/, + { + cases: { + "@eos": { token: "delimiter", next: "@pop" }, + "@default": "delimiter" + } + } + ] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/3698.df8b743d.js b/assets/js/3698.df8b743d.js new file mode 100644 index 00000000000..e0f4416593b --- /dev/null +++ b/assets/js/3698.df8b743d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3698],{3698:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>o,toc:()=>m});var i=t(87462),l=(t(67294),t(3905));t(45475);const a={title:"ESLint",slug:"/tools/eslint"},s=void 0,o={unversionedId:"tools/eslint",id:"tools/eslint",title:"ESLint",description:"ESLint is a static analysis tool which can help you quickly find and",source:"@site/docs/tools/eslint.md",sourceDirName:"tools",slug:"/tools/eslint",permalink:"/en/docs/tools/eslint",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/tools/eslint.md",tags:[],version:"current",frontMatter:{title:"ESLint",slug:"/tools/eslint"},sidebar:"docsSidebar",previous:{title:"Babel",permalink:"/en/docs/tools/babel"},next:{title:"flow-remove-types",permalink:"/en/docs/tools/flow-remove-types"}},r={},m=[{value:"Usage With Prettier",id:"toc-usage-with-prettier",level:3},{value:"Additional Plugins",id:"toc-additional-plugins",level:3}],p={toc:m};function d(e){let{components:n,...t}=e;return(0,l.mdx)("wrapper",(0,i.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,l.mdx)("p",null,"ESLint is a static analysis tool which can help you quickly find and\nfix bugs and stylistic errors in your code. The rules ESLint provide\ncomplement the checks provided by Flow's type system."),(0,l.mdx)("p",null,"You can quick-start setup ESLint, install ",(0,l.mdx)("inlineCode",{parentName:"p"},"hermes-eslint")," with either\n",(0,l.mdx)("a",{parentName:"p",href:"https://yarnpkg.com/"},"Yarn")," or ",(0,l.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npm"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-sh"},"yarn add --dev eslint hermes-eslint eslint-plugin-ft-flow\n# or\nnpm install --save-dev eslint hermes-eslint eslint-plugin-ft-flow\n")),(0,l.mdx)("p",null,"Then create a ",(0,l.mdx)("inlineCode",{parentName:"p"},".eslintrc.js")," file in your project root with the following:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-js"},"module.exports = {\n root: true,\n parser: 'hermes-eslint',\n plugins: [\n 'ft-flow'\n ],\n extends: [\n 'eslint:recommended',\n 'plugin:ft-flow/recommended',\n ],\n};\n")),(0,l.mdx)("p",null,"In the above config the order of the ",(0,l.mdx)("inlineCode",{parentName:"p"},"extends")," plugins is important as ",(0,l.mdx)("inlineCode",{parentName:"p"},"plugin:ft-flow/recommended"),"\ndisables some rules from ",(0,l.mdx)("inlineCode",{parentName:"p"},"eslint:recommended")," so it needs to be defined after to work correctly."),(0,l.mdx)("p",null,"For more information about configuring ESLint, ",(0,l.mdx)("a",{parentName:"p",href:"https://eslint.org/"},"check out the ESLint docs"),"."),(0,l.mdx)("p",null,"You can then lint your codebase with:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-sh"},"yarn run eslint . --ext .js,.jsx\n# or\nnpm run eslint . --ext .js,.jsx\n")),(0,l.mdx)("h3",{id:"toc-usage-with-prettier"},"Usage With Prettier"),(0,l.mdx)("p",null,"If you use ",(0,l.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/prettier"},(0,l.mdx)("inlineCode",{parentName:"a"},"prettier")),", there is also\na helpful config to help ensure ESLint doesn't report on formatting issues that\nprettier will fix: ",(0,l.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/eslint-config-prettier"},(0,l.mdx)("inlineCode",{parentName:"a"},"eslint-config-prettier")),"."),(0,l.mdx)("p",null,"Using this config by adding it to the ",(0,l.mdx)("strong",{parentName:"p"},(0,l.mdx)("em",{parentName:"strong"},"end"))," of your ",(0,l.mdx)("inlineCode",{parentName:"p"},"extends"),":"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-diff"}," module.exports = {\n root: true,\n parser: 'hermes-eslint',\n plugins: [\n 'ft-flow'\n ],\n extends: [\n 'eslint:recommended',\n 'plugin:ft-flow/recommended',\n+ 'prettier',\n ],\n };\n")),(0,l.mdx)("h3",{id:"toc-additional-plugins"},"Additional Plugins"),(0,l.mdx)("p",null,"ESLint plugins provide additional rules and other functionality on top of ESLint.\nBelow are just a few examples that might be useful:"),(0,l.mdx)("ul",null,(0,l.mdx)("li",{parentName:"ul"},"Helpful language rules by the Flow team: ",(0,l.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-fb-flow"},(0,l.mdx)("inlineCode",{parentName:"a"},"eslint-plugin-fb-flow"))),(0,l.mdx)("li",{parentName:"ul"},"React best practices: ",(0,l.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-react"},(0,l.mdx)("inlineCode",{parentName:"a"},"eslint-plugin-react")),"\nand ",(0,l.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-react-hooks"},(0,l.mdx)("inlineCode",{parentName:"a"},"eslint-plugin-react-hooks"))),(0,l.mdx)("li",{parentName:"ul"},"Jest testing: ",(0,l.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-jest"},(0,l.mdx)("inlineCode",{parentName:"a"},"eslint-plugin-jest"))),(0,l.mdx)("li",{parentName:"ul"},"Import/export conventions : ",(0,l.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-import"},(0,l.mdx)("inlineCode",{parentName:"a"},"eslint-plugin-import"))),(0,l.mdx)("li",{parentName:"ul"},"NodeJS best practices: ",(0,l.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-node"},(0,l.mdx)("inlineCode",{parentName:"a"},"eslint-plugin-node"))),(0,l.mdx)("li",{parentName:"ul"},"ESLint comment restrictions: ",(0,l.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-eslint-comments"},(0,l.mdx)("inlineCode",{parentName:"a"},"eslint-plugin-eslint-comments")))),(0,l.mdx)("p",null,"Every plugin that is out there includes documentation on the various configurations and rules they offer.\nA typical plugin might be used like:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-diff"}," module.exports = {\n root: true,\n parser: 'hermes-eslint',\n plugins: [\n 'ft-flow'\n+ 'jest',\n ],\n extends: [\n 'eslint:recommended',\n 'plugin:ft-flow/recommended',\n+ 'plugin:jest/recommended',\n ],\n };\n")),(0,l.mdx)("p",null,"Search ",(0,l.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/search?q=eslint-plugin"},'"eslint-plugin" on npm')," for more."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3760.313a31a1.js b/assets/js/3760.313a31a1.js new file mode 100644 index 00000000000..6216ac3aecd --- /dev/null +++ b/assets/js/3760.313a31a1.js @@ -0,0 +1,441 @@ +"use strict"; +exports.id = 3760; +exports.ids = [3760]; +exports.modules = { + +/***/ 63760: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/protobuf/protobuf.ts +var namedLiterals = ["true", "false"]; +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string"] } + ], + autoCloseBefore: ".,=}])>' \n ", + indentationRules: { + increaseIndentPattern: new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"), + decreaseIndentPattern: new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$") + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".proto", + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + symbols: /[=>/, { token: "@brackets", bracket: "@close", switchTo: "identifier" }] + ], + field: [ + { include: "@whitespace" }, + [ + "group", + { + cases: { + "$S2==proto2": { token: "keyword", switchTo: "@groupDecl.$S2" } + } + } + ], + [/(@identifier)(\s*)(=)/, ["identifier", "white", { token: "delimiter", next: "@pop" }]], + [ + /@fullIdentifier|\./, + { + cases: { + "@builtinTypes": "keyword", + "@default": "type.identifier" + } + } + ] + ], + groupDecl: [ + { include: "@whitespace" }, + [/@identifier/, "identifier"], + ["=", "operator"], + [/{/, { token: "@brackets", bracket: "@open", switchTo: "@messageBody.$S2" }], + { include: "@constant" } + ], + type: [ + { include: "@whitespace" }, + [/@identifier/, "type.identifier", "@pop"], + [/./, "delimiter"] + ], + identifier: [{ include: "@whitespace" }, [/@identifier/, "identifier", "@pop"]], + serviceDecl: [ + { include: "@whitespace" }, + [/@identifier/, "identifier"], + [/{/, { token: "@brackets", bracket: "@open", switchTo: "@serviceBody.$S2" }] + ], + serviceBody: [ + { include: "@whitespace" }, + { include: "@constant" }, + [/;/, "delimiter"], + [/option\b/, "keyword", "@option.$S2"], + [/rpc\b/, "keyword", "@rpc.$S2"], + [/\[/, { token: "@brackets", bracket: "@open", next: "@options.$S2" }], + [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }] + ], + rpc: [ + { include: "@whitespace" }, + [/@identifier/, "identifier"], + [/\(/, { token: "@brackets", bracket: "@open", switchTo: "@request.$S2" }], + [/{/, { token: "@brackets", bracket: "@open", next: "@methodOptions.$S2" }], + [/;/, "delimiter", "@pop"] + ], + request: [ + { include: "@whitespace" }, + [ + /@messageType/, + { + cases: { + stream: { token: "keyword", next: "@type.$S2" }, + "@default": "type.identifier" + } + } + ], + [/\)/, { token: "@brackets", bracket: "@close", switchTo: "@returns.$S2" }] + ], + returns: [ + { include: "@whitespace" }, + [/returns\b/, "keyword"], + [/\(/, { token: "@brackets", bracket: "@open", switchTo: "@response.$S2" }] + ], + response: [ + { include: "@whitespace" }, + [ + /@messageType/, + { + cases: { + stream: { token: "keyword", next: "@type.$S2" }, + "@default": "type.identifier" + } + } + ], + [/\)/, { token: "@brackets", bracket: "@close", switchTo: "@rpc.$S2" }] + ], + methodOptions: [ + { include: "@whitespace" }, + { include: "@constant" }, + [/;/, "delimiter"], + ["option", "keyword"], + [/@optionName/, "annotation"], + [/[()]/, "annotation.brackets"], + [/=/, "operator"], + [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\/\*/, "comment", "@push"], + ["\\*/", "comment", "@pop"], + [/[\/*]/, "comment"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + stringSingle: [ + [/[^\\']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + constant: [ + ["@boolLit", "keyword.constant"], + ["@hexLit", "number.hex"], + ["@octalLit", "number.octal"], + ["@decimalLit", "number"], + ["@floatLit", "number.float"], + [/("([^"\\]|\\.)*|'([^'\\]|\\.)*)$/, "string.invalid"], + [/"/, { token: "string.quote", bracket: "@open", next: "@string" }], + [/'/, { token: "string.quote", bracket: "@open", next: "@stringSingle" }], + [/{/, { token: "@brackets", bracket: "@open", next: "@prototext" }], + [/identifier/, "identifier"] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + prototext: [ + { include: "@whitespace" }, + { include: "@constant" }, + [/@identifier/, "identifier"], + [/[:;]/, "delimiter"], + [/}/, { token: "@brackets", bracket: "@close", next: "@pop" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/3760.70ebeccd.js b/assets/js/3760.70ebeccd.js new file mode 100644 index 00000000000..c3a0642a659 --- /dev/null +++ b/assets/js/3760.70ebeccd.js @@ -0,0 +1,2 @@ +/*! For license information please see 3760.70ebeccd.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3760],{63760:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>o});var i={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],autoCloseBefore:".,=}])>' \n\t",indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},o={defaultToken:"",tokenPostfix:".proto",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=>/,{token:"@brackets",bracket:"@close",switchTo:"identifier"}]],field:[{include:"@whitespace"},["group",{cases:{"$S2==proto2":{token:"keyword",switchTo:"@groupDecl.$S2"}}}],[/(@identifier)(\s*)(=)/,["identifier","white",{token:"delimiter",next:"@pop"}]],[/@fullIdentifier|\./,{cases:{"@builtinTypes":"keyword","@default":"type.identifier"}}]],groupDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],["=","operator"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@messageBody.$S2"}],{include:"@constant"}],type:[{include:"@whitespace"},[/@identifier/,"type.identifier","@pop"],[/./,"delimiter"]],identifier:[{include:"@whitespace"},[/@identifier/,"identifier","@pop"]],serviceDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@serviceBody.$S2"}]],serviceBody:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/option\b/,"keyword","@option.$S2"],[/rpc\b/,"keyword","@rpc.$S2"],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],rpc:[{include:"@whitespace"},[/@identifier/,"identifier"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@request.$S2"}],[/{/,{token:"@brackets",bracket:"@open",next:"@methodOptions.$S2"}],[/;/,"delimiter","@pop"]],request:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@returns.$S2"}]],returns:[{include:"@whitespace"},[/returns\b/,"keyword"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@response.$S2"}]],response:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@rpc.$S2"}]],methodOptions:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],["option","keyword"],[/@optionName/,"annotation"],[/[()]/,"annotation.brackets"],[/=/,"operator"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],constant:[["@boolLit","keyword.constant"],["@hexLit","number.hex"],["@octalLit","number.octal"],["@decimalLit","number"],["@floatLit","number.float"],[/("([^"\\]|\\.)*|'([^'\\]|\\.)*)$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/'/,{token:"string.quote",bracket:"@open",next:"@stringSingle"}],[/{/,{token:"@brackets",bracket:"@open",next:"@prototext"}],[/identifier/,"identifier"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],prototext:[{include:"@whitespace"},{include:"@constant"},[/@identifier/,"identifier"],[/[:;]/,"delimiter"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/3760.70ebeccd.js.LICENSE.txt b/assets/js/3760.70ebeccd.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/3760.70ebeccd.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/3769.c0a74c56.js b/assets/js/3769.c0a74c56.js new file mode 100644 index 00000000000..76bff689f97 --- /dev/null +++ b/assets/js/3769.c0a74c56.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3769],{83769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/3808.9cc0ee5e.js b/assets/js/3808.9cc0ee5e.js new file mode 100644 index 00000000000..aebfbff34ed --- /dev/null +++ b/assets/js/3808.9cc0ee5e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3808],{54949:(e,n,t)=>{t.d(n,{S:()=>i,l:()=>o});var a=t(67294);function i(e){let{version:n}=e;return a.createElement("span",{class:"version added",title:"Added in "+n},"\u2265",n)}function o(e){let{version:n}=e;return a.createElement("span",{class:"version removed",title:"Removed after "+n},"\u2264",n)}},73808:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>m});var a=t(87462),i=(t(67294),t(3905)),o=(t(45475),t(54949));const r={title:"Utility Types",slug:"/types/utilities"},s=void 0,l={unversionedId:"types/utilities",id:"types/utilities",title:"Utility Types",description:"Flow provides a set of utility types to operate on other types to create new types.",source:"@site/docs/types/utilities.md",sourceDirName:"types",slug:"/types/utilities",permalink:"/en/docs/types/utilities",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/utilities.md",tags:[],version:"current",frontMatter:{title:"Utility Types",slug:"/types/utilities"},sidebar:"docsSidebar",previous:{title:"Type Casting Expressions",permalink:"/en/docs/types/casting"},next:{title:"Module Types",permalink:"/en/docs/types/modules"}},p={},m=[{value:"$Keys<T>",id:"toc-keys",level:2},{value:"$Values<T>",id:"toc-values",level:2},{value:"$ReadOnly<T>",id:"toc-readonly",level:2},{value:'Partial<T> ',id:"toc-partial",level:2},{value:'Required<T> ',id:"toc-required",level:2},{value:'ReturnType<F> ',id:"toc-return-type",level:2},{value:'Parameters<F> ',id:"toc-parameters",level:2},{value:'Exclude<T, U> ',id:"toc-exclude",level:2},{value:'Extract<T, U> ',id:"toc-extract",level:2},{value:'ThisParameterType<F> ',id:"toc-this-parameter-type",level:2},{value:'OmitThisParameter<F> ',id:"toc-omit-this-parameter-type",level:2},{value:'Pick<O, Keys> ',id:"toc-pick",level:2},{value:'Omit<O, Keys> ',id:"toc-omit",level:2},{value:'Record<Keys, Type> ',id:"toc-record",level:2},{value:"$Exact<T>",id:"toc-exact",level:2},{value:"$Diff<A, B>",id:"toc-diff",level:2},{value:"$Rest<A, B>",id:"toc-rest",level:2},{value:"$NonMaybeType<T>",id:"toc-nonmaybe",level:2},{value:"$KeyMirror<O>",id:"toc-keymirror",level:2},{value:"$TupleMap<T, F>",id:"toc-tuplemap",level:2},{value:"Class<T>",id:"toc-class",level:2},{value:"$Exports<T>",id:"toc-exports",level:2},{value:"Deprecated utility types",id:"deprecated-utility-types",level:2},{value:"$PropertyType<T, k>",id:"toc-propertytype",level:3},{value:"$ElementType<T, K>",id:"toc-elementtype",level:3},{value:'$Partial ',id:"partial-",level:3},{value:"$Shape<T>",id:"toc-shape",level:3},{value:"$Call<F, T...>",id:"toc-call",level:3},{value:"$ObjMap<T, F>",id:"toc-objmap",level:3},{value:"$ObjMapi<T, F>",id:"toc-objmapi",level:3},{value:"$ObjMapConst<O, T>",id:"toc-objmapconst",level:3}],d={toc:m};function u(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Flow provides a set of utility types to operate on other types to create new types."),(0,i.mdx)("h2",{id:"toc-keys"},(0,i.mdx)("inlineCode",{parentName:"h2"},"$Keys")),(0,i.mdx)("p",null,"You can extract the type of the keys from an ",(0,i.mdx)("a",{parentName:"p",href:"../objects"},"object type"),". Typically this will be a ",(0,i.mdx)("a",{parentName:"p",href:"../unions"},"union")," of ",(0,i.mdx)("a",{parentName:"p",href:"../literals"},"string literal")," types:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":10,"startColumn":23,"endLine":10,"endColumn":28,"description":"Cannot assign `\'nope\'` to `nope` because property `nope` is missing in object literal [1]. [prop-missing]"}]','[{"startLine":10,"startColumn":23,"endLine":10,"endColumn":28,"description":"Cannot':!0,assign:!0,"`'nope'`":!0,to:!0,"`nope`":!0,because:!0,property:!0,is:!0,missing:!0,in:!0,object:!0,literal:!0,"[1].":!0,'[prop-missing]"}]':!0},'const countries = {\n US: "United States",\n IT: "Italy",\n FR: "France"\n};\n\ntype Country = $Keys;\n\nconst italy: Country = \'IT\'; // Works\nconst nope: Country = \'nope\'; // Error!\n')),(0,i.mdx)("p",null,"In the example above, the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"Country")," is equivalent to ",(0,i.mdx)("inlineCode",{parentName:"p"},"type Country = 'US' | 'IT' | 'FR'"),", but Flow was able to extract it from the keys of ",(0,i.mdx)("inlineCode",{parentName:"p"},"countries"),"."),(0,i.mdx)("p",null,"If you want to create an enum type, ",(0,i.mdx)("a",{parentName:"p",href:"../../enums"},"Flow Enums")," might be a better fit for your use-case."),(0,i.mdx)("h2",{id:"toc-values"},(0,i.mdx)("inlineCode",{parentName:"h2"},"$Values")),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"$Values")," represents the union type of all the value types of the enumerable properties in an ",(0,i.mdx)("a",{parentName:"p",href:"../objects/"},"object type"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":25,"endLine":12,"endColumn":28,"description":"Cannot assign `true` to `fn` because: [incompatible-type] Either boolean [1] is incompatible with string [2]. Or boolean [1] is incompatible with number [3]."}]','[{"startLine":12,"startColumn":25,"endLine":12,"endColumn":28,"description":"Cannot':!0,assign:!0,"`true`":!0,to:!0,"`fn`":!0,"because:":!0,"[incompatible-type]":!0,Either:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,Or:!0,number:!0,'[3]."}]':!0},"type Props = {\n name: string,\n age: number,\n};\n\n// The following two types are equivalent:\ntype PropValues = string | number;\ntype Prop$Values = $Values;\n\nconst name: Prop$Values = 'Jon'; // Works\nconst age: Prop$Values = 42; // Works\nconst fn: Prop$Values = true; // Error!\n")),(0,i.mdx)("p",null,"Note that using ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Values")," on the ",(0,i.mdx)("a",{parentName:"p",href:"../typeof"},(0,i.mdx)("inlineCode",{parentName:"a"},"typeof"))," an object literal will result in a type more general than you might expect:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const obj = {\n foo: 1,\n bar: 2,\n};\n\nfunction acceptsValues(x: $Values) { /* ... */ }\n\nacceptsValues(1); // Works\nacceptsValues(3); // Works, because the type was interpreted as `number`.\n")),(0,i.mdx)("p",null,"This behavior changes if you use ",(0,i.mdx)("inlineCode",{parentName:"p"},"Object.freeze")," on the object literal expression:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":15,"endLine":9,"endColumn":15,"description":"Cannot call `acceptsValues` with `3` bound to `x` because number [1] is incompatible with literal union [2]. [incompatible-call]"}]','[{"startLine":9,"startColumn":15,"endLine":9,"endColumn":15,"description":"Cannot':!0,call:!0,"`acceptsValues`":!0,with:!0,"`3`":!0,bound:!0,to:!0,"`x`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,literal:!0,union:!0,"[2].":!0,'[incompatible-call]"}]':!0},"const obj = Object.freeze({\n foo: 1,\n bar: 2,\n});\n\nfunction acceptsValues(x: $Values) { /* ... */ }\n\nacceptsValues(1); // Works\nacceptsValues(3); // Error! Because the type was interpreted as `1 | 2`.\n")),(0,i.mdx)("p",null,"If you want to create an enum type, ",(0,i.mdx)("a",{parentName:"p",href:"../../enums"},"Flow Enums")," might be a better fit for your use-case."),(0,i.mdx)("h2",{id:"toc-readonly"},(0,i.mdx)("inlineCode",{parentName:"h2"},"$ReadOnly")),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"$ReadOnly")," is a type that represents the read-only version of a given ",(0,i.mdx)("a",{parentName:"p",href:"../objects/"},"object type"),"\nor ",(0,i.mdx)("a",{parentName:"p",href:"../tuples"},"tuple type")," ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," (support for tuples is for Flow ",(0,i.mdx)(o.S,{version:"0.212",mdxType:"SinceVersion"}),").\nA read-only object type is an object type whose keys are all ",(0,i.mdx)("a",{parentName:"p",href:"../objects/#read-only-object-properties"},"read-only"),".\nSimilarly, a read-only tuple is one where each element is ",(0,i.mdx)("a",{parentName:"p",href:"../tuples/#variance-annotations-and-read-only-tuples"},"read-only"),"."),(0,i.mdx)("p",null,"This means that the following are equivalent:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ReadOnlyObj = {\n +key: number, // read-only field, marked by the `+` annotation\n};\ntype ReadOnlyTuple = [+foo: number];\n")),(0,i.mdx)("p",null,"\u2192"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ReadOnlyObj = $ReadOnly<{\n key: number,\n}>;\ntype ReadOnlyTuple = $ReadOnly<[number]>;\n")),(0,i.mdx)("p",null,"This is useful when you need to use a read-only version of an object type you've already defined, without manually having to re-define and annotate each key as read-only. For example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":10,"startColumn":9,"endLine":10,"endColumn":11,"description":"Cannot assign `42` to `props.age` because property `age` is not writable. [cannot-write]"}]','[{"startLine":10,"startColumn":9,"endLine":10,"endColumn":11,"description":"Cannot':!0,assign:!0,"`42`":!0,to:!0,"`props.age`":!0,because:!0,property:!0,"`age`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"}]':!0},"type Props = {\n name: string,\n age: number,\n};\n\ntype ReadOnlyProps = $ReadOnly;\n\nfunction render(props: ReadOnlyProps) {\n const {name, age} = props; // Works\n props.age = 42; // Error!\n}\n")),(0,i.mdx)("p",null,"Additionally, other utility types, such as ",(0,i.mdx)("a",{parentName:"p",href:"#toc-objmap"},(0,i.mdx)("inlineCode",{parentName:"a"},"$ObjMap")),", may strip any read/write annotations, so ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ReadOnly")," is a handy way to quickly make the object read-only again after operating on it:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Obj = {\n +key: number,\n};\n\ntype MappedObj = $ReadOnly<$ObjMap(T) => Array>> // Still read-only\n")),(0,i.mdx)("p",null,"The ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ReadOnly")," utility works on object and tuple types.\nIf you want to make other types read-only, you can use one of the following:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"Array")," -> ",(0,i.mdx)("a",{parentName:"li",href:"../arrays/#toc-readonlyarray"},(0,i.mdx)("inlineCode",{parentName:"a"},"$ReadOnlyArray"))),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"Set")," -> ",(0,i.mdx)("inlineCode",{parentName:"li"},"$ReadOnlySet")),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"Map")," -> ",(0,i.mdx)("inlineCode",{parentName:"li"},"$ReadOnlyMap")),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"WeakSet")," -> ",(0,i.mdx)("inlineCode",{parentName:"li"},"$ReadOnlyWeakSet")),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"WeakMap")," -> ",(0,i.mdx)("inlineCode",{parentName:"li"},"$ReadOnlyWeakMap"))),(0,i.mdx)("h2",{id:"toc-partial"},(0,i.mdx)("inlineCode",{parentName:"h2"},"Partial")," ",(0,i.mdx)(o.S,{version:"0.201",mdxType:"SinceVersion"})),(0,i.mdx)("p",null,"This utility converts all of an object or interface's named fields to be optional,\nwhile maintaining all the object's other properties (e.g. exactness, variance).\nUse this utility instead of ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Shape"),"."),(0,i.mdx)("p",null,"Since Flow ",(0,i.mdx)(o.S,{version:"0.212",mdxType:"SinceVersion"}),", it also converts all of a tuple type's elements to be ",(0,i.mdx)("a",{parentName:"p",href:"../tuples/#optional-tuple-elements"},"optional"),"."),(0,i.mdx)("p",null,"Example for objects:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":2,"endLine":12,"endColumn":2,"description":"Cannot cast `c` to `Person` because undefined [1] is incompatible with number [1] in property `age`. [incompatible-cast]"},{"startLine":12,"startColumn":2,"endLine":12,"endColumn":2,"description":"Cannot cast `c` to `Person` because undefined [1] is incompatible with string [1] in property `name`. [incompatible-cast]"}]','[{"startLine":12,"startColumn":2,"endLine":12,"endColumn":2,"description":"Cannot':!0,cast:!0,"`c`":!0,to:!0,"`Person`":!0,because:!0,undefined:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,in:!0,property:!0,"`age`.":!0,'[incompatible-cast]"},{"startLine":12,"startColumn":2,"endLine":12,"endColumn":2,"description":"Cannot':!0,string:!0,"`name`.":!0,'[incompatible-cast]"}]':!0},"type Person = {\n name: string,\n age: number,\n};\ntype PartialPerson = Partial;\n// Above equivalent to `{name?: string, age?: number}`\n\nconst a: PartialPerson = {}; // OK\nconst b: PartialPerson = {name: 'George'}; // OK\nconst c: PartialPerson = {name: 'George', age: 123}; // OK\n\n(c: Person); // ERROR: `PersonDetails` is not a `Person` (unlike with `$Shape`)\n")),(0,i.mdx)("p",null,"For tuples:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type AllRequired = [number, string];\n([]: Partial); // OK: like `[a?: number, b?: string]` now\n")),(0,i.mdx)("p",null,"A object or tuple of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," cannot be supplied to ",(0,i.mdx)("inlineCode",{parentName:"p"},"Partial"),", due to mutability. You can resolve this by making the object ",(0,i.mdx)("a",{parentName:"p",href:"#toc-readonly"},"read-only"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":10,"endLine":12,"endColumn":15,"description":"Cannot call `noPerson` with `person` bound to `o` because undefined [1] is incompatible with number [1] in property `age`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-call]"},{"startLine":12,"startColumn":10,"endLine":12,"endColumn":15,"description":"Cannot call `noPerson` with `person` bound to `o` because undefined [1] is incompatible with string [1] in property `name`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-call]"}]','[{"startLine":12,"startColumn":10,"endLine":12,"endColumn":15,"description":"Cannot':!0,call:!0,"`noPerson`":!0,with:!0,"`person`":!0,bound:!0,to:!0,"`o`":!0,because:!0,undefined:!0,"[1]":!0,is:!0,incompatible:!0,number:!0,in:!0,property:!0,"`age`.":!0,This:!0,invariantly:!0,"typed.":!0,See:!0,"https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number.":!0,'[incompatible-call]"},{"startLine":12,"startColumn":10,"endLine":12,"endColumn":15,"description":"Cannot':!0,string:!0,"`name`.":!0,'[incompatible-call]"}]':!0},"type Person = {\n name: string,\n age: number,\n};\n\nconst person: Person = {name: 'George', age: 123};\n\nfunction noPerson(o: Partial) {\n // Can mutate:\n o.name = undefined;\n}\nnoPerson(person); // Error!\n\nfunction okPerson(o: $ReadOnly>) {\n // Can't mutate - it's read-only!\n}\nokPerson(person); // Works\n")),(0,i.mdx)("p",null,"Note: Up until Flow version 0.201, this utility type was named ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Partial"),"."),(0,i.mdx)("h2",{id:"toc-required"},(0,i.mdx)("inlineCode",{parentName:"h2"},"Required")," ",(0,i.mdx)(o.S,{version:"0.201",mdxType:"SinceVersion"})),(0,i.mdx)("p",null,"The ",(0,i.mdx)("inlineCode",{parentName:"p"},"Required")," utility type is the opposite of ",(0,i.mdx)("a",{parentName:"p",href:"#toc-partial"},(0,i.mdx)("inlineCode",{parentName:"a"},"Partial")),":\nit converts all of an object or interface\u2019s optional fields to be required."),(0,i.mdx)("p",null,"Since Flow ",(0,i.mdx)(o.S,{version:"0.212",mdxType:"SinceVersion"}),", it also converts all of a tuple type's elements to be ",(0,i.mdx)("a",{parentName:"p",href:"../tuples/#optional-tuple-elements"},"required"),"."),(0,i.mdx)("p",null,"Example for objects:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":19,"endLine":9,"endColumn":28,"description":"Cannot assign object literal to `b` because property `name` is missing in object literal [1] but exists in `PartialPerson` [2]. [prop-missing]"}]','[{"startLine":9,"startColumn":19,"endLine":9,"endColumn":28,"description":"Cannot':!0,assign:!0,object:!0,literal:!0,to:!0,"`b`":!0,because:!0,property:!0,"`name`":!0,is:!0,missing:!0,in:!0,"[1]":!0,but:!0,exists:!0,"`PartialPerson`":!0,"[2].":!0,'[prop-missing]"}]':!0},"type PartialPerson = {\n name?: string,\n age?: number,\n};\ntype Person = Required;\n// Above equivalent to `{name: string, age: number}`\n\nconst a: Person = {name: 'George', age: 123}; // OK\nconst b: Person = {age: 123}; // ERROR: missing `name` property\n")),(0,i.mdx)("p",null,"For tuples:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",0:!0,2:!0,className:"language-flow",metastring:'[{"startLine":2,"startColumn":2,"endLine":2,"endColumn":3,"description":"Cannot cast array literal to required of `AllOptional` because empty array literal [1] has 0 elements but `AllOptional` [2] has 2 elements. [invalid-tuple-arity]"}]','[{"startLine":2,"startColumn":2,"endLine":2,"endColumn":3,"description":"Cannot':!0,cast:!0,array:!0,literal:!0,to:!0,required:!0,of:!0,"`AllOptional`":!0,because:!0,empty:!0,"[1]":!0,has:!0,elements:!0,but:!0,"[2]":!0,"elements.":!0,'[invalid-tuple-arity]"}]':!0},"type AllOptional = [a?: number, b?: string];\n([]: Required); // ERROR: like `[a: number, b: string]` now\n")),(0,i.mdx)("h2",{id:"toc-return-type"},(0,i.mdx)("inlineCode",{parentName:"h2"},"ReturnType")," ",(0,i.mdx)(o.S,{version:"0.209",mdxType:"SinceVersion"})),(0,i.mdx)("p",null,"This utility type extracts the return type from a given function type."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":2,"endLine":4,"endColumn":2,"description":"Cannot cast `1` to `Bool` because number [1] is incompatible with boolean [2]. [incompatible-cast]"}]','[{"startLine":4,"startColumn":2,"endLine":4,"endColumn":2,"description":"Cannot':!0,cast:!0,"`1`":!0,to:!0,"`Bool`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"declare function f(s: string, n: number): boolean;\ntype Bool = ReturnType;\n(true: Bool);\n(1: Bool); // Error: number is not boolean\n")),(0,i.mdx)("h2",{id:"toc-parameters"},(0,i.mdx)("inlineCode",{parentName:"h2"},"Parameters")," ",(0,i.mdx)(o.S,{version:"0.209",mdxType:"SinceVersion"})),(0,i.mdx)("p",null,"This utility type extracts the parameter types from a given function type into a ",(0,i.mdx)("a",{parentName:"p",href:"../tuples/"},"tuple type"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",2:!0,className:"language-flow",metastring:'[{"startLine":5,"startColumn":15,"endLine":5,"endColumn":15,"description":"Cannot access number literal `2` on `Tuple` because tuple type [1] only has 2 elements, so index 2 is out of bounds. [invalid-tuple-index]"}]','[{"startLine":5,"startColumn":15,"endLine":5,"endColumn":15,"description":"Cannot':!0,access:!0,number:!0,literal:!0,"`2`":!0,on:!0,"`Tuple`":!0,because:!0,tuple:!0,type:!0,"[1]":!0,only:!0,has:!0,"elements,":!0,so:!0,index:!0,is:!0,out:!0,of:!0,"bounds.":!0,'[invalid-tuple-index]"}]':!0},"declare function f(s: string, n: number): boolean;\ntype Tuple = Parameters; // Evaluates to [string, number]\n('s': Tuple[0]);\n(1: Tuple[1]);\n(false: Tuple[2]); // Error: tuple type only has two elements\n")),(0,i.mdx)("h2",{id:"toc-exclude"},(0,i.mdx)("inlineCode",{parentName:"h2"},"Exclude")," ",(0,i.mdx)(o.S,{version:"0.209",mdxType:"SinceVersion"})),(0,i.mdx)("p",null,"This utility type excludes all subtypes of ",(0,i.mdx)("inlineCode",{parentName:"p"},"U")," from ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":2,"endLine":2,"endColumn":2,"description":"Cannot cast `1` to `T` because number [1] is incompatible with literal union [2]. [incompatible-cast]"},{"startLine":4,"startColumn":2,"endLine":4,"endColumn":2,"description":"Cannot cast `3` to `T` because number [1] is incompatible with literal union [2]. [incompatible-cast]"}]','[{"startLine":2,"startColumn":2,"endLine":2,"endColumn":2,"description":"Cannot':!0,cast:!0,"`1`":!0,to:!0,"`T`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,literal:!0,union:!0,"[2].":!0,'[incompatible-cast]"},{"startLine":4,"startColumn":2,"endLine":4,"endColumn":2,"description":"Cannot':!0,"`3`":!0,'[incompatible-cast]"}]':!0},"type T = Exclude<1 | 2 | 3 | 4, 1 | 3>; // evaluates to 2 | 4\n(1: T); // error\n(2: T); // ok\n(3: T); // error\n(4: T); // ok\n")),(0,i.mdx)("h2",{id:"toc-extract"},(0,i.mdx)("inlineCode",{parentName:"h2"},"Extract")," ",(0,i.mdx)(o.S,{version:"0.209",mdxType:"SinceVersion"})),(0,i.mdx)("p",null,"This utility type retains only subtypes of ",(0,i.mdx)("inlineCode",{parentName:"p"},"U")," from ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":2,"endLine":6,"endColumn":10,"description":"Cannot cast `new Car()` to `T` because: [incompatible-cast] Either `Car` [1] is incompatible with `Dog` [2]. Or `Car` [1] is incompatible with `Cat` [3]."}]','[{"startLine":6,"startColumn":2,"endLine":6,"endColumn":10,"description":"Cannot':!0,cast:!0,"`new":!0,"Car()`":!0,to:!0,"`T`":!0,"because:":!0,"[incompatible-cast]":!0,Either:!0,"`Car`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`Dog`":!0,"[2].":!0,Or:!0,"`Cat`":!0,'[3]."}]':!0},"declare class Car {}\ndeclare class Animal {}\ndeclare class Dog extends Animal {}\ndeclare class Cat extends Animal {}\ntype T = Extract; // evaluates to Dog | Cat\n(new Car(): T); // error\n(new Dog(): T); // ok\n(new Cat(): T); // ok\n")),(0,i.mdx)("h2",{id:"toc-this-parameter-type"},(0,i.mdx)("inlineCode",{parentName:"h2"},"ThisParameterType")," ",(0,i.mdx)(o.S,{version:"0.209",mdxType:"SinceVersion"})),(0,i.mdx)("p",null,"This utility type extracts the type of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"this")," parameter of a given function type."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":2,"endLine":2,"endColumn":4,"description":"Cannot cast `\'1\'` to `T` because string [1] is incompatible with number [2]. [incompatible-cast]"}]','[{"startLine":2,"startColumn":2,"endLine":2,"endColumn":4,"description":"Cannot':!0,cast:!0,"`'1'`":!0,to:!0,"`T`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"type T = ThisParameterType<(this: number, bar: string) => void>; // Evaluates to number\n('1': T); // error\n(2: T); // ok\n")),(0,i.mdx)("h2",{id:"toc-omit-this-parameter-type"},(0,i.mdx)("inlineCode",{parentName:"h2"},"OmitThisParameter")," ",(0,i.mdx)(o.S,{version:"0.209",mdxType:"SinceVersion"})),(0,i.mdx)("p",null,"This utility type removes the ",(0,i.mdx)("inlineCode",{parentName:"p"},"this")," parameter from a given function type."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":1,"endLine":6,"endColumn":12,"description":"Cannot call `hasThisParam` because global object [1] is incompatible with number [2]. [incompatible-call]"}]','[{"startLine":6,"startColumn":1,"endLine":6,"endColumn":12,"description":"Cannot':!0,call:!0,"`hasThisParam`":!0,because:!0,global:!0,object:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-call]"}]':!0},"type HasThisParamFun = (this: number, bar: string) => void;\ntype NoThisParamFun = OmitThisParameter // Evaluates to (bar: string) => void\ndeclare const hasThisParam: HasThisParamFun;\ndeclare const noThisParam: NoThisParamFun;\n\nhasThisParam(''); // error: global object is not number\nnoThisParam(''); // ok: no this type requirement\n")),(0,i.mdx)("h2",{id:"toc-pick"},(0,i.mdx)("inlineCode",{parentName:"h2"},"Pick")," ",(0,i.mdx)(o.S,{version:"0.211",mdxType:"SinceVersion"})),(0,i.mdx)("p",null,"This utility type allows you to generate an object type using a subset of the fields from\nanother object type."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":11,"endLine":5,"endColumn":13,"description":"Cannot get `fooAndBar.baz` because property `baz` (did you mean `bar`?) is missing in `Pick` [1]. [prop-missing]"}]','[{"startLine":5,"startColumn":11,"endLine":5,"endColumn":13,"description":"Cannot':!0,get:!0,"`fooAndBar.baz`":!0,because:!0,property:!0,"`baz`":!0,"(did":!0,you:!0,mean:!0,"`bar`?)":!0,is:!0,missing:!0,in:!0,"`Pick`":!0,"[1].":!0,'[prop-missing]"}]':!0},"type O = {foo: number, bar: string, baz: boolean};\ntype FooAndBar = Pick;\n\ndeclare const fooAndBar: FooAndBar;\nfooAndBar.baz; // error: baz is missing\n(fooAndBar.foo: number); // ok\n(fooAndBar.bar: string); // ok\n")),(0,i.mdx)("h2",{id:"toc-omit"},(0,i.mdx)("inlineCode",{parentName:"h2"},"Omit")," ",(0,i.mdx)(o.S,{version:"0.211",mdxType:"SinceVersion"})),(0,i.mdx)("p",null,"This utility type allows you to generate an object type by omitting the specified fields from\nanother object type."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":9,"endLine":6,"endColumn":11,"description":"Cannot get `justBaz.foo` because property `foo` is missing in `Pick` [1]. [prop-missing]"},{"startLine":7,"startColumn":9,"endLine":7,"endColumn":11,"description":"Cannot get `justBaz.bar` because property `bar` (did you mean `baz`?) is missing in `Pick` [1]. [prop-missing]"}]','[{"startLine":6,"startColumn":9,"endLine":6,"endColumn":11,"description":"Cannot':!0,get:!0,"`justBaz.foo`":!0,because:!0,property:!0,"`foo`":!0,is:!0,missing:!0,in:!0,"`Pick`":!0,"[1].":!0,'[prop-missing]"},{"startLine":7,"startColumn":9,"endLine":7,"endColumn":11,"description":"Cannot':!0,"`justBaz.bar`":!0,"`bar`":!0,"(did":!0,you:!0,mean:!0,"`baz`?)":!0,'[prop-missing]"}]':!0},"type O = {foo: number, bar: string, baz: boolean};\ntype JustBaz= Omit;\n\ndeclare const justBaz: JustBaz;\n(justBaz.baz: boolean); // ok\njustBaz.foo; // error: missing foo\njustBaz.bar; // error: missing bar\n")),(0,i.mdx)("h2",{id:"toc-record"},(0,i.mdx)("inlineCode",{parentName:"h2"},"Record")," ",(0,i.mdx)(o.S,{version:"0.211",mdxType:"SinceVersion"})),(0,i.mdx)("p",null,"This utility type allows you to generate an object type from a union of keys with the given\n",(0,i.mdx)("inlineCode",{parentName:"p"},"Type")," for each field."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":14,"endLine":5,"endColumn":16,"description":"Cannot get `numberRecord.baz` because property `baz` (did you mean `bar`?) is missing in `Record` [1]. [prop-missing]"}]','[{"startLine":5,"startColumn":14,"endLine":5,"endColumn":16,"description":"Cannot':!0,get:!0,"`numberRecord.baz`":!0,because:!0,property:!0,"`baz`":!0,"(did":!0,you:!0,mean:!0,"`bar`?)":!0,is:!0,missing:!0,in:!0,"`Record`":!0,"[1].":!0,'[prop-missing]"}]':!0},"type NumberRecord = Record<'foo' | 'bar', number>;\ndeclare const numberRecord: NumberRecord;\n(numberRecord.foo: number); // ok\n(numberRecord.bar: number); // ok\nnumberRecord.baz; // error\n")),(0,i.mdx)("p",null,"Note that ",(0,i.mdx)("inlineCode",{parentName:"p"},"Record")," is different than using an indexer:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",2:!0,className:"language-flow",metastring:'[{"startLine":5,"startColumn":12,"endLine":5,"endColumn":17,"description":"Cannot use `Record` [1] without 2 type arguments. [missing-type-arg]"}]','[{"startLine":5,"startColumn":12,"endLine":5,"endColumn":17,"description":"Cannot':!0,use:!0,"`Record`":!0,"[1]":!0,without:!0,type:!0,"arguments.":!0,'[missing-type-arg]"}]':!0},"type NumberRecord = Record<'foo' | 'bar', number>;\ntype IndexedObject = {['foo' | 'bar']: number};\n\n// Record uses explicit fields, which means they are all required\nconst rec: Record = {}; // error\n// Indexers do not have this same requirement\nconst idx: IndexedObject = {}; // no error\n")),(0,i.mdx)("h2",{id:"toc-exact"},(0,i.mdx)("inlineCode",{parentName:"h2"},"$Exact")),(0,i.mdx)("p",null,"You can use ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Exact")," to make an ",(0,i.mdx)("a",{parentName:"p",href:"../objects/#exact-and-inexact-object-types"},"inexact object type")," exact:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type InexactUser = {name: string, ...};\ntype ExactUser = $Exact;\n\nconst user = {name: 'John Wilkes Booth'};\n// These will both be satisfied because they are equivalent:\nconst a: ExactUser = user;\nconst b: {name: string} = user;\n")),(0,i.mdx)("p",null,"This is an utility type to avoid, as it's clearer and more concinse to start off with an exact object type and make it inexact using ",(0,i.mdx)("a",{parentName:"p",href:"../objects/#object-type-spread"},"object type spread"),"\n(if you wish to have both inexact and exact variants of one object type):"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ExactUser = {name: string};\ntype InexactUser = {...ExactUser, ...};\n\nconst user = {name: 'John Wilkes Booth'};\nconst a: ExactUser = user;\n")),(0,i.mdx)("h2",{id:"toc-diff"},(0,i.mdx)("inlineCode",{parentName:"h2"},"$Diff")),(0,i.mdx)("p",null,"As the name hints, ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Diff")," is the type representing the set difference of ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"B"),", i.e. ",(0,i.mdx)("inlineCode",{parentName:"p"},"A \\ B"),", where ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," are both ",(0,i.mdx)("a",{parentName:"p",href:"../objects/"},"object types"),". Here's an example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":11,"startColumn":10,"endLine":11,"endColumn":18,"description":"Cannot call `setProps` with object literal bound to `props` because property `name` is missing in object literal [1] but exists in `Props` [2]. [prop-missing]"}]','[{"startLine":11,"startColumn":10,"endLine":11,"endColumn":18,"description":"Cannot':!0,call:!0,"`setProps`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`props`":!0,because:!0,property:!0,"`name`":!0,is:!0,missing:!0,in:!0,"[1]":!0,but:!0,exists:!0,"`Props`":!0,"[2].":!0,'[prop-missing]"}]':!0},"type Props = {name: string, age: number, ...};\ntype DefaultProps = {age: number};\ntype RequiredProps = $Diff;\n\nfunction setProps(props: RequiredProps) {\n // ...\n}\n\nsetProps({name: 'foo'}); // Works\nsetProps({name: 'foo', age: 42, baz: false}); // Works, you can pass extra props too\nsetProps({age: 42}); // Error! `name` is required\n")),(0,i.mdx)("p",null,"As you may have noticed, the example is not a random one.\n",(0,i.mdx)("inlineCode",{parentName:"p"},"$Diff")," is exactly what the React definition file uses to define the type of the props accepted by a React Component."),(0,i.mdx)("p",null,"Note that ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Diff")," will error if the object you are removing properties from does not have the property being removed, i.e. if ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," has a key that doesn't exist in ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":28,"endLine":3,"endColumn":32,"description":"Cannot instantiate `$Diff` because undefined property `other` [1] is incompatible with string [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":28,"endLine":3,"endColumn":32,"description":"Cannot':!0,instantiate:!0,"`$Diff`":!0,because:!0,undefined:!0,property:!0,"`other`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,'[incompatible-type]"}]':!0},"type Props = {name: string, age: number};\ntype DefaultProps = {age: number, other: string};\ntype RequiredProps = $Diff; // Error!\n\nfunction setProps(props: RequiredProps) {\n props.name;\n // ...\n}\n")),(0,i.mdx)("p",null,"As a workaround, you can specify the property not present in ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," as optional. For example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":16,"endLine":1,"endColumn":17,"description":"Cannot instantiate `$Diff` because undefined property `nope` [1] is incompatible with number [2]. [incompatible-type]"}]','[{"startLine":1,"startColumn":16,"endLine":1,"endColumn":17,"description":"Cannot':!0,instantiate:!0,"`$Diff`":!0,because:!0,undefined:!0,property:!0,"`nope`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-type]"}]':!0},"type A = $Diff<{}, {nope: number}>; // Error!\ntype B = $Diff<{}, {nope: number | void}>; // Works\n\nconst a: A = {};\nconst b: B = {};\n")),(0,i.mdx)("h2",{id:"toc-rest"},(0,i.mdx)("inlineCode",{parentName:"h2"},"$Rest")),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"$Rest")," is the type that represents the runtime object rest operation, e.g.: ",(0,i.mdx)("inlineCode",{parentName:"p"},"const {foo, ...rest} = obj"),", where ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," are both ",(0,i.mdx)("a",{parentName:"p",href:"../objects/"},"object types"),".\nThe resulting type from this operation will be an object type containing ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),"'s ",(0,i.mdx)("em",{parentName:"p"},"own")," properties that are not ",(0,i.mdx)("em",{parentName:"p"},"own")," properties in ",(0,i.mdx)("inlineCode",{parentName:"p"},"B"),".\nIn flow, we treat all properties on ",(0,i.mdx)("a",{parentName:"p",href:"../objects/#exact-and-inexact-object-types"},"exact object types")," as ",(0,i.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty"},"own"),".\nFor inexact objects, a property may or may not be own."),(0,i.mdx)("p",null,"For example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":12,"endLine":6,"endColumn":14,"description":"Cannot get `otherProps.age` because property `age` is missing in rest of object pattern [1]. [prop-missing]"}]','[{"startLine":6,"startColumn":12,"endLine":6,"endColumn":14,"description":"Cannot':!0,get:!0,"`otherProps.age`":!0,because:!0,property:!0,"`age`":!0,is:!0,missing:!0,in:!0,rest:!0,of:!0,object:!0,pattern:!0,"[1].":!0,'[prop-missing]"}]':!0},"type Props = {name: string, age: number};\n\nconst props: Props = {name: 'Jon', age: 42};\nconst {age, ...otherProps} = props;\n(otherProps: $Rest);\notherProps.age; // Error!\n")),(0,i.mdx)("p",null,"The main difference with ",(0,i.mdx)("a",{parentName:"p",href:"#toc-diff"},(0,i.mdx)("inlineCode",{parentName:"a"},"$Diff")),", is that ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Rest")," aims to represent the true runtime rest operation,\nwhich implies that exact object types are treated differently in ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Rest"),".\nFor example, ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Rest<{n: number}, {...}>")," will result in ",(0,i.mdx)("inlineCode",{parentName:"p"},"{n?: number}")," because an in-exact empty object may have an ",(0,i.mdx)("inlineCode",{parentName:"p"},"n")," property,\nwhile ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Diff<{n: number}, {...}>")," will result in ",(0,i.mdx)("inlineCode",{parentName:"p"},"{n: number}"),"."),(0,i.mdx)("h2",{id:"toc-nonmaybe"},(0,i.mdx)("inlineCode",{parentName:"h2"},"$NonMaybeType")),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"$NonMaybeType")," converts a type ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," to a non-",(0,i.mdx)("a",{parentName:"p",href:"../maybe"},"maybe type"),".\nIn other words, the values of ",(0,i.mdx)("inlineCode",{parentName:"p"},"$NonMaybeType")," are the values of ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," except for ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":2,"endLine":7,"endColumn":5,"description":"Cannot cast `null` to `Name` because null [1] is incompatible with string [2]. [incompatible-cast]"}]','[{"startLine":7,"startColumn":2,"endLine":7,"endColumn":5,"description":"Cannot':!0,cast:!0,"`null`":!0,to:!0,"`Name`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"type MaybeName = ?string;\ntype Name = $NonMaybeType;\n\n('Gabriel': MaybeName); // Works\n(null: MaybeName); // Works\n('Gabriel': Name); // Works\n(null: Name); // Error! `null` can't be annotated as Name because Name is not a maybe type\n")),(0,i.mdx)("h2",{id:"toc-keymirror"},(0,i.mdx)("inlineCode",{parentName:"h2"},"$KeyMirror")),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"$KeyMirror")," is a special case of ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ObjMapi"),", when ",(0,i.mdx)("inlineCode",{parentName:"p"},"F")," is the identity\nfunction type, ie. ",(0,i.mdx)("inlineCode",{parentName:"p"},"(K) => K"),". In other words, it maps each property of an object\nto the type of the property key. Instead of writing ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ObjMapi(K) => K>"),",\nyou can write ",(0,i.mdx)("inlineCode",{parentName:"p"},"$KeyMirror"),". For example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const obj = {\n a: true,\n b: 'foo'\n};\n\ndeclare function run(o: O): $KeyMirror;\n\n// newObj is of type {a: 'a', b: 'b'}\nconst newObj = run(obj);\n\n(newObj.a: 'a'); // Works\n(newObj.b: 'a'); // Error! String 'b' is incompatible with 'a'\n")),(0,i.mdx)("p",null,"Tip: Prefer using ",(0,i.mdx)("inlineCode",{parentName:"p"},"$KeyMirror")," instead of ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ObjMapi")," (if possible) to fix certain\nkinds of ",(0,i.mdx)("inlineCode",{parentName:"p"},"[invalid-exported-annotation]")," errors."),(0,i.mdx)("h2",{id:"toc-tuplemap"},(0,i.mdx)("inlineCode",{parentName:"h2"},"$TupleMap")),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"$TupleMap")," takes an iterable type ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," (e.g.: ",(0,i.mdx)("a",{parentName:"p",href:"../tuples"},(0,i.mdx)("inlineCode",{parentName:"a"},"Tuple"))," or ",(0,i.mdx)("a",{parentName:"p",href:"../arrays"},(0,i.mdx)("inlineCode",{parentName:"a"},"Array")),"), and a ",(0,i.mdx)("a",{parentName:"p",href:"../functions"},"function type")," ",(0,i.mdx)("inlineCode",{parentName:"p"},"F"),",\nand returns the iterable type obtained by mapping the type of each value in the iterable with the provided function type ",(0,i.mdx)("inlineCode",{parentName:"p"},"F"),".\nThis is analogous to the JavaScript function ",(0,i.mdx)("inlineCode",{parentName:"p"},"map"),"."),(0,i.mdx)("p",null,"Following our example from ",(0,i.mdx)("a",{parentName:"p",href:"#toc-objmap"},(0,i.mdx)("inlineCode",{parentName:"a"},"$ObjMap")),", let's assume that ",(0,i.mdx)("inlineCode",{parentName:"p"},"run")," takes an array of functions, instead of an object, and maps over them returning an array of the function call results. We could annotate its return type like this:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":11,"startColumn":2,"endLine":11,"endColumn":12,"description":"Cannot cast `run(...)[1]` to boolean because string [1] is incompatible with boolean [2]. [incompatible-cast]"}]','[{"startLine":11,"startColumn":2,"endLine":11,"endColumn":12,"description":"Cannot':!0,cast:!0,"`run(...)[1]`":!0,to:!0,boolean:!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"// Function type that takes a `() => V` and returns a `V` (its return type)\ntype ExtractReturnType = (() => V) => V\n\nfunction run A>>(iter: I): $TupleMap {\n return iter.map(fn => fn());\n}\n\nconst arr = [() => 'foo', () => 'bar'];\n(run(arr)[0]: string); // Works\n(run(arr)[1]: string); // Works\n(run(arr)[1]: boolean); // Error!\n")),(0,i.mdx)("h2",{id:"toc-class"},(0,i.mdx)("inlineCode",{parentName:"h2"},"Class")),(0,i.mdx)("p",null,"Given a type ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," representing instances of a class ",(0,i.mdx)("inlineCode",{parentName:"p"},"C"),", the type ",(0,i.mdx)("inlineCode",{parentName:"p"},"Class")," is the type of the class ",(0,i.mdx)("inlineCode",{parentName:"p"},"C"),".\nFor example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":11,"startColumn":2,"endLine":11,"endColumn":17,"description":"Cannot cast `makeStore(...)` to `Model` because `Store` [1] is incompatible with `Model` [2]. [incompatible-cast]"},{"startLine":11,"startColumn":12,"endLine":11,"endColumn":16,"description":"Cannot call `makeStore` with `Model` bound to `storeClass` because `Model` [1] is incompatible with `Store` [2]. [incompatible-call]"}]','[{"startLine":11,"startColumn":2,"endLine":11,"endColumn":17,"description":"Cannot':!0,cast:!0,"`makeStore(...)`":!0,to:!0,"`Model`":!0,because:!0,"`Store`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"},{"startLine":11,"startColumn":12,"endLine":11,"endColumn":16,"description":"Cannot':!0,call:!0,"`makeStore`":!0,bound:!0,"`storeClass`":!0,'[incompatible-call]"}]':!0},"class Store {}\nclass ExtendedStore extends Store {}\nclass Model {}\n\nfunction makeStore(storeClass: Class) {\n return new storeClass();\n}\n\n(makeStore(Store): Store);\n(makeStore(ExtendedStore): Store);\n(makeStore(Model): Model); // Error!\n")),(0,i.mdx)("p",null,"For classes that take type parameters, you must also provide the parameter. For example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":29,"endLine":9,"endColumn":29,"description":"Cannot call `makeParamStore` with `1` bound to `data` because number [1] is incompatible with boolean [2]. [incompatible-call]"}]','[{"startLine":9,"startColumn":29,"endLine":9,"endColumn":29,"description":"Cannot':!0,call:!0,"`makeParamStore`":!0,with:!0,"`1`":!0,bound:!0,to:!0,"`data`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,boolean:!0,"[2].":!0,'[incompatible-call]"}]':!0},"class ParamStore {\n constructor(data: T) {}\n}\n\nfunction makeParamStore(storeClass: Class>, data: T): ParamStore {\n return new storeClass(data);\n}\n(makeParamStore(ParamStore, 1): ParamStore);\n(makeParamStore(ParamStore, 1): ParamStore); // Error!\n")),(0,i.mdx)("h2",{id:"toc-exports"},(0,i.mdx)("inlineCode",{parentName:"h2"},"$Exports")),(0,i.mdx)("p",null,"The following are functionally equivalent"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"import typeof * as T from 'my-module';\n")),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type T = $Exports<'my-module'>;\n")),(0,i.mdx)("p",null,"The advantage of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Exports")," syntax is that you can ",(0,i.mdx)("inlineCode",{parentName:"p"},"export")," the type on the same line"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"export type T = $Exports<'my-module'>;\n")),(0,i.mdx)("p",null,"where as you would otherwise need to export an alias in the ",(0,i.mdx)("inlineCode",{parentName:"p"},"import typeof")," case"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"import typeof * as T from 'my-module';\nexport type MyModuleType = T;\n")),(0,i.mdx)("h2",{id:"deprecated-utility-types"},"Deprecated utility types"),(0,i.mdx)("h3",{id:"toc-propertytype"},(0,i.mdx)("inlineCode",{parentName:"h3"},"$PropertyType")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},"WARNING:")," ",(0,i.mdx)("inlineCode",{parentName:"p"},"$PropertyType")," is deprecated as of Flow version 0.155, and will be removed in a future version of Flow."),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"$PropertyType")," is equivalent to the ",(0,i.mdx)("inlineCode",{parentName:"p"},"T['k']")," ",(0,i.mdx)("a",{parentName:"p",href:"../indexed-access"},"indexed access type"),"."),(0,i.mdx)("h3",{id:"toc-elementtype"},(0,i.mdx)("inlineCode",{parentName:"h3"},"$ElementType")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},"WARNING:")," ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ElementType")," is deprecated as of Flow version 0.155, and will be removed in a future version of Flow."),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"$ElementType")," is equivalent to the ",(0,i.mdx)("inlineCode",{parentName:"p"},"T[K]")," ",(0,i.mdx)("a",{parentName:"p",href:"../indexed-access"},"indexed access type"),"."),(0,i.mdx)("h3",{id:"partial-"},(0,i.mdx)("inlineCode",{parentName:"h3"},"$Partial")," ",(0,i.mdx)(o.l,{version:"0.202",mdxType:"UntilVersion"})),(0,i.mdx)("p",null,"A former alias of ",(0,i.mdx)("a",{parentName:"p",href:"#toc-partial"},"Partial"),". Support was removed in version 0.203."),(0,i.mdx)("h3",{id:"toc-shape"},(0,i.mdx)("inlineCode",{parentName:"h3"},"$Shape")),(0,i.mdx)("p",null,"NOTE: ",(0,i.mdx)("strong",{parentName:"p"},"Deprecated!")," This utility is unsafe - please use ",(0,i.mdx)("a",{parentName:"p",href:"#toc-partial"},(0,i.mdx)("inlineCode",{parentName:"a"},"Partial"))," documented above to make all of an object's fields optional."),(0,i.mdx)("p",null,"A variable of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Shape"),", where ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," is some object type, can be assigned objects ",(0,i.mdx)("inlineCode",{parentName:"p"},"o"),"\nthat contain a subset of the properties included in ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),". For each property ",(0,i.mdx)("inlineCode",{parentName:"p"},"p: S")," of ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),",\nthe type of a potential binding of ",(0,i.mdx)("inlineCode",{parentName:"p"},"p")," in ",(0,i.mdx)("inlineCode",{parentName:"p"},"o")," must be compatible with ",(0,i.mdx)("inlineCode",{parentName:"p"},"S"),"."),(0,i.mdx)("p",null,"For example"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":22,"endLine":5,"endColumn":35,"description":"The utility type `$Shape` is deprecated, use `Partial` instead. [deprecated-utility]"},{"startLine":7,"startColumn":25,"endLine":7,"endColumn":33,"description":"Cannot assign object literal to `person1` because property `name` is missing in object literal [1] but exists in `Person` [2]. [prop-missing]"},{"startLine":8,"startColumn":25,"endLine":8,"endColumn":35,"description":"Cannot assign object literal to `person2` because property `age` is missing in object literal [1] but exists in `Person` [2]. [prop-missing]"}]','[{"startLine":5,"startColumn":22,"endLine":5,"endColumn":35,"description":"The':!0,utility:!0,type:!0,"`$Shape`":!0,is:!0,"deprecated,":!0,use:!0,"`Partial`":!0,"instead.":!0,'[deprecated-utility]"},{"startLine":7,"startColumn":25,"endLine":7,"endColumn":33,"description":"Cannot':!0,assign:!0,object:!0,literal:!0,to:!0,"`person1`":!0,because:!0,property:!0,"`name`":!0,missing:!0,in:!0,"[1]":!0,but:!0,exists:!0,"`Person`":!0,"[2].":!0,'[prop-missing]"},{"startLine":8,"startColumn":25,"endLine":8,"endColumn":35,"description":"Cannot':!0,"`person2`":!0,"`age`":!0,'[prop-missing]"}]':!0},"type Person = {\n age: number,\n name: string,\n}\ntype PersonDetails = $Shape;\n\nconst person1: Person = {age: 28}; // ERROR: missing `name`\nconst person2: Person = {name: 'a'}; // ERROR: missing `age`\nconst person3: PersonDetails = {age: 28}; // OK\nconst person4: PersonDetails = {name: 'a'}; // OK\nconst person5: PersonDetails = {age: 28, name: 'a'}; // OK\nconst person6: PersonDetails = {age: '28'}; // ERROR: string is incompatible with number\n")),(0,i.mdx)("p",null,"NOTE: ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Shape")," is ",(0,i.mdx)("strong",{parentName:"p"},"not")," equivalent to ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," with all its fields marked as optional.\nIn particular, Flow unsoundly allows ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Shape")," to be used as a ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," in several\ncontexts. For example in"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const personShape: PersonDetails = {age: 28};\n(personShape: Person);\n")),(0,i.mdx)("p",null,"Flow will unsoundly allow this last cast to succeed."),(0,i.mdx)("p",null,"It is also not equivalent to itself in some contexts:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":22,"endLine":1,"endColumn":30,"description":"The utility type `$Shape` is deprecated, use `Partial` instead. [deprecated-utility]"},{"startLine":1,"startColumn":34,"endLine":1,"endColumn":42,"description":"The utility type `$Shape` is deprecated, use `Partial` instead. [deprecated-utility]"}]','[{"startLine":1,"startColumn":22,"endLine":1,"endColumn":30,"description":"The':!0,utility:!0,type:!0,"`$Shape`":!0,is:!0,"deprecated,":!0,use:!0,"`Partial`":!0,"instead.":!0,'[deprecated-utility]"},{"startLine":1,"startColumn":34,"endLine":1,"endColumn":42,"description":"The':!0,'[deprecated-utility]"}]':!0},"function f(input: $Shape): $Shape {\n return input; // ERROR: `T` is incompatible with `$Shape` of `T`\n}\n")),(0,i.mdx)("p",null,"This utility type is deprecated and will be deleted in the future -\nuse ",(0,i.mdx)("a",{parentName:"p",href:"#toc-partial"},(0,i.mdx)("inlineCode",{parentName:"a"},"Partial"))," instead."),(0,i.mdx)("h3",{id:"toc-call"},(0,i.mdx)("inlineCode",{parentName:"h3"},"$Call")),(0,i.mdx)("p",null,"NOTE: ",(0,i.mdx)("strong",{parentName:"p"},"Deprecated!")," This utility is deprecated as of Flow version 0.208 - please use ",(0,i.mdx)("a",{parentName:"p",href:"../conditional"},"Conditional Types")," or ",(0,i.mdx)("a",{parentName:"p",href:"../indexed-access"},"Indexed Access Types")," to extract types instead."),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"$Call")," is a type that represents the result of calling the given ",(0,i.mdx)("a",{parentName:"p",href:"../functions"},"function type")," ",(0,i.mdx)("inlineCode",{parentName:"p"},"F")," with 0 or more arguments ",(0,i.mdx)("inlineCode",{parentName:"p"},"T..."),".\nThis is analogous to calling a function at runtime (or more specifically, it's analogous to calling ",(0,i.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call"},(0,i.mdx)("inlineCode",{parentName:"a"},"Function.prototype.call")),"), but at the type level; this means that function type calls happens statically, i.e. not at runtime."),(0,i.mdx)("p",null,"Let's see a couple of examples:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":36,"endLine":5,"endColumn":49,"description":"Cannot instantiate `$Call` because property `prop` is missing in object type [1] but exists in object type [2] in the first argument. [prop-missing]"},{"startLine":8,"startColumn":2,"endLine":8,"endColumn":5,"description":"Cannot cast `true` to `PropType` because boolean [1] is incompatible with number [2]. [incompatible-cast]"}]','[{"startLine":5,"startColumn":36,"endLine":5,"endColumn":49,"description":"Cannot':!0,instantiate:!0,"`$Call`":!0,because:!0,property:!0,"`prop`":!0,is:!0,missing:!0,in:!0,object:!0,type:!0,"[1]":!0,but:!0,exists:!0,"[2]":!0,the:!0,first:!0,"argument.":!0,'[prop-missing]"},{"startLine":8,"startColumn":2,"endLine":8,"endColumn":5,"description":"Cannot':!0,cast:!0,"`true`":!0,to:!0,"`PropType`":!0,boolean:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"// Takes an object type, returns the type of its `prop` key\ntype ExtractPropType = ({prop: T, ...}) => T;\ntype Obj = {prop: number};\ntype PropType = $Call; // Call `ExtractPropType` with `Obj` as an argument\ntype Nope = $Call; // Error! Argument doesn't match `Obj`.\n\n(5: PropType); // Works\n(true: PropType); // Error! PropType is a number\n")),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":2,"endLine":7,"endColumn":5,"description":"Cannot cast `true` to `ReturnType` because boolean [1] is incompatible with number [2]. [incompatible-cast]"}]','[{"startLine":7,"startColumn":2,"endLine":7,"endColumn":5,"description":"Cannot':!0,cast:!0,"`true`":!0,to:!0,"`ReturnType`":!0,because:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"// Takes a function type, and returns its return type\ntype ExtractReturnType = (() => R) => R;\ntype Fn = () => number;\ntype ReturnType = $Call;\n\n(5: ReturnType); // Works\n(true: ReturnType); // Error! ReturnType is a number\n")),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"$Call")," can be very powerful because it allows you to make calls in type-land that you would otherwise have to do at runtime.\nThe type-land calls happen statically and will be erased at runtime."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":13,"startColumn":2,"endLine":13,"endColumn":5,"description":"Cannot cast `true` to `Value` because boolean [1] is incompatible with number [2]. [incompatible-cast]"},{"startLine":21,"startColumn":2,"endLine":21,"endColumn":5,"description":"Cannot cast `true` to `GetMapValue` because boolean [1] is incompatible with number [2]. [incompatible-cast]"}]','[{"startLine":13,"startColumn":2,"endLine":13,"endColumn":5,"description":"Cannot':!0,cast:!0,"`true`":!0,to:!0,"`Value`":!0,because:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-cast]"},{"startLine":21,"startColumn":2,"endLine":21,"endColumn":5,"description":"Cannot':!0,"`GetMapValue`":!0,'[incompatible-cast]"}]':!0},"// Getting return types:\nfunction getFirstValue(map: Map): ?V {\n for (const [key, value] of map.entries()) {\n return value;\n }\n return null;\n}\n\n// Using $Call, we can get the actual return type of the function above:\ntype Value = $Call>;\n\n(5: Value);\n(true: Value); // Error! Value is a `number`\n\n// We could generalize it further:\ntype GetMapValue =\n $Call;\n\n(5: GetMapValue>);\n(true: GetMapValue>);\n(true: GetMapValue>); // Error! value is a `number`\n")),(0,i.mdx)("h3",{id:"toc-objmap"},(0,i.mdx)("inlineCode",{parentName:"h3"},"$ObjMap")),(0,i.mdx)("p",null,"NOTE: ",(0,i.mdx)("strong",{parentName:"p"},"Deprecated!")," This utility is deprecated as of Flow version 0.211- please use ",(0,i.mdx)("a",{parentName:"p",href:"../mapped-types"},"Mapped Types")," instead."),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"ObjMap")," takes an ",(0,i.mdx)("a",{parentName:"p",href:"../objects"},"object type")," ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),", and a ",(0,i.mdx)("a",{parentName:"p",href:"../functions"},"function type")," ",(0,i.mdx)("inlineCode",{parentName:"p"},"F"),", and returns the object type obtained by mapping the type of each value in the object with the provided function type ",(0,i.mdx)("inlineCode",{parentName:"p"},"F"),". In other words, ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ObjMap")," will ",(0,i.mdx)("a",{parentName:"p",href:"#toc-call"},"call")," (at the type level) the given function type ",(0,i.mdx)("inlineCode",{parentName:"p"},"F")," for every property value type in ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),", and return the resulting object type from those calls."),(0,i.mdx)("p",null,"Let's see an example. Suppose you have a function called ",(0,i.mdx)("inlineCode",{parentName:"p"},"run")," that takes an object of thunks (functions in the form ",(0,i.mdx)("inlineCode",{parentName:"p"},"() => A"),") as input:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function run) => mixed}>(o: O): $FlowFixMe {\n return Object.keys(o).reduce<{[string]: (...$ReadOnlyArray) => mixed}>(\n (acc, k) => ({...acc, [(k: string)]: o[k]()}),\n {},\n );\n}\n")),(0,i.mdx)("p",null,"The function's purpose is to run all the thunks and return an object made of values. What's the return type of this function?"),(0,i.mdx)("p",null,"The keys are the same, but the values have a different type, namely the return type of each function.\nAt a value level (the implementation of the function) we're essentially mapping over the object to produce new values for the keys.\nHow to express this at a type level?"),(0,i.mdx)("p",null,"This is where ",(0,i.mdx)("inlineCode",{parentName:"p"},"ObjMap")," comes in handy"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":13,"startColumn":2,"endLine":13,"endColumn":9,"description":"Cannot cast `run(...).b` to boolean because string [1] is incompatible with boolean [2]. [incompatible-cast]"},{"startLine":14,"startColumn":8,"endLine":14,"endColumn":8,"description":"Cannot get `run(...).c` because property `c` is missing in object type [1]. [prop-missing]"}]','[{"startLine":13,"startColumn":2,"endLine":13,"endColumn":9,"description":"Cannot':!0,cast:!0,"`run(...).b`":!0,to:!0,boolean:!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"},{"startLine":14,"startColumn":8,"endLine":14,"endColumn":8,"description":"Cannot':!0,get:!0,"`run(...).c`":!0,property:!0,"`c`":!0,missing:!0,in:!0,object:!0,type:!0,"[1].":!0,'[prop-missing]"}]':!0},"// let's write a function type that takes a `() => V` and returns a `V` (its return type)\ntype ExtractReturnType = (() => V) => V;\n\ndeclare function run) => mixed}>(o: O): $ObjMap;\n\nconst o = {\n a: () => true,\n b: () => 'foo'\n};\n\n(run(o).a: boolean); // Works\n(run(o).b: string); // Works\n(run(o).b: boolean); // Error! `b` is a string\nrun(o).c; // Error! `c` was not in the original object\n")),(0,i.mdx)("p",null,"This is extremely useful for expressing the return type of functions that manipulate objects values.\nYou could use a similar approach (for instance) to provide the return type of bluebird's ",(0,i.mdx)("a",{parentName:"p",href:"http://bluebirdjs.com/docs/api/promise.props.html"},(0,i.mdx)("inlineCode",{parentName:"a"},"Promise.props"))," function,\nwhich is like ",(0,i.mdx)("inlineCode",{parentName:"p"},"Promise.all")," but takes an object as input."),(0,i.mdx)("p",null,"Here's a possible declaration of this function, which is very similar to our first example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":4,"endLine":6,"endColumn":6,"description":"Cannot cast `o.a` to number literal `43` because number [1] is incompatible with number literal `43` [2]. [incompatible-cast]"}]','[{"startLine":6,"startColumn":4,"endLine":6,"endColumn":6,"description":"Cannot':!0,cast:!0,"`o.a`":!0,to:!0,number:!0,literal:!0,"`43`":!0,because:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"declare function props(promises: O): Promise<$ObjMap>;\n\nconst promises = {a: Promise.resolve(42)};\nprops(promises).then(o => {\n (o.a: 42); // Works\n (o.a: 43); // Error! Flow knows it's 42\n});\n")),(0,i.mdx)("h3",{id:"toc-objmapi"},(0,i.mdx)("inlineCode",{parentName:"h3"},"$ObjMapi")),(0,i.mdx)("p",null,"NOTE: ",(0,i.mdx)("strong",{parentName:"p"},"Deprecated!")," This utility is deprecated as of Flow version 0.211- please use ",(0,i.mdx)("a",{parentName:"p",href:"../mapped-types"},"Mapped Types")," instead."),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"ObjMapi")," is similar to ",(0,i.mdx)("a",{parentName:"p",href:"#toc-objmap"},(0,i.mdx)("inlineCode",{parentName:"a"},"ObjMap")),". The difference is that function\ntype ",(0,i.mdx)("inlineCode",{parentName:"p"},"F")," will be ",(0,i.mdx)("a",{parentName:"p",href:"#toc-call"},"called")," with both the key and value types of the elements of\nthe object type ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),", instead of just the value types. For example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":2,"endLine":12,"endColumn":9,"description":"Cannot cast `run(...).a` to object type because string literal `a` [1] is incompatible with string literal `b` [2] in property `k`. [incompatible-cast]"},{"startLine":13,"startColumn":2,"endLine":13,"endColumn":9,"description":"Cannot cast `run(...).b` to object type because string [1] is incompatible with number [2] in property `v`. [incompatible-cast]"},{"startLine":14,"startColumn":8,"endLine":14,"endColumn":8,"description":"Cannot get `run(...).c` because property `c` is missing in object type [1]. [prop-missing]"}]','[{"startLine":12,"startColumn":2,"endLine":12,"endColumn":9,"description":"Cannot':!0,cast:!0,"`run(...).a`":!0,to:!0,object:!0,type:!0,because:!0,string:!0,literal:!0,"`a`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`b`":!0,"[2]":!0,in:!0,property:!0,"`k`.":!0,'[incompatible-cast]"},{"startLine":13,"startColumn":2,"endLine":13,"endColumn":9,"description":"Cannot':!0,"`run(...).b`":!0,number:!0,"`v`.":!0,'[incompatible-cast]"},{"startLine":14,"startColumn":8,"endLine":14,"endColumn":8,"description":"Cannot':!0,get:!0,"`run(...).c`":!0,"`c`":!0,missing:!0,"[1].":!0,'[prop-missing]"}]':!0},"const o = {\n a: () => true,\n b: () => 'foo'\n};\n\ntype ExtractReturnObjectType = (K, () => V) => { k: K, v: V };\n\ndeclare function run(o: O): $ObjMapi;\n\n(run(o).a: {k: 'a', v: boolean}); // Works\n(run(o).b: {k: 'b', v: string}); // Works\n(run(o).a: {k: 'b', v: boolean}); // Error! `a.k` is \"a\"\n(run(o).b: {k: 'b', v: number}); // Error! `b.v` is a string\nrun(o).c; // Error! `c` was not in the original object\n")),(0,i.mdx)("h3",{id:"toc-objmapconst"},(0,i.mdx)("inlineCode",{parentName:"h3"},"$ObjMapConst")),(0,i.mdx)("p",null,"NOTE: ",(0,i.mdx)("strong",{parentName:"p"},"Deprecated!")," This utility is deprecated as of Flow version 0.211- please use ",(0,i.mdx)("a",{parentName:"p",href:"../mapped-types"},"Mapped Types")," instead."),(0,i.mdx)("p",null,(0,i.mdx)("inlineCode",{parentName:"p"},"$ObjMapConst")," is a special case of ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ObjMap"),", when ",(0,i.mdx)("inlineCode",{parentName:"p"},"F")," is a constant\nfunction type, e.g. ",(0,i.mdx)("inlineCode",{parentName:"p"},"() => T"),". Instead of writing ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ObjMap T>"),", you\ncan write ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ObjMapConst"),". For example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const obj = {\n a: true,\n b: 'foo'\n};\n\ndeclare function run(o: O): $ObjMapConst;\n\n// newObj is of type {a: number, b: number}\nconst newObj = run(obj);\n\n(newObj.a: number); // Works\n(newObj.b: string); // Error! Property `b` is a number\n")),(0,i.mdx)("p",null,"Tip: Prefer using ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ObjMapConst")," instead of ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ObjMap")," (if possible) to fix certain\nkinds of ",(0,i.mdx)("inlineCode",{parentName:"p"},"[invalid-exported-annotation]")," errors."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3818.52e10916.js b/assets/js/3818.52e10916.js new file mode 100644 index 00000000000..2c9d46ab6ab --- /dev/null +++ b/assets/js/3818.52e10916.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3818],{23818:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var a=t(87462),o=(t(67294),t(3905));const i={title:"Windows Support is Here!","short-title":"Windows Support",author:"Gabe Levi",hide_table_of_contents:!0},l=void 0,r={permalink:"/blog/2016/08/01/Windows-Support",source:"@site/blog/2016-08-01-Windows-Support.md",title:"Windows Support is Here!",description:"We are excited to announce that Flow is now officially available on 64-bit",date:"2016-08-01T00:00:00.000Z",formattedDate:"August 1, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Windows Support is Here!","short-title":"Windows Support",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Property Variance and Other Upcoming Changes",permalink:"/blog/2016/10/04/Property-Variance"},nextItem:{title:"New Implementation of Unions and Intersections",permalink:"/blog/2016/07/01/New-Unions-Intersections"}},s={authorsImageUrls:[void 0]},d=[{value:"Getting Started with Windows",id:"getting-started-with-windows",level:3},{value:"Getting Started with flow-bin on Windows",id:"getting-started-with-flow-bin-on-windows",level:4},{value:"Getting Started with flow.exe",id:"getting-started-with-flowexe",level:4}],p={toc:d};function m(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"We are excited to announce that Flow is now officially available on 64-bit\nWindows! Starting with\n",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases/tag/v0.30.0"},"Flow v0.30.0"),", we will\npublish a Windows binary with each release. You can download the Windows binary\nin a .zip file directly from the\n",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases"},"GitHub releases page")," or install it\nusing the ",(0,o.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/flow-bin"},"flow-bin npm package"),". Try\nit out and ",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues"},"report any issues")," you\ncome across!"),(0,o.mdx)("p",null,"![Windows Support GIF]","({{ site.baseurl }}/static/windows.gif)"),(0,o.mdx)("p",null,"Getting Flow working on Windows was not easy, and it was made possible by the\nhard work of ",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/OCamlPro-Henry"},"Gr\xe9goire"),",\n",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/OCamlPro-Bozman"},"\xc7agdas")," and\n",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/lefessan"},"Fabrice")," from\n",(0,o.mdx)("a",{parentName:"p",href:"https://www.ocamlpro.com/"},"OCamlPro"),"."),(0,o.mdx)("h3",{id:"getting-started-with-windows"},"Getting Started with Windows"),(0,o.mdx)("h4",{id:"getting-started-with-flow-bin-on-windows"},"Getting Started with flow-bin on Windows"),(0,o.mdx)("p",null,"Does your JavaScript project use npm to manage dependencies? Well, then the\neasiest way for you to install Flow is with npm! Just run"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-bash"},"> npm install --save-dev flow-bin\n")),(0,o.mdx)("p",null,"(Note: on Windows, it is recommended to use npm v3, to avoid the long\n",(0,o.mdx)("inlineCode",{parentName:"p"},"node_modules")," paths that npm v2 creates)"),(0,o.mdx)("p",null,"This will install the\n",(0,o.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/flow-bin"},"flow-bin npm package")," and\nautomatically add it to your package.json. Once installed, there are a few ways\nto use the Flow binary. One is to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"./node_modules/.bin/flow")," directly. For\nexample, every Flow project needs a ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file in the root directory.\nIf you don't already have a ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig"),", you could create it with Powershell,\nlike"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-bash"},"> New-Item .flowconfig\n")),(0,o.mdx)("p",null,"or you could run the ",(0,o.mdx)("inlineCode",{parentName:"p"},"flow init")," command, using ",(0,o.mdx)("inlineCode",{parentName:"p"},"./node_modules/.bin/flow")),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-bash"},"> ./node_modules/.bin/flow init\n")),(0,o.mdx)("p",null,"Another way to run Flow is via an npm script. In your package.json file, there\nis a ",(0,o.mdx)("inlineCode",{parentName:"p"},'"scripts"')," section. Maybe it looks like this:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},'"scripts": {\n "test": "make test"\n}\n')),(0,o.mdx)("p",null,"You can run the Flow binary directly from a script by referencing ",(0,o.mdx)("inlineCode",{parentName:"p"},"flow")," in a\nscript, like so:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},'"scripts": {\n "test": "make test",\n "flow_check": "flow check || exit 0"\n}\n')),(0,o.mdx)("p",null,"and then running that script via ",(0,o.mdx)("inlineCode",{parentName:"p"},"npm run")),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-bash"},"> npm run flow_check\n")),(0,o.mdx)("p",null,"(Note: the ",(0,o.mdx)("inlineCode",{parentName:"p"},"|| exit 0")," part of the script is optional, but ",(0,o.mdx)("inlineCode",{parentName:"p"},"npm run")," will show\nan error message if the script finishes with a non-zero exit code)"),(0,o.mdx)("p",null,"You can also install ",(0,o.mdx)("inlineCode",{parentName:"p"},"flow-bin")," globally with"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-bash"},"> npm install --global flow-bin\n")),(0,o.mdx)("h4",{id:"getting-started-with-flowexe"},"Getting Started with flow.exe"),(0,o.mdx)("p",null,"Each ",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases"},"GitHub release of Flow"),"\nstarting with v0.30.0 will have a zipped Windows binary. For example, the\n",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases/tag/v0.30.0"},"v0.30.0 release"),"\nincludes ",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases/download/v0.30.0/flow-win64-v0.30.0.zip"},"flow-win64-v0.30.0.zip"),".\nIf you download and unzip that, you will find a ",(0,o.mdx)("inlineCode",{parentName:"p"},"flow/")," directory, which\ncontains ",(0,o.mdx)("inlineCode",{parentName:"p"},"flow.exe"),". ",(0,o.mdx)("inlineCode",{parentName:"p"},"flow.exe")," is the Flow binary, so if you put that\nsomewhere in your path, and you should be good to go."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-bash"},'> mkdir demo\n> cd demo\n> flow.exe init\n> "/* @flow */ var x: number = true;" | Out-File -Encoding ascii test.js\n> flow.exe check\ntest.js:1\n 1: /* @flow */ var x: number = true;\n ^^^^ boolean. This type is incompatible with\n\n 1: /* @flow */ var x: number = true;\n ^^^^^^ number\n')))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3835.10b298c2.js b/assets/js/3835.10b298c2.js new file mode 100644 index 00000000000..51c87c064d5 --- /dev/null +++ b/assets/js/3835.10b298c2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3835],{63835:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>s,default:()=>l,frontMatter:()=>p,metadata:()=>r,toc:()=>d});var o=t(87462),a=(t(67294),t(3905));t(45475);const p={title:"Components",slug:"/react/components"},s=void 0,r={unversionedId:"react/components",id:"react/components",title:"Components",description:"Adding Flow types to your React components is incredibly powerful. After typing",source:"@site/docs/react/components.md",sourceDirName:"react",slug:"/react/components",permalink:"/en/docs/react/components",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/components.md",tags:[],version:"current",frontMatter:{title:"Components",slug:"/react/components"},sidebar:"docsSidebar",previous:{title:"Getting Started",permalink:"/en/docs/react"},next:{title:"Event Handling",permalink:"/en/docs/react/events"}},i={},d=[{value:"Functional Components",id:"toc-functional-components",level:2},{value:"Adding Default Props to Functional Components",id:"toc-adding-default-props-to-functional-components",level:3},{value:"Class Components",id:"toc-class-components",level:2},{value:"Adding State",id:"toc-adding-state",level:3},{value:"Using Default Props for Class Components",id:"toc-using-default-props-for-class-components",level:3}],m={toc:d};function l(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Adding Flow types to your ",(0,a.mdx)("a",{parentName:"p",href:"https://react.dev/learn/your-first-component"},"React components")," is incredibly powerful. After typing\nyour component, Flow will statically ensure that you are using the component in\nthe way it was designed to be used."),(0,a.mdx)("h2",{id:"toc-functional-components"},"Functional Components"),(0,a.mdx)("p",null,"Adding Flow types to a functional component is the same as ",(0,a.mdx)("a",{parentName:"p",href:"../../types/functions/"},"adding types to a standard function"),".\nJust create an object type for the props and Flow will ensure that the props passed to the component match up with what is expected."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":20,"description":"Cannot get `props.doesNotExist` because property `doesNotExist` is missing in `Props` [1]. [prop-missing]"}]','[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":20,"description":"Cannot':!0,get:!0,"`props.doesNotExist`":!0,because:!0,property:!0,"`doesNotExist`":!0,is:!0,missing:!0,in:!0,"`Props`":!0,"[1].":!0,'[prop-missing]"}]':!0},"import * as React from 'react';\n\ntype Props = {\n foo: number,\n bar?: string,\n};\n\nfunction MyComponent(props: Props) {\n props.doesNotExist; // Error! You did not define a `doesNotExist` prop.\n\n return
    {props.bar}
    ;\n}\n\n\n")),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},(0,a.mdx)("strong",{parentName:"p"},"Note:")," We import ",(0,a.mdx)("inlineCode",{parentName:"p"},"React")," as a namespace here with\n",(0,a.mdx)("inlineCode",{parentName:"p"},"import * as React from 'react'")," instead of as a default with\n",(0,a.mdx)("inlineCode",{parentName:"p"},"import React from 'react'"),". When importing React as an ES module you may use\neither style, but importing as a namespace gives you access to React's\n",(0,a.mdx)("a",{parentName:"p",href:"../types"},"utility types"),".")),(0,a.mdx)("h3",{id:"toc-adding-default-props-to-functional-components"},"Adding Default Props to Functional Components"),(0,a.mdx)("p",null,"A nice pattern to add default props to functional components is to use\n",(0,a.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment/#default_value"},"destructuring with default values"),".\nBy destructuring the props in the function parameter, you can assign a value to any props that are not passed\nto the component (or passed with the value ",(0,a.mdx)("inlineCode",{parentName:"p"},"undefined"),")."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import * as React from 'react';\n\ntype Props = {\n foo?: number, // foo is optional to pass in.\n bar: string, // bar is required.\n};\n\nfunction MyComponent({foo = 42, bar}: Props) {\n // Flow knows that foo is not null or undefined\n const baz = foo + 1;\n}\n\n// And we don't need to include foo.\n;\n")),(0,a.mdx)("h2",{id:"toc-class-components"},"Class Components"),(0,a.mdx)("p",null,"To Flowify a ",(0,a.mdx)("a",{parentName:"p",href:"https://react.dev/reference/react/Component#defining-a-class-component"},"class component"),", the type of the props can be passed as the first\nargument to the ",(0,a.mdx)("inlineCode",{parentName:"p"},"React.Component")," type. This will have the same effect as adding types\nto the ",(0,a.mdx)("inlineCode",{parentName:"p"},"props")," parameter of a function component."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":10,"startColumn":16,"endLine":10,"endColumn":27,"description":"Cannot get `this.props.doesNotExist` because property `doesNotExist` is missing in `Props` [1]. [prop-missing]"}]','[{"startLine":10,"startColumn":16,"endLine":10,"endColumn":27,"description":"Cannot':!0,get:!0,"`this.props.doesNotExist`":!0,because:!0,property:!0,"`doesNotExist`":!0,is:!0,missing:!0,in:!0,"`Props`":!0,"[1].":!0,'[prop-missing]"}]':!0},"import * as React from 'react';\n\ntype Props = {\n foo: number,\n bar?: string,\n};\n\nclass MyComponent extends React.Component {\n render(): React.Node {\n this.props.doesNotExist; // Error! You did not define a `doesNotExist` prop.\n\n return
    {this.props.bar}
    ;\n }\n}\n\n;\n")),(0,a.mdx)("p",null,"Now wherever we use ",(0,a.mdx)("inlineCode",{parentName:"p"},"this.props")," in our React component Flow will treat it as\nthe ",(0,a.mdx)("inlineCode",{parentName:"p"},"Props")," type we defined."),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},(0,a.mdx)("strong",{parentName:"p"},"Note:")," If you don't need to use the ",(0,a.mdx)("inlineCode",{parentName:"p"},"Props")," type again you could also\ndefine it inline: ",(0,a.mdx)("inlineCode",{parentName:"p"},"extends React.Component<{ foo: number, bar?: string }>"),".")),(0,a.mdx)("p",null,(0,a.mdx)("inlineCode",{parentName:"p"},"React.Component")," is a ",(0,a.mdx)("a",{parentName:"p",href:"../../types/generics"},"generic type")," that takes two type\narguments: props and state. The second type argument, ",(0,a.mdx)("inlineCode",{parentName:"p"},"State"),", is optional. By\ndefault it is ",(0,a.mdx)("inlineCode",{parentName:"p"},"undefined")," so you can see in the example above we did not include\n",(0,a.mdx)("inlineCode",{parentName:"p"},"State"),". We will learn more about state in the next section..."),(0,a.mdx)("h3",{id:"toc-adding-state"},"Adding State"),(0,a.mdx)("p",null,"To add a type for state to your React class component: create a new object\ntype, in the example below we name it ",(0,a.mdx)("inlineCode",{parentName:"p"},"State"),", and pass it as the second type\nargument to ",(0,a.mdx)("inlineCode",{parentName:"p"},"React.Component"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import * as React from 'react';\n\ntype Props = { /* ... */ };\n\ntype State = {\n count: number,\n};\n\nclass MyComponent extends React.Component {\n state: State = {\n count: 0,\n };\n\n componentDidMount() {\n setInterval(() => {\n this.setState(prevState => ({\n count: prevState.count + 1,\n }));\n }, 1000);\n }\n\n render(): React.Node {\n return
    Count: {this.state.count}
    ;\n }\n}\n\n;\n")),(0,a.mdx)("p",null,"In the example above we are using a ",(0,a.mdx)("a",{parentName:"p",href:"https://react.dev/reference/react/Component#setstate"},"React ",(0,a.mdx)("inlineCode",{parentName:"a"},"setState()")," updater function"),"\nbut you could also pass a partial state object to ",(0,a.mdx)("inlineCode",{parentName:"p"},"setState()"),"."),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},(0,a.mdx)("strong",{parentName:"p"},"Note:")," If you don't need to use the ",(0,a.mdx)("inlineCode",{parentName:"p"},"State")," type again you could also\ndefine it inline: ",(0,a.mdx)("inlineCode",{parentName:"p"},"extends React.Component<{}, { count: number }>"),".")),(0,a.mdx)("h3",{id:"toc-using-default-props-for-class-components"},"Using Default Props for Class Components"),(0,a.mdx)("p",null,"React supports the notion of ",(0,a.mdx)("inlineCode",{parentName:"p"},"defaultProps")," which you can think of as default\nfunction arguments. When you create an element and do not include a prop\nwhich has a default then React will substitute that prop with its corresponding\nvalue from ",(0,a.mdx)("inlineCode",{parentName:"p"},"defaultProps"),". Flow supports this notion as well. To type default\nprops add a ",(0,a.mdx)("inlineCode",{parentName:"p"},"static defaultProps")," property to your class."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import * as React from 'react';\n\ntype Props = {\n foo: number, // foo is required.\n bar: string, // bar is required.\n};\n\nclass MyComponent extends React.Component {\n static defaultProps: {foo: number} = {\n foo: 42, // ...but we have a default prop for foo.\n };\n}\n\n// So we don't need to include foo.\n\n")),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},(0,a.mdx)("strong",{parentName:"p"},"Note:")," You don't need to make ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo")," nullable in your ",(0,a.mdx)("inlineCode",{parentName:"p"},"Props")," type. Flow\nwill make sure that ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo")," is optional if you have a default prop for ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo"),".")),(0,a.mdx)("p",null,"If you add a type annotation to ",(0,a.mdx)("inlineCode",{parentName:"p"},"defaultProps")," you can define the type as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type DefaultProps = {\n foo: number,\n};\n")),(0,a.mdx)("p",null,"and spread that into the ",(0,a.mdx)("inlineCode",{parentName:"p"},"Props")," type:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"type Props = {\n ...DefaultProps,\n bar: string,\n};\n")),(0,a.mdx)("p",null,"This way you avoid duplicating the properties that happen to have a default value."),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},(0,a.mdx)("strong",{parentName:"p"},"Note:")," You can also apply this format of default props to functional components\nby adding a ",(0,a.mdx)("inlineCode",{parentName:"p"},"defaultProps")," property to a the component function. However, it is generally\nsimpler to use the destructuring pattern described above."),(0,a.mdx)("pre",{parentName:"blockquote"},(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function MyComponent(props: {foo: number}) {}\nMyComponent.defaultProps = {foo: 42};\n"))))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3847.5182a5d7.js b/assets/js/3847.5182a5d7.js new file mode 100644 index 00000000000..45cf2d4e649 --- /dev/null +++ b/assets/js/3847.5182a5d7.js @@ -0,0 +1 @@ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3847],{52991:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var i=n(67294),s=n(86010),a=n(53438),o=n(39960),r=n(13919),l=n(95999);const c="cardContainer_fWXF",d="cardTitle_rnsV",p="cardDescription_PWke";function m(e){let{href:t,children:n}=e;return i.createElement(o.default,{href:t,className:(0,s.default)("card padding--lg",c)},n)}function u(e){let{href:t,icon:n,title:a,description:o}=e;return i.createElement(m,{href:t},i.createElement("h2",{className:(0,s.default)("text--truncate",d),title:a},n," ",a),o&&i.createElement("p",{className:(0,s.default)("text--truncate",p),title:o},o))}function y(e){var t;let{item:n}=e;const s=(0,a.Wl)(n);return s?i.createElement(u,{href:s,icon:"\ud83d\uddc3\ufe0f",title:n.label,description:null!=(t=n.description)?t:(0,l.translate)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:n.items.length})}):null}function g(e){var t,n;let{item:s}=e;const o=(0,r.Z)(s.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",l=(0,a.xz)(null!=(t=s.docId)?t:void 0);return i.createElement(u,{href:s.href,icon:o,title:s.label,description:null!=(n=s.description)?n:null==l?void 0:l.description})}function f(e){let{item:t}=e;switch(t.type){case"link":return i.createElement(g,{item:t});case"category":return i.createElement(y,{item:t});default:throw new Error("unknown item type "+JSON.stringify(t))}}function b(e){let{className:t}=e;const n=(0,a.jA)();return i.createElement(h,{items:n.items,className:t})}function h(e){const{items:t,className:n}=e;if(!t)return i.createElement(b,e);const o=(0,a.MN)(t);return i.createElement("section",{className:(0,s.default)("row",n)},o.map(((e,t)=>i.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},i.createElement(f,{item:e})))))}},86679:e=>{e.exports={docsSidebar:[{type:"category",label:"Introduction",items:["getting-started","install","usage"]},{type:"doc",id:"faq",label:"FAQ"},{type:"category",label:"Type Annotations",items:["types/index","types/primitives","types/literals","types/mixed","types/empty","types/any","types/maybe","types/functions","types/objects","types/arrays","types/tuples","types/classes","types/aliases","types/opaque-types","types/interfaces","types/generics","types/unions","types/intersections","types/indexed-access","types/conditional","types/mapped-types","types/type-guards","types/typeof","types/casting","types/utilities","types/modules","types/comments"]},{type:"category",label:"Type System",items:["lang/types-and-expressions","lang/variables","lang/subtypes","lang/type-hierarchy","lang/variance","lang/nominal-structural","lang/depth-subtyping","lang/width-subtyping","lang/refinements","lang/lazy-modes","lang/types-first","lang/annotation-requirement"]},{type:"category",label:"React",items:["react/index","react/components","react/events","react/refs","react/hoc","react/types",!1,!1,!1].filter(Boolean)},{type:"category",label:"Flow Enums",items:["enums/index","enums/enabling-enums","enums/defining-enums","enums/using-enums","enums/migrating-legacy-patterns"]},{type:"doc",id:"declarations/index",label:"Declarations"},{type:"category",label:"Library Definitions",items:["libdefs/index","libdefs/creation"]},{type:"doc",id:"errors/index",label:"Error Suppressions"},{type:"category",label:"Linting",items:["linting/index","linting/flowlint-comments","linting/rule-reference"]},{type:"doc",id:"strict/index",label:"Flow Strict"},{type:"category",label:"Flow CLI",items:["cli/index","cli/coverage","cli/annotate-exports"]},{type:"category",label:"Configuration",items:["config/index","config/version","config/options","config/include","config/ignore","config/untyped","config/declarations","config/libs","config/lints"]},{type:"category",label:"Tools",items:["tools/babel","tools/eslint","tools/flow-remove-types"]},{type:"category",label:"Editors",items:["editors/index","editors/vscode","editors/sublime-text","editors/vim","editors/emacs","editors/webstorm"]}]}},73847:(e,t,n)=>{"use strict";n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>y,frontMatter:()=>l,metadata:()=>d,toc:()=>m});var i=n(87462),s=(n(67294),n(3905)),a=(n(45475),n(52991));const{docsSidebar:o}=n(86679),r=o.map((e=>{const t=e.label,n="doc"===e.type?e.id:e.items[0];let i="/en/docs/"+n;return i.endsWith("/index")&&(i=i.substring(0,i.length-6)),{type:"link",docId:n,href:i,label:t}})),l={title:"Documentation",description:"Guides and references for all you need to know about Flow",displayed_sidebar:"docsSidebar",spug:"/"},c=void 0,d={unversionedId:"index",id:"index",title:"Documentation",description:"Guides and references for all you need to know about Flow",source:"@site/docs/index.md",sourceDirName:".",slug:"/",permalink:"/en/docs/",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/index.md",tags:[],version:"current",frontMatter:{title:"Documentation",description:"Guides and references for all you need to know about Flow",displayed_sidebar:"docsSidebar",spug:"/"},sidebar:"docsSidebar"},p={},m=[],u={toc:m};function y(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,i.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Guides and references for all you need to know about Flow."),(0,s.mdx)(a.Z,{items:r,mdxType:"DocCardList"}))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/385.c9dbdd20.js b/assets/js/385.c9dbdd20.js new file mode 100644 index 00000000000..97e8384aa4f --- /dev/null +++ b/assets/js/385.c9dbdd20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[385],{385:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>i,toc:()=>h});var n=o(87462),a=(o(67294),o(3905));const r={author:"Gabe Levi",hide_table_of_contents:!0},s=void 0,i={permalink:"/blog/2015/09/10/Version-0.15.0",source:"@site/blog/2015-09-10-Version-0.15.0.md",title:"Version-0.15.0",description:"Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!",date:"2015-09-10T00:00:00.000Z",formattedDate:"September 10, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Version-0.16.0",permalink:"/blog/2015/09/22/Version-0.16.0"},nextItem:{title:"Version-0.14.0",permalink:"/blog/2015/07/29/Version-0.14.0"}},l={authorsImageUrls:[void 0]},h=[],d={toc:h};function c(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!"),(0,a.mdx)("p",null,"Check out the ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0150"},"Changelog")," to see what's new."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3851.4a9ebda0.js b/assets/js/3851.4a9ebda0.js new file mode 100644 index 00000000000..10e9e778fe5 --- /dev/null +++ b/assets/js/3851.4a9ebda0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3851],{93851:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var o=n(87462),a=(n(67294),n(3905));n(45475);const r={title:"File Signatures (Types-First)",slug:"/lang/types-first"},i=void 0,s={unversionedId:"lang/types-first",id:"lang/types-first",title:"File Signatures (Types-First)",description:"Flow checks codebases by processing each file separately in dependency",source:"@site/docs/lang/types-first.md",sourceDirName:"lang",slug:"/lang/types-first",permalink:"/en/docs/lang/types-first",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/types-first.md",tags:[],version:"current",frontMatter:{title:"File Signatures (Types-First)",slug:"/lang/types-first"},sidebar:"docsSidebar",previous:{title:"Lazy Mode",permalink:"/en/docs/lang/lazy-modes"},next:{title:"Annotation Requirement",permalink:"/en/docs/lang/annotation-requirement"}},l={},d=[{value:"How to upgrade your codebase to Types-First",id:"toc-how-to-upgrade-your-codebase-to-types-first",level:2},{value:"Upgrade Flow version",id:"toc-upgrade-flow-version",level:3},{value:"Prepare your codebase for Types-First",id:"toc-prepare-your-codebase-for-types-first",level:3},{value:"Seal your intermediate results",id:"toc-seal-your-intermediate-results",level:4},{value:"A codemod for large codebases",id:"toc-a-codemod-for-large-codebases",level:4},{value:"Enable the types-first flag",id:"toc-enable-the-types-first-flag",level:3},{value:"Deal with newly introduced errors",id:"toc-deal-with-newly-introduced-errors",level:3},{value:"Array tuples treated as regular arrays in exports",id:"toc-array-tuples-treated-as-regular-arrays-in-exports",level:4},{value:"Indirect object assignments in exports",id:"toc-indirect-object-assignments-in-exports",level:4},{value:"Exported variables with updates",id:"toc-exported-variables-with-updates",level:3}],p={toc:d};function m(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow checks codebases by processing each file separately in dependency\norder. For every file containing important typing information for the checking\nprocess, a signature needs to be extracted and stored in\nmain memory, to be used for files that depend on it. Flow relies on annotations\navailable at the boundaries of files to build these signatures. We call this\nrequirement of Flow's architecture ",(0,a.mdx)("em",{parentName:"p"},"Types-First"),"."),(0,a.mdx)("p",null,"The benefit of this architecture is dual:"),(0,a.mdx)("ol",null,(0,a.mdx)("li",{parentName:"ol"},(0,a.mdx)("p",{parentName:"li"},"It dramatically improves ",(0,a.mdx)("em",{parentName:"p"},"performance"),", in particular when it comes to\nrechecks. Suppose we want Flow to check a file ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js"),", for which it hasn't\nchecked its dependencies yet. Flow extracts the dependency signatures just by\nlooking at the annotations around the exports. This process is mostly\nsyntactic, and therefore much faster than full type inference that legacy versions\nof Flow (prior to v0.125) used to perform in order to generate signatures.")),(0,a.mdx)("li",{parentName:"ol"},(0,a.mdx)("p",{parentName:"li"},"It improves error ",(0,a.mdx)("em",{parentName:"p"},"reliability"),". Inferred types often become complicated, and may\nlead to errors being reported in downstream files, far away from their actual source.\nType annotations at file boundaries of files can help localize such errors, and\naddress them in the file that introduced them."))),(0,a.mdx)("p",null,"The trade-off for this performance benefit is that exported parts of the code need to be\nannotated with types, or to be expressions whose type can be trivially inferred\n(for example numbers and strings)."),(0,a.mdx)("p",null,"More information on the Types-First architecture can be found in ",(0,a.mdx)("a",{parentName:"p",href:"https://medium.com/flow-type/types-first-a-scalable-new-architecture-for-flow-3d8c7ba1d4eb"},"this post"),"."),(0,a.mdx)("h2",{id:"toc-how-to-upgrade-your-codebase-to-types-first"},"How to upgrade your codebase to Types-First"),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"Note: Types-first has been the default mode since v0.134 and the only available\nmode since v0.143. No ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig")," options are necessary to enable it since then.\nIn case you're upgrading your codebase from a much earlier version here are some\nuseful tools.")),(0,a.mdx)("h3",{id:"toc-upgrade-flow-version"},"Upgrade Flow version"),(0,a.mdx)("p",null,"Types-first mode was officially released with version 0.125, but has been available in\n",(0,a.mdx)("em",{parentName:"p"},"experimental")," status as of version 0.102. If you are currently on an older\nFlow version, you\u2019d have to first upgrade Flow. Using the latest Flow version\nis the best way to benefit from the performance benefits outlined above."),(0,a.mdx)("h3",{id:"toc-prepare-your-codebase-for-types-first"},"Prepare your codebase for Types-First"),(0,a.mdx)("p",null,"Types-first requires annotations at module boundaries in order to build type\nsignature for files. If these annotations are missing, then a ",(0,a.mdx)("inlineCode",{parentName:"p"},"signature-verification-failure"),"\nis raised, and the exported type for the respective part of the code will be ",(0,a.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,a.mdx)("p",null,"To see what types are missing to make your codebase types-first ready, add the\nfollowing line to the ",(0,a.mdx)("inlineCode",{parentName:"p"},"[options]")," section of the ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"well_formed_exports=true\n")),(0,a.mdx)("p",null,"Consider for example a file ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js")," that exports a function call to ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"declare function foo(x: T): T;\nmodule.exports = foo(1);\n")),(0,a.mdx)("p",null,"The return type of function calls is currently not trivially inferable (due to\nfeatures like polymorphism, overloading etc.). Their result needs to be annotated\nand so you\u2019d see the following error:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"Cannot build a typed interface for this module. You should annotate the exports\nof this module with types. Cannot determine the type of this call expression. Please\nprovide an annotation, e.g., by adding a type cast around this expression.\n(`signature-verification-failure`)\n\n 4\u2502 module.exports = foo(1);\n ^^^^^^\n")),(0,a.mdx)("p",null,"To resolve this, you can add an annotation like the following:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"declare function foo(x: T): T;\nmodule.exports = (foo(1): number);\n")),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"Note: As of version 0.134, types-first is the default mode. This mode automatically\nenables ",(0,a.mdx)("inlineCode",{parentName:"p"},"well_formed_exports"),", so you would see these errors without explicitly\nsetting this flag. It is advisable to set ",(0,a.mdx)("inlineCode",{parentName:"p"},"types_first=false")," during this part of\nthe upgrade.")),(0,a.mdx)("h4",{id:"toc-seal-your-intermediate-results"},"Seal your intermediate results"),(0,a.mdx)("p",null,"As you make progress adding types to your codebase, you can include directories\nso that they don\u2019t regress as new code gets committed, and until the entire project\nhas well-formed exports. You can do this by adding lines like the following to your\n.flowconfig:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"well_formed_exports.includes=/path/to/directory\n")),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"Warning: That this is a ",(0,a.mdx)("em",{parentName:"p"},"substring")," check, not a regular expression (for performance\nreasons).")),(0,a.mdx)("h4",{id:"toc-a-codemod-for-large-codebases"},"A codemod for large codebases"),(0,a.mdx)("p",null,"Adding the necessary annotations to large codebases can be quite tedious. To ease\nthis burden, we are providing a codemod based on Flow's inference, that can be\nused to annotate multiple files in bulk. See ",(0,a.mdx)("a",{parentName:"p",href:"../../cli/annotate-exports/"},"this tutorial")," for more."),(0,a.mdx)("h3",{id:"toc-enable-the-types-first-flag"},"Enable the types-first flag"),(0,a.mdx)("p",null,"Once you have eliminated signature verification errors, you can turn on the types-first\nmode, by adding the following line to the ",(0,a.mdx)("inlineCode",{parentName:"p"},"[options]")," section of the ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"types_first=true\n")),(0,a.mdx)("p",null,"You can also pass ",(0,a.mdx)("inlineCode",{parentName:"p"},"--types-first")," to the ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow check")," or ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow start")," commands."),(0,a.mdx)("p",null,"The ",(0,a.mdx)("inlineCode",{parentName:"p"},"well_formed_exports")," flag from before is implied by ",(0,a.mdx)("inlineCode",{parentName:"p"},"types_first"),". Once\nthis process is completed and types-first has been enabled, you can remove\n",(0,a.mdx)("inlineCode",{parentName:"p"},"well_formed_exports"),"."),(0,a.mdx)("p",null,"Unfortunately, it is not possible to enable types-first mode for part of your repo; this switch\naffects all files managed by the current ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig"),"."),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"Note: The above flags are available in versions of Flow ",(0,a.mdx)("inlineCode",{parentName:"p"},">=0.102")," with the ",(0,a.mdx)("inlineCode",{parentName:"p"},"experimental."),"\nprefix (and prior to v0.128, it used ",(0,a.mdx)("inlineCode",{parentName:"p"},"whitelist")," in place of ",(0,a.mdx)("inlineCode",{parentName:"p"},"includes"),"):"),(0,a.mdx)("pre",{parentName:"blockquote"},(0,a.mdx)("code",{parentName:"pre"},"experimental.well_formed_exports=true\nexperimental.well_formed_exports.whitelist=/path/to/directory\nexperimental.types_first=true\n"))),(0,a.mdx)("blockquote",null,(0,a.mdx)("p",{parentName:"blockquote"},"Note: If you are using a version where types-first is enabled by default (ie. ",(0,a.mdx)("inlineCode",{parentName:"p"},">=0.134"),"),\nmake sure you set ",(0,a.mdx)("inlineCode",{parentName:"p"},"types_first=false")," in your .flowconfig while running the codemods.")),(0,a.mdx)("h3",{id:"toc-deal-with-newly-introduced-errors"},"Deal with newly introduced errors"),(0,a.mdx)("p",null,"Switching between classic and types-first mode may cause some new Flow errors,\nbesides signature-verification failures that we mentioned earlier. These errors\nare due differences in the way types based on annotations are interpreted, compared\nto their respective inferred types."),(0,a.mdx)("p",null,"Below are some common error patterns and how to overcome them."),(0,a.mdx)("h4",{id:"toc-array-tuples-treated-as-regular-arrays-in-exports"},"Array tuples treated as regular arrays in exports"),(0,a.mdx)("p",null,"In types-first, an array literal in an ",(0,a.mdx)("em",{parentName:"p"},"export position")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"module.exports = [e1, e2];\n")),(0,a.mdx)("p",null,"is treated as having type ",(0,a.mdx)("inlineCode",{parentName:"p"},"Array"),", where ",(0,a.mdx)("inlineCode",{parentName:"p"},"e1")," and ",(0,a.mdx)("inlineCode",{parentName:"p"},"e2")," have types ",(0,a.mdx)("inlineCode",{parentName:"p"},"t1"),"\nand ",(0,a.mdx)("inlineCode",{parentName:"p"},"t2"),", instead of the tuple type ",(0,a.mdx)("inlineCode",{parentName:"p"},"[t1, t2]"),"."),(0,a.mdx)("p",null,"In classic mode, the inferred type encompassed both types at the same time. This\nmight cause errors in importing files that expect for example to find type ",(0,a.mdx)("inlineCode",{parentName:"p"},"t1"),"\nin the first position of the import."),(0,a.mdx)("p",null,(0,a.mdx)("strong",{parentName:"p"},"Fix:")," If a tuple type is expected, then the annotation ",(0,a.mdx)("inlineCode",{parentName:"p"},"[t1, t2]")," needs to be\nexplicitly added on the export side."),(0,a.mdx)("h4",{id:"toc-indirect-object-assignments-in-exports"},"Indirect object assignments in exports"),(0,a.mdx)("p",null,"Flow allows the code"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"function foo(): void {}\nfoo.x = () => {};\nfoo.x.y = 2;\nmodule.exports = foo;\n")),(0,a.mdx)("p",null,"but in types-first the exported type will be"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-plaintext"},"{\n (): void;\n x: () => void;\n}\n")),(0,a.mdx)("p",null,"In other words it won\u2019t take into account the update on ",(0,a.mdx)("inlineCode",{parentName:"p"},"y"),"."),(0,a.mdx)("p",null,(0,a.mdx)("strong",{parentName:"p"},"Fix:")," To include the update on ",(0,a.mdx)("inlineCode",{parentName:"p"},"y")," in the exported type, the export will need\nto be annotated with the type"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-plaintext"},"{\n (): void;\n x: { (): void; y: number; };\n};\n")),(0,a.mdx)("p",null,"The same holds for more complex assignment patterns like"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"function foo(): void {}\nObject.assign(foo, { x: 1});\nmodule.exports = foo;\n")),(0,a.mdx)("p",null,"where you\u2019ll need to manually annotate the export with ",(0,a.mdx)("inlineCode",{parentName:"p"},"{ (): void; x: number }"),",\nor assignments preceding the function definition"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"foo.x = 1;\nfunction foo(): void {}\nmodule.exports = foo;\n")),(0,a.mdx)("p",null,"Note that in the last example, Flow types-first will pick up the static update if\nit was after the definition:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"function foo(): void {}\nfoo.x = 1;\nmodule.exports = foo;\n")),(0,a.mdx)("h3",{id:"toc-exported-variables-with-updates"},"Exported variables with updates"),(0,a.mdx)("p",null,"The types-first signature extractor will not pick up subsequent update of an exported\nlet-bound variables. Consider the example"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},'let foo: number | string = 1;\nfoo = "blah";\nmodule.exports = foo;\n')),(0,a.mdx)("p",null,"In classic mode the exported type would be ",(0,a.mdx)("inlineCode",{parentName:"p"},"string"),". In types-first it will be\n",(0,a.mdx)("inlineCode",{parentName:"p"},"number | string"),", so if downstream typing depends on the more precise type, then\nyou might get some errors."),(0,a.mdx)("p",null,(0,a.mdx)("strong",{parentName:"p"},"Fix:")," Introduce a new variable on the update and export that one. For example"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},'const foo1: number | string = 1;\nconst foo2 = "blah";\nmodule.exports = foo2;\n')))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3898.a25efbec.js b/assets/js/3898.a25efbec.js new file mode 100644 index 00000000000..6442d5caa14 --- /dev/null +++ b/assets/js/3898.a25efbec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3898],{73898:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>l,metadata:()=>r,toc:()=>o});var n=t(87462),s=(t(67294),t(3905));t(45475);const l={title:"Type Aliases",slug:"/types/aliases"},p=void 0,r={unversionedId:"types/aliases",id:"types/aliases",title:"Type Aliases",description:"When you have complicated types that you want to reuse in multiple places, you",source:"@site/docs/types/aliases.md",sourceDirName:"types",slug:"/types/aliases",permalink:"/en/docs/types/aliases",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/aliases.md",tags:[],version:"current",frontMatter:{title:"Type Aliases",slug:"/types/aliases"},sidebar:"docsSidebar",previous:{title:"Classes",permalink:"/en/docs/types/classes"},next:{title:"Opaque Type Aliases",permalink:"/en/docs/types/opaque-types"}},i={},o=[{value:"Type Alias Syntax",id:"toc-type-alias-syntax",level:2},{value:"Type Alias Generics",id:"toc-type-alias-generics",level:4}],m={toc:o};function d(e){let{components:a,...t}=e;return(0,s.mdx)("wrapper",(0,n.Z)({},m,t,{components:a,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"When you have complicated types that you want to reuse in multiple places, you\ncan alias them in Flow using a ",(0,s.mdx)("strong",{parentName:"p"},"type alias"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type MyObject = {\n foo: number,\n bar: boolean,\n baz: string,\n};\n")),(0,s.mdx)("p",null,"These type aliases can be used anywhere a type can be used."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type MyObject = {\n // ...\n};\n\nconst val: MyObject = { /* ... */ };\nfunction method(val: MyObject) { /* ... */ }\nclass Foo { constructor(val: MyObject) { /* ... */ } }\n")),(0,s.mdx)("p",null,"Type aliases are just that: aliases. They don't create a ",(0,s.mdx)("em",{parentName:"p"},"different")," type, just another name for one.\nThis means that a type alias is completely interchangeable with the type it is equal to."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type MyNumber = number;\ndeclare const x: MyNumber;\ndeclare function foo(x: number): void;\nfoo(x); // ok, because MyNumber = number\n")),(0,s.mdx)("p",null,(0,s.mdx)("a",{parentName:"p",href:"../opaque-types"},"Opaque type aliases")," offer an alternative for when you don't want to treat the\ntypes as the same."),(0,s.mdx)("h2",{id:"toc-type-alias-syntax"},"Type Alias Syntax"),(0,s.mdx)("p",null,"Type aliases are created using the keyword ",(0,s.mdx)("inlineCode",{parentName:"p"},"type")," followed by its name, an\nequals sign ",(0,s.mdx)("inlineCode",{parentName:"p"},"="),", and a type definition."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"type Alias = Type;\n")),(0,s.mdx)("p",null,"Any type can appear inside a type alias."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type NumberAlias = number;\ntype ObjectAlias = {\n property: string,\n method(): number,\n};\ntype UnionAlias = 1 | 2 | 3;\ntype AliasAlias = ObjectAlias;\n")),(0,s.mdx)("h4",{id:"toc-type-alias-generics"},"Type Alias Generics"),(0,s.mdx)("p",null,"Type aliases can also have their own ",(0,s.mdx)("a",{parentName:"p",href:"../generics"},"generics"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type MyObject = {\n property: A,\n method(val: B): C,\n};\n")),(0,s.mdx)("p",null,"Type alias generics are ",(0,s.mdx)("a",{parentName:"p",href:"../generics#toc-parameterized-generics"},"parameterized"),".\nWhen you use a type alias you need to pass parameters for each of its generics."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type MyObject = {\n foo: A,\n bar: B,\n baz: C,\n};\n\nvar val: MyObject = {\n foo: 1,\n bar: true,\n baz: 'three',\n};\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3903.181d5c6e.js b/assets/js/3903.181d5c6e.js new file mode 100644 index 00000000000..56022e03ab8 --- /dev/null +++ b/assets/js/3903.181d5c6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3903],{23903:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>m});var n=i(87462),r=(i(67294),i(3905));const o={title:"What we\u2019re building in 2020","short-title":"What we\u2019re building in 2020",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/what-were-building-in-2020-bcb92f620c75"},a=void 0,l={permalink:"/blog/2020/03/09/What-were-building-in-2020",source:"@site/blog/2020-03-09-What-were-building-in-2020.md",title:"What we\u2019re building in 2020",description:"Learn about how Flow will improve in 2020.",date:"2020-03-09T00:00:00.000Z",formattedDate:"March 9, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Andrew Pardoe"}],frontMatter:{title:"What we\u2019re building in 2020","short-title":"What we\u2019re building in 2020",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/what-were-building-in-2020-bcb92f620c75"},prevItem:{title:"Making Flow error suppressions more specific",permalink:"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific"},nextItem:{title:"Improvements to Flow in 2019",permalink:"/blog/2020/02/19/Improvements-to-Flow-in-2019"}},s={authorsImageUrls:[void 0]},m=[],w={toc:m};function u(e){let{components:t,...i}=e;return(0,r.mdx)("wrapper",(0,n.Z)({},w,i,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Learn about how Flow will improve in 2020."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3905.294ba8eb.js b/assets/js/3905.294ba8eb.js new file mode 100644 index 00000000000..63f8df0715f --- /dev/null +++ b/assets/js/3905.294ba8eb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3905],{73905:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>l,contentTitle:()=>n,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>m});var t=o(87462),i=(o(67294),o(3905));const s={title:"Live Flow errors in your IDE","short-title":"Live Flow errors in your IDE",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/live-flow-errors-in-your-ide-bcbeda0b316"},n=void 0,a={permalink:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE",source:"@site/blog/2019-10-25-Live-Flow-Errors-in-your-IDE.md",title:"Live Flow errors in your IDE",description:"Live errors while you type makes Flow feel faster in your IDE!",date:"2019-10-25T00:00:00.000Z",formattedDate:"October 25, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Live Flow errors in your IDE","short-title":"Live Flow errors in your IDE",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/live-flow-errors-in-your-ide-bcbeda0b316"},prevItem:{title:"Spreads: Common Errors & Fixes",permalink:"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes"},nextItem:{title:"Coming Soon: Changes to Object Spreads",permalink:"/blog/2019/08/20/Changes-to-Object-Spreads"}},l={authorsImageUrls:[void 0]},m=[],u={toc:m};function d(e){let{components:r,...o}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},u,o,{components:r,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Live errors while you type makes Flow feel faster in your IDE!"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3919.0d67ae42.js b/assets/js/3919.0d67ae42.js new file mode 100644 index 00000000000..1ebb28aa4c8 --- /dev/null +++ b/assets/js/3919.0d67ae42.js @@ -0,0 +1,209 @@ +"use strict"; +exports.id = 3919; +exports.ids = [3919]; +exports.modules = { + +/***/ 63919: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/sophia/sophia.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "{", close: "}", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".aes", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" }, + { token: "delimiter.angle", open: "<", close: ">" } + ], + keywords: [ + "contract", + "library", + "entrypoint", + "function", + "stateful", + "state", + "hash", + "signature", + "tuple", + "list", + "address", + "string", + "bool", + "int", + "record", + "datatype", + "type", + "option", + "oracle", + "oracle_query", + "Call", + "Bits", + "Bytes", + "Oracle", + "String", + "Crypto", + "Address", + "Auth", + "Chain", + "None", + "Some", + "bits", + "bytes", + "event", + "let", + "map", + "private", + "public", + "true", + "false", + "var", + "if", + "else", + "throw" + ], + operators: [ + "=", + ">", + "<", + "!", + "~", + "?", + "::", + ":", + "==", + "<=", + ">=", + "!=", + "&&", + "||", + "++", + "--", + "+", + "-", + "*", + "/", + "&", + "|", + "^", + "%", + "<<", + ">>", + ">>>", + "+=", + "-=", + "*=", + "/=", + "&=", + "|=", + "^=", + "%=", + "<<=", + ">>=", + ">>>=" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/, "number.hex"], + [/0[0-7']*[0-7](@integersuffix)/, "number.octal"], + [/0[bB][0-1']*[0-1](@integersuffix)/, "number.binary"], + [/\d[\d']*\d(@integersuffix)/, "number"], + [/\d(@integersuffix)/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@doccomment"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + doccomment: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/3919.4432453c.js b/assets/js/3919.4432453c.js new file mode 100644 index 00000000000..c4a7f1b724c --- /dev/null +++ b/assets/js/3919.4432453c.js @@ -0,0 +1,2 @@ +/*! For license information please see 3919.4432453c.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3919],{63919:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},s={defaultToken:"",tokenPostfix:".aes",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["contract","library","entrypoint","function","stateful","state","hash","signature","tuple","list","address","string","bool","int","record","datatype","type","option","oracle","oracle_query","Call","Bits","Bytes","Oracle","String","Crypto","Address","Auth","Chain","None","Some","bits","bytes","event","let","map","private","public","true","false","var","if","else","throw"],operators:["=",">","<","!","~","?","::",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/3919.4432453c.js.LICENSE.txt b/assets/js/3919.4432453c.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/3919.4432453c.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/3939.7eaae777.js b/assets/js/3939.7eaae777.js new file mode 100644 index 00000000000..29ceb7ab759 --- /dev/null +++ b/assets/js/3939.7eaae777.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3939],{93939:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var o=s(87462),r=(s(67294),s(3905));s(45475);const n={layout:"guide"},a=void 0,i={unversionedId:"types/generators",id:"types/generators",title:"generators",description:"",source:"@site/docs/types/generators.md",sourceDirName:"types",slug:"/types/generators",permalink:"/en/docs/types/generators",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/generators.md",tags:[],version:"current",frontMatter:{layout:"guide"}},d={},c=[],p={toc:c};function u(e){let{components:t,...s}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},p,s,{components:t,mdxType:"MDXLayout"}))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3997.380b744e.js b/assets/js/3997.380b744e.js new file mode 100644 index 00000000000..8c5242f488f --- /dev/null +++ b/assets/js/3997.380b744e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[3997],{13997:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>s});var o=a(87462),t=(a(67294),a(3905));a(45475);const r={title:"Flow Coverage",slug:"/cli/coverage"},i=void 0,l={unversionedId:"cli/coverage",id:"cli/coverage",title:"Flow Coverage",description:"The coverage command provides a metric of the amount of checking that Flow has",source:"@site/docs/cli/coverage.md",sourceDirName:"cli",slug:"/cli/coverage",permalink:"/en/docs/cli/coverage",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/cli/coverage.md",tags:[],version:"current",frontMatter:{title:"Flow Coverage",slug:"/cli/coverage"},sidebar:"docsSidebar",previous:{title:"Flow CLI",permalink:"/en/docs/cli"},next:{title:"Flow Annotate-Exports",permalink:"/en/docs/cli/annotate-exports"}},d={},s=[{value:"Design Space",id:"toc-design-space",level:2},{value:"Command Line Use",id:"toc-command-line-use",level:2}],m={toc:s};function p(e){let{components:n,...a}=e;return(0,t.mdx)("wrapper",(0,o.Z)({},m,a,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"The coverage command provides a metric of the amount of checking that Flow has\nperformed on each part of your code. A program with high Flow coverage should\nincrease your confidence that Flow has detected any potential runtime errors."),(0,t.mdx)("p",null,"The determining factor for this is the presence of ",(0,t.mdx)("a",{parentName:"p",href:"../../types/any/"},(0,t.mdx)("inlineCode",{parentName:"a"},"any"))," in the\ninferred type of each expression. An expression whose inferred type is ",(0,t.mdx)("inlineCode",{parentName:"p"},"any")," is\nconsidered ",(0,t.mdx)("em",{parentName:"p"},"uncovered"),", otherwise it is considered ",(0,t.mdx)("em",{parentName:"p"},"covered"),"."),(0,t.mdx)("p",null,"To see why this metric was chosen for determining Flow's effectiveness, consider\nthe example"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const one: any = 1;\none();\n")),(0,t.mdx)("p",null,"This code leads to a runtime type error, since we are attempting to perform a call\non a number. Flow, however, does not flag an error here, because we have annotated\nvariable ",(0,t.mdx)("inlineCode",{parentName:"p"},"one")," as ",(0,t.mdx)("inlineCode",{parentName:"p"},"any"),". Flow's checking is effectively turned off whenever ",(0,t.mdx)("inlineCode",{parentName:"p"},"any"),"\nis involved, so it will silently allow the call. The use of this ",(0,t.mdx)("em",{parentName:"p"},"unsafe")," type has\nrendered the type checker ineffective, and the coverage metric is here to surface\nthis, by reporting all instances of ",(0,t.mdx)("inlineCode",{parentName:"p"},"one")," as uncovered."),(0,t.mdx)("h2",{id:"toc-design-space"},"Design Space"),(0,t.mdx)("p",null,(0,t.mdx)("strong",{parentName:"p"},'Which types should be "covered"?')),(0,t.mdx)("p",null,"What was described above is a rather coarse grained way to determine coverage. One\ncould imagine a criterion that flags expressions as uncovered if ",(0,t.mdx)("em",{parentName:"p"},"any")," part of their\ntype includes ",(0,t.mdx)("inlineCode",{parentName:"p"},"any"),", for example ",(0,t.mdx)("inlineCode",{parentName:"p"},"Array"),'. While there is value in a metric like\nthis, the "uncovered" part of the type will typically be uncovered through various\noperations on values of this type. For example, in the code'),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare const arr: Array;\narr.forEach(x => {});\n")),(0,t.mdx)("p",null,"the parameter ",(0,t.mdx)("inlineCode",{parentName:"p"},"x")," will be flagged as uncovered. Also, in practice, a strict criterion\nlike this would be too noisy and rather expensive to compute on the fly."),(0,t.mdx)("p",null,(0,t.mdx)("strong",{parentName:"p"},"Union types")),(0,t.mdx)("p",null,"An exception to this principle are union types: the type ",(0,t.mdx)("inlineCode",{parentName:"p"},"number | any")," is considered\n",(0,t.mdx)("em",{parentName:"p"},"uncovered"),", even though technically ",(0,t.mdx)("inlineCode",{parentName:"p"},"any")," is not the top-level constructor.\nUnions merely encode an option among ",(0,t.mdx)("em",{parentName:"p"},"a set of")," other types. In that sense we are\nconservatively viewing an expression as uncovered, when at least one possible type\nof that expression causes limited checking. For example, in the code"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'let x: number | any = 1;\nx = "a";\n')),(0,t.mdx)("p",null,"Flow will let you assign anything to ",(0,t.mdx)("inlineCode",{parentName:"p"},"x"),", which reduces confidence in the use\nof ",(0,t.mdx)("inlineCode",{parentName:"p"},"x")," as a number. Thus ",(0,t.mdx)("inlineCode",{parentName:"p"},"x")," is considered uncovered."),(0,t.mdx)("p",null,(0,t.mdx)("strong",{parentName:"p"},"The empty type")),(0,t.mdx)("p",null,"An interesting type from a coverage perspective is the ",(0,t.mdx)("a",{parentName:"p",href:"../../types/empty"},(0,t.mdx)("inlineCode",{parentName:"a"},"empty"))," type.\nThis type roughly corresponds to ",(0,t.mdx)("em",{parentName:"p"},"dead code"),". As such checking around expressions with\ntype ",(0,t.mdx)("inlineCode",{parentName:"p"},"empty")," is more relaxed, but for a good reason: this code will not be executed at\nruntime. Since it is a common practice to clean up such code, Flow coverage will\nalso report code whose type is inferred to be ",(0,t.mdx)("inlineCode",{parentName:"p"},"empty"),", but distinguishes it from\nthe case of ",(0,t.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,t.mdx)("h2",{id:"toc-command-line-use"},"Command Line Use"),(0,t.mdx)("p",null,"To find out the coverage of a file foo.js with the following contents"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function add(one: any, two: any): number {\n return one + two;\n}\n\nadd(1, 2);\n")),(0,t.mdx)("p",null,"you can issue the following command"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"$ flow coverage file.js\nCovered: 50.00% (5 of 10 expressions)\n")),(0,t.mdx)("p",null,"This output means that 5 out of the 10 nodes of this program were inferred to have type\n",(0,t.mdx)("inlineCode",{parentName:"p"},"any"),". To see exactly which parts are uncovered you can also pass one of the following\nflags:"),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"--color"),": This will print foo.js on the terminal with the uncovered locations in\nred color. E.g. ",(0,t.mdx)("inlineCode",{parentName:"li"},"flow coverage --color file.js")),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("inlineCode",{parentName:"li"},"--json"),": This will list out all location spans that are uncovered under\nthe tag ",(0,t.mdx)("inlineCode",{parentName:"li"},'"uncovered_locs"'),". E.g. ",(0,t.mdx)("inlineCode",{parentName:"li"},"flow coverage --json file.js"))),(0,t.mdx)("p",null,"Finally, as an example of dead code, consider the code:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function f(x: 'a' | 'b') {\n if (x === 'a') {\n // ...\n } else if (x === 'b') {\n // ...\n } else {\n x;\n }\n}\n")),(0,t.mdx)("p",null,"The final ",(0,t.mdx)("inlineCode",{parentName:"p"},"else")," clause should never be reached, as we've already checked for both members of the union.\nBecause of this, ",(0,t.mdx)("inlineCode",{parentName:"p"},"x")," is inferred to have the type ",(0,t.mdx)("inlineCode",{parentName:"p"},"empty")," in that branch."),(0,t.mdx)("p",null,"In the colored version of this command, these parts appear in blue color,\nand in the JSON version they are under the field ",(0,t.mdx)("inlineCode",{parentName:"p"},'"empty_locs"'),"."),(0,t.mdx)("p",null,(0,t.mdx)("strong",{parentName:"p"},"Use on multiple files")),(0,t.mdx)("p",null,"If you want to check coverage of multiple files at once, Flow offers the\n",(0,t.mdx)("inlineCode",{parentName:"p"},"batch-coverage")," command:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"$ flow batch-coverage dir/\n")),(0,t.mdx)("p",null,"will report coverage statistics for each file under ",(0,t.mdx)("inlineCode",{parentName:"p"},"dir/"),", as well as aggregate\nresults."),(0,t.mdx)("p",null,"Note that ",(0,t.mdx)("inlineCode",{parentName:"p"},"batch-coverage")," requires a non-lazy Flow server."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4028.02282914.js b/assets/js/4028.02282914.js new file mode 100644 index 00000000000..33cc70bf539 --- /dev/null +++ b/assets/js/4028.02282914.js @@ -0,0 +1,270 @@ +"use strict"; +exports.id = 4028; +exports.ids = [4028]; +exports.modules = { + +/***/ 94028: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15030); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/liquid/liquid.ts +var EMPTY_ELEMENTS = [ + "area", + "base", + "br", + "col", + "embed", + "hr", + "img", + "input", + "keygen", + "link", + "menuitem", + "meta", + "param", + "source", + "track", + "wbr" +]; +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, + brackets: [ + [""], + ["<", ">"], + ["{{", "}}"], + ["{%", "%}"], + ["{", "}"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "%", close: "%" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "<", close: ">" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + onEnterRules: [ + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + afterText: /^<\/(\w[\w\d]*)\s*>$/i, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: "", + builtinTags: [ + "if", + "else", + "elseif", + "endif", + "render", + "assign", + "capture", + "endcapture", + "case", + "endcase", + "comment", + "endcomment", + "cycle", + "decrement", + "for", + "endfor", + "include", + "increment", + "layout", + "raw", + "endraw", + "render", + "tablerow", + "endtablerow", + "unless", + "endunless" + ], + builtinFilters: [ + "abs", + "append", + "at_least", + "at_most", + "capitalize", + "ceil", + "compact", + "date", + "default", + "divided_by", + "downcase", + "escape", + "escape_once", + "first", + "floor", + "join", + "json", + "last", + "lstrip", + "map", + "minus", + "modulo", + "newline_to_br", + "plus", + "prepend", + "remove", + "remove_first", + "replace", + "replace_first", + "reverse", + "round", + "rstrip", + "size", + "slice", + "sort", + "sort_natural", + "split", + "strip", + "strip_html", + "strip_newlines", + "times", + "truncate", + "truncatewords", + "uniq", + "upcase", + "url_decode", + "url_encode", + "where" + ], + constants: ["true", "false"], + operators: ["==", "!=", ">", "<", ">=", "<="], + symbol: /[=>)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<)([:\w]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/(<\/)([\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [//, "delimiter.html", "@pop"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/] + ], + liquidState: [ + [/\{\{/, "delimiter.output.liquid"], + [/\}\}/, { token: "delimiter.output.liquid", switchTo: "@$S2.$S3" }], + [/\{\%/, "delimiter.tag.liquid"], + [/raw\s*\%\}/, "delimiter.tag.liquid", "@liquidRaw"], + [/\%\}/, { token: "delimiter.tag.liquid", switchTo: "@$S2.$S3" }], + { include: "liquidRoot" } + ], + liquidRaw: [ + [/^(?!\{\%\s*endraw\s*\%\}).+/], + [/\{\%/, "delimiter.tag.liquid"], + [/@identifier/], + [/\%\}/, { token: "delimiter.tag.liquid", next: "@root" }] + ], + liquidRoot: [ + [/\d+(\.\d+)?/, "number.liquid"], + [/"[^"]*"/, "string.liquid"], + [/'[^']*'/, "string.liquid"], + [/\s+/], + [ + /@symbol/, + { + cases: { + "@operators": "operator.liquid", + "@default": "" + } + } + ], + [/\./], + [ + /@identifier/, + { + cases: { + "@constants": "keyword.liquid", + "@builtinFilters": "predefined.liquid", + "@builtinTags": "predefined.liquid", + "@default": "variable.liquid" + } + } + ], + [/[^}|%]/, "variable.liquid"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/4028.c8601f49.js b/assets/js/4028.c8601f49.js new file mode 100644 index 00000000000..bc2b2ea70a6 --- /dev/null +++ b/assets/js/4028.c8601f49.js @@ -0,0 +1,2 @@ +/*! For license information please see 4028.c8601f49.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4028],{94028:(e,t,i)=>{i.r(t),i.d(t,{conf:()=>p,language:()=>w});var n,r,o=i(15030),l=Object.defineProperty,a=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,u=(e,t,i,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of d(t))s.call(e,r)||r===i||l(e,r,{get:()=>t[r],enumerable:!(n=a(t,r))||n.enumerable});return e},c={};u(c,n=o,"default"),r&&u(r,n,"default");var m=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],p={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[["\x3c!--","--\x3e"],["<",">"],["{{","}}"],["{%","%}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"%",close:"%"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${m.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:c.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${m.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:c.languages.IndentAction.Indent}}]},w={defaultToken:"",tokenPostfix:"",builtinTags:["if","else","elseif","endif","render","assign","capture","endcapture","case","endcase","comment","endcomment","cycle","decrement","for","endfor","include","increment","layout","raw","endraw","render","tablerow","endtablerow","unless","endunless"],builtinFilters:["abs","append","at_least","at_most","capitalize","ceil","compact","date","default","divided_by","downcase","escape","escape_once","first","floor","join","json","last","lstrip","map","minus","modulo","newline_to_br","plus","prepend","remove","remove_first","replace","replace_first","reverse","round","rstrip","size","slice","sort","sort_natural","split","strip","strip_html","strip_newlines","times","truncate","truncatewords","uniq","upcase","url_decode","url_encode","where"],constants:["true","false"],operators:["==","!=",">","<",">=","<="],symbol:/[=>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[//,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,"delimiter.output.liquid"],[/\}\}/,{token:"delimiter.output.liquid",switchTo:"@$S2.$S3"}],[/\{\%/,"delimiter.tag.liquid"],[/raw\s*\%\}/,"delimiter.tag.liquid","@liquidRaw"],[/\%\}/,{token:"delimiter.tag.liquid",switchTo:"@$S2.$S3"}],{include:"liquidRoot"}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,"delimiter.tag.liquid"],[/@identifier/],[/\%\}/,{token:"delimiter.tag.liquid",next:"@root"}]],liquidRoot:[[/\d+(\.\d+)?/,"number.liquid"],[/"[^"]*"/,"string.liquid"],[/'[^']*'/,"string.liquid"],[/\s+/],[/@symbol/,{cases:{"@operators":"operator.liquid","@default":""}}],[/\./],[/@identifier/,{cases:{"@constants":"keyword.liquid","@builtinFilters":"predefined.liquid","@builtinTags":"predefined.liquid","@default":"variable.liquid"}}],[/[^}|%]/,"variable.liquid"]]}}}}]); \ No newline at end of file diff --git a/assets/js/4028.c8601f49.js.LICENSE.txt b/assets/js/4028.c8601f49.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/4028.c8601f49.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/4099.d293f4c8.js b/assets/js/4099.d293f4c8.js new file mode 100644 index 00000000000..db41de13288 --- /dev/null +++ b/assets/js/4099.d293f4c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4099],{74099:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var n=o(87462),a=(o(67294),o(3905));const r={title:"Announcing Import Type","short-title":"Import Type",author:"Jeff Morrison",hide_table_of_contents:!0},i=void 0,s={permalink:"/blog/2015/02/18/Import-Types",source:"@site/blog/2015-02-18-Import-Types.md",title:"Announcing Import Type",description:"As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.",date:"2015-02-18T00:00:00.000Z",formattedDate:"February 18, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Jeff Morrison"}],frontMatter:{title:"Announcing Import Type","short-title":"Import Type",author:"Jeff Morrison",hide_table_of_contents:!0},prevItem:{title:"Announcing Flow Comments",permalink:"/blog/2015/02/20/Flow-Comments"},nextItem:{title:"Announcing Typecasts",permalink:"/blog/2015/02/18/Typecasts"}},p={authorsImageUrls:[void 0]},l=[{value:"Motivation",id:"motivation",level:2}],m={toc:l};function u(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},m,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," syntax to do this."),(0,a.mdx)("h2",{id:"motivation"},"Motivation"),(0,a.mdx)("p",null,"Has this ever happened to you:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"// @flow\n\n// Post-transformation lint error: Unused variable 'URI'\nimport URI from \"URI\";\n\n// But if you delete the require you get a Flow error:\n// identifier URI - Unknown global name\nmodule.exports = function(x: URI): URI {\n return x;\n}\n")),(0,a.mdx)("p",null,"Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type")," syntax. With ",(0,a.mdx)("inlineCode",{parentName:"p"},"import type"),", you can convey what you really mean here \u2014 that you want to import the ",(0,a.mdx)("em",{parentName:"p"},"type")," of the class and not really the class itself."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4129.b574e251.js b/assets/js/4129.b574e251.js new file mode 100644 index 00000000000..9e8a2ba429b --- /dev/null +++ b/assets/js/4129.b574e251.js @@ -0,0 +1,2 @@ +/*! For license information please see 4129.b574e251.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4129],{84129:(e,s,o)=>{o.r(s),o.d(s,{conf:()=>t,language:()=>n});var t={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},n={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=> { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/bat/bat.ts +var conf = { + comments: { + lineComment: "REM" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ], + surroundingPairs: [ + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ], + folding: { + markers: { + start: new RegExp("^\\s*(::\\s*|REM\\s+)#region"), + end: new RegExp("^\\s*(::\\s*|REM\\s+)#endregion") + } + } +}; +var language = { + defaultToken: "", + ignoreCase: true, + tokenPostfix: ".bat", + brackets: [ + { token: "delimiter.bracket", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" } + ], + keywords: /call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/, + symbols: /[=>{i.r(r),i.d(r,{assets:()=>l,contentTitle:()=>n,default:()=>m,frontMatter:()=>t,metadata:()=>a,toc:()=>p});var o=i(87462),s=(i(67294),i(3905));const t={title:"Making Flow error suppressions more specific","short-title":"Making Flow error suppressions",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/making-flow-error-suppressions-more-specific-280aa4e3c95c"},n=void 0,a={permalink:"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific",source:"@site/blog/2020-03-16-Making-Flow-error-suppressions-more-specific.md",title:"Making Flow error suppressions more specific",description:"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors.",date:"2020-03-16T00:00:00.000Z",formattedDate:"March 16, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Daniel Sainati"}],frontMatter:{title:"Making Flow error suppressions more specific","short-title":"Making Flow error suppressions",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/making-flow-error-suppressions-more-specific-280aa4e3c95c"},prevItem:{title:"Types-First: A Scalable New Architecture for Flow",permalink:"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow"},nextItem:{title:"What we\u2019re building in 2020",permalink:"/blog/2020/03/09/What-were-building-in-2020"}},l={authorsImageUrls:[void 0]},p=[],c={toc:p};function m(e){let{components:r,...i}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},c,i,{components:r,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4170.1dc21c14.js b/assets/js/4170.1dc21c14.js new file mode 100644 index 00000000000..4277d571abf --- /dev/null +++ b/assets/js/4170.1dc21c14.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4170],{14170:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>r,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var a=n(87462),o=(n(67294),n(3905));n(45475);const i={title:"Event Handling",slug:"/react/events"},r=void 0,l={unversionedId:"react/events",id:"react/events",title:"Event Handling",description:"The React docs for handling events show how an event handler can be attached to",source:"@site/docs/react/events.md",sourceDirName:"react",slug:"/react/events",permalink:"/en/docs/react/events",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/events.md",tags:[],version:"current",frontMatter:{title:"Event Handling",slug:"/react/events"},sidebar:"docsSidebar",previous:{title:"Components",permalink:"/en/docs/react/components"},next:{title:"Ref Functions",permalink:"/en/docs/react/refs"}},m={},d=[],p={toc:d};function s(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"The ",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/learn/responding-to-events"},"React docs for handling events")," show how an event handler can be attached to\na React element. To type these event handlers you may use the ",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent"),"\ntypes like this:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import {useState} from 'react';\nimport * as React from 'react';\n\nfunction MyComponent(): React.Node {\n const [state, setState] = useState({count: 0});\n\n const handleClick = (event: SyntheticEvent) => {\n // To access your button instance use `event.currentTarget`.\n (event.currentTarget: HTMLButtonElement);\n\n setState(prevState => ({\n count: prevState.count + 1,\n }));\n };\n\n return (\n
    \n

    Count: {state.count}

    \n \n
    \n );\n}\n")),(0,o.mdx)("p",null,"There are also more specific synthetic event types like\n",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticKeyboardEvent"),", ",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticMouseEvent"),", or\n",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticTouchEvent"),". The ",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent")," types all take a single type\nargument: the type of the HTML element the event handler was placed on."),(0,o.mdx)("p",null,"If you don't want to add the type of your element instance you can also use\n",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent")," with ",(0,o.mdx)("em",{parentName:"p"},"no")," type arguments like so: ",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent<>"),"."),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," To get the element instance, like ",(0,o.mdx)("inlineCode",{parentName:"p"},"HTMLButtonElement")," in the example\nabove, it is a common mistake to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"event.target")," instead of\n",(0,o.mdx)("inlineCode",{parentName:"p"},"event.currentTarget"),". The reason you want to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"event.currentTarget")," is\nthat ",(0,o.mdx)("inlineCode",{parentName:"p"},"event.target")," may be the wrong element due to ",(0,o.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Examples#example_5_event_propagation"},"event propagation"),".")),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," React uses its own event system so it is important to use the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent")," types instead of the DOM types such as ",(0,o.mdx)("inlineCode",{parentName:"p"},"Event"),",\n",(0,o.mdx)("inlineCode",{parentName:"p"},"KeyboardEvent"),", and ",(0,o.mdx)("inlineCode",{parentName:"p"},"MouseEvent"),".")),(0,o.mdx)("p",null,"The ",(0,o.mdx)("inlineCode",{parentName:"p"},"SyntheticEvent")," types that React provides and the DOM events they are\nrelated to are:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/Event"},"Event")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticAnimationEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent"},"AnimationEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticCompositionEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent"},"CompositionEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticInputEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/InputEvent"},"InputEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticUIEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/UIEvent"},"UIEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticFocusEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent"},"FocusEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticKeyboardEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent"},"KeyboardEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticMouseEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent"},"MouseEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticDragEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/DragEvent"},"DragEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticWheelEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent"},"WheelEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticTouchEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent"},"TouchEvent")),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("inlineCode",{parentName:"li"},"SyntheticTransitionEvent")," for ",(0,o.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent"},"TransitionEvent"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4188.752a68bf.js b/assets/js/4188.752a68bf.js new file mode 100644 index 00000000000..1cf89014d8c --- /dev/null +++ b/assets/js/4188.752a68bf.js @@ -0,0 +1,160 @@ +"use strict"; +exports.id = 4188; +exports.ids = [4188]; +exports.modules = { + +/***/ 14188: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/flow9/flow9.ts +var conf = { + comments: { + blockComment: ["/*", "*/"], + lineComment: "//" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}", notIn: ["string"] }, + { open: "[", close: "]", notIn: ["string"] }, + { open: "(", close: ")", notIn: ["string"] }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".flow", + keywords: [ + "import", + "require", + "export", + "forbid", + "native", + "if", + "else", + "cast", + "unsafe", + "switch", + "default" + ], + types: [ + "io", + "mutable", + "bool", + "int", + "double", + "string", + "flow", + "void", + "ref", + "true", + "false", + "with" + ], + operators: [ + "=", + ">", + "<", + "<=", + ">=", + "==", + "!", + "!=", + ":=", + "::=", + "&&", + "||", + "+", + "-", + "*", + "/", + "@", + "&", + "%", + ":", + "->", + "\\", + "$", + "??", + "^" + ], + symbols: /[@$=>](?!@symbols)/, "delimiter"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/4188.c58fea82.js b/assets/js/4188.c58fea82.js new file mode 100644 index 00000000000..56190e8c03e --- /dev/null +++ b/assets/js/4188.c58fea82.js @@ -0,0 +1,2 @@ +/*! For license information please see 4188.c58fea82.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4188],{14188:(e,o,n)=>{n.r(o),n.d(o,{conf:()=>s,language:()=>t});var s={comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},t={defaultToken:"",tokenPostfix:".flow",keywords:["import","require","export","forbid","native","if","else","cast","unsafe","switch","default"],types:["io","mutable","bool","int","double","string","flow","void","ref","true","false","with"],operators:["=",">","<","<=",">=","==","!","!=",":=","::=","&&","||","+","-","*","/","@","&","%",":","->","\\","$","??","^"],symbols:/[@$=>](?!@symbols)/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/4188.c58fea82.js.LICENSE.txt b/assets/js/4188.c58fea82.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/4188.c58fea82.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/4244.296d7732.js b/assets/js/4244.296d7732.js new file mode 100644 index 00000000000..e8076a40a30 --- /dev/null +++ b/assets/js/4244.296d7732.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4244],{64244:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>i,toc:()=>h});var n=o(87462),a=(o(67294),o(3905));const r={author:"Gabe Levi",hide_table_of_contents:!0},s=void 0,i={permalink:"/blog/2015/09/10/Version-0.15.0",source:"@site/blog/2015-09-10-Version-0.15.0.md",title:"Version-0.15.0",description:"Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!",date:"2015-09-10T00:00:00.000Z",formattedDate:"September 10, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Version-0.16.0",permalink:"/blog/2015/09/22/Version-0.16.0"},nextItem:{title:"Version-0.14.0",permalink:"/blog/2015/07/29/Version-0.14.0"}},l={authorsImageUrls:[void 0]},h=[],d={toc:h};function c(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!"),(0,a.mdx)("p",null,"Check out the ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0150"},"Changelog")," to see what's new."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4314.ca390dec.js b/assets/js/4314.ca390dec.js new file mode 100644 index 00000000000..2a2c56a5056 --- /dev/null +++ b/assets/js/4314.ca390dec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4314],{74314:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>w,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var a=n(87462),o=(n(67294),n(3905));const i={title:"New Flow Language Rule: Constrained Writes","short-title":"Introducing Constrained Writes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/new-flow-language-rule-constrained-writes-4c70e375d190"},s=void 0,r={permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes",source:"@site/blog/2022-08-05-New-Flow-Language-Rule-Constrained-Writes.md",title:"New Flow Language Rule: Constrained Writes",description:"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.",date:"2022-08-05T00:00:00.000Z",formattedDate:"August 5, 2022",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"New Flow Language Rule: Constrained Writes","short-title":"Introducing Constrained Writes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/new-flow-language-rule-constrained-writes-4c70e375d190"},prevItem:{title:"Requiring More Annotations to Functions and Classes in Flow",permalink:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes"},nextItem:{title:"Introducing: Local Type Inference for Flow",permalink:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow"}},l={authorsImageUrls:[void 0]},u=[],d={toc:u};function w(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated."))}w.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4340.d90bec6c.js b/assets/js/4340.d90bec6c.js new file mode 100644 index 00000000000..0e71be49bcd --- /dev/null +++ b/assets/js/4340.d90bec6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4340],{64340:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>a});var n=o(87462),i=(o(67294),o(3905));const s={title:"Types-First the only supported mode in Flow (Jan 2021)","short-title":"Types-First only supported mode",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-the-only-supported-mode-in-flow-jan-2021-3c4cb14d7b6c"},r=void 0,l={permalink:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow",source:"@site/blog/2020-12-01-Types-first-the-only-supported-mode-in-flow.md",title:"Types-First the only supported mode in Flow (Jan 2021)",description:"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021).",date:"2020-12-01T00:00:00.000Z",formattedDate:"December 1, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Panagiotis Vekris"}],frontMatter:{title:"Types-First the only supported mode in Flow (Jan 2021)","short-title":"Types-First only supported mode",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-the-only-supported-mode-in-flow-jan-2021-3c4cb14d7b6c"},prevItem:{title:"Clarity on Flow's Direction and Open Source Engagement",permalink:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement"},nextItem:{title:"Flow's Improved Handling of Generic Types",permalink:"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types"}},p={authorsImageUrls:[void 0]},a=[],d={toc:a};function m(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021)."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4352.37108b95.js b/assets/js/4352.37108b95.js new file mode 100644 index 00000000000..1a22350bfc9 --- /dev/null +++ b/assets/js/4352.37108b95.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4352],{44352:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var n=o(87462),i=(o(67294),o(3905));const r={title:"Linting in Flow","short-title":"Linting in Flow",author:"Roger Ballard","medium-link":"https://medium.com/flow-type/linting-in-flow-7709d7a7e969"},l=void 0,a={permalink:"/blog/2017/08/04/Linting-in-Flow",source:"@site/blog/2017-08-04-Linting-in-Flow.md",title:"Linting in Flow",description:"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.",date:"2017-08-04T00:00:00.000Z",formattedDate:"August 4, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Roger Ballard"}],frontMatter:{title:"Linting in Flow","short-title":"Linting in Flow",author:"Roger Ballard","medium-link":"https://medium.com/flow-type/linting-in-flow-7709d7a7e969"},prevItem:{title:"Even Better Support for React in Flow",permalink:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow"},nextItem:{title:"Opaque Type Aliases",permalink:"/blog/2017/07/27/Opaque-Types"}},s={authorsImageUrls:[void 0]},u=[],m={toc:u};function p(t){let{components:e,...o}=t;return(0,i.mdx)("wrapper",(0,n.Z)({},m,o,{components:e,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4367.f9d15811.js b/assets/js/4367.f9d15811.js new file mode 100644 index 00000000000..c6d659184c7 --- /dev/null +++ b/assets/js/4367.f9d15811.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4367],{43634:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var o=n(87462),a=(n(67294),n(3905));n(45475);const i={title:"Width Subtyping",slug:"/lang/width-subtyping"},s=void 0,r={unversionedId:"lang/width-subtyping",id:"lang/width-subtyping",title:"Width Subtyping",description:'It\'s safe to use an object with "extra" properties in a position that is',source:"@site/docs/lang/width-subtyping.md",sourceDirName:"lang",slug:"/lang/width-subtyping",permalink:"/en/docs/lang/width-subtyping",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/width-subtyping.md",tags:[],version:"current",frontMatter:{title:"Width Subtyping",slug:"/lang/width-subtyping"},sidebar:"docsSidebar",previous:{title:"Depth Subtyping",permalink:"/en/docs/lang/depth-subtyping"},next:{title:"Type Refinements",permalink:"/en/docs/lang/refinements"}},p={},l=[],d={toc:l};function m(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,'It\'s safe to use an object with "extra" properties in a position that is\nannotated with a specific set of properties, if that object type is ',(0,a.mdx)("a",{parentName:"p",href:"../../types/objects/#exact-and-inexact-object-types"},"inexact"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(obj: {foo: string, ...}) {\n // ...\n}\n\nfunc({\n foo: "test", // Works!\n bar: 42 // Works!\n});\n')),(0,a.mdx)("p",null,"Within ",(0,a.mdx)("inlineCode",{parentName:"p"},"func"),", we know that ",(0,a.mdx)("inlineCode",{parentName:"p"},"obj")," has at least a property ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo")," and the\nproperty access expression ",(0,a.mdx)("inlineCode",{parentName:"p"},"obj.foo")," will have type ",(0,a.mdx)("inlineCode",{parentName:"p"},"string"),"."),(0,a.mdx)("p",null,'This is a kind of subtyping commonly referred to as "width subtyping" because\na type that is "wider" (i.e., has more properties) is a subtype of a\nnarrower type.'),(0,a.mdx)("p",null,"So in the following example, ",(0,a.mdx)("inlineCode",{parentName:"p"},"obj2")," is a ",(0,a.mdx)("em",{parentName:"p"},"subtype")," of ",(0,a.mdx)("inlineCode",{parentName:"p"},"obj1"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"let obj1: {foo: string, ...} = {foo: 'test'};\nlet obj2 = {foo: 'test', bar: 42};\n(obj2: {foo: string, ...});\n")),(0,a.mdx)("p",null,"However, it's often useful to know that a property is definitely absent."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":6,"endLine":3,"endColumn":12,"description":"Cannot cast `obj.foo` to string because property `foo` of unknown type [1] is incompatible with string [2]. [incompatible-cast]"}]','[{"startLine":3,"startColumn":6,"endLine":3,"endColumn":12,"description":"Cannot':!0,cast:!0,"`obj.foo`":!0,to:!0,string:!0,because:!0,property:!0,"`foo`":!0,of:!0,unknown:!0,type:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"function func(obj: {foo: string, ...} | {bar: number, ...}) {\n if (obj.foo) {\n (obj.foo: string); // Error!\n }\n}\n")),(0,a.mdx)("p",null,"The above code has a type error because Flow would also allow the call\nexpression ",(0,a.mdx)("inlineCode",{parentName:"p"},"func({foo: 1, bar: 2})"),", because ",(0,a.mdx)("inlineCode",{parentName:"p"},"{foo: number, bar: number}"),"\nis a subtype of ",(0,a.mdx)("inlineCode",{parentName:"p"},"{bar: number, ...}"),", one of the members of the parameter's union\ntype."),(0,a.mdx)("p",null,"For cases like this where it's useful to assert the absence of a property,\nYou can use ",(0,a.mdx)("a",{parentName:"p",href:"../../types/objects/#exact-and-inexact-object-types"},"exact object types"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(obj: {foo: string} | {bar: number}) {\n if (obj.foo) {\n (obj.foo: string); // Works!\n }\n}\n")),(0,a.mdx)("p",null,(0,a.mdx)("a",{parentName:"p",href:"../../types/objects/#exact-and-inexact-object-types"},"Exact object types")," disable width\nsubtyping, and do not allow additional properties to exist."),(0,a.mdx)("p",null,"Using exact object types lets Flow know that no extra properties will exist at\nruntime, which allows ",(0,a.mdx)("a",{parentName:"p",href:"../refinements/"},"refinements")," to get more specific."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4368.6242d162.js b/assets/js/4368.6242d162.js new file mode 100644 index 00000000000..b196a099b44 --- /dev/null +++ b/assets/js/4368.6242d162.js @@ -0,0 +1,2 @@ +/*! For license information please see 4368.6242d162.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4368],{84368:(e,t,i)=>{i.r(t),i.d(t,{conf:()=>n,language:()=>s});var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},s={defaultToken:"",tokenPostfix:".kt",keywords:["as","as?","break","class","continue","do","else","false","for","fun","if","in","!in","interface","is","!is","null","object","package","return","super","this","throw","true","try","typealias","val","var","when","while","by","catch","constructor","delegate","dynamic","field","file","finally","get","import","init","param","property","receiver","set","setparam","where","actual","abstract","annotation","companion","const","crossinline","data","enum","expect","external","final","infix","inline","inner","internal","lateinit","noinline","open","operator","out","override","private","protected","public","reified","sealed","suspend","tailrec","vararg","field","it"],operators:["+","-","*","/","%","=","+=","-=","*=","/=","%=","++","--","&&","||","!","==","!=","===","!==",">","<","<=",">=","[","]","!!","?.","?:","::","..",":","?","->","@",";","$","_"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc","@push"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/4368.6242d162.js.LICENSE.txt b/assets/js/4368.6242d162.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/4368.6242d162.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/4368.973542b9.js b/assets/js/4368.973542b9.js new file mode 100644 index 00000000000..189bc760942 --- /dev/null +++ b/assets/js/4368.973542b9.js @@ -0,0 +1,264 @@ +"use strict"; +exports.id = 4368; +exports.ids = [4368]; +exports.modules = { + +/***/ 84368: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/kotlin/kotlin.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".kt", + keywords: [ + "as", + "as?", + "break", + "class", + "continue", + "do", + "else", + "false", + "for", + "fun", + "if", + "in", + "!in", + "interface", + "is", + "!is", + "null", + "object", + "package", + "return", + "super", + "this", + "throw", + "true", + "try", + "typealias", + "val", + "var", + "when", + "while", + "by", + "catch", + "constructor", + "delegate", + "dynamic", + "field", + "file", + "finally", + "get", + "import", + "init", + "param", + "property", + "receiver", + "set", + "setparam", + "where", + "actual", + "abstract", + "annotation", + "companion", + "const", + "crossinline", + "data", + "enum", + "expect", + "external", + "final", + "infix", + "inline", + "inner", + "internal", + "lateinit", + "noinline", + "open", + "operator", + "out", + "override", + "private", + "protected", + "public", + "reified", + "sealed", + "suspend", + "tailrec", + "vararg", + "field", + "it" + ], + operators: [ + "+", + "-", + "*", + "/", + "%", + "=", + "+=", + "-=", + "*=", + "/=", + "%=", + "++", + "--", + "&&", + "||", + "!", + "==", + "!=", + "===", + "!==", + ">", + "<", + "<=", + ">=", + "[", + "]", + "!!", + "?.", + "?:", + "::", + "..", + ":", + "?", + "->", + "@", + ";", + "$", + "_" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/@\s*[a-zA-Z_\$][\w\$]*/, "annotation"], + [/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/, "number.float"], + [/0[xX](@hexdigits)[Ll]?/, "number.hex"], + [/0(@octaldigits)[Ll]?/, "number.octal"], + [/0[bB](@binarydigits)[Ll]?/, "number.binary"], + [/(@digits)[fFdD]/, "number.float"], + [/(@digits)[lL]?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"""/, "string", "@multistring"], + [/"/, "string", "@string"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@javadoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\/\*/, "comment", "@comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + javadoc: [ + [/[^\/*]+/, "comment.doc"], + [/\/\*/, "comment.doc", "@push"], + [/\/\*/, "comment.doc.invalid"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + multistring: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"""/, "string", "@pop"], + [/./, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/4370.b23daaa9.js b/assets/js/4370.b23daaa9.js new file mode 100644 index 00000000000..3400b1cdbe2 --- /dev/null +++ b/assets/js/4370.b23daaa9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4370],{34370:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>c,default:()=>d,frontMatter:()=>l,metadata:()=>u,toc:()=>i});var o=a(87462),n=(a(67294),a(3905));const l={title:"Exact object types by default, by default","short-title":"Exact object types by default, by default",author:"George Zahariev","medium-link":"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},c=void 0,u={permalink:"/blog/2023/02/16/Exact-object-types-by-default-by-default",source:"@site/blog/2023-02-16-Exact-object-types-by-default-by-default.md",title:"Exact object types by default, by default",description:"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.",date:"2023-02-16T00:00:00.000Z",formattedDate:"February 16, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Exact object types by default, by default","short-title":"Exact object types by default, by default",author:"George Zahariev","medium-link":"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},prevItem:{title:"Announcing Partial & Required Flow utility types + catch annotations",permalink:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"},nextItem:{title:"Local Type Inference for Flow",permalink:"/blog/2023/01/17/Local-Type-Inference"}},r={authorsImageUrls:[void 0]},i=[],s={toc:i};function d(e){let{components:t,...a}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4386.bfae335d.js b/assets/js/4386.bfae335d.js new file mode 100644 index 00000000000..18f9358588e --- /dev/null +++ b/assets/js/4386.bfae335d.js @@ -0,0 +1,338 @@ +"use strict"; +exports.id = 4386; +exports.ids = [4386]; +exports.modules = { + +/***/ 54386: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/apex/apex.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))") + } + } +}; +var keywords = [ + "abstract", + "activate", + "and", + "any", + "array", + "as", + "asc", + "assert", + "autonomous", + "begin", + "bigdecimal", + "blob", + "boolean", + "break", + "bulk", + "by", + "case", + "cast", + "catch", + "char", + "class", + "collect", + "commit", + "const", + "continue", + "convertcurrency", + "decimal", + "default", + "delete", + "desc", + "do", + "double", + "else", + "end", + "enum", + "exception", + "exit", + "export", + "extends", + "false", + "final", + "finally", + "float", + "for", + "from", + "future", + "get", + "global", + "goto", + "group", + "having", + "hint", + "if", + "implements", + "import", + "in", + "inner", + "insert", + "instanceof", + "int", + "interface", + "into", + "join", + "last_90_days", + "last_month", + "last_n_days", + "last_week", + "like", + "limit", + "list", + "long", + "loop", + "map", + "merge", + "native", + "new", + "next_90_days", + "next_month", + "next_n_days", + "next_week", + "not", + "null", + "nulls", + "number", + "object", + "of", + "on", + "or", + "outer", + "override", + "package", + "parallel", + "pragma", + "private", + "protected", + "public", + "retrieve", + "return", + "returning", + "rollback", + "savepoint", + "search", + "select", + "set", + "short", + "sort", + "stat", + "static", + "strictfp", + "super", + "switch", + "synchronized", + "system", + "testmethod", + "then", + "this", + "this_month", + "this_week", + "throw", + "throws", + "today", + "tolabel", + "tomorrow", + "transaction", + "transient", + "trigger", + "true", + "try", + "type", + "undelete", + "update", + "upsert", + "using", + "virtual", + "void", + "volatile", + "webservice", + "when", + "where", + "while", + "yesterday" +]; +var uppercaseFirstLetter = (lowercase) => lowercase.charAt(0).toUpperCase() + lowercase.substr(1); +var keywordsWithCaseVariations = []; +keywords.forEach((lowercase) => { + keywordsWithCaseVariations.push(lowercase); + keywordsWithCaseVariations.push(lowercase.toUpperCase()); + keywordsWithCaseVariations.push(uppercaseFirstLetter(lowercase)); +}); +var language = { + defaultToken: "", + tokenPostfix: ".apex", + keywords: keywordsWithCaseVariations, + operators: [ + "=", + ">", + "<", + "!", + "~", + "?", + ":", + "==", + "<=", + ">=", + "!=", + "&&", + "||", + "++", + "--", + "+", + "-", + "*", + "/", + "&", + "|", + "^", + "%", + "<<", + ">>", + ">>>", + "+=", + "-=", + "*=", + "/=", + "&=", + "|=", + "^=", + "%=", + "<<=", + ">>=", + ">>>=" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/@\s*[a-zA-Z_\$][\w\$]*/, "annotation"], + [/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/, "number.float"], + [/(@digits)[fFdD]/, "number.float"], + [/(@digits)[lL]?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", '@string."'], + [/'/, "string", "@string.'"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@apexdoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + apexdoc: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [ + /["']/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/4386.e5410b3b.js b/assets/js/4386.e5410b3b.js new file mode 100644 index 00000000000..48e14edb6c1 --- /dev/null +++ b/assets/js/4386.e5410b3b.js @@ -0,0 +1,2 @@ +/*! For license information please see 4386.e5410b3b.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4386],{54386:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>n,language:()=>i});var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},o=[];["abstract","activate","and","any","array","as","asc","assert","autonomous","begin","bigdecimal","blob","boolean","break","bulk","by","case","cast","catch","char","class","collect","commit","const","continue","convertcurrency","decimal","default","delete","desc","do","double","else","end","enum","exception","exit","export","extends","false","final","finally","float","for","from","future","get","global","goto","group","having","hint","if","implements","import","in","inner","insert","instanceof","int","interface","into","join","last_90_days","last_month","last_n_days","last_week","like","limit","list","long","loop","map","merge","native","new","next_90_days","next_month","next_n_days","next_week","not","null","nulls","number","object","of","on","or","outer","override","package","parallel","pragma","private","protected","public","retrieve","return","returning","rollback","savepoint","search","select","set","short","sort","stat","static","strictfp","super","switch","synchronized","system","testmethod","then","this","this_month","this_week","throw","throws","today","tolabel","tomorrow","transaction","transient","trigger","true","try","type","undelete","update","upsert","using","virtual","void","volatile","webservice","when","where","while","yesterday"].forEach((e=>{o.push(e),o.push(e.toUpperCase()),o.push((e=>e.charAt(0).toUpperCase()+e.substr(1))(e))}));var i={defaultToken:"",tokenPostfix:".apex",keywords:o,operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@apexdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],apexdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); \ No newline at end of file diff --git a/assets/js/4386.e5410b3b.js.LICENSE.txt b/assets/js/4386.e5410b3b.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/4386.e5410b3b.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/4392.88be3c03.js b/assets/js/4392.88be3c03.js new file mode 100644 index 00000000000..7ff4d86befd --- /dev/null +++ b/assets/js/4392.88be3c03.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4392],{54392:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var n=o(87462),i=(o(67294),o(3905));const r={title:"Linting in Flow","short-title":"Linting in Flow",author:"Roger Ballard","medium-link":"https://medium.com/flow-type/linting-in-flow-7709d7a7e969"},l=void 0,a={permalink:"/blog/2017/08/04/Linting-in-Flow",source:"@site/blog/2017-08-04-Linting-in-Flow.md",title:"Linting in Flow",description:"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.",date:"2017-08-04T00:00:00.000Z",formattedDate:"August 4, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Roger Ballard"}],frontMatter:{title:"Linting in Flow","short-title":"Linting in Flow",author:"Roger Ballard","medium-link":"https://medium.com/flow-type/linting-in-flow-7709d7a7e969"},prevItem:{title:"Even Better Support for React in Flow",permalink:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow"},nextItem:{title:"Opaque Type Aliases",permalink:"/blog/2017/07/27/Opaque-Types"}},s={authorsImageUrls:[void 0]},u=[],m={toc:u};function p(t){let{components:e,...o}=t;return(0,i.mdx)("wrapper",(0,n.Z)({},m,o,{components:e,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Flow\u2019s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4397.c0bddcab.js b/assets/js/4397.c0bddcab.js new file mode 100644 index 00000000000..2a003657c84 --- /dev/null +++ b/assets/js/4397.c0bddcab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4397],{14397:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>c,frontMatter:()=>l,metadata:()=>s,toc:()=>m});var i=t(87462),a=(t(67294),t(3905));t(45475);const l={title:"Literal Types",slug:"/types/literals"},r=void 0,s={unversionedId:"types/literals",id:"types/literals",title:"Literal Types",description:"Flow has primitive types for",source:"@site/docs/types/literals.md",sourceDirName:"types",slug:"/types/literals",permalink:"/en/docs/types/literals",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/literals.md",tags:[],version:"current",frontMatter:{title:"Literal Types",slug:"/types/literals"},sidebar:"docsSidebar",previous:{title:"Primitive Types",permalink:"/en/docs/types/primitives"},next:{title:"Mixed",permalink:"/en/docs/types/mixed"}},o={},m=[],p={toc:m};function c(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow has ",(0,a.mdx)("a",{parentName:"p",href:"../primitives"},"primitive types")," for\nliteral values, but can also use literal values as types."),(0,a.mdx)("p",null,"For example, instead of accepting ",(0,a.mdx)("inlineCode",{parentName:"p"},"number")," type, we could accept only the\nliteral value ",(0,a.mdx)("inlineCode",{parentName:"p"},"2"),"."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":12,"endLine":5,"endColumn":12,"description":"Cannot call `acceptsTwo` with `3` bound to `value` because number [1] is incompatible with number literal `2` [2]. [incompatible-call]"},{"startLine":6,"startColumn":12,"endLine":6,"endColumn":14,"description":"Cannot call `acceptsTwo` with `\\"2\\"` bound to `value` because string [1] is incompatible with number literal `2` [2]. [incompatible-call]"}]','[{"startLine":5,"startColumn":12,"endLine":5,"endColumn":12,"description":"Cannot':!0,call:!0,"`acceptsTwo`":!0,with:!0,"`3`":!0,bound:!0,to:!0,"`value`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,literal:!0,"`2`":!0,"[2].":!0,'[incompatible-call]"},{"startLine":6,"startColumn":12,"endLine":6,"endColumn":14,"description":"Cannot':!0,'`\\"2\\"`':!0,string:!0,'[incompatible-call]"}]':!0},'function acceptsTwo(value: 2) { /* ... */ }\n\nacceptsTwo(2); // Works!\n\nacceptsTwo(3); // Error!\nacceptsTwo("2"); // Error!\n')),(0,a.mdx)("p",null,"You can use primitive values for these types:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"Booleans: like ",(0,a.mdx)("inlineCode",{parentName:"li"},"true")," or ",(0,a.mdx)("inlineCode",{parentName:"li"},"false")),(0,a.mdx)("li",{parentName:"ul"},"Numbers: like ",(0,a.mdx)("inlineCode",{parentName:"li"},"42")," or ",(0,a.mdx)("inlineCode",{parentName:"li"},"3.14")),(0,a.mdx)("li",{parentName:"ul"},"Strings: like ",(0,a.mdx)("inlineCode",{parentName:"li"},'"foo"')," or ",(0,a.mdx)("inlineCode",{parentName:"li"},'"bar"')),(0,a.mdx)("li",{parentName:"ul"},"BigInts: like ",(0,a.mdx)("inlineCode",{parentName:"li"},"42n"))),(0,a.mdx)("p",null,"Using these with ",(0,a.mdx)("a",{parentName:"p",href:"../unions"},"union types")," is powerful:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":10,"endLine":12,"endColumn":16,"description":"Cannot call `getColor` with `\\"error\\"` bound to `name` because string [1] is incompatible with literal union [2]. [incompatible-call]"}]','[{"startLine":12,"startColumn":10,"endLine":12,"endColumn":16,"description":"Cannot':!0,call:!0,"`getColor`":!0,with:!0,'`\\"error\\"`':!0,bound:!0,to:!0,"`name`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,literal:!0,union:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function getColor(name: "success" | "warning" | "danger") {\n switch (name) {\n case "success" : return "green";\n case "warning" : return "yellow";\n case "danger" : return "red";\n }\n}\n\ngetColor("success"); // Works!\ngetColor("danger"); // Works!\n\ngetColor("error"); // Error!\n')),(0,a.mdx)("p",null,"Consider using ",(0,a.mdx)("a",{parentName:"p",href:"../../enums"},"Flow Enums")," instead of unions of literal types, if they fit your use-case."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4407.3aae7ab5.js b/assets/js/4407.3aae7ab5.js new file mode 100644 index 00000000000..fe0d7e2a99b --- /dev/null +++ b/assets/js/4407.3aae7ab5.js @@ -0,0 +1,909 @@ +"use strict"; +exports.id = 4407; +exports.ids = [4407]; +exports.modules = { + +/***/ 94407: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/powerquery/powerquery.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["[", "]"], + ["(", ")"], + ["{", "}"] + ], + autoClosingPairs: [ + { open: '"', close: '"', notIn: ["string", "comment", "identifier"] }, + { open: "[", close: "]", notIn: ["string", "comment", "identifier"] }, + { open: "(", close: ")", notIn: ["string", "comment", "identifier"] }, + { open: "{", close: "}", notIn: ["string", "comment", "identifier"] } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".pq", + ignoreCase: false, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "{", close: "}", token: "delimiter.brackets" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + operatorKeywords: ["and", "not", "or"], + keywords: [ + "as", + "each", + "else", + "error", + "false", + "if", + "in", + "is", + "let", + "meta", + "otherwise", + "section", + "shared", + "then", + "true", + "try", + "type" + ], + constructors: ["#binary", "#date", "#datetime", "#datetimezone", "#duration", "#table", "#time"], + constants: ["#infinity", "#nan", "#sections", "#shared"], + typeKeywords: [ + "action", + "any", + "anynonnull", + "none", + "null", + "logical", + "number", + "time", + "date", + "datetime", + "datetimezone", + "duration", + "text", + "binary", + "list", + "record", + "table", + "function" + ], + builtinFunctions: [ + "Access.Database", + "Action.Return", + "Action.Sequence", + "Action.Try", + "ActiveDirectory.Domains", + "AdoDotNet.DataSource", + "AdoDotNet.Query", + "AdobeAnalytics.Cubes", + "AnalysisServices.Database", + "AnalysisServices.Databases", + "AzureStorage.BlobContents", + "AzureStorage.Blobs", + "AzureStorage.Tables", + "Binary.Buffer", + "Binary.Combine", + "Binary.Compress", + "Binary.Decompress", + "Binary.End", + "Binary.From", + "Binary.FromList", + "Binary.FromText", + "Binary.InferContentType", + "Binary.Length", + "Binary.ToList", + "Binary.ToText", + "BinaryFormat.7BitEncodedSignedInteger", + "BinaryFormat.7BitEncodedUnsignedInteger", + "BinaryFormat.Binary", + "BinaryFormat.Byte", + "BinaryFormat.ByteOrder", + "BinaryFormat.Choice", + "BinaryFormat.Decimal", + "BinaryFormat.Double", + "BinaryFormat.Group", + "BinaryFormat.Length", + "BinaryFormat.List", + "BinaryFormat.Null", + "BinaryFormat.Record", + "BinaryFormat.SignedInteger16", + "BinaryFormat.SignedInteger32", + "BinaryFormat.SignedInteger64", + "BinaryFormat.Single", + "BinaryFormat.Text", + "BinaryFormat.Transform", + "BinaryFormat.UnsignedInteger16", + "BinaryFormat.UnsignedInteger32", + "BinaryFormat.UnsignedInteger64", + "Byte.From", + "Character.FromNumber", + "Character.ToNumber", + "Combiner.CombineTextByDelimiter", + "Combiner.CombineTextByEachDelimiter", + "Combiner.CombineTextByLengths", + "Combiner.CombineTextByPositions", + "Combiner.CombineTextByRanges", + "Comparer.Equals", + "Comparer.FromCulture", + "Comparer.Ordinal", + "Comparer.OrdinalIgnoreCase", + "Csv.Document", + "Cube.AddAndExpandDimensionColumn", + "Cube.AddMeasureColumn", + "Cube.ApplyParameter", + "Cube.AttributeMemberId", + "Cube.AttributeMemberProperty", + "Cube.CollapseAndRemoveColumns", + "Cube.Dimensions", + "Cube.DisplayFolders", + "Cube.Measures", + "Cube.Parameters", + "Cube.Properties", + "Cube.PropertyKey", + "Cube.ReplaceDimensions", + "Cube.Transform", + "Currency.From", + "DB2.Database", + "Date.AddDays", + "Date.AddMonths", + "Date.AddQuarters", + "Date.AddWeeks", + "Date.AddYears", + "Date.Day", + "Date.DayOfWeek", + "Date.DayOfWeekName", + "Date.DayOfYear", + "Date.DaysInMonth", + "Date.EndOfDay", + "Date.EndOfMonth", + "Date.EndOfQuarter", + "Date.EndOfWeek", + "Date.EndOfYear", + "Date.From", + "Date.FromText", + "Date.IsInCurrentDay", + "Date.IsInCurrentMonth", + "Date.IsInCurrentQuarter", + "Date.IsInCurrentWeek", + "Date.IsInCurrentYear", + "Date.IsInNextDay", + "Date.IsInNextMonth", + "Date.IsInNextNDays", + "Date.IsInNextNMonths", + "Date.IsInNextNQuarters", + "Date.IsInNextNWeeks", + "Date.IsInNextNYears", + "Date.IsInNextQuarter", + "Date.IsInNextWeek", + "Date.IsInNextYear", + "Date.IsInPreviousDay", + "Date.IsInPreviousMonth", + "Date.IsInPreviousNDays", + "Date.IsInPreviousNMonths", + "Date.IsInPreviousNQuarters", + "Date.IsInPreviousNWeeks", + "Date.IsInPreviousNYears", + "Date.IsInPreviousQuarter", + "Date.IsInPreviousWeek", + "Date.IsInPreviousYear", + "Date.IsInYearToDate", + "Date.IsLeapYear", + "Date.Month", + "Date.MonthName", + "Date.QuarterOfYear", + "Date.StartOfDay", + "Date.StartOfMonth", + "Date.StartOfQuarter", + "Date.StartOfWeek", + "Date.StartOfYear", + "Date.ToRecord", + "Date.ToText", + "Date.WeekOfMonth", + "Date.WeekOfYear", + "Date.Year", + "DateTime.AddZone", + "DateTime.Date", + "DateTime.FixedLocalNow", + "DateTime.From", + "DateTime.FromFileTime", + "DateTime.FromText", + "DateTime.IsInCurrentHour", + "DateTime.IsInCurrentMinute", + "DateTime.IsInCurrentSecond", + "DateTime.IsInNextHour", + "DateTime.IsInNextMinute", + "DateTime.IsInNextNHours", + "DateTime.IsInNextNMinutes", + "DateTime.IsInNextNSeconds", + "DateTime.IsInNextSecond", + "DateTime.IsInPreviousHour", + "DateTime.IsInPreviousMinute", + "DateTime.IsInPreviousNHours", + "DateTime.IsInPreviousNMinutes", + "DateTime.IsInPreviousNSeconds", + "DateTime.IsInPreviousSecond", + "DateTime.LocalNow", + "DateTime.Time", + "DateTime.ToRecord", + "DateTime.ToText", + "DateTimeZone.FixedLocalNow", + "DateTimeZone.FixedUtcNow", + "DateTimeZone.From", + "DateTimeZone.FromFileTime", + "DateTimeZone.FromText", + "DateTimeZone.LocalNow", + "DateTimeZone.RemoveZone", + "DateTimeZone.SwitchZone", + "DateTimeZone.ToLocal", + "DateTimeZone.ToRecord", + "DateTimeZone.ToText", + "DateTimeZone.ToUtc", + "DateTimeZone.UtcNow", + "DateTimeZone.ZoneHours", + "DateTimeZone.ZoneMinutes", + "Decimal.From", + "Diagnostics.ActivityId", + "Diagnostics.Trace", + "DirectQueryCapabilities.From", + "Double.From", + "Duration.Days", + "Duration.From", + "Duration.FromText", + "Duration.Hours", + "Duration.Minutes", + "Duration.Seconds", + "Duration.ToRecord", + "Duration.ToText", + "Duration.TotalDays", + "Duration.TotalHours", + "Duration.TotalMinutes", + "Duration.TotalSeconds", + "Embedded.Value", + "Error.Record", + "Excel.CurrentWorkbook", + "Excel.Workbook", + "Exchange.Contents", + "Expression.Constant", + "Expression.Evaluate", + "Expression.Identifier", + "Facebook.Graph", + "File.Contents", + "Folder.Contents", + "Folder.Files", + "Function.From", + "Function.Invoke", + "Function.InvokeAfter", + "Function.IsDataSource", + "GoogleAnalytics.Accounts", + "Guid.From", + "HdInsight.Containers", + "HdInsight.Contents", + "HdInsight.Files", + "Hdfs.Contents", + "Hdfs.Files", + "Informix.Database", + "Int16.From", + "Int32.From", + "Int64.From", + "Int8.From", + "ItemExpression.From", + "Json.Document", + "Json.FromValue", + "Lines.FromBinary", + "Lines.FromText", + "Lines.ToBinary", + "Lines.ToText", + "List.Accumulate", + "List.AllTrue", + "List.Alternate", + "List.AnyTrue", + "List.Average", + "List.Buffer", + "List.Combine", + "List.Contains", + "List.ContainsAll", + "List.ContainsAny", + "List.Count", + "List.Covariance", + "List.DateTimeZones", + "List.DateTimes", + "List.Dates", + "List.Difference", + "List.Distinct", + "List.Durations", + "List.FindText", + "List.First", + "List.FirstN", + "List.Generate", + "List.InsertRange", + "List.Intersect", + "List.IsDistinct", + "List.IsEmpty", + "List.Last", + "List.LastN", + "List.MatchesAll", + "List.MatchesAny", + "List.Max", + "List.MaxN", + "List.Median", + "List.Min", + "List.MinN", + "List.Mode", + "List.Modes", + "List.NonNullCount", + "List.Numbers", + "List.PositionOf", + "List.PositionOfAny", + "List.Positions", + "List.Product", + "List.Random", + "List.Range", + "List.RemoveFirstN", + "List.RemoveItems", + "List.RemoveLastN", + "List.RemoveMatchingItems", + "List.RemoveNulls", + "List.RemoveRange", + "List.Repeat", + "List.ReplaceMatchingItems", + "List.ReplaceRange", + "List.ReplaceValue", + "List.Reverse", + "List.Select", + "List.Single", + "List.SingleOrDefault", + "List.Skip", + "List.Sort", + "List.StandardDeviation", + "List.Sum", + "List.Times", + "List.Transform", + "List.TransformMany", + "List.Union", + "List.Zip", + "Logical.From", + "Logical.FromText", + "Logical.ToText", + "MQ.Queue", + "MySQL.Database", + "Number.Abs", + "Number.Acos", + "Number.Asin", + "Number.Atan", + "Number.Atan2", + "Number.BitwiseAnd", + "Number.BitwiseNot", + "Number.BitwiseOr", + "Number.BitwiseShiftLeft", + "Number.BitwiseShiftRight", + "Number.BitwiseXor", + "Number.Combinations", + "Number.Cos", + "Number.Cosh", + "Number.Exp", + "Number.Factorial", + "Number.From", + "Number.FromText", + "Number.IntegerDivide", + "Number.IsEven", + "Number.IsNaN", + "Number.IsOdd", + "Number.Ln", + "Number.Log", + "Number.Log10", + "Number.Mod", + "Number.Permutations", + "Number.Power", + "Number.Random", + "Number.RandomBetween", + "Number.Round", + "Number.RoundAwayFromZero", + "Number.RoundDown", + "Number.RoundTowardZero", + "Number.RoundUp", + "Number.Sign", + "Number.Sin", + "Number.Sinh", + "Number.Sqrt", + "Number.Tan", + "Number.Tanh", + "Number.ToText", + "OData.Feed", + "Odbc.DataSource", + "Odbc.Query", + "OleDb.DataSource", + "OleDb.Query", + "Oracle.Database", + "Percentage.From", + "PostgreSQL.Database", + "RData.FromBinary", + "Record.AddField", + "Record.Combine", + "Record.Field", + "Record.FieldCount", + "Record.FieldNames", + "Record.FieldOrDefault", + "Record.FieldValues", + "Record.FromList", + "Record.FromTable", + "Record.HasFields", + "Record.RemoveFields", + "Record.RenameFields", + "Record.ReorderFields", + "Record.SelectFields", + "Record.ToList", + "Record.ToTable", + "Record.TransformFields", + "Replacer.ReplaceText", + "Replacer.ReplaceValue", + "RowExpression.Column", + "RowExpression.From", + "Salesforce.Data", + "Salesforce.Reports", + "SapBusinessWarehouse.Cubes", + "SapHana.Database", + "SharePoint.Contents", + "SharePoint.Files", + "SharePoint.Tables", + "Single.From", + "Soda.Feed", + "Splitter.SplitByNothing", + "Splitter.SplitTextByAnyDelimiter", + "Splitter.SplitTextByDelimiter", + "Splitter.SplitTextByEachDelimiter", + "Splitter.SplitTextByLengths", + "Splitter.SplitTextByPositions", + "Splitter.SplitTextByRanges", + "Splitter.SplitTextByRepeatedLengths", + "Splitter.SplitTextByWhitespace", + "Sql.Database", + "Sql.Databases", + "SqlExpression.SchemaFrom", + "SqlExpression.ToExpression", + "Sybase.Database", + "Table.AddColumn", + "Table.AddIndexColumn", + "Table.AddJoinColumn", + "Table.AddKey", + "Table.AggregateTableColumn", + "Table.AlternateRows", + "Table.Buffer", + "Table.Column", + "Table.ColumnCount", + "Table.ColumnNames", + "Table.ColumnsOfType", + "Table.Combine", + "Table.CombineColumns", + "Table.Contains", + "Table.ContainsAll", + "Table.ContainsAny", + "Table.DemoteHeaders", + "Table.Distinct", + "Table.DuplicateColumn", + "Table.ExpandListColumn", + "Table.ExpandRecordColumn", + "Table.ExpandTableColumn", + "Table.FillDown", + "Table.FillUp", + "Table.FilterWithDataTable", + "Table.FindText", + "Table.First", + "Table.FirstN", + "Table.FirstValue", + "Table.FromColumns", + "Table.FromList", + "Table.FromPartitions", + "Table.FromRecords", + "Table.FromRows", + "Table.FromValue", + "Table.Group", + "Table.HasColumns", + "Table.InsertRows", + "Table.IsDistinct", + "Table.IsEmpty", + "Table.Join", + "Table.Keys", + "Table.Last", + "Table.LastN", + "Table.MatchesAllRows", + "Table.MatchesAnyRows", + "Table.Max", + "Table.MaxN", + "Table.Min", + "Table.MinN", + "Table.NestedJoin", + "Table.Partition", + "Table.PartitionValues", + "Table.Pivot", + "Table.PositionOf", + "Table.PositionOfAny", + "Table.PrefixColumns", + "Table.Profile", + "Table.PromoteHeaders", + "Table.Range", + "Table.RemoveColumns", + "Table.RemoveFirstN", + "Table.RemoveLastN", + "Table.RemoveMatchingRows", + "Table.RemoveRows", + "Table.RemoveRowsWithErrors", + "Table.RenameColumns", + "Table.ReorderColumns", + "Table.Repeat", + "Table.ReplaceErrorValues", + "Table.ReplaceKeys", + "Table.ReplaceMatchingRows", + "Table.ReplaceRelationshipIdentity", + "Table.ReplaceRows", + "Table.ReplaceValue", + "Table.ReverseRows", + "Table.RowCount", + "Table.Schema", + "Table.SelectColumns", + "Table.SelectRows", + "Table.SelectRowsWithErrors", + "Table.SingleRow", + "Table.Skip", + "Table.Sort", + "Table.SplitColumn", + "Table.ToColumns", + "Table.ToList", + "Table.ToRecords", + "Table.ToRows", + "Table.TransformColumnNames", + "Table.TransformColumnTypes", + "Table.TransformColumns", + "Table.TransformRows", + "Table.Transpose", + "Table.Unpivot", + "Table.UnpivotOtherColumns", + "Table.View", + "Table.ViewFunction", + "TableAction.DeleteRows", + "TableAction.InsertRows", + "TableAction.UpdateRows", + "Tables.GetRelationships", + "Teradata.Database", + "Text.AfterDelimiter", + "Text.At", + "Text.BeforeDelimiter", + "Text.BetweenDelimiters", + "Text.Clean", + "Text.Combine", + "Text.Contains", + "Text.End", + "Text.EndsWith", + "Text.Format", + "Text.From", + "Text.FromBinary", + "Text.Insert", + "Text.Length", + "Text.Lower", + "Text.Middle", + "Text.NewGuid", + "Text.PadEnd", + "Text.PadStart", + "Text.PositionOf", + "Text.PositionOfAny", + "Text.Proper", + "Text.Range", + "Text.Remove", + "Text.RemoveRange", + "Text.Repeat", + "Text.Replace", + "Text.ReplaceRange", + "Text.Select", + "Text.Split", + "Text.SplitAny", + "Text.Start", + "Text.StartsWith", + "Text.ToBinary", + "Text.ToList", + "Text.Trim", + "Text.TrimEnd", + "Text.TrimStart", + "Text.Upper", + "Time.EndOfHour", + "Time.From", + "Time.FromText", + "Time.Hour", + "Time.Minute", + "Time.Second", + "Time.StartOfHour", + "Time.ToRecord", + "Time.ToText", + "Type.AddTableKey", + "Type.ClosedRecord", + "Type.Facets", + "Type.ForFunction", + "Type.ForRecord", + "Type.FunctionParameters", + "Type.FunctionRequiredParameters", + "Type.FunctionReturn", + "Type.Is", + "Type.IsNullable", + "Type.IsOpenRecord", + "Type.ListItem", + "Type.NonNullable", + "Type.OpenRecord", + "Type.RecordFields", + "Type.ReplaceFacets", + "Type.ReplaceTableKeys", + "Type.TableColumn", + "Type.TableKeys", + "Type.TableRow", + "Type.TableSchema", + "Type.Union", + "Uri.BuildQueryString", + "Uri.Combine", + "Uri.EscapeDataString", + "Uri.Parts", + "Value.Add", + "Value.As", + "Value.Compare", + "Value.Divide", + "Value.Equals", + "Value.Firewall", + "Value.FromText", + "Value.Is", + "Value.Metadata", + "Value.Multiply", + "Value.NativeQuery", + "Value.NullableEquals", + "Value.RemoveMetadata", + "Value.ReplaceMetadata", + "Value.ReplaceType", + "Value.Subtract", + "Value.Type", + "ValueAction.NativeStatement", + "ValueAction.Replace", + "Variable.Value", + "Web.Contents", + "Web.Page", + "WebAction.Request", + "Xml.Document", + "Xml.Tables" + ], + builtinConstants: [ + "BinaryEncoding.Base64", + "BinaryEncoding.Hex", + "BinaryOccurrence.Optional", + "BinaryOccurrence.Repeating", + "BinaryOccurrence.Required", + "ByteOrder.BigEndian", + "ByteOrder.LittleEndian", + "Compression.Deflate", + "Compression.GZip", + "CsvStyle.QuoteAfterDelimiter", + "CsvStyle.QuoteAlways", + "Culture.Current", + "Day.Friday", + "Day.Monday", + "Day.Saturday", + "Day.Sunday", + "Day.Thursday", + "Day.Tuesday", + "Day.Wednesday", + "ExtraValues.Error", + "ExtraValues.Ignore", + "ExtraValues.List", + "GroupKind.Global", + "GroupKind.Local", + "JoinAlgorithm.Dynamic", + "JoinAlgorithm.LeftHash", + "JoinAlgorithm.LeftIndex", + "JoinAlgorithm.PairwiseHash", + "JoinAlgorithm.RightHash", + "JoinAlgorithm.RightIndex", + "JoinAlgorithm.SortMerge", + "JoinKind.FullOuter", + "JoinKind.Inner", + "JoinKind.LeftAnti", + "JoinKind.LeftOuter", + "JoinKind.RightAnti", + "JoinKind.RightOuter", + "JoinSide.Left", + "JoinSide.Right", + "MissingField.Error", + "MissingField.Ignore", + "MissingField.UseNull", + "Number.E", + "Number.Epsilon", + "Number.NaN", + "Number.NegativeInfinity", + "Number.PI", + "Number.PositiveInfinity", + "Occurrence.All", + "Occurrence.First", + "Occurrence.Last", + "Occurrence.Optional", + "Occurrence.Repeating", + "Occurrence.Required", + "Order.Ascending", + "Order.Descending", + "Precision.Decimal", + "Precision.Double", + "QuoteStyle.Csv", + "QuoteStyle.None", + "RelativePosition.FromEnd", + "RelativePosition.FromStart", + "RoundingMode.AwayFromZero", + "RoundingMode.Down", + "RoundingMode.ToEven", + "RoundingMode.TowardZero", + "RoundingMode.Up", + "SapHanaDistribution.All", + "SapHanaDistribution.Connection", + "SapHanaDistribution.Off", + "SapHanaDistribution.Statement", + "SapHanaRangeOperator.Equals", + "SapHanaRangeOperator.GreaterThan", + "SapHanaRangeOperator.GreaterThanOrEquals", + "SapHanaRangeOperator.LessThan", + "SapHanaRangeOperator.LessThanOrEquals", + "SapHanaRangeOperator.NotEquals", + "TextEncoding.Ascii", + "TextEncoding.BigEndianUnicode", + "TextEncoding.Unicode", + "TextEncoding.Utf16", + "TextEncoding.Utf8", + "TextEncoding.Windows", + "TraceLevel.Critical", + "TraceLevel.Error", + "TraceLevel.Information", + "TraceLevel.Verbose", + "TraceLevel.Warning", + "WebMethod.Delete", + "WebMethod.Get", + "WebMethod.Head", + "WebMethod.Patch", + "WebMethod.Post", + "WebMethod.Put" + ], + builtinTypes: [ + "Action.Type", + "Any.Type", + "Binary.Type", + "BinaryEncoding.Type", + "BinaryOccurrence.Type", + "Byte.Type", + "ByteOrder.Type", + "Character.Type", + "Compression.Type", + "CsvStyle.Type", + "Currency.Type", + "Date.Type", + "DateTime.Type", + "DateTimeZone.Type", + "Day.Type", + "Decimal.Type", + "Double.Type", + "Duration.Type", + "ExtraValues.Type", + "Function.Type", + "GroupKind.Type", + "Guid.Type", + "Int16.Type", + "Int32.Type", + "Int64.Type", + "Int8.Type", + "JoinAlgorithm.Type", + "JoinKind.Type", + "JoinSide.Type", + "List.Type", + "Logical.Type", + "MissingField.Type", + "None.Type", + "Null.Type", + "Number.Type", + "Occurrence.Type", + "Order.Type", + "Password.Type", + "Percentage.Type", + "Precision.Type", + "QuoteStyle.Type", + "Record.Type", + "RelativePosition.Type", + "RoundingMode.Type", + "SapHanaDistribution.Type", + "SapHanaRangeOperator.Type", + "Single.Type", + "Table.Type", + "Text.Type", + "TextEncoding.Type", + "Time.Type", + "TraceLevel.Type", + "Type.Type", + "Uri.Type", + "WebMethod.Type" + ], + tokenizer: { + root: [ + [/#"[\w \.]+"/, "identifier.quote"], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F]+/, "number.hex"], + [/\d+([eE][\-+]?\d+)?/, "number"], + [ + /(#?[a-z]+)\b/, + { + cases: { + "@typeKeywords": "type", + "@keywords": "keyword", + "@constants": "constant", + "@constructors": "constructor", + "@operatorKeywords": "operators", + "@default": "identifier" + } + } + ], + [ + /\b([A-Z][a-zA-Z0-9]+\.Type)\b/, + { + cases: { + "@builtinTypes": "type", + "@default": "identifier" + } + } + ], + [ + /\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/, + { + cases: { + "@builtinFunctions": "keyword.function", + "@builtinConstants": "constant", + "@default": "identifier" + } + } + ], + [/\b([a-zA-Z_][\w\.]*)\b/, "identifier"], + { include: "@whitespace" }, + { include: "@comments" }, + { include: "@strings" }, + [/[{}()\[\]]/, "@brackets"], + [/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/, "operators"], + [/[,;]/, "delimiter"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + ["\\/\\*", "comment", "@comment"], + ["\\/\\/+.*", "comment"] + ], + comment: [ + ["\\*\\/", "comment", "@pop"], + [".", "comment"] + ], + strings: [['"', "string", "@string"]], + string: [ + ['""', "string.escape"], + ['"', "string", "@pop"], + [".", "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/4407.f24a98c4.js b/assets/js/4407.f24a98c4.js new file mode 100644 index 00000000000..a7c970ab687 --- /dev/null +++ b/assets/js/4407.f24a98c4.js @@ -0,0 +1,2 @@ +/*! For license information please see 4407.f24a98c4.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4407],{94407:(e,t,a)=>{a.r(t),a.d(t,{conf:()=>n,language:()=>i});var n={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment","identifier"]},{open:"[",close:"]",notIn:["string","comment","identifier"]},{open:"(",close:")",notIn:["string","comment","identifier"]},{open:"{",close:"}",notIn:["string","comment","identifier"]}]},i={defaultToken:"",tokenPostfix:".pq",ignoreCase:!1,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],operatorKeywords:["and","not","or"],keywords:["as","each","else","error","false","if","in","is","let","meta","otherwise","section","shared","then","true","try","type"],constructors:["#binary","#date","#datetime","#datetimezone","#duration","#table","#time"],constants:["#infinity","#nan","#sections","#shared"],typeKeywords:["action","any","anynonnull","none","null","logical","number","time","date","datetime","datetimezone","duration","text","binary","list","record","table","function"],builtinFunctions:["Access.Database","Action.Return","Action.Sequence","Action.Try","ActiveDirectory.Domains","AdoDotNet.DataSource","AdoDotNet.Query","AdobeAnalytics.Cubes","AnalysisServices.Database","AnalysisServices.Databases","AzureStorage.BlobContents","AzureStorage.Blobs","AzureStorage.Tables","Binary.Buffer","Binary.Combine","Binary.Compress","Binary.Decompress","Binary.End","Binary.From","Binary.FromList","Binary.FromText","Binary.InferContentType","Binary.Length","Binary.ToList","Binary.ToText","BinaryFormat.7BitEncodedSignedInteger","BinaryFormat.7BitEncodedUnsignedInteger","BinaryFormat.Binary","BinaryFormat.Byte","BinaryFormat.ByteOrder","BinaryFormat.Choice","BinaryFormat.Decimal","BinaryFormat.Double","BinaryFormat.Group","BinaryFormat.Length","BinaryFormat.List","BinaryFormat.Null","BinaryFormat.Record","BinaryFormat.SignedInteger16","BinaryFormat.SignedInteger32","BinaryFormat.SignedInteger64","BinaryFormat.Single","BinaryFormat.Text","BinaryFormat.Transform","BinaryFormat.UnsignedInteger16","BinaryFormat.UnsignedInteger32","BinaryFormat.UnsignedInteger64","Byte.From","Character.FromNumber","Character.ToNumber","Combiner.CombineTextByDelimiter","Combiner.CombineTextByEachDelimiter","Combiner.CombineTextByLengths","Combiner.CombineTextByPositions","Combiner.CombineTextByRanges","Comparer.Equals","Comparer.FromCulture","Comparer.Ordinal","Comparer.OrdinalIgnoreCase","Csv.Document","Cube.AddAndExpandDimensionColumn","Cube.AddMeasureColumn","Cube.ApplyParameter","Cube.AttributeMemberId","Cube.AttributeMemberProperty","Cube.CollapseAndRemoveColumns","Cube.Dimensions","Cube.DisplayFolders","Cube.Measures","Cube.Parameters","Cube.Properties","Cube.PropertyKey","Cube.ReplaceDimensions","Cube.Transform","Currency.From","DB2.Database","Date.AddDays","Date.AddMonths","Date.AddQuarters","Date.AddWeeks","Date.AddYears","Date.Day","Date.DayOfWeek","Date.DayOfWeekName","Date.DayOfYear","Date.DaysInMonth","Date.EndOfDay","Date.EndOfMonth","Date.EndOfQuarter","Date.EndOfWeek","Date.EndOfYear","Date.From","Date.FromText","Date.IsInCurrentDay","Date.IsInCurrentMonth","Date.IsInCurrentQuarter","Date.IsInCurrentWeek","Date.IsInCurrentYear","Date.IsInNextDay","Date.IsInNextMonth","Date.IsInNextNDays","Date.IsInNextNMonths","Date.IsInNextNQuarters","Date.IsInNextNWeeks","Date.IsInNextNYears","Date.IsInNextQuarter","Date.IsInNextWeek","Date.IsInNextYear","Date.IsInPreviousDay","Date.IsInPreviousMonth","Date.IsInPreviousNDays","Date.IsInPreviousNMonths","Date.IsInPreviousNQuarters","Date.IsInPreviousNWeeks","Date.IsInPreviousNYears","Date.IsInPreviousQuarter","Date.IsInPreviousWeek","Date.IsInPreviousYear","Date.IsInYearToDate","Date.IsLeapYear","Date.Month","Date.MonthName","Date.QuarterOfYear","Date.StartOfDay","Date.StartOfMonth","Date.StartOfQuarter","Date.StartOfWeek","Date.StartOfYear","Date.ToRecord","Date.ToText","Date.WeekOfMonth","Date.WeekOfYear","Date.Year","DateTime.AddZone","DateTime.Date","DateTime.FixedLocalNow","DateTime.From","DateTime.FromFileTime","DateTime.FromText","DateTime.IsInCurrentHour","DateTime.IsInCurrentMinute","DateTime.IsInCurrentSecond","DateTime.IsInNextHour","DateTime.IsInNextMinute","DateTime.IsInNextNHours","DateTime.IsInNextNMinutes","DateTime.IsInNextNSeconds","DateTime.IsInNextSecond","DateTime.IsInPreviousHour","DateTime.IsInPreviousMinute","DateTime.IsInPreviousNHours","DateTime.IsInPreviousNMinutes","DateTime.IsInPreviousNSeconds","DateTime.IsInPreviousSecond","DateTime.LocalNow","DateTime.Time","DateTime.ToRecord","DateTime.ToText","DateTimeZone.FixedLocalNow","DateTimeZone.FixedUtcNow","DateTimeZone.From","DateTimeZone.FromFileTime","DateTimeZone.FromText","DateTimeZone.LocalNow","DateTimeZone.RemoveZone","DateTimeZone.SwitchZone","DateTimeZone.ToLocal","DateTimeZone.ToRecord","DateTimeZone.ToText","DateTimeZone.ToUtc","DateTimeZone.UtcNow","DateTimeZone.ZoneHours","DateTimeZone.ZoneMinutes","Decimal.From","Diagnostics.ActivityId","Diagnostics.Trace","DirectQueryCapabilities.From","Double.From","Duration.Days","Duration.From","Duration.FromText","Duration.Hours","Duration.Minutes","Duration.Seconds","Duration.ToRecord","Duration.ToText","Duration.TotalDays","Duration.TotalHours","Duration.TotalMinutes","Duration.TotalSeconds","Embedded.Value","Error.Record","Excel.CurrentWorkbook","Excel.Workbook","Exchange.Contents","Expression.Constant","Expression.Evaluate","Expression.Identifier","Facebook.Graph","File.Contents","Folder.Contents","Folder.Files","Function.From","Function.Invoke","Function.InvokeAfter","Function.IsDataSource","GoogleAnalytics.Accounts","Guid.From","HdInsight.Containers","HdInsight.Contents","HdInsight.Files","Hdfs.Contents","Hdfs.Files","Informix.Database","Int16.From","Int32.From","Int64.From","Int8.From","ItemExpression.From","Json.Document","Json.FromValue","Lines.FromBinary","Lines.FromText","Lines.ToBinary","Lines.ToText","List.Accumulate","List.AllTrue","List.Alternate","List.AnyTrue","List.Average","List.Buffer","List.Combine","List.Contains","List.ContainsAll","List.ContainsAny","List.Count","List.Covariance","List.DateTimeZones","List.DateTimes","List.Dates","List.Difference","List.Distinct","List.Durations","List.FindText","List.First","List.FirstN","List.Generate","List.InsertRange","List.Intersect","List.IsDistinct","List.IsEmpty","List.Last","List.LastN","List.MatchesAll","List.MatchesAny","List.Max","List.MaxN","List.Median","List.Min","List.MinN","List.Mode","List.Modes","List.NonNullCount","List.Numbers","List.PositionOf","List.PositionOfAny","List.Positions","List.Product","List.Random","List.Range","List.RemoveFirstN","List.RemoveItems","List.RemoveLastN","List.RemoveMatchingItems","List.RemoveNulls","List.RemoveRange","List.Repeat","List.ReplaceMatchingItems","List.ReplaceRange","List.ReplaceValue","List.Reverse","List.Select","List.Single","List.SingleOrDefault","List.Skip","List.Sort","List.StandardDeviation","List.Sum","List.Times","List.Transform","List.TransformMany","List.Union","List.Zip","Logical.From","Logical.FromText","Logical.ToText","MQ.Queue","MySQL.Database","Number.Abs","Number.Acos","Number.Asin","Number.Atan","Number.Atan2","Number.BitwiseAnd","Number.BitwiseNot","Number.BitwiseOr","Number.BitwiseShiftLeft","Number.BitwiseShiftRight","Number.BitwiseXor","Number.Combinations","Number.Cos","Number.Cosh","Number.Exp","Number.Factorial","Number.From","Number.FromText","Number.IntegerDivide","Number.IsEven","Number.IsNaN","Number.IsOdd","Number.Ln","Number.Log","Number.Log10","Number.Mod","Number.Permutations","Number.Power","Number.Random","Number.RandomBetween","Number.Round","Number.RoundAwayFromZero","Number.RoundDown","Number.RoundTowardZero","Number.RoundUp","Number.Sign","Number.Sin","Number.Sinh","Number.Sqrt","Number.Tan","Number.Tanh","Number.ToText","OData.Feed","Odbc.DataSource","Odbc.Query","OleDb.DataSource","OleDb.Query","Oracle.Database","Percentage.From","PostgreSQL.Database","RData.FromBinary","Record.AddField","Record.Combine","Record.Field","Record.FieldCount","Record.FieldNames","Record.FieldOrDefault","Record.FieldValues","Record.FromList","Record.FromTable","Record.HasFields","Record.RemoveFields","Record.RenameFields","Record.ReorderFields","Record.SelectFields","Record.ToList","Record.ToTable","Record.TransformFields","Replacer.ReplaceText","Replacer.ReplaceValue","RowExpression.Column","RowExpression.From","Salesforce.Data","Salesforce.Reports","SapBusinessWarehouse.Cubes","SapHana.Database","SharePoint.Contents","SharePoint.Files","SharePoint.Tables","Single.From","Soda.Feed","Splitter.SplitByNothing","Splitter.SplitTextByAnyDelimiter","Splitter.SplitTextByDelimiter","Splitter.SplitTextByEachDelimiter","Splitter.SplitTextByLengths","Splitter.SplitTextByPositions","Splitter.SplitTextByRanges","Splitter.SplitTextByRepeatedLengths","Splitter.SplitTextByWhitespace","Sql.Database","Sql.Databases","SqlExpression.SchemaFrom","SqlExpression.ToExpression","Sybase.Database","Table.AddColumn","Table.AddIndexColumn","Table.AddJoinColumn","Table.AddKey","Table.AggregateTableColumn","Table.AlternateRows","Table.Buffer","Table.Column","Table.ColumnCount","Table.ColumnNames","Table.ColumnsOfType","Table.Combine","Table.CombineColumns","Table.Contains","Table.ContainsAll","Table.ContainsAny","Table.DemoteHeaders","Table.Distinct","Table.DuplicateColumn","Table.ExpandListColumn","Table.ExpandRecordColumn","Table.ExpandTableColumn","Table.FillDown","Table.FillUp","Table.FilterWithDataTable","Table.FindText","Table.First","Table.FirstN","Table.FirstValue","Table.FromColumns","Table.FromList","Table.FromPartitions","Table.FromRecords","Table.FromRows","Table.FromValue","Table.Group","Table.HasColumns","Table.InsertRows","Table.IsDistinct","Table.IsEmpty","Table.Join","Table.Keys","Table.Last","Table.LastN","Table.MatchesAllRows","Table.MatchesAnyRows","Table.Max","Table.MaxN","Table.Min","Table.MinN","Table.NestedJoin","Table.Partition","Table.PartitionValues","Table.Pivot","Table.PositionOf","Table.PositionOfAny","Table.PrefixColumns","Table.Profile","Table.PromoteHeaders","Table.Range","Table.RemoveColumns","Table.RemoveFirstN","Table.RemoveLastN","Table.RemoveMatchingRows","Table.RemoveRows","Table.RemoveRowsWithErrors","Table.RenameColumns","Table.ReorderColumns","Table.Repeat","Table.ReplaceErrorValues","Table.ReplaceKeys","Table.ReplaceMatchingRows","Table.ReplaceRelationshipIdentity","Table.ReplaceRows","Table.ReplaceValue","Table.ReverseRows","Table.RowCount","Table.Schema","Table.SelectColumns","Table.SelectRows","Table.SelectRowsWithErrors","Table.SingleRow","Table.Skip","Table.Sort","Table.SplitColumn","Table.ToColumns","Table.ToList","Table.ToRecords","Table.ToRows","Table.TransformColumnNames","Table.TransformColumnTypes","Table.TransformColumns","Table.TransformRows","Table.Transpose","Table.Unpivot","Table.UnpivotOtherColumns","Table.View","Table.ViewFunction","TableAction.DeleteRows","TableAction.InsertRows","TableAction.UpdateRows","Tables.GetRelationships","Teradata.Database","Text.AfterDelimiter","Text.At","Text.BeforeDelimiter","Text.BetweenDelimiters","Text.Clean","Text.Combine","Text.Contains","Text.End","Text.EndsWith","Text.Format","Text.From","Text.FromBinary","Text.Insert","Text.Length","Text.Lower","Text.Middle","Text.NewGuid","Text.PadEnd","Text.PadStart","Text.PositionOf","Text.PositionOfAny","Text.Proper","Text.Range","Text.Remove","Text.RemoveRange","Text.Repeat","Text.Replace","Text.ReplaceRange","Text.Select","Text.Split","Text.SplitAny","Text.Start","Text.StartsWith","Text.ToBinary","Text.ToList","Text.Trim","Text.TrimEnd","Text.TrimStart","Text.Upper","Time.EndOfHour","Time.From","Time.FromText","Time.Hour","Time.Minute","Time.Second","Time.StartOfHour","Time.ToRecord","Time.ToText","Type.AddTableKey","Type.ClosedRecord","Type.Facets","Type.ForFunction","Type.ForRecord","Type.FunctionParameters","Type.FunctionRequiredParameters","Type.FunctionReturn","Type.Is","Type.IsNullable","Type.IsOpenRecord","Type.ListItem","Type.NonNullable","Type.OpenRecord","Type.RecordFields","Type.ReplaceFacets","Type.ReplaceTableKeys","Type.TableColumn","Type.TableKeys","Type.TableRow","Type.TableSchema","Type.Union","Uri.BuildQueryString","Uri.Combine","Uri.EscapeDataString","Uri.Parts","Value.Add","Value.As","Value.Compare","Value.Divide","Value.Equals","Value.Firewall","Value.FromText","Value.Is","Value.Metadata","Value.Multiply","Value.NativeQuery","Value.NullableEquals","Value.RemoveMetadata","Value.ReplaceMetadata","Value.ReplaceType","Value.Subtract","Value.Type","ValueAction.NativeStatement","ValueAction.Replace","Variable.Value","Web.Contents","Web.Page","WebAction.Request","Xml.Document","Xml.Tables"],builtinConstants:["BinaryEncoding.Base64","BinaryEncoding.Hex","BinaryOccurrence.Optional","BinaryOccurrence.Repeating","BinaryOccurrence.Required","ByteOrder.BigEndian","ByteOrder.LittleEndian","Compression.Deflate","Compression.GZip","CsvStyle.QuoteAfterDelimiter","CsvStyle.QuoteAlways","Culture.Current","Day.Friday","Day.Monday","Day.Saturday","Day.Sunday","Day.Thursday","Day.Tuesday","Day.Wednesday","ExtraValues.Error","ExtraValues.Ignore","ExtraValues.List","GroupKind.Global","GroupKind.Local","JoinAlgorithm.Dynamic","JoinAlgorithm.LeftHash","JoinAlgorithm.LeftIndex","JoinAlgorithm.PairwiseHash","JoinAlgorithm.RightHash","JoinAlgorithm.RightIndex","JoinAlgorithm.SortMerge","JoinKind.FullOuter","JoinKind.Inner","JoinKind.LeftAnti","JoinKind.LeftOuter","JoinKind.RightAnti","JoinKind.RightOuter","JoinSide.Left","JoinSide.Right","MissingField.Error","MissingField.Ignore","MissingField.UseNull","Number.E","Number.Epsilon","Number.NaN","Number.NegativeInfinity","Number.PI","Number.PositiveInfinity","Occurrence.All","Occurrence.First","Occurrence.Last","Occurrence.Optional","Occurrence.Repeating","Occurrence.Required","Order.Ascending","Order.Descending","Precision.Decimal","Precision.Double","QuoteStyle.Csv","QuoteStyle.None","RelativePosition.FromEnd","RelativePosition.FromStart","RoundingMode.AwayFromZero","RoundingMode.Down","RoundingMode.ToEven","RoundingMode.TowardZero","RoundingMode.Up","SapHanaDistribution.All","SapHanaDistribution.Connection","SapHanaDistribution.Off","SapHanaDistribution.Statement","SapHanaRangeOperator.Equals","SapHanaRangeOperator.GreaterThan","SapHanaRangeOperator.GreaterThanOrEquals","SapHanaRangeOperator.LessThan","SapHanaRangeOperator.LessThanOrEquals","SapHanaRangeOperator.NotEquals","TextEncoding.Ascii","TextEncoding.BigEndianUnicode","TextEncoding.Unicode","TextEncoding.Utf16","TextEncoding.Utf8","TextEncoding.Windows","TraceLevel.Critical","TraceLevel.Error","TraceLevel.Information","TraceLevel.Verbose","TraceLevel.Warning","WebMethod.Delete","WebMethod.Get","WebMethod.Head","WebMethod.Patch","WebMethod.Post","WebMethod.Put"],builtinTypes:["Action.Type","Any.Type","Binary.Type","BinaryEncoding.Type","BinaryOccurrence.Type","Byte.Type","ByteOrder.Type","Character.Type","Compression.Type","CsvStyle.Type","Currency.Type","Date.Type","DateTime.Type","DateTimeZone.Type","Day.Type","Decimal.Type","Double.Type","Duration.Type","ExtraValues.Type","Function.Type","GroupKind.Type","Guid.Type","Int16.Type","Int32.Type","Int64.Type","Int8.Type","JoinAlgorithm.Type","JoinKind.Type","JoinSide.Type","List.Type","Logical.Type","MissingField.Type","None.Type","Null.Type","Number.Type","Occurrence.Type","Order.Type","Password.Type","Percentage.Type","Precision.Type","QuoteStyle.Type","Record.Type","RelativePosition.Type","RoundingMode.Type","SapHanaDistribution.Type","SapHanaRangeOperator.Type","Single.Type","Table.Type","Text.Type","TextEncoding.Type","Time.Type","TraceLevel.Type","Type.Type","Uri.Type","WebMethod.Type"],tokenizer:{root:[[/#"[\w \.]+"/,"identifier.quote"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+([eE][\-+]?\d+)?/,"number"],[/(#?[a-z]+)\b/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@constants":"constant","@constructors":"constructor","@operatorKeywords":"operators","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.Type)\b/,{cases:{"@builtinTypes":"type","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/,{cases:{"@builtinFunctions":"keyword.function","@builtinConstants":"constant","@default":"identifier"}}],[/\b([a-zA-Z_][\w\.]*)\b/,"identifier"],{include:"@whitespace"},{include:"@comments"},{include:"@strings"},[/[{}()\[\]]/,"@brackets"],[/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/,"operators"],[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],strings:[['"',"string","@string"]],string:[['""',"string.escape"],['"',"string","@pop"],[".","string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/4407.f24a98c4.js.LICENSE.txt b/assets/js/4407.f24a98c4.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/4407.f24a98c4.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/4422.1cb367d3.js b/assets/js/4422.1cb367d3.js new file mode 100644 index 00000000000..b120edb9a1f --- /dev/null +++ b/assets/js/4422.1cb367d3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4422],{74422:(o,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var t=n(87462),r=(n(67294),n(3905));const s={title:"New Flow Errors on Unknown Property Access in Conditionals","short-title":"Unknown Props in Conditionals",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/new-flow-errors-on-unknown-property-access-in-conditionals-461da66ea10"},i=void 0,a={permalink:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals",source:"@site/blog/2018-03-16-New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals.md",title:"New Flow Errors on Unknown Property Access in Conditionals",description:"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown",date:"2018-03-16T00:00:00.000Z",formattedDate:"March 16, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{title:"New Flow Errors on Unknown Property Access in Conditionals","short-title":"Unknown Props in Conditionals",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/new-flow-errors-on-unknown-property-access-in-conditionals-461da66ea10"},prevItem:{title:"On the Roadmap: Exact Objects by Default",permalink:"/blog/2018/10/18/Exact-Objects-By-Default"},nextItem:{title:"Better Flow Error Messages for the JavaScript Ecosystem",permalink:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"}},l={authorsImageUrls:[void 0]},c=[],w={toc:c};function p(o){let{components:e,...n}=o;return(0,r.mdx)("wrapper",(0,t.Z)({},w,n,{components:e,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"TL;DR: Starting in 0.68.0, Flow will now error when you access unknown\nproperties in conditionals."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4469.b5252e80.js b/assets/js/4469.b5252e80.js new file mode 100644 index 00000000000..3218bd6c85f --- /dev/null +++ b/assets/js/4469.b5252e80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4469],{24469:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/4502.f5fec547.js b/assets/js/4502.f5fec547.js new file mode 100644 index 00000000000..b7f1b1cba05 --- /dev/null +++ b/assets/js/4502.f5fec547.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4502],{64502:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>c,frontMatter:()=>l,metadata:()=>s,toc:()=>d});var i=t(87462),o=(t(67294),t(3905));t(45475);const l={title:"Linting Overview",slug:"/linting",description:"Learn how to configure Flow's linter to find potentially harmful code."},r=void 0,s={unversionedId:"linting/index",id:"linting/index",title:"Linting Overview",description:"Learn how to configure Flow's linter to find potentially harmful code.",source:"@site/docs/linting/index.md",sourceDirName:"linting",slug:"/linting",permalink:"/en/docs/linting",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/linting/index.md",tags:[],version:"current",frontMatter:{title:"Linting Overview",slug:"/linting",description:"Learn how to configure Flow's linter to find potentially harmful code."},sidebar:"docsSidebar",previous:{title:"Error Suppressions",permalink:"/en/docs/errors"},next:{title:"Flowlint Comments",permalink:"/en/docs/linting/flowlint-comments"}},a={},d=[{value:"Configuring Lints in the .flowconfig",id:"toc-configuring-lints-in-the-flowconfig",level:3},{value:"Configuring Lints from the CLI",id:"toc-configuring-lints-from-the-cli",level:3},{value:"Configuring Lints with Comments",id:"toc-configuring-lints-with-comments",level:3},{value:"Lint Settings Precedence",id:"toc-lint-settings-precedence",level:3},{value:"Severity Levels and Meanings",id:"toc-severity-levels-and-meanings",level:3}],m={toc:d};function c(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,i.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Flow contains a linting framework that can tell you about more than just type errors. This framework is highly configurable in order to show you the information you want and hide the information you don't."),(0,o.mdx)("h3",{id:"toc-configuring-lints-in-the-flowconfig"},"Configuring Lints in the ",(0,o.mdx)("inlineCode",{parentName:"h3"},".flowconfig")),(0,o.mdx)("p",null,"Lint settings can be specified in the ",(0,o.mdx)("inlineCode",{parentName:"p"},"[lints]")," section of the ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig")," as a list of ",(0,o.mdx)("inlineCode",{parentName:"p"},"rule=severity")," pairs. These settings apply globally to the entire project."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre"},"[lints]\nall=warn\nuntyped-type-import=error\nsketchy-null-bool=off\n")),(0,o.mdx)("h3",{id:"toc-configuring-lints-from-the-cli"},"Configuring Lints from the CLI"),(0,o.mdx)("p",null,"Lint settings can be specified using the ",(0,o.mdx)("inlineCode",{parentName:"p"},"--lints")," flag of a Flow server command as a comma-delimited list of ",(0,o.mdx)("inlineCode",{parentName:"p"},"rule=severity")," pairs. These settings apply globally to the entire project."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre"},'flow start --lints "all=warn, untyped-type-import=error, sketchy-null-bool=off"\n')),(0,o.mdx)("h3",{id:"toc-configuring-lints-with-comments"},"Configuring Lints with Comments"),(0,o.mdx)("p",null,"Lint settings can be specified inside a file using ",(0,o.mdx)("inlineCode",{parentName:"p"},"flowlint")," comments. These\nsettings apply to a region of a file, or a single line, or part of a line. For\nmore details see ",(0,o.mdx)("a",{parentName:"p",href:"./flowlint-comments"},"Flowlint Comments"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":5,"endLine":4,"endColumn":5,"description":"Sketchy null check on number [1] which is potentially 0. Perhaps you meant to check for null or undefined [2]? [sketchy-null-number]"}]','[{"startLine":4,"startColumn":5,"endLine":4,"endColumn":5,"description":"Sketchy':!0,null:!0,check:!0,on:!0,number:!0,"[1]":!0,which:!0,is:!0,potentially:!0,"0.":!0,Perhaps:!0,you:!0,meant:!0,to:!0,for:!0,or:!0,undefined:!0,"[2]?":!0,'[sketchy-null-number]"}]':!0},"// flowlint sketchy-null:error\nconst x: ?number = 0;\n\nif (x) {} // Error\n\n// flowlint-next-line sketchy-null:off\nif (x) {} // No Error\n\nif (x) {} /* flowlint-line sketchy-null:off */ // No Error\n\n// flowlint sketchy-null:off\nif (x) {} // No Error\nif (x) {} // No Error\n")),(0,o.mdx)("h3",{id:"toc-lint-settings-precedence"},"Lint Settings Precedence"),(0,o.mdx)("p",null,"Lint settings in ",(0,o.mdx)("inlineCode",{parentName:"p"},"flowlint")," comments have the highest priority, followed by lint rules in the ",(0,o.mdx)("inlineCode",{parentName:"p"},"--lints")," flag, followed by the ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig"),".\nThis order allows you to use ",(0,o.mdx)("inlineCode",{parentName:"p"},"flowlint")," comments for fine-grained linting control, the ",(0,o.mdx)("inlineCode",{parentName:"p"},"--lints")," flag for trying out new lint settings, and the ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig")," for stable project-wide settings."),(0,o.mdx)("p",null,"Within the ",(0,o.mdx)("inlineCode",{parentName:"p"},"--lints")," flag and the ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig"),", rules lower down override rules higher up, allowing you to write things like"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre"},"[lints]\n# warn on all sketchy-null checks\nsketchy-null=warn\n# ... except for booleans\nsketchy-null-bool=off\n")),(0,o.mdx)("p",null,"The lint settings parser is fairly intelligent and will stop you if you write a redundant rule, a rule that gets completely overwritten, or an unused flowlint suppression. This should prevent most accidental misconfigurations of lint rules."),(0,o.mdx)("h3",{id:"toc-severity-levels-and-meanings"},"Severity Levels and Meanings"),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"off:"),"\nThe lint is ignored. Setting a lint to ",(0,o.mdx)("inlineCode",{parentName:"p"},"off")," is similar to suppressing a type error with a suppression comment, except with much more granularity."),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"warn:"),"\nWarnings are a new severity level introduced by the linting framework. They are treated differently than errors in a couple of ways:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"Warnings don't affect the exit code of Flow. If Flow finds warnings but no errors, it still returns 0."),(0,o.mdx)("li",{parentName:"ul"},"Warnings aren't shown on the CLI by default, to avoid spew. CLI warnings can be\nenabled by passing the ",(0,o.mdx)("inlineCode",{parentName:"li"},"--include-warnings")," flag to the Flow server or the\nFlow client, or by setting ",(0,o.mdx)("inlineCode",{parentName:"li"},"include_warnings=true")," in the ",(0,o.mdx)("inlineCode",{parentName:"li"},".flowconfig"),".\nThis is good for smaller projects that want to see all project warnings at once.")),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"error:"),"\nLints with severity ",(0,o.mdx)("inlineCode",{parentName:"p"},"error")," are treated exactly the same as any other Flow error."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4506.77a2991a.js b/assets/js/4506.77a2991a.js new file mode 100644 index 00000000000..1222b383227 --- /dev/null +++ b/assets/js/4506.77a2991a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4506],{64506:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>r,contentTitle:()=>s,default:()=>c,frontMatter:()=>l,metadata:()=>a,toc:()=>d});var o=i(87462),t=(i(67294),i(3905));i(45475);const l={title:".flowconfig [version]",slug:"/config/version"},s=void 0,a={unversionedId:"config/version",id:"config/version",title:".flowconfig [version]",description:"You can specify in the .flowconfig which version of Flow you expect to use.",source:"@site/docs/config/version.md",sourceDirName:"config",slug:"/config/version",permalink:"/en/docs/config/version",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/version.md",tags:[],version:"current",frontMatter:{title:".flowconfig [version]",slug:"/config/version"},sidebar:"docsSidebar",previous:{title:".flowconfig",permalink:"/en/docs/config"},next:{title:".flowconfig [options]",permalink:"/en/docs/config/options"}},r={},d=[],m={toc:d};function c(e){let{components:n,...i}=e;return(0,t.mdx)("wrapper",(0,o.Z)({},m,i,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"You can specify in the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," which version of Flow you expect to use.\nYou do this with the ",(0,t.mdx)("inlineCode",{parentName:"p"},"[version]")," section. If this section is omitted or left\nblank, then any version is allowed. If a version is specified and not matched,\nthen Flow will immediately error and exit."),(0,t.mdx)("p",null,"So if you have the following in your ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[version]\n0.22.0\n")),(0,t.mdx)("p",null,"and you try to use Flow v0.21.0, then Flow will immediately error with the\nmessage"),(0,t.mdx)("p",null,(0,t.mdx)("inlineCode",{parentName:"p"},'"Wrong version of Flow. The config specifies version 0.22.0 but this is version\n0.21.0"')),(0,t.mdx)("p",null,"So far, we support the following ways to specify supported versions"),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},"Explicit versions, (e.g. ",(0,t.mdx)("inlineCode",{parentName:"li"},"0.22.0"),", which only matches ",(0,t.mdx)("inlineCode",{parentName:"li"},"0.22.0"),")."),(0,t.mdx)("li",{parentName:"ul"},"Intersection ranges, which are ANDed together, (e.g. ",(0,t.mdx)("inlineCode",{parentName:"li"},">=0.13.0 <0.14.0"),",\nwhich matches ",(0,t.mdx)("inlineCode",{parentName:"li"},"0.13.0")," and ",(0,t.mdx)("inlineCode",{parentName:"li"},"0.13.5")," but not ",(0,t.mdx)("inlineCode",{parentName:"li"},"0.14.0"),")."),(0,t.mdx)("li",{parentName:"ul"},"Caret ranges, which allow changes that do not modify the left-most non-zero\ndigit (e.g. ",(0,t.mdx)("inlineCode",{parentName:"li"},"^0.13.0")," expands into ",(0,t.mdx)("inlineCode",{parentName:"li"},">=0.13.0 <0.14.0"),", and ",(0,t.mdx)("inlineCode",{parentName:"li"},"^0.13.1")," expands\ninto ",(0,t.mdx)("inlineCode",{parentName:"li"},">=0.13.1 <0.14.0"),", whereas ",(0,t.mdx)("inlineCode",{parentName:"li"},"^1.2.3")," expands into ",(0,t.mdx)("inlineCode",{parentName:"li"},">=1.2.3 <2.0.0"),").")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4508.81b19c11.js b/assets/js/4508.81b19c11.js new file mode 100644 index 00000000000..10bc91dd282 --- /dev/null +++ b/assets/js/4508.81b19c11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4508],{94508:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var a=t(87462),o=(t(67294),t(3905));t(45475);const r={title:"Objects",slug:"/types/objects"},i=void 0,s={unversionedId:"types/objects",id:"types/objects",title:"Objects",description:"Objects can be used in many different ways in JavaScript.",source:"@site/docs/types/objects.md",sourceDirName:"types",slug:"/types/objects",permalink:"/en/docs/types/objects",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/objects.md",tags:[],version:"current",frontMatter:{title:"Objects",slug:"/types/objects"},sidebar:"docsSidebar",previous:{title:"Functions",permalink:"/en/docs/types/functions"},next:{title:"Arrays",permalink:"/en/docs/types/arrays"}},l={},p=[{value:"Optional object type properties",id:"toc-optional-object-type-properties",level:2},{value:"Read-only object properties",id:"read-only-object-properties",level:2},{value:"Object methods",id:"toc-object-methods",level:2},{value:"Object type inference",id:"toc-object-type-inference",level:2},{value:"Exact and inexact object types",id:"exact-and-inexact-object-types",level:2},{value:"Object type spread",id:"object-type-spread",level:2},{value:"Objects as maps",id:"toc-objects-as-maps",level:2},{value:"Keys, values, and indexed access",id:"keys-values-and-indexed-access",level:2},{value:"Arbitrary objects",id:"arbitrary-objects",level:2}],c={toc:p};function m(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Objects can be used in many different ways in JavaScript.\nThere are a number of ways to type them in order to support the different use cases."),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"Exact object types: An object which has exactly a set of properties, e.g. ",(0,o.mdx)("inlineCode",{parentName:"li"},"{a: number}"),". We recommend using exact object types rather than inexact ones, as they are more precise and interact better with other type system features, like ",(0,o.mdx)("a",{parentName:"li",href:"#object-type-spread"},"spreads"),"."),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("a",{parentName:"li",href:"#exact-and-inexact-object-types"},"Inexact object types"),": An object with at least a set of properties, but potentially other, unknown ones, e.g. ",(0,o.mdx)("inlineCode",{parentName:"li"},"{a: number, ...}"),"."),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("a",{parentName:"li",href:"#toc-objects-as-maps"},"Objects with indexers"),": An object that can used as a map from a key type to a value type, e.g. ",(0,o.mdx)("inlineCode",{parentName:"li"},"{[string]: boolean}"),"."),(0,o.mdx)("li",{parentName:"ul"},(0,o.mdx)("a",{parentName:"li",href:"../interfaces"},"Interfaces"),": Interfaces are separate from object types. Only they can describe instances of classes. E.g. ",(0,o.mdx)("inlineCode",{parentName:"li"},"interfaces {a: number}"),".")),(0,o.mdx)("p",null,"Object types try to match the syntax for objects in JavaScript as much as\npossible. Using curly braces ",(0,o.mdx)("inlineCode",{parentName:"p"},"{}")," and name-value pairs using a colon ",(0,o.mdx)("inlineCode",{parentName:"p"},":")," split\nby commas ",(0,o.mdx)("inlineCode",{parentName:"p"},","),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const obj1: {foo: boolean} = {foo: true};\nconst obj2: {\n foo: number,\n bar: boolean,\n baz: string,\n} = {\n foo: 1,\n bar: true,\n baz: 'three',\n};\n")),(0,o.mdx)("h2",{id:"toc-optional-object-type-properties"},"Optional object type properties"),(0,o.mdx)("p",null,"In JavaScript, accessing a property that doesn't exist evaluates to\n",(0,o.mdx)("inlineCode",{parentName:"p"},"undefined"),". This is a common source of errors in JavaScript programs, so Flow\nturns these into type errors."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":5,"endLine":2,"endColumn":7,"description":"Cannot get `obj.bar` because property `bar` is missing in object literal [1]. [prop-missing]"}]','[{"startLine":2,"startColumn":5,"endLine":2,"endColumn":7,"description":"Cannot':!0,get:!0,"`obj.bar`":!0,because:!0,property:!0,"`bar`":!0,is:!0,missing:!0,in:!0,object:!0,literal:!0,"[1].":!0,'[prop-missing]"}]':!0},'const obj = {foo: "bar"};\nobj.bar; // Error!\n')),(0,o.mdx)("p",null,"If you have an object that sometimes does not have a property you can make it\nan ",(0,o.mdx)("em",{parentName:"p"},"optional property")," by adding a question mark ",(0,o.mdx)("inlineCode",{parentName:"p"},"?")," after the property name in\nthe object type."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":11,"endLine":4,"endColumn":17,"description":"Cannot assign `\'hello\'` to `obj.foo` because string [1] is incompatible with boolean [2]. [incompatible-type]"}]','[{"startLine":4,"startColumn":11,"endLine":4,"endColumn":17,"description":"Cannot':!0,assign:!0,"`'hello'`":!0,to:!0,"`obj.foo`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-type]"}]':!0},"const obj: {foo?: boolean} = {};\n\nobj.foo = true; // Works!\nobj.foo = 'hello'; // Error!\n")),(0,o.mdx)("p",null,"In addition to their set value type, these optional properties can either be\n",(0,o.mdx)("inlineCode",{parentName:"p"},"void")," or omitted altogether. However, they cannot be ",(0,o.mdx)("inlineCode",{parentName:"p"},"null"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":21,"endLine":7,"endColumn":24,"description":"Cannot call `acceptsObject` with object literal bound to `value` because null [1] is incompatible with string [2] in property `foo`. [incompatible-call]"}]','[{"startLine":7,"startColumn":21,"endLine":7,"endColumn":24,"description":"Cannot':!0,call:!0,"`acceptsObject`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`value`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2]":!0,in:!0,property:!0,"`foo`.":!0,'[incompatible-call]"}]':!0},'function acceptsObject(value: {foo?: string}) { /* ... */ }\n\nacceptsObject({foo: "bar"}); // Works!\nacceptsObject({foo: undefined}); // Works!\nacceptsObject({}); // Works!\n\nacceptsObject({foo: null}); // Error!\n')),(0,o.mdx)("p",null,"To make all properties in an object type optional, you can use the ",(0,o.mdx)("a",{parentName:"p",href:"../utilities/#toc-partial"},(0,o.mdx)("inlineCode",{parentName:"a"},"Partial"))," utility type:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Obj = {\n foo: string,\n};\n\ntype PartialObj = Partial; // Same as `{foo?: string}`\n")),(0,o.mdx)("p",null,"To make all properties in an object type required, you can use the ",(0,o.mdx)("a",{parentName:"p",href:"../utilities/#toc-required"},(0,o.mdx)("inlineCode",{parentName:"a"},"Required"))," utility type:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type PartialObj = {\n foo?: string,\n};\n\ntype Obj = Required; // Same as `{foo: string}`\n")),(0,o.mdx)("h2",{id:"read-only-object-properties"},"Read-only object properties"),(0,o.mdx)("p",null,"You can add ",(0,o.mdx)("a",{parentName:"p",href:"../../lang/variance"},"variance")," annotations to your object properties."),(0,o.mdx)("p",null,"To mark a property as read-only, you can use the ",(0,o.mdx)("inlineCode",{parentName:"p"},"+"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":5,"endLine":7,"endColumn":7,"description":"Cannot assign `\'hi\'` to `o.foo` because property `foo` is not writable. [cannot-write]"}]','[{"startLine":7,"startColumn":5,"endLine":7,"endColumn":7,"description":"Cannot':!0,assign:!0,"`'hi'`":!0,to:!0,"`o.foo`":!0,because:!0,property:!0,"`foo`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"}]':!0},"type Obj = {\n +foo: string,\n};\n\nfunction func(o: Obj) {\n const x: string = o.foo; // Works!\n o.foo = 'hi'; // Error!\n}\n")),(0,o.mdx)("p",null,"To make all object properties in an object type read-only, you can use the ",(0,o.mdx)("a",{parentName:"p",href:"../utilities/#toc-readonly"},(0,o.mdx)("inlineCode",{parentName:"a"},"$ReadOnly"))," utility type:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Obj = {\n foo: string,\n};\n\ntype ReadOnlyObj = $ReadOnly; // Same as `{+foo: string}`\n")),(0,o.mdx)("p",null,"You can also mark your properties as write-only with ",(0,o.mdx)("inlineCode",{parentName:"p"},"-"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":23,"endLine":6,"endColumn":25,"description":"Cannot get `o.foo` because property `foo` is not readable. [cannot-read]"}]','[{"startLine":6,"startColumn":23,"endLine":6,"endColumn":25,"description":"Cannot':!0,get:!0,"`o.foo`":!0,because:!0,property:!0,"`foo`":!0,is:!0,not:!0,"readable.":!0,'[cannot-read]"}]':!0},"type Obj = {\n -foo: string,\n};\n\nfunction func(o: Obj) {\n const x: string = o.foo; // Error!\n o.foo = 'hi'; // Works!\n}\n")),(0,o.mdx)("h2",{id:"toc-object-methods"},"Object methods"),(0,o.mdx)("p",null,"Method syntax in objects has the same runtime behavior as a function property. These two objects are equivalent at runtime:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const a = {\n foo: function () { return 3; }\n};\nconst b = {\n foo() { return 3; }\n}\n")),(0,o.mdx)("p",null,"However, despite their equivalent runtime behavior, Flow checks them slightly differently. In particular, object\nproperties written with method syntax are ",(0,o.mdx)("a",{parentName:"p",href:"../../lang/variance"},"read-only"),"; Flow will not allow you to write a new value to them."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":3,"endLine":4,"endColumn":5,"description":"Cannot assign function to `b.foo` because property `foo` is not writable. [cannot-write]"}]','[{"startLine":4,"startColumn":3,"endLine":4,"endColumn":5,"description":"Cannot':!0,assign:!0,function:!0,to:!0,"`b.foo`":!0,because:!0,property:!0,"`foo`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"}]':!0},"const b = {\n foo() { return 3; }\n}\nb.foo = () => { return 2; } // Error!\n")),(0,o.mdx)("p",null,"Additionally, object methods do not allow the use of ",(0,o.mdx)("inlineCode",{parentName:"p"},"this")," in their bodies, in order to guarantee simple behavior\nfor their ",(0,o.mdx)("inlineCode",{parentName:"p"},"this")," parameters. Prefer to reference the object by name instead of using ",(0,o.mdx)("inlineCode",{parentName:"p"},"this"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":18,"endLine":3,"endColumn":21,"description":"Cannot reference `this` from within method `foo` [1]. For safety, Flow restricts access to `this` inside object methods since these methods may be unbound and rebound. Consider replacing the reference to `this` with the name of the object, or rewriting the object as a class. [object-this-reference]"}]','[{"startLine":3,"startColumn":18,"endLine":3,"endColumn":21,"description":"Cannot':!0,reference:!0,"`this`":!0,from:!0,within:!0,method:!0,"`foo`":!0,"[1].":!0,For:!0,"safety,":!0,Flow:!0,restricts:!0,access:!0,to:!0,inside:!0,object:!0,methods:!0,since:!0,these:!0,may:!0,be:!0,unbound:!0,and:!0,"rebound.":!0,Consider:!0,replacing:!0,the:!0,with:!0,name:!0,of:!0,"object,":!0,or:!0,rewriting:!0,as:!0,a:!0,"class.":!0,'[object-this-reference]"}]':!0},"const a = {\n x: 3,\n foo() { return this.x; } // Error!\n}\nconst b = {\n x: 3,\n foo(): number { return b.x; } // Works!\n}\n")),(0,o.mdx)("h2",{id:"toc-object-type-inference"},"Object type inference"),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},"NOTE: The behavior of empty object literals has changed in version 0.191 -\nsee this ",(0,o.mdx)("a",{parentName:"p",href:"https://medium.com/flow-type/improved-handling-of-the-empty-object-in-flow-ead91887e40c"},"blog post")," for more details.")),(0,o.mdx)("p",null,"When you create an object value, its type is set at the creation point. You cannot add new properties,\nor modify the type of existing properties."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":5,"endLine":9,"endColumn":11,"description":"Cannot get `obj.UNKNOWN` because property `UNKNOWN` is missing in object literal [1]. [prop-missing]"},{"startLine":10,"startColumn":11,"endLine":10,"endColumn":14,"description":"Cannot assign `true` to `obj.foo` because boolean [1] is incompatible with number [2]. [incompatible-type]"}]','[{"startLine":9,"startColumn":5,"endLine":9,"endColumn":11,"description":"Cannot':!0,get:!0,"`obj.UNKNOWN`":!0,because:!0,property:!0,"`UNKNOWN`":!0,is:!0,missing:!0,in:!0,object:!0,literal:!0,"[1].":!0,'[prop-missing]"},{"startLine":10,"startColumn":11,"endLine":10,"endColumn":14,"description":"Cannot':!0,assign:!0,"`true`":!0,to:!0,"`obj.foo`":!0,boolean:!0,"[1]":!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-type]"}]':!0},"const obj = {\n foo: 1,\n bar: true,\n};\n\nconst n: number = obj.foo; // Works!\nconst b: boolean = obj.bar; // Works!\n\nobj.UNKNOWN; // Error - prop `UNKNOWN` is not in the object value\nobj.foo = true; // Error - `foo` is of type `number`\n")),(0,o.mdx)("p",null,"If you supply a type annotation, you can add properties missing in the object value as optional properties:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const obj: {\n foo?: number,\n bar: boolean,\n} = {\n // `foo` is not set here\n bar: true,\n};\n\nconst n: number | void = obj.foo; // Works!\nconst b: boolean = obj.bar; // Works!\n\nif (b) {\n obj.foo = 3; // Works!\n}\n")),(0,o.mdx)("p",null,"You can also give a wider type for a particular property:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const obj: {\n foo: number | string,\n} = {\n foo: 1,\n};\n\nconst foo: number | string = obj.foo; // Works!\nobj.foo = "hi"; // Works!\n')),(0,o.mdx)("p",null,"The empty object can be interpreted as a ",(0,o.mdx)("a",{parentName:"p",href:"#toc-objects-as-maps"},"dictionary"),", if you supply the appropriate type annotation:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const dict: {[string]: number} = {}; // Works!\n")),(0,o.mdx)("p",null,"You may need to add type annotations to an object literal, if it references itself recursively (beyond simple cases):"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":7,"endLine":1,"endColumn":11,"description":"Cannot compute a type for `Utils` because its definition includes references to itself [1]. Please add an annotation to these definitions [2] [3] [recursive-definition]"}]','[{"startLine":1,"startColumn":7,"endLine":1,"endColumn":11,"description":"Cannot':!0,compute:!0,a:!0,type:!0,for:!0,"`Utils`":!0,because:!0,its:!0,definition:!0,includes:!0,references:!0,to:!0,itself:!0,"[1].":!0,Please:!0,add:!0,an:!0,annotation:!0,these:!0,definitions:!0,"[2]":!0,"[3]":!0,'[recursive-definition]"}]':!0},"const Utils = { // Error\n foo() {\n return Utils.bar();\n },\n bar() {\n return 1;\n }\n};\n\nconst FixedUtils = { // Works!\n foo(): number {\n return FixedUtils.bar();\n },\n bar(): number {\n return 1;\n }\n};\n")),(0,o.mdx)("h2",{id:"exact-and-inexact-object-types"},"Exact and inexact object types"),(0,o.mdx)("p",null,"Exact object types are the default (as of version 0.202), unless you have set ",(0,o.mdx)("a",{parentName:"p",href:"../../config/options#toc-exact-by-default"},(0,o.mdx)("inlineCode",{parentName:"a"},"exact_by_default=false"))," in your ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig"),"."),(0,o.mdx)("p",null,"Inexact objects (denoted with the ",(0,o.mdx)("inlineCode",{parentName:"p"},"..."),") allow extra properties to be passed in:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function method(obj: {foo: string, ...}) { /* ... */ }\n\nmethod({foo: "test", bar: 42}); // Works!\n')),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},(0,o.mdx)("strong",{parentName:"p"},"Note:")," This is because of ",(0,o.mdx)("a",{parentName:"p",href:"../../lang/width-subtyping"},'"width subtyping"'),".")),(0,o.mdx)("p",null,"But exact object types do not:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":8,"endLine":3,"endColumn":29,"description":"Cannot call `method` with object literal bound to `obj` because property `bar` is missing in object type [1] but exists in object literal [2]. [prop-missing]"}]','[{"startLine":3,"startColumn":8,"endLine":3,"endColumn":29,"description":"Cannot':!0,call:!0,"`method`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`obj`":!0,because:!0,property:!0,"`bar`":!0,is:!0,missing:!0,in:!0,type:!0,"[1]":!0,but:!0,exists:!0,"[2].":!0,'[prop-missing]"}]':!0},'function method(obj: {foo: string}) { /* ... */ }\n\nmethod({foo: "test", bar: 42}); // Error!\n')),(0,o.mdx)("p",null,"If you have set ",(0,o.mdx)("inlineCode",{parentName:"p"},"exact_by_default=false"),', you can denote exact object types by adding a pair of "vertical bars" or "pipes" to the inside of the curly braces:'),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":28,"endLine":1,"endColumn":56,"description":"Cannot assign object literal to `x` because property `bar` is missing in object type [1] but exists in object literal [2]. [prop-missing]"}]','[{"startLine":1,"startColumn":28,"endLine":1,"endColumn":56,"description":"Cannot':!0,assign:!0,object:!0,literal:!0,to:!0,"`x`":!0,because:!0,property:!0,"`bar`":!0,is:!0,missing:!0,in:!0,type:!0,"[1]":!0,but:!0,exists:!0,"[2].":!0,'[prop-missing]"}]':!0},'const x: {|foo: string|} = {foo: "Hello", bar: "World!"}; // Error!\n')),(0,o.mdx)("p",null,(0,o.mdx)("a",{parentName:"p",href:"../intersections"},"Intersections")," of exact object types may not work as you expect. If you need to combine exact object types, use ",(0,o.mdx)("a",{parentName:"p",href:"#object-type-spread"},"object type spread"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":33,"endLine":8,"endColumn":53,"description":"Cannot assign object literal to `fooBarFail` because property `bar` is missing in `FooT` [1] but exists in object literal [2]. [prop-missing]"},{"startLine":8,"startColumn":33,"endLine":8,"endColumn":53,"description":"Cannot assign object literal to `fooBarFail` because property `foo` is missing in `BarT` [1] but exists in object literal [2]. [prop-missing]"}]','[{"startLine":8,"startColumn":33,"endLine":8,"endColumn":53,"description":"Cannot':!0,assign:!0,object:!0,literal:!0,to:!0,"`fooBarFail`":!0,because:!0,property:!0,"`bar`":!0,is:!0,missing:!0,in:!0,"`FooT`":!0,"[1]":!0,but:!0,exists:!0,"[2].":!0,'[prop-missing]"},{"startLine":8,"startColumn":33,"endLine":8,"endColumn":53,"description":"Cannot':!0,"`foo`":!0,"`BarT`":!0,'[prop-missing]"}]':!0},"type FooT = {foo: string};\ntype BarT = {bar: number};\n\ntype FooBarT = {...FooT, ...BarT};\nconst fooBar: FooBarT = {foo: '123', bar: 12}; // Works!\n\ntype FooBarFailT = FooT & BarT;\nconst fooBarFail: FooBarFailT = {foo: '123', bar: 12}; // Error!\n")),(0,o.mdx)("h2",{id:"object-type-spread"},"Object type spread"),(0,o.mdx)("p",null,"Just like you can spread object values, you can also spread object types:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ObjA = {\n a: number,\n b: string,\n};\n\nconst x: ObjA = {a: 1, b: \"hi\"};\n\ntype ObjB = {\n ...ObjA,\n c: boolean,\n};\n\nconst y: ObjB = {a: 1, b: 'hi', c: true}; // Works!\nconst z: ObjB = {...x, c: true}; // Works!\n")),(0,o.mdx)("p",null,"You have to be careful spreading inexact objects.\nThe resulting object must also be inexact,\nand the spread inexact object may have unknown properties that can override previous properties in unknown ways:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":13,"endLine":10,"endColumn":1,"description":"Flow cannot determine a type for object type [1]. `Inexact` [2] is inexact, so it may contain `c` with a type that conflicts with `c`\'s definition in object type [1]. Try making `Inexact` [2] exact. [cannot-spread-inexact]"},{"startLine":9,"startColumn":6,"endLine":9,"endColumn":12,"description":"inexact `Inexact` [1] is incompatible with exact object type [2]. [incompatible-exact]"}]','[{"startLine":7,"startColumn":13,"endLine":10,"endColumn":1,"description":"Flow':!0,cannot:!0,determine:!0,a:!0,type:!0,for:!0,object:!0,"[1].":!0,"`Inexact`":!0,"[2]":!0,is:!0,"inexact,":!0,so:!0,it:!0,may:!0,contain:!0,"`c`":!0,with:!0,that:!0,conflicts:!0,"`c`'s":!0,definition:!0,in:!0,Try:!0,making:!0,"exact.":!0,'[cannot-spread-inexact]"},{"startLine":9,"startColumn":6,"endLine":9,"endColumn":12,"description":"inexact':!0,"[1]":!0,incompatible:!0,exact:!0,"[2].":!0,'[incompatible-exact]"}]':!0},"type Inexact = {\n a: number,\n b: string,\n ...\n};\n\ntype ObjB = { // Error!\n c: boolean,\n ...Inexact,\n};\n\nconst x: ObjB = {a:1, b: 'hi', c: true};\n")),(0,o.mdx)("p",null,"The same issue exists with objects with ",(0,o.mdx)("a",{parentName:"p",href:"#toc-objects-as-maps"},"indexers"),", as they also have unknown keys:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":13,"endLine":8,"endColumn":1,"description":"Flow cannot determine a type for object type [1]. `Dict` [2] cannot be spread because the indexer string [3] may overwrite properties with explicit keys in a way that Flow cannot track. Try spreading `Dict` [2] first or remove the indexer. [cannot-spread-indexer]"}]','[{"startLine":5,"startColumn":13,"endLine":8,"endColumn":1,"description":"Flow':!0,cannot:!0,determine:!0,a:!0,type:!0,for:!0,object:!0,"[1].":!0,"`Dict`":!0,"[2]":!0,be:!0,spread:!0,because:!0,the:!0,indexer:!0,string:!0,"[3]":!0,may:!0,overwrite:!0,properties:!0,with:!0,explicit:!0,keys:!0,in:!0,way:!0,that:!0,Flow:!0,"track.":!0,Try:!0,spreading:!0,first:!0,or:!0,remove:!0,"indexer.":!0,'[cannot-spread-indexer]"}]':!0},"type Dict = {\n [string]: number,\n};\n\ntype ObjB = { // Error!\n c: boolean,\n ...Dict,\n};\n\nconst x: ObjB = {a: 1, b: 2, c: true};\n")),(0,o.mdx)("p",null,'Spreading an object value at runtime only spreads "own" properties, that is properties that are on the object directly, not the prototype chain.\nObject type spread works in the same way.\nBecause of this, you can\'t spread ',(0,o.mdx)("a",{parentName:"p",href:"../interfaces"},"interfaces"),', as they don\'t track whether a property is "own" or not:'),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":13,"endLine":9,"endColumn":1,"description":"Flow cannot determine a type for object type [1]. `Iface` [2] cannot be spread because interfaces do not track the own-ness of their properties. Try using an object type instead. [cannot-spread-interface]"}]','[{"startLine":6,"startColumn":13,"endLine":9,"endColumn":1,"description":"Flow':!0,cannot:!0,determine:!0,a:!0,type:!0,for:!0,object:!0,"[1].":!0,"`Iface`":!0,"[2]":!0,be:!0,spread:!0,because:!0,interfaces:!0,do:!0,not:!0,track:!0,the:!0,"own-ness":!0,of:!0,their:!0,"properties.":!0,Try:!0,using:!0,an:!0,"instead.":!0,'[cannot-spread-interface]"}]':!0},"interface Iface {\n a: number;\n b: string;\n}\n\ntype ObjB = { // Error!\n c: boolean,\n ...Iface,\n};\n\nconst x: ObjB = {a: 1, b: 'hi', c: true};\n")),(0,o.mdx)("h2",{id:"toc-objects-as-maps"},"Objects as maps"),(0,o.mdx)("p",null,"JavaScript includes a ",(0,o.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map"},(0,o.mdx)("inlineCode",{parentName:"a"},"Map"))," class,\nbut it is still very common to use objects as maps as well. In this use case, an object\nwill likely have properties added to it and retrieved throughout its lifecycle.\nFurthermore, the property keys may not even be known statically, so writing out\na type annotation would not be possible."),(0,o.mdx)("p",null,'For objects like these, Flow provides a special kind of property, called an\n"indexer property." An indexer property allows reads and writes using any key\nthat matches the indexer key type.'),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const o: {[string]: number} = {};\no["foo"] = 0;\no["bar"] = 1;\nconst foo: number = o["foo"];\n')),(0,o.mdx)("p",null,"An indexer can be optionally named, for documentation purposes:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const obj: {[user_id: number]: string} = {};\nobj[1] = "Julia";\nobj[2] = "Camille";\nobj[3] = "Justin";\nobj[4] = "Mark";\n')),(0,o.mdx)("p",null,"When an object type has an indexer property, property accesses are assumed to\nhave the annotated type, even if the object does not have a value in that slot\nat runtime. It is the programmer's responsibility to ensure the access is safe,\nas with arrays."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const obj: {[number]: string} = {};\nobj[42].length; // No type error, but will throw at runtime\n")),(0,o.mdx)("p",null,"Indexer properties can be mixed with named properties:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const obj: {\n size: number,\n [id: number]: string\n} = {\n size: 0\n};\n\nfunction add(id: number, name: string) {\n obj[id] = name;\n obj.size++;\n}\n")),(0,o.mdx)("p",null,"You can mark an indexer property as read-only (or write-only) using ",(0,o.mdx)("a",{parentName:"p",href:"../../lang/variance"},"variance")," annotations:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ReadOnly = {+[string]: number};\ntype WriteOnly = {-[string]: number};\n")),(0,o.mdx)("h2",{id:"keys-values-and-indexed-access"},"Keys, values, and indexed access"),(0,o.mdx)("p",null,"You can extract the keys of an object type using the ",(0,o.mdx)("a",{parentName:"p",href:"../utilities/#toc-keys"},(0,o.mdx)("inlineCode",{parentName:"a"},"$Keys"))," utility type:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":13,"endLine":12,"endColumn":16,"description":"Cannot call `acceptsKeys` with `\'hi\'` bound to `k` because property `hi` is missing in `Obj` [1]. [prop-missing]"}]','[{"startLine":12,"startColumn":13,"endLine":12,"endColumn":16,"description":"Cannot':!0,call:!0,"`acceptsKeys`":!0,with:!0,"`'hi'`":!0,bound:!0,to:!0,"`k`":!0,because:!0,property:!0,"`hi`":!0,is:!0,missing:!0,in:!0,"`Obj`":!0,"[1].":!0,'[prop-missing]"}]':!0},"type Obj = {\n foo: string,\n bar: number,\n};\n\ntype T = $Keys;\n\nfunction acceptsKeys(k: T) { /* ... */ }\n\nacceptsKeys('foo'); // Works!\nacceptsKeys('bar'); // Works!\nacceptsKeys('hi'); // Error!\n")),(0,o.mdx)("p",null,"You can extract the values of an object type using the ",(0,o.mdx)("a",{parentName:"p",href:"../utilities/#toc-values"},(0,o.mdx)("inlineCode",{parentName:"a"},"$Values"))," utility type:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":15,"endLine":12,"endColumn":18,"description":"Cannot call `acceptsValues` with `true` bound to `v` because: [incompatible-call] Either boolean [1] is incompatible with string [2]. Or boolean [1] is incompatible with number [3]."}]','[{"startLine":12,"startColumn":15,"endLine":12,"endColumn":18,"description":"Cannot':!0,call:!0,"`acceptsValues`":!0,with:!0,"`true`":!0,bound:!0,to:!0,"`v`":!0,"because:":!0,"[incompatible-call]":!0,Either:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,Or:!0,number:!0,'[3]."}]':!0},"type Obj = {\n foo: string,\n bar: number,\n};\n\ntype T = $Values;\n\nfunction acceptsValues(v: T) { /* ... */ }\n\nacceptsValues(2); // Works!\nacceptsValues('hi'); // Works!\nacceptsValues(true); // Error!\n")),(0,o.mdx)("p",null,"You can get the type of an object type's specific property using ",(0,o.mdx)("a",{parentName:"p",href:"../indexed-access"},"indexed access types"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":11,"startColumn":12,"endLine":11,"endColumn":12,"description":"Cannot call `acceptsStr` with `1` bound to `x` because number [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":11,"startColumn":12,"endLine":11,"endColumn":12,"description":"Cannot':!0,call:!0,"`acceptsStr`":!0,with:!0,"`1`":!0,bound:!0,to:!0,"`x`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"}]':!0},"type Obj = {\n foo: string,\n bar: number,\n};\n\ntype T = Obj['foo'];\n\nfunction acceptsStr(x: T) { /* ... */ }\n\nacceptsStr('hi'); // Works!\nacceptsStr(1); // Error!\n")),(0,o.mdx)("h2",{id:"arbitrary-objects"},"Arbitrary objects"),(0,o.mdx)("p",null,"If you want to accept an arbitrary object safely, there are a couple of patterns you could use."),(0,o.mdx)("p",null,"An empty inexact object ",(0,o.mdx)("inlineCode",{parentName:"p"},"{...}")," accepts any object:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(obj: {...}) {\n // ...\n}\n\nfunc({}); // Works!\nfunc({a: 1, b: "foo"}); // Works!\n')),(0,o.mdx)("p",null,"It's often the right choice for a ",(0,o.mdx)("a",{parentName:"p",href:"../generics"},"generic")," bounded to accept any object:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(obj: T) {\n // ...\n}\n\nfunc({}); // Works!\nfunc({a: 1, b: "foo"}); // Works!\n')),(0,o.mdx)("p",null,"However, you can't access any properties off of ",(0,o.mdx)("inlineCode",{parentName:"p"},"{...}"),"."),(0,o.mdx)("p",null,"You can also try using a ",(0,o.mdx)("a",{parentName:"p",href:"#toc-objects-as-maps"},"dictionary")," with ",(0,o.mdx)("a",{parentName:"p",href:"../mixed"},(0,o.mdx)("inlineCode",{parentName:"a"},"mixed"))," values, which would allow you to access any property (with a resulting ",(0,o.mdx)("inlineCode",{parentName:"p"},"mixed")," type):"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(obj: {+[string]: mixed}) {\n const x: mixed = obj['bar'];\n}\n\nfunc({}); // Works!\nfunc({a: 1, b: \"foo\"}); // Works!\n")),(0,o.mdx)("p",null,"The type ",(0,o.mdx)("inlineCode",{parentName:"p"},"Object")," is just an alias for ",(0,o.mdx)("a",{parentName:"p",href:"../any"},(0,o.mdx)("inlineCode",{parentName:"a"},"any")),", and is unsafe.\nYou can ban its use in your code with the ",(0,o.mdx)("a",{parentName:"p",href:"../../linting/rule-reference/#toc-unclear-type"},"unclear-type lint"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4511.4e5e46a7.js b/assets/js/4511.4e5e46a7.js new file mode 100644 index 00000000000..2279ab98f27 --- /dev/null +++ b/assets/js/4511.4e5e46a7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4511],{4511:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>m,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var s=t(87462),n=(t(67294),t(3905));const a={title:"Coming Soon: Changes to Object Spreads","short-title":"Changes to Object Spreads",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/coming-soon-changes-to-object-spreads-73204aef84e1"},r=void 0,i={permalink:"/blog/2019/08/20/Changes-to-Object-Spreads",source:"@site/blog/2019-08-20-Changes-to-Object-Spreads.md",title:"Coming Soon: Changes to Object Spreads",description:"Changes are coming to how Flow models object spreads! Learn more in this post.",date:"2019-08-20T00:00:00.000Z",formattedDate:"August 20, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Coming Soon: Changes to Object Spreads","short-title":"Changes to Object Spreads",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/coming-soon-changes-to-object-spreads-73204aef84e1"},prevItem:{title:"Live Flow errors in your IDE",permalink:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE"},nextItem:{title:"Upgrading Flow Codebases",permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases"}},m={authorsImageUrls:[void 0]},d=[],l={toc:d};function p(e){let{components:o,...t}=e;return(0,n.mdx)("wrapper",(0,s.Z)({},l,t,{components:o,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"Changes are coming to how Flow models object spreads! Learn more in this post."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4588.f2f9f239.js b/assets/js/4588.f2f9f239.js new file mode 100644 index 00000000000..179ac8a379a --- /dev/null +++ b/assets/js/4588.f2f9f239.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4588],{54588:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>u,toc:()=>l});var o=n(87462),s=(n(67294),n(3905));const a={title:"Flow can now detect unused Promises","short-title":"Flow can now detect unused Promises",author:"David Richey","medium-link":"https://medium.com/flow-type/flow-can-now-detect-unused-promises-b49341256640"},i=void 0,u={permalink:"/blog/2023/04/10/Unused-Promise",source:"@site/blog/2023-04-10-Unused-Promise.md",title:"Flow can now detect unused Promises",description:"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,",date:"2023-04-10T00:00:00.000Z",formattedDate:"April 10, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"David Richey"}],frontMatter:{title:"Flow can now detect unused Promises","short-title":"Flow can now detect unused Promises",author:"David Richey","medium-link":"https://medium.com/flow-type/flow-can-now-detect-unused-promises-b49341256640"},prevItem:{title:"Announcing 5 new Flow tuple type features",permalink:"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features"},nextItem:{title:"Announcing Partial & Required Flow utility types + catch annotations",permalink:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"}},r={authorsImageUrls:[void 0]},l=[],d={toc:l};function c(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,\nbecause errors are potentially unhandled, and the code may not execute in the intended order. They are\nusually mistakes that Flow is perfectly positioned to warn you about."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4702.38902698.js b/assets/js/4702.38902698.js new file mode 100644 index 00000000000..adbe2764707 --- /dev/null +++ b/assets/js/4702.38902698.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4702],{94702:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>m,frontMatter:()=>u,metadata:()=>r,toc:()=>p});var o=n(87462),l=(n(67294),n(3905));const u={title:"Announcing 5 new Flow tuple type features","short-title":"Announcing 5 new Flow tuple type features",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-5-new-flow-tuple-type-features-ff4d7f11c50a"},a=void 0,r={permalink:"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features",source:"@site/blog/2023-08-17-Announcing-5-new-Flow-tuple-type-features.md",title:"Announcing 5 new Flow tuple type features",description:"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.",date:"2023-08-17T00:00:00.000Z",formattedDate:"August 17, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Announcing 5 new Flow tuple type features","short-title":"Announcing 5 new Flow tuple type features",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-5-new-flow-tuple-type-features-ff4d7f11c50a"},nextItem:{title:"Flow can now detect unused Promises",permalink:"/blog/2023/04/10/Unused-Promise"}},s={authorsImageUrls:[void 0]},p=[],i={toc:p};function m(e){let{components:t,...n}=e;return(0,l.mdx)("wrapper",(0,o.Z)({},i,n,{components:t,mdxType:"MDXLayout"}),(0,l.mdx)("p",null,"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4721.175dbe5c.js b/assets/js/4721.175dbe5c.js new file mode 100644 index 00000000000..1b81444a150 --- /dev/null +++ b/assets/js/4721.175dbe5c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4721],{74721:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>b,frontMatter:()=>o,metadata:()=>r,toc:()=>i});var n=a(87462),s=(a(67294),a(3905));a(45475);const o={title:"Babel",slug:"/tools/babel"},l=void 0,r={unversionedId:"tools/babel",id:"tools/babel",title:"Babel",description:"Flow and Babel are designed to work great together. It",source:"@site/docs/tools/babel.md",sourceDirName:"tools",slug:"/tools/babel",permalink:"/en/docs/tools/babel",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/tools/babel.md",tags:[],version:"current",frontMatter:{title:"Babel",slug:"/tools/babel"},sidebar:"docsSidebar",previous:{title:".flowconfig [lints]",permalink:"/en/docs/config/lints"},next:{title:"ESLint",permalink:"/en/docs/tools/eslint"}},p={},i=[],d={toc:i};function b(e){let{components:t,...a}=e;return(0,s.mdx)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow and ",(0,s.mdx)("a",{parentName:"p",href:"http://babeljs.io/"},"Babel")," are designed to work great together. It\ntakes just a few steps to set them up together."),(0,s.mdx)("p",null,"If you don't have Babel setup already, you can do that by following\n",(0,s.mdx)("a",{parentName:"p",href:"http://babeljs.io/docs/setup/"},"this guide"),"."),(0,s.mdx)("p",null,"Once you have Babel setup, install ",(0,s.mdx)("inlineCode",{parentName:"p"},"@babel/preset-flow")," and ",(0,s.mdx)("inlineCode",{parentName:"p"},"babel-plugin-syntax-hermes-parser")," with either\n",(0,s.mdx)("a",{parentName:"p",href:"https://yarnpkg.com/"},"Yarn")," or ",(0,s.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npm"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-sh"},"yarn add --dev @babel/preset-flow babel-plugin-syntax-hermes-parser\n# or\nnpm install --save-dev @babel/preset-flow babel-plugin-syntax-hermes-parser\n")),(0,s.mdx)("p",null,"Then add the ",(0,s.mdx)("inlineCode",{parentName:"p"},"@babel/preset-flow")," preset and ",(0,s.mdx)("inlineCode",{parentName:"p"},"babel-plugin-syntax-hermes-parser")," plugin to your Babel config."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "presets": ["@babel/preset-flow"],\n "plugins": ["babel-plugin-syntax-hermes-parser"],\n}\n')),(0,s.mdx)("p",null,"You can read the documentation of ",(0,s.mdx)("a",{parentName:"p",href:"https://github.com/facebook/hermes/blob/main/tools/hermes-parser/js/babel-plugin-syntax-hermes-parser/README.md"},"babel-plugin-syntax-hermes-parser")," to see how to configure it. ",(0,s.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/baa74a889dc81fe36f0fd362db6d3e27d44d961d/website/babel.config.js#L10-L17"},"This website's Babel config")," provides an example with custom parser options."))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4784.6b9d1e1e.js b/assets/js/4784.6b9d1e1e.js new file mode 100644 index 00000000000..e877f9e988d --- /dev/null +++ b/assets/js/4784.6b9d1e1e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4784],{34784:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var s=n(87462),o=(n(67294),n(3905));n(45475);const a={title:"Types & Expressions",slug:"/lang/types-and-expressions"},r=void 0,i={unversionedId:"lang/types-and-expressions",id:"lang/types-and-expressions",title:"Types & Expressions",description:"In JavaScript there are many types of values: numbers, strings, booleans,",source:"@site/docs/lang/types-and-expressions.md",sourceDirName:"lang",slug:"/lang/types-and-expressions",permalink:"/en/docs/lang/types-and-expressions",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/types-and-expressions.md",tags:[],version:"current",frontMatter:{title:"Types & Expressions",slug:"/lang/types-and-expressions"},sidebar:"docsSidebar",previous:{title:"Comment Types",permalink:"/en/docs/types/comments"},next:{title:"Variable Declarations",permalink:"/en/docs/lang/variables"}},l={},p=[{value:"Figuring out types statically",id:"toc-figuring-out-types-statically",level:2},{value:"Soundness and Completeness",id:"toc-soundness-and-completeness",level:2}],u={toc:p};function m(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,s.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"In JavaScript there are many types of values: numbers, strings, booleans,\nfunctions, objects, and more."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'(1234: number);\n("hi": string);\n(true: boolean);\n([1, 2]: Array);\n({prop: "value"}: {prop: string});\n(function func(s: string) {}: string => void);\n')),(0,o.mdx)("p",null,"These values can be used in many different ways:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'1 + 2;\n"foo" + "bar";\n!true;\n[1, 2].push(3);\nconst obj = {prop: "s"};\nlet value = obj.prop;\nobj.prop = "value";\nfunction func(s: string) {}\nfunc("value");\n')),(0,o.mdx)("p",null,"All of these different expressions create a new type which is a result of the\ntypes of values and the operations run on them."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'let num: number = 1 + 2;\nlet str: string = "foo" + "bar";\n')),(0,o.mdx)("p",null,"In Flow every value and expression has a type."),(0,o.mdx)("h2",{id:"toc-figuring-out-types-statically"},"Figuring out types statically"),(0,o.mdx)("p",null,"Flow needs a way to be able to figure out the type of every expression. But it\ncan't just run your code to figure it out, if it did it would be affected by\nany issues that your code has. For example, if you created an infinite loop\nFlow would wait for it to finish forever."),(0,o.mdx)("p",null,"Instead, Flow needs to be able to figure out the type of a value by analyzing\nit without running it (static analysis). It works its way through every known\ntype and starts to figure out what all the expressions around them result in."),(0,o.mdx)("p",null,"For example, to figure out the result of the following expression, Flow needs to\nfigure out what its values are first."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"val1 + val2;\n")),(0,o.mdx)("p",null,"If the values are numbers, then the expression results in a number. If the\nvalues are strings, then the expression results in a string. There are a number\nof different possibilities here, so Flow must look up what the values are."),(0,o.mdx)("p",null,"If Flow is unable to figure out what the exact type is for each value, Flow\nmust figure out what every possible value is and check to make sure that the\ncode around it will still work with all of the possible types."),(0,o.mdx)("h2",{id:"toc-soundness-and-completeness"},"Soundness and Completeness"),(0,o.mdx)("p",null,"When you run your code, a single expression will only be run with a limited set\nof values. But still Flow checks ",(0,o.mdx)("em",{parentName:"p"},"every")," possible value. In this way Flow is\nchecking too many things or ",(0,o.mdx)("em",{parentName:"p"},"over-approximating")," what will be valid code."),(0,o.mdx)("p",null,"By checking every possible value, Flow might catch errors that will not\nactually occur when the code is run. Flow does this in order to be ",(0,o.mdx)("em",{parentName:"p"},'"sound"'),"."),(0,o.mdx)("p",null,"In type systems, ",(0,o.mdx)("strong",{parentName:"p"},(0,o.mdx)("em",{parentName:"strong"},"soundness"))," is the ability for a type checker to catch\nevery single error that ",(0,o.mdx)("em",{parentName:"p"},"might")," happen at runtime. This comes at the cost of\nsometimes catching errors that will not actually happen at runtime."),(0,o.mdx)("p",null,"On the flip-side, ",(0,o.mdx)("strong",{parentName:"p"},(0,o.mdx)("em",{parentName:"strong"},"completeness"))," is the ability for a type checker to only\never catch errors that ",(0,o.mdx)("em",{parentName:"p"},"would")," happen at runtime. This comes at the cost of\nsometimes missing errors that will happen at runtime."),(0,o.mdx)("p",null,"In an ideal world, every type checker would be both sound ",(0,o.mdx)("em",{parentName:"p"},"and")," complete so\nthat it catches ",(0,o.mdx)("em",{parentName:"p"},"every")," error that ",(0,o.mdx)("em",{parentName:"p"},"will")," happen at runtime."),(0,o.mdx)("p",null,"Flow tries to be as sound and complete as possible. But because JavaScript was\nnot designed around a type system, Flow sometimes has to make a tradeoff. When\nthis happens Flow tends to favor soundness over completeness, ensuring that\ncode doesn't have any bugs."),(0,o.mdx)("p",null,"Soundness is fine as long as Flow isn't being too noisy and preventing you from\nbeing productive. Sometimes when soundness would get in your way too much, Flow\nwill favor completeness instead. There's only a handful of cases where Flow\ndoes this."),(0,o.mdx)("p",null,"Other type systems will favor completeness instead, only reporting real errors\nin favor of possibly missing errors. Unit/Integration testing is an extreme\nform of this approach. Often this comes at the cost of missing the errors that\nare the most complicated to find, leaving that part up to the developer."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4840.4be9bbc8.js b/assets/js/4840.4be9bbc8.js new file mode 100644 index 00000000000..4a1edc5e426 --- /dev/null +++ b/assets/js/4840.4be9bbc8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4840],{24840:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var o=n(87462),a=(n(67294),n(3905));const i={title:"Asking for Required Annotations","short-title":"Asking for Required Annotations",author:"Sam Goldman","medium-link":"https://medium.com/flow-type/asking-for-required-annotations-64d4f9c1edf8"},r=void 0,s={permalink:"/blog/2018/10/29/Asking-for-Required-Annotations",source:"@site/blog/2018-10-29-Asking-for-Required-Annotations.md",title:"Asking for Required Annotations",description:"Flow will be asking for more annotations starting in 0.85.0. Learn how",date:"2018-10-29T00:00:00.000Z",formattedDate:"October 29, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Sam Goldman"}],frontMatter:{title:"Asking for Required Annotations","short-title":"Asking for Required Annotations",author:"Sam Goldman","medium-link":"https://medium.com/flow-type/asking-for-required-annotations-64d4f9c1edf8"},prevItem:{title:"Supporting React.forwardRef and Beyond",permalink:"/blog/2018/12/13/React-Abstract-Component"},nextItem:{title:"On the Roadmap: Exact Objects by Default",permalink:"/blog/2018/10/18/Exact-Objects-By-Default"}},l={authorsImageUrls:[void 0]},d=[],m={toc:d};function u(t){let{components:e,...n}=t;return(0,a.mdx)("wrapper",(0,o.Z)({},m,n,{components:e,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow will be asking for more annotations starting in 0.85.0. Learn how\nto deal with these errors in our latest blog post."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/486.d9b07c81.js b/assets/js/486.d9b07c81.js new file mode 100644 index 00000000000..a5c1bd5f483 --- /dev/null +++ b/assets/js/486.d9b07c81.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[486],{10486:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>m,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>s});var n=o(87462),a=(o(67294),o(3905));const r={title:"Improvements to Flow in 2019","short-title":"Improvements to Flow in 2019",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/improvements-to-flow-in-2019-c8378e7aa007"},m=void 0,i={permalink:"/blog/2020/02/19/Improvements-to-Flow-in-2019",source:"@site/blog/2020-02-19-Improvements-to-Flow-in-2019.md",title:"Improvements to Flow in 2019",description:"Take a look back at improvements we made to Flow in 2019.",date:"2020-02-19T00:00:00.000Z",formattedDate:"February 19, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Andrew Pardoe"}],frontMatter:{title:"Improvements to Flow in 2019","short-title":"Improvements to Flow in 2019",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/improvements-to-flow-in-2019-c8378e7aa007"},prevItem:{title:"What we\u2019re building in 2020",permalink:"/blog/2020/03/09/What-were-building-in-2020"},nextItem:{title:"How to upgrade to exact-by-default object type syntax",permalink:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"}},l={authorsImageUrls:[void 0]},s=[],p={toc:s};function d(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Take a look back at improvements we made to Flow in 2019."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4860.a333a6da.js b/assets/js/4860.a333a6da.js new file mode 100644 index 00000000000..cd065c954a2 --- /dev/null +++ b/assets/js/4860.a333a6da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4860],{34860:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>m,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>s});var a=o(87462),n=(o(67294),o(3905));o(45475);const i={title:"Multi-platform Support for React Native",slug:"/react/multiplatform",description:"Flow's support for multiple platforms inside a single React Native codebase"},l=void 0,r={unversionedId:"react/multiplatform",id:"react/multiplatform",title:"Multi-platform Support for React Native",description:"Flow's support for multiple platforms inside a single React Native codebase",source:"@site/docs/react/multiplatform.md",sourceDirName:"react",slug:"/react/multiplatform",permalink:"/en/docs/react/multiplatform",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/multiplatform.md",tags:[],version:"current",frontMatter:{title:"Multi-platform Support for React Native",slug:"/react/multiplatform",description:"Flow's support for multiple platforms inside a single React Native codebase"}},m={},s=[{value:"Benefits",id:"toc-benefits",level:2},{value:"Quick Start",id:"toc-quick-start",level:2},{value:"Common Interface Files",id:"toc-common-interface-file",level:2},{value:"Common Interface File in .js.flow",id:"toc-common-interface-file-in-js-flow",level:3},{value:"Common Interface File in .js",id:"toc-common-interface-file-in-js",level:3}],p={toc:s};function d(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("admonition",{type:"caution"},(0,n.mdx)("p",{parentName:"admonition"},"The feature is still experimental. Behaviors might change in the future.")),(0,n.mdx)("h2",{id:"toc-benefits"},"Benefits"),(0,n.mdx)("p",null,"React Native supports conditional bundling of files with ",(0,n.mdx)("a",{parentName:"p",href:"https://reactnative.dev/docs/platform-specific-code#platform-specific-extensions"},"platform specific extensions"),". For example, if you have different implementations of an Image component for iOS and Android, you can have an ",(0,n.mdx)("inlineCode",{parentName:"p"},"Image.ios.js")," file and ",(0,n.mdx)("inlineCode",{parentName:"p"},"Image.android.js")," file, and an import of Image can be resolved to either file based on the platform you are targeting."),(0,n.mdx)("p",null,"These platform specific files live under the same repository, but it would normally require two flowconfigs to check them like the following setup:"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-toml",metastring:"title=.flowconfig",title:".flowconfig"},"; for ios\n[ignore]\n.*\\.android\\.js$\n[options]\nmodule.file_ext=.js\nmodule.file_ext=.ios.js\n")),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-toml",metastring:"title=.flowconfig.android",title:".flowconfig.android"},"; for android\n[ignore]\n; Ignore other platform suffixes\n.*\\.ios\\.js$\n[options]\nmodule.file_ext=.js\nmodule.file_ext=.android.js\n")),(0,n.mdx)("p",null,"Flow's optional React Native multi-platform support allows you to check your entire project with mixed platforms under a single Flow root, so that during the development of a module with both .ios and .android files, you no longer have to run both Flow servers and constantly switch between different servers to see type errors on different platforms."),(0,n.mdx)("h2",{id:"toc-quick-start"},"Quick Start"),(0,n.mdx)("p",null,"You can start by deleting the flowconfig for all other platforms, deleting all the platform specific configs in the only remaining flowconfig, and add the following new lines to the ",(0,n.mdx)("inlineCode",{parentName:"p"},"options")," section:"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre"},"experimental.multi_platform=true\nexperimental.multi_platform.extensions=.ios\nexperimental.multi_platform.extensions=.android\n")),(0,n.mdx)("p",null,"For example, these are the required changes for the ",(0,n.mdx)("inlineCode",{parentName:"p"},".flowconfig")," example above:"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-diff",metastring:"title=.flowconfig",title:".flowconfig"},"[ignore]\n- .*\\.android\\.js$\n[options]\nmodule.file_ext=.js\n- module.file_ext=.ios.js\n+ experimental.multi_platform=true\n+ experimental.multi_platform.extensions=.ios\n+ experimental.multi_platform.extensions=.android\n")),(0,n.mdx)("p",null,"After enabling the new configurations, there will likely be new errors. The sections below explain the additional rules that Flow imposes to check a multiplatform React Native project."),(0,n.mdx)("h2",{id:"toc-common-interface-file"},"Common Interface Files"),(0,n.mdx)("p",null,"Suppose you have a file that imports the ",(0,n.mdx)("inlineCode",{parentName:"p"},"Image")," module, but ",(0,n.mdx)("inlineCode",{parentName:"p"},"Image")," module has different iOS and Android implementations as follows:"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=MyReactNativeApp.js",title:"MyReactNativeApp.js"},"import * as React from 'react';\nimport Image from './Image';\n\n;\n;\n")),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=Image.ios.js",title:"Image.ios.js"},"import * as React from 'react';\n\ntype Props = { src: string, lazyLoading?: boolean };\n\nexport default function Image(props: Props): React.Node { /* ... */ }\n")),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=Image.android.js",title:"Image.android.js"},"import * as React from 'react';\n\ntype Props = { src: string, lazyLoading: boolean };\n\nexport default class Image extends React.Components {\n static defaultProps: { lazyLoading: boolean } = { lazyLoading: false };\n render(): React.Node { /* ... */ }\n}\n")),(0,n.mdx)("p",null,"When you enabled multiplatform support, you will likely see that error that the ",(0,n.mdx)("inlineCode",{parentName:"p"},"./Image")," module cannot be resolved. To fix the error, you need to create a common interface file under the same directory:"),(0,n.mdx)("h3",{id:"toc-common-interface-file-in-js-flow"},"Common Interface File in ",(0,n.mdx)("inlineCode",{parentName:"h3"},".js.flow")),(0,n.mdx)("p",null,"One option is to write a common interface file in ",(0,n.mdx)("inlineCode",{parentName:"p"},".js.flow"),":"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=Image.js.flow",title:"Image.js.flow"},"import * as React from 'react';\n\ntype Props = { src: string, lazyLoading?: boolean };\n\ndeclare const Image: React.AbstractComponent;\nexport default Image;\n")),(0,n.mdx)("p",null,"Flow will ensure that the module types of both ",(0,n.mdx)("inlineCode",{parentName:"p"},"Image.ios.js")," and ",(0,n.mdx)("inlineCode",{parentName:"p"},"./Image.android.js")," are subtype of the module type of ",(0,n.mdx)("inlineCode",{parentName:"p"},"./Image.js.flow"),". Flow will also ensure that there exists an implementation for each platform you declared in your ",(0,n.mdx)("inlineCode",{parentName:"p"},".flowconfig"),"."),(0,n.mdx)("h3",{id:"toc-common-interface-file-in-js"},"Common Interface File in ",(0,n.mdx)("inlineCode",{parentName:"h3"},".js")),(0,n.mdx)("p",null,"Sometimes you might target desktop platforms in addition to iOS and Android, and you only have a special implementation for one platform, and all the other platforms will use the fallback implementation in a ",(0,n.mdx)("inlineCode",{parentName:"p"},".js")," file. For example:"),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=Image.js",title:"Image.js"},"import * as React from 'react';\nimport DefaultImage from 'react-native/Libraries/Image';\n\nexport default DefaultImage;\n")),(0,n.mdx)("pre",null,(0,n.mdx)("code",{parentName:"pre",className:"language-jsx",metastring:"title=Image.ios.js",title:"Image.ios.js"},"import * as React from 'react';\n\ntype Props = { src: string, lazyLoading: boolean };\n\nexport default function Image(props: Props): React.Node {\n // Custom implementation to take advantage of some unique iOS capabilities\n}\n")),(0,n.mdx)("p",null,"In this case, Flow will use the ",(0,n.mdx)("inlineCode",{parentName:"p"},".js")," file as the common interface file, and check all other platform-specific implementation files' against the ",(0,n.mdx)("inlineCode",{parentName:"p"},".js")," file. Since the ",(0,n.mdx)("inlineCode",{parentName:"p"},".js")," file is already a fallback implementation, Flow will no longer require that platform-specific implementation files exist for all platforms."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4896.a33bc4d6.js b/assets/js/4896.a33bc4d6.js new file mode 100644 index 00000000000..da2deb3220a --- /dev/null +++ b/assets/js/4896.a33bc4d6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4896],{74896:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var o=n(87462),a=(n(67294),n(3905));const l={title:"Announcing Flow Comments","short-title":"Flow Comments",author:"Gabe Levi",hide_table_of_contents:!0},r=void 0,i={permalink:"/blog/2015/02/20/Flow-Comments",source:"@site/blog/2015-02-20-Flow-Comments.md",title:"Announcing Flow Comments",description:"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!",date:"2015-02-20T00:00:00.000Z",formattedDate:"February 20, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Announcing Flow Comments","short-title":"Flow Comments",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Announcing Bounded Polymorphism",permalink:"/blog/2015/03/12/Bounded-Polymorphism"},nextItem:{title:"Announcing Import Type",permalink:"/blog/2015/02/18/Import-Types"}},m={authorsImageUrls:[void 0]},p=[{value:"The Flow Comment Syntax",id:"the-flow-comment-syntax",level:2},{value:"1. /*:",id:"1-",level:3},{value:"2. /*::",id:"2-",level:3},{value:"3. /*flow-include",id:"3-flow-include",level:3},{value:"Future Work",id:"future-work",level:2},{value:"Thanks",id:"thanks",level:2}],s={toc:p};function d(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/3"},"most requested features")," and hopefully it will enable even more people to use Flow!"),(0,a.mdx)("p",null,"This feature introduces 3 special comments: ",(0,a.mdx)("inlineCode",{parentName:"p"},"/*:"),", ",(0,a.mdx)("inlineCode",{parentName:"p"},"/*::"),", and ",(0,a.mdx)("inlineCode",{parentName:"p"},"/*flow-include"),". Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments."),(0,a.mdx)("h2",{id:"the-flow-comment-syntax"},"The Flow Comment Syntax"),(0,a.mdx)("p",null,"There are 3 special comments that Flow currently supports. You may recognize this syntax from ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/jareware"},"Jarno Rantanen"),"'s excellent project, ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/jareware/flotate"},"flotate"),"."),(0,a.mdx)("h3",{id:"1-"},"1. ",(0,a.mdx)("inlineCode",{parentName:"h3"},"/*:")),(0,a.mdx)("p",null,(0,a.mdx)("inlineCode",{parentName:"p"},"/*: */")," is interpreted by Flow as ",(0,a.mdx)("inlineCode",{parentName:"p"},": ")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function foo(x/*: number*/)/* : string */ { ... }\n")),(0,a.mdx)("p",null,"is interpreted by Flow as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function foo(x: number): string { ... }\n")),(0,a.mdx)("p",null,"but appears to the JavaScript engine (ignoring comments) as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function foo(x) { ... }\n")),(0,a.mdx)("h3",{id:"2-"},"2. ",(0,a.mdx)("inlineCode",{parentName:"h3"},"/*::")),(0,a.mdx)("p",null,(0,a.mdx)("inlineCode",{parentName:"p"},"/*:: */")," is interpreted by Flow as ",(0,a.mdx)("inlineCode",{parentName:"p"},"")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"/*:: type foo = number; */\n")),(0,a.mdx)("p",null,"is interpreted by Flow as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"type foo = number;\n")),(0,a.mdx)("p",null,"but appears to the runtime (ignoring comments) as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"")),(0,a.mdx)("h3",{id:"3-flow-include"},"3. ",(0,a.mdx)("inlineCode",{parentName:"h3"},"/*flow-include")),(0,a.mdx)("p",null,(0,a.mdx)("inlineCode",{parentName:"p"},"/*flow-include */")," is interpreted by Flow as ",(0,a.mdx)("inlineCode",{parentName:"p"},""),". It behaves the same as ",(0,a.mdx)("inlineCode",{parentName:"p"},"/*::")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"/*flow-include type foo = number; */\n")),(0,a.mdx)("p",null,"is interpreted by Flow as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"type foo = number;\n")),(0,a.mdx)("p",null,"but appears to the runtime (ignoring comments) as"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"")),(0,a.mdx)("p",null,"Note: whitespace is ignored after the ",(0,a.mdx)("inlineCode",{parentName:"p"},"/*")," but before the ",(0,a.mdx)("inlineCode",{parentName:"p"},":"),", ",(0,a.mdx)("inlineCode",{parentName:"p"},"::"),", or ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow-include"),". So you can write things like"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"/* : number */\n/* :: type foo = number */\n/* flow-include type foo = number */\n")),(0,a.mdx)("h2",{id:"future-work"},"Future Work"),(0,a.mdx)("p",null,"We plan to update our Flow transformation to wrap Flow syntax with these special comments, rather than stripping it away completely. This will help people write Flow code but publish code that works with or without Flow."),(0,a.mdx)("h2",{id:"thanks"},"Thanks"),(0,a.mdx)("p",null,"Special thanks to ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/jareware"},"Jarno Rantanen")," for building ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/jareware/flotate"},"flotate")," and supporting us merging his syntax upstream into Flow."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4902.0f5edc01.js b/assets/js/4902.0f5edc01.js new file mode 100644 index 00000000000..da0a28c5745 --- /dev/null +++ b/assets/js/4902.0f5edc01.js @@ -0,0 +1,2 @@ +/*! For license information please see 4902.0f5edc01.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[4902],{4902:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>u,language:()=>p});var a,o,i=n(15030),r=Object.defineProperty,l=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,d=(e,t,n,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of m(t))c.call(e,o)||o===n||r(e,o,{get:()=>t[o],enumerable:!(a=l(t,o))||a.enumerable});return e},s={};d(s,a=i,"default"),o&&d(o,a,"default");var u={comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:s.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:s.languages.IndentAction.Indent}}]},p={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[/"] + }, + brackets: [["<", ">"]], + autoClosingPairs: [ + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' } + ], + surroundingPairs: [ + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' } + ], + onEnterRules: [ + { + beforeText: new RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + afterText: /^<\/([_:\w][_:\w-.\d]*)\s*>$/i, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".xml", + ignoreCase: true, + qualifiedName: /(?:[\w\.\-]+:)?[\w\.\-]+/, + tokenizer: { + root: [ + [/[^<&]+/, ""], + { include: "@whitespace" }, + [/(<)(@qualifiedName)/, [{ token: "delimiter" }, { token: "tag", next: "@tag" }]], + [ + /(<\/)(@qualifiedName)(\s*)(>)/, + [{ token: "delimiter" }, { token: "tag" }, "", { token: "delimiter" }] + ], + [/(<\?)(@qualifiedName)/, [{ token: "delimiter" }, { token: "metatag", next: "@tag" }]], + [/(<\!)(@qualifiedName)/, [{ token: "delimiter" }, { token: "metatag", next: "@tag" }]], + [/<\!\[CDATA\[/, { token: "delimiter.cdata", next: "@cdata" }], + [/&\w+;/, "string.escape"] + ], + cdata: [ + [/[^\]]+/, ""], + [/\]\]>/, { token: "delimiter.cdata", next: "@pop" }], + [/\]/, ""] + ], + tag: [ + [/[ \t\r\n]+/, ""], + [/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/, ["attribute.name", "", "attribute.value"]], + [ + /(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/, + ["attribute.name", "", "attribute.value"] + ], + [/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/, ["attribute.name", "", "attribute.value"]], + [/@qualifiedName/, "attribute.name"], + [/\?>/, { token: "delimiter", next: "@pop" }], + [/(\/)(>)/, [{ token: "tag" }, { token: "delimiter", next: "@pop" }]], + [/>/, { token: "delimiter", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [//, { token: "comment", next: "@pop" }], + [//,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}}}}]); \ No newline at end of file diff --git a/assets/js/5703.e6d4941d.js.LICENSE.txt b/assets/js/5703.e6d4941d.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/5703.e6d4941d.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/5703.f7e5fae8.js b/assets/js/5703.f7e5fae8.js new file mode 100644 index 00000000000..9aac27e3354 --- /dev/null +++ b/assets/js/5703.f7e5fae8.js @@ -0,0 +1,423 @@ +"use strict"; +exports.id = 5703; +exports.ids = [5703]; +exports.modules = { + +/***/ 15703: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15030); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/handlebars/handlebars.ts +var EMPTY_ELEMENTS = [ + "area", + "base", + "br", + "col", + "embed", + "hr", + "img", + "input", + "keygen", + "link", + "menuitem", + "meta", + "param", + "source", + "track", + "wbr" +]; +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, + comments: { + blockComment: ["{{!--", "--}}"] + }, + brackets: [ + [""], + ["<", ">"], + ["{{", "}}"], + ["{", "}"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "<", close: ">" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + onEnterRules: [ + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + afterText: /^<\/(\w[\w\d]*)\s*>$/i, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: "", + tokenizer: { + root: [ + [/\{\{!--/, "comment.block.start.handlebars", "@commentBlock"], + [/\{\{!/, "comment.start.handlebars", "@comment"], + [/\{\{/, { token: "@rematch", switchTo: "@handlebarsInSimpleState.root" }], + [/)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]], + [/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]], + [/(<)([:\w]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/(<\/)(\w+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/]+/, "metatag.content.html"], + [/>/, "metatag.html", "@pop"] + ], + comment: [ + [/\}\}/, "comment.end.handlebars", "@pop"], + [/./, "comment.content.handlebars"] + ], + commentBlock: [ + [/--\}\}/, "comment.block.end.handlebars", "@pop"], + [/./, "comment.content.handlebars"] + ], + commentHtml: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.comment" + } + ], + [/-->/, "comment.html", "@pop"], + [/[^-]+/, "comment.content.html"], + [/./, "comment.content.html"] + ], + otherTag: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.otherTag" + } + ], + [/\/?>/, "delimiter.html", "@pop"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/] + ], + script: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.script" + } + ], + [/type/, "attribute.name", "@scriptAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(script\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + scriptAfterType: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.scriptAfterType" + } + ], + [/=/, "delimiter", "@scriptAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptAfterTypeEquals: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.scriptAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptWithCustomType: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.scriptWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptEmbedded: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInEmbeddedState.scriptEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + style: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.style" + } + ], + [/type/, "attribute.name", "@styleAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(style\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + styleAfterType: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.styleAfterType" + } + ], + [/=/, "delimiter", "@styleAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleAfterTypeEquals: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.styleAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleWithCustomType: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInSimpleState.styleWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleEmbedded: [ + [ + /\{\{/, + { + token: "@rematch", + switchTo: "@handlebarsInEmbeddedState.styleEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + handlebarsInSimpleState: [ + [/\{\{\{?/, "delimiter.handlebars"], + [/\}\}\}?/, { token: "delimiter.handlebars", switchTo: "@$S2.$S3" }], + { include: "handlebarsRoot" } + ], + handlebarsInEmbeddedState: [ + [/\{\{\{?/, "delimiter.handlebars"], + [ + /\}\}\}?/, + { + token: "delimiter.handlebars", + switchTo: "@$S2.$S3", + nextEmbedded: "$S3" + } + ], + { include: "handlebarsRoot" } + ], + handlebarsRoot: [ + [/"[^"]*"/, "string.handlebars"], + [/[#/][^\s}]+/, "keyword.helper.handlebars"], + [/else\b/, "keyword.helper.handlebars"], + [/[\s]+/], + [/[^}]/, "variable.parameter.handlebars"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/5745.ffd36961.js b/assets/js/5745.ffd36961.js new file mode 100644 index 00000000000..1167a98c4e8 --- /dev/null +++ b/assets/js/5745.ffd36961.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5745],{15745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/5789.7ab12558.js b/assets/js/5789.7ab12558.js new file mode 100644 index 00000000000..277fcea092a --- /dev/null +++ b/assets/js/5789.7ab12558.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5789],{5789:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>l,frontMatter:()=>o,metadata:()=>i,toc:()=>m});var a=t(87462),p=(t(67294),t(3905));t(45475);const o={title:"Mapped Types",slug:"/types/mapped-types"},r=void 0,i={unversionedId:"types/mapped-types",id:"types/mapped-types",title:"Mapped Types",description:"Flow's mapped types allow you to transform object types. They are useful for modeling complex runtime operations over objects.",source:"@site/docs/types/mapped-types.md",sourceDirName:"types",slug:"/types/mapped-types",permalink:"/en/docs/types/mapped-types",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/mapped-types.md",tags:[],version:"current",frontMatter:{title:"Mapped Types",slug:"/types/mapped-types"},sidebar:"docsSidebar",previous:{title:"Conditional Types",permalink:"/en/docs/types/conditional"},next:{title:"Type Guards",permalink:"/en/docs/types/type-guards"}},d={},m=[{value:"Basic Usage",id:"toc-basic-usage",level:2},{value:"Mapped Type Sources",id:"toc-mapped-type-sources",level:2},{value:"Distributive Mapped Types",id:"toc-distributive-mapped-types",level:2},{value:"Property Modifiers",id:"toc-property-modifiers",level:2},{value:"Adoption",id:"toc-adoption",level:2}],s={toc:m};function l(e){let{components:n,...t}=e;return(0,p.mdx)("wrapper",(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,p.mdx)("p",null,"Flow's mapped types allow you to transform object types. They are useful for modeling complex runtime operations over objects."),(0,p.mdx)("h2",{id:"toc-basic-usage"},"Basic Usage"),(0,p.mdx)("p",null,"Mapped Types have syntax similar to indexed object types but use the ",(0,p.mdx)("inlineCode",{parentName:"p"},"in")," keyword:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type O = {foo: number, bar: string};\n\ntype Methodify = () => T;\n\ntype MappedType = {[key in keyof O]: Methodify};\n")),(0,p.mdx)("p",null,"In this example, ",(0,p.mdx)("inlineCode",{parentName:"p"},"MappedType")," has all of the keys from ",(0,p.mdx)("inlineCode",{parentName:"p"},"O")," with all of the value types transformed by\n",(0,p.mdx)("inlineCode",{parentName:"p"},"Methoditfy"),". The ",(0,p.mdx)("inlineCode",{parentName:"p"},"key")," variable is substituted for each key in ",(0,p.mdx)("inlineCode",{parentName:"p"},"O")," when creating the property, so\nthis type evaluates to:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre"},"{\n foo: Methodify,\n bar: Methodify,\n}\n= {\n foo: () => number,\n bar: () => string,\n}\n")),(0,p.mdx)("h2",{id:"toc-mapped-type-sources"},"Mapped Type Sources"),(0,p.mdx)("p",null,"We call the type that comes after the ",(0,p.mdx)("inlineCode",{parentName:"p"},"in")," keyword the ",(0,p.mdx)("em",{parentName:"p"},"source")," of the mapped type. The source of\na mapped type must be a subtype of ",(0,p.mdx)("inlineCode",{parentName:"p"},"string | number | symbol"),":"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":28,"endLine":1,"endColumn":34,"description":"Cannot instantiate mapped type [1] because boolean [2] is incompatible with `string | number | symbol`, so it cannot be used to generate keys for mapped type [1]. [incompatible-type]"}]','[{"startLine":1,"startColumn":28,"endLine":1,"endColumn":34,"description":"Cannot':!0,instantiate:!0,mapped:!0,type:!0,"[1]":!0,because:!0,boolean:!0,"[2]":!0,is:!0,incompatible:!0,with:!0,"`string":!0,"|":!0,number:!0,"symbol`,":!0,so:!0,it:!0,cannot:!0,be:!0,used:!0,to:!0,generate:!0,keys:!0,for:!0,"[1].":!0,'[incompatible-type]"}]':!0},"type MappedType = {[key in boolean]: number}; // ERROR!\n")),(0,p.mdx)("p",null,"Typically, you'll want to create a mapped type based on another object type. In this case, you\nshould write your mapped type using an inline ",(0,p.mdx)("inlineCode",{parentName:"p"},"keyof"),":"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type GetterOf = () => T;\ntype Obj = {foo: number, bar: string};\ntype MappedObj = {[key in keyof Obj]: GetterOf};\n")),(0,p.mdx)("blockquote",null,(0,p.mdx)("p",{parentName:"blockquote"},"NOTE: ",(0,p.mdx)("inlineCode",{parentName:"p"},"keyof")," only works inline in mapped types for now. Full support for ",(0,p.mdx)("inlineCode",{parentName:"p"},"keyof")," is not yet available.")),(0,p.mdx)("p",null,"But you do not need to use an object to generate a mapped type. You can also use a union of string\nliteral types to represent the keys of an object type:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Union = 'foo' | 'bar' | 'baz';\ntype MappedType = {[key in Union]: number};\n// = {foo: number, bar: number, baz: number};\n")),(0,p.mdx)("p",null,"Importantly, when using string literals the union is collapsed into a ",(0,p.mdx)("em",{parentName:"p"},"single object type"),":"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type MappedTypeFromKeys = {[key in Keys]: number};\ntype MappedFooAndBar = MappedTypeFromKeys<'foo' | 'bar'>;\n// = {foo: number, bar: number}, not {foo: number} | {bar: number}\n")),(0,p.mdx)("p",null,"If you use a type like ",(0,p.mdx)("inlineCode",{parentName:"p"},"number")," or ",(0,p.mdx)("inlineCode",{parentName:"p"},"string")," in the source of your mapped type then Flow will create\nan indexer:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type MappedTypeFromKeys = {[key in Keys]: number};\ntype MappedFooAndBarWithIndexer = MappedTypeFromKeys<'foo' | 'bar' | string>;\n// = {foo: number, bar: number, [string]: number}\n")),(0,p.mdx)("h2",{id:"toc-distributive-mapped-types"},"Distributive Mapped Types"),(0,p.mdx)("p",null,"When the mapped type uses an inline ",(0,p.mdx)("inlineCode",{parentName:"p"},"keyof")," or a type parameter bound by a ",(0,p.mdx)("inlineCode",{parentName:"p"},"$Keys"),"\nFlow will distribute the mapped type over unions of object types."),(0,p.mdx)("p",null,"For example:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"// This mapped type uses keyof inline\ntype MakeAllValuesNumber = {[key in keyof O]: number};\ntype ObjWithFoo = {foo: string};\ntype ObjWithBar = {bar: string};\n\ntype DistributedMappedType = MakeAllValuesNumber<\n | ObjWithFoo\n | ObjWithBar\n>; // = {foo: number} | {bar: number};\n\n// This mapped type uses a type parameter bound by $Keys\ntype Pick> = {[key in Keys]: O[key]};\ntype O1 = {foo: number, bar: number};\ntype O2 = {bar: string, baz: number};\ntype PickBar = Pick; // = {bar: number} | {bar: string};\n")),(0,p.mdx)("p",null,"Distributive mapped types will also distribute over ",(0,p.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,p.mdx)("inlineCode",{parentName:"p"},"undefined"),":"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Distributive = {[key in keyof O]: O[key]};\ntype Obj = {foo: number};\ntype MaybeMapped = Distributive;// = ?{foo: number}\n(null: MaybeMapped); // OK\n(undefined: MaybeMapped); // OK\n({foo: 3}: MaybeMapped); // OK\n")),(0,p.mdx)("h2",{id:"toc-property-modifiers"},"Property Modifiers"),(0,p.mdx)("p",null,"You can also add ",(0,p.mdx)("inlineCode",{parentName:"p"},"+")," or ",(0,p.mdx)("inlineCode",{parentName:"p"},"-")," variance modifiers and the optionality modifier ",(0,p.mdx)("inlineCode",{parentName:"p"},"?")," in mapped types:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type O = {foo: number, bar: string}\ntype ReadOnlyPartialO = {+[key in keyof O]?: O[key]}; // = {+foo?: number, +bar?: string};\n")),(0,p.mdx)("p",null,"When no variance nor optionality modifiers are provided and the mapped type is distributive,\nthe variance and optionality are determined by the input object:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type O = {+foo: number, bar?: string};\ntype Mapped = {[key in keyof O]: O[key]}; // = {+foo: number, bar?: string}\n")),(0,p.mdx)("p",null,"Otherwise, the properties are read-write and required when no property modifiers are present:"),(0,p.mdx)("pre",null,(0,p.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Union = 'foo' | 'bar' | 'baz';\ntype MappedType = {[key in Union]: number};\n// = {foo: number, bar: number, baz: number};\n")),(0,p.mdx)("blockquote",null,(0,p.mdx)("p",{parentName:"blockquote"},"NOTE: Flow does not yet support removing variance or optionality modifiers.")),(0,p.mdx)("h2",{id:"toc-adoption"},"Adoption"),(0,p.mdx)("p",null,"To use mapped types, you need to upgrade your infrastructure so that it supports the syntax:"),(0,p.mdx)("ul",null,(0,p.mdx)("li",{parentName:"ul"},(0,p.mdx)("inlineCode",{parentName:"li"},"flow")," and ",(0,p.mdx)("inlineCode",{parentName:"li"},"flow-parser"),": 0.210.0. Between v0.210.0 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the ",(0,p.mdx)("inlineCode",{parentName:"li"},"[options]")," heading, add ",(0,p.mdx)("inlineCode",{parentName:"li"},"mapped_type=true"),"."),(0,p.mdx)("li",{parentName:"ul"},(0,p.mdx)("inlineCode",{parentName:"li"},"prettier"),": 3"),(0,p.mdx)("li",{parentName:"ul"},(0,p.mdx)("inlineCode",{parentName:"li"},"babel")," with ",(0,p.mdx)("inlineCode",{parentName:"li"},"babel-plugin-syntax-hermes-parser"),". See ",(0,p.mdx)("a",{parentName:"li",href:"../../tools/babel/"},"our Babel guide")," for setup instructions."),(0,p.mdx)("li",{parentName:"ul"},(0,p.mdx)("inlineCode",{parentName:"li"},"eslint")," with ",(0,p.mdx)("inlineCode",{parentName:"li"},"hermes-eslint"),". See ",(0,p.mdx)("a",{parentName:"li",href:"../../tools/eslint/"},"our ESLint guide")," for setup instructions.")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5849.5c57243a.js b/assets/js/5849.5c57243a.js new file mode 100644 index 00000000000..ed88762756b --- /dev/null +++ b/assets/js/5849.5c57243a.js @@ -0,0 +1,2 @@ +/*! For license information please see 5849.5c57243a.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5849],{25849:(e,s,n)=>{n.r(s),n.d(s,{conf:()=>o,language:()=>t});var o={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},t={defaultToken:"",tokenPostfix:".dockerfile",variable:/\${?[\w]+}?/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(ONBUILD)(\s+)/,["keyword",""]],[/(ENV)(\s+)([\w]+)/,["keyword","",{token:"variable",next:"@arguments"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:"keyword",next:"@arguments"}]],arguments:[{include:"@whitespace"},{include:"@strings"},[/(@variable)/,{cases:{"@eos":{token:"variable",next:"@popall"},"@default":"variable"}}],[/\\/,{cases:{"@eos":"","@default":""}}],[/./,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],whitespace:[[/\s+/,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],comment:[[/(^#.*$)/,"comment","@popall"]],strings:[[/\\'$/,"","@popall"],[/\\'/,""],[/'$/,"string","@popall"],[/'/,"string","@stringBody"],[/"$/,"string","@popall"],[/"/,"string","@dblStringBody"]],stringBody:[[/[^\\\$']/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/'$/,"string","@popall"],[/'/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]],dblStringBody:[[/[^\\\$"]/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/"$/,"string","@popall"],[/"/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]]}}}}]); \ No newline at end of file diff --git a/assets/js/5849.5c57243a.js.LICENSE.txt b/assets/js/5849.5c57243a.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/5849.5c57243a.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/5849.97b6216c.js b/assets/js/5849.97b6216c.js new file mode 100644 index 00000000000..4dda84a7754 --- /dev/null +++ b/assets/js/5849.97b6216c.js @@ -0,0 +1,151 @@ +"use strict"; +exports.id = 5849; +exports.ids = [5849]; +exports.modules = { + +/***/ 25849: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/dockerfile/dockerfile.ts +var conf = { + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".dockerfile", + variable: /\${?[\w]+}?/, + tokenizer: { + root: [ + { include: "@whitespace" }, + { include: "@comment" }, + [/(ONBUILD)(\s+)/, ["keyword", ""]], + [/(ENV)(\s+)([\w]+)/, ["keyword", "", { token: "variable", next: "@arguments" }]], + [ + /(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/, + { token: "keyword", next: "@arguments" } + ] + ], + arguments: [ + { include: "@whitespace" }, + { include: "@strings" }, + [ + /(@variable)/, + { + cases: { + "@eos": { token: "variable", next: "@popall" }, + "@default": "variable" + } + } + ], + [ + /\\/, + { + cases: { + "@eos": "", + "@default": "" + } + } + ], + [ + /./, + { + cases: { + "@eos": { token: "", next: "@popall" }, + "@default": "" + } + } + ] + ], + whitespace: [ + [ + /\s+/, + { + cases: { + "@eos": { token: "", next: "@popall" }, + "@default": "" + } + } + ] + ], + comment: [[/(^#.*$)/, "comment", "@popall"]], + strings: [ + [/\\'$/, "", "@popall"], + [/\\'/, ""], + [/'$/, "string", "@popall"], + [/'/, "string", "@stringBody"], + [/"$/, "string", "@popall"], + [/"/, "string", "@dblStringBody"] + ], + stringBody: [ + [ + /[^\\\$']/, + { + cases: { + "@eos": { token: "string", next: "@popall" }, + "@default": "string" + } + } + ], + [/\\./, "string.escape"], + [/'$/, "string", "@popall"], + [/'/, "string", "@pop"], + [/(@variable)/, "variable"], + [/\\$/, "string"], + [/$/, "string", "@popall"] + ], + dblStringBody: [ + [ + /[^\\\$"]/, + { + cases: { + "@eos": { token: "string", next: "@popall" }, + "@default": "string" + } + } + ], + [/\\./, "string.escape"], + [/"$/, "string", "@popall"], + [/"/, "string", "@pop"], + [/(@variable)/, "variable"], + [/\\$/, "string"], + [/$/, "string", "@popall"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/588.e5ea213f.js b/assets/js/588.e5ea213f.js new file mode 100644 index 00000000000..e49eab34339 --- /dev/null +++ b/assets/js/588.e5ea213f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[588],{90588:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var t=a(87462),i=(a(67294),a(3905));a(45475);const o={title:"Maybe Types",slug:"/types/maybe"},r=void 0,l={unversionedId:"types/maybe",id:"types/maybe",title:"Maybe Types",description:"You can prefix a type with ? to make it a union with null and void:",source:"@site/docs/types/maybe.md",sourceDirName:"types",slug:"/types/maybe",permalink:"/en/docs/types/maybe",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/maybe.md",tags:[],version:"current",frontMatter:{title:"Maybe Types",slug:"/types/maybe"},sidebar:"docsSidebar",previous:{title:"Any",permalink:"/en/docs/types/any"},next:{title:"Functions",permalink:"/en/docs/types/functions"}},s={},p=[{value:"Refining maybe types",id:"toc-refining-maybe-types",level:2}],m={toc:p};function u(e){let{components:n,...a}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},m,a,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"You can prefix a type with ",(0,i.mdx)("inlineCode",{parentName:"p"},"?")," to make it a ",(0,i.mdx)("a",{parentName:"p",href:"../unions"},"union")," with ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"void"),":\n",(0,i.mdx)("inlineCode",{parentName:"p"},"?T")," is equivalent to the union ",(0,i.mdx)("inlineCode",{parentName:"p"},"T | null | void"),"."),(0,i.mdx)("p",null,"For example, ",(0,i.mdx)("inlineCode",{parentName:"p"},"?number")," is equivalent to ",(0,i.mdx)("inlineCode",{parentName:"p"},"number | null | void"),", and allows for numbers, ",(0,i.mdx)("inlineCode",{parentName:"p"},"null"),", and ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined"),' as values. It\'s "maybe" a number.'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":20,"endLine":9,"endColumn":23,"description":"Cannot call `acceptsMaybeNumber` with `\\"42\\"` bound to `value` because string [1] is incompatible with number [2]. [incompatible-call]"}]','[{"startLine":9,"startColumn":20,"endLine":9,"endColumn":23,"description":"Cannot':!0,call:!0,"`acceptsMaybeNumber`":!0,with:!0,'`\\"42\\"`':!0,bound:!0,to:!0,"`value`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,number:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function acceptsMaybeNumber(value: ?number) {\n // ...\n}\n\nacceptsMaybeNumber(42); // Works!\nacceptsMaybeNumber(); // Works! (implicitly undefined)\nacceptsMaybeNumber(undefined); // Works!\nacceptsMaybeNumber(null); // Works!\nacceptsMaybeNumber("42"); // Error!\n')),(0,i.mdx)("p",null,"In the case of objects, a ",(0,i.mdx)("strong",{parentName:"p"},"missing")," property is not the same thing as an explicitly ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined")," property."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":18,"endLine":6,"endColumn":19,"description":"Cannot call `acceptsMaybeProp` with object literal bound to the first parameter because property `value` is missing in object literal [1] but exists in object type [2]. [prop-missing]"}]','[{"startLine":6,"startColumn":18,"endLine":6,"endColumn":19,"description":"Cannot':!0,call:!0,"`acceptsMaybeProp`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,the:!0,first:!0,parameter:!0,because:!0,property:!0,"`value`":!0,is:!0,missing:!0,in:!0,"[1]":!0,but:!0,exists:!0,type:!0,"[2].":!0,'[prop-missing]"}]':!0},"function acceptsMaybeProp({value}: {value: ?number}) {\n // ...\n}\n\nacceptsMaybeProp({value: undefined}); // Works!\nacceptsMaybeProp({}); // Error!\n")),(0,i.mdx)("p",null,"If you want to allow missing properties, use ",(0,i.mdx)("a",{parentName:"p",href:"../objects/#toc-optional-object-type-properties"},"optional property")," syntax, where the ",(0,i.mdx)("inlineCode",{parentName:"p"},"?")," is placed ",(0,i.mdx)("em",{parentName:"p"},"before")," the colon.\nIt is also possible to combine both syntaxes for an optional maybe type, for example ",(0,i.mdx)("inlineCode",{parentName:"p"},"{value?: ?number}"),"."),(0,i.mdx)("h2",{id:"toc-refining-maybe-types"},"Refining maybe types"),(0,i.mdx)("p",null,"Imagine we have the type ",(0,i.mdx)("inlineCode",{parentName:"p"},"?number"),", if we want to use that value as a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"\nwe'll need to first check that it is not ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," or ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsMaybeNumber(value: ?number): number {\n if (value !== null && value !== undefined) {\n return value * 2;\n }\n return 0;\n}\n")),(0,i.mdx)("p",null,"You can simplify the two checks against ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined")," using a single\n",(0,i.mdx)("inlineCode",{parentName:"p"},"!= null")," check which will do both."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsMaybeNumber(value: ?number): number {\n if (value != null) {\n return value * 2;\n }\n return 0;\n}\n")),(0,i.mdx)("p",null,"Most double equal checks are discouraged in JavaScript, but the above pattern is safe (it checks for exactly ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined"),")."),(0,i.mdx)("p",null,"You could also flip it around, and check to make sure that the value has a type\nof ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," before using it."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsMaybeNumber(value: ?number): number {\n if (typeof value === 'number') {\n return value * 2;\n }\n return 0;\n}\n")),(0,i.mdx)("p",null,"However, type refinements can be lost. For instance, calling a function after refining the type of an object's property will invalidate this refinement.\nConsult the ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/refinements/#toc-refinement-invalidations"},"refinement invalidations")," docs for more details, to understand why Flow works this way,\nand how you can avoid this common pitfall."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5880.29d24193.js b/assets/js/5880.29d24193.js new file mode 100644 index 00000000000..05729aa0c5b --- /dev/null +++ b/assets/js/5880.29d24193.js @@ -0,0 +1,686 @@ +"use strict"; +exports.id = 5880; +exports.ids = [5880]; +exports.modules = { + +/***/ 5880: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "TagAngleInterpolationBracket": () => (/* binding */ TagAngleInterpolationBracket), +/* harmony export */ "TagAngleInterpolationDollar": () => (/* binding */ TagAngleInterpolationDollar), +/* harmony export */ "TagAutoInterpolationBracket": () => (/* binding */ TagAutoInterpolationBracket), +/* harmony export */ "TagAutoInterpolationDollar": () => (/* binding */ TagAutoInterpolationDollar), +/* harmony export */ "TagBracketInterpolationBracket": () => (/* binding */ TagBracketInterpolationBracket), +/* harmony export */ "TagBracketInterpolationDollar": () => (/* binding */ TagBracketInterpolationDollar) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15030); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/freemarker2/freemarker2.ts +var EMPTY_ELEMENTS = [ + "assign", + "flush", + "ftl", + "return", + "global", + "import", + "include", + "break", + "continue", + "local", + "nested", + "nt", + "setting", + "stop", + "t", + "lt", + "rt", + "fallback" +]; +var BLOCK_ELEMENTS = [ + "attempt", + "autoesc", + "autoEsc", + "compress", + "comment", + "escape", + "noescape", + "function", + "if", + "list", + "items", + "sep", + "macro", + "noparse", + "noParse", + "noautoesc", + "noAutoEsc", + "outputformat", + "switch", + "visit", + "recurse" +]; +var TagSyntaxAngle = { + close: ">", + id: "angle", + open: "<" +}; +var TagSyntaxBracket = { + close: "\\]", + id: "bracket", + open: "\\[" +}; +var TagSyntaxAuto = { + close: "[>\\]]", + id: "auto", + open: "[<\\[]" +}; +var InterpolationSyntaxDollar = { + close: "\\}", + id: "dollar", + open1: "\\$", + open2: "\\{" +}; +var InterpolationSyntaxBracket = { + close: "\\]", + id: "bracket", + open1: "\\[", + open2: "=" +}; +function createLangConfiguration(ts) { + return { + brackets: [ + ["<", ">"], + ["[", "]"], + ["(", ")"], + ["{", "}"] + ], + comments: { + blockComment: [`${ts.open}--`, `--${ts.close}`] + }, + autoCloseBefore: "\n\r }]),.:;=", + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string"] } + ], + surroundingPairs: [ + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" } + ], + folding: { + markers: { + start: new RegExp(`${ts.open}#(?:${BLOCK_ELEMENTS.join("|")})([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`), + end: new RegExp(`${ts.open}/#(?:${BLOCK_ELEMENTS.join("|")})[\\r\\n\\t ]*>`) + } + }, + onEnterRules: [ + { + beforeText: new RegExp(`${ts.open}#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`), + afterText: new RegExp(`^${ts.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${ts.close}$`), + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`${ts.open}#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/${ts.close}]*(?!/)${ts.close})[^${ts.open}]*$`), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] + }; +} +function createLangConfigurationAuto() { + return { + brackets: [ + ["<", ">"], + ["[", "]"], + ["(", ")"], + ["{", "}"] + ], + autoCloseBefore: "\n\r }]),.:;=", + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string"] } + ], + surroundingPairs: [ + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" } + ], + folding: { + markers: { + start: new RegExp(`[<\\[]#(?:${BLOCK_ELEMENTS.join("|")})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`), + end: new RegExp(`[<\\[]/#(?:${BLOCK_ELEMENTS.join("|")})[\\r\\n\\t ]*>`) + } + }, + onEnterRules: [ + { + beforeText: new RegExp(`[<\\[]#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`), + afterText: new RegExp(`^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$`), + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`[<\\[]#(?!(?:${EMPTY_ELEMENTS.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] + }; +} +function createMonarchLanguage(ts, is) { + const id = `_${ts.id}_${is.id}`; + const s = (name) => name.replace(/__id__/g, id); + const r = (regexp) => { + const source = regexp.source.replace(/__id__/g, id); + return new RegExp(source, regexp.flags); + }; + return { + unicode: true, + includeLF: false, + start: s("default__id__"), + ignoreCase: false, + defaultToken: "invalid", + tokenPostfix: `.freemarker2`, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + [s("open__id__")]: new RegExp(ts.open), + [s("close__id__")]: new RegExp(ts.close), + [s("iOpen1__id__")]: new RegExp(is.open1), + [s("iOpen2__id__")]: new RegExp(is.open2), + [s("iClose__id__")]: new RegExp(is.close), + [s("startTag__id__")]: r(/(@open__id__)(#)/), + [s("endTag__id__")]: r(/(@open__id__)(\/#)/), + [s("startOrEndTag__id__")]: r(/(@open__id__)(\/?#)/), + [s("closeTag1__id__")]: r(/((?:@blank)*)(@close__id__)/), + [s("closeTag2__id__")]: r(/((?:@blank)*\/?)(@close__id__)/), + blank: /[ \t\n\r]/, + keywords: ["false", "true", "in", "as", "using"], + directiveStartCloseTag1: /attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/, + directiveStartCloseTag2: /else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/, + directiveStartBlank: /if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/, + directiveEndCloseTag1: /if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/, + escapedChar: /\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/, + asciiDigit: /[0-9]/, + integer: /[0-9]+/, + nonEscapedIdStartChar: /[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183-\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3006\u3031-\u3035\u303B-\u303C\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/, + escapedIdChar: /\\[\-\.:#]/, + idStartChar: /(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/, + id: /(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/, + specialHashKeys: /\*\*|\*|false|true|in|as|using/, + namedSymbols: /<=|>=|\\lte|\\lt|<|\\gte|\\gt|>|&&|\\and|->|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/, + arrows: ["->", "->"], + delimiters: [";", ":", ",", "."], + stringOperators: ["lte", "lt", "gte", "gt"], + noParseTags: ["noparse", "noParse", "comment"], + tokenizer: { + [s("default__id__")]: [ + { include: s("@directive_token__id__") }, + { include: s("@interpolation_and_text_token__id__") } + ], + [s("fmExpression__id__.directive")]: [ + { include: s("@blank_and_expression_comment_token__id__") }, + { include: s("@directive_end_token__id__") }, + { include: s("@expression_token__id__") } + ], + [s("fmExpression__id__.interpolation")]: [ + { include: s("@blank_and_expression_comment_token__id__") }, + { include: s("@expression_token__id__") }, + { include: s("@greater_operators_token__id__") } + ], + [s("inParen__id__.plain")]: [ + { include: s("@blank_and_expression_comment_token__id__") }, + { include: s("@directive_end_token__id__") }, + { include: s("@expression_token__id__") } + ], + [s("inParen__id__.gt")]: [ + { include: s("@blank_and_expression_comment_token__id__") }, + { include: s("@expression_token__id__") }, + { include: s("@greater_operators_token__id__") } + ], + [s("noSpaceExpression__id__")]: [ + { include: s("@no_space_expression_end_token__id__") }, + { include: s("@directive_end_token__id__") }, + { include: s("@expression_token__id__") } + ], + [s("unifiedCall__id__")]: [{ include: s("@unified_call_token__id__") }], + [s("singleString__id__")]: [{ include: s("@string_single_token__id__") }], + [s("doubleString__id__")]: [{ include: s("@string_double_token__id__") }], + [s("rawSingleString__id__")]: [{ include: s("@string_single_raw_token__id__") }], + [s("rawDoubleString__id__")]: [{ include: s("@string_double_raw_token__id__") }], + [s("expressionComment__id__")]: [{ include: s("@expression_comment_token__id__") }], + [s("noParse__id__")]: [{ include: s("@no_parse_token__id__") }], + [s("terseComment__id__")]: [{ include: s("@terse_comment_token__id__") }], + [s("directive_token__id__")]: [ + [ + r(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { + cases: { + "@noParseTags": { token: "tag", next: s("@noParse__id__.$3") }, + "@default": { token: "tag" } + } + }, + { token: "delimiter.directive" }, + { token: "@brackets.directive" } + ] + ], + [ + r(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag" }, + { token: "delimiter.directive" }, + { token: "@brackets.directive" } + ] + ], + [ + r(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag" }, + { token: "", next: s("@fmExpression__id__.directive") } + ] + ], + [ + r(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag" }, + { token: "delimiter.directive" }, + { token: "@brackets.directive" } + ] + ], + [ + r(/(@open__id__)(@)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive", next: s("@unifiedCall__id__") } + ] + ], + [ + r(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/), + [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag" }, + { token: "delimiter.directive" }, + { token: "@brackets.directive" } + ] + ], + [ + r(/(@open__id__)#--/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : { token: "comment", next: s("@terseComment__id__") } + ], + [ + r(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/), + ts.id === "auto" ? { + cases: { + "$1==<": { token: "@rematch", switchTo: `@default_angle_${is.id}` }, + "$1==[": { token: "@rematch", switchTo: `@default_bracket_${is.id}` } + } + } : [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag.invalid", next: s("@fmExpression__id__.directive") } + ] + ] + ], + [s("interpolation_and_text_token__id__")]: [ + [ + r(/(@iOpen1__id__)(@iOpen2__id__)/), + [ + { token: is.id === "bracket" ? "@brackets.interpolation" : "delimiter.interpolation" }, + { + token: is.id === "bracket" ? "delimiter.interpolation" : "@brackets.interpolation", + next: s("@fmExpression__id__.interpolation") + } + ] + ], + [/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/, { token: "source" }] + ], + [s("string_single_token__id__")]: [ + [/[^'\\]/, { token: "string" }], + [/@escapedChar/, { token: "string.escape" }], + [/'/, { token: "string", next: "@pop" }] + ], + [s("string_double_token__id__")]: [ + [/[^"\\]/, { token: "string" }], + [/@escapedChar/, { token: "string.escape" }], + [/"/, { token: "string", next: "@pop" }] + ], + [s("string_single_raw_token__id__")]: [ + [/[^']+/, { token: "string.raw" }], + [/'/, { token: "string.raw", next: "@pop" }] + ], + [s("string_double_raw_token__id__")]: [ + [/[^"]+/, { token: "string.raw" }], + [/"/, { token: "string.raw", next: "@pop" }] + ], + [s("expression_token__id__")]: [ + [ + /(r?)(['"])/, + { + cases: { + "r'": [ + { token: "keyword" }, + { token: "string.raw", next: s("@rawSingleString__id__") } + ], + 'r"': [ + { token: "keyword" }, + { token: "string.raw", next: s("@rawDoubleString__id__") } + ], + "'": [{ token: "source" }, { token: "string", next: s("@singleString__id__") }], + '"': [{ token: "source" }, { token: "string", next: s("@doubleString__id__") }] + } + } + ], + [ + /(?:@integer)(?:\.(?:@integer))?/, + { + cases: { + "(?:@integer)": { token: "number" }, + "@default": { token: "number.float" } + } + } + ], + [ + /(\.)(@blank*)(@specialHashKeys)/, + [{ token: "delimiter" }, { token: "" }, { token: "identifier" }] + ], + [ + /(?:@namedSymbols)/, + { + cases: { + "@arrows": { token: "meta.arrow" }, + "@delimiters": { token: "delimiter" }, + "@default": { token: "operators" } + } + } + ], + [ + /@id/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@stringOperators": { token: "operators" }, + "@default": { token: "identifier" } + } + } + ], + [ + /[\[\]\(\)\{\}]/, + { + cases: { + "\\[": { + cases: { + "$S2==gt": { token: "@brackets", next: s("@inParen__id__.gt") }, + "@default": { token: "@brackets", next: s("@inParen__id__.plain") } + } + }, + "\\]": { + cases: { + ...is.id === "bracket" ? { + "$S2==interpolation": { token: "@brackets.interpolation", next: "@popall" } + } : {}, + ...ts.id === "bracket" ? { + "$S2==directive": { token: "@brackets.directive", next: "@popall" } + } : {}, + [s("$S1==inParen__id__")]: { token: "@brackets", next: "@pop" }, + "@default": { token: "@brackets" } + } + }, + "\\(": { token: "@brackets", next: s("@inParen__id__.gt") }, + "\\)": { + cases: { + [s("$S1==inParen__id__")]: { token: "@brackets", next: "@pop" }, + "@default": { token: "@brackets" } + } + }, + "\\{": { + cases: { + "$S2==gt": { token: "@brackets", next: s("@inParen__id__.gt") }, + "@default": { token: "@brackets", next: s("@inParen__id__.plain") } + } + }, + "\\}": { + cases: { + ...is.id === "bracket" ? {} : { + "$S2==interpolation": { token: "@brackets.interpolation", next: "@popall" } + }, + [s("$S1==inParen__id__")]: { token: "@brackets", next: "@pop" }, + "@default": { token: "@brackets" } + } + } + } + } + ], + [/\$\{/, { token: "delimiter.invalid" }] + ], + [s("blank_and_expression_comment_token__id__")]: [ + [/(?:@blank)+/, { token: "" }], + [/[<\[][#!]--/, { token: "comment", next: s("@expressionComment__id__") }] + ], + [s("directive_end_token__id__")]: [ + [ + />/, + ts.id === "bracket" ? { token: "operators" } : { token: "@brackets.directive", next: "@popall" } + ], + [ + r(/(\/)(@close__id__)/), + [{ token: "delimiter.directive" }, { token: "@brackets.directive", next: "@popall" }] + ] + ], + [s("greater_operators_token__id__")]: [ + [/>/, { token: "operators" }], + [/>=/, { token: "operators" }] + ], + [s("no_space_expression_end_token__id__")]: [ + [/(?:@blank)+/, { token: "", switchTo: s("@fmExpression__id__.directive") }] + ], + [s("unified_call_token__id__")]: [ + [ + /(@id)((?:@blank)+)/, + [{ token: "tag" }, { token: "", next: s("@fmExpression__id__.directive") }] + ], + [ + r(/(@id)(\/?)(@close__id__)/), + [ + { token: "tag" }, + { token: "delimiter.directive" }, + { token: "@brackets.directive", next: "@popall" } + ] + ], + [/./, { token: "@rematch", next: s("@noSpaceExpression__id__") }] + ], + [s("no_parse_token__id__")]: [ + [ + r(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/), + { + cases: { + "$S2==$3": [ + { token: "@brackets.directive" }, + { token: "delimiter.directive" }, + { token: "tag" }, + { token: "" }, + { token: "@brackets.directive", next: "@popall" } + ], + "$S2==comment": [ + { token: "comment" }, + { token: "comment" }, + { token: "comment" }, + { token: "comment" }, + { token: "comment" } + ], + "@default": [ + { token: "source" }, + { token: "source" }, + { token: "source" }, + { token: "source" }, + { token: "source" } + ] + } + } + ], + [ + /[^<\[\-]+|[<\[\-]/, + { + cases: { + "$S2==comment": { token: "comment" }, + "@default": { token: "source" } + } + } + ] + ], + [s("expression_comment_token__id__")]: [ + [ + /--[>\]]/, + { + token: "comment", + next: "@pop" + } + ], + [/[^\->\]]+|[>\]\-]/, { token: "comment" }] + ], + [s("terse_comment_token__id__")]: [ + [r(/--(?:@close__id__)/), { token: "comment", next: "@popall" }], + [/[^<\[\-]+|[<\[\-]/, { token: "comment" }] + ] + } + }; +} +function createMonarchLanguageAuto(is) { + const angle = createMonarchLanguage(TagSyntaxAngle, is); + const bracket = createMonarchLanguage(TagSyntaxBracket, is); + const auto = createMonarchLanguage(TagSyntaxAuto, is); + return { + ...angle, + ...bracket, + ...auto, + unicode: true, + includeLF: false, + start: `default_auto_${is.id}`, + ignoreCase: false, + defaultToken: "invalid", + tokenPostfix: `.freemarker2`, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + tokenizer: { + ...angle.tokenizer, + ...bracket.tokenizer, + ...auto.tokenizer + } + }; +} +var TagAngleInterpolationDollar = { + conf: createLangConfiguration(TagSyntaxAngle), + language: createMonarchLanguage(TagSyntaxAngle, InterpolationSyntaxDollar) +}; +var TagBracketInterpolationDollar = { + conf: createLangConfiguration(TagSyntaxBracket), + language: createMonarchLanguage(TagSyntaxBracket, InterpolationSyntaxDollar) +}; +var TagAngleInterpolationBracket = { + conf: createLangConfiguration(TagSyntaxAngle), + language: createMonarchLanguage(TagSyntaxAngle, InterpolationSyntaxBracket) +}; +var TagBracketInterpolationBracket = { + conf: createLangConfiguration(TagSyntaxBracket), + language: createMonarchLanguage(TagSyntaxBracket, InterpolationSyntaxBracket) +}; +var TagAutoInterpolationDollar = { + conf: createLangConfigurationAuto(), + language: createMonarchLanguageAuto(InterpolationSyntaxDollar) +}; +var TagAutoInterpolationBracket = { + conf: createLangConfigurationAuto(), + language: createMonarchLanguageAuto(InterpolationSyntaxBracket) +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/5880.2cab3cef.js b/assets/js/5880.2cab3cef.js new file mode 100644 index 00000000000..81b484b7e00 --- /dev/null +++ b/assets/js/5880.2cab3cef.js @@ -0,0 +1,2 @@ +/*! For license information please see 5880.2cab3cef.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5880],{5880:(e,t,n)=>{n.r(t),n.d(t,{TagAngleInterpolationBracket:()=>B,TagAngleInterpolationDollar:()=>D,TagAutoInterpolationBracket:()=>v,TagAutoInterpolationDollar:()=>w,TagBracketInterpolationBracket:()=>C,TagBracketInterpolationDollar:()=>E});var o,i,_=n(15030),r=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,u=Object.prototype.hasOwnProperty,c=(e,t,n,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of s(t))u.call(e,i)||i===n||r(e,i,{get:()=>t[i],enumerable:!(o=a(t,i))||o.enumerable});return e},d={};c(d,o=_,"default"),i&&c(i,o,"default");var l=["assign","flush","ftl","return","global","import","include","break","continue","local","nested","nt","setting","stop","t","lt","rt","fallback"],k=["attempt","autoesc","autoEsc","compress","comment","escape","noescape","function","if","list","items","sep","macro","noparse","noParse","noautoesc","noAutoEsc","outputformat","switch","visit","recurse"],p={close:">",id:"angle",open:"<"},g={close:"\\]",id:"bracket",open:"\\["},A={close:"[>\\]]",id:"auto",open:"[<\\[]"},m={close:"\\}",id:"dollar",open1:"\\$",open2:"\\{"},f={close:"\\]",id:"bracket",open1:"\\[",open2:"="};function F(e){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],comments:{blockComment:[`${e.open}--`,`--${e.close}`]},autoCloseBefore:"\n\r\t }]),.:;=",autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`${e.open}#(?:${k.join("|")})([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),end:new RegExp(`${e.open}/#(?:${k.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`${e.open}#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),afterText:new RegExp(`^${e.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${e.close}$`),action:{indentAction:d.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`${e.open}#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/${e.close}]*(?!/)${e.close})[^${e.open}]*$`),action:{indentAction:d.languages.IndentAction.Indent}}]}}function b(){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],autoCloseBefore:"\n\r\t }]),.:;=",autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`[<\\[]#(?:${k.join("|")})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`),end:new RegExp(`[<\\[]/#(?:${k.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`[<\\[]#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),afterText:new RegExp("^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$"),action:{indentAction:d.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`[<\\[]#(?!(?:${l.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),action:{indentAction:d.languages.IndentAction.Indent}}]}}function x(e,t){const n=`_${e.id}_${t.id}`,o=e=>e.replace(/__id__/g,n),i=e=>{const t=e.source.replace(/__id__/g,n);return new RegExp(t,e.flags)};return{unicode:!0,includeLF:!1,start:o("default__id__"),ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],[o("open__id__")]:new RegExp(e.open),[o("close__id__")]:new RegExp(e.close),[o("iOpen1__id__")]:new RegExp(t.open1),[o("iOpen2__id__")]:new RegExp(t.open2),[o("iClose__id__")]:new RegExp(t.close),[o("startTag__id__")]:i(/(@open__id__)(#)/),[o("endTag__id__")]:i(/(@open__id__)(\/#)/),[o("startOrEndTag__id__")]:i(/(@open__id__)(\/?#)/),[o("closeTag1__id__")]:i(/((?:@blank)*)(@close__id__)/),[o("closeTag2__id__")]:i(/((?:@blank)*\/?)(@close__id__)/),blank:/[ \t\n\r]/,keywords:["false","true","in","as","using"],directiveStartCloseTag1:/attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,directiveStartCloseTag2:/else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,directiveStartBlank:/if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,directiveEndCloseTag1:/if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,escapedChar:/\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/,asciiDigit:/[0-9]/,integer:/[0-9]+/,nonEscapedIdStartChar:/[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183-\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3006\u3031-\u3035\u303B-\u303C\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,escapedIdChar:/\\[\-\.:#]/,idStartChar:/(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,id:/(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,specialHashKeys:/\*\*|\*|false|true|in|as|using/,namedSymbols:/<=|>=|\\lte|\\lt|<|\\gte|\\gt|>|&&|\\and|->|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/,arrows:["->","->"],delimiters:[";",":",",","."],stringOperators:["lte","lt","gte","gt"],noParseTags:["noparse","noParse","comment"],tokenizer:{[o("default__id__")]:[{include:o("@directive_token__id__")},{include:o("@interpolation_and_text_token__id__")}],[o("fmExpression__id__.directive")]:[{include:o("@blank_and_expression_comment_token__id__")},{include:o("@directive_end_token__id__")},{include:o("@expression_token__id__")}],[o("fmExpression__id__.interpolation")]:[{include:o("@blank_and_expression_comment_token__id__")},{include:o("@expression_token__id__")},{include:o("@greater_operators_token__id__")}],[o("inParen__id__.plain")]:[{include:o("@blank_and_expression_comment_token__id__")},{include:o("@directive_end_token__id__")},{include:o("@expression_token__id__")}],[o("inParen__id__.gt")]:[{include:o("@blank_and_expression_comment_token__id__")},{include:o("@expression_token__id__")},{include:o("@greater_operators_token__id__")}],[o("noSpaceExpression__id__")]:[{include:o("@no_space_expression_end_token__id__")},{include:o("@directive_end_token__id__")},{include:o("@expression_token__id__")}],[o("unifiedCall__id__")]:[{include:o("@unified_call_token__id__")}],[o("singleString__id__")]:[{include:o("@string_single_token__id__")}],[o("doubleString__id__")]:[{include:o("@string_double_token__id__")}],[o("rawSingleString__id__")]:[{include:o("@string_single_raw_token__id__")}],[o("rawDoubleString__id__")]:[{include:o("@string_double_raw_token__id__")}],[o("expressionComment__id__")]:[{include:o("@expression_comment_token__id__")}],[o("noParse__id__")]:[{include:o("@no_parse_token__id__")}],[o("terseComment__id__")]:[{include:o("@terse_comment_token__id__")}],[o("directive_token__id__")]:[[i(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{cases:{"@noParseTags":{token:"tag",next:o("@noParse__id__.$3")},"@default":{token:"tag"}}},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[i(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[i(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"",next:o("@fmExpression__id__.directive")}]],[i(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[i(/(@open__id__)(@)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive",next:o("@unifiedCall__id__")}]],[i(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/),[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[i(/(@open__id__)#--/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:{token:"comment",next:o("@terseComment__id__")}],[i(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),"auto"===e.id?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${t.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${t.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag.invalid",next:o("@fmExpression__id__.directive")}]]],[o("interpolation_and_text_token__id__")]:[[i(/(@iOpen1__id__)(@iOpen2__id__)/),[{token:"bracket"===t.id?"@brackets.interpolation":"delimiter.interpolation"},{token:"bracket"===t.id?"delimiter.interpolation":"@brackets.interpolation",next:o("@fmExpression__id__.interpolation")}]],[/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/,{token:"source"}]],[o("string_single_token__id__")]:[[/[^'\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/'/,{token:"string",next:"@pop"}]],[o("string_double_token__id__")]:[[/[^"\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/"/,{token:"string",next:"@pop"}]],[o("string_single_raw_token__id__")]:[[/[^']+/,{token:"string.raw"}],[/'/,{token:"string.raw",next:"@pop"}]],[o("string_double_raw_token__id__")]:[[/[^"]+/,{token:"string.raw"}],[/"/,{token:"string.raw",next:"@pop"}]],[o("expression_token__id__")]:[[/(r?)(['"])/,{cases:{"r'":[{token:"keyword"},{token:"string.raw",next:o("@rawSingleString__id__")}],'r"':[{token:"keyword"},{token:"string.raw",next:o("@rawDoubleString__id__")}],"'":[{token:"source"},{token:"string",next:o("@singleString__id__")}],'"':[{token:"source"},{token:"string",next:o("@doubleString__id__")}]}}],[/(?:@integer)(?:\.(?:@integer))?/,{cases:{"(?:@integer)":{token:"number"},"@default":{token:"number.float"}}}],[/(\.)(@blank*)(@specialHashKeys)/,[{token:"delimiter"},{token:""},{token:"identifier"}]],[/(?:@namedSymbols)/,{cases:{"@arrows":{token:"meta.arrow"},"@delimiters":{token:"delimiter"},"@default":{token:"operators"}}}],[/@id/,{cases:{"@keywords":{token:"keyword.$0"},"@stringOperators":{token:"operators"},"@default":{token:"identifier"}}}],[/[\[\]\(\)\{\}]/,{cases:{"\\[":{cases:{"$S2==gt":{token:"@brackets",next:o("@inParen__id__.gt")},"@default":{token:"@brackets",next:o("@inParen__id__.plain")}}},"\\]":{cases:{..."bracket"===t.id?{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}}:{},..."bracket"===e.id?{"$S2==directive":{token:"@brackets.directive",next:"@popall"}}:{},[o("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\(":{token:"@brackets",next:o("@inParen__id__.gt")},"\\)":{cases:{[o("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\{":{cases:{"$S2==gt":{token:"@brackets",next:o("@inParen__id__.gt")},"@default":{token:"@brackets",next:o("@inParen__id__.plain")}}},"\\}":{cases:{..."bracket"===t.id?{}:{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}},[o("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}}}}],[/\$\{/,{token:"delimiter.invalid"}]],[o("blank_and_expression_comment_token__id__")]:[[/(?:@blank)+/,{token:""}],[/[<\[][#!]--/,{token:"comment",next:o("@expressionComment__id__")}]],[o("directive_end_token__id__")]:[[/>/,"bracket"===e.id?{token:"operators"}:{token:"@brackets.directive",next:"@popall"}],[i(/(\/)(@close__id__)/),[{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]]],[o("greater_operators_token__id__")]:[[/>/,{token:"operators"}],[/>=/,{token:"operators"}]],[o("no_space_expression_end_token__id__")]:[[/(?:@blank)+/,{token:"",switchTo:o("@fmExpression__id__.directive")}]],[o("unified_call_token__id__")]:[[/(@id)((?:@blank)+)/,[{token:"tag"},{token:"",next:o("@fmExpression__id__.directive")}]],[i(/(@id)(\/?)(@close__id__)/),[{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]],[/./,{token:"@rematch",next:o("@noSpaceExpression__id__")}]],[o("no_parse_token__id__")]:[[i(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),{cases:{"$S2==$3":[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:""},{token:"@brackets.directive",next:"@popall"}],"$S2==comment":[{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"}],"@default":[{token:"source"},{token:"source"},{token:"source"},{token:"source"},{token:"source"}]}}],[/[^<\[\-]+|[<\[\-]/,{cases:{"$S2==comment":{token:"comment"},"@default":{token:"source"}}}]],[o("expression_comment_token__id__")]:[[/--[>\]]/,{token:"comment",next:"@pop"}],[/[^\->\]]+|[>\]\-]/,{token:"comment"}]],[o("terse_comment_token__id__")]:[[i(/--(?:@close__id__)/),{token:"comment",next:"@popall"}],[/[^<\[\-]+|[<\[\-]/,{token:"comment"}]]}}}function $(e){const t=x(p,e),n=x(g,e),o=x(A,e);return{...t,...n,...o,unicode:!0,includeLF:!1,start:`default_auto_${e.id}`,ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{...t.tokenizer,...n.tokenizer,...o.tokenizer}}}var D={conf:F(p),language:x(p,m)},E={conf:F(g),language:x(g,m)},B={conf:F(p),language:x(p,f)},C={conf:F(g),language:x(g,f)},w={conf:b(),language:$(m)},v={conf:b(),language:$(f)}}}]); \ No newline at end of file diff --git a/assets/js/5880.2cab3cef.js.LICENSE.txt b/assets/js/5880.2cab3cef.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/5880.2cab3cef.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/5898.367d7429.js b/assets/js/5898.367d7429.js new file mode 100644 index 00000000000..8e9d419a315 --- /dev/null +++ b/assets/js/5898.367d7429.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5898],{15898:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>n,metadata:()=>i,toc:()=>h});var r=o(87462),a=(o(67294),o(3905));const n={author:"Gabe Levi",hide_table_of_contents:!0},s=void 0,i={permalink:"/blog/2015/10/07/Version-0.17.0",source:"@site/blog/2015-10-07-Version-0.17.0.md",title:"Version-0.17.0",description:"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:",date:"2015-10-07T00:00:00.000Z",formattedDate:"October 7, 2015",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Typing Generators with Flow",permalink:"/blog/2015/11/09/Generators"},nextItem:{title:"Version-0.16.0",permalink:"/blog/2015/09/22/Version-0.16.0"}},l={authorsImageUrls:[void 0]},h=[],d={toc:h};function u(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,r.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:"),(0,a.mdx)("p",null,"![New error format]","({{ site.baseurl }}/static/new_error_format_v0_17_0.png)"),(0,a.mdx)("p",null,"This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/frantic"},"@frantic")," for building this feature!"),(0,a.mdx)("p",null,"There are a whole bunch of other features and fixes in this release! Head on over to our ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases/tag/v0.17.0"},"Release")," for the full list!"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5962.1b154b2a.js b/assets/js/5962.1b154b2a.js new file mode 100644 index 00000000000..f9b33980afa --- /dev/null +++ b/assets/js/5962.1b154b2a.js @@ -0,0 +1,212 @@ +"use strict"; +exports.id = 5962; +exports.ids = [5962]; +exports.modules = { + +/***/ 85962: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/sparql/sparql.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "'", close: "'", notIn: ["string"] }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".rq", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" }, + { token: "delimiter.angle", open: "<", close: ">" } + ], + keywords: [ + "add", + "as", + "asc", + "ask", + "base", + "by", + "clear", + "construct", + "copy", + "create", + "data", + "delete", + "desc", + "describe", + "distinct", + "drop", + "false", + "filter", + "from", + "graph", + "group", + "having", + "in", + "insert", + "limit", + "load", + "minus", + "move", + "named", + "not", + "offset", + "optional", + "order", + "prefix", + "reduced", + "select", + "service", + "silent", + "to", + "true", + "undef", + "union", + "using", + "values", + "where", + "with" + ], + builtinFunctions: [ + "a", + "abs", + "avg", + "bind", + "bnode", + "bound", + "ceil", + "coalesce", + "concat", + "contains", + "count", + "datatype", + "day", + "encode_for_uri", + "exists", + "floor", + "group_concat", + "hours", + "if", + "iri", + "isblank", + "isiri", + "isliteral", + "isnumeric", + "isuri", + "lang", + "langmatches", + "lcase", + "max", + "md5", + "min", + "minutes", + "month", + "now", + "rand", + "regex", + "replace", + "round", + "sameterm", + "sample", + "seconds", + "sha1", + "sha256", + "sha384", + "sha512", + "str", + "strafter", + "strbefore", + "strdt", + "strends", + "strlang", + "strlen", + "strstarts", + "struuid", + "substr", + "sum", + "timezone", + "tz", + "ucase", + "uri", + "uuid", + "year" + ], + ignoreCase: true, + tokenizer: { + root: [ + [/<[^\s\u00a0>]*>?/, "tag"], + { include: "@strings" }, + [/#.*/, "comment"], + [/[{}()\[\]]/, "@brackets"], + [/[;,.]/, "delimiter"], + [/[_\w\d]+:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])*/, "tag"], + [/:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/, "tag"], + [ + /[$?]?[_\w\d]+/, + { + cases: { + "@keywords": { token: "keyword" }, + "@builtinFunctions": { token: "predefined.sql" }, + "@default": "identifier" + } + } + ], + [/\^\^/, "operator.sql"], + [/\^[*+\-<>=&|^\/!?]*/, "operator.sql"], + [/[*+\-<>=&|\/!?]/, "operator.sql"], + [/@[a-z\d\-]*/, "metatag.html"], + [/\s+/, "white"] + ], + strings: [ + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/'$/, "string.sql", "@pop"], + [/'/, "string.sql", "@stringBody"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"$/, "string.sql", "@pop"], + [/"/, "string.sql", "@dblStringBody"] + ], + stringBody: [ + [/[^\\']+/, "string.sql"], + [/\\./, "string.escape"], + [/'/, "string.sql", "@pop"] + ], + dblStringBody: [ + [/[^\\"]+/, "string.sql"], + [/\\./, "string.escape"], + [/"/, "string.sql", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/5962.cf4e9fcb.js b/assets/js/5962.cf4e9fcb.js new file mode 100644 index 00000000000..2df9cb5d17a --- /dev/null +++ b/assets/js/5962.cf4e9fcb.js @@ -0,0 +1,2 @@ +/*! For license information please see 5962.cf4e9fcb.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5962],{85962:(e,s,t)=>{t.r(s),t.d(s,{conf:()=>n,language:()=>i});var n={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"'",close:"'",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]},i={defaultToken:"",tokenPostfix:".rq",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["add","as","asc","ask","base","by","clear","construct","copy","create","data","delete","desc","describe","distinct","drop","false","filter","from","graph","group","having","in","insert","limit","load","minus","move","named","not","offset","optional","order","prefix","reduced","select","service","silent","to","true","undef","union","using","values","where","with"],builtinFunctions:["a","abs","avg","bind","bnode","bound","ceil","coalesce","concat","contains","count","datatype","day","encode_for_uri","exists","floor","group_concat","hours","if","iri","isblank","isiri","isliteral","isnumeric","isuri","lang","langmatches","lcase","max","md5","min","minutes","month","now","rand","regex","replace","round","sameterm","sample","seconds","sha1","sha256","sha384","sha512","str","strafter","strbefore","strdt","strends","strlang","strlen","strstarts","struuid","substr","sum","timezone","tz","ucase","uri","uuid","year"],ignoreCase:!0,tokenizer:{root:[[/<[^\s\u00a0>]*>?/,"tag"],{include:"@strings"},[/#.*/,"comment"],[/[{}()\[\]]/,"@brackets"],[/[;,.]/,"delimiter"],[/[_\w\d]+:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])*/,"tag"],[/:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/,"tag"],[/[$?]?[_\w\d]+/,{cases:{"@keywords":{token:"keyword"},"@builtinFunctions":{token:"predefined.sql"},"@default":"identifier"}}],[/\^\^/,"operator.sql"],[/\^[*+\-<>=&|^\/!?]*/,"operator.sql"],[/[*+\-<>=&|\/!?]/,"operator.sql"],[/@[a-z\d\-]*/,"metatag.html"],[/\s+/,"white"]],strings:[[/'([^'\\]|\\.)*$/,"string.invalid"],[/'$/,"string.sql","@pop"],[/'/,"string.sql","@stringBody"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"$/,"string.sql","@pop"],[/"/,"string.sql","@dblStringBody"]],stringBody:[[/[^\\']+/,"string.sql"],[/\\./,"string.escape"],[/'/,"string.sql","@pop"]],dblStringBody:[[/[^\\"]+/,"string.sql"],[/\\./,"string.escape"],[/"/,"string.sql","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/5962.cf4e9fcb.js.LICENSE.txt b/assets/js/5962.cf4e9fcb.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/5962.cf4e9fcb.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/5975.ba58926b.js b/assets/js/5975.ba58926b.js new file mode 100644 index 00000000000..a19c644602a --- /dev/null +++ b/assets/js/5975.ba58926b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[5975],{55975:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var o=a(87462),n=(a(67294),a(3905));const i={title:"Windows Support is Here!","short-title":"Windows Support",author:"Gabe Levi",hide_table_of_contents:!0},r=void 0,s={permalink:"/blog/2016/08/01/Windows-Support",source:"@site/blog/2016-08-01-Windows-Support.md",title:"Windows Support is Here!",description:"We are excited to announce that Flow is now officially available on 64-bit",date:"2016-08-01T00:00:00.000Z",formattedDate:"August 1, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Windows Support is Here!","short-title":"Windows Support",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Property Variance and Other Upcoming Changes",permalink:"/blog/2016/10/04/Property-Variance"},nextItem:{title:"New Implementation of Unions and Intersections",permalink:"/blog/2016/07/01/New-Unions-Intersections"}},p={authorsImageUrls:[void 0]},l=[],m={toc:l};function d(e){let{components:t,...a}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We are excited to announce that Flow is now officially available on 64-bit\nWindows! Starting with\n",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases/tag/v0.30.0"},"Flow v0.30.0"),", we will\npublish a Windows binary with each release. You can download the Windows binary\nin a .zip file directly from the\n",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/releases"},"GitHub releases page")," or install it\nusing the ",(0,n.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/flow-bin"},"flow-bin npm package"),". Try\nit out and ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues"},"report any issues")," you\ncome across!"),(0,n.mdx)("p",null,"![Windows Support GIF]","({{ site.baseurl }}/static/windows.gif)"),(0,n.mdx)("p",null,"Getting Flow working on Windows was not easy, and it was made possible by the\nhard work of ",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/OCamlPro-Henry"},"Gr\xe9goire"),",\n",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/OCamlPro-Bozman"},"\xc7agdas")," and\n",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/lefessan"},"Fabrice")," from\n",(0,n.mdx)("a",{parentName:"p",href:"https://www.ocamlpro.com/"},"OCamlPro"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6020.fd5de0c7.js b/assets/js/6020.fd5de0c7.js new file mode 100644 index 00000000000..5bfae5698bd --- /dev/null +++ b/assets/js/6020.fd5de0c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6020],{16020:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>r,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>m});var n=o(87462),s=(o(67294),o(3905));const i={title:"Announcing Flow Comments","short-title":"Flow Comments",author:"Gabe Levi",hide_table_of_contents:!0},a=void 0,l={permalink:"/blog/2015/02/20/Flow-Comments",source:"@site/blog/2015-02-20-Flow-Comments.md",title:"Announcing Flow Comments",description:"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!",date:"2015-02-20T00:00:00.000Z",formattedDate:"February 20, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Announcing Flow Comments","short-title":"Flow Comments",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Announcing Bounded Polymorphism",permalink:"/blog/2015/03/12/Bounded-Polymorphism"},nextItem:{title:"Announcing Import Type",permalink:"/blog/2015/02/18/Import-Types"}},r={authorsImageUrls:[void 0]},m=[],c={toc:m};function p(e){let{components:t,...o}=e;return(0,s.mdx)("wrapper",(0,n.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our ",(0,s.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/3"},"most requested features")," and hopefully it will enable even more people to use Flow!"),(0,s.mdx)("p",null,"This feature introduces 3 special comments: ",(0,s.mdx)("inlineCode",{parentName:"p"},"/*:"),", ",(0,s.mdx)("inlineCode",{parentName:"p"},"/*::"),", and ",(0,s.mdx)("inlineCode",{parentName:"p"},"/*flow-include"),". Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6065.9ee332e5.js b/assets/js/6065.9ee332e5.js new file mode 100644 index 00000000000..bebb66d2551 --- /dev/null +++ b/assets/js/6065.9ee332e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6065],{26065:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var n=o(87462),r=(o(67294),o(3905));const a={title:"Introducing Flow-Typed","short-title":"Introducing Flow-Typed",author:"Jeff Morrison",hide_table_of_contents:!0},i=void 0,l={permalink:"/blog/2016/10/13/Flow-Typed",source:"@site/blog/2016-10-13-Flow-Typed.md",title:"Introducing Flow-Typed",description:"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are",date:"2016-10-13T00:00:00.000Z",formattedDate:"October 13, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Jeff Morrison"}],frontMatter:{title:"Introducing Flow-Typed","short-title":"Introducing Flow-Typed",author:"Jeff Morrison",hide_table_of_contents:!0},prevItem:{title:"Strict Checking of Function Call Arity",permalink:"/blog/2017/05/07/Strict-Function-Call-Arity"},nextItem:{title:"Property Variance and Other Upcoming Changes",permalink:"/blog/2016/10/04/Property-Variance"}},s={authorsImageUrls:[void 0]},d=[],p={toc:d};function c(e){let{components:t,...o}=e;return(0,r.mdx)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Having high-quality and community-driven library definitions (\u201clibdefs\u201d) are\nimportant for having a great experience with Flow. Today, we are introducing\n",(0,r.mdx)("strong",{parentName:"p"},"flow-typed"),": A ",(0,r.mdx)("a",{parentName:"p",href:"https://github.com/flowtype/flow-typed/"},"repository")," and\n",(0,r.mdx)("a",{parentName:"p",href:"http://npmjs.org/packages/flow-typed"},"CLI tool")," that represent the first parts\nof a new workflow for building, sharing, and distributing Flow libdefs."),(0,r.mdx)("p",null,"The goal of this project is to grow an ecosystem of libdefs that\n",(0,r.mdx)("a",{parentName:"p",href:"https://medium.com/@thejameskyle/flow-mapping-an-object-373d64c44592"},"allows Flow's type inference to shine"),"\nand that aligns with Flow's mission: To extract precise and ",(0,r.mdx)("em",{parentName:"p"},"accurate")," types\nfrom real-world JavaScript. We've learned a lot from similar efforts like\nDefinitelyTyped for TypeScript and we want to bring some of the lessons we've\nlearned to the Flow ecosystem."),(0,r.mdx)("p",null,"Here are some of the objectives of this project:"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6081.624ea89b.js b/assets/js/6081.624ea89b.js new file mode 100644 index 00000000000..f8c94f0326b --- /dev/null +++ b/assets/js/6081.624ea89b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6081],{66081:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var t=s(87462),a=(s(67294),s(3905));s(45475);const r={title:"Classes",slug:"/types/classes"},o=void 0,i={unversionedId:"types/classes",id:"types/classes",title:"Classes",description:"JavaScript classes",source:"@site/docs/types/classes.md",sourceDirName:"types",slug:"/types/classes",permalink:"/en/docs/types/classes",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/classes.md",tags:[],version:"current",frontMatter:{title:"Classes",slug:"/types/classes"},sidebar:"docsSidebar",previous:{title:"Tuples",permalink:"/en/docs/types/tuples"},next:{title:"Type Aliases",permalink:"/en/docs/types/aliases"}},l={},d=[{value:"Class Syntax",id:"toc-class-syntax",level:2},{value:"Class Methods",id:"toc-class-methods",level:3},{value:"Class Fields (Properties)",id:"toc-class-fields-properties",level:3},{value:"Extending classes and implementing interfaces",id:"extending-classes-and-implementing-interfaces",level:3},{value:"Class Constructors",id:"toc-class-fields-constructors",level:3},{value:"Class Generics",id:"toc-class-generics",level:3},{value:"Classes in annotations",id:"toc-classes-in-annotations",level:2}],m={toc:d};function c(e){let{components:n,...s}=e;return(0,a.mdx)("wrapper",(0,t.Z)({},m,s,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"JavaScript ",(0,a.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes"},"classes"),"\nin Flow operate both as a value and a type. You can use the name of the class as the type of its instances:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n // ...\n}\n\nconst myInstance: MyClass = new MyClass(); // Works!\n")),(0,a.mdx)("p",null,"This is because classes in Flow are ",(0,a.mdx)("a",{parentName:"p",href:"../../lang/nominal-structural"},"nominally typed"),"."),(0,a.mdx)("p",null,"This means two classes with identical shapes are not compatible:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":16,"endLine":7,"endColumn":22,"description":"Cannot assign `new A()` to `foo` because `A` [1] is incompatible with `B` [2]. [incompatible-type]"},{"startLine":8,"startColumn":16,"endLine":8,"endColumn":22,"description":"Cannot assign `new B()` to `bar` because `B` [1] is incompatible with `A` [2]. [incompatible-type]"}]','[{"startLine":7,"startColumn":16,"endLine":7,"endColumn":22,"description":"Cannot':!0,assign:!0,"`new":!0,"A()`":!0,to:!0,"`foo`":!0,because:!0,"`A`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`B`":!0,"[2].":!0,'[incompatible-type]"},{"startLine":8,"startColumn":16,"endLine":8,"endColumn":22,"description":"Cannot':!0,"B()`":!0,"`bar`":!0,'[incompatible-type]"}]':!0},"class A {\n x: number;\n}\nclass B {\n x: number;\n}\nconst foo: B = new A(); // Error!\nconst bar: A = new B(); // Error!\n")),(0,a.mdx)("p",null,"You also cannot use an ",(0,a.mdx)("a",{parentName:"p",href:"../objects"},"object type")," to describe an instance of a class:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":31,"endLine":4,"endColumn":43,"description":"Cannot assign `new MyClass()` to `foo` because `MyClass` [1] is not a subtype of object type [2]. Class instances are not subtypes of object types; consider rewriting object type [2] as an interface. [class-object-subtyping]"}]','[{"startLine":4,"startColumn":31,"endLine":4,"endColumn":43,"description":"Cannot':!0,assign:!0,"`new":!0,"MyClass()`":!0,to:!0,"`foo`":!0,because:!0,"`MyClass`":!0,"[1]":!0,is:!0,not:!0,a:!0,subtype:!0,of:!0,object:!0,type:!0,"[2].":!0,Class:!0,instances:!0,are:!0,subtypes:!0,"types;":!0,consider:!0,rewriting:!0,"[2]":!0,as:!0,an:!0,"interface.":!0,'[class-object-subtyping]"}]':!0},"class MyClass {\n x: number;\n}\nconst foo: {x: number, ...} = new MyClass(); // Error!\n")),(0,a.mdx)("p",null,"You can use ",(0,a.mdx)("a",{parentName:"p",href:"../interfaces"},"interfaces")," to accomplish this instead:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class A {\n x: number;\n}\nclass B {\n x: number;\n}\n\ninterface WithXNum {\n x: number;\n}\n\nconst foo: WithXNum = new A(); // Works!\nconst bar: WithXNum = new B(); // Works!\n\nconst n: number = foo.x; // Works!\n")),(0,a.mdx)("h2",{id:"toc-class-syntax"},"Class Syntax"),(0,a.mdx)("p",null,"Classes in Flow are just like normal JavaScript classes, but with added types."),(0,a.mdx)("h3",{id:"toc-class-methods"},"Class Methods"),(0,a.mdx)("p",null,"Just like in ",(0,a.mdx)("a",{parentName:"p",href:"../functions"},"functions"),", class methods can have annotations for both parameters\n(input) and returns (output):"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n method(value: string): number {\n return 0;\n }\n}\n")),(0,a.mdx)("p",null,"Also just like regular functions, class methods may have ",(0,a.mdx)("inlineCode",{parentName:"p"},"this")," annotations as well.\nHowever, if one is not provided, Flow will infer the class instance type (or the class type for static methods)\ninstead of ",(0,a.mdx)("inlineCode",{parentName:"p"},"mixed"),". When an explicit ",(0,a.mdx)("inlineCode",{parentName:"p"},"this")," parameter is provided, it must be a ",(0,a.mdx)("a",{parentName:"p",href:"../../lang/subtypes/"},"supertype")," of\nthe class instance type (or class type for static methods)."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":3,"endLine":2,"endColumn":8,"description":"Cannot define method `method` [1] on `MyClass` because property `x` is missing in `MyClass` [2] but exists in interface type [3]. [prop-missing]"}]','[{"startLine":2,"startColumn":3,"endLine":2,"endColumn":8,"description":"Cannot':!0,define:!0,method:!0,"`method`":!0,"[1]":!0,on:!0,"`MyClass`":!0,because:!0,property:!0,"`x`":!0,is:!0,missing:!0,in:!0,"[2]":!0,but:!0,exists:!0,interface:!0,type:!0,"[3].":!0,'[prop-missing]"}]':!0},"class MyClass {\n method(this: interface {x: string}) { /* ... */ } // Error!\n}\n")),(0,a.mdx)("p",null,"Unlike class properties, however, class methods cannot be unbound or rebound from\nthe class on which you defined them. So all of the following are errors in Flow:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":8,"description":"Cannot get `a.method` because property `method` [1] cannot be unbound from the context [2] where it was defined. [method-unbinding]"},{"startLine":4,"startColumn":8,"endLine":4,"endColumn":13,"description":"property `method` [1] cannot be unbound from the context [2] where it was defined. [method-unbinding]"},{"startLine":5,"startColumn":3,"endLine":5,"endColumn":8,"description":"Cannot get `a.method` because property `method` [1] cannot be unbound from the context [2] where it was defined. [method-unbinding]"}]','[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":8,"description":"Cannot':!0,get:!0,"`a.method`":!0,because:!0,property:!0,"`method`":!0,"[1]":!0,cannot:!0,be:!0,unbound:!0,from:!0,the:!0,context:!0,"[2]":!0,where:!0,it:!0,was:!0,"defined.":!0,'[method-unbinding]"},{"startLine":4,"startColumn":8,"endLine":4,"endColumn":13,"description":"property':!0,'[method-unbinding]"},{"startLine":5,"startColumn":3,"endLine":5,"endColumn":8,"description":"Cannot':!0,'[method-unbinding]"}]':!0},"class MyClass { method() {} }\nconst a = new MyClass();\na.method; // Error!\nconst {method} = a; // Error!\na.method.bind({}); // Error!\n")),(0,a.mdx)("p",null,"Methods are considered ",(0,a.mdx)("a",{parentName:"p",href:"../../lang/variance"},"read-only"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":3,"endLine":6,"endColumn":8,"description":"Cannot assign function to `a.method` because property `method` is not writable. [cannot-write]"}]','[{"startLine":6,"startColumn":3,"endLine":6,"endColumn":8,"description":"Cannot':!0,assign:!0,function:!0,to:!0,"`a.method`":!0,because:!0,property:!0,"`method`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"}]':!0},"class MyClass {\n method() {}\n}\n\nconst a = new MyClass();\na.method = function() {}; // Error!\n")),(0,a.mdx)("p",null,"Flow supports ",(0,a.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields"},"private methods"),",\na feature of ES2022. Private methods start with a hash symbol ",(0,a.mdx)("inlineCode",{parentName:"p"},"#"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":11,"startColumn":3,"endLine":11,"endColumn":17,"description":"Private fields can only be referenced from within a class."}]','[{"startLine":11,"startColumn":3,"endLine":11,"endColumn":17,"description":"Private':!0,fields:!0,can:!0,only:!0,be:!0,referenced:!0,from:!0,within:!0,a:!0,'class."}]':!0},"class MyClass {\n #internalMethod() {\n return 1;\n }\n publicApi() {\n return this.#internalMethod();\n }\n}\n\nconst a = new MyClass();\na.#internalMethod(); // Error!\na.publicApi(); // Works!\n")),(0,a.mdx)("p",null,"Flow requires return type annotations on methods in most cases.\nThis is because it is common to reference ",(0,a.mdx)("inlineCode",{parentName:"p"},"this")," inside of a method, and ",(0,a.mdx)("inlineCode",{parentName:"p"},"this")," is typed as the instance of the class -\nbut to know the type of the class we need to know the return type of its methods!"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":8,"endLine":2,"endColumn":7,"description":"Missing an annotation on return. [missing-local-annot]"},{"startLine":5,"startColumn":8,"endLine":5,"endColumn":7,"description":"Missing an annotation on return. [missing-local-annot]"}]','[{"startLine":2,"startColumn":8,"endLine":2,"endColumn":7,"description":"Missing':!0,an:!0,annotation:!0,on:!0,"return.":!0,'[missing-local-annot]"},{"startLine":5,"startColumn":8,"endLine":5,"endColumn":7,"description":"Missing':!0,'[missing-local-annot]"}]':!0},"class MyClass {\n foo() { // Error!\n return this.bar();\n }\n bar() { // Error!\n return 1;\n }\n}\n")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClassFixed {\n foo(): number { // Works!\n return this.bar();\n }\n bar(): number { // Works!\n return 1;\n }\n}\n")),(0,a.mdx)("h3",{id:"toc-class-fields-properties"},"Class Fields (Properties)"),(0,a.mdx)("p",null,"Whenever you want to use a class field in Flow you must first give it an\nannotation:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":10,"endLine":3,"endColumn":13,"description":"Cannot assign `42` to `this.prop` because property `prop` is missing in `MyClass` [1]. [prop-missing]"}]','[{"startLine":3,"startColumn":10,"endLine":3,"endColumn":13,"description":"Cannot':!0,assign:!0,"`42`":!0,to:!0,"`this.prop`":!0,because:!0,property:!0,"`prop`":!0,is:!0,missing:!0,in:!0,"`MyClass`":!0,"[1].":!0,'[prop-missing]"}]':!0},"class MyClass {\n method() {\n this.prop = 42; // Error!\n }\n}\n")),(0,a.mdx)("p",null,"Fields are annotated within the body of the class with the field name followed\nby a colon ",(0,a.mdx)("inlineCode",{parentName:"p"},":")," and the type:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n prop: number;\n method() {\n this.prop = 42;\n }\n}\n")),(0,a.mdx)("p",null,"Fields added outside of the class definition need to be annotated within the body\nof the class:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(x: number): number {\n return x + 1;\n}\n\nclass MyClass {\n static constant: number;\n static helper: (number) => number;\n prop: number => number;\n}\nMyClass.helper = func\nMyClass.constant = 42\nMyClass.prototype.prop = func\n")),(0,a.mdx)("p",null,"Flow also supports using the ",(0,a.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes#field_declarations"},"class properties syntax"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n prop = 42;\n}\n")),(0,a.mdx)("p",null,"When using this syntax, you are not required to give it a type annotation. But\nyou still can if you need to:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n prop: number = 42;\n}\n")),(0,a.mdx)("p",null,"You can mark a class field as read-only (or write-only) using ",(0,a.mdx)("a",{parentName:"p",href:"../../lang/variance"},"variance")," annotations.\nThese can only be written to in the constructor:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":10,"endLine":9,"endColumn":13,"description":"Cannot assign `1` to `this.prop` because property `prop` is not writable. [cannot-write]"},{"startLine":15,"startColumn":3,"endLine":15,"endColumn":6,"description":"Cannot assign `1` to `a.prop` because property `prop` is not writable. [cannot-write]"}]','[{"startLine":9,"startColumn":10,"endLine":9,"endColumn":13,"description":"Cannot':!0,assign:!0,"`1`":!0,to:!0,"`this.prop`":!0,because:!0,property:!0,"`prop`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"},{"startLine":15,"startColumn":3,"endLine":15,"endColumn":6,"description":"Cannot':!0,"`a.prop`":!0,'[cannot-write]"}]':!0},"class MyClass {\n +prop: number;\n\n constructor() {\n this.prop = 1; // Works!\n }\n\n method() {\n this.prop = 1; // Error!\n }\n}\n\nconst a = new MyClass();\nconst n: number = a.prop; // Works!\na.prop = 1; // Error!\n")),(0,a.mdx)("p",null,"Flow supports ",(0,a.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields"},"private fields"),",\na feature of ES2022. Private fields start with a hash symbol ",(0,a.mdx)("inlineCode",{parentName:"p"},"#"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":14,"startColumn":21,"endLine":14,"endColumn":34,"description":"Private fields can only be referenced from within a class."}]','[{"startLine":14,"startColumn":21,"endLine":14,"endColumn":34,"description":"Private':!0,fields:!0,can:!0,only:!0,be:!0,referenced:!0,from:!0,within:!0,a:!0,'class."}]':!0},"class MyClass {\n #internalValue: number;\n\n constructor() {\n this.#internalValue = 1;\n }\n\n publicApi() {\n return this.#internalValue;\n }\n}\n\nconst a = new MyClass();\nconst x: number = a.#internalValue; // Error!\nconst y: number = a.publicApi(); // Works!\n")),(0,a.mdx)("h3",{id:"extending-classes-and-implementing-interfaces"},"Extending classes and implementing interfaces"),(0,a.mdx)("p",null,"You can optionally ",(0,a.mdx)("inlineCode",{parentName:"p"},"extend")," one other class:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Base {\n x: number;\n}\n\nclass MyClass extends Base {\n y: string;\n}\n")),(0,a.mdx)("p",null,"And also implement multiple ",(0,a.mdx)("a",{parentName:"p",href:"../interfaces"},"interfaces"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface WithXNum {\n x: number;\n}\ninterface Readable {\n read(): string;\n}\n\nclass MyClass implements WithXNum, Readable {\n x: number;\n read(): string {\n return String(this.x);\n }\n}\n")),(0,a.mdx)("p",null,"You don't need to ",(0,a.mdx)("inlineCode",{parentName:"p"},"implement")," an interface to be a subtype of it, but doing so enforces that your class meets the requirements:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":7,"endLine":5,"endColumn":13,"description":"Cannot implement `WithXNum` [1] with `MyClass` because property `x` is missing in `MyClass` [2] but exists in `WithXNum` [1]. [prop-missing]"}]','[{"startLine":5,"startColumn":7,"endLine":5,"endColumn":13,"description":"Cannot':!0,implement:!0,"`WithXNum`":!0,"[1]":!0,with:!0,"`MyClass`":!0,because:!0,property:!0,"`x`":!0,is:!0,missing:!0,in:!0,"[2]":!0,but:!0,exists:!0,"[1].":!0,'[prop-missing]"}]':!0},"interface WithXNum {\n x: number;\n}\n\nclass MyClass implements WithXNum { // Error!\n}\n")),(0,a.mdx)("h3",{id:"toc-class-fields-constructors"},"Class Constructors"),(0,a.mdx)("p",null,"You can initialize your class properties in class constructors:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n foo: number;\n\n constructor() {\n this.foo = 1;\n }\n}\n")),(0,a.mdx)("p",null,"You must first call ",(0,a.mdx)("inlineCode",{parentName:"p"},"super(...)")," in a derived class before you can access ",(0,a.mdx)("inlineCode",{parentName:"p"},"this")," and ",(0,a.mdx)("inlineCode",{parentName:"p"},"super"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":5,"endLine":9,"endColumn":8,"description":"Must call `super` before accessing this [1] in a derived constructor. [reference-before-declaration]"},{"startLine":10,"startColumn":5,"endLine":10,"endColumn":8,"description":"Must call `super` before accessing this [1] in a derived constructor. [reference-before-declaration]"},{"startLine":11,"startColumn":5,"endLine":11,"endColumn":9,"description":"Must call `super` before accessing super [1] in a derived constructor. [reference-before-declaration]"}]','[{"startLine":9,"startColumn":5,"endLine":9,"endColumn":8,"description":"Must':!0,call:!0,"`super`":!0,before:!0,accessing:!0,this:!0,"[1]":!0,in:!0,a:!0,derived:!0,"constructor.":!0,'[reference-before-declaration]"},{"startLine":10,"startColumn":5,"endLine":10,"endColumn":8,"description":"Must':!0,'[reference-before-declaration]"},{"startLine":11,"startColumn":5,"endLine":11,"endColumn":9,"description":"Must':!0,super:!0,'[reference-before-declaration]"}]':!0},"class Base {\n bar: number;\n}\n\nclass MyClass extends Base {\n foo: number;\n\n constructor() {\n this.foo; // Error\n this.bar; // Error\n super.bar; // Error\n super();\n this.foo; // OK\n this.bar; // OK\n super.bar; // OK\n }\n}\n")),(0,a.mdx)("p",null,"However, Flow will not enforce that all class properties are initialized in constructors:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n foo: number;\n bar: number;\n\n constructor() {\n this.foo = 1;\n }\n\n useBar() {\n (this.bar: number); // No errors.\n }\n}\n")),(0,a.mdx)("h3",{id:"toc-class-generics"},"Class Generics"),(0,a.mdx)("p",null,"Classes can also have their own ",(0,a.mdx)("a",{parentName:"p",href:"../generics"},"generics"),":"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n property: A;\n method(val: B): C {\n throw new Error();\n }\n}\n")),(0,a.mdx)("p",null,"Class generics are ",(0,a.mdx)("a",{parentName:"p",href:"../generics#toc-parameterized-generics"},"parameterized"),".\nWhen you use a class as a type you need to pass parameters for each of its\ngenerics:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class MyClass {\n constructor(arg1: A, arg2: B, arg3: C) {\n // ...\n }\n}\n\nconst val: MyClass = new MyClass(1, true, 'three');\n")),(0,a.mdx)("h2",{id:"toc-classes-in-annotations"},"Classes in annotations"),(0,a.mdx)("p",null,"When you use the name of your class in an annotation, it means an ",(0,a.mdx)("em",{parentName:"p"},"instance")," of your class:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"class MyClass {}\n\nconst b: MyClass = new MyClass(); // Works!\nconst a: MyClass = MyClass; // Error!\n")),(0,a.mdx)("p",null,"See ",(0,a.mdx)("a",{parentName:"p",href:"../utilities#toc-class"},"here")," for details on ",(0,a.mdx)("inlineCode",{parentName:"p"},"Class"),", which allows you\nto refer to the type of the class in an annotation."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6082.4af8a070.js b/assets/js/6082.4af8a070.js new file mode 100644 index 00000000000..7da27208b18 --- /dev/null +++ b/assets/js/6082.4af8a070.js @@ -0,0 +1,2 @@ +/*! For license information please see 6082.4af8a070.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6082],{86082:(e,t,o)=>{o.r(t),o.d(t,{conf:()=>r,language:()=>n});var r={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["{","}"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\{\\$REGION(\\s\\'.*\\')?\\}"),end:new RegExp("^\\s*\\{\\$ENDREGION\\}")}}},n={defaultToken:"",tokenPostfix:".pascal",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["absolute","abstract","all","and_then","array","as","asm","attribute","begin","bindable","case","class","const","contains","default","div","else","end","except","exports","external","far","file","finalization","finally","forward","generic","goto","if","implements","import","in","index","inherited","initialization","interrupt","is","label","library","mod","module","name","near","not","object","of","on","only","operator","or_else","otherwise","override","package","packed","pow","private","program","protected","public","published","interface","implementation","qualified","read","record","resident","requires","resourcestring","restricted","segment","set","shl","shr","specialize","stored","strict","then","threadvar","to","try","type","unit","uses","var","view","virtual","dynamic","overload","reintroduce","with","write","xor","true","false","procedure","function","constructor","destructor","property","break","continue","exit","abort","while","do","for","raise","repeat","until"],typeKeywords:["boolean","double","byte","integer","shortint","char","longint","float","string"],operators:["=",">","<","<=",">=","<>",":",":=","and","or","+","-","*","/","@","&","^","%"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\*\}]+/,"comment"],[/\}/,"comment","@pop"],[/[\{]/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\{/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/6082.4af8a070.js.LICENSE.txt b/assets/js/6082.4af8a070.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6082.4af8a070.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6082.953833a2.js b/assets/js/6082.953833a2.js new file mode 100644 index 00000000000..77efb71fde5 --- /dev/null +++ b/assets/js/6082.953833a2.js @@ -0,0 +1,264 @@ +"use strict"; +exports.id = 6082; +exports.ids = [6082]; +exports.modules = { + +/***/ 86082: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/pascal/pascal.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["{", "}"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*\\{\\$REGION(\\s\\'.*\\')?\\}"), + end: new RegExp("^\\s*\\{\\$ENDREGION\\}") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".pascal", + ignoreCase: true, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + keywords: [ + "absolute", + "abstract", + "all", + "and_then", + "array", + "as", + "asm", + "attribute", + "begin", + "bindable", + "case", + "class", + "const", + "contains", + "default", + "div", + "else", + "end", + "except", + "exports", + "external", + "far", + "file", + "finalization", + "finally", + "forward", + "generic", + "goto", + "if", + "implements", + "import", + "in", + "index", + "inherited", + "initialization", + "interrupt", + "is", + "label", + "library", + "mod", + "module", + "name", + "near", + "not", + "object", + "of", + "on", + "only", + "operator", + "or_else", + "otherwise", + "override", + "package", + "packed", + "pow", + "private", + "program", + "protected", + "public", + "published", + "interface", + "implementation", + "qualified", + "read", + "record", + "resident", + "requires", + "resourcestring", + "restricted", + "segment", + "set", + "shl", + "shr", + "specialize", + "stored", + "strict", + "then", + "threadvar", + "to", + "try", + "type", + "unit", + "uses", + "var", + "view", + "virtual", + "dynamic", + "overload", + "reintroduce", + "with", + "write", + "xor", + "true", + "false", + "procedure", + "function", + "constructor", + "destructor", + "property", + "break", + "continue", + "exit", + "abort", + "while", + "do", + "for", + "raise", + "repeat", + "until" + ], + typeKeywords: [ + "boolean", + "double", + "byte", + "integer", + "shortint", + "char", + "longint", + "float", + "string" + ], + operators: [ + "=", + ">", + "<", + "<=", + ">=", + "<>", + ":", + ":=", + "and", + "or", + "+", + "-", + "*", + "/", + "@", + "&", + "^", + "%" + ], + symbols: /[=><:@\^&|+\-*\/\^%]+/, + tokenizer: { + root: [ + [ + /[a-zA-Z_][\w]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/\$[0-9a-fA-F]{1,16}/, "number.hex"], + [/\d+/, "number"], + [/[;,.]/, "delimiter"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/'/, "string", "@string"], + [/'[^\\']'/, "string"], + [/'/, "string.invalid"], + [/\#\d+/, "string"] + ], + comment: [ + [/[^\*\}]+/, "comment"], + [/\}/, "comment", "@pop"], + [/[\{]/, "comment"] + ], + string: [ + [/[^\\']+/, "string"], + [/\\./, "string.escape.invalid"], + [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\{/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6094.dd70aa33.js b/assets/js/6094.dd70aa33.js new file mode 100644 index 00000000000..f83e5306bea --- /dev/null +++ b/assets/js/6094.dd70aa33.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6094],{56094:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>i});var t=n(87462),s=(n(67294),n(3905));const r={title:"Announcing Typecasts","short-title":"Typecasts",author:"Basil Hosmer",hide_table_of_contents:!0},l=void 0,o={permalink:"/blog/2015/02/18/Typecasts",source:"@site/blog/2015-02-18-Typecasts.md",title:"Announcing Typecasts",description:"As of version 0.3.0, Flow supports typecast expression.",date:"2015-02-18T00:00:00.000Z",formattedDate:"February 18, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Basil Hosmer"}],frontMatter:{title:"Announcing Typecasts","short-title":"Typecasts",author:"Basil Hosmer",hide_table_of_contents:!0},prevItem:{title:"Announcing Import Type",permalink:"/blog/2015/02/18/Import-Types"}},p={authorsImageUrls:[void 0]},i=[{value:"How Typecasts Work",id:"how-typecasts-work",level:2},{value:"Safety",id:"safety",level:2},{value:"More examples",id:"more-examples",level:2},{value:"Transformations",id:"transformations",level:2}],m={toc:i};function d(e){let{components:a,...n}=e;return(0,s.mdx)("wrapper",(0,t.Z)({},m,n,{components:a,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"As of version 0.3.0, Flow supports typecast expression."),(0,s.mdx)("p",null,"A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"(1 + 1 : number);\nvar a = { name: (null: ?string) };\n([1, 'a', true]: Array).map(fn);\n")),(0,s.mdx)("p",null,"For any JavaScript expression ",(0,s.mdx)("inlineCode",{parentName:"p"},"")," and any Flow type ",(0,s.mdx)("inlineCode",{parentName:"p"},""),", you can write"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"( : )\n")),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},"Note:")," the parentheses are necessary."),(0,s.mdx)("h2",{id:"how-typecasts-work"},"How Typecasts Work"),(0,s.mdx)("p",null,"To evaluate a typecast expression, Flow will first check that ",(0,s.mdx)("inlineCode",{parentName:"p"},"")," is a ",(0,s.mdx)("inlineCode",{parentName:"p"},""),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"(1+1: number); // this is fine\n(1+1: string); // but this is is an error\n")),(0,s.mdx)("p",null,"Second, Flow will infer that the typecast expression ",(0,s.mdx)("inlineCode",{parentName:"p"},"(: )")," has the type ",(0,s.mdx)("inlineCode",{parentName:"p"},""),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"[(0: ?number)]; // Flow will infer the type Array\n[0]; // Without the typecast, Flow infers the type Array\n")),(0,s.mdx)("h2",{id:"safety"},"Safety"),(0,s.mdx)("p",null,"Typecasts obey the same rules as other type annotations, so they provide the same safety guarantees. This means they are safe unless you explicitly use the ",(0,s.mdx)("inlineCode",{parentName:"p"},"any")," type to defeat Flow's typechecking. Here are examples of upcasting (which is allowed), downcasting (which is forbidden), and using ",(0,s.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"class Base {}\nclass Child extends Base {}\nvar child: Child = new Child();\n\n// Upcast from Child to Base, a more general type: OK\nvar base: Base = new Child();\n\n// Upcast from Child to Base, a more general type: OK\n(child: Base);\n\n// Downcast from Base to Child: unsafe, ERROR\n(base: Child);\n\n// Upcast base to any then downcast any to Child.\n// Unsafe downcasting from any is allowed: OK\n((base: any): Child);\n")),(0,s.mdx)("h2",{id:"more-examples"},"More examples"),(0,s.mdx)("p",null,"Typecasts are particularly useful to check assumptions and help Flow infer the types you intend. Here are some examples:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"(x: number) // Make Flow check that x is a number\n(0: ?number) // Tells Flow that this expression is actually nullable.\n(null: ?number) // Tells Flow that this expression is a nullable number.\n")),(0,s.mdx)("h2",{id:"transformations"},"Transformations"),(0,s.mdx)("p",null,"Like type annotations and other Flow features, typecasts need to be transformed away before the code can be run. The transforms will be available in react-tools ",(0,s.mdx)("inlineCode",{parentName:"p"},"0.13.0")," when it is published soon, but for now they're available in ",(0,s.mdx)("inlineCode",{parentName:"p"},"0.13.0-beta.2"),", which you can install with"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-bash"},"npm install react-tools@0.13.0-beta.2\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6104.007d544c.js b/assets/js/6104.007d544c.js new file mode 100644 index 00000000000..70a866335b6 --- /dev/null +++ b/assets/js/6104.007d544c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6104],{56104:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>l,contentTitle:()=>n,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>m});var t=o(87462),i=(o(67294),o(3905));const s={title:"Live Flow errors in your IDE","short-title":"Live Flow errors in your IDE",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/live-flow-errors-in-your-ide-bcbeda0b316"},n=void 0,a={permalink:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE",source:"@site/blog/2019-10-25-Live-Flow-Errors-in-your-IDE.md",title:"Live Flow errors in your IDE",description:"Live errors while you type makes Flow feel faster in your IDE!",date:"2019-10-25T00:00:00.000Z",formattedDate:"October 25, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Live Flow errors in your IDE","short-title":"Live Flow errors in your IDE",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/live-flow-errors-in-your-ide-bcbeda0b316"},prevItem:{title:"Spreads: Common Errors & Fixes",permalink:"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes"},nextItem:{title:"Coming Soon: Changes to Object Spreads",permalink:"/blog/2019/08/20/Changes-to-Object-Spreads"}},l={authorsImageUrls:[void 0]},m=[],u={toc:m};function d(e){let{components:r,...o}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},u,o,{components:r,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Live errors while you type makes Flow feel faster in your IDE!"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6136.dfc4bfad.js b/assets/js/6136.dfc4bfad.js new file mode 100644 index 00000000000..88761f3443a --- /dev/null +++ b/assets/js/6136.dfc4bfad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6136],{26136:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var a=t(87462),o=(t(67294),t(3905));const i={title:"Announcing Disjoint Unions","short-title":"Disjoint Unions",author:"Avik Chaudhuri",hide_table_of_contents:!0},s=void 0,r={permalink:"/blog/2015/07/03/Disjoint-Unions",source:"@site/blog/2015-07-03-Disjoint-Unions.md",title:"Announcing Disjoint Unions",description:"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:",date:"2015-07-03T00:00:00.000Z",formattedDate:"July 3, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Avik Chaudhuri"}],frontMatter:{title:"Announcing Disjoint Unions","short-title":"Disjoint Unions",author:"Avik Chaudhuri",hide_table_of_contents:!0},prevItem:{title:"Version-0.14.0",permalink:"/blog/2015/07/29/Version-0.14.0"},nextItem:{title:"Announcing Bounded Polymorphism",permalink:"/blog/2015/03/12/Bounded-Polymorphism"}},l={authorsImageUrls:[void 0]},d=[],m={toc:d};function c(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"Specifying such data by a set of disjoint cases, distinguished by \u201ctags\u201d, where each tag is associated with a different \u201crecord\u201d of properties. (These descriptions are called \u201cdisjoint union\u201d or \u201cvariant\u201d types.)"),(0,o.mdx)("li",{parentName:"ul"},"Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)")),(0,o.mdx)("p",null,"Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!"),(0,o.mdx)("p",null,'As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.'),(0,o.mdx)("p",null,"Flow's syntax for disjoint unions looks like:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-javascript"},'type BinaryTree =\n { kind: "leaf", value: number } |\n { kind: "branch", left: BinaryTree, right: BinaryTree }\n\nfunction sumLeaves(tree: BinaryTree): number {\n if (tree.kind === "leaf") {\n return tree.value;\n } else {\n return sumLeaves(tree.left) + sumLeaves(tree.right);\n }\n}\n')))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6241.2e9f5bdf.js b/assets/js/6241.2e9f5bdf.js new file mode 100644 index 00000000000..715cab5792b --- /dev/null +++ b/assets/js/6241.2e9f5bdf.js @@ -0,0 +1,2 @@ +/*! For license information please see 6241.2e9f5bdf.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6241],{96241:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>s,language:()=>o});var s={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"),end:new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)")}}},o={defaultToken:"",tokenPostfix:".fs",keywords:["abstract","and","atomic","as","assert","asr","base","begin","break","checked","component","const","constraint","constructor","continue","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","eager","event","external","extern","false","finally","for","fun","function","fixed","functor","global","if","in","include","inherit","inline","interface","internal","land","lor","lsl","lsr","lxor","lazy","let","match","member","mod","module","mutable","namespace","method","mixin","new","not","null","of","open","or","object","override","private","parallel","process","protected","pure","public","rec","return","static","sealed","struct","sig","then","to","true","tailcall","trait","try","type","upcast","use","val","void","virtual","volatile","when","while","with","yield"],symbols:/[=>\]/,"annotation"],[/^#(if|else|endif)/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0x[0-9a-fA-F]+LF/,"number.float"],[/0x[0-9a-fA-F]+(@integersuffix)/,"number.hex"],[/0b[0-1]+(@integersuffix)/,"number.bin"],[/\d+(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string",'@string."""'],[/"/,"string",'@string."'],[/\@"/,{token:"string.quote",next:"@litstring"}],[/'[^\\']'B?/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\(\*(?!\))/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^*(]+/,"comment"],[/\*\)/,"comment","@pop"],[/\*/,"comment"],[/\(\*\)/,"comment"],[/\(/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/("""|"B?)/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/6241.2e9f5bdf.js.LICENSE.txt b/assets/js/6241.2e9f5bdf.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6241.2e9f5bdf.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6241.d8cb181b.js b/assets/js/6241.d8cb181b.js new file mode 100644 index 00000000000..9b4c6ada84f --- /dev/null +++ b/assets/js/6241.d8cb181b.js @@ -0,0 +1,229 @@ +"use strict"; +exports.id = 6241; +exports.ids = [6241]; +exports.modules = { + +/***/ 96241: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/fsharp/fsharp.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"), + end: new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".fs", + keywords: [ + "abstract", + "and", + "atomic", + "as", + "assert", + "asr", + "base", + "begin", + "break", + "checked", + "component", + "const", + "constraint", + "constructor", + "continue", + "class", + "default", + "delegate", + "do", + "done", + "downcast", + "downto", + "elif", + "else", + "end", + "exception", + "eager", + "event", + "external", + "extern", + "false", + "finally", + "for", + "fun", + "function", + "fixed", + "functor", + "global", + "if", + "in", + "include", + "inherit", + "inline", + "interface", + "internal", + "land", + "lor", + "lsl", + "lsr", + "lxor", + "lazy", + "let", + "match", + "member", + "mod", + "module", + "mutable", + "namespace", + "method", + "mixin", + "new", + "not", + "null", + "of", + "open", + "or", + "object", + "override", + "private", + "parallel", + "process", + "protected", + "pure", + "public", + "rec", + "return", + "static", + "sealed", + "struct", + "sig", + "then", + "to", + "true", + "tailcall", + "trait", + "try", + "type", + "upcast", + "use", + "val", + "void", + "virtual", + "volatile", + "when", + "while", + "with", + "yield" + ], + symbols: /[=>\]/, "annotation"], + [/^#(if|else|endif)/, "keyword"], + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [/@symbols/, "delimiter"], + [/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/0x[0-9a-fA-F]+LF/, "number.float"], + [/0x[0-9a-fA-F]+(@integersuffix)/, "number.hex"], + [/0b[0-1]+(@integersuffix)/, "number.bin"], + [/\d+(@integersuffix)/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"""/, "string", '@string."""'], + [/"/, "string", '@string."'], + [/\@"/, { token: "string.quote", next: "@litstring" }], + [/'[^\\']'B?/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\(\*(?!\))/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^*(]+/, "comment"], + [/\*\)/, "comment", "@pop"], + [/\*/, "comment"], + [/\(\*\)/, "comment"], + [/\(/, "comment"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [ + /("""|"B?)/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ] + ], + litstring: [ + [/[^"]+/, "string"], + [/""/, "string.escape"], + [/"/, { token: "string.quote", next: "@pop" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6272.f9b3cdc6.js b/assets/js/6272.f9b3cdc6.js new file mode 100644 index 00000000000..264bf61579a --- /dev/null +++ b/assets/js/6272.f9b3cdc6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6272],{36272:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>i,contentTitle:()=>n,default:()=>g,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var a=t(87462),r=(t(67294),t(3905));const s={title:"Upgrading Flow Codebases","short-title":"Upgrading Flow Codebases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/upgrading-flow-codebases-40ef8dd3ccd8"},n=void 0,d={permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases",source:"@site/blog/2019-4-9-Upgrading-Flow-Codebases.md",title:"Upgrading Flow Codebases",description:"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!",date:"2019-04-09T00:00:00.000Z",formattedDate:"April 9, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Upgrading Flow Codebases","short-title":"Upgrading Flow Codebases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/upgrading-flow-codebases-40ef8dd3ccd8"},prevItem:{title:"Coming Soon: Changes to Object Spreads",permalink:"/blog/2019/08/20/Changes-to-Object-Spreads"},nextItem:{title:"A More Responsive Flow",permalink:"/blog/2019/2/8/A-More-Responsive-Flow"}},i={authorsImageUrls:[void 0]},l=[],p={toc:l};function g(e){let{components:o,...t}=e;return(0,r.mdx)("wrapper",(0,a.Z)({},p,t,{components:o,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!"))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6290.068917a8.js b/assets/js/6290.068917a8.js new file mode 100644 index 00000000000..61a105b2d5c --- /dev/null +++ b/assets/js/6290.068917a8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6290],{86290:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var n=o(87462),s=(o(67294),o(3905));const r={title:"Introducing Flow Indexed Access Types","short-title":"Flow Indexed Access Types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-indexed-access-types-b27175251fd0"},a=void 0,i={permalink:"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types",source:"@site/blog/2021-07-21-Introducing-Flow-Indexed-Access-Types.md",title:"Introducing Flow Indexed Access Types",description:"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.",date:"2021-07-21T00:00:00.000Z",formattedDate:"July 21, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Introducing Flow Indexed Access Types","short-title":"Flow Indexed Access Types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-indexed-access-types-b27175251fd0"},prevItem:{title:"TypeScript Enums vs. Flow Enums",permalink:"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums"},nextItem:{title:"Sound Typing for 'this' in Flow",permalink:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"}},d={authorsImageUrls:[void 0]},c=[],l={toc:c};function p(e){let{components:t,...o}=e;return(0,s.mdx)("wrapper",(0,n.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6316.157c4414.js b/assets/js/6316.157c4414.js new file mode 100644 index 00000000000..1842dd68f5b --- /dev/null +++ b/assets/js/6316.157c4414.js @@ -0,0 +1,1355 @@ +"use strict"; +exports.id = 6316; +exports.ids = [6316]; +exports.modules = { + +/***/ 96316: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "diagram": () => (/* binding */ diagram) +/* harmony export */ }); +/* harmony import */ var _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(87115); +/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59373); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(91619); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(12281); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(7201); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27484); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17967); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20683); +/* harmony import */ var dagre_d3_es_src_dagre_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70277); +/* harmony import */ var dagre_d3_es_src_graphlib_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(45625); +/* harmony import */ var dagre_d3_es_src_graphlib_json_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(39354); +/* harmony import */ var dagre_d3_es__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(91518); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(59542); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10285); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(28734); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_10__); + + + + + + + + + + + + + + + + + + + + + + +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 27], $Vb = [4, 6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "timeline": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "title": 17, "acc_title": 18, "acc_title_value": 19, "acc_descr": 20, "acc_descr_value": 21, "acc_descr_multiline_value": 22, "section": 23, "period_statement": 24, "event_statement": 25, "period": 26, "event": 27, "open_directive": 28, "type_directive": 29, "arg_directive": 30, "close_directive": 31, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 4: "timeline", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 26: "period", 27: "event", 28: "open_directive", 29: "type_directive", 30: "arg_directive", 31: "close_directive" }, + productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [24, 1], [25, 1], [12, 1], [13, 1], [16, 1], [14, 1]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 1: + return $$[$0 - 1]; + case 3: + this.$ = []; + break; + case 4: + $$[$0 - 1].push($$[$0]); + this.$ = $$[$0 - 1]; + break; + case 5: + case 6: + this.$ = $$[$0]; + break; + case 7: + case 8: + this.$ = []; + break; + case 11: + yy.getCommonDb().setDiagramTitle($$[$0].substr(6)); + this.$ = $$[$0].substr(6); + break; + case 12: + this.$ = $$[$0].trim(); + yy.getCommonDb().setAccTitle(this.$); + break; + case 13: + case 14: + this.$ = $$[$0].trim(); + yy.getCommonDb().setAccDescription(this.$); + break; + case 15: + yy.addSection($$[$0].substr(8)); + this.$ = $$[$0].substr(8); + break; + case 19: + yy.addTask($$[$0], 0, ""); + this.$ = $$[$0]; + break; + case 20: + yy.addEvent($$[$0].substr(2)); + this.$ = $$[$0]; + break; + case 21: + yy.parseDirective("%%{", "open_directive"); + break; + case 22: + yy.parseDirective($$[$0], "type_directive"); + break; + case 23: + $$[$0] = $$[$0].trim().replace(/'/g, '"'); + yy.parseDirective($$[$0], "arg_directive"); + break; + case 24: + yy.parseDirective("}%%", "close_directive", "timeline"); + break; + } + }, + table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 13: 8, 29: [1, 9] }, { 29: [2, 21] }, { 6: [1, 10], 7: 22, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, { 1: [2, 2] }, { 14: 25, 15: [1, 26], 31: $Va }, o([15, 31], [2, 22]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 22, 10: 28, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 29] }, { 21: [1, 30] }, o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 20]), { 11: [1, 31] }, { 16: 32, 30: [1, 33] }, { 11: [2, 24] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($Vb, [2, 9]), { 14: 34, 31: $Va }, { 31: [2, 23] }, { 11: [1, 35] }, o($Vb, [2, 10])], + defaultActions: { 5: [2, 21], 7: [2, 2], 27: [2, 24], 33: [2, 23] }, + parseError: function parseError(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + this.begin("open_directive"); + return 28; + case 1: + this.begin("type_directive"); + return 29; + case 2: + this.popState(); + this.begin("arg_directive"); + return 15; + case 3: + this.popState(); + this.popState(); + return 31; + case 4: + return 30; + case 5: + break; + case 6: + break; + case 7: + return 11; + case 8: + break; + case 9: + break; + case 10: + return 4; + case 11: + return 17; + case 12: + this.begin("acc_title"); + return 18; + case 13: + this.popState(); + return "acc_title_value"; + case 14: + this.begin("acc_descr"); + return 20; + case 15: + this.popState(); + return "acc_descr_value"; + case 16: + this.begin("acc_descr_multiline"); + break; + case 17: + this.popState(); + break; + case 18: + return "acc_descr_multiline_value"; + case 19: + return 23; + case 20: + return 27; + case 21: + return 26; + case 22: + return 6; + case 23: + return "INVALID"; + } + }, + rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?::\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?:$)/i, /^(?:.)/i], + conditions: { "open_directive": { "rules": [1], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const parser$1 = parser; +let currentSection = ""; +let currentTaskId = 0; +const sections = []; +const tasks = []; +const rawTasks = []; +const getCommonDb = () => _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.j; +const parseDirective = (statement, context, type) => { + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.k)(globalThis, statement, context, type); +}; +const clear = function() { + sections.length = 0; + tasks.length = 0; + currentSection = ""; + rawTasks.length = 0; + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.m)(); +}; +const addSection = function(txt) { + currentSection = txt; + sections.push(txt); +}; +const getSections = function() { + return sections; +}; +const getTasks = function() { + let allItemsProcessed = compileTasks(); + const maxDepth = 100; + let iterationCount = 0; + while (!allItemsProcessed && iterationCount < maxDepth) { + allItemsProcessed = compileTasks(); + iterationCount++; + } + tasks.push(...rawTasks); + return tasks; +}; +const addTask = function(period, length, event) { + const rawTask = { + id: currentTaskId++, + section: currentSection, + type: currentSection, + task: period, + score: length ? length : 0, + //if event is defined, then add it the events array + events: event ? [event] : [] + }; + rawTasks.push(rawTask); +}; +const addEvent = function(event) { + const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1); + currentTask.events.push(event); +}; +const addTaskOrg = function(descr) { + const newTask = { + section: currentSection, + type: currentSection, + description: descr, + task: descr, + classes: [] + }; + tasks.push(newTask); +}; +const compileTasks = function() { + const compileTask = function(pos) { + return rawTasks[pos].processed; + }; + let allProcessed = true; + for (const [i, rawTask] of rawTasks.entries()) { + compileTask(i); + allProcessed = allProcessed && rawTask.processed; + } + return allProcessed; +}; +const timelineDb = { + clear, + getCommonDb, + addSection, + getSections, + getTasks, + addTask, + addTaskOrg, + addEvent, + parseDirective +}; +const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + addEvent, + addSection, + addTask, + addTaskOrg, + clear, + default: timelineDb, + getCommonDb, + getSections, + getTasks, + parseDirective +}, Symbol.toStringTag, { value: "Module" })); +const MAX_SECTIONS = 12; +const drawRect = function(elem, rectData) { + const rectElem = elem.append("rect"); + rectElem.attr("x", rectData.x); + rectElem.attr("y", rectData.y); + rectElem.attr("fill", rectData.fill); + rectElem.attr("stroke", rectData.stroke); + rectElem.attr("width", rectData.width); + rectElem.attr("height", rectData.height); + rectElem.attr("rx", rectData.rx); + rectElem.attr("ry", rectData.ry); + if (rectData.class !== void 0) { + rectElem.attr("class", rectData.class); + } + return rectElem; +}; +const drawFace = function(element, faceData) { + const radius = 15; + const circleElement = element.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible"); + const face = element.append("g"); + face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666"); + function smile(face2) { + const arc$1 = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .arc */ .Nb1)().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")"); + } + function sad(face2) { + const arc$1 = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .arc */ .Nb1)().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2); + face2.append("path").attr("class", "mouth").attr("d", arc$1).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")"); + } + function ambivalent(face2) { + face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666"); + } + if (faceData.score > 3) { + smile(face); + } else if (faceData.score < 3) { + sad(face); + } else { + ambivalent(face); + } + return circleElement; +}; +const drawCircle = function(element, circleData) { + const circleElement = element.append("circle"); + circleElement.attr("cx", circleData.cx); + circleElement.attr("cy", circleData.cy); + circleElement.attr("class", "actor-" + circleData.pos); + circleElement.attr("fill", circleData.fill); + circleElement.attr("stroke", circleData.stroke); + circleElement.attr("r", circleData.r); + if (circleElement.class !== void 0) { + circleElement.attr("class", circleElement.class); + } + if (circleData.title !== void 0) { + circleElement.append("title").text(circleData.title); + } + return circleElement; +}; +const drawText = function(elem, textData) { + const nText = textData.text.replace(//gi, " "); + const textElem = elem.append("text"); + textElem.attr("x", textData.x); + textElem.attr("y", textData.y); + textElem.attr("class", "legend"); + textElem.style("text-anchor", textData.anchor); + if (textData.class !== void 0) { + textElem.attr("class", textData.class); + } + const span = textElem.append("tspan"); + span.attr("x", textData.x + textData.textMargin * 2); + span.text(nText); + return textElem; +}; +const drawLabel = function(elem, txtObject) { + function genPoints(x, y, width, height, cut) { + return x + "," + y + " " + (x + width) + "," + y + " " + (x + width) + "," + (y + height - cut) + " " + (x + width - cut * 1.2) + "," + (y + height) + " " + x + "," + (y + height); + } + const polygon = elem.append("polygon"); + polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7)); + polygon.attr("class", "labelBox"); + txtObject.y = txtObject.y + txtObject.labelMargin; + txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin; + drawText(elem, txtObject); +}; +const drawSection = function(elem, section, conf2) { + const g = elem.append("g"); + const rect = getNoteRect(); + rect.x = section.x; + rect.y = section.y; + rect.fill = section.fill; + rect.width = conf2.width; + rect.height = conf2.height; + rect.class = "journey-section section-type-" + section.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + _drawTextCandidateFunc(conf2)( + section.text, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "journey-section section-type-" + section.num }, + conf2, + section.colour + ); +}; +let taskCount = -1; +const drawTask = function(elem, task, conf2) { + const center = task.x + conf2.width / 2; + const g = elem.append("g"); + taskCount++; + const maxHeight = 300 + 5 * 30; + g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666"); + drawFace(g, { + cx: center, + cy: 300 + (5 - task.score) * 30, + score: task.score + }); + const rect = getNoteRect(); + rect.x = task.x; + rect.y = task.y; + rect.fill = task.fill; + rect.width = conf2.width; + rect.height = conf2.height; + rect.class = "task task-type-" + task.num; + rect.rx = 3; + rect.ry = 3; + drawRect(g, rect); + task.x + 14; + _drawTextCandidateFunc(conf2)( + task.task, + g, + rect.x, + rect.y, + rect.width, + rect.height, + { class: "task" }, + conf2, + task.colour + ); +}; +const drawBackgroundRect = function(elem, bounds) { + const rectElem = drawRect(elem, { + x: bounds.startx, + y: bounds.starty, + width: bounds.stopx - bounds.startx, + height: bounds.stopy - bounds.starty, + fill: bounds.fill, + class: "rect" + }); + rectElem.lower(); +}; +const getTextObj = function() { + return { + x: 0, + y: 0, + fill: void 0, + "text-anchor": "start", + width: 100, + height: 100, + textMargin: 0, + rx: 0, + ry: 0 + }; +}; +const getNoteRect = function() { + return { + x: 0, + y: 0, + width: 100, + anchor: "start", + height: 100, + rx: 0, + ry: 0 + }; +}; +const _drawTextCandidateFunc = function() { + function byText(content, g, x, y, width, height, textAttrs, colour) { + const text = g.append("text").attr("x", x + width / 2).attr("y", y + height / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content); + _setTextAttrs(text, textAttrs); + } + function byTspan(content, g, x, y, width, height, textAttrs, conf2, colour) { + const { taskFontSize, taskFontFamily } = conf2; + const lines = content.split(//gi); + for (let i = 0; i < lines.length; i++) { + const dy = i * taskFontSize - taskFontSize * (lines.length - 1) / 2; + const text = g.append("text").attr("x", x + width / 2).attr("y", y).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily); + text.append("tspan").attr("x", x + width / 2).attr("dy", dy).text(lines[i]); + text.attr("y", y + height / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central"); + _setTextAttrs(text, textAttrs); + } + } + function byFo(content, g, x, y, width, height, textAttrs, conf2) { + const body = g.append("switch"); + const f = body.append("foreignObject").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("position", "fixed"); + const text = f.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%"); + text.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content); + byTspan(content, body, x, y, width, height, textAttrs, conf2); + _setTextAttrs(text, textAttrs); + } + function _setTextAttrs(toText, fromTextAttrsDict) { + for (const key in fromTextAttrsDict) { + if (key in fromTextAttrsDict) { + toText.attr(key, fromTextAttrsDict[key]); + } + } + } + return function(conf2) { + return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan; + }; +}(); +const initGraphics = function(graphics) { + graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z"); +}; +function wrap(text, width) { + text.each(function() { + var text2 = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(this), words = text2.text().split(/(\s+|
    )/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr("y"), dy = parseFloat(text2.attr("dy")), tspan = text2.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", dy + "em"); + for (let j = 0; j < words.length; j++) { + word = words[words.length - 1 - j]; + line.push(word); + tspan.text(line.join(" ").trim()); + if (tspan.node().getComputedTextLength() > width || word === "
    ") { + line.pop(); + tspan.text(line.join(" ").trim()); + if (word === "
    ") { + line = [""]; + } else { + line = [word]; + } + tspan = text2.append("tspan").attr("x", 0).attr("y", y).attr("dy", lineHeight + "em").text(word); + } + } + }); +} +const drawNode = function(elem, node, fullSection, conf2) { + const section = fullSection % MAX_SECTIONS - 1; + const nodeElem = elem.append("g"); + node.section = section; + nodeElem.attr( + "class", + (node.class ? node.class + " " : "") + "timeline-node " + ("section-" + section) + ); + const bkgElem = nodeElem.append("g"); + const textElem = nodeElem.append("g"); + const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf2.fontSize && conf2.fontSize.replace ? conf2.fontSize.replace("px", "") : conf2.fontSize; + node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding; + node.height = Math.max(node.height, node.maxHeight); + node.width = node.width + 2 * node.padding; + textElem.attr("transform", "translate(" + node.width / 2 + ", " + node.padding / 2 + ")"); + defaultBkg(bkgElem, node, section); + return node; +}; +const getVirtualNodeHeight = function(elem, node, conf2) { + const textElem = elem.append("g"); + const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf2.fontSize && conf2.fontSize.replace ? conf2.fontSize.replace("px", "") : conf2.fontSize; + textElem.remove(); + return bbox.height + fontSize * 1.1 * 0.5 + node.padding; +}; +const defaultBkg = function(elem, node, section) { + const rd = 5; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + node.type).attr( + "d", + `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z` + ); + elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height); +}; +const svgDraw = { + drawRect, + drawCircle, + drawSection, + drawText, + drawLabel, + drawTask, + drawBackgroundRect, + getTextObj, + getNoteRect, + initGraphics, + drawNode, + getVirtualNodeHeight +}; +const setConf = function(cnf) { + const keys = Object.keys(cnf); + keys.forEach(function(key) { + conf[key] = cnf[key]; + }); +}; +const draw = function(text, id, version, diagObj) { + const conf2 = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.g)(); + const LEFT_MARGIN = conf2.leftMargin ? conf2.leftMargin : 50; + diagObj.db.clear(); + diagObj.parser.parse(text + "\n"); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("timeline", diagObj.db); + const securityLevel = conf2.securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("#i" + id); + } + const root = securityLevel === "sandbox" ? (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body"); + const svg = root.select("#" + id); + svg.append("g"); + const tasks2 = diagObj.db.getTasks(); + const title = diagObj.db.getCommonDb().getDiagramTitle(); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("task", tasks2); + svgDraw.initGraphics(svg); + const sections2 = diagObj.db.getSections(); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("sections", sections2); + let maxSectionHeight = 0; + let maxTaskHeight = 0; + let depthY = 0; + let sectionBeginY = 0; + let masterX = 50 + LEFT_MARGIN; + let masterY = 50; + sectionBeginY = 50; + let sectionNumber = 0; + let hasSections = true; + sections2.forEach(function(section) { + const sectionNode = { + number: sectionNumber, + descr: section, + section: sectionNumber, + width: 150, + padding: 20, + maxHeight: maxSectionHeight + }; + const sectionHeight = svgDraw.getVirtualNodeHeight(svg, sectionNode, conf2); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("sectionHeight before draw", sectionHeight); + maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20); + }); + let maxEventCount = 0; + let maxEventLineLength = 0; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("tasks.length", tasks2.length); + for (const [i, task] of tasks2.entries()) { + const taskNode = { + number: i, + descr: task, + section: task.section, + width: 150, + padding: 20, + maxHeight: maxTaskHeight + }; + const taskHeight = svgDraw.getVirtualNodeHeight(svg, taskNode, conf2); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("taskHeight before draw", taskHeight); + maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20); + maxEventCount = Math.max(maxEventCount, task.events.length); + let maxEventLineLengthTemp = 0; + for (let j = 0; j < task.events.length; j++) { + const event = task.events[j]; + const eventNode = { + descr: event, + section: task.section, + number: task.section, + width: 150, + padding: 20, + maxHeight: 50 + }; + maxEventLineLengthTemp += svgDraw.getVirtualNodeHeight(svg, eventNode, conf2); + } + maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp); + } + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("maxSectionHeight before draw", maxSectionHeight); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("maxTaskHeight before draw", maxTaskHeight); + if (sections2 && sections2.length > 0) { + sections2.forEach((section) => { + const sectionNode = { + number: sectionNumber, + descr: section, + section: sectionNumber, + width: 150, + padding: 20, + maxHeight: maxSectionHeight + }; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("sectionNode", sectionNode); + const sectionNodeWrapper = svg.append("g"); + const node = svgDraw.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf2); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("sectionNode output", node); + sectionNodeWrapper.attr("transform", `translate(${masterX}, ${sectionBeginY})`); + masterY += maxSectionHeight + 50; + const tasksForSection = tasks2.filter((task) => task.section === section); + if (tasksForSection.length > 0) { + drawTasks( + svg, + tasksForSection, + sectionNumber, + masterX, + masterY, + maxTaskHeight, + conf2, + maxEventCount, + maxEventLineLength, + maxSectionHeight, + false + ); + } + masterX += 200 * Math.max(tasksForSection.length, 1); + masterY = sectionBeginY; + sectionNumber++; + }); + } else { + hasSections = false; + drawTasks( + svg, + tasks2, + sectionNumber, + masterX, + masterY, + maxTaskHeight, + conf2, + maxEventCount, + maxEventLineLength, + maxSectionHeight, + true + ); + } + const box = svg.node().getBBox(); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("bounds", box); + if (title) { + svg.append("text").text(title).attr("x", box.width / 2 - LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20); + } + depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100; + const lineWrapper = svg.append("g").attr("class", "lineWrapper"); + lineWrapper.append("line").attr("x1", LEFT_MARGIN).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)"); + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.s)( + void 0, + svg, + conf2.timeline.padding ? conf2.timeline.padding : 50, + conf2.timeline.useMaxWidth ? conf2.timeline.useMaxWidth : false + ); +}; +const drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf2, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) { + for (const task of tasks2) { + const taskNode = { + descr: task.task, + section: sectionColor, + number: sectionColor, + width: 150, + padding: 20, + maxHeight: maxTaskHeight + }; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("taskNode", taskNode); + const taskWrapper = diagram2.append("g").attr("class", "taskWrapper"); + const node = svgDraw.drawNode(taskWrapper, taskNode, sectionColor, conf2); + const taskHeight = node.height; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("taskHeight after draw", taskHeight); + taskWrapper.attr("transform", `translate(${masterX}, ${masterY})`); + maxTaskHeight = Math.max(maxTaskHeight, taskHeight); + if (task.events) { + const lineWrapper = diagram2.append("g").attr("class", "lineWrapper"); + let linelength = maxTaskHeight; + masterY += 100; + linelength = linelength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf2); + masterY -= 100; + lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr( + "y2", + masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120 + ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5"); + } + masterX = masterX + 200; + if (isWithoutSections && !(0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.g)().timeline.disableMulticolor) { + sectionColor++; + } + } + masterY = masterY - 10; +}; +const drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf2) { + let maxEventHeight = 0; + const eventBeginY = masterY; + masterY = masterY + 100; + for (const event of events) { + const eventNode = { + descr: event, + section: sectionColor, + number: sectionColor, + width: 150, + padding: 20, + maxHeight: 50 + }; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_11__.l.debug("eventNode", eventNode); + const eventWrapper = diagram2.append("g").attr("class", "eventWrapper"); + const node = svgDraw.drawNode(eventWrapper, eventNode, sectionColor, conf2); + const eventHeight = node.height; + maxEventHeight = maxEventHeight + eventHeight; + eventWrapper.attr("transform", `translate(${masterX}, ${masterY})`); + masterY = masterY + 10 + eventHeight; + } + masterY = eventBeginY; + return maxEventHeight; +}; +const renderer = { + setConf, + draw +}; +const genSections = (options) => { + let sections2 = ""; + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i]; + if ((0,khroma__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z)(options["lineColor" + i])) { + options["lineColor" + i] = (0,khroma__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z)(options["lineColor" + i], 20); + } else { + options["lineColor" + i] = (0,khroma__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z)(options["lineColor" + i], 20); + } + } + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + const sw = "" + (17 - 3 * i); + sections2 += ` + .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} path { + fill: ${options["cScale" + i]}; + } + .section-${i - 1} text { + fill: ${options["cScaleLabel" + i]}; + } + .node-icon-${i - 1} { + font-size: 40px; + color: ${options["cScaleLabel" + i]}; + } + .section-edge-${i - 1}{ + stroke: ${options["cScale" + i]}; + } + .edge-depth-${i - 1}{ + stroke-width: ${sw}; + } + .section-${i - 1} line { + stroke: ${options["cScaleInv" + i]} ; + stroke-width: 3; + } + + .lineWrapper line{ + stroke: ${options["cScaleLabel" + i]} ; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `; + } + return sections2; +}; +const getStyles = (options) => ` + .edge { + stroke-width: 3; + } + ${genSections(options)} + .section-root rect, .section-root path, .section-root circle { + fill: ${options.git0}; + } + .section-root text { + fill: ${options.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } + .eventWrapper { + filter: brightness(120%); + } +`; +const styles = getStyles; +const diagram = { + db, + renderer, + parser: parser$1, + styles +}; + +//# sourceMappingURL=timeline-definition-8e5a9bc6.js.map + + +/***/ }), + +/***/ 91619: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Z": () => (/* binding */ is_dark) +}); + +// EXTERNAL MODULE: ./node_modules/khroma/dist/utils/index.js + 3 modules +var utils = __webpack_require__(61691); +// EXTERNAL MODULE: ./node_modules/khroma/dist/color/index.js + 4 modules +var dist_color = __webpack_require__(71610); +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/luminance.js +/* IMPORT */ + + +/* MAIN */ +//SOURCE: https://planetcalc.com/7779 +const luminance = (color) => { + const { r, g, b } = dist_color/* default.parse */.Z.parse(color); + const luminance = .2126 * utils/* default.channel.toLinear */.Z.channel.toLinear(r) + .7152 * utils/* default.channel.toLinear */.Z.channel.toLinear(g) + .0722 * utils/* default.channel.toLinear */.Z.channel.toLinear(b); + return utils/* default.lang.round */.Z.lang.round(luminance); +}; +/* EXPORT */ +/* harmony default export */ const methods_luminance = (luminance); + +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/is_light.js +/* IMPORT */ + +/* MAIN */ +const isLight = (color) => { + return methods_luminance(color) >= .5; +}; +/* EXPORT */ +/* harmony default export */ const is_light = (isLight); + +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/is_dark.js +/* IMPORT */ + +/* MAIN */ +const isDark = (color) => { + return !is_light(color); +}; +/* EXPORT */ +/* harmony default export */ const is_dark = (isDark); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6316.3a9fab01.js b/assets/js/6316.3a9fab01.js new file mode 100644 index 00000000000..041c7b331d7 --- /dev/null +++ b/assets/js/6316.3a9fab01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6316],{96316:(t,e,n)=>{n.r(e),n.d(e,{diagram:()=>A});var i=n(16432),s=n(59373),r=n(91619),a=n(12281),o=n(7201),c=(n(27484),n(17967),n(27856),n(70277),n(45625),n(39354),n(91518),n(59542),n(10285),n(28734),function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,5],i=[6,9,11,17,18,20,22,23,26,27,28],s=[1,15],r=[1,16],a=[1,17],o=[1,18],c=[1,19],l=[1,23],h=[1,24],d=[1,27],u=[4,6,9,11,17,18,20,22,23,26,27,28],p={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,period_statement:24,event_statement:25,period:26,event:27,open_directive:28,type_directive:29,arg_directive:30,close_directive:31,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",26:"period",27:"event",28:"open_directive",29:"type_directive",30:"arg_directive",31:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[24,1],[25,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,s,r,a){var o=r.length-1;switch(s){case 1:return r[o-1];case 3:case 7:case 8:this.$=[];break;case 4:r[o-1].push(r[o]),this.$=r[o-1];break;case 5:case 6:this.$=r[o];break;case 11:i.getCommonDb().setDiagramTitle(r[o].substr(6)),this.$=r[o].substr(6);break;case 12:this.$=r[o].trim(),i.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=r[o].trim(),i.getCommonDb().setAccDescription(this.$);break;case 15:i.addSection(r[o].substr(8)),this.$=r[o].substr(8);break;case 19:i.addTask(r[o],0,""),this.$=r[o];break;case 20:i.addEvent(r[o].substr(2)),this.$=r[o];break;case 21:i.parseDirective("%%{","open_directive");break;case 22:i.parseDirective(r[o],"type_directive");break;case 23:r[o]=r[o].trim().replace(/'/g,'"'),i.parseDirective(r[o],"arg_directive");break;case 24:i.parseDirective("}%%","close_directive","timeline")}},table:[{3:1,4:e,7:3,12:4,28:n},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,28:n},{13:8,29:[1,9]},{29:[2,21]},{6:[1,10],7:22,8:11,9:[1,12],10:13,11:[1,14],12:4,17:s,18:r,20:a,22:o,23:c,24:20,25:21,26:l,27:h,28:n},{1:[2,2]},{14:25,15:[1,26],31:d},t([15,31],[2,22]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:22,10:28,12:4,17:s,18:r,20:a,22:o,23:c,24:20,25:21,26:l,27:h,28:n},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),{19:[1,29]},{21:[1,30]},t(i,[2,14]),t(i,[2,15]),t(i,[2,16]),t(i,[2,17]),t(i,[2,18]),t(i,[2,19]),t(i,[2,20]),{11:[1,31]},{16:32,30:[1,33]},{11:[2,24]},t(i,[2,5]),t(i,[2,12]),t(i,[2,13]),t(u,[2,9]),{14:34,31:d},{31:[2,23]},{11:[1,35]},t(u,[2,10])],defaultActions:{5:[2,21],7:[2,2],27:[2,24],33:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],s=[null],r=[],a=this.table,o="",c=0,l=0,h=2,d=1,u=r.slice.call(arguments,1),p=Object.create(this.lexer),y={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(y.yy[g]=this.yy[g]);p.setInput(t,y.yy),y.yy.lexer=p,y.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var f=p.yylloc;r.push(f);var m=p.options&&p.options.ranges;function _(){var t;return"number"!=typeof(t=i.pop()||p.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof y.yy.parseError?this.parseError=y.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,k,x,v,w,S,$,E,I={};;){if(k=n[n.length-1],this.defaultActions[k]?x=this.defaultActions[k]:(null==b&&(b=_()),x=a[k]&&a[k][b]),void 0===x||!x.length||!x[0]){var T="";for(w in E=[],a[k])this.terminals_[w]&&w>h&&E.push("'"+this.terminals_[w]+"'");T=p.showPosition?"Parse error on line "+(c+1)+":\n"+p.showPosition()+"\nExpecting "+E.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(c+1)+": Unexpected "+(b==d?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(T,{text:p.match,token:this.terminals_[b]||b,line:p.yylineno,loc:f,expected:E})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+k+", token: "+b);switch(x[0]){case 1:n.push(b),s.push(p.yytext),r.push(p.yylloc),n.push(x[1]),b=null,l=p.yyleng,o=p.yytext,c=p.yylineno,f=p.yylloc;break;case 2:if(S=this.productions_[x[1]][1],I.$=s[s.length-S],I._$={first_line:r[r.length-(S||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(S||1)].first_column,last_column:r[r.length-1].last_column},m&&(I._$.range=[r[r.length-(S||1)].range[0],r[r.length-1].range[1]]),void 0!==(v=this.performAction.apply(I,[o,l,c,y.yy,x[1],s,r].concat(u))))return v;S&&(n=n.slice(0,-1*S*2),s=s.slice(0,-1*S),r=r.slice(0,-1*S)),n.push(this.productions_[x[1]][0]),s.push(I.$),r.push(I._$),$=a[n[n.length-2]][n[n.length-1]],n.push($);break;case 3:return!0}}return!0}},y={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var s=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,s;if(this.options.backtrack_lexer&&(s={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(s.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in s)this[r]=s[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var s=this._currentRules(),r=0;re[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,s[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,s[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),28;case 1:return this.begin("type_directive"),29;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),31;case 4:return 30;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 27;case 21:return 26;case 22:return 6;case 23:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?::\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23],inclusive:!0}}};function g(){this.yy={}}return p.lexer=y,g.prototype=p,p.Parser=g,new g}());c.parser=c;const l=c;let h="",d=0;const u=[],p=[],y=[],g=()=>i.j,f=(t,e,n)=>{(0,i.k)(globalThis,t,e,n)},m=function(){u.length=0,p.length=0,h="",y.length=0,(0,i.m)()},_=function(t){h=t,u.push(t)},b=function(){return u},k=function(){let t=S();let e=0;for(;!t&&e<100;)t=S(),e++;return p.push(...y),p},x=function(t,e,n){const i={id:d++,section:h,type:h,task:t,score:e||0,events:n?[n]:[]};y.push(i)},v=function(t){y.find((t=>t.id===d-1)).events.push(t)},w=function(t){const e={section:h,type:h,description:t,task:t,classes:[]};p.push(e)},S=function(){let t=!0;for(const[e,n]of y.entries())y[e].processed,t=t&&n.processed;return t},$={clear:m,getCommonDb:g,addSection:_,getSections:b,getTasks:k,addTask:x,addTaskOrg:w,addEvent:v,parseDirective:f},E=Object.freeze(Object.defineProperty({__proto__:null,addEvent:v,addSection:_,addTask:x,addTaskOrg:w,clear:m,default:$,getCommonDb:g,getSections:b,getTasks:k,parseDirective:f},Symbol.toStringTag,{value:"Module"}));!function(){function t(t,e,n,s,r,a,o,c){i(e.append("text").attr("x",n+r/2).attr("y",s+a/2+5).style("font-color",c).style("text-anchor","middle").text(t),o)}function e(t,e,n,s,r,a,o,c,l){const{taskFontSize:h,taskFontFamily:d}=c,u=t.split(//gi);for(let p=0;p)/).reverse(),r=[],a=n.attr("y"),o=parseFloat(n.attr("dy")),c=n.text(null).append("tspan").attr("x",0).attr("y",a).attr("dy",o+"em");for(let s=0;se||"
    "===t)&&(r.pop(),c.text(r.join(" ").trim()),r="
    "===t?[""]:[t],c=n.append("tspan").attr("x",0).attr("y",a).attr("dy","1.1em").text(t))}))}const T=function(t,e,n){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-5} v${10-e.height} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},D=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},L=function(t,e,n,i){const s=n%12-1,r=t.append("g");e.section=s,r.attr("class",(e.class?e.class+" ":"")+"timeline-node section-"+s);const a=r.append("g"),o=r.append("g"),c=o.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(I,e.width).node().getBBox(),l=i.fontSize&&i.fontSize.replace?i.fontSize.replace("px",""):i.fontSize;return e.height=c.height+1.1*l*.5+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,o.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),T(a,e,s),e},C=function(t,e,n){const i=t.append("g"),s=i.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(I,e.width).node().getBBox(),r=n.fontSize&&n.fontSize.replace?n.fontSize.replace("px",""):n.fontSize;return i.remove(),s.height+1.1*r*.5+e.padding},M=function(t,e,n,s,r,a,o,c,l,h,d){for(const u of e){const e={descr:u.task,section:n,number:n,width:150,padding:20,maxHeight:a};i.l.debug("taskNode",e);const c=t.append("g").attr("class","taskWrapper"),p=L(c,e,n,o).height;if(i.l.debug("taskHeight after draw",p),c.attr("transform",`translate(${s}, ${r})`),a=Math.max(a,p),u.events){const e=t.append("g").attr("class","lineWrapper");let i=a;r+=100,i+=O(t,u.events,n,s,r,o),r-=100,e.append("line").attr("x1",s+95).attr("y1",r+a).attr("x2",s+95).attr("y2",r+a+(d?a:h)+l+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}s+=200,d&&!(0,i.g)().timeline.disableMulticolor&&n++}r-=10},O=function(t,e,n,s,r,a){let o=0;const c=r;r+=100;for(const l of e){const e={descr:l,section:n,number:n,width:150,padding:20,maxHeight:50};i.l.debug("eventNode",e);const c=t.append("g").attr("class","eventWrapper"),h=L(c,e,n,a).height;o+=h,c.attr("transform",`translate(${s}, ${r})`),r=r+10+h}return r=c,o},A={db:E,renderer:{setConf:function(t){Object.keys(t).forEach((function(e){conf[e]=t[e]}))},draw:function(t,e,n,r){const a=(0,i.g)(),o=a.leftMargin?a.leftMargin:50;r.db.clear(),r.parser.parse(t+"\n"),i.l.debug("timeline",r.db);const c=a.securityLevel;let l;"sandbox"===c&&(l=(0,s.Ys)("#i"+e));const h=("sandbox"===c?(0,s.Ys)(l.nodes()[0].contentDocument.body):(0,s.Ys)("body")).select("#"+e);h.append("g");const d=r.db.getTasks(),u=r.db.getCommonDb().getDiagramTitle();i.l.debug("task",d),D(h);const p=r.db.getSections();i.l.debug("sections",p);let y=0,g=0,f=0,m=0,_=50+o,b=50;m=50;let k=0,x=!0;p.forEach((function(t){const e=C(h,{number:k,descr:t,section:k,width:150,padding:20,maxHeight:y},a);i.l.debug("sectionHeight before draw",e),y=Math.max(y,e+20)}));let v=0,w=0;i.l.debug("tasks.length",d.length);for(const[s,$]of d.entries()){const t={number:s,descr:$,section:$.section,width:150,padding:20,maxHeight:g},e=C(h,t,a);i.l.debug("taskHeight before draw",e),g=Math.max(g,e+20),v=Math.max(v,$.events.length);let n=0;for(let i=0;i<$.events.length;i++){const t={descr:$.events[i],section:$.section,number:$.section,width:150,padding:20,maxHeight:50};n+=C(h,t,a)}w=Math.max(w,n)}i.l.debug("maxSectionHeight before draw",y),i.l.debug("maxTaskHeight before draw",g),p&&p.length>0?p.forEach((t=>{const e={number:k,descr:t,section:k,width:150,padding:20,maxHeight:y};i.l.debug("sectionNode",e);const n=h.append("g"),s=L(n,e,k,a);i.l.debug("sectionNode output",s),n.attr("transform",`translate(${_}, 50)`),b+=y+50;const r=d.filter((e=>e.section===t));r.length>0&&M(h,r,k,_,b,g,a,v,w,y,!1),_+=200*Math.max(r.length,1),b=50,k++})):(x=!1,M(h,d,k,_,b,g,a,v,w,y,!0));const S=h.node().getBBox();i.l.debug("bounds",S),u&&h.append("text").text(u).attr("x",S.width/2-o).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),f=x?y+g+150:g+100;h.append("g").attr("class","lineWrapper").append("line").attr("x1",o).attr("y1",f).attr("x2",S.width+3*o).attr("y2",f).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),(0,i.s)(void 0,h,a.timeline.padding?a.timeline.padding:50,!!a.timeline.useMaxWidth&&a.timeline.useMaxWidth)}},parser:l,styles:t=>`\n .edge {\n stroke-width: 3;\n }\n ${(t=>{let e="";for(let n=0;n{n.d(e,{Z:()=>o});var i=n(61691),s=n(71610);const r=t=>{const{r:e,g:n,b:r}=s.Z.parse(t),a=.2126*i.Z.channel.toLinear(e)+.7152*i.Z.channel.toLinear(n)+.0722*i.Z.channel.toLinear(r);return i.Z.lang.round(a)},a=t=>r(t)>=.5,o=t=>!a(t)}}]); \ No newline at end of file diff --git a/assets/js/6329.369e2ba8.js b/assets/js/6329.369e2ba8.js new file mode 100644 index 00000000000..bfd4c8a1205 --- /dev/null +++ b/assets/js/6329.369e2ba8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6329],{46329:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>w,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var a=n(87462),o=(n(67294),n(3905));const i={title:"New Flow Language Rule: Constrained Writes","short-title":"Introducing Constrained Writes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/new-flow-language-rule-constrained-writes-4c70e375d190"},s=void 0,r={permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes",source:"@site/blog/2022-08-05-New-Flow-Language-Rule-Constrained-Writes.md",title:"New Flow Language Rule: Constrained Writes",description:"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.",date:"2022-08-05T00:00:00.000Z",formattedDate:"August 5, 2022",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"New Flow Language Rule: Constrained Writes","short-title":"Introducing Constrained Writes",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/new-flow-language-rule-constrained-writes-4c70e375d190"},prevItem:{title:"Requiring More Annotations to Functions and Classes in Flow",permalink:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes"},nextItem:{title:"Introducing: Local Type Inference for Flow",permalink:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow"}},l={authorsImageUrls:[void 0]},u=[],d={toc:u};function w(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated."))}w.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6393.7cb3deb5.js b/assets/js/6393.7cb3deb5.js new file mode 100644 index 00000000000..fc81d155f50 --- /dev/null +++ b/assets/js/6393.7cb3deb5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6393],{46393:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>l});var o=i(87462),n=(i(67294),i(3905));i(45475);const a={title:"Library Definitions",slug:"/libdefs",description:"Learn how to create and use library definitions for the third-party code your code depends on."},r=void 0,s={unversionedId:"libdefs/index",id:"libdefs/index",title:"Library Definitions",description:"Learn how to create and use library definitions for the third-party code your code depends on.",source:"@site/docs/libdefs/index.md",sourceDirName:"libdefs",slug:"/libdefs",permalink:"/en/docs/libdefs",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/libdefs/index.md",tags:[],version:"current",frontMatter:{title:"Library Definitions",slug:"/libdefs",description:"Learn how to create and use library definitions for the third-party code your code depends on."},sidebar:"docsSidebar",previous:{title:"Declaration Files",permalink:"/en/docs/declarations"},next:{title:"Creating Library Definitions",permalink:"/en/docs/libdefs/creation"}},d={},l=[{value:"What's a "Library Definition"?",id:"toc-what-s-a-library-definition",level:2},{value:"General Best Practices",id:"toc-general-best-practices",level:2}],c={toc:l};function p(e){let{components:t,...i}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("h2",{id:"toc-what-s-a-library-definition"},'What\'s a "Library Definition"?'),(0,n.mdx)("p",null,'Most real JavaScript programs depend on third-party code and not just code\nimmediately under the control of the project. That means a project using Flow\nmay need to reference outside code that either doesn\'t have type information or\ndoesn\'t have accurate and/or precise type information. In order to handle this,\nFlow supports the concept of a "library definition" (a.k.a. "libdef").'),(0,n.mdx)("p",null,"A libdef is a special file that informs Flow about the type signature of some\nspecific third-party module or package of modules that your application uses.\nIf you're familiar with languages that have header files (like ",(0,n.mdx)("inlineCode",{parentName:"p"},"C++"),"), you can\nthink of libdefs as a similar concept."),(0,n.mdx)("p",null,"These special files use the same ",(0,n.mdx)("inlineCode",{parentName:"p"},".js")," extension as normal JS code, but they are\nplaced in a directory called ",(0,n.mdx)("inlineCode",{parentName:"p"},"flow-typed")," in the root directory of your project.\nPlacement in this directory tells Flow to interpret them as libdefs rather than\nnormal JS files."),(0,n.mdx)("blockquote",null,(0,n.mdx)("p",{parentName:"blockquote"},"NOTE: Using the ",(0,n.mdx)("inlineCode",{parentName:"p"},"/flow-typed")," directory for libdefs is a convention that\nenables Flow to JustWork\u2122 out of the box and encourages consistency\nacross projects that use Flow, but it is also possible to explicitly\nconfigure Flow to look elsewhere for libdefs using the ",(0,n.mdx)("a",{parentName:"p",href:"../config/libs"},(0,n.mdx)("inlineCode",{parentName:"a"},"[libs]")," section\nof your ",(0,n.mdx)("inlineCode",{parentName:"a"},".flowconfig")),".")),(0,n.mdx)("p",null,"You can also learn about ",(0,n.mdx)("a",{parentName:"p",href:"../declarations"},"declaration files"),"."),(0,n.mdx)("h2",{id:"toc-general-best-practices"},"General Best Practices"),(0,n.mdx)("p",null,(0,n.mdx)("strong",{parentName:"p"},"Try to provide a libdef for each third-party library your project uses.")),(0,n.mdx)("p",null,"If a third-party library that has no type information is used by your project,\nFlow will treat it like any other untyped dependency and mark all of its exports\nas ",(0,n.mdx)("inlineCode",{parentName:"p"},"any"),"."),(0,n.mdx)("p",null,"Because of this behavior, it is a best practice to find or write libdefs for as\nmany of the third-party libraries that you use as you can. We recommend checking\nout the ",(0,n.mdx)("inlineCode",{parentName:"p"},"flow-typed"),"\n",(0,n.mdx)("a",{parentName:"p",href:"https://github.com/flow-typed/flow-typed/"},"tool and repository"),"\n, which helps you quickly find and install pre-existing libdefs for your\nthird-party dependencies."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/64.d7c257b8.js b/assets/js/64.d7c257b8.js new file mode 100644 index 00000000000..a674481cfa9 --- /dev/null +++ b/assets/js/64.d7c257b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[64],{40064:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>n,contentTitle:()=>d,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>r});var i=o(87462),s=(o(67294),o(3905));o(45475);const a={title:"Visual Studio Code",slug:"/editors/vscode"},d=void 0,l={unversionedId:"editors/vscode",id:"editors/vscode",title:"Visual Studio Code",description:"Screenshot of Flow Language Support",source:"@site/docs/editors/vscode.md",sourceDirName:"editors",slug:"/editors/vscode",permalink:"/en/docs/editors/vscode",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/vscode.md",tags:[],version:"current",frontMatter:{title:"Visual Studio Code",slug:"/editors/vscode"},sidebar:"docsSidebar",previous:{title:"Editors",permalink:"/en/docs/editors"},next:{title:"Sublime Text",permalink:"/en/docs/editors/sublime-text"}},n={},r=[{value:"Installation",id:"installation",level:2}],u={toc:r};function p(e){let{components:t,...a}=e;return(0,s.mdx)("wrapper",(0,i.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,(0,s.mdx)("img",{alt:"Screenshot of Flow Language Support",src:o(1085).Z,width:"800",height:"558"})),(0,s.mdx)("p",null,"Support for Flow in ",(0,s.mdx)("a",{parentName:"p",href:"https://code.visualstudio.com/"},"Visual Studio Code")," is provided by\nthe ",(0,s.mdx)("a",{parentName:"p",href:"https://marketplace.visualstudio.com/items?itemName=flowtype.flow-for-vscode"},"Flow Language Support"),"\nextension. It provides all the functionality you would expect:"),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},"IntelliSense (Autocomplete)"),(0,s.mdx)("li",{parentName:"ul"},"Go to Definition / Peek Definition"),(0,s.mdx)("li",{parentName:"ul"},"Diagnostics (Errors, Warnings)"),(0,s.mdx)("li",{parentName:"ul"},"Hover type information"),(0,s.mdx)("li",{parentName:"ul"},"Toggleable code coverage reports")),(0,s.mdx)("h2",{id:"installation"},"Installation"),(0,s.mdx)("p",null,'Search for "Flow Language Support" in the VS Code extensions panel or install through the ',(0,s.mdx)("a",{parentName:"p",href:"https://marketplace.visualstudio.com/items?itemName=flowtype.flow-for-vscode"},"Marketplace"),"."))}p.isMDXComponent=!0},1085:(e,t,o)=>{o.d(t,{Z:()=>i});const i=o.p+"assets/images/flow_for_vscode-ca5205105d042b2a09dc485fba0634be.gif"}}]); \ No newline at end of file diff --git a/assets/js/6423.a0154131.js b/assets/js/6423.a0154131.js new file mode 100644 index 00000000000..6fe5c00d158 --- /dev/null +++ b/assets/js/6423.a0154131.js @@ -0,0 +1,2 @@ +/*! For license information please see 6423.a0154131.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6423],{56423:(e,i,t)=>{t.r(i),t.d(i,{conf:()=>n,language:()=>s});var n={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},s={defaultToken:"",tokenPostfix:".cypher",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ALL","AND","AS","ASC","ASCENDING","BY","CALL","CASE","CONTAINS","CREATE","DELETE","DESC","DESCENDING","DETACH","DISTINCT","ELSE","END","ENDS","EXISTS","IN","IS","LIMIT","MANDATORY","MATCH","MERGE","NOT","ON","ON","OPTIONAL","OR","ORDER","REMOVE","RETURN","SET","SKIP","STARTS","THEN","UNION","UNWIND","WHEN","WHERE","WITH","XOR","YIELD"],builtinLiterals:["true","TRUE","false","FALSE","null","NULL"],builtinFunctions:["abs","acos","asin","atan","atan2","avg","ceil","coalesce","collect","cos","cot","count","degrees","e","endNode","exists","exp","floor","head","id","keys","labels","last","left","length","log","log10","lTrim","max","min","nodes","percentileCont","percentileDisc","pi","properties","radians","rand","range","relationships","replace","reverse","right","round","rTrim","sign","sin","size","split","sqrt","startNode","stDev","stDevP","substring","sum","tail","tan","timestamp","toBoolean","toFloat","toInteger","toLower","toString","toUpper","trim","type"],operators:["+","-","*","/","%","^","=","<>","<",">","<=",">=","->","<-","--\x3e","<--"],escapes:/\\(?:[tbnrf\\"'`]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+/,octaldigits:/[0-7]+/,hexdigits:/[0-9a-fA-F]+/,tokenizer:{root:[[/[{}[\]()]/,"@brackets"],{include:"common"}],common:[{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/:[a-zA-Z_][\w]*/,"type.identifier"],[/[a-zA-Z_][\w]*(?=\()/,{cases:{"@builtinFunctions":"predefined.function"}}],[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":"keyword","@builtinLiterals":"predefined.literal","@default":"identifier"}}],[/`/,"identifier.escape","@identifierBacktick"],[/[;,.:|]/,"delimiter"],[/[<>=%+\-*/^]+/,{cases:{"@operators":"delimiter","@default":""}}]],numbers:[[/-?(@digits)[eE](-?(@digits))?/,"number.float"],[/-?(@digits)?\.(@digits)([eE]-?(@digits))?/,"number.float"],[/-?0x(@hexdigits)/,"number.hex"],[/-?0(@octaldigits)/,"number.octal"],[/-?(@digits)/,"number"]],strings:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@stringDouble"],[/'/,"string","@stringSingle"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/\/\/.*/,"comment"],[/[^/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[/*]/,"comment"]],stringDouble:[[/[^\\"]+/,"string"],[/@escapes/,"string"],[/\\./,"string.invalid"],[/"/,"string","@pop"]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string"],[/\\./,"string.invalid"],[/'/,"string","@pop"]],identifierBacktick:[[/[^\\`]+/,"identifier.escape"],[/@escapes/,"identifier.escape"],[/\\./,"identifier.escape.invalid"],[/`/,"identifier.escape","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/6423.a0154131.js.LICENSE.txt b/assets/js/6423.a0154131.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6423.a0154131.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6423.b6271fc7.js b/assets/js/6423.b6271fc7.js new file mode 100644 index 00000000000..b8306eae10e --- /dev/null +++ b/assets/js/6423.b6271fc7.js @@ -0,0 +1,281 @@ +"use strict"; +exports.id = 6423; +exports.ids = [6423]; +exports.modules = { + +/***/ 56423: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/cypher/cypher.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: `.cypher`, + ignoreCase: true, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.bracket" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "ALL", + "AND", + "AS", + "ASC", + "ASCENDING", + "BY", + "CALL", + "CASE", + "CONTAINS", + "CREATE", + "DELETE", + "DESC", + "DESCENDING", + "DETACH", + "DISTINCT", + "ELSE", + "END", + "ENDS", + "EXISTS", + "IN", + "IS", + "LIMIT", + "MANDATORY", + "MATCH", + "MERGE", + "NOT", + "ON", + "ON", + "OPTIONAL", + "OR", + "ORDER", + "REMOVE", + "RETURN", + "SET", + "SKIP", + "STARTS", + "THEN", + "UNION", + "UNWIND", + "WHEN", + "WHERE", + "WITH", + "XOR", + "YIELD" + ], + builtinLiterals: ["true", "TRUE", "false", "FALSE", "null", "NULL"], + builtinFunctions: [ + "abs", + "acos", + "asin", + "atan", + "atan2", + "avg", + "ceil", + "coalesce", + "collect", + "cos", + "cot", + "count", + "degrees", + "e", + "endNode", + "exists", + "exp", + "floor", + "head", + "id", + "keys", + "labels", + "last", + "left", + "length", + "log", + "log10", + "lTrim", + "max", + "min", + "nodes", + "percentileCont", + "percentileDisc", + "pi", + "properties", + "radians", + "rand", + "range", + "relationships", + "replace", + "reverse", + "right", + "round", + "rTrim", + "sign", + "sin", + "size", + "split", + "sqrt", + "startNode", + "stDev", + "stDevP", + "substring", + "sum", + "tail", + "tan", + "timestamp", + "toBoolean", + "toFloat", + "toInteger", + "toLower", + "toString", + "toUpper", + "trim", + "type" + ], + operators: [ + "+", + "-", + "*", + "/", + "%", + "^", + "=", + "<>", + "<", + ">", + "<=", + ">=", + "->", + "<-", + "-->", + "<--" + ], + escapes: /\\(?:[tbnrf\\"'`]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + digits: /\d+/, + octaldigits: /[0-7]+/, + hexdigits: /[0-9a-fA-F]+/, + tokenizer: { + root: [[/[{}[\]()]/, "@brackets"], { include: "common" }], + common: [ + { include: "@whitespace" }, + { include: "@numbers" }, + { include: "@strings" }, + [/:[a-zA-Z_][\w]*/, "type.identifier"], + [ + /[a-zA-Z_][\w]*(?=\()/, + { + cases: { + "@builtinFunctions": "predefined.function" + } + } + ], + [ + /[a-zA-Z_$][\w$]*/, + { + cases: { + "@keywords": "keyword", + "@builtinLiterals": "predefined.literal", + "@default": "identifier" + } + } + ], + [/`/, "identifier.escape", "@identifierBacktick"], + [/[;,.:|]/, "delimiter"], + [ + /[<>=%+\-*/^]+/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ] + ], + numbers: [ + [/-?(@digits)[eE](-?(@digits))?/, "number.float"], + [/-?(@digits)?\.(@digits)([eE]-?(@digits))?/, "number.float"], + [/-?0x(@hexdigits)/, "number.hex"], + [/-?0(@octaldigits)/, "number.octal"], + [/-?(@digits)/, "number"] + ], + strings: [ + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@stringDouble"], + [/'/, "string", "@stringSingle"] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/\/\/.*/, "comment"], + [/[^/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[/*]/, "comment"] + ], + stringDouble: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string"], + [/\\./, "string.invalid"], + [/"/, "string", "@pop"] + ], + stringSingle: [ + [/[^\\']+/, "string"], + [/@escapes/, "string"], + [/\\./, "string.invalid"], + [/'/, "string", "@pop"] + ], + identifierBacktick: [ + [/[^\\`]+/, "identifier.escape"], + [/@escapes/, "identifier.escape"], + [/\\./, "identifier.escape.invalid"], + [/`/, "identifier.escape", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6424.828d0aa7.js b/assets/js/6424.828d0aa7.js new file mode 100644 index 00000000000..6adc3882e5a --- /dev/null +++ b/assets/js/6424.828d0aa7.js @@ -0,0 +1,2 @@ +/*! For license information please see 6424.828d0aa7.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6424],{76424:(e,t,r)=>{r.r(t),r.d(t,{conf:()=>h,language:()=>u});var o,n,i=r(15030),a=Object.defineProperty,m=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,l=(e,t,r,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of s(t))c.call(e,n)||n===r||a(e,n,{get:()=>t[n],enumerable:!(o=m(t,n))||o.enumerable});return e},d={};l(d,o=i,"default"),n&&l(n,o,"default");var p=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],h={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["\x3c!--","--\x3e"]},brackets:[["\x3c!--","--\x3e"],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:d.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${p.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:d.languages.IndentAction.Indent}}]},u={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],razorInSimpleState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3"}]],razorInEmbeddedState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],razorBlockCommentTopLevel:[[/\*@/,"@rematch","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorBlockComment:[[/\*@/,"comment.cs","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorRootTopLevel:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/[})]/,"@rematch","@pop"],{include:"razorCommon"}],razorRoot:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/\}/,"delimiter.bracket.cs","@pop"],[/\)/,"delimiter.parenthesis.cs","@pop"],{include:"razorCommon"}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:"keyword.cs"},"@default":"identifier.cs"}}],[/[\[\]]/,"delimiter.array.cs"],[/[ \t\r\n]+/],[/\/\/.*$/,"comment.cs"],[/@\*/,"comment.cs","@razorBlockComment"],[/"([^"]*)"/,"string.cs"],[/'([^']*)'/,"string.cs"],[/(<)([\w\-]+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<\/)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,"delimiter.cs"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.cs"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.cs"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.cs"],[/0[0-7']*[0-7]/,"number.octal.cs"],[/0[bB][0-1']*[0-1]/,"number.binary.cs"],[/\d[\d']*/,"number.cs"],[/\d/,"number.cs"]]},razorKeywords:["abstract","as","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","descending","explicit","event","extern","else","enum","false","finally","fixed","float","for","foreach","from","goto","group","if","implicit","in","int","interface","internal","into","is","lock","long","nameof","new","null","namespace","object","operator","out","override","orderby","params","private","protected","public","readonly","ref","return","switch","struct","sbyte","sealed","short","sizeof","stackalloc","static","string","select","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","var","virtual","volatile","void","when","while","where","yield","model","inject"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}}]); \ No newline at end of file diff --git a/assets/js/6424.828d0aa7.js.LICENSE.txt b/assets/js/6424.828d0aa7.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6424.828d0aa7.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6424.c64c6dc2.js b/assets/js/6424.c64c6dc2.js new file mode 100644 index 00000000000..4cf3576a5b7 --- /dev/null +++ b/assets/js/6424.c64c6dc2.js @@ -0,0 +1,544 @@ +"use strict"; +exports.id = 6424; +exports.ids = [6424]; +exports.modules = { + +/***/ 76424: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15030); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/razor/razor.ts +var EMPTY_ELEMENTS = [ + "area", + "base", + "br", + "col", + "embed", + "hr", + "img", + "input", + "keygen", + "link", + "menuitem", + "meta", + "param", + "source", + "track", + "wbr" +]; +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, + comments: { + blockComment: [""] + }, + brackets: [ + [""], + ["<", ">"], + ["{", "}"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ], + onEnterRules: [ + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + afterText: /^<\/(\w[\w\d]*)\s*>$/i, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent + } + }, + { + beforeText: new RegExp(`<(?!(?:${EMPTY_ELEMENTS.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`, "i"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: "", + tokenizer: { + root: [ + [/@@@@/], + [/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.root" }], + [/)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]], + [/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]], + [/(<)([:\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/(<\/)([\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/]+/, "metatag.content.html"], + [/>/, "metatag.html", "@pop"] + ], + comment: [ + [/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.comment" }], + [/-->/, "comment.html", "@pop"], + [/[^-]+/, "comment.content.html"], + [/./, "comment.content.html"] + ], + otherTag: [ + [/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.otherTag" }], + [/\/?>/, "delimiter.html", "@pop"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/] + ], + script: [ + [/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.script" }], + [/type/, "attribute.name", "@scriptAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(script\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + scriptAfterType: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.scriptAfterType" + } + ], + [/=/, "delimiter", "@scriptAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptAfterTypeEquals: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.scriptAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptWithCustomType: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.scriptWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptEmbedded: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInEmbeddedState.scriptEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + style: [ + [/@[^@]/, { token: "@rematch", switchTo: "@razorInSimpleState.style" }], + [/type/, "attribute.name", "@styleAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(style\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + styleAfterType: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.styleAfterType" + } + ], + [/=/, "delimiter", "@styleAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleAfterTypeEquals: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.styleAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleWithCustomType: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInSimpleState.styleWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleEmbedded: [ + [ + /@[^@]/, + { + token: "@rematch", + switchTo: "@razorInEmbeddedState.styleEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + razorInSimpleState: [ + [/@\*/, "comment.cs", "@razorBlockCommentTopLevel"], + [/@[{(]/, "metatag.cs", "@razorRootTopLevel"], + [/(@)(\s*[\w]+)/, ["metatag.cs", { token: "identifier.cs", switchTo: "@$S2.$S3" }]], + [/[})]/, { token: "metatag.cs", switchTo: "@$S2.$S3" }], + [/\*@/, { token: "comment.cs", switchTo: "@$S2.$S3" }] + ], + razorInEmbeddedState: [ + [/@\*/, "comment.cs", "@razorBlockCommentTopLevel"], + [/@[{(]/, "metatag.cs", "@razorRootTopLevel"], + [ + /(@)(\s*[\w]+)/, + [ + "metatag.cs", + { + token: "identifier.cs", + switchTo: "@$S2.$S3", + nextEmbedded: "$S3" + } + ] + ], + [ + /[})]/, + { + token: "metatag.cs", + switchTo: "@$S2.$S3", + nextEmbedded: "$S3" + } + ], + [ + /\*@/, + { + token: "comment.cs", + switchTo: "@$S2.$S3", + nextEmbedded: "$S3" + } + ] + ], + razorBlockCommentTopLevel: [ + [/\*@/, "@rematch", "@pop"], + [/[^*]+/, "comment.cs"], + [/./, "comment.cs"] + ], + razorBlockComment: [ + [/\*@/, "comment.cs", "@pop"], + [/[^*]+/, "comment.cs"], + [/./, "comment.cs"] + ], + razorRootTopLevel: [ + [/\{/, "delimiter.bracket.cs", "@razorRoot"], + [/\(/, "delimiter.parenthesis.cs", "@razorRoot"], + [/[})]/, "@rematch", "@pop"], + { include: "razorCommon" } + ], + razorRoot: [ + [/\{/, "delimiter.bracket.cs", "@razorRoot"], + [/\(/, "delimiter.parenthesis.cs", "@razorRoot"], + [/\}/, "delimiter.bracket.cs", "@pop"], + [/\)/, "delimiter.parenthesis.cs", "@pop"], + { include: "razorCommon" } + ], + razorCommon: [ + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@razorKeywords": { token: "keyword.cs" }, + "@default": "identifier.cs" + } + } + ], + [/[\[\]]/, "delimiter.array.cs"], + [/[ \t\r\n]+/], + [/\/\/.*$/, "comment.cs"], + [/@\*/, "comment.cs", "@razorBlockComment"], + [/"([^"]*)"/, "string.cs"], + [/'([^']*)'/, "string.cs"], + [/(<)([\w\-]+)(\/>)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<)([\w\-]+)(>)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<\/)([\w\-]+)(>)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/, "delimiter.cs"], + [/\d*\d+[eE]([\-+]?\d+)?/, "number.float.cs"], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float.cs"], + [/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, "number.hex.cs"], + [/0[0-7']*[0-7]/, "number.octal.cs"], + [/0[bB][0-1']*[0-1]/, "number.binary.cs"], + [/\d[\d']*/, "number.cs"], + [/\d/, "number.cs"] + ] + }, + razorKeywords: [ + "abstract", + "as", + "async", + "await", + "base", + "bool", + "break", + "by", + "byte", + "case", + "catch", + "char", + "checked", + "class", + "const", + "continue", + "decimal", + "default", + "delegate", + "do", + "double", + "descending", + "explicit", + "event", + "extern", + "else", + "enum", + "false", + "finally", + "fixed", + "float", + "for", + "foreach", + "from", + "goto", + "group", + "if", + "implicit", + "in", + "int", + "interface", + "internal", + "into", + "is", + "lock", + "long", + "nameof", + "new", + "null", + "namespace", + "object", + "operator", + "out", + "override", + "orderby", + "params", + "private", + "protected", + "public", + "readonly", + "ref", + "return", + "switch", + "struct", + "sbyte", + "sealed", + "short", + "sizeof", + "stackalloc", + "static", + "string", + "select", + "this", + "throw", + "true", + "try", + "typeof", + "uint", + "ulong", + "unchecked", + "unsafe", + "ushort", + "using", + "var", + "virtual", + "volatile", + "void", + "when", + "while", + "where", + "yield", + "model", + "inject" + ], + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/ +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6432.8f67f499.js b/assets/js/6432.8f67f499.js new file mode 100644 index 00000000000..77e01c99eda --- /dev/null +++ b/assets/js/6432.8f67f499.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6432],{6432:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var i=a(87462),t=(a(67294),a(3905));a(45475);const o={title:"Declaration Files",slug:"/declarations",description:"Learn how to write types in .flow files."},l=void 0,r={unversionedId:"declarations/index",id:"declarations/index",title:"Declaration Files",description:"Learn how to write types in .flow files.",source:"@site/docs/declarations/index.md",sourceDirName:"declarations",slug:"/declarations",permalink:"/en/docs/declarations",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/declarations/index.md",tags:[],version:"current",frontMatter:{title:"Declaration Files",slug:"/declarations",description:"Learn how to write types in .flow files."},sidebar:"docsSidebar",previous:{title:"Migrating from legacy patterns",permalink:"/en/docs/enums/migrating-legacy-patterns"},next:{title:"Library Definitions",permalink:"/en/docs/libdefs"}},s={},d=[{value:"What's a Declaration File?",id:"toc-what-s-a-declaration-file",level:2},{value:"Inlining declarations in regular code",id:"toc-inlining-declarations-in-regular-code",level:2}],m={toc:d};function p(e){let{components:n,...a}=e;return(0,t.mdx)("wrapper",(0,i.Z)({},m,a,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("h2",{id:"toc-what-s-a-declaration-file"},"What's a Declaration File?"),(0,t.mdx)("p",null,"Let's look at a more general, and sometimes more convenient way to\ndeclare types for modules: ",(0,t.mdx)("inlineCode",{parentName:"p"},".flow")," files."),(0,t.mdx)("p",null,"There are two possible use cases, depending on whether an implementation file exists\nor not."),(0,t.mdx)("p",null,"In the first case, the exported types of a module are declared in a ",(0,t.mdx)("em",{parentName:"p"},"declaration\nfile")," ",(0,t.mdx)("inlineCode",{parentName:"p"},".flow"),", that is located in the same directory as the corresponding ",(0,t.mdx)("em",{parentName:"p"},"implementation\nfile")," ",(0,t.mdx)("inlineCode",{parentName:"p"},""),". The declaration file completely shadows the colocated\nimplementation. In other words, Flow will completely ignore ",(0,t.mdx)("inlineCode",{parentName:"p"},"")," and just\nread ",(0,t.mdx)("inlineCode",{parentName:"p"},".flow")," instead."),(0,t.mdx)("p",null,"In the second case, the implementation file is missing entirely. ",(0,t.mdx)("inlineCode",{parentName:"p"},".flow"),"\nis treated as if it is named ",(0,t.mdx)("inlineCode",{parentName:"p"},""),"."),(0,t.mdx)("p",null,"Note that the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flow")," extension applies both to ",(0,t.mdx)("inlineCode",{parentName:"p"},".js")," files as well as ",(0,t.mdx)("inlineCode",{parentName:"p"},".json"),"\nones. The corresponding declaration files have extensions ",(0,t.mdx)("inlineCode",{parentName:"p"},".js.flow")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},".json.flow"),",\nrespectively."),(0,t.mdx)("p",null,"Now let's see an example of the first case documented above. Suppose we have the\nfollowing code in a file ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/LookBeforeYouLeap.js"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-js"},'import { isLeapYear } from "./Misc";\nif (isLeapYear("2020")) console.log("Yay!");\n')),(0,t.mdx)("p",null,"and suppose that ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/Misc.js")," has an incompatible implementation of ",(0,t.mdx)("inlineCode",{parentName:"p"},"isLeapYear"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export function isLeapYear(year: number): boolean {\n return year % 4 == 0; // yeah, this is approximate\n}\n")),(0,t.mdx)("p",null,"If we now create a declaration file ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/Misc.js.flow"),", the declarations in it\nwill be used instead of the code in ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/Misc.js"),". Let's say we have the\nfollowing declarations in ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/Misc.js.flow"),"."),(0,t.mdx)("blockquote",null,(0,t.mdx)("p",{parentName:"blockquote"},"NOTE: The syntax for declarations in a declaration file is the same as we've seen in\n",(0,t.mdx)("a",{parentName:"p",href:"../libdefs/creation"},"Creating Library Definitions section"),".")),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare export function isLeapYear(year: string): boolean;\n")),(0,t.mdx)("p",null,"What do you think will happen?"),(0,t.mdx)("p",null,"Right, the ",(0,t.mdx)("inlineCode",{parentName:"p"},"isLeapYear")," call in ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/LookBeforeYouLeap.js")," will typecheck, since\nthe ",(0,t.mdx)("inlineCode",{parentName:"p"},"year")," parameter expects a ",(0,t.mdx)("inlineCode",{parentName:"p"},"string")," in the declaration file."),(0,t.mdx)("p",null,"As this example shows, declaration files must be written with care: it is up\nto the programmer to ensure they are correct, otherwise they may hide type\nerrors."),(0,t.mdx)("h2",{id:"toc-inlining-declarations-in-regular-code"},"Inlining declarations in regular code"),(0,t.mdx)("p",null,"Sometimes it is useful to make declarations inline, as part of the source of\nan implementation file."),(0,t.mdx)("p",null,"In the following example, say you want to finish writing\nthe function ",(0,t.mdx)("inlineCode",{parentName:"p"},"fooList")," without bothering to mock up its dependencies first: a\nfunction ",(0,t.mdx)("inlineCode",{parentName:"p"},"foo")," that takes a ",(0,t.mdx)("inlineCode",{parentName:"p"},"number")," and returns a ",(0,t.mdx)("inlineCode",{parentName:"p"},"string"),", and a class\n",(0,t.mdx)("inlineCode",{parentName:"p"},"List")," that has a ",(0,t.mdx)("inlineCode",{parentName:"p"},"map")," method. You can do this by including declarations for\n",(0,t.mdx)("inlineCode",{parentName:"p"},"List")," and ",(0,t.mdx)("inlineCode",{parentName:"p"},"foo"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare class List {\n map(f: (x: T) => U): List;\n}\ndeclare function foo(n: number): string;\n\nfunction fooList(ns: List): List {\n return ns.map(foo);\n}\n")),(0,t.mdx)("p",null,"Just don't forget to replace the declarations with proper implementations."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6449.3e8636c3.js b/assets/js/6449.3e8636c3.js new file mode 100644 index 00000000000..3e5f833a366 --- /dev/null +++ b/assets/js/6449.3e8636c3.js @@ -0,0 +1,2 @@ +/*! For license information please see 6449.3e8636c3.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6449],{56449:(e,_,t)=>{t.r(_),t.d(_,{conf:()=>r,language:()=>i});var r={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},i={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["AES128","AES256","ALL","ALLOWOVERWRITE","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","AUTHORIZATION","AZ64","BACKUP","BETWEEN","BINARY","BLANKSASNULL","BOTH","BYTEDICT","BZIP2","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","CREDENTIALS","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURRENT_USER_ID","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DELTA","DELTA32K","DESC","DISABLE","DISTINCT","DO","ELSE","EMPTYASNULL","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","END","EXCEPT","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GRANT","GROUP","GZIP","HAVING","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LANGUAGE","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","LZO","LZOP","MINUS","MOSTLY16","MOSTLY32","MOSTLY8","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","OR","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RAW","READRATIO","RECOVER","REFERENCES","RESPECT","REJECTLOG","RESORT","RESTORE","RIGHT","SELECT","SESSION_USER","SIMILAR","SNAPSHOT","SOME","SYSDATE","SYSTEM","TABLE","TAG","TDES","TEXT255","TEXT32K","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","TRUNCATECOLUMNS","UNION","UNIQUE","USER","USING","VERBOSE","WALLET","WHEN","WHERE","WITH","WITHOUT"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["current_schema","current_schemas","has_database_privilege","has_schema_privilege","has_table_privilege","age","current_time","current_timestamp","localtime","isfinite","now","ascii","get_bit","get_byte","set_bit","set_byte","to_ascii","approximate percentile_disc","avg","count","listagg","max","median","min","percentile_cont","stddev_samp","stddev_pop","sum","var_samp","var_pop","bit_and","bit_or","bool_and","bool_or","cume_dist","first_value","lag","last_value","lead","nth_value","ratio_to_report","dense_rank","ntile","percent_rank","rank","row_number","case","coalesce","decode","greatest","least","nvl","nvl2","nullif","add_months","at time zone","convert_timezone","current_date","date_cmp","date_cmp_timestamp","date_cmp_timestamptz","date_part_year","dateadd","datediff","date_part","date_trunc","extract","getdate","interval_cmp","last_day","months_between","next_day","sysdate","timeofday","timestamp_cmp","timestamp_cmp_date","timestamp_cmp_timestamptz","timestamptz_cmp","timestamptz_cmp_date","timestamptz_cmp_timestamp","timezone","to_timestamp","trunc","abs","acos","asin","atan","atan2","cbrt","ceil","ceiling","checksum","cos","cot","degrees","dexp","dlog1","dlog10","exp","floor","ln","log","mod","pi","power","radians","random","round","sin","sign","sqrt","tan","to_hex","bpcharcmp","btrim","bttext_pattern_cmp","char_length","character_length","charindex","chr","concat","crc32","func_sha1","initcap","left and rights","len","length","lower","lpad and rpads","ltrim","md5","octet_length","position","quote_ident","quote_literal","regexp_count","regexp_instr","regexp_replace","regexp_substr","repeat","replace","replicate","reverse","rtrim","split_part","strpos","strtol","substring","textlen","translate","trim","upper","cast","convert","to_char","to_date","to_number","json_array_length","json_extract_array_element_text","json_extract_path_text","current_setting","pg_cancel_backend","pg_terminate_backend","set_config","current_database","current_user","current_user_id","pg_backend_pid","pg_last_copy_count","pg_last_copy_id","pg_last_query_id","pg_last_unload_count","session_user","slice_num","user","version","abbrev","acosd","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","asind","atan2d","atand","bit","bit_length","bound_box","box","brin_summarize_new_values","broadcast","cardinality","center","circle","clock_timestamp","col_description","concat_ws","convert_from","convert_to","corr","cosd","cotd","covar_pop","covar_samp","current_catalog","current_query","current_role","currval","cursor_to_xml","diameter","div","encode","enum_first","enum_last","enum_range","every","family","format","format_type","generate_series","generate_subscripts","get_current_ts_config","gin_clean_pending_list","grouping","has_any_column_privilege","has_column_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_sequence_privilege","has_server_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","isclosed","isempty","isopen","json_agg","json_object","json_object_agg","json_populate_record","json_populate_recordset","json_to_record","json_to_recordset","jsonb_agg","jsonb_object_agg","justify_days","justify_hours","justify_interval","lastval","left","line","localtimestamp","lower_inc","lower_inf","lpad","lseg","make_date","make_interval","make_time","make_timestamp","make_timestamptz","masklen","mode","netmask","network","nextval","npoints","num_nonnulls","num_nulls","numnode","obj_description","overlay","parse_ident","path","pclose","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backup_start_time","pg_blocking_pids","pg_client_encoding","pg_collation_is_visible","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_xlog_replay_paused","pg_last_committed_xact","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_dir","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_postmaster_start_time","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_rotate_logfile","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_start_backup","pg_stat_file","pg_stop_backup","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_xact_commit_timestamp","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","plainto_tsquery","point","polygon","popen","pqserverversion","query_to_xml","querytree","quote_nullable","radius","range_merge","regexp_matches","regexp_split_to_array","regexp_split_to_table","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","right","row_security_active","row_to_json","rpad","scale","set_masklen","setseed","setval","setweight","shobj_description","sind","sprintf","statement_timestamp","stddev","string_agg","string_to_array","strip","substr","table_to_xml","table_to_xml_and_xmlschema","tand","text","to_json","to_regclass","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_tsquery","to_tsvector","transaction_timestamp","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_visible_in_snapshot","unnest","upper_inc","upper_inf","variance","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/assets/js/6449.3e8636c3.js.LICENSE.txt b/assets/js/6449.3e8636c3.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6449.3e8636c3.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6449.fbe95a4a.js b/assets/js/6449.fbe95a4a.js new file mode 100644 index 00000000000..87363036f19 --- /dev/null +++ b/assets/js/6449.fbe95a4a.js @@ -0,0 +1,825 @@ +"use strict"; +exports.id = 6449; +exports.ids = [6449]; +exports.modules = { + +/***/ 56449: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/redshift/redshift.ts +var conf = { + comments: { + lineComment: "--", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".sql", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "AES128", + "AES256", + "ALL", + "ALLOWOVERWRITE", + "ANALYSE", + "ANALYZE", + "AND", + "ANY", + "ARRAY", + "AS", + "ASC", + "AUTHORIZATION", + "AZ64", + "BACKUP", + "BETWEEN", + "BINARY", + "BLANKSASNULL", + "BOTH", + "BYTEDICT", + "BZIP2", + "CASE", + "CAST", + "CHECK", + "COLLATE", + "COLUMN", + "CONSTRAINT", + "CREATE", + "CREDENTIALS", + "CROSS", + "CURRENT_DATE", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "CURRENT_USER_ID", + "DEFAULT", + "DEFERRABLE", + "DEFLATE", + "DEFRAG", + "DELTA", + "DELTA32K", + "DESC", + "DISABLE", + "DISTINCT", + "DO", + "ELSE", + "EMPTYASNULL", + "ENABLE", + "ENCODE", + "ENCRYPT", + "ENCRYPTION", + "END", + "EXCEPT", + "EXPLICIT", + "FALSE", + "FOR", + "FOREIGN", + "FREEZE", + "FROM", + "FULL", + "GLOBALDICT256", + "GLOBALDICT64K", + "GRANT", + "GROUP", + "GZIP", + "HAVING", + "IDENTITY", + "IGNORE", + "ILIKE", + "IN", + "INITIALLY", + "INNER", + "INTERSECT", + "INTO", + "IS", + "ISNULL", + "JOIN", + "LANGUAGE", + "LEADING", + "LEFT", + "LIKE", + "LIMIT", + "LOCALTIME", + "LOCALTIMESTAMP", + "LUN", + "LUNS", + "LZO", + "LZOP", + "MINUS", + "MOSTLY16", + "MOSTLY32", + "MOSTLY8", + "NATURAL", + "NEW", + "NOT", + "NOTNULL", + "NULL", + "NULLS", + "OFF", + "OFFLINE", + "OFFSET", + "OID", + "OLD", + "ON", + "ONLY", + "OPEN", + "OR", + "ORDER", + "OUTER", + "OVERLAPS", + "PARALLEL", + "PARTITION", + "PERCENT", + "PERMISSIONS", + "PLACING", + "PRIMARY", + "RAW", + "READRATIO", + "RECOVER", + "REFERENCES", + "RESPECT", + "REJECTLOG", + "RESORT", + "RESTORE", + "RIGHT", + "SELECT", + "SESSION_USER", + "SIMILAR", + "SNAPSHOT", + "SOME", + "SYSDATE", + "SYSTEM", + "TABLE", + "TAG", + "TDES", + "TEXT255", + "TEXT32K", + "THEN", + "TIMESTAMP", + "TO", + "TOP", + "TRAILING", + "TRUE", + "TRUNCATECOLUMNS", + "UNION", + "UNIQUE", + "USER", + "USING", + "VERBOSE", + "WALLET", + "WHEN", + "WHERE", + "WITH", + "WITHOUT" + ], + operators: [ + "AND", + "BETWEEN", + "IN", + "LIKE", + "NOT", + "OR", + "IS", + "NULL", + "INTERSECT", + "UNION", + "INNER", + "JOIN", + "LEFT", + "OUTER", + "RIGHT" + ], + builtinFunctions: [ + "current_schema", + "current_schemas", + "has_database_privilege", + "has_schema_privilege", + "has_table_privilege", + "age", + "current_time", + "current_timestamp", + "localtime", + "isfinite", + "now", + "ascii", + "get_bit", + "get_byte", + "set_bit", + "set_byte", + "to_ascii", + "approximate percentile_disc", + "avg", + "count", + "listagg", + "max", + "median", + "min", + "percentile_cont", + "stddev_samp", + "stddev_pop", + "sum", + "var_samp", + "var_pop", + "bit_and", + "bit_or", + "bool_and", + "bool_or", + "cume_dist", + "first_value", + "lag", + "last_value", + "lead", + "nth_value", + "ratio_to_report", + "dense_rank", + "ntile", + "percent_rank", + "rank", + "row_number", + "case", + "coalesce", + "decode", + "greatest", + "least", + "nvl", + "nvl2", + "nullif", + "add_months", + "at time zone", + "convert_timezone", + "current_date", + "date_cmp", + "date_cmp_timestamp", + "date_cmp_timestamptz", + "date_part_year", + "dateadd", + "datediff", + "date_part", + "date_trunc", + "extract", + "getdate", + "interval_cmp", + "last_day", + "months_between", + "next_day", + "sysdate", + "timeofday", + "timestamp_cmp", + "timestamp_cmp_date", + "timestamp_cmp_timestamptz", + "timestamptz_cmp", + "timestamptz_cmp_date", + "timestamptz_cmp_timestamp", + "timezone", + "to_timestamp", + "trunc", + "abs", + "acos", + "asin", + "atan", + "atan2", + "cbrt", + "ceil", + "ceiling", + "checksum", + "cos", + "cot", + "degrees", + "dexp", + "dlog1", + "dlog10", + "exp", + "floor", + "ln", + "log", + "mod", + "pi", + "power", + "radians", + "random", + "round", + "sin", + "sign", + "sqrt", + "tan", + "to_hex", + "bpcharcmp", + "btrim", + "bttext_pattern_cmp", + "char_length", + "character_length", + "charindex", + "chr", + "concat", + "crc32", + "func_sha1", + "initcap", + "left and rights", + "len", + "length", + "lower", + "lpad and rpads", + "ltrim", + "md5", + "octet_length", + "position", + "quote_ident", + "quote_literal", + "regexp_count", + "regexp_instr", + "regexp_replace", + "regexp_substr", + "repeat", + "replace", + "replicate", + "reverse", + "rtrim", + "split_part", + "strpos", + "strtol", + "substring", + "textlen", + "translate", + "trim", + "upper", + "cast", + "convert", + "to_char", + "to_date", + "to_number", + "json_array_length", + "json_extract_array_element_text", + "json_extract_path_text", + "current_setting", + "pg_cancel_backend", + "pg_terminate_backend", + "set_config", + "current_database", + "current_user", + "current_user_id", + "pg_backend_pid", + "pg_last_copy_count", + "pg_last_copy_id", + "pg_last_query_id", + "pg_last_unload_count", + "session_user", + "slice_num", + "user", + "version", + "abbrev", + "acosd", + "any", + "area", + "array_agg", + "array_append", + "array_cat", + "array_dims", + "array_fill", + "array_length", + "array_lower", + "array_ndims", + "array_position", + "array_positions", + "array_prepend", + "array_remove", + "array_replace", + "array_to_json", + "array_to_string", + "array_to_tsvector", + "array_upper", + "asind", + "atan2d", + "atand", + "bit", + "bit_length", + "bound_box", + "box", + "brin_summarize_new_values", + "broadcast", + "cardinality", + "center", + "circle", + "clock_timestamp", + "col_description", + "concat_ws", + "convert_from", + "convert_to", + "corr", + "cosd", + "cotd", + "covar_pop", + "covar_samp", + "current_catalog", + "current_query", + "current_role", + "currval", + "cursor_to_xml", + "diameter", + "div", + "encode", + "enum_first", + "enum_last", + "enum_range", + "every", + "family", + "format", + "format_type", + "generate_series", + "generate_subscripts", + "get_current_ts_config", + "gin_clean_pending_list", + "grouping", + "has_any_column_privilege", + "has_column_privilege", + "has_foreign_data_wrapper_privilege", + "has_function_privilege", + "has_language_privilege", + "has_sequence_privilege", + "has_server_privilege", + "has_tablespace_privilege", + "has_type_privilege", + "height", + "host", + "hostmask", + "inet_client_addr", + "inet_client_port", + "inet_merge", + "inet_same_family", + "inet_server_addr", + "inet_server_port", + "isclosed", + "isempty", + "isopen", + "json_agg", + "json_object", + "json_object_agg", + "json_populate_record", + "json_populate_recordset", + "json_to_record", + "json_to_recordset", + "jsonb_agg", + "jsonb_object_agg", + "justify_days", + "justify_hours", + "justify_interval", + "lastval", + "left", + "line", + "localtimestamp", + "lower_inc", + "lower_inf", + "lpad", + "lseg", + "make_date", + "make_interval", + "make_time", + "make_timestamp", + "make_timestamptz", + "masklen", + "mode", + "netmask", + "network", + "nextval", + "npoints", + "num_nonnulls", + "num_nulls", + "numnode", + "obj_description", + "overlay", + "parse_ident", + "path", + "pclose", + "percentile_disc", + "pg_advisory_lock", + "pg_advisory_lock_shared", + "pg_advisory_unlock", + "pg_advisory_unlock_all", + "pg_advisory_unlock_shared", + "pg_advisory_xact_lock", + "pg_advisory_xact_lock_shared", + "pg_backup_start_time", + "pg_blocking_pids", + "pg_client_encoding", + "pg_collation_is_visible", + "pg_column_size", + "pg_conf_load_time", + "pg_control_checkpoint", + "pg_control_init", + "pg_control_recovery", + "pg_control_system", + "pg_conversion_is_visible", + "pg_create_logical_replication_slot", + "pg_create_physical_replication_slot", + "pg_create_restore_point", + "pg_current_xlog_flush_location", + "pg_current_xlog_insert_location", + "pg_current_xlog_location", + "pg_database_size", + "pg_describe_object", + "pg_drop_replication_slot", + "pg_export_snapshot", + "pg_filenode_relation", + "pg_function_is_visible", + "pg_get_constraintdef", + "pg_get_expr", + "pg_get_function_arguments", + "pg_get_function_identity_arguments", + "pg_get_function_result", + "pg_get_functiondef", + "pg_get_indexdef", + "pg_get_keywords", + "pg_get_object_address", + "pg_get_owned_sequence", + "pg_get_ruledef", + "pg_get_serial_sequence", + "pg_get_triggerdef", + "pg_get_userbyid", + "pg_get_viewdef", + "pg_has_role", + "pg_identify_object", + "pg_identify_object_as_address", + "pg_index_column_has_property", + "pg_index_has_property", + "pg_indexam_has_property", + "pg_indexes_size", + "pg_is_in_backup", + "pg_is_in_recovery", + "pg_is_other_temp_schema", + "pg_is_xlog_replay_paused", + "pg_last_committed_xact", + "pg_last_xact_replay_timestamp", + "pg_last_xlog_receive_location", + "pg_last_xlog_replay_location", + "pg_listening_channels", + "pg_logical_emit_message", + "pg_logical_slot_get_binary_changes", + "pg_logical_slot_get_changes", + "pg_logical_slot_peek_binary_changes", + "pg_logical_slot_peek_changes", + "pg_ls_dir", + "pg_my_temp_schema", + "pg_notification_queue_usage", + "pg_opclass_is_visible", + "pg_operator_is_visible", + "pg_opfamily_is_visible", + "pg_options_to_table", + "pg_postmaster_start_time", + "pg_read_binary_file", + "pg_read_file", + "pg_relation_filenode", + "pg_relation_filepath", + "pg_relation_size", + "pg_reload_conf", + "pg_replication_origin_create", + "pg_replication_origin_drop", + "pg_replication_origin_oid", + "pg_replication_origin_progress", + "pg_replication_origin_session_is_setup", + "pg_replication_origin_session_progress", + "pg_replication_origin_session_reset", + "pg_replication_origin_session_setup", + "pg_replication_origin_xact_reset", + "pg_replication_origin_xact_setup", + "pg_rotate_logfile", + "pg_size_bytes", + "pg_size_pretty", + "pg_sleep", + "pg_sleep_for", + "pg_sleep_until", + "pg_start_backup", + "pg_stat_file", + "pg_stop_backup", + "pg_switch_xlog", + "pg_table_is_visible", + "pg_table_size", + "pg_tablespace_databases", + "pg_tablespace_location", + "pg_tablespace_size", + "pg_total_relation_size", + "pg_trigger_depth", + "pg_try_advisory_lock", + "pg_try_advisory_lock_shared", + "pg_try_advisory_xact_lock", + "pg_try_advisory_xact_lock_shared", + "pg_ts_config_is_visible", + "pg_ts_dict_is_visible", + "pg_ts_parser_is_visible", + "pg_ts_template_is_visible", + "pg_type_is_visible", + "pg_typeof", + "pg_xact_commit_timestamp", + "pg_xlog_location_diff", + "pg_xlog_replay_pause", + "pg_xlog_replay_resume", + "pg_xlogfile_name", + "pg_xlogfile_name_offset", + "phraseto_tsquery", + "plainto_tsquery", + "point", + "polygon", + "popen", + "pqserverversion", + "query_to_xml", + "querytree", + "quote_nullable", + "radius", + "range_merge", + "regexp_matches", + "regexp_split_to_array", + "regexp_split_to_table", + "regr_avgx", + "regr_avgy", + "regr_count", + "regr_intercept", + "regr_r2", + "regr_slope", + "regr_sxx", + "regr_sxy", + "regr_syy", + "right", + "row_security_active", + "row_to_json", + "rpad", + "scale", + "set_masklen", + "setseed", + "setval", + "setweight", + "shobj_description", + "sind", + "sprintf", + "statement_timestamp", + "stddev", + "string_agg", + "string_to_array", + "strip", + "substr", + "table_to_xml", + "table_to_xml_and_xmlschema", + "tand", + "text", + "to_json", + "to_regclass", + "to_regnamespace", + "to_regoper", + "to_regoperator", + "to_regproc", + "to_regprocedure", + "to_regrole", + "to_regtype", + "to_tsquery", + "to_tsvector", + "transaction_timestamp", + "ts_debug", + "ts_delete", + "ts_filter", + "ts_headline", + "ts_lexize", + "ts_parse", + "ts_rank", + "ts_rank_cd", + "ts_rewrite", + "ts_stat", + "ts_token_type", + "tsquery_phrase", + "tsvector_to_array", + "tsvector_update_trigger", + "tsvector_update_trigger_column", + "txid_current", + "txid_current_snapshot", + "txid_snapshot_xip", + "txid_snapshot_xmax", + "txid_snapshot_xmin", + "txid_visible_in_snapshot", + "unnest", + "upper_inc", + "upper_inf", + "variance", + "width", + "width_bucket", + "xml_is_well_formed", + "xml_is_well_formed_content", + "xml_is_well_formed_document", + "xmlagg", + "xmlcomment", + "xmlconcat", + "xmlelement", + "xmlexists", + "xmlforest", + "xmlparse", + "xmlpi", + "xmlroot", + "xmlserialize", + "xpath", + "xpath_exists" + ], + builtinVariables: [], + pseudoColumns: [], + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@pseudoColumns" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@complexIdentifiers" }, + { include: "@scopes" }, + [/[;,.]/, "delimiter"], + [/[()]/, "@brackets"], + [ + /[\w@#$]+/, + { + cases: { + "@keywords": "keyword", + "@operators": "operator", + "@builtinVariables": "predefined", + "@builtinFunctions": "predefined", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + [/--+.*/, "comment"], + [/\/\*/, { token: "comment.quote", next: "@comment" }] + ], + comment: [ + [/[^*/]+/, "comment"], + [/\*\//, { token: "comment.quote", next: "@pop" }], + [/./, "comment"] + ], + pseudoColumns: [ + [ + /[$][A-Za-z_][\w@#$]*/, + { + cases: { + "@pseudoColumns": "predefined", + "@default": "identifier" + } + } + ] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [[/'/, { token: "string", next: "@string" }]], + string: [ + [/[^']+/, "string"], + [/''/, "string"], + [/'/, { token: "string", next: "@pop" }] + ], + complexIdentifiers: [[/"/, { token: "identifier.quote", next: "@quotedIdentifier" }]], + quotedIdentifier: [ + [/[^"]+/, "identifier"], + [/""/, "identifier"], + [/"/, { token: "identifier.quote", next: "@pop" }] + ], + scopes: [] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6470.33bec0d3.js b/assets/js/6470.33bec0d3.js new file mode 100644 index 00000000000..9852725e25a --- /dev/null +++ b/assets/js/6470.33bec0d3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6470],{46470:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>n,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=o(87462),i=(o(67294),o(3905));const a={title:"Even Better Support for React in Flow","short-title":"Even Better React Support",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/even-better-support-for-react-in-flow-25b0a3485627"},n=void 0,l={permalink:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow",source:"@site/blog/2017-08-16-Even-Better-Support-for-React-in-Flow.md",title:"Even Better Support for React in Flow",description:"The first version of Flow support for React was a magical implementation of",date:"2017-08-16T00:00:00.000Z",formattedDate:"August 16, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Caleb Meredith"}],frontMatter:{title:"Even Better Support for React in Flow","short-title":"Even Better React Support",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/even-better-support-for-react-in-flow-25b0a3485627"},prevItem:{title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases",permalink:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"},nextItem:{title:"Linting in Flow",permalink:"/blog/2017/08/04/Linting-in-Flow"}},s={authorsImageUrls:[void 0]},p=[],c={toc:p};function m(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,r.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"The first version of Flow support for React was a magical implementation of\n",(0,i.mdx)("inlineCode",{parentName:"p"},"React.createClass()"),". Since then, React has evolved significantly. It is time\nto rethink how Flow models React."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6479.5de341cd.js b/assets/js/6479.5de341cd.js new file mode 100644 index 00000000000..a3a7fda0f8e --- /dev/null +++ b/assets/js/6479.5de341cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6479],{56479:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>n,metadata:()=>s,toc:()=>p});var a=o(87462),r=(o(67294),o(3905));const n={title:"Typing Generators with Flow","short-title":"Generators",author:"Sam Goldman",hide_table_of_contents:!0},i=void 0,s={permalink:"/blog/2015/11/09/Generators",source:"@site/blog/2015-11-09-Generators.md",title:"Typing Generators with Flow",description:"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.",date:"2015-11-09T00:00:00.000Z",formattedDate:"November 9, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"Typing Generators with Flow","short-title":"Generators",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Version-0.19.0",permalink:"/blog/2015/12/01/Version-0.19.0"},nextItem:{title:"Version-0.17.0",permalink:"/blog/2015/10/07/Version-0.17.0"}},l={authorsImageUrls:[void 0]},p=[],u={toc:p};function c(e){let{components:t,...o}=e;return(0,r.mdx)("wrapper",(0,a.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an ",(0,r.mdx)("a",{parentName:"p",href:"https://github.com/tc39/ecmascript-asyncawait"},"upcoming feature")," already supported by Flow."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6489.897c8385.js b/assets/js/6489.897c8385.js new file mode 100644 index 00000000000..6049687cd4e --- /dev/null +++ b/assets/js/6489.897c8385.js @@ -0,0 +1,2 @@ +/*! For license information please see 6489.897c8385.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6489],{66489:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""',notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""'},{open:'"',close:'"'}],folding:{offSide:!0}},s={defaultToken:"invalid",tokenPostfix:".gql",keywords:["null","true","false","query","mutation","subscription","extend","schema","directive","scalar","type","interface","union","enum","input","implements","fragment","on"],typeKeywords:["Int","Float","String","Boolean","ID"],directiveLocations:["SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION"],operators:["=","!","?",":","&","|"],symbols:/[=!?:&|]+/,escapes:/\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\w$]*/,{cases:{"@keywords":"keyword","@default":"key.identifier"}}],[/[$][\w$]*/,{cases:{"@keywords":"keyword","@default":"argument.identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@typeKeywords":"keyword","@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,{token:"annotation",log:"annotation token: $0"}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"""/,{token:"string",next:"@mlstring",nextEmbedded:"markdown"}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],mlstring:[[/[^"]+/,"string"],['"""',{token:"string",next:"@pop",nextEmbedded:"@pop"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/#.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/6489.897c8385.js.LICENSE.txt b/assets/js/6489.897c8385.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6489.897c8385.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6489.c01d9090.js b/assets/js/6489.c01d9090.js new file mode 100644 index 00000000000..7cdded9c864 --- /dev/null +++ b/assets/js/6489.c01d9090.js @@ -0,0 +1,160 @@ +"use strict"; +exports.id = 6489; +exports.ids = [6489]; +exports.modules = { + +/***/ 66489: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/graphql/graphql.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"""', close: '"""', notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"""', close: '"""' }, + { open: '"', close: '"' } + ], + folding: { + offSide: true + } +}; +var language = { + defaultToken: "invalid", + tokenPostfix: ".gql", + keywords: [ + "null", + "true", + "false", + "query", + "mutation", + "subscription", + "extend", + "schema", + "directive", + "scalar", + "type", + "interface", + "union", + "enum", + "input", + "implements", + "fragment", + "on" + ], + typeKeywords: ["Int", "Float", "String", "Boolean", "ID"], + directiveLocations: [ + "SCHEMA", + "SCALAR", + "OBJECT", + "FIELD_DEFINITION", + "ARGUMENT_DEFINITION", + "INTERFACE", + "UNION", + "ENUM", + "ENUM_VALUE", + "INPUT_OBJECT", + "INPUT_FIELD_DEFINITION", + "QUERY", + "MUTATION", + "SUBSCRIPTION", + "FIELD", + "FRAGMENT_DEFINITION", + "FRAGMENT_SPREAD", + "INLINE_FRAGMENT", + "VARIABLE_DEFINITION" + ], + operators: ["=", "!", "?", ":", "&", "|"], + symbols: /[=!?:&|]+/, + escapes: /\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/, + tokenizer: { + root: [ + [ + /[a-z_][\w$]*/, + { + cases: { + "@keywords": "keyword", + "@default": "key.identifier" + } + } + ], + [ + /[$][\w$]*/, + { + cases: { + "@keywords": "keyword", + "@default": "argument.identifier" + } + } + ], + [ + /[A-Z][\w\$]*/, + { + cases: { + "@typeKeywords": "keyword", + "@default": "type.identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, { cases: { "@operators": "operator", "@default": "" } }], + [/@\s*[a-zA-Z_\$][\w\$]*/, { token: "annotation", log: "annotation token: $0" }], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F]+/, "number.hex"], + [/\d+/, "number"], + [/[;,.]/, "delimiter"], + [/"""/, { token: "string", next: "@mlstring", nextEmbedded: "markdown" }], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, { token: "string.quote", bracket: "@open", next: "@string" }] + ], + mlstring: [ + [/[^"]+/, "string"], + ['"""', { token: "string", next: "@pop", nextEmbedded: "@pop" }] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/#.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/650.f276d9bc.js b/assets/js/650.f276d9bc.js new file mode 100644 index 00000000000..dddbc3f2bd4 --- /dev/null +++ b/assets/js/650.f276d9bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[650],{30650:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>u});var i=a(87462),o=(a(67294),a(3905));const n={title:"Opaque Type Aliases","short-title":"Opaque Type Aliases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/hiding-implementation-details-with-flows-new-opaque-type-aliases-feature-40e188c2a3f9"},s=void 0,l={permalink:"/blog/2017/07/27/Opaque-Types",source:"@site/blog/2017-07-27-Opaque-Types.md",title:"Opaque Type Aliases",description:"Do you ever wish that you could hide your implementation details away",date:"2017-07-27T00:00:00.000Z",formattedDate:"July 27, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Opaque Type Aliases","short-title":"Opaque Type Aliases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/hiding-implementation-details-with-flows-new-opaque-type-aliases-feature-40e188c2a3f9"},prevItem:{title:"Linting in Flow",permalink:"/blog/2017/08/04/Linting-in-Flow"},nextItem:{title:"Strict Checking of Function Call Arity",permalink:"/blog/2017/05/07/Strict-Function-Call-Arity"}},r={authorsImageUrls:[void 0]},u=[],p={toc:u};function m(e){let{components:t,...a}=e;return(0,o.mdx)("wrapper",(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Do you ever wish that you could hide your implementation details away\nfrom your users? Find out how opaque type aliases can get the job done!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6522.00dd2490.js b/assets/js/6522.00dd2490.js new file mode 100644 index 00000000000..f6b1f8a2109 --- /dev/null +++ b/assets/js/6522.00dd2490.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6522],{66522:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var a=t(87462),i=(t(67294),t(3905));t(45475);const o={title:"Annotation Requirement",slug:"/lang/annotation-requirement"},r=void 0,l={unversionedId:"lang/annotation-requirement",id:"lang/annotation-requirement",title:"Annotation Requirement",description:"Note: As of version 0.199 Flow uses Local Type Inference as its inference algorithm.",source:"@site/docs/lang/annotation-requirement.md",sourceDirName:"lang",slug:"/lang/annotation-requirement",permalink:"/en/docs/lang/annotation-requirement",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/annotation-requirement.md",tags:[],version:"current",frontMatter:{title:"Annotation Requirement",slug:"/lang/annotation-requirement"},sidebar:"docsSidebar",previous:{title:"File Signatures (Types-First)",permalink:"/en/docs/lang/types-first"},next:{title:"Getting Started",permalink:"/en/docs/react"}},s={},d=[{value:"Variable declarations",id:"variable-declarations",level:2},{value:"Function Parameters",id:"function-parameters",level:2},{value:"Contextual Typing",id:"toc-contextual-typing",level:2},{value:"Function Return Types",id:"toc-function-return-types",level:2},{value:"Generic Calls",id:"toc-generic-calls",level:2},{value:"Computing a Solution",id:"computing-a-solution",level:3},{value:"Errors during Polymorphic Calls",id:"errors-during-polymorphic-calls",level:3},{value:"Under-constrained Type Parameters",id:"under-constrained-type-parameters",level:4},{value:"Incompatibility Errors",id:"incompatibility-errors",level:4},{value:"Empty Array Literals",id:"toc-empty-array-literals",level:2}],m={toc:d};function p(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("blockquote",null,(0,i.mdx)("p",{parentName:"blockquote"},(0,i.mdx)("strong",{parentName:"p"},"Note:")," As of version 0.199 Flow uses ",(0,i.mdx)("a",{parentName:"p",href:"https://medium.com/flow-type/local-type-inference-for-flow-aaa65d071347"},"Local Type Inference")," as its inference algorithm.\nThe rules in this section reflect the main design features in this inference scheme.")),(0,i.mdx)("p",null,"Flow tries to avoid requiring type annotation for parts of programs where types can easily\nbe inferred from the immediate context of an expression, variable, parameter, etc."),(0,i.mdx)("h2",{id:"variable-declarations"},"Variable declarations"),(0,i.mdx)("p",null,"Take for example the following variable definition"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'const len = "abc".length;\n')),(0,i.mdx)("p",null,"All information necessary to infer the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"len")," is included in the initializer\n",(0,i.mdx)("inlineCode",{parentName:"p"},'"abc".length'),". Flow will first determine that ",(0,i.mdx)("inlineCode",{parentName:"p"},'"abc"')," is a string, and then that the\n",(0,i.mdx)("inlineCode",{parentName:"p"},"length")," property of a string is a number."),(0,i.mdx)("p",null,"The same logic can be applied for all ",(0,i.mdx)("inlineCode",{parentName:"p"},"const"),"-like initializations. Where things\nget a little more complicated is when variable initialization spans across multiple statements,\nfor example in"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'declare var maybeString: ?string;\n\nlet len;\nif (typeof maybeString === "string") {\n len = maybeString.length;\n} else {\n len = 0;\n}\n')),(0,i.mdx)("p",null,"Flow can still determine that ",(0,i.mdx)("inlineCode",{parentName:"p"},"len")," is a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),", but in order to do so it looks\nahead to multiple initializer statements. See section on ",(0,i.mdx)("a",{parentName:"p",href:"../variables"},"variable declarations"),"\nfor details on how various initializer patterns determine the type of a variable,\nand when an annotation on a variable declaration is necessary."),(0,i.mdx)("h2",{id:"function-parameters"},"Function Parameters"),(0,i.mdx)("p",null,'Unlike variable declarations, this kind of "lookahead" reasoning cannot be used to determine\nthe type of function parameters. Consider the function'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function getLength(x) {\n return x.length;\n}\n")),(0,i.mdx)("p",null,"There are many kinds of ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," on which we could access and return a ",(0,i.mdx)("inlineCode",{parentName:"p"},"length")," property:\nan object with a ",(0,i.mdx)("inlineCode",{parentName:"p"},"length")," property, or a string, just to name a few. If later on in\nthe program we had the following calls to ",(0,i.mdx)("inlineCode",{parentName:"p"},"getLength")),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'getLength("abc");\ngetLength({ length: 1 });\n')),(0,i.mdx)("p",null,"one possible inference would be that ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," is a ",(0,i.mdx)("inlineCode",{parentName:"p"},"string | { length: number }"),". What this implies,\nhowever, is that the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"getLength")," is determined by any part of the current\nprogram. This kind of global reasoning can lead to surprising action-at-a-distance\nbehavior, and so is avoided. Instead, Flow requires that function parameters are annotated. Failure to\nprovide such a type annotation manifests as a ",(0,i.mdx)("inlineCode",{parentName:"p"},"[missing-local-annot]")," error on the parameter ",(0,i.mdx)("inlineCode",{parentName:"p"},"x"),",\nand the body of the function is checked with ",(0,i.mdx)("inlineCode",{parentName:"p"},"x: any"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Missing an annotation on `x`. [missing-local-annot]"}]','[{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"Missing':!0,an:!0,annotation:!0,on:!0,"`x`.":!0,'[missing-local-annot]"}]':!0},"function getLength(x) {\n return x.length;\n}\n\nconst n = getLength(1); // no error since getLength's parameter type is 'any'\n")),(0,i.mdx)("p",null,"To fix this error, one can simply annotate ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," as"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function getLength(x: string) {\n return x.length;\n}\n")),(0,i.mdx)("p",null,"The same requirement holds for class methods"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":25,"endLine":3,"endColumn":25,"description":"Missing an annotation on `x`. [missing-local-annot]"}]','[{"startLine":3,"startColumn":25,"endLine":3,"endColumn":25,"description":"Missing':!0,an:!0,annotation:!0,on:!0,"`x`.":!0,'[missing-local-annot]"}]':!0},"class WrappedString {\n data: string;\n setStringNoAnnotation(x) {\n this.data = x;\n }\n setString(x: string) {\n this.data = x;\n }\n}\n")),(0,i.mdx)("h2",{id:"toc-contextual-typing"},"Contextual Typing"),(0,i.mdx)("p",null,"Function parameters do not always need to be explicitly annotated. In the case of a\ncallback function to a function call, the parameter type can easily\nbe inferred from the immediate context. Consider for example the following code"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const arr = [0, 1, 2];\nconst arrPlusOne = arr.find(x => x % 2 === 1);\n")),(0,i.mdx)("p",null,"Flow infers that the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"arr")," is ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array"),". Combining this with the builtin\ninformation for ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array.find"),", Flow can determine that the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"x => x % 2 + 1"),"\nneeds to be ",(0,i.mdx)("inlineCode",{parentName:"p"},"number => mixed"),". This type acts as a ",(0,i.mdx)("em",{parentName:"p"},"hint")," for Flow and provides enough\ninformation to determine the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," as ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("p",null,"Any attendant annotation can potentially act as a hint to a function parameter, for example"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const fn1: (x: number) => number = x => x + 1;\n")),(0,i.mdx)("p",null,"However, it is also possible that an annotation cannot be used as a function\nparameter hint:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"An annotation on `x` is required because Flow cannot infer its type from local context. [missing-local-annot]"}]','[{"startLine":1,"startColumn":20,"endLine":1,"endColumn":20,"description":"An':!0,annotation:!0,on:!0,"`x`":!0,is:!0,required:!0,because:!0,Flow:!0,cannot:!0,infer:!0,its:!0,type:!0,from:!0,local:!0,"context.":!0,'[missing-local-annot]"}]':!0},"const fn2: mixed = x => x + 1;\n")),(0,i.mdx)("p",null,"In this example the ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed")," type simply does not include enough information to\nextract a candidate type for ",(0,i.mdx)("inlineCode",{parentName:"p"},"x"),"."),(0,i.mdx)("p",null,"Flow can infer the types for unannotated parameters even when they are nested within\nother expressions like objects. For example in\nin"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":52,"endLine":1,"endColumn":52,"description":"Cannot cast `x` to string because number [1] is incompatible with string [2]. [incompatible-cast]"}]','[{"startLine":1,"startColumn":52,"endLine":1,"endColumn":52,"description":"Cannot':!0,cast:!0,"`x`":!0,to:!0,string:!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"const fn3: { f: (number) => void } = { f: (x) => {(x: string)} };\n")),(0,i.mdx)("p",null,"Flow will infer ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," as the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"x"),", and so the cast fails."),(0,i.mdx)("h2",{id:"toc-function-return-types"},"Function Return Types"),(0,i.mdx)("p",null,"Unlike function parameters, a function's return type does not need to be annotated in general.\nSo the above definition of ",(0,i.mdx)("inlineCode",{parentName:"p"},"getLength")," won't raise any Flow errors."),(0,i.mdx)("p",null,"There are, however, a couple of notable exceptions to this rule. The first one is\nclass methods. If we included to the ",(0,i.mdx)("inlineCode",{parentName:"p"},"WrappedString")," class a ",(0,i.mdx)("inlineCode",{parentName:"p"},"getString")," method\nthat returns the internal ",(0,i.mdx)("inlineCode",{parentName:"p"},"data")," property:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":23,"endLine":3,"endColumn":22,"description":"Missing an annotation on return. [missing-local-annot]"}]','[{"startLine":3,"startColumn":23,"endLine":3,"endColumn":22,"description":"Missing':!0,an:!0,annotation:!0,on:!0,"return.":!0,'[missing-local-annot]"}]':!0},"class WrappedString {\n data: string;\n getString(x: string) {\n return this.data;\n }\n}\n")),(0,i.mdx)("p",null,"Flow would complain that ",(0,i.mdx)("inlineCode",{parentName:"p"},"getString")," is missing an annotation on the return."),(0,i.mdx)("p",null,"The second exception is recursive definitions. A trivial example of this would be"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":1,"endLine":1,"endColumn":14,"description":"The following definitions recursively depend on each other, and Flow cannot compute their types:\\n - function [1] depends on other definition [2]\\n - function [3] depends on other definition [4]\\nPlease add type annotations to these definitions [5] [6] [definition-cycle]"}]','[{"startLine":1,"startColumn":1,"endLine":1,"endColumn":14,"description":"The':!0,following:!0,definitions:!0,recursively:!0,depend:!0,on:!0,each:!0,"other,":!0,and:!0,Flow:!0,cannot:!0,compute:!0,their:!0,"types:\\n":!0,"-":!0,function:!0,"[1]":!0,depends:!0,other:!0,definition:!0,"[2]\\n":!0,"[3]":!0,"[4]\\nPlease":!0,add:!0,type:!0,annotations:!0,to:!0,these:!0,"[5]":!0,"[6]":!0,'[definition-cycle]"}]':!0},"function foo() {\n return bar();\n}\n\nfunction bar() {\n return foo();\n}\n")),(0,i.mdx)("p",null,"The above code raises a ",(0,i.mdx)("inlineCode",{parentName:"p"},"[definition-cycle]")," error, which points to the two locations\nthat form a dependency cycle, the two missing return annotations. Adding\na return annotation to either function would resolve the issue."),(0,i.mdx)("p",null,"Effectively, the requirement on an annotation for method returns is a special-case\nof the recursive definition restriction. The recursion is possible through access on\n",(0,i.mdx)("inlineCode",{parentName:"p"},"this"),"."),(0,i.mdx)("h2",{id:"toc-generic-calls"},"Generic Calls"),(0,i.mdx)("p",null,"In calls to ",(0,i.mdx)("a",{parentName:"p",href:"../../types/generics"},"generic functions")," the type of the result may\ndepend on the types of the values passed in as arguments.\nThis section discusses how this result is computed, when type arguments are not\nexplicitly provided."),(0,i.mdx)("p",null,"Consider for example the definition"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"declare function map(\n f: (T) => U,\n array: $ReadOnlyArray,\n): Array;\n")),(0,i.mdx)("p",null,"and a potential call with arguments ",(0,i.mdx)("inlineCode",{parentName:"p"},"x => x + 1")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"[1, 2, 3]"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"map(x => x + 1, [1, 2, 3]);\n")),(0,i.mdx)("p",null,"Here Flow infers that the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," is ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("p",null,"Some other common examples of generic calls are calling the constructor of the generic\n",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/82f88520f2bfe0fa13748b5ead711432941f4cb9/lib/core.js#L1799-L1801"},(0,i.mdx)("inlineCode",{parentName:"a"},"Set")," class"),"\nor calling ",(0,i.mdx)("inlineCode",{parentName:"p"},"useState")," from the React library:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const set = new Set([1, 2, 3]);\n\nimport { useState } from 'react';\nconst [num, setNum] = useState(42);\n")),(0,i.mdx)("p",null,"Flow here infers that the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"set")," is ",(0,i.mdx)("inlineCode",{parentName:"p"},"Set"),", and that ",(0,i.mdx)("inlineCode",{parentName:"p"},"num")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"setNum"),"\nare ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"(number) => void"),", respectively."),(0,i.mdx)("h3",{id:"computing-a-solution"},"Computing a Solution"),(0,i.mdx)("p",null,"Computing the result of a generic call amounts to:"),(0,i.mdx)("ol",null,(0,i.mdx)("li",{parentName:"ol"},"coming up with a solution for ",(0,i.mdx)("inlineCode",{parentName:"li"},"T")," and ",(0,i.mdx)("inlineCode",{parentName:"li"},"U")," that does not contain generic parts,"),(0,i.mdx)("li",{parentName:"ol"},"replacing ",(0,i.mdx)("inlineCode",{parentName:"li"},"T")," and ",(0,i.mdx)("inlineCode",{parentName:"li"},"U")," with the solution in the signature of ",(0,i.mdx)("inlineCode",{parentName:"li"},"map"),", and"),(0,i.mdx)("li",{parentName:"ol"},"performing a call to this new signature of ",(0,i.mdx)("inlineCode",{parentName:"li"},"map"),".")),(0,i.mdx)("p",null,"This process is designed with two goals in mind:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("em",{parentName:"li"},"Soundness"),". The results need to lead to a correct call when we reach step (3)."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("em",{parentName:"li"},"Completeness"),". The types Flow produces need to be as precise and informative as possible,\nto ensure that other parts of the program will be successfully checked.")),(0,i.mdx)("p",null,"Let's see how these two goals come into play in the ",(0,i.mdx)("inlineCode",{parentName:"p"},"map")," example from above."),(0,i.mdx)("p",null,"Flow detects that ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," needs to be compatible with the type of ",(0,i.mdx)("inlineCode",{parentName:"p"},"[1, 2, 3]"),".\nIt can therefore infer that ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," is ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("p",null,"With the knowledge of ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," it can now successfully check ",(0,i.mdx)("inlineCode",{parentName:"p"},"x => x + 1"),". The parameter ",(0,i.mdx)("inlineCode",{parentName:"p"},"x"),"\nis contextually typed as ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),", and thus the result ",(0,i.mdx)("inlineCode",{parentName:"p"},"x + 1")," is also a number.\nThis final constraint allows us to compute ",(0,i.mdx)("inlineCode",{parentName:"p"},"U")," as a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," too."),(0,i.mdx)("p",null,"The new signature of ",(0,i.mdx)("inlineCode",{parentName:"p"},"map")," after replacing the generic parts with the above solution\nis"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"(f: (number) => number, array: $ReadOnlyArray) => Array\n")),(0,i.mdx)("p",null,"It is easy to see that the call would be successfully checked."),(0,i.mdx)("h3",{id:"errors-during-polymorphic-calls"},"Errors during Polymorphic Calls"),(0,i.mdx)("p",null,"If the above process goes on smoothly, you should not be seeing any errors associated with the call.\nWhat happens though when this process fails?"),(0,i.mdx)("p",null,"There are two reasons why this process could fail:"),(0,i.mdx)("h4",{id:"under-constrained-type-parameters"},"Under-constrained Type Parameters"),(0,i.mdx)("p",null,"There are cases where Flow might not have enough information to decide the type of a type parameter.\nLet's examine again a call to the builtin generic\n",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/82f88520f2bfe0fa13748b5ead711432941f4cb9/lib/core.js#L1799-L1801"},(0,i.mdx)("inlineCode",{parentName:"a"},"Set")," class"),"\nconstructor, this time without passing any arguments:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":17,"endLine":1,"endColumn":19,"description":"Cannot call `Set` because `T` [1] is underconstrained by new `Set` [2]. Either add explicit type arguments or cast the expression to your expected type. [underconstrained-implicit-instantiation]"}]','[{"startLine":1,"startColumn":17,"endLine":1,"endColumn":19,"description":"Cannot':!0,call:!0,"`Set`":!0,because:!0,"`T`":!0,"[1]":!0,is:!0,underconstrained:!0,by:!0,new:!0,"[2].":!0,Either:!0,add:!0,explicit:!0,type:!0,arguments:!0,or:!0,cast:!0,the:!0,expression:!0,to:!0,your:!0,expected:!0,"type.":!0,'[underconstrained-implicit-instantiation]"}]':!0},'const set = new Set();\nset.add("abc");\n')),(0,i.mdx)("p",null,"During the call to ",(0,i.mdx)("inlineCode",{parentName:"p"},"new Set"),", we are not providing enough information for Flow to\ndetermine the type for ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),", even though the subsequent call to ",(0,i.mdx)("inlineCode",{parentName:"p"},"set.add")," clearly\nimplies that ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," will be a string. Remember that inference of type arguments is\nlocal to the call, so Flow will not attempt to look ahead in later statements\nto determine this."),(0,i.mdx)("p",null,"In the absence of information, Flow would be at liberty to infer ",(0,i.mdx)("em",{parentName:"p"},"any")," type\nas ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),": ",(0,i.mdx)("inlineCode",{parentName:"p"},"any"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"empty"),", etc.\nThis kind of decision is undesirable, as it can lead to surprising results.\nFor example, if we silently decided on ",(0,i.mdx)("inlineCode",{parentName:"p"},"Set")," then the call to ",(0,i.mdx)("inlineCode",{parentName:"p"},'set.add("abc")')," would\nfail with an incompatibility between ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"empty"),", without a clear indication\nof where the ",(0,i.mdx)("inlineCode",{parentName:"p"},"empty")," came from."),(0,i.mdx)("p",null,"So instead, in situations like this, you'll get an ",(0,i.mdx)("inlineCode",{parentName:"p"},"[underconstrained-implicit-instantiation]")," error.\nThe way to fix this error is by adding a type annotation. There a few potential ways to do this:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("p",{parentName:"li"},"Add an annotation at the call-site in one of two ways:"),(0,i.mdx)("ul",{parentName:"li"},(0,i.mdx)("li",{parentName:"ul"},"an explicit type argument",(0,i.mdx)("pre",{parentName:"li"},(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const set = new Set();\n"))),(0,i.mdx)("li",{parentName:"ul"},"an annotation on the initialization variable:",(0,i.mdx)("pre",{parentName:"li"},(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const set: Set = new Set();\n"))))),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("p",{parentName:"li"},"Add a default type on the type parameter ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," at the definition of the class:"),(0,i.mdx)("pre",{parentName:"li"},(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"declare class SetWithDefault extends $ReadOnlySet {\n constructor(iterable?: ?Iterable): void;\n // more methods ...\n}\n")),(0,i.mdx)("p",{parentName:"li"},"In the absence of any type information at the call-site, Flow will use the default\ntype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," as the inferred type argument:"),(0,i.mdx)("pre",{parentName:"li"},(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const defaultSet = new SetWithDefault(); // defaultSet is SetWithDefault\n")))),(0,i.mdx)("h4",{id:"incompatibility-errors"},"Incompatibility Errors"),(0,i.mdx)("p",null,"Even when Flow manages to infer non-generic types for the type parameters in a generic\ncall, these types might still lead to incompatibilities either in the current call or in\ncode later on."),(0,i.mdx)("p",null,"For example, if we had the following call to ",(0,i.mdx)("inlineCode",{parentName:"p"},"map"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":14,"description":"Cannot use operator `+` with operands object literal [1] and number [2] [unsafe-addition]"}]','[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":14,"description":"Cannot':!0,use:!0,operator:!0,"`+`":!0,with:!0,operands:!0,object:!0,literal:!0,"[1]":!0,and:!0,number:!0,"[2]":!0,'[unsafe-addition]"}]':!0},"declare function map(f: (T) => U, array: $ReadOnlyArray): Array;\nmap(x => x + 1, [{}]);\n")),(0,i.mdx)("p",null,"Flow will infer ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," as ",(0,i.mdx)("inlineCode",{parentName:"p"},"{}"),", and therefore type ",(0,i.mdx)("inlineCode",{parentName:"p"},"x")," as ",(0,i.mdx)("inlineCode",{parentName:"p"},"{}"),". This will cause an error when checking the arrow function\nsince the ",(0,i.mdx)("inlineCode",{parentName:"p"},"+")," operation is not allowed on objects."),(0,i.mdx)("p",null,"Finally, a common source of errors is the case where the inferred type in a generic\ncall is correct for the call itself, but not indicative of the expected use later in the code.\nFor example, consider"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":8,"endLine":5,"endColumn":18,"description":"Cannot call `setStr` with `maybeString` bound to the first parameter because: [incompatible-call] Either null or undefined [1] is incompatible with function type [2]. Or null or undefined [1] is incompatible with string [3]."}]','[{"startLine":5,"startColumn":8,"endLine":5,"endColumn":18,"description":"Cannot':!0,call:!0,"`setStr`":!0,with:!0,"`maybeString`":!0,bound:!0,to:!0,the:!0,first:!0,parameter:!0,"because:":!0,"[incompatible-call]":!0,Either:!0,null:!0,or:!0,undefined:!0,"[1]":!0,is:!0,incompatible:!0,function:!0,type:!0,"[2].":!0,Or:!0,string:!0,'[3]."}]':!0},"import { useState } from 'react';\nconst [str, setStr] = useState(\"\");\n\ndeclare var maybeString: ?string;\nsetStr(maybeString);\n")),(0,i.mdx)("p",null,"Passing the string ",(0,i.mdx)("inlineCode",{parentName:"p"},'""')," to the call to ",(0,i.mdx)("inlineCode",{parentName:"p"},"useState")," makes Flow infer ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," as the type\nof the state. So ",(0,i.mdx)("inlineCode",{parentName:"p"},"setStr")," will also expect a ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," as input when called later on,\nand therefore passing a ",(0,i.mdx)("inlineCode",{parentName:"p"},"?string")," will be an error."),(0,i.mdx)("p",null,'Again, to fix this error it suffices to annotate the expected "wider" type of state\nwhen calling ',(0,i.mdx)("inlineCode",{parentName:"p"},"useState"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'const [str, setStr] = useState("");\n')),(0,i.mdx)("h2",{id:"toc-empty-array-literals"},"Empty Array Literals"),(0,i.mdx)("p",null,"Empty array literals (",(0,i.mdx)("inlineCode",{parentName:"p"},"[]"),") are handled specially in Flow. You can read about their ",(0,i.mdx)("a",{parentName:"p",href:"../../types/arrays/#toc-empty-array-literals"},"behavior and requirements"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6567.031c15cf.js b/assets/js/6567.031c15cf.js new file mode 100644 index 00000000000..c74a44ef18a --- /dev/null +++ b/assets/js/6567.031c15cf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6567],{96567:(n,t,e)=>{e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var o=e(87462),s=(e(67294),e(3905));const i={title:"Requiring More Annotations to Functions and Classes in Flow","short-title":"Functions and Classes Annotation Requirements",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/requiring-more-annotations-to-functions-and-classes-in-flow-e8aa9b1d76bd"},a=void 0,r={permalink:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes",source:"@site/blog/2022-09-30-Requiring-More-Annotations-on-Functions-and-Classes.md",title:"Requiring More Annotations to Functions and Classes in Flow",description:"Flow will now require more annotations to functions and classes.",date:"2022-09-30T00:00:00.000Z",formattedDate:"September 30, 2022",tags:[],hasTruncateMarker:!1,authors:[{name:"Sam Zhou"}],frontMatter:{title:"Requiring More Annotations to Functions and Classes in Flow","short-title":"Functions and Classes Annotation Requirements",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/requiring-more-annotations-to-functions-and-classes-in-flow-e8aa9b1d76bd"},prevItem:{title:"Improved handling of the empty object in Flow",permalink:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"},nextItem:{title:"New Flow Language Rule: Constrained Writes",permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"}},l={authorsImageUrls:[void 0]},u=[],m={toc:u};function d(n){let{components:t,...e}=n;return(0,s.mdx)("wrapper",(0,o.Z)({},m,e,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow will now require more annotations to functions and classes."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6586.89a16f93.js b/assets/js/6586.89a16f93.js new file mode 100644 index 00000000000..952bedcc737 --- /dev/null +++ b/assets/js/6586.89a16f93.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6586],{6586:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>m,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var t=a(87462),l=(a(67294),a(3905));a(45475);const i={title:"Primitive Types",slug:"/types/primitives"},o=void 0,r={unversionedId:"types/primitives",id:"types/primitives",title:"Primitive Types",description:"JavaScript has a number of different primitive types",source:"@site/docs/types/primitives.md",sourceDirName:"types",slug:"/types/primitives",permalink:"/en/docs/types/primitives",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/primitives.md",tags:[],version:"current",frontMatter:{title:"Primitive Types",slug:"/types/primitives"},sidebar:"docsSidebar",previous:{title:"Type Annotations",permalink:"/en/docs/types"},next:{title:"Literal Types",permalink:"/en/docs/types/literals"}},m={},d=[{value:"Booleans",id:"toc-booleans",level:2},{value:"Numbers",id:"toc-numbers",level:2},{value:"Strings",id:"toc-strings",level:2},{value:"null and undefined",id:"toc-null-and-void",level:2},{value:"Maybe types",id:"toc-maybe-types",level:3},{value:"Optional object properties",id:"toc-optional-object-properties",level:3},{value:"Optional function parameters",id:"toc-optional-function-parameters",level:3},{value:"Function parameters with defaults",id:"toc-function-parameters-with-defaults",level:3},{value:"Symbols",id:"toc-symbols",level:2},{value:"BigInts",id:"toc-bigints",level:2}],p={toc:d};function s(e){let{components:n,...a}=e;return(0,l.mdx)("wrapper",(0,t.Z)({},p,a,{components:n,mdxType:"MDXLayout"}),(0,l.mdx)("p",null,"JavaScript has a number of different primitive types\n(",(0,l.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#primitive_values"},"MDN"),"):"),(0,l.mdx)("table",null,(0,l.mdx)("thead",{parentName:"table"},(0,l.mdx)("tr",{parentName:"thead"},(0,l.mdx)("th",{parentName:"tr",align:null}),(0,l.mdx)("th",{parentName:"tr",align:null},"Example"),(0,l.mdx)("th",{parentName:"tr",align:null},"Flow type"))),(0,l.mdx)("tbody",{parentName:"table"},(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Booleans")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"true")," or ",(0,l.mdx)("inlineCode",{parentName:"td"},"false")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"boolean"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Strings")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"'foo'")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"string"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Numbers")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"123")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"number"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Null")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"null")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"null"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Undefined")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"undefined")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"void"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"Symbols")," ",(0,l.mdx)("small",null,(0,l.mdx)("em",{parentName:"td"},"(new in ES2015)"))),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"Symbol('foo')")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"symbol"))),(0,l.mdx)("tr",{parentName:"tbody"},(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("strong",{parentName:"td"},"BigInts")," ",(0,l.mdx)("small",null,(0,l.mdx)("em",{parentName:"td"},"(new in ES2020)"))),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"123n")),(0,l.mdx)("td",{parentName:"tr",align:null},(0,l.mdx)("inlineCode",{parentName:"td"},"bigint"))))),(0,l.mdx)("p",null,"Some primitive types appear in the language as literal values:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'true;\n"hello";\n3.14;\nnull;\nundefined;\n3n;\n')),(0,l.mdx)("p",null,"BigInts and Symbols can be created with calls to ",(0,l.mdx)("inlineCode",{parentName:"p"},"BigInt")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"Symbol"),", respectively:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'BigInt("2364023476023");\nSymbol("hello");\n')),(0,l.mdx)("p",null,"The Flow types of literal values are lowercase (mirroring the output of JavaScript's\n",(0,l.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof"},(0,l.mdx)("inlineCode",{parentName:"a"},"typeof")," expression"),"):"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(a: number, b: string, c: boolean, d: bigint) { /* ... */ }\n\nfunc(3.14, "hello", true, 3n);\n')),(0,l.mdx)("p",null,"Some literals can also be used as ",(0,l.mdx)("a",{parentName:"p",href:"../literals"},"literal types"),":"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":11,"endLine":4,"endColumn":11,"description":"Cannot call `acceptTwo` with `1` bound to `x` because number [1] is incompatible with number literal `2` [2]. [incompatible-call]"}]','[{"startLine":4,"startColumn":11,"endLine":4,"endColumn":11,"description":"Cannot':!0,call:!0,"`acceptTwo`":!0,with:!0,"`1`":!0,bound:!0,to:!0,"`x`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,literal:!0,"`2`":!0,"[2].":!0,'[incompatible-call]"}]':!0},"function acceptTwo(x: 2) { /* ... */ }\n\nacceptTwo(2); // Works!\nacceptTwo(1); // Error!\n")),(0,l.mdx)("p",null,"Some primitives can also be wrapped as objects:"),(0,l.mdx)("blockquote",null,(0,l.mdx)("p",{parentName:"blockquote"},"NOTE: You probably never want to use the wrapper object variants.")),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'new Boolean(false);\nnew String("world");\nnew Number(42);\n')),(0,l.mdx)("p",null,"Types for the wrapper objects are capitalized (the same as their constructor):"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(x: Number, y: String, z: Boolean) {\n // ...\n}\n\nfunc(new Number(42), new String("world"), new Boolean(false));\n')),(0,l.mdx)("p",null,"These wrapper objects are rarely used."),(0,l.mdx)("h2",{id:"toc-booleans"},"Booleans"),(0,l.mdx)("p",null,"Booleans are ",(0,l.mdx)("inlineCode",{parentName:"p"},"true")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"false")," values in JavaScript. The ",(0,l.mdx)("inlineCode",{parentName:"p"},"boolean")," type in\nFlow accepts these values."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":16,"endLine":6,"endColumn":20,"description":"Cannot call `acceptsBoolean` with `\\"foo\\"` bound to `value` because string [1] is incompatible with boolean [2]. [incompatible-call]"}]','[{"startLine":6,"startColumn":16,"endLine":6,"endColumn":20,"description":"Cannot':!0,call:!0,"`acceptsBoolean`":!0,with:!0,'`\\"foo\\"`':!0,bound:!0,to:!0,"`value`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,boolean:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function acceptsBoolean(value: boolean) { /* ... */ }\n\nacceptsBoolean(true); // Works!\nacceptsBoolean(false); // Works!\n\nacceptsBoolean("foo"); // Error!\n')),(0,l.mdx)("p",null,"JavaScript can also implicitly convert other types of values into booleans."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-js"},'if (42) {} // 42 => true\nif ("") {} // "" => false\n')),(0,l.mdx)("p",null,"Flow understands these coercions and will allow them as part of an\n",(0,l.mdx)("inlineCode",{parentName:"p"},"if")," statement's test or other conditional contexts."),(0,l.mdx)("p",null,"To explicitly convert non-booleans to a ",(0,l.mdx)("inlineCode",{parentName:"p"},"boolean"),", you can use ",(0,l.mdx)("inlineCode",{parentName:"p"},"Boolean(x)")," or ",(0,l.mdx)("inlineCode",{parentName:"p"},"!!x"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":16,"endLine":3,"endColumn":16,"description":"Cannot call `acceptsBoolean` with `0` bound to `value` because number [1] is incompatible with boolean [2]. [incompatible-call]"}]','[{"startLine":3,"startColumn":16,"endLine":3,"endColumn":16,"description":"Cannot':!0,call:!0,"`acceptsBoolean`":!0,with:!0,"`0`":!0,bound:!0,to:!0,"`value`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,boolean:!0,"[2].":!0,'[incompatible-call]"}]':!0},"function acceptsBoolean(value: boolean) { /* ... */ }\n\nacceptsBoolean(0); // Error!\n\nacceptsBoolean(Boolean(0)); // Works!\nacceptsBoolean(!!0); // Works!\n")),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"boolean")," using a ",(0,l.mdx)("inlineCode",{parentName:"p"},"typeof")," check:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsBoolean(value: boolean) { /* ... */ }\n\nfunction func(value: mixed) {\n if (typeof value === 'boolean') {\n acceptsBoolean(value); // Works: `value` is `boolean`\n }\n}\n")),(0,l.mdx)("p",null,"Remember that ",(0,l.mdx)("inlineCode",{parentName:"p"},"boolean")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"Boolean")," are different types."),(0,l.mdx)("ul",null,(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"boolean")," is a literal value like ",(0,l.mdx)("inlineCode",{parentName:"li"},"true")," or ",(0,l.mdx)("inlineCode",{parentName:"li"},"false")," or the result of an\nexpression like ",(0,l.mdx)("inlineCode",{parentName:"li"},"a === b"),"."),(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"Boolean")," is a wrapper object created by the global ",(0,l.mdx)("inlineCode",{parentName:"li"},"new Boolean(x)"),"\nconstructor. You probably don't want to use this!")),(0,l.mdx)("h2",{id:"toc-numbers"},"Numbers"),(0,l.mdx)("p",null,"Number literals in JavaScript are floating point numbers, for example ",(0,l.mdx)("inlineCode",{parentName:"p"},"42")," or ",(0,l.mdx)("inlineCode",{parentName:"p"},"3.14"),".\nJavaScript also considers ",(0,l.mdx)("inlineCode",{parentName:"p"},"Infinity")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"NaN")," to be numbers.\nThese are represented by the ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," type. JavaScript also has a separate ",(0,l.mdx)("a",{parentName:"p",href:"#toc-bigints"},"BigInt type"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":15,"endLine":8,"endColumn":19,"description":"Cannot call `acceptsNumber` with `\\"foo\\"` bound to `value` because string [1] is incompatible with number [2]. [incompatible-call]"},{"startLine":9,"startColumn":15,"endLine":9,"endColumn":18,"description":"Cannot call `acceptsNumber` with `123n` bound to `value` because bigint [1] is incompatible with number [2]. [incompatible-call]"}]','[{"startLine":8,"startColumn":15,"endLine":8,"endColumn":19,"description":"Cannot':!0,call:!0,"`acceptsNumber`":!0,with:!0,'`\\"foo\\"`':!0,bound:!0,to:!0,"`value`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,number:!0,"[2].":!0,'[incompatible-call]"},{"startLine":9,"startColumn":15,"endLine":9,"endColumn":18,"description":"Cannot':!0,"`123n`":!0,bigint:!0,'[incompatible-call]"}]':!0},'function acceptsNumber(value: number) { /* ... */ }\n\nacceptsNumber(42); // Works!\nacceptsNumber(3.14); // Works!\nacceptsNumber(NaN); // Works!\nacceptsNumber(Infinity); // Works!\n\nacceptsNumber("foo"); // Error!\nacceptsNumber(123n); // Error!\n')),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," using a ",(0,l.mdx)("inlineCode",{parentName:"p"},"typeof")," check:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsNumber(value: number) { /* ... */ }\n\nfunction func(value: mixed) {\n if (typeof value === 'number') {\n acceptsNumber(value); // Works: `value` is `number`\n }\n}\n")),(0,l.mdx)("p",null,"Remember that ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"Number")," are different types."),(0,l.mdx)("ul",null,(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"number")," is a literal value like ",(0,l.mdx)("inlineCode",{parentName:"li"},"42")," or ",(0,l.mdx)("inlineCode",{parentName:"li"},"3.14")," or the result of an\nexpression like ",(0,l.mdx)("inlineCode",{parentName:"li"},"parseFloat(x)"),"."),(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"Number")," is a wrapper object created by the global ",(0,l.mdx)("inlineCode",{parentName:"li"},"new Number(x)")," constructor. You probably don't want to use this!")),(0,l.mdx)("h2",{id:"toc-strings"},"Strings"),(0,l.mdx)("p",null,"Strings are ",(0,l.mdx)("inlineCode",{parentName:"p"},'"foo"')," values in JavaScript. The ",(0,l.mdx)("inlineCode",{parentName:"p"},"string")," type in Flow accepts these values."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":15,"endLine":6,"endColumn":19,"description":"Cannot call `acceptsString` with `false` bound to `value` because boolean [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":6,"startColumn":15,"endLine":6,"endColumn":19,"description":"Cannot':!0,call:!0,"`acceptsString`":!0,with:!0,"`false`":!0,bound:!0,to:!0,"`value`":!0,because:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function acceptsString(value: string) { /* ... */ }\n\nacceptsString("foo"); // Works!\nacceptsString(`template literal`); // Works!\n\nacceptsString(false); // Error!\n')),(0,l.mdx)("p",null,"JavaScript implicitly converts other types of values into strings by\nconcatenating them."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-js"},'"foo" + 42; // "foo42"\n"foo" + {}; // "foo[object Object]"\n')),(0,l.mdx)("p",null,"Flow will only accept strings and numbers when concatenating them to strings."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":1,"endLine":5,"endColumn":10,"description":"Cannot use operator `+` with operands string [1] and object literal [2] [unsafe-addition]"},{"startLine":6,"startColumn":1,"endLine":6,"endColumn":10,"description":"Cannot use operator `+` with operands string [1] and empty array literal [2] [unsafe-addition]"},{"startLine":7,"startColumn":8,"endLine":7,"endColumn":9,"description":"Cannot coerce array literal to string because empty array literal [1] should not be coerced. [incompatible-type]"}]','[{"startLine":5,"startColumn":1,"endLine":5,"endColumn":10,"description":"Cannot':!0,use:!0,operator:!0,"`+`":!0,with:!0,operands:!0,string:!0,"[1]":!0,and:!0,object:!0,literal:!0,"[2]":!0,'[unsafe-addition]"},{"startLine":6,"startColumn":1,"endLine":6,"endColumn":10,"description":"Cannot':!0,empty:!0,array:!0,'[unsafe-addition]"},{"startLine":7,"startColumn":8,"endLine":7,"endColumn":9,"description":"Cannot':!0,coerce:!0,to:!0,because:!0,should:!0,not:!0,be:!0,"coerced.":!0,'[incompatible-type]"}]':!0},'"foo" + "foo"; // Works!\n"foo" + 42; // Works!\n`foo ${42}`; // Works!\n\n"foo" + {}; // Error!\n"foo" + []; // Error!\n`foo ${[]}`; // Error!\n')),(0,l.mdx)("p",null,"You must be explicit and convert other types into strings. You can do this by\nusing the String function or using another method for stringifying values."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'"foo" + String({}); // Works!\n"foo" + [].toString(); // Works!\n"" + JSON.stringify({}) // Works!\n')),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"string")," using a ",(0,l.mdx)("inlineCode",{parentName:"p"},"typeof")," check:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsString(value: string) { /* ... */ }\n\nfunction func(value: mixed) {\n if (typeof value === 'string') {\n acceptsString(value); // Works: `value` is `string`\n }\n}\n")),(0,l.mdx)("p",null,"Remember that ",(0,l.mdx)("inlineCode",{parentName:"p"},"string")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"String")," are different types."),(0,l.mdx)("ul",null,(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"string")," is a literal value like ",(0,l.mdx)("inlineCode",{parentName:"li"},'"foo"')," or the result of an expression\nlike ",(0,l.mdx)("inlineCode",{parentName:"li"},'"" + 42'),"."),(0,l.mdx)("li",{parentName:"ul"},"A ",(0,l.mdx)("inlineCode",{parentName:"li"},"String")," is a wrapper object created by the global ",(0,l.mdx)("inlineCode",{parentName:"li"},"new String(x)")," constructor. You probably don't want to use this!")),(0,l.mdx)("h2",{id:"toc-null-and-void"},(0,l.mdx)("inlineCode",{parentName:"h2"},"null")," and ",(0,l.mdx)("inlineCode",{parentName:"h2"},"undefined")),(0,l.mdx)("p",null,"JavaScript has both ",(0,l.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"undefined"),". Flow treats these as separate\ntypes: ",(0,l.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"void")," (for ",(0,l.mdx)("inlineCode",{parentName:"p"},"undefined"),")."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":13,"endLine":4,"endColumn":21,"description":"Cannot call `acceptsNull` with `undefined` bound to `value` because undefined [1] is incompatible with null [2]. [incompatible-call]"},{"startLine":9,"startColumn":18,"endLine":9,"endColumn":21,"description":"Cannot call `acceptsUndefined` with `null` bound to `value` because null [1] is incompatible with undefined [2]. [incompatible-call]"}]','[{"startLine":4,"startColumn":13,"endLine":4,"endColumn":21,"description":"Cannot':!0,call:!0,"`acceptsNull`":!0,with:!0,"`undefined`":!0,bound:!0,to:!0,"`value`":!0,because:!0,undefined:!0,"[1]":!0,is:!0,incompatible:!0,null:!0,"[2].":!0,'[incompatible-call]"},{"startLine":9,"startColumn":18,"endLine":9,"endColumn":21,"description":"Cannot':!0,"`acceptsUndefined`":!0,"`null`":!0,'[incompatible-call]"}]':!0},"function acceptsNull(value: null) { /* ... */ }\n\nacceptsNull(null); // Works!\nacceptsNull(undefined); // Error!\n\nfunction acceptsUndefined(value: void) { /* ... */ }\n\nacceptsUndefined(undefined); // Works!\nacceptsUndefined(null); // Error!\n")),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"null")," or ",(0,l.mdx)("inlineCode",{parentName:"p"},"void")," using equality checks:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsNull(value: null) { /* ... */ }\n\nfunction func(value: mixed) {\n if (value === null) {\n acceptsNull(value); // Works: `value` is `null`\n }\n}\n")),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsUndefined(value: void) { /* ... */ }\n\nfunction func(value: mixed) {\n if (value === undefined) {\n acceptsUndefined(value); // Works: `value` is `void`\n }\n}\n")),(0,l.mdx)("p",null,(0,l.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"void")," also appear in other types:"),(0,l.mdx)("h3",{id:"toc-maybe-types"},"Maybe types"),(0,l.mdx)("p",null,(0,l.mdx)("a",{parentName:"p",href:"../maybe"},"Maybe types")," are for places where a value is optional and you can create them by\nadding a question mark in front of the type such as ",(0,l.mdx)("inlineCode",{parentName:"p"},"?string")," or ",(0,l.mdx)("inlineCode",{parentName:"p"},"?number"),"."),(0,l.mdx)("p",null,(0,l.mdx)("inlineCode",{parentName:"p"},"?T")," is equivalent to ",(0,l.mdx)("inlineCode",{parentName:"p"},"T | null | void"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function acceptsMaybeString(value: ?string) { /* ... */ }\n\nacceptsMaybeString("bar"); // Works!\nacceptsMaybeString(undefined); // Works!\nacceptsMaybeString(null); // Works!\nacceptsMaybeString(); // Works!\n')),(0,l.mdx)("p",null,"To refine, ",(0,l.mdx)("inlineCode",{parentName:"p"},"value == null")," checks exactly for both ",(0,l.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"undefined"),"."),(0,l.mdx)("p",null,"Read the ",(0,l.mdx)("a",{parentName:"p",href:"../maybe"},"maybe type docs")," for more details."),(0,l.mdx)("h3",{id:"toc-optional-object-properties"},"Optional object properties"),(0,l.mdx)("p",null,"Object types can have optional properties where a question mark ",(0,l.mdx)("inlineCode",{parentName:"p"},"?")," comes after\nthe property name."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-js"},"{propertyName?: string}\n")),(0,l.mdx)("p",null,"In addition to their set value type, these optional properties can either be\n",(0,l.mdx)("inlineCode",{parentName:"p"},"void")," or omitted altogether. However, they cannot be ",(0,l.mdx)("inlineCode",{parentName:"p"},"null"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":21,"endLine":7,"endColumn":24,"description":"Cannot call `acceptsObject` with object literal bound to `value` because null [1] is incompatible with string [2] in property `foo`. [incompatible-call]"}]','[{"startLine":7,"startColumn":21,"endLine":7,"endColumn":24,"description":"Cannot':!0,call:!0,"`acceptsObject`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`value`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2]":!0,in:!0,property:!0,"`foo`.":!0,'[incompatible-call]"}]':!0},'function acceptsObject(value: {foo?: string}) { /* ... */ }\n\nacceptsObject({foo: "bar"}); // Works!\nacceptsObject({foo: undefined}); // Works!\nacceptsObject({}); // Works!\n\nacceptsObject({foo: null}); // Error!\n')),(0,l.mdx)("h3",{id:"toc-optional-function-parameters"},"Optional function parameters"),(0,l.mdx)("p",null,"Functions can have optional parameters where a question mark ",(0,l.mdx)("inlineCode",{parentName:"p"},"?")," comes after\nthe parameter name."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-js"},"function func(param?: string) { /* ... */ }\n")),(0,l.mdx)("p",null,"In addition to their set type, these optional parameters can either be ",(0,l.mdx)("inlineCode",{parentName:"p"},"void"),"\nor omitted altogether. However, they cannot be ",(0,l.mdx)("inlineCode",{parentName:"p"},"null"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":23,"endLine":7,"endColumn":26,"description":"Cannot call `acceptsOptionalString` with `null` bound to `value` because null [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":7,"startColumn":23,"endLine":7,"endColumn":26,"description":"Cannot':!0,call:!0,"`acceptsOptionalString`":!0,with:!0,"`null`":!0,bound:!0,to:!0,"`value`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function acceptsOptionalString(value?: string) { /* ... */ }\n\nacceptsOptionalString("bar"); // Works!\nacceptsOptionalString(undefined); // Works!\nacceptsOptionalString(); // Works!\n\nacceptsOptionalString(null); // Error!\n')),(0,l.mdx)("h3",{id:"toc-function-parameters-with-defaults"},"Function parameters with defaults"),(0,l.mdx)("p",null,"Function parameters can also have defaults. This is a feature of ES2015."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-js"},'function func(value: string = "default") { /* ... */ }\n')),(0,l.mdx)("p",null,"In addition to their set type, default parameters can also be ",(0,l.mdx)("inlineCode",{parentName:"p"},"void")," or omitted\naltogether. However, they cannot be ",(0,l.mdx)("inlineCode",{parentName:"p"},"null"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":23,"endLine":7,"endColumn":26,"description":"Cannot call `acceptsOptionalString` with `null` bound to `value` because null [1] is incompatible with string [2]. [incompatible-call]"}]','[{"startLine":7,"startColumn":23,"endLine":7,"endColumn":26,"description":"Cannot':!0,call:!0,"`acceptsOptionalString`":!0,with:!0,"`null`":!0,bound:!0,to:!0,"`value`":!0,because:!0,null:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function acceptsOptionalString(value: string = "foo") { /* ... */ }\n\nacceptsOptionalString("bar"); // Works!\nacceptsOptionalString(undefined); // Works!\nacceptsOptionalString(); // Works!\n\nacceptsOptionalString(null); // Error!\n')),(0,l.mdx)("h2",{id:"toc-symbols"},"Symbols"),(0,l.mdx)("p",null,"Symbols are created with ",(0,l.mdx)("inlineCode",{parentName:"p"},"Symbol()")," in JavaScript. Flow has basic support for symbols, using the ",(0,l.mdx)("inlineCode",{parentName:"p"},"symbol")," type."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":15,"endLine":6,"endColumn":19,"description":"Cannot call `acceptsSymbol` with `false` bound to `value` because boolean [1] is incompatible with symbol [2]. [incompatible-call]"}]','[{"startLine":6,"startColumn":15,"endLine":6,"endColumn":19,"description":"Cannot':!0,call:!0,"`acceptsSymbol`":!0,with:!0,"`false`":!0,bound:!0,to:!0,"`value`":!0,because:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,symbol:!0,"[2].":!0,'[incompatible-call]"}]':!0},"function acceptsSymbol(value: symbol) { /* ... */ }\n\nacceptsSymbol(Symbol()); // Works!\nacceptsSymbol(Symbol.isConcatSpreadable); // Works!\n\nacceptsSymbol(false); // Error!\n")),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"symbol")," using a ",(0,l.mdx)("inlineCode",{parentName:"p"},"typeof")," check:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsSymbol(value: symbol) { /* ... */ }\n\nfunction func(value: mixed) {\n if (typeof value === 'symbol') {\n acceptsSymbol(value); // Works: `value` is `symbol`\n }\n}\n")),(0,l.mdx)("h2",{id:"toc-bigints"},"BigInts"),(0,l.mdx)("p",null,"BigInts can be used to represent integers of arbitrary precision. In other words, they can store integers which are too large to store as a ",(0,l.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,l.mdx)("p",null,"A ",(0,l.mdx)("inlineCode",{parentName:"p"},"bigint")," literal is just a ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," literal along with an ",(0,l.mdx)("inlineCode",{parentName:"p"},"n")," suffix."),(0,l.mdx)("p",null,"Note that ",(0,l.mdx)("inlineCode",{parentName:"p"},"bigint")," and ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," are incompatible types. That is, a ",(0,l.mdx)("inlineCode",{parentName:"p"},"bigint")," cannot be used where a ",(0,l.mdx)("inlineCode",{parentName:"p"},"number")," is expected, and vice versa."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":15,"endLine":4,"endColumn":16,"description":"Cannot call `acceptsBigInt` with `42` bound to `value` because number [1] is incompatible with bigint [2]. [incompatible-call]"}]','[{"startLine":4,"startColumn":15,"endLine":4,"endColumn":16,"description":"Cannot':!0,call:!0,"`acceptsBigInt`":!0,with:!0,"`42`":!0,bound:!0,to:!0,"`value`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,bigint:!0,"[2].":!0,'[incompatible-call]"}]':!0},"function acceptsBigInt(value: bigint) { /* ... */ }\n\nacceptsBigInt(42n); // Works!\nacceptsBigInt(42); // Error!\n")),(0,l.mdx)("p",null,"You can ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/refinements/"},"refine")," a value to ",(0,l.mdx)("inlineCode",{parentName:"p"},"bigint")," using a ",(0,l.mdx)("inlineCode",{parentName:"p"},"typeof")," check:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function acceptsBigInt(value: bigint) { /* ... */ }\n\nfunction func(value: mixed) {\n if (typeof value === 'bigint') {\n acceptsBigInt(value); // Works: `value` is `bigint`\n }\n}\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6587.11bbb595.js b/assets/js/6587.11bbb595.js new file mode 100644 index 00000000000..f1e2f41580d --- /dev/null +++ b/assets/js/6587.11bbb595.js @@ -0,0 +1,433 @@ +"use strict"; +exports.id = 6587; +exports.ids = [6587]; +exports.modules = { + +/***/ 86587: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/st/st.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["var", "end_var"], + ["var_input", "end_var"], + ["var_output", "end_var"], + ["var_in_out", "end_var"], + ["var_temp", "end_var"], + ["var_global", "end_var"], + ["var_access", "end_var"], + ["var_external", "end_var"], + ["type", "end_type"], + ["struct", "end_struct"], + ["program", "end_program"], + ["function", "end_function"], + ["function_block", "end_function_block"], + ["action", "end_action"], + ["step", "end_step"], + ["initial_step", "end_step"], + ["transaction", "end_transaction"], + ["configuration", "end_configuration"], + ["tcp", "end_tcp"], + ["recource", "end_recource"], + ["channel", "end_channel"], + ["library", "end_library"], + ["folder", "end_folder"], + ["binaries", "end_binaries"], + ["includes", "end_includes"], + ["sources", "end_sources"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: "{", close: "}" }, + { open: "(", close: ")" }, + { open: "/*", close: "*/" }, + { open: "'", close: "'", notIn: ["string_sq"] }, + { open: '"', close: '"', notIn: ["string_dq"] }, + { open: "var_input", close: "end_var" }, + { open: "var_output", close: "end_var" }, + { open: "var_in_out", close: "end_var" }, + { open: "var_temp", close: "end_var" }, + { open: "var_global", close: "end_var" }, + { open: "var_access", close: "end_var" }, + { open: "var_external", close: "end_var" }, + { open: "type", close: "end_type" }, + { open: "struct", close: "end_struct" }, + { open: "program", close: "end_program" }, + { open: "function", close: "end_function" }, + { open: "function_block", close: "end_function_block" }, + { open: "action", close: "end_action" }, + { open: "step", close: "end_step" }, + { open: "initial_step", close: "end_step" }, + { open: "transaction", close: "end_transaction" }, + { open: "configuration", close: "end_configuration" }, + { open: "tcp", close: "end_tcp" }, + { open: "recource", close: "end_recource" }, + { open: "channel", close: "end_channel" }, + { open: "library", close: "end_library" }, + { open: "folder", close: "end_folder" }, + { open: "binaries", close: "end_binaries" }, + { open: "includes", close: "end_includes" }, + { open: "sources", close: "end_sources" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "var", close: "end_var" }, + { open: "var_input", close: "end_var" }, + { open: "var_output", close: "end_var" }, + { open: "var_in_out", close: "end_var" }, + { open: "var_temp", close: "end_var" }, + { open: "var_global", close: "end_var" }, + { open: "var_access", close: "end_var" }, + { open: "var_external", close: "end_var" }, + { open: "type", close: "end_type" }, + { open: "struct", close: "end_struct" }, + { open: "program", close: "end_program" }, + { open: "function", close: "end_function" }, + { open: "function_block", close: "end_function_block" }, + { open: "action", close: "end_action" }, + { open: "step", close: "end_step" }, + { open: "initial_step", close: "end_step" }, + { open: "transaction", close: "end_transaction" }, + { open: "configuration", close: "end_configuration" }, + { open: "tcp", close: "end_tcp" }, + { open: "recource", close: "end_recource" }, + { open: "channel", close: "end_channel" }, + { open: "library", close: "end_library" }, + { open: "folder", close: "end_folder" }, + { open: "binaries", close: "end_binaries" }, + { open: "includes", close: "end_includes" }, + { open: "sources", close: "end_sources" } + ], + folding: { + markers: { + start: new RegExp("^\\s*#pragma\\s+region\\b"), + end: new RegExp("^\\s*#pragma\\s+endregion\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".st", + ignoreCase: true, + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" } + ], + keywords: [ + "if", + "end_if", + "elsif", + "else", + "case", + "of", + "to", + "__try", + "__catch", + "__finally", + "do", + "with", + "by", + "while", + "repeat", + "end_while", + "end_repeat", + "end_case", + "for", + "end_for", + "task", + "retain", + "non_retain", + "constant", + "with", + "at", + "exit", + "return", + "interval", + "priority", + "address", + "port", + "on_channel", + "then", + "iec", + "file", + "uses", + "version", + "packagetype", + "displayname", + "copyright", + "summary", + "vendor", + "common_source", + "from", + "extends" + ], + constant: ["false", "true", "null"], + defineKeywords: [ + "var", + "var_input", + "var_output", + "var_in_out", + "var_temp", + "var_global", + "var_access", + "var_external", + "end_var", + "type", + "end_type", + "struct", + "end_struct", + "program", + "end_program", + "function", + "end_function", + "function_block", + "end_function_block", + "interface", + "end_interface", + "method", + "end_method", + "property", + "end_property", + "namespace", + "end_namespace", + "configuration", + "end_configuration", + "tcp", + "end_tcp", + "resource", + "end_resource", + "channel", + "end_channel", + "library", + "end_library", + "folder", + "end_folder", + "binaries", + "end_binaries", + "includes", + "end_includes", + "sources", + "end_sources", + "action", + "end_action", + "step", + "initial_step", + "end_step", + "transaction", + "end_transaction" + ], + typeKeywords: [ + "int", + "sint", + "dint", + "lint", + "usint", + "uint", + "udint", + "ulint", + "real", + "lreal", + "time", + "date", + "time_of_day", + "date_and_time", + "string", + "bool", + "byte", + "word", + "dword", + "array", + "pointer", + "lword" + ], + operators: [ + "=", + ">", + "<", + ":", + ":=", + "<=", + ">=", + "<>", + "&", + "+", + "-", + "*", + "**", + "MOD", + "^", + "or", + "and", + "not", + "xor", + "abs", + "acos", + "asin", + "atan", + "cos", + "exp", + "expt", + "ln", + "log", + "sin", + "sqrt", + "tan", + "sel", + "max", + "min", + "limit", + "mux", + "shl", + "shr", + "rol", + "ror", + "indexof", + "sizeof", + "adr", + "adrinst", + "bitadr", + "is_valid", + "ref", + "ref_to" + ], + builtinVariables: [], + builtinFunctions: [ + "sr", + "rs", + "tp", + "ton", + "tof", + "eq", + "ge", + "le", + "lt", + "ne", + "round", + "trunc", + "ctd", + "\u0441tu", + "ctud", + "r_trig", + "f_trig", + "move", + "concat", + "delete", + "find", + "insert", + "left", + "len", + "replace", + "right", + "rtc" + ], + symbols: /[=>{o.r(n),o.d(n,{conf:()=>t,language:()=>r});var t={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["var","end_var"],["var_input","end_var"],["var_output","end_var"],["var_in_out","end_var"],["var_temp","end_var"],["var_global","end_var"],["var_access","end_var"],["var_external","end_var"],["type","end_type"],["struct","end_struct"],["program","end_program"],["function","end_function"],["function_block","end_function_block"],["action","end_action"],["step","end_step"],["initial_step","end_step"],["transaction","end_transaction"],["configuration","end_configuration"],["tcp","end_tcp"],["recource","end_recource"],["channel","end_channel"],["library","end_library"],["folder","end_folder"],["binaries","end_binaries"],["includes","end_includes"],["sources","end_sources"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"/*",close:"*/"},{open:"'",close:"'",notIn:["string_sq"]},{open:'"',close:'"',notIn:["string_dq"]},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"var",close:"end_var"},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},r={defaultToken:"",tokenPostfix:".st",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","end_if","elsif","else","case","of","to","__try","__catch","__finally","do","with","by","while","repeat","end_while","end_repeat","end_case","for","end_for","task","retain","non_retain","constant","with","at","exit","return","interval","priority","address","port","on_channel","then","iec","file","uses","version","packagetype","displayname","copyright","summary","vendor","common_source","from","extends"],constant:["false","true","null"],defineKeywords:["var","var_input","var_output","var_in_out","var_temp","var_global","var_access","var_external","end_var","type","end_type","struct","end_struct","program","end_program","function","end_function","function_block","end_function_block","interface","end_interface","method","end_method","property","end_property","namespace","end_namespace","configuration","end_configuration","tcp","end_tcp","resource","end_resource","channel","end_channel","library","end_library","folder","end_folder","binaries","end_binaries","includes","end_includes","sources","end_sources","action","end_action","step","initial_step","end_step","transaction","end_transaction"],typeKeywords:["int","sint","dint","lint","usint","uint","udint","ulint","real","lreal","time","date","time_of_day","date_and_time","string","bool","byte","word","dword","array","pointer","lword"],operators:["=",">","<",":",":=","<=",">=","<>","&","+","-","*","**","MOD","^","or","and","not","xor","abs","acos","asin","atan","cos","exp","expt","ln","log","sin","sqrt","tan","sel","max","min","limit","mux","shl","shr","rol","ror","indexof","sizeof","adr","adrinst","bitadr","is_valid","ref","ref_to"],builtinVariables:[],builtinFunctions:["sr","rs","tp","ton","tof","eq","ge","le","lt","ne","round","trunc","ctd","\u0441tu","ctud","r_trig","f_trig","move","concat","delete","find","insert","left","len","replace","right","rtc"],symbols:/[=>{n.r(e),n.d(e,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>u});var a=n(87462),i=(n(67294),n(3905));const o={title:"Announcing Partial & Required Flow utility types + catch annotations","short-title":"Announcing Partial & Required Flow utility types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-partial-required-flow-utility-types-catch-annotations-3a32f0bf2a20"},l=void 0,r={permalink:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations",source:"@site/blog/2023-03-15-Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations.md",title:"Announcing Partial & Required Flow utility types + catch annotations",description:"Starting in Flow version 0.201, make an object type\u2019s fields all optional using Partial (use instead of the unsafe $Shape),",date:"2023-03-15T00:00:00.000Z",formattedDate:"March 15, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Announcing Partial & Required Flow utility types + catch annotations","short-title":"Announcing Partial & Required Flow utility types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-partial-required-flow-utility-types-catch-annotations-3a32f0bf2a20"},prevItem:{title:"Flow can now detect unused Promises",permalink:"/blog/2023/04/10/Unused-Promise"},nextItem:{title:"Exact object types by default, by default",permalink:"/blog/2023/02/16/Exact-object-types-by-default-by-default"}},s={authorsImageUrls:[void 0]},u=[],d={toc:u};function c(t){let{components:e,...n}=t;return(0,i.mdx)("wrapper",(0,a.Z)({},d,n,{components:e,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Starting in Flow version 0.201, make an object type\u2019s fields all optional using ",(0,i.mdx)("inlineCode",{parentName:"p"},"Partial")," (use instead of the unsafe ",(0,i.mdx)("inlineCode",{parentName:"p"},"$Shape"),"),\nand make an object type\u2019s optional fields required with ",(0,i.mdx)("inlineCode",{parentName:"p"},"Required"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6641.0726fefc.js b/assets/js/6641.0726fefc.js new file mode 100644 index 00000000000..84890543c65 --- /dev/null +++ b/assets/js/6641.0726fefc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6641],{56641:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var a=n(87462),i=(n(67294),n(3905));const o={title:"Strict Checking of Function Call Arity","short-title":"Strict Function Call Arity",author:"Gabe Levi",hide_table_of_contents:!0},r=void 0,l={permalink:"/blog/2017/05/07/Strict-Function-Call-Arity",source:"@site/blog/2017-05-07-Strict-Function-Call-Arity.md",title:"Strict Checking of Function Call Arity",description:"One of Flow's original goals was to be able to understand idiomatic JavaScript.",date:"2017-05-07T00:00:00.000Z",formattedDate:"May 7, 2017",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Strict Checking of Function Call Arity","short-title":"Strict Function Call Arity",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Opaque Type Aliases",permalink:"/blog/2017/07/27/Opaque-Types"},nextItem:{title:"Introducing Flow-Typed",permalink:"/blog/2016/10/13/Flow-Typed"}},c={authorsImageUrls:[void 0]},s=[],u={toc:s};function p(t){let{components:e,...n}=t;return(0,i.mdx)("wrapper",(0,a.Z)({},u,n,{components:e,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"One of Flow's original goals was to be able to understand idiomatic JavaScript.\nIn JavaScript, you can call a function with more arguments than the function\nexpects. Therefore, Flow never complained about calling a function with\nextraneous arguments."),(0,i.mdx)("p",null,"We are changing this behavior."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/665.79c8901c.js b/assets/js/665.79c8901c.js new file mode 100644 index 00000000000..e7baeb9c264 --- /dev/null +++ b/assets/js/665.79c8901c.js @@ -0,0 +1,2 @@ +/*! For license information please see 665.79c8901c.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[665],{90665:(e,t,n)=>{n.r(t),n.d(t,{CompletionAdapter:()=>ht,DefinitionAdapter:()=>Et,DiagnosticsAdapter:()=>gt,DocumentColorAdapter:()=>jt,DocumentFormattingEditProvider:()=>Dt,DocumentHighlightAdapter:()=>Ct,DocumentLinkAdapter:()=>Rt,DocumentRangeFormattingEditProvider:()=>Pt,DocumentSymbolAdapter:()=>St,FoldingRangeAdapter:()=>Lt,HoverAdapter:()=>bt,ReferenceAdapter:()=>xt,RenameAdapter:()=>It,SelectionRangeAdapter:()=>Ot,WorkerManager:()=>se,fromPosition:()=>ft,fromRange:()=>pt,setupMode:()=>rn,toRange:()=>mt,toTextEdit:()=>_t});var r,i,o=n(15030),a=Object.defineProperty,s=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,u=Object.prototype.hasOwnProperty,d=(e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of c(t))u.call(e,i)||i===n||a(e,i,{get:()=>t[i],enumerable:!(r=s(t,i))||r.enumerable});return e},g={};d(g,r=o,"default"),i&&d(i,r,"default");var l,h,f,p,m,v,_,b,k,w,C,y,E,A,x,I,S,T,R,D,P,M,j,L,F,O,N,W,U,V,H,K,z,q,X,B,$,Q,G,J,Y,Z,ee,te,ne,re,ie,oe,ae,se=class{_defaults;_idleCheckInterval;_lastUsedTime;_configChangeListener;_worker;_client;constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval((()=>this._checkIfIdle()),3e4),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange((()=>this._stopWorker()))}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>12e4&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=g.editor.createWebWorker({moduleId:"vs/language/json/jsonWorker",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then((e=>{t=e})).then((t=>{if(this._worker)return this._worker.withSyncedResources(e)})).then((e=>t))}};(h=l||(l={})).MIN_VALUE=-2147483648,h.MAX_VALUE=2147483647,(p=f||(f={})).MIN_VALUE=0,p.MAX_VALUE=2147483647,(v=m||(m={})).create=function(e,t){return e===Number.MAX_VALUE&&(e=f.MAX_VALUE),t===Number.MAX_VALUE&&(t=f.MAX_VALUE),{line:e,character:t}},v.is=function(e){var t=e;return st.objectLiteral(t)&&st.uinteger(t.line)&&st.uinteger(t.character)},(b=_||(_={})).create=function(e,t,n,r){if(st.uinteger(e)&&st.uinteger(t)&&st.uinteger(n)&&st.uinteger(r))return{start:m.create(e,t),end:m.create(n,r)};if(m.is(e)&&m.is(t))return{start:e,end:t};throw new Error("Range#create called with invalid arguments["+e+", "+t+", "+n+", "+r+"]")},b.is=function(e){var t=e;return st.objectLiteral(t)&&m.is(t.start)&&m.is(t.end)},(w=k||(k={})).create=function(e,t){return{uri:e,range:t}},w.is=function(e){var t=e;return st.defined(t)&&_.is(t.range)&&(st.string(t.uri)||st.undefined(t.uri))},(y=C||(C={})).create=function(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}},y.is=function(e){var t=e;return st.defined(t)&&_.is(t.targetRange)&&st.string(t.targetUri)&&(_.is(t.targetSelectionRange)||st.undefined(t.targetSelectionRange))&&(_.is(t.originSelectionRange)||st.undefined(t.originSelectionRange))},(A=E||(E={})).create=function(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}},A.is=function(e){var t=e;return st.numberRange(t.red,0,1)&&st.numberRange(t.green,0,1)&&st.numberRange(t.blue,0,1)&&st.numberRange(t.alpha,0,1)},(I=x||(x={})).create=function(e,t){return{range:e,color:t}},I.is=function(e){var t=e;return _.is(t.range)&&E.is(t.color)},(T=S||(S={})).create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},T.is=function(e){var t=e;return st.string(t.label)&&(st.undefined(t.textEdit)||q.is(t))&&(st.undefined(t.additionalTextEdits)||st.typedArray(t.additionalTextEdits,q.is))},(D=R||(R={})).Comment="comment",D.Imports="imports",D.Region="region",(M=P||(P={})).create=function(e,t,n,r,i){var o={startLine:e,endLine:t};return st.defined(n)&&(o.startCharacter=n),st.defined(r)&&(o.endCharacter=r),st.defined(i)&&(o.kind=i),o},M.is=function(e){var t=e;return st.uinteger(t.startLine)&&st.uinteger(t.startLine)&&(st.undefined(t.startCharacter)||st.uinteger(t.startCharacter))&&(st.undefined(t.endCharacter)||st.uinteger(t.endCharacter))&&(st.undefined(t.kind)||st.string(t.kind))},(L=j||(j={})).create=function(e,t){return{location:e,message:t}},L.is=function(e){var t=e;return st.defined(t)&&k.is(t.location)&&st.string(t.message)},(O=F||(F={})).Error=1,O.Warning=2,O.Information=3,O.Hint=4,(W=N||(N={})).Unnecessary=1,W.Deprecated=2,(U||(U={})).is=function(e){var t=e;return null!=t&&st.string(t.href)},(H=V||(V={})).create=function(e,t,n,r,i,o){var a={range:e,message:t};return st.defined(n)&&(a.severity=n),st.defined(r)&&(a.code=r),st.defined(i)&&(a.source=i),st.defined(o)&&(a.relatedInformation=o),a},H.is=function(e){var t,n=e;return st.defined(n)&&_.is(n.range)&&st.string(n.message)&&(st.number(n.severity)||st.undefined(n.severity))&&(st.integer(n.code)||st.string(n.code)||st.undefined(n.code))&&(st.undefined(n.codeDescription)||st.string(null===(t=n.codeDescription)||void 0===t?void 0:t.href))&&(st.string(n.source)||st.undefined(n.source))&&(st.undefined(n.relatedInformation)||st.typedArray(n.relatedInformation,j.is))},(z=K||(K={})).create=function(e,t){for(var n=[],r=2;r0&&(i.arguments=n),i},z.is=function(e){var t=e;return st.defined(t)&&st.string(t.title)&&st.string(t.command)},(X=q||(q={})).replace=function(e,t){return{range:e,newText:t}},X.insert=function(e,t){return{range:{start:e,end:e},newText:t}},X.del=function(e){return{range:e,newText:""}},X.is=function(e){var t=e;return st.objectLiteral(t)&&st.string(t.newText)&&_.is(t.range)},($=B||(B={})).create=function(e,t,n){var r={label:e};return void 0!==t&&(r.needsConfirmation=t),void 0!==n&&(r.description=n),r},$.is=function(e){var t=e;return void 0!==t&&st.objectLiteral(t)&&st.string(t.label)&&(st.boolean(t.needsConfirmation)||void 0===t.needsConfirmation)&&(st.string(t.description)||void 0===t.description)},(Q||(Q={})).is=function(e){return"string"==typeof e},(J=G||(G={})).replace=function(e,t,n){return{range:e,newText:t,annotationId:n}},J.insert=function(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}},J.del=function(e,t){return{range:e,newText:"",annotationId:t}},J.is=function(e){var t=e;return q.is(t)&&(B.is(t.annotationId)||Q.is(t.annotationId))},(Z=Y||(Y={})).create=function(e,t){return{textDocument:e,edits:t}},Z.is=function(e){var t=e;return st.defined(t)&&le.is(t.textDocument)&&Array.isArray(t.edits)},(te=ee||(ee={})).create=function(e,t,n){var r={kind:"create",uri:e};return void 0===t||void 0===t.overwrite&&void 0===t.ignoreIfExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},te.is=function(e){var t=e;return t&&"create"===t.kind&&st.string(t.uri)&&(void 0===t.options||(void 0===t.options.overwrite||st.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||st.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||Q.is(t.annotationId))},(re=ne||(ne={})).create=function(e,t,n,r){var i={kind:"rename",oldUri:e,newUri:t};return void 0===n||void 0===n.overwrite&&void 0===n.ignoreIfExists||(i.options=n),void 0!==r&&(i.annotationId=r),i},re.is=function(e){var t=e;return t&&"rename"===t.kind&&st.string(t.oldUri)&&st.string(t.newUri)&&(void 0===t.options||(void 0===t.options.overwrite||st.boolean(t.options.overwrite))&&(void 0===t.options.ignoreIfExists||st.boolean(t.options.ignoreIfExists)))&&(void 0===t.annotationId||Q.is(t.annotationId))},(oe=ie||(ie={})).create=function(e,t,n){var r={kind:"delete",uri:e};return void 0===t||void 0===t.recursive&&void 0===t.ignoreIfNotExists||(r.options=t),void 0!==n&&(r.annotationId=n),r},oe.is=function(e){var t=e;return t&&"delete"===t.kind&&st.string(t.uri)&&(void 0===t.options||(void 0===t.options.recursive||st.boolean(t.options.recursive))&&(void 0===t.options.ignoreIfNotExists||st.boolean(t.options.ignoreIfNotExists)))&&(void 0===t.annotationId||Q.is(t.annotationId))},(ae||(ae={})).is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||t.documentChanges.every((function(e){return st.string(e.kind)?ee.is(e)||ne.is(e)||ie.is(e):Y.is(e)})))};var ce,ue,de,ge,le,he,fe,pe,me,ve,_e,be,ke,we,Ce,ye,Ee,Ae,xe,Ie,Se,Te,Re,De,Pe,Me,je,Le,Fe,Oe,Ne,We,Ue,Ve,He,Ke,ze,qe,Xe,Be,$e,Qe,Ge,Je,Ye,Ze,et,tt,nt,rt,it,ot=function(){function e(e,t){this.edits=e,this.changeAnnotations=t}return e.prototype.insert=function(e,t,n){var r,i;if(void 0===n?r=q.insert(e,t):Q.is(n)?(i=n,r=G.insert(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=G.insert(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.replace=function(e,t,n){var r,i;if(void 0===n?r=q.replace(e,t):Q.is(n)?(i=n,r=G.replace(e,t,n)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(n),r=G.replace(e,t,i)),this.edits.push(r),void 0!==i)return i},e.prototype.delete=function(e,t){var n,r;if(void 0===t?n=q.del(e):Q.is(t)?(r=t,n=G.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),r=this.changeAnnotations.manage(t),n=G.del(e,r)),this.edits.push(n),void 0!==r)return r},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e.prototype.assertChangeAnnotations=function(e){if(void 0===e)throw new Error("Text edit change is not configured to manage change annotations.")},e}(),at=function(){function e(e){this._annotations=void 0===e?Object.create(null):e,this._counter=0,this._size=0}return e.prototype.all=function(){return this._annotations},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),e.prototype.manage=function(e,t){var n;if(Q.is(e)?n=e:(n=this.nextId(),t=e),void 0!==this._annotations[n])throw new Error("Id "+n+" is already in use.");if(void 0===t)throw new Error("No annotation provided for id "+n);return this._annotations[n]=t,this._size++,n},e.prototype.nextId=function(){return this._counter++,this._counter.toString()},e}();!function(){function e(e){var t=this;this._textEditChanges=Object.create(null),void 0!==e?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new at(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach((function(e){if(Y.is(e)){var n=new ot(e.edits,t._changeAnnotations);t._textEditChanges[e.textDocument.uri]=n}}))):e.changes&&Object.keys(e.changes).forEach((function(n){var r=new ot(e.changes[n]);t._textEditChanges[n]=r}))):this._workspaceEdit={}}Object.defineProperty(e.prototype,"edit",{get:function(){return this.initDocumentChanges(),void 0!==this._changeAnnotations&&(0===this._changeAnnotations.size?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),e.prototype.getTextEditChange=function(e){if(le.is(e)){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var t={uri:e.uri,version:e.version};if(!(r=this._textEditChanges[t.uri])){var n={textDocument:t,edits:i=[]};this._workspaceEdit.documentChanges.push(n),r=new ot(i,this._changeAnnotations),this._textEditChanges[t.uri]=r}return r}if(this.initChanges(),void 0===this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var r;if(!(r=this._textEditChanges[e])){var i=[];this._workspaceEdit.changes[e]=i,r=new ot(i),this._textEditChanges[e]=r}return r},e.prototype.initDocumentChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._changeAnnotations=new at,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},e.prototype.initChanges=function(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._workspaceEdit.changes=Object.create(null))},e.prototype.createFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(B.is(t)||Q.is(t)?r=t:n=t,void 0===r?i=ee.create(e,n):(o=Q.is(r)?r:this._changeAnnotations.manage(r),i=ee.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o},e.prototype.renameFile=function(e,t,n,r){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var i,o,a;if(B.is(n)||Q.is(n)?i=n:r=n,void 0===i?o=ne.create(e,t,r):(a=Q.is(i)?i:this._changeAnnotations.manage(i),o=ne.create(e,t,r,a)),this._workspaceEdit.documentChanges.push(o),void 0!==a)return a},e.prototype.deleteFile=function(e,t,n){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for document changes.");var r,i,o;if(B.is(t)||Q.is(t)?r=t:n=t,void 0===r?i=ie.create(e,n):(o=Q.is(r)?r:this._changeAnnotations.manage(r),i=ie.create(e,n,o)),this._workspaceEdit.documentChanges.push(i),void 0!==o)return o}}();(ue=ce||(ce={})).create=function(e){return{uri:e}},ue.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)},(ge=de||(de={})).create=function(e,t){return{uri:e,version:t}},ge.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&st.integer(t.version)},(he=le||(le={})).create=function(e,t){return{uri:e,version:t}},he.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&(null===t.version||st.integer(t.version))},(pe=fe||(fe={})).create=function(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}},pe.is=function(e){var t=e;return st.defined(t)&&st.string(t.uri)&&st.string(t.languageId)&&st.integer(t.version)&&st.string(t.text)},(ve=me||(me={})).PlainText="plaintext",ve.Markdown="markdown",function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(me||(me={})),(_e||(_e={})).is=function(e){var t=e;return st.objectLiteral(e)&&me.is(t.kind)&&st.string(t.value)},(ke=be||(be={})).Text=1,ke.Method=2,ke.Function=3,ke.Constructor=4,ke.Field=5,ke.Variable=6,ke.Class=7,ke.Interface=8,ke.Module=9,ke.Property=10,ke.Unit=11,ke.Value=12,ke.Enum=13,ke.Keyword=14,ke.Snippet=15,ke.Color=16,ke.File=17,ke.Reference=18,ke.Folder=19,ke.EnumMember=20,ke.Constant=21,ke.Struct=22,ke.Event=23,ke.Operator=24,ke.TypeParameter=25,(Ce=we||(we={})).PlainText=1,Ce.Snippet=2,(ye||(ye={})).Deprecated=1,(Ae=Ee||(Ee={})).create=function(e,t,n){return{newText:e,insert:t,replace:n}},Ae.is=function(e){var t=e;return t&&st.string(t.newText)&&_.is(t.insert)&&_.is(t.replace)},(Ie=xe||(xe={})).asIs=1,Ie.adjustIndentation=2,(Se||(Se={})).create=function(e){return{label:e}},(Te||(Te={})).create=function(e,t){return{items:e||[],isIncomplete:!!t}},(De=Re||(Re={})).fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},De.is=function(e){var t=e;return st.string(t)||st.objectLiteral(t)&&st.string(t.language)&&st.string(t.value)},(Pe||(Pe={})).is=function(e){var t=e;return!!t&&st.objectLiteral(t)&&(_e.is(t.contents)||Re.is(t.contents)||st.typedArray(t.contents,Re.is))&&(void 0===e.range||_.is(e.range))},(Me||(Me={})).create=function(e,t){return t?{label:e,documentation:t}:{label:e}},(je||(je={})).create=function(e,t){for(var n=[],r=2;r=0;a--){var s=i[a],c=e.offsetAt(s.range.start),u=e.offsetAt(s.range.end);if(!(u<=o))throw new Error("Overlapping edit");r=r.substring(0,c)+s.newText+r.substring(u,r.length),o=c}return r}}(it||(it={}));var st,ct,ut,dt=function(){function e(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0},e.prototype.getLineOffsets=function(){if(void 0===this._lineOffsets){for(var e=[],t=this._content,n=!0,r=0;r0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return m.create(0,e);for(;ne?r=i:n=i+1}var o=n-1;return m.create(o,e-t[o])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],r=e.line+1{let t,n=e.getLanguageId();n===this._languageId&&(this._listener[e.uri.toString()]=e.onDidChangeContent((()=>{window.clearTimeout(t),t=window.setTimeout((()=>this._doValidate(e.uri,n)),500)})),this._doValidate(e.uri,n))},i=e=>{g.editor.setModelMarkers(e,this._languageId,[]);let t=e.uri.toString(),n=this._listener[t];n&&(n.dispose(),delete this._listener[t])};this._disposables.push(g.editor.onDidCreateModel(r)),this._disposables.push(g.editor.onWillDisposeModel(i)),this._disposables.push(g.editor.onDidChangeModelLanguage((e=>{i(e.model),r(e.model)}))),this._disposables.push(n((e=>{g.editor.getModels().forEach((e=>{e.getLanguageId()===this._languageId&&(i(e),r(e))}))}))),this._disposables.push({dispose:()=>{g.editor.getModels().forEach(i);for(let e in this._listener)this._listener[e].dispose()}}),g.editor.getModels().forEach(r)}_disposables=[];_listener=Object.create(null);dispose(){this._disposables.forEach((e=>e&&e.dispose())),this._disposables.length=0}_doValidate(e,t){this._worker(e).then((t=>t.doValidation(e.toString()))).then((n=>{const r=n.map((e=>function(e,t){let n="number"==typeof t.code?String(t.code):t.code;return{severity:lt(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source}}(0,e)));let i=g.editor.getModel(e);i&&i.getLanguageId()===t&&g.editor.setModelMarkers(i,t,r)})).then(void 0,(e=>{console.error(e)}))}};function lt(e){switch(e){case F.Error:return g.MarkerSeverity.Error;case F.Warning:return g.MarkerSeverity.Warning;case F.Information:return g.MarkerSeverity.Info;case F.Hint:return g.MarkerSeverity.Hint;default:return g.MarkerSeverity.Info}}var ht=class{constructor(e,t){this._worker=e,this._triggerCharacters=t}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.doComplete(i.toString(),ft(t)))).then((n=>{if(!n)return;const r=e.getWordUntilPosition(t),i=new g.Range(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn),o=n.items.map((e=>{const t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,command:(n=e.command,n&&"editor.action.triggerSuggest"===n.command?{id:n.command,title:n.title,arguments:n.arguments}:void 0),range:i,kind:vt(e.kind)};var n,r;return e.textEdit&&(void 0!==(r=e.textEdit).insert&&void 0!==r.replace?t.range={insert:mt(e.textEdit.insert),replace:mt(e.textEdit.replace)}:t.range=mt(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(_t)),e.insertTextFormat===we.Snippet&&(t.insertTextRules=g.languages.CompletionItemInsertTextRule.InsertAsSnippet),t}));return{isIncomplete:n.isIncomplete,suggestions:o}}))}};function ft(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function pt(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function mt(e){if(e)return new g.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function vt(e){const t=g.languages.CompletionItemKind;switch(e){case be.Text:return t.Text;case be.Method:return t.Method;case be.Function:return t.Function;case be.Constructor:return t.Constructor;case be.Field:return t.Field;case be.Variable:return t.Variable;case be.Class:return t.Class;case be.Interface:return t.Interface;case be.Module:return t.Module;case be.Property:return t.Property;case be.Unit:return t.Unit;case be.Value:return t.Value;case be.Enum:return t.Enum;case be.Keyword:return t.Keyword;case be.Snippet:return t.Snippet;case be.Color:return t.Color;case be.File:return t.File;case be.Reference:return t.Reference}return t.Property}function _t(e){if(e)return{range:mt(e.range),text:e.newText}}var bt=class{constructor(e){this._worker=e}provideHover(e,t,n){let r=e.uri;return this._worker(r).then((e=>e.doHover(r.toString(),ft(t)))).then((e=>{if(e)return{range:mt(e.range),contents:wt(e.contents)}}))}};function kt(e){return"string"==typeof e?{value:e}:(t=e)&&"object"==typeof t&&"string"==typeof t.kind?"plaintext"===e.kind?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+"\n"+e.value+"\n```\n"};var t}function wt(e){if(e)return Array.isArray(e)?e.map(kt):[kt(e)]}var Ct=class{constructor(e){this._worker=e}provideDocumentHighlights(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.findDocumentHighlights(r.toString(),ft(t)))).then((e=>{if(e)return e.map((e=>({range:mt(e.range),kind:yt(e.kind)})))}))}};function yt(e){switch(e){case Le.Read:return g.languages.DocumentHighlightKind.Read;case Le.Write:return g.languages.DocumentHighlightKind.Write;case Le.Text:return g.languages.DocumentHighlightKind.Text}return g.languages.DocumentHighlightKind.Text}var Et=class{constructor(e){this._worker=e}provideDefinition(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.findDefinition(r.toString(),ft(t)))).then((e=>{if(e)return[At(e)]}))}};function At(e){return{uri:g.Uri.parse(e.uri),range:mt(e.range)}}var xt=class{constructor(e){this._worker=e}provideReferences(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.findReferences(i.toString(),ft(t)))).then((e=>{if(e)return e.map(At)}))}},It=class{constructor(e){this._worker=e}provideRenameEdits(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.doRename(i.toString(),ft(t),n))).then((e=>function(e){if(!e||!e.changes)return;let t=[];for(let n in e.changes){const r=g.Uri.parse(n);for(let i of e.changes[n])t.push({resource:r,versionId:void 0,textEdit:{range:mt(i.range),text:i.newText}})}return{edits:t}}(e)))}};var St=class{constructor(e){this._worker=e}provideDocumentSymbols(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentSymbols(n.toString()))).then((e=>{if(e)return e.map((e=>({name:e.name,detail:"",containerName:e.containerName,kind:Tt(e.kind),range:mt(e.location.range),selectionRange:mt(e.location.range),tags:[]})))}))}};function Tt(e){let t=g.languages.SymbolKind;switch(e){case Ne.File:return t.Array;case Ne.Module:return t.Module;case Ne.Namespace:return t.Namespace;case Ne.Package:return t.Package;case Ne.Class:return t.Class;case Ne.Method:return t.Method;case Ne.Property:return t.Property;case Ne.Field:return t.Field;case Ne.Constructor:return t.Constructor;case Ne.Enum:return t.Enum;case Ne.Interface:return t.Interface;case Ne.Function:return t.Function;case Ne.Variable:return t.Variable;case Ne.Constant:return t.Constant;case Ne.String:return t.String;case Ne.Number:return t.Number;case Ne.Boolean:return t.Boolean;case Ne.Array:return t.Array}return t.Function}var Rt=class{constructor(e){this._worker=e}provideLinks(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentLinks(n.toString()))).then((e=>{if(e)return{links:e.map((e=>({range:mt(e.range),url:e.target})))}}))}},Dt=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.format(r.toString(),null,Mt(t)).then((e=>{if(e&&0!==e.length)return e.map(_t)}))))}},Pt=class{constructor(e){this._worker=e}provideDocumentRangeFormattingEdits(e,t,n,r){const i=e.uri;return this._worker(i).then((e=>e.format(i.toString(),pt(t),Mt(n)).then((e=>{if(e&&0!==e.length)return e.map(_t)}))))}};function Mt(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var jt=class{constructor(e){this._worker=e}provideDocumentColors(e,t){const n=e.uri;return this._worker(n).then((e=>e.findDocumentColors(n.toString()))).then((e=>{if(e)return e.map((e=>({color:e.color,range:mt(e.range)})))}))}provideColorPresentations(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getColorPresentations(r.toString(),t.color,pt(t.range)))).then((e=>{if(e)return e.map((e=>{let t={label:e.label};return e.textEdit&&(t.textEdit=_t(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(_t)),t}))}))}},Lt=class{constructor(e){this._worker=e}provideFoldingRanges(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getFoldingRanges(r.toString(),t))).then((e=>{if(e)return e.map((e=>{const t={start:e.startLine+1,end:e.endLine+1};return void 0!==e.kind&&(t.kind=function(e){switch(e){case R.Comment:return g.languages.FoldingRangeKind.Comment;case R.Imports:return g.languages.FoldingRangeKind.Imports;case R.Region:return g.languages.FoldingRangeKind.Region}return}(e.kind)),t}))}))}};var Ft,Ot=class{constructor(e){this._worker=e}provideSelectionRanges(e,t,n){const r=e.uri;return this._worker(r).then((e=>e.getSelectionRanges(r.toString(),t.map(ft)))).then((e=>{if(e)return e.map((e=>{const t=[];for(;e;)t.push({range:mt(e.range)}),e=e.parent;return t}))}))}};function Nt(e){return 32===e||9===e||11===e||12===e||160===e||5760===e||e>=8192&&e<=8203||8239===e||8287===e||12288===e||65279===e}function Wt(e){return 10===e||13===e||8232===e||8233===e}function Ut(e){return e>=48&&e<=57}(Ft||(Ft={})).DEFAULT={allowTrailingComma:!1};var Vt=function(e,t){void 0===t&&(t=!1);var n=e.length,r=0,i="",o=0,a=16,s=0,c=0,u=0,d=0,g=0;function l(t,n){for(var i=0,o=0;i=48&&a<=57)o=16*o+a-48;else if(a>=65&&a<=70)o=16*o+a-65+10;else{if(!(a>=97&&a<=102))break;o=16*o+a-97+10}r++,i++}return i=n)return o=n,a=17;var t=e.charCodeAt(r);if(Nt(t)){do{r++,i+=String.fromCharCode(t),t=e.charCodeAt(r)}while(Nt(t));return a=15}if(Wt(t))return r++,i+=String.fromCharCode(t),13===t&&10===e.charCodeAt(r)&&(r++,i+="\n"),s++,u=r,a=14;switch(t){case 123:return r++,a=1;case 125:return r++,a=2;case 91:return r++,a=3;case 93:return r++,a=4;case 58:return r++,a=6;case 44:return r++,a=5;case 34:return r++,i=function(){for(var t="",i=r;;){if(r>=n){t+=e.substring(i,r),g=2;break}var o=e.charCodeAt(r);if(34===o){t+=e.substring(i,r),r++;break}if(92!==o){if(o>=0&&o<=31){if(Wt(o)){t+=e.substring(i,r),g=2;break}g=6}r++}else{if(t+=e.substring(i,r),++r>=n){g=2;break}switch(e.charCodeAt(r++)){case 34:t+='"';break;case 92:t+="\\";break;case 47:t+="/";break;case 98:t+="\b";break;case 102:t+="\f";break;case 110:t+="\n";break;case 114:t+="\r";break;case 116:t+="\t";break;case 117:var a=l(4,!0);a>=0?t+=String.fromCharCode(a):g=4;break;default:g=5}i=r}}return t}(),a=10;case 47:var h=r-1;if(47===e.charCodeAt(r+1)){for(r+=2;r=12&&e<=15);return e}:h,getToken:function(){return a},getTokenValue:function(){return i},getTokenOffset:function(){return o},getTokenLength:function(){return r-o},getTokenStartLine:function(){return c},getTokenStartCharacter:function(){return o-d},getTokenError:function(){return g}}};function Ht(e){return{getInitialState:()=>new tn(null,null,!1,null),tokenize:(t,n)=>function(e,t,n,r=0){let i=0,o=!1;switch(n.scanError){case 2:t='"'+t,i=1;break;case 1:t="/*"+t,i=2}const a=Vt(t);let s=n.lastWasColon,c=n.parents;const u={tokens:[],endState:n.clone()};for(;;){let d=r+a.getPosition(),g="";const l=a.scan();if(17===l)break;if(d===r+a.getPosition())throw new Error("Scanner did not advance, next 3 characters are: "+t.substr(a.getPosition(),3));switch(o&&(d-=i),o=i>0,l){case 1:c=en.push(c,0),g=Kt,s=!1;break;case 2:c=en.pop(c),g=Kt,s=!1;break;case 3:c=en.push(c,1),g=zt,s=!1;break;case 4:c=en.pop(c),g=zt,s=!1;break;case 6:g=qt,s=!0;break;case 5:g=Xt,s=!1;break;case 8:case 9:g=Bt,s=!1;break;case 7:g=$t,s=!1;break;case 10:const e=1===(c?c.type:0);g=s||e?Qt:Jt,s=!1;break;case 11:g=Gt,s=!1}if(e)switch(l){case 12:g=Zt;break;case 13:g=Yt}u.endState=new tn(n.getStateData(),a.getTokenError(),s,c),u.tokens.push({startIndex:d,scopes:g})}return u}(e,t,n)}}var Kt="delimiter.bracket.json",zt="delimiter.array.json",qt="delimiter.colon.json",Xt="delimiter.comma.json",Bt="keyword.json",$t="keyword.json",Qt="string.value.json",Gt="number.json",Jt="string.key.json",Yt="comment.block.json",Zt="comment.line.json",en=class{constructor(e,t){this.parent=e,this.type=t}static pop(e){return e?e.parent:null}static push(e,t){return new en(e,t)}static equals(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;for(;e&&t;){if(e===t)return!0;if(e.type!==t.type)return!1;e=e.parent,t=t.parent}return!0}},tn=class{_state;scanError;lastWasColon;parents;constructor(e,t,n,r){this._state=e,this.scanError=t,this.lastWasColon=n,this.parents=r}clone(){return new tn(this._state,this.scanError,this.lastWasColon,this.parents)}equals(e){return e===this||!!(e&&e instanceof tn)&&(this.scanError===e.scanError&&this.lastWasColon===e.lastWasColon&&en.equals(this.parents,e.parents))}getStateData(){return this._state}setStateData(e){this._state=e}};var nn=class extends gt{constructor(e,t,n){super(e,t,n.onDidChange),this._disposables.push(g.editor.onWillDisposeModel((e=>{this._resetSchema(e.uri)}))),this._disposables.push(g.editor.onDidChangeModelLanguage((e=>{this._resetSchema(e.model.uri)})))}_resetSchema(e){this._worker().then((t=>{t.resetSchema(e.toString())}))}};function rn(e){const t=[],n=[],r=new se(e);t.push(r);const i=(...e)=>r.getLanguageServiceWorker(...e);function o(){const{languageId:t,modeConfiguration:r}=e;an(n),r.documentFormattingEdits&&n.push(g.languages.registerDocumentFormattingEditProvider(t,new Dt(i))),r.documentRangeFormattingEdits&&n.push(g.languages.registerDocumentRangeFormattingEditProvider(t,new Pt(i))),r.completionItems&&n.push(g.languages.registerCompletionItemProvider(t,new ht(i,[" ",":",'"']))),r.hovers&&n.push(g.languages.registerHoverProvider(t,new bt(i))),r.documentSymbols&&n.push(g.languages.registerDocumentSymbolProvider(t,new St(i))),r.tokens&&n.push(g.languages.setTokensProvider(t,Ht(!0))),r.colors&&n.push(g.languages.registerColorProvider(t,new jt(i))),r.foldingRanges&&n.push(g.languages.registerFoldingRangeProvider(t,new Lt(i))),r.diagnostics&&n.push(new nn(t,i,e)),r.selectionRanges&&n.push(g.languages.registerSelectionRangeProvider(t,new Ot(i)))}o(),t.push(g.languages.setLanguageConfiguration(e.languageId,sn));let a=e.modeConfiguration;return e.onDidChange((e=>{e.modeConfiguration!==a&&(a=e.modeConfiguration,o())})),t.push(on(n)),on(t)}function on(e){return{dispose:()=>an(e)}}function an(e){for(;e.length;)e.pop().dispose()}var sn={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:'"',close:'"',notIn:["string"]}]}}}]); \ No newline at end of file diff --git a/assets/js/665.79c8901c.js.LICENSE.txt b/assets/js/665.79c8901c.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/665.79c8901c.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/665.add6e792.js b/assets/js/665.add6e792.js new file mode 100644 index 00000000000..b99e843ef3b --- /dev/null +++ b/assets/js/665.add6e792.js @@ -0,0 +1,2627 @@ +"use strict"; +exports.id = 665; +exports.ids = [665]; +exports.modules = { + +/***/ 90665: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "CompletionAdapter": () => (/* binding */ CompletionAdapter), +/* harmony export */ "DefinitionAdapter": () => (/* binding */ DefinitionAdapter), +/* harmony export */ "DiagnosticsAdapter": () => (/* binding */ DiagnosticsAdapter), +/* harmony export */ "DocumentColorAdapter": () => (/* binding */ DocumentColorAdapter), +/* harmony export */ "DocumentFormattingEditProvider": () => (/* binding */ DocumentFormattingEditProvider), +/* harmony export */ "DocumentHighlightAdapter": () => (/* binding */ DocumentHighlightAdapter), +/* harmony export */ "DocumentLinkAdapter": () => (/* binding */ DocumentLinkAdapter), +/* harmony export */ "DocumentRangeFormattingEditProvider": () => (/* binding */ DocumentRangeFormattingEditProvider), +/* harmony export */ "DocumentSymbolAdapter": () => (/* binding */ DocumentSymbolAdapter), +/* harmony export */ "FoldingRangeAdapter": () => (/* binding */ FoldingRangeAdapter), +/* harmony export */ "HoverAdapter": () => (/* binding */ HoverAdapter), +/* harmony export */ "ReferenceAdapter": () => (/* binding */ ReferenceAdapter), +/* harmony export */ "RenameAdapter": () => (/* binding */ RenameAdapter), +/* harmony export */ "SelectionRangeAdapter": () => (/* binding */ SelectionRangeAdapter), +/* harmony export */ "WorkerManager": () => (/* binding */ WorkerManager), +/* harmony export */ "fromPosition": () => (/* binding */ fromPosition), +/* harmony export */ "fromRange": () => (/* binding */ fromRange), +/* harmony export */ "setupMode": () => (/* binding */ setupMode), +/* harmony export */ "toRange": () => (/* binding */ toRange), +/* harmony export */ "toTextEdit": () => (/* binding */ toTextEdit) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15030); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/language/json/workerManager.ts +var STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3; +var WorkerManager = class { + _defaults; + _idleCheckInterval; + _lastUsedTime; + _configChangeListener; + _worker; + _client; + constructor(defaults) { + this._defaults = defaults; + this._worker = null; + this._client = null; + this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3); + this._lastUsedTime = 0; + this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker()); + } + _stopWorker() { + if (this._worker) { + this._worker.dispose(); + this._worker = null; + } + this._client = null; + } + dispose() { + clearInterval(this._idleCheckInterval); + this._configChangeListener.dispose(); + this._stopWorker(); + } + _checkIfIdle() { + if (!this._worker) { + return; + } + let timePassedSinceLastUsed = Date.now() - this._lastUsedTime; + if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) { + this._stopWorker(); + } + } + _getClient() { + this._lastUsedTime = Date.now(); + if (!this._client) { + this._worker = monaco_editor_core_exports.editor.createWebWorker({ + moduleId: "vs/language/json/jsonWorker", + label: this._defaults.languageId, + createData: { + languageSettings: this._defaults.diagnosticsOptions, + languageId: this._defaults.languageId, + enableSchemaRequest: this._defaults.diagnosticsOptions.enableSchemaRequest + } + }); + this._client = this._worker.getProxy(); + } + return this._client; + } + getLanguageServiceWorker(...resources) { + let _client; + return this._getClient().then((client) => { + _client = client; + }).then((_) => { + if (this._worker) { + return this._worker.withSyncedResources(resources); + } + }).then((_) => _client); + } +}; + +// node_modules/vscode-languageserver-types/lib/esm/main.js +var integer; +(function(integer2) { + integer2.MIN_VALUE = -2147483648; + integer2.MAX_VALUE = 2147483647; +})(integer || (integer = {})); +var uinteger; +(function(uinteger2) { + uinteger2.MIN_VALUE = 0; + uinteger2.MAX_VALUE = 2147483647; +})(uinteger || (uinteger = {})); +var Position; +(function(Position3) { + function create(line, character) { + if (line === Number.MAX_VALUE) { + line = uinteger.MAX_VALUE; + } + if (character === Number.MAX_VALUE) { + character = uinteger.MAX_VALUE; + } + return { line, character }; + } + Position3.create = create; + function is(value) { + var candidate = value; + return Is.objectLiteral(candidate) && Is.uinteger(candidate.line) && Is.uinteger(candidate.character); + } + Position3.is = is; +})(Position || (Position = {})); +var Range; +(function(Range3) { + function create(one, two, three, four) { + if (Is.uinteger(one) && Is.uinteger(two) && Is.uinteger(three) && Is.uinteger(four)) { + return { start: Position.create(one, two), end: Position.create(three, four) }; + } else if (Position.is(one) && Position.is(two)) { + return { start: one, end: two }; + } else { + throw new Error("Range#create called with invalid arguments[" + one + ", " + two + ", " + three + ", " + four + "]"); + } + } + Range3.create = create; + function is(value) { + var candidate = value; + return Is.objectLiteral(candidate) && Position.is(candidate.start) && Position.is(candidate.end); + } + Range3.is = is; +})(Range || (Range = {})); +var Location; +(function(Location2) { + function create(uri, range) { + return { uri, range }; + } + Location2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Range.is(candidate.range) && (Is.string(candidate.uri) || Is.undefined(candidate.uri)); + } + Location2.is = is; +})(Location || (Location = {})); +var LocationLink; +(function(LocationLink2) { + function create(targetUri, targetRange, targetSelectionRange, originSelectionRange) { + return { targetUri, targetRange, targetSelectionRange, originSelectionRange }; + } + LocationLink2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Range.is(candidate.targetRange) && Is.string(candidate.targetUri) && (Range.is(candidate.targetSelectionRange) || Is.undefined(candidate.targetSelectionRange)) && (Range.is(candidate.originSelectionRange) || Is.undefined(candidate.originSelectionRange)); + } + LocationLink2.is = is; +})(LocationLink || (LocationLink = {})); +var Color; +(function(Color2) { + function create(red, green, blue, alpha) { + return { + red, + green, + blue, + alpha + }; + } + Color2.create = create; + function is(value) { + var candidate = value; + return Is.numberRange(candidate.red, 0, 1) && Is.numberRange(candidate.green, 0, 1) && Is.numberRange(candidate.blue, 0, 1) && Is.numberRange(candidate.alpha, 0, 1); + } + Color2.is = is; +})(Color || (Color = {})); +var ColorInformation; +(function(ColorInformation2) { + function create(range, color) { + return { + range, + color + }; + } + ColorInformation2.create = create; + function is(value) { + var candidate = value; + return Range.is(candidate.range) && Color.is(candidate.color); + } + ColorInformation2.is = is; +})(ColorInformation || (ColorInformation = {})); +var ColorPresentation; +(function(ColorPresentation2) { + function create(label, textEdit, additionalTextEdits) { + return { + label, + textEdit, + additionalTextEdits + }; + } + ColorPresentation2.create = create; + function is(value) { + var candidate = value; + return Is.string(candidate.label) && (Is.undefined(candidate.textEdit) || TextEdit.is(candidate)) && (Is.undefined(candidate.additionalTextEdits) || Is.typedArray(candidate.additionalTextEdits, TextEdit.is)); + } + ColorPresentation2.is = is; +})(ColorPresentation || (ColorPresentation = {})); +var FoldingRangeKind; +(function(FoldingRangeKind2) { + FoldingRangeKind2["Comment"] = "comment"; + FoldingRangeKind2["Imports"] = "imports"; + FoldingRangeKind2["Region"] = "region"; +})(FoldingRangeKind || (FoldingRangeKind = {})); +var FoldingRange; +(function(FoldingRange2) { + function create(startLine, endLine, startCharacter, endCharacter, kind) { + var result = { + startLine, + endLine + }; + if (Is.defined(startCharacter)) { + result.startCharacter = startCharacter; + } + if (Is.defined(endCharacter)) { + result.endCharacter = endCharacter; + } + if (Is.defined(kind)) { + result.kind = kind; + } + return result; + } + FoldingRange2.create = create; + function is(value) { + var candidate = value; + return Is.uinteger(candidate.startLine) && Is.uinteger(candidate.startLine) && (Is.undefined(candidate.startCharacter) || Is.uinteger(candidate.startCharacter)) && (Is.undefined(candidate.endCharacter) || Is.uinteger(candidate.endCharacter)) && (Is.undefined(candidate.kind) || Is.string(candidate.kind)); + } + FoldingRange2.is = is; +})(FoldingRange || (FoldingRange = {})); +var DiagnosticRelatedInformation; +(function(DiagnosticRelatedInformation2) { + function create(location, message) { + return { + location, + message + }; + } + DiagnosticRelatedInformation2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Location.is(candidate.location) && Is.string(candidate.message); + } + DiagnosticRelatedInformation2.is = is; +})(DiagnosticRelatedInformation || (DiagnosticRelatedInformation = {})); +var DiagnosticSeverity; +(function(DiagnosticSeverity2) { + DiagnosticSeverity2.Error = 1; + DiagnosticSeverity2.Warning = 2; + DiagnosticSeverity2.Information = 3; + DiagnosticSeverity2.Hint = 4; +})(DiagnosticSeverity || (DiagnosticSeverity = {})); +var DiagnosticTag; +(function(DiagnosticTag2) { + DiagnosticTag2.Unnecessary = 1; + DiagnosticTag2.Deprecated = 2; +})(DiagnosticTag || (DiagnosticTag = {})); +var CodeDescription; +(function(CodeDescription2) { + function is(value) { + var candidate = value; + return candidate !== void 0 && candidate !== null && Is.string(candidate.href); + } + CodeDescription2.is = is; +})(CodeDescription || (CodeDescription = {})); +var Diagnostic; +(function(Diagnostic2) { + function create(range, message, severity, code, source, relatedInformation) { + var result = { range, message }; + if (Is.defined(severity)) { + result.severity = severity; + } + if (Is.defined(code)) { + result.code = code; + } + if (Is.defined(source)) { + result.source = source; + } + if (Is.defined(relatedInformation)) { + result.relatedInformation = relatedInformation; + } + return result; + } + Diagnostic2.create = create; + function is(value) { + var _a; + var candidate = value; + return Is.defined(candidate) && Range.is(candidate.range) && Is.string(candidate.message) && (Is.number(candidate.severity) || Is.undefined(candidate.severity)) && (Is.integer(candidate.code) || Is.string(candidate.code) || Is.undefined(candidate.code)) && (Is.undefined(candidate.codeDescription) || Is.string((_a = candidate.codeDescription) === null || _a === void 0 ? void 0 : _a.href)) && (Is.string(candidate.source) || Is.undefined(candidate.source)) && (Is.undefined(candidate.relatedInformation) || Is.typedArray(candidate.relatedInformation, DiagnosticRelatedInformation.is)); + } + Diagnostic2.is = is; +})(Diagnostic || (Diagnostic = {})); +var Command; +(function(Command2) { + function create(title, command) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + var result = { title, command }; + if (Is.defined(args) && args.length > 0) { + result.arguments = args; + } + return result; + } + Command2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.title) && Is.string(candidate.command); + } + Command2.is = is; +})(Command || (Command = {})); +var TextEdit; +(function(TextEdit2) { + function replace(range, newText) { + return { range, newText }; + } + TextEdit2.replace = replace; + function insert(position, newText) { + return { range: { start: position, end: position }, newText }; + } + TextEdit2.insert = insert; + function del(range) { + return { range, newText: "" }; + } + TextEdit2.del = del; + function is(value) { + var candidate = value; + return Is.objectLiteral(candidate) && Is.string(candidate.newText) && Range.is(candidate.range); + } + TextEdit2.is = is; +})(TextEdit || (TextEdit = {})); +var ChangeAnnotation; +(function(ChangeAnnotation2) { + function create(label, needsConfirmation, description) { + var result = { label }; + if (needsConfirmation !== void 0) { + result.needsConfirmation = needsConfirmation; + } + if (description !== void 0) { + result.description = description; + } + return result; + } + ChangeAnnotation2.create = create; + function is(value) { + var candidate = value; + return candidate !== void 0 && Is.objectLiteral(candidate) && Is.string(candidate.label) && (Is.boolean(candidate.needsConfirmation) || candidate.needsConfirmation === void 0) && (Is.string(candidate.description) || candidate.description === void 0); + } + ChangeAnnotation2.is = is; +})(ChangeAnnotation || (ChangeAnnotation = {})); +var ChangeAnnotationIdentifier; +(function(ChangeAnnotationIdentifier2) { + function is(value) { + var candidate = value; + return typeof candidate === "string"; + } + ChangeAnnotationIdentifier2.is = is; +})(ChangeAnnotationIdentifier || (ChangeAnnotationIdentifier = {})); +var AnnotatedTextEdit; +(function(AnnotatedTextEdit2) { + function replace(range, newText, annotation) { + return { range, newText, annotationId: annotation }; + } + AnnotatedTextEdit2.replace = replace; + function insert(position, newText, annotation) { + return { range: { start: position, end: position }, newText, annotationId: annotation }; + } + AnnotatedTextEdit2.insert = insert; + function del(range, annotation) { + return { range, newText: "", annotationId: annotation }; + } + AnnotatedTextEdit2.del = del; + function is(value) { + var candidate = value; + return TextEdit.is(candidate) && (ChangeAnnotation.is(candidate.annotationId) || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + AnnotatedTextEdit2.is = is; +})(AnnotatedTextEdit || (AnnotatedTextEdit = {})); +var TextDocumentEdit; +(function(TextDocumentEdit2) { + function create(textDocument, edits) { + return { textDocument, edits }; + } + TextDocumentEdit2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && OptionalVersionedTextDocumentIdentifier.is(candidate.textDocument) && Array.isArray(candidate.edits); + } + TextDocumentEdit2.is = is; +})(TextDocumentEdit || (TextDocumentEdit = {})); +var CreateFile; +(function(CreateFile2) { + function create(uri, options, annotation) { + var result = { + kind: "create", + uri + }; + if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) { + result.options = options; + } + if (annotation !== void 0) { + result.annotationId = annotation; + } + return result; + } + CreateFile2.create = create; + function is(value) { + var candidate = value; + return candidate && candidate.kind === "create" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + CreateFile2.is = is; +})(CreateFile || (CreateFile = {})); +var RenameFile; +(function(RenameFile2) { + function create(oldUri, newUri, options, annotation) { + var result = { + kind: "rename", + oldUri, + newUri + }; + if (options !== void 0 && (options.overwrite !== void 0 || options.ignoreIfExists !== void 0)) { + result.options = options; + } + if (annotation !== void 0) { + result.annotationId = annotation; + } + return result; + } + RenameFile2.create = create; + function is(value) { + var candidate = value; + return candidate && candidate.kind === "rename" && Is.string(candidate.oldUri) && Is.string(candidate.newUri) && (candidate.options === void 0 || (candidate.options.overwrite === void 0 || Is.boolean(candidate.options.overwrite)) && (candidate.options.ignoreIfExists === void 0 || Is.boolean(candidate.options.ignoreIfExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + RenameFile2.is = is; +})(RenameFile || (RenameFile = {})); +var DeleteFile; +(function(DeleteFile2) { + function create(uri, options, annotation) { + var result = { + kind: "delete", + uri + }; + if (options !== void 0 && (options.recursive !== void 0 || options.ignoreIfNotExists !== void 0)) { + result.options = options; + } + if (annotation !== void 0) { + result.annotationId = annotation; + } + return result; + } + DeleteFile2.create = create; + function is(value) { + var candidate = value; + return candidate && candidate.kind === "delete" && Is.string(candidate.uri) && (candidate.options === void 0 || (candidate.options.recursive === void 0 || Is.boolean(candidate.options.recursive)) && (candidate.options.ignoreIfNotExists === void 0 || Is.boolean(candidate.options.ignoreIfNotExists))) && (candidate.annotationId === void 0 || ChangeAnnotationIdentifier.is(candidate.annotationId)); + } + DeleteFile2.is = is; +})(DeleteFile || (DeleteFile = {})); +var WorkspaceEdit; +(function(WorkspaceEdit2) { + function is(value) { + var candidate = value; + return candidate && (candidate.changes !== void 0 || candidate.documentChanges !== void 0) && (candidate.documentChanges === void 0 || candidate.documentChanges.every(function(change) { + if (Is.string(change.kind)) { + return CreateFile.is(change) || RenameFile.is(change) || DeleteFile.is(change); + } else { + return TextDocumentEdit.is(change); + } + })); + } + WorkspaceEdit2.is = is; +})(WorkspaceEdit || (WorkspaceEdit = {})); +var TextEditChangeImpl = function() { + function TextEditChangeImpl2(edits, changeAnnotations) { + this.edits = edits; + this.changeAnnotations = changeAnnotations; + } + TextEditChangeImpl2.prototype.insert = function(position, newText, annotation) { + var edit; + var id; + if (annotation === void 0) { + edit = TextEdit.insert(position, newText); + } else if (ChangeAnnotationIdentifier.is(annotation)) { + id = annotation; + edit = AnnotatedTextEdit.insert(position, newText, annotation); + } else { + this.assertChangeAnnotations(this.changeAnnotations); + id = this.changeAnnotations.manage(annotation); + edit = AnnotatedTextEdit.insert(position, newText, id); + } + this.edits.push(edit); + if (id !== void 0) { + return id; + } + }; + TextEditChangeImpl2.prototype.replace = function(range, newText, annotation) { + var edit; + var id; + if (annotation === void 0) { + edit = TextEdit.replace(range, newText); + } else if (ChangeAnnotationIdentifier.is(annotation)) { + id = annotation; + edit = AnnotatedTextEdit.replace(range, newText, annotation); + } else { + this.assertChangeAnnotations(this.changeAnnotations); + id = this.changeAnnotations.manage(annotation); + edit = AnnotatedTextEdit.replace(range, newText, id); + } + this.edits.push(edit); + if (id !== void 0) { + return id; + } + }; + TextEditChangeImpl2.prototype.delete = function(range, annotation) { + var edit; + var id; + if (annotation === void 0) { + edit = TextEdit.del(range); + } else if (ChangeAnnotationIdentifier.is(annotation)) { + id = annotation; + edit = AnnotatedTextEdit.del(range, annotation); + } else { + this.assertChangeAnnotations(this.changeAnnotations); + id = this.changeAnnotations.manage(annotation); + edit = AnnotatedTextEdit.del(range, id); + } + this.edits.push(edit); + if (id !== void 0) { + return id; + } + }; + TextEditChangeImpl2.prototype.add = function(edit) { + this.edits.push(edit); + }; + TextEditChangeImpl2.prototype.all = function() { + return this.edits; + }; + TextEditChangeImpl2.prototype.clear = function() { + this.edits.splice(0, this.edits.length); + }; + TextEditChangeImpl2.prototype.assertChangeAnnotations = function(value) { + if (value === void 0) { + throw new Error("Text edit change is not configured to manage change annotations."); + } + }; + return TextEditChangeImpl2; +}(); +var ChangeAnnotations = function() { + function ChangeAnnotations2(annotations) { + this._annotations = annotations === void 0 ? /* @__PURE__ */ Object.create(null) : annotations; + this._counter = 0; + this._size = 0; + } + ChangeAnnotations2.prototype.all = function() { + return this._annotations; + }; + Object.defineProperty(ChangeAnnotations2.prototype, "size", { + get: function() { + return this._size; + }, + enumerable: false, + configurable: true + }); + ChangeAnnotations2.prototype.manage = function(idOrAnnotation, annotation) { + var id; + if (ChangeAnnotationIdentifier.is(idOrAnnotation)) { + id = idOrAnnotation; + } else { + id = this.nextId(); + annotation = idOrAnnotation; + } + if (this._annotations[id] !== void 0) { + throw new Error("Id " + id + " is already in use."); + } + if (annotation === void 0) { + throw new Error("No annotation provided for id " + id); + } + this._annotations[id] = annotation; + this._size++; + return id; + }; + ChangeAnnotations2.prototype.nextId = function() { + this._counter++; + return this._counter.toString(); + }; + return ChangeAnnotations2; +}(); +var WorkspaceChange = function() { + function WorkspaceChange2(workspaceEdit) { + var _this = this; + this._textEditChanges = /* @__PURE__ */ Object.create(null); + if (workspaceEdit !== void 0) { + this._workspaceEdit = workspaceEdit; + if (workspaceEdit.documentChanges) { + this._changeAnnotations = new ChangeAnnotations(workspaceEdit.changeAnnotations); + workspaceEdit.changeAnnotations = this._changeAnnotations.all(); + workspaceEdit.documentChanges.forEach(function(change) { + if (TextDocumentEdit.is(change)) { + var textEditChange = new TextEditChangeImpl(change.edits, _this._changeAnnotations); + _this._textEditChanges[change.textDocument.uri] = textEditChange; + } + }); + } else if (workspaceEdit.changes) { + Object.keys(workspaceEdit.changes).forEach(function(key) { + var textEditChange = new TextEditChangeImpl(workspaceEdit.changes[key]); + _this._textEditChanges[key] = textEditChange; + }); + } + } else { + this._workspaceEdit = {}; + } + } + Object.defineProperty(WorkspaceChange2.prototype, "edit", { + get: function() { + this.initDocumentChanges(); + if (this._changeAnnotations !== void 0) { + if (this._changeAnnotations.size === 0) { + this._workspaceEdit.changeAnnotations = void 0; + } else { + this._workspaceEdit.changeAnnotations = this._changeAnnotations.all(); + } + } + return this._workspaceEdit; + }, + enumerable: false, + configurable: true + }); + WorkspaceChange2.prototype.getTextEditChange = function(key) { + if (OptionalVersionedTextDocumentIdentifier.is(key)) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var textDocument = { uri: key.uri, version: key.version }; + var result = this._textEditChanges[textDocument.uri]; + if (!result) { + var edits = []; + var textDocumentEdit = { + textDocument, + edits + }; + this._workspaceEdit.documentChanges.push(textDocumentEdit); + result = new TextEditChangeImpl(edits, this._changeAnnotations); + this._textEditChanges[textDocument.uri] = result; + } + return result; + } else { + this.initChanges(); + if (this._workspaceEdit.changes === void 0) { + throw new Error("Workspace edit is not configured for normal text edit changes."); + } + var result = this._textEditChanges[key]; + if (!result) { + var edits = []; + this._workspaceEdit.changes[key] = edits; + result = new TextEditChangeImpl(edits); + this._textEditChanges[key] = result; + } + return result; + } + }; + WorkspaceChange2.prototype.initDocumentChanges = function() { + if (this._workspaceEdit.documentChanges === void 0 && this._workspaceEdit.changes === void 0) { + this._changeAnnotations = new ChangeAnnotations(); + this._workspaceEdit.documentChanges = []; + this._workspaceEdit.changeAnnotations = this._changeAnnotations.all(); + } + }; + WorkspaceChange2.prototype.initChanges = function() { + if (this._workspaceEdit.documentChanges === void 0 && this._workspaceEdit.changes === void 0) { + this._workspaceEdit.changes = /* @__PURE__ */ Object.create(null); + } + }; + WorkspaceChange2.prototype.createFile = function(uri, optionsOrAnnotation, options) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var annotation; + if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) { + annotation = optionsOrAnnotation; + } else { + options = optionsOrAnnotation; + } + var operation; + var id; + if (annotation === void 0) { + operation = CreateFile.create(uri, options); + } else { + id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation); + operation = CreateFile.create(uri, options, id); + } + this._workspaceEdit.documentChanges.push(operation); + if (id !== void 0) { + return id; + } + }; + WorkspaceChange2.prototype.renameFile = function(oldUri, newUri, optionsOrAnnotation, options) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var annotation; + if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) { + annotation = optionsOrAnnotation; + } else { + options = optionsOrAnnotation; + } + var operation; + var id; + if (annotation === void 0) { + operation = RenameFile.create(oldUri, newUri, options); + } else { + id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation); + operation = RenameFile.create(oldUri, newUri, options, id); + } + this._workspaceEdit.documentChanges.push(operation); + if (id !== void 0) { + return id; + } + }; + WorkspaceChange2.prototype.deleteFile = function(uri, optionsOrAnnotation, options) { + this.initDocumentChanges(); + if (this._workspaceEdit.documentChanges === void 0) { + throw new Error("Workspace edit is not configured for document changes."); + } + var annotation; + if (ChangeAnnotation.is(optionsOrAnnotation) || ChangeAnnotationIdentifier.is(optionsOrAnnotation)) { + annotation = optionsOrAnnotation; + } else { + options = optionsOrAnnotation; + } + var operation; + var id; + if (annotation === void 0) { + operation = DeleteFile.create(uri, options); + } else { + id = ChangeAnnotationIdentifier.is(annotation) ? annotation : this._changeAnnotations.manage(annotation); + operation = DeleteFile.create(uri, options, id); + } + this._workspaceEdit.documentChanges.push(operation); + if (id !== void 0) { + return id; + } + }; + return WorkspaceChange2; +}(); +var TextDocumentIdentifier; +(function(TextDocumentIdentifier2) { + function create(uri) { + return { uri }; + } + TextDocumentIdentifier2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri); + } + TextDocumentIdentifier2.is = is; +})(TextDocumentIdentifier || (TextDocumentIdentifier = {})); +var VersionedTextDocumentIdentifier; +(function(VersionedTextDocumentIdentifier2) { + function create(uri, version) { + return { uri, version }; + } + VersionedTextDocumentIdentifier2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && Is.integer(candidate.version); + } + VersionedTextDocumentIdentifier2.is = is; +})(VersionedTextDocumentIdentifier || (VersionedTextDocumentIdentifier = {})); +var OptionalVersionedTextDocumentIdentifier; +(function(OptionalVersionedTextDocumentIdentifier2) { + function create(uri, version) { + return { uri, version }; + } + OptionalVersionedTextDocumentIdentifier2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && (candidate.version === null || Is.integer(candidate.version)); + } + OptionalVersionedTextDocumentIdentifier2.is = is; +})(OptionalVersionedTextDocumentIdentifier || (OptionalVersionedTextDocumentIdentifier = {})); +var TextDocumentItem; +(function(TextDocumentItem2) { + function create(uri, languageId, version, text) { + return { uri, languageId, version, text }; + } + TextDocumentItem2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && Is.string(candidate.languageId) && Is.integer(candidate.version) && Is.string(candidate.text); + } + TextDocumentItem2.is = is; +})(TextDocumentItem || (TextDocumentItem = {})); +var MarkupKind; +(function(MarkupKind2) { + MarkupKind2.PlainText = "plaintext"; + MarkupKind2.Markdown = "markdown"; +})(MarkupKind || (MarkupKind = {})); +(function(MarkupKind2) { + function is(value) { + var candidate = value; + return candidate === MarkupKind2.PlainText || candidate === MarkupKind2.Markdown; + } + MarkupKind2.is = is; +})(MarkupKind || (MarkupKind = {})); +var MarkupContent; +(function(MarkupContent2) { + function is(value) { + var candidate = value; + return Is.objectLiteral(value) && MarkupKind.is(candidate.kind) && Is.string(candidate.value); + } + MarkupContent2.is = is; +})(MarkupContent || (MarkupContent = {})); +var CompletionItemKind; +(function(CompletionItemKind2) { + CompletionItemKind2.Text = 1; + CompletionItemKind2.Method = 2; + CompletionItemKind2.Function = 3; + CompletionItemKind2.Constructor = 4; + CompletionItemKind2.Field = 5; + CompletionItemKind2.Variable = 6; + CompletionItemKind2.Class = 7; + CompletionItemKind2.Interface = 8; + CompletionItemKind2.Module = 9; + CompletionItemKind2.Property = 10; + CompletionItemKind2.Unit = 11; + CompletionItemKind2.Value = 12; + CompletionItemKind2.Enum = 13; + CompletionItemKind2.Keyword = 14; + CompletionItemKind2.Snippet = 15; + CompletionItemKind2.Color = 16; + CompletionItemKind2.File = 17; + CompletionItemKind2.Reference = 18; + CompletionItemKind2.Folder = 19; + CompletionItemKind2.EnumMember = 20; + CompletionItemKind2.Constant = 21; + CompletionItemKind2.Struct = 22; + CompletionItemKind2.Event = 23; + CompletionItemKind2.Operator = 24; + CompletionItemKind2.TypeParameter = 25; +})(CompletionItemKind || (CompletionItemKind = {})); +var InsertTextFormat; +(function(InsertTextFormat2) { + InsertTextFormat2.PlainText = 1; + InsertTextFormat2.Snippet = 2; +})(InsertTextFormat || (InsertTextFormat = {})); +var CompletionItemTag; +(function(CompletionItemTag2) { + CompletionItemTag2.Deprecated = 1; +})(CompletionItemTag || (CompletionItemTag = {})); +var InsertReplaceEdit; +(function(InsertReplaceEdit2) { + function create(newText, insert, replace) { + return { newText, insert, replace }; + } + InsertReplaceEdit2.create = create; + function is(value) { + var candidate = value; + return candidate && Is.string(candidate.newText) && Range.is(candidate.insert) && Range.is(candidate.replace); + } + InsertReplaceEdit2.is = is; +})(InsertReplaceEdit || (InsertReplaceEdit = {})); +var InsertTextMode; +(function(InsertTextMode2) { + InsertTextMode2.asIs = 1; + InsertTextMode2.adjustIndentation = 2; +})(InsertTextMode || (InsertTextMode = {})); +var CompletionItem; +(function(CompletionItem2) { + function create(label) { + return { label }; + } + CompletionItem2.create = create; +})(CompletionItem || (CompletionItem = {})); +var CompletionList; +(function(CompletionList2) { + function create(items, isIncomplete) { + return { items: items ? items : [], isIncomplete: !!isIncomplete }; + } + CompletionList2.create = create; +})(CompletionList || (CompletionList = {})); +var MarkedString; +(function(MarkedString2) { + function fromPlainText(plainText) { + return plainText.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&"); + } + MarkedString2.fromPlainText = fromPlainText; + function is(value) { + var candidate = value; + return Is.string(candidate) || Is.objectLiteral(candidate) && Is.string(candidate.language) && Is.string(candidate.value); + } + MarkedString2.is = is; +})(MarkedString || (MarkedString = {})); +var Hover; +(function(Hover2) { + function is(value) { + var candidate = value; + return !!candidate && Is.objectLiteral(candidate) && (MarkupContent.is(candidate.contents) || MarkedString.is(candidate.contents) || Is.typedArray(candidate.contents, MarkedString.is)) && (value.range === void 0 || Range.is(value.range)); + } + Hover2.is = is; +})(Hover || (Hover = {})); +var ParameterInformation; +(function(ParameterInformation2) { + function create(label, documentation) { + return documentation ? { label, documentation } : { label }; + } + ParameterInformation2.create = create; +})(ParameterInformation || (ParameterInformation = {})); +var SignatureInformation; +(function(SignatureInformation2) { + function create(label, documentation) { + var parameters = []; + for (var _i = 2; _i < arguments.length; _i++) { + parameters[_i - 2] = arguments[_i]; + } + var result = { label }; + if (Is.defined(documentation)) { + result.documentation = documentation; + } + if (Is.defined(parameters)) { + result.parameters = parameters; + } else { + result.parameters = []; + } + return result; + } + SignatureInformation2.create = create; +})(SignatureInformation || (SignatureInformation = {})); +var DocumentHighlightKind; +(function(DocumentHighlightKind2) { + DocumentHighlightKind2.Text = 1; + DocumentHighlightKind2.Read = 2; + DocumentHighlightKind2.Write = 3; +})(DocumentHighlightKind || (DocumentHighlightKind = {})); +var DocumentHighlight; +(function(DocumentHighlight2) { + function create(range, kind) { + var result = { range }; + if (Is.number(kind)) { + result.kind = kind; + } + return result; + } + DocumentHighlight2.create = create; +})(DocumentHighlight || (DocumentHighlight = {})); +var SymbolKind; +(function(SymbolKind2) { + SymbolKind2.File = 1; + SymbolKind2.Module = 2; + SymbolKind2.Namespace = 3; + SymbolKind2.Package = 4; + SymbolKind2.Class = 5; + SymbolKind2.Method = 6; + SymbolKind2.Property = 7; + SymbolKind2.Field = 8; + SymbolKind2.Constructor = 9; + SymbolKind2.Enum = 10; + SymbolKind2.Interface = 11; + SymbolKind2.Function = 12; + SymbolKind2.Variable = 13; + SymbolKind2.Constant = 14; + SymbolKind2.String = 15; + SymbolKind2.Number = 16; + SymbolKind2.Boolean = 17; + SymbolKind2.Array = 18; + SymbolKind2.Object = 19; + SymbolKind2.Key = 20; + SymbolKind2.Null = 21; + SymbolKind2.EnumMember = 22; + SymbolKind2.Struct = 23; + SymbolKind2.Event = 24; + SymbolKind2.Operator = 25; + SymbolKind2.TypeParameter = 26; +})(SymbolKind || (SymbolKind = {})); +var SymbolTag; +(function(SymbolTag2) { + SymbolTag2.Deprecated = 1; +})(SymbolTag || (SymbolTag = {})); +var SymbolInformation; +(function(SymbolInformation2) { + function create(name, kind, range, uri, containerName) { + var result = { + name, + kind, + location: { uri, range } + }; + if (containerName) { + result.containerName = containerName; + } + return result; + } + SymbolInformation2.create = create; +})(SymbolInformation || (SymbolInformation = {})); +var DocumentSymbol; +(function(DocumentSymbol2) { + function create(name, detail, kind, range, selectionRange, children) { + var result = { + name, + detail, + kind, + range, + selectionRange + }; + if (children !== void 0) { + result.children = children; + } + return result; + } + DocumentSymbol2.create = create; + function is(value) { + var candidate = value; + return candidate && Is.string(candidate.name) && Is.number(candidate.kind) && Range.is(candidate.range) && Range.is(candidate.selectionRange) && (candidate.detail === void 0 || Is.string(candidate.detail)) && (candidate.deprecated === void 0 || Is.boolean(candidate.deprecated)) && (candidate.children === void 0 || Array.isArray(candidate.children)) && (candidate.tags === void 0 || Array.isArray(candidate.tags)); + } + DocumentSymbol2.is = is; +})(DocumentSymbol || (DocumentSymbol = {})); +var CodeActionKind; +(function(CodeActionKind2) { + CodeActionKind2.Empty = ""; + CodeActionKind2.QuickFix = "quickfix"; + CodeActionKind2.Refactor = "refactor"; + CodeActionKind2.RefactorExtract = "refactor.extract"; + CodeActionKind2.RefactorInline = "refactor.inline"; + CodeActionKind2.RefactorRewrite = "refactor.rewrite"; + CodeActionKind2.Source = "source"; + CodeActionKind2.SourceOrganizeImports = "source.organizeImports"; + CodeActionKind2.SourceFixAll = "source.fixAll"; +})(CodeActionKind || (CodeActionKind = {})); +var CodeActionContext; +(function(CodeActionContext2) { + function create(diagnostics, only) { + var result = { diagnostics }; + if (only !== void 0 && only !== null) { + result.only = only; + } + return result; + } + CodeActionContext2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.typedArray(candidate.diagnostics, Diagnostic.is) && (candidate.only === void 0 || Is.typedArray(candidate.only, Is.string)); + } + CodeActionContext2.is = is; +})(CodeActionContext || (CodeActionContext = {})); +var CodeAction; +(function(CodeAction2) { + function create(title, kindOrCommandOrEdit, kind) { + var result = { title }; + var checkKind = true; + if (typeof kindOrCommandOrEdit === "string") { + checkKind = false; + result.kind = kindOrCommandOrEdit; + } else if (Command.is(kindOrCommandOrEdit)) { + result.command = kindOrCommandOrEdit; + } else { + result.edit = kindOrCommandOrEdit; + } + if (checkKind && kind !== void 0) { + result.kind = kind; + } + return result; + } + CodeAction2.create = create; + function is(value) { + var candidate = value; + return candidate && Is.string(candidate.title) && (candidate.diagnostics === void 0 || Is.typedArray(candidate.diagnostics, Diagnostic.is)) && (candidate.kind === void 0 || Is.string(candidate.kind)) && (candidate.edit !== void 0 || candidate.command !== void 0) && (candidate.command === void 0 || Command.is(candidate.command)) && (candidate.isPreferred === void 0 || Is.boolean(candidate.isPreferred)) && (candidate.edit === void 0 || WorkspaceEdit.is(candidate.edit)); + } + CodeAction2.is = is; +})(CodeAction || (CodeAction = {})); +var CodeLens; +(function(CodeLens2) { + function create(range, data) { + var result = { range }; + if (Is.defined(data)) { + result.data = data; + } + return result; + } + CodeLens2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.command) || Command.is(candidate.command)); + } + CodeLens2.is = is; +})(CodeLens || (CodeLens = {})); +var FormattingOptions; +(function(FormattingOptions2) { + function create(tabSize, insertSpaces) { + return { tabSize, insertSpaces }; + } + FormattingOptions2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.uinteger(candidate.tabSize) && Is.boolean(candidate.insertSpaces); + } + FormattingOptions2.is = is; +})(FormattingOptions || (FormattingOptions = {})); +var DocumentLink; +(function(DocumentLink2) { + function create(range, target, data) { + return { range, target, data }; + } + DocumentLink2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Range.is(candidate.range) && (Is.undefined(candidate.target) || Is.string(candidate.target)); + } + DocumentLink2.is = is; +})(DocumentLink || (DocumentLink = {})); +var SelectionRange; +(function(SelectionRange2) { + function create(range, parent) { + return { range, parent }; + } + SelectionRange2.create = create; + function is(value) { + var candidate = value; + return candidate !== void 0 && Range.is(candidate.range) && (candidate.parent === void 0 || SelectionRange2.is(candidate.parent)); + } + SelectionRange2.is = is; +})(SelectionRange || (SelectionRange = {})); +var TextDocument; +(function(TextDocument2) { + function create(uri, languageId, version, content) { + return new FullTextDocument(uri, languageId, version, content); + } + TextDocument2.create = create; + function is(value) { + var candidate = value; + return Is.defined(candidate) && Is.string(candidate.uri) && (Is.undefined(candidate.languageId) || Is.string(candidate.languageId)) && Is.uinteger(candidate.lineCount) && Is.func(candidate.getText) && Is.func(candidate.positionAt) && Is.func(candidate.offsetAt) ? true : false; + } + TextDocument2.is = is; + function applyEdits(document, edits) { + var text = document.getText(); + var sortedEdits = mergeSort(edits, function(a, b) { + var diff = a.range.start.line - b.range.start.line; + if (diff === 0) { + return a.range.start.character - b.range.start.character; + } + return diff; + }); + var lastModifiedOffset = text.length; + for (var i = sortedEdits.length - 1; i >= 0; i--) { + var e = sortedEdits[i]; + var startOffset = document.offsetAt(e.range.start); + var endOffset = document.offsetAt(e.range.end); + if (endOffset <= lastModifiedOffset) { + text = text.substring(0, startOffset) + e.newText + text.substring(endOffset, text.length); + } else { + throw new Error("Overlapping edit"); + } + lastModifiedOffset = startOffset; + } + return text; + } + TextDocument2.applyEdits = applyEdits; + function mergeSort(data, compare) { + if (data.length <= 1) { + return data; + } + var p = data.length / 2 | 0; + var left = data.slice(0, p); + var right = data.slice(p); + mergeSort(left, compare); + mergeSort(right, compare); + var leftIdx = 0; + var rightIdx = 0; + var i = 0; + while (leftIdx < left.length && rightIdx < right.length) { + var ret = compare(left[leftIdx], right[rightIdx]); + if (ret <= 0) { + data[i++] = left[leftIdx++]; + } else { + data[i++] = right[rightIdx++]; + } + } + while (leftIdx < left.length) { + data[i++] = left[leftIdx++]; + } + while (rightIdx < right.length) { + data[i++] = right[rightIdx++]; + } + return data; + } +})(TextDocument || (TextDocument = {})); +var FullTextDocument = function() { + function FullTextDocument2(uri, languageId, version, content) { + this._uri = uri; + this._languageId = languageId; + this._version = version; + this._content = content; + this._lineOffsets = void 0; + } + Object.defineProperty(FullTextDocument2.prototype, "uri", { + get: function() { + return this._uri; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(FullTextDocument2.prototype, "languageId", { + get: function() { + return this._languageId; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(FullTextDocument2.prototype, "version", { + get: function() { + return this._version; + }, + enumerable: false, + configurable: true + }); + FullTextDocument2.prototype.getText = function(range) { + if (range) { + var start = this.offsetAt(range.start); + var end = this.offsetAt(range.end); + return this._content.substring(start, end); + } + return this._content; + }; + FullTextDocument2.prototype.update = function(event, version) { + this._content = event.text; + this._version = version; + this._lineOffsets = void 0; + }; + FullTextDocument2.prototype.getLineOffsets = function() { + if (this._lineOffsets === void 0) { + var lineOffsets = []; + var text = this._content; + var isLineStart = true; + for (var i = 0; i < text.length; i++) { + if (isLineStart) { + lineOffsets.push(i); + isLineStart = false; + } + var ch = text.charAt(i); + isLineStart = ch === "\r" || ch === "\n"; + if (ch === "\r" && i + 1 < text.length && text.charAt(i + 1) === "\n") { + i++; + } + } + if (isLineStart && text.length > 0) { + lineOffsets.push(text.length); + } + this._lineOffsets = lineOffsets; + } + return this._lineOffsets; + }; + FullTextDocument2.prototype.positionAt = function(offset) { + offset = Math.max(Math.min(offset, this._content.length), 0); + var lineOffsets = this.getLineOffsets(); + var low = 0, high = lineOffsets.length; + if (high === 0) { + return Position.create(0, offset); + } + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (lineOffsets[mid] > offset) { + high = mid; + } else { + low = mid + 1; + } + } + var line = low - 1; + return Position.create(line, offset - lineOffsets[line]); + }; + FullTextDocument2.prototype.offsetAt = function(position) { + var lineOffsets = this.getLineOffsets(); + if (position.line >= lineOffsets.length) { + return this._content.length; + } else if (position.line < 0) { + return 0; + } + var lineOffset = lineOffsets[position.line]; + var nextLineOffset = position.line + 1 < lineOffsets.length ? lineOffsets[position.line + 1] : this._content.length; + return Math.max(Math.min(lineOffset + position.character, nextLineOffset), lineOffset); + }; + Object.defineProperty(FullTextDocument2.prototype, "lineCount", { + get: function() { + return this.getLineOffsets().length; + }, + enumerable: false, + configurable: true + }); + return FullTextDocument2; +}(); +var Is; +(function(Is2) { + var toString = Object.prototype.toString; + function defined(value) { + return typeof value !== "undefined"; + } + Is2.defined = defined; + function undefined2(value) { + return typeof value === "undefined"; + } + Is2.undefined = undefined2; + function boolean(value) { + return value === true || value === false; + } + Is2.boolean = boolean; + function string(value) { + return toString.call(value) === "[object String]"; + } + Is2.string = string; + function number(value) { + return toString.call(value) === "[object Number]"; + } + Is2.number = number; + function numberRange(value, min, max) { + return toString.call(value) === "[object Number]" && min <= value && value <= max; + } + Is2.numberRange = numberRange; + function integer2(value) { + return toString.call(value) === "[object Number]" && -2147483648 <= value && value <= 2147483647; + } + Is2.integer = integer2; + function uinteger2(value) { + return toString.call(value) === "[object Number]" && 0 <= value && value <= 2147483647; + } + Is2.uinteger = uinteger2; + function func(value) { + return toString.call(value) === "[object Function]"; + } + Is2.func = func; + function objectLiteral(value) { + return value !== null && typeof value === "object"; + } + Is2.objectLiteral = objectLiteral; + function typedArray(value, check) { + return Array.isArray(value) && value.every(check); + } + Is2.typedArray = typedArray; +})(Is || (Is = {})); + +// src/language/common/lspLanguageFeatures.ts +var DiagnosticsAdapter = class { + constructor(_languageId, _worker, configChangeEvent) { + this._languageId = _languageId; + this._worker = _worker; + const onModelAdd = (model) => { + let modeId = model.getLanguageId(); + if (modeId !== this._languageId) { + return; + } + let handle; + this._listener[model.uri.toString()] = model.onDidChangeContent(() => { + window.clearTimeout(handle); + handle = window.setTimeout(() => this._doValidate(model.uri, modeId), 500); + }); + this._doValidate(model.uri, modeId); + }; + const onModelRemoved = (model) => { + monaco_editor_core_exports.editor.setModelMarkers(model, this._languageId, []); + let uriStr = model.uri.toString(); + let listener = this._listener[uriStr]; + if (listener) { + listener.dispose(); + delete this._listener[uriStr]; + } + }; + this._disposables.push(monaco_editor_core_exports.editor.onDidCreateModel(onModelAdd)); + this._disposables.push(monaco_editor_core_exports.editor.onWillDisposeModel(onModelRemoved)); + this._disposables.push(monaco_editor_core_exports.editor.onDidChangeModelLanguage((event) => { + onModelRemoved(event.model); + onModelAdd(event.model); + })); + this._disposables.push(configChangeEvent((_) => { + monaco_editor_core_exports.editor.getModels().forEach((model) => { + if (model.getLanguageId() === this._languageId) { + onModelRemoved(model); + onModelAdd(model); + } + }); + })); + this._disposables.push({ + dispose: () => { + monaco_editor_core_exports.editor.getModels().forEach(onModelRemoved); + for (let key in this._listener) { + this._listener[key].dispose(); + } + } + }); + monaco_editor_core_exports.editor.getModels().forEach(onModelAdd); + } + _disposables = []; + _listener = /* @__PURE__ */ Object.create(null); + dispose() { + this._disposables.forEach((d) => d && d.dispose()); + this._disposables.length = 0; + } + _doValidate(resource, languageId) { + this._worker(resource).then((worker) => { + return worker.doValidation(resource.toString()); + }).then((diagnostics) => { + const markers = diagnostics.map((d) => toDiagnostics(resource, d)); + let model = monaco_editor_core_exports.editor.getModel(resource); + if (model && model.getLanguageId() === languageId) { + monaco_editor_core_exports.editor.setModelMarkers(model, languageId, markers); + } + }).then(void 0, (err) => { + console.error(err); + }); + } +}; +function toSeverity(lsSeverity) { + switch (lsSeverity) { + case DiagnosticSeverity.Error: + return monaco_editor_core_exports.MarkerSeverity.Error; + case DiagnosticSeverity.Warning: + return monaco_editor_core_exports.MarkerSeverity.Warning; + case DiagnosticSeverity.Information: + return monaco_editor_core_exports.MarkerSeverity.Info; + case DiagnosticSeverity.Hint: + return monaco_editor_core_exports.MarkerSeverity.Hint; + default: + return monaco_editor_core_exports.MarkerSeverity.Info; + } +} +function toDiagnostics(resource, diag) { + let code = typeof diag.code === "number" ? String(diag.code) : diag.code; + return { + severity: toSeverity(diag.severity), + startLineNumber: diag.range.start.line + 1, + startColumn: diag.range.start.character + 1, + endLineNumber: diag.range.end.line + 1, + endColumn: diag.range.end.character + 1, + message: diag.message, + code, + source: diag.source + }; +} +var CompletionAdapter = class { + constructor(_worker, _triggerCharacters) { + this._worker = _worker; + this._triggerCharacters = _triggerCharacters; + } + get triggerCharacters() { + return this._triggerCharacters; + } + provideCompletionItems(model, position, context, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.doComplete(resource.toString(), fromPosition(position)); + }).then((info) => { + if (!info) { + return; + } + const wordInfo = model.getWordUntilPosition(position); + const wordRange = new monaco_editor_core_exports.Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn); + const items = info.items.map((entry) => { + const item = { + label: entry.label, + insertText: entry.insertText || entry.label, + sortText: entry.sortText, + filterText: entry.filterText, + documentation: entry.documentation, + detail: entry.detail, + command: toCommand(entry.command), + range: wordRange, + kind: toCompletionItemKind(entry.kind) + }; + if (entry.textEdit) { + if (isInsertReplaceEdit(entry.textEdit)) { + item.range = { + insert: toRange(entry.textEdit.insert), + replace: toRange(entry.textEdit.replace) + }; + } else { + item.range = toRange(entry.textEdit.range); + } + item.insertText = entry.textEdit.newText; + } + if (entry.additionalTextEdits) { + item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit); + } + if (entry.insertTextFormat === InsertTextFormat.Snippet) { + item.insertTextRules = monaco_editor_core_exports.languages.CompletionItemInsertTextRule.InsertAsSnippet; + } + return item; + }); + return { + isIncomplete: info.isIncomplete, + suggestions: items + }; + }); + } +}; +function fromPosition(position) { + if (!position) { + return void 0; + } + return { character: position.column - 1, line: position.lineNumber - 1 }; +} +function fromRange(range) { + if (!range) { + return void 0; + } + return { + start: { + line: range.startLineNumber - 1, + character: range.startColumn - 1 + }, + end: { line: range.endLineNumber - 1, character: range.endColumn - 1 } + }; +} +function toRange(range) { + if (!range) { + return void 0; + } + return new monaco_editor_core_exports.Range(range.start.line + 1, range.start.character + 1, range.end.line + 1, range.end.character + 1); +} +function isInsertReplaceEdit(edit) { + return typeof edit.insert !== "undefined" && typeof edit.replace !== "undefined"; +} +function toCompletionItemKind(kind) { + const mItemKind = monaco_editor_core_exports.languages.CompletionItemKind; + switch (kind) { + case CompletionItemKind.Text: + return mItemKind.Text; + case CompletionItemKind.Method: + return mItemKind.Method; + case CompletionItemKind.Function: + return mItemKind.Function; + case CompletionItemKind.Constructor: + return mItemKind.Constructor; + case CompletionItemKind.Field: + return mItemKind.Field; + case CompletionItemKind.Variable: + return mItemKind.Variable; + case CompletionItemKind.Class: + return mItemKind.Class; + case CompletionItemKind.Interface: + return mItemKind.Interface; + case CompletionItemKind.Module: + return mItemKind.Module; + case CompletionItemKind.Property: + return mItemKind.Property; + case CompletionItemKind.Unit: + return mItemKind.Unit; + case CompletionItemKind.Value: + return mItemKind.Value; + case CompletionItemKind.Enum: + return mItemKind.Enum; + case CompletionItemKind.Keyword: + return mItemKind.Keyword; + case CompletionItemKind.Snippet: + return mItemKind.Snippet; + case CompletionItemKind.Color: + return mItemKind.Color; + case CompletionItemKind.File: + return mItemKind.File; + case CompletionItemKind.Reference: + return mItemKind.Reference; + } + return mItemKind.Property; +} +function toTextEdit(textEdit) { + if (!textEdit) { + return void 0; + } + return { + range: toRange(textEdit.range), + text: textEdit.newText + }; +} +function toCommand(c) { + return c && c.command === "editor.action.triggerSuggest" ? { id: c.command, title: c.title, arguments: c.arguments } : void 0; +} +var HoverAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideHover(model, position, token) { + let resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.doHover(resource.toString(), fromPosition(position)); + }).then((info) => { + if (!info) { + return; + } + return { + range: toRange(info.range), + contents: toMarkedStringArray(info.contents) + }; + }); + } +}; +function isMarkupContent(thing) { + return thing && typeof thing === "object" && typeof thing.kind === "string"; +} +function toMarkdownString(entry) { + if (typeof entry === "string") { + return { + value: entry + }; + } + if (isMarkupContent(entry)) { + if (entry.kind === "plaintext") { + return { + value: entry.value.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&") + }; + } + return { + value: entry.value + }; + } + return { value: "```" + entry.language + "\n" + entry.value + "\n```\n" }; +} +function toMarkedStringArray(contents) { + if (!contents) { + return void 0; + } + if (Array.isArray(contents)) { + return contents.map(toMarkdownString); + } + return [toMarkdownString(contents)]; +} +var DocumentHighlightAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideDocumentHighlights(model, position, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.findDocumentHighlights(resource.toString(), fromPosition(position))).then((entries) => { + if (!entries) { + return; + } + return entries.map((entry) => { + return { + range: toRange(entry.range), + kind: toDocumentHighlightKind(entry.kind) + }; + }); + }); + } +}; +function toDocumentHighlightKind(kind) { + switch (kind) { + case DocumentHighlightKind.Read: + return monaco_editor_core_exports.languages.DocumentHighlightKind.Read; + case DocumentHighlightKind.Write: + return monaco_editor_core_exports.languages.DocumentHighlightKind.Write; + case DocumentHighlightKind.Text: + return monaco_editor_core_exports.languages.DocumentHighlightKind.Text; + } + return monaco_editor_core_exports.languages.DocumentHighlightKind.Text; +} +var DefinitionAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideDefinition(model, position, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.findDefinition(resource.toString(), fromPosition(position)); + }).then((definition) => { + if (!definition) { + return; + } + return [toLocation(definition)]; + }); + } +}; +function toLocation(location) { + return { + uri: monaco_editor_core_exports.Uri.parse(location.uri), + range: toRange(location.range) + }; +} +var ReferenceAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideReferences(model, position, context, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.findReferences(resource.toString(), fromPosition(position)); + }).then((entries) => { + if (!entries) { + return; + } + return entries.map(toLocation); + }); + } +}; +var RenameAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideRenameEdits(model, position, newName, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.doRename(resource.toString(), fromPosition(position), newName); + }).then((edit) => { + return toWorkspaceEdit(edit); + }); + } +}; +function toWorkspaceEdit(edit) { + if (!edit || !edit.changes) { + return void 0; + } + let resourceEdits = []; + for (let uri in edit.changes) { + const _uri = monaco_editor_core_exports.Uri.parse(uri); + for (let e of edit.changes[uri]) { + resourceEdits.push({ + resource: _uri, + versionId: void 0, + textEdit: { + range: toRange(e.range), + text: e.newText + } + }); + } + } + return { + edits: resourceEdits + }; +} +var DocumentSymbolAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideDocumentSymbols(model, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.findDocumentSymbols(resource.toString())).then((items) => { + if (!items) { + return; + } + return items.map((item) => ({ + name: item.name, + detail: "", + containerName: item.containerName, + kind: toSymbolKind(item.kind), + range: toRange(item.location.range), + selectionRange: toRange(item.location.range), + tags: [] + })); + }); + } +}; +function toSymbolKind(kind) { + let mKind = monaco_editor_core_exports.languages.SymbolKind; + switch (kind) { + case SymbolKind.File: + return mKind.Array; + case SymbolKind.Module: + return mKind.Module; + case SymbolKind.Namespace: + return mKind.Namespace; + case SymbolKind.Package: + return mKind.Package; + case SymbolKind.Class: + return mKind.Class; + case SymbolKind.Method: + return mKind.Method; + case SymbolKind.Property: + return mKind.Property; + case SymbolKind.Field: + return mKind.Field; + case SymbolKind.Constructor: + return mKind.Constructor; + case SymbolKind.Enum: + return mKind.Enum; + case SymbolKind.Interface: + return mKind.Interface; + case SymbolKind.Function: + return mKind.Function; + case SymbolKind.Variable: + return mKind.Variable; + case SymbolKind.Constant: + return mKind.Constant; + case SymbolKind.String: + return mKind.String; + case SymbolKind.Number: + return mKind.Number; + case SymbolKind.Boolean: + return mKind.Boolean; + case SymbolKind.Array: + return mKind.Array; + } + return mKind.Function; +} +var DocumentLinkAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideLinks(model, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.findDocumentLinks(resource.toString())).then((items) => { + if (!items) { + return; + } + return { + links: items.map((item) => ({ + range: toRange(item.range), + url: item.target + })) + }; + }); + } +}; +var DocumentFormattingEditProvider = class { + constructor(_worker) { + this._worker = _worker; + } + provideDocumentFormattingEdits(model, options, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.format(resource.toString(), null, fromFormattingOptions(options)).then((edits) => { + if (!edits || edits.length === 0) { + return; + } + return edits.map(toTextEdit); + }); + }); + } +}; +var DocumentRangeFormattingEditProvider = class { + constructor(_worker) { + this._worker = _worker; + } + provideDocumentRangeFormattingEdits(model, range, options, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => { + return worker.format(resource.toString(), fromRange(range), fromFormattingOptions(options)).then((edits) => { + if (!edits || edits.length === 0) { + return; + } + return edits.map(toTextEdit); + }); + }); + } +}; +function fromFormattingOptions(options) { + return { + tabSize: options.tabSize, + insertSpaces: options.insertSpaces + }; +} +var DocumentColorAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideDocumentColors(model, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.findDocumentColors(resource.toString())).then((infos) => { + if (!infos) { + return; + } + return infos.map((item) => ({ + color: item.color, + range: toRange(item.range) + })); + }); + } + provideColorPresentations(model, info, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.getColorPresentations(resource.toString(), info.color, fromRange(info.range))).then((presentations) => { + if (!presentations) { + return; + } + return presentations.map((presentation) => { + let item = { + label: presentation.label + }; + if (presentation.textEdit) { + item.textEdit = toTextEdit(presentation.textEdit); + } + if (presentation.additionalTextEdits) { + item.additionalTextEdits = presentation.additionalTextEdits.map(toTextEdit); + } + return item; + }); + }); + } +}; +var FoldingRangeAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideFoldingRanges(model, context, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.getFoldingRanges(resource.toString(), context)).then((ranges) => { + if (!ranges) { + return; + } + return ranges.map((range) => { + const result = { + start: range.startLine + 1, + end: range.endLine + 1 + }; + if (typeof range.kind !== "undefined") { + result.kind = toFoldingRangeKind(range.kind); + } + return result; + }); + }); + } +}; +function toFoldingRangeKind(kind) { + switch (kind) { + case FoldingRangeKind.Comment: + return monaco_editor_core_exports.languages.FoldingRangeKind.Comment; + case FoldingRangeKind.Imports: + return monaco_editor_core_exports.languages.FoldingRangeKind.Imports; + case FoldingRangeKind.Region: + return monaco_editor_core_exports.languages.FoldingRangeKind.Region; + } + return void 0; +} +var SelectionRangeAdapter = class { + constructor(_worker) { + this._worker = _worker; + } + provideSelectionRanges(model, positions, token) { + const resource = model.uri; + return this._worker(resource).then((worker) => worker.getSelectionRanges(resource.toString(), positions.map(fromPosition))).then((selectionRanges) => { + if (!selectionRanges) { + return; + } + return selectionRanges.map((selectionRange) => { + const result = []; + while (selectionRange) { + result.push({ range: toRange(selectionRange.range) }); + selectionRange = selectionRange.parent; + } + return result; + }); + }); + } +}; + +// node_modules/jsonc-parser/lib/esm/impl/scanner.js +function createScanner(text, ignoreTrivia) { + if (ignoreTrivia === void 0) { + ignoreTrivia = false; + } + var len = text.length; + var pos = 0, value = "", tokenOffset = 0, token = 16, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0; + function scanHexDigits(count, exact) { + var digits = 0; + var value2 = 0; + while (digits < count || !exact) { + var ch = text.charCodeAt(pos); + if (ch >= 48 && ch <= 57) { + value2 = value2 * 16 + ch - 48; + } else if (ch >= 65 && ch <= 70) { + value2 = value2 * 16 + ch - 65 + 10; + } else if (ch >= 97 && ch <= 102) { + value2 = value2 * 16 + ch - 97 + 10; + } else { + break; + } + pos++; + digits++; + } + if (digits < count) { + value2 = -1; + } + return value2; + } + function setPosition(newPosition) { + pos = newPosition; + value = ""; + tokenOffset = 0; + token = 16; + scanError = 0; + } + function scanNumber() { + var start = pos; + if (text.charCodeAt(pos) === 48) { + pos++; + } else { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + } + if (pos < text.length && text.charCodeAt(pos) === 46) { + pos++; + if (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + } else { + scanError = 3; + return text.substring(start, pos); + } + } + var end = pos; + if (pos < text.length && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) { + pos++; + if (pos < text.length && text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45) { + pos++; + } + if (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + end = pos; + } else { + scanError = 3; + } + } + return text.substring(start, end); + } + function scanString() { + var result = "", start = pos; + while (true) { + if (pos >= len) { + result += text.substring(start, pos); + scanError = 2; + break; + } + var ch = text.charCodeAt(pos); + if (ch === 34) { + result += text.substring(start, pos); + pos++; + break; + } + if (ch === 92) { + result += text.substring(start, pos); + pos++; + if (pos >= len) { + scanError = 2; + break; + } + var ch2 = text.charCodeAt(pos++); + switch (ch2) { + case 34: + result += '"'; + break; + case 92: + result += "\\"; + break; + case 47: + result += "/"; + break; + case 98: + result += "\b"; + break; + case 102: + result += "\f"; + break; + case 110: + result += "\n"; + break; + case 114: + result += "\r"; + break; + case 116: + result += " "; + break; + case 117: + var ch3 = scanHexDigits(4, true); + if (ch3 >= 0) { + result += String.fromCharCode(ch3); + } else { + scanError = 4; + } + break; + default: + scanError = 5; + } + start = pos; + continue; + } + if (ch >= 0 && ch <= 31) { + if (isLineBreak(ch)) { + result += text.substring(start, pos); + scanError = 2; + break; + } else { + scanError = 6; + } + } + pos++; + } + return result; + } + function scanNext() { + value = ""; + scanError = 0; + tokenOffset = pos; + lineStartOffset = lineNumber; + prevTokenLineStartOffset = tokenLineStartOffset; + if (pos >= len) { + tokenOffset = len; + return token = 17; + } + var code = text.charCodeAt(pos); + if (isWhiteSpace(code)) { + do { + pos++; + value += String.fromCharCode(code); + code = text.charCodeAt(pos); + } while (isWhiteSpace(code)); + return token = 15; + } + if (isLineBreak(code)) { + pos++; + value += String.fromCharCode(code); + if (code === 13 && text.charCodeAt(pos) === 10) { + pos++; + value += "\n"; + } + lineNumber++; + tokenLineStartOffset = pos; + return token = 14; + } + switch (code) { + case 123: + pos++; + return token = 1; + case 125: + pos++; + return token = 2; + case 91: + pos++; + return token = 3; + case 93: + pos++; + return token = 4; + case 58: + pos++; + return token = 6; + case 44: + pos++; + return token = 5; + case 34: + pos++; + value = scanString(); + return token = 10; + case 47: + var start = pos - 1; + if (text.charCodeAt(pos + 1) === 47) { + pos += 2; + while (pos < len) { + if (isLineBreak(text.charCodeAt(pos))) { + break; + } + pos++; + } + value = text.substring(start, pos); + return token = 12; + } + if (text.charCodeAt(pos + 1) === 42) { + pos += 2; + var safeLength = len - 1; + var commentClosed = false; + while (pos < safeLength) { + var ch = text.charCodeAt(pos); + if (ch === 42 && text.charCodeAt(pos + 1) === 47) { + pos += 2; + commentClosed = true; + break; + } + pos++; + if (isLineBreak(ch)) { + if (ch === 13 && text.charCodeAt(pos) === 10) { + pos++; + } + lineNumber++; + tokenLineStartOffset = pos; + } + } + if (!commentClosed) { + pos++; + scanError = 1; + } + value = text.substring(start, pos); + return token = 13; + } + value += String.fromCharCode(code); + pos++; + return token = 16; + case 45: + value += String.fromCharCode(code); + pos++; + if (pos === len || !isDigit(text.charCodeAt(pos))) { + return token = 16; + } + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + value += scanNumber(); + return token = 11; + default: + while (pos < len && isUnknownContentCharacter(code)) { + pos++; + code = text.charCodeAt(pos); + } + if (tokenOffset !== pos) { + value = text.substring(tokenOffset, pos); + switch (value) { + case "true": + return token = 8; + case "false": + return token = 9; + case "null": + return token = 7; + } + return token = 16; + } + value += String.fromCharCode(code); + pos++; + return token = 16; + } + } + function isUnknownContentCharacter(code) { + if (isWhiteSpace(code) || isLineBreak(code)) { + return false; + } + switch (code) { + case 125: + case 93: + case 123: + case 91: + case 34: + case 58: + case 44: + case 47: + return false; + } + return true; + } + function scanNextNonTrivia() { + var result; + do { + result = scanNext(); + } while (result >= 12 && result <= 15); + return result; + } + return { + setPosition, + getPosition: function() { + return pos; + }, + scan: ignoreTrivia ? scanNextNonTrivia : scanNext, + getToken: function() { + return token; + }, + getTokenValue: function() { + return value; + }, + getTokenOffset: function() { + return tokenOffset; + }, + getTokenLength: function() { + return pos - tokenOffset; + }, + getTokenStartLine: function() { + return lineStartOffset; + }, + getTokenStartCharacter: function() { + return tokenOffset - prevTokenLineStartOffset; + }, + getTokenError: function() { + return scanError; + } + }; +} +function isWhiteSpace(ch) { + return ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 5760 || ch >= 8192 && ch <= 8203 || ch === 8239 || ch === 8287 || ch === 12288 || ch === 65279; +} +function isLineBreak(ch) { + return ch === 10 || ch === 13 || ch === 8232 || ch === 8233; +} +function isDigit(ch) { + return ch >= 48 && ch <= 57; +} + +// node_modules/jsonc-parser/lib/esm/impl/parser.js +var ParseOptions; +(function(ParseOptions2) { + ParseOptions2.DEFAULT = { + allowTrailingComma: false + }; +})(ParseOptions || (ParseOptions = {})); + +// node_modules/jsonc-parser/lib/esm/main.js +var createScanner2 = createScanner; + +// src/language/json/tokenization.ts +function createTokenizationSupport(supportComments) { + return { + getInitialState: () => new JSONState(null, null, false, null), + tokenize: (line, state) => tokenize(supportComments, line, state) + }; +} +var TOKEN_DELIM_OBJECT = "delimiter.bracket.json"; +var TOKEN_DELIM_ARRAY = "delimiter.array.json"; +var TOKEN_DELIM_COLON = "delimiter.colon.json"; +var TOKEN_DELIM_COMMA = "delimiter.comma.json"; +var TOKEN_VALUE_BOOLEAN = "keyword.json"; +var TOKEN_VALUE_NULL = "keyword.json"; +var TOKEN_VALUE_STRING = "string.value.json"; +var TOKEN_VALUE_NUMBER = "number.json"; +var TOKEN_PROPERTY_NAME = "string.key.json"; +var TOKEN_COMMENT_BLOCK = "comment.block.json"; +var TOKEN_COMMENT_LINE = "comment.line.json"; +var ParentsStack = class { + constructor(parent, type) { + this.parent = parent; + this.type = type; + } + static pop(parents) { + if (parents) { + return parents.parent; + } + return null; + } + static push(parents, type) { + return new ParentsStack(parents, type); + } + static equals(a, b) { + if (!a && !b) { + return true; + } + if (!a || !b) { + return false; + } + while (a && b) { + if (a === b) { + return true; + } + if (a.type !== b.type) { + return false; + } + a = a.parent; + b = b.parent; + } + return true; + } +}; +var JSONState = class { + _state; + scanError; + lastWasColon; + parents; + constructor(state, scanError, lastWasColon, parents) { + this._state = state; + this.scanError = scanError; + this.lastWasColon = lastWasColon; + this.parents = parents; + } + clone() { + return new JSONState(this._state, this.scanError, this.lastWasColon, this.parents); + } + equals(other) { + if (other === this) { + return true; + } + if (!other || !(other instanceof JSONState)) { + return false; + } + return this.scanError === other.scanError && this.lastWasColon === other.lastWasColon && ParentsStack.equals(this.parents, other.parents); + } + getStateData() { + return this._state; + } + setStateData(state) { + this._state = state; + } +}; +function tokenize(comments, line, state, offsetDelta = 0) { + let numberOfInsertedCharacters = 0; + let adjustOffset = false; + switch (state.scanError) { + case 2 /* UnexpectedEndOfString */: + line = '"' + line; + numberOfInsertedCharacters = 1; + break; + case 1 /* UnexpectedEndOfComment */: + line = "/*" + line; + numberOfInsertedCharacters = 2; + break; + } + const scanner = createScanner2(line); + let lastWasColon = state.lastWasColon; + let parents = state.parents; + const ret = { + tokens: [], + endState: state.clone() + }; + while (true) { + let offset = offsetDelta + scanner.getPosition(); + let type = ""; + const kind = scanner.scan(); + if (kind === 17 /* EOF */) { + break; + } + if (offset === offsetDelta + scanner.getPosition()) { + throw new Error("Scanner did not advance, next 3 characters are: " + line.substr(scanner.getPosition(), 3)); + } + if (adjustOffset) { + offset -= numberOfInsertedCharacters; + } + adjustOffset = numberOfInsertedCharacters > 0; + switch (kind) { + case 1 /* OpenBraceToken */: + parents = ParentsStack.push(parents, 0 /* Object */); + type = TOKEN_DELIM_OBJECT; + lastWasColon = false; + break; + case 2 /* CloseBraceToken */: + parents = ParentsStack.pop(parents); + type = TOKEN_DELIM_OBJECT; + lastWasColon = false; + break; + case 3 /* OpenBracketToken */: + parents = ParentsStack.push(parents, 1 /* Array */); + type = TOKEN_DELIM_ARRAY; + lastWasColon = false; + break; + case 4 /* CloseBracketToken */: + parents = ParentsStack.pop(parents); + type = TOKEN_DELIM_ARRAY; + lastWasColon = false; + break; + case 6 /* ColonToken */: + type = TOKEN_DELIM_COLON; + lastWasColon = true; + break; + case 5 /* CommaToken */: + type = TOKEN_DELIM_COMMA; + lastWasColon = false; + break; + case 8 /* TrueKeyword */: + case 9 /* FalseKeyword */: + type = TOKEN_VALUE_BOOLEAN; + lastWasColon = false; + break; + case 7 /* NullKeyword */: + type = TOKEN_VALUE_NULL; + lastWasColon = false; + break; + case 10 /* StringLiteral */: + const currentParent = parents ? parents.type : 0 /* Object */; + const inArray = currentParent === 1 /* Array */; + type = lastWasColon || inArray ? TOKEN_VALUE_STRING : TOKEN_PROPERTY_NAME; + lastWasColon = false; + break; + case 11 /* NumericLiteral */: + type = TOKEN_VALUE_NUMBER; + lastWasColon = false; + break; + } + if (comments) { + switch (kind) { + case 12 /* LineCommentTrivia */: + type = TOKEN_COMMENT_LINE; + break; + case 13 /* BlockCommentTrivia */: + type = TOKEN_COMMENT_BLOCK; + break; + } + } + ret.endState = new JSONState(state.getStateData(), scanner.getTokenError(), lastWasColon, parents); + ret.tokens.push({ + startIndex: offset, + scopes: type + }); + } + return ret; +} + +// src/language/json/jsonMode.ts +var JSONDiagnosticsAdapter = class extends DiagnosticsAdapter { + constructor(languageId, worker, defaults) { + super(languageId, worker, defaults.onDidChange); + this._disposables.push(monaco_editor_core_exports.editor.onWillDisposeModel((model) => { + this._resetSchema(model.uri); + })); + this._disposables.push(monaco_editor_core_exports.editor.onDidChangeModelLanguage((event) => { + this._resetSchema(event.model.uri); + })); + } + _resetSchema(resource) { + this._worker().then((worker) => { + worker.resetSchema(resource.toString()); + }); + } +}; +function setupMode(defaults) { + const disposables = []; + const providers = []; + const client = new WorkerManager(defaults); + disposables.push(client); + const worker = (...uris) => { + return client.getLanguageServiceWorker(...uris); + }; + function registerProviders() { + const { languageId, modeConfiguration: modeConfiguration2 } = defaults; + disposeAll(providers); + if (modeConfiguration2.documentFormattingEdits) { + providers.push(monaco_editor_core_exports.languages.registerDocumentFormattingEditProvider(languageId, new DocumentFormattingEditProvider(worker))); + } + if (modeConfiguration2.documentRangeFormattingEdits) { + providers.push(monaco_editor_core_exports.languages.registerDocumentRangeFormattingEditProvider(languageId, new DocumentRangeFormattingEditProvider(worker))); + } + if (modeConfiguration2.completionItems) { + providers.push(monaco_editor_core_exports.languages.registerCompletionItemProvider(languageId, new CompletionAdapter(worker, [" ", ":", '"']))); + } + if (modeConfiguration2.hovers) { + providers.push(monaco_editor_core_exports.languages.registerHoverProvider(languageId, new HoverAdapter(worker))); + } + if (modeConfiguration2.documentSymbols) { + providers.push(monaco_editor_core_exports.languages.registerDocumentSymbolProvider(languageId, new DocumentSymbolAdapter(worker))); + } + if (modeConfiguration2.tokens) { + providers.push(monaco_editor_core_exports.languages.setTokensProvider(languageId, createTokenizationSupport(true))); + } + if (modeConfiguration2.colors) { + providers.push(monaco_editor_core_exports.languages.registerColorProvider(languageId, new DocumentColorAdapter(worker))); + } + if (modeConfiguration2.foldingRanges) { + providers.push(monaco_editor_core_exports.languages.registerFoldingRangeProvider(languageId, new FoldingRangeAdapter(worker))); + } + if (modeConfiguration2.diagnostics) { + providers.push(new JSONDiagnosticsAdapter(languageId, worker, defaults)); + } + if (modeConfiguration2.selectionRanges) { + providers.push(monaco_editor_core_exports.languages.registerSelectionRangeProvider(languageId, new SelectionRangeAdapter(worker))); + } + } + registerProviders(); + disposables.push(monaco_editor_core_exports.languages.setLanguageConfiguration(defaults.languageId, richEditConfiguration)); + let modeConfiguration = defaults.modeConfiguration; + defaults.onDidChange((newDefaults) => { + if (newDefaults.modeConfiguration !== modeConfiguration) { + modeConfiguration = newDefaults.modeConfiguration; + registerProviders(); + } + }); + disposables.push(asDisposable(providers)); + return asDisposable(disposables); +} +function asDisposable(disposables) { + return { dispose: () => disposeAll(disposables) }; +} +function disposeAll(disposables) { + while (disposables.length) { + disposables.pop().dispose(); + } +} +var richEditConfiguration = { + wordPattern: /(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"] + ], + autoClosingPairs: [ + { open: "{", close: "}", notIn: ["string"] }, + { open: "[", close: "]", notIn: ["string"] }, + { open: '"', close: '"', notIn: ["string"] } + ] +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6686.555ef1a4.js b/assets/js/6686.555ef1a4.js new file mode 100644 index 00000000000..3b8957ad1bf --- /dev/null +++ b/assets/js/6686.555ef1a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6686],{54949:(e,n,t)=>{t.d(n,{S:()=>a,l:()=>r});var i=t(67294);function a(e){let{version:n}=e;return i.createElement("span",{class:"version added",title:"Added in "+n},"\u2265",n)}function r(e){let{version:n}=e;return i.createElement("span",{class:"version removed",title:"Removed after "+n},"\u2264",n)}},56686:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var i=t(87462),a=(t(67294),t(3905)),r=(t(45475),t(54949));const o={title:"Variable Declarations",slug:"/lang/variables"},s=void 0,l={unversionedId:"lang/variables",id:"lang/variables",title:"Variable Declarations",description:"When you are declaring a new variable, you may optionally declare its type.",source:"@site/docs/lang/variables.md",sourceDirName:"lang",slug:"/lang/variables",permalink:"/en/docs/lang/variables",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/variables.md",tags:[],version:"current",frontMatter:{title:"Variable Declarations",slug:"/lang/variables"},sidebar:"docsSidebar",previous:{title:"Types & Expressions",permalink:"/en/docs/lang/types-and-expressions"},next:{title:"Subsets & Subtypes",permalink:"/en/docs/lang/subtypes"}},d={},p=[{value:"const",id:"toc-const",level:2},{value:'var and let ',id:"toc-var-and-let",level:2},{value:"Variables initialized at their declarations",id:"toc-variables-initialized-at-their-declarations",level:3},{value:"Variables declared without initializers",id:"toc-variables-declared-without-initializers",level:3},{value:"Variables initialized to null",id:"toc-variables-initialized-to-null",level:3},{value:'Catch variables ',id:"catch-variables-",level:2}],m={toc:p};function c(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"When you are declaring a new variable, you may optionally declare its type."),(0,a.mdx)("p",null,"JavaScript has three ways of declaring local variables:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("inlineCode",{parentName:"li"},"var")," - declares a variable, optionally assigning a value.\n(",(0,a.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var"},"MDN"),")"),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("inlineCode",{parentName:"li"},"let")," - declares a block-scoped variable, optionally assigning a value.\n(",(0,a.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let"},"MDN"),")"),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("inlineCode",{parentName:"li"},"const")," - declares a block-scoped variable, assigning a value that cannot be re-assigned.\n(",(0,a.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const"},"MDN"),")")),(0,a.mdx)("p",null,"In Flow these fall into two groups:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("inlineCode",{parentName:"li"},"let")," and ",(0,a.mdx)("inlineCode",{parentName:"li"},"var")," - variables that ",(0,a.mdx)("strong",{parentName:"li"},"can")," be reassigned."),(0,a.mdx)("li",{parentName:"ul"},(0,a.mdx)("inlineCode",{parentName:"li"},"const")," - variables that ",(0,a.mdx)("strong",{parentName:"li"},"cannot")," be reassigned.")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":1,"endLine":7,"endColumn":13,"description":"Cannot reassign constant `constVariable` [1]. [reassign-const]"}]','[{"startLine":7,"startColumn":1,"endLine":7,"endColumn":13,"description":"Cannot':!0,reassign:!0,constant:!0,"`constVariable`":!0,"[1].":!0,'[reassign-const]"}]':!0},"var varVariable = 1;\nlet letVariable = 1;\nconst constVariable = 1;\n\nvarVariable = 2; // Works!\nletVariable = 2; // Works!\nconstVariable = 2; // Error!\n")),(0,a.mdx)("h2",{id:"toc-const"},(0,a.mdx)("inlineCode",{parentName:"h2"},"const")),(0,a.mdx)("p",null,"Since a ",(0,a.mdx)("inlineCode",{parentName:"p"},"const")," variable cannot be re-assigned at a later time it is fairly\nsimple."),(0,a.mdx)("p",null,"Flow can either infer the type from the value you are assigning to it or you\ncan provide it with a type."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const foo /* : number */ = 1;\nconst bar: number = 2;\n")),(0,a.mdx)("h2",{id:"toc-var-and-let"},(0,a.mdx)("inlineCode",{parentName:"h2"},"var")," and ",(0,a.mdx)("inlineCode",{parentName:"h2"},"let")," ",(0,a.mdx)(r.S,{version:"0.186",mdxType:"SinceVersion"})),(0,a.mdx)("p",null,"Since ",(0,a.mdx)("inlineCode",{parentName:"p"},"var")," and ",(0,a.mdx)("inlineCode",{parentName:"p"},"let")," can be re-assigned, there's a few more rules you'll need\nto know about."),(0,a.mdx)("p",null,"When you provide a type, you will be able to re-assign the value, but it must\nalways be of a compatible type."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":7,"endLine":3,"endColumn":9,"description":"Cannot assign `\\"3\\"` to `foo` because string [1] is incompatible with number [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":7,"endLine":3,"endColumn":9,"description":"Cannot':!0,assign:!0,'`\\"3\\"`':!0,to:!0,"`foo`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-type]"}]':!0},'let foo: number = 1;\nfoo = 2; // Works!\nfoo = "3"; // Error!\n')),(0,a.mdx)("p",null,"When the variable has no annotation, Flow infers a precise type based on\ntheir initializer or initial assignment. All subsequent assignments\nto that variable will be constrained by this type. This section shows some examples\nof how Flow determines what type an unannotated variable is inferred to have."),(0,a.mdx)("p",null,(0,a.mdx)("strong",{parentName:"p"},"If you want a variable to have a different type than what Flow infers for it,\nyou can always add a type annotation to the variable\u2019s declaration. That will\noverride everything discussed in this page!")),(0,a.mdx)("h3",{id:"toc-variables-initialized-at-their-declarations"},"Variables initialized at their declarations"),(0,a.mdx)("p",null,"The common case for unannotated variables is very straightforward: when a\nvariable is declared with an initializer that is not the literal ",(0,a.mdx)("inlineCode",{parentName:"p"},"null"),", that\nvariable will from then on have the type of the initializer, and future writes\nto the variable will be constrained by that type."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":28,"startColumn":11,"endLine":28,"endColumn":33,"description":"Cannot assign `\'Our new pr...\'` to `product` because string [1] is incompatible with number [2]. All writes to `product` must be compatible with the type of its initializer [3]. Add an annotation to `product` [3] if a different type is desired. [incompatible-type]"},{"startLine":29,"startColumn":13,"endLine":29,"endColumn":65,"description":"Cannot assign function to `Component` because property `extra_prop` is missing in object type [1] but exists in object type [2] in the first parameter. All writes to `Component` must be compatible with the type of its initializer [3]. Add an annotation to `Component` [3] if a different type is desired. [prop-missing]"},{"startLine":30,"startColumn":11,"endLine":30,"endColumn":45,"description":"Cannot assign `` to `element` because property `extra_prop` is missing in object type [1] but exists in object type [2] in type argument `P` [3]. All writes to `element` must be compatible with the type of its initializer [4]. Add an annotation to `element` [4] if a different type is desired. [prop-missing]"},{"startLine":30,"startColumn":12,"endLine":30,"endColumn":25,"description":"Cannot assign `` to `element` because property `extra_prop` is missing in object type [1] but exists in object type [2] in the first parameter of type argument `ElementType` [3]. All writes to `element` must be compatible with the type of its initializer [4]. Add an annotation to `element` [4] if a different type is desired. [prop-missing]"}]','[{"startLine":28,"startColumn":11,"endLine":28,"endColumn":33,"description":"Cannot':!0,assign:!0,"`'Our":!0,new:!0,"pr...'`":!0,to:!0,"`product`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,All:!0,writes:!0,must:!0,be:!0,compatible:!0,the:!0,type:!0,of:!0,its:!0,initializer:!0,"[3].":!0,Add:!0,an:!0,annotation:!0,"[3]":!0,if:!0,a:!0,different:!0,"desired.":!0,'[incompatible-type]"},{"startLine":29,"startColumn":13,"endLine":29,"endColumn":65,"description":"Cannot':!0,function:!0,"`Component`":!0,property:!0,"`extra_prop`":!0,missing:!0,in:!0,object:!0,but:!0,exists:!0,"[2]":!0,first:!0,"parameter.":!0,'[prop-missing]"},{"startLine":30,"startColumn":11,"endLine":30,"endColumn":45,"description":"Cannot':!0,"``":!0,"`element`":!0,argument:!0,"`P`":!0,"[4].":!0,"[4]":!0,'[prop-missing]"},{"startLine":30,"startColumn":12,"endLine":30,"endColumn":25,"description":"Cannot':!0,parameter:!0,"`ElementType`":!0,'[prop-missing]"}]':!0},"import * as React from 'react';\n\ntype Props = $ReadOnly<{ prop: string }>;\n\ndeclare var x: number;\ndeclare var y: number;\ndeclare var props: Props;\n\nlet product = Math.sqrt(x) + y;\n// `product` has type `number`\n\nlet Component = ({prop}: Props): React.Node => { return
    }\n// `Component` has type`React.ComponentType`\n\nlet element = \n// `element` has type `React.Element>`\n\n/* Let's define a new component */\n\ntype OtherProps = $ReadOnly<{ ...Props, extra_prop: number }>;\ndeclare var OtherComponent: (OtherProps) => React.Node;\ndeclare var other_props: OtherProps\n\n/* Any subsequent assignments to `product`, `Component`, or `element` will be\n * checked against the types that Flow infers for the initializers, and if\n * conflicting types are assigned, Flow will signal an error. */\n\nproduct = \"Our new product is...\";\nComponent = ({prop}: OtherProps): React.Node => { return
    };\nelement = ;\n")),(0,a.mdx)("p",null,"If you want these examples to typecheck, and for Flow to realize that different\nkinds of values can be written to these variables, you must add a type\nannotation reflecting this more general type to their declarations:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"let product: number | string = ...\nlet Component: mixed = ... // No good type to represent this! Consider restructuring\nlet element: React.Node = ...\n")),(0,a.mdx)("h3",{id:"toc-variables-declared-without-initializers"},"Variables declared without initializers"),(0,a.mdx)("p",null,'Often variables are declared without initializers. In such cases, Flow will try\nto choose the "first" assignment or assignments to the variable to define its\ntype. "First" here means both top-to-bottom and nearer-scope to\ndeeper-scope\u2014we\u2019ll try to choose an assignment that happens in the same function\nscope as the variable\u2019s declaration, and only look inside nested functions if we\ndon\u2019t find any assignments locally:'),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":22,"endLine":3,"endColumn":23,"description":"Cannot assign `42` to `topLevelAssigned` because number [1] is incompatible with string [2]. All writes to `topLevelAssigned` must be compatible with the type of its initial assignment [3]. Add an annotation to `topLevelAssigned` [4] if a different type is desired. [incompatible-type]"},{"startLine":6,"startColumn":20,"endLine":6,"endColumn":23,"description":"Cannot assign `true` to `topLevelAssigned` because boolean [1] is incompatible with string [2]. All writes to `topLevelAssigned` must be compatible with the type of its initial assignment [3]. Add an annotation to `topLevelAssigned` [4] if a different type is desired. [incompatible-type]"}]','[{"startLine":3,"startColumn":22,"endLine":3,"endColumn":23,"description":"Cannot':!0,assign:!0,"`42`":!0,to:!0,"`topLevelAssigned`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,All:!0,writes:!0,must:!0,be:!0,compatible:!0,the:!0,type:!0,of:!0,its:!0,initial:!0,assignment:!0,"[3].":!0,Add:!0,an:!0,annotation:!0,"[4]":!0,if:!0,a:!0,different:!0,"desired.":!0,'[incompatible-type]"},{"startLine":6,"startColumn":20,"endLine":6,"endColumn":23,"description":"Cannot':!0,"`true`":!0,boolean:!0,'[incompatible-type]"}]':!0},'let topLevelAssigned;\nfunction helper() {\n topLevelAssigned = 42; // Error: `topLevelAssigned` has type `string`\n}\ntopLevelAssigned = "Hello world"; // This write determines the var\'s type\ntopLevelAssigned = true; // Error: `topLevelAssigned` has type `string`\n')),(0,a.mdx)("p",null,'If there are two or more possible "first assignments," due to an ',(0,a.mdx)("inlineCode",{parentName:"p"},"if"),"- or\n",(0,a.mdx)("inlineCode",{parentName:"p"},"switch"),"-statement, they\u2019ll both count\u2014this is one of the few ways that Flow\nwill still infer unions for variable types:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":10,"startColumn":20,"endLine":10,"endColumn":24,"description":"Cannot assign `false` to `myNumberOrString` because: [incompatible-type] Either boolean [1] is incompatible with number [2]. Or boolean [1] is incompatible with string [3]. \\nAll writes to `myNumberOrString` must be compatible with the type of one of its initial assignments [4], [5]. Add an annotation to `myNumberOrString` [6] if a different type is desired."}]','[{"startLine":10,"startColumn":20,"endLine":10,"endColumn":24,"description":"Cannot':!0,assign:!0,"`false`":!0,to:!0,"`myNumberOrString`":!0,"because:":!0,"[incompatible-type]":!0,Either:!0,boolean:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,Or:!0,string:!0,"[3].":!0,"\\nAll":!0,writes:!0,must:!0,be:!0,compatible:!0,the:!0,type:!0,of:!0,one:!0,its:!0,initial:!0,assignments:!0,"[4],":!0,"[5].":!0,Add:!0,an:!0,annotation:!0,"[6]":!0,if:!0,a:!0,different:!0,'desired."}]':!0},'let myNumberOrString;\ndeclare var condition: boolean;\nif (condition) {\n myNumberOrString = 42; // Determines type\n} else {\n myNumberOrString = "Hello world"; // Determines type\n}\nmyNumberOrString = 21; // fine, compatible with type\nmyNumberOrString = "Goodbye"; // fine, compatible with type\nmyNumberOrString = false; // Error: `myNumberOrString` has type `number | string`\n')),(0,a.mdx)("p",null,"This only applies when the variable is written to in both branches, however. If\nonly one branch contains a write, that write becomes the type of the variable\nafterwards (though Flow will still check to make sure that the variable is\ndefinitely initialized):"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":19,"endLine":6,"endColumn":29,"description":"Cannot call `oneBranchAssigned.toUpperCase` because property `toUpperCase` is missing in possibly uninitialized variable [1]. [incompatible-use]"},{"startLine":7,"startColumn":21,"endLine":7,"endColumn":22,"description":"Cannot assign `42` to `oneBranchAssigned` because number [1] is incompatible with string [2]. All writes to `oneBranchAssigned` must be compatible with the type of its initial assignment [3]. Add an annotation to `oneBranchAssigned` [4] if a different type is desired. [incompatible-type]"}]','[{"startLine":6,"startColumn":19,"endLine":6,"endColumn":29,"description":"Cannot':!0,call:!0,"`oneBranchAssigned.toUpperCase`":!0,because:!0,property:!0,"`toUpperCase`":!0,is:!0,missing:!0,in:!0,possibly:!0,uninitialized:!0,variable:!0,"[1].":!0,'[incompatible-use]"},{"startLine":7,"startColumn":21,"endLine":7,"endColumn":22,"description":"Cannot':!0,assign:!0,"`42`":!0,to:!0,"`oneBranchAssigned`":!0,number:!0,"[1]":!0,incompatible:!0,with:!0,string:!0,"[2].":!0,All:!0,writes:!0,must:!0,be:!0,compatible:!0,the:!0,type:!0,of:!0,its:!0,initial:!0,assignment:!0,"[3].":!0,Add:!0,an:!0,annotation:!0,"[4]":!0,if:!0,a:!0,different:!0,"desired.":!0,'[incompatible-type]"}]':!0},'let oneBranchAssigned;\ndeclare var condition: boolean;\nif (condition) {\n oneBranchAssigned = "Hello world!";\n}\noneBranchAssigned.toUpperCase(); // Error: `oneBranchAssigned` may be uninitialized\noneBranchAssigned = 42; // Error: `oneBranchAssigned` has type `string`\n')),(0,a.mdx)("h3",{id:"toc-variables-initialized-to-null"},"Variables initialized to ",(0,a.mdx)("inlineCode",{parentName:"h3"},"null")),(0,a.mdx)("p",null,"Finally, the one exception to the general principle that variable\u2019s types are\ndetermined by their first assignment(s) is when a variable is initialized as (or\nwhose first assignment is) the literal value ",(0,a.mdx)("inlineCode",{parentName:"p"},"null"),". In such cases, the ",(0,a.mdx)("em",{parentName:"p"},"next"),"\nnon-null assignment (using the same rules as above) determines the rest of the\nvariable\u2019s type, and the overall type of the variable becomes a union of ",(0,a.mdx)("inlineCode",{parentName:"p"},"null"),"\nand the type of the subsequent assignment. This supports the common pattern\nwhere a variable starts off as ",(0,a.mdx)("inlineCode",{parentName:"p"},"null")," before getting assigned by a value of some\nother type:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function findIDValue(dict: {[key: string]: T}): T {\n let idVal = null; // initialized as `null`\n for (const key in dict) {\n if (key === 'ID') {\n idVal = dict[key]; // Infer that `idVal` has type `null | T`\n }\n }\n if (idVal === null) {\n throw new Error(\"No entry for ID!\");\n }\n return idVal;\n}\n")),(0,a.mdx)("h2",{id:"catch-variables-"},"Catch variables ",(0,a.mdx)(r.S,{version:"0.197",mdxType:"SinceVersion"})),(0,a.mdx)("p",null,"If a ",(0,a.mdx)("inlineCode",{parentName:"p"},"catch")," variable does not have an annotation, its default type is ",(0,a.mdx)("a",{parentName:"p",href:"../../types/any"},(0,a.mdx)("inlineCode",{parentName:"a"},"any")),"."),(0,a.mdx)("p",null,"You can optionally annotate it with exactly ",(0,a.mdx)("a",{parentName:"p",href:"../../types/mixed"},(0,a.mdx)("inlineCode",{parentName:"a"},"mixed"))," or ",(0,a.mdx)("inlineCode",{parentName:"p"},"any"),". E.g."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"try {\n} catch (e: mixed) {\n if (e instanceof TypeError) {\n (e: TypeError); // OK\n } else if (e instanceof Error) {\n (e: Error); // OK\n } else {\n throw e;\n }\n}\n")),(0,a.mdx)("p",null,"By using ",(0,a.mdx)("inlineCode",{parentName:"p"},"mixed"),", you can improve your safety and Flow ",(0,a.mdx)("a",{parentName:"p",href:"../../cli/coverage/"},"coverage"),",\nat the trade-off of increased runtime checks."),(0,a.mdx)("p",null,"You can change the default type of ",(0,a.mdx)("inlineCode",{parentName:"p"},"catch")," variables when there is no annotation by setting the ",(0,a.mdx)("a",{parentName:"p",href:"../../config/options/#toc-use-mixed-in-catch-variables"},(0,a.mdx)("inlineCode",{parentName:"a"},"use_mixed_in_catch_variables"))," option to true."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6717.c41df2f5.js b/assets/js/6717.c41df2f5.js new file mode 100644 index 00000000000..e98e24ef85f --- /dev/null +++ b/assets/js/6717.c41df2f5.js @@ -0,0 +1,2 @@ +/*! For license information please see 6717.c41df2f5.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6717],{96717:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>d,language:()=>m});var o,r,i=n(15030),s=Object.defineProperty,c=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,g=(e,t,n,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of a(t))p.call(e,r)||r===n||s(e,r,{get:()=>t[r],enumerable:!(o=c(t,r))||o.enumerable});return e},l={};g(l,o=i,"default"),r&&g(r,o,"default");var d={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:l.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:l.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:l.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:l.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},m={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}}}}]); \ No newline at end of file diff --git a/assets/js/6717.c41df2f5.js.LICENSE.txt b/assets/js/6717.c41df2f5.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/6717.c41df2f5.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/6717.f3c4e982.js b/assets/js/6717.f3c4e982.js new file mode 100644 index 00000000000..a07346afd5b --- /dev/null +++ b/assets/js/6717.f3c4e982.js @@ -0,0 +1,358 @@ +"use strict"; +exports.id = 6717; +exports.ids = [6717]; +exports.modules = { + +/***/ 96717: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15030); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/typescript/typescript.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + onEnterRules: [ + { + beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, + afterText: /^\s*\*\/$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.IndentOutdent, + appendText: " * " + } + }, + { + beforeText: /^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + appendText: " * " + } + }, + { + beforeText: /^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + appendText: "* " + } + }, + { + beforeText: /^(\t|(\ \ ))*\ \*\/\s*$/, + action: { + indentAction: monaco_editor_core_exports.languages.IndentAction.None, + removeText: 1 + } + } + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: "`", close: "`", notIn: ["string", "comment"] }, + { open: "/**", close: " */", notIn: ["string"] } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*#?region\\b"), + end: new RegExp("^\\s*//\\s*#?endregion\\b") + } + } +}; +var language = { + defaultToken: "invalid", + tokenPostfix: ".ts", + keywords: [ + "abstract", + "any", + "as", + "asserts", + "bigint", + "boolean", + "break", + "case", + "catch", + "class", + "continue", + "const", + "constructor", + "debugger", + "declare", + "default", + "delete", + "do", + "else", + "enum", + "export", + "extends", + "false", + "finally", + "for", + "from", + "function", + "get", + "if", + "implements", + "import", + "in", + "infer", + "instanceof", + "interface", + "is", + "keyof", + "let", + "module", + "namespace", + "never", + "new", + "null", + "number", + "object", + "out", + "package", + "private", + "protected", + "public", + "override", + "readonly", + "require", + "global", + "return", + "set", + "static", + "string", + "super", + "switch", + "symbol", + "this", + "throw", + "true", + "try", + "type", + "typeof", + "undefined", + "unique", + "unknown", + "var", + "void", + "while", + "with", + "yield", + "async", + "await", + "of" + ], + operators: [ + "<=", + ">=", + "==", + "!=", + "===", + "!==", + "=>", + "+", + "-", + "**", + "*", + "/", + "%", + "++", + "--", + "<<", + ">", + ">>>", + "&", + "|", + "^", + "!", + "~", + "&&", + "||", + "??", + "?", + ":", + "=", + "+=", + "-=", + "*=", + "**=", + "/=", + "%=", + "<<=", + ">>=", + ">>>=", + "&=", + "|=", + "^=", + "@" + ], + symbols: /[=>](?!@symbols)/, "@brackets"], + [/!(?=([^=]|$))/, "delimiter"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/(@digits)[eE]([\-+]?(@digits))?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, "number.float"], + [/0[xX](@hexdigits)n?/, "number.hex"], + [/0[oO]?(@octaldigits)n?/, "number.octal"], + [/0[bB](@binarydigits)n?/, "number.binary"], + [/(@digits)n?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string_double"], + [/'/, "string", "@string_single"], + [/`/, "string", "@string_backtick"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@jsdoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + jsdoc: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + regexp: [ + [ + /(\{)(\d+(?:,\d*)?)(\})/, + ["regexp.escape.control", "regexp.escape.control", "regexp.escape.control"] + ], + [ + /(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/, + ["regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }] + ], + [/(\()(\?:|\?=|\?!)/, ["regexp.escape.control", "regexp.escape.control"]], + [/[()]/, "regexp.escape.control"], + [/@regexpctl/, "regexp.escape.control"], + [/[^\\\/]/, "regexp"], + [/@regexpesc/, "regexp.escape"], + [/\\\./, "regexp.invalid"], + [/(\/)([dgimsuy]*)/, [{ token: "regexp", bracket: "@close", next: "@pop" }, "keyword.other"]] + ], + regexrange: [ + [/-/, "regexp.escape.control"], + [/\^/, "regexp.invalid"], + [/@regexpesc/, "regexp.escape"], + [/[^\]]/, "regexp"], + [ + /\]/, + { + token: "regexp.escape.control", + next: "@pop", + bracket: "@close" + } + ] + ], + string_double: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + string_single: [ + [/[^\\']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/'/, "string", "@pop"] + ], + string_backtick: [ + [/\$\{/, { token: "delimiter.bracket", next: "@bracketCounting" }], + [/[^\\`$]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/`/, "string", "@pop"] + ], + bracketCounting: [ + [/\{/, "delimiter.bracket", "@bracketCounting"], + [/\}/, "delimiter.bracket", "@pop"], + { include: "common" } + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/6778.a7f9f534.js b/assets/js/6778.a7f9f534.js new file mode 100644 index 00000000000..c745c5583c1 --- /dev/null +++ b/assets/js/6778.a7f9f534.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6778],{16778:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>m,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>s});var n=o(87462),a=(o(67294),o(3905));const r={title:"Improvements to Flow in 2019","short-title":"Improvements to Flow in 2019",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/improvements-to-flow-in-2019-c8378e7aa007"},m=void 0,i={permalink:"/blog/2020/02/19/Improvements-to-Flow-in-2019",source:"@site/blog/2020-02-19-Improvements-to-Flow-in-2019.md",title:"Improvements to Flow in 2019",description:"Take a look back at improvements we made to Flow in 2019.",date:"2020-02-19T00:00:00.000Z",formattedDate:"February 19, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Andrew Pardoe"}],frontMatter:{title:"Improvements to Flow in 2019","short-title":"Improvements to Flow in 2019",author:"Andrew Pardoe","medium-link":"https://medium.com/flow-type/improvements-to-flow-in-2019-c8378e7aa007"},prevItem:{title:"What we\u2019re building in 2020",permalink:"/blog/2020/03/09/What-were-building-in-2020"},nextItem:{title:"How to upgrade to exact-by-default object type syntax",permalink:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax"}},l={authorsImageUrls:[void 0]},s=[],p={toc:s};function d(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Take a look back at improvements we made to Flow in 2019."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6780.e538d469.js b/assets/js/6780.e538d469.js new file mode 100644 index 00000000000..b857753c90e --- /dev/null +++ b/assets/js/6780.e538d469.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6780],{76780:(e,t,r)=>{function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t,r){var a,c=t.initialState;return{getState:function(){return c},dispatch:function(a,i){var l=function(e){for(var t=1;tDr});var f=0;var m=function(){};function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function h(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Array.isArray(e),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));r.push(e.sourceId);var t=function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var J,$,W,Q=null,Y=(J=-1,$=-1,W=void 0,function(e){var t=++J;return Promise.resolve(e).then((function(e){return W&&t<$?W:($=t,W=e,e)}))});function G(e){var t=e.event,r=e.nextState,n=void 0===r?{}:r,o=e.props,a=e.query,i=e.refresh,l=e.store,u=K(e,U);Q&&o.environment.clearTimeout(Q);var s=u.setCollections,f=u.setIsOpen,m=u.setQuery,p=u.setActiveItemId,d=u.setStatus;if(m(a),p(o.defaultActiveItemId),!a&&!1===o.openOnFocus){var h,v=l.getState().collections.map((function(e){return V(V({},e),{},{items:[]})}));d("idle"),s(v),f(null!==(h=n.isOpen)&&void 0!==h?h:o.shouldPanelOpen({state:l.getState()}));var y=M(Y(v).then((function(){return Promise.resolve()})));return l.pendingRequests.add(y)}d("loading"),Q=o.environment.setTimeout((function(){d("stalled")}),o.stallThreshold);var g=M(Y(o.getSources(V({query:a,refresh:i,state:l.getState()},u)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(V({query:a,refresh:i,state:l.getState()},u))).then((function(t){return R(t,e.sourceId)}))}))).then(q).then((function(t){return _(t,e)})).then((function(e){return function(e){var t=e.collections,r=e.props,n=e.state,o=t.reduce((function(e,t){return j(j({},e),{},E({},t.source.sourceId,j(j({},t.source),{},{getItems:function(){return c(t.items)}})))}),{});return c(r.reshape({sources:Object.values(o),sourcesBySourceId:o,state:n})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:l.getState()})}))})))).then((function(e){var r;d("idle"),s(e);var c=o.shouldPanelOpen({state:l.getState()});f(null!==(r=n.isOpen)&&void 0!==r?r:o.openOnFocus&&!a&&c||c);var m=F(l.getState());if(null!==l.getState().activeItemId&&m){var p=m.item,h=m.itemInputValue,v=m.itemUrl,y=m.source;y.onActive(V({event:t,item:p,itemInputValue:h,itemUrl:v,refresh:i,source:y,state:l.getState()},u))}})).finally((function(){d("idle"),Q&&o.environment.clearTimeout(Q)}));return l.pendingRequests.add(g)}var X=["event","props","refresh","store"];function Z(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ee(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var ne=/((gt|sm)-|galaxy nexus)|samsung[- ]/i;var oe=["props","refresh","store"],ae=["inputElement","formElement","panelElement"],ce=["inputElement"],ie=["inputElement","maxLength"],le=["item","source"];function ue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function se(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function pe(e){var t=e.props,r=e.refresh,n=e.store,o=me(e,oe);return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,a=e.panelElement;function c(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,a].some((function(t){return r=t,n=e.target,r===n||r.contains(n);var r,n}))&&(n.dispatch("blur",null),t.debug||n.pendingRequests.cancelAll())}return se({onTouchStart:c,onMouseDown:c,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},me(e,ae))},getRootProps:function(e){return se({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-owns":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return se({action:"",noValidate:!0,role:"search",onSubmit:function(a){var c;a.preventDefault(),t.onSubmit(se({event:a,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),null===(c=e.inputElement)||void 0===c||c.blur()},onReset:function(a){var c;a.preventDefault(),t.onReset(se({event:a,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),null===(c=e.inputElement)||void 0===c||c.focus()}},me(e,ce))},getLabelProps:function(e){return se({htmlFor:"".concat(t.id,"-input"),id:"".concat(t.id,"-label")},e)},getInputProps:function(e){var a;function c(e){(t.openOnFocus||Boolean(n.getState().query))&&G(se({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var i=e||{},l=(i.inputElement,i.maxLength),u=void 0===l?512:l,s=me(i,ie),f=F(n.getState()),p=function(e){return Boolean(e&&e.match(ne))}((null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent)||""),d=null!=f&&f.itemUrl&&!p?"go":"search";return se({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&null!==n.getState().activeItemId?"".concat(t.id,"-item-").concat(n.getState().activeItemId):void 0,"aria-controls":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:n.getState().completion||n.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:d,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:u,type:"search",onChange:function(e){G(se({event:e,props:t,query:e.currentTarget.value.slice(0,u),refresh:r,store:n},o))},onKeyDown:function(e){!function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,a=re(e,X);if("ArrowUp"===t.key||"ArrowDown"===t.key){var c=function(){var e=r.environment.document.getElementById("".concat(r.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},i=function(){var e=F(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,c=e.itemInputValue,i=e.itemUrl,l=e.source;l.onActive(ee({event:t,item:r,itemInputValue:c,itemUrl:i,refresh:n,source:l,state:o.getState()},a))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?G(ee({event:t,props:r,query:o.getState().query,refresh:n,store:o},a)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),i(),setTimeout(c,0)})):(o.dispatch(t.key,{}),i(),c())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(r.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=F(o.getState()),u=l.item,s=l.itemInputValue,f=l.itemUrl,m=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(ee({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),r.navigator.navigateNewTab({itemUrl:f,item:u,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(ee({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),r.navigator.navigateNewWindow({itemUrl:f,item:u,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(ee({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},a)),void r.navigator.navigate({itemUrl:f,item:u,state:o.getState()});G(ee({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},a)).then((function(){m.onSelect(ee({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},a))}))}}}(se({event:e,props:t,refresh:r,store:n},o))},onFocus:c,onBlur:m,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||c(r)}},s)},getPanelProps:function(e){return se({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},e)},getListProps:function(e){return se({role:"listbox","aria-labelledby":"".concat(t.id,"-label"),id:"".concat(t.id,"-list")},e)},getItemProps:function(e){var a=e.item,c=e.source,i=me(e,le);return se({id:"".concat(t.id,"-item-").concat(a.__autocomplete_id),role:"option","aria-selected":n.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",a.__autocomplete_id);var t=F(n.getState());if(null!==n.getState().activeItemId&&t){var c=t.item,i=t.itemInputValue,l=t.itemUrl,u=t.source;u.onActive(se({event:e,item:c,itemInputValue:i,itemUrl:l,refresh:r,source:u,state:n.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var i=c.getItemInputValue({item:a,state:n.getState()}),l=c.getItemUrl({item:a,state:n.getState()});(l?Promise.resolve():G(se({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:r,store:n},o))).then((function(){c.onSelect(se({event:e,item:a,itemInputValue:i,itemUrl:l,refresh:r,source:c,state:n.getState()},o))}))}},i)}}}var de=[{segment:"autocomplete-core",version:"1.7.1"}];function he(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ve(e){for(var t=1;t=r?null===n?null:0:o}function Se(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function je(e){for(var t=1;t0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(f++),plugins:o,initialState:b({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var r;null===(r=e.onStateChange)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onStateChange)||void 0===r?void 0:r.call(e,t)}))},onSubmit:function(t){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onSubmit)||void 0===r?void 0:r.call(e,t)}))},onReset:function(t){var r;null===(r=e.onReset)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onReset)||void 0===r?void 0:r.call(e,t)}))},getSources:function(r){return Promise.all([].concat(v(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return h(e,r)}))).then((function(e){return c(e)})).then((function(e){return e.map((function(e){return b(b({},e),{},{onSelect:function(r){e.onSelect(r),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,r)}))},onActive:function(r){e.onActive(r),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:b({navigate:function(e){var t=e.itemUrl;n.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,r=n.open(t,"_blank","noopener");null==r||r.focus()},navigateNewWindow:function(e){var t=e.itemUrl;n.open(t,"_blank","noopener")}},e.navigator)})}(e,t),n=a(we,r,(function(e){var t=e.prevState,n=e.state;r.onStateChange(Ie({prevState:t,state:n,refresh:u},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var r=0,n=e.map((function(e){return l(l({},e),{},{items:c(e.items).map((function(e){return l(l({},e),{},{__autocomplete_id:r++})}))})}));t.dispatch("setCollections",n)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:n}),i=pe(Ie({props:r,refresh:u,store:n},o));function u(){return G(Ie({event:new Event("input"),nextState:{isOpen:n.getState().isOpen},props:r,query:n.getState().query,refresh:u,store:n},o))}return r.plugins.forEach((function(e){var r;return null===(r=e.subscribe)||void 0===r?void 0:r.call(e,Ie(Ie({},o),{},{refresh:u,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})}}))})),function(e){var t,r,n=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(r=t.userAgent)||void 0===r?void 0:r.includes("Algolia Crawler")){var a=o.document.createElement("meta"),c=o.document.querySelector("head");a.name="algolia:metadata",setTimeout((function(){a.content=JSON.stringify(n),c.appendChild(a)}),0)}}({metadata:ge({plugins:r.plugins,options:e}),environment:r.environment}),Ie(Ie({refresh:u},i),o)}var ke=r(67294);function Ae(e){var t=e.translations,r=(void 0===t?{}:t).searchByText,n=void 0===r?"Search by":r;return ke.createElement("a",{href:"https://www.algolia.com/ref/docsearch/?utm_source=".concat(window.location.hostname,"&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch"),target:"_blank",rel:"noopener noreferrer"},ke.createElement("span",{className:"DocSearch-Label"},n),ke.createElement("svg",{width:"77",height:"19","aria-label":"Algolia",role:"img"},ke.createElement("path",{d:"M2.5067 0h14.0245c1.384.001 2.5058 1.1205 2.5068 2.5017V16.5c-.0014 1.3808-1.1232 2.4995-2.5068 2.5H2.5067C1.1232 18.9995.0014 17.8808 0 16.5V2.4958A2.495 2.495 0 01.735.7294 2.505 2.505 0 012.5068 0zM37.95 15.0695c-3.7068.0168-3.7068-2.986-3.7068-3.4634L34.2372.3576 36.498 0v11.1794c0 .2715 0 1.9889 1.452 1.994v1.8961zm-9.1666-1.8388c.694 0 1.2086-.0397 1.5678-.1088v-2.2934a5.3639 5.3639 0 00-1.3303-.1679 4.8283 4.8283 0 00-.758.0582 2.2845 2.2845 0 00-.688.2024c-.2029.0979-.371.2362-.4919.4142-.1268.1788-.185.2826-.185.5533 0 .5297.185.8359.5205 1.0375.3355.2016.7928.3053 1.365.3053v-.0008zm-.1969-8.1817c.7463 0 1.3768.092 1.8856.2767.5088.1838.9195.4428 1.2204.7717.3068.334.5147.7777.6423 1.251.1327.4723.196.991.196 1.5603v5.798c-.5235.1036-1.05.192-1.5787.2649-.7048.1037-1.4976.156-2.3774.156-.5832 0-1.1215-.0582-1.6016-.167a3.385 3.385 0 01-1.2432-.5364 2.6034 2.6034 0 01-.8037-.9565c-.191-.3922-.29-.9447-.29-1.5208 0-.5533.11-.905.3246-1.2863a2.7351 2.7351 0 01.8849-.9329c.376-.242.8029-.415 1.2948-.5187a7.4517 7.4517 0 011.5381-.156 7.1162 7.1162 0 011.6667.2024V8.886c0-.259-.0296-.5061-.093-.7372a1.5847 1.5847 0 00-.3245-.6158 1.5079 1.5079 0 00-.6119-.4158 2.6788 2.6788 0 00-.966-.173c-.5206 0-.9948.0634-1.4283.1384a6.5481 6.5481 0 00-1.065.259l-.2712-1.849c.2831-.0986.7048-.1964 1.2491-.2943a9.2979 9.2979 0 011.752-.1501v.0008zm44.6597 8.1193c.6947 0 1.2086-.0405 1.567-.1097v-2.2942a5.3743 5.3743 0 00-1.3303-.1679c-.2485 0-.503.0177-.7573.0582a2.2853 2.2853 0 00-.688.2024 1.2333 1.2333 0 00-.4918.4142c-.1268.1788-.1843.2826-.1843.5533 0 .5297.1843.8359.5198 1.0375.3414.2066.7927.3053 1.365.3053v.0009zm-.191-8.1767c.7463 0 1.3768.0912 1.8856.2759.5087.1847.9195.4436 1.2204.7717.3.329.5147.7786.6414 1.251a5.7248 5.7248 0 01.197 1.562v5.7972c-.3466.0742-.874.1602-1.5788.2648-.7049.1038-1.4976.1552-2.3774.1552-.5832 0-1.1215-.0573-1.6016-.167a3.385 3.385 0 01-1.2432-.5356 2.6034 2.6034 0 01-.8038-.9565c-.191-.3922-.2898-.9447-.2898-1.5216 0-.5533.1098-.905.3245-1.2854a2.7373 2.7373 0 01.8849-.9338c.376-.2412.8029-.4141 1.2947-.5178a7.4545 7.4545 0 012.325-.1097c.2781.0287.5672.081.879.156v-.3686a2.7781 2.7781 0 00-.092-.738 1.5788 1.5788 0 00-.3246-.6166 1.5079 1.5079 0 00-.612-.415 2.6797 2.6797 0 00-.966-.1729c-.5205 0-.9947.0633-1.4282.1384a6.5608 6.5608 0 00-1.065.259l-.2712-1.8498c.283-.0979.7048-.1957 1.2491-.2935a9.8597 9.8597 0 011.752-.1494zm-6.79-1.072c-.7576.001-1.373-.6103-1.3759-1.3664 0-.755.6128-1.3664 1.376-1.3664.764 0 1.3775.6115 1.3775 1.3664s-.6195 1.3664-1.3776 1.3664zm1.1393 11.1507h-2.2726V5.3409l2.2734-.3568v10.0845l-.0008.0017zm-3.984 0c-3.707.0168-3.707-2.986-3.707-3.4642L59.7069.3576 61.9685 0v11.1794c0 .2715 0 1.9889 1.452 1.994V15.0703zm-7.3512-4.979c0-.975-.2138-1.7873-.6305-2.3516-.4167-.571-.9998-.852-1.747-.852-.7454 0-1.3302.281-1.7452.852-.4166.5702-.6195 1.3765-.6195 2.3516 0 .9851.208 1.6473.6254 2.2183.4158.576.9998.8587 1.7461.8587.7454 0 1.3303-.2885 1.747-.8595.4158-.5761.6237-1.2315.6237-2.2184v.0009zm2.3132-.006c0 .7609-.1099 1.3361-.3356 1.9654a4.654 4.654 0 01-.9533 1.6076A4.214 4.214 0 0155.613 14.69c-.579.2412-1.4697.3795-1.9143.3795-.4462-.005-1.3303-.1324-1.9033-.3795a4.307 4.307 0 01-1.474-1.0316c-.4115-.4445-.7293-.9801-.9609-1.6076a5.3423 5.3423 0 01-.3465-1.9653c0-.7608.104-1.493.3356-2.1155a4.683 4.683 0 01.9719-1.5958 4.3383 4.3383 0 011.479-1.0257c.5739-.242 1.2043-.3567 1.8864-.3567.6829 0 1.3125.1197 1.8906.3567a4.1245 4.1245 0 011.4816 1.0257 4.7587 4.7587 0 01.9592 1.5958c.2426.6225.3643 1.3547.3643 2.1155zm-17.0198 0c0 .9448.208 1.9932.6238 2.431.4166.4386.955.6579 1.6142.6579.3584 0 .6998-.0523 1.0176-.1502.3186-.0978.5721-.2134.775-.3517V7.0784a8.8706 8.8706 0 00-1.4926-.1906c-.8206-.0236-1.4452.312-1.8847.8468-.4335.5365-.6533 1.476-.6533 2.3516v-.0008zm6.2863 4.4485c0 1.5385-.3938 2.662-1.1866 3.3773-.791.7136-2.0005 1.0712-3.6308 1.0712-.5958 0-1.834-.1156-2.8228-.334l.3643-1.7865c.8282.173 1.9202.2193 2.4932.2193.9077 0 1.555-.1847 1.943-.5533.388-.3686.578-.916.578-1.643v-.3687a6.8289 6.8289 0 01-.8848.3349c-.3634.1096-.786.167-1.261.167-.6246 0-1.1917-.0979-1.7055-.2944a3.5554 3.5554 0 01-1.3244-.8645c-.3642-.3796-.6541-.8579-.8561-1.4289-.2028-.571-.3068-1.59-.3068-2.339 0-.7034.1099-1.5856.3245-2.1735.2198-.5871.5316-1.0949.9542-1.515.4167-.42.9255-.743 1.5213-.98a5.5923 5.5923 0 012.052-.3855c.7353 0 1.4114.092 2.0707.2024.6592.1088 1.2204.2236 1.6776.35v8.945-.0008zM11.5026 4.2418v-.6511c-.0005-.4553-.3704-.8241-.8266-.8241H8.749c-.4561 0-.826.3688-.8265.824v.669c0 .0742.0693.1264.1445.1096a6.0346 6.0346 0 011.6768-.2362 6.125 6.125 0 011.6202.2185.1116.1116 0 00.1386-.1097zm-5.2806.852l-.3296-.3282a.8266.8266 0 00-1.168 0l-.393.3922a.8199.8199 0 000 1.164l.3237.323c.0524.0515.1268.0397.1733-.0117.191-.259.3989-.507.6305-.7372.2374-.2362.48-.4437.7462-.6335.0575-.0354.0634-.1155.017-.1687zm3.5159 2.069v2.818c0 .081.0879.1392.1622.0987l2.5102-1.2964c.0574-.0287.0752-.0987.0464-.1552a3.1237 3.1237 0 00-2.603-1.574c-.0575 0-.115.0456-.115.1097l-.0008-.0009zm.0008 6.789c-2.0933.0005-3.7915-1.6912-3.7947-3.7804C5.9468 8.0821 7.6452 6.39 9.7387 6.391c2.0932-.0005 3.7911 1.6914 3.794 3.7804a3.7783 3.7783 0 01-1.1124 2.675 3.7936 3.7936 0 01-2.6824 1.1054h.0008zM9.738 4.8002c-1.9218 0-3.6975 1.0232-4.6584 2.6841a5.359 5.359 0 000 5.3683c.9609 1.661 2.7366 2.6841 4.6584 2.6841a5.3891 5.3891 0 003.8073-1.5725 5.3675 5.3675 0 001.578-3.7987 5.3574 5.3574 0 00-1.5771-3.797A5.379 5.379 0 009.7387 4.801l-.0008-.0008z",fill:"currentColor",fillRule:"evenodd"})))}function xe(e){return ke.createElement("svg",{width:"15",height:"15","aria-label":e.ariaLabel,role:"img"},ke.createElement("g",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.2"},e.children))}function Ne(e){var t=e.translations,r=void 0===t?{}:t,n=r.selectText,o=void 0===n?"to select":n,a=r.selectKeyAriaLabel,c=void 0===a?"Enter key":a,i=r.navigateText,l=void 0===i?"to navigate":i,u=r.navigateUpKeyAriaLabel,s=void 0===u?"Arrow up":u,f=r.navigateDownKeyAriaLabel,m=void 0===f?"Arrow down":f,p=r.closeText,d=void 0===p?"to close":p,h=r.closeKeyAriaLabel,v=void 0===h?"Escape key":h,y=r.searchByText,g=void 0===y?"Search by":y;return ke.createElement(ke.Fragment,null,ke.createElement("div",{className:"DocSearch-Logo"},ke.createElement(Ae,{translations:{searchByText:g}})),ke.createElement("ul",{className:"DocSearch-Commands"},ke.createElement("li",null,ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:c},ke.createElement("path",{d:"M12 3.53088v3c0 1-1 2-2 2H4M7 11.53088l-3-3 3-3"}))),ke.createElement("span",{className:"DocSearch-Label"},o)),ke.createElement("li",null,ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:m},ke.createElement("path",{d:"M7.5 3.5v8M10.5 8.5l-3 3-3-3"}))),ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:s},ke.createElement("path",{d:"M7.5 11.5v-8M10.5 6.5l-3-3-3 3"}))),ke.createElement("span",{className:"DocSearch-Label"},l)),ke.createElement("li",null,ke.createElement("kbd",{className:"DocSearch-Commands-Key"},ke.createElement(xe,{ariaLabel:v},ke.createElement("path",{d:"M13.6167 8.936c-.1065.3583-.6883.962-1.4875.962-.7993 0-1.653-.9165-1.653-2.1258v-.5678c0-1.2548.7896-2.1016 1.653-2.1016.8634 0 1.3601.4778 1.4875 1.0724M9 6c-.1352-.4735-.7506-.9219-1.46-.8972-.7092.0246-1.344.57-1.344 1.2166s.4198.8812 1.3445.9805C8.465 7.3992 8.968 7.9337 9 8.5c.032.5663-.454 1.398-1.4595 1.398C6.6593 9.898 6 9 5.963 8.4851m-1.4748.5368c-.2635.5941-.8099.876-1.5443.876s-1.7073-.6248-1.7073-2.204v-.4603c0-1.0416.721-2.131 1.7073-2.131.9864 0 1.6425 1.031 1.5443 2.2492h-2.956"}))),ke.createElement("span",{className:"DocSearch-Label"},d))))}function Re(e){var t=e.hit,r=e.children;return ke.createElement("a",{href:t.url},r)}function qe(){return ke.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},ke.createElement("path",{d:"M19 4.8a16 16 0 00-2-1.2m-3.3-1.2A16 16 0 001.1 4.7M16.7 8a12 12 0 00-2.8-1.4M10 6a12 12 0 00-6.7 2M12.3 14.7a4 4 0 00-4.5 0M14.5 11.4A8 8 0 0010 10M3 16L18 2M10 18h0"}))}function _e(e){var t=e.translations,r=void 0===t?{}:t,n=r.titleText,o=void 0===n?"Unable to fetch results":n,a=r.helpText,c=void 0===a?"You might want to check your network connection.":a;return ke.createElement("div",{className:"DocSearch-ErrorScreen"},ke.createElement("div",{className:"DocSearch-Screen-Icon"},ke.createElement(qe,null)),ke.createElement("p",{className:"DocSearch-Title"},o),ke.createElement("p",{className:"DocSearch-Help"},c))}function Te(){return ke.createElement("svg",{width:"40",height:"40",viewBox:"0 0 20 20",fill:"none",fillRule:"evenodd",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round"},ke.createElement("path",{d:"M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2"}))}var Le=["translations"];function Me(e){return function(e){if(Array.isArray(e))return He(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return He(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return He(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function He(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ue(e){var t=e.translations,r=void 0===t?{}:t,n=Fe(e,Le),o=r.noResultsText,a=void 0===o?"No results for":o,c=r.suggestedQueryText,i=void 0===c?"Try searching for":c,l=r.reportMissingResultsText,u=void 0===l?"Believe this query should return results?":l,s=r.reportMissingResultsLinkText,f=void 0===s?"Let us know.":s,m=n.state.context.searchSuggestions;return ke.createElement("div",{className:"DocSearch-NoResults"},ke.createElement("div",{className:"DocSearch-Screen-Icon"},ke.createElement(Te,null)),ke.createElement("p",{className:"DocSearch-Title"},a,' "',ke.createElement("strong",null,n.state.query),'"'),m&&m.length>0&&ke.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},ke.createElement("p",{className:"DocSearch-Help"},i,":"),ke.createElement("ul",null,m.slice(0,3).reduce((function(e,t){return[].concat(Me(e),[ke.createElement("li",{key:t},ke.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){n.setQuery(t.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},t))])}),[]))),n.getMissingResultsUrl&&ke.createElement("p",{className:"DocSearch-Help"},"".concat(u," "),ke.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}var Be=function(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("path",{d:"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))};function Ve(e){switch(e.type){case"lvl1":return ke.createElement(Be,null);case"content":return ke.createElement(Ke,null);default:return ke.createElement(ze,null)}}function ze(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function Ke(){return ke.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Je(){return ke.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},ke.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},ke.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),ke.createElement("path",{d:"M8 17l-6-6 6-6"})))}var $e=["hit","attribute","tagName"];function We(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Qe(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Xe(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function Ze(e){var t=e.hit,r=e.attribute,n=e.tagName,o=void 0===n?"span":n,a=Ge(e,$e);return(0,ke.createElement)(o,Qe(Qe({},a),{},{dangerouslySetInnerHTML:{__html:Xe(t,"_snippetResult.".concat(r,".value"))||Xe(t,r)}}))}function et(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,a=[],c=!0,i=!1;try{for(r=r.call(e);!(c=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);c=!0);}catch(l){i=!0,o=l}finally{try{c||null==r.return||r.return()}finally{if(i)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return tt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return tt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function tt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r|<\/mark>)/g,ct=RegExp(at.source);function it(e){var t,r,n,o,a,c=e;if(!c.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var i=((c.__docsearch_parent?null===(t=c.__docsearch_parent)||void 0===t||null===(r=t._highlightResult)||void 0===r||null===(n=r.hierarchy)||void 0===n?void 0:n.lvl0:null===(o=e._highlightResult)||void 0===o||null===(a=o.hierarchy)||void 0===a?void 0:a.lvl0)||{}).value;return i&&ct.test(i)?i.replace(at,""):i}function lt(){return lt=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function vt(e){var t=e.translations,r=void 0===t?{}:t,n=ht(e,pt),o=r.recentSearchesTitle,a=void 0===o?"Recent":o,c=r.noRecentSearchesText,i=void 0===c?"No recent searches":c,l=r.saveRecentSearchButtonTitle,u=void 0===l?"Save this search":l,s=r.removeRecentSearchButtonTitle,f=void 0===s?"Remove this search from history":s,m=r.favoriteSearchesTitle,p=void 0===m?"Favorite":m,d=r.removeFavoriteSearchButtonTitle,h=void 0===d?"Remove this search from favorites":d;return"idle"===n.state.status&&!1===n.hasCollections?n.disableUserPersonalization?null:ke.createElement("div",{className:"DocSearch-StartScreen"},ke.createElement("p",{className:"DocSearch-Help"},i)):!1===n.hasCollections?null:ke.createElement("div",{className:"DocSearch-Dropdown-Container"},ke.createElement(nt,dt({},n,{title:a,collection:n.state.collections[0],renderIcon:function(){return ke.createElement("div",{className:"DocSearch-Hit-icon"},ke.createElement(st,null))},renderAction:function(e){var t=e.item,r=e.runFavoriteTransition,o=e.runDeleteTransition;return ke.createElement(ke.Fragment,null,ke.createElement("div",{className:"DocSearch-Hit-action"},ke.createElement("button",{className:"DocSearch-Hit-action-button",title:u,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.add(t),n.recentSearches.remove(t),n.refresh()}))}},ke.createElement(ft,null))),ke.createElement("div",{className:"DocSearch-Hit-action"},ke.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),o((function(){n.recentSearches.remove(t),n.refresh()}))}},ke.createElement(mt,null))))}})),ke.createElement(nt,dt({},n,{title:p,collection:n.state.collections[1],renderIcon:function(){return ke.createElement("div",{className:"DocSearch-Hit-icon"},ke.createElement(ft,null))},renderAction:function(e){var t=e.item,r=e.runDeleteTransition;return ke.createElement("div",{className:"DocSearch-Hit-action"},ke.createElement("button",{className:"DocSearch-Hit-action-button",title:h,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.remove(t),n.refresh()}))}},ke.createElement(mt,null)))}})))}var yt=["translations"];function gt(){return gt=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ot=ke.memo((function(e){var t=e.translations,r=void 0===t?{}:t,n=bt(e,yt);if("error"===n.state.status)return ke.createElement(_e,{translations:null==r?void 0:r.errorScreen});var o=n.state.collections.some((function(e){return e.items.length>0}));return n.state.query?!1===o?ke.createElement(Ue,gt({},n,{translations:null==r?void 0:r.noResultsScreen})):ke.createElement(ut,n):ke.createElement(vt,gt({},n,{hasCollections:o,translations:null==r?void 0:r.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status}));function St(){return ke.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},ke.createElement("g",{fill:"none",fillRule:"evenodd"},ke.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},ke.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),ke.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},ke.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}var jt=r(20830),Et=["translations"];function wt(){return wt=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function It(e){var t=e.translations,r=void 0===t?{}:t,n=Pt(e,Et),o=r.resetButtonTitle,a=void 0===o?"Clear the query":o,c=r.resetButtonAriaLabel,i=void 0===c?"Clear the query":c,l=r.cancelButtonText,u=void 0===l?"Cancel":l,s=r.cancelButtonAriaLabel,f=void 0===s?"Cancel":s,m=n.getFormProps({inputElement:n.inputRef.current}).onReset;return ke.useEffect((function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()}),[n.autoFocus,n.inputRef]),ke.useEffect((function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()}),[n.isFromSelection,n.inputRef]),ke.createElement(ke.Fragment,null,ke.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:m},ke.createElement("label",wt({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),ke.createElement(jt.W,null)),ke.createElement("div",{className:"DocSearch-LoadingIndicator"},ke.createElement(St,null)),ke.createElement("input",wt({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:64}))),ke.createElement("button",{type:"reset",title:a,className:"DocSearch-Reset","aria-label":i,hidden:!n.state.query},ke.createElement(mt,null))),ke.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:n.onClose},u))}var Dt=["_highlightResult","_snippetResult"];function Ct(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function kt(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(t){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function At(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=kt(t),a=o.getItem().slice(0,n);return{add:function(e){var t=e,r=(t._highlightResult,t._snippetResult,Ct(t,Dt)),c=a.findIndex((function(e){return e.objectID===r.objectID}));c>-1&&a.splice(c,1),a.unshift(r),a=a.slice(0,n),o.setItem(a)},remove:function(e){a=a.filter((function(t){return t.objectID!==e.objectID})),o.setItem(a)},getAll:function(){return a}}}function xt(e){const t=`algoliasearch-client-js-${e.key}`;let r;const n=()=>(void 0===r&&(r=e.localStorage||window.localStorage),r),o=()=>JSON.parse(n().getItem(t)||"{}");return{get:(e,t,r={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{const r=JSON.stringify(e),n=o()[r];return Promise.all([n||t(),void 0!==n])})).then((([e,t])=>Promise.all([e,t||r.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve().then((()=>{const a=o();return a[JSON.stringify(e)]=r,n().setItem(t,JSON.stringify(a)),r})),delete:e=>Promise.resolve().then((()=>{const r=o();delete r[JSON.stringify(e)],n().setItem(t,JSON.stringify(r))})),clear:()=>Promise.resolve().then((()=>{n().removeItem(t)}))}}function Nt(e){const t=[...e.caches],r=t.shift();return void 0===r?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,n,o={miss:()=>Promise.resolve()})=>r.get(e,n,o).catch((()=>Nt({caches:t}).get(e,n,o))),set:(e,n)=>r.set(e,n).catch((()=>Nt({caches:t}).set(e,n))),delete:e=>r.delete(e).catch((()=>Nt({caches:t}).delete(e))),clear:()=>r.clear().catch((()=>Nt({caches:t}).clear()))}}function Rt(e={serializable:!0}){let t={};return{get(r,n,o={miss:()=>Promise.resolve()}){const a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);const c=n(),i=o&&o.miss||(()=>Promise.resolve());return c.then((e=>i(e))).then((()=>c))},set:(r,n)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}function qt(e){let t=e.length-1;for(;t>0;t--){const r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function _t(e,t){return t?(Object.keys(t).forEach((r=>{e[r]=t[r](e)})),e):e}function Tt(e,...t){let r=0;return e.replace(/%s/g,(()=>encodeURIComponent(t[r++])))}const Lt="4.14.2",Mt={WithinQueryParameters:0,WithinHeaders:1};function Ht(e,t){const r=e||{},n=r.data||{};return Object.keys(r).forEach((e=>{-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}const Ft={Read:1,Write:2,Any:3},Ut=1,Bt=2,Vt=3,zt=12e4;function Kt(e,t=Ut){return{...e,status:t,lastUpdate:Date.now()}}function Jt(e){return"string"==typeof e?{protocol:"https",url:e,accept:Ft.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Ft.Any}}const $t="GET",Wt="POST";function Qt(e,t){return Promise.all(t.map((t=>e.get(t,(()=>Promise.resolve(Kt(t))))))).then((e=>{const r=e.filter((e=>function(e){return e.status===Ut||Date.now()-e.lastUpdate>zt}(e))),n=e.filter((e=>function(e){return e.status===Vt&&Date.now()-e.lastUpdate<=zt}(e))),o=[...r,...n];return{getTimeout:(e,t)=>(0===n.length&&0===e?1:n.length+3+e)*t,statelessHosts:o.length>0?o.map((e=>Jt(e))):t}}))}function Yt(e,t,r,n){const o=[],a=function(e,t){if(e.method===$t||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(r,n),c=function(e,t){const r={...e.headers,...t.headers},n={};return Object.keys(r).forEach((e=>{const t=r[e];n[e.toLowerCase()]=t})),n}(e,n),i=r.method,l=r.method!==$t?{}:{...r.data,...n.data},u={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...l,...n.queryParameters};let s=0;const f=(t,l)=>{const m=t.pop();if(void 0===m)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:er(o)};const p={data:a,headers:c,method:i,url:Xt(m,r.path,u),connectTimeout:l(s,e.timeouts.connect),responseTimeout:l(s,n.timeout)},d=e=>{const r={request:p,response:e,host:m,triesLeft:t.length};return o.push(r),r},h={onSuccess:e=>function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e),onRetry(r){const n=d(r);return r.isTimedOut&&s++,Promise.all([e.logger.info("Retryable failure",tr(n)),e.hostsCache.set(m,Kt(m,r.isTimedOut?Vt:Bt))]).then((()=>f(t,l)))},onFail(e){throw d(e),function({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch(o){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(n,t,r)}(e,er(o))}};return e.requester.send(p).then((e=>((e,t)=>(e=>{const t=e.status;return e.isTimedOut||(({isTimedOut:e,status:t})=>!e&&0==~~t)(e)||2!=~~(t/100)&&4!=~~(t/100)})(e)?t.onRetry(e):(({status:e})=>2==~~(e/100))(e)?t.onSuccess(e):t.onFail(e))(e,h)))};return Qt(e.hostsCache,t).then((e=>f([...e.statelessHosts].reverse(),e.getTimeout)))}function Gt(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}function Xt(e,t,r){const n=Zt(r);let o=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return n.length&&(o+=`?${n}`),o}function Zt(e){return Object.keys(e).map((t=>{return Tt("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function er(e){return e.map((e=>tr(e)))}function tr(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}const rr=e=>{const t=e.appId,r=function(e,t,r){const n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:()=>e===Mt.WithinHeaders?n:{},queryParameters:()=>e===Mt.WithinQueryParameters?n:{}}}(void 0!==e.authMode?e.authMode:Mt.WithinHeaders,t,e.apiKey),n=function(e){const{hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:a,timeouts:c,userAgent:i,hosts:l,queryParameters:u,headers:s}=e,f={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:a,timeouts:c,userAgent:i,headers:s,queryParameters:u,hosts:l.map((e=>Jt(e))),read(e,t){const r=Ht(t,f.timeouts.read),n=()=>Yt(f,f.hosts.filter((e=>0!=(e.accept&Ft.Read))),e,r);if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();const o={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(o,(()=>f.requestsCache.get(o,(()=>f.requestsCache.set(o,n()).then((e=>Promise.all([f.requestsCache.delete(o),e])),(e=>Promise.all([f.requestsCache.delete(o),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>f.responsesCache.set(o,e)})},write:(e,t)=>Yt(f,f.hosts.filter((e=>0!=(e.accept&Ft.Write))),e,Ht(t,f.timeouts.write))};return f}({hosts:[{url:`${t}-dsn.algolia.net`,accept:Ft.Read},{url:`${t}.algolia.net`,accept:Ft.Write}].concat(qt([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),o={transporter:n,appId:t,addAlgoliaAgent(e,t){n.userAgent.add({segment:e,version:t})},clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then((()=>{}))};return _t(o,e.methods)},nr=e=>(t,r)=>t.method===$t?e.transporter.read(t,r):e.transporter.write(t,r),or=e=>(t,r={})=>_t({transporter:e.transporter,appId:e.appId,indexName:t},r.methods),ar=e=>(t,r)=>{const n=t.map((e=>({...e,params:Zt(e.params||{})})));return e.transporter.read({method:Wt,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},cr=e=>(t,r)=>Promise.all(t.map((t=>{const{facetName:n,facetQuery:o,...a}=t.params;return or(e)(t.indexName,{methods:{searchForFacetValues:ur}}).searchForFacetValues(n,o,{...r,...a})}))),ir=e=>(t,r,n)=>e.transporter.read({method:Wt,path:Tt("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),lr=e=>(t,r)=>e.transporter.read({method:Wt,path:Tt("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),ur=e=>(t,r,n)=>e.transporter.read({method:Wt,path:Tt("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),sr=1,fr=2,mr=3;function pr(e,t,r){const n={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:e=>new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const n=(e,n)=>setTimeout((()=>{r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e),o=n(e.connectTimeout,"Connection timeout");let a;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===a&&(clearTimeout(o),a=n(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(o),clearTimeout(a),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(a),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))},logger:(o=mr,{debug:(e,t)=>(sr>=o&&console.debug(e,t),Promise.resolve()),info:(e,t)=>(fr>=o&&console.info(e,t),Promise.resolve()),error:(e,t)=>(console.error(e,t),Promise.resolve())}),responsesCache:Rt(),requestsCache:Rt({serializable:!1}),hostsCache:Nt({caches:[xt({key:`4.14.2-${e}`}),Rt()]}),userAgent:Gt(Lt).add({segment:"Browser",version:"lite"}),authMode:Mt.WithinQueryParameters};var o;return rr({...n,...r,methods:{search:ar,searchForFacetValues:cr,multipleQueries:ar,multipleSearchForFacetValues:cr,customRequest:nr,initIndex:e=>t=>or(e)(t,{methods:{search:lr,searchForFacetValues:ur,findAnswers:ir}})}})}pr.version=Lt;const dr=pr;var hr="3.2.0";function vr(){}function yr(e){return e}function gr(e,t){return e.reduce((function(e,r){var n=t(r);return e.hasOwnProperty(n)||(e[n]=[]),e[n].length<5&&e[n].push(r),e}),{})}var br=["footer","searchBox"];function Or(){return Or=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Dr(e){var t=e.appId,r=e.apiKey,n=e.indexName,o=e.placeholder,a=void 0===o?"Search docs":o,c=e.searchParameters,i=e.onClose,l=void 0===i?vr:i,u=e.transformItems,s=void 0===u?yr:u,f=e.hitComponent,m=void 0===f?Re:f,p=e.resultsFooterComponent,d=void 0===p?function(){return null}:p,h=e.navigator,v=e.initialScrollY,y=void 0===v?0:v,g=e.transformSearchClient,b=void 0===g?yr:g,O=e.disableUserPersonalization,S=void 0!==O&&O,j=e.initialQuery,E=void 0===j?"":j,w=e.translations,P=void 0===w?{}:w,I=e.getMissingResultsUrl,D=P.footer,C=P.searchBox,k=Ir(P,br),A=wr(ke.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),x=A[0],N=A[1],R=ke.useRef(null),q=ke.useRef(null),_=ke.useRef(null),T=ke.useRef(null),L=ke.useRef(null),M=ke.useRef(10),H=ke.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,F=ke.useRef(E||H).current,U=function(e,t,r){return ke.useMemo((function(){var n=dr(e,t);return n.addAlgoliaAgent("docsearch",hr),!1===/docsearch.js \(.*\)/.test(n.transporter.userAgent.value)&&n.addAlgoliaAgent("docsearch-react",hr),r(n)}),[e,t,r])}(t,r,b),B=ke.useRef(At({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,V=ke.useRef(At({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:0===B.getAll().length?7:4})).current,z=ke.useCallback((function(e){if(!S){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===B.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&V.add(t)}}),[B,V,S]),K=ke.useMemo((function(){return Ce({id:"docsearch",defaultActiveItemId:0,placeholder:a,openOnFocus:!0,initialState:{query:F,context:{searchSuggestions:[]}},navigator:h,onStateChange:function(e){N(e.state)},getSources:function(e){var t=e.query,r=e.state,o=e.setContext,a=e.setStatus;return t?U.search([{query:t,indexName:n,params:jr({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(M.current),"hierarchy.lvl2:".concat(M.current),"hierarchy.lvl3:".concat(M.current),"hierarchy.lvl4:".concat(M.current),"hierarchy.lvl5:".concat(M.current),"hierarchy.lvl6:".concat(M.current),"content:".concat(M.current)],snippetEllipsisText:"\u2026",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20},c)}]).catch((function(e){throw"RetryError"===e.name&&a("error"),e})).then((function(e){var t=e.results[0],n=t.hits,a=t.nbHits,c=gr(n,(function(e){return it(e)}));return r.context.searchSuggestions.length0&&(W(),L.current&&L.current.focus())}),[F,W]),ke.useEffect((function(){function e(){if(q.current){var e=.01*window.innerHeight;q.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),ke.createElement("div",Or({ref:R},$({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===x.status&&"DocSearch-Container--Stalled","error"===x.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&l()}}),ke.createElement("div",{className:"DocSearch-Modal",ref:q},ke.createElement("header",{className:"DocSearch-SearchBar",ref:_},ke.createElement(It,Or({},K,{state:x,autoFocus:0===F.length,inputRef:L,isFromSelection:Boolean(F)&&F===H,translations:C,onClose:l}))),ke.createElement("div",{className:"DocSearch-Dropdown",ref:T},ke.createElement(Ot,Or({},K,{indexName:n,state:x,hitComponent:m,resultsFooterComponent:d,disableUserPersonalization:S,recentSearches:V,favoriteSearches:B,inputRef:L,translations:k,getMissingResultsUrl:I,onItemClick:function(e){z(e),l()}}))),ke.createElement("footer",{className:"DocSearch-Footer"},ke.createElement(Ne,{translations:D}))))}}}]); \ No newline at end of file diff --git a/assets/js/6798.a0a87077.js b/assets/js/6798.a0a87077.js new file mode 100644 index 00000000000..90aa02ce66a --- /dev/null +++ b/assets/js/6798.a0a87077.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6798],{16798:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>r,contentTitle:()=>d,default:()=>m,frontMatter:()=>l,metadata:()=>a,toc:()=>c});var o=i(87462),t=(i(67294),i(3905));i(45475);const l={title:".flowconfig [include]",slug:"/config/include"},d=void 0,a={unversionedId:"config/include",id:"config/include",title:".flowconfig [include]",description:"The [include] section in a .flowconfig file tells Flow to include the",source:"@site/docs/config/include.md",sourceDirName:"config",slug:"/config/include",permalink:"/en/docs/config/include",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/include.md",tags:[],version:"current",frontMatter:{title:".flowconfig [include]",slug:"/config/include"},sidebar:"docsSidebar",previous:{title:".flowconfig [options]",permalink:"/en/docs/config/options"},next:{title:".flowconfig [ignore]",permalink:"/en/docs/config/ignore"}},r={},c=[],s={toc:c};function m(e){let{components:n,...i}=e;return(0,t.mdx)("wrapper",(0,o.Z)({},s,i,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"The ",(0,t.mdx)("inlineCode",{parentName:"p"},"[include]")," section in a ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file tells Flow to include the\nspecified files or directories. Including a directory recursively includes all\nthe files under that directory. Symlinks are followed as long as they lead to a\nfile or directory that is also included. Each line in the include section is a\npath to include. These paths can be relative to the root directory or absolute,\nand support both single and double star wildcards."),(0,t.mdx)("p",null,"The project root directory (where your ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," lives) is automatically\nincluded."),(0,t.mdx)("p",null,"For example, if ",(0,t.mdx)("inlineCode",{parentName:"p"},"/path/to/root/.flowconfig")," contains the following ",(0,t.mdx)("inlineCode",{parentName:"p"},"[include]"),"\nsection:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[include]\n../externalFile.js\n../externalDir/\n../otherProject/*.js\n../otherProject/**/coolStuff/\n")),(0,t.mdx)("p",null,"Then when Flow checks the project in ",(0,t.mdx)("inlineCode",{parentName:"p"},"/path/to/root"),", it will read and watch"),(0,t.mdx)("ol",null,(0,t.mdx)("li",{parentName:"ol"},(0,t.mdx)("inlineCode",{parentName:"li"},"/path/to/root/")," (automatically included)"),(0,t.mdx)("li",{parentName:"ol"},(0,t.mdx)("inlineCode",{parentName:"li"},"/path/to/externalFile.js")),(0,t.mdx)("li",{parentName:"ol"},(0,t.mdx)("inlineCode",{parentName:"li"},"/path/to/externalDir/")),(0,t.mdx)("li",{parentName:"ol"},"Any file in ",(0,t.mdx)("inlineCode",{parentName:"li"},"/path/to/otherProject/")," that ends in ",(0,t.mdx)("inlineCode",{parentName:"li"},".js")),(0,t.mdx)("li",{parentName:"ol"},"Any directory under ",(0,t.mdx)("inlineCode",{parentName:"li"},"/path/to/otherProject")," named ",(0,t.mdx)("inlineCode",{parentName:"li"},"coolStuff/"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6894.61d518cf.js b/assets/js/6894.61d518cf.js new file mode 100644 index 00000000000..fcb31d2d9cf --- /dev/null +++ b/assets/js/6894.61d518cf.js @@ -0,0 +1,2 @@ +/*! For license information please see 6894.61d518cf.js.LICENSE.txt */ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6894],{17967:(t,e)=>{"use strict";e.Nm=e.Rq=void 0;var n=/^([^\w]*)(javascript|data|vbscript)/im,i=/&#(\w+)(^\w|;)?/g,a=/&(newline|tab);/gi,r=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,o=/^.+(:|:)/gim,s=[".","/"];e.Rq="about:blank",e.Nm=function(t){if(!t)return e.Rq;var c,l=(c=t,c.replace(r,"").replace(i,(function(t,e){return String.fromCharCode(e)}))).replace(a,"").replace(r,"").trim();if(!l)return e.Rq;if(function(t){return s.indexOf(t[0])>-1}(l))return l;var u=l.match(o);if(!u)return l;var d=u[0];return n.test(d)?e.Rq:l}},91262:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(67294),a=n(72389);function r(t){let{children:e,fallback:n}=t;return(0,a.default)()?i.createElement(i.Fragment,null,null==e?void 0:e()):null!=n?n:null}},83971:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>$});var i=n(87462),a=n(67294),r=n(72389),o=n(86010),s=n(66412),c=n(35281),l=n(87594),u=n.n(l);const d=/title=(?["'])(?.*?)\1/,h=/\{(?<range>[\d,-]+)\}/,f={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function g(t,e){const n=t.map((t=>{const{start:n,end:i}=f[t];return"(?:"+n+"\\s*("+e.flatMap((t=>{var e,n;return[t.line,null==(e=t.block)?void 0:e.start,null==(n=t.block)?void 0:n.end].filter(Boolean)})).join("|")+")\\s*"+i+")"})).join("|");return new RegExp("^\\s*(?:"+n+")\\s*$")}function p(t,e){let n=t.replace(/\n$/,"");const{language:i,magicComments:a,metastring:r}=e;if(r&&h.test(r)){const t=r.match(h).groups.range;if(0===a.length)throw new Error("A highlight range has been given in code block's metastring (``` "+r+"), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.");const e=a[0].className,i=u()(t).filter((t=>t>0)).map((t=>[t-1,[e]]));return{lineClassNames:Object.fromEntries(i),code:n}}if(void 0===i)return{lineClassNames:{},code:n};const o=function(t,e){switch(t){case"js":case"javascript":case"ts":case"typescript":return g(["js","jsBlock"],e);case"jsx":case"tsx":return g(["js","jsBlock","jsx"],e);case"html":return g(["js","jsBlock","html"],e);case"python":case"py":case"bash":return g(["bash"],e);case"markdown":case"md":return g(["html","jsx","bash"],e);default:return g(Object.keys(f),e)}}(i,a),s=n.split("\n"),c=Object.fromEntries(a.map((t=>[t.className,{start:0,range:""}]))),l=Object.fromEntries(a.filter((t=>t.line)).map((t=>{let{className:e,line:n}=t;return[n,e]}))),d=Object.fromEntries(a.filter((t=>t.block)).map((t=>{let{className:e,block:n}=t;return[n.start,e]}))),p=Object.fromEntries(a.filter((t=>t.block)).map((t=>{let{className:e,block:n}=t;return[n.end,e]})));for(let u=0;u<s.length;){const t=s[u].match(o);if(!t){u+=1;continue}const e=t.slice(1).find((t=>void 0!==t));l[e]?c[l[e]].range+=u+",":d[e]?c[d[e]].start=u:p[e]&&(c[p[e]].range+=c[p[e]].start+"-"+(u-1)+","),s.splice(u,1)}n=s.join("\n");const b={};return Object.entries(c).forEach((t=>{let[e,{range:n}]=t;u()(n).forEach((t=>{null!=b[t]||(b[t]=[]),b[t].push(e)}))})),{lineClassNames:b,code:n}}const b="codeBlockContainer_Ckt0";function m(t){let{as:e,...n}=t;const r=function(t){const e={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(t.plain).forEach((t=>{let[i,a]=t;const r=e[i];r&&"string"==typeof a&&(n[r]=a)})),n}((0,s.p)());return a.createElement(e,(0,i.Z)({},n,{style:r,className:(0,o.default)(n.className,b,c.k.common.codeBlock)}))}const y={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function v(t){let{children:e,className:n}=t;return a.createElement(m,{as:"pre",tabIndex:0,className:(0,o.default)(y.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:y.codeBlockLines},e))}var w=n(86668),x=n(902);const R={attributes:!0,characterData:!0,childList:!0,subtree:!0};function _(t,e){const[n,i]=(0,a.useState)(),r=(0,a.useCallback)((()=>{var e;i(null==(e=t.current)?void 0:e.closest("[role=tabpanel][hidden]"))}),[t,i]);(0,a.useEffect)((()=>{r()}),[r]),function(t,e,n){void 0===n&&(n=R);const i=(0,x.zX)(e),r=(0,x.Ql)(n);(0,a.useEffect)((()=>{const e=new MutationObserver(i);return t&&e.observe(t,r),()=>e.disconnect()}),[t,i,r])}(n,(t=>{t.forEach((t=>{"attributes"===t.type&&"hidden"===t.attributeName&&(e(),r())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var k=n(23746);const E="codeLine_lJS_",C="codeLineNumber_Tfdd",S="codeLineContent_feaV";function T(t){let{line:e,classNames:n,showLineNumbers:r,getLineProps:s,getTokenProps:c}=t;1===e.length&&"\n"===e[0].content&&(e[0].content="");const l=s({line:e,className:(0,o.default)(n,r&&E)}),u=e.map(((t,e)=>a.createElement("span",(0,i.Z)({key:e},c({token:t,key:e})))));return a.createElement("span",l,r?a.createElement(a.Fragment,null,a.createElement("span",{className:C}),a.createElement("span",{className:S},u)):u,a.createElement("br",null))}var A=n(10195),D=n(95999);function I(t){return a.createElement("svg",(0,i.Z)({viewBox:"0 0 24 24"},t),a.createElement("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"}))}function L(t){return a.createElement("svg",(0,i.Z)({viewBox:"0 0 24 24"},t),a.createElement("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}const O={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function M(t){let{code:e,className:n}=t;const[i,r]=(0,a.useState)(!1),s=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{(0,A.Z)(e),r(!0),s.current=window.setTimeout((()=>{r(!1)}),1e3)}),[e]);return(0,a.useEffect)((()=>()=>window.clearTimeout(s.current)),[]),a.createElement("button",{type:"button","aria-label":i?(0,D.translate)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,D.translate)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,D.translate)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,o.default)("clean-btn",n,O.copyButton,i&&O.copyButtonCopied),onClick:c},a.createElement("span",{className:O.copyButtonIcons,"aria-hidden":"true"},a.createElement(I,{className:O.copyButtonIcon}),a.createElement(L,{className:O.copyButtonSuccessIcon})))}function N(t){return a.createElement("svg",(0,i.Z)({viewBox:"0 0 24 24"},t),a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"}))}const B="wordWrapButtonIcon_Bwma",P="wordWrapButtonEnabled_EoeP";function F(t){let{className:e,onClick:n,isEnabled:i}=t;const r=(0,D.translate)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,o.default)("clean-btn",e,i&&P),"aria-label":r,title:r},a.createElement(N,{className:B,"aria-hidden":"true"}))}function j(t){var e;let{children:n,className:r="",metastring:c,title:l,showLineNumbers:u,language:h}=t;const{prism:{defaultLanguage:f,magicComments:g}}=(0,w.L)(),b=null!=(e=null!=h?h:function(t){const e=t.split(" ").find((t=>t.startsWith("language-")));return null==e?void 0:e.replace(/language-/,"")}(r))?e:f,v=(0,s.p)(),x=function(){const[t,e]=(0,a.useState)(!1),[n,i]=(0,a.useState)(!1),r=(0,a.useRef)(null),o=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");t?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),e((t=>!t))}),[r,t]),s=(0,a.useCallback)((()=>{const{scrollWidth:t,clientWidth:e}=r.current,n=t>e||r.current.querySelector("code").hasAttribute("style");i(n)}),[r]);return _(r,s),(0,a.useEffect)((()=>{s()}),[t,s]),(0,a.useEffect)((()=>(window.addEventListener("resize",s,{passive:!0}),()=>{window.removeEventListener("resize",s)})),[s]),{codeBlockRef:r,isEnabled:t,isCodeScrollable:n,toggle:o}}(),R=function(t){var e,n;return null!=(e=null==t||null==(n=t.match(d))?void 0:n.groups.title)?e:""}(c)||l,{lineClassNames:E,code:C}=p(n,{metastring:c,language:b,magicComments:g}),S=null!=u?u:function(t){return Boolean(null==t?void 0:t.includes("showLineNumbers"))}(c);return a.createElement(m,{as:"div",className:(0,o.default)(r,b&&!r.includes("language-"+b)&&"language-"+b)},R&&a.createElement("div",{className:y.codeBlockTitle},R),a.createElement("div",{className:y.codeBlockContent},a.createElement(k.ZP,(0,i.Z)({},k.lG,{theme:v,code:C,language:null!=b?b:"text"}),(t=>{let{className:e,tokens:n,getLineProps:i,getTokenProps:r}=t;return a.createElement("pre",{tabIndex:0,ref:x.codeBlockRef,className:(0,o.default)(e,y.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,o.default)(y.codeBlockLines,S&&y.codeBlockLinesWithNumbering)},n.map(((t,e)=>a.createElement(T,{key:e,line:t,getLineProps:i,getTokenProps:r,classNames:E[e],showLineNumbers:S})))))})),a.createElement("div",{className:y.buttonGroup},(x.isEnabled||x.isCodeScrollable)&&a.createElement(F,{className:y.codeButton,onClick:()=>x.toggle(),isEnabled:x.isEnabled}),a.createElement(M,{className:y.codeButton,code:C}))))}function $(t){let{children:e,...n}=t;const o=(0,r.default)(),s=function(t){return a.Children.toArray(t).some((t=>(0,a.isValidElement)(t)))?t:Array.isArray(t)?t.join(""):t}(e),c="string"==typeof s?j:v;return a.createElement(c,(0,i.Z)({key:String(o)},n),s)}},46215:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>s});var i=n(67294),a=n(95999),r=n(35281),o=n(56262);function s(t){let{editUrl:e}=t;return i.createElement("a",{href:e,target:"_blank",rel:"noreferrer noopener",className:r.k.common.editThisPage},i.createElement(o.default,null),i.createElement(a.default,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},92503:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var i=n(87462),a=n(67294),r=n(86010),o=n(95999),s=n(86668),c=n(39960);const l="anchorWithStickyNavbar_LWe7",u="anchorWithHideOnScrollNavbar_WYt5";function d(t){let{as:e,id:n,...d}=t;const{navbar:{hideOnScroll:h}}=(0,s.L)();if("h1"===e||!n)return a.createElement(e,(0,i.Z)({},d,{id:void 0}));const f=(0,o.translate)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof d.children?d.children:n});return a.createElement(e,(0,i.Z)({},d,{className:(0,r.default)("anchor",h?u:l,d.className),id:n}),d.children,a.createElement(c.default,{className:"hash-link",to:"#"+n,"aria-label":f,title:f},"\u200b"))}},56262:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>s});var i=n(87462),a=n(67294),r=n(86010);const o="iconEdit_Z9Sw";function s(t){let{className:e,...n}=t;return a.createElement("svg",(0,i.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,r.default)(o,e),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}},71095:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>j});var i=n(87462),a=n(67294),r=n(35742);var o=n(18573);var s=n(39960);var c=n(86010),l=n(72389),u=n(86043);const d="details_lb9f",h="isBrowser_bmU9",f="collapsibleContent_i85q";function g(t){return!!t&&("SUMMARY"===t.tagName||g(t.parentElement))}function p(t,e){return!!t&&(t===e||p(t.parentElement,e))}function b(t){let{summary:e,children:n,...r}=t;const o=(0,l.default)(),s=(0,a.useRef)(null),{collapsed:b,setCollapsed:m}=(0,u.u)({initialState:!r.open}),[y,v]=(0,a.useState)(r.open),w=a.isValidElement(e)?e:a.createElement("summary",null,null!=e?e:"Details");return a.createElement("details",(0,i.Z)({},r,{ref:s,open:y,"data-collapsed":b,className:(0,c.default)(d,o&&h,r.className),onMouseDown:t=>{g(t.target)&&t.detail>1&&t.preventDefault()},onClick:t=>{t.stopPropagation();const e=t.target;g(e)&&p(e,s.current)&&(t.preventDefault(),b?(m(!1),v(!0)):m(!0))}}),w,a.createElement(u.z,{lazy:!1,collapsed:b,disableSSRStyle:!0,onCollapseTransitionEnd:t=>{m(t),v(!t)}},a.createElement("div",{className:f},n)))}const m="details_b_Ee";function y(t){let{...e}=t;return a.createElement(b,(0,i.Z)({},e,{className:(0,c.default)("alert alert--info",m,e.className)}))}var v=n(92503);function w(t){return a.createElement(v.Z,t)}const x="containsTaskList_mC6p";const R="img_ev3q";var _=n(35281),k=n(95999);const E="admonition_LlT9",C="admonitionHeading_tbUL",S="admonitionIcon_kALy",T="admonitionContent_S0QG";const A={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(k.default,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(k.default,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(k.default,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(k.default,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(k.default,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},D={secondary:"note",important:"info",success:"tip",warning:"danger"};function I(t){var e;const{mdxAdmonitionTitle:n,rest:i}=function(t){const e=a.Children.toArray(t),n=e.find((t=>{var e;return a.isValidElement(t)&&"mdxAdmonitionTitle"===(null==(e=t.props)?void 0:e.mdxType)})),i=a.createElement(a.Fragment,null,e.filter((t=>t!==n)));return{mdxAdmonitionTitle:n,rest:i}}(t.children);return{...t,title:null!=(e=t.title)?e:n,children:i}}var L=n(91262),O=n(86668),M=n(92949),N=n(16432);function B(){const{colorMode:t}=(0,M.I)(),e=(0,O.L)().mermaid,n=e.theme[t],{options:i}=e;return(0,a.useMemo)((()=>({startOnLoad:!1,...i,theme:n})),[n,i])}const P="container_lyt7";function F(t){let{value:e}=t;const n=function(t,e){const n=B(),i=null!=e?e:n;return(0,a.useMemo)((()=>{N.o.mermaidAPI.initialize(i);const e="mermaid-svg-"+Math.round(1e7*Math.random());return N.o.render(e,t)}),[t,i])}(e);return a.createElement("div",{className:"docusaurus-mermaid-container "+P,dangerouslySetInnerHTML:{__html:n}})}const j={head:function(t){const e=a.Children.map(t.children,(t=>a.isValidElement(t)?function(t){var e;if(null!=(e=t.props)&&e.mdxType&&t.props.originalType){const{mdxType:e,originalType:n,...i}=t.props;return a.createElement(t.props.originalType,i)}return t}(t):t));return a.createElement(r.Z,t,e)},code:function(t){const e=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(t.children).every((t=>{var n;return"string"==typeof t&&!t.includes("\n")||(0,a.isValidElement)(t)&&e.includes(null==(n=t.props)?void 0:n.mdxType)}))?a.createElement("code",t):a.createElement(o.Z,t)},a:function(t){return a.createElement(s.default,t)},pre:function(t){var e;return a.createElement(o.Z,(0,a.isValidElement)(t.children)&&"code"===(null==(e=t.children.props)?void 0:e.originalType)?t.children.props:{...t})},details:function(t){const e=a.Children.toArray(t.children),n=e.find((t=>{var e;return a.isValidElement(t)&&"summary"===(null==(e=t.props)?void 0:e.mdxType)})),r=a.createElement(a.Fragment,null,e.filter((t=>t!==n)));return a.createElement(y,(0,i.Z)({},t,{summary:n}),r)},ul:function(t){return a.createElement("ul",(0,i.Z)({},t,{className:(e=t.className,(0,c.default)(e,(null==e?void 0:e.includes("contains-task-list"))&&x))}));var e},img:function(t){return a.createElement("img",(0,i.Z)({loading:"lazy"},t,{className:(e=t.className,(0,c.default)(e,R))}));var e},h1:t=>a.createElement(w,(0,i.Z)({as:"h1"},t)),h2:t=>a.createElement(w,(0,i.Z)({as:"h2"},t)),h3:t=>a.createElement(w,(0,i.Z)({as:"h3"},t)),h4:t=>a.createElement(w,(0,i.Z)({as:"h4"},t)),h5:t=>a.createElement(w,(0,i.Z)({as:"h5"},t)),h6:t=>a.createElement(w,(0,i.Z)({as:"h6"},t)),admonition:function(t){const{children:e,type:n,title:i,icon:r}=I(t),o=function(t){var e;const n=null!=(e=D[t])?e:t;return A[n]||(console.warn('No admonition config found for admonition type "'+n+'". Using Info as fallback.'),A.info)}(n),s=null!=i?i:o.label,{iconComponent:l}=o,u=null!=r?r:a.createElement(l,null);return a.createElement("div",{className:(0,c.default)(_.k.common.admonition,_.k.common.admonitionType(t.type),"alert","alert--"+o.infimaClassName,E)},a.createElement("div",{className:C},a.createElement("span",{className:S},u),s),a.createElement("div",{className:T},e))},mermaid:function(t){return a.createElement(L.Z,null,(()=>a.createElement(F,t)))}}},45042:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>s});var i=n(67294),a=n(3905),r=n(75854),o=n.n(r);function s(t){let{children:e}=t;return i.createElement(a.MDXProvider,{components:o()},e)}},32244:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(67294),a=n(86010),r=n(39960);function o(t){const{permalink:e,title:n,subLabel:o,isNext:s}=t;return i.createElement(r.default,{className:(0,a.default)("pagination-nav__link",s?"pagination-nav__link--next":"pagination-nav__link--prev"),to:e},o&&i.createElement("div",{className:"pagination-nav__sublabel"},o),i.createElement("div",{className:"pagination-nav__label"},n))}},39407:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(87462),a=n(67294),r=n(86010),o=n(93743);const s="tableOfContents_bqdL";function c(t){let{className:e,...n}=t;return a.createElement("div",{className:(0,r.default)(s,"thin-scrollbar",e)},a.createElement(o.Z,(0,i.Z)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},93743:(t,e,n)=>{"use strict";n.d(e,{Z:()=>g});var i=n(87462),a=n(67294),r=n(86668);function o(t){const e=t.map((t=>({...t,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);e.forEach(((t,e)=>{const i=n.slice(2,t.level);t.parentIndex=Math.max(...i),n[t.level]=e}));const i=[];return e.forEach((t=>{const{parentIndex:n,...a}=t;n>=0?e[n].children.push(a):i.push(a)})),i}function s(t){let{toc:e,minHeadingLevel:n,maxHeadingLevel:i}=t;return e.flatMap((t=>{const e=s({toc:t.children,minHeadingLevel:n,maxHeadingLevel:i});return function(t){return t.level>=n&&t.level<=i}(t)?[{...t,children:e}]:e}))}function c(t){const e=t.getBoundingClientRect();return e.top===e.bottom?c(t.parentNode):e}function l(t,e){var n;let{anchorTopOffset:i}=e;const a=t.find((t=>c(t).top>=i));if(a){var r;return function(t){return t.top>0&&t.bottom<window.innerHeight/2}(c(a))?a:null!=(r=t[t.indexOf(a)-1])?r:null}return null!=(n=t[t.length-1])?n:null}function u(){const t=(0,a.useRef)(0),{navbar:{hideOnScroll:e}}=(0,r.L)();return(0,a.useEffect)((()=>{t.current=e?0:document.querySelector(".navbar").clientHeight}),[e]),t}function d(t){const e=(0,a.useRef)(void 0),n=u();(0,a.useEffect)((()=>{if(!t)return()=>{};const{linkClassName:i,linkActiveClassName:a,minHeadingLevel:r,maxHeadingLevel:o}=t;function s(){const t=function(t){return Array.from(document.getElementsByClassName(t))}(i),s=function(t){let{minHeadingLevel:e,maxHeadingLevel:n}=t;const i=[];for(let a=e;a<=n;a+=1)i.push("h"+a+".anchor");return Array.from(document.querySelectorAll(i.join()))}({minHeadingLevel:r,maxHeadingLevel:o}),c=l(s,{anchorTopOffset:n.current}),u=t.find((t=>c&&c.id===function(t){return decodeURIComponent(t.href.substring(t.href.indexOf("#")+1))}(t)));t.forEach((t=>{!function(t,n){n?(e.current&&e.current!==t&&e.current.classList.remove(a),t.classList.add(a),e.current=t):t.classList.remove(a)}(t,t===u)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[t,n])}function h(t){let{toc:e,className:n,linkClassName:i,isChild:r}=t;return e.length?a.createElement("ul",{className:r?void 0:n},e.map((t=>a.createElement("li",{key:t.id},a.createElement("a",{href:"#"+t.id,className:null!=i?i:void 0,dangerouslySetInnerHTML:{__html:t.value}}),a.createElement(h,{isChild:!0,toc:t.children,className:n,linkClassName:i}))))):null}const f=a.memo(h);function g(t){let{toc:e,className:n="table-of-contents table-of-contents__left-border",linkClassName:c="table-of-contents__link",linkActiveClassName:l,minHeadingLevel:u,maxHeadingLevel:h,...g}=t;const p=(0,r.L)(),b=null!=u?u:p.tableOfContents.minHeadingLevel,m=null!=h?h:p.tableOfContents.maxHeadingLevel,y=function(t){let{toc:e,minHeadingLevel:n,maxHeadingLevel:i}=t;return(0,a.useMemo)((()=>s({toc:o(e),minHeadingLevel:n,maxHeadingLevel:i})),[e,n,i])}({toc:e,minHeadingLevel:b,maxHeadingLevel:m});return d((0,a.useMemo)((()=>{if(c&&l)return{linkClassName:c,linkActiveClassName:l,minHeadingLevel:b,maxHeadingLevel:m}}),[c,l,b,m])),a.createElement(f,(0,i.Z)({toc:y,className:n,linkClassName:c},g))}},85162:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>o});var i=n(67294),a=n(86010);const r="tabItem_Ymn6";function o(t){let{children:e,hidden:n,className:o}=t;return i.createElement("div",{role:"tabpanel",className:(0,a.default)(r,o),hidden:n},e)}},74866:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>R});var i=n(87462),a=n(67294),r=n(86010),o=n(12466),s=n(76775),c=n(91980),l=n(67392),u=n(50012);function d(t){return function(t){var e,n;return null!=(e=null==(n=a.Children.map(t,(t=>{if(!t||(0,a.isValidElement)(t)&&function(t){const{props:e}=t;return!!e&&"object"==typeof e&&"value"in e}(t))return t;throw new Error("Docusaurus error: Bad <Tabs> child <"+("string"==typeof t.type?t.type:t.type.name)+'>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.')})))?void 0:n.filter(Boolean))?e:[]}(t).map((t=>{let{props:{value:e,label:n,attributes:i,default:a}}=t;return{value:e,label:n,attributes:i,default:a}}))}function h(t){const{values:e,children:n}=t;return(0,a.useMemo)((()=>{const t=null!=e?e:d(n);return function(t){const e=(0,l.l)(t,((t,e)=>t.value===e.value));if(e.length>0)throw new Error('Docusaurus error: Duplicate values "'+e.map((t=>t.value)).join(", ")+'" found in <Tabs>. Every value needs to be unique.')}(t),t}),[e,n])}function f(t){let{value:e,tabValues:n}=t;return n.some((t=>t.value===e))}function g(t){let{queryString:e=!1,groupId:n}=t;const i=(0,s.k6)(),r=function(t){let{queryString:e=!1,groupId:n}=t;if("string"==typeof e)return e;if(!1===e)return null;if(!0===e&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:e,groupId:n});return[(0,c._X)(r),(0,a.useCallback)((t=>{if(!r)return;const e=new URLSearchParams(i.location.search);e.set(r,t),i.replace({...i.location,search:e.toString()})}),[r,i])]}function p(t){const{defaultValue:e,queryString:n=!1,groupId:i}=t,r=h(t),[o,s]=(0,a.useState)((()=>function(t){var e;let{defaultValue:n,tabValues:i}=t;if(0===i.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!f({value:n,tabValues:i}))throw new Error('Docusaurus error: The <Tabs> has a defaultValue "'+n+'" but none of its children has the corresponding value. Available values are: '+i.map((t=>t.value)).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return n}const a=null!=(e=i.find((t=>t.default)))?e:i[0];if(!a)throw new Error("Unexpected error: 0 tabValues");return a.value}({defaultValue:e,tabValues:r}))),[c,l]=g({queryString:n,groupId:i}),[d,p]=function(t){let{groupId:e}=t;const n=function(t){return t?"docusaurus.tab."+t:null}(e),[i,r]=(0,u.Nk)(n);return[i,(0,a.useCallback)((t=>{n&&r.set(t)}),[n,r])]}({groupId:i}),b=(()=>{const t=null!=c?c:d;return f({value:t,tabValues:r})?t:null})();(0,a.useLayoutEffect)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,a.useCallback)((t=>{if(!f({value:t,tabValues:r}))throw new Error("Can't select invalid tab value="+t);s(t),l(t),p(t)}),[l,p,r]),tabValues:r}}var b=n(72389);const m="tabList__CuJ",y="tabItem_LNqP";function v(t){let{className:e,block:n,selectedValue:s,selectValue:c,tabValues:l}=t;const u=[],{blockElementScrollPositionUntilNextRender:d}=(0,o.o5)(),h=t=>{const e=t.currentTarget,n=u.indexOf(e),i=l[n].value;i!==s&&(d(e),c(i))},f=t=>{var e;let n=null;switch(t.key){case"Enter":h(t);break;case"ArrowRight":{var i;const e=u.indexOf(t.currentTarget)+1;n=null!=(i=u[e])?i:u[0];break}case"ArrowLeft":{var a;const e=u.indexOf(t.currentTarget)-1;n=null!=(a=u[e])?a:u[u.length-1];break}}null==(e=n)||e.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.default)("tabs",{"tabs--block":n},e)},l.map((t=>{let{value:e,label:n,attributes:o}=t;return a.createElement("li",(0,i.Z)({role:"tab",tabIndex:s===e?0:-1,"aria-selected":s===e,key:e,ref:t=>u.push(t),onKeyDown:f,onClick:h},o,{className:(0,r.default)("tabs__item",y,null==o?void 0:o.className,{"tabs__item--active":s===e})}),null!=n?n:e)})))}function w(t){let{lazy:e,children:n,selectedValue:i}=t;const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(e){const t=r.find((t=>t.props.value===i));return t?(0,a.cloneElement)(t,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},r.map(((t,e)=>(0,a.cloneElement)(t,{key:e,hidden:t.props.value!==i}))))}function x(t){const e=p(t);return a.createElement("div",{className:(0,r.default)("tabs-container",m)},a.createElement(v,(0,i.Z)({},t,e)),a.createElement(w,(0,i.Z)({},t,e)))}function R(t){const e=(0,b.default)();return a.createElement(x,(0,i.Z)({key:String(e)},t))}},86233:(t,e,n)=>{"use strict";n.d(e,{Z:()=>f});var i=n(67294),a=n(86010),r=n(95999),o=n(39960);const s="tag_zVej",c="tagRegular_sFm0",l="tagWithCount_h2kH";function u(t){let{permalink:e,label:n,count:r}=t;return i.createElement(o.default,{href:e,className:(0,a.default)(s,r?l:c)},n,r&&i.createElement("span",null,r))}const d="tags_jXut",h="tag_QGVx";function f(t){let{tags:e}=t;return i.createElement(i.Fragment,null,i.createElement("b",null,i.createElement(r.default,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),i.createElement("ul",{className:(0,a.default)(d,"padding--none","margin-left--sm")},e.map((t=>{let{label:e,permalink:n}=t;return i.createElement("li",{key:n,className:h},i.createElement(u,{label:e,permalink:n}))}))))}},29656:(t,e,n)=>{"use strict";n.r(e),n.d(e,{Collapsible:()=>c.z,ErrorBoundaryError:()=>T.aG,ErrorBoundaryTryAgainButton:()=>T.Cw,ErrorCauseBoundary:()=>T.QW,HtmlClassNameProvider:()=>h.FG,NavbarSecondaryMenuFiller:()=>g.Zo,PageMetadata:()=>h.d,ReactContextError:()=>d.i6,SkipToContentFallbackId:()=>S.u,SkipToContentLink:()=>S.l,ThemeClassNames:()=>l.k,composeProviders:()=>d.Qc,createStorageSlot:()=>a.WA,duplicates:()=>R.l,filterDocCardListItems:()=>o.MN,isMultiColumnFooterLinks:()=>w.a,isRegexpStringMatch:()=>x.F,listStorageKeys:()=>a._f,listTagsByLetters:()=>y,prefersReducedMotion:()=>u.n,processAdmonitionProps:()=>C,translateTagsPageTitle:()=>m,uniq:()=>R.j,useCollapsible:()=>c.u,useColorMode:()=>f.I,useContextualSearchFilters:()=>r._q,useCurrentSidebarCategory:()=>o.jA,useDocsPreferredVersion:()=>k.J,useEvent:()=>d.zX,useIsomorphicLayoutEffect:()=>d.LI,usePluralForm:()=>s.c,usePrevious:()=>d.D9,usePrismTheme:()=>_.p,useSearchLinkCreator:()=>v.M,useSearchQueryString:()=>v.K,useStorageSlot:()=>a.Nk,useThemeConfig:()=>i.L,useWindowSize:()=>p.i});var i=n(86668),a=n(50012),r=n(43320),o=n(53438),s=n(88824),c=n(86043),l=n(35281),u=n(91442),d=n(902),h=n(10833),f=n(92949),g=n(13102),p=n(87524),b=n(95999);const m=()=>(0,b.translate)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function y(t){const e={};return Object.values(t).forEach((t=>{const n=function(t){return t[0].toUpperCase()}(t.label);null!=e[n]||(e[n]=[]),e[n].push(t)})),Object.entries(e).sort(((t,e)=>{let[n]=t,[i]=e;return n.localeCompare(i)})).map((t=>{let[e,n]=t;return{letter:e,tags:n.sort(((t,e)=>t.label.localeCompare(e.label)))}}))}var v=n(66177),w=n(42489),x=n(98022),R=n(67392),_=n(66412),k=n(60373),E=n(67294);function C(t){var e;const{mdxAdmonitionTitle:n,rest:i}=function(t){const e=E.Children.toArray(t),n=e.find((t=>{var e;return E.isValidElement(t)&&"mdxAdmonitionTitle"===(null==(e=t.props)?void 0:e.mdxType)})),i=E.createElement(E.Fragment,null,e.filter((t=>t!==n)));return{mdxAdmonitionTitle:null==n?void 0:n.props.children,rest:i}}(t.children),a=null!=(e=t.title)?e:n;return{...t,...a&&{title:a},children:i}}var S=n(55225),T=n(69690)},88824:(t,e,n)=>{"use strict";n.d(e,{c:()=>l});var i=n(67294),a=n(52263);const r=["zero","one","two","few","many","other"];function o(t){return r.filter((e=>t.includes(e)))}const s={locale:"en",pluralForms:o(["one","other"]),select:t=>1===t?"one":"other"};function c(){const{i18n:{currentLocale:t}}=(0,a.default)();return(0,i.useMemo)((()=>{try{return function(t){const e=new Intl.PluralRules(t);return{locale:t,pluralForms:o(e.resolvedOptions().pluralCategories),select:t=>e.select(t)}}(t)}catch(e){return console.error('Failed to use Intl.PluralRules for locale "'+t+'".\nDocusaurus will fallback to the default (English) implementation.\nError: '+e.message+"\n"),s}}),[t])}function l(){const t=c();return{selectMessage:(e,n)=>function(t,e,n){const i=t.split("|");if(1===i.length)return i[0];i.length>n.pluralForms.length&&console.error("For locale="+n.locale+", a maximum of "+n.pluralForms.length+" plural forms are expected ("+n.pluralForms.join(",")+"), but the message contains "+i.length+": "+t);const a=n.select(e),r=n.pluralForms.indexOf(a);return i[Math.min(r,i.length-1)]}(n,e,t)}}},14732:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAIRlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAACCgAwAEAAAAAQAAACAAAAAAX7wP8AAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KTMInWQAACexJREFUWAmdV2tsXMUV/uY+d9d3/YqDHUKKSYLzDiIpUAEFB9EUWhApiYOaIgjQJog/ULVQVQVpS6nUltJUiNLmoZZfVMS0lGdBPOzmgSolEIVgEsvkYRLb8Sv2rnfv7t7X9JxZ72YNVJV6tbt37p2Z833nO2fOzAr8jyslU9rSzh6xcWNnyEOllNr2Pfcv8CL/4hBBfWm6MRnXzP6t1/3puBAi4ncduzt0vndOz+P2l13iy16W323fvsXcunWHz89/6P7BFYUwf08U+d8IZTjfjGmaEFINjSIJrxBFGrQTmqa/bZnxvzzU/twB7tyyfbW5Y+sHyoYa/Lmf/0ZApLra9dSa7mDX+w8sTOfT26AHt+iWICAfga/ECCXpwR+AqUhdNwUsW0dQpKdQfz0O54cPrn2uj2wZZIsnlRhXkfgyAiIlIVIC0e+77r3PD3I7zQREPutHEAgRQYeQDKjmUkhK5gS1InpJY6Io0mOOoXmulKYW2/LI2hd2kU0txQTETBJaFRnVpNhpDL7tvc2PGwl/VygDUciFPsWWx5pkQCNIMkP4lS/1MDT3ESbfi27oRzRXd/ydv3prwy9SZLOjs+MLeCpRyiRYqmdveSPc1nX3j61k9ER2Mh8Aao5RHlO6E7hOgujcHVIACL8kSPUwsq1FxaIfJmq19vaNy9ynb3txH+fEB68NqUTlwUpGbkzHKXj6vXuuj0yvu+B6EftUkrokM7VZRHI2QuQmIIs2rwrSpQjdyUJGbI5HlcazXWpLRFJaCUPTfLv9kbWd/ypjcX+ZgJpJxsRv3/3uMc2UbUExCmjytOfnjcqQWJk+Mh/PgduTJCXISMsk6lYNwrJMgqNEmEmAWMjQsIQeeqLv0ZtfXUTh5CEcMqn0JUYqFE+9d+dW29Ha/GLol8DZk/PecJPMQDNIfiOENCkEFq0wahfcEF4xUOFgzz536QEVjlitfukT/7ztfu5LdZcwZyjw67c3HCamK8l7WmLsW0lQviseWoQwnUThdAOK52hJjmvqtZ4MYNZSWJvOId6ShklLkUNTUUKtFFLB1kgF+dFjN79xGVlUqmvTFUv+5t07VgkdK70irSJa06Xp095XiZD5pA7pIyaKE6TfrAxA3yArkD9loXiyHvmMhF8gfcuuKXDFXydlpdDFyl++eesqdomxtWWzR9VQGchr7ZjBgSFtpz0u39UjUSInI/rRYgQwbxTxxQNILBmAcckYhYFyjaizY/lsRAXrPImyEhT7gCooqJJeSwPRMEGFkxt8RSJYwelDAGXupQ76LRtg0ciISjSzMUc9BpEyYDZRm8LDWcX5RV6i6EqEngFDj0EXlrJFYijbRHQFv7iwLSmNpaOzlcAyilrCgChUx05Nq/qhvtBjH6kYZhsgnGEldTjeBBFR3GmF0LZA1YjJ6DiX7gfsPtixZtTobcqQwohkCz8wttE5bT8et2w7YYCCT9dMEUoMyTDJnG/NYLDfR21/LZCLqWj5oyZcN4fkgiycJBdCE/lwBDfN+wnmNbYh441j/9B2MusJu8Yi3TwlCWNrHR0lBqatuXZMpwzW6Esmqr4WtWNxGwUcx7dv2Ii7Nt+JwbMD8IZj8IZsDI8OY936dbhpzTp44hTiiTh0q4BFcy/H8otXYf6sZQjCAqyYIe24BsPW84zK2MYn3aUkpLicUXVPBZx9ZhWU79TS4EUZNJlXY1HD1XDmJpH3snjh+Reh6zrW374BV37tq0qFo2PXIB18inp7CWosWrJeEWPZIbj+AKzipVI6ZFNGp5kAY59PwkgeUvGvJGEJnPkIYZCkZ3BlyybYRgK+TwWnIYf4irNIrByGOScH3wtgGTFcdWEHRgpvY0nTjUjGG7gKYzB9nBKzQPlFS8wjixKHmABfGtrb1cYgwmiPm6FeQSGqpGLpMR8OYb6zAa31y8kQMDR6Gm/1PoU5i220tGk4OLwLI5MDSrS5tQtxzQW/w2Vzr1MrJpefwtHxd0iNVjLmGy5t624+2qvQCZu23lTEx64Hr/9bHzHbE6NEJN/ViUMNoh9W5oqWdbSkTDqM+Nhz9BXYtgM9jJFLcZiWg0PDb5EyVJYpcjct2Yxa8p5D1zPwb4yH+2BqydCqIcGl3PPY2tf6GJOxSyHo7lb3MJTb1LpSmHSCoGzOBcexouEuNDsXk3GJ/rPHsffMw/CjcUwW+1S88/4IjqQfxUjuNBrqGqEbGnTNwGcjfdg39AxqY4voHONJrjpRgN8rx6YxK+utzGjb3g1diTqzvZANaEMKTQ0WNrY9Bceu4wqGIPAxTHJ/NtaLdHFU8a1PzMa8WW1orp0HwzCZPvJuAbs/fhxT2iewtEY/lpSmmwm6Hlnzyg1lLCbyuYMGELji3rzwei0rZk4WDodrLnxSr4s10SooUEXTYcdjWBBfgvkti+nsVYoUHURBJ1SVcL7nYcqdgqSNcvGsdrx/bn+YMJvM/BSthyncx6A9dMrmO1+UUqWr++fdkg8KP7vxjXPfvHP1h4inNzVZV2lfv2hTpOuamJyawEv7/0yMqZDoFnlOZ2BeRJQwfkCguTRODfdiz6edaDDnIhFz0GC3RGfdAd3TB4Fi8taf3vz3A4zBp64yboVJ+UX5tLL5Zdz+8OUHXmxtXC7oAO6/uv95/dW+e7WG+BVojC/CnGSbWmbMwfUnMOb1IYtjCI0DuLz2meiaizbQ1ifNM+ljctexNet3rsdLZdtlLL5/gQBlvE4bTiiLckW2mP2IC81Y5iyefP0O1MVbfdp0RChczUeaRMhTwlEcjThss17aZiKiBJRFccb8ziWUfFoLb260BOsva2x2Pirbriagsr/6BbVVXUgX0judpMNLsLDv0Ds76ZQwYiU004hFhkV7qmM2i6R5iagx5ouE0SIoZzTCN2xHmFEghj881fVHmus6yRpMFcZ3TmMo29V4MwjQBIPPaxMTE3c7Nc5VvL9nc9nOTd/asmVp0z1LJ8ay389lgpe9vN/vB34hiHxKRI9zoFAs+Keyk/4/zo1k72sZX7/0e9f96IF8wf1rFJICNTVXnjx5cjPbZoxqApUQUAf1C3nw4EFz4cKFRxOJxIJsNusODQ0tWLZs2dnqSau3rDavXn5BM9Uf2hKBmK6n39w/NPLBjpl/wbq6uppaW1uPO45Tm8vlTtB3CdnyyljVNllqpcbg4OBXMplMQM+S2g/xICZFN/67Zuye/tM5Y/L0w27ZofMYHkvTlae9vb0P5PN52d/fH504cYKqmapyFeUrcnR2dio1TNOcTSU1ogn3E/tdTIyUUX8u+b/iNJZIpVIV9fgdPcuNovQPmp9pDjvBc589fPhwjsKwIwzDZurqL2PxuMpFg5VBYtnc09OzkDvYQGXA/9ko29i7d+/8I0eOMAG2WyH/H45a9ExgQQ3bAAAAAElFTkSuQmCC"},20625:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const s=r(n(67294)),c=o(n(83971)),l=o(n(52263)),u=o(n(72389)),d=n(86341),h=o(n(25510)),f=o(n(14732)),g=o(n(74071)),p=n(28084),b=[{names:["fbsource","fbs"],project:"fbsource",canonicalName:"fbsource"},{names:["www"],project:"facebook-www",canonicalName:"www"}];e.default=t=>{const{siteConfig:e}=(0,l.default)(),n=(0,p.usePluginData)("internaldocs-fb").opts.maxCodeBlockHeight,i=(0,u.default)(),a=(0,s.useRef)(null),r=(0,s.useRef)(null),o=(0,s.useRef)(null),m=(0,s.useRef)(!1),y=(0,s.useCallback)((t=>{m.current||(window.requestAnimationFrame((()=>{r.current&&o.current&&(t.target.scrollTop>0?r.current.style.boxShadow="0 1em 1em -1em black inset":r.current.style.boxShadow="none",t.target.scrollTop===t.target.scrollHeight-t.target.offsetHeight?o.current.style.boxShadow="none":o.current.style.boxShadow="0 -1em 1em -1em black inset"),m.current=!1})),m.current=!0)}),[]);(0,s.useEffect)((()=>{a.current&&(a.current.addEventListener("scroll",y),window.requestAnimationFrame((()=>{y({target:a.current})})))}));const v=function(t){try{return(0,c.default)(t)}catch(e){return s.default.createElement("p",{style:{color:"red",fontWeight:"bold"}},"Could not render codeblock")}}(Object.assign({children:""},t));if(!i)return v;if("string"!=typeof t.file)return v;let w,x,R,_;if((0,d.isInternal)()){if(!e.customFields)return v;const{fbRepoName:n,ossRepoPath:i}=e.customFields;if("string"!=typeof n)return v;w="string"==typeof i&&"string"!=typeof t.repo?function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.map((t=>t.startsWith("/")?t.slice(1):t)).map((t=>t.endsWith("/")?t.slice(0,t.length-1):t)).join("/")}(i,t.file):t.file;const a=b.find((e=>{var i;return e.names.includes((null!==(i=t.repo)&&void 0!==i?i:n).toLowerCase())}));if(void 0===a)return v;x=function(t,e){const n=new URL("https://www.internalfb.com");return n.pathname="/code/"+t.canonicalName+"/"+e,n.toString()}(a,w),R=function(t,e){const n=new URL("https://www.internalfb.com/intern/nuclide/open/arc");return n.searchParams.append("project",t.project),n.searchParams.append("paths[0]",e),n.toString()}(a,w),_=function(t,e){if("fbsource"!==t.canonicalName||!e.startsWith("fbandroid"))return null;const n=new URL("fb-ide-opener://open");return n.searchParams.append("ide","intellij"),n.searchParams.append("filepath","/fbsource/"+e),n.toString()}(a,w)}else{if("string"!=typeof e.organizationName||"string"!=typeof e.projectName)return v;w=t.file,x=function(t,e,n){const i=new URL("https://github.com");return i.pathname="/"+t+"/"+e+"/blob/master/"+n,i.toString()}(e.organizationName,e.projectName,t.file),R=null,_=null}const k=w.split("/"),E=k[k.length-1];return s.default.createElement("div",null,s.default.createElement("a",{href:x,title:"Browse entire file",target:"_blank",rel:"noreferrer",onClick:()=>d.feedback.reportFeatureUsage({featureName:"browse-file",id:w}),className:g.default.CodeBlockFilenameTab},E),null!==R?s.default.createElement("a",{target:"_blank",rel:"noreferrer",href:R,onClick:()=>d.feedback.reportFeatureUsage({featureName:"open-in-vscode",id:w})},s.default.createElement("img",{style:{padding:"0 6px",height:"16px"},title:"Open in VSCode @ FB",src:h.default})):null,null!==_?s.default.createElement("a",{target:"_blank",rel:"noreferrer",href:_,onClick:()=>d.feedback.reportFeatureUsage({featureName:"open-in-android-studio",id:w})},s.default.createElement("img",{style:{padding:"0 6px",height:"16px"},title:"Open in Android Studio",src:f.default})):null,s.default.createElement("div",{style:{position:"relative"}},s.default.createElement("div",{ref:a,style:{maxHeight:n,overflowY:"auto"}},v),void 0===n?null:[s.default.createElement("div",{key:"shadowtop",ref:r,style:{bottom:0,left:0,right:0,top:0,pointerEvents:"none",transition:"all .2s ease-out",boxShadow:"none",position:"absolute"}}),s.default.createElement("div",{key:"shadowbottom",ref:o,style:{bottom:0,left:0,right:0,top:0,pointerEvents:"none",transition:"all .2s ease-out",boxShadow:"none",position:"absolute"}})]))}},25510:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default="data:image/png;base64,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"},60555:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.Button=void 0;const a=i(n(67294)),r=i(n(86010)),o=i(n(43150));e.Button=t=>{let{children:e,className:n,onClick:i,style:s,type:c,disabled:l}=t;return a.default.createElement("button",{className:(0,r.default)(o.default.button,n),onClick:i,style:s,type:c,disabled:l},e)}},92705:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.ClosableDiv=e.EditorTrigger=void 0;const s=r(n(67294)),c=o(n(83253)),l=o(n(39960)),u=n(29656),d=n(28084),h=o(n(44996)),f=n(60555),g=n(6434),p=n(32471),b=n(86341),m=n(19445),y=n(86341),v=n(78641),w=o(n(47181)),x=o(n(10275));function R(t){let{onDecision:e,lastEditTimestamp:n}=t;return s.default.createElement(s.default.Fragment,null,s.default.createElement("h3",null,"Continue"),s.default.createElement("p",null,"Do you want to continue with your last edit?"),n&&s.default.createElement("p",null,"created on: ",new Date(Number(n)).toLocaleString()),s.default.createElement("div",{style:{display:"flex",flexDirection:"row",gap:12,justifyContent:"end"}},s.default.createElement(f.Button,{onClick:()=>{e(!1)}},"No"),s.default.createElement(f.Button,{onClick:()=>{e(!0)}},"Yes")))}function _(){return(0,d.usePluginData)("internaldocs-fb")}const k=t=>/\.mdx?$/i.test(t),E=t=>t.replace(/[\w\d.-_]/gi,"").length>0,C=t=>t.startsWith("../")||t.includes("/../");function S(t){let{onSubmit:e,repoRootToWebsiteRoot:n}=t;const[i,a]=(0,s.useState)(""),r=!i||!k(i)||E(i)||C(i);return s.default.createElement("form",{onSubmit:t=>{t.preventDefault(),r||e(i)}},s.default.createElement("label",{style:{display:"block",marginBottom:12}},s.default.createElement("span",null,"New page file path"),s.default.createElement("div",{style:{display:"flex"}},s.default.createElement("code",null,n,"/"),s.default.createElement("input",{type:"text",value:i,placeholder:"docs/path/to/file.md",onChange:t=>{let{target:e}=t;return a(e.value)},style:{flexGrow:1},autoFocus:!0}))),r&&s.default.createElement("ul",{className:x.default.filepath_validation_list},!k(i)&&s.default.createElement("li",null,"You can only create markdown and mdx files, must end with `.mdx` or `.md`"),E(i)&&s.default.createElement("li",null,"File path contains disallowed symbols. You can use alphanumricals, dot, slash, hyphen and underscore."),C(i)&&s.default.createElement("li",null,"You cannot create files outside of website directory")),s.default.createElement(f.Button,{type:"submit",disabled:r,style:{display:"block",marginLeft:"auto"}},"Continue"))}function T(t){let{isOpen:e,onClose:n,kind:i,editUrl:a}=t;var r,o,d;const[f,p]=(0,s.useState)({type:i===m.DiffKind.modify?"restore-session-prompt":"input-new-page-path"}),y=_(),{repoRootToWebsiteRoot:w}=y,x=(0,s.useMemo)((()=>"pageRawContent-"+(0,v.generateHash)(""+(0,b.getEphemeralDiffNumber)()+a)),[a]),[k,E]=(0,s.useState)(null),C=(0,s.useMemo)((()=>(0,v.getFilePathRelativeToDocsFolder)(a,y.docsDir)),[a,y.docsDir]),T=(0,h.default)("_src/"+C),D=(0,s.useMemo)((()=>(0,u.createStorageSlot)(x)),[x]),I=(0,s.useCallback)((()=>{var t;p({type:"submitting"});const e=null==k?void 0:k.pageRawContent,n=(0,b.hasEphemeralDiffNumber)()?Number(null===(t=(0,b.getEphemeralDiffNumber)())||void 0===t?void 0:t.slice(1)):null;if(null==k)throw new Error("Attempting to submit a diff with null content, report to staticdocs oncall");const r=i===m.DiffKind.add?k.newFilePath:a?(0,v.getFilePathRelativeToRepoRoot)(a):null;if(!r){const t="The provided url "+a+" is invalid";throw p({type:"failed",reason:t}),new Error(t)}if(null==e)throw p({type:"failed",reason:"The page's raw content cannot be null"}),new Error("The page's raw content cannot be null");b.inpageeditor.submitDiff({file_path:r,new_content:e,project_name:null,diff_number:n,diff_kind:i}).then((t=>{p({type:"success",url:t.xfb_static_docs_editor_create_diff.url,diffId:t.xfb_static_docs_editor_create_diff.number_with_prefix})})).catch((t=>{const e="Error occurred while trying to create diff from editor. Stack trace "+t;throw p({type:"failed",reason:e}),new Error(e)}))}),[p,a,k,i]);(0,s.useEffect)((()=>{if(i===m.DiffKind.add)return;const t=D.get();try{E(t?JSON.parse(t):null)}catch(e){E(null)}}),[D,i]);const L=(0,s.useCallback)((t=>{if(t){const t=D.get();if(null==t)throw new Error("Cannot restore page raw content with no saved state in local storage");const e=JSON.parse(t);p({type:"editing"}),E({pageRawContent:e.pageRawContent,timestamp:e.timestamp,newFilePath:""})}else p({type:"loading-raw-content"}),fetch(T).then((t=>{if(!t.ok){const t="Failed to fetch page raw content from server.";throw p({type:"failed",reason:t}),new Error(t)}return t.text()})).then((t=>{E({pageRawContent:t,timestamp:Date.now().toString(),newFilePath:""}),p({type:"editing"})})).catch((t=>{p({type:"failed",reason:"Error occurred while trying fetch page raw content. Stack trace "+t})}))}),[p,T,D]);(0,s.useEffect)((()=>{if(i===m.DiffKind.add)return;null===D.get()?L(!1):p({type:"restore-session-prompt"})}),[]);const O=(0,s.useCallback)((t=>{D.set(JSON.stringify(t)),p({type:"editing"}),E({pageRawContent:t.pageRawContent,timestamp:t.timestamp,newFilePath:t.newFilePath})}),[p,D]),{colorMode:M}=(0,u.useColorMode)(),N=(0,s.useMemo)((()=>{let t="min(80vw, 1916px)";return"restore-session-prompt"!==f.type&&"loading-raw-content"!==f.type||(t="min(20, 360px)"),"input-new-page-path"===f.type&&(t="min(40, 520px)"),{content:{backgroundColor:"dark"===M?"black":"white",width:t,maxHeight:"calc(100% - 100px)",margin:"80px auto 10px",inset:"auto",overscrollBehavior:"contain"},overlay:{background:"rgba(0, 0, 0, .5)","overflow-y":"auto",display:"flex",alignItems:"flex-start",justifyContent:"center",zIndex:10}}}),[M,f.type]),B=null!==(r=null==k?void 0:k.timestamp)&&void 0!==r?r:null;return s.default.createElement(c.default,{ariaHideApp:!1,isOpen:e,shouldCloseOnOverlayClick:!1,shouldCloseOnEsc:!1,style:N},"restore-session-prompt"===f.type&&s.default.createElement(R,{onDecision:L,lastEditTimestamp:B}),"loading-raw-content"===f.type&&s.default.createElement("div",null,"Loading raw page content..."),"input-new-page-path"===f.type&&s.default.createElement(S,{repoRootToWebsiteRoot:w,onSubmit:t=>{E({timestamp:Date.now().toString(),pageRawContent:"",newFilePath:w+"/"+t}),p({type:"editing"})}}),"editing"===f.type&&s.default.createElement(g.SDocEditor,{pageRawContent:null!==(o=null==k?void 0:k.pageRawContent)&&void 0!==o?o:"",diffKind:i,newFilePath:null!==(d=null==k?void 0:k.newFilePath)&&void 0!==d?d:"",setPageRawContentVersion:O,onEditorSubmit:I,handleCloseEditor:n,isSubmitting:!1}),"submitting"===f.type&&s.default.createElement(A,{onClose:n},"Submitting changes..."),"success"===f.type&&s.default.createElement(A,{onClose:n},"Diff has been submitted"," ",s.default.createElement(l.default,{to:f.url},f.diffId)),"failed"===f.type&&s.default.createElement(A,{onClose:n},"Error: ",f.reason))}function A(t){let{children:e,onClose:n}=t;return s.default.createElement("div",null,s.default.createElement(f.Button,{onClick:n,style:{position:"absolute",padding:"2px 2px 1px",top:0,right:0}},s.default.createElement("img",{src:w.default,style:{height:"17px"}})),e)}e.EditorTrigger=function(t){let{position:e}=t;var n;const i=null===(n=(0,p.useDocMeta)())||void 0===n?void 0:n.metadata,[a,r]=(0,s.useState)({isOpen:!1,kind:m.DiffKind.modify}),o=_(),c=(0,s.useMemo)((()=>(null==i?void 0:i.editUrl)?(0,v.getFilePathRelativeToDocsFolder)(i.editUrl,o.docsDir):null),[i,o.docsDir]);if(null==i)return null;const{editUrl:l}=i;if("before-post"===e&&"top"!==o.opts.enableEditor)return null;if("after-post"===e&&![!0,"bottom"].includes(o.opts.enableEditor))return null;if(!(l||i.lastUpdatedAt||i.lastUpdatedBy))return null;o.repoRootToWebsiteRoot;const u="undefined"!=typeof window&&"1"===new URLSearchParams(window.location.search).get("enableEditor");return l&&c&&(u||(0,y.isInternal)()&&true)?s.default.createElement("div",{className:"margin-vert--"+("after-post"===e?"xl":"xs"),id:"editor-trigger"},s.default.createElement(f.Button,{onClick:()=>r({isOpen:!0,kind:m.DiffKind.modify}),style:{marginRight:8}},"Edit this page"),s.default.createElement(f.Button,{onClick:()=>r({isOpen:!0,kind:m.DiffKind.add})},"Add new page"),a.isOpen?s.default.createElement(T,{isOpen:!0,kind:a.kind,onClose:()=>{r({isOpen:!1,kind:m.DiffKind.modify})},editUrl:l}):null):null},e.ClosableDiv=A},47181:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKdJREFUeNrslQEKgDAIRefooO0GO0o3WFfqRNZAotbcNLAIGkjUPr7U6TwiOkvzznh9HzCUHwAgPyK9TkI/uz7n/bTKopAYyZLAeTroo7bIYweSSMOvSgTlX3GRVDUXfwygB2H3NADOUTM6LaAGaabuDoCDJElNzRvt9RSZFtn0mJo2WpScFgainkXzZqGxH0gjH9fFiJaM6wxZOD00muu/Mp8BrAIMAE/aslxTtku5AAAAAElFTkSuQmCC"},6434:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.SDocEditor=void 0;const s=r(n(67294)),c=o(n(39960)),l=o(n(95999)),u=o(n(44996)),d=o(n(74866)),h=o(n(85162)),f=n(2497),g=n(3905),p=o(n(75854)),b=n(19445),m=n(60555),y=n(77437),v=o(n(1925)),w=t=>({...p.default,MDXProvider:g.MDXProvider,Link:c.default,Translate:l.default,Tabs:d.default,TabItem:h.default,__unknownComponent:e=>function(n){const i=e in t,a=s.default.useMemo((()=>Object.keys(n).reduce(((t,e)=>("children"!==e&&(t[e]=n[e]),t)),{})),[n]);return s.default.createElement("div",{className:v.default.unknown_component},i&&s.default.createElement("p",null,"Live preview does not support imported components"),s.default.createElement("p",{style:{marginBottom:4}},i?"Imported":"Unknown"," component"," ",s.default.createElement("b",null,s.default.createElement("code",null,e))," ","with props ",s.default.createElement("code",null,(t=>{try{return JSON.stringify(t)}catch(e){return console.warn("Could not stringify props for UnknownComponent",t),"Could not stringify"}})(a))),!i&&s.default.createElement("details",null,s.default.createElement("summary",null,"Why did it not render?"),"Editor cannot render it due to the component being custom or nondefined"),n.children?s.default.createElement("div",{className:v.default.unknown_component_children},n.children):null)}});function x(t){let{onCancel:e,isSubmitDisabled:n,diffKind:i,filename:a}=t;return s.default.createElement("div",{className:v.default.editor_header},s.default.createElement("span",null,s.default.createElement("h2",{style:{margin:0}},"Staticdocs editor"),i===b.DiffKind.add?"Add content for a new file "+a:"Edit existing "+a),s.default.createElement("div",{className:v.default.cta_wrapper},s.default.createElement(m.Button,{onClick:e},"Cancel"),s.default.createElement(m.Button,{type:"submit",disabled:n},"Publish Diff")))}function R(){return s.default.createElement("div",{className:v.default.show_info},s.default.createElement("h3",null,"Note"),s.default.createElement("p",null,"The Live preview fails to render. ",s.default.createElement("br",null),"This might be because we currently do not have support for the operation being performed on the page e.g code-snippets. Please ignore this"," ",s.default.createElement("b",null,"if you are sure")," it is the case and continue with the editor."," ",s.default.createElement("b",null,"Happy Editing!")))}e.SDocEditor=function(t){let{onEditorSubmit:e,handleCloseEditor:n,pageRawContent:i,setPageRawContentVersion:a,isSubmitting:r,diffKind:o,newFilePath:c}=t;const[l,d]=(0,s.useState)(!1),[h,p]=(0,s.useState)({}),b=s.default.useMemo((()=>w(h)),[h]),m=(0,s.useCallback)((t=>{t.preventDefault(),e()}),[e]),_=(0,s.useCallback)((t=>{const e=(0,y.mdxToReactString)(t);if(null===e.code)return d(!0),"";d(!1);return Object.keys(h).join(",")!==Object.keys(e.importedComponents).join(",")&&p(e.importedComponents),"\n "+e.code+"\n render(\n <MDXProvider components={components}>\n <MDXContent components={components} />\n </MDXProvider>\n )\n "}),[d,h]),k=(0,s.useCallback)((t=>{a({pageRawContent:t,timestamp:Date.now().toString(),diffKind:o,newFilePath:c})}),[a,o,c]);if(null===i)return null;const E=c.split("/").pop();if(void 0===E)throw new Error('Could not extract filename from "'+c+'"');return s.default.createElement(f.LiveProvider,{code:i,noInline:!0,scope:{components:b,MDXProvider:g.MDXProvider,mdx:g.mdx,useBaseUrl:u.default},transformCode:_},s.default.createElement("form",{onSubmit:m,className:v.default.editor},s.default.createElement(x,{isSubmitDisabled:r,onCancel:n,diffKind:o,filename:E}),s.default.createElement("div",{className:v.default.editor_input},s.default.createElement(f.LiveEditor,{className:v.default.live_editor,onChange:k})),s.default.createElement("div",{className:v.default.editor_preview},l?s.default.createElement(R,null):s.default.createElement(f.LivePreview,{className:v.default.live_preview}),s.default.createElement(f.LiveError,{className:v.default.live_error}))))}},78641:(t,e)=>{"use strict";function n(t){const e=new URL(t).pathname;let n;if(e.startsWith("/intern/diffusion/"))n=6;else{if(!e.startsWith("/code/"))return console.warn("Unexpected editUrl format for in-page editor: "+t),null;n=3}const i=e.split("/");if(i.length<=n||""==i[i.length-1])return null;return e.split("/").slice(n).join("/")}Object.defineProperty(e,"__esModule",{value:!0}),e.generateHash=e.getFilePathRelativeToDocsFolder=e.getFilePathRelativeToRepoRoot=void 0,e.getFilePathRelativeToRepoRoot=n,e.getFilePathRelativeToDocsFolder=function(t,e){const i=n(t);if(!i)return null;const a=e.split("/");for(let n=0;n<a.length;n++){const t=a.slice(n).join("/");if(i.startsWith(t))return i.slice(t.length+1)}return null},e.generateHash=function(t){let e,n,i=0;if(0===t.length)return i.toString();for(e=0;e<t.length;e++)n=t.charCodeAt(e),i=(i<<5)-i+n,i|=0;return i.toString()}},84946:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.internLinks=void 0;const o=r(n(62854)),s=o,c=o.default||s.default;function l(t,e){return{type:"text",value:t,position:{start:e,end:e}}}e.internLinks=function(){return function(t){c(t,"paragraph",(t=>{t.children=t.children.reduce(((t,e)=>{if("text"!==e.type)return t.push(e),t;const n=/([DTP]\d+)(.)?/;if(!("value"in e))throw new Error('remark text node is missing "value" field');let i=e.value;if("string"!=typeof i)throw new Error('remark text node is missing "value" field');let a=i.match(n);for(a||t.push(e);a;){const c=a.index;if(null==c)break;"number"==typeof c&&c>0&&t.push(l(i.slice(0,a.index),e.position));a[2]&&a[2].match(/\w/)?t.push(l(a[1],e.position)):t.push((r=a[1],o="https://internalfb.com/"+a[1],s=e.pos,{type:"link",url:o,children:[l(r,s)],position:{start:s,end:s}})),i=i.slice(c+a[1].length),a=i.match(n),i&&!a&&t.push(l(i,e.position))}var r,o,s;return t}),[])}))}}},77437:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.mdxToReactString=void 0;const a=i(n(86504)),r=n(70905),o=n(12813),s=n(24284),c=n(84946),l=new Map,u=()=>t=>(0,r.remove)(t,(t=>{var e,n,i;return"mdxjsEsm"===t.type&&(null===(i=null===(n=null===(e=t.data)||void 0===e?void 0:e.estree)||void 0===n?void 0:n.body)||void 0===i||i.forEach((t=>{"ImportDeclaration"===t.type&&t.specifiers.forEach((e=>{l.set(e.local.name,t.source.value)}))})),!0)})),d=new Set(["/*@jsxRuntime classic @jsx React.createElement @jsxFrag React.Fragment*/",'import React from "react";',"export default MDXContent;"]);e.mdxToReactString=function(t){const e=/^---(.|\n)*?---/;try{return{code:(0,o.compileSync)(t.replace(e,"").split("\n").map((t=>{const e=t.trim().match(/^<!--(.*)-->$/);return e?"{/*"+e[1]+"*/}":t})).join("\n"),{remarkPlugins:[[s.remarkMermaid,{version:"v2"}],[c.internLinks,{}],a.default,u],format:"mdx",jsxRuntime:"classic",outputFormat:"program"}).value.toString().replace("const _components =","let _components =").split("\n").filter((t=>!d.has(t))).map((t=>{const e=t.match(/if \(!(.+)\) _missingMdxReference/);if(null===e)return t;const n=e[1];return" if (!"+n+") "+n+' = _components.__unknownComponent("'+n+'");'})).join("\n"),importedComponents:Object.fromEntries([...l])}}catch(n){return console.warn("Transpiler error",n),{code:null,importedComponents:{}}}finally{l.clear()}}},24284:(t,e)=>{"use strict";function n(t){return"code"===t.type&&"mermaid"===t.lang}function i(t){t.children=t.children.map((t=>{if(n(t)){return{type:"jsx",value:["<Mermaid chart={`",t.value,"`} />"].join("\n"),position:{...t.position,indent:[1,1,1]}}}return t}))}function a(t){t.children=t.children.map((t=>{if(n(t)){const e={start:{line:t.position.start.line,column:t.position.start.column},end:{line:t.position.end.line,column:t.position.end.column}},n=t.position.start.offset,i=t.position.end.offset,a=[n,i];return{type:"mdxJsxFlowElement",name:"Mermaid",data:{_xdmExplicitJsx:!0},children:[],meta:null,attributes:[{type:"mdxJsxAttribute",name:"chart",value:{type:"mdxJsxAttributeValueExpression",value:["`\n",t.value,"`"].join("\n"),data:{estree:{body:[{type:"ExpressionStatement",start:n,range:a,loc:e,expression:{loc:e,range:a,start:n,end:i,type:"Literal",value:t.value,raw:["`\n",t.value,"`"].join("\n")}}],comments:[],end:i,loc:e,range:a,sourceType:"module",start:n,type:"Program"}}},position:t.position}]}}return t}))}Object.defineProperty(e,"__esModule",{value:!0}),e.remarkMermaid=void 0,e.remarkMermaid=function(t){return"v1"===(null==t?void 0:t.version)?i:a}},32471:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e};Object.defineProperty(e,"__esModule",{value:!0}),e.useDocMeta=e.DocMetaProvider=void 0;const o=r(n(67294)),s=o.default.createContext(null);e.DocMetaProvider=s.Provider;e.useDocMeta=()=>(0,o.useContext)(s)},86121:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const a=i(n(67294)),r=i(n(46215)),o=n(29656),s=i(n(56262)),c=n(86341),l=t=>{let{url:e}=t;return a.default.createElement("a",{href:e,target:"_blank",rel:"noreferrer noopener",className:o.ThemeClassNames.common.editThisPage},a.default.createElement(s.default,null),"View in CodeHub")};e.default=function(t){return(0,c.isInternal)()?a.default.createElement(l,{url:t.editUrl}):a.default.createElement(r.default,{...t})}},5307:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAPFJREFUOBGtkD8OAVEQxpcQR+ACSolTKGyh0KtQECdwBFdwA+fQoBGlzhVI/CnwG7vz8t6zj5X4km9n5vtmZmc3iv6ImF0reIWPAMWTHul1IEJoKKQ7S9beghP1ENZSDohHaC+TSwz8syc4JdhPWSaOob1AZgxsQ/I67ELVW+QNq1YdKYEKfrxjT2ERylW+j5TAN7Sepf6IeIGqa4wKaYMIWVggnmEvy0TT+ehGoVvt2EaPA97rJ8q3CXZJ+Om5tbs7FPLD7Ld/y+UyB7JkAz8Nytlr+DaMZmAvOKA2jZMz0QVL+qs5Z5y2PdUcVhw1UDwBK0d9heZjHrYAAAAASUVORK5CYII="},93930:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0}),e.FeedbackButton=void 0;const s=r(n(67294)),c=n(86341),l=o(n(84373)),u=o(n(5307)),d=o(n(91296));e.FeedbackButton=()=>{const[t,e]=(0,s.useState)(!1),[n,i]=(0,s.useState)(""),[a,r]=(0,s.useState)(!1),[o,h]=(0,s.useState)(0),[f,g]=(0,s.useState)(0);(0,s.useEffect)((()=>(document.addEventListener("mouseup",p),function(){document.removeEventListener("mouseup",p)}))),(0,s.useEffect)((()=>{let t=!0;return c.checkGKs.gk("sdocs_inline_feedback").then((e=>{t&&r(e)})),()=>{t=!1}}),[]);const p=(0,d.default)((0,s.useCallback)((t=>{var r;if(""!==(null===(r=document.getSelection())||void 0===r?void 0:r.toString())&&a){const a=document.getSelection();if(a&&a.toString()!=n){t&&t.preventDefault();const n=a.getRangeAt(0).getBoundingClientRect(),r=void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop;h(n.top-40+r),g(n.left+n.width/2-40),i(a.toString()),e(!0)}}else e(!1),g(0),h(0)}),[a,n]),200);return s.default.createElement(s.default.Fragment,null,t&&s.default.createElement("button",{onClick:()=>{var t;null!==n&&""!==n&&(null===(t=window.getSelection())||void 0===t||t.removeAllRanges(),c.feedback.reportContentSelected({textContent:n}))},className:l.default.FeedbackButton,style:{position:"absolute",top:o,left:f}},s.default.createElement("img",{src:u.default,className:l.default.FeedbackIcon}),"Feedback"))}},75854:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const a=i(n(71095)),r=n(86341),o=i(n(92969)),s={...a.default,FbInternalOnly:r.FbInternalOnly,FBInternalOnly:r.FbInternalOnly,OssOnly:r.OssOnly,OSSOnly:r.OssOnly,Mermaid:o.default};e.default=s},51788:function(t,e,n){"use strict";var i=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const a=i(n(67294)),r=i(n(45042)),o=n(92705),s=n(93930);e.default=function(t){return a.default.createElement(a.default.Fragment,null,a.default.createElement(o.EditorTrigger,{position:"before-post"}),a.default.createElement(r.default,{...t}),a.default.createElement(s.FeedbackButton,null),a.default.createElement(o.EditorTrigger,{position:"after-post"}))}},92969:function(t,e,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),a=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),r=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&i(e,t,n);return a(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const s=r(n(67294)),c=o(n(33231));c.default.initialize({startOnLoad:!0});e.default=t=>{let{chart:e}=t;return(0,s.useEffect)((()=>c.default.contentLoaded()),[]),s.default.createElement("div",{className:"mermaid"},e)}},27484:function(t){t.exports=function(){"use strict";var t=1e3,e=6e4,n=36e5,i="millisecond",a="second",r="minute",o="hour",s="day",c="week",l="month",u="quarter",d="year",h="date",f="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var i=String(t);return!i||i.length>=e?t:""+Array(e+1-i.length).join(n)+t},y={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),i=Math.floor(n/60),a=n%60;return(e<=0?"+":"-")+m(i,2,"0")+":"+m(a,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var i=12*(n.year()-e.year())+(n.month()-e.month()),a=e.clone().add(i,l),r=n-a<0,o=e.clone().add(i+(r?-1:1),l);return+(-(i+(n-a)/(r?a-o:o-a))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:l,y:d,w:c,d:s,D:h,h:o,m:r,s:a,ms:i,Q:u}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},v="en",w={};w[v]=b;var x=function(t){return t instanceof E},R=function t(e,n,i){var a;if(!e)return v;if("string"==typeof e){var r=e.toLowerCase();w[r]&&(a=r),n&&(w[r]=n,a=r);var o=e.split("-");if(!a&&o.length>1)return t(o[0])}else{var s=e.name;w[s]=e,a=s}return!i&&a&&(v=a),a||!i&&v},_=function(t,e){if(x(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new E(n)},k=y;k.l=R,k.i=x,k.w=function(t,e){return _(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var E=function(){function b(t){this.$L=R(t.locale,null,!0),this.parse(t)}var m=b.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(k.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var i=e.match(g);if(i){var a=i[2]-1||0,r=(i[7]||"0").substring(0,3);return n?new Date(Date.UTC(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,r)):new Date(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,r)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return k},m.isValid=function(){return!(this.$d.toString()===f)},m.isSame=function(t,e){var n=_(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return _(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<_(t)},m.$g=function(t,e,n){return k.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,i=!!k.u(e)||e,u=k.p(t),f=function(t,e){var a=k.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return i?a:a.endOf(s)},g=function(t,e){return k.w(n.toDate()[t].apply(n.toDate("s"),(i?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},p=this.$W,b=this.$M,m=this.$D,y="set"+(this.$u?"UTC":"");switch(u){case d:return i?f(1,0):f(31,11);case l:return i?f(1,b):f(0,b+1);case c:var v=this.$locale().weekStart||0,w=(p<v?p+7:p)-v;return f(i?m-w:m+(6-w),b);case s:case h:return g(y+"Hours",0);case o:return g(y+"Minutes",1);case r:return g(y+"Seconds",2);case a:return g(y+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,c=k.p(t),u="set"+(this.$u?"UTC":""),f=(n={},n[s]=u+"Date",n[h]=u+"Date",n[l]=u+"Month",n[d]=u+"FullYear",n[o]=u+"Hours",n[r]=u+"Minutes",n[a]=u+"Seconds",n[i]=u+"Milliseconds",n)[c],g=c===s?this.$D+(e-this.$W):e;if(c===l||c===d){var p=this.clone().set(h,1);p.$d[f](g),p.init(),this.$d=p.set(h,Math.min(this.$D,p.daysInMonth())).$d}else f&&this.$d[f](g);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[k.p(t)]()},m.add=function(i,u){var h,f=this;i=Number(i);var g=k.p(u),p=function(t){var e=_(f);return k.w(e.date(e.date()+Math.round(t*i)),f)};if(g===l)return this.set(l,this.$M+i);if(g===d)return this.set(d,this.$y+i);if(g===s)return p(1);if(g===c)return p(7);var b=(h={},h[r]=e,h[o]=n,h[a]=t,h)[g]||1,m=this.$d.getTime()+i*b;return k.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||f;var i=t||"YYYY-MM-DDTHH:mm:ssZ",a=k.z(this),r=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=n.meridiem,d=function(t,n,a,r){return t&&(t[n]||t(e,i))||a[n].slice(0,r)},h=function(t){return k.s(r%12||12,t,"0")},g=u||function(t,e,n){var i=t<12?"AM":"PM";return n?i.toLowerCase():i};return i.replace(p,(function(t,i){return i||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return k.s(e.$y,4,"0");case"M":return s+1;case"MM":return k.s(s+1,2,"0");case"MMM":return d(n.monthsShort,s,l,3);case"MMMM":return d(l,s);case"D":return e.$D;case"DD":return k.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return d(n.weekdaysMin,e.$W,c,2);case"ddd":return d(n.weekdaysShort,e.$W,c,3);case"dddd":return c[e.$W];case"H":return String(r);case"HH":return k.s(r,2,"0");case"h":return h(1);case"hh":return h(2);case"a":return g(r,o,!0);case"A":return g(r,o,!1);case"m":return String(o);case"mm":return k.s(o,2,"0");case"s":return String(e.$s);case"ss":return k.s(e.$s,2,"0");case"SSS":return k.s(e.$ms,3,"0");case"Z":return a}return null}(t)||a.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(i,h,f){var g,p=this,b=k.p(h),m=_(i),y=(m.utcOffset()-this.utcOffset())*e,v=this-m,w=function(){return k.m(p,m)};switch(b){case d:g=w()/12;break;case l:g=w();break;case u:g=w()/3;break;case c:g=(v-y)/6048e5;break;case s:g=(v-y)/864e5;break;case o:g=v/n;break;case r:g=v/e;break;case a:g=v/t;break;default:g=v}return f?g:k.a(g)},m.daysInMonth=function(){return this.endOf(l).$D},m.$locale=function(){return w[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),i=R(t,e,!0);return i&&(n.$L=i),n},m.clone=function(){return k.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},b}(),C=E.prototype;return _.prototype=C,[["$ms",i],["$s",a],["$m",r],["$H",o],["$W",s],["$M",l],["$y",d],["$D",h]].forEach((function(t){C[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),_.extend=function(t,e){return t.$i||(t(e,E,_),t.$i=!0),_},_.locale=R,_.isDayjs=x,_.unix=function(t){return _(1e3*t)},_.en=w[v],_.Ls=w,_.p={},_}()},28734:function(t){t.exports=function(){"use strict";return function(t,e){var n=e.prototype,i=n.format;n.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return i.bind(this)(t);var a=this.$utils(),r=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return n.ordinal(e.$D);case"gggg":return e.weekYear();case"GGGG":return e.isoWeekYear();case"wo":return n.ordinal(e.week(),"W");case"w":case"ww":return a.s(e.week(),"w"===t?1:2,"0");case"W":case"WW":return a.s(e.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return a.s(String(0===e.$H?24:e.$H),"k"===t?1:2,"0");case"X":return Math.floor(e.$d.getTime()/1e3);case"x":return e.$d.getTime();case"z":return"["+e.offsetName()+"]";case"zzz":return"["+e.offsetName("long")+"]";default:return t}}));return i.bind(this)(r)}}}()},10285:function(t){t.exports=function(){"use strict";var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,r={},o=function(t){return(t=+t)+(t>68?1900:2e3)},s=function(t){return function(e){this[t]=+e}},c=[/[+-]\d\d:?(\d\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t)return 0;if("Z"===t)return 0;var e=t.match(/([+-]|\d\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:"+"===e[0]?-n:n}(t)}],l=function(t){var e=r[t];return e&&(e.indexOf?e:e.s.concat(e.f))},u=function(t,e){var n,i=r.meridiem;if(i){for(var a=1;a<=24;a+=1)if(t.indexOf(i(a,0,e))>-1){n=a>12;break}}else n=t===(e?"pm":"PM");return n},d={A:[a,function(t){this.afternoon=u(t,!1)}],a:[a,function(t){this.afternoon=u(t,!0)}],S:[/\d/,function(t){this.milliseconds=100*+t}],SS:[n,function(t){this.milliseconds=10*+t}],SSS:[/\d{3}/,function(t){this.milliseconds=+t}],s:[i,s("seconds")],ss:[i,s("seconds")],m:[i,s("minutes")],mm:[i,s("minutes")],H:[i,s("hours")],h:[i,s("hours")],HH:[i,s("hours")],hh:[i,s("hours")],D:[i,s("day")],DD:[n,s("day")],Do:[a,function(t){var e=r.ordinal,n=t.match(/\d+/);if(this.day=n[0],e)for(var i=1;i<=31;i+=1)e(i).replace(/\[|\]/g,"")===t&&(this.day=i)}],M:[i,s("month")],MM:[n,s("month")],MMM:[a,function(t){var e=l("months"),n=(l("monthsShort")||e.map((function(t){return t.slice(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[a,function(t){var e=l("months").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\d+/,s("year")],YY:[n,function(t){this.year=o(t)}],YYYY:[/\d{4}/,s("year")],Z:c,ZZ:c};function h(n){var i,a;i=n,a=r&&r.formats;for(var o=(n=i.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,i){var r=i&&i.toUpperCase();return n||a[i]||t[i]||a[r].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),s=o.length,c=0;c<s;c+=1){var l=o[c],u=d[l],h=u&&u[0],f=u&&u[1];o[c]=f?{regex:h,parser:f}:l.replace(/^\[|\]$/g,"")}return function(t){for(var e={},n=0,i=0;n<s;n+=1){var a=o[n];if("string"==typeof a)i+=a.length;else{var r=a.regex,c=a.parser,l=t.slice(i),u=r.exec(l)[0];c.call(e,u),t=t.replace(u,"")}}return function(t){var e=t.afternoon;if(void 0!==e){var n=t.hours;e?n<12&&(t.hours+=12):12===n&&(t.hours=0),delete t.afternoon}}(e),e}}return function(t,e,n){n.p.customParseFormat=!0,t&&t.parseTwoDigitYear&&(o=t.parseTwoDigitYear);var i=e.prototype,a=i.parse;i.parse=function(t){var e=t.date,i=t.utc,o=t.args;this.$u=i;var s=o[1];if("string"==typeof s){var c=!0===o[2],l=!0===o[3],u=c||l,d=o[2];l&&(d=o[2]),r=this.$locale(),!c&&d&&(r=n.Ls[d]),this.$d=function(t,e,n){try{if(["x","X"].indexOf(e)>-1)return new Date(("X"===e?1e3:1)*t);var i=h(e)(t),a=i.year,r=i.month,o=i.day,s=i.hours,c=i.minutes,l=i.seconds,u=i.milliseconds,d=i.zone,f=new Date,g=o||(a||r?1:f.getDate()),p=a||f.getFullYear(),b=0;a&&!r||(b=r>0?r-1:f.getMonth());var m=s||0,y=c||0,v=l||0,w=u||0;return d?new Date(Date.UTC(p,b,g,m,y,v,w+60*d.offset*1e3)):n?new Date(Date.UTC(p,b,g,m,y,v,w)):new Date(p,b,g,m,y,v,w)}catch(t){return new Date("")}}(e,s,i),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&e!=this.format(s)&&(this.$d=new Date("")),r={}}else if(s instanceof Array)for(var f=s.length,g=1;g<=f;g+=1){o[1]=s[g-1];var p=n.apply(this,o);if(p.isValid()){this.$d=p.$d,this.$L=p.$L,this.init();break}g===f&&(this.$d=new Date(""))}else a.call(this,t)}}}()},59542:function(t){t.exports=function(){"use strict";var t="day";return function(e,n,i){var a=function(e){return e.add(4-e.isoWeekday(),t)},r=n.prototype;r.isoWeekYear=function(){return a(this).year()},r.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,r,o,s=a(this),c=(n=this.isoWeekYear(),o=4-(r=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),r.isoWeekday()>4&&(o+=7),r.add(o,t));return s.diff(c,"week")+1},r.isoWeekday=function(t){return this.$utils().u(t)?this.day()||7:this.day(this.day()%7?t:t-7)};var o=r.startOf;r.startOf=function(t,e){var n=this.$utils(),i=!!n.u(e)||e;return"isoweek"===n.p(t)?i?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):o.bind(this)(t,e)}}}()},27856:function(t){t.exports=function(){"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,n){return e=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},e(t,n)}function n(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function i(t,a,r){return i=n()?Reflect.construct:function(t,n,i){var a=[null];a.push.apply(a,n);var r=new(Function.bind.apply(t,a));return i&&e(r,i.prototype),r},i.apply(null,arguments)}function a(t){return r(t)||o(t)||s(t)||l()}function r(t){if(Array.isArray(t))return c(t)}function o(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function s(t,e){if(t){if("string"==typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(t,e):void 0}}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}function l(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u=Object.hasOwnProperty,d=Object.setPrototypeOf,h=Object.isFrozen,f=Object.getPrototypeOf,g=Object.getOwnPropertyDescriptor,p=Object.freeze,b=Object.seal,m=Object.create,y="undefined"!=typeof Reflect&&Reflect,v=y.apply,w=y.construct;v||(v=function(t,e,n){return t.apply(e,n)}),p||(p=function(t){return t}),b||(b=function(t){return t}),w||(w=function(t,e){return i(t,a(e))});var x=L(Array.prototype.forEach),R=L(Array.prototype.pop),_=L(Array.prototype.push),k=L(String.prototype.toLowerCase),E=L(String.prototype.toString),C=L(String.prototype.match),S=L(String.prototype.replace),T=L(String.prototype.indexOf),A=L(String.prototype.trim),D=L(RegExp.prototype.test),I=O(TypeError);function L(t){return function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];return v(t,e,i)}}function O(t){return function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return w(t,n)}}function M(t,e,n){n=n||k,d&&d(t,null);for(var i=e.length;i--;){var a=e[i];if("string"==typeof a){var r=n(a);r!==a&&(h(e)||(e[i]=r),a=r)}t[a]=!0}return t}function N(t){var e,n=m(null);for(e in t)!0===v(u,t,[e])&&(n[e]=t[e]);return n}function B(t,e){for(;null!==t;){var n=g(t,e);if(n){if(n.get)return L(n.get);if("function"==typeof n.value)return L(n.value)}t=f(t)}function i(t){return console.warn("fallback value for",t),null}return i}var P=p(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),F=p(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),j=p(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),$=p(["animate","color-profile","cursor","discard","fedropshadow","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),z=p(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),H=p(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),U=p(["#text"]),V=p(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),q=p(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),W=p(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Y=p(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),G=b(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Z=b(/<%[\w\W]*|[\w\W]*%>/gm),K=b(/\${[\w\W]*}/gm),X=b(/^data-[\-\w.\u00B7-\uFFFF]/),J=b(/^aria-[\-\w]+$/),Q=b(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),tt=b(/^(?:\w+script|data):/i),et=b(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),nt=b(/^html$/i),it=function(){return"undefined"==typeof window?null:window},at=function(e,n){if("object"!==t(e)||"function"!=typeof e.createPolicy)return null;var i=null,a="data-tt-policy-suffix";n.currentScript&&n.currentScript.hasAttribute(a)&&(i=n.currentScript.getAttribute(a));var r="dompurify"+(i?"#"+i:"");try{return e.createPolicy(r,{createHTML:function(t){return t},createScriptURL:function(t){return t}})}catch(o){return console.warn("TrustedTypes policy "+r+" could not be created."),null}};function rt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:it(),n=function(t){return rt(t)};if(n.version="2.4.3",n.removed=[],!e||!e.document||9!==e.document.nodeType)return n.isSupported=!1,n;var i=e.document,r=e.document,o=e.DocumentFragment,s=e.HTMLTemplateElement,c=e.Node,l=e.Element,u=e.NodeFilter,d=e.NamedNodeMap,h=void 0===d?e.NamedNodeMap||e.MozNamedAttrMap:d,f=e.HTMLFormElement,g=e.DOMParser,b=e.trustedTypes,m=l.prototype,y=B(m,"cloneNode"),v=B(m,"nextSibling"),w=B(m,"childNodes"),L=B(m,"parentNode");if("function"==typeof s){var O=r.createElement("template");O.content&&O.content.ownerDocument&&(r=O.content.ownerDocument)}var ot=at(b,i),st=ot?ot.createHTML(""):"",ct=r,lt=ct.implementation,ut=ct.createNodeIterator,dt=ct.createDocumentFragment,ht=ct.getElementsByTagName,ft=i.importNode,gt={};try{gt=N(r).documentMode?r.documentMode:{}}catch(Le){}var pt={};n.isSupported="function"==typeof L&<&&void 0!==lt.createHTMLDocument&&9!==gt;var bt,mt,yt=G,vt=Z,wt=K,xt=X,Rt=J,_t=tt,kt=et,Et=Q,Ct=null,St=M({},[].concat(a(P),a(F),a(j),a(z),a(U))),Tt=null,At=M({},[].concat(a(V),a(q),a(W),a(Y))),Dt=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),It=null,Lt=null,Ot=!0,Mt=!0,Nt=!1,Bt=!1,Pt=!1,Ft=!1,jt=!1,$t=!1,zt=!1,Ht=!1,Ut=!0,Vt=!1,qt="user-content-",Wt=!0,Yt=!1,Gt={},Zt=null,Kt=M({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Xt=null,Jt=M({},["audio","video","img","source","image","track"]),Qt=null,te=M({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ee="http://www.w3.org/1998/Math/MathML",ne="http://www.w3.org/2000/svg",ie="http://www.w3.org/1999/xhtml",ae=ie,re=!1,oe=null,se=M({},[ee,ne,ie],E),ce=["application/xhtml+xml","text/html"],le="text/html",ue=null,de=r.createElement("form"),he=function(t){return t instanceof RegExp||t instanceof Function},fe=function(e){ue&&ue===e||(e&&"object"===t(e)||(e={}),e=N(e),bt=bt=-1===ce.indexOf(e.PARSER_MEDIA_TYPE)?le:e.PARSER_MEDIA_TYPE,mt="application/xhtml+xml"===bt?E:k,Ct="ALLOWED_TAGS"in e?M({},e.ALLOWED_TAGS,mt):St,Tt="ALLOWED_ATTR"in e?M({},e.ALLOWED_ATTR,mt):At,oe="ALLOWED_NAMESPACES"in e?M({},e.ALLOWED_NAMESPACES,E):se,Qt="ADD_URI_SAFE_ATTR"in e?M(N(te),e.ADD_URI_SAFE_ATTR,mt):te,Xt="ADD_DATA_URI_TAGS"in e?M(N(Jt),e.ADD_DATA_URI_TAGS,mt):Jt,Zt="FORBID_CONTENTS"in e?M({},e.FORBID_CONTENTS,mt):Kt,It="FORBID_TAGS"in e?M({},e.FORBID_TAGS,mt):{},Lt="FORBID_ATTR"in e?M({},e.FORBID_ATTR,mt):{},Gt="USE_PROFILES"in e&&e.USE_PROFILES,Ot=!1!==e.ALLOW_ARIA_ATTR,Mt=!1!==e.ALLOW_DATA_ATTR,Nt=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Bt=e.SAFE_FOR_TEMPLATES||!1,Pt=e.WHOLE_DOCUMENT||!1,$t=e.RETURN_DOM||!1,zt=e.RETURN_DOM_FRAGMENT||!1,Ht=e.RETURN_TRUSTED_TYPE||!1,jt=e.FORCE_BODY||!1,Ut=!1!==e.SANITIZE_DOM,Vt=e.SANITIZE_NAMED_PROPS||!1,Wt=!1!==e.KEEP_CONTENT,Yt=e.IN_PLACE||!1,Et=e.ALLOWED_URI_REGEXP||Et,ae=e.NAMESPACE||ie,e.CUSTOM_ELEMENT_HANDLING&&he(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Dt.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&he(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Dt.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Dt.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Bt&&(Mt=!1),zt&&($t=!0),Gt&&(Ct=M({},a(U)),Tt=[],!0===Gt.html&&(M(Ct,P),M(Tt,V)),!0===Gt.svg&&(M(Ct,F),M(Tt,q),M(Tt,Y)),!0===Gt.svgFilters&&(M(Ct,j),M(Tt,q),M(Tt,Y)),!0===Gt.mathMl&&(M(Ct,z),M(Tt,W),M(Tt,Y))),e.ADD_TAGS&&(Ct===St&&(Ct=N(Ct)),M(Ct,e.ADD_TAGS,mt)),e.ADD_ATTR&&(Tt===At&&(Tt=N(Tt)),M(Tt,e.ADD_ATTR,mt)),e.ADD_URI_SAFE_ATTR&&M(Qt,e.ADD_URI_SAFE_ATTR,mt),e.FORBID_CONTENTS&&(Zt===Kt&&(Zt=N(Zt)),M(Zt,e.FORBID_CONTENTS,mt)),Wt&&(Ct["#text"]=!0),Pt&&M(Ct,["html","head","body"]),Ct.table&&(M(Ct,["tbody"]),delete It.tbody),p&&p(e),ue=e)},ge=M({},["mi","mo","mn","ms","mtext"]),pe=M({},["foreignobject","desc","title","annotation-xml"]),be=M({},["title","style","font","a","script"]),me=M({},F);M(me,j),M(me,$);var ye=M({},z);M(ye,H);var ve=function(t){var e=L(t);e&&e.tagName||(e={namespaceURI:ae,tagName:"template"});var n=k(t.tagName),i=k(e.tagName);return!!oe[t.namespaceURI]&&(t.namespaceURI===ne?e.namespaceURI===ie?"svg"===n:e.namespaceURI===ee?"svg"===n&&("annotation-xml"===i||ge[i]):Boolean(me[n]):t.namespaceURI===ee?e.namespaceURI===ie?"math"===n:e.namespaceURI===ne?"math"===n&&pe[i]:Boolean(ye[n]):t.namespaceURI===ie?!(e.namespaceURI===ne&&!pe[i])&&!(e.namespaceURI===ee&&!ge[i])&&!ye[n]&&(be[n]||!me[n]):!("application/xhtml+xml"!==bt||!oe[t.namespaceURI]))},we=function(t){_(n.removed,{element:t});try{t.parentNode.removeChild(t)}catch(Le){try{t.outerHTML=st}catch(Le){t.remove()}}},xe=function(t,e){try{_(n.removed,{attribute:e.getAttributeNode(t),from:e})}catch(Le){_(n.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t&&!Tt[t])if($t||zt)try{we(e)}catch(Le){}else try{e.setAttribute(t,"")}catch(Le){}},Re=function(t){var e,n;if(jt)t="<remove></remove>"+t;else{var i=C(t,/^[\r\n\t ]+/);n=i&&i[0]}"application/xhtml+xml"===bt&&ae===ie&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");var a=ot?ot.createHTML(t):t;if(ae===ie)try{e=(new g).parseFromString(a,bt)}catch(Le){}if(!e||!e.documentElement){e=lt.createDocument(ae,"template",null);try{e.documentElement.innerHTML=re?st:a}catch(Le){}}var o=e.body||e.documentElement;return t&&n&&o.insertBefore(r.createTextNode(n),o.childNodes[0]||null),ae===ie?ht.call(e,Pt?"html":"body")[0]:Pt?e.documentElement:o},_e=function(t){return ut.call(t.ownerDocument||t,t,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,null,!1)},ke=function(t){return t instanceof f&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof h)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},Ee=function(e){return"object"===t(c)?e instanceof c:e&&"object"===t(e)&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},Ce=function(t,e,i){pt[t]&&x(pt[t],(function(t){t.call(n,e,i,ue)}))},Se=function(t){var e;if(Ce("beforeSanitizeElements",t,null),ke(t))return we(t),!0;if(D(/[\u0080-\uFFFF]/,t.nodeName))return we(t),!0;var i=mt(t.nodeName);if(Ce("uponSanitizeElement",t,{tagName:i,allowedTags:Ct}),t.hasChildNodes()&&!Ee(t.firstElementChild)&&(!Ee(t.content)||!Ee(t.content.firstElementChild))&&D(/<[/\w]/g,t.innerHTML)&&D(/<[/\w]/g,t.textContent))return we(t),!0;if("select"===i&&D(/<template/i,t.innerHTML))return we(t),!0;if(!Ct[i]||It[i]){if(!It[i]&&Ae(i)){if(Dt.tagNameCheck instanceof RegExp&&D(Dt.tagNameCheck,i))return!1;if(Dt.tagNameCheck instanceof Function&&Dt.tagNameCheck(i))return!1}if(Wt&&!Zt[i]){var a=L(t)||t.parentNode,r=w(t)||t.childNodes;if(r&&a)for(var o=r.length-1;o>=0;--o)a.insertBefore(y(r[o],!0),v(t))}return we(t),!0}return t instanceof l&&!ve(t)?(we(t),!0):"noscript"!==i&&"noembed"!==i||!D(/<\/no(script|embed)/i,t.innerHTML)?(Bt&&3===t.nodeType&&(e=t.textContent,e=S(e,yt," "),e=S(e,vt," "),e=S(e,wt," "),t.textContent!==e&&(_(n.removed,{element:t.cloneNode()}),t.textContent=e)),Ce("afterSanitizeElements",t,null),!1):(we(t),!0)},Te=function(t,e,n){if(Ut&&("id"===e||"name"===e)&&(n in r||n in de))return!1;if(Mt&&!Lt[e]&&D(xt,e));else if(Ot&&D(Rt,e));else if(!Tt[e]||Lt[e]){if(!(Ae(t)&&(Dt.tagNameCheck instanceof RegExp&&D(Dt.tagNameCheck,t)||Dt.tagNameCheck instanceof Function&&Dt.tagNameCheck(t))&&(Dt.attributeNameCheck instanceof RegExp&&D(Dt.attributeNameCheck,e)||Dt.attributeNameCheck instanceof Function&&Dt.attributeNameCheck(e))||"is"===e&&Dt.allowCustomizedBuiltInElements&&(Dt.tagNameCheck instanceof RegExp&&D(Dt.tagNameCheck,n)||Dt.tagNameCheck instanceof Function&&Dt.tagNameCheck(n))))return!1}else if(Qt[e]);else if(D(Et,S(n,kt,"")));else if("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==T(n,"data:")||!Xt[t])if(Nt&&!D(_t,S(n,kt,"")));else if(n)return!1;return!0},Ae=function(t){return t.indexOf("-")>0},De=function(e){var i,a,r,o;Ce("beforeSanitizeAttributes",e,null);var s=e.attributes;if(s){var c={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Tt};for(o=s.length;o--;){var l=i=s[o],u=l.name,d=l.namespaceURI;if(a="value"===u?i.value:A(i.value),r=mt(u),c.attrName=r,c.attrValue=a,c.keepAttr=!0,c.forceKeepAttr=void 0,Ce("uponSanitizeAttribute",e,c),a=c.attrValue,!c.forceKeepAttr&&(xe(u,e),c.keepAttr))if(D(/\/>/i,a))xe(u,e);else{Bt&&(a=S(a,yt," "),a=S(a,vt," "),a=S(a,wt," "));var h=mt(e.nodeName);if(Te(h,r,a)){if(!Vt||"id"!==r&&"name"!==r||(xe(u,e),a=qt+a),ot&&"object"===t(b)&&"function"==typeof b.getAttributeType)if(d);else switch(b.getAttributeType(h,r)){case"TrustedHTML":a=ot.createHTML(a);break;case"TrustedScriptURL":a=ot.createScriptURL(a)}try{d?e.setAttributeNS(d,u,a):e.setAttribute(u,a),R(n.removed)}catch(Le){}}}}Ce("afterSanitizeAttributes",e,null)}},Ie=function t(e){var n,i=_e(e);for(Ce("beforeSanitizeShadowDOM",e,null);n=i.nextNode();)Ce("uponSanitizeShadowNode",n,null),Se(n)||(n.content instanceof o&&t(n.content),De(n));Ce("afterSanitizeShadowDOM",e,null)};return n.sanitize=function(a){var r,s,l,u,d,h=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if((re=!a)&&(a="\x3c!--\x3e"),"string"!=typeof a&&!Ee(a)){if("function"!=typeof a.toString)throw I("toString is not a function");if("string"!=typeof(a=a.toString()))throw I("dirty is not a string, aborting")}if(!n.isSupported){if("object"===t(e.toStaticHTML)||"function"==typeof e.toStaticHTML){if("string"==typeof a)return e.toStaticHTML(a);if(Ee(a))return e.toStaticHTML(a.outerHTML)}return a}if(Ft||fe(h),n.removed=[],"string"==typeof a&&(Yt=!1),Yt){if(a.nodeName){var f=mt(a.nodeName);if(!Ct[f]||It[f])throw I("root node is forbidden and cannot be sanitized in-place")}}else if(a instanceof c)1===(s=(r=Re("\x3c!----\x3e")).ownerDocument.importNode(a,!0)).nodeType&&"BODY"===s.nodeName||"HTML"===s.nodeName?r=s:r.appendChild(s);else{if(!$t&&!Bt&&!Pt&&-1===a.indexOf("<"))return ot&&Ht?ot.createHTML(a):a;if(!(r=Re(a)))return $t?null:Ht?st:""}r&&jt&&we(r.firstChild);for(var g=_e(Yt?a:r);l=g.nextNode();)3===l.nodeType&&l===u||Se(l)||(l.content instanceof o&&Ie(l.content),De(l),u=l);if(u=null,Yt)return a;if($t){if(zt)for(d=dt.call(r.ownerDocument);r.firstChild;)d.appendChild(r.firstChild);else d=r;return Tt.shadowroot&&(d=ft.call(i,d,!0)),d}var p=Pt?r.outerHTML:r.innerHTML;return Pt&&Ct["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&D(nt,r.ownerDocument.doctype.name)&&(p="<!DOCTYPE "+r.ownerDocument.doctype.name+">\n"+p),Bt&&(p=S(p,yt," "),p=S(p,vt," "),p=S(p,wt," ")),ot&&Ht?ot.createHTML(p):p},n.setConfig=function(t){fe(t),Ft=!0},n.clearConfig=function(){ue=null,Ft=!1},n.isValidAttribute=function(t,e,n){ue||fe({});var i=mt(t),a=mt(e);return Te(i,a,n)},n.addHook=function(t,e){"function"==typeof e&&(pt[t]=pt[t]||[],_(pt[t],e))},n.removeHook=function(t){if(pt[t])return R(pt[t])},n.removeHooks=function(t){pt[t]&&(pt[t]=[])},n.removeAllHooks=function(){pt={}},n}return rt()}()},58875:(t,e,n)=>{var i;!function(){"use strict";var a=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:a,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:a&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:a&&!!window.screen};void 0===(i=function(){return r}.call(e,n,e,t))||(t.exports=i)}()},94470:t=>{"use strict";var e=Object.prototype.hasOwnProperty,n=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,r=function(t){return"function"==typeof Array.isArray?Array.isArray(t):"[object Array]"===n.call(t)},o=function(t){if(!t||"[object Object]"!==n.call(t))return!1;var i,a=e.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&e.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!a&&!r)return!1;for(i in t);return void 0===i||e.call(t,i)},s=function(t,e){i&&"__proto__"===e.name?i(t,e.name,{enumerable:!0,configurable:!0,value:e.newValue,writable:!0}):t[e.name]=e.newValue},c=function(t,n){if("__proto__"===n){if(!e.call(t,n))return;if(a)return a(t,n).value}return t[n]};t.exports=function t(){var e,n,i,a,l,u,d=arguments[0],h=1,f=arguments.length,g=!1;for("boolean"==typeof d&&(g=d,d=arguments[1]||{},h=2),(null==d||"object"!=typeof d&&"function"!=typeof d)&&(d={});h<f;++h)if(null!=(e=arguments[h]))for(n in e)i=c(d,n),d!==(a=c(e,n))&&(g&&a&&(o(a)||(l=r(a)))?(l?(l=!1,u=i&&r(i)?i:[]):u=i&&o(i)?i:{},s(d,{name:n,newValue:t(g,u,a)})):void 0!==a&&s(d,{name:n,newValue:a}));return d}},52897:(t,e,n)=>{var i=n(18139);function a(t,e){var n,a=null;if(!t||"string"!=typeof t)return a;for(var r,o,s=i(t),c="function"==typeof e,l=0,u=s.length;l<u;l++)r=(n=s[l]).property,o=n.value,c?e(r,o,n):o&&(a||(a={}),a[r]=o);return a}t.exports=a,t.exports.default=a},18139:t=>{var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,r=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,c=/^\s+|\s+$/g,l="";function u(t){return t?t.replace(c,l):l}t.exports=function(t,c){if("string"!=typeof t)throw new TypeError("First argument must be a string");if(!t)return[];c=c||{};var d=1,h=1;function f(t){var e=t.match(n);e&&(d+=e.length);var i=t.lastIndexOf("\n");h=~i?t.length-i:h+t.length}function g(){var t={line:d,column:h};return function(e){return e.position=new p(t),v(),e}}function p(t){this.start=t,this.end={line:d,column:h},this.source=c.source}p.prototype.content=t;var b=[];function m(e){var n=new Error(c.source+":"+d+":"+h+": "+e);if(n.reason=e,n.filename=c.source,n.line=d,n.column=h,n.source=t,!c.silent)throw n;b.push(n)}function y(e){var n=e.exec(t);if(n){var i=n[0];return f(i),t=t.slice(i.length),n}}function v(){y(i)}function w(t){var e;for(t=t||[];e=x();)!1!==e&&t.push(e);return t}function x(){var e=g();if("/"==t.charAt(0)&&"*"==t.charAt(1)){for(var n=2;l!=t.charAt(n)&&("*"!=t.charAt(n)||"/"!=t.charAt(n+1));)++n;if(n+=2,l===t.charAt(n-1))return m("End of comment missing");var i=t.slice(2,n-2);return h+=2,f(i),t=t.slice(n),h+=2,e({type:"comment",comment:i})}}function R(){var t=g(),n=y(a);if(n){if(x(),!y(r))return m("property missing ':'");var i=y(o),c=t({type:"declaration",property:u(n[0].replace(e,l)),value:i?u(i[0].replace(e,l)):l});return y(s),c}}return v(),function(){var t,e=[];for(w(e);t=R();)!1!==t&&(e.push(t),w(e));return e}()}},48738:t=>{t.exports=function(t){return null!=t&&null!=t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}},91296:(t,e,n)=>{var i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,o=/^0o[0-7]+$/i,s=parseInt,c="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,l="object"==typeof self&&self&&self.Object===Object&&self,u=c||l||Function("return this")(),d=Object.prototype.toString,h=Math.max,f=Math.min,g=function(){return u.Date.now()};function p(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function b(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==d.call(t)}(t))return NaN;if(p(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=p(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(i,"");var n=r.test(t);return n||o.test(t)?s(t.slice(2),n?2:8):a.test(t)?NaN:+t}t.exports=function(t,e,n){var i,a,r,o,s,c,l=0,u=!1,d=!1,m=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=i,r=a;return i=a=void 0,l=e,o=t.apply(r,n)}function v(t){return l=t,s=setTimeout(x,e),u?y(t):o}function w(t){var n=t-c;return void 0===c||n>=e||n<0||d&&t-l>=r}function x(){var t=g();if(w(t))return R(t);s=setTimeout(x,function(t){var n=e-(t-c);return d?f(n,r-(t-l)):n}(t))}function R(t){return s=void 0,m&&i?y(t):(i=a=void 0,o)}function _(){var t=g(),n=w(t);if(i=arguments,a=this,c=t,n){if(void 0===s)return v(c);if(d)return s=setTimeout(x,e),y(c)}return void 0===s&&(s=setTimeout(x,e)),o}return e=b(e)||0,p(n)&&(u=!!n.leading,r=(d="maxWait"in n)?h(b(n.maxWait)||0,e):r,m="trailing"in n?!!n.trailing:m),_.cancel=function(){void 0!==s&&clearTimeout(s),l=0,i=c=a=s=void 0},_.flush=function(){return void 0===s?o:R(g())},_}},26024:(t,e,n)=>{"use strict";t.exports=n(68914)},16432:(t,e,n)=>{"use strict";n.d(e,{a:()=>On,b:()=>Bo,c:()=>zt,d:()=>In,e:()=>jt,f:()=>Ho,g:()=>ai,h:()=>bc,i:()=>lo,j:()=>ji,k:()=>zi,l:()=>Dt,m:()=>Ii,n:()=>Nt,o:()=>hf,p:()=>ms,s:()=>hi});const i=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];var i=Array.from("string"==typeof t?[t]:t);i[i.length-1]=i[i.length-1].replace(/\r?\n([\t ]*)$/,"");var a=i.reduce((function(t,e){var n=e.match(/\n([\t ]+|(?!\s).)/g);return n?t.concat(n.map((function(t){var e,n;return null!==(n=null===(e=t.match(/[\t ]/g))||void 0===e?void 0:e.length)&&void 0!==n?n:0}))):t}),[]);if(a.length){var r=new RegExp("\n[\t ]{"+Math.min.apply(Math,a)+"}","g");i=i.map((function(t){return t.replace(r,"\n")}))}i[0]=i[0].replace(/^\r?\n/,"");var o=i[0];return e.forEach((function(t,e){var n=o.match(/(?:^|\n)( *)$/),a=n?n[1]:"",r=t;"string"==typeof t&&t.includes("\n")&&(r=String(t).split("\n").map((function(t,e){return 0===e?t:""+a+t})).join("\n")),o+=r+i[e+1]})),o};var a=n(27484),r=n.n(a),o=n(17967),s=n(59373),l=n(27856),u=n.n(l),d=n(71610),h=n(61691);const f=(t,e)=>{const n=d.Z.parse(t);for(const i in e)n[i]=h.Z.channel.clamp[i](e[i]);return d.Z.stringify(n)},g=(t,e)=>{const n=d.Z.parse(t),i={};for(const a in e)e[a]&&(i[a]=n[a]+e[a]);return f(t,i)};var p=n(21883);const b=(t,e,n=0,i=1)=>{if("number"!=typeof t)return f(t,{a:e});const a=p.Z.set({r:h.Z.channel.clamp.r(t),g:h.Z.channel.clamp.g(e),b:h.Z.channel.clamp.b(n),a:h.Z.channel.clamp.a(i)});return d.Z.stringify(a)},m=(t,e,n=50)=>{const{r:i,g:a,b:r,a:o}=d.Z.parse(t),{r:s,g:c,b:l,a:u}=d.Z.parse(e),h=n/100,f=2*h-1,g=o-u,p=((f*g==-1?f:(f+g)/(1+f*g))+1)/2,m=1-p;return b(i*p+s*m,a*p+c*m,r*p+l*m,o*h+u*(1-h))},y=(t,e=100)=>{const n=d.Z.parse(t);return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,m(n,t,e)};var v=n(7201),w=n(12281),x=n(42454),R="comm",_="rule",k="decl",E=Math.abs,C=String.fromCharCode;Object.assign;function S(t){return t.trim()}function T(t,e,n){return t.replace(e,n)}function A(t,e){return t.indexOf(e)}function D(t,e){return 0|t.charCodeAt(e)}function I(t,e,n){return t.slice(e,n)}function L(t){return t.length}function O(t,e){return e.push(t),t}function M(t,e){for(var n="",i=0;i<t.length;i++)n+=e(t[i],i,t,e)||"";return n}function N(t,e,n,i){switch(t.type){case"@layer":if(t.children.length)break;case"@import":case k:return t.return=t.return||t.value;case R:return"";case"@keyframes":return t.return=t.value+"{"+M(t.children,i)+"}";case _:if(!L(t.value=t.props.join(",")))return""}return L(n=M(t.children,i))?t.return=t.value+"{"+n+"}":""}var B=1,P=1,F=0,j=0,$=0,z="";function H(t,e,n,i,a,r,o,s){return{value:t,root:e,parent:n,type:i,props:a,children:r,line:B,column:P,length:o,return:"",siblings:s}}function U(){return $=j>0?D(z,--j):0,P--,10===$&&(P=1,B--),$}function V(){return $=j<F?D(z,j++):0,P++,10===$&&(P=1,B++),$}function q(){return D(z,j)}function W(){return j}function Y(t,e){return I(z,t,e)}function G(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Z(t){return B=P=1,F=L(z=t),j=0,[]}function K(t){return z="",t}function X(t){return S(Y(j-1,tt(91===t?t+2:40===t?t+1:t)))}function J(t){for(;($=q())&&$<33;)V();return G(t)>2||G($)>3?"":" "}function Q(t,e){for(;--e&&V()&&!($<48||$>102||$>57&&$<65||$>70&&$<97););return Y(t,W()+(e<6&&32==q()&&32==V()))}function tt(t){for(;V();)switch($){case t:return j;case 34:case 39:34!==t&&39!==t&&tt($);break;case 40:41===t&&tt(t);break;case 92:V()}return j}function et(t,e){for(;V()&&t+$!==57&&(t+$!==84||47!==q()););return"/*"+Y(e,j-1)+"*"+C(47===t?t:V())}function nt(t){for(;!G(q());)V();return Y(t,j)}function it(t){return K(at("",null,null,null,[""],t=Z(t),0,[0],t))}function at(t,e,n,i,a,r,o,s,c){for(var l=0,u=0,d=o,h=0,f=0,g=0,p=1,b=1,m=1,y=0,v="",w=a,x=r,R=i,_=v;b;)switch(g=y,y=V()){case 40:if(108!=g&&58==D(_,d-1)){-1!=A(_+=T(X(y),"&","&\f"),"&\f")&&(m=-1);break}case 34:case 39:case 91:_+=X(y);break;case 9:case 10:case 13:case 32:_+=J(g);break;case 92:_+=Q(W()-1,7);continue;case 47:switch(q()){case 42:case 47:O(ot(et(V(),W()),e,n,c),c);break;default:_+="/"}break;case 123*p:s[l++]=L(_)*m;case 125*p:case 59:case 0:switch(y){case 0:case 125:b=0;case 59+u:-1==m&&(_=T(_,/\f/g,"")),f>0&&L(_)-d&&O(f>32?st(_+";",i,n,d-1,c):st(T(_," ","")+";",i,n,d-2,c),c);break;case 59:_+=";";default:if(O(R=rt(_,e,n,l,u,a,s,v,w=[],x=[],d,r),r),123===y)if(0===u)at(_,e,R,R,w,r,d,s,x);else switch(99===h&&110===D(_,3)?100:h){case 100:case 108:case 109:case 115:at(t,R,R,i&&O(rt(t,R,R,0,0,a,s,v,a,w=[],d,x),x),a,x,d,s,i?w:x);break;default:at(_,R,R,R,[""],x,0,s,x)}}l=u=f=0,p=m=1,v=_="",d=o;break;case 58:d=1+L(_),f=g;default:if(p<1)if(123==y)--p;else if(125==y&&0==p++&&125==U())continue;switch(_+=C(y),y*p){case 38:m=u>0?1:(_+="\f",-1);break;case 44:s[l++]=(L(_)-1)*m,m=1;break;case 64:45===q()&&(_+=X(V())),h=q(),u=d=L(v=_+=nt(W())),y++;break;case 45:45===g&&2==L(_)&&(p=0)}}return r}function rt(t,e,n,i,a,r,o,s,c,l,u,d){for(var h=a-1,f=0===a?r:[""],g=function(t){return t.length}(f),p=0,b=0,m=0;p<i;++p)for(var y=0,v=I(t,h+1,h=E(b=o[p])),w=t;y<g;++y)(w=S(b>0?f[y]+" "+v:T(v,/&\f/g,f[y])))&&(c[m++]=w);return H(t,e,n,0===a?_:s,c,l,u,d)}function ot(t,e,n,i){return H(t,e,n,R,C($),I(t,2,-2),0,i)}function st(t,e,n,i,a){return H(t,e,n,k,I(t,0,i),I(t,i+1,-1),i,a)}var ct=n(70277),lt=n(45625),ut=n(39354);const dt=[];for(let c=0;c<256;++c)dt.push((c+256).toString(16).slice(1));function ht(t,e=0){return dt[t[e+0]]+dt[t[e+1]]+dt[t[e+2]]+dt[t[e+3]]+"-"+dt[t[e+4]]+dt[t[e+5]]+"-"+dt[t[e+6]]+dt[t[e+7]]+"-"+dt[t[e+8]]+dt[t[e+9]]+"-"+dt[t[e+10]]+dt[t[e+11]]+dt[t[e+12]]+dt[t[e+13]]+dt[t[e+14]]+dt[t[e+15]]}const ft=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;const gt=function(t){return"string"==typeof t&&ft.test(t)};const pt=function(t){if(!gt(t))throw TypeError("Invalid UUID");let e;const n=new Uint8Array(16);return n[0]=(e=parseInt(t.slice(0,8),16))>>>24,n[1]=e>>>16&255,n[2]=e>>>8&255,n[3]=255&e,n[4]=(e=parseInt(t.slice(9,13),16))>>>8,n[5]=255&e,n[6]=(e=parseInt(t.slice(14,18),16))>>>8,n[7]=255&e,n[8]=(e=parseInt(t.slice(19,23),16))>>>8,n[9]=255&e,n[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,n[11]=e/4294967296&255,n[12]=e>>>24&255,n[13]=e>>>16&255,n[14]=e>>>8&255,n[15]=255&e,n};function bt(t,e,n,i){switch(t){case 0:return e&n^~e&i;case 1:case 3:return e^n^i;case 2:return e&n^e&i^n&i}}function mt(t,e){return t<<e|t>>>32-e}const yt=function(t){const e=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof t){const e=unescape(encodeURIComponent(t));t=[];for(let n=0;n<e.length;++n)t.push(e.charCodeAt(n))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);const i=t.length/4+2,a=Math.ceil(i/16),r=new Array(a);for(let o=0;o<a;++o){const e=new Uint32Array(16);for(let n=0;n<16;++n)e[n]=t[64*o+4*n]<<24|t[64*o+4*n+1]<<16|t[64*o+4*n+2]<<8|t[64*o+4*n+3];r[o]=e}r[a-1][14]=8*(t.length-1)/Math.pow(2,32),r[a-1][14]=Math.floor(r[a-1][14]),r[a-1][15]=8*(t.length-1)&4294967295;for(let o=0;o<a;++o){const t=new Uint32Array(80);for(let e=0;e<16;++e)t[e]=r[o][e];for(let e=16;e<80;++e)t[e]=mt(t[e-3]^t[e-8]^t[e-14]^t[e-16],1);let i=n[0],a=n[1],s=n[2],c=n[3],l=n[4];for(let n=0;n<80;++n){const r=Math.floor(n/20),o=mt(i,5)+bt(r,a,s,c)+l+e[r]+t[n]>>>0;l=c,c=s,s=mt(a,30)>>>0,a=i,i=o}n[0]=n[0]+i>>>0,n[1]=n[1]+a>>>0,n[2]=n[2]+s>>>0,n[3]=n[3]+c>>>0,n[4]=n[4]+l>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]},vt=function(t,e,n){function i(t,i,a,r){var o;if("string"==typeof t&&(t=function(t){t=unescape(encodeURIComponent(t));const e=[];for(let n=0;n<t.length;++n)e.push(t.charCodeAt(n));return e}(t)),"string"==typeof i&&(i=pt(i)),16!==(null===(o=i)||void 0===o?void 0:o.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let s=new Uint8Array(16+t.length);if(s.set(i),s.set(t,i.length),s=n(s),s[6]=15&s[6]|e,s[8]=63&s[8]|128,a){r=r||0;for(let t=0;t<16;++t)a[r+t]=s[t];return a}return ht(s)}try{i.name=t}catch(a){}return i.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",i.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",i}("v5",80,yt),wt=vt;n(91518),n(96225);var xt=n(43349),Rt=(n(23352),n(22930),n(59542)),_t=n.n(Rt),kt=n(10285),Et=n.n(kt),Ct=n(28734),St=n.n(Ct),Tt=n(79697);const At={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},Dt={trace:(...t)=>{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},It=function(t="fatal"){let e=At.fatal;"string"==typeof t?(t=t.toLowerCase())in At&&(e=At[t]):"number"==typeof t&&(e=t),Dt.trace=()=>{},Dt.debug=()=>{},Dt.info=()=>{},Dt.warn=()=>{},Dt.error=()=>{},Dt.fatal=()=>{},e<=At.fatal&&(Dt.fatal=console.error?console.error.bind(console,Lt("FATAL"),"color: orange"):console.log.bind(console,"\x1b[35m",Lt("FATAL"))),e<=At.error&&(Dt.error=console.error?console.error.bind(console,Lt("ERROR"),"color: orange"):console.log.bind(console,"\x1b[31m",Lt("ERROR"))),e<=At.warn&&(Dt.warn=console.warn?console.warn.bind(console,Lt("WARN"),"color: orange"):console.log.bind(console,"\x1b[33m",Lt("WARN"))),e<=At.info&&(Dt.info=console.info?console.info.bind(console,Lt("INFO"),"color: lightblue"):console.log.bind(console,"\x1b[34m",Lt("INFO"))),e<=At.debug&&(Dt.debug=console.debug?console.debug.bind(console,Lt("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",Lt("DEBUG"))),e<=At.trace&&(Dt.trace=console.debug?console.debug.bind(console,Lt("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",Lt("TRACE")))},Lt=t=>`%c${r()().format("ss.SSS")} : ${t} : `,Ot=t=>u().sanitize(t),Mt=(t,e)=>{var n;if(!1!==(null==(n=e.flowchart)?void 0:n.htmlLabels)){const n=e.securityLevel;"antiscript"===n||"strict"===n?t=Ot(t):"loose"!==n&&(t=(t=(t=Ft(t)).replace(/</g,"<").replace(/>/g,">")).replace(/=/g,"="),t=Pt(t))}return t},Nt=(t,e)=>t?t=e.dompurifyConfig?u().sanitize(Mt(t,e),e.dompurifyConfig).toString():u().sanitize(Mt(t,e),{FORBID_TAGS:["style"]}).toString():t,Bt=/<br\s*\/?>/gi,Pt=t=>t.replace(/#br#/g,"<br/>"),Ft=t=>t.replace(Bt,"#br#"),jt=t=>!1!==t&&!["false","null","0"].includes(String(t).trim().toLowerCase()),$t=function(t){let e=t;if(t.split("~").length-1>=2){let t=e;do{e=t,t=e.replace(/~([^\s,:;]+)~/,"<$1>")}while(t!=e);return $t(t)}return e},zt={getRows:t=>{if(!t)return[""];return Ft(t).replace(/\\n/g,"#br#").split("#br#")},sanitizeText:Nt,sanitizeTextOrArray:(t,e)=>"string"==typeof t?Nt(t,e):t.flat().map((t=>Nt(t,e))),hasBreaks:t=>Bt.test(t),splitBreaks:t=>t.split(Bt),lineBreakRegex:Bt,removeScript:Ot,getUrl:t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},evaluate:jt},Ht=(t,e)=>g(t,e?{s:-40,l:10}:{s:-40,l:-10}),Ut="#ffffff",Vt="#f2f2f2";class qt{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=(0,w.Z)(this.contrast,55),this.background="#ffffff",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=Ht(this.primaryColor,this.darkMode),this.secondaryBorderColor=Ht(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ht(this.tertiaryColor,this.darkMode),this.primaryTextColor=y(this.primaryColor),this.secondaryTextColor=y(this.secondaryColor),this.tertiaryTextColor=y(this.tertiaryColor),this.lineColor=y(this.background),this.textColor=y(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=(0,w.Z)(this.contrast,55),this.border2=this.contrast,this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||y(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this.darkMode?this["cScalePeer"+t]=this["cScalePeer"+t]||(0,w.Z)(this["cScale"+t],10):this["cScalePeer"+t]=this["cScalePeer"+t]||(0,v.Z)(this["cScale"+t],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor),this.cScaleLabel0=this.cScaleLabel0||this.cScale1,this.cScaleLabel2=this.cScaleLabel2||this.cScale1;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||g(this.mainBkg,{l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||g(this.mainBkg,{l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.text,this.actorBorder=(0,w.Z)(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.sectionBkgColor=(0,w.Z)(this.contrast,30),this.sectionBkgColor2=(0,w.Z)(this.contrast,30),this.taskBorderColor=(0,v.Z)(this.contrast,10),this.taskBkgColor=this.contrast,this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor=this.text,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.gridColor=(0,w.Z)(this.border1,30),this.doneTaskBkgColor=this.done,this.doneTaskBorderColor=this.lineColor,this.critBkgColor=this.critical,this.critBorderColor=(0,v.Z)(this.critBkgColor,10),this.todayLineColor=this.critBkgColor,this.transitionColor=this.transitionColor||"#000",this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f4f4f4",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.stateBorder=this.stateBorder||"#000",this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#222",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=g(this.primaryColor,{h:64}),this.fillType3=g(this.secondaryColor,{h:64}),this.fillType4=g(this.primaryColor,{h:-64}),this.fillType5=g(this.secondaryColor,{h:-64}),this.fillType6=g(this.primaryColor,{h:128}),this.fillType7=g(this.secondaryColor,{h:128});for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pie12=this.pie0,this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=(0,v.Z)(this.pie1,25)||this.primaryColor,this.git1=this.pie2||this.secondaryColor,this.git2=this.pie3||this.tertiaryColor,this.git3=this.pie4||g(this.primaryColor,{h:-30}),this.git4=this.pie5||g(this.primaryColor,{h:-60}),this.git5=this.pie6||g(this.primaryColor,{h:-90}),this.git6=this.pie7||g(this.primaryColor,{h:60}),this.git7=this.pie8||g(this.primaryColor,{h:120}),this.gitInv0=this.gitInv0||y(this.git0),this.gitInv1=this.gitInv1||y(this.git1),this.gitInv2=this.gitInv2||y(this.git2),this.gitInv3=this.gitInv3||y(this.git3),this.gitInv4=this.gitInv4||y(this.git4),this.gitInv5=this.gitInv5||y(this.git5),this.gitInv6=this.gitInv6||y(this.git6),this.gitInv7=this.gitInv7||y(this.git7),this.branchLabelColor=this.branchLabelColor||this.labelTextColor,this.gitBranchLabel0=this.branchLabelColor,this.gitBranchLabel1="white",this.gitBranchLabel2=this.branchLabelColor,this.gitBranchLabel3="white",this.gitBranchLabel4=this.branchLabelColor,this.gitBranchLabel5=this.branchLabelColor,this.gitBranchLabel6=this.branchLabelColor,this.gitBranchLabel7=this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ut,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Vt}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}}const Wt={base:{getThemeVariables:t=>{const e=new class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||g(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||g(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Ht(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Ht(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Ht(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Ht(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||y(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||y(this.tertiaryColor),this.lineColor=this.lineColor||y(this.background),this.textColor=this.textColor||this.primaryTextColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?(0,v.Z)(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||(0,v.Z)(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||y(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||(0,w.Z)(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.darkMode)for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScale"+e]=(0,v.Z)(this["cScale"+e],75);else for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScale"+e]=(0,v.Z)(this["cScale"+e],25);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleInv"+e]=this["cScaleInv"+e]||y(this["cScale"+e]);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this.darkMode?this["cScalePeer"+e]=this["cScalePeer"+e]||(0,w.Z)(this["cScale"+e],10):this["cScalePeer"+e]=this["cScalePeer"+e]||(0,v.Z)(this["cScale"+e],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleLabel"+e]=this["cScaleLabel"+e]||this.scaleLabelColor;const t=this.darkMode?-4:-1;for(let e=0;e<5;e++)this["surface"+e]=this["surface"+e]||g(this.mainBkg,{h:180,s:-15,l:t*(5+3*e)}),this["surfacePeer"+e]=this["surfacePeer"+e]||g(this.mainBkg,{h:180,s:-15,l:t*(8+3*e)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||g(this.primaryColor,{h:64}),this.fillType3=this.fillType3||g(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||g(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||g(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||g(this.primaryColor,{h:128}),this.fillType7=this.fillType7||g(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||g(this.primaryColor,{l:-10}),this.pie5=this.pie5||g(this.secondaryColor,{l:-10}),this.pie6=this.pie6||g(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||g(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||g(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||g(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||g(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||g(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||g(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,v.Z)(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||g(this.primaryColor,{h:-30}),this.git4=this.git4||g(this.primaryColor,{h:-60}),this.git5=this.git5||g(this.primaryColor,{h:-90}),this.git6=this.git6||g(this.primaryColor,{h:60}),this.git7=this.git7||g(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,w.Z)(this.git0,25),this.git1=(0,w.Z)(this.git1,25),this.git2=(0,w.Z)(this.git2,25),this.git3=(0,w.Z)(this.git3,25),this.git4=(0,w.Z)(this.git4,25),this.git5=(0,w.Z)(this.git5,25),this.git6=(0,w.Z)(this.git6,25),this.git7=(0,w.Z)(this.git7,25)):(this.git0=(0,v.Z)(this.git0,25),this.git1=(0,v.Z)(this.git1,25),this.git2=(0,v.Z)(this.git2,25),this.git3=(0,v.Z)(this.git3,25),this.git4=(0,v.Z)(this.git4,25),this.git5=(0,v.Z)(this.git5,25),this.git6=(0,v.Z)(this.git6,25),this.git7=(0,v.Z)(this.git7,25)),this.gitInv0=this.gitInv0||y(this.git0),this.gitInv1=this.gitInv1||y(this.git1),this.gitInv2=this.gitInv2||y(this.git2),this.gitInv3=this.gitInv3||y(this.git3),this.gitInv4=this.gitInv4||y(this.git4),this.gitInv5=this.gitInv5||y(this.git5),this.gitInv6=this.gitInv6||y(this.git6),this.gitInv7=this.gitInv7||y(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ut,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Vt}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};return e.calculate(t),e}},dark:{getThemeVariables:t=>{const e=new class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=(0,w.Z)(this.primaryColor,16),this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=y(this.background),this.secondaryBorderColor=Ht(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ht(this.tertiaryColor,this.darkMode),this.primaryTextColor=y(this.primaryColor),this.secondaryTextColor=y(this.secondaryColor),this.tertiaryTextColor=y(this.tertiaryColor),this.lineColor=y(this.background),this.textColor=y(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=(0,w.Z)(y("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=b(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=(0,v.Z)("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.taskBorderColor=b(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=b(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder="calculated",this.personBkg="calculated",this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=(0,w.Z)(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=(0,w.Z)(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=(0,w.Z)(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=g(this.primaryColor,{h:64}),this.fillType3=g(this.secondaryColor,{h:64}),this.fillType4=g(this.primaryColor,{h:-64}),this.fillType5=g(this.secondaryColor,{h:-64}),this.fillType6=g(this.primaryColor,{h:128}),this.fillType7=g(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330});for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||y(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScalePeer"+t]=this["cScalePeer"+t]||(0,w.Z)(this["cScale"+t],10);for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||g(this.mainBkg,{h:30,s:-30,l:-(4*t-10)}),this["surfacePeer"+t]=this["surfacePeer"+t]||g(this.mainBkg,{h:30,s:-30,l:-(4*t-7)});this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.classText=this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?(0,v.Z)(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=(0,w.Z)(this.secondaryColor,20),this.git1=(0,w.Z)(this.pie2||this.secondaryColor,20),this.git2=(0,w.Z)(this.pie3||this.tertiaryColor,20),this.git3=(0,w.Z)(this.pie4||g(this.primaryColor,{h:-30}),20),this.git4=(0,w.Z)(this.pie5||g(this.primaryColor,{h:-60}),20),this.git5=(0,w.Z)(this.pie6||g(this.primaryColor,{h:-90}),10),this.git6=(0,w.Z)(this.pie7||g(this.primaryColor,{h:60}),10),this.git7=(0,w.Z)(this.pie8||g(this.primaryColor,{h:120}),20),this.gitInv0=this.gitInv0||y(this.git0),this.gitInv1=this.gitInv1||y(this.git1),this.gitInv2=this.gitInv2||y(this.git2),this.gitInv3=this.gitInv3||y(this.git3),this.gitInv4=this.gitInv4||y(this.git4),this.gitInv5=this.gitInv5||y(this.git5),this.gitInv6=this.gitInv6||y(this.git6),this.gitInv7=this.gitInv7||y(this.git7),this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||(0,w.Z)(this.background,12),this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||(0,w.Z)(this.background,2)}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};return e.calculate(t),e}},default:{getThemeVariables:t=>{const e=new class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=g(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=g(this.primaryColor,{h:-160}),this.primaryBorderColor=Ht(this.primaryColor,this.darkMode),this.secondaryBorderColor=Ht(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ht(this.tertiaryColor,this.darkMode),this.primaryTextColor=y(this.primaryColor),this.secondaryTextColor=y(this.secondaryColor),this.tertiaryTextColor=y(this.tertiaryColor),this.lineColor=y(this.background),this.textColor=y(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=b(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,v.Z)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,v.Z)(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,v.Z)(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||(0,v.Z)(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||g(this["cScale"+t],{h:180});for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||g(this.mainBkg,{h:30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||g(this.mainBkg,{h:30,l:-(7+5*t)});if(this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor,"calculated"!==this.labelTextColor){this.cScaleLabel0=this.cScaleLabel0||y(this.labelTextColor),this.cScaleLabel3=this.cScaleLabel3||y(this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.labelTextColor}this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.textColor,this.edgeLabelBackground=this.labelBackground,this.actorBorder=(0,w.Z)(this.border1,23),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.signalColor=this.textColor,this.signalTextColor=this.textColor,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=g(this.primaryColor,{h:64}),this.fillType3=g(this.secondaryColor,{h:64}),this.fillType4=g(this.primaryColor,{h:-64}),this.fillType5=g(this.secondaryColor,{h:-64}),this.fillType6=g(this.primaryColor,{h:128}),this.fillType7=g(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||g(this.tertiaryColor,{l:-40}),this.pie4=this.pie4||g(this.primaryColor,{l:-10}),this.pie5=this.pie5||g(this.secondaryColor,{l:-30}),this.pie6=this.pie6||g(this.tertiaryColor,{l:-20}),this.pie7=this.pie7||g(this.primaryColor,{h:60,l:-20}),this.pie8=this.pie8||g(this.primaryColor,{h:-60,l:-40}),this.pie9=this.pie9||g(this.primaryColor,{h:120,l:-40}),this.pie10=this.pie10||g(this.primaryColor,{h:60,l:-40}),this.pie11=this.pie11||g(this.primaryColor,{h:-90,l:-40}),this.pie12=this.pie12||g(this.primaryColor,{h:120,l:-30}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.labelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||g(this.primaryColor,{h:-30}),this.git4=this.git4||g(this.primaryColor,{h:-60}),this.git5=this.git5||g(this.primaryColor,{h:-90}),this.git6=this.git6||g(this.primaryColor,{h:60}),this.git7=this.git7||g(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,w.Z)(this.git0,25),this.git1=(0,w.Z)(this.git1,25),this.git2=(0,w.Z)(this.git2,25),this.git3=(0,w.Z)(this.git3,25),this.git4=(0,w.Z)(this.git4,25),this.git5=(0,w.Z)(this.git5,25),this.git6=(0,w.Z)(this.git6,25),this.git7=(0,w.Z)(this.git7,25)):(this.git0=(0,v.Z)(this.git0,25),this.git1=(0,v.Z)(this.git1,25),this.git2=(0,v.Z)(this.git2,25),this.git3=(0,v.Z)(this.git3,25),this.git4=(0,v.Z)(this.git4,25),this.git5=(0,v.Z)(this.git5,25),this.git6=(0,v.Z)(this.git6,25),this.git7=(0,v.Z)(this.git7,25)),this.gitInv0=this.gitInv0||(0,v.Z)(y(this.git0),25),this.gitInv1=this.gitInv1||y(this.git1),this.gitInv2=this.gitInv2||y(this.git2),this.gitInv3=this.gitInv3||y(this.git3),this.gitInv4=this.gitInv4||y(this.git4),this.gitInv5=this.gitInv5||y(this.git5),this.gitInv6=this.gitInv6||y(this.git6),this.gitInv7=this.gitInv7||y(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||y(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||y(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ut,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Vt}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};return e.calculate(t),e}},forest:{getThemeVariables:t=>{const e=new class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=(0,w.Z)("#cde498",10),this.primaryBorderColor=Ht(this.primaryColor,this.darkMode),this.secondaryBorderColor=Ht(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Ht(this.tertiaryColor,this.darkMode),this.primaryTextColor=y(this.primaryColor),this.secondaryTextColor=y(this.secondaryColor),this.tertiaryTextColor=y(this.primaryColor),this.lineColor=y(this.background),this.textColor=y(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||g(this.primaryColor,{h:30}),this.cScale4=this.cScale4||g(this.primaryColor,{h:60}),this.cScale5=this.cScale5||g(this.primaryColor,{h:90}),this.cScale6=this.cScale6||g(this.primaryColor,{h:120}),this.cScale7=this.cScale7||g(this.primaryColor,{h:150}),this.cScale8=this.cScale8||g(this.primaryColor,{h:210}),this.cScale9=this.cScale9||g(this.primaryColor,{h:270}),this.cScale10=this.cScale10||g(this.primaryColor,{h:300}),this.cScale11=this.cScale11||g(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||(0,v.Z)(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||(0,v.Z)(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=(0,v.Z)(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||(0,v.Z)(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||g(this["cScale"+t],{h:180});this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||g(this.mainBkg,{h:30,s:-30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||g(this.mainBkg,{h:30,s:-30,l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.actorBorder=(0,v.Z)(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.taskBorderColor=this.border1,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=g(this.primaryColor,{h:64}),this.fillType3=g(this.secondaryColor,{h:64}),this.fillType4=g(this.primaryColor,{h:-64}),this.fillType5=g(this.secondaryColor,{h:-64}),this.fillType6=g(this.primaryColor,{h:128}),this.fillType7=g(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||g(this.primaryColor,{l:-30}),this.pie5=this.pie5||g(this.secondaryColor,{l:-30}),this.pie6=this.pie6||g(this.tertiaryColor,{h:40,l:-40}),this.pie7=this.pie7||g(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||g(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||g(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||g(this.primaryColor,{h:60,l:-50}),this.pie11=this.pie11||g(this.primaryColor,{h:-60,l:-50}),this.pie12=this.pie12||g(this.primaryColor,{h:120,l:-50}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||g(this.primaryColor,{h:-30}),this.git4=this.git4||g(this.primaryColor,{h:-60}),this.git5=this.git5||g(this.primaryColor,{h:-90}),this.git6=this.git6||g(this.primaryColor,{h:60}),this.git7=this.git7||g(this.primaryColor,{h:120}),this.darkMode?(this.git0=(0,w.Z)(this.git0,25),this.git1=(0,w.Z)(this.git1,25),this.git2=(0,w.Z)(this.git2,25),this.git3=(0,w.Z)(this.git3,25),this.git4=(0,w.Z)(this.git4,25),this.git5=(0,w.Z)(this.git5,25),this.git6=(0,w.Z)(this.git6,25),this.git7=(0,w.Z)(this.git7,25)):(this.git0=(0,v.Z)(this.git0,25),this.git1=(0,v.Z)(this.git1,25),this.git2=(0,v.Z)(this.git2,25),this.git3=(0,v.Z)(this.git3,25),this.git4=(0,v.Z)(this.git4,25),this.git5=(0,v.Z)(this.git5,25),this.git6=(0,v.Z)(this.git6,25),this.git7=(0,v.Z)(this.git7,25)),this.gitInv0=this.gitInv0||y(this.git0),this.gitInv1=this.gitInv1||y(this.git1),this.gitInv2=this.gitInv2||y(this.git2),this.gitInv3=this.gitInv3||y(this.git3),this.gitInv4=this.gitInv4||y(this.git4),this.gitInv5=this.gitInv5||y(this.git5),this.gitInv6=this.gitInv6||y(this.git6),this.gitInv7=this.gitInv7||y(this.git7),this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ut,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Vt}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};return e.calculate(t),e}},neutral:{getThemeVariables:t=>{const e=new qt;return e.calculate(t),e}}},Yt={theme:"default",themeVariables:Wt.default.getThemeVariables(),themeCSS:void 0,maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,deterministicIDSeed:void 0,flowchart:{titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},sequence:{hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",tickInterval:void 0,useMaxWidth:!0,topAxis:!1,useWidth:void 0},journey:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},timeline:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},class:{titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},state:{titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},er:{titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12,useMaxWidth:!0},pie:{useWidth:void 0,useMaxWidth:!0},requirement:{useWidth:void 0,useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},gitGraph:{titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0},c4:{useWidth:void 0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,useMaxWidth:!0,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},fontSize:16};Yt.class&&(Yt.class.arrowMarkerAbsolute=Yt.arrowMarkerAbsolute),Yt.gitGraph&&(Yt.gitGraph.arrowMarkerAbsolute=Yt.arrowMarkerAbsolute);const Gt=(t,e="")=>Object.keys(t).reduce(((n,i)=>Array.isArray(t[i])?n:"object"==typeof t[i]&&null!==t[i]?[...n,e+i,...Gt(t[i],"")]:[...n,e+i]),[]),Zt=Gt(Yt,""),Kt=Yt;function Xt(t){return null==t}var Jt={isNothing:Xt,isObject:function(t){return"object"==typeof t&&null!==t},toArray:function(t){return Array.isArray(t)?t:Xt(t)?[]:[t]},repeat:function(t,e){var n,i="";for(n=0;n<e;n+=1)i+=t;return i},isNegativeZero:function(t){return 0===t&&Number.NEGATIVE_INFINITY===1/t},extend:function(t,e){var n,i,a,r;if(e)for(n=0,i=(r=Object.keys(e)).length;n<i;n+=1)t[a=r[n]]=e[a];return t}};function Qt(t,e){var n="",i=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(n+='in "'+t.mark.name+'" '),n+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(n+="\n\n"+t.mark.snippet),i+" "+n):i}function te(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=Qt(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}te.prototype=Object.create(Error.prototype),te.prototype.constructor=te,te.prototype.toString=function(t){return this.name+": "+Qt(this,t)};var ee=te;function ne(t,e,n,i,a){var r="",o="",s=Math.floor(a/2)-1;return i-e>s&&(e=i-s+(r=" ... ").length),n-i>s&&(n=i+s-(o=" ...").length),{str:r+t.slice(e,n).replace(/\t/g,"\u2192")+o,pos:i-e+r.length}}function ie(t,e){return Jt.repeat(" ",e-t.length)+t}var ae=function(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),"number"!=typeof e.indent&&(e.indent=1),"number"!=typeof e.linesBefore&&(e.linesBefore=3),"number"!=typeof e.linesAfter&&(e.linesAfter=2);for(var n,i=/\r?\n|\r|\0/g,a=[0],r=[],o=-1;n=i.exec(t.buffer);)r.push(n.index),a.push(n.index+n[0].length),t.position<=n.index&&o<0&&(o=a.length-2);o<0&&(o=a.length-1);var s,c,l="",u=Math.min(t.line+e.linesAfter,r.length).toString().length,d=e.maxLength-(e.indent+u+3);for(s=1;s<=e.linesBefore&&!(o-s<0);s++)c=ne(t.buffer,a[o-s],r[o-s],t.position-(a[o]-a[o-s]),d),l=Jt.repeat(" ",e.indent)+ie((t.line-s+1).toString(),u)+" | "+c.str+"\n"+l;for(c=ne(t.buffer,a[o],r[o],t.position,d),l+=Jt.repeat(" ",e.indent)+ie((t.line+1).toString(),u)+" | "+c.str+"\n",l+=Jt.repeat("-",e.indent+u+3+c.pos)+"^\n",s=1;s<=e.linesAfter&&!(o+s>=r.length);s++)c=ne(t.buffer,a[o+s],r[o+s],t.position-(a[o]-a[o+s]),d),l+=Jt.repeat(" ",e.indent)+ie((t.line+s+1).toString(),u)+" | "+c.str+"\n";return l.replace(/\n$/,"")},re=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],oe=["scalar","sequence","mapping"];var se=function(t,e){var n,i;if(e=e||{},Object.keys(e).forEach((function(e){if(-1===re.indexOf(e))throw new ee('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')})),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=(n=e.styleAliases||null,i={},null!==n&&Object.keys(n).forEach((function(t){n[t].forEach((function(e){i[String(e)]=t}))})),i),-1===oe.indexOf(this.kind))throw new ee('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')};function ce(t,e){var n=[];return t[e].forEach((function(t){var e=n.length;n.forEach((function(n,i){n.tag===t.tag&&n.kind===t.kind&&n.multi===t.multi&&(e=i)})),n[e]=t})),n}function le(t){return this.extend(t)}le.prototype.extend=function(t){var e=[],n=[];if(t instanceof se)n.push(t);else if(Array.isArray(t))n=n.concat(t);else{if(!t||!Array.isArray(t.implicit)&&!Array.isArray(t.explicit))throw new ee("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");t.implicit&&(e=e.concat(t.implicit)),t.explicit&&(n=n.concat(t.explicit))}e.forEach((function(t){if(!(t instanceof se))throw new ee("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(t.loadKind&&"scalar"!==t.loadKind)throw new ee("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(t.multi)throw new ee("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(t){if(!(t instanceof se))throw new ee("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var i=Object.create(le.prototype);return i.implicit=(this.implicit||[]).concat(e),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=ce(i,"implicit"),i.compiledExplicit=ce(i,"explicit"),i.compiledTypeMap=function(){var t,e,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(t){t.multi?(n.multi[t.kind].push(t),n.multi.fallback.push(t)):n[t.kind][t.tag]=n.fallback[t.tag]=t}for(t=0,e=arguments.length;t<e;t+=1)arguments[t].forEach(i);return n}(i.compiledImplicit,i.compiledExplicit),i};var ue=new le({explicit:[new se("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return null!==t?t:""}}),new se("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return null!==t?t:[]}}),new se("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return null!==t?t:{}}})]});var de=new se("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(t){if(null===t)return!0;var e=t.length;return 1===e&&"~"===t||4===e&&("null"===t||"Null"===t||"NULL"===t)},construct:function(){return null},predicate:function(t){return null===t},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});var he=new se("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e=t.length;return 4===e&&("true"===t||"True"===t||"TRUE"===t)||5===e&&("false"===t||"False"===t||"FALSE"===t)},construct:function(t){return"true"===t||"True"===t||"TRUE"===t},predicate:function(t){return"[object Boolean]"===Object.prototype.toString.call(t)},represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"});function fe(t){return 48<=t&&t<=55}function ge(t){return 48<=t&&t<=57}var pe=new se("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,n,i=t.length,a=0,r=!1;if(!i)return!1;if("-"!==(e=t[a])&&"+"!==e||(e=t[++a]),"0"===e){if(a+1===i)return!0;if("b"===(e=t[++a])){for(a++;a<i;a++)if("_"!==(e=t[a])){if("0"!==e&&"1"!==e)return!1;r=!0}return r&&"_"!==e}if("x"===e){for(a++;a<i;a++)if("_"!==(e=t[a])){if(!(48<=(n=t.charCodeAt(a))&&n<=57||65<=n&&n<=70||97<=n&&n<=102))return!1;r=!0}return r&&"_"!==e}if("o"===e){for(a++;a<i;a++)if("_"!==(e=t[a])){if(!fe(t.charCodeAt(a)))return!1;r=!0}return r&&"_"!==e}}if("_"===e)return!1;for(;a<i;a++)if("_"!==(e=t[a])){if(!ge(t.charCodeAt(a)))return!1;r=!0}return!(!r||"_"===e)},construct:function(t){var e,n=t,i=1;if(-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),"-"!==(e=n[0])&&"+"!==e||("-"===e&&(i=-1),e=(n=n.slice(1))[0]),"0"===n)return 0;if("0"===e){if("b"===n[1])return i*parseInt(n.slice(2),2);if("x"===n[1])return i*parseInt(n.slice(2),16);if("o"===n[1])return i*parseInt(n.slice(2),8)}return i*parseInt(n,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&t%1==0&&!Jt.isNegativeZero(t)},represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),be=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var me=/^[-+]?[0-9]+e/;var ye=new se("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(t){return null!==t&&!(!be.test(t)||"_"===t[t.length-1])},construct:function(t){var e,n;return n="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:n*parseFloat(e,10)},predicate:function(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||Jt.isNegativeZero(t))},represent:function(t,e){var n;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Jt.isNegativeZero(t))return"-0.0";return n=t.toString(10),me.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"}),ve=ue.extend({implicit:[de,he,pe,ye]}),we=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),xe=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");var Re=new se("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(t){return null!==t&&(null!==we.exec(t)||null!==xe.exec(t))},construct:function(t){var e,n,i,a,r,o,s,c,l=0,u=null;if(null===(e=we.exec(t))&&(e=xe.exec(t)),null===e)throw new Error("Date resolve error");if(n=+e[1],i=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(n,i,a));if(r=+e[4],o=+e[5],s=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(u=-u)),c=new Date(Date.UTC(n,i,a,r,o,s,l)),u&&c.setTime(c.getTime()-u),c},instanceOf:Date,represent:function(t){return t.toISOString()}});var _e=new se("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(t){return"<<"===t||null===t}}),ke="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";var Ee=new se("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(t){if(null===t)return!1;var e,n,i=0,a=t.length,r=ke;for(n=0;n<a;n++)if(!((e=r.indexOf(t.charAt(n)))>64)){if(e<0)return!1;i+=6}return i%8==0},construct:function(t){var e,n,i=t.replace(/[\r\n=]/g,""),a=i.length,r=ke,o=0,s=[];for(e=0;e<a;e++)e%4==0&&e&&(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)),o=o<<6|r.indexOf(i.charAt(e));return 0===(n=a%4*6)?(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)):18===n?(s.push(o>>10&255),s.push(o>>2&255)):12===n&&s.push(o>>4&255),new Uint8Array(s)},predicate:function(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)},represent:function(t){var e,n,i="",a=0,r=t.length,o=ke;for(e=0;e<r;e++)e%3==0&&e&&(i+=o[a>>18&63],i+=o[a>>12&63],i+=o[a>>6&63],i+=o[63&a]),a=(a<<8)+t[e];return 0===(n=r%3)?(i+=o[a>>18&63],i+=o[a>>12&63],i+=o[a>>6&63],i+=o[63&a]):2===n?(i+=o[a>>10&63],i+=o[a>>4&63],i+=o[a<<2&63],i+=o[64]):1===n&&(i+=o[a>>2&63],i+=o[a<<4&63],i+=o[64],i+=o[64]),i}}),Ce=Object.prototype.hasOwnProperty,Se=Object.prototype.toString;var Te=new se("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,n,i,a,r,o=[],s=t;for(e=0,n=s.length;e<n;e+=1){if(i=s[e],r=!1,"[object Object]"!==Se.call(i))return!1;for(a in i)if(Ce.call(i,a)){if(r)return!1;r=!0}if(!r)return!1;if(-1!==o.indexOf(a))return!1;o.push(a)}return!0},construct:function(t){return null!==t?t:[]}}),Ae=Object.prototype.toString;var De=new se("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(t){if(null===t)return!0;var e,n,i,a,r,o=t;for(r=new Array(o.length),e=0,n=o.length;e<n;e+=1){if(i=o[e],"[object Object]"!==Ae.call(i))return!1;if(1!==(a=Object.keys(i)).length)return!1;r[e]=[a[0],i[a[0]]]}return!0},construct:function(t){if(null===t)return[];var e,n,i,a,r,o=t;for(r=new Array(o.length),e=0,n=o.length;e<n;e+=1)i=o[e],a=Object.keys(i),r[e]=[a[0],i[a[0]]];return r}}),Ie=Object.prototype.hasOwnProperty;var Le=new se("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(t){if(null===t)return!0;var e,n=t;for(e in n)if(Ie.call(n,e)&&null!==n[e])return!1;return!0},construct:function(t){return null!==t?t:{}}}),Oe=ve.extend({implicit:[Re,_e],explicit:[Ee,Te,De,Le]}),Me=Object.prototype.hasOwnProperty,Ne=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Be=/[\x85\u2028\u2029]/,Pe=/[,\[\]\{\}]/,Fe=/^(?:!|!!|![a-z\-]+!)$/i,je=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function $e(t){return Object.prototype.toString.call(t)}function ze(t){return 10===t||13===t}function He(t){return 9===t||32===t}function Ue(t){return 9===t||32===t||10===t||13===t}function Ve(t){return 44===t||91===t||93===t||123===t||125===t}function qe(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function We(t){return 48===t?"\0":97===t?"\x07":98===t?"\b":116===t||9===t?"\t":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"\x1b":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"\x85":95===t?"\xa0":76===t?"\u2028":80===t?"\u2029":""}function Ye(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var Ge=new Array(256),Ze=new Array(256),Ke=0;Ke<256;Ke++)Ge[Ke]=We(Ke)?1:0,Ze[Ke]=We(Ke);function Xe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||Oe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Je(t,e){var n={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return n.snippet=ae(n),new ee(e,n)}function Qe(t,e){throw Je(t,e)}function tn(t,e){t.onWarning&&t.onWarning.call(null,Je(t,e))}var en={YAML:function(t,e,n){var i,a,r;null!==t.version&&Qe(t,"duplication of %YAML directive"),1!==n.length&&Qe(t,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&Qe(t,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),r=parseInt(i[2],10),1!==a&&Qe(t,"unacceptable YAML version of the document"),t.version=n[0],t.checkLineBreaks=r<2,1!==r&&2!==r&&tn(t,"unsupported YAML version of the document")},TAG:function(t,e,n){var i,a;2!==n.length&&Qe(t,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],Fe.test(i)||Qe(t,"ill-formed tag handle (first argument) of the TAG directive"),Me.call(t.tagMap,i)&&Qe(t,'there is a previously declared suffix for "'+i+'" tag handle'),je.test(a)||Qe(t,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch(r){Qe(t,"tag prefix is malformed: "+a)}t.tagMap[i]=a}};function nn(t,e,n,i){var a,r,o,s;if(e<n){if(s=t.input.slice(e,n),i)for(a=0,r=s.length;a<r;a+=1)9===(o=s.charCodeAt(a))||32<=o&&o<=1114111||Qe(t,"expected valid JSON character");else Ne.test(s)&&Qe(t,"the stream contains non-printable characters");t.result+=s}}function an(t,e,n,i){var a,r,o,s;for(Jt.isObject(n)||Qe(t,"cannot merge mappings; the provided source object is unacceptable"),o=0,s=(a=Object.keys(n)).length;o<s;o+=1)r=a[o],Me.call(e,r)||(e[r]=n[r],i[r]=!0)}function rn(t,e,n,i,a,r,o,s,c){var l,u;if(Array.isArray(a))for(l=0,u=(a=Array.prototype.slice.call(a)).length;l<u;l+=1)Array.isArray(a[l])&&Qe(t,"nested arrays are not supported inside keys"),"object"==typeof a&&"[object Object]"===$e(a[l])&&(a[l]="[object Object]");if("object"==typeof a&&"[object Object]"===$e(a)&&(a="[object Object]"),a=String(a),null===e&&(e={}),"tag:yaml.org,2002:merge"===i)if(Array.isArray(r))for(l=0,u=r.length;l<u;l+=1)an(t,e,r[l],n);else an(t,e,r,n);else t.json||Me.call(n,a)||!Me.call(e,a)||(t.line=o||t.line,t.lineStart=s||t.lineStart,t.position=c||t.position,Qe(t,"duplicated mapping key")),"__proto__"===a?Object.defineProperty(e,a,{configurable:!0,enumerable:!0,writable:!0,value:r}):e[a]=r,delete n[a];return e}function on(t){var e;10===(e=t.input.charCodeAt(t.position))?t.position++:13===e?(t.position++,10===t.input.charCodeAt(t.position)&&t.position++):Qe(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function sn(t,e,n){for(var i=0,a=t.input.charCodeAt(t.position);0!==a;){for(;He(a);)9===a&&-1===t.firstTabInLine&&(t.firstTabInLine=t.position),a=t.input.charCodeAt(++t.position);if(e&&35===a)do{a=t.input.charCodeAt(++t.position)}while(10!==a&&13!==a&&0!==a);if(!ze(a))break;for(on(t),a=t.input.charCodeAt(t.position),i++,t.lineIndent=0;32===a;)t.lineIndent++,a=t.input.charCodeAt(++t.position)}return-1!==n&&0!==i&&t.lineIndent<n&&tn(t,"deficient indentation"),i}function cn(t){var e,n=t.position;return!(45!==(e=t.input.charCodeAt(n))&&46!==e||e!==t.input.charCodeAt(n+1)||e!==t.input.charCodeAt(n+2)||(n+=3,0!==(e=t.input.charCodeAt(n))&&!Ue(e)))}function ln(t,e){1===e?t.result+=" ":e>1&&(t.result+=Jt.repeat("\n",e-1))}function un(t,e){var n,i,a=t.tag,r=t.anchor,o=[],s=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=o),i=t.input.charCodeAt(t.position);0!==i&&(-1!==t.firstTabInLine&&(t.position=t.firstTabInLine,Qe(t,"tab characters must not be used in indentation")),45===i)&&Ue(t.input.charCodeAt(t.position+1));)if(s=!0,t.position++,sn(t,!0,-1)&&t.lineIndent<=e)o.push(null),i=t.input.charCodeAt(t.position);else if(n=t.line,fn(t,e,3,!1,!0),o.push(t.result),sn(t,!0,-1),i=t.input.charCodeAt(t.position),(t.line===n||t.lineIndent>e)&&0!==i)Qe(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break;return!!s&&(t.tag=a,t.anchor=r,t.kind="sequence",t.result=o,!0)}function dn(t){var e,n,i,a,r=!1,o=!1;if(33!==(a=t.input.charCodeAt(t.position)))return!1;if(null!==t.tag&&Qe(t,"duplication of a tag property"),60===(a=t.input.charCodeAt(++t.position))?(r=!0,a=t.input.charCodeAt(++t.position)):33===a?(o=!0,n="!!",a=t.input.charCodeAt(++t.position)):n="!",e=t.position,r){do{a=t.input.charCodeAt(++t.position)}while(0!==a&&62!==a);t.position<t.length?(i=t.input.slice(e,t.position),a=t.input.charCodeAt(++t.position)):Qe(t,"unexpected end of the stream within a verbatim tag")}else{for(;0!==a&&!Ue(a);)33===a&&(o?Qe(t,"tag suffix cannot contain exclamation marks"):(n=t.input.slice(e-1,t.position+1),Fe.test(n)||Qe(t,"named tag handle cannot contain such characters"),o=!0,e=t.position+1)),a=t.input.charCodeAt(++t.position);i=t.input.slice(e,t.position),Pe.test(i)&&Qe(t,"tag suffix cannot contain flow indicator characters")}i&&!je.test(i)&&Qe(t,"tag name cannot contain such characters: "+i);try{i=decodeURIComponent(i)}catch(s){Qe(t,"tag name is malformed: "+i)}return r?t.tag=i:Me.call(t.tagMap,n)?t.tag=t.tagMap[n]+i:"!"===n?t.tag="!"+i:"!!"===n?t.tag="tag:yaml.org,2002:"+i:Qe(t,'undeclared tag handle "'+n+'"'),!0}function hn(t){var e,n;if(38!==(n=t.input.charCodeAt(t.position)))return!1;for(null!==t.anchor&&Qe(t,"duplication of an anchor property"),n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!Ue(n)&&!Ve(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&Qe(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function fn(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g=1,p=!1,b=!1;if(null!==t.listener&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,r=o=s=4===n||3===n,i&&sn(t,!0,-1)&&(p=!0,t.lineIndent>e?g=1:t.lineIndent===e?g=0:t.lineIndent<e&&(g=-1)),1===g)for(;dn(t)||hn(t);)sn(t,!0,-1)?(p=!0,s=r,t.lineIndent>e?g=1:t.lineIndent===e?g=0:t.lineIndent<e&&(g=-1)):s=!1;if(s&&(s=p||a),1!==g&&4!==n||(h=1===n||2===n?e:e+1,f=t.position-t.lineStart,1===g?s&&(un(t,f)||function(t,e,n){var i,a,r,o,s,c,l,u=t.tag,d=t.anchor,h={},f=Object.create(null),g=null,p=null,b=null,m=!1,y=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=h),l=t.input.charCodeAt(t.position);0!==l;){if(m||-1===t.firstTabInLine||(t.position=t.firstTabInLine,Qe(t,"tab characters must not be used in indentation")),i=t.input.charCodeAt(t.position+1),r=t.line,63!==l&&58!==l||!Ue(i)){if(o=t.line,s=t.lineStart,c=t.position,!fn(t,n,2,!1,!0))break;if(t.line===r){for(l=t.input.charCodeAt(t.position);He(l);)l=t.input.charCodeAt(++t.position);if(58===l)Ue(l=t.input.charCodeAt(++t.position))||Qe(t,"a whitespace character is expected after the key-value separator within a block mapping"),m&&(rn(t,h,f,g,p,null,o,s,c),g=p=b=null),y=!0,m=!1,a=!1,g=t.tag,p=t.result;else{if(!y)return t.tag=u,t.anchor=d,!0;Qe(t,"can not read an implicit mapping pair; a colon is missed")}}else{if(!y)return t.tag=u,t.anchor=d,!0;Qe(t,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===l?(m&&(rn(t,h,f,g,p,null,o,s,c),g=p=b=null),y=!0,m=!0,a=!0):m?(m=!1,a=!0):Qe(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,l=i;if((t.line===r||t.lineIndent>e)&&(m&&(o=t.line,s=t.lineStart,c=t.position),fn(t,e,4,!0,a)&&(m?p=t.result:b=t.result),m||(rn(t,h,f,g,p,b,o,s,c),g=p=b=null),sn(t,!0,-1),l=t.input.charCodeAt(t.position)),(t.line===r||t.lineIndent>e)&&0!==l)Qe(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return m&&rn(t,h,f,g,p,null,o,s,c),y&&(t.tag=u,t.anchor=d,t.kind="mapping",t.result=h),y}(t,f,h))||function(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g=!0,p=t.tag,b=t.anchor,m=Object.create(null);if(91===(f=t.input.charCodeAt(t.position)))o=93,l=!1,r=[];else{if(123!==f)return!1;o=125,l=!0,r={}}for(null!==t.anchor&&(t.anchorMap[t.anchor]=r),f=t.input.charCodeAt(++t.position);0!==f;){if(sn(t,!0,e),(f=t.input.charCodeAt(t.position))===o)return t.position++,t.tag=p,t.anchor=b,t.kind=l?"mapping":"sequence",t.result=r,!0;g?44===f&&Qe(t,"expected the node content, but found ','"):Qe(t,"missed comma between flow collection entries"),h=null,s=c=!1,63===f&&Ue(t.input.charCodeAt(t.position+1))&&(s=c=!0,t.position++,sn(t,!0,e)),n=t.line,i=t.lineStart,a=t.position,fn(t,e,1,!1,!0),d=t.tag,u=t.result,sn(t,!0,e),f=t.input.charCodeAt(t.position),!c&&t.line!==n||58!==f||(s=!0,f=t.input.charCodeAt(++t.position),sn(t,!0,e),fn(t,e,1,!1,!0),h=t.result),l?rn(t,r,m,d,u,h,n,i,a):s?r.push(rn(t,null,m,d,u,h,n,i,a)):r.push(u),sn(t,!0,e),44===(f=t.input.charCodeAt(t.position))?(g=!0,f=t.input.charCodeAt(++t.position)):g=!1}Qe(t,"unexpected end of the stream within a flow collection")}(t,h)?b=!0:(o&&function(t,e){var n,i,a,r,o,s=1,c=!1,l=!1,u=e,d=0,h=!1;if(124===(r=t.input.charCodeAt(t.position)))i=!1;else{if(62!==r)return!1;i=!0}for(t.kind="scalar",t.result="";0!==r;)if(43===(r=t.input.charCodeAt(++t.position))||45===r)1===s?s=43===r?3:2:Qe(t,"repeat of a chomping mode identifier");else{if(!((a=48<=(o=r)&&o<=57?o-48:-1)>=0))break;0===a?Qe(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?Qe(t,"repeat of an indentation width identifier"):(u=e+a-1,l=!0)}if(He(r)){do{r=t.input.charCodeAt(++t.position)}while(He(r));if(35===r)do{r=t.input.charCodeAt(++t.position)}while(!ze(r)&&0!==r)}for(;0!==r;){for(on(t),t.lineIndent=0,r=t.input.charCodeAt(t.position);(!l||t.lineIndent<u)&&32===r;)t.lineIndent++,r=t.input.charCodeAt(++t.position);if(!l&&t.lineIndent>u&&(u=t.lineIndent),ze(r))d++;else{if(t.lineIndent<u){3===s?t.result+=Jt.repeat("\n",c?1+d:d):1===s&&c&&(t.result+="\n");break}for(i?He(r)?(h=!0,t.result+=Jt.repeat("\n",c?1+d:d)):h?(h=!1,t.result+=Jt.repeat("\n",d+1)):0===d?c&&(t.result+=" "):t.result+=Jt.repeat("\n",d):t.result+=Jt.repeat("\n",c?1+d:d),c=!0,l=!0,d=0,n=t.position;!ze(r)&&0!==r;)r=t.input.charCodeAt(++t.position);nn(t,n,t.position,!1)}}return!0}(t,h)||function(t,e){var n,i,a;if(39!==(n=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,i=a=t.position;0!==(n=t.input.charCodeAt(t.position));)if(39===n){if(nn(t,i,t.position,!0),39!==(n=t.input.charCodeAt(++t.position)))return!0;i=t.position,t.position++,a=t.position}else ze(n)?(nn(t,i,a,!0),ln(t,sn(t,!1,e)),i=a=t.position):t.position===t.lineStart&&cn(t)?Qe(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);Qe(t,"unexpected end of the stream within a single quoted scalar")}(t,h)||function(t,e){var n,i,a,r,o,s,c;if(34!==(s=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;0!==(s=t.input.charCodeAt(t.position));){if(34===s)return nn(t,n,t.position,!0),t.position++,!0;if(92===s){if(nn(t,n,t.position,!0),ze(s=t.input.charCodeAt(++t.position)))sn(t,!1,e);else if(s<256&&Ge[s])t.result+=Ze[s],t.position++;else if((o=120===(c=s)?2:117===c?4:85===c?8:0)>0){for(a=o,r=0;a>0;a--)(o=qe(s=t.input.charCodeAt(++t.position)))>=0?r=(r<<4)+o:Qe(t,"expected hexadecimal character");t.result+=Ye(r),t.position++}else Qe(t,"unknown escape sequence");n=i=t.position}else ze(s)?(nn(t,n,i,!0),ln(t,sn(t,!1,e)),n=i=t.position):t.position===t.lineStart&&cn(t)?Qe(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}Qe(t,"unexpected end of the stream within a double quoted scalar")}(t,h)?b=!0:!function(t){var e,n,i;if(42!==(i=t.input.charCodeAt(t.position)))return!1;for(i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!Ue(i)&&!Ve(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&Qe(t,"name of an alias node must contain at least one character"),n=t.input.slice(e,t.position),Me.call(t.anchorMap,n)||Qe(t,'unidentified alias "'+n+'"'),t.result=t.anchorMap[n],sn(t,!0,-1),!0}(t)?function(t,e,n){var i,a,r,o,s,c,l,u,d=t.kind,h=t.result;if(Ue(u=t.input.charCodeAt(t.position))||Ve(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(Ue(i=t.input.charCodeAt(t.position+1))||n&&Ve(i)))return!1;for(t.kind="scalar",t.result="",a=r=t.position,o=!1;0!==u;){if(58===u){if(Ue(i=t.input.charCodeAt(t.position+1))||n&&Ve(i))break}else if(35===u){if(Ue(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&cn(t)||n&&Ve(u))break;if(ze(u)){if(s=t.line,c=t.lineStart,l=t.lineIndent,sn(t,!1,-1),t.lineIndent>=e){o=!0,u=t.input.charCodeAt(t.position);continue}t.position=r,t.line=s,t.lineStart=c,t.lineIndent=l;break}}o&&(nn(t,a,r,!1),ln(t,t.line-s),a=r=t.position,o=!1),He(u)||(r=t.position+1),u=t.input.charCodeAt(++t.position)}return nn(t,a,r,!1),!!t.result||(t.kind=d,t.result=h,!1)}(t,h,1===n)&&(b=!0,null===t.tag&&(t.tag="?")):(b=!0,null===t.tag&&null===t.anchor||Qe(t,"alias node should not have any properties")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===g&&(b=s&&un(t,f))),null===t.tag)null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);else if("?"===t.tag){for(null!==t.result&&"scalar"!==t.kind&&Qe(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),c=0,l=t.implicitTypes.length;c<l;c+=1)if((d=t.implicitTypes[c]).resolve(t.result)){t.result=d.construct(t.result),t.tag=d.tag,null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);break}}else if("!"!==t.tag){if(Me.call(t.typeMap[t.kind||"fallback"],t.tag))d=t.typeMap[t.kind||"fallback"][t.tag];else for(d=null,c=0,l=(u=t.typeMap.multi[t.kind||"fallback"]).length;c<l;c+=1)if(t.tag.slice(0,u[c].tag.length)===u[c].tag){d=u[c];break}d||Qe(t,"unknown tag !<"+t.tag+">"),null!==t.result&&d.kind!==t.kind&&Qe(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+d.kind+'", not "'+t.kind+'"'),d.resolve(t.result,t.tag)?(t.result=d.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):Qe(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||b}function gn(t){var e,n,i,a,r=t.position,o=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(a=t.input.charCodeAt(t.position))&&(sn(t,!0,-1),a=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==a));){for(o=!0,a=t.input.charCodeAt(++t.position),e=t.position;0!==a&&!Ue(a);)a=t.input.charCodeAt(++t.position);for(i=[],(n=t.input.slice(e,t.position)).length<1&&Qe(t,"directive name must not be less than one character in length");0!==a;){for(;He(a);)a=t.input.charCodeAt(++t.position);if(35===a){do{a=t.input.charCodeAt(++t.position)}while(0!==a&&!ze(a));break}if(ze(a))break;for(e=t.position;0!==a&&!Ue(a);)a=t.input.charCodeAt(++t.position);i.push(t.input.slice(e,t.position))}0!==a&&on(t),Me.call(en,n)?en[n](t,n,i):tn(t,'unknown document directive "'+n+'"')}sn(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,sn(t,!0,-1)):o&&Qe(t,"directives end mark is expected"),fn(t,t.lineIndent-1,4,!1,!0),sn(t,!0,-1),t.checkLineBreaks&&Be.test(t.input.slice(r,t.position))&&tn(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&cn(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,sn(t,!0,-1)):t.position<t.length-1&&Qe(t,"end of the stream or a document separator is expected")}function pn(t,e){e=e||{},0!==(t=String(t)).length&&(10!==t.charCodeAt(t.length-1)&&13!==t.charCodeAt(t.length-1)&&(t+="\n"),65279===t.charCodeAt(0)&&(t=t.slice(1)));var n=new Xe(t,e),i=t.indexOf("\0");for(-1!==i&&(n.position=i,Qe(n,"null byte is not allowed in input")),n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)gn(n);return n.documents}var bn=ue,mn={loadAll:function(t,e,n){null!==e&&"object"==typeof e&&void 0===n&&(n=e,e=null);var i=pn(t,n);if("function"!=typeof e)return i;for(var a=0,r=i.length;a<r;a+=1)e(i[a])},load:function(t,e){var n=pn(t,e);if(0!==n.length){if(1===n.length)return n[0];throw new ee("expected a single document in the stream, but found more")}}}.load;const yn=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;const vn=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,wn=/\s*%%.*\n/gm,xn={},Rn=function(t,e){t=t.replace(yn,"").replace(vn,"").replace(wn,"\n");for(const[n,{detector:i}]of Object.entries(xn)){if(i(t,e))return n}throw new Error(`No diagram type detected for text: ${t}`)},_n=(...t)=>{for(const{id:e,detector:n,loader:i}of t)kn(e,n,i)},kn=(t,e,n)=>{xn[t]?Dt.error(`Detector with key ${t} already exists`):xn[t]={detector:e,loader:n},Dt.debug(`Detector with key ${t} added${n?" with loader":""}`)},En=function(t,e,n){const{depth:i,clobber:a}=Object.assign({depth:2,clobber:!1},n);return Array.isArray(e)&&!Array.isArray(t)?(e.forEach((e=>En(t,e,n))),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach((e=>{t.includes(e)||t.push(e)})),t):void 0===t||i<=0?null!=t&&"object"==typeof t&&"object"==typeof e?Object.assign(t,e):e:(void 0!==e&&"object"==typeof t&&"object"==typeof e&&Object.keys(e).forEach((n=>{"object"!=typeof e[n]||void 0!==t[n]&&"object"!=typeof t[n]?(a||"object"!=typeof t[n]&&"object"!=typeof e[n])&&(t[n]=e[n]):(void 0===t[n]&&(t[n]=Array.isArray(e[n])?[]:{}),t[n]=En(t[n],e[n],{depth:i-1,clobber:a}))})),t)},Cn=En,Sn={curveBasis:s.$0Z,curveBasisClosed:s.Dts,curveBasisOpen:s.WQY,curveBumpX:s.qpX,curveBumpY:s.u93,curveBundle:s.tFB,curveCardinalClosed:s.OvA,curveCardinalOpen:s.dCK,curveCardinal:s.YY7,curveCatmullRomClosed:s.fGX,curveCatmullRomOpen:s.$m7,curveCatmullRom:s.zgE,curveLinear:s.c_6,curveLinearClosed:s.fxm,curveMonotoneX:s.FdL,curveMonotoneY:s.ak_,curveNatural:s.SxZ,curveStep:s.eA_,curveStepAfter:s.jsv,curveStepBefore:s.iJ},Tn=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,An=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Dn=function(t,e=null){try{const n=new RegExp(`[%]{2}(?![{]${An.source})(?=[}][%]{2}).*\n`,"ig");let i;t=t.trim().replace(n,"").replace(/'/gm,'"'),Dt.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:${t}`);const a=[];for(;null!==(i=Tn.exec(t));)if(i.index===Tn.lastIndex&&Tn.lastIndex++,i&&!e||e&&i[1]&&i[1].match(e)||e&&i[2]&&i[2].match(e)){const t=i[1]?i[1]:i[2],e=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;a.push({type:t,args:e})}return 0===a.length&&a.push({type:t,args:null}),1===a.length?a[0]:a}catch(n){return Dt.error(`ERROR: ${n.message} - Unable to parse directive\n ${null!==e?" type:"+e:""} based on the text:${t}`),{type:null,args:null}}};function In(t,e){if(!t)return e;const n=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return Sn[n]||e}function Ln(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}function On(t){let e="",n="";for(const i of t)void 0!==i&&(i.startsWith("color:")||i.startsWith("text-align:")?n=n+i+";":e=e+i+";");return{style:e,labelStyle:n}}let Mn=0;const Nn=()=>(Mn++,"id-"+Math.random().toString(36).substr(2,12)+"-"+Mn);const Bn=t=>function(t){let e="";const n="0123456789abcdef",i=n.length;for(let a=0;a<t;a++)e+=n.charAt(Math.floor(Math.random()*i));return e}(t.length),Pn=function(t,e){const n=e.text.replace(zt.lineBreakRegex," "),[,i]=Yn(e.fontSize),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.style("text-anchor",e.anchor),a.style("font-family",e.fontFamily),a.style("font-size",i),a.style("font-weight",e.fontWeight),a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class);const r=a.append("tspan");return r.attr("x",e.x+2*e.textMargin),r.attr("fill",e.fill),r.text(n),a},Fn=(0,x.Z)(((t,e,n)=>{if(!t)return t;if(n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},n),zt.lineBreakRegex.test(t))return t;const i=t.split(" "),a=[];let r="";return i.forEach(((t,o)=>{const s=zn(`${t} `,n),c=zn(r,n);if(s>e){const{hyphenatedStrings:i,remainingWord:o}=jn(t,e,"-",n);a.push(r,...i),r=o}else c+s>=e?(a.push(r),r=t):r=[r,t].filter(Boolean).join(" ");o+1===i.length&&a.push(r)})),a.filter((t=>""!==t)).join(n.joinWith)}),((t,e,n)=>`${t}${e}${n.fontSize}${n.fontWeight}${n.fontFamily}${n.joinWith}`)),jn=(0,x.Z)(((t,e,n="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);const a=[...t],r=[];let o="";return a.forEach(((t,s)=>{const c=`${o}${t}`;if(zn(c,i)>=e){const t=s+1,e=a.length===t,i=`${c}${n}`;r.push(e?c:i),o=""}else o=c})),{hyphenatedStrings:r,remainingWord:o}}),((t,e,n="-",i)=>`${t}${e}${n}${i.fontSize}${i.fontWeight}${i.fontFamily}`));function $n(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},e),Hn(t,e).height}function zn(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e),Hn(t,e).width}const Hn=(0,x.Z)(((t,e)=>{e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e);const{fontSize:n,fontFamily:i,fontWeight:a}=e;if(!t)return{width:0,height:0};const[,r]=Yn(n),o=["sans-serif",i],c=t.split(zt.lineBreakRegex),l=[],u=(0,s.Ys)("body");if(!u.remove)return{width:0,height:0,lineHeight:0};const d=u.append("svg");for(const s of o){let t=0;const e={width:0,height:0,lineHeight:0};for(const n of c){const i={x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0};i.text=n;const o=Pn(d,i).style("font-size",r).style("font-weight",a).style("font-family",s),c=(o._groups||o)[0][0].getBBox();e.width=Math.round(Math.max(e.width,c.width)),t=Math.round(c.height),e.height+=t,e.lineHeight=Math.round(Math.max(e.lineHeight,t))}l.push(e)}d.remove();return l[isNaN(l[1].height)||isNaN(l[1].width)||isNaN(l[1].lineHeight)||l[0].height>l[1].height&&l[0].width>l[1].width&&l[0].lineHeight>l[1].lineHeight?0:1]}),((t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`));let Un;const Vn=t=>{if(Dt.debug("directiveSanitizer called with",t),"object"==typeof t&&(t.length?t.forEach((t=>Vn(t))):Object.keys(t).forEach((e=>{Dt.debug("Checking key",e),e.startsWith("__")&&(Dt.debug("sanitize deleting __ option",e),delete t[e]),e.includes("proto")&&(Dt.debug("sanitize deleting proto option",e),delete t[e]),e.includes("constr")&&(Dt.debug("sanitize deleting constr option",e),delete t[e]),e.includes("themeCSS")&&(Dt.debug("sanitizing themeCss option"),t[e]=qn(t[e])),e.includes("fontFamily")&&(Dt.debug("sanitizing fontFamily option"),t[e]=qn(t[e])),e.includes("altFontFamily")&&(Dt.debug("sanitizing altFontFamily option"),t[e]=qn(t[e])),Zt.includes(e)?"object"==typeof t[e]&&(Dt.debug("sanitize deleting object",e),Vn(t[e])):(Dt.debug("sanitize deleting option",e),delete t[e])}))),t.themeVariables){const e=Object.keys(t.themeVariables);for(const n of e){const e=t.themeVariables[n];e&&e.match&&!e.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[n]="")}}Dt.debug("After sanitization",t)},qn=t=>{let e=0,n=0;for(const i of t){if(e<n)return"{ /* ERROR: Unbalanced CSS */ }";"{"===i?e++:"}"===i&&n++}return e!==n?"{ /* ERROR: Unbalanced CSS */ }":t};function Wn(t){return"str"in t}const Yn=t=>{if("number"==typeof t)return[t,t+"px"];const e=parseInt(t,10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},Gn={assignWithDepth:Cn,wrapLabel:Fn,calculateTextHeight:$n,calculateTextWidth:zn,calculateTextDimensions:Hn,detectInit:function(t,e){const n=Dn(t,/(?:init\b)|(?:initialize\b)/);let i={};if(Array.isArray(n)){const t=n.map((t=>t.args));Vn(t),i=Cn(i,[...t])}else i=n.args;if(i){let n=Rn(t,e);["config"].forEach((t=>{void 0!==i[t]&&("flowchart-v2"===n&&(n="flowchart"),i[n]=i[t],delete i[t])}))}return i},detectDirective:Dn,isSubstringInArray:function(t,e){for(const[n,i]of e.entries())if(i.match(t))return n;return-1},interpolateToCurve:In,calcLabelPosition:function(t){return 1===t.length?t[0]:function(t){let e,n=0;t.forEach((t=>{n+=Ln(t,e),e=t}));let i,a=n/2;return e=void 0,t.forEach((t=>{if(e&&!i){const n=Ln(t,e);if(n<a)a-=n;else{const r=a/n;r<=0&&(i=e),r>=1&&(i={x:t.x,y:t.y}),r>0&&r<1&&(i={x:(1-r)*e.x+r*t.x,y:(1-r)*e.y+r*t.y})}}e=t})),i}(t)},calcCardinalityPosition:(t,e,n)=>{let i;Dt.info(`our points ${JSON.stringify(e)}`),e[0]!==n&&(e=e.reverse());let a,r=25;i=void 0,e.forEach((t=>{if(i&&!a){const e=Ln(t,i);if(e<r)r-=e;else{const n=r/e;n<=0&&(a=i),n>=1&&(a={x:t.x,y:t.y}),n>0&&n<1&&(a={x:(1-n)*i.x+n*t.x,y:(1-n)*i.y+n*t.y})}}i=t}));const o=t?10:5,s=Math.atan2(e[0].y-a.y,e[0].x-a.x),c={x:0,y:0};return c.x=Math.sin(s)*o+(e[0].x+a.x)/2,c.y=-Math.cos(s)*o+(e[0].y+a.y)/2,c},calcTerminalLabelPosition:function(t,e,n){let i,a=JSON.parse(JSON.stringify(n));Dt.info("our points",a),"start_left"!==e&&"start_right"!==e&&(a=a.reverse()),a.forEach((t=>{i=t}));let r,o=25+t;i=void 0,a.forEach((t=>{if(i&&!r){const e=Ln(t,i);if(e<o)o-=e;else{const n=o/e;n<=0&&(r=i),n>=1&&(r={x:t.x,y:t.y}),n>0&&n<1&&(r={x:(1-n)*i.x+n*t.x,y:(1-n)*i.y+n*t.y})}}i=t}));const s=10+.5*t,c=Math.atan2(a[0].y-r.y,a[0].x-r.x),l={x:0,y:0};return l.x=Math.sin(c)*s+(a[0].x+r.x)/2,l.y=-Math.cos(c)*s+(a[0].y+r.y)/2,"start_left"===e&&(l.x=Math.sin(c+Math.PI)*s+(a[0].x+r.x)/2,l.y=-Math.cos(c+Math.PI)*s+(a[0].y+r.y)/2),"end_right"===e&&(l.x=Math.sin(c-Math.PI)*s+(a[0].x+r.x)/2-5,l.y=-Math.cos(c-Math.PI)*s+(a[0].y+r.y)/2-5),"end_left"===e&&(l.x=Math.sin(c)*s+(a[0].x+r.x)/2-5,l.y=-Math.cos(c)*s+(a[0].y+r.y)/2-5),l},formatUrl:function(t,e){const n=t.trim();if(n)return"loose"!==e.securityLevel?(0,o.Nm)(n):n},getStylesFromArray:On,generateId:Nn,random:Bn,runFunc:(t,...e)=>{const n=t.split("."),i=n.length-1,a=n[i];let r=window;for(let o=0;o<i;o++)if(r=r[n[o]],!r)return;r[a](...e)},entityDecode:function(t){return Un=Un||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),Un.innerHTML=t,unescape(Un.textContent)},initIdGenerator:class{constructor(t,e){this.deterministic=t,this.seed=e,this.count=e?e.length:0}next(){return this.deterministic?this.count++:Date.now()}},directiveSanitizer:Vn,sanitizeCss:qn,insertTitle:(t,e,n,i)=>{if(!i)return;const a=t.node().getBBox();t.append("text").text(i).attr("x",a.x+a.width/2).attr("y",-n).attr("class",e)},parseFontSize:Yn},Zn="9.4.3",Kn=Object.freeze(Kt);let Xn,Jn=Cn({},Kn),Qn=[],ti=Cn({},Kn);const ei=(t,e)=>{let n=Cn({},t),i={};for(const a of e)ri(a),i=Cn(i,a);if(n=Cn(n,i),i.theme&&i.theme in Wt){const t=Cn({},Xn),e=Cn(t.themeVariables||{},i.themeVariables);n.theme&&n.theme in Wt&&(n.themeVariables=Wt[n.theme].getThemeVariables(e))}return ti=n,ui(ti),ti},ni=()=>Cn({},Jn),ii=t=>(ui(t),Cn(ti,t),ai()),ai=()=>Cn({},ti),ri=t=>{["secure",...Jn.secure??[]].forEach((e=>{void 0!==t[e]&&(Dt.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])})),Object.keys(t).forEach((e=>{0===e.indexOf("__")&&delete t[e]})),Object.keys(t).forEach((e=>{"string"==typeof t[e]&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],"object"==typeof t[e]&&ri(t[e])}))},oi=t=>{t.fontFamily&&(t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily})),Qn.push(t),ei(Jn,Qn)},si=(t=Jn)=>{Qn=[],ei(t,Qn)};var ci=(t=>(t.LAZY_LOAD_DEPRECATED="The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.",t))(ci||{});const li={},ui=t=>{var e;t&&((t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&(li[e="LAZY_LOAD_DEPRECATED"]||(Dt.warn(ci[e]),li[e]=!0)))},di=function(t,e,n,i){const a=function(t,e,n){let i=new Map;return n?(i.set("width","100%"),i.set("style",`max-width: ${e}px;`)):(i.set("height",t),i.set("width",e)),i}(e,n,i);!function(t,e){for(let n of e)t.attr(n[0],n[1])}(t,a)},hi=function(t,e,n,i){const a=e.node().getBBox(),r=a.width,o=a.height;Dt.info(`SVG bounds: ${r}x${o}`,a);let s=0,c=0;Dt.info(`Graph bounds: ${s}x${c}`,t),s=r+2*n,c=o+2*n,Dt.info(`Calculated bounds: ${s}x${c}`),di(e,c,s,i);const l=`${a.x-n} ${a.y-n} ${a.width+2*n} ${a.height+2*n}`;e.attr("viewBox",l)},fi=t=>`g.classGroup text {\n fill: ${t.nodeBorder};\n fill: ${t.classText};\n stroke: none;\n font-family: ${t.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${t.classText};\n}\n.edgeLabel .label rect {\n fill: ${t.mainBkg};\n}\n.label text {\n fill: ${t.classText};\n}\n.edgeLabel .label span {\n background: ${t.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${t.nodeBorder};\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${t.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${t.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${t.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n.dotted-line{\n stroke-dasharray: 1 2;\n}\n\n#compositionStart, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopStart, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopEnd, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n.classTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`,gi=t=>`\n .entityBox {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n }\n\n .attributeBoxOdd {\n fill: ${t.attributeBackgroundColorOdd};\n stroke: ${t.nodeBorder};\n }\n\n .attributeBoxEven {\n fill: ${t.attributeBackgroundColorEven};\n stroke: ${t.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${t.tertiaryColor};\n opacity: 0.7;\n background-color: ${t.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .relationshipLine {\n stroke: ${t.lineColor};\n }\n\n .entityTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n } \n`,pi=()=>"",bi=t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n .cluster-label text {\n fill: ${t.titleColor};\n }\n .cluster-label span {\n color: ${t.titleColor};\n }\n\n .label text,span {\n fill: ${t.nodeTextColor||t.textColor};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${t.clusterBkg};\n stroke: ${t.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n .cluster span {\n color: ${t.titleColor};\n }\n /* .cluster div {\n color: ${t.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n`,mi=t=>`\n .mermaid-main-font {\n font-family: "trebuchet ms", verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n .exclude-range {\n fill: ${t.excludeBkgColor};\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ${t.sectionBkgColor};\n }\n\n .section2 {\n fill: ${t.sectionBkgColor2};\n }\n\n .section1,\n .section3 {\n fill: ${t.altSectionBkgColor};\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle1 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle2 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle3 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle {\n text-anchor: start;\n // font-size: ${t.ganttFontSize};\n // text-height: 14px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ${t.gridColor};\n opacity: 0.8;\n shape-rendering: crispEdges;\n text {\n font-family: ${t.fontFamily};\n fill: ${t.textColor};\n }\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ${t.todayLineColor};\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n\n // .taskText:not([font-size]) {\n // font-size: ${t.ganttFontSize};\n // }\n\n .taskTextOutsideRight {\n fill: ${t.taskTextDarkColor};\n text-anchor: start;\n // font-size: ${t.ganttFontSize};\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n .taskTextOutsideLeft {\n fill: ${t.taskTextDarkColor};\n text-anchor: end;\n // font-size: ${t.ganttFontSize};\n }\n\n /* Special case clickable */\n .task.clickable {\n cursor: pointer;\n }\n .taskText.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ${t.taskTextColor};\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ${t.taskBkgColor};\n stroke: ${t.taskBorderColor};\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ${t.taskTextOutsideColor};\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ${t.taskTextOutsideColor};\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ${t.activeTaskBkgColor};\n stroke: ${t.activeTaskBorderColor};\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ${t.doneTaskBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.critBkgColor};\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.activeTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor} ;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n`,yi=()=>"",vi=t=>`\n .pieCircle{\n stroke: ${t.pieStrokeColor};\n stroke-width : ${t.pieStrokeWidth};\n opacity : ${t.pieOpacity};\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ${t.pieTitleTextSize};\n fill: ${t.pieTitleTextColor};\n font-family: ${t.fontFamily};\n }\n .slice {\n font-family: ${t.fontFamily};\n fill: ${t.pieSectionTextColor};\n font-size:${t.pieSectionTextSize};\n // fill: white;\n }\n .legend text {\n fill: ${t.pieLegendTextColor};\n font-family: ${t.fontFamily};\n font-size: ${t.pieLegendTextSize};\n }\n`,wi=t=>`\n\n marker {\n fill: ${t.relationColor};\n stroke: ${t.relationColor};\n }\n\n marker.cross {\n stroke: ${t.lineColor};\n }\n\n svg {\n font-family: ${t.fontFamily};\n font-size: ${t.fontSize};\n }\n\n .reqBox {\n fill: ${t.requirementBackground};\n fill-opacity: 100%;\n stroke: ${t.requirementBorderColor};\n stroke-width: ${t.requirementBorderSize};\n }\n \n .reqTitle, .reqLabel{\n fill: ${t.requirementTextColor};\n }\n .reqLabelBox {\n fill: ${t.relationLabelBackground};\n fill-opacity: 100%;\n }\n\n .req-title-line {\n stroke: ${t.requirementBorderColor};\n stroke-width: ${t.requirementBorderSize};\n }\n .relationshipLine {\n stroke: ${t.relationColor};\n stroke-width: 1;\n }\n .relationshipLabel {\n fill: ${t.relationLabelColor};\n }\n\n`,xi=t=>`.actor {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n\n text.actor > tspan {\n fill: ${t.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${t.actorLineColor};\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${t.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${t.signalColor};\n }\n\n #arrowhead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .sequenceNumber {\n fill: ${t.sequenceNumberColor};\n }\n\n #sequencenumber {\n fill: ${t.signalColor};\n }\n\n #crosshead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .messageText {\n fill: ${t.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBkgColor};\n }\n\n .labelText, .labelText > tspan {\n fill: ${t.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${t.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${t.noteTextColor};\n stroke: none;\n }\n\n .activation0 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation1 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation2 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${t.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n .actor-man circle, line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n stroke-width: 2px;\n }\n`,Ri=t=>`\ndefs #statediagram-barbEnd {\n fill: ${t.transitionColor};\n stroke: ${t.transitionColor};\n }\ng.stateGroup text {\n fill: ${t.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${t.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${t.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${t.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${t.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n\n text {\n fill: ${t.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${t.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel .label text {\n fill: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${t.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${t.innerEndBackground};\n stroke: ${t.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${t.compositeBackground||t.background};\n // stroke: ${t.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${t.stateBkg||t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${t.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${t.compositeTitleBackground};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${t.stateLabelColor};\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${t.stateBorder||t.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${t.compositeBackground||t.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${t.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${t.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${t.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${t.lineColor};\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`,_i=t=>`.label {\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n color: ${t.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${t.textColor}\n }\n\n .legend {\n fill: ${t.textColor};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${t.textColor}\n }\n\n .face {\n ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"};\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ${t.fillType0?`fill: ${t.fillType0}`:""};\n }\n .task-type-1, .section-type-1 {\n ${t.fillType0?`fill: ${t.fillType1}`:""};\n }\n .task-type-2, .section-type-2 {\n ${t.fillType0?`fill: ${t.fillType2}`:""};\n }\n .task-type-3, .section-type-3 {\n ${t.fillType0?`fill: ${t.fillType3}`:""};\n }\n .task-type-4, .section-type-4 {\n ${t.fillType0?`fill: ${t.fillType4}`:""};\n }\n .task-type-5, .section-type-5 {\n ${t.fillType0?`fill: ${t.fillType5}`:""};\n }\n .task-type-6, .section-type-6 {\n ${t.fillType0?`fill: ${t.fillType6}`:""};\n }\n .task-type-7, .section-type-7 {\n ${t.fillType0?`fill: ${t.fillType7}`:""};\n }\n\n .actor-0 {\n ${t.actor0?`fill: ${t.actor0}`:""};\n }\n .actor-1 {\n ${t.actor1?`fill: ${t.actor1}`:""};\n }\n .actor-2 {\n ${t.actor2?`fill: ${t.actor2}`:""};\n }\n .actor-3 {\n ${t.actor3?`fill: ${t.actor3}`:""};\n }\n .actor-4 {\n ${t.actor4?`fill: ${t.actor4}`:""};\n }\n .actor-5 {\n ${t.actor5?`fill: ${t.actor5}`:""};\n }\n`,ki=t=>`.person {\n stroke: ${t.personBorder};\n fill: ${t.personBkg};\n }\n`,Ei={flowchart:bi,"flowchart-v2":bi,sequence:xi,gantt:mi,classDiagram:fi,"classDiagram-v2":fi,class:fi,stateDiagram:Ri,state:Ri,info:yi,pie:vi,er:gi,error:pi,journey:_i,requirement:wi,c4:ki},Ci=(t,e,n)=>{let i="";return t in Ei&&Ei[t]?i=Ei[t](n):Dt.warn(`No theme found for ${t}`),` & {\n font-family: ${n.fontFamily};\n font-size: ${n.fontSize};\n fill: ${n.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${n.errorBkgColor};\n }\n & .error-text {\n fill: ${n.errorTextColor};\n stroke: ${n.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 2px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${n.lineColor};\n stroke: ${n.lineColor};\n }\n & .marker.cross {\n stroke: ${n.lineColor};\n }\n\n & svg {\n font-family: ${n.fontFamily};\n font-size: ${n.fontSize};\n }\n\n ${i}\n\n ${e}\n`};let Si="",Ti="",Ai="";const Di=t=>Nt(t,ai()),Ii=function(){Si="",Ai="",Ti=""},Li=function(t){Si=Di(t).replace(/^\s+/g,"")},Oi=function(){return Si||Ti},Mi=function(t){Ai=Di(t).replace(/\n\s+/g,"\n")},Ni=function(){return Ai},Bi=function(t){Ti=Di(t)},Pi=function(){return Ti},Fi={setAccTitle:Li,getAccTitle:Oi,setDiagramTitle:Bi,getDiagramTitle:Pi,getAccDescription:Ni,setAccDescription:Mi,clear:Ii},ji=Object.freeze(Object.defineProperty({__proto__:null,clear:Ii,default:Fi,getAccDescription:Ni,getAccTitle:Oi,getDiagramTitle:Pi,setAccDescription:Mi,setAccTitle:Li,setDiagramTitle:Bi},Symbol.toStringTag,{value:"Module"}));let $i={};const zi=function(t,e,n,i){Dt.debug("parseDirective is being called",e,n,i);try{if(void 0!==e)switch(e=e.trim(),n){case"open_directive":$i={};break;case"type_directive":if(!$i)throw new Error("currentDirective is undefined");$i.type=e.toLowerCase();break;case"arg_directive":if(!$i)throw new Error("currentDirective is undefined");$i.args=JSON.parse(e);break;case"close_directive":Hi(t,$i,i),$i=void 0}}catch(a){Dt.error(`Error while rendering sequenceDiagram directive: ${e} jison context: ${n}`),Dt.error(a.message)}},Hi=function(t,e,n){switch(Dt.info(`Directive type=${e.type} with args:`,e.args),e.type){case"init":case"initialize":["config"].forEach((t=>{void 0!==e.args[t]&&("flowchart-v2"===n&&(n="flowchart"),e.args[n]=e.args[t],delete e.args[t])})),Dt.info("sanitize in handleDirective",e.args),Vn(e.args),Dt.info("sanitize in handleDirective (done)",e.args),oi(e.args);break;case"wrap":case"nowrap":t&&t.setWrap&&t.setWrap("wrap"===e.type);break;case"themeCss":Dt.warn("themeCss encountered");break;default:Dt.warn(`Unhandled directive: source: '%%{${e.type}: ${JSON.stringify(e.args?e.args:{})}}%%`,e)}},Ui=Dt,Vi=It,qi=ai,Wi=t=>Nt(t,qi()),Yi=hi,Gi=(t,e,n,i)=>zi(t,e,n,i),Zi={},Ki=(t,e,n)=>{if(Zi[t])throw new Error(`Diagram ${t} already registered.`);var i,a;Zi[t]=e,n&&kn(t,n),i=t,a=e.styles,Ei[i]=a,e.injectUtils&&e.injectUtils(Ui,Vi,qi,Wi,Yi,ji,Gi)},Xi=t=>{if(t in Zi)return Zi[t];throw new Error(`Diagram ${t} not found.`)};var Ji=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,4],i=[1,7],a=[1,5],r=[1,9],o=[1,6],s=[2,6],c=[1,16],l=[6,8,14,20,22,24,25,27,29,32,37,40,50,55],u=[8,14,20,22,24,25,27,29,32,37,40],d=[8,13,14,20,22,24,25,27,29,32,37,40],h=[1,26],f=[6,8,14,50,55],g=[8,14,55],p=[1,53],b=[1,52],m=[8,14,30,33,35,38,55],y=[1,67],v=[1,68],w=[1,69],x=[8,14,33,35,42,55],R={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,GG:6,document:7,EOF:8,":":9,DIR:10,options:11,body:12,OPT:13,NL:14,line:15,statement:16,commitStatement:17,mergeStatement:18,cherryPickStatement:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,branchStatement:26,CHECKOUT:27,ref:28,BRANCH:29,ORDER:30,NUM:31,CHERRY_PICK:32,COMMIT_ID:33,STR:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,openDirective:46,typeDirective:47,closeDirective:48,argDirective:49,open_directive:50,type_directive:51,arg_directive:52,close_directive:53,ID:54,";":55,$accept:0,$end:1},terminals_:{2:"error",6:"GG",8:"EOF",9:":",10:"DIR",13:"OPT",14:"NL",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"CHECKOUT",29:"BRANCH",30:"ORDER",31:"NUM",32:"CHERRY_PICK",33:"COMMIT_ID",34:"STR",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",50:"open_directive",51:"type_directive",52:"arg_directive",53:"close_directive",54:"ID",55:";"},productions_:[0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[19,5],[19,5],[19,5],[19,5],[18,2],[18,4],[18,4],[18,4],[18,6],[18,6],[18,6],[18,6],[18,6],[18,6],[18,8],[18,8],[18,8],[18,8],[18,8],[18,8],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[41,0],[41,1],[39,1],[39,1],[39,1],[5,3],[5,5],[46,1],[47,1],[49,1],[48,1],[28,1],[28,1],[4,1],[4,1],[4,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 3:return r[s];case 4:return r[s-1];case 5:return i.setDirection(r[s-3]),r[s-1];case 7:i.setOptions(r[s-1]),this.$=r[s];break;case 8:r[s-1]+=r[s],this.$=r[s-1];break;case 10:this.$=[];break;case 11:r[s-1].push(r[s]),this.$=r[s-1];break;case 12:this.$=r[s-1];break;case 17:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 20:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 22:i.checkout(r[s]);break;case 23:i.branch(r[s]);break;case 24:i.branch(r[s-2],r[s]);break;case 25:i.cherryPick(r[s],"",void 0);break;case 26:i.cherryPick(r[s-2],"",r[s]);break;case 27:case 29:i.cherryPick(r[s-2],"","");break;case 28:i.cherryPick(r[s],"",r[s-2]);break;case 30:i.merge(r[s],"","","");break;case 31:i.merge(r[s-2],r[s],"","");break;case 32:i.merge(r[s-2],"",r[s],"");break;case 33:i.merge(r[s-2],"","",r[s]);break;case 34:i.merge(r[s-4],r[s],"",r[s-2]);break;case 35:i.merge(r[s-4],"",r[s],r[s-2]);break;case 36:i.merge(r[s-4],"",r[s-2],r[s]);break;case 37:i.merge(r[s-4],r[s-2],r[s],"");break;case 38:i.merge(r[s-4],r[s-2],"",r[s]);break;case 39:i.merge(r[s-4],r[s],r[s-2],"");break;case 40:i.merge(r[s-6],r[s-4],r[s-2],r[s]);break;case 41:i.merge(r[s-6],r[s],r[s-4],r[s-2]);break;case 42:i.merge(r[s-6],r[s-4],r[s],r[s-2]);break;case 43:i.merge(r[s-6],r[s-2],r[s-4],r[s]);break;case 44:i.merge(r[s-6],r[s],r[s-2],r[s-4]);break;case 45:i.merge(r[s-6],r[s-2],r[s],r[s-4]);break;case 46:i.commit(r[s]);break;case 47:i.commit("","",i.commitType.NORMAL,r[s]);break;case 48:i.commit("","",r[s],"");break;case 49:i.commit("","",r[s],r[s-2]);break;case 50:i.commit("","",r[s-2],r[s]);break;case 51:i.commit("",r[s],i.commitType.NORMAL,"");break;case 52:i.commit("",r[s-2],i.commitType.NORMAL,r[s]);break;case 53:i.commit("",r[s],i.commitType.NORMAL,r[s-2]);break;case 54:i.commit("",r[s-2],r[s],"");break;case 55:i.commit("",r[s],r[s-2],"");break;case 56:i.commit("",r[s-4],r[s-2],r[s]);break;case 57:i.commit("",r[s-4],r[s],r[s-2]);break;case 58:i.commit("",r[s-2],r[s-4],r[s]);break;case 59:i.commit("",r[s],r[s-4],r[s-2]);break;case 60:i.commit("",r[s],r[s-2],r[s-4]);break;case 61:i.commit("",r[s-2],r[s],r[s-4]);break;case 62:i.commit(r[s],"",i.commitType.NORMAL,"");break;case 63:i.commit(r[s],"",i.commitType.NORMAL,r[s-2]);break;case 64:i.commit(r[s-2],"",i.commitType.NORMAL,r[s]);break;case 65:i.commit(r[s-2],"",r[s],"");break;case 66:i.commit(r[s],"",r[s-2],"");break;case 67:i.commit(r[s],r[s-2],i.commitType.NORMAL,"");break;case 68:i.commit(r[s-2],r[s],i.commitType.NORMAL,"");break;case 69:i.commit(r[s-4],"",r[s-2],r[s]);break;case 70:i.commit(r[s-4],"",r[s],r[s-2]);break;case 71:i.commit(r[s-2],"",r[s-4],r[s]);break;case 72:i.commit(r[s],"",r[s-4],r[s-2]);break;case 73:i.commit(r[s],"",r[s-2],r[s-4]);break;case 74:i.commit(r[s-2],"",r[s],r[s-4]);break;case 75:i.commit(r[s-4],r[s],r[s-2],"");break;case 76:i.commit(r[s-4],r[s-2],r[s],"");break;case 77:i.commit(r[s-2],r[s],r[s-4],"");break;case 78:i.commit(r[s],r[s-2],r[s-4],"");break;case 79:i.commit(r[s],r[s-4],r[s-2],"");break;case 80:i.commit(r[s-2],r[s-4],r[s],"");break;case 81:i.commit(r[s-4],r[s],i.commitType.NORMAL,r[s-2]);break;case 82:i.commit(r[s-4],r[s-2],i.commitType.NORMAL,r[s]);break;case 83:i.commit(r[s-2],r[s],i.commitType.NORMAL,r[s-4]);break;case 84:i.commit(r[s],r[s-2],i.commitType.NORMAL,r[s-4]);break;case 85:i.commit(r[s],r[s-4],i.commitType.NORMAL,r[s-2]);break;case 86:i.commit(r[s-2],r[s-4],i.commitType.NORMAL,r[s]);break;case 87:i.commit(r[s-6],r[s-4],r[s-2],r[s]);break;case 88:i.commit(r[s-6],r[s-4],r[s],r[s-2]);break;case 89:i.commit(r[s-6],r[s-2],r[s-4],r[s]);break;case 90:i.commit(r[s-6],r[s],r[s-4],r[s-2]);break;case 91:i.commit(r[s-6],r[s-2],r[s],r[s-4]);break;case 92:i.commit(r[s-6],r[s],r[s-2],r[s-4]);break;case 93:i.commit(r[s-4],r[s-6],r[s-2],r[s]);break;case 94:i.commit(r[s-4],r[s-6],r[s],r[s-2]);break;case 95:i.commit(r[s-2],r[s-6],r[s-4],r[s]);break;case 96:i.commit(r[s],r[s-6],r[s-4],r[s-2]);break;case 97:i.commit(r[s-2],r[s-6],r[s],r[s-4]);break;case 98:i.commit(r[s],r[s-6],r[s-2],r[s-4]);break;case 99:i.commit(r[s],r[s-4],r[s-2],r[s-6]);break;case 100:i.commit(r[s-2],r[s-4],r[s],r[s-6]);break;case 101:i.commit(r[s],r[s-2],r[s-4],r[s-6]);break;case 102:i.commit(r[s-2],r[s],r[s-4],r[s-6]);break;case 103:i.commit(r[s-4],r[s-2],r[s],r[s-6]);break;case 104:i.commit(r[s-4],r[s],r[s-2],r[s-6]);break;case 105:i.commit(r[s-2],r[s-4],r[s-6],r[s]);break;case 106:i.commit(r[s],r[s-4],r[s-6],r[s-2]);break;case 107:i.commit(r[s-2],r[s],r[s-6],r[s-4]);break;case 108:i.commit(r[s],r[s-2],r[s-6],r[s-4]);break;case 109:i.commit(r[s-4],r[s-2],r[s-6],r[s]);break;case 110:i.commit(r[s-4],r[s],r[s-6],r[s-2]);break;case 111:this.$="";break;case 112:this.$=r[s];break;case 113:this.$=i.commitType.NORMAL;break;case 114:this.$=i.commitType.REVERSE;break;case 115:this.$=i.commitType.HIGHLIGHT;break;case 118:i.parseDirective("%%{","open_directive");break;case 119:i.parseDirective(r[s],"type_directive");break;case 120:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 121:i.parseDirective("}%%","close_directive","gitGraph")}},table:[{3:1,4:2,5:3,6:n,8:i,14:a,46:8,50:r,55:o},{1:[3]},{3:10,4:2,5:3,6:n,8:i,14:a,46:8,50:r,55:o},{3:11,4:2,5:3,6:n,8:i,14:a,46:8,50:r,55:o},{7:12,8:s,9:[1,13],10:[1,14],11:15,14:c},e(l,[2,124]),e(l,[2,125]),e(l,[2,126]),{47:17,51:[1,18]},{51:[2,118]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:s,11:15,14:c},{9:[1,21]},e(u,[2,10],{12:22,13:[1,23]}),e(d,[2,9]),{9:[1,25],48:24,53:h},e([9,53],[2,119]),{1:[2,3]},{8:[1,27]},{7:28,8:s,11:15,14:c},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],37:[1,42],40:[1,41]},e(d,[2,8]),e(f,[2,116]),{49:45,52:[1,46]},e(f,[2,121]),{1:[2,4]},{8:[1,47]},e(u,[2,11]),{4:48,8:i,14:a,55:o},e(u,[2,13]),e(g,[2,14]),e(g,[2,15]),e(g,[2,16]),{21:[1,49]},{23:[1,50]},e(g,[2,19]),e(g,[2,20]),e(g,[2,21]),{28:51,34:p,54:b},e(g,[2,111],{41:54,33:[1,57],34:[1,59],35:[1,55],38:[1,56],42:[1,58]}),{28:60,34:p,54:b},{33:[1,61],35:[1,62]},{28:63,34:p,54:b},{48:64,53:h},{53:[2,120]},{1:[2,5]},e(u,[2,12]),e(g,[2,17]),e(g,[2,18]),e(g,[2,22]),e(m,[2,122]),e(m,[2,123]),e(g,[2,46]),{34:[1,65]},{39:66,43:y,44:v,45:w},{34:[1,70]},{34:[1,71]},e(g,[2,112]),e(g,[2,30],{33:[1,72],35:[1,74],38:[1,73]}),{34:[1,75]},{34:[1,76],36:[1,77]},e(g,[2,23],{30:[1,78]}),e(f,[2,117]),e(g,[2,47],{33:[1,80],38:[1,79],42:[1,81]}),e(g,[2,48],{33:[1,83],35:[1,82],42:[1,84]}),e(x,[2,113]),e(x,[2,114]),e(x,[2,115]),e(g,[2,51],{35:[1,85],38:[1,86],42:[1,87]}),e(g,[2,62],{33:[1,90],35:[1,88],38:[1,89]}),{34:[1,91]},{39:92,43:y,44:v,45:w},{34:[1,93]},e(g,[2,25],{35:[1,94]}),{33:[1,95]},{33:[1,96]},{31:[1,97]},{39:98,43:y,44:v,45:w},{34:[1,99]},{34:[1,100]},{34:[1,101]},{34:[1,102]},{34:[1,103]},{34:[1,104]},{39:105,43:y,44:v,45:w},{34:[1,106]},{34:[1,107]},{39:108,43:y,44:v,45:w},{34:[1,109]},e(g,[2,31],{35:[1,111],38:[1,110]}),e(g,[2,32],{33:[1,113],35:[1,112]}),e(g,[2,33],{33:[1,114],38:[1,115]}),{34:[1,116],36:[1,117]},{34:[1,118]},{34:[1,119]},e(g,[2,24]),e(g,[2,49],{33:[1,120],42:[1,121]}),e(g,[2,53],{38:[1,122],42:[1,123]}),e(g,[2,63],{33:[1,125],38:[1,124]}),e(g,[2,50],{33:[1,126],42:[1,127]}),e(g,[2,55],{35:[1,128],42:[1,129]}),e(g,[2,66],{33:[1,131],35:[1,130]}),e(g,[2,52],{38:[1,132],42:[1,133]}),e(g,[2,54],{35:[1,134],42:[1,135]}),e(g,[2,67],{35:[1,137],38:[1,136]}),e(g,[2,64],{33:[1,139],38:[1,138]}),e(g,[2,65],{33:[1,141],35:[1,140]}),e(g,[2,68],{35:[1,143],38:[1,142]}),{39:144,43:y,44:v,45:w},{34:[1,145]},{34:[1,146]},{34:[1,147]},{34:[1,148]},{39:149,43:y,44:v,45:w},e(g,[2,26]),e(g,[2,27]),e(g,[2,28]),e(g,[2,29]),{34:[1,150]},{34:[1,151]},{39:152,43:y,44:v,45:w},{34:[1,153]},{39:154,43:y,44:v,45:w},{34:[1,155]},{34:[1,156]},{34:[1,157]},{34:[1,158]},{34:[1,159]},{34:[1,160]},{34:[1,161]},{39:162,43:y,44:v,45:w},{34:[1,163]},{34:[1,164]},{34:[1,165]},{39:166,43:y,44:v,45:w},{34:[1,167]},{39:168,43:y,44:v,45:w},{34:[1,169]},{34:[1,170]},{34:[1,171]},{39:172,43:y,44:v,45:w},{34:[1,173]},e(g,[2,37],{35:[1,174]}),e(g,[2,38],{38:[1,175]}),e(g,[2,36],{33:[1,176]}),e(g,[2,39],{35:[1,177]}),e(g,[2,34],{38:[1,178]}),e(g,[2,35],{33:[1,179]}),e(g,[2,60],{42:[1,180]}),e(g,[2,73],{33:[1,181]}),e(g,[2,61],{42:[1,182]}),e(g,[2,84],{38:[1,183]}),e(g,[2,74],{33:[1,184]}),e(g,[2,83],{38:[1,185]}),e(g,[2,59],{42:[1,186]}),e(g,[2,72],{33:[1,187]}),e(g,[2,58],{42:[1,188]}),e(g,[2,78],{35:[1,189]}),e(g,[2,71],{33:[1,190]}),e(g,[2,77],{35:[1,191]}),e(g,[2,57],{42:[1,192]}),e(g,[2,85],{38:[1,193]}),e(g,[2,56],{42:[1,194]}),e(g,[2,79],{35:[1,195]}),e(g,[2,80],{35:[1,196]}),e(g,[2,86],{38:[1,197]}),e(g,[2,70],{33:[1,198]}),e(g,[2,81],{38:[1,199]}),e(g,[2,69],{33:[1,200]}),e(g,[2,75],{35:[1,201]}),e(g,[2,76],{35:[1,202]}),e(g,[2,82],{38:[1,203]}),{34:[1,204]},{39:205,43:y,44:v,45:w},{34:[1,206]},{34:[1,207]},{39:208,43:y,44:v,45:w},{34:[1,209]},{34:[1,210]},{34:[1,211]},{34:[1,212]},{39:213,43:y,44:v,45:w},{34:[1,214]},{39:215,43:y,44:v,45:w},{34:[1,216]},{34:[1,217]},{34:[1,218]},{34:[1,219]},{34:[1,220]},{34:[1,221]},{34:[1,222]},{39:223,43:y,44:v,45:w},{34:[1,224]},{34:[1,225]},{34:[1,226]},{39:227,43:y,44:v,45:w},{34:[1,228]},{39:229,43:y,44:v,45:w},{34:[1,230]},{34:[1,231]},{34:[1,232]},{39:233,43:y,44:v,45:w},e(g,[2,40]),e(g,[2,42]),e(g,[2,41]),e(g,[2,43]),e(g,[2,45]),e(g,[2,44]),e(g,[2,101]),e(g,[2,102]),e(g,[2,99]),e(g,[2,100]),e(g,[2,104]),e(g,[2,103]),e(g,[2,108]),e(g,[2,107]),e(g,[2,106]),e(g,[2,105]),e(g,[2,110]),e(g,[2,109]),e(g,[2,98]),e(g,[2,97]),e(g,[2,96]),e(g,[2,95]),e(g,[2,93]),e(g,[2,94]),e(g,[2,92]),e(g,[2,91]),e(g,[2,90]),e(g,[2,89]),e(g,[2,87]),e(g,[2,88])],defaultActions:{9:[2,118],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,120],47:[2,5]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},_=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),50;case 1:return this.begin("type_directive"),51;case 2:return this.popState(),this.begin("arg_directive"),9;case 3:return this.popState(),this.popState(),53;case 4:return 52;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 34:case 38:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:return 14;case 13:case 14:break;case 15:return 6;case 16:return 40;case 17:return 33;case 18:return 38;case 19:return 42;case 20:return 43;case 21:return 44;case 22:return 45;case 23:return 35;case 24:return 29;case 25:return 30;case 26:return 37;case 27:return 32;case 28:return 27;case 29:case 30:return 10;case 31:return 9;case 32:return"CARET";case 33:this.begin("options");break;case 35:return 13;case 36:return 36;case 37:this.begin("string");break;case 39:return 34;case 40:return 31;case 41:return 54;case 42:return 8}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},options:{rules:[34,35],inclusive:!1},string:{rules:[38,39],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,36,37,40,41,42,43],inclusive:!0}}},t);function k(){this.yy={}}return R.lexer=_,k.prototype=R,R.Parser=k,new k}();Ji.parser=Ji;const Qi=Ji,ta=t=>null!==t.match(/^\s*gitGraph/);let ea=ai().gitGraph.mainBranchName,na=ai().gitGraph.mainBranchOrder,ia={},aa=null,ra={};ra[ea]={name:ea,order:na};let oa={};oa[ea]=aa;let sa=ea,ca="LR",la=0;function ua(){return Bn({length:7})}let da={};const ha=function(t){if(t=zt.sanitizeText(t,ai()),void 0===oa[t]){let e=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+t+'")');throw e.hash={text:"checkout "+t,token:"checkout "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+t+'"']},e}{sa=t;const e=oa[sa];aa=ia[e]}};function fa(t,e,n){const i=t.indexOf(e);-1===i?t.push(n):t.splice(i,1,n)}function ga(t){const e=t.reduce(((t,e)=>t.seq>e.seq?t:e),t[0]);let n="";t.forEach((function(t){n+=t===e?"\t*":"\t|"}));const i=[n,e.id,e.seq];for(let a in oa)oa[a]===e.id&&i.push(a);if(Dt.debug(i.join(" ")),e.parents&&2==e.parents.length){const n=ia[e.parents[0]];fa(t,e,n),t.push(ia[e.parents[1]])}else{if(0==e.parents.length)return;{const n=ia[e.parents];fa(t,e,n)}}ga(t=function(t,e){const n=Object.create(null);return t.reduce(((t,i)=>{const a=e(i);return n[a]||(n[a]=!0,t.push(i)),t}),[])}(t,(t=>t.id)))}const pa=function(){const t=Object.keys(ia).map((function(t){return ia[t]}));return t.forEach((function(t){Dt.debug(t.id)})),t.sort(((t,e)=>t.seq-e.seq)),t},ba={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},ma={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().gitGraph,setDirection:function(t){ca=t},setOptions:function(t){Dt.debug("options str",t),t=(t=t&&t.trim())||"{}";try{da=JSON.parse(t)}catch(e){Dt.error("error while parsing gitGraph options",e.message)}},getOptions:function(){return da},commit:function(t,e,n,i){Dt.debug("Entering commit:",t,e,n,i),e=zt.sanitizeText(e,ai()),t=zt.sanitizeText(t,ai()),i=zt.sanitizeText(i,ai());const a={id:e||la+"-"+ua(),message:t,seq:la++,type:n||ba.NORMAL,tag:i||"",parents:null==aa?[]:[aa.id],branch:sa};aa=a,ia[a.id]=a,oa[sa]=a.id,Dt.debug("in pushCommit "+a.id)},branch:function(t,e){if(t=zt.sanitizeText(t,ai()),void 0!==oa[t]){let e=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+t+'")');throw e.hash={text:"branch "+t,token:"branch "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+t+'"']},e}oa[t]=null!=aa?aa.id:null,ra[t]={name:t,order:e?parseInt(e,10):null},ha(t),Dt.debug("in createBranch")},merge:function(t,e,n,i){t=zt.sanitizeText(t,ai()),e=zt.sanitizeText(e,ai());const a=ia[oa[sa]],r=ia[oa[t]];if(sa===t){let e=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(void 0===a||!a){let e=new Error('Incorrect usage of "merge". Current branch ('+sa+")has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},e}if(void 0===oa[t]){let e=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") does not exist");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+t]},e}if(void 0===r||!r){let e=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},e}if(a===r){let e=new Error('Incorrect usage of "merge". Both branches have same head');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(e&&void 0!==ia[e]){let a=new Error('Incorrect usage of "merge". Commit with id:'+e+" already exists, use different custom Id");throw a.hash={text:"merge "+t+e+n+i,token:"merge "+t+e+n+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+t+" "+e+"_UNIQUE "+n+" "+i]},a}const o={id:e||la+"-"+ua(),message:"merged branch "+t+" into "+sa,seq:la++,parents:[null==aa?null:aa.id,oa[t]],branch:sa,type:ba.MERGE,customType:n,customId:!!e,tag:i||""};aa=o,ia[o.id]=o,oa[sa]=o.id,Dt.debug(oa),Dt.debug("in mergeBranch")},cherryPick:function(t,e,n){if(Dt.debug("Entering cherryPick:",t,e,n),t=zt.sanitizeText(t,ai()),e=zt.sanitizeText(e,ai()),n=zt.sanitizeText(n,ai()),!t||void 0===ia[t]){let n=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}let i=ia[t],a=i.branch;if(i.type===ba.MERGE){let n=new Error('Incorrect usage of "cherryPick". Source commit should not be a merge commit');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}if(!e||void 0===ia[e]){if(a===sa){let n=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}const r=ia[oa[sa]];if(void 0===r||!r){let n=new Error('Incorrect usage of "cherry-pick". Current branch ('+sa+")has no commits");throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}const o={id:la+"-"+ua(),message:"cherry-picked "+i+" into "+sa,seq:la++,parents:[null==aa?null:aa.id,i.id],branch:sa,type:ba.CHERRY_PICK,tag:n??"cherry-pick:"+i.id};aa=o,ia[o.id]=o,oa[sa]=o.id,Dt.debug(oa),Dt.debug("in cherryPick")}},checkout:ha,prettyPrint:function(){Dt.debug(ia);ga([pa()[0]])},clear:function(){ia={},aa=null;let t=ai().gitGraph.mainBranchName,e=ai().gitGraph.mainBranchOrder;oa={},oa[t]=null,ra={},ra[t]={name:t,order:e},sa=t,la=0,Ii()},getBranchesAsObjArray:function(){const t=Object.values(ra).map(((t,e)=>null!==t.order?t:{...t,order:parseFloat(`0.${e}`,10)})).sort(((t,e)=>t.order-e.order)).map((({name:t})=>({name:t})));return t},getBranches:function(){return oa},getCommits:function(){return ia},getCommitsArray:pa,getCurrentBranch:function(){return sa},getDirection:function(){return ca},getHead:function(){return aa},setAccTitle:Li,getAccTitle:Oi,getAccDescription:Ni,setAccDescription:Mi,setDiagramTitle:Bi,getDiagramTitle:Pi,commitType:ba};let ya={};const va=0,wa=1,xa=2,Ra=3,_a=4;let ka={},Ea={},Ca=[],Sa=0;const Ta=(t,e,n)=>{const i=qi().gitGraph,a=t.append("g").attr("class","commit-bullets"),r=t.append("g").attr("class","commit-labels");let o=0;Object.keys(e).sort(((t,n)=>e[t].seq-e[n].seq)).forEach((t=>{const s=e[t],c=ka[s.branch].pos,l=o+10;if(n){let t,e=void 0!==s.customType&&""!==s.customType?s.customType:s.type;switch(e){case va:t="commit-normal";break;case wa:t="commit-reverse";break;case xa:t="commit-highlight";break;case Ra:t="commit-merge";break;case _a:t="commit-cherry-pick";break;default:t="commit-normal"}if(e===xa){const e=a.append("rect");e.attr("x",l-10),e.attr("y",c-10),e.attr("height",20),e.attr("width",20),e.attr("class",`commit ${s.id} commit-highlight${ka[s.branch].index%8} ${t}-outer`),a.append("rect").attr("x",l-6).attr("y",c-6).attr("height",12).attr("width",12).attr("class",`commit ${s.id} commit${ka[s.branch].index%8} ${t}-inner`)}else if(e===_a)a.append("circle").attr("cx",l).attr("cy",c).attr("r",10).attr("class",`commit ${s.id} ${t}`),a.append("circle").attr("cx",l-3).attr("cy",c+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${s.id} ${t}`),a.append("circle").attr("cx",l+3).attr("cy",c+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${s.id} ${t}`),a.append("line").attr("x1",l+3).attr("y1",c+1).attr("x2",l).attr("y2",c-5).attr("stroke","#fff").attr("class",`commit ${s.id} ${t}`),a.append("line").attr("x1",l-3).attr("y1",c+1).attr("x2",l).attr("y2",c-5).attr("stroke","#fff").attr("class",`commit ${s.id} ${t}`);else{const n=a.append("circle");if(n.attr("cx",l),n.attr("cy",c),n.attr("r",s.type===Ra?9:10),n.attr("class",`commit ${s.id} commit${ka[s.branch].index%8}`),e===Ra){const e=a.append("circle");e.attr("cx",l),e.attr("cy",c),e.attr("r",6),e.attr("class",`commit ${t} ${s.id} commit${ka[s.branch].index%8}`)}if(e===wa){a.append("path").attr("d",`M ${l-5},${c-5}L${l+5},${c+5}M${l-5},${c+5}L${l+5},${c-5}`).attr("class",`commit ${t} ${s.id} commit${ka[s.branch].index%8}`)}}}if(Ea[s.id]={x:o+10,y:c},n){const t=4,e=2;if(s.type!==_a&&(s.customId&&s.type===Ra||s.type!==Ra)&&i.showCommitLabel){const t=r.append("g"),n=t.insert("rect").attr("class","commit-label-bkg"),a=t.append("text").attr("x",o).attr("y",c+25).attr("class","commit-label").text(s.id);let l=a.node().getBBox();if(n.attr("x",o+10-l.width/2-e).attr("y",c+13.5).attr("width",l.width+2*e).attr("height",l.height+2*e),a.attr("x",o+10-l.width/2),i.rotateCommitLabel){let e=-7.5-(l.width+10)/25*9.5,n=10+l.width/25*8.5;t.attr("transform","translate("+e+", "+n+") rotate("+"-45, "+o+", "+c+")")}}if(s.tag){const n=r.insert("polygon"),i=r.append("circle"),a=r.append("text").attr("y",c-16).attr("class","tag-label").text(s.tag);let l=a.node().getBBox();a.attr("x",o+10-l.width/2);const u=l.height/2,d=c-19.2;n.attr("class","tag-label-bkg").attr("points",`\n ${o-l.width/2-t/2},${d+e}\n ${o-l.width/2-t/2},${d-e}\n ${o+10-l.width/2-t},${d-u-e}\n ${o+10+l.width/2+t},${d-u-e}\n ${o+10+l.width/2+t},${d+u+e}\n ${o+10-l.width/2-t},${d+u+e}`),i.attr("cx",o-l.width/2+t/2).attr("cy",d).attr("r",1.5).attr("class","tag-hole")}}o+=50,o>Sa&&(Sa=o)}))},Aa=(t,e,n=0)=>{const i=t+Math.abs(t-e)/2;if(n>5)return i;if(Ca.every((t=>Math.abs(t-i)>=10)))return Ca.push(i),i;const a=Math.abs(t-e);return Aa(t,e-a/5,n+1)},Da=(t,e,n,i)=>{const a=Ea[e.id],r=Ea[n.id],o=((t,e,n)=>Object.keys(n).filter((i=>n[i].branch===e.branch&&n[i].seq>t.seq&&n[i].seq<e.seq)).length>0)(e,n,i);let s,c="",l="",u=0,d=0,h=ka[n.branch].index;if(o){c="A 10 10, 0, 0, 0,",l="A 10 10, 0, 0, 1,",u=10,d=10,h=ka[n.branch].index;const t=a.y<r.y?Aa(a.y,r.y):Aa(r.y,a.y);s=a.y<r.y?`M ${a.x} ${a.y} L ${a.x} ${t-u} ${c} ${a.x+d} ${t} L ${r.x-u} ${t} ${l} ${r.x} ${t+d} L ${r.x} ${r.y}`:`M ${a.x} ${a.y} L ${a.x} ${t+u} ${l} ${a.x+d} ${t} L ${r.x-u} ${t} ${c} ${r.x} ${t-d} L ${r.x} ${r.y}`}else a.y<r.y&&(c="A 20 20, 0, 0, 0,",u=20,d=20,h=ka[n.branch].index,s=`M ${a.x} ${a.y} L ${a.x} ${r.y-u} ${c} ${a.x+d} ${r.y} L ${r.x} ${r.y}`),a.y>r.y&&(c="A 20 20, 0, 0, 0,",u=20,d=20,h=ka[e.branch].index,s=`M ${a.x} ${a.y} L ${r.x-u} ${a.y} ${c} ${r.x} ${a.y-d} L ${r.x} ${r.y}`),a.y===r.y&&(h=ka[e.branch].index,s=`M ${a.x} ${a.y} L ${a.x} ${r.y-u} ${c} ${a.x+d} ${r.y} L ${r.x} ${r.y}`);t.append("path").attr("d",s).attr("class","arrow arrow"+h%8)},Ia=(t,e)=>{const n=qi().gitGraph,i=t.append("g");e.forEach(((t,e)=>{const a=e%8,r=ka[t.name].pos,o=i.append("line");o.attr("x1",0),o.attr("y1",r),o.attr("x2",Sa),o.attr("y2",r),o.attr("class","branch branch"+a),Ca.push(r);const s=(t=>{const e=document.createElementNS("http://www.w3.org/2000/svg","text");let n=[];n="string"==typeof t?t.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(t)?t:[];for(const i of n){const t=document.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),t.setAttribute("dy","1em"),t.setAttribute("x","0"),t.setAttribute("class","row"),t.textContent=i.trim(),e.appendChild(t)}return e})(t.name),c=i.insert("rect"),l=i.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);l.node().appendChild(s);let u=s.getBBox();c.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-u.width-4-(!0===n.rotateCommitLabel?30:0)).attr("y",-u.height/2+8).attr("width",u.width+18).attr("height",u.height+4),l.attr("transform","translate("+(-u.width-14-(!0===n.rotateCommitLabel?30:0))+", "+(r-u.height/2-1)+")"),c.attr("transform","translate(-19, "+(r-u.height/2)+")")}))},La={draw:function(t,e,n,i){ka={},Ea={},ya={},Sa=0,Ca=[];const a=qi(),r=a.gitGraph;Dt.debug("in gitgraph renderer",t+"\n","id:",e,n),ya=i.db.getCommits();const o=i.db.getBranchesAsObjArray();let c=0;o.forEach(((t,e)=>{ka[t.name]={pos:c,index:e},c+=50+(r.rotateCommitLabel?40:0)}));const l=(0,s.Ys)(`[id="${e}"]`);Ta(l,ya,!1),r.showBranches&&Ia(l,o),((t,e)=>{const n=t.append("g").attr("class","commit-arrows");Object.keys(e).forEach((t=>{const i=e[t];i.parents&&i.parents.length>0&&i.parents.forEach((t=>{Da(n,e[t],i,e)}))}))})(l,ya),Ta(l,ya,!0),Gn.insertTitle(l,"gitTitleText",r.titleTopMargin,i.db.getDiagramTitle()),Yi(void 0,l,r.diagramPadding,r.useMaxWidth??a.useMaxWidth)}},Oa=t=>`\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ${[0,1,2,3,4,5,6,7].map((e=>`\n .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; }\n .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; }\n .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; }\n .label${e} { fill: ${t["git"+e]}; }\n .arrow${e} { stroke: ${t["git"+e]}; }\n `)).join("\n")}\n\n .branch {\n stroke-width: 1;\n stroke: ${t.lineColor};\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};}\n .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; }\n .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};}\n .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; }\n .tag-hole { fill: ${t.textColor}; }\n\n .commit-merge {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n .commit-reverse {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n .gitTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n }\n`;var Ma=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,6],i=[1,7],a=[1,8],r=[1,9],o=[1,16],s=[1,11],l=[1,12],u=[1,13],d=[1,14],h=[1,15],f=[1,27],g=[1,33],p=[1,34],b=[1,35],m=[1,36],y=[1,37],v=[1,72],w=[1,73],x=[1,74],R=[1,75],_=[1,76],k=[1,77],E=[1,78],C=[1,38],S=[1,39],T=[1,40],A=[1,41],D=[1,42],I=[1,43],L=[1,44],O=[1,45],M=[1,46],N=[1,47],B=[1,48],P=[1,49],F=[1,50],j=[1,51],$=[1,52],z=[1,53],H=[1,54],U=[1,55],V=[1,56],q=[1,57],W=[1,59],Y=[1,60],G=[1,61],Z=[1,62],K=[1,63],X=[1,64],J=[1,65],Q=[1,66],tt=[1,67],et=[1,68],nt=[1,69],it=[24,52],at=[24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],rt=[15,24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],ot=[1,94],st=[1,95],ct=[1,96],lt=[1,97],ut=[15,24,52],dt=[7,8,9,10,18,22,25,26,27,28],ht=[15,24,43,52],ft=[15,24,43,52,86,87,89,90],gt=[15,43],pt=[44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],bt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,directive:6,direction_tb:7,direction_bt:8,direction_rl:9,direction_lr:10,graphConfig:11,openDirective:12,typeDirective:13,closeDirective:14,NEWLINE:15,":":16,argDirective:17,open_directive:18,type_directive:19,arg_directive:20,close_directive:21,C4_CONTEXT:22,statements:23,EOF:24,C4_CONTAINER:25,C4_COMPONENT:26,C4_DYNAMIC:27,C4_DEPLOYMENT:28,otherStatements:29,diagramStatements:30,otherStatement:31,title:32,accDescription:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,boundaryStatement:39,boundaryStartStatement:40,boundaryStopStatement:41,boundaryStart:42,LBRACE:43,ENTERPRISE_BOUNDARY:44,attributes:45,SYSTEM_BOUNDARY:46,BOUNDARY:47,CONTAINER_BOUNDARY:48,NODE:49,NODE_L:50,NODE_R:51,RBRACE:52,diagramStatement:53,PERSON:54,PERSON_EXT:55,SYSTEM:56,SYSTEM_DB:57,SYSTEM_QUEUE:58,SYSTEM_EXT:59,SYSTEM_EXT_DB:60,SYSTEM_EXT_QUEUE:61,CONTAINER:62,CONTAINER_DB:63,CONTAINER_QUEUE:64,CONTAINER_EXT:65,CONTAINER_EXT_DB:66,CONTAINER_EXT_QUEUE:67,COMPONENT:68,COMPONENT_DB:69,COMPONENT_QUEUE:70,COMPONENT_EXT:71,COMPONENT_EXT_DB:72,COMPONENT_EXT_QUEUE:73,REL:74,BIREL:75,REL_U:76,REL_D:77,REL_L:78,REL_R:79,REL_B:80,REL_INDEX:81,UPDATE_EL_STYLE:82,UPDATE_REL_STYLE:83,UPDATE_LAYOUT_CONFIG:84,attribute:85,STR:86,STR_KEY:87,STR_VALUE:88,ATTRIBUTE:89,ATTRIBUTE_EMPTY:90,$accept:0,$end:1},terminals_:{2:"error",7:"direction_tb",8:"direction_bt",9:"direction_rl",10:"direction_lr",15:"NEWLINE",16:":",18:"open_directive",19:"type_directive",20:"arg_directive",21:"close_directive",22:"C4_CONTEXT",24:"EOF",25:"C4_CONTAINER",26:"C4_COMPONENT",27:"C4_DYNAMIC",28:"C4_DEPLOYMENT",32:"title",33:"accDescription",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",43:"LBRACE",44:"ENTERPRISE_BOUNDARY",46:"SYSTEM_BOUNDARY",47:"BOUNDARY",48:"CONTAINER_BOUNDARY",49:"NODE",50:"NODE_L",51:"NODE_R",52:"RBRACE",54:"PERSON",55:"PERSON_EXT",56:"SYSTEM",57:"SYSTEM_DB",58:"SYSTEM_QUEUE",59:"SYSTEM_EXT",60:"SYSTEM_EXT_DB",61:"SYSTEM_EXT_QUEUE",62:"CONTAINER",63:"CONTAINER_DB",64:"CONTAINER_QUEUE",65:"CONTAINER_EXT",66:"CONTAINER_EXT_DB",67:"CONTAINER_EXT_QUEUE",68:"COMPONENT",69:"COMPONENT_DB",70:"COMPONENT_QUEUE",71:"COMPONENT_EXT",72:"COMPONENT_EXT_DB",73:"COMPONENT_EXT_QUEUE",74:"REL",75:"BIREL",76:"REL_U",77:"REL_D",78:"REL_L",79:"REL_R",80:"REL_B",81:"REL_INDEX",82:"UPDATE_EL_STYLE",83:"UPDATE_REL_STYLE",84:"UPDATE_LAYOUT_CONFIG",86:"STR",87:"STR_KEY",88:"STR_VALUE",89:"ATTRIBUTE",90:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:i.setDirection("TB");break;case 5:i.setDirection("BT");break;case 6:i.setDirection("RL");break;case 7:i.setDirection("LR");break;case 11:i.parseDirective("%%{","open_directive");break;case 12:break;case 13:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 14:i.parseDirective("}%%","close_directive","c4Context");break;case 15:case 16:case 17:case 18:case 19:i.setC4Type(r[s-3]);break;case 26:i.setTitle(r[s].substring(6)),this.$=r[s].substring(6);break;case 27:i.setAccDescription(r[s].substring(15)),this.$=r[s].substring(15);break;case 28:this.$=r[s].trim(),i.setTitle(this.$);break;case 29:case 30:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 35:case 36:r[s].splice(2,0,"ENTERPRISE"),i.addPersonOrSystemBoundary(...r[s]),this.$=r[s];break;case 37:i.addPersonOrSystemBoundary(...r[s]),this.$=r[s];break;case 38:r[s].splice(2,0,"CONTAINER"),i.addContainerBoundary(...r[s]),this.$=r[s];break;case 39:i.addDeploymentNode("node",...r[s]),this.$=r[s];break;case 40:i.addDeploymentNode("nodeL",...r[s]),this.$=r[s];break;case 41:i.addDeploymentNode("nodeR",...r[s]),this.$=r[s];break;case 42:i.popBoundaryParseStack();break;case 46:i.addPersonOrSystem("person",...r[s]),this.$=r[s];break;case 47:i.addPersonOrSystem("external_person",...r[s]),this.$=r[s];break;case 48:i.addPersonOrSystem("system",...r[s]),this.$=r[s];break;case 49:i.addPersonOrSystem("system_db",...r[s]),this.$=r[s];break;case 50:i.addPersonOrSystem("system_queue",...r[s]),this.$=r[s];break;case 51:i.addPersonOrSystem("external_system",...r[s]),this.$=r[s];break;case 52:i.addPersonOrSystem("external_system_db",...r[s]),this.$=r[s];break;case 53:i.addPersonOrSystem("external_system_queue",...r[s]),this.$=r[s];break;case 54:i.addContainer("container",...r[s]),this.$=r[s];break;case 55:i.addContainer("container_db",...r[s]),this.$=r[s];break;case 56:i.addContainer("container_queue",...r[s]),this.$=r[s];break;case 57:i.addContainer("external_container",...r[s]),this.$=r[s];break;case 58:i.addContainer("external_container_db",...r[s]),this.$=r[s];break;case 59:i.addContainer("external_container_queue",...r[s]),this.$=r[s];break;case 60:i.addComponent("component",...r[s]),this.$=r[s];break;case 61:i.addComponent("component_db",...r[s]),this.$=r[s];break;case 62:i.addComponent("component_queue",...r[s]),this.$=r[s];break;case 63:i.addComponent("external_component",...r[s]),this.$=r[s];break;case 64:i.addComponent("external_component_db",...r[s]),this.$=r[s];break;case 65:i.addComponent("external_component_queue",...r[s]),this.$=r[s];break;case 67:i.addRel("rel",...r[s]),this.$=r[s];break;case 68:i.addRel("birel",...r[s]),this.$=r[s];break;case 69:i.addRel("rel_u",...r[s]),this.$=r[s];break;case 70:i.addRel("rel_d",...r[s]),this.$=r[s];break;case 71:i.addRel("rel_l",...r[s]),this.$=r[s];break;case 72:i.addRel("rel_r",...r[s]),this.$=r[s];break;case 73:i.addRel("rel_b",...r[s]),this.$=r[s];break;case 74:r[s].splice(0,1),i.addRel("rel",...r[s]),this.$=r[s];break;case 75:i.updateElStyle("update_el_style",...r[s]),this.$=r[s];break;case 76:i.updateRelStyle("update_rel_style",...r[s]),this.$=r[s];break;case 77:i.updateLayoutConfig("update_layout_config",...r[s]),this.$=r[s];break;case 78:this.$=[r[s]];break;case 79:r[s].unshift(r[s-1]),this.$=r[s];break;case 80:case 82:this.$=r[s].trim();break;case 81:let t={};t[r[s-1].trim()]=r[s].trim(),this.$=t;break;case 83:this.$=""}},table:[{3:1,4:2,5:3,6:4,7:n,8:i,9:a,10:r,11:5,12:10,18:o,22:s,25:l,26:u,27:d,28:h},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:n,8:i,9:a,10:r,11:5,12:10,18:o,22:s,25:l,26:u,27:d,28:h},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:f},e([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:g,33:p,34:b,36:m,38:y,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{23:79,29:29,30:30,31:31,32:g,33:p,34:b,36:m,38:y,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{23:80,29:29,30:30,31:31,32:g,33:p,34:b,36:m,38:y,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{23:81,29:29,30:30,31:31,32:g,33:p,34:b,36:m,38:y,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{23:82,29:29,30:30,31:31,32:g,33:p,34:b,36:m,38:y,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},e(it,[2,20],{53:32,39:58,40:70,42:71,30:87,44:v,46:w,47:x,48:R,49:_,50:k,51:E,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt}),e(it,[2,21]),e(at,[2,23],{15:[1,88]}),e(it,[2,43],{15:[1,89]}),e(rt,[2,26]),e(rt,[2,27]),{35:[1,90]},{37:[1,91]},e(rt,[2,30]),{45:92,85:93,86:ot,87:st,89:ct,90:lt},{45:98,85:93,86:ot,87:st,89:ct,90:lt},{45:99,85:93,86:ot,87:st,89:ct,90:lt},{45:100,85:93,86:ot,87:st,89:ct,90:lt},{45:101,85:93,86:ot,87:st,89:ct,90:lt},{45:102,85:93,86:ot,87:st,89:ct,90:lt},{45:103,85:93,86:ot,87:st,89:ct,90:lt},{45:104,85:93,86:ot,87:st,89:ct,90:lt},{45:105,85:93,86:ot,87:st,89:ct,90:lt},{45:106,85:93,86:ot,87:st,89:ct,90:lt},{45:107,85:93,86:ot,87:st,89:ct,90:lt},{45:108,85:93,86:ot,87:st,89:ct,90:lt},{45:109,85:93,86:ot,87:st,89:ct,90:lt},{45:110,85:93,86:ot,87:st,89:ct,90:lt},{45:111,85:93,86:ot,87:st,89:ct,90:lt},{45:112,85:93,86:ot,87:st,89:ct,90:lt},{45:113,85:93,86:ot,87:st,89:ct,90:lt},{45:114,85:93,86:ot,87:st,89:ct,90:lt},{45:115,85:93,86:ot,87:st,89:ct,90:lt},{45:116,85:93,86:ot,87:st,89:ct,90:lt},e(ut,[2,66]),{45:117,85:93,86:ot,87:st,89:ct,90:lt},{45:118,85:93,86:ot,87:st,89:ct,90:lt},{45:119,85:93,86:ot,87:st,89:ct,90:lt},{45:120,85:93,86:ot,87:st,89:ct,90:lt},{45:121,85:93,86:ot,87:st,89:ct,90:lt},{45:122,85:93,86:ot,87:st,89:ct,90:lt},{45:123,85:93,86:ot,87:st,89:ct,90:lt},{45:124,85:93,86:ot,87:st,89:ct,90:lt},{45:125,85:93,86:ot,87:st,89:ct,90:lt},{45:126,85:93,86:ot,87:st,89:ct,90:lt},{45:127,85:93,86:ot,87:st,89:ct,90:lt},{30:128,39:58,40:70,42:71,44:v,46:w,47:x,48:R,49:_,50:k,51:E,53:32,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt},{15:[1,130],43:[1,129]},{45:131,85:93,86:ot,87:st,89:ct,90:lt},{45:132,85:93,86:ot,87:st,89:ct,90:lt},{45:133,85:93,86:ot,87:st,89:ct,90:lt},{45:134,85:93,86:ot,87:st,89:ct,90:lt},{45:135,85:93,86:ot,87:st,89:ct,90:lt},{45:136,85:93,86:ot,87:st,89:ct,90:lt},{45:137,85:93,86:ot,87:st,89:ct,90:lt},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},e(dt,[2,9]),{14:142,21:f},{21:[2,13]},{1:[2,15]},e(it,[2,22]),e(at,[2,24],{31:31,29:143,32:g,33:p,34:b,36:m,38:y}),e(it,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:g,33:p,34:b,36:m,38:y,44:v,46:w,47:x,48:R,49:_,50:k,51:E,54:C,55:S,56:T,57:A,58:D,59:I,60:L,61:O,62:M,63:N,64:B,65:P,66:F,67:j,68:$,69:z,70:H,71:U,72:V,73:q,74:W,75:Y,76:G,77:Z,78:K,79:X,80:J,81:Q,82:tt,83:et,84:nt}),e(rt,[2,28]),e(rt,[2,29]),e(ut,[2,46]),e(ht,[2,78],{85:93,45:145,86:ot,87:st,89:ct,90:lt}),e(ft,[2,80]),{88:[1,146]},e(ft,[2,82]),e(ft,[2,83]),e(ut,[2,47]),e(ut,[2,48]),e(ut,[2,49]),e(ut,[2,50]),e(ut,[2,51]),e(ut,[2,52]),e(ut,[2,53]),e(ut,[2,54]),e(ut,[2,55]),e(ut,[2,56]),e(ut,[2,57]),e(ut,[2,58]),e(ut,[2,59]),e(ut,[2,60]),e(ut,[2,61]),e(ut,[2,62]),e(ut,[2,63]),e(ut,[2,64]),e(ut,[2,65]),e(ut,[2,67]),e(ut,[2,68]),e(ut,[2,69]),e(ut,[2,70]),e(ut,[2,71]),e(ut,[2,72]),e(ut,[2,73]),e(ut,[2,74]),e(ut,[2,75]),e(ut,[2,76]),e(ut,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},e(gt,[2,35]),e(gt,[2,36]),e(gt,[2,37]),e(gt,[2,38]),e(gt,[2,39]),e(gt,[2,40]),e(gt,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},e(at,[2,25]),e(it,[2,45]),e(ht,[2,79]),e(ft,[2,81]),e(ut,[2,31]),e(ut,[2,42]),e(pt,[2,32]),e(pt,[2,33],{15:[1,152]}),e(dt,[2,10]),e(pt,[2,34])],defaultActions:{2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},mt=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:return 32;case 10:return 33;case 11:return this.begin("acc_title"),34;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),36;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 78:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:case 21:case 75:break;case 19:c;break;case 20:return 15;case 22:return 22;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return this.begin("person_ext"),55;case 28:return this.begin("person"),54;case 29:return this.begin("system_ext_queue"),61;case 30:return this.begin("system_ext_db"),60;case 31:return this.begin("system_ext"),59;case 32:return this.begin("system_queue"),58;case 33:return this.begin("system_db"),57;case 34:return this.begin("system"),56;case 35:return this.begin("boundary"),47;case 36:return this.begin("enterprise_boundary"),44;case 37:return this.begin("system_boundary"),46;case 38:return this.begin("container_ext_queue"),67;case 39:return this.begin("container_ext_db"),66;case 40:return this.begin("container_ext"),65;case 41:return this.begin("container_queue"),64;case 42:return this.begin("container_db"),63;case 43:return this.begin("container"),62;case 44:return this.begin("container_boundary"),48;case 45:return this.begin("component_ext_queue"),73;case 46:return this.begin("component_ext_db"),72;case 47:return this.begin("component_ext"),71;case 48:return this.begin("component_queue"),70;case 49:return this.begin("component_db"),69;case 50:return this.begin("component"),68;case 51:case 52:return this.begin("node"),49;case 53:return this.begin("node_l"),50;case 54:return this.begin("node_r"),51;case 55:return this.begin("rel"),74;case 56:return this.begin("birel"),75;case 57:case 58:return this.begin("rel_u"),76;case 59:case 60:return this.begin("rel_d"),77;case 61:case 62:return this.begin("rel_l"),78;case 63:case 64:return this.begin("rel_r"),79;case 65:return this.begin("rel_b"),80;case 66:return this.begin("rel_index"),81;case 67:return this.begin("update_el_style"),82;case 68:return this.begin("update_rel_style"),83;case 69:return this.begin("update_layout_config"),84;case 70:return"EOF_IN_STRUCT";case 71:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 72:this.begin("attribute");break;case 73:case 84:this.popState(),this.popState();break;case 74:case 76:return 90;case 77:this.begin("string");break;case 79:case 85:return"STR";case 80:this.begin("string_kv");break;case 81:return this.begin("string_kv_key"),"STR_KEY";case 82:this.popState(),this.begin("string_kv_value");break;case 83:return"STR_VALUE";case 86:return"LBRACE";case 87:return"RBRACE";case 88:return"SPACE";case 89:return"EOL";case 90:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},string_kv_value:{rules:[83,84],inclusive:!1},string_kv_key:{rules:[82],inclusive:!1},string_kv:{rules:[81],inclusive:!1},string:{rules:[78,79],inclusive:!1},attribute:{rules:[73,74,75,76,77,80,85],inclusive:!1},update_layout_config:{rules:[70,71,72,73],inclusive:!1},update_rel_style:{rules:[70,71,72,73],inclusive:!1},update_el_style:{rules:[70,71,72,73],inclusive:!1},rel_b:{rules:[70,71,72,73],inclusive:!1},rel_r:{rules:[70,71,72,73],inclusive:!1},rel_l:{rules:[70,71,72,73],inclusive:!1},rel_d:{rules:[70,71,72,73],inclusive:!1},rel_u:{rules:[70,71,72,73],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[70,71,72,73],inclusive:!1},node_r:{rules:[70,71,72,73],inclusive:!1},node_l:{rules:[70,71,72,73],inclusive:!1},node:{rules:[70,71,72,73],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[70,71,72,73],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[70,71,72,73],inclusive:!1},component_ext:{rules:[70,71,72,73],inclusive:!1},component_queue:{rules:[70,71,72,73],inclusive:!1},component_db:{rules:[70,71,72,73],inclusive:!1},component:{rules:[70,71,72,73],inclusive:!1},container_boundary:{rules:[70,71,72,73],inclusive:!1},container_ext_queue:{rules:[],inclusive:!1},container_ext_db:{rules:[70,71,72,73],inclusive:!1},container_ext:{rules:[70,71,72,73],inclusive:!1},container_queue:{rules:[70,71,72,73],inclusive:!1},container_db:{rules:[70,71,72,73],inclusive:!1},container:{rules:[70,71,72,73],inclusive:!1},birel:{rules:[70,71,72,73],inclusive:!1},system_boundary:{rules:[70,71,72,73],inclusive:!1},enterprise_boundary:{rules:[70,71,72,73],inclusive:!1},boundary:{rules:[70,71,72,73],inclusive:!1},system_ext_queue:{rules:[70,71,72,73],inclusive:!1},system_ext_db:{rules:[70,71,72,73],inclusive:!1},system_ext:{rules:[70,71,72,73],inclusive:!1},system_queue:{rules:[70,71,72,73],inclusive:!1},system_db:{rules:[70,71,72,73],inclusive:!1},system:{rules:[70,71,72,73],inclusive:!1},person_ext:{rules:[70,71,72,73],inclusive:!1},person:{rules:[70,71,72,73],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,86,87,88,89,90],inclusive:!0}}},t);function yt(){this.yy={}}return bt.lexer=mt,yt.prototype=bt,bt.Parser=yt,new yt}();Ma.parser=Ma;const Na=Ma,Ba=t=>null!==t.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/);let Pa=[],Fa=[""],ja="global",$a="",za=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Ha=[],Ua="",Va=!1,qa=4,Wa=2;var Ya;const Ga=function(t){return null==t?Pa:Pa.filter((e=>e.parentBoundary===t))},Za=function(){return Va},Ka={addPersonOrSystem:function(t,e,n,i,a,r,o){if(null===e||null===n)return;let s={};const c=Pa.find((t=>t.alias===e));if(c&&e===c.alias?s=c:(s.alias=e,Pa.push(s)),s.label=null==n?{text:""}:{text:n},null==i)s.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]={text:e}}else s.descr={text:i};if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.sprite=a;if("object"==typeof r){let[t,e]=Object.entries(r)[0];s[t]=e}else s.tags=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];s[t]=e}else s.link=o;s.typeC4Shape={text:t},s.parentBoundary=ja,s.wrap=Za()},addPersonOrSystemBoundary:function(t,e,n,i,a){if(null===t||null===e)return;let r={};const o=za.find((e=>e.alias===t));if(o&&t===o.alias?r=o:(r.alias=t,za.push(r)),r.label=null==e?{text:""}:{text:e},null==n)r.type={text:"system"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]={text:e}}else r.type={text:n};if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]=e}else r.tags=i;if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]=e}else r.link=a;r.parentBoundary=ja,r.wrap=Za(),$a=ja,ja=t,Fa.push($a)},addContainer:function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=Pa.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,Pa.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.techn={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.techn={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof r){let[t,e]=Object.entries(r)[0];c[t]=e}else c.sprite=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.wrap=Za(),c.typeC4Shape={text:t},c.parentBoundary=ja},addContainerBoundary:function(t,e,n,i,a){if(null===t||null===e)return;let r={};const o=za.find((e=>e.alias===t));if(o&&t===o.alias?r=o:(r.alias=t,za.push(r)),r.label=null==e?{text:""}:{text:e},null==n)r.type={text:"container"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]={text:e}}else r.type={text:n};if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]=e}else r.tags=i;if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]=e}else r.link=a;r.parentBoundary=ja,r.wrap=Za(),$a=ja,ja=t,Fa.push($a)},addComponent:function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=Pa.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,Pa.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.techn={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.techn={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof r){let[t,e]=Object.entries(r)[0];c[t]=e}else c.sprite=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.wrap=Za(),c.typeC4Shape={text:t},c.parentBoundary=ja},addDeploymentNode:function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=za.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,za.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.type={text:"node"};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.type={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.nodeType=t,c.parentBoundary=ja,c.wrap=Za(),$a=ja,ja=e,Fa.push($a)},popBoundaryParseStack:function(){ja=$a,Fa.pop(),$a=Fa.pop(),Fa.push($a)},addRel:function(t,e,n,i,a,r,o,s,c){if(null==t||null==e||null==n||null==i)return;let l={};const u=Ha.find((t=>t.from===e&&t.to===n));if(u?l=u:Ha.push(l),l.type=t,l.from=e,l.to=n,l.label={text:i},null==a)l.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]={text:e}}else l.techn={text:a};if(null==r)l.descr={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]={text:e}}else l.descr={text:r};if("object"==typeof o){let[t,e]=Object.entries(o)[0];l[t]=e}else l.sprite=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=e}else l.tags=s;if("object"==typeof c){let[t,e]=Object.entries(c)[0];l[t]=e}else l.link=c;l.wrap=Za()},updateElStyle:function(t,e,n,i,a,r,o,s,c,l,u){let d=Pa.find((t=>t.alias===e));if(void 0!==d||(d=za.find((t=>t.alias===e)),void 0!==d)){if(null!=n)if("object"==typeof n){let[t,e]=Object.entries(n)[0];d[t]=e}else d.bgColor=n;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];d[t]=e}else d.fontColor=i;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];d[t]=e}else d.borderColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];d[t]=e}else d.shadowing=r;if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];d[t]=e}else d.shape=o;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];d[t]=e}else d.sprite=s;if(null!=c)if("object"==typeof c){let[t,e]=Object.entries(c)[0];d[t]=e}else d.techn=c;if(null!=l)if("object"==typeof l){let[t,e]=Object.entries(l)[0];d[t]=e}else d.legendText=l;if(null!=u)if("object"==typeof u){let[t,e]=Object.entries(u)[0];d[t]=e}else d.legendSprite=u}},updateRelStyle:function(t,e,n,i,a,r,o){const s=Ha.find((t=>t.from===e&&t.to===n));if(void 0!==s){if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.textColor=i;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.lineColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];s[t]=parseInt(e)}else s.offsetX=parseInt(r);if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];s[t]=parseInt(e)}else s.offsetY=parseInt(o)}},updateLayoutConfig:function(t,e,n){let i=qa,a=Wa;if("object"==typeof e){const t=Object.values(e)[0];i=parseInt(t)}else i=parseInt(e);if("object"==typeof n){const t=Object.values(n)[0];a=parseInt(t)}else a=parseInt(n);i>=1&&(qa=i),a>=1&&(Wa=a)},autoWrap:Za,setWrap:function(t){Va=t},getC4ShapeArray:Ga,getC4Shape:function(t){return Pa.find((e=>e.alias===t))},getC4ShapeKeys:function(t){return Object.keys(Ga(t))},getBoundarys:function(t){return null==t?za:za.filter((e=>e.parentBoundary===t))},getCurrentBoundaryParse:function(){return ja},getParentBoundaryParse:function(){return $a},getRels:function(){return Ha},getTitle:function(){return Ua},getC4Type:function(){return Ya},getC4ShapeInRow:function(){return qa},getC4BoundaryInRow:function(){return Wa},setAccTitle:Li,getAccTitle:Oi,getAccDescription:Ni,setAccDescription:Mi,parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().c4,clear:function(){Pa=[],za=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],$a="",ja="global",Fa=[""],Ha=[],Fa=[""],Ua="",Va=!1,qa=4,Wa=2},LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:function(t){let e=Nt(t,ai());Ua=e},setC4Type:function(t){let e=Nt(t,ai());Ya=e}},Xa=function(t,e){const n=t.append("rect");if(n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),"undefined"!==e.attrs&&null!==e.attrs)for(let i in e.attrs)n.attr(i,e.attrs[i]);return"undefined"!==e.class&&n.attr("class",e.class),n},Ja=function(t,e,n,i,a,r){const s=t.append("image");s.attr("width",e),s.attr("height",n),s.attr("x",i),s.attr("y",a);let c=r.startsWith("data:image/png;base64")?r:(0,o.Nm)(r);s.attr("xlink:href",c)},Qa=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},tr=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),er=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c){const{fontSize:l,fontFamily:u,fontWeight:d}=c,h=t.split(zt.lineBreakRegex);for(let f=0;f<h.length;f++){const t=f*l-l*(h.length-1)/2,o=e.append("text").attr("x",n+r/2).attr("y",a).style("text-anchor","middle").attr("dominant-baseline","middle").style("font-size",l).style("font-weight",d).style("font-family",u);o.append("tspan").attr("dy",t).text(h[f]).attr("alignment-baseline","mathematical"),i(o,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,0,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),nr=function(t,e,n){const i=t.append("g");let a=e.bgColor?e.bgColor:"none",r=e.borderColor?e.borderColor:"#444444",o=e.fontColor?e.fontColor:"black",s={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(s={"stroke-width":1});let c={x:e.x,y:e.y,fill:a,stroke:r,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:s};Xa(i,c);let l=n.boundaryFont();l.fontWeight="bold",l.fontSize=l.fontSize+2,l.fontColor=o,er(n)(e.label.text,i,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},l),e.type&&""!==e.type.text&&(l=n.boundaryFont(),l.fontColor=o,er(n)(e.type.text,i,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},l)),e.descr&&""!==e.descr.text&&(l=n.boundaryFont(),l.fontSize=l.fontSize-2,l.fontColor=o,er(n)(e.descr.text,i,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},l))},ir=function(t,e,n){var i;let a=e.bgColor?e.bgColor:n[e.typeC4Shape.text+"_bg_color"],r=e.borderColor?e.borderColor:n[e.typeC4Shape.text+"_border_color"],o=e.fontColor?e.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="}const c=t.append("g");c.attr("class","person-man");const l=Qa();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":l.x=e.x,l.y=e.y,l.fill=a,l.width=e.width,l.height=e.height,l.stroke=r,l.rx=2.5,l.ry=2.5,l.attrs={"stroke-width":.5},Xa(c,l);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":c.append("path").attr("fill",a).attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),c.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":c.append("path").attr("fill",a).attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),c.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2))}let u=tr(n,e.typeC4Shape.text);switch(c.append("text").attr("fill",o).attr("font-family",u.fontFamily).attr("font-size",u.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":Ja(c,48,48,e.x+e.width/2-24,e.y+e.image.Y,s)}let d=n[e.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=o,er(n)(e.label.text,c,e.x,e.y+e.label.Y,e.width,e.height,{fill:o},d),d=n[e.typeC4Shape.text+"Font"](),d.fontColor=o,e.techn&&""!==(null==(i=e.techn)?void 0:i.text)?er(n)(e.techn.text,c,e.x,e.y+e.techn.Y,e.width,e.height,{fill:o,"font-style":"italic"},d):e.type&&""!==e.type.text&&er(n)(e.type.text,c,e.x,e.y+e.type.Y,e.width,e.height,{fill:o,"font-style":"italic"},d),e.descr&&""!==e.descr.text&&(d=n.personFont(),d.fontColor=o,er(n)(e.descr.text,c,e.x,e.y+e.descr.Y,e.width,e.height,{fill:o},d)),e.height},ar=(t,e,n)=>{const i=t.append("g");let a=0;for(let r of e){let t=r.textColor?r.textColor:"#444444",e=r.lineColor?r.lineColor:"#444444",o=r.offsetX?parseInt(r.offsetX):0,s=r.offsetY?parseInt(r.offsetY):0,c="";if(0===a){let t=i.append("line");t.attr("x1",r.startPoint.x),t.attr("y1",r.startPoint.y),t.attr("x2",r.endPoint.x),t.attr("y2",r.endPoint.y),t.attr("stroke-width","1"),t.attr("stroke",e),t.style("fill","none"),"rel_b"!==r.type&&t.attr("marker-end","url("+c+"#arrowhead)"),"birel"!==r.type&&"rel_b"!==r.type||t.attr("marker-start","url("+c+"#arrowend)"),a=-1}else{let t=i.append("path");t.attr("fill","none").attr("stroke-width","1").attr("stroke",e).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",r.startPoint.x).replaceAll("starty",r.startPoint.y).replaceAll("controlx",r.startPoint.x+(r.endPoint.x-r.startPoint.x)/2-(r.endPoint.x-r.startPoint.x)/4).replaceAll("controly",r.startPoint.y+(r.endPoint.y-r.startPoint.y)/2).replaceAll("stopx",r.endPoint.x).replaceAll("stopy",r.endPoint.y)),"rel_b"!==r.type&&t.attr("marker-end","url("+c+"#arrowhead)"),"birel"!==r.type&&"rel_b"!==r.type||t.attr("marker-start","url("+c+"#arrowend)")}let l=n.messageFont();er(n)(r.label.text,i,Math.min(r.startPoint.x,r.endPoint.x)+Math.abs(r.endPoint.x-r.startPoint.x)/2+o,Math.min(r.startPoint.y,r.endPoint.y)+Math.abs(r.endPoint.y-r.startPoint.y)/2+s,r.label.width,r.label.height,{fill:t},l),r.techn&&""!==r.techn.text&&(l=n.messageFont(),er(n)("["+r.techn.text+"]",i,Math.min(r.startPoint.x,r.endPoint.x)+Math.abs(r.endPoint.x-r.startPoint.x)/2+o,Math.min(r.startPoint.y,r.endPoint.y)+Math.abs(r.endPoint.y-r.startPoint.y)/2+n.messageFontSize+5+s,Math.max(r.label.width,r.techn.width),r.techn.height,{fill:t,"font-style":"italic"},l))}},rr=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},or=function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},sr=function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},cr=function(t){const e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),e.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},lr=function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},ur=function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},dr=function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")};o.Nm;let hr=0,fr=0,gr=4,pr=2;Ma.yy=Ka;let br={};class mr{constructor(t){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,yr(t.db.getConfig())}setData(t,e,n,i){this.nextData.startx=this.data.startx=t,this.nextData.stopx=this.data.stopx=e,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(t,e,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])}insert(t){this.nextData.cnt=this.nextData.cnt+1;let e=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+t.margin:this.nextData.stopx+2*t.margin,n=e+t.width,i=this.nextData.starty+2*t.margin,a=i+t.height;(e>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>gr)&&(e=this.nextData.startx+t.margin+br.nextLinePaddingX,i=this.nextData.stopy+2*t.margin,this.nextData.stopx=n=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+t.height,this.nextData.cnt=1),t.x=e,t.y=i,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},yr(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}}const yr=function(t){Cn(br,t),t.fontFamily&&(br.personFontFamily=br.systemFontFamily=br.messageFontFamily=t.fontFamily),t.fontSize&&(br.personFontSize=br.systemFontSize=br.messageFontSize=t.fontSize),t.fontWeight&&(br.personFontWeight=br.systemFontWeight=br.messageFontWeight=t.fontWeight)},vr=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),wr=t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight});function xr(t,e,n,i,a){if(!e[t].width)if(n)e[t].text=Fn(e[t].text,a,i),e[t].textLines=e[t].text.split(zt.lineBreakRegex).length,e[t].width=a,e[t].height=$n(e[t].text,i);else{let n=e[t].text.split(zt.lineBreakRegex);e[t].textLines=n.length;let a=0;e[t].height=0,e[t].width=0;for(const r of n)e[t].width=Math.max(zn(r,i),e[t].width),a=$n(r,i),e[t].height=e[t].height+a}}const Rr=function(t,e,n){e.x=n.data.startx,e.y=n.data.starty,e.width=n.data.stopx-n.data.startx,e.height=n.data.stopy-n.data.starty,e.label.y=br.c4ShapeMargin-35;let i=e.wrap&&br.wrap,a=wr(br);a.fontSize=a.fontSize+2,a.fontWeight="bold",xr("label",e,i,a,zn(e.label.text,a)),nr(t,e,br)},_r=function(t,e,n,i){let a=0;for(const r of i){a=0;const i=n[r];let o=vr(br,i.typeC4Shape.text);switch(o.fontSize=o.fontSize-2,i.typeC4Shape.width=zn("<<"+i.typeC4Shape.text+">>",o),i.typeC4Shape.height=o.fontSize+2,i.typeC4Shape.Y=br.c4ShapePadding,a=i.typeC4Shape.Y+i.typeC4Shape.height-4,i.image={width:0,height:0,Y:0},i.typeC4Shape.text){case"person":case"external_person":i.image.width=48,i.image.height=48,i.image.Y=a,a=i.image.Y+i.image.height}i.sprite&&(i.image.width=48,i.image.height=48,i.image.Y=a,a=i.image.Y+i.image.height);let s=i.wrap&&br.wrap,c=br.width-2*br.c4ShapePadding,l=vr(br,i.typeC4Shape.text);if(l.fontSize=l.fontSize+2,l.fontWeight="bold",xr("label",i,s,l,c),i.label.Y=a+8,a=i.label.Y+i.label.height,i.type&&""!==i.type.text){i.type.text="["+i.type.text+"]",xr("type",i,s,vr(br,i.typeC4Shape.text),c),i.type.Y=a+5,a=i.type.Y+i.type.height}else if(i.techn&&""!==i.techn.text){i.techn.text="["+i.techn.text+"]",xr("techn",i,s,vr(br,i.techn.text),c),i.techn.Y=a+5,a=i.techn.Y+i.techn.height}let u=a,d=i.label.width;if(i.descr&&""!==i.descr.text){xr("descr",i,s,vr(br,i.typeC4Shape.text),c),i.descr.Y=a+20,a=i.descr.Y+i.descr.height,d=Math.max(i.label.width,i.descr.width),u=a-5*i.descr.textLines}d+=br.c4ShapePadding,i.width=Math.max(i.width||br.width,d,br.width),i.height=Math.max(i.height||br.height,u,br.height),i.margin=i.margin||br.c4ShapeMargin,t.insert(i),ir(e,i,br)}t.bumpLastMargin(br.c4ShapeMargin)};class kr{constructor(t,e){this.x=t,this.y=e}}let Er=function(t,e){let n=t.x,i=t.y,a=e.x,r=e.y,o=n+t.width/2,s=i+t.height/2,c=Math.abs(n-a),l=Math.abs(i-r),u=l/c,d=t.height/t.width,h=null;return i==r&&n<a?h=new kr(n+t.width,s):i==r&&n>a?h=new kr(n,s):n==a&&i<r?h=new kr(o,i+t.height):n==a&&i>r&&(h=new kr(o,i)),n>a&&i<r?h=d>=u?new kr(n,s+u*t.width/2):new kr(o-c/l*t.height/2,i+t.height):n<a&&i<r?h=d>=u?new kr(n+t.width,s+u*t.width/2):new kr(o+c/l*t.height/2,i+t.height):n<a&&i>r?h=d>=u?new kr(n+t.width,s-u*t.width/2):new kr(o+t.height/2*c/l,i):n>a&&i>r&&(h=d>=u?new kr(n,s-t.width/2*u):new kr(o-t.height/2*c/l,i)),h},Cr=function(t,e){let n={x:0,y:0};n.x=e.x+e.width/2,n.y=e.y+e.height/2;let i=Er(t,n);return n.x=t.x+t.width/2,n.y=t.y+t.height/2,{startPoint:i,endPoint:Er(e,n)}};function Sr(t,e,n,i,a){let r=new mr(a);r.data.widthLimit=n.data.widthLimit/Math.min(pr,i.length);for(let[o,s]of i.entries()){let i=0;s.image={width:0,height:0,Y:0},s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let c=s.wrap&&br.wrap,l=wr(br);if(l.fontSize=l.fontSize+2,l.fontWeight="bold",xr("label",s,c,l,r.data.widthLimit),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&""!==s.type.text){s.type.text="["+s.type.text+"]",xr("type",s,c,wr(br),r.data.widthLimit),s.type.Y=i+5,i=s.type.Y+s.type.height}if(s.descr&&""!==s.descr.text){let t=wr(br);t.fontSize=t.fontSize-2,xr("descr",s,c,t,r.data.widthLimit),s.descr.Y=i+20,i=s.descr.Y+s.descr.height}if(0==o||o%pr==0){let t=n.data.startx+br.diagramMarginX,e=n.data.stopy+br.diagramMarginY+i;r.setData(t,t,e,e)}else{let t=r.data.stopx!==r.data.startx?r.data.stopx+br.diagramMarginX:r.data.startx,e=r.data.starty;r.setData(t,t,e,e)}r.name=s.alias;let u=a.db.getC4ShapeArray(s.alias),d=a.db.getC4ShapeKeys(s.alias);d.length>0&&_r(r,t,u,d),e=s.alias;let h=a.db.getBoundarys(e);h.length>0&&Sr(t,e,r,h,a),"global"!==s.alias&&Rr(t,s,r),n.data.stopy=Math.max(r.data.stopy+br.c4ShapeMargin,n.data.stopy),n.data.stopx=Math.max(r.data.stopx+br.c4ShapeMargin,n.data.stopx),hr=Math.max(hr,n.data.stopx),fr=Math.max(fr,n.data.stopy)}}const Tr={drawPersonOrSystemArray:_r,drawBoundary:Rr,setConf:yr,draw:function(t,e,n,i){br=ai().c4;const a=ai().securityLevel;let r;"sandbox"===a&&(r=(0,s.Ys)("#i"+e));const o="sandbox"===a?(0,s.Ys)(r.nodes()[0].contentDocument.body):(0,s.Ys)("body");let c=i.db;i.db.setWrap(br.wrap),gr=c.getC4ShapeInRow(),pr=c.getC4BoundaryInRow(),Dt.debug(`C:${JSON.stringify(br,null,2)}`);const l="sandbox"===a?o.select(`[id="${e}"]`):(0,s.Ys)(`[id="${e}"]`);ur(l),lr(l),dr(l);let u=new mr(i);u.setData(br.diagramMarginX,br.diagramMarginX,br.diagramMarginY,br.diagramMarginY),u.data.widthLimit=screen.availWidth,hr=br.diagramMarginX,fr=br.diagramMarginY;const d=i.db.getTitle();Sr(l,"",u,i.db.getBoundarys(""),i),rr(l),or(l),cr(l),sr(l),function(t,e,n,i){let a=0;for(let o of e){a+=1;let t=o.wrap&&br.wrap,e={fontFamily:(r=br).messageFontFamily,fontSize:r.messageFontSize,fontWeight:r.messageFontWeight};"C4Dynamic"===i.db.getC4Type()&&(o.label.text=a+": "+o.label.text);let s=zn(o.label.text,e);xr("label",o,t,e,s),o.techn&&""!==o.techn.text&&(s=zn(o.techn.text,e),xr("techn",o,t,e,s)),o.descr&&""!==o.descr.text&&(s=zn(o.descr.text,e),xr("descr",o,t,e,s));let c=n(o.from),l=n(o.to),u=Cr(c,l);o.startPoint=u.startPoint,o.endPoint=u.endPoint}var r;ar(t,e,br)}(l,i.db.getRels(),i.db.getC4Shape,i),u.data.stopx=hr,u.data.stopy=fr;const h=u.data;let f=h.stopy-h.starty+2*br.diagramMarginY;const g=h.stopx-h.startx+2*br.diagramMarginX;d&&l.append("text").text(d).attr("x",(h.stopx-h.startx)/2-4*br.diagramMarginX).attr("y",h.starty+br.diagramMarginY),di(l,f,g,br.useMaxWidth);const p=d?60:0;l.attr("viewBox",h.startx-br.diagramMarginX+" -"+(br.diagramMarginY+p)+" "+g+" "+(f+p)),Dt.debug("models:",h)}};var Ar=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,3],i=[1,7],a=[1,8],r=[1,9],o=[1,10],s=[1,13],c=[1,12],l=[1,16,25],u=[1,20],d=[1,32],h=[1,33],f=[1,34],g=[1,36],p=[1,39],b=[1,37],m=[1,38],y=[1,44],v=[1,45],w=[1,40],x=[1,41],R=[1,42],_=[1,43],k=[1,48],E=[1,49],C=[1,50],S=[1,51],T=[16,25],A=[1,65],D=[1,66],I=[1,67],L=[1,68],O=[1,69],M=[1,70],N=[1,71],B=[1,80],P=[16,25,32,45,46,54,60,61,62,63,64,65,66,71,73],F=[16,25,30,32,45,46,50,54,60,61,62,63,64,65,66,71,73,88,89,90,91],j=[5,8,9,10,11,16,19,23,25],$=[54,88,89,90,91],z=[54,65,66,88,89,90,91],H=[54,60,61,62,63,64,88,89,90,91],U=[16,25,32],V=[1,107],q={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statments:5,direction:6,directive:7,direction_tb:8,direction_bt:9,direction_rl:10,direction_lr:11,graphConfig:12,openDirective:13,typeDirective:14,closeDirective:15,NEWLINE:16,":":17,argDirective:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,CLASS_DIAGRAM:23,statements:24,EOF:25,statement:26,className:27,alphaNumToken:28,classLiteralName:29,GENERICTYPE:30,relationStatement:31,LABEL:32,classStatement:33,methodStatement:34,annotationStatement:35,clickStatement:36,cssClassStatement:37,noteStatement:38,acc_title:39,acc_title_value:40,acc_descr:41,acc_descr_value:42,acc_descr_multiline_value:43,CLASS:44,STYLE_SEPARATOR:45,STRUCT_START:46,members:47,STRUCT_STOP:48,ANNOTATION_START:49,ANNOTATION_END:50,MEMBER:51,SEPARATOR:52,relation:53,STR:54,NOTE_FOR:55,noteText:56,NOTE:57,relationType:58,lineType:59,AGGREGATION:60,EXTENSION:61,COMPOSITION:62,DEPENDENCY:63,LOLLIPOP:64,LINE:65,DOTTED_LINE:66,CALLBACK:67,LINK:68,LINK_TARGET:69,CLICK:70,CALLBACK_NAME:71,CALLBACK_ARGS:72,HREF:73,CSSCLASS:74,commentToken:75,textToken:76,graphCodeTokens:77,textNoTagsToken:78,TAGSTART:79,TAGEND:80,"==":81,"--":82,PCT:83,DEFAULT:84,SPACE:85,MINUS:86,keywords:87,UNICODE_TEXT:88,NUM:89,ALPHA:90,BQUOTE_STR:91,$accept:0,$end:1},terminals_:{2:"error",5:"statments",8:"direction_tb",9:"direction_bt",10:"direction_rl",11:"direction_lr",16:"NEWLINE",17:":",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",23:"CLASS_DIAGRAM",25:"EOF",30:"GENERICTYPE",32:"LABEL",39:"acc_title",40:"acc_title_value",41:"acc_descr",42:"acc_descr_value",43:"acc_descr_multiline_value",44:"CLASS",45:"STYLE_SEPARATOR",46:"STRUCT_START",48:"STRUCT_STOP",49:"ANNOTATION_START",50:"ANNOTATION_END",51:"MEMBER",52:"SEPARATOR",54:"STR",55:"NOTE_FOR",57:"NOTE",60:"AGGREGATION",61:"EXTENSION",62:"COMPOSITION",63:"DEPENDENCY",64:"LOLLIPOP",65:"LINE",66:"DOTTED_LINE",67:"CALLBACK",68:"LINK",69:"LINK_TARGET",70:"CLICK",71:"CALLBACK_NAME",72:"CALLBACK_ARGS",73:"HREF",74:"CSSCLASS",77:"graphCodeTokens",79:"TAGSTART",80:"TAGEND",81:"==",82:"--",83:"PCT",84:"DEFAULT",85:"SPACE",86:"MINUS",87:"keywords",88:"UNICODE_TEXT",89:"NUM",90:"ALPHA",91:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[3,1],[3,2],[6,1],[6,1],[6,1],[6,1],[4,1],[7,4],[7,6],[13,1],[14,1],[18,1],[15,1],[12,4],[24,1],[24,2],[24,3],[27,1],[27,1],[27,2],[27,2],[27,2],[26,1],[26,2],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,2],[26,2],[26,1],[33,2],[33,4],[33,5],[33,7],[35,4],[47,1],[47,2],[34,1],[34,2],[34,1],[34,1],[31,3],[31,4],[31,4],[31,5],[38,3],[38,2],[53,3],[53,2],[53,2],[53,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[36,3],[36,4],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[37,3],[75,1],[75,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[78,1],[78,1],[78,1],[78,1],[28,1],[28,1],[28,1],[29,1],[56,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 5:i.setDirection("TB");break;case 6:i.setDirection("BT");break;case 7:i.setDirection("RL");break;case 8:i.setDirection("LR");break;case 12:i.parseDirective("%%{","open_directive");break;case 13:i.parseDirective(r[s],"type_directive");break;case 14:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 15:i.parseDirective("}%%","close_directive","class");break;case 20:case 21:this.$=r[s];break;case 22:this.$=r[s-1]+r[s];break;case 23:case 24:this.$=r[s-1]+"~"+r[s];break;case 25:i.addRelation(r[s]);break;case 26:r[s-1].title=i.cleanupLabel(r[s]),i.addRelation(r[s-1]);break;case 35:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 36:case 37:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 38:i.addClass(r[s]);break;case 39:i.addClass(r[s-2]),i.setCssClass(r[s-2],r[s]);break;case 40:i.addClass(r[s-3]),i.addMembers(r[s-3],r[s-1]);break;case 41:i.addClass(r[s-5]),i.setCssClass(r[s-5],r[s-3]),i.addMembers(r[s-5],r[s-1]);break;case 42:i.addAnnotation(r[s],r[s-2]);break;case 43:this.$=[r[s]];break;case 44:r[s].push(r[s-1]),this.$=r[s];break;case 45:case 47:case 48:break;case 46:i.addMember(r[s-1],i.cleanupLabel(r[s]));break;case 49:this.$={id1:r[s-2],id2:r[s],relation:r[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:r[s-3],id2:r[s],relation:r[s-1],relationTitle1:r[s-2],relationTitle2:"none"};break;case 51:this.$={id1:r[s-3],id2:r[s],relation:r[s-2],relationTitle1:"none",relationTitle2:r[s-1]};break;case 52:this.$={id1:r[s-4],id2:r[s],relation:r[s-2],relationTitle1:r[s-3],relationTitle2:r[s-1]};break;case 53:i.addNote(r[s],r[s-1]);break;case 54:i.addNote(r[s]);break;case 55:this.$={type1:r[s-2],type2:r[s],lineType:r[s-1]};break;case 56:this.$={type1:"none",type2:r[s],lineType:r[s-1]};break;case 57:this.$={type1:r[s-1],type2:"none",lineType:r[s]};break;case 58:this.$={type1:"none",type2:"none",lineType:r[s]};break;case 59:this.$=i.relationType.AGGREGATION;break;case 60:this.$=i.relationType.EXTENSION;break;case 61:this.$=i.relationType.COMPOSITION;break;case 62:this.$=i.relationType.DEPENDENCY;break;case 63:this.$=i.relationType.LOLLIPOP;break;case 64:this.$=i.lineType.LINE;break;case 65:this.$=i.lineType.DOTTED_LINE;break;case 66:case 72:this.$=r[s-2],i.setClickEvent(r[s-1],r[s]);break;case 67:case 73:this.$=r[s-3],i.setClickEvent(r[s-2],r[s-1]),i.setTooltip(r[s-2],r[s]);break;case 68:case 76:this.$=r[s-2],i.setLink(r[s-1],r[s]);break;case 69:case 77:this.$=r[s-3],i.setLink(r[s-2],r[s-1],r[s]);break;case 70:case 78:this.$=r[s-3],i.setLink(r[s-2],r[s-1]),i.setTooltip(r[s-2],r[s]);break;case 71:case 79:this.$=r[s-4],i.setLink(r[s-3],r[s-2],r[s]),i.setTooltip(r[s-3],r[s-1]);break;case 74:this.$=r[s-3],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 75:this.$=r[s-4],i.setClickEvent(r[s-3],r[s-2],r[s-1]),i.setTooltip(r[s-3],r[s]);break;case 80:i.setCssClass(r[s-1],r[s])}},table:[{3:1,4:2,5:n,6:4,7:5,8:i,9:a,10:r,11:o,12:6,13:11,19:s,23:c},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{3:14,4:2,5:n,6:4,7:5,8:i,9:a,10:r,11:o,12:6,13:11,19:s,23:c},{1:[2,9]},e(l,[2,5]),e(l,[2,6]),e(l,[2,7]),e(l,[2,8]),{14:15,20:[1,16]},{16:[1,17]},{20:[2,12]},{1:[2,4]},{15:18,17:[1,19],22:u},e([17,22],[2,13]),{6:31,7:30,8:i,9:a,10:r,11:o,13:11,19:s,24:21,26:22,27:35,28:46,29:47,31:23,33:24,34:25,35:26,36:27,37:28,38:29,39:d,41:h,43:f,44:g,49:p,51:b,52:m,55:y,57:v,67:w,68:x,70:R,74:_,88:k,89:E,90:C,91:S},{16:[1,52]},{18:53,21:[1,54]},{16:[2,15]},{25:[1,55]},{16:[1,56],25:[2,17]},e(T,[2,25],{32:[1,57]}),e(T,[2,27]),e(T,[2,28]),e(T,[2,29]),e(T,[2,30]),e(T,[2,31]),e(T,[2,32]),e(T,[2,33]),e(T,[2,34]),{40:[1,58]},{42:[1,59]},e(T,[2,37]),e(T,[2,45],{53:60,58:63,59:64,32:[1,62],54:[1,61],60:A,61:D,62:I,63:L,64:O,65:M,66:N}),{27:72,28:46,29:47,88:k,89:E,90:C,91:S},e(T,[2,47]),e(T,[2,48]),{28:73,88:k,89:E,90:C},{27:74,28:46,29:47,88:k,89:E,90:C,91:S},{27:75,28:46,29:47,88:k,89:E,90:C,91:S},{27:76,28:46,29:47,88:k,89:E,90:C,91:S},{54:[1,77]},{27:78,28:46,29:47,88:k,89:E,90:C,91:S},{54:B,56:79},e(P,[2,20],{28:46,29:47,27:81,30:[1,82],88:k,89:E,90:C,91:S}),e(P,[2,21],{30:[1,83]}),e(F,[2,94]),e(F,[2,95]),e(F,[2,96]),e([16,25,30,32,45,46,54,60,61,62,63,64,65,66,71,73],[2,97]),e(j,[2,10]),{15:84,22:u},{22:[2,14]},{1:[2,16]},{6:31,7:30,8:i,9:a,10:r,11:o,13:11,19:s,24:85,25:[2,18],26:22,27:35,28:46,29:47,31:23,33:24,34:25,35:26,36:27,37:28,38:29,39:d,41:h,43:f,44:g,49:p,51:b,52:m,55:y,57:v,67:w,68:x,70:R,74:_,88:k,89:E,90:C,91:S},e(T,[2,26]),e(T,[2,35]),e(T,[2,36]),{27:86,28:46,29:47,54:[1,87],88:k,89:E,90:C,91:S},{53:88,58:63,59:64,60:A,61:D,62:I,63:L,64:O,65:M,66:N},e(T,[2,46]),{59:89,65:M,66:N},e($,[2,58],{58:90,60:A,61:D,62:I,63:L,64:O}),e(z,[2,59]),e(z,[2,60]),e(z,[2,61]),e(z,[2,62]),e(z,[2,63]),e(H,[2,64]),e(H,[2,65]),e(T,[2,38],{45:[1,91],46:[1,92]}),{50:[1,93]},{54:[1,94]},{54:[1,95]},{71:[1,96],73:[1,97]},{28:98,88:k,89:E,90:C},{54:B,56:99},e(T,[2,54]),e(T,[2,98]),e(P,[2,22]),e(P,[2,23]),e(P,[2,24]),{16:[1,100]},{25:[2,19]},e(U,[2,49]),{27:101,28:46,29:47,88:k,89:E,90:C,91:S},{27:102,28:46,29:47,54:[1,103],88:k,89:E,90:C,91:S},e($,[2,57],{58:104,60:A,61:D,62:I,63:L,64:O}),e($,[2,56]),{28:105,88:k,89:E,90:C},{47:106,51:V},{27:108,28:46,29:47,88:k,89:E,90:C,91:S},e(T,[2,66],{54:[1,109]}),e(T,[2,68],{54:[1,111],69:[1,110]}),e(T,[2,72],{54:[1,112],72:[1,113]}),e(T,[2,76],{54:[1,115],69:[1,114]}),e(T,[2,80]),e(T,[2,53]),e(j,[2,11]),e(U,[2,51]),e(U,[2,50]),{27:116,28:46,29:47,88:k,89:E,90:C,91:S},e($,[2,55]),e(T,[2,39],{46:[1,117]}),{48:[1,118]},{47:119,48:[2,43],51:V},e(T,[2,42]),e(T,[2,67]),e(T,[2,69]),e(T,[2,70],{69:[1,120]}),e(T,[2,73]),e(T,[2,74],{54:[1,121]}),e(T,[2,77]),e(T,[2,78],{69:[1,122]}),e(U,[2,52]),{47:123,51:V},e(T,[2,40]),{48:[2,44]},e(T,[2,71]),e(T,[2,75]),e(T,[2,79]),{48:[1,124]},e(T,[2,41])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],6:[2,9],13:[2,12],14:[2,4],20:[2,15],54:[2,14],55:[2,16],85:[2,19],119:[2,44]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},W=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),19;case 1:return 8;case 2:return 9;case 3:return 10;case 4:return 11;case 5:return this.begin("type_directive"),20;case 6:return this.popState(),this.begin("arg_directive"),17;case 7:return this.popState(),this.popState(),22;case 8:return 21;case 9:case 10:case 19:case 27:break;case 11:return this.begin("acc_title"),39;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),41;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 39:case 42:case 45:case 48:case 51:case 54:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 16;case 20:case 21:return 23;case 22:return this.begin("struct"),46;case 23:return"EDGE_STATE";case 24:return"EOF_IN_STRUCT";case 25:return"OPEN_IN_STRUCT";case 26:return this.popState(),48;case 28:return"MEMBER";case 29:return 44;case 30:return 74;case 31:return 67;case 32:return 68;case 33:return 70;case 34:return 55;case 35:return 57;case 36:return 49;case 37:return 50;case 38:this.begin("generic");break;case 40:return"GENERICTYPE";case 41:this.begin("string");break;case 43:return"STR";case 44:this.begin("bqstring");break;case 46:return"BQUOTE_STR";case 47:this.begin("href");break;case 49:return 73;case 50:this.begin("callback_name");break;case 52:this.popState(),this.begin("callback_args");break;case 53:return 71;case 55:return 72;case 56:case 57:case 58:case 59:return 69;case 60:case 61:return 61;case 62:case 63:return 63;case 64:return 62;case 65:return 60;case 66:return 64;case 67:return 65;case 68:return 66;case 69:return 32;case 70:return 45;case 71:return 86;case 72:return"DOT";case 73:return"PLUS";case 74:return 83;case 75:case 76:return"EQUALS";case 77:return 90;case 78:return"PUNCTUATION";case 79:return 89;case 80:return 88;case 81:return 85;case 82:return 25}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:[{])/,/^(?:\[\*\])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:class\b)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},callback_args:{rules:[54,55],inclusive:!1},callback_name:{rules:[51,52,53],inclusive:!1},href:{rules:[48,49],inclusive:!1},struct:{rules:[23,24,25,26,27,28],inclusive:!1},generic:{rules:[39,40],inclusive:!1},bqstring:{rules:[45,46],inclusive:!1},string:{rules:[42,43],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,29,30,31,32,33,34,35,36,37,38,41,44,47,50,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82],inclusive:!0}}},t);function Y(){this.yy={}}return q.lexer=W,Y.prototype=q,q.Parser=Y,new Y}();Ar.parser=Ar;const Dr=Ar,Ir=(t,e)=>{var n;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.class)?void 0:n.defaultRenderer)&&null!==t.match(/^\s*classDiagram/)},Lr=(t,e)=>{var n;return null!==t.match(/^\s*classDiagram/)&&"dagre-wrapper"===(null==(n=null==e?void 0:e.class)?void 0:n.defaultRenderer)||null!==t.match(/^\s*classDiagram-v2/)},Or="classid-";let Mr=[],Nr={},Br=[],Pr=0,Fr=[];const jr=t=>zt.sanitizeText(t,ai()),$r=function(t){let e="",n=t;if(t.indexOf("~")>0){let i=t.split("~");n=i[0],e=zt.sanitizeText(i[1],ai())}return{className:n,type:e}},zr=function(t){let e=$r(t);void 0===Nr[e.className]&&(Nr[e.className]={id:e.className,type:e.type,cssClasses:[],methods:[],members:[],annotations:[],domId:Or+e.className+"-"+Pr},Pr++)},Hr=function(t){const e=Object.keys(Nr);for(const n of e)if(Nr[n].id===t)return Nr[n].domId},Ur=function(t,e){const n=$r(t).className,i=Nr[n];if("string"==typeof e){const t=e.trim();t.startsWith("<<")&&t.endsWith(">>")?i.annotations.push(jr(t.substring(2,t.length-2))):t.indexOf(")")>0?i.methods.push(jr(t)):t&&i.members.push(jr(t))}},Vr=function(t,e){t.split(",").forEach((function(t){let n=t;t[0].match(/\d/)&&(n=Or+n),void 0!==Nr[n]&&Nr[n].cssClasses.push(e)}))},qr=function(t,e,n){const i=ai();let a=t,r=Hr(a);if("loose"===i.securityLevel&&void 0!==e&&void 0!==Nr[a]){let t=[];if("string"==typeof n){t=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let e=0;e<t.length;e++){let n=t[e].trim();'"'===n.charAt(0)&&'"'===n.charAt(n.length-1)&&(n=n.substr(1,n.length-2)),t[e]=n}}0===t.length&&t.push(r),Fr.push((function(){const n=document.querySelector(`[id="${r}"]`);null!==n&&n.addEventListener("click",(function(){Gn.runFunc(e,...t)}),!1)}))}},Wr=function(t){let e=(0,s.Ys)(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=(0,s.Ys)("body").append("div").attr("class","mermaidTooltip").style("opacity",0));(0,s.Ys)(t).select("svg").selectAll("g.node").on("mouseover",(function(){const t=(0,s.Ys)(this);if(null===t.attr("title"))return;const n=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+n.left+(n.right-n.left)/2+"px").style("top",window.scrollY+n.top-14+document.body.scrollTop+"px"),e.html(e.html().replace(/<br\/>/g,"<br/>")),t.classed("hover",!0)})).on("mouseout",(function(){e.transition().duration(500).style("opacity",0);(0,s.Ys)(this).classed("hover",!1)}))};Fr.push(Wr);let Yr="TB";const Gr={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},setAccTitle:Li,getAccTitle:Oi,getAccDescription:Ni,setAccDescription:Mi,getConfig:()=>ai().class,addClass:zr,bindFunctions:function(t){Fr.forEach((function(e){e(t)}))},clear:function(){Mr=[],Nr={},Br=[],Fr=[],Fr.push(Wr),Ii()},getClass:function(t){return Nr[t]},getClasses:function(){return Nr},getNotes:function(){return Br},addAnnotation:function(t,e){const n=$r(t).className;Nr[n].annotations.push(e)},addNote:function(t,e){const n={id:`note${Br.length}`,class:e,text:t};Br.push(n)},getRelations:function(){return Mr},addRelation:function(t){Dt.debug("Adding relation: "+JSON.stringify(t)),zr(t.id1),zr(t.id2),t.id1=$r(t.id1).className,t.id2=$r(t.id2).className,t.relationTitle1=zt.sanitizeText(t.relationTitle1.trim(),ai()),t.relationTitle2=zt.sanitizeText(t.relationTitle2.trim(),ai()),Mr.push(t)},getDirection:()=>Yr,setDirection:t=>{Yr=t},addMember:Ur,addMembers:function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach((e=>Ur(t,e))))},cleanupLabel:function(t){return":"===t.substring(0,1)?zt.sanitizeText(t.substr(1).trim(),ai()):jr(t.trim())},lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4},setClickEvent:function(t,e,n){t.split(",").forEach((function(t){qr(t,e,n),Nr[t].haveCallback=!0})),Vr(t,"clickable")},setCssClass:Vr,setLink:function(t,e,n){const i=ai();t.split(",").forEach((function(t){let a=t;t[0].match(/\d/)&&(a=Or+a),void 0!==Nr[a]&&(Nr[a].link=Gn.formatUrl(e,i),"sandbox"===i.securityLevel?Nr[a].linkTarget="_top":Nr[a].linkTarget="string"==typeof n?jr(n):"_blank")})),Vr(t,"clickable")},getTooltip:function(t){return Nr[t].tooltip},setTooltip:function(t,e){const n=ai();t.split(",").forEach((function(t){void 0!==e&&(Nr[t].tooltip=zt.sanitizeText(e,n))}))},lookUpDomId:Hr,setDiagramTitle:Bi,getDiagramTitle:Pi};let Zr=0;const Kr=function(t){let e=t.match(/^([#+~-])?(\w+)(~\w+~|\[])?\s+(\w+) *([$*])?$/),n=t.match(/^([#+|~-])?(\w+) *\( *(.*)\) *([$*])? *(\w*[[\]|~]*\s*\w*~?)$/);return e&&!n?Xr(e):n?Jr(n):Qr(t)},Xr=function(t){let e="",n="";try{let i=t[1]?t[1].trim():"",a=t[2]?t[2].trim():"",r=t[3]?$t(t[3].trim()):"",o=t[4]?t[4].trim():"",s=t[5]?t[5].trim():"";n=i+a+r+" "+o,e=eo(s)}catch(i){n=t}return{displayText:n,cssStyle:e}},Jr=function(t){let e="",n="";try{let i=t[1]?t[1].trim():"",a=t[2]?t[2].trim():"",r=t[3]?$t(t[3].trim()):"",o=t[4]?t[4].trim():"";n=i+a+"("+r+")"+(t[5]?" : "+$t(t[5]).trim():""),e=eo(o)}catch(i){n=t}return{displayText:n,cssStyle:e}},Qr=function(t){let e="",n="",i="",a=t.indexOf("("),r=t.indexOf(")");if(a>1&&r>a&&r<=t.length){let o="",s="",c=t.substring(0,1);c.match(/\w/)?s=t.substring(0,a).trim():(c.match(/[#+~-]/)&&(o=c),s=t.substring(1,a).trim());const l=t.substring(a+1,r);t.substring(r+1,1),n=eo(t.substring(r+1,r+2)),e=o+s+"("+$t(l.trim())+")",r<t.length&&(i=t.substring(r+2).trim(),""!==i&&(i=" : "+$t(i),e+=i))}else e=$t(t);return{displayText:e,cssStyle:n}},to=function(t,e,n,i){let a=Kr(e);const r=t.append("tspan").attr("x",i.padding).text(a.displayText);""!==a.cssStyle&&r.attr("style",a.cssStyle),n||r.attr("dy",i.textHeight)},eo=function(t){switch(t){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}},no=function(t,e,n,i){Dt.debug("Rendering class ",e,n);const a=e.id,r={id:a,label:e.id,width:0,height:0},o=t.append("g").attr("id",i.db.lookUpDomId(a)).attr("class","classGroup");let s;s=e.link?o.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",n.textHeight+n.padding).attr("x",0):o.append("text").attr("y",n.textHeight+n.padding).attr("x",0);let c=!0;e.annotations.forEach((function(t){const e=s.append("tspan").text("\xab"+t+"\xbb");c||e.attr("dy",n.textHeight),c=!1}));let l=e.id;void 0!==e.type&&""!==e.type&&(l+="<"+e.type+">");const u=s.append("tspan").text(l).attr("class","title");c||u.attr("dy",n.textHeight);const d=s.node().getBBox().height,h=o.append("line").attr("x1",0).attr("y1",n.padding+d+n.dividerMargin/2).attr("y2",n.padding+d+n.dividerMargin/2),f=o.append("text").attr("x",n.padding).attr("y",d+n.dividerMargin+n.textHeight).attr("fill","white").attr("class","classText");c=!0,e.members.forEach((function(t){to(f,t,c,n),c=!1}));const g=f.node().getBBox(),p=o.append("line").attr("x1",0).attr("y1",n.padding+d+n.dividerMargin+g.height).attr("y2",n.padding+d+n.dividerMargin+g.height),b=o.append("text").attr("x",n.padding).attr("y",d+2*n.dividerMargin+g.height+n.textHeight).attr("fill","white").attr("class","classText");c=!0,e.methods.forEach((function(t){to(b,t,c,n),c=!1}));const m=o.node().getBBox();var y=" ";e.cssClasses.length>0&&(y+=e.cssClasses.join(" "));const v=o.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",m.width+2*n.padding).attr("height",m.height+n.padding+.5*n.dividerMargin).attr("class",y).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(v-t.getBBox().width)/2)})),e.tooltip&&s.insert("title").text(e.tooltip),h.attr("x2",v),p.attr("x2",v),r.width=v,r.height=m.height+n.padding+.5*n.dividerMargin,r},io=function(t,e,n,i,a){const r=function(t){switch(t){case a.db.relationType.AGGREGATION:return"aggregation";case a.db.relationType.EXTENSION:return"extension";case a.db.relationType.COMPOSITION:return"composition";case a.db.relationType.DEPENDENCY:return"dependency";case a.db.relationType.LOLLIPOP:return"lollipop"}};e.points=e.points.filter((t=>!Number.isNaN(t.y)));const o=e.points,c=(0,s.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(s.$0Z),l=t.append("path").attr("d",c(o)).attr("id","edge"+Zr).attr("class","relation");let u,d,h="";i.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),1==n.relation.lineType&&l.attr("class","relation dashed-line"),10==n.relation.lineType&&l.attr("class","relation dotted-line"),"none"!==n.relation.type1&&l.attr("marker-start","url("+h+"#"+r(n.relation.type1)+"Start)"),"none"!==n.relation.type2&&l.attr("marker-end","url("+h+"#"+r(n.relation.type2)+"End)");const f=e.points.length;let g,p,b,m,y=Gn.calcLabelPosition(e.points);if(u=y.x,d=y.y,f%2!=0&&f>1){let t=Gn.calcCardinalityPosition("none"!==n.relation.type1,e.points,e.points[0]),i=Gn.calcCardinalityPosition("none"!==n.relation.type2,e.points,e.points[f-1]);Dt.debug("cardinality_1_point "+JSON.stringify(t)),Dt.debug("cardinality_2_point "+JSON.stringify(i)),g=t.x,p=t.y,b=i.x,m=i.y}if(void 0!==n.title){const e=t.append("g").attr("class","classLabel"),a=e.append("text").attr("class","label").attr("x",u).attr("y",d).attr("fill","red").attr("text-anchor","middle").text(n.title);window.label=a;const r=a.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",r.x-i.padding/2).attr("y",r.y-i.padding/2).attr("width",r.width+i.padding).attr("height",r.height+i.padding)}if(Dt.info("Rendering relation "+JSON.stringify(n)),void 0!==n.relationTitle1&&"none"!==n.relationTitle1){t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",g).attr("y",p).attr("fill","black").attr("font-size","6").text(n.relationTitle1)}if(void 0!==n.relationTitle2&&"none"!==n.relationTitle2){t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",b).attr("y",m).attr("fill","black").attr("font-size","6").text(n.relationTitle2)}Zr++},ao=function(t,e,n,i){Dt.debug("Rendering note ",e,n);const a=e.id,r={id:a,text:e.text,width:0,height:0},o=t.append("g").attr("id",a).attr("class","classGroup");let s=o.append("text").attr("y",n.textHeight+n.padding).attr("x",0);const c=JSON.parse(`"${e.text}"`).split("\n");c.forEach((function(t){Dt.debug(`Adding line: ${t}`),s.append("tspan").text(t).attr("class","title").attr("dy",n.textHeight)}));const l=o.node().getBBox(),u=o.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",l.width+2*n.padding).attr("height",l.height+c.length*n.textHeight+n.padding+.5*n.dividerMargin).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(u-t.getBBox().width)/2)})),r.width=u,r.height=l.height+c.length*n.textHeight+n.padding+.5*n.dividerMargin,r};let ro={};const oo=function(t){const e=Object.entries(ro).find((e=>e[1].label===t));if(e)return e[0]},so={draw:function(t,e,n,i){const a=ai().class;ro={},Dt.info("Rendering diagram "+t);const r=ai().securityLevel;let o;"sandbox"===r&&(o=(0,s.Ys)("#i"+e));const c="sandbox"===r?(0,s.Ys)(o.nodes()[0].contentDocument.body):(0,s.Ys)("body"),l=c.select(`[id='${e}']`);var u;(u=l).append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),u.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),u.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),u.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),u.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),u.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),u.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),u.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z");const d=new lt.k({multigraph:!0});d.setGraph({isMultiGraph:!0}),d.setDefaultEdgeLabel((function(){return{}}));const h=i.db.getClasses(),f=Object.keys(h);for(const s of f){const t=h[s],e=no(l,t,a,i);ro[e.id]=e,d.setNode(e.id,e),Dt.info("Org height: "+e.height)}i.db.getRelations().forEach((function(t){Dt.info("tjoho"+oo(t.id1)+oo(t.id2)+JSON.stringify(t)),d.setEdge(oo(t.id1),oo(t.id2),{relation:t},t.title||"DEFAULT")}));i.db.getNotes().forEach((function(t){Dt.debug(`Adding note: ${JSON.stringify(t)}`);const e=ao(l,t,a,i);ro[e.id]=e,d.setNode(e.id,e),t.class&&t.class in h&&d.setEdge(t.id,oo(t.class),{relation:{id1:t.id,id2:t.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")})),(0,ct.bK)(d),d.nodes().forEach((function(t){void 0!==t&&void 0!==d.node(t)&&(Dt.debug("Node "+t+": "+JSON.stringify(d.node(t))),c.select("#"+(i.db.lookUpDomId(t)||t)).attr("transform","translate("+(d.node(t).x-d.node(t).width/2)+","+(d.node(t).y-d.node(t).height/2)+" )"))})),d.edges().forEach((function(t){void 0!==t&&void 0!==d.edge(t)&&(Dt.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(d.edge(t))),io(l,d.edge(t),d.edge(t).relation,a,i))}));const g=l.node().getBBox(),p=g.width+40,b=g.height+40;di(l,b,p,a.useMaxWidth);const m=`${g.x-20} ${g.y-20} ${p} ${b}`;Dt.debug(`viewBox ${m}`),l.attr("viewBox",m)}},co={extension:(t,e,n)=>{Dt.trace("Making markers for ",n),t.append("defs").append("marker").attr("id",e+"-extensionStart").attr("class","marker extension "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},composition:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-compositionStart").attr("class","marker composition "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},aggregation:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},dependency:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},lollipop:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","white").attr("cx",6).attr("cy",7).attr("r",6)},point:(t,e)=>{t.append("marker").attr("id",e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 12 20").attr("refX",10).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},circle:(t,e)=>{t.append("marker").attr("id",e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},cross:(t,e)=>{t.append("marker").attr("id",e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},barb:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}},lo=(t,e,n,i)=>{e.forEach((e=>{co[e](t,n,i)}))};const uo=(t,e,n,i)=>{let a=t||"";if("object"==typeof a&&(a=a[0]),jt(ai().flowchart.htmlLabels)){a=a.replace(/\\n|\n/g,"<br />"),Dt.info("vertexText"+a);let t=function(t){const e=(0,s.Ys)(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),n=e.append("xhtml:div"),i=t.label,a=t.isNode?"nodeLabel":"edgeLabel";var r,o;return n.html('<span class="'+a+'" '+(t.labelStyle?'style="'+t.labelStyle+'"':"")+">"+i+"</span>"),r=n,(o=t.labelStyle)&&r.attr("style",o),n.style("display","inline-block"),n.style("white-space","nowrap"),n.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}({isNode:i,label:Zh(a).replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`)),labelStyle:e.replace("fill:","color:")});return t}{const t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));let i=[];i="string"==typeof a?a.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(a)?a:[];for(const e of i){const i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),n?i.setAttribute("class","title-row"):i.setAttribute("class","row"),i.textContent=e.trim(),t.appendChild(i)}return t}},ho=(t,e,n,i)=>{let a;a=n||"node default";const r=t.insert("g").attr("class",a).attr("id",e.domId||e.id),o=r.insert("g").attr("class","label").attr("style",e.labelStyle);let c;c=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0];const l=o.node().appendChild(uo(Nt(Zh(c),ai()),e.labelStyle,!1,i));let u=l.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=l.children[0],e=(0,s.Ys)(l);u=t.getBoundingClientRect(),e.attr("width",u.width),e.attr("height",u.height)}const d=e.padding/2;return o.attr("transform","translate("+-u.width/2+", "+-u.height/2+")"),{shapeSvg:r,bbox:u,halfPadding:d,label:o}},fo=(t,e)=>{const n=e.node().getBBox();t.width=n.width,t.height=n.height};function go(t,e,n,i){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+n/2+")")}let po={},bo={},mo={};const yo=(t,e)=>(Dt.trace("In isDecendant",e," ",t," = ",bo[e].includes(t)),!!bo[e].includes(t)),vo=(t,e,n,i)=>{Dt.warn("Copying children of ",t,"root",i,"data",e.node(t),i);const a=e.children(t)||[];t!==i&&a.push(t),Dt.warn("Copying (nodes) clusterId",t,"nodes",a),a.forEach((a=>{if(e.children(a).length>0)vo(a,e,n,i);else{const r=e.node(a);Dt.info("cp ",a," to ",i," with parent ",t),n.setNode(a,r),i!==e.parent(a)&&(Dt.warn("Setting parent",a,e.parent(a)),n.setParent(a,e.parent(a))),t!==i&&a!==t?(Dt.debug("Setting parent",a,t),n.setParent(a,t)):(Dt.info("In copy ",t,"root",i,"data",e.node(t),i),Dt.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==i,"node!==clusterId",a!==t));const o=e.edges(a);Dt.debug("Copying Edges",o),o.forEach((a=>{Dt.info("Edge",a);const r=e.edge(a.v,a.w,a.name);Dt.info("Edge data",r,i);try{((t,e)=>(Dt.info("Decendants of ",e," is ",bo[e]),Dt.info("Edge is ",t),t.v!==e&&t.w!==e&&(bo[e]?bo[e].includes(t.v)||yo(t.v,e)||yo(t.w,e)||bo[e].includes(t.w):(Dt.debug("Tilt, ",e,",not in decendants"),!1))))(a,i)?(Dt.info("Copying as ",a.v,a.w,r,a.name),n.setEdge(a.v,a.w,r,a.name),Dt.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):Dt.info("Skipping copy of edge ",a.v,"--\x3e",a.w," rootId: ",i," clusterId:",t)}catch(o){Dt.error(o)}}))}Dt.debug("Removing node",a),e.removeNode(a)}))},wo=(t,e)=>{const n=e.children(t);let i=[...n];for(const a of n)mo[a]=t,i=[...i,...wo(a,e)];return i},xo=(t,e)=>{Dt.trace("Searching",t);const n=e.children(t);if(Dt.trace("Searching children of id ",t,n),n.length<1)return Dt.trace("This is a valid node",t),t;for(const i of n){const n=xo(i,e);if(n)return Dt.trace("Found replacement for",t," => ",n),n}},Ro=t=>po[t]&&po[t].externalConnections&&po[t]?po[t].id:t,_o=(t,e)=>{if(Dt.warn("extractor - ",e,ut.c(t),t.children("D")),e>10)return void Dt.error("Bailing out");let n=t.nodes(),i=!1;for(const a of n){const e=t.children(a);i=i||e.length>0}if(i){Dt.debug("Nodes = ",n,e);for(const i of n)if(Dt.debug("Extracting node",i,po,po[i]&&!po[i].externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),po[i])if(!po[i].externalConnections&&t.children(i)&&t.children(i).length>0){Dt.warn("Cluster without external connections, without a parent and with children",i,e);let n="TB"===t.graph().rankdir?"LR":"TB";po[i]&&po[i].clusterData&&po[i].clusterData.dir&&(n=po[i].clusterData.dir,Dt.warn("Fixing dir",po[i].clusterData.dir,n));const a=new lt.k({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));Dt.warn("Old graph before copy",ut.c(t)),vo(i,t,a,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:po[i].clusterData,labelText:po[i].labelText,graph:a}),Dt.warn("New graph after copy node: (",i,")",ut.c(a)),Dt.debug("Old graph after copy",ut.c(t))}else Dt.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!po[i].externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),Dt.debug(po);else Dt.debug("Not a cluster",i,e);n=t.nodes(),Dt.warn("New list of nodes",n);for(const i of n){const n=t.node(i);Dt.warn(" Now next level",i,n),n.clusterNode&&_o(n.graph,e+1)}}else Dt.debug("Done, no node has children",t.nodes())},ko=(t,e)=>{if(0===e.length)return[];let n=Object.assign(e);return e.forEach((e=>{const i=t.children(e),a=ko(t,i);n=[...n,...a]})),n};function Eo(t,e,n,i){var a=t.x,r=t.y,o=a-i.x,s=r-i.y,c=Math.sqrt(e*e*s*s+n*n*o*o),l=Math.abs(e*n*o/c);i.x<a&&(l=-l);var u=Math.abs(e*n*s/c);return i.y<r&&(u=-u),{x:a+l,y:r+u}}function Co(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(a=e.y-t.y,o=t.x-e.x,c=e.x*t.y-t.x*e.y,h=a*n.x+o*n.y+c,f=a*i.x+o*i.y+c,!(0!==h&&0!==f&&So(h,f)||(r=i.y-n.y,s=n.x-i.x,l=i.x*n.y-n.x*i.y,u=r*t.x+s*t.y+l,d=r*e.x+s*e.y+l,0!==u&&0!==d&&So(u,d)||0==(g=a*s-r*o))))return p=Math.abs(g/2),{x:(b=o*l-s*c)<0?(b-p)/g:(b+p)/g,y:(b=r*c-a*l)<0?(b-p)/g:(b+p)/g}}function So(t,e){return t*e>0}const To=(t,e)=>{var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=0===s?0:l*o/s,i=l):(o<0&&(c=-c),n=c,i=0===o?0:c*s/o),{x:a+n,y:r+i}},Ao={node:function(t,e){return t.intersect(e)},circle:function(t,e,n){return Eo(t,e,e,n)},ellipse:Eo,polygon:function(t,e,n){var i=t.x,a=t.y,r=[],o=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach((function(t){o=Math.min(o,t.x),s=Math.min(s,t.y)})):(o=Math.min(o,e.x),s=Math.min(s,e.y));for(var c=i-t.width/2-o,l=a-t.height/2-s,u=0;u<e.length;u++){var d=e[u],h=e[u<e.length-1?u+1:0],f=Co(t,n,{x:c+d.x,y:l+d.y},{x:c+h.x,y:l+h.y});f&&r.push(f)}return r.length?(r.length>1&&r.sort((function(t,e){var i=t.x-n.x,a=t.y-n.y,r=Math.sqrt(i*i+a*a),o=e.x-n.x,s=e.y-n.y,c=Math.sqrt(o*o+s*s);return r<c?-1:r===c?0:1})),r[0]):t},rect:To},Do=(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=ho(t,e,"node "+e.classes,!0);Dt.info("Classes = ",e.classes);const r=n.insert("rect",":first-child");return r.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),fo(e,r),e.intersect=function(t){return Ao.rect(e,t)},n},Io=(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding+(i.height+e.padding),r=[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}];Dt.info("Question main (Circle)");const o=go(n,a,a,r);return o.attr("style",e.style),fo(e,o),e.intersect=function(t){return Dt.warn("Intersect called"),Ao.polygon(e,r,t)},n};function Lo(t,e,n,i){const a=[],r=t=>{a.push(t,0)},o=t=>{a.push(0,t)};e.includes("t")?(Dt.debug("add top border"),r(n)):o(n),e.includes("r")?(Dt.debug("add right border"),r(i)):o(i),e.includes("b")?(Dt.debug("add bottom border"),r(n)):o(n),e.includes("l")?(Dt.debug("add left border"),r(i)):o(i),t.attr("stroke-dasharray",a.join(" "))}const Oo=(t,e,n)=>{const i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let a=70,r=10;"LR"===n&&(a=10,r=70);const o=i.append("rect").attr("x",-1*a/2).attr("y",-1*r/2).attr("width",a).attr("height",r).attr("class","fork-join");return fo(e,o),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return Ao.rect(e,t)},i},Mo={rhombus:Io,question:Io,rect:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=ho(t,e,"node "+e.classes,!0);Dt.trace("Classes = ",e.classes);const r=n.insert("rect",":first-child"),o=i.width+e.padding,s=i.height+e.padding;if(r.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",o).attr("height",s),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(Lo(r,e.props.borders,o,s),t.delete("borders")),t.forEach((t=>{Dt.warn(`Unknown node property ${t}`)}))}return fo(e,r),e.intersect=function(t){return Ao.rect(e,t)},n},labelRect:(t,e)=>{const{shapeSvg:n}=ho(t,e,"label",!0);Dt.trace("Classes = ",e.classes);const i=n.insert("rect",":first-child");if(i.attr("width",0).attr("height",0),n.attr("class","label edgeLabel"),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(Lo(i,e.props.borders,0,0),t.delete("borders")),t.forEach((t=>{Dt.warn(`Unknown node property ${t}`)}))}return fo(e,i),e.intersect=function(t){return Ao.rect(e,t)},n},rectWithTitle:(t,e)=>{let n;n=e.classes?"node "+e.classes:"node default";const i=t.insert("g").attr("class",n).attr("id",e.domId||e.id),a=i.insert("rect",":first-child"),r=i.insert("line"),o=i.insert("g").attr("class","label"),c=e.labelText.flat?e.labelText.flat():e.labelText;let l="";l="object"==typeof c?c[0]:c,Dt.info("Label text abc79",l,c,"object"==typeof c);const u=o.node().appendChild(uo(l,e.labelStyle,!0,!0));let d={width:0,height:0};if(jt(ai().flowchart.htmlLabels)){const t=u.children[0],e=(0,s.Ys)(u);d=t.getBoundingClientRect(),e.attr("width",d.width),e.attr("height",d.height)}Dt.info("Text 2",c);const h=c.slice(1,c.length);let f=u.getBBox();const g=o.node().appendChild(uo(h.join?h.join("<br/>"):h,e.labelStyle,!0,!0));if(jt(ai().flowchart.htmlLabels)){const t=g.children[0],e=(0,s.Ys)(g);d=t.getBoundingClientRect(),e.attr("width",d.width),e.attr("height",d.height)}const p=e.padding/2;return(0,s.Ys)(g).attr("transform","translate( "+(d.width>f.width?0:(f.width-d.width)/2)+", "+(f.height+p+5)+")"),(0,s.Ys)(u).attr("transform","translate( "+(d.width<f.width?0:-(f.width-d.width)/2)+", 0)"),d=o.node().getBBox(),o.attr("transform","translate("+-d.width/2+", "+(-d.height/2-p+3)+")"),a.attr("class","outer title-state").attr("x",-d.width/2-p).attr("y",-d.height/2-p).attr("width",d.width+e.padding).attr("height",d.height+e.padding),r.attr("class","divider").attr("x1",-d.width/2-p).attr("x2",d.width/2+p).attr("y1",-d.height/2-p+f.height+p).attr("y2",-d.height/2-p+f.height+p),fo(e,a),e.intersect=function(t){return Ao.rect(e,t)},i},choice:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=[{x:0,y:14},{x:14,y:0},{x:0,y:-14},{x:-14,y:0}];return n.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(t){return Ao.circle(e,14,t)},n},circle:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=ho(t,e,void 0,!0),r=n.insert("circle",":first-child");return r.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),Dt.info("Circle main"),fo(e,r),e.intersect=function(t){return Dt.info("Circle intersect",e,i.width/2+a,t),Ao.circle(e,i.width/2+a,t)},n},doublecircle:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=ho(t,e,void 0,!0),r=n.insert("g",":first-child"),o=r.insert("circle"),s=r.insert("circle");return o.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a+5).attr("width",i.width+e.padding+10).attr("height",i.height+e.padding+10),s.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),Dt.info("DoubleCircle main"),fo(e,o),e.intersect=function(t){return Dt.info("DoubleCircle intersect",e,i.width/2+a+5,t),Ao.circle(e,i.width/2+a+5,t)},n},stadium:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.height+e.padding,r=i.width+a/4+e.padding,o=n.insert("rect",":first-child").attr("style",e.style).attr("rx",a/2).attr("ry",a/2).attr("x",-r/2).attr("y",-a/2).attr("width",r).attr("height",a);return fo(e,o),e.intersect=function(t){return Ao.rect(e,t)},n},hexagon:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.height+e.padding,r=a/4,o=i.width+2*r+e.padding,s=[{x:r,y:0},{x:o-r,y:0},{x:o,y:-a/2},{x:o-r,y:-a},{x:r,y:-a},{x:0,y:-a/2}],c=go(n,o,a,s);return c.attr("style",e.style),fo(e,c),e.intersect=function(t){return Ao.polygon(e,s,t)},n},rect_left_inv_arrow:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-r/2,y:0},{x:a,y:0},{x:a,y:-r},{x:-r/2,y:-r},{x:0,y:-r/2}];return go(n,a,r,o).attr("style",e.style),e.width=a+r,e.height=r,e.intersect=function(t){return Ao.polygon(e,o,t)},n},lean_right:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-2*r/6,y:0},{x:a-r/6,y:0},{x:a+2*r/6,y:-r},{x:r/6,y:-r}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},lean_left:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:2*r/6,y:0},{x:a+r/6,y:0},{x:a-2*r/6,y:-r},{x:-r/6,y:-r}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},trapezoid:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-2*r/6,y:0},{x:a+2*r/6,y:0},{x:a-r/6,y:-r},{x:r/6,y:-r}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},inv_trapezoid:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:r/6,y:0},{x:a-r/6,y:0},{x:a+2*r/6,y:-r},{x:-2*r/6,y:-r}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},rect_right_inv_arrow:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:0,y:0},{x:a+r/2,y:0},{x:a,y:-r/2},{x:a+r/2,y:-r},{x:0,y:-r}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},cylinder:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=a/2,o=r/(2.5+a/50),s=i.height+o+e.padding,c="M 0,"+o+" a "+r+","+o+" 0,0,0 "+a+" 0 a "+r+","+o+" 0,0,0 "+-a+" 0 l 0,"+s+" a "+r+","+o+" 0,0,0 "+a+" 0 l 0,"+-s,l=n.attr("label-offset-y",o).insert("path",":first-child").attr("style",e.style).attr("d",c).attr("transform","translate("+-a/2+","+-(s/2+o)+")");return fo(e,l),e.intersect=function(t){const n=Ao.rect(e,t),i=n.x-e.x;if(0!=r&&(Math.abs(i)<e.width/2||Math.abs(i)==e.width/2&&Math.abs(n.y-e.y)>e.height/2-o)){let a=o*o*(1-i*i/(r*r));0!=a&&(a=Math.sqrt(a)),a=o-a,t.y-e.y>0&&(a=-a),n.y+=a}return n},n},start:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=n.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),fo(e,i),e.intersect=function(t){return Ao.circle(e,7,t)},n},end:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=n.insert("circle",":first-child"),a=n.insert("circle",":first-child");return a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),fo(e,a),e.intersect=function(t){return Ao.circle(e,7,t)},n},note:Do,subroutine:(t,e)=>{const{shapeSvg:n,bbox:i}=ho(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:0,y:0},{x:a,y:0},{x:a,y:-r},{x:0,y:-r},{x:0,y:0},{x:-8,y:0},{x:a+8,y:0},{x:a+8,y:-r},{x:-8,y:-r},{x:-8,y:0}],s=go(n,a,r,o);return s.attr("style",e.style),fo(e,s),e.intersect=function(t){return Ao.polygon(e,o,t)},n},fork:Oo,join:Oo,class_box:(t,e)=>{const n=e.padding/2;let i;i=e.classes?"node "+e.classes:"node default";const a=t.insert("g").attr("class",i).attr("id",e.domId||e.id),r=a.insert("rect",":first-child"),o=a.insert("line"),c=a.insert("line");let l=0,u=4;const d=a.insert("g").attr("class","label");let h=0;const f=e.classData.annotations&&e.classData.annotations[0],g=e.classData.annotations[0]?"\xab"+e.classData.annotations[0]+"\xbb":"",p=d.node().appendChild(uo(g,e.labelStyle,!0,!0));let b=p.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=p.children[0],e=(0,s.Ys)(p);b=t.getBoundingClientRect(),e.attr("width",b.width),e.attr("height",b.height)}e.classData.annotations[0]&&(u+=b.height+4,l+=b.width);let m=e.classData.id;void 0!==e.classData.type&&""!==e.classData.type&&(ai().flowchart.htmlLabels?m+="<"+e.classData.type+">":m+="<"+e.classData.type+">");const y=d.node().appendChild(uo(m,e.labelStyle,!0,!0));(0,s.Ys)(y).attr("class","classTitle");let v=y.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=y.children[0],e=(0,s.Ys)(y);v=t.getBoundingClientRect(),e.attr("width",v.width),e.attr("height",v.height)}u+=v.height+4,v.width>l&&(l=v.width);const w=[];e.classData.members.forEach((t=>{const n=Kr(t);let i=n.displayText;ai().flowchart.htmlLabels&&(i=i.replace(/</g,"<").replace(/>/g,">"));const a=d.node().appendChild(uo(i,n.cssStyle?n.cssStyle:e.labelStyle,!0,!0));let r=a.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=a.children[0],e=(0,s.Ys)(a);r=t.getBoundingClientRect(),e.attr("width",r.width),e.attr("height",r.height)}r.width>l&&(l=r.width),u+=r.height+4,w.push(a)})),u+=8;const x=[];if(e.classData.methods.forEach((t=>{const n=Kr(t);let i=n.displayText;ai().flowchart.htmlLabels&&(i=i.replace(/</g,"<").replace(/>/g,">"));const a=d.node().appendChild(uo(i,n.cssStyle?n.cssStyle:e.labelStyle,!0,!0));let r=a.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=a.children[0],e=(0,s.Ys)(a);r=t.getBoundingClientRect(),e.attr("width",r.width),e.attr("height",r.height)}r.width>l&&(l=r.width),u+=r.height+4,x.push(a)})),u+=8,f){let t=(l-b.width)/2;(0,s.Ys)(p).attr("transform","translate( "+(-1*l/2+t)+", "+-1*u/2+")"),h=b.height+4}let R=(l-v.width)/2;return(0,s.Ys)(y).attr("transform","translate( "+(-1*l/2+R)+", "+(-1*u/2+h)+")"),h+=v.height+4,o.attr("class","divider").attr("x1",-l/2-n).attr("x2",l/2+n).attr("y1",-u/2-n+8+h).attr("y2",-u/2-n+8+h),h+=8,w.forEach((t=>{(0,s.Ys)(t).attr("transform","translate( "+-l/2+", "+(-1*u/2+h+4)+")"),h+=v.height+4})),h+=8,c.attr("class","divider").attr("x1",-l/2-n).attr("x2",l/2+n).attr("y1",-u/2-n+8+h).attr("y2",-u/2-n+8+h),h+=8,x.forEach((t=>{(0,s.Ys)(t).attr("transform","translate( "+-l/2+", "+(-1*u/2+h)+")"),h+=v.height+4})),r.attr("class","outer title-state").attr("x",-l/2-n).attr("y",-u/2-n).attr("width",l+e.padding).attr("height",u+e.padding),fo(e,r),e.intersect=function(t){return Ao.rect(e,t)},a}};let No={};const Bo=(t,e,n)=>{let i,a;if(e.link){let r;"sandbox"===ai().securityLevel?r="_top":e.linkTarget&&(r=e.linkTarget||"_blank"),i=t.insert("svg:a").attr("xlink:href",e.link).attr("target",r),a=Mo[e.shape](i,e,n)}else a=Mo[e.shape](t,e,n),i=a;return e.tooltip&&a.attr("title",e.tooltip),e.class&&a.attr("class","node default "+e.class),No[e.id]=i,e.haveCallback&&No[e.id].attr("class",No[e.id].attr("class")+" clickable"),i},Po=t=>{const e=No[t.id];Dt.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const n=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+n-t.width/2)+", "+(t.y-t.height/2-8)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),n},Fo={rect:(t,e)=>{Dt.trace("Creating subgraph rect for ",e.id,e);const n=t.insert("g").attr("class","cluster"+(e.class?" "+e.class:"")).attr("id",e.id),i=n.insert("rect",":first-child"),a=n.insert("g").attr("class","cluster-label"),r=a.node().appendChild(uo(e.labelText,e.labelStyle,void 0,!0));let o=r.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=r.children[0],e=(0,s.Ys)(r);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}const c=0*e.padding,l=c/2,u=e.width<=o.width+c?o.width+c:e.width;e.width<=o.width+c?e.diff=(o.width-e.width)/2-e.padding/2:e.diff=-e.padding/2,Dt.trace("Data ",e,JSON.stringify(e)),i.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-u/2).attr("y",e.y-e.height/2-l).attr("width",u).attr("height",e.height+c),a.attr("transform","translate("+(e.x-o.width/2)+", "+(e.y-e.height/2)+")");const d=i.node().getBBox();return e.width=d.width,e.height=d.height,e.intersect=function(t){return To(e,t)},n},roundedWithTitle:(t,e)=>{const n=t.insert("g").attr("class",e.classes).attr("id",e.id),i=n.insert("rect",":first-child"),a=n.insert("g").attr("class","cluster-label"),r=n.append("rect"),o=a.node().appendChild(uo(e.labelText,e.labelStyle,void 0,!0));let c=o.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=o.children[0],e=(0,s.Ys)(o);c=t.getBoundingClientRect(),e.attr("width",c.width),e.attr("height",c.height)}c=o.getBBox();const l=0*e.padding,u=l/2,d=e.width<=c.width+e.padding?c.width+e.padding:e.width;e.width<=c.width+e.padding?e.diff=(c.width+0*e.padding-e.width)/2:e.diff=-e.padding/2,i.attr("class","outer").attr("x",e.x-d/2-u).attr("y",e.y-e.height/2-u).attr("width",d+l).attr("height",e.height+l),r.attr("class","inner").attr("x",e.x-d/2-u).attr("y",e.y-e.height/2-u+c.height-1).attr("width",d+l).attr("height",e.height+l-c.height-3),a.attr("transform","translate("+(e.x-c.width/2)+", "+(e.y-e.height/2-e.padding/3+(jt(ai().flowchart.htmlLabels)?5:3))+")");const h=i.node().getBBox();return e.height=h.height,e.intersect=function(t){return To(e,t)},n},noteGroup:(t,e)=>{const n=t.insert("g").attr("class","note-cluster").attr("id",e.id),i=n.insert("rect",":first-child"),a=0*e.padding,r=a/2;i.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-r).attr("y",e.y-e.height/2-r).attr("width",e.width+a).attr("height",e.height+a).attr("fill","none");const o=i.node().getBBox();return e.width=o.width,e.height=o.height,e.intersect=function(t){return To(e,t)},n},divider:(t,e)=>{const n=t.insert("g").attr("class",e.classes).attr("id",e.id),i=n.insert("rect",":first-child"),a=0*e.padding,r=a/2;i.attr("class","divider").attr("x",e.x-e.width/2-r).attr("y",e.y-e.height/2).attr("width",e.width+a).attr("height",e.height+a);const o=i.node().getBBox();return e.width=o.width,e.height=o.height,e.diff=-e.padding/2,e.intersect=function(t){return To(e,t)},n}};let jo={};let $o={},zo={};const Ho=(t,e)=>{const n=uo(e.label,e.labelStyle),i=t.insert("g").attr("class","edgeLabel"),a=i.insert("g").attr("class","label");a.node().appendChild(n);let r,o=n.getBBox();if(jt(ai().flowchart.htmlLabels)){const t=n.children[0],e=(0,s.Ys)(n);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}if(a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),$o[e.id]=i,e.width=o.width,e.height=o.height,e.startLabelLeft){const n=uo(e.startLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),zo[e.id]||(zo[e.id]={}),zo[e.id].startLeft=i,Uo(r,e.startLabelLeft)}if(e.startLabelRight){const n=uo(e.startLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=i.node().appendChild(n),a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),zo[e.id]||(zo[e.id]={}),zo[e.id].startRight=i,Uo(r,e.startLabelRight)}if(e.endLabelLeft){const n=uo(e.endLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),i.node().appendChild(n),zo[e.id]||(zo[e.id]={}),zo[e.id].endLeft=i,Uo(r,e.endLabelLeft)}if(e.endLabelRight){const n=uo(e.endLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),i.node().appendChild(n),zo[e.id]||(zo[e.id]={}),zo[e.id].endRight=i,Uo(r,e.endLabelRight)}return n};function Uo(t,e){ai().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}const Vo=(t,e)=>{Dt.warn("abc88 cutPathAtIntersect",t,e);let n=[],i=t[0],a=!1;return t.forEach((t=>{if(Dt.info("abc88 checking point",t,e),((t,e)=>{const n=t.x,i=t.y,a=Math.abs(e.x-n),r=Math.abs(e.y-i),o=t.width/2,s=t.height/2;return a>=o||r>=s})(e,t)||a)Dt.warn("abc88 outside",t,i),i=t,a||n.push(t);else{const r=((t,e,n)=>{Dt.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(n)}\n node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const i=t.x,a=t.y,r=Math.abs(i-n.x),o=t.width/2;let s=n.x<e.x?o-r:o+r;const c=t.height/2,l=Math.abs(e.y-n.y),u=Math.abs(e.x-n.x);if(Math.abs(a-e.y)*o>Math.abs(i-e.x)*c){let t=n.y<e.y?e.y-c-a:a-c-e.y;s=u*t/l;const i={x:n.x<e.x?n.x+s:n.x-u+s,y:n.y<e.y?n.y+l-t:n.y-l+t};return 0===s&&(i.x=e.x,i.y=e.y),0===u&&(i.x=e.x),0===l&&(i.y=e.y),Dt.warn(`abc89 topp/bott calc, Q ${l}, q ${t}, R ${u}, r ${s}`,i),i}{s=n.x<e.x?e.x-o-i:i-o-e.x;let t=l*s/u,a=n.x<e.x?n.x+u-s:n.x-u+s,r=n.y<e.y?n.y+t:n.y-t;return Dt.warn(`sides calc abc89, Q ${l}, q ${t}, R ${u}, r ${s}`,{_x:a,_y:r}),0===s&&(a=e.x,r=e.y),0===u&&(a=e.x),0===l&&(r=e.y),{x:a,y:r}}})(e,i,t);Dt.warn("abc88 inside",t,i,r),Dt.warn("abc88 intersection",r);let o=!1;n.forEach((t=>{o=o||t.x===r.x&&t.y===r.y})),n.some((t=>t.x===r.x&&t.y===r.y))?Dt.warn("abc88 no intersect",r,n):n.push(r),a=!0}})),Dt.warn("abc88 returning points",n),n},qo=(t,e,n,i)=>{Dt.info("Graph in recursive render: XXX",ut.c(e),i);const a=e.graph().rankdir;Dt.trace("Dir in recursive render - dir:",a);const r=t.insert("g").attr("class","root");e.nodes()?Dt.info("Recursive render XXX",e.nodes()):Dt.info("No nodes found for",e),e.edges().length>0&&Dt.trace("Recursive edges",e.edge(e.edges()[0]));const o=r.insert("g").attr("class","clusters"),c=r.insert("g").attr("class","edgePaths"),l=r.insert("g").attr("class","edgeLabels"),u=r.insert("g").attr("class","nodes");e.nodes().forEach((function(t){const r=e.node(t);if(void 0!==i){const n=JSON.parse(JSON.stringify(i.clusterData));Dt.info("Setting data for cluster XXX (",t,") ",n,i),e.setNode(i.id,n),e.parent(t)||(Dt.trace("Setting parent",t,i.id),e.setParent(t,i.id,n))}if(Dt.info("(Insert) Node XXX"+t+": "+JSON.stringify(e.node(t))),r&&r.clusterNode){Dt.info("Cluster identified",t,r.width,e.node(t));const i=qo(u,r.graph,n,e.node(t)),a=i.elem;fo(r,a),r.diff=i.diff||0,Dt.info("Node bounds (abc123)",t,r,r.width,r.x,r.y),((t,e)=>{No[e.id]=t})(a,r),Dt.warn("Recursive render complete ",a,r)}else e.children(t).length>0?(Dt.info("Cluster - the non recursive path XXX",t,r.id,r,e),Dt.info(xo(r.id,e)),po[r.id]={id:xo(r.id,e),node:r}):(Dt.info("Node - the non recursive path",t,r.id,r),Bo(u,e.node(t),a))})),e.edges().forEach((function(t){const n=e.edge(t.v,t.w,t.name);Dt.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),Dt.info("Edge "+t.v+" -> "+t.w+": ",t," ",JSON.stringify(e.edge(t))),Dt.info("Fix",po,"ids:",t.v,t.w,"Translateing: ",po[t.v],po[t.w]),Ho(l,n)})),e.edges().forEach((function(t){Dt.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t))})),Dt.info("#############################################"),Dt.info("### Layout ###"),Dt.info("#############################################"),Dt.info(e),(0,ct.bK)(e),Dt.info("Graph after layout:",ut.c(e));let d=0;return(t=>ko(t,t.children()))(e).forEach((function(t){const n=e.node(t);Dt.info("Position "+t+": "+JSON.stringify(e.node(t))),Dt.info("Position "+t+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n&&n.clusterNode?Po(n):e.children(t).length>0?(((t,e)=>{Dt.trace("Inserting cluster");const n=e.shape||"rect";jo[e.id]=Fo[n](t,e)})(o,n),po[n.id].node=n):Po(n)})),e.edges().forEach((function(t){const i=e.edge(t);Dt.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(i),i);const a=function(t,e,n,i,a,r){let o=n.points,c=!1;const l=r.node(e.v);var u=r.node(e.w);Dt.info("abc88 InsertEdge: ",n),u.intersect&&l.intersect&&(o=o.slice(1,n.points.length-1),o.unshift(l.intersect(o[0])),Dt.info("Last point",o[o.length-1],u,u.intersect(o[o.length-1])),o.push(u.intersect(o[o.length-1]))),n.toCluster&&(Dt.info("to cluster abc88",i[n.toCluster]),o=Vo(n.points,i[n.toCluster].node),c=!0),n.fromCluster&&(Dt.info("from cluster abc88",i[n.fromCluster]),o=Vo(o.reverse(),i[n.fromCluster].node).reverse(),c=!0);const d=o.filter((t=>!Number.isNaN(t.y)));let h;h=("graph"===a||"flowchart"===a)&&n.curve||s.$0Z;const f=(0,s.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(h);let g;switch(n.thickness){case"normal":g="edge-thickness-normal";break;case"thick":g="edge-thickness-thick";break;default:g=""}switch(n.pattern){case"solid":g+=" edge-pattern-solid";break;case"dotted":g+=" edge-pattern-dotted";break;case"dashed":g+=" edge-pattern-dashed"}const p=t.append("path").attr("d",f(d)).attr("id",n.id).attr("class"," "+g+(n.classes?" "+n.classes:"")).attr("style",n.style);let b="";switch((ai().flowchart.arrowMarkerAbsolute||ai().state.arrowMarkerAbsolute)&&(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,b=b.replace(/\(/g,"\\("),b=b.replace(/\)/g,"\\)")),Dt.info("arrowTypeStart",n.arrowTypeStart),Dt.info("arrowTypeEnd",n.arrowTypeEnd),n.arrowTypeStart){case"arrow_cross":p.attr("marker-start","url("+b+"#"+a+"-crossStart)");break;case"arrow_point":p.attr("marker-start","url("+b+"#"+a+"-pointStart)");break;case"arrow_barb":p.attr("marker-start","url("+b+"#"+a+"-barbStart)");break;case"arrow_circle":p.attr("marker-start","url("+b+"#"+a+"-circleStart)");break;case"aggregation":p.attr("marker-start","url("+b+"#"+a+"-aggregationStart)");break;case"extension":p.attr("marker-start","url("+b+"#"+a+"-extensionStart)");break;case"composition":p.attr("marker-start","url("+b+"#"+a+"-compositionStart)");break;case"dependency":p.attr("marker-start","url("+b+"#"+a+"-dependencyStart)");break;case"lollipop":p.attr("marker-start","url("+b+"#"+a+"-lollipopStart)")}switch(n.arrowTypeEnd){case"arrow_cross":p.attr("marker-end","url("+b+"#"+a+"-crossEnd)");break;case"arrow_point":p.attr("marker-end","url("+b+"#"+a+"-pointEnd)");break;case"arrow_barb":p.attr("marker-end","url("+b+"#"+a+"-barbEnd)");break;case"arrow_circle":p.attr("marker-end","url("+b+"#"+a+"-circleEnd)");break;case"aggregation":p.attr("marker-end","url("+b+"#"+a+"-aggregationEnd)");break;case"extension":p.attr("marker-end","url("+b+"#"+a+"-extensionEnd)");break;case"composition":p.attr("marker-end","url("+b+"#"+a+"-compositionEnd)");break;case"dependency":p.attr("marker-end","url("+b+"#"+a+"-dependencyEnd)");break;case"lollipop":p.attr("marker-end","url("+b+"#"+a+"-lollipopEnd)")}let m={};return c&&(m.updatedPath=o),m.originalPath=n.points,m}(c,t,i,po,n,e);((t,e)=>{Dt.info("Moving label abc78 ",t.id,t.label,$o[t.id]);let n=e.updatedPath?e.updatedPath:e.originalPath;if(t.label){const i=$o[t.id];let a=t.x,r=t.y;if(n){const i=Gn.calcLabelPosition(n);Dt.info("Moving label "+t.label+" from (",a,",",r,") to (",i.x,",",i.y,") abc78"),e.updatedPath&&(a=i.x,r=i.y)}i.attr("transform","translate("+a+", "+r+")")}if(t.startLabelLeft){const e=zo[t.id].startLeft;let i=t.x,a=t.y;if(n){const e=Gn.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.startLabelRight){const e=zo[t.id].startRight;let i=t.x,a=t.y;if(n){const e=Gn.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.endLabelLeft){const e=zo[t.id].endLeft;let i=t.x,a=t.y;if(n){const e=Gn.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.endLabelRight){const e=zo[t.id].endRight;let i=t.x,a=t.y;if(n){const e=Gn.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}})(i,a)})),e.nodes().forEach((function(t){const n=e.node(t);Dt.info(t,n.type,n.diff),"group"===n.type&&(d=n.diff)})),{elem:r,diff:d}},Wo=(t,e,n,i,a)=>{lo(t,n,i,a),No={},$o={},zo={},jo={},bo={},mo={},po={},Dt.warn("Graph at first:",ut.c(e)),((t,e)=>{!t||e>10?Dt.debug("Opting out, no graph "):(Dt.debug("Opting in, graph "),t.nodes().forEach((function(e){t.children(e).length>0&&(Dt.warn("Cluster identified",e," Replacement id in edges: ",xo(e,t)),bo[e]=wo(e,t),po[e]={id:xo(e,t),clusterData:t.node(e)})})),t.nodes().forEach((function(e){const n=t.children(e),i=t.edges();n.length>0?(Dt.debug("Cluster identified",e,bo),i.forEach((t=>{t.v!==e&&t.w!==e&&yo(t.v,e)^yo(t.w,e)&&(Dt.warn("Edge: ",t," leaves cluster ",e),Dt.warn("Decendants of XXX ",e,": ",bo[e]),po[e].externalConnections=!0)}))):Dt.debug("Not a cluster ",e,bo)})),t.edges().forEach((function(e){const n=t.edge(e);Dt.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),Dt.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(t.edge(e)));let i=e.v,a=e.w;if(Dt.warn("Fix XXX",po,"ids:",e.v,e.w,"Translating: ",po[e.v]," --- ",po[e.w]),po[e.v]&&po[e.w]&&po[e.v]===po[e.w]){Dt.warn("Fixing and trixing link to self - removing XXX",e.v,e.w,e.name),Dt.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),i=Ro(e.v),a=Ro(e.w),t.removeEdge(e.v,e.w,e.name);const r=e.w+"---"+e.v;t.setNode(r,{domId:r,id:r,labelStyle:"",labelText:n.label,padding:0,shape:"labelRect",style:""});const o=JSON.parse(JSON.stringify(n)),s=JSON.parse(JSON.stringify(n));o.label="",o.arrowTypeEnd="none",s.label="",o.fromCluster=e.v,s.toCluster=e.v,t.setEdge(i,r,o,e.name+"-cyclic-special"),t.setEdge(r,a,s,e.name+"-cyclic-special")}else(po[e.v]||po[e.w])&&(Dt.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),i=Ro(e.v),a=Ro(e.w),t.removeEdge(e.v,e.w,e.name),i!==e.v&&(n.fromCluster=e.v),a!==e.w&&(n.toCluster=e.w),Dt.warn("Fix Replacing with XXX",i,a,e.name),t.setEdge(i,a,n,e.name))})),Dt.warn("Adjusted Graph",ut.c(t)),_o(t,0),Dt.trace(po))})(e),Dt.warn("Graph after:",ut.c(e)),qo(t,e,i)},Yo=t=>zt.sanitizeText(t,ai());let Go={dividerMargin:10,padding:5,textHeight:10};function Zo(t){let e;switch(t){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}const Ko={setConf:function(t){Object.keys(t).forEach((function(e){Go[e]=t[e]}))},draw:function(t,e,n,i){Dt.info("Drawing class - ",e);const a=ai().flowchart,r=ai().securityLevel;Dt.info("config:",a);const o=a.nodeSpacing||50,c=a.rankSpacing||50,l=new lt.k({multigraph:!0,compound:!0}).setGraph({rankdir:i.db.getDirection(),nodesep:o,ranksep:c,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}})),u=i.db.getClasses(),d=i.db.getRelations(),h=i.db.getNotes();let f;Dt.info(d),function(t,e,n,i){const a=Object.keys(t);Dt.info("keys:",a),Dt.info(t),a.forEach((function(n){const a=t[n];let r="";a.cssClasses.length>0&&(r=r+" "+a.cssClasses.join(" "));const o={labelStyle:""};let s=void 0!==a.text?a.text:a.id,c="";a.type,c="class_box",e.setNode(a.id,{labelStyle:o.labelStyle,shape:c,labelText:Yo(s),classData:a,rx:0,ry:0,class:r,style:o.style,id:a.id,domId:a.domId,tooltip:i.db.getTooltip(a.id)||"",haveCallback:a.haveCallback,link:a.link,width:"group"===a.type?500:void 0,type:a.type,padding:ai().flowchart.padding}),Dt.info("setNode",{labelStyle:o.labelStyle,shape:c,labelText:s,rx:0,ry:0,class:r,style:o.style,id:a.id,width:"group"===a.type?500:void 0,type:a.type,padding:ai().flowchart.padding})}))}(u,l,0,i),function(t,e){const n=ai().flowchart;let i=0;t.forEach((function(a){i++;const r={classes:"relation"};r.pattern=1==a.relation.lineType?"dashed":"solid",r.id="id"+i,"arrow_open"===a.type?r.arrowhead="none":r.arrowhead="normal",Dt.info(r,a),r.startLabelRight="none"===a.relationTitle1?"":a.relationTitle1,r.endLabelLeft="none"===a.relationTitle2?"":a.relationTitle2,r.arrowTypeStart=Zo(a.relation.type1),r.arrowTypeEnd=Zo(a.relation.type2);let o="",c="";if(void 0!==a.style){const t=On(a.style);o=t.style,c=t.labelStyle}else o="fill:none";r.style=o,r.labelStyle=c,void 0!==a.interpolate?r.curve=In(a.interpolate,s.c_6):void 0!==t.defaultInterpolate?r.curve=In(t.defaultInterpolate,s.c_6):r.curve=In(n.curve,s.c_6),a.text=a.title,void 0===a.text?void 0!==a.style&&(r.arrowheadStyle="fill: #333"):(r.arrowheadStyle="fill: #333",r.labelpos="c",ai().flowchart.htmlLabels?(r.labelType="html",r.label='<span class="edgeLabel">'+a.text+"</span>"):(r.labelType="text",r.label=a.text.replace(zt.lineBreakRegex,"\n"),void 0===a.style&&(r.style=r.style||"stroke: #333; stroke-width: 1.5px;fill:none"),r.labelStyle=r.labelStyle.replace("color:","fill:"))),e.setEdge(a.id1,a.id2,r,i)}))}(d,l),function(t,e,n,i){Dt.info(t),t.forEach((function(t,a){const r=t,o="",c="";let l=r.text,u="note";if(e.setNode(r.id,{labelStyle:o,shape:u,labelText:Yo(l),noteData:r,rx:0,ry:0,class:"",style:c,id:r.id,domId:r.id,tooltip:"",type:"note",padding:ai().flowchart.padding}),Dt.info("setNode",{labelStyle:o,shape:u,labelText:l,rx:0,ry:0,style:c,id:r.id,type:"note",padding:ai().flowchart.padding}),!r.class||!(r.class in i))return;const d=n+a,h={classes:"relation",pattern:"dotted"};h.id=`edgeNote${d}`,h.arrowhead="none",Dt.info(`Note edge: ${JSON.stringify(h)}, ${JSON.stringify(r)}`),h.startLabelRight="",h.endLabelLeft="",h.arrowTypeStart="none",h.arrowTypeEnd="none",h.style="fill:none",h.labelStyle="",h.curve=In(Go.curve,s.c_6),e.setEdge(r.id,r.class,h,d)}))}(h,l,d.length+1,u),"sandbox"===r&&(f=(0,s.Ys)("#i"+e));const g="sandbox"===r?(0,s.Ys)(f.nodes()[0].contentDocument.body):(0,s.Ys)("body"),p=g.select(`[id="${e}"]`),b=g.select("#"+e+" g");if(Wo(b,l,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",e),Gn.insertTitle(p,"classTitleText",a.titleTopMargin,i.db.getDiagramTitle()),hi(l,p,a.diagramPadding,a.useMaxWidth),!a.htmlLabels){const t="sandbox"===r?f.nodes()[0].contentDocument:document,n=t.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const e of n){const n=e.getBBox(),i=t.createElementNS("http://www.w3.org/2000/svg","rect");i.setAttribute("rx",0),i.setAttribute("ry",0),i.setAttribute("width",n.width),i.setAttribute("height",n.height),e.insertBefore(i,e.firstChild)}}}};var Xo=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,2],i=[1,5],a=[6,9,11,23,25,27,29,30,31,51],r=[1,17],o=[1,18],s=[1,19],c=[1,20],l=[1,21],u=[1,22],d=[1,25],h=[1,30],f=[1,31],g=[1,32],p=[1,33],b=[6,9,11,15,20,23,25,27,29,30,31,44,45,46,47,51],m=[1,45],y=[30,31,48,49],v=[4,6,9,11,23,25,27,29,30,31,51],w=[44,45,46,47],x=[22,37],R=[1,65],_=[1,64],k=[22,37,39,41],E={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,title:23,title_value:24,acc_title:25,acc_title_value:26,acc_descr:27,acc_descr_value:28,acc_descr_multiline_value:29,ALPHANUM:30,ENTITY_NAME:31,attribute:32,attributeType:33,attributeName:34,attributeKeyTypeList:35,attributeComment:36,ATTRIBUTE_WORD:37,attributeKeyType:38,COMMA:39,ATTRIBUTE_KEY:40,COMMENT:41,cardinality:42,relType:43,ZERO_OR_ONE:44,ZERO_OR_MORE:45,ONE_OR_MORE:46,ONLY_ONE:47,NON_IDENTIFYING:48,IDENTIFYING:49,WORD:50,open_directive:51,type_directive:52,arg_directive:53,close_directive:54,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"title",24:"title_value",25:"acc_title",26:"acc_title_value",27:"acc_descr",28:"acc_descr_value",29:"acc_descr_multiline_value",30:"ALPHANUM",31:"ENTITY_NAME",37:"ATTRIBUTE_WORD",39:"COMMA",40:"ATTRIBUTE_KEY",41:"COMMENT",44:"ZERO_OR_ONE",45:"ZERO_OR_MORE",46:"ONE_OR_MORE",47:"ONLY_ONE",48:"NON_IDENTIFYING",49:"IDENTIFYING",50:"WORD",51:"open_directive",52:"type_directive",53:"arg_directive",54:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,1],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[35,3],[38,1],[36,1],[18,3],[42,1],[42,1],[42,1],[42,1],[43,1],[43,1],[19,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 1:break;case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:case 20:case 43:case 28:case 29:case 32:this.$=r[s];break;case 12:i.addEntity(r[s-4]),i.addEntity(r[s-2]),i.addRelationship(r[s-4],r[s],r[s-2],r[s-3]);break;case 13:i.addEntity(r[s-3]),i.addAttributes(r[s-3],r[s-1]);break;case 14:i.addEntity(r[s-2]);break;case 15:i.addEntity(r[s]);break;case 16:case 17:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 21:case 41:case 42:case 33:this.$=r[s].replace(/"/g,"");break;case 22:case 30:this.$=[r[s]];break;case 23:r[s].push(r[s-1]),this.$=r[s];break;case 24:this.$={attributeType:r[s-1],attributeName:r[s]};break;case 25:this.$={attributeType:r[s-2],attributeName:r[s-1],attributeKeyTypeList:r[s]};break;case 26:this.$={attributeType:r[s-2],attributeName:r[s-1],attributeComment:r[s]};break;case 27:this.$={attributeType:r[s-3],attributeName:r[s-2],attributeKeyTypeList:r[s-1],attributeComment:r[s]};break;case 31:r[s-2].push(r[s]),this.$=r[s-2];break;case 34:this.$={cardA:r[s],relType:r[s-1],cardB:r[s-2]};break;case 35:this.$=i.Cardinality.ZERO_OR_ONE;break;case 36:this.$=i.Cardinality.ZERO_OR_MORE;break;case 37:this.$=i.Cardinality.ONE_OR_MORE;break;case 38:this.$=i.Cardinality.ONLY_ONE;break;case 39:this.$=i.Identification.NON_IDENTIFYING;break;case 40:this.$=i.Identification.IDENTIFYING;break;case 44:i.parseDirective("%%{","open_directive");break;case 45:i.parseDirective(r[s],"type_directive");break;case 46:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 47:i.parseDirective("}%%","close_directive","er")}},table:[{3:1,4:n,7:3,12:4,51:i},{1:[3]},e(a,[2,3],{5:6}),{3:7,4:n,7:3,12:4,51:i},{13:8,52:[1,9]},{52:[2,44]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:r,25:o,27:s,29:c,30:l,31:u,51:i},{1:[2,2]},{14:23,15:[1,24],54:d},e([15,54],[2,45]),e(a,[2,8],{1:[2,1]}),e(a,[2,4]),{7:15,10:26,12:4,17:16,23:r,25:o,27:s,29:c,30:l,31:u,51:i},e(a,[2,6]),e(a,[2,7]),e(a,[2,11]),e(a,[2,15],{18:27,42:29,20:[1,28],44:h,45:f,46:g,47:p}),{24:[1,34]},{26:[1,35]},{28:[1,36]},e(a,[2,19]),e(b,[2,20]),e(b,[2,21]),{11:[1,37]},{16:38,53:[1,39]},{11:[2,47]},e(a,[2,5]),{17:40,30:l,31:u},{21:41,22:[1,42],32:43,33:44,37:m},{43:46,48:[1,47],49:[1,48]},e(y,[2,35]),e(y,[2,36]),e(y,[2,37]),e(y,[2,38]),e(a,[2,16]),e(a,[2,17]),e(a,[2,18]),e(v,[2,9]),{14:49,54:d},{54:[2,46]},{15:[1,50]},{22:[1,51]},e(a,[2,14]),{21:52,22:[2,22],32:43,33:44,37:m},{34:53,37:[1,54]},{37:[2,28]},{42:55,44:h,45:f,46:g,47:p},e(w,[2,39]),e(w,[2,40]),{11:[1,56]},{19:57,30:[1,60],31:[1,59],50:[1,58]},e(a,[2,13]),{22:[2,23]},e(x,[2,24],{35:61,36:62,38:63,40:R,41:_}),e([22,37,40,41],[2,29]),e([30,31],[2,34]),e(v,[2,10]),e(a,[2,12]),e(a,[2,41]),e(a,[2,42]),e(a,[2,43]),e(x,[2,25],{36:66,39:[1,67],41:_}),e(x,[2,26]),e(k,[2,30]),e(x,[2,33]),e(k,[2,32]),e(x,[2,27]),{38:68,40:R},e(k,[2,31])],defaultActions:{5:[2,44],7:[2,2],25:[2,47],39:[2,46],45:[2,28],52:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},C=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("acc_title"),25;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),27;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.begin("open_directive"),51;case 8:return this.begin("type_directive"),52;case 9:return this.popState(),this.begin("arg_directive"),15;case 10:return this.popState(),this.popState(),54;case 11:return 53;case 12:case 13:case 15:case 22:case 27:break;case 14:return 11;case 16:return 9;case 17:return 31;case 18:return 50;case 19:return 4;case 20:return this.begin("block"),20;case 21:return 39;case 23:return 40;case 24:case 25:return 37;case 26:return 41;case 28:return this.popState(),22;case 29:case 58:return e.yytext[0];case 30:case 34:case 35:case 48:return 44;case 31:case 32:case 33:case 41:case 43:case 50:return 46;case 36:case 37:case 38:case 39:case 40:case 42:case 49:return 45;case 44:case 45:case 46:case 47:return 47;case 51:case 54:case 55:case 56:return 48;case 52:case 53:return 49;case 57:return 30;case 59:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},open_directive:{rules:[8],inclusive:!1},type_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[10,11],inclusive:!1},block:{rules:[21,22,23,24,25,26,27,28,29],inclusive:!1},INITIAL:{rules:[0,2,4,7,12,13,14,15,16,17,18,19,20,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59],inclusive:!0}}},t);function S(){this.yy={}}return E.lexer=C,S.prototype=E,E.Parser=S,new S}();Xo.parser=Xo;const Jo=Xo,Qo=t=>null!==t.match(/^\s*erDiagram/);let ts={},es=[];const ns=function(t){return void 0===ts[t]&&(ts[t]={attributes:[]},Dt.info("Added new entity :",t)),ts[t]},is={Cardinality:{ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE"},Identification:{NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().er,addEntity:ns,addAttributes:function(t,e){let n,i=ns(t);for(n=e.length-1;n>=0;n--)i.attributes.push(e[n]),Dt.debug("Added attribute ",e[n].attributeName)},getEntities:()=>ts,addRelationship:function(t,e,n,i){let a={entityA:t,roleA:e,entityB:n,relSpec:i};es.push(a),Dt.debug("Added new relationship :",a)},getRelationships:()=>es,clear:function(){ts={},es=[],Ii()},setAccTitle:Li,getAccTitle:Oi,setAccDescription:Mi,getAccDescription:Ni,setDiagramTitle:Bi,getDiagramTitle:Pi},as={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END"},rs=as,os=function(t,e){let n;t.append("defs").append("marker").attr("id",as.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",as.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),n=t.append("defs").append("marker").attr("id",as.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),n=t.append("defs").append("marker").attr("id",as.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",as.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",as.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),n=t.append("defs").append("marker").attr("id",as.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),n=t.append("defs").append("marker").attr("id",as.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")},ss=/[^\dA-Za-z](\W)*/g;let cs={},ls=new Map;const us=function(t,e,n){let i;return Object.keys(e).forEach((function(a){const r=function(t="",e=""){const n=t.replace(ss,"");return`${gs(e)}${gs(n)}${wt(t,fs)}`}(a,"entity");ls.set(a,r);const o=t.append("g").attr("id",r);i=void 0===i?r:i;const s="text-"+r,c=o.append("text").classed("er entityLabel",!0).attr("id",s).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",ai().fontFamily).style("font-size",cs.fontSize+"px").text(a),{width:l,height:u}=((t,e,n)=>{const i=cs.entityPadding/3,a=cs.entityPadding/3,r=.85*cs.fontSize,o=e.node().getBBox(),s=[];let c=!1,l=!1,u=0,d=0,h=0,f=0,g=o.height+2*i,p=1;n.forEach((t=>{void 0!==t.attributeKeyTypeList&&t.attributeKeyTypeList.length>0&&(c=!0),void 0!==t.attributeComment&&(l=!0)})),n.forEach((n=>{const a=`${e.node().id}-attr-${p}`;let o=0;const b=$t(n.attributeType),m=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",ai().fontFamily).style("font-size",r+"px").text(b),y=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",ai().fontFamily).style("font-size",r+"px").text(n.attributeName),v={};v.tn=m,v.nn=y;const w=m.node().getBBox(),x=y.node().getBBox();if(u=Math.max(u,w.width),d=Math.max(d,x.width),o=Math.max(w.height,x.height),c){const e=void 0!==n.attributeKeyTypeList?n.attributeKeyTypeList.join(","):"",i=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",ai().fontFamily).style("font-size",r+"px").text(e);v.kn=i;const s=i.node().getBBox();h=Math.max(h,s.width),o=Math.max(o,s.height)}if(l){const e=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",ai().fontFamily).style("font-size",r+"px").text(n.attributeComment||"");v.cn=e;const i=e.node().getBBox();f=Math.max(f,i.width),o=Math.max(o,i.height)}v.height=o,s.push(v),g+=o+2*i,p+=1}));let b=4;c&&(b+=2),l&&(b+=2);const m=u+d+h+f,y={width:Math.max(cs.minEntityWidth,Math.max(o.width+2*cs.entityPadding,m+a*b)),height:n.length>0?g:Math.max(cs.minEntityHeight,o.height+2*cs.entityPadding)};if(n.length>0){const n=Math.max(0,(y.width-m-a*b)/(b/2));e.attr("transform","translate("+y.width/2+","+(i+o.height/2)+")");let r=o.height+2*i,g="attributeBoxOdd";s.forEach((e=>{const o=r+i+e.height/2;e.tn.attr("transform","translate("+a+","+o+")");const s=t.insert("rect","#"+e.tn.node().id).classed(`er ${g}`,!0).attr("x",0).attr("y",r).attr("width",u+2*a+n).attr("height",e.height+2*i),p=parseFloat(s.attr("x"))+parseFloat(s.attr("width"));e.nn.attr("transform","translate("+(p+a)+","+o+")");const b=t.insert("rect","#"+e.nn.node().id).classed(`er ${g}`,!0).attr("x",p).attr("y",r).attr("width",d+2*a+n).attr("height",e.height+2*i);let m=parseFloat(b.attr("x"))+parseFloat(b.attr("width"));if(c){e.kn.attr("transform","translate("+(m+a)+","+o+")");const s=t.insert("rect","#"+e.kn.node().id).classed(`er ${g}`,!0).attr("x",m).attr("y",r).attr("width",h+2*a+n).attr("height",e.height+2*i);m=parseFloat(s.attr("x"))+parseFloat(s.attr("width"))}l&&(e.cn.attr("transform","translate("+(m+a)+","+o+")"),t.insert("rect","#"+e.cn.node().id).classed(`er ${g}`,"true").attr("x",m).attr("y",r).attr("width",f+2*a+n).attr("height",e.height+2*i)),r+=e.height+2*i,g="attributeBoxOdd"===g?"attributeBoxEven":"attributeBoxOdd"}))}else y.height=Math.max(cs.minEntityHeight,g),e.attr("transform","translate("+y.width/2+","+y.height/2+")");return y})(o,c,e[a].attributes),d=o.insert("rect","#"+s).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",l).attr("height",u).node().getBBox();n.setNode(r,{width:d.width,height:d.height,shape:"rect",id:r})})),i},ds=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")};let hs=0;const fs="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function gs(t=""){return t.length>0?`${t}-`:""}const ps={setConf:function(t){const e=Object.keys(t);for(const n of e)cs[n]=t[n]},draw:function(t,e,n,i){cs=ai().er,Dt.info("Drawing ER diagram");const a=ai().securityLevel;let r;"sandbox"===a&&(r=(0,s.Ys)("#i"+e));const o=("sandbox"===a?(0,s.Ys)(r.nodes()[0].contentDocument.body):(0,s.Ys)("body")).select(`[id='${e}']`);let c;os(o,cs),c=new lt.k({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:cs.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));const l=us(o,i.db.getEntities(),c),u=function(t,e){return t.forEach((function(t){e.setEdge(ls.get(t.entityA),ls.get(t.entityB),{relationship:t},ds(t))})),t}(i.db.getRelationships(),c);var d,h;(0,ct.bK)(c),d=o,(h=c).nodes().forEach((function(t){void 0!==t&&void 0!==h.node(t)&&d.select("#"+t).attr("transform","translate("+(h.node(t).x-h.node(t).width/2)+","+(h.node(t).y-h.node(t).height/2)+" )")})),u.forEach((function(t){!function(t,e,n,i,a){hs++;const r=n.edge(ls.get(e.entityA),ls.get(e.entityB),ds(e)),o=(0,s.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(s.$0Z),c=t.insert("path","#"+i).classed("er relationshipLine",!0).attr("d",o(r.points)).style("stroke",cs.stroke).style("fill","none");e.relSpec.relType===a.db.Identification.NON_IDENTIFYING&&c.attr("stroke-dasharray","8,8");let l="";switch(cs.arrowMarkerAbsolute&&(l=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,l=l.replace(/\(/g,"\\("),l=l.replace(/\)/g,"\\)")),e.relSpec.cardA){case a.db.Cardinality.ZERO_OR_ONE:c.attr("marker-end","url("+l+"#"+rs.ZERO_OR_ONE_END+")");break;case a.db.Cardinality.ZERO_OR_MORE:c.attr("marker-end","url("+l+"#"+rs.ZERO_OR_MORE_END+")");break;case a.db.Cardinality.ONE_OR_MORE:c.attr("marker-end","url("+l+"#"+rs.ONE_OR_MORE_END+")");break;case a.db.Cardinality.ONLY_ONE:c.attr("marker-end","url("+l+"#"+rs.ONLY_ONE_END+")")}switch(e.relSpec.cardB){case a.db.Cardinality.ZERO_OR_ONE:c.attr("marker-start","url("+l+"#"+rs.ZERO_OR_ONE_START+")");break;case a.db.Cardinality.ZERO_OR_MORE:c.attr("marker-start","url("+l+"#"+rs.ZERO_OR_MORE_START+")");break;case a.db.Cardinality.ONE_OR_MORE:c.attr("marker-start","url("+l+"#"+rs.ONE_OR_MORE_START+")");break;case a.db.Cardinality.ONLY_ONE:c.attr("marker-start","url("+l+"#"+rs.ONLY_ONE_START+")")}const u=c.node().getTotalLength(),d=c.node().getPointAtLength(.5*u),h="rel"+hs,f=t.append("text").classed("er relationshipLabel",!0).attr("id",h).attr("x",d.x).attr("y",d.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",ai().fontFamily).style("font-size",cs.fontSize+"px").text(e.roleA).node().getBBox();t.insert("rect","#"+h).classed("er relationshipLabelBox",!0).attr("x",d.x-f.width/2).attr("y",d.y-f.height/2).attr("width",f.width).attr("height",f.height)}(o,t,c,l,i)}));const f=cs.diagramPadding;Gn.insertTitle(o,"entityTitleText",cs.titleTopMargin,i.db.getDiagramTitle());const g=o.node().getBBox(),p=g.width+2*f,b=g.height+2*f;di(o,b,p,cs.useMaxWidth),o.attr("viewBox",`${g.x-f} ${g.y-f} ${p} ${b}`)}};var bs=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,9],i=[1,7],a=[1,6],r=[1,8],o=[1,20,21,22,23,38,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],s=[2,10],c=[1,20],l=[1,21],u=[1,22],d=[1,23],h=[1,30],f=[1,32],g=[1,33],p=[1,34],b=[1,62],m=[1,48],y=[1,52],v=[1,36],w=[1,37],x=[1,38],R=[1,39],_=[1,40],k=[1,56],E=[1,63],C=[1,51],S=[1,53],T=[1,55],A=[1,59],D=[1,60],I=[1,41],L=[1,42],O=[1,43],M=[1,44],N=[1,61],B=[1,50],P=[1,54],F=[1,57],j=[1,58],$=[1,49],z=[1,66],H=[1,71],U=[1,20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],V=[1,75],q=[1,74],W=[1,76],Y=[20,21,23,81,82],G=[1,99],Z=[1,104],K=[1,107],X=[1,108],J=[1,101],Q=[1,106],tt=[1,109],et=[1,102],nt=[1,114],it=[1,113],at=[1,103],rt=[1,105],ot=[1,110],st=[1,111],ct=[1,112],lt=[1,115],ut=[20,21,22,23,81,82],dt=[20,21,22,23,53,81,82],ht=[20,21,22,23,40,52,53,55,57,59,61,63,65,66,67,69,71,73,74,76,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],ft=[20,21,23],gt=[20,21,23,52,66,67,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],pt=[1,12,20,21,22,23,24,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],bt=[52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],mt=[1,149],yt=[1,157],vt=[1,158],wt=[1,159],xt=[1,160],Rt=[1,144],_t=[1,145],kt=[1,141],Et=[1,152],Ct=[1,153],St=[1,154],Tt=[1,155],At=[1,156],Dt=[1,161],It=[1,162],Lt=[1,147],Ot=[1,150],Mt=[1,146],Nt=[1,143],Bt=[20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],Pt=[1,165],Ft=[20,21,22,23,26,52,66,67,91,105,106,109,111,112,122,123,124,125,126,127],jt=[20,21,22,23,24,26,38,40,41,42,52,56,58,60,62,64,66,67,68,70,72,73,75,77,81,82,86,87,88,89,90,91,92,95,105,106,109,111,112,113,114,122,123,124,125,126,127],$t=[12,21,22,24],zt=[22,106],Ht=[1,250],Ut=[1,245],Vt=[1,246],qt=[1,254],Wt=[1,251],Yt=[1,248],Gt=[1,247],Zt=[1,249],Kt=[1,252],Xt=[1,253],Jt=[1,255],Qt=[1,273],te=[20,21,23,106],ee=[20,21,22,23,66,67,86,102,105,106,109,110,111,112,113],ne={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,text:39,SQS:40,SQE:41,end:42,direction:43,acc_title:44,acc_title_value:45,acc_descr:46,acc_descr_value:47,acc_descr_multiline_value:48,link:49,node:50,vertex:51,AMP:52,STYLE_SEPARATOR:53,idString:54,DOUBLECIRCLESTART:55,DOUBLECIRCLEEND:56,PS:57,PE:58,"(-":59,"-)":60,STADIUMSTART:61,STADIUMEND:62,SUBROUTINESTART:63,SUBROUTINEEND:64,VERTEX_WITH_PROPS_START:65,ALPHA:66,COLON:67,PIPE:68,CYLINDERSTART:69,CYLINDEREND:70,DIAMOND_START:71,DIAMOND_STOP:72,TAGEND:73,TRAPSTART:74,TRAPEND:75,INVTRAPSTART:76,INVTRAPEND:77,linkStatement:78,arrowText:79,TESTSTR:80,START_LINK:81,LINK:82,textToken:83,STR:84,keywords:85,STYLE:86,LINKSTYLE:87,CLASSDEF:88,CLASS:89,CLICK:90,DOWN:91,UP:92,textNoTags:93,textNoTagsToken:94,DEFAULT:95,stylesOpt:96,alphaNum:97,CALLBACKNAME:98,CALLBACKARGS:99,HREF:100,LINK_TARGET:101,HEX:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,MINUS:109,UNIT:110,BRKT:111,DOT:112,PCT:113,TAGSTART:114,alphaNumToken:115,idStringToken:116,alphaNumStatement:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,PUNCTUATION:122,UNICODE_TEXT:123,PLUS:124,EQUALS:125,MULT:126,UNDERSCORE:127,graphCodeTokens:128,ARROW_CROSS:129,ARROW_POINT:130,ARROW_CIRCLE:131,ARROW_OPEN:132,QUOTE:133,$accept:0,$end:1},terminals_:{2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF",24:"GRAPH",25:"NODIR",26:"DIR",38:"subgraph",40:"SQS",41:"SQE",42:"end",44:"acc_title",45:"acc_title_value",46:"acc_descr",47:"acc_descr_value",48:"acc_descr_multiline_value",52:"AMP",53:"STYLE_SEPARATOR",55:"DOUBLECIRCLESTART",56:"DOUBLECIRCLEEND",57:"PS",58:"PE",59:"(-",60:"-)",61:"STADIUMSTART",62:"STADIUMEND",63:"SUBROUTINESTART",64:"SUBROUTINEEND",65:"VERTEX_WITH_PROPS_START",66:"ALPHA",67:"COLON",68:"PIPE",69:"CYLINDERSTART",70:"CYLINDEREND",71:"DIAMOND_START",72:"DIAMOND_STOP",73:"TAGEND",74:"TRAPSTART",75:"TRAPEND",76:"INVTRAPSTART",77:"INVTRAPEND",80:"TESTSTR",81:"START_LINK",82:"LINK",84:"STR",86:"STYLE",87:"LINKSTYLE",88:"CLASSDEF",89:"CLASS",90:"CLICK",91:"DOWN",92:"UP",95:"DEFAULT",98:"CALLBACKNAME",99:"CALLBACKARGS",100:"HREF",101:"LINK_TARGET",102:"HEX",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"MINUS",110:"UNIT",111:"BRKT",112:"DOT",113:"PCT",114:"TAGSTART",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr",122:"PUNCTUATION",123:"UNICODE_TEXT",124:"PLUS",125:"EQUALS",126:"MULT",127:"UNDERSCORE",129:"ARROW_CROSS",130:"ARROW_POINT",131:"ARROW_CIRCLE",132:"ARROW_OPEN",133:"QUOTE"},productions_:[0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[50,1],[50,5],[50,3],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,8],[51,4],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,4],[51,4],[51,1],[49,2],[49,3],[49,3],[49,1],[49,3],[78,1],[79,3],[39,1],[39,2],[39,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[93,1],[93,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[103,1],[103,3],[96,1],[96,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[94,1],[94,1],[94,1],[94,1],[54,1],[54,2],[97,1],[97,2],[117,1],[117,1],[117,1],[117,1],[43,1],[43,1],[43,1],[43,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 5:i.parseDirective("%%{","open_directive");break;case 6:i.parseDirective(r[s],"type_directive");break;case 7:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 8:i.parseDirective("}%%","close_directive","flowchart");break;case 10:case 36:case 37:case 38:case 39:case 40:this.$=[];break;case 11:(!Array.isArray(r[s])||r[s].length>0)&&r[s-1].push(r[s]),this.$=r[s-1];break;case 12:case 82:case 84:case 96:case 152:case 154:case 155:case 78:case 150:this.$=r[s];break;case 19:i.setDirection("TB"),this.$="TB";break;case 20:i.setDirection(r[s-1]),this.$=r[s-1];break;case 35:this.$=r[s-1].nodes;break;case 41:this.$=i.addSubGraph(r[s-6],r[s-1],r[s-4]);break;case 42:this.$=i.addSubGraph(r[s-3],r[s-1],r[s-3]);break;case 43:this.$=i.addSubGraph(void 0,r[s-1],void 0);break;case 45:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 46:case 47:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 51:i.addLink(r[s-2].stmt,r[s],r[s-1]),this.$={stmt:r[s],nodes:r[s].concat(r[s-2].nodes)};break;case 52:i.addLink(r[s-3].stmt,r[s-1],r[s-2]),this.$={stmt:r[s-1],nodes:r[s-1].concat(r[s-3].nodes)};break;case 53:this.$={stmt:r[s-1],nodes:r[s-1]};break;case 54:this.$={stmt:r[s],nodes:r[s]};break;case 55:case 123:case 125:this.$=[r[s]];break;case 56:this.$=r[s-4].concat(r[s]);break;case 57:this.$=[r[s-2]],i.setClass(r[s-2],r[s]);break;case 58:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"square");break;case 59:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"doublecircle");break;case 60:this.$=r[s-5],i.addVertex(r[s-5],r[s-2],"circle");break;case 61:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"ellipse");break;case 62:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"stadium");break;case 63:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"subroutine");break;case 64:this.$=r[s-7],i.addVertex(r[s-7],r[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[r[s-5],r[s-3]]]));break;case 65:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"cylinder");break;case 66:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"round");break;case 67:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"diamond");break;case 68:this.$=r[s-5],i.addVertex(r[s-5],r[s-2],"hexagon");break;case 69:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"odd");break;case 70:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"trapezoid");break;case 71:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"inv_trapezoid");break;case 72:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"lean_right");break;case 73:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"lean_left");break;case 74:this.$=r[s],i.addVertex(r[s]);break;case 75:r[s-1].text=r[s],this.$=r[s-1];break;case 76:case 77:r[s-2].text=r[s-1],this.$=r[s-2];break;case 79:var c=i.destructLink(r[s],r[s-2]);this.$={type:c.type,stroke:c.stroke,length:c.length,text:r[s-1]};break;case 80:c=i.destructLink(r[s]);this.$={type:c.type,stroke:c.stroke,length:c.length};break;case 81:this.$=r[s-1];break;case 83:case 97:case 153:case 151:this.$=r[s-1]+""+r[s];break;case 98:case 99:this.$=r[s-4],i.addClass(r[s-2],r[s]);break;case 100:this.$=r[s-4],i.setClass(r[s-2],r[s]);break;case 101:case 109:this.$=r[s-1],i.setClickEvent(r[s-1],r[s]);break;case 102:case 110:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-2]),i.setTooltip(r[s-3],r[s]);break;case 103:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 104:this.$=r[s-4],i.setClickEvent(r[s-4],r[s-3],r[s-2]),i.setTooltip(r[s-4],r[s]);break;case 105:case 111:this.$=r[s-1],i.setLink(r[s-1],r[s]);break;case 106:case 112:this.$=r[s-3],i.setLink(r[s-3],r[s-2]),i.setTooltip(r[s-3],r[s]);break;case 107:case 113:this.$=r[s-3],i.setLink(r[s-3],r[s-2],r[s]);break;case 108:case 114:this.$=r[s-5],i.setLink(r[s-5],r[s-4],r[s]),i.setTooltip(r[s-5],r[s-2]);break;case 115:this.$=r[s-4],i.addVertex(r[s-2],void 0,void 0,r[s]);break;case 116:case 118:this.$=r[s-4],i.updateLink(r[s-2],r[s]);break;case 117:this.$=r[s-4],i.updateLink([r[s-2]],r[s]);break;case 119:this.$=r[s-8],i.updateLinkInterpolate([r[s-6]],r[s-2]),i.updateLink([r[s-6]],r[s]);break;case 120:this.$=r[s-8],i.updateLinkInterpolate(r[s-6],r[s-2]),i.updateLink(r[s-6],r[s]);break;case 121:this.$=r[s-6],i.updateLinkInterpolate([r[s-4]],r[s]);break;case 122:this.$=r[s-6],i.updateLinkInterpolate(r[s-4],r[s]);break;case 124:case 126:r[s-2].push(r[s]),this.$=r[s-2];break;case 128:this.$=r[s-1]+r[s];break;case 156:this.$="v";break;case 157:this.$="-";break;case 158:this.$={stmt:"dir",value:"TB"};break;case 159:this.$={stmt:"dir",value:"BT"};break;case 160:this.$={stmt:"dir",value:"RL"};break;case 161:this.$={stmt:"dir",value:"LR"}}},table:[{3:1,4:2,5:3,6:5,12:n,16:4,21:i,22:a,24:r},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:n,16:4,21:i,22:a,24:r},e(o,s,{17:11}),{7:12,13:[1,13]},{16:14,21:i,22:a,24:r},{16:15,21:i,22:a,24:r},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:c,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:h,43:31,44:f,46:g,48:p,50:35,51:45,52:b,54:46,66:m,67:y,86:v,87:w,88:x,89:R,90:_,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,118:I,119:L,120:O,121:M,122:N,123:B,124:P,125:F,126:j,127:$},{8:64,10:[1,65],15:z},e([10,15],[2,6]),e(o,[2,17]),e(o,[2,18]),e(o,[2,19]),{20:[1,68],21:[1,69],22:H,27:67,30:70},e(U,[2,11]),e(U,[2,12]),e(U,[2,13]),e(U,[2,14]),e(U,[2,15]),e(U,[2,16]),{9:72,20:V,21:q,23:W,49:73,78:77,81:[1,78],82:[1,79]},{9:80,20:V,21:q,23:W},{9:81,20:V,21:q,23:W},{9:82,20:V,21:q,23:W},{9:83,20:V,21:q,23:W},{9:84,20:V,21:q,23:W},{9:86,20:V,21:q,22:[1,85],23:W},e(U,[2,44]),{45:[1,87]},{47:[1,88]},e(U,[2,47]),e(Y,[2,54],{30:89,22:H}),{22:[1,90]},{22:[1,91]},{22:[1,92]},{22:[1,93]},{26:G,52:Z,66:K,67:X,84:[1,97],91:J,97:96,98:[1,94],100:[1,95],105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(U,[2,158]),e(U,[2,159]),e(U,[2,160]),e(U,[2,161]),e(ut,[2,55],{53:[1,116]}),e(dt,[2,74],{116:129,40:[1,117],52:b,55:[1,118],57:[1,119],59:[1,120],61:[1,121],63:[1,122],65:[1,123],66:m,67:y,69:[1,124],71:[1,125],73:[1,126],74:[1,127],76:[1,128],91:k,95:E,105:C,106:S,109:T,111:A,112:D,122:N,123:B,124:P,125:F,126:j,127:$}),e(ht,[2,150]),e(ht,[2,175]),e(ht,[2,176]),e(ht,[2,177]),e(ht,[2,178]),e(ht,[2,179]),e(ht,[2,180]),e(ht,[2,181]),e(ht,[2,182]),e(ht,[2,183]),e(ht,[2,184]),e(ht,[2,185]),e(ht,[2,186]),e(ht,[2,187]),e(ht,[2,188]),e(ht,[2,189]),e(ht,[2,190]),{9:130,20:V,21:q,23:W},{11:131,14:[1,132]},e(ft,[2,8]),e(o,[2,20]),e(o,[2,26]),e(o,[2,27]),{21:[1,133]},e(gt,[2,34],{30:134,22:H}),e(U,[2,35]),{50:135,51:45,52:b,54:46,66:m,67:y,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,122:N,123:B,124:P,125:F,126:j,127:$},e(pt,[2,48]),e(pt,[2,49]),e(pt,[2,50]),e(bt,[2,78],{79:136,68:[1,138],80:[1,137]}),{22:mt,24:yt,26:vt,38:wt,39:139,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e([52,66,67,68,80,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,80]),e(U,[2,36]),e(U,[2,37]),e(U,[2,38]),e(U,[2,39]),e(U,[2,40]),{22:mt,24:yt,26:vt,38:wt,39:163,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(Bt,s,{17:164}),e(U,[2,45]),e(U,[2,46]),e(Y,[2,53],{52:Pt}),{26:G,52:Z,66:K,67:X,91:J,97:166,102:[1,167],105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{95:[1,168],103:169,105:[1,170]},{26:G,52:Z,66:K,67:X,91:J,95:[1,171],97:172,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{26:G,52:Z,66:K,67:X,91:J,97:173,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(ft,[2,101],{22:[1,174],99:[1,175]}),e(ft,[2,105],{22:[1,176]}),e(ft,[2,109],{115:100,117:178,22:[1,177],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,122:at,123:rt,124:ot,125:st,126:ct,127:lt}),e(ft,[2,111],{22:[1,179]}),e(Ft,[2,152]),e(Ft,[2,154]),e(Ft,[2,155]),e(Ft,[2,156]),e(Ft,[2,157]),e(jt,[2,162]),e(jt,[2,163]),e(jt,[2,164]),e(jt,[2,165]),e(jt,[2,166]),e(jt,[2,167]),e(jt,[2,168]),e(jt,[2,169]),e(jt,[2,170]),e(jt,[2,171]),e(jt,[2,172]),e(jt,[2,173]),e(jt,[2,174]),{52:b,54:180,66:m,67:y,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,122:N,123:B,124:P,125:F,126:j,127:$},{22:mt,24:yt,26:vt,38:wt,39:181,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:182,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:184,42:xt,52:Z,57:[1,183],66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:185,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:186,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:187,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{66:[1,188]},{22:mt,24:yt,26:vt,38:wt,39:189,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:190,42:xt,52:Z,66:K,67:X,71:[1,191],73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:192,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:193,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:194,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(ht,[2,151]),e($t,[2,3]),{8:195,15:z},{15:[2,7]},e(o,[2,28]),e(gt,[2,33]),e(Y,[2,51],{30:196,22:H}),e(bt,[2,75],{22:[1,197]}),{22:[1,198]},{22:mt,24:yt,26:vt,38:wt,39:199,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,82:[1,200],83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(jt,[2,82]),e(jt,[2,84]),e(jt,[2,140]),e(jt,[2,141]),e(jt,[2,142]),e(jt,[2,143]),e(jt,[2,144]),e(jt,[2,145]),e(jt,[2,146]),e(jt,[2,147]),e(jt,[2,148]),e(jt,[2,149]),e(jt,[2,85]),e(jt,[2,86]),e(jt,[2,87]),e(jt,[2,88]),e(jt,[2,89]),e(jt,[2,90]),e(jt,[2,91]),e(jt,[2,92]),e(jt,[2,93]),e(jt,[2,94]),e(jt,[2,95]),{9:203,20:V,21:q,22:mt,23:W,24:yt,26:vt,38:wt,40:[1,202],42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{18:18,19:19,20:c,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:h,42:[1,204],43:31,44:f,46:g,48:p,50:35,51:45,52:b,54:46,66:m,67:y,86:v,87:w,88:x,89:R,90:_,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,118:I,119:L,120:O,121:M,122:N,123:B,124:P,125:F,126:j,127:$},{22:H,30:205},{22:[1,206],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:178,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:[1,207]},{22:[1,208]},{22:[1,209],106:[1,210]},e(zt,[2,123]),{22:[1,211]},{22:[1,212],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:178,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:[1,213],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:178,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{84:[1,214]},e(ft,[2,103],{22:[1,215]}),{84:[1,216],101:[1,217]},{84:[1,218]},e(Ft,[2,153]),{84:[1,219],101:[1,220]},e(ut,[2,57],{116:129,52:b,66:m,67:y,91:k,95:E,105:C,106:S,109:T,111:A,112:D,122:N,123:B,124:P,125:F,126:j,127:$}),{22:mt,24:yt,26:vt,38:wt,41:[1,221],42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,56:[1,222],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:223,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,58:[1,224],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,60:[1,225],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,62:[1,226],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,64:[1,227],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{67:[1,228]},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,70:[1,229],73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,72:[1,230],73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,39:231,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,41:[1,232],42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,73:Rt,75:[1,233],77:[1,234],81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,73:Rt,75:[1,236],77:[1,235],81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{9:237,20:V,21:q,23:W},e(Y,[2,52],{52:Pt}),e(bt,[2,77]),e(bt,[2,76]),{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,68:[1,238],73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(bt,[2,79]),e(jt,[2,83]),{22:mt,24:yt,26:vt,38:wt,39:239,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(Bt,s,{17:240}),e(U,[2,43]),{51:241,52:b,54:46,66:m,67:y,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,122:N,123:B,124:P,125:F,126:j,127:$},{22:Ht,66:Ut,67:Vt,86:qt,96:242,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{22:Ht,66:Ut,67:Vt,86:qt,96:256,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{22:Ht,66:Ut,67:Vt,86:qt,96:257,102:Wt,104:[1,258],105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{22:Ht,66:Ut,67:Vt,86:qt,96:259,102:Wt,104:[1,260],105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{105:[1,261]},{22:Ht,66:Ut,67:Vt,86:qt,96:262,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{22:Ht,66:Ut,67:Vt,86:qt,96:263,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{26:G,52:Z,66:K,67:X,91:J,97:264,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(ft,[2,102]),{84:[1,265]},e(ft,[2,106],{22:[1,266]}),e(ft,[2,107]),e(ft,[2,110]),e(ft,[2,112],{22:[1,267]}),e(ft,[2,113]),e(dt,[2,58]),e(dt,[2,59]),{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,58:[1,268],66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(dt,[2,66]),e(dt,[2,61]),e(dt,[2,62]),e(dt,[2,63]),{66:[1,269]},e(dt,[2,65]),e(dt,[2,67]),{22:mt,24:yt,26:vt,38:wt,42:xt,52:Z,66:K,67:X,72:[1,270],73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(dt,[2,69]),e(dt,[2,70]),e(dt,[2,72]),e(dt,[2,71]),e(dt,[2,73]),e($t,[2,4]),e([22,52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,81]),{22:mt,24:yt,26:vt,38:wt,41:[1,271],42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{18:18,19:19,20:c,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:h,42:[1,272],43:31,44:f,46:g,48:p,50:35,51:45,52:b,54:46,66:m,67:y,86:v,87:w,88:x,89:R,90:_,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,118:I,119:L,120:O,121:M,122:N,123:B,124:P,125:F,126:j,127:$},e(ut,[2,56]),e(ft,[2,115],{106:Qt}),e(te,[2,125],{108:274,22:Ht,66:Ut,67:Vt,86:qt,102:Wt,105:Yt,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt}),e(ee,[2,127]),e(ee,[2,129]),e(ee,[2,130]),e(ee,[2,131]),e(ee,[2,132]),e(ee,[2,133]),e(ee,[2,134]),e(ee,[2,135]),e(ee,[2,136]),e(ee,[2,137]),e(ee,[2,138]),e(ee,[2,139]),e(ft,[2,116],{106:Qt}),e(ft,[2,117],{106:Qt}),{22:[1,275]},e(ft,[2,118],{106:Qt}),{22:[1,276]},e(zt,[2,124]),e(ft,[2,98],{106:Qt}),e(ft,[2,99],{106:Qt}),e(ft,[2,100],{115:100,117:178,26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,122:at,123:rt,124:ot,125:st,126:ct,127:lt}),e(ft,[2,104]),{101:[1,277]},{101:[1,278]},{58:[1,279]},{68:[1,280]},{72:[1,281]},{9:282,20:V,21:q,23:W},e(U,[2,42]),{22:Ht,66:Ut,67:Vt,86:qt,102:Wt,105:Yt,107:283,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},e(ee,[2,128]),{26:G,52:Z,66:K,67:X,91:J,97:284,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{26:G,52:Z,66:K,67:X,91:J,97:285,105:Q,106:tt,109:et,111:nt,112:it,115:100,117:98,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(ft,[2,108]),e(ft,[2,114]),e(dt,[2,60]),{22:mt,24:yt,26:vt,38:wt,39:286,42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:140,84:kt,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},e(dt,[2,68]),e(Bt,s,{17:287}),e(te,[2,126],{108:274,22:Ht,66:Ut,67:Vt,86:qt,102:Wt,105:Yt,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt}),e(ft,[2,121],{115:100,117:178,22:[1,288],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,122:at,123:rt,124:ot,125:st,126:ct,127:lt}),e(ft,[2,122],{115:100,117:178,22:[1,289],26:G,52:Z,66:K,67:X,91:J,105:Q,106:tt,109:et,111:nt,112:it,122:at,123:rt,124:ot,125:st,126:ct,127:lt}),{22:mt,24:yt,26:vt,38:wt,41:[1,290],42:xt,52:Z,66:K,67:X,73:Rt,81:_t,83:201,85:151,86:Et,87:Ct,88:St,89:Tt,90:At,91:Dt,92:It,94:142,95:Lt,105:Q,106:tt,109:Ot,111:nt,112:it,113:Mt,114:Nt,115:148,122:at,123:rt,124:ot,125:st,126:ct,127:lt},{18:18,19:19,20:c,21:l,22:u,23:d,32:24,33:25,34:26,35:27,36:28,37:29,38:h,42:[1,291],43:31,44:f,46:g,48:p,50:35,51:45,52:b,54:46,66:m,67:y,86:v,87:w,88:x,89:R,90:_,91:k,95:E,105:C,106:S,109:T,111:A,112:D,116:47,118:I,119:L,120:O,121:M,122:N,123:B,124:P,125:F,126:j,127:$},{22:Ht,66:Ut,67:Vt,86:qt,96:292,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},{22:Ht,66:Ut,67:Vt,86:qt,96:293,102:Wt,105:Yt,107:243,108:244,109:Gt,110:Zt,111:Kt,112:Xt,113:Jt},e(dt,[2,64]),e(U,[2,41]),e(ft,[2,119],{106:Qt}),e(ft,[2,120],{106:Qt})],defaultActions:{2:[2,1],9:[2,5],10:[2,2],132:[2,7]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},ie=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:case 6:break;case 7:return this.begin("acc_title"),44;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),46;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:case 15:case 24:case 27:case 30:case 33:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 16:return"STR";case 17:return 86;case 18:return 95;case 19:return 87;case 20:return 104;case 21:return 88;case 22:return 89;case 23:this.begin("href");break;case 25:return 100;case 26:this.begin("callbackname");break;case 28:this.popState(),this.begin("callbackargs");break;case 29:return 98;case 31:return 99;case 32:this.begin("click");break;case 34:return 90;case 35:case 36:case 37:return t.lex.firstGraph()&&this.begin("dir"),24;case 38:return 38;case 39:return 42;case 40:case 41:case 42:case 43:return 101;case 44:return this.popState(),25;case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:return this.popState(),26;case 55:return 118;case 56:return 119;case 57:return 120;case 58:return 121;case 59:return 105;case 60:return 111;case 61:return 53;case 62:return 67;case 63:return 52;case 64:return 20;case 65:return 106;case 66:return 126;case 67:case 68:case 69:return 82;case 70:case 71:case 72:return 81;case 73:return 59;case 74:return 60;case 75:return 61;case 76:return 62;case 77:return 63;case 78:return 64;case 79:return 65;case 80:return 69;case 81:return 70;case 82:return 55;case 83:return 56;case 84:return 109;case 85:return 112;case 86:return 127;case 87:return 124;case 88:return 113;case 89:case 90:return 125;case 91:return 114;case 92:return 73;case 93:return 92;case 94:return"SEP";case 95:return 91;case 96:return 66;case 97:return 75;case 98:return 74;case 99:return 77;case 100:return 76;case 101:return 122;case 102:return 123;case 103:return 68;case 104:return 57;case 105:return 58;case 106:return 40;case 107:return 41;case 108:return 71;case 109:return 72;case 110:return 133;case 111:return 21;case 112:return 22;case 113:return 23}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)[^\n]*)/,/^(?:[^\}]%%[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\])/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[30,31],inclusive:!1},callbackname:{rules:[27,28,29],inclusive:!1},href:{rules:[24,25],inclusive:!1},click:{rules:[33,34],inclusive:!1},vertex:{rules:[],inclusive:!1},dir:{rules:[44,45,46,47,48,49,50,51,52,53,54],inclusive:!1},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,5,6,7,9,11,14,17,18,19,20,21,22,23,26,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],inclusive:!0}}},t);function ae(){this.yy={}}return ne.lexer=ie,ae.prototype=ne,ne.Parser=ae,new ae}();bs.parser=bs;const ms=bs,ys=(t,e)=>{var n,i;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer)&&("elk"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&null!==t.match(/^\s*graph/))},vs=(t,e)=>{var n,i;return"dagre-d3"!==(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer)&&("elk"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&(null!==t.match(/^\s*graph/)||null!==t.match(/^\s*flowchart/)))};let ws,xs,Rs=0,_s=ai(),ks={},Es=[],Cs={},Ss=[],Ts={},As={},Ds=0,Is=!0,Ls=[];const Os=t=>zt.sanitizeText(t,_s),Ms=function(t,e,n){rf.parseDirective(this,t,e,n)},Ns=function(t){const e=Object.keys(ks);for(const n of e)if(ks[n].id===t)return ks[n].domId;return t},Bs=function(t,e,n,i,a,r,o={}){let s,c=t;void 0!==c&&0!==c.trim().length&&(void 0===ks[c]&&(ks[c]={id:c,domId:"flowchart-"+c+"-"+Rs,styles:[],classes:[]}),Rs++,void 0!==e?(_s=ai(),s=Os(e.trim()),'"'===s[0]&&'"'===s[s.length-1]&&(s=s.substring(1,s.length-1)),ks[c].text=s):void 0===ks[c].text&&(ks[c].text=t),void 0!==n&&(ks[c].type=n),null!=i&&i.forEach((function(t){ks[c].styles.push(t)})),null!=a&&a.forEach((function(t){ks[c].classes.push(t)})),void 0!==r&&(ks[c].dir=r),void 0===ks[c].props?ks[c].props=o:void 0!==o&&Object.assign(ks[c].props,o))},Ps=function(t,e,n,i){const a={start:t,end:e,type:void 0,text:""};void 0!==(i=n.text)&&(a.text=Os(i.trim()),'"'===a.text[0]&&'"'===a.text[a.text.length-1]&&(a.text=a.text.substring(1,a.text.length-1))),void 0!==n&&(a.type=n.type,a.stroke=n.stroke,a.length=n.length),Es.push(a)},Fs=function(t,e,n,i){let a,r;for(a=0;a<t.length;a++)for(r=0;r<e.length;r++)Ps(t[a],e[r],n,i)},js=function(t,e){t.forEach((function(t){"default"===t?Es.defaultInterpolate=e:Es[t].interpolate=e}))},$s=function(t,e){t.forEach((function(t){"default"===t?Es.defaultStyle=e:(-1===Gn.isSubstringInArray("fill",e)&&e.push("fill:none"),Es[t].style=e)}))},zs=function(t,e){void 0===Cs[t]&&(Cs[t]={id:t,styles:[],textStyles:[]}),null!=e&&e.forEach((function(e){if(e.match("color")){const n=e.replace("fill","bgFill").replace("color","fill");Cs[t].textStyles.push(n)}Cs[t].styles.push(e)}))},Hs=function(t){ws=t,ws.match(/.*</)&&(ws="RL"),ws.match(/.*\^/)&&(ws="BT"),ws.match(/.*>/)&&(ws="LR"),ws.match(/.*v/)&&(ws="TB"),"TD"===ws&&(ws="TB")},Us=function(t,e){t.split(",").forEach((function(t){let n=t;void 0!==ks[n]&&ks[n].classes.push(e),void 0!==Ts[n]&&Ts[n].classes.push(e)}))},Vs=function(t,e,n){t.split(",").forEach((function(t){void 0!==ks[t]&&(ks[t].link=Gn.formatUrl(e,_s),ks[t].linkTarget=n)})),Us(t,"clickable")},qs=function(t){return As[t]},Ws=function(t,e,n){t.split(",").forEach((function(t){!function(t,e,n){let i=Ns(t);if("loose"!==ai().securityLevel)return;if(void 0===e)return;let a=[];if("string"==typeof n){a=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<a.length;t++){let e=a[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),a[t]=e}}0===a.length&&a.push(t),void 0!==ks[t]&&(ks[t].haveCallback=!0,Ls.push((function(){const t=document.querySelector(`[id="${i}"]`);null!==t&&t.addEventListener("click",(function(){Gn.runFunc(e,...a)}),!1)})))}(t,e,n)})),Us(t,"clickable")},Ys=function(t){Ls.forEach((function(e){e(t)}))},Gs=function(){return ws.trim()},Zs=function(){return ks},Ks=function(){return Es},Xs=function(){return Cs},Js=function(t){let e=(0,s.Ys)(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=(0,s.Ys)("body").append("div").attr("class","mermaidTooltip").style("opacity",0));(0,s.Ys)(t).select("svg").selectAll("g.node").on("mouseover",(function(){const t=(0,s.Ys)(this);if(null===t.attr("title"))return;const n=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+n.left+(n.right-n.left)/2+"px").style("top",window.scrollY+n.top-14+document.body.scrollTop+"px"),e.html(e.html().replace(/<br\/>/g,"<br/>")),t.classed("hover",!0)})).on("mouseout",(function(){e.transition().duration(500).style("opacity",0);(0,s.Ys)(this).classed("hover",!1)}))};Ls.push(Js);const Qs=function(t="gen-1"){ks={},Cs={},Es=[],Ls=[Js],Ss=[],Ts={},Ds=0,As=[],Is=!0,xs=t,Ii()},tc=t=>{xs=t||"gen-2"},ec=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},nc=function(t,e,n){let i=t.trim(),a=n;t===n&&n.match(/\s/)&&(i=void 0);let r=[];const{nodeList:o,dir:s}=function(t){const e={boolean:{},number:{},string:{}},n=[];let i;return{nodeList:t.filter((function(t){const a=typeof t;return t.stmt&&"dir"===t.stmt?(i=t.value,!1):""!==t.trim()&&(a in e?!e[a].hasOwnProperty(t)&&(e[a][t]=!0):!n.includes(t)&&n.push(t))})),dir:i}}(r.concat.apply(r,e));if(r=o,"gen-1"===xs)for(let l=0;l<r.length;l++)r[l]=Ns(r[l]);i=i||"subGraph"+Ds,a=a||"",a=Os(a),Ds+=1;const c={id:i,nodes:r,title:a.trim(),classes:[],dir:s};return Dt.info("Adding",c.id,c.nodes,c.dir),c.nodes=fc(c,Ss).nodes,Ss.push(c),Ts[i]=c,i},ic=function(t){for(const[e,n]of Ss.entries())if(n.id===t)return e;return-1};let ac=-1;const rc=[],oc=function(t,e){const n=Ss[e].nodes;if(ac+=1,ac>2e3)return;if(rc[ac]=e,Ss[e].id===t)return{result:!0,count:0};let i=0,a=1;for(;i<n.length;){const e=ic(n[i]);if(e>=0){const n=oc(t,e);if(n.result)return{result:!0,count:a+n.count};a+=n.count}i+=1}return{result:!1,count:a}},sc=function(t){return rc[t]},cc=function(){ac=-1,Ss.length>0&&oc("none",Ss.length-1)},lc=function(){return Ss},uc=()=>!!Is&&(Is=!1,!0),dc=(t,e)=>{const n=(t=>{const e=t.trim();let n=e.slice(0,-1),i="arrow_open";switch(e.slice(-1)){case"x":i="arrow_cross","x"===e[0]&&(i="double_"+i,n=n.slice(1));break;case">":i="arrow_point","<"===e[0]&&(i="double_"+i,n=n.slice(1));break;case"o":i="arrow_circle","o"===e[0]&&(i="double_"+i,n=n.slice(1))}let a="normal",r=n.length-1;"="===n[0]&&(a="thick");let o=((t,e)=>{const n=e.length;let i=0;for(let a=0;a<n;++a)e[a]===t&&++i;return i})(".",n);return o&&(a="dotted",r=o),{type:i,stroke:a,length:r}})(t);let i;if(e){if(i=(t=>{let e=t.trim(),n="arrow_open";switch(e[0]){case"<":n="arrow_point",e=e.slice(1);break;case"x":n="arrow_cross",e=e.slice(1);break;case"o":n="arrow_circle",e=e.slice(1)}let i="normal";return e.includes("=")&&(i="thick"),e.includes(".")&&(i="dotted"),{type:n,stroke:i}})(e),i.stroke!==n.stroke)return{type:"INVALID",stroke:"INVALID"};if("arrow_open"===i.type)i.type=n.type;else{if(i.type!==n.type)return{type:"INVALID",stroke:"INVALID"};i.type="double_"+i.type}return"double_arrow"===i.type&&(i.type="double_arrow_point"),i.length=n.length,i}return n},hc=(t,e)=>{let n=!1;return t.forEach((t=>{t.nodes.indexOf(e)>=0&&(n=!0)})),n},fc=(t,e)=>{const n=[];return t.nodes.forEach(((i,a)=>{hc(e,i)||n.push(t.nodes[a])})),{nodes:n}},gc={firstGraph:uc},pc={parseDirective:Ms,defaultConfig:()=>Kn.flowchart,setAccTitle:Li,getAccTitle:Oi,getAccDescription:Ni,setAccDescription:Mi,addVertex:Bs,lookUpDomId:Ns,addLink:Fs,updateLinkInterpolate:js,updateLink:$s,addClass:zs,setDirection:Hs,setClass:Us,setTooltip:function(t,e){t.split(",").forEach((function(t){void 0!==e&&(As["gen-1"===xs?Ns(t):t]=Os(e))}))},getTooltip:qs,setClickEvent:Ws,setLink:Vs,bindFunctions:Ys,getDirection:Gs,getVertices:Zs,getEdges:Ks,getClasses:Xs,clear:Qs,setGen:tc,defaultStyle:ec,addSubGraph:nc,getDepthFirstPos:sc,indexNodes:cc,getSubGraphs:lc,destructLink:dc,lex:gc,exists:hc,makeUniq:fc,setDiagramTitle:Bi,getDiagramTitle:Pi},bc=Object.freeze(Object.defineProperty({__proto__:null,addClass:zs,addLink:Fs,addSingleLink:Ps,addSubGraph:nc,addVertex:Bs,bindFunctions:Ys,clear:Qs,default:pc,defaultStyle:ec,destructLink:dc,firstGraph:uc,getClasses:Xs,getDepthFirstPos:sc,getDirection:Gs,getEdges:Ks,getSubGraphs:lc,getTooltip:qs,getVertices:Zs,indexNodes:cc,lex:gc,lookUpDomId:Ns,parseDirective:Ms,setClass:Us,setClickEvent:Ws,setDirection:Hs,setGen:tc,setLink:Vs,updateLink:$s,updateLinkInterpolate:js},Symbol.toStringTag,{value:"Module"}));const mc={},yc=function(t){const e=Object.keys(t);for(const n of e)mc[n]=t[n]},vc={},wc=function(t,e,n,i,a,r){const o=i.select(`[id="${n}"]`);Object.keys(t).forEach((function(n){const i=t[n];let s="default";i.classes.length>0&&(s=i.classes.join(" "));const c=On(i.styles);let l,u=void 0!==i.text?i.text:i.id;if(jt(ai().flowchart.htmlLabels)){const t={label:u.replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`))};l=(0,xt.a)(o,t).node(),l.parentNode.removeChild(l)}else{const t=a.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",c.labelStyle.replace("color:","fill:"));const e=u.split(zt.lineBreakRegex);for(const n of e){const e=a.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),e.setAttribute("dy","1em"),e.setAttribute("x","1"),e.textContent=n,t.appendChild(e)}l=t}let d=0,h="";switch(i.type){case"round":d=5,h="rect";break;case"square":case"group":default:h="rect";break;case"diamond":h="question";break;case"hexagon":h="hexagon";break;case"odd":case"odd_right":h="rect_left_inv_arrow";break;case"lean_right":h="lean_right";break;case"lean_left":h="lean_left";break;case"trapezoid":h="trapezoid";break;case"inv_trapezoid":h="inv_trapezoid";break;case"circle":h="circle";break;case"ellipse":h="ellipse";break;case"stadium":h="stadium";break;case"subroutine":h="subroutine";break;case"cylinder":h="cylinder";break;case"doublecircle":h="doublecircle"}e.setNode(i.id,{labelStyle:c.labelStyle,shape:h,labelText:u,rx:d,ry:d,class:s,style:c.style,id:i.id,link:i.link,linkTarget:i.linkTarget,tooltip:r.db.getTooltip(i.id)||"",domId:r.db.lookUpDomId(i.id),haveCallback:i.haveCallback,width:"group"===i.type?500:void 0,dir:i.dir,type:i.type,props:i.props,padding:ai().flowchart.padding}),Dt.info("setNode",{labelStyle:c.labelStyle,shape:h,labelText:u,rx:d,ry:d,class:s,style:c.style,id:i.id,domId:r.db.lookUpDomId(i.id),width:"group"===i.type?500:void 0,type:i.type,dir:i.dir,props:i.props,padding:ai().flowchart.padding})}))},xc=function(t,e,n){Dt.info("abc78 edges = ",t);let i,a,r=0,o={};if(void 0!==t.defaultStyle){const e=On(t.defaultStyle);i=e.style,a=e.labelStyle}t.forEach((function(n){r++;var c="L-"+n.start+"-"+n.end;void 0===o[c]?(o[c]=0,Dt.info("abc78 new entry",c,o[c])):(o[c]++,Dt.info("abc78 new entry",c,o[c]));let l=c+"-"+o[c];Dt.info("abc78 new link id to be used is",c,l,o[c]);var u="LS-"+n.start,d="LE-"+n.end;const h={style:"",labelStyle:""};switch(h.minlen=n.length||1,"arrow_open"===n.type?h.arrowhead="none":h.arrowhead="normal",h.arrowTypeStart="arrow_open",h.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":h.arrowTypeStart="arrow_cross";case"arrow_cross":h.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":h.arrowTypeStart="arrow_point";case"arrow_point":h.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":h.arrowTypeStart="arrow_circle";case"arrow_circle":h.arrowTypeEnd="arrow_circle"}let f="",g="";switch(n.stroke){case"normal":f="fill:none;",void 0!==i&&(f=i),void 0!==a&&(g=a),h.thickness="normal",h.pattern="solid";break;case"dotted":h.thickness="normal",h.pattern="dotted",h.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":h.thickness="thick",h.pattern="solid",h.style="stroke-width: 3.5px;fill:none;"}if(void 0!==n.style){const t=On(n.style);f=t.style,g=t.labelStyle}h.style=h.style+=f,h.labelStyle=h.labelStyle+=g,void 0!==n.interpolate?h.curve=In(n.interpolate,s.c_6):void 0!==t.defaultInterpolate?h.curve=In(t.defaultInterpolate,s.c_6):h.curve=In(vc.curve,s.c_6),void 0===n.text?void 0!==n.style&&(h.arrowheadStyle="fill: #333"):(h.arrowheadStyle="fill: #333",h.labelpos="c"),h.labelType="text",h.label=n.text.replace(zt.lineBreakRegex,"\n"),void 0===n.style&&(h.style=h.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),h.labelStyle=h.labelStyle.replace("color:","fill:"),h.id=l,h.classes="flowchart-link "+u+" "+d,e.setEdge(n.start,n.end,h,r)}))},Rc={setConf:function(t){const e=Object.keys(t);for(const n of e)vc[n]=t[n]},addVertices:wc,addEdges:xc,getClasses:function(t,e){Dt.info("Extracting classes"),e.db.clear();try{return e.parse(t),e.db.getClasses()}catch(n){return}},draw:function(t,e,n,i){Dt.info("Drawing flowchart"),i.db.clear(),pc.setGen("gen-2"),i.parser.parse(t);let a=i.db.getDirection();void 0===a&&(a="TD");const{securityLevel:r,flowchart:o}=ai(),c=o.nodeSpacing||50,l=o.rankSpacing||50;let u;"sandbox"===r&&(u=(0,s.Ys)("#i"+e));const d="sandbox"===r?(0,s.Ys)(u.nodes()[0].contentDocument.body):(0,s.Ys)("body"),h="sandbox"===r?u.nodes()[0].contentDocument:document,f=new lt.k({multigraph:!0,compound:!0}).setGraph({rankdir:a,nodesep:c,ranksep:l,marginx:0,marginy:0}).setDefaultEdgeLabel((function(){return{}}));let g;const p=i.db.getSubGraphs();Dt.info("Subgraphs - ",p);for(let s=p.length-1;s>=0;s--)g=p[s],Dt.info("Subgraph - ",g),i.db.addVertex(g.id,g.title,"group",void 0,g.classes,g.dir);const b=i.db.getVertices(),m=i.db.getEdges();Dt.info("Edges",m);let y=0;for(y=p.length-1;y>=0;y--){g=p[y],(0,s.td_)("cluster").append("text");for(let t=0;t<g.nodes.length;t++)Dt.info("Setting up subgraphs",g.nodes[t],g.id),f.setParent(g.nodes[t],g.id)}wc(b,f,e,d,h,i),xc(m,f);const v=d.select(`[id="${e}"]`),w=d.select("#"+e+" g");if(Wo(w,f,["point","circle","cross"],"flowchart",e),Gn.insertTitle(v,"flowchartTitleText",o.titleTopMargin,i.db.getDiagramTitle()),hi(f,v,o.diagramPadding,o.useMaxWidth),i.db.indexNodes("subGraph"+y),!o.htmlLabels){const t=h.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const e of t){const t=e.getBBox(),n=h.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",t.width),n.setAttribute("height",t.height),e.insertBefore(n,e.firstChild)}}Object.keys(b).forEach((function(t){const n=b[t];if(n.link){const i=(0,s.Ys)("#"+e+' [id="'+t+'"]');if(i){const t=h.createElementNS("http://www.w3.org/2000/svg","a");t.setAttributeNS("http://www.w3.org/2000/svg","class",n.classes.join(" ")),t.setAttributeNS("http://www.w3.org/2000/svg","href",n.link),t.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===r?t.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):n.linkTarget&&t.setAttributeNS("http://www.w3.org/2000/svg","target",n.linkTarget);const e=i.insert((function(){return t}),":first-child"),a=i.select(".label-container");a&&e.append((function(){return a.node()}));const o=i.select(".label");o&&e.append((function(){return o.node()}))}}}))}};var _c=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,3],i=[1,5],a=[7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],r=[1,15],o=[1,16],s=[1,17],c=[1,18],l=[1,19],u=[1,20],d=[1,21],h=[1,22],f=[1,23],g=[1,24],p=[1,25],b=[1,26],m=[1,27],y=[1,29],v=[1,31],w=[1,34],x=[5,7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],R={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,topAxis:14,axisFormat:15,tickInterval:16,excludes:17,includes:18,todayMarker:19,title:20,acc_title:21,acc_title_value:22,acc_descr:23,acc_descr_value:24,acc_descr_multiline_value:25,section:26,clickStatement:27,taskTxt:28,taskData:29,openDirective:30,typeDirective:31,closeDirective:32,":":33,argDirective:34,click:35,callbackname:36,callbackargs:37,href:38,clickStatementDebug:39,open_directive:40,type_directive:41,arg_directive:42,close_directive:43,$accept:0,$end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"topAxis",15:"axisFormat",16:"tickInterval",17:"excludes",18:"includes",19:"todayMarker",20:"title",21:"acc_title",22:"acc_title_value",23:"acc_descr",24:"acc_descr_value",25:"acc_descr_multiline_value",26:"section",28:"taskTxt",29:"taskData",33:":",35:"click",36:"callbackname",37:"callbackargs",38:"href",40:"open_directive",41:"type_directive",42:"arg_directive",43:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[27,2],[27,3],[27,3],[27,4],[27,3],[27,4],[27,2],[39,2],[39,3],[39,3],[39,4],[39,3],[39,4],[39,2],[30,1],[31,1],[34,1],[32,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 2:return r[s-1];case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:this.$=r[s];break;case 9:i.setDateFormat(r[s].substr(11)),this.$=r[s].substr(11);break;case 10:i.enableInclusiveEndDates(),this.$=r[s].substr(18);break;case 11:i.TopAxis(),this.$=r[s].substr(8);break;case 12:i.setAxisFormat(r[s].substr(11)),this.$=r[s].substr(11);break;case 13:i.setTickInterval(r[s].substr(13)),this.$=r[s].substr(13);break;case 14:i.setExcludes(r[s].substr(9)),this.$=r[s].substr(9);break;case 15:i.setIncludes(r[s].substr(9)),this.$=r[s].substr(9);break;case 16:i.setTodayMarker(r[s].substr(12)),this.$=r[s].substr(12);break;case 17:i.setDiagramTitle(r[s].substr(6)),this.$=r[s].substr(6);break;case 18:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 19:case 20:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 21:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 23:i.addTask(r[s-1],r[s]),this.$="task";break;case 27:this.$=r[s-1],i.setClickEvent(r[s-1],r[s],null);break;case 28:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 29:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],null),i.setLink(r[s-2],r[s]);break;case 30:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-2],r[s-1]),i.setLink(r[s-3],r[s]);break;case 31:this.$=r[s-2],i.setClickEvent(r[s-2],r[s],null),i.setLink(r[s-2],r[s-1]);break;case 32:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-1],r[s]),i.setLink(r[s-3],r[s-2]);break;case 33:this.$=r[s-1],i.setLink(r[s-1],r[s]);break;case 34:case 40:this.$=r[s-1]+" "+r[s];break;case 35:case 36:case 38:this.$=r[s-2]+" "+r[s-1]+" "+r[s];break;case 37:case 39:this.$=r[s-3]+" "+r[s-2]+" "+r[s-1]+" "+r[s];break;case 41:i.parseDirective("%%{","open_directive");break;case 42:i.parseDirective(r[s],"type_directive");break;case 43:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 44:i.parseDirective("}%%","close_directive","gantt")}},table:[{3:1,4:2,5:n,30:4,40:i},{1:[3]},{3:6,4:2,5:n,30:4,40:i},e(a,[2,3],{6:7}),{31:8,41:[1,9]},{41:[2,41]},{1:[2,1]},{4:30,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:r,13:o,14:s,15:c,16:l,17:u,18:d,19:h,20:f,21:g,23:p,25:b,26:m,27:28,28:y,30:4,35:v,40:i},{32:32,33:[1,33],43:w},e([33,43],[2,42]),e(a,[2,8],{1:[2,2]}),e(a,[2,4]),{4:30,10:35,12:r,13:o,14:s,15:c,16:l,17:u,18:d,19:h,20:f,21:g,23:p,25:b,26:m,27:28,28:y,30:4,35:v,40:i},e(a,[2,6]),e(a,[2,7]),e(a,[2,9]),e(a,[2,10]),e(a,[2,11]),e(a,[2,12]),e(a,[2,13]),e(a,[2,14]),e(a,[2,15]),e(a,[2,16]),e(a,[2,17]),{22:[1,36]},{24:[1,37]},e(a,[2,20]),e(a,[2,21]),e(a,[2,22]),{29:[1,38]},e(a,[2,24]),{36:[1,39],38:[1,40]},{11:[1,41]},{34:42,42:[1,43]},{11:[2,44]},e(a,[2,5]),e(a,[2,18]),e(a,[2,19]),e(a,[2,23]),e(a,[2,27],{37:[1,44],38:[1,45]}),e(a,[2,33],{36:[1,46]}),e(x,[2,25]),{32:47,43:w},{43:[2,43]},e(a,[2,28],{38:[1,48]}),e(a,[2,29]),e(a,[2,31],{37:[1,49]}),{11:[1,50]},e(a,[2,30]),e(a,[2,32]),e(x,[2,26])],defaultActions:{5:[2,41],6:[2,1],34:[2,44],43:[2,43]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},_=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),40;case 1:return this.begin("type_directive"),41;case 2:return this.popState(),this.begin("arg_directive"),33;case 3:return this.popState(),this.popState(),43;case 4:return 42;case 5:return this.begin("acc_title"),21;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),23;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 20:case 23:case 26:case 29:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:case 13:case 14:case 16:case 17:case 18:break;case 15:return 11;case 19:this.begin("href");break;case 21:return 38;case 22:this.begin("callbackname");break;case 24:this.popState(),this.begin("callbackargs");break;case 25:return 36;case 27:return 37;case 28:this.begin("click");break;case 30:return 35;case 31:return 5;case 32:return 12;case 33:return 13;case 34:return 14;case 35:return 15;case 36:return 16;case 37:return 18;case 38:return 17;case 39:return 19;case 40:return"date";case 41:return 20;case 42:return"accDescription";case 43:return 26;case 44:return 28;case 45:return 29;case 46:return 33;case 47:return 7;case 48:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[26,27],inclusive:!1},callbackname:{rules:[23,24,25],inclusive:!1},href:{rules:[20,21],inclusive:!1},click:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}},t);function k(){this.yy={}}return R.lexer=_,k.prototype=R,R.Parser=k,new k}();_c.parser=_c;const kc=_c,Ec=t=>null!==t.match(/^\s*gantt/);r().extend(_t()),r().extend(Et()),r().extend(St());let Cc,Sc="",Tc="",Ac="",Dc=[],Ic=[],Lc={},Oc=[],Mc=[],Nc="";const Bc=["active","done","crit","milestone"];let Pc=[],Fc=!1,jc=!1,$c=0;const zc=function(t,e,n,i){return!i.includes(t.format(e.trim()))&&(!!(t.isoWeekday()>=6&&n.includes("weekends"))||(!!n.includes(t.format("dddd").toLowerCase())||n.includes(t.format(e.trim()))))},Hc=function(t,e,n,i){if(!n.length||t.manualEndTime)return;let a,o;a=t.startTime instanceof Date?r()(t.startTime):r()(t.startTime,e,!0),a=a.add(1,"d"),o=t.endTime instanceof Date?r()(t.endTime):r()(t.endTime,e,!0);const[s,c]=Uc(a,o,e,n,i);t.endTime=s.toDate(),t.renderEndTime=c},Uc=function(t,e,n,i,a){let r=!1,o=null;for(;t<=e;)r||(o=e.toDate()),r=zc(t,n,i,a),r&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,o]},Vc=function(t,e,n){n=n.trim();const i=/^after\s+([\d\w- ]+)/.exec(n.trim());if(null!==i){let t=null;if(i[1].split(" ").forEach((function(e){let n=Qc(e);void 0!==n&&(t?n.endTime>t.endTime&&(t=n):t=n)})),t)return t.endTime;{const t=new Date;return t.setHours(0,0,0,0),t}}let a=r()(n,e.trim(),!0);if(a.isValid())return a.toDate();{Dt.debug("Invalid date:"+n),Dt.debug("With date format:"+e.trim());const t=new Date(n);if(void 0===t||isNaN(t.getTime()))throw new Error("Invalid date:"+n);return t}},qc=function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return null!==e?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},Wc=function(t,e,n,i=!1){n=n.trim();let a=r()(n,e.trim(),!0);if(a.isValid())return i&&(a=a.add(1,"d")),a.toDate();let o=r()(t);const[s,c]=qc(n);if(!Number.isNaN(s)){const t=o.add(s,c);t.isValid()&&(o=t)}return o.toDate()};let Yc=0;const Gc=function(t){return void 0===t?(Yc+=1,"task"+Yc):t};let Zc,Kc,Xc=[];const Jc={},Qc=function(t){const e=Jc[t];return Xc[e]},tl=function(){const t=function(t){const e=Xc[t];let n="";switch(Xc[t].raw.startTime.type){case"prevTaskEnd":{const t=Qc(e.prevTaskId);e.startTime=t.endTime;break}case"getStartDate":n=Vc(0,Sc,Xc[t].raw.startTime.startData),n&&(Xc[t].startTime=n)}return Xc[t].startTime&&(Xc[t].endTime=Wc(Xc[t].startTime,Sc,Xc[t].raw.endTime.data,Fc),Xc[t].endTime&&(Xc[t].processed=!0,Xc[t].manualEndTime=r()(Xc[t].raw.endTime.data,"YYYY-MM-DD",!0).isValid(),Hc(Xc[t],Sc,Ic,Dc))),Xc[t].processed};let e=!0;for(const[n,i]of Xc.entries())t(n),e=e&&i.processed;return e},el=function(t,e){t.split(",").forEach((function(t){let n=Qc(t);void 0!==n&&n.classes.push(e)}))},nl=function(t,e){Pc.push((function(){const n=document.querySelector(`[id="${t}"]`);null!==n&&n.addEventListener("click",(function(){e()}))}),(function(){const n=document.querySelector(`[id="${t}-text"]`);null!==n&&n.addEventListener("click",(function(){e()}))}))},il={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().gantt,clear:function(){Oc=[],Mc=[],Nc="",Pc=[],Yc=0,Zc=void 0,Kc=void 0,Xc=[],Sc="",Tc="",Cc=void 0,Ac="",Dc=[],Ic=[],Fc=!1,jc=!1,$c=0,Lc={},Ii()},setDateFormat:function(t){Sc=t},getDateFormat:function(){return Sc},enableInclusiveEndDates:function(){Fc=!0},endDatesAreInclusive:function(){return Fc},enableTopAxis:function(){jc=!0},topAxisEnabled:function(){return jc},setAxisFormat:function(t){Tc=t},getAxisFormat:function(){return Tc},setTickInterval:function(t){Cc=t},getTickInterval:function(){return Cc},setTodayMarker:function(t){Ac=t},getTodayMarker:function(){return Ac},setAccTitle:Li,getAccTitle:Oi,setDiagramTitle:Bi,getDiagramTitle:Pi,setAccDescription:Mi,getAccDescription:Ni,addSection:function(t){Nc=t,Oc.push(t)},getSections:function(){return Oc},getTasks:function(){let t=tl();let e=0;for(;!t&&e<10;)t=tl(),e++;return Mc=Xc,Mc},addTask:function(t,e){const n={section:Nc,type:Nc,processed:!1,manualEndTime:!1,renderEndTime:null,raw:{data:e},task:t,classes:[]},i=function(t,e){let n;n=":"===e.substr(0,1)?e.substr(1,e.length):e;const i=n.split(","),a={};al(i,a,Bc);for(let r=0;r<i.length;r++)i[r]=i[r].trim();switch(i.length){case 1:a.id=Gc(),a.startTime={type:"prevTaskEnd",id:t},a.endTime={data:i[0]};break;case 2:a.id=Gc(),a.startTime={type:"getStartDate",startData:i[0]},a.endTime={data:i[1]};break;case 3:a.id=Gc(i[0]),a.startTime={type:"getStartDate",startData:i[1]},a.endTime={data:i[2]}}return a}(Kc,e);n.raw.startTime=i.startTime,n.raw.endTime=i.endTime,n.id=i.id,n.prevTaskId=Kc,n.active=i.active,n.done=i.done,n.crit=i.crit,n.milestone=i.milestone,n.order=$c,$c++;const a=Xc.push(n);Kc=n.id,Jc[n.id]=a-1},findTaskById:Qc,addTaskOrg:function(t,e){const n={section:Nc,type:Nc,description:t,task:t,classes:[]},i=function(t,e){let n;n=":"===e.substr(0,1)?e.substr(1,e.length):e;const i=n.split(","),a={};al(i,a,Bc);for(let r=0;r<i.length;r++)i[r]=i[r].trim();let o="";switch(i.length){case 1:a.id=Gc(),a.startTime=t.endTime,o=i[0];break;case 2:a.id=Gc(),a.startTime=Vc(0,Sc,i[0]),o=i[1];break;case 3:a.id=Gc(i[0]),a.startTime=Vc(0,Sc,i[1]),o=i[2]}return o&&(a.endTime=Wc(a.startTime,Sc,o,Fc),a.manualEndTime=r()(o,"YYYY-MM-DD",!0).isValid(),Hc(a,Sc,Ic,Dc)),a}(Zc,e);n.startTime=i.startTime,n.endTime=i.endTime,n.id=i.id,n.active=i.active,n.done=i.done,n.crit=i.crit,n.milestone=i.milestone,Zc=n,Mc.push(n)},setIncludes:function(t){Dc=t.toLowerCase().split(/[\s,]+/)},getIncludes:function(){return Dc},setExcludes:function(t){Ic=t.toLowerCase().split(/[\s,]+/)},getExcludes:function(){return Ic},setClickEvent:function(t,e,n){t.split(",").forEach((function(t){!function(t,e,n){if("loose"!==ai().securityLevel)return;if(void 0===e)return;let i=[];if("string"==typeof n){i=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<i.length;t++){let e=i[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),i[t]=e}}0===i.length&&i.push(t),void 0!==Qc(t)&&nl(t,(()=>{Gn.runFunc(e,...i)}))}(t,e,n)})),el(t,"clickable")},setLink:function(t,e){let n=e;"loose"!==ai().securityLevel&&(n=(0,o.Nm)(e)),t.split(",").forEach((function(t){void 0!==Qc(t)&&(nl(t,(()=>{window.open(n,"_self")})),Lc[t]=n)})),el(t,"clickable")},getLinks:function(){return Lc},bindFunctions:function(t){Pc.forEach((function(e){e(t)}))},parseDuration:qc,isInvalidDate:zc};function al(t,e,n){let i=!0;for(;i;)i=!1,n.forEach((function(n){const a=new RegExp("^\\s*"+n+"\\s*$");t[0].match(a)&&(e[n]=!0,t.shift(1),i=!0)}))}let rl;const ol={setConf:function(){Dt.debug("Something is calling, setConf, remove the call")},draw:function(t,e,n,i){const a=ai().gantt,o=ai().securityLevel;let c;"sandbox"===o&&(c=(0,s.Ys)("#i"+e));const l="sandbox"===o?(0,s.Ys)(c.nodes()[0].contentDocument.body):(0,s.Ys)("body"),u="sandbox"===o?c.nodes()[0].contentDocument:document,d=u.getElementById(e);rl=d.parentElement.offsetWidth,void 0===rl&&(rl=1200),void 0!==a.useWidth&&(rl=a.useWidth);const h=i.db.getTasks(),f=h.length*(a.barHeight+a.barGap)+2*a.topPadding;d.setAttribute("viewBox","0 0 "+rl+" "+f);const g=l.select(`[id="${e}"]`),p=(0,s.Xf)().domain([(0,s.VV$)(h,(function(t){return t.startTime})),(0,s.Fp7)(h,(function(t){return t.endTime}))]).rangeRound([0,rl-a.leftPadding-a.rightPadding]);let b=[];for(const r of h)b.push(r.type);const m=b;function y(t,e){return function(t){let e=t.length;const n={};for(;e;)n[t[--e]]=(n[t[e]]||0)+1;return n}(e)[t]||0}b=function(t){const e={},n=[];for(let i=0,a=t.length;i<a;++i)Object.prototype.hasOwnProperty.call(e,t[i])||(e[t[i]]=!0,n.push(t[i]));return n}(b),h.sort((function(t,e){const n=t.startTime,i=e.startTime;let a=0;return n>i?a=1:n<i&&(a=-1),a})),function(t,n,o){const c=a.barHeight,l=c+a.barGap,d=a.topPadding,h=a.leftPadding;(0,s.BYU)().domain([0,b.length]).range(["#00B9FA","#F95002"]).interpolate(s.JHv);(function(t,e,n,o,s,c,l,u){const d=c.reduce(((t,{startTime:e})=>t?Math.min(t,e):e),0),h=c.reduce(((t,{endTime:e})=>t?Math.max(t,e):e),0),f=i.db.getDateFormat();if(!d||!h)return;const b=[];let m=null,y=r()(d);for(;y.valueOf()<=h;)i.db.isInvalidDate(y,f,l,u)?m?m.end=y:m={start:y,end:y}:m&&(b.push(m),m=null),y=y.add(1,"d");g.append("g").selectAll("rect").data(b).enter().append("rect").attr("id",(function(t){return"exclude-"+t.start.format("YYYY-MM-DD")})).attr("x",(function(t){return p(t.start)+n})).attr("y",a.gridLineStartPadding).attr("width",(function(t){const e=t.end.add(1,"day");return p(e)-p(t.start)})).attr("height",s-e-a.gridLineStartPadding).attr("transform-origin",(function(e,i){return(p(e.start)+n+.5*(p(e.end)-p(e.start))).toString()+"px "+(i*t+.5*s).toString()+"px"})).attr("class","exclude-range")})(l,d,h,0,o,t,i.db.getExcludes(),i.db.getIncludes()),function(t,e,n,r){let o=(0,s.LLu)(p).tickSize(-r+e+a.gridLineStartPadding).tickFormat((0,s.i$Z)(i.db.getAxisFormat()||a.axisFormat||"%Y-%m-%d"));const c=/^([1-9]\d*)(minute|hour|day|week|month)$/.exec(i.db.getTickInterval()||a.tickInterval);if(null!==c){const t=c[1];switch(c[2]){case"minute":o.ticks(s.Z_i.every(t));break;case"hour":o.ticks(s.WQD.every(t));break;case"day":o.ticks(s.rr1.every(t));break;case"week":o.ticks(s.NGh.every(t));break;case"month":o.ticks(s.F0B.every(t))}}if(g.append("g").attr("class","grid").attr("transform","translate("+t+", "+(r-50)+")").call(o).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),i.db.topAxisEnabled()||a.topAxis){let n=(0,s.F5q)(p).tickSize(-r+e+a.gridLineStartPadding).tickFormat((0,s.i$Z)(i.db.getAxisFormat()||a.axisFormat||"%Y-%m-%d"));if(null!==c){const t=c[1];switch(c[2]){case"minute":n.ticks(s.Z_i.every(t));break;case"hour":n.ticks(s.WQD.every(t));break;case"day":n.ticks(s.rr1.every(t));break;case"week":n.ticks(s.NGh.every(t));break;case"month":n.ticks(s.F0B.every(t))}}g.append("g").attr("class","grid").attr("transform","translate("+t+", "+e+")").call(n).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}(h,d,0,o),function(t,n,r,o,c,l,u){g.append("g").selectAll("rect").data(t).enter().append("rect").attr("x",0).attr("y",(function(t,e){return t.order*n+r-2})).attr("width",(function(){return u-a.rightPadding/2})).attr("height",n).attr("class",(function(t){for(const[e,n]of b.entries())if(t.type===n)return"section section"+e%a.numberSectionStyles;return"section section0"}));const d=g.append("g").selectAll("rect").data(t).enter(),h=i.db.getLinks();d.append("rect").attr("id",(function(t){return t.id})).attr("rx",3).attr("ry",3).attr("x",(function(t){return t.milestone?p(t.startTime)+o+.5*(p(t.endTime)-p(t.startTime))-.5*c:p(t.startTime)+o})).attr("y",(function(t,e){return t.order*n+r})).attr("width",(function(t){return t.milestone?c:p(t.renderEndTime||t.endTime)-p(t.startTime)})).attr("height",c).attr("transform-origin",(function(t,e){return e=t.order,(p(t.startTime)+o+.5*(p(t.endTime)-p(t.startTime))).toString()+"px "+(e*n+r+.5*c).toString()+"px"})).attr("class",(function(t){const e="task";let n="";t.classes.length>0&&(n=t.classes.join(" "));let i=0;for(const[o,s]of b.entries())t.type===s&&(i=o%a.numberSectionStyles);let r="";return t.active?t.crit?r+=" activeCrit":r=" active":t.done?r=t.crit?" doneCrit":" done":t.crit&&(r+=" crit"),0===r.length&&(r=" task"),t.milestone&&(r=" milestone "+r),r+=i,r+=" "+n,e+r})),d.append("text").attr("id",(function(t){return t.id+"-text"})).text((function(t){return t.task})).attr("font-size",a.fontSize).attr("x",(function(t){let e=p(t.startTime),n=p(t.renderEndTime||t.endTime);t.milestone&&(e+=.5*(p(t.endTime)-p(t.startTime))-.5*c),t.milestone&&(n=e+c);const i=this.getBBox().width;return i>n-e?n+i+1.5*a.leftPadding>u?e+o-5:n+o+5:(n-e)/2+e+o})).attr("y",(function(t,e){return t.order*n+a.barHeight/2+(a.fontSize/2-2)+r})).attr("text-height",c).attr("class",(function(t){const e=p(t.startTime);let n=p(t.endTime);t.milestone&&(n=e+c);const i=this.getBBox().width;let r="";t.classes.length>0&&(r=t.classes.join(" "));let o=0;for(const[c,l]of b.entries())t.type===l&&(o=c%a.numberSectionStyles);let s="";return t.active&&(s=t.crit?"activeCritText"+o:"activeText"+o),t.done?s=t.crit?s+" doneCritText"+o:s+" doneText"+o:t.crit&&(s=s+" critText"+o),t.milestone&&(s+=" milestoneText"),i>n-e?n+i+1.5*a.leftPadding>u?r+" taskTextOutsideLeft taskTextOutside"+o+" "+s:r+" taskTextOutsideRight taskTextOutside"+o+" "+s+" width-"+i:r+" taskText taskText"+o+" "+s+" width-"+i}));if("sandbox"===ai().securityLevel){let t;t=(0,s.Ys)("#i"+e);const n=t.nodes()[0].contentDocument;d.filter((function(t){return void 0!==h[t.id]})).each((function(t){var e=n.querySelector("#"+t.id),i=n.querySelector("#"+t.id+"-text");const a=e.parentNode;var r=n.createElement("a");r.setAttribute("xlink:href",h[t.id]),r.setAttribute("target","_top"),a.appendChild(r),r.appendChild(e),r.appendChild(i)}))}}(t,l,d,h,c,0,n),function(t,e){const n=[];let i=0;for(const[a,r]of b.entries())n[a]=[r,y(r,m)];g.append("g").selectAll("text").data(n).enter().append((function(t){const e=t[0].split(zt.lineBreakRegex),n=-(e.length-1)/2,i=u.createElementNS("http://www.w3.org/2000/svg","text");i.setAttribute("dy",n+"em");for(const[a,r]of e.entries()){const t=u.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttribute("alignment-baseline","central"),t.setAttribute("x","10"),a>0&&t.setAttribute("dy","1em"),t.textContent=r,i.appendChild(t)}return i})).attr("x",10).attr("y",(function(a,r){if(!(r>0))return a[1]*t/2+e;for(let o=0;o<r;o++)return i+=n[r-1][1],a[1]*t/2+i*t+e})).attr("font-size",a.sectionFontSize).attr("font-size",a.sectionFontSize).attr("class",(function(t){for(const[e,n]of b.entries())if(t[0]===n)return"sectionTitle sectionTitle"+e%a.numberSectionStyles;return"sectionTitle"}))}(l,d),function(t,e,n,r){const o=i.db.getTodayMarker();if("off"===o)return;const s=g.append("g").attr("class","today"),c=new Date,l=s.append("line");l.attr("x1",p(c)+t).attr("x2",p(c)+t).attr("y1",a.titleTopMargin).attr("y2",r-a.titleTopMargin).attr("class","today"),""!==o&&l.attr("style",o.replace(/,/g,";"))}(h,0,0,o)}(h,rl,f),di(g,f,rl,a.useMaxWidth),g.append("text").text(i.db.getDiagramTitle()).attr("x",rl/2).attr("y",a.titleTopMargin).attr("class","titleText")}};var sl=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[6,9,10],i={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,n,i,a,r,o){switch(r.length,a){case 1:return i;case 4:break;case 6:i.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},e(n,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},e(n,[2,3]),e(n,[2,4]),e(n,[2,5]),e(n,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},a=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}},t);function r(){this.yy={}}return i.lexer=a,r.prototype=i,i.Parser=r,new r}();sl.parser=sl;const cl=sl;var ll="",ul=!1;const dl={setMessage:t=>{Dt.debug("Setting message to: "+t),ll=t},getMessage:()=>ll,setInfo:t=>{ul=t},getInfo:()=>ul,clear:Ii},hl={draw:(t,e,n)=>{try{Dt.debug("Rendering info diagram\n"+t);const i=ai().securityLevel;let a;"sandbox"===i&&(a=(0,s.Ys)("#i"+e));const r=("sandbox"===i?(0,s.Ys)(a.nodes()[0].contentDocument.body):(0,s.Ys)("body")).select("#"+e);r.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size","32px").style("text-anchor","middle").text("v "+n),r.attr("height",100),r.attr("width",400)}catch(i){Dt.error("Error while rendering info diagram"),Dt.error(i.message)}}},fl=t=>null!==t.match(/^\s*info/);var gl=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,4],i=[1,5],a=[1,6],r=[1,7],o=[1,9],s=[1,11,13,15,17,19,20,26,27,28,29],c=[2,5],l=[1,6,11,13,15,17,19,20,26,27,28,29],u=[26,27,28],d=[2,8],h=[1,18],f=[1,19],g=[1,20],p=[1,21],b=[1,22],m=[1,23],y=[1,28],v=[6,26,27,28,29],w={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement:10,txt:11,value:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,openDirective:21,typeDirective:22,closeDirective:23,":":24,argDirective:25,NEWLINE:26,";":27,EOF:28,open_directive:29,type_directive:30,arg_directive:31,close_directive:32,$accept:0,$end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",24:":",26:"NEWLINE",27:";",28:"EOF",29:"open_directive",30:"type_directive",31:"arg_directive",32:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:i.setShowData(!0);break;case 7:this.$=r[s-1];break;case 9:i.addSection(r[s-1],i.cleanupValue(r[s]));break;case 10:this.$=r[s].trim(),i.setDiagramTitle(this.$);break;case 11:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 12:case 13:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 14:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 21:i.parseDirective("%%{","open_directive");break;case 22:i.parseDirective(r[s],"type_directive");break;case 23:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 24:i.parseDirective("}%%","close_directive","pie")}},table:[{3:1,4:2,5:3,6:n,21:8,26:i,27:a,28:r,29:o},{1:[3]},{3:10,4:2,5:3,6:n,21:8,26:i,27:a,28:r,29:o},{3:11,4:2,5:3,6:n,21:8,26:i,27:a,28:r,29:o},e(s,c,{7:12,8:[1,13]}),e(l,[2,18]),e(l,[2,19]),e(l,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},e(u,d,{21:8,9:16,10:17,5:24,1:[2,3],11:h,13:f,15:g,17:p,19:b,20:m,29:o}),e(s,c,{7:25}),{23:26,24:[1,27],32:y},e([24,32],[2,22]),e(s,[2,6]),{4:29,26:i,27:a,28:r},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},e(u,[2,13]),e(u,[2,14]),e(u,[2,15]),e(u,d,{21:8,9:16,10:17,5:24,1:[2,4],11:h,13:f,15:g,17:p,19:b,20:m,29:o}),e(v,[2,16]),{25:34,31:[1,35]},e(v,[2,24]),e(s,[2,7]),e(u,[2,9]),e(u,[2,10]),e(u,[2,11]),e(u,[2,12]),{23:36,32:y},{32:[2,23]},e(v,[2,17])],defaultActions:{9:[2,21],10:[2,1],11:[2,2],35:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},x=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),29;case 1:return this.begin("type_directive"),30;case 2:return this.popState(),this.begin("arg_directive"),24;case 3:return this.popState(),this.popState(),32;case 4:return 31;case 5:case 6:case 8:case 9:break;case 7:return 26;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:return this.begin("acc_title"),15;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),17;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:case 20:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:this.begin("string");break;case 21:return"txt";case 22:return 6;case 23:return 8;case 24:return"value";case 25:return 28}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[20,21],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],inclusive:!0}}},t);function R(){this.yy={}}return w.lexer=x,R.prototype=w,w.Parser=R,new R}();gl.parser=gl;const pl=gl,bl=t=>null!==t.match(/^\s*pie/)||null!==t.match(/^\s*bar/);let ml={},yl=!1;const vl={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().pie,addSection:function(t,e){t=zt.sanitizeText(t,ai()),void 0===ml[t]&&(ml[t]=e,Dt.debug("Added new section :",t))},getSections:()=>ml,cleanupValue:function(t){return":"===t.substring(0,1)?(t=t.substring(1).trim(),Number(t.trim())):Number(t.trim())},clear:function(){ml={},yl=!1,Ii()},setAccTitle:Li,getAccTitle:Oi,setDiagramTitle:Bi,getDiagramTitle:Pi,setShowData:function(t){yl=t},getShowData:function(){return yl},getAccDescription:Ni,setAccDescription:Mi};let wl,xl=ai();const Rl=450,_l={draw:(t,e,n,i)=>{try{xl=ai(),Dt.debug("Rendering info diagram\n"+t);const n=ai().securityLevel;let b;"sandbox"===n&&(b=(0,s.Ys)("#i"+e));const m="sandbox"===n?(0,s.Ys)(b.nodes()[0].contentDocument.body):(0,s.Ys)("body"),y="sandbox"===n?b.nodes()[0].contentDocument:document;i.db.clear(),i.parser.parse(t),Dt.debug("Parsed info diagram");const v=y.getElementById(e);wl=v.parentElement.offsetWidth,void 0===wl&&(wl=1200),void 0!==xl.useWidth&&(wl=xl.useWidth),void 0!==xl.pie.useWidth&&(wl=xl.pie.useWidth);const w=m.select("#"+e);di(w,Rl,wl,xl.pie.useMaxWidth),v.setAttribute("viewBox","0 0 "+wl+" "+Rl);var a=18,r=Math.min(wl,Rl)/2-40,o=w.append("g").attr("transform","translate("+wl/2+",225)"),c=i.db.getSections(),l=0;Object.keys(c).forEach((function(t){l+=c[t]}));const x=xl.themeVariables;var u=[x.pie1,x.pie2,x.pie3,x.pie4,x.pie5,x.pie6,x.pie7,x.pie8,x.pie9,x.pie10,x.pie11,x.pie12],d=(0,s.PKp)().range(u),h=Object.entries(c).map((function(t,e){return{order:e,name:t[0],value:t[1]}})),f=(0,s.ve8)().value((function(t){return t.value})).sort((function(t,e){return t.order-e.order}))(h),g=(0,s.Nb1)().innerRadius(0).outerRadius(r);o.selectAll("mySlices").data(f).enter().append("path").attr("d",g).attr("fill",(function(t){return d(t.data.name)})).attr("class","pieCircle"),o.selectAll("mySlices").data(f).enter().append("text").text((function(t){return(t.data.value/l*100).toFixed(0)+"%"})).attr("transform",(function(t){return"translate("+g.centroid(t)+")"})).style("text-anchor","middle").attr("class","slice"),o.append("text").text(i.db.getDiagramTitle()).attr("x",0).attr("y",-200).attr("class","pieTitleText");var p=o.selectAll(".legend").data(d.domain()).enter().append("g").attr("class","legend").attr("transform",(function(t,e){return"translate(216,"+(22*e-22*d.domain().length/2)+")"}));p.append("rect").attr("width",a).attr("height",a).style("fill",d).style("stroke",d),p.data(f).append("text").attr("x",22).attr("y",14).text((function(t){return i.db.getShowData()||xl.showData||xl.pie.showData?t.data.name+" ["+t.data.value+"]":t.data.name}))}catch(b){Dt.error("Error while rendering info diagram"),Dt.error(b)}}};var kl=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,3],i=[1,5],a=[1,6],r=[1,7],o=[1,8],s=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],c=[1,22],l=[2,13],u=[1,26],d=[1,27],h=[1,28],f=[1,29],g=[1,30],p=[1,31],b=[1,24],m=[1,32],y=[1,33],v=[1,36],w=[71,72],x=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],R=[1,56],_=[1,57],k=[1,58],E=[1,59],C=[1,60],S=[1,61],T=[1,62],A=[62,63],D=[1,74],I=[1,70],L=[1,71],O=[1,72],M=[1,73],N=[1,75],B=[1,79],P=[1,80],F=[1,77],j=[1,78],$=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72],z={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,requirementDef:23,elementDef:24,relationshipDef:25,requirementType:26,requirementName:27,STRUCT_START:28,requirementBody:29,ID:30,COLONSEP:31,id:32,TEXT:33,text:34,RISK:35,riskLevel:36,VERIFYMTHD:37,verifyType:38,STRUCT_STOP:39,REQUIREMENT:40,FUNCTIONAL_REQUIREMENT:41,INTERFACE_REQUIREMENT:42,PERFORMANCE_REQUIREMENT:43,PHYSICAL_REQUIREMENT:44,DESIGN_CONSTRAINT:45,LOW_RISK:46,MED_RISK:47,HIGH_RISK:48,VERIFY_ANALYSIS:49,VERIFY_DEMONSTRATION:50,VERIFY_INSPECTION:51,VERIFY_TEST:52,ELEMENT:53,elementName:54,elementBody:55,TYPE:56,type:57,DOCREF:58,ref:59,END_ARROW_L:60,relationship:61,LINE:62,END_ARROW_R:63,CONTAINS:64,COPIES:65,DERIVES:66,SATISFIES:67,VERIFIES:68,REFINES:69,TRACES:70,unqString:71,qString:72,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",12:":",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",28:"STRUCT_START",30:"ID",31:"COLONSEP",33:"TEXT",35:"RISK",37:"VERIFYMTHD",39:"STRUCT_STOP",40:"REQUIREMENT",41:"FUNCTIONAL_REQUIREMENT",42:"INTERFACE_REQUIREMENT",43:"PERFORMANCE_REQUIREMENT",44:"PHYSICAL_REQUIREMENT",45:"DESIGN_CONSTRAINT",46:"LOW_RISK",47:"MED_RISK",48:"HIGH_RISK",49:"VERIFY_ANALYSIS",50:"VERIFY_DEMONSTRATION",51:"VERIFY_INSPECTION",52:"VERIFY_TEST",53:"ELEMENT",56:"TYPE",58:"DOCREF",60:"END_ARROW_L",62:"LINE",63:"END_ARROW_R",64:"CONTAINS",65:"COPIES",66:"DERIVES",67:"SATISFIES",68:"VERIFIES",69:"REFINES",70:"TRACES",71:"unqString",72:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 6:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 7:case 8:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 9:i.parseDirective("%%{","open_directive");break;case 10:i.parseDirective(r[s],"type_directive");break;case 11:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 12:i.parseDirective("}%%","close_directive","pie");break;case 13:this.$=[];break;case 19:i.addRequirement(r[s-3],r[s-4]);break;case 20:i.setNewReqId(r[s-2]);break;case 21:i.setNewReqText(r[s-2]);break;case 22:i.setNewReqRisk(r[s-2]);break;case 23:i.setNewReqVerifyMethod(r[s-2]);break;case 26:this.$=i.RequirementType.REQUIREMENT;break;case 27:this.$=i.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 28:this.$=i.RequirementType.INTERFACE_REQUIREMENT;break;case 29:this.$=i.RequirementType.PERFORMANCE_REQUIREMENT;break;case 30:this.$=i.RequirementType.PHYSICAL_REQUIREMENT;break;case 31:this.$=i.RequirementType.DESIGN_CONSTRAINT;break;case 32:this.$=i.RiskLevel.LOW_RISK;break;case 33:this.$=i.RiskLevel.MED_RISK;break;case 34:this.$=i.RiskLevel.HIGH_RISK;break;case 35:this.$=i.VerifyType.VERIFY_ANALYSIS;break;case 36:this.$=i.VerifyType.VERIFY_DEMONSTRATION;break;case 37:this.$=i.VerifyType.VERIFY_INSPECTION;break;case 38:this.$=i.VerifyType.VERIFY_TEST;break;case 39:i.addElement(r[s-3]);break;case 40:i.setNewElementType(r[s-2]);break;case 41:i.setNewElementDocRef(r[s-2]);break;case 44:i.addRelationship(r[s-2],r[s],r[s-4]);break;case 45:i.addRelationship(r[s-2],r[s-4],r[s]);break;case 46:this.$=i.Relationships.CONTAINS;break;case 47:this.$=i.Relationships.COPIES;break;case 48:this.$=i.Relationships.DERIVES;break;case 49:this.$=i.Relationships.SATISFIES;break;case 50:this.$=i.Relationships.VERIFIES;break;case 51:this.$=i.Relationships.REFINES;break;case 52:this.$=i.Relationships.TRACES}},table:[{3:1,4:2,6:n,9:4,14:i,16:a,18:r,19:o},{1:[3]},{3:10,4:2,5:[1,9],6:n,9:4,14:i,16:a,18:r,19:o},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},e(s,[2,8]),{20:[2,9]},{3:16,4:2,6:n,9:4,14:i,16:a,18:r,19:o},{1:[2,2]},{4:21,5:c,7:17,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{11:34,12:[1,35],22:v},e([12,22],[2,10]),e(s,[2,6]),e(s,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:c,7:38,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{4:21,5:c,7:39,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{4:21,5:c,7:40,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{4:21,5:c,7:41,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{4:21,5:c,7:42,8:l,9:4,14:i,16:a,18:r,19:o,23:18,24:19,25:20,26:23,32:25,40:u,41:d,42:h,43:f,44:g,45:p,53:b,71:m,72:y},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},e(w,[2,26]),e(w,[2,27]),e(w,[2,28]),e(w,[2,29]),e(w,[2,30]),e(w,[2,31]),e(x,[2,55]),e(x,[2,56]),e(s,[2,4]),{13:51,21:[1,52]},e(s,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:R,65:_,66:k,67:E,68:C,69:S,70:T},{61:63,64:R,65:_,66:k,67:E,68:C,69:S,70:T},{11:64,22:v},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},e(A,[2,46]),e(A,[2,47]),e(A,[2,48]),e(A,[2,49]),e(A,[2,50]),e(A,[2,51]),e(A,[2,52]),{63:[1,68]},e(s,[2,5]),{5:D,29:69,30:I,33:L,35:O,37:M,39:N},{5:B,39:P,55:76,56:F,58:j},{32:81,71:m,72:y},{32:82,71:m,72:y},e($,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:D,29:87,30:I,33:L,35:O,37:M,39:N},e($,[2,25]),e($,[2,39]),{31:[1,88]},{31:[1,89]},{5:B,39:P,55:90,56:F,58:j},e($,[2,43]),e($,[2,44]),e($,[2,45]),{32:91,71:m,72:y},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},e($,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},e($,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:D,29:116,30:I,33:L,35:O,37:M,39:N},{5:D,29:117,30:I,33:L,35:O,37:M,39:N},{5:D,29:118,30:I,33:L,35:O,37:M,39:N},{5:D,29:119,30:I,33:L,35:O,37:M,39:N},{5:B,39:P,55:120,56:F,58:j},{5:B,39:P,55:121,56:F,58:j},e($,[2,20]),e($,[2,21]),e($,[2,22]),e($,[2,23]),e($,[2,40]),e($,[2,41])],defaultActions:{8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},H=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),19;case 1:return this.begin("type_directive"),20;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),22;case 4:return 21;case 5:return"title";case 6:return this.begin("acc_title"),14;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),16;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 53:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 5;case 14:case 15:case 16:break;case 17:return 8;case 18:return 6;case 19:return 28;case 20:return 39;case 21:return 31;case 22:return 30;case 23:return 33;case 24:return 35;case 25:return 37;case 26:return 40;case 27:return 41;case 28:return 42;case 29:return 43;case 30:return 44;case 31:return 45;case 32:return 46;case 33:return 47;case 34:return 48;case 35:return 49;case 36:return 50;case 37:return 51;case 38:return 52;case 39:return 53;case 40:return 64;case 41:return 65;case 42:return 66;case 43:return 67;case 44:return 68;case 45:return 69;case 46:return 70;case 47:return 56;case 48:return 58;case 49:return 60;case 50:return 63;case 51:return 62;case 52:this.begin("string");break;case 54:return"qString";case 55:return e.yytext=e.yytext.trim(),71}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[53,54],inclusive:!1},INITIAL:{rules:[0,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55],inclusive:!0}}},t);function U(){this.yy={}}return z.lexer=H,U.prototype=z,z.Parser=U,new U}();kl.parser=kl;const El=kl,Cl=t=>null!==t.match(/^\s*requirement(Diagram)?/);let Sl=[],Tl={},Al={},Dl={},Il={};const Ll={RequirementType:{REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},RiskLevel:{LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},VerifyType:{VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Relationships:{CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().req,addRequirement:(t,e)=>(void 0===Al[t]&&(Al[t]={name:t,type:e,id:Tl.id,text:Tl.text,risk:Tl.risk,verifyMethod:Tl.verifyMethod}),Tl={},Al[t]),getRequirements:()=>Al,setNewReqId:t=>{void 0!==Tl&&(Tl.id=t)},setNewReqText:t=>{void 0!==Tl&&(Tl.text=t)},setNewReqRisk:t=>{void 0!==Tl&&(Tl.risk=t)},setNewReqVerifyMethod:t=>{void 0!==Tl&&(Tl.verifyMethod=t)},setAccTitle:Li,getAccTitle:Oi,setAccDescription:Mi,getAccDescription:Ni,addElement:t=>(void 0===Il[t]&&(Il[t]={name:t,type:Dl.type,docRef:Dl.docRef},Dt.info("Added new requirement: ",t)),Dl={},Il[t]),getElements:()=>Il,setNewElementType:t=>{void 0!==Dl&&(Dl.type=t)},setNewElementDocRef:t=>{void 0!==Dl&&(Dl.docRef=t)},addRelationship:(t,e,n)=>{Sl.push({type:t,src:e,dst:n})},getRelationships:()=>Sl,clear:()=>{Sl=[],Tl={},Al={},Dl={},Il={},Ii()}},Ol={CONTAINS:"contains",ARROW:"arrow"},Ml=Ol,Nl=(t,e)=>{let n=t.append("defs").append("marker").attr("id",Ol.CONTAINS+"_line_ending").attr("refX",0).attr("refY",e.line_height/2).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("g");n.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),n.append("line").attr("x1",0).attr("x2",e.line_height).attr("y1",e.line_height/2).attr("y2",e.line_height/2).attr("stroke-width",1),n.append("line").attr("y1",0).attr("y2",e.line_height).attr("x1",e.line_height/2).attr("x2",e.line_height/2).attr("stroke-width",1),t.append("defs").append("marker").attr("id",Ol.ARROW+"_line_ending").attr("refX",e.line_height).attr("refY",.5*e.line_height).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("path").attr("d",`M0,0\n L${e.line_height},${e.line_height/2}\n M${e.line_height},${e.line_height/2}\n L0,${e.line_height}`).attr("stroke-width",1)};let Bl={},Pl=0;const Fl=(t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",Bl.rect_min_width+"px").attr("height",Bl.rect_min_height+"px"),jl=(t,e,n)=>{let i=Bl.rect_min_width/2,a=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",i).attr("y",Bl.rect_padding).attr("dominant-baseline","hanging"),r=0;n.forEach((t=>{0==r?a.append("tspan").attr("text-anchor","middle").attr("x",Bl.rect_min_width/2).attr("dy",0).text(t):a.append("tspan").attr("text-anchor","middle").attr("x",Bl.rect_min_width/2).attr("dy",.75*Bl.line_height).text(t),r++}));let o=1.5*Bl.rect_padding+r*Bl.line_height*.75;return t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",Bl.rect_min_width).attr("y1",o).attr("y2",o),{titleNode:a,y:o}},$l=(t,e,n,i)=>{let a=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",Bl.rect_padding).attr("y",i).attr("dominant-baseline","hanging"),r=0;let o=[];return n.forEach((t=>{let e=t.length;for(;e>30&&r<3;){let n=t.substring(0,30);e=(t=t.substring(30,t.length)).length,o[o.length]=n,r++}if(3==r){let t=o[o.length-1];o[o.length-1]=t.substring(0,t.length-4)+"..."}else o[o.length]=t;r=0})),o.forEach((t=>{a.append("tspan").attr("x",Bl.rect_padding).attr("dy",Bl.line_height).text(t)})),a},zl=function(t,e,n,i,a){const r=n.edge(Hl(e.src),Hl(e.dst)),o=(0,s.jvg)().x((function(t){return t.x})).y((function(t){return t.y})),c=t.insert("path","#"+i).attr("class","er relationshipLine").attr("d",o(r.points)).attr("fill","none");e.type==a.db.Relationships.CONTAINS?c.attr("marker-start","url("+zt.getUrl(Bl.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(c.attr("stroke-dasharray","10,7"),c.attr("marker-end","url("+zt.getUrl(Bl.arrowMarkerAbsolute)+"#"+Ml.ARROW+"_line_ending)")),((t,e,n,i)=>{const a=e.node().getTotalLength(),r=e.node().getPointAtLength(.5*a),o="rel"+Pl;Pl++;const s=t.append("text").attr("class","req relationshipLabel").attr("id",o).attr("x",r.x).attr("y",r.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(i).node().getBBox();t.insert("rect","#"+o).attr("class","req reqLabelBox").attr("x",r.x-s.width/2).attr("y",r.y-s.height/2).attr("width",s.width).attr("height",s.height).attr("fill","white").attr("fill-opacity","85%")})(t,c,0,`<<${e.type}>>`)},Hl=t=>t.replace(/\s/g,"").replace(/\./g,"_"),Ul={draw:(t,e,n,i)=>{Bl=ai().requirement,i.db.clear(),i.parser.parse(t);const a=Bl.securityLevel;let r;"sandbox"===a&&(r=(0,s.Ys)("#i"+e));const o=("sandbox"===a?(0,s.Ys)(r.nodes()[0].contentDocument.body):(0,s.Ys)("body")).select(`[id='${e}']`);Nl(o,Bl);const c=new lt.k({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:Bl.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));let l=i.db.getRequirements(),u=i.db.getElements(),d=i.db.getRelationships();var h,f,g;h=l,f=c,g=o,Object.keys(h).forEach((t=>{let e=h[t];t=Hl(t),Dt.info("Added new requirement: ",t);const n=g.append("g").attr("id",t),i=Fl(n,"req-"+t);let a=jl(n,t+"_title",[`<<${e.type}>>`,`${e.name}`]);$l(n,t+"_body",[`Id: ${e.id}`,`Text: ${e.text}`,`Risk: ${e.risk}`,`Verification: ${e.verifyMethod}`],a.y);const r=i.node().getBBox();f.setNode(t,{width:r.width,height:r.height,shape:"rect",id:t})})),((t,e,n)=>{Object.keys(t).forEach((i=>{let a=t[i];const r=Hl(i),o=n.append("g").attr("id",r),s="element-"+r,c=Fl(o,s);let l=jl(o,s+"_title",["<<Element>>",`${i}`]);$l(o,s+"_body",[`Type: ${a.type||"Not Specified"}`,`Doc Ref: ${a.docRef||"None"}`],l.y);const u=c.node().getBBox();e.setNode(r,{width:u.width,height:u.height,shape:"rect",id:r})}))})(u,c,o),((t,e)=>{t.forEach((function(t){let n=Hl(t.src),i=Hl(t.dst);e.setEdge(n,i,{relationship:t})}))})(d,c),(0,ct.bK)(c),function(t,e){e.nodes().forEach((function(n){void 0!==n&&void 0!==e.node(n)&&(t.select("#"+n),t.select("#"+n).attr("transform","translate("+(e.node(n).x-e.node(n).width/2)+","+(e.node(n).y-e.node(n).height/2)+" )"))}))}(o,c),d.forEach((function(t){zl(o,t,c,e,i)}));const p=Bl.rect_padding,b=o.node().getBBox(),m=b.width+2*p,y=b.height+2*p;di(o,y,m,Bl.useMaxWidth),o.attr("viewBox",`${b.x-p} ${b.y-p} ${m} ${y}`)}};var Vl=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,2],i=[1,3],a=[1,5],r=[1,7],o=[2,5],s=[1,15],c=[1,17],l=[1,19],u=[1,21],d=[1,22],h=[1,23],f=[1,29],g=[1,30],p=[1,31],b=[1,32],m=[1,33],y=[1,34],v=[1,35],w=[1,36],x=[1,37],R=[1,38],_=[1,39],k=[1,40],E=[1,42],C=[1,43],S=[1,45],T=[1,46],A=[1,47],D=[1,48],I=[1,49],L=[1,50],O=[1,53],M=[1,4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,52,53,54,56,57,62,63,64,65,73,83],N=[4,5,21,54,56],B=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,54,56,57,62,63,64,65,73,83],P=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,53,54,56,57,62,63,64,65,73,83],F=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,52,54,56,57,62,63,64,65,73,83],j=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,54,56,57,62,63,64,65,73,83],$=[71,72,73],z=[1,125],H=[1,4,5,7,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,52,53,54,56,57,62,63,64,65,73,83],U={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,directive:6,SD:7,document:8,line:9,statement:10,box_section:11,box_line:12,participant_statement:13,openDirective:14,typeDirective:15,closeDirective:16,":":17,argDirective:18,box:19,restOfLine:20,end:21,signal:22,autonumber:23,NUM:24,off:25,activate:26,actor:27,deactivate:28,note_statement:29,links_statement:30,link_statement:31,properties_statement:32,details_statement:33,title:34,legacy_title:35,acc_title:36,acc_title_value:37,acc_descr:38,acc_descr_value:39,acc_descr_multiline_value:40,loop:41,rect:42,opt:43,alt:44,else_sections:45,par:46,par_sections:47,critical:48,option_sections:49,break:50,option:51,and:52,else:53,participant:54,AS:55,participant_actor:56,note:57,placement:58,text2:59,over:60,actor_pair:61,links:62,link:63,properties:64,details:65,spaceList:66,",":67,left_of:68,right_of:69,signaltype:70,"+":71,"-":72,ACTOR:73,SOLID_OPEN_ARROW:74,DOTTED_OPEN_ARROW:75,SOLID_ARROW:76,DOTTED_ARROW:77,SOLID_CROSS:78,DOTTED_CROSS:79,SOLID_POINT:80,DOTTED_POINT:81,TXT:82,open_directive:83,type_directive:84,arg_directive:85,close_directive:86,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",7:"SD",17:":",19:"box",20:"restOfLine",21:"end",23:"autonumber",24:"NUM",25:"off",26:"activate",28:"deactivate",34:"title",35:"legacy_title",36:"acc_title",37:"acc_title_value",38:"acc_descr",39:"acc_descr_value",40:"acc_descr_multiline_value",41:"loop",42:"rect",43:"opt",44:"alt",46:"par",48:"critical",50:"break",51:"option",52:"and",53:"else",54:"participant",55:"AS",56:"participant_actor",57:"note",60:"over",62:"links",63:"link",64:"properties",65:"details",67:",",68:"left_of",69:"right_of",71:"+",72:"-",73:"ACTOR",74:"SOLID_OPEN_ARROW",75:"DOTTED_OPEN_ARROW",76:"SOLID_ARROW",77:"DOTTED_ARROW",78:"SOLID_CROSS",79:"DOTTED_CROSS",80:"SOLID_POINT",81:"DOTTED_POINT",82:"TXT",83:"open_directive",84:"type_directive",85:"arg_directive",86:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[11,0],[11,2],[12,2],[12,1],[12,1],[6,4],[6,6],[10,1],[10,4],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[49,1],[49,4],[47,1],[47,4],[45,1],[45,4],[13,5],[13,3],[13,5],[13,3],[29,4],[29,4],[30,3],[31,3],[32,3],[33,3],[66,2],[66,1],[61,3],[61,1],[58,1],[58,1],[22,5],[22,5],[22,4],[27,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[59,1],[14,1],[15,1],[18,1],[16,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:return i.apply(r[s]),r[s];case 5:case 10:case 9:case 14:this.$=[];break;case 6:case 11:r[s-1].push(r[s]),this.$=r[s-1];break;case 7:case 8:case 12:case 13:case 63:this.$=r[s];break;case 18:r[s-1].unshift({type:"boxStart",boxData:i.parseBoxData(r[s-2])}),r[s-1].push({type:"boxEnd",boxText:r[s-2]}),this.$=r[s-1];break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number(r[s-2]),sequenceIndexStep:Number(r[s-1]),sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceIndex:Number(r[s-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:i.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 24:this.$={type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:r[s-1]};break;case 25:this.$={type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:r[s-1]};break;case 31:i.setDiagramTitle(r[s].substring(6)),this.$=r[s].substring(6);break;case 32:i.setDiagramTitle(r[s].substring(7)),this.$=r[s].substring(7);break;case 33:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 34:case 35:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 36:r[s-1].unshift({type:"loopStart",loopText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.LOOP_START}),r[s-1].push({type:"loopEnd",loopText:r[s-2],signalType:i.LINETYPE.LOOP_END}),this.$=r[s-1];break;case 37:r[s-1].unshift({type:"rectStart",color:i.parseMessage(r[s-2]),signalType:i.LINETYPE.RECT_START}),r[s-1].push({type:"rectEnd",color:i.parseMessage(r[s-2]),signalType:i.LINETYPE.RECT_END}),this.$=r[s-1];break;case 38:r[s-1].unshift({type:"optStart",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.OPT_START}),r[s-1].push({type:"optEnd",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.OPT_END}),this.$=r[s-1];break;case 39:r[s-1].unshift({type:"altStart",altText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.ALT_START}),r[s-1].push({type:"altEnd",signalType:i.LINETYPE.ALT_END}),this.$=r[s-1];break;case 40:r[s-1].unshift({type:"parStart",parText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.PAR_START}),r[s-1].push({type:"parEnd",signalType:i.LINETYPE.PAR_END}),this.$=r[s-1];break;case 41:r[s-1].unshift({type:"criticalStart",criticalText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.CRITICAL_START}),r[s-1].push({type:"criticalEnd",signalType:i.LINETYPE.CRITICAL_END}),this.$=r[s-1];break;case 42:r[s-1].unshift({type:"breakStart",breakText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.BREAK_START}),r[s-1].push({type:"breakEnd",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.BREAK_END}),this.$=r[s-1];break;case 45:this.$=r[s-3].concat([{type:"option",optionText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.CRITICAL_OPTION},r[s]]);break;case 47:this.$=r[s-3].concat([{type:"and",parText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.PAR_AND},r[s]]);break;case 49:this.$=r[s-3].concat([{type:"else",altText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.ALT_ELSE},r[s]]);break;case 50:r[s-3].type="addParticipant",r[s-3].description=i.parseMessage(r[s-1]),this.$=r[s-3];break;case 51:r[s-1].type="addParticipant",this.$=r[s-1];break;case 52:r[s-3].type="addActor",r[s-3].description=i.parseMessage(r[s-1]),this.$=r[s-3];break;case 53:r[s-1].type="addActor",this.$=r[s-1];break;case 54:this.$=[r[s-1],{type:"addNote",placement:r[s-2],actor:r[s-1].actor,text:r[s]}];break;case 55:r[s-2]=[].concat(r[s-1],r[s-1]).slice(0,2),r[s-2][0]=r[s-2][0].actor,r[s-2][1]=r[s-2][1].actor,this.$=[r[s-1],{type:"addNote",placement:i.PLACEMENT.OVER,actor:r[s-2].slice(0,2),text:r[s]}];break;case 56:this.$=[r[s-1],{type:"addLinks",actor:r[s-1].actor,text:r[s]}];break;case 57:this.$=[r[s-1],{type:"addALink",actor:r[s-1].actor,text:r[s]}];break;case 58:this.$=[r[s-1],{type:"addProperties",actor:r[s-1].actor,text:r[s]}];break;case 59:this.$=[r[s-1],{type:"addDetails",actor:r[s-1].actor,text:r[s]}];break;case 62:this.$=[r[s-2],r[s]];break;case 64:this.$=i.PLACEMENT.LEFTOF;break;case 65:this.$=i.PLACEMENT.RIGHTOF;break;case 66:this.$=[r[s-4],r[s-1],{type:"addMessage",from:r[s-4].actor,to:r[s-1].actor,signalType:r[s-3],msg:r[s]},{type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:r[s-1]}];break;case 67:this.$=[r[s-4],r[s-1],{type:"addMessage",from:r[s-4].actor,to:r[s-1].actor,signalType:r[s-3],msg:r[s]},{type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:r[s-4]}];break;case 68:this.$=[r[s-3],r[s-1],{type:"addMessage",from:r[s-3].actor,to:r[s-1].actor,signalType:r[s-2],msg:r[s]}];break;case 69:this.$={type:"addParticipant",actor:r[s]};break;case 70:this.$=i.LINETYPE.SOLID_OPEN;break;case 71:this.$=i.LINETYPE.DOTTED_OPEN;break;case 72:this.$=i.LINETYPE.SOLID;break;case 73:this.$=i.LINETYPE.DOTTED;break;case 74:this.$=i.LINETYPE.SOLID_CROSS;break;case 75:this.$=i.LINETYPE.DOTTED_CROSS;break;case 76:this.$=i.LINETYPE.SOLID_POINT;break;case 77:this.$=i.LINETYPE.DOTTED_POINT;break;case 78:this.$=i.parseMessage(r[s].trim().substring(1));break;case 79:i.parseDirective("%%{","open_directive");break;case 80:i.parseDirective(r[s],"type_directive");break;case 81:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 82:i.parseDirective("}%%","close_directive","sequence")}},table:[{3:1,4:n,5:i,6:4,7:a,14:6,83:r},{1:[3]},{3:8,4:n,5:i,6:4,7:a,14:6,83:r},{3:9,4:n,5:i,6:4,7:a,14:6,83:r},{3:10,4:n,5:i,6:4,7:a,14:6,83:r},e([1,4,5,19,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,54,56,57,62,63,64,65,73,83],o,{8:11}),{15:12,84:[1,13]},{84:[2,79]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{16:51,17:[1,52],86:O},e([17,86],[2,80]),e(M,[2,6]),{6:41,10:54,13:18,14:6,19:l,22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},e(M,[2,8]),e(M,[2,9]),e(M,[2,17]),{20:[1,55]},{5:[1,56]},{5:[1,59],24:[1,57],25:[1,58]},{27:60,73:L},{27:61,73:L},{5:[1,62]},{5:[1,63]},{5:[1,64]},{5:[1,65]},{5:[1,66]},e(M,[2,31]),e(M,[2,32]),{37:[1,67]},{39:[1,68]},e(M,[2,35]),{20:[1,69]},{20:[1,70]},{20:[1,71]},{20:[1,72]},{20:[1,73]},{20:[1,74]},{20:[1,75]},e(M,[2,43]),{27:76,73:L},{27:77,73:L},{70:78,74:[1,79],75:[1,80],76:[1,81],77:[1,82],78:[1,83],79:[1,84],80:[1,85],81:[1,86]},{58:87,60:[1,88],68:[1,89],69:[1,90]},{27:91,73:L},{27:92,73:L},{27:93,73:L},{27:94,73:L},e([5,55,67,74,75,76,77,78,79,80,81,82],[2,69]),{5:[1,95]},{18:96,85:[1,97]},{5:[2,82]},e(M,[2,7]),e(N,[2,10],{11:98}),e(M,[2,19]),{5:[1,100],24:[1,99]},{5:[1,101]},e(M,[2,23]),{5:[1,102]},{5:[1,103]},e(M,[2,26]),e(M,[2,27]),e(M,[2,28]),e(M,[2,29]),e(M,[2,30]),e(M,[2,33]),e(M,[2,34]),e(B,o,{8:104}),e(B,o,{8:105}),e(B,o,{8:106}),e(P,o,{45:107,8:108}),e(F,o,{47:109,8:110}),e(j,o,{49:111,8:112}),e(B,o,{8:113}),{5:[1,115],55:[1,114]},{5:[1,117],55:[1,116]},{27:120,71:[1,118],72:[1,119],73:L},e($,[2,70]),e($,[2,71]),e($,[2,72]),e($,[2,73]),e($,[2,74]),e($,[2,75]),e($,[2,76]),e($,[2,77]),{27:121,73:L},{27:123,61:122,73:L},{73:[2,64]},{73:[2,65]},{59:124,82:z},{59:126,82:z},{59:127,82:z},{59:128,82:z},e(H,[2,15]),{16:129,86:O},{86:[2,81]},{4:[1,132],5:[1,134],12:131,13:133,21:[1,130],54:E,56:C},{5:[1,135]},e(M,[2,21]),e(M,[2,22]),e(M,[2,24]),e(M,[2,25]),{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[1,136],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[1,137],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[1,138],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{21:[1,139]},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[2,48],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,53:[1,140],54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{21:[1,141]},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[2,46],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,52:[1,142],54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{21:[1,143]},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[2,44],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,51:[1,144],54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{4:s,5:c,6:41,9:14,10:16,13:18,14:6,19:l,21:[1,145],22:20,23:u,26:d,27:44,28:h,29:24,30:25,31:26,32:27,33:28,34:f,35:g,36:p,38:b,40:m,41:y,42:v,43:w,44:x,46:R,48:_,50:k,54:E,56:C,57:S,62:T,63:A,64:D,65:I,73:L,83:r},{20:[1,146]},e(M,[2,51]),{20:[1,147]},e(M,[2,53]),{27:148,73:L},{27:149,73:L},{59:150,82:z},{59:151,82:z},{59:152,82:z},{67:[1,153],82:[2,63]},{5:[2,56]},{5:[2,78]},{5:[2,57]},{5:[2,58]},{5:[2,59]},{5:[1,154]},e(M,[2,18]),e(N,[2,11]),{13:155,54:E,56:C},e(N,[2,13]),e(N,[2,14]),e(M,[2,20]),e(M,[2,36]),e(M,[2,37]),e(M,[2,38]),e(M,[2,39]),{20:[1,156]},e(M,[2,40]),{20:[1,157]},e(M,[2,41]),{20:[1,158]},e(M,[2,42]),{5:[1,159]},{5:[1,160]},{59:161,82:z},{59:162,82:z},{5:[2,68]},{5:[2,54]},{5:[2,55]},{27:163,73:L},e(H,[2,16]),e(N,[2,12]),e(P,o,{8:108,45:164}),e(F,o,{8:110,47:165}),e(j,o,{8:112,49:166}),e(M,[2,50]),e(M,[2,52]),{5:[2,66]},{5:[2,67]},{82:[2,62]},{21:[2,49]},{21:[2,47]},{21:[2,45]}],defaultActions:{7:[2,79],8:[2,1],9:[2,2],10:[2,3],53:[2,82],89:[2,64],90:[2,65],97:[2,81],124:[2,56],125:[2,78],126:[2,57],127:[2,58],128:[2,59],150:[2,68],151:[2,54],152:[2,55],161:[2,66],162:[2,67],163:[2,62],164:[2,49],165:[2,47],166:[2,45]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},V=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),83;case 1:return this.begin("type_directive"),84;case 2:return this.popState(),this.begin("arg_directive"),17;case 3:return this.popState(),this.popState(),86;case 4:return 85;case 5:case 53:case 66:return 5;case 6:case 7:case 8:case 9:case 10:break;case 11:return 24;case 12:return this.begin("LINE"),19;case 13:return this.begin("ID"),54;case 14:return this.begin("ID"),56;case 15:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),73;case 16:return this.popState(),this.popState(),this.begin("LINE"),55;case 17:return this.popState(),this.popState(),5;case 18:return this.begin("LINE"),41;case 19:return this.begin("LINE"),42;case 20:return this.begin("LINE"),43;case 21:return this.begin("LINE"),44;case 22:return this.begin("LINE"),53;case 23:return this.begin("LINE"),46;case 24:return this.begin("LINE"),52;case 25:return this.begin("LINE"),48;case 26:return this.begin("LINE"),51;case 27:return this.begin("LINE"),50;case 28:return this.popState(),20;case 29:return 21;case 30:return 68;case 31:return 69;case 32:return 62;case 33:return 63;case 34:return 64;case 35:return 65;case 36:return 60;case 37:return 57;case 38:return this.begin("ID"),26;case 39:return this.begin("ID"),28;case 40:return 34;case 41:return 35;case 42:return this.begin("acc_title"),36;case 43:return this.popState(),"acc_title_value";case 44:return this.begin("acc_descr"),38;case 45:return this.popState(),"acc_descr_value";case 46:this.begin("acc_descr_multiline");break;case 47:this.popState();break;case 48:return"acc_descr_multiline_value";case 49:return 7;case 50:return 23;case 51:return 25;case 52:return 67;case 54:return e.yytext=e.yytext.trim(),73;case 55:return 76;case 56:return 77;case 57:return 74;case 58:return 75;case 59:return 78;case 60:return 79;case 61:return 80;case 62:return 81;case 63:return 82;case 64:return 71;case 65:return 72;case 67:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[47,48],inclusive:!1},acc_descr:{rules:[45],inclusive:!1},acc_title:{rules:[43],inclusive:!1},open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,15],inclusive:!1},ALIAS:{rules:[7,8,16,17],inclusive:!1},LINE:{rules:[7,8,28],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,44,46,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}},t);function q(){this.yy={}}return U.lexer=V,q.prototype=U,U.Parser=q,new q}();Vl.parser=Vl;const ql=Vl,Wl=t=>null!==t.match(/^\s*sequenceDiagram/);let Yl,Gl,Zl,Kl={},Xl=[],Jl=[],Ql=!1;const tu=function(t,e,n,i){let a=Zl;const r=Kl[t];if(r){if(Zl&&r.box&&Zl!==r.box)throw new Error("A same participant should only be defined in one Box: "+r.name+" can't be in '"+r.box.name+"' and in '"+Zl.name+"' at the same time.");if(a=r.box?r.box:Zl,r.box=a,r&&e===r.name&&null==n)return}null!=n&&null!=n.text||(n={text:e,wrap:null,type:i}),null!=i&&null!=n.text||(n={text:e,wrap:null,type:i}),Kl[t]={box:a,name:e,description:n.text,wrap:void 0===n.wrap&&iu()||!!n.wrap,prevActor:Yl,links:{},properties:{},actorCnt:null,rectData:null,type:i||"participant"},Yl&&Kl[Yl]&&(Kl[Yl].nextActor=t),Zl&&Zl.actorKeys.push(t),Yl=t},eu=function(t,e,n={text:void 0,wrap:void 0},i){if(i===au.ACTIVE_END){const e=(t=>{let e,n=0;for(e=0;e<Jl.length;e++)Jl[e].type===au.ACTIVE_START&&Jl[e].from.actor===t&&n++,Jl[e].type===au.ACTIVE_END&&Jl[e].from.actor===t&&n--;return n})(t.actor);if(e<1){let e=new Error("Trying to inactivate an inactive participant ("+t.actor+")");throw e.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},e}}return Jl.push({from:t,to:e,message:n.text,wrap:void 0===n.wrap&&iu()||!!n.wrap,type:i}),!0},nu=function(t){return Kl[t]},iu=()=>void 0!==Gl?Gl:ai().sequence.wrap,au={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31},ru=function(t,e,n){n.text,void 0===n.wrap&&iu()||n.wrap;const i=[].concat(t,t);Jl.push({from:i[0],to:i[1],message:n.text,wrap:void 0===n.wrap&&iu()||!!n.wrap,type:au.NOTE,placement:e})},ou=function(t,e){const n=nu(t);try{let t=Nt(e.text,ai());t=t.replace(/&/g,"&"),t=t.replace(/=/g,"=");su(n,JSON.parse(t))}catch(i){Dt.error("error while parsing actor link text",i)}};function su(t,e){if(null==t.links)t.links=e;else for(let n in e)t.links[n]=e[n]}const cu=function(t,e){const n=nu(t);try{let t=Nt(e.text,ai());lu(n,JSON.parse(t))}catch(i){Dt.error("error while parsing actor properties text",i)}};function lu(t,e){if(null==t.properties)t.properties=e;else for(let n in e)t.properties[n]=e[n]}const uu=function(t,e){const n=nu(t),i=document.getElementById(e.text);try{const t=i.innerHTML,e=JSON.parse(t);e.properties&&lu(n,e.properties),e.links&&su(n,e.links)}catch(a){Dt.error("error while parsing actor details text",a)}},du=function(t){if(Array.isArray(t))t.forEach((function(t){du(t)}));else switch(t.type){case"sequenceIndex":Jl.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":tu(t.actor,t.actor,t.description,"participant");break;case"addActor":tu(t.actor,t.actor,t.description,"actor");break;case"activeStart":case"activeEnd":eu(t.actor,void 0,void 0,t.signalType);break;case"addNote":ru(t.actor,t.placement,t.text);break;case"addLinks":ou(t.actor,t.text);break;case"addALink":!function(t,e){const n=nu(t);try{const t={};let o=Nt(e.text,ai());var i=o.indexOf("@");o=o.replace(/&/g,"&"),o=o.replace(/=/g,"=");var a=o.slice(0,i-1).trim(),r=o.slice(i+1).trim();t[a]=r,su(n,t)}catch(o){Dt.error("error while parsing actor link text",o)}}(t.actor,t.text);break;case"addProperties":cu(t.actor,t.text);break;case"addDetails":uu(t.actor,t.text);break;case"addMessage":eu(t.from,t.to,t.msg,t.signalType);break;case"boxStart":e=t.boxData,Xl.push({name:e.text,wrap:void 0===e.wrap&&iu()||!!e.wrap,fill:e.color,actorKeys:[]}),Zl=Xl.slice(-1)[0];break;case"boxEnd":Zl=void 0;break;case"loopStart":eu(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":case"breakEnd":eu(void 0,void 0,void 0,t.signalType);break;case"rectStart":eu(void 0,void 0,t.color,t.signalType);break;case"optStart":eu(void 0,void 0,t.optText,t.signalType);break;case"altStart":case"else":eu(void 0,void 0,t.altText,t.signalType);break;case"setAccTitle":Li(t.text);break;case"parStart":case"and":eu(void 0,void 0,t.parText,t.signalType);break;case"criticalStart":eu(void 0,void 0,t.criticalText,t.signalType);break;case"option":eu(void 0,void 0,t.optionText,t.signalType);break;case"breakStart":eu(void 0,void 0,t.breakText,t.signalType)}var e},hu={addActor:tu,addMessage:function(t,e,n,i){Jl.push({from:t,to:e,message:n.text,wrap:void 0===n.wrap&&iu()||!!n.wrap,answer:i})},addSignal:eu,addLinks:ou,addDetails:uu,addProperties:cu,autoWrap:iu,setWrap:function(t){Gl=t},enableSequenceNumbers:function(){Ql=!0},disableSequenceNumbers:function(){Ql=!1},showSequenceNumbers:()=>Ql,getMessages:function(){return Jl},getActors:function(){return Kl},getActor:nu,getActorKeys:function(){return Object.keys(Kl)},getActorProperty:function(t,e){if(void 0!==t&&void 0!==t.properties)return t.properties[e]},getAccTitle:Oi,getBoxes:function(){return Xl},getDiagramTitle:Pi,setDiagramTitle:Bi,parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().sequence,clear:function(){Kl={},Xl=[],Jl=[],Ql=!1,Ii()},parseMessage:function(t){const e=t.trim(),n={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:null!==e.match(/^:?wrap:/)||null===e.match(/^:?nowrap:/)&&void 0};return Dt.debug("parseMessage:",n),n},parseBoxData:function(t){const e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let n=null!=e&&e[1]?e[1].trim():"transparent",i=null!=e&&e[2]?e[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",n)||(n="transparent",i=t.trim());else{const e=(new Option).style;e.color=n,e.color!==n&&(n="transparent",i=t.trim())}return{color:n,text:void 0!==i?Nt(i.replace(/^:?(?:no)?wrap:/,""),ai()):void 0,wrap:void 0!==i?null!==i.match(/^:?wrap:/)||null===i.match(/^:?nowrap:/)&&void 0:void 0}},LINETYPE:au,ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},addNote:ru,setAccTitle:Li,apply:du,setAccDescription:Mi,getAccDescription:Ni,hasAtLeastOneBox:function(){return Xl.length>0},hasAtLeastOneBoxWithTitle:function(){return Xl.some((t=>t.name))}};let fu=[];const gu=()=>{fu.forEach((t=>{t()})),fu=[]},pu=function(t,e){const n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},bu=(t,e)=>{var n;n=()=>{const n=document.querySelectorAll(t);0!==n.length&&(n[0].addEventListener("mouseover",(function(){vu("actor"+e+"_popup")})),n[0].addEventListener("mouseout",(function(){wu("actor"+e+"_popup")})))},fu.push(n)},mu=function(t,e,n,i){const a=t.append("image");a.attr("x",e),a.attr("y",n);var r=(0,o.Nm)(i);a.attr("xlink:href",r)},yu=function(t,e,n,i){const a=t.append("use");a.attr("x",e),a.attr("y",n);var r=(0,o.Nm)(i);a.attr("xlink:href","#"+r)},vu=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="block")},wu=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="none")},xu=function(t,e){let n=0,i=0;const a=e.text.split(zt.lineBreakRegex),[r,o]=Yn(e.fontSize);let s=[],c=0,l=()=>e.y;if(void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0)switch(e.valign){case"top":case"start":l=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":l=()=>Math.round(e.y+(n+i+e.textMargin)/2);break;case"bottom":case"end":l=()=>Math.round(e.y+(n+i+2*e.textMargin)-e.textMargin)}if(void 0!==e.anchor&&void 0!==e.textMargin&&void 0!==e.width)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle"}for(let[u,d]of a.entries()){void 0!==e.textMargin&&0===e.textMargin&&void 0!==r&&(c=u*r);const a=t.append("text");if(a.attr("x",e.x),a.attr("y",l()),void 0!==e.anchor&&a.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),void 0!==e.fontFamily&&a.style("font-family",e.fontFamily),void 0!==o&&a.style("font-size",o),void 0!==e.fontWeight&&a.style("font-weight",e.fontWeight),void 0!==e.fill&&a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class),void 0!==e.dy?a.attr("dy",e.dy):0!==c&&a.attr("dy",c),e.tspan){const t=a.append("tspan");t.attr("x",e.x),void 0!==e.fill&&t.attr("fill",e.fill),t.text(d)}else a.text(d);void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0&&(i+=(a._groups||a)[0][0].getBBox().height,n=i),s.push(a)}return s},Ru=function(t,e){const n=t.append("polygon");var i,a,r,o,s;return n.attr("points",(i=e.x,a=e.y,r=e.width,o=e.height,i+","+a+" "+(i+r)+","+a+" "+(i+r)+","+(a+o-(s=7))+" "+(i+r-1.2*s)+","+(a+o)+" "+i+","+(a+o))),n.attr("class","labelBox"),e.y=e.y+e.height/2,xu(t,e),n};let _u=-1;const ku=(t,e)=>{t.selectAll&&t.selectAll(".actor-line").attr("class","200").attr("y2",e-55)},Eu=function(t,e){pu(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},Cu=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},Su=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Tu=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c){const{actorFontSize:l,actorFontFamily:u,actorFontWeight:d}=c,[h,f]=Yn(l),g=t.split(zt.lineBreakRegex);for(let p=0;p<g.length;p++){const t=p*h-h*(g.length-1)/2,c=e.append("text").attr("x",n+r/2).attr("y",a).style("text-anchor","middle").style("font-size",f).style("font-weight",d).style("font-family",u);c.append("tspan").attr("x",n+r/2).attr("dy",t).text(g[p]),c.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(c,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),Au=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n).attr("y",a).style("text-anchor","start").text(t),s)}function e(t,e,n,a,r,o,s,c){const{actorFontSize:l,actorFontFamily:u,actorFontWeight:d}=c,h=t.split(zt.lineBreakRegex);for(let f=0;f<h.length;f++){const t=f*l-l*(h.length-1)/2,r=e.append("text").attr("x",n).attr("y",a).style("text-anchor","start").style("font-size",l).style("font-weight",d).style("font-family",u);r.append("tspan").attr("x",n).attr("dy",t).text(h[f]),r.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(r,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,0,s,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),Du={drawRect:pu,drawText:xu,drawLabel:Ru,drawActor:function(t,e,n,i){switch(e.type){case"actor":return function(t,e,n,i){const a=e.x+e.width/2,r=e.y+80;i||(_u++,t.append("line").attr("id","actor"+_u).attr("x1",a).attr("y1",r).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"));const o=t.append("g");o.attr("class","actor-man");const s=Su();s.x=e.x,s.y=e.y,s.fill="#eaeaea",s.width=e.width,s.height=e.height,s.class="actor",s.rx=3,s.ry=3,o.append("line").attr("id","actor-man-torso"+_u).attr("x1",a).attr("y1",e.y+25).attr("x2",a).attr("y2",e.y+45),o.append("line").attr("id","actor-man-arms"+_u).attr("x1",a-18).attr("y1",e.y+33).attr("x2",a+18).attr("y2",e.y+33),o.append("line").attr("x1",a-18).attr("y1",e.y+60).attr("x2",a).attr("y2",e.y+45),o.append("line").attr("x1",a).attr("y1",e.y+45).attr("x2",a+16).attr("y2",e.y+60);const c=o.append("circle");c.attr("cx",e.x+e.width/2),c.attr("cy",e.y+10),c.attr("r",15),c.attr("width",e.width),c.attr("height",e.height);const l=o.node().getBBox();return e.height=l.height,Tu(n)(e.description,o,s.x,s.y+35,s.width,s.height,{class:"actor"},n),e.height}(t,e,n,i);case"participant":return function(t,e,n,i){const a=e.x+e.width/2,r=e.y+5,o=t.append("g");var s=o;i||(_u++,s.append("line").attr("id","actor"+_u).attr("x1",a).attr("y1",r).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"),s=o.append("g"),e.actorCnt=_u,null!=e.links&&(s.attr("id","root-"+_u),bu("#root-"+_u,_u)));const c=Su();var l="actor";null!=e.properties&&e.properties.class?l=e.properties.class:c.fill="#eaeaea",c.x=e.x,c.y=e.y,c.width=e.width,c.height=e.height,c.class=l,c.rx=3,c.ry=3;const u=pu(s,c);if(e.rectData=c,null!=e.properties&&e.properties.icon){const t=e.properties.icon.trim();"@"===t.charAt(0)?yu(s,c.x+c.width-20,c.y+10,t.substr(1)):mu(s,c.x+c.width-20,c.y+10,t)}Tu(n)(e.description,s,c.x,c.y,c.width,c.height,{class:"actor"},n);let d=e.height;if(u.node){const t=u.node().getBBox();e.height=t.height,d=t.height}return d}(t,e,n,i)}},drawBox:function(t,e,n){const i=t.append("g");Eu(i,e),e.name&&Tu(n)(e.name,i,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},n),i.lower()},drawPopup:function(t,e,n,i,a){if(void 0===e.links||null===e.links||0===Object.keys(e.links).length)return{height:0,width:0};const r=e.links,s=e.actorCnt,c=e.rectData;var l="none";a&&(l="block !important");const u=t.append("g");u.attr("id","actor"+s+"_popup"),u.attr("class","actorPopupMenu"),u.attr("display",l),bu("#actor"+s+"_popup",s);var d="";void 0!==c.class&&(d=" "+c.class);let h=c.width>n?c.width:n;const f=u.append("rect");if(f.attr("class","actorPopupMenuPanel"+d),f.attr("x",c.x),f.attr("y",c.height),f.attr("fill",c.fill),f.attr("stroke",c.stroke),f.attr("width",h),f.attr("height",c.height),f.attr("rx",c.rx),f.attr("ry",c.ry),null!=r){var g=20;for(let t in r){var p=u.append("a"),b=(0,o.Nm)(r[t]);p.attr("xlink:href",b),p.attr("target","_blank"),Au(i)(t,p,c.x+10,c.height+g,h,20,{class:"actor"},i),g+=30}}return f.attr("height",g),{height:c.height+g,width:h}},drawImage:mu,drawEmbeddedImage:yu,anchorElement:function(t){return t.append("g")},drawActivation:function(t,e,n,i,a){const r=Su(),o=e.anchored;r.x=e.startx,r.y=e.starty,r.class="activation"+a%3,r.width=e.stopx-e.startx,r.height=n-e.starty,pu(o,r)},drawLoop:function(t,e,n,i){const{boxMargin:a,boxTextMargin:r,labelBoxHeight:o,labelBoxWidth:s,messageFontFamily:c,messageFontSize:l,messageFontWeight:u}=i,d=t.append("g"),h=function(t,e,n,i){return d.append("line").attr("x1",t).attr("y1",e).attr("x2",n).attr("y2",i).attr("class","loopLine")};h(e.startx,e.starty,e.stopx,e.starty),h(e.stopx,e.starty,e.stopx,e.stopy),h(e.startx,e.stopy,e.stopx,e.stopy),h(e.startx,e.starty,e.startx,e.stopy),void 0!==e.sections&&e.sections.forEach((function(t){h(e.startx,t.y,e.stopx,t.y).style("stroke-dasharray","3, 3")}));let f=Cu();f.text=n,f.x=e.startx,f.y=e.starty,f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.anchor="middle",f.valign="middle",f.tspan=!1,f.width=s||50,f.height=o||20,f.textMargin=r,f.class="labelText",Ru(d,f),f=Cu(),f.text=e.title,f.x=e.startx+s/2+(e.stopx-e.startx)/2,f.y=e.starty+a+r,f.anchor="middle",f.valign="middle",f.textMargin=r,f.class="loopText",f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.wrap=!0;let g=xu(d,f);return void 0!==e.sectionTitles&&e.sectionTitles.forEach((function(t,n){if(t.message){f.text=t.message,f.x=e.startx+(e.stopx-e.startx)/2,f.y=e.sections[n].y+a+r,f.class="loopText",f.anchor="middle",f.valign="middle",f.tspan=!1,f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.wrap=e.wrap,g=xu(d,f);let i=Math.round(g.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));e.sections[n].height+=i-(a+r)}})),e.height=Math.round(e.stopy-e.starty),d},drawBackgroundRect:Eu,insertArrowHead:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},insertArrowFilledHead:function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},insertSequenceNumber:function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},insertArrowCrossHead:function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},insertDatabaseIcon:function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},insertComputerIcon:function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},insertClockIcon:function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},getTextObj:Cu,getNoteRect:Su,popupMenu:function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'block'; }"},popdownMenu:function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'none'; }"},fixLifeLineHeights:ku,sanitizeUrl:o.Nm};let Iu={};const Lu={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:function(){return Math.max.apply(null,0===this.actors.length?[0]:this.actors.map((t=>t.height||0)))+(0===this.loops.length?0:this.loops.map((t=>t.height||0)).reduce(((t,e)=>t+e)))+(0===this.messages.length?0:this.messages.map((t=>t.height||0)).reduce(((t,e)=>t+e)))+(0===this.notes.length?0:this.notes.map((t=>t.height||0)).reduce(((t,e)=>t+e)))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(t){this.boxes.push(t)},addActor:function(t){this.actors.push(t)},addLoop:function(t){this.loops.push(t)},addMessage:function(t){this.messages.push(t)},addNote:function(t){this.notes.push(t)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,Fu(ai())},updateVal:function(t,e,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])},updateBounds:function(t,e,n,i){const a=this;let r=0;function o(o){return function(s){r++;const c=a.sequenceItems.length-r+1;a.updateVal(s,"starty",e-c*Iu.boxMargin,Math.min),a.updateVal(s,"stopy",i+c*Iu.boxMargin,Math.max),a.updateVal(Lu.data,"startx",t-c*Iu.boxMargin,Math.min),a.updateVal(Lu.data,"stopx",n+c*Iu.boxMargin,Math.max),"activation"!==o&&(a.updateVal(s,"startx",t-c*Iu.boxMargin,Math.min),a.updateVal(s,"stopx",n+c*Iu.boxMargin,Math.max),a.updateVal(Lu.data,"starty",e-c*Iu.boxMargin,Math.min),a.updateVal(Lu.data,"stopy",i+c*Iu.boxMargin,Math.max))}}this.sequenceItems.forEach(o()),this.activations.forEach(o("activation"))},insert:function(t,e,n,i){const a=Math.min(t,n),r=Math.max(t,n),o=Math.min(e,i),s=Math.max(e,i);this.updateVal(Lu.data,"startx",a,Math.min),this.updateVal(Lu.data,"starty",o,Math.min),this.updateVal(Lu.data,"stopx",r,Math.max),this.updateVal(Lu.data,"stopy",s,Math.max),this.updateBounds(a,o,r,s)},newActivation:function(t,e,n){const i=n[t.from.actor],a=ju(t.from.actor).length||0,r=i.x+i.width/2+(a-1)*Iu.activationWidth/2;this.activations.push({startx:r,starty:this.verticalPos+2,stopx:r+Iu.activationWidth,stopy:void 0,actor:t.from.actor,anchored:Du.anchorElement(e)})},endActivation:function(t){const e=this.activations.map((function(t){return t.actor})).lastIndexOf(t.from.actor);return this.activations.splice(e,1)[0]},createLoop:function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},newLoop:function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},endLoop:function(){return this.sequenceItems.pop()},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:Lu.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},Ou=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),Mu=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),Nu=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});const Bu=function(t,e,n,i,a,r,o){if(!0===a.hideUnusedParticipants){const t=new Set;r.forEach((e=>{t.add(e.from),t.add(e.to)})),n=n.filter((e=>t.has(e)))}let s,c=0,l=0,u=0;for(const d of n){const n=e[d],a=n.box;s&&s!=a&&(o||Lu.models.addBox(s),l+=Iu.boxMargin+s.margin),a&&a!=s&&(o||(a.x=c+l,a.y=i),l+=a.margin),n.width=n.width||Iu.width,n.height=Math.max(n.height||Iu.height,Iu.height),n.margin=n.margin||Iu.actorMargin,n.x=c+l,n.y=Lu.getVerticalPos();const r=Du.drawActor(t,n,Iu,o);u=Math.max(u,r),Lu.insert(n.x,i,n.x+n.width,n.height),c+=n.width+l,n.box&&(n.box.width=c+a.margin-n.box.x),l=n.margin,s=n.box,Lu.models.addActor(n)}s&&!o&&Lu.models.addBox(s),Lu.bumpVerticalPos(u)},Pu=function(t,e,n,i){let a=0,r=0;for(const o of n){const n=e[o],s=Hu(n),c=Du.drawPopup(t,n,s,Iu,Iu.forceMenus,i);c.height>a&&(a=c.height),c.width+n.x>r&&(r=c.width+n.x)}return{maxHeight:a,maxWidth:r}},Fu=function(t){Cn(Iu,t),t.fontFamily&&(Iu.actorFontFamily=Iu.noteFontFamily=Iu.messageFontFamily=t.fontFamily),t.fontSize&&(Iu.actorFontSize=Iu.noteFontSize=Iu.messageFontSize=t.fontSize),t.fontWeight&&(Iu.actorFontWeight=Iu.noteFontWeight=Iu.messageFontWeight=t.fontWeight)},ju=function(t){return Lu.activations.filter((function(e){return e.actor===t}))},$u=function(t,e){const n=e[t],i=ju(t);return[i.reduce((function(t,e){return Math.min(t,e.startx)}),n.x+n.width/2),i.reduce((function(t,e){return Math.max(t,e.stopx)}),n.x+n.width/2)]};function zu(t,e,n,i,a){Lu.bumpVerticalPos(n);let r=i;if(e.id&&e.message&&t[e.id]){const n=t[e.id].width,a=Ou(Iu);e.message=Gn.wrapLabel(`[${e.message}]`,n-2*Iu.wrapPadding,a),e.width=n,e.wrap=!0;const o=Gn.calculateTextDimensions(e.message,a),s=Math.max(o.height,Iu.labelBoxHeight);r=i+s,Dt.debug(`${s} - ${e.message}`)}a(e),Lu.bumpVerticalPos(r)}const Hu=function(t){let e=0;const n=Nu(Iu);for(const i in t.links){const t=Gn.calculateTextDimensions(i,n).width+2*Iu.wrapPadding+2*Iu.boxMargin;e<t&&(e=t)}return e};const Uu=function(t,e,n,i){const a={},r=[];let o,s,c;return t.forEach((function(t){switch(t.id=Gn.random({length:10}),t.type){case i.db.LINETYPE.LOOP_START:case i.db.LINETYPE.ALT_START:case i.db.LINETYPE.OPT_START:case i.db.LINETYPE.PAR_START:case i.db.LINETYPE.CRITICAL_START:case i.db.LINETYPE.BREAK_START:r.push({id:t.id,msg:t.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case i.db.LINETYPE.ALT_ELSE:case i.db.LINETYPE.PAR_AND:case i.db.LINETYPE.CRITICAL_OPTION:t.message&&(o=r.pop(),a[o.id]=o,a[t.id]=o,r.push(o));break;case i.db.LINETYPE.LOOP_END:case i.db.LINETYPE.ALT_END:case i.db.LINETYPE.OPT_END:case i.db.LINETYPE.PAR_END:case i.db.LINETYPE.CRITICAL_END:case i.db.LINETYPE.BREAK_END:o=r.pop(),a[o.id]=o;break;case i.db.LINETYPE.ACTIVE_START:{const n=e[t.from?t.from.actor:t.to.actor],i=ju(t.from?t.from.actor:t.to.actor).length,a=n.x+n.width/2+(i-1)*Iu.activationWidth/2,r={startx:a,stopx:a+Iu.activationWidth,actor:t.from.actor,enabled:!0};Lu.activations.push(r)}break;case i.db.LINETYPE.ACTIVE_END:{const e=Lu.activations.map((t=>t.actor)).lastIndexOf(t.from.actor);delete Lu.activations.splice(e,1)[0]}}void 0!==t.placement?(s=function(t,e,n){const i=e[t.from].x,a=e[t.to].x,r=t.wrap&&t.message;let o=Gn.calculateTextDimensions(r?Gn.wrapLabel(t.message,Iu.width,Mu(Iu)):t.message,Mu(Iu));const s={width:r?Iu.width:Math.max(Iu.width,o.width+2*Iu.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===n.db.PLACEMENT.RIGHTOF?(s.width=r?Math.max(Iu.width,o.width):Math.max(e[t.from].width/2+e[t.to].width/2,o.width+2*Iu.noteMargin),s.startx=i+(e[t.from].width+Iu.actorMargin)/2):t.placement===n.db.PLACEMENT.LEFTOF?(s.width=r?Math.max(Iu.width,o.width+2*Iu.noteMargin):Math.max(e[t.from].width/2+e[t.to].width/2,o.width+2*Iu.noteMargin),s.startx=i-s.width+(e[t.from].width-Iu.actorMargin)/2):t.to===t.from?(o=Gn.calculateTextDimensions(r?Gn.wrapLabel(t.message,Math.max(Iu.width,e[t.from].width),Mu(Iu)):t.message,Mu(Iu)),s.width=r?Math.max(Iu.width,e[t.from].width):Math.max(e[t.from].width,Iu.width,o.width+2*Iu.noteMargin),s.startx=i+(e[t.from].width-s.width)/2):(s.width=Math.abs(i+e[t.from].width/2-(a+e[t.to].width/2))+Iu.actorMargin,s.startx=i<a?i+e[t.from].width/2-Iu.actorMargin/2:a+e[t.to].width/2-Iu.actorMargin/2),r&&(s.message=Gn.wrapLabel(t.message,s.width-2*Iu.wrapPadding,Mu(Iu))),Dt.debug(`NM:[${s.startx},${s.stopx},${s.starty},${s.stopy}:${s.width},${s.height}=${t.message}]`),s}(t,e,i),t.noteModel=s,r.forEach((t=>{o=t,o.from=Math.min(o.from,s.startx),o.to=Math.max(o.to,s.startx+s.width),o.width=Math.max(o.width,Math.abs(o.from-o.to))-Iu.labelBoxWidth}))):(c=function(t,e,n){let i=!1;if([n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT].includes(t.type)&&(i=!0),!i)return{};const a=$u(t.from,e),r=$u(t.to,e),o=a[0]<=r[0]?1:0,s=a[0]<r[0]?0:1,c=[...a,...r],l=Math.abs(r[s]-a[o]);t.wrap&&t.message&&(t.message=Gn.wrapLabel(t.message,Math.max(l+2*Iu.wrapPadding,Iu.width),Ou(Iu)));const u=Gn.calculateTextDimensions(t.message,Ou(Iu));return{width:Math.max(t.wrap?0:u.width+2*Iu.wrapPadding,l+2*Iu.wrapPadding,Iu.width),height:0,startx:a[o],stopx:r[s],starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,c),toBounds:Math.max.apply(null,c)}}(t,e,i),t.msgModel=c,c.startx&&c.stopx&&r.length>0&&r.forEach((n=>{if(o=n,c.startx===c.stopx){const n=e[t.from],i=e[t.to];o.from=Math.min(n.x-c.width/2,n.x-n.width/2,o.from),o.to=Math.max(i.x+c.width/2,i.x+n.width/2,o.to),o.width=Math.max(o.width,Math.abs(o.to-o.from))-Iu.labelBoxWidth}else o.from=Math.min(c.startx,o.from),o.to=Math.max(c.stopx,o.to),o.width=Math.max(o.width,c.width)-Iu.labelBoxWidth})))})),Lu.activations=[],Dt.debug("Loop type widths:",a),a},Vu={bounds:Lu,drawActors:Bu,drawActorsPopup:Pu,setConf:Fu,draw:function(t,e,n,i){const{securityLevel:a,sequence:r}=ai();let o;Iu=r,i.db.clear(),i.parser.parse(t),"sandbox"===a&&(o=(0,s.Ys)("#i"+e));const c="sandbox"===a?(0,s.Ys)(o.nodes()[0].contentDocument.body):(0,s.Ys)("body"),l="sandbox"===a?o.nodes()[0].contentDocument:document;Lu.init(),Dt.debug(i.db);const u="sandbox"===a?c.select(`[id="${e}"]`):(0,s.Ys)(`[id="${e}"]`),d=i.db.getActors(),h=i.db.getBoxes(),f=i.db.getActorKeys(),g=i.db.getMessages(),p=i.db.getDiagramTitle(),b=i.db.hasAtLeastOneBox(),m=i.db.hasAtLeastOneBoxWithTitle(),y=function(t,e,n){const i={};return e.forEach((function(e){if(t[e.to]&&t[e.from]){const a=t[e.to];if(e.placement===n.db.PLACEMENT.LEFTOF&&!a.prevActor)return;if(e.placement===n.db.PLACEMENT.RIGHTOF&&!a.nextActor)return;const r=void 0!==e.placement,o=!r,s=r?Mu(Iu):Ou(Iu),c=e.wrap?Gn.wrapLabel(e.message,Iu.width-2*Iu.wrapPadding,s):e.message,l=Gn.calculateTextDimensions(c,s).width+2*Iu.wrapPadding;o&&e.from===a.nextActor?i[e.to]=Math.max(i[e.to]||0,l):o&&e.from===a.prevActor?i[e.from]=Math.max(i[e.from]||0,l):o&&e.from===e.to?(i[e.from]=Math.max(i[e.from]||0,l/2),i[e.to]=Math.max(i[e.to]||0,l/2)):e.placement===n.db.PLACEMENT.RIGHTOF?i[e.from]=Math.max(i[e.from]||0,l):e.placement===n.db.PLACEMENT.LEFTOF?i[a.prevActor]=Math.max(i[a.prevActor]||0,l):e.placement===n.db.PLACEMENT.OVER&&(a.prevActor&&(i[a.prevActor]=Math.max(i[a.prevActor]||0,l/2)),a.nextActor&&(i[e.from]=Math.max(i[e.from]||0,l/2)))}})),Dt.debug("maxMessageWidthPerActor:",i),i}(d,g,i);Iu.height=function(t,e,n){let i=0;Object.keys(t).forEach((e=>{const n=t[e];n.wrap&&(n.description=Gn.wrapLabel(n.description,Iu.width-2*Iu.wrapPadding,Nu(Iu)));const a=Gn.calculateTextDimensions(n.description,Nu(Iu));n.width=n.wrap?Iu.width:Math.max(Iu.width,a.width+2*Iu.wrapPadding),n.height=n.wrap?Math.max(a.height,Iu.height):Iu.height,i=Math.max(i,n.height)}));for(const r in e){const n=t[r];if(!n)continue;const i=t[n.nextActor];if(!i){const t=e[r]+Iu.actorMargin-n.width/2;n.margin=Math.max(t,Iu.actorMargin);continue}const a=e[r]+Iu.actorMargin-n.width/2-i.width/2;n.margin=Math.max(a,Iu.actorMargin)}let a=0;return n.forEach((e=>{const n=Ou(Iu);let i=e.actorKeys.reduce(((e,n)=>e+(t[n].width+(t[n].margin||0))),0);i-=2*Iu.boxTextMargin,e.wrap&&(e.name=Gn.wrapLabel(e.name,i-2*Iu.wrapPadding,n));const r=Gn.calculateTextDimensions(e.name,n);a=Math.max(r.height,a);const o=Math.max(i,r.width+2*Iu.wrapPadding);if(e.margin=Iu.boxTextMargin,i<o){const t=(o-i)/2;e.margin+=t}})),n.forEach((t=>t.textMaxHeight=a)),Math.max(i,Iu.height)}(d,y,h),Du.insertComputerIcon(u),Du.insertDatabaseIcon(u),Du.insertClockIcon(u),b&&(Lu.bumpVerticalPos(Iu.boxMargin),m&&Lu.bumpVerticalPos(h[0].textMaxHeight)),Bu(u,d,f,0,Iu,g,!1);const v=Uu(g,d,y,i);Du.insertArrowHead(u),Du.insertArrowCrossHead(u),Du.insertArrowFilledHead(u),Du.insertSequenceNumber(u);let w=1,x=1;const R=[];g.forEach((function(t){let e,n,a;switch(t.type){case i.db.LINETYPE.NOTE:n=t.noteModel,function(t,e){Lu.bumpVerticalPos(Iu.boxMargin),e.height=Iu.boxMargin,e.starty=Lu.getVerticalPos();const n=Du.getNoteRect();n.x=e.startx,n.y=e.starty,n.width=e.width||Iu.width,n.class="note";const i=t.append("g"),a=Du.drawRect(i,n),r=Du.getTextObj();r.x=e.startx,r.y=e.starty,r.width=n.width,r.dy="1em",r.text=e.message,r.class="noteText",r.fontFamily=Iu.noteFontFamily,r.fontSize=Iu.noteFontSize,r.fontWeight=Iu.noteFontWeight,r.anchor=Iu.noteAlign,r.textMargin=Iu.noteMargin,r.valign="center";const o=xu(i,r),s=Math.round(o.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));a.attr("height",s+2*Iu.noteMargin),e.height+=s+2*Iu.noteMargin,Lu.bumpVerticalPos(s+2*Iu.noteMargin),e.stopy=e.starty+s+2*Iu.noteMargin,e.stopx=e.startx+n.width,Lu.insert(e.startx,e.starty,e.stopx,e.stopy),Lu.models.addNote(e)}(u,n);break;case i.db.LINETYPE.ACTIVE_START:Lu.newActivation(t,u,d);break;case i.db.LINETYPE.ACTIVE_END:!function(t,e){const n=Lu.endActivation(t);n.starty+18>e&&(n.starty=e-6,e+=12),Du.drawActivation(u,n,e,Iu,ju(t.from.actor).length),Lu.insert(n.startx,e-10,n.stopx,e)}(t,Lu.getVerticalPos());break;case i.db.LINETYPE.LOOP_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.LOOP_END:e=Lu.endLoop(),Du.drawLoop(u,e,"loop",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;case i.db.LINETYPE.RECT_START:zu(v,t,Iu.boxMargin,Iu.boxMargin,(t=>Lu.newLoop(void 0,t.message)));break;case i.db.LINETYPE.RECT_END:e=Lu.endLoop(),Du.drawBackgroundRect(u,e),Lu.models.addLoop(e),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos());break;case i.db.LINETYPE.OPT_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.OPT_END:e=Lu.endLoop(),Du.drawLoop(u,e,"opt",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;case i.db.LINETYPE.ALT_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.ALT_ELSE:zu(v,t,Iu.boxMargin+Iu.boxTextMargin,Iu.boxMargin,(t=>Lu.addSectionToLoop(t)));break;case i.db.LINETYPE.ALT_END:e=Lu.endLoop(),Du.drawLoop(u,e,"alt",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;case i.db.LINETYPE.PAR_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.PAR_AND:zu(v,t,Iu.boxMargin+Iu.boxTextMargin,Iu.boxMargin,(t=>Lu.addSectionToLoop(t)));break;case i.db.LINETYPE.PAR_END:e=Lu.endLoop(),Du.drawLoop(u,e,"par",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;case i.db.LINETYPE.AUTONUMBER:w=t.message.start||w,x=t.message.step||x,t.message.visible?i.db.enableSequenceNumbers():i.db.disableSequenceNumbers();break;case i.db.LINETYPE.CRITICAL_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.CRITICAL_OPTION:zu(v,t,Iu.boxMargin+Iu.boxTextMargin,Iu.boxMargin,(t=>Lu.addSectionToLoop(t)));break;case i.db.LINETYPE.CRITICAL_END:e=Lu.endLoop(),Du.drawLoop(u,e,"critical",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;case i.db.LINETYPE.BREAK_START:zu(v,t,Iu.boxMargin,Iu.boxMargin+Iu.boxTextMargin,(t=>Lu.newLoop(t)));break;case i.db.LINETYPE.BREAK_END:e=Lu.endLoop(),Du.drawLoop(u,e,"break",Iu),Lu.bumpVerticalPos(e.stopy-Lu.getVerticalPos()),Lu.models.addLoop(e);break;default:try{a=t.msgModel,a.starty=Lu.getVerticalPos(),a.sequenceIndex=w,a.sequenceVisible=i.db.showSequenceNumbers();const e=function(t,e){Lu.bumpVerticalPos(10);const{startx:n,stopx:i,message:a}=e,r=zt.splitBreaks(a).length,o=Gn.calculateTextDimensions(a,Ou(Iu)),s=o.height/r;let c;e.height+=s,Lu.bumpVerticalPos(s);let l=o.height-10;const u=o.width;if(n===i){c=Lu.getVerticalPos()+l,Iu.rightAngles||(l+=Iu.boxMargin,c=Lu.getVerticalPos()+l),l+=30;const t=Math.max(u/2,Iu.width/2);Lu.insert(n-t,Lu.getVerticalPos()-10+l,i+t,Lu.getVerticalPos()+30+l)}else l+=Iu.boxMargin,c=Lu.getVerticalPos()+l,Lu.insert(n,c-10,i,c);return Lu.bumpVerticalPos(l),e.height+=l,e.stopy=e.starty+e.height,Lu.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),c}(0,a);R.push({messageModel:a,lineStartY:e}),Lu.models.addMessage(a)}catch(r){Dt.error("error while drawing message",r)}}[i.db.LINETYPE.SOLID_OPEN,i.db.LINETYPE.DOTTED_OPEN,i.db.LINETYPE.SOLID,i.db.LINETYPE.DOTTED,i.db.LINETYPE.SOLID_CROSS,i.db.LINETYPE.DOTTED_CROSS,i.db.LINETYPE.SOLID_POINT,i.db.LINETYPE.DOTTED_POINT].includes(t.type)&&(w+=x)})),R.forEach((t=>function(t,e,n,i){const{startx:a,stopx:r,starty:o,message:s,type:c,sequenceIndex:l,sequenceVisible:u}=e,d=Gn.calculateTextDimensions(s,Ou(Iu)),h=Du.getTextObj();h.x=a,h.y=o+10,h.width=r-a,h.class="messageText",h.dy="1em",h.text=s,h.fontFamily=Iu.messageFontFamily,h.fontSize=Iu.messageFontSize,h.fontWeight=Iu.messageFontWeight,h.anchor=Iu.messageAlign,h.valign="center",h.textMargin=Iu.wrapPadding,h.tspan=!1,xu(t,h);const f=d.width;let g;a===r?g=Iu.rightAngles?t.append("path").attr("d",`M ${a},${n} H ${a+Math.max(Iu.width/2,f/2)} V ${n+25} H ${a}`):t.append("path").attr("d","M "+a+","+n+" C "+(a+60)+","+(n-10)+" "+(a+60)+","+(n+30)+" "+a+","+(n+20)):(g=t.append("line"),g.attr("x1",a),g.attr("y1",n),g.attr("x2",r),g.attr("y2",n)),c===i.db.LINETYPE.DOTTED||c===i.db.LINETYPE.DOTTED_CROSS||c===i.db.LINETYPE.DOTTED_POINT||c===i.db.LINETYPE.DOTTED_OPEN?(g.style("stroke-dasharray","3, 3"),g.attr("class","messageLine1")):g.attr("class","messageLine0");let p="";Iu.arrowMarkerAbsolute&&(p=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,p=p.replace(/\(/g,"\\("),p=p.replace(/\)/g,"\\)")),g.attr("stroke-width",2),g.attr("stroke","none"),g.style("fill","none"),c!==i.db.LINETYPE.SOLID&&c!==i.db.LINETYPE.DOTTED||g.attr("marker-end","url("+p+"#arrowhead)"),c!==i.db.LINETYPE.SOLID_POINT&&c!==i.db.LINETYPE.DOTTED_POINT||g.attr("marker-end","url("+p+"#filled-head)"),c!==i.db.LINETYPE.SOLID_CROSS&&c!==i.db.LINETYPE.DOTTED_CROSS||g.attr("marker-end","url("+p+"#crosshead)"),(u||Iu.showSequenceNumbers)&&(g.attr("marker-start","url("+p+"#sequencenumber)"),t.append("text").attr("x",a).attr("y",n+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(l))}(u,t.messageModel,t.lineStartY,i))),Iu.mirrorActors&&(Lu.bumpVerticalPos(2*Iu.boxMargin),Bu(u,d,f,Lu.getVerticalPos(),Iu,g,!0),Lu.bumpVerticalPos(Iu.boxMargin),ku(u,Lu.getVerticalPos())),Lu.models.boxes.forEach((function(t){t.height=Lu.getVerticalPos()-t.y,Lu.insert(t.x,t.y,t.x+t.width,t.height),t.startx=t.x,t.starty=t.y,t.stopx=t.startx+t.width,t.stopy=t.starty+t.height,t.stroke="rgb(0,0,0, 0.5)",Du.drawBox(u,t,Iu)})),b&&Lu.bumpVerticalPos(Iu.boxMargin);const _=Pu(u,d,f,l),{bounds:k}=Lu.getBounds();Dt.debug("For line height fix Querying: #"+e+" .actor-line");(0,s.td_)("#"+e+" .actor-line").attr("y2",k.stopy);let E=k.stopy-k.starty;E<_.maxHeight&&(E=_.maxHeight);let C=E+2*Iu.diagramMarginY;Iu.mirrorActors&&(C=C-Iu.boxMargin+Iu.bottomMarginAdj);let S=k.stopx-k.startx;S<_.maxWidth&&(S=_.maxWidth);const T=S+2*Iu.diagramMarginX;p&&u.append("text").text(p).attr("x",(k.stopx-k.startx)/2-2*Iu.diagramMarginX).attr("y",-25),di(u,C,T,Iu.useMaxWidth);const A=p?40:0;u.attr("viewBox",k.startx-Iu.diagramMarginX+" -"+(Iu.diagramMarginY+A)+" "+T+" "+(C+A)),Dt.debug("models:",Lu.models)}};var qu=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,2],i=[1,3],a=[1,5],r=[1,7],o=[2,5],s=[1,15],c=[1,17],l=[1,21],u=[1,22],d=[1,23],h=[1,24],f=[1,37],g=[1,25],p=[1,26],b=[1,27],m=[1,28],y=[1,29],v=[1,32],w=[1,33],x=[1,34],R=[1,35],_=[1,36],k=[1,39],E=[1,40],C=[1,41],S=[1,42],T=[1,38],A=[1,45],D=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],I=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],L=[1,4,5,7,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],O=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],M={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,classDefStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"--\x3e":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,class:42,CLASSENTITY_IDS:43,STYLECLASS:44,openDirective:45,typeDirective:46,closeDirective:47,":":48,argDirective:49,direction_tb:50,direction_bt:51,direction_rl:52,direction_lr:53,eol:54,";":55,EDGE_STATE:56,STYLE_SEPARATOR:57,left_of:58,right_of:59,open_directive:60,type_directive:61,arg_directive:62,close_directive:63,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",14:"DESCR",15:"--\x3e",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"class",43:"CLASSENTITY_IDS",44:"STYLECLASS",48:":",50:"direction_tb",51:"direction_bt",52:"direction_rl",53:"direction_lr",55:";",56:"EDGE_STATE",57:"STYLE_SEPARATOR",58:"left_of",59:"right_of",60:"open_directive",61:"type_directive",62:"arg_directive",63:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[11,3],[11,3],[12,3],[6,3],[6,5],[32,1],[32,1],[32,1],[32,1],[54,1],[54,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1],[45,1],[46,1],[49,1],[47,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:return i.setRootDoc(r[s]),r[s];case 5:this.$=[];break;case 6:"nl"!=r[s]&&(r[s-1].push(r[s]),this.$=r[s-1]);break;case 7:case 8:case 12:this.$=r[s];break;case 9:this.$="nl";break;case 13:const t=r[s-1];t.description=i.trimColon(r[s]),this.$=t;break;case 14:this.$={stmt:"relation",state1:r[s-2],state2:r[s]};break;case 15:const e=i.trimColon(r[s]);this.$={stmt:"relation",state1:r[s-3],state2:r[s-1],description:e};break;case 19:this.$={stmt:"state",id:r[s-3],type:"default",description:"",doc:r[s-1]};break;case 20:var c=r[s],l=r[s-2].trim();if(r[s].match(":")){var u=r[s].split(":");c=u[0],l=[l,u[1]]}this.$={stmt:"state",id:c,type:"default",description:l};break;case 21:this.$={stmt:"state",id:r[s-3],type:"default",description:r[s-5],doc:r[s-1]};break;case 22:this.$={stmt:"state",id:r[s],type:"fork"};break;case 23:this.$={stmt:"state",id:r[s],type:"join"};break;case 24:this.$={stmt:"state",id:r[s],type:"choice"};break;case 25:this.$={stmt:"state",id:i.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:r[s-1].trim(),note:{position:r[s-2].trim(),text:r[s].trim()}};break;case 30:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 31:case 32:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 33:case 34:this.$={stmt:"classDef",id:r[s-1].trim(),classes:r[s].trim()};break;case 35:this.$={stmt:"applyClass",id:r[s-1].trim(),styleClass:r[s].trim()};break;case 38:i.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:i.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:i.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:i.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:r[s].trim(),type:"default",description:""};break;case 46:case 47:this.$={stmt:"state",id:r[s-2].trim(),classes:[r[s].trim()],type:"default",description:""};break;case 50:i.parseDirective("%%{","open_directive");break;case 51:i.parseDirective(r[s],"type_directive");break;case 52:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 53:i.parseDirective("}%%","close_directive","state")}},table:[{3:1,4:n,5:i,6:4,7:a,45:6,60:r},{1:[3]},{3:8,4:n,5:i,6:4,7:a,45:6,60:r},{3:9,4:n,5:i,6:4,7:a,45:6,60:r},{3:10,4:n,5:i,6:4,7:a,45:6,60:r},e([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],o,{8:11}),{46:12,61:[1,13]},{61:[2,50]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:s,5:c,6:30,9:14,10:16,11:18,12:19,13:20,16:l,17:u,19:d,22:h,24:f,25:g,26:p,27:b,28:m,29:y,32:31,33:v,35:w,37:x,38:R,42:_,45:6,50:k,51:E,52:C,53:S,56:T,60:r},{47:43,48:[1,44],63:A},e([48,63],[2,51]),e(D,[2,6]),{6:30,10:46,11:18,12:19,13:20,16:l,17:u,19:d,22:h,24:f,25:g,26:p,27:b,28:m,29:y,32:31,33:v,35:w,37:x,38:R,42:_,45:6,50:k,51:E,52:C,53:S,56:T,60:r},e(D,[2,8]),e(D,[2,9]),e(D,[2,10]),e(D,[2,11]),e(D,[2,12],{14:[1,47],15:[1,48]}),e(D,[2,16]),{18:[1,49]},e(D,[2,18],{20:[1,50]}),{23:[1,51]},e(D,[2,22]),e(D,[2,23]),e(D,[2,24]),e(D,[2,25]),{30:52,31:[1,53],58:[1,54],59:[1,55]},e(D,[2,28]),e(D,[2,29]),{34:[1,56]},{36:[1,57]},e(D,[2,32]),{39:[1,58],41:[1,59]},{43:[1,60]},e(I,[2,44],{57:[1,61]}),e(I,[2,45],{57:[1,62]}),e(D,[2,38]),e(D,[2,39]),e(D,[2,40]),e(D,[2,41]),e(L,[2,36]),{49:63,62:[1,64]},e(L,[2,53]),e(D,[2,7]),e(D,[2,13]),{13:65,24:f,56:T},e(D,[2,17]),e(O,o,{8:66}),{24:[1,67]},{24:[1,68]},{23:[1,69]},{24:[2,48]},{24:[2,49]},e(D,[2,30]),e(D,[2,31]),{40:[1,70]},{40:[1,71]},{44:[1,72]},{24:[1,73]},{24:[1,74]},{47:75,63:A},{63:[2,52]},e(D,[2,14],{14:[1,76]}),{4:s,5:c,6:30,9:14,10:16,11:18,12:19,13:20,16:l,17:u,19:d,21:[1,77],22:h,24:f,25:g,26:p,27:b,28:m,29:y,32:31,33:v,35:w,37:x,38:R,42:_,45:6,50:k,51:E,52:C,53:S,56:T,60:r},e(D,[2,20],{20:[1,78]}),{31:[1,79]},{24:[1,80]},e(D,[2,33]),e(D,[2,34]),e(D,[2,35]),e(I,[2,46]),e(I,[2,47]),e(L,[2,37]),e(D,[2,15]),e(D,[2,19]),e(O,o,{8:81}),e(D,[2,26]),e(D,[2,27]),{4:s,5:c,6:30,9:14,10:16,11:18,12:19,13:20,16:l,17:u,19:d,21:[1,82],22:h,24:f,25:g,26:p,27:b,28:m,29:y,32:31,33:v,35:w,37:x,38:R,42:_,45:6,50:k,51:E,52:C,53:S,56:T,60:r},e(D,[2,21])],defaultActions:{7:[2,50],8:[2,1],9:[2,2],10:[2,3],54:[2,48],55:[2,49],64:[2,52]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},N=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return 41;case 1:case 44:return 50;case 2:case 45:return 51;case 3:case 46:return 52;case 4:case 47:return 53;case 5:return this.begin("open_directive"),60;case 6:return this.begin("type_directive"),61;case 7:return this.popState(),this.begin("arg_directive"),48;case 8:return this.popState(),this.popState(),63;case 9:return 62;case 10:case 11:case 13:case 14:case 15:case 16:case 56:case 58:case 64:break;case 12:case 79:return 5;case 17:case 34:return this.pushState("SCALE"),17;case 18:case 35:return 18;case 19:case 25:case 36:case 51:case 54:this.popState();break;case 20:return this.begin("acc_title"),33;case 21:return this.popState(),"acc_title_value";case 22:return this.begin("acc_descr"),35;case 23:return this.popState(),"acc_descr_value";case 24:this.begin("acc_descr_multiline");break;case 26:return"acc_descr_multiline_value";case 27:return this.pushState("CLASSDEF"),38;case 28:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 29:return this.popState(),this.pushState("CLASSDEFID"),39;case 30:return this.popState(),40;case 31:return this.pushState("CLASS"),42;case 32:return this.popState(),this.pushState("CLASS_STYLE"),43;case 33:return this.popState(),44;case 37:this.pushState("STATE");break;case 38:case 41:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),25;case 39:case 42:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),26;case 40:case 43:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),27;case 48:this.pushState("STATE_STRING");break;case 49:return this.pushState("STATE_ID"),"AS";case 50:case 66:return this.popState(),"ID";case 52:return"STATE_DESCR";case 53:return 19;case 55:return this.popState(),this.pushState("struct"),20;case 57:return this.popState(),21;case 59:return this.begin("NOTE"),29;case 60:return this.popState(),this.pushState("NOTE_ID"),58;case 61:return this.popState(),this.pushState("NOTE_ID"),59;case 62:this.popState(),this.pushState("FLOATING_NOTE");break;case 63:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 65:return"NOTE_TEXT";case 67:return this.popState(),this.pushState("NOTE_TEXT"),24;case 68:return this.popState(),e.yytext=e.yytext.substr(2).trim(),31;case 69:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),31;case 70:case 71:return 7;case 72:return 16;case 73:return 56;case 74:return 24;case 75:return e.yytext=e.yytext.trim(),14;case 76:return 15;case 77:return 28;case 78:return 57;case 80:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<<fork>>)/i,/^(?:.*<<join>>)/i,/^(?:.*<<choice>>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[14,15],inclusive:!1},close_directive:{rules:[14,15],inclusive:!1},arg_directive:{rules:[8,9,14,15],inclusive:!1},type_directive:{rules:[7,8,14,15],inclusive:!1},open_directive:{rules:[6,14,15],inclusive:!1},struct:{rules:[14,15,27,31,37,44,45,46,47,56,57,58,59,73,74,75,76,77],inclusive:!1},FLOATING_NOTE_ID:{rules:[66],inclusive:!1},FLOATING_NOTE:{rules:[63,64,65],inclusive:!1},NOTE_TEXT:{rules:[68,69],inclusive:!1},NOTE_ID:{rules:[67],inclusive:!1},NOTE:{rules:[60,61,62],inclusive:!1},CLASS_STYLE:{rules:[33],inclusive:!1},CLASS:{rules:[32],inclusive:!1},CLASSDEFID:{rules:[30],inclusive:!1},CLASSDEF:{rules:[28,29],inclusive:!1},acc_descr_multiline:{rules:[25,26],inclusive:!1},acc_descr:{rules:[23],inclusive:!1},acc_title:{rules:[21],inclusive:!1},SCALE:{rules:[18,19,35,36],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[50],inclusive:!1},STATE_STRING:{rules:[51,52],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[14,15,38,39,40,41,42,43,48,49,53,54,55],inclusive:!1},ID:{rules:[14,15],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,10,11,12,13,15,16,17,20,22,24,27,31,34,37,55,59,70,71,72,73,74,75,76,78,79,80],inclusive:!0}}},t);function B(){this.yy={}}return M.lexer=N,B.prototype=M,M.Parser=B,new B}();qu.parser=qu;const Wu=qu,Yu=(t,e)=>{var n;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.state)?void 0:n.defaultRenderer)&&null!==t.match(/^\s*stateDiagram/)},Gu=(t,e)=>{var n;return null!==t.match(/^\s*stateDiagram-v2/)||!(!t.match(/^\s*stateDiagram/)||"dagre-wrapper"!==(null==(n=null==e?void 0:e.state)?void 0:n.defaultRenderer))},Zu="state",Ku="relation",Xu="default",Ju="divider",Qu="[*]",td="start",ed="color",nd="fill";let id="LR",ad=[],rd={};let od={root:{relations:[],states:{},documents:{}}},sd=od.root,cd=0,ld=0;const ud=t=>JSON.parse(JSON.stringify(t)),dd=(t,e,n)=>{if(e.stmt===Ku)dd(t,e.state1,!0),dd(t,e.state2,!1);else if(e.stmt===Zu&&("[*]"===e.id?(e.id=n?t.id+"_start":t.id+"_end",e.start=n):e.id=e.id.trim()),e.doc){const t=[];let n,i=[];for(n=0;n<e.doc.length;n++)if(e.doc[n].type===Ju){const a=ud(e.doc[n]);a.doc=ud(i),t.push(a),i=[]}else i.push(e.doc[n]);if(t.length>0&&i.length>0){const n={stmt:Zu,id:Nn(),type:"divider",doc:ud(i)};t.push(ud(n)),e.doc=t}e.doc.forEach((t=>dd(e,t,!0)))}},hd=function(t,e="default",n=null,i=null,a=null,r=null,o=null,s=null){const c=null==t?void 0:t.trim();if(void 0===sd.states[c]?(Dt.info("Adding state ",c,i),sd.states[c]={id:c,descriptions:[],type:e,doc:n,note:a,classes:[],styles:[],textStyles:[]}):(sd.states[c].doc||(sd.states[c].doc=n),sd.states[c].type||(sd.states[c].type=e)),i&&(Dt.info("Setting state description",c,i),"string"==typeof i&&yd(c,i.trim()),"object"==typeof i&&i.forEach((t=>yd(c,t.trim())))),a&&(sd.states[c].note=a,sd.states[c].note.text=zt.sanitizeText(sd.states[c].note.text,ai())),r){Dt.info("Setting state classes",c,r);("string"==typeof r?[r]:r).forEach((t=>wd(c,t.trim())))}if(o){Dt.info("Setting state styles",c,o);("string"==typeof o?[o]:o).forEach((t=>xd(c,t.trim())))}if(s){Dt.info("Setting state styles",c,o);("string"==typeof s?[s]:s).forEach((t=>Rd(c,t.trim())))}},fd=function(t){od={root:{relations:[],states:{},documents:{}}},sd=od.root,cd=0,rd={},t||Ii()},gd=function(t){return sd.states[t]};function pd(t=""){let e=t;return t===Qu&&(cd++,e=`start${cd}`),e}function bd(t="",e="default"){return t===Qu?td:e}const md=function(t,e,n){if("object"==typeof t)!function(t,e,n){let i=pd(t.id.trim()),a=bd(t.id.trim(),t.type),r=pd(e.id.trim()),o=bd(e.id.trim(),e.type);hd(i,a,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),hd(r,o,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),sd.relations.push({id1:i,id2:r,relationTitle:zt.sanitizeText(n,ai())})}(t,e,n);else{const i=pd(t.trim()),a=bd(t),r=function(t=""){let e=t;return"[*]"===t&&(cd++,e=`end${cd}`),e}(e.trim()),o=function(t="",e="default"){return"[*]"===t?"end":e}(e);hd(i,a),hd(r,o),sd.relations.push({id1:i,id2:r,title:zt.sanitizeText(n,ai())})}},yd=function(t,e){const n=sd.states[t],i=e.startsWith(":")?e.replace(":","").trim():e;n.descriptions.push(zt.sanitizeText(i,ai()))},vd=function(t,e=""){void 0===rd[t]&&(rd[t]={id:t,styles:[],textStyles:[]});const n=rd[t];null!=e&&e.split(",").forEach((t=>{const e=t.replace(/([^;]*);/,"$1").trim();if(t.match(ed)){const t=e.replace(nd,"bgFill").replace(ed,nd);n.textStyles.push(t)}n.styles.push(e)}))},wd=function(t,e){t.split(",").forEach((function(t){let n=gd(t);if(void 0===n){const e=t.trim();hd(e),n=gd(e)}n.classes.push(e)}))},xd=function(t,e){const n=gd(t);void 0!==n&&n.textStyles.push(e)},Rd=function(t,e){const n=gd(t);void 0!==n&&n.textStyles.push(e)},_d={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().state,addState:hd,clear:fd,getState:gd,getStates:function(){return sd.states},getRelations:function(){return sd.relations},getClasses:function(){return rd},getDirection:()=>id,addRelation:md,getDividerId:()=>(ld++,"divider-id-"+ld),setDirection:t=>{id=t},cleanupLabel:function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},logDocuments:function(){Dt.info("Documents = ",od)},getRootDoc:()=>ad,setRootDoc:t=>{Dt.info("Setting root doc",t),ad=t},getRootDocV2:()=>(dd({id:"root"},{id:"root",doc:ad},!0),{id:"root",doc:ad}),extract:t=>{let e;e=t.doc?t.doc:t,Dt.info(e),fd(!0),Dt.info("Extract",e),e.forEach((t=>{switch(t.stmt){case Zu:hd(t.id.trim(),t.type,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);break;case Ku:md(t.state1,t.state2,t.description);break;case"classDef":vd(t.id.trim(),t.classes);break;case"applyClass":wd(t.id.trim(),t.styleClass)}}))},trimColon:t=>t&&":"===t[0]?t.substr(1).trim():t.trim(),getAccTitle:Oi,setAccTitle:Li,getAccDescription:Ni,setAccDescription:Mi,addStyleClass:vd,setCssClass:wd,addDescription:yd,setDiagramTitle:Bi,getDiagramTitle:Pi},kd={},Ed=(t,e)=>{kd[t]=e},Cd=(t,e)=>{const n=t.append("text").attr("x",2*ai().state.padding).attr("y",ai().state.textHeight+1.3*ai().state.padding).attr("font-size",ai().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),i=n.height,a=t.append("text").attr("x",ai().state.padding).attr("y",i+.4*ai().state.padding+ai().state.dividerMargin+ai().state.textHeight).attr("class","state-description");let r=!0,o=!0;e.descriptions.forEach((function(t){r||(!function(t,e,n){const i=t.append("tspan").attr("x",2*ai().state.padding).text(e);n||i.attr("dy",ai().state.textHeight)}(a,t,o),o=!1),r=!1}));const s=t.append("line").attr("x1",ai().state.padding).attr("y1",ai().state.padding+i+ai().state.dividerMargin/2).attr("y2",ai().state.padding+i+ai().state.dividerMargin/2).attr("class","descr-divider"),c=a.node().getBBox(),l=Math.max(c.width,n.width);return s.attr("x2",l+3*ai().state.padding),t.insert("rect",":first-child").attr("x",ai().state.padding).attr("y",ai().state.padding).attr("width",l+2*ai().state.padding).attr("height",c.height+i+2*ai().state.padding).attr("rx",ai().state.radius),t},Sd=(t,e,n)=>{const i=ai().state.padding,a=2*ai().state.padding,r=t.node().getBBox(),o=r.width,s=r.x,c=t.append("text").attr("x",0).attr("y",ai().state.titleShift).attr("font-size",ai().state.fontSize).attr("class","state-title").text(e.id),l=c.node().getBBox().width+a;let u,d=Math.max(l,o);d===o&&(d+=a);const h=t.node().getBBox();e.doc,u=s-i,l>o&&(u=(o-d)/2+i),Math.abs(s-h.x)<i&&l>o&&(u=s-(l-o)/2);const f=1-ai().state.textHeight;return t.insert("rect",":first-child").attr("x",u).attr("y",f).attr("class",n?"alt-composit":"composit").attr("width",d).attr("height",h.height+ai().state.textHeight+ai().state.titleShift+1).attr("rx","0"),c.attr("x",u+i),l<=o&&c.attr("x",s+(d-a)/2-l/2+i),t.insert("rect",":first-child").attr("x",u).attr("y",ai().state.titleShift-ai().state.textHeight-ai().state.padding).attr("width",d).attr("height",3*ai().state.textHeight).attr("rx",ai().state.radius),t.insert("rect",":first-child").attr("x",u).attr("y",ai().state.titleShift-ai().state.textHeight-ai().state.padding).attr("width",d).attr("height",h.height+3+2*ai().state.textHeight).attr("rx",ai().state.radius),t},Td=(t,e)=>{e.attr("class","state-note");const n=e.append("rect").attr("x",0).attr("y",ai().state.padding),i=e.append("g"),{textWidth:a,textHeight:r}=((t,e,n,i)=>{let a=0;const r=i.append("text");r.style("text-anchor","start"),r.attr("class","noteText");let o=t.replace(/\r\n/g,"<br/>");o=o.replace(/\n/g,"<br/>");const s=o.split(zt.lineBreakRegex);let c=1.25*ai().state.noteMargin;for(const l of s){const t=l.trim();if(t.length>0){const i=r.append("tspan");i.text(t),0===c&&(c+=i.node().getBBox().height),a+=c,i.attr("x",e+ai().state.noteMargin),i.attr("y",n+a+1.25*ai().state.noteMargin)}}return{textWidth:r.node().getBBox().width,textHeight:a}})(t,0,0,i);return n.attr("height",r+2*ai().state.noteMargin),n.attr("width",a+2*ai().state.noteMargin),n},Ad=function(t,e){const n=e.id,i={id:n,label:e.id,width:0,height:0},a=t.append("g").attr("id",n).attr("class","stateGroup");"start"===e.type&&(t=>{t.append("circle").attr("class","start-state").attr("r",ai().state.sizeUnit).attr("cx",ai().state.padding+ai().state.sizeUnit).attr("cy",ai().state.padding+ai().state.sizeUnit)})(a),"end"===e.type&&(t=>{t.append("circle").attr("class","end-state-outer").attr("r",ai().state.sizeUnit+ai().state.miniPadding).attr("cx",ai().state.padding+ai().state.sizeUnit+ai().state.miniPadding).attr("cy",ai().state.padding+ai().state.sizeUnit+ai().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",ai().state.sizeUnit).attr("cx",ai().state.padding+ai().state.sizeUnit+2).attr("cy",ai().state.padding+ai().state.sizeUnit+2)})(a),"fork"!==e.type&&"join"!==e.type||((t,e)=>{let n=ai().state.forkWidth,i=ai().state.forkHeight;if(e.parentId){let t=n;n=i,i=t}t.append("rect").style("stroke","black").style("fill","black").attr("width",n).attr("height",i).attr("x",ai().state.padding).attr("y",ai().state.padding)})(a,e),"note"===e.type&&Td(e.note.text,a),"divider"===e.type&&(t=>{t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",ai().state.textHeight).attr("class","divider").attr("x2",2*ai().state.textHeight).attr("y1",0).attr("y2",0)})(a),"default"===e.type&&0===e.descriptions.length&&((t,e)=>{const n=t.append("text").attr("x",2*ai().state.padding).attr("y",ai().state.textHeight+2*ai().state.padding).attr("font-size",ai().state.fontSize).attr("class","state-title").text(e.id),i=n.node().getBBox();t.insert("rect",":first-child").attr("x",ai().state.padding).attr("y",ai().state.padding).attr("width",i.width+2*ai().state.padding).attr("height",i.height+2*ai().state.padding).attr("rx",ai().state.radius)})(a,e),"default"===e.type&&e.descriptions.length>0&&Cd(a,e);const r=a.node().getBBox();return i.width=r.width+2*ai().state.padding,i.height=r.height+2*ai().state.padding,Ed(n,i),i};let Dd=0;let Id;const Ld={},Od=(t,e,n,i,a,r,o)=>{const c=new lt.k({compound:!0,multigraph:!0});let l,u=!0;for(l=0;l<t.length;l++)if("relation"===t[l].stmt){u=!1;break}n?c.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:u?1:Id.edgeLengthFactor,nodeSep:u?1:50,isMultiGraph:!0}):c.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:u?1:Id.edgeLengthFactor,nodeSep:u?1:50,ranker:"tight-tree",isMultiGraph:!0}),c.setDefaultEdgeLabel((function(){return{}})),o.db.extract(t);const d=o.db.getStates(),h=o.db.getRelations(),f=Object.keys(d);for(const s of f){const t=d[s];let l;if(n&&(t.parentId=n),t.doc){let n=e.append("g").attr("id",t.id).attr("class","stateGroup");l=Od(t.doc,n,t.id,!i,a,r,o);{n=Sd(n,t,i);let e=n.node().getBBox();l.width=e.width,l.height=e.height+Id.padding/2,Ld[t.id]={y:Id.compositTitleSize}}}else l=Ad(e,t);if(t.note){const n={descriptions:[],id:t.id+"-note",note:t.note,type:"note"},i=Ad(e,n);"left of"===t.note.position?(c.setNode(l.id+"-note",i),c.setNode(l.id,l)):(c.setNode(l.id,l),c.setNode(l.id+"-note",i)),c.setParent(l.id,l.id+"-group"),c.setParent(l.id+"-note",l.id+"-group")}else c.setNode(l.id,l)}Dt.debug("Count=",c.nodeCount(),c);let g=0;h.forEach((function(t){var e;g++,Dt.debug("Setting edge",t),c.setEdge(t.id1,t.id2,{relation:t,width:(e=t.title,e?e.length*Id.fontSizeFactor:1),height:Id.labelHeight*zt.getRows(t.title).length,labelpos:"c"},"id"+g)})),(0,ct.bK)(c),Dt.debug("Graph after layout",c.nodes());const p=e.node();c.nodes().forEach((function(t){if(void 0!==t&&void 0!==c.node(t)){Dt.warn("Node "+t+": "+JSON.stringify(c.node(t))),a.select("#"+p.id+" #"+t).attr("transform","translate("+(c.node(t).x-c.node(t).width/2)+","+(c.node(t).y+(Ld[t]?Ld[t].y:0)-c.node(t).height/2)+" )"),a.select("#"+p.id+" #"+t).attr("data-x-shift",c.node(t).x-c.node(t).width/2);r.querySelectorAll("#"+p.id+" #"+t+" .divider").forEach((t=>{const e=t.parentElement;let n=0,i=0;e&&(e.parentElement&&(n=e.parentElement.getBBox().width),i=parseInt(e.getAttribute("data-x-shift"),10),Number.isNaN(i)&&(i=0)),t.setAttribute("x1",0-i+8),t.setAttribute("x2",n-i-8)}))}else Dt.debug("No Node "+t+": "+JSON.stringify(c.node(t)))}));let b=p.getBBox();c.edges().forEach((function(t){void 0!==t&&void 0!==c.edge(t)&&(Dt.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(c.edge(t))),function(t,e,n){e.points=e.points.filter((t=>!Number.isNaN(t.y)));const i=e.points,a=(0,s.jvg)().x((function(t){return t.x})).y((function(t){return t.y})).curve(s.$0Z),r=t.append("path").attr("d",a(i)).attr("id","edge"+Dd).attr("class","transition");let o="";if(ai().state.arrowMarkerAbsolute&&(o=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,o=o.replace(/\(/g,"\\("),o=o.replace(/\)/g,"\\)")),r.attr("marker-end","url("+o+"#"+function(t){switch(t){case _d.relationType.AGGREGATION:return"aggregation";case _d.relationType.EXTENSION:return"extension";case _d.relationType.COMPOSITION:return"composition";case _d.relationType.DEPENDENCY:return"dependency"}}(_d.relationType.DEPENDENCY)+"End)"),void 0!==n.title){const i=t.append("g").attr("class","stateLabel"),{x:a,y:r}=Gn.calcLabelPosition(e.points),o=zt.getRows(n.title);let s=0;const c=[];let l=0,u=0;for(let t=0;t<=o.length;t++){const e=i.append("text").attr("text-anchor","middle").text(o[t]).attr("x",a).attr("y",r+s),n=e.node().getBBox();if(l=Math.max(l,n.width),u=Math.min(u,n.x),Dt.info(n.x,a,r+s),0===s){const t=e.node().getBBox();s=t.height,Dt.info("Title height",s,r)}c.push(e)}let d=s*o.length;if(o.length>1){const t=(o.length-1)*s*.5;c.forEach(((e,n)=>e.attr("y",r+n*s-t))),d=s*o.length}const h=i.node().getBBox();i.insert("rect",":first-child").attr("class","box").attr("x",a-l/2-ai().state.padding/2).attr("y",r-d/2-ai().state.padding/2-3.5).attr("width",l+ai().state.padding).attr("height",d+ai().state.padding),Dt.info(h)}Dd++}(e,c.edge(t),c.edge(t).relation))})),b=p.getBBox();const m={id:n||"root",label:n||"root",width:0,height:0};return m.width=b.width+2*Id.padding,m.height=b.height+2*Id.padding,Dt.debug("Doc rendered",m,c),m},Md={setConf:function(){},draw:function(t,e,n,i){Id=ai().state;const a=ai().securityLevel;let r;"sandbox"===a&&(r=(0,s.Ys)("#i"+e));const o="sandbox"===a?(0,s.Ys)(r.nodes()[0].contentDocument.body):(0,s.Ys)("body"),c="sandbox"===a?r.nodes()[0].contentDocument:document;Dt.debug("Rendering diagram "+t);const l=o.select(`[id='${e}']`);l.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z");new lt.k({multigraph:!0,compound:!0,rankdir:"RL"}).setDefaultEdgeLabel((function(){return{}}));const u=i.db.getRootDoc();Od(u,l,void 0,!1,o,c,i);const d=Id.padding,h=l.node().getBBox(),f=h.width+2*d,g=h.height+2*d;di(l,g,1.75*f,Id.useMaxWidth),l.attr("viewBox",`${h.x-Id.padding} ${h.y-Id.padding} `+f+" "+g)}},Nd="rect",Bd="rectWithTitle",Pd="statediagram",Fd="transition",jd="parent",$d="note",zd="----parent",Hd="fill:none",Ud="fill: #333",Vd="text",qd="normal";let Wd={},Yd=0;function Gd(t="",e=0,n="",i="----"){return`state-${t}${null!==n&&n.length>0?`${i}${n}`:""}-${e}`}const Zd=(t,e,n,i,a,r)=>{const o=n.id,s=null==(c=i[o])?"":c.classes?c.classes.join(" "):"";var c;if("root"!==o){let e=Nd;!0===n.start&&(e="start"),!1===n.start&&(e="end"),n.type!==Xu&&(e=n.type),Wd[o]||(Wd[o]={id:o,shape:e,description:zt.sanitizeText(o,ai()),classes:`${s} statediagram-state`});const i=Wd[o];n.description&&(Array.isArray(i.description)?(i.shape=Bd,i.description.push(n.description)):i.description.length>0?(i.shape=Bd,i.description===o?i.description=[n.description]:i.description=[i.description,n.description]):(i.shape=Nd,i.description=n.description),i.description=zt.sanitizeTextOrArray(i.description,ai())),1===i.description.length&&i.shape===Bd&&(i.shape=Nd),!i.type&&n.doc&&(Dt.info("Setting cluster for ",o,Xd(n)),i.type="group",i.dir=Xd(n),i.shape=n.type===Ju?"divider":"roundedWithTitle",i.classes=i.classes+" statediagram-cluster "+(r?"statediagram-cluster-alt":""));const a={labelStyle:"",shape:i.shape,labelText:i.description,classes:i.classes,style:"",id:o,dir:i.dir,domId:Gd(o,Yd),type:i.type,padding:15};if(n.note){const e={labelStyle:"",shape:"note",labelText:n.note.text,classes:"statediagram-note",style:"",id:o+"----note-"+Yd,domId:Gd(o,Yd,$d),type:i.type,padding:15},r={labelStyle:"",shape:"noteGroup",labelText:n.note.text,classes:i.classes,style:"",id:o+zd,domId:Gd(o,Yd,jd),type:"group",padding:0};Yd++;const s=o+zd;t.setNode(s,r),t.setNode(e.id,e),t.setNode(o,a),t.setParent(o,s),t.setParent(e.id,s);let c=o,l=e.id;"left of"===n.note.position&&(c=e.id,l=o),t.setEdge(c,l,{arrowhead:"none",arrowType:"",style:Hd,labelStyle:"",classes:"transition note-edge",arrowheadStyle:Ud,labelpos:"c",labelType:Vd,thickness:qd})}else t.setNode(o,a)}e&&"root"!==e.id&&(Dt.trace("Setting node ",o," to be child of its parent ",e.id),t.setParent(o,e.id)),n.doc&&(Dt.trace("Adding nodes children "),Kd(t,n,n.doc,i,a,!r))},Kd=(t,e,n,i,a,r)=>{Dt.trace("items",n),n.forEach((n=>{switch(n.stmt){case Zu:case Xu:Zd(t,e,n,i,a,r);break;case Ku:{Zd(t,e,n.state1,i,a,r),Zd(t,e,n.state2,i,a,r);const o={id:"edge"+Yd,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:Hd,labelStyle:"",label:zt.sanitizeText(n.description,ai()),arrowheadStyle:Ud,labelpos:"c",labelType:Vd,thickness:qd,classes:Fd};t.setEdge(n.state1.id,n.state2.id,o,Yd),Yd++}}}))},Xd=(t,e="TB")=>{let n=e;if(t.doc)for(let i=0;i<t.doc.length;i++){const e=t.doc[i];"dir"===e.stmt&&(n=e.value)}return n},Jd={setConf:function(t){const e=Object.keys(t);for(const n of e)t[n]},getClasses:function(t,e){Dt.trace("Extracting classes"),e.db.clear();try{return e.parser.parse(t),e.db.extract(e.db.getRootDocV2()),e.db.getClasses()}catch(n){return n}},draw:function(t,e,n,i){Dt.info("Drawing state diagram (v2)",e),Wd={};let a=i.db.getDirection();void 0===a&&(a="LR");const{securityLevel:r,state:o}=ai(),c=o.nodeSpacing||50,l=o.rankSpacing||50;Dt.info(i.db.getRootDocV2()),i.db.extract(i.db.getRootDocV2()),Dt.info(i.db.getRootDocV2());const u=i.db.getStates(),d=new lt.k({multigraph:!0,compound:!0}).setGraph({rankdir:Xd(i.db.getRootDocV2()),nodesep:c,ranksep:l,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));let h;Zd(d,void 0,i.db.getRootDocV2(),u,i.db,!0),"sandbox"===r&&(h=(0,s.Ys)("#i"+e));const f="sandbox"===r?(0,s.Ys)(h.nodes()[0].contentDocument.body):(0,s.Ys)("body"),g=f.select(`[id="${e}"]`),p=f.select("#"+e+" g");Wo(p,d,["barb"],Pd,e);Gn.insertTitle(g,"statediagramTitleText",o.titleTopMargin,i.db.getDiagramTitle());const b=g.node().getBBox(),m=b.width+16,y=b.height+16;g.attr("class",Pd);const v=g.node().getBBox();di(g,y,m,o.useMaxWidth);const w=`${v.x-8} ${v.y-8} ${m} ${y}`;Dt.debug(`viewBox ${w}`),g.attr("viewBox",w);const x=document.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const s of x){const t=s.getBBox(),e=document.createElementNS("http://www.w3.org/2000/svg",Nd);e.setAttribute("rx",0),e.setAttribute("ry",0),e.setAttribute("width",t.width),e.setAttribute("height",t.height),s.insertBefore(e,s.firstChild)}}};var Qd=function(){var t,e=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},n=[1,2],i=[1,5],a=[6,9,11,17,18,20,22,23,24,26],r=[1,15],o=[1,16],s=[1,17],c=[1,18],l=[1,19],u=[1,20],d=[1,24],h=[4,6,9,11,17,18,20,22,23,24,26],f={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,taskName:24,taskData:25,open_directive:26,type_directive:27,arg_directive:28,close_directive:29,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",24:"taskName",25:"taskData",26:"open_directive",27:"type_directive",28:"arg_directive",29:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 1:return r[s-1];case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:this.$=r[s];break;case 11:i.setDiagramTitle(r[s].substr(6)),this.$=r[s].substr(6);break;case 12:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 13:case 14:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 15:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 16:i.addTask(r[s-1],r[s]),this.$="task";break;case 18:i.parseDirective("%%{","open_directive");break;case 19:i.parseDirective(r[s],"type_directive");break;case 20:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 21:i.parseDirective("}%%","close_directive","journey")}},table:[{3:1,4:n,7:3,12:4,26:i},{1:[3]},e(a,[2,3],{5:6}),{3:7,4:n,7:3,12:4,26:i},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:r,18:o,20:s,22:c,23:l,24:u,26:i},{1:[2,2]},{14:22,15:[1,23],29:d},e([15,29],[2,19]),e(a,[2,8],{1:[2,1]}),e(a,[2,4]),{7:21,10:25,12:4,17:r,18:o,20:s,22:c,23:l,24:u,26:i},e(a,[2,6]),e(a,[2,7]),e(a,[2,11]),{19:[1,26]},{21:[1,27]},e(a,[2,14]),e(a,[2,15]),{25:[1,28]},e(a,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},e(a,[2,5]),e(a,[2,12]),e(a,[2,13]),e(a,[2,16]),e(h,[2,9]),{14:32,29:d},{29:[2,20]},{11:[1,33]},e(h,[2,10])],defaultActions:{5:[2,18],7:[2,2],24:[2,21],31:[2,20]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,void 0===f.yylloc&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:(null==v&&(v=y()),x=o[w]&&o[w][v]),void 0===x||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),void 0!==(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h))))return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},g=(t={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),26;case 1:return this.begin("type_directive"),27;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),29;case 4:return 28;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 24;case 21:return 25;case 22:return 15;case 23:return 6;case 24:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],inclusive:!0}}},t);function p(){this.yy={}}return f.lexer=g,p.prototype=f,f.Parser=p,new p}();Qd.parser=Qd;const th=Qd,eh=t=>null!==t.match(/^\s*journey/);let nh="";const ih=[],ah=[],rh=[],oh=function(){let t=!0;for(const[e,n]of rh.entries())rh[e].processed,t=t&&n.processed;return t},sh={parseDirective:function(t,e,n){rf.parseDirective(this,t,e,n)},getConfig:()=>ai().journey,clear:function(){ih.length=0,ah.length=0,nh="",rh.length=0,Ii()},setDiagramTitle:Bi,getDiagramTitle:Pi,setAccTitle:Li,getAccTitle:Oi,setAccDescription:Mi,getAccDescription:Ni,addSection:function(t){nh=t,ih.push(t)},getSections:function(){return ih},getTasks:function(){let t=oh();let e=0;for(;!t&&e<100;)t=oh(),e++;return ah.push(...rh),ah},addTask:function(t,e){const n=e.substr(1).split(":");let i=0,a=[];1===n.length?(i=Number(n[0]),a=[]):(i=Number(n[0]),a=n[1].split(","));const r=a.map((t=>t.trim())),o={section:nh,type:nh,people:r,task:t,score:i};rh.push(o)},addTaskOrg:function(t){const e={section:nh,type:nh,description:t,task:t,classes:[]};ah.push(e)},getActors:function(){return function(){const t=[];return ah.forEach((e=>{e.people&&t.push(...e.people)})),[...new Set(t)].sort()}()}},ch=function(t,e){const n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},lh=function(t,e){const n=t.append("circle");return n.attr("cx",e.cx),n.attr("cy",e.cy),n.attr("class","actor-"+e.pos),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("r",e.r),void 0!==n.class&&n.attr("class",n.class),void 0!==e.title&&n.append("title").text(e.title),n},uh=function(t,e){const n=e.text.replace(/<br\s*\/?>/gi," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.attr("class","legend"),i.style("text-anchor",e.anchor),void 0!==e.class&&i.attr("class",e.class);const a=i.append("tspan");return a.attr("x",e.x+2*e.textMargin),a.text(n),i};let dh=-1;const hh=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},fh=function(){function t(t,e,n,a,r,o,s,c){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("font-color",c).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c,l){const{taskFontSize:u,taskFontFamily:d}=c,h=t.split(/<br\s*\/?>/gi);for(let f=0;f<h.length;f++){const t=f*u-u*(h.length-1)/2,c=e.append("text").attr("x",n+r/2).attr("y",a).attr("fill",l).style("text-anchor","middle").style("font-size",u).style("font-family",d);c.append("tspan").attr("x",n+r/2).attr("dy",t).text(h[f]),c.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(c,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)n in e&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),gh=lh,ph=function(t,e,n){const i=t.append("g"),a=hh();a.x=e.x,a.y=e.y,a.fill=e.fill,a.width=n.width,a.height=n.height,a.class="journey-section section-type-"+e.num,a.rx=3,a.ry=3,ch(i,a),fh(n)(e.text,i,a.x,a.y,a.width,a.height,{class:"journey-section section-type-"+e.num},n,e.colour)},bh=uh,mh=function(t,e,n){const i=e.x+n.width/2,a=t.append("g");dh++;a.append("line").attr("id","task"+dh).attr("x1",i).attr("y1",e.y).attr("x2",i).attr("y2",450).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),function(t,e){const n=15,i=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",n).attr("stroke-width",2).attr("overflow","visible"),a=t.append("g");a.append("circle").attr("cx",e.cx-5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),a.append("circle").attr("cx",e.cx+5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),e.score>3?function(t){const i=(0,s.Nb1)().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(n/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}(a):e.score<3?function(t){const i=(0,s.Nb1)().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(n/2.2);t.append("path").attr("class","mouth").attr("d",i).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}(a):a.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}(a,{cx:i,cy:300+30*(5-e.score),score:e.score});const r=hh();r.x=e.x,r.y=e.y,r.fill=e.fill,r.width=n.width,r.height=n.height,r.class="task task-type-"+e.num,r.rx=3,r.ry=3,ch(a,r);let o=e.x+14;e.people.forEach((t=>{const n=e.actors[t].color,i={cx:o,cy:e.y,r:7,fill:n,stroke:"#000",title:t,pos:e.actors[t].position};lh(a,i),o+=10})),fh(n)(e.task,a,r.x,r.y,r.width,r.height,{class:"task"},n,e.colour)},yh=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},vh={};const wh=ai().journey,xh=wh.leftMargin,Rh={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,e,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])},updateBounds:function(t,e,n,i){const a=ai().journey,r=this;let o=0;var s;this.sequenceItems.forEach((function(c){o++;const l=r.sequenceItems.length-o+1;r.updateVal(c,"starty",e-l*a.boxMargin,Math.min),r.updateVal(c,"stopy",i+l*a.boxMargin,Math.max),r.updateVal(Rh.data,"startx",t-l*a.boxMargin,Math.min),r.updateVal(Rh.data,"stopx",n+l*a.boxMargin,Math.max),"activation"!==s&&(r.updateVal(c,"startx",t-l*a.boxMargin,Math.min),r.updateVal(c,"stopx",n+l*a.boxMargin,Math.max),r.updateVal(Rh.data,"starty",e-l*a.boxMargin,Math.min),r.updateVal(Rh.data,"stopy",i+l*a.boxMargin,Math.max))}))},insert:function(t,e,n,i){const a=Math.min(t,n),r=Math.max(t,n),o=Math.min(e,i),s=Math.max(e,i);this.updateVal(Rh.data,"startx",a,Math.min),this.updateVal(Rh.data,"starty",o,Math.min),this.updateVal(Rh.data,"stopx",r,Math.max),this.updateVal(Rh.data,"stopy",s,Math.max),this.updateBounds(a,o,r,s)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},_h=wh.sectionFills,kh=wh.sectionColours,Eh=function(t,e,n){const i=ai().journey;let a="";const r=n+(2*i.height+i.diagramMarginY);let o=0,s="#CCC",c="black",l=0;for(const[u,d]of e.entries()){if(a!==d.section){s=_h[o%_h.length],l=o%_h.length,c=kh[o%kh.length];const e={x:u*i.taskMargin+u*i.width+xh,y:50,text:d.section,fill:s,num:l,colour:c};ph(t,e,i),a=d.section,o++}const e=d.people.reduce(((t,e)=>(vh[e]&&(t[e]=vh[e]),t)),{});d.x=u*i.taskMargin+u*i.width+xh,d.y=r,d.width=i.diagramMarginX,d.height=i.diagramMarginY,d.colour=c,d.fill=s,d.num=l,d.actors=e,mh(t,d,i),Rh.insert(d.x,d.y,d.x+d.width+i.taskMargin,450)}},Ch={setConf:function(t){Object.keys(t).forEach((function(e){wh[e]=t[e]}))},draw:function(t,e,n,i){const a=ai().journey;i.db.clear(),i.parser.parse(t+"\n");const r=ai().securityLevel;let o;"sandbox"===r&&(o=(0,s.Ys)("#i"+e));const c="sandbox"===r?(0,s.Ys)(o.nodes()[0].contentDocument.body):(0,s.Ys)("body");Rh.init();const l=c.select("#"+e);yh(l);const u=i.db.getTasks(),d=i.db.getDiagramTitle(),h=i.db.getActors();for(const s in vh)delete vh[s];let f=0;h.forEach((t=>{vh[t]={color:a.actorColours[f%a.actorColours.length],position:f},f++})),function(t){const e=ai().journey;let n=60;Object.keys(vh).forEach((i=>{const a=vh[i].color,r={cx:20,cy:n,r:7,fill:a,stroke:"#000",pos:vh[i].position};gh(t,r);const o={x:40,y:n+7,fill:"#666",text:i,textMargin:5|e.boxTextMargin};bh(t,o),n+=20}))}(l),Rh.insert(0,0,xh,50*Object.keys(vh).length),Eh(l,u,0);const g=Rh.getBounds();d&&l.append("text").text(d).attr("x",xh).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const p=g.stopy-g.starty+2*a.diagramMarginY,b=xh+g.stopx+2*a.diagramMarginX;di(l,p,b,a.useMaxWidth),l.append("line").attr("x1",xh).attr("y1",4*a.height).attr("x2",b-xh-4).attr("y2",4*a.height).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const m=d?70:0;l.attr("viewBox",`${g.startx} -25 ${b} ${p+m}`),l.attr("preserveAspectRatio","xMinYMin meet"),l.attr("height",p+m+25)}};let Sh={};const Th={setConf:function(t){Sh={...Sh,...t}},draw:(t,e,n)=>{try{Dt.debug("Renering svg for syntax error\n");const t=(0,s.Ys)("#"+e),i=t.append("g");i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in graph"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text("mermaid version "+n),t.attr("height",100),t.attr("width",500),t.attr("viewBox","768 0 912 512")}catch(a){Dt.error("Error while rendering info diagram"),Dt.error((i=a)instanceof Error?i.message:String(i))}var i}},Ah="flowchart-elk",Dh={id:Ah,detector:(t,e)=>{var n;return!!(t.match(/^\s*flowchart-elk/)||t.match(/^\s*flowchart|graph/)&&"elk"===(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer))},loader:async()=>{const{diagram:t}=await n.e(9487).then(n.bind(n,19487));return{id:Ah,diagram:t}}},Ih="timeline",Lh={id:Ih,detector:t=>null!==t.match(/^\s*timeline/),loader:async()=>{const{diagram:t}=await n.e(6316).then(n.bind(n,96316));return{id:Ih,diagram:t}}},Oh="mindmap",Mh={id:Oh,detector:t=>null!==t.match(/^\s*mindmap/),loader:async()=>{const{diagram:t}=await n.e(7724).then(n.bind(n,47724));return{id:Oh,diagram:t}}};let Nh=!1;const Bh=()=>{Nh||(Nh=!0,_n(Dh,Lh,Mh),Ki("error",{db:{clear:()=>{}},styles:pi,renderer:Th,parser:{parser:{yy:{}},parse:()=>{}},init:()=>{}},(t=>"error"===t.toLowerCase().trim())),Ki("---",{db:{clear:()=>{}},styles:pi,renderer:Th,parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with unindented `---` blocks")}},init:()=>null},(t=>t.toLowerCase().trimStart().startsWith("---"))),Ki("c4",{parser:Na,db:Ka,renderer:Tr,styles:ki,init:t=>{Tr.setConf(t.c4)}},Ba),Ki("class",{parser:Dr,db:Gr,renderer:so,styles:fi,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Gr.clear()}},Ir),Ki("classDiagram",{parser:Dr,db:Gr,renderer:Ko,styles:fi,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Gr.clear()}},Lr),Ki("er",{parser:Jo,db:is,renderer:ps,styles:gi},Qo),Ki("gantt",{parser:kc,db:il,renderer:ol,styles:mi},Ec),Ki("info",{parser:cl,db:dl,renderer:hl,styles:yi},fl),Ki("pie",{parser:pl,db:vl,renderer:_l,styles:vi},bl),Ki("requirement",{parser:El,db:Ll,renderer:Ul,styles:wi},Cl),Ki("sequence",{parser:ql,db:hu,renderer:Vu,styles:xi,init:t=>{if(t.sequence||(t.sequence={}),t.sequence.arrowMarkerAbsolute=t.arrowMarkerAbsolute,"sequenceDiagram"in t)throw new Error("`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.");hu.setWrap(t.wrap),Vu.setConf(t.sequence)}},Wl),Ki("state",{parser:Wu,db:_d,renderer:Md,styles:Ri,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,_d.clear()}},Yu),Ki("stateDiagram",{parser:Wu,db:_d,renderer:Jd,styles:Ri,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,_d.clear()}},Gu),Ki("journey",{parser:th,db:sh,renderer:Ch,styles:_i,init:t=>{Ch.setConf(t.journey),sh.clear()}},eh),Ki("flowchart",{parser:ms,db:pc,renderer:Rc,styles:bi,init:t=>{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,yc(t.flowchart),pc.clear(),pc.setGen("gen-1")}},ys),Ki("flowchart-v2",{parser:ms,db:pc,renderer:Rc,styles:bi,init:t=>{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,ii({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}}),Rc.setConf(t.flowchart),pc.clear(),pc.setGen("gen-2")}},vs),Ki("gitGraph",{parser:Qi,db:ma,renderer:La,styles:Oa},ta))};class Ph{constructor(t,e){var n,i;this.txt=t,this.type="graph",this.detectTypeFailed=!1;const a=ai();this.txt=t;try{this.type=Rn(t,a)}catch(s){this.handleError(s,e),this.type="error",this.detectTypeFailed=!0}const r=Xi(this.type);Dt.debug("Type "+this.type),this.db=r.db,null==(i=(n=this.db).clear)||i.call(n),this.renderer=r.renderer,this.parser=r.parser;const o=this.parser.parse.bind(this.parser);this.parser.parse=t=>o(function(t,e){var n;const i=t.match(yn);if(i){const a=mn(i[1],{schema:bn});return(null==a?void 0:a.title)&&(null==(n=e.setDiagramTitle)||n.call(e,a.title)),t.slice(i[0].length)}return t}(t,this.db)),this.parser.parser.yy=this.db,r.init&&(r.init(a),Dt.info("Initialized diagram "+this.type,a)),this.txt+="\n",this.parse(this.txt,e)}parse(t,e){var n,i;if(this.detectTypeFailed)return!1;try{return t+="\n",null==(i=(n=this.db).clear)||i.call(n),this.parser.parse(t),!0}catch(a){this.handleError(a,e)}return!1}handleError(t,e){if(void 0===e)throw t;Wn(t)?e(t.str,t.hash):e(t)}getParser(){return this.parser}getType(){return this.type}}const Fh=(t,e)=>{const n=Rn(t,ai());try{Xi(n)}catch(i){const a=xn[n].loader;if(!a)throw new Error(`Diagram ${n} not found.`);return a().then((({diagram:i})=>(Ki(n,i,void 0),new Ph(t,e))))}return new Ph(t,e)},jh=Ph;const $h=["graph","flowchart","flowchart-v2","stateDiagram","stateDiagram-v2"],zh="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",Hh="sandbox",Uh="loose",Vh="http://www.w3.org/1999/xlink",qh="http://www.w3.org/1999/xhtml",Wh=["foreignobject"],Yh=["dominant-baseline"];const Gh=function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)})),e=e.replace(/classDef.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)})),e=e.replace(/#\w+;/g,(function(t){const e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"\ufb02\xb0\xb0"+e+"\xb6\xdf":"\ufb02\xb0"+e+"\xb6\xdf"})),e},Zh=function(t){let e=t;return e=e.replace(/\ufb02\xb0\xb0/g,"&#"),e=e.replace(/\ufb02\xb0/g,"&"),e=e.replace(/\xb6\xdf/g,";"),e},Kh=(t,e,n=[])=>`\n.${t} ${e} { ${n.join(" !important; ")} !important; }`,Xh=(t,e,n,i)=>{const a=((t,e,n={})=>{var i;let a="";if(void 0!==t.themeCSS&&(a+=`\n${t.themeCSS}`),void 0!==t.fontFamily&&(a+=`\n:root { --mermaid-font-family: ${t.fontFamily}}`),void 0!==t.altFontFamily&&(a+=`\n:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!(0,Tt.Z)(n)&&$h.includes(e)){const e=["> *","span"],r=["rect","polygon","ellipse","circle","path"],o=t.htmlLabels||(null==(i=t.flowchart)?void 0:i.htmlLabels)?e:r;for(const t in n){const e=n[t];(0,Tt.Z)(e.styles)||o.forEach((t=>{a+=Kh(e.id,t,e.styles)})),(0,Tt.Z)(e.textStyles)||(a+=Kh(e.id,"tspan",e.textStyles))}}return a})(t,e,n);return M(it(`${i}{${Ci(e,a,t.themeVariables)}}`),N)},Jh=(t="",e,n)=>{let i=t;return n||e||(i=i.replace(/marker-end="url\(.*?#/g,'marker-end="url(#')),i=Zh(i),i=i.replace(/<br>/g,"<br/>"),i},Qh=(t="",e)=>`<iframe style="width:100%;height:${e?e.viewBox.baseVal.height+"px":"100%"};border:0;margin:0;" src="data:text/html;base64,${btoa('<body style="margin:0">'+t+"</body>")}" sandbox="allow-top-navigation-by-user-activation allow-popups">\n The "iframe" tag is not supported by your browser.\n</iframe>`,tf=(t,e,n,i,a)=>{const r=t.append("div");r.attr("id",n),i&&r.attr("style",i);const o=r.append("svg").attr("id",e).attr("width","100%").attr("xmlns","http://www.w3.org/2000/svg");return a&&o.attr("xmlns:xlink",a),o.append("g"),t};function ef(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const nf=(t,e,n,i)=>{var a,r,o;null==(a=t.getElementById(e))||a.remove(),null==(r=t.getElementById(n))||r.remove(),null==(o=t.getElementById(i))||o.remove()};function af(t,e,n,i){var a,r;r=t,(a=e).attr("role","graphics-document document"),(0,Tt.Z)(r)||a.attr("aria-roledescription",r),function(t,e,n,i){if(void 0!==t.insert&&(e||n)){if(n){const e="chart-desc-"+i;t.attr("aria-describedby",e),t.insert("desc",":first-child").attr("id",e).text(n)}if(e){const n="chart-title-"+i;t.attr("aria-labelledby",n),t.insert("title",":first-child").attr("id",n).text(e)}}}(e,n,i,e.attr("id"))}const rf=Object.freeze({render:function(t,e,n,i){var a,r,o,c;Bh(),si();const l=Gn.detectInit(e);l&&(Vn(l),oi(l));const d=ai();Dt.debug(d),e.length>((null==d?void 0:d.maxTextSize)??5e4)&&(e=zh),e=e.replace(/\r\n?/g,"\n");const h="#"+t,f="i"+t,g="#"+f,p="d"+t,b="#"+p;let m=(0,s.Ys)("body");const y=d.securityLevel===Hh,v=d.securityLevel===Uh,w=d.fontFamily;if(void 0!==i){if(i&&(i.innerHTML=""),y){const t=ef((0,s.Ys)(i),f);m=(0,s.Ys)(t.nodes()[0].contentDocument.body),m.node().style.margin=0}else m=(0,s.Ys)(i);tf(m,t,p,`font-family: ${w}`,Vh)}else{if(nf(document,t,p,f),y){const t=ef((0,s.Ys)("body"),f);m=(0,s.Ys)(t.nodes()[0].contentDocument.body),m.node().style.margin=0}else m=(0,s.Ys)("body");tf(m,t,p)}let x,R;e=Gh(e);try{if(x=Fh(e),"then"in x)throw new Error("Diagram is a promise. Use renderAsync.")}catch(O){x=new jh("error"),R=O}const _=m.select(b).node(),k=x.type,E=_.firstChild,C=E.firstChild,S=$h.includes(k)?x.renderer.getClasses(e,x):{},T=Xh(d,k,S,h),A=document.createElement("style");A.innerHTML=T,E.insertBefore(A,C);try{x.renderer.draw(e,t,Zn,x)}catch(M){throw Th.draw(e,t,Zn),M}af(k,m.select(`${b} svg`),null==(r=(a=x.db).getAccTitle)?void 0:r.call(a),null==(c=(o=x.db).getAccDescription)?void 0:c.call(o)),m.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",qh);let D=m.select(b).node().innerHTML;if(Dt.debug("config.arrowMarkerAbsolute",d.arrowMarkerAbsolute),D=Jh(D,y,jt(d.arrowMarkerAbsolute)),y){const t=m.select(b+" svg").node();D=Qh(D,t)}else v||(D=u().sanitize(D,{ADD_TAGS:Wh,ADD_ATTR:Yh}));if(void 0!==n)switch(k){case"flowchart":case"flowchart-v2":n(D,pc.bindFunctions);break;case"gantt":n(D,il.bindFunctions);break;case"class":case"classDiagram":n(D,Gr.bindFunctions);break;default:n(D)}else Dt.debug("CB = undefined!");gu();const I=y?g:b,L=(0,s.Ys)(I).node();if(L&&"remove"in L&&L.remove(),R)throw R;return D},renderAsync:async function(t,e,n,i){var a,r,o,c;Bh(),si();const l=Gn.detectInit(e);l&&(Vn(l),oi(l));const d=ai();Dt.debug(d),e.length>((null==d?void 0:d.maxTextSize)??5e4)&&(e=zh),e=e.replace(/\r\n?/g,"\n");const h="#"+t,f="i"+t,g="#"+f,p="d"+t,b="#"+p;let m=(0,s.Ys)("body");const y=d.securityLevel===Hh,v=d.securityLevel===Uh,w=d.fontFamily;if(void 0!==i){if(i&&(i.innerHTML=""),y){const t=ef((0,s.Ys)(i),f);m=(0,s.Ys)(t.nodes()[0].contentDocument.body),m.node().style.margin=0}else m=(0,s.Ys)(i);tf(m,t,p,`font-family: ${w}`,Vh)}else{if(nf(document,t,p,f),y){const t=ef((0,s.Ys)("body"),f);m=(0,s.Ys)(t.nodes()[0].contentDocument.body),m.node().style.margin=0}else m=(0,s.Ys)("body");tf(m,t,p)}let x,R;e=Gh(e);try{x=await Fh(e)}catch(O){x=new jh("error"),R=O}const _=m.select(b).node(),k=x.type,E=_.firstChild,C=E.firstChild,S=$h.includes(k)?x.renderer.getClasses(e,x):{},T=Xh(d,k,S,h),A=document.createElement("style");A.innerHTML=T,E.insertBefore(A,C);try{await x.renderer.draw(e,t,Zn,x)}catch(M){throw Th.draw(e,t,Zn),M}af(k,m.select(`${b} svg`),null==(r=(a=x.db).getAccTitle)?void 0:r.call(a),null==(c=(o=x.db).getAccDescription)?void 0:c.call(o)),m.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",qh);let D=m.select(b).node().innerHTML;if(Dt.debug("config.arrowMarkerAbsolute",d.arrowMarkerAbsolute),D=Jh(D,y,jt(d.arrowMarkerAbsolute)),y){const t=m.select(b+" svg").node();D=Qh(D,t)}else v||(D=u().sanitize(D,{ADD_TAGS:Wh,ADD_ATTR:Yh}));if(void 0!==n)switch(k){case"flowchart":case"flowchart-v2":n(D,pc.bindFunctions);break;case"gantt":n(D,il.bindFunctions);break;case"class":case"classDiagram":n(D,Gr.bindFunctions);break;default:n(D)}else Dt.debug("CB = undefined!");gu();const I=y?g:b,L=(0,s.Ys)(I).node();if(L&&"remove"in L&&L.remove(),R)throw R;return D},parse:function(t,e){return Bh(),new jh(t,e).parse(t,e)},parseAsync:async function(t,e){return Bh(),(await Fh(t,e)).parse(t,e)},parseDirective:zi,initialize:function(t={}){var e;(null==t?void 0:t.fontFamily)&&!(null==(e=t.themeVariables)?void 0:e.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),Xn=Cn({},t),(null==t?void 0:t.theme)&&t.theme in Wt?t.themeVariables=Wt[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=Wt.default.getThemeVariables(t.themeVariables));const n="object"==typeof t?(t=>(Jn=Cn({},Kn),Jn=Cn(Jn,t),t.theme&&Wt[t.theme]&&(Jn.themeVariables=Wt[t.theme].getThemeVariables(t.themeVariables)),ei(Jn,Qn),Jn))(t):ni();It(n.logLevel),Bh()},getConfig:ai,setConfig:ii,getSiteConfig:ni,updateSiteConfig:t=>(Jn=Cn(Jn,t),ei(Jn,Qn),Jn),reset:()=>{si()},globalReset:()=>{si(Kn)},defaultConfig:Kn});It(ai().logLevel),si(ai());const of=(t,e,n)=>{Dt.warn(t),Wn(t)?(n&&n(t.str,t.hash),e.push({...t,message:t.str,error:t})):(n&&n(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},sf=async function(t,e,n){const a=rf.getConfig();let r;if(t&&(hf.sequenceConfig=t),Dt.debug((n?"":"No ")+"Callback function found"),void 0===e)r=document.querySelectorAll(".mermaid");else if("string"==typeof e)r=document.querySelectorAll(e);else if(e instanceof HTMLElement)r=[e];else{if(!(e instanceof NodeList))throw new Error("Invalid argument nodes for mermaid.init");r=e}Dt.debug(`Found ${r.length} diagrams`),void 0!==(null==t?void 0:t.startOnLoad)&&(Dt.debug("Start On Load: "+(null==t?void 0:t.startOnLoad)),rf.updateSiteConfig({startOnLoad:null==t?void 0:t.startOnLoad}));const o=new Gn.initIdGenerator(a.deterministicIds,a.deterministicIDSeed);let s;const c=[];for(const u of Array.from(r)){if(Dt.info("Rendering diagram: "+u.id),u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");const t=`mermaid-${o.next()}`;s=u.innerHTML,s=i(Gn.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");const e=Gn.detectInit(s);e&&Dt.debug("Detected early reinit: ",e);try{await rf.renderAsync(t,s,((e,i)=>{u.innerHTML=e,void 0!==n&&n(t),i&&i(u)}),u)}catch(l){of(l,c,hf.parseError)}}if(c.length>0)throw c[0]},cf=function(){if(hf.startOnLoad){const{startOnLoad:t}=rf.getConfig();t&&hf.init().catch((t=>Dt.error("Mermaid failed to initialize",t)))}};"undefined"!=typeof document&&window.addEventListener("load",cf,!1);const lf=[];let uf=!1;const df=async()=>{if(!uf){for(uf=!0;lf.length>0;){const e=lf.shift();if(e)try{await e()}catch(t){Dt.error("Error executing queue",t)}}uf=!1}},hf={startOnLoad:!0,diagrams:{},mermaidAPI:rf,parse:t=>rf.parse(t,hf.parseError),parseAsync:t=>new Promise(((e,n)=>{lf.push((()=>new Promise(((i,a)=>{rf.parseAsync(t,hf.parseError).then((t=>{i(t),e(t)}),(t=>{Dt.error("Error parsing",t),a(t),n(t)}))})))),df().catch(n)})),render:rf.render,renderAsync:(t,e,n,i)=>new Promise(((a,r)=>{lf.push((()=>new Promise(((o,s)=>{rf.renderAsync(t,e,n,i).then((t=>{o(t),a(t)}),(t=>{Dt.error("Error parsing",t),s(t),r(t)}))})))),df().catch(r)})),init:async function(t,e,n){try{await sf(t,e,n)}catch(i){Dt.warn("Syntax Error rendering"),Wn(i)&&Dt.warn(i.str),hf.parseError&&hf.parseError(i)}},initThrowsErrors:function(t,e,n){const a=rf.getConfig();let r;if(t&&(hf.sequenceConfig=t),Dt.debug((n?"":"No ")+"Callback function found"),void 0===e)r=document.querySelectorAll(".mermaid");else if("string"==typeof e)r=document.querySelectorAll(e);else if(e instanceof HTMLElement)r=[e];else{if(!(e instanceof NodeList))throw new Error("Invalid argument nodes for mermaid.init");r=e}Dt.debug(`Found ${r.length} diagrams`),void 0!==(null==t?void 0:t.startOnLoad)&&(Dt.debug("Start On Load: "+(null==t?void 0:t.startOnLoad)),rf.updateSiteConfig({startOnLoad:null==t?void 0:t.startOnLoad}));const o=new Gn.initIdGenerator(a.deterministicIds,a.deterministicIDSeed);let s;const c=[];for(const u of Array.from(r)){if(Dt.info("Rendering diagram: "+u.id),u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");const t=`mermaid-${o.next()}`;s=u.innerHTML,s=i(Gn.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");const e=Gn.detectInit(s);e&&Dt.debug("Detected early reinit: ",e);try{rf.render(t,s,((e,i)=>{u.innerHTML=e,void 0!==n&&n(t),i&&i(u)}),u)}catch(l){of(l,c,hf.parseError)}}if(c.length>0)throw c[0]},initThrowsErrorsAsync:sf,registerExternalDiagrams:async(t,{lazyLoad:e=!0}={})=>{e?_n(...t):await(async(...t)=>{Dt.debug(`Loading ${t.length} external diagrams`);const e=(await Promise.allSettled(t.map((async({id:t,detector:e,loader:n})=>{const{diagram:i}=await n();Ki(t,i,e)})))).filter((t=>"rejected"===t.status));if(e.length>0){Dt.error(`Failed to load ${e.length} external diagrams`);for(const t of e)Dt.error(t);throw new Error(`Failed to load ${e.length} external diagrams`)}})(...t)},initialize:function(t){rf.initialize(t)},parseError:void 0,contentLoaded:cf,setParseErrorHandler:function(t){hf.parseError=t}}},33231:function(t,e,n){(t=n.nmd(t)).exports=function(){"use strict";function i(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];var i=Array.from("string"==typeof t?[t]:t);i[i.length-1]=i[i.length-1].replace(/\r?\n([\t ]*)$/,"");var a=i.reduce((function(t,e){var n=e.match(/\n([\t ]+|(?!\s).)/g);return n?t.concat(n.map((function(t){var e,n;return null!==(n=null===(e=t.match(/[\t ]/g))||void 0===e?void 0:e.length)&&void 0!==n?n:0}))):t}),[]);if(a.length){var r=new RegExp("\n[\t ]{"+Math.min.apply(Math,a)+"}","g");i=i.map((function(t){return t.replace(r,"\n")}))}i[0]=i[0].replace(/^\r?\n/,"");var o=i[0];return e.forEach((function(t,e){var n=o.match(/(?:^|\n)( *)$/),a=n?n[1]:"",r=t;"string"==typeof t&&t.includes("\n")&&(r=String(t).split("\n").map((function(t,e){return 0===e?t:""+a+t})).join("\n")),o+=r+i[e+1]})),o}var a=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof n.g<"u"?n.g:typeof self<"u"?self:{};function r(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var o,s={};o=function(){var t=1e3,e=6e4,n=36e5,i="millisecond",a="second",r="minute",o="hour",s="day",c="week",l="month",u="quarter",d="year",h="date",f="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,p=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,b={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var i=String(t);return!i||i.length>=e?t:""+Array(e+1-i.length).join(n)+t},y={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),i=Math.floor(n/60),a=n%60;return(e<=0?"+":"-")+m(i,2,"0")+":"+m(a,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var i=12*(n.year()-e.year())+(n.month()-e.month()),a=e.clone().add(i,l),r=n-a<0,o=e.clone().add(i+(r?-1:1),l);return+(-(i+(n-a)/(r?a-o:o-a))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:l,y:d,w:c,d:s,D:h,h:o,m:r,s:a,ms:i,Q:u}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},v="en",w={};w[v]=b;var x=function(t){return t instanceof E},R=function t(e,n,i){var a;if(!e)return v;if("string"==typeof e){var r=e.toLowerCase();w[r]&&(a=r),n&&(w[r]=n,a=r);var o=e.split("-");if(!a&&o.length>1)return t(o[0])}else{var s=e.name;w[s]=e,a=s}return!i&&a&&(v=a),a||!i&&v},_=function(t,e){if(x(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new E(n)},k=y;k.l=R,k.i=x,k.w=function(t,e){return _(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var E=function(){function b(t){this.$L=R(t.locale,null,!0),this.parse(t)}var m=b.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(k.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var i=e.match(g);if(i){var a=i[2]-1||0,r=(i[7]||"0").substring(0,3);return n?new Date(Date.UTC(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,r)):new Date(i[1],a,i[3]||1,i[4]||0,i[5]||0,i[6]||0,r)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return k},m.isValid=function(){return this.$d.toString()!==f},m.isSame=function(t,e){var n=_(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return _(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<_(t)},m.$g=function(t,e,n){return k.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,i=!!k.u(e)||e,u=k.p(t),f=function(t,e){var a=k.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return i?a:a.endOf(s)},g=function(t,e){return k.w(n.toDate()[t].apply(n.toDate("s"),(i?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},p=this.$W,b=this.$M,m=this.$D,y="set"+(this.$u?"UTC":"");switch(u){case d:return i?f(1,0):f(31,11);case l:return i?f(1,b):f(0,b+1);case c:var v=this.$locale().weekStart||0,w=(p<v?p+7:p)-v;return f(i?m-w:m+(6-w),b);case s:case h:return g(y+"Hours",0);case o:return g(y+"Minutes",1);case r:return g(y+"Seconds",2);case a:return g(y+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,c=k.p(t),u="set"+(this.$u?"UTC":""),f=(n={},n[s]=u+"Date",n[h]=u+"Date",n[l]=u+"Month",n[d]=u+"FullYear",n[o]=u+"Hours",n[r]=u+"Minutes",n[a]=u+"Seconds",n[i]=u+"Milliseconds",n)[c],g=c===s?this.$D+(e-this.$W):e;if(c===l||c===d){var p=this.clone().set(h,1);p.$d[f](g),p.init(),this.$d=p.set(h,Math.min(this.$D,p.daysInMonth())).$d}else f&&this.$d[f](g);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[k.p(t)]()},m.add=function(i,u){var h,f=this;i=Number(i);var g=k.p(u),p=function(t){var e=_(f);return k.w(e.date(e.date()+Math.round(t*i)),f)};if(g===l)return this.set(l,this.$M+i);if(g===d)return this.set(d,this.$y+i);if(g===s)return p(1);if(g===c)return p(7);var b=(h={},h[r]=e,h[o]=n,h[a]=t,h)[g]||1,m=this.$d.getTime()+i*b;return k.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||f;var i=t||"YYYY-MM-DDTHH:mm:ssZ",a=k.z(this),r=this.$H,o=this.$m,s=this.$M,c=n.weekdays,l=n.months,u=function(t,n,a,r){return t&&(t[n]||t(e,i))||a[n].slice(0,r)},d=function(t){return k.s(r%12||12,t,"0")},h=n.meridiem||function(t,e,n){var i=t<12?"AM":"PM";return n?i.toLowerCase():i},g={YY:String(this.$y).slice(-2),YYYY:this.$y,M:s+1,MM:k.s(s+1,2,"0"),MMM:u(n.monthsShort,s,l,3),MMMM:u(l,s),D:this.$D,DD:k.s(this.$D,2,"0"),d:String(this.$W),dd:u(n.weekdaysMin,this.$W,c,2),ddd:u(n.weekdaysShort,this.$W,c,3),dddd:c[this.$W],H:String(r),HH:k.s(r,2,"0"),h:d(1),hh:d(2),a:h(r,o,!0),A:h(r,o,!1),m:String(o),mm:k.s(o,2,"0"),s:String(this.$s),ss:k.s(this.$s,2,"0"),SSS:k.s(this.$ms,3,"0"),Z:a};return i.replace(p,(function(t,e){return e||g[t]||a.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(i,h,f){var g,p=k.p(h),b=_(i),m=(b.utcOffset()-this.utcOffset())*e,y=this-b,v=k.m(this,b);return v=(g={},g[d]=v/12,g[l]=v,g[u]=v/3,g[c]=(y-m)/6048e5,g[s]=(y-m)/864e5,g[o]=y/n,g[r]=y/e,g[a]=y/t,g)[p]||y,f?v:k.a(v)},m.daysInMonth=function(){return this.endOf(l).$D},m.$locale=function(){return w[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),i=R(t,e,!0);return i&&(n.$L=i),n},m.clone=function(){return k.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},b}(),C=E.prototype;return _.prototype=C,[["$ms",i],["$s",a],["$m",r],["$H",o],["$W",s],["$M",l],["$y",d],["$D",h]].forEach((function(t){C[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),_.extend=function(t,e){return t.$i||(t(e,E,_),t.$i=!0),_},_.locale=R,_.isDayjs=x,_.unix=function(t){return _(1e3*t)},_.en=w[v],_.Ls=w,_.p={},_},{get exports(){return s},set exports(t){s=t}}.exports=o();const l=s,u={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},d={trace:(...t)=>{},debug:(...t)=>{},info:(...t)=>{},warn:(...t)=>{},error:(...t)=>{},fatal:(...t)=>{}},h=function(t="fatal"){let e=u.fatal;"string"==typeof t?(t=t.toLowerCase())in u&&(e=u[t]):"number"==typeof t&&(e=t),d.trace=()=>{},d.debug=()=>{},d.info=()=>{},d.warn=()=>{},d.error=()=>{},d.fatal=()=>{},e<=u.fatal&&(d.fatal=console.error?console.error.bind(console,f("FATAL"),"color: orange"):console.log.bind(console,"\x1b[35m",f("FATAL"))),e<=u.error&&(d.error=console.error?console.error.bind(console,f("ERROR"),"color: orange"):console.log.bind(console,"\x1b[31m",f("ERROR"))),e<=u.warn&&(d.warn=console.warn?console.warn.bind(console,f("WARN"),"color: orange"):console.log.bind(console,"\x1b[33m",f("WARN"))),e<=u.info&&(d.info=console.info?console.info.bind(console,f("INFO"),"color: lightblue"):console.log.bind(console,"\x1b[34m",f("INFO"))),e<=u.debug&&(d.debug=console.debug?console.debug.bind(console,f("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",f("DEBUG"))),e<=u.trace&&(d.trace=console.debug?console.debug.bind(console,f("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1b[32m",f("TRACE")))},f=t=>`%c${l().format("ss.SSS")} : ${t} : `;var g={};Object.defineProperty(g,"__esModule",{value:!0});var p=g.sanitizeUrl=void 0,b=/^([^\w]*)(javascript|data|vbscript)/im,m=/&#(\w+)(^\w|;)?/g,y=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,v=/^([^:]+):/gm,w=[".","/"];function x(t){return w.indexOf(t[0])>-1}function R(t){return t.replace(m,(function(t,e){return String.fromCharCode(e)}))}function _(t){var e=R(t||"").replace(y,"").trim();if(!e)return"about:blank";if(x(e))return e;var n=e.match(v);if(!n)return e;var i=n[0];return b.test(i)?"about:blank":e}function k(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function E(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function C(t){let e,n,i;function a(t,i,a=0,r=t.length){if(a<r){if(0!==e(i,i))return r;do{const e=a+r>>>1;n(t[e],i)<0?a=e+1:r=e}while(a<r)}return a}function r(t,i,a=0,r=t.length){if(a<r){if(0!==e(i,i))return r;do{const e=a+r>>>1;n(t[e],i)<=0?a=e+1:r=e}while(a<r)}return a}function o(t,e,n=0,r=t.length){const o=a(t,e,n,r-1);return o>n&&i(t[o-1],e)>-i(t[o],e)?o-1:o}return 2!==t.length?(e=k,n=(e,n)=>k(t(e),n),i=(e,n)=>t(e)-n):(e=t===k||t===E?t:S,n=t,i=t),{left:a,center:o,right:r}}function S(){return 0}function T(t){return null===t?NaN:+t}p=g.sanitizeUrl=_;const A=C(k).right;C(T).center;const D=A;class I extends Map{constructor(t,e=N){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(L(this,t))}has(t){return super.has(L(this,t))}set(t,e){return super.set(O(this,t),e)}delete(t){return super.delete(M(this,t))}}function L({_intern:t,_key:e},n){const i=e(n);return t.has(i)?t.get(i):n}function O({_intern:t,_key:e},n){const i=e(n);return t.has(i)?t.get(i):(t.set(i,n),n)}function M({_intern:t,_key:e},n){const i=e(n);return t.has(i)&&(n=t.get(i),t.delete(i)),n}function N(t){return null!==t&&"object"==typeof t?t.valueOf():t}var B=Math.sqrt(50),P=Math.sqrt(10),F=Math.sqrt(2);function j(t,e,n){var i,a,r,o,s=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((i=e<t)&&(a=t,t=e,e=a),0===(o=$(t,e,n))||!isFinite(o))return[];if(o>0){let n=Math.round(t/o),i=Math.round(e/o);for(n*o<t&&++n,i*o>e&&--i,r=new Array(a=i-n+1);++s<a;)r[s]=(n+s)*o}else{o=-o;let n=Math.round(t*o),i=Math.round(e*o);for(n/o<t&&++n,i/o>e&&--i,r=new Array(a=i-n+1);++s<a;)r[s]=(n+s)/o}return i&&r.reverse(),r}function $(t,e,n){var i=(e-t)/Math.max(0,n),a=Math.floor(Math.log(i)/Math.LN10),r=i/Math.pow(10,a);return a>=0?(r>=B?10:r>=P?5:r>=F?2:1)*Math.pow(10,a):-Math.pow(10,-a)/(r>=B?10:r>=P?5:r>=F?2:1)}function z(t,e,n){var i=Math.abs(e-t)/Math.max(0,n),a=Math.pow(10,Math.floor(Math.log(i)/Math.LN10)),r=i/a;return r>=B?a*=10:r>=P?a*=5:r>=F&&(a*=2),e<t?-a:a}function H(t,e){let n;if(void 0===e)for(const i of t)null!=i&&(n<i||void 0===n&&i>=i)&&(n=i);else{let i=-1;for(let a of t)null!=(a=e(a,++i,t))&&(n<a||void 0===n&&a>=a)&&(n=a)}return n}function U(t,e){let n;if(void 0===e)for(const i of t)null!=i&&(n>i||void 0===n&&i>=i)&&(n=i);else{let i=-1;for(let a of t)null!=(a=e(a,++i,t))&&(n>a||void 0===n&&a>=a)&&(n=a)}return n}function V(t){return t}var q=1,W=2,Y=3,G=4,Z=1e-6;function K(t){return"translate("+t+",0)"}function X(t){return"translate(0,"+t+")"}function J(t){return e=>+t(e)}function Q(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function tt(){return!this.__axis}function et(t,e){var n=[],i=null,a=null,r=6,o=6,s=3,c=typeof window<"u"&&window.devicePixelRatio>1?0:.5,l=t===q||t===G?-1:1,u=t===G||t===W?"x":"y",d=t===q||t===Y?K:X;function h(h){var f=i??(e.ticks?e.ticks.apply(e,n):e.domain()),g=a??(e.tickFormat?e.tickFormat.apply(e,n):V),p=Math.max(r,0)+s,b=e.range(),m=+b[0]+c,y=+b[b.length-1]+c,v=(e.bandwidth?Q:J)(e.copy(),c),w=h.selection?h.selection():h,x=w.selectAll(".domain").data([null]),R=w.selectAll(".tick").data(f,e).order(),_=R.exit(),k=R.enter().append("g").attr("class","tick"),E=R.select("line"),C=R.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),R=R.merge(k),E=E.merge(k.append("line").attr("stroke","currentColor").attr(u+"2",l*r)),C=C.merge(k.append("text").attr("fill","currentColor").attr(u,l*p).attr("dy",t===q?"0em":t===Y?"0.71em":"0.32em")),h!==w&&(x=x.transition(h),R=R.transition(h),E=E.transition(h),C=C.transition(h),_=_.transition(h).attr("opacity",Z).attr("transform",(function(t){return isFinite(t=v(t))?d(t+c):this.getAttribute("transform")})),k.attr("opacity",Z).attr("transform",(function(t){var e=this.parentNode.__axis;return d((e&&isFinite(e=e(t))?e:v(t))+c)}))),_.remove(),x.attr("d",t===G||t===W?o?"M"+l*o+","+m+"H"+c+"V"+y+"H"+l*o:"M"+c+","+m+"V"+y:o?"M"+m+","+l*o+"V"+c+"H"+y+"V"+l*o:"M"+m+","+c+"H"+y),R.attr("opacity",1).attr("transform",(function(t){return d(v(t)+c)})),E.attr(u+"2",l*r),C.attr(u,l*p).text(g),w.filter(tt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===W?"start":t===G?"end":"middle"),w.each((function(){this.__axis=v}))}return h.scale=function(t){return arguments.length?(e=t,h):e},h.ticks=function(){return n=Array.from(arguments),h},h.tickArguments=function(t){return arguments.length?(n=null==t?[]:Array.from(t),h):n.slice()},h.tickValues=function(t){return arguments.length?(i=null==t?null:Array.from(t),h):i&&i.slice()},h.tickFormat=function(t){return arguments.length?(a=t,h):a},h.tickSize=function(t){return arguments.length?(r=o=+t,h):r},h.tickSizeInner=function(t){return arguments.length?(r=+t,h):r},h.tickSizeOuter=function(t){return arguments.length?(o=+t,h):o},h.tickPadding=function(t){return arguments.length?(s=+t,h):s},h.offset=function(t){return arguments.length?(c=+t,h):c},h}function nt(t){return et(q,t)}function it(t){return et(Y,t)}var at={value:()=>{}};function rt(){for(var t,e=0,n=arguments.length,i={};e<n;++e){if(!(t=arguments[e]+"")||t in i||/[\s.]/.test(t))throw new Error("illegal type: "+t);i[t]=[]}return new ot(i)}function ot(t){this._=t}function st(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",i=t.indexOf(".");if(i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function ct(t,e){for(var n,i=0,a=t.length;i<a;++i)if((n=t[i]).name===e)return n.value}function lt(t,e,n){for(var i=0,a=t.length;i<a;++i)if(t[i].name===e){t[i]=at,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}ot.prototype=rt.prototype={constructor:ot,on:function(t,e){var n,i=this._,a=st(t+"",i),r=-1,o=a.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++r<o;)if(n=(t=a[r]).type)i[n]=lt(i[n],t.name,e);else if(null==e)for(n in i)i[n]=lt(i[n],t.name,null);return this}for(;++r<o;)if((n=(t=a[r]).type)&&(n=ct(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new ot(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,i,a=new Array(n),r=0;r<n;++r)a[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(r=0,n=(i=this._[t]).length;r<n;++r)i[r].value.apply(e,a)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],a=0,r=i.length;a<r;++a)i[a].value.apply(e,n)}};var ut="http://www.w3.org/1999/xhtml";const dt={svg:"http://www.w3.org/2000/svg",xhtml:ut,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ht(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),dt.hasOwnProperty(e)?{space:dt[e],local:t}:t}function ft(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===ut&&e.documentElement.namespaceURI===ut?e.createElement(t):e.createElementNS(n,t)}}function gt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function pt(t){var e=ht(t);return(e.local?gt:ft)(e)}function bt(){}function mt(t){return null==t?bt:function(){return this.querySelector(t)}}function yt(t){"function"!=typeof t&&(t=mt(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o,s=e[a],c=s.length,l=i[a]=new Array(c),u=0;u<c;++u)(r=s[u])&&(o=t.call(r,r.__data__,u,s))&&("__data__"in r&&(o.__data__=r.__data__),l[u]=o);return new sn(i,this._parents)}function vt(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function wt(){return[]}function xt(t){return null==t?wt:function(){return this.querySelectorAll(t)}}function Rt(t){return function(){return vt(t.apply(this,arguments))}}function _t(t){t="function"==typeof t?Rt(t):xt(t);for(var e=this._groups,n=e.length,i=[],a=[],r=0;r<n;++r)for(var o,s=e[r],c=s.length,l=0;l<c;++l)(o=s[l])&&(i.push(t.call(o,o.__data__,l,s)),a.push(o));return new sn(i,a)}function kt(t){return function(){return this.matches(t)}}function Et(t){return function(e){return e.matches(t)}}var Ct=Array.prototype.find;function St(t){return function(){return Ct.call(this.children,t)}}function Tt(){return this.firstElementChild}function At(t){return this.select(null==t?Tt:St("function"==typeof t?t:Et(t)))}var Dt=Array.prototype.filter;function It(){return Array.from(this.children)}function Lt(t){return function(){return Dt.call(this.children,t)}}function Ot(t){return this.selectAll(null==t?It:Lt("function"==typeof t?t:Et(t)))}function Mt(t){"function"!=typeof t&&(t=kt(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o=e[a],s=o.length,c=i[a]=[],l=0;l<s;++l)(r=o[l])&&t.call(r,r.__data__,l,o)&&c.push(r);return new sn(i,this._parents)}function Nt(t){return new Array(t.length)}function Bt(){return new sn(this._enter||this._groups.map(Nt),this._parents)}function Pt(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function Ft(t){return function(){return t}}function jt(t,e,n,i,a,r){for(var o,s=0,c=e.length,l=r.length;s<l;++s)(o=e[s])?(o.__data__=r[s],i[s]=o):n[s]=new Pt(t,r[s]);for(;s<c;++s)(o=e[s])&&(a[s]=o)}function $t(t,e,n,i,a,r,o){var s,c,l,u=new Map,d=e.length,h=r.length,f=new Array(d);for(s=0;s<d;++s)(c=e[s])&&(f[s]=l=o.call(c,c.__data__,s,e)+"",u.has(l)?a[s]=c:u.set(l,c));for(s=0;s<h;++s)l=o.call(t,r[s],s,r)+"",(c=u.get(l))?(i[s]=c,c.__data__=r[s],u.delete(l)):n[s]=new Pt(t,r[s]);for(s=0;s<d;++s)(c=e[s])&&u.get(f[s])===c&&(a[s]=c)}function zt(t){return t.__data__}function Ht(t,e){if(!arguments.length)return Array.from(this,zt);var n=e?$t:jt,i=this._parents,a=this._groups;"function"!=typeof t&&(t=Ft(t));for(var r=a.length,o=new Array(r),s=new Array(r),c=new Array(r),l=0;l<r;++l){var u=i[l],d=a[l],h=d.length,f=Ut(t.call(u,u&&u.__data__,l,i)),g=f.length,p=s[l]=new Array(g),b=o[l]=new Array(g);n(u,d,p,b,c[l]=new Array(h),f,e);for(var m,y,v=0,w=0;v<g;++v)if(m=p[v]){for(v>=w&&(w=v+1);!(y=b[w])&&++w<g;);m._next=y||null}}return(o=new sn(o,i))._enter=s,o._exit=c,o}function Ut(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Vt(){return new sn(this._exit||this._groups.map(Nt),this._parents)}function qt(t,e,n){var i=this.enter(),a=this,r=this.exit();return"function"==typeof t?(i=t(i))&&(i=i.selection()):i=i.append(t+""),null!=e&&(a=e(a))&&(a=a.selection()),null==n?r.remove():n(r),i&&a?i.merge(a).order():a}function Wt(t){for(var e=t.selection?t.selection():t,n=this._groups,i=e._groups,a=n.length,r=i.length,o=Math.min(a,r),s=new Array(a),c=0;c<o;++c)for(var l,u=n[c],d=i[c],h=u.length,f=s[c]=new Array(h),g=0;g<h;++g)(l=u[g]||d[g])&&(f[g]=l);for(;c<a;++c)s[c]=n[c];return new sn(s,this._parents)}function Yt(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i,a=t[e],r=a.length-1,o=a[r];--r>=0;)(i=a[r])&&(o&&4^i.compareDocumentPosition(o)&&o.parentNode.insertBefore(i,o),o=i);return this}function Gt(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=Zt);for(var n=this._groups,i=n.length,a=new Array(i),r=0;r<i;++r){for(var o,s=n[r],c=s.length,l=a[r]=new Array(c),u=0;u<c;++u)(o=s[u])&&(l[u]=o);l.sort(e)}return new sn(a,this._parents).order()}function Zt(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function Kt(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Xt(){return Array.from(this)}function Jt(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],a=0,r=i.length;a<r;++a){var o=i[a];if(o)return o}return null}function Qt(){let t=0;for(const e of this)++t;return t}function te(){return!this.node()}function ee(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var a,r=e[n],o=0,s=r.length;o<s;++o)(a=r[o])&&t.call(a,a.__data__,o,r);return this}function ne(t){return function(){this.removeAttribute(t)}}function ie(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ae(t,e){return function(){this.setAttribute(t,e)}}function re(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function oe(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function se(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function ce(t,e){var n=ht(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==e?n.local?ie:ne:"function"==typeof e?n.local?se:oe:n.local?re:ae)(n,e))}function le(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function ue(t){return function(){this.style.removeProperty(t)}}function de(t,e,n){return function(){this.style.setProperty(t,e,n)}}function he(t,e,n){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function fe(t,e,n){return arguments.length>1?this.each((null==e?ue:"function"==typeof e?he:de)(t,e,n??"")):ge(this.node(),t)}function ge(t,e){return t.style.getPropertyValue(e)||le(t).getComputedStyle(t,null).getPropertyValue(e)}function pe(t){return function(){delete this[t]}}function be(t,e){return function(){this[t]=e}}function me(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function ye(t,e){return arguments.length>1?this.each((null==e?pe:"function"==typeof e?me:be)(t,e)):this.node()[t]}function ve(t){return t.trim().split(/^|\s+/)}function we(t){return t.classList||new xe(t)}function xe(t){this._node=t,this._names=ve(t.getAttribute("class")||"")}function Re(t,e){for(var n=we(t),i=-1,a=e.length;++i<a;)n.add(e[i])}function _e(t,e){for(var n=we(t),i=-1,a=e.length;++i<a;)n.remove(e[i])}function ke(t){return function(){Re(this,t)}}function Ee(t){return function(){_e(this,t)}}function Ce(t,e){return function(){(e.apply(this,arguments)?Re:_e)(this,t)}}function Se(t,e){var n=ve(t+"");if(arguments.length<2){for(var i=we(this.node()),a=-1,r=n.length;++a<r;)if(!i.contains(n[a]))return!1;return!0}return this.each(("function"==typeof e?Ce:e?ke:Ee)(n,e))}function Te(){this.textContent=""}function Ae(t){return function(){this.textContent=t}}function De(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Ie(t){return arguments.length?this.each(null==t?Te:("function"==typeof t?De:Ae)(t)):this.node().textContent}function Le(){this.innerHTML=""}function Oe(t){return function(){this.innerHTML=t}}function Me(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Ne(t){return arguments.length?this.each(null==t?Le:("function"==typeof t?Me:Oe)(t)):this.node().innerHTML}function Be(){this.nextSibling&&this.parentNode.appendChild(this)}function Pe(){return this.each(Be)}function Fe(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function je(){return this.each(Fe)}function $e(t){var e="function"==typeof t?t:pt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))}function ze(){return null}function He(t,e){var n="function"==typeof t?t:pt(t),i=null==e?ze:"function"==typeof e?e:mt(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))}function Ue(){var t=this.parentNode;t&&t.removeChild(this)}function Ve(){return this.each(Ue)}function qe(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function We(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Ye(t){return this.select(t?We:qe)}function Ge(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Ze(t){return function(e){t.call(this,e,this.__data__)}}function Ke(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function Xe(t){return function(){var e=this.__on;if(e){for(var n,i=0,a=-1,r=e.length;i<r;++i)n=e[i],t.type&&n.type!==t.type||n.name!==t.name?e[++a]=n:this.removeEventListener(n.type,n.listener,n.options);++a?e.length=a:delete this.__on}}}function Je(t,e,n){return function(){var i,a=this.__on,r=Ze(e);if(a)for(var o=0,s=a.length;o<s;++o)if((i=a[o]).type===t.type&&i.name===t.name)return this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=r,i.options=n),void(i.value=e);this.addEventListener(t.type,r,n),i={type:t.type,name:t.name,value:e,listener:r,options:n},a?a.push(i):this.__on=[i]}}function Qe(t,e,n){var i,a,r=Ke(t+""),o=r.length;if(!(arguments.length<2)){for(s=e?Je:Xe,i=0;i<o;++i)this.each(s(r[i],e,n));return this}var s=this.node().__on;if(s)for(var c,l=0,u=s.length;l<u;++l)for(i=0,c=s[l];i<o;++i)if((a=r[i]).type===c.type&&a.name===c.name)return c.value}function tn(t,e,n){var i=le(t),a=i.CustomEvent;"function"==typeof a?a=new a(e,n):(a=i.document.createEvent("Event"),n?(a.initEvent(e,n.bubbles,n.cancelable),a.detail=n.detail):a.initEvent(e,!1,!1)),t.dispatchEvent(a)}function en(t,e){return function(){return tn(this,t,e)}}function nn(t,e){return function(){return tn(this,t,e.apply(this,arguments))}}function an(t,e){return this.each(("function"==typeof e?nn:en)(t,e))}function*rn(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i,a=t[e],r=0,o=a.length;r<o;++r)(i=a[r])&&(yield i)}Pt.prototype={constructor:Pt,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},xe.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var on=[null];function sn(t,e){this._groups=t,this._parents=e}function cn(){return new sn([[document.documentElement]],on)}function ln(){return this}function un(t){return"string"==typeof t?new sn([[document.querySelector(t)]],[document.documentElement]):new sn([[t]],on)}function dn(t){return"string"==typeof t?new sn([document.querySelectorAll(t)],[document.documentElement]):new sn([vt(t)],on)}function hn(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function fn(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function gn(){}sn.prototype=cn.prototype={constructor:sn,select:yt,selectAll:_t,selectChild:At,selectChildren:Ot,filter:Mt,data:Ht,enter:Bt,exit:Vt,join:qt,merge:Wt,selection:ln,order:Yt,sort:Gt,call:Kt,nodes:Xt,node:Jt,size:Qt,empty:te,each:ee,attr:ce,style:fe,property:ye,classed:Se,text:Ie,html:Ne,raise:Pe,lower:je,append:$e,insert:He,remove:Ve,clone:Ye,datum:Ge,on:Qe,dispatch:an,[Symbol.iterator]:rn};var pn=.7,bn=1/pn,mn="\\s*([+-]?\\d+)\\s*",yn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",vn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",wn=/^#([0-9a-f]{3,8})$/,xn=new RegExp(`^rgb\\(${mn},${mn},${mn}\\)$`),Rn=new RegExp(`^rgb\\(${vn},${vn},${vn}\\)$`),_n=new RegExp(`^rgba\\(${mn},${mn},${mn},${yn}\\)$`),kn=new RegExp(`^rgba\\(${vn},${vn},${vn},${yn}\\)$`),En=new RegExp(`^hsl\\(${yn},${vn},${vn}\\)$`),Cn=new RegExp(`^hsla\\(${yn},${vn},${vn},${yn}\\)$`),Sn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Tn(){return this.rgb().formatHex()}function An(){return this.rgb().formatHex8()}function Dn(){return qn(this).formatHsl()}function In(){return this.rgb().formatRgb()}function Ln(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=wn.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?On(e):3===n?new Pn(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Mn(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Mn(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=xn.exec(t))?new Pn(e[1],e[2],e[3],1):(e=Rn.exec(t))?new Pn(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=_n.exec(t))?Mn(e[1],e[2],e[3],e[4]):(e=kn.exec(t))?Mn(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=En.exec(t))?Vn(e[1],e[2]/100,e[3]/100,1):(e=Cn.exec(t))?Vn(e[1],e[2]/100,e[3]/100,e[4]):Sn.hasOwnProperty(t)?On(Sn[t]):"transparent"===t?new Pn(NaN,NaN,NaN,0):null}function On(t){return new Pn(t>>16&255,t>>8&255,255&t,1)}function Mn(t,e,n,i){return i<=0&&(t=e=n=NaN),new Pn(t,e,n,i)}function Nn(t){return t instanceof gn||(t=Ln(t)),t?new Pn((t=t.rgb()).r,t.g,t.b,t.opacity):new Pn}function Bn(t,e,n,i){return 1===arguments.length?Nn(t):new Pn(t,e,n,i??1)}function Pn(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function Fn(){return`#${Un(this.r)}${Un(this.g)}${Un(this.b)}`}function jn(){return`#${Un(this.r)}${Un(this.g)}${Un(this.b)}${Un(255*(isNaN(this.opacity)?1:this.opacity))}`}function $n(){const t=zn(this.opacity);return`${1===t?"rgb(":"rgba("}${Hn(this.r)}, ${Hn(this.g)}, ${Hn(this.b)}${1===t?")":`, ${t})`}`}function zn(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Hn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Un(t){return((t=Hn(t))<16?"0":"")+t.toString(16)}function Vn(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Yn(t,e,n,i)}function qn(t){if(t instanceof Yn)return new Yn(t.h,t.s,t.l,t.opacity);if(t instanceof gn||(t=Ln(t)),!t)return new Yn;if(t instanceof Yn)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,a=Math.min(e,n,i),r=Math.max(e,n,i),o=NaN,s=r-a,c=(r+a)/2;return s?(o=e===r?(n-i)/s+6*(n<i):n===r?(i-e)/s+2:(e-n)/s+4,s/=c<.5?r+a:2-r-a,o*=60):s=c>0&&c<1?0:o,new Yn(o,s,c,t.opacity)}function Wn(t,e,n,i){return 1===arguments.length?qn(t):new Yn(t,e,n,i??1)}function Yn(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function Gn(t){return(t=(t||0)%360)<0?t+360:t}function Zn(t){return Math.max(0,Math.min(1,t||0))}function Kn(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}hn(gn,Ln,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Tn,formatHex:Tn,formatHex8:An,formatHsl:Dn,formatRgb:In,toString:In}),hn(Pn,Bn,fn(gn,{brighter(t){return t=null==t?bn:Math.pow(bn,t),new Pn(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?pn:Math.pow(pn,t),new Pn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Pn(Hn(this.r),Hn(this.g),Hn(this.b),zn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Fn,formatHex:Fn,formatHex8:jn,formatRgb:$n,toString:$n})),hn(Yn,Wn,fn(gn,{brighter(t){return t=null==t?bn:Math.pow(bn,t),new Yn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?pn:Math.pow(pn,t),new Yn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,a=2*n-i;return new Pn(Kn(t>=240?t-240:t+120,a,i),Kn(t,a,i),Kn(t<120?t+240:t-120,a,i),this.opacity)},clamp(){return new Yn(Gn(this.h),Zn(this.s),Zn(this.l),zn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=zn(this.opacity);return`${1===t?"hsl(":"hsla("}${Gn(this.h)}, ${100*Zn(this.s)}%, ${100*Zn(this.l)}%${1===t?")":`, ${t})`}`}}));const Xn=Math.PI/180,Jn=180/Math.PI,Qn=18,ti=.96422,ei=1,ni=.82521,ii=4/29,ai=6/29,ri=3*ai*ai,oi=ai*ai*ai;function si(t){if(t instanceof li)return new li(t.l,t.a,t.b,t.opacity);if(t instanceof bi)return mi(t);t instanceof Pn||(t=Nn(t));var e,n,i=fi(t.r),a=fi(t.g),r=fi(t.b),o=ui((.2225045*i+.7168786*a+.0606169*r)/ei);return i===a&&a===r?e=n=o:(e=ui((.4360747*i+.3850649*a+.1430804*r)/ti),n=ui((.0139322*i+.0971045*a+.7141733*r)/ni)),new li(116*o-16,500*(e-o),200*(o-n),t.opacity)}function ci(t,e,n,i){return 1===arguments.length?si(t):new li(t,e,n,i??1)}function li(t,e,n,i){this.l=+t,this.a=+e,this.b=+n,this.opacity=+i}function ui(t){return t>oi?Math.pow(t,1/3):t/ri+ii}function di(t){return t>ai?t*t*t:ri*(t-ii)}function hi(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function fi(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function gi(t){if(t instanceof bi)return new bi(t.h,t.c,t.l,t.opacity);if(t instanceof li||(t=si(t)),0===t.a&&0===t.b)return new bi(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Jn;return new bi(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function pi(t,e,n,i){return 1===arguments.length?gi(t):new bi(t,e,n,i??1)}function bi(t,e,n,i){this.h=+t,this.c=+e,this.l=+n,this.opacity=+i}function mi(t){if(isNaN(t.h))return new li(t.l,0,0,t.opacity);var e=t.h*Xn;return new li(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}hn(li,ci,fn(gn,{brighter(t){return new li(this.l+Qn*(t??1),this.a,this.b,this.opacity)},darker(t){return new li(this.l-Qn*(t??1),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return new Pn(hi(3.1338561*(e=ti*di(e))-1.6168667*(t=ei*di(t))-.4906146*(n=ni*di(n))),hi(-.9787684*e+1.9161415*t+.033454*n),hi(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}})),hn(bi,pi,fn(gn,{brighter(t){return new bi(this.h,this.c,this.l+Qn*(t??1),this.opacity)},darker(t){return new bi(this.h,this.c,this.l-Qn*(t??1),this.opacity)},rgb(){return mi(this).rgb()}}));const yi=t=>()=>t;function vi(t,e){return function(n){return t+n*e}}function wi(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}}function xi(t,e){var n=e-t;return n?vi(t,n>180||n<-180?n-360*Math.round(n/360):n):yi(isNaN(t)?e:t)}function Ri(t){return 1==(t=+t)?_i:function(e,n){return n-e?wi(e,n,t):yi(isNaN(e)?n:e)}}function _i(t,e){var n=e-t;return n?vi(t,n):yi(isNaN(t)?e:t)}const ki=function t(e){var n=Ri(e);function i(t,e){var i=n((t=Bn(t)).r,(e=Bn(e)).r),a=n(t.g,e.g),r=n(t.b,e.b),o=_i(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=a(e),t.b=r(e),t.opacity=o(e),t+""}}return i.gamma=t,i}(1);function Ei(t,e){e||(e=[]);var n,i=t?Math.min(e.length,t.length):0,a=e.slice();return function(r){for(n=0;n<i;++n)a[n]=t[n]*(1-r)+e[n]*r;return a}}function Ci(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Si(t,e){var n,i=e?e.length:0,a=t?Math.min(i,t.length):0,r=new Array(a),o=new Array(i);for(n=0;n<a;++n)r[n]=Bi(t[n],e[n]);for(;n<i;++n)o[n]=e[n];return function(t){for(n=0;n<a;++n)o[n]=r[n](t);return o}}function Ti(t,e){var n=new Date;return t=+t,e=+e,function(i){return n.setTime(t*(1-i)+e*i),n}}function Ai(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function Di(t,e){var n,i={},a={};for(n in(null===t||"object"!=typeof t)&&(t={}),(null===e||"object"!=typeof e)&&(e={}),e)n in t?i[n]=Bi(t[n],e[n]):a[n]=e[n];return function(t){for(n in i)a[n]=i[n](t);return a}}var Ii=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Li=new RegExp(Ii.source,"g");function Oi(t){return function(){return t}}function Mi(t){return function(e){return t(e)+""}}function Ni(t,e){var n,i,a,r=Ii.lastIndex=Li.lastIndex=0,o=-1,s=[],c=[];for(t+="",e+="";(n=Ii.exec(t))&&(i=Li.exec(e));)(a=i.index)>r&&(a=e.slice(r,a),s[o]?s[o]+=a:s[++o]=a),(n=n[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:Ai(n,i)})),r=Li.lastIndex;return r<e.length&&(a=e.slice(r),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Mi(c[0].x):Oi(e):(e=c.length,function(t){for(var n,i=0;i<e;++i)s[(n=c[i]).i]=n.x(t);return s.join("")})}function Bi(t,e){var n,i=typeof e;return null==e||"boolean"===i?yi(e):("number"===i?Ai:"string"===i?(n=Ln(e))?(e=n,ki):Ni:e instanceof Ln?ki:e instanceof Date?Ti:Ci(e)?Ei:Array.isArray(e)?Si:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?Di:Ai)(t,e)}function Pi(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}var Fi,ji=180/Math.PI,$i={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function zi(t,e,n,i,a,r){var o,s,c;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(c=t*n+e*i)&&(n-=t*c,i-=e*c),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,c/=s),t*i<e*n&&(t=-t,e=-e,c=-c,o=-o),{translateX:a,translateY:r,rotate:Math.atan2(e,t)*ji,skewX:Math.atan(c)*ji,scaleX:o,scaleY:s}}function Hi(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?$i:zi(e.a,e.b,e.c,e.d,e.e,e.f)}function Ui(t){return null!=t&&(Fi||(Fi=document.createElementNS("http://www.w3.org/2000/svg","g")),Fi.setAttribute("transform",t),t=Fi.transform.baseVal.consolidate())?zi((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):$i}function Vi(t,e,n,i){function a(t){return t.length?t.pop()+" ":""}function r(t,i,a,r,o,s){if(t!==a||i!==r){var c=o.push("translate(",null,e,null,n);s.push({i:c-4,x:Ai(t,a)},{i:c-2,x:Ai(i,r)})}else(a||r)&&o.push("translate("+a+e+r+n)}function o(t,e,n,r){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),r.push({i:n.push(a(n)+"rotate(",null,i)-2,x:Ai(t,e)})):e&&n.push(a(n)+"rotate("+e+i)}function s(t,e,n,r){t!==e?r.push({i:n.push(a(n)+"skewX(",null,i)-2,x:Ai(t,e)}):e&&n.push(a(n)+"skewX("+e+i)}function c(t,e,n,i,r,o){if(t!==n||e!==i){var s=r.push(a(r)+"scale(",null,",",null,")");o.push({i:s-4,x:Ai(t,n)},{i:s-2,x:Ai(e,i)})}else(1!==n||1!==i)&&r.push(a(r)+"scale("+n+","+i+")")}return function(e,n){var i=[],a=[];return e=t(e),n=t(n),r(e.translateX,e.translateY,n.translateX,n.translateY,i,a),o(e.rotate,n.rotate,i,a),s(e.skewX,n.skewX,i,a),c(e.scaleX,e.scaleY,n.scaleX,n.scaleY,i,a),e=n=null,function(t){for(var e,n=-1,r=a.length;++n<r;)i[(e=a[n]).i]=e.x(t);return i.join("")}}}var qi=Vi(Hi,"px, ","px)","deg)"),Wi=Vi(Ui,", ",")",")");function Yi(t){return function(e,n){var i=t((e=pi(e)).h,(n=pi(n)).h),a=_i(e.c,n.c),r=_i(e.l,n.l),o=_i(e.opacity,n.opacity);return function(t){return e.h=i(t),e.c=a(t),e.l=r(t),e.opacity=o(t),e+""}}}const Gi=Yi(xi);var Zi,Ki,Xi=0,Ji=0,Qi=0,ta=1e3,ea=0,na=0,ia=0,aa="object"==typeof performance&&performance.now?performance:Date,ra="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function oa(){return na||(ra(sa),na=aa.now()+ia)}function sa(){na=0}function ca(){this._call=this._time=this._next=null}function la(t,e,n){var i=new ca;return i.restart(t,e,n),i}function ua(){oa(),++Xi;for(var t,e=Zi;e;)(t=na-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Xi}function da(){na=(ea=aa.now())+ia,Xi=Ji=0;try{ua()}finally{Xi=0,fa(),na=0}}function ha(){var t=aa.now(),e=t-ea;e>ta&&(ia-=e,ea=t)}function fa(){for(var t,e,n=Zi,i=1/0;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Zi=e);Ki=t,ga(i)}function ga(t){Xi||(Ji&&(Ji=clearTimeout(Ji)),t-na>24?(t<1/0&&(Ji=setTimeout(da,t-aa.now()-ia)),Qi&&(Qi=clearInterval(Qi))):(Qi||(ea=aa.now(),Qi=setInterval(ha,ta)),Xi=1,ra(da)))}function pa(t,e,n){var i=new ca;return e=null==e?0:+e,i.restart((n=>{i.stop(),t(n+e)}),e,n),i}ca.prototype=la.prototype={constructor:ca,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?oa():+n)+(null==e?0:+e),!this._next&&Ki!==this&&(Ki?Ki._next=this:Zi=this,Ki=this),this._call=t,this._time=n,ga()},stop:function(){this._call&&(this._call=null,this._time=1/0,ga())}};var ba=rt("start","end","cancel","interrupt"),ma=[],ya=0,va=1,wa=2,xa=3,Ra=4,_a=5,ka=6;function Ea(t,e,n,i,a,r){var o=t.__transition;if(o){if(n in o)return}else t.__transition={};Aa(t,n,{name:e,index:i,group:a,on:ba,tween:ma,time:r.time,delay:r.delay,duration:r.duration,ease:r.ease,timer:null,state:ya})}function Ca(t,e){var n=Ta(t,e);if(n.state>ya)throw new Error("too late; already scheduled");return n}function Sa(t,e){var n=Ta(t,e);if(n.state>xa)throw new Error("too late; already running");return n}function Ta(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Aa(t,e,n){var i,a=t.__transition;function r(t){n.state=va,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}function o(r){var l,u,d,h;if(n.state!==va)return c();for(l in a)if((h=a[l]).name===n.name){if(h.state===xa)return pa(o);h.state===Ra?(h.state=ka,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete a[l]):+l<e&&(h.state=ka,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete a[l])}if(pa((function(){n.state===xa&&(n.state=Ra,n.timer.restart(s,n.delay,n.time),s(r))})),n.state=wa,n.on.call("start",t,t.__data__,n.index,n.group),n.state===wa){for(n.state=xa,i=new Array(d=n.tween.length),l=0,u=-1;l<d;++l)(h=n.tween[l].value.call(t,t.__data__,n.index,n.group))&&(i[++u]=h);i.length=u+1}}function s(e){for(var a=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(c),n.state=_a,1),r=-1,o=i.length;++r<o;)i[r].call(t,a);n.state===_a&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){for(var i in n.state=ka,n.timer.stop(),delete a[e],a)return;delete t.__transition}a[e]=n,n.timer=la(r,0,n.time)}function Da(t,e){var n,i,a,r=t.__transition,o=!0;if(r){for(a in e=null==e?null:e+"",r)(n=r[a]).name===e?(i=n.state>wa&&n.state<_a,n.state=ka,n.timer.stop(),n.on.call(i?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete r[a]):o=!1;o&&delete t.__transition}}function Ia(t){return this.each((function(){Da(this,t)}))}function La(t,e){var n,i;return function(){var a=Sa(this,t),r=a.tween;if(r!==n)for(var o=0,s=(i=n=r).length;o<s;++o)if(i[o].name===e){(i=i.slice()).splice(o,1);break}a.tween=i}}function Oa(t,e,n){var i,a;if("function"!=typeof n)throw new Error;return function(){var r=Sa(this,t),o=r.tween;if(o!==i){a=(i=o).slice();for(var s={name:e,value:n},c=0,l=a.length;c<l;++c)if(a[c].name===e){a[c]=s;break}c===l&&a.push(s)}r.tween=a}}function Ma(t,e){var n=this._id;if(t+="",arguments.length<2){for(var i,a=Ta(this.node(),n).tween,r=0,o=a.length;r<o;++r)if((i=a[r]).name===t)return i.value;return null}return this.each((null==e?La:Oa)(n,t,e))}function Na(t,e,n){var i=t._id;return t.each((function(){var t=Sa(this,i);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return Ta(t,i).value[e]}}function Ba(t,e){var n;return("number"==typeof e?Ai:e instanceof Ln?ki:(n=Ln(e))?(e=n,ki):Ni)(t,e)}function Pa(t){return function(){this.removeAttribute(t)}}function Fa(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ja(t,e,n){var i,a,r=n+"";return function(){var o=this.getAttribute(t);return o===r?null:o===i?a:a=e(i=o,n)}}function $a(t,e,n){var i,a,r=n+"";return function(){var o=this.getAttributeNS(t.space,t.local);return o===r?null:o===i?a:a=e(i=o,n)}}function za(t,e,n){var i,a,r;return function(){var o,s,c=n(this);return null==c?void this.removeAttribute(t):(o=this.getAttribute(t))===(s=c+"")?null:o===i&&s===a?r:(a=s,r=e(i=o,c))}}function Ha(t,e,n){var i,a,r;return function(){var o,s,c=n(this);return null==c?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local))===(s=c+"")?null:o===i&&s===a?r:(a=s,r=e(i=o,c))}}function Ua(t,e){var n=ht(t),i="transform"===n?Wi:Ba;return this.attrTween(t,"function"==typeof e?(n.local?Ha:za)(n,i,Na(this,"attr."+t,e)):null==e?(n.local?Fa:Pa)(n):(n.local?$a:ja)(n,i,e))}function Va(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function qa(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function Wa(t,e){var n,i;function a(){var a=e.apply(this,arguments);return a!==i&&(n=(i=a)&&qa(t,a)),n}return a._value=e,a}function Ya(t,e){var n,i;function a(){var a=e.apply(this,arguments);return a!==i&&(n=(i=a)&&Va(t,a)),n}return a._value=e,a}function Ga(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var i=ht(t);return this.tween(n,(i.local?Wa:Ya)(i,e))}function Za(t,e){return function(){Ca(this,t).delay=+e.apply(this,arguments)}}function Ka(t,e){return e=+e,function(){Ca(this,t).delay=e}}function Xa(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Za:Ka)(e,t)):Ta(this.node(),e).delay}function Ja(t,e){return function(){Sa(this,t).duration=+e.apply(this,arguments)}}function Qa(t,e){return e=+e,function(){Sa(this,t).duration=e}}function tr(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Ja:Qa)(e,t)):Ta(this.node(),e).duration}function er(t,e){if("function"!=typeof e)throw new Error;return function(){Sa(this,t).ease=e}}function nr(t){var e=this._id;return arguments.length?this.each(er(e,t)):Ta(this.node(),e).ease}function ir(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;Sa(this,t).ease=n}}function ar(t){if("function"!=typeof t)throw new Error;return this.each(ir(this._id,t))}function rr(t){"function"!=typeof t&&(t=kt(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o=e[a],s=o.length,c=i[a]=[],l=0;l<s;++l)(r=o[l])&&t.call(r,r.__data__,l,o)&&c.push(r);return new Mr(i,this._parents,this._name,this._id)}function or(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,i=e.length,a=n.length,r=Math.min(i,a),o=new Array(i),s=0;s<r;++s)for(var c,l=e[s],u=n[s],d=l.length,h=o[s]=new Array(d),f=0;f<d;++f)(c=l[f]||u[f])&&(h[f]=c);for(;s<i;++s)o[s]=e[s];return new Mr(o,this._parents,this._name,this._id)}function sr(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}function cr(t,e,n){var i,a,r=sr(e)?Ca:Sa;return function(){var o=r(this,t),s=o.on;s!==i&&(a=(i=s).copy()).on(e,n),o.on=a}}function lr(t,e){var n=this._id;return arguments.length<2?Ta(this.node(),n).on.on(t):this.each(cr(n,t,e))}function ur(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function dr(){return this.on("end.remove",ur(this._id))}function hr(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=mt(t));for(var i=this._groups,a=i.length,r=new Array(a),o=0;o<a;++o)for(var s,c,l=i[o],u=l.length,d=r[o]=new Array(u),h=0;h<u;++h)(s=l[h])&&(c=t.call(s,s.__data__,h,l))&&("__data__"in s&&(c.__data__=s.__data__),d[h]=c,Ea(d[h],e,n,h,d,Ta(s,n)));return new Mr(r,this._parents,e,n)}function fr(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=xt(t));for(var i=this._groups,a=i.length,r=[],o=[],s=0;s<a;++s)for(var c,l=i[s],u=l.length,d=0;d<u;++d)if(c=l[d]){for(var h,f=t.call(c,c.__data__,d,l),g=Ta(c,n),p=0,b=f.length;p<b;++p)(h=f[p])&&Ea(h,e,n,p,f,g);r.push(f),o.push(c)}return new Mr(r,o,e,n)}var gr=cn.prototype.constructor;function pr(){return new gr(this._groups,this._parents)}function br(t,e){var n,i,a;return function(){var r=ge(this,t),o=(this.style.removeProperty(t),ge(this,t));return r===o?null:r===n&&o===i?a:a=e(n=r,i=o)}}function mr(t){return function(){this.style.removeProperty(t)}}function yr(t,e,n){var i,a,r=n+"";return function(){var o=ge(this,t);return o===r?null:o===i?a:a=e(i=o,n)}}function vr(t,e,n){var i,a,r;return function(){var o=ge(this,t),s=n(this),c=s+"";return null==s&&(this.style.removeProperty(t),c=s=ge(this,t)),o===c?null:o===i&&c===a?r:(a=c,r=e(i=o,s))}}function wr(t,e){var n,i,a,r,o="style."+e,s="end."+o;return function(){var c=Sa(this,t),l=c.on,u=null==c.value[o]?r||(r=mr(e)):void 0;(l!==n||a!==u)&&(i=(n=l).copy()).on(s,a=u),c.on=i}}function xr(t,e,n){var i="transform"==(t+="")?qi:Ba;return null==e?this.styleTween(t,br(t,i)).on("end.style."+t,mr(t)):"function"==typeof e?this.styleTween(t,vr(t,i,Na(this,"style."+t,e))).each(wr(this._id,t)):this.styleTween(t,yr(t,i,e),n).on("end.style."+t,null)}function Rr(t,e,n){return function(i){this.style.setProperty(t,e.call(this,i),n)}}function _r(t,e,n){var i,a;function r(){var r=e.apply(this,arguments);return r!==a&&(i=(a=r)&&Rr(t,r,n)),i}return r._value=e,r}function kr(t,e,n){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw new Error;return this.tween(i,_r(t,e,n??""))}function Er(t){return function(){this.textContent=t}}function Cr(t){return function(){var e=t(this);this.textContent=e??""}}function Sr(t){return this.tween("text","function"==typeof t?Cr(Na(this,"text",t)):Er(null==t?"":t+""))}function Tr(t){return function(e){this.textContent=t.call(this,e)}}function Ar(t){var e,n;function i(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&Tr(i)),e}return i._value=t,i}function Dr(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,Ar(t))}function Ir(){for(var t=this._name,e=this._id,n=Nr(),i=this._groups,a=i.length,r=0;r<a;++r)for(var o,s=i[r],c=s.length,l=0;l<c;++l)if(o=s[l]){var u=Ta(o,e);Ea(o,t,n,l,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Mr(i,this._parents,t,n)}function Lr(){var t,e,n=this,i=n._id,a=n.size();return new Promise((function(r,o){var s={value:o},c={value:function(){0==--a&&r()}};n.each((function(){var n=Sa(this,i),a=n.on;a!==t&&((e=(t=a).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(c)),n.on=e})),0===a&&r()}))}var Or=0;function Mr(t,e,n,i){this._groups=t,this._parents=e,this._name=n,this._id=i}function Nr(){return++Or}var Br=cn.prototype;function Pr(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}Mr.prototype={constructor:Mr,select:hr,selectAll:fr,selectChild:Br.selectChild,selectChildren:Br.selectChildren,filter:rr,merge:or,selection:pr,transition:Ir,call:Br.call,nodes:Br.nodes,node:Br.node,size:Br.size,empty:Br.empty,each:Br.each,on:lr,attr:Ua,attrTween:Ga,style:xr,styleTween:kr,text:Sr,textTween:Dr,remove:dr,tween:Ma,delay:Xa,duration:tr,ease:nr,easeVarying:ar,end:Lr,[Symbol.iterator]:Br[Symbol.iterator]};var Fr={time:null,delay:0,duration:250,ease:Pr};function jr(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function $r(t){var e,n;t instanceof Mr?(e=t._id,t=t._name):(e=Nr(),(n=Fr).time=oa(),t=null==t?null:t+"");for(var i=this._groups,a=i.length,r=0;r<a;++r)for(var o,s=i[r],c=s.length,l=0;l<c;++l)(o=s[l])&&Ea(o,t,e,l,s,n||jr(o,e));return new Mr(i,this._parents,t,e)}cn.prototype.interrupt=Ia,cn.prototype.transition=$r;const zr=Math.PI,Hr=2*zr,Ur=1e-6,Vr=Hr-Ur;function qr(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Wr(){return new qr}function Yr(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Gr(t,e){return fetch(t,e).then(Yr)}function Zr(t){return(e,n)=>Gr(e,n).then((e=>(new DOMParser).parseFromString(e,t)))}qr.prototype=Wr.prototype={constructor:qr,moveTo:function(t,e){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,e){this._+="L"+(this._x1=+t)+","+(this._y1=+e)},quadraticCurveTo:function(t,e,n,i){this._+="Q"+ +t+","+ +e+","+(this._x1=+n)+","+(this._y1=+i)},bezierCurveTo:function(t,e,n,i,a,r){this._+="C"+ +t+","+ +e+","+ +n+","+ +i+","+(this._x1=+a)+","+(this._y1=+r)},arcTo:function(t,e,n,i,a){t=+t,e=+e,n=+n,i=+i,a=+a;var r=this._x1,o=this._y1,s=n-t,c=i-e,l=r-t,u=o-e,d=l*l+u*u;if(a<0)throw new Error("negative radius: "+a);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=e);else if(d>Ur)if(Math.abs(u*s-c*l)>Ur&&a){var h=n-r,f=i-o,g=s*s+c*c,p=h*h+f*f,b=Math.sqrt(g),m=Math.sqrt(d),y=a*Math.tan((zr-Math.acos((g+d-p)/(2*b*m)))/2),v=y/m,w=y/b;Math.abs(v-1)>Ur&&(this._+="L"+(t+v*l)+","+(e+v*u)),this._+="A"+a+","+a+",0,0,"+ +(u*h>l*f)+","+(this._x1=t+w*s)+","+(this._y1=e+w*c)}else this._+="L"+(this._x1=t)+","+(this._y1=e)},arc:function(t,e,n,i,a,r){t=+t,e=+e,r=!!r;var o=(n=+n)*Math.cos(i),s=n*Math.sin(i),c=t+o,l=e+s,u=1^r,d=r?i-a:a-i;if(n<0)throw new Error("negative radius: "+n);null===this._x1?this._+="M"+c+","+l:(Math.abs(this._x1-c)>Ur||Math.abs(this._y1-l)>Ur)&&(this._+="L"+c+","+l),n&&(d<0&&(d=d%Hr+Hr),d>Vr?this._+="A"+n+","+n+",0,1,"+u+","+(t-o)+","+(e-s)+"A"+n+","+n+",0,1,"+u+","+(this._x1=c)+","+(this._y1=l):d>Ur&&(this._+="A"+n+","+n+",0,"+ +(d>=zr)+","+u+","+(this._x1=t+n*Math.cos(a))+","+(this._y1=e+n*Math.sin(a))))},rect:function(t,e,n,i){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +n+"v"+ +i+"h"+-n+"Z"},toString:function(){return this._}};var Kr=Zr("image/svg+xml");function Xr(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Jr(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,i=t.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+t.slice(n+1)]}function Qr(t){return(t=Jr(Math.abs(t)))?t[1]:NaN}function to(t,e){return function(n,i){for(var a=n.length,r=[],o=0,s=t[0],c=0;a>0&&s>0&&(c+s+1>i&&(s=Math.max(1,i-c)),r.push(n.substring(a-=s,a+s)),!((c+=s+1)>i));)s=t[o=(o+1)%t.length];return r.reverse().join(e)}}function eo(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}var no,io=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function ao(t){if(!(e=io.exec(t)))throw new Error("invalid format: "+t);var e;return new ro({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function ro(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function oo(t){t:for(var e,n=t.length,i=1,a=-1;i<n;++i)switch(t[i]){case".":a=e=i;break;case"0":0===a&&(a=i),e=i;break;default:if(!+t[i])break t;a>0&&(a=0)}return a>0?t.slice(0,a)+t.slice(e+1):t}function so(t,e){var n=Jr(t,e);if(!n)return t+"";var i=n[0],a=n[1],r=a-(no=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,o=i.length;return r===o?i:r>o?i+new Array(r-o+1).join("0"):r>0?i.slice(0,r)+"."+i.slice(r):"0."+new Array(1-r).join("0")+Jr(t,Math.max(0,e+r-1))[0]}function co(t,e){var n=Jr(t,e);if(!n)return t+"";var i=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+i:i.length>a+1?i.slice(0,a+1)+"."+i.slice(a+1):i+new Array(a-i.length+2).join("0")}ao.prototype=ro.prototype,ro.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const lo={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Xr,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>co(100*t,e),r:co,s:so,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function uo(t){return t}var ho,fo,go,po=Array.prototype.map,bo=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function mo(t){var e=void 0===t.grouping||void 0===t.thousands?uo:to(po.call(t.grouping,Number),t.thousands+""),n=void 0===t.currency?"":t.currency[0]+"",i=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",r=void 0===t.numerals?uo:eo(po.call(t.numerals,String)),o=void 0===t.percent?"%":t.percent+"",s=void 0===t.minus?"\u2212":t.minus+"",c=void 0===t.nan?"NaN":t.nan+"";function l(t){var l=(t=ao(t)).fill,u=t.align,d=t.sign,h=t.symbol,f=t.zero,g=t.width,p=t.comma,b=t.precision,m=t.trim,y=t.type;"n"===y?(p=!0,y="g"):lo[y]||(void 0===b&&(b=12),m=!0,y="g"),(f||"0"===l&&"="===u)&&(f=!0,l="0",u="=");var v="$"===h?n:"#"===h&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",w="$"===h?i:/[%p]/.test(y)?o:"",x=lo[y],R=/[defgprs%]/.test(y);function _(t){var n,i,o,h=v,_=w;if("c"===y)_=x(t)+_,t="";else{var k=(t=+t)<0||1/t<0;if(t=isNaN(t)?c:x(Math.abs(t),b),m&&(t=oo(t)),k&&0==+t&&"+"!==d&&(k=!1),h=(k?"("===d?d:s:"-"===d||"("===d?"":d)+h,_=("s"===y?bo[8+no/3]:"")+_+(k&&"("===d?")":""),R)for(n=-1,i=t.length;++n<i;)if(48>(o=t.charCodeAt(n))||o>57){_=(46===o?a+t.slice(n+1):t.slice(n))+_,t=t.slice(0,n);break}}p&&!f&&(t=e(t,1/0));var E=h.length+t.length+_.length,C=E<g?new Array(g-E+1).join(l):"";switch(p&&f&&(t=e(C+t,C.length?g-_.length:1/0),C=""),u){case"<":t=h+t+_+C;break;case"=":t=h+C+t+_;break;case"^":t=C.slice(0,E=C.length>>1)+h+t+_+C.slice(E);break;default:t=C+h+t+_}return r(t)}return b=void 0===b?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),_.toString=function(){return t+""},_}function u(t,e){var n=l(((t=ao(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Qr(e)/3))),a=Math.pow(10,-i),r=bo[8+i/3];return function(t){return n(a*t)+r}}return{format:l,formatPrefix:u}}function yo(t){return ho=mo(t),fo=ho.format,go=ho.formatPrefix,ho}function vo(t){return Math.max(0,-Qr(Math.abs(t)))}function wo(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Qr(e)/3)))-Qr(Math.abs(t)))}function xo(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Qr(e)-Qr(t))+1}function Ro(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}yo({thousands:",",grouping:[3],currency:["$",""]});const _o=Symbol("implicit");function ko(){var t=new I,e=[],n=[],i=_o;function a(a){let r=t.get(a);if(void 0===r){if(i!==_o)return i;t.set(a,r=e.push(a)-1)}return n[r%n.length]}return a.domain=function(n){if(!arguments.length)return e.slice();e=[],t=new I;for(const i of n)t.has(i)||t.set(i,e.push(i)-1);return a},a.range=function(t){return arguments.length?(n=Array.from(t),a):n.slice()},a.unknown=function(t){return arguments.length?(i=t,a):i},a.copy=function(){return ko(e,n).unknown(i)},Ro.apply(a,arguments),a}function Eo(t){return function(){return t}}function Co(t){return+t}var So=[0,1];function To(t){return t}function Ao(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:Eo(isNaN(e)?NaN:.5)}function Do(t,e){var n;return t>e&&(n=t,t=e,e=n),function(n){return Math.max(t,Math.min(e,n))}}function Io(t,e,n){var i=t[0],a=t[1],r=e[0],o=e[1];return a<i?(i=Ao(a,i),r=n(o,r)):(i=Ao(i,a),r=n(r,o)),function(t){return r(i(t))}}function Lo(t,e,n){var i=Math.min(t.length,e.length)-1,a=new Array(i),r=new Array(i),o=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<i;)a[o]=Ao(t[o],t[o+1]),r[o]=n(e[o],e[o+1]);return function(e){var n=D(t,e,1,i)-1;return r[n](a[n](e))}}function Oo(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Mo(){var t,e,n,i,a,r,o=So,s=So,c=Bi,l=To;function u(){var t=Math.min(o.length,s.length);return l!==To&&(l=Do(o[0],o[t-1])),i=t>2?Lo:Io,a=r=null,d}function d(e){return null==e||isNaN(e=+e)?n:(a||(a=i(o.map(t),s,c)))(t(l(e)))}return d.invert=function(n){return l(e((r||(r=i(s,o.map(t),Ai)))(n)))},d.domain=function(t){return arguments.length?(o=Array.from(t,Co),u()):o.slice()},d.range=function(t){return arguments.length?(s=Array.from(t),u()):s.slice()},d.rangeRound=function(t){return s=Array.from(t),c=Pi,u()},d.clamp=function(t){return arguments.length?(l=!!t||To,u()):l!==To},d.interpolate=function(t){return arguments.length?(c=t,u()):c},d.unknown=function(t){return arguments.length?(n=t,d):n},function(n,i){return t=n,e=i,u()}}function No(){return Mo()(To,To)}function Bo(t,e,n,i){var a,r=z(t,e,n);switch((i=ao(i??",f")).type){case"s":var o=Math.max(Math.abs(t),Math.abs(e));return null==i.precision&&!isNaN(a=wo(r,o))&&(i.precision=a),go(i,o);case"":case"e":case"g":case"p":case"r":null==i.precision&&!isNaN(a=xo(r,Math.max(Math.abs(t),Math.abs(e))))&&(i.precision=a-("e"===i.type));break;case"f":case"%":null==i.precision&&!isNaN(a=vo(r))&&(i.precision=a-2*("%"===i.type))}return fo(i)}function Po(t){var e=t.domain;return t.ticks=function(t){var n=e();return j(n[0],n[n.length-1],t??10)},t.tickFormat=function(t,n){var i=e();return Bo(i[0],i[i.length-1],t??10,n)},t.nice=function(n){null==n&&(n=10);var i,a,r=e(),o=0,s=r.length-1,c=r[o],l=r[s],u=10;for(l<c&&(a=c,c=l,l=a,a=o,o=s,s=a);u-- >0;){if((a=$(c,l,n))===i)return r[o]=c,r[s]=l,e(r);if(a>0)c=Math.floor(c/a)*a,l=Math.ceil(l/a)*a;else{if(!(a<0))break;c=Math.ceil(c*a)/a,l=Math.floor(l*a)/a}i=a}return t},t}function Fo(){var t=No();return t.copy=function(){return Oo(t,Fo())},Ro.apply(t,arguments),Po(t)}function jo(t,e){var n,i=0,a=(t=t.slice()).length-1,r=t[i],o=t[a];return o<r&&(n=i,i=a,a=n,n=r,r=o,o=n),t[i]=e.floor(r),t[a]=e.ceil(o),t}var $o=new Date,zo=new Date;function Ho(t,e,n,i){function a(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return a.floor=function(e){return t(e=new Date(+e)),e},a.ceil=function(n){return t(n=new Date(n-1)),e(n,1),t(n),n},a.round=function(t){var e=a(t),n=a.ceil(t);return t-e<n-t?e:n},a.offset=function(t,n){return e(t=new Date(+t),null==n?1:Math.floor(n)),t},a.range=function(n,i,r){var o,s=[];if(n=a.ceil(n),r=null==r?1:Math.floor(r),!(n<i&&r>0))return s;do{s.push(o=new Date(+n)),e(n,r),t(n)}while(o<n&&n<i);return s},a.filter=function(n){return Ho((function(e){if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),(function(t,i){if(t>=t)if(i<0)for(;++i<=0;)for(;e(t,-1),!n(t););else for(;--i>=0;)for(;e(t,1),!n(t););}))},n&&(a.count=function(e,i){return $o.setTime(+e),zo.setTime(+i),t($o),t(zo),Math.floor(n($o,zo))},a.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?a.filter(i?function(e){return i(e)%t==0}:function(e){return a.count(0,e)%t==0}):a:null}),a}var Uo=Ho((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));Uo.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Ho((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,n){e.setTime(+e+n*t)}),(function(e,n){return(n-e)/t})):Uo:null};const Vo=Uo;Uo.range;const qo=1e3,Wo=60*qo,Yo=60*Wo,Go=24*Yo,Zo=7*Go,Ko=30*Go,Xo=365*Go;var Jo=Ho((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+e*qo)}),(function(t,e){return(e-t)/qo}),(function(t){return t.getUTCSeconds()}));const Qo=Jo;Jo.range;var ts=Ho((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*qo)}),(function(t,e){t.setTime(+t+e*Wo)}),(function(t,e){return(e-t)/Wo}),(function(t){return t.getMinutes()}));const es=ts;ts.range;var ns=Ho((function(t){t.setTime(t-t.getMilliseconds()-t.getSeconds()*qo-t.getMinutes()*Wo)}),(function(t,e){t.setTime(+t+e*Yo)}),(function(t,e){return(e-t)/Yo}),(function(t){return t.getHours()}));const is=ns;ns.range;var as=Ho((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Wo)/Go),(t=>t.getDate()-1));const rs=as;function os(t){return Ho((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*Wo)/Zo}))}as.range;var ss=os(0),cs=os(1),ls=os(2),us=os(3),ds=os(4),hs=os(5),fs=os(6);ss.range,cs.range,ls.range,us.range,ds.range,hs.range,fs.range;var gs=Ho((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()}));const ps=gs;gs.range;var bs=Ho((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));bs.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ho((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,n){e.setFullYear(e.getFullYear()+n*t)})):null};const ms=bs;bs.range;var ys=Ho((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+e*Wo)}),(function(t,e){return(e-t)/Wo}),(function(t){return t.getUTCMinutes()}));const vs=ys;ys.range;var ws=Ho((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+e*Yo)}),(function(t,e){return(e-t)/Yo}),(function(t){return t.getUTCHours()}));const xs=ws;ws.range;var Rs=Ho((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/Go}),(function(t){return t.getUTCDate()-1}));const _s=Rs;function ks(t){return Ho((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/Zo}))}Rs.range;var Es=ks(0),Cs=ks(1),Ss=ks(2),Ts=ks(3),As=ks(4),Ds=ks(5),Is=ks(6);Es.range,Cs.range,Ss.range,Ts.range,As.range,Ds.range,Is.range;var Ls=Ho((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()}));const Os=Ls;Ls.range;var Ms=Ho((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));Ms.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Ho((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null};const Ns=Ms;function Bs(t,e,n,i,a,r){const o=[[Qo,1,qo],[Qo,5,5*qo],[Qo,15,15*qo],[Qo,30,30*qo],[r,1,Wo],[r,5,5*Wo],[r,15,15*Wo],[r,30,30*Wo],[a,1,Yo],[a,3,3*Yo],[a,6,6*Yo],[a,12,12*Yo],[i,1,Go],[i,2,2*Go],[n,1,Zo],[e,1,Ko],[e,3,3*Ko],[t,1,Xo]];function s(t,e,n){const i=e<t;i&&([t,e]=[e,t]);const a=n&&"function"==typeof n.range?n:c(t,e,n),r=a?a.range(t,+e+1):[];return i?r.reverse():r}function c(e,n,i){const a=Math.abs(n-e)/i,r=C((([,,t])=>t)).right(o,a);if(r===o.length)return t.every(z(e/Xo,n/Xo,i));if(0===r)return Vo.every(Math.max(z(e,n,i),1));const[s,c]=o[a/o[r-1][2]<o[r][2]/a?r-1:r];return s.every(c)}return[s,c]}Ms.range,Bs(Ns,Os,Es,_s,xs,vs);const[Ps,Fs]=Bs(ms,ps,ss,rs,is,es);function js(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function $s(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function zs(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Hs(t){var e=t.dateTime,n=t.date,i=t.time,a=t.periods,r=t.days,o=t.shortDays,s=t.months,c=t.shortMonths,l=Xs(a),u=Js(a),d=Xs(r),h=Js(r),f=Xs(o),g=Js(o),p=Xs(s),b=Js(s),m=Xs(c),y=Js(c),v={a:O,A:M,b:N,B:B,c:null,d:vc,e:vc,f:kc,g:Nc,G:Pc,H:wc,I:xc,j:Rc,L:_c,m:Ec,M:Cc,p:P,q:F,Q:ol,s:sl,S:Sc,u:Tc,U:Ac,V:Ic,w:Lc,W:Oc,x:null,X:null,y:Mc,Y:Bc,Z:Fc,"%":rl},w={a:j,A:$,b:z,B:H,c:null,d:jc,e:jc,f:Vc,g:el,G:il,H:$c,I:zc,j:Hc,L:Uc,m:qc,M:Wc,p:U,q:V,Q:ol,s:sl,S:Yc,u:Gc,U:Zc,V:Xc,w:Jc,W:Qc,x:null,X:null,y:tl,Y:nl,Z:al,"%":rl},x={a:C,A:S,b:T,B:A,c:D,d:lc,e:lc,f:pc,g:rc,G:ac,H:dc,I:dc,j:uc,L:gc,m:cc,M:hc,p:E,q:sc,Q:mc,s:yc,S:fc,u:tc,U:ec,V:nc,w:Qs,W:ic,x:I,X:L,y:rc,Y:ac,Z:oc,"%":bc};function R(t,e){return function(n){var i,a,r,o=[],s=-1,c=0,l=t.length;for(n instanceof Date||(n=new Date(+n));++s<l;)37===t.charCodeAt(s)&&(o.push(t.slice(c,s)),null!=(a=qs[i=t.charAt(++s)])?i=t.charAt(++s):a="e"===i?" ":"0",(r=e[i])&&(i=r(n,a)),o.push(i),c=s+1);return o.push(t.slice(c,s)),o.join("")}}function _(t,e){return function(n){var i,a,r=zs(1900,void 0,1);if(k(r,t,n+="",0)!=n.length)return null;if("Q"in r)return new Date(r.Q);if("s"in r)return new Date(1e3*r.s+("L"in r?r.L:0));if(e&&!("Z"in r)&&(r.Z=0),"p"in r&&(r.H=r.H%12+12*r.p),void 0===r.m&&(r.m="q"in r?r.q:0),"V"in r){if(r.V<1||r.V>53)return null;"w"in r||(r.w=1),"Z"in r?(a=(i=$s(zs(r.y,0,1))).getUTCDay(),i=a>4||0===a?Cs.ceil(i):Cs(i),i=_s.offset(i,7*(r.V-1)),r.y=i.getUTCFullYear(),r.m=i.getUTCMonth(),r.d=i.getUTCDate()+(r.w+6)%7):(a=(i=js(zs(r.y,0,1))).getDay(),i=a>4||0===a?cs.ceil(i):cs(i),i=rs.offset(i,7*(r.V-1)),r.y=i.getFullYear(),r.m=i.getMonth(),r.d=i.getDate()+(r.w+6)%7)}else("W"in r||"U"in r)&&("w"in r||(r.w="u"in r?r.u%7:"W"in r?1:0),a="Z"in r?$s(zs(r.y,0,1)).getUTCDay():js(zs(r.y,0,1)).getDay(),r.m=0,r.d="W"in r?(r.w+6)%7+7*r.W-(a+5)%7:r.w+7*r.U-(a+6)%7);return"Z"in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,$s(r)):js(r)}}function k(t,e,n,i){for(var a,r,o=0,s=e.length,c=n.length;o<s;){if(i>=c)return-1;if(37===(a=e.charCodeAt(o++))){if(a=e.charAt(o++),!(r=x[a in qs?e.charAt(o++):a])||(i=r(t,n,i))<0)return-1}else if(a!=n.charCodeAt(i++))return-1}return i}function E(t,e,n){var i=l.exec(e.slice(n));return i?(t.p=u.get(i[0].toLowerCase()),n+i[0].length):-1}function C(t,e,n){var i=f.exec(e.slice(n));return i?(t.w=g.get(i[0].toLowerCase()),n+i[0].length):-1}function S(t,e,n){var i=d.exec(e.slice(n));return i?(t.w=h.get(i[0].toLowerCase()),n+i[0].length):-1}function T(t,e,n){var i=m.exec(e.slice(n));return i?(t.m=y.get(i[0].toLowerCase()),n+i[0].length):-1}function A(t,e,n){var i=p.exec(e.slice(n));return i?(t.m=b.get(i[0].toLowerCase()),n+i[0].length):-1}function D(t,n,i){return k(t,e,n,i)}function I(t,e,i){return k(t,n,e,i)}function L(t,e,n){return k(t,i,e,n)}function O(t){return o[t.getDay()]}function M(t){return r[t.getDay()]}function N(t){return c[t.getMonth()]}function B(t){return s[t.getMonth()]}function P(t){return a[+(t.getHours()>=12)]}function F(t){return 1+~~(t.getMonth()/3)}function j(t){return o[t.getUTCDay()]}function $(t){return r[t.getUTCDay()]}function z(t){return c[t.getUTCMonth()]}function H(t){return s[t.getUTCMonth()]}function U(t){return a[+(t.getUTCHours()>=12)]}function V(t){return 1+~~(t.getUTCMonth()/3)}return v.x=R(n,v),v.X=R(i,v),v.c=R(e,v),w.x=R(n,w),w.X=R(i,w),w.c=R(e,w),{format:function(t){var e=R(t+="",v);return e.toString=function(){return t},e},parse:function(t){var e=_(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=R(t+="",w);return e.toString=function(){return t},e},utcParse:function(t){var e=_(t+="",!0);return e.toString=function(){return t},e}}}var Us,Vs,qs={"-":"",_:" ",0:"0"},Ws=/^\s*\d+/,Ys=/^%/,Gs=/[\\^$*+?|[\]().{}]/g;function Zs(t,e,n){var i=t<0?"-":"",a=(i?-t:t)+"",r=a.length;return i+(r<n?new Array(n-r+1).join(e)+a:a)}function Ks(t){return t.replace(Gs,"\\$&")}function Xs(t){return new RegExp("^(?:"+t.map(Ks).join("|")+")","i")}function Js(t){return new Map(t.map(((t,e)=>[t.toLowerCase(),e])))}function Qs(t,e,n){var i=Ws.exec(e.slice(n,n+1));return i?(t.w=+i[0],n+i[0].length):-1}function tc(t,e,n){var i=Ws.exec(e.slice(n,n+1));return i?(t.u=+i[0],n+i[0].length):-1}function ec(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.U=+i[0],n+i[0].length):-1}function nc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.V=+i[0],n+i[0].length):-1}function ic(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.W=+i[0],n+i[0].length):-1}function ac(t,e,n){var i=Ws.exec(e.slice(n,n+4));return i?(t.y=+i[0],n+i[0].length):-1}function rc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function oc(t,e,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function sc(t,e,n){var i=Ws.exec(e.slice(n,n+1));return i?(t.q=3*i[0]-3,n+i[0].length):-1}function cc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.m=i[0]-1,n+i[0].length):-1}function lc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.d=+i[0],n+i[0].length):-1}function uc(t,e,n){var i=Ws.exec(e.slice(n,n+3));return i?(t.m=0,t.d=+i[0],n+i[0].length):-1}function dc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.H=+i[0],n+i[0].length):-1}function hc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.M=+i[0],n+i[0].length):-1}function fc(t,e,n){var i=Ws.exec(e.slice(n,n+2));return i?(t.S=+i[0],n+i[0].length):-1}function gc(t,e,n){var i=Ws.exec(e.slice(n,n+3));return i?(t.L=+i[0],n+i[0].length):-1}function pc(t,e,n){var i=Ws.exec(e.slice(n,n+6));return i?(t.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function bc(t,e,n){var i=Ys.exec(e.slice(n,n+1));return i?n+i[0].length:-1}function mc(t,e,n){var i=Ws.exec(e.slice(n));return i?(t.Q=+i[0],n+i[0].length):-1}function yc(t,e,n){var i=Ws.exec(e.slice(n));return i?(t.s=+i[0],n+i[0].length):-1}function vc(t,e){return Zs(t.getDate(),e,2)}function wc(t,e){return Zs(t.getHours(),e,2)}function xc(t,e){return Zs(t.getHours()%12||12,e,2)}function Rc(t,e){return Zs(1+rs.count(ms(t),t),e,3)}function _c(t,e){return Zs(t.getMilliseconds(),e,3)}function kc(t,e){return _c(t,e)+"000"}function Ec(t,e){return Zs(t.getMonth()+1,e,2)}function Cc(t,e){return Zs(t.getMinutes(),e,2)}function Sc(t,e){return Zs(t.getSeconds(),e,2)}function Tc(t){var e=t.getDay();return 0===e?7:e}function Ac(t,e){return Zs(ss.count(ms(t)-1,t),e,2)}function Dc(t){var e=t.getDay();return e>=4||0===e?ds(t):ds.ceil(t)}function Ic(t,e){return t=Dc(t),Zs(ds.count(ms(t),t)+(4===ms(t).getDay()),e,2)}function Lc(t){return t.getDay()}function Oc(t,e){return Zs(cs.count(ms(t)-1,t),e,2)}function Mc(t,e){return Zs(t.getFullYear()%100,e,2)}function Nc(t,e){return Zs((t=Dc(t)).getFullYear()%100,e,2)}function Bc(t,e){return Zs(t.getFullYear()%1e4,e,4)}function Pc(t,e){var n=t.getDay();return Zs((t=n>=4||0===n?ds(t):ds.ceil(t)).getFullYear()%1e4,e,4)}function Fc(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+Zs(e/60|0,"0",2)+Zs(e%60,"0",2)}function jc(t,e){return Zs(t.getUTCDate(),e,2)}function $c(t,e){return Zs(t.getUTCHours(),e,2)}function zc(t,e){return Zs(t.getUTCHours()%12||12,e,2)}function Hc(t,e){return Zs(1+_s.count(Ns(t),t),e,3)}function Uc(t,e){return Zs(t.getUTCMilliseconds(),e,3)}function Vc(t,e){return Uc(t,e)+"000"}function qc(t,e){return Zs(t.getUTCMonth()+1,e,2)}function Wc(t,e){return Zs(t.getUTCMinutes(),e,2)}function Yc(t,e){return Zs(t.getUTCSeconds(),e,2)}function Gc(t){var e=t.getUTCDay();return 0===e?7:e}function Zc(t,e){return Zs(Es.count(Ns(t)-1,t),e,2)}function Kc(t){var e=t.getUTCDay();return e>=4||0===e?As(t):As.ceil(t)}function Xc(t,e){return t=Kc(t),Zs(As.count(Ns(t),t)+(4===Ns(t).getUTCDay()),e,2)}function Jc(t){return t.getUTCDay()}function Qc(t,e){return Zs(Cs.count(Ns(t)-1,t),e,2)}function tl(t,e){return Zs(t.getUTCFullYear()%100,e,2)}function el(t,e){return Zs((t=Kc(t)).getUTCFullYear()%100,e,2)}function nl(t,e){return Zs(t.getUTCFullYear()%1e4,e,4)}function il(t,e){var n=t.getUTCDay();return Zs((t=n>=4||0===n?As(t):As.ceil(t)).getUTCFullYear()%1e4,e,4)}function al(){return"+0000"}function rl(){return"%"}function ol(t){return+t}function sl(t){return Math.floor(+t/1e3)}function cl(t){return Us=Hs(t),Vs=Us.format,Us.parse,Us.utcFormat,Us.utcParse,Us}function ll(t){return new Date(t)}function ul(t){return t instanceof Date?+t:+new Date(+t)}function dl(t,e,n,i,a,r,o,s,c,l){var u=No(),d=u.invert,h=u.domain,f=l(".%L"),g=l(":%S"),p=l("%I:%M"),b=l("%I %p"),m=l("%a %d"),y=l("%b %d"),v=l("%B"),w=l("%Y");function x(t){return(c(t)<t?f:s(t)<t?g:o(t)<t?p:r(t)<t?b:i(t)<t?a(t)<t?m:y:n(t)<t?v:w)(t)}return u.invert=function(t){return new Date(d(t))},u.domain=function(t){return arguments.length?h(Array.from(t,ul)):h().map(ll)},u.ticks=function(e){var n=h();return t(n[0],n[n.length-1],e??10)},u.tickFormat=function(t,e){return null==e?x:l(e)},u.nice=function(t){var n=h();return(!t||"function"!=typeof t.range)&&(t=e(n[0],n[n.length-1],t??10)),t?h(jo(n,t)):u},u.copy=function(){return Oo(u,dl(t,e,n,i,a,r,o,s,c,l))},u}function hl(){return Ro.apply(dl(Ps,Fs,ms,ps,ss,rs,is,es,Qo,Vs).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function fl(t){return function(){return t}}cl({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const gl=Math.abs,pl=Math.atan2,bl=Math.cos,ml=Math.max,yl=Math.min,vl=Math.sin,wl=Math.sqrt,xl=1e-12,Rl=Math.PI,_l=Rl/2,kl=2*Rl;function El(t){return t>1?0:t<-1?Rl:Math.acos(t)}function Cl(t){return t>=1?_l:t<=-1?-_l:Math.asin(t)}function Sl(t){return t.innerRadius}function Tl(t){return t.outerRadius}function Al(t){return t.startAngle}function Dl(t){return t.endAngle}function Il(t){return t&&t.padAngle}function Ll(t,e,n,i,a,r,o,s){var c=n-t,l=i-e,u=o-a,d=s-r,h=d*c-u*l;if(!(h*h<xl))return[t+(h=(u*(e-r)-d*(t-a))/h)*c,e+h*l]}function Ol(t,e,n,i,a,r,o){var s=t-n,c=e-i,l=(o?r:-r)/wl(s*s+c*c),u=l*c,d=-l*s,h=t+u,f=e+d,g=n+u,p=i+d,b=(h+g)/2,m=(f+p)/2,y=g-h,v=p-f,w=y*y+v*v,x=a-r,R=h*p-g*f,_=(v<0?-1:1)*wl(ml(0,x*x*w-R*R)),k=(R*v-y*_)/w,E=(-R*y-v*_)/w,C=(R*v+y*_)/w,S=(-R*y+v*_)/w,T=k-b,A=E-m,D=C-b,I=S-m;return T*T+A*A>D*D+I*I&&(k=C,E=S),{cx:k,cy:E,x01:-u,y01:-d,x11:k*(a/x-1),y11:E*(a/x-1)}}function Ml(){var t=Sl,e=Tl,n=fl(0),i=null,a=Al,r=Dl,o=Il,s=null;function c(){var c,l,u=+t.apply(this,arguments),d=+e.apply(this,arguments),h=a.apply(this,arguments)-_l,f=r.apply(this,arguments)-_l,g=gl(f-h),p=f>h;if(s||(s=c=Wr()),d<u&&(l=d,d=u,u=l),d>xl)if(g>kl-xl)s.moveTo(d*bl(h),d*vl(h)),s.arc(0,0,d,h,f,!p),u>xl&&(s.moveTo(u*bl(f),u*vl(f)),s.arc(0,0,u,f,h,p));else{var b,m,y=h,v=f,w=h,x=f,R=g,_=g,k=o.apply(this,arguments)/2,E=k>xl&&(i?+i.apply(this,arguments):wl(u*u+d*d)),C=yl(gl(d-u)/2,+n.apply(this,arguments)),S=C,T=C;if(E>xl){var A=Cl(E/u*vl(k)),D=Cl(E/d*vl(k));(R-=2*A)>xl?(w+=A*=p?1:-1,x-=A):(R=0,w=x=(h+f)/2),(_-=2*D)>xl?(y+=D*=p?1:-1,v-=D):(_=0,y=v=(h+f)/2)}var I=d*bl(y),L=d*vl(y),O=u*bl(x),M=u*vl(x);if(C>xl){var N,B=d*bl(v),P=d*vl(v),F=u*bl(w),j=u*vl(w);if(g<Rl&&(N=Ll(I,L,F,j,B,P,O,M))){var $=I-N[0],z=L-N[1],H=B-N[0],U=P-N[1],V=1/vl(El(($*H+z*U)/(wl($*$+z*z)*wl(H*H+U*U)))/2),q=wl(N[0]*N[0]+N[1]*N[1]);S=yl(C,(u-q)/(V-1)),T=yl(C,(d-q)/(V+1))}}_>xl?T>xl?(b=Ol(F,j,I,L,d,T,p),m=Ol(B,P,O,M,d,T,p),s.moveTo(b.cx+b.x01,b.cy+b.y01),T<C?s.arc(b.cx,b.cy,T,pl(b.y01,b.x01),pl(m.y01,m.x01),!p):(s.arc(b.cx,b.cy,T,pl(b.y01,b.x01),pl(b.y11,b.x11),!p),s.arc(0,0,d,pl(b.cy+b.y11,b.cx+b.x11),pl(m.cy+m.y11,m.cx+m.x11),!p),s.arc(m.cx,m.cy,T,pl(m.y11,m.x11),pl(m.y01,m.x01),!p))):(s.moveTo(I,L),s.arc(0,0,d,y,v,!p)):s.moveTo(I,L),u>xl&&R>xl?S>xl?(b=Ol(O,M,B,P,u,-S,p),m=Ol(I,L,F,j,u,-S,p),s.lineTo(b.cx+b.x01,b.cy+b.y01),S<C?s.arc(b.cx,b.cy,S,pl(b.y01,b.x01),pl(m.y01,m.x01),!p):(s.arc(b.cx,b.cy,S,pl(b.y01,b.x01),pl(b.y11,b.x11),!p),s.arc(0,0,u,pl(b.cy+b.y11,b.cx+b.x11),pl(m.cy+m.y11,m.cx+m.x11),p),s.arc(m.cx,m.cy,S,pl(m.y11,m.x11),pl(m.y01,m.x01),!p))):s.arc(0,0,u,x,w,p):s.lineTo(O,M)}else s.moveTo(0,0);if(s.closePath(),c)return s=null,c+""||null}return c.centroid=function(){var n=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,i=(+a.apply(this,arguments)+ +r.apply(this,arguments))/2-Rl/2;return[bl(i)*n,vl(i)*n]},c.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:fl(+e),c):t},c.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:fl(+t),c):e},c.cornerRadius=function(t){return arguments.length?(n="function"==typeof t?t:fl(+t),c):n},c.padRadius=function(t){return arguments.length?(i=null==t?null:"function"==typeof t?t:fl(+t),c):i},c.startAngle=function(t){return arguments.length?(a="function"==typeof t?t:fl(+t),c):a},c.endAngle=function(t){return arguments.length?(r="function"==typeof t?t:fl(+t),c):r},c.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:fl(+t),c):o},c.context=function(t){return arguments.length?(s=t??null,c):s},c}function Nl(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Bl(t){this._context=t}function Pl(t){return new Bl(t)}function Fl(t){return t[0]}function jl(t){return t[1]}function $l(t,e){var n=fl(!0),i=null,a=Pl,r=null;function o(o){var s,c,l,u=(o=Nl(o)).length,d=!1;for(null==i&&(r=a(l=Wr())),s=0;s<=u;++s)!(s<u&&n(c=o[s],s,o))===d&&((d=!d)?r.lineStart():r.lineEnd()),d&&r.point(+t(c,s,o),+e(c,s,o));if(l)return r=null,l+""||null}return t="function"==typeof t?t:void 0===t?Fl:fl(t),e="function"==typeof e?e:void 0===e?jl:fl(e),o.x=function(e){return arguments.length?(t="function"==typeof e?e:fl(+e),o):t},o.y=function(t){return arguments.length?(e="function"==typeof t?t:fl(+t),o):e},o.defined=function(t){return arguments.length?(n="function"==typeof t?t:fl(!!t),o):n},o.curve=function(t){return arguments.length?(a=t,null!=i&&(r=a(i)),o):a},o.context=function(t){return arguments.length?(null==t?i=r=null:r=a(i=t),o):i},o}function zl(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function Hl(t){return t}function Ul(){var t=Hl,e=zl,n=null,i=fl(0),a=fl(kl),r=fl(0);function o(o){var s,c,l,u,d,h=(o=Nl(o)).length,f=0,g=new Array(h),p=new Array(h),b=+i.apply(this,arguments),m=Math.min(kl,Math.max(-kl,a.apply(this,arguments)-b)),y=Math.min(Math.abs(m)/h,r.apply(this,arguments)),v=y*(m<0?-1:1);for(s=0;s<h;++s)(d=p[g[s]=s]=+t(o[s],s,o))>0&&(f+=d);for(null!=e?g.sort((function(t,n){return e(p[t],p[n])})):null!=n&&g.sort((function(t,e){return n(o[t],o[e])})),s=0,l=f?(m-h*v)/f:0;s<h;++s,b=u)c=g[s],u=b+((d=p[c])>0?d*l:0)+v,p[c]={data:o[c],index:s,value:d,startAngle:b,endAngle:u,padAngle:y};return p}return o.value=function(e){return arguments.length?(t="function"==typeof e?e:fl(+e),o):t},o.sortValues=function(t){return arguments.length?(e=t,n=null,o):e},o.sort=function(t){return arguments.length?(n=t,e=null,o):n},o.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:fl(+t),o):i},o.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:fl(+t),o):a},o.padAngle=function(t){return arguments.length?(r="function"==typeof t?t:fl(+t),o):r},o}Bl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};class Vl{constructor(t,e){this._context=t,this._x=e}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,e,t,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,t,this._y0,t,e)}this._x0=t,this._y0=e}}function ql(t){return new Vl(t,!0)}function Wl(t){return new Vl(t,!1)}function Yl(){}function Gl(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function Zl(t){this._context=t}function Kl(t){return new Zl(t)}function Xl(t){this._context=t}function Jl(t){return new Xl(t)}function Ql(t){this._context=t}function tu(t){return new Ql(t)}function eu(t,e){this._basis=new Zl(t),this._beta=e}Zl.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Gl(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Gl(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Xl.prototype={areaStart:Yl,areaEnd:Yl,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Gl(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Ql.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:Gl(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},eu.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var i,a=t[0],r=e[0],o=t[n]-a,s=e[n]-r,c=-1;++c<=n;)i=c/n,this._basis.point(this._beta*t[c]+(1-this._beta)*(a+i*o),this._beta*e[c]+(1-this._beta)*(r+i*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const nu=function t(e){function n(t){return 1===e?new Zl(t):new eu(t,e)}return n.beta=function(e){return t(+e)},n}(.85);function iu(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function au(t,e){this._context=t,this._k=(1-e)/6}au.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:iu(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:iu(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const ru=function t(e){function n(t){return new au(t,e)}return n.tension=function(e){return t(+e)},n}(0);function ou(t,e){this._context=t,this._k=(1-e)/6}ou.prototype={areaStart:Yl,areaEnd:Yl,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:iu(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const su=function t(e){function n(t){return new ou(t,e)}return n.tension=function(e){return t(+e)},n}(0);function cu(t,e){this._context=t,this._k=(1-e)/6}cu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:iu(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const lu=function t(e){function n(t){return new cu(t,e)}return n.tension=function(e){return t(+e)},n}(0);function uu(t,e,n){var i=t._x1,a=t._y1,r=t._x2,o=t._y2;if(t._l01_a>xl){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,a=(a*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>xl){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);r=(r*l+t._x1*t._l23_2a-e*t._l12_2a)/u,o=(o*l+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(i,a,r,o,t._x2,t._y2)}function du(t,e){this._context=t,this._alpha=e}du.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:uu(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const hu=function t(e){function n(t){return e?new du(t,e):new au(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function fu(t,e){this._context=t,this._alpha=e}fu.prototype={areaStart:Yl,areaEnd:Yl,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:uu(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const gu=function t(e){function n(t){return e?new fu(t,e):new ou(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function pu(t,e){this._context=t,this._alpha=e}pu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:uu(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const bu=function t(e){function n(t){return e?new pu(t,e):new cu(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function mu(t){this._context=t}function yu(t){return new mu(t)}function vu(t){return t<0?-1:1}function wu(t,e,n){var i=t._x1-t._x0,a=e-t._x1,r=(t._y1-t._y0)/(i||a<0&&-0),o=(n-t._y1)/(a||i<0&&-0),s=(r*a+o*i)/(i+a);return(vu(r)+vu(o))*Math.min(Math.abs(r),Math.abs(o),.5*Math.abs(s))||0}function xu(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function Ru(t,e,n){var i=t._x0,a=t._y0,r=t._x1,o=t._y1,s=(r-i)/3;t._context.bezierCurveTo(i+s,a+s*e,r-s,o-s*n,r,o)}function _u(t){this._context=t}function ku(t){this._context=new Eu(t)}function Eu(t){this._context=t}function Cu(t){return new _u(t)}function Su(t){return new ku(t)}function Tu(t){this._context=t}function Au(t){var e,n,i=t.length-1,a=new Array(i),r=new Array(i),o=new Array(i);for(a[0]=0,r[0]=2,o[0]=t[0]+2*t[1],e=1;e<i-1;++e)a[e]=1,r[e]=4,o[e]=4*t[e]+2*t[e+1];for(a[i-1]=2,r[i-1]=7,o[i-1]=8*t[i-1]+t[i],e=1;e<i;++e)n=a[e]/r[e-1],r[e]-=n,o[e]-=n*o[e-1];for(a[i-1]=o[i-1]/r[i-1],e=i-2;e>=0;--e)a[e]=(o[e]-a[e+1])/r[e];for(r[i-1]=(t[i]+a[i-1])/2,e=0;e<i-1;++e)r[e]=2*t[e+1]-a[e+1];return[a,r]}function Du(t){return new Tu(t)}function Iu(t,e){this._context=t,this._t=e}function Lu(t){return new Iu(t,.5)}function Ou(t){return new Iu(t,0)}function Mu(t){return new Iu(t,1)}function Nu(t,e,n){this.k=t,this.x=e,this.y=n}function Bu(t){return(Bu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Pu(t,e){return Pu=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},Pu(t,e)}function Fu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch{return!1}}function ju(t,e,n){return(ju=Fu()?Reflect.construct:function(t,e,n){var i=[null];i.push.apply(i,e);var a=new(Function.bind.apply(t,i));return n&&Pu(a,n.prototype),a}).apply(null,arguments)}function $u(t){return zu(t)||Hu(t)||Uu(t)||qu()}function zu(t){if(Array.isArray(t))return Vu(t)}function Hu(t){if(typeof Symbol<"u"&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function Uu(t,e){if(t){if("string"==typeof t)return Vu(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Vu(t,e)}}function Vu(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}function qu(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}mu.prototype={areaStart:Yl,areaEnd:Yl,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}},_u.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Ru(this,this._t0,xu(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(e=+e,(t=+t)!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,Ru(this,xu(this,n=wu(this,t,e)),n);break;default:Ru(this,this._t0,n=wu(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(ku.prototype=Object.create(_u.prototype)).point=function(t,e){_u.prototype.point.call(this,e,t)},Eu.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,i,a,r){this._context.bezierCurveTo(e,t,i,n,r,a)}},Tu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===n)this._context.lineTo(t[1],e[1]);else for(var i=Au(t),a=Au(e),r=0,o=1;o<n;++r,++o)this._context.bezierCurveTo(i[0][r],a[0][r],i[1][r],a[1][r],t[o],e[o]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},Iu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}},Nu.prototype={constructor:Nu,scale:function(t){return 1===t?this:new Nu(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new Nu(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},Nu.prototype;var Wu=Object.hasOwnProperty,Yu=Object.setPrototypeOf,Gu=Object.isFrozen,Zu=Object.getPrototypeOf,Ku=Object.getOwnPropertyDescriptor,Xu=Object.freeze,Ju=Object.seal,Qu=Object.create,td=typeof Reflect<"u"&&Reflect,ed=td.apply,nd=td.construct;ed||(ed=function(t,e,n){return t.apply(e,n)}),Xu||(Xu=function(t){return t}),Ju||(Ju=function(t){return t}),nd||(nd=function(t,e){return ju(t,$u(e))});var id=gd(Array.prototype.forEach),ad=gd(Array.prototype.pop),rd=gd(Array.prototype.push),od=gd(String.prototype.toLowerCase),sd=gd(String.prototype.toString),cd=gd(String.prototype.match),ld=gd(String.prototype.replace),ud=gd(String.prototype.indexOf),dd=gd(String.prototype.trim),hd=gd(RegExp.prototype.test),fd=pd(TypeError);function gd(t){return function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),a=1;a<n;a++)i[a-1]=arguments[a];return ed(t,e,i)}}function pd(t){return function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return nd(t,n)}}function bd(t,e,n){n=n||od,Yu&&Yu(t,null);for(var i=e.length;i--;){var a=e[i];if("string"==typeof a){var r=n(a);r!==a&&(Gu(e)||(e[i]=r),a=r)}t[a]=!0}return t}function md(t){var e,n=Qu(null);for(e in t)!0===ed(Wu,t,[e])&&(n[e]=t[e]);return n}function yd(t,e){for(;null!==t;){var n=Ku(t,e);if(n){if(n.get)return gd(n.get);if("function"==typeof n.value)return gd(n.value)}t=Zu(t)}function i(t){return console.warn("fallback value for",t),null}return i}var vd=Xu(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),wd=Xu(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),xd=Xu(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Rd=Xu(["animate","color-profile","cursor","discard","fedropshadow","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),_d=Xu(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),kd=Xu(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Ed=Xu(["#text"]),Cd=Xu(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","xmlns","slot"]),Sd=Xu(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Td=Xu(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Ad=Xu(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Dd=Ju(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Id=Ju(/<%[\w\W]*|[\w\W]*%>/gm),Ld=Ju(/\${[\w\W]*}/gm),Od=Ju(/^data-[\-\w.\u00B7-\uFFFF]/),Md=Ju(/^aria-[\-\w]+$/),Nd=Ju(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Bd=Ju(/^(?:\w+script|data):/i),Pd=Ju(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Fd=Ju(/^html$/i),jd=function(){return typeof window>"u"?null:window},$d=function(t,e){if("object"!==Bu(t)||"function"!=typeof t.createPolicy)return null;var n=null,i="data-tt-policy-suffix";e.currentScript&&e.currentScript.hasAttribute(i)&&(n=e.currentScript.getAttribute(i));var a="dompurify"+(n?"#"+n:"");try{return t.createPolicy(a,{createHTML:function(t){return t},createScriptURL:function(t){return t}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}};function zd(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:jd(),e=function(t){return zd(t)};if(e.version="2.4.3",e.removed=[],!t||!t.document||9!==t.document.nodeType)return e.isSupported=!1,e;var n=t.document,i=t.document,a=t.DocumentFragment,r=t.HTMLTemplateElement,o=t.Node,s=t.Element,c=t.NodeFilter,l=t.NamedNodeMap,u=void 0===l?t.NamedNodeMap||t.MozNamedAttrMap:l,d=t.HTMLFormElement,h=t.DOMParser,f=t.trustedTypes,g=s.prototype,p=yd(g,"cloneNode"),b=yd(g,"nextSibling"),m=yd(g,"childNodes"),y=yd(g,"parentNode");if("function"==typeof r){var v=i.createElement("template");v.content&&v.content.ownerDocument&&(i=v.content.ownerDocument)}var w=$d(f,n),x=w?w.createHTML(""):"",R=i,_=R.implementation,k=R.createNodeIterator,E=R.createDocumentFragment,C=R.getElementsByTagName,S=n.importNode,T={};try{T=md(i).documentMode?i.documentMode:{}}catch{}var A={};e.isSupported="function"==typeof y&&_&&typeof _.createHTMLDocument<"u"&&9!==T;var D,I,L=Dd,O=Id,M=Ld,N=Od,B=Md,P=Bd,F=Pd,j=Nd,$=null,z=bd({},[].concat($u(vd),$u(wd),$u(xd),$u(_d),$u(Ed))),H=null,U=bd({},[].concat($u(Cd),$u(Sd),$u(Td),$u(Ad))),V=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),q=null,W=null,Y=!0,G=!0,Z=!1,K=!1,X=!1,J=!1,Q=!1,tt=!1,et=!1,nt=!1,it=!0,at=!1,rt="user-content-",ot=!0,st=!1,ct={},lt=null,ut=bd({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),dt=null,ht=bd({},["audio","video","img","source","image","track"]),ft=null,gt=bd({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),pt="http://www.w3.org/1998/Math/MathML",bt="http://www.w3.org/2000/svg",mt="http://www.w3.org/1999/xhtml",yt=mt,vt=!1,wt=null,xt=bd({},[pt,bt,mt],sd),Rt=["application/xhtml+xml","text/html"],_t="text/html",kt=null,Et=i.createElement("form"),Ct=function(t){return t instanceof RegExp||t instanceof Function},St=function(t){kt&&kt===t||((!t||"object"!==Bu(t))&&(t={}),t=md(t),D=D=-1===Rt.indexOf(t.PARSER_MEDIA_TYPE)?_t:t.PARSER_MEDIA_TYPE,I="application/xhtml+xml"===D?sd:od,$="ALLOWED_TAGS"in t?bd({},t.ALLOWED_TAGS,I):z,H="ALLOWED_ATTR"in t?bd({},t.ALLOWED_ATTR,I):U,wt="ALLOWED_NAMESPACES"in t?bd({},t.ALLOWED_NAMESPACES,sd):xt,ft="ADD_URI_SAFE_ATTR"in t?bd(md(gt),t.ADD_URI_SAFE_ATTR,I):gt,dt="ADD_DATA_URI_TAGS"in t?bd(md(ht),t.ADD_DATA_URI_TAGS,I):ht,lt="FORBID_CONTENTS"in t?bd({},t.FORBID_CONTENTS,I):ut,q="FORBID_TAGS"in t?bd({},t.FORBID_TAGS,I):{},W="FORBID_ATTR"in t?bd({},t.FORBID_ATTR,I):{},ct="USE_PROFILES"in t&&t.USE_PROFILES,Y=!1!==t.ALLOW_ARIA_ATTR,G=!1!==t.ALLOW_DATA_ATTR,Z=t.ALLOW_UNKNOWN_PROTOCOLS||!1,K=t.SAFE_FOR_TEMPLATES||!1,X=t.WHOLE_DOCUMENT||!1,tt=t.RETURN_DOM||!1,et=t.RETURN_DOM_FRAGMENT||!1,nt=t.RETURN_TRUSTED_TYPE||!1,Q=t.FORCE_BODY||!1,it=!1!==t.SANITIZE_DOM,at=t.SANITIZE_NAMED_PROPS||!1,ot=!1!==t.KEEP_CONTENT,st=t.IN_PLACE||!1,j=t.ALLOWED_URI_REGEXP||j,yt=t.NAMESPACE||mt,t.CUSTOM_ELEMENT_HANDLING&&Ct(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(V.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&Ct(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(V.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(V.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),K&&(G=!1),et&&(tt=!0),ct&&($=bd({},$u(Ed)),H=[],!0===ct.html&&(bd($,vd),bd(H,Cd)),!0===ct.svg&&(bd($,wd),bd(H,Sd),bd(H,Ad)),!0===ct.svgFilters&&(bd($,xd),bd(H,Sd),bd(H,Ad)),!0===ct.mathMl&&(bd($,_d),bd(H,Td),bd(H,Ad))),t.ADD_TAGS&&($===z&&($=md($)),bd($,t.ADD_TAGS,I)),t.ADD_ATTR&&(H===U&&(H=md(H)),bd(H,t.ADD_ATTR,I)),t.ADD_URI_SAFE_ATTR&&bd(ft,t.ADD_URI_SAFE_ATTR,I),t.FORBID_CONTENTS&&(lt===ut&&(lt=md(lt)),bd(lt,t.FORBID_CONTENTS,I)),ot&&($["#text"]=!0),X&&bd($,["html","head","body"]),$.table&&(bd($,["tbody"]),delete q.tbody),Xu&&Xu(t),kt=t)},Tt=bd({},["mi","mo","mn","ms","mtext"]),At=bd({},["foreignobject","desc","title","annotation-xml"]),Dt=bd({},["title","style","font","a","script"]),It=bd({},wd);bd(It,xd),bd(It,Rd);var Lt=bd({},_d);bd(Lt,kd);var Ot=function(t){var e=y(t);(!e||!e.tagName)&&(e={namespaceURI:yt,tagName:"template"});var n=od(t.tagName),i=od(e.tagName);return!!wt[t.namespaceURI]&&(t.namespaceURI===bt?e.namespaceURI===mt?"svg"===n:e.namespaceURI===pt?"svg"===n&&("annotation-xml"===i||Tt[i]):Boolean(It[n]):t.namespaceURI===pt?e.namespaceURI===mt?"math"===n:e.namespaceURI===bt?"math"===n&&At[i]:Boolean(Lt[n]):t.namespaceURI===mt?!(e.namespaceURI===bt&&!At[i]||e.namespaceURI===pt&&!Tt[i])&&!Lt[n]&&(Dt[n]||!It[n]):!("application/xhtml+xml"!==D||!wt[t.namespaceURI]))},Mt=function(t){rd(e.removed,{element:t});try{t.parentNode.removeChild(t)}catch{try{t.outerHTML=x}catch{t.remove()}}},Nt=function(t,n){try{rd(e.removed,{attribute:n.getAttributeNode(t),from:n})}catch{rd(e.removed,{attribute:null,from:n})}if(n.removeAttribute(t),"is"===t&&!H[t])if(tt||et)try{Mt(n)}catch{}else try{n.setAttribute(t,"")}catch{}},Bt=function(t){var e,n;if(Q)t="<remove></remove>"+t;else{var a=cd(t,/^[\r\n\t ]+/);n=a&&a[0]}"application/xhtml+xml"===D&&yt===mt&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");var r=w?w.createHTML(t):t;if(yt===mt)try{e=(new h).parseFromString(r,D)}catch{}if(!e||!e.documentElement){e=_.createDocument(yt,"template",null);try{e.documentElement.innerHTML=vt?x:r}catch{}}var o=e.body||e.documentElement;return t&&n&&o.insertBefore(i.createTextNode(n),o.childNodes[0]||null),yt===mt?C.call(e,X?"html":"body")[0]:X?e.documentElement:o},Pt=function(t){return k.call(t.ownerDocument||t,t,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT,null,!1)},Ft=function(t){return t instanceof d&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof u)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},jt=function(t){return"object"===Bu(o)?t instanceof o:t&&"object"===Bu(t)&&"number"==typeof t.nodeType&&"string"==typeof t.nodeName},$t=function(t,n,i){A[t]&&id(A[t],(function(t){t.call(e,n,i,kt)}))},zt=function(t){var n;if($t("beforeSanitizeElements",t,null),Ft(t)||hd(/[\u0080-\uFFFF]/,t.nodeName))return Mt(t),!0;var i=I(t.nodeName);if($t("uponSanitizeElement",t,{tagName:i,allowedTags:$}),t.hasChildNodes()&&!jt(t.firstElementChild)&&(!jt(t.content)||!jt(t.content.firstElementChild))&&hd(/<[/\w]/g,t.innerHTML)&&hd(/<[/\w]/g,t.textContent)||"select"===i&&hd(/<template/i,t.innerHTML))return Mt(t),!0;if(!$[i]||q[i]){if(!q[i]&&Ut(i)&&(V.tagNameCheck instanceof RegExp&&hd(V.tagNameCheck,i)||V.tagNameCheck instanceof Function&&V.tagNameCheck(i)))return!1;if(ot&&!lt[i]){var a=y(t)||t.parentNode,r=m(t)||t.childNodes;if(r&&a)for(var o=r.length-1;o>=0;--o)a.insertBefore(p(r[o],!0),b(t))}return Mt(t),!0}return t instanceof s&&!Ot(t)||("noscript"===i||"noembed"===i)&&hd(/<\/no(script|embed)/i,t.innerHTML)?(Mt(t),!0):(K&&3===t.nodeType&&(n=t.textContent,n=ld(n,L," "),n=ld(n,O," "),n=ld(n,M," "),t.textContent!==n&&(rd(e.removed,{element:t.cloneNode()}),t.textContent=n)),$t("afterSanitizeElements",t,null),!1)},Ht=function(t,e,n){if(it&&("id"===e||"name"===e)&&(n in i||n in Et))return!1;if((!G||W[e]||!hd(N,e))&&(!Y||!hd(B,e)))if(!H[e]||W[e]){if(!(Ut(t)&&(V.tagNameCheck instanceof RegExp&&hd(V.tagNameCheck,t)||V.tagNameCheck instanceof Function&&V.tagNameCheck(t))&&(V.attributeNameCheck instanceof RegExp&&hd(V.attributeNameCheck,e)||V.attributeNameCheck instanceof Function&&V.attributeNameCheck(e))||"is"===e&&V.allowCustomizedBuiltInElements&&(V.tagNameCheck instanceof RegExp&&hd(V.tagNameCheck,n)||V.tagNameCheck instanceof Function&&V.tagNameCheck(n))))return!1}else if(!ft[e]&&!hd(j,ld(n,F,""))&&("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==ud(n,"data:")||!dt[t])&&(!Z||hd(P,ld(n,F,"")))&&n)return!1;return!0},Ut=function(t){return t.indexOf("-")>0},Vt=function(t){var n,i,a,r;$t("beforeSanitizeAttributes",t,null);var o=t.attributes;if(o){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:H};for(r=o.length;r--;){var c=n=o[r],l=c.name,u=c.namespaceURI;if(i="value"===l?n.value:dd(n.value),a=I(l),s.attrName=a,s.attrValue=i,s.keepAttr=!0,s.forceKeepAttr=void 0,$t("uponSanitizeAttribute",t,s),i=s.attrValue,!s.forceKeepAttr&&(Nt(l,t),s.keepAttr)){if(hd(/\/>/i,i)){Nt(l,t);continue}K&&(i=ld(i,L," "),i=ld(i,O," "),i=ld(i,M," "));var d=I(t.nodeName);if(Ht(d,a,i)){if(at&&("id"===a||"name"===a)&&(Nt(l,t),i=rt+i),w&&"object"===Bu(f)&&"function"==typeof f.getAttributeType&&!u)switch(f.getAttributeType(d,a)){case"TrustedHTML":i=w.createHTML(i);break;case"TrustedScriptURL":i=w.createScriptURL(i)}try{u?t.setAttributeNS(u,l,i):t.setAttribute(l,i),ad(e.removed)}catch{}}}}$t("afterSanitizeAttributes",t,null)}},qt=function t(e){var n,i=Pt(e);for($t("beforeSanitizeShadowDOM",e,null);n=i.nextNode();)$t("uponSanitizeShadowNode",n,null),!zt(n)&&(n.content instanceof a&&t(n.content),Vt(n));$t("afterSanitizeShadowDOM",e,null)};return e.sanitize=function(i){var r,s,c,l,u,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if((vt=!i)&&(i="\x3c!--\x3e"),"string"!=typeof i&&!jt(i)){if("function"!=typeof i.toString)throw fd("toString is not a function");if("string"!=typeof(i=i.toString()))throw fd("dirty is not a string, aborting")}if(!e.isSupported){if("object"===Bu(t.toStaticHTML)||"function"==typeof t.toStaticHTML){if("string"==typeof i)return t.toStaticHTML(i);if(jt(i))return t.toStaticHTML(i.outerHTML)}return i}if(J||St(d),e.removed=[],"string"==typeof i&&(st=!1),st){if(i.nodeName){var h=I(i.nodeName);if(!$[h]||q[h])throw fd("root node is forbidden and cannot be sanitized in-place")}}else if(i instanceof o)1===(s=(r=Bt("\x3c!----\x3e")).ownerDocument.importNode(i,!0)).nodeType&&"BODY"===s.nodeName||"HTML"===s.nodeName?r=s:r.appendChild(s);else{if(!tt&&!K&&!X&&-1===i.indexOf("<"))return w&&nt?w.createHTML(i):i;if(!(r=Bt(i)))return tt?null:nt?x:""}r&&Q&&Mt(r.firstChild);for(var f=Pt(st?i:r);c=f.nextNode();)3===c.nodeType&&c===l||zt(c)||(c.content instanceof a&&qt(c.content),Vt(c),l=c);if(l=null,st)return i;if(tt){if(et)for(u=E.call(r.ownerDocument);r.firstChild;)u.appendChild(r.firstChild);else u=r;return H.shadowroot&&(u=S.call(n,u,!0)),u}var g=X?r.outerHTML:r.innerHTML;return X&&$["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&hd(Fd,r.ownerDocument.doctype.name)&&(g="<!DOCTYPE "+r.ownerDocument.doctype.name+">\n"+g),K&&(g=ld(g,L," "),g=ld(g,O," "),g=ld(g,M," ")),w&&nt?w.createHTML(g):g},e.setConfig=function(t){St(t),J=!0},e.clearConfig=function(){kt=null,J=!1},e.isValidAttribute=function(t,e,n){kt||St({});var i=I(t),a=I(e);return Ht(i,a,n)},e.addHook=function(t,e){"function"==typeof e&&(A[t]=A[t]||[],rd(A[t],e))},e.removeHook=function(t){if(A[t])return ad(A[t])},e.removeHooks=function(t){A[t]&&(A[t]=[])},e.removeAllHooks=function(){A={}},e}var Hd=zd();const Ud=t=>t?Kd(t).replace(/\\n/g,"#br#").split("#br#"):[""],Vd=t=>Hd.sanitize(t),qd=(t,e)=>{var n;if(!1!==(null==(n=e.flowchart)?void 0:n.htmlLabels)){const n=e.securityLevel;"antiscript"===n||"strict"===n?t=Vd(t):"loose"!==n&&(t=(t=(t=Kd(t)).replace(/</g,"<").replace(/>/g,">")).replace(/=/g,"="),t=Zd(t))}return t},Wd=(t,e)=>t&&(t=e.dompurifyConfig?Hd.sanitize(qd(t,e),e.dompurifyConfig).toString():Hd.sanitize(qd(t,e),{FORBID_TAGS:["style"]}).toString()),Yd=(t,e)=>"string"==typeof t?Wd(t,e):t.flat().map((t=>Wd(t,e))),Gd=/<br\s*\/?>/gi,Zd=t=>t.replace(/#br#/g,"<br/>"),Kd=t=>t.replace(Gd,"#br#"),Xd=t=>!(!1===t||["false","null","0"].includes(String(t).trim().toLowerCase())),Jd=function(t){let e=t;if(t.split("~").length-1>=2){let t=e;do{e=t,t=e.replace(/~([^\s,:;]+)~/,"<$1>")}while(t!=e);return Jd(t)}return e},Qd={getRows:Ud,sanitizeText:Wd,sanitizeTextOrArray:Yd,hasBreaks:t=>Gd.test(t),splitBreaks:t=>t.split(Gd),lineBreakRegex:Gd,removeScript:Vd,getUrl:t=>{let e="";return t&&(e=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,e=e.replaceAll(/\(/g,"\\("),e=e.replaceAll(/\)/g,"\\)")),e},evaluate:Xd},th={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t),hsl2rgb:({h:t,s:e,l:n},i)=>{if(!e)return 2.55*n;t/=360,e/=100;const a=(n/=100)<.5?n*(1+e):n+e-n*e,r=2*n-a;switch(i){case"r":return 255*th.hue2rgb(r,a,t+1/3);case"g":return 255*th.hue2rgb(r,a,t);case"b":return 255*th.hue2rgb(r,a,t-1/3)}},rgb2hsl:({r:t,g:e,b:n},i)=>{t/=255,e/=255,n/=255;const a=Math.max(t,e,n),r=Math.min(t,e,n),o=(a+r)/2;if("l"===i)return 100*o;if(a===r)return 0;const s=a-r;if("s"===i)return 100*(o>.5?s/(2-a-r):s/(a+r));switch(a){case t:return 60*((e-n)/s+(e<n?6:0));case e:return 60*((n-t)/s+2);case n:return 60*((t-e)/s+4);default:return-1}}},eh={channel:th,lang:{clamp:(t,e,n)=>e>n?Math.min(e,Math.max(n,t)):Math.min(n,Math.max(e,t)),round:t=>Math.round(1e10*t)/1e10},unit:{dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}}},nh={};for(let t=0;t<=255;t++)nh[t]=eh.unit.dec2hex(t);const ih={ALL:0,RGB:1,HSL:2};class ah{constructor(){this.type=ih.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=ih.ALL}is(t){return this.type===t}}const rh=ah;class oh{constructor(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new rh}set(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=ih.ALL,this}_ensureHSL(){const t=this.data,{h:e,s:n,l:i}=t;void 0===e&&(t.h=eh.channel.rgb2hsl(t,"h")),void 0===n&&(t.s=eh.channel.rgb2hsl(t,"s")),void 0===i&&(t.l=eh.channel.rgb2hsl(t,"l"))}_ensureRGB(){const t=this.data,{r:e,g:n,b:i}=t;void 0===e&&(t.r=eh.channel.hsl2rgb(t,"r")),void 0===n&&(t.g=eh.channel.hsl2rgb(t,"g")),void 0===i&&(t.b=eh.channel.hsl2rgb(t,"b"))}get r(){const t=this.data,e=t.r;return this.type.is(ih.HSL)||void 0===e?(this._ensureHSL(),eh.channel.hsl2rgb(t,"r")):e}get g(){const t=this.data,e=t.g;return this.type.is(ih.HSL)||void 0===e?(this._ensureHSL(),eh.channel.hsl2rgb(t,"g")):e}get b(){const t=this.data,e=t.b;return this.type.is(ih.HSL)||void 0===e?(this._ensureHSL(),eh.channel.hsl2rgb(t,"b")):e}get h(){const t=this.data,e=t.h;return this.type.is(ih.RGB)||void 0===e?(this._ensureRGB(),eh.channel.rgb2hsl(t,"h")):e}get s(){const t=this.data,e=t.s;return this.type.is(ih.RGB)||void 0===e?(this._ensureRGB(),eh.channel.rgb2hsl(t,"s")):e}get l(){const t=this.data,e=t.l;return this.type.is(ih.RGB)||void 0===e?(this._ensureRGB(),eh.channel.rgb2hsl(t,"l")):e}get a(){return this.data.a}set r(t){this.type.set(ih.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(ih.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(ih.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(ih.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(ih.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(ih.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}const sh=new oh({r:0,g:0,b:0,a:0},"transparent"),ch={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(35!==t.charCodeAt(0))return;const e=t.match(ch.re);if(!e)return;const n=e[1],i=parseInt(n,16),a=n.length,r=a%4==0,o=a>4,s=o?1:17,c=o?8:4,l=r?0:-1,u=o?255:15;return sh.set({r:(i>>c*(l+3)&u)*s,g:(i>>c*(l+2)&u)*s,b:(i>>c*(l+1)&u)*s,a:r?(i&u)*s/255:1},t)},stringify:t=>{const{r:e,g:n,b:i,a:a}=t;return a<1?`#${nh[Math.round(e)]}${nh[Math.round(n)]}${nh[Math.round(i)]}${nh[Math.round(255*a)]}`:`#${nh[Math.round(e)]}${nh[Math.round(n)]}${nh[Math.round(i)]}`}},lh=ch,uh={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{const e=t.match(uh.hueRe);if(e){const[,t,n]=e;switch(n){case"grad":return eh.channel.clamp.h(.9*parseFloat(t));case"rad":return eh.channel.clamp.h(180*parseFloat(t)/Math.PI);case"turn":return eh.channel.clamp.h(360*parseFloat(t))}}return eh.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(104!==e&&72!==e)return;const n=t.match(uh.re);if(!n)return;const[,i,a,r,o,s]=n;return sh.set({h:uh._hue2deg(i),s:eh.channel.clamp.s(parseFloat(a)),l:eh.channel.clamp.l(parseFloat(r)),a:o?eh.channel.clamp.a(s?parseFloat(o)/100:parseFloat(o)):1},t)},stringify:t=>{const{h:e,s:n,l:i,a:a}=t;return a<1?`hsla(${eh.lang.round(e)}, ${eh.lang.round(n)}%, ${eh.lang.round(i)}%, ${a})`:`hsl(${eh.lang.round(e)}, ${eh.lang.round(n)}%, ${eh.lang.round(i)}%)`}},dh=uh,hh={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();const e=hh.colors[t];if(e)return lh.parse(e)},stringify:t=>{const e=lh.stringify(t);for(const n in hh.colors)if(hh.colors[n]===e)return n}},fh=hh,gh={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{const e=t.charCodeAt(0);if(114!==e&&82!==e)return;const n=t.match(gh.re);if(!n)return;const[,i,a,r,o,s,c,l,u]=n;return sh.set({r:eh.channel.clamp.r(a?2.55*parseFloat(i):parseFloat(i)),g:eh.channel.clamp.g(o?2.55*parseFloat(r):parseFloat(r)),b:eh.channel.clamp.b(c?2.55*parseFloat(s):parseFloat(s)),a:l?eh.channel.clamp.a(u?parseFloat(l)/100:parseFloat(l)):1},t)},stringify:t=>{const{r:e,g:n,b:i,a:a}=t;return a<1?`rgba(${eh.lang.round(e)}, ${eh.lang.round(n)}, ${eh.lang.round(i)}, ${eh.lang.round(a)})`:`rgb(${eh.lang.round(e)}, ${eh.lang.round(n)}, ${eh.lang.round(i)})`}},ph=gh,bh={format:{keyword:fh,hex:lh,rgb:ph,rgba:ph,hsl:dh,hsla:dh},parse:t=>{if("string"!=typeof t)return t;const e=lh.parse(t)||ph.parse(t)||dh.parse(t)||fh.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(ih.HSL)||void 0===t.data.r?dh.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?ph.stringify(t):lh.stringify(t)},mh=(t,e)=>{const n=bh.parse(t);for(const i in e)n[i]=eh.channel.clamp[i](e[i]);return bh.stringify(n)},yh=(t,e,n=0,i=1)=>{if("number"!=typeof t)return mh(t,{a:e});const a=sh.set({r:eh.channel.clamp.r(t),g:eh.channel.clamp.g(e),b:eh.channel.clamp.b(n),a:eh.channel.clamp.a(i)});return bh.stringify(a)},vh=t=>{const{r:e,g:n,b:i}=bh.parse(t),a=.2126*eh.channel.toLinear(e)+.7152*eh.channel.toLinear(n)+.0722*eh.channel.toLinear(i);return eh.lang.round(a)},wh=t=>vh(t)>=.5,xh=t=>!wh(t),Rh=(t,e,n)=>{const i=bh.parse(t),a=i[e],r=eh.channel.clamp[e](a+n);return a!==r&&(i[e]=r),bh.stringify(i)},_h=(t,e)=>Rh(t,"l",e),kh=(t,e)=>Rh(t,"l",-e),Eh=(t,e)=>{const n=bh.parse(t),i={};for(const a in e)e[a]&&(i[a]=n[a]+e[a]);return mh(t,i)},Ch=(t,e,n=50)=>{const{r:i,g:a,b:r,a:o}=bh.parse(t),{r:s,g:c,b:l,a:u}=bh.parse(e),d=n/100,h=2*d-1,f=o-u,g=((h*f==-1?h:(h+f)/(1+h*f))+1)/2,p=1-g;return yh(i*g+s*p,a*g+c*p,r*g+l*p,o*d+u*(1-d))},Sh=(t,e=100)=>{const n=bh.parse(t);return n.r=255-n.r,n.g=255-n.g,n.b=255-n.b,Ch(n,t,e)},Th=(t,e)=>Eh(t,e?{s:-40,l:10}:{s:-40,l:-10}),Ah="#ffffff",Dh="#f2f2f2";let Ih=class{constructor(){this.background="#f4f4f4",this.primaryColor="#fff4dd",this.noteBkgColor="#fff5ad",this.noteTextColor="#333",this.THEME_COLOR_LIMIT=12,this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px"}updateColors(){if(this.primaryTextColor=this.primaryTextColor||(this.darkMode?"#eee":"#333"),this.secondaryColor=this.secondaryColor||Eh(this.primaryColor,{h:-120}),this.tertiaryColor=this.tertiaryColor||Eh(this.primaryColor,{h:180,l:5}),this.primaryBorderColor=this.primaryBorderColor||Th(this.primaryColor,this.darkMode),this.secondaryBorderColor=this.secondaryBorderColor||Th(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=this.tertiaryBorderColor||Th(this.tertiaryColor,this.darkMode),this.noteBorderColor=this.noteBorderColor||Th(this.noteBkgColor,this.darkMode),this.noteBkgColor=this.noteBkgColor||"#fff5ad",this.noteTextColor=this.noteTextColor||"#333",this.secondaryTextColor=this.secondaryTextColor||Sh(this.secondaryColor),this.tertiaryTextColor=this.tertiaryTextColor||Sh(this.tertiaryColor),this.lineColor=this.lineColor||Sh(this.background),this.textColor=this.textColor||this.primaryTextColor,this.nodeBkg=this.nodeBkg||this.primaryColor,this.mainBkg=this.mainBkg||this.primaryColor,this.nodeBorder=this.nodeBorder||this.primaryBorderColor,this.clusterBkg=this.clusterBkg||this.tertiaryColor,this.clusterBorder=this.clusterBorder||this.tertiaryBorderColor,this.defaultLinkColor=this.defaultLinkColor||this.lineColor,this.titleColor=this.titleColor||this.tertiaryTextColor,this.edgeLabelBackground=this.edgeLabelBackground||(this.darkMode?kh(this.secondaryColor,30):this.secondaryColor),this.nodeTextColor=this.nodeTextColor||this.primaryTextColor,this.actorBorder=this.actorBorder||this.primaryBorderColor,this.actorBkg=this.actorBkg||this.mainBkg,this.actorTextColor=this.actorTextColor||this.primaryTextColor,this.actorLineColor=this.actorLineColor||"grey",this.labelBoxBkgColor=this.labelBoxBkgColor||this.actorBkg,this.signalColor=this.signalColor||this.textColor,this.signalTextColor=this.signalTextColor||this.textColor,this.labelBoxBorderColor=this.labelBoxBorderColor||this.actorBorder,this.labelTextColor=this.labelTextColor||this.actorTextColor,this.loopTextColor=this.loopTextColor||this.actorTextColor,this.activationBorderColor=this.activationBorderColor||kh(this.secondaryColor,10),this.activationBkgColor=this.activationBkgColor||this.secondaryColor,this.sequenceNumberColor=this.sequenceNumberColor||Sh(this.lineColor),this.sectionBkgColor=this.sectionBkgColor||this.tertiaryColor,this.altSectionBkgColor=this.altSectionBkgColor||"white",this.sectionBkgColor=this.sectionBkgColor||this.secondaryColor,this.sectionBkgColor2=this.sectionBkgColor2||this.primaryColor,this.excludeBkgColor=this.excludeBkgColor||"#eeeeee",this.taskBorderColor=this.taskBorderColor||this.primaryBorderColor,this.taskBkgColor=this.taskBkgColor||this.primaryColor,this.activeTaskBorderColor=this.activeTaskBorderColor||this.primaryColor,this.activeTaskBkgColor=this.activeTaskBkgColor||_h(this.primaryColor,23),this.gridColor=this.gridColor||"lightgrey",this.doneTaskBkgColor=this.doneTaskBkgColor||"lightgrey",this.doneTaskBorderColor=this.doneTaskBorderColor||"grey",this.critBorderColor=this.critBorderColor||"#ff8888",this.critBkgColor=this.critBkgColor||"red",this.todayLineColor=this.todayLineColor||"red",this.taskTextColor=this.taskTextColor||this.textColor,this.taskTextOutsideColor=this.taskTextOutsideColor||this.textColor,this.taskTextLightColor=this.taskTextLightColor||this.textColor,this.taskTextColor=this.taskTextColor||this.primaryTextColor,this.taskTextDarkColor=this.taskTextDarkColor||this.textColor,this.taskTextClickableColor=this.taskTextClickableColor||"#003163",this.personBorder=this.personBorder||this.primaryBorderColor,this.personBkg=this.personBkg||this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||this.tertiaryColor,this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.specialStateColor=this.lineColor,this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Eh(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Eh(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Eh(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Eh(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Eh(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Eh(this.primaryColor,{h:210,l:150}),this.cScale9=this.cScale9||Eh(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Eh(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Eh(this.primaryColor,{h:330}),this.darkMode)for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScale"+e]=kh(this["cScale"+e],75);else for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScale"+e]=kh(this["cScale"+e],25);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleInv"+e]=this["cScaleInv"+e]||Sh(this["cScale"+e]);for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this.darkMode?this["cScalePeer"+e]=this["cScalePeer"+e]||_h(this["cScale"+e],10):this["cScalePeer"+e]=this["cScalePeer"+e]||kh(this["cScale"+e],10);this.scaleLabelColor=this.scaleLabelColor||this.labelTextColor;for(let e=0;e<this.THEME_COLOR_LIMIT;e++)this["cScaleLabel"+e]=this["cScaleLabel"+e]||this.scaleLabelColor;const t=this.darkMode?-4:-1;for(let e=0;e<5;e++)this["surface"+e]=this["surface"+e]||Eh(this.mainBkg,{h:180,s:-15,l:t*(5+3*e)}),this["surfacePeer"+e]=this["surfacePeer"+e]||Eh(this.mainBkg,{h:180,s:-15,l:t*(8+3*e)});this.classText=this.classText||this.textColor,this.fillType0=this.fillType0||this.primaryColor,this.fillType1=this.fillType1||this.secondaryColor,this.fillType2=this.fillType2||Eh(this.primaryColor,{h:64}),this.fillType3=this.fillType3||Eh(this.secondaryColor,{h:64}),this.fillType4=this.fillType4||Eh(this.primaryColor,{h:-64}),this.fillType5=this.fillType5||Eh(this.secondaryColor,{h:-64}),this.fillType6=this.fillType6||Eh(this.primaryColor,{h:128}),this.fillType7=this.fillType7||Eh(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||Eh(this.primaryColor,{l:-10}),this.pie5=this.pie5||Eh(this.secondaryColor,{l:-10}),this.pie6=this.pie6||Eh(this.tertiaryColor,{l:-10}),this.pie7=this.pie7||Eh(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||Eh(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||Eh(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||Eh(this.primaryColor,{h:60,l:-20}),this.pie11=this.pie11||Eh(this.primaryColor,{h:-60,l:-20}),this.pie12=this.pie12||Eh(this.primaryColor,{h:120,l:-10}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?kh(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||Eh(this.primaryColor,{h:-30}),this.git4=this.git4||Eh(this.primaryColor,{h:-60}),this.git5=this.git5||Eh(this.primaryColor,{h:-90}),this.git6=this.git6||Eh(this.primaryColor,{h:60}),this.git7=this.git7||Eh(this.primaryColor,{h:120}),this.darkMode?(this.git0=_h(this.git0,25),this.git1=_h(this.git1,25),this.git2=_h(this.git2,25),this.git3=_h(this.git3,25),this.git4=_h(this.git4,25),this.git5=_h(this.git5,25),this.git6=_h(this.git6,25),this.git7=_h(this.git7,25)):(this.git0=kh(this.git0,25),this.git1=kh(this.git1,25),this.git2=kh(this.git2,25),this.git3=kh(this.git3,25),this.git4=kh(this.git4,25),this.git5=kh(this.git5,25),this.git6=kh(this.git6,25),this.git7=kh(this.git7,25)),this.gitInv0=this.gitInv0||Sh(this.git0),this.gitInv1=this.gitInv1||Sh(this.git1),this.gitInv2=this.gitInv2||Sh(this.git2),this.gitInv3=this.gitInv3||Sh(this.git3),this.gitInv4=this.gitInv4||Sh(this.git4),this.gitInv5=this.gitInv5||Sh(this.git5),this.gitInv6=this.gitInv6||Sh(this.git6),this.gitInv7=this.gitInv7||Sh(this.git7),this.branchLabelColor=this.branchLabelColor||(this.darkMode?"black":this.labelTextColor),this.gitBranchLabel0=this.gitBranchLabel0||this.branchLabelColor,this.gitBranchLabel1=this.gitBranchLabel1||this.branchLabelColor,this.gitBranchLabel2=this.gitBranchLabel2||this.branchLabelColor,this.gitBranchLabel3=this.gitBranchLabel3||this.branchLabelColor,this.gitBranchLabel4=this.gitBranchLabel4||this.branchLabelColor,this.gitBranchLabel5=this.gitBranchLabel5||this.branchLabelColor,this.gitBranchLabel6=this.gitBranchLabel6||this.branchLabelColor,this.gitBranchLabel7=this.gitBranchLabel7||this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Dh}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};const Lh=t=>{const e=new Ih;return e.calculate(t),e};let Oh=class{constructor(){this.background="#333",this.primaryColor="#1f2020",this.secondaryColor=_h(this.primaryColor,16),this.tertiaryColor=Eh(this.primaryColor,{h:-160}),this.primaryBorderColor=Sh(this.background),this.secondaryBorderColor=Th(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Th(this.tertiaryColor,this.darkMode),this.primaryTextColor=Sh(this.primaryColor),this.secondaryTextColor=Sh(this.secondaryColor),this.tertiaryTextColor=Sh(this.tertiaryColor),this.lineColor=Sh(this.background),this.textColor=Sh(this.background),this.mainBkg="#1f2020",this.secondBkg="calculated",this.mainContrastColor="lightgrey",this.darkTextColor=_h(Sh("#323D47"),10),this.lineColor="calculated",this.border1="#81B1DB",this.border2=yh(255,255,255,.25),this.arrowheadColor="calculated",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#181818",this.textColor="#ccc",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#F9FFFE",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="calculated",this.activationBkgColor="calculated",this.sequenceNumberColor="black",this.sectionBkgColor=kh("#EAE8D9",30),this.altSectionBkgColor="calculated",this.sectionBkgColor2="#EAE8D9",this.taskBorderColor=yh(255,255,255,70),this.taskBkgColor="calculated",this.taskTextColor="calculated",this.taskTextLightColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor=yh(255,255,255,50),this.activeTaskBkgColor="#81B1DB",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="grey",this.critBorderColor="#E83737",this.critBkgColor="#E83737",this.taskTextDarkColor="calculated",this.todayLineColor="#DB5757",this.personBorder="calculated",this.personBkg="calculated",this.labelColor="calculated",this.errorBkgColor="#a44141",this.errorTextColor="#ddd"}updateColors(){this.secondBkg=_h(this.mainBkg,16),this.lineColor=this.mainContrastColor,this.arrowheadColor=this.mainContrastColor,this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.edgeLabelBackground=_h(this.labelBackground,25),this.actorBorder=this.border1,this.actorBkg=this.mainBkg,this.actorTextColor=this.mainContrastColor,this.actorLineColor=this.mainContrastColor,this.signalColor=this.mainContrastColor,this.signalTextColor=this.mainContrastColor,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.mainContrastColor,this.loopTextColor=this.mainContrastColor,this.noteBorderColor=this.secondaryBorderColor,this.noteBkgColor=this.secondBkg,this.noteTextColor=this.secondaryTextColor,this.activationBorderColor=this.border1,this.activationBkgColor=this.secondBkg,this.altSectionBkgColor=this.background,this.taskBkgColor=_h(this.mainBkg,23),this.taskTextColor=this.darkTextColor,this.taskTextLightColor=this.mainContrastColor,this.taskTextOutsideColor=this.taskTextLightColor,this.gridColor=this.mainContrastColor,this.doneTaskBkgColor=this.mainContrastColor,this.taskTextDarkColor=this.darkTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#555",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#f4f4f4",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Eh(this.primaryColor,{h:64}),this.fillType3=Eh(this.secondaryColor,{h:64}),this.fillType4=Eh(this.primaryColor,{h:-64}),this.fillType5=Eh(this.secondaryColor,{h:-64}),this.fillType6=Eh(this.primaryColor,{h:128}),this.fillType7=Eh(this.secondaryColor,{h:128}),this.cScale1=this.cScale1||"#0b0000",this.cScale2=this.cScale2||"#4d1037",this.cScale3=this.cScale3||"#3f5258",this.cScale4=this.cScale4||"#4f2f1b",this.cScale5=this.cScale5||"#6e0a0a",this.cScale6=this.cScale6||"#3b0048",this.cScale7=this.cScale7||"#995a01",this.cScale8=this.cScale8||"#154706",this.cScale9=this.cScale9||"#161722",this.cScale10=this.cScale10||"#00296f",this.cScale11=this.cScale11||"#01629c",this.cScale12=this.cScale12||"#010029",this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Eh(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Eh(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Eh(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Eh(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Eh(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Eh(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Eh(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Eh(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Eh(this.primaryColor,{h:330});for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||Sh(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScalePeer"+t]=this["cScalePeer"+t]||_h(this["cScale"+t],10);for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||Eh(this.mainBkg,{h:30,s:-30,l:-(4*t-10)}),this["surfacePeer"+t]=this["surfacePeer"+t]||Eh(this.mainBkg,{h:30,s:-30,l:-(4*t-7)});this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.classText=this.primaryTextColor,this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||(this.darkMode?kh(this.secondaryColor,30):this.secondaryColor),this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=_h(this.secondaryColor,20),this.git1=_h(this.pie2||this.secondaryColor,20),this.git2=_h(this.pie3||this.tertiaryColor,20),this.git3=_h(this.pie4||Eh(this.primaryColor,{h:-30}),20),this.git4=_h(this.pie5||Eh(this.primaryColor,{h:-60}),20),this.git5=_h(this.pie6||Eh(this.primaryColor,{h:-90}),10),this.git6=_h(this.pie7||Eh(this.primaryColor,{h:60}),10),this.git7=_h(this.pie8||Eh(this.primaryColor,{h:120}),20),this.gitInv0=this.gitInv0||Sh(this.git0),this.gitInv1=this.gitInv1||Sh(this.git1),this.gitInv2=this.gitInv2||Sh(this.git2),this.gitInv3=this.gitInv3||Sh(this.git3),this.gitInv4=this.gitInv4||Sh(this.git4),this.gitInv5=this.gitInv5||Sh(this.git5),this.gitInv6=this.gitInv6||Sh(this.git6),this.gitInv7=this.gitInv7||Sh(this.git7),this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||_h(this.background,12),this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||_h(this.background,2)}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};const Mh=t=>{const e=new Oh;return e.calculate(t),e};let Nh=class{constructor(){this.background="#f4f4f4",this.primaryColor="#ECECFF",this.secondaryColor=Eh(this.primaryColor,{h:120}),this.secondaryColor="#ffffde",this.tertiaryColor=Eh(this.primaryColor,{h:-160}),this.primaryBorderColor=Th(this.primaryColor,this.darkMode),this.secondaryBorderColor=Th(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Th(this.tertiaryColor,this.darkMode),this.primaryTextColor=Sh(this.primaryColor),this.secondaryTextColor=Sh(this.secondaryColor),this.tertiaryTextColor=Sh(this.tertiaryColor),this.lineColor=Sh(this.background),this.textColor=Sh(this.background),this.background="white",this.mainBkg="#ECECFF",this.secondBkg="#ffffde",this.lineColor="#333333",this.border1="#9370DB",this.border2="#aaaa33",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.labelBackground="#e8e8e8",this.textColor="#333",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="calculated",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="calculated",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="calculated",this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor="calculated",this.taskTextOutsideColor=this.taskTextDarkColor,this.taskTextClickableColor="calculated",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBorderColor="calculated",this.critBkgColor="calculated",this.todayLineColor="calculated",this.sectionBkgColor=yh(102,102,255,.49),this.altSectionBkgColor="white",this.sectionBkgColor2="#fff400",this.taskBorderColor="#534fbc",this.taskBkgColor="#8a90dd",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="#534fbc",this.activeTaskBkgColor="#bfc7ff",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222",this.updateColors()}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Eh(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Eh(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Eh(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Eh(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Eh(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Eh(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Eh(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Eh(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Eh(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||kh(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||kh(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=kh(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||kh(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||Eh(this["cScale"+t],{h:180});for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||Eh(this.mainBkg,{h:30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||Eh(this.mainBkg,{h:30,l:-(7+5*t)});if(this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor,"calculated"!==this.labelTextColor){this.cScaleLabel0=this.cScaleLabel0||Sh(this.labelTextColor),this.cScaleLabel3=this.cScaleLabel3||Sh(this.labelTextColor);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.labelTextColor}this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.textColor,this.edgeLabelBackground=this.labelBackground,this.actorBorder=_h(this.border1,23),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.signalColor=this.textColor,this.signalTextColor=this.textColor,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.nodeBorder,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Eh(this.primaryColor,{h:64}),this.fillType3=Eh(this.secondaryColor,{h:64}),this.fillType4=Eh(this.primaryColor,{h:-64}),this.fillType5=Eh(this.secondaryColor,{h:-64}),this.fillType6=Eh(this.primaryColor,{h:128}),this.fillType7=Eh(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||Eh(this.tertiaryColor,{l:-40}),this.pie4=this.pie4||Eh(this.primaryColor,{l:-10}),this.pie5=this.pie5||Eh(this.secondaryColor,{l:-30}),this.pie6=this.pie6||Eh(this.tertiaryColor,{l:-20}),this.pie7=this.pie7||Eh(this.primaryColor,{h:60,l:-20}),this.pie8=this.pie8||Eh(this.primaryColor,{h:-60,l:-40}),this.pie9=this.pie9||Eh(this.primaryColor,{h:120,l:-40}),this.pie10=this.pie10||Eh(this.primaryColor,{h:60,l:-40}),this.pie11=this.pie11||Eh(this.primaryColor,{h:-90,l:-40}),this.pie12=this.pie12||Eh(this.primaryColor,{h:120,l:-30}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.labelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||Eh(this.primaryColor,{h:-30}),this.git4=this.git4||Eh(this.primaryColor,{h:-60}),this.git5=this.git5||Eh(this.primaryColor,{h:-90}),this.git6=this.git6||Eh(this.primaryColor,{h:60}),this.git7=this.git7||Eh(this.primaryColor,{h:120}),this.darkMode?(this.git0=_h(this.git0,25),this.git1=_h(this.git1,25),this.git2=_h(this.git2,25),this.git3=_h(this.git3,25),this.git4=_h(this.git4,25),this.git5=_h(this.git5,25),this.git6=_h(this.git6,25),this.git7=_h(this.git7,25)):(this.git0=kh(this.git0,25),this.git1=kh(this.git1,25),this.git2=kh(this.git2,25),this.git3=kh(this.git3,25),this.git4=kh(this.git4,25),this.git5=kh(this.git5,25),this.git6=kh(this.git6,25),this.git7=kh(this.git7,25)),this.gitInv0=this.gitInv0||kh(Sh(this.git0),25),this.gitInv1=this.gitInv1||Sh(this.git1),this.gitInv2=this.gitInv2||Sh(this.git2),this.gitInv3=this.gitInv3||Sh(this.git3),this.gitInv4=this.gitInv4||Sh(this.git4),this.gitInv5=this.gitInv5||Sh(this.git5),this.gitInv6=this.gitInv6||Sh(this.git6),this.gitInv7=this.gitInv7||Sh(this.git7),this.gitBranchLabel0=this.gitBranchLabel0||Sh(this.labelTextColor),this.gitBranchLabel1=this.gitBranchLabel1||this.labelTextColor,this.gitBranchLabel2=this.gitBranchLabel2||this.labelTextColor,this.gitBranchLabel3=this.gitBranchLabel3||Sh(this.labelTextColor),this.gitBranchLabel4=this.gitBranchLabel4||this.labelTextColor,this.gitBranchLabel5=this.gitBranchLabel5||this.labelTextColor,this.gitBranchLabel6=this.gitBranchLabel6||this.labelTextColor,this.gitBranchLabel7=this.gitBranchLabel7||this.labelTextColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Dh}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};const Bh=t=>{const e=new Nh;return e.calculate(t),e};let Ph=class{constructor(){this.background="#f4f4f4",this.primaryColor="#cde498",this.secondaryColor="#cdffb2",this.background="white",this.mainBkg="#cde498",this.secondBkg="#cdffb2",this.lineColor="green",this.border1="#13540c",this.border2="#6eaa49",this.arrowheadColor="green",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.tertiaryColor=_h("#cde498",10),this.primaryBorderColor=Th(this.primaryColor,this.darkMode),this.secondaryBorderColor=Th(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Th(this.tertiaryColor,this.darkMode),this.primaryTextColor=Sh(this.primaryColor),this.secondaryTextColor=Sh(this.secondaryColor),this.tertiaryTextColor=Sh(this.primaryColor),this.lineColor=Sh(this.background),this.textColor=Sh(this.background),this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="#333",this.edgeLabelBackground="#e8e8e8",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="black",this.actorLineColor="grey",this.signalColor="#333",this.signalTextColor="#333",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="#326932",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="#fff5ad",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="#6eaa49",this.altSectionBkgColor="white",this.sectionBkgColor2="#6eaa49",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="#487e3a",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="black",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="lightgrey",this.doneTaskBkgColor="lightgrey",this.doneTaskBorderColor="grey",this.critBorderColor="#ff8888",this.critBkgColor="red",this.todayLineColor="red",this.personBorder="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.cScale0=this.cScale0||this.primaryColor,this.cScale1=this.cScale1||this.secondaryColor,this.cScale2=this.cScale2||this.tertiaryColor,this.cScale3=this.cScale3||Eh(this.primaryColor,{h:30}),this.cScale4=this.cScale4||Eh(this.primaryColor,{h:60}),this.cScale5=this.cScale5||Eh(this.primaryColor,{h:90}),this.cScale6=this.cScale6||Eh(this.primaryColor,{h:120}),this.cScale7=this.cScale7||Eh(this.primaryColor,{h:150}),this.cScale8=this.cScale8||Eh(this.primaryColor,{h:210}),this.cScale9=this.cScale9||Eh(this.primaryColor,{h:270}),this.cScale10=this.cScale10||Eh(this.primaryColor,{h:300}),this.cScale11=this.cScale11||Eh(this.primaryColor,{h:330}),this.cScalePeer1=this.cScalePeer1||kh(this.secondaryColor,45),this.cScalePeer2=this.cScalePeer2||kh(this.tertiaryColor,40);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScale"+t]=kh(this["cScale"+t],10),this["cScalePeer"+t]=this["cScalePeer"+t]||kh(this["cScale"+t],25);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||Eh(this["cScale"+t],{h:180});this.scaleLabelColor="calculated"!==this.scaleLabelColor&&this.scaleLabelColor?this.scaleLabelColor:this.labelTextColor;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||Eh(this.mainBkg,{h:30,s:-30,l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||Eh(this.mainBkg,{h:30,s:-30,l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.actorBorder=kh(this.mainBkg,20),this.actorBkg=this.mainBkg,this.labelBoxBkgColor=this.actorBkg,this.labelTextColor=this.actorTextColor,this.loopTextColor=this.actorTextColor,this.noteBorderColor=this.border2,this.noteTextColor=this.actorTextColor,this.taskBorderColor=this.border1,this.taskTextColor=this.taskTextLightColor,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.transitionColor=this.transitionColor||this.lineColor,this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f0f0f0",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.compositeBorder=this.compositeBorder||this.nodeBorder,this.innerEndBackground=this.primaryBorderColor,this.specialStateColor=this.lineColor,this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.transitionColor=this.transitionColor||this.lineColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Eh(this.primaryColor,{h:64}),this.fillType3=Eh(this.secondaryColor,{h:64}),this.fillType4=Eh(this.primaryColor,{h:-64}),this.fillType5=Eh(this.secondaryColor,{h:-64}),this.fillType6=Eh(this.primaryColor,{h:128}),this.fillType7=Eh(this.secondaryColor,{h:128}),this.pie1=this.pie1||this.primaryColor,this.pie2=this.pie2||this.secondaryColor,this.pie3=this.pie3||this.tertiaryColor,this.pie4=this.pie4||Eh(this.primaryColor,{l:-30}),this.pie5=this.pie5||Eh(this.secondaryColor,{l:-30}),this.pie6=this.pie6||Eh(this.tertiaryColor,{h:40,l:-40}),this.pie7=this.pie7||Eh(this.primaryColor,{h:60,l:-10}),this.pie8=this.pie8||Eh(this.primaryColor,{h:-60,l:-10}),this.pie9=this.pie9||Eh(this.primaryColor,{h:120,l:0}),this.pie10=this.pie10||Eh(this.primaryColor,{h:60,l:-50}),this.pie11=this.pie11||Eh(this.primaryColor,{h:-60,l:-50}),this.pie12=this.pie12||Eh(this.primaryColor,{h:120,l:-50}),this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=this.git0||this.primaryColor,this.git1=this.git1||this.secondaryColor,this.git2=this.git2||this.tertiaryColor,this.git3=this.git3||Eh(this.primaryColor,{h:-30}),this.git4=this.git4||Eh(this.primaryColor,{h:-60}),this.git5=this.git5||Eh(this.primaryColor,{h:-90}),this.git6=this.git6||Eh(this.primaryColor,{h:60}),this.git7=this.git7||Eh(this.primaryColor,{h:120}),this.darkMode?(this.git0=_h(this.git0,25),this.git1=_h(this.git1,25),this.git2=_h(this.git2,25),this.git3=_h(this.git3,25),this.git4=_h(this.git4,25),this.git5=_h(this.git5,25),this.git6=_h(this.git6,25),this.git7=_h(this.git7,25)):(this.git0=kh(this.git0,25),this.git1=kh(this.git1,25),this.git2=kh(this.git2,25),this.git3=kh(this.git3,25),this.git4=kh(this.git4,25),this.git5=kh(this.git5,25),this.git6=kh(this.git6,25),this.git7=kh(this.git7,25)),this.gitInv0=this.gitInv0||Sh(this.git0),this.gitInv1=this.gitInv1||Sh(this.git1),this.gitInv2=this.gitInv2||Sh(this.git2),this.gitInv3=this.gitInv3||Sh(this.git3),this.gitInv4=this.gitInv4||Sh(this.git4),this.gitInv5=this.gitInv5||Sh(this.git5),this.gitInv6=this.gitInv6||Sh(this.git6),this.gitInv7=this.gitInv7||Sh(this.git7),this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Dh}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}};const Fh=t=>{const e=new Ph;return e.calculate(t),e};class jh{constructor(){this.primaryColor="#eee",this.contrast="#707070",this.secondaryColor=_h(this.contrast,55),this.background="#ffffff",this.tertiaryColor=Eh(this.primaryColor,{h:-160}),this.primaryBorderColor=Th(this.primaryColor,this.darkMode),this.secondaryBorderColor=Th(this.secondaryColor,this.darkMode),this.tertiaryBorderColor=Th(this.tertiaryColor,this.darkMode),this.primaryTextColor=Sh(this.primaryColor),this.secondaryTextColor=Sh(this.secondaryColor),this.tertiaryTextColor=Sh(this.tertiaryColor),this.lineColor=Sh(this.background),this.textColor=Sh(this.background),this.mainBkg="#eee",this.secondBkg="calculated",this.lineColor="#666",this.border1="#999",this.border2="calculated",this.note="#ffa",this.text="#333",this.critical="#d42",this.done="#bbb",this.arrowheadColor="#333333",this.fontFamily='"trebuchet ms", verdana, arial, sans-serif',this.fontSize="16px",this.THEME_COLOR_LIMIT=12,this.nodeBkg="calculated",this.nodeBorder="calculated",this.clusterBkg="calculated",this.clusterBorder="calculated",this.defaultLinkColor="calculated",this.titleColor="calculated",this.edgeLabelBackground="white",this.actorBorder="calculated",this.actorBkg="calculated",this.actorTextColor="calculated",this.actorLineColor="calculated",this.signalColor="calculated",this.signalTextColor="calculated",this.labelBoxBkgColor="calculated",this.labelBoxBorderColor="calculated",this.labelTextColor="calculated",this.loopTextColor="calculated",this.noteBorderColor="calculated",this.noteBkgColor="calculated",this.noteTextColor="calculated",this.activationBorderColor="#666",this.activationBkgColor="#f4f4f4",this.sequenceNumberColor="white",this.sectionBkgColor="calculated",this.altSectionBkgColor="white",this.sectionBkgColor2="calculated",this.excludeBkgColor="#eeeeee",this.taskBorderColor="calculated",this.taskBkgColor="calculated",this.taskTextLightColor="white",this.taskTextColor="calculated",this.taskTextDarkColor="calculated",this.taskTextOutsideColor="calculated",this.taskTextClickableColor="#003163",this.activeTaskBorderColor="calculated",this.activeTaskBkgColor="calculated",this.gridColor="calculated",this.doneTaskBkgColor="calculated",this.doneTaskBorderColor="calculated",this.critBkgColor="calculated",this.critBorderColor="calculated",this.todayLineColor="calculated",this.personBorder="calculated",this.personBkg="calculated",this.labelColor="black",this.errorBkgColor="#552222",this.errorTextColor="#552222"}updateColors(){this.secondBkg=_h(this.contrast,55),this.border2=this.contrast,this.cScale0=this.cScale0||"#555",this.cScale1=this.cScale1||"#F4F4F4",this.cScale2=this.cScale2||"#555",this.cScale3=this.cScale3||"#BBB",this.cScale4=this.cScale4||"#777",this.cScale5=this.cScale5||"#999",this.cScale6=this.cScale6||"#DDD",this.cScale7=this.cScale7||"#FFF",this.cScale8=this.cScale8||"#DDD",this.cScale9=this.cScale9||"#BBB",this.cScale10=this.cScale10||"#999",this.cScale11=this.cScale11||"#777";for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleInv"+t]=this["cScaleInv"+t]||Sh(this["cScale"+t]);for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this.darkMode?this["cScalePeer"+t]=this["cScalePeer"+t]||_h(this["cScale"+t],10):this["cScalePeer"+t]=this["cScalePeer"+t]||kh(this["cScale"+t],10);this.scaleLabelColor=this.scaleLabelColor||(this.darkMode?"black":this.labelTextColor),this.cScaleLabel0=this.cScaleLabel0||this.cScale1,this.cScaleLabel2=this.cScaleLabel2||this.cScale1;for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["cScaleLabel"+t]=this["cScaleLabel"+t]||this.scaleLabelColor;for(let t=0;t<5;t++)this["surface"+t]=this["surface"+t]||Eh(this.mainBkg,{l:-(5+5*t)}),this["surfacePeer"+t]=this["surfacePeer"+t]||Eh(this.mainBkg,{l:-(8+5*t)});this.nodeBkg=this.mainBkg,this.nodeBorder=this.border1,this.clusterBkg=this.secondBkg,this.clusterBorder=this.border2,this.defaultLinkColor=this.lineColor,this.titleColor=this.text,this.actorBorder=_h(this.border1,23),this.actorBkg=this.mainBkg,this.actorTextColor=this.text,this.actorLineColor=this.lineColor,this.signalColor=this.text,this.signalTextColor=this.text,this.labelBoxBkgColor=this.actorBkg,this.labelBoxBorderColor=this.actorBorder,this.labelTextColor=this.text,this.loopTextColor=this.text,this.noteBorderColor="#999",this.noteBkgColor="#666",this.noteTextColor="#fff",this.sectionBkgColor=_h(this.contrast,30),this.sectionBkgColor2=_h(this.contrast,30),this.taskBorderColor=kh(this.contrast,10),this.taskBkgColor=this.contrast,this.taskTextColor=this.taskTextLightColor,this.taskTextDarkColor=this.text,this.taskTextOutsideColor=this.taskTextDarkColor,this.activeTaskBorderColor=this.taskBorderColor,this.activeTaskBkgColor=this.mainBkg,this.gridColor=_h(this.border1,30),this.doneTaskBkgColor=this.done,this.doneTaskBorderColor=this.lineColor,this.critBkgColor=this.critical,this.critBorderColor=kh(this.critBkgColor,10),this.todayLineColor=this.critBkgColor,this.transitionColor=this.transitionColor||"#000",this.transitionLabelColor=this.transitionLabelColor||this.textColor,this.stateLabelColor=this.stateLabelColor||this.stateBkg||this.primaryTextColor,this.stateBkg=this.stateBkg||this.mainBkg,this.labelBackgroundColor=this.labelBackgroundColor||this.stateBkg,this.compositeBackground=this.compositeBackground||this.background||this.tertiaryColor,this.altBackground=this.altBackground||"#f4f4f4",this.compositeTitleBackground=this.compositeTitleBackground||this.mainBkg,this.stateBorder=this.stateBorder||"#000",this.innerEndBackground=this.primaryBorderColor,this.specialStateColor="#222",this.errorBkgColor=this.errorBkgColor||this.tertiaryColor,this.errorTextColor=this.errorTextColor||this.tertiaryTextColor,this.classText=this.primaryTextColor,this.fillType0=this.primaryColor,this.fillType1=this.secondaryColor,this.fillType2=Eh(this.primaryColor,{h:64}),this.fillType3=Eh(this.secondaryColor,{h:64}),this.fillType4=Eh(this.primaryColor,{h:-64}),this.fillType5=Eh(this.secondaryColor,{h:-64}),this.fillType6=Eh(this.primaryColor,{h:128}),this.fillType7=Eh(this.secondaryColor,{h:128});for(let t=0;t<this.THEME_COLOR_LIMIT;t++)this["pie"+t]=this["cScale"+t];this.pie12=this.pie0,this.pieTitleTextSize=this.pieTitleTextSize||"25px",this.pieTitleTextColor=this.pieTitleTextColor||this.taskTextDarkColor,this.pieSectionTextSize=this.pieSectionTextSize||"17px",this.pieSectionTextColor=this.pieSectionTextColor||this.textColor,this.pieLegendTextSize=this.pieLegendTextSize||"17px",this.pieLegendTextColor=this.pieLegendTextColor||this.taskTextDarkColor,this.pieStrokeColor=this.pieStrokeColor||"black",this.pieStrokeWidth=this.pieStrokeWidth||"2px",this.pieOpacity=this.pieOpacity||"0.7",this.requirementBackground=this.requirementBackground||this.primaryColor,this.requirementBorderColor=this.requirementBorderColor||this.primaryBorderColor,this.requirementBorderSize=this.requirementBorderSize||this.primaryBorderColor,this.requirementTextColor=this.requirementTextColor||this.primaryTextColor,this.relationColor=this.relationColor||this.lineColor,this.relationLabelBackground=this.relationLabelBackground||this.edgeLabelBackground,this.relationLabelColor=this.relationLabelColor||this.actorTextColor,this.git0=kh(this.pie1,25)||this.primaryColor,this.git1=this.pie2||this.secondaryColor,this.git2=this.pie3||this.tertiaryColor,this.git3=this.pie4||Eh(this.primaryColor,{h:-30}),this.git4=this.pie5||Eh(this.primaryColor,{h:-60}),this.git5=this.pie6||Eh(this.primaryColor,{h:-90}),this.git6=this.pie7||Eh(this.primaryColor,{h:60}),this.git7=this.pie8||Eh(this.primaryColor,{h:120}),this.gitInv0=this.gitInv0||Sh(this.git0),this.gitInv1=this.gitInv1||Sh(this.git1),this.gitInv2=this.gitInv2||Sh(this.git2),this.gitInv3=this.gitInv3||Sh(this.git3),this.gitInv4=this.gitInv4||Sh(this.git4),this.gitInv5=this.gitInv5||Sh(this.git5),this.gitInv6=this.gitInv6||Sh(this.git6),this.gitInv7=this.gitInv7||Sh(this.git7),this.branchLabelColor=this.branchLabelColor||this.labelTextColor,this.gitBranchLabel0=this.branchLabelColor,this.gitBranchLabel1="white",this.gitBranchLabel2=this.branchLabelColor,this.gitBranchLabel3="white",this.gitBranchLabel4=this.branchLabelColor,this.gitBranchLabel5=this.branchLabelColor,this.gitBranchLabel6=this.branchLabelColor,this.gitBranchLabel7=this.branchLabelColor,this.tagLabelColor=this.tagLabelColor||this.primaryTextColor,this.tagLabelBackground=this.tagLabelBackground||this.primaryColor,this.tagLabelBorder=this.tagBorder||this.primaryBorderColor,this.tagLabelFontSize=this.tagLabelFontSize||"10px",this.commitLabelColor=this.commitLabelColor||this.secondaryTextColor,this.commitLabelBackground=this.commitLabelBackground||this.secondaryColor,this.commitLabelFontSize=this.commitLabelFontSize||"10px",this.attributeBackgroundColorOdd=this.attributeBackgroundColorOdd||Ah,this.attributeBackgroundColorEven=this.attributeBackgroundColorEven||Dh}calculate(t){if("object"!=typeof t)return void this.updateColors();const e=Object.keys(t);e.forEach((e=>{this[e]=t[e]})),this.updateColors(),e.forEach((e=>{this[e]=t[e]}))}}const $h={base:{getThemeVariables:Lh},dark:{getThemeVariables:Mh},default:{getThemeVariables:Bh},forest:{getThemeVariables:Fh},neutral:{getThemeVariables:t=>{const e=new jh;return e.calculate(t),e}}},zh={theme:"default",themeVariables:$h.default.getThemeVariables(),themeCSS:void 0,maxTextSize:5e4,darkMode:!1,fontFamily:'"trebuchet ms", verdana, arial, sans-serif;',logLevel:5,securityLevel:"strict",startOnLoad:!0,arrowMarkerAbsolute:!1,secure:["secure","securityLevel","startOnLoad","maxTextSize"],deterministicIds:!1,deterministicIDSeed:void 0,flowchart:{titleTopMargin:25,diagramPadding:8,htmlLabels:!0,nodeSpacing:50,rankSpacing:50,curve:"basis",padding:15,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},sequence:{hideUnusedParticipants:!1,activationWidth:10,diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",mirrorActors:!0,forceMenus:!1,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1,actorFontSize:14,actorFontFamily:'"Open Sans", sans-serif',actorFontWeight:400,noteFontSize:14,noteFontFamily:'"trebuchet ms", verdana, arial, sans-serif',noteFontWeight:400,noteAlign:"center",messageFontSize:16,messageFontFamily:'"trebuchet ms", verdana, arial, sans-serif',messageFontWeight:400,wrap:!1,wrapPadding:10,labelBoxWidth:50,labelBoxHeight:20,messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},noteFont:function(){return{fontFamily:this.noteFontFamily,fontSize:this.noteFontSize,fontWeight:this.noteFontWeight}},actorFont:function(){return{fontFamily:this.actorFontFamily,fontSize:this.actorFontSize,fontWeight:this.actorFontWeight}}},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,sectionFontSize:11,numberSectionStyles:4,axisFormat:"%Y-%m-%d",tickInterval:void 0,useMaxWidth:!0,topAxis:!1,useWidth:void 0},journey:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"]},timeline:{diagramMarginX:50,diagramMarginY:10,leftMargin:150,width:150,height:50,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,messageAlign:"center",bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,taskFontSize:14,taskFontFamily:'"Open Sans", sans-serif',taskMargin:50,activationWidth:10,textPlacement:"fo",actorColours:["#8FBC8F","#7CFC00","#00FFFF","#20B2AA","#B0E0E6","#FFFFE0"],sectionFills:["#191970","#8B008B","#4B0082","#2F4F4F","#800000","#8B4513","#00008B"],sectionColours:["#fff"],disableMulticolor:!1},class:{titleTopMargin:25,arrowMarkerAbsolute:!1,dividerMargin:10,padding:5,textHeight:10,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},state:{titleTopMargin:25,dividerMargin:10,sizeUnit:5,padding:8,textHeight:10,titleShift:-15,noteMargin:10,forkWidth:70,forkHeight:7,miniPadding:2,fontSizeFactor:5.02,fontSize:24,labelHeight:16,edgeLengthFactor:"20",compositTitleSize:35,radius:5,useMaxWidth:!0,defaultRenderer:"dagre-wrapper"},er:{titleTopMargin:25,diagramPadding:20,layoutDirection:"TB",minEntityWidth:100,minEntityHeight:75,entityPadding:15,stroke:"gray",fill:"honeydew",fontSize:12,useMaxWidth:!0},pie:{useWidth:void 0,useMaxWidth:!0},requirement:{useWidth:void 0,useMaxWidth:!0,rect_fill:"#f9f9f9",text_color:"#333",rect_border_size:"0.5px",rect_border_color:"#bbb",rect_min_width:200,rect_min_height:200,fontSize:14,rect_padding:10,line_height:20},gitGraph:{titleTopMargin:25,diagramPadding:8,nodeLabel:{width:75,height:100,x:-25,y:0},mainBranchName:"main",mainBranchOrder:0,showCommitLabel:!0,showBranches:!0,rotateCommitLabel:!0},c4:{useWidth:void 0,diagramMarginX:50,diagramMarginY:10,c4ShapeMargin:50,c4ShapePadding:20,width:216,height:60,boxMargin:10,useMaxWidth:!0,c4ShapeInRow:4,nextLinePaddingX:0,c4BoundaryInRow:2,personFontSize:14,personFontFamily:'"Open Sans", sans-serif',personFontWeight:"normal",external_personFontSize:14,external_personFontFamily:'"Open Sans", sans-serif',external_personFontWeight:"normal",systemFontSize:14,systemFontFamily:'"Open Sans", sans-serif',systemFontWeight:"normal",external_systemFontSize:14,external_systemFontFamily:'"Open Sans", sans-serif',external_systemFontWeight:"normal",system_dbFontSize:14,system_dbFontFamily:'"Open Sans", sans-serif',system_dbFontWeight:"normal",external_system_dbFontSize:14,external_system_dbFontFamily:'"Open Sans", sans-serif',external_system_dbFontWeight:"normal",system_queueFontSize:14,system_queueFontFamily:'"Open Sans", sans-serif',system_queueFontWeight:"normal",external_system_queueFontSize:14,external_system_queueFontFamily:'"Open Sans", sans-serif',external_system_queueFontWeight:"normal",boundaryFontSize:14,boundaryFontFamily:'"Open Sans", sans-serif',boundaryFontWeight:"normal",messageFontSize:12,messageFontFamily:'"Open Sans", sans-serif',messageFontWeight:"normal",containerFontSize:14,containerFontFamily:'"Open Sans", sans-serif',containerFontWeight:"normal",external_containerFontSize:14,external_containerFontFamily:'"Open Sans", sans-serif',external_containerFontWeight:"normal",container_dbFontSize:14,container_dbFontFamily:'"Open Sans", sans-serif',container_dbFontWeight:"normal",external_container_dbFontSize:14,external_container_dbFontFamily:'"Open Sans", sans-serif',external_container_dbFontWeight:"normal",container_queueFontSize:14,container_queueFontFamily:'"Open Sans", sans-serif',container_queueFontWeight:"normal",external_container_queueFontSize:14,external_container_queueFontFamily:'"Open Sans", sans-serif',external_container_queueFontWeight:"normal",componentFontSize:14,componentFontFamily:'"Open Sans", sans-serif',componentFontWeight:"normal",external_componentFontSize:14,external_componentFontFamily:'"Open Sans", sans-serif',external_componentFontWeight:"normal",component_dbFontSize:14,component_dbFontFamily:'"Open Sans", sans-serif',component_dbFontWeight:"normal",external_component_dbFontSize:14,external_component_dbFontFamily:'"Open Sans", sans-serif',external_component_dbFontWeight:"normal",component_queueFontSize:14,component_queueFontFamily:'"Open Sans", sans-serif',component_queueFontWeight:"normal",external_component_queueFontSize:14,external_component_queueFontFamily:'"Open Sans", sans-serif',external_component_queueFontWeight:"normal",wrap:!0,wrapPadding:10,personFont:function(){return{fontFamily:this.personFontFamily,fontSize:this.personFontSize,fontWeight:this.personFontWeight}},external_personFont:function(){return{fontFamily:this.external_personFontFamily,fontSize:this.external_personFontSize,fontWeight:this.external_personFontWeight}},systemFont:function(){return{fontFamily:this.systemFontFamily,fontSize:this.systemFontSize,fontWeight:this.systemFontWeight}},external_systemFont:function(){return{fontFamily:this.external_systemFontFamily,fontSize:this.external_systemFontSize,fontWeight:this.external_systemFontWeight}},system_dbFont:function(){return{fontFamily:this.system_dbFontFamily,fontSize:this.system_dbFontSize,fontWeight:this.system_dbFontWeight}},external_system_dbFont:function(){return{fontFamily:this.external_system_dbFontFamily,fontSize:this.external_system_dbFontSize,fontWeight:this.external_system_dbFontWeight}},system_queueFont:function(){return{fontFamily:this.system_queueFontFamily,fontSize:this.system_queueFontSize,fontWeight:this.system_queueFontWeight}},external_system_queueFont:function(){return{fontFamily:this.external_system_queueFontFamily,fontSize:this.external_system_queueFontSize,fontWeight:this.external_system_queueFontWeight}},containerFont:function(){return{fontFamily:this.containerFontFamily,fontSize:this.containerFontSize,fontWeight:this.containerFontWeight}},external_containerFont:function(){return{fontFamily:this.external_containerFontFamily,fontSize:this.external_containerFontSize,fontWeight:this.external_containerFontWeight}},container_dbFont:function(){return{fontFamily:this.container_dbFontFamily,fontSize:this.container_dbFontSize,fontWeight:this.container_dbFontWeight}},external_container_dbFont:function(){return{fontFamily:this.external_container_dbFontFamily,fontSize:this.external_container_dbFontSize,fontWeight:this.external_container_dbFontWeight}},container_queueFont:function(){return{fontFamily:this.container_queueFontFamily,fontSize:this.container_queueFontSize,fontWeight:this.container_queueFontWeight}},external_container_queueFont:function(){return{fontFamily:this.external_container_queueFontFamily,fontSize:this.external_container_queueFontSize,fontWeight:this.external_container_queueFontWeight}},componentFont:function(){return{fontFamily:this.componentFontFamily,fontSize:this.componentFontSize,fontWeight:this.componentFontWeight}},external_componentFont:function(){return{fontFamily:this.external_componentFontFamily,fontSize:this.external_componentFontSize,fontWeight:this.external_componentFontWeight}},component_dbFont:function(){return{fontFamily:this.component_dbFontFamily,fontSize:this.component_dbFontSize,fontWeight:this.component_dbFontWeight}},external_component_dbFont:function(){return{fontFamily:this.external_component_dbFontFamily,fontSize:this.external_component_dbFontSize,fontWeight:this.external_component_dbFontWeight}},component_queueFont:function(){return{fontFamily:this.component_queueFontFamily,fontSize:this.component_queueFontSize,fontWeight:this.component_queueFontWeight}},external_component_queueFont:function(){return{fontFamily:this.external_component_queueFontFamily,fontSize:this.external_component_queueFontSize,fontWeight:this.external_component_queueFontWeight}},boundaryFont:function(){return{fontFamily:this.boundaryFontFamily,fontSize:this.boundaryFontSize,fontWeight:this.boundaryFontWeight}},messageFont:function(){return{fontFamily:this.messageFontFamily,fontSize:this.messageFontSize,fontWeight:this.messageFontWeight}},person_bg_color:"#08427B",person_border_color:"#073B6F",external_person_bg_color:"#686868",external_person_border_color:"#8A8A8A",system_bg_color:"#1168BD",system_border_color:"#3C7FC0",system_db_bg_color:"#1168BD",system_db_border_color:"#3C7FC0",system_queue_bg_color:"#1168BD",system_queue_border_color:"#3C7FC0",external_system_bg_color:"#999999",external_system_border_color:"#8A8A8A",external_system_db_bg_color:"#999999",external_system_db_border_color:"#8A8A8A",external_system_queue_bg_color:"#999999",external_system_queue_border_color:"#8A8A8A",container_bg_color:"#438DD5",container_border_color:"#3C7FC0",container_db_bg_color:"#438DD5",container_db_border_color:"#3C7FC0",container_queue_bg_color:"#438DD5",container_queue_border_color:"#3C7FC0",external_container_bg_color:"#B3B3B3",external_container_border_color:"#A6A6A6",external_container_db_bg_color:"#B3B3B3",external_container_db_border_color:"#A6A6A6",external_container_queue_bg_color:"#B3B3B3",external_container_queue_border_color:"#A6A6A6",component_bg_color:"#85BBF0",component_border_color:"#78A8D8",component_db_bg_color:"#85BBF0",component_db_border_color:"#78A8D8",component_queue_bg_color:"#85BBF0",component_queue_border_color:"#78A8D8",external_component_bg_color:"#CCCCCC",external_component_border_color:"#BFBFBF",external_component_db_bg_color:"#CCCCCC",external_component_db_border_color:"#BFBFBF",external_component_queue_bg_color:"#CCCCCC",external_component_queue_border_color:"#BFBFBF"},mindmap:{useMaxWidth:!0,padding:10,maxNodeWidth:200},fontSize:16};zh.class&&(zh.class.arrowMarkerAbsolute=zh.arrowMarkerAbsolute),zh.gitGraph&&(zh.gitGraph.arrowMarkerAbsolute=zh.arrowMarkerAbsolute);const Hh=(t,e="")=>Object.keys(t).reduce(((n,i)=>Array.isArray(t[i])?n:"object"==typeof t[i]&&null!==t[i]?[...n,e+i,...Hh(t[i],"")]:[...n,e+i]),[]),Uh=Hh(zh,""),Vh=zh;function qh(t){return typeof t>"u"||null===t}function Wh(t){return"object"==typeof t&&null!==t}function Yh(t){return Array.isArray(t)?t:qh(t)?[]:[t]}function Gh(t,e){var n,i,a,r;if(e)for(n=0,i=(r=Object.keys(e)).length;n<i;n+=1)t[a=r[n]]=e[a];return t}function Zh(t,e){var n,i="";for(n=0;n<e;n+=1)i+=t;return i}function Kh(t){return 0===t&&Number.NEGATIVE_INFINITY===1/t}var Xh={isNothing:qh,isObject:Wh,toArray:Yh,repeat:Zh,isNegativeZero:Kh,extend:Gh};function Jh(t,e){var n="",i=t.reason||"(unknown reason)";return t.mark?(t.mark.name&&(n+='in "'+t.mark.name+'" '),n+="("+(t.mark.line+1)+":"+(t.mark.column+1)+")",!e&&t.mark.snippet&&(n+="\n\n"+t.mark.snippet),i+" "+n):i}function Qh(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=Jh(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}Qh.prototype=Object.create(Error.prototype),Qh.prototype.constructor=Qh,Qh.prototype.toString=function(t){return this.name+": "+Jh(this,t)};var tf=Qh;function ef(t,e,n,i,a){var r="",o="",s=Math.floor(a/2)-1;return i-e>s&&(e=i-s+(r=" ... ").length),n-i>s&&(n=i+s-(o=" ...").length),{str:r+t.slice(e,n).replace(/\t/g,"\u2192")+o,pos:i-e+r.length}}function nf(t,e){return Xh.repeat(" ",e-t.length)+t}function af(t,e){if(e=Object.create(e||null),!t.buffer)return null;e.maxLength||(e.maxLength=79),"number"!=typeof e.indent&&(e.indent=1),"number"!=typeof e.linesBefore&&(e.linesBefore=3),"number"!=typeof e.linesAfter&&(e.linesAfter=2);for(var n,i=/\r?\n|\r|\0/g,a=[0],r=[],o=-1;n=i.exec(t.buffer);)r.push(n.index),a.push(n.index+n[0].length),t.position<=n.index&&o<0&&(o=a.length-2);o<0&&(o=a.length-1);var s,c,l="",u=Math.min(t.line+e.linesAfter,r.length).toString().length,d=e.maxLength-(e.indent+u+3);for(s=1;s<=e.linesBefore&&!(o-s<0);s++)c=ef(t.buffer,a[o-s],r[o-s],t.position-(a[o]-a[o-s]),d),l=Xh.repeat(" ",e.indent)+nf((t.line-s+1).toString(),u)+" | "+c.str+"\n"+l;for(c=ef(t.buffer,a[o],r[o],t.position,d),l+=Xh.repeat(" ",e.indent)+nf((t.line+1).toString(),u)+" | "+c.str+"\n",l+=Xh.repeat("-",e.indent+u+3+c.pos)+"^\n",s=1;s<=e.linesAfter&&!(o+s>=r.length);s++)c=ef(t.buffer,a[o+s],r[o+s],t.position-(a[o]-a[o+s]),d),l+=Xh.repeat(" ",e.indent)+nf((t.line+s+1).toString(),u)+" | "+c.str+"\n";return l.replace(/\n$/,"")}var rf=af,of=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],sf=["scalar","sequence","mapping"];function cf(t){var e={};return null!==t&&Object.keys(t).forEach((function(n){t[n].forEach((function(t){e[String(t)]=n}))})),e}function lf(t,e){if(e=e||{},Object.keys(e).forEach((function(e){if(-1===of.indexOf(e))throw new tf('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')})),this.options=e,this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=cf(e.styleAliases||null),-1===sf.indexOf(this.kind))throw new tf('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}var uf=lf;function df(t,e){var n=[];return t[e].forEach((function(t){var e=n.length;n.forEach((function(n,i){n.tag===t.tag&&n.kind===t.kind&&n.multi===t.multi&&(e=i)})),n[e]=t})),n}function hf(){var t,e,n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function i(t){t.multi?(n.multi[t.kind].push(t),n.multi.fallback.push(t)):n[t.kind][t.tag]=n.fallback[t.tag]=t}for(t=0,e=arguments.length;t<e;t+=1)arguments[t].forEach(i);return n}function ff(t){return this.extend(t)}ff.prototype.extend=function(t){var e=[],n=[];if(t instanceof uf)n.push(t);else if(Array.isArray(t))n=n.concat(t);else{if(!t||!Array.isArray(t.implicit)&&!Array.isArray(t.explicit))throw new tf("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");t.implicit&&(e=e.concat(t.implicit)),t.explicit&&(n=n.concat(t.explicit))}e.forEach((function(t){if(!(t instanceof uf))throw new tf("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(t.loadKind&&"scalar"!==t.loadKind)throw new tf("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(t.multi)throw new tf("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")})),n.forEach((function(t){if(!(t instanceof uf))throw new tf("Specified list of YAML types (or a single Type object) contains a non-Type object.")}));var i=Object.create(ff.prototype);return i.implicit=(this.implicit||[]).concat(e),i.explicit=(this.explicit||[]).concat(n),i.compiledImplicit=df(i,"implicit"),i.compiledExplicit=df(i,"explicit"),i.compiledTypeMap=hf(i.compiledImplicit,i.compiledExplicit),i};var gf=ff,pf=new uf("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return null!==t?t:""}}),bf=new uf("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return null!==t?t:[]}}),mf=new uf("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return null!==t?t:{}}}),yf=new gf({explicit:[pf,bf,mf]});function vf(t){if(null===t)return!0;var e=t.length;return 1===e&&"~"===t||4===e&&("null"===t||"Null"===t||"NULL"===t)}function wf(){return null}function xf(t){return null===t}var Rf=new uf("tag:yaml.org,2002:null",{kind:"scalar",resolve:vf,construct:wf,predicate:xf,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"});function _f(t){if(null===t)return!1;var e=t.length;return 4===e&&("true"===t||"True"===t||"TRUE"===t)||5===e&&("false"===t||"False"===t||"FALSE"===t)}function kf(t){return"true"===t||"True"===t||"TRUE"===t}function Ef(t){return"[object Boolean]"===Object.prototype.toString.call(t)}var Cf=new uf("tag:yaml.org,2002:bool",{kind:"scalar",resolve:_f,construct:kf,predicate:Ef,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"});function Sf(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function Tf(t){return 48<=t&&t<=55}function Af(t){return 48<=t&&t<=57}function Df(t){if(null===t)return!1;var e,n=t.length,i=0,a=!1;if(!n)return!1;if(("-"===(e=t[i])||"+"===e)&&(e=t[++i]),"0"===e){if(i+1===n)return!0;if("b"===(e=t[++i])){for(i++;i<n;i++)if("_"!==(e=t[i])){if("0"!==e&&"1"!==e)return!1;a=!0}return a&&"_"!==e}if("x"===e){for(i++;i<n;i++)if("_"!==(e=t[i])){if(!Sf(t.charCodeAt(i)))return!1;a=!0}return a&&"_"!==e}if("o"===e){for(i++;i<n;i++)if("_"!==(e=t[i])){if(!Tf(t.charCodeAt(i)))return!1;a=!0}return a&&"_"!==e}}if("_"===e)return!1;for(;i<n;i++)if("_"!==(e=t[i])){if(!Af(t.charCodeAt(i)))return!1;a=!0}return!(!a||"_"===e)}function If(t){var e,n=t,i=1;if(-1!==n.indexOf("_")&&(n=n.replace(/_/g,"")),("-"===(e=n[0])||"+"===e)&&("-"===e&&(i=-1),e=(n=n.slice(1))[0]),"0"===n)return 0;if("0"===e){if("b"===n[1])return i*parseInt(n.slice(2),2);if("x"===n[1])return i*parseInt(n.slice(2),16);if("o"===n[1])return i*parseInt(n.slice(2),8)}return i*parseInt(n,10)}function Lf(t){return"[object Number]"===Object.prototype.toString.call(t)&&t%1==0&&!Xh.isNegativeZero(t)}var Of=new uf("tag:yaml.org,2002:int",{kind:"scalar",resolve:Df,construct:If,predicate:Lf,represent:{binary:function(t){return t>=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0o"+t.toString(8):"-0o"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),Mf=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Nf(t){return!(null===t||!Mf.test(t)||"_"===t[t.length-1])}function Bf(t){var e,n;return n="-"===(e=t.replace(/_/g,"").toLowerCase())[0]?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),".inf"===e?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===e?NaN:n*parseFloat(e,10)}var Pf=/^[-+]?[0-9]+e/;function Ff(t,e){var n;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(Xh.isNegativeZero(t))return"-0.0";return n=t.toString(10),Pf.test(n)?n.replace("e",".e"):n}function jf(t){return"[object Number]"===Object.prototype.toString.call(t)&&(t%1!=0||Xh.isNegativeZero(t))}var $f=new uf("tag:yaml.org,2002:float",{kind:"scalar",resolve:Nf,construct:Bf,predicate:jf,represent:Ff,defaultStyle:"lowercase"}),zf=yf.extend({implicit:[Rf,Cf,Of,$f]}),Hf=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Uf=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Vf(t){return null!==t&&(null!==Hf.exec(t)||null!==Uf.exec(t))}function qf(t){var e,n,i,a,r,o,s,c,l=0,u=null;if(null===(e=Hf.exec(t))&&(e=Uf.exec(t)),null===e)throw new Error("Date resolve error");if(n=+e[1],i=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(n,i,a));if(r=+e[4],o=+e[5],s=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=6e4*(60*+e[10]+ +(e[11]||0)),"-"===e[9]&&(u=-u)),c=new Date(Date.UTC(n,i,a,r,o,s,l)),u&&c.setTime(c.getTime()-u),c}function Wf(t){return t.toISOString()}var Yf=new uf("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Vf,construct:qf,instanceOf:Date,represent:Wf});function Gf(t){return"<<"===t||null===t}var Zf=new uf("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Gf}),Kf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";function Xf(t){if(null===t)return!1;var e,n,i=0,a=t.length,r=Kf;for(n=0;n<a;n++)if(!((e=r.indexOf(t.charAt(n)))>64)){if(e<0)return!1;i+=6}return i%8==0}function Jf(t){var e,n,i=t.replace(/[\r\n=]/g,""),a=i.length,r=Kf,o=0,s=[];for(e=0;e<a;e++)e%4==0&&e&&(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)),o=o<<6|r.indexOf(i.charAt(e));return 0==(n=a%4*6)?(s.push(o>>16&255),s.push(o>>8&255),s.push(255&o)):18===n?(s.push(o>>10&255),s.push(o>>2&255)):12===n&&s.push(o>>4&255),new Uint8Array(s)}function Qf(t){var e,n,i="",a=0,r=t.length,o=Kf;for(e=0;e<r;e++)e%3==0&&e&&(i+=o[a>>18&63],i+=o[a>>12&63],i+=o[a>>6&63],i+=o[63&a]),a=(a<<8)+t[e];return 0==(n=r%3)?(i+=o[a>>18&63],i+=o[a>>12&63],i+=o[a>>6&63],i+=o[63&a]):2===n?(i+=o[a>>10&63],i+=o[a>>4&63],i+=o[a<<2&63],i+=o[64]):1===n&&(i+=o[a>>2&63],i+=o[a<<4&63],i+=o[64],i+=o[64]),i}function tg(t){return"[object Uint8Array]"===Object.prototype.toString.call(t)}var eg=new uf("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Xf,construct:Jf,predicate:tg,represent:Qf}),ng=Object.prototype.hasOwnProperty,ig=Object.prototype.toString;function ag(t){if(null===t)return!0;var e,n,i,a,r,o=[],s=t;for(e=0,n=s.length;e<n;e+=1){if(i=s[e],r=!1,"[object Object]"!==ig.call(i))return!1;for(a in i)if(ng.call(i,a)){if(r)return!1;r=!0}if(!r)return!1;if(-1!==o.indexOf(a))return!1;o.push(a)}return!0}function rg(t){return null!==t?t:[]}var og=new uf("tag:yaml.org,2002:omap",{kind:"sequence",resolve:ag,construct:rg}),sg=Object.prototype.toString;function cg(t){if(null===t)return!0;var e,n,i,a,r,o=t;for(r=new Array(o.length),e=0,n=o.length;e<n;e+=1){if(i=o[e],"[object Object]"!==sg.call(i)||1!==(a=Object.keys(i)).length)return!1;r[e]=[a[0],i[a[0]]]}return!0}function lg(t){if(null===t)return[];var e,n,i,a,r,o=t;for(r=new Array(o.length),e=0,n=o.length;e<n;e+=1)i=o[e],a=Object.keys(i),r[e]=[a[0],i[a[0]]];return r}var ug=new uf("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:cg,construct:lg}),dg=Object.prototype.hasOwnProperty;function hg(t){if(null===t)return!0;var e,n=t;for(e in n)if(dg.call(n,e)&&null!==n[e])return!1;return!0}function fg(t){return null!==t?t:{}}var gg=new uf("tag:yaml.org,2002:set",{kind:"mapping",resolve:hg,construct:fg}),pg=zf.extend({implicit:[Yf,Zf],explicit:[eg,og,ug,gg]}),bg=Object.prototype.hasOwnProperty,mg=1,yg=2,vg=3,wg=4,xg=1,Rg=2,_g=3,kg=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Eg=/[\x85\u2028\u2029]/,Cg=/[,\[\]\{\}]/,Sg=/^(?:!|!!|![a-z\-]+!)$/i,Tg=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Ag(t){return Object.prototype.toString.call(t)}function Dg(t){return 10===t||13===t}function Ig(t){return 9===t||32===t}function Lg(t){return 9===t||32===t||10===t||13===t}function Og(t){return 44===t||91===t||93===t||123===t||125===t}function Mg(t){var e;return 48<=t&&t<=57?t-48:97<=(e=32|t)&&e<=102?e-97+10:-1}function Ng(t){return 120===t?2:117===t?4:85===t?8:0}function Bg(t){return 48<=t&&t<=57?t-48:-1}function Pg(t){return 48===t?"\0":97===t?"\x07":98===t?"\b":116===t||9===t?"\t":110===t?"\n":118===t?"\v":102===t?"\f":114===t?"\r":101===t?"\x1b":32===t?" ":34===t?'"':47===t?"/":92===t?"\\":78===t?"\x85":95===t?"\xa0":76===t?"\u2028":80===t?"\u2029":""}function Fg(t){return t<=65535?String.fromCharCode(t):String.fromCharCode(55296+(t-65536>>10),56320+(t-65536&1023))}for(var jg=new Array(256),$g=new Array(256),zg=0;zg<256;zg++)jg[zg]=Pg(zg)?1:0,$g[zg]=Pg(zg);function Hg(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||pg,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function Ug(t,e){var n={name:t.filename,buffer:t.input.slice(0,-1),position:t.position,line:t.line,column:t.position-t.lineStart};return n.snippet=rf(n),new tf(e,n)}function Vg(t,e){throw Ug(t,e)}function qg(t,e){t.onWarning&&t.onWarning.call(null,Ug(t,e))}var Wg={YAML:function(t,e,n){var i,a,r;null!==t.version&&Vg(t,"duplication of %YAML directive"),1!==n.length&&Vg(t,"YAML directive accepts exactly one argument"),null===(i=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&Vg(t,"ill-formed argument of the YAML directive"),a=parseInt(i[1],10),r=parseInt(i[2],10),1!==a&&Vg(t,"unacceptable YAML version of the document"),t.version=n[0],t.checkLineBreaks=r<2,1!==r&&2!==r&&qg(t,"unsupported YAML version of the document")},TAG:function(t,e,n){var i,a;2!==n.length&&Vg(t,"TAG directive accepts exactly two arguments"),i=n[0],a=n[1],Sg.test(i)||Vg(t,"ill-formed tag handle (first argument) of the TAG directive"),bg.call(t.tagMap,i)&&Vg(t,'there is a previously declared suffix for "'+i+'" tag handle'),Tg.test(a)||Vg(t,"ill-formed tag prefix (second argument) of the TAG directive");try{a=decodeURIComponent(a)}catch{Vg(t,"tag prefix is malformed: "+a)}t.tagMap[i]=a}};function Yg(t,e,n,i){var a,r,o,s;if(e<n){if(s=t.input.slice(e,n),i)for(a=0,r=s.length;a<r;a+=1)9===(o=s.charCodeAt(a))||32<=o&&o<=1114111||Vg(t,"expected valid JSON character");else kg.test(s)&&Vg(t,"the stream contains non-printable characters");t.result+=s}}function Gg(t,e,n,i){var a,r,o,s;for(Xh.isObject(n)||Vg(t,"cannot merge mappings; the provided source object is unacceptable"),o=0,s=(a=Object.keys(n)).length;o<s;o+=1)r=a[o],bg.call(e,r)||(e[r]=n[r],i[r]=!0)}function Zg(t,e,n,i,a,r,o,s,c){var l,u;if(Array.isArray(a))for(l=0,u=(a=Array.prototype.slice.call(a)).length;l<u;l+=1)Array.isArray(a[l])&&Vg(t,"nested arrays are not supported inside keys"),"object"==typeof a&&"[object Object]"===Ag(a[l])&&(a[l]="[object Object]");if("object"==typeof a&&"[object Object]"===Ag(a)&&(a="[object Object]"),a=String(a),null===e&&(e={}),"tag:yaml.org,2002:merge"===i)if(Array.isArray(r))for(l=0,u=r.length;l<u;l+=1)Gg(t,e,r[l],n);else Gg(t,e,r,n);else!t.json&&!bg.call(n,a)&&bg.call(e,a)&&(t.line=o||t.line,t.lineStart=s||t.lineStart,t.position=c||t.position,Vg(t,"duplicated mapping key")),"__proto__"===a?Object.defineProperty(e,a,{configurable:!0,enumerable:!0,writable:!0,value:r}):e[a]=r,delete n[a];return e}function Kg(t){var e;10===(e=t.input.charCodeAt(t.position))?t.position++:13===e?(t.position++,10===t.input.charCodeAt(t.position)&&t.position++):Vg(t,"a line break is expected"),t.line+=1,t.lineStart=t.position,t.firstTabInLine=-1}function Xg(t,e,n){for(var i=0,a=t.input.charCodeAt(t.position);0!==a;){for(;Ig(a);)9===a&&-1===t.firstTabInLine&&(t.firstTabInLine=t.position),a=t.input.charCodeAt(++t.position);if(e&&35===a)do{a=t.input.charCodeAt(++t.position)}while(10!==a&&13!==a&&0!==a);if(!Dg(a))break;for(Kg(t),a=t.input.charCodeAt(t.position),i++,t.lineIndent=0;32===a;)t.lineIndent++,a=t.input.charCodeAt(++t.position)}return-1!==n&&0!==i&&t.lineIndent<n&&qg(t,"deficient indentation"),i}function Jg(t){var e,n=t.position;return!(45!==(e=t.input.charCodeAt(n))&&46!==e||e!==t.input.charCodeAt(n+1)||e!==t.input.charCodeAt(n+2)||(n+=3,e=t.input.charCodeAt(n),0!==e&&!Lg(e)))}function Qg(t,e){1===e?t.result+=" ":e>1&&(t.result+=Xh.repeat("\n",e-1))}function tp(t,e,n){var i,a,r,o,s,c,l,u,d=t.kind,h=t.result;if(Lg(u=t.input.charCodeAt(t.position))||Og(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u||(63===u||45===u)&&(Lg(i=t.input.charCodeAt(t.position+1))||n&&Og(i)))return!1;for(t.kind="scalar",t.result="",a=r=t.position,o=!1;0!==u;){if(58===u){if(Lg(i=t.input.charCodeAt(t.position+1))||n&&Og(i))break}else if(35===u){if(Lg(t.input.charCodeAt(t.position-1)))break}else{if(t.position===t.lineStart&&Jg(t)||n&&Og(u))break;if(Dg(u)){if(s=t.line,c=t.lineStart,l=t.lineIndent,Xg(t,!1,-1),t.lineIndent>=e){o=!0,u=t.input.charCodeAt(t.position);continue}t.position=r,t.line=s,t.lineStart=c,t.lineIndent=l;break}}o&&(Yg(t,a,r,!1),Qg(t,t.line-s),a=r=t.position,o=!1),Ig(u)||(r=t.position+1),u=t.input.charCodeAt(++t.position)}return Yg(t,a,r,!1),!!t.result||(t.kind=d,t.result=h,!1)}function ep(t,e){var n,i,a;if(39!==(n=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,i=a=t.position;0!==(n=t.input.charCodeAt(t.position));)if(39===n){if(Yg(t,i,t.position,!0),39!==(n=t.input.charCodeAt(++t.position)))return!0;i=t.position,t.position++,a=t.position}else Dg(n)?(Yg(t,i,a,!0),Qg(t,Xg(t,!1,e)),i=a=t.position):t.position===t.lineStart&&Jg(t)?Vg(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);Vg(t,"unexpected end of the stream within a single quoted scalar")}function np(t,e){var n,i,a,r,o,s;if(34!==(s=t.input.charCodeAt(t.position)))return!1;for(t.kind="scalar",t.result="",t.position++,n=i=t.position;0!==(s=t.input.charCodeAt(t.position));){if(34===s)return Yg(t,n,t.position,!0),t.position++,!0;if(92===s){if(Yg(t,n,t.position,!0),Dg(s=t.input.charCodeAt(++t.position)))Xg(t,!1,e);else if(s<256&&jg[s])t.result+=$g[s],t.position++;else if((o=Ng(s))>0){for(a=o,r=0;a>0;a--)(o=Mg(s=t.input.charCodeAt(++t.position)))>=0?r=(r<<4)+o:Vg(t,"expected hexadecimal character");t.result+=Fg(r),t.position++}else Vg(t,"unknown escape sequence");n=i=t.position}else Dg(s)?(Yg(t,n,i,!0),Qg(t,Xg(t,!1,e)),n=i=t.position):t.position===t.lineStart&&Jg(t)?Vg(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}Vg(t,"unexpected end of the stream within a double quoted scalar")}function ip(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g=!0,p=t.tag,b=t.anchor,m=Object.create(null);if(91===(f=t.input.charCodeAt(t.position)))o=93,l=!1,r=[];else{if(123!==f)return!1;o=125,l=!0,r={}}for(null!==t.anchor&&(t.anchorMap[t.anchor]=r),f=t.input.charCodeAt(++t.position);0!==f;){if(Xg(t,!0,e),(f=t.input.charCodeAt(t.position))===o)return t.position++,t.tag=p,t.anchor=b,t.kind=l?"mapping":"sequence",t.result=r,!0;g?44===f&&Vg(t,"expected the node content, but found ','"):Vg(t,"missed comma between flow collection entries"),d=u=h=null,s=c=!1,63===f&&Lg(t.input.charCodeAt(t.position+1))&&(s=c=!0,t.position++,Xg(t,!0,e)),n=t.line,i=t.lineStart,a=t.position,up(t,e,mg,!1,!0),d=t.tag,u=t.result,Xg(t,!0,e),f=t.input.charCodeAt(t.position),(c||t.line===n)&&58===f&&(s=!0,f=t.input.charCodeAt(++t.position),Xg(t,!0,e),up(t,e,mg,!1,!0),h=t.result),l?Zg(t,r,m,d,u,h,n,i,a):s?r.push(Zg(t,null,m,d,u,h,n,i,a)):r.push(u),Xg(t,!0,e),44===(f=t.input.charCodeAt(t.position))?(g=!0,f=t.input.charCodeAt(++t.position)):g=!1}Vg(t,"unexpected end of the stream within a flow collection")}function ap(t,e){var n,i,a,r,o=xg,s=!1,c=!1,l=e,u=0,d=!1;if(124===(r=t.input.charCodeAt(t.position)))i=!1;else{if(62!==r)return!1;i=!0}for(t.kind="scalar",t.result="";0!==r;)if(43===(r=t.input.charCodeAt(++t.position))||45===r)xg===o?o=43===r?_g:Rg:Vg(t,"repeat of a chomping mode identifier");else{if(!((a=Bg(r))>=0))break;0===a?Vg(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?Vg(t,"repeat of an indentation width identifier"):(l=e+a-1,c=!0)}if(Ig(r)){do{r=t.input.charCodeAt(++t.position)}while(Ig(r));if(35===r)do{r=t.input.charCodeAt(++t.position)}while(!Dg(r)&&0!==r)}for(;0!==r;){for(Kg(t),t.lineIndent=0,r=t.input.charCodeAt(t.position);(!c||t.lineIndent<l)&&32===r;)t.lineIndent++,r=t.input.charCodeAt(++t.position);if(!c&&t.lineIndent>l&&(l=t.lineIndent),Dg(r))u++;else{if(t.lineIndent<l){o===_g?t.result+=Xh.repeat("\n",s?1+u:u):o===xg&&s&&(t.result+="\n");break}for(i?Ig(r)?(d=!0,t.result+=Xh.repeat("\n",s?1+u:u)):d?(d=!1,t.result+=Xh.repeat("\n",u+1)):0===u?s&&(t.result+=" "):t.result+=Xh.repeat("\n",u):t.result+=Xh.repeat("\n",s?1+u:u),s=!0,c=!0,u=0,n=t.position;!Dg(r)&&0!==r;)r=t.input.charCodeAt(++t.position);Yg(t,n,t.position,!1)}}return!0}function rp(t,e){var n,i,a=t.tag,r=t.anchor,o=[],s=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=o),i=t.input.charCodeAt(t.position);0!==i&&(-1!==t.firstTabInLine&&(t.position=t.firstTabInLine,Vg(t,"tab characters must not be used in indentation")),45===i&&Lg(t.input.charCodeAt(t.position+1)));)if(s=!0,t.position++,Xg(t,!0,-1)&&t.lineIndent<=e)o.push(null),i=t.input.charCodeAt(t.position);else if(n=t.line,up(t,e,vg,!1,!0),o.push(t.result),Xg(t,!0,-1),i=t.input.charCodeAt(t.position),(t.line===n||t.lineIndent>e)&&0!==i)Vg(t,"bad indentation of a sequence entry");else if(t.lineIndent<e)break;return!!s&&(t.tag=a,t.anchor=r,t.kind="sequence",t.result=o,!0)}function op(t,e,n){var i,a,r,o,s,c,l,u=t.tag,d=t.anchor,h={},f=Object.create(null),g=null,p=null,b=null,m=!1,y=!1;if(-1!==t.firstTabInLine)return!1;for(null!==t.anchor&&(t.anchorMap[t.anchor]=h),l=t.input.charCodeAt(t.position);0!==l;){if(!m&&-1!==t.firstTabInLine&&(t.position=t.firstTabInLine,Vg(t,"tab characters must not be used in indentation")),i=t.input.charCodeAt(t.position+1),r=t.line,63!==l&&58!==l||!Lg(i)){if(o=t.line,s=t.lineStart,c=t.position,!up(t,n,yg,!1,!0))break;if(t.line===r){for(l=t.input.charCodeAt(t.position);Ig(l);)l=t.input.charCodeAt(++t.position);if(58===l)Lg(l=t.input.charCodeAt(++t.position))||Vg(t,"a whitespace character is expected after the key-value separator within a block mapping"),m&&(Zg(t,h,f,g,p,null,o,s,c),g=p=b=null),y=!0,m=!1,a=!1,g=t.tag,p=t.result;else{if(!y)return t.tag=u,t.anchor=d,!0;Vg(t,"can not read an implicit mapping pair; a colon is missed")}}else{if(!y)return t.tag=u,t.anchor=d,!0;Vg(t,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===l?(m&&(Zg(t,h,f,g,p,null,o,s,c),g=p=b=null),y=!0,m=!0,a=!0):m?(m=!1,a=!0):Vg(t,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),t.position+=1,l=i;if((t.line===r||t.lineIndent>e)&&(m&&(o=t.line,s=t.lineStart,c=t.position),up(t,e,wg,!0,a)&&(m?p=t.result:b=t.result),m||(Zg(t,h,f,g,p,b,o,s,c),g=p=b=null),Xg(t,!0,-1),l=t.input.charCodeAt(t.position)),(t.line===r||t.lineIndent>e)&&0!==l)Vg(t,"bad indentation of a mapping entry");else if(t.lineIndent<e)break}return m&&Zg(t,h,f,g,p,null,o,s,c),y&&(t.tag=u,t.anchor=d,t.kind="mapping",t.result=h),y}function sp(t){var e,n,i,a,r=!1,o=!1;if(33!==(a=t.input.charCodeAt(t.position)))return!1;if(null!==t.tag&&Vg(t,"duplication of a tag property"),60===(a=t.input.charCodeAt(++t.position))?(r=!0,a=t.input.charCodeAt(++t.position)):33===a?(o=!0,n="!!",a=t.input.charCodeAt(++t.position)):n="!",e=t.position,r){do{a=t.input.charCodeAt(++t.position)}while(0!==a&&62!==a);t.position<t.length?(i=t.input.slice(e,t.position),a=t.input.charCodeAt(++t.position)):Vg(t,"unexpected end of the stream within a verbatim tag")}else{for(;0!==a&&!Lg(a);)33===a&&(o?Vg(t,"tag suffix cannot contain exclamation marks"):(n=t.input.slice(e-1,t.position+1),Sg.test(n)||Vg(t,"named tag handle cannot contain such characters"),o=!0,e=t.position+1)),a=t.input.charCodeAt(++t.position);i=t.input.slice(e,t.position),Cg.test(i)&&Vg(t,"tag suffix cannot contain flow indicator characters")}i&&!Tg.test(i)&&Vg(t,"tag name cannot contain such characters: "+i);try{i=decodeURIComponent(i)}catch{Vg(t,"tag name is malformed: "+i)}return r?t.tag=i:bg.call(t.tagMap,n)?t.tag=t.tagMap[n]+i:"!"===n?t.tag="!"+i:"!!"===n?t.tag="tag:yaml.org,2002:"+i:Vg(t,'undeclared tag handle "'+n+'"'),!0}function cp(t){var e,n;if(38!==(n=t.input.charCodeAt(t.position)))return!1;for(null!==t.anchor&&Vg(t,"duplication of an anchor property"),n=t.input.charCodeAt(++t.position),e=t.position;0!==n&&!Lg(n)&&!Og(n);)n=t.input.charCodeAt(++t.position);return t.position===e&&Vg(t,"name of an anchor node must contain at least one character"),t.anchor=t.input.slice(e,t.position),!0}function lp(t){var e,n,i;if(42!==(i=t.input.charCodeAt(t.position)))return!1;for(i=t.input.charCodeAt(++t.position),e=t.position;0!==i&&!Lg(i)&&!Og(i);)i=t.input.charCodeAt(++t.position);return t.position===e&&Vg(t,"name of an alias node must contain at least one character"),n=t.input.slice(e,t.position),bg.call(t.anchorMap,n)||Vg(t,'unidentified alias "'+n+'"'),t.result=t.anchorMap[n],Xg(t,!0,-1),!0}function up(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g=1,p=!1,b=!1;if(null!==t.listener&&t.listener("open",t),t.tag=null,t.anchor=null,t.kind=null,t.result=null,r=o=s=wg===n||vg===n,i&&Xg(t,!0,-1)&&(p=!0,t.lineIndent>e?g=1:t.lineIndent===e?g=0:t.lineIndent<e&&(g=-1)),1===g)for(;sp(t)||cp(t);)Xg(t,!0,-1)?(p=!0,s=r,t.lineIndent>e?g=1:t.lineIndent===e?g=0:t.lineIndent<e&&(g=-1)):s=!1;if(s&&(s=p||a),(1===g||wg===n)&&(h=mg===n||yg===n?e:e+1,f=t.position-t.lineStart,1===g?s&&(rp(t,f)||op(t,f,h))||ip(t,h)?b=!0:(o&&ap(t,h)||ep(t,h)||np(t,h)?b=!0:lp(t)?(b=!0,(null!==t.tag||null!==t.anchor)&&Vg(t,"alias node should not have any properties")):tp(t,h,mg===n)&&(b=!0,null===t.tag&&(t.tag="?")),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):0===g&&(b=s&&rp(t,f))),null===t.tag)null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);else if("?"===t.tag){for(null!==t.result&&"scalar"!==t.kind&&Vg(t,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+t.kind+'"'),c=0,l=t.implicitTypes.length;c<l;c+=1)if((d=t.implicitTypes[c]).resolve(t.result)){t.result=d.construct(t.result),t.tag=d.tag,null!==t.anchor&&(t.anchorMap[t.anchor]=t.result);break}}else if("!"!==t.tag){if(bg.call(t.typeMap[t.kind||"fallback"],t.tag))d=t.typeMap[t.kind||"fallback"][t.tag];else for(d=null,c=0,l=(u=t.typeMap.multi[t.kind||"fallback"]).length;c<l;c+=1)if(t.tag.slice(0,u[c].tag.length)===u[c].tag){d=u[c];break}d||Vg(t,"unknown tag !<"+t.tag+">"),null!==t.result&&d.kind!==t.kind&&Vg(t,"unacceptable node kind for !<"+t.tag+'> tag; it should be "'+d.kind+'", not "'+t.kind+'"'),d.resolve(t.result,t.tag)?(t.result=d.construct(t.result,t.tag),null!==t.anchor&&(t.anchorMap[t.anchor]=t.result)):Vg(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")}return null!==t.listener&&t.listener("close",t),null!==t.tag||null!==t.anchor||b}function dp(t){var e,n,i,a,r=t.position,o=!1;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap=Object.create(null),t.anchorMap=Object.create(null);0!==(a=t.input.charCodeAt(t.position))&&(Xg(t,!0,-1),a=t.input.charCodeAt(t.position),!(t.lineIndent>0||37!==a));){for(o=!0,a=t.input.charCodeAt(++t.position),e=t.position;0!==a&&!Lg(a);)a=t.input.charCodeAt(++t.position);for(i=[],(n=t.input.slice(e,t.position)).length<1&&Vg(t,"directive name must not be less than one character in length");0!==a;){for(;Ig(a);)a=t.input.charCodeAt(++t.position);if(35===a){do{a=t.input.charCodeAt(++t.position)}while(0!==a&&!Dg(a));break}if(Dg(a))break;for(e=t.position;0!==a&&!Lg(a);)a=t.input.charCodeAt(++t.position);i.push(t.input.slice(e,t.position))}0!==a&&Kg(t),bg.call(Wg,n)?Wg[n](t,n,i):qg(t,'unknown document directive "'+n+'"')}Xg(t,!0,-1),0===t.lineIndent&&45===t.input.charCodeAt(t.position)&&45===t.input.charCodeAt(t.position+1)&&45===t.input.charCodeAt(t.position+2)?(t.position+=3,Xg(t,!0,-1)):o&&Vg(t,"directives end mark is expected"),up(t,t.lineIndent-1,wg,!1,!0),Xg(t,!0,-1),t.checkLineBreaks&&Eg.test(t.input.slice(r,t.position))&&qg(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Jg(t)?46===t.input.charCodeAt(t.position)&&(t.position+=3,Xg(t,!0,-1)):t.position<t.length-1&&Vg(t,"end of the stream or a document separator is expected")}function hp(t,e){e=e||{},0!==(t=String(t)).length&&(10!==t.charCodeAt(t.length-1)&&13!==t.charCodeAt(t.length-1)&&(t+="\n"),65279===t.charCodeAt(0)&&(t=t.slice(1)));var n=new Hg(t,e),i=t.indexOf("\0");for(-1!==i&&(n.position=i,Vg(n,"null byte is not allowed in input")),n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)dp(n);return n.documents}function fp(t,e,n){null!==e&&"object"==typeof e&&typeof n>"u"&&(n=e,e=null);var i=hp(t,n);if("function"!=typeof e)return i;for(var a=0,r=i.length;a<r;a+=1)e(i[a])}function gp(t,e){var n=hp(t,e);if(0!==n.length){if(1===n.length)return n[0];throw new tf("expected a single document in the stream, but found more")}}var pp=yf,bp={loadAll:fp,load:gp}.load;const mp=/^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;function yp(t,e){var n;const i=t.match(mp);if(i){const a=bp(i[1],{schema:pp});return null!=a&&a.title&&(null==(n=e.setDiagramTitle)||n.call(e,a.title)),t.slice(i[0].length)}return t}const vp=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,wp=/\s*%%.*\n/gm,xp={},Rp=function(t,e){t=t.replace(mp,"").replace(vp,"").replace(wp,"\n");for(const[n,{detector:i}]of Object.entries(xp))if(i(t,e))return n;throw new Error(`No diagram type detected for text: ${t}`)},_p=(...t)=>{for(const{id:e,detector:n,loader:i}of t)kp(e,n,i)},kp=(t,e,n)=>{xp[t]?d.error(`Detector with key ${t} already exists`):xp[t]={detector:e,loader:n},d.debug(`Detector with key ${t} added${n?" with loader":""}`)},Ep=t=>xp[t].loader,Cp=function(t,e,n){const{depth:i,clobber:a}=Object.assign({depth:2,clobber:!1},n);return Array.isArray(e)&&!Array.isArray(t)?(e.forEach((e=>Cp(t,e,n))),t):Array.isArray(e)&&Array.isArray(t)?(e.forEach((e=>{t.includes(e)||t.push(e)})),t):void 0===t||i<=0?null!=t&&"object"==typeof t&&"object"==typeof e?Object.assign(t,e):e:(void 0!==e&&"object"==typeof t&&"object"==typeof e&&Object.keys(e).forEach((n=>{"object"!=typeof e[n]||void 0!==t[n]&&"object"!=typeof t[n]?(a||"object"!=typeof t[n]&&"object"!=typeof e[n])&&(t[n]=e[n]):(void 0===t[n]&&(t[n]=Array.isArray(e[n])?[]:{}),t[n]=Cp(t[n],e[n],{depth:i-1,clobber:a}))})),t)},Sp=Cp,Tp="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;var Ap="object"==typeof self&&self&&self.Object===Object&&self;const Dp=Tp||Ap||Function("return this")(),Ip=Dp.Symbol;var Lp=Object.prototype,Op=Lp.hasOwnProperty,Mp=Lp.toString,Np=Ip?Ip.toStringTag:void 0;function Bp(t){var e=Op.call(t,Np),n=t[Np];try{t[Np]=void 0;var i=!0}catch{}var a=Mp.call(t);return i&&(e?t[Np]=n:delete t[Np]),a}var Pp=Object.prototype.toString;function Fp(t){return Pp.call(t)}var jp="[object Null]",$p="[object Undefined]",zp=Ip?Ip.toStringTag:void 0;function Hp(t){return null==t?void 0===t?$p:jp:zp&&zp in Object(t)?Bp(t):Fp(t)}function Up(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}var Vp="[object AsyncFunction]",qp="[object Function]",Wp="[object GeneratorFunction]",Yp="[object Proxy]";function Gp(t){if(!Up(t))return!1;var e=Hp(t);return e==qp||e==Wp||e==Vp||e==Yp}const Zp=Dp["__core-js_shared__"];var Kp=function(){var t=/[^.]+$/.exec(Zp&&Zp.keys&&Zp.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function Xp(t){return!!Kp&&Kp in t}var Jp=Function.prototype.toString;function Qp(t){if(null!=t){try{return Jp.call(t)}catch{}try{return t+""}catch{}}return""}var tb=/[\\^$.*+?()[\]{}|]/g,eb=/^\[object .+?Constructor\]$/,nb=Function.prototype,ib=Object.prototype,ab=nb.toString,rb=ib.hasOwnProperty,ob=RegExp("^"+ab.call(rb).replace(tb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function sb(t){return!(!Up(t)||Xp(t))&&(Gp(t)?ob:eb).test(Qp(t))}function cb(t,e){return null==t?void 0:t[e]}function lb(t,e){var n=cb(t,e);return sb(n)?n:void 0}const ub=lb(Object,"create");function db(){this.__data__=ub?ub(null):{},this.size=0}function hb(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var fb="__lodash_hash_undefined__",gb=Object.prototype.hasOwnProperty;function pb(t){var e=this.__data__;if(ub){var n=e[t];return n===fb?void 0:n}return gb.call(e,t)?e[t]:void 0}var bb=Object.prototype.hasOwnProperty;function mb(t){var e=this.__data__;return ub?void 0!==e[t]:bb.call(e,t)}var yb="__lodash_hash_undefined__";function vb(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=ub&&void 0===e?yb:e,this}function wb(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}function xb(){this.__data__=[],this.size=0}function Rb(t,e){return t===e||t!=t&&e!=e}function _b(t,e){for(var n=t.length;n--;)if(Rb(t[n][0],e))return n;return-1}wb.prototype.clear=db,wb.prototype.delete=hb,wb.prototype.get=pb,wb.prototype.has=mb,wb.prototype.set=vb;var kb=Array.prototype.splice;function Eb(t){var e=this.__data__,n=_b(e,t);return!(n<0||(n==e.length-1?e.pop():kb.call(e,n,1),--this.size,0))}function Cb(t){var e=this.__data__,n=_b(e,t);return n<0?void 0:e[n][1]}function Sb(t){return _b(this.__data__,t)>-1}function Tb(t,e){var n=this.__data__,i=_b(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}function Ab(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}Ab.prototype.clear=xb,Ab.prototype.delete=Eb,Ab.prototype.get=Cb,Ab.prototype.has=Sb,Ab.prototype.set=Tb;const Db=lb(Dp,"Map");function Ib(){this.size=0,this.__data__={hash:new wb,map:new(Db||Ab),string:new wb}}function Lb(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}function Ob(t,e){var n=t.__data__;return Lb(e)?n["string"==typeof e?"string":"hash"]:n.map}function Mb(t){var e=Ob(this,t).delete(t);return this.size-=e?1:0,e}function Nb(t){return Ob(this,t).get(t)}function Bb(t){return Ob(this,t).has(t)}function Pb(t,e){var n=Ob(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}function Fb(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}Fb.prototype.clear=Ib,Fb.prototype.delete=Mb,Fb.prototype.get=Nb,Fb.prototype.has=Bb,Fb.prototype.set=Pb;var jb="Expected a function";function $b(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(jb);var n=function(){var i=arguments,a=e?e.apply(this,i):i[0],r=n.cache;if(r.has(a))return r.get(a);var o=t.apply(this,i);return n.cache=r.set(a,o)||r,o};return n.cache=new($b.Cache||Fb),n}$b.Cache=Fb;const zb={curveBasis:Kl,curveBasisClosed:Jl,curveBasisOpen:tu,curveBumpX:ql,curveBumpY:Wl,curveBundle:nu,curveCardinalClosed:su,curveCardinalOpen:lu,curveCardinal:ru,curveCatmullRomClosed:gu,curveCatmullRomOpen:bu,curveCatmullRom:hu,curveLinear:Pl,curveLinearClosed:yu,curveMonotoneX:Cu,curveMonotoneY:Su,curveNatural:Du,curveStep:Lu,curveStepAfter:Mu,curveStepBefore:Ou},Hb=/%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Ub=/\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi,Vb=function(t,e){const n=qb(t,/(?:init\b)|(?:initialize\b)/);let i={};if(Array.isArray(n)){const t=n.map((t=>t.args));gm(t),i=Sp(i,[...t])}else i=n.args;if(i){let n=Rp(t,e);["config"].forEach((t=>{void 0!==i[t]&&("flowchart-v2"===n&&(n="flowchart"),i[n]=i[t],delete i[t])}))}return i},qb=function(t,e=null){try{const n=new RegExp(`[%]{2}(?![{]${Ub.source})(?=[}][%]{2}).*\n`,"ig");let i;t=t.trim().replace(n,"").replace(/'/gm,'"'),d.debug(`Detecting diagram directive${null!==e?" type:"+e:""} based on the text:${t}`);const a=[];for(;null!==(i=Hb.exec(t));)if(i.index===Hb.lastIndex&&Hb.lastIndex++,i&&!e||e&&i[1]&&i[1].match(e)||e&&i[2]&&i[2].match(e)){const t=i[1]?i[1]:i[2],e=i[3]?i[3].trim():i[4]?JSON.parse(i[4].trim()):null;a.push({type:t,args:e})}return 0===a.length&&a.push({type:t,args:null}),1===a.length?a[0]:a}catch(n){return d.error(`ERROR: ${n.message} - Unable to parse directive\n ${null!==e?" type:"+e:""} based on the text:${t}`),{type:null,args:null}}},Wb=function(t,e){for(const[n,i]of e.entries())if(i.match(t))return n;return-1};function Yb(t,e){if(!t)return e;const n=`curve${t.charAt(0).toUpperCase()+t.slice(1)}`;return zb[n]||e}function Gb(t,e){const n=t.trim();if(n)return"loose"!==e.securityLevel?p(n):n}const Zb=(t,...e)=>{const n=t.split("."),i=n.length-1,a=n[i];let r=window;for(let o=0;o<i;o++)if(r=r[n[o]],!r)return;r[a](...e)};function Kb(t,e){return t&&e?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):0}function Xb(t){let e,n=0;t.forEach((t=>{n+=Kb(t,e),e=t}));let i,a=n/2;return e=void 0,t.forEach((t=>{if(e&&!i){const n=Kb(t,e);if(n<a)a-=n;else{const r=a/n;r<=0&&(i=e),r>=1&&(i={x:t.x,y:t.y}),r>0&&r<1&&(i={x:(1-r)*e.x+r*t.x,y:(1-r)*e.y+r*t.y})}}e=t})),i}function Jb(t){return 1===t.length?t[0]:Xb(t)}const Qb=(t,e,n)=>{let i;d.info(`our points ${JSON.stringify(e)}`),e[0]!==n&&(e=e.reverse());let a,r=25;i=void 0,e.forEach((t=>{if(i&&!a){const e=Kb(t,i);if(e<r)r-=e;else{const n=r/e;n<=0&&(a=i),n>=1&&(a={x:t.x,y:t.y}),n>0&&n<1&&(a={x:(1-n)*i.x+n*t.x,y:(1-n)*i.y+n*t.y})}}i=t}));const o=t?10:5,s=Math.atan2(e[0].y-a.y,e[0].x-a.x),c={x:0,y:0};return c.x=Math.sin(s)*o+(e[0].x+a.x)/2,c.y=-Math.cos(s)*o+(e[0].y+a.y)/2,c};function tm(t,e,n){let i,a=JSON.parse(JSON.stringify(n));d.info("our points",a),"start_left"!==e&&"start_right"!==e&&(a=a.reverse()),a.forEach((t=>{i=t}));let r,o=25+t;i=void 0,a.forEach((t=>{if(i&&!r){const e=Kb(t,i);if(e<o)o-=e;else{const n=o/e;n<=0&&(r=i),n>=1&&(r={x:t.x,y:t.y}),n>0&&n<1&&(r={x:(1-n)*i.x+n*t.x,y:(1-n)*i.y+n*t.y})}}i=t}));const s=10+.5*t,c=Math.atan2(a[0].y-r.y,a[0].x-r.x),l={x:0,y:0};return l.x=Math.sin(c)*s+(a[0].x+r.x)/2,l.y=-Math.cos(c)*s+(a[0].y+r.y)/2,"start_left"===e&&(l.x=Math.sin(c+Math.PI)*s+(a[0].x+r.x)/2,l.y=-Math.cos(c+Math.PI)*s+(a[0].y+r.y)/2),"end_right"===e&&(l.x=Math.sin(c-Math.PI)*s+(a[0].x+r.x)/2-5,l.y=-Math.cos(c-Math.PI)*s+(a[0].y+r.y)/2-5),"end_left"===e&&(l.x=Math.sin(c)*s+(a[0].x+r.x)/2-5,l.y=-Math.cos(c)*s+(a[0].y+r.y)/2-5),l}function em(t){let e="",n="";for(const i of t)void 0!==i&&(i.startsWith("color:")||i.startsWith("text-align:")?n=n+i+";":e=e+i+";");return{style:e,labelStyle:n}}let nm=0;const im=()=>(nm++,"id-"+Math.random().toString(36).substr(2,12)+"-"+nm);function am(t){let e="";const n="0123456789abcdef",i=n.length;for(let a=0;a<t;a++)e+=n.charAt(Math.floor(Math.random()*i));return e}const rm=t=>am(t.length),om=function(){return{x:0,y:0,fill:void 0,anchor:"start",style:"#666",width:100,height:100,textMargin:0,rx:0,ry:0,valign:void 0}},sm=function(t,e){const n=e.text.replace(Qd.lineBreakRegex," "),[,i]=ym(e.fontSize),a=t.append("text");a.attr("x",e.x),a.attr("y",e.y),a.style("text-anchor",e.anchor),a.style("font-family",e.fontFamily),a.style("font-size",i),a.style("font-weight",e.fontWeight),a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class);const r=a.append("tspan");return r.attr("x",e.x+2*e.textMargin),r.attr("fill",e.fill),r.text(n),a},cm=$b(((t,e,n)=>{if(!t||(n=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",joinWith:"<br/>"},n),Qd.lineBreakRegex.test(t)))return t;const i=t.split(" "),a=[];let r="";return i.forEach(((t,o)=>{const s=dm(`${t} `,n),c=dm(r,n);if(s>e){const{hyphenatedStrings:i,remainingWord:o}=lm(t,e,"-",n);a.push(r,...i),r=o}else c+s>=e?(a.push(r),r=t):r=[r,t].filter(Boolean).join(" ");o+1===i.length&&a.push(r)})),a.filter((t=>""!==t)).join(n.joinWith)}),((t,e,n)=>`${t}${e}${n.fontSize}${n.fontWeight}${n.fontFamily}${n.joinWith}`)),lm=$b(((t,e,n="-",i)=>{i=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:0},i);const a=[...t],r=[];let o="";return a.forEach(((t,s)=>{const c=`${o}${t}`;if(dm(c,i)>=e){const t=s+1,e=a.length===t,i=`${c}${n}`;r.push(e?c:i),o=""}else o=c})),{hyphenatedStrings:r,remainingWord:o}}),((t,e,n="-",i)=>`${t}${e}${n}${i.fontSize}${i.fontWeight}${i.fontFamily}`));function um(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial",margin:15},e),hm(t,e).height}function dm(t,e){return e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e),hm(t,e).width}const hm=$b(((t,e)=>{e=Object.assign({fontSize:12,fontWeight:400,fontFamily:"Arial"},e);const{fontSize:n,fontFamily:i,fontWeight:a}=e;if(!t)return{width:0,height:0};const[,r]=ym(n),o=["sans-serif",i],s=t.split(Qd.lineBreakRegex),c=[],l=un("body");if(!l.remove)return{width:0,height:0,lineHeight:0};const u=l.append("svg");for(const d of o){let t=0;const e={width:0,height:0,lineHeight:0};for(const n of s){const i=om();i.text=n;const o=sm(u,i).style("font-size",r).style("font-weight",a).style("font-family",d),s=(o._groups||o)[0][0].getBBox();e.width=Math.round(Math.max(e.width,s.width)),t=Math.round(s.height),e.height+=t,e.lineHeight=Math.round(Math.max(e.lineHeight,t))}c.push(e)}return u.remove(),c[isNaN(c[1].height)||isNaN(c[1].width)||isNaN(c[1].lineHeight)||c[0].height>c[1].height&&c[0].width>c[1].width&&c[0].lineHeight>c[1].lineHeight?0:1]}),((t,e)=>`${t}${e.fontSize}${e.fontWeight}${e.fontFamily}`));let fm;const gm=t=>{if(d.debug("directiveSanitizer called with",t),"object"==typeof t&&(t.length?t.forEach((t=>gm(t))):Object.keys(t).forEach((e=>{d.debug("Checking key",e),e.startsWith("__")&&(d.debug("sanitize deleting __ option",e),delete t[e]),e.includes("proto")&&(d.debug("sanitize deleting proto option",e),delete t[e]),e.includes("constr")&&(d.debug("sanitize deleting constr option",e),delete t[e]),e.includes("themeCSS")&&(d.debug("sanitizing themeCss option"),t[e]=pm(t[e])),e.includes("fontFamily")&&(d.debug("sanitizing fontFamily option"),t[e]=pm(t[e])),e.includes("altFontFamily")&&(d.debug("sanitizing altFontFamily option"),t[e]=pm(t[e])),Uh.includes(e)?"object"==typeof t[e]&&(d.debug("sanitize deleting object",e),gm(t[e])):(d.debug("sanitize deleting option",e),delete t[e])}))),t.themeVariables){const e=Object.keys(t.themeVariables);for(const n of e){const e=t.themeVariables[n];e&&e.match&&!e.match(/^[\d "#%(),.;A-Za-z]+$/)&&(t.themeVariables[n]="")}}d.debug("After sanitization",t)},pm=t=>{let e=0,n=0;for(const i of t){if(e<n)return"{ /* ERROR: Unbalanced CSS */ }";"{"===i?e++:"}"===i&&n++}return e!==n?"{ /* ERROR: Unbalanced CSS */ }":t};function bm(t){return"str"in t}function mm(t){return t instanceof Error?t.message:String(t)}const ym=t=>{if("number"==typeof t)return[t,t+"px"];const e=parseInt(t,10);return Number.isNaN(e)?[void 0,void 0]:t===String(e)?[e,t+"px"]:[e,t]},vm={assignWithDepth:Sp,wrapLabel:cm,calculateTextHeight:um,calculateTextWidth:dm,calculateTextDimensions:hm,detectInit:Vb,detectDirective:qb,isSubstringInArray:Wb,interpolateToCurve:Yb,calcLabelPosition:Jb,calcCardinalityPosition:Qb,calcTerminalLabelPosition:tm,formatUrl:Gb,getStylesFromArray:em,generateId:im,random:rm,runFunc:Zb,entityDecode:function(t){return fm=fm||document.createElement("div"),t=escape(t).replace(/%26/g,"&").replace(/%23/g,"#").replace(/%3B/g,";"),fm.innerHTML=t,unescape(fm.textContent)},initIdGenerator:class{constructor(t,e){this.deterministic=t,this.seed=e,this.count=e?e.length:0}next(){return this.deterministic?this.count++:Date.now()}},directiveSanitizer:gm,sanitizeCss:pm,insertTitle:(t,e,n,i)=>{if(!i)return;const a=t.node().getBBox();t.append("text").text(i).attr("x",a.x+a.width/2).attr("y",-n).attr("class",e)},parseFontSize:ym};var wm="comm",xm="rule",Rm="decl",_m="@import",km="@keyframes",Em=Math.abs,Cm=String.fromCharCode;function Sm(t){return t.trim()}function Tm(t,e,n){return t.replace(e,n)}function Am(t,e){return t.indexOf(e)}function Dm(t,e){return 0|t.charCodeAt(e)}function Im(t,e,n){return t.slice(e,n)}function Lm(t){return t.length}function Om(t){return t.length}function Mm(t,e){return e.push(t),t}var Nm=1,Bm=1,Pm=0,Fm=0,jm=0,$m="";function zm(t,e,n,i,a,r,o){return{value:t,root:e,parent:n,type:i,props:a,children:r,line:Nm,column:Bm,length:o,return:""}}function Hm(){return jm}function Um(){return jm=Fm>0?Dm($m,--Fm):0,Bm--,10===jm&&(Bm=1,Nm--),jm}function Vm(){return jm=Fm<Pm?Dm($m,Fm++):0,Bm++,10===jm&&(Bm=1,Nm++),jm}function qm(){return Dm($m,Fm)}function Wm(){return Fm}function Ym(t,e){return Im($m,t,e)}function Gm(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Zm(t){return Nm=Bm=1,Pm=Lm($m=t),Fm=0,[]}function Km(t){return $m="",t}function Xm(t){return Sm(Ym(Fm-1,ty(91===t?t+2:40===t?t+1:t)))}function Jm(t){for(;(jm=qm())&&jm<33;)Vm();return Gm(t)>2||Gm(jm)>3?"":" "}function Qm(t,e){for(;--e&&Vm()&&!(jm<48||jm>102||jm>57&&jm<65||jm>70&&jm<97););return Ym(t,Wm()+(e<6&&32==qm()&&32==Vm()))}function ty(t){for(;Vm();)switch(jm){case t:return Fm;case 34:case 39:34!==t&&39!==t&&ty(jm);break;case 40:41===t&&ty(t);break;case 92:Vm()}return Fm}function ey(t,e){for(;Vm()&&t+jm!==57&&(t+jm!==84||47!==qm()););return"/*"+Ym(e,Fm-1)+"*"+Cm(47===t?t:Vm())}function ny(t){for(;!Gm(qm());)Vm();return Ym(t,Fm)}function iy(t){return Km(ay("",null,null,null,[""],t=Zm(t),0,[0],t))}function ay(t,e,n,i,a,r,o,s,c){for(var l=0,u=0,d=o,h=0,f=0,g=0,p=1,b=1,m=1,y=0,v="",w=a,x=r,R=i,_=v;b;)switch(g=y,y=Vm()){case 40:if(108!=g&&58==Dm(_,d-1)){-1!=Am(_+=Tm(Xm(y),"&","&\f"),"&\f")&&(m=-1);break}case 34:case 39:case 91:_+=Xm(y);break;case 9:case 10:case 13:case 32:_+=Jm(g);break;case 92:_+=Qm(Wm()-1,7);continue;case 47:switch(qm()){case 42:case 47:Mm(oy(ey(Vm(),Wm()),e,n),c);break;default:_+="/"}break;case 123*p:s[l++]=Lm(_)*m;case 125*p:case 59:case 0:switch(y){case 0:case 125:b=0;case 59+u:f>0&&Lm(_)-d&&Mm(f>32?sy(_+";",i,n,d-1):sy(Tm(_," ","")+";",i,n,d-2),c);break;case 59:_+=";";default:if(Mm(R=ry(_,e,n,l,u,a,s,v,w=[],x=[],d),r),123===y)if(0===u)ay(_,e,R,R,w,r,d,s,x);else switch(h){case 100:case 109:case 115:ay(t,R,R,i&&Mm(ry(t,R,R,0,0,a,s,v,a,w=[],d),x),a,x,d,s,i?w:x);break;default:ay(_,R,R,R,[""],x,0,s,x)}}l=u=f=0,p=m=1,v=_="",d=o;break;case 58:d=1+Lm(_),f=g;default:if(p<1)if(123==y)--p;else if(125==y&&0==p++&&125==Um())continue;switch(_+=Cm(y),y*p){case 38:m=u>0?1:(_+="\f",-1);break;case 44:s[l++]=(Lm(_)-1)*m,m=1;break;case 64:45===qm()&&(_+=Xm(Vm())),h=qm(),u=d=Lm(v=_+=ny(Wm())),y++;break;case 45:45===g&&2==Lm(_)&&(p=0)}}return r}function ry(t,e,n,i,a,r,o,s,c,l,u){for(var d=a-1,h=0===a?r:[""],f=Om(h),g=0,p=0,b=0;g<i;++g)for(var m=0,y=Im(t,d+1,d=Em(p=o[g])),v=t;m<f;++m)(v=Sm(p>0?h[m]+" "+y:Tm(y,/&\f/g,h[m])))&&(c[b++]=v);return zm(t,e,n,0===a?xm:s,c,l,u)}function oy(t,e,n){return zm(t,e,n,wm,Cm(Hm()),Im(t,2,-2),0)}function sy(t,e,n,i){return zm(t,e,n,Rm,Im(t,0,i),Im(t,i+1,-1),i)}function cy(t,e){for(var n="",i=Om(t),a=0;a<i;a++)n+=e(t[a],a,t,e)||"";return n}function ly(t,e,n,i){switch(t.type){case _m:case Rm:return t.return=t.return||t.value;case wm:return"";case km:return t.return=t.value+"{"+cy(t.children,i)+"}";case xm:t.value=t.props.join(",")}return Lm(n=cy(t.children,i))?t.return=t.value+"{"+n+"}":""}const uy="9.4.3",dy=Object.freeze(Vh);let hy,fy=Sp({},dy),gy=[],py=Sp({},dy);const by=(t,e)=>{let n=Sp({},t),i={};for(const a of e)_y(a),i=Sp(i,a);if(n=Sp(n,i),i.theme&&i.theme in $h){const t=Sp({},hy),e=Sp(t.themeVariables||{},i.themeVariables);n.theme&&n.theme in $h&&(n.themeVariables=$h[n.theme].getThemeVariables(e))}return py=n,Ay(py),py},my=t=>(fy=Sp({},dy),fy=Sp(fy,t),t.theme&&$h[t.theme]&&(fy.themeVariables=$h[t.theme].getThemeVariables(t.themeVariables)),by(fy,gy),fy),yy=t=>{hy=Sp({},t)},vy=t=>(fy=Sp(fy,t),by(fy,gy),fy),wy=()=>Sp({},fy),xy=t=>(Ay(t),Sp(py,t),Ry()),Ry=()=>Sp({},py),_y=t=>{["secure",...fy.secure??[]].forEach((e=>{void 0!==t[e]&&(d.debug(`Denied attempt to modify a secure key ${e}`,t[e]),delete t[e])})),Object.keys(t).forEach((e=>{0===e.indexOf("__")&&delete t[e]})),Object.keys(t).forEach((e=>{"string"==typeof t[e]&&(t[e].includes("<")||t[e].includes(">")||t[e].includes("url(data:"))&&delete t[e],"object"==typeof t[e]&&_y(t[e])}))},ky=t=>{t.fontFamily&&(t.themeVariables&&t.themeVariables.fontFamily||(t.themeVariables={fontFamily:t.fontFamily})),gy.push(t),by(fy,gy)},Ey=(t=fy)=>{gy=[],by(t,gy)};var Cy=(t=>(t.LAZY_LOAD_DEPRECATED="The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.",t))(Cy||{});const Sy={},Ty=t=>{Sy[t]||(d.warn(Cy[t]),Sy[t]=!0)},Ay=t=>{t&&(t.lazyLoadedDiagrams||t.loadExternalDiagramsAtStartup)&&Ty("LAZY_LOAD_DEPRECATED")},Dy=function(t,e){for(let n of e)t.attr(n[0],n[1])},Iy=function(t,e,n){let i=new Map;return n?(i.set("width","100%"),i.set("style",`max-width: ${e}px;`)):(i.set("height",t),i.set("width",e)),i},Ly=function(t,e,n,i){const a=Iy(e,n,i);Dy(t,a)},Oy=function(t,e,n,i){const a=e.node().getBBox(),r=a.width,o=a.height;d.info(`SVG bounds: ${r}x${o}`,a);let s=0,c=0;d.info(`Graph bounds: ${s}x${c}`,t),s=r+2*n,c=o+2*n,d.info(`Calculated bounds: ${s}x${c}`),Ly(e,c,s,i);const l=`${a.x-n} ${a.y-n} ${a.width+2*n} ${a.height+2*n}`;e.attr("viewBox",l)},My=t=>`g.classGroup text {\n fill: ${t.nodeBorder};\n fill: ${t.classText};\n stroke: none;\n font-family: ${t.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.nodeLabel, .edgeLabel {\n color: ${t.classText};\n}\n.edgeLabel .label rect {\n fill: ${t.mainBkg};\n}\n.label text {\n fill: ${t.classText};\n}\n.edgeLabel .label span {\n background: ${t.mainBkg};\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${t.nodeBorder};\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${t.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${t.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${t.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n.dotted-line{\n stroke-dasharray: 1 2;\n}\n\n#compositionStart, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${t.lineColor} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopStart, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n#lollipopEnd, .lollipop {\n fill: ${t.mainBkg} !important;\n stroke: ${t.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n.classTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`,Ny=t=>`\n .entityBox {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n }\n\n .attributeBoxOdd {\n fill: ${t.attributeBackgroundColorOdd};\n stroke: ${t.nodeBorder};\n }\n\n .attributeBoxEven {\n fill: ${t.attributeBackgroundColorEven};\n stroke: ${t.nodeBorder};\n }\n\n .relationshipLabelBox {\n fill: ${t.tertiaryColor};\n opacity: 0.7;\n background-color: ${t.tertiaryColor};\n rect {\n opacity: 0.5;\n }\n }\n\n .relationshipLine {\n stroke: ${t.lineColor};\n }\n\n .entityTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n } \n`,By=()=>"",Py=t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n .cluster-label text {\n fill: ${t.titleColor};\n }\n .cluster-label span {\n color: ${t.titleColor};\n }\n\n .label text,span {\n fill: ${t.nodeTextColor||t.textColor};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${t.clusterBkg};\n stroke: ${t.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n .cluster span {\n color: ${t.titleColor};\n }\n /* .cluster div {\n color: ${t.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n`,Fy=t=>`\n .mermaid-main-font {\n font-family: "trebuchet ms", verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n .exclude-range {\n fill: ${t.excludeBkgColor};\n }\n\n .section {\n stroke: none;\n opacity: 0.2;\n }\n\n .section0 {\n fill: ${t.sectionBkgColor};\n }\n\n .section2 {\n fill: ${t.sectionBkgColor2};\n }\n\n .section1,\n .section3 {\n fill: ${t.altSectionBkgColor};\n opacity: 0.2;\n }\n\n .sectionTitle0 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle1 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle2 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle3 {\n fill: ${t.titleColor};\n }\n\n .sectionTitle {\n text-anchor: start;\n // font-size: ${t.ganttFontSize};\n // text-height: 14px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n\n /* Grid and axis */\n\n .grid .tick {\n stroke: ${t.gridColor};\n opacity: 0.8;\n shape-rendering: crispEdges;\n text {\n font-family: ${t.fontFamily};\n fill: ${t.textColor};\n }\n }\n\n .grid path {\n stroke-width: 0;\n }\n\n\n /* Today line */\n\n .today {\n fill: none;\n stroke: ${t.todayLineColor};\n stroke-width: 2px;\n }\n\n\n /* Task styling */\n\n /* Default task */\n\n .task {\n stroke-width: 2;\n }\n\n .taskText {\n text-anchor: middle;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n\n // .taskText:not([font-size]) {\n // font-size: ${t.ganttFontSize};\n // }\n\n .taskTextOutsideRight {\n fill: ${t.taskTextDarkColor};\n text-anchor: start;\n // font-size: ${t.ganttFontSize};\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n\n }\n\n .taskTextOutsideLeft {\n fill: ${t.taskTextDarkColor};\n text-anchor: end;\n // font-size: ${t.ganttFontSize};\n }\n\n /* Special case clickable */\n .task.clickable {\n cursor: pointer;\n }\n .taskText.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideLeft.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n .taskTextOutsideRight.clickable {\n cursor: pointer;\n fill: ${t.taskTextClickableColor} !important;\n font-weight: bold;\n }\n\n /* Specific task settings for the sections*/\n\n .taskText0,\n .taskText1,\n .taskText2,\n .taskText3 {\n fill: ${t.taskTextColor};\n }\n\n .task0,\n .task1,\n .task2,\n .task3 {\n fill: ${t.taskBkgColor};\n stroke: ${t.taskBorderColor};\n }\n\n .taskTextOutside0,\n .taskTextOutside2\n {\n fill: ${t.taskTextOutsideColor};\n }\n\n .taskTextOutside1,\n .taskTextOutside3 {\n fill: ${t.taskTextOutsideColor};\n }\n\n\n /* Active task */\n\n .active0,\n .active1,\n .active2,\n .active3 {\n fill: ${t.activeTaskBkgColor};\n stroke: ${t.activeTaskBorderColor};\n }\n\n .activeText0,\n .activeText1,\n .activeText2,\n .activeText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Completed task */\n\n .done0,\n .done1,\n .done2,\n .done3 {\n stroke: ${t.doneTaskBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneText0,\n .doneText1,\n .doneText2,\n .doneText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n\n /* Tasks on the critical line */\n\n .crit0,\n .crit1,\n .crit2,\n .crit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.critBkgColor};\n stroke-width: 2;\n }\n\n .activeCrit0,\n .activeCrit1,\n .activeCrit2,\n .activeCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.activeTaskBkgColor};\n stroke-width: 2;\n }\n\n .doneCrit0,\n .doneCrit1,\n .doneCrit2,\n .doneCrit3 {\n stroke: ${t.critBorderColor};\n fill: ${t.doneTaskBkgColor};\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n }\n\n .milestone {\n transform: rotate(45deg) scale(0.8,0.8);\n }\n\n .milestoneText {\n font-style: italic;\n }\n .doneCritText0,\n .doneCritText1,\n .doneCritText2,\n .doneCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .activeCritText0,\n .activeCritText1,\n .activeCritText2,\n .activeCritText3 {\n fill: ${t.taskTextDarkColor} !important;\n }\n\n .titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor} ;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n`,jy=()=>"",$y=t=>`\n .pieCircle{\n stroke: ${t.pieStrokeColor};\n stroke-width : ${t.pieStrokeWidth};\n opacity : ${t.pieOpacity};\n }\n .pieTitleText {\n text-anchor: middle;\n font-size: ${t.pieTitleTextSize};\n fill: ${t.pieTitleTextColor};\n font-family: ${t.fontFamily};\n }\n .slice {\n font-family: ${t.fontFamily};\n fill: ${t.pieSectionTextColor};\n font-size:${t.pieSectionTextSize};\n // fill: white;\n }\n .legend text {\n fill: ${t.pieLegendTextColor};\n font-family: ${t.fontFamily};\n font-size: ${t.pieLegendTextSize};\n }\n`,zy=t=>`\n\n marker {\n fill: ${t.relationColor};\n stroke: ${t.relationColor};\n }\n\n marker.cross {\n stroke: ${t.lineColor};\n }\n\n svg {\n font-family: ${t.fontFamily};\n font-size: ${t.fontSize};\n }\n\n .reqBox {\n fill: ${t.requirementBackground};\n fill-opacity: 100%;\n stroke: ${t.requirementBorderColor};\n stroke-width: ${t.requirementBorderSize};\n }\n \n .reqTitle, .reqLabel{\n fill: ${t.requirementTextColor};\n }\n .reqLabelBox {\n fill: ${t.relationLabelBackground};\n fill-opacity: 100%;\n }\n\n .req-title-line {\n stroke: ${t.requirementBorderColor};\n stroke-width: ${t.requirementBorderSize};\n }\n .relationshipLine {\n stroke: ${t.relationColor};\n stroke-width: 1;\n }\n .relationshipLabel {\n fill: ${t.relationLabelColor};\n }\n\n`,Hy=t=>`.actor {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n\n text.actor > tspan {\n fill: ${t.actorTextColor};\n stroke: none;\n }\n\n .actor-line {\n stroke: ${t.actorLineColor};\n }\n\n .messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: none;\n stroke: ${t.signalColor};\n }\n\n .messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: 2, 2;\n stroke: ${t.signalColor};\n }\n\n #arrowhead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .sequenceNumber {\n fill: ${t.sequenceNumberColor};\n }\n\n #sequencenumber {\n fill: ${t.signalColor};\n }\n\n #crosshead path {\n fill: ${t.signalColor};\n stroke: ${t.signalColor};\n }\n\n .messageText {\n fill: ${t.signalTextColor};\n stroke: none;\n }\n\n .labelBox {\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBkgColor};\n }\n\n .labelText, .labelText > tspan {\n fill: ${t.labelTextColor};\n stroke: none;\n }\n\n .loopText, .loopText > tspan {\n fill: ${t.loopTextColor};\n stroke: none;\n }\n\n .loopLine {\n stroke-width: 2px;\n stroke-dasharray: 2, 2;\n stroke: ${t.labelBoxBorderColor};\n fill: ${t.labelBoxBorderColor};\n }\n\n .note {\n //stroke: #decc93;\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n }\n\n .noteText, .noteText > tspan {\n fill: ${t.noteTextColor};\n stroke: none;\n }\n\n .activation0 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation1 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .activation2 {\n fill: ${t.activationBkgColor};\n stroke: ${t.activationBorderColor};\n }\n\n .actorPopupMenu {\n position: absolute;\n }\n\n .actorPopupMenuPanel {\n position: absolute;\n fill: ${t.actorBkg};\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));\n}\n .actor-man line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n }\n .actor-man circle, line {\n stroke: ${t.actorBorder};\n fill: ${t.actorBkg};\n stroke-width: 2px;\n }\n`,Uy=t=>`\ndefs #statediagram-barbEnd {\n fill: ${t.transitionColor};\n stroke: ${t.transitionColor};\n }\ng.stateGroup text {\n fill: ${t.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${t.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${t.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${t.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${t.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${t.noteBorderColor};\n fill: ${t.noteBkgColor};\n\n text {\n fill: ${t.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${t.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${t.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel .label text {\n fill: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${t.transitionLabelColor||t.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${t.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${t.specialStateColor};\n stroke: ${t.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${t.innerEndBackground};\n stroke: ${t.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${t.compositeBackground||t.background};\n // stroke: ${t.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${t.stateBkg||t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${t.mainBkg};\n stroke: ${t.stateBorder||t.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${t.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${t.compositeTitleBackground};\n stroke: ${t.stateBorder||t.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${t.stateLabelColor};\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${t.stateBorder||t.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${t.compositeBackground||t.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${t.altBackground?t.altBackground:"#efefef"};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${t.noteBkgColor};\n stroke: ${t.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${t.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${t.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${t.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${t.lineColor};\n stroke: ${t.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n}\n`,Vy=t=>`.label {\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n color: ${t.textColor};\n }\n .mouth {\n stroke: #666;\n }\n\n line {\n stroke: ${t.textColor}\n }\n\n .legend {\n fill: ${t.textColor};\n }\n\n .label text {\n fill: #333;\n }\n .label {\n color: ${t.textColor}\n }\n\n .face {\n ${t.faceColor?`fill: ${t.faceColor}`:"fill: #FFF8DC"};\n stroke: #999;\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 1.5px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n }\n text-align: center;\n }\n\n .cluster rect {\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .task-type-0, .section-type-0 {\n ${t.fillType0?`fill: ${t.fillType0}`:""};\n }\n .task-type-1, .section-type-1 {\n ${t.fillType0?`fill: ${t.fillType1}`:""};\n }\n .task-type-2, .section-type-2 {\n ${t.fillType0?`fill: ${t.fillType2}`:""};\n }\n .task-type-3, .section-type-3 {\n ${t.fillType0?`fill: ${t.fillType3}`:""};\n }\n .task-type-4, .section-type-4 {\n ${t.fillType0?`fill: ${t.fillType4}`:""};\n }\n .task-type-5, .section-type-5 {\n ${t.fillType0?`fill: ${t.fillType5}`:""};\n }\n .task-type-6, .section-type-6 {\n ${t.fillType0?`fill: ${t.fillType6}`:""};\n }\n .task-type-7, .section-type-7 {\n ${t.fillType0?`fill: ${t.fillType7}`:""};\n }\n\n .actor-0 {\n ${t.actor0?`fill: ${t.actor0}`:""};\n }\n .actor-1 {\n ${t.actor1?`fill: ${t.actor1}`:""};\n }\n .actor-2 {\n ${t.actor2?`fill: ${t.actor2}`:""};\n }\n .actor-3 {\n ${t.actor3?`fill: ${t.actor3}`:""};\n }\n .actor-4 {\n ${t.actor4?`fill: ${t.actor4}`:""};\n }\n .actor-5 {\n ${t.actor5?`fill: ${t.actor5}`:""};\n }\n`,qy=t=>`.person {\n stroke: ${t.personBorder};\n fill: ${t.personBkg};\n }\n`,Wy={flowchart:Py,"flowchart-v2":Py,sequence:Hy,gantt:Fy,classDiagram:My,"classDiagram-v2":My,class:My,stateDiagram:Uy,state:Uy,info:jy,pie:$y,er:Ny,error:By,journey:Vy,requirement:zy,c4:qy},Yy=(t,e)=>{Wy[t]=e},Gy=(t,e,n)=>{let i="";return t in Wy&&Wy[t]?i=Wy[t](n):d.warn(`No theme found for ${t}`),` & {\n font-family: ${n.fontFamily};\n font-size: ${n.fontSize};\n fill: ${n.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n & .error-icon {\n fill: ${n.errorBkgColor};\n }\n & .error-text {\n fill: ${n.errorTextColor};\n stroke: ${n.errorTextColor};\n }\n\n & .edge-thickness-normal {\n stroke-width: 2px;\n }\n & .edge-thickness-thick {\n stroke-width: 3.5px\n }\n & .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n & .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n & .marker {\n fill: ${n.lineColor};\n stroke: ${n.lineColor};\n }\n & .marker.cross {\n stroke: ${n.lineColor};\n }\n\n & svg {\n font-family: ${n.fontFamily};\n font-size: ${n.fontSize};\n }\n\n ${i}\n\n ${e}\n`};let Zy="",Ky="",Xy="";const Jy=t=>Wd(t,Ry()),Qy=function(){Zy="",Xy="",Ky=""},tv=function(t){Zy=Jy(t).replace(/^\s+/g,"")},ev=function(){return Zy||Ky},nv=function(t){Xy=Jy(t).replace(/\n\s+/g,"\n")},iv=function(){return Xy},av=function(t){Ky=Jy(t)},rv=function(){return Ky},ov=Object.freeze(Object.defineProperty({__proto__:null,clear:Qy,default:{setAccTitle:tv,getAccTitle:ev,setDiagramTitle:av,getDiagramTitle:rv,getAccDescription:iv,setAccDescription:nv,clear:Qy},getAccDescription:iv,getAccTitle:ev,getDiagramTitle:rv,setAccDescription:nv,setAccTitle:tv,setDiagramTitle:av},Symbol.toStringTag,{value:"Module"}));let sv={};const cv=function(t,e,n,i){d.debug("parseDirective is being called",e,n,i);try{if(void 0!==e)switch(e=e.trim(),n){case"open_directive":sv={};break;case"type_directive":if(!sv)throw new Error("currentDirective is undefined");sv.type=e.toLowerCase();break;case"arg_directive":if(!sv)throw new Error("currentDirective is undefined");sv.args=JSON.parse(e);break;case"close_directive":lv(t,sv,i),sv=void 0}}catch(a){d.error(`Error while rendering sequenceDiagram directive: ${e} jison context: ${n}`),d.error(a.message)}},lv=function(t,e,n){switch(d.info(`Directive type=${e.type} with args:`,e.args),e.type){case"init":case"initialize":["config"].forEach((t=>{void 0!==e.args[t]&&("flowchart-v2"===n&&(n="flowchart"),e.args[n]=e.args[t],delete e.args[t])})),d.info("sanitize in handleDirective",e.args),gm(e.args),d.info("sanitize in handleDirective (done)",e.args),ky(e.args);break;case"wrap":case"nowrap":t&&t.setWrap&&t.setWrap("wrap"===e.type);break;case"themeCss":d.warn("themeCss encountered");break;default:d.warn(`Unhandled directive: source: '%%{${e.type}: ${JSON.stringify(e.args?e.args:{})}}%%`,e)}},uv=d,dv=h,hv=Ry,fv=t=>Wd(t,hv()),gv=Oy,pv=()=>ov,bv=(t,e,n,i)=>cv(t,e,n,i),mv={},yv=(t,e,n)=>{if(mv[t])throw new Error(`Diagram ${t} already registered.`);mv[t]=e,n&&kp(t,n),Yy(t,e.styles),e.injectUtils&&e.injectUtils(uv,dv,hv,fv,gv,pv(),bv)},vv=t=>{if(t in mv)return mv[t];throw new Error(`Diagram ${t} not found.`)};var wv=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,4],n=[1,7],i=[1,5],a=[1,9],r=[1,6],o=[2,6],s=[1,16],c=[6,8,14,20,22,24,25,27,29,32,37,40,50,55],l=[8,14,20,22,24,25,27,29,32,37,40],u=[8,13,14,20,22,24,25,27,29,32,37,40],d=[1,26],h=[6,8,14,50,55],f=[8,14,55],g=[1,53],p=[1,52],b=[8,14,30,33,35,38,55],m=[1,67],y=[1,68],v=[1,69],w=[8,14,33,35,42,55],x={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,GG:6,document:7,EOF:8,":":9,DIR:10,options:11,body:12,OPT:13,NL:14,line:15,statement:16,commitStatement:17,mergeStatement:18,cherryPickStatement:19,acc_title:20,acc_title_value:21,acc_descr:22,acc_descr_value:23,acc_descr_multiline_value:24,section:25,branchStatement:26,CHECKOUT:27,ref:28,BRANCH:29,ORDER:30,NUM:31,CHERRY_PICK:32,COMMIT_ID:33,STR:34,COMMIT_TAG:35,EMPTYSTR:36,MERGE:37,COMMIT_TYPE:38,commitType:39,COMMIT:40,commit_arg:41,COMMIT_MSG:42,NORMAL:43,REVERSE:44,HIGHLIGHT:45,openDirective:46,typeDirective:47,closeDirective:48,argDirective:49,open_directive:50,type_directive:51,arg_directive:52,close_directive:53,ID:54,";":55,$accept:0,$end:1},terminals_:{2:"error",6:"GG",8:"EOF",9:":",10:"DIR",13:"OPT",14:"NL",20:"acc_title",21:"acc_title_value",22:"acc_descr",23:"acc_descr_value",24:"acc_descr_multiline_value",25:"section",27:"CHECKOUT",29:"BRANCH",30:"ORDER",31:"NUM",32:"CHERRY_PICK",33:"COMMIT_ID",34:"STR",35:"COMMIT_TAG",36:"EMPTYSTR",37:"MERGE",38:"COMMIT_TYPE",40:"COMMIT",42:"COMMIT_MSG",43:"NORMAL",44:"REVERSE",45:"HIGHLIGHT",50:"open_directive",51:"type_directive",52:"arg_directive",53:"close_directive",54:"ID",55:";"},productions_:[0,[3,2],[3,2],[3,3],[3,4],[3,5],[7,0],[7,2],[11,2],[11,1],[12,0],[12,2],[15,2],[15,1],[16,1],[16,1],[16,1],[16,2],[16,2],[16,1],[16,1],[16,1],[16,2],[26,2],[26,4],[19,3],[19,5],[19,5],[19,5],[19,5],[18,2],[18,4],[18,4],[18,4],[18,6],[18,6],[18,6],[18,6],[18,6],[18,6],[18,8],[18,8],[18,8],[18,8],[18,8],[18,8],[17,2],[17,3],[17,3],[17,5],[17,5],[17,3],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,3],[17,5],[17,5],[17,5],[17,5],[17,5],[17,5],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,7],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[17,9],[41,0],[41,1],[39,1],[39,1],[39,1],[5,3],[5,5],[46,1],[47,1],[49,1],[48,1],[28,1],[28,1],[4,1],[4,1],[4,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 3:return r[s];case 4:return r[s-1];case 5:return i.setDirection(r[s-3]),r[s-1];case 7:i.setOptions(r[s-1]),this.$=r[s];break;case 8:r[s-1]+=r[s],this.$=r[s-1];break;case 10:this.$=[];break;case 11:r[s-1].push(r[s]),this.$=r[s-1];break;case 12:this.$=r[s-1];break;case 17:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 20:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 22:i.checkout(r[s]);break;case 23:i.branch(r[s]);break;case 24:i.branch(r[s-2],r[s]);break;case 25:i.cherryPick(r[s],"",void 0);break;case 26:i.cherryPick(r[s-2],"",r[s]);break;case 27:case 29:i.cherryPick(r[s-2],"","");break;case 28:i.cherryPick(r[s],"",r[s-2]);break;case 30:i.merge(r[s],"","","");break;case 31:i.merge(r[s-2],r[s],"","");break;case 32:i.merge(r[s-2],"",r[s],"");break;case 33:i.merge(r[s-2],"","",r[s]);break;case 34:i.merge(r[s-4],r[s],"",r[s-2]);break;case 35:i.merge(r[s-4],"",r[s],r[s-2]);break;case 36:i.merge(r[s-4],"",r[s-2],r[s]);break;case 37:i.merge(r[s-4],r[s-2],r[s],"");break;case 38:i.merge(r[s-4],r[s-2],"",r[s]);break;case 39:i.merge(r[s-4],r[s],r[s-2],"");break;case 40:i.merge(r[s-6],r[s-4],r[s-2],r[s]);break;case 41:i.merge(r[s-6],r[s],r[s-4],r[s-2]);break;case 42:i.merge(r[s-6],r[s-4],r[s],r[s-2]);break;case 43:i.merge(r[s-6],r[s-2],r[s-4],r[s]);break;case 44:i.merge(r[s-6],r[s],r[s-2],r[s-4]);break;case 45:i.merge(r[s-6],r[s-2],r[s],r[s-4]);break;case 46:i.commit(r[s]);break;case 47:i.commit("","",i.commitType.NORMAL,r[s]);break;case 48:i.commit("","",r[s],"");break;case 49:i.commit("","",r[s],r[s-2]);break;case 50:i.commit("","",r[s-2],r[s]);break;case 51:i.commit("",r[s],i.commitType.NORMAL,"");break;case 52:i.commit("",r[s-2],i.commitType.NORMAL,r[s]);break;case 53:i.commit("",r[s],i.commitType.NORMAL,r[s-2]);break;case 54:i.commit("",r[s-2],r[s],"");break;case 55:i.commit("",r[s],r[s-2],"");break;case 56:i.commit("",r[s-4],r[s-2],r[s]);break;case 57:i.commit("",r[s-4],r[s],r[s-2]);break;case 58:i.commit("",r[s-2],r[s-4],r[s]);break;case 59:i.commit("",r[s],r[s-4],r[s-2]);break;case 60:i.commit("",r[s],r[s-2],r[s-4]);break;case 61:i.commit("",r[s-2],r[s],r[s-4]);break;case 62:i.commit(r[s],"",i.commitType.NORMAL,"");break;case 63:i.commit(r[s],"",i.commitType.NORMAL,r[s-2]);break;case 64:i.commit(r[s-2],"",i.commitType.NORMAL,r[s]);break;case 65:i.commit(r[s-2],"",r[s],"");break;case 66:i.commit(r[s],"",r[s-2],"");break;case 67:i.commit(r[s],r[s-2],i.commitType.NORMAL,"");break;case 68:i.commit(r[s-2],r[s],i.commitType.NORMAL,"");break;case 69:i.commit(r[s-4],"",r[s-2],r[s]);break;case 70:i.commit(r[s-4],"",r[s],r[s-2]);break;case 71:i.commit(r[s-2],"",r[s-4],r[s]);break;case 72:i.commit(r[s],"",r[s-4],r[s-2]);break;case 73:i.commit(r[s],"",r[s-2],r[s-4]);break;case 74:i.commit(r[s-2],"",r[s],r[s-4]);break;case 75:i.commit(r[s-4],r[s],r[s-2],"");break;case 76:i.commit(r[s-4],r[s-2],r[s],"");break;case 77:i.commit(r[s-2],r[s],r[s-4],"");break;case 78:i.commit(r[s],r[s-2],r[s-4],"");break;case 79:i.commit(r[s],r[s-4],r[s-2],"");break;case 80:i.commit(r[s-2],r[s-4],r[s],"");break;case 81:i.commit(r[s-4],r[s],i.commitType.NORMAL,r[s-2]);break;case 82:i.commit(r[s-4],r[s-2],i.commitType.NORMAL,r[s]);break;case 83:i.commit(r[s-2],r[s],i.commitType.NORMAL,r[s-4]);break;case 84:i.commit(r[s],r[s-2],i.commitType.NORMAL,r[s-4]);break;case 85:i.commit(r[s],r[s-4],i.commitType.NORMAL,r[s-2]);break;case 86:i.commit(r[s-2],r[s-4],i.commitType.NORMAL,r[s]);break;case 87:i.commit(r[s-6],r[s-4],r[s-2],r[s]);break;case 88:i.commit(r[s-6],r[s-4],r[s],r[s-2]);break;case 89:i.commit(r[s-6],r[s-2],r[s-4],r[s]);break;case 90:i.commit(r[s-6],r[s],r[s-4],r[s-2]);break;case 91:i.commit(r[s-6],r[s-2],r[s],r[s-4]);break;case 92:i.commit(r[s-6],r[s],r[s-2],r[s-4]);break;case 93:i.commit(r[s-4],r[s-6],r[s-2],r[s]);break;case 94:i.commit(r[s-4],r[s-6],r[s],r[s-2]);break;case 95:i.commit(r[s-2],r[s-6],r[s-4],r[s]);break;case 96:i.commit(r[s],r[s-6],r[s-4],r[s-2]);break;case 97:i.commit(r[s-2],r[s-6],r[s],r[s-4]);break;case 98:i.commit(r[s],r[s-6],r[s-2],r[s-4]);break;case 99:i.commit(r[s],r[s-4],r[s-2],r[s-6]);break;case 100:i.commit(r[s-2],r[s-4],r[s],r[s-6]);break;case 101:i.commit(r[s],r[s-2],r[s-4],r[s-6]);break;case 102:i.commit(r[s-2],r[s],r[s-4],r[s-6]);break;case 103:i.commit(r[s-4],r[s-2],r[s],r[s-6]);break;case 104:i.commit(r[s-4],r[s],r[s-2],r[s-6]);break;case 105:i.commit(r[s-2],r[s-4],r[s-6],r[s]);break;case 106:i.commit(r[s],r[s-4],r[s-6],r[s-2]);break;case 107:i.commit(r[s-2],r[s],r[s-6],r[s-4]);break;case 108:i.commit(r[s],r[s-2],r[s-6],r[s-4]);break;case 109:i.commit(r[s-4],r[s-2],r[s-6],r[s]);break;case 110:i.commit(r[s-4],r[s],r[s-6],r[s-2]);break;case 111:this.$="";break;case 112:this.$=r[s];break;case 113:this.$=i.commitType.NORMAL;break;case 114:this.$=i.commitType.REVERSE;break;case 115:this.$=i.commitType.HIGHLIGHT;break;case 118:i.parseDirective("%%{","open_directive");break;case 119:i.parseDirective(r[s],"type_directive");break;case 120:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 121:i.parseDirective("}%%","close_directive","gitGraph")}},table:[{3:1,4:2,5:3,6:e,8:n,14:i,46:8,50:a,55:r},{1:[3]},{3:10,4:2,5:3,6:e,8:n,14:i,46:8,50:a,55:r},{3:11,4:2,5:3,6:e,8:n,14:i,46:8,50:a,55:r},{7:12,8:o,9:[1,13],10:[1,14],11:15,14:s},t(c,[2,124]),t(c,[2,125]),t(c,[2,126]),{47:17,51:[1,18]},{51:[2,118]},{1:[2,1]},{1:[2,2]},{8:[1,19]},{7:20,8:o,11:15,14:s},{9:[1,21]},t(l,[2,10],{12:22,13:[1,23]}),t(u,[2,9]),{9:[1,25],48:24,53:d},t([9,53],[2,119]),{1:[2,3]},{8:[1,27]},{7:28,8:o,11:15,14:s},{8:[2,7],14:[1,31],15:29,16:30,17:32,18:33,19:34,20:[1,35],22:[1,36],24:[1,37],25:[1,38],26:39,27:[1,40],29:[1,44],32:[1,43],37:[1,42],40:[1,41]},t(u,[2,8]),t(h,[2,116]),{49:45,52:[1,46]},t(h,[2,121]),{1:[2,4]},{8:[1,47]},t(l,[2,11]),{4:48,8:n,14:i,55:r},t(l,[2,13]),t(f,[2,14]),t(f,[2,15]),t(f,[2,16]),{21:[1,49]},{23:[1,50]},t(f,[2,19]),t(f,[2,20]),t(f,[2,21]),{28:51,34:g,54:p},t(f,[2,111],{41:54,33:[1,57],34:[1,59],35:[1,55],38:[1,56],42:[1,58]}),{28:60,34:g,54:p},{33:[1,61],35:[1,62]},{28:63,34:g,54:p},{48:64,53:d},{53:[2,120]},{1:[2,5]},t(l,[2,12]),t(f,[2,17]),t(f,[2,18]),t(f,[2,22]),t(b,[2,122]),t(b,[2,123]),t(f,[2,46]),{34:[1,65]},{39:66,43:m,44:y,45:v},{34:[1,70]},{34:[1,71]},t(f,[2,112]),t(f,[2,30],{33:[1,72],35:[1,74],38:[1,73]}),{34:[1,75]},{34:[1,76],36:[1,77]},t(f,[2,23],{30:[1,78]}),t(h,[2,117]),t(f,[2,47],{33:[1,80],38:[1,79],42:[1,81]}),t(f,[2,48],{33:[1,83],35:[1,82],42:[1,84]}),t(w,[2,113]),t(w,[2,114]),t(w,[2,115]),t(f,[2,51],{35:[1,85],38:[1,86],42:[1,87]}),t(f,[2,62],{33:[1,90],35:[1,88],38:[1,89]}),{34:[1,91]},{39:92,43:m,44:y,45:v},{34:[1,93]},t(f,[2,25],{35:[1,94]}),{33:[1,95]},{33:[1,96]},{31:[1,97]},{39:98,43:m,44:y,45:v},{34:[1,99]},{34:[1,100]},{34:[1,101]},{34:[1,102]},{34:[1,103]},{34:[1,104]},{39:105,43:m,44:y,45:v},{34:[1,106]},{34:[1,107]},{39:108,43:m,44:y,45:v},{34:[1,109]},t(f,[2,31],{35:[1,111],38:[1,110]}),t(f,[2,32],{33:[1,113],35:[1,112]}),t(f,[2,33],{33:[1,114],38:[1,115]}),{34:[1,116],36:[1,117]},{34:[1,118]},{34:[1,119]},t(f,[2,24]),t(f,[2,49],{33:[1,120],42:[1,121]}),t(f,[2,53],{38:[1,122],42:[1,123]}),t(f,[2,63],{33:[1,125],38:[1,124]}),t(f,[2,50],{33:[1,126],42:[1,127]}),t(f,[2,55],{35:[1,128],42:[1,129]}),t(f,[2,66],{33:[1,131],35:[1,130]}),t(f,[2,52],{38:[1,132],42:[1,133]}),t(f,[2,54],{35:[1,134],42:[1,135]}),t(f,[2,67],{35:[1,137],38:[1,136]}),t(f,[2,64],{33:[1,139],38:[1,138]}),t(f,[2,65],{33:[1,141],35:[1,140]}),t(f,[2,68],{35:[1,143],38:[1,142]}),{39:144,43:m,44:y,45:v},{34:[1,145]},{34:[1,146]},{34:[1,147]},{34:[1,148]},{39:149,43:m,44:y,45:v},t(f,[2,26]),t(f,[2,27]),t(f,[2,28]),t(f,[2,29]),{34:[1,150]},{34:[1,151]},{39:152,43:m,44:y,45:v},{34:[1,153]},{39:154,43:m,44:y,45:v},{34:[1,155]},{34:[1,156]},{34:[1,157]},{34:[1,158]},{34:[1,159]},{34:[1,160]},{34:[1,161]},{39:162,43:m,44:y,45:v},{34:[1,163]},{34:[1,164]},{34:[1,165]},{39:166,43:m,44:y,45:v},{34:[1,167]},{39:168,43:m,44:y,45:v},{34:[1,169]},{34:[1,170]},{34:[1,171]},{39:172,43:m,44:y,45:v},{34:[1,173]},t(f,[2,37],{35:[1,174]}),t(f,[2,38],{38:[1,175]}),t(f,[2,36],{33:[1,176]}),t(f,[2,39],{35:[1,177]}),t(f,[2,34],{38:[1,178]}),t(f,[2,35],{33:[1,179]}),t(f,[2,60],{42:[1,180]}),t(f,[2,73],{33:[1,181]}),t(f,[2,61],{42:[1,182]}),t(f,[2,84],{38:[1,183]}),t(f,[2,74],{33:[1,184]}),t(f,[2,83],{38:[1,185]}),t(f,[2,59],{42:[1,186]}),t(f,[2,72],{33:[1,187]}),t(f,[2,58],{42:[1,188]}),t(f,[2,78],{35:[1,189]}),t(f,[2,71],{33:[1,190]}),t(f,[2,77],{35:[1,191]}),t(f,[2,57],{42:[1,192]}),t(f,[2,85],{38:[1,193]}),t(f,[2,56],{42:[1,194]}),t(f,[2,79],{35:[1,195]}),t(f,[2,80],{35:[1,196]}),t(f,[2,86],{38:[1,197]}),t(f,[2,70],{33:[1,198]}),t(f,[2,81],{38:[1,199]}),t(f,[2,69],{33:[1,200]}),t(f,[2,75],{35:[1,201]}),t(f,[2,76],{35:[1,202]}),t(f,[2,82],{38:[1,203]}),{34:[1,204]},{39:205,43:m,44:y,45:v},{34:[1,206]},{34:[1,207]},{39:208,43:m,44:y,45:v},{34:[1,209]},{34:[1,210]},{34:[1,211]},{34:[1,212]},{39:213,43:m,44:y,45:v},{34:[1,214]},{39:215,43:m,44:y,45:v},{34:[1,216]},{34:[1,217]},{34:[1,218]},{34:[1,219]},{34:[1,220]},{34:[1,221]},{34:[1,222]},{39:223,43:m,44:y,45:v},{34:[1,224]},{34:[1,225]},{34:[1,226]},{39:227,43:m,44:y,45:v},{34:[1,228]},{39:229,43:m,44:y,45:v},{34:[1,230]},{34:[1,231]},{34:[1,232]},{39:233,43:m,44:y,45:v},t(f,[2,40]),t(f,[2,42]),t(f,[2,41]),t(f,[2,43]),t(f,[2,45]),t(f,[2,44]),t(f,[2,101]),t(f,[2,102]),t(f,[2,99]),t(f,[2,100]),t(f,[2,104]),t(f,[2,103]),t(f,[2,108]),t(f,[2,107]),t(f,[2,106]),t(f,[2,105]),t(f,[2,110]),t(f,[2,109]),t(f,[2,98]),t(f,[2,97]),t(f,[2,96]),t(f,[2,95]),t(f,[2,93]),t(f,[2,94]),t(f,[2,92]),t(f,[2,91]),t(f,[2,90]),t(f,[2,89]),t(f,[2,87]),t(f,[2,88])],defaultActions:{9:[2,118],10:[2,1],11:[2,2],19:[2,3],27:[2,4],46:[2,120],47:[2,5]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},R={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),50;case 1:return this.begin("type_directive"),51;case 2:return this.popState(),this.begin("arg_directive"),9;case 3:return this.popState(),this.popState(),53;case 4:return 52;case 5:return this.begin("acc_title"),20;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),22;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 34:case 38:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:return 14;case 13:case 14:break;case 15:return 6;case 16:return 40;case 17:return 33;case 18:return 38;case 19:return 42;case 20:return 43;case 21:return 44;case 22:return 45;case 23:return 35;case 24:return 29;case 25:return 30;case 26:return 37;case 27:return 32;case 28:return 27;case 29:case 30:return 10;case 31:return 9;case 32:return"CARET";case 33:this.begin("options");break;case 35:return 13;case 36:return 36;case 37:this.begin("string");break;case 39:return 34;case 40:return 31;case 41:return 54;case 42:return 8}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gitGraph\b)/i,/^(?:commit(?=\s|$))/i,/^(?:id:)/i,/^(?:type:)/i,/^(?:msg:)/i,/^(?:NORMAL\b)/i,/^(?:REVERSE\b)/i,/^(?:HIGHLIGHT\b)/i,/^(?:tag:)/i,/^(?:branch(?=\s|$))/i,/^(?:order:)/i,/^(?:merge(?=\s|$))/i,/^(?:cherry-pick(?=\s|$))/i,/^(?:checkout(?=\s|$))/i,/^(?:LR\b)/i,/^(?:BT\b)/i,/^(?::)/i,/^(?:\^)/i,/^(?:options\r?\n)/i,/^(?:[ \r\n\t]+end\b)/i,/^(?:[\s\S]+(?=[ \r\n\t]+end))/i,/^(?:["]["])/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[0-9]+(?=\s|$))/i,/^(?:\w([-\./\w]*[-\w])?)/i,/^(?:$)/i,/^(?:\s+)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},options:{rules:[34,35],inclusive:!1},string:{rules:[38,39],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,36,37,40,41,42,43],inclusive:!0}}};function _(){this.yy={}}return x.lexer=R,_.prototype=x,x.Parser=_,new _}();wv.parser=wv;const xv=wv,Rv=t=>null!==t.match(/^\s*gitGraph/);let _v=Ry().gitGraph.mainBranchName,kv=Ry().gitGraph.mainBranchOrder,Ev={},Cv=null,Sv={};Sv[_v]={name:_v,order:kv};let Tv={};Tv[_v]=Cv;let Av=_v,Dv="LR",Iv=0;function Lv(){return rm({length:7})}function Ov(t,e){const n=Object.create(null);return t.reduce(((t,i)=>{const a=e(i);return n[a]||(n[a]=!0,t.push(i)),t}),[])}let Mv={};const Nv=function(t,e,n,i){d.debug("Entering commit:",t,e,n,i),e=Qd.sanitizeText(e,Ry()),t=Qd.sanitizeText(t,Ry()),i=Qd.sanitizeText(i,Ry());const a={id:e||Iv+"-"+Lv(),message:t,seq:Iv++,type:n||Vv.NORMAL,tag:i||"",parents:null==Cv?[]:[Cv.id],branch:Av};Cv=a,Ev[a.id]=a,Tv[Av]=a.id,d.debug("in pushCommit "+a.id)},Bv=function(t,e){if(t=Qd.sanitizeText(t,Ry()),void 0!==Tv[t]){let e=new Error('Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout '+t+'")');throw e.hash={text:"branch "+t,token:"branch "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+t+'"']},e}Tv[t]=null!=Cv?Cv.id:null,Sv[t]={name:t,order:e?parseInt(e,10):null},jv(t),d.debug("in createBranch")},Pv=function(t,e,n,i){t=Qd.sanitizeText(t,Ry()),e=Qd.sanitizeText(e,Ry());const a=Ev[Tv[Av]],r=Ev[Tv[t]];if(Av===t){let e=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(void 0===a||!a){let e=new Error('Incorrect usage of "merge". Current branch ('+Av+")has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["commit"]},e}if(void 0===Tv[t]){let e=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") does not exist");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch "+t]},e}if(void 0===r||!r){let e=new Error('Incorrect usage of "merge". Branch to be merged ('+t+") has no commits");throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"commit"']},e}if(a===r){let e=new Error('Incorrect usage of "merge". Both branches have same head');throw e.hash={text:"merge "+t,token:"merge "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["branch abc"]},e}if(e&&void 0!==Ev[e]){let a=new Error('Incorrect usage of "merge". Commit with id:'+e+" already exists, use different custom Id");throw a.hash={text:"merge "+t+e+n+i,token:"merge "+t+e+n+i,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["merge "+t+" "+e+"_UNIQUE "+n+" "+i]},a}const o={id:e||Iv+"-"+Lv(),message:"merged branch "+t+" into "+Av,seq:Iv++,parents:[null==Cv?null:Cv.id,Tv[t]],branch:Av,type:Vv.MERGE,customType:n,customId:!!e,tag:i||""};Cv=o,Ev[o.id]=o,Tv[Av]=o.id,d.debug(Tv),d.debug("in mergeBranch")},Fv=function(t,e,n){if(d.debug("Entering cherryPick:",t,e,n),t=Qd.sanitizeText(t,Ry()),e=Qd.sanitizeText(e,Ry()),n=Qd.sanitizeText(n,Ry()),!t||void 0===Ev[t]){let n=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}let i=Ev[t],a=i.branch;if(i.type===Vv.MERGE){let n=new Error('Incorrect usage of "cherryPick". Source commit should not be a merge commit');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}if(!e||void 0===Ev[e]){if(a===Av){let n=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}const r=Ev[Tv[Av]];if(void 0===r||!r){let n=new Error('Incorrect usage of "cherry-pick". Current branch ('+Av+")has no commits");throw n.hash={text:"cherryPick "+t+" "+e,token:"cherryPick "+t+" "+e,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["cherry-pick abc"]},n}const o={id:Iv+"-"+Lv(),message:"cherry-picked "+i+" into "+Av,seq:Iv++,parents:[null==Cv?null:Cv.id,i.id],branch:Av,type:Vv.CHERRY_PICK,tag:n??"cherry-pick:"+i.id};Cv=o,Ev[o.id]=o,Tv[Av]=o.id,d.debug(Tv),d.debug("in cherryPick")}},jv=function(t){if(t=Qd.sanitizeText(t,Ry()),void 0===Tv[t]){let e=new Error('Trying to checkout branch which is not yet created. (Help try using "branch '+t+'")');throw e.hash={text:"checkout "+t,token:"checkout "+t,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"branch '+t+'"']},e}{Av=t;const e=Tv[Av];Cv=Ev[e]}};function $v(t,e,n){const i=t.indexOf(e);-1===i?t.push(n):t.splice(i,1,n)}function zv(t){const e=t.reduce(((t,e)=>t.seq>e.seq?t:e),t[0]);let n="";t.forEach((function(t){n+=t===e?"\t*":"\t|"}));const i=[n,e.id,e.seq];for(let a in Tv)Tv[a]===e.id&&i.push(a);if(d.debug(i.join(" ")),e.parents&&2==e.parents.length){const n=Ev[e.parents[0]];$v(t,e,n),t.push(Ev[e.parents[1]])}else{if(0==e.parents.length)return;{const n=Ev[e.parents];$v(t,e,n)}}zv(t=Ov(t,(t=>t.id)))}const Hv=function(){d.debug(Ev),zv([Uv()[0]])},Uv=function(){const t=Object.keys(Ev).map((function(t){return Ev[t]}));return t.forEach((function(t){d.debug(t.id)})),t.sort(((t,e)=>t.seq-e.seq)),t},Vv={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},qv={parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().gitGraph,setDirection:function(t){Dv=t},setOptions:function(t){d.debug("options str",t),t=(t=t&&t.trim())||"{}";try{Mv=JSON.parse(t)}catch(e){d.error("error while parsing gitGraph options",e.message)}},getOptions:function(){return Mv},commit:Nv,branch:Bv,merge:Pv,cherryPick:Fv,checkout:jv,prettyPrint:Hv,clear:function(){Ev={},Cv=null;let t=Ry().gitGraph.mainBranchName,e=Ry().gitGraph.mainBranchOrder;Tv={},Tv[t]=null,Sv={},Sv[t]={name:t,order:e},Av=t,Iv=0,Qy()},getBranchesAsObjArray:function(){return Object.values(Sv).map(((t,e)=>null!==t.order?t:{...t,order:parseFloat(`0.${e}`,10)})).sort(((t,e)=>t.order-e.order)).map((({name:t})=>({name:t})))},getBranches:function(){return Tv},getCommits:function(){return Ev},getCommitsArray:Uv,getCurrentBranch:function(){return Av},getDirection:function(){return Dv},getHead:function(){return Cv},setAccTitle:tv,getAccTitle:ev,getAccDescription:iv,setAccDescription:nv,setDiagramTitle:av,getDiagramTitle:rv,commitType:Vv};let Wv={};const Yv={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},Gv=8;let Zv={},Kv={},Xv=[],Jv=0;const Qv=()=>{Zv={},Kv={},Wv={},Jv=0,Xv=[]},tw=t=>{const e=document.createElementNS("http://www.w3.org/2000/svg","text");let n=[];n="string"==typeof t?t.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(t)?t:[];for(const i of n){const t=document.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),t.setAttribute("dy","1em"),t.setAttribute("x","0"),t.setAttribute("class","row"),t.textContent=i.trim(),e.appendChild(t)}return e},ew=(t,e,n)=>{const i=hv().gitGraph,a=t.append("g").attr("class","commit-bullets"),r=t.append("g").attr("class","commit-labels");let o=0;Object.keys(e).sort(((t,n)=>e[t].seq-e[n].seq)).forEach((t=>{const s=e[t],c=Zv[s.branch].pos,l=o+10;if(n){let t,e=void 0!==s.customType&&""!==s.customType?s.customType:s.type;switch(e){case Yv.NORMAL:t="commit-normal";break;case Yv.REVERSE:t="commit-reverse";break;case Yv.HIGHLIGHT:t="commit-highlight";break;case Yv.MERGE:t="commit-merge";break;case Yv.CHERRY_PICK:t="commit-cherry-pick";break;default:t="commit-normal"}if(e===Yv.HIGHLIGHT){const e=a.append("rect");e.attr("x",l-10),e.attr("y",c-10),e.attr("height",20),e.attr("width",20),e.attr("class",`commit ${s.id} commit-highlight${Zv[s.branch].index%Gv} ${t}-outer`),a.append("rect").attr("x",l-6).attr("y",c-6).attr("height",12).attr("width",12).attr("class",`commit ${s.id} commit${Zv[s.branch].index%Gv} ${t}-inner`)}else if(e===Yv.CHERRY_PICK)a.append("circle").attr("cx",l).attr("cy",c).attr("r",10).attr("class",`commit ${s.id} ${t}`),a.append("circle").attr("cx",l-3).attr("cy",c+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${s.id} ${t}`),a.append("circle").attr("cx",l+3).attr("cy",c+2).attr("r",2.75).attr("fill","#fff").attr("class",`commit ${s.id} ${t}`),a.append("line").attr("x1",l+3).attr("y1",c+1).attr("x2",l).attr("y2",c-5).attr("stroke","#fff").attr("class",`commit ${s.id} ${t}`),a.append("line").attr("x1",l-3).attr("y1",c+1).attr("x2",l).attr("y2",c-5).attr("stroke","#fff").attr("class",`commit ${s.id} ${t}`);else{const n=a.append("circle");if(n.attr("cx",l),n.attr("cy",c),n.attr("r",s.type===Yv.MERGE?9:10),n.attr("class",`commit ${s.id} commit${Zv[s.branch].index%Gv}`),e===Yv.MERGE){const e=a.append("circle");e.attr("cx",l),e.attr("cy",c),e.attr("r",6),e.attr("class",`commit ${t} ${s.id} commit${Zv[s.branch].index%Gv}`)}e===Yv.REVERSE&&a.append("path").attr("d",`M ${l-5},${c-5}L${l+5},${c+5}M${l-5},${c+5}L${l+5},${c-5}`).attr("class",`commit ${t} ${s.id} commit${Zv[s.branch].index%Gv}`)}}if(Kv[s.id]={x:o+10,y:c},n){if(s.type!==Yv.CHERRY_PICK&&(s.customId&&s.type===Yv.MERGE||s.type!==Yv.MERGE)&&i.showCommitLabel){const t=r.append("g"),e=t.insert("rect").attr("class","commit-label-bkg"),n=t.append("text").attr("x",o).attr("y",c+25).attr("class","commit-label").text(s.id);let a=n.node().getBBox();if(e.attr("x",o+10-a.width/2-2).attr("y",c+13.5).attr("width",a.width+4).attr("height",a.height+4),n.attr("x",o+10-a.width/2),i.rotateCommitLabel){let e=-7.5-(a.width+10)/25*9.5,n=10+a.width/25*8.5;t.attr("transform","translate("+e+", "+n+") rotate(-45, "+o+", "+c+")")}}if(s.tag){const t=r.insert("polygon"),e=r.append("circle"),n=r.append("text").attr("y",c-16).attr("class","tag-label").text(s.tag);let i=n.node().getBBox();n.attr("x",o+10-i.width/2);const a=i.height/2,l=c-19.2;t.attr("class","tag-label-bkg").attr("points",`\n ${o-i.width/2-2},${l+2}\n ${o-i.width/2-2},${l-2}\n ${o+10-i.width/2-4},${l-a-2}\n ${o+10+i.width/2+4},${l-a-2}\n ${o+10+i.width/2+4},${l+a+2}\n ${o+10-i.width/2-4},${l+a+2}`),e.attr("cx",o-i.width/2+2).attr("cy",l).attr("r",1.5).attr("class","tag-hole")}}o+=50,o>Jv&&(Jv=o)}))},nw=(t,e,n)=>Object.keys(n).filter((i=>n[i].branch===e.branch&&n[i].seq>t.seq&&n[i].seq<e.seq)).length>0,iw=(t,e,n=0)=>{const i=t+Math.abs(t-e)/2;if(n>5)return i;if(Xv.every((t=>Math.abs(t-i)>=10)))return Xv.push(i),i;const a=Math.abs(t-e);return iw(t,e-a/5,n+1)},aw=(t,e,n,i)=>{const a=Kv[e.id],r=Kv[n.id],o=nw(e,n,i);let s,c="",l="",u=0,d=0,h=Zv[n.branch].index;if(o){c="A 10 10, 0, 0, 0,",l="A 10 10, 0, 0, 1,",u=10,d=10,h=Zv[n.branch].index;const t=a.y<r.y?iw(a.y,r.y):iw(r.y,a.y);s=a.y<r.y?`M ${a.x} ${a.y} L ${a.x} ${t-u} ${c} ${a.x+d} ${t} L ${r.x-u} ${t} ${l} ${r.x} ${t+d} L ${r.x} ${r.y}`:`M ${a.x} ${a.y} L ${a.x} ${t+u} ${l} ${a.x+d} ${t} L ${r.x-u} ${t} ${c} ${r.x} ${t-d} L ${r.x} ${r.y}`}else a.y<r.y&&(c="A 20 20, 0, 0, 0,",u=20,d=20,h=Zv[n.branch].index,s=`M ${a.x} ${a.y} L ${a.x} ${r.y-u} ${c} ${a.x+d} ${r.y} L ${r.x} ${r.y}`),a.y>r.y&&(c="A 20 20, 0, 0, 0,",u=20,d=20,h=Zv[e.branch].index,s=`M ${a.x} ${a.y} L ${r.x-u} ${a.y} ${c} ${r.x} ${a.y-d} L ${r.x} ${r.y}`),a.y===r.y&&(h=Zv[e.branch].index,s=`M ${a.x} ${a.y} L ${a.x} ${r.y-u} ${c} ${a.x+d} ${r.y} L ${r.x} ${r.y}`);t.append("path").attr("d",s).attr("class","arrow arrow"+h%Gv)},rw=(t,e)=>{const n=t.append("g").attr("class","commit-arrows");Object.keys(e).forEach((t=>{const i=e[t];i.parents&&i.parents.length>0&&i.parents.forEach((t=>{aw(n,e[t],i,e)}))}))},ow=(t,e)=>{const n=hv().gitGraph,i=t.append("g");e.forEach(((t,e)=>{const a=e%Gv,r=Zv[t.name].pos,o=i.append("line");o.attr("x1",0),o.attr("y1",r),o.attr("x2",Jv),o.attr("y2",r),o.attr("class","branch branch"+a),Xv.push(r);let s=t.name;const c=tw(s),l=i.insert("rect"),u=i.insert("g").attr("class","branchLabel").insert("g").attr("class","label branch-label"+a);u.node().appendChild(c);let d=c.getBBox();l.attr("class","branchLabelBkg label"+a).attr("rx",4).attr("ry",4).attr("x",-d.width-4-(!0===n.rotateCommitLabel?30:0)).attr("y",-d.height/2+8).attr("width",d.width+18).attr("height",d.height+4),u.attr("transform","translate("+(-d.width-14-(!0===n.rotateCommitLabel?30:0))+", "+(r-d.height/2-1)+")"),l.attr("transform","translate(-19, "+(r-d.height/2)+")")}))},sw={draw:function(t,e,n,i){Qv();const a=hv(),r=a.gitGraph;d.debug("in gitgraph renderer",t+"\n","id:",e,n),Wv=i.db.getCommits();const o=i.db.getBranchesAsObjArray();let s=0;o.forEach(((t,e)=>{Zv[t.name]={pos:s,index:e},s+=50+(r.rotateCommitLabel?40:0)}));const c=un(`[id="${e}"]`);ew(c,Wv,!1),r.showBranches&&ow(c,o),rw(c,Wv),ew(c,Wv,!0),vm.insertTitle(c,"gitTitleText",r.titleTopMargin,i.db.getDiagramTitle()),gv(void 0,c,r.diagramPadding,r.useMaxWidth??a.useMaxWidth)}},cw=t=>`\n .commit-id,\n .commit-msg,\n .branch-label {\n fill: lightgrey;\n color: lightgrey;\n font-family: 'trebuchet ms', verdana, arial, sans-serif;\n font-family: var(--mermaid-font-family);\n }\n ${[0,1,2,3,4,5,6,7].map((e=>`\n .branch-label${e} { fill: ${t["gitBranchLabel"+e]}; }\n .commit${e} { stroke: ${t["git"+e]}; fill: ${t["git"+e]}; }\n .commit-highlight${e} { stroke: ${t["gitInv"+e]}; fill: ${t["gitInv"+e]}; }\n .label${e} { fill: ${t["git"+e]}; }\n .arrow${e} { stroke: ${t["git"+e]}; }\n `)).join("\n")}\n\n .branch {\n stroke-width: 1;\n stroke: ${t.lineColor};\n stroke-dasharray: 2;\n }\n .commit-label { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelColor};}\n .commit-label-bkg { font-size: ${t.commitLabelFontSize}; fill: ${t.commitLabelBackground}; opacity: 0.5; }\n .tag-label { font-size: ${t.tagLabelFontSize}; fill: ${t.tagLabelColor};}\n .tag-label-bkg { fill: ${t.tagLabelBackground}; stroke: ${t.tagLabelBorder}; }\n .tag-hole { fill: ${t.textColor}; }\n\n .commit-merge {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n .commit-reverse {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n stroke-width: 3;\n }\n .commit-highlight-outer {\n }\n .commit-highlight-inner {\n stroke: ${t.primaryColor};\n fill: ${t.primaryColor};\n }\n\n .arrow { stroke-width: 8; stroke-linecap: round; fill: none}\n .gitTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n }\n`;var lw=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,6],n=[1,7],i=[1,8],a=[1,9],r=[1,16],o=[1,11],s=[1,12],l=[1,13],u=[1,14],d=[1,15],h=[1,27],f=[1,33],g=[1,34],p=[1,35],b=[1,36],m=[1,37],y=[1,72],v=[1,73],w=[1,74],x=[1,75],R=[1,76],_=[1,77],k=[1,78],E=[1,38],C=[1,39],S=[1,40],T=[1,41],A=[1,42],D=[1,43],I=[1,44],L=[1,45],O=[1,46],M=[1,47],N=[1,48],B=[1,49],P=[1,50],F=[1,51],j=[1,52],$=[1,53],z=[1,54],H=[1,55],U=[1,56],V=[1,57],q=[1,59],W=[1,60],Y=[1,61],G=[1,62],Z=[1,63],K=[1,64],X=[1,65],J=[1,66],Q=[1,67],tt=[1,68],et=[1,69],nt=[24,52],it=[24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],at=[15,24,44,46,47,48,49,50,51,52,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],rt=[1,94],ot=[1,95],st=[1,96],ct=[1,97],lt=[15,24,52],ut=[7,8,9,10,18,22,25,26,27,28],dt=[15,24,43,52],ht=[15,24,43,52,86,87,89,90],ft=[15,43],gt=[44,46,47,48,49,50,51,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84],pt={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,directive:6,direction_tb:7,direction_bt:8,direction_rl:9,direction_lr:10,graphConfig:11,openDirective:12,typeDirective:13,closeDirective:14,NEWLINE:15,":":16,argDirective:17,open_directive:18,type_directive:19,arg_directive:20,close_directive:21,C4_CONTEXT:22,statements:23,EOF:24,C4_CONTAINER:25,C4_COMPONENT:26,C4_DYNAMIC:27,C4_DEPLOYMENT:28,otherStatements:29,diagramStatements:30,otherStatement:31,title:32,accDescription:33,acc_title:34,acc_title_value:35,acc_descr:36,acc_descr_value:37,acc_descr_multiline_value:38,boundaryStatement:39,boundaryStartStatement:40,boundaryStopStatement:41,boundaryStart:42,LBRACE:43,ENTERPRISE_BOUNDARY:44,attributes:45,SYSTEM_BOUNDARY:46,BOUNDARY:47,CONTAINER_BOUNDARY:48,NODE:49,NODE_L:50,NODE_R:51,RBRACE:52,diagramStatement:53,PERSON:54,PERSON_EXT:55,SYSTEM:56,SYSTEM_DB:57,SYSTEM_QUEUE:58,SYSTEM_EXT:59,SYSTEM_EXT_DB:60,SYSTEM_EXT_QUEUE:61,CONTAINER:62,CONTAINER_DB:63,CONTAINER_QUEUE:64,CONTAINER_EXT:65,CONTAINER_EXT_DB:66,CONTAINER_EXT_QUEUE:67,COMPONENT:68,COMPONENT_DB:69,COMPONENT_QUEUE:70,COMPONENT_EXT:71,COMPONENT_EXT_DB:72,COMPONENT_EXT_QUEUE:73,REL:74,BIREL:75,REL_U:76,REL_D:77,REL_L:78,REL_R:79,REL_B:80,REL_INDEX:81,UPDATE_EL_STYLE:82,UPDATE_REL_STYLE:83,UPDATE_LAYOUT_CONFIG:84,attribute:85,STR:86,STR_KEY:87,STR_VALUE:88,ATTRIBUTE:89,ATTRIBUTE_EMPTY:90,$accept:0,$end:1},terminals_:{2:"error",7:"direction_tb",8:"direction_bt",9:"direction_rl",10:"direction_lr",15:"NEWLINE",16:":",18:"open_directive",19:"type_directive",20:"arg_directive",21:"close_directive",22:"C4_CONTEXT",24:"EOF",25:"C4_CONTAINER",26:"C4_COMPONENT",27:"C4_DYNAMIC",28:"C4_DEPLOYMENT",32:"title",33:"accDescription",34:"acc_title",35:"acc_title_value",36:"acc_descr",37:"acc_descr_value",38:"acc_descr_multiline_value",43:"LBRACE",44:"ENTERPRISE_BOUNDARY",46:"SYSTEM_BOUNDARY",47:"BOUNDARY",48:"CONTAINER_BOUNDARY",49:"NODE",50:"NODE_L",51:"NODE_R",52:"RBRACE",54:"PERSON",55:"PERSON_EXT",56:"SYSTEM",57:"SYSTEM_DB",58:"SYSTEM_QUEUE",59:"SYSTEM_EXT",60:"SYSTEM_EXT_DB",61:"SYSTEM_EXT_QUEUE",62:"CONTAINER",63:"CONTAINER_DB",64:"CONTAINER_QUEUE",65:"CONTAINER_EXT",66:"CONTAINER_EXT_DB",67:"CONTAINER_EXT_QUEUE",68:"COMPONENT",69:"COMPONENT_DB",70:"COMPONENT_QUEUE",71:"COMPONENT_EXT",72:"COMPONENT_EXT_DB",73:"COMPONENT_EXT_QUEUE",74:"REL",75:"BIREL",76:"REL_U",77:"REL_D",78:"REL_L",79:"REL_R",80:"REL_B",81:"REL_INDEX",82:"UPDATE_EL_STYLE",83:"UPDATE_REL_STYLE",84:"UPDATE_LAYOUT_CONFIG",86:"STR",87:"STR_KEY",88:"STR_VALUE",89:"ATTRIBUTE",90:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[3,2],[5,1],[5,1],[5,1],[5,1],[4,1],[6,4],[6,6],[12,1],[13,1],[17,1],[14,1],[11,4],[11,4],[11,4],[11,4],[11,4],[23,1],[23,1],[23,2],[29,1],[29,2],[29,3],[31,1],[31,1],[31,2],[31,2],[31,1],[39,3],[40,3],[40,3],[40,4],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[42,2],[41,1],[30,1],[30,2],[30,3],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,1],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[53,2],[45,1],[45,2],[85,1],[85,2],[85,1],[85,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:i.setDirection("TB");break;case 5:i.setDirection("BT");break;case 6:i.setDirection("RL");break;case 7:i.setDirection("LR");break;case 11:i.parseDirective("%%{","open_directive");break;case 12:break;case 13:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 14:i.parseDirective("}%%","close_directive","c4Context");break;case 15:case 16:case 17:case 18:case 19:i.setC4Type(r[s-3]);break;case 26:i.setTitle(r[s].substring(6)),this.$=r[s].substring(6);break;case 27:i.setAccDescription(r[s].substring(15)),this.$=r[s].substring(15);break;case 28:this.$=r[s].trim(),i.setTitle(this.$);break;case 29:case 30:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 35:case 36:r[s].splice(2,0,"ENTERPRISE"),i.addPersonOrSystemBoundary(...r[s]),this.$=r[s];break;case 37:i.addPersonOrSystemBoundary(...r[s]),this.$=r[s];break;case 38:r[s].splice(2,0,"CONTAINER"),i.addContainerBoundary(...r[s]),this.$=r[s];break;case 39:i.addDeploymentNode("node",...r[s]),this.$=r[s];break;case 40:i.addDeploymentNode("nodeL",...r[s]),this.$=r[s];break;case 41:i.addDeploymentNode("nodeR",...r[s]),this.$=r[s];break;case 42:i.popBoundaryParseStack();break;case 46:i.addPersonOrSystem("person",...r[s]),this.$=r[s];break;case 47:i.addPersonOrSystem("external_person",...r[s]),this.$=r[s];break;case 48:i.addPersonOrSystem("system",...r[s]),this.$=r[s];break;case 49:i.addPersonOrSystem("system_db",...r[s]),this.$=r[s];break;case 50:i.addPersonOrSystem("system_queue",...r[s]),this.$=r[s];break;case 51:i.addPersonOrSystem("external_system",...r[s]),this.$=r[s];break;case 52:i.addPersonOrSystem("external_system_db",...r[s]),this.$=r[s];break;case 53:i.addPersonOrSystem("external_system_queue",...r[s]),this.$=r[s];break;case 54:i.addContainer("container",...r[s]),this.$=r[s];break;case 55:i.addContainer("container_db",...r[s]),this.$=r[s];break;case 56:i.addContainer("container_queue",...r[s]),this.$=r[s];break;case 57:i.addContainer("external_container",...r[s]),this.$=r[s];break;case 58:i.addContainer("external_container_db",...r[s]),this.$=r[s];break;case 59:i.addContainer("external_container_queue",...r[s]),this.$=r[s];break;case 60:i.addComponent("component",...r[s]),this.$=r[s];break;case 61:i.addComponent("component_db",...r[s]),this.$=r[s];break;case 62:i.addComponent("component_queue",...r[s]),this.$=r[s];break;case 63:i.addComponent("external_component",...r[s]),this.$=r[s];break;case 64:i.addComponent("external_component_db",...r[s]),this.$=r[s];break;case 65:i.addComponent("external_component_queue",...r[s]),this.$=r[s];break;case 67:i.addRel("rel",...r[s]),this.$=r[s];break;case 68:i.addRel("birel",...r[s]),this.$=r[s];break;case 69:i.addRel("rel_u",...r[s]),this.$=r[s];break;case 70:i.addRel("rel_d",...r[s]),this.$=r[s];break;case 71:i.addRel("rel_l",...r[s]),this.$=r[s];break;case 72:i.addRel("rel_r",...r[s]),this.$=r[s];break;case 73:i.addRel("rel_b",...r[s]),this.$=r[s];break;case 74:r[s].splice(0,1),i.addRel("rel",...r[s]),this.$=r[s];break;case 75:i.updateElStyle("update_el_style",...r[s]),this.$=r[s];break;case 76:i.updateRelStyle("update_rel_style",...r[s]),this.$=r[s];break;case 77:i.updateLayoutConfig("update_layout_config",...r[s]),this.$=r[s];break;case 78:this.$=[r[s]];break;case 79:r[s].unshift(r[s-1]),this.$=r[s];break;case 80:case 82:this.$=r[s].trim();break;case 81:let t={};t[r[s-1].trim()]=r[s].trim(),this.$=t;break;case 83:this.$=""}},table:[{3:1,4:2,5:3,6:4,7:e,8:n,9:i,10:a,11:5,12:10,18:r,22:o,25:s,26:l,27:u,28:d},{1:[3]},{1:[2,1]},{1:[2,2]},{3:17,4:2,5:3,6:4,7:e,8:n,9:i,10:a,11:5,12:10,18:r,22:o,25:s,26:l,27:u,28:d},{1:[2,8]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{1:[2,7]},{13:18,19:[1,19]},{15:[1,20]},{15:[1,21]},{15:[1,22]},{15:[1,23]},{15:[1,24]},{19:[2,11]},{1:[2,3]},{14:25,16:[1,26],21:h},t([16,21],[2,12]),{23:28,29:29,30:30,31:31,32:f,33:g,34:p,36:b,38:m,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{23:79,29:29,30:30,31:31,32:f,33:g,34:p,36:b,38:m,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{23:80,29:29,30:30,31:31,32:f,33:g,34:p,36:b,38:m,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{23:81,29:29,30:30,31:31,32:f,33:g,34:p,36:b,38:m,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{23:82,29:29,30:30,31:31,32:f,33:g,34:p,36:b,38:m,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{15:[1,83]},{17:84,20:[1,85]},{15:[2,14]},{24:[1,86]},t(nt,[2,20],{53:32,39:58,40:70,42:71,30:87,44:y,46:v,47:w,48:x,49:R,50:_,51:k,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et}),t(nt,[2,21]),t(it,[2,23],{15:[1,88]}),t(nt,[2,43],{15:[1,89]}),t(at,[2,26]),t(at,[2,27]),{35:[1,90]},{37:[1,91]},t(at,[2,30]),{45:92,85:93,86:rt,87:ot,89:st,90:ct},{45:98,85:93,86:rt,87:ot,89:st,90:ct},{45:99,85:93,86:rt,87:ot,89:st,90:ct},{45:100,85:93,86:rt,87:ot,89:st,90:ct},{45:101,85:93,86:rt,87:ot,89:st,90:ct},{45:102,85:93,86:rt,87:ot,89:st,90:ct},{45:103,85:93,86:rt,87:ot,89:st,90:ct},{45:104,85:93,86:rt,87:ot,89:st,90:ct},{45:105,85:93,86:rt,87:ot,89:st,90:ct},{45:106,85:93,86:rt,87:ot,89:st,90:ct},{45:107,85:93,86:rt,87:ot,89:st,90:ct},{45:108,85:93,86:rt,87:ot,89:st,90:ct},{45:109,85:93,86:rt,87:ot,89:st,90:ct},{45:110,85:93,86:rt,87:ot,89:st,90:ct},{45:111,85:93,86:rt,87:ot,89:st,90:ct},{45:112,85:93,86:rt,87:ot,89:st,90:ct},{45:113,85:93,86:rt,87:ot,89:st,90:ct},{45:114,85:93,86:rt,87:ot,89:st,90:ct},{45:115,85:93,86:rt,87:ot,89:st,90:ct},{45:116,85:93,86:rt,87:ot,89:st,90:ct},t(lt,[2,66]),{45:117,85:93,86:rt,87:ot,89:st,90:ct},{45:118,85:93,86:rt,87:ot,89:st,90:ct},{45:119,85:93,86:rt,87:ot,89:st,90:ct},{45:120,85:93,86:rt,87:ot,89:st,90:ct},{45:121,85:93,86:rt,87:ot,89:st,90:ct},{45:122,85:93,86:rt,87:ot,89:st,90:ct},{45:123,85:93,86:rt,87:ot,89:st,90:ct},{45:124,85:93,86:rt,87:ot,89:st,90:ct},{45:125,85:93,86:rt,87:ot,89:st,90:ct},{45:126,85:93,86:rt,87:ot,89:st,90:ct},{45:127,85:93,86:rt,87:ot,89:st,90:ct},{30:128,39:58,40:70,42:71,44:y,46:v,47:w,48:x,49:R,50:_,51:k,53:32,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et},{15:[1,130],43:[1,129]},{45:131,85:93,86:rt,87:ot,89:st,90:ct},{45:132,85:93,86:rt,87:ot,89:st,90:ct},{45:133,85:93,86:rt,87:ot,89:st,90:ct},{45:134,85:93,86:rt,87:ot,89:st,90:ct},{45:135,85:93,86:rt,87:ot,89:st,90:ct},{45:136,85:93,86:rt,87:ot,89:st,90:ct},{45:137,85:93,86:rt,87:ot,89:st,90:ct},{24:[1,138]},{24:[1,139]},{24:[1,140]},{24:[1,141]},t(ut,[2,9]),{14:142,21:h},{21:[2,13]},{1:[2,15]},t(nt,[2,22]),t(it,[2,24],{31:31,29:143,32:f,33:g,34:p,36:b,38:m}),t(nt,[2,44],{29:29,30:30,31:31,53:32,39:58,40:70,42:71,23:144,32:f,33:g,34:p,36:b,38:m,44:y,46:v,47:w,48:x,49:R,50:_,51:k,54:E,55:C,56:S,57:T,58:A,59:D,60:I,61:L,62:O,63:M,64:N,65:B,66:P,67:F,68:j,69:$,70:z,71:H,72:U,73:V,74:q,75:W,76:Y,77:G,78:Z,79:K,80:X,81:J,82:Q,83:tt,84:et}),t(at,[2,28]),t(at,[2,29]),t(lt,[2,46]),t(dt,[2,78],{85:93,45:145,86:rt,87:ot,89:st,90:ct}),t(ht,[2,80]),{88:[1,146]},t(ht,[2,82]),t(ht,[2,83]),t(lt,[2,47]),t(lt,[2,48]),t(lt,[2,49]),t(lt,[2,50]),t(lt,[2,51]),t(lt,[2,52]),t(lt,[2,53]),t(lt,[2,54]),t(lt,[2,55]),t(lt,[2,56]),t(lt,[2,57]),t(lt,[2,58]),t(lt,[2,59]),t(lt,[2,60]),t(lt,[2,61]),t(lt,[2,62]),t(lt,[2,63]),t(lt,[2,64]),t(lt,[2,65]),t(lt,[2,67]),t(lt,[2,68]),t(lt,[2,69]),t(lt,[2,70]),t(lt,[2,71]),t(lt,[2,72]),t(lt,[2,73]),t(lt,[2,74]),t(lt,[2,75]),t(lt,[2,76]),t(lt,[2,77]),{41:147,52:[1,148]},{15:[1,149]},{43:[1,150]},t(ft,[2,35]),t(ft,[2,36]),t(ft,[2,37]),t(ft,[2,38]),t(ft,[2,39]),t(ft,[2,40]),t(ft,[2,41]),{1:[2,16]},{1:[2,17]},{1:[2,18]},{1:[2,19]},{15:[1,151]},t(it,[2,25]),t(nt,[2,45]),t(dt,[2,79]),t(ht,[2,81]),t(lt,[2,31]),t(lt,[2,42]),t(gt,[2,32]),t(gt,[2,33],{15:[1,152]}),t(ut,[2,10]),t(gt,[2,34])],defaultActions:{2:[2,1],3:[2,2],5:[2,8],6:[2,4],7:[2,5],8:[2,6],9:[2,7],16:[2,11],17:[2,3],27:[2,14],85:[2,13],86:[2,15],138:[2,16],139:[2,17],140:[2,18],141:[2,19]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},bt={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),18;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 10;case 5:return this.begin("type_directive"),19;case 6:return this.popState(),this.begin("arg_directive"),16;case 7:return this.popState(),this.popState(),21;case 8:return 20;case 9:return 32;case 10:return 33;case 11:return this.begin("acc_title"),34;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),36;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 78:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:case 21:case 75:break;case 19:c;break;case 20:return 15;case 22:return 22;case 23:return 25;case 24:return 26;case 25:return 27;case 26:return 28;case 27:return this.begin("person_ext"),55;case 28:return this.begin("person"),54;case 29:return this.begin("system_ext_queue"),61;case 30:return this.begin("system_ext_db"),60;case 31:return this.begin("system_ext"),59;case 32:return this.begin("system_queue"),58;case 33:return this.begin("system_db"),57;case 34:return this.begin("system"),56;case 35:return this.begin("boundary"),47;case 36:return this.begin("enterprise_boundary"),44;case 37:return this.begin("system_boundary"),46;case 38:return this.begin("container_ext_queue"),67;case 39:return this.begin("container_ext_db"),66;case 40:return this.begin("container_ext"),65;case 41:return this.begin("container_queue"),64;case 42:return this.begin("container_db"),63;case 43:return this.begin("container"),62;case 44:return this.begin("container_boundary"),48;case 45:return this.begin("component_ext_queue"),73;case 46:return this.begin("component_ext_db"),72;case 47:return this.begin("component_ext"),71;case 48:return this.begin("component_queue"),70;case 49:return this.begin("component_db"),69;case 50:return this.begin("component"),68;case 51:case 52:return this.begin("node"),49;case 53:return this.begin("node_l"),50;case 54:return this.begin("node_r"),51;case 55:return this.begin("rel"),74;case 56:return this.begin("birel"),75;case 57:case 58:return this.begin("rel_u"),76;case 59:case 60:return this.begin("rel_d"),77;case 61:case 62:return this.begin("rel_l"),78;case 63:case 64:return this.begin("rel_r"),79;case 65:return this.begin("rel_b"),80;case 66:return this.begin("rel_index"),81;case 67:return this.begin("update_el_style"),82;case 68:return this.begin("update_rel_style"),83;case 69:return this.begin("update_layout_config"),84;case 70:return"EOF_IN_STRUCT";case 71:return this.begin("attribute"),"ATTRIBUTE_EMPTY";case 72:this.begin("attribute");break;case 73:case 84:this.popState(),this.popState();break;case 74:case 76:return 90;case 77:this.begin("string");break;case 79:case 85:return"STR";case 80:this.begin("string_kv");break;case 81:return this.begin("string_kv_key"),"STR_KEY";case 82:this.popState(),this.begin("string_kv_value");break;case 83:return"STR_VALUE";case 86:return"LBRACE";case 87:return"RBRACE";case 88:return"SPACE";case 89:return"EOL";case 90:return 24}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},string_kv_value:{rules:[83,84],inclusive:!1},string_kv_key:{rules:[82],inclusive:!1},string_kv:{rules:[81],inclusive:!1},string:{rules:[78,79],inclusive:!1},attribute:{rules:[73,74,75,76,77,80,85],inclusive:!1},update_layout_config:{rules:[70,71,72,73],inclusive:!1},update_rel_style:{rules:[70,71,72,73],inclusive:!1},update_el_style:{rules:[70,71,72,73],inclusive:!1},rel_b:{rules:[70,71,72,73],inclusive:!1},rel_r:{rules:[70,71,72,73],inclusive:!1},rel_l:{rules:[70,71,72,73],inclusive:!1},rel_d:{rules:[70,71,72,73],inclusive:!1},rel_u:{rules:[70,71,72,73],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[70,71,72,73],inclusive:!1},node_r:{rules:[70,71,72,73],inclusive:!1},node_l:{rules:[70,71,72,73],inclusive:!1},node:{rules:[70,71,72,73],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[70,71,72,73],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[70,71,72,73],inclusive:!1},component_ext:{rules:[70,71,72,73],inclusive:!1},component_queue:{rules:[70,71,72,73],inclusive:!1},component_db:{rules:[70,71,72,73],inclusive:!1},component:{rules:[70,71,72,73],inclusive:!1},container_boundary:{rules:[70,71,72,73],inclusive:!1},container_ext_queue:{rules:[],inclusive:!1},container_ext_db:{rules:[70,71,72,73],inclusive:!1},container_ext:{rules:[70,71,72,73],inclusive:!1},container_queue:{rules:[70,71,72,73],inclusive:!1},container_db:{rules:[70,71,72,73],inclusive:!1},container:{rules:[70,71,72,73],inclusive:!1},birel:{rules:[70,71,72,73],inclusive:!1},system_boundary:{rules:[70,71,72,73],inclusive:!1},enterprise_boundary:{rules:[70,71,72,73],inclusive:!1},boundary:{rules:[70,71,72,73],inclusive:!1},system_ext_queue:{rules:[70,71,72,73],inclusive:!1},system_ext_db:{rules:[70,71,72,73],inclusive:!1},system_ext:{rules:[70,71,72,73],inclusive:!1},system_queue:{rules:[70,71,72,73],inclusive:!1},system_db:{rules:[70,71,72,73],inclusive:!1},system:{rules:[70,71,72,73],inclusive:!1},person_ext:{rules:[70,71,72,73],inclusive:!1},person:{rules:[70,71,72,73],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,86,87,88,89,90],inclusive:!0}}};function mt(){this.yy={}}return pt.lexer=bt,mt.prototype=pt,pt.Parser=mt,new mt}();lw.parser=lw;const uw=lw,dw=t=>null!==t.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/);let hw=[],fw=[""],gw="global",pw="",bw=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],mw=[],yw="",vw=!1,ww=4,xw=2;var Rw;const _w=function(t,e,n,i,a,r,o,s,c){if(null==t||null==e||null==n||null==i)return;let l={};const u=mw.find((t=>t.from===e&&t.to===n));if(u?l=u:mw.push(l),l.type=t,l.from=e,l.to=n,l.label={text:i},null==a)l.techn={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];l[t]={text:e}}else l.techn={text:a};if(null==r)l.descr={text:""};else if("object"==typeof r){let[t,e]=Object.entries(r)[0];l[t]={text:e}}else l.descr={text:r};if("object"==typeof o){let[t,e]=Object.entries(o)[0];l[t]=e}else l.sprite=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];l[t]=e}else l.tags=s;if("object"==typeof c){let[t,e]=Object.entries(c)[0];l[t]=e}else l.link=c;l.wrap=Lw()},kw=function(t,e,n,i,a,r,o){if(null===e||null===n)return;let s={};const c=hw.find((t=>t.alias===e));if(c&&e===c.alias?s=c:(s.alias=e,hw.push(s)),s.label=null==n?{text:""}:{text:n},null==i)s.descr={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]={text:e}}else s.descr={text:i};if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.sprite=a;if("object"==typeof r){let[t,e]=Object.entries(r)[0];s[t]=e}else s.tags=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];s[t]=e}else s.link=o;s.typeC4Shape={text:t},s.parentBoundary=gw,s.wrap=Lw()},Ew=function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=hw.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,hw.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.techn={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.techn={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof r){let[t,e]=Object.entries(r)[0];c[t]=e}else c.sprite=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.wrap=Lw(),c.typeC4Shape={text:t},c.parentBoundary=gw},Cw=function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=hw.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,hw.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.techn={text:""};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.techn={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof r){let[t,e]=Object.entries(r)[0];c[t]=e}else c.sprite=r;if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.wrap=Lw(),c.typeC4Shape={text:t},c.parentBoundary=gw},Sw=function(t,e,n,i,a){if(null===t||null===e)return;let r={};const o=bw.find((e=>e.alias===t));if(o&&t===o.alias?r=o:(r.alias=t,bw.push(r)),r.label=null==e?{text:""}:{text:e},null==n)r.type={text:"system"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]={text:e}}else r.type={text:n};if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]=e}else r.tags=i;if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]=e}else r.link=a;r.parentBoundary=gw,r.wrap=Lw(),pw=gw,gw=t,fw.push(pw)},Tw=function(t,e,n,i,a){if(null===t||null===e)return;let r={};const o=bw.find((e=>e.alias===t));if(o&&t===o.alias?r=o:(r.alias=t,bw.push(r)),r.label=null==e?{text:""}:{text:e},null==n)r.type={text:"container"};else if("object"==typeof n){let[t,e]=Object.entries(n)[0];r[t]={text:e}}else r.type={text:n};if("object"==typeof i){let[t,e]=Object.entries(i)[0];r[t]=e}else r.tags=i;if("object"==typeof a){let[t,e]=Object.entries(a)[0];r[t]=e}else r.link=a;r.parentBoundary=gw,r.wrap=Lw(),pw=gw,gw=t,fw.push(pw)},Aw=function(t,e,n,i,a,r,o,s){if(null===e||null===n)return;let c={};const l=bw.find((t=>t.alias===e));if(l&&e===l.alias?c=l:(c.alias=e,bw.push(c)),c.label=null==n?{text:""}:{text:n},null==i)c.type={text:"node"};else if("object"==typeof i){let[t,e]=Object.entries(i)[0];c[t]={text:e}}else c.type={text:i};if(null==a)c.descr={text:""};else if("object"==typeof a){let[t,e]=Object.entries(a)[0];c[t]={text:e}}else c.descr={text:a};if("object"==typeof o){let[t,e]=Object.entries(o)[0];c[t]=e}else c.tags=o;if("object"==typeof s){let[t,e]=Object.entries(s)[0];c[t]=e}else c.link=s;c.nodeType=t,c.parentBoundary=gw,c.wrap=Lw(),pw=gw,gw=e,fw.push(pw)},Dw=function(t){return null==t?hw:hw.filter((e=>e.parentBoundary===t))},Iw=function(t){return Object.keys(Dw(t))},Lw=function(){return vw},Ow={addPersonOrSystem:kw,addPersonOrSystemBoundary:Sw,addContainer:Ew,addContainerBoundary:Tw,addComponent:Cw,addDeploymentNode:Aw,popBoundaryParseStack:function(){gw=pw,fw.pop(),pw=fw.pop(),fw.push(pw)},addRel:_w,updateElStyle:function(t,e,n,i,a,r,o,s,c,l,u){let d=hw.find((t=>t.alias===e));if(void 0!==d||(d=bw.find((t=>t.alias===e)),void 0!==d)){if(null!=n)if("object"==typeof n){let[t,e]=Object.entries(n)[0];d[t]=e}else d.bgColor=n;if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];d[t]=e}else d.fontColor=i;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];d[t]=e}else d.borderColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];d[t]=e}else d.shadowing=r;if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];d[t]=e}else d.shape=o;if(null!=s)if("object"==typeof s){let[t,e]=Object.entries(s)[0];d[t]=e}else d.sprite=s;if(null!=c)if("object"==typeof c){let[t,e]=Object.entries(c)[0];d[t]=e}else d.techn=c;if(null!=l)if("object"==typeof l){let[t,e]=Object.entries(l)[0];d[t]=e}else d.legendText=l;if(null!=u)if("object"==typeof u){let[t,e]=Object.entries(u)[0];d[t]=e}else d.legendSprite=u}},updateRelStyle:function(t,e,n,i,a,r,o){const s=mw.find((t=>t.from===e&&t.to===n));if(void 0!==s){if(null!=i)if("object"==typeof i){let[t,e]=Object.entries(i)[0];s[t]=e}else s.textColor=i;if(null!=a)if("object"==typeof a){let[t,e]=Object.entries(a)[0];s[t]=e}else s.lineColor=a;if(null!=r)if("object"==typeof r){let[t,e]=Object.entries(r)[0];s[t]=parseInt(e)}else s.offsetX=parseInt(r);if(null!=o)if("object"==typeof o){let[t,e]=Object.entries(o)[0];s[t]=parseInt(e)}else s.offsetY=parseInt(o)}},updateLayoutConfig:function(t,e,n){let i=ww,a=xw;if("object"==typeof e){const t=Object.values(e)[0];i=parseInt(t)}else i=parseInt(e);if("object"==typeof n){const t=Object.values(n)[0];a=parseInt(t)}else a=parseInt(n);i>=1&&(ww=i),a>=1&&(xw=a)},autoWrap:Lw,setWrap:function(t){vw=t},getC4ShapeArray:Dw,getC4Shape:function(t){return hw.find((e=>e.alias===t))},getC4ShapeKeys:Iw,getBoundarys:function(t){return null==t?bw:bw.filter((e=>e.parentBoundary===t))},getCurrentBoundaryParse:function(){return gw},getParentBoundaryParse:function(){return pw},getRels:function(){return mw},getTitle:function(){return yw},getC4Type:function(){return Rw},getC4ShapeInRow:function(){return ww},getC4BoundaryInRow:function(){return xw},setAccTitle:tv,getAccTitle:ev,getAccDescription:iv,setAccDescription:nv,parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().c4,clear:function(){hw=[],bw=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],pw="",gw="global",fw=[""],mw=[],fw=[""],yw="",vw=!1,ww=4,xw=2},LINETYPE:{SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},setTitle:function(t){yw=Wd(t,Ry())},setC4Type:function(t){Rw=Wd(t,Ry())}},Mw=function(t,e){const n=t.append("rect");if(n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),"undefined"!==e.attrs&&null!==e.attrs)for(let i in e.attrs)n.attr(i,e.attrs[i]);return"undefined"!==e.class&&n.attr("class",e.class),n},Nw=function(t,e,n,i,a,r){const o=t.append("image");o.attr("width",e),o.attr("height",n),o.attr("x",i),o.attr("y",a);let s=r.startsWith("data:image/png;base64")?r:p(r);o.attr("xlink:href",s)},Bw=(t,e,n)=>{const i=t.append("g");let a=0;for(let r of e){let t=r.textColor?r.textColor:"#444444",e=r.lineColor?r.lineColor:"#444444",o=r.offsetX?parseInt(r.offsetX):0,s=r.offsetY?parseInt(r.offsetY):0,c="";if(0===a){let t=i.append("line");t.attr("x1",r.startPoint.x),t.attr("y1",r.startPoint.y),t.attr("x2",r.endPoint.x),t.attr("y2",r.endPoint.y),t.attr("stroke-width","1"),t.attr("stroke",e),t.style("fill","none"),"rel_b"!==r.type&&t.attr("marker-end","url("+c+"#arrowhead)"),("birel"===r.type||"rel_b"===r.type)&&t.attr("marker-start","url("+c+"#arrowend)"),a=-1}else{let t=i.append("path");t.attr("fill","none").attr("stroke-width","1").attr("stroke",e).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",r.startPoint.x).replaceAll("starty",r.startPoint.y).replaceAll("controlx",r.startPoint.x+(r.endPoint.x-r.startPoint.x)/2-(r.endPoint.x-r.startPoint.x)/4).replaceAll("controly",r.startPoint.y+(r.endPoint.y-r.startPoint.y)/2).replaceAll("stopx",r.endPoint.x).replaceAll("stopy",r.endPoint.y)),"rel_b"!==r.type&&t.attr("marker-end","url("+c+"#arrowhead)"),("birel"===r.type||"rel_b"===r.type)&&t.attr("marker-start","url("+c+"#arrowend)")}let l=n.messageFont();Zw(n)(r.label.text,i,Math.min(r.startPoint.x,r.endPoint.x)+Math.abs(r.endPoint.x-r.startPoint.x)/2+o,Math.min(r.startPoint.y,r.endPoint.y)+Math.abs(r.endPoint.y-r.startPoint.y)/2+s,r.label.width,r.label.height,{fill:t},l),r.techn&&""!==r.techn.text&&(l=n.messageFont(),Zw(n)("["+r.techn.text+"]",i,Math.min(r.startPoint.x,r.endPoint.x)+Math.abs(r.endPoint.x-r.startPoint.x)/2+o,Math.min(r.startPoint.y,r.endPoint.y)+Math.abs(r.endPoint.y-r.startPoint.y)/2+n.messageFontSize+5+s,Math.max(r.label.width,r.techn.width),r.techn.height,{fill:t,"font-style":"italic"},l))}},Pw=function(t,e,n){const i=t.append("g");let a=e.bgColor?e.bgColor:"none",r=e.borderColor?e.borderColor:"#444444",o=e.fontColor?e.fontColor:"black",s={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};e.nodeType&&(s={"stroke-width":1});let c={x:e.x,y:e.y,fill:a,stroke:r,width:e.width,height:e.height,rx:2.5,ry:2.5,attrs:s};Mw(i,c);let l=n.boundaryFont();l.fontWeight="bold",l.fontSize=l.fontSize+2,l.fontColor=o,Zw(n)(e.label.text,i,e.x,e.y+e.label.Y,e.width,e.height,{fill:"#444444"},l),e.type&&""!==e.type.text&&(l=n.boundaryFont(),l.fontColor=o,Zw(n)(e.type.text,i,e.x,e.y+e.type.Y,e.width,e.height,{fill:"#444444"},l)),e.descr&&""!==e.descr.text&&(l=n.boundaryFont(),l.fontSize=l.fontSize-2,l.fontColor=o,Zw(n)(e.descr.text,i,e.x,e.y+e.descr.Y,e.width,e.height,{fill:"#444444"},l))},Fw=function(t,e,n){var i;let a=e.bgColor?e.bgColor:n[e.typeC4Shape.text+"_bg_color"],r=e.borderColor?e.borderColor:n[e.typeC4Shape.text+"_border_color"],o=e.fontColor?e.fontColor:"#FFFFFF",s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(e.typeC4Shape.text){case"person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII="}const c=t.append("g");c.attr("class","person-man");const l=Yw();switch(e.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":l.x=e.x,l.y=e.y,l.fill=a,l.width=e.width,l.height=e.height,l.stroke=r,l.rx=2.5,l.ry=2.5,l.attrs={"stroke-width":.5},Mw(c,l);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":c.append("path").attr("fill",a).attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2).replaceAll("height",e.height)),c.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("half",e.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":c.append("path").attr("fill",a).attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",e.x).replaceAll("starty",e.y).replaceAll("width",e.width).replaceAll("half",e.height/2)),c.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",r).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",e.x+e.width).replaceAll("starty",e.y).replaceAll("half",e.height/2))}let u=Gw(n,e.typeC4Shape.text);switch(c.append("text").attr("fill",o).attr("font-family",u.fontFamily).attr("font-size",u.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",e.typeC4Shape.width).attr("x",e.x+e.width/2-e.typeC4Shape.width/2).attr("y",e.y+e.typeC4Shape.Y).text("<<"+e.typeC4Shape.text+">>"),e.typeC4Shape.text){case"person":case"external_person":Nw(c,48,48,e.x+e.width/2-24,e.y+e.image.Y,s)}let d=n[e.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=o,Zw(n)(e.label.text,c,e.x,e.y+e.label.Y,e.width,e.height,{fill:o},d),d=n[e.typeC4Shape.text+"Font"](),d.fontColor=o,e.techn&&""!==(null==(i=e.techn)?void 0:i.text)?Zw(n)(e.techn.text,c,e.x,e.y+e.techn.Y,e.width,e.height,{fill:o,"font-style":"italic"},d):e.type&&""!==e.type.text&&Zw(n)(e.type.text,c,e.x,e.y+e.type.Y,e.width,e.height,{fill:o,"font-style":"italic"},d),e.descr&&""!==e.descr.text&&(d=n.personFont(),d.fontColor=o,Zw(n)(e.descr.text,c,e.x,e.y+e.descr.Y,e.width,e.height,{fill:o},d)),e.height},jw=function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},$w=function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},zw=function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},Hw=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},Uw=function(t){t.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},Vw=function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},qw=function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},Ww=function(t){const e=t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);e.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),e.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},Yw=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},Gw=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),Zw=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c){const{fontSize:l,fontFamily:u,fontWeight:d}=c,h=t.split(Qd.lineBreakRegex);for(let f=0;f<h.length;f++){const t=f*l-l*(h.length-1)/2,o=e.append("text").attr("x",n+r/2).attr("y",a).style("text-anchor","middle").attr("dominant-baseline","middle").style("font-size",l).style("font-weight",d).style("font-family",u);o.append("tspan").attr("dy",t).text(h[f]).attr("alignment-baseline","mathematical"),i(o,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),Kw={drawRect:Mw,drawBoundary:Pw,drawC4Shape:Fw,drawRels:Bw,drawImage:Nw,insertArrowHead:Hw,insertArrowEnd:Uw,insertArrowFilledHead:Vw,insertDynamicNumber:qw,insertArrowCrossHead:Ww,insertDatabaseIcon:jw,insertComputerIcon:$w,insertClockIcon:zw,getNoteRect:Yw,sanitizeUrl:p};let Xw=0,Jw=0,Qw=4,tx=2;lw.yy=Ow;let ex={};class nx{constructor(t){this.name="",this.data={},this.data.startx=void 0,this.data.stopx=void 0,this.data.starty=void 0,this.data.stopy=void 0,this.data.widthLimit=void 0,this.nextData={},this.nextData.startx=void 0,this.nextData.stopx=void 0,this.nextData.starty=void 0,this.nextData.stopy=void 0,this.nextData.cnt=0,ix(t.db.getConfig())}setData(t,e,n,i){this.nextData.startx=this.data.startx=t,this.nextData.stopx=this.data.stopx=e,this.nextData.starty=this.data.starty=n,this.nextData.stopy=this.data.stopy=i}updateVal(t,e,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])}insert(t){this.nextData.cnt=this.nextData.cnt+1;let e=this.nextData.startx===this.nextData.stopx?this.nextData.stopx+t.margin:this.nextData.stopx+2*t.margin,n=e+t.width,i=this.nextData.starty+2*t.margin,a=i+t.height;(e>=this.data.widthLimit||n>=this.data.widthLimit||this.nextData.cnt>Qw)&&(e=this.nextData.startx+t.margin+ex.nextLinePaddingX,i=this.nextData.stopy+2*t.margin,this.nextData.stopx=n=e+t.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=a=i+t.height,this.nextData.cnt=1),t.x=e,t.y=i,this.updateVal(this.data,"startx",e,Math.min),this.updateVal(this.data,"starty",i,Math.min),this.updateVal(this.data,"stopx",n,Math.max),this.updateVal(this.data,"stopy",a,Math.max),this.updateVal(this.nextData,"startx",e,Math.min),this.updateVal(this.nextData,"starty",i,Math.min),this.updateVal(this.nextData,"stopx",n,Math.max),this.updateVal(this.nextData,"stopy",a,Math.max)}init(t){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},ix(t.db.getConfig())}bumpLastMargin(t){this.data.stopx+=t,this.data.stopy+=t}}const ix=function(t){Sp(ex,t),t.fontFamily&&(ex.personFontFamily=ex.systemFontFamily=ex.messageFontFamily=t.fontFamily),t.fontSize&&(ex.personFontSize=ex.systemFontSize=ex.messageFontSize=t.fontSize),t.fontWeight&&(ex.personFontWeight=ex.systemFontWeight=ex.messageFontWeight=t.fontWeight)},ax=(t,e)=>({fontFamily:t[e+"FontFamily"],fontSize:t[e+"FontSize"],fontWeight:t[e+"FontWeight"]}),rx=t=>({fontFamily:t.boundaryFontFamily,fontSize:t.boundaryFontSize,fontWeight:t.boundaryFontWeight}),ox=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight});function sx(t,e,n,i,a){if(!e[t].width)if(n)e[t].text=cm(e[t].text,a,i),e[t].textLines=e[t].text.split(Qd.lineBreakRegex).length,e[t].width=a,e[t].height=um(e[t].text,i);else{let n=e[t].text.split(Qd.lineBreakRegex);e[t].textLines=n.length;let a=0;e[t].height=0,e[t].width=0;for(const r of n)e[t].width=Math.max(dm(r,i),e[t].width),a=um(r,i),e[t].height=e[t].height+a}}const cx=function(t,e,n){e.x=n.data.startx,e.y=n.data.starty,e.width=n.data.stopx-n.data.startx,e.height=n.data.stopy-n.data.starty,e.label.y=ex.c4ShapeMargin-35;let i=e.wrap&&ex.wrap,a=rx(ex);a.fontSize=a.fontSize+2,a.fontWeight="bold",sx("label",e,i,a,dm(e.label.text,a)),Kw.drawBoundary(t,e,ex)},lx=function(t,e,n,i){let a=0;for(const r of i){a=0;const i=n[r];let o=ax(ex,i.typeC4Shape.text);switch(o.fontSize=o.fontSize-2,i.typeC4Shape.width=dm("<<"+i.typeC4Shape.text+">>",o),i.typeC4Shape.height=o.fontSize+2,i.typeC4Shape.Y=ex.c4ShapePadding,a=i.typeC4Shape.Y+i.typeC4Shape.height-4,i.image={width:0,height:0,Y:0},i.typeC4Shape.text){case"person":case"external_person":i.image.width=48,i.image.height=48,i.image.Y=a,a=i.image.Y+i.image.height}i.sprite&&(i.image.width=48,i.image.height=48,i.image.Y=a,a=i.image.Y+i.image.height);let s=i.wrap&&ex.wrap,c=ex.width-2*ex.c4ShapePadding,l=ax(ex,i.typeC4Shape.text);l.fontSize=l.fontSize+2,l.fontWeight="bold",sx("label",i,s,l,c),i.label.Y=a+8,a=i.label.Y+i.label.height,i.type&&""!==i.type.text?(i.type.text="["+i.type.text+"]",sx("type",i,s,ax(ex,i.typeC4Shape.text),c),i.type.Y=a+5,a=i.type.Y+i.type.height):i.techn&&""!==i.techn.text&&(i.techn.text="["+i.techn.text+"]",sx("techn",i,s,ax(ex,i.techn.text),c),i.techn.Y=a+5,a=i.techn.Y+i.techn.height);let u=a,d=i.label.width;i.descr&&""!==i.descr.text&&(sx("descr",i,s,ax(ex,i.typeC4Shape.text),c),i.descr.Y=a+20,a=i.descr.Y+i.descr.height,d=Math.max(i.label.width,i.descr.width),u=a-5*i.descr.textLines),d+=ex.c4ShapePadding,i.width=Math.max(i.width||ex.width,d,ex.width),i.height=Math.max(i.height||ex.height,u,ex.height),i.margin=i.margin||ex.c4ShapeMargin,t.insert(i),Kw.drawC4Shape(e,i,ex)}t.bumpLastMargin(ex.c4ShapeMargin)};let ux=class{constructor(t,e){this.x=t,this.y=e}},dx=function(t,e){let n=t.x,i=t.y,a=e.x,r=e.y,o=n+t.width/2,s=i+t.height/2,c=Math.abs(n-a),l=Math.abs(i-r),u=l/c,d=t.height/t.width,h=null;return i==r&&n<a?h=new ux(n+t.width,s):i==r&&n>a?h=new ux(n,s):n==a&&i<r?h=new ux(o,i+t.height):n==a&&i>r&&(h=new ux(o,i)),n>a&&i<r?h=d>=u?new ux(n,s+u*t.width/2):new ux(o-c/l*t.height/2,i+t.height):n<a&&i<r?h=d>=u?new ux(n+t.width,s+u*t.width/2):new ux(o+c/l*t.height/2,i+t.height):n<a&&i>r?h=d>=u?new ux(n+t.width,s-u*t.width/2):new ux(o+t.height/2*c/l,i):n>a&&i>r&&(h=d>=u?new ux(n,s-t.width/2*u):new ux(o-t.height/2*c/l,i)),h},hx=function(t,e){let n={x:0,y:0};n.x=e.x+e.width/2,n.y=e.y+e.height/2;let i=dx(t,n);return n.x=t.x+t.width/2,n.y=t.y+t.height/2,{startPoint:i,endPoint:dx(e,n)}};const fx=function(t,e,n,i){let a=0;for(let r of e){a+=1;let t=r.wrap&&ex.wrap,e=ox(ex);"C4Dynamic"===i.db.getC4Type()&&(r.label.text=a+": "+r.label.text);let o=dm(r.label.text,e);sx("label",r,t,e,o),r.techn&&""!==r.techn.text&&(o=dm(r.techn.text,e),sx("techn",r,t,e,o)),r.descr&&""!==r.descr.text&&(o=dm(r.descr.text,e),sx("descr",r,t,e,o));let s=n(r.from),c=n(r.to),l=hx(s,c);r.startPoint=l.startPoint,r.endPoint=l.endPoint}Kw.drawRels(t,e,ex)};function gx(t,e,n,i,a){let r=new nx(a);r.data.widthLimit=n.data.widthLimit/Math.min(tx,i.length);for(let[o,s]of i.entries()){let i=0;s.image={width:0,height:0,Y:0},s.sprite&&(s.image.width=48,s.image.height=48,s.image.Y=i,i=s.image.Y+s.image.height);let c=s.wrap&&ex.wrap,l=rx(ex);if(l.fontSize=l.fontSize+2,l.fontWeight="bold",sx("label",s,c,l,r.data.widthLimit),s.label.Y=i+8,i=s.label.Y+s.label.height,s.type&&""!==s.type.text&&(s.type.text="["+s.type.text+"]",sx("type",s,c,rx(ex),r.data.widthLimit),s.type.Y=i+5,i=s.type.Y+s.type.height),s.descr&&""!==s.descr.text){let t=rx(ex);t.fontSize=t.fontSize-2,sx("descr",s,c,t,r.data.widthLimit),s.descr.Y=i+20,i=s.descr.Y+s.descr.height}if(0==o||o%tx==0){let t=n.data.startx+ex.diagramMarginX,e=n.data.stopy+ex.diagramMarginY+i;r.setData(t,t,e,e)}else{let t=r.data.stopx!==r.data.startx?r.data.stopx+ex.diagramMarginX:r.data.startx,e=r.data.starty;r.setData(t,t,e,e)}r.name=s.alias;let u=a.db.getC4ShapeArray(s.alias),d=a.db.getC4ShapeKeys(s.alias);d.length>0&&lx(r,t,u,d),e=s.alias;let h=a.db.getBoundarys(e);h.length>0&&gx(t,e,r,h,a),"global"!==s.alias&&cx(t,s,r),n.data.stopy=Math.max(r.data.stopy+ex.c4ShapeMargin,n.data.stopy),n.data.stopx=Math.max(r.data.stopx+ex.c4ShapeMargin,n.data.stopx),Xw=Math.max(Xw,n.data.stopx),Jw=Math.max(Jw,n.data.stopy)}}const px={drawPersonOrSystemArray:lx,drawBoundary:cx,setConf:ix,draw:function(t,e,n,i){ex=Ry().c4;const a=Ry().securityLevel;let r;"sandbox"===a&&(r=un("#i"+e));const o=un("sandbox"===a?r.nodes()[0].contentDocument.body:"body");let s=i.db;i.db.setWrap(ex.wrap),Qw=s.getC4ShapeInRow(),tx=s.getC4BoundaryInRow(),d.debug(`C:${JSON.stringify(ex,null,2)}`);const c="sandbox"===a?o.select(`[id="${e}"]`):un(`[id="${e}"]`);Kw.insertComputerIcon(c),Kw.insertDatabaseIcon(c),Kw.insertClockIcon(c);let l=new nx(i);l.setData(ex.diagramMarginX,ex.diagramMarginX,ex.diagramMarginY,ex.diagramMarginY),l.data.widthLimit=screen.availWidth,Xw=ex.diagramMarginX,Jw=ex.diagramMarginY;const u=i.db.getTitle();gx(c,"",l,i.db.getBoundarys(""),i),Kw.insertArrowHead(c),Kw.insertArrowEnd(c),Kw.insertArrowCrossHead(c),Kw.insertArrowFilledHead(c),fx(c,i.db.getRels(),i.db.getC4Shape,i),l.data.stopx=Xw,l.data.stopy=Jw;const h=l.data;let f=h.stopy-h.starty+2*ex.diagramMarginY;const g=h.stopx-h.startx+2*ex.diagramMarginX;u&&c.append("text").text(u).attr("x",(h.stopx-h.startx)/2-4*ex.diagramMarginX).attr("y",h.starty+ex.diagramMarginY),Ly(c,f,g,ex.useMaxWidth);const p=u?60:0;c.attr("viewBox",h.startx-ex.diagramMarginX+" -"+(ex.diagramMarginY+p)+" "+g+" "+(f+p)),d.debug("models:",h)}};var bx=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,3],n=[1,7],i=[1,8],a=[1,9],r=[1,10],o=[1,13],s=[1,12],c=[1,16,25],l=[1,20],u=[1,32],d=[1,33],h=[1,34],f=[1,36],g=[1,39],p=[1,37],b=[1,38],m=[1,44],y=[1,45],v=[1,40],w=[1,41],x=[1,42],R=[1,43],_=[1,48],k=[1,49],E=[1,50],C=[1,51],S=[16,25],T=[1,65],A=[1,66],D=[1,67],I=[1,68],L=[1,69],O=[1,70],M=[1,71],N=[1,80],B=[16,25,32,45,46,54,60,61,62,63,64,65,66,71,73],P=[16,25,30,32,45,46,50,54,60,61,62,63,64,65,66,71,73,88,89,90,91],F=[5,8,9,10,11,16,19,23,25],j=[54,88,89,90,91],$=[54,65,66,88,89,90,91],z=[54,60,61,62,63,64,88,89,90,91],H=[16,25,32],U=[1,107],V={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statments:5,direction:6,directive:7,direction_tb:8,direction_bt:9,direction_rl:10,direction_lr:11,graphConfig:12,openDirective:13,typeDirective:14,closeDirective:15,NEWLINE:16,":":17,argDirective:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,CLASS_DIAGRAM:23,statements:24,EOF:25,statement:26,className:27,alphaNumToken:28,classLiteralName:29,GENERICTYPE:30,relationStatement:31,LABEL:32,classStatement:33,methodStatement:34,annotationStatement:35,clickStatement:36,cssClassStatement:37,noteStatement:38,acc_title:39,acc_title_value:40,acc_descr:41,acc_descr_value:42,acc_descr_multiline_value:43,CLASS:44,STYLE_SEPARATOR:45,STRUCT_START:46,members:47,STRUCT_STOP:48,ANNOTATION_START:49,ANNOTATION_END:50,MEMBER:51,SEPARATOR:52,relation:53,STR:54,NOTE_FOR:55,noteText:56,NOTE:57,relationType:58,lineType:59,AGGREGATION:60,EXTENSION:61,COMPOSITION:62,DEPENDENCY:63,LOLLIPOP:64,LINE:65,DOTTED_LINE:66,CALLBACK:67,LINK:68,LINK_TARGET:69,CLICK:70,CALLBACK_NAME:71,CALLBACK_ARGS:72,HREF:73,CSSCLASS:74,commentToken:75,textToken:76,graphCodeTokens:77,textNoTagsToken:78,TAGSTART:79,TAGEND:80,"==":81,"--":82,PCT:83,DEFAULT:84,SPACE:85,MINUS:86,keywords:87,UNICODE_TEXT:88,NUM:89,ALPHA:90,BQUOTE_STR:91,$accept:0,$end:1},terminals_:{2:"error",5:"statments",8:"direction_tb",9:"direction_bt",10:"direction_rl",11:"direction_lr",16:"NEWLINE",17:":",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",23:"CLASS_DIAGRAM",25:"EOF",30:"GENERICTYPE",32:"LABEL",39:"acc_title",40:"acc_title_value",41:"acc_descr",42:"acc_descr_value",43:"acc_descr_multiline_value",44:"CLASS",45:"STYLE_SEPARATOR",46:"STRUCT_START",48:"STRUCT_STOP",49:"ANNOTATION_START",50:"ANNOTATION_END",51:"MEMBER",52:"SEPARATOR",54:"STR",55:"NOTE_FOR",57:"NOTE",60:"AGGREGATION",61:"EXTENSION",62:"COMPOSITION",63:"DEPENDENCY",64:"LOLLIPOP",65:"LINE",66:"DOTTED_LINE",67:"CALLBACK",68:"LINK",69:"LINK_TARGET",70:"CLICK",71:"CALLBACK_NAME",72:"CALLBACK_ARGS",73:"HREF",74:"CSSCLASS",77:"graphCodeTokens",79:"TAGSTART",80:"TAGEND",81:"==",82:"--",83:"PCT",84:"DEFAULT",85:"SPACE",86:"MINUS",87:"keywords",88:"UNICODE_TEXT",89:"NUM",90:"ALPHA",91:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[3,1],[3,2],[6,1],[6,1],[6,1],[6,1],[4,1],[7,4],[7,6],[13,1],[14,1],[18,1],[15,1],[12,4],[24,1],[24,2],[24,3],[27,1],[27,1],[27,2],[27,2],[27,2],[26,1],[26,2],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,2],[26,2],[26,1],[33,2],[33,4],[33,5],[33,7],[35,4],[47,1],[47,2],[34,1],[34,2],[34,1],[34,1],[31,3],[31,4],[31,4],[31,5],[38,3],[38,2],[53,3],[53,2],[53,2],[53,1],[58,1],[58,1],[58,1],[58,1],[58,1],[59,1],[59,1],[36,3],[36,4],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[36,3],[36,4],[36,4],[36,5],[37,3],[75,1],[75,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[76,1],[78,1],[78,1],[78,1],[78,1],[28,1],[28,1],[28,1],[29,1],[56,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 5:i.setDirection("TB");break;case 6:i.setDirection("BT");break;case 7:i.setDirection("RL");break;case 8:i.setDirection("LR");break;case 12:i.parseDirective("%%{","open_directive");break;case 13:i.parseDirective(r[s],"type_directive");break;case 14:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 15:i.parseDirective("}%%","close_directive","class");break;case 20:case 21:this.$=r[s];break;case 22:this.$=r[s-1]+r[s];break;case 23:case 24:this.$=r[s-1]+"~"+r[s];break;case 25:i.addRelation(r[s]);break;case 26:r[s-1].title=i.cleanupLabel(r[s]),i.addRelation(r[s-1]);break;case 35:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 36:case 37:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 38:i.addClass(r[s]);break;case 39:i.addClass(r[s-2]),i.setCssClass(r[s-2],r[s]);break;case 40:i.addClass(r[s-3]),i.addMembers(r[s-3],r[s-1]);break;case 41:i.addClass(r[s-5]),i.setCssClass(r[s-5],r[s-3]),i.addMembers(r[s-5],r[s-1]);break;case 42:i.addAnnotation(r[s],r[s-2]);break;case 43:this.$=[r[s]];break;case 44:r[s].push(r[s-1]),this.$=r[s];break;case 45:case 47:case 48:break;case 46:i.addMember(r[s-1],i.cleanupLabel(r[s]));break;case 49:this.$={id1:r[s-2],id2:r[s],relation:r[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 50:this.$={id1:r[s-3],id2:r[s],relation:r[s-1],relationTitle1:r[s-2],relationTitle2:"none"};break;case 51:this.$={id1:r[s-3],id2:r[s],relation:r[s-2],relationTitle1:"none",relationTitle2:r[s-1]};break;case 52:this.$={id1:r[s-4],id2:r[s],relation:r[s-2],relationTitle1:r[s-3],relationTitle2:r[s-1]};break;case 53:i.addNote(r[s],r[s-1]);break;case 54:i.addNote(r[s]);break;case 55:this.$={type1:r[s-2],type2:r[s],lineType:r[s-1]};break;case 56:this.$={type1:"none",type2:r[s],lineType:r[s-1]};break;case 57:this.$={type1:r[s-1],type2:"none",lineType:r[s]};break;case 58:this.$={type1:"none",type2:"none",lineType:r[s]};break;case 59:this.$=i.relationType.AGGREGATION;break;case 60:this.$=i.relationType.EXTENSION;break;case 61:this.$=i.relationType.COMPOSITION;break;case 62:this.$=i.relationType.DEPENDENCY;break;case 63:this.$=i.relationType.LOLLIPOP;break;case 64:this.$=i.lineType.LINE;break;case 65:this.$=i.lineType.DOTTED_LINE;break;case 66:case 72:this.$=r[s-2],i.setClickEvent(r[s-1],r[s]);break;case 67:case 73:this.$=r[s-3],i.setClickEvent(r[s-2],r[s-1]),i.setTooltip(r[s-2],r[s]);break;case 68:case 76:this.$=r[s-2],i.setLink(r[s-1],r[s]);break;case 69:case 77:this.$=r[s-3],i.setLink(r[s-2],r[s-1],r[s]);break;case 70:case 78:this.$=r[s-3],i.setLink(r[s-2],r[s-1]),i.setTooltip(r[s-2],r[s]);break;case 71:case 79:this.$=r[s-4],i.setLink(r[s-3],r[s-2],r[s]),i.setTooltip(r[s-3],r[s-1]);break;case 74:this.$=r[s-3],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 75:this.$=r[s-4],i.setClickEvent(r[s-3],r[s-2],r[s-1]),i.setTooltip(r[s-3],r[s]);break;case 80:i.setCssClass(r[s-1],r[s])}},table:[{3:1,4:2,5:e,6:4,7:5,8:n,9:i,10:a,11:r,12:6,13:11,19:o,23:s},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{3:14,4:2,5:e,6:4,7:5,8:n,9:i,10:a,11:r,12:6,13:11,19:o,23:s},{1:[2,9]},t(c,[2,5]),t(c,[2,6]),t(c,[2,7]),t(c,[2,8]),{14:15,20:[1,16]},{16:[1,17]},{20:[2,12]},{1:[2,4]},{15:18,17:[1,19],22:l},t([17,22],[2,13]),{6:31,7:30,8:n,9:i,10:a,11:r,13:11,19:o,24:21,26:22,27:35,28:46,29:47,31:23,33:24,34:25,35:26,36:27,37:28,38:29,39:u,41:d,43:h,44:f,49:g,51:p,52:b,55:m,57:y,67:v,68:w,70:x,74:R,88:_,89:k,90:E,91:C},{16:[1,52]},{18:53,21:[1,54]},{16:[2,15]},{25:[1,55]},{16:[1,56],25:[2,17]},t(S,[2,25],{32:[1,57]}),t(S,[2,27]),t(S,[2,28]),t(S,[2,29]),t(S,[2,30]),t(S,[2,31]),t(S,[2,32]),t(S,[2,33]),t(S,[2,34]),{40:[1,58]},{42:[1,59]},t(S,[2,37]),t(S,[2,45],{53:60,58:63,59:64,32:[1,62],54:[1,61],60:T,61:A,62:D,63:I,64:L,65:O,66:M}),{27:72,28:46,29:47,88:_,89:k,90:E,91:C},t(S,[2,47]),t(S,[2,48]),{28:73,88:_,89:k,90:E},{27:74,28:46,29:47,88:_,89:k,90:E,91:C},{27:75,28:46,29:47,88:_,89:k,90:E,91:C},{27:76,28:46,29:47,88:_,89:k,90:E,91:C},{54:[1,77]},{27:78,28:46,29:47,88:_,89:k,90:E,91:C},{54:N,56:79},t(B,[2,20],{28:46,29:47,27:81,30:[1,82],88:_,89:k,90:E,91:C}),t(B,[2,21],{30:[1,83]}),t(P,[2,94]),t(P,[2,95]),t(P,[2,96]),t([16,25,30,32,45,46,54,60,61,62,63,64,65,66,71,73],[2,97]),t(F,[2,10]),{15:84,22:l},{22:[2,14]},{1:[2,16]},{6:31,7:30,8:n,9:i,10:a,11:r,13:11,19:o,24:85,25:[2,18],26:22,27:35,28:46,29:47,31:23,33:24,34:25,35:26,36:27,37:28,38:29,39:u,41:d,43:h,44:f,49:g,51:p,52:b,55:m,57:y,67:v,68:w,70:x,74:R,88:_,89:k,90:E,91:C},t(S,[2,26]),t(S,[2,35]),t(S,[2,36]),{27:86,28:46,29:47,54:[1,87],88:_,89:k,90:E,91:C},{53:88,58:63,59:64,60:T,61:A,62:D,63:I,64:L,65:O,66:M},t(S,[2,46]),{59:89,65:O,66:M},t(j,[2,58],{58:90,60:T,61:A,62:D,63:I,64:L}),t($,[2,59]),t($,[2,60]),t($,[2,61]),t($,[2,62]),t($,[2,63]),t(z,[2,64]),t(z,[2,65]),t(S,[2,38],{45:[1,91],46:[1,92]}),{50:[1,93]},{54:[1,94]},{54:[1,95]},{71:[1,96],73:[1,97]},{28:98,88:_,89:k,90:E},{54:N,56:99},t(S,[2,54]),t(S,[2,98]),t(B,[2,22]),t(B,[2,23]),t(B,[2,24]),{16:[1,100]},{25:[2,19]},t(H,[2,49]),{27:101,28:46,29:47,88:_,89:k,90:E,91:C},{27:102,28:46,29:47,54:[1,103],88:_,89:k,90:E,91:C},t(j,[2,57],{58:104,60:T,61:A,62:D,63:I,64:L}),t(j,[2,56]),{28:105,88:_,89:k,90:E},{47:106,51:U},{27:108,28:46,29:47,88:_,89:k,90:E,91:C},t(S,[2,66],{54:[1,109]}),t(S,[2,68],{54:[1,111],69:[1,110]}),t(S,[2,72],{54:[1,112],72:[1,113]}),t(S,[2,76],{54:[1,115],69:[1,114]}),t(S,[2,80]),t(S,[2,53]),t(F,[2,11]),t(H,[2,51]),t(H,[2,50]),{27:116,28:46,29:47,88:_,89:k,90:E,91:C},t(j,[2,55]),t(S,[2,39],{46:[1,117]}),{48:[1,118]},{47:119,48:[2,43],51:U},t(S,[2,42]),t(S,[2,67]),t(S,[2,69]),t(S,[2,70],{69:[1,120]}),t(S,[2,73]),t(S,[2,74],{54:[1,121]}),t(S,[2,77]),t(S,[2,78],{69:[1,122]}),t(H,[2,52]),{47:123,51:U},t(S,[2,40]),{48:[2,44]},t(S,[2,71]),t(S,[2,75]),t(S,[2,79]),{48:[1,124]},t(S,[2,41])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],6:[2,9],13:[2,12],14:[2,4],20:[2,15],54:[2,14],55:[2,16],85:[2,19],119:[2,44]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},q={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),19;case 1:return 8;case 2:return 9;case 3:return 10;case 4:return 11;case 5:return this.begin("type_directive"),20;case 6:return this.popState(),this.begin("arg_directive"),17;case 7:return this.popState(),this.popState(),22;case 8:return 21;case 9:case 10:case 19:case 27:break;case 11:return this.begin("acc_title"),39;case 12:return this.popState(),"acc_title_value";case 13:return this.begin("acc_descr"),41;case 14:return this.popState(),"acc_descr_value";case 15:this.begin("acc_descr_multiline");break;case 16:case 39:case 42:case 45:case 48:case 51:case 54:this.popState();break;case 17:return"acc_descr_multiline_value";case 18:return 16;case 20:case 21:return 23;case 22:return this.begin("struct"),46;case 23:return"EDGE_STATE";case 24:return"EOF_IN_STRUCT";case 25:return"OPEN_IN_STRUCT";case 26:return this.popState(),48;case 28:return"MEMBER";case 29:return 44;case 30:return 74;case 31:return 67;case 32:return 68;case 33:return 70;case 34:return 55;case 35:return 57;case 36:return 49;case 37:return 50;case 38:this.begin("generic");break;case 40:return"GENERICTYPE";case 41:this.begin("string");break;case 43:return"STR";case 44:this.begin("bqstring");break;case 46:return"BQUOTE_STR";case 47:this.begin("href");break;case 49:return 73;case 50:this.begin("callback_name");break;case 52:this.popState(),this.begin("callback_args");break;case 53:return 71;case 55:return 72;case 56:case 57:case 58:case 59:return 69;case 60:case 61:return 61;case 62:case 63:return 63;case 64:return 62;case 65:return 60;case 66:return 64;case 67:return 65;case 68:return 66;case 69:return 32;case 70:return 45;case 71:return 86;case 72:return"DOT";case 73:return"PLUS";case 74:return 83;case 75:case 76:return"EQUALS";case 77:return 90;case 78:return"PUNCTUATION";case 79:return 89;case 80:return 88;case 81:return 85;case 82:return 25}},rules:[/^(?:%%\{)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:classDiagram-v2\b)/,/^(?:classDiagram\b)/,/^(?:[{])/,/^(?:\[\*\])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\n])/,/^(?:[^{}\n]*)/,/^(?:class\b)/,/^(?:cssClass\b)/,/^(?:callback\b)/,/^(?:link\b)/,/^(?:click\b)/,/^(?:note for\b)/,/^(?:note\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:\s*<\|)/,/^(?:\s*\|>)/,/^(?:\s*>)/,/^(?:\s*<)/,/^(?:\s*\*)/,/^(?:\s*o\b)/,/^(?:\s*\(\))/,/^(?:--)/,/^(?:\.\.)/,/^(?::{1}[^:\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\.)/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\w+)/,/^(?:[!"#$%&'*+,-.`?\\/])/,/^(?:[0-9]+)/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\s)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[16,17],inclusive:!1},acc_descr:{rules:[14],inclusive:!1},acc_title:{rules:[12],inclusive:!1},arg_directive:{rules:[7,8],inclusive:!1},type_directive:{rules:[6,7],inclusive:!1},open_directive:{rules:[5],inclusive:!1},callback_args:{rules:[54,55],inclusive:!1},callback_name:{rules:[51,52,53],inclusive:!1},href:{rules:[48,49],inclusive:!1},struct:{rules:[23,24,25,26,27,28],inclusive:!1},generic:{rules:[39,40],inclusive:!1},bqstring:{rules:[45,46],inclusive:!1},string:{rules:[42,43],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,9,10,11,13,15,18,19,20,21,22,23,29,30,31,32,33,34,35,36,37,38,41,44,47,50,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82],inclusive:!0}}};function W(){this.yy={}}return V.lexer=q,W.prototype=V,V.Parser=W,new W}();bx.parser=bx;const mx=bx,yx=(t,e)=>{var n;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.class)?void 0:n.defaultRenderer)&&null!==t.match(/^\s*classDiagram/)},vx=(t,e)=>{var n;return null!==t.match(/^\s*classDiagram/)&&"dagre-wrapper"===(null==(n=null==e?void 0:e.class)?void 0:n.defaultRenderer)||null!==t.match(/^\s*classDiagram-v2/)},wx="classid-";let xx=[],Rx={},_x=[],kx=0,Ex=[];const Cx=t=>Qd.sanitizeText(t,Ry()),Sx=function(t,e,n){dU.parseDirective(this,t,e,n)},Tx=function(t){let e="",n=t;if(t.indexOf("~")>0){let i=t.split("~");n=i[0],e=Qd.sanitizeText(i[1],Ry())}return{className:n,type:e}},Ax=function(t){let e=Tx(t);void 0===Rx[e.className]&&(Rx[e.className]={id:e.className,type:e.type,cssClasses:[],methods:[],members:[],annotations:[],domId:wx+e.className+"-"+kx},kx++)},Dx=function(t){const e=Object.keys(Rx);for(const n of e)if(Rx[n].id===t)return Rx[n].domId},Ix=function(){xx=[],Rx={},_x=[],Ex=[],Ex.push(Xx),Qy()},Lx=function(t){return Rx[t]},Ox=function(){return Rx},Mx=function(){return xx},Nx=function(){return _x},Bx=function(t){d.debug("Adding relation: "+JSON.stringify(t)),Ax(t.id1),Ax(t.id2),t.id1=Tx(t.id1).className,t.id2=Tx(t.id2).className,t.relationTitle1=Qd.sanitizeText(t.relationTitle1.trim(),Ry()),t.relationTitle2=Qd.sanitizeText(t.relationTitle2.trim(),Ry()),xx.push(t)},Px=function(t,e){const n=Tx(t).className;Rx[n].annotations.push(e)},Fx=function(t,e){const n=Tx(t).className,i=Rx[n];if("string"==typeof e){const t=e.trim();t.startsWith("<<")&&t.endsWith(">>")?i.annotations.push(Cx(t.substring(2,t.length-2))):t.indexOf(")")>0?i.methods.push(Cx(t)):t&&i.members.push(Cx(t))}},jx=function(t,e){Array.isArray(e)&&(e.reverse(),e.forEach((e=>Fx(t,e))))},$x=function(t,e){const n={id:`note${_x.length}`,class:e,text:t};_x.push(n)},zx=function(t){return":"===t.substring(0,1)?Qd.sanitizeText(t.substr(1).trim(),Ry()):Cx(t.trim())},Hx=function(t,e){t.split(",").forEach((function(t){let n=t;t[0].match(/\d/)&&(n=wx+n),void 0!==Rx[n]&&Rx[n].cssClasses.push(e)}))},Ux=function(t,e){const n=Ry();t.split(",").forEach((function(t){void 0!==e&&(Rx[t].tooltip=Qd.sanitizeText(e,n))}))},Vx=function(t){return Rx[t].tooltip},qx=function(t,e,n){const i=Ry();t.split(",").forEach((function(t){let a=t;t[0].match(/\d/)&&(a=wx+a),void 0!==Rx[a]&&(Rx[a].link=vm.formatUrl(e,i),"sandbox"===i.securityLevel?Rx[a].linkTarget="_top":Rx[a].linkTarget="string"==typeof n?Cx(n):"_blank")})),Hx(t,"clickable")},Wx=function(t,e,n){t.split(",").forEach((function(t){Yx(t,e,n),Rx[t].haveCallback=!0})),Hx(t,"clickable")},Yx=function(t,e,n){const i=Ry();let a=t,r=Dx(a);if("loose"===i.securityLevel&&void 0!==e&&void 0!==Rx[a]){let t=[];if("string"==typeof n){t=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let e=0;e<t.length;e++){let n=t[e].trim();'"'===n.charAt(0)&&'"'===n.charAt(n.length-1)&&(n=n.substr(1,n.length-2)),t[e]=n}}0===t.length&&t.push(r),Ex.push((function(){const n=document.querySelector(`[id="${r}"]`);null!==n&&n.addEventListener("click",(function(){vm.runFunc(e,...t)}),!1)}))}},Gx=function(t){Ex.forEach((function(e){e(t)}))},Zx={LINE:0,DOTTED_LINE:1},Kx={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3,LOLLIPOP:4},Xx=function(t){let e=un(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=un("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),un(t).select("svg").selectAll("g.node").on("mouseover",(function(){const t=un(this);if(null===t.attr("title"))return;const n=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+n.left+(n.right-n.left)/2+"px").style("top",window.scrollY+n.top-14+document.body.scrollTop+"px"),e.html(e.html().replace(/<br\/>/g,"<br/>")),t.classed("hover",!0)})).on("mouseout",(function(){e.transition().duration(500).style("opacity",0),un(this).classed("hover",!1)}))};Ex.push(Xx);let Jx="TB";const Qx={parseDirective:Sx,setAccTitle:tv,getAccTitle:ev,getAccDescription:iv,setAccDescription:nv,getConfig:()=>Ry().class,addClass:Ax,bindFunctions:Gx,clear:Ix,getClass:Lx,getClasses:Ox,getNotes:Nx,addAnnotation:Px,addNote:$x,getRelations:Mx,addRelation:Bx,getDirection:()=>Jx,setDirection:t=>{Jx=t},addMember:Fx,addMembers:jx,cleanupLabel:zx,lineType:Zx,relationType:Kx,setClickEvent:Wx,setCssClass:Hx,setLink:qx,getTooltip:Vx,setTooltip:Ux,lookUpDomId:Dx,setDiagramTitle:av,getDiagramTitle:rv};function tR(t){return null!=t&&"object"==typeof t}var eR="[object Symbol]";function nR(t){return"symbol"==typeof t||tR(t)&&Hp(t)==eR}function iR(t,e){for(var n=-1,i=null==t?0:t.length,a=Array(i);++n<i;)a[n]=e(t[n],n,t);return a}const aR=Array.isArray;var rR=1/0,oR=Ip?Ip.prototype:void 0,sR=oR?oR.toString:void 0;function cR(t){if("string"==typeof t)return t;if(aR(t))return iR(t,cR)+"";if(nR(t))return sR?sR.call(t):"";var e=t+"";return"0"==e&&1/t==-rR?"-0":e}var lR=/\s/;function uR(t){for(var e=t.length;e--&&lR.test(t.charAt(e)););return e}var dR=/^\s+/;function hR(t){return t&&t.slice(0,uR(t)+1).replace(dR,"")}var fR=NaN,gR=/^[-+]0x[0-9a-f]+$/i,pR=/^0b[01]+$/i,bR=/^0o[0-7]+$/i,mR=parseInt;function yR(t){if("number"==typeof t)return t;if(nR(t))return fR;if(Up(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Up(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=hR(t);var n=pR.test(t);return n||bR.test(t)?mR(t.slice(2),n?2:8):gR.test(t)?fR:+t}var vR=1/0,wR=17976931348623157e292;function xR(t){return t?(t=yR(t))===vR||t===-vR?(t<0?-1:1)*wR:t==t?t:0:0===t?t:0}function RR(t){var e=xR(t),n=e%1;return e==e?n?e-n:e:0}function _R(t){return t}const kR=lb(Dp,"WeakMap");var ER=Object.create;const CR=function(){function t(){}return function(e){if(!Up(e))return{};if(ER)return ER(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function SR(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function TR(){}function AR(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n<i;)e[n]=t[n];return e}var DR=800,IR=16,LR=Date.now;function OR(t){var e=0,n=0;return function(){var i=LR(),a=IR-(i-n);if(n=i,a>0){if(++e>=DR)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function MR(t){return function(){return t}}const NR=function(){try{var t=lb(Object,"defineProperty");return t({},"",{}),t}catch{}}(),BR=OR(NR?function(t,e){return NR(t,"toString",{configurable:!0,enumerable:!1,value:MR(e),writable:!0})}:_R);function PR(t,e){for(var n=-1,i=null==t?0:t.length;++n<i&&!1!==e(t[n],n,t););return t}function FR(t,e,n,i){for(var a=t.length,r=n+(i?1:-1);i?r--:++r<a;)if(e(t[r],r,t))return r;return-1}function jR(t){return t!=t}function $R(t,e,n){for(var i=n-1,a=t.length;++i<a;)if(t[i]===e)return i;return-1}function zR(t,e,n){return e==e?$R(t,e,n):FR(t,jR,n)}function HR(t,e){return!(null==t||!t.length)&&zR(t,e,0)>-1}var UR=9007199254740991,VR=/^(?:0|[1-9]\d*)$/;function qR(t,e){var n=typeof t;return!!(e=e??UR)&&("number"==n||"symbol"!=n&&VR.test(t))&&t>-1&&t%1==0&&t<e}function WR(t,e,n){"__proto__"==e&&NR?NR(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var YR=Object.prototype.hasOwnProperty;function GR(t,e,n){var i=t[e];(!YR.call(t,e)||!Rb(i,n)||void 0===n&&!(e in t))&&WR(t,e,n)}function ZR(t,e,n,i){var a=!n;n||(n={});for(var r=-1,o=e.length;++r<o;){var s=e[r],c=i?i(n[s],t[s],s,n,t):void 0;void 0===c&&(c=t[s]),a?WR(n,s,c):GR(n,s,c)}return n}var KR=Math.max;function XR(t,e,n){return e=KR(void 0===e?t.length-1:e,0),function(){for(var i=arguments,a=-1,r=KR(i.length-e,0),o=Array(r);++a<r;)o[a]=i[e+a];a=-1;for(var s=Array(e+1);++a<e;)s[a]=i[a];return s[e]=n(o),SR(t,this,s)}}function JR(t,e){return BR(XR(t,e,_R),t+"")}var QR=9007199254740991;function t_(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=QR}function e_(t){return null!=t&&t_(t.length)&&!Gp(t)}function n_(t,e,n){if(!Up(n))return!1;var i=typeof e;return!!("number"==i?e_(n)&&qR(e,n.length):"string"==i&&e in n)&&Rb(n[e],t)}function i_(t){return JR((function(e,n){var i=-1,a=n.length,r=a>1?n[a-1]:void 0,o=a>2?n[2]:void 0;for(r=t.length>3&&"function"==typeof r?(a--,r):void 0,o&&n_(n[0],n[1],o)&&(r=a<3?void 0:r,a=1),e=Object(e);++i<a;){var s=n[i];s&&t(e,s,i,r)}return e}))}var a_=Object.prototype;function r_(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||a_)}function o_(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i}var s_="[object Arguments]";function c_(t){return tR(t)&&Hp(t)==s_}var l_=Object.prototype,u_=l_.hasOwnProperty,d_=l_.propertyIsEnumerable,h_=c_(function(){return arguments}())?c_:function(t){return tR(t)&&u_.call(t,"callee")&&!d_.call(t,"callee")};const f_=h_;function g_(){return!1}var p_=e&&!e.nodeType&&e,b_=p_&&t&&!t.nodeType&&t,m_=b_&&b_.exports===p_?Dp.Buffer:void 0;const y_=(m_?m_.isBuffer:void 0)||g_;var v_="[object Arguments]",w_="[object Array]",x_="[object Boolean]",R_="[object Date]",__="[object Error]",k_="[object Function]",E_="[object Map]",C_="[object Number]",S_="[object Object]",T_="[object RegExp]",A_="[object Set]",D_="[object String]",I_="[object WeakMap]",L_="[object ArrayBuffer]",O_="[object DataView]",M_="[object Float64Array]",N_="[object Int8Array]",B_="[object Int16Array]",P_="[object Int32Array]",F_="[object Uint8Array]",j_="[object Uint8ClampedArray]",$_="[object Uint16Array]",z_="[object Uint32Array]",H_={};function U_(t){return tR(t)&&t_(t.length)&&!!H_[Hp(t)]}function V_(t){return function(e){return t(e)}}H_["[object Float32Array]"]=H_[M_]=H_[N_]=H_[B_]=H_[P_]=H_[F_]=H_[j_]=H_[$_]=H_[z_]=!0,H_[v_]=H_[w_]=H_[L_]=H_[x_]=H_[O_]=H_[R_]=H_[__]=H_[k_]=H_[E_]=H_[C_]=H_[S_]=H_[T_]=H_[A_]=H_[D_]=H_[I_]=!1;var q_=e&&!e.nodeType&&e,W_=q_&&t&&!t.nodeType&&t,Y_=W_&&W_.exports===q_&&Tp.process;const G_=function(){try{return W_&&W_.require&&W_.require("util").types||Y_&&Y_.binding&&Y_.binding("util")}catch{}}();var Z_=G_&&G_.isTypedArray;const K_=Z_?V_(Z_):U_;var X_=Object.prototype.hasOwnProperty;function J_(t,e){var n=aR(t),i=!n&&f_(t),a=!n&&!i&&y_(t),r=!n&&!i&&!a&&K_(t),o=n||i||a||r,s=o?o_(t.length,String):[],c=s.length;for(var l in t)(e||X_.call(t,l))&&(!o||!("length"==l||a&&("offset"==l||"parent"==l)||r&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||qR(l,c)))&&s.push(l);return s}function Q_(t,e){return function(n){return t(e(n))}}const tk=Q_(Object.keys,Object);var ek=Object.prototype.hasOwnProperty;function nk(t){if(!r_(t))return tk(t);var e=[];for(var n in Object(t))ek.call(t,n)&&"constructor"!=n&&e.push(n);return e}function ik(t){return e_(t)?J_(t):nk(t)}function ak(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}var rk=Object.prototype.hasOwnProperty;function ok(t){if(!Up(t))return ak(t);var e=r_(t),n=[];for(var i in t)"constructor"==i&&(e||!rk.call(t,i))||n.push(i);return n}function sk(t){return e_(t)?J_(t,!0):ok(t)}var ck=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,lk=/^\w*$/;function uk(t,e){if(aR(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!nR(t))||lk.test(t)||!ck.test(t)||null!=e&&t in Object(e)}var dk=500;function hk(t){var e=$b(t,(function(t){return n.size===dk&&n.clear(),t})),n=e.cache;return e}var fk=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,gk=/\\(\\)?/g;const pk=hk((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(fk,(function(t,n,i,a){e.push(i?a.replace(gk,"$1"):n||t)})),e}));function bk(t){return null==t?"":cR(t)}function mk(t,e){return aR(t)?t:uk(t,e)?[t]:pk(bk(t))}var yk=1/0;function vk(t){if("string"==typeof t||nR(t))return t;var e=t+"";return"0"==e&&1/t==-yk?"-0":e}function wk(t,e){for(var n=0,i=(e=mk(e,t)).length;null!=t&&n<i;)t=t[vk(e[n++])];return n&&n==i?t:void 0}function xk(t,e,n){var i=null==t?void 0:wk(t,e);return void 0===i?n:i}function Rk(t,e){for(var n=-1,i=e.length,a=t.length;++n<i;)t[a+n]=e[n];return t}var _k=Ip?Ip.isConcatSpreadable:void 0;function kk(t){return aR(t)||f_(t)||!!(_k&&t&&t[_k])}function Ek(t,e,n,i,a){var r=-1,o=t.length;for(n||(n=kk),a||(a=[]);++r<o;){var s=t[r];e>0&&n(s)?e>1?Ek(s,e-1,n,i,a):Rk(a,s):i||(a[a.length]=s)}return a}function Ck(t){return null!=t&&t.length?Ek(t,1):[]}function Sk(t){return BR(XR(t,void 0,Ck),t+"")}const Tk=Q_(Object.getPrototypeOf,Object);var Ak="[object Object]",Dk=Function.prototype,Ik=Object.prototype,Lk=Dk.toString,Ok=Ik.hasOwnProperty,Mk=Lk.call(Object);function Nk(t){if(!tR(t)||Hp(t)!=Ak)return!1;var e=Tk(t);if(null===e)return!0;var n=Ok.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Lk.call(n)==Mk}function Bk(t,e,n,i){var a=-1,r=null==t?0:t.length;for(i&&r&&(n=t[++a]);++a<r;)n=e(n,t[a],a,t);return n}function Pk(){this.__data__=new Ab,this.size=0}function Fk(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}function jk(t){return this.__data__.get(t)}function $k(t){return this.__data__.has(t)}var zk=200;function Hk(t,e){var n=this.__data__;if(n instanceof Ab){var i=n.__data__;if(!Db||i.length<zk-1)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new Fb(i)}return n.set(t,e),this.size=n.size,this}function Uk(t){var e=this.__data__=new Ab(t);this.size=e.size}function Vk(t,e){return t&&ZR(e,ik(e),t)}function qk(t,e){return t&&ZR(e,sk(e),t)}Uk.prototype.clear=Pk,Uk.prototype.delete=Fk,Uk.prototype.get=jk,Uk.prototype.has=$k,Uk.prototype.set=Hk;var Wk=e&&!e.nodeType&&e,Yk=Wk&&t&&!t.nodeType&&t,Gk=Yk&&Yk.exports===Wk?Dp.Buffer:void 0,Zk=Gk?Gk.allocUnsafe:void 0;function Kk(t,e){if(e)return t.slice();var n=t.length,i=Zk?Zk(n):new t.constructor(n);return t.copy(i),i}function Xk(t,e){for(var n=-1,i=null==t?0:t.length,a=0,r=[];++n<i;){var o=t[n];e(o,n,t)&&(r[a++]=o)}return r}function Jk(){return[]}var Qk=Object.prototype.propertyIsEnumerable,tE=Object.getOwnPropertySymbols;const eE=tE?function(t){return null==t?[]:(t=Object(t),Xk(tE(t),(function(e){return Qk.call(t,e)})))}:Jk;function nE(t,e){return ZR(t,eE(t),e)}const iE=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)Rk(e,eE(t)),t=Tk(t);return e}:Jk;function aE(t,e){return ZR(t,iE(t),e)}function rE(t,e,n){var i=e(t);return aR(t)?i:Rk(i,n(t))}function oE(t){return rE(t,ik,eE)}function sE(t){return rE(t,sk,iE)}const cE=lb(Dp,"DataView"),lE=lb(Dp,"Promise"),uE=lb(Dp,"Set");var dE="[object Map]",hE="[object Object]",fE="[object Promise]",gE="[object Set]",pE="[object WeakMap]",bE="[object DataView]",mE=Qp(cE),yE=Qp(Db),vE=Qp(lE),wE=Qp(uE),xE=Qp(kR),RE=Hp;(cE&&RE(new cE(new ArrayBuffer(1)))!=bE||Db&&RE(new Db)!=dE||lE&&RE(lE.resolve())!=fE||uE&&RE(new uE)!=gE||kR&&RE(new kR)!=pE)&&(RE=function(t){var e=Hp(t),n=e==hE?t.constructor:void 0,i=n?Qp(n):"";if(i)switch(i){case mE:return bE;case yE:return dE;case vE:return fE;case wE:return gE;case xE:return pE}return e});const _E=RE;var kE=Object.prototype.hasOwnProperty;function EE(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&kE.call(t,"index")&&(n.index=t.index,n.input=t.input),n}const CE=Dp.Uint8Array;function SE(t){var e=new t.constructor(t.byteLength);return new CE(e).set(new CE(t)),e}function TE(t,e){var n=e?SE(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}var AE=/\w*$/;function DE(t){var e=new t.constructor(t.source,AE.exec(t));return e.lastIndex=t.lastIndex,e}var IE=Ip?Ip.prototype:void 0,LE=IE?IE.valueOf:void 0;function OE(t){return LE?Object(LE.call(t)):{}}function ME(t,e){var n=e?SE(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}var NE="[object Boolean]",BE="[object Date]",PE="[object Map]",FE="[object Number]",jE="[object RegExp]",$E="[object Set]",zE="[object String]",HE="[object Symbol]",UE="[object ArrayBuffer]",VE="[object DataView]",qE="[object Float32Array]",WE="[object Float64Array]",YE="[object Int8Array]",GE="[object Int16Array]",ZE="[object Int32Array]",KE="[object Uint8Array]",XE="[object Uint8ClampedArray]",JE="[object Uint16Array]",QE="[object Uint32Array]";function tC(t,e,n){var i=t.constructor;switch(e){case UE:return SE(t);case NE:case BE:return new i(+t);case VE:return TE(t,n);case qE:case WE:case YE:case GE:case ZE:case KE:case XE:case JE:case QE:return ME(t,n);case PE:return new i;case FE:case zE:return new i(t);case jE:return DE(t);case $E:return new i;case HE:return OE(t)}}function eC(t){return"function"!=typeof t.constructor||r_(t)?{}:CR(Tk(t))}var nC="[object Map]";function iC(t){return tR(t)&&_E(t)==nC}var aC=G_&&G_.isMap;const rC=aC?V_(aC):iC;var oC="[object Set]";function sC(t){return tR(t)&&_E(t)==oC}var cC=G_&&G_.isSet;const lC=cC?V_(cC):sC;var uC=1,dC=2,hC=4,fC="[object Arguments]",gC="[object Array]",pC="[object Boolean]",bC="[object Date]",mC="[object Error]",yC="[object Function]",vC="[object GeneratorFunction]",wC="[object Map]",xC="[object Number]",RC="[object Object]",_C="[object RegExp]",kC="[object Set]",EC="[object String]",CC="[object Symbol]",SC="[object WeakMap]",TC="[object ArrayBuffer]",AC="[object DataView]",DC="[object Float32Array]",IC="[object Float64Array]",LC="[object Int8Array]",OC="[object Int16Array]",MC="[object Int32Array]",NC="[object Uint8Array]",BC="[object Uint8ClampedArray]",PC="[object Uint16Array]",FC="[object Uint32Array]",jC={};function $C(t,e,n,i,a,r){var o,s=e&uC,c=e&dC,l=e&hC;if(n&&(o=a?n(t,i,a,r):n(t)),void 0!==o)return o;if(!Up(t))return t;var u=aR(t);if(u){if(o=EE(t),!s)return AR(t,o)}else{var d=_E(t),h=d==yC||d==vC;if(y_(t))return Kk(t,s);if(d==RC||d==fC||h&&!a){if(o=c||h?{}:eC(t),!s)return c?aE(t,qk(o,t)):nE(t,Vk(o,t))}else{if(!jC[d])return a?t:{};o=tC(t,d,s)}}r||(r=new Uk);var f=r.get(t);if(f)return f;r.set(t,o),lC(t)?t.forEach((function(i){o.add($C(i,e,n,i,t,r))})):rC(t)&&t.forEach((function(i,a){o.set(a,$C(i,e,n,a,t,r))}));var g=u?void 0:(l?c?sE:oE:c?sk:ik)(t);return PR(g||t,(function(i,a){g&&(i=t[a=i]),GR(o,a,$C(i,e,n,a,t,r))})),o}jC[fC]=jC[gC]=jC[TC]=jC[AC]=jC[pC]=jC[bC]=jC[DC]=jC[IC]=jC[LC]=jC[OC]=jC[MC]=jC[wC]=jC[xC]=jC[RC]=jC[_C]=jC[kC]=jC[EC]=jC[CC]=jC[NC]=jC[BC]=jC[PC]=jC[FC]=!0,jC[mC]=jC[yC]=jC[SC]=!1;var zC=4;function HC(t){return $C(t,zC)}var UC=1,VC=4;function qC(t){return $C(t,UC|VC)}var WC="__lodash_hash_undefined__";function YC(t){return this.__data__.set(t,WC),this}function GC(t){return this.__data__.has(t)}function ZC(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Fb;++e<n;)this.add(t[e])}function KC(t,e){for(var n=-1,i=null==t?0:t.length;++n<i;)if(e(t[n],n,t))return!0;return!1}function XC(t,e){return t.has(e)}ZC.prototype.add=ZC.prototype.push=YC,ZC.prototype.has=GC;var JC=1,QC=2;function tS(t,e,n,i,a,r){var o=n&JC,s=t.length,c=e.length;if(s!=c&&!(o&&c>s))return!1;var l=r.get(t),u=r.get(e);if(l&&u)return l==e&&u==t;var d=-1,h=!0,f=n&QC?new ZC:void 0;for(r.set(t,e),r.set(e,t);++d<s;){var g=t[d],p=e[d];if(i)var b=o?i(p,g,d,e,t,r):i(g,p,d,t,e,r);if(void 0!==b){if(b)continue;h=!1;break}if(f){if(!KC(e,(function(t,e){if(!XC(f,e)&&(g===t||a(g,t,n,i,r)))return f.push(e)}))){h=!1;break}}else if(g!==p&&!a(g,p,n,i,r)){h=!1;break}}return r.delete(t),r.delete(e),h}function eS(t){var e=-1,n=Array(t.size);return t.forEach((function(t,i){n[++e]=[i,t]})),n}function nS(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}var iS=1,aS=2,rS="[object Boolean]",oS="[object Date]",sS="[object Error]",cS="[object Map]",lS="[object Number]",uS="[object RegExp]",dS="[object Set]",hS="[object String]",fS="[object Symbol]",gS="[object ArrayBuffer]",pS="[object DataView]",bS=Ip?Ip.prototype:void 0,mS=bS?bS.valueOf:void 0;function yS(t,e,n,i,a,r,o){switch(n){case pS:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case gS:return!(t.byteLength!=e.byteLength||!r(new CE(t),new CE(e)));case rS:case oS:case lS:return Rb(+t,+e);case sS:return t.name==e.name&&t.message==e.message;case uS:case hS:return t==e+"";case cS:var s=eS;case dS:var c=i&iS;if(s||(s=nS),t.size!=e.size&&!c)return!1;var l=o.get(t);if(l)return l==e;i|=aS,o.set(t,e);var u=tS(s(t),s(e),i,a,r,o);return o.delete(t),u;case fS:if(mS)return mS.call(t)==mS.call(e)}return!1}var vS=1,wS=Object.prototype.hasOwnProperty;function xS(t,e,n,i,a,r){var o=n&vS,s=oE(t),c=s.length;if(c!=oE(e).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in e:wS.call(e,u)))return!1}var d=r.get(t),h=r.get(e);if(d&&h)return d==e&&h==t;var f=!0;r.set(t,e),r.set(e,t);for(var g=o;++l<c;){var p=t[u=s[l]],b=e[u];if(i)var m=o?i(b,p,u,e,t,r):i(p,b,u,t,e,r);if(!(void 0===m?p===b||a(p,b,n,i,r):m)){f=!1;break}g||(g="constructor"==u)}if(f&&!g){var y=t.constructor,v=e.constructor;y!=v&&"constructor"in t&&"constructor"in e&&!("function"==typeof y&&y instanceof y&&"function"==typeof v&&v instanceof v)&&(f=!1)}return r.delete(t),r.delete(e),f}var RS=1,_S="[object Arguments]",kS="[object Array]",ES="[object Object]",CS=Object.prototype.hasOwnProperty;function SS(t,e,n,i,a,r){var o=aR(t),s=aR(e),c=o?kS:_E(t),l=s?kS:_E(e),u=(c=c==_S?ES:c)==ES,d=(l=l==_S?ES:l)==ES,h=c==l;if(h&&y_(t)){if(!y_(e))return!1;o=!0,u=!1}if(h&&!u)return r||(r=new Uk),o||K_(t)?tS(t,e,n,i,a,r):yS(t,e,c,n,i,a,r);if(!(n&RS)){var f=u&&CS.call(t,"__wrapped__"),g=d&&CS.call(e,"__wrapped__");if(f||g){var p=f?t.value():t,b=g?e.value():e;return r||(r=new Uk),a(p,b,n,i,r)}}return!!h&&(r||(r=new Uk),xS(t,e,n,i,a,r))}function TS(t,e,n,i,a){return t===e||(null==t||null==e||!tR(t)&&!tR(e)?t!=t&&e!=e:SS(t,e,n,i,TS,a))}var AS=1,DS=2;function IS(t,e,n,i){var a=n.length,r=a,o=!i;if(null==t)return!r;for(t=Object(t);a--;){var s=n[a];if(o&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++a<r;){var c=(s=n[a])[0],l=t[c],u=s[1];if(o&&s[2]){if(void 0===l&&!(c in t))return!1}else{var d=new Uk;if(i)var h=i(l,u,c,t,e,d);if(!(void 0===h?TS(u,l,AS|DS,i,d):h))return!1}}return!0}function LS(t){return t==t&&!Up(t)}function OS(t){for(var e=ik(t),n=e.length;n--;){var i=e[n],a=t[i];e[n]=[i,a,LS(a)]}return e}function MS(t,e){return function(n){return null!=n&&n[t]===e&&(void 0!==e||t in Object(n))}}function NS(t){var e=OS(t);return 1==e.length&&e[0][2]?MS(e[0][0],e[0][1]):function(n){return n===t||IS(n,t,e)}}function BS(t,e){return null!=t&&e in Object(t)}function PS(t,e,n){for(var i=-1,a=(e=mk(e,t)).length,r=!1;++i<a;){var o=vk(e[i]);if(!(r=null!=t&&n(t,o)))break;t=t[o]}return r||++i!=a?r:!!(a=null==t?0:t.length)&&t_(a)&&qR(o,a)&&(aR(t)||f_(t))}function FS(t,e){return null!=t&&PS(t,e,BS)}var jS=1,$S=2;function zS(t,e){return uk(t)&&LS(e)?MS(vk(t),e):function(n){var i=xk(n,t);return void 0===i&&i===e?FS(n,t):TS(e,i,jS|$S)}}function HS(t){return function(e){return null==e?void 0:e[t]}}function US(t){return function(e){return wk(e,t)}}function VS(t){return uk(t)?HS(vk(t)):US(t)}function qS(t){return"function"==typeof t?t:null==t?_R:"object"==typeof t?aR(t)?zS(t[0],t[1]):NS(t):VS(t)}function WS(t){return function(e,n,i){for(var a=-1,r=Object(e),o=i(e),s=o.length;s--;){var c=o[t?s:++a];if(!1===n(r[c],c,r))break}return e}}const YS=WS();function GS(t,e){return t&&YS(t,e,ik)}function ZS(t,e){return function(n,i){if(null==n)return n;if(!e_(n))return t(n,i);for(var a=n.length,r=e?a:-1,o=Object(n);(e?r--:++r<a)&&!1!==i(o[r],r,o););return n}}const KS=ZS(GS),XS=function(){return Dp.Date.now()};var JS=Object.prototype,QS=JS.hasOwnProperty;const tT=JR((function(t,e){t=Object(t);var n=-1,i=e.length,a=i>2?e[2]:void 0;for(a&&n_(e[0],e[1],a)&&(i=1);++n<i;)for(var r=e[n],o=sk(r),s=-1,c=o.length;++s<c;){var l=o[s],u=t[l];(void 0===u||Rb(u,JS[l])&&!QS.call(t,l))&&(t[l]=r[l])}return t}));function eT(t,e,n){(void 0!==n&&!Rb(t[e],n)||void 0===n&&!(e in t))&&WR(t,e,n)}function nT(t){return tR(t)&&e_(t)}function iT(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}function aT(t){return ZR(t,sk(t))}function rT(t,e,n,i,a,r,o){var s=iT(t,n),c=iT(e,n),l=o.get(c);if(l)eT(t,n,l);else{var u=r?r(s,c,n+"",t,e,o):void 0,d=void 0===u;if(d){var h=aR(c),f=!h&&y_(c),g=!h&&!f&&K_(c);u=c,h||f||g?aR(s)?u=s:nT(s)?u=AR(s):f?(d=!1,u=Kk(c,!0)):g?(d=!1,u=ME(c,!0)):u=[]:Nk(c)||f_(c)?(u=s,f_(s)?u=aT(s):(!Up(s)||Gp(s))&&(u=eC(c))):d=!1}d&&(o.set(c,u),a(u,c,i,r,o),o.delete(c)),eT(t,n,u)}}function oT(t,e,n,i,a){t!==e&&YS(e,(function(r,o){if(a||(a=new Uk),Up(r))rT(t,e,o,n,oT,i,a);else{var s=i?i(iT(t,o),r,o+"",t,e,a):void 0;void 0===s&&(s=r),eT(t,o,s)}}),sk)}function sT(t,e,n){for(var i=-1,a=null==t?0:t.length;++i<a;)if(n(e,t[i]))return!0;return!1}function cT(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}function lT(t){return"function"==typeof t?t:_R}function uT(t,e){return(aR(t)?PR:KS)(t,lT(e))}function dT(t,e){var n=[];return KS(t,(function(t,i,a){e(t,i,a)&&n.push(t)})),n}function hT(t,e){return(aR(t)?Xk:dT)(t,qS(e))}function fT(t){return function(e,n,i){var a=Object(e);if(!e_(e)){var r=qS(n);e=ik(e),n=function(t){return r(a[t],t,a)}}var o=t(e,n,i);return o>-1?a[r?e[o]:o]:void 0}}var gT=Math.max;function pT(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var a=null==n?0:RR(n);return a<0&&(a=gT(i+a,0)),FR(t,qS(e),a)}const bT=fT(pT);function mT(t,e){var n=-1,i=e_(t)?Array(t.length):[];return KS(t,(function(t,a,r){i[++n]=e(t,a,r)})),i}function yT(t,e){return(aR(t)?iR:mT)(t,qS(e))}function vT(t,e){return null==t?t:YS(t,lT(e),sk)}function wT(t,e){return t>e}var xT=Object.prototype.hasOwnProperty;function RT(t,e){return null!=t&&xT.call(t,e)}function _T(t,e){return null!=t&&PS(t,e,RT)}function kT(t,e){return iR(e,(function(e){return t[e]}))}function ET(t){return null==t?[]:kT(t,ik(t))}var CT="[object Map]",ST="[object Set]",TT=Object.prototype.hasOwnProperty;function AT(t){if(null==t)return!0;if(e_(t)&&(aR(t)||"string"==typeof t||"function"==typeof t.splice||y_(t)||K_(t)||f_(t)))return!t.length;var e=_E(t);if(e==CT||e==ST)return!t.size;if(r_(t))return!nk(t).length;for(var n in t)if(TT.call(t,n))return!1;return!0}function DT(t){return void 0===t}function IT(t,e){return t<e}function LT(t,e){var n={};return e=qS(e),GS(t,(function(t,i,a){WR(n,i,e(t,i,a))})),n}function OT(t,e,n){for(var i=-1,a=t.length;++i<a;){var r=t[i],o=e(r);if(null!=o&&(void 0===s?o==o&&!nR(o):n(o,s)))var s=o,c=r}return c}function MT(t){return t&&t.length?OT(t,_R,wT):void 0}const NT=i_((function(t,e,n){oT(t,e,n)}));function BT(t){return t&&t.length?OT(t,_R,IT):void 0}function PT(t,e){return t&&t.length?OT(t,qS(e),IT):void 0}function FT(t,e,n,i){if(!Up(t))return t;for(var a=-1,r=(e=mk(e,t)).length,o=r-1,s=t;null!=s&&++a<r;){var c=vk(e[a]),l=n;if("__proto__"===c||"constructor"===c||"prototype"===c)return t;if(a!=o){var u=s[c];void 0===(l=i?i(u,c,s):void 0)&&(l=Up(u)?u:qR(e[a+1])?[]:{})}GR(s,c,l),s=s[c]}return t}function jT(t,e,n){for(var i=-1,a=e.length,r={};++i<a;){var o=e[i],s=wk(t,o);n(s,o)&&FT(r,mk(o,t),s)}return r}function $T(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}function zT(t,e){if(t!==e){var n=void 0!==t,i=null===t,a=t==t,r=nR(t),o=void 0!==e,s=null===e,c=e==e,l=nR(e);if(!s&&!l&&!r&&t>e||r&&o&&c&&!s&&!l||i&&o&&c||!n&&c||!a)return 1;if(!i&&!r&&!l&&t<e||l&&n&&a&&!i&&!r||s&&n&&a||!o&&a||!c)return-1}return 0}function HT(t,e,n){for(var i=-1,a=t.criteria,r=e.criteria,o=a.length,s=n.length;++i<o;){var c=zT(a[i],r[i]);if(c)return i>=s?c:c*("desc"==n[i]?-1:1)}return t.index-e.index}function UT(t,e,n){e=e.length?iR(e,(function(t){return aR(t)?function(e){return wk(e,1===t.length?t[0]:t)}:t})):[_R];var i=-1;return e=iR(e,V_(qS)),$T(mT(t,(function(t,n,a){return{criteria:iR(e,(function(e){return e(t)})),index:++i,value:t}})),(function(t,e){return HT(t,e,n)}))}function VT(t,e){return jT(t,e,(function(e,n){return FS(t,n)}))}const qT=Sk((function(t,e){return null==t?{}:VT(t,e)}));var WT=Math.ceil,YT=Math.max;function GT(t,e,n,i){for(var a=-1,r=YT(WT((e-t)/(n||1)),0),o=Array(r);r--;)o[i?r:++a]=t,t+=n;return o}function ZT(t){return function(e,n,i){return i&&"number"!=typeof i&&n_(e,n,i)&&(n=i=void 0),e=xR(e),void 0===n?(n=e,e=0):n=xR(n),GT(e,n,i=void 0===i?e<n?1:-1:xR(i),t)}}const KT=ZT();function XT(t,e,n,i,a){return a(t,(function(t,a,r){n=i?(i=!1,t):e(n,t,a,r)})),n}function JT(t,e,n){var i=aR(t)?Bk:XT,a=arguments.length<3;return i(t,qS(e),n,a,KS)}const QT=JR((function(t,e){if(null==t)return[];var n=e.length;return n>1&&n_(t,e[0],e[1])?e=[]:n>2&&n_(e[0],e[1],e[2])&&(e=[e[0]]),UT(t,Ek(e,1),[])}));var tA=1/0;const eA=uE&&1/nS(new uE([,-0]))[1]==tA?function(t){return new uE(t)}:TR;var nA=200;function iA(t,e,n){var i=-1,a=HR,r=t.length,o=!0,s=[],c=s;if(n)o=!1,a=sT;else if(r>=nA){var l=e?null:eA(t);if(l)return nS(l);o=!1,a=XC,c=new ZC}else c=e?[]:s;t:for(;++i<r;){var u=t[i],d=e?e(u):u;if(u=n||0!==u?u:0,o&&d==d){for(var h=c.length;h--;)if(c[h]===d)continue t;e&&c.push(d),s.push(u)}else a(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s}const aA=JR((function(t){return iA(Ek(t,1,nT,!0))}));var rA=0;function oA(t){var e=++rA;return bk(t)+e}function sA(t,e,n){for(var i=-1,a=t.length,r=e.length,o={};++i<a;){var s=i<r?e[i]:void 0;n(o,t[i],s)}return o}function cA(t,e){return sA(t||[],e||[],GR)}var lA="\0",uA="\0",dA="\x01";class hA{constructor(t={}){this._isDirected=!_T(t,"directed")||t.directed,this._isMultigraph=!!_T(t,"multigraph")&&t.multigraph,this._isCompound=!!_T(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=MR(void 0),this._defaultEdgeLabelFn=MR(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[uA]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return Gp(t)||(t=MR(t)),this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return ik(this._nodes)}sources(){var t=this;return hT(this.nodes(),(function(e){return AT(t._in[e])}))}sinks(){var t=this;return hT(this.nodes(),(function(e){return AT(t._out[e])}))}setNodes(t,e){var n=arguments,i=this;return uT(t,(function(t){n.length>1?i.setNode(t,e):i.setNode(t)})),this}setNode(t,e){return _T(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=uA,this._children[t]={},this._children[uA][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return _T(this._nodes,t)}removeNode(t){var e=this;if(_T(this._nodes,t)){var n=function(t){e.removeEdge(e._edgeObjs[t])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],uT(this.children(t),(function(t){e.setParent(t)})),delete this._children[t]),uT(ik(this._in[t]),n),delete this._in[t],delete this._preds[t],uT(ik(this._out[t]),n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(DT(e))e=uA;else{for(var n=e+="";!DT(n);n=this.parent(n))if(n===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var e=this._parent[t];if(e!==uA)return e}}children(t){if(DT(t)&&(t=uA),this._isCompound){var e=this._children[t];if(e)return ik(e)}else{if(t===uA)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var e=this._preds[t];if(e)return ik(e)}successors(t){var e=this._sucs[t];if(e)return ik(e)}neighbors(t){var e=this.predecessors(t);if(e)return aA(e,this.successors(t))}isLeaf(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length}filterNodes(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var n=this;uT(this._nodes,(function(n,i){t(i)&&e.setNode(i,n)})),uT(this._edgeObjs,(function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,n.edge(t))}));var i={};function a(t){var r=n.parent(t);return void 0===r||e.hasNode(r)?(i[t]=r,r):r in i?i[r]:a(r)}return this._isCompound&&uT(e.nodes(),(function(t){e.setParent(t,a(t))})),e}setDefaultEdgeLabel(t){return Gp(t)||(t=MR(t)),this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return ET(this._edgeObjs)}setPath(t,e){var n=this,i=arguments;return JT(t,(function(t,a){return i.length>1?n.setEdge(t,a,e):n.setEdge(t,a),a})),this}setEdge(){var t,e,n,i,a=!1,r=arguments[0];"object"==typeof r&&null!==r&&"v"in r?(t=r.v,e=r.w,n=r.name,2===arguments.length&&(i=arguments[1],a=!0)):(t=r,e=arguments[1],n=arguments[3],arguments.length>2&&(i=arguments[2],a=!0)),t=""+t,e=""+e,DT(n)||(n=""+n);var o=pA(this._isDirected,t,e,n);if(_T(this._edgeLabels,o))return a&&(this._edgeLabels[o]=i),this;if(!DT(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[o]=a?i:this._defaultEdgeLabelFn(t,e,n);var s=bA(this._isDirected,t,e,n);return t=s.v,e=s.w,Object.freeze(s),this._edgeObjs[o]=s,fA(this._preds[e],t),fA(this._sucs[t],e),this._in[e][o]=s,this._out[t][o]=s,this._edgeCount++,this}edge(t,e,n){var i=1===arguments.length?mA(this._isDirected,arguments[0]):pA(this._isDirected,t,e,n);return this._edgeLabels[i]}hasEdge(t,e,n){var i=1===arguments.length?mA(this._isDirected,arguments[0]):pA(this._isDirected,t,e,n);return _T(this._edgeLabels,i)}removeEdge(t,e,n){var i=1===arguments.length?mA(this._isDirected,arguments[0]):pA(this._isDirected,t,e,n),a=this._edgeObjs[i];return a&&(t=a.v,e=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],gA(this._preds[e],t),gA(this._sucs[t],e),delete this._in[e][i],delete this._out[t][i],this._edgeCount--),this}inEdges(t,e){var n=this._in[t];if(n){var i=ET(n);return e?hT(i,(function(t){return t.v===e})):i}}outEdges(t,e){var n=this._out[t];if(n){var i=ET(n);return e?hT(i,(function(t){return t.w===e})):i}}nodeEdges(t,e){var n=this.inEdges(t,e);if(n)return n.concat(this.outEdges(t,e))}}function fA(t,e){t[e]?t[e]++:t[e]=1}function gA(t,e){--t[e]||delete t[e]}function pA(t,e,n,i){var a=""+e,r=""+n;if(!t&&a>r){var o=a;a=r,r=o}return a+dA+r+dA+(DT(i)?lA:i)}function bA(t,e,n,i){var a=""+e,r=""+n;if(!t&&a>r){var o=a;a=r,r=o}var s={v:a,w:r};return i&&(s.name=i),s}function mA(t,e){return pA(t,e.v,e.w,e.name)}hA.prototype._nodeCount=0,hA.prototype._edgeCount=0;class yA{constructor(){var t={};t._next=t._prev=t,this._sentinel=t}dequeue(){var t=this._sentinel,e=t._prev;if(e!==t)return vA(e),e}enqueue(t){var e=this._sentinel;t._prev&&t._next&&vA(t),t._next=e._next,e._next._prev=t,e._next=t,t._prev=e}toString(){for(var t=[],e=this._sentinel,n=e._prev;n!==e;)t.push(JSON.stringify(n,wA)),n=n._prev;return"["+t.join(", ")+"]"}}function vA(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function wA(t,e){if("_next"!==t&&"_prev"!==t)return e}var xA=MR(1);function RA(t,e){if(t.nodeCount()<=1)return[];var n=EA(t,e||xA);return Ck(yT(_A(n.graph,n.buckets,n.zeroIdx),(function(e){return t.outEdges(e.v,e.w)})))}function _A(t,e,n){for(var i,a=[],r=e[e.length-1],o=e[0];t.nodeCount();){for(;i=o.dequeue();)kA(t,e,n,i);for(;i=r.dequeue();)kA(t,e,n,i);if(t.nodeCount())for(var s=e.length-2;s>0;--s)if(i=e[s].dequeue()){a=a.concat(kA(t,e,n,i,!0));break}}return a}function kA(t,e,n,i,a){var r=a?[]:void 0;return uT(t.inEdges(i.v),(function(i){var o=t.edge(i),s=t.node(i.v);a&&r.push({v:i.v,w:i.w}),s.out-=o,CA(e,n,s)})),uT(t.outEdges(i.v),(function(i){var a=t.edge(i),r=i.w,o=t.node(r);o.in-=a,CA(e,n,o)})),t.removeNode(i.v),r}function EA(t,e){var n=new hA,i=0,a=0;uT(t.nodes(),(function(t){n.setNode(t,{v:t,in:0,out:0})})),uT(t.edges(),(function(t){var r=n.edge(t.v,t.w)||0,o=e(t),s=r+o;n.setEdge(t.v,t.w,s),a=Math.max(a,n.node(t.v).out+=o),i=Math.max(i,n.node(t.w).in+=o)}));var r=KT(a+i+3).map((function(){return new yA})),o=i+1;return uT(n.nodes(),(function(t){CA(r,o,n.node(t))})),{graph:n,buckets:r,zeroIdx:o}}function CA(t,e,n){n.out?n.in?t[n.out-n.in+e].enqueue(n):t[t.length-1].enqueue(n):t[0].enqueue(n)}function SA(t){function e(t){return function(e){return t.edge(e).weight}}uT("greedy"===t.graph().acyclicer?RA(t,e(t)):TA(t),(function(e){var n=t.edge(e);t.removeEdge(e),n.forwardName=e.name,n.reversed=!0,t.setEdge(e.w,e.v,n,oA("rev"))}))}function TA(t){var e=[],n={},i={};function a(r){_T(i,r)||(i[r]=!0,n[r]=!0,uT(t.outEdges(r),(function(t){_T(n,t.w)?e.push(t):a(t.w)})),delete n[r])}return uT(t.nodes(),a),e}function AA(t){uT(t.edges(),(function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var i=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,i)}}))}function DA(t,e,n,i){var a;do{a=oA(i)}while(t.hasNode(a));return n.dummy=e,t.setNode(a,n),a}function IA(t){var e=(new hA).setGraph(t.graph());return uT(t.nodes(),(function(n){e.setNode(n,t.node(n))})),uT(t.edges(),(function(n){var i=e.edge(n.v,n.w)||{weight:0,minlen:1},a=t.edge(n);e.setEdge(n.v,n.w,{weight:i.weight+a.weight,minlen:Math.max(i.minlen,a.minlen)})})),e}function LA(t){var e=new hA({multigraph:t.isMultigraph()}).setGraph(t.graph());return uT(t.nodes(),(function(n){t.children(n).length||e.setNode(n,t.node(n))})),uT(t.edges(),(function(n){e.setEdge(n,t.edge(n))})),e}function OA(t,e){var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;if(!o&&!s)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=l*o/s,i=l):(o<0&&(c=-c),n=c,i=c*s/o),{x:a+n,y:r+i}}function MA(t){var e=yT(KT(FA(t)+1),(function(){return[]}));return uT(t.nodes(),(function(n){var i=t.node(n),a=i.rank;DT(a)||(e[a][i.order]=n)})),e}function NA(t){var e=BT(yT(t.nodes(),(function(e){return t.node(e).rank})));uT(t.nodes(),(function(n){var i=t.node(n);_T(i,"rank")&&(i.rank-=e)}))}function BA(t){var e=BT(yT(t.nodes(),(function(e){return t.node(e).rank}))),n=[];uT(t.nodes(),(function(i){var a=t.node(i).rank-e;n[a]||(n[a]=[]),n[a].push(i)}));var i=0,a=t.graph().nodeRankFactor;uT(n,(function(e,n){DT(e)&&n%a!=0?--i:i&&uT(e,(function(e){t.node(e).rank+=i}))}))}function PA(t,e,n,i){var a={width:0,height:0};return arguments.length>=4&&(a.rank=n,a.order=i),DA(t,"border",a,e)}function FA(t){return MT(yT(t.nodes(),(function(e){var n=t.node(e).rank;if(!DT(n))return n})))}function jA(t,e){var n={lhs:[],rhs:[]};return uT(t,(function(t){e(t)?n.lhs.push(t):n.rhs.push(t)})),n}function $A(t,e){var n=XS();try{return e()}finally{console.log(t+" time: "+(XS()-n)+"ms")}}function zA(t,e){return e()}function HA(t){function e(n){var i=t.children(n),a=t.node(n);if(i.length&&uT(i,e),_T(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(var r=a.minRank,o=a.maxRank+1;r<o;++r)UA(t,"borderLeft","_bl",n,a,r),UA(t,"borderRight","_br",n,a,r)}}uT(t.children(),e)}function UA(t,e,n,i,a,r){var o={width:0,height:0,rank:r,borderType:e},s=a[e][r-1],c=DA(t,"border",o,n);a[e][r]=c,t.setParent(c,i),s&&t.setEdge(s,c,{weight:1})}function VA(t){var e=t.graph().rankdir.toLowerCase();("lr"===e||"rl"===e)&&WA(t)}function qA(t){var e=t.graph().rankdir.toLowerCase();("bt"===e||"rl"===e)&&GA(t),("lr"===e||"rl"===e)&&(KA(t),WA(t))}function WA(t){uT(t.nodes(),(function(e){YA(t.node(e))})),uT(t.edges(),(function(e){YA(t.edge(e))}))}function YA(t){var e=t.width;t.width=t.height,t.height=e}function GA(t){uT(t.nodes(),(function(e){ZA(t.node(e))})),uT(t.edges(),(function(e){var n=t.edge(e);uT(n.points,ZA),_T(n,"y")&&ZA(n)}))}function ZA(t){t.y=-t.y}function KA(t){uT(t.nodes(),(function(e){XA(t.node(e))})),uT(t.edges(),(function(e){var n=t.edge(e);uT(n.points,XA),_T(n,"x")&&XA(n)}))}function XA(t){var e=t.x;t.x=t.y,t.y=e}function JA(t){t.graph().dummyChains=[],uT(t.edges(),(function(e){QA(t,e)}))}function QA(t,e){var n=e.v,i=t.node(n).rank,a=e.w,r=t.node(a).rank,o=e.name,s=t.edge(e),c=s.labelRank;if(r!==i+1){var l,u,d;for(t.removeEdge(e),d=0,++i;i<r;++d,++i)s.points=[],l=DA(t,"edge",u={width:0,height:0,edgeLabel:s,edgeObj:e,rank:i},"_d"),i===c&&(u.width=s.width,u.height=s.height,u.dummy="edge-label",u.labelpos=s.labelpos),t.setEdge(n,l,{weight:s.weight},o),0===d&&t.graph().dummyChains.push(l),n=l;t.setEdge(n,a,{weight:s.weight},o)}}function tD(t){uT(t.graph().dummyChains,(function(e){var n,i=t.node(e),a=i.edgeLabel;for(t.setEdge(i.edgeObj,a);i.dummy;)n=t.successors(e)[0],t.removeNode(e),a.points.push({x:i.x,y:i.y}),"edge-label"===i.dummy&&(a.x=i.x,a.y=i.y,a.width=i.width,a.height=i.height),e=n,i=t.node(e)}))}function eD(t){var e={};function n(i){var a=t.node(i);if(_T(e,i))return a.rank;e[i]=!0;var r=BT(yT(t.outEdges(i),(function(e){return n(e.w)-t.edge(e).minlen})));return(r===Number.POSITIVE_INFINITY||null==r)&&(r=0),a.rank=r}uT(t.sources(),n)}function nD(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}function iD(t){var e,n,i=new hA({directed:!1}),a=t.nodes()[0],r=t.nodeCount();for(i.setNode(a,{});aD(i,t)<r;)e=rD(i,t),n=i.hasNode(e.v)?nD(t,e):-nD(t,e),oD(i,t,n);return i}function aD(t,e){function n(i){uT(e.nodeEdges(i),(function(a){var r=a.v,o=i===r?a.w:r;!t.hasNode(o)&&!nD(e,a)&&(t.setNode(o,{}),t.setEdge(i,o,{}),n(o))}))}return uT(t.nodes(),n),t.nodeCount()}function rD(t,e){return PT(e.edges(),(function(n){if(t.hasNode(n.v)!==t.hasNode(n.w))return nD(e,n)}))}function oD(t,e,n){uT(t.nodes(),(function(t){e.node(t).rank+=n}))}function sD(){}function cD(t,e,n){aR(e)||(e=[e]);var i=(t.isDirected()?t.successors:t.neighbors).bind(t),a=[],r={};return uT(e,(function(e){if(!t.hasNode(e))throw new Error("Graph does not have node: "+e);lD(t,e,"post"===n,r,i,a)})),a}function lD(t,e,n,i,a,r){_T(i,e)||(i[e]=!0,n||r.push(e),uT(a(e),(function(e){lD(t,e,n,i,a,r)})),n&&r.push(e))}function uD(t,e){return cD(t,e,"post")}function dD(t,e){return cD(t,e,"pre")}function hD(t){eD(t=IA(t));var e,n=iD(t);for(bD(n),fD(n,t);e=yD(n);)wD(n,t,e,vD(n,t,e))}function fD(t,e){var n=uD(t,t.nodes());uT(n=n.slice(0,n.length-1),(function(n){gD(t,e,n)}))}function gD(t,e,n){var i=t.node(n).parent;t.edge(n,i).cutvalue=pD(t,e,n)}function pD(t,e,n){var i=t.node(n).parent,a=!0,r=e.edge(n,i),o=0;return r||(a=!1,r=e.edge(i,n)),o=r.weight,uT(e.nodeEdges(n),(function(r){var s=r.v===n,c=s?r.w:r.v;if(c!==i){var l=s===a,u=e.edge(r).weight;if(o+=l?u:-u,RD(t,n,c)){var d=t.edge(n,c).cutvalue;o+=l?-d:d}}})),o}function bD(t,e){arguments.length<2&&(e=t.nodes()[0]),mD(t,{},1,e)}function mD(t,e,n,i,a){var r=n,o=t.node(i);return e[i]=!0,uT(t.neighbors(i),(function(a){_T(e,a)||(n=mD(t,e,n,a,i))})),o.low=r,o.lim=n++,a?o.parent=a:delete o.parent,n}function yD(t){return bT(t.edges(),(function(e){return t.edge(e).cutvalue<0}))}function vD(t,e,n){var i=n.v,a=n.w;e.hasEdge(i,a)||(i=n.w,a=n.v);var r=t.node(i),o=t.node(a),s=r,c=!1;return r.lim>o.lim&&(s=o,c=!0),PT(hT(e.edges(),(function(e){return c===_D(t,t.node(e.v),s)&&c!==_D(t,t.node(e.w),s)})),(function(t){return nD(e,t)}))}function wD(t,e,n,i){var a=n.v,r=n.w;t.removeEdge(a,r),t.setEdge(i.v,i.w,{}),bD(t),fD(t,e),xD(t,e)}function xD(t,e){var n=bT(t.nodes(),(function(t){return!e.node(t).parent})),i=dD(t,n);uT(i=i.slice(1),(function(n){var i=t.node(n).parent,a=e.edge(n,i),r=!1;a||(a=e.edge(i,n),r=!0),e.node(n).rank=e.node(i).rank+(r?a.minlen:-a.minlen)}))}function RD(t,e,n){return t.hasEdge(e,n)}function _D(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}function kD(t){switch(t.graph().ranker){case"network-simplex":default:SD(t);break;case"tight-tree":CD(t);break;case"longest-path":ED(t)}}sD.prototype=new Error,hD.initLowLimValues=bD,hD.initCutValues=fD,hD.calcCutValue=pD,hD.leaveEdge=yD,hD.enterEdge=vD,hD.exchangeEdges=wD;var ED=eD;function CD(t){eD(t),iD(t)}function SD(t){hD(t)}function TD(t){var e=DA(t,"root",{},"_root"),n=DD(t),i=MT(ET(n))-1,a=2*i+1;t.graph().nestingRoot=e,uT(t.edges(),(function(e){t.edge(e).minlen*=a}));var r=ID(t)+1;uT(t.children(),(function(o){AD(t,e,a,r,i,n,o)})),t.graph().nodeRankFactor=a}function AD(t,e,n,i,a,r,o){var s=t.children(o);if(s.length){var c=PA(t,"_bt"),l=PA(t,"_bb"),u=t.node(o);t.setParent(c,o),u.borderTop=c,t.setParent(l,o),u.borderBottom=l,uT(s,(function(s){AD(t,e,n,i,a,r,s);var u=t.node(s),d=u.borderTop?u.borderTop:s,h=u.borderBottom?u.borderBottom:s,f=u.borderTop?i:2*i,g=d!==h?1:a-r[o]+1;t.setEdge(c,d,{weight:f,minlen:g,nestingEdge:!0}),t.setEdge(h,l,{weight:f,minlen:g,nestingEdge:!0})})),t.parent(o)||t.setEdge(e,c,{weight:0,minlen:a+r[o]})}else o!==e&&t.setEdge(e,o,{weight:0,minlen:n})}function DD(t){var e={};function n(i,a){var r=t.children(i);r&&r.length&&uT(r,(function(t){n(t,a+1)})),e[i]=a}return uT(t.children(),(function(t){n(t,1)})),e}function ID(t){return JT(t.edges(),(function(e,n){return e+t.edge(n).weight}),0)}function LD(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,uT(t.edges(),(function(e){t.edge(e).nestingEdge&&t.removeEdge(e)}))}function OD(t,e,n){var i,a={};uT(n,(function(n){for(var r,o,s=t.parent(n);s;){if((r=t.parent(s))?(o=a[r],a[r]=s):(o=i,i=s),o&&o!==s)return void e.setEdge(o,s);s=r}}))}function MD(t,e,n){var i=ND(t),a=new hA({compound:!0}).setGraph({root:i}).setDefaultNodeLabel((function(e){return t.node(e)}));return uT(t.nodes(),(function(r){var o=t.node(r),s=t.parent(r);(o.rank===e||o.minRank<=e&&e<=o.maxRank)&&(a.setNode(r),a.setParent(r,s||i),uT(t[n](r),(function(e){var n=e.v===r?e.w:e.v,i=a.edge(n,r),o=DT(i)?0:i.weight;a.setEdge(n,r,{weight:t.edge(e).weight+o})})),_T(o,"minRank")&&a.setNode(r,{borderLeft:o.borderLeft[e],borderRight:o.borderRight[e]}))})),a}function ND(t){for(var e;t.hasNode(e=oA("_root")););return e}function BD(t,e){for(var n=0,i=1;i<e.length;++i)n+=PD(t,e[i-1],e[i]);return n}function PD(t,e,n){for(var i=cA(n,yT(n,(function(t,e){return e}))),a=Ck(yT(e,(function(e){return QT(yT(t.outEdges(e),(function(e){return{pos:i[e.w],weight:t.edge(e).weight}})),"pos")}))),r=1;r<n.length;)r<<=1;var o=2*r-1;r-=1;var s=yT(new Array(o),(function(){return 0})),c=0;return uT(a.forEach((function(t){var e=t.pos+r;s[e]+=t.weight;for(var n=0;e>0;)e%2&&(n+=s[e+1]),s[e=e-1>>1]+=t.weight;c+=t.weight*n}))),c}function FD(t){var e={},n=hT(t.nodes(),(function(e){return!t.children(e).length})),i=MT(yT(n,(function(e){return t.node(e).rank}))),a=yT(KT(i+1),(function(){return[]}));function r(n){if(!_T(e,n)){e[n]=!0;var i=t.node(n);a[i.rank].push(n),uT(t.successors(n),r)}}return uT(QT(n,(function(e){return t.node(e).rank})),r),a}function jD(t,e){return yT(e,(function(e){var n=t.inEdges(e);if(n.length){var i=JT(n,(function(e,n){var i=t.edge(n),a=t.node(n.v);return{sum:e.sum+i.weight*a.order,weight:e.weight+i.weight}}),{sum:0,weight:0});return{v:e,barycenter:i.sum/i.weight,weight:i.weight}}return{v:e}}))}function $D(t,e){var n={};return uT(t,(function(t,e){var i=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:e};DT(t.barycenter)||(i.barycenter=t.barycenter,i.weight=t.weight)})),uT(e.edges(),(function(t){var e=n[t.v],i=n[t.w];!DT(e)&&!DT(i)&&(i.indegree++,e.out.push(n[t.w]))})),zD(hT(n,(function(t){return!t.indegree})))}function zD(t){var e=[];function n(t){return function(e){e.merged||(DT(e.barycenter)||DT(t.barycenter)||e.barycenter>=t.barycenter)&&HD(t,e)}}function i(e){return function(n){n.in.push(e),0==--n.indegree&&t.push(n)}}for(;t.length;){var a=t.pop();e.push(a),uT(a.in.reverse(),n(a)),uT(a.out,i(a))}return yT(hT(e,(function(t){return!t.merged})),(function(t){return qT(t,["vs","i","barycenter","weight"])}))}function HD(t,e){var n=0,i=0;t.weight&&(n+=t.barycenter*t.weight,i+=t.weight),e.weight&&(n+=e.barycenter*e.weight,i+=e.weight),t.vs=e.vs.concat(t.vs),t.barycenter=n/i,t.weight=i,t.i=Math.min(e.i,t.i),e.merged=!0}function UD(t,e){var n=jA(t,(function(t){return _T(t,"barycenter")})),i=n.lhs,a=QT(n.rhs,(function(t){return-t.i})),r=[],o=0,s=0,c=0;i.sort(qD(!!e)),c=VD(r,a,c),uT(i,(function(t){c+=t.vs.length,r.push(t.vs),o+=t.barycenter*t.weight,s+=t.weight,c=VD(r,a,c)}));var l={vs:Ck(r)};return s&&(l.barycenter=o/s,l.weight=s),l}function VD(t,e,n){for(var i;e.length&&(i=cT(e)).i<=n;)e.pop(),t.push(i.vs),n++;return n}function qD(t){return function(e,n){return e.barycenter<n.barycenter?-1:e.barycenter>n.barycenter?1:t?n.i-e.i:e.i-n.i}}function WD(t,e,n,i){var a=t.children(e),r=t.node(e),o=r?r.borderLeft:void 0,s=r?r.borderRight:void 0,c={};o&&(a=hT(a,(function(t){return t!==o&&t!==s})));var l=jD(t,a);uT(l,(function(e){if(t.children(e.v).length){var a=WD(t,e.v,n,i);c[e.v]=a,_T(a,"barycenter")&&GD(e,a)}}));var u=$D(l,n);YD(u,c);var d=UD(u,i);if(o&&(d.vs=Ck([o,d.vs,s]),t.predecessors(o).length)){var h=t.node(t.predecessors(o)[0]),f=t.node(t.predecessors(s)[0]);_T(d,"barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+h.order+f.order)/(d.weight+2),d.weight+=2}return d}function YD(t,e){uT(t,(function(t){t.vs=Ck(t.vs.map((function(t){return e[t]?e[t].vs:t})))}))}function GD(t,e){DT(t.barycenter)?(t.barycenter=e.barycenter,t.weight=e.weight):(t.barycenter=(t.barycenter*t.weight+e.barycenter*e.weight)/(t.weight+e.weight),t.weight+=e.weight)}function ZD(t){var e=FA(t),n=KD(t,KT(1,e+1),"inEdges"),i=KD(t,KT(e-1,-1,-1),"outEdges"),a=FD(t);JD(t,a);for(var r,o=Number.POSITIVE_INFINITY,s=0,c=0;c<4;++s,++c){XD(s%2?n:i,s%4>=2);var l=BD(t,a=MA(t));l<o&&(c=0,r=qC(a),o=l)}JD(t,r)}function KD(t,e,n){return yT(e,(function(e){return MD(t,e,n)}))}function XD(t,e){var n=new hA;uT(t,(function(t){var i=t.graph().root,a=WD(t,i,n,e);uT(a.vs,(function(e,n){t.node(e).order=n})),OD(t,n,a.vs)}))}function JD(t,e){uT(e,(function(e){uT(e,(function(e,n){t.node(e).order=n}))}))}function QD(t){var e=eI(t);uT(t.graph().dummyChains,(function(n){for(var i=t.node(n),a=i.edgeObj,r=tI(t,e,a.v,a.w),o=r.path,s=r.lca,c=0,l=o[c],u=!0;n!==a.w;){if(i=t.node(n),u){for(;(l=o[c])!==s&&t.node(l).maxRank<i.rank;)c++;l===s&&(u=!1)}if(!u){for(;c<o.length-1&&t.node(l=o[c+1]).minRank<=i.rank;)c++;l=o[c]}t.setParent(n,l),n=t.successors(n)[0]}}))}function tI(t,e,n,i){var a,r,o=[],s=[],c=Math.min(e[n].low,e[i].low),l=Math.max(e[n].lim,e[i].lim);a=n;do{a=t.parent(a),o.push(a)}while(a&&(e[a].low>c||l>e[a].lim));for(r=a,a=i;(a=t.parent(a))!==r;)s.push(a);return{path:o.concat(s.reverse()),lca:r}}function eI(t){var e={},n=0;function i(a){var r=n;uT(t.children(a),i),e[a]={low:r,lim:n++}}return uT(t.children(),i),e}function nI(t,e){var n={};function i(e,i){var a=0,r=0,o=e.length,s=cT(i);return uT(i,(function(e,c){var l=aI(t,e),u=l?t.node(l).order:o;(l||e===s)&&(uT(i.slice(r,c+1),(function(e){uT(t.predecessors(e),(function(i){var r=t.node(i),o=r.order;(o<a||u<o)&&(!r.dummy||!t.node(e).dummy)&&rI(n,i,e)}))})),r=c+1,a=u)})),i}return JT(e,i),n}function iI(t,e){var n={};function i(e,i,a,r,o){var s;uT(KT(i,a),(function(i){s=e[i],t.node(s).dummy&&uT(t.predecessors(s),(function(e){var i=t.node(e);i.dummy&&(i.order<r||i.order>o)&&rI(n,e,s)}))}))}function a(e,n){var a,r=-1,o=0;return uT(n,(function(s,c){if("border"===t.node(s).dummy){var l=t.predecessors(s);l.length&&(a=t.node(l[0]).order,i(n,o,c,r,a),o=c,r=a)}i(n,o,n.length,a,e.length)})),n}return JT(e,a),n}function aI(t,e){if(t.node(e).dummy)return bT(t.predecessors(e),(function(e){return t.node(e).dummy}))}function rI(t,e,n){if(e>n){var i=e;e=n,n=i}var a=t[e];a||(t[e]=a={}),a[n]=!0}function oI(t,e,n){if(e>n){var i=e;e=n,n=i}return _T(t[e],n)}function sI(t,e,n,i){var a={},r={},o={};return uT(e,(function(t){uT(t,(function(t,e){a[t]=t,r[t]=t,o[t]=e}))})),uT(e,(function(t){var e=-1;uT(t,(function(t){var s=i(t);if(s.length)for(var c=((s=QT(s,(function(t){return o[t]}))).length-1)/2,l=Math.floor(c),u=Math.ceil(c);l<=u;++l){var d=s[l];r[t]===t&&e<o[d]&&!oI(n,t,d)&&(r[d]=t,r[t]=a[t]=a[d],e=o[d])}}))})),{root:a,align:r}}function cI(t,e,n,i,a){var r={},o=lI(t,e,n,a),s=a?"borderLeft":"borderRight";function c(t,e){for(var n=o.nodes(),i=n.pop(),a={};i;)a[i]?t(i):(a[i]=!0,n.push(i),n=n.concat(e(i))),i=n.pop()}function l(t){r[t]=o.inEdges(t).reduce((function(t,e){return Math.max(t,r[e.v]+o.edge(e))}),0)}function u(e){var n=o.outEdges(e).reduce((function(t,e){return Math.min(t,r[e.w]-o.edge(e))}),Number.POSITIVE_INFINITY),i=t.node(e);n!==Number.POSITIVE_INFINITY&&i.borderType!==s&&(r[e]=Math.max(r[e],n))}return c(l,o.predecessors.bind(o)),c(u,o.successors.bind(o)),uT(i,(function(t){r[t]=r[n[t]]})),r}function lI(t,e,n,i){var a=new hA,r=t.graph(),o=gI(r.nodesep,r.edgesep,i);return uT(e,(function(e){var i;uT(e,(function(e){var r=n[e];if(a.setNode(r),i){var s=n[i],c=a.edge(s,r);a.setEdge(s,r,Math.max(o(t,e,i),c||0))}i=e}))})),a}function uI(t,e){return PT(ET(e),(function(e){var n=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return vT(e,(function(e,a){var r=pI(t,a)/2;n=Math.max(e+r,n),i=Math.min(e-r,i)})),n-i}))}function dI(t,e){var n=ET(e),i=BT(n),a=MT(n);uT(["u","d"],(function(n){uT(["l","r"],(function(r){var o,s=n+r,c=t[s];if(c!==e){var l=ET(c);(o="l"===r?i-BT(l):a-MT(l))&&(t[s]=LT(c,(function(t){return t+o})))}}))}))}function hI(t,e){return LT(t.ul,(function(n,i){if(e)return t[e.toLowerCase()][i];var a=QT(yT(t,i));return(a[1]+a[2])/2}))}function fI(t){var e,n=MA(t),i=NT(nI(t,n),iI(t,n)),a={};uT(["u","d"],(function(r){e="u"===r?n:ET(n).reverse(),uT(["l","r"],(function(n){"r"===n&&(e=yT(e,(function(t){return ET(t).reverse()})));var o=("u"===r?t.predecessors:t.successors).bind(t),s=sI(t,e,i,o),c=cI(t,e,s.root,s.align,"r"===n);"r"===n&&(c=LT(c,(function(t){return-t}))),a[r+n]=c}))}));var r=uI(t,a);return dI(a,r),hI(a,t.graph().align)}function gI(t,e,n){return function(i,a,r){var o,s=i.node(a),c=i.node(r),l=0;if(l+=s.width/2,_T(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":o=-s.width/2;break;case"r":o=s.width/2}if(o&&(l+=n?o:-o),o=0,l+=(s.dummy?e:t)/2,l+=(c.dummy?e:t)/2,l+=c.width/2,_T(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":o=c.width/2;break;case"r":o=-c.width/2}return o&&(l+=n?o:-o),o=0,l}}function pI(t,e){return t.node(e).width}function bI(t){mI(t=LA(t)),uT(fI(t),(function(e,n){t.node(n).x=e}))}function mI(t){var e=MA(t),n=t.graph().ranksep,i=0;uT(e,(function(e){var a=MT(yT(e,(function(e){return t.node(e).height})));uT(e,(function(e){t.node(e).y=i+a/2})),i+=a+n}))}function yI(t,e){var n=e&&e.debugTiming?$A:zA;n("layout",(function(){var e=n(" buildLayoutGraph",(function(){return AI(t)}));n(" runLayout",(function(){vI(e,n)})),n(" updateInputGraph",(function(){wI(t,e)}))}))}function vI(t,e){e(" makeSpaceForEdgeLabels",(function(){DI(t)})),e(" removeSelfEdges",(function(){jI(t)})),e(" acyclic",(function(){SA(t)})),e(" nestingGraph.run",(function(){TD(t)})),e(" rank",(function(){kD(LA(t))})),e(" injectEdgeLabelProxies",(function(){II(t)})),e(" removeEmptyRanks",(function(){BA(t)})),e(" nestingGraph.cleanup",(function(){LD(t)})),e(" normalizeRanks",(function(){NA(t)})),e(" assignRankMinMax",(function(){LI(t)})),e(" removeEdgeLabelProxies",(function(){OI(t)})),e(" normalize.run",(function(){JA(t)})),e(" parentDummyChains",(function(){QD(t)})),e(" addBorderSegments",(function(){HA(t)})),e(" order",(function(){ZD(t)})),e(" insertSelfEdges",(function(){$I(t)})),e(" adjustCoordinateSystem",(function(){VA(t)})),e(" position",(function(){bI(t)})),e(" positionSelfEdges",(function(){zI(t)})),e(" removeBorderNodes",(function(){FI(t)})),e(" normalize.undo",(function(){tD(t)})),e(" fixupEdgeLabelCoords",(function(){BI(t)})),e(" undoCoordinateSystem",(function(){qA(t)})),e(" translateGraph",(function(){MI(t)})),e(" assignNodeIntersects",(function(){NI(t)})),e(" reversePoints",(function(){PI(t)})),e(" acyclic.undo",(function(){AA(t)}))}function wI(t,e){uT(t.nodes(),(function(n){var i=t.node(n),a=e.node(n);i&&(i.x=a.x,i.y=a.y,e.children(n).length&&(i.width=a.width,i.height=a.height))})),uT(t.edges(),(function(n){var i=t.edge(n),a=e.edge(n);i.points=a.points,_T(a,"x")&&(i.x=a.x,i.y=a.y)})),t.graph().width=e.graph().width,t.graph().height=e.graph().height}var xI=["nodesep","edgesep","ranksep","marginx","marginy"],RI={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},_I=["acyclicer","ranker","rankdir","align"],kI=["width","height"],EI={width:0,height:0},CI=["minlen","weight","width","height","labeloffset"],SI={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},TI=["labelpos"];function AI(t){var e=new hA({multigraph:!0,compound:!0}),n=UI(t.graph());return e.setGraph(NT({},RI,HI(n,xI),qT(n,_I))),uT(t.nodes(),(function(n){var i=UI(t.node(n));e.setNode(n,tT(HI(i,kI),EI)),e.setParent(n,t.parent(n))})),uT(t.edges(),(function(n){var i=UI(t.edge(n));e.setEdge(n,NT({},SI,HI(i,CI),qT(i,TI)))})),e}function DI(t){var e=t.graph();e.ranksep/=2,uT(t.edges(),(function(n){var i=t.edge(n);i.minlen*=2,"c"!==i.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?i.width+=i.labeloffset:i.height+=i.labeloffset)}))}function II(t){uT(t.edges(),(function(e){var n=t.edge(e);if(n.width&&n.height){var i=t.node(e.v),a={rank:(t.node(e.w).rank-i.rank)/2+i.rank,e:e};DA(t,"edge-proxy",a,"_ep")}}))}function LI(t){var e=0;uT(t.nodes(),(function(n){var i=t.node(n);i.borderTop&&(i.minRank=t.node(i.borderTop).rank,i.maxRank=t.node(i.borderBottom).rank,e=MT(e,i.maxRank))})),t.graph().maxRank=e}function OI(t){uT(t.nodes(),(function(e){var n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))}))}function MI(t){var e=Number.POSITIVE_INFINITY,n=0,i=Number.POSITIVE_INFINITY,a=0,r=t.graph(),o=r.marginx||0,s=r.marginy||0;function c(t){var r=t.x,o=t.y,s=t.width,c=t.height;e=Math.min(e,r-s/2),n=Math.max(n,r+s/2),i=Math.min(i,o-c/2),a=Math.max(a,o+c/2)}uT(t.nodes(),(function(e){c(t.node(e))})),uT(t.edges(),(function(e){var n=t.edge(e);_T(n,"x")&&c(n)})),e-=o,i-=s,uT(t.nodes(),(function(n){var a=t.node(n);a.x-=e,a.y-=i})),uT(t.edges(),(function(n){var a=t.edge(n);uT(a.points,(function(t){t.x-=e,t.y-=i})),_T(a,"x")&&(a.x-=e),_T(a,"y")&&(a.y-=i)})),r.width=n-e+o,r.height=a-i+s}function NI(t){uT(t.edges(),(function(e){var n,i,a=t.edge(e),r=t.node(e.v),o=t.node(e.w);a.points?(n=a.points[0],i=a.points[a.points.length-1]):(a.points=[],n=o,i=r),a.points.unshift(OA(r,n)),a.points.push(OA(o,i))}))}function BI(t){uT(t.edges(),(function(e){var n=t.edge(e);if(_T(n,"x"))switch(("l"===n.labelpos||"r"===n.labelpos)&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}function PI(t){uT(t.edges(),(function(e){var n=t.edge(e);n.reversed&&n.points.reverse()}))}function FI(t){uT(t.nodes(),(function(e){if(t.children(e).length){var n=t.node(e),i=t.node(n.borderTop),a=t.node(n.borderBottom),r=t.node(cT(n.borderLeft)),o=t.node(cT(n.borderRight));n.width=Math.abs(o.x-r.x),n.height=Math.abs(a.y-i.y),n.x=r.x+n.width/2,n.y=i.y+n.height/2}})),uT(t.nodes(),(function(e){"border"===t.node(e).dummy&&t.removeNode(e)}))}function jI(t){uT(t.edges(),(function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:e,label:t.edge(e)}),t.removeEdge(e)}}))}function $I(t){uT(MA(t),(function(e){var n=0;uT(e,(function(e,i){var a=t.node(e);a.order=i+n,uT(a.selfEdges,(function(e){DA(t,"selfedge",{width:e.label.width,height:e.label.height,rank:a.rank,order:i+ ++n,e:e.e,label:e.label},"_se")})),delete a.selfEdges}))}))}function zI(t){uT(t.nodes(),(function(e){var n=t.node(e);if("selfedge"===n.dummy){var i=t.node(n.e.v),a=i.x+i.width/2,r=i.y,o=n.x-a,s=i.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:a+2*o/3,y:r-s},{x:a+5*o/6,y:r-s},{x:a+o,y:r},{x:a+5*o/6,y:r+s},{x:a+2*o/3,y:r+s}],n.label.x=n.x,n.label.y=n.y}}))}function HI(t,e){return LT(qT(t,e),Number)}function UI(t){var e={};return uT(t,(function(t,n){e[n.toLowerCase()]=t})),e}let VI=0;const qI=function(t,e,n,i){d.debug("Rendering class ",e,n);const a=e.id,r={id:a,label:e.id,width:0,height:0},o=t.append("g").attr("id",i.db.lookUpDomId(a)).attr("class","classGroup");let s;s=e.link?o.append("svg:a").attr("xlink:href",e.link).attr("target",e.linkTarget).append("text").attr("y",n.textHeight+n.padding).attr("x",0):o.append("text").attr("y",n.textHeight+n.padding).attr("x",0);let c=!0;e.annotations.forEach((function(t){const e=s.append("tspan").text("\xab"+t+"\xbb");c||e.attr("dy",n.textHeight),c=!1}));let l=e.id;void 0!==e.type&&""!==e.type&&(l+="<"+e.type+">");const u=s.append("tspan").text(l).attr("class","title");c||u.attr("dy",n.textHeight);const h=s.node().getBBox().height,f=o.append("line").attr("x1",0).attr("y1",n.padding+h+n.dividerMargin/2).attr("y2",n.padding+h+n.dividerMargin/2),g=o.append("text").attr("x",n.padding).attr("y",h+n.dividerMargin+n.textHeight).attr("fill","white").attr("class","classText");c=!0,e.members.forEach((function(t){KI(g,t,c,n),c=!1}));const p=g.node().getBBox(),b=o.append("line").attr("x1",0).attr("y1",n.padding+h+n.dividerMargin+p.height).attr("y2",n.padding+h+n.dividerMargin+p.height),m=o.append("text").attr("x",n.padding).attr("y",h+2*n.dividerMargin+p.height+n.textHeight).attr("fill","white").attr("class","classText");c=!0,e.methods.forEach((function(t){KI(m,t,c,n),c=!1}));const y=o.node().getBBox();var v=" ";e.cssClasses.length>0&&(v+=e.cssClasses.join(" "));const w=o.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",y.width+2*n.padding).attr("height",y.height+n.padding+.5*n.dividerMargin).attr("class",v).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(w-t.getBBox().width)/2)})),e.tooltip&&s.insert("title").text(e.tooltip),f.attr("x2",w),b.attr("x2",w),r.width=w,r.height=y.height+n.padding+.5*n.dividerMargin,r},WI=function(t){const e=/^([#+~-])?(\w+)(~\w+~|\[])?\s+(\w+) *([$*])?$/,n=/^([#+|~-])?(\w+) *\( *(.*)\) *([$*])? *(\w*[[\]|~]*\s*\w*~?)$/;let i=t.match(e),a=t.match(n);return i&&!a?YI(i):a?GI(a):ZI(t)},YI=function(t){let e="",n="";try{let i=t[1]?t[1].trim():"",a=t[2]?t[2].trim():"",r=t[3]?Jd(t[3].trim()):"",o=t[4]?t[4].trim():"",s=t[5]?t[5].trim():"";n=i+a+r+" "+o,e=XI(s)}catch{n=t}return{displayText:n,cssStyle:e}},GI=function(t){let e="",n="";try{let i=t[1]?t[1].trim():"",a=t[2]?t[2].trim():"",r=t[3]?Jd(t[3].trim()):"",o=t[4]?t[4].trim():"";n=i+a+"("+r+")"+(t[5]?" : "+Jd(t[5]).trim():""),e=XI(o)}catch{n=t}return{displayText:n,cssStyle:e}},ZI=function(t){let e="",n="",i="",a=t.indexOf("("),r=t.indexOf(")");if(a>1&&r>a&&r<=t.length){let o="",s="",c=t.substring(0,1);c.match(/\w/)?s=t.substring(0,a).trim():(c.match(/[#+~-]/)&&(o=c),s=t.substring(1,a).trim());const l=t.substring(a+1,r);t.substring(r+1,1),n=XI(t.substring(r+1,r+2)),e=o+s+"("+Jd(l.trim())+")",r<t.length&&(i=t.substring(r+2).trim(),""!==i&&(i=" : "+Jd(i),e+=i))}else e=Jd(t);return{displayText:e,cssStyle:n}},KI=function(t,e,n,i){let a=WI(e);const r=t.append("tspan").attr("x",i.padding).text(a.displayText);""!==a.cssStyle&&r.attr("style",a.cssStyle),n||r.attr("dy",i.textHeight)},XI=function(t){switch(t){case"*":return"font-style:italic;";case"$":return"text-decoration:underline;";default:return""}},JI={drawClass:qI,drawEdge:function(t,e,n,i,a){const r=function(t){switch(t){case a.db.relationType.AGGREGATION:return"aggregation";case a.db.relationType.EXTENSION:return"extension";case a.db.relationType.COMPOSITION:return"composition";case a.db.relationType.DEPENDENCY:return"dependency";case a.db.relationType.LOLLIPOP:return"lollipop"}};e.points=e.points.filter((t=>!Number.isNaN(t.y)));const o=e.points,s=$l().x((function(t){return t.x})).y((function(t){return t.y})).curve(Kl),c=t.append("path").attr("d",s(o)).attr("id","edge"+VI).attr("class","relation");let l,u,h="";i.arrowMarkerAbsolute&&(h=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,h=h.replace(/\(/g,"\\("),h=h.replace(/\)/g,"\\)")),1==n.relation.lineType&&c.attr("class","relation dashed-line"),10==n.relation.lineType&&c.attr("class","relation dotted-line"),"none"!==n.relation.type1&&c.attr("marker-start","url("+h+"#"+r(n.relation.type1)+"Start)"),"none"!==n.relation.type2&&c.attr("marker-end","url("+h+"#"+r(n.relation.type2)+"End)");const f=e.points.length;let g,p,b,m,y=vm.calcLabelPosition(e.points);if(l=y.x,u=y.y,f%2!=0&&f>1){let t=vm.calcCardinalityPosition("none"!==n.relation.type1,e.points,e.points[0]),i=vm.calcCardinalityPosition("none"!==n.relation.type2,e.points,e.points[f-1]);d.debug("cardinality_1_point "+JSON.stringify(t)),d.debug("cardinality_2_point "+JSON.stringify(i)),g=t.x,p=t.y,b=i.x,m=i.y}if(void 0!==n.title){const e=t.append("g").attr("class","classLabel"),a=e.append("text").attr("class","label").attr("x",l).attr("y",u).attr("fill","red").attr("text-anchor","middle").text(n.title);window.label=a;const r=a.node().getBBox();e.insert("rect",":first-child").attr("class","box").attr("x",r.x-i.padding/2).attr("y",r.y-i.padding/2).attr("width",r.width+i.padding).attr("height",r.height+i.padding)}d.info("Rendering relation "+JSON.stringify(n)),void 0!==n.relationTitle1&&"none"!==n.relationTitle1&&t.append("g").attr("class","cardinality").append("text").attr("class","type1").attr("x",g).attr("y",p).attr("fill","black").attr("font-size","6").text(n.relationTitle1),void 0!==n.relationTitle2&&"none"!==n.relationTitle2&&t.append("g").attr("class","cardinality").append("text").attr("class","type2").attr("x",b).attr("y",m).attr("fill","black").attr("font-size","6").text(n.relationTitle2),VI++},drawNote:function(t,e,n,i){d.debug("Rendering note ",e,n);const a=e.id,r={id:a,text:e.text,width:0,height:0},o=t.append("g").attr("id",a).attr("class","classGroup");let s=o.append("text").attr("y",n.textHeight+n.padding).attr("x",0);const c=JSON.parse(`"${e.text}"`).split("\n");c.forEach((function(t){d.debug(`Adding line: ${t}`),s.append("tspan").text(t).attr("class","title").attr("dy",n.textHeight)}));const l=o.node().getBBox(),u=o.insert("rect",":first-child").attr("x",0).attr("y",0).attr("width",l.width+2*n.padding).attr("height",l.height+c.length*n.textHeight+n.padding+.5*n.dividerMargin).node().getBBox().width;return s.node().childNodes.forEach((function(t){t.setAttribute("x",(u-t.getBBox().width)/2)})),r.width=u,r.height=l.height+c.length*n.textHeight+n.padding+.5*n.dividerMargin,r},parseMember:WI};let QI={};const tL=20,eL=function(t){const e=Object.entries(QI).find((e=>e[1].label===t));if(e)return e[0]},nL=function(t){t.append("defs").append("marker").attr("id","extensionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id","extensionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z"),t.append("defs").append("marker").attr("id","compositionStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","compositionEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","aggregationStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","aggregationEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","dependencyStart").attr("class","extension").attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},iL={draw:function(t,e,n,i){const a=Ry().class;QI={},d.info("Rendering diagram "+t);const r=Ry().securityLevel;let o;"sandbox"===r&&(o=un("#i"+e));const s=un("sandbox"===r?o.nodes()[0].contentDocument.body:"body"),c=s.select(`[id='${e}']`);nL(c);const l=new hA({multigraph:!0});l.setGraph({isMultiGraph:!0}),l.setDefaultEdgeLabel((function(){return{}}));const u=i.db.getClasses(),h=Object.keys(u);for(const m of h){const t=u[m],e=JI.drawClass(c,t,a,i);QI[e.id]=e,l.setNode(e.id,e),d.info("Org height: "+e.height)}i.db.getRelations().forEach((function(t){d.info("tjoho"+eL(t.id1)+eL(t.id2)+JSON.stringify(t)),l.setEdge(eL(t.id1),eL(t.id2),{relation:t},t.title||"DEFAULT")})),i.db.getNotes().forEach((function(t){d.debug(`Adding note: ${JSON.stringify(t)}`);const e=JI.drawNote(c,t,a,i);QI[e.id]=e,l.setNode(e.id,e),t.class&&t.class in u&&l.setEdge(t.id,eL(t.class),{relation:{id1:t.id,id2:t.class,relation:{type1:"none",type2:"none",lineType:10}}},"DEFAULT")})),yI(l),l.nodes().forEach((function(t){void 0!==t&&void 0!==l.node(t)&&(d.debug("Node "+t+": "+JSON.stringify(l.node(t))),s.select("#"+(i.db.lookUpDomId(t)||t)).attr("transform","translate("+(l.node(t).x-l.node(t).width/2)+","+(l.node(t).y-l.node(t).height/2)+" )"))})),l.edges().forEach((function(t){void 0!==t&&void 0!==l.edge(t)&&(d.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(l.edge(t))),JI.drawEdge(c,l.edge(t),l.edge(t).relation,a,i))}));const f=c.node().getBBox(),g=f.width+2*tL,p=f.height+2*tL;Ly(c,p,g,a.useMaxWidth);const b=`${f.x-tL} ${f.y-tL} ${g} ${p}`;d.debug(`viewBox ${b}`),c.attr("viewBox",b)}};function aL(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:rL(t),edges:oL(t)};return DT(t.graph())||(e.value=HC(t.graph())),e}function rL(t){return yT(t.nodes(),(function(e){var n=t.node(e),i=t.parent(e),a={v:e};return DT(n)||(a.value=n),DT(i)||(a.parent=i),a}))}function oL(t){return yT(t.edges(),(function(e){var n=t.edge(e),i={v:e.v,w:e.w};return DT(e.name)||(i.name=e.name),DT(n)||(i.value=n),i}))}const sL=(t,e,n,i)=>{e.forEach((e=>{cL[e](t,n,i)}))},cL={extension:(t,e,n)=>{d.trace("Making markers for ",n),t.append("defs").append("marker").attr("id",e+"-extensionStart").attr("class","marker extension "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 1,7 L18,13 V 1 Z"),t.append("defs").append("marker").attr("id",e+"-extensionEnd").attr("class","marker extension "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 1,1 V 13 L18,7 Z")},composition:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-compositionStart").attr("class","marker composition "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-compositionEnd").attr("class","marker composition "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},aggregation:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-aggregationStart").attr("class","marker aggregation "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-aggregationEnd").attr("class","marker aggregation "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L1,7 L9,1 Z")},dependency:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-dependencyStart").attr("class","marker dependency "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("path").attr("d","M 5,7 L9,13 L1,7 L9,1 Z"),t.append("defs").append("marker").attr("id",e+"-dependencyEnd").attr("class","marker dependency "+e).attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},lollipop:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-lollipopStart").attr("class","marker lollipop "+e).attr("refX",0).attr("refY",7).attr("markerWidth",190).attr("markerHeight",240).attr("orient","auto").append("circle").attr("stroke","black").attr("fill","white").attr("cx",6).attr("cy",7).attr("r",6)},point:(t,e)=>{t.append("marker").attr("id",e+"-pointEnd").attr("class","marker "+e).attr("viewBox","0 0 12 20").attr("refX",10).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-pointStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 5 L 10 10 L 10 0 z").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},circle:(t,e)=>{t.append("marker").attr("id",e+"-circleEnd").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",11).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-circleStart").attr("class","marker "+e).attr("viewBox","0 0 10 10").attr("refX",-1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("circle").attr("cx","5").attr("cy","5").attr("r","5").attr("class","arrowMarkerPath").style("stroke-width",1).style("stroke-dasharray","1,0")},cross:(t,e)=>{t.append("marker").attr("id",e+"-crossEnd").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",12).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0"),t.append("marker").attr("id",e+"-crossStart").attr("class","marker cross "+e).attr("viewBox","0 0 11 11").attr("refX",-1).attr("refY",5.2).attr("markerUnits","userSpaceOnUse").attr("markerWidth",11).attr("markerHeight",11).attr("orient","auto").append("path").attr("d","M 1,1 l 9,9 M 10,1 l -9,9").attr("class","arrowMarkerPath").style("stroke-width",2).style("stroke-dasharray","1,0")},barb:(t,e)=>{t.append("defs").append("marker").attr("id",e+"-barbEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",14).attr("markerUnits","strokeWidth").attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")}},lL=sL;function uL(t,e){e&&t.attr("style",e)}function dL(t){const e=un(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),n=e.append("xhtml:div"),i=t.label,a=t.isNode?"nodeLabel":"edgeLabel";return n.html('<span class="'+a+'" '+(t.labelStyle?'style="'+t.labelStyle+'"':"")+">"+i+"</span>"),uL(n,t.labelStyle),n.style("display","inline-block"),n.style("white-space","nowrap"),n.attr("xmlns","http://www.w3.org/1999/xhtml"),e.node()}const hL=(t,e,n,i)=>{let a=t||"";if("object"==typeof a&&(a=a[0]),Xd(Ry().flowchart.htmlLabels))return a=a.replace(/\\n|\n/g,"<br />"),d.info("vertexText"+a),dL({isNode:i,label:JH(a).replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`)),labelStyle:e.replace("fill:","color:")});{const t=document.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",e.replace("color:","fill:"));let i=[];i="string"==typeof a?a.split(/\\n|\n|<br\s*\/?>/gi):Array.isArray(a)?a:[];for(const e of i){const i=document.createElementNS("http://www.w3.org/2000/svg","tspan");i.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),i.setAttribute("dy","1em"),i.setAttribute("x","0"),n?i.setAttribute("class","title-row"):i.setAttribute("class","row"),i.textContent=e.trim(),t.appendChild(i)}return t}},fL=(t,e,n,i)=>{let a;a=n||"node default";const r=t.insert("g").attr("class",a).attr("id",e.domId||e.id),o=r.insert("g").attr("class","label").attr("style",e.labelStyle);let s;s=void 0===e.labelText?"":"string"==typeof e.labelText?e.labelText:e.labelText[0];const c=o.node().appendChild(hL(Wd(JH(s),Ry()),e.labelStyle,!1,i));let l=c.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=c.children[0],e=un(c);l=t.getBoundingClientRect(),e.attr("width",l.width),e.attr("height",l.height)}const u=e.padding/2;return o.attr("transform","translate("+-l.width/2+", "+-l.height/2+")"),{shapeSvg:r,bbox:l,halfPadding:u,label:o}},gL=(t,e)=>{const n=e.node().getBBox();t.width=n.width,t.height=n.height};function pL(t,e,n,i){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","label-container").attr("transform","translate("+-e/2+","+n/2+")")}let bL={},mL={},yL={};const vL=()=>{mL={},yL={},bL={}},wL=(t,e)=>(d.trace("In isDecendant",e," ",t," = ",mL[e].includes(t)),!!mL[e].includes(t)),xL=(t,e)=>(d.info("Decendants of ",e," is ",mL[e]),d.info("Edge is ",t),t.v!==e&&t.w!==e&&(mL[e]?mL[e].includes(t.v)||wL(t.v,e)||wL(t.w,e)||mL[e].includes(t.w):(d.debug("Tilt, ",e,",not in decendants"),!1))),RL=(t,e,n,i)=>{d.warn("Copying children of ",t,"root",i,"data",e.node(t),i);const a=e.children(t)||[];t!==i&&a.push(t),d.warn("Copying (nodes) clusterId",t,"nodes",a),a.forEach((a=>{if(e.children(a).length>0)RL(a,e,n,i);else{const r=e.node(a);d.info("cp ",a," to ",i," with parent ",t),n.setNode(a,r),i!==e.parent(a)&&(d.warn("Setting parent",a,e.parent(a)),n.setParent(a,e.parent(a))),t!==i&&a!==t?(d.debug("Setting parent",a,t),n.setParent(a,t)):(d.info("In copy ",t,"root",i,"data",e.node(t),i),d.debug("Not Setting parent for node=",a,"cluster!==rootId",t!==i,"node!==clusterId",a!==t));const o=e.edges(a);d.debug("Copying Edges",o),o.forEach((a=>{d.info("Edge",a);const r=e.edge(a.v,a.w,a.name);d.info("Edge data",r,i);try{xL(a,i)?(d.info("Copying as ",a.v,a.w,r,a.name),n.setEdge(a.v,a.w,r,a.name),d.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):d.info("Skipping copy of edge ",a.v,"--\x3e",a.w," rootId: ",i," clusterId:",t)}catch(o){d.error(o)}}))}d.debug("Removing node",a),e.removeNode(a)}))},_L=(t,e)=>{const n=e.children(t);let i=[...n];for(const a of n)yL[a]=t,i=[...i,..._L(a,e)];return i},kL=(t,e)=>{d.trace("Searching",t);const n=e.children(t);if(d.trace("Searching children of id ",t,n),n.length<1)return d.trace("This is a valid node",t),t;for(const i of n){const n=kL(i,e);if(n)return d.trace("Found replacement for",t," => ",n),n}},EL=t=>bL[t]&&bL[t].externalConnections&&bL[t]?bL[t].id:t,CL=(t,e)=>{!t||e>10?d.debug("Opting out, no graph "):(d.debug("Opting in, graph "),t.nodes().forEach((function(e){t.children(e).length>0&&(d.warn("Cluster identified",e," Replacement id in edges: ",kL(e,t)),mL[e]=_L(e,t),bL[e]={id:kL(e,t),clusterData:t.node(e)})})),t.nodes().forEach((function(e){const n=t.children(e),i=t.edges();n.length>0?(d.debug("Cluster identified",e,mL),i.forEach((t=>{t.v!==e&&t.w!==e&&wL(t.v,e)^wL(t.w,e)&&(d.warn("Edge: ",t," leaves cluster ",e),d.warn("Decendants of XXX ",e,": ",mL[e]),bL[e].externalConnections=!0)}))):d.debug("Not a cluster ",e,mL)})),t.edges().forEach((function(e){const n=t.edge(e);d.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),d.warn("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(t.edge(e)));let i=e.v,a=e.w;if(d.warn("Fix XXX",bL,"ids:",e.v,e.w,"Translating: ",bL[e.v]," --- ",bL[e.w]),bL[e.v]&&bL[e.w]&&bL[e.v]===bL[e.w]){d.warn("Fixing and trixing link to self - removing XXX",e.v,e.w,e.name),d.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),i=EL(e.v),a=EL(e.w),t.removeEdge(e.v,e.w,e.name);const r=e.w+"---"+e.v;t.setNode(r,{domId:r,id:r,labelStyle:"",labelText:n.label,padding:0,shape:"labelRect",style:""});const o=JSON.parse(JSON.stringify(n)),s=JSON.parse(JSON.stringify(n));o.label="",o.arrowTypeEnd="none",s.label="",o.fromCluster=e.v,s.toCluster=e.v,t.setEdge(i,r,o,e.name+"-cyclic-special"),t.setEdge(r,a,s,e.name+"-cyclic-special")}else(bL[e.v]||bL[e.w])&&(d.warn("Fixing and trixing - removing XXX",e.v,e.w,e.name),i=EL(e.v),a=EL(e.w),t.removeEdge(e.v,e.w,e.name),i!==e.v&&(n.fromCluster=e.v),a!==e.w&&(n.toCluster=e.w),d.warn("Fix Replacing with XXX",i,a,e.name),t.setEdge(i,a,n,e.name))})),d.warn("Adjusted Graph",aL(t)),SL(t,0),d.trace(bL))},SL=(t,e)=>{if(d.warn("extractor - ",e,aL(t),t.children("D")),e>10)return void d.error("Bailing out");let n=t.nodes(),i=!1;for(const a of n){const e=t.children(a);i=i||e.length>0}if(i){d.debug("Nodes = ",n,e);for(const i of n)if(d.debug("Extracting node",i,bL,bL[i]&&!bL[i].externalConnections,!t.parent(i),t.node(i),t.children("D")," Depth ",e),bL[i])if(!bL[i].externalConnections&&t.children(i)&&t.children(i).length>0){d.warn("Cluster without external connections, without a parent and with children",i,e);let n="TB"===t.graph().rankdir?"LR":"TB";bL[i]&&bL[i].clusterData&&bL[i].clusterData.dir&&(n=bL[i].clusterData.dir,d.warn("Fixing dir",bL[i].clusterData.dir,n));const a=new hA({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));d.warn("Old graph before copy",aL(t)),RL(i,t,a,i),t.setNode(i,{clusterNode:!0,id:i,clusterData:bL[i].clusterData,labelText:bL[i].labelText,graph:a}),d.warn("New graph after copy node: (",i,")",aL(a)),d.debug("Old graph after copy",aL(t))}else d.warn("Cluster ** ",i," **not meeting the criteria !externalConnections:",!bL[i].externalConnections," no parent: ",!t.parent(i)," children ",t.children(i)&&t.children(i).length>0,t.children("D"),e),d.debug(bL);else d.debug("Not a cluster",i,e);n=t.nodes(),d.warn("New list of nodes",n);for(const i of n){const n=t.node(i);d.warn(" Now next level",i,n),n.clusterNode&&SL(n.graph,e+1)}}else d.debug("Done, no node has children",t.nodes())},TL=(t,e)=>{if(0===e.length)return[];let n=Object.assign(e);return e.forEach((e=>{const i=t.children(e),a=TL(t,i);n=[...n,...a]})),n},AL=t=>TL(t,t.children());function DL(t,e){return t.intersect(e)}function IL(t,e,n,i){var a=t.x,r=t.y,o=a-i.x,s=r-i.y,c=Math.sqrt(e*e*s*s+n*n*o*o),l=Math.abs(e*n*o/c);i.x<a&&(l=-l);var u=Math.abs(e*n*s/c);return i.y<r&&(u=-u),{x:a+l,y:r+u}}function LL(t,e,n){return IL(t,e,e,n)}function OL(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(a=e.y-t.y,o=t.x-e.x,c=e.x*t.y-t.x*e.y,h=a*n.x+o*n.y+c,f=a*i.x+o*i.y+c,!(0!==h&&0!==f&&ML(h,f)||(r=i.y-n.y,s=n.x-i.x,l=i.x*n.y-n.x*i.y,u=r*t.x+s*t.y+l,d=r*e.x+s*e.y+l,0!==u&&0!==d&&ML(u,d)||(g=a*s-r*o,0===g))))return p=Math.abs(g/2),{x:(b=o*l-s*c)<0?(b-p)/g:(b+p)/g,y:(b=r*c-a*l)<0?(b-p)/g:(b+p)/g}}function ML(t,e){return t*e>0}function NL(t,e,n){var i=t.x,a=t.y,r=[],o=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;"function"==typeof e.forEach?e.forEach((function(t){o=Math.min(o,t.x),s=Math.min(s,t.y)})):(o=Math.min(o,e.x),s=Math.min(s,e.y));for(var c=i-t.width/2-o,l=a-t.height/2-s,u=0;u<e.length;u++){var d=e[u],h=e[u<e.length-1?u+1:0],f=OL(t,n,{x:c+d.x,y:l+d.y},{x:c+h.x,y:l+h.y});f&&r.push(f)}return r.length?(r.length>1&&r.sort((function(t,e){var i=t.x-n.x,a=t.y-n.y,r=Math.sqrt(i*i+a*a),o=e.x-n.x,s=e.y-n.y,c=Math.sqrt(o*o+s*s);return r<c?-1:r===c?0:1})),r[0]):t}const BL=(t,e)=>{var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=0===s?0:l*o/s,i=l):(o<0&&(c=-c),n=c,i=0===o?0:c*s/o),{x:a+n,y:r+i}},PL={node:DL,circle:LL,ellipse:IL,polygon:NL,rect:BL},FL=(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding+(i.height+e.padding),r=[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}];d.info("Question main (Circle)");const o=pL(n,a,a,r);return o.attr("style",e.style),gL(e,o),e.intersect=function(t){return d.warn("Intersect called"),PL.polygon(e,r,t)},n};function jL(t,e,n,i){const a=[],r=t=>{a.push(t,0)},o=t=>{a.push(0,t)};e.includes("t")?(d.debug("add top border"),r(n)):o(n),e.includes("r")?(d.debug("add right border"),r(i)):o(i),e.includes("b")?(d.debug("add bottom border"),r(n)):o(n),e.includes("l")?(d.debug("add left border"),r(i)):o(i),t.attr("stroke-dasharray",a.join(" "))}const $L=(t,e,n)=>{const i=t.insert("g").attr("class","node default").attr("id",e.domId||e.id);let a=70,r=10;"LR"===n&&(a=10,r=70);const o=i.append("rect").attr("x",-1*a/2).attr("y",-1*r/2).attr("width",a).attr("height",r).attr("class","fork-join");return gL(e,o),e.height=e.height+e.padding/2,e.width=e.width+e.padding/2,e.intersect=function(t){return PL.rect(e,t)},i},zL={rhombus:FL,question:FL,rect:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=fL(t,e,"node "+e.classes,!0);d.trace("Classes = ",e.classes);const r=n.insert("rect",":first-child"),o=i.width+e.padding,s=i.height+e.padding;if(r.attr("class","basic label-container").attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",o).attr("height",s),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(jL(r,e.props.borders,o,s),t.delete("borders")),t.forEach((t=>{d.warn(`Unknown node property ${t}`)}))}return gL(e,r),e.intersect=function(t){return PL.rect(e,t)},n},labelRect:(t,e)=>{const{shapeSvg:n}=fL(t,e,"label",!0);d.trace("Classes = ",e.classes);const i=n.insert("rect",":first-child"),a=0,r=0;if(i.attr("width",a).attr("height",r),n.attr("class","label edgeLabel"),e.props){const t=new Set(Object.keys(e.props));e.props.borders&&(jL(i,e.props.borders,a,r),t.delete("borders")),t.forEach((t=>{d.warn(`Unknown node property ${t}`)}))}return gL(e,i),e.intersect=function(t){return PL.rect(e,t)},n},rectWithTitle:(t,e)=>{let n;n=e.classes?"node "+e.classes:"node default";const i=t.insert("g").attr("class",n).attr("id",e.domId||e.id),a=i.insert("rect",":first-child"),r=i.insert("line"),o=i.insert("g").attr("class","label"),s=e.labelText.flat?e.labelText.flat():e.labelText;let c="";c="object"==typeof s?s[0]:s,d.info("Label text abc79",c,s,"object"==typeof s);const l=o.node().appendChild(hL(c,e.labelStyle,!0,!0));let u={width:0,height:0};if(Xd(Ry().flowchart.htmlLabels)){const t=l.children[0],e=un(l);u=t.getBoundingClientRect(),e.attr("width",u.width),e.attr("height",u.height)}d.info("Text 2",s);const h=s.slice(1,s.length);let f=l.getBBox();const g=o.node().appendChild(hL(h.join?h.join("<br/>"):h,e.labelStyle,!0,!0));if(Xd(Ry().flowchart.htmlLabels)){const t=g.children[0],e=un(g);u=t.getBoundingClientRect(),e.attr("width",u.width),e.attr("height",u.height)}const p=e.padding/2;return un(g).attr("transform","translate( "+(u.width>f.width?0:(f.width-u.width)/2)+", "+(f.height+p+5)+")"),un(l).attr("transform","translate( "+(u.width<f.width?0:-(f.width-u.width)/2)+", 0)"),u=o.node().getBBox(),o.attr("transform","translate("+-u.width/2+", "+(-u.height/2-p+3)+")"),a.attr("class","outer title-state").attr("x",-u.width/2-p).attr("y",-u.height/2-p).attr("width",u.width+e.padding).attr("height",u.height+e.padding),r.attr("class","divider").attr("x1",-u.width/2-p).attr("x2",u.width/2+p).attr("y1",-u.height/2-p+f.height+p).attr("y2",-u.height/2-p+f.height+p),gL(e,a),e.intersect=function(t){return PL.rect(e,t)},i},choice:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=28,a=[{x:0,y:i/2},{x:i/2,y:0},{x:0,y:-i/2},{x:-i/2,y:0}];return n.insert("polygon",":first-child").attr("points",a.map((function(t){return t.x+","+t.y})).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),e.width=28,e.height=28,e.intersect=function(t){return PL.circle(e,14,t)},n},circle:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=fL(t,e,void 0,!0),r=n.insert("circle",":first-child");return r.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),d.info("Circle main"),gL(e,r),e.intersect=function(t){return d.info("Circle intersect",e,i.width/2+a,t),PL.circle(e,i.width/2+a,t)},n},doublecircle:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=fL(t,e,void 0,!0),r=5,o=n.insert("g",":first-child"),s=o.insert("circle"),c=o.insert("circle");return s.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a+r).attr("width",i.width+e.padding+2*r).attr("height",i.height+e.padding+2*r),c.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("r",i.width/2+a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),d.info("DoubleCircle main"),gL(e,s),e.intersect=function(t){return d.info("DoubleCircle intersect",e,i.width/2+a+r,t),PL.circle(e,i.width/2+a+r,t)},n},stadium:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.height+e.padding,r=i.width+a/4+e.padding,o=n.insert("rect",":first-child").attr("style",e.style).attr("rx",a/2).attr("ry",a/2).attr("x",-r/2).attr("y",-a/2).attr("width",r).attr("height",a);return gL(e,o),e.intersect=function(t){return PL.rect(e,t)},n},hexagon:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=4,r=i.height+e.padding,o=r/a,s=i.width+2*o+e.padding,c=[{x:o,y:0},{x:s-o,y:0},{x:s,y:-r/2},{x:s-o,y:-r},{x:o,y:-r},{x:0,y:-r/2}],l=pL(n,s,r,c);return l.attr("style",e.style),gL(e,l),e.intersect=function(t){return PL.polygon(e,c,t)},n},rect_left_inv_arrow:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-r/2,y:0},{x:a,y:0},{x:a,y:-r},{x:-r/2,y:-r},{x:0,y:-r/2}];return pL(n,a,r,o).attr("style",e.style),e.width=a+r,e.height=r,e.intersect=function(t){return PL.polygon(e,o,t)},n},lean_right:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-2*r/6,y:0},{x:a-r/6,y:0},{x:a+2*r/6,y:-r},{x:r/6,y:-r}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},lean_left:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:2*r/6,y:0},{x:a+r/6,y:0},{x:a-2*r/6,y:-r},{x:-r/6,y:-r}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},trapezoid:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:-2*r/6,y:0},{x:a+2*r/6,y:0},{x:a-r/6,y:-r},{x:r/6,y:-r}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},inv_trapezoid:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:r/6,y:0},{x:a-r/6,y:0},{x:a+2*r/6,y:-r},{x:-2*r/6,y:-r}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},rect_right_inv_arrow:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:0,y:0},{x:a+r/2,y:0},{x:a,y:-r/2},{x:a+r/2,y:-r},{x:0,y:-r}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},cylinder:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=a/2,o=r/(2.5+a/50),s=i.height+o+e.padding,c="M 0,"+o+" a "+r+","+o+" 0,0,0 "+a+" 0 a "+r+","+o+" 0,0,0 "+-a+" 0 l 0,"+s+" a "+r+","+o+" 0,0,0 "+a+" 0 l 0,"+-s,l=n.attr("label-offset-y",o).insert("path",":first-child").attr("style",e.style).attr("d",c).attr("transform","translate("+-a/2+","+-(s/2+o)+")");return gL(e,l),e.intersect=function(t){const n=PL.rect(e,t),i=n.x-e.x;if(0!=r&&(Math.abs(i)<e.width/2||Math.abs(i)==e.width/2&&Math.abs(n.y-e.y)>e.height/2-o)){let a=o*o*(1-i*i/(r*r));0!=a&&(a=Math.sqrt(a)),a=o-a,t.y-e.y>0&&(a=-a),n.y+=a}return n},n},start:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=n.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),gL(e,i),e.intersect=function(t){return PL.circle(e,7,t)},n},end:(t,e)=>{const n=t.insert("g").attr("class","node default").attr("id",e.domId||e.id),i=n.insert("circle",":first-child"),a=n.insert("circle",":first-child");return a.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),gL(e,a),e.intersect=function(t){return PL.circle(e,7,t)},n},note:(t,e)=>{const{shapeSvg:n,bbox:i,halfPadding:a}=fL(t,e,"node "+e.classes,!0);d.info("Classes = ",e.classes);const r=n.insert("rect",":first-child");return r.attr("rx",e.rx).attr("ry",e.ry).attr("x",-i.width/2-a).attr("y",-i.height/2-a).attr("width",i.width+e.padding).attr("height",i.height+e.padding),gL(e,r),e.intersect=function(t){return PL.rect(e,t)},n},subroutine:(t,e)=>{const{shapeSvg:n,bbox:i}=fL(t,e,void 0,!0),a=i.width+e.padding,r=i.height+e.padding,o=[{x:0,y:0},{x:a,y:0},{x:a,y:-r},{x:0,y:-r},{x:0,y:0},{x:-8,y:0},{x:a+8,y:0},{x:a+8,y:-r},{x:-8,y:-r},{x:-8,y:0}],s=pL(n,a,r,o);return s.attr("style",e.style),gL(e,s),e.intersect=function(t){return PL.polygon(e,o,t)},n},fork:$L,join:$L,class_box:(t,e)=>{const n=e.padding/2,i=4,a=8;let r;r=e.classes?"node "+e.classes:"node default";const o=t.insert("g").attr("class",r).attr("id",e.domId||e.id),s=o.insert("rect",":first-child"),c=o.insert("line"),l=o.insert("line");let u=0,d=i;const h=o.insert("g").attr("class","label");let f=0;const g=e.classData.annotations&&e.classData.annotations[0],p=e.classData.annotations[0]?"\xab"+e.classData.annotations[0]+"\xbb":"",b=h.node().appendChild(hL(p,e.labelStyle,!0,!0));let m=b.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=b.children[0],e=un(b);m=t.getBoundingClientRect(),e.attr("width",m.width),e.attr("height",m.height)}e.classData.annotations[0]&&(d+=m.height+i,u+=m.width);let y=e.classData.id;void 0!==e.classData.type&&""!==e.classData.type&&(Ry().flowchart.htmlLabels?y+="<"+e.classData.type+">":y+="<"+e.classData.type+">");const v=h.node().appendChild(hL(y,e.labelStyle,!0,!0));un(v).attr("class","classTitle");let w=v.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=v.children[0],e=un(v);w=t.getBoundingClientRect(),e.attr("width",w.width),e.attr("height",w.height)}d+=w.height+i,w.width>u&&(u=w.width);const x=[];e.classData.members.forEach((t=>{const n=WI(t);let a=n.displayText;Ry().flowchart.htmlLabels&&(a=a.replace(/</g,"<").replace(/>/g,">"));const r=h.node().appendChild(hL(a,n.cssStyle?n.cssStyle:e.labelStyle,!0,!0));let o=r.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=r.children[0],e=un(r);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}o.width>u&&(u=o.width),d+=o.height+i,x.push(r)})),d+=a;const R=[];if(e.classData.methods.forEach((t=>{const n=WI(t);let a=n.displayText;Ry().flowchart.htmlLabels&&(a=a.replace(/</g,"<").replace(/>/g,">"));const r=h.node().appendChild(hL(a,n.cssStyle?n.cssStyle:e.labelStyle,!0,!0));let o=r.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=r.children[0],e=un(r);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}o.width>u&&(u=o.width),d+=o.height+i,R.push(r)})),d+=a,g){let t=(u-m.width)/2;un(b).attr("transform","translate( "+(-1*u/2+t)+", "+-1*d/2+")"),f=m.height+i}let _=(u-w.width)/2;return un(v).attr("transform","translate( "+(-1*u/2+_)+", "+(-1*d/2+f)+")"),f+=w.height+i,c.attr("class","divider").attr("x1",-u/2-n).attr("x2",u/2+n).attr("y1",-d/2-n+a+f).attr("y2",-d/2-n+a+f),f+=a,x.forEach((t=>{un(t).attr("transform","translate( "+-u/2+", "+(-1*d/2+f+a/2)+")"),f+=w.height+i})),f+=a,l.attr("class","divider").attr("x1",-u/2-n).attr("x2",u/2+n).attr("y1",-d/2-n+a+f).attr("y2",-d/2-n+a+f),f+=a,R.forEach((t=>{un(t).attr("transform","translate( "+-u/2+", "+(-1*d/2+f)+")"),f+=w.height+i})),s.attr("class","outer title-state").attr("x",-u/2-n).attr("y",-d/2-n).attr("width",u+e.padding).attr("height",d+e.padding),gL(e,s),e.intersect=function(t){return PL.rect(e,t)},o}};let HL={};const UL=(t,e,n)=>{let i,a;if(e.link){let r;"sandbox"===Ry().securityLevel?r="_top":e.linkTarget&&(r=e.linkTarget||"_blank"),i=t.insert("svg:a").attr("xlink:href",e.link).attr("target",r),a=zL[e.shape](i,e,n)}else a=zL[e.shape](t,e,n),i=a;return e.tooltip&&a.attr("title",e.tooltip),e.class&&a.attr("class","node default "+e.class),HL[e.id]=i,e.haveCallback&&HL[e.id].attr("class",HL[e.id].attr("class")+" clickable"),i},VL=(t,e)=>{HL[e.id]=t},qL=()=>{HL={}},WL=t=>{const e=HL[t.id];d.trace("Transforming node",t.diff,t,"translate("+(t.x-t.width/2-5)+", "+t.width/2+")");const n=8,i=t.diff||0;return t.clusterNode?e.attr("transform","translate("+(t.x+i-t.width/2)+", "+(t.y-t.height/2-n)+")"):e.attr("transform","translate("+t.x+", "+t.y+")"),i},YL={rect:(t,e)=>{d.trace("Creating subgraph rect for ",e.id,e);const n=t.insert("g").attr("class","cluster"+(e.class?" "+e.class:"")).attr("id",e.id),i=n.insert("rect",":first-child"),a=n.insert("g").attr("class","cluster-label"),r=a.node().appendChild(hL(e.labelText,e.labelStyle,void 0,!0));let o=r.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=r.children[0],e=un(r);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}const s=0*e.padding,c=s/2,l=e.width<=o.width+s?o.width+s:e.width;e.width<=o.width+s?e.diff=(o.width-e.width)/2-e.padding/2:e.diff=-e.padding/2,d.trace("Data ",e,JSON.stringify(e)),i.attr("style",e.style).attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-l/2).attr("y",e.y-e.height/2-c).attr("width",l).attr("height",e.height+s),a.attr("transform","translate("+(e.x-o.width/2)+", "+(e.y-e.height/2)+")");const u=i.node().getBBox();return e.width=u.width,e.height=u.height,e.intersect=function(t){return BL(e,t)},n},roundedWithTitle:(t,e)=>{const n=t.insert("g").attr("class",e.classes).attr("id",e.id),i=n.insert("rect",":first-child"),a=n.insert("g").attr("class","cluster-label"),r=n.append("rect"),o=a.node().appendChild(hL(e.labelText,e.labelStyle,void 0,!0));let s=o.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=o.children[0],e=un(o);s=t.getBoundingClientRect(),e.attr("width",s.width),e.attr("height",s.height)}s=o.getBBox();const c=0*e.padding,l=c/2,u=e.width<=s.width+e.padding?s.width+e.padding:e.width;e.width<=s.width+e.padding?e.diff=(s.width+0*e.padding-e.width)/2:e.diff=-e.padding/2,i.attr("class","outer").attr("x",e.x-u/2-l).attr("y",e.y-e.height/2-l).attr("width",u+c).attr("height",e.height+c),r.attr("class","inner").attr("x",e.x-u/2-l).attr("y",e.y-e.height/2-l+s.height-1).attr("width",u+c).attr("height",e.height+c-s.height-3),a.attr("transform","translate("+(e.x-s.width/2)+", "+(e.y-e.height/2-e.padding/3+(Xd(Ry().flowchart.htmlLabels)?5:3))+")");const d=i.node().getBBox();return e.height=d.height,e.intersect=function(t){return BL(e,t)},n},noteGroup:(t,e)=>{const n=t.insert("g").attr("class","note-cluster").attr("id",e.id),i=n.insert("rect",":first-child"),a=0*e.padding,r=a/2;i.attr("rx",e.rx).attr("ry",e.ry).attr("x",e.x-e.width/2-r).attr("y",e.y-e.height/2-r).attr("width",e.width+a).attr("height",e.height+a).attr("fill","none");const o=i.node().getBBox();return e.width=o.width,e.height=o.height,e.intersect=function(t){return BL(e,t)},n},divider:(t,e)=>{const n=t.insert("g").attr("class",e.classes).attr("id",e.id),i=n.insert("rect",":first-child"),a=0*e.padding,r=a/2;i.attr("class","divider").attr("x",e.x-e.width/2-r).attr("y",e.y-e.height/2).attr("width",e.width+a).attr("height",e.height+a);const o=i.node().getBBox();return e.width=o.width,e.height=o.height,e.diff=-e.padding/2,e.intersect=function(t){return BL(e,t)},n}};let GL={};const ZL=(t,e)=>{d.trace("Inserting cluster");const n=e.shape||"rect";GL[e.id]=YL[n](t,e)},KL=()=>{GL={}};let XL={},JL={};const QL=()=>{XL={},JL={}},tO=(t,e)=>{const n=hL(e.label,e.labelStyle),i=t.insert("g").attr("class","edgeLabel"),a=i.insert("g").attr("class","label");a.node().appendChild(n);let r,o=n.getBBox();if(Xd(Ry().flowchart.htmlLabels)){const t=n.children[0],e=un(n);o=t.getBoundingClientRect(),e.attr("width",o.width),e.attr("height",o.height)}if(a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),XL[e.id]=i,e.width=o.width,e.height=o.height,e.startLabelLeft){const n=hL(e.startLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),JL[e.id]||(JL[e.id]={}),JL[e.id].startLeft=i,eO(r,e.startLabelLeft)}if(e.startLabelRight){const n=hL(e.startLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=i.node().appendChild(n),a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),JL[e.id]||(JL[e.id]={}),JL[e.id].startRight=i,eO(r,e.startLabelRight)}if(e.endLabelLeft){const n=hL(e.endLabelLeft,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),i.node().appendChild(n),JL[e.id]||(JL[e.id]={}),JL[e.id].endLeft=i,eO(r,e.endLabelLeft)}if(e.endLabelRight){const n=hL(e.endLabelRight,e.labelStyle),i=t.insert("g").attr("class","edgeTerminals"),a=i.insert("g").attr("class","inner");r=a.node().appendChild(n);const o=n.getBBox();a.attr("transform","translate("+-o.width/2+", "+-o.height/2+")"),i.node().appendChild(n),JL[e.id]||(JL[e.id]={}),JL[e.id].endRight=i,eO(r,e.endLabelRight)}return n};function eO(t,e){Ry().flowchart.htmlLabels&&t&&(t.style.width=9*e.length+"px",t.style.height="12px")}const nO=(t,e)=>{d.info("Moving label abc78 ",t.id,t.label,XL[t.id]);let n=e.updatedPath?e.updatedPath:e.originalPath;if(t.label){const i=XL[t.id];let a=t.x,r=t.y;if(n){const i=vm.calcLabelPosition(n);d.info("Moving label "+t.label+" from (",a,",",r,") to (",i.x,",",i.y,") abc78"),e.updatedPath&&(a=i.x,r=i.y)}i.attr("transform","translate("+a+", "+r+")")}if(t.startLabelLeft){const e=JL[t.id].startLeft;let i=t.x,a=t.y;if(n){const e=vm.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_left",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.startLabelRight){const e=JL[t.id].startRight;let i=t.x,a=t.y;if(n){const e=vm.calcTerminalLabelPosition(t.arrowTypeStart?10:0,"start_right",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.endLabelLeft){const e=JL[t.id].endLeft;let i=t.x,a=t.y;if(n){const e=vm.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_left",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}if(t.endLabelRight){const e=JL[t.id].endRight;let i=t.x,a=t.y;if(n){const e=vm.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,"end_right",n);i=e.x,a=e.y}e.attr("transform","translate("+i+", "+a+")")}},iO=(t,e)=>{const n=t.x,i=t.y,a=Math.abs(e.x-n),r=Math.abs(e.y-i),o=t.width/2,s=t.height/2;return a>=o||r>=s},aO=(t,e,n)=>{d.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(e)}\n insidePoint : ${JSON.stringify(n)}\n node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);const i=t.x,a=t.y,r=Math.abs(i-n.x),o=t.width/2;let s=n.x<e.x?o-r:o+r;const c=t.height/2,l=Math.abs(e.y-n.y),u=Math.abs(e.x-n.x);if(Math.abs(a-e.y)*o>Math.abs(i-e.x)*c){let t=n.y<e.y?e.y-c-a:a-c-e.y;s=u*t/l;const i={x:n.x<e.x?n.x+s:n.x-u+s,y:n.y<e.y?n.y+l-t:n.y-l+t};return 0===s&&(i.x=e.x,i.y=e.y),0===u&&(i.x=e.x),0===l&&(i.y=e.y),d.warn(`abc89 topp/bott calc, Q ${l}, q ${t}, R ${u}, r ${s}`,i),i}{s=n.x<e.x?e.x-o-i:i-o-e.x;let t=l*s/u,a=n.x<e.x?n.x+u-s:n.x-u+s,r=n.y<e.y?n.y+t:n.y-t;return d.warn(`sides calc abc89, Q ${l}, q ${t}, R ${u}, r ${s}`,{_x:a,_y:r}),0===s&&(a=e.x,r=e.y),0===u&&(a=e.x),0===l&&(r=e.y),{x:a,y:r}}},rO=(t,e)=>{d.warn("abc88 cutPathAtIntersect",t,e);let n=[],i=t[0],a=!1;return t.forEach((t=>{if(d.info("abc88 checking point",t,e),iO(e,t)||a)d.warn("abc88 outside",t,i),i=t,a||n.push(t);else{const r=aO(e,i,t);d.warn("abc88 inside",t,i,r),d.warn("abc88 intersection",r);let o=!1;n.forEach((t=>{o=o||t.x===r.x&&t.y===r.y})),n.some((t=>t.x===r.x&&t.y===r.y))?d.warn("abc88 no intersect",r,n):n.push(r),a=!0}})),d.warn("abc88 returning points",n),n},oO=function(t,e,n,i,a,r){let o=n.points,s=!1;const c=r.node(e.v);var l=r.node(e.w);d.info("abc88 InsertEdge: ",n),l.intersect&&c.intersect&&(o=o.slice(1,n.points.length-1),o.unshift(c.intersect(o[0])),d.info("Last point",o[o.length-1],l,l.intersect(o[o.length-1])),o.push(l.intersect(o[o.length-1]))),n.toCluster&&(d.info("to cluster abc88",i[n.toCluster]),o=rO(n.points,i[n.toCluster].node),s=!0),n.fromCluster&&(d.info("from cluster abc88",i[n.fromCluster]),o=rO(o.reverse(),i[n.fromCluster].node).reverse(),s=!0);const u=o.filter((t=>!Number.isNaN(t.y)));let h;h=("graph"===a||"flowchart"===a)&&n.curve||Kl;const f=$l().x((function(t){return t.x})).y((function(t){return t.y})).curve(h);let g;switch(n.thickness){case"normal":g="edge-thickness-normal";break;case"thick":g="edge-thickness-thick";break;default:g=""}switch(n.pattern){case"solid":g+=" edge-pattern-solid";break;case"dotted":g+=" edge-pattern-dotted";break;case"dashed":g+=" edge-pattern-dashed"}const p=t.append("path").attr("d",f(u)).attr("id",n.id).attr("class"," "+g+(n.classes?" "+n.classes:"")).attr("style",n.style);let b="";switch((Ry().flowchart.arrowMarkerAbsolute||Ry().state.arrowMarkerAbsolute)&&(b=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,b=b.replace(/\(/g,"\\("),b=b.replace(/\)/g,"\\)")),d.info("arrowTypeStart",n.arrowTypeStart),d.info("arrowTypeEnd",n.arrowTypeEnd),n.arrowTypeStart){case"arrow_cross":p.attr("marker-start","url("+b+"#"+a+"-crossStart)");break;case"arrow_point":p.attr("marker-start","url("+b+"#"+a+"-pointStart)");break;case"arrow_barb":p.attr("marker-start","url("+b+"#"+a+"-barbStart)");break;case"arrow_circle":p.attr("marker-start","url("+b+"#"+a+"-circleStart)");break;case"aggregation":p.attr("marker-start","url("+b+"#"+a+"-aggregationStart)");break;case"extension":p.attr("marker-start","url("+b+"#"+a+"-extensionStart)");break;case"composition":p.attr("marker-start","url("+b+"#"+a+"-compositionStart)");break;case"dependency":p.attr("marker-start","url("+b+"#"+a+"-dependencyStart)");break;case"lollipop":p.attr("marker-start","url("+b+"#"+a+"-lollipopStart)")}switch(n.arrowTypeEnd){case"arrow_cross":p.attr("marker-end","url("+b+"#"+a+"-crossEnd)");break;case"arrow_point":p.attr("marker-end","url("+b+"#"+a+"-pointEnd)");break;case"arrow_barb":p.attr("marker-end","url("+b+"#"+a+"-barbEnd)");break;case"arrow_circle":p.attr("marker-end","url("+b+"#"+a+"-circleEnd)");break;case"aggregation":p.attr("marker-end","url("+b+"#"+a+"-aggregationEnd)");break;case"extension":p.attr("marker-end","url("+b+"#"+a+"-extensionEnd)");break;case"composition":p.attr("marker-end","url("+b+"#"+a+"-compositionEnd)");break;case"dependency":p.attr("marker-end","url("+b+"#"+a+"-dependencyEnd)");break;case"lollipop":p.attr("marker-end","url("+b+"#"+a+"-lollipopEnd)")}let m={};return s&&(m.updatedPath=o),m.originalPath=n.points,m},sO=(t,e,n,i)=>{d.info("Graph in recursive render: XXX",aL(e),i);const a=e.graph().rankdir;d.trace("Dir in recursive render - dir:",a);const r=t.insert("g").attr("class","root");e.nodes()?d.info("Recursive render XXX",e.nodes()):d.info("No nodes found for",e),e.edges().length>0&&d.trace("Recursive edges",e.edge(e.edges()[0]));const o=r.insert("g").attr("class","clusters"),s=r.insert("g").attr("class","edgePaths"),c=r.insert("g").attr("class","edgeLabels"),l=r.insert("g").attr("class","nodes");e.nodes().forEach((function(t){const r=e.node(t);if(void 0!==i){const n=JSON.parse(JSON.stringify(i.clusterData));d.info("Setting data for cluster XXX (",t,") ",n,i),e.setNode(i.id,n),e.parent(t)||(d.trace("Setting parent",t,i.id),e.setParent(t,i.id,n))}if(d.info("(Insert) Node XXX"+t+": "+JSON.stringify(e.node(t))),r&&r.clusterNode){d.info("Cluster identified",t,r.width,e.node(t));const i=sO(l,r.graph,n,e.node(t)),a=i.elem;gL(r,a),r.diff=i.diff||0,d.info("Node bounds (abc123)",t,r,r.width,r.x,r.y),VL(a,r),d.warn("Recursive render complete ",a,r)}else e.children(t).length>0?(d.info("Cluster - the non recursive path XXX",t,r.id,r,e),d.info(kL(r.id,e)),bL[r.id]={id:kL(r.id,e),node:r}):(d.info("Node - the non recursive path",t,r.id,r),UL(l,e.node(t),a))})),e.edges().forEach((function(t){const n=e.edge(t.v,t.w,t.name);d.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),d.info("Edge "+t.v+" -> "+t.w+": ",t," ",JSON.stringify(e.edge(t))),d.info("Fix",bL,"ids:",t.v,t.w,"Translateing: ",bL[t.v],bL[t.w]),tO(c,n)})),e.edges().forEach((function(t){d.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t))})),d.info("#############################################"),d.info("### Layout ###"),d.info("#############################################"),d.info(e),yI(e),d.info("Graph after layout:",aL(e));let u=0;return AL(e).forEach((function(t){const n=e.node(t);d.info("Position "+t+": "+JSON.stringify(e.node(t))),d.info("Position "+t+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n&&n.clusterNode?WL(n):e.children(t).length>0?(ZL(o,n),bL[n.id].node=n):WL(n)})),e.edges().forEach((function(t){const i=e.edge(t);d.info("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(i),i);const a=oO(s,t,i,bL,n,e);nO(i,a)})),e.nodes().forEach((function(t){const n=e.node(t);d.info(t,n.type,n.diff),"group"===n.type&&(u=n.diff)})),{elem:r,diff:u}},cO=(t,e,n,i,a)=>{lL(t,n,i,a),qL(),QL(),KL(),vL(),d.warn("Graph at first:",aL(e)),CL(e),d.warn("Graph after:",aL(e)),sO(t,e,i)},lO=t=>Qd.sanitizeText(t,Ry());let uO={dividerMargin:10,padding:5,textHeight:10};const dO=function(t,e,n,i){const a=Object.keys(t);d.info("keys:",a),d.info(t),a.forEach((function(n){const a=t[n];let r="";a.cssClasses.length>0&&(r=r+" "+a.cssClasses.join(" "));const o={labelStyle:""};let s=void 0!==a.text?a.text:a.id,c=0,l="";a.type,l="class_box",e.setNode(a.id,{labelStyle:o.labelStyle,shape:l,labelText:lO(s),classData:a,rx:c,ry:c,class:r,style:o.style,id:a.id,domId:a.domId,tooltip:i.db.getTooltip(a.id)||"",haveCallback:a.haveCallback,link:a.link,width:"group"===a.type?500:void 0,type:a.type,padding:Ry().flowchart.padding}),d.info("setNode",{labelStyle:o.labelStyle,shape:l,labelText:s,rx:c,ry:c,class:r,style:o.style,id:a.id,width:"group"===a.type?500:void 0,type:a.type,padding:Ry().flowchart.padding})}))},hO=function(t,e,n,i){d.info(t),t.forEach((function(t,a){const r=t;let o="";const s={labelStyle:"",style:""};let c=r.text,l=0,u="note";if(e.setNode(r.id,{labelStyle:s.labelStyle,shape:u,labelText:lO(c),noteData:r,rx:l,ry:l,class:o,style:s.style,id:r.id,domId:r.id,tooltip:"",type:"note",padding:Ry().flowchart.padding}),d.info("setNode",{labelStyle:s.labelStyle,shape:u,labelText:c,rx:l,ry:l,style:s.style,id:r.id,type:"note",padding:Ry().flowchart.padding}),!r.class||!(r.class in i))return;const h=n+a,f={classes:"relation",pattern:"dotted"};f.id=`edgeNote${h}`,f.arrowhead="none",d.info(`Note edge: ${JSON.stringify(f)}, ${JSON.stringify(r)}`),f.startLabelRight="",f.endLabelLeft="",f.arrowTypeStart="none",f.arrowTypeEnd="none";let g="fill:none",p="";f.style=g,f.labelStyle=p,f.curve=Yb(uO.curve,Pl),e.setEdge(r.id,r.class,f,h)}))},fO=function(t,e){const n=Ry().flowchart;let i=0;t.forEach((function(a){i++;const r={classes:"relation"};r.pattern=1==a.relation.lineType?"dashed":"solid",r.id="id"+i,"arrow_open"===a.type?r.arrowhead="none":r.arrowhead="normal",d.info(r,a),r.startLabelRight="none"===a.relationTitle1?"":a.relationTitle1,r.endLabelLeft="none"===a.relationTitle2?"":a.relationTitle2,r.arrowTypeStart=gO(a.relation.type1),r.arrowTypeEnd=gO(a.relation.type2);let o="",s="";if(void 0!==a.style){const t=em(a.style);o=t.style,s=t.labelStyle}else o="fill:none";r.style=o,r.labelStyle=s,void 0!==a.interpolate?r.curve=Yb(a.interpolate,Pl):void 0!==t.defaultInterpolate?r.curve=Yb(t.defaultInterpolate,Pl):r.curve=Yb(n.curve,Pl),a.text=a.title,void 0===a.text?void 0!==a.style&&(r.arrowheadStyle="fill: #333"):(r.arrowheadStyle="fill: #333",r.labelpos="c",Ry().flowchart.htmlLabels?(r.labelType="html",r.label='<span class="edgeLabel">'+a.text+"</span>"):(r.labelType="text",r.label=a.text.replace(Qd.lineBreakRegex,"\n"),void 0===a.style&&(r.style=r.style||"stroke: #333; stroke-width: 1.5px;fill:none"),r.labelStyle=r.labelStyle.replace("color:","fill:"))),e.setEdge(a.id1,a.id2,r,i)}))};function gO(t){let e;switch(t){case 0:e="aggregation";break;case 1:e="extension";break;case 2:e="composition";break;case 3:e="dependency";break;case 4:e="lollipop";break;default:e="none"}return e}const pO={setConf:function(t){Object.keys(t).forEach((function(e){uO[e]=t[e]}))},draw:function(t,e,n,i){d.info("Drawing class - ",e);const a=Ry().flowchart,r=Ry().securityLevel;d.info("config:",a);const o=a.nodeSpacing||50,s=a.rankSpacing||50,c=new hA({multigraph:!0,compound:!0}).setGraph({rankdir:i.db.getDirection(),nodesep:o,ranksep:s,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}})),l=i.db.getClasses(),u=i.db.getRelations(),h=i.db.getNotes();let f;d.info(u),dO(l,c,e,i),fO(u,c),hO(h,c,u.length+1,l),"sandbox"===r&&(f=un("#i"+e));const g=un("sandbox"===r?f.nodes()[0].contentDocument.body:"body"),p=g.select(`[id="${e}"]`),b=g.select("#"+e+" g");if(cO(b,c,["aggregation","extension","composition","dependency","lollipop"],"classDiagram",e),vm.insertTitle(p,"classTitleText",a.titleTopMargin,i.db.getDiagramTitle()),Oy(c,p,a.diagramPadding,a.useMaxWidth),!a.htmlLabels){const t="sandbox"===r?f.nodes()[0].contentDocument:document,n=t.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const e of n){const n=e.getBBox(),i=t.createElementNS("http://www.w3.org/2000/svg","rect");i.setAttribute("rx",0),i.setAttribute("ry",0),i.setAttribute("width",n.width),i.setAttribute("height",n.height),e.insertBefore(i,e.firstChild)}}}};var bO=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,5],i=[6,9,11,23,25,27,29,30,31,51],a=[1,17],r=[1,18],o=[1,19],s=[1,20],c=[1,21],l=[1,22],u=[1,25],d=[1,30],h=[1,31],f=[1,32],g=[1,33],p=[6,9,11,15,20,23,25,27,29,30,31,44,45,46,47,51],b=[1,45],m=[30,31,48,49],y=[4,6,9,11,23,25,27,29,30,31,51],v=[44,45,46,47],w=[22,37],x=[1,65],R=[1,64],_=[22,37,39,41],k={trace:function(){},yy:{},symbols_:{error:2,start:3,ER_DIAGRAM:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,entityName:17,relSpec:18,role:19,BLOCK_START:20,attributes:21,BLOCK_STOP:22,title:23,title_value:24,acc_title:25,acc_title_value:26,acc_descr:27,acc_descr_value:28,acc_descr_multiline_value:29,ALPHANUM:30,ENTITY_NAME:31,attribute:32,attributeType:33,attributeName:34,attributeKeyTypeList:35,attributeComment:36,ATTRIBUTE_WORD:37,attributeKeyType:38,COMMA:39,ATTRIBUTE_KEY:40,COMMENT:41,cardinality:42,relType:43,ZERO_OR_ONE:44,ZERO_OR_MORE:45,ONE_OR_MORE:46,ONLY_ONE:47,NON_IDENTIFYING:48,IDENTIFYING:49,WORD:50,open_directive:51,type_directive:52,arg_directive:53,close_directive:54,$accept:0,$end:1},terminals_:{2:"error",4:"ER_DIAGRAM",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",20:"BLOCK_START",22:"BLOCK_STOP",23:"title",24:"title_value",25:"acc_title",26:"acc_title_value",27:"acc_descr",28:"acc_descr_value",29:"acc_descr_multiline_value",30:"ALPHANUM",31:"ENTITY_NAME",37:"ATTRIBUTE_WORD",39:"COMMA",40:"ATTRIBUTE_KEY",41:"COMMENT",44:"ZERO_OR_ONE",45:"ZERO_OR_MORE",46:"ONE_OR_MORE",47:"ONLY_ONE",48:"NON_IDENTIFYING",49:"IDENTIFYING",50:"WORD",51:"open_directive",52:"type_directive",53:"arg_directive",54:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,5],[10,4],[10,3],[10,1],[10,2],[10,2],[10,2],[10,1],[17,1],[17,1],[21,1],[21,2],[32,2],[32,3],[32,3],[32,4],[33,1],[34,1],[35,1],[35,3],[38,1],[36,1],[18,3],[42,1],[42,1],[42,1],[42,1],[43,1],[43,1],[19,1],[19,1],[19,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 1:break;case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:case 20:case 43:case 28:case 29:case 32:this.$=r[s];break;case 12:i.addEntity(r[s-4]),i.addEntity(r[s-2]),i.addRelationship(r[s-4],r[s],r[s-2],r[s-3]);break;case 13:i.addEntity(r[s-3]),i.addAttributes(r[s-3],r[s-1]);break;case 14:i.addEntity(r[s-2]);break;case 15:i.addEntity(r[s]);break;case 16:case 17:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 18:case 19:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 21:case 41:case 42:case 33:this.$=r[s].replace(/"/g,"");break;case 22:case 30:this.$=[r[s]];break;case 23:r[s].push(r[s-1]),this.$=r[s];break;case 24:this.$={attributeType:r[s-1],attributeName:r[s]};break;case 25:this.$={attributeType:r[s-2],attributeName:r[s-1],attributeKeyTypeList:r[s]};break;case 26:this.$={attributeType:r[s-2],attributeName:r[s-1],attributeComment:r[s]};break;case 27:this.$={attributeType:r[s-3],attributeName:r[s-2],attributeKeyTypeList:r[s-1],attributeComment:r[s]};break;case 31:r[s-2].push(r[s]),this.$=r[s-2];break;case 34:this.$={cardA:r[s],relType:r[s-1],cardB:r[s-2]};break;case 35:this.$=i.Cardinality.ZERO_OR_ONE;break;case 36:this.$=i.Cardinality.ZERO_OR_MORE;break;case 37:this.$=i.Cardinality.ONE_OR_MORE;break;case 38:this.$=i.Cardinality.ONLY_ONE;break;case 39:this.$=i.Identification.NON_IDENTIFYING;break;case 40:this.$=i.Identification.IDENTIFYING;break;case 44:i.parseDirective("%%{","open_directive");break;case 45:i.parseDirective(r[s],"type_directive");break;case 46:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 47:i.parseDirective("}%%","close_directive","er")}},table:[{3:1,4:e,7:3,12:4,51:n},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,51:n},{13:8,52:[1,9]},{52:[2,44]},{6:[1,10],7:15,8:11,9:[1,12],10:13,11:[1,14],12:4,17:16,23:a,25:r,27:o,29:s,30:c,31:l,51:n},{1:[2,2]},{14:23,15:[1,24],54:u},t([15,54],[2,45]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:15,10:26,12:4,17:16,23:a,25:r,27:o,29:s,30:c,31:l,51:n},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),t(i,[2,15],{18:27,42:29,20:[1,28],44:d,45:h,46:f,47:g}),{24:[1,34]},{26:[1,35]},{28:[1,36]},t(i,[2,19]),t(p,[2,20]),t(p,[2,21]),{11:[1,37]},{16:38,53:[1,39]},{11:[2,47]},t(i,[2,5]),{17:40,30:c,31:l},{21:41,22:[1,42],32:43,33:44,37:b},{43:46,48:[1,47],49:[1,48]},t(m,[2,35]),t(m,[2,36]),t(m,[2,37]),t(m,[2,38]),t(i,[2,16]),t(i,[2,17]),t(i,[2,18]),t(y,[2,9]),{14:49,54:u},{54:[2,46]},{15:[1,50]},{22:[1,51]},t(i,[2,14]),{21:52,22:[2,22],32:43,33:44,37:b},{34:53,37:[1,54]},{37:[2,28]},{42:55,44:d,45:h,46:f,47:g},t(v,[2,39]),t(v,[2,40]),{11:[1,56]},{19:57,30:[1,60],31:[1,59],50:[1,58]},t(i,[2,13]),{22:[2,23]},t(w,[2,24],{35:61,36:62,38:63,40:x,41:R}),t([22,37,40,41],[2,29]),t([30,31],[2,34]),t(y,[2,10]),t(i,[2,12]),t(i,[2,41]),t(i,[2,42]),t(i,[2,43]),t(w,[2,25],{36:66,39:[1,67],41:R}),t(w,[2,26]),t(_,[2,30]),t(w,[2,33]),t(_,[2,32]),t(w,[2,27]),{38:68,40:x},t(_,[2,31])],defaultActions:{5:[2,44],7:[2,2],25:[2,47],39:[2,46],45:[2,28],52:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},E={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("acc_title"),25;case 1:return this.popState(),"acc_title_value";case 2:return this.begin("acc_descr"),27;case 3:return this.popState(),"acc_descr_value";case 4:this.begin("acc_descr_multiline");break;case 5:this.popState();break;case 6:return"acc_descr_multiline_value";case 7:return this.begin("open_directive"),51;case 8:return this.begin("type_directive"),52;case 9:return this.popState(),this.begin("arg_directive"),15;case 10:return this.popState(),this.popState(),54;case 11:return 53;case 12:case 13:case 15:case 22:case 27:break;case 14:return 11;case 16:return 9;case 17:return 31;case 18:return 50;case 19:return 4;case 20:return this.begin("block"),20;case 21:return 39;case 23:return 40;case 24:case 25:return 37;case 26:return 41;case 28:return this.popState(),22;case 29:case 58:return e.yytext[0];case 30:case 34:case 35:case 48:return 44;case 31:case 32:case 33:case 41:case 43:case 50:return 46;case 36:case 37:case 38:case 39:case 40:case 42:case 49:return 45;case 44:case 45:case 46:case 47:return 47;case 51:case 54:case 55:case 56:return 48;case 52:case 53:return 49;case 57:return 30;case 59:return 6}},rules:[/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:[\s]+)/i,/^(?:"[^"%\r\n\v\b\\]+")/i,/^(?:"[^"]*")/i,/^(?:erDiagram\b)/i,/^(?:\{)/i,/^(?:,)/i,/^(?:\s+)/i,/^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i,/^(?:(.*?)[~](.*?)*[~])/i,/^(?:[A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i,/^(?:"[^"]*")/i,/^(?:[\n]+)/i,/^(?:\})/i,/^(?:.)/i,/^(?:one or zero\b)/i,/^(?:one or more\b)/i,/^(?:one or many\b)/i,/^(?:1\+)/i,/^(?:\|o\b)/i,/^(?:zero or one\b)/i,/^(?:zero or more\b)/i,/^(?:zero or many\b)/i,/^(?:0\+)/i,/^(?:\}o\b)/i,/^(?:many\(0\))/i,/^(?:many\(1\))/i,/^(?:many\b)/i,/^(?:\}\|)/i,/^(?:one\b)/i,/^(?:only one\b)/i,/^(?:1\b)/i,/^(?:\|\|)/i,/^(?:o\|)/i,/^(?:o\{)/i,/^(?:\|\{)/i,/^(?:\.\.)/i,/^(?:--)/i,/^(?:to\b)/i,/^(?:optionally to\b)/i,/^(?:\.-)/i,/^(?:-\.)/i,/^(?:[A-Za-z][A-Za-z0-9\-_]*)/i,/^(?:.)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[5,6],inclusive:!1},acc_descr:{rules:[3],inclusive:!1},acc_title:{rules:[1],inclusive:!1},open_directive:{rules:[8],inclusive:!1},type_directive:{rules:[9,10],inclusive:!1},arg_directive:{rules:[10,11],inclusive:!1},block:{rules:[21,22,23,24,25,26,27,28,29],inclusive:!1},INITIAL:{rules:[0,2,4,7,12,13,14,15,16,17,18,19,20,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59],inclusive:!0}}};function C(){this.yy={}}return k.lexer=E,C.prototype=k,k.Parser=C,new C}();bO.parser=bO;const mO=bO,yO=t=>null!==t.match(/^\s*erDiagram/);let vO={},wO=[];const xO=function(t){return void 0===vO[t]&&(vO[t]={attributes:[]},d.info("Added new entity :",t)),vO[t]},RO={Cardinality:{ZERO_OR_ONE:"ZERO_OR_ONE",ZERO_OR_MORE:"ZERO_OR_MORE",ONE_OR_MORE:"ONE_OR_MORE",ONLY_ONE:"ONLY_ONE"},Identification:{NON_IDENTIFYING:"NON_IDENTIFYING",IDENTIFYING:"IDENTIFYING"},parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().er,addEntity:xO,addAttributes:function(t,e){let n,i=xO(t);for(n=e.length-1;n>=0;n--)i.attributes.push(e[n]),d.debug("Added attribute ",e[n].attributeName)},getEntities:()=>vO,addRelationship:function(t,e,n,i){let a={entityA:t,roleA:e,entityB:n,relSpec:i};wO.push(a),d.debug("Added new relationship :",a)},getRelationships:()=>wO,clear:function(){vO={},wO=[],Qy()},setAccTitle:tv,getAccTitle:ev,setAccDescription:nv,getAccDescription:iv,setDiagramTitle:av,getDiagramTitle:rv},_O={ONLY_ONE_START:"ONLY_ONE_START",ONLY_ONE_END:"ONLY_ONE_END",ZERO_OR_ONE_START:"ZERO_OR_ONE_START",ZERO_OR_ONE_END:"ZERO_OR_ONE_END",ONE_OR_MORE_START:"ONE_OR_MORE_START",ONE_OR_MORE_END:"ONE_OR_MORE_END",ZERO_OR_MORE_START:"ZERO_OR_MORE_START",ZERO_OR_MORE_END:"ZERO_OR_MORE_END"},kO={ERMarkers:_O,insertMarkers:function(t,e){let n;t.append("defs").append("marker").attr("id",_O.ONLY_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18 M15,0 L15,18"),t.append("defs").append("marker").attr("id",_O.ONLY_ONE_END).attr("refX",18).attr("refY",9).attr("markerWidth",18).attr("markerHeight",18).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,0 L3,18 M9,0 L9,18"),n=t.append("defs").append("marker").attr("id",_O.ZERO_OR_ONE_START).attr("refX",0).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",21).attr("cy",9).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M9,0 L9,18"),n=t.append("defs").append("marker").attr("id",_O.ZERO_OR_ONE_END).attr("refX",30).attr("refY",9).attr("markerWidth",30).attr("markerHeight",18).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",9).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,0 L21,18"),t.append("defs").append("marker").attr("id",_O.ONE_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27"),t.append("defs").append("marker").attr("id",_O.ONE_OR_MORE_END).attr("refX",27).attr("refY",18).attr("markerWidth",45).attr("markerHeight",36).attr("orient","auto").append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18"),n=t.append("defs").append("marker").attr("id",_O.ZERO_OR_MORE_START).attr("refX",18).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",48).attr("cy",18).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M0,18 Q18,0 36,18 Q18,36 0,18"),n=t.append("defs").append("marker").attr("id",_O.ZERO_OR_MORE_END).attr("refX",39).attr("refY",18).attr("markerWidth",57).attr("markerHeight",36).attr("orient","auto"),n.append("circle").attr("stroke",e.stroke).attr("fill","white").attr("cx",9).attr("cy",18).attr("r",6),n.append("path").attr("stroke",e.stroke).attr("fill","none").attr("d","M21,18 Q39,0 57,18 Q39,36 21,18")}},EO=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function CO(t){return"string"==typeof t&&EO.test(t)}const SO=[];for(let t=0;t<256;++t)SO.push((t+256).toString(16).slice(1));function TO(t,e=0){return(SO[t[e+0]]+SO[t[e+1]]+SO[t[e+2]]+SO[t[e+3]]+"-"+SO[t[e+4]]+SO[t[e+5]]+"-"+SO[t[e+6]]+SO[t[e+7]]+"-"+SO[t[e+8]]+SO[t[e+9]]+"-"+SO[t[e+10]]+SO[t[e+11]]+SO[t[e+12]]+SO[t[e+13]]+SO[t[e+14]]+SO[t[e+15]]).toLowerCase()}function AO(t){if(!CO(t))throw TypeError("Invalid UUID");let e;const n=new Uint8Array(16);return n[0]=(e=parseInt(t.slice(0,8),16))>>>24,n[1]=e>>>16&255,n[2]=e>>>8&255,n[3]=255&e,n[4]=(e=parseInt(t.slice(9,13),16))>>>8,n[5]=255&e,n[6]=(e=parseInt(t.slice(14,18),16))>>>8,n[7]=255&e,n[8]=(e=parseInt(t.slice(19,23),16))>>>8,n[9]=255&e,n[10]=(e=parseInt(t.slice(24,36),16))/1099511627776&255,n[11]=e/4294967296&255,n[12]=e>>>24&255,n[13]=e>>>16&255,n[14]=e>>>8&255,n[15]=255&e,n}function DO(t){t=unescape(encodeURIComponent(t));const e=[];for(let n=0;n<t.length;++n)e.push(t.charCodeAt(n));return e}const IO="6ba7b810-9dad-11d1-80b4-00c04fd430c8",LO="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function OO(t,e,n){function i(t,i,a,r){var o;if("string"==typeof t&&(t=DO(t)),"string"==typeof i&&(i=AO(i)),16!==(null===(o=i)||void 0===o?void 0:o.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let s=new Uint8Array(16+t.length);if(s.set(i),s.set(t,i.length),s=n(s),s[6]=15&s[6]|e,s[8]=63&s[8]|128,a){r=r||0;for(let t=0;t<16;++t)a[r+t]=s[t];return a}return TO(s)}try{i.name=t}catch{}return i.DNS=IO,i.URL=LO,i}function MO(t,e,n,i){switch(t){case 0:return e&n^~e&i;case 1:case 3:return e^n^i;case 2:return e&n^e&i^n&i}}function NO(t,e){return t<<e|t>>>32-e}function BO(t){const e=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof t){const e=unescape(encodeURIComponent(t));t=[];for(let n=0;n<e.length;++n)t.push(e.charCodeAt(n))}else Array.isArray(t)||(t=Array.prototype.slice.call(t));t.push(128);const i=t.length/4+2,a=Math.ceil(i/16),r=new Array(a);for(let o=0;o<a;++o){const e=new Uint32Array(16);for(let n=0;n<16;++n)e[n]=t[64*o+4*n]<<24|t[64*o+4*n+1]<<16|t[64*o+4*n+2]<<8|t[64*o+4*n+3];r[o]=e}r[a-1][14]=8*(t.length-1)/Math.pow(2,32),r[a-1][14]=Math.floor(r[a-1][14]),r[a-1][15]=8*(t.length-1)&4294967295;for(let o=0;o<a;++o){const t=new Uint32Array(80);for(let e=0;e<16;++e)t[e]=r[o][e];for(let e=16;e<80;++e)t[e]=NO(t[e-3]^t[e-8]^t[e-14]^t[e-16],1);let i=n[0],a=n[1],s=n[2],c=n[3],l=n[4];for(let n=0;n<80;++n){const r=Math.floor(n/20),o=NO(i,5)+MO(r,a,s,c)+l+e[r]+t[n]>>>0;l=c,c=s,s=NO(a,30)>>>0,a=i,i=o}n[0]=n[0]+i>>>0,n[1]=n[1]+a>>>0,n[2]=n[2]+s>>>0,n[3]=n[3]+c>>>0,n[4]=n[4]+l>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]}const PO=OO("v5",80,BO),FO=/[^\dA-Za-z](\W)*/g;let jO={},$O=new Map;const zO=(t,e,n)=>{const i=jO.entityPadding/3,a=jO.entityPadding/3,r=.85*jO.fontSize,o=e.node().getBBox(),s=[];let c=!1,l=!1,u=0,d=0,h=0,f=0,g=o.height+2*i,p=1;n.forEach((t=>{void 0!==t.attributeKeyTypeList&&t.attributeKeyTypeList.length>0&&(c=!0),void 0!==t.attributeComment&&(l=!0)})),n.forEach((n=>{const a=`${e.node().id}-attr-${p}`;let o=0;const b=Jd(n.attributeType),m=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-type`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Ry().fontFamily).style("font-size",r+"px").text(b),y=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-name`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Ry().fontFamily).style("font-size",r+"px").text(n.attributeName),v={};v.tn=m,v.nn=y;const w=m.node().getBBox(),x=y.node().getBBox();if(u=Math.max(u,w.width),d=Math.max(d,x.width),o=Math.max(w.height,x.height),c){const e=void 0!==n.attributeKeyTypeList?n.attributeKeyTypeList.join(","):"",i=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-key`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Ry().fontFamily).style("font-size",r+"px").text(e);v.kn=i;const s=i.node().getBBox();h=Math.max(h,s.width),o=Math.max(o,s.height)}if(l){const e=t.append("text").classed("er entityLabel",!0).attr("id",`${a}-comment`).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","left").style("font-family",Ry().fontFamily).style("font-size",r+"px").text(n.attributeComment||"");v.cn=e;const i=e.node().getBBox();f=Math.max(f,i.width),o=Math.max(o,i.height)}v.height=o,s.push(v),g+=o+2*i,p+=1}));let b=4;c&&(b+=2),l&&(b+=2);const m=u+d+h+f,y={width:Math.max(jO.minEntityWidth,Math.max(o.width+2*jO.entityPadding,m+a*b)),height:n.length>0?g:Math.max(jO.minEntityHeight,o.height+2*jO.entityPadding)};if(n.length>0){const n=Math.max(0,(y.width-m-a*b)/(b/2));e.attr("transform","translate("+y.width/2+","+(i+o.height/2)+")");let r=o.height+2*i,g="attributeBoxOdd";s.forEach((e=>{const o=r+i+e.height/2;e.tn.attr("transform","translate("+a+","+o+")");const s=t.insert("rect","#"+e.tn.node().id).classed(`er ${g}`,!0).attr("x",0).attr("y",r).attr("width",u+2*a+n).attr("height",e.height+2*i),p=parseFloat(s.attr("x"))+parseFloat(s.attr("width"));e.nn.attr("transform","translate("+(p+a)+","+o+")");const b=t.insert("rect","#"+e.nn.node().id).classed(`er ${g}`,!0).attr("x",p).attr("y",r).attr("width",d+2*a+n).attr("height",e.height+2*i);let m=parseFloat(b.attr("x"))+parseFloat(b.attr("width"));if(c){e.kn.attr("transform","translate("+(m+a)+","+o+")");const s=t.insert("rect","#"+e.kn.node().id).classed(`er ${g}`,!0).attr("x",m).attr("y",r).attr("width",h+2*a+n).attr("height",e.height+2*i);m=parseFloat(s.attr("x"))+parseFloat(s.attr("width"))}l&&(e.cn.attr("transform","translate("+(m+a)+","+o+")"),t.insert("rect","#"+e.cn.node().id).classed(`er ${g}`,"true").attr("x",m).attr("y",r).attr("width",f+2*a+n).attr("height",e.height+2*i)),r+=e.height+2*i,g="attributeBoxOdd"===g?"attributeBoxEven":"attributeBoxOdd"}))}else y.height=Math.max(jO.minEntityHeight,g),e.attr("transform","translate("+y.width/2+","+y.height/2+")");return y},HO=function(t,e,n){let i;return Object.keys(e).forEach((function(a){const r=ZO(a,"entity");$O.set(a,r);const o=t.append("g").attr("id",r);i=void 0===i?r:i;const s="text-"+r,c=o.append("text").classed("er entityLabel",!0).attr("id",s).attr("x",0).attr("y",0).style("dominant-baseline","middle").style("text-anchor","middle").style("font-family",Ry().fontFamily).style("font-size",jO.fontSize+"px").text(a),{width:l,height:u}=zO(o,c,e[a].attributes),d=o.insert("rect","#"+s).classed("er entityBox",!0).attr("x",0).attr("y",0).attr("width",l).attr("height",u).node().getBBox();n.setNode(r,{width:d.width,height:d.height,shape:"rect",id:r})})),i},UO=function(t,e){e.nodes().forEach((function(n){void 0!==n&&void 0!==e.node(n)&&t.select("#"+n).attr("transform","translate("+(e.node(n).x-e.node(n).width/2)+","+(e.node(n).y-e.node(n).height/2)+" )")}))},VO=function(t){return(t.entityA+t.roleA+t.entityB).replace(/\s/g,"")},qO=function(t,e){return t.forEach((function(t){e.setEdge($O.get(t.entityA),$O.get(t.entityB),{relationship:t},VO(t))})),t};let WO=0;const YO=function(t,e,n,i,a){WO++;const r=n.edge($O.get(e.entityA),$O.get(e.entityB),VO(e)),o=$l().x((function(t){return t.x})).y((function(t){return t.y})).curve(Kl),s=t.insert("path","#"+i).classed("er relationshipLine",!0).attr("d",o(r.points)).style("stroke",jO.stroke).style("fill","none");e.relSpec.relType===a.db.Identification.NON_IDENTIFYING&&s.attr("stroke-dasharray","8,8");let c="";switch(jO.arrowMarkerAbsolute&&(c=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,c=c.replace(/\(/g,"\\("),c=c.replace(/\)/g,"\\)")),e.relSpec.cardA){case a.db.Cardinality.ZERO_OR_ONE:s.attr("marker-end","url("+c+"#"+kO.ERMarkers.ZERO_OR_ONE_END+")");break;case a.db.Cardinality.ZERO_OR_MORE:s.attr("marker-end","url("+c+"#"+kO.ERMarkers.ZERO_OR_MORE_END+")");break;case a.db.Cardinality.ONE_OR_MORE:s.attr("marker-end","url("+c+"#"+kO.ERMarkers.ONE_OR_MORE_END+")");break;case a.db.Cardinality.ONLY_ONE:s.attr("marker-end","url("+c+"#"+kO.ERMarkers.ONLY_ONE_END+")")}switch(e.relSpec.cardB){case a.db.Cardinality.ZERO_OR_ONE:s.attr("marker-start","url("+c+"#"+kO.ERMarkers.ZERO_OR_ONE_START+")");break;case a.db.Cardinality.ZERO_OR_MORE:s.attr("marker-start","url("+c+"#"+kO.ERMarkers.ZERO_OR_MORE_START+")");break;case a.db.Cardinality.ONE_OR_MORE:s.attr("marker-start","url("+c+"#"+kO.ERMarkers.ONE_OR_MORE_START+")");break;case a.db.Cardinality.ONLY_ONE:s.attr("marker-start","url("+c+"#"+kO.ERMarkers.ONLY_ONE_START+")")}const l=s.node().getTotalLength(),u=s.node().getPointAtLength(.5*l),d="rel"+WO,h=t.append("text").classed("er relationshipLabel",!0).attr("id",d).attr("x",u.x).attr("y",u.y).style("text-anchor","middle").style("dominant-baseline","middle").style("font-family",Ry().fontFamily).style("font-size",jO.fontSize+"px").text(e.roleA).node().getBBox();t.insert("rect","#"+d).classed("er relationshipLabelBox",!0).attr("x",u.x-h.width/2).attr("y",u.y-h.height/2).attr("width",h.width).attr("height",h.height)},GO="28e9f9db-3c8d-5aa5-9faf-44286ae5937c";function ZO(t="",e=""){const n=t.replace(FO,"");return`${KO(e)}${KO(n)}${PO(t,GO)}`}function KO(t=""){return t.length>0?`${t}-`:""}const XO={setConf:function(t){const e=Object.keys(t);for(const n of e)jO[n]=t[n]},draw:function(t,e,n,i){jO=Ry().er,d.info("Drawing ER diagram");const a=Ry().securityLevel;let r;"sandbox"===a&&(r=un("#i"+e));const o=un("sandbox"===a?r.nodes()[0].contentDocument.body:"body").select(`[id='${e}']`);let s;kO.insertMarkers(o,jO),s=new hA({multigraph:!0,directed:!0,compound:!1}).setGraph({rankdir:jO.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));const c=HO(o,i.db.getEntities(),s),l=qO(i.db.getRelationships(),s);yI(s),UO(o,s),l.forEach((function(t){YO(o,t,s,c,i)}));const u=jO.diagramPadding;vm.insertTitle(o,"entityTitleText",jO.titleTopMargin,i.db.getDiagramTitle());const h=o.node().getBBox(),f=h.width+2*u,g=h.height+2*u;Ly(o,g,f,jO.useMaxWidth),o.attr("viewBox",`${h.x-u} ${h.y-u} ${f} ${g}`)}};var JO=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,9],n=[1,7],i=[1,6],a=[1,8],r=[1,20,21,22,23,38,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],o=[2,10],s=[1,20],c=[1,21],l=[1,22],u=[1,23],d=[1,30],h=[1,32],f=[1,33],g=[1,34],p=[1,62],b=[1,48],m=[1,52],y=[1,36],v=[1,37],w=[1,38],x=[1,39],R=[1,40],_=[1,56],k=[1,63],E=[1,51],C=[1,53],S=[1,55],T=[1,59],A=[1,60],D=[1,41],I=[1,42],L=[1,43],O=[1,44],M=[1,61],N=[1,50],B=[1,54],P=[1,57],F=[1,58],j=[1,49],$=[1,66],z=[1,71],H=[1,20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],U=[1,75],V=[1,74],q=[1,76],W=[20,21,23,81,82],Y=[1,99],G=[1,104],Z=[1,107],K=[1,108],X=[1,101],J=[1,106],Q=[1,109],tt=[1,102],et=[1,114],nt=[1,113],it=[1,103],at=[1,105],rt=[1,110],ot=[1,111],st=[1,112],ct=[1,115],lt=[20,21,22,23,81,82],ut=[20,21,22,23,53,81,82],dt=[20,21,22,23,40,52,53,55,57,59,61,63,65,66,67,69,71,73,74,76,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],ht=[20,21,23],ft=[20,21,23,52,66,67,81,82,91,95,105,106,109,111,112,122,123,124,125,126,127],gt=[1,12,20,21,22,23,24,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],pt=[52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],bt=[1,149],mt=[1,157],yt=[1,158],vt=[1,159],wt=[1,160],xt=[1,144],Rt=[1,145],_t=[1,141],kt=[1,152],Et=[1,153],Ct=[1,154],St=[1,155],Tt=[1,156],At=[1,161],Dt=[1,162],It=[1,147],Lt=[1,150],Ot=[1,146],Mt=[1,143],Nt=[20,21,22,23,38,42,44,46,48,52,66,67,86,87,88,89,90,91,95,105,106,109,111,112,118,119,120,121,122,123,124,125,126,127],Bt=[1,165],Pt=[20,21,22,23,26,52,66,67,91,105,106,109,111,112,122,123,124,125,126,127],Ft=[20,21,22,23,24,26,38,40,41,42,52,56,58,60,62,64,66,67,68,70,72,73,75,77,81,82,86,87,88,89,90,91,92,95,105,106,109,111,112,113,114,122,123,124,125,126,127],jt=[12,21,22,24],$t=[22,106],zt=[1,250],Ht=[1,245],Ut=[1,246],Vt=[1,254],qt=[1,251],Wt=[1,248],Yt=[1,247],Gt=[1,249],Zt=[1,252],Kt=[1,253],Xt=[1,255],Jt=[1,273],Qt=[20,21,23,106],te=[20,21,22,23,66,67,86,102,105,106,109,110,111,112,113],ee={trace:function(){},yy:{},symbols_:{error:2,start:3,mermaidDoc:4,directive:5,openDirective:6,typeDirective:7,closeDirective:8,separator:9,":":10,argDirective:11,open_directive:12,type_directive:13,arg_directive:14,close_directive:15,graphConfig:16,document:17,line:18,statement:19,SEMI:20,NEWLINE:21,SPACE:22,EOF:23,GRAPH:24,NODIR:25,DIR:26,FirstStmtSeperator:27,ending:28,endToken:29,spaceList:30,spaceListNewline:31,verticeStatement:32,styleStatement:33,linkStyleStatement:34,classDefStatement:35,classStatement:36,clickStatement:37,subgraph:38,text:39,SQS:40,SQE:41,end:42,direction:43,acc_title:44,acc_title_value:45,acc_descr:46,acc_descr_value:47,acc_descr_multiline_value:48,link:49,node:50,vertex:51,AMP:52,STYLE_SEPARATOR:53,idString:54,DOUBLECIRCLESTART:55,DOUBLECIRCLEEND:56,PS:57,PE:58,"(-":59,"-)":60,STADIUMSTART:61,STADIUMEND:62,SUBROUTINESTART:63,SUBROUTINEEND:64,VERTEX_WITH_PROPS_START:65,ALPHA:66,COLON:67,PIPE:68,CYLINDERSTART:69,CYLINDEREND:70,DIAMOND_START:71,DIAMOND_STOP:72,TAGEND:73,TRAPSTART:74,TRAPEND:75,INVTRAPSTART:76,INVTRAPEND:77,linkStatement:78,arrowText:79,TESTSTR:80,START_LINK:81,LINK:82,textToken:83,STR:84,keywords:85,STYLE:86,LINKSTYLE:87,CLASSDEF:88,CLASS:89,CLICK:90,DOWN:91,UP:92,textNoTags:93,textNoTagsToken:94,DEFAULT:95,stylesOpt:96,alphaNum:97,CALLBACKNAME:98,CALLBACKARGS:99,HREF:100,LINK_TARGET:101,HEX:102,numList:103,INTERPOLATE:104,NUM:105,COMMA:106,style:107,styleComponent:108,MINUS:109,UNIT:110,BRKT:111,DOT:112,PCT:113,TAGSTART:114,alphaNumToken:115,idStringToken:116,alphaNumStatement:117,direction_tb:118,direction_bt:119,direction_rl:120,direction_lr:121,PUNCTUATION:122,UNICODE_TEXT:123,PLUS:124,EQUALS:125,MULT:126,UNDERSCORE:127,graphCodeTokens:128,ARROW_CROSS:129,ARROW_POINT:130,ARROW_CIRCLE:131,ARROW_OPEN:132,QUOTE:133,$accept:0,$end:1},terminals_:{2:"error",10:":",12:"open_directive",13:"type_directive",14:"arg_directive",15:"close_directive",20:"SEMI",21:"NEWLINE",22:"SPACE",23:"EOF",24:"GRAPH",25:"NODIR",26:"DIR",38:"subgraph",40:"SQS",41:"SQE",42:"end",44:"acc_title",45:"acc_title_value",46:"acc_descr",47:"acc_descr_value",48:"acc_descr_multiline_value",52:"AMP",53:"STYLE_SEPARATOR",55:"DOUBLECIRCLESTART",56:"DOUBLECIRCLEEND",57:"PS",58:"PE",59:"(-",60:"-)",61:"STADIUMSTART",62:"STADIUMEND",63:"SUBROUTINESTART",64:"SUBROUTINEEND",65:"VERTEX_WITH_PROPS_START",66:"ALPHA",67:"COLON",68:"PIPE",69:"CYLINDERSTART",70:"CYLINDEREND",71:"DIAMOND_START",72:"DIAMOND_STOP",73:"TAGEND",74:"TRAPSTART",75:"TRAPEND",76:"INVTRAPSTART",77:"INVTRAPEND",80:"TESTSTR",81:"START_LINK",82:"LINK",84:"STR",86:"STYLE",87:"LINKSTYLE",88:"CLASSDEF",89:"CLASS",90:"CLICK",91:"DOWN",92:"UP",95:"DEFAULT",98:"CALLBACKNAME",99:"CALLBACKARGS",100:"HREF",101:"LINK_TARGET",102:"HEX",104:"INTERPOLATE",105:"NUM",106:"COMMA",109:"MINUS",110:"UNIT",111:"BRKT",112:"DOT",113:"PCT",114:"TAGSTART",118:"direction_tb",119:"direction_bt",120:"direction_rl",121:"direction_lr",122:"PUNCTUATION",123:"UNICODE_TEXT",124:"PLUS",125:"EQUALS",126:"MULT",127:"UNDERSCORE",129:"ARROW_CROSS",130:"ARROW_POINT",131:"ARROW_CIRCLE",132:"ARROW_OPEN",133:"QUOTE"},productions_:[0,[3,1],[3,2],[5,4],[5,6],[6,1],[7,1],[11,1],[8,1],[4,2],[17,0],[17,2],[18,1],[18,1],[18,1],[18,1],[18,1],[16,2],[16,2],[16,2],[16,3],[28,2],[28,1],[29,1],[29,1],[29,1],[27,1],[27,1],[27,2],[31,2],[31,2],[31,1],[31,1],[30,2],[30,1],[19,2],[19,2],[19,2],[19,2],[19,2],[19,2],[19,9],[19,6],[19,4],[19,1],[19,2],[19,2],[19,1],[9,1],[9,1],[9,1],[32,3],[32,4],[32,2],[32,1],[50,1],[50,5],[50,3],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,8],[51,4],[51,4],[51,4],[51,6],[51,4],[51,4],[51,4],[51,4],[51,4],[51,1],[49,2],[49,3],[49,3],[49,1],[49,3],[78,1],[79,3],[39,1],[39,2],[39,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[93,1],[93,2],[35,5],[35,5],[36,5],[37,2],[37,4],[37,3],[37,5],[37,2],[37,4],[37,4],[37,6],[37,2],[37,4],[37,2],[37,4],[37,4],[37,6],[33,5],[33,5],[34,5],[34,5],[34,9],[34,9],[34,7],[34,7],[103,1],[103,3],[96,1],[96,3],[107,1],[107,2],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[108,1],[83,1],[83,1],[83,1],[83,1],[83,1],[83,1],[94,1],[94,1],[94,1],[94,1],[54,1],[54,2],[97,1],[97,2],[117,1],[117,1],[117,1],[117,1],[43,1],[43,1],[43,1],[43,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[115,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[116,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 5:i.parseDirective("%%{","open_directive");break;case 6:i.parseDirective(r[s],"type_directive");break;case 7:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 8:i.parseDirective("}%%","close_directive","flowchart");break;case 10:case 36:case 37:case 38:case 39:case 40:this.$=[];break;case 11:(!Array.isArray(r[s])||r[s].length>0)&&r[s-1].push(r[s]),this.$=r[s-1];break;case 12:case 82:case 84:case 96:case 152:case 154:case 155:case 78:case 150:this.$=r[s];break;case 19:i.setDirection("TB"),this.$="TB";break;case 20:i.setDirection(r[s-1]),this.$=r[s-1];break;case 35:this.$=r[s-1].nodes;break;case 41:this.$=i.addSubGraph(r[s-6],r[s-1],r[s-4]);break;case 42:this.$=i.addSubGraph(r[s-3],r[s-1],r[s-3]);break;case 43:this.$=i.addSubGraph(void 0,r[s-1],void 0);break;case 45:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 46:case 47:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 51:i.addLink(r[s-2].stmt,r[s],r[s-1]),this.$={stmt:r[s],nodes:r[s].concat(r[s-2].nodes)};break;case 52:i.addLink(r[s-3].stmt,r[s-1],r[s-2]),this.$={stmt:r[s-1],nodes:r[s-1].concat(r[s-3].nodes)};break;case 53:this.$={stmt:r[s-1],nodes:r[s-1]};break;case 54:this.$={stmt:r[s],nodes:r[s]};break;case 55:case 123:case 125:this.$=[r[s]];break;case 56:this.$=r[s-4].concat(r[s]);break;case 57:this.$=[r[s-2]],i.setClass(r[s-2],r[s]);break;case 58:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"square");break;case 59:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"doublecircle");break;case 60:this.$=r[s-5],i.addVertex(r[s-5],r[s-2],"circle");break;case 61:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"ellipse");break;case 62:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"stadium");break;case 63:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"subroutine");break;case 64:this.$=r[s-7],i.addVertex(r[s-7],r[s-1],"rect",void 0,void 0,void 0,Object.fromEntries([[r[s-5],r[s-3]]]));break;case 65:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"cylinder");break;case 66:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"round");break;case 67:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"diamond");break;case 68:this.$=r[s-5],i.addVertex(r[s-5],r[s-2],"hexagon");break;case 69:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"odd");break;case 70:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"trapezoid");break;case 71:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"inv_trapezoid");break;case 72:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"lean_right");break;case 73:this.$=r[s-3],i.addVertex(r[s-3],r[s-1],"lean_left");break;case 74:this.$=r[s],i.addVertex(r[s]);break;case 75:r[s-1].text=r[s],this.$=r[s-1];break;case 76:case 77:r[s-2].text=r[s-1],this.$=r[s-2];break;case 79:var c=i.destructLink(r[s],r[s-2]);this.$={type:c.type,stroke:c.stroke,length:c.length,text:r[s-1]};break;case 80:c=i.destructLink(r[s]),this.$={type:c.type,stroke:c.stroke,length:c.length};break;case 81:this.$=r[s-1];break;case 83:case 97:case 153:case 151:this.$=r[s-1]+""+r[s];break;case 98:case 99:this.$=r[s-4],i.addClass(r[s-2],r[s]);break;case 100:this.$=r[s-4],i.setClass(r[s-2],r[s]);break;case 101:case 109:this.$=r[s-1],i.setClickEvent(r[s-1],r[s]);break;case 102:case 110:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-2]),i.setTooltip(r[s-3],r[s]);break;case 103:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 104:this.$=r[s-4],i.setClickEvent(r[s-4],r[s-3],r[s-2]),i.setTooltip(r[s-4],r[s]);break;case 105:case 111:this.$=r[s-1],i.setLink(r[s-1],r[s]);break;case 106:case 112:this.$=r[s-3],i.setLink(r[s-3],r[s-2]),i.setTooltip(r[s-3],r[s]);break;case 107:case 113:this.$=r[s-3],i.setLink(r[s-3],r[s-2],r[s]);break;case 108:case 114:this.$=r[s-5],i.setLink(r[s-5],r[s-4],r[s]),i.setTooltip(r[s-5],r[s-2]);break;case 115:this.$=r[s-4],i.addVertex(r[s-2],void 0,void 0,r[s]);break;case 116:case 118:this.$=r[s-4],i.updateLink(r[s-2],r[s]);break;case 117:this.$=r[s-4],i.updateLink([r[s-2]],r[s]);break;case 119:this.$=r[s-8],i.updateLinkInterpolate([r[s-6]],r[s-2]),i.updateLink([r[s-6]],r[s]);break;case 120:this.$=r[s-8],i.updateLinkInterpolate(r[s-6],r[s-2]),i.updateLink(r[s-6],r[s]);break;case 121:this.$=r[s-6],i.updateLinkInterpolate([r[s-4]],r[s]);break;case 122:this.$=r[s-6],i.updateLinkInterpolate(r[s-4],r[s]);break;case 124:case 126:r[s-2].push(r[s]),this.$=r[s-2];break;case 128:this.$=r[s-1]+r[s];break;case 156:this.$="v";break;case 157:this.$="-";break;case 158:this.$={stmt:"dir",value:"TB"};break;case 159:this.$={stmt:"dir",value:"BT"};break;case 160:this.$={stmt:"dir",value:"RL"};break;case 161:this.$={stmt:"dir",value:"LR"}}},table:[{3:1,4:2,5:3,6:5,12:e,16:4,21:n,22:i,24:a},{1:[3]},{1:[2,1]},{3:10,4:2,5:3,6:5,12:e,16:4,21:n,22:i,24:a},t(r,o,{17:11}),{7:12,13:[1,13]},{16:14,21:n,22:i,24:a},{16:15,21:n,22:i,24:a},{25:[1,16],26:[1,17]},{13:[2,5]},{1:[2,2]},{1:[2,9],18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:d,43:31,44:h,46:f,48:g,50:35,51:45,52:p,54:46,66:b,67:m,86:y,87:v,88:w,89:x,90:R,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,118:D,119:I,120:L,121:O,122:M,123:N,124:B,125:P,126:F,127:j},{8:64,10:[1,65],15:$},t([10,15],[2,6]),t(r,[2,17]),t(r,[2,18]),t(r,[2,19]),{20:[1,68],21:[1,69],22:z,27:67,30:70},t(H,[2,11]),t(H,[2,12]),t(H,[2,13]),t(H,[2,14]),t(H,[2,15]),t(H,[2,16]),{9:72,20:U,21:V,23:q,49:73,78:77,81:[1,78],82:[1,79]},{9:80,20:U,21:V,23:q},{9:81,20:U,21:V,23:q},{9:82,20:U,21:V,23:q},{9:83,20:U,21:V,23:q},{9:84,20:U,21:V,23:q},{9:86,20:U,21:V,22:[1,85],23:q},t(H,[2,44]),{45:[1,87]},{47:[1,88]},t(H,[2,47]),t(W,[2,54],{30:89,22:z}),{22:[1,90]},{22:[1,91]},{22:[1,92]},{22:[1,93]},{26:Y,52:G,66:Z,67:K,84:[1,97],91:X,97:96,98:[1,94],100:[1,95],105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(H,[2,158]),t(H,[2,159]),t(H,[2,160]),t(H,[2,161]),t(lt,[2,55],{53:[1,116]}),t(ut,[2,74],{116:129,40:[1,117],52:p,55:[1,118],57:[1,119],59:[1,120],61:[1,121],63:[1,122],65:[1,123],66:b,67:m,69:[1,124],71:[1,125],73:[1,126],74:[1,127],76:[1,128],91:_,95:k,105:E,106:C,109:S,111:T,112:A,122:M,123:N,124:B,125:P,126:F,127:j}),t(dt,[2,150]),t(dt,[2,175]),t(dt,[2,176]),t(dt,[2,177]),t(dt,[2,178]),t(dt,[2,179]),t(dt,[2,180]),t(dt,[2,181]),t(dt,[2,182]),t(dt,[2,183]),t(dt,[2,184]),t(dt,[2,185]),t(dt,[2,186]),t(dt,[2,187]),t(dt,[2,188]),t(dt,[2,189]),t(dt,[2,190]),{9:130,20:U,21:V,23:q},{11:131,14:[1,132]},t(ht,[2,8]),t(r,[2,20]),t(r,[2,26]),t(r,[2,27]),{21:[1,133]},t(ft,[2,34],{30:134,22:z}),t(H,[2,35]),{50:135,51:45,52:p,54:46,66:b,67:m,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,122:M,123:N,124:B,125:P,126:F,127:j},t(gt,[2,48]),t(gt,[2,49]),t(gt,[2,50]),t(pt,[2,78],{79:136,68:[1,138],80:[1,137]}),{22:bt,24:mt,26:yt,38:vt,39:139,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t([52,66,67,68,80,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,80]),t(H,[2,36]),t(H,[2,37]),t(H,[2,38]),t(H,[2,39]),t(H,[2,40]),{22:bt,24:mt,26:yt,38:vt,39:163,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(Nt,o,{17:164}),t(H,[2,45]),t(H,[2,46]),t(W,[2,53],{52:Bt}),{26:Y,52:G,66:Z,67:K,91:X,97:166,102:[1,167],105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},{95:[1,168],103:169,105:[1,170]},{26:Y,52:G,66:Z,67:K,91:X,95:[1,171],97:172,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},{26:Y,52:G,66:Z,67:K,91:X,97:173,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ht,[2,101],{22:[1,174],99:[1,175]}),t(ht,[2,105],{22:[1,176]}),t(ht,[2,109],{115:100,117:178,22:[1,177],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,122:it,123:at,124:rt,125:ot,126:st,127:ct}),t(ht,[2,111],{22:[1,179]}),t(Pt,[2,152]),t(Pt,[2,154]),t(Pt,[2,155]),t(Pt,[2,156]),t(Pt,[2,157]),t(Ft,[2,162]),t(Ft,[2,163]),t(Ft,[2,164]),t(Ft,[2,165]),t(Ft,[2,166]),t(Ft,[2,167]),t(Ft,[2,168]),t(Ft,[2,169]),t(Ft,[2,170]),t(Ft,[2,171]),t(Ft,[2,172]),t(Ft,[2,173]),t(Ft,[2,174]),{52:p,54:180,66:b,67:m,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,122:M,123:N,124:B,125:P,126:F,127:j},{22:bt,24:mt,26:yt,38:vt,39:181,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:182,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:184,42:wt,52:G,57:[1,183],66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:185,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:186,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:187,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{66:[1,188]},{22:bt,24:mt,26:yt,38:vt,39:189,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:190,42:wt,52:G,66:Z,67:K,71:[1,191],73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:192,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:193,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:194,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(dt,[2,151]),t(jt,[2,3]),{8:195,15:$},{15:[2,7]},t(r,[2,28]),t(ft,[2,33]),t(W,[2,51],{30:196,22:z}),t(pt,[2,75],{22:[1,197]}),{22:[1,198]},{22:bt,24:mt,26:yt,38:vt,39:199,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,82:[1,200],83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(Ft,[2,82]),t(Ft,[2,84]),t(Ft,[2,140]),t(Ft,[2,141]),t(Ft,[2,142]),t(Ft,[2,143]),t(Ft,[2,144]),t(Ft,[2,145]),t(Ft,[2,146]),t(Ft,[2,147]),t(Ft,[2,148]),t(Ft,[2,149]),t(Ft,[2,85]),t(Ft,[2,86]),t(Ft,[2,87]),t(Ft,[2,88]),t(Ft,[2,89]),t(Ft,[2,90]),t(Ft,[2,91]),t(Ft,[2,92]),t(Ft,[2,93]),t(Ft,[2,94]),t(Ft,[2,95]),{9:203,20:U,21:V,22:bt,23:q,24:mt,26:yt,38:vt,40:[1,202],42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:d,42:[1,204],43:31,44:h,46:f,48:g,50:35,51:45,52:p,54:46,66:b,67:m,86:y,87:v,88:w,89:x,90:R,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,118:D,119:I,120:L,121:O,122:M,123:N,124:B,125:P,126:F,127:j},{22:z,30:205},{22:[1,206],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:178,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:[1,207]},{22:[1,208]},{22:[1,209],106:[1,210]},t($t,[2,123]),{22:[1,211]},{22:[1,212],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:178,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:[1,213],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:178,122:it,123:at,124:rt,125:ot,126:st,127:ct},{84:[1,214]},t(ht,[2,103],{22:[1,215]}),{84:[1,216],101:[1,217]},{84:[1,218]},t(Pt,[2,153]),{84:[1,219],101:[1,220]},t(lt,[2,57],{116:129,52:p,66:b,67:m,91:_,95:k,105:E,106:C,109:S,111:T,112:A,122:M,123:N,124:B,125:P,126:F,127:j}),{22:bt,24:mt,26:yt,38:vt,41:[1,221],42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,56:[1,222],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:223,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,58:[1,224],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,60:[1,225],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,62:[1,226],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,64:[1,227],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{67:[1,228]},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,70:[1,229],73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,72:[1,230],73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,39:231,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,41:[1,232],42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,73:xt,75:[1,233],77:[1,234],81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,73:xt,75:[1,236],77:[1,235],81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{9:237,20:U,21:V,23:q},t(W,[2,52],{52:Bt}),t(pt,[2,77]),t(pt,[2,76]),{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,68:[1,238],73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(pt,[2,79]),t(Ft,[2,83]),{22:bt,24:mt,26:yt,38:vt,39:239,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(Nt,o,{17:240}),t(H,[2,43]),{51:241,52:p,54:46,66:b,67:m,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,122:M,123:N,124:B,125:P,126:F,127:j},{22:zt,66:Ht,67:Ut,86:Vt,96:242,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{22:zt,66:Ht,67:Ut,86:Vt,96:256,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{22:zt,66:Ht,67:Ut,86:Vt,96:257,102:qt,104:[1,258],105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{22:zt,66:Ht,67:Ut,86:Vt,96:259,102:qt,104:[1,260],105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{105:[1,261]},{22:zt,66:Ht,67:Ut,86:Vt,96:262,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{22:zt,66:Ht,67:Ut,86:Vt,96:263,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{26:Y,52:G,66:Z,67:K,91:X,97:264,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ht,[2,102]),{84:[1,265]},t(ht,[2,106],{22:[1,266]}),t(ht,[2,107]),t(ht,[2,110]),t(ht,[2,112],{22:[1,267]}),t(ht,[2,113]),t(ut,[2,58]),t(ut,[2,59]),{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,58:[1,268],66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ut,[2,66]),t(ut,[2,61]),t(ut,[2,62]),t(ut,[2,63]),{66:[1,269]},t(ut,[2,65]),t(ut,[2,67]),{22:bt,24:mt,26:yt,38:vt,42:wt,52:G,66:Z,67:K,72:[1,270],73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ut,[2,69]),t(ut,[2,70]),t(ut,[2,72]),t(ut,[2,71]),t(ut,[2,73]),t(jt,[2,4]),t([22,52,66,67,91,95,105,106,109,111,112,122,123,124,125,126,127],[2,81]),{22:bt,24:mt,26:yt,38:vt,41:[1,271],42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:d,42:[1,272],43:31,44:h,46:f,48:g,50:35,51:45,52:p,54:46,66:b,67:m,86:y,87:v,88:w,89:x,90:R,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,118:D,119:I,120:L,121:O,122:M,123:N,124:B,125:P,126:F,127:j},t(lt,[2,56]),t(ht,[2,115],{106:Jt}),t(Qt,[2,125],{108:274,22:zt,66:Ht,67:Ut,86:Vt,102:qt,105:Wt,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt}),t(te,[2,127]),t(te,[2,129]),t(te,[2,130]),t(te,[2,131]),t(te,[2,132]),t(te,[2,133]),t(te,[2,134]),t(te,[2,135]),t(te,[2,136]),t(te,[2,137]),t(te,[2,138]),t(te,[2,139]),t(ht,[2,116],{106:Jt}),t(ht,[2,117],{106:Jt}),{22:[1,275]},t(ht,[2,118],{106:Jt}),{22:[1,276]},t($t,[2,124]),t(ht,[2,98],{106:Jt}),t(ht,[2,99],{106:Jt}),t(ht,[2,100],{115:100,117:178,26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,122:it,123:at,124:rt,125:ot,126:st,127:ct}),t(ht,[2,104]),{101:[1,277]},{101:[1,278]},{58:[1,279]},{68:[1,280]},{72:[1,281]},{9:282,20:U,21:V,23:q},t(H,[2,42]),{22:zt,66:Ht,67:Ut,86:Vt,102:qt,105:Wt,107:283,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},t(te,[2,128]),{26:Y,52:G,66:Z,67:K,91:X,97:284,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},{26:Y,52:G,66:Z,67:K,91:X,97:285,105:J,106:Q,109:tt,111:et,112:nt,115:100,117:98,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ht,[2,108]),t(ht,[2,114]),t(ut,[2,60]),{22:bt,24:mt,26:yt,38:vt,39:286,42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:140,84:_t,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},t(ut,[2,68]),t(Nt,o,{17:287}),t(Qt,[2,126],{108:274,22:zt,66:Ht,67:Ut,86:Vt,102:qt,105:Wt,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt}),t(ht,[2,121],{115:100,117:178,22:[1,288],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,122:it,123:at,124:rt,125:ot,126:st,127:ct}),t(ht,[2,122],{115:100,117:178,22:[1,289],26:Y,52:G,66:Z,67:K,91:X,105:J,106:Q,109:tt,111:et,112:nt,122:it,123:at,124:rt,125:ot,126:st,127:ct}),{22:bt,24:mt,26:yt,38:vt,41:[1,290],42:wt,52:G,66:Z,67:K,73:xt,81:Rt,83:201,85:151,86:kt,87:Et,88:Ct,89:St,90:Tt,91:At,92:Dt,94:142,95:It,105:J,106:Q,109:Lt,111:et,112:nt,113:Ot,114:Mt,115:148,122:it,123:at,124:rt,125:ot,126:st,127:ct},{18:18,19:19,20:s,21:c,22:l,23:u,32:24,33:25,34:26,35:27,36:28,37:29,38:d,42:[1,291],43:31,44:h,46:f,48:g,50:35,51:45,52:p,54:46,66:b,67:m,86:y,87:v,88:w,89:x,90:R,91:_,95:k,105:E,106:C,109:S,111:T,112:A,116:47,118:D,119:I,120:L,121:O,122:M,123:N,124:B,125:P,126:F,127:j},{22:zt,66:Ht,67:Ut,86:Vt,96:292,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},{22:zt,66:Ht,67:Ut,86:Vt,96:293,102:qt,105:Wt,107:243,108:244,109:Yt,110:Gt,111:Zt,112:Kt,113:Xt},t(ut,[2,64]),t(H,[2,41]),t(ht,[2,119],{106:Jt}),t(ht,[2,120],{106:Jt})],defaultActions:{2:[2,1],9:[2,5],10:[2,2],132:[2,7]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},ne={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),12;case 1:return this.begin("type_directive"),13;case 2:return this.popState(),this.begin("arg_directive"),10;case 3:return this.popState(),this.popState(),15;case 4:return 14;case 5:case 6:break;case 7:return this.begin("acc_title"),44;case 8:return this.popState(),"acc_title_value";case 9:return this.begin("acc_descr"),46;case 10:return this.popState(),"acc_descr_value";case 11:this.begin("acc_descr_multiline");break;case 12:case 15:case 24:case 27:case 30:case 33:this.popState();break;case 13:return"acc_descr_multiline_value";case 14:this.begin("string");break;case 16:return"STR";case 17:return 86;case 18:return 95;case 19:return 87;case 20:return 104;case 21:return 88;case 22:return 89;case 23:this.begin("href");break;case 25:return 100;case 26:this.begin("callbackname");break;case 28:this.popState(),this.begin("callbackargs");break;case 29:return 98;case 31:return 99;case 32:this.begin("click");break;case 34:return 90;case 35:case 36:case 37:return t.lex.firstGraph()&&this.begin("dir"),24;case 38:return 38;case 39:return 42;case 40:case 41:case 42:case 43:return 101;case 44:return this.popState(),25;case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:return this.popState(),26;case 55:return 118;case 56:return 119;case 57:return 120;case 58:return 121;case 59:return 105;case 60:return 111;case 61:return 53;case 62:return 67;case 63:return 52;case 64:return 20;case 65:return 106;case 66:return 126;case 67:case 68:case 69:return 82;case 70:case 71:case 72:return 81;case 73:return 59;case 74:return 60;case 75:return 61;case 76:return 62;case 77:return 63;case 78:return 64;case 79:return 65;case 80:return 69;case 81:return 70;case 82:return 55;case 83:return 56;case 84:return 109;case 85:return 112;case 86:return 127;case 87:return 124;case 88:return 113;case 89:case 90:return 125;case 91:return 114;case 92:return 73;case 93:return 92;case 94:return"SEP";case 95:return 91;case 96:return 66;case 97:return 75;case 98:return 74;case 99:return 77;case 100:return 76;case 101:return 122;case 102:return 123;case 103:return 68;case 104:return 57;case 105:return 58;case 106:return 40;case 107:return 41;case 108:return 71;case 109:return 72;case 110:return 133;case 111:return 21;case 112:return 22;case 113:return 23}},rules:[/^(?:%%\{)/,/^(?:((?:(?!\}%%)[^:.])*))/,/^(?::)/,/^(?:\}%%)/,/^(?:((?:(?!\}%%).|\n)*))/,/^(?:%%(?!\{)[^\n]*)/,/^(?:[^\}]%%[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:style\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\b)/,/^(?:class\b)/,/^(?:href[\s]+["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:call[\s]+)/,/^(?:\([\s]*\))/,/^(?:\()/,/^(?:[^(]*)/,/^(?:\))/,/^(?:[^)]*)/,/^(?:click[\s]+)/,/^(?:[\s\n])/,/^(?:[^\s\n]*)/,/^(?:flowchart-elk\b)/,/^(?:graph\b)/,/^(?:flowchart\b)/,/^(?:subgraph\b)/,/^(?:end\b\s*)/,/^(?:_self\b)/,/^(?:_blank\b)/,/^(?:_parent\b)/,/^(?:_top\b)/,/^(?:(\r?\n)*\s*\n)/,/^(?:\s*LR\b)/,/^(?:\s*RL\b)/,/^(?:\s*TB\b)/,/^(?:\s*BT\b)/,/^(?:\s*TD\b)/,/^(?:\s*BR\b)/,/^(?:\s*<)/,/^(?:\s*>)/,/^(?:\s*\^)/,/^(?:\s*v\b)/,/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::::)/,/^(?::)/,/^(?:&)/,/^(?:;)/,/^(?:,)/,/^(?:\*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\[)/,/^(?:\]\))/,/^(?:\[\[)/,/^(?:\]\])/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\])/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:-)/,/^(?:\.)/,/^(?:[\_])/,/^(?:\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:<)/,/^(?:>)/,/^(?:\^)/,/^(?:\\\|)/,/^(?:v\b)/,/^(?:[A-Za-z]+)/,/^(?:\\\])/,/^(?:\[\/)/,/^(?:\/\])/,/^(?:\[\\)/,/^(?:[!"#$%&'*+,-.`?\\_/])/,/^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/,/^(?:\|)/,/^(?:\()/,/^(?:\))/,/^(?:\[)/,/^(?:\])/,/^(?:\{)/,/^(?:\})/,/^(?:")/,/^(?:(\r?\n)+)/,/^(?:\s)/,/^(?:$)/],conditions:{close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[30,31],inclusive:!1},callbackname:{rules:[27,28,29],inclusive:!1},href:{rules:[24,25],inclusive:!1},click:{rules:[33,34],inclusive:!1},vertex:{rules:[],inclusive:!1},dir:{rules:[44,45,46,47,48,49,50,51,52,53,54],inclusive:!1},acc_descr_multiline:{rules:[12,13],inclusive:!1},acc_descr:{rules:[10],inclusive:!1},acc_title:{rules:[8],inclusive:!1},string:{rules:[15,16],inclusive:!1},INITIAL:{rules:[0,5,6,7,9,11,14,17,18,19,20,21,22,23,26,32,35,36,37,38,39,40,41,42,43,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],inclusive:!0}}};function ie(){this.yy={}}return ee.lexer=ne,ie.prototype=ee,ee.Parser=ie,new ie}();JO.parser=JO;const QO=JO,tM=(t,e)=>{var n,i;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer)&&"elk"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&null!==t.match(/^\s*graph/)},eM=(t,e)=>{var n,i;return"dagre-d3"!==(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer)&&"elk"!==(null==(i=null==e?void 0:e.flowchart)?void 0:i.defaultRenderer)&&(null!==t.match(/^\s*graph/)||null!==t.match(/^\s*flowchart/))},nM="flowchart-";let iM,aM,rM=0,oM=Ry(),sM={},cM=[],lM={},uM=[],dM={},hM={},fM=0,gM=!0,pM=[];const bM=t=>Qd.sanitizeText(t,oM),mM=function(t,e,n){dU.parseDirective(this,t,e,n)},yM=function(t){const e=Object.keys(sM);for(const n of e)if(sM[n].id===t)return sM[n].domId;return t},vM=function(t,e,n,i,a,r,o={}){let s,c=t;void 0!==c&&0!==c.trim().length&&(void 0===sM[c]&&(sM[c]={id:c,domId:nM+c+"-"+rM,styles:[],classes:[]}),rM++,void 0!==e?(oM=Ry(),s=bM(e.trim()),'"'===s[0]&&'"'===s[s.length-1]&&(s=s.substring(1,s.length-1)),sM[c].text=s):void 0===sM[c].text&&(sM[c].text=t),void 0!==n&&(sM[c].type=n),null!=i&&i.forEach((function(t){sM[c].styles.push(t)})),null!=a&&a.forEach((function(t){sM[c].classes.push(t)})),void 0!==r&&(sM[c].dir=r),void 0===sM[c].props?sM[c].props=o:void 0!==o&&Object.assign(sM[c].props,o))},wM=function(t,e,n,i){const a={start:t,end:e,type:void 0,text:""};void 0!==(i=n.text)&&(a.text=bM(i.trim()),'"'===a.text[0]&&'"'===a.text[a.text.length-1]&&(a.text=a.text.substring(1,a.text.length-1))),void 0!==n&&(a.type=n.type,a.stroke=n.stroke,a.length=n.length),cM.push(a)},xM=function(t,e,n,i){let a,r;for(a=0;a<t.length;a++)for(r=0;r<e.length;r++)wM(t[a],e[r],n,i)},RM=function(t,e){t.forEach((function(t){"default"===t?cM.defaultInterpolate=e:cM[t].interpolate=e}))},_M=function(t,e){t.forEach((function(t){"default"===t?cM.defaultStyle=e:(-1===vm.isSubstringInArray("fill",e)&&e.push("fill:none"),cM[t].style=e)}))},kM=function(t,e){void 0===lM[t]&&(lM[t]={id:t,styles:[],textStyles:[]}),null!=e&&e.forEach((function(e){if(e.match("color")){const n=e.replace("fill","bgFill").replace("color","fill");lM[t].textStyles.push(n)}lM[t].styles.push(e)}))},EM=function(t){iM=t,iM.match(/.*</)&&(iM="RL"),iM.match(/.*\^/)&&(iM="BT"),iM.match(/.*>/)&&(iM="LR"),iM.match(/.*v/)&&(iM="TB"),"TD"===iM&&(iM="TB")},CM=function(t,e){t.split(",").forEach((function(t){let n=t;void 0!==sM[n]&&sM[n].classes.push(e),void 0!==dM[n]&&dM[n].classes.push(e)}))},SM=function(t,e){t.split(",").forEach((function(t){void 0!==e&&(hM["gen-1"===aM?yM(t):t]=bM(e))}))},TM=function(t,e,n){let i=yM(t);if("loose"!==Ry().securityLevel||void 0===e)return;let a=[];if("string"==typeof n){a=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<a.length;t++){let e=a[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),a[t]=e}}0===a.length&&a.push(t),void 0!==sM[t]&&(sM[t].haveCallback=!0,pM.push((function(){const t=document.querySelector(`[id="${i}"]`);null!==t&&t.addEventListener("click",(function(){vm.runFunc(e,...a)}),!1)})))},AM=function(t,e,n){t.split(",").forEach((function(t){void 0!==sM[t]&&(sM[t].link=vm.formatUrl(e,oM),sM[t].linkTarget=n)})),CM(t,"clickable")},DM=function(t){return hM[t]},IM=function(t,e,n){t.split(",").forEach((function(t){TM(t,e,n)})),CM(t,"clickable")},LM=function(t){pM.forEach((function(e){e(t)}))},OM=function(){return iM.trim()},MM=function(){return sM},NM=function(){return cM},BM=function(){return lM},PM=function(t){let e=un(".mermaidTooltip");null===(e._groups||e)[0][0]&&(e=un("body").append("div").attr("class","mermaidTooltip").style("opacity",0)),un(t).select("svg").selectAll("g.node").on("mouseover",(function(){const t=un(this);if(null===t.attr("title"))return;const n=this.getBoundingClientRect();e.transition().duration(200).style("opacity",".9"),e.text(t.attr("title")).style("left",window.scrollX+n.left+(n.right-n.left)/2+"px").style("top",window.scrollY+n.top-14+document.body.scrollTop+"px"),e.html(e.html().replace(/<br\/>/g,"<br/>")),t.classed("hover",!0)})).on("mouseout",(function(){e.transition().duration(500).style("opacity",0),un(this).classed("hover",!1)}))};pM.push(PM);const FM=function(t="gen-1"){sM={},lM={},cM=[],pM=[PM],uM=[],dM={},fM=0,hM=[],gM=!0,aM=t,Qy()},jM=t=>{aM=t||"gen-2"},$M=function(){return"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;"},zM=function(t,e,n){let i=t.trim(),a=n;function r(t){const e={boolean:{},number:{},string:{}},n=[];let i;return{nodeList:t.filter((function(t){const a=typeof t;return t.stmt&&"dir"===t.stmt?(i=t.value,!1):""!==t.trim()&&(a in e?!e[a].hasOwnProperty(t)&&(e[a][t]=!0):!n.includes(t)&&n.push(t))})),dir:i}}t===n&&n.match(/\s/)&&(i=void 0);let o=[];const{nodeList:s,dir:c}=r(o.concat.apply(o,e));if(o=s,"gen-1"===aM)for(let u=0;u<o.length;u++)o[u]=yM(o[u]);i=i||"subGraph"+fM,a=a||"",a=bM(a),fM+=1;const l={id:i,nodes:o,title:a.trim(),classes:[],dir:c};return d.info("Adding",l.id,l.nodes,l.dir),l.nodes=eN(l,uM).nodes,uM.push(l),dM[i]=l,i},HM=function(t){for(const[e,n]of uM.entries())if(n.id===t)return e;return-1};let UM=-1;const VM=[],qM=function(t,e){const n=uM[e].nodes;if(UM+=1,UM>2e3)return;if(VM[UM]=e,uM[e].id===t)return{result:!0,count:0};let i=0,a=1;for(;i<n.length;){const e=HM(n[i]);if(e>=0){const n=qM(t,e);if(n.result)return{result:!0,count:a+n.count};a+=n.count}i+=1}return{result:!1,count:a}},WM=function(t){return VM[t]},YM=function(){UM=-1,uM.length>0&&qM("none",uM.length-1)},GM=function(){return uM},ZM=()=>!!gM&&(gM=!1,!0),KM=t=>{let e=t.trim(),n="arrow_open";switch(e[0]){case"<":n="arrow_point",e=e.slice(1);break;case"x":n="arrow_cross",e=e.slice(1);break;case"o":n="arrow_circle",e=e.slice(1)}let i="normal";return e.includes("=")&&(i="thick"),e.includes(".")&&(i="dotted"),{type:n,stroke:i}},XM=(t,e)=>{const n=e.length;let i=0;for(let a=0;a<n;++a)e[a]===t&&++i;return i},JM=t=>{const e=t.trim();let n=e.slice(0,-1),i="arrow_open";switch(e.slice(-1)){case"x":i="arrow_cross","x"===e[0]&&(i="double_"+i,n=n.slice(1));break;case">":i="arrow_point","<"===e[0]&&(i="double_"+i,n=n.slice(1));break;case"o":i="arrow_circle","o"===e[0]&&(i="double_"+i,n=n.slice(1))}let a="normal",r=n.length-1;"="===n[0]&&(a="thick");let o=XM(".",n);return o&&(a="dotted",r=o),{type:i,stroke:a,length:r}},QM=(t,e)=>{const n=JM(t);let i;if(e){if(i=KM(e),i.stroke!==n.stroke)return{type:"INVALID",stroke:"INVALID"};if("arrow_open"===i.type)i.type=n.type;else{if(i.type!==n.type)return{type:"INVALID",stroke:"INVALID"};i.type="double_"+i.type}return"double_arrow"===i.type&&(i.type="double_arrow_point"),i.length=n.length,i}return n},tN=(t,e)=>{let n=!1;return t.forEach((t=>{t.nodes.indexOf(e)>=0&&(n=!0)})),n},eN=(t,e)=>{const n=[];return t.nodes.forEach(((i,a)=>{tN(e,i)||n.push(t.nodes[a])})),{nodes:n}},nN={firstGraph:ZM},iN={parseDirective:mM,defaultConfig:()=>dy.flowchart,setAccTitle:tv,getAccTitle:ev,getAccDescription:iv,setAccDescription:nv,addVertex:vM,lookUpDomId:yM,addLink:xM,updateLinkInterpolate:RM,updateLink:_M,addClass:kM,setDirection:EM,setClass:CM,setTooltip:SM,getTooltip:DM,setClickEvent:IM,setLink:AM,bindFunctions:LM,getDirection:OM,getVertices:MM,getEdges:NM,getClasses:BM,clear:FM,setGen:jM,defaultStyle:$M,addSubGraph:zM,getDepthFirstPos:WM,indexNodes:YM,getSubGraphs:GM,destructLink:QM,lex:nN,exists:tN,makeUniq:eN,setDiagramTitle:av,getDiagramTitle:rv},aN=Object.freeze(Object.defineProperty({__proto__:null,addClass:kM,addLink:xM,addSingleLink:wM,addSubGraph:zM,addVertex:vM,bindFunctions:LM,clear:FM,default:iN,defaultStyle:$M,destructLink:QM,firstGraph:ZM,getClasses:BM,getDepthFirstPos:WM,getDirection:OM,getEdges:NM,getSubGraphs:GM,getTooltip:DM,getVertices:MM,indexNodes:YM,lex:nN,lookUpDomId:yM,parseDirective:mM,setClass:CM,setClickEvent:IM,setDirection:EM,setGen:jM,setLink:AM,updateLink:_M,updateLinkInterpolate:RM},Symbol.toStringTag,{value:"Module"}));function rN(t,e){return!!t.children(e).length}function oN(t){return cN(t.v)+":"+cN(t.w)+":"+cN(t.name)}var sN=/:/g;function cN(t){return t?String(t).replace(sN,"\\:"):""}function lN(t,e){e&&t.attr("style",e)}function uN(t,e,n){e&&t.attr("class",e).attr("class",n+" "+t.attr("class"))}function dN(t,e){var n=e.graph();if(Nk(n)){var i=n.transition;if(Gp(i))return i(t)}return t}var hN={normal:gN,vee:pN,undirected:bN};function fN(t){hN=t}function gN(t,e,n,i){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");lN(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])}function pN(t,e,n,i){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");lN(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])}function bN(t,e,n,i){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");lN(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])}function mN(t,e){var n=t.append("foreignObject").attr("width","100000"),i=n.append("xhtml:div");i.attr("xmlns","http://www.w3.org/1999/xhtml");var a=e.label;switch(typeof a){case"function":i.insert(a);break;case"object":i.insert((function(){return a}));break;default:i.html(a)}lN(i,e.labelStyle),i.style("display","inline-block"),i.style("white-space","nowrap");var r=i.node().getBoundingClientRect();return n.attr("width",r.width).attr("height",r.height),n}function yN(t,e){var n=t;return n.node().appendChild(e.label),lN(n,e.labelStyle),n}function vN(t,e){for(var n=t.append("text"),i=wN(e.label).split("\n"),a=0;a<i.length;a++)n.append("tspan").attr("xml:space","preserve").attr("dy","1em").attr("x","1").text(i[a]);return lN(n,e.labelStyle),n}function wN(t){for(var e,n="",i=!1,a=0;a<t.length;++a)e=t[a],i?(n+="n"===e?"\n":e,i=!1):"\\"===e?i=!0:n+=e;return n}function xN(t,e,n){var i=e.label,a=t.append("g");"svg"===e.labelType?yN(a,e):"string"!=typeof i||"html"===e.labelType?mN(a,e):vN(a,e);var r,o=a.node().getBBox();switch(n){case"top":r=-e.height/2;break;case"bottom":r=e.height/2-o.height;break;default:r=-o.height/2}return a.attr("transform","translate("+-o.width/2+","+r+")"),a}var RN=function(t,e){var n=e.nodes().filter((function(t){return rN(e,t)})),i=t.selectAll("g.cluster").data(n,(function(t){return t}));dN(i.exit(),e).style("opacity",0).remove();var a=i.enter().append("g").attr("class","cluster").attr("id",(function(t){return e.node(t).id})).style("opacity",0).each((function(t){var n=e.node(t),i=un(this);un(this).append("rect"),xN(i.append("g").attr("class","label"),n,n.clusterLabelPos)}));return(i=dN(i=i.merge(a),e).style("opacity",1)).selectAll("rect").each((function(t){var n=e.node(t);lN(un(this),n.style)})),i};function _N(t){RN=t}let kN=function(t,e){var n=t.selectAll("g.edgeLabel").data(e.edges(),(function(t){return oN(t)})).classed("update",!0);return n.exit().remove(),n.enter().append("g").classed("edgeLabel",!0).style("opacity",0),(n=t.selectAll("g.edgeLabel")).each((function(t){var n=un(this);n.select(".label").remove();var i=e.edge(t),a=xN(n,e.edge(t),0).classed("label",!0),r=a.node().getBBox();i.labelId&&a.attr("id",i.labelId),_T(i,"width")||(i.width=r.width),_T(i,"height")||(i.height=r.height)})),dN(n.exit?n.exit():n.selectAll(null),e).style("opacity",0).remove(),n};function EN(t){kN=t}function CN(t,e){return t.intersect(e)}var SN=function(t,e,n){var i=t.selectAll("g.edgePath").data(e.edges(),(function(t){return oN(t)})).classed("update",!0),a=ON(i,e);MN(i,e);var r=void 0!==i.merge?i.merge(a):i;return dN(r,e).style("opacity",1),r.each((function(t){var n=un(this),i=e.edge(t);i.elem=this,i.id&&n.attr("id",i.id),uN(n,i.class,(n.classed("update")?"update ":"")+"edgePath")})),r.selectAll("path.path").each((function(t){var n=e.edge(t);n.arrowheadId=oA("arrowhead");var i=un(this).attr("marker-end",(function(){return"url("+AN(location.href,n.arrowheadId)+")"})).style("fill","none");dN(i,e).attr("d",(function(t){return DN(e,t)})),lN(i,n.style)})),r.selectAll("defs *").remove(),r.selectAll("defs").each((function(t){var i=e.edge(t);(0,n[i.arrowhead])(un(this),i.arrowheadId,i,"arrowhead")})),r};function TN(t){SN=t}function AN(t,e){return t.split("#")[0]+"#"+e}function DN(t,e){var n=t.edge(e),i=t.node(e.v),a=t.node(e.w),r=n.points.slice(1,n.points.length-1);return r.unshift(CN(i,r[0])),r.push(CN(a,r[r.length-1])),IN(n,r)}function IN(t,e){var n=($l||Kr.line)().x((function(t){return t.x})).y((function(t){return t.y}));return(n.curve||n.interpolate)(t.curve),n(e)}function LN(t){var e=t.getBBox(),n=t.ownerSVGElement.getScreenCTM().inverse().multiply(t.getScreenCTM()).translate(e.width/2,e.height/2);return{x:n.e,y:n.f}}function ON(t,e){var n=t.enter().append("g").attr("class","edgePath").style("opacity",0);return n.append("path").attr("class","path").attr("d",(function(t){var n=e.edge(t),i=e.node(t.v).elem;return IN(n,KT(n.points.length).map((function(){return LN(i)})))})),n.append("defs"),n}function MN(t,e){dN(t.exit(),e).style("opacity",0).remove()}var NN=function(t,e,n){var i=e.nodes().filter((function(t){return!rN(e,t)})),a=t.selectAll("g.node").data(i,(function(t){return t})).classed("update",!0);return a.exit().remove(),a.enter().append("g").attr("class","node").style("opacity",0),(a=t.selectAll("g.node")).each((function(t){var i=e.node(t),a=un(this);uN(a,i.class,(a.classed("update")?"update ":"")+"node"),a.select("g.label").remove();var r=a.append("g").attr("class","label"),o=xN(r,i),s=n[i.shape],c=qT(o.node().getBBox(),"width","height");i.elem=this,i.id&&a.attr("id",i.id),i.labelId&&r.attr("id",i.labelId),_T(i,"width")&&(c.width=i.width),_T(i,"height")&&(c.height=i.height),c.width+=i.paddingLeft+i.paddingRight,c.height+=i.paddingTop+i.paddingBottom,r.attr("transform","translate("+(i.paddingLeft-i.paddingRight)/2+","+(i.paddingTop-i.paddingBottom)/2+")");var l=un(this);l.select(".label-container").remove();var u=s(l,c,i).classed("label-container",!0);lN(u,i.style);var d=u.node().getBBox();i.width=d.width,i.height=d.height})),dN(a.exit?a.exit():a.selectAll(null),e).style("opacity",0).remove(),a};function BN(t){NN=t}function PN(t,e){var n=t.filter((function(){return!un(this).classed("update")}));function i(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}n.attr("transform",i),dN(t,e).style("opacity",1).attr("transform",i),dN(n.selectAll("rect"),e).attr("width",(function(t){return e.node(t).width})).attr("height",(function(t){return e.node(t).height})).attr("x",(function(t){return-e.node(t).width/2})).attr("y",(function(t){return-e.node(t).height/2}))}function FN(t,e){function n(t){var n=e.edge(t);return _T(n,"x")?"translate("+n.x+","+n.y+")":""}t.filter((function(){return!un(this).classed("update")})).attr("transform",n),dN(t,e).style("opacity",1).attr("transform",n)}function jN(t,e){function n(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}t.filter((function(){return!un(this).classed("update")})).attr("transform",n),dN(t,e).style("opacity",1).attr("transform",n)}function $N(t,e,n,i){var a=t.x,r=t.y,o=a-i.x,s=r-i.y,c=Math.sqrt(e*e*s*s+n*n*o*o),l=Math.abs(e*n*o/c);i.x<a&&(l=-l);var u=Math.abs(e*n*s/c);return i.y<r&&(u=-u),{x:a+l,y:r+u}}function zN(t,e,n){return $N(t,e,e,n)}function HN(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(a=e.y-t.y,o=t.x-e.x,c=e.x*t.y-t.x*e.y,h=a*n.x+o*n.y+c,f=a*i.x+o*i.y+c,!(0!==h&&0!==f&&UN(h,f)||(r=i.y-n.y,s=n.x-i.x,l=i.x*n.y-n.x*i.y,u=r*t.x+s*t.y+l,d=r*e.x+s*e.y+l,0!==u&&0!==d&&UN(u,d)||(g=a*s-r*o,0===g))))return p=Math.abs(g/2),{x:(b=o*l-s*c)<0?(b-p)/g:(b+p)/g,y:(b=r*c-a*l)<0?(b-p)/g:(b+p)/g}}function UN(t,e){return t*e>0}function VN(t,e,n){var i=t.x,a=t.y,r=[],o=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;e.forEach((function(t){o=Math.min(o,t.x),s=Math.min(s,t.y)}));for(var c=i-t.width/2-o,l=a-t.height/2-s,u=0;u<e.length;u++){var d=e[u],h=e[u<e.length-1?u+1:0],f=HN(t,n,{x:c+d.x,y:l+d.y},{x:c+h.x,y:l+h.y});f&&r.push(f)}return r.length?(r.length>1&&r.sort((function(t,e){var i=t.x-n.x,a=t.y-n.y,r=Math.sqrt(i*i+a*a),o=e.x-n.x,s=e.y-n.y,c=Math.sqrt(o*o+s*s);return r<c?-1:r===c?0:1})),r[0]):(console.log("NO INTERSECTION FOUND, RETURN NODE CENTER",t),t)}function qN(t,e){var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=0===s?0:l*o/s,i=l):(o<0&&(c=-c),n=c,i=0===o?0:c*s/o),{x:a+n,y:r+i}}var WN={rect:GN,ellipse:ZN,circle:KN,diamond:XN};function YN(t){WN=t}function GN(t,e,n){var i=t.insert("rect",":first-child").attr("rx",n.rx).attr("ry",n.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return n.intersect=function(t){return qN(n,t)},i}function ZN(t,e,n){var i=e.width/2,a=e.height/2,r=t.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",i).attr("ry",a);return n.intersect=function(t){return $N(n,i,a,t)},r}function KN(t,e,n){var i=Math.max(e.width,e.height)/2,a=t.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",i);return n.intersect=function(t){return zN(n,i,t)},a}function XN(t,e,n){var i=e.width*Math.SQRT2/2,a=e.height*Math.SQRT2/2,r=[{x:0,y:-a},{x:-i,y:0},{x:0,y:a},{x:i,y:0}],o=t.insert("polygon",":first-child").attr("points",r.map((function(t){return t.x+","+t.y})).join(" "));return n.intersect=function(t){return VN(n,r,t)},o}function JN(){var t=function(t,e){eB(e);var n=iB(t,"output"),i=iB(n,"clusters"),a=iB(n,"edgePaths"),r=kN(iB(n,"edgeLabels"),e),o=NN(iB(n,"nodes"),e,WN);yI(e),jN(o,e),FN(r,e),SN(a,e,hN),PN(RN(i,e),e),nB(e)};return t.createNodes=function(e){return arguments.length?(BN(e),t):NN},t.createClusters=function(e){return arguments.length?(_N(e),t):RN},t.createEdgeLabels=function(e){return arguments.length?(EN(e),t):kN},t.createEdgePaths=function(e){return arguments.length?(TN(e),t):SN},t.shapes=function(e){return arguments.length?(YN(e),t):WN},t.arrows=function(e){return arguments.length?(fN(e),t):hN},t}var QN={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},tB={arrowhead:"normal",curve:Pl};function eB(t){t.nodes().forEach((function(e){var n=t.node(e);!_T(n,"label")&&!t.children(e).length&&(n.label=e),_T(n,"paddingX")&&tT(n,{paddingLeft:n.paddingX,paddingRight:n.paddingX}),_T(n,"paddingY")&&tT(n,{paddingTop:n.paddingY,paddingBottom:n.paddingY}),_T(n,"padding")&&tT(n,{paddingLeft:n.padding,paddingRight:n.padding,paddingTop:n.padding,paddingBottom:n.padding}),tT(n,QN),uT(["paddingLeft","paddingRight","paddingTop","paddingBottom"],(function(t){n[t]=Number(n[t])})),_T(n,"width")&&(n._prevWidth=n.width),_T(n,"height")&&(n._prevHeight=n.height)})),t.edges().forEach((function(e){var n=t.edge(e);_T(n,"label")||(n.label=""),tT(n,tB)}))}function nB(t){uT(t.nodes(),(function(e){var n=t.node(e);_T(n,"_prevWidth")?n.width=n._prevWidth:delete n.width,_T(n,"_prevHeight")?n.height=n._prevHeight:delete n.height,delete n._prevWidth,delete n._prevHeight}))}function iB(t,e){var n=t.select("g."+e);return n.empty()&&(n=t.append("g").attr("class",e)),n}function aB(t,e,n){const i=.9*(e.width+e.height),a=[{x:i/2,y:0},{x:i,y:-i/2},{x:i/2,y:-i},{x:0,y:-i/2}],r=mB(t,i,i,a);return n.intersect=function(t){return VN(n,a,t)},r}function rB(t,e,n){const i=e.height,a=i/4,r=e.width+2*a,o=[{x:a,y:0},{x:r-a,y:0},{x:r,y:-i/2},{x:r-a,y:-i},{x:a,y:-i},{x:0,y:-i/2}],s=mB(t,r,i,o);return n.intersect=function(t){return VN(n,o,t)},s}function oB(t,e,n){const i=e.width,a=e.height,r=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function sB(t,e,n){const i=e.width,a=e.height,r=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function cB(t,e,n){const i=e.width,a=e.height,r=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function lB(t,e,n){const i=e.width,a=e.height,r=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function uB(t,e,n){const i=e.width,a=e.height,r=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function dB(t,e,n){const i=e.width,a=e.height,r=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function hB(t,e,n){const i=e.height,a=e.width+i/4,r=t.insert("rect",":first-child").attr("rx",i/2).attr("ry",i/2).attr("x",-a/2).attr("y",-i/2).attr("width",a).attr("height",i);return n.intersect=function(t){return qN(n,t)},r}function fB(t,e,n){const i=e.width,a=e.height,r=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],o=mB(t,i,a,r);return n.intersect=function(t){return VN(n,r,t)},o}function gB(t,e,n){const i=e.width,a=i/2,r=a/(2.5+i/50),o=e.height+r,s="M 0,"+r+" a "+a+","+r+" 0,0,0 "+i+" 0 a "+a+","+r+" 0,0,0 "+-i+" 0 l 0,"+o+" a "+a+","+r+" 0,0,0 "+i+" 0 l 0,"+-o,c=t.attr("label-offset-y",r).insert("path",":first-child").attr("d",s).attr("transform","translate("+-i/2+","+-(o/2+r)+")");return n.intersect=function(t){const e=qN(n,t),i=e.x-n.x;if(0!=a&&(Math.abs(i)<n.width/2||Math.abs(i)==n.width/2&&Math.abs(e.y-n.y)>n.height/2-r)){let o=r*r*(1-i*i/(a*a));0!=o&&(o=Math.sqrt(o)),o=r-o,t.y-n.y>0&&(o=-o),e.y+=o}return e},c}function pB(t){t.shapes().question=aB,t.shapes().hexagon=rB,t.shapes().stadium=hB,t.shapes().subroutine=fB,t.shapes().cylinder=gB,t.shapes().rect_left_inv_arrow=oB,t.shapes().lean_right=sB,t.shapes().lean_left=cB,t.shapes().trapezoid=lB,t.shapes().inv_trapezoid=uB,t.shapes().rect_right_inv_arrow=dB}function bB(t){t({question:aB}),t({hexagon:rB}),t({stadium:hB}),t({subroutine:fB}),t({cylinder:gB}),t({rect_left_inv_arrow:oB}),t({lean_right:sB}),t({lean_left:cB}),t({trapezoid:lB}),t({inv_trapezoid:uB}),t({rect_right_inv_arrow:dB})}function mB(t,e,n,i){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("transform","translate("+-e/2+","+n/2+")")}const yB={addToRender:pB,addToRenderV2:bB},vB={},wB=function(t,e,n,i,a,r){const o=i?i.select(`[id="${n}"]`):un(`[id="${n}"]`),s=a||document;Object.keys(t).forEach((function(n){const i=t[n];let a="default";i.classes.length>0&&(a=i.classes.join(" "));const c=em(i.styles);let l,u=void 0!==i.text?i.text:i.id;if(Xd(Ry().flowchart.htmlLabels)){const t={label:u.replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`))};l=mN(o,t).node(),l.parentNode.removeChild(l)}else{const t=s.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",c.labelStyle.replace("color:","fill:"));const e=u.split(Qd.lineBreakRegex);for(const n of e){const e=s.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),e.setAttribute("dy","1em"),e.setAttribute("x","1"),e.textContent=n,t.appendChild(e)}l=t}let h=0,f="";switch(i.type){case"round":h=5,f="rect";break;case"square":case"group":default:f="rect";break;case"diamond":f="question";break;case"hexagon":f="hexagon";break;case"odd":case"odd_right":f="rect_left_inv_arrow";break;case"lean_right":f="lean_right";break;case"lean_left":f="lean_left";break;case"trapezoid":f="trapezoid";break;case"inv_trapezoid":f="inv_trapezoid";break;case"circle":f="circle";break;case"ellipse":f="ellipse";break;case"stadium":f="stadium";break;case"subroutine":f="subroutine";break;case"cylinder":f="cylinder"}d.warn("Adding node",i.id,i.domId),e.setNode(r.db.lookUpDomId(i.id),{labelType:"svg",labelStyle:c.labelStyle,shape:f,label:l,rx:h,ry:h,class:a,style:c.style,id:r.db.lookUpDomId(i.id)})}))},xB=function(t,e,n){let i,a,r=0;if(void 0!==t.defaultStyle){const e=em(t.defaultStyle);i=e.style,a=e.labelStyle}t.forEach((function(o){r++;var s="L-"+o.start+"-"+o.end,c="LS-"+o.start,l="LE-"+o.end;const u={};"arrow_open"===o.type?u.arrowhead="none":u.arrowhead="normal";let d="",h="";if(void 0!==o.style){const t=em(o.style);d=t.style,h=t.labelStyle}else switch(o.stroke){case"normal":d="fill:none",void 0!==i&&(d=i),void 0!==a&&(h=a);break;case"dotted":d="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":d=" stroke-width: 3.5px;fill:none"}u.style=d,u.labelStyle=h,void 0!==o.interpolate?u.curve=Yb(o.interpolate,Pl):void 0!==t.defaultInterpolate?u.curve=Yb(t.defaultInterpolate,Pl):u.curve=Yb(vB.curve,Pl),void 0===o.text?void 0!==o.style&&(u.arrowheadStyle="fill: #333"):(u.arrowheadStyle="fill: #333",u.labelpos="c",Xd(Ry().flowchart.htmlLabels)?(u.labelType="html",u.label=`<span id="L-${s}" class="edgeLabel L-${c}' L-${l}" style="${u.labelStyle}">${o.text.replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`))}</span>`):(u.labelType="text",u.label=o.text.replace(Qd.lineBreakRegex,"\n"),void 0===o.style&&(u.style=u.style||"stroke: #333; stroke-width: 1.5px;fill:none"),u.labelStyle=u.labelStyle.replace("color:","fill:"))),u.id=s,u.class=c+" "+l,u.minlen=o.length||1,e.setEdge(n.db.lookUpDomId(o.start),n.db.lookUpDomId(o.end),u,r)}))},RB={setConf:function(t){const e=Object.keys(t);for(const n of e)vB[n]=t[n]},addVertices:wB,addEdges:xB,getClasses:function(t,e){d.info("Extracting classes"),e.db.clear();try{return e.parse(t),e.db.getClasses()}catch(n){return d.error(n),{}}},draw:function(t,e,n,i){d.info("Drawing flowchart"),i.db.clear();const{securityLevel:a,flowchart:r}=Ry();let o;"sandbox"===a&&(o=un("#i"+e));const s=un("sandbox"===a?o.nodes()[0].contentDocument.body:"body"),c="sandbox"===a?o.nodes()[0].contentDocument:document;try{i.parser.parse(t)}catch{d.debug("Parsing failed")}let l=i.db.getDirection();void 0===l&&(l="TD");const u=r.nodeSpacing||50,h=r.rankSpacing||50,f=new hA({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:u,ranksep:h,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));let g;const p=i.db.getSubGraphs();for(let d=p.length-1;d>=0;d--)g=p[d],i.db.addVertex(g.id,g.title,"group",void 0,g.classes);const b=i.db.getVertices();d.warn("Get vertices",b);const m=i.db.getEdges();let y=0;for(y=p.length-1;y>=0;y--){g=p[y],dn("cluster").append("text");for(let t=0;t<g.nodes.length;t++)d.warn("Setting subgraph",g.nodes[t],i.db.lookUpDomId(g.nodes[t]),i.db.lookUpDomId(g.id)),f.setParent(i.db.lookUpDomId(g.nodes[t]),i.db.lookUpDomId(g.id))}wB(b,f,e,s,c,i),xB(m,f,i);const v=new JN;yB.addToRender(v),v.arrows().none=function(t,e,n,i){lN(t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 0 0 L 0 0 z"),n[i+"Style"])},v.arrows().normal=function(t,e){t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").attr("class","arrowheadPath").style("stroke-width",1).style("stroke-dasharray","1,0")};const w=s.select(`[id="${e}"]`),x=s.select("#"+e+" g");for(v(x,f),x.selectAll("g.node").attr("title",(function(){return i.db.getTooltip(this.id)})),i.db.indexNodes("subGraph"+y),y=0;y<p.length;y++)if(g=p[y],"undefined"!==g.title){const t=c.querySelectorAll("#"+e+' [id="'+i.db.lookUpDomId(g.id)+'"] rect'),n=c.querySelectorAll("#"+e+' [id="'+i.db.lookUpDomId(g.id)+'"]'),a=t[0].x.baseVal.value,r=t[0].y.baseVal.value,o=t[0].width.baseVal.value,s=un(n[0]).select(".label");s.attr("transform",`translate(${a+o/2}, ${r+14})`),s.attr("id",e+"Text");for(let e=0;e<g.classes.length;e++)n[0].classList.add(g.classes[e])}if(!r.htmlLabels){const t=c.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const e of t){const t=e.getBBox(),n=c.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",t.width),n.setAttribute("height",t.height),e.insertBefore(n,e.firstChild)}}Oy(f,w,r.diagramPadding,r.useMaxWidth),Object.keys(b).forEach((function(t){const n=b[t];if(n.link){const r=s.select("#"+e+' [id="'+i.db.lookUpDomId(t)+'"]');if(r){const t=c.createElementNS("http://www.w3.org/2000/svg","a");t.setAttributeNS("http://www.w3.org/2000/svg","class",n.classes.join(" ")),t.setAttributeNS("http://www.w3.org/2000/svg","href",n.link),t.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===a?t.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):n.linkTarget&&t.setAttributeNS("http://www.w3.org/2000/svg","target",n.linkTarget);const e=r.insert((function(){return t}),":first-child"),i=r.select(".label-container");i&&e.append((function(){return i.node()}));const o=r.select(".label");o&&e.append((function(){return o.node()}))}}}))}},_B={},kB=function(t,e,n,i,a,r){const o=i.select(`[id="${n}"]`);Object.keys(t).forEach((function(n){const i=t[n];let s="default";i.classes.length>0&&(s=i.classes.join(" "));const c=em(i.styles);let l,u=void 0!==i.text?i.text:i.id;if(Xd(Ry().flowchart.htmlLabels)){const t={label:u.replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`))};l=mN(o,t).node(),l.parentNode.removeChild(l)}else{const t=a.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",c.labelStyle.replace("color:","fill:"));const e=u.split(Qd.lineBreakRegex);for(const n of e){const e=a.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),e.setAttribute("dy","1em"),e.setAttribute("x","1"),e.textContent=n,t.appendChild(e)}l=t}let h=0,f="";switch(i.type){case"round":h=5,f="rect";break;case"square":case"group":default:f="rect";break;case"diamond":f="question";break;case"hexagon":f="hexagon";break;case"odd":case"odd_right":f="rect_left_inv_arrow";break;case"lean_right":f="lean_right";break;case"lean_left":f="lean_left";break;case"trapezoid":f="trapezoid";break;case"inv_trapezoid":f="inv_trapezoid";break;case"circle":f="circle";break;case"ellipse":f="ellipse";break;case"stadium":f="stadium";break;case"subroutine":f="subroutine";break;case"cylinder":f="cylinder";break;case"doublecircle":f="doublecircle"}e.setNode(i.id,{labelStyle:c.labelStyle,shape:f,labelText:u,rx:h,ry:h,class:s,style:c.style,id:i.id,link:i.link,linkTarget:i.linkTarget,tooltip:r.db.getTooltip(i.id)||"",domId:r.db.lookUpDomId(i.id),haveCallback:i.haveCallback,width:"group"===i.type?500:void 0,dir:i.dir,type:i.type,props:i.props,padding:Ry().flowchart.padding}),d.info("setNode",{labelStyle:c.labelStyle,shape:f,labelText:u,rx:h,ry:h,class:s,style:c.style,id:i.id,domId:r.db.lookUpDomId(i.id),width:"group"===i.type?500:void 0,type:i.type,dir:i.dir,props:i.props,padding:Ry().flowchart.padding})}))},EB=function(t,e,n){d.info("abc78 edges = ",t);let i,a,r=0,o={};if(void 0!==t.defaultStyle){const e=em(t.defaultStyle);i=e.style,a=e.labelStyle}t.forEach((function(n){r++;var s="L-"+n.start+"-"+n.end;void 0===o[s]?(o[s]=0,d.info("abc78 new entry",s,o[s])):(o[s]++,d.info("abc78 new entry",s,o[s]));let c=s+"-"+o[s];d.info("abc78 new link id to be used is",s,c,o[s]);var l="LS-"+n.start,u="LE-"+n.end;const h={style:"",labelStyle:""};switch(h.minlen=n.length||1,"arrow_open"===n.type?h.arrowhead="none":h.arrowhead="normal",h.arrowTypeStart="arrow_open",h.arrowTypeEnd="arrow_open",n.type){case"double_arrow_cross":h.arrowTypeStart="arrow_cross";case"arrow_cross":h.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":h.arrowTypeStart="arrow_point";case"arrow_point":h.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":h.arrowTypeStart="arrow_circle";case"arrow_circle":h.arrowTypeEnd="arrow_circle"}let f="",g="";switch(n.stroke){case"normal":f="fill:none;",void 0!==i&&(f=i),void 0!==a&&(g=a),h.thickness="normal",h.pattern="solid";break;case"dotted":h.thickness="normal",h.pattern="dotted",h.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":h.thickness="thick",h.pattern="solid",h.style="stroke-width: 3.5px;fill:none;"}if(void 0!==n.style){const t=em(n.style);f=t.style,g=t.labelStyle}h.style=h.style+=f,h.labelStyle=h.labelStyle+=g,void 0!==n.interpolate?h.curve=Yb(n.interpolate,Pl):void 0!==t.defaultInterpolate?h.curve=Yb(t.defaultInterpolate,Pl):h.curve=Yb(_B.curve,Pl),void 0===n.text?void 0!==n.style&&(h.arrowheadStyle="fill: #333"):(h.arrowheadStyle="fill: #333",h.labelpos="c"),h.labelType="text",h.label=n.text.replace(Qd.lineBreakRegex,"\n"),void 0===n.style&&(h.style=h.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),h.labelStyle=h.labelStyle.replace("color:","fill:"),h.id=c,h.classes="flowchart-link "+l+" "+u,e.setEdge(n.start,n.end,h,r)}))},CB={setConf:function(t){const e=Object.keys(t);for(const n of e)_B[n]=t[n]},addVertices:kB,addEdges:EB,getClasses:function(t,e){d.info("Extracting classes"),e.db.clear();try{return e.parse(t),e.db.getClasses()}catch{return}},draw:function(t,e,n,i){d.info("Drawing flowchart"),i.db.clear(),iN.setGen("gen-2"),i.parser.parse(t);let a=i.db.getDirection();void 0===a&&(a="TD");const{securityLevel:r,flowchart:o}=Ry(),s=o.nodeSpacing||50,c=o.rankSpacing||50;let l;"sandbox"===r&&(l=un("#i"+e));const u=un("sandbox"===r?l.nodes()[0].contentDocument.body:"body"),h="sandbox"===r?l.nodes()[0].contentDocument:document,f=new hA({multigraph:!0,compound:!0}).setGraph({rankdir:a,nodesep:s,ranksep:c,marginx:0,marginy:0}).setDefaultEdgeLabel((function(){return{}}));let g;const p=i.db.getSubGraphs();d.info("Subgraphs - ",p);for(let x=p.length-1;x>=0;x--)g=p[x],d.info("Subgraph - ",g),i.db.addVertex(g.id,g.title,"group",void 0,g.classes,g.dir);const b=i.db.getVertices(),m=i.db.getEdges();d.info("Edges",m);let y=0;for(y=p.length-1;y>=0;y--){g=p[y],dn("cluster").append("text");for(let t=0;t<g.nodes.length;t++)d.info("Setting up subgraphs",g.nodes[t],g.id),f.setParent(g.nodes[t],g.id)}kB(b,f,e,u,h,i),EB(m,f);const v=u.select(`[id="${e}"]`),w=u.select("#"+e+" g");if(cO(w,f,["point","circle","cross"],"flowchart",e),vm.insertTitle(v,"flowchartTitleText",o.titleTopMargin,i.db.getDiagramTitle()),Oy(f,v,o.diagramPadding,o.useMaxWidth),i.db.indexNodes("subGraph"+y),!o.htmlLabels){const t=h.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const e of t){const t=e.getBBox(),n=h.createElementNS("http://www.w3.org/2000/svg","rect");n.setAttribute("rx",0),n.setAttribute("ry",0),n.setAttribute("width",t.width),n.setAttribute("height",t.height),e.insertBefore(n,e.firstChild)}}Object.keys(b).forEach((function(t){const n=b[t];if(n.link){const i=un("#"+e+' [id="'+t+'"]');if(i){const t=h.createElementNS("http://www.w3.org/2000/svg","a");t.setAttributeNS("http://www.w3.org/2000/svg","class",n.classes.join(" ")),t.setAttributeNS("http://www.w3.org/2000/svg","href",n.link),t.setAttributeNS("http://www.w3.org/2000/svg","rel","noopener"),"sandbox"===r?t.setAttributeNS("http://www.w3.org/2000/svg","target","_top"):n.linkTarget&&t.setAttributeNS("http://www.w3.org/2000/svg","target",n.linkTarget);const e=i.insert((function(){return t}),":first-child"),a=i.select(".label-container");a&&e.append((function(){return a.node()}));const o=i.select(".label");o&&e.append((function(){return o.node()}))}}}))}};var SB=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,3],n=[1,5],i=[7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],a=[1,15],r=[1,16],o=[1,17],s=[1,18],c=[1,19],l=[1,20],u=[1,21],d=[1,22],h=[1,23],f=[1,24],g=[1,25],p=[1,26],b=[1,27],m=[1,29],y=[1,31],v=[1,34],w=[5,7,9,11,12,13,14,15,16,17,18,19,20,21,23,25,26,28,35,40],x={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,gantt:5,document:6,EOF:7,line:8,SPACE:9,statement:10,NL:11,dateFormat:12,inclusiveEndDates:13,topAxis:14,axisFormat:15,tickInterval:16,excludes:17,includes:18,todayMarker:19,title:20,acc_title:21,acc_title_value:22,acc_descr:23,acc_descr_value:24,acc_descr_multiline_value:25,section:26,clickStatement:27,taskTxt:28,taskData:29,openDirective:30,typeDirective:31,closeDirective:32,":":33,argDirective:34,click:35,callbackname:36,callbackargs:37,href:38,clickStatementDebug:39,open_directive:40,type_directive:41,arg_directive:42,close_directive:43,$accept:0,$end:1},terminals_:{2:"error",5:"gantt",7:"EOF",9:"SPACE",11:"NL",12:"dateFormat",13:"inclusiveEndDates",14:"topAxis",15:"axisFormat",16:"tickInterval",17:"excludes",18:"includes",19:"todayMarker",20:"title",21:"acc_title",22:"acc_title_value",23:"acc_descr",24:"acc_descr_value",25:"acc_descr_multiline_value",26:"section",28:"taskTxt",29:"taskData",33:":",35:"click",36:"callbackname",37:"callbackargs",38:"href",40:"open_directive",41:"type_directive",42:"arg_directive",43:"close_directive"},productions_:[0,[3,2],[3,3],[6,0],[6,2],[8,2],[8,1],[8,1],[8,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,2],[10,1],[4,4],[4,6],[27,2],[27,3],[27,3],[27,4],[27,3],[27,4],[27,2],[39,2],[39,3],[39,3],[39,4],[39,3],[39,4],[39,2],[30,1],[31,1],[34,1],[32,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 2:return r[s-1];case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:this.$=r[s];break;case 9:i.setDateFormat(r[s].substr(11)),this.$=r[s].substr(11);break;case 10:i.enableInclusiveEndDates(),this.$=r[s].substr(18);break;case 11:i.TopAxis(),this.$=r[s].substr(8);break;case 12:i.setAxisFormat(r[s].substr(11)),this.$=r[s].substr(11);break;case 13:i.setTickInterval(r[s].substr(13)),this.$=r[s].substr(13);break;case 14:i.setExcludes(r[s].substr(9)),this.$=r[s].substr(9);break;case 15:i.setIncludes(r[s].substr(9)),this.$=r[s].substr(9);break;case 16:i.setTodayMarker(r[s].substr(12)),this.$=r[s].substr(12);break;case 17:i.setDiagramTitle(r[s].substr(6)),this.$=r[s].substr(6);break;case 18:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 19:case 20:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 21:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 23:i.addTask(r[s-1],r[s]),this.$="task";break;case 27:this.$=r[s-1],i.setClickEvent(r[s-1],r[s],null);break;case 28:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],r[s]);break;case 29:this.$=r[s-2],i.setClickEvent(r[s-2],r[s-1],null),i.setLink(r[s-2],r[s]);break;case 30:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-2],r[s-1]),i.setLink(r[s-3],r[s]);break;case 31:this.$=r[s-2],i.setClickEvent(r[s-2],r[s],null),i.setLink(r[s-2],r[s-1]);break;case 32:this.$=r[s-3],i.setClickEvent(r[s-3],r[s-1],r[s]),i.setLink(r[s-3],r[s-2]);break;case 33:this.$=r[s-1],i.setLink(r[s-1],r[s]);break;case 34:case 40:this.$=r[s-1]+" "+r[s];break;case 35:case 36:case 38:this.$=r[s-2]+" "+r[s-1]+" "+r[s];break;case 37:case 39:this.$=r[s-3]+" "+r[s-2]+" "+r[s-1]+" "+r[s];break;case 41:i.parseDirective("%%{","open_directive");break;case 42:i.parseDirective(r[s],"type_directive");break;case 43:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 44:i.parseDirective("}%%","close_directive","gantt")}},table:[{3:1,4:2,5:e,30:4,40:n},{1:[3]},{3:6,4:2,5:e,30:4,40:n},t(i,[2,3],{6:7}),{31:8,41:[1,9]},{41:[2,41]},{1:[2,1]},{4:30,7:[1,10],8:11,9:[1,12],10:13,11:[1,14],12:a,13:r,14:o,15:s,16:c,17:l,18:u,19:d,20:h,21:f,23:g,25:p,26:b,27:28,28:m,30:4,35:y,40:n},{32:32,33:[1,33],43:v},t([33,43],[2,42]),t(i,[2,8],{1:[2,2]}),t(i,[2,4]),{4:30,10:35,12:a,13:r,14:o,15:s,16:c,17:l,18:u,19:d,20:h,21:f,23:g,25:p,26:b,27:28,28:m,30:4,35:y,40:n},t(i,[2,6]),t(i,[2,7]),t(i,[2,9]),t(i,[2,10]),t(i,[2,11]),t(i,[2,12]),t(i,[2,13]),t(i,[2,14]),t(i,[2,15]),t(i,[2,16]),t(i,[2,17]),{22:[1,36]},{24:[1,37]},t(i,[2,20]),t(i,[2,21]),t(i,[2,22]),{29:[1,38]},t(i,[2,24]),{36:[1,39],38:[1,40]},{11:[1,41]},{34:42,42:[1,43]},{11:[2,44]},t(i,[2,5]),t(i,[2,18]),t(i,[2,19]),t(i,[2,23]),t(i,[2,27],{37:[1,44],38:[1,45]}),t(i,[2,33],{36:[1,46]}),t(w,[2,25]),{32:47,43:v},{43:[2,43]},t(i,[2,28],{38:[1,48]}),t(i,[2,29]),t(i,[2,31],{37:[1,49]}),{11:[1,50]},t(i,[2,30]),t(i,[2,32]),t(w,[2,26])],defaultActions:{5:[2,41],6:[2,1],34:[2,44],43:[2,43]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},R={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),40;case 1:return this.begin("type_directive"),41;case 2:return this.popState(),this.begin("arg_directive"),33;case 3:return this.popState(),this.popState(),43;case 4:return 42;case 5:return this.begin("acc_title"),21;case 6:return this.popState(),"acc_title_value";case 7:return this.begin("acc_descr"),23;case 8:return this.popState(),"acc_descr_value";case 9:this.begin("acc_descr_multiline");break;case 10:case 20:case 23:case 26:case 29:this.popState();break;case 11:return"acc_descr_multiline_value";case 12:case 13:case 14:case 16:case 17:case 18:break;case 15:return 11;case 19:this.begin("href");break;case 21:return 38;case 22:this.begin("callbackname");break;case 24:this.popState(),this.begin("callbackargs");break;case 25:return 36;case 27:return 37;case 28:this.begin("click");break;case 30:return 35;case 31:return 5;case 32:return 12;case 33:return 13;case 34:return 14;case 35:return 15;case 36:return 16;case 37:return 18;case 38:return 17;case 39:return 19;case 40:return"date";case 41:return 20;case 42:return"accDescription";case 43:return 26;case 44:return 28;case 45:return 29;case 46:return 33;case 47:return 7;case 48:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:%%(?!\{)*[^\n]*)/i,/^(?:[^\}]%%*[^\n]*)/i,/^(?:%%*[^\n]*[\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:inclusiveEndDates\b)/i,/^(?:topAxis\b)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:tickInterval\s[^#\n;]+)/i,/^(?:includes\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:todayMarker\s[^\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accDescription\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[10,11],inclusive:!1},acc_descr:{rules:[8],inclusive:!1},acc_title:{rules:[6],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},callbackargs:{rules:[26,27],inclusive:!1},callbackname:{rules:[23,24,25],inclusive:!1},href:{rules:[20,21],inclusive:!1},click:{rules:[29,30],inclusive:!1},INITIAL:{rules:[0,5,7,9,12,13,14,15,16,17,18,19,22,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],inclusive:!0}}};function _(){this.yy={}}return x.lexer=R,_.prototype=x,x.Parser=_,new _}();SB.parser=SB;const TB=SB,AB=t=>null!==t.match(/^\s*gantt/);var DB={};!function(t,e){!function(e,n){t.exports=n()}(0,(function(){var t="day";return function(e,n,i){var a=function(e){return e.add(4-e.isoWeekday(),t)},r=n.prototype;r.isoWeekYear=function(){return a(this).year()},r.isoWeek=function(e){if(!this.$utils().u(e))return this.add(7*(e-this.isoWeek()),t);var n,r,o,s=a(this),c=(n=this.isoWeekYear(),o=4-(r=(this.$u?i.utc:i)().year(n).startOf("year")).isoWeekday(),r.isoWeekday()>4&&(o+=7),r.add(o,t));return s.diff(c,"week")+1},r.isoWeekday=function(t){return this.$utils().u(t)?this.day()||7:this.day(this.day()%7?t:t-7)};var o=r.startOf;r.startOf=function(t,e){var n=this.$utils(),i=!!n.u(e)||e;return"isoweek"===n.p(t)?i?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):o.bind(this)(t,e)}}}))}({get exports(){return DB},set exports(t){DB=t}});const IB=DB;var LB={};!function(t,e){!function(e,n){t.exports=n()}(0,(function(){var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,r={},o=function(t){return(t=+t)+(t>68?1900:2e3)},s=function(t){return function(e){this[t]=+e}},c=[/[+-]\d\d:?(\d\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t||"Z"===t)return 0;var e=t.match(/([+-]|\d\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:"+"===e[0]?-n:n}(t)}],l=function(t){var e=r[t];return e&&(e.indexOf?e:e.s.concat(e.f))},u=function(t,e){var n,i=r.meridiem;if(i){for(var a=1;a<=24;a+=1)if(t.indexOf(i(a,0,e))>-1){n=a>12;break}}else n=t===(e?"pm":"PM");return n},d={A:[a,function(t){this.afternoon=u(t,!1)}],a:[a,function(t){this.afternoon=u(t,!0)}],S:[/\d/,function(t){this.milliseconds=100*+t}],SS:[n,function(t){this.milliseconds=10*+t}],SSS:[/\d{3}/,function(t){this.milliseconds=+t}],s:[i,s("seconds")],ss:[i,s("seconds")],m:[i,s("minutes")],mm:[i,s("minutes")],H:[i,s("hours")],h:[i,s("hours")],HH:[i,s("hours")],hh:[i,s("hours")],D:[i,s("day")],DD:[n,s("day")],Do:[a,function(t){var e=r.ordinal,n=t.match(/\d+/);if(this.day=n[0],e)for(var i=1;i<=31;i+=1)e(i).replace(/\[|\]/g,"")===t&&(this.day=i)}],M:[i,s("month")],MM:[n,s("month")],MMM:[a,function(t){var e=l("months"),n=(l("monthsShort")||e.map((function(t){return t.slice(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[a,function(t){var e=l("months").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\d+/,s("year")],YY:[n,function(t){this.year=o(t)}],YYYY:[/\d{4}/,s("year")],Z:c,ZZ:c};function h(n){var i,a;i=n,a=r&&r.formats;for(var o=(n=i.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,i){var r=i&&i.toUpperCase();return n||a[i]||t[i]||a[r].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),s=o.length,c=0;c<s;c+=1){var l=o[c],u=d[l],h=u&&u[0],f=u&&u[1];o[c]=f?{regex:h,parser:f}:l.replace(/^\[|\]$/g,"")}return function(t){for(var e={},n=0,i=0;n<s;n+=1){var a=o[n];if("string"==typeof a)i+=a.length;else{var r=a.regex,c=a.parser,l=t.slice(i),u=r.exec(l)[0];c.call(e,u),t=t.replace(u,"")}}return function(t){var e=t.afternoon;if(void 0!==e){var n=t.hours;e?n<12&&(t.hours+=12):12===n&&(t.hours=0),delete t.afternoon}}(e),e}}return function(t,e,n){n.p.customParseFormat=!0,t&&t.parseTwoDigitYear&&(o=t.parseTwoDigitYear);var i=e.prototype,a=i.parse;i.parse=function(t){var e=t.date,i=t.utc,o=t.args;this.$u=i;var s=o[1];if("string"==typeof s){var c=!0===o[2],l=!0===o[3],u=c||l,d=o[2];l&&(d=o[2]),r=this.$locale(),!c&&d&&(r=n.Ls[d]),this.$d=function(t,e,n){try{if(["x","X"].indexOf(e)>-1)return new Date(("X"===e?1e3:1)*t);var i=h(e)(t),a=i.year,r=i.month,o=i.day,s=i.hours,c=i.minutes,l=i.seconds,u=i.milliseconds,d=i.zone,f=new Date,g=o||(a||r?1:f.getDate()),p=a||f.getFullYear(),b=0;a&&!r||(b=r>0?r-1:f.getMonth());var m=s||0,y=c||0,v=l||0,w=u||0;return d?new Date(Date.UTC(p,b,g,m,y,v,w+60*d.offset*1e3)):n?new Date(Date.UTC(p,b,g,m,y,v,w)):new Date(p,b,g,m,y,v,w)}catch{return new Date("")}}(e,s,i),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&e!=this.format(s)&&(this.$d=new Date("")),r={}}else if(s instanceof Array)for(var f=s.length,g=1;g<=f;g+=1){o[1]=s[g-1];var p=n.apply(this,o);if(p.isValid()){this.$d=p.$d,this.$L=p.$L,this.init();break}g===f&&(this.$d=new Date(""))}else a.call(this,t)}}}))}({get exports(){return LB},set exports(t){LB=t}});const OB=LB;var MB={};!function(t,e){!function(e,n){t.exports=n()}(0,(function(){return function(t,e){var n=e.prototype,i=n.format;n.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return i.bind(this)(t);var a=this.$utils(),r=(t||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(t){switch(t){case"Q":return Math.ceil((e.$M+1)/3);case"Do":return n.ordinal(e.$D);case"gggg":return e.weekYear();case"GGGG":return e.isoWeekYear();case"wo":return n.ordinal(e.week(),"W");case"w":case"ww":return a.s(e.week(),"w"===t?1:2,"0");case"W":case"WW":return a.s(e.isoWeek(),"W"===t?1:2,"0");case"k":case"kk":return a.s(String(0===e.$H?24:e.$H),"k"===t?1:2,"0");case"X":return Math.floor(e.$d.getTime()/1e3);case"x":return e.$d.getTime();case"z":return"["+e.offsetName()+"]";case"zzz":return"["+e.offsetName("long")+"]";default:return t}}));return i.bind(this)(r)}}}))}({get exports(){return MB},set exports(t){MB=t}});const NB=MB;l.extend(IB),l.extend(OB),l.extend(NB);let BB,PB="",FB="",jB="",$B=[],zB=[],HB={},UB=[],VB=[],qB="";const WB=["active","done","crit","milestone"];let YB=[],GB=!1,ZB=!1,KB=0;const XB=function(){UB=[],VB=[],qB="",YB=[],rP=0,lP=void 0,uP=void 0,dP=[],PB="",FB="",BB=void 0,jB="",$B=[],zB=[],GB=!1,ZB=!1,KB=0,HB={},Qy()},JB=function(){let t=gP();const e=10;let n=0;for(;!t&&n<e;)t=gP(),n++;return VB=dP,VB},QB=function(t,e,n,i){return!i.includes(t.format(e.trim()))&&(!!(t.isoWeekday()>=6&&n.includes("weekends")||n.includes(t.format("dddd").toLowerCase()))||n.includes(t.format(e.trim())))},tP=function(t,e,n,i){if(!n.length||t.manualEndTime)return;let a,r;a=t.startTime instanceof Date?l(t.startTime):l(t.startTime,e,!0),a=a.add(1,"d"),r=t.endTime instanceof Date?l(t.endTime):l(t.endTime,e,!0);const[o,s]=eP(a,r,e,n,i);t.endTime=o.toDate(),t.renderEndTime=s},eP=function(t,e,n,i,a){let r=!1,o=null;for(;t<=e;)r||(o=e.toDate()),r=QB(t,n,i,a),r&&(e=e.add(1,"d")),t=t.add(1,"d");return[e,o]},nP=function(t,e,n){n=n.trim();const i=/^after\s+([\d\w- ]+)/.exec(n.trim());if(null!==i){let t=null;if(i[1].split(" ").forEach((function(e){let n=fP(e);void 0!==n&&(t?n.endTime>t.endTime&&(t=n):t=n)})),t)return t.endTime;{const t=new Date;return t.setHours(0,0,0,0),t}}let a=l(n,e.trim(),!0);if(a.isValid())return a.toDate();{d.debug("Invalid date:"+n),d.debug("With date format:"+e.trim());const t=new Date(n);if(void 0===t||isNaN(t.getTime()))throw new Error("Invalid date:"+n);return t}},iP=function(t){const e=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(t.trim());return null!==e?[Number.parseFloat(e[1]),e[2]]:[NaN,"ms"]},aP=function(t,e,n,i=!1){n=n.trim();let a=l(n,e.trim(),!0);if(a.isValid())return i&&(a=a.add(1,"d")),a.toDate();let r=l(t);const[o,s]=iP(n);if(!Number.isNaN(o)){const t=r.add(o,s);t.isValid()&&(r=t)}return r.toDate()};let rP=0;const oP=function(t){return void 0===t?(rP+=1,"task"+rP):t},sP=function(t,e){let n;n=":"===e.substr(0,1)?e.substr(1,e.length):e;const i=n.split(","),a={};wP(i,a,WB);for(let o=0;o<i.length;o++)i[o]=i[o].trim();let r="";switch(i.length){case 1:a.id=oP(),a.startTime=t.endTime,r=i[0];break;case 2:a.id=oP(),a.startTime=nP(void 0,PB,i[0]),r=i[1];break;case 3:a.id=oP(i[0]),a.startTime=nP(void 0,PB,i[1]),r=i[2]}return r&&(a.endTime=aP(a.startTime,PB,r,GB),a.manualEndTime=l(r,"YYYY-MM-DD",!0).isValid(),tP(a,PB,zB,$B)),a},cP=function(t,e){let n;n=":"===e.substr(0,1)?e.substr(1,e.length):e;const i=n.split(","),a={};wP(i,a,WB);for(let r=0;r<i.length;r++)i[r]=i[r].trim();switch(i.length){case 1:a.id=oP(),a.startTime={type:"prevTaskEnd",id:t},a.endTime={data:i[0]};break;case 2:a.id=oP(),a.startTime={type:"getStartDate",startData:i[0]},a.endTime={data:i[1]};break;case 3:a.id=oP(i[0]),a.startTime={type:"getStartDate",startData:i[1]},a.endTime={data:i[2]}}return a};let lP,uP,dP=[];const hP={},fP=function(t){const e=hP[t];return dP[e]},gP=function(){const t=function(t){const e=dP[t];let n="";switch(dP[t].raw.startTime.type){case"prevTaskEnd":{const t=fP(e.prevTaskId);e.startTime=t.endTime;break}case"getStartDate":n=nP(void 0,PB,dP[t].raw.startTime.startData),n&&(dP[t].startTime=n)}return dP[t].startTime&&(dP[t].endTime=aP(dP[t].startTime,PB,dP[t].raw.endTime.data,GB),dP[t].endTime&&(dP[t].processed=!0,dP[t].manualEndTime=l(dP[t].raw.endTime.data,"YYYY-MM-DD",!0).isValid(),tP(dP[t],PB,zB,$B))),dP[t].processed};let e=!0;for(const[n,i]of dP.entries())t(n),e=e&&i.processed;return e},pP=function(t,e){let n=e;"loose"!==Ry().securityLevel&&(n=p(e)),t.split(",").forEach((function(t){void 0!==fP(t)&&(yP(t,(()=>{window.open(n,"_self")})),HB[t]=n)})),bP(t,"clickable")},bP=function(t,e){t.split(",").forEach((function(t){let n=fP(t);void 0!==n&&n.classes.push(e)}))},mP=function(t,e,n){if("loose"!==Ry().securityLevel||void 0===e)return;let i=[];if("string"==typeof n){i=n.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);for(let t=0;t<i.length;t++){let e=i[t].trim();'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substr(1,e.length-2)),i[t]=e}}0===i.length&&i.push(t),void 0!==fP(t)&&yP(t,(()=>{vm.runFunc(e,...i)}))},yP=function(t,e){YB.push((function(){const n=document.querySelector(`[id="${t}"]`);null!==n&&n.addEventListener("click",(function(){e()}))}),(function(){const n=document.querySelector(`[id="${t}-text"]`);null!==n&&n.addEventListener("click",(function(){e()}))}))},vP={parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().gantt,clear:XB,setDateFormat:function(t){PB=t},getDateFormat:function(){return PB},enableInclusiveEndDates:function(){GB=!0},endDatesAreInclusive:function(){return GB},enableTopAxis:function(){ZB=!0},topAxisEnabled:function(){return ZB},setAxisFormat:function(t){FB=t},getAxisFormat:function(){return FB},setTickInterval:function(t){BB=t},getTickInterval:function(){return BB},setTodayMarker:function(t){jB=t},getTodayMarker:function(){return jB},setAccTitle:tv,getAccTitle:ev,setDiagramTitle:av,getDiagramTitle:rv,setAccDescription:nv,getAccDescription:iv,addSection:function(t){qB=t,UB.push(t)},getSections:function(){return UB},getTasks:JB,addTask:function(t,e){const n={section:qB,type:qB,processed:!1,manualEndTime:!1,renderEndTime:null,raw:{data:e},task:t,classes:[]},i=cP(uP,e);n.raw.startTime=i.startTime,n.raw.endTime=i.endTime,n.id=i.id,n.prevTaskId=uP,n.active=i.active,n.done=i.done,n.crit=i.crit,n.milestone=i.milestone,n.order=KB,KB++;const a=dP.push(n);uP=n.id,hP[n.id]=a-1},findTaskById:fP,addTaskOrg:function(t,e){const n={section:qB,type:qB,description:t,task:t,classes:[]},i=sP(lP,e);n.startTime=i.startTime,n.endTime=i.endTime,n.id=i.id,n.active=i.active,n.done=i.done,n.crit=i.crit,n.milestone=i.milestone,lP=n,VB.push(n)},setIncludes:function(t){$B=t.toLowerCase().split(/[\s,]+/)},getIncludes:function(){return $B},setExcludes:function(t){zB=t.toLowerCase().split(/[\s,]+/)},getExcludes:function(){return zB},setClickEvent:function(t,e,n){t.split(",").forEach((function(t){mP(t,e,n)})),bP(t,"clickable")},setLink:pP,getLinks:function(){return HB},bindFunctions:function(t){YB.forEach((function(e){e(t)}))},parseDuration:iP,isInvalidDate:QB};function wP(t,e,n){let i=!0;for(;i;)i=!1,n.forEach((function(n){const a=new RegExp("^\\s*"+n+"\\s*$");t[0].match(a)&&(e[n]=!0,t.shift(1),i=!0)}))}let xP;const RP={setConf:function(){d.debug("Something is calling, setConf, remove the call")},draw:function(t,e,n,i){const a=Ry().gantt,r=Ry().securityLevel;let o;"sandbox"===r&&(o=un("#i"+e));const s=un("sandbox"===r?o.nodes()[0].contentDocument.body:"body"),c="sandbox"===r?o.nodes()[0].contentDocument:document,u=c.getElementById(e);xP=u.parentElement.offsetWidth,void 0===xP&&(xP=1200),void 0!==a.useWidth&&(xP=a.useWidth);const d=i.db.getTasks(),h=d.length*(a.barHeight+a.barGap)+2*a.topPadding;u.setAttribute("viewBox","0 0 "+xP+" "+h);const f=s.select(`[id="${e}"]`),g=hl().domain([U(d,(function(t){return t.startTime})),H(d,(function(t){return t.endTime}))]).rangeRound([0,xP-a.leftPadding-a.rightPadding]);let p=[];for(const l of d)p.push(l.type);const b=p;function m(t,e){const n=t.startTime,i=e.startTime;let a=0;return n>i?a=1:n<i&&(a=-1),a}function y(t,e,n){const r=a.barHeight,o=r+a.barGap,s=a.topPadding,c=a.leftPadding,l=Fo().domain([0,p.length]).range(["#00B9FA","#F95002"]).interpolate(Gi);w(o,s,c,e,n,t,i.db.getExcludes(),i.db.getIncludes()),x(c,s,e,n),v(t,o,s,c,r,l,e),R(o,s),_(c,s,e,n)}function v(t,n,r,o,s,c,l){f.append("g").selectAll("rect").data(t).enter().append("rect").attr("x",0).attr("y",(function(t,e){return t.order*n+r-2})).attr("width",(function(){return l-a.rightPadding/2})).attr("height",n).attr("class",(function(t){for(const[e,n]of p.entries())if(t.type===n)return"section section"+e%a.numberSectionStyles;return"section section0"}));const u=f.append("g").selectAll("rect").data(t).enter(),d=i.db.getLinks();if(u.append("rect").attr("id",(function(t){return t.id})).attr("rx",3).attr("ry",3).attr("x",(function(t){return t.milestone?g(t.startTime)+o+.5*(g(t.endTime)-g(t.startTime))-.5*s:g(t.startTime)+o})).attr("y",(function(t,e){return t.order*n+r})).attr("width",(function(t){return t.milestone?s:g(t.renderEndTime||t.endTime)-g(t.startTime)})).attr("height",s).attr("transform-origin",(function(t,e){return e=t.order,(g(t.startTime)+o+.5*(g(t.endTime)-g(t.startTime))).toString()+"px "+(e*n+r+.5*s).toString()+"px"})).attr("class",(function(t){const e="task";let n="";t.classes.length>0&&(n=t.classes.join(" "));let i=0;for(const[o,s]of p.entries())t.type===s&&(i=o%a.numberSectionStyles);let r="";return t.active?t.crit?r+=" activeCrit":r=" active":t.done?r=t.crit?" doneCrit":" done":t.crit&&(r+=" crit"),0===r.length&&(r=" task"),t.milestone&&(r=" milestone "+r),r+=i,r+=" "+n,e+r})),u.append("text").attr("id",(function(t){return t.id+"-text"})).text((function(t){return t.task})).attr("font-size",a.fontSize).attr("x",(function(t){let e=g(t.startTime),n=g(t.renderEndTime||t.endTime);t.milestone&&(e+=.5*(g(t.endTime)-g(t.startTime))-.5*s),t.milestone&&(n=e+s);const i=this.getBBox().width;return i>n-e?n+i+1.5*a.leftPadding>l?e+o-5:n+o+5:(n-e)/2+e+o})).attr("y",(function(t,e){return t.order*n+a.barHeight/2+(a.fontSize/2-2)+r})).attr("text-height",s).attr("class",(function(t){const e=g(t.startTime);let n=g(t.endTime);t.milestone&&(n=e+s);const i=this.getBBox().width;let r="";t.classes.length>0&&(r=t.classes.join(" "));let o=0;for(const[s,l]of p.entries())t.type===l&&(o=s%a.numberSectionStyles);let c="";return t.active&&(c=t.crit?"activeCritText"+o:"activeText"+o),t.done?c=t.crit?c+" doneCritText"+o:c+" doneText"+o:t.crit&&(c=c+" critText"+o),t.milestone&&(c+=" milestoneText"),i>n-e?n+i+1.5*a.leftPadding>l?r+" taskTextOutsideLeft taskTextOutside"+o+" "+c:r+" taskTextOutsideRight taskTextOutside"+o+" "+c+" width-"+i:r+" taskText taskText"+o+" "+c+" width-"+i})),"sandbox"===Ry().securityLevel){let t;t=un("#i"+e);const n=t.nodes()[0].contentDocument;u.filter((function(t){return void 0!==d[t.id]})).each((function(t){var e=n.querySelector("#"+t.id),i=n.querySelector("#"+t.id+"-text");const a=e.parentNode;var r=n.createElement("a");r.setAttribute("xlink:href",d[t.id]),r.setAttribute("target","_top"),a.appendChild(r),r.appendChild(e),r.appendChild(i)}))}}function w(t,e,n,r,o,s,c,u){const d=s.reduce(((t,{startTime:e})=>t?Math.min(t,e):e),0),h=s.reduce(((t,{endTime:e})=>t?Math.max(t,e):e),0),p=i.db.getDateFormat();if(!d||!h)return;const b=[];let m=null,y=l(d);for(;y.valueOf()<=h;)i.db.isInvalidDate(y,p,c,u)?m?m.end=y:m={start:y,end:y}:m&&(b.push(m),m=null),y=y.add(1,"d");f.append("g").selectAll("rect").data(b).enter().append("rect").attr("id",(function(t){return"exclude-"+t.start.format("YYYY-MM-DD")})).attr("x",(function(t){return g(t.start)+n})).attr("y",a.gridLineStartPadding).attr("width",(function(t){const e=t.end.add(1,"day");return g(e)-g(t.start)})).attr("height",o-e-a.gridLineStartPadding).attr("transform-origin",(function(e,i){return(g(e.start)+n+.5*(g(e.end)-g(e.start))).toString()+"px "+(i*t+.5*o).toString()+"px"})).attr("class","exclude-range")}function x(t,e,n,r){let o=it(g).tickSize(-r+e+a.gridLineStartPadding).tickFormat(Vs(i.db.getAxisFormat()||a.axisFormat||"%Y-%m-%d"));const s=/^([1-9]\d*)(minute|hour|day|week|month)$/.exec(i.db.getTickInterval()||a.tickInterval);if(null!==s){const t=s[1];switch(s[2]){case"minute":o.ticks(es.every(t));break;case"hour":o.ticks(is.every(t));break;case"day":o.ticks(rs.every(t));break;case"week":o.ticks(ss.every(t));break;case"month":o.ticks(ps.every(t))}}if(f.append("g").attr("class","grid").attr("transform","translate("+t+", "+(r-50)+")").call(o).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10).attr("dy","1em"),i.db.topAxisEnabled()||a.topAxis){let n=nt(g).tickSize(-r+e+a.gridLineStartPadding).tickFormat(Vs(i.db.getAxisFormat()||a.axisFormat||"%Y-%m-%d"));if(null!==s){const t=s[1];switch(s[2]){case"minute":n.ticks(es.every(t));break;case"hour":n.ticks(is.every(t));break;case"day":n.ticks(rs.every(t));break;case"week":n.ticks(ss.every(t));break;case"month":n.ticks(ps.every(t))}}f.append("g").attr("class","grid").attr("transform","translate("+t+", "+e+")").call(n).selectAll("text").style("text-anchor","middle").attr("fill","#000").attr("stroke","none").attr("font-size",10)}}function R(t,e){const n=[];let i=0;for(const[a,r]of p.entries())n[a]=[r,C(r,b)];f.append("g").selectAll("text").data(n).enter().append((function(t){const e=t[0].split(Qd.lineBreakRegex),n=-(e.length-1)/2,i=c.createElementNS("http://www.w3.org/2000/svg","text");i.setAttribute("dy",n+"em");for(const[a,r]of e.entries()){const t=c.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttribute("alignment-baseline","central"),t.setAttribute("x","10"),a>0&&t.setAttribute("dy","1em"),t.textContent=r,i.appendChild(t)}return i})).attr("x",10).attr("y",(function(a,r){if(!(r>0))return a[1]*t/2+e;for(let o=0;o<r;o++)return i+=n[r-1][1],a[1]*t/2+i*t+e})).attr("font-size",a.sectionFontSize).attr("font-size",a.sectionFontSize).attr("class",(function(t){for(const[e,n]of p.entries())if(t[0]===n)return"sectionTitle sectionTitle"+e%a.numberSectionStyles;return"sectionTitle"}))}function _(t,e,n,r){const o=i.db.getTodayMarker();if("off"===o)return;const s=f.append("g").attr("class","today"),c=new Date,l=s.append("line");l.attr("x1",g(c)+t).attr("x2",g(c)+t).attr("y1",a.titleTopMargin).attr("y2",r-a.titleTopMargin).attr("class","today"),""!==o&&l.attr("style",o.replace(/,/g,";"))}function k(t){const e={},n=[];for(let i=0,a=t.length;i<a;++i)Object.prototype.hasOwnProperty.call(e,t[i])||(e[t[i]]=!0,n.push(t[i]));return n}function E(t){let e=t.length;const n={};for(;e;)n[t[--e]]=(n[t[e]]||0)+1;return n}function C(t,e){return E(e)[t]||0}p=k(p),d.sort(m),y(d,xP,h),Ly(f,h,xP,a.useMaxWidth),f.append("text").text(i.db.getDiagramTitle()).attr("x",xP/2).attr("y",a.titleTopMargin).attr("class","titleText")}};var _P=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[6,9,10],n={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,$accept:0,$end:1},terminals_:{2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1]],performAction:function(t,e,n,i,a,r,o){switch(r.length,a){case 1:return i;case 4:break;case 6:i.setInfo(!0)}},table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8]},{1:[2,1]},t(e,[2,3]),t(e,[2,4]),t(e,[2,5]),t(e,[2,6])],defaultActions:{4:[2,1]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},i={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return 4;case 1:return 9;case 2:return"space";case 3:return 10;case 4:return 6;case 5:return"TXT"}},rules:[/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5],inclusive:!0}}};function a(){this.yy={}}return n.lexer=i,a.prototype=n,n.Parser=a,new a}();_P.parser=_P;const kP=_P;var EP="",CP=!1;const SP={setMessage:t=>{d.debug("Setting message to: "+t),EP=t},getMessage:()=>EP,setInfo:t=>{CP=t},getInfo:()=>CP,clear:Qy},TP={draw:(t,e,n)=>{try{d.debug("Rendering info diagram\n"+t);const i=Ry().securityLevel;let a;"sandbox"===i&&(a=un("#i"+e));const r=un("sandbox"===i?a.nodes()[0].contentDocument.body:"body").select("#"+e);r.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size","32px").style("text-anchor","middle").text("v "+n),r.attr("height",100),r.attr("width",400)}catch(o){d.error("Error while rendering info diagram"),d.error(o.message)}}},AP=t=>null!==t.match(/^\s*info/);var DP=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,4],n=[1,5],i=[1,6],a=[1,7],r=[1,9],o=[1,11,13,15,17,19,20,26,27,28,29],s=[2,5],c=[1,6,11,13,15,17,19,20,26,27,28,29],l=[26,27,28],u=[2,8],d=[1,18],h=[1,19],f=[1,20],g=[1,21],p=[1,22],b=[1,23],m=[1,28],y=[6,26,27,28,29],v={trace:function(){},yy:{},symbols_:{error:2,start:3,eol:4,directive:5,PIE:6,document:7,showData:8,line:9,statement:10,txt:11,value:12,title:13,title_value:14,acc_title:15,acc_title_value:16,acc_descr:17,acc_descr_value:18,acc_descr_multiline_value:19,section:20,openDirective:21,typeDirective:22,closeDirective:23,":":24,argDirective:25,NEWLINE:26,";":27,EOF:28,open_directive:29,type_directive:30,arg_directive:31,close_directive:32,$accept:0,$end:1},terminals_:{2:"error",6:"PIE",8:"showData",11:"txt",12:"value",13:"title",14:"title_value",15:"acc_title",16:"acc_title_value",17:"acc_descr",18:"acc_descr_value",19:"acc_descr_multiline_value",20:"section",24:":",26:"NEWLINE",27:";",28:"EOF",29:"open_directive",30:"type_directive",31:"arg_directive",32:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,3],[7,0],[7,2],[9,2],[10,0],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,1],[5,3],[5,5],[4,1],[4,1],[4,1],[21,1],[22,1],[25,1],[23,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:i.setShowData(!0);break;case 7:this.$=r[s-1];break;case 9:i.addSection(r[s-1],i.cleanupValue(r[s]));break;case 10:this.$=r[s].trim(),i.setDiagramTitle(this.$);break;case 11:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 12:case 13:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 14:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 21:i.parseDirective("%%{","open_directive");break;case 22:i.parseDirective(r[s],"type_directive");break;case 23:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 24:i.parseDirective("}%%","close_directive","pie")}},table:[{3:1,4:2,5:3,6:e,21:8,26:n,27:i,28:a,29:r},{1:[3]},{3:10,4:2,5:3,6:e,21:8,26:n,27:i,28:a,29:r},{3:11,4:2,5:3,6:e,21:8,26:n,27:i,28:a,29:r},t(o,s,{7:12,8:[1,13]}),t(c,[2,18]),t(c,[2,19]),t(c,[2,20]),{22:14,30:[1,15]},{30:[2,21]},{1:[2,1]},{1:[2,2]},t(l,u,{21:8,9:16,10:17,5:24,1:[2,3],11:d,13:h,15:f,17:g,19:p,20:b,29:r}),t(o,s,{7:25}),{23:26,24:[1,27],32:m},t([24,32],[2,22]),t(o,[2,6]),{4:29,26:n,27:i,28:a},{12:[1,30]},{14:[1,31]},{16:[1,32]},{18:[1,33]},t(l,[2,13]),t(l,[2,14]),t(l,[2,15]),t(l,u,{21:8,9:16,10:17,5:24,1:[2,4],11:d,13:h,15:f,17:g,19:p,20:b,29:r}),t(y,[2,16]),{25:34,31:[1,35]},t(y,[2,24]),t(o,[2,7]),t(l,[2,9]),t(l,[2,10]),t(l,[2,11]),t(l,[2,12]),{23:36,32:m},{32:[2,23]},t(y,[2,17])],defaultActions:{9:[2,21],10:[2,1],11:[2,2],35:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},w={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),29;case 1:return this.begin("type_directive"),30;case 2:return this.popState(),this.begin("arg_directive"),24;case 3:return this.popState(),this.popState(),32;case 4:return 31;case 5:case 6:case 8:case 9:break;case 7:return 26;case 10:return this.begin("title"),13;case 11:return this.popState(),"title_value";case 12:return this.begin("acc_title"),15;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),17;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:case 20:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:this.begin("string");break;case 21:return"txt";case 22:return 6;case 23:return 8;case 24:return"value";case 25:return 28}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[\s]+)/i,/^(?:title\b)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:pie\b)/i,/^(?:showData\b)/i,/^(?::[\s]*[\d]+(?:\.[\d]+)?)/i,/^(?:$)/i],conditions:{acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},title:{rules:[11],inclusive:!1},string:{rules:[20,21],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,12,14,16,19,22,23,24,25],inclusive:!0}}};function x(){this.yy={}}return v.lexer=w,x.prototype=v,v.Parser=x,new x}();DP.parser=DP;const IP=DP,LP=t=>null!==t.match(/^\s*pie/)||null!==t.match(/^\s*bar/);let OP={},MP=!1;const NP={parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().pie,addSection:function(t,e){t=Qd.sanitizeText(t,Ry()),void 0===OP[t]&&(OP[t]=e,d.debug("Added new section :",t))},getSections:()=>OP,cleanupValue:function(t){return":"===t.substring(0,1)&&(t=t.substring(1).trim()),Number(t.trim())},clear:function(){OP={},MP=!1,Qy()},setAccTitle:tv,getAccTitle:ev,setDiagramTitle:av,getDiagramTitle:rv,setShowData:function(t){MP=t},getShowData:function(){return MP},getAccDescription:iv,setAccDescription:nv};let BP,PP=Ry();const FP=450,jP={draw:(t,e,n,i)=>{try{PP=Ry(),d.debug("Rendering info diagram\n"+t);const n=Ry().securityLevel;let y;"sandbox"===n&&(y=un("#i"+e));const v=un("sandbox"===n?y.nodes()[0].contentDocument.body:"body"),w="sandbox"===n?y.nodes()[0].contentDocument:document;i.db.clear(),i.parser.parse(t),d.debug("Parsed info diagram");const x=w.getElementById(e);BP=x.parentElement.offsetWidth,void 0===BP&&(BP=1200),void 0!==PP.useWidth&&(BP=PP.useWidth),void 0!==PP.pie.useWidth&&(BP=PP.pie.useWidth);const R=v.select("#"+e);Ly(R,FP,BP,PP.pie.useMaxWidth),x.setAttribute("viewBox","0 0 "+BP+" "+FP);var a=40,r=18,o=4,s=Math.min(BP,FP)/2-a,c=R.append("g").attr("transform","translate("+BP/2+","+FP/2+")"),l=i.db.getSections(),u=0;Object.keys(l).forEach((function(t){u+=l[t]}));const _=PP.themeVariables;var h=[_.pie1,_.pie2,_.pie3,_.pie4,_.pie5,_.pie6,_.pie7,_.pie8,_.pie9,_.pie10,_.pie11,_.pie12],f=ko().range(h),g=Object.entries(l).map((function(t,e){return{order:e,name:t[0],value:t[1]}})),p=Ul().value((function(t){return t.value})).sort((function(t,e){return t.order-e.order}))(g),b=Ml().innerRadius(0).outerRadius(s);c.selectAll("mySlices").data(p).enter().append("path").attr("d",b).attr("fill",(function(t){return f(t.data.name)})).attr("class","pieCircle"),c.selectAll("mySlices").data(p).enter().append("text").text((function(t){return(t.data.value/u*100).toFixed(0)+"%"})).attr("transform",(function(t){return"translate("+b.centroid(t)+")"})).style("text-anchor","middle").attr("class","slice"),c.append("text").text(i.db.getDiagramTitle()).attr("x",0).attr("y",-(FP-50)/2).attr("class","pieTitleText");var m=c.selectAll(".legend").data(f.domain()).enter().append("g").attr("class","legend").attr("transform",(function(t,e){const n=r+o,i=n*f.domain().length/2;return"translate("+12*r+","+(e*n-i)+")"}));m.append("rect").attr("width",r).attr("height",r).style("fill",f).style("stroke",f),m.data(p).append("text").attr("x",r+o).attr("y",r-o).text((function(t){return i.db.getShowData()||PP.showData||PP.pie.showData?t.data.name+" ["+t.data.value+"]":t.data.name}))}catch(y){d.error("Error while rendering info diagram"),d.error(y)}}};var $P=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,3],n=[1,5],i=[1,6],a=[1,7],r=[1,8],o=[5,6,8,14,16,18,19,40,41,42,43,44,45,53,71,72],s=[1,22],c=[2,13],l=[1,26],u=[1,27],d=[1,28],h=[1,29],f=[1,30],g=[1,31],p=[1,24],b=[1,32],m=[1,33],y=[1,36],v=[71,72],w=[5,8,14,16,18,19,40,41,42,43,44,45,53,60,62,71,72],x=[1,56],R=[1,57],_=[1,58],k=[1,59],E=[1,60],C=[1,61],S=[1,62],T=[62,63],A=[1,74],D=[1,70],I=[1,71],L=[1,72],O=[1,73],M=[1,75],N=[1,79],B=[1,80],P=[1,77],F=[1,78],j=[5,8,14,16,18,19,40,41,42,43,44,45,53,71,72],$={trace:function(){},yy:{},symbols_:{error:2,start:3,directive:4,NEWLINE:5,RD:6,diagram:7,EOF:8,openDirective:9,typeDirective:10,closeDirective:11,":":12,argDirective:13,acc_title:14,acc_title_value:15,acc_descr:16,acc_descr_value:17,acc_descr_multiline_value:18,open_directive:19,type_directive:20,arg_directive:21,close_directive:22,requirementDef:23,elementDef:24,relationshipDef:25,requirementType:26,requirementName:27,STRUCT_START:28,requirementBody:29,ID:30,COLONSEP:31,id:32,TEXT:33,text:34,RISK:35,riskLevel:36,VERIFYMTHD:37,verifyType:38,STRUCT_STOP:39,REQUIREMENT:40,FUNCTIONAL_REQUIREMENT:41,INTERFACE_REQUIREMENT:42,PERFORMANCE_REQUIREMENT:43,PHYSICAL_REQUIREMENT:44,DESIGN_CONSTRAINT:45,LOW_RISK:46,MED_RISK:47,HIGH_RISK:48,VERIFY_ANALYSIS:49,VERIFY_DEMONSTRATION:50,VERIFY_INSPECTION:51,VERIFY_TEST:52,ELEMENT:53,elementName:54,elementBody:55,TYPE:56,type:57,DOCREF:58,ref:59,END_ARROW_L:60,relationship:61,LINE:62,END_ARROW_R:63,CONTAINS:64,COPIES:65,DERIVES:66,SATISFIES:67,VERIFIES:68,REFINES:69,TRACES:70,unqString:71,qString:72,$accept:0,$end:1},terminals_:{2:"error",5:"NEWLINE",6:"RD",8:"EOF",12:":",14:"acc_title",15:"acc_title_value",16:"acc_descr",17:"acc_descr_value",18:"acc_descr_multiline_value",19:"open_directive",20:"type_directive",21:"arg_directive",22:"close_directive",28:"STRUCT_START",30:"ID",31:"COLONSEP",33:"TEXT",35:"RISK",37:"VERIFYMTHD",39:"STRUCT_STOP",40:"REQUIREMENT",41:"FUNCTIONAL_REQUIREMENT",42:"INTERFACE_REQUIREMENT",43:"PERFORMANCE_REQUIREMENT",44:"PHYSICAL_REQUIREMENT",45:"DESIGN_CONSTRAINT",46:"LOW_RISK",47:"MED_RISK",48:"HIGH_RISK",49:"VERIFY_ANALYSIS",50:"VERIFY_DEMONSTRATION",51:"VERIFY_INSPECTION",52:"VERIFY_TEST",53:"ELEMENT",56:"TYPE",58:"DOCREF",60:"END_ARROW_L",62:"LINE",63:"END_ARROW_R",64:"CONTAINS",65:"COPIES",66:"DERIVES",67:"SATISFIES",68:"VERIFIES",69:"REFINES",70:"TRACES",71:"unqString",72:"qString"},productions_:[0,[3,3],[3,2],[3,4],[4,3],[4,5],[4,2],[4,2],[4,1],[9,1],[10,1],[13,1],[11,1],[7,0],[7,2],[7,2],[7,2],[7,2],[7,2],[23,5],[29,5],[29,5],[29,5],[29,5],[29,2],[29,1],[26,1],[26,1],[26,1],[26,1],[26,1],[26,1],[36,1],[36,1],[36,1],[38,1],[38,1],[38,1],[38,1],[24,5],[55,5],[55,5],[55,2],[55,1],[25,5],[25,5],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[61,1],[27,1],[27,1],[32,1],[32,1],[34,1],[34,1],[54,1],[54,1],[57,1],[57,1],[59,1],[59,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 6:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 7:case 8:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 9:i.parseDirective("%%{","open_directive");break;case 10:i.parseDirective(r[s],"type_directive");break;case 11:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 12:i.parseDirective("}%%","close_directive","pie");break;case 13:this.$=[];break;case 19:i.addRequirement(r[s-3],r[s-4]);break;case 20:i.setNewReqId(r[s-2]);break;case 21:i.setNewReqText(r[s-2]);break;case 22:i.setNewReqRisk(r[s-2]);break;case 23:i.setNewReqVerifyMethod(r[s-2]);break;case 26:this.$=i.RequirementType.REQUIREMENT;break;case 27:this.$=i.RequirementType.FUNCTIONAL_REQUIREMENT;break;case 28:this.$=i.RequirementType.INTERFACE_REQUIREMENT;break;case 29:this.$=i.RequirementType.PERFORMANCE_REQUIREMENT;break;case 30:this.$=i.RequirementType.PHYSICAL_REQUIREMENT;break;case 31:this.$=i.RequirementType.DESIGN_CONSTRAINT;break;case 32:this.$=i.RiskLevel.LOW_RISK;break;case 33:this.$=i.RiskLevel.MED_RISK;break;case 34:this.$=i.RiskLevel.HIGH_RISK;break;case 35:this.$=i.VerifyType.VERIFY_ANALYSIS;break;case 36:this.$=i.VerifyType.VERIFY_DEMONSTRATION;break;case 37:this.$=i.VerifyType.VERIFY_INSPECTION;break;case 38:this.$=i.VerifyType.VERIFY_TEST;break;case 39:i.addElement(r[s-3]);break;case 40:i.setNewElementType(r[s-2]);break;case 41:i.setNewElementDocRef(r[s-2]);break;case 44:i.addRelationship(r[s-2],r[s],r[s-4]);break;case 45:i.addRelationship(r[s-2],r[s-4],r[s]);break;case 46:this.$=i.Relationships.CONTAINS;break;case 47:this.$=i.Relationships.COPIES;break;case 48:this.$=i.Relationships.DERIVES;break;case 49:this.$=i.Relationships.SATISFIES;break;case 50:this.$=i.Relationships.VERIFIES;break;case 51:this.$=i.Relationships.REFINES;break;case 52:this.$=i.Relationships.TRACES}},table:[{3:1,4:2,6:e,9:4,14:n,16:i,18:a,19:r},{1:[3]},{3:10,4:2,5:[1,9],6:e,9:4,14:n,16:i,18:a,19:r},{5:[1,11]},{10:12,20:[1,13]},{15:[1,14]},{17:[1,15]},t(o,[2,8]),{20:[2,9]},{3:16,4:2,6:e,9:4,14:n,16:i,18:a,19:r},{1:[2,2]},{4:21,5:s,7:17,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{11:34,12:[1,35],22:y},t([12,22],[2,10]),t(o,[2,6]),t(o,[2,7]),{1:[2,1]},{8:[1,37]},{4:21,5:s,7:38,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{4:21,5:s,7:39,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{4:21,5:s,7:40,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{4:21,5:s,7:41,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{4:21,5:s,7:42,8:c,9:4,14:n,16:i,18:a,19:r,23:18,24:19,25:20,26:23,32:25,40:l,41:u,42:d,43:h,44:f,45:g,53:p,71:b,72:m},{27:43,71:[1,44],72:[1,45]},{54:46,71:[1,47],72:[1,48]},{60:[1,49],62:[1,50]},t(v,[2,26]),t(v,[2,27]),t(v,[2,28]),t(v,[2,29]),t(v,[2,30]),t(v,[2,31]),t(w,[2,55]),t(w,[2,56]),t(o,[2,4]),{13:51,21:[1,52]},t(o,[2,12]),{1:[2,3]},{8:[2,14]},{8:[2,15]},{8:[2,16]},{8:[2,17]},{8:[2,18]},{28:[1,53]},{28:[2,53]},{28:[2,54]},{28:[1,54]},{28:[2,59]},{28:[2,60]},{61:55,64:x,65:R,66:_,67:k,68:E,69:C,70:S},{61:63,64:x,65:R,66:_,67:k,68:E,69:C,70:S},{11:64,22:y},{22:[2,11]},{5:[1,65]},{5:[1,66]},{62:[1,67]},t(T,[2,46]),t(T,[2,47]),t(T,[2,48]),t(T,[2,49]),t(T,[2,50]),t(T,[2,51]),t(T,[2,52]),{63:[1,68]},t(o,[2,5]),{5:A,29:69,30:D,33:I,35:L,37:O,39:M},{5:N,39:B,55:76,56:P,58:F},{32:81,71:b,72:m},{32:82,71:b,72:m},t(j,[2,19]),{31:[1,83]},{31:[1,84]},{31:[1,85]},{31:[1,86]},{5:A,29:87,30:D,33:I,35:L,37:O,39:M},t(j,[2,25]),t(j,[2,39]),{31:[1,88]},{31:[1,89]},{5:N,39:B,55:90,56:P,58:F},t(j,[2,43]),t(j,[2,44]),t(j,[2,45]),{32:91,71:b,72:m},{34:92,71:[1,93],72:[1,94]},{36:95,46:[1,96],47:[1,97],48:[1,98]},{38:99,49:[1,100],50:[1,101],51:[1,102],52:[1,103]},t(j,[2,24]),{57:104,71:[1,105],72:[1,106]},{59:107,71:[1,108],72:[1,109]},t(j,[2,42]),{5:[1,110]},{5:[1,111]},{5:[2,57]},{5:[2,58]},{5:[1,112]},{5:[2,32]},{5:[2,33]},{5:[2,34]},{5:[1,113]},{5:[2,35]},{5:[2,36]},{5:[2,37]},{5:[2,38]},{5:[1,114]},{5:[2,61]},{5:[2,62]},{5:[1,115]},{5:[2,63]},{5:[2,64]},{5:A,29:116,30:D,33:I,35:L,37:O,39:M},{5:A,29:117,30:D,33:I,35:L,37:O,39:M},{5:A,29:118,30:D,33:I,35:L,37:O,39:M},{5:A,29:119,30:D,33:I,35:L,37:O,39:M},{5:N,39:B,55:120,56:P,58:F},{5:N,39:B,55:121,56:P,58:F},t(j,[2,20]),t(j,[2,21]),t(j,[2,22]),t(j,[2,23]),t(j,[2,40]),t(j,[2,41])],defaultActions:{8:[2,9],10:[2,2],16:[2,1],37:[2,3],38:[2,14],39:[2,15],40:[2,16],41:[2,17],42:[2,18],44:[2,53],45:[2,54],47:[2,59],48:[2,60],52:[2,11],93:[2,57],94:[2,58],96:[2,32],97:[2,33],98:[2,34],100:[2,35],101:[2,36],102:[2,37],103:[2,38],105:[2,61],106:[2,62],108:[2,63],109:[2,64]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},z={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),19;case 1:return this.begin("type_directive"),20;case 2:return this.popState(),this.begin("arg_directive"),12;case 3:return this.popState(),this.popState(),22;case 4:return 21;case 5:return"title";case 6:return this.begin("acc_title"),14;case 7:return this.popState(),"acc_title_value";case 8:return this.begin("acc_descr"),16;case 9:return this.popState(),"acc_descr_value";case 10:this.begin("acc_descr_multiline");break;case 11:case 53:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:return 5;case 14:case 15:case 16:break;case 17:return 8;case 18:return 6;case 19:return 28;case 20:return 39;case 21:return 31;case 22:return 30;case 23:return 33;case 24:return 35;case 25:return 37;case 26:return 40;case 27:return 41;case 28:return 42;case 29:return 43;case 30:return 44;case 31:return 45;case 32:return 46;case 33:return 47;case 34:return 48;case 35:return 49;case 36:return 50;case 37:return 51;case 38:return 52;case 39:return 53;case 40:return 64;case 41:return 65;case 42:return 66;case 43:return 67;case 44:return 68;case 45:return 69;case 46:return 70;case 47:return 56;case 48:return 58;case 49:return 60;case 50:return 63;case 51:return 62;case 52:this.begin("string");break;case 54:return"qString";case 55:return e.yytext=e.yytext.trim(),71}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:(\r?\n)+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:$)/i,/^(?:requirementDiagram\b)/i,/^(?:\{)/i,/^(?:\})/i,/^(?::)/i,/^(?:id\b)/i,/^(?:text\b)/i,/^(?:risk\b)/i,/^(?:verifyMethod\b)/i,/^(?:requirement\b)/i,/^(?:functionalRequirement\b)/i,/^(?:interfaceRequirement\b)/i,/^(?:performanceRequirement\b)/i,/^(?:physicalRequirement\b)/i,/^(?:designConstraint\b)/i,/^(?:low\b)/i,/^(?:medium\b)/i,/^(?:high\b)/i,/^(?:analysis\b)/i,/^(?:demonstration\b)/i,/^(?:inspection\b)/i,/^(?:test\b)/i,/^(?:element\b)/i,/^(?:contains\b)/i,/^(?:copies\b)/i,/^(?:derives\b)/i,/^(?:satisfies\b)/i,/^(?:verifies\b)/i,/^(?:refines\b)/i,/^(?:traces\b)/i,/^(?:type\b)/i,/^(?:docref\b)/i,/^(?:<-)/i,/^(?:->)/i,/^(?:-)/i,/^(?:["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[\w][^\r\n\{\<\>\-\=]*)/i],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},close_directive:{rules:[],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},open_directive:{rules:[1],inclusive:!1},unqString:{rules:[],inclusive:!1},token:{rules:[],inclusive:!1},string:{rules:[53,54],inclusive:!1},INITIAL:{rules:[0,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55],inclusive:!0}}};function H(){this.yy={}}return $.lexer=z,H.prototype=$,$.Parser=H,new H}();$P.parser=$P;const zP=$P,HP=t=>null!==t.match(/^\s*requirement(Diagram)?/);let UP=[],VP={},qP={},WP={},YP={};const GP={RequirementType:{REQUIREMENT:"Requirement",FUNCTIONAL_REQUIREMENT:"Functional Requirement",INTERFACE_REQUIREMENT:"Interface Requirement",PERFORMANCE_REQUIREMENT:"Performance Requirement",PHYSICAL_REQUIREMENT:"Physical Requirement",DESIGN_CONSTRAINT:"Design Constraint"},RiskLevel:{LOW_RISK:"Low",MED_RISK:"Medium",HIGH_RISK:"High"},VerifyType:{VERIFY_ANALYSIS:"Analysis",VERIFY_DEMONSTRATION:"Demonstration",VERIFY_INSPECTION:"Inspection",VERIFY_TEST:"Test"},Relationships:{CONTAINS:"contains",COPIES:"copies",DERIVES:"derives",SATISFIES:"satisfies",VERIFIES:"verifies",REFINES:"refines",TRACES:"traces"},parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().req,addRequirement:(t,e)=>(void 0===qP[t]&&(qP[t]={name:t,type:e,id:VP.id,text:VP.text,risk:VP.risk,verifyMethod:VP.verifyMethod}),VP={},qP[t]),getRequirements:()=>qP,setNewReqId:t=>{void 0!==VP&&(VP.id=t)},setNewReqText:t=>{void 0!==VP&&(VP.text=t)},setNewReqRisk:t=>{void 0!==VP&&(VP.risk=t)},setNewReqVerifyMethod:t=>{void 0!==VP&&(VP.verifyMethod=t)},setAccTitle:tv,getAccTitle:ev,setAccDescription:nv,getAccDescription:iv,addElement:t=>(void 0===YP[t]&&(YP[t]={name:t,type:WP.type,docRef:WP.docRef},d.info("Added new requirement: ",t)),WP={},YP[t]),getElements:()=>YP,setNewElementType:t=>{void 0!==WP&&(WP.type=t)},setNewElementDocRef:t=>{void 0!==WP&&(WP.docRef=t)},addRelationship:(t,e,n)=>{UP.push({type:t,src:e,dst:n})},getRelationships:()=>UP,clear:()=>{UP=[],VP={},qP={},WP={},YP={},Qy()}},ZP={CONTAINS:"contains",ARROW:"arrow"},KP={ReqMarkers:ZP,insertLineEndings:(t,e)=>{let n=t.append("defs").append("marker").attr("id",ZP.CONTAINS+"_line_ending").attr("refX",0).attr("refY",e.line_height/2).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("g");n.append("circle").attr("cx",e.line_height/2).attr("cy",e.line_height/2).attr("r",e.line_height/2).attr("fill","none"),n.append("line").attr("x1",0).attr("x2",e.line_height).attr("y1",e.line_height/2).attr("y2",e.line_height/2).attr("stroke-width",1),n.append("line").attr("y1",0).attr("y2",e.line_height).attr("x1",e.line_height/2).attr("x2",e.line_height/2).attr("stroke-width",1),t.append("defs").append("marker").attr("id",ZP.ARROW+"_line_ending").attr("refX",e.line_height).attr("refY",.5*e.line_height).attr("markerWidth",e.line_height).attr("markerHeight",e.line_height).attr("orient","auto").append("path").attr("d",`M0,0\n L${e.line_height},${e.line_height/2}\n M${e.line_height},${e.line_height/2}\n L0,${e.line_height}`).attr("stroke-width",1)}};let XP={},JP=0;const QP=(t,e)=>t.insert("rect","#"+e).attr("class","req reqBox").attr("x",0).attr("y",0).attr("width",XP.rect_min_width+"px").attr("height",XP.rect_min_height+"px"),tF=(t,e,n)=>{let i=XP.rect_min_width/2,a=t.append("text").attr("class","req reqLabel reqTitle").attr("id",e).attr("x",i).attr("y",XP.rect_padding).attr("dominant-baseline","hanging"),r=0;n.forEach((t=>{0==r?a.append("tspan").attr("text-anchor","middle").attr("x",XP.rect_min_width/2).attr("dy",0).text(t):a.append("tspan").attr("text-anchor","middle").attr("x",XP.rect_min_width/2).attr("dy",.75*XP.line_height).text(t),r++}));let o=1.5*XP.rect_padding+r*XP.line_height*.75;return t.append("line").attr("class","req-title-line").attr("x1","0").attr("x2",XP.rect_min_width).attr("y1",o).attr("y2",o),{titleNode:a,y:o}},eF=(t,e,n,i)=>{let a=t.append("text").attr("class","req reqLabel").attr("id",e).attr("x",XP.rect_padding).attr("y",i).attr("dominant-baseline","hanging"),r=0;const o=30;let s=[];return n.forEach((t=>{let e=t.length;for(;e>o&&r<3;){let n=t.substring(0,o);e=(t=t.substring(o,t.length)).length,s[s.length]=n,r++}if(3==r){let t=s[s.length-1];s[s.length-1]=t.substring(0,t.length-4)+"..."}else s[s.length]=t;r=0})),s.forEach((t=>{a.append("tspan").attr("x",XP.rect_padding).attr("dy",XP.line_height).text(t)})),a},nF=(t,e,n,i)=>{const a=e.node().getTotalLength(),r=e.node().getPointAtLength(.5*a),o="rel"+JP;JP++;const s=t.append("text").attr("class","req relationshipLabel").attr("id",o).attr("x",r.x).attr("y",r.y).attr("text-anchor","middle").attr("dominant-baseline","middle").text(i).node().getBBox();t.insert("rect","#"+o).attr("class","req reqLabelBox").attr("x",r.x-s.width/2).attr("y",r.y-s.height/2).attr("width",s.width).attr("height",s.height).attr("fill","white").attr("fill-opacity","85%")},iF=function(t,e,n,i,a){const r=n.edge(cF(e.src),cF(e.dst)),o=$l().x((function(t){return t.x})).y((function(t){return t.y})),s=t.insert("path","#"+i).attr("class","er relationshipLine").attr("d",o(r.points)).attr("fill","none");e.type==a.db.Relationships.CONTAINS?s.attr("marker-start","url("+Qd.getUrl(XP.arrowMarkerAbsolute)+"#"+e.type+"_line_ending)"):(s.attr("stroke-dasharray","10,7"),s.attr("marker-end","url("+Qd.getUrl(XP.arrowMarkerAbsolute)+"#"+KP.ReqMarkers.ARROW+"_line_ending)")),nF(t,s,XP,`<<${e.type}>>`)},aF=(t,e,n)=>{Object.keys(t).forEach((i=>{let a=t[i];i=cF(i),d.info("Added new requirement: ",i);const r=n.append("g").attr("id",i),o=QP(r,"req-"+i);let s=tF(r,i+"_title",[`<<${a.type}>>`,`${a.name}`]);eF(r,i+"_body",[`Id: ${a.id}`,`Text: ${a.text}`,`Risk: ${a.risk}`,`Verification: ${a.verifyMethod}`],s.y);const c=o.node().getBBox();e.setNode(i,{width:c.width,height:c.height,shape:"rect",id:i})}))},rF=(t,e,n)=>{Object.keys(t).forEach((i=>{let a=t[i];const r=cF(i),o=n.append("g").attr("id",r),s="element-"+r,c=QP(o,s);let l=tF(o,s+"_title",["<<Element>>",`${i}`]);eF(o,s+"_body",[`Type: ${a.type||"Not Specified"}`,`Doc Ref: ${a.docRef||"None"}`],l.y);const u=c.node().getBBox();e.setNode(r,{width:u.width,height:u.height,shape:"rect",id:r})}))},oF=(t,e)=>(t.forEach((function(t){let n=cF(t.src),i=cF(t.dst);e.setEdge(n,i,{relationship:t})})),t),sF=function(t,e){e.nodes().forEach((function(n){void 0!==n&&void 0!==e.node(n)&&(t.select("#"+n),t.select("#"+n).attr("transform","translate("+(e.node(n).x-e.node(n).width/2)+","+(e.node(n).y-e.node(n).height/2)+" )"))}))},cF=t=>t.replace(/\s/g,"").replace(/\./g,"_"),lF={draw:(t,e,n,i)=>{XP=Ry().requirement,i.db.clear(),i.parser.parse(t);const a=XP.securityLevel;let r;"sandbox"===a&&(r=un("#i"+e));const o=un("sandbox"===a?r.nodes()[0].contentDocument.body:"body").select(`[id='${e}']`);KP.insertLineEndings(o,XP);const s=new hA({multigraph:!1,compound:!1,directed:!0}).setGraph({rankdir:XP.layoutDirection,marginx:20,marginy:20,nodesep:100,edgesep:100,ranksep:100}).setDefaultEdgeLabel((function(){return{}}));let c=i.db.getRequirements(),l=i.db.getElements(),u=i.db.getRelationships();aF(c,s,o),rF(l,s,o),oF(u,s),yI(s),sF(o,s),u.forEach((function(t){iF(o,t,s,e,i)}));const d=XP.rect_padding,h=o.node().getBBox(),f=h.width+2*d,g=h.height+2*d;Ly(o,g,f,XP.useMaxWidth),o.attr("viewBox",`${h.x-d} ${h.y-d} ${f} ${g}`)}};var uF=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,3],i=[1,5],a=[1,7],r=[2,5],o=[1,15],s=[1,17],c=[1,19],l=[1,21],u=[1,22],d=[1,23],h=[1,29],f=[1,30],g=[1,31],p=[1,32],b=[1,33],m=[1,34],y=[1,35],v=[1,36],w=[1,37],x=[1,38],R=[1,39],_=[1,40],k=[1,42],E=[1,43],C=[1,45],S=[1,46],T=[1,47],A=[1,48],D=[1,49],I=[1,50],L=[1,53],O=[1,4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,52,53,54,56,57,62,63,64,65,73,83],M=[4,5,21,54,56],N=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,54,56,57,62,63,64,65,73,83],B=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,53,54,56,57,62,63,64,65,73,83],P=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,52,54,56,57,62,63,64,65,73,83],F=[4,5,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,54,56,57,62,63,64,65,73,83],j=[71,72,73],$=[1,125],z=[1,4,5,7,19,21,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,51,52,53,54,56,57,62,63,64,65,73,83],H={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NEWLINE:5,directive:6,SD:7,document:8,line:9,statement:10,box_section:11,box_line:12,participant_statement:13,openDirective:14,typeDirective:15,closeDirective:16,":":17,argDirective:18,box:19,restOfLine:20,end:21,signal:22,autonumber:23,NUM:24,off:25,activate:26,actor:27,deactivate:28,note_statement:29,links_statement:30,link_statement:31,properties_statement:32,details_statement:33,title:34,legacy_title:35,acc_title:36,acc_title_value:37,acc_descr:38,acc_descr_value:39,acc_descr_multiline_value:40,loop:41,rect:42,opt:43,alt:44,else_sections:45,par:46,par_sections:47,critical:48,option_sections:49,break:50,option:51,and:52,else:53,participant:54,AS:55,participant_actor:56,note:57,placement:58,text2:59,over:60,actor_pair:61,links:62,link:63,properties:64,details:65,spaceList:66,",":67,left_of:68,right_of:69,signaltype:70,"+":71,"-":72,ACTOR:73,SOLID_OPEN_ARROW:74,DOTTED_OPEN_ARROW:75,SOLID_ARROW:76,DOTTED_ARROW:77,SOLID_CROSS:78,DOTTED_CROSS:79,SOLID_POINT:80,DOTTED_POINT:81,TXT:82,open_directive:83,type_directive:84,arg_directive:85,close_directive:86,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NEWLINE",7:"SD",17:":",19:"box",20:"restOfLine",21:"end",23:"autonumber",24:"NUM",25:"off",26:"activate",28:"deactivate",34:"title",35:"legacy_title",36:"acc_title",37:"acc_title_value",38:"acc_descr",39:"acc_descr_value",40:"acc_descr_multiline_value",41:"loop",42:"rect",43:"opt",44:"alt",46:"par",48:"critical",50:"break",51:"option",52:"and",53:"else",54:"participant",55:"AS",56:"participant_actor",57:"note",60:"over",62:"links",63:"link",64:"properties",65:"details",67:",",68:"left_of",69:"right_of",71:"+",72:"-",73:"ACTOR",74:"SOLID_OPEN_ARROW",75:"DOTTED_OPEN_ARROW",76:"SOLID_ARROW",77:"DOTTED_ARROW",78:"SOLID_CROSS",79:"DOTTED_CROSS",80:"SOLID_POINT",81:"DOTTED_POINT",82:"TXT",83:"open_directive",84:"type_directive",85:"arg_directive",86:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[11,0],[11,2],[12,2],[12,1],[12,1],[6,4],[6,6],[10,1],[10,4],[10,2],[10,4],[10,3],[10,3],[10,2],[10,3],[10,3],[10,2],[10,2],[10,2],[10,2],[10,2],[10,1],[10,1],[10,2],[10,2],[10,1],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,4],[10,1],[49,1],[49,4],[47,1],[47,4],[45,1],[45,4],[13,5],[13,3],[13,5],[13,3],[29,4],[29,4],[30,3],[31,3],[32,3],[33,3],[66,2],[66,1],[61,3],[61,1],[58,1],[58,1],[22,5],[22,5],[22,4],[27,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[59,1],[14,1],[15,1],[18,1],[16,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:return i.apply(r[s]),r[s];case 5:case 10:case 9:case 14:this.$=[];break;case 6:case 11:r[s-1].push(r[s]),this.$=r[s-1];break;case 7:case 8:case 12:case 13:case 63:this.$=r[s];break;case 18:r[s-1].unshift({type:"boxStart",boxData:i.parseBoxData(r[s-2])}),r[s-1].push({type:"boxEnd",boxText:r[s-2]}),this.$=r[s-1];break;case 20:this.$={type:"sequenceIndex",sequenceIndex:Number(r[s-2]),sequenceIndexStep:Number(r[s-1]),sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 21:this.$={type:"sequenceIndex",sequenceIndex:Number(r[s-1]),sequenceIndexStep:1,sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 22:this.$={type:"sequenceIndex",sequenceVisible:!1,signalType:i.LINETYPE.AUTONUMBER};break;case 23:this.$={type:"sequenceIndex",sequenceVisible:!0,signalType:i.LINETYPE.AUTONUMBER};break;case 24:this.$={type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:r[s-1]};break;case 25:this.$={type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:r[s-1]};break;case 31:i.setDiagramTitle(r[s].substring(6)),this.$=r[s].substring(6);break;case 32:i.setDiagramTitle(r[s].substring(7)),this.$=r[s].substring(7);break;case 33:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 34:case 35:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 36:r[s-1].unshift({type:"loopStart",loopText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.LOOP_START}),r[s-1].push({type:"loopEnd",loopText:r[s-2],signalType:i.LINETYPE.LOOP_END}),this.$=r[s-1];break;case 37:r[s-1].unshift({type:"rectStart",color:i.parseMessage(r[s-2]),signalType:i.LINETYPE.RECT_START}),r[s-1].push({type:"rectEnd",color:i.parseMessage(r[s-2]),signalType:i.LINETYPE.RECT_END}),this.$=r[s-1];break;case 38:r[s-1].unshift({type:"optStart",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.OPT_START}),r[s-1].push({type:"optEnd",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.OPT_END}),this.$=r[s-1];break;case 39:r[s-1].unshift({type:"altStart",altText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.ALT_START}),r[s-1].push({type:"altEnd",signalType:i.LINETYPE.ALT_END}),this.$=r[s-1];break;case 40:r[s-1].unshift({type:"parStart",parText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.PAR_START}),r[s-1].push({type:"parEnd",signalType:i.LINETYPE.PAR_END}),this.$=r[s-1];break;case 41:r[s-1].unshift({type:"criticalStart",criticalText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.CRITICAL_START}),r[s-1].push({type:"criticalEnd",signalType:i.LINETYPE.CRITICAL_END}),this.$=r[s-1];break;case 42:r[s-1].unshift({type:"breakStart",breakText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.BREAK_START}),r[s-1].push({type:"breakEnd",optText:i.parseMessage(r[s-2]),signalType:i.LINETYPE.BREAK_END}),this.$=r[s-1];break;case 45:this.$=r[s-3].concat([{type:"option",optionText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.CRITICAL_OPTION},r[s]]);break;case 47:this.$=r[s-3].concat([{type:"and",parText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.PAR_AND},r[s]]);break;case 49:this.$=r[s-3].concat([{type:"else",altText:i.parseMessage(r[s-1]),signalType:i.LINETYPE.ALT_ELSE},r[s]]);break;case 50:r[s-3].type="addParticipant",r[s-3].description=i.parseMessage(r[s-1]),this.$=r[s-3];break;case 51:r[s-1].type="addParticipant",this.$=r[s-1];break;case 52:r[s-3].type="addActor",r[s-3].description=i.parseMessage(r[s-1]),this.$=r[s-3];break;case 53:r[s-1].type="addActor",this.$=r[s-1];break;case 54:this.$=[r[s-1],{type:"addNote",placement:r[s-2],actor:r[s-1].actor,text:r[s]}];break;case 55:r[s-2]=[].concat(r[s-1],r[s-1]).slice(0,2),r[s-2][0]=r[s-2][0].actor,r[s-2][1]=r[s-2][1].actor,this.$=[r[s-1],{type:"addNote",placement:i.PLACEMENT.OVER,actor:r[s-2].slice(0,2),text:r[s]}];break;case 56:this.$=[r[s-1],{type:"addLinks",actor:r[s-1].actor,text:r[s]}];break;case 57:this.$=[r[s-1],{type:"addALink",actor:r[s-1].actor,text:r[s]}];break;case 58:this.$=[r[s-1],{type:"addProperties",actor:r[s-1].actor,text:r[s]}];break;case 59:this.$=[r[s-1],{type:"addDetails",actor:r[s-1].actor,text:r[s]}];break;case 62:this.$=[r[s-2],r[s]];break;case 64:this.$=i.PLACEMENT.LEFTOF;break;case 65:this.$=i.PLACEMENT.RIGHTOF;break;case 66:this.$=[r[s-4],r[s-1],{type:"addMessage",from:r[s-4].actor,to:r[s-1].actor,signalType:r[s-3],msg:r[s]},{type:"activeStart",signalType:i.LINETYPE.ACTIVE_START,actor:r[s-1]}];break;case 67:this.$=[r[s-4],r[s-1],{type:"addMessage",from:r[s-4].actor,to:r[s-1].actor,signalType:r[s-3],msg:r[s]},{type:"activeEnd",signalType:i.LINETYPE.ACTIVE_END,actor:r[s-4]}];break;case 68:this.$=[r[s-3],r[s-1],{type:"addMessage",from:r[s-3].actor,to:r[s-1].actor,signalType:r[s-2],msg:r[s]}];break;case 69:this.$={type:"addParticipant",actor:r[s]};break;case 70:this.$=i.LINETYPE.SOLID_OPEN;break;case 71:this.$=i.LINETYPE.DOTTED_OPEN;break;case 72:this.$=i.LINETYPE.SOLID;break;case 73:this.$=i.LINETYPE.DOTTED;break;case 74:this.$=i.LINETYPE.SOLID_CROSS;break;case 75:this.$=i.LINETYPE.DOTTED_CROSS;break;case 76:this.$=i.LINETYPE.SOLID_POINT;break;case 77:this.$=i.LINETYPE.DOTTED_POINT;break;case 78:this.$=i.parseMessage(r[s].trim().substring(1));break;case 79:i.parseDirective("%%{","open_directive");break;case 80:i.parseDirective(r[s],"type_directive");break;case 81:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 82:i.parseDirective("}%%","close_directive","sequence")}},table:[{3:1,4:e,5:n,6:4,7:i,14:6,83:a},{1:[3]},{3:8,4:e,5:n,6:4,7:i,14:6,83:a},{3:9,4:e,5:n,6:4,7:i,14:6,83:a},{3:10,4:e,5:n,6:4,7:i,14:6,83:a},t([1,4,5,19,23,26,28,34,35,36,38,40,41,42,43,44,46,48,50,54,56,57,62,63,64,65,73,83],r,{8:11}),{15:12,84:[1,13]},{84:[2,79]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{16:51,17:[1,52],86:L},t([17,86],[2,80]),t(O,[2,6]),{6:41,10:54,13:18,14:6,19:c,22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},t(O,[2,8]),t(O,[2,9]),t(O,[2,17]),{20:[1,55]},{5:[1,56]},{5:[1,59],24:[1,57],25:[1,58]},{27:60,73:I},{27:61,73:I},{5:[1,62]},{5:[1,63]},{5:[1,64]},{5:[1,65]},{5:[1,66]},t(O,[2,31]),t(O,[2,32]),{37:[1,67]},{39:[1,68]},t(O,[2,35]),{20:[1,69]},{20:[1,70]},{20:[1,71]},{20:[1,72]},{20:[1,73]},{20:[1,74]},{20:[1,75]},t(O,[2,43]),{27:76,73:I},{27:77,73:I},{70:78,74:[1,79],75:[1,80],76:[1,81],77:[1,82],78:[1,83],79:[1,84],80:[1,85],81:[1,86]},{58:87,60:[1,88],68:[1,89],69:[1,90]},{27:91,73:I},{27:92,73:I},{27:93,73:I},{27:94,73:I},t([5,55,67,74,75,76,77,78,79,80,81,82],[2,69]),{5:[1,95]},{18:96,85:[1,97]},{5:[2,82]},t(O,[2,7]),t(M,[2,10],{11:98}),t(O,[2,19]),{5:[1,100],24:[1,99]},{5:[1,101]},t(O,[2,23]),{5:[1,102]},{5:[1,103]},t(O,[2,26]),t(O,[2,27]),t(O,[2,28]),t(O,[2,29]),t(O,[2,30]),t(O,[2,33]),t(O,[2,34]),t(N,r,{8:104}),t(N,r,{8:105}),t(N,r,{8:106}),t(B,r,{45:107,8:108}),t(P,r,{47:109,8:110}),t(F,r,{49:111,8:112}),t(N,r,{8:113}),{5:[1,115],55:[1,114]},{5:[1,117],55:[1,116]},{27:120,71:[1,118],72:[1,119],73:I},t(j,[2,70]),t(j,[2,71]),t(j,[2,72]),t(j,[2,73]),t(j,[2,74]),t(j,[2,75]),t(j,[2,76]),t(j,[2,77]),{27:121,73:I},{27:123,61:122,73:I},{73:[2,64]},{73:[2,65]},{59:124,82:$},{59:126,82:$},{59:127,82:$},{59:128,82:$},t(z,[2,15]),{16:129,86:L},{86:[2,81]},{4:[1,132],5:[1,134],12:131,13:133,21:[1,130],54:k,56:E},{5:[1,135]},t(O,[2,21]),t(O,[2,22]),t(O,[2,24]),t(O,[2,25]),{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[1,136],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[1,137],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[1,138],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{21:[1,139]},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[2,48],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,53:[1,140],54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{21:[1,141]},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[2,46],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,52:[1,142],54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{21:[1,143]},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[2,44],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,51:[1,144],54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{4:o,5:s,6:41,9:14,10:16,13:18,14:6,19:c,21:[1,145],22:20,23:l,26:u,27:44,28:d,29:24,30:25,31:26,32:27,33:28,34:h,35:f,36:g,38:p,40:b,41:m,42:y,43:v,44:w,46:x,48:R,50:_,54:k,56:E,57:C,62:S,63:T,64:A,65:D,73:I,83:a},{20:[1,146]},t(O,[2,51]),{20:[1,147]},t(O,[2,53]),{27:148,73:I},{27:149,73:I},{59:150,82:$},{59:151,82:$},{59:152,82:$},{67:[1,153],82:[2,63]},{5:[2,56]},{5:[2,78]},{5:[2,57]},{5:[2,58]},{5:[2,59]},{5:[1,154]},t(O,[2,18]),t(M,[2,11]),{13:155,54:k,56:E},t(M,[2,13]),t(M,[2,14]),t(O,[2,20]),t(O,[2,36]),t(O,[2,37]),t(O,[2,38]),t(O,[2,39]),{20:[1,156]},t(O,[2,40]),{20:[1,157]},t(O,[2,41]),{20:[1,158]},t(O,[2,42]),{5:[1,159]},{5:[1,160]},{59:161,82:$},{59:162,82:$},{5:[2,68]},{5:[2,54]},{5:[2,55]},{27:163,73:I},t(z,[2,16]),t(M,[2,12]),t(B,r,{8:108,45:164}),t(P,r,{8:110,47:165}),t(F,r,{8:112,49:166}),t(O,[2,50]),t(O,[2,52]),{5:[2,66]},{5:[2,67]},{82:[2,62]},{21:[2,49]},{21:[2,47]},{21:[2,45]}],defaultActions:{7:[2,79],8:[2,1],9:[2,2],10:[2,3],53:[2,82],89:[2,64],90:[2,65],97:[2,81],124:[2,56],125:[2,78],126:[2,57],127:[2,58],128:[2,59],150:[2,68],151:[2,54],152:[2,55],161:[2,66],162:[2,67],163:[2,62],164:[2,49],165:[2,47],166:[2,45]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},U={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),83;case 1:return this.begin("type_directive"),84;case 2:return this.popState(),this.begin("arg_directive"),17;case 3:return this.popState(),this.popState(),86;case 4:return 85;case 5:case 53:case 66:return 5;case 6:case 7:case 8:case 9:case 10:break;case 11:return 24;case 12:return this.begin("LINE"),19;case 13:return this.begin("ID"),54;case 14:return this.begin("ID"),56;case 15:return e.yytext=e.yytext.trim(),this.begin("ALIAS"),73;case 16:return this.popState(),this.popState(),this.begin("LINE"),55;case 17:return this.popState(),this.popState(),5;case 18:return this.begin("LINE"),41;case 19:return this.begin("LINE"),42;case 20:return this.begin("LINE"),43;case 21:return this.begin("LINE"),44;case 22:return this.begin("LINE"),53;case 23:return this.begin("LINE"),46;case 24:return this.begin("LINE"),52;case 25:return this.begin("LINE"),48;case 26:return this.begin("LINE"),51;case 27:return this.begin("LINE"),50;case 28:return this.popState(),20;case 29:return 21;case 30:return 68;case 31:return 69;case 32:return 62;case 33:return 63;case 34:return 64;case 35:return 65;case 36:return 60;case 37:return 57;case 38:return this.begin("ID"),26;case 39:return this.begin("ID"),28;case 40:return 34;case 41:return 35;case 42:return this.begin("acc_title"),36;case 43:return this.popState(),"acc_title_value";case 44:return this.begin("acc_descr"),38;case 45:return this.popState(),"acc_descr_value";case 46:this.begin("acc_descr_multiline");break;case 47:this.popState();break;case 48:return"acc_descr_multiline_value";case 49:return 7;case 50:return 23;case 51:return 25;case 52:return 67;case 54:return e.yytext=e.yytext.trim(),73;case 55:return 76;case 56:return 77;case 57:return 74;case 58:return 75;case 59:return 78;case 60:return 79;case 61:return 80;case 62:return 81;case 63:return 82;case 64:return 71;case 65:return 72;case 67:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[0-9]+(?=[ \n]+))/i,/^(?:box\b)/i,/^(?:participant\b)/i,/^(?:actor\b)/i,/^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i,/^(?:as\b)/i,/^(?:(?:))/i,/^(?:loop\b)/i,/^(?:rect\b)/i,/^(?:opt\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:par\b)/i,/^(?:and\b)/i,/^(?:critical\b)/i,/^(?:option\b)/i,/^(?:break\b)/i,/^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:links\b)/i,/^(?:link\b)/i,/^(?:properties\b)/i,/^(?:details\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:activate\b)/i,/^(?:deactivate\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:title:\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:sequenceDiagram\b)/i,/^(?:autonumber\b)/i,/^(?:off\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?:-[\)])/i,/^(?:--[\)])/i,/^(?::(?:(?:no)?wrap)?[^#\n;]+)/i,/^(?:\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{acc_descr_multiline:{rules:[47,48],inclusive:!1},acc_descr:{rules:[45],inclusive:!1},acc_title:{rules:[43],inclusive:!1},open_directive:{rules:[1,8],inclusive:!1},type_directive:{rules:[2,3,8],inclusive:!1},arg_directive:{rules:[3,4,8],inclusive:!1},ID:{rules:[7,8,15],inclusive:!1},ALIAS:{rules:[7,8,16,17],inclusive:!1},LINE:{rules:[7,8,28],inclusive:!1},INITIAL:{rules:[0,5,6,8,9,10,11,12,13,14,18,19,20,21,22,23,24,25,26,27,29,30,31,32,33,34,35,36,37,38,39,40,41,42,44,46,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],inclusive:!0}}};function V(){this.yy={}}return H.lexer=U,V.prototype=H,H.Parser=V,new V}();uF.parser=uF;const dF=uF,hF=t=>null!==t.match(/^\s*sequenceDiagram/);let fF,gF,pF,bF={},mF=[],yF=[],vF=!1;const wF=function(t){mF.push({name:t.text,wrap:void 0===t.wrap&&CF()||!!t.wrap,fill:t.color,actorKeys:[]}),pF=mF.slice(-1)[0]},xF=function(t,e,n,i){let a=pF;const r=bF[t];if(r){if(pF&&r.box&&pF!==r.box)throw new Error("A same participant should only be defined in one Box: "+r.name+" can't be in '"+r.box.name+"' and in '"+pF.name+"' at the same time.");if(a=r.box?r.box:pF,r.box=a,r&&e===r.name&&null==n)return}(null==n||null==n.text)&&(n={text:e,wrap:null,type:i}),(null==i||null==n.text)&&(n={text:e,wrap:null,type:i}),bF[t]={box:a,name:e,description:n.text,wrap:void 0===n.wrap&&CF()||!!n.wrap,prevActor:fF,links:{},properties:{},actorCnt:null,rectData:null,type:i||"participant"},fF&&bF[fF]&&(bF[fF].nextActor=t),pF&&pF.actorKeys.push(t),fF=t},RF=t=>{let e,n=0;for(e=0;e<yF.length;e++)yF[e].type===SF.ACTIVE_START&&yF[e].from.actor===t&&n++,yF[e].type===SF.ACTIVE_END&&yF[e].from.actor===t&&n--;return n},_F=function(t,e,n,i){yF.push({from:t,to:e,message:n.text,wrap:void 0===n.wrap&&CF()||!!n.wrap,answer:i})},kF=function(t,e,n={text:void 0,wrap:void 0},i){if(i===SF.ACTIVE_END&&RF(t.actor)<1){let e=new Error("Trying to inactivate an inactive participant ("+t.actor+")");throw e.hash={text:"->>-",token:"->>-",line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:["'ACTIVE_PARTICIPANT'"]},e}return yF.push({from:t,to:e,message:n.text,wrap:void 0===n.wrap&&CF()||!!n.wrap,type:i}),!0},EF=function(t){return bF[t]},CF=()=>void 0!==gF?gF:Ry().sequence.wrap,SF={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25,AUTONUMBER:26,CRITICAL_START:27,CRITICAL_OPTION:28,CRITICAL_END:29,BREAK_START:30,BREAK_END:31},TF=function(t,e,n){n.text,void 0===n.wrap&&CF()||n.wrap;const i=[].concat(t,t);yF.push({from:i[0],to:i[1],message:n.text,wrap:void 0===n.wrap&&CF()||!!n.wrap,type:SF.NOTE,placement:e})},AF=function(t,e){const n=EF(t);try{let t=Wd(e.text,Ry());t=t.replace(/&/g,"&"),t=t.replace(/=/g,"="),IF(n,JSON.parse(t))}catch(o){d.error("error while parsing actor link text",o)}},DF=function(t,e){const n=EF(t);try{const t={};let o=Wd(e.text,Ry());var i=o.indexOf("@");o=o.replace(/&/g,"&"),o=o.replace(/=/g,"=");var a=o.slice(0,i-1).trim(),r=o.slice(i+1).trim();t[a]=r,IF(n,t)}catch(o){d.error("error while parsing actor link text",o)}};function IF(t,e){if(null==t.links)t.links=e;else for(let n in e)t.links[n]=e[n]}const LF=function(t,e){const n=EF(t);try{let t=Wd(e.text,Ry());OF(n,JSON.parse(t))}catch(o){d.error("error while parsing actor properties text",o)}};function OF(t,e){if(null==t.properties)t.properties=e;else for(let n in e)t.properties[n]=e[n]}function MF(){pF=void 0}const NF=function(t,e){const n=EF(t),i=document.getElementById(e.text);try{const t=i.innerHTML,e=JSON.parse(t);e.properties&&OF(n,e.properties),e.links&&IF(n,e.links)}catch(a){d.error("error while parsing actor details text",a)}},BF=function(t){if(Array.isArray(t))t.forEach((function(t){BF(t)}));else switch(t.type){case"sequenceIndex":yF.push({from:void 0,to:void 0,message:{start:t.sequenceIndex,step:t.sequenceIndexStep,visible:t.sequenceVisible},wrap:!1,type:t.signalType});break;case"addParticipant":xF(t.actor,t.actor,t.description,"participant");break;case"addActor":xF(t.actor,t.actor,t.description,"actor");break;case"activeStart":case"activeEnd":kF(t.actor,void 0,void 0,t.signalType);break;case"addNote":TF(t.actor,t.placement,t.text);break;case"addLinks":AF(t.actor,t.text);break;case"addALink":DF(t.actor,t.text);break;case"addProperties":LF(t.actor,t.text);break;case"addDetails":NF(t.actor,t.text);break;case"addMessage":kF(t.from,t.to,t.msg,t.signalType);break;case"boxStart":wF(t.boxData);break;case"boxEnd":MF();break;case"loopStart":kF(void 0,void 0,t.loopText,t.signalType);break;case"loopEnd":case"rectEnd":case"optEnd":case"altEnd":case"parEnd":case"criticalEnd":case"breakEnd":kF(void 0,void 0,void 0,t.signalType);break;case"rectStart":kF(void 0,void 0,t.color,t.signalType);break;case"optStart":kF(void 0,void 0,t.optText,t.signalType);break;case"altStart":case"else":kF(void 0,void 0,t.altText,t.signalType);break;case"setAccTitle":tv(t.text);break;case"parStart":case"and":kF(void 0,void 0,t.parText,t.signalType);break;case"criticalStart":kF(void 0,void 0,t.criticalText,t.signalType);break;case"option":kF(void 0,void 0,t.optionText,t.signalType);break;case"breakStart":kF(void 0,void 0,t.breakText,t.signalType)}},PF={addActor:xF,addMessage:_F,addSignal:kF,addLinks:AF,addDetails:NF,addProperties:LF,autoWrap:CF,setWrap:function(t){gF=t},enableSequenceNumbers:function(){vF=!0},disableSequenceNumbers:function(){vF=!1},showSequenceNumbers:()=>vF,getMessages:function(){return yF},getActors:function(){return bF},getActor:EF,getActorKeys:function(){return Object.keys(bF)},getActorProperty:function(t,e){if(void 0!==t&&void 0!==t.properties)return t.properties[e]},getAccTitle:ev,getBoxes:function(){return mF},getDiagramTitle:rv,setDiagramTitle:av,parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().sequence,clear:function(){bF={},mF=[],yF=[],vF=!1,Qy()},parseMessage:function(t){const e=t.trim(),n={text:e.replace(/^:?(?:no)?wrap:/,"").trim(),wrap:null!==e.match(/^:?wrap:/)||null===e.match(/^:?nowrap:/)&&void 0};return d.debug("parseMessage:",n),n},parseBoxData:function(t){const e=t.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);let n=null!=e&&e[1]?e[1].trim():"transparent",i=null!=e&&e[2]?e[2].trim():void 0;if(window&&window.CSS)window.CSS.supports("color",n)||(n="transparent",i=t.trim());else{const e=(new Option).style;e.color=n,e.color!==n&&(n="transparent",i=t.trim())}return{color:n,text:void 0!==i?Wd(i.replace(/^:?(?:no)?wrap:/,""),Ry()):void 0,wrap:void 0!==i?null!==i.match(/^:?wrap:/)||null===i.match(/^:?nowrap:/)&&void 0:void 0}},LINETYPE:SF,ARROWTYPE:{FILLED:0,OPEN:1},PLACEMENT:{LEFTOF:0,RIGHTOF:1,OVER:2},addNote:TF,setAccTitle:tv,apply:BF,setAccDescription:nv,getAccDescription:iv,hasAtLeastOneBox:function(){return mF.length>0},hasAtLeastOneBoxWithTitle:function(){return mF.some((t=>t.name))}};let FF=[];const jF=t=>{FF.push(t)},$F=()=>{FF.forEach((t=>{t()})),FF=[]},zF=function(t,e){const n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},HF=(t,e)=>{jF((()=>{const n=document.querySelectorAll(t);0!==n.length&&(n[0].addEventListener("mouseover",(function(){GF("actor"+e+"_popup")})),n[0].addEventListener("mouseout",(function(){ZF("actor"+e+"_popup")})))}))},UF=function(t,e,n,i,a){if(void 0===e.links||null===e.links||0===Object.keys(e.links).length)return{height:0,width:0};const r=e.links,o=e.actorCnt,s=e.rectData;var c="none";a&&(c="block !important");const l=t.append("g");l.attr("id","actor"+o+"_popup"),l.attr("class","actorPopupMenu"),l.attr("display",c),HF("#actor"+o+"_popup",o);var u="";void 0!==s.class&&(u=" "+s.class);let d=s.width>n?s.width:n;const h=l.append("rect");if(h.attr("class","actorPopupMenuPanel"+u),h.attr("x",s.x),h.attr("y",s.height),h.attr("fill",s.fill),h.attr("stroke",s.stroke),h.attr("width",d),h.attr("height",s.height),h.attr("rx",s.rx),h.attr("ry",s.ry),null!=r){var f=20;for(let t in r){var g=l.append("a"),b=p(r[t]);g.attr("xlink:href",b),g.attr("target","_blank"),yj(i)(t,g,s.x+10,s.height+f,d,20,{class:"actor"},i),f+=30}}return h.attr("height",f),{height:s.height+f,width:d}},VF=function(t,e,n,i){const a=t.append("image");a.attr("x",e),a.attr("y",n);var r=p(i);a.attr("xlink:href",r)},qF=function(t,e,n,i){const a=t.append("use");a.attr("x",e),a.attr("y",n);var r=p(i);a.attr("xlink:href","#"+r)},WF=function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'block'; }"},YF=function(t){return"var pu = document.getElementById('"+t+"'); if (pu != null) { pu.style.display = 'none'; }"},GF=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="block")},ZF=function(t){var e=document.getElementById(t);null!=e&&(e.style.display="none")},KF=function(t,e){let n=0,i=0;const a=e.text.split(Qd.lineBreakRegex),[r,o]=ym(e.fontSize);let s=[],c=0,l=()=>e.y;if(void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0)switch(e.valign){case"top":case"start":l=()=>Math.round(e.y+e.textMargin);break;case"middle":case"center":l=()=>Math.round(e.y+(n+i+e.textMargin)/2);break;case"bottom":case"end":l=()=>Math.round(e.y+(n+i+2*e.textMargin)-e.textMargin)}if(void 0!==e.anchor&&void 0!==e.textMargin&&void 0!==e.width)switch(e.anchor){case"left":case"start":e.x=Math.round(e.x+e.textMargin),e.anchor="start",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"middle":case"center":e.x=Math.round(e.x+e.width/2),e.anchor="middle",e.dominantBaseline="middle",e.alignmentBaseline="middle";break;case"right":case"end":e.x=Math.round(e.x+e.width-e.textMargin),e.anchor="end",e.dominantBaseline="middle",e.alignmentBaseline="middle"}for(let[u,d]of a.entries()){void 0!==e.textMargin&&0===e.textMargin&&void 0!==r&&(c=u*r);const a=t.append("text");if(a.attr("x",e.x),a.attr("y",l()),void 0!==e.anchor&&a.attr("text-anchor",e.anchor).attr("dominant-baseline",e.dominantBaseline).attr("alignment-baseline",e.alignmentBaseline),void 0!==e.fontFamily&&a.style("font-family",e.fontFamily),void 0!==o&&a.style("font-size",o),void 0!==e.fontWeight&&a.style("font-weight",e.fontWeight),void 0!==e.fill&&a.attr("fill",e.fill),void 0!==e.class&&a.attr("class",e.class),void 0!==e.dy?a.attr("dy",e.dy):0!==c&&a.attr("dy",c),e.tspan){const t=a.append("tspan");t.attr("x",e.x),void 0!==e.fill&&t.attr("fill",e.fill),t.text(d)}else a.text(d);void 0!==e.valign&&void 0!==e.textMargin&&e.textMargin>0&&(i+=(a._groups||a)[0][0].getBBox().height,n=i),s.push(a)}return s},XF=function(t,e){function n(t,e,n,i,a){return t+","+e+" "+(t+n)+","+e+" "+(t+n)+","+(e+i-a)+" "+(t+n-1.2*a)+","+(e+i)+" "+t+","+(e+i)}const i=t.append("polygon");return i.attr("points",n(e.x,e.y,e.width,e.height,7)),i.attr("class","labelBox"),e.y=e.y+e.height/2,KF(t,e),i};let JF=-1;const QF=(t,e)=>{t.selectAll&&t.selectAll(".actor-line").attr("class","200").attr("y2",e-55)},tj=function(t,e,n,i){const a=e.x+e.width/2,r=e.y+5,o=t.append("g");var s=o;i||(JF++,s.append("line").attr("id","actor"+JF).attr("x1",a).attr("y1",r).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"),s=o.append("g"),e.actorCnt=JF,null!=e.links&&(s.attr("id","root-"+JF),HF("#root-"+JF,JF)));const c=bj();var l="actor";null!=e.properties&&e.properties.class?l=e.properties.class:c.fill="#eaeaea",c.x=e.x,c.y=e.y,c.width=e.width,c.height=e.height,c.class=l,c.rx=3,c.ry=3;const u=zF(s,c);if(e.rectData=c,null!=e.properties&&e.properties.icon){const t=e.properties.icon.trim();"@"===t.charAt(0)?qF(s,c.x+c.width-20,c.y+10,t.substr(1)):VF(s,c.x+c.width-20,c.y+10,t)}mj(n)(e.description,s,c.x,c.y,c.width,c.height,{class:"actor"},n);let d=e.height;if(u.node){const t=u.node().getBBox();e.height=t.height,d=t.height}return d},ej=function(t,e,n,i){const a=e.x+e.width/2,r=e.y+80;i||(JF++,t.append("line").attr("id","actor"+JF).attr("x1",a).attr("y1",r).attr("x2",a).attr("y2",2e3).attr("class","actor-line").attr("stroke-width","0.5px").attr("stroke","#999"));const o=t.append("g");o.attr("class","actor-man");const s=bj();s.x=e.x,s.y=e.y,s.fill="#eaeaea",s.width=e.width,s.height=e.height,s.class="actor",s.rx=3,s.ry=3,o.append("line").attr("id","actor-man-torso"+JF).attr("x1",a).attr("y1",e.y+25).attr("x2",a).attr("y2",e.y+45),o.append("line").attr("id","actor-man-arms"+JF).attr("x1",a-18).attr("y1",e.y+33).attr("x2",a+18).attr("y2",e.y+33),o.append("line").attr("x1",a-18).attr("y1",e.y+60).attr("x2",a).attr("y2",e.y+45),o.append("line").attr("x1",a).attr("y1",e.y+45).attr("x2",a+16).attr("y2",e.y+60);const c=o.append("circle");c.attr("cx",e.x+e.width/2),c.attr("cy",e.y+10),c.attr("r",15),c.attr("width",e.width),c.attr("height",e.height);const l=o.node().getBBox();return e.height=l.height,mj(n)(e.description,o,s.x,s.y+35,s.width,s.height,{class:"actor"},n),e.height},nj=function(t,e,n,i){switch(e.type){case"actor":return ej(t,e,n,i);case"participant":return tj(t,e,n,i)}},ij=function(t,e,n){const i=t.append("g");sj(i,e),e.name&&mj(n)(e.name,i,e.x,e.y+(e.textMaxHeight||0)/2,e.width,0,{class:"text"},n),i.lower()},aj=function(t){return t.append("g")},rj=function(t,e,n,i,a){const r=bj(),o=e.anchored;r.x=e.startx,r.y=e.starty,r.class="activation"+a%3,r.width=e.stopx-e.startx,r.height=n-e.starty,zF(o,r)},oj=function(t,e,n,i){const{boxMargin:a,boxTextMargin:r,labelBoxHeight:o,labelBoxWidth:s,messageFontFamily:c,messageFontSize:l,messageFontWeight:u}=i,d=t.append("g"),h=function(t,e,n,i){return d.append("line").attr("x1",t).attr("y1",e).attr("x2",n).attr("y2",i).attr("class","loopLine")};h(e.startx,e.starty,e.stopx,e.starty),h(e.stopx,e.starty,e.stopx,e.stopy),h(e.startx,e.stopy,e.stopx,e.stopy),h(e.startx,e.starty,e.startx,e.stopy),void 0!==e.sections&&e.sections.forEach((function(t){h(e.startx,t.y,e.stopx,t.y).style("stroke-dasharray","3, 3")}));let f=pj();f.text=n,f.x=e.startx,f.y=e.starty,f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.anchor="middle",f.valign="middle",f.tspan=!1,f.width=s||50,f.height=o||20,f.textMargin=r,f.class="labelText",XF(d,f),f=pj(),f.text=e.title,f.x=e.startx+s/2+(e.stopx-e.startx)/2,f.y=e.starty+a+r,f.anchor="middle",f.valign="middle",f.textMargin=r,f.class="loopText",f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.wrap=!0;let g=KF(d,f);return void 0!==e.sectionTitles&&e.sectionTitles.forEach((function(t,n){if(t.message){f.text=t.message,f.x=e.startx+(e.stopx-e.startx)/2,f.y=e.sections[n].y+a+r,f.class="loopText",f.anchor="middle",f.valign="middle",f.tspan=!1,f.fontFamily=c,f.fontSize=l,f.fontWeight=u,f.wrap=e.wrap,g=KF(d,f);let i=Math.round(g.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));e.sections[n].height+=i-(a+r)}})),e.height=Math.round(e.stopy-e.starty),d},sj=function(t,e){zF(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,stroke:e.stroke,class:"rect"}).lower()},cj=function(t){t.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},lj=function(t){t.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},uj=function(t){t.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},dj=function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z")},hj=function(t){t.append("defs").append("marker").attr("id","filled-head").attr("refX",18).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 18,7 L9,13 L14,7 L9,1 Z")},fj=function(t){t.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},gj=function(t){t.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",4).attr("refY",5).append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1pt").attr("d","M 1,2 L 6,7 M 6,2 L 1,7")},pj=function(){return{x:0,y:0,fill:void 0,anchor:void 0,style:"#666",width:void 0,height:void 0,textMargin:0,rx:0,ry:0,tspan:!0,valign:void 0}},bj=function(){return{x:0,y:0,fill:"#EDF2AE",stroke:"#666",width:100,anchor:"start",height:100,rx:0,ry:0}},mj=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c){const{actorFontSize:l,actorFontFamily:u,actorFontWeight:d}=c,[h,f]=ym(l),g=t.split(Qd.lineBreakRegex);for(let p=0;p<g.length;p++){const t=p*h-h*(g.length-1)/2,c=e.append("text").attr("x",n+r/2).attr("y",a).style("text-anchor","middle").style("font-size",f).style("font-weight",d).style("font-family",u);c.append("tspan").attr("x",n+r/2).attr("dy",t).text(g[p]),c.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(c,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),yj=function(){function t(t,e,n,a,r,o,s){i(e.append("text").attr("x",n).attr("y",a).style("text-anchor","start").text(t),s)}function e(t,e,n,a,r,o,s,c){const{actorFontSize:l,actorFontFamily:u,actorFontWeight:d}=c,h=t.split(Qd.lineBreakRegex);for(let f=0;f<h.length;f++){const t=f*l-l*(h.length-1)/2,r=e.append("text").attr("x",n).attr("y",a).style("text-anchor","start").style("font-size",l).style("font-weight",d).style("font-family",u);r.append("tspan").attr("x",n).attr("dy",t).text(h[f]),r.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(r,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)e.hasOwnProperty(n)&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),vj={drawRect:zF,drawText:KF,drawLabel:XF,drawActor:nj,drawBox:ij,drawPopup:UF,drawImage:VF,drawEmbeddedImage:qF,anchorElement:aj,drawActivation:rj,drawLoop:oj,drawBackgroundRect:sj,insertArrowHead:dj,insertArrowFilledHead:hj,insertSequenceNumber:fj,insertArrowCrossHead:gj,insertDatabaseIcon:cj,insertComputerIcon:lj,insertClockIcon:uj,getTextObj:pj,getNoteRect:bj,popupMenu:WF,popdownMenu:YF,fixLifeLineHeights:QF,sanitizeUrl:p};let wj={};const xj={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],models:{getHeight:function(){return Math.max.apply(null,0===this.actors.length?[0]:this.actors.map((t=>t.height||0)))+(0===this.loops.length?0:this.loops.map((t=>t.height||0)).reduce(((t,e)=>t+e)))+(0===this.messages.length?0:this.messages.map((t=>t.height||0)).reduce(((t,e)=>t+e)))+(0===this.notes.length?0:this.notes.map((t=>t.height||0)).reduce(((t,e)=>t+e)))},clear:function(){this.actors=[],this.boxes=[],this.loops=[],this.messages=[],this.notes=[]},addBox:function(t){this.boxes.push(t)},addActor:function(t){this.actors.push(t)},addLoop:function(t){this.loops.push(t)},addMessage:function(t){this.messages.push(t)},addNote:function(t){this.notes.push(t)},lastActor:function(){return this.actors[this.actors.length-1]},lastLoop:function(){return this.loops[this.loops.length-1]},lastMessage:function(){return this.messages[this.messages.length-1]},lastNote:function(){return this.notes[this.notes.length-1]},actors:[],boxes:[],loops:[],messages:[],notes:[]},init:function(){this.sequenceItems=[],this.activations=[],this.models.clear(),this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0,Dj(Ry())},updateVal:function(t,e,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])},updateBounds:function(t,e,n,i){const a=this;let r=0;function o(o){return function(s){r++;const c=a.sequenceItems.length-r+1;a.updateVal(s,"starty",e-c*wj.boxMargin,Math.min),a.updateVal(s,"stopy",i+c*wj.boxMargin,Math.max),a.updateVal(xj.data,"startx",t-c*wj.boxMargin,Math.min),a.updateVal(xj.data,"stopx",n+c*wj.boxMargin,Math.max),"activation"!==o&&(a.updateVal(s,"startx",t-c*wj.boxMargin,Math.min),a.updateVal(s,"stopx",n+c*wj.boxMargin,Math.max),a.updateVal(xj.data,"starty",e-c*wj.boxMargin,Math.min),a.updateVal(xj.data,"stopy",i+c*wj.boxMargin,Math.max))}}this.sequenceItems.forEach(o()),this.activations.forEach(o("activation"))},insert:function(t,e,n,i){const a=Math.min(t,n),r=Math.max(t,n),o=Math.min(e,i),s=Math.max(e,i);this.updateVal(xj.data,"startx",a,Math.min),this.updateVal(xj.data,"starty",o,Math.min),this.updateVal(xj.data,"stopx",r,Math.max),this.updateVal(xj.data,"stopy",s,Math.max),this.updateBounds(a,o,r,s)},newActivation:function(t,e,n){const i=n[t.from.actor],a=Ij(t.from.actor).length||0,r=i.x+i.width/2+(a-1)*wj.activationWidth/2;this.activations.push({startx:r,starty:this.verticalPos+2,stopx:r+wj.activationWidth,stopy:void 0,actor:t.from.actor,anchored:vj.anchorElement(e)})},endActivation:function(t){const e=this.activations.map((function(t){return t.actor})).lastIndexOf(t.from.actor);return this.activations.splice(e,1)[0]},createLoop:function(t={message:void 0,wrap:!1,width:void 0},e){return{startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t.message,wrap:t.wrap,width:t.width,height:0,fill:e}},newLoop:function(t={message:void 0,wrap:!1,width:void 0},e){this.sequenceItems.push(this.createLoop(t,e))},endLoop:function(){return this.sequenceItems.pop()},addSectionToLoop:function(t){const e=this.sequenceItems.pop();e.sections=e.sections||[],e.sectionTitles=e.sectionTitles||[],e.sections.push({y:xj.getVerticalPos(),height:0}),e.sectionTitles.push(t),this.sequenceItems.push(e)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return{bounds:this.data,models:this.models}}},Rj=function(t,e){xj.bumpVerticalPos(wj.boxMargin),e.height=wj.boxMargin,e.starty=xj.getVerticalPos();const n=vj.getNoteRect();n.x=e.startx,n.y=e.starty,n.width=e.width||wj.width,n.class="note";const i=t.append("g"),a=vj.drawRect(i,n),r=vj.getTextObj();r.x=e.startx,r.y=e.starty,r.width=n.width,r.dy="1em",r.text=e.message,r.class="noteText",r.fontFamily=wj.noteFontFamily,r.fontSize=wj.noteFontSize,r.fontWeight=wj.noteFontWeight,r.anchor=wj.noteAlign,r.textMargin=wj.noteMargin,r.valign="center";const o=KF(i,r),s=Math.round(o.map((t=>(t._groups||t)[0][0].getBBox().height)).reduce(((t,e)=>t+e)));a.attr("height",s+2*wj.noteMargin),e.height+=s+2*wj.noteMargin,xj.bumpVerticalPos(s+2*wj.noteMargin),e.stopy=e.starty+s+2*wj.noteMargin,e.stopx=e.startx+n.width,xj.insert(e.startx,e.starty,e.stopx,e.stopy),xj.models.addNote(e)},_j=t=>({fontFamily:t.messageFontFamily,fontSize:t.messageFontSize,fontWeight:t.messageFontWeight}),kj=t=>({fontFamily:t.noteFontFamily,fontSize:t.noteFontSize,fontWeight:t.noteFontWeight}),Ej=t=>({fontFamily:t.actorFontFamily,fontSize:t.actorFontSize,fontWeight:t.actorFontWeight});function Cj(t,e){xj.bumpVerticalPos(10);const{startx:n,stopx:i,message:a}=e,r=Qd.splitBreaks(a).length,o=vm.calculateTextDimensions(a,_j(wj)),s=o.height/r;e.height+=s,xj.bumpVerticalPos(s);let c,l=o.height-10;const u=o.width;if(n===i){c=xj.getVerticalPos()+l,wj.rightAngles||(l+=wj.boxMargin,c=xj.getVerticalPos()+l),l+=30;const t=Math.max(u/2,wj.width/2);xj.insert(n-t,xj.getVerticalPos()-10+l,i+t,xj.getVerticalPos()+30+l)}else l+=wj.boxMargin,c=xj.getVerticalPos()+l,xj.insert(n,c-10,i,c);return xj.bumpVerticalPos(l),e.height+=l,e.stopy=e.starty+e.height,xj.insert(e.fromBounds,e.starty,e.toBounds,e.stopy),c}const Sj=function(t,e,n,i){const{startx:a,stopx:r,starty:o,message:s,type:c,sequenceIndex:l,sequenceVisible:u}=e,d=vm.calculateTextDimensions(s,_j(wj)),h=vj.getTextObj();h.x=a,h.y=o+10,h.width=r-a,h.class="messageText",h.dy="1em",h.text=s,h.fontFamily=wj.messageFontFamily,h.fontSize=wj.messageFontSize,h.fontWeight=wj.messageFontWeight,h.anchor=wj.messageAlign,h.valign="center",h.textMargin=wj.wrapPadding,h.tspan=!1,KF(t,h);const f=d.width;let g;a===r?g=wj.rightAngles?t.append("path").attr("d",`M ${a},${n} H ${a+Math.max(wj.width/2,f/2)} V ${n+25} H ${a}`):t.append("path").attr("d","M "+a+","+n+" C "+(a+60)+","+(n-10)+" "+(a+60)+","+(n+30)+" "+a+","+(n+20)):(g=t.append("line"),g.attr("x1",a),g.attr("y1",n),g.attr("x2",r),g.attr("y2",n)),c===i.db.LINETYPE.DOTTED||c===i.db.LINETYPE.DOTTED_CROSS||c===i.db.LINETYPE.DOTTED_POINT||c===i.db.LINETYPE.DOTTED_OPEN?(g.style("stroke-dasharray","3, 3"),g.attr("class","messageLine1")):g.attr("class","messageLine0");let p="";wj.arrowMarkerAbsolute&&(p=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,p=p.replace(/\(/g,"\\("),p=p.replace(/\)/g,"\\)")),g.attr("stroke-width",2),g.attr("stroke","none"),g.style("fill","none"),(c===i.db.LINETYPE.SOLID||c===i.db.LINETYPE.DOTTED)&&g.attr("marker-end","url("+p+"#arrowhead)"),(c===i.db.LINETYPE.SOLID_POINT||c===i.db.LINETYPE.DOTTED_POINT)&&g.attr("marker-end","url("+p+"#filled-head)"),(c===i.db.LINETYPE.SOLID_CROSS||c===i.db.LINETYPE.DOTTED_CROSS)&&g.attr("marker-end","url("+p+"#crosshead)"),(u||wj.showSequenceNumbers)&&(g.attr("marker-start","url("+p+"#sequencenumber)"),t.append("text").attr("x",a).attr("y",n+4).attr("font-family","sans-serif").attr("font-size","12px").attr("text-anchor","middle").attr("class","sequenceNumber").text(l))},Tj=function(t,e,n,i,a,r,o){if(!0===a.hideUnusedParticipants){const t=new Set;r.forEach((e=>{t.add(e.from),t.add(e.to)})),n=n.filter((e=>t.has(e)))}let s,c=0,l=0,u=0;for(const d of n){const n=e[d],a=n.box;s&&s!=a&&(o||xj.models.addBox(s),l+=wj.boxMargin+s.margin),a&&a!=s&&(o||(a.x=c+l,a.y=i),l+=a.margin),n.width=n.width||wj.width,n.height=Math.max(n.height||wj.height,wj.height),n.margin=n.margin||wj.actorMargin,n.x=c+l,n.y=xj.getVerticalPos();const r=vj.drawActor(t,n,wj,o);u=Math.max(u,r),xj.insert(n.x,i,n.x+n.width,n.height),c+=n.width+l,n.box&&(n.box.width=c+a.margin-n.box.x),l=n.margin,s=n.box,xj.models.addActor(n)}s&&!o&&xj.models.addBox(s),xj.bumpVerticalPos(u)},Aj=function(t,e,n,i){let a=0,r=0;for(const o of n){const n=e[o],s=Bj(n),c=vj.drawPopup(t,n,s,wj,wj.forceMenus,i);c.height>a&&(a=c.height),c.width+n.x>r&&(r=c.width+n.x)}return{maxHeight:a,maxWidth:r}},Dj=function(t){Sp(wj,t),t.fontFamily&&(wj.actorFontFamily=wj.noteFontFamily=wj.messageFontFamily=t.fontFamily),t.fontSize&&(wj.actorFontSize=wj.noteFontSize=wj.messageFontSize=t.fontSize),t.fontWeight&&(wj.actorFontWeight=wj.noteFontWeight=wj.messageFontWeight=t.fontWeight)},Ij=function(t){return xj.activations.filter((function(e){return e.actor===t}))},Lj=function(t,e){const n=e[t],i=Ij(t);return[i.reduce((function(t,e){return Math.min(t,e.startx)}),n.x+n.width/2),i.reduce((function(t,e){return Math.max(t,e.stopx)}),n.x+n.width/2)]};function Oj(t,e,n,i,a){xj.bumpVerticalPos(n);let r=i;if(e.id&&e.message&&t[e.id]){const n=t[e.id].width,a=_j(wj);e.message=vm.wrapLabel(`[${e.message}]`,n-2*wj.wrapPadding,a),e.width=n,e.wrap=!0;const o=vm.calculateTextDimensions(e.message,a),s=Math.max(o.height,wj.labelBoxHeight);r=i+s,d.debug(`${s} - ${e.message}`)}a(e),xj.bumpVerticalPos(r)}const Mj=function(t,e,n,i){const{securityLevel:a,sequence:r}=Ry();let o;wj=r,i.db.clear(),i.parser.parse(t),"sandbox"===a&&(o=un("#i"+e));const s=un("sandbox"===a?o.nodes()[0].contentDocument.body:"body"),c="sandbox"===a?o.nodes()[0].contentDocument:document;xj.init(),d.debug(i.db);const l="sandbox"===a?s.select(`[id="${e}"]`):un(`[id="${e}"]`),u=i.db.getActors(),h=i.db.getBoxes(),f=i.db.getActorKeys(),g=i.db.getMessages(),p=i.db.getDiagramTitle(),b=i.db.hasAtLeastOneBox(),m=i.db.hasAtLeastOneBoxWithTitle(),y=Nj(u,g,i);wj.height=Pj(u,y,h),vj.insertComputerIcon(l),vj.insertDatabaseIcon(l),vj.insertClockIcon(l),b&&(xj.bumpVerticalPos(wj.boxMargin),m&&xj.bumpVerticalPos(h[0].textMaxHeight)),Tj(l,u,f,0,wj,g,!1);const v=$j(g,u,y,i);function w(t,e){const n=xj.endActivation(t);n.starty+18>e&&(n.starty=e-6,e+=12),vj.drawActivation(l,n,e,wj,Ij(t.from.actor).length),xj.insert(n.startx,e-10,n.stopx,e)}vj.insertArrowHead(l),vj.insertArrowCrossHead(l),vj.insertArrowFilledHead(l),vj.insertSequenceNumber(l);let x=1,R=1;const _=[];g.forEach((function(t){let e,n,a;switch(t.type){case i.db.LINETYPE.NOTE:n=t.noteModel,Rj(l,n);break;case i.db.LINETYPE.ACTIVE_START:xj.newActivation(t,l,u);break;case i.db.LINETYPE.ACTIVE_END:w(t,xj.getVerticalPos());break;case i.db.LINETYPE.LOOP_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.LOOP_END:e=xj.endLoop(),vj.drawLoop(l,e,"loop",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;case i.db.LINETYPE.RECT_START:Oj(v,t,wj.boxMargin,wj.boxMargin,(t=>xj.newLoop(void 0,t.message)));break;case i.db.LINETYPE.RECT_END:e=xj.endLoop(),vj.drawBackgroundRect(l,e),xj.models.addLoop(e),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos());break;case i.db.LINETYPE.OPT_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.OPT_END:e=xj.endLoop(),vj.drawLoop(l,e,"opt",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;case i.db.LINETYPE.ALT_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.ALT_ELSE:Oj(v,t,wj.boxMargin+wj.boxTextMargin,wj.boxMargin,(t=>xj.addSectionToLoop(t)));break;case i.db.LINETYPE.ALT_END:e=xj.endLoop(),vj.drawLoop(l,e,"alt",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;case i.db.LINETYPE.PAR_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.PAR_AND:Oj(v,t,wj.boxMargin+wj.boxTextMargin,wj.boxMargin,(t=>xj.addSectionToLoop(t)));break;case i.db.LINETYPE.PAR_END:e=xj.endLoop(),vj.drawLoop(l,e,"par",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;case i.db.LINETYPE.AUTONUMBER:x=t.message.start||x,R=t.message.step||R,t.message.visible?i.db.enableSequenceNumbers():i.db.disableSequenceNumbers();break;case i.db.LINETYPE.CRITICAL_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.CRITICAL_OPTION:Oj(v,t,wj.boxMargin+wj.boxTextMargin,wj.boxMargin,(t=>xj.addSectionToLoop(t)));break;case i.db.LINETYPE.CRITICAL_END:e=xj.endLoop(),vj.drawLoop(l,e,"critical",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;case i.db.LINETYPE.BREAK_START:Oj(v,t,wj.boxMargin,wj.boxMargin+wj.boxTextMargin,(t=>xj.newLoop(t)));break;case i.db.LINETYPE.BREAK_END:e=xj.endLoop(),vj.drawLoop(l,e,"break",wj),xj.bumpVerticalPos(e.stopy-xj.getVerticalPos()),xj.models.addLoop(e);break;default:try{a=t.msgModel,a.starty=xj.getVerticalPos(),a.sequenceIndex=x,a.sequenceVisible=i.db.showSequenceNumbers();const e=Cj(l,a);_.push({messageModel:a,lineStartY:e}),xj.models.addMessage(a)}catch(r){d.error("error while drawing message",r)}}[i.db.LINETYPE.SOLID_OPEN,i.db.LINETYPE.DOTTED_OPEN,i.db.LINETYPE.SOLID,i.db.LINETYPE.DOTTED,i.db.LINETYPE.SOLID_CROSS,i.db.LINETYPE.DOTTED_CROSS,i.db.LINETYPE.SOLID_POINT,i.db.LINETYPE.DOTTED_POINT].includes(t.type)&&(x+=R)})),_.forEach((t=>Sj(l,t.messageModel,t.lineStartY,i))),wj.mirrorActors&&(xj.bumpVerticalPos(2*wj.boxMargin),Tj(l,u,f,xj.getVerticalPos(),wj,g,!0),xj.bumpVerticalPos(wj.boxMargin),QF(l,xj.getVerticalPos())),xj.models.boxes.forEach((function(t){t.height=xj.getVerticalPos()-t.y,xj.insert(t.x,t.y,t.x+t.width,t.height),t.startx=t.x,t.starty=t.y,t.stopx=t.startx+t.width,t.stopy=t.starty+t.height,t.stroke="rgb(0,0,0, 0.5)",vj.drawBox(l,t,wj)})),b&&xj.bumpVerticalPos(wj.boxMargin);const k=Aj(l,u,f,c),{bounds:E}=xj.getBounds();d.debug("For line height fix Querying: #"+e+" .actor-line"),dn("#"+e+" .actor-line").attr("y2",E.stopy);let C=E.stopy-E.starty;C<k.maxHeight&&(C=k.maxHeight);let S=C+2*wj.diagramMarginY;wj.mirrorActors&&(S=S-wj.boxMargin+wj.bottomMarginAdj);let T=E.stopx-E.startx;T<k.maxWidth&&(T=k.maxWidth);const A=T+2*wj.diagramMarginX;p&&l.append("text").text(p).attr("x",(E.stopx-E.startx)/2-2*wj.diagramMarginX).attr("y",-25),Ly(l,S,A,wj.useMaxWidth);const D=p?40:0;l.attr("viewBox",E.startx-wj.diagramMarginX+" -"+(wj.diagramMarginY+D)+" "+A+" "+(S+D)),d.debug("models:",xj.models)};function Nj(t,e,n){const i={};return e.forEach((function(e){if(t[e.to]&&t[e.from]){const a=t[e.to];if(e.placement===n.db.PLACEMENT.LEFTOF&&!a.prevActor||e.placement===n.db.PLACEMENT.RIGHTOF&&!a.nextActor)return;const r=void 0!==e.placement,o=!r,s=r?kj(wj):_j(wj),c=e.wrap?vm.wrapLabel(e.message,wj.width-2*wj.wrapPadding,s):e.message,l=vm.calculateTextDimensions(c,s).width+2*wj.wrapPadding;o&&e.from===a.nextActor?i[e.to]=Math.max(i[e.to]||0,l):o&&e.from===a.prevActor?i[e.from]=Math.max(i[e.from]||0,l):o&&e.from===e.to?(i[e.from]=Math.max(i[e.from]||0,l/2),i[e.to]=Math.max(i[e.to]||0,l/2)):e.placement===n.db.PLACEMENT.RIGHTOF?i[e.from]=Math.max(i[e.from]||0,l):e.placement===n.db.PLACEMENT.LEFTOF?i[a.prevActor]=Math.max(i[a.prevActor]||0,l):e.placement===n.db.PLACEMENT.OVER&&(a.prevActor&&(i[a.prevActor]=Math.max(i[a.prevActor]||0,l/2)),a.nextActor&&(i[e.from]=Math.max(i[e.from]||0,l/2)))}})),d.debug("maxMessageWidthPerActor:",i),i}const Bj=function(t){let e=0;const n=Ej(wj);for(const i in t.links){const t=vm.calculateTextDimensions(i,n).width+2*wj.wrapPadding+2*wj.boxMargin;e<t&&(e=t)}return e};function Pj(t,e,n){let i=0;Object.keys(t).forEach((e=>{const n=t[e];n.wrap&&(n.description=vm.wrapLabel(n.description,wj.width-2*wj.wrapPadding,Ej(wj)));const a=vm.calculateTextDimensions(n.description,Ej(wj));n.width=n.wrap?wj.width:Math.max(wj.width,a.width+2*wj.wrapPadding),n.height=n.wrap?Math.max(a.height,wj.height):wj.height,i=Math.max(i,n.height)}));for(const r in e){const n=t[r];if(!n)continue;const i=t[n.nextActor];if(!i){const t=e[r]+wj.actorMargin-n.width/2;n.margin=Math.max(t,wj.actorMargin);continue}const a=e[r]+wj.actorMargin-n.width/2-i.width/2;n.margin=Math.max(a,wj.actorMargin)}let a=0;return n.forEach((e=>{const n=_j(wj);let i=e.actorKeys.reduce(((e,n)=>e+(t[n].width+(t[n].margin||0))),0);i-=2*wj.boxTextMargin,e.wrap&&(e.name=vm.wrapLabel(e.name,i-2*wj.wrapPadding,n));const r=vm.calculateTextDimensions(e.name,n);a=Math.max(r.height,a);const o=Math.max(i,r.width+2*wj.wrapPadding);if(e.margin=wj.boxTextMargin,i<o){const t=(o-i)/2;e.margin+=t}})),n.forEach((t=>t.textMaxHeight=a)),Math.max(i,wj.height)}const Fj=function(t,e,n){const i=e[t.from].x,a=e[t.to].x,r=t.wrap&&t.message;let o=vm.calculateTextDimensions(r?vm.wrapLabel(t.message,wj.width,kj(wj)):t.message,kj(wj));const s={width:r?wj.width:Math.max(wj.width,o.width+2*wj.noteMargin),height:0,startx:e[t.from].x,stopx:0,starty:0,stopy:0,message:t.message};return t.placement===n.db.PLACEMENT.RIGHTOF?(s.width=r?Math.max(wj.width,o.width):Math.max(e[t.from].width/2+e[t.to].width/2,o.width+2*wj.noteMargin),s.startx=i+(e[t.from].width+wj.actorMargin)/2):t.placement===n.db.PLACEMENT.LEFTOF?(s.width=Math.max(r?wj.width:e[t.from].width/2+e[t.to].width/2,o.width+2*wj.noteMargin),s.startx=i-s.width+(e[t.from].width-wj.actorMargin)/2):t.to===t.from?(o=vm.calculateTextDimensions(r?vm.wrapLabel(t.message,Math.max(wj.width,e[t.from].width),kj(wj)):t.message,kj(wj)),s.width=r?Math.max(wj.width,e[t.from].width):Math.max(e[t.from].width,wj.width,o.width+2*wj.noteMargin),s.startx=i+(e[t.from].width-s.width)/2):(s.width=Math.abs(i+e[t.from].width/2-(a+e[t.to].width/2))+wj.actorMargin,s.startx=i<a?i+e[t.from].width/2-wj.actorMargin/2:a+e[t.to].width/2-wj.actorMargin/2),r&&(s.message=vm.wrapLabel(t.message,s.width-2*wj.wrapPadding,kj(wj))),d.debug(`NM:[${s.startx},${s.stopx},${s.starty},${s.stopy}:${s.width},${s.height}=${t.message}]`),s},jj=function(t,e,n){let i=!1;if([n.db.LINETYPE.SOLID_OPEN,n.db.LINETYPE.DOTTED_OPEN,n.db.LINETYPE.SOLID,n.db.LINETYPE.DOTTED,n.db.LINETYPE.SOLID_CROSS,n.db.LINETYPE.DOTTED_CROSS,n.db.LINETYPE.SOLID_POINT,n.db.LINETYPE.DOTTED_POINT].includes(t.type)&&(i=!0),!i)return{};const a=Lj(t.from,e),r=Lj(t.to,e),o=a[0]<=r[0]?1:0,s=a[0]<r[0]?0:1,c=[...a,...r],l=Math.abs(r[s]-a[o]);t.wrap&&t.message&&(t.message=vm.wrapLabel(t.message,Math.max(l+2*wj.wrapPadding,wj.width),_j(wj)));const u=vm.calculateTextDimensions(t.message,_j(wj));return{width:Math.max(t.wrap?0:u.width+2*wj.wrapPadding,l+2*wj.wrapPadding,wj.width),height:0,startx:a[o],stopx:r[s],starty:0,stopy:0,message:t.message,type:t.type,wrap:t.wrap,fromBounds:Math.min.apply(null,c),toBounds:Math.max.apply(null,c)}},$j=function(t,e,n,i){const a={},r=[];let o,s,c;return t.forEach((function(t){switch(t.id=vm.random({length:10}),t.type){case i.db.LINETYPE.LOOP_START:case i.db.LINETYPE.ALT_START:case i.db.LINETYPE.OPT_START:case i.db.LINETYPE.PAR_START:case i.db.LINETYPE.CRITICAL_START:case i.db.LINETYPE.BREAK_START:r.push({id:t.id,msg:t.message,from:Number.MAX_SAFE_INTEGER,to:Number.MIN_SAFE_INTEGER,width:0});break;case i.db.LINETYPE.ALT_ELSE:case i.db.LINETYPE.PAR_AND:case i.db.LINETYPE.CRITICAL_OPTION:t.message&&(o=r.pop(),a[o.id]=o,a[t.id]=o,r.push(o));break;case i.db.LINETYPE.LOOP_END:case i.db.LINETYPE.ALT_END:case i.db.LINETYPE.OPT_END:case i.db.LINETYPE.PAR_END:case i.db.LINETYPE.CRITICAL_END:case i.db.LINETYPE.BREAK_END:o=r.pop(),a[o.id]=o;break;case i.db.LINETYPE.ACTIVE_START:{const n=e[t.from?t.from.actor:t.to.actor],i=Ij(t.from?t.from.actor:t.to.actor).length,a=n.x+n.width/2+(i-1)*wj.activationWidth/2,r={startx:a,stopx:a+wj.activationWidth,actor:t.from.actor,enabled:!0};xj.activations.push(r)}break;case i.db.LINETYPE.ACTIVE_END:{const e=xj.activations.map((t=>t.actor)).lastIndexOf(t.from.actor);delete xj.activations.splice(e,1)[0]}}void 0!==t.placement?(s=Fj(t,e,i),t.noteModel=s,r.forEach((t=>{o=t,o.from=Math.min(o.from,s.startx),o.to=Math.max(o.to,s.startx+s.width),o.width=Math.max(o.width,Math.abs(o.from-o.to))-wj.labelBoxWidth}))):(c=jj(t,e,i),t.msgModel=c,c.startx&&c.stopx&&r.length>0&&r.forEach((n=>{if(o=n,c.startx===c.stopx){const n=e[t.from],i=e[t.to];o.from=Math.min(n.x-c.width/2,n.x-n.width/2,o.from),o.to=Math.max(i.x+c.width/2,i.x+n.width/2,o.to),o.width=Math.max(o.width,Math.abs(o.to-o.from))-wj.labelBoxWidth}else o.from=Math.min(c.startx,o.from),o.to=Math.max(c.stopx,o.to),o.width=Math.max(o.width,c.width)-wj.labelBoxWidth})))})),xj.activations=[],d.debug("Loop type widths:",a),a},zj={bounds:xj,drawActors:Tj,drawActorsPopup:Aj,setConf:Dj,draw:Mj};var Hj=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,3],i=[1,5],a=[1,7],r=[2,5],o=[1,15],s=[1,17],c=[1,21],l=[1,22],u=[1,23],d=[1,24],h=[1,37],f=[1,25],g=[1,26],p=[1,27],b=[1,28],m=[1,29],y=[1,32],v=[1,33],w=[1,34],x=[1,35],R=[1,36],_=[1,39],k=[1,40],E=[1,41],C=[1,42],S=[1,38],T=[1,45],A=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],D=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],I=[1,4,5,7,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],L=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],O={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,directive:6,SD:7,document:8,line:9,statement:10,classDefStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"--\x3e":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,classDef:38,CLASSDEF_ID:39,CLASSDEF_STYLEOPTS:40,DEFAULT:41,class:42,CLASSENTITY_IDS:43,STYLECLASS:44,openDirective:45,typeDirective:46,closeDirective:47,":":48,argDirective:49,direction_tb:50,direction_bt:51,direction_rl:52,direction_lr:53,eol:54,";":55,EDGE_STATE:56,STYLE_SEPARATOR:57,left_of:58,right_of:59,open_directive:60,type_directive:61,arg_directive:62,close_directive:63,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",7:"SD",14:"DESCR",15:"--\x3e",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"classDef",39:"CLASSDEF_ID",40:"CLASSDEF_STYLEOPTS",41:"DEFAULT",42:"class",43:"CLASSENTITY_IDS",44:"STYLECLASS",48:":",50:"direction_tb",51:"direction_bt",52:"direction_rl",53:"direction_lr",55:";",56:"EDGE_STATE",57:"STYLE_SEPARATOR",58:"left_of",59:"right_of",60:"open_directive",61:"type_directive",62:"arg_directive",63:"close_directive"},productions_:[0,[3,2],[3,2],[3,2],[3,2],[8,0],[8,2],[9,2],[9,1],[9,1],[10,1],[10,1],[10,1],[10,2],[10,3],[10,4],[10,1],[10,2],[10,1],[10,4],[10,3],[10,6],[10,1],[10,1],[10,1],[10,1],[10,4],[10,4],[10,1],[10,1],[10,2],[10,2],[10,1],[11,3],[11,3],[12,3],[6,3],[6,5],[32,1],[32,1],[32,1],[32,1],[54,1],[54,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1],[45,1],[46,1],[49,1],[47,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 4:return i.setRootDoc(r[s]),r[s];case 5:this.$=[];break;case 6:"nl"!=r[s]&&(r[s-1].push(r[s]),this.$=r[s-1]);break;case 7:case 8:case 12:this.$=r[s];break;case 9:this.$="nl";break;case 13:const t=r[s-1];t.description=i.trimColon(r[s]),this.$=t;break;case 14:this.$={stmt:"relation",state1:r[s-2],state2:r[s]};break;case 15:const e=i.trimColon(r[s]);this.$={stmt:"relation",state1:r[s-3],state2:r[s-1],description:e};break;case 19:this.$={stmt:"state",id:r[s-3],type:"default",description:"",doc:r[s-1]};break;case 20:var c=r[s],l=r[s-2].trim();if(r[s].match(":")){var u=r[s].split(":");c=u[0],l=[l,u[1]]}this.$={stmt:"state",id:c,type:"default",description:l};break;case 21:this.$={stmt:"state",id:r[s-3],type:"default",description:r[s-5],doc:r[s-1]};break;case 22:this.$={stmt:"state",id:r[s],type:"fork"};break;case 23:this.$={stmt:"state",id:r[s],type:"join"};break;case 24:this.$={stmt:"state",id:r[s],type:"choice"};break;case 25:this.$={stmt:"state",id:i.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:r[s-1].trim(),note:{position:r[s-2].trim(),text:r[s].trim()}};break;case 30:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 31:case 32:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 33:case 34:this.$={stmt:"classDef",id:r[s-1].trim(),classes:r[s].trim()};break;case 35:this.$={stmt:"applyClass",id:r[s-1].trim(),styleClass:r[s].trim()};break;case 38:i.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:i.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:i.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:i.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:r[s].trim(),type:"default",description:""};break;case 46:case 47:this.$={stmt:"state",id:r[s-2].trim(),classes:[r[s].trim()],type:"default",description:""};break;case 50:i.parseDirective("%%{","open_directive");break;case 51:i.parseDirective(r[s],"type_directive");break;case 52:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 53:i.parseDirective("}%%","close_directive","state")}},table:[{3:1,4:e,5:n,6:4,7:i,45:6,60:a},{1:[3]},{3:8,4:e,5:n,6:4,7:i,45:6,60:a},{3:9,4:e,5:n,6:4,7:i,45:6,60:a},{3:10,4:e,5:n,6:4,7:i,45:6,60:a},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,42,50,51,52,53,56,60],r,{8:11}),{46:12,61:[1,13]},{61:[2,50]},{1:[2,1]},{1:[2,2]},{1:[2,3]},{1:[2,4],4:o,5:s,6:30,9:14,10:16,11:18,12:19,13:20,16:c,17:l,19:u,22:d,24:h,25:f,26:g,27:p,28:b,29:m,32:31,33:y,35:v,37:w,38:x,42:R,45:6,50:_,51:k,52:E,53:C,56:S,60:a},{47:43,48:[1,44],63:T},t([48,63],[2,51]),t(A,[2,6]),{6:30,10:46,11:18,12:19,13:20,16:c,17:l,19:u,22:d,24:h,25:f,26:g,27:p,28:b,29:m,32:31,33:y,35:v,37:w,38:x,42:R,45:6,50:_,51:k,52:E,53:C,56:S,60:a},t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(A,[2,11]),t(A,[2,12],{14:[1,47],15:[1,48]}),t(A,[2,16]),{18:[1,49]},t(A,[2,18],{20:[1,50]}),{23:[1,51]},t(A,[2,22]),t(A,[2,23]),t(A,[2,24]),t(A,[2,25]),{30:52,31:[1,53],58:[1,54],59:[1,55]},t(A,[2,28]),t(A,[2,29]),{34:[1,56]},{36:[1,57]},t(A,[2,32]),{39:[1,58],41:[1,59]},{43:[1,60]},t(D,[2,44],{57:[1,61]}),t(D,[2,45],{57:[1,62]}),t(A,[2,38]),t(A,[2,39]),t(A,[2,40]),t(A,[2,41]),t(I,[2,36]),{49:63,62:[1,64]},t(I,[2,53]),t(A,[2,7]),t(A,[2,13]),{13:65,24:h,56:S},t(A,[2,17]),t(L,r,{8:66}),{24:[1,67]},{24:[1,68]},{23:[1,69]},{24:[2,48]},{24:[2,49]},t(A,[2,30]),t(A,[2,31]),{40:[1,70]},{40:[1,71]},{44:[1,72]},{24:[1,73]},{24:[1,74]},{47:75,63:T},{63:[2,52]},t(A,[2,14],{14:[1,76]}),{4:o,5:s,6:30,9:14,10:16,11:18,12:19,13:20,16:c,17:l,19:u,21:[1,77],22:d,24:h,25:f,26:g,27:p,28:b,29:m,32:31,33:y,35:v,37:w,38:x,42:R,45:6,50:_,51:k,52:E,53:C,56:S,60:a},t(A,[2,20],{20:[1,78]}),{31:[1,79]},{24:[1,80]},t(A,[2,33]),t(A,[2,34]),t(A,[2,35]),t(D,[2,46]),t(D,[2,47]),t(I,[2,37]),t(A,[2,15]),t(A,[2,19]),t(L,r,{8:81}),t(A,[2,26]),t(A,[2,27]),{4:o,5:s,6:30,9:14,10:16,11:18,12:19,13:20,16:c,17:l,19:u,21:[1,82],22:d,24:h,25:f,26:g,27:p,28:b,29:m,32:31,33:y,35:v,37:w,38:x,42:R,45:6,50:_,51:k,52:E,53:C,56:S,60:a},t(A,[2,21])],defaultActions:{7:[2,50],8:[2,1],9:[2,2],10:[2,3],54:[2,48],55:[2,49],64:[2,52]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},M={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return 41;case 1:case 44:return 50;case 2:case 45:return 51;case 3:case 46:return 52;case 4:case 47:return 53;case 5:return this.begin("open_directive"),60;case 6:return this.begin("type_directive"),61;case 7:return this.popState(),this.begin("arg_directive"),48;case 8:return this.popState(),this.popState(),63;case 9:return 62;case 10:case 11:case 13:case 14:case 15:case 16:case 56:case 58:case 64:break;case 12:case 79:return 5;case 17:case 34:return this.pushState("SCALE"),17;case 18:case 35:return 18;case 19:case 25:case 36:case 51:case 54:this.popState();break;case 20:return this.begin("acc_title"),33;case 21:return this.popState(),"acc_title_value";case 22:return this.begin("acc_descr"),35;case 23:return this.popState(),"acc_descr_value";case 24:this.begin("acc_descr_multiline");break;case 26:return"acc_descr_multiline_value";case 27:return this.pushState("CLASSDEF"),38;case 28:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";case 29:return this.popState(),this.pushState("CLASSDEFID"),39;case 30:return this.popState(),40;case 31:return this.pushState("CLASS"),42;case 32:return this.popState(),this.pushState("CLASS_STYLE"),43;case 33:return this.popState(),44;case 37:this.pushState("STATE");break;case 38:case 41:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),25;case 39:case 42:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),26;case 40:case 43:return this.popState(),e.yytext=e.yytext.slice(0,-10).trim(),27;case 48:this.pushState("STATE_STRING");break;case 49:return this.pushState("STATE_ID"),"AS";case 50:case 66:return this.popState(),"ID";case 52:return"STATE_DESCR";case 53:return 19;case 55:return this.popState(),this.pushState("struct"),20;case 57:return this.popState(),21;case 59:return this.begin("NOTE"),29;case 60:return this.popState(),this.pushState("NOTE_ID"),58;case 61:return this.popState(),this.pushState("NOTE_ID"),59;case 62:this.popState(),this.pushState("FLOATING_NOTE");break;case 63:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";case 65:return"NOTE_TEXT";case 67:return this.popState(),this.pushState("NOTE_TEXT"),24;case 68:return this.popState(),e.yytext=e.yytext.substr(2).trim(),31;case 69:return this.popState(),e.yytext=e.yytext.slice(0,-8).trim(),31;case 70:case 71:return 7;case 72:return 16;case 73:return 56;case 74:return 24;case 75:return e.yytext=e.yytext.trim(),14;case 76:return 15;case 77:return 28;case 78:return 57;case 80:return"INVALID"}},rules:[/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<<fork>>)/i,/^(?:.*<<join>>)/i,/^(?:.*<<choice>>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[14,15],inclusive:!1},close_directive:{rules:[14,15],inclusive:!1},arg_directive:{rules:[8,9,14,15],inclusive:!1},type_directive:{rules:[7,8,14,15],inclusive:!1},open_directive:{rules:[6,14,15],inclusive:!1},struct:{rules:[14,15,27,31,37,44,45,46,47,56,57,58,59,73,74,75,76,77],inclusive:!1},FLOATING_NOTE_ID:{rules:[66],inclusive:!1},FLOATING_NOTE:{rules:[63,64,65],inclusive:!1},NOTE_TEXT:{rules:[68,69],inclusive:!1},NOTE_ID:{rules:[67],inclusive:!1},NOTE:{rules:[60,61,62],inclusive:!1},CLASS_STYLE:{rules:[33],inclusive:!1},CLASS:{rules:[32],inclusive:!1},CLASSDEFID:{rules:[30],inclusive:!1},CLASSDEF:{rules:[28,29],inclusive:!1},acc_descr_multiline:{rules:[25,26],inclusive:!1},acc_descr:{rules:[23],inclusive:!1},acc_title:{rules:[21],inclusive:!1},SCALE:{rules:[18,19,35,36],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[50],inclusive:!1},STATE_STRING:{rules:[51,52],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[14,15,38,39,40,41,42,43,48,49,53,54,55],inclusive:!1},ID:{rules:[14,15],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,10,11,12,13,15,16,17,20,22,24,27,31,34,37,55,59,70,71,72,73,74,75,76,78,79,80],inclusive:!0}}};function N(){this.yy={}}return O.lexer=M,N.prototype=O,O.Parser=N,new N}();Hj.parser=Hj;const Uj=Hj,Vj=(t,e)=>{var n;return"dagre-wrapper"!==(null==(n=null==e?void 0:e.state)?void 0:n.defaultRenderer)&&null!==t.match(/^\s*stateDiagram/)},qj=(t,e)=>{var n;return!!(null!==t.match(/^\s*stateDiagram-v2/)||t.match(/^\s*stateDiagram/)&&"dagre-wrapper"===(null==(n=null==e?void 0:e.state)?void 0:n.defaultRenderer))},Wj="LR",Yj="TB",Gj="state",Zj="relation",Kj="classDef",Xj="applyClass",Jj="default",Qj="divider",t$="[*]",e$="start",n$=t$,i$="end",a$="color",r$="fill",o$="bgFill",s$=",";function c$(){return{}}let l$=Wj,u$=[],d$=c$();const h$=()=>({relations:[],states:{},documents:{}});let f$={root:h$()},g$=f$.root,p$=0,b$=0;const m$=t=>JSON.parse(JSON.stringify(t)),y$=(t,e,n)=>{if(e.stmt===Zj)y$(t,e.state1,!0),y$(t,e.state2,!1);else if(e.stmt===Gj&&("[*]"===e.id?(e.id=n?t.id+"_start":t.id+"_end",e.start=n):e.id=e.id.trim()),e.doc){const t=[];let n,i=[];for(n=0;n<e.doc.length;n++)if(e.doc[n].type===Qj){const a=m$(e.doc[n]);a.doc=m$(i),t.push(a),i=[]}else i.push(e.doc[n]);if(t.length>0&&i.length>0){const n={stmt:Gj,id:im(),type:"divider",doc:m$(i)};t.push(m$(n)),e.doc=t}e.doc.forEach((t=>y$(e,t,!0)))}},v$=t=>{let e;e=t.doc?t.doc:t,d.info(e),x$(!0),d.info("Extract",e),e.forEach((t=>{switch(t.stmt){case Gj:w$(t.id.trim(),t.type,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles);break;case Zj:T$(t.state1,t.state2,t.description);break;case Kj:D$(t.id.trim(),t.classes);break;case Xj:I$(t.id.trim(),t.styleClass)}}))},w$=function(t,e=Jj,n=null,i=null,a=null,r=null,o=null,s=null){const c=null==t?void 0:t.trim();void 0===g$.states[c]?(d.info("Adding state ",c,i),g$.states[c]={id:c,descriptions:[],type:e,doc:n,note:a,classes:[],styles:[],textStyles:[]}):(g$.states[c].doc||(g$.states[c].doc=n),g$.states[c].type||(g$.states[c].type=e)),i&&(d.info("Setting state description",c,i),"string"==typeof i&&A$(c,i.trim()),"object"==typeof i&&i.forEach((t=>A$(c,t.trim())))),a&&(g$.states[c].note=a,g$.states[c].note.text=Qd.sanitizeText(g$.states[c].note.text,Ry())),r&&(d.info("Setting state classes",c,r),("string"==typeof r?[r]:r).forEach((t=>I$(c,t.trim())))),o&&(d.info("Setting state styles",c,o),("string"==typeof o?[o]:o).forEach((t=>L$(c,t.trim())))),s&&(d.info("Setting state styles",c,o),("string"==typeof s?[s]:s).forEach((t=>O$(c,t.trim()))))},x$=function(t){f$={root:h$()},g$=f$.root,p$=0,d$=c$(),t||Qy()},R$=function(t){return g$.states[t]};function _$(t=""){let e=t;return t===t$&&(p$++,e=`${e$}${p$}`),e}function k$(t="",e=Jj){return t===t$?e$:e}function E$(t=""){let e=t;return t===n$&&(p$++,e=`${i$}${p$}`),e}function C$(t="",e=Jj){return t===n$?i$:e}function S$(t,e,n){let i=_$(t.id.trim()),a=k$(t.id.trim(),t.type),r=_$(e.id.trim()),o=k$(e.id.trim(),e.type);w$(i,a,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),w$(r,o,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),g$.relations.push({id1:i,id2:r,relationTitle:Qd.sanitizeText(n,Ry())})}const T$=function(t,e,n){if("object"==typeof t)S$(t,e,n);else{const i=_$(t.trim()),a=k$(t),r=E$(e.trim()),o=C$(e);w$(i,a),w$(r,o),g$.relations.push({id1:i,id2:r,title:Qd.sanitizeText(n,Ry())})}},A$=function(t,e){const n=g$.states[t],i=e.startsWith(":")?e.replace(":","").trim():e;n.descriptions.push(Qd.sanitizeText(i,Ry()))},D$=function(t,e=""){void 0===d$[t]&&(d$[t]={id:t,styles:[],textStyles:[]});const n=d$[t];null!=e&&e.split(s$).forEach((t=>{const e=t.replace(/([^;]*);/,"$1").trim();if(t.match(a$)){const t=e.replace(r$,o$).replace(a$,r$);n.textStyles.push(t)}n.styles.push(e)}))},I$=function(t,e){t.split(",").forEach((function(t){let n=R$(t);if(void 0===n){const e=t.trim();w$(e),n=R$(e)}n.classes.push(e)}))},L$=function(t,e){const n=R$(t);void 0!==n&&n.textStyles.push(e)},O$=function(t,e){const n=R$(t);void 0!==n&&n.textStyles.push(e)},M$={parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().state,addState:w$,clear:x$,getState:R$,getStates:function(){return g$.states},getRelations:function(){return g$.relations},getClasses:function(){return d$},getDirection:()=>l$,addRelation:T$,getDividerId:()=>(b$++,"divider-id-"+b$),setDirection:t=>{l$=t},cleanupLabel:function(t){return":"===t.substring(0,1)?t.substr(2).trim():t.trim()},lineType:{LINE:0,DOTTED_LINE:1},relationType:{AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},logDocuments:function(){d.info("Documents = ",f$)},getRootDoc:()=>u$,setRootDoc:t=>{d.info("Setting root doc",t),u$=t},getRootDocV2:()=>(y$({id:"root"},{id:"root",doc:u$},!0),{id:"root",doc:u$}),extract:v$,trimColon:t=>t&&":"===t[0]?t.substr(1).trim():t.trim(),getAccTitle:ev,setAccTitle:tv,getAccDescription:iv,setAccDescription:nv,addStyleClass:D$,setCssClass:I$,addDescription:A$,setDiagramTitle:av,getDiagramTitle:rv},N$={},B$=()=>Object.keys(N$),P$={get:t=>N$[t],set:(t,e)=>{N$[t]=e},keys:B$,size:()=>B$().length},F$=t=>t.append("circle").attr("class","start-state").attr("r",Ry().state.sizeUnit).attr("cx",Ry().state.padding+Ry().state.sizeUnit).attr("cy",Ry().state.padding+Ry().state.sizeUnit),j$=t=>t.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",Ry().state.textHeight).attr("class","divider").attr("x2",2*Ry().state.textHeight).attr("y1",0).attr("y2",0),$$=(t,e)=>{const n=t.append("text").attr("x",2*Ry().state.padding).attr("y",Ry().state.textHeight+2*Ry().state.padding).attr("font-size",Ry().state.fontSize).attr("class","state-title").text(e.id),i=n.node().getBBox();return t.insert("rect",":first-child").attr("x",Ry().state.padding).attr("y",Ry().state.padding).attr("width",i.width+2*Ry().state.padding).attr("height",i.height+2*Ry().state.padding).attr("rx",Ry().state.radius),n},z$=(t,e)=>{const n=function(t,e,n){const i=t.append("tspan").attr("x",2*Ry().state.padding).text(e);n||i.attr("dy",Ry().state.textHeight)},i=t.append("text").attr("x",2*Ry().state.padding).attr("y",Ry().state.textHeight+1.3*Ry().state.padding).attr("font-size",Ry().state.fontSize).attr("class","state-title").text(e.descriptions[0]).node().getBBox(),a=i.height,r=t.append("text").attr("x",Ry().state.padding).attr("y",a+.4*Ry().state.padding+Ry().state.dividerMargin+Ry().state.textHeight).attr("class","state-description");let o=!0,s=!0;e.descriptions.forEach((function(t){o||(n(r,t,s),s=!1),o=!1}));const c=t.append("line").attr("x1",Ry().state.padding).attr("y1",Ry().state.padding+a+Ry().state.dividerMargin/2).attr("y2",Ry().state.padding+a+Ry().state.dividerMargin/2).attr("class","descr-divider"),l=r.node().getBBox(),u=Math.max(l.width,i.width);return c.attr("x2",u+3*Ry().state.padding),t.insert("rect",":first-child").attr("x",Ry().state.padding).attr("y",Ry().state.padding).attr("width",u+2*Ry().state.padding).attr("height",l.height+a+2*Ry().state.padding).attr("rx",Ry().state.radius),t},H$=(t,e,n)=>{const i=Ry().state.padding,a=2*Ry().state.padding,r=t.node().getBBox(),o=r.width,s=r.x,c=t.append("text").attr("x",0).attr("y",Ry().state.titleShift).attr("font-size",Ry().state.fontSize).attr("class","state-title").text(e.id),l=c.node().getBBox().width+a;let u,d=Math.max(l,o);d===o&&(d+=a);const h=t.node().getBBox();e.doc,u=s-i,l>o&&(u=(o-d)/2+i),Math.abs(s-h.x)<i&&l>o&&(u=s-(l-o)/2);const f=1-Ry().state.textHeight;return t.insert("rect",":first-child").attr("x",u).attr("y",f).attr("class",n?"alt-composit":"composit").attr("width",d).attr("height",h.height+Ry().state.textHeight+Ry().state.titleShift+1).attr("rx","0"),c.attr("x",u+i),l<=o&&c.attr("x",s+(d-a)/2-l/2+i),t.insert("rect",":first-child").attr("x",u).attr("y",Ry().state.titleShift-Ry().state.textHeight-Ry().state.padding).attr("width",d).attr("height",3*Ry().state.textHeight).attr("rx",Ry().state.radius),t.insert("rect",":first-child").attr("x",u).attr("y",Ry().state.titleShift-Ry().state.textHeight-Ry().state.padding).attr("width",d).attr("height",h.height+3+2*Ry().state.textHeight).attr("rx",Ry().state.radius),t},U$=t=>(t.append("circle").attr("class","end-state-outer").attr("r",Ry().state.sizeUnit+Ry().state.miniPadding).attr("cx",Ry().state.padding+Ry().state.sizeUnit+Ry().state.miniPadding).attr("cy",Ry().state.padding+Ry().state.sizeUnit+Ry().state.miniPadding),t.append("circle").attr("class","end-state-inner").attr("r",Ry().state.sizeUnit).attr("cx",Ry().state.padding+Ry().state.sizeUnit+2).attr("cy",Ry().state.padding+Ry().state.sizeUnit+2)),V$=(t,e)=>{let n=Ry().state.forkWidth,i=Ry().state.forkHeight;if(e.parentId){let t=n;n=i,i=t}return t.append("rect").style("stroke","black").style("fill","black").attr("width",n).attr("height",i).attr("x",Ry().state.padding).attr("y",Ry().state.padding)},q$=(t,e,n,i)=>{let a=0;const r=i.append("text");r.style("text-anchor","start"),r.attr("class","noteText");let o=t.replace(/\r\n/g,"<br/>");o=o.replace(/\n/g,"<br/>");const s=o.split(Qd.lineBreakRegex);let c=1.25*Ry().state.noteMargin;for(const l of s){const t=l.trim();if(t.length>0){const i=r.append("tspan");i.text(t),0===c&&(c+=i.node().getBBox().height),a+=c,i.attr("x",e+Ry().state.noteMargin),i.attr("y",n+a+1.25*Ry().state.noteMargin)}}return{textWidth:r.node().getBBox().width,textHeight:a}},W$=(t,e)=>{e.attr("class","state-note");const n=e.append("rect").attr("x",0).attr("y",Ry().state.padding),i=e.append("g"),{textWidth:a,textHeight:r}=q$(t,0,0,i);return n.attr("height",r+2*Ry().state.noteMargin),n.attr("width",a+2*Ry().state.noteMargin),n},Y$=function(t,e){const n=e.id,i={id:n,label:e.id,width:0,height:0},a=t.append("g").attr("id",n).attr("class","stateGroup");"start"===e.type&&F$(a),"end"===e.type&&U$(a),("fork"===e.type||"join"===e.type)&&V$(a,e),"note"===e.type&&W$(e.note.text,a),"divider"===e.type&&j$(a),"default"===e.type&&0===e.descriptions.length&&$$(a,e),"default"===e.type&&e.descriptions.length>0&&z$(a,e);const r=a.node().getBBox();return i.width=r.width+2*Ry().state.padding,i.height=r.height+2*Ry().state.padding,P$.set(n,i),i};let G$=0;const Z$=function(t,e,n){const i=function(t){switch(t){case M$.relationType.AGGREGATION:return"aggregation";case M$.relationType.EXTENSION:return"extension";case M$.relationType.COMPOSITION:return"composition";case M$.relationType.DEPENDENCY:return"dependency"}};e.points=e.points.filter((t=>!Number.isNaN(t.y)));const a=e.points,r=$l().x((function(t){return t.x})).y((function(t){return t.y})).curve(Kl),o=t.append("path").attr("d",r(a)).attr("id","edge"+G$).attr("class","transition");let s="";if(Ry().state.arrowMarkerAbsolute&&(s=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,s=s.replace(/\(/g,"\\("),s=s.replace(/\)/g,"\\)")),o.attr("marker-end","url("+s+"#"+i(M$.relationType.DEPENDENCY)+"End)"),void 0!==n.title){const i=t.append("g").attr("class","stateLabel"),{x:a,y:r}=vm.calcLabelPosition(e.points),o=Qd.getRows(n.title);let s=0;const c=[];let l=0,u=0;for(let t=0;t<=o.length;t++){const e=i.append("text").attr("text-anchor","middle").text(o[t]).attr("x",a).attr("y",r+s),n=e.node().getBBox();l=Math.max(l,n.width),u=Math.min(u,n.x),d.info(n.x,a,r+s),0===s&&(s=e.node().getBBox().height,d.info("Title height",s,r)),c.push(e)}let h=s*o.length;if(o.length>1){const t=(o.length-1)*s*.5;c.forEach(((e,n)=>e.attr("y",r+n*s-t))),h=s*o.length}const f=i.node().getBBox();i.insert("rect",":first-child").attr("class","box").attr("x",a-l/2-Ry().state.padding/2).attr("y",r-h/2-Ry().state.padding/2-3.5).attr("width",l+Ry().state.padding).attr("height",h+Ry().state.padding),d.info(f)}G$++};let K$;const X$={},J$=function(t){t.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},Q$=function(t,e,n,i){K$=Ry().state;const a=Ry().securityLevel;let r;"sandbox"===a&&(r=un("#i"+e));const o=un("sandbox"===a?r.nodes()[0].contentDocument.body:"body"),s="sandbox"===a?r.nodes()[0].contentDocument:document;d.debug("Rendering diagram "+t);const c=o.select(`[id='${e}']`);J$(c),new hA({multigraph:!0,compound:!0,rankdir:"RL"}).setDefaultEdgeLabel((function(){return{}}));const l=i.db.getRootDoc();ez(l,c,void 0,!1,o,s,i);const u=K$.padding,h=c.node().getBBox(),f=h.width+2*u,g=h.height+2*u;Ly(c,g,1.75*f,K$.useMaxWidth),c.attr("viewBox",`${h.x-K$.padding} ${h.y-K$.padding} `+f+" "+g)},tz=t=>t?t.length*K$.fontSizeFactor:1,ez=(t,e,n,i,a,r,o)=>{const s=new hA({compound:!0,multigraph:!0});let c,l=!0;for(c=0;c<t.length;c++)if("relation"===t[c].stmt){l=!1;break}n?s.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:l?1:K$.edgeLengthFactor,nodeSep:l?1:50,isMultiGraph:!0}):s.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:l?1:K$.edgeLengthFactor,nodeSep:l?1:50,ranker:"tight-tree",isMultiGraph:!0}),s.setDefaultEdgeLabel((function(){return{}})),o.db.extract(t);const u=o.db.getStates(),h=o.db.getRelations(),f=Object.keys(u);for(const d of f){const t=u[d];let c;if(n&&(t.parentId=n),t.doc){let n=e.append("g").attr("id",t.id).attr("class","stateGroup");c=ez(t.doc,n,t.id,!i,a,r,o);{n=H$(n,t,i);let e=n.node().getBBox();c.width=e.width,c.height=e.height+K$.padding/2,X$[t.id]={y:K$.compositTitleSize}}}else c=Y$(e,t);if(t.note){const n={descriptions:[],id:t.id+"-note",note:t.note,type:"note"},i=Y$(e,n);"left of"===t.note.position?(s.setNode(c.id+"-note",i),s.setNode(c.id,c)):(s.setNode(c.id,c),s.setNode(c.id+"-note",i)),s.setParent(c.id,c.id+"-group"),s.setParent(c.id+"-note",c.id+"-group")}else s.setNode(c.id,c)}d.debug("Count=",s.nodeCount(),s);let g=0;h.forEach((function(t){g++,d.debug("Setting edge",t),s.setEdge(t.id1,t.id2,{relation:t,width:tz(t.title),height:K$.labelHeight*Qd.getRows(t.title).length,labelpos:"c"},"id"+g)})),yI(s),d.debug("Graph after layout",s.nodes());const p=e.node();s.nodes().forEach((function(t){void 0!==t&&void 0!==s.node(t)?(d.warn("Node "+t+": "+JSON.stringify(s.node(t))),a.select("#"+p.id+" #"+t).attr("transform","translate("+(s.node(t).x-s.node(t).width/2)+","+(s.node(t).y+(X$[t]?X$[t].y:0)-s.node(t).height/2)+" )"),a.select("#"+p.id+" #"+t).attr("data-x-shift",s.node(t).x-s.node(t).width/2),r.querySelectorAll("#"+p.id+" #"+t+" .divider").forEach((t=>{const e=t.parentElement;let n=0,i=0;e&&(e.parentElement&&(n=e.parentElement.getBBox().width),i=parseInt(e.getAttribute("data-x-shift"),10),Number.isNaN(i)&&(i=0)),t.setAttribute("x1",0-i+8),t.setAttribute("x2",n-i-8)}))):d.debug("No Node "+t+": "+JSON.stringify(s.node(t)))}));let b=p.getBBox();s.edges().forEach((function(t){void 0!==t&&void 0!==s.edge(t)&&(d.debug("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(s.edge(t))),Z$(e,s.edge(t),s.edge(t).relation))})),b=p.getBBox();const m={id:n||"root",label:n||"root",width:0,height:0};return m.width=b.width+2*K$.padding,m.height=b.height+2*K$.padding,d.debug("Doc rendered",m,s),m},nz={setConf:function(){},draw:Q$},iz="rect",az="rectWithTitle",rz="start",oz="end",sz="divider",cz="roundedWithTitle",lz="note",uz="noteGroup",dz="statediagram",hz=`${dz}-state`,fz="transition",gz=`${fz} note-edge`,pz=`${dz}-note`,bz=`${dz}-cluster`,mz=`${dz}-cluster-alt`,yz="parent",vz="note",wz="state",xz="----",Rz=`${xz}${vz}`,_z=`${xz}${yz}`,kz="fill:none",Ez="fill: #333",Cz="c",Sz="text",Tz="normal";let Az={},Dz=0;function Iz(t){return null==t?"":t.classes?t.classes.join(" "):""}function Lz(t="",e=0,n="",i=xz){const a=null!==n&&n.length>0?`${i}${n}`:"";return`${wz}-${t}${a}-${e}`}const Oz=(t,e,n,i,a,r)=>{const o=n.id,s=Iz(i[o]);if("root"!==o){let e=iz;!0===n.start&&(e=rz),!1===n.start&&(e=oz),n.type!==Jj&&(e=n.type),Az[o]||(Az[o]={id:o,shape:e,description:Qd.sanitizeText(o,Ry()),classes:`${s} ${hz}`});const i=Az[o];n.description&&(Array.isArray(i.description)?(i.shape=az,i.description.push(n.description)):i.description.length>0?(i.shape=az,i.description===o?i.description=[n.description]:i.description=[i.description,n.description]):(i.shape=iz,i.description=n.description),i.description=Qd.sanitizeTextOrArray(i.description,Ry())),1===i.description.length&&i.shape===az&&(i.shape=iz),!i.type&&n.doc&&(d.info("Setting cluster for ",o,Nz(n)),i.type="group",i.dir=Nz(n),i.shape=n.type===Qj?sz:cz,i.classes=i.classes+" "+bz+" "+(r?mz:""));const a={labelStyle:"",shape:i.shape,labelText:i.description,classes:i.classes,style:"",id:o,dir:i.dir,domId:Lz(o,Dz),type:i.type,padding:15};if(n.note){const e={labelStyle:"",shape:lz,labelText:n.note.text,classes:pz,style:"",id:o+Rz+"-"+Dz,domId:Lz(o,Dz,vz),type:i.type,padding:15},r={labelStyle:"",shape:uz,labelText:n.note.text,classes:i.classes,style:"",id:o+_z,domId:Lz(o,Dz,yz),type:"group",padding:0};Dz++;const s=o+_z;t.setNode(s,r),t.setNode(e.id,e),t.setNode(o,a),t.setParent(o,s),t.setParent(e.id,s);let c=o,l=e.id;"left of"===n.note.position&&(c=e.id,l=o),t.setEdge(c,l,{arrowhead:"none",arrowType:"",style:kz,labelStyle:"",classes:gz,arrowheadStyle:Ez,labelpos:Cz,labelType:Sz,thickness:Tz})}else t.setNode(o,a)}e&&"root"!==e.id&&(d.trace("Setting node ",o," to be child of its parent ",e.id),t.setParent(o,e.id)),n.doc&&(d.trace("Adding nodes children "),Mz(t,n,n.doc,i,a,!r))},Mz=(t,e,n,i,a,r)=>{d.trace("items",n),n.forEach((n=>{switch(n.stmt){case Gj:case Jj:Oz(t,e,n,i,a,r);break;case Zj:{Oz(t,e,n.state1,i,a,r),Oz(t,e,n.state2,i,a,r);const o={id:"edge"+Dz,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:kz,labelStyle:"",label:Qd.sanitizeText(n.description,Ry()),arrowheadStyle:Ez,labelpos:Cz,labelType:Sz,thickness:Tz,classes:fz};t.setEdge(n.state1.id,n.state2.id,o,Dz),Dz++}}}))},Nz=(t,e=Yj)=>{let n=e;if(t.doc)for(let i=0;i<t.doc.length;i++){const e=t.doc[i];"dir"===e.stmt&&(n=e.value)}return n},Bz={setConf:function(t){const e=Object.keys(t);for(const n of e)t[n]},getClasses:function(t,e){d.trace("Extracting classes"),e.db.clear();try{return e.parser.parse(t),e.db.extract(e.db.getRootDocV2()),e.db.getClasses()}catch(n){return n}},draw:function(t,e,n,i){d.info("Drawing state diagram (v2)",e),Az={};let a=i.db.getDirection();void 0===a&&(a=Wj);const{securityLevel:r,state:o}=Ry(),s=o.nodeSpacing||50,c=o.rankSpacing||50;d.info(i.db.getRootDocV2()),i.db.extract(i.db.getRootDocV2()),d.info(i.db.getRootDocV2());const l=i.db.getStates(),u=new hA({multigraph:!0,compound:!0}).setGraph({rankdir:Nz(i.db.getRootDocV2()),nodesep:s,ranksep:c,marginx:8,marginy:8}).setDefaultEdgeLabel((function(){return{}}));let h;Oz(u,void 0,i.db.getRootDocV2(),l,i.db,!0),"sandbox"===r&&(h=un("#i"+e));const f=un("sandbox"===r?h.nodes()[0].contentDocument.body:"body"),g=f.select(`[id="${e}"]`),p=f.select("#"+e+" g");cO(p,u,["barb"],dz,e);const b=8;vm.insertTitle(g,"statediagramTitleText",o.titleTopMargin,i.db.getDiagramTitle());const m=g.node().getBBox(),y=m.width+2*b,v=m.height+2*b;g.attr("class",dz);const w=g.node().getBBox();Ly(g,v,y,o.useMaxWidth);const x=`${w.x-b} ${w.y-b} ${y} ${v}`;d.debug(`viewBox ${x}`),g.attr("viewBox",x);const R=document.querySelectorAll('[id="'+e+'"] .edgeLabel .label');for(const d of R){const t=d.getBBox(),e=document.createElementNS("http://www.w3.org/2000/svg",iz);e.setAttribute("rx",0),e.setAttribute("ry",0),e.setAttribute("width",t.width),e.setAttribute("height",t.height),d.insertBefore(e,d.firstChild)}}};var Pz=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,5],i=[6,9,11,17,18,20,22,23,24,26],a=[1,15],r=[1,16],o=[1,17],s=[1,18],c=[1,19],l=[1,20],u=[1,24],d=[4,6,9,11,17,18,20,22,23,24,26],h={trace:function(){},yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,taskName:24,taskData:25,open_directive:26,type_directive:27,arg_directive:28,close_directive:29,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",24:"taskName",25:"taskData",26:"open_directive",27:"type_directive",28:"arg_directive",29:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,2],[10,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 1:return r[s-1];case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:this.$=r[s];break;case 11:i.setDiagramTitle(r[s].substr(6)),this.$=r[s].substr(6);break;case 12:this.$=r[s].trim(),i.setAccTitle(this.$);break;case 13:case 14:this.$=r[s].trim(),i.setAccDescription(this.$);break;case 15:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 16:i.addTask(r[s-1],r[s]),this.$="task";break;case 18:i.parseDirective("%%{","open_directive");break;case 19:i.parseDirective(r[s],"type_directive");break;case 20:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 21:i.parseDirective("}%%","close_directive","journey")}},table:[{3:1,4:e,7:3,12:4,26:n},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,26:n},{13:8,27:[1,9]},{27:[2,18]},{6:[1,10],7:21,8:11,9:[1,12],10:13,11:[1,14],12:4,17:a,18:r,20:o,22:s,23:c,24:l,26:n},{1:[2,2]},{14:22,15:[1,23],29:u},t([15,29],[2,19]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:21,10:25,12:4,17:a,18:r,20:o,22:s,23:c,24:l,26:n},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),{19:[1,26]},{21:[1,27]},t(i,[2,14]),t(i,[2,15]),{25:[1,28]},t(i,[2,17]),{11:[1,29]},{16:30,28:[1,31]},{11:[2,21]},t(i,[2,5]),t(i,[2,12]),t(i,[2,13]),t(i,[2,16]),t(d,[2,9]),{14:32,29:u},{29:[2,20]},{11:[1,33]},t(d,[2,10])],defaultActions:{5:[2,18],7:[2,2],24:[2,21],31:[2,20]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},f={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),26;case 1:return this.begin("type_directive"),27;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),29;case 4:return 28;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 24;case 21:return 25;case 22:return 15;case 23:return 6;case 24:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:journey\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23,24],inclusive:!0}}};function g(){this.yy={}}return h.lexer=f,g.prototype=h,h.Parser=g,new g}();Pz.parser=Pz;const Fz=Pz,jz=t=>null!==t.match(/^\s*journey/);let $z="";const zz=[],Hz=[],Uz=[],Vz=function(){let t=Wz();const e=100;let n=0;for(;!t&&n<e;)t=Wz(),n++;return Hz.push(...Uz),Hz},qz=function(){const t=[];return Hz.forEach((e=>{e.people&&t.push(...e.people)})),[...new Set(t)].sort()},Wz=function(){const t=function(t){return Uz[t].processed};let e=!0;for(const[n,i]of Uz.entries())t(n),e=e&&i.processed;return e},Yz={parseDirective:function(t,e,n){dU.parseDirective(this,t,e,n)},getConfig:()=>Ry().journey,clear:function(){zz.length=0,Hz.length=0,$z="",Uz.length=0,Qy()},setDiagramTitle:av,getDiagramTitle:rv,setAccTitle:tv,getAccTitle:ev,setAccDescription:nv,getAccDescription:iv,addSection:function(t){$z=t,zz.push(t)},getSections:function(){return zz},getTasks:Vz,addTask:function(t,e){const n=e.substr(1).split(":");let i=0,a=[];1===n.length?(i=Number(n[0]),a=[]):(i=Number(n[0]),a=n[1].split(","));const r=a.map((t=>t.trim())),o={section:$z,type:$z,people:r,task:t,score:i};Uz.push(o)},addTaskOrg:function(t){const e={section:$z,type:$z,description:t,task:t,classes:[]};Hz.push(e)},getActors:function(){return qz()}},Gz=function(t,e){const n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},Zz=function(t,e){const n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");function a(t){const n=Ml().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(6.8181818181818175);t.append("path").attr("class","mouth").attr("d",n).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function r(t){const n=Ml().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(6.8181818181818175);t.append("path").attr("class","mouth").attr("d",n).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function o(t){t.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return i.append("circle").attr("cx",e.cx-5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),e.score>3?a(i):e.score<3?r(i):o(i),n},Kz=function(t,e){const n=t.append("circle");return n.attr("cx",e.cx),n.attr("cy",e.cy),n.attr("class","actor-"+e.pos),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("r",e.r),void 0!==n.class&&n.attr("class",n.class),void 0!==e.title&&n.append("title").text(e.title),n},Xz=function(t,e){const n=e.text.replace(/<br\s*\/?>/gi," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.attr("class","legend"),i.style("text-anchor",e.anchor),void 0!==e.class&&i.attr("class",e.class);const a=i.append("tspan");return a.attr("x",e.x+2*e.textMargin),a.text(n),i},Jz=function(t,e){function n(t,e,n,i,a){return t+","+e+" "+(t+n)+","+e+" "+(t+n)+","+(e+i-a)+" "+(t+n-1.2*a)+","+(e+i)+" "+t+","+(e+i)}const i=t.append("polygon");i.attr("points",n(e.x,e.y,50,20,7)),i.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,Xz(t,e)},Qz=function(t,e,n){const i=t.append("g"),a=aH();a.x=e.x,a.y=e.y,a.fill=e.fill,a.width=n.width,a.height=n.height,a.class="journey-section section-type-"+e.num,a.rx=3,a.ry=3,Gz(i,a),rH(n)(e.text,i,a.x,a.y,a.width,a.height,{class:"journey-section section-type-"+e.num},n,e.colour)};let tH=-1;const eH=function(t,e,n){const i=e.x+n.width/2,a=t.append("g");tH++;const r=450;a.append("line").attr("id","task"+tH).attr("x1",i).attr("y1",e.y).attr("x2",i).attr("y2",r).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),Zz(a,{cx:i,cy:300+30*(5-e.score),score:e.score});const o=aH();o.x=e.x,o.y=e.y,o.fill=e.fill,o.width=n.width,o.height=n.height,o.class="task task-type-"+e.num,o.rx=3,o.ry=3,Gz(a,o);let s=e.x+14;e.people.forEach((t=>{const n=e.actors[t].color,i={cx:s,cy:e.y,r:7,fill:n,stroke:"#000",title:t,pos:e.actors[t].position};Kz(a,i),s+=10})),rH(n)(e.task,a,o.x,o.y,o.width,o.height,{class:"task"},n,e.colour)},nH=function(t,e){Gz(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},iH=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},aH=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},rH=function(){function t(t,e,n,a,r,o,s,c){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("font-color",c).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c,l){const{taskFontSize:u,taskFontFamily:d}=c,h=t.split(/<br\s*\/?>/gi);for(let f=0;f<h.length;f++){const t=f*u-u*(h.length-1)/2,c=e.append("text").attr("x",n+r/2).attr("y",a).attr("fill",l).style("text-anchor","middle").style("font-size",u).style("font-family",d);c.append("tspan").attr("x",n+r/2).attr("dy",t).text(h[f]),c.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(c,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)n in e&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}(),oH={drawRect:Gz,drawCircle:Kz,drawSection:Qz,drawText:Xz,drawLabel:Jz,drawTask:eH,drawBackgroundRect:nH,getTextObj:iH,getNoteRect:aH,initGraphics:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")}},sH=function(t){Object.keys(t).forEach((function(e){uH[e]=t[e]}))},cH={};function lH(t){const e=Ry().journey;let n=60;Object.keys(cH).forEach((i=>{const a=cH[i].color,r={cx:20,cy:n,r:7,fill:a,stroke:"#000",pos:cH[i].position};oH.drawCircle(t,r);const o={x:40,y:n+7,fill:"#666",text:i,textMargin:5|e.boxTextMargin};oH.drawText(t,o),n+=20}))}const uH=Ry().journey,dH=uH.leftMargin,hH=function(t,e,n,i){const a=Ry().journey;i.db.clear(),i.parser.parse(t+"\n");const r=Ry().securityLevel;let o;"sandbox"===r&&(o=un("#i"+e));const s=un("sandbox"===r?o.nodes()[0].contentDocument.body:"body");fH.init();const c=s.select("#"+e);oH.initGraphics(c);const l=i.db.getTasks(),u=i.db.getDiagramTitle(),d=i.db.getActors();for(const m in cH)delete cH[m];let h=0;d.forEach((t=>{cH[t]={color:a.actorColours[h%a.actorColours.length],position:h},h++})),lH(c),fH.insert(0,0,dH,50*Object.keys(cH).length),bH(c,l,0);const f=fH.getBounds();u&&c.append("text").text(u).attr("x",dH).attr("font-size","4ex").attr("font-weight","bold").attr("y",25);const g=f.stopy-f.starty+2*a.diagramMarginY,p=dH+f.stopx+2*a.diagramMarginX;Ly(c,g,p,a.useMaxWidth),c.append("line").attr("x1",dH).attr("y1",4*a.height).attr("x2",p-dH-4).attr("y2",4*a.height).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)");const b=u?70:0;c.attr("viewBox",`${f.startx} -25 ${p} ${g+b}`),c.attr("preserveAspectRatio","xMinYMin meet"),c.attr("height",g+b+25)},fH={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],init:function(){this.sequenceItems=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,e,n,i){void 0===t[e]?t[e]=n:t[e]=i(n,t[e])},updateBounds:function(t,e,n,i){const a=Ry().journey,r=this;let o=0;function s(s){return function(c){o++;const l=r.sequenceItems.length-o+1;r.updateVal(c,"starty",e-l*a.boxMargin,Math.min),r.updateVal(c,"stopy",i+l*a.boxMargin,Math.max),r.updateVal(fH.data,"startx",t-l*a.boxMargin,Math.min),r.updateVal(fH.data,"stopx",n+l*a.boxMargin,Math.max),"activation"!==s&&(r.updateVal(c,"startx",t-l*a.boxMargin,Math.min),r.updateVal(c,"stopx",n+l*a.boxMargin,Math.max),r.updateVal(fH.data,"starty",e-l*a.boxMargin,Math.min),r.updateVal(fH.data,"stopy",i+l*a.boxMargin,Math.max))}}this.sequenceItems.forEach(s())},insert:function(t,e,n,i){const a=Math.min(t,n),r=Math.max(t,n),o=Math.min(e,i),s=Math.max(e,i);this.updateVal(fH.data,"startx",a,Math.min),this.updateVal(fH.data,"starty",o,Math.min),this.updateVal(fH.data,"stopx",r,Math.max),this.updateVal(fH.data,"stopy",s,Math.max),this.updateBounds(a,o,r,s)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}},gH=uH.sectionFills,pH=uH.sectionColours,bH=function(t,e,n){const i=Ry().journey;let a="";const r=n+(2*i.height+i.diagramMarginY);let o=0,s="#CCC",c="black",l=0;for(const[u,d]of e.entries()){if(a!==d.section){s=gH[o%gH.length],l=o%gH.length,c=pH[o%pH.length];const e={x:u*i.taskMargin+u*i.width+dH,y:50,text:d.section,fill:s,num:l,colour:c};oH.drawSection(t,e,i),a=d.section,o++}const e=d.people.reduce(((t,e)=>(cH[e]&&(t[e]=cH[e]),t)),{});d.x=u*i.taskMargin+u*i.width+dH,d.y=r,d.width=i.diagramMarginX,d.height=i.diagramMarginY,d.colour=c,d.fill=s,d.num=l,d.actors=e,oH.drawTask(t,d,i),fH.insert(d.x,d.y,d.x+d.width+i.taskMargin,450)}},mH={setConf:sH,draw:hH};let yH={};const vH={setConf:function(t){yH={...yH,...t}},draw:(t,e,n)=>{try{d.debug("Renering svg for syntax error\n");const t=un("#"+e),i=t.append("g");i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in graph"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text("mermaid version "+n),t.attr("height",100),t.attr("width",500),t.attr("viewBox","768 0 912 512")}catch(o){d.error("Error while rendering info diagram"),d.error(mm(o))}}},wH="flowchart-elk",xH={id:wH,detector:(t,e)=>{var n;return!!(t.match(/^\s*flowchart-elk/)||t.match(/^\s*flowchart|graph/)&&"elk"===(null==(n=null==e?void 0:e.flowchart)?void 0:n.defaultRenderer))},loader:async()=>{const{diagram:t}=await Promise.resolve().then((()=>ZU));return{id:wH,diagram:t}}},RH="timeline",_H={id:RH,detector:t=>null!==t.match(/^\s*timeline/),loader:async()=>{const{diagram:t}=await Promise.resolve().then((()=>BV));return{id:RH,diagram:t}}},kH="mindmap",EH={id:kH,detector:t=>null!==t.match(/^\s*mindmap/),loader:async()=>{const{diagram:t}=await Promise.resolve().then((()=>Mq));return{id:kH,diagram:t}}};let CH=!1;const SH=()=>{CH||(CH=!0,_p(xH,_H,EH),yv("error",{db:{clear:()=>{}},styles:By,renderer:vH,parser:{parser:{yy:{}},parse:()=>{}},init:()=>{}},(t=>"error"===t.toLowerCase().trim())),yv("---",{db:{clear:()=>{}},styles:By,renderer:vH,parser:{parser:{yy:{}},parse:()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with unindented `---` blocks")}},init:()=>null},(t=>t.toLowerCase().trimStart().startsWith("---"))),yv("c4",{parser:uw,db:Ow,renderer:px,styles:qy,init:t=>{px.setConf(t.c4)}},dw),yv("class",{parser:mx,db:Qx,renderer:iL,styles:My,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Qx.clear()}},yx),yv("classDiagram",{parser:mx,db:Qx,renderer:pO,styles:My,init:t=>{t.class||(t.class={}),t.class.arrowMarkerAbsolute=t.arrowMarkerAbsolute,Qx.clear()}},vx),yv("er",{parser:mO,db:RO,renderer:XO,styles:Ny},yO),yv("gantt",{parser:TB,db:vP,renderer:RP,styles:Fy},AB),yv("info",{parser:kP,db:SP,renderer:TP,styles:jy},AP),yv("pie",{parser:IP,db:NP,renderer:jP,styles:$y},LP),yv("requirement",{parser:zP,db:GP,renderer:lF,styles:zy},HP),yv("sequence",{parser:dF,db:PF,renderer:zj,styles:Hy,init:t=>{if(t.sequence||(t.sequence={}),t.sequence.arrowMarkerAbsolute=t.arrowMarkerAbsolute,"sequenceDiagram"in t)throw new Error("`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.");PF.setWrap(t.wrap),zj.setConf(t.sequence)}},hF),yv("state",{parser:Uj,db:M$,renderer:nz,styles:Uy,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,M$.clear()}},Vj),yv("stateDiagram",{parser:Uj,db:M$,renderer:Bz,styles:Uy,init:t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute,M$.clear()}},qj),yv("journey",{parser:Fz,db:Yz,renderer:mH,styles:Vy,init:t=>{mH.setConf(t.journey),Yz.clear()}},jz),yv("flowchart",{parser:QO,db:iN,renderer:CB,styles:Py,init:t=>{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,RB.setConf(t.flowchart),iN.clear(),iN.setGen("gen-1")}},tM),yv("flowchart-v2",{parser:QO,db:iN,renderer:CB,styles:Py,init:t=>{t.flowchart||(t.flowchart={}),t.flowchart.arrowMarkerAbsolute=t.arrowMarkerAbsolute,xy({flowchart:{arrowMarkerAbsolute:t.arrowMarkerAbsolute}}),CB.setConf(t.flowchart),iN.clear(),iN.setGen("gen-2")}},eM),yv("gitGraph",{parser:xv,db:qv,renderer:sw,styles:cw},Rv))};class TH{constructor(t,e){var n,i;this.txt=t,this.type="graph",this.detectTypeFailed=!1;const a=Ry();this.txt=t;try{this.type=Rp(t,a)}catch(s){this.handleError(s,e),this.type="error",this.detectTypeFailed=!0}const r=vv(this.type);d.debug("Type "+this.type),this.db=r.db,null==(i=(n=this.db).clear)||i.call(n),this.renderer=r.renderer,this.parser=r.parser;const o=this.parser.parse.bind(this.parser);this.parser.parse=t=>o(yp(t,this.db)),this.parser.parser.yy=this.db,r.init&&(r.init(a),d.info("Initialized diagram "+this.type,a)),this.txt+="\n",this.parse(this.txt,e)}parse(t,e){var n,i;if(this.detectTypeFailed)return!1;try{return t+="\n",null==(i=(n=this.db).clear)||i.call(n),this.parser.parse(t),!0}catch(a){this.handleError(a,e)}return!1}handleError(t,e){if(void 0===e)throw t;bm(t)?e(t.str,t.hash):e(t)}getParser(){return this.parser}getType(){return this.type}}const AH=(t,e)=>{const n=Rp(t,Ry());try{vv(n)}catch{const i=Ep(n);if(!i)throw new Error(`Diagram ${n} not found.`);return i().then((({diagram:i})=>(yv(n,i,void 0),new TH(t,e))))}return new TH(t,e)},DH=TH,IH="graphics-document document";function LH(t,e){t.attr("role",IH),AT(e)||t.attr("aria-roledescription",e)}function OH(t,e,n,i){if(void 0!==t.insert){if(!e&&!n)return;if(n){const e="chart-desc-"+i;t.attr("aria-describedby",e),t.insert("desc",":first-child").attr("id",e).text(n)}if(e){const n="chart-title-"+i;t.attr("aria-labelledby",n),t.insert("title",":first-child").attr("id",n).text(e)}}}const MH=["graph","flowchart","flowchart-v2","stateDiagram","stateDiagram-v2"],NH="graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa",BH="sandbox",PH="loose",FH="http://www.w3.org/2000/svg",jH="http://www.w3.org/1999/xlink",$H="http://www.w3.org/1999/xhtml",zH="100%",HH="100%",UH="border:0;margin:0;",VH="margin:0",qH="allow-top-navigation-by-user-activation allow-popups",WH='The "iframe" tag is not supported by your browser.',YH=["foreignobject"],GH=["dominant-baseline"];function ZH(t,e){return SH(),new DH(t,e).parse(t,e)}async function KH(t,e){return SH(),(await AH(t,e)).parse(t,e)}const XH=function(t){let e=t;return e=e.replace(/style.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)})),e=e.replace(/classDef.*:\S*#.*;/g,(function(t){return t.substring(0,t.length-1)})),e=e.replace(/#\w+;/g,(function(t){const e=t.substring(1,t.length-1);return/^\+?\d+$/.test(e)?"\ufb02\xb0\xb0"+e+"\xb6\xdf":"\ufb02\xb0"+e+"\xb6\xdf"})),e},JH=function(t){let e=t;return e=e.replace(/\ufb02\xb0\xb0/g,"&#"),e=e.replace(/\ufb02\xb0/g,"&"),e=e.replace(/\xb6\xdf/g,";"),e},QH=(t,e,n=[])=>`\n.${t} ${e} { ${n.join(" !important; ")} !important; }`,tU=(t,e,n={})=>{var i;let a="";if(void 0!==t.themeCSS&&(a+=`\n${t.themeCSS}`),void 0!==t.fontFamily&&(a+=`\n:root { --mermaid-font-family: ${t.fontFamily}}`),void 0!==t.altFontFamily&&(a+=`\n:root { --mermaid-alt-font-family: ${t.altFontFamily}}`),!AT(n)&&MH.includes(e)){const e=t.htmlLabels||(null==(i=t.flowchart)?void 0:i.htmlLabels)?["> *","span"]:["rect","polygon","ellipse","circle","path"];for(const t in n){const i=n[t];AT(i.styles)||e.forEach((t=>{a+=QH(i.id,t,i.styles)})),AT(i.textStyles)||(a+=QH(i.id,"tspan",i.textStyles))}}return a},eU=(t,e,n,i)=>{const a=tU(t,e,n);return cy(iy(`${i}{${Gy(e,a,t.themeVariables)}}`),ly)},nU=(t="",e,n)=>{let i=t;return!n&&!e&&(i=i.replace(/marker-end="url\(.*?#/g,'marker-end="url(#')),i=JH(i),i=i.replace(/<br>/g,"<br/>"),i},iU=(t="",e)=>{const n=e?e.viewBox.baseVal.height+"px":HH,i=btoa('<body style="'+VH+'">'+t+"</body>");return`<iframe style="width:${zH};height:${n};${UH}" src="data:text/html;base64,${i}" sandbox="${qH}">\n ${WH}\n</iframe>`},aU=(t,e,n,i,a)=>{const r=t.append("div");r.attr("id",n),i&&r.attr("style",i);const o=r.append("svg").attr("id",e).attr("width","100%").attr("xmlns",FH);return a&&o.attr("xmlns:xlink",a),o.append("g"),t};function rU(t,e){return t.append("iframe").attr("id",e).attr("style","width: 100%; height: 100%;").attr("sandbox","")}const oU=(t,e,n,i)=>{var a,r,o;null==(a=t.getElementById(e))||a.remove(),null==(r=t.getElementById(n))||r.remove(),null==(o=t.getElementById(i))||o.remove()},sU=function(t,e,n,i){var a,r,o,s;SH(),Ey();const c=vm.detectInit(e);c&&(gm(c),ky(c));const l=Ry();d.debug(l),e.length>((null==l?void 0:l.maxTextSize)??5e4)&&(e=NH),e=e.replace(/\r\n?/g,"\n");const u="#"+t,h="i"+t,f="#"+h,g="d"+t,p="#"+g;let b=un("body");const m=l.securityLevel===BH,y=l.securityLevel===PH,v=l.fontFamily;if(void 0!==i){if(i&&(i.innerHTML=""),m){const t=rU(un(i),h);b=un(t.nodes()[0].contentDocument.body),b.node().style.margin=0}else b=un(i);aU(b,t,g,`font-family: ${v}`,jH)}else{if(oU(document,t,g,h),m){const t=rU(un("body"),h);b=un(t.nodes()[0].contentDocument.body),b.node().style.margin=0}else b=un("body");aU(b,t,g)}let w,x;e=XH(e);try{if(w=AH(e),"then"in w)throw new Error("Diagram is a promise. Use renderAsync.")}catch(I){w=new DH("error"),x=I}const R=b.select(p).node(),_=w.type,k=R.firstChild,E=k.firstChild,C=MH.includes(_)?w.renderer.getClasses(e,w):{},S=eU(l,_,C,u),T=document.createElement("style");T.innerHTML=S,k.insertBefore(T,E);try{w.renderer.draw(e,t,uy,w)}catch(I){throw vH.draw(e,t,uy),I}uU(_,b.select(`${p} svg`),null==(r=(a=w.db).getAccTitle)?void 0:r.call(a),null==(s=(o=w.db).getAccDescription)?void 0:s.call(o)),b.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",$H);let A=b.select(p).node().innerHTML;if(d.debug("config.arrowMarkerAbsolute",l.arrowMarkerAbsolute),A=nU(A,m,Xd(l.arrowMarkerAbsolute)),m){const t=b.select(p+" svg").node();A=iU(A,t)}else y||(A=Hd.sanitize(A,{ADD_TAGS:YH,ADD_ATTR:GH}));if(void 0!==n)switch(_){case"flowchart":case"flowchart-v2":n(A,iN.bindFunctions);break;case"gantt":n(A,vP.bindFunctions);break;case"class":case"classDiagram":n(A,Qx.bindFunctions);break;default:n(A)}else d.debug("CB = undefined!");$F();const D=un(m?f:p).node();if(D&&"remove"in D&&D.remove(),x)throw x;return A},cU=async function(t,e,n,i){var a,r,o,s;SH(),Ey();const c=vm.detectInit(e);c&&(gm(c),ky(c));const l=Ry();d.debug(l),e.length>((null==l?void 0:l.maxTextSize)??5e4)&&(e=NH),e=e.replace(/\r\n?/g,"\n");const u="#"+t,h="i"+t,f="#"+h,g="d"+t,p="#"+g;let b=un("body");const m=l.securityLevel===BH,y=l.securityLevel===PH,v=l.fontFamily;if(void 0!==i){if(i&&(i.innerHTML=""),m){const t=rU(un(i),h);b=un(t.nodes()[0].contentDocument.body),b.node().style.margin=0}else b=un(i);aU(b,t,g,`font-family: ${v}`,jH)}else{if(oU(document,t,g,h),m){const t=rU(un("body"),h);b=un(t.nodes()[0].contentDocument.body),b.node().style.margin=0}else b=un("body");aU(b,t,g)}let w,x;e=XH(e);try{w=await AH(e)}catch(I){w=new DH("error"),x=I}const R=b.select(p).node(),_=w.type,k=R.firstChild,E=k.firstChild,C=MH.includes(_)?w.renderer.getClasses(e,w):{},S=eU(l,_,C,u),T=document.createElement("style");T.innerHTML=S,k.insertBefore(T,E);try{await w.renderer.draw(e,t,uy,w)}catch(I){throw vH.draw(e,t,uy),I}uU(_,b.select(`${p} svg`),null==(r=(a=w.db).getAccTitle)?void 0:r.call(a),null==(s=(o=w.db).getAccDescription)?void 0:s.call(o)),b.select(`[id="${t}"]`).selectAll("foreignobject > *").attr("xmlns",$H);let A=b.select(p).node().innerHTML;if(d.debug("config.arrowMarkerAbsolute",l.arrowMarkerAbsolute),A=nU(A,m,Xd(l.arrowMarkerAbsolute)),m){const t=b.select(p+" svg").node();A=iU(A,t)}else y||(A=Hd.sanitize(A,{ADD_TAGS:YH,ADD_ATTR:GH}));if(void 0!==n)switch(_){case"flowchart":case"flowchart-v2":n(A,iN.bindFunctions);break;case"gantt":n(A,vP.bindFunctions);break;case"class":case"classDiagram":n(A,Qx.bindFunctions);break;default:n(A)}else d.debug("CB = undefined!");$F();const D=un(m?f:p).node();if(D&&"remove"in D&&D.remove(),x)throw x;return A};function lU(t={}){var e;null!=t&&t.fontFamily&&!(null!=(e=t.themeVariables)&&e.fontFamily)&&(t.themeVariables={fontFamily:t.fontFamily}),yy(t),null!=t&&t.theme&&t.theme in $h?t.themeVariables=$h[t.theme].getThemeVariables(t.themeVariables):t&&(t.themeVariables=$h.default.getThemeVariables(t.themeVariables));const n="object"==typeof t?my(t):wy();h(n.logLevel),SH()}function uU(t,e,n,i){LH(e,t),OH(e,n,i,e.attr("id"))}const dU=Object.freeze({render:sU,renderAsync:cU,parse:ZH,parseAsync:KH,parseDirective:cv,initialize:lU,getConfig:Ry,setConfig:xy,getSiteConfig:wy,updateSiteConfig:vy,reset:()=>{Ey()},globalReset:()=>{Ey(dy)},defaultConfig:dy});h(Ry().logLevel),Ey(Ry());const hU=async function(t,e,n){try{await bU(t,e,n)}catch(o){d.warn("Syntax Error rendering"),bm(o)&&d.warn(o.str),SU.parseError&&SU.parseError(o)}},fU=(t,e,n)=>{d.warn(t),bm(t)?(n&&n(t.str,t.hash),e.push({...t,message:t.str,error:t})):(n&&n(t),t instanceof Error&&e.push({str:t.message,message:t.message,hash:t.name,error:t}))},gU=function(t,e,n){const a=dU.getConfig();let r;if(t&&(SU.sequenceConfig=t),d.debug((n?"":"No ")+"Callback function found"),void 0===e)r=document.querySelectorAll(".mermaid");else if("string"==typeof e)r=document.querySelectorAll(e);else if(e instanceof HTMLElement)r=[e];else{if(!(e instanceof NodeList))throw new Error("Invalid argument nodes for mermaid.init");r=e}d.debug(`Found ${r.length} diagrams`),void 0!==(null==t?void 0:t.startOnLoad)&&(d.debug("Start On Load: "+(null==t?void 0:t.startOnLoad)),dU.updateSiteConfig({startOnLoad:null==t?void 0:t.startOnLoad}));const o=new vm.initIdGenerator(a.deterministicIds,a.deterministicIDSeed);let s;const c=[];for(const u of Array.from(r)){if(d.info("Rendering diagram: "+u.id),u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");const t=`mermaid-${o.next()}`;s=u.innerHTML,s=i(vm.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");const e=vm.detectInit(s);e&&d.debug("Detected early reinit: ",e);try{dU.render(t,s,((e,i)=>{u.innerHTML=e,void 0!==n&&n(t),i&&i(u)}),u)}catch(l){fU(l,c,SU.parseError)}}if(c.length>0)throw c[0]},pU=async(...t)=>{d.debug(`Loading ${t.length} external diagrams`);const e=(await Promise.allSettled(t.map((async({id:t,detector:e,loader:n})=>{const{diagram:i}=await n();yv(t,i,e)})))).filter((t=>"rejected"===t.status));if(e.length>0){d.error(`Failed to load ${e.length} external diagrams`);for(const t of e)d.error(t);throw new Error(`Failed to load ${e.length} external diagrams`)}},bU=async function(t,e,n){const a=dU.getConfig();let r;if(t&&(SU.sequenceConfig=t),d.debug((n?"":"No ")+"Callback function found"),void 0===e)r=document.querySelectorAll(".mermaid");else if("string"==typeof e)r=document.querySelectorAll(e);else if(e instanceof HTMLElement)r=[e];else{if(!(e instanceof NodeList))throw new Error("Invalid argument nodes for mermaid.init");r=e}d.debug(`Found ${r.length} diagrams`),void 0!==(null==t?void 0:t.startOnLoad)&&(d.debug("Start On Load: "+(null==t?void 0:t.startOnLoad)),dU.updateSiteConfig({startOnLoad:null==t?void 0:t.startOnLoad}));const o=new vm.initIdGenerator(a.deterministicIds,a.deterministicIDSeed);let s;const c=[];for(const u of Array.from(r)){if(d.info("Rendering diagram: "+u.id),u.getAttribute("data-processed"))continue;u.setAttribute("data-processed","true");const t=`mermaid-${o.next()}`;s=u.innerHTML,s=i(vm.entityDecode(s)).trim().replace(/<br\s*\/?>/gi,"<br/>");const e=vm.detectInit(s);e&&d.debug("Detected early reinit: ",e);try{await dU.renderAsync(t,s,((e,i)=>{u.innerHTML=e,void 0!==n&&n(t),i&&i(u)}),u)}catch(l){fU(l,c,SU.parseError)}}if(c.length>0)throw c[0]},mU=function(t){dU.initialize(t)},yU=async(t,{lazyLoad:e=!0}={})=>{e?_p(...t):await pU(...t)},vU=function(){if(SU.startOnLoad){const{startOnLoad:t}=dU.getConfig();t&&SU.init().catch((t=>d.error("Mermaid failed to initialize",t)))}};typeof document<"u"&&window.addEventListener("load",vU,!1);const wU=function(t){SU.parseError=t},xU=t=>dU.parse(t,SU.parseError),RU=[];let _U=!1;const kU=async()=>{if(!_U){for(_U=!0;RU.length>0;){const e=RU.shift();if(e)try{await e()}catch(t){d.error("Error executing queue",t)}}_U=!1}},EU=t=>new Promise(((e,n)=>{const i=()=>new Promise(((i,a)=>{dU.parseAsync(t,SU.parseError).then((t=>{i(t),e(t)}),(t=>{d.error("Error parsing",t),a(t),n(t)}))}));RU.push(i),kU().catch(n)})),CU=(t,e,n,i)=>new Promise(((a,r)=>{const o=()=>new Promise(((o,s)=>{dU.renderAsync(t,e,n,i).then((t=>{o(t),a(t)}),(t=>{d.error("Error parsing",t),s(t),r(t)}))}));RU.push(o),kU().catch(r)})),SU={startOnLoad:!0,diagrams:{},mermaidAPI:dU,parse:xU,parseAsync:EU,render:dU.render,renderAsync:CU,init:hU,initThrowsErrors:gU,initThrowsErrorsAsync:bU,registerExternalDiagrams:yU,initialize:mU,parseError:void 0,contentLoaded:vU,setParseErrorHandler:wU},TU=(t,e,n)=>{const{parentById:i}=n,a=new Set;let r=t;for(;r;){if(a.add(r),r===e)return r;r=i[r]}for(r=e;r;){if(a.has(r))return r;r=i[r]}return"root"};function AU(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var DU={};!function(t,e){var n;n=function(){return function(){function t(e,n,i){function a(o,s){if(!n[o]){if(!e[o]){var c="function"==typeof AU&&AU;if(!s&&c)return c(o,!0);if(r)return r(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[o]={exports:{}};e[o][0].call(u.exports,(function(t){return a(e[o][1][t]||t)}),u,u.exports,t,e,n,i)}return n[o].exports}for(var r="function"==typeof AU&&AU,o=0;o<i.length;o++)a(i[o]);return a}return t}()({1:[function(t,e,n){Object.defineProperty(n,"__esModule",{value:!0});var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}();function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.defaultLayoutOptions,r=void 0===i?{}:i,s=n.algorithms,c=void 0===s?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:s,l=n.workerFactory,u=n.workerUrl;if(a(this,t),this.defaultLayoutOptions=r,this.initialized=!1,typeof u>"u"&&typeof l>"u")throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var d=l;typeof u<"u"&&typeof l>"u"&&(d=function(t){return new Worker(t)});var h=d(u);if("function"!=typeof h.postMessage)throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new o(h),this.worker.postMessage({cmd:"register",algorithms:c}).then((function(t){return e.initialized=!0})).catch(console.err)}return i(t,[{key:"layout",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.layoutOptions,i=void 0===n?this.defaultLayoutOptions:n,a=e.logging,r=void 0!==a&&a,o=e.measureExecutionTime,s=void 0!==o&&o;return t?this.worker.postMessage({cmd:"layout",graph:t,layoutOptions:i,options:{logging:r,measureExecutionTime:s}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),t}();n.default=r;var o=function(){function t(e){var n=this;if(a(this,t),void 0===e)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=e,this.worker.onmessage=function(t){setTimeout((function(){n.receive(n,t)}),0)}}return i(t,[{key:"postMessage",value:function(t){var e=this.id||0;this.id=e+1,t.id=e;var n=this;return new Promise((function(i,a){n.resolvers[e]=function(t,e){t?(n.convertGwtStyleError(t),a(t)):i(e)},n.worker.postMessage(t)}))}},{key:"receive",value:function(t,e){var n=e.data,i=t.resolvers[n.id];i&&(delete t.resolvers[n.id],n.error?i(n.error):i(null,n.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(t){if(t){var e=t.__java$exception;e&&(e.cause&&e.cause.backingJsObject&&(t.cause=e.cause.backingJsObject,this.convertGwtStyleError(t.cause)),delete t.__java$exception)}}}]),t}()},{}],2:[function(t,e,n){(function(t){(function(){var i;function a(){}function r(){}function o(){}function s(){}function c(){}function l(){}function u(){}function d(){}function h(){}function f(){}function g(){}function p(){}function b(){}function m(){}function y(){}function v(){}function w(){}function x(){}function R(){}function _(){}function k(){}function E(){}function C(){}function S(){}function T(){}function A(){}function D(){}function I(){}function L(){}function O(){}function M(){}function N(){}function B(){}function P(){}function F(){}function j(){}function $(){}function z(){}function H(){}function U(){}function V(){}function q(){}function W(){}function Y(){}function G(){}function Z(){}function K(){}function X(){}function J(){}function Q(){}function tt(){}function et(){}function nt(){}function it(){}function at(){}function rt(){}function ot(){}function st(){}function ct(){}function lt(){}function ut(){}function dt(){}function ht(){}function ft(){}function gt(){}function pt(){}function bt(){}function mt(){}function yt(){}function vt(){}function wt(){}function xt(){}function Rt(){}function _t(){}function kt(){}function Et(){}function Ct(){}function St(){}function Tt(){}function At(){}function Dt(){}function It(){}function Lt(){}function Ot(){}function Mt(){}function Nt(){}function Bt(){}function Pt(){}function Ft(){}function jt(){}function $t(){}function zt(){}function Ht(){}function Ut(){}function Vt(){}function qt(){}function Wt(){}function Yt(){}function Gt(){}function Zt(){}function Kt(){}function Xt(){}function Jt(){}function Qt(){}function te(){}function ee(){}function ne(){}function ie(){}function ae(){}function re(){}function oe(){}function se(){}function ce(){}function le(){}function ue(){}function de(){}function he(){}function fe(){}function ge(){}function pe(){}function be(){}function me(){}function ye(){}function ve(){}function we(){}function xe(){}function Re(){}function _e(){}function ke(){}function Ee(){}function Ce(){}function Se(){}function Te(){}function Ae(){}function De(){}function Ie(){}function Le(){}function Oe(){}function Me(){}function Ne(){}function Be(){}function Pe(){}function Fe(){}function je(){}function $e(){}function ze(){}function He(){}function Ue(){}function Ve(){}function qe(){}function We(){}function Ye(){}function Ge(){}function Ze(){}function Ke(){}function Xe(){}function Je(){}function Qe(){}function tn(){}function en(){}function nn(){}function an(){}function rn(){}function on(){}function sn(){}function cn(){}function ln(){}function un(){}function dn(){}function hn(){}function fn(){}function gn(){}function pn(){}function bn(){}function mn(){}function yn(){}function vn(){}function wn(){}function xn(){}function Rn(){}function _n(){}function kn(){}function En(){}function Cn(){}function Sn(){}function Tn(){}function An(){}function Dn(){}function In(){}function Ln(){}function On(){}function Mn(){}function Nn(){}function Bn(){}function Pn(){}function Fn(){}function jn(){}function $n(){}function zn(){}function Hn(){}function Un(){}function Vn(){}function qn(){}function Wn(){}function Yn(){}function Gn(){}function Zn(){}function Kn(){}function Xn(){}function Jn(){}function Qn(){}function ti(){}function ei(){}function ni(){}function ii(){}function ai(){}function ri(){}function oi(){}function si(){}function ci(){}function li(){}function ui(){}function di(){}function hi(){}function fi(){}function gi(){}function pi(){}function bi(){}function mi(){}function yi(){}function vi(){}function wi(){}function xi(){}function Ri(){}function _i(){}function ki(){}function Ei(){}function Ci(){}function Si(){}function Ti(){}function Ai(){}function Di(){}function Ii(){}function Li(){}function Oi(){}function Mi(){}function Ni(){}function Bi(){}function Pi(){}function Fi(){}function ji(){}function $i(){}function zi(){}function Hi(){}function Ui(){}function Vi(){}function qi(){}function Wi(){}function Yi(){}function Gi(){}function Zi(){}function Ki(){}function Xi(){}function Ji(){}function Qi(){}function ta(){}function ea(){}function na(){}function ia(){}function aa(){}function ra(){}function oa(){}function sa(){}function ca(){}function la(){}function ua(){}function da(){}function ha(){}function fa(){}function ga(){}function pa(){}function ba(){}function ma(){}function ya(){}function va(){}function wa(){}function xa(){}function Ra(){}function _a(){}function ka(){}function Ea(){}function Ca(){}function Sa(){}function Ta(){}function Aa(){}function Da(){}function Ia(){}function La(){}function Oa(){}function Ma(){}function Na(){}function Ba(){}function Pa(){}function Fa(){}function ja(){}function $a(){}function za(){}function Ha(){}function Ua(){}function Va(){}function qa(){}function Wa(){}function Ya(){}function Ga(){}function Za(){}function Ka(){}function Xa(){}function Ja(){}function Qa(){}function tr(){}function er(){}function nr(){}function ir(){}function ar(){}function rr(){}function or(){}function sr(){}function cr(){}function lr(){}function ur(){}function dr(){}function hr(){}function fr(){}function gr(){}function pr(){}function br(){}function mr(){}function yr(){}function vr(){}function wr(){}function xr(){}function Rr(){}function _r(){}function kr(){}function Er(){}function Cr(){}function Sr(){}function Tr(){}function Ar(){}function Dr(){}function Ir(){}function Lr(){}function Or(){}function Mr(){}function Nr(){}function Br(){}function Pr(){}function Fr(){}function jr(){}function $r(){}function zr(){}function Hr(){}function Ur(){}function Vr(){}function qr(){}function Wr(){}function Yr(){}function Gr(){}function Zr(){}function Kr(){}function Xr(){}function Jr(){}function Qr(){}function to(){}function eo(){}function no(){}function io(){}function ao(){}function ro(){}function oo(){}function so(){}function co(){}function lo(){}function uo(){}function ho(){}function fo(){}function go(){}function po(){}function bo(){}function mo(){}function yo(){}function vo(){}function wo(){}function xo(){}function Ro(){}function _o(){}function ko(){}function Eo(){}function Co(){}function So(){}function To(){}function Ao(){}function Do(){}function Io(){}function Lo(){}function Oo(){}function Mo(){}function No(){}function Bo(){}function Po(){}function Fo(){}function jo(){}function $o(){}function zo(){}function Ho(){}function Uo(){}function Vo(){}function qo(){}function Wo(){}function Yo(){}function Go(){}function Zo(){}function Ko(){}function Xo(){}function Jo(){}function Qo(){}function ts(){}function es(){}function ns(){}function is(){}function as(){}function rs(){}function os(){}function ss(){}function cs(){}function ls(){}function us(){}function ds(){}function hs(){}function fs(){}function gs(){}function ps(){}function bs(){}function ms(){}function ys(){}function vs(){}function ws(){}function xs(){}function Rs(){}function _s(){}function ks(){}function Es(){}function Cs(){}function Ss(){}function Ts(){}function As(){}function Ds(){}function Is(){}function Ls(){}function Os(){}function Ms(){}function Ns(){}function Bs(){}function Ps(){}function Fs(){}function js(){}function $s(){}function zs(){}function Hs(){}function Us(){}function Vs(){}function qs(){}function Ws(){}function Ys(){}function Gs(){}function Zs(){}function Ks(){}function Xs(){}function Js(){}function Qs(){}function tc(){}function ec(){}function nc(){}function ic(){}function ac(){}function rc(){}function oc(){}function sc(){}function cc(){}function lc(){}function uc(){}function dc(){}function hc(){}function fc(){}function gc(){}function pc(){}function bc(){}function mc(){}function yc(){}function vc(){}function wc(){}function xc(){}function Rc(){}function _c(){}function kc(){}function Ec(){}function Cc(){}function Sc(){}function Tc(){}function Ac(){}function Dc(){}function Ic(){}function Lc(){}function Oc(){}function Mc(){}function Nc(){}function Bc(){}function Pc(){}function Fc(){}function jc(){}function $c(){}function zc(){}function Hc(){}function Uc(){}function Vc(){}function qc(){}function Wc(){}function Yc(){}function Gc(){}function Zc(){}function Kc(){}function Xc(){}function Jc(){}function Qc(){}function tl(){}function el(){}function nl(){}function il(){}function al(){}function rl(){}function ol(){}function sl(){}function cl(){}function ll(){}function ul(){}function dl(){}function hl(){}function fl(){}function gl(){}function pl(){}function bl(){}function ml(){}function yl(){}function vl(){}function wl(){}function xl(){}function Rl(){}function _l(){}function kl(){}function El(){}function Cl(){}function Sl(){}function Tl(){}function Al(){}function Dl(){}function Il(){}function Ll(){}function Ol(){}function Ml(){}function Nl(){}function Bl(){}function Pl(){}function Fl(){}function jl(){}function $l(){}function zl(){}function Hl(){}function Ul(){}function Vl(){}function ql(){}function Wl(){}function Yl(){}function Gl(){}function Zl(){}function Kl(){}function Xl(){}function Jl(){}function Ql(){}function tu(){}function eu(){}function nu(){}function iu(){}function au(){}function ru(){}function ou(){}function su(){}function cu(){}function lu(){}function uu(){}function du(){}function hu(){}function fu(){}function gu(){}function pu(){}function bu(){}function mu(){}function yu(){}function vu(){}function wu(){}function xu(){}function Ru(){}function _u(){}function ku(){}function Eu(){}function Cu(){}function Su(){}function Tu(){}function Au(){}function Du(){}function Iu(){}function Lu(){}function Ou(){}function Mu(){}function Nu(){}function Bu(){}function Pu(){}function Fu(){}function ju(){ew()}function $u(){Ult()}function zu(){Rmt()}function Hu(){Fxt()}function Uu(){xCt()}function Vu(){uPt()}function qu(){Pwt()}function Wu(){ixt()}function Yu(){xE()}function Gu(){mE()}function Zu(){zj()}function Ku(){RE()}function Xu(){Tat()}function Ju(){kE()}function Qu(){S7()}function td(){Cit()}function ed(){G5()}function nd(){PQ()}function id(){Vlt()}function ad(){FEt()}function rd(){Sit()}function od(){V2()}function sd(){uGt()}function cd(){Uwt()}function ld(){FQ()}function ud(){zYt()}function dd(){NQ()}function hd(){Tit()}function fd(){Kst()}function gd(){HQ()}function pd(){C8()}function bd(){EE()}function md(){PIt()}function yd(){qwt()}function vd(){jrt()}function wd(){kEt()}function xd(){hPt()}function Rd(){$yt()}function _d(){SIt()}function kd(){Bot()}function Ed(){$Q()}function Cd(){cjt()}function Sd(){IIt()}function Td(){YLt()}function Ad(){O8()}function Dd(){EEt()}function Id(){cGt()}function Ld(){Wlt()}function Od(){mpt()}function Md(){Hzt()}function Nd(){rj()}function Bd(){frt()}function Pd(){u$t()}function Fd(t){vG(t)}function jd(t){this.a=t}function $d(t){this.a=t}function zd(t){this.a=t}function Hd(t){this.a=t}function Ud(t){this.a=t}function Vd(t){this.a=t}function qd(t){this.a=t}function Wd(t){this.a=t}function Yd(t){this.a=t}function Gd(t){this.a=t}function Zd(t){this.a=t}function Kd(t){this.a=t}function Xd(t){this.a=t}function Jd(t){this.a=t}function Qd(t){this.a=t}function th(t){this.a=t}function eh(t){this.a=t}function nh(t){this.a=t}function ih(t){this.a=t}function ah(t){this.a=t}function rh(t){this.a=t}function oh(t){this.b=t}function sh(t){this.c=t}function ch(t){this.a=t}function lh(t){this.a=t}function uh(t){this.a=t}function dh(t){this.a=t}function hh(t){this.a=t}function fh(t){this.a=t}function gh(t){this.a=t}function ph(t){this.a=t}function bh(t){this.a=t}function mh(t){this.a=t}function yh(t){this.a=t}function vh(t){this.a=t}function wh(t){this.a=t}function xh(t){this.a=t}function Rh(t){this.a=t}function _h(t){this.a=t}function kh(t){this.a=t}function Eh(){this.a=[]}function Ch(t,e){t.a=e}function Sh(t,e){t.a=e}function Th(t,e){t.b=e}function Ah(t,e){t.b=e}function Dh(t,e){t.b=e}function Ih(t,e){t.j=e}function Lh(t,e){t.g=e}function Oh(t,e){t.i=e}function Mh(t,e){t.c=e}function Nh(t,e){t.d=e}function Bh(t,e){t.d=e}function Ph(t,e){t.c=e}function Fh(t,e){t.k=e}function jh(t,e){t.c=e}function $h(t,e){t.c=e}function zh(t,e){t.a=e}function Hh(t,e){t.a=e}function Uh(t,e){t.f=e}function Vh(t,e){t.a=e}function qh(t,e){t.b=e}function Wh(t,e){t.d=e}function Yh(t,e){t.i=e}function Gh(t,e){t.o=e}function Zh(t,e){t.r=e}function Kh(t,e){t.a=e}function Xh(t,e){t.b=e}function Jh(t,e){t.e=e}function Qh(t,e){t.f=e}function tf(t,e){t.g=e}function ef(t,e){t.e=e}function nf(t,e){t.f=e}function af(t,e){t.f=e}function rf(t,e){t.n=e}function of(t,e){t.a=e}function sf(t,e){t.a=e}function cf(t,e){t.c=e}function lf(t,e){t.c=e}function uf(t,e){t.d=e}function df(t,e){t.e=e}function hf(t,e){t.g=e}function ff(t,e){t.a=e}function gf(t,e){t.c=e}function pf(t,e){t.d=e}function bf(t,e){t.e=e}function mf(t,e){t.f=e}function yf(t,e){t.j=e}function vf(t,e){t.a=e}function wf(t,e){t.b=e}function xf(t,e){t.a=e}function Rf(t){t.b=t.a}function _f(t){t.c=t.d.d}function kf(t){this.d=t}function Ef(t){this.a=t}function Cf(t){this.a=t}function Sf(t){this.a=t}function Tf(t){this.a=t}function Af(t){this.a=t}function Df(t){this.a=t}function If(t){this.a=t}function Lf(t){this.a=t}function Of(t){this.a=t}function Mf(t){this.a=t}function Nf(t){this.a=t}function Bf(t){this.a=t}function Pf(t){this.a=t}function Ff(t){this.a=t}function jf(t){this.b=t}function $f(t){this.b=t}function zf(t){this.b=t}function Hf(t){this.a=t}function Uf(t){this.a=t}function Vf(t){this.a=t}function qf(t){this.c=t}function Wf(t){this.c=t}function Yf(t){this.c=t}function Gf(t){this.a=t}function Zf(t){this.a=t}function Kf(t){this.a=t}function Xf(t){this.a=t}function Jf(t){this.a=t}function Qf(t){this.a=t}function tg(t){this.a=t}function eg(t){this.a=t}function ng(t){this.a=t}function ig(t){this.a=t}function ag(t){this.a=t}function rg(t){this.a=t}function og(t){this.a=t}function sg(t){this.a=t}function cg(t){this.a=t}function lg(t){this.a=t}function ug(t){this.a=t}function dg(t){this.a=t}function hg(t){this.a=t}function fg(t){this.a=t}function gg(t){this.a=t}function pg(t){this.a=t}function bg(t){this.a=t}function mg(t){this.a=t}function yg(t){this.a=t}function vg(t){this.a=t}function wg(t){this.a=t}function xg(t){this.a=t}function Rg(t){this.a=t}function _g(t){this.a=t}function kg(t){this.a=t}function Eg(t){this.a=t}function Cg(t){this.a=t}function Sg(t){this.a=t}function Tg(t){this.a=t}function Ag(t){this.a=t}function Dg(t){this.a=t}function Ig(t){this.a=t}function Lg(t){this.a=t}function Og(t){this.a=t}function Mg(t){this.a=t}function Ng(t){this.a=t}function Bg(t){this.a=t}function Pg(t){this.a=t}function Fg(t){this.a=t}function jg(t){this.e=t}function $g(t){this.a=t}function zg(t){this.a=t}function Hg(t){this.a=t}function Ug(t){this.a=t}function Vg(t){this.a=t}function qg(t){this.a=t}function Wg(t){this.a=t}function Yg(t){this.a=t}function Gg(t){this.a=t}function Zg(t){this.a=t}function Kg(t){this.a=t}function Xg(t){this.a=t}function Jg(t){this.a=t}function Qg(t){this.a=t}function tp(t){this.a=t}function ep(t){this.a=t}function np(t){this.a=t}function ip(t){this.a=t}function ap(t){this.a=t}function rp(t){this.a=t}function op(t){this.a=t}function sp(t){this.a=t}function cp(t){this.a=t}function lp(t){this.a=t}function up(t){this.a=t}function dp(t){this.a=t}function hp(t){this.a=t}function fp(t){this.a=t}function gp(t){this.a=t}function pp(t){this.a=t}function bp(t){this.a=t}function mp(t){this.a=t}function yp(t){this.a=t}function vp(t){this.a=t}function wp(t){this.a=t}function xp(t){this.a=t}function Rp(t){this.a=t}function _p(t){this.a=t}function kp(t){this.a=t}function Ep(t){this.a=t}function Cp(t){this.a=t}function Sp(t){this.a=t}function Tp(t){this.a=t}function Ap(t){this.a=t}function Dp(t){this.a=t}function Ip(t){this.a=t}function Lp(t){this.a=t}function Op(t){this.a=t}function Mp(t){this.a=t}function Np(t){this.a=t}function Bp(t){this.a=t}function Pp(t){this.a=t}function Fp(t){this.a=t}function jp(t){this.c=t}function $p(t){this.b=t}function zp(t){this.a=t}function Hp(t){this.a=t}function Up(t){this.a=t}function Vp(t){this.a=t}function qp(t){this.a=t}function Wp(t){this.a=t}function Yp(t){this.a=t}function Gp(t){this.a=t}function Zp(t){this.a=t}function Kp(t){this.a=t}function Xp(t){this.a=t}function Jp(t){this.a=t}function Qp(t){this.a=t}function tb(t){this.a=t}function eb(t){this.a=t}function nb(t){this.a=t}function ib(t){this.a=t}function ab(t){this.a=t}function rb(t){this.a=t}function ob(t){this.a=t}function sb(t){this.a=t}function cb(t){this.a=t}function lb(t){this.a=t}function ub(t){this.a=t}function db(t){this.a=t}function hb(t){this.a=t}function fb(t){this.a=t}function gb(t){this.a=t}function pb(t){this.a=t}function bb(t){this.a=t}function mb(t){this.a=t}function yb(t){this.a=t}function vb(t){this.a=t}function wb(t){this.a=t}function xb(t){this.a=t}function Rb(t){this.a=t}function _b(t){this.a=t}function kb(t){this.a=t}function Eb(t){this.a=t}function Cb(t){this.a=t}function Sb(t){this.a=t}function Tb(t){this.a=t}function Ab(t){this.a=t}function Db(t){this.a=t}function Ib(t){this.a=t}function Lb(t){this.a=t}function Ob(t){this.a=t}function Mb(t){this.a=t}function Nb(t){this.a=t}function Bb(t){this.a=t}function Pb(t){this.a=t}function Fb(t){this.a=t}function jb(t){this.a=t}function $b(t){this.a=t}function zb(t){this.a=t}function Hb(t){this.a=t}function Ub(t){this.a=t}function Vb(t){this.a=t}function qb(t){this.a=t}function Wb(t){this.a=t}function Yb(t){this.a=t}function Gb(t){this.a=t}function Zb(t){this.a=t}function Kb(t){this.a=t}function Xb(t){this.a=t}function Jb(t){this.a=t}function Qb(t){this.a=t}function tm(t){this.a=t}function em(t){this.a=t}function nm(t){this.a=t}function im(t){this.a=t}function am(t){this.a=t}function rm(t){this.b=t}function om(t){this.f=t}function sm(t){this.a=t}function cm(t){this.a=t}function lm(t){this.a=t}function um(t){this.a=t}function dm(t){this.a=t}function hm(t){this.a=t}function fm(t){this.a=t}function gm(t){this.a=t}function pm(t){this.a=t}function bm(t){this.a=t}function mm(t){this.a=t}function ym(t){this.b=t}function vm(t){this.c=t}function wm(t){this.e=t}function xm(t){this.a=t}function Rm(t){this.a=t}function _m(t){this.a=t}function km(t){this.a=t}function Em(t){this.a=t}function Cm(t){this.d=t}function Sm(t){this.a=t}function Tm(t){this.a=t}function Am(t){this.e=t}function Dm(){this.a=0}function Im(){MI(this)}function Lm(){OI(this)}function Om(){DW(this)}function Mm(){hZ(this)}function Nm(){}function Bm(){this.c=DLe}function Pm(t,e){e.Wb(t)}function Fm(t,e){t.b+=e}function jm(t){t.b=new ox}function $m(t){return t.e}function zm(t){return t.a}function Hm(t){return t.a}function Um(t){return t.a}function Vm(t){return t.a}function qm(t){return t.a}function Wm(){return null}function Ym(){return null}function Gm(){a_(),gYt()}function Zm(t){t.b.tf(t.e)}function Km(t,e){t.b=e-t.b}function Xm(t,e){t.a=e-t.a}function Jm(t,e){e.ad(t.a)}function Qm(t,e){HTt(e,t)}function ty(t,e,n){t.Od(n,e)}function ey(t,e){t.e=e,e.b=t}function ny(t){sj(),this.a=t}function iy(t){sj(),this.a=t}function ay(t){sj(),this.a=t}function ry(t){WY(),this.a=t}function oy(t){EX(),eee.be(t)}function sy(){gM.call(this)}function cy(){gM.call(this)}function ly(){sy.call(this)}function uy(){sy.call(this)}function dy(){sy.call(this)}function hy(){sy.call(this)}function fy(){sy.call(this)}function gy(){sy.call(this)}function py(){sy.call(this)}function by(){sy.call(this)}function my(){sy.call(this)}function yy(){sy.call(this)}function vy(){sy.call(this)}function wy(){this.a=this}function xy(){this.Bb|=256}function Ry(){this.b=new ED}function _y(){_y=D,new Om}function ky(){ly.call(this)}function Ey(t,e){t.length=e}function Cy(t,e){Wz(t.a,e)}function Sy(t,e){qCt(t.c,e)}function Ty(t,e){RW(t.b,e)}function Ay(t,e){Tyt(t.a,e)}function Dy(t,e){Aht(t.a,e)}function Iy(t,e){hot(t.e,e)}function Ly(t){DDt(t.c,t.b)}function Oy(t,e){t.kc().Nb(e)}function My(t){this.a=pft(t)}function Ny(){this.a=new Om}function By(){this.a=new Om}function Py(){this.a=new Lm}function Fy(){this.a=new Lm}function jy(){this.a=new Lm}function $y(){this.a=new wt}function zy(){this.a=new v7}function Hy(){this.a=new he}function Uy(){this.a=new Wk}function Vy(){this.a=new M0}function qy(){this.a=new iQ}function Wy(){this.a=new AP}function Yy(){this.a=new Lm}function Gy(){this.a=new Lm}function Zy(){this.a=new Lm}function Ky(){this.a=new Lm}function Xy(){this.d=new Lm}function Jy(){this.a=new Ny}function Qy(){this.a=new Om}function tv(){this.b=new Om}function ev(){this.b=new Lm}function nv(){this.e=new Lm}function iv(){this.d=new Lm}function av(){this.a=new ad}function rv(){Lm.call(this)}function ov(){Py.call(this)}function sv(){LP.call(this)}function cv(){Gy.call(this)}function lv(){uv.call(this)}function uv(){Nm.call(this)}function dv(){Nm.call(this)}function hv(){dv.call(this)}function fv(){fX.call(this)}function gv(){fX.call(this)}function pv(){Wv.call(this)}function bv(){Wv.call(this)}function mv(){Wv.call(this)}function yv(){Yv.call(this)}function vv(){Zk.call(this)}function wv(){ic.call(this)}function xv(){ic.call(this)}function Rv(){Jv.call(this)}function _v(){Jv.call(this)}function kv(){Om.call(this)}function Ev(){Om.call(this)}function Cv(){Om.call(this)}function Sv(){Ny.call(this)}function Tv(){xit.call(this)}function Av(){xy.call(this)}function Dv(){TO.call(this)}function Iv(){TO.call(this)}function Lv(){Om.call(this)}function Ov(){Om.call(this)}function Mv(){Om.call(this)}function Nv(){wc.call(this)}function Bv(){wc.call(this)}function Pv(){Nv.call(this)}function Fv(){Bu.call(this)}function jv(t){get.call(this,t)}function $v(t){get.call(this,t)}function zv(t){Yd.call(this,t)}function Hv(t){_k.call(this,t)}function Uv(t){Hv.call(this,t)}function Vv(t){_k.call(this,t)}function qv(){this.a=new Zk}function Wv(){this.a=new Ny}function Yv(){this.a=new Om}function Gv(){this.a=new Lm}function Zv(){this.j=new Lm}function Kv(){this.a=new Go}function Xv(){this.a=new I_}function Jv(){this.a=new vc}function Qv(){Qv=D,Fte=new Ox}function tw(){tw=D,Pte=new Lx}function ew(){ew=D,Ate=new r}function nw(){nw=D,qte=new iM}function iw(t){Hv.call(this,t)}function aw(t){Hv.call(this,t)}function rw(t){f3.call(this,t)}function ow(t){f3.call(this,t)}function sw(t){YF.call(this,t)}function cw(t){vCt.call(this,t)}function lw(t){Ck.call(this,t)}function uw(t){Tk.call(this,t)}function dw(t){Tk.call(this,t)}function hw(t){Tk.call(this,t)}function fw(t){lq.call(this,t)}function gw(t){fw.call(this,t)}function pw(){kh.call(this,{})}function bw(t){CO(),this.a=t}function mw(t){t.b=null,t.c=0}function yw(t,e){t.e=e,SNt(t,e)}function vw(t,e){t.a=e,rTt(t)}function ww(t,e,n){t.a[e.g]=n}function xw(t,e,n){fRt(n,t,e)}function Rw(t,e){XP(e.i,t.n)}function _w(t,e){clt(t).td(e)}function kw(t,e){return t*t/e}function Ew(t,e){return t.g-e.g}function Cw(t){return new _h(t)}function Sw(t){return new HY(t)}function Tw(t){fw.call(this,t)}function Aw(t){fw.call(this,t)}function Dw(t){fw.call(this,t)}function Iw(t){lq.call(this,t)}function Lw(t){Frt(),this.a=t}function Ow(t){aj(),this.a=t}function Mw(t){FV(),this.f=t}function Nw(t){FV(),this.f=t}function Bw(t){fw.call(this,t)}function Pw(t){fw.call(this,t)}function Fw(t){fw.call(this,t)}function jw(t){fw.call(this,t)}function $w(t){fw.call(this,t)}function zw(t){return vG(t),t}function Hw(t){return vG(t),t}function Uw(t){return vG(t),t}function Vw(t){return vG(t),t}function qw(t){return vG(t),t}function Ww(t){return t.b==t.c}function Yw(t){return!!t&&t.b}function Gw(t){return!!t&&t.k}function Zw(t){return!!t&&t.j}function Kw(t){vG(t),this.a=t}function Xw(t){return Jct(t),t}function Jw(t){bW(t,t.length)}function Qw(t){fw.call(this,t)}function tx(t){fw.call(this,t)}function ex(t){fw.call(this,t)}function nx(t){fw.call(this,t)}function ix(t){fw.call(this,t)}function ax(t){fw.call(this,t)}function rx(t){XM.call(this,t,0)}function ox(){o1.call(this,12,3)}function sx(){sx=D,tee=new R}function cx(){cx=D,Kte=new a}function lx(){lx=D,iee=new b}function ux(){ux=D,lee=new y}function dx(){throw $m(new py)}function hx(){throw $m(new py)}function fx(){throw $m(new py)}function gx(){throw $m(new py)}function px(){throw $m(new py)}function bx(){throw $m(new py)}function mx(){this.a=kB(yY(jGt))}function yx(t){sj(),this.a=yY(t)}function vx(t,e){t.Td(e),e.Sd(t)}function wx(t,e){t.a.ec().Mc(e)}function xx(t,e,n){t.c.lf(e,n)}function Rx(t){Aw.call(this,t)}function _x(t){Pw.call(this,t)}function kx(){Af.call(this,"")}function Ex(){Af.call(this,"")}function Cx(){Af.call(this,"")}function Sx(){Af.call(this,"")}function Tx(t){Aw.call(this,t)}function Ax(t){$f.call(this,t)}function Dx(t){dM.call(this,t)}function Ix(t){Ax.call(this,t)}function Lx(){Jd.call(this,null)}function Ox(){Jd.call(this,null)}function Mx(){Mx=D,EX()}function Nx(){Nx=D,vne=y_t()}function Bx(t){return t.a?t.b:0}function Px(t){return t.a?t.b:0}function Fx(t,e){return t.a-e.a}function jx(t,e){return t.a-e.a}function $x(t,e){return t.a-e.a}function zx(t,e){return m9(t,e)}function Hx(t,e){return gQ(t,e)}function Ux(t,e){return e in t.a}function Vx(t,e){return t.f=e,t}function qx(t,e){return t.b=e,t}function Wx(t,e){return t.c=e,t}function Yx(t,e){return t.g=e,t}function Gx(t,e){return t.a=e,t}function Zx(t,e){return t.f=e,t}function Kx(t,e){return t.k=e,t}function Xx(t,e){return t.a=e,t}function Jx(t,e){return t.e=e,t}function Qx(t,e){return t.e=e,t}function tR(t,e){return t.f=e,t}function eR(t,e){t.b=!0,t.d=e}function nR(t,e){t.b=new hI(e)}function iR(t,e,n){e.td(t.a[n])}function aR(t,e,n){e.we(t.a[n])}function rR(t,e){return t.b-e.b}function oR(t,e){return t.g-e.g}function sR(t,e){return t.s-e.s}function cR(t,e){return t?0:e-1}function lR(t,e){return t?0:e-1}function uR(t,e){return t?e-1:0}function dR(t,e){return e.Yf(t)}function hR(t,e){return t.b=e,t}function fR(t,e){return t.a=e,t}function gR(t,e){return t.c=e,t}function pR(t,e){return t.d=e,t}function bR(t,e){return t.e=e,t}function mR(t,e){return t.f=e,t}function yR(t,e){return t.a=e,t}function vR(t,e){return t.b=e,t}function wR(t,e){return t.c=e,t}function xR(t,e){return t.c=e,t}function RR(t,e){return t.b=e,t}function _R(t,e){return t.d=e,t}function kR(t,e){return t.e=e,t}function ER(t,e){return t.f=e,t}function CR(t,e){return t.g=e,t}function SR(t,e){return t.a=e,t}function TR(t,e){return t.i=e,t}function AR(t,e){return t.j=e,t}function DR(t,e){return t.k=e,t}function IR(t,e){return t.j=e,t}function LR(t,e){FEt(),CQ(e,t)}function OR(t,e,n){HV(t.a,e,n)}function MR(t){jZ.call(this,t)}function NR(t){jZ.call(this,t)}function BR(t){JF.call(this,t)}function PR(t){Hft.call(this,t)}function FR(t){pet.call(this,t)}function jR(t){pK.call(this,t)}function $R(t){pK.call(this,t)}function zR(){TL.call(this,"")}function HR(){this.a=0,this.b=0}function UR(){this.b=0,this.a=0}function VR(t,e){t.b=0,Ont(t,e)}function qR(t,e){t.c=e,t.b=!0}function WR(t,e){return t.c._b(e)}function YR(t){return t.e&&t.e()}function GR(t){return t?t.d:null}function ZR(t,e){return pdt(t.b,e)}function KR(t){return t?t.g:null}function XR(t){return t?t.i:null}function JR(t){return xB(t),t.o}function QR(){QR=D,fDe=Wxt()}function t_(){t_=D,gDe=skt()}function e_(){e_=D,XIe=Gxt()}function n_(){n_=D,hOe=Yxt()}function i_(){i_=D,fOe=nTt()}function a_(){a_=D,lIe=ait()}function r_(){throw $m(new py)}function o_(){throw $m(new py)}function s_(){throw $m(new py)}function c_(){throw $m(new py)}function l_(){throw $m(new py)}function u_(){throw $m(new py)}function d_(t){this.a=new qk(t)}function h_(t){dWt(),NYt(this,t)}function f_(t){this.a=new Wq(t)}function g_(t,e){for(;t.ye(e););}function p_(t,e){for(;t.sd(e););}function b_(t,e){return t.a+=e,t}function m_(t,e){return t.a+=e,t}function y_(t,e){return t.a+=e,t}function v_(t,e){return t.a+=e,t}function w_(t){return xG(t),t.a}function x_(t){return t.b!=t.d.c}function R_(t){return t.l|t.m<<22}function __(t,e){return t.d[e.p]}function k_(t,e){return ENt(t,e)}function E_(t,e,n){t.splice(e,n)}function C_(t){t.c?OBt(t):MBt(t)}function S_(t){this.a=0,this.b=t}function T_(){this.a=new SMt(Jxe)}function A_(){this.b=new SMt(zwe)}function D_(){this.b=new SMt(q_e)}function I_(){this.b=new SMt(q_e)}function L_(){throw $m(new py)}function O_(){throw $m(new py)}function M_(){throw $m(new py)}function N_(){throw $m(new py)}function B_(){throw $m(new py)}function P_(){throw $m(new py)}function F_(){throw $m(new py)}function j_(){throw $m(new py)}function $_(){throw $m(new py)}function z_(){throw $m(new py)}function H_(){throw $m(new yy)}function U_(){throw $m(new yy)}function V_(t){this.a=new q_(t)}function q_(t){Uit(this,t,A_t())}function W_(t){return!t||pG(t)}function Y_(t){return-1!=qOe[t]}function G_(){0!=aee&&(aee=0),oee=-1}function Z_(){null==CGt&&(CGt=[])}function K_(t,e){tIt(GK(t.a),e)}function X_(t,e){tIt(GK(t.a),e)}function J_(t,e){$O.call(this,t,e)}function Q_(t,e){J_.call(this,t,e)}function tk(t,e){this.b=t,this.c=e}function ek(t,e){this.b=t,this.a=e}function nk(t,e){this.a=t,this.b=e}function ik(t,e){this.a=t,this.b=e}function ak(t,e){this.a=t,this.b=e}function rk(t,e){this.a=t,this.b=e}function ok(t,e){this.a=t,this.b=e}function sk(t,e){this.a=t,this.b=e}function ck(t,e){this.a=t,this.b=e}function lk(t,e){this.a=t,this.b=e}function uk(t,e){this.b=t,this.a=e}function dk(t,e){this.b=t,this.a=e}function hk(t,e){this.b=t,this.a=e}function fk(t,e){this.b=t,this.a=e}function gk(t,e){this.f=t,this.g=e}function pk(t,e){this.e=t,this.d=e}function bk(t,e){this.g=t,this.i=e}function mk(t,e){this.a=t,this.b=e}function yk(t,e){this.a=t,this.f=e}function vk(t,e){this.b=t,this.c=e}function wk(t,e){this.a=t,this.b=e}function xk(t,e){this.a=t,this.b=e}function Rk(t,e){this.a=t,this.b=e}function _k(t){aM(t.dc()),this.c=t}function kk(t){this.b=jz(yY(t),83)}function Ek(t){this.a=jz(yY(t),83)}function Ck(t){this.a=jz(yY(t),15)}function Sk(t){this.a=jz(yY(t),15)}function Tk(t){this.b=jz(yY(t),47)}function Ak(){this.q=new i.Date}function Dk(){Dk=D,$ee=new I}function Ik(){Ik=D,dne=new S}function Lk(t){return t.f.c+t.g.c}function Ok(t,e){return t.b.Hc(e)}function Mk(t,e){return t.b.Ic(e)}function Nk(t,e){return t.b.Qc(e)}function Bk(t,e){return t.b.Hc(e)}function Pk(t,e){return t.c.uc(e)}function Fk(t,e){return t.a._b(e)}function jk(t,e){return Odt(t.c,e)}function $k(t,e){return cW(t.b,e)}function zk(t,e){return t>e&&e<AZt}function Hk(t,e){return t.Gc(e),t}function Uk(t,e){return jat(t,e),t}function Vk(t){return qY(),t?cee:see}function qk(t){Qst.call(this,t,0)}function Wk(){Wq.call(this,null)}function Yk(){j5.call(this,null)}function Gk(t){this.c=t,Att(this)}function Zk(){EL(this),yK(this)}function Kk(t,e){xG(t),t.a.Nb(e)}function Xk(t,e){return t.Gc(e),t}function Jk(t,e){return t.a.f=e,t}function Qk(t,e){return t.a.d=e,t}function tE(t,e){return t.a.g=e,t}function eE(t,e){return t.a.j=e,t}function nE(t,e){return t.a.a=e,t}function iE(t,e){return t.a.d=e,t}function aE(t,e){return t.a.e=e,t}function rE(t,e){return t.a.g=e,t}function oE(t,e){return t.a.f=e,t}function sE(t){return t.b=!1,t}function cE(){cE=D,Ene=new CD}function lE(){lE=D,Cne=new SD}function uE(){uE=D,$ne=new W}function dE(){dE=D,bse=new Pe}function hE(){hE=D,ire=new SN}function fE(){fE=D,Qne=new lt}function gE(){gE=D,vse=new Fe}function pE(){pE=D,sie=new gt}function bE(){bE=D,Hoe=new ve}function mE(){mE=D,Fse=new HR}function yE(){yE=D,Uoe=new Ce}function vE(){vE=D,Goe=new MV}function wE(){wE=D,cse=new ke}function xE(){xE=D,jse=new fn}function RE(){RE=D,Jce=new Xn}function _E(){_E=D,hle=new Oa}function kE(){kE=D,Gle=new ar}function EE(){EE=D,Wxe=new j2}function CE(){CE=D,W_e=new IE}function SE(){SE=D,Z_e=new bB}function TE(){TE=D,Uke=new qG}function AE(){AE=D,Wme=new Zs}function DE(){Eit(),this.c=new ox}function IE(){gk.call(this,z1t,0)}function LE(t,e){Xbt(t.c.b,e.c,e)}function OE(t,e){Xbt(t.c.c,e.b,e)}function ME(t,e,n){mQ(t.d,e.f,n)}function NE(t,e,n,i){Xmt(t,i,e,n)}function BE(t,e,n,i){oMt(i,t,e,n)}function PE(t,e,n,i){sWt(i,t,e,n)}function FE(t,e){return t.a=e.g,t}function jE(t,e){return ext(t.a,e)}function $E(t){return t.b?t.b:t.a}function zE(t){return(t.c+t.a)/2}function HE(){HE=D,uDe=new nc}function UE(){UE=D,CDe=new dc}function VE(){VE=D,MIe=new Ev}function qE(){qE=D,UIe=new Cv}function WE(){WE=D,HIe=new Lv}function YE(){YE=D,KIe=new Mv}function GE(){GE=D,ILe=new UL}function ZE(){ZE=D,LLe=new VL}function KE(){KE=D,eOe=new Ml}function XE(){XE=D,iOe=new Nl}function JE(){JE=D,bIe=new Om}function QE(){QE=D,WLe=new Lm}function tC(){tC=D,RMe=new Fu}function eC(t){i.clearTimeout(t)}function nC(t){this.a=jz(yY(t),224)}function iC(t){return jz(t,42).cd()}function aC(t){return t.b<t.d.gc()}function rC(t,e){return CV(t.a,e)}function oC(t,e){return Gut(t,e)>0}function sC(t,e){return Gut(t,e)<0}function cC(t,e){return t.a.get(e)}function lC(t,e){return e.split(t)}function uC(t,e){return cW(t.e,e)}function dC(t){return vG(t),!1}function hC(t){h1.call(this,t,21)}function fC(t,e){PJ.call(this,t,e)}function gC(t,e){gk.call(this,t,e)}function pC(t,e){gk.call(this,t,e)}function bC(t){YY(),YF.call(this,t)}function mC(t,e){wV(t,t.length,e)}function yC(t,e){GW(t,t.length,e)}function vC(t,e,n){e.ud(t.a.Ge(n))}function wC(t,e,n){e.we(t.a.Fe(n))}function xC(t,e,n){e.td(t.a.Kb(n))}function RC(t,e,n){t.Mb(n)&&e.td(n)}function _C(t,e,n){t.splice(e,0,n)}function kC(t,e){return kM(t.e,e)}function EC(t,e){this.d=t,this.e=e}function CC(t,e){this.b=t,this.a=e}function SC(t,e){this.b=t,this.a=e}function TC(t,e){this.b=t,this.a=e}function AC(t,e){this.a=t,this.b=e}function DC(t,e){this.a=t,this.b=e}function IC(t,e){this.a=t,this.b=e}function LC(t,e){this.a=t,this.b=e}function OC(t,e){this.a=t,this.b=e}function MC(t,e){this.b=t,this.a=e}function NC(t,e){this.b=t,this.a=e}function BC(t,e){gk.call(this,t,e)}function PC(t,e){gk.call(this,t,e)}function FC(t,e){gk.call(this,t,e)}function jC(t,e){gk.call(this,t,e)}function $C(t,e){gk.call(this,t,e)}function zC(t,e){gk.call(this,t,e)}function HC(t,e){gk.call(this,t,e)}function UC(t,e){gk.call(this,t,e)}function VC(t,e){gk.call(this,t,e)}function qC(t,e){gk.call(this,t,e)}function WC(t,e){gk.call(this,t,e)}function YC(t,e){gk.call(this,t,e)}function GC(t,e){gk.call(this,t,e)}function ZC(t,e){gk.call(this,t,e)}function KC(t,e){gk.call(this,t,e)}function XC(t,e){gk.call(this,t,e)}function JC(t,e){gk.call(this,t,e)}function QC(t,e){gk.call(this,t,e)}function tS(t,e){this.a=t,this.b=e}function eS(t,e){this.a=t,this.b=e}function nS(t,e){this.a=t,this.b=e}function iS(t,e){this.a=t,this.b=e}function aS(t,e){this.a=t,this.b=e}function rS(t,e){this.a=t,this.b=e}function oS(t,e){this.a=t,this.b=e}function sS(t,e){this.a=t,this.b=e}function cS(t,e){this.a=t,this.b=e}function lS(t,e){this.b=t,this.a=e}function uS(t,e){this.b=t,this.a=e}function dS(t,e){this.b=t,this.a=e}function hS(t,e){this.b=t,this.a=e}function fS(t,e){this.c=t,this.d=e}function gS(t,e){this.e=t,this.d=e}function pS(t,e){this.a=t,this.b=e}function bS(t,e){this.b=e,this.c=t}function mS(t,e){gk.call(this,t,e)}function yS(t,e){gk.call(this,t,e)}function vS(t,e){gk.call(this,t,e)}function wS(t,e){gk.call(this,t,e)}function xS(t,e){gk.call(this,t,e)}function RS(t,e){gk.call(this,t,e)}function _S(t,e){gk.call(this,t,e)}function kS(t,e){gk.call(this,t,e)}function ES(t,e){gk.call(this,t,e)}function CS(t,e){gk.call(this,t,e)}function SS(t,e){gk.call(this,t,e)}function TS(t,e){gk.call(this,t,e)}function AS(t,e){gk.call(this,t,e)}function DS(t,e){gk.call(this,t,e)}function IS(t,e){gk.call(this,t,e)}function LS(t,e){gk.call(this,t,e)}function OS(t,e){gk.call(this,t,e)}function MS(t,e){gk.call(this,t,e)}function NS(t,e){gk.call(this,t,e)}function BS(t,e){gk.call(this,t,e)}function PS(t,e){gk.call(this,t,e)}function FS(t,e){gk.call(this,t,e)}function jS(t,e){gk.call(this,t,e)}function $S(t,e){gk.call(this,t,e)}function zS(t,e){gk.call(this,t,e)}function HS(t,e){gk.call(this,t,e)}function US(t,e){gk.call(this,t,e)}function VS(t,e){gk.call(this,t,e)}function qS(t,e){gk.call(this,t,e)}function WS(t,e){gk.call(this,t,e)}function YS(t,e){gk.call(this,t,e)}function GS(t,e){gk.call(this,t,e)}function ZS(t,e){gk.call(this,t,e)}function KS(t,e){gk.call(this,t,e)}function XS(t,e){this.b=t,this.a=e}function JS(t,e){this.a=t,this.b=e}function QS(t,e){this.a=t,this.b=e}function tT(t,e){this.a=t,this.b=e}function eT(t,e){this.a=t,this.b=e}function nT(t,e){gk.call(this,t,e)}function iT(t,e){gk.call(this,t,e)}function aT(t,e){this.b=t,this.d=e}function rT(t,e){gk.call(this,t,e)}function oT(t,e){gk.call(this,t,e)}function sT(t,e){this.a=t,this.b=e}function cT(t,e){this.a=t,this.b=e}function lT(t,e){gk.call(this,t,e)}function uT(t,e){gk.call(this,t,e)}function dT(t,e){gk.call(this,t,e)}function hT(t,e){gk.call(this,t,e)}function fT(t,e){gk.call(this,t,e)}function gT(t,e){gk.call(this,t,e)}function pT(t,e){gk.call(this,t,e)}function bT(t,e){gk.call(this,t,e)}function mT(t,e){gk.call(this,t,e)}function yT(t,e){gk.call(this,t,e)}function vT(t,e){gk.call(this,t,e)}function wT(t,e){gk.call(this,t,e)}function xT(t,e){gk.call(this,t,e)}function RT(t,e){gk.call(this,t,e)}function _T(t,e){gk.call(this,t,e)}function kT(t,e){gk.call(this,t,e)}function ET(t,e){return kM(t.c,e)}function CT(t,e){return kM(e.b,t)}function ST(t,e){return-t.b.Je(e)}function TT(t,e){return kM(t.g,e)}function AT(t,e){gk.call(this,t,e)}function DT(t,e){gk.call(this,t,e)}function IT(t,e){this.a=t,this.b=e}function LT(t,e){this.a=t,this.b=e}function OT(t,e){this.a=t,this.b=e}function MT(t,e){gk.call(this,t,e)}function NT(t,e){gk.call(this,t,e)}function BT(t,e){gk.call(this,t,e)}function PT(t,e){gk.call(this,t,e)}function FT(t,e){gk.call(this,t,e)}function jT(t,e){gk.call(this,t,e)}function $T(t,e){gk.call(this,t,e)}function zT(t,e){gk.call(this,t,e)}function HT(t,e){gk.call(this,t,e)}function UT(t,e){gk.call(this,t,e)}function VT(t,e){gk.call(this,t,e)}function qT(t,e){gk.call(this,t,e)}function WT(t,e){gk.call(this,t,e)}function YT(t,e){gk.call(this,t,e)}function GT(t,e){gk.call(this,t,e)}function ZT(t,e){gk.call(this,t,e)}function KT(t,e){this.a=t,this.b=e}function XT(t,e){this.a=t,this.b=e}function JT(t,e){this.a=t,this.b=e}function QT(t,e){this.a=t,this.b=e}function tA(t,e){this.a=t,this.b=e}function eA(t,e){this.a=t,this.b=e}function nA(t,e){this.a=t,this.b=e}function iA(t,e){gk.call(this,t,e)}function aA(t,e){this.a=t,this.b=e}function rA(t,e){this.a=t,this.b=e}function oA(t,e){this.a=t,this.b=e}function sA(t,e){this.a=t,this.b=e}function cA(t,e){this.a=t,this.b=e}function lA(t,e){this.a=t,this.b=e}function uA(t,e){this.b=t,this.a=e}function dA(t,e){this.b=t,this.a=e}function hA(t,e){this.b=t,this.a=e}function fA(t,e){this.b=t,this.a=e}function gA(t,e){this.a=t,this.b=e}function pA(t,e){this.a=t,this.b=e}function bA(t,e){XOt(t.a,jz(e,56))}function mA(t,e){b9(t.a,jz(e,11))}function yA(t,e){return cH(),e!=t}function vA(){return Nx(),new vne}function wA(){zQ(),this.b=new Ny}function xA(){gNt(),this.a=new Ny}function RA(){BQ(),BV.call(this)}function _A(t,e){gk.call(this,t,e)}function kA(t,e){this.a=t,this.b=e}function EA(t,e){this.a=t,this.b=e}function CA(t,e){this.a=t,this.b=e}function SA(t,e){this.a=t,this.b=e}function TA(t,e){this.a=t,this.b=e}function AA(t,e){this.a=t,this.b=e}function DA(t,e){this.d=t,this.b=e}function IA(t,e){this.d=t,this.e=e}function LA(t,e){this.f=t,this.c=e}function OA(t,e){this.b=t,this.c=e}function MA(t,e){this.i=t,this.g=e}function NA(t,e){this.e=t,this.a=e}function BA(t,e){this.a=t,this.b=e}function PA(t,e){t.i=null,rat(t,e)}function FA(t,e){t&&YG(sIe,t,e)}function jA(t,e){return ipt(t.a,e)}function $A(t){return rpt(t.c,t.b)}function zA(t){return t?t.dd():null}function HA(t){return t??null}function UA(t){return typeof t===IGt}function VA(t){return typeof t===LGt}function qA(t){return typeof t===OGt}function WA(t,e){return t.Hd().Xb(e)}function YA(t,e){return Zrt(t.Kc(),e)}function GA(t,e){return 0==Gut(t,e)}function ZA(t,e){return Gut(t,e)>=0}function KA(t,e){return 0!=Gut(t,e)}function XA(t){return""+(vG(t),t)}function JA(t,e){return t.substr(e)}function QA(t){return Vft(t),t.d.gc()}function tD(t){return VDt(t,t.c),t}function eD(t){return KH(null==t),t}function nD(t,e){return t.a+=""+e,t}function iD(t,e){return t.a+=""+e,t}function aD(t,e){return t.a+=""+e,t}function rD(t,e){return t.a+=""+e,t}function oD(t,e){return t.a+=""+e,t}function sD(t,e){return t.a+=""+e,t}function cD(t,e){n6(t,e,t.a,t.a.a)}function lD(t,e){n6(t,e,t.c.b,t.c)}function uD(t,e,n){PRt(e,BSt(t,n))}function dD(t,e,n){PRt(e,BSt(t,n))}function hD(t,e){Rtt(new AO(t),e)}function fD(t,e){t.q.setTime(w2(e))}function gD(t,e){Uq.call(this,t,e)}function pD(t,e){Uq.call(this,t,e)}function bD(t,e){Uq.call(this,t,e)}function mD(t){DW(this),_rt(this,t)}function yD(t){return u1(t,0),null}function vD(t){return t.a=0,t.b=0,t}function wD(t,e){return t.a=e.g+1,t}function xD(t,e){return 2==t.j[e.p]}function RD(t){return sY(jz(t,79))}function _D(){_D=D,Aae=dut(tmt())}function kD(){kD=D,Xce=dut(RMt())}function ED(){this.b=new qk(tet(12))}function CD(){this.b=0,this.a=!1}function SD(){this.b=0,this.a=!1}function TD(t){this.a=t,ju.call(this)}function AD(t){this.a=t,ju.call(this)}function DD(t,e){eP.call(this,t,e)}function ID(t,e){QP.call(this,t,e)}function LD(t,e){MA.call(this,t,e)}function OD(t,e){Dot.call(this,t,e)}function MD(t,e){GM.call(this,t,e)}function ND(t,e){JE(),YG(bIe,t,e)}function BD(t,e){return lN(t.a,0,e)}function PD(t,e){return t.a.a.a.cc(e)}function FD(t,e){return HA(t)===HA(e)}function jD(t,e){return Cht(t.a,e.a)}function $D(t,e){return xL(t.a,e.a)}function zD(t,e){return FW(t.a,e.a)}function HD(t,e){return t.indexOf(e)}function UD(t,e){return t==e?0:t?1:-1}function VD(t){return t<10?"0"+t:""+t}function qD(t){return yY(t),new TD(t)}function WD(t){return _L(t.l,t.m,t.h)}function YD(t){return CJ((vG(t),t))}function GD(t){return CJ((vG(t),t))}function ZD(t,e){return xL(t.g,e.g)}function KD(t){return typeof t===LGt}function XD(t){return t==Joe||t==ese}function JD(t){return t==Joe||t==Qoe}function QD(t){return x9(t.b.b,t,0)}function tI(t){this.a=vA(),this.b=t}function eI(t){this.a=vA(),this.b=t}function nI(t,e){return Wz(t.a,e),e}function iI(t,e){return Wz(t.c,e),t}function aI(t,e){return Xrt(t.a,e),t}function rI(t,e){return Hj(),e.a+=t}function oI(t,e){return Hj(),e.a+=t}function sI(t,e){return Hj(),e.c+=t}function cI(t,e){U8(t,0,t.length,e)}function lI(){tg.call(this,new b3)}function uI(){rV.call(this,0,0,0,0)}function dI(){VZ.call(this,0,0,0,0)}function hI(t){this.a=t.a,this.b=t.b}function fI(t){return t==FSe||t==jSe}function gI(t){return t==zSe||t==PSe}function pI(t){return t==uye||t==lye}function bI(t){return t!=ZTe&&t!=KTe}function mI(t){return t.Lg()&&t.Mg()}function yI(t){return mZ(jz(t,118))}function vI(t){return Xrt(new j2,t)}function wI(t,e){return new Dot(e,t)}function xI(t,e){return new Dot(e,t)}function RI(t,e,n){xnt(t,e),Rnt(t,n)}function _I(t,e,n){Ent(t,e),knt(t,n)}function kI(t,e,n){Cnt(t,e),Snt(t,n)}function EI(t,e,n){_nt(t,e),Ant(t,n)}function CI(t,e,n){Tnt(t,e),Dnt(t,n)}function SI(t,e){Nlt(t,e),Mnt(t,t.D)}function TI(t){LA.call(this,t,!0)}function AI(t,e,n){LB.call(this,t,e,n)}function DI(t){ABt(),cot.call(this,t)}function II(){gC.call(this,"Head",1)}function LI(){gC.call(this,"Tail",3)}function OI(t){t.c=O5(Dte,zGt,1,0,5,1)}function MI(t){t.a=O5(Dte,zGt,1,8,5,1)}function NI(t){Aet(t.xf(),new kg(t))}function BI(t){return null!=t?Qct(t):0}function PI(t,e){return Set(e,WJ(t))}function FI(t,e){return Set(e,WJ(t))}function jI(t,e){return t[t.length]=e}function $I(t,e){return t[t.length]=e}function zI(t){return Fz(t.b.Kc(),t.a)}function HI(t,e){return qit(EY(t.d),e)}function UI(t,e){return qit(EY(t.g),e)}function VI(t,e){return qit(EY(t.j),e)}function qI(t,e){eP.call(this,t.b,e)}function WI(t){rV.call(this,t,t,t,t)}function YI(t){return t.b&&Gzt(t),t.a}function GI(t){return t.b&&Gzt(t),t.c}function ZI(t,e){qne||(t.b=e)}function KI(t,e,n){return DY(t,e,n),n}function XI(t,e,n){DY(t.c[e.g],e.g,n)}function JI(t,e,n){jz(t.c,69).Xh(e,n)}function QI(t,e,n){kI(n,n.i+t,n.j+e)}function tL(t,e){l8(a3(t.a),t1(e))}function eL(t,e){l8($9(t.a),e1(e))}function nL(t){fGt(),Am.call(this,t)}function iL(t){return null==t?0:Qct(t)}function aL(){aL=D,swe=new zft(tTe)}function rL(){rL=D,new oL,new Lm}function oL(){new Om,new Om,new Om}function sL(){sL=D,_y(),nee=new Om}function cL(){cL=D,i.Math.log(2)}function lL(){lL=D,UE(),MLe=CDe}function uL(){throw $m(new Qw(_te))}function dL(){throw $m(new Qw(_te))}function hL(){throw $m(new Qw(kte))}function fL(){throw $m(new Qw(kte))}function gL(t){this.a=t,Gz.call(this,t)}function pL(t){this.a=t,kk.call(this,t)}function bL(t){this.a=t,kk.call(this,t)}function mL(t,e){yV(t.c,t.c.length,e)}function yL(t){return t.a<t.c.c.length}function vL(t){return t.a<t.c.a.length}function wL(t,e){return t.a?t.b:e.De()}function xL(t,e){return t<e?-1:t>e?1:0}function RL(t,e){return Gut(t,e)>0?t:e}function _L(t,e,n){return{l:t,m:e,h:n}}function kL(t,e){null!=t.a&&mA(e,t.a)}function EL(t){t.a=new L,t.c=new L}function CL(t){this.b=t,this.a=new Lm}function SL(t){this.b=new ee,this.a=t}function TL(t){IP.call(this),this.a=t}function AL(){gC.call(this,"Range",2)}function DL(){tRt(),this.a=new SMt(Voe)}function IL(t,e){yY(e),xZ(t).Jc(new f)}function LL(t,e){return jQ(),e.n.b+=t}function OL(t,e,n){return YG(t.g,n,e)}function ML(t,e,n){return YG(t.k,n,e)}function NL(t,e){return YG(t.a,e.a,e)}function BL(t,e,n){return Tpt(e,n,t.c)}function PL(t){return new OT(t.c,t.d)}function FL(t){return new OT(t.c,t.d)}function jL(t){return new OT(t.a,t.b)}function $L(t,e){return tqt(t.a,e,null)}function zL(t){kQ(t,null),_Q(t,null)}function HL(t){WQ(t,null),YQ(t,null)}function UL(){GM.call(this,null,null)}function VL(){ZM.call(this,null,null)}function qL(t){this.a=t,Om.call(this)}function WL(t){this.b=(kK(),new qf(t))}function YL(t){t.j=O5(jee,cZt,310,0,0,1)}function GL(t,e,n){t.c.Vc(e,jz(n,133))}function ZL(t,e,n){t.c.ji(e,jz(n,133))}function KL(t,e){cUt(t),t.Gc(jz(e,15))}function XL(t,e){return $Ut(t.c,t.b,e)}function JL(t,e){return new pM(t.Kc(),e)}function QL(t,e){return-1!=jst(t.Kc(),e)}function tO(t,e){return null!=t.a.Bc(e)}function eO(t){return t.Ob()?t.Pb():null}function nO(t){return $pt(t,0,t.length)}function iO(t,e){return null!=t&&Zmt(t,e)}function aO(t,e){t.q.setHours(e),dzt(t,e)}function rO(t,e){t.c&&(NH(e),vJ(e))}function oO(t,e,n){jz(t.Kb(n),164).Nb(e)}function sO(t,e,n){return zVt(t,e,n),n}function cO(t,e,n){t.a=1502^e,t.b=n^rXt}function lO(t,e,n){return t.a[e.g][n.g]}function uO(t,e){return t.a[e.c.p][e.p]}function dO(t,e){return t.e[e.c.p][e.p]}function hO(t,e){return t.c[e.c.p][e.p]}function fO(t,e){return t.j[e.p]=bOt(e)}function gO(t,e){return l7(t.f,e.tg())}function pO(t,e){return l7(t.b,e.tg())}function bO(t,e){return t.a<qF(e)?-1:1}function mO(t,e,n){return n?0!=e:e!=t-1}function yO(t,e,n){return t.a=e,t.b=n,t}function vO(t,e){return t.a*=e,t.b*=e,t}function wO(t,e,n){return DY(t.g,e,n),n}function xO(t,e,n,i){DY(t.a[e.g],n.g,i)}function RO(t,e){PN(e,t.a.a.a,t.a.a.b)}function _O(t){t.a=jz(vot(t.b.a,4),126)}function kO(t){t.a=jz(vot(t.b.a,4),126)}function EO(t){TX(t,n5t),zOt(t,TWt(t))}function CO(){CO=D,kne=new bw(null)}function SO(){(SO=D)(),Dne=new q}function TO(){this.Bb|=256,this.Bb|=512}function AO(t){this.i=t,this.f=this.i.j}function DO(t,e,n){yH.call(this,t,e,n)}function IO(t,e,n){DO.call(this,t,e,n)}function LO(t,e,n){DO.call(this,t,e,n)}function OO(t,e,n){IO.call(this,t,e,n)}function MO(t,e,n){yH.call(this,t,e,n)}function NO(t,e,n){yH.call(this,t,e,n)}function BO(t,e,n){_H.call(this,t,e,n)}function PO(t,e,n){_H.call(this,t,e,n)}function FO(t,e,n){BO.call(this,t,e,n)}function jO(t,e,n){MO.call(this,t,e,n)}function $O(t,e){this.a=t,kk.call(this,e)}function zO(t,e){this.a=t,rx.call(this,e)}function HO(t,e){this.a=t,rx.call(this,e)}function UO(t,e){this.a=t,rx.call(this,e)}function VO(t){this.a=t,sh.call(this,t.d)}function qO(t){this.c=t,this.a=this.c.a}function WO(t,e){this.a=e,rx.call(this,t)}function YO(t,e){this.a=e,f3.call(this,t)}function GO(t,e){this.a=t,f3.call(this,e)}function ZO(t,e){return hq(dq(t.c)).Xb(e)}function KO(t,e){return eft(t,new Cx,e).a}function XO(t,e){return yY(e),new JO(t,e)}function JO(t,e){this.a=e,Tk.call(this,t)}function QO(t){this.b=t,this.a=this.b.a.e}function tM(t){t.b.Qb(),--t.d.f.d,DV(t.d)}function eM(t){Jd.call(this,jz(yY(t),35))}function nM(t){Jd.call(this,jz(yY(t),35))}function iM(){gk.call(this,"INSTANCE",0)}function aM(t){if(!t)throw $m(new hy)}function rM(t){if(!t)throw $m(new fy)}function oM(t){if(!t)throw $m(new yy)}function sM(){sM=D,KE(),nOe=new Pd}function cM(){cM=D,mee=!1,yee=!0}function lM(t){Af.call(this,(vG(t),t))}function uM(t){Af.call(this,(vG(t),t))}function dM(t){$f.call(this,t),this.a=t}function hM(t){zf.call(this,t),this.a=t}function fM(t){Ax.call(this,t),this.a=t}function gM(){YL(this),wK(this),this._d()}function pM(t,e){this.a=e,Tk.call(this,t)}function bM(t,e){return new PSt(t.a,t.b,e)}function mM(t,e){return t.lastIndexOf(e)}function yM(t,e,n){return t.indexOf(e,n)}function vM(t){return null==t?VGt:$ft(t)}function wM(t){return null==t?null:t.name}function xM(t){return null!=t.a?t.a:null}function RM(t){return x_(t.a)?r1(t):null}function _M(t,e){return null!=DJ(t.a,e)}function kM(t,e){return!!e&&t.b[e.g]==e}function EM(t){return t.$H||(t.$H=++iie)}function CM(t){return t.l+t.m*TKt+t.h*AKt}function SM(t,e){return Wz(e.a,t.a),t.a}function TM(t,e){return Wz(e.b,t.a),t.a}function AM(t,e){return Wz(e.a,t.a),t.a}function DM(t){return EN(null!=t.a),t.a}function IM(t){tg.call(this,new z5(t))}function LM(t,e){Ebt.call(this,t,e,null)}function OM(t){this.a=t,jf.call(this,t)}function MM(){MM=D,Iae=new eP(gJt,0)}function NM(t,e){return++t.b,Wz(t.a,e)}function BM(t,e){return++t.b,y9(t.a,e)}function PM(t,e){return Cht(t.n.a,e.n.a)}function FM(t,e){return Cht(t.c.d,e.c.d)}function jM(t,e){return Cht(t.c.c,e.c.c)}function $M(t,e){return jz(c7(t.b,e),15)}function zM(t,e){return t.n.b=(vG(e),e)}function HM(t,e){return t.n.b=(vG(e),e)}function UM(t){return yL(t.a)||yL(t.b)}function VM(t,e,n){return p4(t,e,n,t.b)}function qM(t,e,n){return p4(t,e,n,t.c)}function WM(t,e,n){jz(M9(t,e),21).Fc(n)}function YM(t,e,n){Aht(t.a,n),Tyt(t.a,e)}function GM(t,e){GE(),this.a=t,this.b=e}function ZM(t,e){ZE(),this.b=t,this.c=e}function KM(t,e){FV(),this.f=e,this.d=t}function XM(t,e){h7(e,t),this.d=t,this.c=e}function JM(t){var e;e=t.a,t.a=t.b,t.b=e}function QM(t){return Hj(),!!t&&!t.dc()}function tN(t){return new c3(3,t)}function eN(t,e){return new dF(t,t.gc(),e)}function nN(t){return nw(),Ctt((MQ(),Wte),t)}function iN(t){this.d=t,AO.call(this,t)}function aN(t){this.c=t,AO.call(this,t)}function rN(t){this.c=t,iN.call(this,t)}function oN(){_E(),this.b=new yp(this)}function sN(t){return dit(t,DZt),new K7(t)}function cN(t){return EX(),parseInt(t)||-1}function lN(t,e,n){return t.substr(e,n-e)}function uN(t,e,n){return yM(t,Kkt(e),n)}function dN(t){return YW(t.c,t.c.length)}function hN(t){return null!=t.f?t.f:""+t.g}function fN(t){return null!=t.f?t.f:""+t.g}function gN(t){return EN(0!=t.b),t.a.a.c}function pN(t){return EN(0!=t.b),t.c.b.c}function bN(t){iO(t,150)&&jz(t,150).Gh()}function mN(t){return t.b=jz(mK(t.a),42)}function yN(t){cE(),this.b=t,this.a=!0}function vN(t){lE(),this.b=t,this.a=!0}function wN(t){t.d=new CN(t),t.e=new Om}function xN(t){if(!t)throw $m(new by)}function RN(t){if(!t)throw $m(new hy)}function _N(t){if(!t)throw $m(new fy)}function kN(t){if(!t)throw $m(new uy)}function EN(t){if(!t)throw $m(new yy)}function CN(t){Jz.call(this,t,null,null)}function SN(){gk.call(this,"POLYOMINO",0)}function TN(t,e,n,i){sq.call(this,t,e,n,i)}function AN(t,e){return FEt(),XAt(t,e.e,e)}function DN(t,e,n){return AE(),n.qg(t,e)}function IN(t,e){return!!t.q&&cW(t.q,e)}function LN(t,e){return t>0?e*e/t:e*e*100}function ON(t,e){return t>0?e/(t*t):100*e}function MN(t,e,n){return Wz(e,sgt(t,n))}function NN(t,e,n){O8(),t.Xe(e)&&n.td(t)}function BN(t,e,n){t.Zc(e).Rb(n)}function PN(t,e,n){return t.a+=e,t.b+=n,t}function FN(t,e,n){return t.a*=e,t.b*=n,t}function jN(t,e,n){return t.a-=e,t.b-=n,t}function $N(t,e){return t.a=e.a,t.b=e.b,t}function zN(t){return t.a=-t.a,t.b=-t.b,t}function HN(t){this.c=t,this.a=1,this.b=1}function UN(t){this.c=t,Cnt(t,0),Snt(t,0)}function VN(t){Zk.call(this),Qnt(this,t)}function qN(t){BYt(),jm(this),this.mf(t)}function WN(t,e){GE(),GM.call(this,t,e)}function YN(t,e){ZE(),ZM.call(this,t,e)}function GN(t,e){ZE(),ZM.call(this,t,e)}function ZN(t,e){ZE(),YN.call(this,t,e)}function KN(t,e,n){y8.call(this,t,e,n,2)}function XN(t,e){lL(),iV.call(this,t,e)}function JN(t,e){lL(),XN.call(this,t,e)}function QN(t,e){lL(),XN.call(this,t,e)}function tB(t,e){lL(),QN.call(this,t,e)}function eB(t,e){lL(),iV.call(this,t,e)}function nB(t,e){lL(),eB.call(this,t,e)}function iB(t,e){lL(),iV.call(this,t,e)}function aB(t,e){return t.c.Fc(jz(e,133))}function rB(t,e,n){return OHt(F9(t,e),n)}function oB(t,e,n){return e.Qk(t.e,t.c,n)}function sB(t,e,n){return e.Rk(t.e,t.c,n)}function cB(t,e){return tdt(t.e,jz(e,49))}function lB(t,e,n){cht($9(t.a),e,e1(n))}function uB(t,e,n){cht(a3(t.a),e,t1(n))}function dB(t,e){e.$modCount=t.$modCount}function hB(){hB=D,Yxe=new rm("root")}function fB(){fB=D,gIe=new Rv,new _v}function gB(){this.a=new pJ,this.b=new pJ}function pB(){xit.call(this),this.Bb|=$Kt}function bB(){gk.call(this,"GROW_TREE",0)}function mB(t){return null==t?null:fWt(t)}function yB(t){return null==t?null:LCt(t)}function vB(t){return null==t?null:$ft(t)}function wB(t){return null==t?null:$ft(t)}function xB(t){null==t.o&&pLt(t)}function RB(t){return KH(null==t||UA(t)),t}function _B(t){return KH(null==t||VA(t)),t}function kB(t){return KH(null==t||qA(t)),t}function EB(t){this.q=new i.Date(w2(t))}function CB(t,e){this.c=t,pk.call(this,t,e)}function SB(t,e){this.a=t,CB.call(this,t,e)}function TB(t,e){this.d=t,_f(this),this.b=e}function AB(t,e){j5.call(this,t),this.a=e}function DB(t,e){j5.call(this,t),this.a=e}function IB(t){Hgt.call(this,0,0),this.f=t}function LB(t,e,n){W7.call(this,t,e,n,null)}function OB(t,e,n){W7.call(this,t,e,n,null)}function MB(t,e,n){return t.ue(e,n)<=0?n:e}function NB(t,e,n){return t.ue(e,n)<=0?e:n}function BB(t,e){return jz(utt(t.b,e),149)}function PB(t,e){return jz(utt(t.c,e),229)}function FB(t){return jz(OU(t.a,t.b),287)}function jB(t){return new OT(t.c,t.d+t.a)}function $B(t){return jQ(),pI(jz(t,197))}function zB(){zB=D,Dae=Qht((ypt(),FAe))}function HB(t,e){e.a?jNt(t,e):_M(t.a,e.b)}function UB(t,e){qne||Wz(t.a,e)}function VB(t,e){return mE(),fot(e.d.i,t)}function qB(t,e){return Tat(),new aFt(e,t)}function WB(t,e){return TX(e,oJt),t.f=e,t}function YB(t,e,n){return n=_jt(t,e,3,n)}function GB(t,e,n){return n=_jt(t,e,6,n)}function ZB(t,e,n){return n=_jt(t,e,9,n)}function KB(t,e,n){++t.j,t.Ki(),I5(t,e,n)}function XB(t,e,n){++t.j,t.Hi(e,t.oi(e,n))}function JB(t,e,n){t.Zc(e).Rb(n)}function QB(t,e,n){return Jzt(t.c,t.b,e,n)}function tP(t,e){return(e&NGt)%t.d.length}function eP(t,e){rm.call(this,t),this.a=e}function nP(t,e){vm.call(this,t),this.a=e}function iP(t,e){vm.call(this,t),this.a=e}function aP(t,e){this.c=t,pet.call(this,e)}function rP(t,e){this.a=t,ym.call(this,e)}function oP(t,e){this.a=t,ym.call(this,e)}function sP(t){this.a=(dit(t,DZt),new K7(t))}function cP(t){this.a=(dit(t,DZt),new K7(t))}function lP(t){return!t.a&&(t.a=new g),t.a}function uP(t){return t>8?0:t+1}function dP(t,e){return cM(),t==e?0:t?1:-1}function hP(t,e,n){return mV(t,jz(e,22),n)}function fP(t,e,n){return t.apply(e,n)}function gP(t,e,n){return t.a+=$pt(e,0,n),t}function pP(t,e){var n;return n=t.e,t.e=e,n}function bP(t,e){t[nXt].call(t,e)}function mP(t,e){t[nXt].call(t,e)}function yP(t,e){t.a.Vc(t.b,e),++t.b,t.c=-1}function vP(t){DW(t.e),t.d.b=t.d,t.d.a=t.d}function wP(t){t.b?wP(t.b):t.f.c.zc(t.e,t.d)}function xP(t,e,n){fE(),Ch(t,e.Ce(t.a,n))}function RP(t,e){return GR(kpt(t.a,e,!0))}function _P(t,e){return GR(Ept(t.a,e,!0))}function kP(t,e){return zx(new Array(e),t)}function EP(t){return String.fromCharCode(t)}function CP(t){return null==t?null:t.message}function SP(){this.a=new Lm,this.b=new Lm}function TP(){this.a=new he,this.b=new Ry}function AP(){this.b=new HR,this.c=new Lm}function DP(){this.d=new HR,this.e=new HR}function IP(){this.n=new HR,this.o=new HR}function LP(){this.n=new dv,this.i=new dI}function OP(){this.a=new Ju,this.b=new sr}function MP(){this.a=new Lm,this.d=new Lm}function NP(){this.b=new Ny,this.a=new Ny}function BP(){this.b=new Om,this.a=new Om}function PP(){this.b=new A_,this.a=new bo}function FP(){LP.call(this),this.a=new HR}function jP(t){Aot.call(this,t,(X8(),One))}function $P(t,e,n,i){rV.call(this,t,e,n,i)}function zP(t,e,n){null!=n&&Lit(e,Dvt(t,n))}function HP(t,e,n){null!=n&&Oit(e,Dvt(t,n))}function UP(t,e,n){return n=_jt(t,e,11,n)}function VP(t,e){return t.a+=e.a,t.b+=e.b,t}function qP(t,e){return t.a-=e.a,t.b-=e.b,t}function WP(t,e){return t.n.a=(vG(e),e+10)}function YP(t,e){return t.n.a=(vG(e),e+10)}function GP(t,e){return e==t||ERt(SOt(e),t)}function ZP(t,e){return null==YG(t.a,e,"")}function KP(t,e){return mE(),!fot(e.d.i,t)}function XP(t,e){fI(t.f)?aLt(t,e):Tkt(t,e)}function JP(t,e){return e.Hh(t.a)}function QP(t,e){Aw.call(this,e8t+t+s5t+e)}function tF(t,e,n,i){tW.call(this,t,e,n,i)}function eF(t,e,n,i){tW.call(this,t,e,n,i)}function nF(t,e,n,i){eF.call(this,t,e,n,i)}function iF(t,e,n,i){eW.call(this,t,e,n,i)}function aF(t,e,n,i){eW.call(this,t,e,n,i)}function rF(t,e,n,i){eW.call(this,t,e,n,i)}function oF(t,e,n,i){aF.call(this,t,e,n,i)}function sF(t,e,n,i){aF.call(this,t,e,n,i)}function cF(t,e,n,i){rF.call(this,t,e,n,i)}function lF(t,e,n,i){sF.call(this,t,e,n,i)}function uF(t,e,n,i){Xq.call(this,t,e,n,i)}function dF(t,e,n){this.a=t,XM.call(this,e,n)}function hF(t,e,n){this.c=e,this.b=n,this.a=t}function fF(t,e,n){return t.d=jz(e.Kb(n),164)}function gF(t,e){return t.Aj().Nh().Kh(t,e)}function pF(t,e){return t.Aj().Nh().Ih(t,e)}function bF(t,e){return vG(t),HA(t)===HA(e)}function mF(t,e){return vG(t),HA(t)===HA(e)}function yF(t,e){return GR(kpt(t.a,e,!1))}function vF(t,e){return GR(Ept(t.a,e,!1))}function wF(t,e){return t.b.sd(new DC(t,e))}function xF(t,e){return t.b.sd(new IC(t,e))}function RF(t,e){return t.b.sd(new LC(t,e))}function _F(t,e,n){return t.lastIndexOf(e,n)}function kF(t,e,n){return Cht(t[e.b],t[n.b])}function EF(t,e){return lct(e,(zYt(),Npe),t)}function CF(t,e){return xL(e.a.d.p,t.a.d.p)}function SF(t,e){return xL(t.a.d.p,e.a.d.p)}function TF(t,e){return Cht(t.c-t.s,e.c-e.s)}function AF(t){return t.c?x9(t.c.a,t,0):-1}function DF(t){return t<100?null:new FR(t)}function IF(t){return t==qTe||t==YTe||t==WTe}function LF(t,e){return iO(e,15)&&ZBt(t.c,e)}function OF(t,e){qne||e&&(t.d=e)}function MF(t,e){return!!dlt(t,e)}function NF(t,e){this.c=t,HW.call(this,t,e)}function BF(t){this.c=t,bD.call(this,hZt,0)}function PF(t,e){Kz.call(this,t,t.length,e)}function FF(t,e,n){return jz(t.c,69).lk(e,n)}function jF(t,e,n){return jz(t.c,69).mk(e,n)}function $F(t,e,n){return oB(t,jz(e,332),n)}function zF(t,e,n){return sB(t,jz(e,332),n)}function HF(t,e,n){return T_t(t,jz(e,332),n)}function UF(t,e,n){return Zkt(t,jz(e,332),n)}function VF(t,e){return null==e?null:ddt(t.b,e)}function qF(t){return VA(t)?(vG(t),t):t.ke()}function WF(t){return!isNaN(t)&&!isFinite(t)}function YF(t){sj(),this.a=(kK(),new Ax(t))}function GF(t){cH(),this.d=t,this.a=new Im}function ZF(t,e,n){this.a=t,this.b=e,this.c=n}function KF(t,e,n){this.a=t,this.b=e,this.c=n}function XF(t,e,n){this.d=t,this.b=n,this.a=e}function JF(t){EL(this),yK(this),jat(this,t)}function QF(t){OI(this),Qz(this.c,0,t.Pc())}function tj(t){lG(t.a),U5(t.c,t.b),t.b=null}function ej(t){this.a=t,Dk(),uot(Date.now())}function nj(){nj=D,eie=new a,nie=new a}function ij(){ij=D,Rne=new O,_ne=new M}function aj(){aj=D,dIe=O5(Dte,zGt,1,0,5,1)}function rj(){rj=D,RLe=O5(Dte,zGt,1,0,5,1)}function oj(){oj=D,_Le=O5(Dte,zGt,1,0,5,1)}function sj(){sj=D,new ny((kK(),kK(),cne))}function cj(t){return X8(),Ctt((J8(),Pne),t)}function lj(t){return Hlt(),Ctt((t5(),Xne),t)}function uj(t){return lmt(),Ctt((S3(),pie),t)}function dj(t){return Ntt(),Ctt((T3(),vie),t)}function hj(t){return tPt(),Ctt((Mot(),Fie),t)}function fj(t){return Net(),Ctt((X7(),Wie),t)}function gj(t){return K8(),Ctt((J7(),Qie),t)}function pj(t){return H9(),Ctt((Q7(),rae),t)}function bj(t){return gGt(),Ctt((_D(),Aae),t)}function mj(t){return Not(),Ctt((t9(),Pae),t)}function yj(t){return zmt(),Ctt((e9(),Uae),t)}function vj(t){return Hmt(),Ctt((n9(),ere),t)}function wj(t){return hE(),Ctt((G2(),are),t)}function xj(t){return Btt(),Ctt((A3(),Pre),t)}function Rj(t){return z9(),Ctt((e5(),Ioe),t)}function _j(t){return vEt(),Ctt((qtt(),zoe),t)}function kj(t){return Dst(),Ctt((Q8(),nse),t)}function Ej(t){return $dt(),Ctt((n5(),gse),t)}function Cj(t,e){if(!t)throw $m(new Pw(e))}function Sj(t){return oCt(),Ctt((lnt(),Ase),t)}function Tj(t){rV.call(this,t.d,t.c,t.a,t.b)}function Aj(t){rV.call(this,t.d,t.c,t.a,t.b)}function Dj(t,e,n){this.b=t,this.c=e,this.a=n}function Ij(t,e,n){this.b=t,this.a=e,this.c=n}function Lj(t,e,n){this.a=t,this.b=e,this.c=n}function Oj(t,e,n){this.a=t,this.b=e,this.c=n}function Mj(t,e,n){this.a=t,this.b=e,this.c=n}function Nj(t,e,n){this.a=t,this.b=e,this.c=n}function Bj(t,e,n){this.b=t,this.a=e,this.c=n}function Pj(t,e,n){this.e=e,this.b=t,this.d=n}function Fj(t,e,n){return fE(),t.a.Od(e,n),e}function jj(t){var e;return(e=new xt).e=t,e}function $j(t){var e;return(e=new Xy).b=t,e}function zj(){zj=D,Vse=new Mn,qse=new Nn}function Hj(){Hj=D,fle=new ya,gle=new va}function Uj(t){return Tst(),Ctt((a9(),ole),t)}function Vj(t){return Ast(),Ctt((o9(),xle),t)}function qj(t){return wBt(),Ctt((Urt(),Yle),t)}function Wj(t){return ISt(),Ctt((hnt(),nue),t)}function Yj(t){return Y5(),Ctt((N3(),oue),t)}function Gj(t){return Ait(),Ctt((i5(),due),t)}function Zj(t){return L_t(),Ctt(($tt(),Tle),t)}function Kj(t){return Sat(),Ctt((o5(),Ple),t)}function Xj(t){return oit(),Ctt((a5(),bue),t)}function Jj(t){return Gyt(),Ctt((Ftt(),_ue),t)}function Qj(t){return Ptt(),Ctt((I3(),Sue),t)}function t$(t){return Xst(),Ctt((r5(),Lue),t)}function e$(t){return pCt(),Ctt((bnt(),$ue),t)}function n$(t){return g9(),Ctt((L3(),Vue),t)}function i$(t){return $Rt(),Ctt((gnt(),Jue),t)}function a$(t){return XEt(),Ctt((fnt(),ode),t)}function r$(t){return hBt(),Ctt((Gst(),yde),t)}function o$(t){return Pot(),Ctt((c5(),_de),t)}function s$(t){return U9(),Ctt((s5(),Tde),t)}function c$(t){return U2(),Ctt((B3(),Lde),t)}function l$(t){return _ft(),Ctt((ztt(),Uhe),t)}function u$(t){return _kt(),Ctt((pnt(),nye),t)}function d$(t){return kut(),Ctt((l5(),sye),t)}function h$(t){return hyt(),Ctt((s9(),fye),t)}function f$(t){return rit(),Ctt((h5(),Vye),t)}function g$(t){return cMt(),Ctt((Hrt(),Dye),t)}function p$(t){return yct(),Ctt((d5(),Nye),t)}function b$(t){return V9(),Ctt((M3(),jye),t)}function m$(t){return zrt(),Ctt((u5(),Zye),t)}function y$(t){return Oyt(),Ctt((jtt(),wye),t)}function v$(t){return A7(),Ctt((O3(),Qye),t)}function w$(t){return qlt(),Ctt((g5(),ave),t)}function x$(t){return grt(),Ctt((p5(),lve),t)}function R$(t){return Ist(),Ctt((f5(),gve),t)}function _$(t){return sit(),Ctt((b5(),Lve),t)}function k$(t){return G3(),Ctt((F3(),Hve),t)}function E$(t){return gJ(),Ctt((j3(),ewe),t)}function C$(t){return oQ(),Ctt(($3(),rwe),t)}function S$(t){return T7(),Ctt((P3(),Ewe),t)}function T$(t){return fJ(),Ctt((z3(),Mwe),t)}function A$(t){return Vwt(),Ctt((i9(),$we),t)}function D$(t){return NSt(),Ctt((mnt(),Kwe),t)}function I$(t){return sQ(),Ctt((V3(),Fxe),t)}function L$(t){return Cat(),Ctt((U3(),Xxe),t)}function O$(t){return j0(),Ctt((H3(),Hxe),t)}function M$(t){return Sft(),Ctt((m5(),nRe),t)}function N$(t){return M8(),Ctt((q3(),oRe),t)}function B$(t){return zlt(),Ctt((y5(),dRe),t)}function P$(t){return Avt(),Ctt((r9(),URe),t)}function F$(t){return $rt(),Ctt((w5(),GRe),t)}function j$(t){return Eft(),Ctt((v5(),t_e),t)}function $$(t){return KOt(),Ctt((Vtt(),j_e),t)}function z$(t){return Cft(),Ctt((x5(),V_e),t)}function H$(t){return CE(),Ctt((W2(),Y_e),t)}function U$(t){return SE(),Ctt((q2(),K_e),t)}function V$(t){return D7(),Ctt((Y3(),tke),t)}function q$(t){return ICt(),Ctt((Htt(),ske),t)}function W$(t){return TE(),Ctt((Y2(),Vke),t)}function Y$(t){return Lst(),Ctt((W3(),Gke),t)}function G$(t){return imt(),Ctt((Utt(),dEe),t)}function Z$(t){return CSt(),Ctt((Vrt(),xEe),t)}function K$(t){return fyt(),Ctt((dnt(),OEe),t)}function X$(t){return f_t(),Ctt((unt(),QEe),t)}function J$(t){return dGt(),Ctt((kD(),Xce),t)}function Q$(t){return Eat(),Ctt((D3(),Use),t)}function tz(t){return jdt(),Ctt((Wtt(),HSe),t)}function ez(t){return Bet(),Ctt((_5(),YSe),t)}function nz(t){return kft(),Ctt((u9(),QSe),t)}function iz(t){return Qkt(),Ctt((vnt(),sTe),t)}function az(t){return odt(),Ctt((R5(),vTe),t)}function rz(t){return Wwt(),Ctt((l9(),ETe),t)}function oz(t){return QIt(),Ctt((Oot(),BTe),t)}function sz(t){return amt(),Ctt((Ytt(),UTe),t)}function cz(t){return Z_t(),Ctt((zet(),XTe),t)}function lz(t){return dAt(),Ctt((ynt(),rAe),t)}function uz(t){return ypt(),Ctt((h9(),jAe),t)}function dz(t){return QFt(),Ctt((Zst(),KAe),t)}function hz(t){return wWt(),Ctt((Gtt(),TAe),t)}function fz(t){return jgt(),Ctt((d9(),nDe),t)}function gz(t){return $lt(),Ctt((c9(),lDe),t)}function pz(t){return lIt(),Ctt((qrt(),nIe),t)}function bz(t,e){return vG(t),t+(vG(e),e)}function mz(t,e){return Dk(),l8(GK(t.a),e)}function yz(t,e){return Dk(),l8(GK(t.a),e)}function vz(t,e){this.c=t,this.a=e,this.b=e-t}function wz(t,e,n){this.a=t,this.b=e,this.c=n}function xz(t,e,n){this.a=t,this.b=e,this.c=n}function Rz(t,e,n){this.a=t,this.b=e,this.c=n}function _z(t,e,n){this.a=t,this.b=e,this.c=n}function kz(t,e,n){this.a=t,this.b=e,this.c=n}function Ez(t,e,n){this.e=t,this.a=e,this.c=n}function Cz(t,e,n){lL(),mJ.call(this,t,e,n)}function Sz(t,e,n){lL(),nG.call(this,t,e,n)}function Tz(t,e,n){lL(),nG.call(this,t,e,n)}function Az(t,e,n){lL(),nG.call(this,t,e,n)}function Dz(t,e,n){lL(),Sz.call(this,t,e,n)}function Iz(t,e,n){lL(),Sz.call(this,t,e,n)}function Lz(t,e,n){lL(),Iz.call(this,t,e,n)}function Oz(t,e,n){lL(),Tz.call(this,t,e,n)}function Mz(t,e,n){lL(),Az.call(this,t,e,n)}function Nz(t,e){return yY(t),yY(e),new ck(t,e)}function Bz(t,e){return yY(t),yY(e),new PH(t,e)}function Pz(t,e){return yY(t),yY(e),new FH(t,e)}function Fz(t,e){return yY(t),yY(e),new uk(t,e)}function jz(t,e){return KH(null==t||Zmt(t,e)),t}function $z(t){var e;return ltt(e=new Lm,t),e}function zz(t){var e;return ltt(e=new Ny,t),e}function Hz(t){var e;return Hat(e=new Uy,t),e}function Uz(t){var e;return Hat(e=new Zk,t),e}function Vz(t){return!t.e&&(t.e=new Lm),t.e}function qz(t){return!t.c&&(t.c=new zc),t.c}function Wz(t,e){return t.c[t.c.length]=e,!0}function Yz(t,e){this.c=t,this.b=e,this.a=!1}function Gz(t){this.d=t,_f(this),this.b=nq(t.d)}function Zz(){this.a=";,;",this.b="",this.c=""}function Kz(t,e,n){Vq.call(this,e,n),this.a=t}function Xz(t,e,n){this.b=t,gD.call(this,e,n)}function Jz(t,e,n){this.c=t,EC.call(this,e,n)}function Qz(t,e,n){FTt(n,0,t,e,n.length,!1)}function tH(t,e,n,i,a){t.b=e,t.c=n,t.d=i,t.a=a}function eH(t,e){e&&(t.b=e,t.a=(xG(e),e.a))}function nH(t,e,n,i,a){t.d=e,t.c=n,t.a=i,t.b=a}function iH(t){var e,n;e=t.b,n=t.c,t.b=n,t.c=e}function aH(t){var e,n;n=t.d,e=t.a,t.d=e,t.a=n}function rH(t){return oot(OW(KD(t)?Cot(t):t))}function oH(t,e){return xL(oU(t.d),oU(e.d))}function sH(t,e){return e==(wWt(),SAe)?t.c:t.d}function cH(){cH=D,wWt(),Nve=SAe,Bve=sAe}function lH(){this.b=Hw(_B(ymt((uPt(),aoe))))}function uH(t){return fE(),O5(Dte,zGt,1,t,5,1)}function dH(t){return new OT(t.c+t.b,t.d+t.a)}function hH(t,e){return kE(),xL(t.d.p,e.d.p)}function fH(t){return EN(0!=t.b),Det(t,t.a.a)}function gH(t){return EN(0!=t.b),Det(t,t.c.b)}function pH(t,e){if(!t)throw $m(new Dw(e))}function bH(t,e){if(!t)throw $m(new Pw(e))}function mH(t,e,n){fS.call(this,t,e),this.b=n}function yH(t,e,n){IA.call(this,t,e),this.c=n}function vH(t,e,n){het.call(this,e,n),this.d=t}function wH(t){oj(),wc.call(this),this.th(t)}function xH(t,e,n){this.a=t,LD.call(this,e,n)}function RH(t,e,n){this.a=t,LD.call(this,e,n)}function _H(t,e,n){IA.call(this,t,e),this.c=n}function kH(){N6(),oG.call(this,(WE(),HIe))}function EH(t){return null!=t&&!Wft(t,DIe,IIe)}function CH(t,e){return(Ydt(t)<<4|Ydt(e))&ZZt}function SH(t,e){return JG(),Vyt(t,e),new HG(t,e)}function TH(t,e){var n;t.n&&(n=e,Wz(t.f,n))}function AH(t,e,n){net(t,e,new HY(n))}function DH(t,e){var n;return n=t.c,Pit(t,e),n}function IH(t,e){return t.g=e<0?-1:e,t}function LH(t,e){return Vet(t),t.a*=e,t.b*=e,t}function OH(t,e,n,i,a){t.c=e,t.d=n,t.b=i,t.a=a}function MH(t,e){return n6(t,e,t.c.b,t.c),!0}function NH(t){t.a.b=t.b,t.b.a=t.a,t.a=t.b=null}function BH(t){this.b=t,this.a=uq(this.b.a).Ed()}function PH(t,e){this.b=t,this.a=e,ju.call(this)}function FH(t,e){this.a=t,this.b=e,ju.call(this)}function jH(t,e){Vq.call(this,e,1040),this.a=t}function $H(t){return 0==t||isNaN(t)?t:t<0?-1:1}function zH(t){return _K(),CEt(t)==KJ(AEt(t))}function HH(t){return _K(),AEt(t)==KJ(CEt(t))}function UH(t,e){return KRt(t,new fS(e.a,e.b))}function VH(t){return!d6(t)&&t.c.i.c==t.d.i.c}function qH(t){var e;return e=t.n,t.a.b+e.d+e.a}function WH(t){var e;return e=t.n,t.e.b+e.d+e.a}function YH(t){var e;return e=t.n,t.e.a+e.b+e.c}function GH(t){return fGt(),new oV(0,t)}function ZH(t){return t.a?t.a:tK(t)}function KH(t){if(!t)throw $m(new Bw(null))}function XH(){XH=D,kK(),aOe=new Hf(C9t)}function JH(){JH=D,new cyt((Qv(),Fte),(tw(),Pte))}function QH(){QH=D,Tee=O5(Dee,cZt,19,256,0,1)}function tU(t,e,n,i){rgt.call(this,t,e,n,i,0,0)}function eU(t,e,n){return YG(t.b,jz(n.b,17),e)}function nU(t,e,n){return YG(t.b,jz(n.b,17),e)}function iU(t,e){return Wz(t,new OT(e.a,e.b))}function aU(t,e){return t.c<e.c?-1:t.c==e.c?0:1}function rU(t){return t.e.c.length+t.g.c.length}function oU(t){return t.e.c.length-t.g.c.length}function sU(t){return t.b.c.length-t.e.c.length}function cU(t){return jQ(),(wWt(),hAe).Hc(t.j)}function lU(t){oj(),wH.call(this,t),this.a=-1}function uU(t,e){OA.call(this,t,e),this.a=this}function dU(t,e){var n;return(n=mY(t,e)).i=2,n}function hU(t,e){return++t.j,t.Ti(e)}function fU(t,e,n){return t.a=-1,WM(t,e.g,n),t}function gU(t,e,n){Pqt(t.a,t.b,t.c,jz(e,202),n)}function pU(t,e){$it(t,null==e?null:(vG(e),e))}function bU(t,e){Bit(t,null==e?null:(vG(e),e))}function mU(t,e){Bit(t,null==e?null:(vG(e),e))}function yU(t,e,n){return new hF(fG(t).Ie(),n,e)}function vU(t,e,n,i,a,r){return GRt(t,e,n,i,a,0,r)}function wU(){wU=D,xee=O5(Ree,cZt,217,256,0,1)}function xU(){xU=D,Iee=O5(Bee,cZt,162,256,0,1)}function RU(){RU=D,Pee=O5(Fee,cZt,184,256,0,1)}function _U(){_U=D,kee=O5(Eee,cZt,172,128,0,1)}function kU(){tH(this,!1,!1,!1,!1)}function EU(t){WY(),this.a=(kK(),new Hf(yY(t)))}function CU(t){for(yY(t);t.Ob();)t.Pb(),t.Qb()}function SU(t){t.a.cd(),jz(t.a.dd(),14).gc(),hx()}function TU(t){this.c=t,this.b=this.c.d.vc().Kc()}function AU(t){this.c=t,this.a=new Gk(this.c.a)}function DU(t){this.a=new qk(t.gc()),jat(this,t)}function IU(t){tg.call(this,new b3),jat(this,t)}function LU(t,e){return t.a+=$pt(e,0,e.length),t}function OU(t,e){return u1(e,t.c.length),t.c[e]}function MU(t,e){return u1(e,t.a.length),t.a[e]}function NU(t,e){fE(),j5.call(this,t),this.a=e}function BU(t,e){return xbt(ift(xbt(t.a).a,e.a))}function PU(t,e){return vG(t),Ort(t,(vG(e),e))}function FU(t,e){return vG(e),Ort(e,(vG(t),t))}function jU(t,e){return DY(e,0,$U(e[0],xbt(1)))}function $U(t,e){return BU(jz(t,162),jz(e,162))}function zU(t){return t.c-jz(OU(t.a,t.b),287).b}function HU(t){return t.q?t.q:(kK(),kK(),lne)}function UU(t){return t.e.Hd().gc()*t.c.Hd().gc()}function VU(t,e,n){return xL(e.d[t.g],n.d[t.g])}function qU(t,e,n){return xL(t.d[e.p],t.d[n.p])}function WU(t,e,n){return xL(t.d[e.p],t.d[n.p])}function YU(t,e,n){return xL(t.d[e.p],t.d[n.p])}function GU(t,e,n){return xL(t.d[e.p],t.d[n.p])}function ZU(t,e,n){return i.Math.min(n/t,1/e)}function KU(t,e){return t?0:i.Math.max(0,e-1)}function XU(t,e){var n;for(n=0;n<e;++n)t[n]=-1}function JU(t){var e;return(e=o_t(t))?JU(e):t}function QU(t,e){return null==t.a&&fPt(t),t.a[e]}function tV(t){return t.c?t.c.f:t.e.b}function eV(t){return t.c?t.c.g:t.e.a}function nV(t){pet.call(this,t.gc()),pY(this,t)}function iV(t,e){lL(),wm.call(this,e),this.a=t}function aV(t,e,n){this.a=t,DO.call(this,e,n,2)}function rV(t,e,n,i){nH(this,t,e,n,i)}function oV(t,e){fGt(),Am.call(this,t),this.a=e}function sV(t){this.b=new Zk,this.a=t,this.c=-1}function cV(){this.d=new OT(0,0),this.e=new Ny}function lV(t){XM.call(this,0,0),this.a=t,this.b=0}function uV(t){this.a=t,this.c=new Om,ict(this)}function dV(t){if(t.e.c!=t.b)throw $m(new by)}function hV(t){if(t.c.e!=t.a)throw $m(new by)}function fV(t){return KD(t)?0|t:R_(t)}function gV(t,e){return fGt(),new VW(t,e)}function pV(t,e){return null==t?null==e:mF(t,e)}function bV(t,e){return null==t?null==e:ybt(t,e)}function mV(t,e,n){return sat(t.a,e),xW(t,e.g,n)}function yV(t,e,n){nut(0,e,t.length),U8(t,0,e,n)}function vV(t,e,n){IQ(e,t.c.length),_C(t.c,e,n)}function wV(t,e,n){var i;for(i=0;i<e;++i)t[i]=n}function xV(t,e){var n;return Ict(n=Qht(t),e),n}function RV(t,e){return!t&&(t=[]),t[t.length]=e,t}function _V(t,e){return void 0!==t.a.get(e)}function kV(t,e){return Wit(new tt,new rg(t),e)}function EV(t){return null==t?kne:new bw(vG(t))}function CV(t,e){return iO(e,22)&&kM(t,jz(e,22))}function SV(t,e){return iO(e,22)&&Iet(t,jz(e,22))}function TV(t){return zLt(t,26)*iXt+zLt(t,27)*aXt}function AV(t){return Array.isArray(t)&&t.im===A}function DV(t){t.b?DV(t.b):t.d.dc()&&t.f.c.Bc(t.e)}function IV(t,e){VP(t.c,e),t.b.c+=e.a,t.b.d+=e.b}function LV(t,e){IV(t,qP(new OT(e.a,e.b),t.c))}function OV(t,e){this.b=new Zk,this.a=t,this.c=e}function MV(){this.b=new Ae,this.c=new uX(this)}function NV(){this.d=new yt,this.e=new lX(this)}function BV(){BQ(),this.f=new Zk,this.e=new Zk}function PV(){jQ(),this.k=new Om,this.d=new Ny}function FV(){FV=D,dDe=new qI((cGt(),aSe),0)}function jV(){jV=D,Hte=new lV(O5(Dte,zGt,1,0,5,1))}function $V(t,e,n){GIt(n,t,1),Wz(e,new iS(n,t))}function zV(t,e,n){jxt(n,t,1),Wz(e,new dS(n,t))}function HV(t,e,n){return RW(t,new OC(e.a,n.a))}function UV(t,e,n){return-xL(t.f[e.p],t.f[n.p])}function VV(t,e,n){var i;t&&((i=t.i).c=e,i.b=n)}function qV(t,e,n){var i;t&&((i=t.i).d=e,i.a=n)}function WV(t,e,n){return t.a=-1,WM(t,e.g+1,n),t}function YV(t,e,n){return n=_jt(t,jz(e,49),7,n)}function GV(t,e,n){return n=_jt(t,jz(e,49),3,n)}function ZV(t,e,n){this.a=t,IO.call(this,e,n,22)}function KV(t,e,n){this.a=t,IO.call(this,e,n,14)}function XV(t,e,n,i){lL(),L0.call(this,t,e,n,i)}function JV(t,e,n,i){lL(),L0.call(this,t,e,n,i)}function QV(t,e){e.Bb&l7t&&!t.a.o&&(t.a.o=e)}function tq(t){return null!=t&&MW(t)&&t.im!==A}function eq(t){return!Array.isArray(t)&&t.im===A}function nq(t){return iO(t,15)?jz(t,15).Yc():t.Kc()}function iq(t){return t.Qc(O5(Dte,zGt,1,t.gc(),5,1))}function aq(t,e){return dbt(F9(t,e))?e.Qh():null}function rq(t){t?jvt(t,(Dk(),$ee)):Dk()}function oq(t){this.a=(jV(),Hte),this.d=jz(yY(t),47)}function sq(t,e,n,i){this.a=t,W7.call(this,t,e,n,i)}function cq(t){tC(),this.a=0,this.b=t-1,this.c=1}function lq(t){YL(this),this.g=t,wK(this),this._d()}function uq(t){return t.c?t.c:t.c=t.Id()}function dq(t){return t.d?t.d:t.d=t.Jd()}function hq(t){return t.c||(t.c=t.Dd())}function fq(t){return t.f||(t.f=t.Dc())}function gq(t){return t.i||(t.i=t.bc())}function pq(t){return fGt(),new bJ(10,t,0)}function bq(t){return KD(t)?""+t:UBt(t)}function mq(t){if(t.e.j!=t.d)throw $m(new by)}function yq(t,e){return oot(dCt(KD(t)?Cot(t):t,e))}function vq(t,e){return oot(xIt(KD(t)?Cot(t):t,e))}function wq(t,e){return oot(XCt(KD(t)?Cot(t):t,e))}function xq(t,e){return dP((vG(t),t),(vG(e),e))}function Rq(t,e){return Cht((vG(t),t),(vG(e),e))}function _q(t,e){return yY(e),t.a.Ad(e)&&!t.b.Ad(e)}function kq(t,e){return _L(t.l&e.l,t.m&e.m,t.h&e.h)}function Eq(t,e){return _L(t.l|e.l,t.m|e.m,t.h|e.h)}function Cq(t,e){return _L(t.l^e.l,t.m^e.m,t.h^e.h)}function Sq(t,e){return Idt(t,(vG(e),new ng(e)))}function Tq(t,e){return Idt(t,(vG(e),new ig(e)))}function Aq(t){return prt(),0!=jz(t,11).e.c.length}function Dq(t){return prt(),0!=jz(t,11).g.c.length}function Iq(t,e){return Tat(),Cht(e.a.o.a,t.a.o.a)}function Lq(t,e,n){return _Wt(t,jz(e,11),jz(n,11))}function Oq(t){return t.e?M7(t.e):null}function Mq(t){t.d||(t.d=t.b.Kc(),t.c=t.b.gc())}function Nq(t,e,n){t.a.Mb(n)&&(t.b=!0,e.td(n))}function Bq(t,e){if(t<0||t>=e)throw $m(new ky)}function Pq(t,e,n){return DY(e,0,$U(e[0],n[0])),e}function Fq(t,e,n){e.Ye(n,Hw(_B(NY(t.b,n)))*t.a)}function jq(t,e,n){return xBt(),Nrt(t,e)&&Nrt(t,n)}function $q(t){return dAt(),!t.Hc(eAe)&&!t.Hc(iAe)}function zq(t){return new OT(t.c+t.b/2,t.d+t.a/2)}function Hq(t,e){return e.kh()?tdt(t.b,jz(e,49)):e}function Uq(t,e){this.e=t,this.d=64&e?e|lZt:e}function Vq(t,e){this.c=0,this.d=t,this.b=64|e|lZt}function qq(t){this.b=new K7(11),this.a=(EK(),t)}function Wq(t){this.b=null,this.a=(EK(),t||hne)}function Yq(t){this.a=iyt(t.a),this.b=new QF(t.b)}function Gq(t){this.b=t,iN.call(this,t),_O(this)}function Zq(t){this.b=t,rN.call(this,t),kO(this)}function Kq(t,e,n){this.a=t,tF.call(this,e,n,5,6)}function Xq(t,e,n,i){this.b=t,DO.call(this,e,n,i)}function Jq(t,e,n,i,a){v8.call(this,t,e,n,i,a,-1)}function Qq(t,e,n,i,a){w8.call(this,t,e,n,i,a,-1)}function tW(t,e,n,i){DO.call(this,t,e,n),this.b=i}function eW(t,e,n,i){yH.call(this,t,e,n),this.b=i}function nW(t){LA.call(this,t,!1),this.a=!1}function iW(t,e){this.b=t,sh.call(this,t.b),this.a=e}function aW(t,e){WY(),wk.call(this,t,cdt(new Kw(e)))}function rW(t,e){return fGt(),new iG(t,e,0)}function oW(t,e){return fGt(),new iG(6,t,e)}function sW(t,e){return mF(t.substr(0,e.length),e)}function cW(t,e){return qA(e)?tX(t,e):!!AX(t.f,e)}function lW(t,e){for(vG(e);t.Ob();)e.td(t.Pb())}function uW(t,e,n){ABt(),this.e=t,this.d=e,this.a=n}function dW(t,e,n,i){var a;(a=t.i).i=e,a.a=n,a.b=i}function hW(t){var e;for(e=t;e.f;)e=e.f;return e}function fW(t){var e;return EN(null!=(e=Rct(t))),e}function gW(t){var e;return EN(null!=(e=yht(t))),e}function pW(t,e){var n;return h7(e,n=t.a.gc()),n-e}function bW(t,e){var n;for(n=0;n<e;++n)t[n]=!1}function mW(t,e,n,i){var a;for(a=e;a<n;++a)t[a]=i}function yW(t,e,n,i){nut(e,n,t.length),mW(t,e,n,i)}function vW(t,e,n){Bq(n,t.a.c.length),i6(t.a,n,e)}function wW(t,e,n){this.c=t,this.a=e,kK(),this.b=n}function xW(t,e,n){var i;return i=t.b[e],t.b[e]=n,i}function RW(t,e){return null==t.a.zc(e,t)}function _W(t){if(!t)throw $m(new yy);return t.d}function kW(t,e){if(null==t)throw $m(new $w(e))}function EW(t,e){return!!e&&jat(t,e)}function CW(t,e,n){return eut(t,e.g,n),sat(t.c,e),t}function SW(t){return kqt(t,(jdt(),FSe)),t.d=!0,t}function TW(t){return!t.j&&yf(t,jFt(t.g,t.b)),t.j}function AW(t){_N(-1!=t.b),s7(t.c,t.a=t.b),t.b=-1}function DW(t){t.f=new tI(t),t.g=new eI(t),oX(t)}function IW(t){return new NU(null,zW(t,t.length))}function LW(t){return new oq(new WO(t.a.length,t.a))}function OW(t){return _L(~t.l&EKt,~t.m&EKt,~t.h&CKt)}function MW(t){return typeof t===DGt||typeof t===MGt}function NW(t){return t==BKt?M9t:t==PKt?"-INF":""+t}function BW(t){return t==BKt?M9t:t==PKt?"-INF":""+t}function PW(t,e){return t>0?i.Math.log(t/e):-100}function FW(t,e){return Gut(t,e)<0?-1:Gut(t,e)>0?1:0}function jW(t,e,n){return EHt(t,jz(e,46),jz(n,167))}function $W(t,e){return jz(hq(uq(t.a)).Xb(e),42).cd()}function zW(t,e){return bet(e,t.length),new jH(t,e)}function HW(t,e){this.d=t,AO.call(this,t),this.e=e}function UW(t){this.d=(vG(t),t),this.a=0,this.c=hZt}function VW(t,e){Am.call(this,1),this.a=t,this.b=e}function qW(t,e){return t.c?qW(t.c,e):Wz(t.b,e),t}function WW(t,e,n){var i;return i=ftt(t,e),n3(t,e,n),i}function YW(t,e){return m9(t.slice(0,e),t)}function GW(t,e,n){var i;for(i=0;i<e;++i)DY(t,i,n)}function ZW(t,e,n,i,a){for(;e<n;)i[a++]=lZ(t,e++)}function KW(t,e){return Cht(t.c.c+t.c.b,e.c.c+e.c.b)}function XW(t,e){return null==kct(t.a,e,(cM(),mee))}function JW(t,e){n6(t.d,e,t.b.b,t.b),++t.a,t.c=null}function QW(t,e){KL(t,iO(e,153)?e:jz(e,1937).gl())}function tY(t,e){Kk(DZ(t.Oc(),new Xa),new Sp(e))}function eY(t,e,n,i,a){O_t(t,jz(c7(e.k,n),15),n,i,a)}function nY(t){t.s=NaN,t.c=NaN,JDt(t,t.e),JDt(t,t.j)}function iY(t){t.a=null,t.e=null,DW(t.b),t.d=0,++t.c}function aY(t){return i.Math.abs(t.d.e-t.e.e)-t.a}function rY(t,e,n){return jz(t.c._c(e,jz(n,133)),42)}function oY(){return nw(),Cst(Hx(Yte,1),IZt,538,0,[qte])}function sY(t){return _K(),KJ(CEt(t))==KJ(AEt(t))}function cY(t){DP.call(this),this.a=t,Wz(t.a,this)}function lY(t,e){this.d=Eht(t),this.c=e,this.a=.5*e}function uY(){b3.call(this),this.a=!0,this.b=!0}function dY(t){return(null==t.i&&H$t(t),t.i).length}function hY(t){return iO(t,99)&&0!=(jz(t,18).Bb&l7t)}function fY(t,e){++t.j,ckt(t,t.i,e),VAt(t,jz(e,332))}function gY(t,e){return e=t.nk(null,e),Ikt(t,null,e)}function pY(t,e){return t.hi()&&(e=JJ(t,e)),t.Wh(e)}function bY(t,e,n){var i;return Znt(n,i=mY(t,e)),i}function mY(t,e){var n;return(n=new bct).j=t,n.d=e,n}function yY(t){if(null==t)throw $m(new gy);return t}function vY(t){return t.j||(t.j=new dh(t))}function wY(t){return t.f||(t.f=new VO(t))}function xY(t){return t.k||(t.k=new Gd(t))}function RY(t){return t.k||(t.k=new Gd(t))}function _Y(t){return t.g||(t.g=new Yd(t))}function kY(t){return t.i||(t.i=new Xd(t))}function EY(t){return t.d||(t.d=new th(t))}function CY(t){return yY(t),iO(t,475)?jz(t,475):$ft(t)}function SY(t){return iO(t,607)?t:new dJ(t)}function TY(t,e){return h2(e,t.c.b.c.gc()),new sk(t,e)}function AY(t,e,n){return fGt(),new R0(t,e,n)}function DY(t,e,n){return kN(null==n||Zjt(t,n)),t[e]=n}function IY(t,e){var n;return h2(e,n=t.a.gc()),n-1-e}function LY(t,e){return t.a+=String.fromCharCode(e),t}function OY(t,e){return t.a+=String.fromCharCode(e),t}function MY(t,e){for(vG(e);t.c<t.d;)t.ze(e,t.c++)}function NY(t,e){return qA(e)?kJ(t,e):zA(AX(t.f,e))}function BY(t,e){return _K(),t==CEt(e)?AEt(e):CEt(e)}function PY(t,e){JY(t,new HY(null!=e.f?e.f:""+e.g))}function FY(t,e){JY(t,new HY(null!=e.f?e.f:""+e.g))}function jY(t){this.b=new Lm,this.a=new Lm,this.c=t}function $Y(t){this.c=new HR,this.a=new Lm,this.b=t}function zY(t){DP.call(this),this.a=new HR,this.c=t}function HY(t){if(null==t)throw $m(new gy);this.a=t}function UY(t){_y(),this.b=new Lm,this.a=t,mVt(this,t)}function VY(t){this.c=t,this.a=new Zk,this.b=new Zk}function qY(){qY=D,see=new Rh(!1),cee=new Rh(!0)}function WY(){WY=D,sj(),jte=new kX((kK(),kK(),cne))}function YY(){YY=D,sj(),Gte=new bC((kK(),kK(),une))}function GY(){GY=D,JIe=UAt(),pGt(),tLe&&Bxt()}function ZY(t,e){return Tat(),jz(oZ(t,e.d),15).Fc(e)}function KY(t,e,n,i){return 0==n||(n-i)/n<t.e||e>=t.g}function XY(t,e,n){return OPt(t,vat(t,e,n))}function JY(t,e){var n;ftt(t,n=t.a.length),n3(t,n,e)}function QY(t,e){console[t].call(console,e)}function tG(t,e){var n;++t.j,n=t.Vi(),t.Ii(t.oi(n,e))}function eG(t,e,n){jz(e.b,65),Aet(e.a,new xz(t,n,e))}function nG(t,e,n){wm.call(this,e),this.a=t,this.b=n}function iG(t,e,n){Am.call(this,t),this.a=e,this.b=n}function aG(t,e,n){this.a=t,vm.call(this,e),this.b=n}function rG(t,e,n){this.a=t,$2.call(this,8,e,null,n)}function oG(t){this.a=(vG(F8t),F8t),this.b=t,new Lv}function sG(t){this.c=t,this.b=this.c.a,this.a=this.c.e}function cG(t){this.c=t,this.b=t.a.d.a,dB(t.a.e,this)}function lG(t){_N(-1!=t.c),t.d.$c(t.c),t.b=t.c,t.c=-1}function uG(t){return i.Math.sqrt(t.a*t.a+t.b*t.b)}function dG(t,e){return Bq(e,t.a.c.length),OU(t.a,e)}function hG(t,e){return HA(t)===HA(e)||null!=t&&Odt(t,e)}function fG(t){return 0>=t?new Yk:Yit(t-1)}function gG(t){return!!_Me&&tX(_Me,t)}function pG(t){return t?t.dc():!t.Kc().Ob()}function bG(t){return!t.a&&t.c?t.c.b:t.a}function mG(t){return!t.a&&(t.a=new DO(DDe,t,4)),t.a}function yG(t){return!t.d&&(t.d=new DO(WIe,t,1)),t.d}function vG(t){if(null==t)throw $m(new gy);return t}function wG(t){t.c?t.c.He():(t.d=!0,ZMt(t))}function xG(t){t.c?xG(t.c):(Zht(t),t.d=!0)}function RG(t){RZ(t.a),t.b=O5(Dte,zGt,1,t.b.length,5,1)}function _G(t,e){return xL(e.j.c.length,t.j.c.length)}function kG(t,e){t.c<0||t.b.b<t.c?lD(t.b,e):t.a._e(e)}function EG(t,e){var n;(n=t.Yg(e))>=0?t.Bh(n):aAt(t,e)}function CG(t){return t.c.i.c==t.d.i.c}function SG(t){if(4!=t.p)throw $m(new fy);return t.e}function TG(t){if(3!=t.p)throw $m(new fy);return t.e}function AG(t){if(6!=t.p)throw $m(new fy);return t.f}function DG(t){if(6!=t.p)throw $m(new fy);return t.k}function IG(t){if(3!=t.p)throw $m(new fy);return t.j}function LG(t){if(4!=t.p)throw $m(new fy);return t.j}function OG(t){return!t.b&&(t.b=new Rm(new Ov)),t.b}function MG(t){return-2==t.c&&gf(t,oEt(t.g,t.b)),t.c}function NG(t,e){var n;return(n=mY("",t)).n=e,n.i=1,n}function BG(t,e){IV(jz(e.b,65),t),Aet(e.a,new Ag(t))}function PG(t,e){l8((!t.a&&(t.a=new oP(t,t)),t.a),e)}function FG(t,e){this.b=t,HW.call(this,t,e),_O(this)}function jG(t,e){this.b=t,NF.call(this,t,e),kO(this)}function $G(t,e,n,i){bk.call(this,t,e),this.d=n,this.a=i}function zG(t,e,n,i){bk.call(this,t,n),this.a=e,this.f=i}function HG(t,e){WL.call(this,Git(yY(t),yY(e))),this.a=e}function UG(){gEt.call(this,E9t,(n_(),hOe)),YUt(this)}function VG(){gEt.call(this,G8t,(e_(),XIe)),AHt(this)}function qG(){gk.call(this,"DELAUNAY_TRIANGULATION",0)}function WG(t){return String.fromCharCode.apply(null,t)}function YG(t,e,n){return qA(e)?mQ(t,e,n):xTt(t.f,e,n)}function GG(t){return kK(),t?t.ve():(EK(),EK(),gne)}function ZG(t,e,n){return Ost(),n.pg(t,jz(e.cd(),146))}function KG(t,e){return JH(),new cyt(new nM(t),new eM(e))}function XG(t){return dit(t,OZt),Qtt(ift(ift(5,t),t/10|0))}function JG(){JG=D,$te=new cw(Cst(Hx(zte,1),wZt,42,0,[]))}function QG(t){return!t.d&&(t.d=new $f(t.c.Cc())),t.d}function tZ(t){return!t.a&&(t.a=new Ix(t.c.vc())),t.a}function eZ(t){return!t.b&&(t.b=new Ax(t.c.ec())),t.b}function nZ(t,e){for(;e-- >0;)t=t<<1|(t<0?1:0);return t}function iZ(t,e){return HA(t)===HA(e)||null!=t&&Odt(t,e)}function aZ(t,e){return cM(),jz(e.b,19).a<t}function rZ(t,e){return cM(),jz(e.a,19).a<t}function oZ(t,e){return CV(t.a,e)?t.b[jz(e,22).g]:null}function sZ(t,e,n,i){t.a=lN(t.a,0,e)+""+i+JA(t.a,n)}function cZ(t,e){t.u.Hc((dAt(),eAe))&&CAt(t,e),U7(t,e)}function lZ(t,e){return d1(e,t.length),t.charCodeAt(e)}function uZ(){fw.call(this,"There is no more element.")}function dZ(t){this.d=t,this.a=this.d.b,this.b=this.d.c}function hZ(t){t.b=!1,t.c=!1,t.d=!1,t.a=!1}function fZ(t,e,n,i){return Brt(t,e,n,!1),Jdt(t,i),t}function gZ(t){return t.j.c=O5(Dte,zGt,1,0,5,1),t.a=-1,t}function pZ(t){return!t.c&&(t.c=new cF(NDe,t,5,8)),t.c}function bZ(t){return!t.b&&(t.b=new cF(NDe,t,4,7)),t.b}function mZ(t){return!t.n&&(t.n=new tW(HDe,t,1,7)),t.n}function yZ(t){return!t.c&&(t.c=new tW(VDe,t,9,9)),t.c}function vZ(t){return t.e==S9t&&bf(t,_bt(t.g,t.b)),t.e}function wZ(t){return t.f==S9t&&mf(t,bxt(t.g,t.b)),t.f}function xZ(t){var e;return!(e=t.b)&&(t.b=e=new Zd(t)),e}function RZ(t){var e;for(e=t.Kc();e.Ob();)e.Pb(),e.Qb()}function _Z(t){if(Vft(t.d),t.d.d!=t.c)throw $m(new by)}function kZ(t,e){this.b=t,this.c=e,this.a=new Gk(this.b)}function EZ(t,e,n){this.a=WZt,this.d=t,this.b=e,this.c=n}function CZ(t,e){this.d=(vG(t),t),this.a=16449,this.c=e}function SZ(t,e){Xht(t,Hw(Bnt(e,"x")),Hw(Bnt(e,"y")))}function TZ(t,e){Xht(t,Hw(Bnt(e,"x")),Hw(Bnt(e,"y")))}function AZ(t,e){return Zht(t),new NU(t,new G8(e,t.a))}function DZ(t,e){return Zht(t),new NU(t,new _7(e,t.a))}function IZ(t,e){return Zht(t),new AB(t,new x7(e,t.a))}function LZ(t,e){return Zht(t),new DB(t,new R7(e,t.a))}function OZ(t,e){return new pX(jz(yY(t),62),jz(yY(e),62))}function MZ(t,e){return wE(),Cht((vG(t),t),(vG(e),e))}function NZ(){return hE(),Cst(Hx(Ere,1),IZt,481,0,[ire])}function BZ(){return CE(),Cst(Hx(G_e,1),IZt,482,0,[W_e])}function PZ(){return SE(),Cst(Hx(X_e,1),IZt,551,0,[Z_e])}function FZ(){return TE(),Cst(Hx(qke,1),IZt,530,0,[Uke])}function jZ(t){this.a=new Lm,this.e=O5(TMe,cZt,48,t,0,2)}function $Z(t,e,n,i){this.a=t,this.e=e,this.d=n,this.c=i}function zZ(t,e,n,i){this.a=t,this.c=e,this.b=n,this.d=i}function HZ(t,e,n,i){this.c=t,this.b=e,this.a=n,this.d=i}function UZ(t,e,n,i){this.c=t,this.b=e,this.d=n,this.a=i}function VZ(t,e,n,i){this.c=t,this.d=e,this.b=n,this.a=i}function qZ(t,e,n,i){this.a=t,this.d=e,this.c=n,this.b=i}function WZ(t,e,n,i){gk.call(this,t,e),this.a=n,this.b=i}function YZ(t,e,n,i){this.a=t,this.c=e,this.d=n,this.b=i}function GZ(t,e,n){RHt(t.a,n),Qot(n),DIt(t.b,n),iUt(e,n)}function ZZ(t,e,n){var i;return i=IWt(t),e.Kh(n,i)}function KZ(t,e){var n,i;return(n=t/e)>(i=CJ(n))&&++i,i}function XZ(t){var e;return ant(e=new Bm,t),e}function JZ(t){var e;return NEt(e=new Bm,t),e}function QZ(t,e){return Prt(e,NY(t.f,e)),null}function tK(t){return Kit(t)||null}function eK(t){return!t.b&&(t.b=new tW(BDe,t,12,3)),t.b}function nK(t){return null!=t&&Ok(vIe,t.toLowerCase())}function iK(t,e){return Cht(eV(t)*tV(t),eV(e)*tV(e))}function aK(t,e){return Cht(eV(t)*tV(t),eV(e)*tV(e))}function rK(t,e){return Cht(t.d.c+t.d.b/2,e.d.c+e.d.b/2)}function oK(t,e){return Cht(t.g.c+t.g.b/2,e.g.c+e.g.b/2)}function sK(t,e,n){n.a?Snt(t,e.b-t.f/2):Cnt(t,e.a-t.g/2)}function cK(t,e,n,i){this.a=t,this.b=e,this.c=n,this.d=i}function lK(t,e,n,i){this.a=t,this.b=e,this.c=n,this.d=i}function uK(t,e,n,i){this.e=t,this.a=e,this.c=n,this.d=i}function dK(t,e,n,i){this.a=t,this.c=e,this.d=n,this.b=i}function hK(t,e,n,i){lL(),t7.call(this,e,n,i),this.a=t}function fK(t,e,n,i){lL(),t7.call(this,e,n,i),this.a=t}function gK(t,e){this.a=t,TB.call(this,t,jz(t.d,15).Zc(e))}function pK(t){this.f=t,this.c=this.f.e,t.f>0&&oRt(this)}function bK(t,e,n,i){this.b=t,this.c=i,bD.call(this,e,n)}function mK(t){return EN(t.b<t.d.gc()),t.d.Xb(t.c=t.b++)}function yK(t){t.a.a=t.c,t.c.b=t.a,t.a.b=t.c.a=null,t.b=0}function vK(t,e){return t.b=e.b,t.c=e.c,t.d=e.d,t.a=e.a,t}function wK(t){return t.n&&(t.e!==jZt&&t._d(),t.j=null),t}function xK(t){return KH(null==t||MW(t)&&t.im!==A),t}function RK(t){this.b=new Lm,pst(this.b,this.b),this.a=t}function _K(){_K=D,kre=new Lm,_re=new Om,Rre=new Lm}function kK(){kK=D,cne=new C,lne=new T,une=new E}function EK(){EK=D,hne=new P,fne=new P,gne=new F}function CK(){CK=D,lie=new pt,die=new NV,uie=new bt}function SK(){256==aie&&(eie=nie,nie=new a,aie=0),++aie}function TK(t){return t.f||(t.f=new pk(t,t.c))}function AK(t){return ZAt(t)&&zw(RB(JIt(t,(zYt(),fbe))))}function DK(t,e){return XAt(t,jz(yEt(e,(zYt(),Wbe)),19),e)}function IK(t,e){return _dt(t.j,e.s,e.c)+_dt(e.e,t.s,t.c)}function LK(t,e){t.e&&!t.e.a&&(Fm(t.e,e),LK(t.e,e))}function OK(t,e){t.d&&!t.d.a&&(Fm(t.d,e),OK(t.d,e))}function MK(t,e){return-Cht(eV(t)*tV(t),eV(e)*tV(e))}function NK(t){return jz(t.cd(),146).tg()+":"+$ft(t.dd())}function BK(t){var e;Hj(),(e=jz(t.g,10)).n.a=t.d.c+e.d.b}function PK(t,e,n){return _E(),Mft(jz(NY(t.e,e),522),n)}function FK(t,e){return tlt(t),tlt(e),Ew(jz(t,22),jz(e,22))}function jK(t,e,n){t.i=0,t.e=0,e!=n&&Wct(t,e,n)}function $K(t,e,n){t.i=0,t.e=0,e!=n&&Yct(t,e,n)}function zK(t,e,n){net(t,e,new _h(qF(n)))}function HK(t,e,n,i,a,r){w8.call(this,t,e,n,i,a,r?-2:-1)}function UK(t,e,n,i){IA.call(this,e,n),this.b=t,this.a=i}function VK(t,e){new Zk,this.a=new vv,this.b=t,this.c=e}function qK(t,e){return jz(yEt(t,(lGt(),ihe)),15).Fc(e),e}function WK(t,e){if(null==t)throw $m(new $w(e));return t}function YK(t){return!t.q&&(t.q=new tW(YIe,t,11,10)),t.q}function GK(t){return!t.s&&(t.s=new tW(PIe,t,21,17)),t.s}function ZK(t){return!t.a&&(t.a=new tW(UDe,t,10,11)),t.a}function KK(t){return iO(t,14)?new DU(jz(t,14)):zz(t.Kc())}function XK(t){return new zO(t,t.e.Hd().gc()*t.c.Hd().gc())}function JK(t){return new HO(t,t.e.Hd().gc()*t.c.Hd().gc())}function QK(t){return t&&t.hashCode?t.hashCode():EM(t)}function tX(t,e){return null==e?!!AX(t.f,null):_V(t.g,e)}function eX(t){return yY(t),evt(new oq(XO(t.a.Kc(),new u)))}function nX(t){return kK(),iO(t,54)?new Dx(t):new dM(t)}function iX(t,e,n){return!!t.f&&t.f.Ne(e,n)}function aX(t,e){return t.a=lN(t.a,0,e)+""+JA(t.a,e+1),t}function rX(t,e){var n;return(n=tO(t.a,e))&&(e.d=null),n}function oX(t){var e,n;e=0|(n=t).$modCount,n.$modCount=e+1}function sX(t){this.b=t,this.c=t,t.e=null,t.c=null,this.a=1}function cX(t){this.b=t,this.a=new f_(jz(yY(new te),62))}function lX(t){this.c=t,this.b=new f_(jz(yY(new mt),62))}function uX(t){this.c=t,this.b=new f_(jz(yY(new Te),62))}function dX(){this.a=new Gy,this.b=new cv,this.d=new Ne}function hX(){this.a=new vv,this.b=(dit(3,DZt),new K7(3))}function fX(){this.b=new Ny,this.d=new Zk,this.e=new ov}function gX(t){this.c=t.c,this.d=t.d,this.b=t.b,this.a=t.a}function pX(t,e){Uv.call(this,new Wq(t)),this.a=t,this.b=e}function bX(){nCt(this,new Md),this.wb=(GY(),JIe),e_()}function mX(t){Akt(t,"No crossing minimization",1),zCt(t)}function yX(t){Mx(),i.setTimeout((function(){throw t}),0)}function vX(t){return t.u||(E6(t),t.u=new rP(t,t)),t.u}function wX(t){return jz(vot(t,16),26)||t.zh()}function xX(t,e){return iO(e,146)&&mF(t.b,jz(e,146).tg())}function RX(t,e){return t.a?e.Wg().Kc():jz(e.Wg(),69).Zh()}function _X(t){return t.k==(oCt(),Sse)&&IN(t,(lGt(),Ude))}function kX(t){this.a=(kK(),iO(t,54)?new Dx(t):new dM(t))}function EX(){var t,e;EX=D,e=!Npt(),t=new p,eee=e?new _:t}function CX(t,e){var n;return n=JR(t.gm),null==e?n:n+": "+e}function SX(t,e){var n;return w3(n=t.b.Qc(e),t.b.gc()),n}function TX(t,e){if(null==t)throw $m(new $w(e));return t}function AX(t,e){return lut(t,e,pQ(t,null==e?0:t.b.se(e)))}function DX(t,e,n){return n>=0&&mF(t.substr(n,e.length),e)}function IX(t,e,n,i,a,r,o){return new d3(t.e,e,n,i,a,r,o)}function LX(t,e,n,i,a,r){this.a=t,wit.call(this,e,n,i,a,r)}function OX(t,e,n,i,a,r){this.a=t,wit.call(this,e,n,i,a,r)}function MX(t,e){this.g=t,this.d=Cst(Hx(Rse,1),r1t,10,0,[e])}function NX(t,e){this.e=t,this.a=Dte,this.b=DPt(e),this.c=e}function BX(t,e){LP.call(this),Met(this),this.a=t,this.c=e}function PX(t,e,n,i){DY(t.c[e.g],n.g,i),DY(t.c[n.g],e.g,i)}function FX(t,e,n,i){DY(t.c[e.g],e.g,n),DY(t.b[e.g],e.g,i)}function jX(){return A7(),Cst(Hx(tve,1),IZt,376,0,[Jye,Xye])}function $X(){return g9(),Cst(Hx(que,1),IZt,479,0,[Uue,Hue])}function zX(){return Ptt(),Cst(Hx(Tue,1),IZt,419,0,[Eue,Cue])}function HX(){return Y5(),Cst(Hx(sue,1),IZt,422,0,[aue,rue])}function UX(){return U2(),Cst(Hx(Phe,1),IZt,420,0,[Dde,Ide])}function VX(){return V9(),Cst(Hx($ye,1),IZt,421,0,[Pye,Fye])}function qX(){return G3(),Cst(Hx(Yve,1),IZt,523,0,[zve,$ve])}function WX(){return T7(),Cst(Hx(Iwe,1),IZt,520,0,[kwe,_we])}function YX(){return gJ(),Cst(Hx(nwe,1),IZt,516,0,[twe,Qve])}function GX(){return oQ(),Cst(Hx(Rwe,1),IZt,515,0,[iwe,awe])}function ZX(){return fJ(),Cst(Hx(Nwe,1),IZt,455,0,[Lwe,Owe])}function KX(){return j0(),Cst(Hx(Gxe,1),IZt,425,0,[zxe,$xe])}function XX(){return sQ(),Cst(Hx(jxe,1),IZt,480,0,[Bxe,Pxe])}function JX(){return Cat(),Cst(Hx(Jxe,1),IZt,495,0,[Zxe,Kxe])}function QX(){return M8(),Cst(Hx(sRe,1),IZt,426,0,[aRe,rRe])}function tJ(){return Lst(),Cst(Hx(Zke,1),IZt,429,0,[Yke,Wke])}function eJ(){return D7(),Cst(Hx(eke,1),IZt,430,0,[Q_e,J_e])}function nJ(){return lmt(),Cst(Hx(bie,1),IZt,428,0,[gie,fie])}function iJ(){return Ntt(),Cst(Hx(Sie,1),IZt,427,0,[mie,yie])}function aJ(){return Btt(),Cst(Hx(Soe,1),IZt,424,0,[Nre,Bre])}function rJ(){return Eat(),Cst(Hx(Wse,1),IZt,511,0,[Hse,zse])}function oJ(t,e,n,i){return n>=0?t.jh(e,n,i):t.Sg(null,n,i)}function sJ(t){return 0==t.b.b?t.a.$e():fH(t.b)}function cJ(t){if(5!=t.p)throw $m(new fy);return fV(t.f)}function lJ(t){if(5!=t.p)throw $m(new fy);return fV(t.k)}function uJ(t){return HA(t.a)===HA((frt(),CLe))&&BUt(t),t.a}function dJ(t){this.a=jz(yY(t),271),this.b=(kK(),new fM(t))}function hJ(t,e){Kh(this,new OT(t.a,t.b)),Xh(this,Uz(e))}function fJ(){fJ=D,Lwe=new oT(aJt,0),Owe=new oT(rJt,1)}function gJ(){gJ=D,twe=new iT(rJt,0),Qve=new iT(aJt,1)}function pJ(){aw.call(this,new qk(tet(12))),aM(!0),this.a=2}function bJ(t,e,n){fGt(),Am.call(this,t),this.b=e,this.a=n}function mJ(t,e,n){lL(),wm.call(this,e),this.a=t,this.b=n}function yJ(t){LP.call(this),Met(this),this.a=t,this.c=!0}function vJ(t){var e;e=t.c.d.b,t.b=e,t.a=t.c.d,e.a=t.c.d.b=t}function wJ(t){bit(t.a),NI(t.a),tgt(new Eg(t.a))}function xJ(t,e){sPt(t,!0),Aet(t.e.wf(),new Dj(t,!0,e))}function RJ(t,e){return i3(e),Knt(t,O5(TMe,lKt,25,e,15,1),e)}function _J(t,e){return _K(),t==KJ(CEt(e))||t==KJ(AEt(e))}function kJ(t,e){return null==e?zA(AX(t.f,null)):cC(t.g,e)}function EJ(t){return 0==t.b?null:(EN(0!=t.b),Det(t,t.a.a))}function CJ(t){return 0|Math.max(Math.min(t,NGt),-2147483648)}function SJ(t,e){return Jte[t.charCodeAt(0)]??t}function TJ(t,e){return WK(t,"set1"),WK(e,"set2"),new xk(t,e)}function AJ(t,e){return VP(zN(Qet(t.f,e)),t.f.d)}function DJ(t,e){var n;return KVt(t,e,n=new U),n.d}function IJ(t,e,n,i){var a;a=new FP,e.a[n.g]=a,mV(t.b,i,a)}function LJ(t,e,n){var i;(i=t.Yg(e))>=0?t.sh(i,n):_Ot(t,e,n)}function OJ(t,e,n){cQ(),t&&YG(cIe,t,e),t&&YG(sIe,t,n)}function MJ(t,e,n){this.i=new Lm,this.b=t,this.g=e,this.a=n}function NJ(t,e,n){this.c=new Lm,this.e=t,this.f=e,this.b=n}function BJ(t,e,n){this.a=new Lm,this.e=t,this.f=e,this.c=n}function PJ(t,e){YL(this),this.f=e,this.g=t,wK(this),this._d()}function FJ(t,e){var n;n=t.q.getHours(),t.q.setDate(e),dzt(t,n)}function jJ(t,e){var n;for(yY(e),n=t.a;n;n=n.c)e.Od(n.g,n.i)}function $J(t){var e;return Ict(e=new d_(tet(t.length)),t),e}function zJ(t){function e(){}return e.prototype=t||{},new e}function HJ(t,e){return!!fst(t,e)&&(eit(t),!0)}function UJ(t,e){if(null==e)throw $m(new gy);return obt(t,e)}function VJ(t){if(t.qe())return null;var e=t.n;return EGt[e]}function qJ(t){return t.Db>>16!=3?null:jz(t.Cb,33)}function WJ(t){return t.Db>>16!=9?null:jz(t.Cb,33)}function YJ(t){return t.Db>>16!=6?null:jz(t.Cb,79)}function GJ(t){return t.Db>>16!=7?null:jz(t.Cb,235)}function ZJ(t){return t.Db>>16!=7?null:jz(t.Cb,160)}function KJ(t){return t.Db>>16!=11?null:jz(t.Cb,33)}function XJ(t,e){var n;return(n=t.Yg(e))>=0?t.lh(n):HAt(t,e)}function JJ(t,e){var n;return sEt(n=new IU(e),t),new QF(n)}function QJ(t){var e;return e=t.d,e=t.si(t.f),l8(t,e),e.Ob()}function tQ(t,e){return t.b+=e.b,t.c+=e.c,t.d+=e.d,t.a+=e.a,t}function eQ(t,e){return i.Math.abs(t)<i.Math.abs(e)?t:e}function nQ(t){return!t.a&&(t.a=new tW(UDe,t,10,11)),t.a.i>0}function iQ(){this.a=new lI,this.e=new Ny,this.g=0,this.i=0}function aQ(t){this.a=t,this.b=O5(Pve,cZt,1944,t.e.length,0,2)}function rQ(t,e,n){var i;i=Oct(t,e,n),t.b=new yat(i.c.length)}function oQ(){oQ=D,iwe=new nT(bJt,0),awe=new nT("UP",1)}function sQ(){sQ=D,Bxe=new dT(q4t,0),Pxe=new dT("FAN",1)}function cQ(){cQ=D,cIe=new Om,sIe=new Om,FA(yne,new pc)}function lQ(t){if(0!=t.p)throw $m(new fy);return KA(t.f,0)}function uQ(t){if(0!=t.p)throw $m(new fy);return KA(t.k,0)}function dQ(t){return t.Db>>16!=3?null:jz(t.Cb,147)}function hQ(t){return t.Db>>16!=6?null:jz(t.Cb,235)}function fQ(t){return t.Db>>16!=17?null:jz(t.Cb,26)}function gQ(t,e){var n=t.a=t.a||[];return n[e]||(n[e]=t.le(e))}function pQ(t,e){return t.a.get(e)??new Array}function bQ(t,e){var n;n=t.q.getHours(),t.q.setMonth(e),dzt(t,n)}function mQ(t,e,n){return null==e?xTt(t.f,null,n):oft(t.g,e,n)}function yQ(t,e,n,i,a,r){return new L9(t.e,e,t.aj(),n,i,a,r)}function vQ(t,e,n){return t.a=lN(t.a,0,e)+""+n+JA(t.a,e),t}function wQ(t,e,n){return Wz(t.a,(JG(),Vyt(e,n),new bk(e,n))),t}function xQ(t){return oM(t.c),t.e=t.a=t.c,t.c=t.c.c,++t.d,t.a.f}function RQ(t){return oM(t.e),t.c=t.a=t.e,t.e=t.e.e,--t.d,t.a.f}function _Q(t,e){t.d&&y9(t.d.e,t),t.d=e,t.d&&Wz(t.d.e,t)}function kQ(t,e){t.c&&y9(t.c.g,t),t.c=e,t.c&&Wz(t.c.g,t)}function EQ(t,e){t.c&&y9(t.c.a,t),t.c=e,t.c&&Wz(t.c.a,t)}function CQ(t,e){t.i&&y9(t.i.j,t),t.i=e,t.i&&Wz(t.i.j,t)}function SQ(t,e,n){this.a=e,this.c=t,this.b=(yY(n),new QF(n))}function TQ(t,e,n){this.a=e,this.c=t,this.b=(yY(n),new QF(n))}function AQ(t,e){this.a=t,this.c=jL(this.a),this.b=new gX(e)}function DQ(t){return Zht(t),AZ(t,new bg(new Ny))}function IQ(t,e){if(t<0||t>e)throw $m(new Aw(xXt+t+RXt+e))}function LQ(t,e){return SV(t.a,e)?xW(t,jz(e,22).g,null):null}function OQ(t){return Eut(),cM(),0!=jz(t.a,81).d.e}function MQ(){MQ=D,Wte=dut((nw(),Cst(Hx(Yte,1),IZt,538,0,[qte])))}function NQ(){NQ=D,pve=WV(new j2,(vEt(),$oe),(dGt(),Hce))}function BQ(){BQ=D,bve=WV(new j2,(vEt(),$oe),(dGt(),Hce))}function PQ(){PQ=D,yve=WV(new j2,(vEt(),$oe),(dGt(),Hce))}function FQ(){FQ=D,Uve=fU(new j2,(vEt(),$oe),(dGt(),gce))}function jQ(){jQ=D,Gve=fU(new j2,(vEt(),$oe),(dGt(),gce))}function $Q(){$Q=D,Xve=fU(new j2,(vEt(),$oe),(dGt(),gce))}function zQ(){zQ=D,owe=fU(new j2,(vEt(),$oe),(dGt(),gce))}function HQ(){HQ=D,Uxe=WV(new j2,(Vwt(),jwe),(NSt(),Vwe))}function UQ(t,e,n,i){this.c=t,this.d=i,WQ(this,e),YQ(this,n)}function VQ(t){this.c=new Zk,this.b=t.b,this.d=t.c,this.a=t.a}function qQ(t){this.a=i.Math.cos(t),this.b=i.Math.sin(t)}function WQ(t,e){t.a&&y9(t.a.k,t),t.a=e,t.a&&Wz(t.a.k,t)}function YQ(t,e){t.b&&y9(t.b.f,t),t.b=e,t.b&&Wz(t.b.f,t)}function GQ(t,e){eG(t,t.b,t.c),jz(t.b.b,65),e&&jz(e.b,65).b}function ZQ(t,e){Vht(t,e),iO(t.Cb,88)&&DTt(E6(jz(t.Cb,88)),2)}function KQ(t,e){iO(t.Cb,88)&&DTt(E6(jz(t.Cb,88)),4),Oat(t,e)}function XQ(t,e){iO(t.Cb,179)&&(jz(t.Cb,179).tb=null),Oat(t,e)}function JQ(t,e){return XE(),ctt(e)?new uU(e,t):new OA(e,t)}function QQ(t,e){null!=e.c&&JY(t,new HY(e.c))}function t1(t){var e;return e_(),ant(e=new Bm,t),e}function e1(t){var e;return e_(),ant(e=new Bm,t),e}function n1(t,e){var n;return n=new $Y(t),e.c[e.c.length]=n,n}function i1(t,e){var n;return(n=jz(ddt(TK(t.a),e),14))?n.gc():0}function a1(t){return Zht(t),EK(),EK(),vet(t,fne)}function r1(t){for(var e;;)if(e=t.Pb(),!t.Ob())return e}function o1(t,e){Vv.call(this,new qk(tet(t))),dit(e,sZt),this.a=e}function s1(t,e,n){zdt(e,n,t.gc()),this.c=t,this.a=e,this.b=n-e}function c1(t,e,n){var i;zdt(e,n,t.c.length),i=n-e,E_(t.c,e,i)}function l1(t,e){cO(t,fV(t0(vq(e,24),cXt)),fV(t0(e,cXt)))}function u1(t,e){if(t<0||t>=e)throw $m(new Aw(xXt+t+RXt+e))}function d1(t,e){if(t<0||t>=e)throw $m(new Tx(xXt+t+RXt+e))}function h1(t,e){this.b=(vG(t),t),this.a=e&FKt?e:64|e|lZt}function f1(t){MI(this),Ey(this.a,wct(i.Math.max(8,t))<<1)}function g1(t){return Dct(Cst(Hx(EEe,1),cZt,8,0,[t.i.n,t.n,t.a]))}function p1(){return Hlt(),Cst(Hx(Jne,1),IZt,132,0,[Gne,Zne,Kne])}function b1(){return Net(),Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])}function m1(){return K8(),Cst(Hx(tae,1),IZt,461,0,[Xie,Kie,Jie])}function y1(){return H9(),Cst(Hx(oae,1),IZt,462,0,[aae,iae,nae])}function v1(){return $dt(),Cst(Hx(mse,1),IZt,423,0,[fse,hse,dse])}function w1(){return z9(),Cst(Hx(Noe,1),IZt,379,0,[Aoe,Toe,Doe])}function x1(){return kut(),Cst(Hx(cye,1),IZt,378,0,[aye,rye,oye])}function R1(){return Ait(),Cst(Hx(hue,1),IZt,314,0,[lue,cue,uue])}function _1(){return oit(),Cst(Hx(mue,1),IZt,337,0,[fue,pue,gue])}function k1(){return Xst(),Cst(Hx(Oue,1),IZt,450,0,[Due,Aue,Iue])}function E1(){return Sat(),Cst(Hx(Fle,1),IZt,361,0,[Ble,Nle,Mle])}function C1(){return U9(),Cst(Hx(Ade,1),IZt,303,0,[Cde,Sde,Ede])}function S1(){return Pot(),Cst(Hx(kde,1),IZt,292,0,[xde,Rde,wde])}function T1(){return rit(),Cst(Hx(qye,1),IZt,452,0,[Uye,zye,Hye])}function A1(){return yct(),Cst(Hx(Bye,1),IZt,339,0,[Oye,Lye,Mye])}function D1(){return zrt(),Cst(Hx(Kye,1),IZt,375,0,[Wye,Yye,Gye])}function I1(){return Ist(),Cst(Hx(kve,1),IZt,377,0,[hve,fve,dve])}function L1(){return qlt(),Cst(Hx(rve,1),IZt,336,0,[eve,nve,ive])}function O1(){return grt(),Cst(Hx(uve,1),IZt,338,0,[cve,ove,sve])}function M1(){return sit(),Cst(Hx(Ove,1),IZt,454,0,[Ave,Dve,Ive])}function N1(){return Sft(),Cst(Hx(iRe,1),IZt,442,0,[eRe,Qxe,tRe])}function B1(){return zlt(),Cst(Hx(FRe,1),IZt,380,0,[cRe,lRe,uRe])}function P1(){return Eft(),Cst(Hx(L_e,1),IZt,381,0,[JRe,QRe,XRe])}function F1(){return $rt(),Cst(Hx(ZRe,1),IZt,293,0,[WRe,YRe,qRe])}function j1(){return Cft(),Cst(Hx(q_e,1),IZt,437,0,[z_e,H_e,U_e])}function $1(){return odt(),Cst(Hx(wTe,1),IZt,334,0,[mTe,bTe,yTe])}function z1(){return Bet(),Cst(Hx(GSe,1),IZt,272,0,[VSe,qSe,WSe])}function H1(t,e){return wLt(t,e,iO(e,99)&&0!=(jz(e,18).Bb&$Kt))}function U1(t,e,n){var i;return(i=aHt(t,e,!1)).b<=e&&i.a<=n}function V1(t,e,n){var i;(i=new ro).b=e,i.a=n,++e.b,Wz(t.d,i)}function q1(t,e){var n;return RN(!!(n=(vG(t),t).g)),vG(e),n(e)}function W1(t,e){var n,i;return i=pW(t,e),n=t.a.Zc(i),new vk(t,n)}function Y1(t){return t.Db>>16!=6?null:jz(aIt(t),235)}function G1(t){if(2!=t.p)throw $m(new fy);return fV(t.f)&ZZt}function Z1(t){if(2!=t.p)throw $m(new fy);return fV(t.k)&ZZt}function K1(t){return t.a==(N6(),QLe)&&ff(t,eOt(t.g,t.b)),t.a}function X1(t){return t.d==(N6(),QLe)&&pf(t,OFt(t.g,t.b)),t.d}function J1(t){return EN(t.a<t.c.c.length),t.b=t.a++,t.c.c[t.b]}function Q1(t,e){t.b=t.b|e.b,t.c=t.c|e.c,t.d=t.d|e.d,t.a=t.a|e.a}function t0(t,e){return oot(kq(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function e0(t,e){return oot(Eq(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function n0(t,e){return oot(Cq(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function i0(t){return ift(yq(uot(zLt(t,32)),32),uot(zLt(t,32)))}function a0(t){return yY(t),iO(t,14)?new QF(jz(t,14)):$z(t.Kc())}function r0(t,e){return Mtt(),t.c==e.c?Cht(e.d,t.d):Cht(t.c,e.c)}function o0(t,e){return Mtt(),t.c==e.c?Cht(t.d,e.d):Cht(t.c,e.c)}function s0(t,e){return Mtt(),t.c==e.c?Cht(t.d,e.d):Cht(e.c,t.c)}function c0(t,e){return Mtt(),t.c==e.c?Cht(e.d,t.d):Cht(e.c,t.c)}function l0(t,e){var n;n=Hw(_B(t.a.We((cGt(),TSe)))),GWt(t,e,n)}function u0(t,e){var n;n=jz(NY(t.g,e),57),Aet(e.d,new oS(t,n))}function d0(t,e){var n,i;return(n=swt(t))<(i=swt(e))?-1:n>i?1:0}function h0(t,e){var n;return n=k9(e),jz(NY(t.c,n),19).a}function f0(t,e){var n;for(n=t+"";n.length<e;)n="0"+n;return n}function g0(t){return null==t.c||0==t.c.length?"n_"+t.g:"n_"+t.c}function p0(t){return null==t.c||0==t.c.length?"n_"+t.b:"n_"+t.c}function b0(t,e){return t&&t.equals?t.equals(e):HA(t)===HA(e)}function m0(t,e){return 0==e?!!t.o&&0!=t.o.f:mmt(t,e)}function y0(t,e,n){var i;t.n&&e&&n&&(i=new tc,Wz(t.e,i))}function v0(t,e,n){var i;i=t.d[e.p],t.d[e.p]=t.d[n.p],t.d[n.p]=i}function w0(t,e,n){this.d=t,this.j=e,this.e=n,this.o=-1,this.p=3}function x0(t,e,n){this.d=t,this.k=e,this.f=n,this.o=-1,this.p=5}function R0(t,e,n){Am.call(this,25),this.b=t,this.a=e,this.c=n}function _0(t){fGt(),Am.call(this,t),this.c=!1,this.a=!1}function k0(t,e,n,i,a,r){znt.call(this,t,e,n,i,a),r&&(this.o=-2)}function E0(t,e,n,i,a,r){Hnt.call(this,t,e,n,i,a),r&&(this.o=-2)}function C0(t,e,n,i,a,r){K6.call(this,t,e,n,i,a),r&&(this.o=-2)}function S0(t,e,n,i,a,r){qnt.call(this,t,e,n,i,a),r&&(this.o=-2)}function T0(t,e,n,i,a,r){X6.call(this,t,e,n,i,a),r&&(this.o=-2)}function A0(t,e,n,i,a,r){Unt.call(this,t,e,n,i,a),r&&(this.o=-2)}function D0(t,e,n,i,a,r){Vnt.call(this,t,e,n,i,a),r&&(this.o=-2)}function I0(t,e,n,i,a,r){J6.call(this,t,e,n,i,a),r&&(this.o=-2)}function L0(t,e,n,i){wm.call(this,n),this.b=t,this.c=e,this.d=i}function O0(t,e){this.a=new Lm,this.d=new Lm,this.f=t,this.c=e}function M0(){this.c=new DL,this.a=new dX,this.b=new tv,dE()}function N0(){Ost(),this.b=new Om,this.a=new Om,this.c=new Lm}function B0(t,e){this.g=t,this.d=(N6(),QLe),this.a=QLe,this.b=e}function P0(t,e){this.f=t,this.a=(N6(),JLe),this.c=JLe,this.b=e}function F0(t,e){!t.c&&(t.c=new Rrt(t,0)),kHt(t.c,(qUt(),DOe),e)}function j0(){j0=D,zxe=new hT("DFS",0),$xe=new hT("BFS",1)}function $0(t,e,n){var i;return!!(i=jz(t.Zb().xc(e),14))&&i.Hc(n)}function z0(t,e,n){var i;return!!(i=jz(t.Zb().xc(e),14))&&i.Mc(n)}function H0(t,e,n,i){return t.a+=""+lN(null==e?VGt:$ft(e),n,i),t}function U0(t,e,n,i,a,r){return Brt(t,e,n,r),Xdt(t,i),tht(t,a),t}function V0(t){return EN(t.b.b!=t.d.a),t.c=t.b=t.b.b,--t.a,t.c.c}function q0(t){for(;t.d>0&&0==t.a[--t.d];);0==t.a[t.d++]&&(t.e=0)}function W0(t){return t.a?0==t.e.length?t.a.a:t.a.a+""+t.e:t.c}function Y0(t){return!(!t.a||0==$9(t.a.a).i||t.b&&Pyt(t.b))}function G0(t){return!(!t.u||0==a3(t.u.a).i||t.n&&Byt(t.n))}function Z0(t){return yU(t.e.Hd().gc()*t.c.Hd().gc(),16,new Hd(t))}function K0(t,e){return FW(uot(t.q.getTime()),uot(e.q.getTime()))}function X0(t){return jz(Zbt(t,O5(yse,a1t,17,t.c.length,0,1)),474)}function J0(t){return jz(Zbt(t,O5(Rse,r1t,10,t.c.length,0,1)),193)}function Q0(t){return jQ(),!(d6(t)||!d6(t)&&t.c.i.c==t.d.i.c)}function t2(t,e,n){yY(t),Mwt(new SQ(new QF(t),e,n))}function e2(t,e,n){yY(t),Nwt(new TQ(new QF(t),e,n))}function n2(t,e){var n;return n=1-e,t.a[n]=fat(t.a[n],n),fat(t,e)}function i2(t,e){var n;t.e=new Kv,mL(n=fBt(e),t.c),TBt(t,n,0)}function a2(t,e,n,i){var a;(a=new vs).a=e,a.b=n,a.c=i,MH(t.a,a)}function r2(t,e,n,i){var a;(a=new vs).a=e,a.b=n,a.c=i,MH(t.b,a)}function o2(t){var e,n;return n=tjt(e=new uY,t),vqt(e),n}function s2(){var t,e;return t=new Bm,Wz(WLe,e=t),e}function c2(t){return t.j.c=O5(Dte,zGt,1,0,5,1),RZ(t.c),gZ(t.a),t}function l2(t){return _E(),iO(t.g,10)?jz(t.g,10):null}function u2(t){return!xZ(t).dc()&&(IL(t,new v),!0)}function d2(t){if(!("stack"in t))try{throw t}catch{}return t}function h2(t,e){if(t<0||t>=e)throw $m(new Aw(LTt(t,e)));return t}function f2(t,e,n){if(t<0||e<t||e>n)throw $m(new Aw(sSt(t,e,n)))}function g2(t,e){if(RW(t.a,e),e.d)throw $m(new fw(TXt));e.d=t}function p2(t,e){if(e.$modCount!=t.$modCount)throw $m(new by)}function b2(t,e){return!!iO(e,42)&&kvt(t.a,jz(e,42))}function m2(t,e){return!!iO(e,42)&&kvt(t.a,jz(e,42))}function y2(t,e){return!!iO(e,42)&&kvt(t.a,jz(e,42))}function v2(t,e){return t.a<=t.b&&(e.ud(t.a++),!0)}function w2(t){var e;return KD(t)?-0==(e=t)?0:e:ptt(t)}function x2(t){var e;return xG(t),e=new $,g_(t.a,new gg(e)),e}function R2(t){var e;return xG(t),e=new j,g_(t.a,new fg(e)),e}function _2(t,e){this.a=t,kf.call(this,t),IQ(e,t.gc()),this.b=e}function k2(t){this.e=t,this.b=this.e.a.entries(),this.a=new Array}function E2(t){return yU(t.e.Hd().gc()*t.c.Hd().gc(),273,new zd(t))}function C2(t){return new K7((dit(t,OZt),Qtt(ift(ift(5,t),t/10|0))))}function S2(t){return jz(Zbt(t,O5($se,o1t,11,t.c.length,0,1)),1943)}function T2(t,e,n){return n.f.c.length>0?jW(t.a,e,n):jW(t.b,e,n)}function A2(t,e,n){t.d&&y9(t.d.e,t),t.d=e,t.d&&vV(t.d.e,n,t)}function D2(t,e){mYt(e,t),aH(t.d),aH(jz(yEt(t,(zYt(),Abe)),207))}function I2(t,e){bYt(e,t),iH(t.d),iH(jz(yEt(t,(zYt(),Abe)),207))}function L2(t,e){var n,i;return i=null,(n=UJ(t,e))&&(i=n.fe()),i}function O2(t,e){var n,i;return i=null,(n=ftt(t,e))&&(i=n.ie()),i}function M2(t,e){var n,i;return i=null,(n=UJ(t,e))&&(i=n.ie()),i}function N2(t,e){var n,i;return i=null,(n=UJ(t,e))&&(i=vSt(n)),i}function B2(t,e,n){var i;return i=Zpt(n),fFt(t.g,i,e),fFt(t.i,e,n),e}function P2(t,e,n){var i;i=Lpt();try{return fP(t,e,n)}finally{y4(i)}}function F2(t){var e;e=t.Wg(),this.a=iO(e,69)?jz(e,69).Zh():e.Kc()}function j2(){Zv.call(this),this.j.c=O5(Dte,zGt,1,0,5,1),this.a=-1}function $2(t,e,n,i){this.d=t,this.n=e,this.g=n,this.o=i,this.p=-1}function z2(t,e,n,i){this.e=i,this.d=null,this.c=t,this.a=e,this.b=n}function H2(t,e,n){this.d=new Fp(this),this.e=t,this.i=e,this.f=n}function U2(){U2=D,Dde=new MS(eJt,0),Ide=new MS("TOP_LEFT",1)}function V2(){V2=D,Rve=KG(nht(1),nht(4)),xve=KG(nht(1),nht(2))}function q2(){q2=D,K_e=dut((SE(),Cst(Hx(X_e,1),IZt,551,0,[Z_e])))}function W2(){W2=D,Y_e=dut((CE(),Cst(Hx(G_e,1),IZt,482,0,[W_e])))}function Y2(){Y2=D,Vke=dut((TE(),Cst(Hx(qke,1),IZt,530,0,[Uke])))}function G2(){G2=D,are=dut((hE(),Cst(Hx(Ere,1),IZt,481,0,[ire])))}function Z2(){return Not(),Cst(Hx(Fae,1),IZt,406,0,[Bae,Oae,Mae,Nae])}function K2(){return X8(),Cst(Hx(Fne,1),IZt,297,0,[One,Mne,Nne,Bne])}function X2(){return Hmt(),Cst(Hx(nre,1),IZt,394,0,[Jae,Xae,Qae,tre])}function J2(){return zmt(),Cst(Hx(Vae,1),IZt,323,0,[$ae,jae,zae,Hae])}function Q2(){return Dst(),Cst(Hx(use,1),IZt,405,0,[Joe,ese,Qoe,tse])}function t4(){return Tst(),Cst(Hx(ple,1),IZt,360,0,[rle,ile,ale,nle])}function e4(t,e,n,i){return iO(n,54)?new TN(t,e,n,i):new sq(t,e,n,i)}function n4(){return Ast(),Cst(Hx(Rle,1),IZt,411,0,[mle,yle,vle,wle])}function i4(t){return t.j==(wWt(),EAe)&&kM(qDt(t),sAe)}function a4(t,e){var n;kQ(n=e.a,e.c.d),_Q(n,e.d.d),Jet(n.a,t.n)}function r4(t,e){return jz(DM(Sq(jz(c7(t.k,e),15).Oc(),Gle)),113)}function o4(t,e){return jz(DM(Tq(jz(c7(t.k,e),15).Oc(),Gle)),113)}function s4(t){return new h1(trt(jz(t.a.dd(),14).gc(),t.a.cd()),16)}function c4(t){return iO(t,14)?jz(t,14).dc():!t.Kc().Ob()}function l4(t){return _E(),iO(t.g,145)?jz(t.g,145):null}function u4(t){if(t.e.g!=t.b)throw $m(new by);return!!t.c&&t.d>0}function d4(t){return EN(t.b!=t.d.c),t.c=t.b,t.b=t.b.a,++t.a,t.c.c}function h4(t,e){vG(e),DY(t.a,t.c,e),t.c=t.c+1&t.a.length-1,fwt(t)}function f4(t,e){vG(e),t.b=t.b-1&t.a.length-1,DY(t.a,t.b,e),fwt(t)}function g4(t,e){var n;for(n=t.j.c.length;n<e;n++)Wz(t.j,t.rg())}function p4(t,e,n,i){var a;return a=i[e.g][n.g],Hw(_B(yEt(t.a,a)))}function b4(t,e,n,i,a){this.i=t,this.a=e,this.e=n,this.j=i,this.f=a}function m4(t,e,n,i,a){this.a=t,this.e=e,this.f=n,this.b=i,this.g=a}function y4(t){t&&Stt((sx(),tee)),--aee,t&&-1!=oee&&(eC(oee),oee=-1)}function v4(){return hyt(),Cst(Hx(gye,1),IZt,197,0,[dye,hye,uye,lye])}function w4(){return Vwt(),Cst(Hx(zwe,1),IZt,393,0,[Bwe,Pwe,Fwe,jwe])}function x4(){return Avt(),Cst(Hx(VRe,1),IZt,340,0,[HRe,$Re,zRe,jRe])}function R4(){return ypt(),Cst(Hx($Ae,1),IZt,374,0,[PAe,FAe,BAe,NAe])}function _4(){return Wwt(),Cst(Hx(CTe,1),IZt,285,0,[kTe,xTe,RTe,_Te])}function k4(){return kft(),Cst(Hx(tTe,1),IZt,218,0,[JSe,KSe,ZSe,XSe])}function E4(){return jgt(),Cst(Hx(iDe,1),IZt,311,0,[eDe,JAe,tDe,QAe])}function C4(){return $lt(),Cst(Hx(hDe,1),IZt,396,0,[oDe,sDe,rDe,cDe])}function S4(t){return cQ(),cW(cIe,t)?jz(NY(cIe,t),331).ug():null}function T4(t,e,n){return e<0?HAt(t,n):jz(n,66).Nj().Sj(t,t.yh(),e)}function A4(t,e,n){var i;return i=Zpt(n),fFt(t.d,i,e),YG(t.e,e,n),e}function D4(t,e,n){var i;return i=Zpt(n),fFt(t.j,i,e),YG(t.k,e,n),e}function I4(t){var e;return QR(),e=new ac,t&&zOt(e,t),e}function L4(t){var e;return e=t.ri(t.i),t.i>0&&rHt(t.g,0,e,0,t.i),e}function O4(t,e){var n;return JE(),!(n=jz(NY(bIe,t),55))||n.wj(e)}function M4(t){if(1!=t.p)throw $m(new fy);return fV(t.f)<<24>>24}function N4(t){if(1!=t.p)throw $m(new fy);return fV(t.k)<<24>>24}function B4(t){if(7!=t.p)throw $m(new fy);return fV(t.k)<<16>>16}function P4(t){if(7!=t.p)throw $m(new fy);return fV(t.f)<<16>>16}function F4(t){var e;for(e=0;t.Ob();)t.Pb(),e=ift(e,1);return Qtt(e)}function j4(t,e){var n;return n=new Sx,t.xd(n),n.a+="..",e.yd(n),n.a}function $4(t,e,n){var i;i=jz(NY(t.g,n),57),Wz(t.a.c,new nA(e,i))}function z4(t,e,n){return Rq(_B(zA(AX(t.f,e))),_B(zA(AX(t.f,n))))}function H4(t,e,n){return q$t(t,e,n,iO(e,99)&&0!=(jz(e,18).Bb&$Kt))}function U4(t,e,n){return bzt(t,e,n,iO(e,99)&&0!=(jz(e,18).Bb&$Kt))}function V4(t,e,n){return MLt(t,e,n,iO(e,99)&&0!=(jz(e,18).Bb&$Kt))}function q4(t,e){return t==(oCt(),Sse)&&e==Sse?4:t==Sse||e==Sse?8:32}function W4(t,e){return HA(e)===HA(t)?"(this Map)":null==e?VGt:$ft(e)}function Y4(t,e){return jz(null==e?zA(AX(t.f,null)):cC(t.g,e),281)}function G4(t,e,n){var i;return i=Zpt(n),YG(t.b,i,e),YG(t.c,e,n),e}function Z4(t,e){var n;for(n=e;n;)PN(t,n.i,n.j),n=KJ(n);return t}function K4(t,e){var n;return n=nX($z(new C9(t,e))),CU(new C9(t,e)),n}function X4(t,e){var n;return XE(),_Ct(n=jz(t,66).Mj(),e),n.Ok(e)}function J4(t,e,n,i,a){Wz(e,yTt(a,WLt(a,n,i))),qEt(t,a,e)}function Q4(t,e,n){t.i=0,t.e=0,e!=n&&(Yct(t,e,n),Wct(t,e,n))}function t3(t,e){var n;n=t.q.getHours(),t.q.setFullYear(e+cKt),dzt(t,n)}function e3(t,e,n){if(n){var i=n.ee();t.a[e]=i(n)}else delete t.a[e]}function n3(t,e,n){if(n){var i=n.ee();n=i(n)}else n=void 0;t.a[e]=n}function i3(t){if(t<0)throw $m(new jw("Negative array size: "+t))}function a3(t){return t.n||(E6(t),t.n=new ZV(t,WIe,t),vX(t)),t.n}function r3(t){return EN(t.a<t.c.a.length),t.b=t.a,Att(t),t.c.b[t.b]}function o3(t){t.b!=t.c&&(t.a=O5(Dte,zGt,1,8,5,1),t.b=0,t.c=0)}function s3(t){this.b=new Om,this.c=new Om,this.d=new Om,this.a=t}function c3(t,e){fGt(),Am.call(this,t),this.a=e,this.c=-1,this.b=-1}function l3(t,e,n,i){w0.call(this,1,n,i),this.c=t,this.b=e}function u3(t,e,n,i){x0.call(this,1,n,i),this.c=t,this.b=e}function d3(t,e,n,i,a,r,o){wit.call(this,e,i,a,r,o),this.c=t,this.a=n}function h3(t,e,n){this.e=t,this.a=Dte,this.b=DPt(e),this.c=e,this.d=n}function f3(t){this.e=t,this.c=this.e.a,this.b=this.e.g,this.d=this.e.i}function g3(t){this.c=t,this.a=jz(Txt(t),148),this.b=this.a.Aj().Nh()}function p3(t){this.d=t,this.b=this.d.a.entries(),this.a=this.b.next()}function b3(){Om.call(this),wN(this),this.d.b=this.d,this.d.a=this.d}function m3(t,e){DP.call(this),this.a=t,this.b=e,Wz(this.a.b,this)}function y3(t,e){return eD(null!=e?kJ(t,e):zA(AX(t.f,e)))}function v3(t,e){return eD(null!=e?kJ(t,e):zA(AX(t.f,e)))}function w3(t,e){var n;for(n=0;n<e;++n)DY(t,n,new Vf(jz(t[n],42)))}function x3(t,e){var n;for(n=t.d-1;n>=0&&t.a[n]===e[n];n--);return n<0}function R3(t,e){var n;return Vlt(),0!=(n=t.j.g-e.j.g)?n:0}function _3(t,e){return vG(e),null!=t.a?EV(e.Kb(t.a)):kne}function k3(t){var e;return t?new IU(t):(Hat(e=new lI,t),e)}function E3(t,e){return e.b.Kb(R9(t,e.c.Ee(),new yg(e)))}function C3(t){vkt(),cO(this,fV(t0(vq(t,24),cXt)),fV(t0(t,cXt)))}function S3(){S3=D,pie=dut((lmt(),Cst(Hx(bie,1),IZt,428,0,[gie,fie])))}function T3(){T3=D,vie=dut((Ntt(),Cst(Hx(Sie,1),IZt,427,0,[mie,yie])))}function A3(){A3=D,Pre=dut((Btt(),Cst(Hx(Soe,1),IZt,424,0,[Nre,Bre])))}function D3(){D3=D,Use=dut((Eat(),Cst(Hx(Wse,1),IZt,511,0,[Hse,zse])))}function I3(){I3=D,Sue=dut((Ptt(),Cst(Hx(Tue,1),IZt,419,0,[Eue,Cue])))}function L3(){L3=D,Vue=dut((g9(),Cst(Hx(que,1),IZt,479,0,[Uue,Hue])))}function O3(){O3=D,Qye=dut((A7(),Cst(Hx(tve,1),IZt,376,0,[Jye,Xye])))}function M3(){M3=D,jye=dut((V9(),Cst(Hx($ye,1),IZt,421,0,[Pye,Fye])))}function N3(){N3=D,oue=dut((Y5(),Cst(Hx(sue,1),IZt,422,0,[aue,rue])))}function B3(){B3=D,Lde=dut((U2(),Cst(Hx(Phe,1),IZt,420,0,[Dde,Ide])))}function P3(){P3=D,Ewe=dut((T7(),Cst(Hx(Iwe,1),IZt,520,0,[kwe,_we])))}function F3(){F3=D,Hve=dut((G3(),Cst(Hx(Yve,1),IZt,523,0,[zve,$ve])))}function j3(){j3=D,ewe=dut((gJ(),Cst(Hx(nwe,1),IZt,516,0,[twe,Qve])))}function $3(){$3=D,rwe=dut((oQ(),Cst(Hx(Rwe,1),IZt,515,0,[iwe,awe])))}function z3(){z3=D,Mwe=dut((fJ(),Cst(Hx(Nwe,1),IZt,455,0,[Lwe,Owe])))}function H3(){H3=D,Hxe=dut((j0(),Cst(Hx(Gxe,1),IZt,425,0,[zxe,$xe])))}function U3(){U3=D,Xxe=dut((Cat(),Cst(Hx(Jxe,1),IZt,495,0,[Zxe,Kxe])))}function V3(){V3=D,Fxe=dut((sQ(),Cst(Hx(jxe,1),IZt,480,0,[Bxe,Pxe])))}function q3(){q3=D,oRe=dut((M8(),Cst(Hx(sRe,1),IZt,426,0,[aRe,rRe])))}function W3(){W3=D,Gke=dut((Lst(),Cst(Hx(Zke,1),IZt,429,0,[Yke,Wke])))}function Y3(){Y3=D,tke=dut((D7(),Cst(Hx(eke,1),IZt,430,0,[Q_e,J_e])))}function G3(){G3=D,zve=new KS("UPPER",0),$ve=new KS("LOWER",1)}function Z3(t,e){var n;zK(n=new pw,"x",e.a),zK(n,"y",e.b),JY(t,n)}function K3(t,e){var n;zK(n=new pw,"x",e.a),zK(n,"y",e.b),JY(t,n)}function X3(t,e){var n,i;i=!1;do{i|=n=hct(t,e)}while(n);return i}function J3(t,e){var n,i;for(n=e,i=0;n>0;)i+=t.a[n],n-=n&-n;return i}function Q3(t,e){var n;for(n=e;n;)PN(t,-n.i,-n.j),n=KJ(n);return t}function t6(t,e){var n,i;for(vG(e),i=t.Kc();i.Ob();)n=i.Pb(),e.td(n)}function e6(t,e){var n;return new bk(n=e.cd(),t.e.pc(n,jz(e.dd(),14)))}function n6(t,e,n,i){var a;(a=new L).c=e,a.b=n,a.a=i,i.b=n.a=a,++t.b}function i6(t,e,n){var i;return u1(e,t.c.length),i=t.c[e],t.c[e]=n,i}function a6(t,e,n){return jz(null==e?xTt(t.f,null,n):oft(t.g,e,n),281)}function r6(t){return t.c&&t.d?p0(t.c)+"->"+p0(t.d):"e_"+EM(t)}function o6(t,e){return(Zht(t),w_(new NU(t,new G8(e,t.a)))).sd(Qne)}function s6(){return vEt(),Cst(Hx(Voe,1),IZt,356,0,[Boe,Poe,Foe,joe,$oe])}function c6(){return wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])}function l6(t){return Mx(),function(){return P2(t,this,arguments)}}function u6(){return Date.now?Date.now():(new Date).getTime()}function d6(t){return!(!t.c||!t.d||!t.c.i||t.c.i!=t.d.i)}function h6(t){if(!t.c.Sb())throw $m(new yy);return t.a=!0,t.c.Ub()}function f6(t){t.i=0,yC(t.b,null),yC(t.c,null),t.a=null,t.e=null,++t.g}function g6(t){fC.call(this,null==t?VGt:$ft(t),iO(t,78)?jz(t,78):null)}function p6(t){eGt(),jm(this),this.a=new Zk,glt(this,t),MH(this.a,t)}function b6(){OI(this),this.b=new OT(BKt,BKt),this.a=new OT(PKt,PKt)}function m6(t,e){this.c=0,this.b=e,pD.call(this,t,17493),this.a=this.c}function y6(t){v6(),!qne&&(this.c=t,this.e=!0,this.a=new Lm)}function v6(){v6=D,qne=!0,Une=!1,Vne=!1,Yne=!1,Wne=!1}function w6(t,e){return!!iO(e,149)&&mF(t.c,jz(e,149).c)}function x6(t,e){var n;return n=0,t&&(n+=t.f.a/2),e&&(n+=e.f.a/2),n}function R6(t,e){return jz(utt(t.d,e),23)||jz(utt(t.e,e),23)}function _6(t){this.b=t,AO.call(this,t),this.a=jz(vot(this.b.a,4),126)}function k6(t){this.b=t,aN.call(this,t),this.a=jz(vot(this.b.a,4),126)}function E6(t){return t.t||(t.t=new fm(t),cht(new Ow(t),0,t.t)),t.t}function C6(){return jdt(),Cst(Hx(USe,1),IZt,103,0,[$Se,jSe,FSe,PSe,zSe])}function S6(){return amt(),Cst(Hx(VTe,1),IZt,249,0,[$Te,HTe,FTe,jTe,zTe])}function T6(){return imt(),Cst(Hx(hEe,1),IZt,175,0,[lEe,cEe,oEe,uEe,sEe])}function A6(){return ICt(),Cst(Hx(Hke,1),IZt,316,0,[nke,ike,oke,ake,rke])}function D6(){return Oyt(),Cst(Hx(xye,1),IZt,315,0,[vye,bye,mye,pye,yye])}function I6(){return Gyt(),Cst(Hx(kue,1),IZt,335,0,[vue,yue,xue,Rue,wue])}function L6(){return KOt(),Cst(Hx($_e,1),IZt,355,0,[N_e,M_e,P_e,B_e,F_e])}function O6(){return L_t(),Cst(Hx(Ole,1),IZt,363,0,[kle,Cle,Sle,Ele,_le])}function M6(){return _ft(),Cst(Hx(Zme,1),IZt,163,0,[Hhe,Fhe,jhe,$he,zhe])}function N6(){var t,e;N6=D,e_(),e=new xy,JLe=e,t=new Tv,QLe=t}function B6(t){var e;return t.c||iO(e=t.r,88)&&(t.c=jz(e,26)),t.c}function P6(t){return t.e=3,t.d=t.Yb(),2!=t.e&&(t.e=0,!0)}function F6(t){return _L(t&EKt,t>>22&EKt,t<0?CKt:0)}function j6(t){var e,n,i;for(n=0,i=(e=t).length;n<i;++n)wG(e[n])}function $6(t,e){var n,i;(n=jz(hdt(t.c,e),14))&&(i=n.gc(),n.$b(),t.d-=i)}function z6(t,e){var n;return!!(n=dlt(t,e.cd()))&&iZ(n.e,e.dd())}function H6(t,e){return 0==e||0==t.e?t:e>0?Rpt(t,e):TNt(t,-e)}function U6(t,e){return 0==e||0==t.e?t:e>0?TNt(t,e):Rpt(t,-e)}function V6(t){if(gIt(t))return t.c=t.a,t.a.Pb();throw $m(new yy)}function q6(t){var e,n;return e=t.c.i,n=t.d.i,e.k==(oCt(),kse)&&n.k==kse}function W6(t){var e;return Hot(e=new hX,t),lct(e,(zYt(),bbe),null),e}function Y6(t,e,n){var i;return(i=t.Yg(e))>=0?t._g(i,n,!0):aDt(t,e,n)}function G6(t,e,n,i){var a;for(a=0;a<Gie;a++)qV(t.a[e.g][a],n,i[e.g])}function Z6(t,e,n,i){var a;for(a=0;a<Zie;a++)VV(t.a[a][e.g],n,i[e.g])}function K6(t,e,n,i,a){w0.call(this,e,i,a),this.c=t,this.a=n}function X6(t,e,n,i,a){x0.call(this,e,i,a),this.c=t,this.a=n}function J6(t,e,n,i,a){e7.call(this,e,i,a),this.c=t,this.a=n}function Q6(t,e,n,i,a){e7.call(this,e,i,a),this.c=t,this.b=n}function t7(t,e,n){wm.call(this,n),this.b=t,this.c=e,this.d=($gt(),HLe)}function e7(t,e,n){this.d=t,this.k=e?1:0,this.f=n?1:0,this.o=-1,this.p=0}function n7(t,e,n){var i;_rt(i=new qL(t.a),t.a.a),xTt(i.f,e,n),t.a.a=i}function i7(t,e){t.qi(t.i+1),wO(t,t.i,t.oi(t.i,e)),t.bi(t.i++,e),t.ci()}function a7(t){var e,n;++t.j,e=t.g,n=t.i,t.g=null,t.i=0,t.di(n,e),t.ci()}function r7(t){var e;return yY(t),Ict(e=new K7(XG(t.length)),t),e}function o7(t){var e;return yY(t),XSt(e=t?new QF(t):$z(t.Kc())),cdt(e)}function s7(t,e){var n;return u1(e,t.c.length),n=t.c[e],E_(t.c,e,1),n}function c7(t,e){var n;return!(n=jz(t.c.xc(e),14))&&(n=t.ic(e)),t.pc(e,n)}function l7(t,e){var n,i;return vG(t),n=t,vG(e),n==(i=e)?0:n<i?-1:1}function u7(t){var e;return e=t.e+t.f,isNaN(e)&&WF(t.d)?t.d:e}function d7(t,e){return t.a?oD(t.a,t.b):t.a=new uM(t.d),aD(t.a,e),t}function h7(t,e){if(t<0||t>e)throw $m(new Aw(gTt(t,e,"index")));return t}function f7(t,e,n,i){var a;return mkt(a=O5(TMe,lKt,25,e,15,1),t,e,n,i),a}function g7(t,e){var n;n=t.q.getHours()+(e/60|0),t.q.setMinutes(e),dzt(t,n)}function p7(t,e){return i.Math.min(W5(e.a,t.d.d.c),W5(e.b,t.d.d.c))}function b7(t,e){return qA(e)?null==e?pIt(t.f,null):Uot(t.g,e):pIt(t.f,e)}function m7(t){this.c=t,this.a=new Wf(this.c.a),this.b=new Wf(this.c.b)}function y7(){this.e=new Lm,this.c=new Lm,this.d=new Lm,this.b=new Lm}function v7(){this.g=new jy,this.b=new jy,this.a=new Lm,this.k=new Lm}function w7(t,e,n){this.a=t,this.c=e,this.d=n,Wz(e.e,this),Wz(n.b,this)}function x7(t,e){gD.call(this,e.rd(),-6&e.qd()),vG(t),this.a=t,this.b=e}function R7(t,e){pD.call(this,e.rd(),-6&e.qd()),vG(t),this.a=t,this.b=e}function _7(t,e){bD.call(this,e.rd(),-6&e.qd()),vG(t),this.a=t,this.b=e}function k7(t,e,n){this.a=t,this.b=e,this.c=n,Wz(t.t,this),Wz(e.i,this)}function E7(){this.b=new Zk,this.a=new Zk,this.b=new Zk,this.a=new Zk}function C7(){C7=D,REe=new rm("org.eclipse.elk.labels.labelManager")}function S7(){S7=D,tle=new eP("separateLayerConnections",(Tst(),rle))}function T7(){T7=D,kwe=new rT("REGULAR",0),_we=new rT("CRITICAL",1)}function A7(){A7=D,Jye=new qS("STACKED",0),Xye=new qS("SEQUENCED",1)}function D7(){D7=D,Q_e=new RT("FIXED",0),J_e=new RT("CENTER_NODE",1)}function I7(t,e){var n;return n=MVt(t,e),t.b=new yat(n.c.length),vUt(t,n)}function L7(t,e,n){return++t.e,--t.f,jz(t.d[e].$c(n),133).dd()}function O7(t){var e;return t.a||iO(e=t.r,148)&&(t.a=jz(e,148)),t.a}function M7(t){return t.a?t.e?M7(t.e):null:t}function N7(t,e){return t.p<e.p?1:t.p>e.p?-1:0}function B7(t,e){return vG(e),t.c<t.d&&(t.ze(e,t.c++),!0)}function P7(t,e){return!!cW(t.a,e)&&(b7(t.a,e),!0)}function F7(t){var e;return e=t.cd(),Nz(jz(t.dd(),14).Nc(),new Wd(e))}function j7(t){var e;return e=jz(YW(t.b,t.b.length),9),new ZF(t.a,e,t.c)}function $7(t){return Zht(t),new AB(t,new Xz(t,t.a.e,4|t.a.d))}function z7(t){var e;for(xG(t),e=0;t.a.sd(new ut);)e=ift(e,1);return e}function H7(t,e,n){var i,a;for(i=0,a=0;a<e.length;a++)i+=t.$f(e[a],i,n)}function U7(t,e){var n;t.C&&((n=jz(oZ(t.b,e),124).n).d=t.C.d,n.a=t.C.a)}function V7(t,e,n){return h2(e,t.e.Hd().gc()),h2(n,t.c.Hd().gc()),t.a[e][n]}function q7(t,e){ABt(),this.e=t,this.d=1,this.a=Cst(Hx(TMe,1),lKt,25,15,[e])}function W7(t,e,n,i){this.f=t,this.e=e,this.d=n,this.b=i,this.c=i?i.d:null}function Y7(t){var e,n,i,a;a=t.d,e=t.a,n=t.b,i=t.c,t.d=n,t.a=i,t.b=a,t.c=e}function G7(t,e,n,i){y$t(t,e,n,bzt(t,e,i,iO(e,99)&&0!=(jz(e,18).Bb&$Kt)))}function Z7(t,e){Akt(e,"Label management",1),eD(yEt(t,(C7(),REe))),zCt(e)}function K7(t){OI(this),bH(t>=0,"Initial capacity must not be negative")}function X7(){X7=D,Wie=dut((Net(),Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])))}function J7(){J7=D,Qie=dut((K8(),Cst(Hx(tae,1),IZt,461,0,[Xie,Kie,Jie])))}function Q7(){Q7=D,rae=dut((H9(),Cst(Hx(oae,1),IZt,462,0,[aae,iae,nae])))}function t5(){t5=D,Xne=dut((Hlt(),Cst(Hx(Jne,1),IZt,132,0,[Gne,Zne,Kne])))}function e5(){e5=D,Ioe=dut((z9(),Cst(Hx(Noe,1),IZt,379,0,[Aoe,Toe,Doe])))}function n5(){n5=D,gse=dut(($dt(),Cst(Hx(mse,1),IZt,423,0,[fse,hse,dse])))}function i5(){i5=D,due=dut((Ait(),Cst(Hx(hue,1),IZt,314,0,[lue,cue,uue])))}function a5(){a5=D,bue=dut((oit(),Cst(Hx(mue,1),IZt,337,0,[fue,pue,gue])))}function r5(){r5=D,Lue=dut((Xst(),Cst(Hx(Oue,1),IZt,450,0,[Due,Aue,Iue])))}function o5(){o5=D,Ple=dut((Sat(),Cst(Hx(Fle,1),IZt,361,0,[Ble,Nle,Mle])))}function s5(){s5=D,Tde=dut((U9(),Cst(Hx(Ade,1),IZt,303,0,[Cde,Sde,Ede])))}function c5(){c5=D,_de=dut((Pot(),Cst(Hx(kde,1),IZt,292,0,[xde,Rde,wde])))}function l5(){l5=D,sye=dut((kut(),Cst(Hx(cye,1),IZt,378,0,[aye,rye,oye])))}function u5(){u5=D,Zye=dut((zrt(),Cst(Hx(Kye,1),IZt,375,0,[Wye,Yye,Gye])))}function d5(){d5=D,Nye=dut((yct(),Cst(Hx(Bye,1),IZt,339,0,[Oye,Lye,Mye])))}function h5(){h5=D,Vye=dut((rit(),Cst(Hx(qye,1),IZt,452,0,[Uye,zye,Hye])))}function f5(){f5=D,gve=dut((Ist(),Cst(Hx(kve,1),IZt,377,0,[hve,fve,dve])))}function g5(){g5=D,ave=dut((qlt(),Cst(Hx(rve,1),IZt,336,0,[eve,nve,ive])))}function p5(){p5=D,lve=dut((grt(),Cst(Hx(uve,1),IZt,338,0,[cve,ove,sve])))}function b5(){b5=D,Lve=dut((sit(),Cst(Hx(Ove,1),IZt,454,0,[Ave,Dve,Ive])))}function m5(){m5=D,nRe=dut((Sft(),Cst(Hx(iRe,1),IZt,442,0,[eRe,Qxe,tRe])))}function y5(){y5=D,dRe=dut((zlt(),Cst(Hx(FRe,1),IZt,380,0,[cRe,lRe,uRe])))}function v5(){v5=D,t_e=dut((Eft(),Cst(Hx(L_e,1),IZt,381,0,[JRe,QRe,XRe])))}function w5(){w5=D,GRe=dut(($rt(),Cst(Hx(ZRe,1),IZt,293,0,[WRe,YRe,qRe])))}function x5(){x5=D,V_e=dut((Cft(),Cst(Hx(q_e,1),IZt,437,0,[z_e,H_e,U_e])))}function R5(){R5=D,vTe=dut((odt(),Cst(Hx(wTe,1),IZt,334,0,[mTe,bTe,yTe])))}function _5(){_5=D,YSe=dut((Bet(),Cst(Hx(GSe,1),IZt,272,0,[VSe,qSe,WSe])))}function k5(){return Z_t(),Cst(Hx(JTe,1),IZt,98,0,[KTe,ZTe,GTe,qTe,YTe,WTe])}function E5(t,e){return!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),ipt(t.o,e)}function C5(t){return!t.g&&(t.g=new lc),!t.g.d&&(t.g.d=new um(t)),t.g.d}function S5(t){return!t.g&&(t.g=new lc),!t.g.a&&(t.g.a=new dm(t)),t.g.a}function T5(t){return!t.g&&(t.g=new lc),!t.g.b&&(t.g.b=new lm(t)),t.g.b}function A5(t){return!t.g&&(t.g=new lc),!t.g.c&&(t.g.c=new hm(t)),t.g.c}function D5(t,e,n){var i,a;for(a=new Dot(e,t),i=0;i<n;++i)ayt(a);return a}function I5(t,e,n){var i,a;if(null!=n)for(i=0;i<e;++i)a=n[i],t.fi(i,a)}function L5(t,e,n,i){var a;return D$t(a=O5(TMe,lKt,25,e+1,15,1),t,e,n,i),a}function O5(t,e,n,i,a,r){var o;return o=$vt(a,i),10!=a&&Cst(Hx(t,r),e,n,a,o),o}function M5(t,e,n,i){return n&&(i=n.gh(e,Dgt(n.Tg(),t.c.Lj()),null,i)),i}function N5(t,e,n,i){return n&&(i=n.ih(e,Dgt(n.Tg(),t.c.Lj()),null,i)),i}function B5(t,e,n){jz(t.b,65),jz(t.b,65),jz(t.b,65),Aet(t.a,new Lj(n,e,t))}function P5(t,e,n){if(t<0||e>n||e<t)throw $m(new Tx(yXt+t+wXt+e+lXt+n))}function F5(t){if(!t)throw $m(new Fw("Unable to add element to queue"))}function j5(t){t?(this.c=t,this.b=null):(this.c=null,this.b=new Lm)}function $5(t,e){EC.call(this,t,e),this.a=O5(Lne,wZt,436,2,0,1),this.b=!0}function z5(t){Qst.call(this,t,0),wN(this),this.d.b=this.d,this.d.a=this.d}function H5(t){var e;return 0==(e=t.b).b?null:jz(Nmt(e,0),188).b}function U5(t,e){var n;return(n=new U).c=!0,n.d=e.dd(),KVt(t,e.cd(),n)}function V5(t,e){var n;n=t.q.getHours()+(e/3600|0),t.q.setSeconds(e),dzt(t,n)}function q5(t,e,n){var i;(i=t.b[n.c.p][n.p]).b+=e.b,i.c+=e.c,i.a+=e.a,++i.a}function W5(t,e){var n,a;return n=t.a-e.a,a=t.b-e.b,i.Math.sqrt(n*n+a*a)}function Y5(){Y5=D,aue=new xS("QUADRATIC",0),rue=new xS("SCANLINE",1)}function G5(){G5=D,mve=WV(fU(new j2,(vEt(),Boe),(dGt(),wce)),$oe,Hce)}function Z5(){return f_t(),Cst(Hx(BSe,1),IZt,291,0,[JEe,XEe,KEe,GEe,YEe,ZEe])}function K5(){return fyt(),Cst(Hx(WEe,1),IZt,248,0,[SEe,DEe,IEe,LEe,TEe,AEe])}function X5(){return ISt(),Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])}function J5(){return XEt(),Cst(Hx(sde,1),IZt,275,0,[ade,ede,rde,ide,nde,tde])}function Q5(){return $Rt(),Cst(Hx(Que,1),IZt,274,0,[Zue,Gue,Xue,Yue,Kue,Wue])}function t8(){return _kt(),Cst(Hx(iye,1),IZt,313,0,[tye,Jme,Kme,Xme,eye,Qme])}function e8(){return pCt(),Cst(Hx(zue,1),IZt,276,0,[Nue,Mue,Pue,Bue,jue,Fue])}function n8(){return NSt(),Cst(Hx(Nxe,1),IZt,327,0,[Zwe,qwe,Ywe,Wwe,Gwe,Vwe])}function i8(){return dAt(),Cst(Hx(oAe,1),IZt,273,0,[iAe,eAe,nAe,tAe,QTe,aAe])}function a8(){return Qkt(),Cst(Hx(pTe,1),IZt,312,0,[rTe,iTe,oTe,eTe,aTe,nTe])}function r8(){return oCt(),Cst(Hx(Dse,1),IZt,267,0,[Sse,Cse,kse,Tse,Ese,_se])}function o8(t){_N(!!t.c),p2(t.e,t),t.c.Qb(),t.c=null,t.b=gst(t),dB(t.e,t)}function s8(t){return p2(t.c.a.e,t),EN(t.b!=t.c.a.d),t.a=t.b,t.b=t.b.a,t.a}function c8(t){var e;return!t.a&&-1!=t.b&&(e=t.c.Tg(),t.a=eet(e,t.b)),t.a}function l8(t,e){return!(t.hi()&&t.Hc(e)||(t.Yh(e),0))}function u8(t,e){return TX(e,"Horizontal alignment cannot be null"),t.b=e,t}function d8(t,e,n){var i;return fGt(),i=JWt(t,e),n&&i&&gG(t)&&(i=null),i}function h8(t,e,n){var i;for(i=t.Kc();i.Ob();)JPt(jz(i.Pb(),37),e,n)}function f8(t,e){var n;for(n=e.Kc();n.Ob();)IFt(t,jz(n.Pb(),37),0,0)}function g8(t,e,n){var a;t.d[e.g]=n,(a=t.g.c)[e.g]=i.Math.max(a[e.g],n+1)}function p8(t,e){var n,i,a;return a=t.r,i=t.d,(n=aHt(t,e,!0)).b!=a||n.a!=i}function b8(t,e){return uC(t.e,e)||Xbt(t.e,e,new nmt(e)),jz(utt(t.e,e),113)}function m8(t,e,n,i){return vG(t),vG(e),vG(n),vG(i),new wW(t,e,new V)}function y8(t,e,n,i){this.rj(),this.a=e,this.b=t,this.c=new Xq(this,e,n,i)}function v8(t,e,n,i,a,r){$2.call(this,e,i,a,r),this.c=t,this.b=n}function w8(t,e,n,i,a,r){$2.call(this,e,i,a,r),this.c=t,this.a=n}function x8(t,e,n){var i,a;a=null,(i=UJ(t,n))&&(a=vSt(i)),Wbt(e,n,a)}function R8(t,e,n){var i,a;a=null,(i=UJ(t,n))&&(a=vSt(i)),Wbt(e,n,a)}function _8(t,e,n){var i;return(i=ILt(t.b,e))?OHt(F9(t,i),n):null}function k8(t,e){var n;return(n=t.Yg(e))>=0?t._g(n,!0,!0):aDt(t,e,!0)}function E8(t,e){return Cht(Hw(_B(yEt(t,(lGt(),Rhe)))),Hw(_B(yEt(e,Rhe))))}function C8(){C8=D,Vxe=sbt(sbt(FE(new j2,(Vwt(),Pwe)),(NSt(),Zwe)),qwe)}function S8(t,e,n){var i;return i=Oct(t,e,n),t.b=new yat(i.c.length),cBt(t,i)}function T8(t){if(t.b<=0)throw $m(new yy);return--t.b,t.a-=t.c.c,nht(t.a)}function A8(t){var e;if(!t.a)throw $m(new uZ);return e=t.a,t.a=KJ(t.a),e}function D8(t){for(;!t.a;)if(!RF(t.c,new pg(t)))return!1;return!0}function I8(t){return yY(t),iO(t,198)?jz(t,198):new rh(t)}function L8(t){O8(),jz(t.We((cGt(),lSe)),174).Fc((dAt(),nAe)),t.Ye(cSe,null)}function O8(){O8=D,Qke=new gs,eEe=new ps,tEe=mlt((cGt(),cSe),Qke,zCe,eEe)}function M8(){M8=D,aRe=new pT("LEAF_NUMBER",0),rRe=new pT("NODE_SIZE",1)}function N8(t,e,n){t.a=e,t.c=n,t.b.a.$b(),yK(t.d),t.e.a.c=O5(Dte,zGt,1,0,5,1)}function B8(t){t.a=O5(TMe,lKt,25,t.b+1,15,1),t.c=O5(TMe,lKt,25,t.b,15,1),t.d=0}function P8(t,e){t.a.ue(e.d,t.b)>0&&(Wz(t.c,new mH(e.c,e.d,t.d)),t.b=e.d)}function F8(t,e){if(null==t.g||e>=t.i)throw $m(new ID(e,t.i));return t.g[e]}function j8(t,e,n){if(Mlt(t,n),null!=n&&!t.wj(n))throw $m(new uy);return n}function $8(t){var e;if(t.Ek())for(e=t.i-1;e>=0;--e)Yet(t,e);return L4(t)}function z8(t){var e,n;if(!t.b)return null;for(n=t.b;e=n.a[0];)n=e;return n}function H8(t,e){var n;return i3(e),(n=m9(t.slice(0,e),t)).length=e,n}function U8(t,e,n,i){EK(),i=i||hne,pTt(t.slice(e,n),t,e,n,-e,i)}function V8(t,e,n,i,a){return e<0?aDt(t,n,i):jz(n,66).Nj().Pj(t,t.yh(),e,i,a)}function q8(t){return iO(t,172)?""+jz(t,172).a:null==t?null:$ft(t)}function W8(t){return iO(t,172)?""+jz(t,172).a:null==t?null:$ft(t)}function Y8(t,e){if(e.a)throw $m(new fw(TXt));RW(t.a,e),e.a=t,!t.j&&(t.j=e)}function G8(t,e){bD.call(this,e.rd(),-16449&e.qd()),vG(t),this.a=t,this.c=e}function Z8(t,e){var n,i;return i=e/t.c.Hd().gc()|0,n=e%t.c.Hd().gc(),V7(t,i,n)}function K8(){K8=D,Xie=new HC(aJt,0),Kie=new HC(eJt,1),Jie=new HC(rJt,2)}function X8(){X8=D,One=new gC("All",0),Mne=new II,Nne=new AL,Bne=new LI}function J8(){J8=D,Pne=dut((X8(),Cst(Hx(Fne,1),IZt,297,0,[One,Mne,Nne,Bne])))}function Q8(){Q8=D,nse=dut((Dst(),Cst(Hx(use,1),IZt,405,0,[Joe,ese,Qoe,tse])))}function t9(){t9=D,Pae=dut((Not(),Cst(Hx(Fae,1),IZt,406,0,[Bae,Oae,Mae,Nae])))}function e9(){e9=D,Uae=dut((zmt(),Cst(Hx(Vae,1),IZt,323,0,[$ae,jae,zae,Hae])))}function n9(){n9=D,ere=dut((Hmt(),Cst(Hx(nre,1),IZt,394,0,[Jae,Xae,Qae,tre])))}function i9(){i9=D,$we=dut((Vwt(),Cst(Hx(zwe,1),IZt,393,0,[Bwe,Pwe,Fwe,jwe])))}function a9(){a9=D,ole=dut((Tst(),Cst(Hx(ple,1),IZt,360,0,[rle,ile,ale,nle])))}function r9(){r9=D,URe=dut((Avt(),Cst(Hx(VRe,1),IZt,340,0,[HRe,$Re,zRe,jRe])))}function o9(){o9=D,xle=dut((Ast(),Cst(Hx(Rle,1),IZt,411,0,[mle,yle,vle,wle])))}function s9(){s9=D,fye=dut((hyt(),Cst(Hx(gye,1),IZt,197,0,[dye,hye,uye,lye])))}function c9(){c9=D,lDe=dut(($lt(),Cst(Hx(hDe,1),IZt,396,0,[oDe,sDe,rDe,cDe])))}function l9(){l9=D,ETe=dut((Wwt(),Cst(Hx(CTe,1),IZt,285,0,[kTe,xTe,RTe,_Te])))}function u9(){u9=D,QSe=dut((kft(),Cst(Hx(tTe,1),IZt,218,0,[JSe,KSe,ZSe,XSe])))}function d9(){d9=D,nDe=dut((jgt(),Cst(Hx(iDe,1),IZt,311,0,[eDe,JAe,tDe,QAe])))}function h9(){h9=D,jAe=dut((ypt(),Cst(Hx($Ae,1),IZt,374,0,[PAe,FAe,BAe,NAe])))}function f9(){f9=D,Hzt(),jOe=BKt,FOe=PKt,zOe=new Lf(BKt),$Oe=new Lf(PKt)}function g9(){g9=D,Uue=new TS(ZQt,0),Hue=new TS("IMPROVE_STRAIGHTNESS",1)}function p9(t,e){return cH(),Wz(t,new nA(e,nht(e.e.c.length+e.g.c.length)))}function b9(t,e){return cH(),Wz(t,new nA(e,nht(e.e.c.length+e.g.c.length)))}function m9(t,e){return 10!=btt(e)&&Cst(tlt(e),e.hm,e.__elementTypeId$,btt(e),t),t}function y9(t,e){var n;return-1!=(n=x9(t,e,0))&&(s7(t,n),!0)}function v9(t,e){var n;return(n=jz(b7(t.e,e),387))?(NH(n),n.e):null}function w9(t){var e;return KD(t)&&(e=0-t,!isNaN(e))?e:oot(rct(t))}function x9(t,e,n){for(;n<t.c.length;++n)if(iZ(e,t.c[n]))return n;return-1}function R9(t,e,n){var i;return xG(t),(i=new ct).a=e,t.a.Nb(new SC(i,n)),i.a}function _9(t){var e;return xG(t),e=O5(LMe,HKt,25,0,15,1),g_(t.a,new hg(e)),e}function k9(t){var e;return e=jz(OU(t.j,0),11),jz(yEt(e,(lGt(),fhe)),11)}function E9(t){var e;if(!Jit(t))throw $m(new yy);return t.e=1,e=t.d,t.d=null,e}function C9(t,e){var n;this.f=t,this.b=e,n=jz(NY(t.b,e),283),this.c=n?n.b:null}function S9(){Hj(),this.b=new Om,this.f=new Om,this.g=new Om,this.e=new Om}function T9(t,e){this.a=O5(Rse,r1t,10,t.a.c.length,0,1),Zbt(t.a,this.a),this.b=e}function A9(t){var e;for(e=t.p+1;e<t.c.a.c.length;++e)--jz(OU(t.c.a,e),10).p}function D9(t){var e;null!=(e=t.Ai())&&-1!=t.d&&jz(e,92).Ng(t),t.i&&t.i.Fi()}function I9(t){YL(this),this.g=t?CX(t,t.$d()):null,this.f=t,wK(this),this._d()}function L9(t,e,n,i,a,r,o){wit.call(this,e,i,a,r,o),this.c=t,this.b=n}function O9(t,e,n,i,a){return vG(t),vG(e),vG(n),vG(i),vG(a),new wW(t,e,i)}function M9(t,e){if(e<0)throw $m(new Aw(Q3t+e));return g4(t,e+1),OU(t.j,e)}function N9(t,e,n,i){if(!t)throw $m(new Pw(IPt(e,Cst(Hx(Dte,1),zGt,1,5,[n,i]))))}function B9(t,e){return iZ(e,OU(t.f,0))||iZ(e,OU(t.f,1))||iZ(e,OU(t.f,2))}function P9(t,e){IF(jz(jz(t.f,33).We((cGt(),rSe)),98))&&Zft(yZ(jz(t.f,33)),e)}function F9(t,e){var n,i;return!(i=(n=jz(e,675)).Oh())&&n.Rh(i=new NA(t,e)),i}function j9(t,e){var n,i;return!(i=(n=jz(e,677)).pk())&&n.tk(i=new B0(t,e)),i}function $9(t){return t.b||(t.b=new KV(t,WIe,t),!t.a&&(t.a=new oP(t,t))),t.b}function z9(){z9=D,Aoe=new WC("XY",0),Toe=new WC("X",1),Doe=new WC("Y",2)}function H9(){H9=D,aae=new UC("TOP",0),iae=new UC(eJt,1),nae=new UC(sJt,2)}function U9(){U9=D,Cde=new OS(ZQt,0),Sde=new OS("TOP",1),Ede=new OS(sJt,2)}function V9(){V9=D,Pye=new HS("INPUT_ORDER",0),Fye=new HS("PORT_DEGREE",1)}function q9(){q9=D,hee=_L(EKt,EKt,524287),fee=_L(0,0,SKt),gee=F6(1),F6(2),pee=F6(0)}function W9(t,e,n){t.a.c=O5(Dte,zGt,1,0,5,1),WUt(t,e,n),0==t.a.c.length||ujt(t,e)}function Y9(t){var e,n;return ZW(t,0,n=t.length,e=O5(SMe,YZt,25,n,15,1),0),e}function G9(t){var e;return t.dh()||(e=dY(t.Tg())-t.Ah(),t.ph().bk(e)),t.Pg()}function Z9(t){var e;return null==(e=ent(vot(t,32)))&&(ubt(t),e=ent(vot(t,32))),e}function K9(t,e){var n;return(n=Dgt(t.d,e))>=0?Jmt(t,n,!0,!0):aDt(t,e,!0)}function X9(t,e){var n,i;return _E(),n=l4(t),i=l4(e),!!n&&!!i&&!Pmt(n.k,i.k)}function J9(t,e){Cnt(t,null==e||WF((vG(e),e))||isNaN((vG(e),e))?0:(vG(e),e))}function Q9(t,e){Snt(t,null==e||WF((vG(e),e))||isNaN((vG(e),e))?0:(vG(e),e))}function ttt(t,e){Ent(t,null==e||WF((vG(e),e))||isNaN((vG(e),e))?0:(vG(e),e))}function ett(t,e){knt(t,null==e||WF((vG(e),e))||isNaN((vG(e),e))?0:(vG(e),e))}function ntt(t){(this.q?this.q:(kK(),kK(),lne)).Ac(t.q?t.q:(kK(),kK(),lne))}function itt(t,e){return iO(e,99)&&jz(e,18).Bb&$Kt?new OD(e,t):new Dot(e,t)}function att(t,e){return iO(e,99)&&jz(e,18).Bb&$Kt?new OD(e,t):new Dot(e,t)}function rtt(t,e){Yae=new ne,Kae=e,jz((Wae=t).b,65),B5(Wae,Yae,null),oUt(Wae)}function ott(t,e,n){var i;return i=t.g[e],wO(t,e,t.oi(e,n)),t.gi(e,n,i),t.ci(),i}function stt(t,e){var n;return(n=t.Xc(e))>=0&&(t.$c(n),!0)}function ctt(t){var e;return t.d!=t.r&&(e=Txt(t),t.e=!!e&&e.Cj()==R8t,t.d=e),t.e}function ltt(t,e){var n;for(yY(t),yY(e),n=!1;e.Ob();)n|=t.Fc(e.Pb());return n}function utt(t,e){var n;return(n=jz(NY(t.e,e),387))?(rO(t,n),n.e):null}function dtt(t){var e,n;return e=t/60|0,0==(n=t%60)?""+e:e+":"+n}function htt(t,e){return Zht(t),new NU(t,new BF(new _7(e,t.a)))}function ftt(t,e){var n=t.a[e],i=(Jst(),uee)[typeof n];return i?i(n):wut(typeof n)}function gtt(t){switch(t.g){case 0:return NGt;case 1:return-1;default:return 0}}function ptt(t){return Pxt(t,(q9(),pee))<0?-CM(rct(t)):t.l+t.m*TKt+t.h*AKt}function btt(t){return null==t.__elementTypeCategory$?10:t.__elementTypeCategory$}function mtt(t){var e;return null!=(e=0==t.b.c.length?null:OU(t.b,0))&&lat(t,0),e}function ytt(t,e){for(;e[0]<t.length&&HD(" \t\r\n",Kkt(lZ(t,e[0])))>=0;)++e[0]}function vtt(t,e){this.e=e,this.a=Got(t),this.a<54?this.f=w2(t):this.c=Qbt(t)}function wtt(t,e,n,i){fGt(),Am.call(this,26),this.c=t,this.a=e,this.d=n,this.b=i}function xtt(t,e,n){var i,a;for(i=10,a=0;a<n-1;a++)e<i&&(t.a+="0"),i*=10;t.a+=e}function Rtt(t,e){var n;for(n=0;t.e!=t.i.gc();)gU(e,wmt(t),nht(n)),n!=NGt&&++n}function _tt(t,e){var n;for(++t.d,++t.c[e],n=e+1;n<t.a.length;)++t.a[n],n+=n&-n}function ktt(t,e){var n,i,a;a=e.c.i,i=(n=jz(NY(t.f,a),57)).d.c-n.e.c,Kat(e.a,i,0)}function Ett(t){var e,n;return e=t+128,!(n=(wU(),xee)[e])&&(n=xee[e]=new Df(t)),n}function Ctt(t,e){var n;return vG(e),Ott(!!(n=t[":"+e]),Cst(Hx(Dte,1),zGt,1,5,[e])),n}function Stt(t){var e,n;if(t.b){n=null;do{e=t.b,t.b=null,n=cSt(e,n)}while(t.b);t.b=n}}function Ttt(t){var e,n;if(t.a){n=null;do{e=t.a,t.a=null,n=cSt(e,n)}while(t.a);t.a=n}}function Att(t){var e;for(++t.a,e=t.c.a.length;t.a<e;++t.a)if(t.c.b[t.a])return}function Dtt(t,e){var n,i;for(n=(i=e.c)+1;n<=e.f;n++)t.a[n]>t.a[i]&&(i=n);return i}function Itt(t,e){var n;return 0==(n=Tft(t.e.c,e.e.c))?Cht(t.e.d,e.e.d):n}function Ltt(t,e){return 0==e.e||0==t.e?nne:(IDt(),DMt(t,e))}function Ott(t,e){if(!t)throw $m(new Pw(KMt("Enum constant undefined: %s",e)))}function Mtt(){Mtt=D,rse=new Ee,ose=new _e,ise=new De,ase=new Ie,sse=new Le}function Ntt(){Ntt=D,mie=new jC("BY_SIZE",0),yie=new jC("BY_SIZE_AND_SHAPE",1)}function Btt(){Btt=D,Nre=new qC("EADES",0),Bre=new qC("FRUCHTERMAN_REINGOLD",1)}function Ptt(){Ptt=D,Eue=new ES("READING_DIRECTION",0),Cue=new ES("ROTATION",1)}function Ftt(){Ftt=D,_ue=dut((Gyt(),Cst(Hx(kue,1),IZt,335,0,[vue,yue,xue,Rue,wue])))}function jtt(){jtt=D,wye=dut((Oyt(),Cst(Hx(xye,1),IZt,315,0,[vye,bye,mye,pye,yye])))}function $tt(){$tt=D,Tle=dut((L_t(),Cst(Hx(Ole,1),IZt,363,0,[kle,Cle,Sle,Ele,_le])))}function ztt(){ztt=D,Uhe=dut((_ft(),Cst(Hx(Zme,1),IZt,163,0,[Hhe,Fhe,jhe,$he,zhe])))}function Htt(){Htt=D,ske=dut((ICt(),Cst(Hx(Hke,1),IZt,316,0,[nke,ike,oke,ake,rke])))}function Utt(){Utt=D,dEe=dut((imt(),Cst(Hx(hEe,1),IZt,175,0,[lEe,cEe,oEe,uEe,sEe])))}function Vtt(){Vtt=D,j_e=dut((KOt(),Cst(Hx($_e,1),IZt,355,0,[N_e,M_e,P_e,B_e,F_e])))}function qtt(){qtt=D,zoe=dut((vEt(),Cst(Hx(Voe,1),IZt,356,0,[Boe,Poe,Foe,joe,$oe])))}function Wtt(){Wtt=D,HSe=dut((jdt(),Cst(Hx(USe,1),IZt,103,0,[$Se,jSe,FSe,PSe,zSe])))}function Ytt(){Ytt=D,UTe=dut((amt(),Cst(Hx(VTe,1),IZt,249,0,[$Te,HTe,FTe,jTe,zTe])))}function Gtt(){Gtt=D,TAe=dut((wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])))}function Ztt(t,e){var n;return(n=jz(NY(t.a,e),134))||(n=new Jt,YG(t.a,e,n)),n}function Ktt(t){var e;return!!(e=jz(yEt(t,(lGt(),Nde)),305))&&e.a==t}function Xtt(t){var e;return!!(e=jz(yEt(t,(lGt(),Nde)),305))&&e.i==t}function Jtt(t,e){return vG(e),Mq(t),!!t.d.Ob()&&(e.td(t.d.Pb()),!0)}function Qtt(t){return Gut(t,NGt)>0?NGt:Gut(t,FZt)<0?FZt:fV(t)}function tet(t){return t<3?(dit(t,TZt),t+1):t<AZt?CJ(t/.75+1):NGt}function eet(t,e){var n;return null==t.i&&H$t(t),n=t.i,e>=0&&e<n.length?n[e]:null}function net(t,e,n){var i;if(null==e)throw $m(new gy);return i=UJ(t,e),e3(t,e,n),i}function iet(t){return t.a>=-.01&&t.a<=uJt&&(t.a=0),t.b>=-.01&&t.b<=uJt&&(t.b=0),t}function aet(t,e){return e==(ij(),ij(),_ne)?t.toLocaleLowerCase():t.toLowerCase()}function ret(t){return(2&t.i?"interface ":1&t.i?"":"class ")+(xB(t),t.o)}function oet(t){var e;e=new Dv,l8((!t.q&&(t.q=new tW(YIe,t,11,10)),t.q),e)}function set(t,e){var n;return n=e>0?e-1:e,DR(IR(jnt(IH(new qv,n),t.n),t.j),t.k)}function cet(t,e,n,i){t.j=-1,HDt(t,RSt(t,e,n),(XE(),jz(e,66).Mj().Ok(i)))}function uet(t){this.g=t,this.f=new Lm,this.a=i.Math.min(this.g.c.c,this.g.d.c)}function det(t){this.b=new Lm,this.a=new Lm,this.c=new Lm,this.d=new Lm,this.e=t}function het(t,e){this.a=new Om,this.e=new Om,this.b=(kut(),oye),this.c=t,this.b=e}function fet(t,e,n){LP.call(this),Met(this),this.a=t,this.c=n,this.b=e.d,this.f=e.e}function get(t){this.d=t,this.c=t.c.vc().Kc(),this.b=null,this.a=null,this.e=(nw(),qte)}function pet(t){if(t<0)throw $m(new Pw("Illegal Capacity: "+t));this.g=this.ri(t)}function bet(t,e){if(0>t||t>e)throw $m(new Rx("fromIndex: 0, toIndex: "+t+lXt+e))}function met(t){var e;if(t.a==t.b.a)throw $m(new yy);return e=t.a,t.c=e,t.a=t.a.e,e}function yet(t){var e;_N(!!t.c),e=t.c.a,Det(t.d,t.c),t.b==t.c?t.b=e:--t.a,t.c=null}function vet(t,e){var n;return Zht(t),n=new bK(t,t.a.rd(),4|t.a.qd(),e),new NU(t,n)}function wet(t,e){var n,i;return(n=jz(ddt(t.d,e),14))?(i=e,t.e.pc(i,n)):null}function xet(t,e){var n;for(n=t.Kc();n.Ob();)lct(jz(n.Pb(),70),(lGt(),rhe),e)}function Ret(t){var e;return(e=Hw(_B(yEt(t,(zYt(),abe)))))<0&&lct(t,abe,e=0),e}function _et(t,e,n){var a;jxt(n,a=i.Math.max(0,t.b/2-.5),1),Wz(e,new eS(n,a))}function ket(t,e,n){return CJ($H(t.a.e[jz(e.a,10).p]-t.a.e[jz(n.a,10).p]))}function Eet(t,e,n,i,a,r){var o;kQ(o=W6(i),a),_Q(o,r),XAt(t.a,i,new Ij(o,e,n.f))}function Cet(t,e){var n;if(!(n=OMt(t.Tg(),e)))throw $m(new Pw(i7t+e+o7t));return n}function Set(t,e){var n;for(n=t;KJ(n);)if((n=KJ(n))==e)return!0;return!1}function Tet(t,e){var n,i,a;for(i=e.a.cd(),n=jz(e.a.dd(),14).gc(),a=0;a<n;a++)t.td(i)}function Aet(t,e){var n,i,a,r;for(vG(e),a=0,r=(i=t.c).length;a<r;++a)n=i[a],e.td(n)}function Det(t,e){var n;return n=e.c,e.a.b=e.b,e.b.a=e.a,e.a=e.b=null,e.c=null,--t.b,n}function Iet(t,e){return!(!e||t.b[e.g]!=e||(DY(t.b,e.g,null),--t.c,0))}function Let(t,e){return!!Jat(t,e,fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15))))}function Oet(t,e){IF(jz(yEt(jz(t.e,10),(zYt(),tme)),98))&&(kK(),mL(jz(t.e,10).j,e))}function Met(t){t.b=(K8(),Kie),t.f=(H9(),iae),t.d=(dit(2,DZt),new K7(2)),t.e=new HR}function Net(){Net=D,Uie=new zC("BEGIN",0),Vie=new zC(eJt,1),qie=new zC("END",2)}function Bet(){Bet=D,VSe=new PT(eJt,0),qSe=new PT("HEAD",1),WSe=new PT("TAIL",2)}function Pet(){return lIt(),Cst(Hx(iIe,1),IZt,237,0,[eIe,JDe,QDe,XDe,tIe,ZDe,GDe,KDe])}function Fet(){return CSt(),Cst(Hx(kEe,1),IZt,277,0,[wEe,fEe,mEe,vEe,gEe,pEe,bEe,yEe])}function jet(){return wBt(),Cst(Hx(Zle,1),IZt,270,0,[$le,Ule,jle,Wle,Hle,zle,qle,Vle])}function $et(){return cMt(),Cst(Hx(Iye,1),IZt,260,0,[Tye,_ye,Cye,kye,Eye,Rye,Sye,Aye])}function zet(){zet=D,XTe=dut((Z_t(),Cst(Hx(JTe,1),IZt,98,0,[KTe,ZTe,GTe,qTe,YTe,WTe])))}function Het(){Het=D,Zie=(Net(),Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length,Gie=Zie}function Uet(t){this.b=(yY(t),new QF(t)),this.a=new Lm,this.d=new Lm,this.e=new HR}function Vet(t){var e;return(e=i.Math.sqrt(t.a*t.a+t.b*t.b))>0&&(t.a/=e,t.b/=e),t}function qet(t){var e;return t.w?t.w:((e=Y1(t))&&!e.kh()&&(t.w=e),e)}function Wet(t){var e;return null==t?null:Gkt(e=jz(t,190),e.length)}function Yet(t,e){if(null==t.g||e>=t.i)throw $m(new ID(e,t.i));return t.li(e,t.g[e])}function Get(t){var e,n;for(e=t.a.d.j,n=t.c.d.j;e!=n;)sat(t.b,e),e=kht(e);sat(t.b,e)}function Zet(t){var e;for(e=0;e<t.c.length;e++)(u1(e,t.c.length),jz(t.c[e],11)).p=e}function Ket(t,e,n){var i,a,r;for(a=e[n],i=0;i<a.length;i++)r=a[i],t.e[r.c.p][r.p]=i}function Xet(t,e){var n,i,a,r;for(a=0,r=(i=t.d).length;a<r;++a)n=i[a],uO(t.g,n).a=e}function Jet(t,e){var n;for(n=cmt(t,0);n.b!=n.d.c;)VP(jz(d4(n),8),e);return t}function Qet(t,e){return qP(jL(jz(NY(t.g,e),8)),PL(jz(NY(t.f,e),460).b))}function tnt(t){var e;return p2(t.e,t),EN(t.b),t.c=t.a,e=jz(t.a.Pb(),42),t.b=gst(t),e}function ent(t){var e;return KH(null==t||Array.isArray(t)&&!((e=btt(t))>=14&&e<=16)),t}function nnt(t,e,n){var i=function(){return t.apply(i,arguments)};return e.apply(i,n),i}function int(t,e,n){var i,a;i=e;do{a=Hw(t.p[i.p])+n,t.p[i.p]=a,i=t.a[i.p]}while(i!=e)}function ant(t,e){var n,i;i=t.a,n=Zdt(t,e,null),i!=e&&!t.e&&(n=rqt(t,e,n)),n&&n.Fi()}function rnt(t,e){return cL(),iit(PZt),i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)}function ont(t,e){return cL(),iit(PZt),i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)}function snt(t,e){return FEt(),xL(t.b.c.length-t.e.c.length,e.b.c.length-e.e.c.length)}function cnt(t,e){return XR(Xat(t,e,fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15)))))}function lnt(){lnt=D,Ase=dut((oCt(),Cst(Hx(Dse,1),IZt,267,0,[Sse,Cse,kse,Tse,Ese,_se])))}function unt(){unt=D,QEe=dut((f_t(),Cst(Hx(BSe,1),IZt,291,0,[JEe,XEe,KEe,GEe,YEe,ZEe])))}function dnt(){dnt=D,OEe=dut((fyt(),Cst(Hx(WEe,1),IZt,248,0,[SEe,DEe,IEe,LEe,TEe,AEe])))}function hnt(){hnt=D,nue=dut((ISt(),Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])))}function fnt(){fnt=D,ode=dut((XEt(),Cst(Hx(sde,1),IZt,275,0,[ade,ede,rde,ide,nde,tde])))}function gnt(){gnt=D,Jue=dut(($Rt(),Cst(Hx(Que,1),IZt,274,0,[Zue,Gue,Xue,Yue,Kue,Wue])))}function pnt(){pnt=D,nye=dut((_kt(),Cst(Hx(iye,1),IZt,313,0,[tye,Jme,Kme,Xme,eye,Qme])))}function bnt(){bnt=D,$ue=dut((pCt(),Cst(Hx(zue,1),IZt,276,0,[Nue,Mue,Pue,Bue,jue,Fue])))}function mnt(){mnt=D,Kwe=dut((NSt(),Cst(Hx(Nxe,1),IZt,327,0,[Zwe,qwe,Ywe,Wwe,Gwe,Vwe])))}function ynt(){ynt=D,rAe=dut((dAt(),Cst(Hx(oAe,1),IZt,273,0,[iAe,eAe,nAe,tAe,QTe,aAe])))}function vnt(){vnt=D,sTe=dut((Qkt(),Cst(Hx(pTe,1),IZt,312,0,[rTe,iTe,oTe,eTe,aTe,nTe])))}function wnt(){return QIt(),Cst(Hx(PTe,1),IZt,93,0,[TTe,STe,DTe,NTe,MTe,OTe,ITe,LTe,ATe])}function xnt(t,e){var n;n=t.a,t.a=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,0,n,t.a))}function Rnt(t,e){var n;n=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,1,n,t.b))}function _nt(t,e){var n;n=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,3,n,t.b))}function knt(t,e){var n;n=t.f,t.f=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,3,n,t.f))}function Ent(t,e){var n;n=t.g,t.g=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,4,n,t.g))}function Cnt(t,e){var n;n=t.i,t.i=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,5,n,t.i))}function Snt(t,e){var n;n=t.j,t.j=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,6,n,t.j))}function Tnt(t,e){var n;n=t.j,t.j=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,1,n,t.j))}function Ant(t,e){var n;n=t.c,t.c=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,4,n,t.c))}function Dnt(t,e){var n;n=t.k,t.k=e,4&t.Db&&!(1&t.Db)&&hot(t,new l3(t,2,n,t.k))}function Int(t,e){var n;n=t.d,t.d=e,4&t.Db&&!(1&t.Db)&&hot(t,new u3(t,2,n,t.d))}function Lnt(t,e){var n;n=t.s,t.s=e,4&t.Db&&!(1&t.Db)&&hot(t,new u3(t,4,n,t.s))}function Ont(t,e){var n;n=t.t,t.t=e,4&t.Db&&!(1&t.Db)&&hot(t,new u3(t,5,n,t.t))}function Mnt(t,e){var n;n=t.F,t.F=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,5,n,e))}function Nnt(t,e){var n;return(n=jz(NY((JE(),bIe),t),55))?n.xj(e):O5(Dte,zGt,1,e,5,1)}function Bnt(t,e){var n;return e in t.a&&(n=UJ(t,e).he())?n.a:null}function Pnt(t,e){var n,i;return QR(),i=new cc,e&&TMt(i,e),Mit(n=i,t),n}function Fnt(t,e,n){if(Mlt(t,n),!t.Bk()&&null!=n&&!t.wj(n))throw $m(new uy);return n}function jnt(t,e){return t.n=e,t.n?(t.f=new Lm,t.e=new Lm):(t.f=null,t.e=null),t}function $nt(t,e,n,i,a,r){var o;return Znt(n,o=mY(t,e)),o.i=a?8:0,o.f=i,o.e=a,o.g=r,o}function znt(t,e,n,i,a){this.d=e,this.k=i,this.f=a,this.o=-1,this.p=1,this.c=t,this.a=n}function Hnt(t,e,n,i,a){this.d=e,this.k=i,this.f=a,this.o=-1,this.p=2,this.c=t,this.a=n}function Unt(t,e,n,i,a){this.d=e,this.k=i,this.f=a,this.o=-1,this.p=6,this.c=t,this.a=n}function Vnt(t,e,n,i,a){this.d=e,this.k=i,this.f=a,this.o=-1,this.p=7,this.c=t,this.a=n}function qnt(t,e,n,i,a){this.d=e,this.j=i,this.e=a,this.o=-1,this.p=4,this.c=t,this.a=n}function Wnt(t,e){var n,i,a,r;for(a=0,r=(i=e).length;a<r;++a)n=i[a],Y8(t.a,n);return t}function Ynt(t){var e,n,i;for(n=0,i=(e=t).length;n<i;++n)yY(e[n]);return new AD(t)}function Gnt(t){var e=/function(?:\s+([\w$]+))?\s*\(/.exec(t);return e&&e[1]||VZt}function Znt(t,e){if(t){e.n=t;var n=VJ(e);if(!n)return void(EGt[t]=[e]);n.gm=e}}function Knt(t,e,n){var a;return a=t.length,FTt(t,0,e,0,i.Math.min(n,a),!0),e}function Xnt(t,e,n){var i,a;for(a=e.Kc();a.Ob();)i=jz(a.Pb(),79),RW(t,jz(n.Kb(i),33))}function Jnt(){Z_();for(var t=CGt,e=0;e<arguments.length;e++)t.push(arguments[e])}function Qnt(t,e){var n,i,a;for(i=0,a=(n=e).length;i<a;++i)n6(t,n[i],t.c.b,t.c)}function tit(t,e){t.b=i.Math.max(t.b,e.d),t.e+=e.r+(0==t.a.c.length?0:t.c),Wz(t.a,e)}function eit(t){_N(t.c>=0),ibt(t.d,t.c)<0&&(t.a=t.a-1&t.d.a.length-1,t.b=t.d.c),t.c=-1}function nit(t){return t.a<54?t.f<0?-1:t.f>0?1:0:(!t.c&&(t.c=vut(t.f)),t.c).e}function iit(t){if(!(t>=0))throw $m(new Pw("tolerance ("+t+") must be >= 0"));return t}function ait(){return iEe||wlt(iEe=new APt,Cst(Hx(Tie,1),zGt,130,0,[new Id])),iEe}function rit(){rit=D,Uye=new US(lJt,0),zye=new US("INPUT",1),Hye=new US("OUTPUT",2)}function oit(){oit=D,fue=new _S("ARD",0),pue=new _S("MSD",1),gue=new _S("MANUAL",2)}function sit(){sit=D,Ave=new ZS("BARYCENTER",0),Dve=new ZS(R1t,1),Ive=new ZS(_1t,2)}function cit(t,e){var n;if(n=t.gc(),e<0||e>n)throw $m(new QP(e,n));return new NF(t,e)}function lit(t,e){var n;return iO(e,42)?t.c.Mc(e):(n=ipt(t,e),Ypt(t,e),n)}function uit(t,e,n){return Tut(t,e),Oat(t,n),Lnt(t,0),Ont(t,1),Qdt(t,!0),Kdt(t,!0),t}function dit(t,e){if(t<0)throw $m(new Pw(e+" cannot be negative but was: "+t));return t}function hit(t,e){var n,i;for(n=0,i=t.gc();n<i;++n)if(iZ(e,t.Xb(n)))return n;return-1}function fit(t){var e;for(e=t.c.Cc().Kc();e.Ob();)jz(e.Pb(),14).$b();t.c.$b(),t.d=0}function git(t){var e,n,i,a;for(i=0,a=(n=t.a).length;i<a;++i)GW(e=n[i],e.length,null)}function pit(t){var e,n;if(0==t)return 32;for(n=0,e=1;!(e&t);e<<=1)++n;return n}function bit(t){var e;for(e=new Wf(ewt(t));e.a<e.c.c.length;)jz(J1(e),680).Gf()}function mit(t){bE(),this.g=new Om,this.f=new Om,this.b=new Om,this.c=new pJ,this.i=t}function yit(){this.f=new HR,this.d=new hv,this.c=new HR,this.a=new Lm,this.b=new Lm}function vit(t,e,n,i){this.rj(),this.a=e,this.b=t,this.c=null,this.c=new uF(this,e,n,i)}function wit(t,e,n,i,a){this.d=t,this.n=e,this.g=n,this.o=i,this.p=-1,a||(this.o=-2-i-1)}function xit(){TO.call(this),this.n=-1,this.g=null,this.i=null,this.j=null,this.Bb|=w7t}function Rit(){return QFt(),Cst(Hx(XAe,1),IZt,259,0,[UAe,qAe,HAe,WAe,YAe,ZAe,GAe,VAe,zAe])}function _it(){return tPt(),Cst(Hx(jie,1),IZt,250,0,[Pie,Lie,Oie,Iie,Nie,Bie,Mie,Die,Aie])}function kit(){kit=D,Aee=Cst(Hx(TMe,1),lKt,25,15,[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15])}function Eit(){Eit=D,vve=fU(fU(fU(new j2,(vEt(),Boe),(dGt(),ace)),Poe,Ace),Foe,Tce)}function Cit(){Cit=D,wve=fU(fU(fU(new j2,(vEt(),Boe),(dGt(),ace)),Poe,Ace),Foe,Tce)}function Sit(){Sit=D,_ve=fU(fU(fU(new j2,(vEt(),Boe),(dGt(),ace)),Poe,Ace),Foe,Tce)}function Tit(){Tit=D,Cve=WV(fU(fU(new j2,(vEt(),Foe),(dGt(),Lce)),joe,Rce),$oe,Ice)}function Ait(){Ait=D,lue=new RS("LAYER_SWEEP",0),cue=new RS($1t,1),uue=new RS(ZQt,2)}function Dit(t,e){var n,i;return n=t.c,(i=e.e[t.p])>0?jz(OU(n.a,i-1),10):null}function Iit(t,e){var n;n=t.k,t.k=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,2,n,t.k))}function Lit(t,e){var n;n=t.f,t.f=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,8,n,t.f))}function Oit(t,e){var n;n=t.i,t.i=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,7,n,t.i))}function Mit(t,e){var n;n=t.a,t.a=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,8,n,t.a))}function Nit(t,e){var n;n=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,0,n,t.b))}function Bit(t,e){var n;n=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,0,n,t.b))}function Pit(t,e){var n;n=t.c,t.c=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,1,n,t.c))}function Fit(t,e){var n;n=t.c,t.c=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,1,n,t.c))}function jit(t,e){var n;n=t.c,t.c=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,4,n,t.c))}function $it(t,e){var n;n=t.d,t.d=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,1,n,t.d))}function zit(t,e){var n;n=t.D,t.D=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,2,n,t.D))}function Hit(t,e){t.r>0&&t.c<t.r&&(t.c+=e,t.i&&t.i.d>0&&0!=t.g&&Hit(t.i,e/t.r*t.i.d))}function Uit(t,e,n){var i;t.b=e,t.a=n,i=512==(512&t.a)?new Fv:new Bu,t.c=kBt(i,t.b,t.a)}function Vit(t,e){return INt(t.e,e)?(XE(),ctt(e)?new uU(e,t):new OA(e,t)):new BA(e,t)}function qit(t,e){return KR(Jat(t.a,e,fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15)))))}function Wit(t,e,n){return O9(t,new lg(e),new ot,new ug(n),Cst(Hx(Jne,1),IZt,132,0,[]))}function Yit(t){return 0>t?new Yk:new DB(null,new m6(t+1,t))}function Git(t,e){var n;return kK(),n=new qk(1),qA(t)?mQ(n,t,e):xTt(n.f,t,e),new qf(n)}function Zit(t,e){var n,i;return(n=t.o+t.p)<(i=e.o+e.p)?-1:n==i?0:1}function Kit(t){var e;return iO(e=yEt(t,(lGt(),fhe)),160)?ygt(jz(e,160)):null}function Xit(t){var e;return(t=i.Math.max(t,2))>(e=wct(t))?(e<<=1)>0?e:AZt:e}function Jit(t){switch(rM(3!=t.e),t.e){case 2:return!1;case 0:return!0}return P6(t)}function Qit(t,e){var n;return!!iO(e,8)&&(n=jz(e,8),t.a==n.a&&t.b==n.b)}function tat(t,e,n){var i,a;return a=e>>5,i=31&e,t0(wq(t.n[n][a],fV(yq(i,1))),3)}function eat(t,e){var n,i;for(i=e.vc().Kc();i.Ob();)mRt(t,(n=jz(i.Pb(),42)).cd(),n.dd())}function nat(t,e){var n;n=new ne,jz(e.b,65),jz(e.b,65),jz(e.b,65),Aet(e.a,new Rz(t,n,e))}function iat(t,e){var n;n=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,21,n,t.b))}function aat(t,e){var n;n=t.d,t.d=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,11,n,t.d))}function rat(t,e){var n;n=t.j,t.j=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,13,n,t.j))}function oat(t,e,n){var i,a,r;for(r=t.a.length-1,a=t.b,i=0;i<n;a=a+1&r,++i)DY(e,i,t.a[a])}function sat(t,e){var n;return vG(e),n=e.g,!t.b[n]&&(DY(t.b,n,e),++t.c,!0)}function cat(t,e){var n;return!((n=null==e?-1:x9(t.b,e,0))<0||(lat(t,n),0))}function lat(t,e){var n;n=s7(t.b,t.b.c.length-1),e<t.b.c.length&&(i6(t.b,e,n),PTt(t,e))}function uat(t,e){0==(v6(),qne?null:e.c).length&&UB(e,new Y),mQ(t.a,qne?null:e.c,e)}function dat(t,e){Akt(e,"Hierarchical port constraint processing",1),hmt(t),KYt(t),zCt(e)}function hat(t,e){var n,i;for(i=e.Kc();i.Ob();)n=jz(i.Pb(),266),t.b=!0,RW(t.e,n),n.b=t}function fat(t,e){var n,i;return n=1-e,i=t.a[n],t.a[n]=i.a[e],i.a[e]=t,t.b=!0,i.b=!1,i}function gat(t,e){var n,i;return n=jz(yEt(t,(zYt(),sme)),8),i=jz(yEt(e,sme),8),Cht(n.b,i.b)}function pat(t){NV.call(this),this.b=Hw(_B(yEt(t,(zYt(),yme)))),this.a=jz(yEt(t,Xpe),218)}function bat(t,e,n){H2.call(this,t,e,n),this.a=new Om,this.b=new Om,this.d=new Wp(this)}function mat(t){this.e=t,this.d=new d_(tet(gq(this.e).gc())),this.c=this.e.a,this.b=this.e.c}function yat(t){this.b=t,this.a=O5(TMe,lKt,25,t+1,15,1),this.c=O5(TMe,lKt,25,t,15,1),this.d=0}function vat(t,e,n){var i;return xNt(t,e,i=new Lm,n,!0,!0),t.b=new yat(i.c.length),i}function wat(t,e){var n;return(n=jz(NY(t.c,e),458))||((n=new iv).c=e,YG(t.c,n.c,n)),n}function xat(t,e){var n=t.a,i=0;for(var a in n)n.hasOwnProperty(a)&&(e[i++]=a);return e}function Rat(t){return null==t.b?(ZE(),ZE(),LLe):t.Lk()?t.Kk():t.Jk()}function _at(t){var e,n;for(n=new AO(t);n.e!=n.i.gc();)Cnt(e=jz(wmt(n),33),0),Snt(e,0)}function kat(){kat=D,soe=new rm(AQt),coe=new rm(DQt),ooe=new rm(IQt),roe=new rm(LQt)}function Eat(){Eat=D,Hse=new XC("TO_INTERNAL_LTR",0),zse=new XC("TO_INPUT_DIRECTION",1)}function Cat(){Cat=D,Zxe=new fT("P1_NODE_PLACEMENT",0),Kxe=new fT("P2_EDGE_ROUTING",1)}function Sat(){Sat=D,Ble=new vS("START",0),Nle=new vS("MIDDLE",1),Mle=new vS("END",2)}function Tat(){Tat=D,Qce=new eP("edgelabelcenterednessanalysis.includelabel",(cM(),mee))}function Aat(t,e){Kk(AZ(new NU(null,new h1(new Cf(t.b),1)),new KT(t,e)),new JT(t,e))}function Dat(){this.c=new S_(0),this.b=new S_($4t),this.d=new S_(j4t),this.a=new S_(XJt)}function Iat(t){var e,n;for(n=t.c.a.ec().Kc();n.Ob();)Uh(e=jz(n.Pb(),214),new zEt(e.e))}function Lat(t){var e,n;for(n=t.c.a.ec().Kc();n.Ob();)Hh(e=jz(n.Pb(),214),new Yq(e.f))}function Oat(t,e){var n;n=t.zb,t.zb=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,1,n,t.zb))}function Mat(t,e){var n;n=t.xb,t.xb=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,3,n,t.xb))}function Nat(t,e){var n;n=t.yb,t.yb=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,2,n,t.yb))}function Bat(t,e){var n;(n=new Tv).n=e,l8((!t.s&&(t.s=new tW(PIe,t,21,17)),t.s),n)}function Pat(t,e){var n;(n=new pB).n=e,l8((!t.s&&(t.s=new tW(PIe,t,21,17)),t.s),n)}function Fat(t,e){var n,i;for(U8(n=t.Pc(),0,n.length,e),i=0;i<n.length;i++)t._c(i,n[i])}function jat(t,e){var n,i,a;for(vG(e),n=!1,a=e.Kc();a.Ob();)i=a.Pb(),n|=t.Fc(i);return n}function $at(t){var e,n,i;for(e=0,i=t.Kc();i.Ob();)e=~~(e+=null!=(n=i.Pb())?Qct(n):0);return e}function zat(t){var e;return 0==t?"UTC":(t<0?(t=-t,e="UTC+"):e="UTC-",e+dtt(t))}function Hat(t,e){var n;return iO(e,14)?(n=jz(e,14),t.Gc(n)):ltt(t,jz(yY(e),20).Kc())}function Uat(t,e,n){het.call(this,e,n),this.d=O5(Rse,r1t,10,t.a.c.length,0,1),Zbt(t.a,this.d)}function Vat(t){t.a=null,t.e=null,t.b.c=O5(Dte,zGt,1,0,5,1),t.f.c=O5(Dte,zGt,1,0,5,1),t.c=null}function qat(t,e){e?null==t.B&&(t.B=t.D,t.D=null):null!=t.B&&(t.D=t.B,t.B=null)}function Wat(t,e){return Hw(_B(DM(Idt(DZ(new NU(null,new h1(t.c.b,16)),new Op(t)),e))))}function Yat(t,e){return Hw(_B(DM(Idt(DZ(new NU(null,new h1(t.c.b,16)),new Lp(t)),e))))}function Gat(t,e){Akt(e,w1t,1),Kk(htt(new NU(null,new h1(t.b,16)),new Je),new Qe),zCt(e)}function Zat(t,e){var n,i;return n=jz(JIt(t,(qwt(),IRe)),19),i=jz(JIt(e,IRe),19),xL(n.a,i.a)}function Kat(t,e,n){var i,a;for(a=cmt(t,0);a.b!=a.d.c;)(i=jz(d4(a),8)).a+=e,i.b+=n;return t}function Xat(t,e,n){var i;for(i=t.b[n&t.f];i;i=i.b)if(n==i.a&&hG(e,i.g))return i;return null}function Jat(t,e,n){var i;for(i=t.c[n&t.f];i;i=i.d)if(n==i.f&&hG(e,i.i))return i;return null}function Qat(t,e,n){var i,a,r;for(i=0,a=0;a<n;a++)r=e[a],t[a]=r<<1|i,i=r>>>31;0!=i&&(t[n]=i)}function trt(t,e){var n,i;for(kK(),i=new Lm,n=0;n<t;++n)i.c[i.c.length]=e;return new Dx(i)}function ert(t){var e;return GA((e=R2(t)).a,0)?(cE(),cE(),Ene):(cE(),new yN(e.b))}function nrt(t){var e;return GA((e=R2(t)).a,0)?(cE(),cE(),Ene):(cE(),new yN(e.c))}function irt(t){var e;return GA((e=x2(t)).a,0)?(lE(),lE(),Cne):(lE(),new vN(e.b))}function art(t){return t.b.c.i.k==(oCt(),kse)?jz(yEt(t.b.c.i,(lGt(),fhe)),11):t.b.c}function rrt(t){return t.b.d.i.k==(oCt(),kse)?jz(yEt(t.b.d.i,(lGt(),fhe)),11):t.b.d}function ort(t,e,n,i,a,r,o,s,c,l,u,d,h){return hTt(t,e,n,i,a,r,o,s,c,l,u,d,h),Uht(t,!1),t}function srt(t,e,n,i,a,r,o){gk.call(this,t,e),this.d=n,this.e=i,this.c=a,this.b=r,this.a=r7(o)}function crt(t,e){typeof window===DGt&&typeof window.$gwt===DGt&&(window.$gwt[t]=e)}function lrt(t,e){return Dst(),t==Joe&&e==ese||t==ese&&e==Joe||t==tse&&e==Qoe||t==Qoe&&e==tse}function urt(t,e){return Dst(),t==Joe&&e==Qoe||t==Joe&&e==tse||t==ese&&e==tse||t==ese&&e==Qoe}function drt(t,e){return cL(),iit(uJt),i.Math.abs(0-e)<=uJt||0==e||isNaN(0)&&isNaN(e)?0:t/e}function hrt(){return hBt(),Cst(Hx(vde,1),IZt,256,0,[lde,dde,hde,fde,gde,pde,mde,cde,ude,bde])}function frt(){frt=D,kLe=new Sv,CLe=Cst(Hx(PIe,1),O8t,170,0,[]),ELe=Cst(Hx(YIe,1),M8t,59,0,[])}function grt(){grt=D,cve=new YS("NO",0),ove=new YS("GREEDY",1),sve=new YS("LOOK_BACK",2)}function prt(){prt=D,Nse=new ze,Ose=new $e,Mse=new He,Lse=new Ue,Bse=new Ve,Pse=new qe}function brt(t){var e,n;for(n=0,e=new Wf(t.b);e.a<e.c.c.length;)jz(J1(e),29).p=n,++n}function mrt(t,e){var n;return IAt(new OT((n=Fkt(t)).c,n.d),new OT(n.b,n.a),t.rf(),e,t.Hf())}function yrt(t,e){var n;return t.b?null:(n=set(t,t.g),MH(t.a,n),n.i=t,t.d=e,n)}function vrt(t,e,n){Akt(n,"DFS Treeifying phase",1),xpt(t,e),aNt(t,e),t.a=null,t.b=null,zCt(n)}function wrt(t,e,n){this.g=t,this.d=e,this.e=n,this.a=new Lm,qTt(this),kK(),mL(this.a,null)}function xrt(t){this.i=t.gc(),this.i>0&&(this.g=this.ri(this.i+(this.i/8|0)+1),t.Qc(this.g))}function Rrt(t,e){_H.call(this,qLe,t,e),this.b=this,this.a=rNt(t.Tg(),eet(this.e.Tg(),this.c))}function _rt(t,e){var n,i;for(vG(e),i=e.vc().Kc();i.Ob();)n=jz(i.Pb(),42),t.zc(n.cd(),n.dd())}function krt(t,e,n){var i;for(i=n.Kc();i.Ob();)if(!H4(t,e,i.Pb()))return!1;return!0}function Ert(t,e,n,i,a){var r;return n&&(r=Dgt(e.Tg(),t.c),a=n.gh(e,-1-(-1==r?i:r),null,a)),a}function Crt(t,e,n,i,a){var r;return n&&(r=Dgt(e.Tg(),t.c),a=n.ih(e,-1-(-1==r?i:r),null,a)),a}function Srt(t){var e;if(-2==t.b){if(0==t.e)e=-1;else for(e=0;0==t.a[e];e++);t.b=e}return t.b}function Trt(t){switch(t.g){case 2:return wWt(),SAe;case 4:return wWt(),sAe;default:return t}}function Art(t){switch(t.g){case 1:return wWt(),EAe;case 3:return wWt(),cAe;default:return t}}function Drt(t){var e,n,i;return t.j==(wWt(),cAe)&&(n=kM(e=qDt(t),sAe),(i=kM(e,SAe))||i&&n)}function Irt(t){var e;return new ZF(e=jz(t.e&&t.e(),9),jz(YW(e,e.length),9),e.length)}function Lrt(t,e){Akt(e,w1t,1),tgt(sE(new Eg((gE(),new $Z(t,!1,!1,new je))))),zCt(e)}function Ort(t,e){return cM(),qA(t)?l7(t,kB(e)):VA(t)?Rq(t,_B(e)):UA(t)?xq(t,RB(e)):t.wd(e)}function Mrt(t,e){e.q=t,t.d=i.Math.max(t.d,e.r),t.b+=e.d+(0==t.a.c.length?0:t.c),Wz(t.a,e)}function Nrt(t,e){var n,i,a,r;return a=t.c,n=t.c+t.b,r=t.d,i=t.d+t.a,e.a>a&&e.a<n&&e.b>r&&e.b<i}function Brt(t,e,n,i){iO(t.Cb,179)&&(jz(t.Cb,179).tb=null),Oat(t,n),e&&FAt(t,e),i&&t.xk(!0)}function Prt(t,e){var n;zK(n=jz(e,183),"x",t.i),zK(n,"y",t.j),zK(n,S7t,t.g),zK(n,C7t,t.f)}function Frt(){Frt=D,Sve=sbt(wD(fU(fU(new j2,(vEt(),Foe),(dGt(),Lce)),joe,Rce),$oe),Ice)}function jrt(){jrt=D,Mve=sbt(wD(fU(fU(new j2,(vEt(),Foe),(dGt(),Lce)),joe,Rce),$oe),Ice)}function $rt(){$rt=D,WRe=new yT(ZQt,0),YRe=new yT("POLAR_COORDINATE",1),qRe=new yT("ID",2)}function zrt(){zrt=D,Wye=new VS("EQUALLY",0),Yye=new VS(yJt,1),Gye=new VS("NORTH_SOUTH",2)}function Hrt(){Hrt=D,Dye=dut((cMt(),Cst(Hx(Iye,1),IZt,260,0,[Tye,_ye,Cye,kye,Eye,Rye,Sye,Aye])))}function Urt(){Urt=D,Yle=dut((wBt(),Cst(Hx(Zle,1),IZt,270,0,[$le,Ule,jle,Wle,Hle,zle,qle,Vle])))}function Vrt(){Vrt=D,xEe=dut((CSt(),Cst(Hx(kEe,1),IZt,277,0,[wEe,fEe,mEe,vEe,gEe,pEe,bEe,yEe])))}function qrt(){qrt=D,nIe=dut((lIt(),Cst(Hx(iIe,1),IZt,237,0,[eIe,JDe,QDe,XDe,tIe,ZDe,GDe,KDe])))}function Wrt(){Wrt=D,Gae=new eP("debugSVG",(cM(),!1)),Zae=new eP("overlapsExisted",!0)}function Yrt(t,e){return O9(new og(t),new sg(e),new cg(e),new et,Cst(Hx(Jne,1),IZt,132,0,[]))}function Grt(){var t;return zne||(zne=new By,ZI(t=new y6(""),(uE(),$ne)),uat(zne,t)),zne}function Zrt(t,e){for(yY(e);t.Ob();)if(!Zot(jz(t.Pb(),10)))return!1;return!0}function Krt(t,e){var n;return!!(n=WPt(ait(),t))&&(Kmt(e,(cGt(),mSe),n),!0)}function Xrt(t,e){var n;for(n=0;n<e.j.c.length;n++)jz(M9(t,n),21).Gc(jz(M9(e,n),14));return t}function Jrt(t,e){var n,i;for(i=new Wf(e.b);i.a<i.c.c.length;)n=jz(J1(i),29),t.a[n.p]=ZEt(n)}function Qrt(t,e){var n,i;for(vG(e),i=t.vc().Kc();i.Ob();)n=jz(i.Pb(),42),e.Od(n.cd(),n.dd())}function tot(t,e){iO(e,83)?(jz(t.c,76).Xj(),eat(t,jz(e,83))):jz(t.c,76).Wb(e)}function eot(t){return iO(t,152)?o7(jz(t,152)):iO(t,131)?jz(t,131).a:iO(t,54)?new lw(t):new Ck(t)}function not(t,e){return e<t.b.gc()?jz(t.b.Xb(e),10):e==t.b.gc()?t.a:jz(OU(t.e,e-t.b.gc()-1),10)}function iot(t,e){t.a=ift(t.a,1),t.c=i.Math.min(t.c,e),t.b=i.Math.max(t.b,e),t.d=ift(t.d,e)}function aot(t,e){Akt(e,"Edge and layer constraint edge reversal",1),jqt(LPt(t)),zCt(e)}function rot(t){var e;null==t.d?(++t.e,t.f=0,idt(null)):(++t.e,e=t.d,t.d=null,t.f=0,idt(e))}function oot(t){var e;return 0==(e=t.h)?t.l+t.m*TKt:e==CKt?t.l+t.m*TKt-AKt:t}function sot(t){return zB(),t.A.Hc((ypt(),NAe))&&!t.B.Hc((QFt(),qAe))?Qgt(t):null}function cot(t){if(vG(t),0==t.length)throw $m(new _x("Zero length BigInteger"));nFt(this,t)}function lot(t){if(!t)throw $m(new Fw("no calls to next() since the last call to remove()"))}function uot(t){return IKt<t&&t<AKt?t<0?i.Math.ceil(t):i.Math.floor(t):oot(pMt(t))}function dot(t,e){var n,i,a;for(n=t.c.Ee(),a=e.Kc();a.Ob();)i=a.Pb(),t.a.Od(n,i);return t.b.Kb(n)}function hot(t,e){var n,i,a;if(null!=(n=t.Jg())&&t.Mg())for(i=0,a=n.length;i<a;++i)n[i].ui(e)}function fot(t,e){var n,i;for(i=bG(n=t).e;i;){if((n=i)==e)return!0;i=bG(n).e}return!1}function got(t,e,n){var i,a;return(i=t.a.f[e.p])<(a=t.a.f[n.p])?-1:i==a?0:1}function pot(t,e,n){var i,a;return a=jz(VF(t.d,e),19),i=jz(VF(t.b,n),19),a&&i?V7(t,a.a,i.a):null}function bot(t,e){var n,i;for(i=new AO(t);i.e!=i.i.gc();)kI(n=jz(wmt(i),33),n.i+e.b,n.j+e.d)}function mot(t,e){var n,i;for(i=new Wf(e);i.a<i.c.c.length;)n=jz(J1(i),70),Wz(t.d,n),PEt(t,n)}function yot(t,e){var n,i;i=new Lm,n=e;do{i.c[i.c.length]=n,n=jz(NY(t.k,n),17)}while(n);return i}function vot(t,e){var n;return t.Db&e?-1==(n=Bvt(t,e))?t.Eb:ent(t.Eb)[n]:null}function wot(t,e){var n;return(n=new Bd).G=e,!t.rb&&(t.rb=new Kq(t,jIe,t)),l8(t.rb,n),n}function xot(t,e){var n;return(n=new xy).G=e,!t.rb&&(t.rb=new Kq(t,jIe,t)),l8(t.rb,n),n}function Rot(t,e){switch(e){case 1:return!!t.n&&0!=t.n.i;case 2:return null!=t.k}return m0(t,e)}function _ot(t){switch(t.a.g){case 1:return new xA;case 3:return new lwt;default:return new Cd}}function kot(t){var e;if(t.g>1||t.Ob())return++t.a,t.g=0,e=t.i,t.Ob(),e;throw $m(new yy)}function Eot(t){var e;return aL(),rC(swe,t)||((e=new so).a=t,hP(swe,t,e)),jz(oZ(swe,t),635)}function Cot(t){var e,n,i;return n=0,(i=t)<0&&(i+=AKt,n=CKt),e=CJ(i/TKt),_L(CJ(i-e*TKt),e,n)}function Sot(t){var e,n,i;for(i=0,n=new Gk(t.a);n.a<n.c.a.length;)e=r3(n),t.b.Hc(e)&&++i;return i}function Tot(t){var e,n,i;for(e=1,i=t.Kc();i.Ob();)e=~~(e=31*e+(null==(n=i.Pb())?0:Qct(n)));return e}function Aot(t,e){var n;this.c=t,pvt(t,n=new Lm,e,t.b,null,!1,null,!1),this.a=new _2(n,0)}function Dot(t,e){this.b=t,this.e=e,this.d=e.j,this.f=(XE(),jz(t,66).Oj()),this.k=rNt(e.e.Tg(),t)}function Iot(t,e,n){this.b=(vG(t),t),this.d=(vG(e),e),this.e=(vG(n),n),this.c=this.d+""+this.e}function Lot(){this.a=jz(ymt((uPt(),zre)),19).a,this.c=Hw(_B(ymt(ioe))),this.b=Hw(_B(ymt(Qre)))}function Oot(){Oot=D,BTe=dut((QIt(),Cst(Hx(PTe,1),IZt,93,0,[TTe,STe,DTe,NTe,MTe,OTe,ITe,LTe,ATe])))}function Mot(){Mot=D,Fie=dut((tPt(),Cst(Hx(jie,1),IZt,250,0,[Pie,Lie,Oie,Iie,Nie,Bie,Mie,Die,Aie])))}function Not(){Not=D,Bae=new VC("UP",0),Oae=new VC(bJt,1),Mae=new VC(aJt,2),Nae=new VC(rJt,3)}function Bot(){Bot=D,sQ(),yxe=new DD(W4t,vxe=Bxe),j0(),bxe=new DD(Y4t,mxe=zxe)}function Pot(){Pot=D,xde=new LS("ONE_SIDED",0),Rde=new LS("TWO_SIDED",1),wde=new LS("OFF",2)}function Fot(t){t.r=new Ny,t.w=new Ny,t.t=new Lm,t.i=new Lm,t.d=new Ny,t.a=new dI,t.c=new Om}function jot(t){this.n=new Lm,this.e=new Zk,this.j=new Zk,this.k=new Lm,this.f=new Lm,this.p=t}function $ot(t,e){t.c&&(XFt(t,e,!0),Kk(new NU(null,new h1(e,16)),new zp(t))),XFt(t,e,!1)}function zot(t,e,n){return t==(sit(),Ive)?new Sr:0!=zLt(e,1)?new NR(n.length):new MR(n.length)}function Hot(t,e){var n;return e&&((n=e.Ve()).dc()||(t.q?_rt(t.q,n):t.q=new mD(n))),t}function Uot(t,e){var n;return void 0===(n=t.a.get(e))?++t.d:(mP(t.a,e),--t.c,oX(t.b)),n}function Vot(t,e){var n;return 0==(n=e.p-t.p)?Cht(t.f.a*t.f.b,e.f.a*e.f.b):n}function qot(t,e){var n,i;return(n=t.f.c.length)<(i=e.f.c.length)?-1:n==i?0:1}function Wot(t){return 0!=t.b.c.length&&jz(OU(t.b,0),70).a?jz(OU(t.b,0),70).a:tK(t)}function Yot(t){var e;if(t){if((e=t).dc())throw $m(new yy);return e.Xb(e.gc()-1)}return r1(t.Kc())}function Got(t){var e;return Gut(t,0)<0&&(t=rH(t)),64-(0!=(e=fV(vq(t,32)))?JAt(e):JAt(fV(t))+32)}function Zot(t){var e;return e=jz(yEt(t,(lGt(),Gde)),61),t.k==(oCt(),kse)&&(e==(wWt(),SAe)||e==sAe)}function Kot(t,e,n){var i,a;(a=jz(yEt(t,(zYt(),bbe)),74))&&(Ylt(i=new vv,0,a),Jet(i,n),jat(e,i))}function Xot(t,e,n){var i,a,r,o;i=(o=bG(t)).d,a=o.c,r=t.n,e&&(r.a=r.a-i.b-a.a),n&&(r.b=r.b-i.d-a.b)}function Jot(t,e){var n,i;return(n=t.j)!=(i=e.j)?n.g-i.g:t.p==e.p?0:n==(wWt(),cAe)?t.p-e.p:e.p-t.p}function Qot(t){var e,n;for(CWt(t),n=new Wf(t.d);n.a<n.c.c.length;)(e=jz(J1(n),101)).i&&WCt(e)}function tst(t,e,n,i,a){DY(t.c[e.g],n.g,i),DY(t.c[n.g],e.g,i),DY(t.b[e.g],n.g,a),DY(t.b[n.g],e.g,a)}function est(t,e,n,i){jz(n.b,65),jz(n.b,65),jz(i.b,65),jz(i.b,65),jz(i.b,65),Aet(i.a,new xz(t,e,i))}function nst(t,e){t.d==(jdt(),FSe)||t.d==zSe?jz(e.a,57).c.Fc(jz(e.b,57)):jz(e.b,57).c.Fc(jz(e.a,57))}function ist(t,e,n,i){return 1==n?(!t.n&&(t.n=new tW(HDe,t,1,7)),Fmt(t.n,e,i)):eCt(t,e,n,i)}function ast(t,e){var n;return Oat(n=new Hc,e),l8((!t.A&&(t.A=new LO(SLe,t,7)),t.A),n),n}function rst(t,e,n){var i,a;return a=L2(e,D7t),bRt((i=new aA(t,n)).a,i.b,a),a}function ost(t){var e;return(!t.a||!(1&t.Bb)&&t.a.kh())&&iO(e=Txt(t),148)&&(t.a=jz(e,148)),t.a}function sst(t,e){var n,i;for(vG(e),i=e.Kc();i.Ob();)if(n=i.Pb(),!t.Hc(n))return!1;return!0}function cst(t,e){var n,i,a;return n=t.l+e.l,i=t.m+e.m+(n>>22),a=t.h+e.h+(i>>22),_L(n&EKt,i&EKt,a&CKt)}function lst(t,e){var n,i,a;return n=t.l-e.l,i=t.m-e.m+(n>>22),a=t.h-e.h+(i>>22),_L(n&EKt,i&EKt,a&CKt)}function ust(t){var e;return t<128?(!(e=(_U(),kee)[t])&&(e=kee[t]=new If(t)),e):new If(t)}function dst(t){var e;return iO(t,78)?t:((e=t&&t.__java$exception)||oy(e=new xut(t)),e)}function hst(t){if(iO(t,186))return jz(t,118);if(t)return null;throw $m(new $w(e5t))}function fst(t,e){if(null==e)return!1;for(;t.a!=t.b;)if(Odt(e,Fut(t)))return!0;return!1}function gst(t){return!!t.a.Ob()||t.a==t.d&&(t.a=new k2(t.e.f),t.a.Ob())}function pst(t,e){var n;return 0!=(n=e.Pc()).length&&(Qz(t.c,t.c.length,n),!0)}function bst(t,e,n){var i,a;for(a=e.vc().Kc();a.Ob();)i=jz(a.Pb(),42),t.yc(i.cd(),i.dd(),n);return t}function mst(t,e){var n;for(n=new Wf(t.b);n.a<n.c.c.length;)lct(jz(J1(n),70),(lGt(),rhe),e)}function yst(t,e,n){var i,a;for(a=new Wf(t.b);a.a<a.c.c.length;)kI(i=jz(J1(a),33),i.i+e,i.j+n)}function vst(t,e){if(!t)throw $m(new Pw(IPt("value already present: %s",Cst(Hx(Dte,1),zGt,1,5,[e]))))}function wst(t,e){return!(!t||!e||t==e)&&Fpt(t.d.c,e.d.c+e.d.b)&&Fpt(e.d.c,t.d.c+t.d.b)}function xst(){return v6(),qne?new y6(null):jDt(Grt(),"com.google.common.base.Strings")}function Rst(t,e){var n;return n=sN(e.a.gc()),Kk(vet(new NU(null,new h1(e,1)),t.i),new LT(t,n)),n}function _st(t){var e;return Oat(e=new Hc,"T"),l8((!t.d&&(t.d=new LO(SLe,t,11)),t.d),e),e}function kst(t){var e,n,i,a;for(e=1,n=0,a=t.gc();n<a;++n)e=31*e+(null==(i=t.ki(n))?0:Qct(i));return e}function Est(t,e,n,i){var a;return h2(e,t.e.Hd().gc()),h2(n,t.c.Hd().gc()),a=t.a[e][n],DY(t.a[e],n,i),a}function Cst(t,e,n,i,a){return a.gm=t,a.hm=e,a.im=A,a.__elementTypeId$=n,a.__elementTypeCategory$=i,a}function Sst(t,e,n,a,r){return xBt(),i.Math.min(VVt(t,e,n,a,r),VVt(n,a,t,e,zN(new OT(r.a,r.b))))}function Tst(){Tst=D,rle=new QC(ZQt,0),ile=new QC(S1t,1),ale=new QC(T1t,2),nle=new QC("BOTH",3)}function Ast(){Ast=D,mle=new mS(eJt,0),yle=new mS(aJt,1),vle=new mS(rJt,2),wle=new mS("TOP",3)}function Dst(){Dst=D,Joe=new GC("Q1",0),ese=new GC("Q4",1),Qoe=new GC("Q2",2),tse=new GC("Q3",3)}function Ist(){Ist=D,hve=new GS("OFF",0),fve=new GS("SINGLE_EDGE",1),dve=new GS("MULTI_EDGE",2)}function Lst(){Lst=D,Yke=new kT("MINIMUM_SPANNING_TREE",0),Wke=new kT("MAXIMUM_SPANNING_TREE",1)}function Ost(){Ost=D,Xke=new ls,Kke=new ss}function Mst(t){var e,n;for(e=new Zk,n=cmt(t.d,0);n.b!=n.d.c;)MH(e,jz(d4(n),188).c);return e}function Nst(t){var e,n;for(n=new Lm,e=t.Kc();e.Ob();)pst(n,fBt(jz(e.Pb(),33)));return n}function Bst(t){var e;tzt(t,!0),e=GZt,IN(t,(zYt(),lme))&&(e+=jz(yEt(t,lme),19).a),lct(t,lme,nht(e))}function Pst(t,e,n){var i;DW(t.a),Aet(n.i,new wb(t)),wbt(t,i=new CL(jz(NY(t.a,e.b),65)),e),n.f=i}function Fst(t,e){var n,i;return n=t.c,(i=e.e[t.p])<n.a.c.length-1?jz(OU(n.a,i+1),10):null}function jst(t,e){var n,i;for(WK(e,"predicate"),i=0;t.Ob();i++)if(n=t.Pb(),e.Lb(n))return i;return-1}function $st(t,e){var n,i;if(i=0,t<64&&t<=e)for(e=e<64?e:63,n=t;n<=e;n++)i=e0(i,yq(1,n));return i}function zst(t){var e,n,i;for(kK(),i=0,n=t.Kc();n.Ob();)i+=null!=(e=n.Pb())?Qct(e):0,i|=0;return i}function Hst(t){var e;return QR(),e=new oc,t&&l8((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),e),e}function Ust(t){var e;return(e=new m).a=t,e.b=vct(t),e.c=O5(zee,cZt,2,2,6,1),e.c[0]=zat(t),e.c[1]=zat(t),e}function Vst(t,e){if(0===e)return!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),void t.o.c.$b();ySt(t,e)}function qst(t,e,n){switch(n.g){case 2:t.b=e;break;case 1:t.c=e;break;case 4:t.d=e;break;case 3:t.a=e}}function Wst(t){switch(t.g){case 1:return RTe;case 2:return xTe;case 3:return _Te;default:return kTe}}function Yst(t){switch(jz(yEt(t,(zYt(),vbe)),163).g){case 2:case 4:return!0;default:return!1}}function Gst(){Gst=D,yde=dut((hBt(),Cst(Hx(vde,1),IZt,256,0,[lde,dde,hde,fde,gde,pde,mde,cde,ude,bde])))}function Zst(){Zst=D,KAe=dut((QFt(),Cst(Hx(XAe,1),IZt,259,0,[UAe,qAe,HAe,WAe,YAe,ZAe,GAe,VAe,zAe])))}function Kst(){Kst=D,qxe=fU(sbt(sbt(FE(fU(new j2,(Vwt(),Pwe),(NSt(),Zwe)),Fwe),Wwe),Ywe),jwe,Gwe)}function Xst(){Xst=D,Due=new CS(ZQt,0),Aue=new CS("INCOMING_ONLY",1),Iue=new CS("OUTGOING_ONLY",2)}function Jst(){Jst=D,uee={boolean:Vk,number:Cw,string:Sw,object:_Tt,function:_Tt,undefined:Wm}}function Qst(t,e){bH(t>=0,"Negative initial capacity"),bH(e>=0,"Non-positive load factor"),DW(this)}function tct(t,e,n){return!(t>=128)&&KA(t<64?t0(yq(1,t),n):t0(yq(1,t-64),e),0)}function ect(t,e){return!(!t||!e||t==e)&&Tft(t.b.c,e.b.c+e.b.b)<0&&Tft(e.b.c,t.b.c+t.b.b)<0}function nct(t){var e,n,i;return n=t.n,i=t.o,e=t.d,new VZ(n.a-e.b,n.b-e.d,i.a+(e.b+e.c),i.b+(e.d+e.a))}function ict(t){var e,n,i,a;for(i=0,a=(n=t.a).length;i<a;++i)Ect(t,e=n[i],(wWt(),EAe)),Ect(t,e,cAe)}function act(t){var e,n;for(null==t.j&&(t.j=(EX(),TRt(eee.ce(t)))),e=0,n=t.j.length;e<n;++e);}function rct(t){var e,n;return _L(e=1+~t.l&EKt,n=~t.m+(0==e?1:0)&EKt,~t.h+(0==e&&0==n?1:0)&CKt)}function oct(t,e){return _$t(jz(jz(NY(t.g,e.a),46).a,65),jz(jz(NY(t.g,e.b),46).a,65))}function sct(t,e,n){var i;if(e>(i=t.gc()))throw $m(new QP(e,i));return t.hi()&&(n=JJ(t,n)),t.Vh(e,n)}function cct(t,e,n){return null==n?(!t.q&&(t.q=new Om),b7(t.q,e)):(!t.q&&(t.q=new Om),YG(t.q,e,n)),t}function lct(t,e,n){return null==n?(!t.q&&(t.q=new Om),b7(t.q,e)):(!t.q&&(t.q=new Om),YG(t.q,e,n)),t}function uct(t){var e,n;return Hot(n=new y7,t),lct(n,(kat(),soe),t),ezt(t,n,e=new Om),Eqt(t,n,e),n}function dct(t){var e,n,i;for(xBt(),n=O5(EEe,cZt,8,2,0,1),i=0,e=0;e<2;e++)i+=.5,n[e]=dvt(i,t);return n}function hct(t,e){var n,i,a;for(n=!1,i=t.a[e].length,a=0;a<i-1;a++)n|=Cpt(t,e,a,a+1);return n}function fct(t,e,n,i,a){var r,o;for(o=n;o<=a;o++)for(r=e;r<=i;r++)mvt(t,r,o)||jPt(t,r,o,!0,!1)}function gct(t,e){this.b=t,LD.call(this,(jz(Yet(GK((GY(),JIe).o),10),18),e.i),e.g),this.a=(frt(),CLe)}function pct(t,e){this.c=t,this.d=e,this.b=this.d/this.c.c.Hd().gc()|0,this.a=this.d%this.c.c.Hd().gc()}function bct(){this.o=null,this.k=null,this.j=null,this.d=null,this.b=null,this.n=null,this.a=null}function mct(t,e,n){this.q=new i.Date,this.q.setFullYear(t+cKt,e,n),this.q.setHours(0,0,0,0),dzt(this,0)}function yct(){yct=D,Oye=new zS(ZQt,0),Lye=new zS("NODES_AND_EDGES",1),Mye=new zS("PREFER_EDGES",2)}function vct(t){var e;return 0==t?"Etc/GMT":(t<0?(t=-t,e="Etc/GMT-"):e="Etc/GMT+",e+dtt(t))}function wct(t){var e;if(t<0)return FZt;if(0==t)return 0;for(e=AZt;!(e&t);e>>=1);return e}function xct(t){var e,n;return 32==(n=JAt(t.h))?32==(e=JAt(t.m))?JAt(t.l)+32:e+20-10:n-12}function Rct(t){var e;return null==(e=t.a[t.b])?null:(DY(t.a,t.b,null),t.b=t.b+1&t.a.length-1,e)}function _ct(t){var e,n;return e=t.t-t.k[t.o.p]*t.d+t.j[t.o.p]>t.f,n=t.u+t.e[t.o.p]*t.d>t.f*t.s*t.d,e||n}function kct(t,e,n){var i,a;return i=new $5(e,n),a=new U,t.b=YNt(t,t.b,i,a),a.b||++t.c,t.b.b=!1,a.d}function Ect(t,e,n){var i,a,r;for(r=0,a=Ldt(e,n).Kc();a.Ob();)i=jz(a.Pb(),11),YG(t.c,i,nht(r++))}function Cct(t){var e,n;for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),81)).g.c=-e.g.c-e.g.b;wMt(t)}function Sct(t){var e,n;for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),57)).d.c=-e.d.c-e.d.b;vMt(t)}function Tct(t){var e;return(!t.c||!(1&t.Bb)&&64&t.c.Db)&&iO(e=Txt(t),88)&&(t.c=jz(e,26)),t.c}function Act(t){var e,n,i;e=1+~t.l&EKt,n=~t.m+(0==e?1:0)&EKt,i=~t.h+(0==e&&0==n?1:0)&CKt,t.l=e,t.m=n,t.h=i}function Dct(t){var e,n,i,a,r;for(e=new HR,a=0,r=(i=t).length;a<r;++a)n=i[a],e.a+=n.a,e.b+=n.b;return e}function Ict(t,e){var n,i,a,r,o;for(kK(),o=!1,a=0,r=(i=e).length;a<r;++a)n=i[a],o|=t.Fc(n);return o}function Lct(t){var e,n;for(xBt(),n=-17976931348623157e292,e=0;e<t.length;e++)t[e]>n&&(n=t[e]);return n}function Oct(t,e,n){var i;return xNt(t,e,i=new Lm,(wWt(),sAe),!0,!1),xNt(t,n,i,SAe,!1,!1),i}function Mct(t,e,n){var i,a;return a=L2(e,"labels"),WIt((i=new gA(t,n)).a,i.b,a),a}function Nct(t,e,n,i){var a;return(a=yLt(t,e,n,i))||!(a=rht(t,n,i))||jUt(t,e,a)?a:null}function Bct(t,e,n,i){var a;return(a=vLt(t,e,n,i))||!(a=oht(t,n,i))||jUt(t,e,a)?a:null}function Pct(t,e){var n;for(n=0;n<t.a.a.length;n++)if(!jz(MU(t.a,n),169).Lb(e))return!1;return!0}function Fct(t,e,n){if(yY(e),n.Ob())for(sD(e,CY(n.Pb()));n.Ob();)sD(e,t.a),sD(e,CY(n.Pb()));return e}function jct(t){var e,n,i;for(kK(),i=1,n=t.Kc();n.Ob();)i=31*i+(null!=(e=n.Pb())?Qct(e):0),i|=0;return i}function $ct(t,e,n,i,a){var r;return r=xIt(t,e),n&&Act(r),a&&(t=Evt(t,e),dee=i?rct(t):_L(t.l,t.m,t.h)),r}function zct(t,e){var n;try{e.Vd()}catch(i){if(!iO(i=dst(i),78))throw $m(i);n=i,t.c[t.c.length]=n}}function Hct(t,e,n){var i,a;return iO(e,144)&&n?(i=jz(e,144),a=n,t.a[i.b][a.b]+t.a[a.b][i.b]):0}function Uct(t,e){switch(e){case 7:return!!t.e&&0!=t.e.i;case 8:return!!t.d&&0!=t.d.i}return ugt(t,e)}function Vct(t,e){switch(e.g){case 0:iO(t.b,631)||(t.b=new Lot);break;case 1:iO(t.b,632)||(t.b=new lH)}}function qct(t,e){for(;null!=t.g||t.c?null==t.g||0!=t.i&&jz(t.g[t.i-1],47).Ob():QJ(t);)bA(e,rOt(t))}function Wct(t,e,n){t.g=DSt(t,e,(wWt(),sAe),t.b),t.d=DSt(t,n,sAe,t.b),0!=t.g.c&&0!=t.d.c&&VEt(t)}function Yct(t,e,n){t.g=DSt(t,e,(wWt(),SAe),t.j),t.d=DSt(t,n,SAe,t.j),0!=t.g.c&&0!=t.d.c&&VEt(t)}function Gct(t,e,n){return!w_(AZ(new NU(null,new h1(t.c,16)),new ag(new XT(e,n)))).sd((fE(),Qne))}function Zct(t){var e;return xG(t),e=new ct,t.a.sd(e)?(CO(),new bw(vG(e.a))):(CO(),CO(),kne)}function Kct(t){var e;return!(t.b<=0)&&((e=HD("MLydhHmsSDkK",Kkt(lZ(t.c,0))))>1||e>=0&&t.b<3)}function Xct(t){var e,n;for(e=new vv,n=cmt(t,0);n.b!=n.d.c;)BN(e,0,new hI(jz(d4(n),8)));return e}function Jct(t){var e;for(e=new Wf(t.a.b);e.a<e.c.c.length;)jz(J1(e),81).f.$b();vw(t.b,t),$Mt(t)}function Qct(t){return qA(t)?myt(t):VA(t)?YD(t):UA(t)?(vG(t),t?1231:1237):eq(t)?t.Hb():AV(t)?EM(t):QK(t)}function tlt(t){return qA(t)?zee:VA(t)?Cee:UA(t)?wee:eq(t)||AV(t)?t.gm:t.gm||Array.isArray(t)&&Hx(Qte,1)||Qte}function elt(t){if(0===t.g)return new os;throw $m(new Pw(O3t+(null!=t.f?t.f:""+t.g)))}function nlt(t){if(0===t.g)return new as;throw $m(new Pw(O3t+(null!=t.f?t.f:""+t.g)))}function ilt(t,e,n){if(0===e)return!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),void tot(t.o,n);vTt(t,e,n)}function alt(t,e,n){this.g=t,this.e=new HR,this.f=new HR,this.d=new Zk,this.b=new Zk,this.a=e,this.c=n}function rlt(t,e,n,i){this.b=new Lm,this.n=new Lm,this.i=i,this.j=n,this.s=t,this.t=e,this.r=0,this.d=0}function olt(t){this.e=t,this.d=new p3(this.e.g),this.a=this.d,this.b=gst(this),this.$modCount=t.$modCount}function slt(t){for(;!t.d||!t.d.Ob();){if(!t.b||Ww(t.b))return null;t.d=jz(fW(t.b),47)}return t.d}function clt(t){return Wz(t.c,(Ost(),Xke)),ont(t.a,Hw(_B(ymt((Bgt(),Yme)))))?new Vs:new Cb(t)}function llt(t){switch(t.g){case 1:return j4t;default:case 2:return 0;case 3:return XJt;case 4:return $4t}}function ult(){var t;return fGt(),kMe||(t=tN(JWt("M",!0)),t=gV(JWt("M",!1),t),kMe=t)}function dlt(t,e){var n,i,a;for(a=t.b;a;){if(0==(n=t.a.ue(e,a.d)))return a;i=n<0?0:1,a=a.a[i]}return null}function hlt(t,e,n){var i,a;cM(),i=!!RD(n),(a=jz(e.xc(i),15))||(a=new Lm,e.zc(i,a)),a.Fc(n)}function flt(t,e){var n,i;return(n=jz(JIt(t,(YLt(),f_e)),19).a)==(i=jz(JIt(e,f_e),19).a)||n<i?-1:n>i?1:0}function glt(t,e){return!!hMt(t,e)&&(XAt(t.b,jz(yEt(e,(lGt(),qde)),21),e),MH(t.a,e),!0)}function plt(t){var e,n;(e=jz(yEt(t,(lGt(),xhe)),10))&&(y9((n=e.c).a,e),0==n.a.c.length&&y9(bG(e).b,n))}function blt(t){return qne?O5(Hne,gXt,572,0,0,1):jz(Zbt(t.a,O5(Hne,gXt,572,t.a.c.length,0,1)),842)}function mlt(t,e,n,i){return JG(),new cw(Cst(Hx(zte,1),wZt,42,0,[(Vyt(t,e),new bk(t,e)),(Vyt(n,i),new bk(n,i))]))}function ylt(t,e,n){var i;return uit(i=new Dv,e,n),l8((!t.q&&(t.q=new tW(YIe,t,11,10)),t.q),i),i}function vlt(t){var e,n,i,a;for(n=(a=lC(ADe,t)).length,i=O5(zee,cZt,2,n,6,1),e=0;e<n;++e)i[e]=a[e];return i}function wlt(t,e){var n,i,a,r,o;for(a=0,r=(i=e).length;a<r;++a)n=i[a],o=new VY(t),n.Qe(o),Ozt(o);DW(t.f)}function xlt(t,e){var n;return e===t||!!iO(e,224)&&(n=jz(e,224),Odt(t.Zb(),n.Zb()))}function Rlt(t,e){var n;2*e+1>=t.b.c.length||(Rlt(t,2*e+1),(n=2*e+2)<t.b.c.length&&Rlt(t,n),PTt(t,e))}function _lt(t,e,n){var i,a;this.g=t,this.c=e,this.a=this,this.d=this,a=Xit(n),i=O5(Zte,SZt,330,a,0,1),this.b=i}function klt(t,e,n){var i;for(i=n-1;i>=0&&t[i]===e[i];i--);return i<0?0:sC(t0(t[i],qKt),t0(e[i],qKt))?-1:1}function Elt(t,e){var n,i;for(i=cmt(t,0);i.b!=i.d.c;)(n=jz(d4(i),214)).e.length>0&&(e.td(n),n.i&&bht(n))}function Clt(t,e){var n,i;return i=jz(vot(t.a,4),126),n=O5(hIe,n8t,415,e,0,1),null!=i&&rHt(i,0,n,0,i.length),n}function Slt(t,e){var n;return n=new iPt(0!=(256&t.f),t.i,t.a,t.d,0!=(16&t.f),t.j,t.g,e),null!=t.e||(n.c=t),n}function Tlt(t,e){var n;for(n=t.Zb().Cc().Kc();n.Ob();)if(jz(n.Pb(),14).Hc(e))return!0;return!1}function Alt(t,e,n,i,a){var r,o;for(o=n;o<=a;o++)for(r=e;r<=i;r++)if(mvt(t,r,o))return!0;return!1}function Dlt(t,e,n){var i,a,r,o;for(vG(n),o=!1,r=t.Zc(e),a=n.Kc();a.Ob();)i=a.Pb(),r.Rb(i),o=!0;return o}function Ilt(t,e){var n;return t===e||!!iO(e,83)&&(n=jz(e,83),VCt(uq(t),n.vc()))}function Llt(t,e,n){var i,a;for(a=n.Kc();a.Ob();)if(i=jz(a.Pb(),42),t.re(e,i.dd()))return!0;return!1}function Olt(t,e,n){return t.d[e.p][n.p]||(nyt(t,e,n),t.d[e.p][n.p]=!0,t.d[n.p][e.p]=!0),t.a[e.p][n.p]}function Mlt(t,e){if(!t.ai()&&null==e)throw $m(new Pw("The 'no null' constraint is violated"));return e}function Nlt(t,e){null==t.D&&null!=t.B&&(t.D=t.B,t.B=null),zit(t,null==e?null:(vG(e),e)),t.C&&t.yk(null)}function Blt(t,e){return!(!t||t==e||!IN(e,(lGt(),nhe)))&&jz(yEt(e,(lGt(),nhe)),10)!=t}function Plt(t){switch(t.i){case 2:return!0;case 1:return!1;case-1:++t.c;default:return t.pl()}}function Flt(t){switch(t.i){case-2:return!0;case-1:return!1;case 1:--t.c;default:return t.ql()}}function jlt(t){PJ.call(this,"The given string does not match the expected format for individual spacings.",t)}function $lt(){$lt=D,oDe=new iA("ELK",0),sDe=new iA("JSON",1),rDe=new iA("DOT",2),cDe=new iA("SVG",3)}function zlt(){zlt=D,cRe=new bT(ZQt,0),lRe=new bT("RADIAL_COMPACTION",1),uRe=new bT("WEDGE_COMPACTION",2)}function Hlt(){Hlt=D,Gne=new pC("CONCURRENT",0),Zne=new pC("IDENTITY_FINISH",1),Kne=new pC("UNORDERED",2)}function Ult(){Ult=D,hE(),ore=new DD($Jt,sre=ire),rre=new rm(zJt),cre=new rm(HJt),lre=new rm(UJt)}function Vlt(){Vlt=D,ule=new Ri,dle=new _i,lle=new ki,cle=new Ei,vG(new Ci),sle=new B}function qlt(){qlt=D,eve=new WS("CONSERVATIVE",0),nve=new WS("CONSERVATIVE_SOFT",1),ive=new WS("SLOPPY",2)}function Wlt(){Wlt=D,fTe=new WI(15),hTe=new qI((cGt(),qCe),fTe),gTe=gSe,cTe=aCe,lTe=BCe,dTe=jCe,uTe=FCe}function Ylt(t,e,n){var i,a;for(i=new Zk,a=cmt(n,0);a.b!=a.d.c;)MH(i,new hI(jz(d4(a),8)));Dlt(t,e,i)}function Glt(t){var e,n,i;for(e=0,i=O5(EEe,cZt,8,t.b,0,1),n=cmt(t,0);n.b!=n.d.c;)i[e++]=jz(d4(n),8);return i}function Zlt(t){var e;return!t.a&&(t.a=new tW(qIe,t,9,5)),0!=(e=t.a).i?$E(jz(Yet(e,0),678)):null}function Klt(t,e){var n;return n=ift(t,e),sC(n0(t,e),0)|ZA(n0(t,n),0)?n:ift(hZt,n0(wq(n,63),1))}function Xlt(t,e){var n;n=null!=ymt((Bgt(),Yme))&&null!=e.wg()?Hw(_B(e.wg()))/Hw(_B(ymt(Yme))):1,YG(t.b,e,n)}function Jlt(t,e){var n,i;return(n=jz(t.d.Bc(e),14))?((i=t.e.hc()).Gc(n),t.e.d-=n.gc(),n.$b(),i):null}function Qlt(t,e){var n,i;if(0!=(i=t.c[e]))for(t.c[e]=0,t.d-=i,n=e+1;n<t.a.length;)t.a[n]-=i,n+=n&-n}function tut(t){var e;if((e=t.a.c.length)>0)return Bq(e-1,t.a.c.length),s7(t.a,e-1);throw $m(new my)}function eut(t,e,n){if(e<0)throw $m(new Aw(Q3t+e));e<t.j.c.length?i6(t.j,e,n):(g4(t,e),Wz(t.j,n))}function nut(t,e,n){if(t>e)throw $m(new Pw(yXt+t+vXt+e));if(t<0||e>n)throw $m(new Rx(yXt+t+wXt+e+lXt+n))}function iut(t){if(!(t.a&&8&t.a.i))throw $m(new Fw("Enumeration class expected for layout option "+t.f))}function aut(t){var e;++t.j,0==t.i?t.g=null:t.i<t.g.length&&(e=t.g,t.g=t.ri(t.i),rHt(e,0,t.g,0,t.i))}function rut(t,e){var n,i;for(n=t.a.length-1,t.c=t.c-1&n;e!=t.c;)i=e+1&n,DY(t.a,e,t.a[i]),e=i;DY(t.a,t.c,null)}function out(t,e){var n,i;for(n=t.a.length-1;e!=t.b;)i=e-1&n,DY(t.a,e,t.a[i]),e=i;DY(t.a,t.b,null),t.b=t.b+1&n}function sut(t,e,n){var i;return IQ(e,t.c.length),0!=(i=n.Pc()).length&&(Qz(t.c,e,i),!0)}function cut(t){var e,n;if(null==t)return null;for(e=0,n=t.length;e<n;e++)if(!EH(t[e]))return t[e];return null}function lut(t,e,n){var i,a,r,o;for(r=0,o=(a=n).length;r<o;++r)if(i=a[r],t.b.re(e,i.cd()))return i;return null}function uut(t){var e,n,i,a,r;for(r=1,i=0,a=(n=t).length;i<a;++i)r=31*r+(null!=(e=n[i])?Qct(e):0),r|=0;return r}function dut(t){var e,n,i,a,r;for(e={},a=0,r=(i=t).length;a<r;++a)e[":"+(null!=(n=i[a]).f?n.f:""+n.g)]=n;return e}function hut(t){var e;for(yY(t),Cj(!0,"numberToAdvance must be nonnegative"),e=0;e<0&&gIt(t);e++)V6(t);return e}function fut(t){var e,n,i;for(i=0,n=new oq(XO(t.a.Kc(),new u));gIt(n);)(e=jz(V6(n),17)).c.i==e.d.i||++i;return i}function gut(t,e){var n,i,a;for(n=t,a=0;;){if(n==e)return a;if(!(i=n.e))throw $m(new hy);n=bG(i),++a}}function put(t,e){var n,i,a;for(a=e-t.f,i=new Wf(t.d);i.a<i.c.c.length;)wpt(n=jz(J1(i),443),n.e,n.f+a);t.f=e}function but(t,e,n){return i.Math.abs(e-t)<F4t||i.Math.abs(n-t)<F4t||(e-t>F4t?t-n>F4t:n-t>F4t)}function mut(t,e){return!t||e&&!t.j||iO(t,124)&&0==jz(t,124).a.b?0:t.Re()}function yut(t,e){return!t||e&&!t.k||iO(t,124)&&0==jz(t,124).a.a?0:t.Se()}function vut(t){return ABt(),t<0?-1!=t?new Bmt(-1,-t):Xee:t<=10?Qee[CJ(t)]:new Bmt(1,t)}function wut(t){throw Jst(),$m(new gw("Unexpected typeof result '"+t+"'; please report this bug to the GWT team"))}function xut(t){cx(),YL(this),wK(this),this.e=t,SNt(this,t),this.g=null==t?VGt:$ft(t),this.a="",this.b=t,this.a=""}function Rut(){this.a=new es,this.f=new fb(this),this.b=new gb(this),this.i=new pb(this),this.e=new bb(this)}function _ut(){iw.call(this,new z5(tet(16))),dit(2,sZt),this.b=2,this.a=new $G(null,null,0,null),ey(this.a,this.a)}function kut(){kut=D,aye=new BS("DUMMY_NODE_OVER",0),rye=new BS("DUMMY_NODE_UNDER",1),oye=new BS("EQUAL",2)}function Eut(){Eut=D,qoe=$J(Cst(Hx(USe,1),IZt,103,0,[(jdt(),FSe),jSe])),Woe=$J(Cst(Hx(USe,1),IZt,103,0,[zSe,PSe]))}function Cut(t){return(wWt(),vAe).Hc(t.j)?Hw(_B(yEt(t,(lGt(),Ihe)))):Dct(Cst(Hx(EEe,1),cZt,8,0,[t.i.n,t.n,t.a])).b}function Sut(t){var e,n;for(e=t.b.a.a.ec().Kc();e.Ob();)n=new ZLt(jz(e.Pb(),561),t.e,t.f),Wz(t.g,n)}function Tut(t,e){var n,i;n=t.nk(e,null),i=null,e&&(e_(),ant(i=new Bm,t.r)),(n=zkt(t,i,n))&&n.Fi()}function Aut(t,e){var n,i;for(i=0!=zLt(t.d,1),n=!0;n;)n=!1,n=e.c.Tf(e.e,i),n|=NMt(t,e,i,!1),i=!i;Iat(t)}function Dut(t,e){var n,i,a;return i=!1,n=e.q.d,e.d<t.b&&(a=gMt(e.q,t.b),e.q.d>a&&(r_t(e.q,a),i=n!=e.q.d)),i}function Iut(t,e){var n,a,r,o,s;return o=e.i,s=e.j,a=o-(n=t.f).i,r=s-n.j,i.Math.sqrt(a*a+r*r)}function Lut(t,e){var n;return(n=Kpt(t))||(BHt(),l8((n=new Cm(KSt(e))).Vk(),t)),n}function Out(t,e){var n,i;return(n=jz(t.c.Bc(e),14))?((i=t.hc()).Gc(n),t.d-=n.gc(),n.$b(),t.mc(i)):t.jc()}function Mut(t,e){var n;for(n=0;n<e.length;n++)if(t==(d1(n,e.length),e.charCodeAt(n)))return!0;return!1}function Nut(t,e){var n;for(n=0;n<e.length;n++)if(t==(d1(n,e.length),e.charCodeAt(n)))return!0;return!1}function But(t){var e,n;if(null==t)return!1;for(e=0,n=t.length;e<n;e++)if(!EH(t[e]))return!1;return!0}function Put(t){var e;if(0!=t.c)return t.c;for(e=0;e<t.a.length;e++)t.c=33*t.c+(-1&t.a[e]);return t.c=t.c*t.e,t.c}function Fut(t){var e;return EN(t.a!=t.b),e=t.d.a[t.a],xN(t.b==t.d.c&&null!=e),t.c=t.a,t.a=t.a+1&t.d.a.length-1,e}function jut(t){var e;if(!(t.c.c<0?t.a>=t.c.b:t.a<=t.c.b))throw $m(new yy);return e=t.a,t.a+=t.c.c,++t.b,nht(e)}function $ut(t){var e;return e=new uet(t),e2(t.a,sse,new Kw(Cst(Hx(Koe,1),zGt,369,0,[e]))),e.d&&Wz(e.f,e.d),e.f}function zut(t){var e;return Hot(e=new TL(t.a),t),lct(e,(lGt(),fhe),t),e.o.a=t.g,e.o.b=t.f,e.n.a=t.i,e.n.b=t.j,e}function Hut(t,e,n,i){var a,r;for(r=t.Kc();r.Ob();)(a=jz(r.Pb(),70)).n.a=e.a+(i.a-a.o.a)/2,a.n.b=e.b,e.b+=a.o.b+n}function Uut(t,e,n){var i;for(i=e.a.a.ec().Kc();i.Ob();)if(iX(t,jz(i.Pb(),57),n))return!0;return!1}function Vut(t){var e,n;for(n=new Wf(t.r);n.a<n.c.c.length;)if(e=jz(J1(n),10),t.n[e.p]<=0)return e;return null}function qut(t){var e,n;for(n=new Ny,e=new Wf(t);e.a<e.c.c.length;)jat(n,gBt(jz(J1(e),33)));return n}function Wut(t){var e;return e=vI(Cve),jz(yEt(t,(lGt(),Xde)),21).Hc((hBt(),gde))&&fU(e,(vEt(),Foe),(dGt(),$ce)),e}function Yut(t,e,n){var i;i=new kDt(t,e),XAt(t.r,e.Hf(),i),n&&!$q(t.u)&&(i.c=new yJ(t.d),Aet(e.wf(),new Cg(i)))}function Gut(t,e){var n;return KD(t)&&KD(e)&&(n=t-e,!isNaN(n))?n:Pxt(KD(t)?Cot(t):t,KD(e)?Cot(e):e)}function Zut(t,e){return e<t.length&&(d1(e,t.length),63!=t.charCodeAt(e))&&(d1(e,t.length),35!=t.charCodeAt(e))}function Kut(t,e,n,i){var a,r;t.a=e,r=i?0:1,t.f=(a=new JCt(t.c,t.a,n,r),new oPt(n,t.a,a,t.e,t.b,t.c==(sit(),Dve)))}function Xut(t,e,n){var i,a;return a=t.a,t.a=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,1,a,e),n?n.Ei(i):n=i),n}function Jut(t,e,n){var i,a;return a=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,3,a,e),n?n.Ei(i):n=i),n}function Qut(t,e,n){var i,a;return a=t.f,t.f=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,0,a,e),n?n.Ei(i):n=i),n}function tdt(t,e){var n,i,a,r;return(r=wTt((i=e,(a=t?Kpt(t):null)&&a.Xk(),i)))==e&&(n=Kpt(t))&&n.Xk(),r}function edt(t,e){var n,i,a;for(a=1,n=t,i=e>=0?e:-e;i>0;)i%2==0?(n*=n,i=i/2|0):(a*=n,i-=1);return e<0?1/a:a}function ndt(t,e){var n,i,a;for(a=1,n=t,i=e>=0?e:-e;i>0;)i%2==0?(n*=n,i=i/2|0):(a*=n,i-=1);return e<0?1/a:a}function idt(t){var e,n;if(null!=t)for(n=0;n<t.length;++n)(e=t[n])&&(jz(e.g,367),e.i)}function adt(t){var e,n,a;for(a=0,n=new Wf(t.a);n.a<n.c.c.length;)e=jz(J1(n),187),a=i.Math.max(a,e.g);return a}function rdt(t){var e,n,i;for(i=new Wf(t.b);i.a<i.c.c.length;)(e=(n=jz(J1(i),214)).c.Rf()?n.f:n.a)&&fUt(e,n.j)}function odt(){odt=D,mTe=new $T("INHERIT",0),bTe=new $T("INCLUDE_CHILDREN",1),yTe=new $T("SEPARATE_CHILDREN",2)}function sdt(t,e){switch(e){case 1:return!t.n&&(t.n=new tW(HDe,t,1,7)),void cUt(t.n);case 2:return void Iit(t,null)}Vst(t,e)}function cdt(t){switch(t.gc()){case 0:return jte;case 1:return new EU(yY(t.Xb(0)));default:return new kX(t)}}function ldt(t){switch(sj(),t.gc()){case 0:return YY(),Gte;case 1:return new yx(t.Kc().Pb());default:return new bC(t)}}function udt(t){switch(sj(),t.c){case 0:return YY(),Gte;case 1:return new yx(XTt(new Gk(t)));default:return new sw(t)}}function ddt(t,e){yY(t);try{return t.xc(e)}catch(n){if(iO(n=dst(n),205)||iO(n,173))return null;throw $m(n)}}function hdt(t,e){yY(t);try{return t.Bc(e)}catch(n){if(iO(n=dst(n),205)||iO(n,173))return null;throw $m(n)}}function fdt(t,e){yY(t);try{return t.Hc(e)}catch(n){if(iO(n=dst(n),205)||iO(n,173))return!1;throw $m(n)}}function gdt(t,e){yY(t);try{return t.Mc(e)}catch(n){if(iO(n=dst(n),205)||iO(n,173))return!1;throw $m(n)}}function pdt(t,e){yY(t);try{return t._b(e)}catch(n){if(iO(n=dst(n),205)||iO(n,173))return!1;throw $m(n)}}function bdt(t,e){t.a.c.length>0&&glt(jz(OU(t.a,t.a.c.length-1),570),e)||Wz(t.a,new p6(e))}function mdt(t){var e,n;Hj(),e=t.d.c-t.e.c,Aet((n=jz(t.g,145)).b,new wp(e)),Aet(n.c,new xp(e)),t6(n.i,new Rp(e))}function ydt(t){var e;return(e=new Cx).a+="VerticalSegment ",rD(e,t.e),e.a+=" ",oD(e,KO(new mx,new Wf(t.k))),e.a}function vdt(t){var e;return(e=jz(utt(t.c.c,""),229))||(e=new VQ(wR(vR(new ys,""),"Other")),Xbt(t.c.c,"",e)),e}function wdt(t){var e;return 64&t.Db?CLt(t):((e=new lM(CLt(t))).a+=" (name: ",iD(e,t.zb),e.a+=")",e.a)}function xdt(t,e,n){var i,a;return a=t.sb,t.sb=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,4,a,e),n?n.Ei(i):n=i),n}function Rdt(t,e){var n,i;for(n=0,i=rft(t,e).Kc();i.Ob();)n+=null!=yEt(jz(i.Pb(),11),(lGt(),xhe))?1:0;return n}function _dt(t,e,n){var i,a,r;for(i=0,r=cmt(t,0);r.b!=r.d.c&&!((a=Hw(_B(d4(r))))>n);)a>=e&&++i;return i}function kdt(t,e,n){var i;return i=new L9(t.e,3,13,null,e.c||(pGt(),lLe),oyt(t,e),!1),n?n.Ei(i):n=i,n}function Edt(t,e,n){var i;return i=new L9(t.e,4,13,e.c||(pGt(),lLe),null,oyt(t,e),!1),n?n.Ei(i):n=i,n}function Cdt(t,e,n){var i,a;return a=t.r,t.r=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,8,a,t.r),n?n.Ei(i):n=i),n}function Sdt(t,e){var n,i;return!(i=(n=jz(e,676)).vk())&&n.wk(i=iO(e,88)?new DA(t,jz(e,26)):new P0(t,jz(e,148))),i}function Tdt(t,e,n){var i;t.qi(t.i+1),i=t.oi(e,n),e!=t.i&&rHt(t.g,e,t.g,e+1,t.i-e),DY(t.g,e,i),++t.i,t.bi(e,n),t.ci()}function Adt(t,e){var n;return e.a&&(n=e.a.a.length,t.a?oD(t.a,t.b):t.a=new uM(t.d),H0(t.a,e.a,e.d.length,n)),t}function Ddt(t,e){var n,i,a;if(e.vi(t.a),null!=(a=jz(vot(t.a,8),1936)))for(n=0,i=a.length;n<i;++n)null.jm()}function Idt(t,e){var n;return n=new ct,t.a.sd(n)?(CO(),new bw(vG(R9(t,n.a,e)))):(xG(t),CO(),CO(),kne)}function Ldt(t,e){switch(e.g){case 2:case 1:return rft(t,e);case 3:case 4:return eot(rft(t,e))}return kK(),kK(),cne}function Odt(t,e){return qA(t)?mF(t,e):VA(t)?bF(t,e):UA(t)?(vG(t),HA(t)===HA(e)):eq(t)?t.Fb(e):AV(t)?FD(t,e):b0(t,e)}function Mdt(t){return t?1&t.i?t==AMe?wee:t==TMe?Dee:t==OMe?See:t==LMe?Cee:t==DMe?Bee:t==MMe?Fee:t==IMe?Ree:Eee:t:null}function Ndt(t,e,n,i,a){0==e||0==i||(1==e?a[i]=gyt(a,n,i,t[0]):1==i?a[e]=gyt(a,t,e,n[0]):KDt(t,n,a,e,i))}function Bdt(t,e){var n;0!=t.c.length&&(cI(n=jz(Zbt(t,O5(Rse,r1t,10,t.c.length,0,1)),193),new Dn),eDt(n,e))}function Pdt(t,e){var n;0!=t.c.length&&(cI(n=jz(Zbt(t,O5(Rse,r1t,10,t.c.length,0,1)),193),new In),eDt(n,e))}function Fdt(t,e,n,i){switch(e){case 1:return!t.n&&(t.n=new tW(HDe,t,1,7)),t.n;case 2:return t.k}return Rwt(t,e,n,i)}function jdt(){jdt=D,$Se=new BT(lJt,0),jSe=new BT(rJt,1),FSe=new BT(aJt,2),PSe=new BT(bJt,3),zSe=new BT("UP",4)}function $dt(){$dt=D,fse=new ZC(ZQt,0),hse=new ZC("INSIDE_PORT_SIDE_GROUPS",1),dse=new ZC("FORCE_MODEL_ORDER",2)}function zdt(t,e,n){if(t<0||e>n)throw $m(new Aw(yXt+t+wXt+e+", size: "+n));if(t>e)throw $m(new Pw(yXt+t+vXt+e))}function Hdt(t,e,n){if(e<0)aAt(t,n);else{if(!n.Ij())throw $m(new Pw(i7t+n.ne()+a7t));jz(n,66).Nj().Vj(t,t.yh(),e)}}function Udt(t,e,n,i,a,r,o,s){var c;for(c=n;r<o;)c>=i||e<n&&s.ue(t[e],t[c])<=0?DY(a,r++,t[e++]):DY(a,r++,t[c++])}function Vdt(t,e,n,i,a,r){this.e=new Lm,this.f=(rit(),Uye),Wz(this.e,t),this.d=e,this.a=n,this.b=i,this.f=a,this.c=r}function qdt(t,e){var n,i;for(i=new AO(t);i.e!=i.i.gc();)if(n=jz(wmt(i),26),HA(e)===HA(n))return!0;return!1}function Wdt(t){var e,n,i,a;for(gGt(),i=0,a=(n=tmt()).length;i<a;++i)if(-1!=x9((e=n[i]).a,t,0))return e;return Tae}function Ydt(t){return t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:t>=48&&t<=57?t-48:0}function Gdt(t){var e;return 64&t.Db?CLt(t):((e=new lM(CLt(t))).a+=" (source: ",iD(e,t.d),e.a+=")",e.a)}function Zdt(t,e,n){var i,a;return a=t.a,t.a=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,5,a,t.a),n?P_t(n,i):n=i),n}function Kdt(t,e){var n;n=0!=(256&t.Bb),e?t.Bb|=256:t.Bb&=-257,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,2,n,e))}function Xdt(t,e){var n;n=0!=(256&t.Bb),e?t.Bb|=256:t.Bb&=-257,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,8,n,e))}function Jdt(t,e){var n;n=0!=(256&t.Bb),e?t.Bb|=256:t.Bb&=-257,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,8,n,e))}function Qdt(t,e){var n;n=0!=(512&t.Bb),e?t.Bb|=512:t.Bb&=-513,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,3,n,e))}function tht(t,e){var n;n=0!=(512&t.Bb),e?t.Bb|=512:t.Bb&=-513,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,9,n,e))}function eht(t,e){var n;return-1==t.b&&t.a&&(n=t.a.Gj(),t.b=n?t.c.Xg(t.a.aj(),n):Dgt(t.c.Tg(),t.a)),t.c.Og(t.b,e)}function nht(t){var e,n;return t>-129&&t<128?(e=t+128,!(n=(QH(),Tee)[e])&&(n=Tee[e]=new Of(t)),n):new Of(t)}function iht(t){var e,n;return t>-129&&t<128?(e=t+128,!(n=(RU(),Pee)[e])&&(n=Pee[e]=new Nf(t)),n):new Nf(t)}function aht(t){var e;return t.k==(oCt(),kse)&&((e=jz(yEt(t,(lGt(),Gde)),61))==(wWt(),cAe)||e==EAe)}function rht(t,e,n){var i,a;return(a=ILt(t.b,e))&&(i=jz(OHt(F9(t,a),""),26))?yLt(t,i,e,n):null}function oht(t,e,n){var i,a;return(a=ILt(t.b,e))&&(i=jz(OHt(F9(t,a),""),26))?vLt(t,i,e,n):null}function sht(t,e){var n,i;for(i=new AO(t);i.e!=i.i.gc();)if(n=jz(wmt(i),138),HA(e)===HA(n))return!0;return!1}function cht(t,e,n){var i;if(e>(i=t.gc()))throw $m(new QP(e,i));if(t.hi()&&t.Hc(n))throw $m(new Pw(r5t));t.Xh(e,n)}function lht(t,e){var n;if(null==(n=cnt(t.i,e)))throw $m(new tx("Node did not exist in input."));return Prt(e,n),null}function uht(t,e){var n;if(iO(n=OMt(t,e),322))return jz(n,34);throw $m(new Pw(i7t+e+"' is not a valid attribute"))}function dht(t,e,n){var i,a;for(a=iO(e,99)&&jz(e,18).Bb&$Kt?new OD(e,t):new Dot(e,t),i=0;i<n;++i)ayt(a);return a}function hht(t){var e,n,i;for(i=0,n=t.length,e=0;e<n;e++)32==t[e]||13==t[e]||10==t[e]||9==t[e]||(t[i++]=t[e]);return i}function fht(t){var e,n,i;for(e=new Lm,i=new Wf(t.b);i.a<i.c.c.length;)n=jz(J1(i),594),pst(e,jz(n.jf(),14));return e}function ght(t){var e,n;for(n=jz(yEt(t,(HUt(),uxe)),15).Kc();n.Ob();)MH((e=jz(n.Pb(),188)).b.d,e),MH(e.c.b,e)}function pht(t){switch(jz(yEt(t,(lGt(),ehe)),303).g){case 1:lct(t,ehe,(U9(),Ede));break;case 2:lct(t,ehe,(U9(),Sde))}}function bht(t){var e;t.g&&(MNt((e=t.c.Rf()?t.f:t.a).a,t.o,!0),MNt(e.a,t.o,!1),lct(t.o,(zYt(),tme),(Z_t(),qTe)))}function mht(t){var e;if(!t.a)throw $m(new Fw("Cannot offset an unassigned cut."));e=t.c-t.b,t.b+=e,OK(t,e),LK(t,e)}function yht(t){var e;return null==(e=t.a[t.c-1&t.a.length-1])?null:(t.c=t.c-1&t.a.length-1,DY(t.a,t.c,null),e)}function vht(t){var e,n;for(n=t.p.a.ec().Kc();n.Ob();)if((e=jz(n.Pb(),213)).f&&t.b[e.c]<-1e-10)return e;return null}function wht(t,e){switch(t.b.g){case 0:case 1:return e;case 2:case 3:return new VZ(e.d,0,e.a,e.b);default:return null}}function xht(t){switch(t.g){case 2:return jSe;case 1:return FSe;case 4:return PSe;case 3:return zSe;default:return $Se}}function Rht(t){switch(t.g){case 1:return SAe;case 2:return cAe;case 3:return sAe;case 4:return EAe;default:return CAe}}function _ht(t){switch(t.g){case 1:return EAe;case 2:return SAe;case 3:return cAe;case 4:return sAe;default:return CAe}}function kht(t){switch(t.g){case 1:return sAe;case 2:return EAe;case 3:return SAe;case 4:return cAe;default:return CAe}}function Eht(t){switch(t){case 0:return new mv;case 1:return new pv;case 2:return new bv;default:throw $m(new hy)}}function Cht(t,e){return t<e?-1:t>e?1:t==e?0==t?Cht(1/t,1/e):0:isNaN(t)?isNaN(e)?0:1:-1}function Sht(t,e){Akt(e,"Sort end labels",1),Kk(AZ(htt(new NU(null,new h1(t.b,16)),new gn),new pn),new bn),zCt(e)}function Tht(t,e,n){var i,a;return t.ej()?(a=t.fj(),i=KAt(t,e,n),t.$i(t.Zi(7,nht(n),i,e,a)),i):KAt(t,e,n)}function Aht(t,e){var n,i,a;null==t.d?(++t.e,--t.f):(a=e.cd(),L7(t,i=((n=e.Sh())&NGt)%t.d.length,DLt(t,i,n,a)))}function Dht(t,e){var n;n=0!=(t.Bb&w7t),e?t.Bb|=w7t:t.Bb&=-1025,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,10,n,e))}function Iht(t,e){var n;n=0!=(t.Bb&FKt),e?t.Bb|=FKt:t.Bb&=-4097,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,12,n,e))}function Lht(t,e){var n;n=0!=(t.Bb&_8t),e?t.Bb|=_8t:t.Bb&=-8193,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,15,n,e))}function Oht(t,e){var n;n=0!=(t.Bb&k8t),e?t.Bb|=k8t:t.Bb&=-2049,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,11,n,e))}function Mht(t,e){var n;return 0!=(n=Cht(t.b.c,e.b.c))||0!=(n=Cht(t.a.a,e.a.a))?n:Cht(t.a.b,e.a.b)}function Nht(t,e){var n;if(null==(n=NY(t.k,e)))throw $m(new tx("Port did not exist in input."));return Prt(e,n),null}function Bht(t){var e,n;for(n=ULt(qet(t)).Kc();n.Ob();)if(Ojt(t,e=kB(n.Pb())))return y3((VE(),MIe),e);return null}function Pht(t,e){var n,i,a,r,o;for(o=rNt(t.e.Tg(),e),r=0,n=jz(t.g,119),a=0;a<t.i;++a)i=n[a],o.rl(i.ak())&&++r;return r}function Fht(t,e,n){var i,a;return i=jz(e.We(t.a),35),a=jz(n.We(t.a),35),null!=i&&null!=a?Ort(i,a):null!=i?-1:null!=a?1:0}function jht(t,e,n){var i;if(t.c)dEt(t.c,e,n);else for(i=new Wf(t.b);i.a<i.c.c.length;)jht(jz(J1(i),157),e,n)}function $ht(t,e){var n,i;for(i=new Wf(e);i.a<i.c.c.length;)n=jz(J1(i),46),y9(t.b.b,n.b),rX(jz(n.a,189),jz(n.b,81))}function zht(t){var e,n;for(n=OY(new Cx,91),e=!0;t.Ob();)e||(n.a+=jGt),e=!1,rD(n,t.Pb());return(n.a+="]",n).a}function Hht(t,e){var n;n=0!=(t.Bb&lZt),e?t.Bb|=lZt:t.Bb&=-16385,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,16,n,e))}function Uht(t,e){var n;n=0!=(t.Bb&l7t),e?t.Bb|=l7t:t.Bb&=-32769,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,18,n,e))}function Vht(t,e){var n;n=0!=(t.Bb&l7t),e?t.Bb|=l7t:t.Bb&=-32769,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,18,n,e))}function qht(t,e){var n;n=0!=(t.Bb&$Kt),e?t.Bb|=$Kt:t.Bb&=-65537,4&t.Db&&!(1&t.Db)&&hot(t,new Q6(t,1,20,n,e))}function Wht(t){var e;return e=O5(SMe,YZt,25,2,15,1),t-=$Kt,e[0]=(t>>10)+zKt&ZZt,e[1]=56320+(1023&t)&ZZt,$pt(e,0,e.length)}function Yht(t){var e;return(e=jz(yEt(t,(zYt(),Vpe)),103))==(jdt(),$Se)?Hw(_B(yEt(t,xpe)))>=1?jSe:PSe:e}function Ght(t){switch(jz(yEt(t,(zYt(),Xpe)),218).g){case 1:return new ir;case 3:return new cr;default:return new nr}}function Zht(t){if(t.c)Zht(t.c);else if(t.d)throw $m(new Fw("Stream already terminated, can't be modified or used"))}function Kht(t){var e;return 64&t.Db?CLt(t):((e=new lM(CLt(t))).a+=" (identifier: ",iD(e,t.k),e.a+=")",e.a)}function Xht(t,e,n){var i;return QR(),xnt(i=new rc,e),Rnt(i,n),t&&l8((!t.a&&(t.a=new DO(LDe,t,5)),t.a),i),i}function Jht(t,e,n,i){var a,r;return vG(i),vG(n),null==(r=null==(a=t.xc(e))?n:Xk(jz(a,15),jz(n,14)))?t.Bc(e):t.zc(e,r),r}function Qht(t){var e,n,i,a;return sat(n=new ZF(e=jz(YR((a=(i=t.gm).f)==Vte?i:a),9),jz(kP(e,e.length),9),0),t),n}function tft(t,e,n){var i,a;for(a=t.a.ec().Kc();a.Ob();)if(i=jz(a.Pb(),10),sst(n,jz(OU(e,i.p),14)))return i;return null}function eft(t,e,n){try{Fct(t,e,n)}catch(i){throw iO(i=dst(i),597)?$m(new g6(i)):$m(i)}return e}function nft(t,e){var n;return KD(t)&&KD(e)&&IKt<(n=t-e)&&n<AKt?n:oot(lst(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function ift(t,e){var n;return KD(t)&&KD(e)&&IKt<(n=t+e)&&n<AKt?n:oot(cst(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function aft(t,e){var n;return KD(t)&&KD(e)&&IKt<(n=t*e)&&n<AKt?n:oot(uUt(KD(t)?Cot(t):t,KD(e)?Cot(e):e))}function rft(t,e){var n;return t.i||eAt(t),(n=jz(oZ(t.g,e),46))?new s1(t.j,jz(n.a,19).a,jz(n.b,19).a):(kK(),kK(),cne)}function oft(t,e,n){var i;return i=t.a.get(e),t.a.set(e,void 0===n?null:n),void 0===i?(++t.c,oX(t.b)):++t.d,i}function sft(t,e,n){t.n=vU(DMe,[cZt,jKt],[364,25],14,[n,CJ(i.Math.ceil(e/32))],2),t.o=e,t.p=n,t.j=e-1>>1,t.k=n-1>>1}function cft(){var t,e,n;vkt(),n=Ine+++Date.now(),t=CJ(i.Math.floor(n*oXt))&cXt,e=CJ(n-t*sXt),this.a=1502^t,this.b=e^rXt}function lft(t){var e,n;for(e=new Lm,n=new Wf(t.j);n.a<n.c.c.length;)Wz(e,jz(J1(n),11).b);return yY(e),new TD(e)}function uft(t){var e,n;for(e=new Lm,n=new Wf(t.j);n.a<n.c.c.length;)Wz(e,jz(J1(n),11).e);return yY(e),new TD(e)}function dft(t){var e,n;for(e=new Lm,n=new Wf(t.j);n.a<n.c.c.length;)Wz(e,jz(J1(n),11).g);return yY(e),new TD(e)}function hft(t){var e,n;for(n=tLt(qet(fQ(t))).Kc();n.Ob();)if(Ojt(t,e=kB(n.Pb())))return v3((qE(),UIe),e);return null}function fft(t){var e,n;for(e=0,n=t.length;e<n;e++)if(null==t[e])throw $m(new $w("at index "+e));return new Kw(t)}function gft(t,e){var n;if(iO(n=OMt(t.Tg(),e),99))return jz(n,18);throw $m(new Pw(i7t+e+"' is not a valid reference"))}function pft(t){var e;return(e=hCt(t))>34028234663852886e22?BKt:e<-34028234663852886e22?PKt:e}function bft(t){return t=((t=((t-=t>>1&1431655765)>>2&858993459)+(858993459&t))>>4)+t&252645135,t+=t>>8,63&(t+=t>>16)}function mft(t){var e,n,i;for(e=new cP(t.Hd().gc()),i=0,n=I8(t.Hd().Kc());n.Ob();)wQ(e,n.Pb(),nht(i++));return OCt(e.a)}function yft(t,e){var n,i,a;for(a=new Om,i=e.vc().Kc();i.Ob();)YG(a,(n=jz(i.Pb(),42)).cd(),dot(t,jz(n.dd(),15)));return a}function vft(t,e){0==t.n.c.length&&Wz(t.n,new NJ(t.s,t.t,t.i)),Wz(t.b,e),cvt(jz(OU(t.n,t.n.c.length-1),211),e),$$t(t,e)}function wft(t){return(t.c!=t.b.b||t.i!=t.g.b)&&(t.a.c=O5(Dte,zGt,1,0,5,1),pst(t.a,t.b),pst(t.a,t.g),t.c=t.b.b,t.i=t.g.b),t.a}function xft(t,e){var n,i;for(i=0,n=jz(e.Kb(t),20).Kc();n.Ob();)zw(RB(yEt(jz(n.Pb(),17),(lGt(),Che))))||++i;return i}function Rft(t,e){var n,a;a=Hw(_B(ept(l2(e),(zYt(),yme)))),jxt(e,n=i.Math.max(0,a/2-.5),1),Wz(t,new uS(e,n))}function _ft(){_ft=D,Hhe=new jS(ZQt,0),Fhe=new jS("FIRST",1),jhe=new jS(S1t,2),$he=new jS("LAST",3),zhe=new jS(T1t,4)}function kft(){kft=D,JSe=new FT(lJt,0),KSe=new FT("POLYLINE",1),ZSe=new FT("ORTHOGONAL",2),XSe=new FT("SPLINES",3)}function Eft(){Eft=D,JRe=new vT("ASPECT_RATIO_DRIVEN",0),QRe=new vT("MAX_SCALE_DRIVEN",1),XRe=new vT("AREA_DRIVEN",2)}function Cft(){Cft=D,z_e=new xT("P1_STRUCTURE",0),H_e=new xT("P2_PROCESSING_ORDER",1),U_e=new xT("P3_EXECUTION",2)}function Sft(){Sft=D,eRe=new gT("OVERLAP_REMOVAL",0),Qxe=new gT("COMPACTION",1),tRe=new gT("GRAPH_SIZE_CALCULATION",2)}function Tft(t,e){return cL(),iit(PZt),i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)?0:t<e?-1:t>e?1:UD(isNaN(t),isNaN(e))}function Aft(t,e){var n,i;for(n=cmt(t,0);n.b!=n.d.c;){if((i=Uw(_B(d4(n))))==e)return;if(i>e){V0(n);break}}JW(n,e)}function Dft(t,e){var n,i,a,r,o;if(n=e.f,Xbt(t.c.d,n,e),null!=e.g)for(r=0,o=(a=e.g).length;r<o;++r)i=a[r],Xbt(t.c.e,i,e)}function Ift(t,e,n,i){var a,r,o;for(a=e+1;a<n;++a)for(r=a;r>e&&i.ue(t[r-1],t[r])>0;--r)o=t[r],DY(t,r,t[r-1]),DY(t,r-1,o)}function Lft(t,e,n,i){if(e<0)_Ot(t,n,i);else{if(!n.Ij())throw $m(new Pw(i7t+n.ne()+a7t));jz(n,66).Nj().Tj(t,t.yh(),e,i)}}function Oft(t,e){if(e==t.d)return t.e;if(e==t.e)return t.d;throw $m(new Pw("Node "+e+" not part of edge "+t))}function Mft(t,e){switch(e.g){case 2:return t.b;case 1:return t.c;case 4:return t.d;case 3:return t.a;default:return!1}}function Nft(t,e){switch(e.g){case 2:return t.b;case 1:return t.c;case 4:return t.d;case 3:return t.a;default:return!1}}function Bft(t,e,n,i){switch(e){case 3:return t.f;case 4:return t.g;case 5:return t.i;case 6:return t.j}return Fdt(t,e,n,i)}function Pft(t){return t.k==(oCt(),Sse)&&o6(new NU(null,new UW(new oq(XO(dft(t).a.Kc(),new u)))),new Ua)}function Fft(t){return null==t.e?t:(!t.c&&(t.c=new iPt(0!=(256&t.f),t.i,t.a,t.d,0!=(16&t.f),t.j,t.g,null)),t.c)}function jft(t,e){return t.h==SKt&&0==t.m&&0==t.l?(e&&(dee=_L(0,0,0)),WD((q9(),gee))):(e&&(dee=_L(t.l,t.m,t.h)),_L(0,0,0))}function $ft(t){return Array.isArray(t)&&t.im===A?JR(tlt(t))+"@"+(Qct(t)>>>0).toString(16):t.toString()}function zft(t){var e;this.a=new ZF(e=jz(t.e&&t.e(),9),jz(kP(e,e.length),9),0),this.b=O5(Dte,zGt,1,this.a.a.length,5,1)}function Hft(t){var e,n,i;for(this.a=new lI,i=new Wf(t);i.a<i.c.c.length;)n=jz(J1(i),14),hat(e=new cV,n),RW(this.a,e)}function Uft(t){var e,n;for(zB(),e=t.o.b,n=jz(jz(c7(t.r,(wWt(),EAe)),21),84).Kc();n.Ob();)jz(n.Pb(),111).e.b+=e}function Vft(t){var e;if(t.b){if(Vft(t.b),t.b.d!=t.c)throw $m(new by)}else t.d.dc()&&(e=jz(t.f.c.xc(t.e),14))&&(t.d=e)}function qft(t){var e;return null==t||(e=t.length)>0&&(d1(e-1,t.length),58==t.charCodeAt(e-1))&&!Wft(t,DIe,IIe)}function Wft(t,e,n){var i,a;for(i=0,a=t.length;i<a;i++)if(tct((d1(i,t.length),t.charCodeAt(i)),e,n))return!0;return!1}function Yft(t,e){var n,i;for(i=t.e.a.ec().Kc();i.Ob();)if(tCt(e,(n=jz(i.Pb(),266)).d)||TTt(e,n.d))return!0;return!1}function Gft(t,e){var n,i,a;for(a=(i=zPt(t,e))[i.length-1]/2,n=0;n<i.length;n++)if(i[n]>=a)return e.c+n;return e.c+e.b.gc()}function Zft(t,e){var n,i,a,r;for(fB(),a=e,U8(i=$8(t),0,i.length,a),n=0;n<i.length;n++)n!=(r=pxt(t,i[n],n))&&Tht(t,n,r)}function Kft(t,e){var n,i,a,r,o,s;for(i=0,n=0,o=0,s=(r=e).length;o<s;++o)(a=r[o])>0&&(i+=a,++n);return n>1&&(i+=t.d*(n-1)),i}function Xft(t){var e,n,i;for((i=new kx).a+="[",e=0,n=t.gc();e<n;)iD(i,vM(t.ki(e))),++e<n&&(i.a+=jGt);return i.a+="]",i.a}function Jft(t){var e,n,i;return i=Dkt(t),!W_(t.c)&&(net(i,"knownLayouters",n=new Eh),e=new nm(n),t6(t.c,e)),i}function Qft(t,e){var n,i;for(vG(e),n=!1,i=new Wf(t);i.a<i.c.c.length;)vgt(e,J1(i),!1)&&(AW(i),n=!0);return n}function tgt(t){var e,n;for(n=Hw(_B(t.a.We((cGt(),TSe)))),e=new Wf(t.a.xf());e.a<e.c.c.length;)GWt(t,jz(J1(e),680),n)}function egt(t,e){var n,i;for(i=new Wf(e);i.a<i.c.c.length;)n=jz(J1(i),46),Wz(t.b.b,jz(n.b,81)),g2(jz(n.a,189),jz(n.b,81))}function ngt(t,e,n){var i,a;for(i=(a=t.a.b).c.length;i<n;i++)vV(a,0,new $Y(t.a));EQ(e,jz(OU(a,a.c.length-n),29)),t.b[e.p]=n}function igt(t,e,n){var i;!(i=n)&&(i=IH(new qv,0)),Akt(i,HQt,2),yyt(t.b,e,yrt(i,1)),PUt(t,e,yrt(i,1)),HWt(e,yrt(i,1)),zCt(i)}function agt(t,e,n,i,a){jQ(),qMt(aE(iE(nE(rE(new $y,0),a.d.e-t),e),a.d)),qMt(aE(iE(nE(rE(new $y,0),n-a.a.e),a.a),i))}function rgt(t,e,n,i,a,r){this.a=t,this.c=e,this.b=n,this.f=i,this.d=a,this.e=r,this.c>0&&this.b>0&&ZU(this.c,this.b,this.a)}function ogt(t){Bgt(),this.c=r7(Cst(Hx(nEe,1),zGt,831,0,[Wme])),this.b=new Om,this.a=t,YG(this.b,Yme,1),Aet(Gme,new Eb(this))}function sgt(t,e){var n;return t.d?cW(t.b,e)?jz(NY(t.b,e),51):(n=e.Kf(),YG(t.b,e,n),n):e.Kf()}function cgt(t,e){var n;return HA(t)===HA(e)||!!iO(e,91)&&(n=jz(e,91),t.e==n.e&&t.d==n.d&&x3(t,n.a))}function lgt(t){switch(wWt(),t.g){case 4:return cAe;case 1:return sAe;case 3:return EAe;case 2:return SAe;default:return CAe}}function ugt(t,e){switch(e){case 3:return 0!=t.f;case 4:return 0!=t.g;case 5:return 0!=t.i;case 6:return 0!=t.j}return Rot(t,e)}function dgt(t){switch(t.g){case 0:return new qo;case 1:return new Wo;default:throw $m(new Pw(a3t+(null!=t.f?t.f:""+t.g)))}}function hgt(t){switch(t.g){case 0:return new Vo;case 1:return new Yo;default:throw $m(new Pw(k1t+(null!=t.f?t.f:""+t.g)))}}function fgt(t){switch(t.g){case 0:return new Yv;case 1:return new yv;default:throw $m(new Pw(O3t+(null!=t.f?t.f:""+t.g)))}}function ggt(t){switch(t.g){case 1:return new Fo;case 2:return new gB;default:throw $m(new Pw(a3t+(null!=t.f?t.f:""+t.g)))}}function pgt(t){var e,n;if(t.b)return t.b;for(n=qne?null:t.d;n;){if(e=qne?null:n.b)return e;n=qne?null:n.d}return uE(),$ne}function bgt(t){var e,n;return 0==t.e?0:(e=t.d<<5,n=t.a[t.d-1],t.e<0&&Srt(t)==t.d-1&&(--n,n|=0),e-=JAt(n))}function mgt(t){var e,n,i;return t<ene.length?ene[t]:(e=31&t,(i=O5(TMe,lKt,25,1+(n=t>>5),15,1))[n]=1<<e,new uW(1,n+1,i))}function ygt(t){var e,n,i;return(n=t.zg())?iO(e=t.Ug(),160)&&null!=(i=ygt(jz(e,160)))?i+"."+n:n:null}function vgt(t,e,n){var i,a;for(a=t.Kc();a.Ob();)if(i=a.Pb(),HA(e)===HA(i)||null!=e&&Odt(e,i))return n&&a.Qb(),!0;return!1}function wgt(t,e,n){var i,a;if(++t.j,n.dc())return!1;for(a=n.Kc();a.Ob();)i=a.Pb(),t.Hi(e,t.oi(e,i)),++e;return!0}function xgt(t,e,n,i){var a,r;if((r=n-e)<3)for(;r<3;)t*=10,++r;else{for(a=1;r>3;)a*=10,--r;t=(t+(a>>1))/a|0}return i.i=t,!0}function Rgt(t){return Eut(),cM(),!!(Nft(jz(t.a,81).j,jz(t.b,103))||0!=jz(t.a,81).d.e&&Nft(jz(t.a,81).j,jz(t.b,103)))}function _gt(t){O8(),jz(t.We((cGt(),zCe)),174).Hc((QFt(),GAe))&&(jz(t.We(lSe),174).Fc((dAt(),aAe)),jz(t.We(zCe),174).Mc(GAe))}function kgt(t,e){var n;if(e){for(n=0;n<t.i;++n)if(jz(t.g[n],366).Di(e))return!1;return l8(t,e)}return!1}function Egt(t){var e,n,i;for(e=new Eh,i=new zf(t.b.Kc());i.b.Ob();)n=GCt(jz(i.b.Pb(),686)),WW(e,e.a.length,n);return e.a}function Cgt(t){var e;return!t.c&&(t.c=new Ot),mL(t.d,new Nt),KFt(t),e=dBt(t),Kk(new NU(null,new h1(t.d,16)),new Sg(t)),e}function Sgt(t){var e;return 64&t.Db?wdt(t):((e=new lM(wdt(t))).a+=" (instanceClassName: ",iD(e,t.D),e.a+=")",e.a)}function Tgt(t,e){var n,i;e&&(n=Bnt(e,"x"),_nt(new Xb(t).a,(vG(n),n)),i=Bnt(e,"y"),Ant(new Jb(t).a,(vG(i),i)))}function Agt(t,e){var n,i;e&&(n=Bnt(e,"x"),Tnt(new Yb(t).a,(vG(n),n)),i=Bnt(e,"y"),Dnt(new Zb(t).a,(vG(i),i)))}function Dgt(t,e){var n,i,a;if(null==t.i&&H$t(t),n=t.i,-1!=(i=e.aj()))for(a=n.length;i<a;++i)if(n[i]==e)return i;return-1}function Igt(t){var e,n,i,a;for(n=jz(t.g,674),i=t.i-1;i>=0;--i)for(e=n[i],a=0;a<i;++a)if(m$t(t,e,n[a])){Lwt(t,i);break}}function Lgt(t){var e=t.e;function n(t){return t&&0!=t.length?"\t"+t.join("\n\t"):""}return e&&(e.stack||n(t[qZt]))}function Ogt(t){var e;switch(WY(),(e=t.Pc()).length){case 0:return jte;case 1:return new EU(yY(e[0]));default:return new kX(fft(e))}}function Mgt(t,e){switch(e.g){case 1:return Bz(t.j,(prt(),Ose));case 2:return Bz(t.j,(prt(),Nse));default:return kK(),kK(),cne}}function Ngt(t,e){switch(e){case 3:return void knt(t,0);case 4:return void Ent(t,0);case 5:return void Cnt(t,0);case 6:return void Snt(t,0)}sdt(t,e)}function Bgt(){Bgt=D,AE(),zYt(),Yme=Tme,Gme=r7(Cst(Hx(rEe,1),w4t,146,0,[mme,yme,wme,xme,kme,Eme,Cme,Sme,Dme,Lme,vme,Rme,Ame]))}function Pgt(t){var e,n;e=t.d==(ISt(),Xle),n=I_t(t),lct(t.a,(zYt(),vpe),e&&!n||!e&&n?(fyt(),IEe):(fyt(),DEe))}function Fgt(t,e){var n;return(n=jz(E3(t,m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15)).Qc(uH(n.gc()))}function jgt(){jgt=D,eDe=new ZT("SIMPLE",0),JAe=new ZT("GROUP_DEC",1),tDe=new ZT("GROUP_MIXED",2),QAe=new ZT("GROUP_INC",3)}function $gt(){$gt=D,HLe=new Lc,NLe=new Oc,BLe=new Mc,PLe=new Nc,FLe=new Bc,jLe=new Pc,$Le=new Fc,zLe=new jc,ULe=new $c}function zgt(t,e,n){Het(),sv.call(this),this.a=vU(Hie,[cZt,iJt],[595,212],0,[Zie,Gie],2),this.c=new dI,this.g=t,this.f=e,this.d=n}function Hgt(t,e){this.n=vU(DMe,[cZt,jKt],[364,25],14,[e,CJ(i.Math.ceil(t/32))],2),this.o=t,this.p=e,this.j=t-1>>1,this.k=e-1>>1}function Ugt(t,e){Akt(e,"End label post-processing",1),Kk(AZ(htt(new NU(null,new h1(t.b,16)),new on),new sn),new cn),zCt(e)}function Vgt(t,e,n){var i;return i=Hw(t.p[e.i.p])+Hw(t.d[e.i.p])+e.n.b+e.a.b,Hw(t.p[n.i.p])+Hw(t.d[n.i.p])+n.n.b+n.a.b-i}function qgt(t,e,n){var i,a;for(i=t0(n,qKt),a=0;0!=Gut(i,0)&&a<e;a++)i=ift(i,t0(t[a],qKt)),t[a]=fV(i),i=vq(i,32);return fV(i)}function Wgt(t){var e,n,i,a;for(a=0,n=0,i=t.length;n<i;n++)d1(n,t.length),(e=t.charCodeAt(n))<64&&(a=e0(a,yq(1,e)));return a}function Ygt(t){var e;return null==t?null:new DI((e=jzt(t,!0)).length>0&&(d1(0,e.length),43==e.charCodeAt(0))?e.substr(1):e)}function Ggt(t){var e;return null==t?null:new DI((e=jzt(t,!0)).length>0&&(d1(0,e.length),43==e.charCodeAt(0))?e.substr(1):e)}function Zgt(t,e){return t.i>0&&(e.length<t.i&&(e=Nnt(tlt(e).c,t.i)),rHt(t.g,0,e,0,t.i)),e.length>t.i&&DY(e,t.i,null),e}function Kgt(t,e,n){var i,a,r;return t.ej()?(i=t.i,r=t.fj(),Tdt(t,i,e),a=t.Zi(3,null,e,i,r),n?n.Ei(a):n=a):Tdt(t,t.i,e),n}function Xgt(t,e,n){var i,a;return i=new L9(t.e,4,10,iO(a=e.c,88)?jz(a,26):(pGt(),hLe),null,oyt(t,e),!1),n?n.Ei(i):n=i,n}function Jgt(t,e,n){var i,a;return i=new L9(t.e,3,10,null,iO(a=e.c,88)?jz(a,26):(pGt(),hLe),oyt(t,e),!1),n?n.Ei(i):n=i,n}function Qgt(t){var e;return zB(),e=new hI(jz(t.e.We((cGt(),jCe)),8)),t.B.Hc((QFt(),UAe))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e}function tpt(t){return hyt(),(t.q?t.q:(kK(),kK(),lne))._b((zYt(),Nbe))?jz(yEt(t,Nbe),197):jz(yEt(bG(t),Bbe),197)}function ept(t,e){var n,i;return i=null,IN(t,(zYt(),_me))&&(n=jz(yEt(t,_me),94)).Xe(e)&&(i=n.We(e)),null==i&&(i=yEt(bG(t),e)),i}function npt(t,e){var n,i,a;return!!iO(e,42)&&(i=(n=jz(e,42)).cd(),hG(a=ddt(t.Rc(),i),n.dd())&&(null!=a||t.Rc()._b(i)))}function ipt(t,e){var n;return t.f>0&&(t.qj(),-1!=DLt(t,((n=null==e?0:Qct(e))&NGt)%t.d.length,n,e))}function apt(t,e){var n,i;return t.f>0&&(t.qj(),n=rDt(t,((i=null==e?0:Qct(e))&NGt)%t.d.length,i,e))?n.dd():null}function rpt(t,e){var n,i,a,r;for(r=rNt(t.e.Tg(),e),n=jz(t.g,119),a=0;a<t.i;++a)if(i=n[a],r.rl(i.ak()))return!1;return!0}function opt(t){if(null==t.b){for(;t.a.Ob();)if(t.b=t.a.Pb(),!jz(t.b,49).Zg())return!0;return t.b=null,!1}return!0}function spt(t,e){t.mj();try{t.d.Vc(t.e++,e),t.f=t.d.j,t.g=-1}catch(n){throw iO(n=dst(n),73)?$m(new by):$m(n)}}function cpt(t,e){var n,i;return sL(),i=null,e==(n=lP((lx(),lx(),iee)))&&(i=jz(kJ(nee,t),615)),i||(i=new UY(t),e==n&&mQ(nee,t,i)),i}function lpt(t,e){var n,a;t.a=ift(t.a,1),t.c=i.Math.min(t.c,e),t.b=i.Math.max(t.b,e),t.d+=e,n=e-t.f,a=t.e+n,t.f=a-t.e-n,t.e=a}function upt(t,e){var n;t.c=e,t.a=bgt(e),t.a<54&&(t.f=(n=e.d>1?e0(yq(e.a[1],32),t0(e.a[0],qKt)):t0(e.a[0],qKt),w2(aft(e.e,n))))}function dpt(t,e){var n;return KD(t)&&KD(e)&&IKt<(n=t%e)&&n<AKt?n:oot((DUt(KD(t)?Cot(t):t,KD(e)?Cot(e):e,!0),dee))}function hpt(t,e){var n;Nqt(e),(n=jz(yEt(t,(zYt(),Kpe)),276))&&lct(t,Kpe,Dwt(n)),JM(t.c),JM(t.f),Y7(t.d),Y7(jz(yEt(t,Abe),207))}function fpt(t){this.e=O5(TMe,lKt,25,t.length,15,1),this.c=O5(AMe,JXt,25,t.length,16,1),this.b=O5(AMe,JXt,25,t.length,16,1),this.f=0}function gpt(t){var e,n;for(t.j=O5(LMe,HKt,25,t.p.c.length,15,1),n=new Wf(t.p);n.a<n.c.c.length;)e=jz(J1(n),10),t.j[e.p]=e.o.b/t.i}function ppt(t){var e;0!=t.c&&(1==(e=jz(OU(t.a,t.b),287)).b?(++t.b,t.b<t.a.c.length&&Rf(jz(OU(t.a,t.b),287))):--e.b,--t.c)}function bpt(t){var e;e=t.a;do{(e=jz(V6(new oq(XO(dft(e).a.Kc(),new u))),17).d.i).k==(oCt(),Cse)&&Wz(t.e,e)}while(e.k==(oCt(),Cse))}function mpt(){mpt=D,IAe=new WI(15),DAe=new qI((cGt(),qCe),IAe),OAe=new qI(ISe,15),LAe=new qI(bSe,nht(0)),AAe=new qI(iCe,gQt)}function ypt(){ypt=D,PAe=new YT("PORTS",0),FAe=new YT("PORT_LABELS",1),BAe=new YT("NODE_LABELS",2),NAe=new YT("MINIMUM_SIZE",3)}function vpt(t,e){var n,i;for(i=e.length,n=0;n<i;n+=2)KNt(t,(d1(n,e.length),e.charCodeAt(n)),(d1(n+1,e.length),e.charCodeAt(n+1)))}function wpt(t,e,n){var i,a,r,o;for(r=e-t.e,o=n-t.f,a=new Wf(t.a);a.a<a.c.c.length;)_yt(i=jz(J1(a),187),i.s+r,i.t+o);t.e=e,t.f=n}function xpt(t,e){var n,i,a;for(a=e.b.b,t.a=new Zk,t.b=O5(TMe,lKt,25,a,15,1),n=0,i=cmt(e.b,0);i.b!=i.d.c;)jz(d4(i),86).g=n++}function Rpt(t,e){var n,i,a,r;return n=e>>5,e&=31,a=t.d+n+(0==e?0:1),Mkt(i=O5(TMe,lKt,25,a,15,1),t.a,n,e),q0(r=new uW(t.e,a,i)),r}function _pt(t,e,n){var i,a;i=jz(kJ(tMe,e),117),a=jz(kJ(eMe,e),117),n?(mQ(tMe,t,i),mQ(eMe,t,a)):(mQ(eMe,t,i),mQ(tMe,t,a))}function kpt(t,e,n){var i,a,r;for(a=null,r=t.b;r;){if(i=t.a.ue(e,r.d),n&&0==i)return r;i>=0?r=r.a[1]:(a=r,r=r.a[0])}return a}function Ept(t,e,n){var i,a,r;for(a=null,r=t.b;r;){if(i=t.a.ue(e,r.d),n&&0==i)return r;i<=0?r=r.a[0]:(a=r,r=r.a[1])}return a}function Cpt(t,e,n,i){var a,r,o;return a=!1,LVt(t.f,n,i)&&(Mbt(t.f,t.a[e][n],t.a[e][i]),o=(r=t.a[e])[i],r[i]=r[n],r[n]=o,a=!0),a}function Spt(t,e,n,i,a){var r,o,s;for(o=a;e.b!=e.c;)r=jz(fW(e),10),s=jz(rft(r,i).Xb(0),11),t.d[s.p]=o++,n.c[n.c.length]=s;return o}function Tpt(t,e,n){var a,r,o,s,c;return s=t.k,c=e.k,r=_B(ept(t,a=n[s.g][c.g])),o=_B(ept(e,a)),i.Math.max((vG(r),r),(vG(o),o))}function Apt(t,e,n){var i,a,r,o;for(i=n/t.c.length,a=0,o=new Wf(t);o.a<o.c.c.length;)put(r=jz(J1(o),200),r.f+i*a),rRt(r,e,i),++a}function Dpt(t,e,n){var i,a,r;for(a=jz(NY(t.b,n),177),i=0,r=new Wf(e.j);r.a<r.c.c.length;)a[jz(J1(r),113).d.p]&&++i;return i}function Ipt(t){var e,n;return null!=(e=jz(vot(t.a,4),126))?(rHt(e,0,n=O5(hIe,n8t,415,e.length,0,1),0,e.length),n):dIe}function Lpt(){var t;return 0!=aee&&(t=u6())-ree>2e3&&(ree=t,oee=i.setTimeout(G_,10)),0==aee++&&(Ttt((sx(),tee)),!0)}function Opt(t,e){var n;for(n=new oq(XO(dft(t).a.Kc(),new u));gIt(n);)if(jz(V6(n),17).d.i.c==e)return!1;return!0}function Mpt(t,e){var n;if(iO(e,245)){n=jz(e,245);try{return 0==t.vd(n)}catch(i){if(!iO(i=dst(i),205))throw $m(i)}}return!1}function Npt(){return Error.stackTraceLimit>0?(i.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function Bpt(t,e){return cL(),cL(),iit(PZt),(i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)?0:t<e?-1:t>e?1:UD(isNaN(t),isNaN(e)))>0}function Ppt(t,e){return cL(),cL(),iit(PZt),(i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)?0:t<e?-1:t>e?1:UD(isNaN(t),isNaN(e)))<0}function Fpt(t,e){return cL(),cL(),iit(PZt),(i.Math.abs(t-e)<=PZt||t==e||isNaN(t)&&isNaN(e)?0:t<e?-1:t>e?1:UD(isNaN(t),isNaN(e)))<=0}function jpt(t,e){for(var n=0;!e[n]||""==e[n];)n++;for(var i=e[n++];n<e.length;n++)!e[n]||""==e[n]||(i+=t+e[n]);return i}function $pt(t,e,n){var a,r,o,s;for(P5(e,o=e+n,t.length),s="",r=e;r<o;)a=i.Math.min(r+1e4,o),s+=WG(t.slice(r,a)),r=a;return s}function zpt(t){var e,n,i,a;if(null==t)return null;for(a=new Lm,n=0,i=(e=vlt(t)).length;n<i;++n)Wz(a,jzt(e[n],!0));return a}function Hpt(t){var e,n,i,a;if(null==t)return null;for(a=new Lm,n=0,i=(e=vlt(t)).length;n<i;++n)Wz(a,jzt(e[n],!0));return a}function Upt(t){var e,n,i,a;if(null==t)return null;for(a=new Lm,n=0,i=(e=vlt(t)).length;n<i;++n)Wz(a,jzt(e[n],!0));return a}function Vpt(t,e){var n,i,a;if(t.c)Ent(t.c,e);else for(n=e-eV(t),a=new Wf(t.d);a.a<a.c.c.length;)Vpt(i=jz(J1(a),157),eV(i)+n)}function qpt(t,e){var n,i,a;if(t.c)knt(t.c,e);else for(n=e-tV(t),a=new Wf(t.a);a.a<a.c.c.length;)qpt(i=jz(J1(a),157),tV(i)+n)}function Wpt(t,e){var n,i,a;for(i=new K7(e.gc()),n=e.Kc();n.Ob();)(a=tjt(t,jz(n.Pb(),56)))&&(i.c[i.c.length]=a);return i}function Ypt(t,e){var n,i;return t.qj(),(n=rDt(t,((i=null==e?0:Qct(e))&NGt)%t.d.length,i,e))?(lit(t,n),n.dd()):null}function Gpt(t){var e,n;for(n=oSt(t),e=null;2==t.c;)ZYt(t),e||(fGt(),fGt(),tUt(e=new nL(2),n),n=e),n.$l(oSt(t));return n}function Zpt(t){if(!(H7t in t.a))throw $m(new tx("Every element must have an id."));return wAt(UJ(t,H7t))}function Kpt(t){var e,n,i;if(!(i=t.Zg()))for(e=0,n=t.eh();n;n=n.eh()){if(++e>UKt)return n.fh();if((i=n.Zg())||n==t)break}return i}function Xpt(t){return cQ(),iO(t,156)?jz(NY(sIe,yne),288).vg(t):cW(sIe,tlt(t))?jz(NY(sIe,tlt(t)),288).vg(t):null}function Jpt(t){if(ybt(r6t,t))return cM(),yee;if(ybt(o6t,t))return cM(),mee;throw $m(new Pw("Expecting true or false"))}function Qpt(t,e){if(e.c==t)return e.d;if(e.d==t)return e.c;throw $m(new Pw("Input edge is not connected to the input port."))}function tbt(t,e){return t.e>e.e?1:t.e<e.e?-1:t.d>e.d?t.e:t.d<e.d?-e.e:t.e*klt(t.a,e.a,t.d)}function ebt(t){return t>=48&&t<48+i.Math.min(10,10)?t-48:t>=97&&t<97?t-97+10:t>=65&&t<65?t-65+10:-1}function nbt(t,e){var n;return HA(e)===HA(t)||!(!iO(e,21)||(n=jz(e,21),n.gc()!=t.gc()))&&t.Ic(n)}function ibt(t,e){var n,i,a;return i=t.a.length-1,n=e-t.b&i,a=t.c-e&i,xN(n<(t.c-t.b&i)),n>=a?(rut(t,e),-1):(out(t,e),1)}function abt(t,e){var n,i;for(d1(e,t.length),n=t.charCodeAt(e),i=e+1;i<t.length&&(d1(i,t.length),t.charCodeAt(i)==n);)++i;return i-e}function rbt(t){switch(t.g){case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:return!0;default:return!1}}function obt(t,e){var n,i=t.a;e=String(e),i.hasOwnProperty(e)&&(n=i[e]);var a=(Jst(),uee)[typeof n];return a?a(n):wut(typeof n)}function sbt(t,e){if(t.a<0)throw $m(new Fw("Did not call before(...) or after(...) before calling add(...)."));return WM(t,t.a,e),t}function cbt(t,e,n,i){var a;0!=e.c.length&&(a=kOt(n,i),Kk(vet(new NU(null,new h1(oAt(e),1)),new _o),new qZ(t,n,a,i)))}function lbt(t,e,n){var i;t.Db&e?null==n?YDt(t,e):-1==(i=Bvt(t,e))?t.Eb=n:DY(ent(t.Eb),i,n):null!=n&&yNt(t,e,n)}function ubt(t){var e;return 32&t.Db||0!=(e=dY(jz(vot(t,16),26)||t.zh())-dY(t.zh()))&&lbt(t,32,O5(Dte,zGt,1,e,5,1)),t}function dbt(t){var e;return t.b||qR(t,!(e=JP(t.e,t.a))||!mF(o6t,apt((!e.b&&(e.b=new KN((pGt(),yLe),VLe,e)),e.b),"qualified"))),t.c}function hbt(t,e,n){var i,a;return((a=(i=jz(Yet($9(t.a),e),87)).c||(pGt(),lLe)).kh()?tdt(t.b,jz(a,49)):a)==n?d$t(i):ant(i,n),a}function fbt(t,e){(e||null==console.groupCollapsed?console.group??console.log:console.groupCollapsed).call(console,t)}function gbt(t,e,n,i){jz(n.b,65),jz(n.b,65),jz(i.b,65),jz(i.b,65).c.b,B5(i,e,t)}function pbt(t){var e,n;for(e=new Wf(t.g);e.a<e.c.c.length;)jz(J1(e),562);Vqt(n=new vNt(t.g,Hw(t.a),t.c)),t.g=n.b,t.d=n.a}function bbt(t,e,n){e.b=i.Math.max(e.b,-n.a),e.c=i.Math.max(e.c,n.a-t.a),e.d=i.Math.max(e.d,-n.b),e.a=i.Math.max(e.a,n.b-t.b)}function mbt(t,e){return t.e<e.e?-1:t.e>e.e?1:t.f<e.f?-1:t.f>e.f?1:Qct(t)-Qct(e)}function ybt(t,e){return vG(t),null!=e&&(!!mF(t,e)||t.length==e.length&&mF(t.toLowerCase(),e.toLowerCase()))}function vbt(t,e){var n,i,a,r;for(i=0,a=e.gc();i<a;++i)iO(n=e.il(i),99)&&jz(n,18).Bb&l7t&&null!=(r=e.jl(i))&&tjt(t,jz(r,56))}function wbt(t,e,n){var i,a,r;for(r=new Wf(n.a);r.a<r.c.c.length;)a=jz(J1(r),221),i=new CL(jz(NY(t.a,a.b),65)),Wz(e.a,i),wbt(t,i,a)}function xbt(t){var e,n;return Gut(t,-129)>0&&Gut(t,128)<0?(e=fV(t)+128,!(n=(xU(),Iee)[e])&&(n=Iee[e]=new Mf(t)),n):new Mf(t)}function Rbt(t,e){var n,i;return(n=e.Hh(t.a))&&null!=(i=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),t5t)))?i:e.ne()}function _bt(t,e){var n,i;return(n=e.Hh(t.a))&&null!=(i=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),t5t)))?i:e.ne()}function kbt(t,e){var n,i;for(zQ(),i=new oq(XO(lft(t).a.Kc(),new u));gIt(i);)if((n=jz(V6(i),17)).d.i==e||n.c.i==e)return n;return null}function Ebt(t,e,n){this.c=t,this.f=new Lm,this.e=new HR,this.j=new kU,this.n=new kU,this.b=e,this.g=new VZ(e.c,e.d,e.b,e.a),this.a=n}function Cbt(t){var e,n,i,a;for(this.a=new lI,this.d=new Ny,this.e=0,i=0,a=(n=t).length;i<a;++i)e=n[i],!this.f&&(this.f=e),g2(this,e)}function Sbt(t){ABt(),0==t.length?(this.e=0,this.d=1,this.a=Cst(Hx(TMe,1),lKt,25,15,[0])):(this.e=1,this.d=t.length,this.a=t,q0(this))}function Tbt(t,e,n){sv.call(this),this.a=O5(Hie,iJt,212,(Net(),Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length,0,1),this.b=t,this.d=e,this.c=n}function Abt(t){this.d=new Lm,this.e=new b3,this.c=O5(TMe,lKt,25,(wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length,15,1),this.b=t}function Dbt(t){var e,n,i,a;for(lct(a=jz(yEt(t,(lGt(),fhe)),11),Ihe,t.i.n.b),n=0,i=(e=X0(t.e)).length;n<i;++n)_Q(e[n],a)}function Ibt(t){var e,n,i,a;for(lct(e=jz(yEt(t,(lGt(),fhe)),11),Ihe,t.i.n.b),i=0,a=(n=X0(t.g)).length;i<a;++i)kQ(n[i],e)}function Lbt(t){var e,n;return!!IN(t.d.i,(zYt(),Wbe))&&(e=jz(yEt(t.c.i,Wbe),19),n=jz(yEt(t.d.i,Wbe),19),xL(e.a,n.a)>0)}function Obt(t){var e;HA(JIt(t,(cGt(),xCe)))===HA((odt(),mTe))&&(KJ(t)?(e=jz(JIt(KJ(t),xCe),334),Kmt(t,xCe,e)):Kmt(t,xCe,yTe))}function Mbt(t,e,n){var i,a;uEt(t.e,e,n,(wWt(),SAe)),uEt(t.i,e,n,sAe),t.a&&(a=jz(yEt(e,(lGt(),fhe)),11),i=jz(yEt(n,fhe),11),v0(t.g,a,i))}function Nbt(t,e,n){var i,a,r;i=e.c.p,r=e.p,t.b[i][r]=new MX(t,e),n&&(t.a[i][r]=new jp(e),(a=jz(yEt(e,(lGt(),nhe)),10))&&XAt(t.d,a,e))}function Bbt(t,e){var n,i,a;if(Wz(kre,t),e.Fc(t),n=jz(NY(_re,t),21))for(a=n.Kc();a.Ob();)i=jz(a.Pb(),33),-1!=x9(kre,i,0)||Bbt(i,e)}function Pbt(t,e,n){var i;(Une?(pgt(t),1):Vne||Yne?(uE(),1):Wne&&(uE(),0))&&((i=new ej(e)).b=n,rCt(t,i))}function Fbt(t,e){var n;n=!t.A.Hc((ypt(),FAe))||t.q==(Z_t(),WTe),t.u.Hc((dAt(),eAe))?n?OWt(t,e):rWt(t,e):t.u.Hc(iAe)&&(n?Dqt(t,e):XWt(t,e))}function jbt(t,e){var n,i;++t.j,null!=e&&sDt(e,n=iO(i=t.a.Cb,97)?jz(i,97).Jg():null)?lbt(t.a,4,n):lbt(t.a,4,jz(e,126))}function $bt(t,e,n){return new VZ(i.Math.min(t.a,e.a)-n/2,i.Math.min(t.b,e.b)-n/2,i.Math.abs(t.a-e.a)+n,i.Math.abs(t.b-e.b)+n)}function zbt(t,e){var n,i;return 0!=(n=xL(t.a.c.p,e.a.c.p))?n:0!=(i=xL(t.a.d.i.p,e.a.d.i.p))?i:xL(e.a.d.p,t.a.d.p)}function Hbt(t,e,n){var i,a,r,o;return(r=e.j)!=(o=n.j)?r.g-o.g:(i=t.f[e.p],a=t.f[n.p],0==i&&0==a?0:0==i?-1:0==a?1:Cht(i,a))}function Ubt(t,e,n){var i;if(!n[e.d])for(n[e.d]=!0,i=new Wf(wft(e));i.a<i.c.c.length;)Ubt(t,Oft(jz(J1(i),213),e),n)}function Vbt(t,e,n){var i;switch(i=n[t.g][e],t.g){case 1:case 3:return new OT(0,i);case 2:case 4:return new OT(i,0);default:return null}}function qbt(t,e,n){var i;i=jz(sJ(e.f),209);try{i.Ze(t,n),kG(e.f,i)}catch(a){throw iO(a=dst(a),102),$m(a)}}function Wbt(t,e,n){var i,a,r,o;return i=null,(r=bVt(ait(),e))&&(a=null,null!=(o=JUt(r,n))&&(a=t.Ye(r,o)),i=a),i}function Ybt(t,e,n,i){var a;return a=new L9(t.e,1,13,e.c||(pGt(),lLe),n.c||(pGt(),lLe),oyt(t,e),!1),i?i.Ei(a):i=a,i}function Gbt(t,e,n,i){var a;if(e>=(a=t.length))return a;for(e=e>0?e:0;e<a&&!tct((d1(e,t.length),t.charCodeAt(e)),n,i);e++);return e}function Zbt(t,e){var n,i;for(i=t.c.length,e.length<i&&(e=zx(new Array(i),e)),n=0;n<i;++n)DY(e,n,t.c[n]);return e.length>i&&DY(e,i,null),e}function Kbt(t,e){var n,i;for(i=t.a.length,e.length<i&&(e=zx(new Array(i),e)),n=0;n<i;++n)DY(e,n,t.a[n]);return e.length>i&&DY(e,i,null),e}function Xbt(t,e,n){var i,a,r;return(a=jz(NY(t.e,e),387))?(r=pP(a,n),rO(t,a),r):(i=new Jz(t,e,n),YG(t.e,e,i),vJ(i),null)}function Jbt(t){var e;if(null==t)return null;if(null==(e=LLt(jzt(t,!0))))throw $m(new ex("Invalid hexBinary value: '"+t+"'"));return e}function Qbt(t){return ABt(),Gut(t,0)<0?0!=Gut(t,-1)?new m_t(-1,w9(t)):Xee:Gut(t,10)<=0?Qee[fV(t)]:new m_t(1,t)}function tmt(){return gGt(),Cst(Hx(Lae,1),IZt,159,0,[Cae,Eae,Sae,mae,bae,yae,xae,wae,vae,kae,_ae,Rae,gae,fae,pae,dae,uae,hae,cae,sae,lae,Tae])}function emt(t){var e;this.d=new Lm,this.j=new HR,this.g=new HR,e=t.g.b,this.f=jz(yEt(bG(e),(zYt(),Vpe)),103),this.e=Hw(_B(pmt(e,kme)))}function nmt(t){this.b=new Lm,this.e=new Lm,this.d=t,this.a=!w_(AZ(new NU(null,new UW(new m7(t.b))),new ag(new Va))).sd((fE(),Qne))}function imt(){imt=D,lEe=new AT("PARENTS",0),cEe=new AT("NODES",1),oEe=new AT("EDGES",2),uEe=new AT("PORTS",3),sEe=new AT("LABELS",4)}function amt(){amt=D,$Te=new UT("DISTRIBUTED",0),HTe=new UT("JUSTIFIED",1),FTe=new UT("BEGIN",2),jTe=new UT(eJt,3),zTe=new UT("END",4)}function rmt(t){switch(t.yi(null)){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4}return-1}function omt(t){switch(t.g){case 1:return jdt(),zSe;case 4:return jdt(),FSe;case 2:return jdt(),jSe;case 3:return jdt(),PSe}return jdt(),$Se}function smt(t,e,n){var i;switch((i=n.q.getFullYear()-cKt+cKt)<0&&(i=-i),e){case 1:t.a+=i;break;case 2:xtt(t,i%100,2);break;default:xtt(t,i,e)}}function cmt(t,e){var n,i;if(IQ(e,t.b),e>=t.b>>1)for(i=t.c,n=t.b;n>e;--n)i=i.b;else for(i=t.a.a,n=0;n<e;++n)i=i.a;return new XF(t,e,i)}function lmt(){lmt=D,gie=new FC("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST",0),fie=new FC("CORNER_CASES_THAN_SINGLE_SIDE_LAST",1)}function umt(t){var e,n,i;for(mL(n=oTt(t),jse),(i=t.d).c=O5(Dte,zGt,1,0,5,1),e=new Wf(n);e.a<e.c.c.length;)pst(i,jz(J1(e),456).b)}function dmt(t){var e,n;for(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),e=(n=t.o).c.Kc();e.e!=e.i.gc();)jz(e.nj(),42).dd();return A5(n)}function hmt(t){var e;IF(jz(yEt(t,(zYt(),tme)),98))&&(uDt((u1(0,(e=t.b).c.length),jz(e.c[0],29))),uDt(jz(OU(e,e.c.length-1),29)))}function fmt(t,e){var n,a,r,o;for(n=0,r=new Wf(e.a);r.a<r.c.c.length;)o=(a=jz(J1(r),10)).o.a+a.d.c+a.d.b+t.j,n=i.Math.max(n,o);return n}function gmt(t){var e,n,i,a;for(a=0,n=0,i=t.length;n<i;n++)d1(n,t.length),(e=t.charCodeAt(n))>=64&&e<128&&(a=e0(a,yq(1,e-64)));return a}function pmt(t,e){var n,i;return i=null,IN(t,(cGt(),CSe))&&(n=jz(yEt(t,CSe),94)).Xe(e)&&(i=n.We(e)),null==i&&bG(t)&&(i=yEt(bG(t),e)),i}function bmt(t,e){var n,i,a;(i=(a=e.d.i).k)!=(oCt(),Sse)&&i!=_se&&gIt(n=new oq(XO(dft(a).a.Kc(),new u)))&&YG(t.k,e,jz(V6(n),17))}function mmt(t,e){var n,i,a;return i=eet(t.Tg(),e),(n=e-t.Ah())<0?(a=t.Yg(i))>=0?t.lh(a):HAt(t,i):n<0?HAt(t,i):jz(i,66).Nj().Sj(t,t.yh(),n)}function ymt(t){var e;if(iO(t.a,4)){if(null==(e=Xpt(t.a)))throw $m(new Fw(s6t+t.b+"'. "+i6t+(xB(uIe),uIe.k)+a6t));return e}return t.a}function vmt(t){var e;if(null==t)return null;if(null==(e=qWt(jzt(t,!0))))throw $m(new ex("Invalid base64Binary value: '"+t+"'"));return e}function wmt(t){var e;try{return e=t.i.Xb(t.e),t.mj(),t.g=t.e++,e}catch(n){throw iO(n=dst(n),73)?(t.mj(),$m(new yy)):$m(n)}}function xmt(t){var e;try{return e=t.c.ki(t.e),t.mj(),t.g=t.e++,e}catch(n){throw iO(n=dst(n),73)?(t.mj(),$m(new yy)):$m(n)}}function Rmt(){Rmt=D,cGt(),xre=RSe,pre=yCe,ure=iCe,bre=qCe,Fxt(),vre=_ie,yre=xie,wre=Eie,mre=wie,Ult(),hre=ore,dre=rre,fre=cre,gre=lre}function _mt(t){switch(wE(),this.c=new Lm,this.d=t,t.g){case 0:case 2:this.a=GG(cse),this.b=BKt;break;case 3:case 1:this.a=cse,this.b=PKt}}function kmt(t,e,n){var i;if(t.c)Cnt(t.c,t.c.i+e),Snt(t.c,t.c.j+n);else for(i=new Wf(t.b);i.a<i.c.c.length;)kmt(jz(J1(i),157),e,n)}function Emt(t,e){var n,i;if(t.j.length!=e.j.length)return!1;for(n=0,i=t.j.length;n<i;n++)if(!mF(t.j[n],e.j[n]))return!1;return!0}function Cmt(t,e,n){var i;e.a.length>0&&(Wz(t.b,new Yz(e.a,n)),0<(i=e.a.length)?e.a=e.a.substr(0,0):0>i&&(e.a+=nO(O5(SMe,YZt,25,-i,15,1))))}function Smt(t,e){var n,i,a;for(n=t.o,a=jz(jz(c7(t.r,e),21),84).Kc();a.Ob();)(i=jz(a.Pb(),111)).e.a=gwt(i,n.a),i.e.b=n.b*Hw(_B(i.b.We(Iae)))}function Tmt(t,e){var n,i,a,r;return a=t.k,n=Hw(_B(yEt(t,(lGt(),Rhe)))),r=e.k,i=Hw(_B(yEt(e,Rhe))),r!=(oCt(),kse)?-1:a!=kse?1:n==i?0:n<i?-1:1}function Amt(t,e){var n,i;return n=jz(jz(NY(t.g,e.a),46).a,65),i=jz(jz(NY(t.g,e.b),46).a,65),W5(e.a,e.b)-W5(e.a,PL(n.b))-W5(e.b,PL(i.b))}function Dmt(t,e){var n;return n=jz(yEt(t,(zYt(),bbe)),74),QL(e,bse)?n?yK(n):(n=new vv,lct(t,bbe,n)):n&&lct(t,bbe,null),n}function Imt(t){var e;return(e=new Cx).a+="n",t.k!=(oCt(),Sse)&&oD(oD((e.a+="(",e),fN(t.k).toLowerCase()),")"),oD((e.a+="_",e),pwt(t)),e.a}function Lmt(t,e){Akt(e,"Self-Loop post-processing",1),Kk(AZ(AZ(htt(new NU(null,new h1(t.b,16)),new Ni),new Bi),new Pi),new Fi),zCt(e)}function Omt(t,e,n,i){var a;return n>=0?t.hh(e,n,i):(t.eh()&&(i=(a=t.Vg())>=0?t.Qg(i):t.eh().ih(t,-1-a,null,i)),t.Sg(e,n,i))}function Mmt(t,e){switch(e){case 7:return!t.e&&(t.e=new cF(BDe,t,7,4)),void cUt(t.e);case 8:return!t.d&&(t.d=new cF(BDe,t,8,5)),void cUt(t.d)}Ngt(t,e)}function Nmt(t,e){var n;n=t.Zc(e);try{return n.Pb()}catch(i){throw iO(i=dst(i),109)?$m(new Aw("Can't get element "+e)):$m(i)}}function Bmt(t,e){this.e=t,e<WKt?(this.d=1,this.a=Cst(Hx(TMe,1),lKt,25,15,[0|e])):(this.d=2,this.a=Cst(Hx(TMe,1),lKt,25,15,[e%WKt|0,e/WKt|0]))}function Pmt(t,e){var n,i,a,r;for(kK(),n=t,r=e,iO(t,21)&&!iO(e,21)&&(n=e,r=t),a=n.Kc();a.Ob();)if(i=a.Pb(),r.Hc(i))return!1;return!0}function Fmt(t,e,n){var i,a,r,o;return-1!=(i=t.Xc(e))&&(t.ej()?(r=t.fj(),o=Lwt(t,i),a=t.Zi(4,o,null,i,r),n?n.Ei(a):n=a):Lwt(t,i)),n}function jmt(t,e,n){var i,a,r,o;return-1!=(i=t.Xc(e))&&(t.ej()?(r=t.fj(),o=hU(t,i),a=t.Zi(4,o,null,i,r),n?n.Ei(a):n=a):hU(t,i)),n}function $mt(t,e){var n;switch(n=jz(oZ(t.b,e),124).n,e.g){case 1:t.t>=0&&(n.d=t.t);break;case 3:t.t>=0&&(n.a=t.t)}t.C&&(n.b=t.C.b,n.c=t.C.c)}function zmt(){zmt=D,$ae=new PC(yJt,0),jae=new PC(vJt,1),zae=new PC(wJt,2),Hae=new PC(xJt,3),$ae.a=!1,jae.a=!0,zae.a=!1,Hae.a=!0}function Hmt(){Hmt=D,Jae=new BC(yJt,0),Xae=new BC(vJt,1),Qae=new BC(wJt,2),tre=new BC(xJt,3),Jae.a=!1,Xae.a=!0,Qae.a=!1,tre.a=!0}function Umt(t){var e;e=t.a;do{(e=jz(V6(new oq(XO(uft(e).a.Kc(),new u))),17).c.i).k==(oCt(),Cse)&&t.b.Fc(e)}while(e.k==(oCt(),Cse));t.b=eot(t.b)}function Vmt(t){var e,n,i;for(i=t.c.a,t.p=(yY(i),new QF(i)),n=new Wf(i);n.a<n.c.c.length;)(e=jz(J1(n),10)).p=lTt(e).a;kK(),mL(t.p,new Dr)}function qmt(t){var e,n,i;if(n=0,0==(i=fBt(t)).c.length)return 1;for(e=new Wf(i);e.a<e.c.c.length;)n+=qmt(jz(J1(e),33));return n}function Wmt(t,e){var n,i,a;for(a=0,i=jz(jz(c7(t.r,e),21),84).Kc();i.Ob();)a+=(n=jz(i.Pb(),111)).d.b+n.b.rf().a+n.d.c,i.Ob()&&(a+=t.w);return a}function Ymt(t,e){var n,i,a;for(a=0,i=jz(jz(c7(t.r,e),21),84).Kc();i.Ob();)a+=(n=jz(i.Pb(),111)).d.d+n.b.rf().b+n.d.a,i.Ob()&&(a+=t.w);return a}function Gmt(t,e,n,i){if(e.a<i.a)return!0;if(e.a==i.a){if(e.b<i.b)return!0;if(e.b==i.b&&t.b>n.b)return!0}return!1}function Zmt(t,e){return qA(t)?!!AGt[e]:t.hm?!!t.hm[e]:VA(t)?!!TGt[e]:!!UA(t)&&!!SGt[e]}function Kmt(t,e,n){return null==n?(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),Ypt(t.o,e)):(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),mRt(t.o,e,n)),t}function Xmt(t,e,n,i){var a;(a=Wdt(e.Xe((cGt(),MCe))?jz(e.We(MCe),21):t.j))!=(gGt(),Tae)&&(n&&!rbt(a)||qCt(OLt(t,a,i),e))}function Jmt(t,e,n,i){var a,r,o;return r=eet(t.Tg(),e),(a=e-t.Ah())<0?(o=t.Yg(r))>=0?t._g(o,n,!0):aDt(t,r,n):jz(r,66).Nj().Pj(t,t.yh(),a,n,i)}function Qmt(t,e,n,i){var a,r;n.mh(e)&&(XE(),ctt(e)?vbt(t,jz(n.ah(e),153)):(a=(r=e)?jz(i,49).xh(r):null)&&Pm(n.ah(e),a))}function tyt(t){switch(t.g){case 1:return Not(),Bae;case 3:return Not(),Oae;case 2:return Not(),Nae;case 4:return Not(),Mae;default:return null}}function eyt(t){switch(typeof t){case OGt:return myt(t);case LGt:return CJ(t);case IGt:return cM(),t?1231:1237;default:return null==t?0:EM(t)}}function nyt(t,e,n){if(t.e)switch(t.b){case 1:jK(t.c,e,n);break;case 0:$K(t.c,e,n)}else Q4(t.c,e,n);t.a[e.p][n.p]=t.c.i,t.a[n.p][e.p]=t.c.e}function iyt(t){var e,n;if(null==t)return null;for(n=O5(Rse,cZt,193,t.length,0,2),e=0;e<n.length;e++)n[e]=jz(H8(t[e],t[e].length),193);return n}function ayt(t){var e;if(Plt(t))return mq(t),t.Lk()&&(e=jAt(t.e,t.b,t.c,t.a,t.j),t.j=e),t.g=t.a,++t.a,++t.c,t.i=0,t.j;throw $m(new yy)}function ryt(t,e){var n,i,a,r;return(r=t.o)<(n=t.p)?r*=r:n*=n,i=r+n,(r=e.o)<(n=e.p)?r*=r:n*=n,i<(a=r+n)?-1:i==a?0:1}function oyt(t,e){var n,i;if((i=Ywt(t,e))>=0)return i;if(t.Fk())for(n=0;n<t.i;++n)if(HA(t.Gk(jz(t.g[n],56)))===HA(e))return n;return-1}function syt(t,e,n){var i,a;if(e>=(a=t.gc()))throw $m(new QP(e,a));if(t.hi()&&(i=t.Xc(n))>=0&&i!=e)throw $m(new Pw(r5t));return t.mi(e,n)}function cyt(t,e){if(this.a=jz(yY(t),245),this.b=jz(yY(e),245),t.vd(e)>0||t==(tw(),Pte)||e==(Qv(),Fte))throw $m(new Pw("Invalid range: "+j4(t,e)))}function lyt(t){var e,n;for(this.b=new Lm,this.c=t,this.a=!1,n=new Wf(t.a);n.a<n.c.c.length;)e=jz(J1(n),10),this.a=this.a|e.k==(oCt(),Sse)}function uyt(t,e){var n,i,a;for(n=AM(new zy,t),a=new Wf(e);a.a<a.c.c.length;)i=jz(J1(a),121),qMt(aE(iE(rE(nE(new $y,0),0),n),i));return n}function dyt(t,e,n){var i,a,r;for(a=new oq(XO((e?uft(t):dft(t)).a.Kc(),new u));gIt(a);)i=jz(V6(a),17),(r=e?i.c.i:i.d.i).k==(oCt(),Ese)&&EQ(r,n)}function hyt(){hyt=D,dye=new PS(ZQt,0),hye=new PS("PORT_POSITION",1),uye=new PS("NODE_SIZE_WHERE_SPACE_PERMITS",2),lye=new PS("NODE_SIZE",3)}function fyt(){fyt=D,SEe=new MT("AUTOMATIC",0),DEe=new MT(aJt,1),IEe=new MT(rJt,2),LEe=new MT("TOP",3),TEe=new MT(sJt,4),AEe=new MT(eJt,5)}function gyt(t,e,n,i){var a,r;for(IDt(),a=0,r=0;r<n;r++)a=ift(aft(t0(e[r],qKt),t0(i,qKt)),t0(fV(a),qKt)),t[r]=fV(a),a=wq(a,32);return fV(a)}function pyt(t,e,n){var a,r;for(r=0,a=0;a<Gie;a++)r=i.Math.max(r,mut(t.a[e.g][a],n));return e==(Net(),Vie)&&t.b&&(r=i.Math.max(r,t.b.b)),r}function byt(t,e){var n,i;if(RN(e>0),(e&-e)==e)return CJ(e*zLt(t,31)*4.656612873077393e-10);do{i=(n=zLt(t,31))%e}while(n-i+(e-1)<0);return CJ(i)}function myt(t){var e,n,i;return nj(),null!=(i=nie[n=":"+t])?CJ((vG(i),i)):(e=null==(i=eie[n])?XMt(t):CJ((vG(i),i)),SK(),nie[n]=e,e)}function yyt(t,e,n){Akt(n,"Compound graph preprocessor",1),t.a=new pJ,Oqt(t,e,null),UHt(t,e),tMt(t),lct(e,(lGt(),$de),t.a),t.a=null,DW(t.b),zCt(n)}function vyt(t,e,n){switch(n.g){case 1:t.a=e.a/2,t.b=0;break;case 2:t.a=e.a,t.b=e.b/2;break;case 3:t.a=e.a/2,t.b=e.b;break;case 4:t.a=0,t.b=e.b/2}}function wyt(t){var e,n,i;for(i=jz(c7(t.a,(L_t(),Cle)),15).Kc();i.Ob();)eY(t,n=jz(i.Pb(),101),(e=zwt(n))[0],(Sat(),Mle),0),eY(t,n,e[1],Ble,1)}function xyt(t){var e,n,i;for(i=jz(c7(t.a,(L_t(),Sle)),15).Kc();i.Ob();)eY(t,n=jz(i.Pb(),101),(e=zwt(n))[0],(Sat(),Mle),0),eY(t,n,e[1],Ble,1)}function Ryt(t){switch(t.g){case 0:return null;case 1:return new Dat;case 2:return new Kv;default:throw $m(new Pw(a3t+(null!=t.f?t.f:""+t.g)))}}function _yt(t,e,n){var i,a;for(yst(t,e-t.s,n-t.t),a=new Wf(t.n);a.a<a.c.c.length;)ef(i=jz(J1(a),211),i.e+e-t.s),nf(i,i.f+n-t.t);t.s=e,t.t=n}function kyt(t){var e,n,i,a;for(n=0,i=new Wf(t.a);i.a<i.c.c.length;)jz(J1(i),121).d=n++;return a=null,(e=fCt(t)).c.length>1&&(a=uyt(t,e)),a}function Eyt(t){var e;return t.f&&t.f.kh()&&(e=jz(t.f,49),t.f=jz(tdt(t,e),82),t.f!=e&&4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,8,e,t.f))),t.f}function Cyt(t){var e;return t.i&&t.i.kh()&&(e=jz(t.i,49),t.i=jz(tdt(t,e),82),t.i!=e&&4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,7,e,t.i))),t.i}function Syt(t){var e;return t.b&&64&t.b.Db&&(e=t.b,t.b=jz(tdt(t,e),18),t.b!=e&&4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,21,e,t.b))),t.b}function Tyt(t,e){var n,i,a;null==t.d?(++t.e,++t.f):(i=e.Sh(),uMt(t,t.f+1),a=(i&NGt)%t.d.length,!(n=t.d[a])&&(n=t.d[a]=t.uj()),n.Fc(e),++t.f)}function Ayt(t,e,n){var i;return!e.Kj()&&(-2!=e.Zj()?null==(i=e.zj())?null==n:Odt(i,n):e.Hj()==t.e.Tg()&&null==n)}function Dyt(){var t;dit(16,TZt),t=Xit(16),this.b=O5(Ute,SZt,317,t,0,1),this.c=O5(Ute,SZt,317,t,0,1),this.a=null,this.e=null,this.i=0,this.f=t-1,this.g=0}function Iyt(t){IP.call(this),this.k=(oCt(),Sse),this.j=(dit(6,DZt),new K7(6)),this.b=(dit(2,DZt),new K7(2)),this.d=new lv,this.f=new hv,this.a=t}function Lyt(t){var e,n;t.c.length<=1||(gSt(t,jz((e=RBt(t,(wWt(),EAe))).a,19).a,jz(e.b,19).a),gSt(t,jz((n=RBt(t,SAe)).a,19).a,jz(n.b,19).a))}function Oyt(){Oyt=D,vye=new FS("SIMPLE",0),bye=new FS($1t,1),mye=new FS("LINEAR_SEGMENTS",2),pye=new FS("BRANDES_KOEPF",3),yye=new FS(x4t,4)}function Myt(t,e,n){IF(jz(yEt(e,(zYt(),tme)),98))||(W9(t,e,NCt(e,n)),W9(t,e,NCt(e,(wWt(),EAe))),W9(t,e,NCt(e,cAe)),kK(),mL(e.j,new Pp(t)))}function Nyt(t,e,n,i){var a;for(a=jz(c7(i?t.a:t.b,e),21).Kc();a.Ob();)if(FBt(t,n,jz(a.Pb(),33)))return!0;return!1}function Byt(t){var e,n;for(n=new AO(t);n.e!=n.i.gc();)if((e=jz(wmt(n),87)).e||0!=(!e.d&&(e.d=new DO(WIe,e,1)),e.d).i)return!0;return!1}function Pyt(t){var e,n;for(n=new AO(t);n.e!=n.i.gc();)if((e=jz(wmt(n),87)).e||0!=(!e.d&&(e.d=new DO(WIe,e,1)),e.d).i)return!0;return!1}function Fyt(t){var e,n;for(e=0,n=new Wf(t.c.a);n.a<n.c.c.length;)e+=F4(new oq(XO(dft(jz(J1(n),10)).a.Kc(),new u)));return e/t.c.a.c.length}function jyt(t){var e,n;for(t.c||VUt(t),n=new vv,J1(e=new Wf(t.a));e.a<e.c.c.length;)MH(n,jz(J1(e),407).a);return EN(0!=n.b),Det(n,n.c.b),n}function $yt(){$yt=D,hPt(),zke=Nke,jke=new WI(8),new qI((cGt(),qCe),jke),new qI(ISe,8),$ke=Oke,Pke=_ke,Fke=kke,Bke=new qI(uCe,(cM(),!1))}function zyt(t,e,n,i){switch(e){case 7:return!t.e&&(t.e=new cF(BDe,t,7,4)),t.e;case 8:return!t.d&&(t.d=new cF(BDe,t,8,5)),t.d}return Bft(t,e,n,i)}function Hyt(t){var e;return t.a&&t.a.kh()&&(e=jz(t.a,49),t.a=jz(tdt(t,e),138),t.a!=e&&4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,5,e,t.a))),t.a}function Uyt(t){return t<48||t>102?-1:t<=57?t-48:t<65?-1:t<=70?t-65+10:t<97?-1:t-97+10}function Vyt(t,e){if(null==t)throw $m(new $w("null key in entry: null="+e));if(null==e)throw $m(new $w("null value in entry: "+t+"=null"))}function qyt(t,e){for(var n,i;t.Ob();)if(!(e.Ob()&&(n=t.Pb(),i=e.Pb(),HA(n)===HA(i)||null!=n&&Odt(n,i))))return!1;return!e.Ob()}function Wyt(t,e){var n;return n=Cst(Hx(LMe,1),HKt,25,15,[mut(t.a[0],e),mut(t.a[1],e),mut(t.a[2],e)]),t.d&&(n[0]=i.Math.max(n[0],n[2]),n[2]=n[0]),n}function Yyt(t,e){var n;return n=Cst(Hx(LMe,1),HKt,25,15,[yut(t.a[0],e),yut(t.a[1],e),yut(t.a[2],e)]),t.d&&(n[0]=i.Math.max(n[0],n[2]),n[2]=n[0]),n}function Gyt(){Gyt=D,vue=new kS("GREEDY",0),yue=new kS(z1t,1),xue=new kS($1t,2),Rue=new kS("MODEL_ORDER",3),wue=new kS("GREEDY_MODEL_ORDER",4)}function Zyt(t,e){var n,i,a;for(t.b[e.g]=1,i=cmt(e.d,0);i.b!=i.d.c;)a=(n=jz(d4(i),188)).c,1==t.b[a.g]?MH(t.a,n):2==t.b[a.g]?t.b[a.g]=1:Zyt(t,a)}function Kyt(t,e){var n,i,a;for(a=new K7(e.gc()),i=e.Kc();i.Ob();)(n=jz(i.Pb(),286)).c==n.f?lSt(t,n,n.c):iSt(t,n)||(a.c[a.c.length]=n);return a}function Xyt(t,e,n){var i,a,r,o;for(o=t.r+e,t.r+=e,t.d+=n,i=n/t.n.c.length,a=0,r=new Wf(t.n);r.a<r.c.c.length;)fLt(jz(J1(r),211),o,i,a),++a}function Jyt(t){var e,n;for(mw(t.b.a),t.a=O5(cie,zGt,57,t.c.c.a.b.c.length,0,1),e=0,n=new Wf(t.c.c.a.b);n.a<n.c.c.length;)jz(J1(n),57).f=e++}function Qyt(t){var e,n;for(mw(t.b.a),t.a=O5(Yoe,zGt,81,t.c.a.a.b.c.length,0,1),e=0,n=new Wf(t.c.a.a.b);n.a<n.c.c.length;)jz(J1(n),81).i=e++}function tvt(t,e,n){Akt(n,"Shrinking tree compaction",1),zw(RB(yEt(e,(Wrt(),Gae))))?(nat(t,e.f),rtt(e.f,e.c)):rtt(e.f,e.c),zCt(n)}function evt(t){var e;if(e=hut(t),!gIt(t))throw $m(new Aw("position (0) must be less than the number of elements that remained ("+e+")"));return V6(t)}function nvt(t,e,n){try{return mvt(t,e+t.j,n+t.k)}catch(i){throw iO(i=dst(i),73)?$m(new Aw(i.g+SJt+e+jGt+n+").")):$m(i)}}function ivt(t,e,n){try{return yvt(t,e+t.j,n+t.k)}catch(i){throw iO(i=dst(i),73)?$m(new Aw(i.g+SJt+e+jGt+n+").")):$m(i)}}function avt(t,e,n){try{return vvt(t,e+t.j,n+t.k)}catch(i){throw iO(i=dst(i),73)?$m(new Aw(i.g+SJt+e+jGt+n+").")):$m(i)}}function rvt(t){switch(t.g){case 1:return wWt(),SAe;case 4:return wWt(),cAe;case 3:return wWt(),sAe;case 2:return wWt(),EAe;default:return wWt(),CAe}}function ovt(t,e,n){e.k==(oCt(),Sse)&&n.k==Cse&&(t.d=Rdt(e,(wWt(),EAe)),t.b=Rdt(e,cAe)),n.k==Sse&&e.k==Cse&&(t.d=Rdt(n,(wWt(),cAe)),t.b=Rdt(n,EAe))}function svt(t,e){var n,i;for(i=rft(t,e).Kc();i.Ob();)if(null!=yEt(n=jz(i.Pb(),11),(lGt(),xhe))||UM(new m7(n.b)))return!0;return!1}function cvt(t,e){return Cnt(e,t.e+t.d+(0==t.c.c.length?0:t.b)),Snt(e,t.f),t.a=i.Math.max(t.a,e.f),t.d+=e.g+(0==t.c.c.length?0:t.b),Wz(t.c,e),!0}function lvt(t,e,n){var i,a,r,o;for(o=0,i=n/t.a.c.length,r=new Wf(t.a);r.a<r.c.c.length;)_yt(a=jz(J1(r),187),a.s,a.t+o*i),Xyt(a,t.d-a.r+e,i),++o}function uvt(t){var e,n,i;for(n=new Wf(t.b);n.a<n.c.c.length;)for(e=0,i=new Wf(jz(J1(n),29).a);i.a<i.c.c.length;)jz(J1(i),10).p=e++}function dvt(t,e){var n,i,a,r,o,s;for(a=e.length-1,o=0,s=0,i=0;i<=a;i++)r=e[i],n=bCt(a,i)*edt(1-t,a-i)*edt(t,i),o+=r.a*n,s+=r.b*n;return new OT(o,s)}function hvt(t,e){var n,i,a,r,o;for(n=e.gc(),t.qi(t.i+n),r=e.Kc(),o=t.i,t.i+=n,i=o;i<t.i;++i)a=r.Pb(),wO(t,i,t.oi(i,a)),t.bi(i,a),t.ci();return 0!=n}function fvt(t,e,n){var i,a,r;return t.ej()?(i=t.Vi(),r=t.fj(),++t.j,t.Hi(i,t.oi(i,e)),a=t.Zi(3,null,e,i,r),n?n.Ei(a):n=a):XB(t,t.Vi(),e),n}function gvt(t,e,n){var i,a,r;return(64&(r=iO(a=(i=jz(Yet(a3(t.a),e),87)).c,88)?jz(a,26):(pGt(),hLe)).Db?tdt(t.b,r):r)==n?d$t(i):ant(i,n),r}function pvt(t,e,n,i,a,r,o,s){var c,l;i&&((c=i.a[0])&&pvt(t,e,n,c,a,r,o,s),Twt(t,n,i.d,a,r,o,s)&&e.Fc(i),(l=i.a[1])&&pvt(t,e,n,l,a,r,o,s))}function bvt(t,e){var n;return t.a||(n=O5(LMe,HKt,25,0,15,1),g_(t.b.a,new dg(n)),n.sort(nnt(k.prototype.te,k,[])),t.a=new PF(n,t.d)),B7(t.a,e)}function mvt(t,e,n){try{return GA(tat(t,e,n),1)}catch(i){throw iO(i=dst(i),320)?$m(new Aw(kJt+t.o+"*"+t.p+EJt+e+jGt+n+CJt)):$m(i)}}function yvt(t,e,n){try{return GA(tat(t,e,n),0)}catch(i){throw iO(i=dst(i),320)?$m(new Aw(kJt+t.o+"*"+t.p+EJt+e+jGt+n+CJt)):$m(i)}}function vvt(t,e,n){try{return GA(tat(t,e,n),2)}catch(i){throw iO(i=dst(i),320)?$m(new Aw(kJt+t.o+"*"+t.p+EJt+e+jGt+n+CJt)):$m(i)}}function wvt(t,e){if(-1==t.g)throw $m(new fy);t.mj();try{t.d._c(t.g,e),t.f=t.d.j}catch(n){throw iO(n=dst(n),73)?$m(new by):$m(n)}}function xvt(t,e,n){Akt(n,"Linear segments node placement",1),t.b=jz(yEt(e,(lGt(),Ahe)),304),GYt(t,e),mHt(t,e),ZHt(t,e),lYt(t),t.a=null,t.b=null,zCt(n)}function Rvt(t,e){var n,i,a,r;for(r=t.gc(),e.length<r&&(e=zx(new Array(r),e)),a=e,i=t.Kc(),n=0;n<r;++n)DY(a,n,i.Pb());return e.length>r&&DY(e,r,null),e}function _vt(t,e){var n,i;if(i=t.gc(),null==e){for(n=0;n<i;n++)if(null==t.Xb(n))return n}else for(n=0;n<i;n++)if(Odt(e,t.Xb(n)))return n;return-1}function kvt(t,e){var n,i,a;return n=e.cd(),a=e.dd(),i=t.xc(n),!(!(HA(a)===HA(i)||null!=a&&Odt(a,i))||null==i&&!t._b(n))}function Evt(t,e){var n,i,a;return e<=22?(n=t.l&(1<<e)-1,i=a=0):e<=44?(n=t.l,i=t.m&(1<<e-22)-1,a=0):(n=t.l,i=t.m,a=t.h&(1<<e-44)-1),_L(n,i,a)}function Cvt(t,e){switch(e.g){case 1:return t.f.n.d+t.t;case 3:return t.f.n.a+t.t;case 2:return t.f.n.c+t.s;case 4:return t.f.n.b+t.s;default:return 0}}function Svt(t,e){var n,i;switch(i=e.c,n=e.a,t.b.g){case 0:n.d=t.e-i.a-i.d;break;case 1:n.d+=t.e;break;case 2:n.c=t.e-i.a-i.d;break;case 3:n.c=t.e+i.d}}function Tvt(t,e,n,i){var a,r;this.a=e,this.c=i,Ah(this,new OT(-(a=t.a).c,-a.d)),VP(this.b,n),r=i/2,e.a?jN(this.b,0,r):jN(this.b,r,0),Wz(t.c,this)}function Avt(){Avt=D,HRe=new mT(ZQt,0),$Re=new mT(H1t,1),zRe=new mT("EDGE_LENGTH_BY_POSITION",2),jRe=new mT("CROSSING_MINIMIZATION_BY_POSITION",3)}function Dvt(t,e){var n,i;if(n=jz(cnt(t.g,e),33))return n;if(i=jz(cnt(t.j,e),118))return i;throw $m(new tx("Referenced shape does not exist: "+e))}function Ivt(t,e){if(t.c==e)return t.d;if(t.d==e)return t.c;throw $m(new Pw("Node 'one' must be either source or target of edge 'edge'."))}function Lvt(t,e){if(t.c.i==e)return t.d.i;if(t.d.i==e)return t.c.i;throw $m(new Pw("Node "+e+" is neither source nor target of edge "+t))}function Ovt(t,e){var n;switch(e.g){case 2:case 4:n=t.a,t.c.d.n.b<n.d.n.b&&(n=t.c),dW(t,e,(Ast(),wle),n);break;case 1:case 3:dW(t,e,(Ast(),mle),null)}}function Mvt(t,e,n,i,a,r){var o,s,c,l,u;for(o=nRt(e,n,r),s=n==(wWt(),cAe)||n==SAe?-1:1,l=t[n.g],u=0;u<l.length;u++)(c=l[u])>0&&(c+=a),l[u]=o,o+=s*(c+i)}function Nvt(t){var e,n,i;for(i=t.f,t.n=O5(LMe,HKt,25,i,15,1),t.d=O5(LMe,HKt,25,i,15,1),e=0;e<i;e++)n=jz(OU(t.c.b,e),29),t.n[e]=fmt(t,n),t.d[e]=GOt(t,n)}function Bvt(t,e){var n,i,a;for(a=0,i=2;i<e;i<<=1)t.Db&i&&++a;if(0==a){for(n=e<<=1;n<=128;n<<=1)if(t.Db&n)return 0;return-1}return a}function Pvt(t,e){var n,i,a,r,o;for(o=rNt(t.e.Tg(),e),r=null,n=jz(t.g,119),a=0;a<t.i;++a)i=n[a],o.rl(i.ak())&&(!r&&(r=new bc),l8(r,i));r&&rYt(t,r)}function Fvt(t){var e,n;if(!t)return null;if(t.dc())return"";for(n=new kx,e=t.Kc();e.Ob();)iD(n,kB(e.Pb())),n.a+=" ";return BD(n,n.a.length-1)}function jvt(t,e,n){var i,a,r,o;for(act(t),null==t.k&&(t.k=O5(Xte,cZt,78,0,0,1)),a=0,r=(i=t.k).length;a<r;++a)jvt(i[a]);(o=t.f)&&jvt(o)}function $vt(t,e){var n,i=new Array(e);switch(t){case 14:case 15:n=0;break;case 16:n=!1;break;default:return i}for(var a=0;a<e;++a)i[a]=n;return i}function zvt(t){var e;for(e=new Wf(t.a.b);e.a<e.c.c.length;)jz(J1(e),57).c.$b();Aet(fI(t.d)?t.a.c:t.a.d,new _g(t)),t.c.Me(t),FNt(t)}function Hvt(t){var e,n,i;for(n=new Wf(t.e.c);n.a<n.c.c.length;){for(i=new Wf((e=jz(J1(n),282)).b);i.a<i.c.c.length;)Fzt(jz(J1(i),447));$Tt(e)}}function Uvt(t){var e,n,a,r,o;for(a=0,o=0,r=0,n=new Wf(t.a);n.a<n.c.c.length;)e=jz(J1(n),187),o=i.Math.max(o,e.r),a+=e.d+(r>0?t.c:0),++r;t.b=a,t.d=o}function Vvt(t,e){var n,a,r,o,s;for(a=0,r=0,n=0,s=new Wf(e);s.a<s.c.c.length;)o=jz(J1(s),200),a=i.Math.max(a,o.e),r+=o.b+(n>0?t.g:0),++n;t.c=r,t.d=a}function qvt(t,e){var n;return n=Cst(Hx(LMe,1),HKt,25,15,[pyt(t,(Net(),Uie),e),pyt(t,Vie,e),pyt(t,qie,e)]),t.f&&(n[0]=i.Math.max(n[0],n[2]),n[2]=n[0]),n}function Wvt(t,e,n){try{jPt(t,e+t.j,n+t.k,!1,!0)}catch(i){throw iO(i=dst(i),73)?$m(new Aw(i.g+SJt+e+jGt+n+").")):$m(i)}}function Yvt(t,e,n){try{jPt(t,e+t.j,n+t.k,!0,!1)}catch(i){throw iO(i=dst(i),73)?$m(new Aw(i.g+SJt+e+jGt+n+").")):$m(i)}}function Gvt(t){var e;IN(t,(zYt(),Dbe))&&((e=jz(yEt(t,Dbe),21)).Hc((QIt(),TTe))?(e.Mc(TTe),e.Fc(DTe)):e.Hc(DTe)&&(e.Mc(DTe),e.Fc(TTe)))}function Zvt(t){var e;IN(t,(zYt(),Dbe))&&((e=jz(yEt(t,Dbe),21)).Hc((QIt(),NTe))?(e.Mc(NTe),e.Fc(OTe)):e.Hc(OTe)&&(e.Mc(OTe),e.Fc(NTe)))}function Kvt(t,e,n){Akt(n,"Self-Loop ordering",1),Kk(DZ(AZ(AZ(htt(new NU(null,new h1(e.b,16)),new Ai),new Di),new Ii),new Li),new dp(t)),zCt(n)}function Xvt(t,e,n,i){var a,r;for(a=e;a<t.c.length;a++){if(u1(a,t.c.length),r=jz(t.c[a],11),!n.Mb(r))return a;i.c[i.c.length]=r}return t.c.length}function Jvt(t,e,n,i){var a,r,o;return null==t.a&&gCt(t,e),o=e.b.j.c.length,r=n.d.p,(a=i.d.p-1)<0&&(a=o-1),r<=a?t.a[a]-t.a[r]:t.a[o-1]-t.a[r]+t.a[a]}function Qvt(t){var e,n;if(!t.b)for(t.b=C2(jz(t.f,33).Ag().i),n=new AO(jz(t.f,33).Ag());n.e!=n.i.gc();)e=jz(wmt(n),137),Wz(t.b,new Nw(e));return t.b}function twt(t){var e,n;if(!t.e)for(t.e=C2(yZ(jz(t.f,33)).i),n=new AO(yZ(jz(t.f,33)));n.e!=n.i.gc();)e=jz(wmt(n),118),Wz(t.e,new om(e));return t.e}function ewt(t){var e,n;if(!t.a)for(t.a=C2(ZK(jz(t.f,33)).i),n=new AO(ZK(jz(t.f,33)));n.e!=n.i.gc();)e=jz(wmt(n),33),Wz(t.a,new KM(t,e));return t.a}function nwt(t){var e;if(!t.C&&(null!=t.D||null!=t.B))if(e=hqt(t))t.yk(e);else try{t.yk(null)}catch(n){if(!iO(n=dst(n),60))throw $m(n)}return t.C}function iwt(t){switch(t.q.g){case 5:wRt(t,(wWt(),cAe)),wRt(t,EAe);break;case 4:aVt(t,(wWt(),cAe)),aVt(t,EAe);break;default:jSt(t,(wWt(),cAe)),jSt(t,EAe)}}function awt(t){switch(t.q.g){case 5:xRt(t,(wWt(),sAe)),xRt(t,SAe);break;case 4:rVt(t,(wWt(),sAe)),rVt(t,SAe);break;default:$St(t,(wWt(),sAe)),$St(t,SAe)}}function rwt(t,e){var n,a,r;for(r=new HR,a=t.Kc();a.Ob();)JPt(n=jz(a.Pb(),37),r.a,0),r.a+=n.f.a+e,r.b=i.Math.max(r.b,n.f.b);return r.b>0&&(r.b+=e),r}function owt(t,e){var n,a,r;for(r=new HR,a=t.Kc();a.Ob();)JPt(n=jz(a.Pb(),37),0,r.b),r.b+=n.f.b+e,r.a=i.Math.max(r.a,n.f.a);return r.a>0&&(r.a+=e),r}function swt(t){var e,n,a;for(a=NGt,n=new Wf(t.a);n.a<n.c.c.length;)IN(e=jz(J1(n),10),(lGt(),hhe))&&(a=i.Math.min(a,jz(yEt(e,hhe),19).a));return a}function cwt(t,e){var n,i;if(0==e.length)return 0;for(n=XY(t.a,e[0],(wWt(),SAe)),n+=XY(t.a,e[e.length-1],sAe),i=0;i<e.length;i++)n+=HEt(t,i,e);return n}function lwt(){pNt(),this.c=new Lm,this.i=new Lm,this.e=new lI,this.f=new lI,this.g=new lI,this.j=new Lm,this.a=new Lm,this.b=new Om,this.k=new Om}function uwt(t,e){var n;return t.Db>>16==6?t.Cb.ih(t,5,zDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||t.zh(),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function dwt(t){EX();var e=t.e;if(e&&e.stack){var n=e.stack,i=e+"\n";return n.substring(0,i.length)==i&&(n=n.substring(i.length)),n.split("\n")}return[]}function hwt(t){var e;return kit(),(e=Aee)[t>>>28]|e[t>>24&15]<<4|e[t>>20&15]<<8|e[t>>16&15]<<12|e[t>>12&15]<<16|e[t>>8&15]<<20|e[t>>4&15]<<24|e[15&t]<<28}function fwt(t){var e,n,a;t.b==t.c&&(a=t.a.length,n=wct(i.Math.max(8,a))<<1,0!=t.b?(oat(t,e=kP(t.a,n),a),t.a=e,t.b=0):Ey(t.a,n),t.c=a)}function gwt(t,e){var n;return(n=t.b).Xe((cGt(),aSe))?n.Hf()==(wWt(),SAe)?-n.rf().a-Hw(_B(n.We(aSe))):e+Hw(_B(n.We(aSe))):n.Hf()==(wWt(),SAe)?-n.rf().a:e}function pwt(t){return 0!=t.b.c.length&&jz(OU(t.b,0),70).a?jz(OU(t.b,0),70).a:tK(t)??""+(t.c?x9(t.c.a,t,0):-1)}function bwt(t){return 0!=t.f.c.length&&jz(OU(t.f,0),70).a?jz(OU(t.f,0),70).a:tK(t)??""+(t.i?x9(t.i.j,t,0):-1)}function mwt(t,e){var n,i;if(e<0||e>=t.gc())return null;for(n=e;n<t.gc();++n)if(i=jz(t.Xb(n),128),n==t.gc()-1||!i.o)return new nA(nht(n),i);return null}function ywt(t,e,n){var i,a,r,o;for(r=t.c,i=n?t:e,a=(n?e:t).p+1;a<i.p;++a)if((o=jz(OU(r.a,a),10)).k!=(oCt(),_se)&&!Lxt(o))return!1;return!0}function vwt(t){var e,n,a,r,o;for(o=0,r=PKt,a=0,n=new Wf(t.a);n.a<n.c.c.length;)o+=(e=jz(J1(n),187)).r+(a>0?t.c:0),r=i.Math.max(r,e.d),++a;t.e=o,t.b=r}function wwt(t){var e,n;if(!t.b)for(t.b=C2(jz(t.f,118).Ag().i),n=new AO(jz(t.f,118).Ag());n.e!=n.i.gc();)e=jz(wmt(n),137),Wz(t.b,new Nw(e));return t.b}function xwt(t,e){var n,i,a;if(e.dc())return fB(),fB(),gIe;for(n=new aP(t,e.gc()),a=new AO(t);a.e!=a.i.gc();)i=wmt(a),e.Hc(i)&&l8(n,i);return n}function Rwt(t,e,n,i){return 0==e?i?(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),t.o):(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),A5(t.o)):Jmt(t,e,n,i)}function _wt(t){var e,n;if(t.rb)for(e=0,n=t.rb.i;e<n;++e)bN(Yet(t.rb,e));if(t.vb)for(e=0,n=t.vb.i;e<n;++e)bN(Yet(t.vb,e));aq((TSt(),KLe),t),t.Bb|=1}function kwt(t,e,n,i,a,r,o,s,c,l,u,d,h,f){return hTt(t,e,i,null,a,r,o,s,c,l,h,!0,f),Vht(t,u),iO(t.Cb,88)&&DTt(E6(jz(t.Cb,88)),2),n&&iat(t,n),qht(t,d),t}function Ewt(t){var e;if(null==t)return null;e=0;try{e=djt(t,FZt,NGt)&ZZt}catch(n){if(!iO(n=dst(n),127))throw $m(n);e=Y9(t)[0]}return ust(e)}function Cwt(t){var e;if(null==t)return null;e=0;try{e=djt(t,FZt,NGt)&ZZt}catch(n){if(!iO(n=dst(n),127))throw $m(n);e=Y9(t)[0]}return ust(e)}function Swt(t,e){var n,i,a;return!((a=t.h-e.h)<0||(n=t.l-e.l,i=t.m-e.m+(n>>22),a+=i>>22,a<0)||(t.l=n&EKt,t.m=i&EKt,t.h=a&CKt,0))}function Twt(t,e,n,i,a,r,o){var s,c;return!(e.Ae()&&(c=t.a.ue(n,i),c<0||!a&&0==c)||e.Be()&&(s=t.a.ue(n,r),s>0||!o&&0==s))}function Awt(t,e){if(Vlt(),0!=t.j.g-e.j.g)return 0;switch(t.j.g){case 2:return xft(e,dle)-xft(t,dle);case 4:return xft(t,ule)-xft(e,ule)}return 0}function Dwt(t){switch(t.g){case 0:return Mue;case 1:return Nue;case 2:return Bue;case 3:return Pue;case 4:return Fue;case 5:return jue;default:return null}}function Iwt(t,e,n){var i,a;return Tut(a=new Iv,e),Oat(a,n),l8((!t.c&&(t.c=new tW(GIe,t,12,10)),t.c),a),Lnt(i=a,0),Ont(i,1),Qdt(i,!0),Kdt(i,!0),i}function Lwt(t,e){var n,i;if(e>=t.i)throw $m(new ID(e,t.i));return++t.j,n=t.g[e],(i=t.i-e-1)>0&&rHt(t.g,e+1,t.g,e,i),DY(t.g,--t.i,null),t.fi(e,n),t.ci(),n}function Owt(t,e){var n;return t.Db>>16==17?t.Cb.ih(t,21,$Ie,e):(n=Syt(jz(eet(jz(vot(t,16),26)||t.zh(),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function Mwt(t){var e,n,i;for(kK(),mL(t.c,t.a),i=new Wf(t.c);i.a<i.c.c.length;)for(n=J1(i),e=new Wf(t.b);e.a<e.c.c.length;)jz(J1(e),679).Ke(n)}function Nwt(t){var e,n,i;for(kK(),mL(t.c,t.a),i=new Wf(t.c);i.a<i.c.c.length;)for(n=J1(i),e=new Wf(t.b);e.a<e.c.c.length;)jz(J1(e),369).Ke(n)}function Bwt(t){var e,n,i,a,r;for(a=NGt,r=null,i=new Wf(t.d);i.a<i.c.c.length;)(n=jz(J1(i),213)).d.j^n.e.j&&(e=n.e.e-n.d.e-n.a)<a&&(a=e,r=n);return r}function Pwt(){Pwt=D,foe=new DD(OQt,(cM(),!1)),loe=new DD(MQt,100),z9(),uoe=new DD(NQt,doe=Aoe),hoe=new DD(BQt,dQt),goe=new DD(PQt,nht(NGt))}function Fwt(t,e,n){var i,a,r,o,s,c;for(c=0,a=0,r=(i=t.a[e]).length;a<r;++a)for(s=Ldt(i[a],n).Kc();s.Ob();)o=jz(s.Pb(),11),YG(t.f,o,nht(c++))}function jwt(t,e,n){var i,a;if(n)for(a=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);a.Ob();)XAt(t,e,wAt(ftt(n,jz(a.Pb(),19).a)))}function $wt(t,e,n){var i,a;if(n)for(a=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);a.Ob();)XAt(t,e,wAt(ftt(n,jz(a.Pb(),19).a)))}function zwt(t){var e;return FEt(),U8(e=jz(Rvt(gq(t.k),O5(MAe,KQt,61,2,0,1)),122),0,e.length,null),e[0]==(wWt(),cAe)&&e[1]==SAe&&(DY(e,0,SAe),DY(e,1,cAe)),e}function Hwt(t,e,n){var i,a,r;return r=cBt(t,a=WMt(t,e,n)),B8(t.b),v0(t,e,n),kK(),mL(a,new Yp(t)),i=cBt(t,a),B8(t.b),v0(t,n,e),new nA(nht(r),nht(i))}function Uwt(){Uwt=D,Vve=fU(new j2,(vEt(),$oe),(dGt(),gce)),qve=new eP("linearSegments.inputPrio",nht(0)),Wve=new eP("linearSegments.outputPrio",nht(0))}function Vwt(){Vwt=D,Bwe=new lT("P1_TREEIFICATION",0),Pwe=new lT("P2_NODE_ORDERING",1),Fwe=new lT("P3_NODE_PLACEMENT",2),jwe=new lT("P4_EDGE_ROUTING",3)}function qwt(){qwt=D,cGt(),ORe=gSe,BRe=ISe,CRe=BCe,SRe=jCe,TRe=zCe,ERe=MCe,ARe=VCe,LRe=lSe,PIt(),_Re=hRe,kRe=fRe,DRe=pRe,IRe=mRe,MRe=yRe,NRe=vRe,PRe=xRe}function Wwt(){Wwt=D,kTe=new zT("UNKNOWN",0),xTe=new zT("ABOVE",1),RTe=new zT("BELOW",2),_Te=new zT("INLINE",3),new eP("org.eclipse.elk.labelSide",kTe)}function Ywt(t,e){var n;if(t.ni()&&null!=e){for(n=0;n<t.i;++n)if(Odt(e,t.g[n]))return n}else for(n=0;n<t.i;++n)if(HA(t.g[n])===HA(e))return n;return-1}function Gwt(t,e,n){var i,a;return e.c==(rit(),Hye)&&n.c==zye?-1:e.c==zye&&n.c==Hye?1:(i=gut(e.a,t.a),a=gut(n.a,t.a),e.c==Hye?a-i:i-a)}function Zwt(t,e,n){if(n&&(e<0||e>n.a.c.length))throw $m(new Pw("index must be >= 0 and <= layer node count"));t.c&&y9(t.c.a,t),t.c=n,n&&vV(n.a,e,t)}function Kwt(t,e){var n,i,a;for(i=new oq(XO(lft(t).a.Kc(),new u));gIt(i);)return n=jz(V6(i),17),new $d(yY((a=jz(e.Kb(n),10)).n.b+a.o.b/2));return ew(),ew(),Ate}function Xwt(t,e){this.c=new Om,this.a=t,this.b=e,this.d=jz(yEt(t,(lGt(),Ahe)),304),HA(yEt(t,(zYt(),Ibe)))===HA((g9(),Hue))?this.e=new gv:this.e=new fv}function Jwt(t,e){var n,a,r;for(r=0,a=new Wf(t);a.a<a.c.c.length;)n=jz(J1(a),33),r+=i.Math.pow(n.g*n.f-e,2);return i.Math.sqrt(r/(t.c.length-1))}function Qwt(t,e){var n,i;return i=null,t.Xe((cGt(),CSe))&&(n=jz(t.We(CSe),94)).Xe(e)&&(i=n.We(e)),null==i&&t.yf()&&(i=t.yf().We(e)),null==i&&(i=ymt(e)),i}function txt(t,e){var n,i;n=t.Zc(e);try{return i=n.Pb(),n.Qb(),i}catch(a){throw iO(a=dst(a),109)?$m(new Aw("Can't remove element "+e)):$m(a)}}function ext(t,e){var n,i,a;if(0==(n=Nzt(t,e,a=new mct((i=new Ak).q.getFullYear()-cKt,i.q.getMonth(),i.q.getDate())))||n<e.length)throw $m(new Pw(e));return a}function nxt(t,e){var n,i,a;for(vG(e),RN(e!=t),a=t.b.c.length,i=e.Kc();i.Ob();)n=i.Pb(),Wz(t.b,vG(n));return a!=t.b.c.length&&(Rlt(t,0),!0)}function ixt(){ixt=D,cGt(),voe=CCe,new qI(fCe,(cM(),!0)),Roe=BCe,_oe=jCe,koe=zCe,xoe=MCe,Eoe=VCe,Coe=lSe,Pwt(),yoe=foe,boe=uoe,moe=hoe,woe=goe,poe=loe}function axt(t,e){if(e==t.c)return t.d;if(e==t.d)return t.c;throw $m(new Pw("'port' must be either the source port or target port of the edge."))}function rxt(t,e,n){var i,a;switch(a=t.o,i=t.d,e.g){case 1:return-i.d-n;case 3:return a.b+i.a+n;case 2:return a.a+i.c+n;case 4:return-i.b-n;default:return 0}}function oxt(t,e,n,i){var a,r,o;for(EQ(e,jz(i.Xb(0),29)),o=i.bd(1,i.gc()),r=jz(n.Kb(e),20).Kc();r.Ob();)oxt(t,(a=jz(r.Pb(),17)).c.i==e?a.d.i:a.c.i,n,o)}function sxt(t){var e;return e=new Om,IN(t,(lGt(),Mhe))?jz(yEt(t,Mhe),83):(Kk(AZ(new NU(null,new h1(t.j,16)),new ea),new gp(e)),lct(t,Mhe,e),e)}function cxt(t,e){var n;return t.Db>>16==6?t.Cb.ih(t,6,BDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(SYt(),yDe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function lxt(t,e){var n;return t.Db>>16==7?t.Cb.ih(t,1,ODe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(SYt(),wDe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function uxt(t,e){var n;return t.Db>>16==9?t.Cb.ih(t,9,UDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(SYt(),RDe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function dxt(t,e){var n;return t.Db>>16==5?t.Cb.ih(t,9,VIe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(pGt(),oLe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function hxt(t,e){var n;return t.Db>>16==3?t.Cb.ih(t,0,FDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(pGt(),QIe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function fxt(t,e){var n;return t.Db>>16==7?t.Cb.ih(t,6,zDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(pGt(),pLe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function gxt(){this.a=new fc,this.g=new Dyt,this.j=new Dyt,this.b=new Om,this.d=new Dyt,this.i=new Dyt,this.k=new Om,this.c=new Om,this.e=new Om,this.f=new Om}function pxt(t,e,n){var i,a,r;for(n<0&&(n=0),r=t.i,a=n;a<r;a++)if(i=Yet(t,a),null==e){if(null==i)return a}else if(HA(e)===HA(i)||Odt(e,i))return a;return-1}function bxt(t,e){var n,i;return(n=e.Hh(t.a))?(i=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),x9t)),mF(R9t,i)?aq(t,qet(e.Hj())):i):null}function mxt(t,e){var n,i;if(e){if(e==t)return!0;for(n=0,i=jz(e,49).eh();i&&i!=e;i=i.eh()){if(++n>UKt)return mxt(t,i);if(i==t)return!0}}return!1}function yxt(t){switch(MM(),t.q.g){case 5:mAt(t,(wWt(),cAe)),mAt(t,EAe);break;case 4:VLt(t,(wWt(),cAe)),VLt(t,EAe);break;default:mWt(t,(wWt(),cAe)),mWt(t,EAe)}}function vxt(t){switch(MM(),t.q.g){case 5:EDt(t,(wWt(),sAe)),EDt(t,SAe);break;case 4:Smt(t,(wWt(),sAe)),Smt(t,SAe);break;default:yWt(t,(wWt(),sAe)),yWt(t,SAe)}}function wxt(t){var e,n;(e=jz(yEt(t,(uPt(),Jre)),19))?(n=e.a,lct(t,(kat(),coe),0==n?new cft:new C3(n))):lct(t,(kat(),coe),new C3(1))}function xxt(t,e){var n;switch(n=t.i,e.g){case 1:return-(t.n.b+t.o.b);case 2:return t.n.a-n.o.a;case 3:return t.n.b-n.o.b;case 4:return-(t.n.a+t.o.a)}return 0}function Rxt(t,e){switch(t.g){case 0:return e==(_ft(),jhe)?ile:ale;case 1:return e==(_ft(),jhe)?ile:nle;case 2:return e==(_ft(),jhe)?nle:ale;default:return nle}}function _xt(t,e){var n,a,r;for(y9(t.a,e),t.e-=e.r+(0==t.a.c.length?0:t.c),r=Q4t,a=new Wf(t.a);a.a<a.c.c.length;)n=jz(J1(a),187),r=i.Math.max(r,n.d);t.b=r}function kxt(t,e){var n;return t.Db>>16==3?t.Cb.ih(t,12,UDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(SYt(),mDe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function Ext(t,e){var n;return t.Db>>16==11?t.Cb.ih(t,10,UDe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(SYt(),xDe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function Cxt(t,e){var n;return t.Db>>16==10?t.Cb.ih(t,11,$Ie,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(pGt(),fLe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function Sxt(t,e){var n;return t.Db>>16==10?t.Cb.ih(t,12,YIe,e):(n=Syt(jz(eet(jz(vot(t,16),26)||(pGt(),bLe),t.Db>>16),18)),t.Cb.ih(t,n.n,n.f,e))}function Txt(t){var e;return!(1&t.Bb)&&t.r&&t.r.kh()&&(e=jz(t.r,49),t.r=jz(tdt(t,e),138),t.r!=e&&4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,8,e,t.r))),t.r}function Axt(t,e,n){var a;return a=Cst(Hx(LMe,1),HKt,25,15,[nEt(t,(Net(),Uie),e,n),nEt(t,Vie,e,n),nEt(t,qie,e,n)]),t.f&&(a[0]=i.Math.max(a[0],a[2]),a[2]=a[0]),a}function Dxt(t,e){var n,i,a;if(0!=(a=Kyt(t,e)).c.length)for(mL(a,new ei),n=a.c.length,i=0;i<n;i++)lSt(t,(u1(i,a.c.length),jz(a.c[i],286)),_Bt(t,a,i))}function Ixt(t){var e,n,i;for(i=jz(c7(t.a,(L_t(),_le)),15).Kc();i.Ob();)for(e=gq((n=jz(i.Pb(),101)).k).Kc();e.Ob();)eY(t,n,jz(e.Pb(),61),(Sat(),Nle),1)}function Lxt(t){var e,n;if(t.k==(oCt(),Cse))for(n=new oq(XO(lft(t).a.Kc(),new u));gIt(n);)if(!d6(e=jz(V6(n),17))&&t.c==DRt(e,t).c)return!0;return!1}function Oxt(t){var e,n;if(t.k==(oCt(),Cse))for(n=new oq(XO(lft(t).a.Kc(),new u));gIt(n);)if(!d6(e=jz(V6(n),17))&&e.c.i.c==e.d.i.c)return!0;return!1}function Mxt(t,e){var n,i;for(Akt(e,"Dull edge routing",1),i=cmt(t.b,0);i.b!=i.d.c;)for(n=cmt(jz(d4(i),86).d,0);n.b!=n.d.c;)yK(jz(d4(n),188).a)}function Nxt(t,e){var n,i,a;if(e)for(a=((n=new cq(e.a.length)).b-n.a)*n.c<0?(tC(),RMe):new qO(n);a.Ob();)(i=O2(e,jz(a.Pb(),19).a))&&ALt(t,i)}function Bxt(){var t;for(QE(),QYt((GY(),JIe)),FYt(JIe),_wt(JIe),pGt(),DLe=lLe,t=new Wf(WLe);t.a<t.c.c.length;)rqt(jz(J1(t),241),lLe,null);return!0}function Pxt(t,e){var n,i,a,r,o,s;return(o=t.h>>19)!=(s=e.h>>19)?s-o:(i=t.h)!=(r=e.h)?i-r:(n=t.m)!=(a=e.m)?n-a:t.l-e.l}function Fxt(){Fxt=D,tPt(),Eie=new DD(qXt,Cie=Nie),Ntt(),_ie=new DD(WXt,kie=yie),lmt(),xie=new DD(YXt,Rie=gie),wie=new DD(GXt,(cM(),!0))}function jxt(t,e,n){var i,a;i=e*n,iO(t.g,145)?(a=l4(t)).f.d?a.f.a||(t.d.a+=i+uJt):(t.d.d-=i+uJt,t.d.a+=i+uJt):iO(t.g,10)&&(t.d.d-=i,t.d.a+=2*i)}function $xt(t,e,n){var a,r,o,s,c;for(r=t[n.g],c=new Wf(e.d);c.a<c.c.c.length;)(o=(s=jz(J1(c),101)).i)&&o.i==n&&(r[a=s.d[n.g]]=i.Math.max(r[a],o.j.b))}function zxt(t,e){var n,a,r,o,s;for(a=0,r=0,n=0,s=new Wf(e.d);s.a<s.c.c.length;)Uvt(o=jz(J1(s),443)),a=i.Math.max(a,o.b),r+=o.d+(n>0?t.g:0),++n;e.b=a,e.e=r}function Hxt(t){var e,n,i;if(i=t.b,zk(t.i,i.length)){for(n=2*i.length,t.b=O5(Ute,SZt,317,n,0,1),t.c=O5(Ute,SZt,317,n,0,1),t.f=n-1,t.i=0,e=t.a;e;e=e.c)KTt(t,e,e);++t.g}}function Uxt(t,e,n,i){var a,r,o,s;for(a=0;a<e.o;a++)for(r=a-e.j+n,o=0;o<e.p;o++)s=o-e.k+i,mvt(e,a,o)?avt(t,r,s)||Wvt(t,r,s):vvt(e,a,o)&&(nvt(t,r,s)||Yvt(t,r,s))}function Vxt(t,e,n){var i;(i=e.c.i).k==(oCt(),Cse)?(lct(t,(lGt(),che),jz(yEt(i,che),11)),lct(t,lhe,jz(yEt(i,lhe),11))):(lct(t,(lGt(),che),e.c),lct(t,lhe,n.d))}function qxt(t,e,n){var a,r,o,s,c,l;return xBt(),s=e/2,o=n/2,c=1,l=1,(a=i.Math.abs(t.a))>s&&(c=s/a),(r=i.Math.abs(t.b))>o&&(l=o/r),vO(t,i.Math.min(c,l)),t}function Wxt(){var t,e;Hzt();try{if(e=jz(WRt((WE(),HIe),v7t),2014))return e}catch(n){if(!iO(n=dst(n),102))throw $m(n);t=n,rq((rL(),t))}return new sc}function Yxt(){var t,e;f9();try{if(e=jz(WRt((WE(),HIe),E9t),2024))return e}catch(n){if(!iO(n=dst(n),102))throw $m(n);t=n,rq((rL(),t))}return new Bl}function Gxt(){var t,e;Hzt();try{if(e=jz(WRt((WE(),HIe),G8t),1941))return e}catch(n){if(!iO(n=dst(n),102))throw $m(n);t=n,rq((rL(),t))}return new Uc}function Zxt(t,e,n){var i,a;return a=t.e,t.e=e,4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,4,a,e),n?n.Ei(i):n=i),a!=e&&(n=rqt(t,e?wOt(t,e):t.a,n)),n}function Kxt(){Ak.call(this),this.e=-1,this.a=!1,this.p=FZt,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=FZt}function Xxt(t,e){var n,i,a;if(i=t.b.d.d,t.a||(i+=t.b.d.a),a=e.b.d.d,e.a||(a+=e.b.d.a),0==(n=Cht(i,a))){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function Jxt(t,e){var n,i,a;if(i=t.b.b.d,t.a||(i+=t.b.b.a),a=e.b.b.d,e.a||(a+=e.b.b.a),0==(n=Cht(i,a))){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function Qxt(t,e){var n,i,a;if(i=t.b.g.d,t.a||(i+=t.b.g.a),a=e.b.g.d,e.a||(a+=e.b.g.a),0==(n=Cht(i,a))){if(!t.a&&e.a)return-1;if(!e.a&&t.a)return 1}return n}function tRt(){tRt=D,Loe=WV(fU(fU(fU(new j2,(vEt(),joe),(dGt(),vce)),joe,_ce),$oe,Dce),$oe,sce),Moe=fU(fU(new j2,joe,Xse),joe,cce),Ooe=WV(new j2,$oe,uce)}function eRt(t){var e,n,i,a,r;for(e=jz(yEt(t,(lGt(),Ude)),83),r=t.n,i=e.Cc().Kc();i.Ob();)(a=(n=jz(i.Pb(),306)).i).c+=r.a,a.d+=r.b,n.c?OBt(n):MBt(n);lct(t,Ude,null)}function nRt(t,e,n){var i,a;switch(i=(a=t.b).d,e.g){case 1:return-i.d-n;case 2:return a.o.a+i.c+n;case 3:return a.o.b+i.a+n;case 4:return-i.b-n;default:return-1}}function iRt(t){var e,n,i,a,r;if(i=0,a=JJt,t.b)for(e=0;e<360;e++)n=.017453292519943295*e,qFt(t,t.d,0,0,J4t,n),(r=t.b.ig(t.d))<a&&(i=n,a=r);qFt(t,t.d,0,0,J4t,i)}function aRt(t,e){var n,i,a,r;for(r=new Om,e.e=null,e.f=null,i=new Wf(e.i);i.a<i.c.c.length;)n=jz(J1(i),65),a=jz(NY(t.g,n.a),46),n.a=zq(n.b),YG(r,n.a,a);t.g=r}function rRt(t,e,n){var i,a,r,o,s;for(a=(e-t.e)/t.d.c.length,r=0,s=new Wf(t.d);s.a<s.c.c.length;)o=jz(J1(s),443),i=t.b-o.b+n,wpt(o,o.e+r*a,o.f),lvt(o,a,i),++r}function oRt(t){var e;if(t.f.qj(),-1!=t.b){if(++t.b,e=t.f.d[t.a],t.b<e.i)return;++t.a}for(;t.a<t.f.d.length;++t.a)if((e=t.f.d[t.a])&&0!=e.i)return void(t.b=0);t.b=-1}function sRt(t,e){var n,i,a;for(n=ITt(t,0==(a=e.c.length)?"":(u1(0,e.c.length),kB(e.c[0]))),i=1;i<a&&n;++i)n=jz(n,49).oh((u1(i,e.c.length),kB(e.c[i])));return n}function cRt(t,e){var n,i;for(i=new Wf(e);i.a<i.c.c.length;)n=jz(J1(i),10),t.c[n.c.p][n.p].a=TV(t.i),t.c[n.c.p][n.p].d=Hw(t.c[n.c.p][n.p].a),t.c[n.c.p][n.p].b=1}function lRt(t,e){var n,a,r;for(r=0,a=new Wf(t);a.a<a.c.c.length;)n=jz(J1(a),157),r+=i.Math.pow(eV(n)*tV(n)-e,2);return i.Math.sqrt(r/(t.c.length-1))}function uRt(t,e,n,i){var a,r,o;return o=OPt(t,r=HPt(t,e,n,i)),uEt(t,e,n,i),B8(t.b),kK(),mL(r,new Gp(t)),a=OPt(t,r),uEt(t,n,e,i),B8(t.b),new nA(nht(o),nht(a))}function dRt(t,e,n){var i;for(Akt(n,"Interactive node placement",1),t.a=jz(yEt(e,(lGt(),Ahe)),304),i=new Wf(e.b);i.a<i.c.c.length;)QNt(t,jz(J1(i),29));zCt(n)}function hRt(t,e){Akt(e,"General Compactor",1),e.n&&t&&y0(e,o2(t),($lt(),oDe)),ggt(jz(JIt(t,(qwt(),kRe)),380)).hg(t),e.n&&t&&y0(e,o2(t),($lt(),oDe))}function fRt(t,e,n){var i,a;for(CI(t,t.j+e,t.k+n),a=new AO((!t.a&&(t.a=new DO(LDe,t,5)),t.a));a.e!=a.i.gc();)RI(i=jz(wmt(a),469),i.a+e,i.b+n);EI(t,t.b+e,t.c+n)}function gRt(t,e,n,i){switch(n){case 7:return!t.e&&(t.e=new cF(BDe,t,7,4)),Kgt(t.e,e,i);case 8:return!t.d&&(t.d=new cF(BDe,t,8,5)),Kgt(t.d,e,i)}return jkt(t,e,n,i)}function pRt(t,e,n,i){switch(n){case 7:return!t.e&&(t.e=new cF(BDe,t,7,4)),Fmt(t.e,e,i);case 8:return!t.d&&(t.d=new cF(BDe,t,8,5)),Fmt(t.d,e,i)}return ist(t,e,n,i)}function bRt(t,e,n){var i,a,r;if(n)for(r=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);r.Ob();)(a=O2(n,jz(r.Pb(),19).a))&&hAt(t,a,e)}function mRt(t,e,n){var i,a,r;return t.qj(),r=null==e?0:Qct(e),t.f>0&&(a=rDt(t,(r&NGt)%t.d.length,r,e))?a.ed(n):(i=t.tj(r,e,n),t.c.Fc(i),null)}function yRt(t,e){var n,i,a,r;switch(Sdt(t,e)._k()){case 3:case 2:for(a=0,r=(n=Kzt(e)).i;a<r;++a)if(5==MG(j9(t,i=jz(Yet(n,a),34))))return i}return null}function vRt(t){var e,n,i,a,r;if(zk(t.f,t.b.length))for(i=O5(Zte,SZt,330,2*t.b.length,0,1),t.b=i,a=i.length-1,n=t.a;n!=t;n=n.Rd())e=(r=jz(n,330)).d&a,r.a=i[e],i[e]=r}function wRt(t,e){var n,a,r,o;for(o=0,r=jz(jz(c7(t.r,e),21),84).Kc();r.Ob();)a=jz(r.Pb(),111),o=i.Math.max(o,a.e.a+a.b.rf().a);(n=jz(oZ(t.b,e),124)).n.b=0,n.a.a=o}function xRt(t,e){var n,a,r,o;for(n=0,o=jz(jz(c7(t.r,e),21),84).Kc();o.Ob();)r=jz(o.Pb(),111),n=i.Math.max(n,r.e.b+r.b.rf().b);(a=jz(oZ(t.b,e),124)).n.d=0,a.a.b=n}function RRt(t){var e,n;return n=jz(yEt(t,(lGt(),Xde)),21),e=vI(bwe),n.Hc((hBt(),pde))&&Xrt(e,vwe),n.Hc(mde)&&Xrt(e,xwe),n.Hc(cde)&&Xrt(e,mwe),n.Hc(ude)&&Xrt(e,ywe),e}function _Rt(t,e){var n;Akt(e,"Delaunay triangulation",1),n=new Lm,Aet(t.i,new yb(n)),zw(RB(yEt(t,(Wrt(),Gae)))),t.e?jat(t.e,IYt(n)):t.e=IYt(n),zCt(e)}function kRt(t){if(t<0)throw $m(new Pw("The input must be positive"));return t<_Ee.length?w2(_Ee[t]):i.Math.sqrt(J4t*t)*(ndt(t,t)/edt(2.718281828459045,t))}function ERt(t,e){var n;if(t.ni()&&null!=e){for(n=0;n<t.i;++n)if(Odt(e,t.g[n]))return!0}else for(n=0;n<t.i;++n)if(HA(t.g[n])===HA(e))return!0;return!1}function CRt(t,e){if(null==e){for(;t.a.Ob();)if(null==jz(t.a.Pb(),42).dd())return!0}else for(;t.a.Ob();)if(Odt(e,jz(t.a.Pb(),42).dd()))return!0;return!1}function SRt(t,e){var n;return e===t||!!iO(e,664)&&(n=jz(e,1947),nbt(t.g||(t.g=new Kd(t)),n.g||(n.g=new Kd(n))))}function TRt(t){var e,n,a;for(e="Sz",n="ez",a=i.Math.min(t.length,5)-1;a>=0;a--)if(mF(t[a].d,e)||mF(t[a].d,n)){t.length>=a+1&&t.splice(0,a+1);break}return t}function ARt(t,e){var n;return KD(t)&&KD(e)&&IKt<(n=t/e)&&n<AKt?n<0?i.Math.ceil(n):i.Math.floor(n):oot(DUt(KD(t)?Cot(t):t,KD(e)?Cot(e):e,!1))}function DRt(t,e){if(e==t.c.i)return t.d.i;if(e==t.d.i)return t.c.i;throw $m(new Pw("'node' must either be the source node or target node of the edge."))}function IRt(t){var e,n,i,a;if(a=jz(yEt(t,(lGt(),Fde)),37)){for(i=new HR,e=bG(t.c.i);e!=a;)e=bG(n=e.e),PN(VP(VP(i,n.n),e.c),e.d.b,e.d.d);return i}return Fse}function LRt(t){var e;Kk(htt(new NU(null,new h1((e=jz(yEt(t,(lGt(),The)),403)).d,16)),new ji),new hp(t)),Kk(AZ(new NU(null,new h1(e.d,16)),new $i),new fp(t))}function ORt(t,e){var n,i;for(n=new oq(XO((e?dft(t):uft(t)).a.Kc(),new u));gIt(n);)if((i=DRt(jz(V6(n),17),t)).k==(oCt(),Cse)&&i.c!=t.c)return i;return null}function MRt(t){var e,n,a;for(n=new Wf(t.p);n.a<n.c.c.length;)(e=jz(J1(n),10)).k==(oCt(),Sse)&&(a=e.o.b,t.i=i.Math.min(t.i,a),t.g=i.Math.max(t.g,a))}function NRt(t,e,n){var i,a,r;for(r=new Wf(e);r.a<r.c.c.length;)i=jz(J1(r),10),t.c[i.c.p][i.p].e=!1;for(a=new Wf(e);a.a<a.c.c.length;)Mqt(t,i=jz(J1(a),10),n)}function BRt(t,e,n){var a,r;(a=_dt(e.j,n.s,n.c)+_dt(n.e,e.s,e.c))==(r=_dt(n.j,e.s,e.c)+_dt(e.e,n.s,n.c))?a>0&&(t.b+=2,t.a+=a):(t.b+=1,t.a+=i.Math.min(a,r))}function PRt(t,e){var n;if(n=!1,qA(e)&&(n=!0,JY(t,new HY(kB(e)))),n||iO(e,236)&&(n=!0,JY(t,new _h(qF(jz(e,236))))),!n)throw $m(new Iw(z7t))}function FRt(t,e,n,i){var a,r,o;return a=new L9(t.e,1,10,iO(o=e.c,88)?jz(o,26):(pGt(),hLe),iO(r=n.c,88)?jz(r,26):(pGt(),hLe),oyt(t,e),!1),i?i.Ei(a):i=a,i}function jRt(t){var e,n;switch(jz(yEt(bG(t),(zYt(),pbe)),420).g){case 0:return e=t.n,n=t.o,new OT(e.a+n.a/2,e.b+n.b/2);case 1:return new hI(t.n);default:return null}}function $Rt(){$Rt=D,Zue=new AS(ZQt,0),Gue=new AS("LEFTUP",1),Xue=new AS("RIGHTUP",2),Yue=new AS("LEFTDOWN",3),Kue=new AS("RIGHTDOWN",4),Wue=new AS("BALANCED",5)}function zRt(t,e,n){var i,a,r;if(0==(i=Cht(t.a[e.p],t.a[n.p]))){if(a=jz(yEt(e,(lGt(),ihe)),15),r=jz(yEt(n,ihe),15),a.Hc(n))return-1;if(r.Hc(e))return 1}return i}function HRt(t){switch(t.g){case 1:return new $o;case 2:return new zo;case 3:return new jo;case 0:return null;default:throw $m(new Pw(a3t+(null!=t.f?t.f:""+t.g)))}}function URt(t,e,n){switch(e){case 1:return!t.n&&(t.n=new tW(HDe,t,1,7)),cUt(t.n),!t.n&&(t.n=new tW(HDe,t,1,7)),void pY(t.n,jz(n,14));case 2:return void Iit(t,kB(n))}ilt(t,e,n)}function VRt(t,e,n){switch(e){case 3:return void knt(t,Hw(_B(n)));case 4:return void Ent(t,Hw(_B(n)));case 5:return void Cnt(t,Hw(_B(n)));case 6:return void Snt(t,Hw(_B(n)))}URt(t,e,n)}function qRt(t,e,n){var i,a;(i=zkt(a=new Iv,e,null))&&i.Fi(),Oat(a,n),l8((!t.c&&(t.c=new tW(GIe,t,12,10)),t.c),a),Lnt(a,0),Ont(a,1),Qdt(a,!0),Kdt(a,!0)}function WRt(t,e){var n,i;return iO(n=cC(t.g,e),235)?((i=jz(n,235)).Qh(),i.Nh()):iO(n,498)?i=jz(n,1938).b:null}function YRt(t,e,n,i){var a,r;return yY(e),yY(n),N9(!!(r=jz(VF(t.d,e),19)),"Row %s not in %s",e,t.e),N9(!!(a=jz(VF(t.b,n),19)),"Column %s not in %s",n,t.c),Est(t,r.a,a.a,i)}function GRt(t,e,n,i,a,r,o){var s,c,l,u,d;if(d=$vt(s=(l=r==o-1)?i:0,u=a[r]),10!=i&&Cst(Hx(t,o-r),e[r],n[r],s,d),!l)for(++r,c=0;c<u;++c)d[c]=GRt(t,e,n,i,a,r,o);return d}function ZRt(t){if(-1==t.g)throw $m(new fy);t.mj();try{t.i.$c(t.g),t.f=t.i.j,t.g<t.e&&--t.e,t.g=-1}catch(e){throw iO(e=dst(e),73)?$m(new by):$m(e)}}function KRt(t,e){return t.b.a=i.Math.min(t.b.a,e.c),t.b.b=i.Math.min(t.b.b,e.d),t.a.a=i.Math.max(t.a.a,e.c),t.a.b=i.Math.max(t.a.b,e.d),t.c[t.c.length]=e,!0}function XRt(t){var e,n,i;for(i=-1,n=0,e=new Wf(t);e.a<e.c.c.length;){if(jz(J1(e),243).c==(rit(),zye)){i=0==n?0:n-1;break}n==t.c.length-1&&(i=n),n+=1}return i}function JRt(t){var e,n,a,r;for(r=0,e=0,a=new Wf(t.c);a.a<a.c.c.length;)Cnt(n=jz(J1(a),33),t.e+r),Snt(n,t.f),r+=n.g+t.b,e=i.Math.max(e,n.f+t.b);t.d=r-t.b,t.a=e-t.b}function QRt(t){var e,n,i;for(n=new Wf(t.a.b);n.a<n.c.c.length;)i=(e=jz(J1(n),57)).d.c,e.d.c=e.d.d,e.d.d=i,i=e.d.b,e.d.b=e.d.a,e.d.a=i,i=e.b.a,e.b.a=e.b.b,e.b.b=i;vMt(t)}function t_t(t){var e,n,i;for(n=new Wf(t.a.b);n.a<n.c.c.length;)i=(e=jz(J1(n),81)).g.c,e.g.c=e.g.d,e.g.d=i,i=e.g.b,e.g.b=e.g.a,e.g.a=i,i=e.e.a,e.e.a=e.e.b,e.e.b=i;wMt(t)}function e_t(t){var e,n,i,a,r;for(r=gq(t.k),wWt(),i=0,a=(n=Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length;i<a;++i)if((e=n[i])!=CAe&&!r.Hc(e))return e;return null}function n_t(t,e){var n,i;return(i=jz(xM(Zct(AZ(new NU(null,new h1(e.j,16)),new fr))),11))&&(n=jz(OU(i.e,0),17))?jz(yEt(n,(lGt(),hhe)),19).a:gtt(t.b)}function i_t(t,e){var n,i,a;for(a=new Wf(e.a);a.a<a.c.c.length;)for(i=jz(J1(a),10),Jw(t.d),n=new oq(XO(dft(i).a.Kc(),new u));gIt(n);)WDt(t,i,jz(V6(n),17).d.i)}function a_t(t,e){var n,i;for(y9(t.b,e),i=new Wf(t.n);i.a<i.c.c.length;)if(-1!=x9((n=jz(J1(i),211)).c,e,0)){y9(n.c,e),JRt(n),0==n.c.c.length&&y9(t.n,n);break}uHt(t)}function r_t(t,e){var n,a,r,o,s;for(s=t.f,r=0,o=0,a=new Wf(t.a);a.a<a.c.c.length;)_yt(n=jz(J1(a),187),t.e,s),p8(n,e),o=i.Math.max(o,n.r),r=s+=n.d+t.c;t.d=o,t.b=r}function o_t(t){var e,n;return c4(n=fOt(t))?null:(yY(n),e=jz(evt(new oq(XO(n.a.Kc(),new u))),79),Ckt(jz(Yet((!e.b&&(e.b=new cF(NDe,e,4,7)),e.b),0),82)))}function s_t(t){return t.o||(t.Lj()?t.o=new aG(t,t,null):t.rk()?t.o=new nP(t,null):1==MG(j9((TSt(),KLe),t))?t.o=new g3(t):t.o=new iP(t,null)),t.o}function c_t(t,e,n,i){var a,r,o,s,c;n.mh(e)&&(a=(o=e)?jz(i,49).xh(o):null)&&(c=n.ah(e),(s=e.t)>1||-1==s?(r=jz(c,15),a.Wb(Wpt(t,r))):a.Wb(tjt(t,jz(c,56))))}function l_t(t,e,n,i){Z_();var a=CGt;function r(){for(var t=0;t<a.length;t++)a[t]()}if(t)try{jMe(r)()}catch(o){t(e,o)}else jMe(r)()}function u_t(t){var e,n,i,a,r;for(i=new olt(new Ef(t.b).a);i.b;)e=jz((n=tnt(i)).cd(),10),r=jz(jz(n.dd(),46).a,10),a=jz(jz(n.dd(),46).b,8),VP(vD(e.n),VP(jL(r.n),a))}function d_t(t){switch(jz(yEt(t.b,(zYt(),tbe)),375).g){case 1:Kk(DZ(htt(new NU(null,new h1(t.d,16)),new ja),new $a),new za);break;case 2:mPt(t);break;case 0:STt(t)}}function h_t(t,e,n){Akt(n,"Straight Line Edge Routing",1),n.n&&e&&y0(n,o2(e),($lt(),oDe)),yHt(t,jz(JIt(e,(hB(),Yxe)),33)),n.n&&e&&y0(n,o2(e),($lt(),oDe))}function f_t(){f_t=D,JEe=new NT("V_TOP",0),XEe=new NT("V_CENTER",1),KEe=new NT("V_BOTTOM",2),GEe=new NT("H_LEFT",3),YEe=new NT("H_CENTER",4),ZEe=new NT("H_RIGHT",5)}function g_t(t){var e;return 64&t.Db?Sgt(t):((e=new lM(Sgt(t))).a+=" (abstract: ",y_(e,0!=(256&t.Bb)),e.a+=", interface: ",y_(e,0!=(512&t.Bb)),e.a+=")",e.a)}function p_t(t,e,n,i){var a,r,o;return mI(t.e)&&(o=IX(t,1,a=e.ak(),e.dd(),r=n.dd(),a.$j()?bzt(t,a,r,iO(a,99)&&0!=(jz(a,18).Bb&$Kt)):-1,!0),i?i.Ei(o):i=o),i}function b_t(t){var e;null==t.c&&(e=HA(t.b)===HA(Kte)?null:t.b,t.d=null==e?VGt:tq(e)?wM(xK(e)):qA(e)?HZt:JR(tlt(e)),t.a=t.a+": "+(tq(e)?CP(xK(e)):e+""),t.c="("+t.d+") "+t.a)}function m_t(t,e){this.e=t,GA(t0(e,-4294967296),0)?(this.d=1,this.a=Cst(Hx(TMe,1),lKt,25,15,[fV(e)])):(this.d=2,this.a=Cst(Hx(TMe,1),lKt,25,15,[fV(e),fV(vq(e,32))]))}function y_t(){function t(){try{return(new Map).entries().next().done}catch{return!1}}return typeof Map===MGt&&Map.prototype.entries&&t()?Map:hWt()}function v_t(t,e){var n,i,a;for(a=new _2(t.e,0),n=0;a.b<a.d.gc();){if((i=Hw((EN(a.b<a.d.gc()),_B(a.d.Xb(a.c=a.b++))))-e)>N4t)return n;i>-1e-6&&++n}return n}function w_t(t,e){var n;e!=t.b?(n=null,t.b&&(n=oJ(t.b,t,-4,n)),e&&(n=Omt(e,t,-4,n)),(n=Jut(t,e,n))&&n.Fi()):4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,3,e,e))}function x_t(t,e){var n;e!=t.f?(n=null,t.f&&(n=oJ(t.f,t,-1,n)),e&&(n=Omt(e,t,-1,n)),(n=Qut(t,e,n))&&n.Fi()):4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,0,e,e))}function R_t(t){var e,n,i;if(null==t)return null;if((n=jz(t,15)).dc())return"";for(i=new kx,e=n.Kc();e.Ob();)iD(i,(qUt(),kB(e.Pb()))),i.a+=" ";return BD(i,i.a.length-1)}function __t(t){var e,n,i;if(null==t)return null;if((n=jz(t,15)).dc())return"";for(i=new kx,e=n.Kc();e.Ob();)iD(i,(qUt(),kB(e.Pb()))),i.a+=" ";return BD(i,i.a.length-1)}function k_t(t,e,n){var i,a;return i=t.c[e.c.p][e.p],a=t.c[n.c.p][n.p],null!=i.a&&null!=a.a?Rq(i.a,a.a):null!=i.a?-1:null!=a.a?1:0}function E_t(t,e){var n,i,a;if(e)for(a=((n=new cq(e.a.length)).b-n.a)*n.c<0?(tC(),RMe):new qO(n);a.Ob();)i=O2(e,jz(a.Pb(),19).a),TZ(new jb(t).a,i)}function C_t(t,e){var n,i,a;if(e)for(a=((n=new cq(e.a.length)).b-n.a)*n.c<0?(tC(),RMe):new qO(n);a.Ob();)i=O2(e,jz(a.Pb(),19).a),SZ(new Db(t).a,i)}function S_t(t){if(null!=t&&t.length>0&&33==lZ(t,t.length-1))try{return null==KSt(lN(t,0,t.length-1)).e}catch(e){if(!iO(e=dst(e),32))throw $m(e)}return!1}function T_t(t,e,n){var i,a,r;return i=e.ak(),r=e.dd(),a=i.$j()?IX(t,3,i,null,r,bzt(t,i,r,iO(i,99)&&0!=(jz(i,18).Bb&$Kt)),!0):IX(t,1,i,i.zj(),r,-1,!0),n?n.Ei(a):n=a,n}function A_t(){var t,e,n;for(e=0,t=0;t<1;t++){if(0==(n=ZDt((d1(t,1),"X".charCodeAt(t)))))throw $m(new ax("Unknown Option: "+"X".substr(t)));e|=n}return e}function D_t(t,e,n){var i,a;switch(i=Yht(bG(e)),CQ(a=new SCt,e),n.g){case 1:HTt(a,_ht(lgt(i)));break;case 2:HTt(a,lgt(i))}return lct(a,(zYt(),Qbe),_B(yEt(t,Qbe))),a}function I_t(t){var e,n;return e=jz(V6(new oq(XO(uft(t.a).a.Kc(),new u))),17),n=jz(V6(new oq(XO(dft(t.a).a.Kc(),new u))),17),zw(RB(yEt(e,(lGt(),Che))))||zw(RB(yEt(n,Che)))}function L_t(){L_t=D,kle=new yS("ONE_SIDE",0),Cle=new yS("TWO_SIDES_CORNER",1),Sle=new yS("TWO_SIDES_OPPOSING",2),Ele=new yS("THREE_SIDES",3),_le=new yS("FOUR_SIDES",4)}function O_t(t,e,n,i,a){var r,o;r=jz(E3(AZ(e.Oc(),new Qa),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15),o=jz(pot(t.b,n,i),15),0==a?o.Wc(0,r):o.Gc(r)}function M_t(t,e){var n,i,a;for(i=new Wf(e.a);i.a<i.c.c.length;)for(n=new oq(XO(uft(jz(J1(i),10)).a.Kc(),new u));gIt(n);)a=jz(V6(n),17).c.i.p,t.n[a]=t.n[a]-1}function N_t(t,e){var n,i,a,r;for(a=new Wf(e.d);a.a<a.c.c.length;)for(i=jz(J1(a),101),r=jz(NY(t.c,i),112).o,n=new Gk(i.b);n.a<n.c.a.length;)g8(i,jz(r3(n),61),r)}function B_t(t){var e;for(e=new Wf(t.e.b);e.a<e.c.c.length;)lqt(t,jz(J1(e),29));Kk(AZ(htt(htt(new NU(null,new h1(t.e.b,16)),new Yr),new Qr),new to),new cb(t))}function P_t(t,e){return!!e&&!t.Di(e)&&(t.i?t.i.Ei(e):iO(e,143)?(t.i=jz(e,143),!0):(t.i=new mc,t.i.Ei(e)))}function F_t(t){if(t=jzt(t,!0),mF(r6t,t)||mF("1",t))return cM(),yee;if(mF(o6t,t)||mF("0",t))return cM(),mee;throw $m(new ex("Invalid boolean value: '"+t+"'"))}function j_t(t,e,n){var i,a,r;for(a=t.vc().Kc();a.Ob();)if(r=(i=jz(a.Pb(),42)).cd(),HA(e)===HA(r)||null!=e&&Odt(e,r))return n&&(i=new EC(i.cd(),i.dd()),a.Qb()),i;return null}function $_t(t){var e,n,i;zB(),t.B.Hc((QFt(),HAe))&&(i=t.f.i,e=new gX(t.a.c),(n=new dv).b=e.c-i.c,n.d=e.d-i.d,n.c=i.c+i.b-(e.c+e.b),n.a=i.d+i.a-(e.d+e.a),t.e.Ff(n))}function z_t(t,e,n,a){var r,o,s;for(s=i.Math.min(n,Y$t(jz(t.b,65),e,n,a)),o=new Wf(t.a);o.a<o.c.c.length;)(r=jz(J1(o),221))!=e&&(s=i.Math.min(s,z_t(r,e,s,a)));return s}function H_t(t){var e,n,i;for(i=O5(Rse,cZt,193,t.b.c.length,0,2),n=new _2(t.b,0);n.b<n.d.gc();)EN(n.b<n.d.gc()),e=jz(n.d.Xb(n.c=n.b++),29),i[n.b-1]=J0(e.a);return i}function U_t(t,e,n,i,a){var r,o,s,c;for(o=Jx(Xx($j(tyt(n)),i),rxt(t,n,a)),c=NCt(t,n).Kc();c.Ob();)e[(s=jz(c.Pb(),11)).p]&&(r=e[s.p].i,Wz(o.d,new OV(r,wht(o,r))));Cgt(o)}function V_t(t,e){this.f=new Om,this.b=new Om,this.j=new Om,this.a=t,this.c=e,this.c>0&&Fwt(this,this.c-1,(wWt(),sAe)),this.c<this.a.length-1&&Fwt(this,this.c+1,(wWt(),SAe))}function q_t(t){t.length>0&&t[0].length>0&&(this.c=zw(RB(yEt(bG(t[0][0]),(lGt(),ahe))))),this.a=O5(Eve,cZt,2018,t.length,0,2),this.b=O5(Tve,cZt,2019,t.length,0,2),this.d=new _ut}function W_t(t){return 0!=t.c.length&&((u1(0,t.c.length),jz(t.c[0],17)).c.i.k==(oCt(),Cse)||o6(DZ(new NU(null,new h1(t,16)),new Fr),new jr))}function Y_t(t,e,n){return Akt(n,"Tree layout",1),c2(t.b),CW(t.b,(Vwt(),Bwe),Bwe),CW(t.b,Pwe,Pwe),CW(t.b,Fwe,Fwe),CW(t.b,jwe,jwe),t.a=IUt(t.b,e),dNt(t,e,yrt(n,1)),zCt(n),e}function G_t(t,e){var n,a,r,o,s,c;for(s=fBt(e),r=e.f,c=e.g,o=i.Math.sqrt(r*r+c*c),a=0,n=new Wf(s);n.a<n.c.c.length;)a+=G_t(t,jz(J1(n),33));return i.Math.max(a,o)}function Z_t(){Z_t=D,KTe=new VT(lJt,0),ZTe=new VT("FREE",1),GTe=new VT("FIXED_SIDE",2),qTe=new VT("FIXED_ORDER",3),YTe=new VT("FIXED_RATIO",4),WTe=new VT("FIXED_POS",5)}function K_t(t,e){var n,i,a;if(n=e.Hh(t.a))for(a=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),_9t)),i=1;i<(TSt(),XLe).length;++i)if(mF(XLe[i],a))return i;return 0}function X_t(t){var e,n,i,a;if(null==t)return VGt;for(a=new Iot(jGt,"[","]"),n=0,i=(e=t).length;n<i;++n)d7(a,""+e[n]);return a.a?0==a.e.length?a.a.a:a.a.a+""+a.e:a.c}function J_t(t){var e,n,i,a;if(null==t)return VGt;for(a=new Iot(jGt,"[","]"),n=0,i=(e=t).length;n<i;++n)d7(a,""+e[n]);return a.a?0==a.e.length?a.a.a:a.a.a+""+a.e:a.c}function Q_t(t){var e,n,i;for(i=new Iot(jGt,"{","}"),n=t.vc().Kc();n.Ob();)d7(i,W4(t,(e=jz(n.Pb(),42)).cd())+"="+W4(t,e.dd()));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}function tkt(t){for(var e,n,i,a;!Ww(t.o);)n=jz(fW(t.o),46),i=jz(n.a,121),a=Oft(e=jz(n.b,213),i),e.e==i?(NM(a.g,e),i.e=a.e+e.a):(NM(a.b,e),i.e=a.e-e.a),Wz(t.e.a,i)}function ekt(t,e){var n,i,a;for(n=null,a=jz(e.Kb(t),20).Kc();a.Ob();)if(i=jz(a.Pb(),17),n){if((i.c.i==t?i.d.i:i.c.i)!=n)return!1}else n=i.c.i==t?i.d.i:i.c.i;return!0}function nkt(t,e){var n,i,a;for(i=new Wf(ZOt(t,!1,e));i.a<i.c.c.length;)0==(n=jz(J1(i),129)).d?(WQ(n,null),YQ(n,null)):(a=n.a,WQ(n,n.b),YQ(n,a))}function ikt(t){var e,n;return Xrt(e=new j2,Cwe),(n=jz(yEt(t,(lGt(),Xde)),21)).Hc((hBt(),mde))&&Xrt(e,Dwe),n.Hc(cde)&&Xrt(e,Swe),n.Hc(pde)&&Xrt(e,Awe),n.Hc(ude)&&Xrt(e,Twe),e}function akt(t){var e,n,i,a;for(EUt(t),n=new oq(XO(lft(t).a.Kc(),new u));gIt(n);)a=(i=(e=jz(V6(n),17)).c.i==t)?e.d:e.c,i?_Q(e,null):kQ(e,null),lct(e,(lGt(),mhe),a),oIt(t,a.i)}function rkt(t,e,n,i){var a,r;switch(a=n[(r=e.i).g][t.d[r.g]],r.g){case 1:a-=i+e.j.b,e.g.b=a;break;case 3:a+=i,e.g.b=a;break;case 4:a-=i+e.j.a,e.g.a=a;break;case 2:a+=i,e.g.a=a}}function okt(t){var e,n;for(n=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));n.e!=n.i.gc();)if(!gIt(new oq(XO(fOt(e=jz(wmt(n),33)).a.Kc(),new u))))return e;return null}function skt(){var t;return qDe?jz(ILt((WE(),HIe),v7t),2016):(t=jz(iO(kJ((WE(),HIe),v7t),555)?kJ(HIe,v7t):new cIt,555),qDe=!0,FVt(t),xGt(t),_wt(t),mQ(HIe,v7t,t),t)}function ckt(t,e,n){var i,a;if(0==t.j)return n;if(a=jz(Fnt(t,e,n),72),!(i=n.ak()).Ij()||!t.a.rl(i))throw $m(new fw("Invalid entry feature '"+i.Hj().zb+"."+i.ne()+"'"));return a}function lkt(t,e){var n,i,a,r,o,s,c;for(s=0,c=(o=t.a).length;s<c;++s)for(a=0,r=(i=o[s]).length;a<r;++a)if(n=i[a],HA(e)===HA(n)||null!=e&&Odt(e,n))return!0;return!1}function ukt(t){var e,n,i;return Gut(t,0)>=0?(n=ARt(t,DKt),i=dpt(t,DKt)):(n=ARt(e=wq(t,1),5e8),i=ift(yq(i=dpt(e,5e8),1),t0(t,1))),e0(yq(i,32),t0(n,qKt))}function dkt(t,e,n){var i;switch(EN(0!=e.b),i=jz(Det(e,e.a.a),8),n.g){case 0:i.b=0;break;case 2:i.b=t.f;break;case 3:i.a=0;break;default:i.a=t.g}return JW(cmt(e,0),i),e}function hkt(t,e,n,i){var a,r,o,s,c;switch(c=t.b,s=Vbt(o=(r=e.d).j,c.d[o.g],n),a=VP(jL(r.n),r.a),r.j.g){case 1:case 3:s.a+=a.a;break;case 2:case 4:s.b+=a.b}n6(i,s,i.c.b,i.c)}function fkt(t,e,n){var i,a,r,o;for(o=x9(t.e,e,0),(r=new nv).b=n,i=new _2(t.e,o);i.b<i.d.gc();)EN(i.b<i.d.gc()),(a=jz(i.d.Xb(i.c=i.b++),10)).p=n,Wz(r.e,a),lG(i);return r}function gkt(t,e,n,i){var a,r,o,s,c;for(a=null,r=0,s=new Wf(e);s.a<s.c.c.length;)c=(o=jz(J1(s),33)).i+o.g,t<o.j+o.f+i&&(a?n.i-c<n.i-r&&(a=o):a=o,r=a.i+a.g);return a?r+i:0}function pkt(t,e,n,i){var a,r,o,s,c;for(r=null,a=0,s=new Wf(e);s.a<s.c.c.length;)c=(o=jz(J1(s),33)).j+o.f,t<o.i+o.g+i&&(r?n.j-c<n.j-a&&(r=o):r=o,a=r.j+r.f);return r?a+i:0}function bkt(t){var e,n,i;for(e=!1,i=t.b.c.length,n=0;n<i;n++)Kct(jz(OU(t.b,n),434))?!e&&n+1<i&&Kct(jz(OU(t.b,n+1),434))&&(e=!0,jz(OU(t.b,n),434).a=!0):e=!1}function mkt(t,e,n,i,a){var r,o;for(r=0,o=0;o<a;o++)r=ift(r,nft(t0(e[o],qKt),t0(i[o],qKt))),t[o]=fV(r),r=vq(r,32);for(;o<n;o++)r=ift(r,t0(e[o],qKt)),t[o]=fV(r),r=vq(r,32)}function ykt(t,e){var n,i;for(IDt(),ABt(),i=Jee,n=t;e>1;e>>=1)1&e&&(i=Ltt(i,n)),n=1==n.d?Ltt(n,n):new Sbt(Tjt(n.a,n.d,O5(TMe,lKt,25,n.d<<1,15,1)));return i=Ltt(i,n)}function vkt(){var t,e,n,i;for(vkt=D,Tne=O5(LMe,HKt,25,25,15,1),Ane=O5(LMe,HKt,25,33,15,1),i=152587890625e-16,e=32;e>=0;e--)Ane[e]=i,i*=.5;for(n=1,t=24;t>=0;t--)Tne[t]=n,n*=.5}function wkt(t){var e,n;if(zw(RB(JIt(t,(zYt(),hbe)))))for(n=new oq(XO(gOt(t).a.Kc(),new u));gIt(n);)if(ZAt(e=jz(V6(n),79))&&zw(RB(JIt(e,fbe))))return!0;return!1}function xkt(t,e){var n,i,a;RW(t.f,e)&&(e.b=t,i=e.c,-1!=x9(t.j,i,0)||Wz(t.j,i),a=e.d,-1!=x9(t.j,a,0)||Wz(t.j,a),0!=(n=e.a.b).c.length&&(!t.i&&(t.i=new emt(t)),mot(t.i,n)))}function Rkt(t){var e,n,i,a;return(n=(e=t.c.d).j)==(a=(i=t.d.d).j)?e.p<i.p?0:1:kht(n)==a?0:Rht(n)==a?1:kM(t.b.b,kht(n))?0:1}function _kt(){_kt=D,tye=new NS(x4t,0),Jme=new NS("LONGEST_PATH",1),Kme=new NS("COFFMAN_GRAHAM",2),Xme=new NS($1t,3),eye=new NS("STRETCH_WIDTH",4),Qme=new NS("MIN_WIDTH",5)}function kkt(t){var e;this.d=new Om,this.c=t.c,this.e=t.d,this.b=t.b,this.f=new sV(t.e),this.a=t.a,t.f?this.g=t.f:this.g=new ZF(e=jz(YR(iIe),9),jz(kP(e,e.length),9),0)}function Ekt(t,e){var n,i,a,r;!(a=M2(i=t,"layoutOptions"))&&(a=M2(i,k7t)),a&&(n=null,(r=a)&&(n=new Rk(r,xat(r,O5(zee,cZt,2,0,6,1)))),n&&t6(n,new hA(r,e)))}function Ckt(t){if(iO(t,239))return jz(t,33);if(iO(t,186))return WJ(jz(t,118));throw $m(t?new Qw("Only support nodes and ports."):new $w(e5t))}function Skt(t,e,n,i){return(e>=0&&mF(t.substr(e,3),"GMT")||e>=0&&mF(t.substr(e,3),"UTC"))&&(n[0]=e+3),vjt(t,n,i)}function Tkt(t,e){var n,i,a,r,o;for(r=t.g.a,o=t.g.b,i=new Wf(t.d);i.a<i.c.c.length;)(a=(n=jz(J1(i),70)).n).a=r,t.i==(wWt(),cAe)?a.b=o+t.j.b-n.o.b:a.b=o,VP(a,e),r+=n.o.a+t.e}function Akt(t,e,n){if(t.b)throw $m(new Fw("The task is already done."));return null==t.p&&(t.p=e,t.r=n,t.k&&(t.o=(Dk(),aft(uot(Date.now()),GZt))),!0)}function Dkt(t){var e;return e=new pw,null!=t.tg()&&AH(e,H7t,t.tg()),null!=t.ne()&&AH(e,t5t,t.ne()),null!=t.sg()&&AH(e,"description",t.sg()),e}function Ikt(t,e,n){var i,a,r;return r=t.q,t.q=e,4&t.Db&&!(1&t.Db)&&(a=new Jq(t,1,9,r,e),n?n.Ei(a):n=a),e?(i=e.c)!=t.r&&(n=t.nk(i,n)):t.r&&(n=t.nk(null,n)),n}function Lkt(t,e,n){var i,a;for(n=Omt(e,t.e,-1-t.c,n),a=new _m(new olt(new Ef(OG(t.a).a).a));a.a.b;)n=rqt(i=jz(tnt(a.a).cd(),87),wOt(i,t.a),n);return n}function Okt(t,e,n){var i,a;for(n=oJ(e,t.e,-1-t.c,n),a=new _m(new olt(new Ef(OG(t.a).a).a));a.a.b;)n=rqt(i=jz(tnt(a.a).cd(),87),wOt(i,t.a),n);return n}function Mkt(t,e,n,i){var a,r,o;if(0==i)rHt(e,0,t,n,t.length-n);else for(o=32-i,t[t.length-1]=0,r=t.length-1;r>n;r--)t[r]|=e[r-n-1]>>>o,t[r-1]=e[r-n-1]<<i;for(a=0;a<n;a++)t[a]=0}function Nkt(t){var e,n,a,r,o;for(e=0,n=0,o=t.Kc();o.Ob();)a=jz(o.Pb(),111),e=i.Math.max(e,a.d.b),n=i.Math.max(n,a.d.c);for(r=t.Kc();r.Ob();)(a=jz(r.Pb(),111)).d.b=e,a.d.c=n}function Bkt(t){var e,n,a,r,o;for(n=0,e=0,o=t.Kc();o.Ob();)a=jz(o.Pb(),111),n=i.Math.max(n,a.d.d),e=i.Math.max(e,a.d.a);for(r=t.Kc();r.Ob();)(a=jz(r.Pb(),111)).d.d=n,a.d.a=e}function Pkt(t,e){var n,i,a,r;for(r=new Lm,a=0,i=e.Kc();i.Ob();){for(n=nht(jz(i.Pb(),19).a+a);n.a<t.f&&!QU(t,n.a);)n=nht(n.a+1),++a;if(n.a>=t.f)break;r.c[r.c.length]=n}return r}function Fkt(t){var e,n,i,a;for(e=null,a=new Wf(t.wf());a.a<a.c.c.length;)n=new VZ((i=jz(J1(a),181)).qf().a,i.qf().b,i.rf().a,i.rf().b),e?SSt(e,n):e=n;return!e&&(e=new dI),e}function jkt(t,e,n,i){return 1==n?(!t.n&&(t.n=new tW(HDe,t,1,7)),Kgt(t.n,e,i)):jz(eet(jz(vot(t,16),26)||t.zh(),n),66).Nj().Qj(t,ubt(t),n-dY(t.zh()),e,i)}function $kt(t,e,n){var i,a,r,o,s;for(i=n.gc(),t.qi(t.i+i),(s=t.i-e)>0&&rHt(t.g,e,t.g,e+i,s),o=n.Kc(),t.i+=i,a=0;a<i;++a)r=o.Pb(),wO(t,e,t.oi(e,r)),t.bi(e,r),t.ci(),++e;return 0!=i}function zkt(t,e,n){var i;return e!=t.q?(t.q&&(n=oJ(t.q,t,-10,n)),e&&(n=Omt(e,t,-10,n)),n=Ikt(t,e,n)):4&t.Db&&!(1&t.Db)&&(i=new Jq(t,1,9,e,e),n?n.Ei(i):n=i),n}function Hkt(t,e,n,i){return Cj(0==(n&lZt),"flatMap does not support SUBSIZED characteristic"),Cj(0==(4&n),"flatMap does not support SORTED characteristic"),yY(t),yY(e),new z2(t,n,i,e)}function Ukt(t,e){kW(e,"Cannot suppress a null exception."),bH(e!=t,"Exception can not suppress itself."),!t.i&&(null==t.k?t.k=Cst(Hx(Xte,1),cZt,78,0,[e]):t.k[t.k.length]=e)}function Vkt(t,e,n,i){var a,r,o,s,c,l;for(o=n.length,r=0,a=-1,l=aet(t.substr(e),(ij(),Rne)),s=0;s<o;++s)(c=n[s].length)>r&&sW(l,aet(n[s],Rne))&&(a=s,r=c);return a>=0&&(i[0]=e+r),a}function qkt(t,e){var n;if(0!=(n=ZD(t.b.Hf(),e.b.Hf())))return n;switch(t.b.Hf().g){case 1:case 2:return xL(t.b.sf(),e.b.sf());case 3:case 4:return xL(e.b.sf(),t.b.sf())}return 0}function Wkt(t){var e,n,i;for(i=t.e.c.length,t.a=vU(TMe,[cZt,lKt],[48,25],15,[i,i],2),n=new Wf(t.c);n.a<n.c.c.length;)e=jz(J1(n),282),t.a[e.c.b][e.d.b]+=jz(yEt(e,(uPt(),Xre)),19).a}function Ykt(t,e,n){Akt(n,"Grow Tree",1),t.b=e.f,zw(RB(yEt(e,(Wrt(),Gae))))?(t.c=new ne,GQ(t,null)):t.c=new ne,t.a=!1,jMt(t,e.f),lct(e,Zae,(cM(),!!t.a)),zCt(n)}function Gkt(t,e){var n,i,a,r,o;if(null==t)return null;for(o=O5(SMe,YZt,25,2*e,15,1),i=0,a=0;i<e;++i)n=t[i]>>4&15,r=15&t[i],o[a++]=TDe[n],o[a++]=TDe[r];return $pt(o,0,o.length)}function Zkt(t,e,n){var i,a,r;return i=e.ak(),r=e.dd(),a=i.$j()?IX(t,4,i,r,null,bzt(t,i,r,iO(i,99)&&0!=(jz(i,18).Bb&$Kt)),!0):IX(t,i.Kj()?2:1,i,r,i.zj(),-1,!0),n?n.Ei(a):n=a,n}function Kkt(t){var e,n;return t>=$Kt?(e=zKt+(t-$Kt>>10&1023)&ZZt,n=56320+(t-$Kt&1023)&ZZt,String.fromCharCode(e)+""+String.fromCharCode(n)):String.fromCharCode(t&ZZt)}function Xkt(t,e){var n,i,a,r;return zB(),(a=jz(jz(c7(t.r,e),21),84)).gc()>=2&&(i=jz(a.Kc().Pb(),111),n=t.u.Hc((dAt(),tAe)),r=t.u.Hc(aAe),!i.a&&!n&&(2==a.gc()||r))}function Jkt(t,e,n,i,a){var r,o,s;for(r=eBt(t,e,n,i,a),s=!1;!r;)RLt(t,a,!0),s=!0,r=eBt(t,e,n,i,a);s&&RLt(t,a,!1),0!=(o=Nst(a)).c.length&&(t.d&&t.d.lg(o),Jkt(t,a,n,i,o))}function Qkt(){Qkt=D,rTe=new jT(ZQt,0),iTe=new jT("DIRECTED",1),oTe=new jT("UNDIRECTED",2),eTe=new jT("ASSOCIATION",3),aTe=new jT("GENERALIZATION",4),nTe=new jT("DEPENDENCY",5)}function tEt(t,e){var n;if(!WJ(t))throw $m(new Fw(j6t));switch(n=WJ(t),e.g){case 1:return-(t.j+t.f);case 2:return t.i-n.g;case 3:return t.j-n.f;case 4:return-(t.i+t.g)}return 0}function eEt(t,e){var n,i;for(vG(e),i=t.b.c.length,Wz(t.b,e);i>0;){if(n=i,i=(i-1)/2|0,t.a.ue(OU(t.b,i),e)<=0)return i6(t.b,n,e),!0;i6(t.b,n,OU(t.b,i))}return i6(t.b,i,e),!0}function nEt(t,e,n,a){var r,o;if(r=0,n)r=yut(t.a[n.g][e.g],a);else for(o=0;o<Zie;o++)r=i.Math.max(r,yut(t.a[o][e.g],a));return e==(Net(),Vie)&&t.b&&(r=i.Math.max(r,t.b.a)),r}function iEt(t,e){var n,i,a,r,o;return i=t.i,a=e.i,!(!i||!a||i.i!=a.i||i.i==(wWt(),sAe)||i.i==(wWt(),SAe))&&(n=(r=i.g.a)+i.j.a,r<=(o=a.g.a)+a.j.a&&n>=o)}function aEt(t,e,n,i){var a;if(a=!1,qA(i)&&(a=!0,AH(e,n,kB(i))),a||UA(i)&&(a=!0,aEt(t,e,n,i)),a||iO(i,236)&&(a=!0,zK(e,n,jz(i,236))),!a)throw $m(new Iw(z7t))}function rEt(t,e){var n,i,a;if((n=e.Hh(t.a))&&null!=(a=apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),j8t)))for(i=1;i<(TSt(),GLe).length;++i)if(mF(GLe[i],a))return i;return 0}function oEt(t,e){var n,i,a;if((n=e.Hh(t.a))&&null!=(a=apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),j8t)))for(i=1;i<(TSt(),ZLe).length;++i)if(mF(ZLe[i],a))return i;return 0}function sEt(t,e){var n,i,a,r;if(vG(e),(r=t.a.gc())<e.gc())for(n=t.a.ec().Kc();n.Ob();)i=n.Pb(),e.Hc(i)&&n.Qb();else for(a=e.Kc();a.Ob();)i=a.Pb(),t.a.Bc(i);return r!=t.a.gc()}function cEt(t){var e,n;switch(n=jL(Dct(Cst(Hx(EEe,1),cZt,8,0,[t.i.n,t.n,t.a]))),e=t.i.d,t.j.g){case 1:n.b-=e.d;break;case 2:n.a+=e.c;break;case 3:n.b+=e.a;break;case 4:n.a-=e.b}return n}function lEt(t){var e;for(Tat(),e=jz(V6(new oq(XO(uft(t).a.Kc(),new u))),17).c.i;e.k==(oCt(),Cse);)lct(e,(lGt(),ohe),(cM(),!0)),e=jz(V6(new oq(XO(uft(e).a.Kc(),new u))),17).c.i}function uEt(t,e,n,i){var a,r,o;for(o=Ldt(e,i).Kc();o.Ob();)a=jz(o.Pb(),11),t.d[a.p]=t.d[a.p]+t.c[n.p];for(r=Ldt(n,i).Kc();r.Ob();)a=jz(r.Pb(),11),t.d[a.p]=t.d[a.p]-t.c[e.p]}function dEt(t,e,n){var i,a;for(a=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));a.e!=a.i.gc();)kI(i=jz(wmt(a),33),i.i+e,i.j+n);t6((!t.b&&(t.b=new tW(BDe,t,12,3)),t.b),new QT(e,n))}function hEt(t,e,n,i){var a,r;for(a=null==(r=e).d||t.a.ue(n.d,r.d)>0?1:0;r.a[a]!=n;)r=r.a[a],a=t.a.ue(n.d,r.d)>0?1:0;r.a[a]=i,i.b=n.b,i.a[0]=n.a[0],i.a[1]=n.a[1],n.a[0]=null,n.a[1]=null}function fEt(t){var e;return dAt(),!(Sot(TJ(xV(eAe,Cst(Hx(oAe,1),IZt,273,0,[iAe])),t))>1||(e=xV(tAe,Cst(Hx(oAe,1),IZt,273,0,[QTe,aAe])),Sot(TJ(e,t))>1))}function gEt(t,e){iO(kJ((WE(),HIe),t),498)?mQ(HIe,t,new TA(this,e)):mQ(HIe,t,this),nCt(this,e),e==(e_(),XIe)?(this.wb=jz(this,1939),jz(e,1941)):this.wb=(GY(),JIe)}function pEt(t){var e,n;if(null==t)return null;for(e=null,n=0;n<SDe.length;++n)try{return jE(SDe[n],t)}catch(i){if(!iO(i=dst(i),32))throw $m(i);e=i}throw $m(new I9(e))}function bEt(){bEt=D,pne=Cst(Hx(zee,1),cZt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),bne=Cst(Hx(zee,1),cZt,2,6,["Jan","Feb","Mar","Apr",tKt,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])}function mEt(t){var e,n,i;(e=mF(typeof e,pXt)?null:new dt)&&(uE(),QY(n=(i=900)>=GZt?"error":i>=900?"warn":i>=800?"info":"log",t.a),t.b&&MMt(e,n,t.b,"Exception: ",!0))}function yEt(t,e){var n;return!t.q&&(t.q=new Om),NY(t.q,e)??(iO(n=e.wg(),4)&&(null==n?(!t.q&&(t.q=new Om),b7(t.q,e)):(!t.q&&(t.q=new Om),YG(t.q,e,n))),n)}function vEt(){vEt=D,Boe=new YC("P1_CYCLE_BREAKING",0),Poe=new YC("P2_LAYERING",1),Foe=new YC("P3_NODE_ORDERING",2),joe=new YC("P4_NODE_PLACEMENT",3),$oe=new YC("P5_EDGE_ROUTING",4)}function wEt(t,e){var n,i,a,r;for(i=(1==e?Woe:qoe).a.ec().Kc();i.Ob();)for(n=jz(i.Pb(),103),r=jz(c7(t.f.c,n),21).Kc();r.Ob();)a=jz(r.Pb(),46),y9(t.b.b,a.b),y9(t.b.a,jz(a.b,81).d)}function xEt(t,e){var n;if(Mtt(),t.c==e.c){if(t.b==e.b||lrt(t.b,e.b)){if(n=XD(t.b)?1:-1,t.a&&!e.a)return n;if(!t.a&&e.a)return-n}return xL(t.b.g,e.b.g)}return Cht(t.c,e.c)}function REt(t,e){var n;Akt(e,"Hierarchical port position processing",1),(n=t.b).c.length>0&&njt((u1(0,n.c.length),jz(n.c[0],29)),t),n.c.length>1&&njt(jz(OU(n,n.c.length-1),29),t),zCt(e)}function _Et(t,e){var n,i;if(OEt(t,e))return!0;for(i=new Wf(e);i.a<i.c.c.length;)if(FBt(t,n=jz(J1(i),33),o_t(n))||Iut(t,n)-t.g<=t.a)return!0;return!1}function kEt(){kEt=D,hPt(),vke=Nke,bke=Ike,pke=Ake,fke=Eke,gke=Ske,hke=new WI(8),dke=new qI((cGt(),qCe),hke),mke=new qI(ISe,8),yke=Oke,cke=wke,lke=Rke,uke=new qI(uCe,(cM(),!1))}function EEt(){EEt=D,UEe=new WI(15),HEe=new qI((cGt(),qCe),UEe),qEe=new qI(ISe,15),VEe=new qI(pSe,nht(0)),PEe=wCe,jEe=BCe,zEe=zCe,MEe=new qI(iCe,u6t),FEe=CCe,$Ee=jCe,NEe=rCe,BEe=cCe}function CEt(t){if(1!=(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i||1!=(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i)throw $m(new Pw(i5t));return Ckt(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82))}function SEt(t){if(1!=(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i||1!=(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i)throw $m(new Pw(i5t));return hst(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82))}function TEt(t){if(1!=(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i||1!=(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i)throw $m(new Pw(i5t));return hst(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82))}function AEt(t){if(1!=(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i||1!=(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i)throw $m(new Pw(i5t));return Ckt(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82))}function DEt(t,e,n){var i,a,r;if(++t.j,e>=(a=t.Vi())||e<0)throw $m(new Aw(o5t+e+s5t+a));if(n>=a||n<0)throw $m(new Aw(c5t+n+s5t+a));return e!=n?(r=t.Ti(n),t.Hi(e,r),i=r):i=t.Oi(n),i}function IEt(t){var e,n,i;if(i=t,t)for(e=0,n=t.Ug();n;n=n.Ug()){if(++e>UKt)return IEt(n);if(i=n,n==t)throw $m(new Fw("There is a cycle in the containment hierarchy of "+t))}return i}function LEt(t){var e,n,i;for(i=new Iot(jGt,"[","]"),n=t.Kc();n.Ob();)d7(i,HA(e=n.Pb())===HA(t)?"(this Collection)":null==e?VGt:$ft(e));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}function OEt(t,e){var n,i;if(i=!1,e.gc()<2)return!1;for(n=0;n<e.gc();n++)n<e.gc()-1?i|=FBt(t,jz(e.Xb(n),33),jz(e.Xb(n+1),33)):i|=FBt(t,jz(e.Xb(n),33),jz(e.Xb(0),33));return i}function MEt(t,e){var n;e!=t.a?(n=null,t.a&&(n=jz(t.a,49).ih(t,4,zDe,n)),e&&(n=jz(e,49).gh(t,4,zDe,n)),(n=Xut(t,e,n))&&n.Fi()):4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,1,e,e))}function NEt(t,e){var n;e!=t.e?(t.e&&P7(OG(t.e),t),e&&(!e.b&&(e.b=new Rm(new Ov)),ZP(e.b,t)),(n=Zxt(t,e,null))&&n.Fi()):4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,4,e,e))}function BEt(t){var e,n,i;for(n=t.length,i=0;i<n&&(d1(i,t.length),t.charCodeAt(i)<=32);)++i;for(e=n;e>i&&(d1(e-1,t.length),t.charCodeAt(e-1)<=32);)--e;return i>0||e<n?t.substr(i,e-i):t}function PEt(t,e){var n;n=e.o,fI(t.f)?(t.j.a=i.Math.max(t.j.a,n.a),t.j.b+=n.b,t.d.c.length>1&&(t.j.b+=t.e)):(t.j.a+=n.a,t.j.b=i.Math.max(t.j.b,n.b),t.d.c.length>1&&(t.j.a+=t.e))}function FEt(){FEt=D,Dle=Cst(Hx(MAe,1),KQt,61,0,[(wWt(),cAe),sAe,EAe]),Ale=Cst(Hx(MAe,1),KQt,61,0,[sAe,EAe,SAe]),Ile=Cst(Hx(MAe,1),KQt,61,0,[EAe,SAe,cAe]),Lle=Cst(Hx(MAe,1),KQt,61,0,[SAe,cAe,sAe])}function jEt(t,e,n,i){var a,r,o,s,c;if(r=t.c.d,o=t.d.d,r.j!=o.j)for(c=t.b,a=r.j,s=null;a!=o.j;)s=0==e?kht(a):Rht(a),MH(i,VP(Vbt(a,c.d[a.g],n),Vbt(s,c.d[s.g],n))),a=s}function $Et(t,e,n,i){var a,r,o,s,c;return s=jz((o=Hwt(t.a,e,n)).a,19).a,r=jz(o.b,19).a,i&&(c=jz(yEt(e,(lGt(),xhe)),10),a=jz(yEt(n,xhe),10),c&&a&&(Q4(t.b,c,a),s+=t.b.i,r+=t.b.e)),s>r}function zEt(t){var e,n,i,a,r,o,s,c;for(this.a=iyt(t),this.b=new Lm,i=0,a=(n=t).length;i<a;++i)for(e=n[i],r=new Lm,Wz(this.b,r),s=0,c=(o=e).length;s<c;++s)Wz(r,new QF(o[s].j))}function HEt(t,e,n){var i,a,r;return r=0,i=n[e],e<n.length-1&&(a=n[e+1],t.b[e]?(r=hGt(t.d,i,a),r+=XY(t.a,i,(wWt(),sAe)),r+=XY(t.a,a,SAe)):r=S8(t.a,i,a)),t.c[e]&&(r+=I7(t.a,i)),r}function UEt(t,e,n,i,a){var r,o,s,c;for(c=null,s=new Wf(i);s.a<s.c.c.length;)if((o=jz(J1(s),441))!=n&&-1!=x9(o.e,a,0)){c=o;break}kQ(r=W6(a),n.b),_Q(r,c.b),XAt(t.a,a,new Ij(r,e,n.f))}function VEt(t){for(;0!=t.g.c&&0!=t.d.c;)FB(t.g).c>FB(t.d).c?(t.i+=t.g.c,ppt(t.d)):FB(t.d).c>FB(t.g).c?(t.e+=t.d.c,ppt(t.g)):(t.i+=zU(t.g),t.e+=zU(t.d),ppt(t.g),ppt(t.d))}function qEt(t,e,n){var i,a,r,o;for(r=e.q,o=e.r,new UQ((T7(),_we),e,r,1),new UQ(_we,r,o,1),a=new Wf(n);a.a<a.c.c.length;)(i=jz(J1(a),112))!=r&&i!=e&&i!=o&&(pHt(t.a,i,e),pHt(t.a,i,o))}function WEt(t,e,n,a){t.a.d=i.Math.min(e,n),t.a.a=i.Math.max(e,a)-t.a.d,e<n?(t.b=.5*(e+n),t.g=P4t*t.b+.9*e,t.f=P4t*t.b+.9*n):(t.b=.5*(e+a),t.g=P4t*t.b+.9*a,t.f=P4t*t.b+.9*e)}function YEt(){function t(){return(new Date).getTime()}EGt={},!Array.isArray&&(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!Date.now&&(Date.now=t)}function GEt(t,e){var n,i;i=jz(yEt(e,(zYt(),tme)),98),lct(e,(lGt(),yhe),i),(n=e.e)&&(Kk(new NU(null,new h1(n.a,16)),new Ng(t)),Kk(htt(new NU(null,new h1(n.b,16)),new ye),new Bg(t)))}function ZEt(t){var e,n,a,r;if(gI(jz(yEt(t.b,(zYt(),Vpe)),103)))return 0;for(e=0,a=new Wf(t.a);a.a<a.c.c.length;)(n=jz(J1(a),10)).k==(oCt(),Sse)&&(r=n.o.a,e=i.Math.max(e,r));return e}function KEt(t){switch(jz(yEt(t,(zYt(),vbe)),163).g){case 1:lct(t,vbe,(_ft(),$he));break;case 2:lct(t,vbe,(_ft(),zhe));break;case 3:lct(t,vbe,(_ft(),Fhe));break;case 4:lct(t,vbe,(_ft(),jhe))}}function XEt(){XEt=D,ade=new DS(ZQt,0),ede=new DS(aJt,1),rde=new DS(rJt,2),ide=new DS("LEFT_RIGHT_CONSTRAINT_LOCKING",3),nde=new DS("LEFT_RIGHT_CONNECTION_LOCKING",4),tde=new DS(H1t,5)}function JEt(t,e,n){var a,r,o,s,c,l,u;c=n.a/2,o=n.b/2,l=1,u=1,(a=i.Math.abs(e.a-t.a))>c&&(l=c/a),(r=i.Math.abs(e.b-t.b))>o&&(u=o/r),s=i.Math.min(l,u),t.a+=s*(e.a-t.a),t.b+=s*(e.b-t.b)}function QEt(t,e,n,i,a){var r,o;for(o=!1,r=jz(OU(n.b,0),33);lzt(t,e,r,i,a)&&(o=!0,a_t(n,r),0!=n.b.c.length);)r=jz(OU(n.b,0),33);return 0==n.b.c.length&&_xt(n.j,n),o&&Uvt(e.q),o}function tCt(t,e){var n,i,a,r;if(xBt(),e.b<2)return!1;for(i=n=jz(d4(r=cmt(e,0)),8);r.b!=r.d.c;){if(aMt(t,i,a=jz(d4(r),8)))return!0;i=a}return!!aMt(t,i,n)}function eCt(t,e,n,i){return 0==n?(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),jF(t.o,e,i)):jz(eet(jz(vot(t,16),26)||t.zh(),n),66).Nj().Rj(t,ubt(t),n-dY(t.zh()),e,i)}function nCt(t,e){var n;e!=t.sb?(n=null,t.sb&&(n=jz(t.sb,49).ih(t,1,jDe,n)),e&&(n=jz(e,49).gh(t,1,jDe,n)),(n=xdt(t,e,n))&&n.Fi()):4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,4,e,e))}function iCt(t,e){var n,i;if(!e)throw $m(new tx("All edge sections need an end point."));n=Bnt(e,"x"),_nt(new Bb(t).a,(vG(n),n)),i=Bnt(e,"y"),Ant(new Pb(t).a,(vG(i),i))}function aCt(t,e){var n,i;if(!e)throw $m(new tx("All edge sections need a start point."));n=Bnt(e,"x"),Tnt(new Ob(t).a,(vG(n),n)),i=Bnt(e,"y"),Dnt(new Mb(t).a,(vG(i),i))}function rCt(t,e){var n,i,a,r,o;for(i=0,r=blt(t).length;i<r;++i)mEt(e);for(o=!qne&&t.e?qne?null:t.d:null;o;){for(n=0,a=blt(o).length;n<a;++n)mEt(e);o=!qne&&o.e?qne?null:o.d:null}}function oCt(){oCt=D,Sse=new KC("NORMAL",0),Cse=new KC("LONG_EDGE",1),kse=new KC("EXTERNAL_PORT",2),Tse=new KC("NORTH_SOUTH_PORT",3),Ese=new KC("LABEL",4),_se=new KC("BREAKING_POINT",5)}function sCt(t){var e,n,i,a;if(e=!1,IN(t,(lGt(),Ude)))for(n=jz(yEt(t,Ude),83),a=new Wf(t.j);a.a<a.c.c.length;)XLt(i=jz(J1(a),11))&&(e||(nAt(bG(t)),e=!0),umt(jz(n.xc(i),306)))}function cCt(t,e,n){var i;Akt(n,"Self-Loop routing",1),i=Ght(e),eD(yEt(e,(C7(),REe))),Kk(DZ(AZ(AZ(htt(new NU(null,new h1(e.b,16)),new qi),new Wi),new Yi),new Gi),new tS(t,i)),zCt(n)}function lCt(t){var e,n,i;return i=Dkt(t),null!=t.e&&AH(i,Q7t,t.e),!!t.k&&AH(i,"type",fN(t.k)),!W_(t.j)&&(n=new Eh,net(i,O7t,n),e=new im(n),t6(t.j,e)),i}function uCt(t){var e,n,i,a;for(a=OY((dit(t.gc(),"size"),new Sx),123),i=!0,n=uq(t).Kc();n.Ob();)e=jz(n.Pb(),42),i||(a.a+=jGt),i=!1,rD(OY(rD(a,e.cd()),61),e.dd());return(a.a+="}",a).a}function dCt(t,e){var n,i,a;return(e&=63)<22?(n=t.l<<e,i=t.m<<e|t.l>>22-e,a=t.h<<e|t.m>>22-e):e<44?(n=0,i=t.l<<e-22,a=t.m<<e-22|t.l>>44-e):(n=0,i=0,a=t.l<<e-44),_L(n&EKt,i&EKt,a&CKt)}function hCt(t){if(null==vee&&(vee=new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$")),!vee.test(t))throw $m(new _x(NKt+t+'"'));return parseFloat(t)}function fCt(t){var e,n,i,a;for(e=new Lm,bW(n=O5(AMe,JXt,25,t.a.c.length,16,1),n.length),a=new Wf(t.a);a.a<a.c.c.length;)n[(i=jz(J1(a),121)).d]||(e.c[e.c.length]=i,Ubt(t,i,n));return e}function gCt(t,e){var n,i,a,r;for(r=e.b.j,t.a=O5(TMe,lKt,25,r.c.length,15,1),a=0,i=0;i<r.c.length;i++)u1(i,r.c.length),0==(n=jz(r.c[i],11)).e.c.length&&0==n.g.c.length?a+=1:a+=3,t.a[i]=a}function pCt(){pCt=D,Nue=new SS("ALWAYS_UP",0),Mue=new SS("ALWAYS_DOWN",1),Pue=new SS("DIRECTION_UP",2),Bue=new SS("DIRECTION_DOWN",3),jue=new SS("SMART_UP",4),Fue=new SS("SMART_DOWN",5)}function bCt(t,e){if(t<0||e<0)throw $m(new Pw("k and n must be positive"));if(e>t)throw $m(new Pw("k must be smaller than n"));return 0==e||e==t?1:0==t?0:kRt(t)/(kRt(e)*kRt(t-e))}function mCt(t,e){var n,i,a,r;for(n=new TI(t);null!=n.g||n.c?null==n.g||0!=n.i&&jz(n.g[n.i-1],47).Ob():QJ(n);)if(iO(r=jz(rOt(n),56),160))for(i=jz(r,160),a=0;a<e.length;a++)e[a].og(i)}function yCt(t){var e;return 64&t.Db?Kht(t):((e=new lM(Kht(t))).a+=" (height: ",b_(e,t.f),e.a+=", width: ",b_(e,t.g),e.a+=", x: ",b_(e,t.i),e.a+=", y: ",b_(e,t.j),e.a+=")",e.a)}function vCt(t){var e,n,i,a,r,o;for(e=new b3,a=0,r=(i=t).length;a<r;++a)if(null!=Xbt(e,o=yY((n=i[a]).cd()),yY(n.dd())))throw $m(new Pw("duplicate key: "+o));this.b=(kK(),new qf(e))}function wCt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],d7(r,String.fromCharCode(e));return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function xCt(){xCt=D,Btt(),Sre=new DD(sQt,Tre=Bre),nht(1),Cre=new DD(cQt,nht(300)),nht(0),Ire=new DD(lQt,nht(0)),Lre=new DD(uQt,dQt),Are=new DD(hQt,5),Ore=Bre,Dre=Nre}function RCt(t,e){var n,i,a,r;for(i=(1==e?Woe:qoe).a.ec().Kc();i.Ob();)for(n=jz(i.Pb(),103),r=jz(c7(t.f.c,n),21).Kc();r.Ob();)a=jz(r.Pb(),46),Wz(t.b.b,jz(a.b,81)),Wz(t.b.a,jz(a.b,81).d)}function _Ct(t,e){var n;if(null!=e&&!t.c.Yj().wj(e))throw n=iO(e,56)?jz(e,56).Tg().zb:JR(tlt(e)),$m(new Bw(i7t+t.c.ne()+"'s type '"+t.c.Yj().ne()+"' does not permit a value of type '"+n+"'"))}function kCt(t,e,n){var i,a;for(a=new _2(t.b,0);a.b<a.d.gc();)EN(a.b<a.d.gc()),HA(yEt(i=jz(a.d.Xb(a.c=a.b++),70),(lGt(),bhe)))===HA(e)&&(ASt(i.n,bG(t.c.i),n),lG(a),Wz(e.b,i))}function ECt(t,e){if(e.a)switch(jz(yEt(e.b,(lGt(),yhe)),98).g){case 0:case 1:d_t(e);case 2:Kk(new NU(null,new h1(e.d,16)),new Oi),sIt(t.a,e)}else Kk(new NU(null,new h1(e.d,16)),new Oi)}function CCt(t){var e,n;return n=i.Math.sqrt((null==t.k&&(t.k=Yat(t,new _r)),Hw(t.k)/(t.b*(null==t.g&&(t.g=Wat(t,new Rr)),Hw(t.g))))),e=fV(uot(i.Math.round(n))),e=i.Math.min(e,t.f)}function SCt(){prt(),IP.call(this),this.j=(wWt(),CAe),this.a=new HR,new lv,this.f=(dit(2,DZt),new K7(2)),this.e=(dit(4,DZt),new K7(4)),this.g=(dit(4,DZt),new K7(4)),this.b=new cS(this.e,this.g)}function TCt(t,e){var n,i;return!(zw(RB(yEt(e,(lGt(),Che))))||(i=e.c.i,t==(_ft(),Fhe)&&i.k==(oCt(),Ese))||(n=jz(yEt(i,(zYt(),vbe)),163),n==jhe))}function ACt(t,e){var n,i;return!(zw(RB(yEt(e,(lGt(),Che))))||(i=e.d.i,t==(_ft(),$he)&&i.k==(oCt(),Ese))||(n=jz(yEt(i,(zYt(),vbe)),163),n==zhe))}function DCt(t,e){var n,i,a,r,o,s,c;for(o=t.d,c=t.o,s=new VZ(-o.b,-o.d,o.b+c.a+o.c,o.d+c.b+o.a),a=0,r=(i=e).length;a<r;++a)(n=i[a])&&SSt(s,n.i);o.b=-s.c,o.d=-s.d,o.c=s.b-o.b-c.a,o.a=s.a-o.d-c.b}function ICt(){ICt=D,nke=new _T("CENTER_DISTANCE",0),ike=new _T("CIRCLE_UNDERLAP",1),oke=new _T("RECTANGLE_UNDERLAP",2),ake=new _T("INVERTED_OVERLAP",3),rke=new _T("MINIMUM_ROOT_DISTANCE",4)}function LCt(t){var e,n,i,a;if(PBt(),null==t)return null;for(i=t.length,e=O5(SMe,YZt,25,2*i,15,1),n=0;n<i;n++)(a=t[n])<0&&(a+=256),e[2*n]=GOe[a>>4],e[2*n+1]=GOe[15&a];return $pt(e,0,e.length)}function OCt(t){var e;switch(JG(),t.c.length){case 0:return $te;case 1:return SH((e=jz(XTt(new Wf(t)),42)).cd(),e.dd());default:return new cw(jz(Zbt(t,O5(zte,wZt,42,t.c.length,0,1)),165))}}function MCt(t){var e,n,i,a,r;for(e=new Im,n=new Im,f4(e,t),f4(n,t);n.b!=n.c;)for(r=new Wf(jz(fW(n),37).a);r.a<r.c.c.length;)(a=jz(J1(r),10)).e&&(f4(e,i=a.e),f4(n,i));return e}function NCt(t,e){switch(e.g){case 1:return Bz(t.j,(prt(),Mse));case 2:return Bz(t.j,(prt(),Lse));case 3:return Bz(t.j,(prt(),Bse));case 4:return Bz(t.j,(prt(),Pse));default:return kK(),kK(),cne}}function BCt(t,e){var n,i,a;n=sH(e,t.e),i=jz(NY(t.g.f,n),19).a,a=t.a.c.length-1,0!=t.a.c.length&&jz(OU(t.a,a),287).c==i?(++jz(OU(t.a,a),287).a,++jz(OU(t.a,a),287).b):Wz(t.a,new HN(i))}function PCt(t,e,n){var i,a;return 0!=(i=EPt(t,e,n))?i:IN(e,(lGt(),hhe))&&IN(n,hhe)?((a=xL(jz(yEt(e,hhe),19).a,jz(yEt(n,hhe),19).a))<0?oFt(t,e,n):a>0&&oFt(t,n,e),a):TDt(t,e,n)}function FCt(t,e,n){var i,a,r,o;if(0!=e.b){for(i=new Zk,o=cmt(e,0);o.b!=o.d.c;)jat(i,Mst(r=jz(d4(o),86))),(a=r.e).a=jz(yEt(r,(HUt(),gxe)),19).a,a.b=jz(yEt(r,pxe),19).a;FCt(t,i,yrt(n,i.b/t.a|0))}}function jCt(t,e){var n,i,a,r,o;if(t.e<=e||U1(t,t.g,e))return t.g;for(r=t.r,i=t.g,o=t.r,a=(r-i)/2+i;i+1<r;)(n=aHt(t,a,!1)).b<=a&&n.a<=e?(o=a,r=a):i=a,a=(r-i)/2+i;return o}function $Ct(t,e,n){Akt(n,"Recursive Graph Layout",lBt(t,e,!0)),mCt(e,Cst(Hx(Jke,1),zGt,527,0,[new Ad])),E5(e,(cGt(),mSe))||mCt(e,Cst(Hx(Jke,1),zGt,527,0,[new ms])),dYt(t,e,null,n),zCt(n)}function zCt(t){var e;if(null==t.p)throw $m(new Fw("The task has not begun yet."));t.b||(t.k&&(Dk(),e=aft(uot(Date.now()),GZt),t.q=1e-9*w2(nft(e,t.o))),t.c<t.r&&Hit(t,t.r-t.c),t.b=!0)}function HCt(t){var e,n,i;for(MH(i=new vv,new OT(t.j,t.k)),n=new AO((!t.a&&(t.a=new DO(LDe,t,5)),t.a));n.e!=n.i.gc();)MH(i,new OT((e=jz(wmt(n),469)).a,e.b));return MH(i,new OT(t.b,t.c)),i}function UCt(t,e,n,i,a){var r,o,s,c;if(a)for(c=((r=new cq(a.a.length)).b-r.a)*r.c<0?(tC(),RMe):new qO(r);c.Ob();)s=O2(a,jz(c.Pb(),19).a),Njt((o=new cK(t,e,n,i)).a,o.b,o.c,o.d,s)}function VCt(t,e){var n;if(HA(t)===HA(e))return!0;if(iO(e,21)){n=jz(e,21);try{return t.gc()==n.gc()&&t.Ic(n)}catch(i){if(iO(i=dst(i),173)||iO(i,205))return!1;throw $m(i)}}return!1}function qCt(t,e){var n;Wz(t.d,e),n=e.rf(),t.c?(t.e.a=i.Math.max(t.e.a,n.a),t.e.b+=n.b,t.d.c.length>1&&(t.e.b+=t.a)):(t.e.a+=n.a,t.e.b=i.Math.max(t.e.b,n.b),t.d.c.length>1&&(t.e.a+=t.a))}function WCt(t){var e,n,i,a;switch(e=(a=t.i).b,i=a.j,n=a.g,a.a.g){case 0:n.a=(t.g.b.o.a-i.a)/2;break;case 1:n.a=e.d.n.a+e.d.a.a;break;case 2:n.a=e.d.n.a+e.d.a.a-i.a;break;case 3:n.b=e.d.n.b+e.d.a.b}}function YCt(t,e,n,i,a){if(i<e||a<n)throw $m(new Pw("The highx must be bigger then lowx and the highy must be bigger then lowy"));return t.a<e?t.a=e:t.a>i&&(t.a=i),t.b<n?t.b=n:t.b>a&&(t.b=a),t}function GCt(t){if(iO(t,149))return kMt(jz(t,149));if(iO(t,229))return Jft(jz(t,229));if(iO(t,23))return lCt(jz(t,23));throw $m(new Pw(V7t+LEt(new Kw(Cst(Hx(Dte,1),zGt,1,5,[t])))))}function ZCt(t,e,n,i,a){var r,o,s;for(r=!0,o=0;o<i;o++)r&=0==n[o];if(0==a)rHt(n,i,t,0,e),o=e;else{for(s=32-a,r&=n[o]<<s==0,o=0;o<e-1;o++)t[o]=n[o+i]>>>a|n[o+i+1]<<s;t[o]=n[o+i]>>>a,++o}return r}function KCt(t,e,n,i){var a,r;if(e.k==(oCt(),Cse))for(r=new oq(XO(uft(e).a.Kc(),new u));gIt(r);)if((a=jz(V6(r),17)).c.i.k==Cse&&t.c.a[a.c.i.c.p]==i&&t.c.a[e.c.p]==n)return!0;return!1}function XCt(t,e){var n,i,a,r;return e&=63,n=t.h&CKt,e<22?(r=n>>>e,a=t.m>>e|n<<22-e,i=t.l>>e|t.m<<22-e):e<44?(r=0,a=n>>>e-22,i=t.m>>e-22|t.h<<44-e):(r=0,a=0,i=n>>>e-44),_L(i&EKt,a&EKt,r&CKt)}function JCt(t,e,n,i){var a;this.b=i,this.e=t==(sit(),Dve),a=e[n],this.d=vU(AMe,[cZt,JXt],[177,25],16,[a.length,a.length],2),this.a=vU(TMe,[cZt,lKt],[48,25],15,[a.length,a.length],2),this.c=new V_t(e,n)}function QCt(t){var e,n,i;for(t.k=new o1((wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length,t.j.c.length),i=new Wf(t.j);i.a<i.c.c.length;)e=(n=jz(J1(i),113)).d.j,XAt(t.k,e,n);t.e=nMt(gq(t.k))}function tSt(t,e){var n,i,a;RW(t.d,e),n=new Ro,YG(t.c,e,n),n.f=Cut(e.c),n.a=Cut(e.d),n.d=(pNt(),(a=e.c.i.k)==(oCt(),Sse)||a==_se),n.e=(i=e.d.i.k)==Sse||i==_se,n.b=e.c.j==(wWt(),SAe),n.c=e.d.j==sAe}function eSt(t){var e,n,i,a,r;for(r=NGt,a=NGt,i=new Wf(wft(t));i.a<i.c.c.length;)e=(n=jz(J1(i),213)).e.e-n.d.e,n.e==t&&e<a?a=e:e<r&&(r=e);return a==NGt&&(a=-1),r==NGt&&(r=-1),new nA(nht(a),nht(r))}function nSt(t,e){var n,a,r;return r=JJt,Hmt(),a=Jae,r=i.Math.abs(t.b),(n=i.Math.abs(e.f-t.b))<r&&(r=n,a=Qae),(n=i.Math.abs(t.a))<r&&(r=n,a=tre),(n=i.Math.abs(e.g-t.a))<r&&(r=n,a=Xae),a}function iSt(t,e){var n,i,a;for(n=e.a.o.a,a=new kf(new s1(bG(e.a).b,e.c,e.f+1));a.b<a.d.gc();)if(EN(a.b<a.d.gc()),(i=jz(a.d.Xb(a.c=a.b++),29)).c.a>=n)return lSt(t,e,i.p),!0;return!1}function aSt(t){var e;return 64&t.Db?yCt(t):(e=new uM(J6t),!t.a||oD(oD((e.a+=' "',e),t.a),'"'),oD(v_(oD(v_(oD(v_(oD(v_((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function rSt(t,e,n){var i,a,r,o,s;for(s=rNt(t.e.Tg(),e),a=jz(t.g,119),i=0,o=0;o<t.i;++o)if(r=a[o],s.rl(r.ak())){if(i==n)return uBt(t,o),XE(),jz(e,66).Oj()?r:r.dd();++i}throw $m(new Aw(e8t+n+s5t+i))}function oSt(t){var e,n,i;if(2==(e=t.c)||7==e||1==e)return fGt(),fGt(),oMe;for(i=AYt(t),n=null;2!=(e=t.c)&&7!=e&&1!=e;)n||(fGt(),fGt(),tUt(n=new nL(1),i),i=n),tUt(n,AYt(t));return i}function sSt(t,e,n){return t<0||t>n?gTt(t,n,"start index"):e<0||e>n?gTt(e,n,"end index"):IPt("end index (%s) must not be less than start index (%s)",Cst(Hx(Dte,1),zGt,1,5,[nht(e),nht(t)]))}function cSt(t,e){var n,i,a,r;for(i=0,a=t.length;i<a;i++){r=t[i];try{r[1]?r[0].jm()&&(e=RV(e,r)):r[0].jm()}catch(o){if(!iO(o=dst(o),78))throw $m(o);n=o,Mx(),yX(iO(n,477)?jz(n,477).ae():n)}}return e}function lSt(t,e,n){var a,r;for(n!=e.c+e.b.gc()&&fHt(e.a,not(e,n-e.c)),r=e.a.c.p,t.a[r]=i.Math.max(t.a[r],e.a.o.a),a=jz(yEt(e.a,(lGt(),Ehe)),15).Kc();a.Ob();)lct(jz(a.Pb(),70),Qce,(cM(),!0))}function uSt(t,e){var n,a,r;r=HMt(e),lct(e,(lGt(),uhe),r),r&&(a=NGt,AX(t.f,r)&&(a=jz(zA(AX(t.f,r)),19).a),zw(RB(yEt(n=jz(OU(e.g,0),17),Che)))||YG(t,r,nht(i.Math.min(jz(yEt(n,hhe),19).a,a))))}function dSt(t,e,n){var i,a,r,o;for(e.p=-1,o=Mgt(e,(rit(),Hye)).Kc();o.Ob();)for(a=new Wf(jz(o.Pb(),11).g);a.a<a.c.c.length;)e!=(r=(i=jz(J1(a),17)).d.i)&&(r.p<0?n.Fc(i):r.p>0&&dSt(t,r,n));e.p=0}function hSt(t){var e;this.c=new Zk,this.f=t.e,this.e=t.d,this.i=t.g,this.d=t.c,this.b=t.b,this.k=t.j,this.a=t.a,t.i?this.j=t.i:this.j=new ZF(e=jz(YR(hEe),9),jz(kP(e,e.length),9),0),this.g=t.f}function fSt(t){var e,n,i,a;for(e=OY(oD(new uM("Predicates."),"and"),40),n=!0,a=new kf(t);a.b<a.d.gc();)EN(a.b<a.d.gc()),i=a.d.Xb(a.c=a.b++),n||(e.a+=","),e.a+=""+i,n=!1;return(e.a+=")",e).a}function gSt(t,e,n){var i,a,r;if(!(n<=e+2))for(a=(n-e)/2|0,i=0;i<a;++i)u1(e+i,t.c.length),r=jz(t.c[e+i],11),i6(t,e+i,(u1(n-i-1,t.c.length),jz(t.c[n-i-1],11))),u1(n-i-1,t.c.length),t.c[n-i-1]=r}function pSt(t,e,n){var i,a,r,o,s,c,l;s=(r=t.d.p).e,c=r.r,t.g=new GF(c),i=(o=t.d.o.c.p)>0?s[o-1]:O5(Rse,r1t,10,0,0,1),a=s[o],l=o<s.length-1?s[o+1]:O5(Rse,r1t,10,0,0,1),e==n-1?rQ(t.g,a,l):rQ(t.g,i,a)}function bSt(t){var e;this.j=new Lm,this.f=new Ny,this.b=new ZF(e=jz(YR(MAe),9),jz(kP(e,e.length),9),0),this.d=O5(TMe,lKt,25,(wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length,15,1),this.g=t}function mSt(t,e){var n,i,a;if(0!=e.c.length){for(n=_Et(t,e),a=!1;!n;)RLt(t,e,!0),a=!0,n=_Et(t,e);a&&RLt(t,e,!1),i=Nst(e),t.b&&t.b.lg(i),t.a=Iut(t,(u1(0,e.c.length),jz(e.c[0],33))),mSt(t,i)}}function ySt(t,e){var n,i,a;if(i=eet(t.Tg(),e),(n=e-t.Ah())<0){if(!i)throw $m(new Pw(s7t+e+c7t));if(!i.Ij())throw $m(new Pw(i7t+i.ne()+a7t));(a=t.Yg(i))>=0?t.Bh(a):aAt(t,i)}else Hdt(t,n,i)}function vSt(t){var e,n;if(n=null,e=!1,iO(t,204)&&(e=!0,n=jz(t,204).a),e||iO(t,258)&&(e=!0,n=""+jz(t,258).a),e||iO(t,483)&&(e=!0,n=""+jz(t,483).a),!e)throw $m(new Iw(z7t));return n}function wSt(t,e){var n,i;if(t.f){for(;e.Ob();)if(iO(i=(n=jz(e.Pb(),72)).ak(),99)&&jz(i,18).Bb&l7t&&(!t.e||i.Gj()!=IDe||0!=i.aj())&&null!=n.dd())return e.Ub(),!0;return!1}return e.Ob()}function xSt(t,e){var n,i;if(t.f){for(;e.Sb();)if(iO(i=(n=jz(e.Ub(),72)).ak(),99)&&jz(i,18).Bb&l7t&&(!t.e||i.Gj()!=IDe||0!=i.aj())&&null!=n.dd())return e.Pb(),!0;return!1}return e.Sb()}function RSt(t,e,n){var i,a,r,o,s,c;for(c=rNt(t.e.Tg(),e),i=0,s=t.i,a=jz(t.g,119),o=0;o<t.i;++o)if(r=a[o],c.rl(r.ak())){if(n==i)return o;++i,s=o+1}if(n==i)return s;throw $m(new Aw(e8t+n+s5t+i))}function _St(t,e){var n,a,r;if(0==t.f.c.length)return null;for(r=new dI,n=new Wf(t.f);n.a<n.c.c.length;)a=jz(J1(n),70).o,r.b=i.Math.max(r.b,a.a),r.a+=a.b;return r.a+=(t.f.c.length-1)*e,r}function kSt(t,e,n){var i,a,r;for(a=new oq(XO(lft(n).a.Kc(),new u));gIt(a);)!d6(i=jz(V6(a),17))&&(d6(i)||i.c.i.c!=i.d.i.c)&&(r=VOt(t,i,n,new rv)).c.length>1&&(e.c[e.c.length]=r)}function ESt(t){var e,n,i;for(jat(n=new Zk,t.o),i=new ov;0!=n.b;)YWt(t,e=jz(0==n.b?null:(EN(0!=n.b),Det(n,n.a.a)),508),!0)&&Wz(i.a,e);for(;0!=i.a.c.length;)YWt(t,e=jz(tut(i),508),!1)}function CSt(){CSt=D,wEe=new DT(lJt,0),fEe=new DT("BOOLEAN",1),mEe=new DT("INT",2),vEe=new DT("STRING",3),gEe=new DT("DOUBLE",4),pEe=new DT("ENUM",5),bEe=new DT("ENUMSET",6),yEe=new DT("OBJECT",7)}function SSt(t,e){var n,a,r,o,s;a=i.Math.min(t.c,e.c),o=i.Math.min(t.d,e.d),(r=i.Math.max(t.c+t.b,e.c+e.b))<a&&(n=a,a=r,r=n),(s=i.Math.max(t.d+t.a,e.d+e.a))<o&&(n=o,o=s,s=n),OH(t,a,o,r-a,s-o)}function TSt(){TSt=D,ZLe=Cst(Hx(zee,1),cZt,2,6,[f9t,g9t,p9t,b9t,m9t,y9t,Q7t]),GLe=Cst(Hx(zee,1),cZt,2,6,[f9t,"empty",g9t,P8t,"elementOnly"]),XLe=Cst(Hx(zee,1),cZt,2,6,[f9t,"preserve","replace",v9t]),KLe=new kH}function ASt(t,e,n){var i,a,r;if(e!=n){i=e;do{VP(t,i.c),(a=i.e)&&(PN(t,(r=i.d).b,r.d),VP(t,a.n),i=bG(a))}while(a);i=n;do{qP(t,i.c),(a=i.e)&&(jN(t,(r=i.d).b,r.d),qP(t,a.n),i=bG(a))}while(a)}}function DSt(t,e,n,i){var a,r,o,s,c;if(i.f.c+i.g.c==0)for(s=0,c=(o=t.a[t.c]).length;s<c;++s)YG(i,r=o[s],new wrt(t,r,n));return(a=jz(zA(AX(i.f,e)),663)).b=0,a.c=a.f,0==a.c||Rf(jz(OU(a.a,a.b),287)),a}function ISt(){ISt=D,Jle=new wS("MEDIAN_LAYER",0),tue=new wS("TAIL_LAYER",1),Xle=new wS("HEAD_LAYER",2),Qle=new wS("SPACE_EFFICIENT_LAYER",3),eue=new wS("WIDEST_LAYER",4),Kle=new wS("CENTER_LAYER",5)}function LSt(t){switch(t.g){case 0:case 1:case 2:return wWt(),cAe;case 3:case 4:case 5:return wWt(),EAe;case 6:case 7:case 8:return wWt(),SAe;case 9:case 10:case 11:return wWt(),sAe;default:return wWt(),CAe}}function OSt(t,e){var n;return 0!=t.c.length&&(n=tpt((u1(0,t.c.length),jz(t.c[0],17)).c.i),jQ(),n==(hyt(),uye)||n==lye||o6(DZ(new NU(null,new h1(t,16)),new $r),new eb(e)))}function MSt(t,e,n){var i,a,r;if(!t.b[e.g]){for(t.b[e.g]=!0,!(i=n)&&(i=new E7),MH(i.b,e),r=t.a[e.g].Kc();r.Ob();)(a=jz(r.Pb(),188)).b!=e&&MSt(t,a.b,i),a.c!=e&&MSt(t,a.c,i),MH(i.a,a);return i}return null}function NSt(){NSt=D,Zwe=new uT("ROOT_PROC",0),qwe=new uT("FAN_PROC",1),Ywe=new uT("NEIGHBORS_PROC",2),Wwe=new uT("LEVEL_HEIGHT",3),Gwe=new uT("NODE_POSITION_PROC",4),Vwe=new uT("DETREEIFYING_PROC",5)}function BSt(t,e){if(iO(e,239))return UI(t,jz(e,33));if(iO(e,186))return VI(t,jz(e,118));if(iO(e,439))return HI(t,jz(e,202));throw $m(new Pw(V7t+LEt(new Kw(Cst(Hx(Dte,1),zGt,1,5,[e])))))}function PSt(t,e,n){var i,a;if(this.f=t,h7(n,a=(i=jz(NY(t.b,e),283))?i.a:0),n>=(a/2|0))for(this.e=i?i.c:null,this.d=a;n++<a;)RQ(this);else for(this.c=i?i.b:null;n-- >0;)xQ(this);this.b=e,this.a=null}function FSt(t,e){var n,i;e.a?VMt(t,e):((n=jz(vF(t.b,e.b),57))&&n==t.a[e.b.f]&&n.a&&n.a!=e.b.a&&n.c.Fc(e.b),(i=jz(yF(t.b,e.b),57))&&t.a[i.f]==e.b&&i.a&&i.a!=e.b.a&&e.b.c.Fc(i),_M(t.b,e.b))}function jSt(t,e){var n,i;if(n=jz(oZ(t.b,e),124),jz(jz(c7(t.r,e),21),84).dc())return n.n.b=0,void(n.n.c=0);n.n.b=t.C.b,n.n.c=t.C.c,t.A.Hc((ypt(),FAe))&&vPt(t,e),i=Wmt(t,e),CBt(t,e)==(amt(),$Te)&&(i+=2*t.w),n.a.a=i}function $St(t,e){var n,i;if(n=jz(oZ(t.b,e),124),jz(jz(c7(t.r,e),21),84).dc())return n.n.d=0,void(n.n.a=0);n.n.d=t.C.d,n.n.a=t.C.a,t.A.Hc((ypt(),FAe))&&wPt(t,e),i=Ymt(t,e),CBt(t,e)==(amt(),$Te)&&(i+=2*t.w),n.a.b=i}function zSt(t,e){var n,i,a,r;for(r=new Lm,i=new Wf(e);i.a<i.c.c.length;)Wz(r,new NC(n=jz(J1(i),65),!0)),Wz(r,new NC(n,!1));mw((a=new cX(t)).a.a),t2(r,t.b,new Kw(Cst(Hx(oie,1),zGt,679,0,[a])))}function HSt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g;return s=t.a,d=t.b,c=e.a,h=e.b,l=n.a,f=n.b,new OT(((r=s*h-d*c)*(l-(u=i.a))-(o=l*(g=i.b)-f*u)*(s-c))/(a=(s-c)*(f-g)-(d-h)*(l-u)),(r*(f-g)-o*(d-h))/a)}function USt(t,e){var n,i,a;if(!t.d[e.p]){for(t.d[e.p]=!0,t.a[e.p]=!0,i=new oq(XO(dft(e).a.Kc(),new u));gIt(i);)!d6(n=jz(V6(i),17))&&(a=n.d.i,t.a[a.p]?Wz(t.b,n):USt(t,a));t.a[e.p]=!1}}function VSt(t,e,n){var i;switch(i=0,jz(yEt(e,(zYt(),vbe)),163).g){case 2:i=2*-n+t.a,++t.a;break;case 1:i=-n;break;case 3:i=n;break;case 4:i=2*n+t.b,++t.b}return IN(e,(lGt(),hhe))&&(i+=jz(yEt(e,hhe),19).a),i}function qSt(t,e,n){var i,a,r;for(n.zc(e,t),Wz(t.n,e),r=t.p.eg(e),e.j==t.p.fg()?Aft(t.e,r):Aft(t.j,r),nY(t),a=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(e),new Hg(e)])));gIt(a);)i=jz(V6(a),11),n._b(i)||qSt(t,i,n)}function WSt(t){var e,n;return jz(JIt(t,(cGt(),BCe)),21).Hc((ypt(),NAe))?(n=jz(JIt(t,zCe),21),e=new hI(jz(JIt(t,jCe),8)),n.Hc((QFt(),UAe))&&(e.a<=0&&(e.a=20),e.b<=0&&(e.b=20)),e):new HR}function YSt(t){var e,n,i;if(!t.b){for(i=new Tc,n=new aN(Bzt(t));n.e!=n.i.gc();)(e=jz(xmt(n),18)).Bb&l7t&&l8(i,e);aut(i),t.b=new LD((jz(Yet(GK((GY(),JIe).o),8),18),i.i),i.g),E6(t).b&=-9}return t.b}function GSt(t,e){var n,i,a,r,o,s;o=jz(Rvt(gq(e.k),O5(MAe,KQt,61,2,0,1)),122),Jvt(t,s=e.g,n=o4(e,o[0]),i=r4(e,o[1]))<=Jvt(t,s,a=o4(e,o[1]),r=r4(e,o[0]))?(e.a=n,e.c=i):(e.a=a,e.c=r)}function ZSt(t,e,n){var i,a,r;for(Akt(n,"Processor set neighbors",1),t.a=0==e.b.b?1:e.b.b,a=null,i=cmt(e.b,0);!a&&i.b!=i.d.c;)zw(RB(yEt(r=jz(d4(i),86),(HUt(),fxe))))&&(a=r);a&&LBt(t,new db(a),n),zCt(n)}function KSt(t){var e,n,i,a;return BHt(),e=-1==(i=HD(t,Kkt(35)))?t:t.substr(0,i),n=-1==i?null:t.substr(i+1),(a=Y4(wIe,e))?null!=n&&(a=Slt(a,(vG(n),n))):(a=YYt(e),a6(wIe,e,a),null!=n&&(a=Slt(a,n))),a}function XSt(t){var e,n,i,a,r,o,s;if(kK(),iO(t,54))for(r=0,a=t.gc()-1;r<a;++r,--a)e=t.Xb(r),t._c(r,t.Xb(a)),t._c(a,e);else for(n=t.Yc(),o=t.Zc(t.gc());n.Tb()<o.Vb();)i=n.Pb(),s=o.Ub(),n.Wb(s),o.Wb(i)}function JSt(t,e){var n,i,a;Akt(e,"End label pre-processing",1),n=Hw(_B(yEt(t,(zYt(),wme)))),i=Hw(_B(yEt(t,kme))),a=gI(jz(yEt(t,Vpe),103)),Kk(htt(new NU(null,new h1(t.b,16)),new un),new Mj(n,i,a)),zCt(e)}function QSt(t,e){var n,i,a,r,o,s;for(s=0,f4(r=new Im,e);r.b!=r.c;)for(s+=cwt((o=jz(fW(r),214)).d,o.e),a=new Wf(o.b);a.a<a.c.c.length;)i=jz(J1(a),37),(n=jz(OU(t.b,i.p),214)).s||(s+=QSt(t,n));return s}function tTt(t,e,n){var a,r;Fot(this),e==(fJ(),Lwe)?RW(this.r,t.c):RW(this.w,t.c),RW(n==Lwe?this.r:this.w,t.d),tSt(this,t),WEt(this,a=Cut(t.c),r=Cut(t.d),r),this.o=(pNt(),i.Math.abs(a-r)<.2)}function eTt(t,e,n){var i,a,r,o,s;if(null!=(o=jz(vot(t.a,8),1936)))for(a=0,r=o.length;a<r;++a)null.jm();i=n,1&t.a.Db||(s=new rG(t,n,e),i.ui(s)),iO(i,672)?jz(i,672).wi(t.a):i.ti()==t.a&&i.vi(null)}function nTt(){var t;return KOe?jz(ILt((WE(),HIe),E9t),1945):(cWt(),t=jz(iO(kJ((WE(),HIe),E9t),586)?kJ(HIe,E9t):new UG,586),KOe=!0,pYt(t),bGt(t),YG((YE(),KIe),t,new Fl),_wt(t),mQ(HIe,E9t,t),t)}function iTt(t,e,n,i){var a;return(a=Vkt(t,n,Cst(Hx(zee,1),cZt,2,6,[hKt,fKt,gKt,pKt,bKt,mKt,yKt]),e))<0&&(a=Vkt(t,n,Cst(Hx(zee,1),cZt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),e)),!(a<0||(i.d=a,0))}function aTt(t,e,n,i){var a;return(a=Vkt(t,n,Cst(Hx(zee,1),cZt,2,6,[hKt,fKt,gKt,pKt,bKt,mKt,yKt]),e))<0&&(a=Vkt(t,n,Cst(Hx(zee,1),cZt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),e)),!(a<0||(i.d=a,0))}function rTt(t){var e,n,i;for(FLt(t),i=new Lm,n=new Wf(t.a.a.b);n.a<n.c.c.length;)Wz(i,new lS(e=jz(J1(n),81),!0)),Wz(i,new lS(e,!1));Qyt(t.c),e2(i,t.b,new Kw(Cst(Hx(Koe,1),zGt,369,0,[t.c]))),mIt(t)}function oTt(t){var e,n,i,a;for(n=new Om,a=new Wf(t.d);a.a<a.c.c.length;)i=jz(J1(a),181),e=jz(i.We((lGt(),Vde)),17),AX(n.f,e)||YG(n,e,new RK(e)),Wz(jz(zA(AX(n.f,e)),456).b,i);return new QF(new Tf(n))}function sTt(t,e){var n,i,a,r,o;for(i=new f1(t.j.c.length),n=null,r=new Wf(t.j);r.a<r.c.c.length;)(a=jz(J1(r),11)).j!=n&&(i.b==i.c||jLt(i,n,e),o3(i),n=a.j),(o=yIt(a))&&h4(i,o);i.b==i.c||jLt(i,n,e)}function cTt(t,e){var n,i;for(i=new _2(t.b,0);i.b<i.d.gc();)EN(i.b<i.d.gc()),n=jz(i.d.Xb(i.c=i.b++),70),jz(yEt(n,(zYt(),Zpe)),272)==(Bet(),qSe)&&(lG(i),Wz(e.b,n),IN(n,(lGt(),Vde))||lct(n,Vde,t))}function lTt(t){var e,n,a;for(e=F4(new oq(XO(dft(t).a.Kc(),new u))),n=new oq(XO(uft(t).a.Kc(),new u));gIt(n);)a=F4(new oq(XO(dft(jz(V6(n),17).c.i).a.Kc(),new u))),e=i.Math.max(e,a);return nht(e)}function uTt(t,e,n){var i,a,r,o;for(Akt(n,"Processor arrange node",1),a=null,r=new Zk,i=cmt(e.b,0);!a&&i.b!=i.d.c;)zw(RB(yEt(o=jz(d4(i),86),(HUt(),fxe))))&&(a=o);n6(r,a,r.c.b,r.c),Kqt(t,r,yrt(n,1)),zCt(n)}function dTt(t,e,n){var i,a,r;i=jz(JIt(t,(cGt(),cCe)),21),a=0,r=0,e.a>n.a&&(i.Hc((f_t(),YEe))?a=(e.a-n.a)/2:i.Hc(ZEe)&&(a=e.a-n.a)),e.b>n.b&&(i.Hc((f_t(),XEe))?r=(e.b-n.b)/2:i.Hc(KEe)&&(r=e.b-n.b)),dEt(t,a,r)}function hTt(t,e,n,i,a,r,o,s,c,l,u,d,h){iO(t.Cb,88)&&DTt(E6(jz(t.Cb,88)),4),Oat(t,n),t.f=o,Iht(t,s),Oht(t,c),Dht(t,l),Lht(t,u),Qdt(t,d),Hht(t,h),Kdt(t,!0),Lnt(t,a),t.ok(r),Tut(t,e),null!=i&&(t.i=null,rat(t,i))}function fTt(t){var e,n;if(t.f){for(;t.n>0;){if(iO(n=(e=jz(t.k.Xb(t.n-1),72)).ak(),99)&&jz(n,18).Bb&l7t&&(!t.e||n.Gj()!=IDe||0!=n.aj())&&null!=e.dd())return!0;--t.n}return!1}return t.n>0}function gTt(t,e,n){if(t<0)return IPt($Gt,Cst(Hx(Dte,1),zGt,1,5,[n,nht(t)]));if(e<0)throw $m(new Pw(HGt+e));return IPt("%s (%s) must not be greater than size (%s)",Cst(Hx(Dte,1),zGt,1,5,[n,nht(t),nht(e)]))}function pTt(t,e,n,i,a,r){var o,s,c;if(i-n<7)Ift(e,n,i,r);else if(pTt(e,t,s=n+a,c=s+((o=i+a)-s>>1),-a,r),pTt(e,t,c,o,-a,r),r.ue(t[c-1],t[c])<=0)for(;n<i;)DY(e,n++,t[s++]);else Udt(t,s,c,o,e,n,i,r)}function bTt(t,e){var n,i,a;for(a=new Lm,i=new Wf(t.c.a.b);i.a<i.c.c.length;)n=jz(J1(i),57),e.Lb(n)&&(Wz(a,new TC(n,!0)),Wz(a,new TC(n,!1)));Jyt(t.e),t2(a,t.d,new Kw(Cst(Hx(oie,1),zGt,679,0,[t.e])))}function mTt(t,e){var n,i,a,r,o,s,c;for(c=e.d,a=e.b.j,s=new Wf(c);s.a<s.c.c.length;)for(o=jz(J1(s),101),r=O5(AMe,JXt,25,a.c.length,16,1),YG(t.b,o,r),n=o.a.d.p-1,i=o.c.d.p;n!=i;)r[n=(n+1)%a.c.length]=!0}function yTt(t,e){for(t.r=new jot(t.p),Zh(t.r,t),jat(t.r.j,t.j),yK(t.j),MH(t.j,e),MH(t.r.e,e),nY(t),nY(t.r);0!=t.f.c.length;)HL(jz(OU(t.f,0),129));for(;0!=t.k.c.length;)HL(jz(OU(t.k,0),129));return t.r}function vTt(t,e,n){var i,a,r;if(a=eet(t.Tg(),e),(i=e-t.Ah())<0){if(!a)throw $m(new Pw(s7t+e+c7t));if(!a.Ij())throw $m(new Pw(i7t+a.ne()+a7t));(r=t.Yg(a))>=0?t.sh(r,n):_Ot(t,a,n)}else Lft(t,i,a,n)}function wTt(t){var e,n,i,a;if(n=jz(t,49).qh())try{if(i=null,(e=ILt((WE(),HIe),kjt(Fft(n))))&&(a=e.rh())&&(i=a.Wk(qw(n.e))),i&&i!=t)return wTt(i)}catch(r){if(!iO(r=dst(r),60))throw $m(r)}return t}function xTt(t,e,n){var i,a,r;if(r=null==e?0:t.b.se(e),0==(i=t.a.get(r)??new Array).length)t.a.set(r,i);else if(a=lut(t,e,i))return a.ed(n);return DY(i,i.length,new EC(e,n)),++t.c,oX(t.b),null}function RTt(t,e){var n;return c2(t.a),CW(t.a,(Cat(),Zxe),Zxe),CW(t.a,Kxe,Kxe),fU(n=new j2,Kxe,(Sft(),eRe)),HA(JIt(e,(qwt(),kRe)))!==HA((zlt(),cRe))&&fU(n,Kxe,Qxe),fU(n,Kxe,tRe),aI(t.a,n),IUt(t.a,e)}function _Tt(t){if(!t)return ux(),lee;var e=t.valueOf?t.valueOf():t;if(e!==t){var n=uee[typeof e];return n?n(e):wut(typeof e)}return t instanceof Array||t instanceof i.Array?new xh(t):new kh(t)}function kTt(t,e,n){var a,r,o;switch(o=t.o,(r=(a=jz(oZ(t.p,n),244)).i).b=EAt(a),r.a=kAt(a),r.b=i.Math.max(r.b,o.a),r.b>o.a&&!e&&(r.b=o.a),r.c=-(r.b-o.a)/2,n.g){case 1:r.d=-r.a;break;case 3:r.d=o.b}F$t(a),U$t(a)}function ETt(t,e,n){var a,r,o;switch(o=t.o,(r=(a=jz(oZ(t.p,n),244)).i).b=EAt(a),r.a=kAt(a),r.a=i.Math.max(r.a,o.b),r.a>o.b&&!e&&(r.a=o.b),r.d=-(r.a-o.b)/2,n.g){case 4:r.c=-r.b;break;case 2:r.c=o.a}F$t(a),U$t(a)}function CTt(t,e){var n,i,a,r,o;if(!e.dc()){if(a=jz(e.Xb(0),128),1==e.gc())return void wNt(t,a,a,1,0,e);for(n=1;n<e.gc();)(a.j||!a.o)&&(r=mwt(e,n))&&(i=jz(r.a,19).a,wNt(t,a,o=jz(r.b,128),n,i,e),n=i+1,a=o)}}function STt(t){var e,n,i,a;for(mL(a=new QF(t.d),new qa),wBt(),e=Cst(Hx(Zle,1),IZt,270,0,[$le,Ule,jle,Wle,Hle,zle,qle,Vle]),n=0,i=new Wf(a);i.a<i.c.c.length;)SDt(jz(J1(i),101),e[n%e.length]),++n}function TTt(t,e){var n,i,a,r;if(xBt(),e.b<2)return!1;for(i=n=jz(d4(r=cmt(e,0)),8);r.b!=r.d.c;){if(a=jz(d4(r),8),!Nrt(t,i)||!Nrt(t,a))return!1;i=a}return!(!Nrt(t,i)||!Nrt(t,n))}function ATt(t,e){var n,i,a,r,o;return n=Bnt(o=t,"x"),J9(new zb(e).a,n),i=Bnt(o,"y"),Q9(new Hb(e).a,i),a=Bnt(o,S7t),ttt(new Ub(e).a,a),r=Bnt(o,C7t),ett(new Vb(e).a,r),r}function DTt(t,e){gPt(t,e),1&t.b&&(t.a.a=null),2&t.b&&(t.a.f=null),4&t.b&&(t.a.g=null,t.a.i=null),16&t.b&&(t.a.d=null,t.a.e=null),8&t.b&&(t.a.b=null),32&t.b&&(t.a.j=null,t.a.c=null)}function ITt(t,e){var n,i;if(i=0,e.length>0)try{i=djt(e,FZt,NGt)}catch(a){throw iO(a=dst(a),127)?$m(new I9(a)):$m(a)}return!t.a&&(t.a=new km(t)),i<(n=t.a).i&&i>=0?jz(Yet(n,i),56):null}function LTt(t,e){if(t<0)return IPt($Gt,Cst(Hx(Dte,1),zGt,1,5,["index",nht(t)]));if(e<0)throw $m(new Pw(HGt+e));return IPt("%s (%s) must be less than size (%s)",Cst(Hx(Dte,1),zGt,1,5,["index",nht(t),nht(e)]))}function OTt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],r.a?oD(r.a,r.b):r.a=new uM(r.d),aD(r.a,""+e);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function MTt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],r.a?oD(r.a,r.b):r.a=new uM(r.d),aD(r.a,""+e);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function NTt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],r.a?oD(r.a,r.b):r.a=new uM(r.d),aD(r.a,""+e);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function BTt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],r.a?oD(r.a,r.b):r.a=new uM(r.d),aD(r.a,""+e);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function PTt(t,e){var n,i,a,r,o,s;for(n=t.b.c.length,a=OU(t.b,e);2*e+1<n&&(s=r=2*e+1,(o=r+1)<n&&t.a.ue(OU(t.b,o),OU(t.b,r))<0&&(s=o),i=s,!(t.a.ue(a,OU(t.b,i))<0));)i6(t.b,e,OU(t.b,i)),e=i;i6(t.b,e,a)}function FTt(t,e,n,a,r,o){var s,c,l,u,d;for(HA(t)===HA(n)&&(t=t.slice(e,e+r),e=0),l=n,c=e,u=e+r;c<u;)r=(s=i.Math.min(c+1e4,u))-c,(d=t.slice(c,s)).splice(0,0,a,o?r:0),Array.prototype.splice.apply(l,d),c=s,a+=r}function jTt(t,e,n){var i,a;return i=n.d,a=n.e,t.g[i.d]<=t.i[e.d]&&t.i[e.d]<=t.i[i.d]&&t.g[a.d]<=t.i[e.d]&&t.i[e.d]<=t.i[a.d]?!(t.i[i.d]<t.i[a.d]):t.i[i.d]<t.i[a.d]}function $Tt(t){var e,n,i,a,r,o,s;if((i=t.a.c.length)>0)for(o=t.c.d,a=vO(qP(new OT((s=t.d.d).a,s.b),o),1/(i+1)),r=new OT(o.a,o.b),n=new Wf(t.a);n.a<n.c.c.length;)(e=jz(J1(n),559)).d.a=r.a,e.d.b=r.b,VP(r,a)}function zTt(t,e,n){var a,r,o,s,c,l;for(l=BKt,o=new Wf(UOt(t.b));o.a<o.c.c.length;)for(r=jz(J1(o),168),c=new Wf(UOt(e.b));c.a<c.c.c.length;)s=jz(J1(c),168),a=Sst(r.a,r.b,s.a,s.b,n),l=i.Math.min(l,a);return l}function HTt(t,e){if(!e)throw $m(new gy);if(t.j=e,!t.d)switch(t.j.g){case 1:t.a.a=t.o.a/2,t.a.b=0;break;case 2:t.a.a=t.o.a,t.a.b=t.o.b/2;break;case 3:t.a.a=t.o.a/2,t.a.b=t.o.b;break;case 4:t.a.a=0,t.a.b=t.o.b/2}}function UTt(t,e){var n,a;return iO(e.g,10)&&jz(e.g,10).k==(oCt(),kse)?BKt:l4(e)?i.Math.max(0,t.b/2-.5):(n=l2(e))?(a=Hw(_B(ept(n,(zYt(),Tme)))),i.Math.max(0,a/2-.5)):BKt}function VTt(t,e){var n,a;return iO(e.g,10)&&jz(e.g,10).k==(oCt(),kse)?BKt:l4(e)?i.Math.max(0,t.b/2-.5):(n=l2(e))?(a=Hw(_B(ept(n,(zYt(),Tme)))),i.Math.max(0,a/2-.5)):BKt}function qTt(t){var e,n,i,a;for(a=Ldt(t.d,t.e).Kc();a.Ob();)for(i=jz(a.Pb(),11),n=new Wf(t.e==(wWt(),SAe)?i.e:i.g);n.a<n.c.c.length;)!d6(e=jz(J1(n),17))&&e.c.i.c!=e.d.i.c&&(BCt(t,e),++t.f,++t.c)}function WTt(t,e){var n,i;if(e.dc())return kK(),kK(),cne;for(Wz(i=new Lm,nht(FZt)),n=1;n<t.f;++n)null==t.a&&fPt(t),t.a[n]&&Wz(i,nht(n));return 1==i.c.length?(kK(),kK(),cne):(Wz(i,nht(NGt)),gzt(e,i))}function YTt(t,e){var n,i,a,r,o,s;n=axt(e,s=e.c.i.k!=(oCt(),Sse)?e.d:e.c).i,a=jz(NY(t.k,s),121),i=t.i[n.p].a,AF(s.i)<(n.c?x9(n.c.a,n,0):-1)?(r=a,o=i):(r=i,o=a),qMt(aE(iE(rE(nE(new $y,0),4),r),o))}function GTt(t,e,n){var i,a,r;if(n)for(a=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);a.Ob();)(r=Dvt(t,wAt(ftt(n,jz(a.Pb(),19).a))))&&(!e.b&&(e.b=new cF(NDe,e,4,7)),l8(e.b,r))}function ZTt(t,e,n){var i,a,r;if(n)for(a=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);a.Ob();)(r=Dvt(t,wAt(ftt(n,jz(a.Pb(),19).a))))&&(!e.c&&(e.c=new cF(NDe,e,5,8)),l8(e.c,r))}function KTt(t,e,n){var i,a;i=e.a&t.f,e.b=t.b[i],t.b[i]=e,a=e.f&t.f,e.d=t.c[a],t.c[a]=e,n?(e.e=n.e,e.e?e.e.c=e:t.a=e,e.c=n.c,e.c?e.c.e=e:t.e=e):(e.e=t.e,e.c=null,t.e?t.e.c=e:t.a=e,t.e=e),++t.i,++t.g}function XTt(t){var e,n,i;if(e=t.Pb(),!t.Ob())return e;for(i=rD(oD(new Cx,"expected one element but was: <"),e),n=0;n<4&&t.Ob();n++)rD((i.a+=jGt,i),t.Pb());throw t.Ob()&&(i.a+=", ..."),i.a+=">",$m(new Pw(i.a))}function JTt(t,e){var n;e.d?e.d.b=e.b:t.a=e.b,e.b?e.b.d=e.d:t.e=e.d,e.e||e.c?(--(n=jz(NY(t.b,e.a),283)).a,e.e?e.e.c=e.c:n.b=e.c,e.c?e.c.e=e.e:n.c=e.e):((n=jz(b7(t.b,e.a),283)).a=0,++t.c),--t.d}function QTt(t){var e,n;return n=-t.a,e=Cst(Hx(SMe,1),YZt,25,15,[43,48,48,48,48]),n<0&&(e[0]=45,n=-n),e[1]=e[1]+((n/60|0)/10|0)&ZZt,e[2]=e[2]+(n/60|0)%10&ZZt,e[3]=e[3]+(n%60/10|0)&ZZt,e[4]=e[4]+n%10&ZZt,$pt(e,0,e.length)}function tAt(t,e,n){var i,a;for(i=e.d,a=n.d;i.a-a.a==0&&i.b-a.b==0;)i.a+=zLt(t,26)*iXt+zLt(t,27)*aXt-.5,i.b+=zLt(t,26)*iXt+zLt(t,27)*aXt-.5,a.a+=zLt(t,26)*iXt+zLt(t,27)*aXt-.5,a.b+=zLt(t,26)*iXt+zLt(t,27)*aXt-.5}function eAt(t){var e,n,i,a;for(t.g=new zft(jz(yY(MAe),290)),i=0,wWt(),n=cAe,e=0;e<t.j.c.length;e++)(a=jz(OU(t.j,e),11)).j!=n&&(i!=e&&mV(t.g,n,new nA(nht(i),nht(e))),n=a.j,i=e);mV(t.g,n,new nA(nht(i),nht(e)))}function nAt(t){var e,n,i,a,r;for(n=0,e=new Wf(t.b);e.a<e.c.c.length;)for(a=new Wf(jz(J1(e),29).a);a.a<a.c.c.length;)for((i=jz(J1(a),10)).p=n++,r=new Wf(i.j);r.a<r.c.c.length;)jz(J1(r),11).p=n++}function iAt(t,e,n,i,a){var r,o,s,c;if(e)for(o=e.Kc();o.Ob();)for(c=aPt(jz(o.Pb(),10),(rit(),Hye),n).Kc();c.Ob();)s=jz(c.Pb(),11),(r=jz(zA(AX(a.f,s)),112))||(r=new jot(t.d),i.c[i.c.length]=r,qSt(r,s,a))}function aAt(t,e){var n,i,a;if(!(a=jUt((TSt(),KLe),t.Tg(),e)))throw $m(new Pw(i7t+e.ne()+a7t));XE(),jz(a,66).Oj()||(a=X1(j9(KLe,a))),i=jz((n=t.Yg(a))>=0?t._g(n,!0,!0):aDt(t,a,!0),153),jz(i,215).ol(e)}function rAt(t){var e,n;return t>-0x800000000000&&t<0x800000000000?0==t?0:((e=t<0)&&(t=-t),n=CJ(i.Math.floor(i.Math.log(t)/.6931471805599453)),(!e||t!=i.Math.pow(2,n))&&++n,n):Got(uot(t))}function oAt(t){var e,n,i,a,r,o,s;for(r=new lI,n=new Wf(t);n.a<n.c.c.length;)o=(e=jz(J1(n),129)).a,s=e.b,!r.a._b(o)&&!r.a._b(s)&&(a=o,i=s,o.e.b+o.j.b>2&&s.e.b+s.j.b<=2&&(a=s,i=o),r.a.zc(a,r),a.q=i);return r}function sAt(t,e){var n,i,a;return Hot(i=new Iyt(t),e),lct(i,(lGt(),Yde),e),lct(i,(zYt(),tme),(Z_t(),WTe)),lct(i,vpe,(fyt(),AEe)),Fh(i,(oCt(),kse)),CQ(n=new SCt,i),HTt(n,(wWt(),SAe)),CQ(a=new SCt,i),HTt(a,sAe),i}function cAt(t){switch(t.g){case 0:return new Lw((sit(),Ave));case 1:return new hd;case 2:return new vd;default:throw $m(new Pw("No implementation is available for the crossing minimizer "+(null!=t.f?t.f:""+t.g)))}}function lAt(t,e){var n,i,a,r;for(t.c[e.p]=!0,Wz(t.a,e),r=new Wf(e.j);r.a<r.c.c.length;)for(n=new m7((a=jz(J1(r),11)).b);yL(n.a)||yL(n.b);)i=Qpt(a,jz(yL(n.a)?J1(n.a):J1(n.b),17)).i,t.c[i.p]||lAt(t,i)}function uAt(t){var e,n,a,r,o,s,c;for(s=0,n=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));n.e!=n.i.gc();)c=(e=jz(wmt(n),33)).g,r=e.f,a=i.Math.sqrt(c*c+r*r),s=i.Math.max(a,s),o=uAt(e),s=i.Math.max(o,s);return s}function dAt(){dAt=D,iAe=new qT("OUTSIDE",0),eAe=new qT("INSIDE",1),nAe=new qT("NEXT_TO_PORT_IF_POSSIBLE",2),tAe=new qT("ALWAYS_SAME_SIDE",3),QTe=new qT("ALWAYS_OTHER_SAME_SIDE",4),aAe=new qT("SPACE_EFFICIENT",5)}function hAt(t,e,n){var i,a,r,o;return Iit(i=B2(t,(QR(),a=new wv,n&&QOt(a,n),a),e),N2(e,H7t)),Ekt(e,i),sLt(e,i),ATt(e,i),r=L2(e,"ports"),COt((o=new pA(t,i)).a,o.b,r),Mct(t,e,i),rst(t,e,i),i}function fAt(t){var e,n;return n=-t.a,e=Cst(Hx(SMe,1),YZt,25,15,[43,48,48,58,48,48]),n<0&&(e[0]=45,n=-n),e[1]=e[1]+((n/60|0)/10|0)&ZZt,e[2]=e[2]+(n/60|0)%10&ZZt,e[4]=e[4]+(n%60/10|0)&ZZt,e[5]=e[5]+n%10&ZZt,$pt(e,0,e.length)}function gAt(t){var e;return e=Cst(Hx(SMe,1),YZt,25,15,[71,77,84,45,48,48,58,48,48]),t<=0&&(e[3]=43,t=-t),e[4]=e[4]+((t/60|0)/10|0)&ZZt,e[5]=e[5]+(t/60|0)%10&ZZt,e[7]=e[7]+(t%60/10|0)&ZZt,e[8]=e[8]+t%10&ZZt,$pt(e,0,e.length)}function pAt(t){var e,n,i,a,r;if(null==t)return VGt;for(r=new Iot(jGt,"[","]"),i=0,a=(n=t).length;i<a;++i)e=n[i],r.a?oD(r.a,r.b):r.a=new uM(r.d),aD(r.a,""+bq(e));return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function bAt(t,e){var n,a,r;for(r=NGt,a=new Wf(wft(e));a.a<a.c.c.length;)(n=jz(J1(a),213)).f&&!t.c[n.c]&&(t.c[n.c]=!0,r=i.Math.min(r,bAt(t,Oft(n,e))));return t.i[e.d]=t.j,t.g[e.d]=i.Math.min(r,t.j++),t.g[e.d]}function mAt(t,e){var n,i,a;for(a=jz(jz(c7(t.r,e),21),84).Kc();a.Ob();)(i=jz(a.Pb(),111)).e.b=(n=i.b).Xe((cGt(),aSe))?n.Hf()==(wWt(),cAe)?-n.rf().b-Hw(_B(n.We(aSe))):Hw(_B(n.We(aSe))):n.Hf()==(wWt(),cAe)?-n.rf().b:0}function yAt(t){var e,n,i,a,r,o,s;for(n=GI(t.e),r=vO(jN(jL(YI(t.e)),t.d*t.a,t.c*t.b),-.5),e=n.a-r.a,a=n.b-r.b,s=0;s<t.c;s++){for(i=e,o=0;o<t.d;o++)Yft(t.e,new VZ(i,a,t.a,t.b))&&jPt(t,o,s,!1,!0),i+=t.a;a+=t.b}}function vAt(t){var e,n,i;if(zw(RB(JIt(t,(cGt(),kCe))))){for(i=new Lm,n=new oq(XO(gOt(t).a.Kc(),new u));gIt(n);)ZAt(e=jz(V6(n),79))&&zw(RB(JIt(e,ECe)))&&(i.c[i.c.length]=e);return i}return kK(),kK(),cne}function wAt(t){var e;if(e=!1,iO(t,204))return e=!0,jz(t,204).a;if(!e&&iO(t,258)&&jz(t,258).a%1==0)return e=!0,nht(GD(jz(t,258).a));throw $m(new tx("Id must be a string or an integer: '"+t+"'."))}function xAt(t,e){var n,i,a,r,o,s;for(r=null,a=new nW((!t.a&&(t.a=new km(t)),t.a));hDt(a);)if(Kzt(o=(n=jz(rOt(a),56)).Tg()),null!=(i=(s=o.o)&&n.mh(s)?pF(ost(s),n.ah(s)):null)&&mF(i,e)){r=n;break}return r}function RAt(t,e,n){var i,a,r,o,s;if(dit(n,"occurrences"),0==n)return(s=jz(ddt(TK(t.a),e),14))?s.gc():0;if(!(o=jz(ddt(TK(t.a),e),14)))return 0;if(n>=(r=o.gc()))o.$b();else for(a=o.Kc(),i=0;i<n;i++)a.Pb(),a.Qb();return r}function _At(t,e,n){var i,a,r;return dit(n,"oldCount"),dit(0,"newCount"),((i=jz(ddt(TK(t.a),e),14))?i.gc():0)==n&&(dit(0,"count"),(r=-((a=jz(ddt(TK(t.a),e),14))?a.gc():0))>0?hx():r<0&&RAt(t,e,-r),!0)}function kAt(t){var e,n,i,a,r,o;if(o=0,0==t.b){for(e=0,a=0,r=(i=Wyt(t,!0)).length;a<r;++a)(n=i[a])>0&&(o+=n,++e);e>1&&(o+=t.c*(e-1))}else o=Bx(ert(IZ(AZ(IW(t.a),new kt),new Et)));return o>0?o+t.n.d+t.n.a:0}function EAt(t){var e,n,i,a,r,o;if(o=0,0==t.b)o=Bx(ert(IZ(AZ(IW(t.a),new Rt),new _t)));else{for(e=0,a=0,r=(i=Yyt(t,!0)).length;a<r;++a)(n=i[a])>0&&(o+=n,++e);e>1&&(o+=t.c*(e-1))}return o>0?o+t.n.b+t.n.c:0}function CAt(t,e){var n,a,r,o;for(n=(o=jz(oZ(t.b,e),124)).a,r=jz(jz(c7(t.r,e),21),84).Kc();r.Ob();)(a=jz(r.Pb(),111)).c&&(n.a=i.Math.max(n.a,YH(a.c)));if(n.a>0)switch(e.g){case 2:o.n.c=t.s;break;case 4:o.n.b=t.s}}function SAt(t,e){var n,i,a;return 0==(n=jz(yEt(e,(uPt(),Xre)),19).a-jz(yEt(t,Xre),19).a)?(i=qP(jL(jz(yEt(t,(kat(),roe)),8)),jz(yEt(t,ooe),8)),a=qP(jL(jz(yEt(e,roe),8)),jz(yEt(e,ooe),8)),Cht(i.a*i.b,a.a*a.b)):n}function TAt(t,e){var n,i,a;return 0==(n=jz(yEt(e,(SIt(),Dxe)),19).a-jz(yEt(t,Dxe),19).a)?(i=qP(jL(jz(yEt(t,(HUt(),Xwe)),8)),jz(yEt(t,Jwe),8)),a=qP(jL(jz(yEt(e,Xwe),8)),jz(yEt(e,Jwe),8)),Cht(i.a*i.b,a.a*a.b)):n}function AAt(t){var e,n;return(n=new Cx).a+="e_",null!=(e=Wot(t))&&(n.a+=""+e),t.c&&t.d&&(oD((n.a+=" ",n),bwt(t.c)),oD(rD((n.a+="[",n),t.c.i),"]"),oD((n.a+=e1t,n),bwt(t.d)),oD(rD((n.a+="[",n),t.d.i),"]")),n.a}function DAt(t){switch(t.g){case 0:return new gd;case 1:return new pd;case 2:return new fd;case 3:return new bd;default:throw $m(new Pw("No implementation is available for the layout phase "+(null!=t.f?t.f:""+t.g)))}}function IAt(t,e,n,a,r){var o;switch(o=0,r.g){case 1:o=i.Math.max(0,e.b+t.b-(n.b+a));break;case 3:o=i.Math.max(0,-t.b-a);break;case 2:o=i.Math.max(0,-t.a-a);break;case 4:o=i.Math.max(0,e.a+t.a-(n.a+a))}return o}function LAt(t,e,n){var i,a,r;if(n)for(r=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);r.Ob();)a=O2(n,jz(r.Pb(),19).a),L7t in a.a||O7t in a.a?cFt(t,a,e):RYt(t,a,e),EO(jz(NY(t.b,Zpt(a)),79))}function OAt(t){var e,n;switch(t.b){case-1:return!0;case 0:return(n=t.t)>1||-1==n||(e=Txt(t))&&(XE(),e.Cj()==R8t)?(t.b=-1,!0):(t.b=1,!1);default:return!1}}function MAt(t,e){var n,i,a,r,o;for(!e.s&&(e.s=new tW(PIe,e,21,17)),r=null,a=0,o=(i=e.s).i;a<o;++a)switch(n=jz(Yet(i,a),170),MG(j9(t,n))){case 2:case 3:!r&&(r=new Lm),r.c[r.c.length]=n}return r||(kK(),kK(),cne)}function NAt(t,e){var n,i,a,r;if(ZYt(t),0!=t.c||123!=t.a)throw $m(new ax(wGt((rL(),C5t))));if(r=112==e,i=t.d,(n=uN(t.i,125,i))<0)throw $m(new ax(wGt((rL(),S5t))));return a=lN(t.i,i,n),t.d=n+1,d8(a,r,512==(512&t.e))}function BAt(t){var e;if((e=jz(yEt(t,(zYt(),zpe)),314))==(Ait(),lue))throw $m(new ix("The hierarchy aware processor "+e+" in child node "+t+" is only allowed if the root node specifies the same hierarchical processor."))}function PAt(t,e){var n,i,a,r;for(Hj(),n=null,a=e.Kc();a.Ob();)!(i=jz(a.Pb(),128)).o&&(Wz((r=new Czt(FL(i.a),dH(i.a),null,jz(i.d.a.ec().Kc().Pb(),17))).c,i.a),t.c[t.c.length]=r,n&&Wz(n.d,r),n=r)}function FAt(t,e){var n,i,a;if(e)if(4&e.i)for(i="[]",n=e.c;;n=n.c){if(!(4&n.i)){zit(t,a=Vw((xB(n),n.o+i))),Mnt(t,a);break}i+="[]"}else zit(t,a=Vw((xB(e),e.o))),Mnt(t,a);else zit(t,null),Mnt(t,null);t.yk(e)}function jAt(t,e,n,i,a){var r,o,s,c;return HA(c=cB(t,jz(a,56)))!==HA(a)?(s=jz(t.g[n],72),wO(t,n,ckt(t,n,r=X4(e,c))),mI(t.e)&&(P_t(o=IX(t,9,r.ak(),a,c,i,!1),new L9(t.e,9,t.c,s,r,i,!1)),D9(o)),c):a}function $At(t,e,n){var i,a,r,o,s,c;for(i=jz(c7(t.c,e),15),a=jz(c7(t.c,n),15),r=i.Zc(i.gc()),o=a.Zc(a.gc());r.Sb()&&o.Sb();)if((s=jz(r.Ub(),19))!=(c=jz(o.Ub(),19)))return xL(s.a,c.a);return r.Ob()||o.Ob()?r.Ob()?1:-1:0}function zAt(t,e){var n,i;try{return q1(t.a,e)}catch(a){if(iO(a=dst(a),32)){try{if(i=djt(e,FZt,NGt),n=YR(t.a),i>=0&&i<n.length)return n[i]}catch(r){if(!iO(r=dst(r),127))throw $m(r)}return null}throw $m(a)}}function HAt(t,e){var n,i,a;if(a=jUt((TSt(),KLe),t.Tg(),e))return XE(),jz(a,66).Oj()||(a=X1(j9(KLe,a))),i=jz((n=t.Yg(a))>=0?t._g(n,!0,!0):aDt(t,a,!0),153),jz(i,215).ll(e);throw $m(new Pw(i7t+e.ne()+o7t))}function UAt(){var t;return QE(),YLe?jz(ILt((WE(),HIe),G8t),1939):(ND(zte,new Tl),QVt(),t=jz(iO(kJ((WE(),HIe),G8t),547)?kJ(HIe,G8t):new VG,547),YLe=!0,sGt(t),_Gt(t),YG((YE(),KIe),t,new Vc),mQ(HIe,G8t,t),t)}function VAt(t,e){var n,i,a,r;t.j=-1,mI(t.e)?(n=t.i,r=0!=t.i,i7(t,e),i=new L9(t.e,3,t.c,null,e,n,r),a=e.Qk(t.e,t.c,null),(a=T_t(t,e,a))?(a.Ei(i),a.Fi()):hot(t.e,i)):(i7(t,e),(a=e.Qk(t.e,t.c,null))&&a.Fi())}function qAt(t,e){var n,i,a;if(a=0,(i=e[0])>=t.length)return-1;for(d1(i,t.length),n=t.charCodeAt(i);n>=48&&n<=57&&(a=10*a+(n-48),!(++i>=t.length));)d1(i,t.length),n=t.charCodeAt(i);return i>e[0]?e[0]=i:a=-1,a}function WAt(t){var e,n,a,r,o;return n=r=jz(t.a,19).a,a=o=jz(t.b,19).a,e=i.Math.max(i.Math.abs(r),i.Math.abs(o)),r<=0&&r==o?(n=0,a=o-1):r==-e&&o!=e?(n=o,a=r,o>=0&&++n):(n=-o,a=r),new nA(nht(n),nht(a))}function YAt(t,e,n,i){var a,r,o,s,c,l;for(a=0;a<e.o;a++)for(r=a-e.j+n,o=0;o<e.p;o++)if(c=r,l=s=o-e.k+i,c+=t.j,l+=t.k,c>=0&&l>=0&&c<t.o&&l<t.p&&(!yvt(e,a,o)&&nvt(t,r,s)||mvt(e,a,o)&&!ivt(t,r,s)))return!0;return!1}function GAt(t,e,n){var i,a,r,o;r=t.c,o=t.d,a=(Dct(Cst(Hx(EEe,1),cZt,8,0,[r.i.n,r.n,r.a])).b+Dct(Cst(Hx(EEe,1),cZt,8,0,[o.i.n,o.n,o.a])).b)/2,i=null,i=r.j==(wWt(),sAe)?new OT(e+r.i.c.c.a+n,a):new OT(e-n,a),BN(t.a,0,i)}function ZAt(t){var e,n,i;for(e=null,n=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c)])));gIt(n);)if(i=Ckt(jz(V6(n),82)),e){if(e!=i)return!1}else e=i;return!0}function KAt(t,e,n){var i;if(++t.j,e>=t.i)throw $m(new Aw(o5t+e+s5t+t.i));if(n>=t.i)throw $m(new Aw(c5t+n+s5t+t.i));return i=t.g[n],e!=n&&(e<n?rHt(t.g,e,t.g,e+1,n-e):rHt(t.g,n+1,t.g,n,e-n),DY(t.g,e,i),t.ei(e,i,n),t.ci()),i}function XAt(t,e,n){var i;if(i=jz(t.c.xc(e),14))return!!i.Fc(n)&&(++t.d,!0);if((i=t.ic(e)).Fc(n))return++t.d,t.c.zc(e,i),!0;throw $m(new g6("New Collection violated the Collection spec"))}function JAt(t){var e,n,i;return t<0?0:0==t?32:(n=16-(e=(i=-(t>>16))>>16&16),n+=e=(i=(t>>=e)-256)>>16&8,n+=e=(i=(t<<=e)-FKt)>>16&4,(n+=e=(i=(t<<=e)-lZt)>>16&2)+2-(e=(i=(t<<=e)>>14)&~(i>>1)))}function QAt(t){var e,n,i,a;for(_K(),kre=new Lm,_re=new Om,Rre=new Lm,!t.a&&(t.a=new tW(UDe,t,10,11)),MWt(e=t.a),a=new AO(e);a.e!=a.i.gc();)i=jz(wmt(a),33),-1==x9(kre,i,0)&&(n=new Lm,Wz(Rre,n),Bbt(i,n));return Rre}function tDt(t,e,n){var i,a,r,o;t.a=n.b.d,iO(e,352)?(t6(r=HCt(a=aBt(jz(e,79),!1,!1)),i=new Lg(t)),G$t(r,a),null!=e.We((cGt(),TCe))&&t6(jz(e.We(TCe),74),i)):((o=jz(e,470)).Hg(o.Dg()+t.a.a),o.Ig(o.Eg()+t.a.b))}function eDt(t,e){var n,a,r,o,s,c,l,u;for(u=Hw(_B(yEt(e,(zYt(),Lme)))),l=t[0].n.a+t[0].o.a+t[0].d.c+u,c=1;c<t.length;c++)a=t[c].n,r=t[c].o,n=t[c].d,(o=a.a-n.b-l)<0&&(a.a-=o),(s=e.f).a=i.Math.max(s.a,a.a+r.a),l=a.a+r.a+n.c+u}function nDt(t,e){var n,i,a,r,o,s;return i=jz(jz(NY(t.g,e.a),46).a,65),a=jz(jz(NY(t.g,e.b),46).a,65),(n=QHt(r=i.b,o=a.b))>=0?n:(s=uG(qP(new OT(o.c+o.b/2,o.d+o.a/2),new OT(r.c+r.b/2,r.d+r.a/2))),-(Kjt(r,o)-1)*s)}function iDt(t,e,n){var i;Kk(new NU(null,(!n.a&&(n.a=new tW(PDe,n,6,6)),new h1(n.a,16))),new tA(t,e)),Kk(new NU(null,(!n.n&&(n.n=new tW(HDe,n,1,7)),new h1(n.n,16))),new eA(t,e)),(i=jz(JIt(n,(cGt(),TCe)),74))&&Kat(i,t,e)}function aDt(t,e,n){var i,a,r;if(r=jUt((TSt(),KLe),t.Tg(),e))return XE(),jz(r,66).Oj()||(r=X1(j9(KLe,r))),a=jz((i=t.Yg(r))>=0?t._g(i,!0,!0):aDt(t,r,!0),153),jz(a,215).hl(e,n);throw $m(new Pw(i7t+e.ne()+o7t))}function rDt(t,e,n,i){var a,r,o,s,c;if(a=t.d[e])if(r=a.g,c=a.i,null!=i){for(s=0;s<c;++s)if((o=jz(r[s],133)).Sh()==n&&Odt(i,o.cd()))return o}else for(s=0;s<c;++s)if(HA((o=jz(r[s],133)).cd())===HA(i))return o;return null}function oDt(t,e){var n;if(e<0)throw $m(new Tw("Negative exponent"));if(0==e)return Jee;if(1==e||cgt(t,Jee)||cgt(t,nne))return t;if(!uIt(t,0)){for(n=1;!uIt(t,n);)++n;return Ltt(mgt(n*e),oDt(U6(t,n),e))}return ykt(t,e)}function sDt(t,e){var n,i,a;if(HA(t)===HA(e))return!0;if(null==t||null==e||t.length!=e.length)return!1;for(n=0;n<t.length;++n)if(i=t[n],a=e[n],!(HA(i)===HA(a)||null!=i&&Odt(i,a)))return!1;return!0}function cDt(t){var e,n,i;for(vE(),this.b=Goe,this.c=(jdt(),$Se),this.f=(yE(),Uoe),this.a=t,Qx(this,new Se),wMt(this),i=new Wf(t.b);i.a<i.c.c.length;)(n=jz(J1(i),81)).d||(e=new Cbt(Cst(Hx(Yoe,1),zGt,81,0,[n])),Wz(t.a,e))}function lDt(t,e,n){var i,a,r,o,s,c;if(!t||0==t.c.length)return null;for(r=new BX(e,!n),a=new Wf(t);a.a<a.c.c.length;)i=jz(J1(a),70),qCt(r,(gE(),new jg(i)));return(o=r.i).a=(c=r.n,r.e.b+c.d+c.a),o.b=(s=r.n,r.e.a+s.b+s.c),r}function uDt(t){var e,n,i,a,r,o,s;for(cI(s=J0(t.a),new Sn),n=null,r=0,o=(a=s).length;r<o&&(i=a[r]).k==(oCt(),kse);++r)((e=jz(yEt(i,(lGt(),Gde)),61))==(wWt(),SAe)||e==sAe)&&(n&&jz(yEt(n,ihe),15).Fc(i),n=i)}function dDt(t,e,n){var i,a,r,o,s,c;u1(e,t.c.length),s=jz(t.c[e],329),s7(t,e),s.b/2>=n&&(i=e,r=(c=(s.c+s.a)/2)-n,s.c<=c-n&&vV(t,i++,new vz(s.c,r)),(o=c+n)<=s.a&&(a=new vz(o,s.a),IQ(i,t.c.length),_C(t.c,i,a)))}function hDt(t){var e;if(t.c||null!=t.g){if(null==t.g)return!0;if(0==t.i)return!1;e=jz(t.g[t.i-1],47)}else t.d=t.si(t.f),l8(t,t.d),e=t.d;return e==t.b&&null.km>=null.jm()?(rOt(t),hDt(t)):e.Ob()}function fDt(t,e,n){var i,a,r,o;if(!(o=n)&&(o=IH(new qv,0)),Akt(o,HQt,1),IVt(t.c,e),1==(r=BVt(t.a,e)).gc())GHt(jz(r.Xb(0),37),o);else for(a=1/r.gc(),i=r.Kc();i.Ob();)GHt(jz(i.Pb(),37),yrt(o,a));xx(t.a,r,e),jBt(e),zCt(o)}function gDt(t){if(this.a=t,t.c.i.k==(oCt(),kse))this.c=t.c,this.d=jz(yEt(t.c.i,(lGt(),Gde)),61);else{if(t.d.i.k!=kse)throw $m(new Pw("Edge "+t+" is not an external edge."));this.c=t.d,this.d=jz(yEt(t.d.i,(lGt(),Gde)),61)}}function pDt(t,e){var n,i;i=t.b,t.b=e,4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,3,i,t.b)),e?e!=t&&(Oat(t,e.zb),Int(t,e.d),jit(t,null==(n=e.c??e.zb)||mF(n,e.zb)?null:n)):(Oat(t,null),Int(t,0),jit(t,null))}function bDt(t){var e,n;if(t.f){for(;t.n<t.o;){if(iO(n=(e=jz(t.j?t.j.pi(t.n):t.k.Xb(t.n),72)).ak(),99)&&jz(n,18).Bb&l7t&&(!t.e||n.Gj()!=IDe||0!=n.aj())&&null!=e.dd())return!0;++t.n}return!1}return t.n<t.o}function mDt(t,e){var n;this.e=(WY(),yY(t),WY(),Ogt(t)),this.c=(yY(e),Ogt(e)),aM(this.e.Hd().dc()==this.c.Hd().dc()),this.d=mft(this.e),this.b=mft(this.c),n=vU(Dte,[cZt,zGt],[5,1],5,[this.e.Hd().gc(),this.c.Hd().gc()],2),this.a=n,git(this)}function yDt(t){return!Jte&&(Jte=ZWt()),'"'+t.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,(function(t){return SJ(t)}))+'"'}function vDt(t){var e,n;for(CK(),this.b=lie,this.c=die,this.g=(pE(),sie),this.d=(jdt(),$Se),this.a=t,vMt(this),n=new Wf(t.b);n.a<n.c.c.length;)!(e=jz(J1(n),57)).a&&SM(Wnt(new qy,Cst(Hx(cie,1),zGt,57,0,[e])),t),e.e=new gX(e.d)}function wDt(t){var e,n,i,a,r;for(a=t.e.c.length,i=O5(Bte,QJt,15,a,0,1),r=new Wf(t.e);r.a<r.c.c.length;)i[jz(J1(r),144).b]=new Zk;for(n=new Wf(t.c);n.a<n.c.c.length;)i[(e=jz(J1(n),282)).c.b].Fc(e),i[e.d.b].Fc(e);return i}function xDt(t){var e,n,i,a,r,o;for(o=sN(t.c.length),a=new Wf(t);a.a<a.c.c.length;){for(i=jz(J1(a),10),r=new Ny,n=new oq(XO(dft(i).a.Kc(),new u));gIt(n);)(e=jz(V6(n),17)).c.i==e.d.i||RW(r,e.d.i);o.c[o.c.length]=r}return o}function RDt(t,e){var n,i,a,r,o;if(e>=(o=null==(n=jz(vot(t.a,4),126))?0:n.length))throw $m(new QP(e,o));return a=n[e],1==o?i=null:(rHt(n,0,i=O5(hIe,n8t,415,o-1,0,1),0,e),(r=o-e-1)>0&&rHt(n,e+1,i,e,r)),jbt(t,i),eTt(t,e,a),a}function _Dt(){_Dt=D,lOe=jz(Yet(GK((i_(),fOe).qb),6),34),oOe=jz(Yet(GK(fOe.qb),3),34),sOe=jz(Yet(GK(fOe.qb),4),34),cOe=jz(Yet(GK(fOe.qb),5),18),s_t(lOe),s_t(oOe),s_t(sOe),s_t(cOe),uOe=new Kw(Cst(Hx(PIe,1),O8t,170,0,[lOe,oOe]))}function kDt(t,e){var n;this.d=new uv,this.b=e,this.e=new hI(e.qf()),n=t.u.Hc((dAt(),nAe)),t.u.Hc(eAe)?t.D?this.a=n&&!e.If():this.a=!0:t.u.Hc(iAe)?this.a=!!n&&!(e.zf().Kc().Ob()||e.Bf().Kc().Ob()):this.a=!1}function EDt(t,e){var n,i,a,r;for(n=t.o.a,r=jz(jz(c7(t.r,e),21),84).Kc();r.Ob();)(a=jz(r.Pb(),111)).e.a=(i=a.b).Xe((cGt(),aSe))?i.Hf()==(wWt(),SAe)?-i.rf().a-Hw(_B(i.We(aSe))):n+Hw(_B(i.We(aSe))):i.Hf()==(wWt(),SAe)?-i.rf().a:n}function CDt(t,e){var n,i,a;n=jz(yEt(t,(zYt(),Vpe)),103),a=jz(JIt(e,rme),61),(i=jz(yEt(t,tme),98))!=(Z_t(),ZTe)&&i!=KTe?a==(wWt(),CAe)&&(a=A$t(e,n))==CAe&&(a=lgt(n)):a=WHt(e)>0?lgt(n):_ht(lgt(n)),Kmt(e,rme,a)}function SDt(t,e){var n,i,a,r,o;for(o=t.j,e.a!=e.b&&mL(o,new Wa),a=o.c.length/2|0,i=0;i<a;i++)u1(i,o.c.length),(r=jz(o.c[i],113)).c&&HTt(r.d,e.a);for(n=a;n<o.c.length;n++)u1(n,o.c.length),(r=jz(o.c[n],113)).c&&HTt(r.d,e.b)}function TDt(t,e,n){var i,a,r;return i=t.c[e.c.p][e.p],a=t.c[n.c.p][n.p],null!=i.a&&null!=a.a?((r=Rq(i.a,a.a))<0?oFt(t,e,n):r>0&&oFt(t,n,e),r):null!=i.a?(oFt(t,e,n),-1):null!=a.a?(oFt(t,n,e),1):0}function ADt(t,e){var n,i,a,r;t.ej()?(n=t.Vi(),r=t.fj(),++t.j,t.Hi(n,t.oi(n,e)),i=t.Zi(3,null,e,n,r),t.bj()&&(a=t.cj(e,null))?(a.Ei(i),a.Fi()):t.$i(i)):(tG(t,e),t.bj()&&(a=t.cj(e,null))&&a.Fi())}function DDt(t,e){var n,i,a,r,o;for(o=rNt(t.e.Tg(),e),a=new bc,n=jz(t.g,119),r=t.i;--r>=0;)i=n[r],o.rl(i.ak())&&l8(a,i);!rYt(t,a)&&mI(t.e)&&Iy(t,e.$j()?IX(t,6,e,(kK(),cne),null,-1,!1):IX(t,e.Kj()?2:1,e,null,null,-1,!1))}function IDt(){var t,e;for(IDt=D,rne=O5(sne,cZt,91,32,0,1),one=O5(sne,cZt,91,32,0,1),t=1,e=0;e<=18;e++)rne[e]=Qbt(t),one[e]=Qbt(yq(t,e)),t=aft(t,5);for(;e<one.length;e++)rne[e]=Ltt(rne[e-1],rne[1]),one[e]=Ltt(one[e-1],(ABt(),tne))}function LDt(t,e){var n,i,a,r,o;return t.a==(XEt(),ade)||(r=e.a.c,n=e.a.c+e.a.b,!(e.j&&(i=e.A,o=i.c.c.a-i.o.a/2,a=r-(i.n.a+i.o.a),a>o)||e.q&&(i=e.C,o=i.c.c.a-i.o.a/2,a=i.n.a-n,a>o)))}function ODt(t,e){Akt(e,"Partition preprocessing",1),Kk(jz(E3(AZ(htt(AZ(new NU(null,new h1(t.a,16)),new yi),new vi),new wi),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15).Oc(),new xi),zCt(e)}function MDt(t){var e,n,i,a,r,o;for(zQ(),n=new b3,i=new Wf(t.e.b);i.a<i.c.c.length;)for(r=new Wf(jz(J1(i),29).a);r.a<r.c.c.length;)a=jz(J1(r),10),(e=jz(utt(n,o=t.g[a.p]),15))||Xbt(n,o,e=new Lm),e.Fc(a);return n}function NDt(t,e){var n,i,a,r,o;for(a=e.b.b,t.a=O5(Bte,QJt,15,a,0,1),t.b=O5(AMe,JXt,25,a,16,1),o=cmt(e.b,0);o.b!=o.d.c;)r=jz(d4(o),86),t.a[r.g]=new Zk;for(i=cmt(e.a,0);i.b!=i.d.c;)n=jz(d4(i),188),t.a[n.b.g].Fc(n),t.a[n.c.g].Fc(n)}function BDt(t){var e;return 64&t.Db?CLt(t):((e=new lM(CLt(t))).a+=" (startX: ",b_(e,t.j),e.a+=", startY: ",b_(e,t.k),e.a+=", endX: ",b_(e,t.b),e.a+=", endY: ",b_(e,t.c),e.a+=", identifier: ",iD(e,t.d),e.a+=")",e.a)}function PDt(t){var e;return 64&t.Db?wdt(t):((e=new lM(wdt(t))).a+=" (ordered: ",y_(e,0!=(256&t.Bb)),e.a+=", unique: ",y_(e,0!=(512&t.Bb)),e.a+=", lowerBound: ",m_(e,t.s),e.a+=", upperBound: ",m_(e,t.t),e.a+=")",e.a)}function FDt(t,e,n,i,a,r,o,s){var c;return iO(t.Cb,88)&&DTt(E6(jz(t.Cb,88)),4),Oat(t,n),t.f=i,Iht(t,a),Oht(t,r),Dht(t,o),Lht(t,!1),Qdt(t,!0),Hht(t,s),Kdt(t,!0),Lnt(t,0),t.b=0,Ont(t,1),(c=zkt(t,e,null))&&c.Fi(),Uht(t,!1),t}function jDt(t,e){var n,a;return jz(kJ(t.a,e),512)||(n=new y6(e),v6(),OF(n,jDt(t,lN(a=qne?null:n.c,0,i.Math.max(0,mM(a,Kkt(46)))))),0==(qne?null:n.c).length&&UB(n,new Y),mQ(t.a,qne?null:n.c,n),n)}function $Dt(t,e){var n;t.b=e,t.g=new Lm,n=XDt(t.b),t.e=n,t.f=n,t.c=zw(RB(yEt(t.b,(Fxt(),wie)))),t.a=_B(yEt(t.b,(cGt(),iCe))),null==t.a&&(t.a=1),Hw(t.a)>1?t.e*=Hw(t.a):t.f/=Hw(t.a),Sut(t),pbt(t),_Pt(t),lct(t.b,(Rmt(),gre),t.g)}function zDt(t,e,n){var i,a,r,o,s;for(i=0,s=n,e||(i=n*(t.c.length-1),s*=-1),r=new Wf(t);r.a<r.c.c.length;){for(lct(a=jz(J1(r),10),(zYt(),vpe),(fyt(),AEe)),a.o.a=i,o=NCt(a,(wWt(),sAe)).Kc();o.Ob();)jz(o.Pb(),11).n.a=i;i+=s}}function HDt(t,e,n){var i,a,r;t.ej()?(r=t.fj(),Tdt(t,e,n),i=t.Zi(3,null,n,e,r),t.bj()?(a=t.cj(n,null),t.ij()&&(a=t.jj(n,a)),a?(a.Ei(i),a.Fi()):t.$i(i)):t.$i(i)):(Tdt(t,e,n),t.bj()&&(a=t.cj(n,null))&&a.Fi())}function UDt(t,e,n){var i,a,r,o,s,c;return(s=t.Gk(n))!=n?(o=t.g[e],c=s,wO(t,e,t.oi(e,c)),r=o,t.gi(e,c,r),t.rk()&&(i=n,a=t.dj(i,null),!jz(s,49).eh()&&(a=t.cj(c,a)),a&&a.Fi()),mI(t.e)&&Iy(t,t.Zi(9,n,s,e,!1)),s):n}function VDt(t,e){var n,i,a;for(n=new Wf(t.a.a);n.a<n.c.c.length;)jz(J1(n),189).g=!0;for(a=new Wf(t.a.b);a.a<a.c.c.length;)(i=jz(J1(a),81)).k=zw(RB(t.e.Kb(new nA(i,e)))),i.d.g=i.d.g&zw(RB(t.e.Kb(new nA(i,e))));return t}function qDt(t){var e,n,i,a,r;if(n=new ZF(e=jz(YR(MAe),9),jz(kP(e,e.length),9),0),r=jz(yEt(t,(lGt(),xhe)),10))for(a=new Wf(r.j);a.a<a.c.c.length;)HA(yEt(i=jz(J1(a),11),fhe))===HA(t)&&UM(new m7(i.b))&&sat(n,i.j);return n}function WDt(t,e,n){var i,a,r,o;if(!t.d[n.p]){for(i=new oq(XO(dft(n).a.Kc(),new u));gIt(i);){for(r=new oq(XO(uft(o=jz(V6(i),17).d.i).a.Kc(),new u));gIt(r);)(a=jz(V6(r),17)).c.i==e&&(t.a[a.p]=!0);WDt(t,e,o)}t.d[n.p]=!0}}function YDt(t,e){var n,i,a,r,o,s,c;if(1==(i=bft(254&t.Db)))t.Eb=null;else if(r=ent(t.Eb),2==i)a=Bvt(t,e),t.Eb=r[0==a?1:0];else{for(o=O5(Dte,zGt,1,i-1,5,1),n=2,s=0,c=0;n<=128;n<<=1)n==e?++s:t.Db&n&&(o[c++]=r[s++]);t.Eb=o}t.Db&=~e}function GDt(t,e){var n,i,a,r,o;for(!e.s&&(e.s=new tW(PIe,e,21,17)),r=null,a=0,o=(i=e.s).i;a<o;++a)switch(n=jz(Yet(i,a),170),MG(j9(t,n))){case 4:case 5:case 6:!r&&(r=new Lm),r.c[r.c.length]=n}return r||(kK(),kK(),cne)}function ZDt(t){var e;switch(e=0,t){case 105:e=2;break;case 109:e=8;break;case 115:e=4;break;case 120:e=16;break;case 117:e=32;break;case 119:e=64;break;case 70:e=256;break;case 72:e=128;break;case 88:e=512;break;case 44:e=w7t}return e}function KDt(t,e,n,i,a){var r,o,s,c;if(HA(t)!==HA(e)||i!=a)for(s=0;s<i;s++){for(o=0,r=t[s],c=0;c<a;c++)o=ift(ift(aft(t0(r,qKt),t0(e[c],qKt)),t0(n[s+c],qKt)),t0(fV(o),qKt)),n[s+c]=fV(o),o=wq(o,32);n[s+a]=fV(o)}else Tjt(t,i,n)}function XDt(t){var e,n,a,r,o,s,c,l,u,d,h;for(d=0,u=0,c=(r=t.a).a.gc(),a=r.a.ec().Kc();a.Ob();)(n=jz(a.Pb(),561)).b&&Gzt(n),d+=(h=(e=n.a).a)+(s=e.b),u+=h*s;return l=i.Math.sqrt(400*c*u-4*u+d*d)+d,0==(o=2*(100*c-1))?l:l/o}function JDt(t,e){0!=e.b&&(isNaN(t.s)?t.s=Hw((EN(0!=e.b),_B(e.a.a.c))):t.s=i.Math.min(t.s,Hw((EN(0!=e.b),_B(e.a.a.c)))),isNaN(t.c)?t.c=Hw((EN(0!=e.b),_B(e.c.b.c))):t.c=i.Math.max(t.c,Hw((EN(0!=e.b),_B(e.c.b.c)))))}function QDt(t){var e,n,i;for(e=null,n=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c)])));gIt(n);)if(i=Ckt(jz(V6(n),82)),e){if(e!=KJ(i))return!0}else e=KJ(i);return!1}function tIt(t,e){var n,i,a,r;t.ej()?(n=t.i,r=t.fj(),i7(t,e),i=t.Zi(3,null,e,n,r),t.bj()?(a=t.cj(e,null),t.ij()&&(a=t.jj(e,a)),a?(a.Ei(i),a.Fi()):t.$i(i)):t.$i(i)):(i7(t,e),t.bj()&&(a=t.cj(e,null))&&a.Fi())}function eIt(t,e,n){var i,a,r;t.ej()?(r=t.fj(),++t.j,t.Hi(e,t.oi(e,n)),i=t.Zi(3,null,n,e,r),t.bj()&&(a=t.cj(n,null))?(a.Ei(i),a.Fi()):t.$i(i)):(++t.j,t.Hi(e,t.oi(e,n)),t.bj()&&(a=t.cj(n,null))&&a.Fi())}function nIt(t){var e,n,i,a;for(a=t.length,e=null,i=0;i<a;i++)d1(i,t.length),HD(".*+?{[()|\\^$",Kkt(n=t.charCodeAt(i)))>=0?(e||(e=new Ex,i>0&&iD(e,t.substr(0,i))),e.a+="\\",LY(e,n&ZZt)):e&&LY(e,n&ZZt);return e?e.a:t}function iIt(t){var e;if(!t.a)throw $m(new Fw("IDataType class expected for layout option "+t.f));if(null==(e=S4(t.a)))throw $m(new Fw("Couldn't create new instance of property '"+t.f+"'. "+i6t+(xB(uIe),uIe.k)+a6t));return jz(e,414)}function aIt(t){var e,n,i,a,r;return(r=t.eh())&&r.kh()&&(a=tdt(t,r))!=r?(n=t.Vg(),i=(e=t.Vg())>=0?t.Qg(null):t.eh().ih(t,-1-e,null,null),t.Rg(jz(a,49),n),i&&i.Fi(),t.Lg()&&t.Mg()&&n>-1&&hot(t,new Jq(t,9,n,r,a)),a):r}function rIt(t){var e,n,i,a,r,o,s;for(r=0,a=t.f.e,n=0;n<a.c.length;++n)for(u1(n,a.c.length),o=jz(a.c[n],144),i=n+1;i<a.c.length;++i)u1(i,a.c.length),s=jz(a.c[i],144),e=W5(o.d,s.d)-t.a[o.b][s.b],r+=t.i[o.b][s.b]*e*e;return r}function oIt(t,e){var n;if(!IN(e,(zYt(),vbe))&&(n=Rxt(jz(yEt(e,tle),360),jz(yEt(t,vbe),163)),lct(e,tle,n),!gIt(new oq(XO(lft(e).a.Kc(),new u)))))switch(n.g){case 1:lct(e,vbe,(_ft(),Fhe));break;case 2:lct(e,vbe,(_ft(),$he))}}function sIt(t,e){var n;yPt(t),t.a=(n=new ox,Kk(new NU(null,new h1(e.d,16)),new Tp(n)),n),kNt(t,jz(yEt(e.b,(zYt(),ebe)),376)),wyt(t),AIt(t),Ixt(t),xyt(t),xUt(t,e),Kk(htt(new NU(null,Z0(kY(t.b).a)),new Ga),new Za),e.a=!1,t.a=null}function cIt(){gEt.call(this,v7t,(QR(),fDe)),this.p=null,this.a=null,this.f=null,this.n=null,this.g=null,this.c=null,this.i=null,this.j=null,this.d=null,this.b=null,this.e=null,this.k=null,this.o=null,this.s=null,this.q=!1,this.r=!1}function lIt(){lIt=D,eIe=new _A(U1t,0),JDe=new _A("INSIDE_SELF_LOOPS",1),QDe=new _A("MULTI_EDGES",2),XDe=new _A("EDGE_LABELS",3),tIe=new _A("PORTS",4),ZDe=new _A("COMPOUND",5),GDe=new _A("CLUSTERS",6),KDe=new _A("DISCONNECTED",7)}function uIt(t,e){var n,i,a;if(0==e)return 0!=(1&t.a[0]);if(e<0)throw $m(new Tw("Negative bit address"));if((a=e>>5)>=t.d)return t.e<0;if(n=t.a[a],e=1<<(31&e),t.e<0){if(a<(i=Srt(t)))return!1;n=i==a?-n:~n}return 0!=(n&e)}function dIt(t,e,n,i){var a;jz(n.b,65),jz(n.b,65),jz(i.b,65),jz(i.b,65),LH(a=qP(jL(jz(n.b,65).c),jz(i.b,65).c),zTt(jz(n.b,65),jz(i.b,65),a)),jz(i.b,65),jz(i.b,65),jz(i.b,65).c.a,a.a,jz(i.b,65).c.b,a.b,jz(i.b,65),Aet(i.a,new Rz(t,e,i))}function hIt(t,e){var n,i,a,r,o,s,c;if(r=e.e)for(n=aIt(r),i=jz(t.g,674),o=0;o<t.i;++o)if(Hyt(c=i[o])==n&&(!c.d&&(c.d=new DO(WIe,c,1)),a=c.d,(s=jz(n.ah(pFt(r,r.Cb,r.Db>>16)),15).Xc(r))<a.i))return hIt(t,jz(Yet(a,s),87));return e}function fIt(t,e,n){var i,a=EGt,r=a[t],o=r instanceof Array?r[0]:null;r&&!o?kGt=r:(!(i=e&&e.prototype)&&(i=EGt[e]),(kGt=zJ(i)).hm=n,!e&&(kGt.im=A),a[t]=kGt);for(var s=3;s<arguments.length;++s)arguments[s].prototype=kGt;o&&(kGt.gm=o)}function gIt(t){for(var e;!jz(yY(t.a),47).Ob();){if(t.d=slt(t),!t.d)return!1;if(t.a=jz(t.d.Pb(),47),iO(t.a,39)){if(e=jz(t.a,39),t.a=e.a,!t.b&&(t.b=new Im),f4(t.b,t.d),e.b)for(;!Ww(e.b);)f4(t.b,jz(gW(e.b),47));t.d=e.d}}return!0}function pIt(t,e){var n,i,a,r;for(a=null==e?0:t.b.se(e),n=t.a.get(a)??new Array,r=0;r<n.length;r++)if(i=n[r],t.b.re(e,i.cd()))return 1==n.length?(n.length=0,bP(t.a,a)):n.splice(r,1),--t.c,oX(t.b),i.dd();return null}function bIt(t,e){var n,i,a,r;for(a=1,e.j=!0,r=null,i=new Wf(wft(e));i.a<i.c.c.length;)n=jz(J1(i),213),t.c[n.c]||(t.c[n.c]=!0,r=Oft(n,e),n.f?a+=bIt(t,r):!r.j&&n.a==n.e.e-n.d.e&&(n.f=!0,RW(t.p,n),a+=bIt(t,r)));return a}function mIt(t){var e,n,a;for(n=new Wf(t.a.a.b);n.a<n.c.c.length;)e=jz(J1(n),81),vG(0),(a=0)>0&&(!(fI(t.a.c)&&e.n.d)&&!(gI(t.a.c)&&e.n.b)&&(e.g.d+=i.Math.max(0,a/2-.5)),(!fI(t.a.c)||!e.n.a)&&(!gI(t.a.c)||!e.n.c)&&(e.g.a-=a-1))}function yIt(t){var e,n,a,r,o;if(o=Pjt(t,r=new Lm),e=jz(yEt(t,(lGt(),xhe)),10))for(a=new Wf(e.j);a.a<a.c.c.length;)HA(yEt(n=jz(J1(a),11),fhe))===HA(t)&&(o=i.Math.max(o,Pjt(n,r)));return 0==r.c.length||lct(t,dhe,o),-1!=o?r:null}function vIt(t,e,n){var i,a,r,o,s,c;a=(i=(r=jz(OU(e.e,0),17).c).i).k,s=(o=(c=jz(OU(n.g,0),17).d).i).k,a==(oCt(),Cse)?lct(t,(lGt(),che),jz(yEt(i,che),11)):lct(t,(lGt(),che),r),lct(t,(lGt(),lhe),s==Cse?jz(yEt(o,lhe),11):c)}function wIt(t,e){var n,i,a,r;for(n=(r=fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15))))&t.b.length-1,a=null,i=t.b[n];i;a=i,i=i.a)if(i.d==r&&hG(i.i,e))return a?a.a=i.a:t.b[n]=i.a,vx(i.c,i.f),ey(i.b,i.e),--t.f,++t.e,!0;return!1}function xIt(t,e){var n,i,a,r,o;return e&=63,(i=0!=((n=t.h)&SKt))&&(n|=-1048576),e<22?(o=n>>e,r=t.m>>e|n<<22-e,a=t.l>>e|t.m<<22-e):e<44?(o=i?CKt:0,r=n>>e-22,a=t.m>>e-22|n<<44-e):(o=i?CKt:0,r=i?EKt:0,a=n>>e-44),_L(a&EKt,r&EKt,o&CKt)}function RIt(t){var e,n,a,r,o,s;for(this.c=new Lm,this.d=t,a=BKt,r=BKt,e=PKt,n=PKt,s=cmt(t,0);s.b!=s.d.c;)o=jz(d4(s),8),a=i.Math.min(a,o.a),r=i.Math.min(r,o.b),e=i.Math.max(e,o.a),n=i.Math.max(n,o.b);this.a=new VZ(a,r,e-a,n-r)}function _It(t,e){var n,i,a,r;for(i=new Wf(t.b);i.a<i.c.c.length;)for(r=new Wf(jz(J1(i),29).a);r.a<r.c.c.length;)for((a=jz(J1(r),10)).k==(oCt(),Ese)&&l$t(a,e),n=new oq(XO(dft(a).a.Kc(),new u));gIt(n);)mst(jz(V6(n),17),e)}function kIt(t){var e,n,i;this.c=t,i=jz(yEt(t,(zYt(),Vpe)),103),e=Hw(_B(yEt(t,xpe))),n=Hw(_B(yEt(t,Bme))),i==(jdt(),FSe)||i==jSe||i==$Se?this.b=e*n:this.b=1/(e*n),this.j=Hw(_B(yEt(t,Ame))),this.e=Hw(_B(yEt(t,Tme))),this.f=t.b.c.length}function EIt(t){var e,n;for(t.e=O5(TMe,lKt,25,t.p.c.length,15,1),t.k=O5(TMe,lKt,25,t.p.c.length,15,1),n=new Wf(t.p);n.a<n.c.c.length;)e=jz(J1(n),10),t.e[e.p]=F4(new oq(XO(uft(e).a.Kc(),new u))),t.k[e.p]=F4(new oq(XO(dft(e).a.Kc(),new u)))}function CIt(t){var e,n,i,a,r;for(i=0,t.q=new Lm,e=new Ny,r=new Wf(t.p);r.a<r.c.c.length;){for((a=jz(J1(r),10)).p=i,n=new oq(XO(dft(a).a.Kc(),new u));gIt(n);)RW(e,jz(V6(n),17).d.i);e.a.Bc(a),Wz(t.q,new DU(e)),e.a.$b(),++i}}function SIt(){SIt=D,Txe=new WI(20),Sxe=new qI((cGt(),qCe),Txe),Oxe=new qI(ISe,20),wxe=new qI(iCe,gQt),Dxe=new qI(pSe,nht(1)),Lxe=new qI(vSe,(cM(),!0)),xxe=uCe,_xe=BCe,kxe=jCe,Exe=zCe,Rxe=MCe,Cxe=VCe,Axe=lSe,Bot(),Mxe=yxe,Ixe=bxe}function TIt(t,e){var n,i,a,r,o,s,c,l,u;if(t.a.f>0&&iO(e,42)&&(t.a.qj(),r=null==(c=(l=jz(e,42)).cd())?0:Qct(c),o=tP(t.a,r),n=t.a.d[o]))for(i=jz(n.g,367),u=n.i,s=0;s<u;++s)if((a=i[s]).Sh()==r&&a.Fb(l))return TIt(t,l),!0;return!1}function AIt(t){var e,n,i,a;for(a=jz(c7(t.a,(L_t(),Ele)),15).Kc();a.Ob();)eY(t,i=jz(a.Pb(),101),(n=(e=gq(i.k)).Hc((wWt(),cAe))?e.Hc(sAe)?e.Hc(EAe)?e.Hc(SAe)?null:Dle:Lle:Ile:Ale)[0],(Sat(),Mle),0),eY(t,i,n[1],Nle,1),eY(t,i,n[2],Ble,1)}function DIt(t,e){var n,i;XNt(t,e,n=yFt(e)),nkt(t.a,jz(yEt(bG(e.b),(lGt(),khe)),230)),hjt(t),N_t(t,e),i=O5(TMe,lKt,25,e.b.j.c.length,15,1),cqt(t,e,(wWt(),cAe),i,n),cqt(t,e,sAe,i,n),cqt(t,e,EAe,i,n),cqt(t,e,SAe,i,n),t.a=null,t.c=null,t.b=null}function IIt(){IIt=D,Eft(),o_e=new DD(R3t,s_e=QRe),a_e=new DD(_3t,(cM(),!0)),nht(-1),e_e=new DD(k3t,nht(-1)),nht(-1),n_e=new DD(E3t,nht(-1)),r_e=new DD(C3t,!1),c_e=new DD(S3t,!0),i_e=new DD(T3t,!1),l_e=new DD(A3t,-1)}function LIt(t,e,n){switch(e){case 7:return!t.e&&(t.e=new cF(BDe,t,7,4)),cUt(t.e),!t.e&&(t.e=new cF(BDe,t,7,4)),void pY(t.e,jz(n,14));case 8:return!t.d&&(t.d=new cF(BDe,t,8,5)),cUt(t.d),!t.d&&(t.d=new cF(BDe,t,8,5)),void pY(t.d,jz(n,14))}VRt(t,e,n)}function OIt(t,e){var n,i,a,r,o;if(HA(e)===HA(t))return!0;if(!iO(e,15)||(o=jz(e,15),t.gc()!=o.gc()))return!1;for(r=o.Kc(),i=t.Kc();i.Ob();)if(n=i.Pb(),a=r.Pb(),!(HA(n)===HA(a)||null!=n&&Odt(n,a)))return!1;return!0}function MIt(t,e){var n,i,a,r;for((r=jz(E3(htt(htt(new NU(null,new h1(e.b,16)),new Pn),new Fn),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15)).Jc(new jn),n=0,a=r.Kc();a.Ob();)-1==(i=jz(a.Pb(),11)).p&&jIt(t,i,n++)}function NIt(t){switch(t.g){case 0:return new Ed;case 1:return new ld;case 2:return new cd;case 3:return new wA;case 4:return new PV;default:throw $m(new Pw("No implementation is available for the node placer "+(null!=t.f?t.f:""+t.g)))}}function BIt(t){switch(t.g){case 0:return new BV;case 1:return new dd;case 2:return new ed;case 3:return new nd;case 4:return new RA;default:throw $m(new Pw("No implementation is available for the cycle breaker "+(null!=t.f?t.f:""+t.g)))}}function PIt(){PIt=D,mRe=new DD(o3t,nht(0)),yRe=new DD(s3t,0),zlt(),fRe=new DD(c3t,gRe=cRe),nht(0),hRe=new DD(l3t,nht(1)),$rt(),vRe=new DD(u3t,wRe=WRe),M8(),xRe=new DD(d3t,RRe=rRe),Avt(),pRe=new DD(h3t,bRe=HRe)}function FIt(t,e,n){var i;i=null,e&&(i=e.d),KRt(t,new fS(e.n.a-i.b+n.a,e.n.b-i.d+n.b)),KRt(t,new fS(e.n.a-i.b+n.a,e.n.b+e.o.b+i.a+n.b)),KRt(t,new fS(e.n.a+e.o.a+i.c+n.a,e.n.b-i.d+n.b)),KRt(t,new fS(e.n.a+e.o.a+i.c+n.a,e.n.b+e.o.b+i.a+n.b))}function jIt(t,e,n){var i,a,r;for(e.p=n,r=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(e),new Hg(e)])));gIt(r);)-1==(i=jz(V6(r),11)).p&&jIt(t,i,n);if(e.i.k==(oCt(),Cse))for(a=new Wf(e.i.j);a.a<a.c.c.length;)(i=jz(J1(a),11))!=e&&-1==i.p&&jIt(t,i,n)}function $It(t){var e,n,a,r,o;if(r=jz(E3(DQ(a1(t)),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15),a=JJt,r.gc()>=2)for(e=_B((n=r.Kc()).Pb());n.Ob();)o=e,e=_B(n.Pb()),a=i.Math.min(a,(vG(e),e-(vG(o),o)));return a}function zIt(t,e){var n,i,a,r,o;n6(i=new Zk,e,i.c.b,i.c);do{for(EN(0!=i.b),n=jz(Det(i,i.a.a),86),t.b[n.g]=1,r=cmt(n.d,0);r.b!=r.d.c;)o=(a=jz(d4(r),188)).c,1==t.b[o.g]?MH(t.a,a):2==t.b[o.g]?t.b[o.g]=1:n6(i,o,i.c.b,i.c)}while(0!=i.b)}function HIt(t,e){var n,i,a;if(HA(e)===HA(yY(t)))return!0;if(!iO(e,15)||(i=jz(e,15),(a=t.gc())!=i.gc()))return!1;if(iO(i,54)){for(n=0;n<a;n++)if(!hG(t.Xb(n),i.Xb(n)))return!1;return!0}return qyt(t.Kc(),i.Kc())}function UIt(t,e){var n;if(0!=t.c.length){if(2==t.c.length)l$t((u1(0,t.c.length),jz(t.c[0],10)),(Wwt(),xTe)),l$t((u1(1,t.c.length),jz(t.c[1],10)),RTe);else for(n=new Wf(t);n.a<n.c.c.length;)l$t(jz(J1(n),10),e);t.c=O5(Dte,zGt,1,0,5,1)}}function VIt(t){var e,n;if(2!=t.c.length)throw $m(new Fw("Order only allowed for two paths."));u1(0,t.c.length),e=jz(t.c[0],17),u1(1,t.c.length),n=jz(t.c[1],17),e.d.i!=n.c.i&&(t.c=O5(Dte,zGt,1,0,5,1),t.c[t.c.length]=n,t.c[t.c.length]=e)}function qIt(t,e){var n,i,a,r,o;for(i=new b3,r=k3(new Kw(t.g)).a.ec().Kc();r.Ob();){if(!(a=jz(r.Pb(),10))){TH(e,"There are no classes in a balanced layout.");break}(n=jz(utt(i,o=t.j[a.p]),15))||Xbt(i,o,n=new Lm),n.Fc(a)}return i}function WIt(t,e,n){var i,a,r,o;if(n)for(a=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);a.Ob();)(r=O2(n,jz(a.Pb(),19).a))&&(o=Pnt(N2(r,A7t),e),YG(t.f,o,r),H7t in r.a&&Iit(o,N2(r,H7t)),Ekt(r,o),ATt(r,o))}function YIt(t,e){var n,i,a;for(Akt(e,"Port side processing",1),a=new Wf(t.a);a.a<a.c.c.length;)azt(jz(J1(a),10));for(n=new Wf(t.b);n.a<n.c.c.length;)for(i=new Wf(jz(J1(n),29).a);i.a<i.c.c.length;)azt(jz(J1(i),10));zCt(e)}function GIt(t,e,n){var i,a,r,o,s;if(!(a=t.f)&&(a=jz(t.a.a.ec().Kc().Pb(),57)),jxt(a,e,n),1!=t.a.a.gc())for(i=e*n,o=t.a.a.ec().Kc();o.Ob();)(r=jz(o.Pb(),57))!=a&&((s=l4(r)).f.d?(r.d.d+=i+uJt,r.d.a-=i+uJt):s.f.a&&(r.d.a-=i+uJt))}function ZIt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g;return s=n-t,c=a-e,l=(o=i.Math.atan2(s,c))+XJt,u=o-XJt,d=r*i.Math.sin(l)+t,f=r*i.Math.cos(l)+e,h=r*i.Math.sin(u)+t,g=r*i.Math.cos(u)+e,r7(Cst(Hx(EEe,1),cZt,8,0,[new OT(d,f),new OT(h,g)]))}function KIt(t,e,n,a){var r,o,s,c,l,u,d,h;r=n,o=d=e;do{o=t.a[o.p],h=t.g[o.p],c=Hw(t.p[h.p])+Hw(t.d[o.p])-o.d.d,(l=Dit(o,a))&&(u=t.g[l.p],s=Hw(t.p[u.p])+Hw(t.d[l.p])+l.o.b+l.d.a,r=i.Math.min(r,c-(s+BL(t.k,o,l))))}while(d!=o);return r}function XIt(t,e,n,a){var r,o,s,c,l,u,d,h;r=n,o=d=e;do{o=t.a[o.p],h=t.g[o.p],s=Hw(t.p[h.p])+Hw(t.d[o.p])+o.o.b+o.d.a,(l=Fst(o,a))&&(u=t.g[l.p],c=Hw(t.p[u.p])+Hw(t.d[l.p])-l.d.d,r=i.Math.min(r,c-(s+BL(t.k,o,l))))}while(d!=o);return r}function JIt(t,e){var n;return!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),apt(t.o,e)??(iO(n=e.wg(),4)&&(null==n?(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),Ypt(t.o,e)):(!t.o&&(t.o=new y8((SYt(),_De),YDe,t,0)),mRt(t.o,e,n))),n)}function QIt(){QIt=D,TTe=new HT("H_LEFT",0),STe=new HT("H_CENTER",1),DTe=new HT("H_RIGHT",2),NTe=new HT("V_TOP",3),MTe=new HT("V_CENTER",4),OTe=new HT("V_BOTTOM",5),ITe=new HT("INSIDE",6),LTe=new HT("OUTSIDE",7),ATe=new HT("H_PRIORITY",8)}function tLt(t){var e,n,i,a,r,o,s;if((e=t.Hh(G8t))&&null!=(s=kB(apt((!e.b&&(e.b=new KN((pGt(),yLe),VLe,e)),e.b),"settingDelegates")))){for(n=new Lm,r=0,o=(a=wFt(s,"\\w+")).length;r<o;++r)i=a[r],n.c[n.c.length]=i;return n}return kK(),kK(),cne}function eLt(t,e){var n,i,a,r,o,s,c;if(!e.f)throw $m(new Pw("The input edge is not a tree edge."));for(r=null,a=NGt,i=new Wf(t.d);i.a<i.c.c.length;)s=(n=jz(J1(i),213)).d,c=n.e,jTt(t,s,e)&&!jTt(t,c,e)&&(o=c.e-s.e-n.a)<a&&(a=o,r=n);return r}function nLt(t){var e,n,i,a,r,o;if(!(t.f.e.c.length<=1)){e=0,a=rIt(t),n=BKt;do{for(e>0&&(a=n),o=new Wf(t.f.e);o.a<o.c.c.length;)!zw(RB(yEt(r=jz(J1(o),144),(ixt(),yoe))))&&(i=Jjt(t,r),VP(vD(r.d),i));n=rIt(t)}while(!KY(t,e++,a,n))}}function iLt(t,e){var n,i,a;for(Akt(e,"Layer constraint preprocessing",1),n=new Lm,a=new _2(t.a,0);a.b<a.d.gc();)EN(a.b<a.d.gc()),Yst(i=jz(a.d.Xb(a.c=a.b++),10))&&(akt(i),n.c[n.c.length]=i,lG(a));0==n.c.length||lct(t,(lGt(),Jde),n),zCt(e)}function aLt(t,e){var n,i,a,r,o;for(r=t.g.a,o=t.g.b,i=new Wf(t.d);i.a<i.c.c.length;)a=(n=jz(J1(i),70)).n,t.a==(Ast(),yle)||t.i==(wWt(),sAe)?a.a=r:t.a==vle||t.i==(wWt(),SAe)?a.a=r+t.j.a-n.o.a:a.a=r+(t.j.a-n.o.a)/2,a.b=o,VP(a,e),o+=n.o.b+t.e}function rLt(t,e,n){var i,a,r,o;for(Akt(n,"Processor set coordinates",1),t.a=0==e.b.b?1:e.b.b,r=null,i=cmt(e.b,0);!r&&i.b!=i.d.c;)zw(RB(yEt(o=jz(d4(i),86),(HUt(),fxe))))&&(r=o,(a=o.e).a=jz(yEt(o,gxe),19).a,a.b=0);FCt(t,Mst(r),yrt(n,1)),zCt(n)}function oLt(t,e,n){var i,a,r;for(Akt(n,"Processor determine the height for each level",1),t.a=0==e.b.b?1:e.b.b,a=null,i=cmt(e.b,0);!a&&i.b!=i.d.c;)zw(RB(yEt(r=jz(d4(i),86),(HUt(),fxe))))&&(a=r);a&&JNt(t,r7(Cst(Hx(Uwe,1),tQt,86,0,[a])),n),zCt(n)}function sLt(t,e){var n,i,a,r,o;(r=M2(t,"individualSpacings"))&&(!E5(e,(cGt(),CSe))&&(n=new Js,Kmt(e,CSe,n)),a=jz(JIt(e,CSe),373),i=null,(o=r)&&(i=new Rk(o,xat(o,O5(zee,cZt,2,0,6,1)))),i&&t6(i,new fA(o,a)))}function cLt(t,e){var n,i,a,r,o,s;return r=null,(X7t in(o=t).a||J7t in o.a||N7t in o.a)&&(s=Hst(e),i=M2(o,X7t),Agt(new $b(s).a,i),a=M2(o,J7t),Tgt(new Kb(s).a,a),n=L2(o,N7t),C_t(new Qb(s).a,n),r=n),r}function lLt(t,e){var n,i,a;if(e===t)return!0;if(iO(e,543)){if(a=jz(e,835),t.a.d!=a.a.d||xZ(t).gc()!=xZ(a).gc())return!1;for(i=xZ(a).Kc();i.Ob();)if(i1(t,(n=jz(i.Pb(),416)).a.cd())!=jz(n.a.dd(),14).gc())return!1;return!0}return!1}function uLt(t){var e,n,i,a;return e=i=jz(t.a,19).a,n=a=jz(t.b,19).a,0==i&&0==a?n-=1:-1==i&&a<=0?(e=0,n-=2):i<=0&&a>0?(e-=1,n-=1):i>=0&&a<0?(e+=1,n+=1):i>0&&a>=0?(e-=1,n+=1):(e+=1,n-=1),new nA(nht(e),nht(n))}function dLt(t,e){return t.c<e.c?-1:t.c>e.c?1:t.b<e.b?-1:t.b>e.b?1:t.a!=e.a?Qct(t.a)-Qct(e.a):t.d==(G3(),zve)&&e.d==$ve?-1:t.d==$ve&&e.d==zve?1:0}function hLt(t,e){var n,i,a,r,o;return o=(r=e.a).c.i==e.b?r.d:r.c,i=r.c.i==e.b?r.c:r.d,(a=Vgt(t.a,o,i))>0&&a<JJt?(n=KIt(t.a,i.i,a,t.c),int(t.a,i.i,-n),n>0):a<0&&-a<JJt&&(n=XIt(t.a,i.i,-a,t.c),int(t.a,i.i,n),n>0)}function fLt(t,e,n,i){var a,r,o,s,c,l;for(a=(e-t.d)/t.c.c.length,r=0,t.a+=n,t.d=e,l=new Wf(t.c);l.a<l.c.c.length;)s=(c=jz(J1(l),33)).g,o=c.f,Cnt(c,c.i+r*a),Snt(c,c.j+i*n),Ent(c,c.g+a),knt(c,t.a),++r,dTt(c,new OT(c.g,c.f),new OT(s,o))}function gLt(t){var e,n,i,a,r,o,s;if(null==t)return null;for(s=t.length,o=O5(IMe,m7t,25,a=(s+1)/2|0,15,1),s%2!=0&&(o[--a]=JBt((d1(s-1,t.length),t.charCodeAt(s-1)))),n=0,i=0;n<a;++n)e=JBt(lZ(t,i++)),r=JBt(lZ(t,i++)),o[n]=(e<<4|r)<<24>>24;return o}function pLt(t){if(t.pe()){var e=t.c;return e.qe()?t.o="["+e.n:e.pe()?t.o="["+e.ne():t.o="[L"+e.ne()+";",t.b=e.me()+"[]",void(t.k=e.oe()+"[]")}var n=t.j,i=t.d;i=i.split("/"),t.o=jpt(".",[n,jpt("$",i)]),t.b=jpt(".",[n,jpt(".",i)]),t.k=i[i.length-1]}function bLt(t,e){var n,i,a,r,o;for(o=null,r=new Wf(t.e.a);r.a<r.c.c.length;)if((a=jz(J1(r),121)).b.a.c.length==a.g.a.c.length){for(i=a.e,o=eSt(a),n=a.e-jz(o.a,19).a+1;n<a.e+jz(o.b,19).a;n++)e[n]<e[i]&&(i=n);e[i]<e[a.e]&&(--e[a.e],++e[i],a.e=i)}}function mLt(t){var e,n,a,r,o,s,c;for(a=BKt,n=PKt,e=new Wf(t.e.b);e.a<e.c.c.length;)for(o=new Wf(jz(J1(e),29).a);o.a<o.c.c.length;)r=jz(J1(o),10),s=(c=Hw(t.p[r.p]))+Hw(t.b[t.g[r.p].p]),a=i.Math.min(a,c),n=i.Math.max(n,s);return n-a}function yLt(t,e,n,i){var a,r,o,s,c;for(s=0,c=(a=xFt(t,e)).gc();s<c;++s)if(mF(i,vZ(j9(t,r=jz(a.Xb(s),170)))))if(o=wZ(j9(t,r)),null==n){if(null==o)return r}else if(mF(n,o))return r;return null}function vLt(t,e,n,i){var a,r,o,s,c;for(s=0,c=(a=RFt(t,e)).gc();s<c;++s)if(mF(i,vZ(j9(t,r=jz(a.Xb(s),170)))))if(o=wZ(j9(t,r)),null==n){if(null==o)return r}else if(mF(n,o))return r;return null}function wLt(t,e,n){var i,a,r,o,s,c;if(o=new bc,s=rNt(t.e.Tg(),e),i=jz(t.g,119),XE(),jz(e,66).Oj())for(r=0;r<t.i;++r)a=i[r],s.rl(a.ak())&&l8(o,a);else for(r=0;r<t.i;++r)a=i[r],s.rl(a.ak())&&(c=a.dd(),l8(o,n?jAt(t,e,r,o.i,c):c));return L4(o)}function xLt(t,e){var n,i,a,r;for(n=new zft(iue),ISt(),a=0,r=(i=Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])).length;a<r;++a)hP(n,i[a],new Lm);return Kk(DZ(AZ(htt(new NU(null,new h1(t.b,16)),new Qn),new ti),new cp(e)),new lp(n)),n}function RLt(t,e,n){var a,r,o,s,c,l,u,d;for(o=e.Kc();o.Ob();)l=(r=jz(o.Pb(),33)).i+r.g/2,d=r.j+r.f/2,c=l-((s=t.f).i+s.g/2),u=d-(s.j+s.f/2),a=i.Math.sqrt(c*c+u*u),c*=t.e/a,u*=t.e/a,n?(l-=c,d-=u):(l+=c,d+=u),Cnt(r,l-r.g/2),Snt(r,d-r.f/2)}function _Lt(t){var e,n,i;if(!t.c&&null!=t.b){for(e=t.b.length-4;e>=0;e-=2)for(n=0;n<=e;n+=2)(t.b[n]>t.b[n+2]||t.b[n]===t.b[n+2]&&t.b[n+1]>t.b[n+3])&&(i=t.b[n+2],t.b[n+2]=t.b[n],t.b[n]=i,i=t.b[n+3],t.b[n+3]=t.b[n+1],t.b[n+1]=i);t.c=!0}}function kLt(t,e){var n,i,a,r,o,s,c;for(r=(1==e?Woe:qoe).a.ec().Kc();r.Ob();)for(a=jz(r.Pb(),103),s=jz(c7(t.f.c,a),21).Kc();s.Ob();)switch(o=jz(s.Pb(),46),i=jz(o.b,81),c=jz(o.a,189),n=c.c,a.g){case 2:case 1:i.g.d+=n;break;case 4:case 3:i.g.c+=n}}function ELt(t,e){var n,i,a,r,o,s,c,l,u;for(l=-1,u=0,s=0,c=(o=t).length;s<c;++s){for(r=o[s],n=new vH(-1==l?t[0]:t[l],e,(kut(),oye)),i=0;i<r.length;i++)for(a=i+1;a<r.length;a++)IN(r[i],(lGt(),hhe))&&IN(r[a],hhe)&&uYt(n,r[i],r[a])>0&&++u;++l}return u}function CLt(t){var e;return(e=new uM(JR(t.gm))).a+="@",oD(e,(Qct(t)>>>0).toString(16)),t.kh()?(e.a+=" (eProxyURI: ",rD(e,t.qh()),t.$g()&&(e.a+=" eClass: ",rD(e,t.$g())),e.a+=")"):t.$g()&&(e.a+=" (eClass: ",rD(e,t.$g()),e.a+=")"),e.a}function SLt(t){var e,n,i;if(t.e)throw $m(new Fw((xB(hie),DXt+hie.k+IXt)));for(t.d==(jdt(),$Se)&&_qt(t,FSe),n=new Wf(t.a.a);n.a<n.c.c.length;)(e=jz(J1(n),307)).g=e.i;for(i=new Wf(t.a.b);i.a<i.c.c.length;)jz(J1(i),57).i=PKt;return t.b.Le(t),t}function TLt(t,e){var n,i,a,r,o;if(e<2*t.b)throw $m(new Pw("The knot vector must have at least two time the dimension elements."));for(t.f=1,a=0;a<t.b;a++)Wz(t.e,0);for(n=o=e+1-2*t.b,r=1;r<o;r++)Wz(t.e,r/n);if(t.d)for(i=0;i<t.b;i++)Wz(t.e,1)}function ALt(t,e){var n,i,a,r,o;if(r=e,!(o=jz(qit(EY(t.i),r),33)))throw $m(new tx("Unable to find elk node for json object '"+N2(r,H7t)+"' Panic!"));i=L2(r,"edges"),LAt((n=new rA(t,o)).a,n.b,i),a=L2(r,D7t),Nxt(new Lb(t).a,a)}function DLt(t,e,n,i){var a,r,o,s,c;if(null!=i){if(a=t.d[e])for(r=a.g,c=a.i,s=0;s<c;++s)if((o=jz(r[s],133)).Sh()==n&&Odt(i,o.cd()))return s}else if(a=t.d[e])for(r=a.g,c=a.i,s=0;s<c;++s)if(HA((o=jz(r[s],133)).cd())===HA(i))return s;return-1}function ILt(t,e){var n,i;return iO(n=null==e?zA(AX(t.f,null)):cC(t.g,e),235)?((i=jz(n,235)).Qh(),i):iO(n,498)?((i=jz(n,1938).a)&&(null==i.yb||(null==e?xTt(t.f,null,i):oft(t.g,e,i))),i):null}function LLt(t){var e,n,i,a,r,o,s;if(PBt(),null==t||(a=t.length)%2!=0)return null;for(e=Y9(t),n=O5(IMe,m7t,25,r=a/2|0,15,1),i=0;i<r;i++){if(-1==(o=YOe[e[2*i]])||-1==(s=YOe[e[2*i+1]]))return null;n[i]=(o<<4|s)<<24>>24}return n}function OLt(t,e,n){var i,a,r;if(!(a=jz(oZ(t.i,e),306)))if(a=new fet(t.d,e,n),mV(t.i,e,a),rbt(e))xO(t.a,e.c,e.b,a);else switch(r=LSt(e),i=jz(oZ(t.p,r),244),r.g){case 1:case 3:a.j=!0,ww(i,e.b,a);break;case 4:case 2:a.k=!0,ww(i,e.c,a)}return a}function MLt(t,e,n,i){var a,r,o,s,c,l;if(s=new bc,c=rNt(t.e.Tg(),e),a=jz(t.g,119),XE(),jz(e,66).Oj())for(o=0;o<t.i;++o)r=a[o],c.rl(r.ak())&&l8(s,r);else for(o=0;o<t.i;++o)r=a[o],c.rl(r.ak())&&(l=r.dd(),l8(s,i?jAt(t,e,o,s.i,l):l));return Zgt(s,n)}function NLt(t,e){var n,a,r,o,s,c;if((a=t.b[e.p])>=0)return a;for(r=1,o=new Wf(e.j);o.a<o.c.c.length;)for(n=new Wf(jz(J1(o),11).g);n.a<n.c.c.length;)e!=(c=jz(J1(n),17).d.i)&&(s=NLt(t,c),r=i.Math.max(r,s+1));return ngt(t,e,r),r}function BLt(t,e,n){var i,a,r;for(i=1;i<t.c.length;i++){for(u1(i,t.c.length),r=jz(t.c[i],10),a=i;a>0&&e.ue((u1(a-1,t.c.length),jz(t.c[a-1],10)),r)>0;)i6(t,a,(u1(a-1,t.c.length),jz(t.c[a-1],10))),--a;u1(a,t.c.length),t.c[a]=r}n.a=new Om,n.b=new Om}function PLt(t,e,n){var i,a,r,o,s,c,l;for(l=new ZF(i=jz(e.e&&e.e(),9),jz(kP(i,i.length),9),0),o=0,s=(r=wFt(n,"[\\[\\]\\s,]+")).length;o<s;++o)if(0!=BEt(a=r[o]).length){if(null==(c=zAt(t,a)))return null;sat(l,jz(c,22))}return l}function FLt(t){var e,n,a;for(n=new Wf(t.a.a.b);n.a<n.c.c.length;)e=jz(J1(n),81),vG(0),(a=0)>0&&(!(fI(t.a.c)&&e.n.d)&&!(gI(t.a.c)&&e.n.b)&&(e.g.d-=i.Math.max(0,a/2-.5)),(!fI(t.a.c)||!e.n.a)&&(!gI(t.a.c)||!e.n.c)&&(e.g.a+=i.Math.max(0,a-1)))}function jLt(t,e,n){var i;if(2==(t.c-t.b&t.a.length-1))e==(wWt(),cAe)||e==sAe?(xet(jz(Rct(t),15),(Wwt(),xTe)),xet(jz(Rct(t),15),RTe)):(xet(jz(Rct(t),15),(Wwt(),RTe)),xet(jz(Rct(t),15),xTe));else for(i=new dZ(t);i.a!=i.b;)xet(jz(Fut(i),15),n)}function $Lt(t,e){var n,i,a,r,o,s;for(o=new _2(i=$z(new sm(t)),i.c.length),s=new _2(a=$z(new sm(e)),a.c.length),r=null;o.b>0&&s.b>0&&(EN(o.b>0),n=jz(o.a.Xb(o.c=--o.b),33),EN(s.b>0),n==jz(s.a.Xb(s.c=--s.b),33));)r=n;return r}function zLt(t,e){var n,a,r,o;return r=t.a*rXt+1502*t.b,o=t.b*rXt+11,r+=n=i.Math.floor(o*oXt),o-=n*sXt,r%=sXt,t.a=r,t.b=o,e<=24?i.Math.floor(t.a*Tne[e]):((a=t.a*(1<<e-24)+i.Math.floor(t.b*Ane[e]))>=2147483648&&(a-=WKt),a)}function HLt(t,e,n){var i,a,r,o;h0(t,e)>h0(t,n)?(i=rft(n,(wWt(),sAe)),t.d=i.dc()?0:rU(jz(i.Xb(0),11)),o=rft(e,SAe),t.b=o.dc()?0:rU(jz(o.Xb(0),11))):(a=rft(n,(wWt(),SAe)),t.d=a.dc()?0:rU(jz(a.Xb(0),11)),r=rft(e,sAe),t.b=r.dc()?0:rU(jz(r.Xb(0),11)))}function ULt(t){var e,n,i,a,r,o,s;if(t&&(e=t.Hh(G8t))&&null!=(o=kB(apt((!e.b&&(e.b=new KN((pGt(),yLe),VLe,e)),e.b),"conversionDelegates")))){for(s=new Lm,a=0,r=(i=wFt(o,"\\w+")).length;a<r;++a)n=i[a],s.c[s.c.length]=n;return s}return kK(),kK(),cne}function VLt(t,e){var n,i,a,r;for(n=t.o.a,r=jz(jz(c7(t.r,e),21),84).Kc();r.Ob();)(a=jz(r.Pb(),111)).e.a=n*Hw(_B(a.b.We(Iae))),a.e.b=(i=a.b).Xe((cGt(),aSe))?i.Hf()==(wWt(),cAe)?-i.rf().b-Hw(_B(i.We(aSe))):Hw(_B(i.We(aSe))):i.Hf()==(wWt(),cAe)?-i.rf().b:0}function qLt(t){var e,n,i,a,r,o,s,c;e=!0,a=null,r=null;t:for(c=new Wf(t.a);c.a<c.c.c.length;)for(s=jz(J1(c),10),i=new oq(XO(uft(s).a.Kc(),new u));gIt(i);){if(n=jz(V6(i),17),a&&a!=s){e=!1;break t}if(a=s,o=n.c.i,r&&r!=o){e=!1;break t}r=o}return e}function WLt(t,e,n){var i,a,r,o,s,c;for(r=-1,s=-1,o=0;o<e.c.length&&(u1(o,e.c.length),!((a=jz(e.c[o],329)).c>t.c));o++)a.a>=t.s&&(r<0&&(r=o),s=o);return c=(t.s+t.c)/2,r>=0&&(c=zE((u1(i=KPt(t,e,r,s),e.c.length),jz(e.c[i],329))),dDt(e,i,n)),c}function YLt(){YLt=D,u_e=new qI((cGt(),iCe),1.3),g_e=wCe,S_e=new WI(15),C_e=new qI(qCe,S_e),D_e=new qI(ISe,15),d_e=cCe,w_e=BCe,x_e=jCe,R_e=zCe,v_e=MCe,__e=VCe,T_e=lSe,IIt(),E_e=o_e,y_e=a_e,k_e=r_e,A_e=c_e,p_e=i_e,b_e=CCe,m_e=SCe,f_e=n_e,h_e=e_e,I_e=l_e}function GLt(t,e,n){var i,a,r,o,s;for($it(a=new Rc,(vG(e),e)),!a.b&&(a.b=new KN((pGt(),yLe),VLe,a)),s=a.b,o=1;o<n.length;o+=2)mRt(s,n[o-1],n[o]);for(!t.Ab&&(t.Ab=new tW(NIe,t,0,3)),i=t.Ab,r=0;r<0;++r)i=mG(jz(Yet(i,i.i-1),590));l8(i,a)}function ZLt(t,e,n){var i,a,r;for(IB.call(this,new Lm),this.a=e,this.b=n,this.e=t,t.b&&Gzt(t),i=t.a,this.d=KZ(i.a,this.a),this.c=KZ(i.b,this.b),sft(this,this.d,this.c),yAt(this),r=this.e.e.a.ec().Kc();r.Ob();)(a=jz(r.Pb(),266)).c.c.length>0&&MUt(this,a)}function KLt(t,e,n,i,a,r){var o,s,c;if(!a[e.b]){for(a[e.b]=!0,!(o=i)&&(o=new y7),Wz(o.e,e),c=r[e.b].Kc();c.Ob();)(s=jz(c.Pb(),282)).d!=n&&s.c!=n&&(s.c!=e&&KLt(t,s.c,e,o,a,r),s.d!=e&&KLt(t,s.d,e,o,a,r),Wz(o.c,s),pst(o.d,s.b));return o}return null}function XLt(t){var e,n,i;for(e=0,n=new Wf(t.e);n.a<n.c.c.length;)o6(new NU(null,new h1(jz(J1(n),17).b,16)),new mn)&&++e;for(i=new Wf(t.g);i.a<i.c.c.length;)o6(new NU(null,new h1(jz(J1(i),17).b,16)),new yn)&&++e;return e>=2}function JLt(t,e){var n,i,a,r;for(Akt(e,"Self-Loop pre-processing",1),i=new Wf(t.a);i.a<i.c.c.length;)Pft(n=jz(J1(i),10))&&(r=new Abt(n),lct(n,(lGt(),The),r),wjt(r),Kk(DZ(htt(new NU(null,new h1((a=r).d,16)),new Hi),new Ui),new Vi),nNt(a));zCt(e)}function QLt(t,e,n,i,a){var r,o,s,c,l;for(r=t.c.d.j,o=jz(Nmt(n,0),8),l=1;l<n.b;l++)c=jz(Nmt(n,l),8),n6(i,o,i.c.b,i.c),s=vO(VP(new hI(o),c),.5),VP(s,vO(new qQ(llt(r)),a)),n6(i,s,i.c.b,i.c),o=c,r=0==e?kht(r):Rht(r);MH(i,(EN(0!=n.b),jz(n.c.b.c,8)))}function tOt(t){var e,n;return QIt(),!(Sot(TJ(xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[LTe])),t))>1||(e=xV(TTe,Cst(Hx(PTe,1),IZt,93,0,[STe,DTe])),Sot(TJ(e,t))>1)||(n=xV(NTe,Cst(Hx(PTe,1),IZt,93,0,[MTe,OTe])),Sot(TJ(n,t))>1))}function eOt(t,e){var n,i,a;return(n=e.Hh(t.a))&&null!=(a=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),"affiliation")))?-1==(i=mM(a,Kkt(35)))?oht(t,aq(t,qet(e.Hj())),a):0==i?oht(t,null,a.substr(1)):oht(t,a.substr(0,i),a.substr(i+1)):null}function nOt(t){var e,n;try{return null==t?VGt:$ft(t)}catch(i){if(iO(i=dst(i),102))return e=i,n=JR(tlt(t))+"@"+(Dk(),(eyt(t)>>>0).toString(16)),Pbt(xst(),(uE(),"Exception during lenientFormat for "+n),e),"<"+n+" threw "+JR(e.gm)+">";throw $m(i)}}function iOt(t){switch(t.g){case 0:return new rd;case 1:return new td;case 2:return new DE;case 3:return new Ar;case 4:return new NP;case 5:return new od;default:throw $m(new Pw("No implementation is available for the layerer "+(null!=t.f?t.f:""+t.g)))}}function aOt(t,e,n){var i,a,r;for(r=new Wf(t.t);r.a<r.c.c.length;)(i=jz(J1(r),268)).b.s<0&&i.c>0&&(i.b.n-=i.c,i.b.n<=0&&i.b.u>0&&MH(e,i.b));for(a=new Wf(t.i);a.a<a.c.c.length;)(i=jz(J1(a),268)).a.s<0&&i.c>0&&(i.a.u-=i.c,i.a.u<=0&&i.a.n>0&&MH(n,i.a))}function rOt(t){var e,n,i;if(null==t.g&&(t.d=t.si(t.f),l8(t,t.d),t.c))return t.f;if(i=(e=jz(t.g[t.i-1],47)).Pb(),t.e=e,(n=t.si(i)).Ob())t.d=n,l8(t,n);else for(t.d=null;!e.Ob()&&(DY(t.g,--t.i,null),0!=t.i);)e=jz(t.g[t.i-1],47);return i}function oOt(t,e){var n,i,a,r,o,s;if(a=(i=e).ak(),INt(t.e,a)){if(a.hi()&&H4(t,a,i.dd()))return!1}else for(s=rNt(t.e.Tg(),a),n=jz(t.g,119),r=0;r<t.i;++r)if(o=n[r],s.rl(o.ak()))return!Odt(o,i)&&(jz(syt(t,r,e),72),!0);return l8(t,e)}function sOt(t,e,n,a){var r,o,s;for(Fh(r=new Iyt(t),(oCt(),Ese)),lct(r,(lGt(),fhe),e),lct(r,Ehe,a),lct(r,(zYt(),tme),(Z_t(),WTe)),lct(r,che,e.c),lct(r,lhe,e.d),VNt(e,r),s=i.Math.floor(n/2),o=new Wf(r.j);o.a<o.c.c.length;)jz(J1(o),11).n.b=s;return r}function cOt(t,e){var n,i,a,r,o,s,c,l,u;for(c=sN(t.c-t.b&t.a.length-1),l=null,u=null,r=new dZ(t);r.a!=r.b;)a=jz(Fut(r),10),n=(s=jz(yEt(a,(lGt(),che)),11))?s.i:null,i=(o=jz(yEt(a,lhe),11))?o.i:null,(l!=n||u!=i)&&(UIt(c,e),l=n,u=i),c.c[c.c.length]=a;UIt(c,e)}function lOt(t){var e,n,a,r,o,s;for(e=0,n=new Wf(t.a);n.a<n.c.c.length;)for(r=new oq(XO(dft(jz(J1(n),10)).a.Kc(),new u));gIt(r);)t==(a=jz(V6(r),17)).d.i.c&&a.c.j==(wWt(),SAe)&&(o=g1(a.c).b,s=g1(a.d).b,e=i.Math.max(e,i.Math.abs(s-o)));return e}function uOt(t,e,n){var i,a;Akt(n,"Remove overlaps",1),n.n&&e&&y0(n,o2(e),($lt(),oDe)),i=jz(JIt(e,(hB(),Yxe)),33),t.f=i,t.a=Ryt(jz(JIt(e,(qwt(),NRe)),293)),tf(t,(vG(a=_B(JIt(e,(cGt(),ISe)))),a)),Wqt(t,e,fBt(i),n),n.n&&e&&y0(n,o2(e),($lt(),oDe))}function dOt(t,e,n){switch(n.g){case 1:return new OT(e.a,i.Math.min(t.d.b,e.b));case 2:return new OT(i.Math.max(t.c.a,e.a),e.b);case 3:return new OT(e.a,i.Math.max(t.c.b,e.b));case 4:return new OT(i.Math.min(e.a,t.d.a),e.b)}return new OT(e.a,e.b)}function hOt(t,e,n,i){var a,r,o,s,c,l,u,d,h;for(d=i?(wWt(),SAe):(wWt(),sAe),a=!1,l=0,u=(c=e[n]).length;l<u;++l)!IF(jz(yEt(s=c[l],(zYt(),tme)),98))&&(o=s.e,(h=!rft(s,d).dc()&&!!o)&&(r=H_t(o),t.b=new V_t(r,i?0:r.length-1)),a|=ajt(t,s,d,h));return a}function fOt(t){var e,n,i;for(Wz(e=sN(1+(!t.c&&(t.c=new tW(VDe,t,9,9)),t.c).i),(!t.d&&(t.d=new cF(BDe,t,8,5)),t.d)),i=new AO((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c));i.e!=i.i.gc();)Wz(e,(!(n=jz(wmt(i),118)).d&&(n.d=new cF(BDe,n,8,5)),n.d));return yY(e),new TD(e)}function gOt(t){var e,n,i;for(Wz(e=sN(1+(!t.c&&(t.c=new tW(VDe,t,9,9)),t.c).i),(!t.e&&(t.e=new cF(BDe,t,7,4)),t.e)),i=new AO((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c));i.e!=i.i.gc();)Wz(e,(!(n=jz(wmt(i),118)).e&&(n.e=new cF(BDe,n,7,4)),n.e));return yY(e),new TD(e)}function pOt(t){var e,n,i,a;if(null==t)return null;if(i=jzt(t,!0),a=M9t.length,mF(i.substr(i.length-a,a),M9t))if(4==(n=i.length)){if(d1(0,i.length),43==(e=i.charCodeAt(0)))return jOe;if(45==e)return FOe}else if(3==n)return jOe;return hCt(i)}function bOt(t){var e,n,i,a;for(e=0,n=0,a=new Wf(t.j);a.a<a.c.c.length;)if(e=fV(ift(e,z7(AZ(new NU(null,new h1((i=jz(J1(a),11)).e,16)),new Xr)))),n=fV(ift(n,z7(AZ(new NU(null,new h1(i.g,16)),new Jr)))),e>1||n>1)return 2;return e+n==1?2:0}function mOt(t,e,n){var i,a,r,o;for(Akt(n,"ELK Force",1),zw(RB(JIt(e,(uPt(),Wre))))||wJ(new Rg((HE(),new Mw(e)))),wxt(o=uct(e)),Vct(t,jz(yEt(o,Hre),424)),a=(r=z$t(t.a,o)).Kc();a.Ob();)i=jz(a.Pb(),231),CFt(t.b,i,yrt(n,1/r.gc()));EWt(o=UWt(r)),zCt(n)}function yOt(t,e){var n,i,a;if(Akt(e,"Breaking Point Processor",1),Aqt(t),zw(RB(yEt(t,(zYt(),Hme))))){for(i=new Wf(t.b);i.a<i.c.c.length;)for(n=0,a=new Wf(jz(J1(i),29).a);a.a<a.c.c.length;)jz(J1(a),10).p=n++;sHt(t),zNt(t,!0),zNt(t,!1)}zCt(e)}function vOt(t,e,n){var i,a,r,o,s;for(o=t.c,r=(n.q?n.q:(kK(),kK(),lne)).vc().Kc();r.Ob();)a=jz(r.Pb(),42),!w_(AZ(new NU(null,new h1(o,16)),new ag(new IT(e,a)))).sd((fE(),Qne))&&(iO(s=a.dd(),4)&&null!=(i=Xpt(s))&&(s=i),e.Ye(jz(a.cd(),146),s))}function wOt(t,e){var n,i,a,r;if(e){for(r=!(a=iO(t.Cb,88)||iO(t.Cb,99))&&iO(t.Cb,322),n=new AO((!e.a&&(e.a=new aV(e,WIe,e)),e.a));n.e!=n.i.gc();)if(i=d$t(jz(wmt(n),87)),a?iO(i,88):r?iO(i,148):i)return i;return a?(pGt(),hLe):(pGt(),lLe)}return null}function xOt(t,e){var n,i,a,r,o;for(Akt(e,"Constraints Postprocessor",1),r=0,a=new Wf(t.b);a.a<a.c.c.length;){for(o=0,i=new Wf(jz(J1(a),29).a);i.a<i.c.c.length;)(n=jz(J1(i),10)).k==(oCt(),Sse)&&(lct(n,(zYt(),wbe),nht(r)),lct(n,jpe,nht(o)),++o);++r}zCt(e)}function ROt(t,e,n,i){var a,r,o,s,c,l;for(qP(s=new OT(n,i),jz(yEt(e,(HUt(),Jwe)),8)),l=cmt(e.b,0);l.b!=l.d.c;)VP((c=jz(d4(l),86)).e,s),MH(t.b,c);for(o=cmt(e.a,0);o.b!=o.d.c;){for(a=cmt((r=jz(d4(o),188)).a,0);a.b!=a.d.c;)VP(jz(d4(a),8),s);MH(t.a,r)}}function _Ot(t,e,n){var i,a,r;if(!(r=jUt((TSt(),KLe),t.Tg(),e)))throw $m(new Pw(i7t+e.ne()+a7t));if(XE(),!jz(r,66).Oj()&&!(r=X1(j9(KLe,r))))throw $m(new Pw(i7t+e.ne()+a7t));a=jz((i=t.Yg(r))>=0?t._g(i,!0,!0):aDt(t,r,!0),153),jz(a,215).ml(e,n)}function kOt(t,e){var n,i,a,r,o;for(n=new Lm,a=htt(new NU(null,new h1(t,16)),new ko),r=htt(new NU(null,new h1(t,16)),new Eo),o=_9($7(IZ(EMt(Cst(Hx(tie,1),zGt,833,0,[a,r])),new Co))),i=1;i<o.length;i++)o[i]-o[i-1]>=2*e&&Wz(n,new vz(o[i-1]+e,o[i]-e));return n}function EOt(t,e,n){Akt(n,"Eades radial",1),n.n&&e&&y0(n,o2(e),($lt(),oDe)),t.d=jz(JIt(e,(hB(),Yxe)),33),t.c=Hw(_B(JIt(e,(qwt(),MRe)))),t.e=Ryt(jz(JIt(e,NRe),293)),t.a=dgt(jz(JIt(e,PRe),426)),t.b=HRt(jz(JIt(e,DRe),340)),iRt(t),n.n&&e&&y0(n,o2(e),($lt(),oDe))}function COt(t,e,n){var i,a,r,o,s;if(n)for(r=((i=new cq(n.a.length)).b-i.a)*i.c<0?(tC(),RMe):new qO(i);r.Ob();)(a=O2(n,jz(r.Pb(),19).a))&&(Iit(o=D4(t,(QR(),s=new xv,e&&$Ot(s,e),s),a),N2(a,H7t)),Ekt(a,o),ATt(a,o),Mct(t,a,o))}function SOt(t){var e,n,i,a;if(!t.j){if(a=new Ac,null==(e=kLe).a.zc(t,e)){for(i=new AO(vX(t));i.e!=i.i.gc();)pY(a,SOt(n=jz(wmt(i),26))),l8(a,n);e.a.Bc(t)}aut(a),t.j=new LD((jz(Yet(GK((GY(),JIe).o),11),18),a.i),a.g),E6(t).b&=-33}return t.j}function TOt(t){var e,n,i,a;if(null==t)return null;if(i=jzt(t,!0),a=M9t.length,mF(i.substr(i.length-a,a),M9t))if(4==(n=i.length)){if(d1(0,i.length),43==(e=i.charCodeAt(0)))return zOe;if(45==e)return $Oe}else if(3==n)return zOe;return new My(i)}function AOt(t){var e,n,i;return(n=t.l)&n-1||(i=t.m)&i-1||(e=t.h)&e-1||0==e&&0==i&&0==n?-1:0==e&&0==i&&0!=n?pit(n):0==e&&0!=i&&0==n?pit(i)+22:0!=e&&0==i&&0==n?pit(e)+44:-1}function DOt(t,e){var n,i,a,r;for(Akt(e,"Edge joining",1),n=zw(RB(yEt(t,(zYt(),Mme)))),i=new Wf(t.b);i.a<i.c.c.length;)for(r=new _2(jz(J1(i),29).a,0);r.b<r.d.gc();)EN(r.b<r.d.gc()),(a=jz(r.d.Xb(r.c=r.b++),10)).k==(oCt(),Cse)&&(iVt(a,n),lG(r));zCt(e)}function IOt(t,e,n){var i;if(c2(t.b),CW(t.b,(Cft(),z_e),(TE(),Uke)),CW(t.b,H_e,e.g),CW(t.b,U_e,e.a),t.a=IUt(t.b,e),Akt(n,"Compaction by shrinking a tree",t.a.c.length),e.i.c.length>1)for(i=new Wf(t.a);i.a<i.c.c.length;)jz(J1(i),51).pf(e,yrt(n,1));zCt(n)}function LOt(t,e){var n,i,a,r,o;for(a=e.a&t.f,r=null,i=t.b[a];;i=i.b){if(i==e){r?r.b=e.b:t.b[a]=e.b;break}r=i}for(o=e.f&t.f,r=null,n=t.c[o];;n=n.d){if(n==e){r?r.d=e.d:t.c[o]=e.d;break}r=n}e.e?e.e.c=e.c:t.a=e.c,e.c?e.c.e=e.e:t.e=e.e,--t.i,++t.g}function OOt(t){var e,n,a,r,o,s,c,l,u,d;for(n=t.o,e=t.p,s=NGt,r=FZt,c=NGt,o=FZt,u=0;u<n;++u)for(d=0;d<e;++d)mvt(t,u,d)&&(s=i.Math.min(s,u),r=i.Math.max(r,u),c=i.Math.min(c,d),o=i.Math.max(o,d));return l=r-s+1,a=o-c+1,new YZ(nht(s),nht(c),nht(l),nht(a))}function MOt(t,e){var n,i,a,r;for(EN((r=new _2(t,0)).b<r.d.gc()),n=jz(r.d.Xb(r.c=r.b++),140);r.b<r.d.gc();)EN(r.b<r.d.gc()),a=new mH((i=jz(r.d.Xb(r.c=r.b++),140)).c,n.d,e),EN(r.b>0),r.a.Xb(r.c=--r.b),yP(r,a),EN(r.b<r.d.gc()),r.d.Xb(r.c=r.b++),a.a=!1,n=i}function NOt(t){var e,n,i,a,r;for(i=jz(yEt(t,(lGt(),Bde)),11),r=new Wf(t.j);r.a<r.c.c.length;){for(n=new Wf((a=jz(J1(r),11)).g);n.a<n.c.c.length;)return _Q(jz(J1(n),17),i),a;for(e=new Wf(a.e);e.a<e.c.c.length;)return kQ(jz(J1(e),17),i),a}return null}function BOt(t,e,n){var a,r;Gut(a=uot(n.q.getTime()),0)<0?(r=GZt-fV(dpt(w9(a),GZt)))==GZt&&(r=0):r=fV(dpt(a,GZt)),1==e?OY(t,48+(r=i.Math.min((r+50)/100|0,9))&ZZt):2==e?xtt(t,r=i.Math.min((r+5)/10|0,99),2):(xtt(t,r,3),e>3&&xtt(t,0,e-3))}function POt(t){var e,n,i,a;return HA(yEt(t,(zYt(),sbe)))===HA((odt(),bTe))?!t.e&&HA(yEt(t,Npe))!==HA((Pot(),wde)):(i=jz(yEt(t,Bpe),292),a=zw(RB(yEt(t,$pe)))||HA(yEt(t,zpe))===HA((Ait(),cue)),e=jz(yEt(t,Mpe),19).a,n=t.a.c.length,!a&&i!=(Pot(),wde)&&(0==e||e>n))}function FOt(t){var e,n;for(n=0;n<t.c.length&&!(sU((u1(n,t.c.length),jz(t.c[n],113)))>0);n++);if(n>0&&n<t.c.length-1)return n;for(e=0;e<t.c.length&&!(sU((u1(e,t.c.length),jz(t.c[e],113)))>0);e++);return e>0&&n<t.c.length-1?e:t.c.length/2|0}function jOt(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=6&&e){if(mxt(t,e))throw $m(new Pw(f7t+BDt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?cxt(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=Omt(e,t,6,i)),(i=GB(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,6,e,e))}function $Ot(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=9&&e){if(mxt(t,e))throw $m(new Pw(f7t+qPt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?uxt(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=Omt(e,t,9,i)),(i=ZB(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,9,e,e))}function zOt(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=3&&e){if(mxt(t,e))throw $m(new Pw(f7t+dHt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?kxt(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=Omt(e,t,12,i)),(i=YB(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,3,e,e))}function HOt(t){var e,n,i,a,r;if(i=Txt(t),null==(r=t.j)&&i)return t.$j()?null:i.zj();if(iO(i,148)){if((n=i.Aj())&&(a=n.Nh())!=t.i){if((e=jz(i,148)).Ej())try{t.g=a.Kh(e,r)}catch(o){if(!iO(o=dst(o),78))throw $m(o);t.g=null}t.i=a}return t.g}return null}function UOt(t){var e;return Wz(e=new Lm,new OC(new OT(t.c,t.d),new OT(t.c+t.b,t.d))),Wz(e,new OC(new OT(t.c,t.d),new OT(t.c,t.d+t.a))),Wz(e,new OC(new OT(t.c+t.b,t.d+t.a),new OT(t.c+t.b,t.d))),Wz(e,new OC(new OT(t.c+t.b,t.d+t.a),new OT(t.c,t.d+t.a))),e}function VOt(t,e,n,i){var a,r,o;if(o=DRt(e,n),i.c[i.c.length]=e,-1==t.j[o.p]||2==t.j[o.p]||t.a[e.p])return i;for(t.j[o.p]=-1,r=new oq(XO(lft(o).a.Kc(),new u));gIt(r);)if(!d6(a=jz(V6(r),17))&&(d6(a)||a.c.i.c!=a.d.i.c)&&a!=e)return VOt(t,a,o,i);return i}function qOt(t,e,n){var i,a;for(a=e.a.ec().Kc();a.Ob();)i=jz(a.Pb(),79),!jz(NY(t.b,i),266)&&(KJ(CEt(i))==KJ(AEt(i))?tBt(t,i,n):CEt(i)==KJ(AEt(i))?null==NY(t.c,i)&&null!=NY(t.b,AEt(i))&&iqt(t,i,n,!1):null==NY(t.d,i)&&null!=NY(t.b,CEt(i))&&iqt(t,i,n,!0))}function WOt(t,e){var n,i,a,r,o,s,c;for(a=t.Kc();a.Ob();)for(i=jz(a.Pb(),10),CQ(s=new SCt,i),HTt(s,(wWt(),sAe)),lct(s,(lGt(),whe),(cM(),!0)),o=e.Kc();o.Ob();)r=jz(o.Pb(),10),CQ(c=new SCt,r),HTt(c,SAe),lct(c,whe,!0),lct(n=new hX,whe,!0),kQ(n,s),_Q(n,c)}function YOt(t,e,n,i){var a,r,o,s;a=Dpt(t,e,n),r=Dpt(t,n,e),o=jz(NY(t.c,e),112),s=jz(NY(t.c,n),112),a<r?new UQ((T7(),kwe),o,s,r-a):r<a?new UQ((T7(),kwe),s,o,a-r):(0!=a||e.i&&n.i&&i[e.i.c][n.i.c])&&(new UQ((T7(),kwe),o,s,0),new UQ(kwe,s,o,0))}function GOt(t,e){var n,i,a,r,o,s;for(a=0,o=new Wf(e.a);o.a<o.c.c.length;)for(a+=(r=jz(J1(o),10)).o.b+r.d.a+r.d.d+t.e,i=new oq(XO(uft(r).a.Kc(),new u));gIt(i);)(n=jz(V6(i),17)).c.i.k==(oCt(),Tse)&&(a+=(s=jz(yEt(n.c.i,(lGt(),fhe)),10)).o.b+s.d.a+s.d.d);return a}function ZOt(t,e,n){var i,a,r,o,s,c,l;for(r=new Lm,Azt(t,l=new Zk,o=new Zk,e),Rqt(t,l,o,e,n),c=new Wf(t);c.a<c.c.c.length;)for(a=new Wf((s=jz(J1(c),112)).k);a.a<a.c.c.length;)i=jz(J1(a),129),(!e||i.c==(T7(),_we))&&s.g>i.b.g&&(r.c[r.c.length]=i);return r}function KOt(){KOt=D,N_e=new wT("CANDIDATE_POSITION_LAST_PLACED_RIGHT",0),M_e=new wT("CANDIDATE_POSITION_LAST_PLACED_BELOW",1),P_e=new wT("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT",2),B_e=new wT("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW",3),F_e=new wT("WHOLE_DRAWING",4)}function XOt(t,e){if(iO(e,239))return lht(t,jz(e,33));if(iO(e,186))return Nht(t,jz(e,118));if(iO(e,354))return QZ(t,jz(e,137));if(iO(e,352))return X$t(t,jz(e,79));if(e)return null;throw $m(new Pw(V7t+LEt(new Kw(Cst(Hx(Dte,1),zGt,1,5,[e])))))}function JOt(t){var e,n,i,a,r,o,s;for(r=new Zk,a=new Wf(t.d.a);a.a<a.c.c.length;)0==(i=jz(J1(a),121)).b.a.c.length&&n6(r,i,r.c.b,r.c);if(r.b>1)for(e=AM((n=new zy,++t.b,n),t.d),s=cmt(r,0);s.b!=s.d.c;)o=jz(d4(s),121),qMt(aE(iE(rE(nE(new $y,1),0),e),o))}function QOt(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=11&&e){if(mxt(t,e))throw $m(new Pw(f7t+VPt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?Ext(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=Omt(e,t,10,i)),(i=UP(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,11,e,e))}function tMt(t){var e,n,i,a;for(i=new olt(new Ef(t.b).a);i.b;)a=jz((n=tnt(i)).cd(),11),lct(e=jz(n.dd(),10),(lGt(),fhe),a),lct(a,xhe,e),lct(a,the,(cM(),!0)),HTt(a,jz(yEt(e,Gde),61)),yEt(e,Gde),lct(a.i,(zYt(),tme),(Z_t(),GTe)),jz(yEt(bG(a.i),Xde),21).Fc((hBt(),gde))}function eMt(t,e,n){var i,a,r;if(i=0,a=0,t.c)for(r=new Wf(t.d.i.j);r.a<r.c.c.length;)i+=jz(J1(r),11).e.c.length;else i=1;if(t.d)for(r=new Wf(t.c.i.j);r.a<r.c.c.length;)a+=jz(J1(r),11).g.c.length;else a=1;return(n+e)/2+.4*CJ($H(a-i))*(n-e)}function nMt(t){var e,n;if(L_t(),t.Hc((wWt(),CAe)))throw $m(new Pw("Port sides must not contain UNDEFINED"));switch(t.gc()){case 1:return kle;case 2:return e=t.Hc(sAe)&&t.Hc(SAe),n=t.Hc(cAe)&&t.Hc(EAe),e||n?Sle:Cle;case 3:return Ele;case 4:return _le;default:return null}}function iMt(t,e,n){var i,a,r,o;for(Akt(n,"Breaking Point Removing",1),t.a=jz(yEt(e,(zYt(),Xpe)),218),a=new Wf(e.b);a.a<a.c.c.length;)for(o=new Wf(a0(jz(J1(a),29).a));o.a<o.c.c.length;)Ktt(r=jz(J1(o),10))&&!(i=jz(yEt(r,(lGt(),Nde)),305)).d&&VWt(t,i);zCt(n)}function aMt(t,e,n){return xBt(),(!Nrt(t,e)||!Nrt(t,n))&&(yqt(new OT(t.c,t.d),new OT(t.c+t.b,t.d),e,n)||yqt(new OT(t.c+t.b,t.d),new OT(t.c+t.b,t.d+t.a),e,n)||yqt(new OT(t.c+t.b,t.d+t.a),new OT(t.c,t.d+t.a),e,n)||yqt(new OT(t.c,t.d+t.a),new OT(t.c,t.d),e,n))}function rMt(t,e){var n,i,a,r;if(!t.dc())for(n=0,i=t.gc();n<i;++n)if(null==(r=kB(t.Xb(n)))?null==e:mF(r.substr(0,3),"!##")?null!=e&&(a=e.length,!mF(r.substr(r.length-a,a),e)||r.length!=e.length+3)&&!mF(E9t,e):mF(r,C9t)&&!mF(E9t,e)||mF(r,e))return!0;return!1}function oMt(t,e,n,i){var a,r,o,s,c,l;for(o=t.j.c.length,c=O5(eae,iJt,306,o,0,1),s=0;s<o;s++)(r=jz(OU(t.j,s),11)).p=s,c[s]=lDt(yIt(r),n,i);for(GMt(t,c,n,e,i),l=new Om,a=0;a<c.length;a++)c[a]&&YG(l,jz(OU(t.j,a),11),c[a]);l.f.c+l.g.c!=0&&(lct(t,(lGt(),Ude),l),DCt(t,c))}function sMt(t,e,n){var i,a;for(i=new Wf(t.a.b);i.a<i.c.c.length;)if((a=l2(jz(J1(i),57)))&&a.k==(oCt(),kse))switch(jz(yEt(a,(lGt(),Gde)),61).g){case 4:a.n.a=e.a;break;case 2:a.n.a=n.a-(a.o.a+a.d.c);break;case 1:a.n.b=e.b;break;case 3:a.n.b=n.b-(a.o.b+a.d.a)}}function cMt(){cMt=D,Tye=new $S(ZQt,0),_ye=new $S("NIKOLOV",1),Cye=new $S("NIKOLOV_PIXEL",2),kye=new $S("NIKOLOV_IMPROVED",3),Eye=new $S("NIKOLOV_IMPROVED_PIXEL",4),Rye=new $S("DUMMYNODE_PERCENTAGE",5),Sye=new $S("NODECOUNT_PERCENTAGE",6),Aye=new $S("NO_BOUNDARY",7)}function lMt(t,e,n){var i,a,r;return!(a=jz(JIt(e,(EEt(),VEe)),19))&&(a=nht(0)),!(r=jz(JIt(n,VEe),19))&&(r=nht(0)),a.a>r.a?-1:a.a<r.a?1:!t.a||0==(i=Cht(e.j,n.j))&&0==(i=Cht(e.i,n.i))?Cht(e.g*e.f,n.g*n.f):i}function uMt(t,e){var n,i,a,r,o,s,c,l,u,d;if(++t.e,e>(c=null==t.d?0:t.d.length)){for(u=t.d,t.d=O5(rIe,a8t,63,2*c+4,0,1),r=0;r<c;++r)if(l=u[r])for(i=l.g,d=l.i,s=0;s<d;++s)o=tP(t,(a=jz(i[s],133)).Sh()),!(n=t.d[o])&&(n=t.d[o]=t.uj()),n.Fc(a);return!0}return!1}function dMt(t,e,n){var i,a,r,o,s,c;if(r=(a=n).ak(),INt(t.e,r)){if(r.hi())for(i=jz(t.g,119),o=0;o<t.i;++o)if(Odt(s=i[o],a)&&o!=e)throw $m(new Pw(r5t))}else for(c=rNt(t.e.Tg(),r),i=jz(t.g,119),o=0;o<t.i;++o)if(s=i[o],c.rl(s.ak()))throw $m(new Pw(T9t));cht(t,e,n)}function hMt(t,e){var n,i,a,r,o,s;for(n=jz(yEt(e,(lGt(),qde)),21),o=jz(c7((BYt(),lse),n),21),s=jz(c7(pse,n),21),r=o.Kc();r.Ob();)if(i=jz(r.Pb(),21),!jz(c7(t.b,i),15).dc())return!1;for(a=s.Kc();a.Ob();)if(i=jz(a.Pb(),21),!jz(c7(t.b,i),15).dc())return!1;return!0}function fMt(t,e){var n,i,a;for(Akt(e,"Partition postprocessing",1),n=new Wf(t.b);n.a<n.c.c.length;)for(i=new Wf(jz(J1(n),29).a);i.a<i.c.c.length;)for(a=new Wf(jz(J1(i),10).j);a.a<a.c.c.length;)zw(RB(yEt(jz(J1(a),11),(lGt(),whe))))&&AW(a);zCt(e)}function gMt(t,e){var n,i,a,r,o,s,c;if(1==t.a.c.length)return jCt(jz(OU(t.a,0),187),e);for(a=adt(t),o=0,s=t.d,i=a,c=t.d,r=(s-i)/2+i;i+1<s;){for(o=0,n=new Wf(t.a);n.a<n.c.c.length;)o+=aHt(jz(J1(n),187),r,!1).a;o<e?(c=r,s=r):i=r,r=(s-i)/2+i}return c}function pMt(t){var e,n,i,a;return isNaN(t)?(q9(),pee):t<-0x8000000000000000?(q9(),fee):t>=0x8000000000000000?(q9(),hee):(i=!1,t<0&&(i=!0,t=-t),n=0,t>=AKt&&(t-=(n=CJ(t/AKt))*AKt),e=0,t>=TKt&&(t-=(e=CJ(t/TKt))*TKt),a=_L(CJ(t),e,n),i&&Act(a),a)}function bMt(t,e){var n,i,a,r;for(n=!e||!t.u.Hc((dAt(),eAe)),r=0,a=new Wf(t.e.Cf());a.a<a.c.c.length;){if((i=jz(J1(a),838)).Hf()==(wWt(),CAe))throw $m(new Pw("Label and node size calculator can only be used with ports that have port sides assigned."));i.vf(r++),Yut(t,i,n)}}function mMt(t,e){var n,i,a,r;return(i=e.Hh(t.a))&&(!i.b&&(i.b=new KN((pGt(),yLe),VLe,i)),null!=(n=kB(apt(i.b,X8t)))&&iO(r=-1==(a=n.lastIndexOf("#"))?rB(t,e.Aj(),n):0==a?_8(t,null,n.substr(1)):_8(t,n.substr(0,a),n.substr(a+1)),148))?jz(r,148):null}function yMt(t,e){var n,i,a,r;return(n=e.Hh(t.a))&&(!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),null!=(a=kB(apt(n.b,w9t)))&&iO(r=-1==(i=a.lastIndexOf("#"))?rB(t,e.Aj(),a):0==i?_8(t,null,a.substr(1)):_8(t,a.substr(0,i),a.substr(i+1)),148))?jz(r,148):null}function vMt(t){var e,n,i,a,r;for(n=new Wf(t.a.a);n.a<n.c.c.length;){for((e=jz(J1(n),307)).j=null,r=e.a.a.ec().Kc();r.Ob();)vD((i=jz(r.Pb(),57)).b),(!e.j||i.d.c<e.j.d.c)&&(e.j=i);for(a=e.a.a.ec().Kc();a.Ob();)(i=jz(a.Pb(),57)).b.a=i.d.c-e.j.d.c,i.b.b=i.d.d-e.j.d.d}return t}function wMt(t){var e,n,i,a,r;for(n=new Wf(t.a.a);n.a<n.c.c.length;){for((e=jz(J1(n),189)).f=null,r=e.a.a.ec().Kc();r.Ob();)vD((i=jz(r.Pb(),81)).e),(!e.f||i.g.c<e.f.g.c)&&(e.f=i);for(a=e.a.a.ec().Kc();a.Ob();)(i=jz(a.Pb(),81)).e.a=i.g.c-e.f.g.c,i.e.b=i.g.d-e.f.g.d}return t}function xMt(t){var e,n,a;return n=jz(t.a,19).a,a=jz(t.b,19).a,n<(e=i.Math.max(i.Math.abs(n),i.Math.abs(a)))&&a==-e?new nA(nht(n+1),nht(a)):n==e&&a<e?new nA(nht(n),nht(a+1)):n>=-e&&a==e?new nA(nht(n-1),nht(a)):new nA(nht(n),nht(a-1))}function RMt(){return dGt(),Cst(Hx(ele,1),IZt,77,0,[ice,tce,ace,wce,jce,kce,qce,Ace,Pce,pce,Oce,Tce,Fce,dce,Yce,Gse,Lce,zce,xce,$ce,Zce,Nce,Zse,Bce,Kce,Uce,Gce,Rce,cce,_ce,vce,Wce,Jse,oce,Cce,Xse,Sce,mce,hce,Dce,gce,ece,Qse,yce,fce,Ice,Vce,Kse,Mce,bce,Ece,lce,sce,Hce,rce,uce,nce])}function _Mt(t,e,n){t.d=0,t.b=0,e.k==(oCt(),Tse)&&n.k==Tse&&jz(yEt(e,(lGt(),fhe)),10)==jz(yEt(n,fhe),10)&&(k9(e).j==(wWt(),cAe)?HLt(t,e,n):HLt(t,n,e)),e.k==Tse&&n.k==Cse?k9(e).j==(wWt(),cAe)?t.d=1:t.b=1:n.k==Tse&&e.k==Cse&&(k9(n).j==(wWt(),cAe)?t.b=1:t.d=1),ovt(t,e,n)}function kMt(t){var e,n,i,a,r;return r=Dkt(t),null!=t.a&&AH(r,"category",t.a),!W_(new Cf(t.d))&&(net(r,"knownOptions",i=new Eh),e=new tm(i),t6(new Cf(t.d),e)),!W_(t.g)&&(net(r,"supportedFeatures",a=new Eh),n=new em(a),t6(t.g,n)),r}function EMt(t){var e,n,i,a,r,o,s,c;for(e=336,n=0,a=new sP(t.length),s=0,c=(o=t).length;s<c;++s)Zht(r=o[s]),xG(r),i=r.a,Wz(a.a,yY(i)),e&=i.qd(),n=Klt(n,i.rd());return jz(jz(qW(new NU(null,Hkt(new h1((WY(),Ogt(a.a)),16),new x,e,n)),new wh(t)),670),833)}function CMt(t,e){var n;t.d&&(e.c!=t.e.c||urt(t.e.b,e.b))&&(Wz(t.f,t.d),t.a=t.d.c+t.d.b,t.d=null,t.e=null),JD(e.b)?t.c=e:t.b=e,(e.b==(Dst(),Joe)&&!e.a||e.b==Qoe&&e.a||e.b==tse&&e.a||e.b==ese&&!e.a)&&t.c&&t.b&&(n=new VZ(t.a,t.c.d,e.c-t.a,t.b.d-t.c.d),t.d=n,t.e=e)}function SMt(t){var e;if(Zv.call(this),this.i=new fs,this.g=t,this.f=jz(t.e&&t.e(),9).length,0==this.f)throw $m(new Pw("There must be at least one phase in the phase enumeration."));this.c=new ZF(e=jz(YR(this.g),9),jz(kP(e,e.length),9),0),this.a=new j2,this.b=new Om}function TMt(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=7&&e){if(mxt(t,e))throw $m(new Pw(f7t+aSt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?lxt(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=jz(e,49).gh(t,1,ODe,i)),(i=YV(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,7,e,e))}function AMt(t,e){var n,i;if(e!=t.Cb||t.Db>>16!=3&&e){if(mxt(t,e))throw $m(new Pw(f7t+Gdt(t)));i=null,t.Cb&&(i=(n=t.Db>>16)>=0?hxt(t,i):t.Cb.ih(t,-1-n,null,i)),e&&(i=jz(e,49).gh(t,0,FDe,i)),(i=GV(t,e,i))&&i.Fi()}else 4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,3,e,e))}function DMt(t,e){var n,i,a,r,o,s,c,l,u;return IDt(),e.d>t.d&&(s=t,t=e,e=s),e.d<63?WNt(t,e):(l=U6(t,o=(-2&t.d)<<4),u=U6(e,o),i=ozt(t,H6(l,o)),a=ozt(e,H6(u,o)),c=DMt(l,u),n=DMt(i,a),r=H6(r=IHt(IHt(r=DMt(ozt(l,i),ozt(a,u)),c),n),o),IHt(IHt(c=H6(c,o<<1),r),n))}function IMt(t,e,n){var i,a,r,o,s;for(o=Ldt(t,n),s=O5(Rse,r1t,10,e.length,0,1),i=0,r=o.Kc();r.Ob();)zw(RB(yEt(a=jz(r.Pb(),11),(lGt(),the))))&&(s[i++]=jz(yEt(a,xhe),10));if(i<e.length)throw $m(new Fw("Expected "+e.length+" hierarchical ports, but found only "+i+"."));return s}function LMt(t,e){var n,i,a,r,o,s;if(!t.tb){for(!t.rb&&(t.rb=new Kq(t,jIe,t)),s=new qk((r=t.rb).i),a=new AO(r);a.e!=a.i.gc();)i=jz(wmt(a),138),(n=jz(null==(o=i.ne())?xTt(s.f,null,i):oft(s.g,o,i),138))&&(null==o?xTt(s.f,null,n):oft(s.g,o,n));t.tb=s}return jz(kJ(t.tb,e),138)}function OMt(t,e){var n,i,a,r,o;if((null==t.i&&H$t(t),t.i).length,!t.p){for(o=new qk(1+(3*t.g.i/2|0)),a=new aN(t.g);a.e!=a.i.gc();)i=jz(xmt(a),170),(n=jz(null==(r=i.ne())?xTt(o.f,null,i):oft(o.g,r,i),170))&&(null==r?xTt(o.f,null,n):oft(o.g,r,n));t.p=o}return jz(kJ(t.p,e),170)}function MMt(t,e,n,i,a){var r,o,s,c;for(fbt(i+CX(n,n.$d()),a),QY(e,Lgt(n)),(r=n.f)&&MMt(t,e,r,"Caused by: ",!1),null==n.k&&(n.k=O5(Xte,cZt,78,0,0,1)),s=0,c=(o=n.k).length;s<c;++s)MMt(t,e,o[s],"Suppressed: ",!1);null!=console.groupEnd&&console.groupEnd.call(console)}function NMt(t,e,n,i){var a,r,o,s;for(o=(s=e.e).length,r=e.q._f(s,n?0:o-1,n),r|=pPt(t,s[n?0:o-1],n,i),a=n?1:o-2;n?a<o:a>=0;a+=n?1:-1)r|=e.c.Sf(s,a,n,i&&!zw(RB(yEt(e.j,(lGt(),Kde))))&&!zw(RB(yEt(e.j,(lGt(),She))))),r|=e.q._f(s,a,n),r|=pPt(t,s[a],n,i);return RW(t.c,e),r}function BMt(t,e,n){var i,a,r,o,s,c,l,u;for(l=0,u=(c=S2(t.j)).length;l<u;++l){if(s=c[l],n==(rit(),zye)||n==Uye)for(r=0,o=(a=X0(s.g)).length;r<o;++r)ACt(e,i=a[r])&&tzt(i,!0);if(n==Hye||n==Uye)for(r=0,o=(a=X0(s.e)).length;r<o;++r)TCt(e,i=a[r])&&tzt(i,!0)}}function PMt(t){var e,n;switch(e=null,n=null,e_t(t).g){case 1:wWt(),e=sAe,n=SAe;break;case 2:wWt(),e=EAe,n=cAe;break;case 3:wWt(),e=SAe,n=sAe;break;case 4:wWt(),e=cAe,n=EAe}zh(t,jz(DM(Tq(jz(c7(t.k,e),15).Oc(),Gle)),113)),$h(t,jz(DM(Sq(jz(c7(t.k,n),15).Oc(),Gle)),113))}function FMt(t){var e,n,i,a,r,o;if((a=jz(OU(t.j,0),11)).e.c.length+a.g.c.length==0)t.n.a=0;else{for(o=0,i=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(a),new Hg(a)])));gIt(i);)o+=(n=jz(V6(i),11)).i.n.a+n.n.a+n.a.a;r=(e=jz(yEt(t,(zYt(),Jbe)),8))?e.a:0,t.n.a=o/(a.e.c.length+a.g.c.length)-r}}function jMt(t,e){var n,i,a;for(i=new Wf(e.a);i.a<i.c.c.length;)n=jz(J1(i),221),IV(jz(n.b,65),qP(jL(jz(e.b,65).c),jz(e.b,65).a)),(a=Kjt(jz(e.b,65).b,jz(n.b,65).b))>1&&(t.a=!0),LV(jz(n.b,65),VP(jL(jz(e.b,65).c),vO(qP(jL(jz(n.b,65).a),jz(e.b,65).a),a))),GQ(t,e),jMt(t,n)}function $Mt(t){var e,n,i,a,r,o;for(a=new Wf(t.a.a);a.a<a.c.c.length;)(n=jz(J1(a),189)).e=0,n.d.a.$b();for(i=new Wf(t.a.a);i.a<i.c.c.length;)for(e=(n=jz(J1(i),189)).a.a.ec().Kc();e.Ob();)for(o=jz(e.Pb(),81).f.Kc();o.Ob();)(r=jz(o.Pb(),81)).d!=n&&(RW(n.d,r),++r.d.e)}function zMt(t){var e,n,i,a,r,o,s,c;for(n=0,e=c=t.j.c.length,a=2*c,s=new Wf(t.j);s.a<s.c.c.length;)switch(o=jz(J1(s),11),o.j.g){case 2:case 4:o.p=-1;break;case 1:case 3:i=o.e.c.length,r=o.g.c.length,o.p=i>0&&r>0?e++:i>0?n++:r>0?a++:n++}kK(),mL(t.j,new fi)}function HMt(t){var e,n;n=null,e=jz(OU(t.g,0),17);do{if(IN(n=e.d.i,(lGt(),lhe)))return jz(yEt(n,lhe),11).i;if(n.k!=(oCt(),Sse)&&gIt(new oq(XO(dft(n).a.Kc(),new u))))e=jz(V6(new oq(XO(dft(n).a.Kc(),new u))),17);else if(n.k!=Sse)return null}while(n&&n.k!=(oCt(),Sse));return n}function UMt(t,e){var n,i,a,r,o,s,c,l,u;for(s=e.j,o=e.g,c=jz(OU(s,s.c.length-1),113),u1(0,s.c.length),l=Jvt(t,o,c,u=jz(s.c[0],113)),r=1;r<s.c.length;r++)u1(r-1,s.c.length),n=jz(s.c[r-1],113),u1(r,s.c.length),(i=Jvt(t,o,n,a=jz(s.c[r],113)))>l&&(c=n,u=a,l=i);e.a=u,e.c=c}function VMt(t,e){var n;if(!XW(t.b,e.b))throw $m(new Fw("Invalid hitboxes for scanline constraint calculation."));(wst(e.b,jz(_P(t.b,e.b),57))||wst(e.b,jz(RP(t.b,e.b),57)))&&(Dk(),e.b),t.a[e.b.f]=jz(vF(t.b,e.b),57),(n=jz(yF(t.b,e.b),57))&&(t.a[n.f]=e.b)}function qMt(t){if(!t.a.d||!t.a.e)throw $m(new Fw((xB($ie),$ie.k+" must have a source and target "+(xB(zie),zie.k+" specified."))));if(t.a.d==t.a.e)throw $m(new Fw("Network simplex does not support self-loops: "+t.a+" "+t.a.d+" "+t.a.e));return NM(t.a.d.g,t.a),NM(t.a.e.b,t.a),t.a}function WMt(t,e,n){var i,a,r,o,s,c,l;for(l=new f_(new Kp(t)),s=0,c=(o=Cst(Hx($se,1),o1t,11,0,[e,n])).length;s<c;++s)for(r=o[s],kct(l.a,r,(cM(),mee)),a=new m7(r.b);yL(a.a)||yL(a.b);)(i=jz(yL(a.a)?J1(a.a):J1(a.b),17)).c==i.d||XW(l,r==i.c?i.d:i.c);return yY(l),new QF(l)}function YMt(t,e,n){var i,a,r,o,s,c;if(i=0,0!=e.b&&0!=n.b){r=cmt(e,0),o=cmt(n,0),s=Hw(_B(d4(r))),c=Hw(_B(d4(o))),a=!0;do{if(s>c-t.b&&s<c+t.b)return-1;s>c-t.a&&s<c+t.a&&++i,s<=c&&r.b!=r.d.c?s=Hw(_B(d4(r))):c<=s&&o.b!=o.d.c?c=Hw(_B(d4(o))):a=!1}while(a)}return i}function GMt(t,e,n,i,a){var r,o,s,c;for(c=new ZF(r=jz(YR(MAe),9),jz(kP(r,r.length),9),0),s=new Wf(t.j);s.a<s.c.c.length;)e[(o=jz(J1(s),11)).p]&&($Wt(o,e[o.p],i),sat(c,o.j));a?(U_t(t,e,(wWt(),sAe),2*n,i),U_t(t,e,SAe,2*n,i)):(U_t(t,e,(wWt(),cAe),2*n,i),U_t(t,e,EAe,2*n,i))}function ZMt(t){var e,n,i,a,r;if(r=new Lm,Aet(t.b,new vg(r)),t.b.c=O5(Dte,zGt,1,0,5,1),0!=r.c.length){for(u1(0,r.c.length),e=jz(r.c[0],78),n=1,i=r.c.length;n<i;++n)u1(n,r.c.length),(a=jz(r.c[n],78))!=e&&Ukt(e,a);if(iO(e,60))throw $m(jz(e,60));if(iO(e,289))throw $m(jz(e,289))}}function KMt(t,e){var n,i,a,r;for(t=null==t?VGt:(vG(t),t),n=new Sx,r=0,i=0;i<e.length&&-1!=(a=t.indexOf("%s",r));)oD(n,t.substr(r,a-r)),rD(n,e[i++]),r=a+2;if(oD(n,t.substr(r)),i<e.length){for(n.a+=" [",rD(n,e[i++]);i<e.length;)n.a+=jGt,rD(n,e[i++]);n.a+="]"}return n.a}function XMt(t){var e,n,i,a;for(e=0,a=(i=t.length)-4,n=0;n<a;)d1(n+3,t.length),e=t.charCodeAt(n+3)+(d1(n+2,t.length),31*(t.charCodeAt(n+2)+(d1(n+1,t.length),31*(t.charCodeAt(n+1)+(d1(n,t.length),31*(t.charCodeAt(n)+31*e)))))),e|=0,n+=4;for(;n<i;)e=31*e+lZ(t,n++);return e|=0}function JMt(t){var e;for(e=new oq(XO(dft(t).a.Kc(),new u));gIt(e);)if(jz(V6(e),17).d.i.k!=(oCt(),Ese))throw $m(new nx(C1t+pwt(t)+"' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen."))}function QMt(t,e,n,a){var r,o,s,c,l,d,h;for(c=0,l=new Wf(t.a);l.a<l.c.c.length;){for(s=0,o=new oq(XO(uft(jz(J1(l),10)).a.Kc(),new u));gIt(o);)d=g1((r=jz(V6(o),17)).c).b,h=g1(r.d).b,s=i.Math.max(s,i.Math.abs(h-d));c=i.Math.max(c,s)}return a*i.Math.min(1,e/n)*c}function tNt(t){var e;return e=new Ex,256&t&&(e.a+="F"),128&t&&(e.a+="H"),512&t&&(e.a+="X"),2&t&&(e.a+="i"),8&t&&(e.a+="m"),4&t&&(e.a+="s"),32&t&&(e.a+="u"),64&t&&(e.a+="w"),16&t&&(e.a+="x"),t&w7t&&(e.a+=","),Vw(e.a)}function eNt(t,e){var n,i,a;for(Akt(e,"Resize child graph to fit parent.",1),i=new Wf(t.b);i.a<i.c.c.length;)n=jz(J1(i),29),pst(t.a,n.a),n.a.c=O5(Dte,zGt,1,0,5,1);for(a=new Wf(t.a);a.a<a.c.c.length;)EQ(jz(J1(a),10),null);t.b.c=O5(Dte,zGt,1,0,5,1),$Nt(t),t.e&&Ejt(t.e,t),zCt(e)}function nNt(t){var e,n,i,a,r,o,s;if(a=(i=t.b).e,r=IF(jz(yEt(i,(zYt(),tme)),98)),n=!!a&&jz(yEt(a,(lGt(),Xde)),21).Hc((hBt(),dde)),!r&&!n)for(s=new Bf(new Tf(t.e).a.vc().Kc());s.a.Ob();)e=jz(s.a.Pb(),42),(o=jz(e.dd(),113)).a&&(CQ(o.d,null),o.c=!0,t.a=!0)}function iNt(t){var e,n,i,a,r,o,s,c,l,u,d,h;for(d=-1,h=0,l=0,u=(c=t).length;l<u;++l){for(o=0,s=(r=c[l]).length;o<s;++o)for(a=r[o],e=new pS(-1==d?t[0]:t[d],sxt(a)),n=0;n<a.j.c.length;n++)for(i=n+1;i<a.j.c.length;i++)Lq(e,jz(OU(a.j,n),11),jz(OU(a.j,i),11))>0&&++h;++d}return h}function aNt(t,e){var n,i,a,r,o;for(o=jz(yEt(e,(SIt(),Ixe)),425),r=cmt(e.b,0);r.b!=r.d.c;)if(a=jz(d4(r),86),0==t.b[a.g]){switch(o.g){case 0:Zyt(t,a);break;case 1:zIt(t,a)}t.b[a.g]=2}for(i=cmt(t.a,0);i.b!=i.d.c;)vgt((n=jz(d4(i),188)).b.d,n,!0),vgt(n.c.b,n,!0);lct(e,(HUt(),uxe),t.a)}function rNt(t,e){var n,i,a,r;return XE(),e?e==(qUt(),NOe)||(e==mOe||e==pOe||e==bOe)&&t!=gOe?new aWt(t,e):((n=(i=jz(e,677)).pk())||(vZ(j9((TSt(),KLe),e)),n=i.pk()),!n.i&&(n.i=new Om),!(a=jz(zA(AX((r=n.i).f,t)),1942))&&YG(r,t,a=new aWt(t,e)),a):iOe}function oNt(t,e){var n,i,a,r,o,s,c,l;for(s=jz(yEt(t,(lGt(),fhe)),11),c=Dct(Cst(Hx(EEe,1),cZt,8,0,[s.i.n,s.n,s.a])).a,l=t.i.n.b,a=0,r=(i=X0(t.e)).length;a<r;++a)_Q(n=i[a],s),lD(n.a,new OT(c,l)),e&&((o=jz(yEt(n,(zYt(),bbe)),74))||(o=new vv,lct(n,bbe,o)),MH(o,new OT(c,l)))}function sNt(t,e){var n,i,a,r,o,s,c,l;for(i=jz(yEt(t,(lGt(),fhe)),11),c=Dct(Cst(Hx(EEe,1),cZt,8,0,[i.i.n,i.n,i.a])).a,l=t.i.n.b,o=0,s=(r=X0(t.g)).length;o<s;++o)kQ(a=r[o],i),cD(a.a,new OT(c,l)),e&&((n=jz(yEt(a,(zYt(),bbe)),74))||(n=new vv,lct(a,bbe,n)),MH(n,new OT(c,l)))}function cNt(t,e){var n,i,a,r,o;for(t.b=new Lm,t.d=jz(yEt(e,(lGt(),khe)),230),t.e=i0(t.d),r=new Zk,a=r7(Cst(Hx(wse,1),XQt,37,0,[e])),o=0;o<a.c.length;)u1(o,a.c.length),(i=jz(a.c[o],37)).p=o++,pst(a,(n=new SVt(i,t.a,t.b)).b),Wz(t.b,n),n.s&&JW(cmt(r,0),n);return t.c=new Ny,r}function lNt(t,e){var n,i,a,r,o,s;for(o=jz(jz(c7(t.r,e),21),84).Kc();o.Ob();)(n=(r=jz(o.Pb(),111)).c?YH(r.c):0)>0?r.a?n>(s=r.b.rf().a)&&(a=(n-s)/2,r.d.b=a,r.d.c=a):r.d.c=t.s+n:$q(t.u)&&((i=Fkt(r.b)).c<0&&(r.d.b=-i.c),i.c+i.b>r.b.rf().a&&(r.d.c=i.c+i.b-r.b.rf().a))}function uNt(t,e){var n,i;for(Akt(e,"Semi-Interactive Crossing Minimization Processor",1),n=!1,i=new Wf(t.b);i.a<i.c.c.length;)n|=null!=Idt(vet(AZ(AZ(new NU(null,new h1(jz(J1(i),29).a,16)),new Ki),new Xi),new Ji),new Qi).a;n&&lct(t,(lGt(),ahe),(cM(),!0)),zCt(e)}function dNt(t,e,n){var i,a,r;if(!(a=n)&&(a=new qv),Akt(a,"Layout",t.a.c.length),zw(RB(yEt(e,(SIt(),xxe)))))for(Dk(),i=0;i<t.a.c.length;i++)i++,JR(tlt(jz(OU(t.a,i),51)));for(r=new Wf(t.a);r.a<r.c.c.length;)jz(J1(r),51).pf(e,yrt(a,1));zCt(a)}function hNt(t){var e,n;if(e=jz(t.a,19).a,n=jz(t.b,19).a,e>=0){if(e==n)return new nA(nht(-e-1),nht(-e-1));if(e==-n)return new nA(nht(-e),nht(n+1))}return i.Math.abs(e)>i.Math.abs(n)?new nA(nht(-e),nht(e<0?n:n+1)):new nA(nht(e+1),nht(n))}function fNt(t){var e,n;n=jz(yEt(t,(zYt(),vbe)),163),e=jz(yEt(t,(lGt(),ehe)),303),n==(_ft(),jhe)?(lct(t,vbe,Hhe),lct(t,ehe,(U9(),Sde))):n==zhe?(lct(t,vbe,Hhe),lct(t,ehe,(U9(),Ede))):e==(U9(),Sde)?(lct(t,vbe,jhe),lct(t,ehe,Cde)):e==Ede&&(lct(t,vbe,zhe),lct(t,ehe,Cde))}function gNt(){gNt=D,wwe=new co,bwe=fU(new j2,(vEt(),Foe),(dGt(),xce)),vwe=WV(fU(new j2,Foe,Nce),$oe,Mce),xwe=sbt(sbt(FE(WV(fU(new j2,Boe,qce),$oe,Vce),joe),Uce),Wce),mwe=WV(fU(fU(fU(new j2,Poe,kce),joe,Cce),joe,Sce),$oe,Ece),ywe=WV(fU(fU(new j2,joe,Sce),joe,oce),$oe,rce)}function pNt(){pNt=D,Cwe=fU(WV(new j2,(vEt(),$oe),(dGt(),lce)),Foe,xce),Dwe=sbt(sbt(FE(WV(fU(new j2,Boe,qce),$oe,Vce),joe),Uce),Wce),Swe=WV(fU(fU(fU(new j2,Poe,kce),joe,Cce),joe,Sce),$oe,Ece),Awe=fU(fU(new j2,Foe,Nce),$oe,Mce),Twe=WV(fU(fU(new j2,joe,Sce),joe,oce),$oe,rce)}function bNt(t,e,n,i,a){var r,o;(!d6(e)&&e.c.i.c==e.d.i.c||!Qit(Dct(Cst(Hx(EEe,1),cZt,8,0,[a.i.n,a.n,a.a])),n))&&!d6(e)&&(e.c==a?BN(e.a,0,new hI(n)):MH(e.a,new hI(n)),i&&!Fk(t.a,n)&&((o=jz(yEt(e,(zYt(),bbe)),74))||(o=new vv,lct(e,bbe,o)),n6(o,r=new hI(n),o.c.b,o.c),RW(t.a,r)))}function mNt(t){var e;for(e=new oq(XO(uft(t).a.Kc(),new u));gIt(e);)if(jz(V6(e),17).c.i.k!=(oCt(),Ese))throw $m(new nx(C1t+pwt(t)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function yNt(t,e,n){var i,a,r,o,s,c;if(0==(a=bft(254&t.Db)))t.Eb=n;else{if(1==a)o=O5(Dte,zGt,1,2,5,1),0==Bvt(t,e)?(o[0]=n,o[1]=t.Eb):(o[0]=t.Eb,o[1]=n);else for(o=O5(Dte,zGt,1,a+1,5,1),r=ent(t.Eb),i=2,s=0,c=0;i<=128;i<<=1)i==e?o[c++]=n:t.Db&i&&(o[c++]=r[s++]);t.Eb=o}t.Db|=e}function vNt(t,e,n){var a,r,o,s;for(this.b=new Lm,r=0,a=0,s=new Wf(t);s.a<s.c.c.length;)o=jz(J1(s),167),n&&Pzt(o),Wz(this.b,o),r+=o.o,a+=o.p;this.b.c.length>0&&(r+=(o=jz(OU(this.b,0),167)).o,a+=o.p),r*=2,a*=2,e>1?r=CJ(i.Math.ceil(r*e)):a=CJ(i.Math.ceil(a/e)),this.a=new Hgt(r,a)}function wNt(t,e,n,a,r,o){var s,c,l,u,d,h,f,g,p,b;for(u=a,e.j&&e.o?(p=(f=jz(NY(t.f,e.A),57)).d.c+f.d.b,--u):p=e.a.c+e.a.b,d=r,n.q&&n.o?(l=(f=jz(NY(t.f,n.C),57)).d.c,++d):l=n.a.c,g=p+(c=(l-p)/i.Math.max(2,d-u)),h=u;h<d;++h)b=(s=jz(o.Xb(h),128)).a.b,s.a.c=g-b/2,g+=c}function xNt(t,e,n,i,a,r){var o,s,c,l,u,d;for(l=n.c.length,r&&(t.c=O5(TMe,lKt,25,e.length,15,1)),o=a?0:e.length-1;a?o<e.length:o>=0;o+=a?1:-1){for(s=e[o],c=i==(wWt(),sAe)?a?rft(s,i):eot(rft(s,i)):a?eot(rft(s,i)):rft(s,i),r&&(t.c[s.p]=c.gc()),d=c.Kc();d.Ob();)u=jz(d.Pb(),11),t.d[u.p]=l++;pst(n,c)}}function RNt(t,e,n){var i,a,r,o,s,c,l,u;for(r=Hw(_B(t.b.Kc().Pb())),l=Hw(_B(Yot(e.b))),i=vO(jL(t.a),l-n),a=vO(jL(e.a),n-r),vO(u=VP(i,a),1/(l-r)),this.a=u,this.b=new Lm,s=!0,(o=t.b.Kc()).Pb();o.Ob();)c=Hw(_B(o.Pb())),s&&c-n>N4t&&(this.b.Fc(n),s=!1),this.b.Fc(c);s&&this.b.Fc(n)}function _Nt(t){var e,n,i,a;if(lFt(t,t.n),t.d.c.length>0){for(Jw(t.c);bIt(t,jz(J1(new Wf(t.e.a)),121))<t.e.a.c.length;){for(a=(e=Bwt(t)).e.e-e.d.e-e.a,e.e.j&&(a=-a),i=new Wf(t.e.a);i.a<i.c.c.length;)(n=jz(J1(i),121)).j&&(n.e+=a);Jw(t.c)}Jw(t.c),bAt(t,jz(J1(new Wf(t.e.a)),121)),pVt(t)}}function kNt(t,e){var n,i,a,r,o;for(a=jz(c7(t.a,(L_t(),kle)),15).Kc();a.Ob();)switch(i=jz(a.Pb(),101),n=jz(OU(i.j,0),113).d.j,r=new QF(i.j),mL(r,new Ja),e.g){case 1:O_t(t,r,n,(Sat(),Nle),1);break;case 0:O_t(t,new s1(r,0,o=FOt(r)),n,(Sat(),Nle),0),O_t(t,new s1(r,o,r.c.length),n,Nle,1)}}function ENt(t,e){var n,i;if(Ost(),n=R6(ait(),e.tg())){if(i=n.j,iO(t,239))return nQ(jz(t,33))?kM(i,(imt(),cEe))||kM(i,lEe):kM(i,(imt(),cEe));if(iO(t,352))return kM(i,(imt(),oEe));if(iO(t,186))return kM(i,(imt(),uEe));if(iO(t,354))return kM(i,(imt(),sEe))}return!0}function CNt(t,e,n){var i,a,r,o,s,c;if(r=(a=n).ak(),INt(t.e,r)){if(r.hi())for(i=jz(t.g,119),o=0;o<t.i;++o)if(Odt(s=i[o],a)&&o!=e)throw $m(new Pw(r5t))}else for(c=rNt(t.e.Tg(),r),i=jz(t.g,119),o=0;o<t.i;++o)if(s=i[o],c.rl(s.ak())&&o!=e)throw $m(new Pw(T9t));return jz(syt(t,e,n),72)}function SNt(t,e){if(e instanceof Object)try{if(e.__java$exception=t,-1!=navigator.userAgent.toLowerCase().indexOf("msie")&&$doc.documentMode<9)return;var n=t;Object.defineProperties(e,{cause:{get:function(){var t=n.Zd();return t&&t.Xd()}},suppressed:{get:function(){return n.Yd()}}})}catch{}}function TNt(t,e){var n,i,a,r,o;if(i=e>>5,e&=31,i>=t.d)return t.e<0?(ABt(),Xee):(ABt(),nne);if(r=t.d-i,ZCt(a=O5(TMe,lKt,25,r+1,15,1),r,t.a,i,e),t.e<0){for(n=0;n<i&&0==t.a[n];n++);if(n<i||e>0&&t.a[n]<<32-e){for(n=0;n<r&&-1==a[n];n++)a[n]=0;n==r&&++r,++a[n]}}return q0(o=new uW(t.e,r,a)),o}function ANt(t){var e,n,i,a;return n=new Dg(a=WJ(t)),i=new Ig(a),pst(e=new Lm,(!t.d&&(t.d=new cF(BDe,t,8,5)),t.d)),pst(e,(!t.e&&(t.e=new cF(BDe,t,7,4)),t.e)),jz(E3(DZ(AZ(new NU(null,new h1(e,16)),n),i),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Kne),Zne]))),21)}function DNt(t,e,n,i){var a,r,o,s,c;if(XE(),s=jz(e,66).Oj(),INt(t.e,e)){if(e.hi()&&q$t(t,e,i,iO(e,99)&&0!=(jz(e,18).Bb&$Kt)))throw $m(new Pw(r5t))}else for(c=rNt(t.e.Tg(),e),a=jz(t.g,119),o=0;o<t.i;++o)if(r=a[o],c.rl(r.ak()))throw $m(new Pw(T9t));cht(t,RSt(t,e,n),s?jz(i,72):X4(e,i))}function INt(t,e){var n,i,a;return XE(),!!e.$j()||-2==e.Zj()&&(e==(_Dt(),lOe)||e==oOe||e==sOe||e==cOe||!(Dgt(a=t.Tg(),e)>=0)&&(!(n=jUt((TSt(),KLe),a,e))||((i=n.Zj())>1||-1==i)&&3!=MG(j9(KLe,n))))}function LNt(t,e,n,i){var a,r,o,s,c;return s=Ckt(jz(Yet((!e.b&&(e.b=new cF(NDe,e,4,7)),e.b),0),82)),c=Ckt(jz(Yet((!e.c&&(e.c=new cF(NDe,e,5,8)),e.c),0),82)),KJ(s)==KJ(c)||Set(c,s)?null:(o=qJ(e))==n?i:(r=jz(NY(t.a,o),10))&&(a=r.e)?a:null}function ONt(t,e){var n;switch(Akt(e,"Label side selection ("+(n=jz(yEt(t,(zYt(),Kpe)),276))+")",1),n.g){case 0:_It(t,(Wwt(),xTe));break;case 1:_It(t,(Wwt(),RTe));break;case 2:czt(t,(Wwt(),xTe));break;case 3:czt(t,(Wwt(),RTe));break;case 4:oBt(t,(Wwt(),xTe));break;case 5:oBt(t,(Wwt(),RTe))}zCt(e)}function MNt(t,e,n){var i,a,r,o,s;if((r=t[uR(n,t.length)])[0].k==(oCt(),kse))for(a=lR(n,r.length),s=e.j,i=0;i<s.c.length;i++)u1(i,s.c.length),o=jz(s.c[i],11),(n?o.j==(wWt(),sAe):o.j==(wWt(),SAe))&&zw(RB(yEt(o,(lGt(),the))))&&(i6(s,i,jz(yEt(r[a],(lGt(),fhe)),11)),a+=n?1:-1)}function NNt(t,e){var n,i,a,r,o;o=new Lm,n=e;do{(r=jz(NY(t.b,n),128)).B=n.c,r.D=n.d,o.c[o.c.length]=r,n=jz(NY(t.k,n),17)}while(n);return u1(0,o.c.length),(i=jz(o.c[0],128)).j=!0,i.A=jz(i.d.a.ec().Kc().Pb(),17).c.i,(a=jz(OU(o,o.c.length-1),128)).q=!0,a.C=jz(a.d.a.ec().Kc().Pb(),17).d.i,o}function BNt(t){if(null==t.g)switch(t.p){case 0:t.g=lQ(t)?(cM(),yee):(cM(),mee);break;case 1:t.g=Ett(M4(t));break;case 2:t.g=ust(G1(t));break;case 3:t.g=TG(t);break;case 4:t.g=new Lf(SG(t));break;case 6:t.g=xbt(AG(t));break;case 5:t.g=nht(cJ(t));break;case 7:t.g=iht(P4(t))}return t.g}function PNt(t){if(null==t.n)switch(t.p){case 0:t.n=uQ(t)?(cM(),yee):(cM(),mee);break;case 1:t.n=Ett(N4(t));break;case 2:t.n=ust(Z1(t));break;case 3:t.n=IG(t);break;case 4:t.n=new Lf(LG(t));break;case 6:t.n=xbt(DG(t));break;case 5:t.n=nht(lJ(t));break;case 7:t.n=iht(B4(t))}return t.n}function FNt(t){var e,n,i,a,r,o;for(a=new Wf(t.a.a);a.a<a.c.c.length;)(n=jz(J1(a),307)).g=0,n.i=0,n.e.a.$b();for(i=new Wf(t.a.a);i.a<i.c.c.length;)for(e=(n=jz(J1(i),307)).a.a.ec().Kc();e.Ob();)for(o=jz(e.Pb(),57).c.Kc();o.Ob();)(r=jz(o.Pb(),57)).a!=n&&(RW(n.e,r),++r.a.g,++r.a.i)}function jNt(t,e){var n,i,a;if(!XW(t.a,e.b))throw $m(new Fw("Invalid hitboxes for scanline overlap calculation."));for(a=!1,i=new Ff(new jP(new OM(new Pf(t.a.a).a).b));aC(i.a.a);)if(n=jz(mN(i.a).cd(),65),ect(e.b,n))OR(t.b.a,e.b,n),a=!0;else if(a)break}function $Nt(t){var e,n,a,r,o;r=jz(yEt(t,(zYt(),Fbe)),21),o=jz(yEt(t,zbe),21),e=new hI(n=new OT(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a)),r.Hc((ypt(),NAe))&&(a=jz(yEt(t,$be),8),o.Hc((QFt(),UAe))&&(a.a<=0&&(a.a=20),a.b<=0&&(a.b=20)),e.a=i.Math.max(n.a,a.a),e.b=i.Math.max(n.b,a.b)),Wzt(t,n,e)}function zNt(t,e){var n,i,a,r,o,s,c,l;a=e?new mr:new yr,r=!1;do{for(r=!1,o=(e?eot(t.b):t.b).Kc();o.Ob();)for(l=a0(jz(o.Pb(),29).a),e||new lw(l),c=new Wf(l);c.a<c.c.c.length;)s=jz(J1(c),10),a.Mb(s)&&(i=s,n=jz(yEt(s,(lGt(),Nde)),305),r=ePt(i,e?n.b:n.k,e,!1))}while(r)}function HNt(t,e,n){var i,a,r,o;for(Akt(n,"Longest path layering",1),t.a=e,o=t.a.a,t.b=O5(TMe,lKt,25,o.c.length,15,1),i=0,r=new Wf(o);r.a<r.c.c.length;)jz(J1(r),10).p=i,t.b[i]=-1,++i;for(a=new Wf(o);a.a<a.c.c.length;)NLt(t,jz(J1(a),10));o.c=O5(Dte,zGt,1,0,5,1),t.a=null,t.b=null,zCt(n)}function UNt(t,e){var n,i,a;e.a?(XW(t.b,e.b),t.a[e.b.i]=jz(vF(t.b,e.b),81),(n=jz(yF(t.b,e.b),81))&&(t.a[n.i]=e.b)):((i=jz(vF(t.b,e.b),81))&&i==t.a[e.b.i]&&i.d&&i.d!=e.b.d&&i.f.Fc(e.b),(a=jz(yF(t.b,e.b),81))&&t.a[a.i]==e.b&&a.d&&a.d!=e.b.d&&e.b.f.Fc(a),_M(t.b,e.b))}function VNt(t,e){var n,a,r,o,s,c;return o=t.d,(c=Hw(_B(yEt(t,(zYt(),abe)))))<0&&lct(t,abe,c=0),e.o.b=c,s=i.Math.floor(c/2),HTt(a=new SCt,(wWt(),SAe)),CQ(a,e),a.n.b=s,HTt(r=new SCt,sAe),CQ(r,e),r.n.b=s,_Q(t,a),Hot(n=new hX,t),lct(n,bbe,null),kQ(n,r),_Q(n,o),x$t(e,t,n),cTt(t,n),n}function qNt(t){var e,n;return n=jz(yEt(t,(lGt(),Xde)),21),e=new j2,n.Hc((hBt(),hde))&&(Xrt(e,dwe),Xrt(e,fwe)),(n.Hc(gde)||zw(RB(yEt(t,(zYt(),rbe)))))&&(Xrt(e,fwe),n.Hc(pde)&&Xrt(e,gwe)),n.Hc(dde)&&Xrt(e,uwe),n.Hc(mde)&&Xrt(e,pwe),n.Hc(fde)&&Xrt(e,hwe),n.Hc(cde)&&Xrt(e,cwe),n.Hc(ude)&&Xrt(e,lwe),e}function WNt(t,e){var n,i,a,r,o,s,c,l,u;return r=(n=t.d)+(i=e.d),o=t.e!=e.e?-1:1,2==r?(u=fV(c=aft(t0(t.a[0],qKt),t0(e.a[0],qKt))),0==(l=fV(wq(c,32)))?new q7(o,u):new uW(o,2,Cst(Hx(TMe,1),lKt,25,15,[u,l]))):(Ndt(t.a,n,e.a,i,a=O5(TMe,lKt,25,r,15,1)),q0(s=new uW(o,r,a)),s)}function YNt(t,e,n,i){var a,r;return e?0==(a=t.a.ue(n.d,e.d))?(i.d=pP(e,n.e),i.b=!0,e):(r=a<0?0:1,e.a[r]=YNt(t,e.a[r],n,i),Yw(e.a[r])&&(Yw(e.a[1-r])?(e.b=!0,e.a[0].b=!1,e.a[1].b=!1):Yw(e.a[r].a[r])?e=fat(e,1-r):Yw(e.a[r].a[1-r])&&(e=n2(e,1-r))),e):n}function GNt(t,e,n){var a,r,o,s;r=t.i,a=t.n,Z6(t,(Net(),Uie),r.c+a.b,n),Z6(t,qie,r.c+r.b-a.c-n[2],n),s=r.b-a.b-a.c,n[0]>0&&(n[0]+=t.d,s-=n[0]),n[2]>0&&(n[2]+=t.d,s-=n[2]),o=i.Math.max(0,s),n[1]=i.Math.max(n[1],s),Z6(t,Vie,r.c+a.b+n[0]-(n[1]-s)/2,n),e==Vie&&(t.c.b=o,t.c.c=r.c+a.b+(o-s)/2)}function ZNt(){this.c=O5(LMe,HKt,25,(wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length,15,1),this.b=O5(LMe,HKt,25,Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe]).length,15,1),this.a=O5(LMe,HKt,25,Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe]).length,15,1),mC(this.c,BKt),mC(this.b,PKt),mC(this.a,PKt)}function KNt(t,e,n){var i,a,r,o;if(e<=n?(a=e,r=n):(a=n,r=e),i=0,null==t.b)t.b=O5(TMe,lKt,25,2,15,1),t.b[0]=a,t.b[1]=r,t.c=!0;else{if(i=t.b.length,t.b[i-1]+1==a)return void(t.b[i-1]=r);o=O5(TMe,lKt,25,i+2,15,1),rHt(t.b,0,o,0,i),t.b=o,t.b[i-1]>=a&&(t.c=!1,t.a=!1),t.b[i++]=a,t.b[i]=r,t.c||_Lt(t)}}function XNt(t,e,n){var i,a,r,o,s,c,l;for(l=e.d,t.a=new K7(l.c.length),t.c=new Om,s=new Wf(l);s.a<s.c.c.length;)o=jz(J1(s),101),r=new jot(null),Wz(t.a,r),YG(t.c,o,r);for(t.b=new Om,mTt(t,e),i=0;i<l.c.length-1;i++)for(c=jz(OU(e.d,i),101),a=i+1;a<l.c.length;a++)YOt(t,c,jz(OU(e.d,a),101),n)}function JNt(t,e,n){var i,a,r,o,s,c;if(!c4(e)){for(Akt(c=yrt(n,(iO(e,14)?jz(e,14).gc():F4(e.Kc()))/t.a|0),V4t,1),s=new Do,o=0,r=e.Kc();r.Ob();)i=jz(r.Pb(),86),s=Ynt(Cst(Hx(Mte,1),zGt,20,0,[s,new db(i)])),o<i.f.b&&(o=i.f.b);for(a=e.Kc();a.Ob();)lct(i=jz(a.Pb(),86),(HUt(),rxe),o);zCt(c),JNt(t,s,n)}}function QNt(t,e){var n,a,r,o,s,c,l;for(n=PKt,oCt(),c=Sse,r=new Wf(e.a);r.a<r.c.c.length;)(o=(a=jz(J1(r),10)).k)!=Sse&&(null==(s=_B(yEt(a,(lGt(),phe))))?(n=i.Math.max(n,0),a.n.b=n+qM(t.a,o,c)):a.n.b=(vG(s),s)),l=qM(t.a,o,c),a.n.b<n+l+a.d.d&&(a.n.b=n+l+a.d.d),n=a.n.b+a.o.b+a.d.a,c=o}function tBt(t,e,n){var i,a,r;for(Hot(r=new RIt(WYt(HCt(aBt(e,!1,!1)),Hw(_B(JIt(e,(Rmt(),pre))))+t.a)),e),YG(t.b,e,r),n.c[n.c.length]=r,!e.n&&(e.n=new tW(HDe,e,1,7)),a=new AO(e.n);a.e!=a.i.gc();)i=XPt(t,jz(wmt(a),137),!0,0,0),n.c[n.c.length]=i;return r}function eBt(t,e,n,i,a){var r,o,s;if(t.d&&t.d.lg(a),Nyt(t,n,jz(a.Xb(0),33),!1)||Nyt(t,i,jz(a.Xb(a.gc()-1),33),!0)||OEt(t,a))return!0;for(s=a.Kc();s.Ob();)for(o=jz(s.Pb(),33),r=e.Kc();r.Ob();)if(FBt(t,o,jz(r.Pb(),33)))return!0;return!1}function nBt(t,e,n){var i,a,r,o,s,c,l,u,d;d=e.c.length;t:for(r=jz((l=t.Yg(n))>=0?t._g(l,!1,!0):aDt(t,n,!1),58).Kc();r.Ob();){for(a=jz(r.Pb(),56),u=0;u<d;++u)if(u1(u,e.c.length),c=(o=jz(e.c[u],72)).dd(),s=o.ak(),i=a.bh(s,!1),null==c?null!=i:!Odt(c,i))continue t;return a}return null}function iBt(t,e,n,i){var a,r,o,s;for(a=jz(NCt(e,(wWt(),SAe)).Kc().Pb(),11),r=jz(NCt(e,sAe).Kc().Pb(),11),s=new Wf(t.j);s.a<s.c.c.length;){for(o=jz(J1(s),11);0!=o.e.c.length;)_Q(jz(OU(o.e,0),17),a);for(;0!=o.g.c.length;)kQ(jz(OU(o.g,0),17),r)}n||lct(e,(lGt(),che),null),i||lct(e,(lGt(),lhe),null)}function aBt(t,e,n){var i,a;if(0==(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i)return Hst(t);if(i=jz(Yet((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),0),202),e&&(cUt((!i.a&&(i.a=new DO(LDe,i,5)),i.a)),Tnt(i,0),Dnt(i,0),_nt(i,0),Ant(i,0)),n)for(!t.a&&(t.a=new tW(PDe,t,6,6)),a=t.a;a.i>1;)uBt(a,a.i-1);return i}function rBt(t,e){var n,i,a,r,o,s,c;for(Akt(e,"Comment post-processing",1),r=new Wf(t.b);r.a<r.c.c.length;){for(a=jz(J1(r),29),i=new Lm,s=new Wf(a.a);s.a<s.c.c.length;)o=jz(J1(s),10),c=jz(yEt(o,(lGt(),Bhe)),15),n=jz(yEt(o,Mde),15),(c||n)&&(Yqt(o,c,n),c&&pst(i,c),n&&pst(i,n));pst(a.a,i)}zCt(e)}function oBt(t,e){var n,i,a,r,o,s;for(n=new Im,a=new Wf(t.b);a.a<a.c.c.length;){for(s=!0,i=0,o=new Wf(jz(J1(a),29).a);o.a<o.c.c.length;)switch(r=jz(J1(o),10),r.k.g){case 4:++i;case 1:h4(n,r);break;case 0:sTt(r,e);default:n.b==n.c||bjt(n,i,s,!1,e),s=!1,i=0}n.b==n.c||bjt(n,i,s,!0,e)}}function sBt(t,e){var n,i,a,r,o,s;for(a=new Lm,n=0;n<=t.i;n++)(i=new $Y(e)).p=t.i-n,a.c[a.c.length]=i;for(s=new Wf(t.o);s.a<s.c.c.length;)EQ(o=jz(J1(s),10),jz(OU(a,t.i-t.f[o.p]),29));for(r=new Wf(a);r.a<r.c.c.length;)0==jz(J1(r),29).a.c.length&&AW(r);e.b.c=O5(Dte,zGt,1,0,5,1),pst(e.b,a)}function cBt(t,e){var n,i,a,r,o,s;for(n=0,s=new Wf(e);s.a<s.c.c.length;){for(o=jz(J1(s),11),Qlt(t.b,t.d[o.p]),a=new m7(o.b);yL(a.a)||yL(a.b);)(r=__(t,o==(i=jz(yL(a.a)?J1(a.a):J1(a.b),17)).c?i.d:i.c))>t.d[o.p]&&(n+=J3(t.b,r),f4(t.a,nht(r)));for(;!Ww(t.a);)_tt(t.b,jz(fW(t.a),19).a)}return n}function lBt(t,e,n){var i,a,r,o;for(r=(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a).i,a=new AO((!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));a.e!=a.i.gc();)0==(!(i=jz(wmt(a),33)).a&&(i.a=new tW(UDe,i,10,11)),i.a).i||(r+=lBt(t,i,!1));if(n)for(o=KJ(e);o;)r+=(!o.a&&(o.a=new tW(UDe,o,10,11)),o.a).i,o=KJ(o);return r}function uBt(t,e){var n,i,a,r;return t.ej()?(i=null,a=t.fj(),t.ij()&&(i=t.kj(t.pi(e),null)),n=t.Zi(4,r=Lwt(t,e),null,e,a),t.bj()&&null!=r&&(i=t.dj(r,i)),i?(i.Ei(n),i.Fi()):t.$i(n),r):(r=Lwt(t,e),t.bj()&&null!=r&&(i=t.dj(r,null))&&i.Fi(),r)}function dBt(t){var e,n,a,r,o,s,c,l,u,d;for(u=t.a,e=new Ny,l=0,a=new Wf(t.d);a.a<a.c.c.length;){for(d=0,Fat((n=jz(J1(a),222)).b,new It),s=cmt(n.b,0);s.b!=s.d.c;)o=jz(d4(s),222),e.a._b(o)&&(r=n.c,d<(c=o.c).d+c.a+u&&d+r.a+u>c.d&&(d=c.d+c.a+u));n.c.d=d,e.a.zc(n,e),l=i.Math.max(l,n.c.d+n.c.a)}return l}function hBt(){hBt=D,lde=new IS("COMMENTS",0),dde=new IS("EXTERNAL_PORTS",1),hde=new IS("HYPEREDGES",2),fde=new IS("HYPERNODES",3),gde=new IS("NON_FREE_PORTS",4),pde=new IS("NORTH_SOUTH_PORTS",5),mde=new IS(U1t,6),cde=new IS("CENTER_LABELS",7),ude=new IS("END_LABELS",8),bde=new IS("PARTITIONS",9)}function fBt(t){var e,n,i,a,r;for(a=new Lm,e=new DU((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a)),i=new oq(XO(gOt(t).a.Kc(),new u));gIt(i);)iO(Yet((!(n=jz(V6(i),79)).b&&(n.b=new cF(NDe,n,4,7)),n.b),0),186)||(r=Ckt(jz(Yet((!n.c&&(n.c=new cF(NDe,n,5,8)),n.c),0),82)),e.a._b(r)||(a.c[a.c.length]=r));return a}function gBt(t){var e,n,i,a,r;for(a=new Ny,e=new DU((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a)),i=new oq(XO(gOt(t).a.Kc(),new u));gIt(i);)iO(Yet((!(n=jz(V6(i),79)).b&&(n.b=new cF(NDe,n,4,7)),n.b),0),186)||(r=Ckt(jz(Yet((!n.c&&(n.c=new cF(NDe,n,5,8)),n.c),0),82)),e.a._b(r)||a.a.zc(r,a));return a}function pBt(t,e,n,i,a){return i<0?((i=Vkt(t,a,Cst(Hx(zee,1),cZt,2,6,[KZt,XZt,JZt,QZt,tKt,eKt,nKt,iKt,aKt,rKt,oKt,sKt]),e))<0&&(i=Vkt(t,a,Cst(Hx(zee,1),cZt,2,6,["Jan","Feb","Mar","Apr",tKt,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),!(i<0||(n.k=i,0))):i>0&&(n.k=i-1,!0)}function bBt(t,e,n,i,a){return i<0?((i=Vkt(t,a,Cst(Hx(zee,1),cZt,2,6,[KZt,XZt,JZt,QZt,tKt,eKt,nKt,iKt,aKt,rKt,oKt,sKt]),e))<0&&(i=Vkt(t,a,Cst(Hx(zee,1),cZt,2,6,["Jan","Feb","Mar","Apr",tKt,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),e)),!(i<0||(n.k=i,0))):i>0&&(n.k=i-1,!0)}function mBt(t,e,n,i,a,r){var o,s,c;if(s=32,i<0){if(e[0]>=t.length||43!=(s=lZ(t,e[0]))&&45!=s||(++e[0],(i=qAt(t,e))<0))return!1;45==s&&(i=-i)}return 32==s&&e[0]-n==2&&2==a.b&&(o=(c=(new Ak).q.getFullYear()-cKt+cKt-80)%100,r.a=i==o,i+=100*(c/100|0)+(i<o?100:0)),r.p=i,!0}function yBt(t,e){var n,a,r;KJ(t)&&(r=jz(yEt(e,(zYt(),Fbe)),174),HA(JIt(t,tme))===HA((Z_t(),KTe))&&Kmt(t,tme,ZTe),HE(),a=Hqt(new Mw(KJ(t)),new KM(KJ(t)?new Mw(KJ(t)):null,t),!1,!0),sat(r,(ypt(),NAe)),(n=jz(yEt(e,$be),8)).a=i.Math.max(a.a,n.a),n.b=i.Math.max(a.b,n.b))}function vBt(t,e,n){var i,a,r,o,s,c;for(o=jz(yEt(t,(lGt(),Jde)),15).Kc();o.Ob();){switch(r=jz(o.Pb(),10),jz(yEt(r,(zYt(),vbe)),163).g){case 2:EQ(r,e);break;case 4:EQ(r,n)}for(a=new oq(XO(lft(r).a.Kc(),new u));gIt(a);)(!(i=jz(V6(a),17)).c||!i.d)&&(s=!i.d,c=jz(yEt(i,mhe),11),s?_Q(i,c):kQ(i,c))}}function wBt(){wBt=D,$le=new WZ(yJt,0,(wWt(),cAe),cAe),Ule=new WZ(wJt,1,EAe,EAe),jle=new WZ(vJt,2,sAe,sAe),Wle=new WZ(xJt,3,SAe,SAe),Hle=new WZ("NORTH_WEST_CORNER",4,SAe,cAe),zle=new WZ("NORTH_EAST_CORNER",5,cAe,sAe),qle=new WZ("SOUTH_WEST_CORNER",6,EAe,SAe),Vle=new WZ("SOUTH_EAST_CORNER",7,sAe,EAe)}function xBt(){xBt=D,_Ee=Cst(Hx(DMe,1),jKt,25,14,[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368e3,{l:3506176,m:794077,h:1},{l:884736,m:916411,h:20},{l:3342336,m:3912489,h:363},{l:589824,m:3034138,h:6914},{l:3407872,m:1962506,h:138294}]),i.Math.pow(2,-65)}function RBt(t,e){var n,i,a,r,o;if(0==t.c.length)return new nA(nht(0),nht(0));for(n=(u1(0,t.c.length),jz(t.c[0],11)).j,o=0,r=e.g,i=e.g+1;o<t.c.length-1&&n.g<r;)n=(u1(++o,t.c.length),jz(t.c[o],11)).j;for(a=o;a<t.c.length-1&&n.g<i;)++a,n=(u1(o,t.c.length),jz(t.c[o],11)).j;return new nA(nht(o),nht(a))}function _Bt(t,e,n){var a,r,o,s,c,l,u,d,h,f;for(o=e.c.length,u1(n,e.c.length),c=(s=jz(e.c[n],286)).a.o.a,h=s.c,f=0,u=s.c;u<=s.f;u++){if(c<=t.a[u])return u;for(d=t.a[u],l=null,r=n+1;r<o;r++)u1(r,e.c.length),(a=jz(e.c[r],286)).c<=u&&a.f>=u&&(l=a);l&&(d=i.Math.max(d,l.a.o.a)),d>f&&(h=u,f=d)}return h}function kBt(t,e,n){var i,a,r;if(t.e=n,t.d=0,t.b=0,t.f=1,t.i=e,16==(16&t.e)&&(t.i=bFt(t.i)),t.j=t.i.length,ZYt(t),r=Gpt(t),t.d!=t.j)throw $m(new ax(wGt((rL(),f5t))));if(t.g){for(i=0;i<t.g.a.c.length;i++)if(a=jz(dG(t.g,i),584),t.f<=a.a)throw $m(new ax(wGt((rL(),g5t))));t.g.a.c=O5(Dte,zGt,1,0,5,1)}return r}function EBt(t,e){var n,i;if(null==e){for(!t.a&&(t.a=new tW(qIe,t,9,5)),i=new AO(t.a);i.e!=i.i.gc();)if(null==((n=jz(wmt(i),678)).c??n.zb))return n}else for(!t.a&&(t.a=new tW(qIe,t,9,5)),i=new AO(t.a);i.e!=i.i.gc();)if(mF(e,(n=jz(wmt(i),678)).c??n.zb))return n;return null}function CBt(t,e){var n;switch(n=null,e.g){case 1:t.e.Xe((cGt(),tSe))&&(n=jz(t.e.We(tSe),249));break;case 3:t.e.Xe((cGt(),eSe))&&(n=jz(t.e.We(eSe),249));break;case 2:t.e.Xe((cGt(),QCe))&&(n=jz(t.e.We(QCe),249));break;case 4:t.e.Xe((cGt(),nSe))&&(n=jz(t.e.We(nSe),249))}return!n&&(n=jz(t.e.We((cGt(),XCe)),249)),n}function SBt(t,e,n){var i,a,r,o,s,c;for(e.p=1,a=e.c,c=Mgt(e,(rit(),Hye)).Kc();c.Ob();)for(i=new Wf(jz(c.Pb(),11).g);i.a<i.c.c.length;)e!=(s=jz(J1(i),17).d.i)&&s.c.p<=a.p&&((r=a.p+1)==n.b.c.length?((o=new $Y(n)).p=r,Wz(n.b,o),EQ(s,o)):EQ(s,o=jz(OU(n.b,r),29)),SBt(t,s,n))}function TBt(t,e,n){var a,r,o,s,c,l;for(r=n,o=0,c=new Wf(e);c.a<c.c.c.length;)Kmt(s=jz(J1(c),33),(qwt(),IRe),nht(r++)),l=fBt(s),a=i.Math.atan2(s.j+s.f/2,s.i+s.g/2),(a+=a<0?J4t:0)<.7853981633974483||a>b3t?mL(l,t.b):a<=b3t&&a>m3t?mL(l,t.d):a<=m3t&&a>y3t?mL(l,t.c):a<=y3t&&mL(l,t.a),o=TBt(t,l,o);return r}function ABt(){var t;for(ABt=D,Jee=new q7(1,1),tne=new q7(1,10),nne=new q7(0,0),Xee=new q7(-1,1),Qee=Cst(Hx(sne,1),cZt,91,0,[nne,Jee,new q7(1,2),new q7(1,3),new q7(1,4),new q7(1,5),new q7(1,6),new q7(1,7),new q7(1,8),new q7(1,9),tne]),ene=O5(sne,cZt,91,32,0,1),t=0;t<ene.length;t++)ene[t]=Qbt(yq(1,t))}function DBt(t,e,n,i,a,r){var o,s,c,l;for(s=!w_(AZ(t.Oc(),new ag(new Jn))).sd((fE(),Qne)),o=t,r==(jdt(),zSe)&&(o=iO(o,152)?o7(jz(o,152)):iO(o,131)?jz(o,131).a:iO(o,54)?new lw(o):new Ck(o)),l=o.Kc();l.Ob();)(c=jz(l.Pb(),70)).n.a=e.a,c.n.b=s?e.b+(i.b-c.o.b)/2:a?e.b:e.b+i.b-c.o.b,e.a+=c.o.a+n}function IBt(t,e,n,i){var a,r,o,s,c;for(a=(i.c+i.a)/2,yK(e.j),MH(e.j,a),yK(n.e),MH(n.e,a),c=new UR,o=new Wf(t.f);o.a<o.c.c.length;)BRt(c,e,s=jz(J1(o),129).a),BRt(c,n,s);for(r=new Wf(t.k);r.a<r.c.c.length;)BRt(c,e,s=jz(J1(r),129).b),BRt(c,n,s);return c.b+=2,c.a+=IK(e,t.q),c.a+=IK(t.q,n),c}function LBt(t,e,n){var i,a,r,o,s;if(!c4(e)){for(Akt(s=yrt(n,(iO(e,14)?jz(e,14).gc():F4(e.Kc()))/t.a|0),V4t,1),o=new Lo,r=null,a=e.Kc();a.Ob();)i=jz(a.Pb(),86),o=Ynt(Cst(Hx(Mte,1),zGt,20,0,[o,new db(i)])),r&&(lct(r,(HUt(),dxe),i),lct(i,ixe,r),H5(i)==H5(r)&&(lct(r,hxe,i),lct(i,axe,r))),r=i;zCt(s),LBt(t,o,n)}}function OBt(t){var e,n,i,a,r,o,s;for(n=t.i,e=t.n,s=n.d,t.f==(H9(),iae)?s+=(n.a-t.e.b)/2:t.f==nae&&(s+=n.a-t.e.b),a=new Wf(t.d);a.a<a.c.c.length;){switch(o=(i=jz(J1(a),181)).rf(),(r=new HR).b=s,s+=o.b+t.a,t.b.g){case 0:r.a=n.c+e.b;break;case 1:r.a=n.c+e.b+(n.b-o.a)/2;break;case 2:r.a=n.c+n.b-e.c-o.a}i.tf(r)}}function MBt(t){var e,n,i,a,r,o,s;for(n=t.i,e=t.n,s=n.c,t.b==(K8(),Kie)?s+=(n.b-t.e.a)/2:t.b==Jie&&(s+=n.b-t.e.a),a=new Wf(t.d);a.a<a.c.c.length;){switch(o=(i=jz(J1(a),181)).rf(),(r=new HR).a=s,s+=o.a+t.a,t.f.g){case 0:r.b=n.d+e.d;break;case 1:r.b=n.d+e.d+(n.a-o.b)/2;break;case 2:r.b=n.d+n.a-e.a-o.b}i.tf(r)}}function NBt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;l=n.a.c,o=n.a.c+n.a.b,h=(r=jz(NY(n.c,e),459)).f,f=r.a,s=new OT(l,h),u=new OT(o,f),a=l,n.p||(a+=t.c),c=new OT(a+=n.F+n.v*t.b,h),d=new OT(a,f),Qnt(e.a,Cst(Hx(EEe,1),cZt,8,0,[s,c])),n.d.a.gc()>1&&(i=new OT(a,n.b),MH(e.a,i)),Qnt(e.a,Cst(Hx(EEe,1),cZt,8,0,[d,u]))}function BBt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,F6t),"ELK Randomizer"),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new Xs))),r2(t,F6t,ZJt,IAe),r2(t,F6t,mQt,15),r2(t,F6t,vQt,nht(0)),r2(t,F6t,GJt,gQt)}function PBt(){var t,e,n,i,a,r;for(PBt=D,YOe=O5(IMe,m7t,25,255,15,1),GOe=O5(SMe,YZt,25,16,15,1),e=0;e<255;e++)YOe[e]=-1;for(n=57;n>=48;n--)YOe[n]=n-48<<24>>24;for(i=70;i>=65;i--)YOe[i]=i-65+10<<24>>24;for(a=102;a>=97;a--)YOe[a]=a-97+10<<24>>24;for(r=0;r<10;r++)GOe[r]=48+r&ZZt;for(t=10;t<=15;t++)GOe[t]=65+t-10&ZZt}function FBt(t,e,n){var i,a,r,o,s,c,l,u;return s=e.i-t.g/2,c=n.i-t.g/2,l=e.j-t.g/2,u=n.j-t.g/2,r=e.g+t.g/2,o=n.g+t.g/2,i=e.f+t.g/2,a=n.f+t.g/2,s<c+o&&c<s&&l<u+a&&u<l||c<s+r&&s<c&&u<l+i&&l<u||s<c+o&&c<s&&l<u&&u<l+i||c<s+r&&s<c&&l<u+a&&u<l}function jBt(t){var e,n,a,r,o;r=jz(yEt(t,(zYt(),Fbe)),21),o=jz(yEt(t,zbe),21),e=new hI(n=new OT(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a)),r.Hc((ypt(),NAe))&&(a=jz(yEt(t,$be),8),o.Hc((QFt(),UAe))&&(a.a<=0&&(a.a=20),a.b<=0&&(a.b=20)),e.a=i.Math.max(n.a,a.a),e.b=i.Math.max(n.b,a.b)),zw(RB(yEt(t,jbe)))||qzt(t,n,e)}function $Bt(t,e){var n,i,a,r;for(r=rft(e,(wWt(),EAe)).Kc();r.Ob();)i=jz(r.Pb(),11),(n=jz(yEt(i,(lGt(),xhe)),10))&&qMt(aE(iE(rE(nE(new $y,0),.1),t.i[e.p].d),t.i[n.p].a));for(a=rft(e,cAe).Kc();a.Ob();)i=jz(a.Pb(),11),(n=jz(yEt(i,(lGt(),xhe)),10))&&qMt(aE(iE(rE(nE(new $y,0),.1),t.i[n.p].d),t.i[e.p].a))}function zBt(t){var e,n,i,a,r;if(!t.c){if(r=new _c,null==(e=kLe).a.zc(t,e)){for(i=new AO(a3(t));i.e!=i.i.gc();)iO(a=d$t(n=jz(wmt(i),87)),88)&&pY(r,zBt(jz(a,26))),l8(r,n);e.a.Bc(t),e.a.gc()}Igt(r),aut(r),t.c=new LD((jz(Yet(GK((GY(),JIe).o),15),18),r.i),r.g),E6(t).b&=-33}return t.c}function HBt(t){var e;if(10!=t.c)throw $m(new ax(wGt((rL(),p5t))));switch(e=t.a){case 110:e=10;break;case 114:e=13;break;case 116:e=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw $m(new ax(wGt((rL(),q5t))))}return e}function UBt(t){var e,n,i,a;if(0==t.l&&0==t.m&&0==t.h)return"0";if(t.h==SKt&&0==t.m&&0==t.l)return"-9223372036854775808";if(t.h>>19)return"-"+UBt(rct(t));for(n=t,i="";0!=n.l||0!=n.m||0!=n.h;){if(n=DUt(n,F6(DKt),!0),e=""+R_(dee),0!=n.l||0!=n.m||0!=n.h)for(a=9-e.length;a>0;a--)e="0"+e;i=e+i}return i}function VBt(){if(!Object.create||!Object.getOwnPropertyNames)return!1;var t="__proto__",e=Object.create(null);return void 0===e[t]&&!(0!=Object.getOwnPropertyNames(e).length||(e[t]=42,42!==e[t])||0==Object.getOwnPropertyNames(e).length)}function qBt(t){var e,n,i,a,r,o,s;for(e=!1,n=0,a=new Wf(t.d.b);a.a<a.c.c.length;)for((i=jz(J1(a),29)).p=n++,o=new Wf(i.a);o.a<o.c.c.length;)r=jz(J1(o),10),!e&&!c4(lft(r))&&(e=!0);s=xV((jdt(),$Se),Cst(Hx(USe,1),IZt,103,0,[FSe,jSe])),e||(sat(s,zSe),sat(s,PSe)),t.a=new det(s),DW(t.f),DW(t.b),DW(t.e),DW(t.g)}function WBt(t,e,n){var i,a,r,o,s,c,l,u,d;for(i=n.c,a=n.d,s=g1(e.c),c=g1(e.d),i==e.c?(s=dOt(t,s,a),c=cEt(e.d)):(s=cEt(e.c),c=dOt(t,c,a)),n6(l=new BR(e.a),s,l.a,l.a.a),n6(l,c,l.c.b,l.c),o=e.c==i,d=new Ky,r=0;r<l.b-1;++r)u=new nA(jz(Nmt(l,r),8),jz(Nmt(l,r+1),8)),o&&0==r||!o&&r==l.b-2?d.b=u:Wz(d.a,u);return d}function YBt(t,e){var n,i,a,r;if(0!=(r=t.j.g-e.j.g))return r;if(n=jz(yEt(t,(zYt(),eme)),19),i=jz(yEt(e,eme),19),n&&i&&0!=(a=n.a-i.a))return a;switch(t.j.g){case 1:return Cht(t.n.a,e.n.a);case 2:return Cht(t.n.b,e.n.b);case 3:return Cht(e.n.a,t.n.a);case 4:return Cht(e.n.b,t.n.b);default:throw $m(new Fw(i1t))}}function GBt(t,e,n,a){var r,o,s,c;if(F4((zj(),new oq(XO(lft(e).a.Kc(),new u))))>=t.a||!ekt(e,n))return-1;if(c4(jz(a.Kb(e),20)))return 1;for(r=0,s=jz(a.Kb(e),20).Kc();s.Ob();)if(-1==(c=GBt(t,(o=jz(s.Pb(),17)).c.i==e?o.d.i:o.c.i,n,a))||(r=i.Math.max(r,c))>t.c-1)return-1;return r+1}function ZBt(t,e){var n,i,a,r,o,s;if(HA(e)===HA(t))return!0;if(!iO(e,15)||(i=jz(e,15),s=t.gc(),i.gc()!=s))return!1;if(o=i.Kc(),t.ni()){for(n=0;n<s;++n)if(a=t.ki(n),r=o.Pb(),null==a?null!=r:!Odt(a,r))return!1}else for(n=0;n<s;++n)if(a=t.ki(n),r=o.Pb(),HA(a)!==HA(r))return!1;return!0}function KBt(t,e){var n,i,a,r,o,s;if(t.f>0)if(t.qj(),null!=e){for(r=0;r<t.d.length;++r)if(n=t.d[r])for(i=jz(n.g,367),s=n.i,o=0;o<s;++o)if(Odt(e,(a=i[o]).dd()))return!0}else for(r=0;r<t.d.length;++r)if(n=t.d[r])for(i=jz(n.g,367),s=n.i,o=0;o<s;++o)if(a=i[o],HA(e)===HA(a.dd()))return!0;return!1}function XBt(t,e,n){var i,a,r,o;Akt(n,"Orthogonally routing hierarchical port edges",1),t.a=0,OVt(e,i=qHt(e)),ZUt(t,e,i),uWt(e),a=jz(yEt(e,(zYt(),tme)),98),Sqt((u1(0,(r=e.b).c.length),jz(r.c[0],29)),a,e),Sqt(jz(OU(r,r.c.length-1),29),a,e),_zt((u1(0,(o=e.b).c.length),jz(o.c[0],29))),_zt(jz(OU(o,o.c.length-1),29)),zCt(n)}function JBt(t){switch(t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return t-48<<24>>24;case 97:case 98:case 99:case 100:case 101:case 102:return t-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return t-65+10<<24>>24;default:throw $m(new _x("Invalid hexadecimal"))}}function QBt(t,e,n){var i,a,r,o;for(Akt(n,"Processor order nodes",2),t.a=Hw(_B(yEt(e,(SIt(),Oxe)))),a=new Zk,o=cmt(e.b,0);o.b!=o.d.c;)zw(RB(yEt(r=jz(d4(o),86),(HUt(),fxe))))&&n6(a,r,a.c.b,a.c);EN(0!=a.b),PHt(t,i=jz(a.a.a.c,86)),!n.b&&Hit(n,1),$Pt(t,i,0-Hw(_B(yEt(i,(HUt(),rxe))))/2,0),!n.b&&Hit(n,1),zCt(n)}function tPt(){tPt=D,Pie=new $C("SPIRAL",0),Lie=new $C("LINE_BY_LINE",1),Oie=new $C("MANHATTAN",2),Iie=new $C("JITTER",3),Nie=new $C("QUADRANTS_LINE_BY_LINE",4),Bie=new $C("QUADRANTS_MANHATTAN",5),Mie=new $C("QUADRANTS_JITTER",6),Die=new $C("COMBINE_LINE_BY_LINE_MANHATTAN",7),Aie=new $C("COMBINE_JITTER_MANHATTAN",8)}function ePt(t,e,n,i){var a,r,o,s,c,l;for(c=ORt(t,n),l=ORt(e,n),a=!1;c&&l&&(i||ywt(c,l,n));)o=ORt(c,n),s=ORt(l,n),A9(e),A9(t),r=c.c,iVt(c,!1),iVt(l,!1),n?(Zwt(e,l.p,r),e.p=l.p,Zwt(t,c.p+1,r),t.p=c.p):(Zwt(t,c.p,r),t.p=c.p,Zwt(e,l.p+1,r),e.p=l.p),EQ(c,null),EQ(l,null),c=o,l=s,a=!0;return a}function nPt(t,e,n,i){var a,r,o,s,c;for(a=!1,r=!1,s=new Wf(i.j);s.a<s.c.c.length;)HA(yEt(o=jz(J1(s),11),(lGt(),fhe)))===HA(n)&&(0==o.g.c.length?0==o.e.c.length||(a=!0):r=!0);return c=0,a&&a^r?c=n.j==(wWt(),cAe)?-t.e[i.c.p][i.p]:e-t.e[i.c.p][i.p]:r&&a^r?c=t.e[i.c.p][i.p]+1:a&&r&&(c=n.j==(wWt(),cAe)?0:e/2),c}function iPt(t,e,n,i,a,r,o,s){var c,l,u;for(c=0,null!=e&&(c^=myt(e.toLowerCase())),null!=n&&(c^=myt(n)),null!=i&&(c^=myt(i)),null!=o&&(c^=myt(o)),null!=s&&(c^=myt(s)),l=0,u=r.length;l<u;l++)c^=myt(r[l]);t?c|=256:c&=-257,a?c|=16:c&=-17,this.f=c,this.i=null==e?null:(vG(e),e),this.a=n,this.d=i,this.j=r,this.g=o,this.e=s}function aPt(t,e,n){var i,a;switch(a=null,e.g){case 1:prt(),a=Ose;break;case 2:prt(),a=Nse}switch(i=null,n.g){case 1:prt(),i=Mse;break;case 2:prt(),i=Lse;break;case 3:prt(),i=Bse;break;case 4:prt(),i=Pse}return a&&i?Bz(t.j,new jd(new Kw(Cst(Hx(Lte,1),zGt,169,0,[jz(yY(a),169),jz(yY(i),169)])))):(kK(),kK(),cne)}function rPt(t){var e,n,i;switch(e=jz(yEt(t,(zYt(),$be)),8),lct(t,$be,new OT(e.b,e.a)),jz(yEt(t,vpe),248).g){case 1:lct(t,vpe,(fyt(),LEe));break;case 2:lct(t,vpe,(fyt(),TEe));break;case 3:lct(t,vpe,(fyt(),DEe));break;case 4:lct(t,vpe,(fyt(),IEe))}(t.q?t.q:(kK(),kK(),lne))._b(sme)&&(i=(n=jz(yEt(t,sme),8)).a,n.a=n.b,n.b=i)}function oPt(t,e,n,i,a,r){if(this.b=n,this.d=a,t>=e.length)throw $m(new Aw("Greedy SwitchDecider: Free layer not in graph."));this.c=e[t],this.e=new GF(i),vat(this.e,this.c,(wWt(),SAe)),this.i=new GF(i),vat(this.i,this.c,sAe),this.f=new uV(this.c),this.a=!r&&a.i&&!a.s&&this.c[0].k==(oCt(),kse),this.a&&pSt(this,t,e.length)}function sPt(t,e){var n,i,a,r,o,s;r=!t.B.Hc((QFt(),zAe)),o=t.B.Hc(VAe),t.a=new zgt(o,r,t.c),t.n&&vK(t.a.n,t.n),ww(t.g,(Net(),Vie),t.a),e||((i=new Tbt(1,r,t.c)).n.a=t.k,mV(t.p,(wWt(),cAe),i),(a=new Tbt(1,r,t.c)).n.d=t.k,mV(t.p,EAe,a),(s=new Tbt(0,r,t.c)).n.c=t.k,mV(t.p,SAe,s),(n=new Tbt(0,r,t.c)).n.b=t.k,mV(t.p,sAe,n))}function cPt(t){var e,n,i;switch((e=jz(yEt(t.d,(zYt(),Xpe)),218)).g){case 2:n=kYt(t);break;case 3:i=new Lm,Kk(AZ(DZ(htt(htt(new NU(null,new h1(t.d.b,16)),new Da),new Ia),new La),new ma),new Cp(i)),n=i;break;default:throw $m(new Fw("Compaction not supported for "+e+" edges."))}pUt(t,n),t6(new Cf(t.g),new kp(t))}function lPt(t,e){var n;return n=new Jt,e&&Hot(n,jz(NY(t.a,ODe),94)),iO(e,470)&&Hot(n,jz(NY(t.a,MDe),94)),iO(e,354)?(Hot(n,jz(NY(t.a,HDe),94)),n):(iO(e,82)&&Hot(n,jz(NY(t.a,NDe),94)),iO(e,239)?(Hot(n,jz(NY(t.a,UDe),94)),n):iO(e,186)?(Hot(n,jz(NY(t.a,VDe),94)),n):(iO(e,352)&&Hot(n,jz(NY(t.a,BDe),94)),n))}function uPt(){uPt=D,Xre=new qI((cGt(),pSe),nht(1)),ioe=new qI(ISe,80),noe=new qI(kSe,5),Fre=new qI(iCe,gQt),Jre=new qI(bSe,nht(1)),eoe=new qI(vSe,(cM(),!0)),Gre=new WI(50),Yre=new qI(qCe,Gre),$re=CCe,Zre=rSe,jre=new qI(fCe,!1),Wre=VCe,qre=zCe,Vre=BCe,Ure=MCe,Kre=lSe,xCt(),Hre=Sre,aoe=Lre,zre=Cre,Qre=Are,toe=Ire}function dPt(t){var e,n,i,a,r,o,s;for(s=new b6,o=new Wf(t.a);o.a<o.c.c.length;)if((r=jz(J1(o),10)).k!=(oCt(),kse))for(FIt(s,r,new HR),a=new oq(XO(dft(r).a.Kc(),new u));gIt(a);)if((i=jz(V6(a),17)).c.i.k!=kse&&i.d.i.k!=kse)for(n=cmt(i.a,0);n.b!=n.d.c;)KRt(s,new fS((e=jz(d4(n),8)).a,e.b));return s}function hPt(){hPt=D,Nke=new rm(P3t),TE(),Oke=new DD(H3t,Mke=Uke),Lst(),Ike=new DD(F3t,Lke=Yke),ICt(),Ake=new DD(j3t,Dke=ike),Eke=new DD($3t,null),D7(),Ske=new DD(z3t,Tke=J_e),CE(),wke=new DD(U3t,xke=W_e),Rke=new DD(V3t,(cM(),!1)),_ke=new DD(q3t,nht(64)),kke=new DD(W3t,!0),Cke=Q_e}function fPt(t){var e,n,i,a,r;if(null==t.a)if(t.a=O5(AMe,JXt,25,t.c.b.c.length,16,1),t.a[0]=!1,IN(t.c,(zYt(),Vme)))for(n=jz(yEt(t.c,Vme),15).Kc();n.Ob();)(e=jz(n.Pb(),19).a)>0&&e<t.a.length&&(t.a[e]=!1);else for((r=new Wf(t.c.b)).a<r.c.c.length&&J1(r),i=1;r.a<r.c.c.length;)a=jz(J1(r),29),t.a[i++]=qLt(a)}function gPt(t,e){var n,i;switch(i=t.b,e){case 1:t.b|=1,t.b|=4,t.b|=8;break;case 2:t.b|=2,t.b|=4,t.b|=8;break;case 4:t.b|=1,t.b|=2,t.b|=4,t.b|=8;break;case 3:t.b|=16,t.b|=8;break;case 0:t.b|=32,t.b|=16,t.b|=8,t.b|=1,t.b|=2,t.b|=4}if(t.b!=i&&t.c)for(n=new AO(t.c);n.e!=n.i.gc();)DTt(E6(jz(wmt(n),473)),e)}function pPt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f;for(a=!1,s=0,c=(o=e).length;s<c;++s)r=o[s],zw((cM(),!!r.e))&&!jz(OU(t.b,r.e.p),214).s&&(a|=(l=r.e,(d=(u=jz(OU(t.b,l.p),214)).e)[h=lR(n,d.length)][0].k==(oCt(),kse)?d[h]=IMt(r,d[h],n?(wWt(),SAe):(wWt(),sAe)):u.c.Tf(d,n),f=NMt(t,u,n,i),MNt(u.e,u.o,n),f));return a}function bPt(t,e){var n,i,a,r,o;for(r=(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a).i,a=new AO((!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));a.e!=a.i.gc();)HA(JIt(i=jz(wmt(a),33),(cGt(),xCe)))!==HA((odt(),yTe))&&((o=jz(JIt(e,mSe),149))==(n=jz(JIt(i,mSe),149))||o&&w6(o,n))&&0!=(!i.a&&(i.a=new tW(UDe,i,10,11)),i.a).i&&(r+=bPt(t,i));return r}function mPt(t){var e,n,i,a,r,o,s;for(i=0,s=0,o=new Wf(t.d);o.a<o.c.c.length;)r=jz(J1(o),101),a=jz(E3(AZ(new NU(null,new h1(r.j,16)),new Ya),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15),n=null,i<=s?(wWt(),n=cAe,i+=a.gc()):s<i&&(wWt(),n=EAe,s+=a.gc()),e=n,Kk(DZ(a.Oc(),new Ha),new Ap(e))}function yPt(t){var e,n,i,a,r,o,s,c;for(t.b=new mDt(new Kw((wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe]))),new Kw((Sat(),Cst(Hx(Fle,1),IZt,361,0,[Ble,Nle,Mle])))),s=0,c=(o=Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length;s<c;++s)for(r=o[s],i=0,a=(n=Cst(Hx(Fle,1),IZt,361,0,[Ble,Nle,Mle])).length;i<a;++i)e=n[i],YRt(t.b,r,e,new Lm)}function vPt(t,e){var n,i,a,r,o,s,c,l,u,d;if(o=jz(jz(c7(t.r,e),21),84),s=t.u.Hc((dAt(),iAe)),n=t.u.Hc(tAe),i=t.u.Hc(QTe),l=t.u.Hc(aAe),d=t.B.Hc((QFt(),ZAe)),u=!n&&!i&&(l||2==o.gc()),lNt(t,e),a=null,c=null,s){for(c=a=jz((r=o.Kc()).Pb(),111);r.Ob();)c=jz(r.Pb(),111);a.d.b=0,c.d.c=0,u&&!a.a&&(a.d.c=0)}d&&(Nkt(o),s&&(a.d.b=0,c.d.c=0))}function wPt(t,e){var n,i,a,r,o,s,c,l,u,d;if(o=jz(jz(c7(t.r,e),21),84),s=t.u.Hc((dAt(),iAe)),n=t.u.Hc(tAe),i=t.u.Hc(QTe),c=t.u.Hc(aAe),d=t.B.Hc((QFt(),ZAe)),l=!n&&!i&&(c||2==o.gc()),Gjt(t,e),u=null,a=null,s){for(a=u=jz((r=o.Kc()).Pb(),111);r.Ob();)a=jz(r.Pb(),111);u.d.d=0,a.d.a=0,l&&!u.a&&(u.d.a=0)}d&&(Bkt(o),s&&(u.d.d=0,a.d.a=0))}function xPt(t,e,n){var i,a,r,o,s;if(i=e.k,e.p>=0)return!1;if(e.p=n.b,Wz(n.e,e),i==(oCt(),Cse)||i==Tse)for(a=new Wf(e.j);a.a<a.c.c.length;)for(s=new Ug(new Wf(new Hg(jz(J1(a),11)).a.g));yL(s.a);)if(o=(r=jz(J1(s.a),17).d.i).k,e.c!=r.c&&(o==Cse||o==Tse)&&xPt(t,r,n))return!0;return!0}function RPt(t){var e;return 64&t.Db?PDt(t):((e=new lM(PDt(t))).a+=" (changeable: ",y_(e,0!=(t.Bb&w7t)),e.a+=", volatile: ",y_(e,0!=(t.Bb&k8t)),e.a+=", transient: ",y_(e,0!=(t.Bb&FKt)),e.a+=", defaultValueLiteral: ",iD(e,t.j),e.a+=", unsettable: ",y_(e,0!=(t.Bb&_8t)),e.a+=", derived: ",y_(e,0!=(t.Bb&lZt)),e.a+=")",e.a)}function _Pt(t){var e,n,i,a,r,o,s,c,l,u;for(n=OOt(t.d),r=(a=jz(yEt(t.b,(Rmt(),bre)),116)).b+a.c,o=a.d+a.a,c=n.d.a*t.e+r,s=n.b.a*t.f+o,Dh(t.b,new OT(c,s)),u=new Wf(t.g);u.a<u.c.c.length;)e=VP(FN(new OT((l=jz(J1(u),562)).g-n.a.a,l.i-n.c.a),l.a,l.b),vO(jN(jL(YI(l.e)),l.d*l.a,l.c*l.b),-.5)),i=GI(l.e),eR(l.e,qP(e,i))}function kPt(t,e,n,i){var a,r,o,s,c;for(c=O5(LMe,cZt,104,(wWt(),Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length,0,2),o=0,s=(r=Cst(Hx(MAe,1),KQt,61,0,[CAe,cAe,sAe,EAe,SAe])).length;o<s;++o)c[(a=r[o]).g]=O5(LMe,HKt,25,t.c[a.g],15,1);return $xt(c,t,cAe),$xt(c,t,EAe),Mvt(c,t,cAe,e,n,i),Mvt(c,t,sAe,e,n,i),Mvt(c,t,EAe,e,n,i),Mvt(c,t,SAe,e,n,i),c}function EPt(t,e,n){if(cW(t.a,e)){if(Fk(jz(NY(t.a,e),53),n))return 1}else YG(t.a,e,new Ny);if(cW(t.a,n)){if(Fk(jz(NY(t.a,n),53),e))return-1}else YG(t.a,n,new Ny);if(cW(t.b,e)){if(Fk(jz(NY(t.b,e),53),n))return-1}else YG(t.b,e,new Ny);if(cW(t.b,n)){if(Fk(jz(NY(t.b,n),53),e))return 1}else YG(t.b,n,new Ny);return 0}function CPt(t,e,n,i){var a,r,o,s,c,l;if(null==n)for(a=jz(t.g,119),s=0;s<t.i;++s)if((o=a[s]).ak()==e)return Fmt(t,o,i);return XE(),r=jz(e,66).Oj()?jz(n,72):X4(e,n),mI(t.e)?(l=!rpt(t,e),i=Kgt(t,r,i),c=e.$j()?IX(t,3,e,null,n,bzt(t,e,n,iO(e,99)&&0!=(jz(e,18).Bb&$Kt)),l):IX(t,1,e,e.zj(),n,-1,l),i?i.Ei(c):i=c):i=Kgt(t,r,i),i}function SPt(t){var e,n,a,r,o,s;t.q==(Z_t(),YTe)||t.q==WTe||(r=t.f.n.d+qH(jz(oZ(t.b,(wWt(),cAe)),124))+t.c,e=t.f.n.a+qH(jz(oZ(t.b,EAe),124))+t.c,a=jz(oZ(t.b,sAe),124),s=jz(oZ(t.b,SAe),124),o=i.Math.max(0,a.n.d-r),o=i.Math.max(o,s.n.d-r),n=i.Math.max(0,a.n.a-e),n=i.Math.max(n,s.n.a-e),a.n.d=o,s.n.d=o,a.n.a=n,s.n.a=n)}function TPt(t,e){var n,i,a,r,o,s,c;for(Akt(e,"Restoring reversed edges",1),o=new Wf(t.b);o.a<o.c.c.length;)for(s=new Wf(jz(J1(o),29).a);s.a<s.c.c.length;)for(c=new Wf(jz(J1(s),10).j);c.a<c.c.c.length;)for(a=0,r=(i=X0(jz(J1(c),11).g)).length;a<r;++a)zw(RB(yEt(n=i[a],(lGt(),Che))))&&tzt(n,!1);zCt(e)}function APt(){this.b=new b3,this.d=new b3,this.e=new b3,this.c=new b3,this.a=new Om,this.f=new Om,OJ(EEe,new ws,new xs),OJ(CEe,new Ls,new Os),OJ(xse,new Ms,new Ns),OJ(Ise,new Ps,new Fs),OJ(aDe,new js,new $s),OJ(mne,new Rs,new _s),OJ(Sne,new ks,new Es),OJ(wne,new Cs,new Ss),OJ(xne,new Ts,new As),OJ(jne,new Ds,new Is)}function DPt(t){var e,n,i,a,r,o;return r=0,(e=Txt(t)).Bj()&&(r|=4),t.Bb&_8t&&(r|=2),iO(t,99)?(a=Syt(n=jz(t,18)),n.Bb&l7t&&(r|=32),a&&(dY(fQ(a)),r|=8,((o=a.t)>1||-1==o)&&(r|=16),a.Bb&l7t&&(r|=64)),n.Bb&$Kt&&(r|=k8t),r|=w7t):iO(e,457)?r|=512:(i=e.Bj())&&1&i.i&&(r|=256),512&t.Bb&&(r|=128),r}function IPt(t,e){var n,i,a,r,o;for(t=null==t?VGt:(vG(t),t),a=0;a<e.length;a++)e[a]=nOt(e[a]);for(n=new Sx,o=0,i=0;i<e.length&&-1!=(r=t.indexOf("%s",o));)n.a+=""+lN(null==t?VGt:(vG(t),t),o,r),rD(n,e[i++]),o=r+2;if(H0(n,t,o,t.length),i<e.length){for(n.a+=" [",rD(n,e[i++]);i<e.length;)n.a+=jGt,rD(n,e[i++]);n.a+="]"}return n.a}function LPt(t){var e,n,i,a,r;for(r=new K7(t.a.c.length),a=new Wf(t.a);a.a<a.c.c.length;){switch(i=jz(J1(a),10),e=null,(n=jz(yEt(i,(zYt(),vbe)),163)).g){case 1:case 2:Xst(),e=Iue;break;case 3:case 4:Xst(),e=Aue}e?(lct(i,(lGt(),Hde),(Xst(),Iue)),e==Aue?BMt(i,n,(rit(),zye)):e==Iue&&BMt(i,n,(rit(),Hye))):r.c[r.c.length]=i}return r}function OPt(t,e){var n,i,a,r,o,s,c;for(n=0,c=new Wf(e);c.a<c.c.c.length;){for(s=jz(J1(c),11),Qlt(t.b,t.d[s.p]),o=0,a=new m7(s.b);yL(a.a)||yL(a.b);)CG(i=jz(yL(a.a)?J1(a.a):J1(a.b),17))?(r=__(t,s==i.c?i.d:i.c))>t.d[s.p]&&(n+=J3(t.b,r),f4(t.a,nht(r))):++o;for(n+=t.b.d*o;!Ww(t.a);)_tt(t.b,jz(fW(t.a),19).a)}return n}function MPt(t,e){var n;return t.f==aOe?(n=MG(j9((TSt(),KLe),e)),t.e?4==n&&e!=(_Dt(),lOe)&&e!=(_Dt(),oOe)&&e!=(_Dt(),sOe)&&e!=(_Dt(),cOe):2==n):!(!t.d||!(t.d.Hc(e)||t.d.Hc(X1(j9((TSt(),KLe),e)))||t.d.Hc(jUt((TSt(),KLe),t.b,e))))||!(!t.f||!rMt((TSt(),t.f),wZ(j9(KLe,e))))&&(n=MG(j9(KLe,e)),t.e?4==n:2==n)}function NPt(t,e,n,a){var r,o,s,c,l,u,d,h;return l=(s=jz(JIt(n,(cGt(),gSe)),8)).a,d=s.b+t,(r=i.Math.atan2(d,l))<0&&(r+=J4t),(r+=e)>J4t&&(r-=J4t),u=(c=jz(JIt(a,gSe),8)).a,h=c.b+t,(o=i.Math.atan2(h,u))<0&&(o+=J4t),(o+=e)>J4t&&(o-=J4t),cL(),iit(1e-10),i.Math.abs(r-o)<=1e-10||r==o||isNaN(r)&&isNaN(o)?0:r<o?-1:r>o?1:UD(isNaN(r),isNaN(o))}function BPt(t){var e,n,i,a,r,o,s;for(s=new Om,i=new Wf(t.a.b);i.a<i.c.c.length;)YG(s,e=jz(J1(i),57),new Lm);for(a=new Wf(t.a.b);a.a<a.c.c.length;)for((e=jz(J1(a),57)).i=PKt,o=e.c.Kc();o.Ob();)r=jz(o.Pb(),57),jz(zA(AX(s.f,r)),15).Fc(e);for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),57)).c.$b(),e.c=jz(zA(AX(s.f,e)),15);FNt(t)}function PPt(t){var e,n,i,a,r,o,s;for(s=new Om,i=new Wf(t.a.b);i.a<i.c.c.length;)YG(s,e=jz(J1(i),81),new Lm);for(a=new Wf(t.a.b);a.a<a.c.c.length;)for((e=jz(J1(a),81)).o=PKt,o=e.f.Kc();o.Ob();)r=jz(o.Pb(),81),jz(zA(AX(s.f,r)),15).Fc(e);for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),81)).f.$b(),e.f=jz(zA(AX(s.f,e)),15);$Mt(t)}function FPt(t,e,n,i){var a,r;for(Uxt(t,e,n,i),Lh(e,t.j-e.j+n),Oh(e,t.k-e.k+i),r=new Wf(e.f);r.a<r.c.c.length;)switch(a=jz(J1(r),324),a.a.g){case 0:fct(t,e.g+a.b.a,0,e.g+a.c.a,e.i-1);break;case 1:fct(t,e.g+e.o,e.i+a.b.a,t.o-1,e.i+a.c.a);break;case 2:fct(t,e.g+a.b.a,e.i+e.p,e.g+a.c.a,t.p-1);break;default:fct(t,0,e.i+a.b.a,e.g-1,e.i+a.c.a)}}function jPt(t,e,n,i,a){var r,o;try{if(e>=t.o)throw $m(new ky);o=e>>5,r=yq(1,fV(yq(31&e,1))),t.n[n][o]=a?e0(t.n[n][o],r):t0(t.n[n][o],rH(r)),r=yq(r,1),t.n[n][o]=i?e0(t.n[n][o],r):t0(t.n[n][o],rH(r))}catch(s){throw iO(s=dst(s),320)?$m(new Aw(kJt+t.o+"*"+t.p+EJt+e+jGt+n+CJt)):$m(s)}}function $Pt(t,e,n,a){var r,o;e&&(r=Hw(_B(yEt(e,(HUt(),lxe))))+a,o=n+Hw(_B(yEt(e,rxe)))/2,lct(e,gxe,nht(fV(uot(i.Math.round(r))))),lct(e,pxe,nht(fV(uot(i.Math.round(o))))),0==e.d.b||$Pt(t,jz(eO(new hb(cmt(new db(e).a.d,0))),86),n+Hw(_B(yEt(e,rxe)))+t.a,a+Hw(_B(yEt(e,oxe)))),null!=yEt(e,hxe)&&$Pt(t,jz(yEt(e,hxe),86),n,a))}function zPt(t,e){var n,a,r,o,s,c,l,u,d,h,f;for(r=2*Hw(_B(yEt(l=bG(e.a),(zYt(),Rme)))),d=Hw(_B(yEt(l,Ame))),u=i.Math.max(r,d),o=O5(LMe,HKt,25,e.f-e.c+1,15,1),a=-u,n=0,c=e.b.Kc();c.Ob();)s=jz(c.Pb(),10),a+=t.a[s.c.p]+u,o[n++]=a;for(a+=t.a[e.a.c.p]+u,o[n++]=a,f=new Wf(e.e);f.a<f.c.c.length;)h=jz(J1(f),10),a+=t.a[h.c.p]+u,o[n++]=a;return o}function HPt(t,e,n,i){var a,r,o,s,c,l,u,d;for(d=new f_(new Zp(t)),s=0,c=(o=Cst(Hx(Rse,1),r1t,10,0,[e,n])).length;s<c;++s)for(u=Ldt(o[s],i).Kc();u.Ob();)for(r=new m7((l=jz(u.Pb(),11)).b);yL(r.a)||yL(r.b);)d6(a=jz(yL(r.a)?J1(r.a):J1(r.b),17))||(kct(d.a,l,(cM(),mee)),CG(a)&&XW(d,l==a.c?a.d:a.c));return yY(d),new QF(d)}function UPt(t,e){var n,i,a,r;if(0!=(r=jz(JIt(t,(cGt(),hSe)),61).g-jz(JIt(e,hSe),61).g))return r;if(n=jz(JIt(t,sSe),19),i=jz(JIt(e,sSe),19),n&&i&&0!=(a=n.a-i.a))return a;switch(jz(JIt(t,hSe),61).g){case 1:return Cht(t.i,e.i);case 2:return Cht(t.j,e.j);case 3:return Cht(e.i,t.i);case 4:return Cht(e.j,t.j);default:throw $m(new Fw(i1t))}}function VPt(t){var e,n,i;return 64&t.Db?yCt(t):(e=new uM(Q6t),(n=t.k)?oD(oD((e.a+=' "',e),n),'"'):(!t.n&&(t.n=new tW(HDe,t,1,7)),t.n.i>0&&(!(i=(!t.n&&(t.n=new tW(HDe,t,1,7)),jz(Yet(t.n,0),137)).a)||oD(oD((e.a+=' "',e),i),'"'))),oD(v_(oD(v_(oD(v_(oD(v_((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function qPt(t){var e,n,i;return 64&t.Db?yCt(t):(e=new uM(t7t),(n=t.k)?oD(oD((e.a+=' "',e),n),'"'):(!t.n&&(t.n=new tW(HDe,t,1,7)),t.n.i>0&&(!(i=(!t.n&&(t.n=new tW(HDe,t,1,7)),jz(Yet(t.n,0),137)).a)||oD(oD((e.a+=' "',e),i),'"'))),oD(v_(oD(v_(oD(v_(oD(v_((e.a+=" (",e),t.i),","),t.j)," | "),t.g),","),t.f),")"),e.a)}function WPt(t,e){var n,i,a,r,o,s;if(null==e||0==e.length)return null;if(!(a=jz(kJ(t.a,e),149))){for(i=new Bf(new Tf(t.b).a.vc().Kc());i.a.Ob();)if(r=jz(i.a.Pb(),42),o=(n=jz(r.dd(),149)).c,s=e.length,mF(o.substr(o.length-s,s),e)&&(e.length==o.length||46==lZ(o,o.length-e.length-1))){if(a)return null;a=n}a&&mQ(t.a,e,a)}return a}function YPt(t,e){var n,i,a;return n=new Mt,(i=jz(E3(DZ(new NU(null,new h1(t.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Kne),Zne]))),21).gc())<(a=jz(E3(DZ(new NU(null,new h1(e.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[Kne,Zne]))),21).gc())?-1:i==a?0:1}function GPt(t){var e,n,i;IN(t,(zYt(),Dbe))&&!(i=jz(yEt(t,Dbe),21)).dc()&&(n=new ZF(e=jz(YR(PTe),9),jz(kP(e,e.length),9),0),i.Hc((QIt(),ITe))?sat(n,ITe):sat(n,LTe),i.Hc(ATe)||sat(n,ATe),i.Hc(TTe)?sat(n,NTe):i.Hc(STe)?sat(n,MTe):i.Hc(DTe)&&sat(n,OTe),i.Hc(NTe)?sat(n,TTe):i.Hc(MTe)?sat(n,STe):i.Hc(OTe)&&sat(n,DTe),lct(t,Dbe,n))}function ZPt(t){var e,n,i,a,r,o,s;for(a=jz(yEt(t,(lGt(),nhe)),10),u1(0,(i=t.j).c.length),n=jz(i.c[0],11),o=new Wf(a.j);o.a<o.c.c.length;)if(HA(r=jz(J1(o),11))===HA(yEt(n,fhe))){r.j==(wWt(),cAe)&&t.p>a.p?(HTt(r,EAe),r.d&&(s=r.o.b,e=r.a.b,r.a.b=s-e)):r.j==EAe&&a.p>t.p&&(HTt(r,cAe),r.d&&(s=r.o.b,e=r.a.b,r.a.b=-(s-e)));break}return a}function KPt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g;if(r=n,n<i)for(f=new jot(t.p),g=new jot(t.p),jat(f.e,t.e),f.q=t.q,f.r=g,nY(f),jat(g.j,t.j),g.r=f,nY(g),d=jz((h=new nA(f,g)).a,112),u=jz(h.b,112),u1(r,e.c.length),o=IBt(t,d,u,a=jz(e.c[r],329)),l=n+1;l<=i;l++)u1(l,e.c.length),Gmt(s=jz(e.c[l],329),c=IBt(t,d,u,s),a,o)&&(a=s,o=c);return r}function XPt(t,e,n,i,a){var r,o,s,c,l,u,d;if(!(iO(e,239)||iO(e,354)||iO(e,186)))throw $m(new Pw("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));return o=t.a/2,c=e.i+i-o,u=e.j+a-o,l=c+e.g+t.a,d=u+e.f+t.a,MH(r=new vv,new OT(c,u)),MH(r,new OT(c,d)),MH(r,new OT(l,d)),MH(r,new OT(l,u)),Hot(s=new RIt(r),e),n&&YG(t.b,e,s),s}function JPt(t,e,n){var i,a,r,o,s,c,l,u;for(r=new OT(e,n),l=new Wf(t.a);l.a<l.c.c.length;)for(VP((c=jz(J1(l),10)).n,r),u=new Wf(c.j);u.a<u.c.c.length;)for(a=new Wf(jz(J1(u),11).g);a.a<a.c.c.length;)for(Jet((i=jz(J1(a),17)).a,r),(o=jz(yEt(i,(zYt(),bbe)),74))&&Jet(o,r),s=new Wf(i.b);s.a<s.c.c.length;)VP(jz(J1(s),70).n,r)}function QPt(t,e,n){var i,a,r,o,s,c,l,u;for(r=new OT(e,n),l=new Wf(t.a);l.a<l.c.c.length;)for(VP((c=jz(J1(l),10)).n,r),u=new Wf(c.j);u.a<u.c.c.length;)for(a=new Wf(jz(J1(u),11).g);a.a<a.c.c.length;)for(Jet((i=jz(J1(a),17)).a,r),(o=jz(yEt(i,(zYt(),bbe)),74))&&Jet(o,r),s=new Wf(i.b);s.a<s.c.c.length;)VP(jz(J1(s),70).n,r)}function tFt(t){if(0==(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i)throw $m(new ix("Edges must have a source."));if(0==(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i)throw $m(new ix("Edges must have a target."));if(!t.b&&(t.b=new cF(NDe,t,4,7)),!(t.b.i<=1&&(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c.i<=1)))throw $m(new ix("Hyperedges are not supported."))}function eFt(t,e){var n,i,a,r,o,s,c,l,u,d;for(d=0,f4(r=new Im,e);r.b!=r.c;)for(c=jz(fW(r),214),l=0,u=jz(yEt(e.j,(zYt(),Ipe)),339),o=Hw(_B(yEt(e.j,Spe))),s=Hw(_B(yEt(e.j,Tpe))),u!=(yct(),Oye)&&(l+=o*ELt(c.e,u),l+=s*iNt(c.e)),d+=cwt(c.d,c.e)+l,a=new Wf(c.b);a.a<a.c.c.length;)i=jz(J1(a),37),(n=jz(OU(t.b,i.p),214)).s||(d+=QSt(t,n));return d}function nFt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;for(c=f=e.length,d1(0,e.length),45==e.charCodeAt(0)?(d=-1,h=1,--f):(d=1,h=0),a=f/(r=(oHt(),ane)[10])|0,0!=(b=f%r)&&++a,s=O5(TMe,lKt,25,a,15,1),n=ine[8],o=0,g=h+(0==b?r:b),p=h;p<c;g=(p=g)+r)i=djt(e.substr(p,g-p),FZt,NGt),IDt(),l=gyt(s,s,o,n),l+=qgt(s,o,i),s[o++]=l;u=o,t.e=d,t.d=u,t.a=s,q0(t)}function iFt(t,e,n,i,a,r,o){if(t.c=i.qf().a,t.d=i.qf().b,a&&(t.c+=a.qf().a,t.d+=a.qf().b),t.b=e.rf().a,t.a=e.rf().b,a)switch(a.Hf().g){case 0:case 2:t.c+=a.rf().a+o+r.a+o;break;case 4:t.c-=o+r.a+o+e.rf().a;break;case 1:t.c+=a.rf().a+o,t.d-=o+r.b+o+e.rf().b;break;case 3:t.c+=a.rf().a+o,t.d+=a.rf().b+o+r.b+o}else n?t.c-=o+e.rf().a:t.c+=i.rf().a+o}function aFt(t,e){var n,i;for(this.b=new Lm,this.e=new Lm,this.a=t,this.d=e,Umt(this),bpt(this),this.b.dc()?this.c=t.c.p:this.c=jz(this.b.Xb(0),10).c.p,0==this.e.c.length?this.f=t.c.p:this.f=jz(OU(this.e,this.e.c.length-1),10).c.p,i=jz(yEt(t,(lGt(),Ehe)),15).Kc();i.Ob();)if(IN(n=jz(i.Pb(),70),(zYt(),Ype))){this.d=jz(yEt(n,Ype),227);break}}function rFt(t,e,n){var i,a,r,o,s,c,l,u;for(i=jz(NY(t.a,e),53),r=jz(NY(t.a,n),53),a=jz(NY(t.e,e),53),o=jz(NY(t.e,n),53),i.a.zc(n,i),o.a.zc(e,o),u=r.a.ec().Kc();u.Ob();)l=jz(u.Pb(),10),i.a.zc(l,i),RW(jz(NY(t.e,l),53),e),jat(jz(NY(t.e,l),53),a);for(c=a.a.ec().Kc();c.Ob();)s=jz(c.Pb(),10),o.a.zc(s,o),RW(jz(NY(t.a,s),53),n),jat(jz(NY(t.a,s),53),r)}function oFt(t,e,n){var i,a,r,o,s,c,l,u;for(i=jz(NY(t.a,e),53),r=jz(NY(t.a,n),53),a=jz(NY(t.b,e),53),o=jz(NY(t.b,n),53),i.a.zc(n,i),o.a.zc(e,o),u=r.a.ec().Kc();u.Ob();)l=jz(u.Pb(),10),i.a.zc(l,i),RW(jz(NY(t.b,l),53),e),jat(jz(NY(t.b,l),53),a);for(c=a.a.ec().Kc();c.Ob();)s=jz(c.Pb(),10),o.a.zc(s,o),RW(jz(NY(t.a,s),53),n),jat(jz(NY(t.a,s),53),r)}function sFt(t,e){var n,i,a;switch(Akt(e,"Breaking Point Insertion",1),i=new kIt(t),jz(yEt(t,(zYt(),jme)),337).g){case 2:a=new kr;case 0:a=new gr;break;default:a=new Er}if(n=a.Vf(t,i),zw(RB(yEt(t,zme)))&&(n=NUt(t,n)),!a.Wf()&&IN(t,qme))switch(jz(yEt(t,qme),338).g){case 2:n=WTt(i,n);break;case 1:n=Pkt(i,n)}n.dc()||tYt(t,n),zCt(e)}function cFt(t,e,n){var i,a,r,o,s,c,l;if(l=e,Iit(c=G4(t,I4(n),l),N2(l,H7t)),o=L2(l,L7t),GTt((i=new oA(t,c)).a,i.b,o),s=L2(l,O7t),ZTt((a=new sA(t,c)).a,a.b,s),0==(!c.b&&(c.b=new cF(NDe,c,4,7)),c.b).i||0==(!c.c&&(c.c=new cF(NDe,c,5,8)),c.c).i)throw r=N2(l,H7t),$m(new tx(W7t+r+Y7t));return Ekt(l,c),cYt(t,l,c),Mct(t,l,c)}function lFt(t,e){var n,a,r,o,s,c,l;for(r=O5(TMe,lKt,25,t.e.a.c.length,15,1),s=new Wf(t.e.a);s.a<s.c.c.length;)r[(o=jz(J1(s),121)).d]+=o.b.a.c.length;for(c=Uz(e);0!=c.b;)for(a=I8(new Wf((o=jz(0==c.b?null:(EN(0!=c.b),Det(c,c.a.a)),121)).g.a));a.Ob();)(l=(n=jz(a.Pb(),213)).e).e=i.Math.max(l.e,o.e+n.a),--r[l.d],0==r[l.d]&&n6(c,l,c.c.b,c.c)}function uFt(t){var e,n,a,r,o,s,c,l,u,d,h;for(n=FZt,r=NGt,c=new Wf(t.e.a);c.a<c.c.c.length;)o=jz(J1(c),121),r=i.Math.min(r,o.e),n=i.Math.max(n,o.e);for(e=O5(TMe,lKt,25,n-r+1,15,1),s=new Wf(t.e.a);s.a<s.c.c.length;)(o=jz(J1(s),121)).e-=r,++e[o.e];if(a=0,null!=t.k)for(d=0,h=(u=t.k).length;d<h&&(l=u[d],e[a++]+=l,e.length!=a);++d);return e}function dFt(t){switch(t.d){case 9:case 8:return!0;case 3:case 5:case 4:case 6:return!1;case 7:return jz(PNt(t),19).a==t.o;case 1:case 2:if(-2==t.o)return!1;switch(t.p){case 0:case 1:case 2:case 6:case 5:case 7:return GA(t.k,t.f);case 3:case 4:return t.j==t.e;default:return null==t.n?null==t.g:Odt(t.n,t.g)}default:return!1}}function hFt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,P6t),"ELK Fixed"),"Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points."),new Ks))),r2(t,P6t,ZJt,fTe),r2(t,P6t,p4t,ymt(gTe)),r2(t,P6t,p6t,ymt(cTe)),r2(t,P6t,CQt,ymt(lTe)),r2(t,P6t,$Qt,ymt(dTe)),r2(t,P6t,K2t,ymt(uTe))}function fFt(t,e,n){var i,a,r,o;if(i=fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15))),o=fV(aft(EZt,nZ(fV(aft(null==n?0:Qct(n),CZt)),15))),(r=Xat(t,e,i))&&o==r.f&&hG(n,r.i))return n;if(Jat(t,n,o))throw $m(new Pw("value already present: "+n));return a=new zG(e,i,n,o),r?(LOt(t,r),KTt(t,a,r),r.e=null,r.c=null,r.i):(KTt(t,a,null),Hxt(t),null)}function gFt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;l=n.a.c,o=n.a.c+n.a.b,h=(r=jz(NY(n.c,e),459)).f,f=r.a,s=r.b?new OT(o,h):new OT(l,h),u=r.c?new OT(l,f):new OT(o,f),a=l,n.p||(a+=t.c),c=new OT(a+=n.F+n.v*t.b,h),d=new OT(a,f),Qnt(e.a,Cst(Hx(EEe,1),cZt,8,0,[s,c])),n.d.a.gc()>1&&(i=new OT(a,n.b),MH(e.a,i)),Qnt(e.a,Cst(Hx(EEe,1),cZt,8,0,[d,u]))}function pFt(t,e,n){var i,a,r,o,s,c;if(e){if(n<=-1){if(iO(i=eet(e.Tg(),-1-n),99))return jz(i,18);for(s=0,c=(o=jz(e.ah(i),153)).gc();s<c;++s)if(HA(o.jl(s))===HA(t)&&iO(a=o.il(s),99)&&(r=jz(a,18)).Bb&l7t)return r;throw $m(new Fw("The containment feature could not be located"))}return Syt(jz(eet(t.Tg(),n),18))}return null}function bFt(t){var e,n,i,a,r;for(i=t.length,e=new Ex,r=0;r<i;)if(9!=(n=lZ(t,r++))&&10!=n&&12!=n&&13!=n&&32!=n){if(35==n){for(;r<i&&13!=(n=lZ(t,r++))&&10!=n;);continue}92==n&&r<i?35==(d1(r,t.length),a=t.charCodeAt(r))||9==a||10==a||12==a||13==a||32==a?(LY(e,a&ZZt),++r):(e.a+="\\",LY(e,a&ZZt),++r):LY(e,n&ZZt)}return e.a}function mFt(t,e){var n,i,a;for(i=new Wf(e);i.a<i.c.c.length;)if(n=jz(J1(i),33),XAt(t.a,n,n),XAt(t.b,n,n),0!=(a=fBt(n)).c.length)for(t.d&&t.d.lg(a),XAt(t.a,n,(u1(0,a.c.length),jz(a.c[0],33))),XAt(t.b,n,jz(OU(a,a.c.length-1),33));0!=Nst(a).c.length;)a=Nst(a),t.d&&t.d.lg(a),XAt(t.a,n,(u1(0,a.c.length),jz(a.c[0],33))),XAt(t.b,n,jz(OU(a,a.c.length-1),33))}function yFt(t){var e,n,i,a,r,o,s,c,l,u;for(n=0,s=new Wf(t.d);s.a<s.c.c.length;)(o=jz(J1(s),101)).i&&(o.i.c=n++);for(e=vU(AMe,[cZt,JXt],[177,25],16,[n,n],2),u=t.d,a=0;a<u.c.length;a++)if(u1(a,u.c.length),(c=jz(u.c[a],101)).i)for(r=a+1;r<u.c.length;r++)u1(r,u.c.length),(l=jz(u.c[r],101)).i&&(i=iEt(c,l),e[c.i.c][l.i.c]=i,e[l.i.c][c.i.c]=i);return e}function vFt(t,e,n,i){var a,r,o;return o=new yk(e,n),t.a?i?(++(a=jz(NY(t.b,e),283)).a,o.d=i.d,o.e=i.e,o.b=i,o.c=i,i.e?i.e.c=o:jz(NY(t.b,e),283).b=o,i.d?i.d.b=o:t.a=o,i.d=o,i.e=o):(t.e.b=o,o.d=t.e,t.e=o,(a=jz(NY(t.b,e),283))?(++a.a,(r=a.c).c=o,o.e=r,a.c=o):(YG(t.b,e,a=new sX(o)),++t.c)):(t.a=t.e=o,YG(t.b,e,new sX(o)),++t.c),++t.d,o}function wFt(t,e){var n,i,a,r,o,s,c,l;for(n=new RegExp(e,"g"),c=O5(zee,cZt,2,0,6,1),i=0,l=t,r=null;;){if(null==(s=n.exec(l))||""==l){c[i]=l;break}o=s.index,c[i]=l.substr(0,o),l=lN(l,o+s[0].length,l.length),n.lastIndex=0,r==l&&(c[i]=l.substr(0,1),l=l.substr(1)),r=l,++i}if(t.length>0){for(a=c.length;a>0&&""==c[a-1];)--a;a<c.length&&(c.length=a)}return c}function xFt(t,e){var n,i,a,r,o,s,c,l;for(s=null,a=!1,r=0,c=a3((l=vX(e)).a).i;r<c;++r)(n=xFt(t,jz(eVt(l,r,iO(o=jz(Yet(a3(l.a),r),87).c,88)?jz(o,26):(pGt(),hLe)),26))).dc()||(s?(a||(a=!0,s=new nV(s)),s.Gc(n)):s=n);return(i=MAt(t,e)).dc()?s||(kK(),kK(),cne):s?(a||(s=new nV(s)),s.Gc(i),s):i}function RFt(t,e){var n,i,a,r,o,s,c,l;for(s=null,i=!1,r=0,c=a3((l=vX(e)).a).i;r<c;++r)(n=RFt(t,jz(eVt(l,r,iO(o=jz(Yet(a3(l.a),r),87).c,88)?jz(o,26):(pGt(),hLe)),26))).dc()||(s?(i||(i=!0,s=new nV(s)),s.Gc(n)):s=n);return(a=GDt(t,e)).dc()?s||(kK(),kK(),cne):s?(i||(s=new nV(s)),s.Gc(a),s):a}function _Ft(t,e,n){var i,a,r,o,s,c;if(iO(e,72))return Fmt(t,e,n);for(s=null,r=null,i=jz(t.g,119),o=0;o<t.i;++o)if(Odt(e,(a=i[o]).dd())&&iO(r=a.ak(),99)&&jz(r,18).Bb&l7t){s=a;break}return s&&(mI(t.e)&&(c=r.$j()?IX(t,4,r,e,null,bzt(t,r,e,iO(r,99)&&0!=(jz(r,18).Bb&$Kt)),!0):IX(t,r.Kj()?2:1,r,e,r.zj(),-1,!0),n?n.Ei(c):n=c),n=_Ft(t,s,n)),n}function kFt(t){var e,n,a,r;a=t.o,zB(),t.A.dc()||Odt(t.A,Dae)?r=a.a:(r=EAt(t.f),t.A.Hc((ypt(),BAe))&&!t.B.Hc((QFt(),WAe))&&(r=i.Math.max(r,EAt(jz(oZ(t.p,(wWt(),cAe)),244))),r=i.Math.max(r,EAt(jz(oZ(t.p,EAe),244)))),(e=sot(t))&&(r=i.Math.max(r,e.a))),zw(RB(t.e.yf().We((cGt(),FCe))))?a.a=i.Math.max(a.a,r):a.a=r,(n=t.f.i).c=0,n.b=r,F$t(t.f)}function EFt(t,e){var n,i,a,r,o,s,c,l,u;if((n=e.Hh(t.a))&&null!=(c=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),"memberTypes")))){for(l=new Lm,o=0,s=(r=wFt(c,"\\w")).length;o<s;++o)iO(u=-1==(i=(a=r[o]).lastIndexOf("#"))?rB(t,e.Aj(),a):0==i?_8(t,null,a.substr(1)):_8(t,a.substr(0,i),a.substr(i+1)),148)&&Wz(l,jz(u,148));return l}return kK(),kK(),cne}function CFt(t,e,n){var i,a,r,o,s,c,l,u;for(Akt(n,rQt,1),t.bf(e),r=0;t.df(r);){for(u=new Wf(e.e);u.a<u.c.c.length;)for(c=jz(J1(u),144),s=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[e.e,e.d,e.b])));gIt(s);)(o=jz(V6(s),357))!=c&&(a=t.af(o,c))&&VP(c.a,a);for(l=new Wf(e.e);l.a<l.c.c.length;)YCt(i=(c=jz(J1(l),144)).a,-t.d,-t.d,t.d,t.d),VP(c.d,i),vD(i);t.cf(),++r}zCt(n)}function SFt(t,e,n){var i,a,r,o;if(o=rNt(t.e.Tg(),e),i=jz(t.g,119),XE(),jz(e,66).Oj()){for(r=0;r<t.i;++r)if(a=i[r],o.rl(a.ak())&&Odt(a,n))return uBt(t,r),!0}else if(null!=n){for(r=0;r<t.i;++r)if(a=i[r],o.rl(a.ak())&&Odt(n,a.dd()))return uBt(t,r),!0}else for(r=0;r<t.i;++r)if(a=i[r],o.rl(a.ak())&&null==a.dd())return uBt(t,r),!0;return!1}function TFt(t,e){var n,i,a,r,o;for(null==t.c||t.c.length<e.c.length?t.c=O5(AMe,JXt,25,e.c.length,16,1):Jw(t.c),t.a=new Lm,i=0,o=new Wf(e);o.a<o.c.c.length;)(a=jz(J1(o),10)).p=i++;for(n=new Zk,r=new Wf(e);r.a<r.c.c.length;)a=jz(J1(r),10),t.c[a.p]||(lAt(t,a),0==n.b||(EN(0!=n.b),jz(n.a.a.c,15)).gc()<t.a.c.length?cD(n,t.a):lD(n,t.a),t.a=new Lm);return n}function AFt(t,e,n,i){var a,r,o,s,c,l,u;for(Cnt(o=jz(Yet(e,0),33),0),Snt(o,0),(c=new Lm).c[c.c.length]=o,s=o,r=new tU(t.a,o.g,o.f,(KOt(),F_e)),l=1;l<e.i;l++)Cnt(u=jz(Yet(e,l),33),(a=rUt(t,Qzt(t,N_e,u,s,r,c,n),Qzt(t,M_e,u,s,r,c,n),Qzt(t,P_e,u,s,r,c,n),Qzt(t,B_e,u,s,r,c,n),u,s,i)).d),Snt(u,a.e),af(a,F_e),r=a,s=u,c.c[c.c.length]=u;return r}function DFt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,Z3t),"ELK SPOrE Overlap Removal"),'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'),new is))),r2(t,Z3t,P3t,ymt(zke)),r2(t,Z3t,ZJt,jke),r2(t,Z3t,mQt,8),r2(t,Z3t,H3t,ymt($ke)),r2(t,Z3t,q3t,ymt(Pke)),r2(t,Z3t,W3t,ymt(Fke)),r2(t,Z3t,W2t,(cM(),!1))}function IFt(t,e,n,i){var a,r,o,s,c,l,u,d;for(o=PN(e.c,n,i),u=new Wf(e.a);u.a<u.c.c.length;){for(VP((l=jz(J1(u),10)).n,o),d=new Wf(l.j);d.a<d.c.c.length;)for(r=new Wf(jz(J1(d),11).g);r.a<r.c.c.length;)for(Jet((a=jz(J1(r),17)).a,o),(s=jz(yEt(a,(zYt(),bbe)),74))&&Jet(s,o),c=new Wf(a.b);c.a<c.c.c.length;)VP(jz(J1(c),70).n,o);Wz(t.a,l),l.a=t}}function LFt(t,e){var n,i,a,r;if(Akt(e,"Node and Port Label Placement and Node Sizing",1),NI((gE(),new $Z(t,!0,!0,new Zn))),jz(yEt(t,(lGt(),Xde)),21).Hc((hBt(),dde)))for(i=(a=jz(yEt(t,(zYt(),ime)),21)).Hc((dAt(),nAe)),r=zw(RB(yEt(t,ame))),n=new Wf(t.b);n.a<n.c.c.length;)Kk(AZ(new NU(null,new h1(jz(J1(n),29).a,16)),new Kn),new Bj(a,i,r));zCt(e)}function OFt(t,e){var n,i,a,r,o,s;if((n=e.Hh(t.a))&&null!=(s=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),Q7t))))switch(a=mM(s,Kkt(35)),i=e.Hj(),-1==a?(o=aq(t,qet(i)),r=s):0==a?(o=null,r=s.substr(1)):(o=s.substr(0,a),r=s.substr(a+1)),MG(j9(t,e))){case 2:case 3:return Nct(t,i,o,r);case 0:case 4:case 5:case 6:return Bct(t,i,o,r)}return null}function MFt(t,e,n){var i,a,r,o,s;if(XE(),o=jz(e,66).Oj(),INt(t.e,e)){if(e.hi()&&q$t(t,e,n,iO(e,99)&&0!=(jz(e,18).Bb&$Kt)))return!1}else for(s=rNt(t.e.Tg(),e),i=jz(t.g,119),r=0;r<t.i;++r)if(a=i[r],s.rl(a.ak()))return!(o?Odt(a,n):null==n?null==a.dd():Odt(n,a.dd()))&&(jz(syt(t,r,o?jz(n,72):X4(e,n)),72),!0);return l8(t,o?jz(n,72):X4(e,n))}function NFt(t){var e,n,i,a,r;if(t.d)throw $m(new Fw((xB(Zoe),DXt+Zoe.k+IXt)));for(t.c==(jdt(),$Se)&&kqt(t,FSe),e=new Wf(t.a.a);e.a<e.c.c.length;)jz(J1(e),189).e=0;for(a=new Wf(t.a.b);a.a<a.c.c.length;)for((i=jz(J1(a),81)).o=PKt,n=i.f.Kc();n.Ob();)++jz(n.Pb(),81).d.e;for(Uqt(t),r=new Wf(t.a.b);r.a<r.c.c.length;)jz(J1(r),81).k=!0;return t}function BFt(t,e){var n,i,a,r,o,s,c,l;for(s=new bSt(t),n6(n=new Zk,e,n.c.b,n.c);0!=n.b;){for((i=jz(0==n.b?null:(EN(0!=n.b),Det(n,n.a.a)),113)).d.p=1,o=new Wf(i.e);o.a<o.c.c.length;)xkt(s,a=jz(J1(o),409)),0==(l=a.d).d.p&&n6(n,l,n.c.b,n.c);for(r=new Wf(i.b);r.a<r.c.c.length;)xkt(s,a=jz(J1(r),409)),0==(c=a.c).d.p&&n6(n,c,n.c.b,n.c)}return s}function PFt(t){var e,n,i,a,r;if(1!=(i=Hw(_B(JIt(t,(cGt(),ySe))))))for(_I(t,i*t.g,i*t.f),n=qD(Pz((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c),new Hs)),r=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!t.n&&(t.n=new tW(HDe,t,1,7)),t.n),(!t.c&&(t.c=new tW(VDe,t,9,9)),t.c),n])));gIt(r);)(a=jz(V6(r),470)).Gg(i*a.Dg(),i*a.Eg()),a.Fg(i*a.Cg(),i*a.Bg()),(e=jz(a.We(iSe),8))&&(e.a*=i,e.b*=i)}function FFt(t,e,n,i,a){var r,o,s,c,l,u;for(r=new Wf(t.b);r.a<r.c.c.length;)for(l=0,u=(c=J0(jz(J1(r),29).a)).length;l<u;++l)switch(s=c[l],jz(yEt(s,(zYt(),vbe)),163).g){case 1:mNt(s),EQ(s,e),dyt(s,!0,i);break;case 3:JMt(s),EQ(s,n),dyt(s,!1,a)}for(o=new _2(t.b,0);o.b<o.d.gc();)0==(EN(o.b<o.d.gc()),jz(o.d.Xb(o.c=o.b++),29)).a.c.length&&lG(o)}function jFt(t,e){var n,i,a,r,o,s,c;if((n=e.Hh(t.a))&&null!=(c=kB(apt((!n.b&&(n.b=new KN((pGt(),yLe),VLe,n)),n.b),k9t)))){for(i=new Lm,o=0,s=(r=wFt(c,"\\w")).length;o<s;++o)mF(a=r[o],"##other")?Wz(i,"!##"+aq(t,qet(e.Hj()))):mF(a,"##local")?i.c[i.c.length]=null:mF(a,R9t)?Wz(i,aq(t,qet(e.Hj()))):i.c[i.c.length]=a;return i}return kK(),kK(),cne}function $Ft(t,e){var n,i,a;return n=new Wt,(i=1==(i=jz(E3(DZ(new NU(null,new h1(t.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Kne),Zne]))),21).gc())?1:0)<(a=1==(a=jz(E3(DZ(new NU(null,new h1(e.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[Kne,Zne]))),21).gc())?1:0)?-1:i==a?0:1}function zFt(t){var e,n,i,a,r,o,s,c,l,u,d,h;for(a=zw(RB(yEt(s=t.i,(zYt(),hbe)))),u=0,i=0,l=new Wf(t.g);l.a<l.c.c.length;)r=(o=d6(c=jz(J1(l),17)))&&a&&zw(RB(yEt(c,fbe))),h=c.d.i,o&&r?++i:o&&!r?++u:bG(h).e==s?++i:++u;for(n=new Wf(t.e);n.a<n.c.c.length;)r=(o=d6(e=jz(J1(n),17)))&&a&&zw(RB(yEt(e,fbe))),d=e.c.i,o&&r?++u:o&&!r?++i:bG(d).e==s?++u:++i;return u-i}function HFt(t,e,n,i){this.e=t,this.k=jz(yEt(t,(lGt(),Ahe)),304),this.g=O5(Rse,r1t,10,e,0,1),this.b=O5(Cee,cZt,333,e,7,1),this.a=O5(Rse,r1t,10,e,0,1),this.d=O5(Cee,cZt,333,e,7,1),this.j=O5(Rse,r1t,10,e,0,1),this.i=O5(Cee,cZt,333,e,7,1),this.p=O5(Cee,cZt,333,e,7,1),this.n=O5(wee,cZt,476,e,8,1),yC(this.n,(cM(),!1)),this.f=O5(wee,cZt,476,e,8,1),yC(this.f,!0),this.o=n,this.c=i}function UFt(t,e){var n,i,a;if(!e.dc())if(jz(e.Xb(0),286).d==(ISt(),Qle))Dxt(t,e);else for(i=e.Kc();i.Ob();){switch((n=jz(i.Pb(),286)).d.g){case 5:lSt(t,n,Gft(t,n));break;case 0:lSt(t,n,(a=(n.f-n.c+1-1)/2|0,n.c+a));break;case 4:lSt(t,n,Dtt(t,n));break;case 2:Pgt(n),lSt(t,n,I_t(n)?n.c:n.f);break;case 1:Pgt(n),lSt(t,n,I_t(n)?n.f:n.c)}lEt(n.a)}}function VFt(t,e){var n,i,a,r,o;if(!e.e){for(e.e=!0,i=e.d.a.ec().Kc();i.Ob();)n=jz(i.Pb(),17),e.o&&e.d.a.gc()<=1?(o=new OT((r=e.a.c)+(e.a.c+e.a.b-r)/2,e.b),MH(jz(e.d.a.ec().Kc().Pb(),17).a,o)):(a=jz(NY(e.c,n),459)).b||a.c?gFt(t,n,e):t.d==(qlt(),ive)&&(a.d||a.e)&&LDt(t,e)&&e.d.a.gc()<=1?gqt(n,e):NBt(t,n,e);e.k&&t6(e.d,new kn)}}function qFt(t,e,n,a,r,o){var s,c,l,u,d,h,f,g,p,b,m,y,v;for(c=(a+r)/2+o,b=n*i.Math.cos(c),m=n*i.Math.sin(c),y=b-e.g/2,v=m-e.f/2,Cnt(e,y),Snt(e,v),h=t.a.jg(e),(p=2*i.Math.acos(n/n+t.c))<r-a?(f=p/h,s=(a+r-p)/2):(f=(r-a)/h,s=a),g=fBt(e),t.e&&(t.e.kg(t.d),t.e.lg(g)),u=new Wf(g);u.a<u.c.c.length;)l=jz(J1(u),33),d=t.a.jg(l),qFt(t,l,n+t.c,s,s+f*d,o),s+=f*d}function WFt(t,e,n){var i;switch(i=n.q.getMonth(),e){case 5:oD(t,Cst(Hx(zee,1),cZt,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[i]);break;case 4:oD(t,Cst(Hx(zee,1),cZt,2,6,[KZt,XZt,JZt,QZt,tKt,eKt,nKt,iKt,aKt,rKt,oKt,sKt])[i]);break;case 3:oD(t,Cst(Hx(zee,1),cZt,2,6,["Jan","Feb","Mar","Apr",tKt,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[i]);break;default:xtt(t,i+1,e)}}function YFt(t,e){var n,i,a,r;if(Akt(e,"Network simplex",1),t.e.a.c.length<1)zCt(e);else{for(a=new Wf(t.e.a);a.a<a.c.c.length;)jz(J1(a),121).e=0;for((r=t.e.a.c.length>=40)&&R$t(t),$Ht(t),_Nt(t),n=vht(t),i=0;n&&i<t.f;)ejt(t,n,eLt(t,n)),n=vht(t),++i;r&&tkt(t),t.a?bLt(t,uFt(t)):uFt(t),t.b=null,t.d=null,t.p=null,t.c=null,t.g=null,t.i=null,t.n=null,t.o=null,zCt(e)}}function GFt(t,e,n,i){var a,r,o,s,c,l,u,d;for(qP(s=new OT(n,i),jz(yEt(e,(kat(),ooe)),8)),d=new Wf(e.e);d.a<d.c.c.length;)VP((u=jz(J1(d),144)).d,s),Wz(t.e,u);for(o=new Wf(e.c);o.a<o.c.c.length;){for(a=new Wf((r=jz(J1(o),282)).a);a.a<a.c.c.length;)VP(jz(J1(a),559).d,s);Wz(t.c,r)}for(l=new Wf(e.d);l.a<l.c.c.length;)VP((c=jz(J1(l),447)).d,s),Wz(t.d,c)}function ZFt(t,e){var n,i,a,r,o,s,c,l;for(c=new Wf(e.j);c.a<c.c.c.length;)for(a=new m7((s=jz(J1(c),11)).b);yL(a.a)||yL(a.b);)e!=(r=(n=(i=jz(yL(a.a)?J1(a.a):J1(a.b),17)).c==s?i.d:i.c).i)&&((l=jz(yEt(i,(zYt(),lme)),19).a)<0&&(l=0),o=r.p,0==t.b[o]&&(i.d==n?(t.a[o]-=l+1,t.a[o]<=0&&t.c[o]>0&&MH(t.f,r)):(t.c[o]-=l+1,t.c[o]<=0&&t.a[o]>0&&MH(t.e,r))))}function KFt(t){var e,n,i,a,r,o,s;for(r=new f_(jz(yY(new Bt),62)),s=PKt,n=new Wf(t.d);n.a<n.c.c.length;){for(s=(e=jz(J1(n),222)).c.c;0!=r.a.c&&(o=jz(_W(z8(r.a)),222)).c.c+o.c.b<s;)DJ(r.a,o);for(a=new Ff(new jP(new OM(new Pf(r.a).a).b));aC(a.a.a);)MH((i=jz(mN(a.a).cd(),222)).b,e),MH(e.b,i);kct(r.a,e,(cM(),mee))}}function XFt(t,e,n){var i,a,r,o,s,c,l,u,d;for(r=new K7(e.c.length),l=new Wf(e);l.a<l.c.c.length;)o=jz(J1(l),10),Wz(r,t.b[o.c.p][o.p]);for(yUt(t,r,n),d=null;d=eqt(r);)izt(t,jz(d.a,233),jz(d.b,233),r);for(e.c=O5(Dte,zGt,1,0,5,1),a=new Wf(r);a.a<a.c.c.length;)for(c=0,u=(s=(i=jz(J1(a),233)).d).length;c<u;++c)o=s[c],e.c[e.c.length]=o,t.a[o.c.p][o.p].a=uO(i.g,i.d[0]).a}function JFt(t,e){var n,i,a,r;if(0<(iO(t,14)?jz(t,14).gc():F4(t.Kc()))){if(1<(a=e)){for(--a,r=new yo,i=t.Kc();i.Ob();)n=jz(i.Pb(),86),r=Ynt(Cst(Hx(Mte,1),zGt,20,0,[r,new db(n)]));return JFt(r,a)}if(a<0){for(r=new vo,i=t.Kc();i.Ob();)n=jz(i.Pb(),86),r=Ynt(Cst(Hx(Mte,1),zGt,20,0,[r,new db(n)]));if(0<(iO(r,14)?jz(r,14).gc():F4(r.Kc())))return JFt(r,a)}}return jz(eO(t.Kc()),86)}function QFt(){QFt=D,UAe=new GT("DEFAULT_MINIMUM_SIZE",0),qAe=new GT("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING",1),HAe=new GT("COMPUTE_PADDING",2),WAe=new GT("OUTSIDE_NODE_LABELS_OVERHANG",3),YAe=new GT("PORTS_OVERHANG",4),ZAe=new GT("UNIFORM_PORT_SPACING",5),GAe=new GT("SPACE_EFFICIENT_PORT_LABELS",6),VAe=new GT("FORCE_TABULAR_NODE_LABELS",7),zAe=new GT("ASYMMETRICAL",8)}function tjt(t,e){var n,i,a,r,o,s,c,l;if(e){if(n=(r=e.Tg())?qet(r).Nh().Jh(r):null){for(Xbt(t,e,n),c=0,l=(null==(a=e.Tg()).i&&H$t(a),a.i).length;c<l;++c)null==a.i&&H$t(a),i=a.i,(s=c>=0&&c<i.length?i[c]:null).Ij()&&!s.Jj()&&(iO(s,322)?Qmt(t,jz(s,34),e,n):(o=jz(s,18)).Bb&l7t&&c_t(t,o,e,n));e.kh()&&jz(n,49).vh(jz(e,49).qh())}return n}return null}function ejt(t,e,n){var i,a,r;if(!e.f)throw $m(new Pw("Given leave edge is no tree edge."));if(n.f)throw $m(new Pw("Given enter edge is a tree edge already."));for(e.f=!1,tO(t.p,e),n.f=!0,RW(t.p,n),i=n.e.e-n.d.e-n.a,jTt(t,n.e,e)||(i=-i),r=new Wf(t.e.a);r.a<r.c.c.length;)jTt(t,a=jz(J1(r),121),e)||(a.e+=i);t.j=1,Jw(t.c),bAt(t,jz(J1(new Wf(t.e.a)),121)),pVt(t)}function njt(t,e){var n,i,a,r,o,s;if((s=jz(yEt(e,(zYt(),tme)),98))==(Z_t(),YTe)||s==WTe)for(a=new OT(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a).b,o=new Wf(t.a);o.a<o.c.c.length;)(r=jz(J1(o),10)).k==(oCt(),kse)&&((n=jz(yEt(r,(lGt(),Gde)),61))==(wWt(),sAe)||n==SAe)&&(i=Hw(_B(yEt(r,Rhe))),s==YTe&&(i*=a),r.n.b=i-jz(yEt(r,Jbe),8).b,Xot(r,!1,!0))}function ijt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f;if(Ket(t,e,n),r=e[n],f=i?(wWt(),SAe):(wWt(),sAe),mO(e.length,n,i)){for(H7(t,a=e[i?n-1:n+1],i?(rit(),Hye):(rit(),zye)),u=0,h=(c=r).length;u<h;++u)Myt(t,o=c[u],f);for(H7(t,r,i?(rit(),zye):(rit(),Hye)),l=0,d=(s=a).length;l<d;++l)(o=s[l]).e||Myt(t,o,_ht(f))}else for(l=0,d=(s=r).length;l<d;++l)Myt(t,o=s[l],f);return!1}function ajt(t,e,n,i){var a,r,o,s,c;s=rft(e,n),(n==(wWt(),EAe)||n==SAe)&&(s=iO(s,152)?o7(jz(s,152)):iO(s,131)?jz(s,131).a:iO(s,54)?new lw(s):new Ck(s)),o=!1;do{for(a=!1,r=0;r<s.gc()-1;r++)$Et(t,jz(s.Xb(r),11),jz(s.Xb(r+1),11),i)&&(o=!0,v0(t.a,jz(s.Xb(r),11),jz(s.Xb(r+1),11)),c=jz(s.Xb(r+1),11),s._c(r+1,jz(s.Xb(r),11)),s._c(r,c),a=!0)}while(a);return o}function rjt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g;if(!mI(t.e))return jz(KAt(t,e,n),72);if(e!=n&&(o=(f=(a=jz(t.g,119))[n]).ak(),INt(t.e,o))){for(g=rNt(t.e.Tg(),o),c=-1,s=-1,i=0,l=0,d=e>n?e:n;l<=d;++l)l==n?s=i++:(r=a[l],u=g.rl(r.ak()),l==e&&(c=l!=d||u?i:i-1),u&&++i);return h=jz(Tht(t,e,n),72),s!=c&&Iy(t,new w8(t.e,7,o,nht(s),f.dd(),c)),h}return jz(Tht(t,e,n),72)}function ojt(t,e){var n,i,a,r,o,s;for(Akt(e,"Port order processing",1),s=jz(yEt(t,(zYt(),ome)),421),n=new Wf(t.b);n.a<n.c.c.length;)for(a=new Wf(jz(J1(n),29).a);a.a<a.c.c.length;)i=jz(J1(a),10),r=jz(yEt(i,tme),98),o=i.j,r==(Z_t(),qTe)||r==YTe||r==WTe?(kK(),mL(o,sle)):r!=ZTe&&r!=KTe&&(kK(),mL(o,lle),Lyt(o),s==(V9(),Fye)&&mL(o,cle)),i.i=!0,eAt(i);zCt(e)}function sjt(t){var e,n,a,r,o,s,c,l;for(l=new Om,e=new Fy,s=t.Kc();s.Ob();)r=jz(s.Pb(),10),c=AM(oE(new zy,r),e),xTt(l.f,r,c);for(o=t.Kc();o.Ob();)for(a=new oq(XO(dft(r=jz(o.Pb(),10)).a.Kc(),new u));gIt(a);)!d6(n=jz(V6(a),17))&&qMt(aE(iE(nE(rE(new $y,i.Math.max(1,jz(yEt(n,(zYt(),ume)),19).a)),1),jz(NY(l,n.c.i),121)),jz(NY(l,n.d.i),121)));return e}function cjt(){cjt=D,dwe=fU(new j2,(vEt(),joe),(dGt(),mce)),fwe=fU(new j2,Foe,xce),gwe=WV(fU(new j2,Foe,Nce),$oe,Mce),uwe=WV(fU(fU(new j2,Foe,dce),joe,hce),$oe,fce),pwe=sbt(sbt(FE(WV(fU(new j2,Boe,qce),$oe,Vce),joe),Uce),Wce),hwe=WV(new j2,$oe,yce),cwe=WV(fU(fU(fU(new j2,Poe,kce),joe,Cce),joe,Sce),$oe,Ece),lwe=WV(fU(fU(new j2,joe,Sce),joe,oce),$oe,rce)}function ljt(t,e,n,i,a,r){var o,s,c,l,u,d;for(o=dCt(e,c=xct(e)-xct(t)),s=_L(0,0,0);c>=0&&(!Swt(t,o)||(c<22?s.l|=1<<c:c<44?s.m|=1<<c-22:s.h|=1<<c-44,0!=t.l||0!=t.m||0!=t.h));)l=o.m,u=o.h,d=o.l,o.h=u>>>1,o.m=l>>>1|(1&u)<<21,o.l=d>>>1|(1&l)<<21,--c;return n&&Act(s),r&&(i?(dee=rct(t),a&&(dee=lst(dee,(q9(),gee)))):dee=_L(t.l,t.m,t.h)),s}function ujt(t,e){var n,i,a,r,o,s,c,l,u,d;for(l=t.e[e.c.p][e.p]+1,c=e.c.a.c.length+1,s=new Wf(t.a);s.a<s.c.c.length;){for(o=jz(J1(s),11),d=0,r=0,a=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(o),new Hg(o)])));gIt(a);)(i=jz(V6(a),11)).i.c==e.c&&(d+=dO(t,i.i)+1,++r);n=d/r,(u=o.j)==(wWt(),sAe)?t.f[o.p]=n<l?t.c-n:t.b+(c-n):u==SAe&&(t.f[o.p]=n<l?t.b+n:t.c-(c-n))}}function djt(t,e,n){var i,a,r,o;if(null==t)throw $m(new _x(VGt));for(i=(r=t.length)>0&&(d1(0,t.length),45==t.charCodeAt(0)||(d1(0,t.length),43==t.charCodeAt(0)))?1:0;i<r;i++)if(-1==ebt((d1(i,t.length),t.charCodeAt(i))))throw $m(new _x(NKt+t+'"'));if(a=(o=parseInt(t,10))<e,isNaN(o))throw $m(new _x(NKt+t+'"'));if(a||o>n)throw $m(new _x(NKt+t+'"'));return o}function hjt(t){var e,n,a,r,o,s;for(o=new Zk,r=new Wf(t.a);r.a<r.c.c.length;)Wh(a=jz(J1(r),112),a.f.c.length),Yh(a,a.k.c.length),0==a.i&&(a.o=0,n6(o,a,o.c.b,o.c));for(;0!=o.b;)for(n=(a=jz(0==o.b?null:(EN(0!=o.b),Det(o,o.a.a)),112)).o+1,e=new Wf(a.f);e.a<e.c.c.length;)Gh(s=jz(J1(e),129).a,i.Math.max(s.o,n)),Yh(s,s.i-1),0==s.i&&n6(o,s,o.c.b,o.c)}function fjt(t){var e,n,i,a,r,o,s,c;for(o=new Wf(t);o.a<o.c.c.length;){for(r=jz(J1(o),79),s=(i=Ckt(jz(Yet((!r.b&&(r.b=new cF(NDe,r,4,7)),r.b),0),82))).i,c=i.j,CI(a=jz(Yet((!r.a&&(r.a=new tW(PDe,r,6,6)),r.a),0),202),a.j+s,a.k+c),EI(a,a.b+s,a.c+c),n=new AO((!a.a&&(a.a=new DO(LDe,a,5)),a.a));n.e!=n.i.gc();)RI(e=jz(wmt(n),469),e.a+s,e.b+c);Kat(jz(JIt(r,(cGt(),TCe)),74),s,c)}}function gjt(t){switch(t){case 100:return yGt(cte,!0);case 68:return yGt(cte,!1);case 119:return yGt(lte,!0);case 87:return yGt(lte,!1);case 115:return yGt(ute,!0);case 83:return yGt(ute,!1);case 99:return yGt(dte,!0);case 67:return yGt(dte,!1);case 105:return yGt(hte,!0);case 73:return yGt(hte,!1);default:throw $m(new fw(ste+t.toString(16)))}}function pjt(t){var e,n,a,r,o;switch(r=jz(OU(t.a,0),10),e=new Iyt(t),Wz(t.a,e),e.o.a=i.Math.max(1,r.o.a),e.o.b=i.Math.max(1,r.o.b),e.n.a=r.n.a,e.n.b=r.n.b,jz(yEt(r,(lGt(),Gde)),61).g){case 4:e.n.a+=2;break;case 1:e.n.b+=2;break;case 2:e.n.a-=2;break;case 3:e.n.b-=2}return CQ(a=new SCt,e),kQ(n=new hX,o=jz(OU(r.j,0),11)),_Q(n,a),VP(vD(a.n),o.n),VP(vD(a.a),o.a),e}function bjt(t,e,n,i,a){n&&(!i||(t.c-t.b&t.a.length-1)>1)&&1==e&&jz(t.a[t.b],10).k==(oCt(),Ese)?l$t(jz(t.a[t.b],10),(Wwt(),xTe)):i&&(!n||(t.c-t.b&t.a.length-1)>1)&&1==e&&jz(t.a[t.c-1&t.a.length-1],10).k==(oCt(),Ese)?l$t(jz(t.a[t.c-1&t.a.length-1],10),(Wwt(),RTe)):2==(t.c-t.b&t.a.length-1)?(l$t(jz(Rct(t),10),(Wwt(),xTe)),l$t(jz(Rct(t),10),RTe)):cOt(t,a),o3(t)}function mjt(t,e,n){var a,r,o,s,c;for(o=0,r=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));r.e!=r.i.gc();)s="",0==(!(a=jz(wmt(r),33)).n&&(a.n=new tW(HDe,a,1,7)),a.n).i||(s=jz(Yet((!a.n&&(a.n=new tW(HDe,a,1,7)),a.n),0),137).a),Hot(c=new alt(o++,e,s),a),lct(c,(HUt(),sxe),a),c.e.b=a.j+a.f/2,c.f.a=i.Math.max(a.g,1),c.e.a=a.i+a.g/2,c.f.b=i.Math.max(a.f,1),MH(e.b,c),xTt(n.f,a,c)}function yjt(t){var e,n,i,a,r;i=jz(yEt(t,(lGt(),fhe)),33),r=jz(JIt(i,(zYt(),Fbe)),174).Hc((ypt(),FAe)),t.e||(a=jz(yEt(t,Xde),21),e=new OT(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),a.Hc((hBt(),dde))?(Kmt(i,tme,(Z_t(),WTe)),PWt(i,e.a,e.b,!1,!0)):zw(RB(JIt(i,jbe)))||PWt(i,e.a,e.b,!0,!0)),Kmt(i,Fbe,r?Qht(FAe):new ZF(n=jz(YR($Ae),9),jz(kP(n,n.length),9),0))}function vjt(t,e,n){var i,a,r,o;if(e[0]>=t.length)return n.o=0,!0;switch(lZ(t,e[0])){case 43:a=1;break;case 45:a=-1;break;default:return n.o=0,!0}if(++e[0],r=e[0],0==(o=qAt(t,e))&&e[0]==r)return!1;if(e[0]<t.length&&58==lZ(t,e[0])){if(i=60*o,++e[0],r=e[0],0==(o=qAt(t,e))&&e[0]==r)return!1;i+=o}else(i=o)<24&&e[0]-r<=2?i*=60:i=i%100+60*(i/100|0);return i*=a,n.o=-i,!0}function wjt(t){var e,n,i,a,r,o,s;for(a=new Lm,i=new oq(XO(dft(t.b).a.Kc(),new u));gIt(i);)d6(n=jz(V6(i),17))&&Wz(a,new w7(n,b8(t,n.c),b8(t,n.d)));for(s=new Bf(new Tf(t.e).a.vc().Kc());s.a.Ob();)e=jz(s.a.Pb(),42),(r=jz(e.dd(),113)).d.p=0;for(o=new Bf(new Tf(t.e).a.vc().Kc());o.a.Ob();)e=jz(o.a.Pb(),42),0==(r=jz(e.dd(),113)).d.p&&Wz(t.d,BFt(t,r))}function xjt(t){var e,n,i,a,r;for(r=WJ(t),a=new AO((!t.e&&(t.e=new cF(BDe,t,7,4)),t.e));a.e!=a.i.gc();)if(i=jz(wmt(a),79),!Set(Ckt(jz(Yet((!i.c&&(i.c=new cF(NDe,i,5,8)),i.c),0),82)),r))return!0;for(n=new AO((!t.d&&(t.d=new cF(BDe,t,8,5)),t.d));n.e!=n.i.gc();)if(e=jz(wmt(n),79),!Set(Ckt(jz(Yet((!e.b&&(e.b=new cF(NDe,e,4,7)),e.b),0),82)),r))return!0;return!1}function Rjt(t){var e,n,a,r,o,s,c,l;for(l=new vv,c=null,n=jz(d4(e=cmt(t,0)),8),r=jz(d4(e),8);e.b!=e.d.c;)c=n,n=r,r=jz(d4(e),8),o=iet(qP(new OT(c.a,c.b),n)),s=iet(qP(new OT(r.a,r.b),n)),a=10,a=i.Math.min(a,i.Math.abs(o.a+o.b)/2),a=i.Math.min(a,i.Math.abs(s.a+s.b)/2),o.a=$H(o.a)*a,o.b=$H(o.b)*a,s.a=$H(s.a)*a,s.b=$H(s.b)*a,MH(l,VP(o,n)),MH(l,VP(s,n));return l}function _jt(t,e,n,i){var a,r,o,s,c;return o=t.eh(),a=null,(c=t.Zg())?!e||pFt(t,e,n).Bb&$Kt?c=null:(i=Fmt(c.Vk(),t,i),t.uh(null),a=e.fh()):(o&&(c=o.fh()),e&&(a=e.fh())),c!=a&&c&&c.Zk(t),s=t.Vg(),t.Rg(e,n),c!=a&&a&&a.Yk(t),t.Lg()&&t.Mg()&&(o&&s>=0&&s!=n&&(r=new Jq(t,1,s,o,null),i?i.Ei(r):i=r),n>=0&&(r=new Jq(t,1,n,s==n?o:null,e),i?i.Ei(r):i=r)),i}function kjt(t){var e,n,i;if(null==t.b){if(i=new kx,null!=t.i&&(iD(i,t.i),i.a+=":"),256&t.f){for(256&t.f&&null!=t.a&&(nK(t.i)||(i.a+="//"),iD(i,t.a)),null!=t.d&&(i.a+="/",iD(i,t.d)),16&t.f&&(i.a+="/"),e=0,n=t.j.length;e<n;e++)0!=e&&(i.a+="/"),iD(i,t.j[e]);null!=t.g&&(i.a+="?",iD(i,t.g))}else iD(i,t.a);null!=t.e&&(i.a+="#",iD(i,t.e)),t.b=i.a}return t.b}function Ejt(t,e){var n,i,a,r,o,s;for(a=new Wf(e.a);a.a<a.c.c.length;)iO(r=yEt(i=jz(J1(a),10),(lGt(),fhe)),11)&&(s=v$t(e,i,(o=jz(r,11)).o.a,o.o.b),o.n.a=s.a,o.n.b=s.b,HTt(o,jz(yEt(i,Gde),61)));n=new OT(e.f.a+e.d.b+e.d.c,e.f.b+e.d.d+e.d.a),jz(yEt(e,(lGt(),Xde)),21).Hc((hBt(),dde))?(lct(t,(zYt(),tme),(Z_t(),WTe)),jz(yEt(bG(t),Xde),21).Fc(gde),hVt(t,n,!1)):hVt(t,n,!0)}function Cjt(t,e,n){var i,a,r,o,s;Akt(n,"Minimize Crossings "+t.a,1),i=0==e.b.c.length||!w_(AZ(new NU(null,new h1(e.b,16)),new ag(new Ir))).sd((fE(),Qne)),s=1==e.b.c.length&&1==jz(OU(e.b,0),29).a.c.length,r=HA(yEt(e,(zYt(),sbe)))===HA((odt(),bTe)),i||s&&!r||(Elt(a=cNt(t,e),(o=jz(Nmt(a,0),214)).c.Rf()?o.c.Lf()?new Vp(t):new qp(t):new Up(t)),rdt(t)),zCt(n)}function Sjt(t,e,n,i){var a,r,o,s;if(s=fV(aft(EZt,nZ(fV(aft(null==e?0:Qct(e),CZt)),15))),a=fV(aft(EZt,nZ(fV(aft(null==n?0:Qct(n),CZt)),15))),o=Jat(t,e,s),r=Xat(t,n,a),o&&a==o.a&&hG(n,o.g))return n;if(r&&!i)throw $m(new Pw("key already present: "+n));return o&&LOt(t,o),r&&LOt(t,r),KTt(t,new zG(n,a,e,s),r),r&&(r.e=null,r.c=null),o&&(o.e=null,o.c=null),Hxt(t),o?o.g:null}function Tjt(t,e,n){var i,a,r,o,s;for(r=0;r<e;r++){for(i=0,s=r+1;s<e;s++)i=ift(ift(aft(t0(t[r],qKt),t0(t[s],qKt)),t0(n[r+s],qKt)),t0(fV(i),qKt)),n[r+s]=fV(i),i=wq(i,32);n[r+e]=fV(i)}for(Qat(n,n,e<<1),i=0,a=0,o=0;a<e;++a,o++)i=ift(ift(aft(t0(t[a],qKt),t0(t[a],qKt)),t0(n[o],qKt)),t0(fV(i),qKt)),n[o]=fV(i),i=ift(i=wq(i,32),t0(n[++o],qKt)),n[o]=fV(i),i=wq(i,32);return n}function Ajt(t,e,n){var a,r,o,s,c,l,u,d;if(!c4(e)){for(l=Hw(_B(ept(n.c,(zYt(),Lme)))),!(u=jz(ept(n.c,Ime),142))&&(u=new uv),a=n.a,r=null,c=e.Kc();c.Ob();)s=jz(c.Pb(),11),d=0,r?(d=l,d+=r.o.b):d=u.d,o=AM(oE(new zy,s),t.f),YG(t.k,s,o),qMt(aE(iE(nE(rE(new $y,0),CJ(i.Math.ceil(d))),a),o)),r=s,a=o;qMt(aE(iE(nE(rE(new $y,0),CJ(i.Math.ceil(u.a+r.o.b))),a),n.d))}}function Djt(t,e,n,i,a,r,o,s){var c,l,u;return u=!1,l=r-n.s,c=n.t-e.f+aHt(n,l,!1).a,!(i.g+s>l)&&(c+s+aHt(i,l,!1).a<=e.b&&(p8(n,r-n.s),n.c=!0,p8(i,r-n.s),_yt(i,n.s,n.t+n.d+s),i.k=!0,Mrt(n.q,i),u=!0,a&&(tit(e,i),i.j=e,t.c.length>o&&(_xt((u1(o,t.c.length),jz(t.c[o],200)),i),0==(u1(o,t.c.length),jz(t.c[o],200)).a.c.length&&s7(t,o)))),u)}function Ijt(t,e){var n,i,a,r,o;if(Akt(e,"Partition midprocessing",1),a=new pJ,Kk(AZ(new NU(null,new h1(t.a,16)),new pi),new up(a)),0!=a.d){for(o=jz(E3(a1(new NU(null,(a.i||(a.i=new $O(a,a.c))).Nc())),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15),n=jz((i=o.Kc()).Pb(),19);i.Ob();)r=jz(i.Pb(),19),WOt(jz(c7(a,n),21),jz(c7(a,r),21)),n=r;zCt(e)}}function Ljt(t,e,n){var i,a,r,o,s;if(0==e.p){for(e.p=1,(a=n)||(a=new nA(new Lm,new ZF(i=jz(YR(MAe),9),jz(kP(i,i.length),9),0))),jz(a.a,15).Fc(e),e.k==(oCt(),kse)&&jz(a.b,21).Fc(jz(yEt(e,(lGt(),Gde)),61)),o=new Wf(e.j);o.a<o.c.c.length;)for(r=jz(J1(o),11),s=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(r),new Hg(r)])));gIt(s);)Ljt(t,jz(V6(s),11).i,a);return a}return null}function Ojt(t,e){var n,i,a,r,o;if(t.Ab)if(t.Ab){if((o=t.Ab.i)>0)if(a=jz(t.Ab.g,1934),null==e){for(r=0;r<o;++r)if(null==(n=a[r]).d)return n}else for(r=0;r<o;++r)if(mF(e,(n=a[r]).d))return n}else if(null==e){for(i=new AO(t.Ab);i.e!=i.i.gc();)if(null==(n=jz(wmt(i),590)).d)return n}else for(i=new AO(t.Ab);i.e!=i.i.gc();)if(mF(e,(n=jz(wmt(i),590)).d))return n;return null}function Mjt(t,e){var n,i,a,r,o,s,c;if(null==(c=RB(yEt(e,(SIt(),Lxe))))||(vG(c),c)){for(NDt(t,e),a=new Lm,s=cmt(e.b,0);s.b!=s.d.c;)(n=MSt(t,jz(d4(s),86),null))&&(Hot(n,e),a.c[a.c.length]=n);if(t.a=null,t.b=null,a.c.length>1)for(i=new Wf(a);i.a<i.c.c.length;)for(r=0,o=cmt((n=jz(J1(i),135)).b,0);o.b!=o.d.c;)jz(d4(o),86).g=r++;return a}return r7(Cst(Hx(Hwe,1),tQt,135,0,[e]))}function Njt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g,p,b,m;aat(f=A4(t,Hst(e),a),N2(a,H7t)),p=M2(g=a,q7t),aCt(new Ib(f).a,p),b=M2(g,"endPoint"),iCt(new Nb(f).a,b),m=L2(g,N7t),E_t(new Fb(f).a,m),d=N2(a,P7t),zP((r=new cA(t,f)).a,r.b,d),h=N2(a,B7t),HP((o=new lA(t,f)).a,o.b,h),l=L2(a,j7t),jwt((s=new uA(n,f)).b,s.a,l),u=L2(a,F7t),$wt((c=new dA(i,f)).b,c.a,u)}function Bjt(t,e,n){var i,a,r,o,s;switch(s=null,e.g){case 1:for(a=new Wf(t.j);a.a<a.c.c.length;)if(zw(RB(yEt(i=jz(J1(a),11),(lGt(),Qde)))))return i;lct(s=new SCt,(lGt(),Qde),(cM(),!0));break;case 2:for(o=new Wf(t.j);o.a<o.c.c.length;)if(zw(RB(yEt(r=jz(J1(o),11),(lGt(),vhe)))))return r;lct(s=new SCt,(lGt(),vhe),(cM(),!0))}return s&&(CQ(s,t),HTt(s,n),vyt(s.n,t.o,n)),s}function Pjt(t,e){var n,a,r,o,s,c;for(c=-1,s=new Zk,a=new m7(t.b);yL(a.a)||yL(a.b);){for(n=jz(yL(a.a)?J1(a.a):J1(a.b),17),c=i.Math.max(c,Hw(_B(yEt(n,(zYt(),abe))))),n.c==t?Kk(AZ(new NU(null,new h1(n.b,16)),new dn),new Jg(s)):Kk(AZ(new NU(null,new h1(n.b,16)),new hn),new Qg(s)),o=cmt(s,0);o.b!=o.d.c;)IN(r=jz(d4(o),70),(lGt(),Vde))||lct(r,Vde,n);pst(e,s),yK(s)}return c}function Fjt(t,e,n,i,a){var r,o,s,c;Fh(r=new Iyt(t),(oCt(),Tse)),lct(r,(zYt(),tme),(Z_t(),WTe)),lct(r,(lGt(),fhe),e.c.i),lct(o=new SCt,fhe,e.c),HTt(o,a),CQ(o,r),lct(e.c,xhe,r),Fh(s=new Iyt(t),Tse),lct(s,tme,WTe),lct(s,fhe,e.d.i),lct(c=new SCt,fhe,e.d),HTt(c,a),CQ(c,s),lct(e.d,xhe,s),kQ(e,o),_Q(e,c),IQ(0,n.c.length),_C(n.c,0,r),i.c[i.c.length]=s,lct(r,jde,nht(1)),lct(s,jde,nht(1))}function jjt(t,e,n,a,r){var o,s,c,l,u;c=r?a.b:a.a,!Fk(t.a,a)&&(u=c>n.s&&c<n.c,l=!1,0!=n.e.b&&0!=n.j.b&&(l|=i.Math.abs(c-Hw(_B(gN(n.e))))<dQt&&i.Math.abs(c-Hw(_B(gN(n.j))))<dQt,l|=i.Math.abs(c-Hw(_B(pN(n.e))))<dQt&&i.Math.abs(c-Hw(_B(pN(n.j))))<dQt),(u||l)&&((s=jz(yEt(e,(zYt(),bbe)),74))||(s=new vv,lct(e,bbe,s)),n6(s,o=new hI(a),s.c.b,s.c),RW(t.a,o)))}function $jt(t,e,n,i){var a,r,o,s,c,l,u;if(YAt(t,e,n,i))return!0;for(o=new Wf(e.f);o.a<o.c.c.length;){switch(r=jz(J1(o),324),s=!1,l=(c=t.j-e.j+n)+e.o,a=(u=t.k-e.k+i)+e.p,r.a.g){case 0:s=Alt(t,c+r.b.a,0,c+r.c.a,u-1);break;case 1:s=Alt(t,l,u+r.b.a,t.o-1,u+r.c.a);break;case 2:s=Alt(t,c+r.b.a,a,c+r.c.a,t.p-1);break;default:s=Alt(t,0,u+r.b.a,c-1,u+r.c.a)}if(s)return!0}return!1}function zjt(t,e){var n,i,a,r,o,s,c,l;for(r=new Wf(e.b);r.a<r.c.c.length;)for(c=new Wf(jz(J1(r),29).a);c.a<c.c.c.length;){for(s=jz(J1(c),10),l=new Lm,o=0,i=new oq(XO(uft(s).a.Kc(),new u));gIt(i);)!d6(n=jz(V6(i),17))&&(d6(n)||n.c.i.c!=n.d.i.c)&&((a=jz(yEt(n,(zYt(),dme)),19).a)>o&&(o=a,l.c=O5(Dte,zGt,1,0,5,1)),a==o&&Wz(l,new nA(n.c.i,n)));kK(),mL(l,t.c),vV(t.b,s.p,l)}}function Hjt(t,e){var n,i,a,r,o,s,c,l;for(r=new Wf(e.b);r.a<r.c.c.length;)for(c=new Wf(jz(J1(r),29).a);c.a<c.c.c.length;){for(s=jz(J1(c),10),l=new Lm,o=0,i=new oq(XO(dft(s).a.Kc(),new u));gIt(i);)!d6(n=jz(V6(i),17))&&(d6(n)||n.c.i.c!=n.d.i.c)&&((a=jz(yEt(n,(zYt(),dme)),19).a)>o&&(o=a,l.c=O5(Dte,zGt,1,0,5,1)),a==o&&Wz(l,new nA(n.d.i,n)));kK(),mL(l,t.c),vV(t.f,s.p,l)}}function Ujt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,d6t),"ELK Box"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges."),new Bs))),r2(t,d6t,ZJt,UEe),r2(t,d6t,mQt,15),r2(t,d6t,bQt,nht(0)),r2(t,d6t,D3t,ymt(PEe)),r2(t,d6t,CQt,ymt(jEe)),r2(t,d6t,EQt,ymt(zEe)),r2(t,d6t,GJt,u6t),r2(t,d6t,xQt,ymt(FEe)),r2(t,d6t,$Qt,ymt($Ee)),r2(t,d6t,h6t,ymt(NEe)),r2(t,d6t,o4t,ymt(BEe))}function Vjt(t,e){var n,i,a,r,o,s,c,l,u;if(o=(a=t.i).o.a,r=a.o.b,o<=0&&r<=0)return wWt(),CAe;switch(l=t.n.a,u=t.n.b,s=t.o.a,n=t.o.b,e.g){case 2:case 1:if(l<0)return wWt(),SAe;if(l+s>o)return wWt(),sAe;break;case 4:case 3:if(u<0)return wWt(),cAe;if(u+n>r)return wWt(),EAe}return(c=(l+s/2)/o)+(i=(u+n/2)/r)<=1&&c-i<=0?(wWt(),SAe):c+i>=1&&c-i>=0?(wWt(),sAe):i<.5?(wWt(),cAe):(wWt(),EAe)}function qjt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f;for(n=!1,c=Hw(_B(yEt(e,(zYt(),Tme)))),h=PZt*c,a=new Wf(e.b);a.a<a.c.c.length;)for(i=jz(J1(a),29),r=jz(J1(s=new Wf(i.a)),10),l=hW(t.a[r.p]);s.a<s.c.c.length;)o=jz(J1(s),10),l!=(u=hW(t.a[o.p]))&&(d=BL(t.b,r,o),r.n.b+r.o.b+r.d.a+l.a+d>o.n.b-o.d.d+u.a+h&&(f=l.g+u.g,u.a=(u.g*u.a+l.g*l.a)/f,u.g=f,l.f=u,n=!0)),r=o,l=u;return n}function Wjt(t,e,n,i,a,r,o){var s,c,l,u,d;for(d=new dI,c=e.Kc();c.Ob();)for(u=new Wf(jz(c.Pb(),839).wf());u.a<u.c.c.length;)HA((l=jz(J1(u),181)).We((cGt(),gCe)))===HA((Bet(),WSe))&&(iFt(d,l,!1,i,a,r,o),SSt(t,d));for(s=n.Kc();s.Ob();)for(u=new Wf(jz(s.Pb(),839).wf());u.a<u.c.c.length;)HA((l=jz(J1(u),181)).We((cGt(),gCe)))===HA((Bet(),qSe))&&(iFt(d,l,!0,i,a,r,o),SSt(t,d))}function Yjt(t,e,n){var i,a,r,o,s,c,l;for(o=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));o.e!=o.i.gc();)for(a=new oq(XO(gOt(r=jz(wmt(o),33)).a.Kc(),new u));gIt(a);)!QDt(i=jz(V6(a),79))&&!QDt(i)&&!ZAt(i)&&(c=jz(zA(AX(n.f,r)),86),l=jz(NY(n,Ckt(jz(Yet((!i.c&&(i.c=new cF(NDe,i,5,8)),i.c),0),82))),86),c&&l&&(lct(s=new VK(c,l),(HUt(),sxe),i),Hot(s,i),MH(c.d,s),MH(l.b,s),MH(e.a,s)))}function Gjt(t,e){var n,a,r,o,s,c,l;for(c=jz(jz(c7(t.r,e),21),84).Kc();c.Ob();)(a=(s=jz(c.Pb(),111)).c?WH(s.c):0)>0?s.a?a>(l=s.b.rf().b)&&(t.v||1==s.c.d.c.length?(o=(a-l)/2,s.d.d=o,s.d.a=o):(n=(jz(OU(s.c.d,0),181).rf().b-l)/2,s.d.d=i.Math.max(0,n),s.d.a=a-n-l)):s.d.a=t.t+a:$q(t.u)&&((r=Fkt(s.b)).d<0&&(s.d.d=-r.d),r.d+r.a>s.b.rf().b&&(s.d.a=r.d+r.a-s.b.rf().b))}function Zjt(t,e){var n;switch(btt(t)){case 6:return qA(e);case 7:return VA(e);case 8:return UA(e);case 3:return Array.isArray(e)&&!((n=btt(e))>=14&&n<=16);case 11:return null!=e&&typeof e===MGt;case 12:return null!=e&&(typeof e===DGt||typeof e==MGt);case 0:return Zmt(e,t.__elementTypeId$);case 2:return MW(e)&&e.im!==A;case 1:return MW(e)&&e.im!==A||Zmt(e,t.__elementTypeId$);default:return!0}}function Kjt(t,e){var n,a,r,o;return a=i.Math.min(i.Math.abs(t.c-(e.c+e.b)),i.Math.abs(t.c+t.b-e.c)),o=i.Math.min(i.Math.abs(t.d-(e.d+e.a)),i.Math.abs(t.d+t.a-e.d)),(n=i.Math.abs(t.c+t.b/2-(e.c+e.b/2)))>t.b/2+e.b/2||(r=i.Math.abs(t.d+t.a/2-(e.d+e.a/2)))>t.a/2+e.a/2?1:0==n&&0==r?0:0==n?o/r+1:0==r?a/n+1:i.Math.min(a/n,o/r)+1}function Xjt(t,e){var n,a,r,o,s,c;return(r=nit(t))==(c=nit(e))?t.e==e.e&&t.a<54&&e.a<54?t.f<e.f?-1:t.f>e.f?1:0:(a=t.e-e.e,(n=(t.d>0?t.d:i.Math.floor((t.a-1)*VKt)+1)-(e.d>0?e.d:i.Math.floor((e.a-1)*VKt)+1))>a+1?r:n<a-1?-r:(!t.c&&(t.c=vut(t.f)),o=t.c,!e.c&&(e.c=vut(e.f)),s=e.c,a<0?o=Ltt(o,wzt(-a)):a>0&&(s=Ltt(s,wzt(a))),tbt(o,s))):r<c?-1:1}function Jjt(t,e){var n,i,a,r,o,s,c;for(r=0,s=0,c=0,a=new Wf(t.f.e);a.a<a.c.c.length;)e!=(i=jz(J1(a),144))&&(r+=o=t.i[e.b][i.b],(n=W5(e.d,i.d))>0&&t.d!=(z9(),Doe)&&(s+=o*(i.d.a+t.a[e.b][i.b]*(e.d.a-i.d.a)/n)),n>0&&t.d!=(z9(),Toe)&&(c+=o*(i.d.b+t.a[e.b][i.b]*(e.d.b-i.d.b)/n)));switch(t.d.g){case 1:return new OT(s/r,e.d.b);case 2:return new OT(e.d.a,c/r);default:return new OT(s/r,c/r)}}function Qjt(t,e){var n,i,a,r;if(Vlt(),r=jz(yEt(t.i,(zYt(),tme)),98),0!=t.j.g-e.j.g||r!=(Z_t(),qTe)&&r!=YTe&&r!=WTe)return 0;if(r==(Z_t(),qTe)&&(n=jz(yEt(t,eme),19),i=jz(yEt(e,eme),19),n&&i&&0!=(a=n.a-i.a)))return a;switch(t.j.g){case 1:return Cht(t.n.a,e.n.a);case 2:return Cht(t.n.b,e.n.b);case 3:return Cht(e.n.a,t.n.a);case 4:return Cht(e.n.b,t.n.b);default:throw $m(new Fw(i1t))}}function t$t(t){var e,n,i,a,r;for(Wz(r=new K7((!t.a&&(t.a=new DO(LDe,t,5)),t.a).i+2),new OT(t.j,t.k)),Kk(new NU(null,(!t.a&&(t.a=new DO(LDe,t,5)),new h1(t.a,16))),new Sb(r)),Wz(r,new OT(t.b,t.c)),e=1;e<r.c.length-1;)u1(e-1,r.c.length),n=jz(r.c[e-1],8),u1(e,r.c.length),i=jz(r.c[e],8),u1(e+1,r.c.length),a=jz(r.c[e+1],8),n.a==i.a&&i.a==a.a||n.b==i.b&&i.b==a.b?s7(r,e):++e;return r}function e$t(t,e){var n,i,a,r,o,s,c;for(n=TM(eE(Qk(tE(new Wy,e),new gX(e.e)),gle),t.a),0==e.j.c.length||Y8(jz(OU(e.j,0),57).a,n),c=new Mm,YG(t.e,n,c),o=new Ny,s=new Ny,r=new Wf(e.k);r.a<r.c.c.length;)RW(o,(a=jz(J1(r),17)).c),RW(s,a.d);(i=o.a.gc()-s.a.gc())<0?(qst(c,!0,(jdt(),FSe)),qst(c,!1,jSe)):i>0&&(qst(c,!1,(jdt(),FSe)),qst(c,!0,jSe)),Aet(e.g,new sS(t,n)),YG(t.g,e,n)}function n$t(){var t;for(n$t=D,Lee=Cst(Hx(TMe,1),lKt,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),Oee=O5(TMe,lKt,25,37,15,1),Mee=Cst(Hx(TMe,1),lKt,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),Nee=O5(DMe,jKt,25,37,14,1),t=2;t<=36;t++)Oee[t]=CJ(i.Math.pow(t,Lee[t])),Nee[t]=ARt(hZt,Oee[t])}function i$t(t){var e;if(1!=(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i)throw $m(new Pw($6t+(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i));return e=new vv,hst(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82))&&jat(e,VYt(t,hst(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)),!1)),hst(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82))&&jat(e,VYt(t,hst(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82)),!0)),e}function a$t(t,e){var n,i,a;for(a=!1,i=new oq(XO((e.d?t.a.c==(gJ(),twe)?uft(e.b):dft(e.b):t.a.c==(gJ(),Qve)?uft(e.b):dft(e.b)).a.Kc(),new u));gIt(i);)if(n=jz(V6(i),17),(zw(t.a.f[t.a.g[e.b.p].p])||d6(n)||n.c.i.c!=n.d.i.c)&&!zw(t.a.n[t.a.g[e.b.p].p])&&!zw(t.a.n[t.a.g[e.b.p].p])&&(a=!0,Fk(t.b,t.a.g[Lvt(n,e.b).p])))return e.c=!0,e.a=n,e;return e.c=a,e.a=null,e}function r$t(t,e,n,i,a){var r,o,s,c,l,u,d;for(kK(),mL(t,new Gs),s=new _2(t,0),d=new Lm,r=0;s.b<s.d.gc();)EN(s.b<s.d.gc()),o=jz(s.d.Xb(s.c=s.b++),157),0!=d.c.length&&eV(o)*tV(o)>2*r?(u=new Uet(d),l=eV(o)/tV(o),c=vYt(u,e,new dv,n,i,a,l),VP(vD(u.e),c),d.c=O5(Dte,zGt,1,0,5,1),r=0,d.c[d.c.length]=u,d.c[d.c.length]=o,r=eV(u)*tV(u)+eV(o)*tV(o)):(d.c[d.c.length]=o,r+=eV(o)*tV(o));return d}function o$t(t,e,n){var i,a,r,o,s,c,l;if(0==(i=n.gc()))return!1;if(t.ej())if(c=t.fj(),wgt(t,e,n),o=1==i?t.Zi(3,null,n.Kc().Pb(),e,c):t.Zi(5,null,n,e,c),t.bj()){for(s=i<100?null:new FR(i),r=e+i,a=e;a<r;++a)l=t.Oi(a),s=t.cj(l,s);s?(s.Ei(o),s.Fi()):t.$i(o)}else t.$i(o);else if(wgt(t,e,n),t.bj()){for(s=i<100?null:new FR(i),r=e+i,a=e;a<r;++a)s=t.cj(t.Oi(a),s);s&&s.Fi()}return!0}function s$t(t,e,n){var i,a,r,o;return t.ej()?(a=null,r=t.fj(),i=t.Zi(1,o=t.Ui(e,t.oi(e,n)),n,e,r),t.bj()&&!(t.ni()&&o?Odt(o,n):HA(o)===HA(n))&&(o&&(a=t.dj(o,a)),a=t.cj(n,a)),a?(a.Ei(i),a.Fi()):t.$i(i),o):(o=t.Ui(e,t.oi(e,n)),t.bj()&&!(t.ni()&&o?Odt(o,n):HA(o)===HA(n))&&(a=null,o&&(a=t.dj(o,null)),(a=t.cj(n,a))&&a.Fi()),o)}function c$t(t,e){var n,a,r,o,s,c,l,u;if(t.e=e,t.f=jz(yEt(e,(kat(),coe)),230),Wkt(e),t.d=i.Math.max(16*e.e.c.length+e.c.c.length,256),!zw(RB(yEt(e,(uPt(),$re)))))for(u=t.e.e.c.length,c=new Wf(e.e);c.a<c.c.c.length;)(l=jz(J1(c),144).d).a=TV(t.f)*u,l.b=TV(t.f)*u;for(n=e.b,o=new Wf(e.c);o.a<o.c.c.length;)if(r=jz(J1(o),282),(a=jz(yEt(r,toe),19).a)>0){for(s=0;s<a;s++)Wz(n,new cY(r));$Tt(r)}}function l$t(t,e){var n,a,r,o,s;if(t.k==(oCt(),Ese)&&(n=w_(AZ(jz(yEt(t,(lGt(),Ehe)),15).Oc(),new ag(new ai))).sd((fE(),Qne))?e:(Wwt(),_Te),lct(t,rhe,n),n!=(Wwt(),RTe)))for(a=jz(yEt(t,fhe),17),s=Hw(_B(yEt(a,(zYt(),abe)))),o=0,n==xTe?o=t.o.b-i.Math.ceil(s/2):n==_Te&&(t.o.b-=Hw(_B(yEt(bG(t),wme))),o=(t.o.b-i.Math.ceil(s))/2),r=new Wf(t.j);r.a<r.c.c.length;)jz(J1(r),11).n.b=o}function u$t(){u$t=D,KE(),xMe=new Pu,Cst(Hx(TLe,2),cZt,368,0,[Cst(Hx(TLe,1),xte,592,0,[new V_(V9t)])]),Cst(Hx(TLe,2),cZt,368,0,[Cst(Hx(TLe,1),xte,592,0,[new V_(q9t)])]),Cst(Hx(TLe,2),cZt,368,0,[Cst(Hx(TLe,1),xte,592,0,[new V_(W9t)]),Cst(Hx(TLe,1),xte,592,0,[new V_(q9t)])]),new DI("-1"),Cst(Hx(TLe,2),cZt,368,0,[Cst(Hx(TLe,1),xte,592,0,[new V_("\\c+")])]),new DI("0"),new DI("0"),new DI("1"),new DI("0"),new DI(nte)}function d$t(t){var e,n;return t.c&&t.c.kh()&&(n=jz(t.c,49),t.c=jz(tdt(t,n),138),t.c!=n&&(4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,9,2,n,t.c)),iO(t.Cb,399)?t.Db>>16==-15&&t.Cb.nh()&&D9(new v8(t.Cb,9,13,n,t.c,oyt($9(jz(t.Cb,59)),t))):iO(t.Cb,88)&&t.Db>>16==-23&&t.Cb.nh()&&(iO(e=t.c,88)||(pGt(),e=hLe),iO(n,88)||(pGt(),n=hLe),D9(new v8(t.Cb,9,10,n,e,oyt(a3(jz(t.Cb,26)),t)))))),t.c}function h$t(t,e){var n,i,a,r,o,s,c,l,u;for(Akt(e,"Hypernodes processing",1),i=new Wf(t.b);i.a<i.c.c.length;)for(o=new Wf(jz(J1(i),29).a);o.a<o.c.c.length;)if(zw(RB(yEt(r=jz(J1(o),10),(zYt(),dbe))))&&r.j.c.length<=2){for(u=0,l=0,n=0,a=0,c=new Wf(r.j);c.a<c.c.c.length;)switch(s=jz(J1(c),11),s.j.g){case 1:++u;break;case 2:++l;break;case 3:++n;break;case 4:++a}0==u&&0==n&&xYt(t,r,a<=l)}zCt(e)}function f$t(t,e){var n,i,a,r,o,s,c,l,u;for(Akt(e,"Layer constraint edge reversal",1),o=new Wf(t.b);o.a<o.c.c.length;){for(r=jz(J1(o),29),u=-1,n=new Lm,l=J0(r.a),a=0;a<l.length;a++)i=jz(yEt(l[a],(lGt(),ehe)),303),-1==u?i!=(U9(),Sde)&&(u=a):i==(U9(),Sde)&&(EQ(l[a],null),Zwt(l[a],u++,r)),i==(U9(),Ede)&&Wz(n,l[a]);for(c=new Wf(n);c.a<c.c.c.length;)EQ(s=jz(J1(c),10),null),EQ(s,r)}zCt(e)}function g$t(t,e,n){var i,a,r,o,s,c,l,u;for(Akt(n,"Hyperedge merging",1),MIt(t,e),s=new _2(e.b,0);s.b<s.d.gc();)if(EN(s.b<s.d.gc()),0!=(l=jz(s.d.Xb(s.c=s.b++),29).a).c.length)for(i=null,a=null,r=null,o=null,c=0;c<l.c.length;c++)u1(c,l.c.length),(a=(i=jz(l.c[c],10)).k)==(oCt(),Cse)&&o==Cse&&(u=lHt(i,r)).a&&(iBt(i,r,u.b,u.c),u1(c,l.c.length),E_(l.c,c,1),--c,i=r,a=o),r=i,o=a;zCt(n)}function p$t(t,e){var n,i,a;i=0!=zLt(t.d,1),!zw(RB(yEt(e.j,(lGt(),Kde))))&&!zw(RB(yEt(e.j,She)))||HA(yEt(e.j,(zYt(),Ipe)))===HA((yct(),Oye))?e.c.Tf(e.e,i):i=zw(RB(yEt(e.j,Kde))),NMt(t,e,i,!0),zw(RB(yEt(e.j,She)))&&lct(e.j,She,(cM(),!1)),zw(RB(yEt(e.j,Kde)))&&(lct(e.j,Kde,(cM(),!1)),lct(e.j,She,!0)),n=eFt(t,e);do{if(Iat(t),0==n)return 0;a=n,NMt(t,e,i=!i,!1),n=eFt(t,e)}while(a>n);return a}function b$t(t,e){var n,i,a;i=0!=zLt(t.d,1),!zw(RB(yEt(e.j,(lGt(),Kde))))&&!zw(RB(yEt(e.j,She)))||HA(yEt(e.j,(zYt(),Ipe)))===HA((yct(),Oye))?e.c.Tf(e.e,i):i=zw(RB(yEt(e.j,Kde))),NMt(t,e,i,!0),zw(RB(yEt(e.j,She)))&&lct(e.j,She,(cM(),!1)),zw(RB(yEt(e.j,Kde)))&&(lct(e.j,Kde,(cM(),!1)),lct(e.j,She,!0)),n=QSt(t,e);do{if(Iat(t),0==n)return 0;a=n,NMt(t,e,i=!i,!1),n=QSt(t,e)}while(a>n);return a}function m$t(t,e,n){var i,a,r,o,s,c,l;if(e==n)return!0;if(e=hIt(t,e),n=hIt(t,n),i=Hyt(e)){if((c=Hyt(n))!=i)return!!c&&(o=i.Dj())==c.Dj()&&null!=o;if(!e.d&&(e.d=new DO(WIe,e,1)),a=(r=e.d).i,!n.d&&(n.d=new DO(WIe,n,1)),a==(l=n.d).i)for(s=0;s<a;++s)if(!m$t(t,jz(Yet(r,s),87),jz(Yet(l,s),87)))return!1;return!0}return e.e==n.e}function y$t(t,e,n,i){var a,r,o,s,c,l,u,d;if(INt(t.e,e)){for(d=rNt(t.e.Tg(),e),r=jz(t.g,119),u=null,c=-1,s=-1,a=0,l=0;l<t.i;++l)o=r[l],d.rl(o.ak())&&(a==n&&(c=l),a==i&&(s=l,u=o.dd()),++a);if(-1==c)throw $m(new Aw(o5t+n+s5t+a));if(-1==s)throw $m(new Aw(c5t+i+s5t+a));return Tht(t,c,s),mI(t.e)&&Iy(t,IX(t,7,e,nht(i),u,n,!0)),u}throw $m(new Pw("The feature must be many-valued to support move"))}function v$t(t,e,n,i){var a,r,o,s,c;switch((c=new hI(e.n)).a+=e.o.a/2,c.b+=e.o.b/2,s=Hw(_B(yEt(e,(zYt(),Qbe)))),r=t.f,o=t.d,a=t.c,jz(yEt(e,(lGt(),Gde)),61).g){case 1:c.a+=o.b+a.a-n/2,c.b=-i-s,e.n.b=-(o.d+s+a.b);break;case 2:c.a=r.a+o.b+o.c+s,c.b+=o.d+a.b-i/2,e.n.a=r.a+o.c+s-a.a;break;case 3:c.a+=o.b+a.a-n/2,c.b=r.b+o.d+o.a+s,e.n.b=r.b+o.a+s-a.b;break;case 4:c.a=-n-s,c.b+=o.d+a.b-i/2,e.n.a=-(o.b+s+a.a)}return c}function w$t(t){var e,n,i,a,r,o;return Hot(i=new yit,t),HA(yEt(i,(zYt(),Vpe)))===HA((jdt(),$Se))&&lct(i,Vpe,Yht(i)),null==yEt(i,(C7(),REe))&&(o=jz(IEt(t),160),lct(i,REe,eD(o.We(REe)))),lct(i,(lGt(),fhe),t),lct(i,Xde,new ZF(e=jz(YR(vde),9),jz(kP(e,e.length),9),0)),a=Cqt((KJ(t)&&(HE(),new Mw(KJ(t))),HE(),new KM(KJ(t)?new Mw(KJ(t)):null,t)),jSe),r=jz(yEt(i,Ube),116),tQ(n=i.d,r),tQ(n,a),i}function x$t(t,e,n){var i,a;i=e.c.i,a=n.d.i,i.k==(oCt(),Cse)?(lct(t,(lGt(),che),jz(yEt(i,che),11)),lct(t,lhe,jz(yEt(i,lhe),11)),lct(t,she,RB(yEt(i,she)))):i.k==Ese?(lct(t,(lGt(),che),jz(yEt(i,che),11)),lct(t,lhe,jz(yEt(i,lhe),11)),lct(t,she,(cM(),!0))):a.k==Ese?(lct(t,(lGt(),che),jz(yEt(a,che),11)),lct(t,lhe,jz(yEt(a,lhe),11)),lct(t,she,(cM(),!0))):(lct(t,(lGt(),che),e.c),lct(t,lhe,n.d))}function R$t(t){var e,n,i,a,r,o,s;for(t.o=new Im,i=new Zk,o=new Wf(t.e.a);o.a<o.c.c.length;)1==wft(r=jz(J1(o),121)).c.length&&n6(i,r,i.c.b,i.c);for(;0!=i.b;)0!=wft(r=jz(0==i.b?null:(EN(0!=i.b),Det(i,i.a.a)),121)).c.length&&(e=jz(OU(wft(r),0),213),n=r.g.a.c.length>0,s=Oft(e,r),BM(n?s.b:s.g,e),1==wft(s).c.length&&n6(i,s,i.c.b,i.c),a=new nA(r,e),f4(t.o,a),y9(t.e.a,r))}function _$t(t,e){var n,a,r,o;return a=i.Math.abs(zq(t.b).a-zq(e.b).a),o=i.Math.abs(zq(t.b).b-zq(e.b).b),n=1,r=1,a>t.b.b/2+e.b.b/2&&(n=1-i.Math.min(i.Math.abs(t.b.c-(e.b.c+e.b.b)),i.Math.abs(t.b.c+t.b.b-e.b.c))/a),o>t.b.a/2+e.b.a/2&&(r=1-i.Math.min(i.Math.abs(t.b.d-(e.b.d+e.b.a)),i.Math.abs(t.b.d+t.b.a-e.b.d))/o),(1-i.Math.min(n,r))*i.Math.sqrt(a*a+o*o)}function k$t(t){var e,n,i;for(Qqt(t,t.e,t.f,(fJ(),Lwe),!0,t.c,t.i),Qqt(t,t.e,t.f,Lwe,!1,t.c,t.i),Qqt(t,t.e,t.f,Owe,!0,t.c,t.i),Qqt(t,t.e,t.f,Owe,!1,t.c,t.i),T$t(t,t.c,t.e,t.f,t.i),n=new _2(t.i,0);n.b<n.d.gc();)for(EN(n.b<n.d.gc()),e=jz(n.d.Xb(n.c=n.b++),128),i=new _2(t.i,n.b);i.b<i.d.gc();)EN(i.b<i.d.gc()),OUt(e,jz(i.d.Xb(i.c=i.b++),128));TYt(t.i,jz(yEt(t.d,(lGt(),khe)),230)),UVt(t.i)}function E$t(t,e){var n,i;if(null!=e)if(i=nwt(t)){if(!(1&i.i))return JE(),!(n=jz(NY(bIe,i),55))||n.wj(e);if(i==AMe)return UA(e);if(i==TMe)return iO(e,19);if(i==OMe)return iO(e,155);if(i==IMe)return iO(e,217);if(i==SMe)return iO(e,172);if(i==LMe)return VA(e);if(i==MMe)return iO(e,184);if(i==DMe)return iO(e,162)}else if(iO(e,56))return t.uk(jz(e,56));return!1}function C$t(){var t,e,n,i,a,r,o,s,c;for(C$t=D,qOe=O5(IMe,m7t,25,255,15,1),WOe=O5(SMe,YZt,25,64,15,1),e=0;e<255;e++)qOe[e]=-1;for(n=90;n>=65;n--)qOe[n]=n-65<<24>>24;for(i=122;i>=97;i--)qOe[i]=i-97+26<<24>>24;for(a=57;a>=48;a--)qOe[a]=a-48+52<<24>>24;for(qOe[43]=62,qOe[47]=63,r=0;r<=25;r++)WOe[r]=65+r&ZZt;for(o=26,c=0;o<=51;++o,c++)WOe[o]=97+c&ZZt;for(t=52,s=0;t<=61;++t,s++)WOe[t]=48+s&ZZt;WOe[62]=43,WOe[63]=47}function S$t(t,e){var n,a,r,o,s,c,l,u,d,h,f;if(t.dc())return new HR;for(l=0,d=0,a=t.Kc();a.Ob();)r=jz(a.Pb(),37).f,l=i.Math.max(l,r.a),d+=r.a*r.b;for(l=i.Math.max(l,i.Math.sqrt(d)*Hw(_B(yEt(jz(t.Kc().Pb(),37),(zYt(),xpe))))),h=0,f=0,c=0,n=e,s=t.Kc();s.Ob();)h+(u=(o=jz(s.Pb(),37)).f).a>l&&(h=0,f+=c+e,c=0),JPt(o,h,f),n=i.Math.max(n,h+u.a),c=i.Math.max(c,u.b),h+=u.a+e;return new OT(n+e,f+c+e)}function T$t(t,e,n,i,a){var r,o,s,c,l,u,d;for(o=new Wf(e);o.a<o.c.c.length;){if(c=(r=jz(J1(o),17)).c,n.a._b(c))fJ(),l=Lwe;else{if(!i.a._b(c))throw $m(new Pw("Source port must be in one of the port sets."));fJ(),l=Owe}if(u=r.d,n.a._b(u))fJ(),d=Lwe;else{if(!i.a._b(u))throw $m(new Pw("Target port must be in one of the port sets."));fJ(),d=Owe}s=new tTt(r,l,d),YG(t.b,r,s),a.c[a.c.length]=s}}function A$t(t,e){var n,i,a,r,o,s,c;if(!WJ(t))throw $m(new Fw(j6t));if(r=(i=WJ(t)).g,a=i.f,r<=0&&a<=0)return wWt(),CAe;switch(s=t.i,c=t.j,e.g){case 2:case 1:if(s<0)return wWt(),SAe;if(s+t.g>r)return wWt(),sAe;break;case 4:case 3:if(c<0)return wWt(),cAe;if(c+t.f>a)return wWt(),EAe}return(o=(s+t.g/2)/r)+(n=(c+t.f/2)/a)<=1&&o-n<=0?(wWt(),SAe):o+n>=1&&o-n>=0?(wWt(),sAe):n<.5?(wWt(),cAe):(wWt(),EAe)}function D$t(t,e,n,i,a){var r,o;if(r=ift(t0(e[0],qKt),t0(i[0],qKt)),t[0]=fV(r),r=vq(r,32),n>=a){for(o=1;o<a;o++)r=ift(r,ift(t0(e[o],qKt),t0(i[o],qKt))),t[o]=fV(r),r=vq(r,32);for(;o<n;o++)r=ift(r,t0(e[o],qKt)),t[o]=fV(r),r=vq(r,32)}else{for(o=1;o<n;o++)r=ift(r,ift(t0(e[o],qKt),t0(i[o],qKt))),t[o]=fV(r),r=vq(r,32);for(;o<a;o++)r=ift(r,t0(i[o],qKt)),t[o]=fV(r),r=vq(r,32)}0!=Gut(r,0)&&(t[o]=fV(r))}function I$t(t){var e,n,i,a,r,o;if(fGt(),4!=t.e&&5!=t.e)throw $m(new Pw("Token#complementRanges(): must be RANGE: "+t.e));for(_Lt(r=t),HHt(r),i=r.b.length+2,0==r.b[0]&&(i-=2),(n=r.b[r.b.length-1])==ote&&(i-=2),(a=new _0(4)).b=O5(TMe,lKt,25,i,15,1),o=0,r.b[0]>0&&(a.b[o++]=0,a.b[o++]=r.b[0]-1),e=1;e<r.b.length-2;e+=2)a.b[o++]=r.b[e]+1,a.b[o++]=r.b[e+1]-1;return n!=ote&&(a.b[o++]=n+1,a.b[o]=ote),a.a=!0,a}function L$t(t,e,n){var i,a,r,o,s,c,l,u;if(0==(i=n.gc()))return!1;if(t.ej())if(l=t.fj(),$kt(t,e,n),o=1==i?t.Zi(3,null,n.Kc().Pb(),e,l):t.Zi(5,null,n,e,l),t.bj()){for(s=i<100?null:new FR(i),r=e+i,a=e;a<r;++a)u=t.g[a],s=t.cj(u,s),s=t.jj(u,s);s?(s.Ei(o),s.Fi()):t.$i(o)}else t.$i(o);else if($kt(t,e,n),t.bj()){for(s=i<100?null:new FR(i),r=e+i,a=e;a<r;++a)c=t.g[a],s=t.cj(c,s);s&&s.Fi()}return!0}function O$t(t,e,n,i){var a,r,o,s,c;for(o=new Wf(t.k);o.a<o.c.c.length;)a=jz(J1(o),129),(!i||a.c==(T7(),_we))&&(c=a.b).g<0&&a.d>0&&(Wh(c,c.d-a.d),a.c==(T7(),_we)&&Vh(c,c.a-a.d),c.d<=0&&c.i>0&&n6(e,c,e.c.b,e.c));for(r=new Wf(t.f);r.a<r.c.c.length;)a=jz(J1(r),129),(!i||a.c==(T7(),_we))&&(s=a.a).g<0&&a.d>0&&(Yh(s,s.i-a.d),a.c==(T7(),_we)&&qh(s,s.b-a.d),s.i<=0&&s.d>0&&n6(n,s,n.c.b,n.c))}function M$t(t,e,n){var i,a,r,o,s,c,l,u;for(Akt(n,"Processor compute fanout",1),DW(t.b),DW(t.a),s=null,r=cmt(e.b,0);!s&&r.b!=r.d.c;)zw(RB(yEt(l=jz(d4(r),86),(HUt(),fxe))))&&(s=l);for(n6(c=new Zk,s,c.c.b,c.c),xWt(t,c),u=cmt(e.b,0);u.b!=u.d.c;)o=kB(yEt(l=jz(d4(u),86),(HUt(),nxe))),a=null!=kJ(t.b,o)?jz(kJ(t.b,o),19).a:0,lct(l,exe,nht(a)),i=1+(null!=kJ(t.a,o)?jz(kJ(t.a,o),19).a:0),lct(l,Qwe,nht(i));zCt(n)}function N$t(t,e,n,i,a){var r,o,s,c,l,u,d,h,f;for(d=v_t(t,n),s=0;s<e;s++){for(yP(a,n),h=new Lm,EN(i.b<i.d.gc()),f=jz(i.d.Xb(i.c=i.b++),407),l=d+s;l<t.b;l++)o=f,EN(i.b<i.d.gc()),Wz(h,new RNt(o,f=jz(i.d.Xb(i.c=i.b++),407),n));for(u=d+s;u<t.b;u++)EN(i.b>0),i.a.Xb(i.c=--i.b),u>d+s&&lG(i);for(r=new Wf(h);r.a<r.c.c.length;)yP(i,jz(J1(r),407));if(s<e-1)for(c=d+s;c<t.b;c++)EN(i.b>0),i.a.Xb(i.c=--i.b)}}function B$t(){var t,e,n,i,a,r;if(fGt(),EMe)return EMe;for(cHt(t=new _0(4),JWt(bte,!0)),YVt(t,JWt("M",!0)),YVt(t,JWt("C",!0)),r=new _0(4),i=0;i<11;i++)KNt(r,i,i);return cHt(e=new _0(4),JWt("M",!0)),KNt(e,4448,4607),KNt(e,65438,65439),tUt(a=new nL(2),t),tUt(a,oMe),(n=new nL(2)).$l(gV(r,JWt("L",!0))),n.$l(e),n=new VW(a,n=new c3(3,n)),EMe=n}function P$t(t){var e,n;if(!Krt(e=kB(JIt(t,(cGt(),tCe))),t)&&!E5(t,mSe)&&(0!=(!t.a&&(t.a=new tW(UDe,t,10,11)),t.a).i||zw(RB(JIt(t,kCe))))){if(null!=e&&0!=BEt(e).length)throw pqt(t,n=oD(oD(new uM("Layout algorithm '"),e),"' not found for ")),$m(new nx(n.a));if(!Krt(f1t,t))throw pqt(t,n=oD(oD(new uM("Unable to load default layout algorithm "),f1t)," for unconfigured node ")),$m(new nx(n.a))}}function F$t(t){var e,n,a,r,o,s,c,l,u,d,h,f,g;if(n=t.i,e=t.n,0==t.b)for(g=n.c+e.b,f=n.b-e.b-e.c,l=0,d=(s=t.a).length;l<d;++l)VV(r=s[l],g,f);else a=Yyt(t,!1),VV(t.a[0],n.c+e.b,a[0]),VV(t.a[2],n.c+n.b-e.c-a[2],a[2]),h=n.b-e.b-e.c,a[0]>0&&(h-=a[0]+t.c,a[0]+=t.c),a[2]>0&&(h-=a[2]+t.c),a[1]=i.Math.max(a[1],h),VV(t.a[1],n.c+e.b+a[0]-(a[1]-h)/2,a[1]);for(c=0,u=(o=t.a).length;c<u;++c)iO(r=o[c],326)&&jz(r,326).Te()}function j$t(t){var e,n,i,a,r,o,s,c,l,u,d;for((d=new oo).d=0,o=new Wf(t.b);o.a<o.c.c.length;)r=jz(J1(o),29),d.d+=r.a.c.length;for(i=0,a=0,d.a=O5(TMe,lKt,25,t.b.c.length,15,1),l=0,u=0,d.e=O5(TMe,lKt,25,d.d,15,1),n=new Wf(t.b);n.a<n.c.c.length;)for((e=jz(J1(n),29)).p=i++,d.a[e.p]=a++,u=0,c=new Wf(e.a);c.a<c.c.c.length;)(s=jz(J1(c),10)).p=l++,d.e[s.p]=u++;return d.c=new lb(d),d.b=sN(d.d),zjt(d,t),d.f=sN(d.d),Hjt(d,t),d}function $$t(t,e){var n,a,r;for(r=jz(OU(t.n,t.n.c.length-1),211).d,t.p=i.Math.min(t.p,e.g),t.r=i.Math.max(t.r,r),t.g=i.Math.max(t.g,e.g+(1==t.b.c.length?0:t.i)),t.o=i.Math.min(t.o,e.f),t.e+=e.f+(1==t.b.c.length?0:t.i),t.f=i.Math.max(t.f,e.f),a=t.n.c.length>0?(t.n.c.length-1)*t.i:0,n=new Wf(t.n);n.a<n.c.c.length;)a+=jz(J1(n),211).a;t.d=a,t.a=t.e/t.b.c.length-t.i*((t.b.c.length-1)/t.b.c.length),vwt(t.j)}function z$t(t,e){var n,i,a,r,o,s,c,l,u;if(null==(l=RB(yEt(e,(uPt(),eoe))))||(vG(l),l)){for(u=O5(AMe,JXt,25,e.e.c.length,16,1),o=wDt(e),a=new Zk,c=new Wf(e.e);c.a<c.c.c.length;)(n=KLt(t,jz(J1(c),144),null,null,u,o))&&(Hot(n,e),n6(a,n,a.c.b,a.c));if(a.b>1)for(i=cmt(a,0);i.b!=i.d.c;)for(r=0,s=new Wf((n=jz(d4(i),231)).e);s.a<s.c.c.length;)jz(J1(s),144).b=r++;return a}return r7(Cst(Hx(Mre,1),tQt,231,0,[e]))}function H$t(t){var e,n,i,a,r;if(!t.g){if(r=new kc,null==(e=kLe).a.zc(t,e)){for(n=new AO(vX(t));n.e!=n.i.gc();)pY(r,H$t(jz(wmt(n),26)));e.a.Bc(t),e.a.gc()}for(i=r.i,!t.s&&(t.s=new tW(PIe,t,21,17)),a=new AO(t.s);a.e!=a.i.gc();++i)rf(jz(wmt(a),449),i);pY(r,(!t.s&&(t.s=new tW(PIe,t,21,17)),t.s)),aut(r),t.g=new gct(t,r),t.i=jz(r.g,247),null==t.i&&(t.i=CLe),t.p=null,E6(t).b&=-5}return t.g}function U$t(t){var e,n,a,r,o,s,c,l,u,d,h,f,g;if(a=t.i,n=t.n,0==t.b)e=Wyt(t,!1),qV(t.a[0],a.d+n.d,e[0]),qV(t.a[2],a.d+a.a-n.a-e[2],e[2]),h=a.a-n.d-n.a,e[0]>0&&(e[0]+=t.c,h-=e[0]),e[2]>0&&(h-=e[2]+t.c),e[1]=i.Math.max(e[1],h),qV(t.a[1],a.d+n.d+e[0]-(e[1]-h)/2,e[1]);else for(g=a.d+n.d,f=a.a-n.d-n.a,l=0,d=(s=t.a).length;l<d;++l)qV(r=s[l],g,f);for(c=0,u=(o=t.a).length;c<u;++c)iO(r=o[c],326)&&jz(r,326).Ue()}function V$t(t){var e,n,i,a,r,o,s,c,l;for(l=O5(TMe,lKt,25,t.b.c.length+1,15,1),c=new Ny,i=0,r=new Wf(t.b);r.a<r.c.c.length;){for(a=jz(J1(r),29),l[i++]=c.a.gc(),s=new Wf(a.a);s.a<s.c.c.length;)for(n=new oq(XO(dft(jz(J1(s),10)).a.Kc(),new u));gIt(n);)e=jz(V6(n),17),c.a.zc(e,c);for(o=new Wf(a.a);o.a<o.c.c.length;)for(n=new oq(XO(uft(jz(J1(o),10)).a.Kc(),new u));gIt(n);)e=jz(V6(n),17),c.a.Bc(e)}return l}function q$t(t,e,n,i){var a,r,o,s,c;if(c=rNt(t.e.Tg(),e),a=jz(t.g,119),XE(),jz(e,66).Oj()){for(o=0;o<t.i;++o)if(r=a[o],c.rl(r.ak())&&Odt(r,n))return!0}else if(null!=n){for(s=0;s<t.i;++s)if(r=a[s],c.rl(r.ak())&&Odt(n,r.dd()))return!0;if(i)for(o=0;o<t.i;++o)if(r=a[o],c.rl(r.ak())&&HA(n)===HA(cB(t,jz(r.dd(),56))))return!0}else for(o=0;o<t.i;++o)if(r=a[o],c.rl(r.ak())&&null==r.dd())return!1;return!1}function W$t(t,e,n,i){var a,r,o,s,c,l;if(l=rNt(t.e.Tg(),e),o=jz(t.g,119),INt(t.e,e)){if(e.hi()&&(r=bzt(t,e,i,iO(e,99)&&0!=(jz(e,18).Bb&$Kt)))>=0&&r!=n)throw $m(new Pw(r5t));for(a=0,c=0;c<t.i;++c)if(s=o[c],l.rl(s.ak())){if(a==n)return jz(syt(t,c,(XE(),jz(e,66).Oj()?jz(i,72):X4(e,i))),72);++a}throw $m(new Aw(e8t+n+s5t+a))}for(c=0;c<t.i;++c)if(s=o[c],l.rl(s.ak()))return XE(),jz(e,66).Oj()?s:s.dd();return null}function Y$t(t,e,n,a){var r,o,s,c;for(c=n,s=new Wf(e.a);s.a<s.c.c.length;){if(o=jz(J1(s),221),r=jz(o.b,65),Tft(t.b.c,r.b.c+r.b.b)<=0&&Tft(r.b.c,t.b.c+t.b.b)<=0&&Tft(t.b.d,r.b.d+r.b.a)<=0&&Tft(r.b.d,t.b.d+t.b.a)<=0){if(0==Tft(r.b.c,t.b.c+t.b.b)&&a.a<0||0==Tft(r.b.c+r.b.b,t.b.c)&&a.a>0||0==Tft(r.b.d,t.b.d+t.b.a)&&a.b<0||0==Tft(r.b.d+r.b.a,t.b.d)&&a.b>0){c=0;break}}else c=i.Math.min(c,zTt(t,r,a));c=i.Math.min(c,Y$t(t,o,c,a))}return c}function G$t(t,e){var n,i,a,r,o,s;if(t.b<2)throw $m(new Pw("The vector chain must contain at least a source and a target point."));for(EN(0!=t.b),CI(e,(i=jz(t.a.a.c,8)).a,i.b),s=new iN((!e.a&&(e.a=new DO(LDe,e,5)),e.a)),r=cmt(t,1);r.a<t.b-1;)o=jz(d4(r),8),s.e!=s.i.gc()?n=jz(wmt(s),469):(QR(),spt(s,n=new rc)),RI(n,o.a,o.b);for(;s.e!=s.i.gc();)wmt(s),ZRt(s);EN(0!=t.b),EI(e,(a=jz(t.c.b.c,8)).a,a.b)}function Z$t(t,e){var n,i,a,r,o,s,c,l;for(n=0,i=new Wf((u1(0,t.c.length),jz(t.c[0],101)).g.b.j);i.a<i.c.c.length;)jz(J1(i),11).p=n++;for(e==(wWt(),cAe)?mL(t,new tr):mL(t,new er),o=0,l=t.c.length-1;o<l;)u1(o,t.c.length),r=jz(t.c[o],101),u1(l,t.c.length),c=jz(t.c[l],101),a=e==cAe?r.c:r.a,s=e==cAe?c.a:c.c,dW(r,e,(Ast(),vle),a),dW(c,e,yle,s),++o,--l;o==l&&dW((u1(o,t.c.length),jz(t.c[o],101)),e,(Ast(),mle),null)}function K$t(t,e,n){var i,a,r,o,s,c,l,u,d,h;return u=t.a.i+t.a.g/2,d=t.a.i+t.a.g/2,o=new OT(e.i+e.g/2,e.j+e.f/2),(c=jz(JIt(e,(cGt(),gSe)),8)).a=c.a+u,c.b=c.b+d,a=(o.b-c.b)/(o.a-c.a),i=o.b-a*o.a,s=new OT(n.i+n.g/2,n.j+n.f/2),(l=jz(JIt(n,gSe),8)).a=l.a+u,l.b=l.b+d,r=(s.b-l.b)/(s.a-l.a),h=(i-(s.b-r*s.a))/(r-a),!(c.a<h&&o.a<h||h<c.a&&h<o.a||l.a<h&&s.a<h||h<l.a&&h<s.a)}function X$t(t,e){var n,i,a,r,o,s;if(!(o=jz(NY(t.c,e),183)))throw $m(new tx("Edge did not exist in input."));return i=Zpt(o),!W_((!e.a&&(e.a=new tW(PDe,e,6,6)),e.a))&&(n=new _z(t,i,s=new Eh),hD((!e.a&&(e.a=new tW(PDe,e,6,6)),e.a),n),net(o,M7t,s)),E5(e,(cGt(),TCe))&&!(!(a=jz(JIt(e,TCe),74))||pG(a))&&(t6(a,new Gb(r=new Eh)),net(o,"junctionPoints",r)),AH(o,"container",qJ(e).k),null}function J$t(t,e,n){var i,a,r,o,s,c;this.a=t,this.b=e,this.c=n,this.e=r7(Cst(Hx(rie,1),zGt,168,0,[new OC(t,e),new OC(e,n),new OC(n,t)])),this.f=r7(Cst(Hx(EEe,1),cZt,8,0,[t,e,n])),this.d=(i=qP(jL(this.b),this.a),a=qP(jL(this.c),this.a),r=qP(jL(this.c),this.b),o=i.a*(this.a.a+this.b.a)+i.b*(this.a.b+this.b.b),s=a.a*(this.a.a+this.c.a)+a.b*(this.a.b+this.c.b),c=2*(i.a*r.b-i.b*r.a),new OT((a.b*o-i.b*s)/c,(i.a*s-a.a*o)/c))}function Q$t(t,e,n,i){var a,r,o,s,c,l,u,d,h;if(d=new HY(t.p),net(e,t5t,d),n&&!(t.f?nX(t.f):null).a.dc())for(net(e,"logs",l=new Eh),s=0,h=new zf((t.f?nX(t.f):null).b.Kc());h.b.Ob();)u=new HY(kB(h.b.Pb())),ftt(l,s),n3(l,s,u),++s;if(i&&net(e,"executionTime",new _h(t.q)),!nX(t.a).a.dc())for(o=new Eh,net(e,D7t,o),s=0,r=new zf(nX(t.a).b.Kc());r.b.Ob();)a=jz(r.b.Pb(),1949),c=new pw,ftt(o,s),n3(o,s,c),Q$t(a,c,n,i),++s}function tzt(t,e){var n,i,a,r,o,s;for(r=t.c,o=t.d,kQ(t,null),_Q(t,null),e&&zw(RB(yEt(o,(lGt(),Qde))))?kQ(t,Bjt(o.i,(rit(),Hye),(wWt(),sAe))):kQ(t,o),e&&zw(RB(yEt(r,(lGt(),vhe))))?_Q(t,Bjt(r.i,(rit(),zye),(wWt(),SAe))):_Q(t,r),i=new Wf(t.b);i.a<i.c.c.length;)n=jz(J1(i),70),(a=jz(yEt(n,(zYt(),Zpe)),272))==(Bet(),WSe)?lct(n,Zpe,qSe):a==qSe&&lct(n,Zpe,WSe);s=zw(RB(yEt(t,(lGt(),Che)))),lct(t,Che,(cM(),!s)),t.a=Xct(t.a)}function ezt(t,e,n){var a,r,o,s,c;for(a=0,o=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));o.e!=o.i.gc();)s="",0==(!(r=jz(wmt(o),33)).n&&(r.n=new tW(HDe,r,1,7)),r.n).i||(s=jz(Yet((!r.n&&(r.n=new tW(HDe,r,1,7)),r.n),0),137).a),Hot(c=new zY(s),r),lct(c,(kat(),soe),r),c.b=a++,c.d.a=r.i+r.g/2,c.d.b=r.j+r.f/2,c.e.a=i.Math.max(r.g,1),c.e.b=i.Math.max(r.f,1),Wz(e.e,c),xTt(n.f,r,c),jz(JIt(r,(uPt(),Zre)),98),Z_t()}function nzt(t,e){var n,a,r,o,s,c,l,u,d,h,f;n=AM(new zy,t.f),c=t.i[e.c.i.p],h=t.i[e.d.i.p],s=e.c,d=e.d,o=s.a.b,u=d.a.b,c.b||(o+=s.n.b),h.b||(u+=d.n.b),l=CJ(i.Math.max(0,o-u)),r=CJ(i.Math.max(0,u-o)),f=i.Math.max(1,jz(yEt(e,(zYt(),dme)),19).a)*q4(e.c.i.k,e.d.i.k),a=new JS(qMt(aE(iE(nE(rE(new $y,f),r),n),jz(NY(t.k,e.c),121))),qMt(aE(iE(nE(rE(new $y,f),l),n),jz(NY(t.k,e.d),121)))),t.c[e.p]=a}function izt(t,e,n,i){var a,r,o,s,c,l;for(o=new oVt(t,e,n),c=new _2(i,0),a=!1;c.b<c.d.gc();)EN(c.b<c.d.gc()),(s=jz(c.d.Xb(c.c=c.b++),233))==e||s==n?lG(c):!a&&Hw(uO(s.g,s.d[0]).a)>Hw(uO(o.g,o.d[0]).a)?(EN(c.b>0),c.a.Xb(c.c=--c.b),yP(c,o),a=!0):s.e&&s.e.gc()>0&&(r=(!s.e&&(s.e=new Lm),s.e).Mc(e),l=(!s.e&&(s.e=new Lm),s.e).Mc(n),(r||l)&&((!s.e&&(s.e=new Lm),s.e).Fc(o),++o.c));a||(i.c[i.c.length]=o)}function azt(t){var e,n,i;if(bI(jz(yEt(t,(zYt(),tme)),98)))for(n=new Wf(t.j);n.a<n.c.c.length;)(e=jz(J1(n),11)).j==(wWt(),CAe)&&((i=jz(yEt(e,(lGt(),xhe)),10))?HTt(e,jz(yEt(i,Gde),61)):e.e.c.length-e.g.c.length<0?HTt(e,sAe):HTt(e,SAe));else{for(n=new Wf(t.j);n.a<n.c.c.length;)e=jz(J1(n),11),(i=jz(yEt(e,(lGt(),xhe)),10))?HTt(e,jz(yEt(i,Gde),61)):e.e.c.length-e.g.c.length<0?HTt(e,(wWt(),sAe)):HTt(e,(wWt(),SAe));lct(t,tme,(Z_t(),GTe))}}function rzt(t){var e,n;switch(t){case 91:case 93:case 45:case 94:case 44:case 92:n="\\"+String.fromCharCode(t&ZZt);break;case 12:n="\\f";break;case 10:n="\\n";break;case 13:n="\\r";break;case 9:n="\\t";break;case 27:n="\\e";break;default:n=t<32?"\\x"+lN(e="0"+(t>>>0).toString(16),e.length-2,e.length):t>=$Kt?"\\v"+lN(e="0"+(t>>>0).toString(16),e.length-6,e.length):""+String.fromCharCode(t&ZZt)}return n}function ozt(t,e){var n,i,a,r,o,s,c,l,u,d;if(o=t.e,0==(c=e.e))return t;if(0==o)return 0==e.e?e:new uW(-e.e,e.d,e.a);if((r=t.d)+(s=e.d)==2)return n=t0(t.a[0],qKt),i=t0(e.a[0],qKt),o<0&&(n=w9(n)),c<0&&(i=w9(i)),Qbt(nft(n,i));if(-1==(a=r!=s?r>s?1:-1:klt(t.a,e.a,r)))d=-c,u=o==c?f7(e.a,s,t.a,r):L5(e.a,s,t.a,r);else if(d=o,o==c){if(0==a)return ABt(),nne;u=f7(t.a,r,e.a,s)}else u=L5(t.a,r,e.a,s);return q0(l=new uW(d,u.length,u)),l}function szt(t){var e,n,i,a,r,o;for(this.e=new Lm,this.a=new Lm,n=t.b-1;n<3;n++)BN(t,0,jz(Nmt(t,0),8));if(t.b<4)throw $m(new Pw("At (least dimension + 1) control points are necessary!"));for(this.b=3,this.d=!0,this.c=!1,TLt(this,t.b+this.b-1),o=new Lm,r=new Wf(this.e),e=0;e<this.b-1;e++)Wz(o,_B(J1(r)));for(a=cmt(t,0);a.b!=a.d.c;)i=jz(d4(a),8),Wz(o,_B(J1(r))),Wz(this.a,new hJ(i,o)),u1(0,o.c.length),o.c.splice(0,1)}function czt(t,e){var n,i,a,r,o,s,c;for(a=new Wf(t.b);a.a<a.c.c.length;)for(o=new Wf(jz(J1(a),29).a);o.a<o.c.c.length;)for((r=jz(J1(o),10)).k==(oCt(),Ese)&&(s=jz(V6(new oq(XO(uft(r).a.Kc(),new u))),17),c=jz(V6(new oq(XO(dft(r).a.Kc(),new u))),17),l$t(r,zw(RB(yEt(s,(lGt(),Che))))&&zw(RB(yEt(c,Che)))?Wst(e):e)),i=new oq(XO(dft(r).a.Kc(),new u));gIt(i);)mst(n=jz(V6(i),17),zw(RB(yEt(n,(lGt(),Che))))?Wst(e):e)}function lzt(t,e,n,i,a){var r,o;if(n.f>=e.o&&n.f<=e.f||.5*e.a<=n.f&&1.5*e.a>=n.f){if((r=jz(OU(e.n,e.n.c.length-1),211)).e+r.d+n.g+a<=i&&(jz(OU(e.n,e.n.c.length-1),211).f-t.f+n.f<=t.b||1==t.a.c.length))return vft(e,n),!0;if(e.s+n.g<=i&&(e.t+e.d+n.f+a<=t.b||1==t.a.c.length))return Wz(e.b,n),o=jz(OU(e.n,e.n.c.length-1),211),Wz(e.n,new NJ(e.s,o.f+o.a+e.i,e.i)),cvt(jz(OU(e.n,e.n.c.length-1),211),n),$$t(e,n),!0}return!1}function uzt(t,e,n){var i,a,r,o;return t.ej()?(a=null,r=t.fj(),i=t.Zi(1,o=ott(t,e,n),n,e,r),t.bj()&&!(t.ni()&&null!=o?Odt(o,n):HA(o)===HA(n))?(null!=o&&(a=t.dj(o,a)),a=t.cj(n,a),t.ij()&&(a=t.lj(o,n,a)),a?(a.Ei(i),a.Fi()):t.$i(i)):(t.ij()&&(a=t.lj(o,n,a)),a?(a.Ei(i),a.Fi()):t.$i(i)),o):(o=ott(t,e,n),t.bj()&&!(t.ni()&&null!=o?Odt(o,n):HA(o)===HA(n))&&(a=null,null!=o&&(a=t.dj(o,null)),(a=t.cj(n,a))&&a.Fi()),o)}function dzt(t,e){var n,a,r,o,s,c,l;e%=24,t.q.getHours()!=e&&((n=new i.Date(t.q.getTime())).setDate(n.getDate()+1),(s=t.q.getTimezoneOffset()-n.getTimezoneOffset())>0&&(c=s/60|0,l=s%60,a=t.q.getDate(),t.q.getHours()+c>=24&&++a,r=new i.Date(t.q.getFullYear(),t.q.getMonth(),a,e+c,t.q.getMinutes()+l,t.q.getSeconds(),t.q.getMilliseconds()),t.q.setTime(r.getTime()))),o=t.q.getTime(),t.q.setTime(o+36e5),t.q.getHours()!=e&&t.q.setTime(o)}function hzt(t,e){var n,i,a,r;if(Akt(e,"Path-Like Graph Wrapping",1),0!=t.b.c.length)if(null==(a=new kIt(t)).i&&(a.i=Yat(a,new xr)),n=Hw(a.i)*a.f/(null==a.i&&(a.i=Yat(a,new xr)),Hw(a.i)),a.b>n)zCt(e);else{switch(jz(yEt(t,(zYt(),jme)),337).g){case 2:r=new kr;break;case 0:r=new gr;break;default:r=new Er}if(i=r.Vf(t,a),!r.Wf())switch(jz(yEt(t,qme),338).g){case 2:i=WTt(a,i);break;case 1:i=Pkt(a,i)}nUt(t,a,i),zCt(e)}else zCt(e)}function fzt(t,e){var n,i,a,r;if(l1(t.d,t.e),t.c.a.$b(),0!=Hw(_B(yEt(e.j,(zYt(),Spe))))||0!=Hw(_B(yEt(e.j,Spe))))for(n=JJt,HA(yEt(e.j,Ipe))!==HA((yct(),Oye))&&lct(e.j,(lGt(),Kde),(cM(),!0)),r=jz(yEt(e.j,Ome),19).a,a=0;a<r&&!((i=p$t(t,e))<n&&(n=i,Lat(t),0==n));a++);else for(n=NGt,HA(yEt(e.j,Ipe))!==HA((yct(),Oye))&&lct(e.j,(lGt(),Kde),(cM(),!0)),r=jz(yEt(e.j,Ome),19).a,a=0;a<r&&!((i=b$t(t,e))<n&&(n=i,Lat(t),0==n));a++);}function gzt(t,e){var n,i,a,r,o,s;for(a=new Lm,r=0,n=0,o=0;r<e.c.length-1&&n<t.gc();){for(i=jz(t.Xb(n),19).a+o;(u1(r+1,e.c.length),jz(e.c[r+1],19)).a<i;)++r;for(s=0,i-(u1(r,e.c.length),jz(e.c[r],19)).a>(u1(r+1,e.c.length),jz(e.c[r+1],19)).a-i&&++s,Wz(a,(u1(r+s,e.c.length),jz(e.c[r+s],19))),o+=(u1(r+s,e.c.length),jz(e.c[r+s],19)).a-i,++n;n<t.gc()&&jz(t.Xb(n),19).a+o<=(u1(r+s,e.c.length),jz(e.c[r+s],19)).a;)++n;r+=1+s}return a}function pzt(t){var e,n,i,a,r;if(!t.d){if(r=new Sc,null==(e=kLe).a.zc(t,e)){for(n=new AO(vX(t));n.e!=n.i.gc();)pY(r,pzt(jz(wmt(n),26)));e.a.Bc(t),e.a.gc()}for(a=r.i,!t.q&&(t.q=new tW(YIe,t,11,10)),i=new AO(t.q);i.e!=i.i.gc();++a)jz(wmt(i),399);pY(r,(!t.q&&(t.q=new tW(YIe,t,11,10)),t.q)),aut(r),t.d=new LD((jz(Yet(GK((GY(),JIe).o),9),18),r.i),r.g),t.e=jz(r.g,673),null==t.e&&(t.e=ELe),E6(t).b&=-17}return t.d}function bzt(t,e,n,i){var a,r,o,s,c,l;if(l=rNt(t.e.Tg(),e),c=0,a=jz(t.g,119),XE(),jz(e,66).Oj()){for(o=0;o<t.i;++o)if(r=a[o],l.rl(r.ak())){if(Odt(r,n))return c;++c}}else if(null!=n){for(s=0;s<t.i;++s)if(r=a[s],l.rl(r.ak())){if(Odt(n,r.dd()))return c;++c}if(i)for(c=0,o=0;o<t.i;++o)if(r=a[o],l.rl(r.ak())){if(HA(n)===HA(cB(t,jz(r.dd(),56))))return c;++c}}else for(o=0;o<t.i;++o)if(r=a[o],l.rl(r.ak())){if(null==r.dd())return c;++c}return-1}function mzt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f;for(kK(),mL(t,new Ws),o=Uz(t),f=new Lm,h=new Lm,s=null,c=0;0!=o.b;)r=jz(0==o.b?null:(EN(0!=o.b),Det(o,o.a.a)),157),!s||eV(s)*tV(s)/2<eV(r)*tV(r)?(s=r,f.c[f.c.length]=r):(c+=eV(r)*tV(r),h.c[h.c.length]=r,h.c.length>1&&(c>eV(s)*tV(s)/2||0==o.b)&&(d=new Uet(h),u=eV(s)/tV(s),l=vYt(d,e,new dv,n,i,a,u),VP(vD(d.e),l),s=d,f.c[f.c.length]=d,c=0,h.c=O5(Dte,zGt,1,0,5,1)));return pst(f,h),f}function yzt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p;if(n.mh(e)&&(u=(f=e)?jz(i,49).xh(f):null))if(p=n.bh(e,t.a),(g=e.t)>1||-1==g)if(d=jz(p,69),h=jz(u,69),d.dc())h.$b();else for(o=!!Syt(e),r=0,s=t.a?d.Kc():d.Zh();s.Ob();)l=jz(s.Pb(),56),(a=jz(utt(t,l),56))?(o?-1==(c=h.Xc(a))?h.Xh(r,a):r!=c&&h.ji(r,a):h.Xh(r,a),++r):t.b&&!o&&(h.Xh(r,l),++r);else null==p?u.Wb(null):null==(a=utt(t,p))?t.b&&!Syt(e)&&u.Wb(p):u.Wb(a)}function vzt(t,e){var n,a,r,o,s,c,l,d;for(n=new On,r=new oq(XO(uft(e).a.Kc(),new u));gIt(r);)if(!d6(a=jz(V6(r),17))&&ekt(c=a.c.i,qse)){if(-1==(d=GBt(t,c,qse,Vse)))continue;n.b=i.Math.max(n.b,d),!n.a&&(n.a=new Lm),Wz(n.a,c)}for(s=new oq(XO(dft(e).a.Kc(),new u));gIt(s);)if(!d6(o=jz(V6(s),17))&&ekt(l=o.d.i,Vse)){if(-1==(d=GBt(t,l,Vse,qse)))continue;n.d=i.Math.max(n.d,d),!n.c&&(n.c=new Lm),Wz(n.c,l)}return n}function wzt(t){var e,n,i,a;if(IDt(),e=CJ(t),t<one.length)return one[e];if(t<=50)return oDt((ABt(),tne),e);if(t<=GZt)return H6(oDt(rne[1],e),e);if(t>1e6)throw $m(new Tw("power of ten too big"));if(t<=NGt)return H6(oDt(rne[1],e),e);for(a=i=oDt(rne[1],NGt),n=uot(t-NGt),e=CJ(t%NGt);Gut(n,NGt)>0;)a=Ltt(a,i),n=nft(n,NGt);for(a=H6(a=Ltt(a,oDt(rne[1],e)),NGt),n=uot(t-NGt);Gut(n,NGt)>0;)a=H6(a,NGt),n=nft(n,NGt);return a=H6(a,e)}function xzt(t,e){var n,i,a,r,o,s,c,l;for(Akt(e,"Hierarchical port dummy size processing",1),s=new Lm,l=new Lm,n=2*Hw(_B(yEt(t,(zYt(),vme)))),a=new Wf(t.b);a.a<a.c.c.length;){for(i=jz(J1(a),29),s.c=O5(Dte,zGt,1,0,5,1),l.c=O5(Dte,zGt,1,0,5,1),o=new Wf(i.a);o.a<o.c.c.length;)(r=jz(J1(o),10)).k==(oCt(),kse)&&((c=jz(yEt(r,(lGt(),Gde)),61))==(wWt(),cAe)?s.c[s.c.length]=r:c==EAe&&(l.c[l.c.length]=r));zDt(s,!0,n),zDt(l,!1,n)}zCt(e)}function Rzt(t,e){var n,i,a,r,o;Akt(e,"Layer constraint postprocessing",1),0!=(o=t.b).c.length&&(u1(0,o.c.length),FFt(t,jz(o.c[0],29),jz(OU(o,o.c.length-1),29),n=new $Y(t),a=new $Y(t)),0==n.a.c.length||(IQ(0,o.c.length),_C(o.c,0,n)),0==a.a.c.length||(o.c[o.c.length]=a)),IN(t,(lGt(),Jde))&&(vBt(t,i=new $Y(t),r=new $Y(t)),0==i.a.c.length||(IQ(0,o.c.length),_C(o.c,0,i)),0==r.a.c.length||(o.c[o.c.length]=r)),zCt(e)}function _zt(t){var e,n,i,a,r,o,s,c;for(o=new Wf(t.a);o.a<o.c.c.length;)if((r=jz(J1(o),10)).k==(oCt(),kse)&&((a=jz(yEt(r,(lGt(),Gde)),61))==(wWt(),sAe)||a==SAe))for(i=new oq(XO(lft(r).a.Kc(),new u));gIt(i);)0!=(e=(n=jz(V6(i),17)).a).b&&((s=n.c).i==r&&(EN(0!=e.b),jz(e.a.a.c,8).b=Dct(Cst(Hx(EEe,1),cZt,8,0,[s.i.n,s.n,s.a])).b),(c=n.d).i==r&&(EN(0!=e.b),jz(e.c.b.c,8).b=Dct(Cst(Hx(EEe,1),cZt,8,0,[c.i.n,c.n,c.a])).b))}function kzt(t,e){var n,i,a,r,o,s,c;for(Akt(e,"Sort By Input Model "+yEt(t,(zYt(),Ipe)),1),a=0,i=new Wf(t.b);i.a<i.c.c.length;){for(n=jz(J1(i),29),c=0==a?0:a-1,s=jz(OU(t.b,c),29),o=new Wf(n.a);o.a<o.c.c.length;)HA(yEt(r=jz(J1(o),10),tme))!==HA((Z_t(),qTe))&&HA(yEt(r,tme))!==HA(WTe)&&(kK(),mL(r.j,new T9(s,sxt(r))),TH(e,"Node "+r+" ports: "+r.j));kK(),mL(n.a,new Uat(s,jz(yEt(t,Ipe),339),jz(yEt(t,Ape),378))),TH(e,"Layer "+a+": "+n),++a}zCt(e)}function Ezt(t,e){var n,i,a;if(a=w$t(e),Kk(new NU(null,(!e.c&&(e.c=new tW(VDe,e,9,9)),new h1(e.c,16))),new Vg(a)),oqt(e,i=jz(yEt(a,(lGt(),Xde)),21)),i.Hc((hBt(),dde)))for(n=new AO((!e.c&&(e.c=new tW(VDe,e,9,9)),e.c));n.e!=n.i.gc();)Zqt(t,e,a,jz(wmt(n),118));return 0!=jz(JIt(e,(zYt(),Fbe)),174).gc()&&yBt(e,a),zw(RB(yEt(a,qbe)))&&i.Fc(bde),IN(a,gme)&&_w(new ogt(Hw(_B(yEt(a,gme)))),a),HA(JIt(e,sbe))===HA((odt(),bTe))?aGt(t,e,a):eYt(t,e,a),a}function Czt(t,e,n,a){var r,o,s;if(this.j=new Lm,this.k=new Lm,this.b=new Lm,this.c=new Lm,this.e=new dI,this.i=new vv,this.f=new Mm,this.d=new Lm,this.g=new Lm,Wz(this.b,t),Wz(this.b,e),this.e.c=i.Math.min(t.a,e.a),this.e.d=i.Math.min(t.b,e.b),this.e.b=i.Math.abs(t.a-e.a),this.e.a=i.Math.abs(t.b-e.b),r=jz(yEt(a,(zYt(),bbe)),74))for(s=cmt(r,0);s.b!=s.d.c;)rnt((o=jz(d4(s),8)).a,t.a)&&MH(this.i,o);n&&Wz(this.j,n),Wz(this.k,a)}function Szt(t,e,n){var i,a,r,o,s,c,l,u,d,h;for(u=new qq(new Og(n)),bW(s=O5(AMe,JXt,25,t.f.e.c.length,16,1),s.length),n[e.b]=0,l=new Wf(t.f.e);l.a<l.c.c.length;)(c=jz(J1(l),144)).b!=e.b&&(n[c.b]=NGt),F5(eEt(u,c));for(;0!=u.b.c.length;)for(s[(d=jz(mtt(u),144)).b]=!0,r=bM(new mk(t.b,d),0);r.c;)!s[(h=Ivt(a=jz(xQ(r),282),d)).b]&&(o=IN(a,(ixt(),poe))?Hw(_B(yEt(a,poe))):t.c,(i=n[d.b]+o)<n[h.b]&&(n[h.b]=i,cat(u,h),F5(eEt(u,h))))}function Tzt(t,e,n){var i,a,r,o,s,c,l,u,d;for(a=!0,o=new Wf(t.b);o.a<o.c.c.length;){for(r=jz(J1(o),29),l=PKt,u=null,c=new Wf(r.a);c.a<c.c.c.length;){if(s=jz(J1(c),10),d=Hw(e.p[s.p])+Hw(e.d[s.p])-s.d.d,i=Hw(e.p[s.p])+Hw(e.d[s.p])+s.o.b+s.d.a,!(d>l&&i>l)){a=!1,n.n&&TH(n,"bk node placement breaks on "+s+" which should have been after "+u);break}u=s,l=Hw(e.p[s.p])+Hw(e.d[s.p])+s.o.b+s.d.a}if(!a)break}return n.n&&TH(n,e+" is feasible: "+a),a}function Azt(t,e,n,i){var a,r,o,s,c,l,u;for(s=-1,u=new Wf(t);u.a<u.c.c.length;)(l=jz(J1(u),112)).g=s--,o=a=fV(x2(LZ(AZ(new NU(null,new h1(l.f,16)),new lo),new uo)).d),c=r=fV(x2(LZ(AZ(new NU(null,new h1(l.k,16)),new ho),new fo)).d),i||(o=fV(x2(LZ(new NU(null,new h1(l.f,16)),new go)).d),c=fV(x2(LZ(new NU(null,new h1(l.k,16)),new po)).d)),l.d=o,l.a=a,l.i=c,l.b=r,0==c?n6(n,l,n.c.b,n.c):0==o&&n6(e,l,e.c.b,e.c)}function Dzt(t,e,n,i){var a,r,o,s,c,l,u;if(n.d.i!=e.i){for(Fh(a=new Iyt(t),(oCt(),Cse)),lct(a,(lGt(),fhe),n),lct(a,(zYt(),tme),(Z_t(),WTe)),i.c[i.c.length]=a,CQ(o=new SCt,a),HTt(o,(wWt(),SAe)),CQ(s=new SCt,a),HTt(s,sAe),u=n.d,_Q(n,o),Hot(r=new hX,n),lct(r,bbe,null),kQ(r,s),_Q(r,u),l=new _2(n.b,0);l.b<l.d.gc();)EN(l.b<l.d.gc()),HA(yEt(c=jz(l.d.Xb(l.c=l.b++),70),Zpe))===HA((Bet(),qSe))&&(lct(c,Vde,n),lG(l),Wz(r.b,c));vIt(a,o,s)}}function Izt(t,e,n,i){var a,r,o,s,c,l;if(n.c.i!=e.i)for(Fh(a=new Iyt(t),(oCt(),Cse)),lct(a,(lGt(),fhe),n),lct(a,(zYt(),tme),(Z_t(),WTe)),i.c[i.c.length]=a,CQ(o=new SCt,a),HTt(o,(wWt(),SAe)),CQ(s=new SCt,a),HTt(s,sAe),_Q(n,o),Hot(r=new hX,n),lct(r,bbe,null),kQ(r,s),_Q(r,e),vIt(a,o,s),l=new _2(n.b,0);l.b<l.d.gc();)EN(l.b<l.d.gc()),c=jz(l.d.Xb(l.c=l.b++),70),jz(yEt(c,Zpe),272)==(Bet(),qSe)&&(IN(c,Vde)||lct(c,Vde,n),lG(l),Wz(r.b,c))}function Lzt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(h=new Lm,m=k3(a),b=e*t.a,g=0,o=new Ny,s=new Ny,c=new Lm,y=0,v=0,f=0,p=0,u=0,d=0;0!=m.a.gc();)(l=tft(m,r,s))&&(m.a.Bc(l),c.c[c.c.length]=l,o.a.zc(l,o),g=t.f[l.p],y+=t.e[l.p]-g*t.b,v+=t.c[l.p]*t.b,d+=g*t.b,p+=t.e[l.p]),(!l||0==m.a.gc()||y>=b&&t.e[l.p]>g*t.b||v>=n*b)&&(h.c[h.c.length]=c,c=new Lm,jat(s,o),o.a.$b(),u-=d,f=i.Math.max(f,u*t.b+p),u+=v,y=v,v=0,d=0,p=0);return new nA(f,h)}function Ozt(t){var e,n,i,a,r,o,s,c,l,u,d,h;for(n=new Bf(new Tf(t.c.b).a.vc().Kc());n.a.Ob();)s=jz(n.a.Pb(),42),null==(a=(e=jz(s.dd(),149)).a)&&(a=""),!(i=PB(t.c,a))&&0==a.length&&(i=vdt(t)),i&&!vgt(i.c,e,!1)&&MH(i.c,e);for(o=cmt(t.a,0);o.b!=o.d.c;)r=jz(d4(o),478),l=R6(t.c,r.a),h=R6(t.c,r.b),l&&h&&MH(l.c,new nA(h,r.c));for(yK(t.a),d=cmt(t.b,0);d.b!=d.d.c;)u=jz(d4(d),478),e=BB(t.c,u.a),c=R6(t.c,u.b),e&&c&&ME(e,c,u.c);yK(t.b)}function Mzt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;r=new kh(t),f6((o=new gxt).g),f6(o.j),DW(o.b),f6(o.d),f6(o.i),DW(o.k),DW(o.c),DW(o.e),f=hAt(o,r,null),ALt(o,r),a=f,e&&(s=eHt(l=new kh(e)),mCt(a,Cst(Hx(Jke,1),zGt,527,0,[s]))),h=!1,d=!1,n&&(l=new kh(n),d5t in l.a&&(h=UJ(l,d5t).ge().a),h5t in l.a&&(d=UJ(l,h5t).ge().a)),u=DR(jnt(new qv,h),d),$Ct(new us,a,u),d5t in r.a&&net(r,d5t,null),(h||d)&&(Q$t(u,c=new pw,h,d),net(r,d5t,c)),i=new qb(o),qct(new TI(a),i)}function Nzt(t,e,n){var i,a,r,o,s,c,l,u,d;for(o=new Kxt,l=Cst(Hx(TMe,1),lKt,25,15,[0]),a=-1,r=0,i=0,c=0;c<t.b.c.length;++c){if(!((u=jz(OU(t.b,c),434)).b>0)){if(a=-1,32==lZ(u.c,0)){if(d=l[0],ytt(e,l),l[0]>d)continue}else if(DX(e,u.c,l[0])){l[0]+=u.c.length;continue}return 0}if(a<0&&u.a&&(a=c,r=l[0],i=0),a>=0){if(s=u.b,c==a&&0==(s-=i++))return 0;if(!LWt(e,l,u,s,o)){c=a-1,l[0]=r;continue}}else if(a=-1,!LWt(e,l,u,0,o))return 0}return gWt(o,n)?l[0]:0}function Bzt(t){var e,n,i,a,r,o;if(!t.f){if(o=new Ec,r=new Ec,null==(e=kLe).a.zc(t,e)){for(a=new AO(vX(t));a.e!=a.i.gc();)pY(o,Bzt(jz(wmt(a),26)));e.a.Bc(t),e.a.gc()}for(!t.s&&(t.s=new tW(PIe,t,21,17)),i=new AO(t.s);i.e!=i.i.gc();)iO(n=jz(wmt(i),170),99)&&l8(r,jz(n,18));aut(r),t.r=new RH(t,(jz(Yet(GK((GY(),JIe).o),6),18),r.i),r.g),pY(o,t.r),aut(o),t.f=new LD((jz(Yet(GK(JIe.o),5),18),o.i),o.g),E6(t).b&=-3}return t.f}function Pzt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g;for(o=t.o,i=O5(TMe,lKt,25,o,15,1),a=O5(TMe,lKt,25,o,15,1),n=t.p,e=O5(TMe,lKt,25,n,15,1),r=O5(TMe,lKt,25,n,15,1),l=0;l<o;l++){for(d=0;d<n&&!mvt(t,l,d);)++d;i[l]=d}for(u=0;u<o;u++){for(d=n-1;d>=0&&!mvt(t,u,d);)--d;a[u]=d}for(f=0;f<n;f++){for(s=0;s<o&&!mvt(t,s,f);)++s;e[f]=s}for(g=0;g<n;g++){for(s=o-1;s>=0&&!mvt(t,s,g);)--s;r[g]=s}for(c=0;c<o;c++)for(h=0;h<n;h++)c<r[h]&&c>e[h]&&h<a[c]&&h>i[c]&&jPt(t,c,h,!1,!0)}function Fzt(t){var e,n,i,a,r,o,s,c;n=zw(RB(yEt(t,(uPt(),jre)))),r=t.a.c.d,s=t.a.d.d,n?(o=vO(qP(new OT(s.a,s.b),r),.5),c=vO(jL(t.e),.5),e=qP(VP(new OT(r.a,r.b),o),c),$N(t.d,e)):(a=Hw(_B(yEt(t.a,noe))),i=t.d,r.a>=s.a?r.b>=s.b?(i.a=s.a+(r.a-s.a)/2+a,i.b=s.b+(r.b-s.b)/2-a-t.e.b):(i.a=s.a+(r.a-s.a)/2+a,i.b=r.b+(s.b-r.b)/2+a):r.b>=s.b?(i.a=r.a+(s.a-r.a)/2+a,i.b=s.b+(r.b-s.b)/2+a):(i.a=r.a+(s.a-r.a)/2+a,i.b=r.b+(s.b-r.b)/2-a-t.e.b))}function jzt(t,e){var n,i,a,r,o,s,c;if(null==t)return null;if(0==(r=t.length))return"";for(c=O5(SMe,YZt,25,r,15,1),P5(0,r,t.length),P5(0,r,c.length),ZW(t,0,r,c,0),n=null,s=e,a=0,o=0;a<r;a++)i=c[a],RGt(),i<=32&&2&ZOe[i]?s?(!n&&(n=new lM(t)),aX(n,a-o++)):(s=e,32!=i&&(!n&&(n=new lM(t)),sZ(n,a-o,a-o+1,String.fromCharCode(32)))):s=!1;return s?n?(r=n.a.length)>0?lN(n.a,0,r-1):"":t.substr(0,r-1):n?n.a:t}function $zt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,qJt),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new re))),r2(t,qJt,WJt,ymt(xre)),r2(t,qJt,YJt,ymt(pre)),r2(t,qJt,GJt,ymt(ure)),r2(t,qJt,ZJt,ymt(bre)),r2(t,qJt,WXt,ymt(vre)),r2(t,qJt,YXt,ymt(yre)),r2(t,qJt,qXt,ymt(wre)),r2(t,qJt,GXt,ymt(mre)),r2(t,qJt,$Jt,ymt(hre)),r2(t,qJt,zJt,ymt(dre)),r2(t,qJt,HJt,ymt(fre)),r2(t,qJt,UJt,ymt(gre))}function zzt(t,e,n,i){var a,r,o,s,c,l,u;if(Fh(r=new Iyt(t),(oCt(),Tse)),lct(r,(zYt(),tme),(Z_t(),WTe)),a=0,e){for(lct(o=new SCt,(lGt(),fhe),e),lct(r,fhe,e.i),HTt(o,(wWt(),SAe)),CQ(o,r),l=0,u=(c=X0(e.e)).length;l<u;++l)_Q(c[l],o);lct(e,xhe,r),++a}if(n){for(s=new SCt,lct(r,(lGt(),fhe),n.i),lct(s,fhe,n),HTt(s,(wWt(),sAe)),CQ(s,r),l=0,u=(c=X0(n.g)).length;l<u;++l)kQ(c[l],s);lct(n,xhe,r),++a}return lct(r,(lGt(),jde),nht(a)),i.c[i.c.length]=r,r}function Hzt(){Hzt=D,TDe=Cst(Hx(SMe,1),YZt,25,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),ADe=new RegExp("[ \t\n\r\f]+");try{SDe=Cst(Hx(OLe,1),zGt,2015,0,[new bm((sL(),cpt("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",lP((lx(),lx(),iee))))),new bm(cpt("yyyy-MM-dd'T'HH:mm:ss'.'SSS",lP(iee))),new bm(cpt("yyyy-MM-dd'T'HH:mm:ss",lP(iee))),new bm(cpt("yyyy-MM-dd'T'HH:mm",lP(iee))),new bm(cpt("yyyy-MM-dd",lP(iee)))])}catch(t){if(!iO(t=dst(t),78))throw $m(t)}}function Uzt(t){var e,n,a,r;if(a=HYt((!t.c&&(t.c=vut(t.f)),t.c),0),0==t.e||0==t.a&&-1!=t.f&&t.e<0)return a;if(e=nit(t)<0?1:0,n=t.e,a.length,i.Math.abs(CJ(t.e)),r=new Sx,1==e&&(r.a+="-"),t.e>0)if((n-=a.length-e)>=0){for(r.a+="0.";n>Uee.length;n-=Uee.length)LU(r,Uee);gP(r,Uee,CJ(n)),oD(r,a.substr(e))}else oD(r,lN(a,e,CJ(n=e-n))),r.a+=".",oD(r,JA(a,CJ(n)));else{for(oD(r,a.substr(e));n<-Uee.length;n+=Uee.length)LU(r,Uee);gP(r,Uee,CJ(-n))}return r.a}function Vzt(t,e,n,a){var r,o,s,c,l,u,d,h,f;return u=(l=qP(new OT(n.a,n.b),t)).a*e.b-l.b*e.a,d=e.a*a.b-e.b*a.a,h=(l.a*a.b-l.b*a.a)/d,f=u/d,0==d?0==u?(o=W5(t,r=VP(new OT(n.a,n.b),vO(new OT(a.a,a.b),.5))),s=W5(VP(new OT(t.a,t.b),e),r),c=.5*i.Math.sqrt(a.a*a.a+a.b*a.b),o<s&&o<=c?new OT(t.a,t.b):s<=c?VP(new OT(t.a,t.b),e):null):null:h>=0&&h<=1&&f>=0&&f<=1?VP(new OT(t.a,t.b),vO(new OT(e.a,e.b),h)):null}function qzt(t,e,n){var i,a,r,o,s;if(i=jz(yEt(t,(zYt(),Lpe)),21),n.a>e.a&&(i.Hc((f_t(),YEe))?t.c.a+=(n.a-e.a)/2:i.Hc(ZEe)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(i.Hc((f_t(),XEe))?t.c.b+=(n.b-e.b)/2:i.Hc(KEe)&&(t.c.b+=n.b-e.b)),jz(yEt(t,(lGt(),Xde)),21).Hc((hBt(),dde))&&(n.a>e.a||n.b>e.b))for(s=new Wf(t.a);s.a<s.c.c.length;)(o=jz(J1(s),10)).k==(oCt(),kse)&&((a=jz(yEt(o,Gde),61))==(wWt(),sAe)?o.n.a+=n.a-e.a:a==EAe&&(o.n.b+=n.b-e.b));r=t.d,t.f.a=n.a-r.b-r.c,t.f.b=n.b-r.d-r.a}function Wzt(t,e,n){var i,a,r,o,s;if(i=jz(yEt(t,(zYt(),Lpe)),21),n.a>e.a&&(i.Hc((f_t(),YEe))?t.c.a+=(n.a-e.a)/2:i.Hc(ZEe)&&(t.c.a+=n.a-e.a)),n.b>e.b&&(i.Hc((f_t(),XEe))?t.c.b+=(n.b-e.b)/2:i.Hc(KEe)&&(t.c.b+=n.b-e.b)),jz(yEt(t,(lGt(),Xde)),21).Hc((hBt(),dde))&&(n.a>e.a||n.b>e.b))for(o=new Wf(t.a);o.a<o.c.c.length;)(r=jz(J1(o),10)).k==(oCt(),kse)&&((a=jz(yEt(r,Gde),61))==(wWt(),sAe)?r.n.a+=n.a-e.a:a==EAe&&(r.n.b+=n.b-e.b));s=t.d,t.f.a=n.a-s.b-s.c,t.f.b=n.b-s.d-s.a}function Yzt(t){var e,n,a,r,o,s,c,l,u,d;for(l=new Sf(new Cf(MDt(t)).a.vc().Kc());l.a.Ob();){for(a=jz(l.a.Pb(),42),u=0,d=0,u=(c=jz(a.cd(),10)).d.d,d=c.o.b+c.d.a,t.d[c.p]=0,e=c;(r=t.a[e.p])!=c;)n=kbt(e,r),s=0,s=t.c==(gJ(),Qve)?n.d.n.b+n.d.a.b-n.c.n.b-n.c.a.b:n.c.n.b+n.c.a.b-n.d.n.b-n.d.a.b,o=Hw(t.d[e.p])+s,t.d[r.p]=o,u=i.Math.max(u,r.d.d-o),d=i.Math.max(d,o+r.o.b+r.d.a),e=r;e=c;do{t.d[e.p]=Hw(t.d[e.p])+u,e=t.a[e.p]}while(e!=c);t.b[c.p]=u+d}}function Gzt(t){var e,n,a,r,o,s,c,l,u,d,h;for(t.b=!1,d=BKt,c=PKt,h=BKt,l=PKt,n=t.e.a.ec().Kc();n.Ob();)for(a=(e=jz(n.Pb(),266)).a,d=i.Math.min(d,a.c),c=i.Math.max(c,a.c+a.b),h=i.Math.min(h,a.d),l=i.Math.max(l,a.d+a.a),o=new Wf(e.c);o.a<o.c.c.length;)(r=jz(J1(o),395)).a.a?(s=(u=a.d+r.b.b)+r.c,h=i.Math.min(h,u),l=i.Math.max(l,s)):(s=(u=a.c+r.b.a)+r.c,d=i.Math.min(d,u),c=i.Math.max(c,s));t.a=new OT(c-d,l-h),t.c=new OT(d+t.d.a,h+t.d.b)}function Zzt(t,e,n){var i,a,r,o,s,c,l,u;for(u=new Lm,r=0,tit(l=new O0(0,n),new rlt(0,0,l,n)),a=0,c=new AO(t);c.e!=c.i.gc();)s=jz(wmt(c),33),i=jz(OU(l.a,l.a.c.length-1),187),a+s.g+(0==jz(OU(l.a,0),187).b.c.length?0:n)>e&&(a=0,r+=l.b+n,u.c[u.c.length]=l,tit(l=new O0(r,n),i=new rlt(0,l.f,l,n)),a=0),0==i.b.c.length||s.f>=i.o&&s.f<=i.f||.5*i.a<=s.f&&1.5*i.a>=s.f?vft(i,s):(tit(l,o=new rlt(i.s+i.r+n,l.f,l,n)),vft(o,s)),a=s.i+s.g;return u.c[u.c.length]=l,u}function Kzt(t){var e,n,i,a,r,o;if(!t.a){if(t.o=null,o=new gm(t),e=new Cc,null==(n=kLe).a.zc(t,n)){for(r=new AO(vX(t));r.e!=r.i.gc();)pY(o,Kzt(jz(wmt(r),26)));n.a.Bc(t),n.a.gc()}for(!t.s&&(t.s=new tW(PIe,t,21,17)),a=new AO(t.s);a.e!=a.i.gc();)iO(i=jz(wmt(a),170),322)&&l8(e,jz(i,34));aut(e),t.k=new xH(t,(jz(Yet(GK((GY(),JIe).o),7),18),e.i),e.g),pY(o,t.k),aut(o),t.a=new LD((jz(Yet(GK(JIe.o),4),18),o.i),o.g),E6(t).b&=-2}return t.a}function Xzt(t,e,n,i,a,r,o){var s,c,l,u,d,h;return d=!1,c=gMt(n.q,e.f+e.b-n.q.f),!((h=a-(n.q.e+c-o))<i.g||(l=r==t.c.length-1&&h>=(u1(r,t.c.length),jz(t.c[r],200)).e,s=aHt(i,h,!1),u=s.a,u>e.b&&!l))&&((l||u<=e.b)&&(l&&u>e.b?(n.d=u,p8(n,jCt(n,u))):(r_t(n.q,c),n.c=!0),p8(i,a-(n.s+n.r)),_yt(i,n.q.e+n.q.d,e.f),tit(e,i),t.c.length>r&&(_xt((u1(r,t.c.length),jz(t.c[r],200)),i),0==(u1(r,t.c.length),jz(t.c[r],200)).a.c.length&&s7(t,r)),d=!0),d)}function Jzt(t,e,n,i){var a,r,o,s,c,l,u;if(u=rNt(t.e.Tg(),e),a=0,r=jz(t.g,119),c=null,XE(),jz(e,66).Oj()){for(s=0;s<t.i;++s)if(o=r[s],u.rl(o.ak())){if(Odt(o,n)){c=o;break}++a}}else if(null!=n){for(s=0;s<t.i;++s)if(o=r[s],u.rl(o.ak())){if(Odt(n,o.dd())){c=o;break}++a}}else for(s=0;s<t.i;++s)if(o=r[s],u.rl(o.ak())){if(null==o.dd()){c=o;break}++a}return c&&(mI(t.e)&&(l=e.$j()?new d3(t.e,4,e,n,null,a,!0):IX(t,e.Kj()?2:1,e,n,e.zj(),-1,!0),i?i.Ei(l):i=l),i=_Ft(t,c,i)),i}function Qzt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g,p;switch(g=0,p=0,l=r.c,c=r.b,d=n.f,f=n.g,e.g){case 0:g=a.i+a.g+s,p=t.c?pkt(g,o,a,s):a.j,h=i.Math.max(l,g+f),u=i.Math.max(c,p+d);break;case 1:p=a.j+a.f+s,g=t.c?gkt(p,o,a,s):a.i,h=i.Math.max(l,g+f),u=i.Math.max(c,p+d);break;case 2:g=l+s,p=0,h=l+s+f,u=i.Math.max(c,d);break;case 3:g=0,p=c+s,h=i.Math.max(l,f),u=c+s+d;break;default:throw $m(new Pw("IllegalPlacementOption."))}return new rgt(t.a,h,u,e,g,p)}function tHt(t){var e,n,a,r,o,s,c,l,u,d,h,f;if(c=t.d,h=jz(yEt(t,(lGt(),Bhe)),15),e=jz(yEt(t,Mde),15),h||e){if(o=Hw(_B(ept(t,(zYt(),pme)))),s=Hw(_B(ept(t,bme))),f=0,h){for(u=0,r=h.Kc();r.Ob();)a=jz(r.Pb(),10),u=i.Math.max(u,a.o.b),f+=a.o.a;f+=o*(h.gc()-1),c.d+=u+s}if(n=0,e){for(u=0,r=e.Kc();r.Ob();)a=jz(r.Pb(),10),u=i.Math.max(u,a.o.b),n+=a.o.a;n+=o*(e.gc()-1),c.a+=u+s}(l=i.Math.max(f,n))>t.o.a&&(d=(l-t.o.a)/2,c.b=i.Math.max(c.b,d),c.c=i.Math.max(c.c,d))}}function eHt(t){var e,n,i,a,r,o;for(iI(a=new N0,(Ost(),Kke)),i=new kf(new Kw(new Rk(t,xat(t,O5(zee,cZt,2,0,6,1))).b));i.b<i.d.gc();)EN(i.b<i.d.gc()),n=kB(i.d.Xb(i.c=i.b++)),(r=bVt(lIe,n))&&null!=(o=JUt(r,(e=UJ(t,n)).je()?e.je().a:e.ge()?""+e.ge().a:e.he()?""+e.he().a:e.Ib()))&&((kM(r.j,(imt(),cEe))||kM(r.j,lEe))&&cct(Ztt(a,UDe),r,o),kM(r.j,oEe)&&cct(Ztt(a,BDe),r,o),kM(r.j,uEe)&&cct(Ztt(a,VDe),r,o),kM(r.j,sEe)&&cct(Ztt(a,HDe),r,o));return a}function nHt(t,e,n,i){var a,r,o,s,c,l;if(c=rNt(t.e.Tg(),e),r=jz(t.g,119),INt(t.e,e)){for(a=0,s=0;s<t.i;++s)if(o=r[s],c.rl(o.ak())){if(a==n)return XE(),jz(e,66).Oj()?o:(null!=(l=o.dd())&&i&&iO(e,99)&&jz(e,18).Bb&$Kt&&(l=jAt(t,e,s,a,l)),l);++a}throw $m(new Aw(e8t+n+s5t+a))}for(a=0,s=0;s<t.i;++s){if(o=r[s],c.rl(o.ak()))return XE(),jz(e,66).Oj()?o:(null!=(l=o.dd())&&i&&iO(e,99)&&jz(e,18).Bb&$Kt&&(l=jAt(t,e,s,a,l)),l);++a}return e.zj()}function iHt(t,e,n){var i,a,r,o,s,c,l,u;if(a=jz(t.g,119),INt(t.e,e))return XE(),jz(e,66).Oj()?new uU(e,t):new OA(e,t);for(l=rNt(t.e.Tg(),e),i=0,s=0;s<t.i;++s){if(o=(r=a[s]).ak(),l.rl(o)){if(XE(),jz(e,66).Oj())return r;if(o==(_Dt(),lOe)||o==oOe){for(c=new uM($ft(r.dd()));++s<t.i;)((o=(r=a[s]).ak())==lOe||o==oOe)&&oD(c,$ft(r.dd()));return gF(jz(e.Yj(),148),c.a)}return null!=(u=r.dd())&&n&&iO(e,99)&&jz(e,18).Bb&$Kt&&(u=jAt(t,e,s,i,u)),u}++i}return e.zj()}function aHt(t,e,n){var a,r,o,s,c,l,u,d,h,f;for(o=0,s=t.t,r=0,a=0,l=0,f=0,h=0,n&&(t.n.c=O5(Dte,zGt,1,0,5,1),Wz(t.n,new NJ(t.s,t.t,t.i))),c=0,d=new Wf(t.b);d.a<d.c.c.length;)o+(u=jz(J1(d),33)).g+(c>0?t.i:0)>e&&l>0&&(o=0,s+=l+t.i,r=i.Math.max(r,f),a+=l+t.i,l=0,f=0,n&&(++h,Wz(t.n,new NJ(t.s,s,t.i))),c=0),f+=u.g+(c>0?t.i:0),l=i.Math.max(l,u.f),n&&cvt(jz(OU(t.n,h),211),u),o+=u.g+(c>0?t.i:0),++c;return r=i.Math.max(r,f),a+=l,n&&(t.r=r,t.d=a,vwt(t.j)),new VZ(t.s,t.t,r,a)}function rHt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f;if(Dk(),kW(t,"src"),kW(n,"dest"),h=tlt(t),c=tlt(n),pH(0!=(4&h.i),"srcType is not an array"),pH(0!=(4&c.i),"destType is not an array"),d=h.c,o=c.c,pH(1&d.i?d==o:0==(1&o.i),"Array types don't match"),f=t.length,l=n.length,e<0||i<0||a<0||e+a>f||i+a>l)throw $m(new ly);if(1&d.i||h==c)a>0&&FTt(t,e,n,i,a,!0);else if(u=ent(t),r=ent(n),HA(t)===HA(n)&&e<i)for(e+=a,s=i+a;s-- >i;)DY(r,s,u[--e]);else for(s=i+a;i<s;)DY(r,i++,u[e++])}function oHt(){oHt=D,ine=Cst(Hx(TMe,1),lKt,25,15,[FZt,1162261467,AZt,1220703125,362797056,1977326743,AZt,387420489,DKt,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,128e7,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729e6,887503681,AZt,1291467969,1544804416,1838265625,60466176]),ane=Cst(Hx(TMe,1),lKt,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])}function sHt(t){var e,n,i,a,r,o,s;for(i=new Wf(t.b);i.a<i.c.c.length;)for(r=new Wf(a0(jz(J1(i),29).a));r.a<r.c.c.length;)if(Xtt(a=jz(J1(r),10))&&!(n=jz(yEt(a,(lGt(),Nde)),305)).g&&n.d)for(e=n,s=n.d;s;)ePt(s.i,s.k,!1,!0),A9(e.a),A9(s.i),A9(s.k),A9(s.b),_Q(s.c,e.c.d),_Q(e.c,null),EQ(e.a,null),EQ(s.i,null),EQ(s.k,null),EQ(s.b,null),(o=new b4(e.i,s.a,e.e,s.j,s.f)).k=e.k,o.n=e.n,o.b=e.b,o.c=s.c,o.g=e.g,o.d=s.d,lct(e.i,Nde,o),lct(s.a,Nde,o),s=s.d,e=o}function cHt(t,e){var n,i,a,r,o;if(o=jz(e,136),_Lt(t),_Lt(o),null!=o.b){if(t.c=!0,null==t.b)return t.b=O5(TMe,lKt,25,o.b.length,15,1),void rHt(o.b,0,t.b,0,o.b.length);for(r=O5(TMe,lKt,25,t.b.length+o.b.length,15,1),n=0,i=0,a=0;n<t.b.length||i<o.b.length;)n>=t.b.length?(r[a++]=o.b[i++],r[a++]=o.b[i++]):i>=o.b.length?(r[a++]=t.b[n++],r[a++]=t.b[n++]):o.b[i]<t.b[n]||o.b[i]===t.b[n]&&o.b[i+1]<t.b[n+1]?(r[a++]=o.b[i++],r[a++]=o.b[i++]):(r[a++]=t.b[n++],r[a++]=t.b[n++]);t.b=r}}function lHt(t,e){var n,i,a,r,o,s,c,l,u,d;return n=zw(RB(yEt(t,(lGt(),she)))),s=zw(RB(yEt(e,she))),i=jz(yEt(t,che),11),c=jz(yEt(e,che),11),a=jz(yEt(t,lhe),11),l=jz(yEt(e,lhe),11),u=!!i&&i==c,d=!!a&&a==l,n||s?(r=(!zw(RB(yEt(t,she)))||zw(RB(yEt(t,ohe))))&&(!zw(RB(yEt(e,she)))||zw(RB(yEt(e,ohe)))),o=!(zw(RB(yEt(t,she)))&&zw(RB(yEt(t,ohe)))||zw(RB(yEt(e,she)))&&zw(RB(yEt(e,ohe)))),new Nj(u&&r||d&&o,u,d)):new Nj(jz(J1(new Wf(t.j)),11).p==jz(J1(new Wf(e.j)),11).p,u,d)}function uHt(t){var e,n,a,r,o,s,c,l;for(a=0,n=0,l=new Zk,e=0,c=new Wf(t.n);c.a<c.c.c.length;)0==(s=jz(J1(c),211)).c.c.length?n6(l,s,l.c.b,l.c):(a=i.Math.max(a,s.d),n+=s.a+(e>0?t.i:0)),++e;for(Qft(t.n,l),t.d=n,t.r=a,t.g=0,t.f=0,t.e=0,t.o=BKt,t.p=BKt,o=new Wf(t.b);o.a<o.c.c.length;)r=jz(J1(o),33),t.p=i.Math.min(t.p,r.g),t.g=i.Math.max(t.g,r.g),t.f=i.Math.max(t.f,r.f),t.o=i.Math.min(t.o,r.f),t.e+=r.f+t.i;t.a=t.e/t.b.c.length-t.i*((t.b.c.length-1)/t.b.c.length),vwt(t.j)}function dHt(t){var e,n,i,a;return 64&t.Db?Kht(t):(e=new uM(G6t),(i=t.k)?oD(oD((e.a+=' "',e),i),'"'):(!t.n&&(t.n=new tW(HDe,t,1,7)),t.n.i>0&&(!(a=(!t.n&&(t.n=new tW(HDe,t,1,7)),jz(Yet(t.n,0),137)).a)||oD(oD((e.a+=' "',e),a),'"'))),!t.b&&(t.b=new cF(NDe,t,4,7)),n=!(t.b.i<=1&&(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c.i<=1)),e.a+=n?" [":" ",oD(e,KO(new mx,new AO(t.b))),n&&(e.a+="]"),e.a+=e1t,n&&(e.a+="["),oD(e,KO(new mx,new AO(t.c))),n&&(e.a+="]"),e.a)}function hHt(t,e){var n,i,a,r,o,s,c;if(t.a){if(c=null,null!=(s=t.a.ne())?e.a+=""+s:null!=(o=t.a.Dj())&&(-1!=(r=HD(o,Kkt(91)))?(c=o.substr(r),e.a+=""+lN(null==o?VGt:(vG(o),o),0,r)):e.a+=""+o),t.d&&0!=t.d.i){for(a=!0,e.a+="<",i=new AO(t.d);i.e!=i.i.gc();)n=jz(wmt(i),87),a?a=!1:e.a+=jGt,hHt(n,e);e.a+=">"}null!=c&&(e.a+=""+c)}else t.e?null!=(s=t.e.zb)&&(e.a+=""+s):(e.a+="?",t.b?(e.a+=" super ",hHt(t.b,e)):t.f&&(e.a+=" extends ",hHt(t.f,e)))}function fHt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E;for(w=t.c,x=e.c,n=x9(w.a,t,0),i=x9(x.a,e,0),y=jz(Mgt(t,(rit(),zye)).Kc().Pb(),11),k=jz(Mgt(t,Hye).Kc().Pb(),11),v=jz(Mgt(e,zye).Kc().Pb(),11),E=jz(Mgt(e,Hye).Kc().Pb(),11),b=X0(y.e),R=X0(k.g),m=X0(v.e),_=X0(E.g),Zwt(t,i,x),l=0,f=(r=m).length;l<f;++l)_Q(r[l],y);for(u=0,g=(o=_).length;u<g;++u)kQ(o[u],k);for(Zwt(e,n,w),d=0,p=(s=b).length;d<p;++d)_Q(s[d],v);for(c=0,h=(a=R).length;c<h;++c)kQ(a[c],E)}function gHt(t,e,n,i){var a,r,o,s,c,l;if(r=Yht(i),!zw(RB(yEt(i,(zYt(),Sbe))))&&!zw(RB(yEt(t,dbe)))||bI(jz(yEt(t,tme),98)))switch(s=new SCt,CQ(s,t),e?(l=s.n,l.a=e.a-t.n.a,l.b=e.b-t.n.b,YCt(l,0,0,t.o.a,t.o.b),HTt(s,Vjt(s,r))):(a=lgt(r),HTt(s,n==(rit(),Hye)?a:_ht(a))),o=jz(yEt(i,(lGt(),Xde)),21),c=s.j,r.g){case 2:case 1:(c==(wWt(),cAe)||c==EAe)&&o.Fc((hBt(),pde));break;case 4:case 3:(c==(wWt(),sAe)||c==SAe)&&o.Fc((hBt(),pde))}else a=lgt(r),s=Bjt(t,n,n==(rit(),Hye)?a:_ht(a));return s}function pHt(t,e,n){var a,r,o,s,c,l,u;return i.Math.abs(e.s-e.c)<dQt||i.Math.abs(n.s-n.c)<dQt?0:(a=YMt(t,e.j,n.e),r=YMt(t,n.j,e.e),o=0,-1==a||-1==r?(-1==a&&(new UQ((T7(),_we),n,e,1),++o),-1==r&&(new UQ((T7(),_we),e,n,1),++o)):(s=_dt(e.j,n.s,n.c),s+=_dt(n.e,e.s,e.c),c=_dt(n.j,e.s,e.c),(l=a+16*s)<(u=r+16*(c+=_dt(e.e,n.s,n.c)))?new UQ((T7(),kwe),e,n,u-l):l>u?new UQ((T7(),kwe),n,e,l-u):l>0&&u>0&&(new UQ((T7(),kwe),e,n,0),new UQ(kwe,n,e,0))),o)}function bHt(t,e){var n,a,r,o,s;for(s=new olt(new Ef(t.f.b).a);s.b;){if(r=jz((o=tnt(s)).cd(),594),1==e){if(r.gf()!=(jdt(),zSe)&&r.gf()!=PSe)continue}else if(r.gf()!=(jdt(),FSe)&&r.gf()!=jSe)continue;switch(a=jz(jz(o.dd(),46).b,81),n=jz(jz(o.dd(),46).a,189).c,r.gf().g){case 2:a.g.c=t.e.a,a.g.b=i.Math.max(1,a.g.b+n);break;case 1:a.g.c=a.g.c+n,a.g.b=i.Math.max(1,a.g.b-n);break;case 4:a.g.d=t.e.b,a.g.a=i.Math.max(1,a.g.a+n);break;case 3:a.g.d=a.g.d+n,a.g.a=i.Math.max(1,a.g.a-n)}}}function mHt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b;for(c=O5(TMe,lKt,25,e.b.c.length,15,1),u=O5(Dse,IZt,267,e.b.c.length,0,1),l=O5(Rse,r1t,10,e.b.c.length,0,1),f=0,g=(h=t.a).length;f<g;++f){for(b=0,s=new Wf((d=h[f]).e);s.a<s.c.c.length;)++c[a=QD((r=jz(J1(s),10)).c)],p=Hw(_B(yEt(e,(zYt(),yme)))),c[a]>0&&l[a]&&(p=BL(t.b,l[a],r)),b=i.Math.max(b,r.c.c.b+p);for(o=new Wf(d.e);o.a<o.c.c.length;)(r=jz(J1(o),10)).n.b=b+r.d.d,(n=r.c).c.b=b+r.d.d+r.o.b+r.d.a,u[x9(n.b.b,n,0)]=r.k,l[x9(n.b.b,n,0)]=r}}function yHt(t,e){var n,i,a,r,o,s,c,l,d,h,f;for(i=new oq(XO(gOt(e).a.Kc(),new u));gIt(i);)iO(Yet((!(n=jz(V6(i),79)).b&&(n.b=new cF(NDe,n,4,7)),n.b),0),186)||(c=Ckt(jz(Yet((!n.c&&(n.c=new cF(NDe,n,5,8)),n.c),0),82)),QDt(n)||(o=e.i+e.g/2,s=e.j+e.f/2,d=c.i+c.g/2,h=c.j+c.f/2,(f=new HR).a=d-o,f.b=h-s,qxt(r=new OT(f.a,f.b),e.g,e.f),f.a-=r.a,f.b-=r.b,o=d-f.a,s=h-f.b,qxt(l=new OT(f.a,f.b),c.g,c.f),f.a-=l.a,f.b-=l.b,d=o+f.a,h=s+f.b,Tnt(a=aBt(n,!0,!0),o),Dnt(a,s),_nt(a,d),Ant(a,h),yHt(t,c)))}function vHt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,B3t),"ELK SPOrE Compaction"),"ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree."),new ns))),r2(t,B3t,P3t,ymt(vke)),r2(t,B3t,F3t,ymt(bke)),r2(t,B3t,j3t,ymt(pke)),r2(t,B3t,$3t,ymt(fke)),r2(t,B3t,z3t,ymt(gke)),r2(t,B3t,ZJt,hke),r2(t,B3t,mQt,8),r2(t,B3t,H3t,ymt(yke)),r2(t,B3t,U3t,ymt(cke)),r2(t,B3t,V3t,ymt(lke)),r2(t,B3t,W2t,(cM(),!1))}function wHt(t,e){var n,a,r,o,s,c,l,u,d,h;for(Akt(e,"Simple node placement",1),h=jz(yEt(t,(lGt(),Ahe)),304),c=0,o=new Wf(t.b);o.a<o.c.c.length;){for((s=(a=jz(J1(o),29)).c).b=0,n=null,u=new Wf(a.a);u.a<u.c.c.length;)l=jz(J1(u),10),n&&(s.b+=Tpt(l,n,h.c)),s.b+=l.d.d+l.o.b+l.d.a,n=l;c=i.Math.max(c,s.b)}for(r=new Wf(t.b);r.a<r.c.c.length;)for(d=(c-(s=(a=jz(J1(r),29)).c).b)/2,n=null,u=new Wf(a.a);u.a<u.c.c.length;)l=jz(J1(u),10),n&&(d+=Tpt(l,n,h.c)),d+=l.d.d,l.n.b=d,d+=l.o.b+l.d.a,n=l;zCt(e)}function xHt(t,e,n,i){var a,r,o,s,c,l,u,d;if(0==i.gc())return!1;if(XE(),o=(c=jz(e,66).Oj())?i:new pet(i.gc()),INt(t.e,e)){if(e.hi())for(u=i.Kc();u.Ob();)q$t(t,e,l=u.Pb(),iO(e,99)&&0!=(jz(e,18).Bb&$Kt))||(r=X4(e,l),o.Fc(r));else if(!c)for(u=i.Kc();u.Ob();)r=X4(e,l=u.Pb()),o.Fc(r)}else{for(d=rNt(t.e.Tg(),e),a=jz(t.g,119),s=0;s<t.i;++s)if(r=a[s],d.rl(r.ak()))throw $m(new Pw(T9t));if(i.gc()>1)throw $m(new Pw(T9t));c||(r=X4(e,i.Kc().Pb()),o.Fc(r))}return sct(t,RSt(t,e,n),o)}function RHt(t,e){var n,i,a,r;for(Zet(e.b.j),Kk(DZ(new NU(null,new h1(e.d,16)),new rr),new or),r=new Wf(e.d);r.a<r.c.c.length;){switch((a=jz(J1(r),101)).e.g){case 0:n=jz(OU(a.j,0),113).d.j,zh(a,jz(DM(Tq(jz(c7(a.k,n),15).Oc(),Gle)),113)),$h(a,jz(DM(Sq(jz(c7(a.k,n),15).Oc(),Gle)),113));break;case 1:i=zwt(a),zh(a,jz(DM(Tq(jz(c7(a.k,i[0]),15).Oc(),Gle)),113)),$h(a,jz(DM(Sq(jz(c7(a.k,i[1]),15).Oc(),Gle)),113));break;case 2:GSt(t,a);break;case 3:PMt(a);break;case 4:UMt(t,a)}Get(a)}t.a=null}function _Ht(t,e,n){var i,a,r,o,s,c,l,u;return i=t.a.o==(oQ(),awe)?BKt:PKt,!(s=a$t(t,new aT(e,n))).a&&s.c?(MH(t.d,s),i):s.a?(a=s.a.c,c=s.a.d,n?(l=t.a.c==(gJ(),twe)?c:a,r=t.a.c==twe?a:c,o=t.a.g[r.i.p],u=Hw(t.a.p[o.p])+Hw(t.a.d[r.i.p])+r.n.b+r.a.b-Hw(t.a.d[l.i.p])-l.n.b-l.a.b):(l=t.a.c==(gJ(),Qve)?c:a,r=t.a.c==Qve?a:c,u=Hw(t.a.p[t.a.g[r.i.p].p])+Hw(t.a.d[r.i.p])+r.n.b+r.a.b-Hw(t.a.d[l.i.p])-l.n.b-l.a.b),t.a.n[t.a.g[a.i.p].p]=(cM(),!0),t.a.n[t.a.g[c.i.p].p]=!0,u):i}function kHt(t,e,n){var i,a,r,o,s,c,l;if(INt(t.e,e))XE(),DDt((s=jz(e,66).Oj()?new uU(e,t):new OA(e,t)).c,s.b),XL(s,jz(n,14));else{for(l=rNt(t.e.Tg(),e),i=jz(t.g,119),r=0;r<t.i;++r)if(a=i[r].ak(),l.rl(a)){if(a==(_Dt(),lOe)||a==oOe){for(o=r,(c=Ayt(t,e,n))?uBt(t,r):++r;r<t.i;)(a=i[r].ak())==lOe||a==oOe?uBt(t,r):++r;c||jz(syt(t,o,X4(e,n)),72)}else Ayt(t,e,n)?uBt(t,r):jz(syt(t,r,(XE(),jz(e,66).Oj()?jz(n,72):X4(e,n))),72);return}Ayt(t,e,n)||l8(t,(XE(),jz(e,66).Oj()?jz(n,72):X4(e,n)))}}function EHt(t,e,n){var i,a,r,o,s,c,l,u;return Odt(n,t.b)||(t.b=n,r=new Xt,o=jz(E3(DZ(new NU(null,new h1(n.f,16)),r),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Kne),Zne]))),21),t.e=!0,t.f=!0,t.c=!0,t.d=!0,a=o.Hc((zmt(),$ae)),i=o.Hc(zae),a&&!i&&(t.f=!1),!a&&i&&(t.d=!1),a=o.Hc(jae),i=o.Hc(Hae),a&&!i&&(t.c=!1),!a&&i&&(t.e=!1)),u=jz(t.a.Ce(e,n),46),c=jz(u.a,19).a,l=jz(u.b,19).a,s=!1,c<0?t.c||(s=!0):t.e||(s=!0),l<0?t.d||(s=!0):t.f||(s=!0),s?EHt(t,u,n):u}function CHt(t){var e,n,a,r;r=t.o,zB(),t.A.dc()||Odt(t.A,Dae)?e=r.b:(e=kAt(t.f),t.A.Hc((ypt(),BAe))&&!t.B.Hc((QFt(),WAe))&&(e=i.Math.max(e,kAt(jz(oZ(t.p,(wWt(),sAe)),244))),e=i.Math.max(e,kAt(jz(oZ(t.p,SAe),244)))),(n=sot(t))&&(e=i.Math.max(e,n.b)),t.A.Hc(PAe)&&(t.q==(Z_t(),YTe)||t.q==WTe)&&(e=i.Math.max(e,qH(jz(oZ(t.b,(wWt(),sAe)),124))),e=i.Math.max(e,qH(jz(oZ(t.b,SAe),124))))),zw(RB(t.e.yf().We((cGt(),FCe))))?r.b=i.Math.max(r.b,e):r.b=e,(a=t.f.i).d=0,a.a=e,U$t(t.f)}function SHt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f;for(u=0;u<e.length;u++){for(o=t.Kc();o.Ob();)jz(o.Pb(),225).Of(u,e);for(d=0;d<e[u].length;d++){for(s=t.Kc();s.Ob();)jz(s.Pb(),225).Pf(u,d,e);for(f=e[u][d].j,h=0;h<f.c.length;h++){for(c=t.Kc();c.Ob();)jz(c.Pb(),225).Qf(u,d,h,e);for(u1(h,f.c.length),n=0,a=new m7(jz(f.c[h],11).b);yL(a.a)||yL(a.b);)for(i=jz(yL(a.a)?J1(a.a):J1(a.b),17),l=t.Kc();l.Ob();)jz(l.Pb(),225).Nf(u,d,h,n++,i,e)}}}for(r=t.Kc();r.Ob();)jz(r.Pb(),225).Mf()}function THt(t,e){var n,i,a,r,o;for(t.b=Hw(_B(yEt(e,(zYt(),vme)))),t.c=Hw(_B(yEt(e,Rme))),t.d=jz(yEt(e,nbe),336),t.a=jz(yEt(e,Epe),275),uvt(e),a=(r=jz(E3(AZ(AZ(htt(htt(new NU(null,new h1(e.b,16)),new wn),new xn),new Rn),new _n),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15)).Kc();a.Ob();)n=jz(a.Pb(),17),jz(yEt(n,(lGt(),Lhe)),15).Jc(new tp(t)),lct(n,Lhe,null);for(i=r.Kc();i.Ob();)n=jz(i.Pb(),17),o=jz(yEt(n,(lGt(),Ohe)),17),jYt(t,jz(yEt(n,Dhe),15),o),lct(n,Dhe,null)}function AHt(t){t.b=null,t.a=null,t.o=null,t.q=null,t.v=null,t.w=null,t.B=null,t.p=null,t.Q=null,t.R=null,t.S=null,t.T=null,t.U=null,t.V=null,t.W=null,t.bb=null,t.eb=null,t.ab=null,t.H=null,t.db=null,t.c=null,t.d=null,t.f=null,t.n=null,t.r=null,t.s=null,t.u=null,t.G=null,t.J=null,t.e=null,t.j=null,t.i=null,t.g=null,t.k=null,t.t=null,t.F=null,t.I=null,t.L=null,t.M=null,t.O=null,t.P=null,t.$=null,t.N=null,t.Z=null,t.cb=null,t.K=null,t.D=null,t.A=null,t.C=null,t._=null,t.fb=null,t.X=null,t.Y=null,t.gb=!1,t.hb=!1}function DHt(t){var e,n,i,a,r,o,s,c,l;return!(t.k!=(oCt(),Sse)||t.j.c.length<=1||(r=jz(yEt(t,(zYt(),tme)),98),r==(Z_t(),WTe))||(hyt(),i=(t.q?t.q:(kK(),kK(),lne))._b(Nbe)?jz(yEt(t,Nbe),197):jz(yEt(bG(t),Bbe),197),a=i,a==dye)||a!=uye&&a!=lye&&(o=Hw(_B(ept(t,Lme))),e=jz(yEt(t,Ime),142),!e&&(e=new $P(o,o,o,o)),l=rft(t,(wWt(),SAe)),c=e.d+e.a+(l.gc()-1)*o,c>t.o.b||(n=rft(t,sAe),s=e.d+e.a+(n.gc()-1)*o,s>t.o.b)))}function IHt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g;if(o=t.e,c=e.e,0==o)return e;if(0==c)return t;if((r=t.d)+(s=e.d)==2)return n=t0(t.a[0],qKt),i=t0(e.a[0],qKt),o==c?(g=fV(u=ift(n,i)),0==(f=fV(wq(u,32)))?new q7(o,g):new uW(o,2,Cst(Hx(TMe,1),lKt,25,15,[g,f]))):Qbt(o<0?nft(i,n):nft(n,i));if(o==c)h=o,d=r>=s?L5(t.a,r,e.a,s):L5(e.a,s,t.a,r);else{if(0==(a=r!=s?r>s?1:-1:klt(t.a,e.a,r)))return ABt(),nne;1==a?(h=o,d=f7(t.a,r,e.a,s)):(h=c,d=f7(e.a,s,t.a,r))}return q0(l=new uW(h,d.length,d)),l}function LHt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g;return h=zw(RB(yEt(e,(zYt(),Tbe)))),f=null,o==(rit(),zye)&&a.c.i==n?f=a.c:o==Hye&&a.d.i==n&&(f=a.d),(u=s)&&h&&!f?(Wz(u.e,a),g=i.Math.max(Hw(_B(yEt(u.d,abe))),Hw(_B(yEt(a,abe)))),lct(u.d,abe,g)):(wWt(),d=CAe,f?d=f.j:bI(jz(yEt(n,tme),98))&&(d=o==zye?SAe:sAe),l=MHt(t,e,n,o,d,a),c=W6((bG(n),a)),o==zye?(kQ(c,jz(OU(l.j,0),11)),_Q(c,r)):(kQ(c,r),_Q(c,jz(OU(l.j,0),11))),u=new Vdt(a,c,l,jz(yEt(l,(lGt(),fhe)),11),o,!f)),XAt(t.a,a,new Ij(u.d,e,o)),u}function OHt(t,e){var n,i,a,r,o,s,c,l,u,d;if(u=null,t.d&&(u=jz(kJ(t.d,e),138)),!u){if(d=(r=t.a.Mh()).i,!t.d||Lk(t.d)!=d){for(c=new Om,t.d&&_rt(c,t.d),s=l=c.f.c+c.g.c;s<d;++s)i=jz(Yet(r,s),138),(n=jz(null==(a=Sdt(t.e,i).ne())?xTt(c.f,null,i):oft(c.g,a,i),138))&&n!=i&&(null==a?xTt(c.f,null,n):oft(c.g,a,n));if(c.f.c+c.g.c!=d)for(o=0;o<l;++o)i=jz(Yet(r,o),138),(n=jz(null==(a=Sdt(t.e,i).ne())?xTt(c.f,null,i):oft(c.g,a,i),138))&&n!=i&&(null==a?xTt(c.f,null,n):oft(c.g,a,n));t.d=c}u=jz(kJ(t.d,e),138)}return u}function MHt(t,e,n,i,a,r){var o,s,c,l,u,d;return o=null,l=i==(rit(),zye)?r.c:r.d,c=Yht(e),l.i==n?(o=jz(NY(t.b,l),10))||(lct(o=hYt(l,jz(yEt(n,(zYt(),tme)),98),a,zFt(l),null,l.n,l.o,c,e),(lGt(),fhe),l),YG(t.b,l,o)):(s=D_t(o=hYt((u=new Jt,d=Hw(_B(yEt(e,(zYt(),yme))))/2,cct(u,Qbe,d),u),jz(yEt(n,tme),98),a,i==zye?-1:1,null,new HR,new OT(0,0),c,e),n,i),lct(o,(lGt(),fhe),s),YG(t.b,s,o)),jz(yEt(e,(lGt(),Xde)),21).Fc((hBt(),dde)),bI(jz(yEt(e,(zYt(),tme)),98))?lct(e,tme,(Z_t(),GTe)):lct(e,tme,(Z_t(),ZTe)),o}function NHt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p;Akt(e,"Orthogonal edge routing",1),l=Hw(_B(yEt(t,(zYt(),Ame)))),n=Hw(_B(yEt(t,vme))),i=Hw(_B(yEt(t,Rme))),h=new lY(0,n),p=0,o=new _2(t.b,0),s=null,u=null,c=null,d=null;do{d=(u=o.b<o.d.gc()?(EN(o.b<o.d.gc()),jz(o.d.Xb(o.c=o.b++),29)):null)?u.a:null,s&&(_Ut(s,p),p+=s.c.a),g=DVt(h,t,c,d,s?p+i:p),a=!s||YA(c,(gNt(),wwe)),r=!u||YA(d,(gNt(),wwe)),g>0?(f=(g-1)*n,s&&(f+=i),u&&(f+=i),f<l&&!a&&!r&&(f=l),p+=f):!a&&!r&&(p+=l),s=u,c=d}while(u);t.f.a=p,zCt(e)}function BHt(){var t;BHt=D,wIe=new kv,yIe=O5(zee,cZt,2,0,6,1),_Ie=e0($st(33,58),$st(1,26)),kIe=e0($st(97,122),$st(65,90)),EIe=$st(48,57),xIe=e0(_Ie,0),RIe=e0(kIe,EIe),CIe=e0(e0(0,$st(1,6)),$st(33,38)),SIe=e0(e0(EIe,$st(65,70)),$st(97,102)),LIe=e0(xIe,gmt("-_.!~*'()")),OIe=e0(RIe,Wgt("-_.!~*'()")),gmt(o8t),Wgt(o8t),e0(LIe,gmt(";:@&=+$,")),e0(OIe,Wgt(";:@&=+$,")),TIe=gmt(":/?#"),AIe=Wgt(":/?#"),DIe=gmt("/?#"),IIe=Wgt("/?#"),(t=new Ny).a.zc("jar",t),t.a.zc("zip",t),t.a.zc("archive",t),kK(),vIe=new Ax(t)}function PHt(t,e){var n,i,a,r,o;if(lct(e,(HUt(),oxe),0),a=jz(yEt(e,axe),86),0==e.d.b)a?(o=Hw(_B(yEt(a,lxe)))+t.a+x6(a,e),lct(e,lxe,o)):lct(e,lxe,0);else{for(n=new hb(cmt(new db(e).a.d,0));x_(n.a);)PHt(t,jz(d4(n.a),188).c);i=jz(eO(new hb(cmt(new db(e).a.d,0))),86),r=(Hw(_B(yEt(jz(RM(new hb(cmt(new db(e).a.d,0))),86),lxe)))+Hw(_B(yEt(i,lxe))))/2,a?(o=Hw(_B(yEt(a,lxe)))+t.a+x6(a,e),lct(e,lxe,o),lct(e,oxe,Hw(_B(yEt(e,lxe)))-r),TVt(t,e)):lct(e,lxe,r)}}function FHt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f;s=0,f=0,c=RJ(t.f,t.f.length),r=t.d,o=t.i,i=t.a,a=t.b;do{for(h=0,l=new Wf(t.p);l.a<l.c.c.length;)d=AVt(t,jz(J1(l),10)),n=!0,(t.q==(cMt(),_ye)||t.q==Cye)&&(n=zw(RB(d.b))),jz(d.a,19).a<0&&n?(++h,c=RJ(t.f,t.f.length),t.d=t.d+jz(d.a,19).a,f+=r-t.d,r=t.d+jz(d.a,19).a,o=t.i,i=a0(t.a),a=a0(t.b)):(t.f=RJ(c,c.length),t.d=r,t.a=(yY(i),i?new QF(i):$z(new Wf(i))),t.b=(yY(a),a?new QF(a):$z(new Wf(a))),t.i=o);++s,u=0!=h&&zw(RB(e.Kb(new nA(nht(f),nht(s)))))}while(u)}function jHt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;return o=t.f,h=e.f,s=o==(KOt(),M_e)||o==B_e,c=o==N_e||o==P_e,f=h==N_e||h==P_e,l=o==N_e||o==M_e,g=h==N_e||h==M_e,!s||h!=M_e&&h!=B_e?c&&f?t.f==P_e?t:e:l&&g?(o==N_e?(d=t,u=e):(d=e,u=t),p=n.j+n.f,b=d.e+a.f,m=i.Math.max(p,b)-i.Math.min(n.j,d.e),r=(d.d+a.g-n.i)*m,y=n.i+n.g,v=u.d+a.g,r<=(i.Math.max(y,v)-i.Math.min(n.i,u.d))*(u.e+a.f-n.j)?t.f==N_e?t:e:t.f==M_e?t:e):t:t.f==B_e?t:e}function $Ht(t){var e,n,i,a,r,o,s,c,l,u;for(l=t.e.a.c.length,r=new Wf(t.e.a);r.a<r.c.c.length;)jz(J1(r),121).j=!1;for(t.i=O5(TMe,lKt,25,l,15,1),t.g=O5(TMe,lKt,25,l,15,1),t.n=new Lm,a=0,u=new Lm,s=new Wf(t.e.a);s.a<s.c.c.length;)(o=jz(J1(s),121)).d=a++,0==o.b.a.c.length&&Wz(t.n,o),pst(u,o.g);for(e=0,i=new Wf(u);i.a<i.c.c.length;)(n=jz(J1(i),213)).c=e++,n.f=!1;c=u.c.length,null==t.b||t.b.length<c?(t.b=O5(LMe,HKt,25,c,15,1),t.c=O5(AMe,JXt,25,c,16,1)):Jw(t.c),t.d=u,t.p=new IM(tet(t.d.c.length)),t.j=1}function zHt(t,e){var n,i,a,r,o,s,c,l,u;if(!(e.e.c.length<=1)){for(t.f=e,t.d=jz(yEt(t.f,(ixt(),boe)),379),t.g=jz(yEt(t.f,woe),19).a,t.e=Hw(_B(yEt(t.f,moe))),t.c=Hw(_B(yEt(t.f,poe))),iY(t.b),a=new Wf(t.f.c);a.a<a.c.c.length;)i=jz(J1(a),282),vFt(t.b,i.c,i,null),vFt(t.b,i.d,i,null);for(s=t.f.e.c.length,t.a=vU(LMe,[cZt,HKt],[104,25],15,[s,s],2),l=new Wf(t.f.e);l.a<l.c.c.length;)Szt(t,c=jz(J1(l),144),t.a[c.b]);for(t.i=vU(LMe,[cZt,HKt],[104,25],15,[s,s],2),r=0;r<s;++r)for(o=0;o<s;++o)u=1/((n=t.a[r][o])*n),t.i[r][o]=u}}function HHt(t){var e,n,i,a;if(!(null==t.b||t.b.length<=2||t.a)){for(e=0,a=0;a<t.b.length;){for(e!=a?(t.b[e]=t.b[a++],t.b[e+1]=t.b[a++]):a+=2,n=t.b[e+1];a<t.b.length&&!(n+1<t.b[a]);)if(n+1==t.b[a])t.b[e+1]=t.b[a+1],n=t.b[e+1],a+=2;else if(n>=t.b[a+1])a+=2;else{if(!(n<t.b[a+1]))throw $m(new fw("Token#compactRanges(): Internel Error: ["+t.b[e]+","+t.b[e+1]+"] ["+t.b[a]+","+t.b[a+1]+"]"));t.b[e+1]=t.b[a+1],n=t.b[e+1],a+=2}e+=2}e!=t.b.length&&(i=O5(TMe,lKt,25,e,15,1),rHt(t.b,0,i,0,e),t.b=i),t.a=!0}}function UHt(t,e){var n,i,a,r,o,s,c;for(o=gq(t.a).Kc();o.Ob();){if((r=jz(o.Pb(),17)).b.c.length>0)for(i=new QF(jz(c7(t.a,r),21)),kK(),mL(i,new Pg(e)),a=new _2(r.b,0);a.b<a.d.gc();){switch(EN(a.b<a.d.gc()),n=jz(a.d.Xb(a.c=a.b++),70),s=-1,jz(yEt(n,(zYt(),Zpe)),272).g){case 1:s=i.c.length-1;break;case 0:s=XRt(i);break;case 2:s=0}-1!=s&&(u1(s,i.c.length),Wz((c=jz(i.c[s],243)).b.b,n),jz(yEt(bG(c.b.c.i),(lGt(),Xde)),21).Fc((hBt(),ude)),jz(yEt(bG(c.b.c.i),Xde),21).Fc(cde),lG(a),lct(n,bhe,r))}kQ(r,null),_Q(r,null)}}function VHt(t,e){var n,i,a,r;return n=new Ft,1==(a=2==(a=(i=jz(E3(DZ(new NU(null,new h1(t.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Kne),Zne]))),21)).gc())?1:0)&&GA(dpt(jz(E3(AZ(i.Lc(),new jt),Yrt(xbt(0),new nt)),162).a,2),0)&&(a=0),1==(r=2==(r=(i=jz(E3(DZ(new NU(null,new h1(e.f,16)),n),O9(new K,new X,new at,new rt,Cst(Hx(Jne,1),IZt,132,0,[Kne,Zne]))),21)).gc())?1:0)&&GA(dpt(jz(E3(AZ(i.Lc(),new $t),Yrt(xbt(0),new nt)),162).a,2),0)&&(r=0),a<r?-1:a==r?0:1}function qHt(t){var e,n,i,a,r,o,s,c,l,u,d;if(c=new Lm,!IN(t,(lGt(),Wde)))return c;for(i=jz(yEt(t,Wde),15).Kc();i.Ob();)gUt(e=jz(i.Pb(),10),t),c.c[c.c.length]=e;for(a=new Wf(t.b);a.a<a.c.c.length;)for(o=new Wf(jz(J1(a),29).a);o.a<o.c.c.length;)(r=jz(J1(o),10)).k==(oCt(),kse)&&(s=jz(yEt(r,Yde),10))&&(CQ(l=new SCt,r),HTt(l,jz(yEt(r,Gde),61)),u=jz(OU(s.j,0),11),kQ(d=new hX,l),_Q(d,u));for(n=new Wf(c);n.a<n.c.c.length;)EQ(e=jz(J1(n),10),jz(OU(t.b,t.b.c.length-1),29));return c}function WHt(t){var e,n,i,a,r,o,s,c,l,u,d,h;for(r=zw(RB(JIt(e=WJ(t),(zYt(),hbe)))),u=0,a=0,l=new AO((!t.e&&(t.e=new cF(BDe,t,7,4)),t.e));l.e!=l.i.gc();)o=(s=ZAt(c=jz(wmt(l),79)))&&r&&zw(RB(JIt(c,fbe))),h=Ckt(jz(Yet((!c.c&&(c.c=new cF(NDe,c,5,8)),c.c),0),82)),s&&o?++a:s&&!o?++u:KJ(h)==e||h==e?++a:++u;for(i=new AO((!t.d&&(t.d=new cF(BDe,t,8,5)),t.d));i.e!=i.i.gc();)o=(s=ZAt(n=jz(wmt(i),79)))&&r&&zw(RB(JIt(n,fbe))),d=Ckt(jz(Yet((!n.b&&(n.b=new cF(NDe,n,4,7)),n.b),0),82)),s&&o?++u:s&&!o?++a:KJ(d)==e||d==e?++u:++a;return u-a}function YHt(t,e){var n,i,a,r,o,s,c,l,u;if(Akt(e,"Edge splitting",1),t.b.c.length<=2)zCt(e);else{for(EN((r=new _2(t.b,0)).b<r.d.gc()),o=jz(r.d.Xb(r.c=r.b++),29);r.b<r.d.gc();)for(a=o,EN(r.b<r.d.gc()),o=jz(r.d.Xb(r.c=r.b++),29),s=new Wf(a.a);s.a<s.c.c.length;)for(c=new Wf(jz(J1(s),10).j);c.a<c.c.c.length;)for(i=new Wf(jz(J1(c),11).g);i.a<i.c.c.length;)(l=(n=jz(J1(i),17)).d.i.c)!=a&&l!=o&&VNt(n,(Fh(u=new Iyt(t),(oCt(),Cse)),lct(u,(lGt(),fhe),n),lct(u,(zYt(),tme),(Z_t(),WTe)),EQ(u,o),u));zCt(e)}}function GHt(t,e){var n,i,a,r,o,s,c,l,u;if((o=null!=e.p&&!e.b)||Akt(e,rQt,1),r=1/(n=jz(yEt(t,(lGt(),_he)),15)).gc(),e.n)for(TH(e,"ELK Layered uses the following "+n.gc()+" modules:"),u=0,l=n.Kc();l.Ob();)TH(e," Slot "+(u<10?"0":"")+u+++": "+JR(tlt(jz(l.Pb(),51))));for(c=n.Kc();c.Ob();)jz(c.Pb(),51).pf(t,yrt(e,r));for(a=new Wf(t.b);a.a<a.c.c.length;)i=jz(J1(a),29),pst(t.a,i.a),i.a.c=O5(Dte,zGt,1,0,5,1);for(s=new Wf(t.a);s.a<s.c.c.length;)EQ(jz(J1(s),10),null);t.b.c=O5(Dte,zGt,1,0,5,1),o||zCt(e)}function ZHt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;a=Hw(_B(yEt(e,(zYt(),Mbe)))),h=4,r=3,R=20/(x=jz(yEt(e,Ome),19).a),f=!1,l=0,s=NGt;do{for(o=1!=l,d=0!=l,_=0,y=0,w=(b=t.a).length;y<w;++y)(g=b[y]).f=null,$qt(t,g,o,d,a),_+=i.Math.abs(g.a);do{c=qjt(t,e)}while(c);for(m=0,v=(p=t.a).length;m<v;++m)if(0!=(n=hW(g=p[m]).a))for(u=new Wf(g.e);u.a<u.c.c.length;)jz(J1(u),10).n.b+=n;0==l||1==l?--h<=0&&(_<s||-h>x)?(l=2,s=NGt):0==l?(l=1,s=_):(l=0,s=_):(f=_>=s||s-_<R,s=_,f&&--r)}while(!(f&&r<=0))}function KHt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g;for(g=new Om,r=t.a.ec().Kc();r.Ob();)YG(g,i=jz(r.Pb(),168),n.Je(i));for(yY(t),mL(o=t?new QF(t):$z(t.a.ec().Kc()),new xg(g)),s=k3(o),c=new CL(e),xTt((f=new Om).f,e,c);0!=s.a.gc();){for(l=null,u=null,d=null,a=s.a.ec().Kc();a.Ob();)if(i=jz(a.Pb(),168),Hw(_B(zA(AX(g.f,i))))<=BKt){if(cW(f,i.a)&&!cW(f,i.b)){u=i.b,d=i.a,l=i;break}if(cW(f,i.b)&&!cW(f,i.a)){u=i.a,d=i.b,l=i;break}}if(!l)break;h=new CL(u),Wz(jz(zA(AX(f.f,d)),221).a,h),xTt(f.f,u,h),s.a.Bc(l)}return c}function XHt(t,e,n){var i,a,r,o,s,c,l,u;for(Akt(n,"Depth-first cycle removal",1),c=(l=e.a).c.length,t.c=new Lm,t.d=O5(AMe,JXt,25,c,16,1),t.a=O5(AMe,JXt,25,c,16,1),t.b=new Lm,r=0,s=new Wf(l);s.a<s.c.c.length;)(o=jz(J1(s),10)).p=r,c4(uft(o))&&Wz(t.c,o),++r;for(u=new Wf(t.c);u.a<u.c.c.length;)USt(t,jz(J1(u),10));for(a=0;a<c;a++)t.d[a]||(u1(a,l.c.length),USt(t,jz(l.c[a],10)));for(i=new Wf(t.b);i.a<i.c.c.length;)tzt(jz(J1(i),17),!0),lct(e,(lGt(),zde),(cM(),!0));t.c=null,t.d=null,t.a=null,t.b=null,zCt(n)}function JHt(t,e){var n,i,a,r,o,s,c;for(t.a.c=O5(Dte,zGt,1,0,5,1),i=cmt(e.b,0);i.b!=i.d.c;)0==(n=jz(d4(i),86)).b.b&&(lct(n,(HUt(),fxe),(cM(),!0)),Wz(t.a,n));switch(t.a.c.length){case 0:lct(a=new alt(0,e,"DUMMY_ROOT"),(HUt(),fxe),(cM(),!0)),lct(a,txe,!0),MH(e.b,a);break;case 1:break;default:for(r=new alt(0,e,"SUPER_ROOT"),s=new Wf(t.a);s.a<s.c.c.length;)lct(c=new VK(r,o=jz(J1(s),86)),(HUt(),txe),(cM(),!0)),MH(r.a.a,c),MH(r.d,c),MH(o.b,c),lct(o,fxe,!1);lct(r,(HUt(),fxe),(cM(),!0)),lct(r,txe,!0),MH(e.b,r)}}function QHt(t,e){var n,a,r,o,s,c;return xBt(),o=e.c-(t.c+t.b),r=t.c-(e.c+e.b),s=t.d-(e.d+e.a),n=e.d-(t.d+t.a),a=i.Math.max(r,o),c=i.Math.max(s,n),cL(),iit(D4t),(i.Math.abs(a)<=D4t||0==a||isNaN(a)&&isNaN(0)?0:a<0?-1:a>0?1:UD(isNaN(a),isNaN(0)))>=0^(iit(D4t),(i.Math.abs(c)<=D4t||0==c||isNaN(c)&&isNaN(0)?0:c<0?-1:c>0?1:UD(isNaN(c),isNaN(0)))>=0)?i.Math.max(c,a):(iit(D4t),(i.Math.abs(a)<=D4t||0==a||isNaN(a)&&isNaN(0)?0:a<0?-1:a>0?1:UD(isNaN(a),isNaN(0)))>0?i.Math.sqrt(c*c+a*a):-i.Math.sqrt(c*c+a*a))}function tUt(t,e){var n,i,a,r,o;if(e){if(!t.a&&(t.a=new Py),2==t.e)return void Cy(t.a,e);if(1==e.e){for(a=0;a<e.em();a++)tUt(t,e.am(a));return}if(0==(o=t.a.a.c.length))return void Cy(t.a,e);if(0!=(r=jz(dG(t.a,o-1),117)).e&&10!=r.e||0!=e.e&&10!=e.e)return void Cy(t.a,e);0==e.e||e.bm().length,0==r.e?(n=new Ex,(i=r._l())>=$Kt?iD(n,Wht(i)):LY(n,i&ZZt),r=new bJ(10,null,0),vW(t.a,r,o-1)):(r.bm().length,iD(n=new Ex,r.bm())),0==e.e?(i=e._l())>=$Kt?iD(n,Wht(i)):LY(n,i&ZZt):iD(n,e.bm()),jz(r,521).b=n.a}}function eUt(t){var e,n,i,a,r;return null!=t.g?t.g:t.a<32?(t.g=NWt(uot(t.f),CJ(t.e)),t.g):(a=HYt((!t.c&&(t.c=vut(t.f)),t.c),0),0==t.e?a:(e=(!t.c&&(t.c=vut(t.f)),t.c).e<0?2:1,n=a.length,i=-t.e+n-e,(r=new Cx).a+=""+a,t.e>0&&i>=-6?i>=0?vQ(r,n-CJ(t.e),String.fromCharCode(46)):(r.a=lN(r.a,0,e-1)+"0."+JA(r.a,e-1),vQ(r,e+1,$pt(Uee,0,-CJ(i)-1))):(n-e>=1&&(vQ(r,e,String.fromCharCode(46)),++n),vQ(r,n,String.fromCharCode(69)),i>0&&vQ(r,++n,String.fromCharCode(43)),vQ(r,++n,""+bq(uot(i)))),t.g=r.a,t.g))}function nUt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;if(!n.dc()){for(o=0,u=0,h=jz((i=n.Kc()).Pb(),19).a;o<e.f;){if(o==h&&(u=0,h=i.Ob()?jz(i.Pb(),19).a:e.f+1),o!=u)for(f=jz(OU(t.b,o),29),d=jz(OU(t.b,u),29),l=new Wf(a0(f.a));l.a<l.c.c.length;)if(Zwt(c=jz(J1(l),10),d.a.c.length,d),0==u)for(r=new Wf(a0(uft(c)));r.a<r.c.c.length;)tzt(a=jz(J1(r),17),!0),lct(t,(lGt(),zde),(cM(),!0)),nVt(t,a,1);++u,++o}for(s=new _2(t.b,0);s.b<s.d.gc();)EN(s.b<s.d.gc()),0==jz(s.d.Xb(s.c=s.b++),29).a.c.length&&lG(s)}}function iUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(u=(o=e.b).o,c=o.d,i=Hw(_B(pmt(o,(zYt(),yme)))),a=Hw(_B(pmt(o,wme))),l=Hw(_B(pmt(o,Dme))),nH(s=new lv,c.d,c.c,c.a,c.b),h=kPt(e,i,a,l),m=new Wf(e.d);m.a<m.c.c.length;){for(g=(b=jz(J1(m),101)).f.a.ec().Kc();g.Ob();)r=(f=jz(g.Pb(),409)).a,d=Rkt(f),y=new vv,hkt(f,f.c,h,y),jEt(f,d,h,y),hkt(f,f.d,h,y),n=y,n=t.Uf(f,d,n),yK(r.a),jat(r.a,n),Kk(new NU(null,new h1(n,16)),new hS(u,s));(p=b.i)&&(rkt(b,p,h,a),bbt(u,s,v=new hI(p.g)),VP(v,p.j),bbt(u,s,v))}nH(c,s.d,s.c,s.a,s.b)}function aUt(t,e,n){var i,a,r;if((a=jz(yEt(e,(zYt(),Epe)),275))!=(XEt(),ade)){switch(1===(Akt(n,"Horizontal Compaction",1),t.a=e,Yx(i=new vDt(((r=new S9).d=e,r.c=jz(yEt(r.d,Xpe),218),qBt(r),EVt(r),cPt(r),r.a)),t.b),jz(yEt(e,kpe),422).g)?Wx(i,new pat(t.a)):Wx(i,(CK(),uie)),a.g){case 1:SLt(i);break;case 2:SLt(_qt(i,(jdt(),jSe)));break;case 3:SLt(Vx(_qt(SLt(i),(jdt(),jSe)),new ba));break;case 4:SLt(Vx(_qt(SLt(i),(jdt(),jSe)),new vp(r)));break;case 5:SLt(qx(i,hle))}_qt(i,(jdt(),FSe)),i.e=!0,Lqt(r),zCt(n)}}function rUt(t,e,n,i,a,r,o,s){var c,l,u,d;switch(c=r7(Cst(Hx(O_e,1),zGt,220,0,[e,n,i,a])),d=null,t.b.g){case 1:d=r7(Cst(Hx(KRe,1),zGt,526,0,[new Qo,new Xo,new Jo]));break;case 0:d=r7(Cst(Hx(KRe,1),zGt,526,0,[new Jo,new Xo,new Qo]));break;case 2:d=r7(Cst(Hx(KRe,1),zGt,526,0,[new Xo,new Qo,new Jo]))}for(u=new Wf(d);u.a<u.c.c.length;)l=jz(J1(u),526),c.c.length>1&&(c=l.mg(c,t.a,s));return 1==c.c.length?jz(OU(c,c.c.length-1),220):2==c.c.length?jHt((u1(0,c.c.length),jz(c.c[0],220)),(u1(1,c.c.length),jz(c.c[1],220)),o,r):null}function oUt(t){var e,n,a,r,o,s;for(Aet(t.a,new Qt),n=new Wf(t.a);n.a<n.c.c.length;)e=jz(J1(n),221),a=qP(jL(jz(t.b,65).c),jz(e.b,65).c),Kae?(s=jz(t.b,65).b,o=jz(e.b,65).b,i.Math.abs(a.a)>=i.Math.abs(a.b)?(a.b=0,o.d+o.a>s.d&&o.d<s.d+s.a&&LH(a,i.Math.max(s.c-(o.c+o.b),o.c-(s.c+s.b)))):(a.a=0,o.c+o.b>s.c&&o.c<s.c+s.b&&LH(a,i.Math.max(s.d-(o.d+o.a),o.d-(s.d+s.a))))):LH(a,_$t(jz(t.b,65),jz(e.b,65))),r=i.Math.sqrt(a.a*a.a+a.b*a.b),LH(a,r=z_t(Wae,e,r,a)),IV(jz(e.b,65),a),Aet(e.a,new Ag(a)),jz(Wae.b,65),B5(Wae,Yae,e)}function sUt(t){var e,n,a,r,o,s,c,l,d,h,f,g;for(t.f=new Fy,c=0,a=0,r=new Wf(t.e.b);r.a<r.c.c.length;)for(s=new Wf(jz(J1(r),29).a);s.a<s.c.c.length;){for((o=jz(J1(s),10)).p=c++,n=new oq(XO(dft(o).a.Kc(),new u));gIt(n);)jz(V6(n),17).p=a++;for(e=DHt(o),h=new Wf(o.j);h.a<h.c.c.length;)d=jz(J1(h),11),e&&(g=d.a.b)!=i.Math.floor(g)&&(l=g-w2(uot(i.Math.round(g))),d.a.b-=l),(f=d.n.b+d.a.b)!=i.Math.floor(f)&&(l=f-w2(uot(i.Math.round(f))),d.n.b-=l)}t.g=c,t.b=a,t.i=O5(Jve,zGt,401,c,0,1),t.c=O5(Kve,zGt,649,a,0,1),t.d.a.$b()}function cUt(t){var e,n,i,a,r,o,s,c,l;if(t.ej())if(c=t.fj(),t.i>0){if(e=new MA(t.i,t.g),r=(n=t.i)<100?null:new FR(n),t.ij())for(i=0;i<t.i;++i)o=t.g[i],r=t.kj(o,r);if(a7(t),a=1==n?t.Zi(4,Yet(e,0),null,0,c):t.Zi(6,e,null,-1,c),t.bj()){for(i=new aN(e);i.e!=i.i.gc();)r=t.dj(xmt(i),r);r?(r.Ei(a),r.Fi()):t.$i(a)}else r?(r.Ei(a),r.Fi()):t.$i(a)}else a7(t),t.$i(t.Zi(6,(kK(),cne),null,-1,c));else if(t.bj())if(t.i>0){for(s=t.g,l=t.i,a7(t),r=l<100?null:new FR(l),i=0;i<l;++i)o=s[i],r=t.dj(o,r);r&&r.Fi()}else a7(t);else a7(t)}function lUt(t,e,n){var a,r,o,s,c,l,u,d,h;for(Fot(this),n==(fJ(),Lwe)?RW(this.r,t):RW(this.w,t),d=BKt,u=PKt,s=e.a.ec().Kc();s.Ob();)r=jz(s.Pb(),46),c=jz(r.a,455),(l=(a=jz(r.b,17)).c)==t&&(l=a.d),RW(c==Lwe?this.r:this.w,l),h=(wWt(),vAe).Hc(l.j)?Hw(_B(yEt(l,(lGt(),Ihe)))):Dct(Cst(Hx(EEe,1),cZt,8,0,[l.i.n,l.n,l.a])).b,d=i.Math.min(d,h),u=i.Math.max(u,h);for(WEt(this,(wWt(),vAe).Hc(t.j)?Hw(_B(yEt(t,(lGt(),Ihe)))):Dct(Cst(Hx(EEe,1),cZt,8,0,[t.i.n,t.n,t.a])).b,d,u),o=e.a.ec().Kc();o.Ob();)r=jz(o.Pb(),46),tSt(this,jz(r.b,17));this.o=!1}function uUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;return n=8191&t.l,i=t.l>>13|(15&t.m)<<9,a=t.m>>4&8191,r=t.m>>17|(255&t.h)<<5,o=(1048320&t.h)>>8,b=i*(s=8191&e.l),m=a*s,y=r*s,v=o*s,0!=(c=e.l>>13|(15&e.m)<<9)&&(b+=n*c,m+=i*c,y+=a*c,v+=r*c),0!=(l=e.m>>4&8191)&&(m+=n*l,y+=i*l,v+=a*l),0!=(u=e.m>>17|(255&e.h)<<5)&&(y+=n*u,v+=i*u),0!=(d=(1048320&e.h)>>8)&&(v+=n*d),f=((p=n*s)>>22)+(b>>9)+((262143&m)<<4)+((31&y)<<17),g=(m>>18)+(y>>5)+((4095&v)<<8),g+=(f+=(h=(p&EKt)+((511&b)<<13))>>22)>>22,_L(h&=EKt,f&=EKt,g&=CKt)}function dUt(t){var e,n,a,r,o,s,c;if(0!=(c=jz(OU(t.j,0),11)).g.c.length&&0!=c.e.c.length)throw $m(new Fw("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(0!=c.g.c.length){for(o=BKt,n=new Wf(c.g);n.a<n.c.c.length;)e=jz(J1(n),17),a=jz(yEt(s=e.d.i,(zYt(),Cbe)),142),o=i.Math.min(o,s.n.a-a.b);return new $d(yY(o))}if(0!=c.e.c.length){for(r=PKt,n=new Wf(c.e);n.a<n.c.c.length;)e=jz(J1(n),17),a=jz(yEt(s=e.c.i,(zYt(),Cbe)),142),r=i.Math.max(r,s.n.a+s.o.a+a.c);return new $d(yY(r))}return ew(),ew(),Ate}function hUt(t,e){var n,i,a,r,o,s;if(t.Fk()){if(t.i>4){if(!t.wj(e))return!1;if(t.rk()){if(s=(n=(i=jz(e,49)).Ug())==t.e&&(t.Dk()?i.Og(i.Vg(),t.zk())==t.Ak():-1-i.Vg()==t.aj()),t.Ek()&&!s&&!n&&i.Zg())for(a=0;a<t.i;++a)if(HA(t.Gk(jz(t.g[a],56)))===HA(e))return!0;return s}if(t.Dk()&&!t.Ck()){if(HA(r=jz(e,56).ah(Syt(jz(t.ak(),18))))===HA(t.e))return!0;if(null==r||!jz(r,56).kh())return!1}}if(o=ERt(t,e),t.Ek()&&!o)for(a=0;a<t.i;++a)if(HA(i=t.Gk(jz(t.g[a],56)))===HA(e))return!0;return o}return ERt(t,e)}function fUt(t,e){var n,i,a,r,o,s,c,l,u,d,h;for(u=new Lm,h=new Ny,o=e.b,a=0;a<o.c.length;a++){for(l=(u1(a,o.c.length),jz(o.c[a],29)).a,u.c=O5(Dte,zGt,1,0,5,1),r=0;r<l.c.length;r++)(s=t.a[a][r]).p=r,s.k==(oCt(),Tse)&&(u.c[u.c.length]=s),i6(jz(OU(e.b,a),29).a,r,s),s.j.c=O5(Dte,zGt,1,0,5,1),pst(s.j,jz(jz(OU(t.b,a),15).Xb(r),14)),IF(jz(yEt(s,(zYt(),tme)),98))||lct(s,tme,(Z_t(),qTe));for(i=new Wf(u);i.a<i.c.c.length;)d=ZPt(n=jz(J1(i),10)),h.a.zc(d,h),h.a.zc(n,h)}for(c=h.a.ec().Kc();c.Ob();)s=jz(c.Pb(),10),kK(),mL(s.j,(Vlt(),sle)),s.i=!0,eAt(s)}function gUt(t,e){var n,i,a,r,o,s,c,l,u,d;if(u=jz(yEt(t,(lGt(),Gde)),61),i=jz(OU(t.j,0),11),u==(wWt(),cAe)?HTt(i,EAe):u==EAe&&HTt(i,cAe),jz(yEt(e,(zYt(),Fbe)),174).Hc((ypt(),FAe))){if(c=Hw(_B(yEt(t,Cme))),l=Hw(_B(yEt(t,Sme))),o=Hw(_B(yEt(t,kme))),(s=jz(yEt(e,ime),21)).Hc((dAt(),eAe)))for(n=l,d=t.o.a/2-i.n.a,r=new Wf(i.f);r.a<r.c.c.length;)(a=jz(J1(r),70)).n.b=n,a.n.a=d-a.o.a/2,n+=a.o.b+o;else if(s.Hc(iAe))for(r=new Wf(i.f);r.a<r.c.c.length;)(a=jz(J1(r),70)).n.a=c+t.o.a-i.n.a;l0(new Eg((gE(),new $Z(e,!1,!1,new je))),new Pj(null,t,!1))}}function pUt(t,e){var n,a,r,o,s,c,l;if(0!=e.c.length){for(kK(),yV(e.c,e.c.length,null),a=jz(J1(r=new Wf(e)),145);r.a<r.c.c.length;)n=jz(J1(r),145),!rnt(a.e.c,n.e.c)||Ppt(jB(a.e).b,n.e.d)||Ppt(jB(n.e).b,a.e.d)?(e$t(t,a),a=n):(pst(a.k,n.k),pst(a.b,n.b),pst(a.c,n.c),jat(a.i,n.i),pst(a.d,n.d),pst(a.j,n.j),o=i.Math.min(a.e.c,n.e.c),s=i.Math.min(a.e.d,n.e.d),c=i.Math.max(a.e.c+a.e.b,n.e.c+n.e.b)-o,l=i.Math.max(a.e.d+a.e.a,n.e.d+n.e.a)-s,OH(a.e,o,s,c,l),Q1(a.f,n.f),!a.a&&(a.a=n.a),pst(a.g,n.g),Wz(a.g,n));e$t(t,a)}}function bUt(t,e,n,i){var a,r,o,s,c,l;if((s=t.j)==(wWt(),CAe)&&e!=(Z_t(),ZTe)&&e!=(Z_t(),KTe)&&(HTt(t,s=Vjt(t,n)),!(t.q?t.q:(kK(),kK(),lne))._b((zYt(),Qbe))&&s!=CAe&&(0!=t.n.a||0!=t.n.b)&&lct(t,Qbe,xxt(t,s))),e==(Z_t(),YTe)){switch(l=0,s.g){case 1:case 3:(r=t.i.o.a)>0&&(l=t.n.a/r);break;case 2:case 4:(a=t.i.o.b)>0&&(l=t.n.b/a)}lct(t,(lGt(),Rhe),l)}if(c=t.o,o=t.a,i)o.a=i.a,o.b=i.b,t.d=!0;else if(e!=ZTe&&e!=KTe&&s!=CAe)switch(s.g){case 1:o.a=c.a/2;break;case 2:o.a=c.a,o.b=c.b/2;break;case 3:o.a=c.a/2,o.b=c.b;break;case 4:o.b=c.b/2}else o.a=c.a/2,o.b=c.b/2}function mUt(t){var e,n,i,a,r,o,s,c,l,u;if(t.ej())if(u=t.Vi(),c=t.fj(),u>0)if(e=new xrt(t.Gi()),r=(n=u)<100?null:new FR(n),KB(t,n,e.g),a=1==n?t.Zi(4,Yet(e,0),null,0,c):t.Zi(6,e,null,-1,c),t.bj()){for(i=new AO(e);i.e!=i.i.gc();)r=t.dj(wmt(i),r);r?(r.Ei(a),r.Fi()):t.$i(a)}else r?(r.Ei(a),r.Fi()):t.$i(a);else KB(t,t.Vi(),t.Wi()),t.$i(t.Zi(6,(kK(),cne),null,-1,c));else if(t.bj())if((u=t.Vi())>0){for(s=t.Wi(),l=u,KB(t,u,s),r=l<100?null:new FR(l),i=0;i<l;++i)o=s[i],r=t.dj(o,r);r&&r.Fi()}else KB(t,t.Vi(),t.Wi());else KB(t,t.Vi(),t.Wi())}function yUt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;for(s=new Wf(e);s.a<s.c.c.length;)(r=jz(J1(s),233)).e=null,r.c=0;for(c=null,o=new Wf(e);o.a<o.c.c.length;)if(d=(r=jz(J1(o),233)).d[0],!n||d.k==(oCt(),Sse)){for(f=jz(yEt(d,(lGt(),ihe)),15).Kc();f.Ob();)h=jz(f.Pb(),10),(!n||h.k==(oCt(),Sse))&&((!r.e&&(r.e=new Lm),r.e).Fc(t.b[h.c.p][h.p]),++t.b[h.c.p][h.p].c);if(!n&&d.k==(oCt(),Sse)){if(c)for(u=jz(c7(t.d,c),21).Kc();u.Ob();)for(l=jz(u.Pb(),10),a=jz(c7(t.d,d),21).Kc();a.Ob();)i=jz(a.Pb(),10),Vz(t.b[l.c.p][l.p]).Fc(t.b[i.c.p][i.p]),++t.b[i.c.p][i.p].c;c=d}}}function vUt(t,e){var n,i,a,r,o,s,c;for(n=0,c=new Lm,r=new Wf(e);r.a<r.c.c.length;){switch(a=jz(J1(r),11),Qlt(t.b,t.d[a.p]),c.c=O5(Dte,zGt,1,0,5,1),a.i.k.g){case 0:Aet(jz(yEt(a,(lGt(),xhe)),10).j,new Xp(c));break;case 1:kL(Zct(AZ(new NU(null,new h1(a.i.j,16)),new Jp(a))),new Qp(c));break;case 3:Wz(c,new nA(jz(yEt(a,(lGt(),fhe)),11),nht(a.e.c.length+a.g.c.length)))}for(s=new Wf(c);s.a<s.c.c.length;)o=jz(J1(s),46),(i=__(t,jz(o.a,11)))>t.d[a.p]&&(n+=J3(t.b,i)*jz(o.b,19).a,f4(t.a,nht(i)));for(;!Ww(t.a);)_tt(t.b,jz(fW(t.a),19).a)}return n}function wUt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g;for((d=new hI(jz(JIt(t,(EEt(),$Ee)),8))).a=i.Math.max(d.a-n.b-n.c,0),d.b=i.Math.max(d.b-n.d-n.a,0),(null==(r=_B(JIt(t,MEe)))||(vG(r),r<=0))&&(r=1.3),s=new Lm,h=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));h.e!=h.i.gc();)o=new UN(jz(wmt(h),33)),s.c[s.c.length]=o;switch(jz(JIt(t,NEe),311).g){case 3:g=r$t(s,e,d.a,d.b,(l=a,vG(r),l));break;case 1:g=mzt(s,e,d.a,d.b,(u=a,vG(r),u));break;default:g=kUt(s,e,d.a,d.b,(c=a,vG(r),c))}PWt(t,(f=vYt(new Uet(g),e,n,d.a,d.b,a,(vG(r),r))).a,f.b,!1,!0)}function xUt(t,e){var n,i,a,r;r=new QF((n=e.b).j),a=0,(i=n.j).c=O5(Dte,zGt,1,0,5,1),tY(jz(pot(t.b,(wWt(),cAe),(Sat(),Ble)),15),n),a=Xvt(r,a,new Na,i),tY(jz(pot(t.b,cAe,Nle),15),n),a=Xvt(r,a,new Ma,i),tY(jz(pot(t.b,cAe,Mle),15),n),tY(jz(pot(t.b,sAe,Ble),15),n),tY(jz(pot(t.b,sAe,Nle),15),n),a=Xvt(r,a,new Ba,i),tY(jz(pot(t.b,sAe,Mle),15),n),tY(jz(pot(t.b,EAe,Ble),15),n),a=Xvt(r,a,new Pa,i),tY(jz(pot(t.b,EAe,Nle),15),n),a=Xvt(r,a,new Fa,i),tY(jz(pot(t.b,EAe,Mle),15),n),tY(jz(pot(t.b,SAe,Ble),15),n),a=Xvt(r,a,new Ka,i),tY(jz(pot(t.b,SAe,Nle),15),n),tY(jz(pot(t.b,SAe,Mle),15),n)}function RUt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b;for(Akt(e,"Layer size calculation",1),d=BKt,u=PKt,r=!1,c=new Wf(t.b);c.a<c.c.c.length;)if((l=(s=jz(J1(c),29)).c).a=0,l.b=0,0!=s.a.c.length){for(r=!0,f=new Wf(s.a);f.a<f.c.c.length;)p=(h=jz(J1(f),10)).o,g=h.d,l.a=i.Math.max(l.a,p.a+g.b+g.c);b=(a=jz(OU(s.a,0),10)).n.b-a.d.d,a.k==(oCt(),kse)&&(b-=jz(yEt(t,(zYt(),Ime)),142).d),n=(o=jz(OU(s.a,s.a.c.length-1),10)).n.b+o.o.b+o.d.a,o.k==kse&&(n+=jz(yEt(t,(zYt(),Ime)),142).a),l.b=n-b,d=i.Math.min(d,b),u=i.Math.max(u,n)}r||(d=0,u=0),t.f.b=u-d,t.c.b-=d,zCt(e)}function _Ut(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m;for(r=0,o=0,l=new Wf(t.a);l.a<l.c.c.length;)s=jz(J1(l),10),r=i.Math.max(r,s.d.b),o=i.Math.max(o,s.d.c);for(c=new Wf(t.a);c.a<c.c.c.length;){switch(s=jz(J1(c),10),jz(yEt(s,(zYt(),vpe)),248).g){case 1:g=0;break;case 2:g=1;break;case 5:g=.5;break;default:for(n=0,d=0,f=new Wf(s.j);f.a<f.c.c.length;)0==(h=jz(J1(f),11)).e.c.length||++n,0==h.g.c.length||++d;g=n+d==0?.5:d/(n+d)}b=t.c,u=s.o.a,m=(b.a-u)*g,g>.5?m-=2*o*(g-.5):g<.5&&(m+=2*r*(.5-g)),m<(a=s.d.b)&&(m=a),p=s.d.c,m>b.a-p-u&&(m=b.a-p-u),s.n.a=e+m}}function kUt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f;for(s=O5(LMe,HKt,25,t.c.length,15,1),nxt(h=new qq(new Ys),t),l=0,f=new Lm;0!=h.b.c.length;)if(o=jz(0==h.b.c.length?null:OU(h.b,0),157),l>1&&eV(o)*tV(o)/2>s[0]){for(r=0;r<f.c.length-1&&eV(o)*tV(o)/2>s[r];)++r;d=new Uet(new s1(f,0,r+1)),u=eV(o)/tV(o),c=vYt(d,e,new dv,n,i,a,u),VP(vD(d.e),c),F5(eEt(h,d)),nxt(h,new s1(f,r+1,f.c.length)),f.c=O5(Dte,zGt,1,0,5,1),l=0,wV(s,s.length,0)}else null!=(0==h.b.c.length?null:OU(h.b,0))&&lat(h,0),l>0&&(s[l]=s[l-1]),s[l]+=eV(o)*tV(o),++l,f.c[f.c.length]=o;return f}function EUt(t){var e,n,i;if((n=jz(yEt(t,(zYt(),vbe)),163))==(_ft(),jhe)){for(e=new oq(XO(uft(t).a.Kc(),new u));gIt(e);)if(!q6(jz(V6(e),17)))throw $m(new nx(C1t+pwt(t)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(n==zhe)for(i=new oq(XO(dft(t).a.Kc(),new u));gIt(i);)if(!q6(jz(V6(i),17)))throw $m(new nx(C1t+pwt(t)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}function CUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f;for(Akt(e,"Label dummy removal",1),i=Hw(_B(yEt(t,(zYt(),wme)))),a=Hw(_B(yEt(t,kme))),c=jz(yEt(t,Vpe),103),s=new Wf(t.b);s.a<s.c.c.length;)for(u=new _2(jz(J1(s),29).a,0);u.b<u.d.gc();)EN(u.b<u.d.gc()),(l=jz(u.d.Xb(u.c=u.b++),10)).k==(oCt(),Ese)&&(d=jz(yEt(l,(lGt(),fhe)),17),f=Hw(_B(yEt(d,abe))),o=HA(yEt(l,rhe))===HA((Wwt(),RTe)),n=new hI(l.n),o&&(n.b+=f+i),r=new OT(l.o.a,l.o.b-f-i),h=jz(yEt(l,Ehe),15),c==(jdt(),zSe)||c==PSe?DBt(h,n,a,r,o,c):Hut(h,n,a,r),pst(d.b,h),iVt(l,HA(yEt(t,Xpe))===HA((kft(),KSe))),lG(u));zCt(e)}function SUt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w;for(s=new Lm,a=new Wf(e.a);a.a<a.c.c.length;)for(o=new Wf(jz(J1(a),10).j);o.a<o.c.c.length;){for(l=null,v=0,w=(y=X0((r=jz(J1(o),11)).g)).length;v<w;++v)fot((m=y[v]).d.i,n)||((b=LHt(t,e,n,m,m.c,(rit(),Hye),l))!=l&&(s.c[s.c.length]=b),b.c&&(l=b));for(c=null,g=0,p=(f=X0(r.e)).length;g<p;++g)fot((h=f[g]).c.i,n)||((b=LHt(t,e,n,h,h.d,(rit(),zye),c))!=c&&(s.c[s.c.length]=b),b.c&&(c=b))}for(d=new Wf(s);d.a<d.c.c.length;)u=jz(J1(d),441),-1!=x9(e.a,u.a,0)||Wz(e.a,u.a),u.c&&(i.c[i.c.length]=u)}function TUt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g;for(Akt(n,"Interactive cycle breaking",1),u=new Lm,h=new Wf(e.a);h.a<h.c.c.length;)for((d=jz(J1(h),10)).p=1,f=jRt(d).a,l=Mgt(d,(rit(),Hye)).Kc();l.Ob();)for(r=new Wf(jz(l.Pb(),11).g);r.a<r.c.c.length;)(g=(i=jz(J1(r),17)).d.i)!=d&&jRt(g).a<f&&(u.c[u.c.length]=i);for(o=new Wf(u);o.a<o.c.c.length;)tzt(i=jz(J1(o),17),!0);for(u.c=O5(Dte,zGt,1,0,5,1),c=new Wf(e.a);c.a<c.c.c.length;)(s=jz(J1(c),10)).p>0&&dSt(t,s,u);for(a=new Wf(u);a.a<a.c.c.length;)tzt(i=jz(J1(a),17),!0);u.c=O5(Dte,zGt,1,0,5,1),zCt(n)}function AUt(t,e){var n,i,a,r,o,s,c,l,u;return l="",0==e.length?t.de(WZt,VZt,-1,-1):(mF((u=BEt(e)).substr(0,3),"at ")&&(u=u.substr(3)),-1==(o=(u=u.replace(/\[.*?\]/g,"")).indexOf("("))?-1==(o=u.indexOf("@"))?(l=u,u=""):(l=BEt(u.substr(o+1)),u=BEt(u.substr(0,o))):(n=u.indexOf(")",o),l=u.substr(o+1,n-(o+1)),u=BEt(u.substr(0,o))),-1!=(o=HD(u,Kkt(46)))&&(u=u.substr(o+1)),(0==u.length||mF(u,"Anonymous function"))&&(u=VZt),s=mM(l,Kkt(58)),a=_F(l,Kkt(58),s-1),c=-1,i=-1,r=WZt,-1!=s&&-1!=a&&(r=l.substr(0,a),c=cN(l.substr(a+1,s-(a+1))),i=cN(l.substr(s+1))),t.de(r,u,c,i))}function DUt(t,e,n){var i,a,r,o,s,c;if(0==e.l&&0==e.m&&0==e.h)throw $m(new Tw("divide by zero"));if(0==t.l&&0==t.m&&0==t.h)return n&&(dee=_L(0,0,0)),_L(0,0,0);if(e.h==SKt&&0==e.m&&0==e.l)return jft(t,n);if(c=!1,e.h>>19&&(e=rct(e),c=!c),o=AOt(e),r=!1,a=!1,i=!1,t.h==SKt&&0==t.m&&0==t.l){if(a=!0,r=!0,-1!=o)return s=xIt(t,o),c&&Act(s),n&&(dee=_L(0,0,0)),s;t=WD((q9(),hee)),i=!0,c=!c}else t.h>>19&&(r=!0,t=rct(t),i=!0,c=!c);return-1!=o?$ct(t,o,c,r,n):Pxt(t,e)<0?(n&&(dee=r?rct(t):_L(t.l,t.m,t.h)),_L(0,0,0)):ljt(i?t:_L(t.l,t.m,t.h),e,c,r,a,n)}function IUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g;if(t.e&&t.c.c<t.f)throw $m(new Fw("Expected "+t.f+" phases to be configured; only found "+t.c.c));for(u=jz(YR(t.g),9),f=sN(t.f),s=0,l=(r=u).length;s<l;++s)(d=jz(M9(t,(i=r[s]).g),246))?Wz(f,jz(sgt(t,d),123)):f.c[f.c.length]=null;for(g=new j2,Kk(AZ(DZ(AZ(new NU(null,new h1(f,16)),new ds),new xb(e)),new hs),new Rb(g)),Xrt(g,t.a),n=new Lm,o=0,c=(a=u).length;o<c;++o)pst(n,Rst(t,KK(jz(M9(g,(i=a[o]).g),20)))),(h=jz(OU(f,i.g),123))&&(n.c[n.c.length]=h);return pst(n,Rst(t,KK(jz(M9(g,u[u.length-1].g+1),20)))),n}function LUt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g;for(Akt(n,"Model order cycle breaking",1),t.a=0,t.b=0,h=new Lm,u=e.a.c.length,l=new Wf(e.a);l.a<l.c.c.length;)IN(c=jz(J1(l),10),(lGt(),hhe))&&(u=i.Math.max(u,jz(yEt(c,hhe),19).a+1));for(g=new Wf(e.a);g.a<g.c.c.length;)for(s=VSt(t,f=jz(J1(g),10),u),d=Mgt(f,(rit(),Hye)).Kc();d.Ob();)for(o=new Wf(jz(d.Pb(),11).g);o.a<o.c.c.length;)VSt(t,(a=jz(J1(o),17)).d.i,u)<s&&(h.c[h.c.length]=a);for(r=new Wf(h);r.a<r.c.c.length;)tzt(a=jz(J1(r),17),!0),lct(e,(lGt(),zde),(cM(),!0));h.c=O5(Dte,zGt,1,0,5,1),zCt(n)}function OUt(t,e){var n,i,a,r,o,s,c;if(!(t.g>e.f||e.g>t.f)){for(n=0,i=0,o=t.w.a.ec().Kc();o.Ob();)a=jz(o.Pb(),11),but(Dct(Cst(Hx(EEe,1),cZt,8,0,[a.i.n,a.n,a.a])).b,e.g,e.f)&&++n;for(s=t.r.a.ec().Kc();s.Ob();)a=jz(s.Pb(),11),but(Dct(Cst(Hx(EEe,1),cZt,8,0,[a.i.n,a.n,a.a])).b,e.g,e.f)&&--n;for(c=e.w.a.ec().Kc();c.Ob();)a=jz(c.Pb(),11),but(Dct(Cst(Hx(EEe,1),cZt,8,0,[a.i.n,a.n,a.a])).b,t.g,t.f)&&++i;for(r=e.r.a.ec().Kc();r.Ob();)a=jz(r.Pb(),11),but(Dct(Cst(Hx(EEe,1),cZt,8,0,[a.i.n,a.n,a.a])).b,t.g,t.f)&&--i;n<i?new k7(t,e,i-n):i<n?new k7(e,t,n-i):(new k7(e,t,0),new k7(t,e,0))}}function MUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(l=e.c,a=GI(t.e),d=vO(jN(jL(YI(t.e)),t.d*t.a,t.c*t.b),-.5),n=a.a-d.a,i=a.b-d.b,n=(o=e.a).c-n,i=o.d-i,c=new Wf(l);c.a<c.c.c.length;){switch(f=n+(h=(s=jz(J1(c),395)).b).a,b=i+h.b,g=CJ(f/t.a),m=CJ(b/t.b),(r=s.a).g){case 0:zmt(),u=$ae;break;case 1:zmt(),u=jae;break;case 2:zmt(),u=zae;break;default:zmt(),u=Hae}r.a?(y=CJ((b+s.c)/t.b),Wz(t.f,new Oj(u,nht(m),nht(y))),r==(Hmt(),tre)?fct(t,0,m,g,y):fct(t,g,m,t.d-1,y)):(p=CJ((f+s.c)/t.a),Wz(t.f,new Oj(u,nht(g),nht(p))),r==(Hmt(),Jae)?fct(t,g,0,p,m):fct(t,g,m,p,t.c-1))}}function NUt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w;for(h=new Lm,r=new Lm,p=null,s=e.Kc();s.Ob();)o=new $p(jz(s.Pb(),19).a),r.c[r.c.length]=o,p&&(o.d=p,p.e=o),p=o;for(v=V$t(t),u=0;u<r.c.length;++u){for(f=null,b=M7((u1(0,r.c.length),jz(r.c[0],652))),n=null,a=BKt,d=1;d<t.b.c.length;++d)m=b?i.Math.abs(b.b-d):i.Math.abs(d-f.b)+1,(g=f?i.Math.abs(d-f.b):m+1)<m?(l=f,c=g):(l=b,c=m),w=Hw(_B(yEt(t,(zYt(),$me)))),(y=v[d]+i.Math.pow(c,w))<a&&(a=y,(n=l).c=d),b&&d==b.b&&(f=b,b=Oq(b));n&&(Wz(h,nht(n.c)),n.a=!0,mht(n))}return kK(),yV(h.c,h.c.length,null),h}function BUt(t){var e,n,i,a,r,o,s,c,l,u;for(e=new kc,n=new kc,l=mF(P8t,(a=Ojt(t.b,F8t))?kB(apt((!a.b&&(a.b=new KN((pGt(),yLe),VLe,a)),a.b),j8t)):null),c=0;c<t.i;++c)iO(s=jz(t.g[c],170),99)?(o=jz(s,18)).Bb&l7t?(!(o.Bb&lZt)||!l&&null==((r=Ojt(o,F8t))?kB(apt((!r.b&&(r.b=new KN((pGt(),yLe),VLe,r)),r.b),Q7t)):null))&&l8(e,o):(u=Syt(o))&&u.Bb&l7t||(!(o.Bb&lZt)||!l&&null==((i=Ojt(o,F8t))?kB(apt((!i.b&&(i.b=new KN((pGt(),yLe),VLe,i)),i.b),Q7t)):null))&&l8(n,o):(XE(),jz(s,66).Oj()&&(s.Jj()||(l8(e,s),l8(n,s))));aut(e),aut(n),t.a=jz(e.g,247),jz(n.g,247)}function PUt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;for(c=MCt(e),jz(yEt(e,(zYt(),zpe)),314)!=(Ait(),lue)&&t6(c,new me),t6(c,new Mg(jz(yEt(e,Npe),292))),f=0,l=new Lm,a=new dZ(c);a.a!=a.b;)i=jz(Fut(a),37),IVt(t.c,i),f+=(d=jz(yEt(i,(lGt(),_he)),15)).gc(),Wz(l,new nA(i,d.Kc()));for(Akt(n,"Recursive hierarchical layout",f),h=jz(jz(OU(l,l.c.length-1),46).b,47);h.Ob();)for(s=new Wf(l);s.a<s.c.c.length;)for(o=jz(J1(s),46),d=jz(o.b,47),r=jz(o.a,37);d.Ob();){if(iO(u=jz(d.Pb(),51),507)){if(r.e)break;u.pf(r,yrt(n,1));break}u.pf(r,yrt(n,1))}zCt(n)}function FUt(t,e){var n,i,a,r,o,s,c,l;if(d1(s=e.length-1,e.length),93==(o=e.charCodeAt(s))){if((r=HD(e,Kkt(91)))>=0)return a=gft(t,e.substr(1,r-1)),KWt(t,e.substr(r+1,s-(r+1)),a)}else{if(n=-1,null==_ee&&(_ee=new RegExp("\\d")),_ee.test(String.fromCharCode(o))&&(n=_F(e,Kkt(46),s-1))>=0){i=jz(Y6(t,Cet(t,e.substr(1,n-1)),!1),58),c=0;try{c=djt(e.substr(n+1),FZt,NGt)}catch(u){throw iO(u=dst(u),127)?$m(new I9(u)):$m(u)}if(c<i.gc())return iO(l=i.Xb(c),72)&&(l=jz(l,72).dd()),jz(l,56)}if(n<0)return jz(Y6(t,Cet(t,e.substr(1)),!1),56)}return null}function jUt(t,e,n){var i,a,r,o,s,c,l;if(Dgt(e,n)>=0)return n;switch(MG(j9(t,n))){case 2:if(mF("",Sdt(t,n.Hj()).ne())){if(c=yLt(t,e,s=wZ(j9(t,n)),vZ(j9(t,n))))return c;for(o=0,l=(a=xFt(t,e)).gc();o<l;++o)if(rMt(TW(j9(t,c=jz(a.Xb(o),170))),s))return c}return null;case 4:if(mF("",Sdt(t,n.Hj()).ne())){for(i=n;i;i=K1(j9(t,i)))if(c=vLt(t,e,wZ(j9(t,i)),vZ(j9(t,i))))return c;if(s=wZ(j9(t,n)),mF(E9t,s))return yRt(t,e);for(o=0,l=(r=RFt(t,e)).gc();o<l;++o)if(rMt(TW(j9(t,c=jz(r.Xb(o),170))),s))return c}return null;default:return null}}function $Ut(t,e,n){var i,a,r,o,s,c,l,u;if(0==n.gc())return!1;if(XE(),r=(s=jz(e,66).Oj())?n:new pet(n.gc()),INt(t.e,e)){if(e.hi())for(l=n.Kc();l.Ob();)q$t(t,e,c=l.Pb(),iO(e,99)&&0!=(jz(e,18).Bb&$Kt))||(a=X4(e,c),r.Hc(a)||r.Fc(a));else if(!s)for(l=n.Kc();l.Ob();)a=X4(e,c=l.Pb()),r.Fc(a)}else{if(n.gc()>1)throw $m(new Pw(T9t));for(u=rNt(t.e.Tg(),e),i=jz(t.g,119),o=0;o<t.i;++o)if(a=i[o],u.rl(a.ak())){if(n.Hc(s?a:a.dd()))return!1;for(l=n.Kc();l.Ob();)c=l.Pb(),jz(syt(t,o,s?jz(c,72):X4(e,c)),72);return!0}s||(a=X4(e,n.Kc().Pb()),r.Fc(a))}return pY(t,r)}function zUt(t,e){var n,a,r,o,s,c,l;for(l=new Zk,c=new Bf(new Tf(t.c).a.vc().Kc());c.a.Ob();)r=jz(c.a.Pb(),42),0==(o=jz(r.dd(),458)).b&&n6(l,o,l.c.b,l.c);for(;0!=l.b;)for(null==(o=jz(0==l.b?null:(EN(0!=l.b),Det(l,l.a.a)),458)).a&&(o.a=0),a=new Wf(o.d);a.a<a.c.c.length;)null==(n=jz(J1(a),654)).b.a?n.b.a=Hw(o.a)+n.a:e.o==(oQ(),iwe)?n.b.a=i.Math.min(Hw(n.b.a),Hw(o.a)+n.a):n.b.a=i.Math.max(Hw(n.b.a),Hw(o.a)+n.a),--n.b.b,0==n.b.b&&MH(l,n.b);for(s=new Bf(new Tf(t.c).a.vc().Kc());s.a.Ob();)r=jz(s.a.Pb(),42),o=jz(r.dd(),458),e.i[o.c.p]=o.a}function HUt(){HUt=D,sxe=new rm(AQt),new eP("DEPTH",nht(0)),exe=new eP("FAN",nht(0)),Qwe=new eP(q4t,nht(0)),fxe=new eP("ROOT",(cM(),!1)),ixe=new eP("LEFTNEIGHBOR",null),dxe=new eP("RIGHTNEIGHBOR",null),axe=new eP("LEFTSIBLING",null),hxe=new eP("RIGHTSIBLING",null),txe=new eP("DUMMY",!1),new eP("LEVEL",nht(0)),uxe=new eP("REMOVABLE_EDGES",new Zk),gxe=new eP("XCOOR",nht(0)),pxe=new eP("YCOOR",nht(0)),rxe=new eP("LEVELHEIGHT",0),nxe=new eP("ID",""),cxe=new eP("POSITION",nht(0)),lxe=new eP("PRELIM",0),oxe=new eP("MODIFIER",0),Jwe=new rm(IQt),Xwe=new rm(LQt)}function UUt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g;for(d=n+e.c.c.a,g=new Wf(e.j);g.a<g.c.c.length;){if(f=jz(J1(g),11),r=Dct(Cst(Hx(EEe,1),cZt,8,0,[f.i.n,f.n,f.a])),e.k==(oCt(),Tse)&&(c=jz(yEt(f,(lGt(),fhe)),11),r.a=Dct(Cst(Hx(EEe,1),cZt,8,0,[c.i.n,c.n,c.a])).a,e.n.a=r.a),s=new OT(0,r.b),f.j==(wWt(),sAe))s.a=d;else{if(f.j!=SAe)continue;s.a=n}if(!(i.Math.abs(r.a-s.a)<=a)||Oxt(e))for(o=f.g.c.length+f.e.c.length>1,u=new m7(f.b);yL(u.a)||yL(u.b);)h=(l=jz(yL(u.a)?J1(u.a):J1(u.b),17)).c==f?l.d:l.c,i.Math.abs(Dct(Cst(Hx(EEe,1),cZt,8,0,[h.i.n,h.n,h.a])).b-s.b)>1&&bNt(t,l,s,o,f)}}function VUt(t){var e,n,a,r,o,s;if(r=new _2(t.e,0),a=new _2(t.a,0),t.d)for(n=0;n<t.b;n++)EN(r.b<r.d.gc()),r.d.Xb(r.c=r.b++);else for(n=0;n<t.b-1;n++)EN(r.b<r.d.gc()),r.d.Xb(r.c=r.b++),lG(r);for(e=Hw((EN(r.b<r.d.gc()),_B(r.d.Xb(r.c=r.b++))));t.f-e>N4t;){for(o=e,s=0;i.Math.abs(e-o)<N4t;)++s,e=Hw((EN(r.b<r.d.gc()),_B(r.d.Xb(r.c=r.b++)))),EN(a.b<a.d.gc()),a.d.Xb(a.c=a.b++);s<t.b&&(EN(r.b>0),r.a.Xb(r.c=--r.b),N$t(t,t.b-s,o,a,r),EN(r.b<r.d.gc()),r.d.Xb(r.c=r.b++)),EN(a.b>0),a.a.Xb(a.c=--a.b)}if(!t.d)for(n=0;n<t.b-1;n++)EN(r.b<r.d.gc()),r.d.Xb(r.c=r.b++),lG(r);t.d=!0,t.c=!0}function qUt(){qUt=D,gOe=(i_(),fOe).b,mOe=jz(Yet(GK(fOe.b),0),34),pOe=jz(Yet(GK(fOe.b),1),34),bOe=jz(Yet(GK(fOe.b),2),34),SOe=fOe.bb,jz(Yet(GK(fOe.bb),0),34),jz(Yet(GK(fOe.bb),1),34),AOe=fOe.fb,DOe=jz(Yet(GK(fOe.fb),0),34),jz(Yet(GK(fOe.fb),1),34),jz(Yet(GK(fOe.fb),2),18),LOe=fOe.qb,NOe=jz(Yet(GK(fOe.qb),0),34),jz(Yet(GK(fOe.qb),1),18),jz(Yet(GK(fOe.qb),2),18),OOe=jz(Yet(GK(fOe.qb),3),34),MOe=jz(Yet(GK(fOe.qb),4),34),POe=jz(Yet(GK(fOe.qb),6),34),BOe=jz(Yet(GK(fOe.qb),5),18),yOe=fOe.j,vOe=fOe.k,wOe=fOe.q,xOe=fOe.w,ROe=fOe.B,_Oe=fOe.A,kOe=fOe.C,EOe=fOe.D,COe=fOe._,TOe=fOe.cb,IOe=fOe.hb}function WUt(t,e,n){var a,r,o,s,c,l,u,d,h;t.c=0,t.b=0,a=2*e.c.a.c.length+1;t:for(u=n.Kc();u.Ob();){if(h=0,s=(l=jz(u.Pb(),11)).j==(wWt(),cAe)||l.j==EAe){if(!(d=jz(yEt(l,(lGt(),xhe)),10)))continue;h+=nPt(t,a,l,d)}else{for(c=new Wf(l.g);c.a<c.c.c.length;){if((r=jz(J1(c),17).d).i.c==e.c){Wz(t.a,l);continue t}h+=t.g[r.p]}for(o=new Wf(l.e);o.a<o.c.c.length;){if((r=jz(J1(o),17).c).i.c==e.c){Wz(t.a,l);continue t}h-=t.g[r.p]}}l.e.c.length+l.g.c.length>0?(t.f[l.p]=h/(l.e.c.length+l.g.c.length),t.c=i.Math.min(t.c,t.f[l.p]),t.b=i.Math.max(t.b,t.f[l.p])):s&&(t.f[l.p]=h)}}function YUt(t){t.b=null,t.bb=null,t.fb=null,t.qb=null,t.a=null,t.c=null,t.d=null,t.e=null,t.f=null,t.n=null,t.M=null,t.L=null,t.Q=null,t.R=null,t.K=null,t.db=null,t.eb=null,t.g=null,t.i=null,t.j=null,t.k=null,t.gb=null,t.o=null,t.p=null,t.q=null,t.r=null,t.$=null,t.ib=null,t.S=null,t.T=null,t.t=null,t.s=null,t.u=null,t.v=null,t.w=null,t.B=null,t.A=null,t.C=null,t.D=null,t.F=null,t.G=null,t.H=null,t.I=null,t.J=null,t.P=null,t.Z=null,t.U=null,t.V=null,t.W=null,t.X=null,t.Y=null,t._=null,t.ab=null,t.cb=null,t.hb=null,t.nb=null,t.lb=null,t.mb=null,t.ob=null,t.pb=null,t.jb=null,t.kb=null,t.N=!1,t.O=!1}function GUt(t,e,n){var i,a;for(Akt(n,"Graph transformation ("+t.a+")",1),a=a0(e.a),i=new Wf(e.b);i.a<i.c.c.length;)pst(a,jz(J1(i),29).a);if(jz(yEt(e,(zYt(),qpe)),419)==(Ptt(),Eue))switch(jz(yEt(e,Vpe),103).g){case 2:I2(e,a);break;case 3:hpt(e,a);break;case 4:t.a==(Eat(),Hse)?(hpt(e,a),D2(e,a)):(D2(e,a),hpt(e,a))}else if(t.a==(Eat(),Hse))switch(jz(yEt(e,Vpe),103).g){case 2:I2(e,a),D2(e,a);break;case 3:hpt(e,a),I2(e,a);break;case 4:I2(e,a),hpt(e,a)}else switch(jz(yEt(e,Vpe),103).g){case 2:I2(e,a),D2(e,a);break;case 3:I2(e,a),hpt(e,a);break;case 4:hpt(e,a),I2(e,a)}zCt(n)}function ZUt(t,e,n){var i,a,r,o,s,c,l,d,h,f,g;for(c=new lI,l=new lI,f=new lI,g=new lI,s=Hw(_B(yEt(e,(zYt(),Tme)))),a=Hw(_B(yEt(e,yme))),o=new Wf(n);o.a<o.c.c.length;)if(r=jz(J1(o),10),(d=jz(yEt(r,(lGt(),Gde)),61))==(wWt(),cAe))for(l.a.zc(r,l),i=new oq(XO(uft(r).a.Kc(),new u));gIt(i);)RW(c,jz(V6(i),17).c.i);else if(d==EAe)for(g.a.zc(r,g),i=new oq(XO(uft(r).a.Kc(),new u));gIt(i);)RW(f,jz(V6(i),17).c.i);0!=c.a.gc()&&(h=DVt(new lY(2,a),e,c,l,-s-e.c.b))>0&&(t.a=s+(h-1)*a,e.c.b+=t.a,e.f.b+=t.a),0!=f.a.gc()&&(h=DVt(new lY(1,a),e,f,g,e.f.b+s-e.c.b))>0&&(e.f.b+=s+(h-1)*a)}function KUt(t,e){var n,i,a,r;r=t.F,null==e?(t.F=null,Nlt(t,null)):(t.F=(vG(e),e),-1!=(i=HD(e,Kkt(60)))?(a=e.substr(0,i),-1==HD(e,Kkt(46))&&!mF(a,IGt)&&!mF(a,E8t)&&!mF(a,C8t)&&!mF(a,S8t)&&!mF(a,T8t)&&!mF(a,A8t)&&!mF(a,D8t)&&!mF(a,I8t)&&(a=L8t),-1!=(n=mM(e,Kkt(62)))&&(a+=""+e.substr(n+1)),Nlt(t,a)):(a=e,-1==HD(e,Kkt(46))&&(-1!=(i=HD(e,Kkt(91)))&&(a=e.substr(0,i)),mF(a,IGt)||mF(a,E8t)||mF(a,C8t)||mF(a,S8t)||mF(a,T8t)||mF(a,A8t)||mF(a,D8t)||mF(a,I8t)?a=e:(a=L8t,-1!=i&&(a+=""+e.substr(i)))),Nlt(t,a),a==e&&(t.F=t.D))),4&t.Db&&!(1&t.Db)&&hot(t,new Jq(t,1,5,r,e))}function XUt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;if(!((p=e.b.c.length)<3)){for(f=O5(TMe,lKt,25,p,15,1),d=0,u=new Wf(e.b);u.a<u.c.c.length;)l=jz(J1(u),29),f[d++]=l.a.c.length;for(h=new _2(e.b,2),i=1;i<p-1;i++)for(EN(h.b<h.d.gc()),g=new Wf((n=jz(h.d.Xb(h.c=h.b++),29)).a),r=0,s=0,c=0;c<f[i+1];c++)if(v=jz(J1(g),10),c==f[i+1]-1||KCt(t,v,i+1,i)){for(o=f[i]-1,KCt(t,v,i+1,i)&&(o=t.c.e[jz(jz(jz(OU(t.c.b,v.p),15).Xb(0),46).a,10).p]);s<=c;){if(!KCt(t,y=jz(OU(n.a,s),10),i+1,i))for(m=jz(OU(t.c.b,y.p),15).Kc();m.Ob();)b=jz(m.Pb(),46),((a=t.c.e[jz(b.a,10).p])<r||a>o)&&RW(t.b,jz(b.b,17));++s}r=o}}}function JUt(t,e){var n;if(null==e||mF(e,VGt)||0==e.length&&t.k!=(CSt(),bEe))return null;switch(t.k.g){case 1:return ybt(e,r6t)?(cM(),yee):ybt(e,o6t)?(cM(),mee):null;case 2:try{return nht(djt(e,FZt,NGt))}catch(i){if(iO(i=dst(i),127))return null;throw $m(i)}case 4:try{return hCt(e)}catch(i){if(iO(i=dst(i),127))return null;throw $m(i)}case 3:return e;case 5:return iut(t),zAt(t,e);case 6:return iut(t),PLt(t,t.a,e);case 7:try{return(n=iIt(t)).Jf(e),n}catch(i){if(iO(i=dst(i),32))return null;throw $m(i)}default:throw $m(new Fw("Invalid type set for this layout option."))}}function QUt(t){var e,n,i,a,r,o,s;for(Mtt(),s=new Yy,n=new Wf(t);n.a<n.c.c.length;)e=jz(J1(n),140),(!s.b||e.c>=s.b.c)&&(s.b=e),(!s.c||e.c<=s.c.c)&&(s.d=s.c,s.c=e),(!s.e||e.d>=s.e.d)&&(s.e=e),(!s.f||e.d<=s.f.d)&&(s.f=e);return i=new _mt((Dst(),Joe)),e2(t,ose,new Kw(Cst(Hx(Koe,1),zGt,369,0,[i]))),o=new _mt(ese),e2(t,rse,new Kw(Cst(Hx(Koe,1),zGt,369,0,[o]))),a=new _mt(Qoe),e2(t,ase,new Kw(Cst(Hx(Koe,1),zGt,369,0,[a]))),r=new _mt(tse),e2(t,ise,new Kw(Cst(Hx(Koe,1),zGt,369,0,[r]))),MOt(i.c,Joe),MOt(a.c,Qoe),MOt(r.c,tse),MOt(o.c,ese),s.a.c=O5(Dte,zGt,1,0,5,1),pst(s.a,i.c),pst(s.a,eot(a.c)),pst(s.a,r.c),pst(s.a,eot(o.c)),s}function tVt(t){var e;switch(t.d){case 1:if(t.hj())return-2!=t.o;break;case 2:if(t.hj())return-2==t.o;break;case 3:case 5:case 4:case 6:case 7:return t.o>-2;default:return!1}switch(e=t.gj(),t.p){case 0:return null!=e&&zw(RB(e))!=KA(t.k,0);case 1:return null!=e&&jz(e,217).a!=fV(t.k)<<24>>24;case 2:return null!=e&&jz(e,172).a!=(fV(t.k)&ZZt);case 6:return null!=e&&KA(jz(e,162).a,t.k);case 5:return null!=e&&jz(e,19).a!=fV(t.k);case 7:return null!=e&&jz(e,184).a!=fV(t.k)<<16>>16;case 3:return null!=e&&Hw(_B(e))!=t.j;case 4:return null!=e&&jz(e,155).a!=t.j;default:return null==e?null!=t.n:!Odt(e,t.n)}}function eVt(t,e,n){var i,a,r,o;return t.Fk()&&t.Ek()&&HA(o=Hq(t,jz(n,56)))!==HA(n)?(t.Oi(e),t.Ui(e,j8(t,e,o)),t.rk()&&(a=jz(n,49),r=t.Dk()?t.Bk()?a.ih(t.b,Syt(jz(eet(wX(t.b),t.aj()),18)).n,jz(eet(wX(t.b),t.aj()).Yj(),26).Bj(),null):a.ih(t.b,Dgt(a.Tg(),Syt(jz(eet(wX(t.b),t.aj()),18))),null,null):a.ih(t.b,-1-t.aj(),null,null),!jz(o,49).eh()&&(i=jz(o,49),r=t.Dk()?t.Bk()?i.gh(t.b,Syt(jz(eet(wX(t.b),t.aj()),18)).n,jz(eet(wX(t.b),t.aj()).Yj(),26).Bj(),r):i.gh(t.b,Dgt(i.Tg(),Syt(jz(eet(wX(t.b),t.aj()),18))),null,r):i.gh(t.b,-1-t.aj(),null,r)),r&&r.Fi()),mI(t.b)&&t.$i(t.Zi(9,n,o,e,!1)),o):n}function nVt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;for(d=Hw(_B(yEt(t,(zYt(),xme)))),a=Hw(_B(yEt(t,Nme))),lct(f=new Js,xme,d+a),y=(u=e).d,b=u.c.i,v=u.d.i,m=QD(b.c),w=QD(v.c),r=new Lm,h=m;h<=w;h++)Fh(c=new Iyt(t),(oCt(),Cse)),lct(c,(lGt(),fhe),u),lct(c,tme,(Z_t(),WTe)),lct(c,_me,f),g=jz(OU(t.b,h),29),h==m?Zwt(c,g.a.c.length-n,g):EQ(c,g),(x=Hw(_B(yEt(u,abe))))<0&&lct(u,abe,x=0),c.o.b=x,p=i.Math.floor(x/2),HTt(s=new SCt,(wWt(),SAe)),CQ(s,c),s.n.b=p,HTt(l=new SCt,sAe),CQ(l,c),l.n.b=p,_Q(u,s),Hot(o=new hX,u),lct(o,bbe,null),kQ(o,l),_Q(o,y),Vxt(c,u,o),r.c[r.c.length]=o,u=o;return r}function iVt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;for(s=jz(NCt(t,(wWt(),SAe)).Kc().Pb(),11).e,d=jz(NCt(t,sAe).Kc().Pb(),11).g,o=s.c.length,b=g1(jz(OU(t.j,0),11));o-- >0;){for(u1(0,s.c.length),f=jz(s.c[0],17),u1(0,d.c.length),a=x9((i=jz(d.c[0],17)).d.e,i,0),A2(f,i.d,a),kQ(i,null),_Q(i,null),h=f.a,e&&MH(h,new hI(b)),n=cmt(i.a,0);n.b!=n.d.c;)MH(h,new hI(jz(d4(n),8)));for(p=f.b,u=new Wf(i.b);u.a<u.c.c.length;)l=jz(J1(u),70),p.c[p.c.length]=l;if(g=jz(yEt(f,(zYt(),bbe)),74),r=jz(yEt(i,bbe),74))for(g||(g=new vv,lct(f,bbe,g)),c=cmt(r,0);c.b!=c.d.c;)MH(g,new hI(jz(d4(c),8)))}}function aVt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g;if(n=jz(oZ(t.b,e),124),(l=jz(jz(c7(t.r,e),21),84)).dc())return n.n.b=0,void(n.n.c=0);for(u=t.u.Hc((dAt(),eAe)),s=0,c=l.Kc(),d=null,h=0,f=0;c.Ob();)r=Hw(_B((a=jz(c.Pb(),111)).b.We((MM(),Iae)))),o=a.b.rf().a,t.A.Hc((ypt(),FAe))&&vPt(t,e),d?(g=f+d.d.c+t.w+a.d.b,s=i.Math.max(s,(cL(),iit(uJt),i.Math.abs(h-r)<=uJt||h==r||isNaN(h)&&isNaN(r)?0:g/(r-h)))):t.C&&t.C.b>0&&(s=i.Math.max(s,drt(t.C.b+a.d.b,r))),d=a,h=r,f=o;t.C&&t.C.c>0&&(g=f+t.C.c,u&&(g+=d.d.c),s=i.Math.max(s,(cL(),iit(uJt),i.Math.abs(h-1)<=uJt||1==h||isNaN(h)&&isNaN(1)?0:g/(1-h)))),n.n.b=0,n.a.a=s}function rVt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g;if(n=jz(oZ(t.b,e),124),(l=jz(jz(c7(t.r,e),21),84)).dc())return n.n.d=0,void(n.n.a=0);for(u=t.u.Hc((dAt(),eAe)),s=0,t.A.Hc((ypt(),FAe))&&wPt(t,e),c=l.Kc(),d=null,f=0,h=0;c.Ob();)o=Hw(_B((a=jz(c.Pb(),111)).b.We((MM(),Iae)))),r=a.b.rf().b,d?(g=h+d.d.a+t.w+a.d.d,s=i.Math.max(s,(cL(),iit(uJt),i.Math.abs(f-o)<=uJt||f==o||isNaN(f)&&isNaN(o)?0:g/(o-f)))):t.C&&t.C.d>0&&(s=i.Math.max(s,drt(t.C.d+a.d.d,o))),d=a,f=o,h=r;t.C&&t.C.a>0&&(g=h+t.C.a,u&&(g+=d.d.a),s=i.Math.max(s,(cL(),iit(uJt),i.Math.abs(f-1)<=uJt||1==f||isNaN(f)&&isNaN(1)?0:g/(1-f)))),n.n.d=0,n.a.b=s}function oVt(t,e,n){var i,a,r,o,s,c;for(this.g=t,s=e.d.length,c=n.d.length,this.d=O5(Rse,r1t,10,s+c,0,1),o=0;o<s;o++)this.d[o]=e.d[o];for(r=0;r<c;r++)this.d[s+r]=n.d[r];if(e.e){if(this.e=Uz(e.e),this.e.Mc(n),n.e)for(a=n.e.Kc();a.Ob();)(i=jz(a.Pb(),233))!=e&&(this.e.Hc(i)?--i.c:this.e.Fc(i))}else n.e&&(this.e=Uz(n.e),this.e.Mc(e));this.f=e.f+n.f,this.a=e.a+n.a,this.a>0?Xet(this,this.f/this.a):null!=uO(e.g,e.d[0]).a&&null!=uO(n.g,n.d[0]).a?Xet(this,(Hw(uO(e.g,e.d[0]).a)+Hw(uO(n.g,n.d[0]).a))/2):null!=uO(e.g,e.d[0]).a?Xet(this,uO(e.g,e.d[0]).a):null!=uO(n.g,n.d[0]).a&&Xet(this,uO(n.g,n.d[0]).a)}function sVt(t,e){var n,i,a,r,o,s,c,l,u;for(t.a=new jY(Irt(USe)),i=new Wf(e.a);i.a<i.c.c.length;){for(n=jz(J1(i),841),o=new Cbt(Cst(Hx(Yoe,1),zGt,81,0,[])),Wz(t.a.a,o),c=new Wf(n.d);c.a<c.c.c.length;)jVt(l=new LM(t,s=jz(J1(c),110)),jz(yEt(n.c,(lGt(),qde)),21)),cW(t.g,n)||(YG(t.g,n,new OT(s.c,s.d)),YG(t.f,n,l)),Wz(t.a.b,l),g2(o,l);for(r=new Wf(n.b);r.a<r.c.c.length;)l=new LM(t,(a=jz(J1(r),594)).kf()),YG(t.b,a,new nA(o,l)),jVt(l,jz(yEt(n.c,(lGt(),qde)),21)),a.hf()&&(jVt(u=new Ebt(t,a.hf(),1),jz(yEt(n.c,qde),21)),g2(new Cbt(Cst(Hx(Yoe,1),zGt,81,0,[])),u),XAt(t.c,a.gf(),new nA(o,u)))}return t.a}function cVt(t){var e;this.a=t,e=(oCt(),Cst(Hx(Dse,1),IZt,267,0,[Sse,Cse,kse,Tse,Ese,_se])).length,this.b=vU(rEe,[cZt,w4t],[593,146],0,[e,e],2),this.c=vU(rEe,[cZt,w4t],[593,146],0,[e,e],2),FX(this,Sse,(zYt(),Tme),Ame),tst(this,Sse,Cse,xme,Rme),PX(this,Sse,Tse,xme),PX(this,Sse,kse,xme),tst(this,Sse,Ese,Tme,Ame),FX(this,Cse,yme,vme),PX(this,Cse,Tse,yme),PX(this,Cse,kse,yme),tst(this,Cse,Ese,xme,Rme),XI(this,Tse,yme),PX(this,Tse,kse,yme),PX(this,Tse,Ese,Eme),XI(this,kse,Lme),tst(this,kse,Ese,Sme,Cme),FX(this,Ese,yme,yme),FX(this,_se,yme,vme),tst(this,_se,Sse,xme,Rme),tst(this,_se,Ese,xme,Rme),tst(this,_se,Cse,xme,Rme)}function lVt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b;if(iO(o=n.ak(),99)&&jz(o,18).Bb&$Kt&&(h=jz(n.dd(),49),(p=tdt(t.e,h))!=h)){if(wO(t,e,ckt(t,e,u=X4(o,p))),d=null,mI(t.e)&&(i=jUt((TSt(),KLe),t.e.Tg(),o))!=eet(t.e.Tg(),t.c)){for(b=rNt(t.e.Tg(),o),s=0,r=jz(t.g,119),c=0;c<e;++c)a=r[c],b.rl(a.ak())&&++s;(d=new d3(t.e,9,i,h,p,s,!1)).Ei(new L9(t.e,9,t.c,n,u,e,!1))}return(f=Syt(g=jz(o,18)))?(d=h.ih(t.e,Dgt(h.Tg(),f),null,d),d=jz(p,49).gh(t.e,Dgt(p.Tg(),f),null,d)):g.Bb&l7t&&(l=-1-Dgt(t.e.Tg(),g),d=h.ih(t.e,l,null,null),!jz(p,49).eh()&&(d=jz(p,49).gh(t.e,l,null,d))),d&&d.Fi(),u}return n}function uVt(t){var e,n,a,r,o,s,c,l;for(o=new Wf(t.a.b);o.a<o.c.c.length;)(r=jz(J1(o),81)).b.c=r.g.c,r.b.d=r.g.d;for(l=new OT(BKt,BKt),e=new OT(PKt,PKt),a=new Wf(t.a.b);a.a<a.c.c.length;)n=jz(J1(a),81),l.a=i.Math.min(l.a,n.g.c),l.b=i.Math.min(l.b,n.g.d),e.a=i.Math.max(e.a,n.g.c+n.g.b),e.b=i.Math.max(e.b,n.g.d+n.g.a);for(c=RY(t.c).a.nc();c.Ob();)s=jz(c.Pb(),46),n=jz(s.b,81),l.a=i.Math.min(l.a,n.g.c),l.b=i.Math.min(l.b,n.g.d),e.a=i.Math.max(e.a,n.g.c+n.g.b),e.b=i.Math.max(e.b,n.g.d+n.g.a);t.d=zN(new OT(l.a,l.b)),t.e=qP(new OT(e.a,e.b),l),t.a.a.c=O5(Dte,zGt,1,0,5,1),t.a.b.c=O5(Dte,zGt,1,0,5,1)}function dVt(t){var e,n,i;for(wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new Id])),n=new xh(t),i=0;i<n.a.length;++i)mF(e=ftt(n,i).je().a,"layered")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new sd])):mF(e,"force")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new Uu])):mF(e,"stress")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new qu])):mF(e,"mrtree")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new kd])):mF(e,"radial")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new md])):mF(e,"disco")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new Hu,new $u])):mF(e,"sporeOverlap")||mF(e,"sporeCompaction")?wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new xd])):mF(e,"rectpacking")&&wlt(lIe,Cst(Hx(Tie,1),zGt,130,0,[new Sd]))}function hVt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m;if(h=new hI(t.o),m=e.a/h.a,s=e.b/h.b,p=e.a-h.a,r=e.b-h.b,n)for(a=HA(yEt(t,(zYt(),tme)))===HA((Z_t(),WTe)),g=new Wf(t.j);g.a<g.c.c.length;)switch(f=jz(J1(g),11),f.j.g){case 1:a||(f.n.a*=m);break;case 2:f.n.a+=p,a||(f.n.b*=s);break;case 3:a||(f.n.a*=m),f.n.b+=r;break;case 4:a||(f.n.b*=s)}for(l=new Wf(t.b);l.a<l.c.c.length;)u=(c=jz(J1(l),70)).n.a+c.o.a/2,d=c.n.b+c.o.b/2,(b=u/h.a)+(o=d/h.b)>=1&&(b-o>0&&d>=0?(c.n.a+=p,c.n.b+=r*o):b-o<0&&u>=0&&(c.n.a+=p*b,c.n.b+=r));t.o.a=e.a,t.o.b=e.b,lct(t,(zYt(),Fbe),(ypt(),new ZF(i=jz(YR($Ae),9),jz(kP(i,i.length),9),0)))}function fVt(t,e,n,i,a,r){if(null!=e&&Wft(e,TIe,AIe))throw $m(new Pw("invalid scheme: "+e));if(!(t||null!=n&&-1==HD(n,Kkt(35))&&n.length>0&&(d1(0,n.length),47!=n.charCodeAt(0))))throw $m(new Pw("invalid opaquePart: "+n));if(t&&(null==e||!Ok(vIe,e.toLowerCase()))&&null!=n&&Wft(n,DIe,IIe))throw $m(new Pw(s8t+n));if(t&&null!=e&&Ok(vIe,e.toLowerCase())&&!S_t(n))throw $m(new Pw(s8t+n));if(!qft(i))throw $m(new Pw("invalid device: "+i));if(!But(a))throw $m(new Pw(null==a?"invalid segments: null":"invalid segment: "+cut(a)));if(null!=r&&-1!=HD(r,Kkt(35)))throw $m(new Pw("invalid query: "+r))}function gVt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(Akt(e,"Calculate Graph Size",1),e.n&&t&&y0(e,o2(t),($lt(),oDe)),c=JJt,l=JJt,o=Q4t,s=Q4t,h=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));h.e!=h.i.gc();)p=(u=jz(wmt(h),33)).i,b=u.j,y=u.g,a=u.f,r=jz(JIt(u,(cGt(),DCe)),142),c=i.Math.min(c,p-r.b),l=i.Math.min(l,b-r.d),o=i.Math.max(o,p+y+r.c),s=i.Math.max(s,b+a+r.a);for(f=new OT(c-(g=jz(JIt(t,(cGt(),qCe)),116)).b,l-g.d),d=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));d.e!=d.i.gc();)Cnt(u=jz(wmt(d),33),u.i-f.a),Snt(u,u.j-f.b);m=o-c+(g.b+g.c),n=s-l+(g.d+g.a),Ent(t,m),knt(t,n),e.n&&t&&y0(e,o2(t),($lt(),oDe))}function pVt(t){var e,n,i,a,r,o,s,c,l,u;for(i=new Lm,o=new Wf(t.e.a);o.a<o.c.c.length;){for(u=0,(a=jz(J1(o),121)).k.c=O5(Dte,zGt,1,0,5,1),n=new Wf(wft(a));n.a<n.c.c.length;)(e=jz(J1(n),213)).f&&(Wz(a.k,e),++u);1==u&&(i.c[i.c.length]=a)}for(r=new Wf(i);r.a<r.c.c.length;)for(a=jz(J1(r),121);1==a.k.c.length;){for(l=jz(J1(new Wf(a.k)),213),t.b[l.c]=l.g,s=l.d,c=l.e,n=new Wf(wft(a));n.a<n.c.c.length;)Odt(e=jz(J1(n),213),l)||(e.f?s==e.d||c==e.e?t.b[l.c]-=t.b[e.c]-e.g:t.b[l.c]+=t.b[e.c]-e.g:a==s?e.d==a?t.b[l.c]+=e.g:t.b[l.c]-=e.g:e.d==a?t.b[l.c]-=e.g:t.b[l.c]+=e.g);y9(s.k,l),y9(c.k,l),a=s==a?l.e:l.d}}function bVt(t,e){var n,i,a,r,o,s,c,l,u,d,h;if(null==e||0==e.length)return null;if(!(r=jz(kJ(t.f,e),23))){for(a=new Bf(new Tf(t.d).a.vc().Kc());a.a.Ob();)if(o=jz(a.a.Pb(),42),s=(n=jz(o.dd(),23)).f,h=e.length,mF(s.substr(s.length-h,h),e)&&(e.length==s.length||46==lZ(s,s.length-e.length-1))){if(r)return null;r=n}if(!r)for(i=new Bf(new Tf(t.d).a.vc().Kc());i.a.Ob();)if(o=jz(i.a.Pb(),42),null!=(d=(n=jz(o.dd(),23)).g))for(l=0,u=(c=d).length;l<u;++l)if(s=c[l],h=e.length,mF(s.substr(s.length-h,h),e)&&(e.length==s.length||46==lZ(s,s.length-e.length-1))){if(r)return null;r=n}r&&mQ(t.f,e,r)}return r}function mVt(t,e){var n,i,a,r,o;for(n=new Sx,o=!1,r=0;r<e.length;r++)if(d1(r,e.length),32!=(i=e.charCodeAt(r)))o?39==i?r+1<e.length&&(d1(r+1,e.length),39==e.charCodeAt(r+1))?(n.a+=String.fromCharCode(i),++r):o=!1:n.a+=String.fromCharCode(i):HD("GyMLdkHmsSEcDahKzZv",Kkt(i))>0?(Cmt(t,n,0),n.a+=String.fromCharCode(i),Cmt(t,n,a=abt(e,r)),r+=a-1):39==i?r+1<e.length&&(d1(r+1,e.length),39==e.charCodeAt(r+1))?(n.a+="'",++r):o=!0:n.a+=String.fromCharCode(i);else for(Cmt(t,n,0),n.a+=" ",Cmt(t,n,0);r+1<e.length&&(d1(r+1,e.length),32==e.charCodeAt(r+1));)++r;Cmt(t,n,0),bkt(t)}function yVt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m;if(Akt(n,"Network simplex layering",1),t.b=e,m=4*jz(yEt(e,(zYt(),Ome)),19).a,(b=t.b.a).c.length<1)zCt(n);else{for(p=null,r=cmt(o=TFt(t,b),0);r.b!=r.d.c;){for(a=jz(d4(r),15),c=m*CJ(i.Math.sqrt(a.gc())),YFt(Gx(Kx(Zx(jj(s=sjt(a)),c),p),!0),yrt(n,1)),h=t.b.b,g=new Wf(s.a);g.a<g.c.c.length;){for(f=jz(J1(g),121);h.c.length<=f.e;)vV(h,h.c.length,new $Y(t.b));EQ(jz(f.f,10),jz(OU(h,f.e),29))}if(o.b>1)for(p=O5(TMe,lKt,25,t.b.b.c.length,15,1),d=0,u=new Wf(t.b.b);u.a<u.c.c.length;)l=jz(J1(u),29),p[d++]=l.a.c.length}b.c=O5(Dte,zGt,1,0,5,1),t.a=null,t.b=null,t.c=null,zCt(n)}}function vVt(t){var e,n,a,r,o,s,c;for(e=0,o=new Wf(t.b.a);o.a<o.c.c.length;)(a=jz(J1(o),189)).b=0,a.c=0;for(RCt(t,0),egt(t,t.g),wMt(t.c),Xw(t.c),jdt(),n=FSe,NFt(tD(kqt(NFt(tD(kqt(NFt(kqt(t.c,n)),xht(n)))),n))),kqt(t.c,FSe),$ht(t,t.g),wEt(t,0),bHt(t,0),kLt(t,1),RCt(t,1),egt(t,t.d),wMt(t.c),s=new Wf(t.b.a);s.a<s.c.c.length;)a=jz(J1(s),189),e+=i.Math.abs(a.c);for(c=new Wf(t.b.a);c.a<c.c.c.length;)(a=jz(J1(c),189)).b=0,a.c=0;for(n=zSe,NFt(tD(kqt(NFt(tD(kqt(NFt(Xw(kqt(t.c,n))),xht(n)))),n))),kqt(t.c,FSe),$ht(t,t.d),wEt(t,1),bHt(t,1),kLt(t,0),Xw(t.c),r=new Wf(t.b.a);r.a<r.c.c.length;)a=jz(J1(r),189),e+=i.Math.abs(a.c);return e}function wVt(t,e){var n,i,a,r,o,s,c,l,u;if(null!=(l=e).b&&null!=t.b){for(_Lt(t),HHt(t),_Lt(l),HHt(l),n=O5(TMe,lKt,25,t.b.length+l.b.length,15,1),u=0,i=0,o=0;i<t.b.length&&o<l.b.length;)if(a=t.b[i],r=t.b[i+1],s=l.b[o],c=l.b[o+1],r<s)i+=2;else if(r>=s&&a<=c)s<=a&&r<=c?(n[u++]=a,n[u++]=r,i+=2):s<=a?(n[u++]=a,n[u++]=c,t.b[i]=c+1,o+=2):r<=c?(n[u++]=s,n[u++]=r,i+=2):(n[u++]=s,n[u++]=c,t.b[i]=c+1);else{if(!(c<a))throw $m(new fw("Token#intersectRanges(): Internal Error: ["+t.b[i]+","+t.b[i+1]+"] & ["+l.b[o]+","+l.b[o+1]+"]"));o+=2}for(;i<t.b.length;)n[u++]=t.b[i++],n[u++]=t.b[i++];t.b=O5(TMe,lKt,25,u,15,1),rHt(n,0,t.b,0,u)}}function xVt(t){var e,n,a,r,o,s,c;for(e=new Lm,t.g=new Lm,t.d=new Lm,s=new olt(new Ef(t.f.b).a);s.b;)Wz(e,jz(jz((o=tnt(s)).dd(),46).b,81)),fI(jz(o.cd(),594).gf())?Wz(t.d,jz(o.dd(),46)):Wz(t.g,jz(o.dd(),46));for(egt(t,t.d),egt(t,t.g),t.c=new cDt(t.b),tR(t.c,(bE(),Hoe)),$ht(t,t.d),$ht(t,t.g),pst(e,t.c.a.b),t.e=new OT(BKt,BKt),t.a=new OT(PKt,PKt),a=new Wf(e);a.a<a.c.c.length;)n=jz(J1(a),81),t.e.a=i.Math.min(t.e.a,n.g.c),t.e.b=i.Math.min(t.e.b,n.g.d),t.a.a=i.Math.max(t.a.a,n.g.c+n.g.b),t.a.b=i.Math.max(t.a.b,n.g.d+n.g.a);Qx(t.c,new xe),c=0;do{r=vVt(t),++c}while((c<2||r>PZt)&&c<10);Qx(t.c,new Re),vVt(t),SW(t.c),uVt(t.f)}function RVt(t,e,n){var i,a,r,o,s,c,l,u,d,h;if(zw(RB(yEt(n,(zYt(),hbe)))))for(a=new Wf(n.j);a.a<a.c.c.length;)for(s=0,c=(o=X0(jz(J1(a),11).g)).length;s<c;++s)(r=o[s]).d.i==n&&zw(RB(yEt(r,fbe)))&&(u=r.c,(l=jz(NY(t.b,u),10))||(lct(l=hYt(u,(Z_t(),ZTe),u.j,-1,null,null,u.o,jz(yEt(e,Vpe),103),e),(lGt(),fhe),u),YG(t.b,u,l),Wz(e.a,l)),h=r.d,(d=jz(NY(t.b,h),10))||(lct(d=hYt(h,(Z_t(),ZTe),h.j,1,null,null,h.o,jz(yEt(e,Vpe),103),e),(lGt(),fhe),h),YG(t.b,h,d),Wz(e.a,d)),kQ(i=W6(r),jz(OU(l.j,0),11)),_Q(i,jz(OU(d.j,0),11)),XAt(t.a,r,new Ij(i,e,(rit(),Hye))),jz(yEt(e,(lGt(),Xde)),21).Fc((hBt(),dde)))}function _Vt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g;for(Akt(n,"Label dummy switching",1),i=jz(yEt(e,(zYt(),Ype)),227),brt(e),a=xLt(e,i),t.a=O5(LMe,HKt,25,e.b.c.length,15,1),ISt(),u=0,f=(s=Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])).length;u<f;++u)if(((r=s[u])==eue||r==Kle||r==Qle)&&!jz(kM(a.a,r)?a.b[r.g]:null,15).dc()){Jrt(t,e);break}for(d=0,g=(c=Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])).length;d<g;++d)(r=c[d])==eue||r==Kle||r==Qle||UFt(t,jz(kM(a.a,r)?a.b[r.g]:null,15));for(l=0,h=(o=Cst(Hx(iue,1),IZt,227,0,[Jle,tue,Xle,Qle,eue,Kle])).length;l<h;++l)((r=o[l])==eue||r==Kle||r==Qle)&&UFt(t,jz(kM(a.a,r)?a.b[r.g]:null,15));t.a=null,zCt(n)}function kVt(t,e){var n,i,a,r,o,s,c,l,u,d,h;switch(t.k.g){case 1:if(i=jz(yEt(t,(lGt(),fhe)),17),(n=jz(yEt(i,ghe),74))?zw(RB(yEt(i,Che)))&&(n=Xct(n)):n=new vv,l=jz(yEt(t,che),11)){if(e<=(u=Dct(Cst(Hx(EEe,1),cZt,8,0,[l.i.n,l.n,l.a]))).a)return u.b;n6(n,u,n.a,n.a.a)}if(d=jz(yEt(t,lhe),11)){if((h=Dct(Cst(Hx(EEe,1),cZt,8,0,[d.i.n,d.n,d.a]))).a<=e)return h.b;n6(n,h,n.c.b,n.c)}if(n.b>=2){for(o=jz(d4(c=cmt(n,0)),8),s=jz(d4(c),8);s.a<e&&c.b!=c.d.c;)o=s,s=jz(d4(c),8);return o.b+(e-o.a)/(s.a-o.a)*(s.b-o.b)}break;case 3:switch(a=(r=jz(yEt(jz(OU(t.j,0),11),(lGt(),fhe)),11)).i,r.j.g){case 1:return a.n.b;case 3:return a.n.b+a.o.b}}return jRt(t).b}function EVt(t){var e,n,i,a,r,o,s,c,l,d;for(r=new Wf(t.d.b);r.a<r.c.c.length;)for(s=new Wf(jz(J1(r),29).a);s.a<s.c.c.length;)!zw(RB(yEt(o=jz(J1(s),10),(zYt(),Rpe))))||c4(lft(o))?(a=new VZ(o.n.a-o.d.b,o.n.b-o.d.d,o.o.a+o.d.b+o.d.c,o.o.b+o.d.d+o.d.a),e=TM(eE(Qk(tE(new Wy,o),a),fle),t.a),SM(Jk(Wnt(new qy,Cst(Hx(cie,1),zGt,57,0,[e])),e),t.a),c=new Mm,YG(t.e,e,c),(n=F4(new oq(XO(uft(o).a.Kc(),new u)))-F4(new oq(XO(dft(o).a.Kc(),new u))))<0?qst(c,!0,(jdt(),FSe)):n>0&&qst(c,!0,(jdt(),jSe)),o.k==(oCt(),kse)&&hZ(c),YG(t.f,o,e)):((l=(i=jz(eX(lft(o)),17)).c.i)==o&&(l=i.d.i),d=new nA(l,qP(jL(o.n),l.n)),YG(t.b,o,d))}function CVt(t,e,n){var a,r,o,s,c,l,u,d;switch(Akt(n,"Node promotion heuristic",1),t.g=e,vWt(t),t.q=jz(yEt(e,(zYt(),kbe)),260),d=jz(yEt(t.g,_be),19).a,o=new ui,t.q.g){case 2:case 1:default:FHt(t,o);break;case 3:for(t.q=(cMt(),Aye),FHt(t,o),l=0,c=new Wf(t.a);c.a<c.c.c.length;)s=jz(J1(c),19),l=i.Math.max(l,s.a);l>t.j&&(t.q=_ye,FHt(t,o));break;case 4:for(t.q=(cMt(),Aye),FHt(t,o),u=0,r=new Wf(t.b);r.a<r.c.c.length;)a=_B(J1(r)),u=i.Math.max(u,(vG(a),a));u>t.k&&(t.q=Cye,FHt(t,o));break;case 6:FHt(t,new op(CJ(i.Math.ceil(t.f.length*d/100))));break;case 5:FHt(t,new sp(CJ(i.Math.ceil(t.d*d/100))))}sBt(t,e),zCt(n)}function SVt(t,e,n){var i,a,r,o;this.j=t,this.e=H_t(t),this.o=this.j.e,this.i=!!this.o,this.p=this.i?jz(OU(n,bG(this.o).p),214):null,a=jz(yEt(t,(lGt(),Xde)),21),this.g=a.Hc((hBt(),dde)),this.b=new Lm,this.d=new fpt(this.e),o=jz(yEt(this.j,khe),230),this.q=zot(e,o,this.e),this.k=new aQ(this),r=r7(Cst(Hx(ble,1),zGt,225,0,[this,this.d,this.k,this.q])),e!=(sit(),Ave)||zw(RB(yEt(t,(zYt(),Ope))))?e==Ave&&zw(RB(yEt(t,(zYt(),Ope))))?(i=new q_t(this.e),r.c[r.c.length]=i,this.c=new bat(i,o,jz(this.q,402))):this.c=new bS(e,this):(i=new q_t(this.e),r.c[r.c.length]=i,this.c=new H2(i,o,jz(this.q,402))),Wz(r,this.c),SHt(r,this.e),this.s=fYt(this.k)}function TVt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(h=(l=jz(eO(new hb(cmt(new db(e).a.d,0))),86))?jz(yEt(l,(HUt(),ixe)),86):null,a=1;l&&h;){for(o=0,y=0,n=l,i=h,r=0;r<a;r++)n=H5(n),i=H5(i),y+=Hw(_B(yEt(n,(HUt(),oxe)))),o+=Hw(_B(yEt(i,oxe)));if(m=Hw(_B(yEt(h,(HUt(),lxe)))),b=Hw(_B(yEt(l,lxe))),u=x6(l,h),0<(d=m+o+t.a+u-b-y)){for(s=e,c=0;s&&s!=i;)++c,s=jz(yEt(s,axe),86);if(!s)return;for(p=d/c,s=e;s!=i;)g=Hw(_B(yEt(s,lxe)))+d,lct(s,lxe,g),f=Hw(_B(yEt(s,oxe)))+d,lct(s,oxe,f),d-=p,s=jz(yEt(s,axe),86)}++a,h=(l=0==l.d.b?JFt(new db(e),a):jz(eO(new hb(cmt(new db(l).a.d,0))),86))?jz(yEt(l,ixe),86):null}}function AVt(t,e){var n,i,a,r,o,s,c,l,d;for(s=!0,a=0,c=t.f[e.p],l=e.o.b+t.n,n=t.c[e.p][2],i6(t.a,c,nht(jz(OU(t.a,c),19).a-1+n)),i6(t.b,c,Hw(_B(OU(t.b,c)))-l+n*t.e),++c>=t.i?(++t.i,Wz(t.a,nht(1)),Wz(t.b,l)):(i=t.c[e.p][1],i6(t.a,c,nht(jz(OU(t.a,c),19).a+1-i)),i6(t.b,c,Hw(_B(OU(t.b,c)))+l-i*t.e)),(t.q==(cMt(),_ye)&&(jz(OU(t.a,c),19).a>t.j||jz(OU(t.a,c-1),19).a>t.j)||t.q==Cye&&(Hw(_B(OU(t.b,c)))>t.k||Hw(_B(OU(t.b,c-1)))>t.k))&&(s=!1),r=new oq(XO(uft(e).a.Kc(),new u));gIt(r);)o=jz(V6(r),17).c.i,t.f[o.p]==c&&(a+=jz((d=AVt(t,o)).a,19).a,s=s&&zw(RB(d.b)));return t.f[e.p]=c,new nA(nht(a+=t.c[e.p][0]),(cM(),!!s))}function DVt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g,p,b,m,y;for(h=new Om,s=new Lm,iAt(t,n,t.d.fg(),s,h),iAt(t,a,t.d.gg(),s,h),t.b=.2*(b=$It(htt(new NU(null,new h1(s,16)),new So)),m=$It(htt(new NU(null,new h1(s,16)),new To)),i.Math.min(b,m)),o=0,c=0;c<s.c.length-1;c++)for(u1(c,s.c.length),l=jz(s.c[c],112),p=c+1;p<s.c.length;p++)o+=pHt(t,l,(u1(p,s.c.length),jz(s.c[p],112)));for(f=jz(yEt(e,(lGt(),khe)),230),o>=2&&(y=ZOt(s,!0,f),!t.e&&(t.e=new ub(t)),cbt(t.e,y,s,t.b)),nkt(s,f),aqt(s),g=-1,d=new Wf(s);d.a<d.c.c.length;)u=jz(J1(d),112),!(i.Math.abs(u.s-u.c)<dQt)&&(g=i.Math.max(g,u.o),t.d.dg(u,r,t.c));return t.d.a.a.$b(),g+1}function IVt(t,e){var n,i;Hw(_B(yEt(e,(zYt(),yme))))<2&&lct(e,yme,2),jz(yEt(e,Vpe),103)==(jdt(),$Se)&&lct(e,Vpe,Yht(e)),0==(n=jz(yEt(e,hme),19)).a?lct(e,(lGt(),khe),new cft):lct(e,(lGt(),khe),new C3(n.a)),null==RB(yEt(e,Obe))&&lct(e,Obe,(cM(),HA(yEt(e,Xpe))===HA((kft(),ZSe)))),Kk(new NU(null,new h1(e.a,16)),new Ng(t)),Kk(htt(new NU(null,new h1(e.b,16)),new ye),new Bg(t)),i=new cVt(e),lct(e,(lGt(),Ahe),i),c2(t.a),CW(t.a,(vEt(),Boe),jz(yEt(e,Hpe),246)),CW(t.a,Poe,jz(yEt(e,Ebe),246)),CW(t.a,Foe,jz(yEt(e,zpe),246)),CW(t.a,joe,jz(yEt(e,Pbe),246)),CW(t.a,$oe,Eot(jz(yEt(e,Xpe),218))),aI(t.a,LYt(e)),lct(e,_he,IUt(t.a,e))}function LVt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R;return h=t.c[e],f=t.c[n],!((g=jz(yEt(h,(lGt(),ihe)),15))&&0!=g.gc()&&g.Hc(f)||(p=h.k!=(oCt(),Cse)&&f.k!=Cse,b=jz(yEt(h,nhe),10),m=jz(yEt(f,nhe),10),y=b!=m,v=!!b&&b!=h||!!m&&m!=f,w=svt(h,(wWt(),cAe)),x=svt(f,EAe),v|=svt(h,EAe)||svt(f,cAe),R=v&&y||w||x,p&&R)||h.k==(oCt(),Tse)&&f.k==Sse||f.k==(oCt(),Tse)&&h.k==Sse)&&(u=t.c[e],r=t.c[n],a=uRt(t.e,u,r,(wWt(),SAe)),c=uRt(t.i,u,r,sAe),_Mt(t.f,u,r),l=Olt(t.b,u,r)+jz(a.a,19).a+jz(c.a,19).a+t.f.d,s=Olt(t.b,r,u)+jz(a.b,19).a+jz(c.b,19).a+t.f.b,t.a&&(d=jz(yEt(u,fhe),11),o=jz(yEt(r,fhe),11),l+=jz((i=Hwt(t.g,d,o)).a,19).a,s+=jz(i.b,19).a),l>s)}function OVt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b;for(n=jz(yEt(t,(zYt(),tme)),98),s=t.f,o=t.d,c=s.a+o.b+o.c,l=0-o.d-t.c.b,d=s.b+o.d+o.a-t.c.b,u=new Lm,h=new Lm,r=new Wf(e);r.a<r.c.c.length;){switch(a=jz(J1(r),10),n.g){case 1:case 2:case 3:FMt(a);break;case 4:g=(f=jz(yEt(a,Jbe),8))?f.a:0,a.n.a=c*Hw(_B(yEt(a,(lGt(),Rhe))))-g,Xot(a,!0,!1);break;case 5:b=(p=jz(yEt(a,Jbe),8))?p.a:0,a.n.a=Hw(_B(yEt(a,(lGt(),Rhe))))-b,Xot(a,!0,!1),s.a=i.Math.max(s.a,a.n.a+a.o.a/2)}switch(jz(yEt(a,(lGt(),Gde)),61).g){case 1:a.n.b=l,u.c[u.c.length]=a;break;case 3:a.n.b=d,h.c[h.c.length]=a}}switch(n.g){case 1:case 2:Bdt(u,t),Bdt(h,t);break;case 3:Pdt(u,t),Pdt(h,t)}}function MVt(t,e){var n,i,a,r,o,s,c,l,u,d;for(u=new Lm,d=new Im,r=null,a=0,i=0;i<e.length;++i)switch(n=e[i],Blt(r,n)&&(a=Spt(t,d,u,Bve,a)),IN(n,(lGt(),nhe))&&(r=jz(yEt(n,nhe),10)),n.k.g){case 0:for(c=zI(Bz(rft(n,(wWt(),cAe)),new Nr));Jit(c);)o=jz(E9(c),11),t.d[o.p]=a++,u.c[u.c.length]=o;for(a=Spt(t,d,u,Bve,a),l=zI(Bz(rft(n,EAe),new Nr));Jit(l);)o=jz(E9(l),11),t.d[o.p]=a++,u.c[u.c.length]=o;break;case 3:rft(n,Nve).dc()||(o=jz(rft(n,Nve).Xb(0),11),t.d[o.p]=a++,u.c[u.c.length]=o),rft(n,Bve).dc()||f4(d,n);break;case 1:for(s=rft(n,(wWt(),SAe)).Kc();s.Ob();)o=jz(s.Pb(),11),t.d[o.p]=a++,u.c[u.c.length]=o;rft(n,sAe).Jc(new XS(d,n))}return Spt(t,d,u,Bve,a),u}function NVt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(u=BKt,d=BKt,c=PKt,l=PKt,f=new Wf(e.i);f.a<f.c.c.length;)h=jz(J1(f),65),kI(r=jz(jz(NY(t.g,h.a),46).b,33),h.b.c,h.b.d),u=i.Math.min(u,r.i),d=i.Math.min(d,r.j),c=i.Math.max(c,r.i+r.g),l=i.Math.max(l,r.j+r.f);for(g=jz(JIt(t.c,(kEt(),dke)),116),PWt(t.c,c-u+(g.b+g.c),l-d+(g.d+g.a),!0,!0),dEt(t.c,-u+g.b,-d+g.d),a=new AO(eK(t.c));a.e!=a.i.gc();)s=aBt(n=jz(wmt(a),79),!0,!0),p=CEt(n),m=AEt(n),b=new OT(p.i+p.g/2,p.j+p.f/2),o=new OT(m.i+m.g/2,m.j+m.f/2),qxt(y=qP(new OT(o.a,o.b),b),p.g,p.f),VP(b,y),qxt(v=qP(new OT(b.a,b.b),o),m.g,m.f),VP(o,v),CI(s,b.a,b.b),EI(s,o.a,o.b)}function BVt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f;if(t.c=t.d,h=null==(f=RB(yEt(e,(zYt(),fme))))||(vG(f),f),r=jz(yEt(e,(lGt(),Xde)),21).Hc((hBt(),dde)),n=!((a=jz(yEt(e,tme),98))==(Z_t(),qTe)||a==YTe||a==WTe),!h||!n&&r)d=new Kw(Cst(Hx(wse,1),XQt,37,0,[e]));else{for(u=new Wf(e.a);u.a<u.c.c.length;)jz(J1(u),10).p=0;for(d=new Lm,l=new Wf(e.a);l.a<l.c.c.length;)if(i=Ljt(t,jz(J1(l),10),null)){for(Hot(c=new yit,e),lct(c,qde,jz(i.b,21)),vK(c.d,e.d),lct(c,$be,null),s=jz(i.a,15).Kc();s.Ob();)o=jz(s.Pb(),10),Wz(c.a,o),o.a=c;d.Fc(c)}r&&(HA(yEt(e,Cpe))===HA(($dt(),dse))?t.c=t.b:t.c=t.a)}return HA(yEt(e,Cpe))!==HA(($dt(),fse))&&(kK(),d.ad(new Me)),d}function PVt(t){LE(t,new kkt(mR(fR(bR(hR(pR(gR(new bs,Z4t),"ELK Mr. Tree"),"Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."),new No),K4t),Qht((lIt(),KDe))))),r2(t,Z4t,ZJt,Txe),r2(t,Z4t,mQt,20),r2(t,Z4t,GJt,gQt),r2(t,Z4t,bQt,nht(1)),r2(t,Z4t,wQt,(cM(),!0)),r2(t,Z4t,W2t,ymt(xxe)),r2(t,Z4t,CQt,ymt(_xe)),r2(t,Z4t,$Qt,ymt(kxe)),r2(t,Z4t,EQt,ymt(Exe)),r2(t,Z4t,SQt,ymt(Rxe)),r2(t,Z4t,kQt,ymt(Cxe)),r2(t,Z4t,TQt,ymt(Axe)),r2(t,Z4t,W4t,ymt(Mxe)),r2(t,Z4t,Y4t,ymt(Ixe))}function FVt(t){t.q||(t.q=!0,t.p=wot(t,0),t.a=wot(t,1),Pat(t.a,0),t.f=wot(t,2),Pat(t.f,1),Bat(t.f,2),t.n=wot(t,3),Bat(t.n,3),Bat(t.n,4),Bat(t.n,5),Bat(t.n,6),t.g=wot(t,4),Pat(t.g,7),Bat(t.g,8),t.c=wot(t,5),Pat(t.c,7),Pat(t.c,8),t.i=wot(t,6),Pat(t.i,9),Pat(t.i,10),Pat(t.i,11),Pat(t.i,12),Bat(t.i,13),t.j=wot(t,7),Pat(t.j,9),t.d=wot(t,8),Pat(t.d,3),Pat(t.d,4),Pat(t.d,5),Pat(t.d,6),Bat(t.d,7),Bat(t.d,8),Bat(t.d,9),Bat(t.d,10),t.b=wot(t,9),Bat(t.b,0),Bat(t.b,1),t.e=wot(t,10),Bat(t.e,1),Bat(t.e,2),Bat(t.e,3),Bat(t.e,4),Pat(t.e,5),Pat(t.e,6),Pat(t.e,7),Pat(t.e,8),Pat(t.e,9),Pat(t.e,10),Bat(t.e,11),t.k=wot(t,11),Bat(t.k,0),Bat(t.k,1),t.o=xot(t,12),t.s=xot(t,13))}function jVt(t,e){e.dc()&&tH(t.j,!0,!0,!0,!0),Odt(e,(wWt(),gAe))&&tH(t.j,!0,!0,!0,!1),Odt(e,lAe)&&tH(t.j,!1,!0,!0,!0),Odt(e,RAe)&&tH(t.j,!0,!0,!1,!0),Odt(e,kAe)&&tH(t.j,!0,!1,!0,!0),Odt(e,pAe)&&tH(t.j,!1,!0,!0,!1),Odt(e,uAe)&&tH(t.j,!1,!0,!1,!0),Odt(e,_Ae)&&tH(t.j,!0,!1,!1,!0),Odt(e,xAe)&&tH(t.j,!0,!1,!0,!1),Odt(e,vAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,hAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,vAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,dAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,wAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,yAe)&&tH(t.j,!0,!0,!0,!0),Odt(e,mAe)&&tH(t.j,!0,!0,!0,!0)}function $Vt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g,p,b;for(r=new Lm,l=new Wf(i);l.a<l.c.c.length;)if(o=null,(s=jz(J1(l),441)).f==(rit(),Hye))for(g=new Wf(s.e);g.a<g.c.c.length;)bG(b=(f=jz(J1(g),17)).d.i)==e?Eet(t,e,s,f,s.b,f.d):!n||fot(b,n)?UEt(t,e,s,i,f):((h=LHt(t,e,n,f,s.b,Hye,o))!=o&&(r.c[r.c.length]=h),h.c&&(o=h));else for(d=new Wf(s.e);d.a<d.c.c.length;)if(bG(p=(u=jz(J1(d),17)).c.i)==e)Eet(t,e,s,u,u.c,s.b);else{if(!n||fot(p,n))continue;(h=LHt(t,e,n,u,s.b,zye,o))!=o&&(r.c[r.c.length]=h),h.c&&(o=h)}for(c=new Wf(r);c.a<c.c.c.length;)s=jz(J1(c),441),-1!=x9(e.a,s.a,0)||Wz(e.a,s.a),s.c&&(a.c[a.c.length]=s)}function zVt(t,e,n){var i,a,r,o,s,c,l,u;for(c=new Lm,s=new Wf(e.a);s.a<s.c.c.length;)for(u=rft(jz(J1(s),10),(wWt(),sAe)).Kc();u.Ob();)for(a=new Wf(jz(u.Pb(),11).g);a.a<a.c.c.length;)(d6(i=jz(J1(a),17))||i.c.i.c!=i.d.i.c)&&!d6(i)&&i.d.i.c==n&&(c.c[c.c.length]=i);for(o=eot(n.a).Kc();o.Ob();)for(u=rft(jz(o.Pb(),10),(wWt(),SAe)).Kc();u.Ob();)for(a=new Wf(jz(u.Pb(),11).e);a.a<a.c.c.length;)if((d6(i=jz(J1(a),17))||i.c.i.c!=i.d.i.c)&&!d6(i)&&i.c.i.c==e){for(EN((l=new _2(c,c.c.length)).b>0),r=jz(l.a.Xb(l.c=--l.b),17);r!=i&&l.b>0;)t.a[r.p]=!0,t.a[i.p]=!0,EN(l.b>0),r=jz(l.a.Xb(l.c=--l.b),17);l.b>0&&lG(l)}}function HVt(t,e,n){var i,a,r,o,s,c,l,u,d;if(t.a!=e.Aj())throw $m(new Pw(g7t+e.ne()+p7t));if(i=Sdt((TSt(),KLe),e).$k())return i.Aj().Nh().Ih(i,n);if(o=Sdt(KLe,e).al()){if(null==n)return null;if((s=jz(n,15)).dc())return"";for(d=new kx,r=s.Kc();r.Ob();)a=r.Pb(),iD(d,o.Aj().Nh().Ih(o,a)),d.a+=" ";return BD(d,d.a.length-1)}if(!(u=Sdt(KLe,e).bl()).dc()){for(l=u.Kc();l.Ob();)if((c=jz(l.Pb(),148)).wj(n))try{if(null!=(d=c.Aj().Nh().Ih(c,n)))return d}catch(h){if(!iO(h=dst(h),102))throw $m(h)}throw $m(new Pw("Invalid value: '"+n+"' for datatype :"+e.ne()))}return jz(e,834).Fj(),null==n?null:iO(n,172)?""+jz(n,172).a:tlt(n)==bee?$L(SDe[0],jz(n,199)):$ft(n)}function UVt(t){var e,n,a,r,o,s,c,l,u;for(l=new Zk,s=new Zk,r=new Wf(t);r.a<r.c.c.length;)(n=jz(J1(r),128)).v=0,n.n=n.i.c.length,n.u=n.t.c.length,0==n.n&&n6(l,n,l.c.b,l.c),0==n.u&&0==n.r.a.gc()&&n6(s,n,s.c.b,s.c);for(o=-1;0!=l.b;)for(e=new Wf((n=jz(txt(l,0),128)).t);e.a<e.c.c.length;)(u=jz(J1(e),268).b).v=i.Math.max(u.v,n.v+1),o=i.Math.max(o,u.v),--u.n,0==u.n&&n6(l,u,l.c.b,l.c);if(o>-1){for(a=cmt(s,0);a.b!=a.d.c;)(n=jz(d4(a),128)).v=o;for(;0!=s.b;)for(e=new Wf((n=jz(txt(s,0),128)).i);e.a<e.c.c.length;)0==(c=jz(J1(e),268).a).r.a.gc()&&(c.v=i.Math.min(c.v,n.v-1),--c.u,0==c.u&&n6(s,c,s.c.b,s.c))}}function VVt(t,e,n,a,r){var o,s,c,l;return l=BKt,s=!1,o=!!(c=Vzt(t,qP(new OT(e.a,e.b),t),VP(new OT(n.a,n.b),r),qP(new OT(a.a,a.b),n)))&&!(i.Math.abs(c.a-t.a)<=c6t&&i.Math.abs(c.b-t.b)<=c6t||i.Math.abs(c.a-e.a)<=c6t&&i.Math.abs(c.b-e.b)<=c6t),(c=Vzt(t,qP(new OT(e.a,e.b),t),n,r))&&((i.Math.abs(c.a-t.a)<=c6t&&i.Math.abs(c.b-t.b)<=c6t)==(i.Math.abs(c.a-e.a)<=c6t&&i.Math.abs(c.b-e.b)<=c6t)||o?l=i.Math.min(l,uG(qP(c,n))):s=!0),(c=Vzt(t,qP(new OT(e.a,e.b),t),a,r))&&(s||(i.Math.abs(c.a-t.a)<=c6t&&i.Math.abs(c.b-t.b)<=c6t)==(i.Math.abs(c.a-e.a)<=c6t&&i.Math.abs(c.b-e.b)<=c6t)||o)&&(l=i.Math.min(l,uG(qP(c,a)))),l}function qVt(t){LE(t,new kkt(fR(bR(hR(pR(gR(new bs,FQt),jQt),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new pe),pQt))),r2(t,FQt,xQt,ymt(voe)),r2(t,FQt,_Qt,(cM(),!0)),r2(t,FQt,CQt,ymt(Roe)),r2(t,FQt,$Qt,ymt(_oe)),r2(t,FQt,EQt,ymt(koe)),r2(t,FQt,SQt,ymt(xoe)),r2(t,FQt,kQt,ymt(Eoe)),r2(t,FQt,TQt,ymt(Coe)),r2(t,FQt,OQt,ymt(yoe)),r2(t,FQt,NQt,ymt(boe)),r2(t,FQt,BQt,ymt(moe)),r2(t,FQt,PQt,ymt(woe)),r2(t,FQt,MQt,ymt(poe))}function WVt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;for(Akt(e,"Interactive crossing minimization",1),o=0,r=new Wf(t.b);r.a<r.c.c.length;)(i=jz(J1(r),29)).p=o++;for(p=new NR((h=H_t(t)).length),SHt(new Kw(Cst(Hx(ble,1),zGt,225,0,[p])),h),g=0,o=0,a=new Wf(t.b);a.a<a.c.c.length;){for(n=0,d=0,u=new Wf((i=jz(J1(a),29)).a);u.a<u.c.c.length;)for((c=jz(J1(u),10)).n.a>0&&(n+=c.n.a+c.o.a/2,++d),f=new Wf(c.j);f.a<f.c.c.length;)jz(J1(f),11).p=g++;for(d>0&&(n/=d),b=O5(LMe,HKt,25,i.a.c.length,15,1),s=0,l=new Wf(i.a);l.a<l.c.c.length;)(c=jz(J1(l),10)).p=s++,b[c.p]=kVt(c,n),c.k==(oCt(),Cse)&&lct(c,(lGt(),phe),b[c.p]);kK(),mL(i.a,new Hp(b)),ijt(p,h,o,!0),++o}zCt(e)}function YVt(t,e){var n,i,a,r,o,s,c,l,u;if(5!=e.e){if(null!=(l=e).b&&null!=t.b){for(_Lt(t),HHt(t),_Lt(l),HHt(l),n=O5(TMe,lKt,25,t.b.length+l.b.length,15,1),u=0,i=0,o=0;i<t.b.length&&o<l.b.length;)if(a=t.b[i],r=t.b[i+1],s=l.b[o],c=l.b[o+1],r<s)n[u++]=t.b[i++],n[u++]=t.b[i++];else if(r>=s&&a<=c)s<=a&&r<=c?i+=2:s<=a?(t.b[i]=c+1,o+=2):r<=c?(n[u++]=a,n[u++]=s-1,i+=2):(n[u++]=a,n[u++]=s-1,t.b[i]=c+1,o+=2);else{if(!(c<a))throw $m(new fw("Token#subtractRanges(): Internal Error: ["+t.b[i]+","+t.b[i+1]+"] - ["+l.b[o]+","+l.b[o+1]+"]"));o+=2}for(;i<t.b.length;)n[u++]=t.b[i++],n[u++]=t.b[i++];t.b=O5(TMe,lKt,25,u,15,1),rHt(n,0,t.b,0,u)}}else wVt(t,e)}function GVt(t){var e,n,i,a,r,o,s;if(!t.A.dc()){if(t.A.Hc((ypt(),PAe))&&(jz(oZ(t.b,(wWt(),cAe)),124).k=!0,jz(oZ(t.b,EAe),124).k=!0,e=t.q!=(Z_t(),YTe)&&t.q!=WTe,Ih(jz(oZ(t.b,sAe),124),e),Ih(jz(oZ(t.b,SAe),124),e),Ih(t.g,e),t.A.Hc(FAe)&&(jz(oZ(t.b,cAe),124).j=!0,jz(oZ(t.b,EAe),124).j=!0,jz(oZ(t.b,sAe),124).k=!0,jz(oZ(t.b,SAe),124).k=!0,t.g.k=!0)),t.A.Hc(BAe))for(t.a.j=!0,t.a.k=!0,t.g.j=!0,t.g.k=!0,s=t.B.Hc((QFt(),WAe)),r=0,o=(a=tmt()).length;r<o;++r)i=a[r],(n=jz(oZ(t.i,i),306))&&(rbt(i)?(n.j=!0,n.k=!0):(n.j=!s,n.k=!s));t.A.Hc(NAe)&&t.B.Hc((QFt(),qAe))&&(t.g.j=!0,t.g.j=!0,t.a.j||(t.a.j=!0,t.a.k=!0,t.a.e=!0))}}function ZVt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p;for(n=new Wf(t.e.b);n.a<n.c.c.length;)for(a=new Wf(jz(J1(n),29).a);a.a<a.c.c.length;)if(i=jz(J1(a),10),c=(d=t.i[i.p]).a.e,s=d.d.e,i.n.b=c,p=s-c-i.o.b,e=DHt(i),hyt(),u=(i.q?i.q:(kK(),kK(),lne))._b((zYt(),Nbe))?jz(yEt(i,Nbe),197):jz(yEt(bG(i),Bbe),197),e&&(u==uye||u==lye)&&(i.o.b+=p),e&&(u==hye||u==uye||u==lye)){for(f=new Wf(i.j);f.a<f.c.c.length;)h=jz(J1(f),11),(wWt(),hAe).Hc(h.j)&&(l=jz(NY(t.k,h),121),h.n.b=l.e-c);for(o=new Wf(i.b);o.a<o.c.c.length;)r=jz(J1(o),70),(g=jz(yEt(i,Dbe),21)).Hc((QIt(),OTe))?r.n.b+=p:g.Hc(MTe)&&(r.n.b+=p/2);(u==uye||u==lye)&&rft(i,(wWt(),EAe)).Jc(new ab(p))}}function KVt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;if(!t.b)return!1;for(o=null,h=null,a=1,(c=new $5(null,null)).a[1]=t.b,d=c;d.a[a];)l=a,s=h,h=d,d=d.a[a],a=(i=t.a.ue(e,d.d))<0?0:1,0==i&&(!n.c||iZ(d.e,n.d))&&(o=d),(!d||!d.b)&&!Yw(d.a[a])&&(Yw(d.a[1-a])?h=h.a[l]=fat(d,a):Yw(d.a[1-a])||(f=h.a[1-l])&&(Yw(f.a[1-l])||Yw(f.a[l])?(r=s.a[1]==h?1:0,Yw(f.a[l])?s.a[r]=n2(h,l):Yw(f.a[1-l])&&(s.a[r]=fat(h,l)),d.b=s.a[r].b=!0,s.a[r].a[0].b=!1,s.a[r].a[1].b=!1):(h.b=!1,f.b=!0,d.b=!0)));return o&&(n.b=!0,n.d=o.e,d!=o&&(hEt(t,c,o,u=new $5(d.d,d.e)),h==o&&(h=u)),h.a[h.a[1]==d?1:0]=d.a[d.a[0]?0:1],--t.c),t.b=c.a[1],t.b&&(t.b.b=!1),n.b}function XVt(t){var e,n,a,r,o,s,c,l,u,d,h,f;for(r=new Wf(t.a.a.b);r.a<r.c.c.length;)for(l=(a=jz(J1(r),57)).c.Kc();l.Ob();)c=jz(l.Pb(),57),a.a!=c.a&&(h=fI(t.a.d)?t.a.g.Oe(a,c):t.a.g.Pe(a,c),o=a.b.a+a.d.b+h-c.b.a,o=i.Math.ceil(o),o=i.Math.max(0,o),X9(a,c)?(s=AM(new zy,t.d),e=(u=CJ(i.Math.ceil(c.b.a-a.b.a)))-(c.b.a-a.b.a),n=a,(d=l4(a).a)||(d=l4(c).a,e=-e,n=c),d&&(n.b.a-=e,d.n.a-=e),qMt(aE(iE(rE(nE(new $y,i.Math.max(0,u)),1),s),t.c[a.a.d])),qMt(aE(iE(rE(nE(new $y,i.Math.max(0,-u)),1),s),t.c[c.a.d]))):(f=1,(iO(a.g,145)&&iO(c.g,10)||iO(c.g,145)&&iO(a.g,10))&&(f=2),qMt(aE(iE(rE(nE(new $y,CJ(o)),f),t.c[a.a.d]),t.c[c.a.d]))))}function JVt(t,e,n){var a,r,o,s,c,l,u,d,h,f;if(n)for(a=-1,d=new _2(e,0);d.b<d.d.gc();){if(EN(d.b<d.d.gc()),c=jz(d.d.Xb(d.c=d.b++),10),null==(h=t.c[c.c.p][c.p].a)){for(s=a+1,o=new _2(e,d.b);o.b<o.d.gc();)if(null!=(f=hO(t,(EN(o.b<o.d.gc()),jz(o.d.Xb(o.c=o.b++),10))).a)){vG(f),s=f;break}h=(a+s)/2,t.c[c.c.p][c.p].a=h,t.c[c.c.p][c.p].d=(vG(h),h),t.c[c.c.p][c.p].b=1}vG(h),a=h}else{for(r=0,u=new Wf(e);u.a<u.c.c.length;)c=jz(J1(u),10),null!=t.c[c.c.p][c.p].a&&(r=i.Math.max(r,Hw(t.c[c.c.p][c.p].a)));for(r+=2,l=new Wf(e);l.a<l.c.c.length;)c=jz(J1(l),10),null==t.c[c.c.p][c.p].a&&(h=zLt(t.i,24)*oXt*r-1,t.c[c.c.p][c.p].a=h,t.c[c.c.p][c.p].d=h,t.c[c.c.p][c.p].b=1)}}function QVt(){ND(FIe,new el),ND(NIe,new hl),ND($Ie,new _l),ND(jIe,new Al),ND(zIe,new Dl),ND(VIe,new Il),ND(qIe,new Ll),ND(jDe,new Ol),ND(FDe,new qc),ND($De,new Wc),ND(DDe,new Yc),ND(YIe,new Gc),ND(zDe,new Zc),ND(GIe,new Kc),ND(ZIe,new Xc),ND(PIe,new Jc),ND(BIe,new Qc),ND(VLe,new tl),ND(WIe,new nl),ND(SLe,new il),ND(wee,new al),ND(Hx(IMe,1),new rl),ND(Ree,new ol),ND(Eee,new sl),ND(bee,new cl),ND(BMe,new ll),ND(Cee,new ul),ND(aIe,new dl),ND(mIe,new fl),ND(rOe,new gl),ND(ALe,new pl),ND(See,new bl),ND(Dee,new ml),ND(Ite,new yl),ND(Bee,new vl),ND(Ote,new wl),ND(tOe,new xl),ND(PMe,new Rl),ND(Fee,new kl),ND(zee,new El),ND(oIe,new Cl),ND(FMe,new Sl)}function tqt(t,e,n){var i,a,r,o,s,c,l,u,d;for(!n&&(n=Ust(e.q.getTimezoneOffset())),a=6e4*(e.q.getTimezoneOffset()-n.a),c=s=new EB(ift(uot(e.q.getTime()),a)),s.q.getTimezoneOffset()!=e.q.getTimezoneOffset()&&(a>0?a-=864e5:a+=864e5,c=new EB(ift(uot(e.q.getTime()),a))),u=new Sx,l=t.a.length,r=0;r<l;)if((i=lZ(t.a,r))>=97&&i<=122||i>=65&&i<=90){for(o=r+1;o<l&&lZ(t.a,o)==i;++o);rGt(u,i,o-r,s,c,n),r=o}else if(39==i){if(++r<l&&39==lZ(t.a,r)){u.a+="'",++r;continue}for(d=!1;!d;){for(o=r;o<l&&39!=lZ(t.a,o);)++o;if(o>=l)throw $m(new Pw("Missing trailing '"));o+1<l&&39==lZ(t.a,o+1)?++o:d=!0,oD(u,lN(t.a,r,o)),r=o+1}}else u.a+=String.fromCharCode(i),++r;return u.a}function eqt(t){var e,n,i,a,r,o,s,c;for(e=null,i=new Wf(t);i.a<i.c.c.length;)Hw(uO((n=jz(J1(i),233)).g,n.d[0]).a),n.b=null,n.e&&n.e.gc()>0&&0==n.c&&(!e&&(e=new Lm),e.c[e.c.length]=n);if(e)for(;0!=e.c.length;){if((n=jz(s7(e,0),233)).b&&n.b.c.length>0)for(!n.b&&(n.b=new Lm),r=new Wf(n.b);r.a<r.c.c.length;)if(Uw(uO((a=jz(J1(r),233)).g,a.d[0]).a)==Uw(uO(n.g,n.d[0]).a)){if(x9(t,a,0)>x9(t,n,0))return new nA(a,n)}else if(Hw(uO(a.g,a.d[0]).a)>Hw(uO(n.g,n.d[0]).a))return new nA(a,n);for(s=(!n.e&&(n.e=new Lm),n.e).Kc();s.Ob();)!(o=jz(s.Pb(),233)).b&&(o.b=new Lm),IQ(0,(c=o.b).c.length),_C(c.c,0,n),o.c==c.c.length&&(e.c[e.c.length]=o)}return null}function nqt(t,e){var n,i,a,r,o,s;if(null==t)return VGt;if(null!=e.a.zc(t,e))return"[...]";for(n=new Iot(jGt,"[","]"),r=0,o=(a=t).length;r<o;++r)null!=(i=a[r])&&4&tlt(i).i?!Array.isArray(i)||(s=btt(i))>=14&&s<=16?iO(i,177)?d7(n,BTt(jz(i,177))):iO(i,190)?d7(n,X_t(jz(i,190))):iO(i,195)?d7(n,wCt(jz(i,195))):iO(i,2012)?d7(n,J_t(jz(i,2012))):iO(i,48)?d7(n,NTt(jz(i,48))):iO(i,364)?d7(n,pAt(jz(i,364))):iO(i,832)?d7(n,MTt(jz(i,832))):iO(i,104)&&d7(n,OTt(jz(i,104))):e.a._b(i)?(n.a?oD(n.a,n.b):n.a=new uM(n.d),aD(n.a,"[...]")):d7(n,nqt(ent(i),new DU(e))):d7(n,null==i?VGt:$ft(i));return n.a?0==n.e.length?n.a.a:n.a.a+""+n.e:n.c}function iqt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g,p,b;for(g=HCt(aBt(e,!1,!1)),a&&(g=Xct(g)),b=Hw(_B(JIt(e,(Rmt(),pre)))),EN(0!=g.b),f=jz(g.a.a.c,8),u=jz(Nmt(g,1),8),g.b>2?(pst(l=new Lm,new s1(g,1,g.b)),Hot(p=new RIt(WYt(l,b+t.a)),e),n.c[n.c.length]=p):p=jz(NY(t.b,a?CEt(e):AEt(e)),266),s=CEt(e),a&&(s=AEt(e)),o=nSt(f,s),c=b+t.a,o.a?(c+=i.Math.abs(f.b-u.b),h=new OT(u.a,(u.b+f.b)/2)):(c+=i.Math.abs(f.a-u.a),h=new OT((u.a+f.a)/2,u.b)),YG(a?t.d:t.c,e,new Tvt(p,o,h,c)),YG(t.b,e,p),!e.n&&(e.n=new tW(HDe,e,1,7)),d=new AO(e.n);d.e!=d.i.gc();)r=XPt(t,jz(wmt(d),137),!0,0,0),n.c[n.c.length]=r}function aqt(t){var e,n,a,r,o,s,c,l,u;for(l=new Lm,s=new Lm,o=new Wf(t);o.a<o.c.c.length;)Wh(a=jz(J1(o),112),a.f.c.length),Yh(a,a.k.c.length),0==a.d&&(l.c[l.c.length]=a),0==a.i&&0==a.e.b&&(s.c[s.c.length]=a);for(n=-1;0!=l.c.length;)for(e=new Wf((a=jz(s7(l,0),112)).k);e.a<e.c.c.length;)Gh(u=jz(J1(e),129).b,i.Math.max(u.o,a.o+1)),n=i.Math.max(n,u.o),Wh(u,u.d-1),0==u.d&&(l.c[l.c.length]=u);if(n>-1){for(r=new Wf(s);r.a<r.c.c.length;)(a=jz(J1(r),112)).o=n;for(;0!=s.c.length;)for(e=new Wf((a=jz(s7(s,0),112)).f);e.a<e.c.c.length;)!((c=jz(J1(e),129).a).e.b>0)&&(Gh(c,i.Math.min(c.o,a.o-1)),Yh(c,c.i-1),0==c.i&&(s.c[s.c.length]=c))}}function rqt(t,e,n){var i,a,r,o,s;if(s=t.c,!e&&(e=DLe),t.c=e,4&t.Db&&!(1&t.Db)&&(o=new Jq(t,1,2,s,t.c),n?n.Ei(o):n=o),s!=e)if(iO(t.Cb,284))t.Db>>16==-10?n=jz(t.Cb,284).nk(e,n):t.Db>>16==-15&&(!e&&(pGt(),e=lLe),!s&&(pGt(),s=lLe),t.Cb.nh()&&(o=new L9(t.Cb,1,13,s,e,oyt($9(jz(t.Cb,59)),t),!1),n?n.Ei(o):n=o));else if(iO(t.Cb,88))t.Db>>16==-23&&(iO(e,88)||(pGt(),e=hLe),iO(s,88)||(pGt(),s=hLe),t.Cb.nh()&&(o=new L9(t.Cb,1,10,s,e,oyt(a3(jz(t.Cb,26)),t),!1),n?n.Ei(o):n=o));else if(iO(t.Cb,444))for(!(r=jz(t.Cb,836)).b&&(r.b=new Rm(new Ov)),a=new _m(new olt(new Ef(r.b.a).a));a.a.b;)n=rqt(i=jz(tnt(a.a).cd(),87),wOt(i,r),n);return n}function oqt(t,e){var n,i,a,r,o,s,c,l,u,d,h;for(o=zw(RB(JIt(t,(zYt(),hbe)))),h=jz(JIt(t,ime),21),c=!1,l=!1,d=new AO((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c));!(d.e==d.i.gc()||c&&l);){for(r=jz(wmt(d),118),s=0,a=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!r.d&&(r.d=new cF(BDe,r,8,5)),r.d),(!r.e&&(r.e=new cF(BDe,r,7,4)),r.e)])));gIt(a)&&(i=jz(V6(a),79),u=o&&ZAt(i)&&zw(RB(JIt(i,fbe))),n=hUt((!i.b&&(i.b=new cF(NDe,i,4,7)),i.b),r)?t==KJ(Ckt(jz(Yet((!i.c&&(i.c=new cF(NDe,i,5,8)),i.c),0),82))):t==KJ(Ckt(jz(Yet((!i.b&&(i.b=new cF(NDe,i,4,7)),i.b),0),82))),!((u||n)&&(++s,s>1))););(s>0||h.Hc((dAt(),eAe))&&(!r.n&&(r.n=new tW(HDe,r,1,7)),r.n).i>0)&&(c=!0),s>1&&(l=!0)}c&&e.Fc((hBt(),dde)),l&&e.Fc((hBt(),hde))}function sqt(t){var e,n,a,r,o,s,c,l,u,d,h,f;if((f=jz(JIt(t,(cGt(),BCe)),21)).dc())return null;if(c=0,s=0,f.Hc((ypt(),PAe))){for(d=jz(JIt(t,rSe),98),a=2,n=2,r=2,o=2,e=KJ(t)?jz(JIt(KJ(t),dCe),103):jz(JIt(t,dCe),103),u=new AO((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c));u.e!=u.i.gc();)if(l=jz(wmt(u),118),(h=jz(JIt(l,hSe),61))==(wWt(),CAe)&&(h=A$t(l,e),Kmt(l,hSe,h)),d==(Z_t(),WTe))switch(h.g){case 1:a=i.Math.max(a,l.i+l.g);break;case 2:n=i.Math.max(n,l.j+l.f);break;case 3:r=i.Math.max(r,l.i+l.g);break;case 4:o=i.Math.max(o,l.j+l.f)}else switch(h.g){case 1:a+=l.g+2;break;case 2:n+=l.f+2;break;case 3:r+=l.g+2;break;case 4:o+=l.f+2}c=i.Math.max(a,r),s=i.Math.max(n,o)}return PWt(t,c,s,!0,!0)}function cqt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;for(v=jz(E3(vet(AZ(new NU(null,new h1(e.d,16)),new Dp(n)),new Ip(n)),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)]))),15),h=NGt,d=FZt,l=new Wf(e.b.j);l.a<l.c.c.length;)(c=jz(J1(l),11)).j==n&&(h=i.Math.min(h,c.p),d=i.Math.max(d,c.p));if(h==NGt)for(s=0;s<v.gc();s++)g8(jz(v.Xb(s),101),n,s);else for(XU(w=O5(TMe,lKt,25,r.length,15,1),w.length),y=v.Kc();y.Ob();){for(m=jz(y.Pb(),101),o=jz(NY(t.b,m),177),u=0,b=h;b<=d;b++)o[b]&&(u=i.Math.max(u,a[b]));if(m.i){for(g=m.i.c,x=new Ny,f=0;f<r.length;f++)r[g][f]&&RW(x,nht(w[f]));for(;Fk(x,nht(u));)++u}for(g8(m,n,u),p=h;p<=d;p++)o[p]&&(a[p]=u+1);m.i&&(w[m.i.c]=u)}}function lqt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p;for(r=null,a=new Wf(e.a);a.a<a.c.c.length;)DHt(n=jz(J1(a),10))?(u=new HZ(n,!0,c=AM(oE(new zy,n),t.f),l=AM(oE(new zy,n),t.f)),d=n.o.b,hyt(),f=1e4,(h=(n.q?n.q:(kK(),kK(),lne))._b((zYt(),Nbe))?jz(yEt(n,Nbe),197):jz(yEt(bG(n),Bbe),197))==lye&&(f=1),g=qMt(aE(iE(nE(rE(new $y,f),CJ(i.Math.ceil(d))),c),l)),h==uye&&RW(t.d,g),Ajt(t,eot(rft(n,(wWt(),SAe))),u),Ajt(t,rft(n,sAe),u),o=u):(p=AM(oE(new zy,n),t.f),Kk(AZ(new NU(null,new h1(n.j,16)),new zr),new QS(t,p)),o=new HZ(n,!1,p,p)),t.i[n.p]=o,r&&(s=r.c.d.a+BL(t.n,r.c,n)+n.d.d,r.b||(s+=r.c.o.b),qMt(aE(iE(rE(nE(new $y,CJ(i.Math.ceil(s))),0),r.d),o.a))),r=o}function uqt(t,e){var n,a,r,o,s,c,l,d,h,f,g,p,b;for(Akt(e,"Label dummy insertions",1),f=new Lm,s=Hw(_B(yEt(t,(zYt(),wme)))),d=Hw(_B(yEt(t,kme))),h=jz(yEt(t,Vpe),103),g=new Wf(t.a);g.a<g.c.c.length;)for(o=new oq(XO(dft(jz(J1(g),10)).a.Kc(),new u));gIt(o);)if((r=jz(V6(o),17)).c.i!=r.d.i&&QL(r.b,Jce)){for(n=sOt(t,r,b=Ret(r),p=sN(r.b.c.length)),f.c[f.c.length]=n,a=n.o,c=new _2(r.b,0);c.b<c.d.gc();)EN(c.b<c.d.gc()),HA(yEt(l=jz(c.d.Xb(c.c=c.b++),70),Zpe))===HA((Bet(),VSe))&&(h==(jdt(),zSe)||h==PSe?(a.a+=l.o.a+d,a.b=i.Math.max(a.b,l.o.b)):(a.a=i.Math.max(a.a,l.o.a),a.b+=l.o.b+d),p.c[p.c.length]=l,lG(c));h==(jdt(),zSe)||h==PSe?(a.a-=d,a.b+=s+b):a.b+=s-d+b}pst(t.a,f),zCt(e)}function dqt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g;for(h=WBt(t,e,o=new gDt(e)),g=i.Math.max(Hw(_B(yEt(e,(zYt(),abe)))),1),d=new Wf(h.a);d.a<d.c.c.length;)u=jz(J1(d),46),l=$bt(jz(u.a,8),jz(u.b,8),g),UH(n,new OT(l.c,l.d)),UH(n,PN(new OT(l.c,l.d),l.b,0)),UH(n,PN(new OT(l.c,l.d),0,l.a)),UH(n,PN(new OT(l.c,l.d),l.b,l.a));switch(f=o.d,c=$bt(jz(h.b.a,8),jz(h.b.b,8),g),f==(wWt(),SAe)||f==sAe?(a.c[f.g]=i.Math.min(a.c[f.g],c.d),a.b[f.g]=i.Math.max(a.b[f.g],c.d+c.a)):(a.c[f.g]=i.Math.min(a.c[f.g],c.c),a.b[f.g]=i.Math.max(a.b[f.g],c.c+c.b)),r=PKt,s=o.c.i.d,f.g){case 4:r=s.c;break;case 2:r=s.b;break;case 1:r=s.a;break;case 3:r=s.d}return a.a[f.g]=i.Math.max(a.a[f.g],r),o}function hqt(t){var e,n,i,a;if(-1!=(e=HD(n=null!=t.D?t.D:t.B,Kkt(91)))){i=n.substr(0,e),a=new kx;do{a.a+="["}while(-1!=(e=uN(n,91,++e)));mF(i,IGt)?a.a+="Z":mF(i,E8t)?a.a+="B":mF(i,C8t)?a.a+="C":mF(i,S8t)?a.a+="D":mF(i,T8t)?a.a+="F":mF(i,A8t)?a.a+="I":mF(i,D8t)?a.a+="J":mF(i,I8t)?a.a+="S":(a.a+="L",a.a+=""+i,a.a+=";");try{return null}catch(r){if(!iO(r=dst(r),60))throw $m(r)}}else if(-1==HD(n,Kkt(46))){if(mF(n,IGt))return AMe;if(mF(n,E8t))return IMe;if(mF(n,C8t))return SMe;if(mF(n,S8t))return LMe;if(mF(n,T8t))return OMe;if(mF(n,A8t))return TMe;if(mF(n,D8t))return DMe;if(mF(n,I8t))return MMe}return null}function fqt(t,e,n){var i,a,r,o,s,c,l,u;for(Hot(l=new Iyt(n),e),lct(l,(lGt(),fhe),e),l.o.a=e.g,l.o.b=e.f,l.n.a=e.i,l.n.b=e.j,Wz(n.a,l),YG(t.a,e,l),(0!=(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a).i||zw(RB(JIt(e,(zYt(),hbe)))))&&lct(l,Pde,(cM(),!0)),c=jz(yEt(n,Xde),21),(u=jz(yEt(l,(zYt(),tme)),98))==(Z_t(),KTe)?lct(l,tme,ZTe):u!=ZTe&&c.Fc((hBt(),gde)),i=jz(yEt(n,Vpe),103),s=new AO((!e.c&&(e.c=new tW(VDe,e,9,9)),e.c));s.e!=s.i.gc();)zw(RB(JIt(o=jz(wmt(s),118),Hbe)))||Jqt(t,o,l,c,i,u);for(r=new AO((!e.n&&(e.n=new tW(HDe,e,1,7)),e.n));r.e!=r.i.gc();)!zw(RB(JIt(a=jz(wmt(r),137),Hbe)))&&a.a&&Wz(l.b,zut(a));return zw(RB(yEt(l,Rpe)))&&c.Fc((hBt(),lde)),zw(RB(yEt(l,dbe)))&&(c.Fc((hBt(),fde)),c.Fc(hde),lct(l,tme,ZTe)),l}function gqt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k;s=jz(NY(e.c,t),459),b=e.a.c,c=e.a.c+e.a.b,o=(_=s.f)<(k=s.a),f=new OT(b,_),m=new OT(c,k),g=new OT(a=(b+c)/2,_),y=new OT(a,k),r=eMt(t,_,k),w=g1(e.B),x=new OT(a,r),R=g1(e.D),n=dct(Cst(Hx(EEe,1),cZt,8,0,[w,x,R])),d=!1,(p=e.B.i)&&p.c&&s.d&&((l=o&&p.p<p.c.a.c.length-1||!o&&p.p>0)?l&&(u=p.p,o?++u:--u,d=!(aMt(i=nct(jz(OU(p.c.a,u),10)),w,n[0])||jq(i,w,n[0]))):d=!0),h=!1,(v=e.D.i)&&v.c&&s.e&&(o&&v.p>0||!o&&v.p<v.c.a.c.length-1?(u=v.p,o?--u:++u,h=!(aMt(i=nct(jz(OU(v.c.a,u),10)),n[0],R)||jq(i,n[0],R))):h=!0),d&&h&&MH(t.a,x),d||Qnt(t.a,Cst(Hx(EEe,1),cZt,8,0,[f,g])),h||Qnt(t.a,Cst(Hx(EEe,1),cZt,8,0,[y,m]))}function pqt(t,e){var n,i,a,r,o,s,c;if(iO(t.Ug(),160)?(pqt(jz(t.Ug(),160),e),e.a+=" > "):e.a+="Root ",mF((n=t.Tg().zb).substr(0,3),"Elk")?oD(e,n.substr(3)):e.a+=""+n,a=t.zg())oD((e.a+=" ",e),a);else if(iO(t,354)&&(c=jz(t,137).a))oD((e.a+=" ",e),c);else{for(r=new AO(t.Ag());r.e!=r.i.gc();)if(c=jz(wmt(r),137).a)return void oD((e.a+=" ",e),c);if(iO(t,352)&&(!(i=jz(t,79)).b&&(i.b=new cF(NDe,i,4,7)),0!=i.b.i&&(!i.c&&(i.c=new cF(NDe,i,5,8)),0!=i.c.i))){for(e.a+=" (",o=new iN((!i.b&&(i.b=new cF(NDe,i,4,7)),i.b));o.e!=o.i.gc();)o.e>0&&(e.a+=jGt),pqt(jz(wmt(o),160),e);for(e.a+=e1t,s=new iN((!i.c&&(i.c=new cF(NDe,i,5,8)),i.c));s.e!=s.i.gc();)s.e>0&&(e.a+=jGt),pqt(jz(wmt(s),160),e);e.a+=")"}}}function bqt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;if(r=jz(yEt(t,(lGt(),fhe)),79)){for(i=t.a,VP(a=new hI(n),IRt(t)),fot(t.d.i,t.c.i)?(h=t.c,qP(d=Dct(Cst(Hx(EEe,1),cZt,8,0,[h.n,h.a])),n)):d=g1(t.c),n6(i,d,i.a,i.a.a),f=g1(t.d),null!=yEt(t,Nhe)&&VP(f,jz(yEt(t,Nhe),8)),n6(i,f,i.c.b,i.c),Jet(i,a),Lit(o=aBt(r,!0,!0),jz(Yet((!r.b&&(r.b=new cF(NDe,r,4,7)),r.b),0),82)),Oit(o,jz(Yet((!r.c&&(r.c=new cF(NDe,r,5,8)),r.c),0),82)),G$t(i,o),u=new Wf(t.b);u.a<u.c.c.length;)l=jz(J1(u),70),Ent(s=jz(yEt(l,fhe),137),l.o.a),knt(s,l.o.b),kI(s,l.n.a+a.a,l.n.b+a.b),Kmt(s,(Tat(),Qce),RB(yEt(l,Qce)));(c=jz(yEt(t,(zYt(),bbe)),74))?(Jet(c,a),Kmt(r,bbe,c)):Kmt(r,bbe,null),e==(kft(),XSe)?Kmt(r,Xpe,XSe):Kmt(r,Xpe,null)}}function mqt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(f=e.c.length,h=0,d=new Wf(t.b);d.a<d.c.c.length;)if(0!=(m=(u=jz(J1(d),29)).a).c.length){for(l=0,y=null,a=jz(J1(b=new Wf(m)),10),r=null;a;){if((r=jz(OU(e,a.p),257)).c>=0){for(c=null,s=new _2(u.a,l+1);s.b<s.d.gc()&&(EN(s.b<s.d.gc()),o=jz(s.d.Xb(s.c=s.b++),10),!((c=jz(OU(e,o.p),257)).d==r.d&&c.c<r.c));)c=null;c&&(y&&(i6(i,a.p,nht(jz(OU(i,a.p),19).a-1)),jz(OU(n,y.p),15).Mc(r)),r=fkt(r,a,f++),e.c[e.c.length]=r,Wz(n,new Lm),y?(jz(OU(n,y.p),15).Fc(r),Wz(i,nht(1))):Wz(i,nht(0)))}g=null,b.a<b.c.c.length&&(g=jz(J1(b),10),p=jz(OU(e,g.p),257),jz(OU(n,a.p),15).Fc(p),i6(i,g.p,nht(jz(OU(i,g.p),19).a+1))),r.d=h,r.c=l++,y=a,a=g}++h}}function yqt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;return c=t,u=qP(new OT(e.a,e.b),t),l=n,d=qP(new OT(a.a,a.b),n),h=c.a,b=c.b,g=l.a,y=l.b,f=u.a,m=u.b,r=(p=d.a)*m-f*(v=d.b),cL(),iit(D4t),!(i.Math.abs(0-r)<=D4t||0==r||isNaN(0)&&isNaN(r))&&(o=1/r*((h-g)*m-(b-y)*f),s=1/r*-(-(h-g)*v+(b-y)*p),iit(D4t),(i.Math.abs(0-o)<=D4t||0==o||isNaN(0)&&isNaN(o)?0:0<o?-1:0>o?1:UD(isNaN(0),isNaN(o)))<0&&(iit(D4t),(i.Math.abs(o-1)<=D4t||1==o||isNaN(o)&&isNaN(1)?0:o<1?-1:o>1?1:UD(isNaN(o),isNaN(1)))<0)&&(iit(D4t),(i.Math.abs(0-s)<=D4t||0==s||isNaN(0)&&isNaN(s)?0:0<s?-1:0>s?1:UD(isNaN(0),isNaN(s)))<0)&&(iit(D4t),(i.Math.abs(s-1)<=D4t||1==s||isNaN(s)&&isNaN(1)?0:s<1?-1:s>1?1:UD(isNaN(s),isNaN(1)))<0))}function vqt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R;for(d=new cG(new eg(t));d.b!=d.c.a.d;)for(s=jz((u=s8(d)).d,56),e=jz(u.e,56),p=0,w=(null==(o=s.Tg()).i&&H$t(o),o.i).length;p<w;++p)if(null==o.i&&H$t(o),r=o.i,(l=p>=0&&p<r.length?r[p]:null).Ij()&&!l.Jj())if(iO(l,99))!((c=jz(l,18)).Bb&l7t)&&!((R=Syt(c))&&R.Bb&l7t)&&yzt(t,c,s,e);else if(XE(),jz(l,66).Oj()&&(n=jz((x=l)?jz(e,49).xh(x):null,153)))for(f=jz(s.ah(l),153),i=n.gc(),b=0,g=f.gc();b<g;++b)if(iO(h=f.il(b),99)){if(null==(a=utt(t,v=f.jl(b)))&&null!=v){if(y=jz(h,18),!t.b||y.Bb&l7t||Syt(y))continue;a=v}if(!n.dl(h,a))for(m=0;m<i;++m)if(n.il(m)==h&&HA(n.jl(m))===HA(a)){n.ii(n.gc()-1,m),--i;break}}else n.dl(f.il(b),f.jl(b))}function wqt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g,p,b,m,y,v;if(m=Zzt(e,n,t.g),r.n&&r.n&&o&&y0(r,o2(o),($lt(),oDe)),t.b)for(b=0;b<m.c.length;b++)u1(b,m.c.length),d=jz(m.c[b],200),0!=b&&(u1(b-1,m.c.length),put(d,(f=jz(m.c[b-1],200)).f+f.b+t.g)),yYt(b,m,n,t.g),zxt(t,d),r.n&&o&&y0(r,o2(o),($lt(),oDe));else for(p=new Wf(m);p.a<p.c.c.length;)for(u=new Wf((g=jz(J1(p),200)).a);u.a<u.c.c.length;)Mrt(y=new BJ((l=jz(J1(u),187)).s,l.t,t.g),l),Wz(g.d,y);return Vvt(t,m),r.n&&r.n&&o&&y0(r,o2(o),($lt(),oDe)),v=i.Math.max(t.d,a.a-(s.b+s.c)),c=(h=i.Math.max(t.c,a.b-(s.d+s.a)))-t.c,t.e&&t.f&&(v/h<t.a?v=h*t.a:c+=v/t.a-h),t.e&&Apt(m,v,c),r.n&&r.n&&o&&y0(r,o2(o),($lt(),oDe)),new tU(t.a,v,t.c+c,(KOt(),F_e))}function xqt(t){var e,n,a,r,o,s,c,l,u,d;for(t.j=O5(TMe,lKt,25,t.g,15,1),t.o=new Lm,Kk(htt(new NU(null,new h1(t.e.b,16)),new Gr),new rb(t)),t.a=O5(AMe,JXt,25,t.b,16,1),Idt(new NU(null,new h1(t.e.b,16)),new sb(t)),d=new Lm,Kk(AZ(htt(new NU(null,new h1(t.e.b,16)),new Kr),new ob(t)),new tT(t,d)),c=new Wf(d);c.a<c.c.c.length;)if(!((s=jz(J1(c),508)).c.length<=1)){if(2==s.c.length){VIt(s),DHt((u1(0,s.c.length),jz(s.c[0],17)).d.i)||Wz(t.o,s);continue}if(!W_t(s)&&!OSt(s,new Zr))for(l=new Wf(s),a=null;l.a<l.c.c.length;)e=jz(J1(l),17),n=t.c[e.p],u=!a||l.a>=l.c.c.length?q4((oCt(),Sse),Cse):q4((oCt(),Cse),Cse),u*=2,r=n.a.g,n.a.g=i.Math.max(r,r+(u-r)),o=n.b.g,n.b.g=i.Math.max(o,o+(u-o)),a=e}}function Rqt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(v=Hz(t),c=new Lm,l=(r=t.c.length)-1,u=r+1;0!=v.a.c;){for(;0!=n.b;)EN(0!=n.b),m=jz(Det(n,n.a.a),112),DJ(v.a,m),m.g=l--,O$t(m,e,n,i);for(;0!=e.b;)EN(0!=e.b),y=jz(Det(e,e.a.a),112),DJ(v.a,y),y.g=u++,O$t(y,e,n,i);for(s=FZt,p=new Ff(new jP(new OM(new Pf(v.a).a).b));aC(p.a.a);){if(g=jz(mN(p.a).cd(),112),!i&&g.b>0&&g.a<=0){c.c=O5(Dte,zGt,1,0,5,1),c.c[c.c.length]=g;break}(f=g.i-g.d)>=s&&(f>s&&(c.c=O5(Dte,zGt,1,0,5,1),s=f),c.c[c.c.length]=g)}0!=c.c.length&&(o=jz(OU(c,byt(a,c.c.length)),112),DJ(v.a,o),o.g=u++,O$t(o,e,n,i),c.c=O5(Dte,zGt,1,0,5,1))}for(b=t.c.length+1,h=new Wf(t);h.a<h.c.c.length;)(d=jz(J1(h),112)).g<r&&(d.g=d.g+b)}function _qt(t,e){var n;if(t.e)throw $m(new Fw((xB(hie),DXt+hie.k+IXt)));if(!kC(t.a,e))throw $m(new fw(LXt+e+OXt));if(e==t.d)return t;switch(n=t.d,t.d=e,n.g){case 0:switch(e.g){case 2:zvt(t);break;case 1:Sct(t),zvt(t);break;case 4:QRt(t),zvt(t);break;case 3:QRt(t),Sct(t),zvt(t)}break;case 2:switch(e.g){case 1:Sct(t),BPt(t);break;case 4:QRt(t),zvt(t);break;case 3:QRt(t),Sct(t),zvt(t)}break;case 1:switch(e.g){case 2:Sct(t),BPt(t);break;case 4:Sct(t),QRt(t),zvt(t);break;case 3:Sct(t),QRt(t),Sct(t),zvt(t)}break;case 4:switch(e.g){case 2:QRt(t),zvt(t);break;case 1:QRt(t),Sct(t),zvt(t);break;case 3:Sct(t),BPt(t)}break;case 3:switch(e.g){case 2:Sct(t),QRt(t),zvt(t);break;case 1:Sct(t),QRt(t),Sct(t),zvt(t);break;case 4:Sct(t),BPt(t)}}return t}function kqt(t,e){var n;if(t.d)throw $m(new Fw((xB(Zoe),DXt+Zoe.k+IXt)));if(!ET(t.a,e))throw $m(new fw(LXt+e+OXt));if(e==t.c)return t;switch(n=t.c,t.c=e,n.g){case 0:switch(e.g){case 2:Jct(t);break;case 1:Cct(t),Jct(t);break;case 4:t_t(t),Jct(t);break;case 3:t_t(t),Cct(t),Jct(t)}break;case 2:switch(e.g){case 1:Cct(t),PPt(t);break;case 4:t_t(t),Jct(t);break;case 3:t_t(t),Cct(t),Jct(t)}break;case 1:switch(e.g){case 2:Cct(t),PPt(t);break;case 4:Cct(t),t_t(t),Jct(t);break;case 3:Cct(t),t_t(t),Cct(t),Jct(t)}break;case 4:switch(e.g){case 2:t_t(t),Jct(t);break;case 1:t_t(t),Cct(t),Jct(t);break;case 3:Cct(t),PPt(t)}break;case 3:switch(e.g){case 2:Cct(t),t_t(t),Jct(t);break;case 1:Cct(t),t_t(t),Cct(t),Jct(t);break;case 4:Cct(t),PPt(t)}}return t}function Eqt(t,e,n){var a,r,o,s,c,l,d,h;for(l=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));l.e!=l.i.gc();)for(r=new oq(XO(gOt(c=jz(wmt(l),33)).a.Kc(),new u));gIt(r);){if(!(a=jz(V6(r),79)).b&&(a.b=new cF(NDe,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new cF(NDe,a,5,8)),a.c.i<=1)))throw $m(new ix("Graph must not contain hyperedges."));if(!QDt(a)&&c!=Ckt(jz(Yet((!a.c&&(a.c=new cF(NDe,a,5,8)),a.c),0),82)))for(Hot(d=new SP,a),lct(d,(kat(),soe),a),Mh(d,jz(zA(AX(n.f,c)),144)),Nh(d,jz(NY(n,Ckt(jz(Yet((!a.c&&(a.c=new cF(NDe,a,5,8)),a.c),0),82))),144)),Wz(e.c,d),s=new AO((!a.n&&(a.n=new tW(HDe,a,1,7)),a.n));s.e!=s.i.gc();)Hot(h=new m3(d,(o=jz(wmt(s),137)).a),o),lct(h,soe,o),h.e.a=i.Math.max(o.g,1),h.e.b=i.Math.max(o.f,1),Fzt(h),Wz(e.d,h)}}function Cqt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(xJ(h=new eWt(t),!(e==(jdt(),zSe)||e==PSe)),d=h.a,f=new dv,Net(),s=0,l=(r=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;s<l;++s)n=r[s],(u=lO(d,Uie,n))&&(f.d=i.Math.max(f.d,u.Re()));for(o=0,c=(a=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;o<c;++o)n=a[o],(u=lO(d,qie,n))&&(f.a=i.Math.max(f.a,u.Re()));for(m=0,v=(p=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;m<v;++m)(u=lO(d,p[m],Uie))&&(f.b=i.Math.max(f.b,u.Se()));for(b=0,y=(g=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;b<y;++b)(u=lO(d,g[b],qie))&&(f.c=i.Math.max(f.c,u.Se()));return f.d>0&&(f.d+=d.n.d,f.d+=d.d),f.a>0&&(f.a+=d.n.a,f.a+=d.d),f.b>0&&(f.b+=d.n.b,f.b+=d.d),f.c>0&&(f.c+=d.n.c,f.c+=d.d),f}function Sqt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p;for(f=n.d,h=n.c,s=(o=new OT(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)).b,u=new Wf(t.a);u.a<u.c.c.length;)if((c=jz(J1(u),10)).k==(oCt(),kse)){switch(a=jz(yEt(c,(lGt(),Gde)),61),r=jz(yEt(c,Zde),8),d=c.n,a.g){case 2:d.a=n.f.a+f.c-h.a;break;case 4:d.a=-h.a-f.b}switch(p=0,a.g){case 2:case 4:e==(Z_t(),YTe)?(g=Hw(_B(yEt(c,Rhe))),d.b=o.b*g-jz(yEt(c,(zYt(),Jbe)),8).b,p=d.b+r.b,Xot(c,!1,!0)):e==WTe&&(d.b=Hw(_B(yEt(c,Rhe)))-jz(yEt(c,(zYt(),Jbe)),8).b,p=d.b+r.b,Xot(c,!1,!0))}s=i.Math.max(s,p)}for(n.f.b+=s-o.b,l=new Wf(t.a);l.a<l.c.c.length;)if((c=jz(J1(l),10)).k==(oCt(),kse))switch(a=jz(yEt(c,(lGt(),Gde)),61),d=c.n,a.g){case 1:d.b=-h.b-f.d;break;case 3:d.b=n.f.b+f.a-h.b}}function Tqt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R;for(a=jz(yEt(t,(HUt(),sxe)),33),c=NGt,l=NGt,o=FZt,s=FZt,x=cmt(t.b,0);x.b!=x.d.c;)g=(v=jz(d4(x),86)).e,p=v.f,c=i.Math.min(c,g.a-p.a/2),l=i.Math.min(l,g.b-p.b/2),o=i.Math.max(o,g.a+p.a/2),s=i.Math.max(s,g.b+p.b/2);for(h=new OT((f=jz(JIt(a,(SIt(),Sxe)),116)).b-c,f.d-l),w=cmt(t.b,0);w.b!=w.d.c;)iO(d=yEt(v=jz(d4(w),86),sxe),239)&&kI(r=jz(d,33),(u=VP(v.e,h)).a-r.g/2,u.b-r.f/2);for(y=cmt(t.a,0);y.b!=y.d.c;)m=jz(d4(y),188),(n=jz(yEt(m,sxe),79))&&(n6(e=m.a,b=new hI(m.b.e),e.a,e.a.a),n6(e,R=new hI(m.c.e),e.c.b,e.c),JEt(b,jz(Nmt(e,1),8),m.b.f),JEt(R,jz(Nmt(e,e.b-2),8),m.c.f),G$t(e,aBt(n,!0,!0)));PWt(a,o-c+(f.b+f.c),s-l+(f.d+f.a),!1,!1)}function Aqt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m;for(yP(c=new _2(l=t.b,0),new $Y(t)),b=!1,r=1;c.b<c.d.gc();){for(EN(c.b<c.d.gc()),s=jz(c.d.Xb(c.c=c.b++),29),u1(r,l.c.length),f=jz(l.c[r],29),p=(g=a0(s.a)).c.length,h=new Wf(g);h.a<h.c.c.length;)EQ(u=jz(J1(h),10),f);if(b){for(d=W1(new lw(g),0);d.c.Sb();)for(a=new Wf(a0(uft(u=jz(h6(d),10))));a.a<a.c.c.length;)tzt(i=jz(J1(a),17),!0),lct(t,(lGt(),zde),(cM(),!0)),n=nVt(t,i,p),e=jz(yEt(u,Nde),305),m=jz(OU(n,n.c.length-1),17),e.k=m.c.i,e.n=m,e.b=i.d.i,e.c=i;b=!1}else 0!=g.c.length&&(u1(0,g.c.length),jz(g.c[0],10).k==(oCt(),_se)&&(b=!0,r=-1));++r}for(o=new _2(t.b,0);o.b<o.d.gc();)EN(o.b<o.d.gc()),0==jz(o.d.Xb(o.c=o.b++),29).a.c.length&&lG(o)}function Dqt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if((d=jz(jz(c7(t.r,e),21),84)).gc()<=2||e==(wWt(),sAe)||e==(wWt(),SAe))XWt(t,e);else{for(b=t.u.Hc((dAt(),aAe)),n=e==(wWt(),cAe)?(Not(),Bae):(Not(),Oae),y=e==cAe?(H9(),nae):(H9(),aae),a=Xx($j(n),t.s),m=e==cAe?BKt:PKt,u=d.Kc();u.Ob();)(c=jz(u.Pb(),111)).c&&!(c.c.d.c.length<=0)&&(p=c.b.rf(),g=c.e,(f=(h=c.c).i).b=(o=h.n,h.e.a+o.b+o.c),f.a=(s=h.n,h.e.b+s.d+s.a),b?(f.c=g.a-(r=h.n,h.e.a+r.b+r.c)-t.s,b=!1):f.c=g.a+p.a+t.s,TX(y,oJt),h.f=y,u8(h,(K8(),Jie)),Wz(a.d,new OV(f,wht(a,f))),m=e==cAe?i.Math.min(m,g.b):i.Math.max(m,g.b+c.b.rf().b));for(m+=e==cAe?-t.t:t.t,Cgt((a.e=m,a)),l=d.Kc();l.Ob();)(c=jz(l.Pb(),111)).c&&!(c.c.d.c.length<=0)&&((f=c.c.i).c-=c.e.a,f.d-=c.e.b)}}function Iqt(t,e,n){var a;if(Akt(n,"StretchWidth layering",1),0!=e.a.c.length){for(t.c=e,t.t=0,t.u=0,t.i=BKt,t.g=PKt,t.d=Hw(_B(yEt(e,(zYt(),yme)))),Vmt(t),CIt(t),EIt(t),MRt(t),gpt(t),t.i=i.Math.max(1,t.i),t.g=i.Math.max(1,t.g),t.d=t.d/t.i,t.f=t.g/t.i,t.s=Fyt(t),a=new $Y(t.c),Wz(t.c.b,a),t.r=a0(t.p),t.n=RJ(t.k,t.k.length);0!=t.r.c.length;)t.o=Vut(t),!t.o||_ct(t)&&0!=t.b.a.gc()?(M_t(t,a),a=new $Y(t.c),Wz(t.c.b,a),jat(t.a,t.b),t.b.a.$b(),t.t=t.u,t.u=0):_ct(t)?(t.c.b.c=O5(Dte,zGt,1,0,5,1),a=new $Y(t.c),Wz(t.c.b,a),t.t=0,t.u=0,t.b.a.$b(),t.a.a.$b(),++t.f,t.r=a0(t.p),t.n=RJ(t.k,t.k.length)):(EQ(t.o,a),y9(t.r,t.o),RW(t.b,t.o),t.t=t.t-t.k[t.o.p]*t.d+t.j[t.o.p],t.u+=t.e[t.o.p]*t.d);e.a.c=O5(Dte,zGt,1,0,5,1),XSt(e.b),zCt(n)}else zCt(n)}function Lqt(t){var e,n,a,r;for(Kk(AZ(new NU(null,new h1(t.a.b,16)),new wa),new xa),u_t(t),Kk(AZ(new NU(null,new h1(t.a.b,16)),new Ra),new _a),t.c==(kft(),XSe)&&(Kk(AZ(htt(new NU(null,new h1(new Cf(t.f),1)),new ka),new Ea),new _p(t)),Kk(AZ(DZ(htt(htt(new NU(null,new h1(t.d.b,16)),new Ca),new Sa),new Ta),new Aa),new Ep(t))),r=new OT(BKt,BKt),e=new OT(PKt,PKt),a=new Wf(t.a.b);a.a<a.c.c.length;)n=jz(J1(a),57),r.a=i.Math.min(r.a,n.d.c),r.b=i.Math.min(r.b,n.d.d),e.a=i.Math.max(e.a,n.d.c+n.d.b),e.b=i.Math.max(e.b,n.d.d+n.d.a);VP(vD(t.d.c),zN(new OT(r.a,r.b))),VP(vD(t.d.f),qP(new OT(e.a,e.b),r)),sMt(t,r,e),DW(t.f),DW(t.b),DW(t.g),DW(t.e),t.a.a.c=O5(Dte,zGt,1,0,5,1),t.a.b.c=O5(Dte,zGt,1,0,5,1),t.a=null,t.d=null}function Oqt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(i=new Lm,g=new Wf(e.a);g.a<g.c.c.length;)if((h=(f=jz(J1(g),10)).e)&&(pst(i,Oqt(t,h,f)),RVt(t,h,f),jz(yEt(h,(lGt(),Xde)),21).Hc((hBt(),dde))))for(m=jz(yEt(f,(zYt(),tme)),98),d=jz(yEt(f,ime),174).Hc((dAt(),eAe)),b=new Wf(f.j);b.a<b.c.c.length;)for(p=jz(J1(b),11),(a=jz(NY(t.b,p),10))||(lct(a=hYt(p,m,p.j,-(p.e.c.length-p.g.c.length),null,new HR,p.o,jz(yEt(h,Vpe),103),h),fhe,p),YG(t.b,p,a),Wz(h.a,a)),r=jz(OU(a.j,0),11),l=new Wf(p.f);l.a<l.c.c.length;)c=jz(J1(l),70),(o=new zR).o.a=c.o.a,o.o.b=c.o.b,Wz(r.f,o),d||(y=p.j,u=0,$q(jz(yEt(f,ime),21))&&(u=IAt(c.n,c.o,p.o,0,y)),m==(Z_t(),ZTe)||(wWt(),hAe).Hc(y)?o.o.a=u:o.o.b=u);return $Vt(t,e,n,i,s=new Lm),n&&SUt(t,e,n,s),s}function Mqt(t,e,n){var i,a,r,o,s,c,l,u;if(!t.c[e.c.p][e.p].e){for(t.c[e.c.p][e.p].e=!0,t.c[e.c.p][e.p].b=0,t.c[e.c.p][e.p].d=0,t.c[e.c.p][e.p].a=null,u=new Wf(e.j);u.a<u.c.c.length;)for(l=jz(J1(u),11),c=(n?new $g(l):new Hg(l)).Kc();c.Ob();)(o=(s=jz(c.Pb(),11)).i).c==e.c?o!=e&&(Mqt(t,o,n),t.c[e.c.p][e.p].b+=t.c[o.c.p][o.p].b,t.c[e.c.p][e.p].d+=t.c[o.c.p][o.p].d):(t.c[e.c.p][e.p].d+=t.g[s.p],++t.c[e.c.p][e.p].b);if(r=jz(yEt(e,(lGt(),Ode)),15))for(a=r.Kc();a.Ob();)i=jz(a.Pb(),10),e.c==i.c&&(Mqt(t,i,n),t.c[e.c.p][e.p].b+=t.c[i.c.p][i.p].b,t.c[e.c.p][e.p].d+=t.c[i.c.p][i.p].d);t.c[e.c.p][e.p].b>0&&(t.c[e.c.p][e.p].d+=zLt(t.i,24)*oXt*.07000000029802322-.03500000014901161,t.c[e.c.p][e.p].a=t.c[e.c.p][e.p].d/t.c[e.c.p][e.p].b)}}function Nqt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g;for(h=new Wf(t);h.a<h.c.c.length;){for(JM((d=jz(J1(h),10)).n),JM(d.o),Y7(d.f),GPt(d),rPt(d),g=new Wf(d.j);g.a<g.c.c.length;){for(JM((f=jz(J1(g),11)).n),JM(f.a),JM(f.o),HTt(f,rvt(f.j)),(a=jz(yEt(f,(zYt(),eme)),19))&&lct(f,eme,nht(-a.a)),i=new Wf(f.g);i.a<i.c.c.length;){for(e=cmt((n=jz(J1(i),17)).a,0);e.b!=e.d.c;)JM(jz(d4(e),8));if(o=jz(yEt(n,bbe),74))for(r=cmt(o,0);r.b!=r.d.c;)JM(jz(d4(r),8));for(l=new Wf(n.b);l.a<l.c.c.length;)JM((s=jz(J1(l),70)).n),JM(s.o)}for(u=new Wf(f.f);u.a<u.c.c.length;)JM((s=jz(J1(u),70)).n),JM(s.o)}for(d.k==(oCt(),kse)&&(lct(d,(lGt(),Gde),rvt(jz(yEt(d,Gde),61))),fNt(d)),c=new Wf(d.b);c.a<c.c.c.length;)GPt(s=jz(J1(c),70)),JM(s.o),JM(s.n)}}function Bqt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w;for(t.e=e,s=QAt(e),v=new Lm,i=new Wf(s);i.a<i.c.c.length;){for(n=jz(J1(i),15),w=new Lm,v.c[v.c.length]=w,c=new Ny,h=n.Kc();h.Ob();){for(r=XPt(t,d=jz(h.Pb(),33),!0,0,0),w.c[w.c.length]=r,f=d.i,g=d.j,!d.n&&(d.n=new tW(HDe,d,1,7)),u=new AO(d.n);u.e!=u.i.gc();)a=XPt(t,jz(wmt(u),137),!1,f,g),w.c[w.c.length]=a;for(!d.c&&(d.c=new tW(VDe,d,9,9)),b=new AO(d.c);b.e!=b.i.gc();)for(o=XPt(t,p=jz(wmt(b),118),!1,f,g),w.c[w.c.length]=o,m=p.i+f,y=p.j+g,!p.n&&(p.n=new tW(HDe,p,1,7)),l=new AO(p.n);l.e!=l.i.gc();)a=XPt(t,jz(wmt(l),137),!1,m,y),w.c[w.c.length]=a;jat(c,KK(Ynt(Cst(Hx(Mte,1),zGt,20,0,[gOt(d),fOt(d)]))))}qOt(t,c,w)}return t.f=new PR(v),Hot(t.f,e),t.f}function Pqt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g,p,b;null==(g=NY(t.e,i))&&(l=jz(g=new pw,183),c=new HY(e+"_s"+a),net(l,H7t,c)),JY(n,f=jz(g,183)),zK(b=new pw,"x",i.j),zK(b,"y",i.k),net(f,q7t,b),zK(d=new pw,"x",i.b),zK(d,"y",i.c),net(f,"endPoint",d),!W_((!i.a&&(i.a=new DO(LDe,i,5)),i.a))&&(r=new Wb(u=new Eh),t6((!i.a&&(i.a=new DO(LDe,i,5)),i.a),r),net(f,N7t,u)),!!Eyt(i)&&aEt(t.a,f,P7t,BSt(t,Eyt(i))),!!Cyt(i)&&aEt(t.a,f,B7t,BSt(t,Cyt(i))),!(0==(!i.e&&(i.e=new cF(PDe,i,10,9)),i.e).i)&&(o=new kA(t,h=new Eh),t6((!i.e&&(i.e=new cF(PDe,i,10,9)),i.e),o),net(f,j7t,h)),0!=(!i.g&&(i.g=new cF(PDe,i,9,10)),i.g).i&&(s=new EA(t,p=new Eh),t6((!i.g&&(i.g=new cF(PDe,i,9,10)),i.g),s),net(f,F7t,p))}function Fqt(t){var e,n,a,r,o,s,c;for(zB(),a=t.f.n,s=xY(t.r).a.nc();s.Ob();){if(r=0,(o=jz(s.Pb(),111)).b.Xe((cGt(),aSe))&&(r=Hw(_B(o.b.We(aSe))))<0)switch(o.b.Hf().g){case 1:a.d=i.Math.max(a.d,-r);break;case 3:a.a=i.Math.max(a.a,-r);break;case 2:a.c=i.Math.max(a.c,-r);break;case 4:a.b=i.Math.max(a.b,-r)}if($q(t.u))switch(e=mrt(o.b,r),c=!jz(t.e.We(zCe),174).Hc((QFt(),zAe)),n=!1,o.b.Hf().g){case 1:n=e>a.d,a.d=i.Math.max(a.d,e),c&&n&&(a.d=i.Math.max(a.d,a.a),a.a=a.d+r);break;case 3:n=e>a.a,a.a=i.Math.max(a.a,e),c&&n&&(a.a=i.Math.max(a.a,a.d),a.d=a.a+r);break;case 2:n=e>a.c,a.c=i.Math.max(a.c,e),c&&n&&(a.c=i.Math.max(a.b,a.c),a.b=a.c+r);break;case 4:n=e>a.b,a.b=i.Math.max(a.b,e),c&&n&&(a.b=i.Math.max(a.b,a.c),a.c=a.b+r)}}}function jqt(t){var e,n,i,a,r,o,s,c,l,u,d;for(l=new Wf(t);l.a<l.c.c.length;){switch(c=jz(J1(l),10),r=null,(o=jz(yEt(c,(zYt(),vbe)),163)).g){case 1:case 2:Xst(),r=Iue;break;case 3:case 4:Xst(),r=Aue}if(r)lct(c,(lGt(),Hde),(Xst(),Iue)),r==Aue?BMt(c,o,(rit(),zye)):r==Iue&&BMt(c,o,(rit(),Hye));else if(bI(jz(yEt(c,tme),98))&&0!=c.j.c.length){for(e=!0,d=new Wf(c.j);d.a<d.c.c.length;){if(!((u=jz(J1(d),11)).j==(wWt(),sAe)&&u.e.c.length-u.g.c.length>0||u.j==SAe&&u.e.c.length-u.g.c.length<0)){e=!1;break}for(a=new Wf(u.g);a.a<a.c.c.length;)if(n=jz(J1(a),17),(s=jz(yEt(n.d.i,vbe),163))==(_ft(),$he)||s==zhe){e=!1;break}for(i=new Wf(u.e);i.a<i.c.c.length;)if(n=jz(J1(i),17),(s=jz(yEt(n.c.i,vbe),163))==(_ft(),Fhe)||s==jhe){e=!1;break}}e&&BMt(c,o,(rit(),Uye))}}}function $qt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;for(_=0,g=0,h=new Wf(e.e);h.a<h.c.c.length;){for(d=jz(J1(h),10),f=0,c=0,l=n?jz(yEt(d,qve),19).a:FZt,y=a?jz(yEt(d,Wve),19).a:FZt,u=i.Math.max(l,y),w=new Wf(d.j);w.a<w.c.c.length;){if(v=jz(J1(w),11),x=d.n.b+v.n.b+v.a.b,a)for(s=new Wf(v.g);s.a<s.c.c.length;)p=(b=(o=jz(J1(s),17)).d).i,e!=t.a[p.p]&&(m=i.Math.max(jz(yEt(p,qve),19).a,jz(yEt(p,Wve),19).a),(R=jz(yEt(o,(zYt(),dme)),19).a)>=u&&R>=m&&(f+=p.n.b+b.n.b+b.a.b-x,++c));if(n)for(s=new Wf(v.e);s.a<s.c.c.length;)p=(b=(o=jz(J1(s),17)).c).i,e!=t.a[p.p]&&(m=i.Math.max(jz(yEt(p,qve),19).a,jz(yEt(p,Wve),19).a),(R=jz(yEt(o,(zYt(),dme)),19).a)>=u&&R>=m&&(f+=p.n.b+b.n.b+b.a.b-x,++c))}c>0&&(_+=f/c,++g)}g>0?(e.a=r*_/g,e.g=g):(e.a=0,e.g=0)}function zqt(t,e){var n,i,a,r,o,s,c,l,u,d;for(i=new Wf(t.a.b);i.a<i.c.c.length;)for(s=new Wf(jz(J1(i),29).a);s.a<s.c.c.length;)o=jz(J1(s),10),e.j[o.p]=o,e.i[o.p]=e.o==(oQ(),awe)?PKt:BKt;for(DW(t.c),r=t.a.b,e.c==(gJ(),Qve)&&(r=iO(r,152)?o7(jz(r,152)):iO(r,131)?jz(r,131).a:iO(r,54)?new lw(r):new Ck(r)),N8(t.e,e,t.b),yC(e.p,null),a=r.Kc();a.Ob();)for(c=jz(a.Pb(),29).a,e.o==(oQ(),awe)&&(c=iO(c,152)?o7(jz(c,152)):iO(c,131)?jz(c,131).a:iO(c,54)?new lw(c):new Ck(c)),d=c.Kc();d.Ob();)u=jz(d.Pb(),10),e.g[u.p]==u&&sYt(t,u,e);for(zUt(t,e),n=r.Kc();n.Ob();)for(d=new Wf(jz(n.Pb(),29).a);d.a<d.c.c.length;)u=jz(J1(d),10),e.p[u.p]=e.p[e.g[u.p].p],u==e.g[u.p]&&(l=Hw(e.i[e.j[u.p].p]),(e.o==(oQ(),awe)&&l>PKt||e.o==iwe&&l<BKt)&&(e.p[u.p]=Hw(e.p[u.p])+l));t.e.cg()}function Hqt(t,e,n,i){var a,r,o,s,c;return bMt(s=new eWt(e),i),a=!0,t&&t.Xe((cGt(),dCe))&&(a=(r=jz(t.We((cGt(),dCe)),103))==(jdt(),$Se)||r==FSe||r==jSe),sPt(s,!1),Aet(s.e.wf(),new Dj(s,!1,a)),IJ(s,s.f,(Net(),Uie),(wWt(),cAe)),IJ(s,s.f,qie,EAe),IJ(s,s.g,Uie,SAe),IJ(s,s.g,qie,sAe),$mt(s,cAe),$mt(s,EAe),cZ(s,sAe),cZ(s,SAe),zB(),(o=s.A.Hc((ypt(),NAe))&&s.B.Hc((QFt(),qAe))?Qgt(s):null)&&nR(s.a,o),Fqt(s),iwt(s),awt(s),GVt(s),kFt(s),yxt(s),Fbt(s,cAe),Fbt(s,EAe),SPt(s),CHt(s),n&&(Uft(s),vxt(s),Fbt(s,sAe),Fbt(s,SAe),c=s.B.Hc((QFt(),WAe)),kTt(s,c,cAe),kTt(s,c,EAe),ETt(s,c,sAe),ETt(s,c,SAe),Kk(new NU(null,new h1(new Tf(s.i),0)),new Tt),Kk(AZ(new NU(null,xY(s.r).a.oc()),new At),new Dt),$_t(s),s.e.uf(s.o),Kk(new NU(null,xY(s.r).a.oc()),new Lt)),s.o}function Uqt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b;for(u=BKt,a=new Wf(t.a.b);a.a<a.c.c.length;)e=jz(J1(a),81),u=i.Math.min(u,e.d.f.g.c+e.e.a);for(g=new Zk,s=new Wf(t.a.a);s.a<s.c.c.length;)(o=jz(J1(s),189)).i=u,0==o.e&&n6(g,o,g.c.b,g.c);for(;0!=g.b;){for(r=(o=jz(0==g.b?null:(EN(0!=g.b),Det(g,g.a.a)),189)).f.g.c,f=o.a.a.ec().Kc();f.Ob();)d=jz(f.Pb(),81),b=o.i+d.e.a,d.d.g||d.g.c<b?d.o=b:d.o=d.g.c;for(r-=o.f.o,o.b+=r,t.c==(jdt(),jSe)||t.c==PSe?o.c+=r:o.c-=r,h=o.a.a.ec().Kc();h.Ob();)for(l=(d=jz(h.Pb(),81)).f.Kc();l.Ob();)c=jz(l.Pb(),81),p=fI(t.c)?t.f.ef(d,c):t.f.ff(d,c),c.d.i=i.Math.max(c.d.i,d.o+d.g.b+p-c.e.a),c.k||(c.d.i=i.Math.max(c.d.i,c.g.c-c.e.a)),--c.d.e,0==c.d.e&&MH(g,c.d)}for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),81)).g.c=e.o}function Vqt(t){var e,n,i,a,r,o,s,c;switch(0===(s=t.b,e=t.a,jz(yEt(t,(Fxt(),_ie)),427).g)?mL(s,new Jf(new Ut)):mL(s,new Jf(new Vt)),1===jz(yEt(t,xie),428).g?(mL(s,new Ht),mL(s,new qt),mL(s,new Pt)):(mL(s,new Ht),mL(s,new zt)),jz(yEt(t,Eie),250).g){case 0:c=new Kt;break;case 1:c=new Gt;break;case 2:c=new Zt;break;case 3:c=new Yt;break;case 5:c=new Tg(new Zt);break;case 4:c=new Tg(new Gt);break;case 7:c=new MC(new Tg(new Gt),new Tg(new Zt));break;case 8:c=new MC(new Tg(new Yt),new Tg(new Zt));break;default:c=new Tg(new Yt)}for(o=new Wf(s);o.a<o.c.c.length;){for(r=jz(J1(o),167),a=0,n=new nA(nht(i=0),nht(a));$jt(e,r,i,a);)n=jz(c.Ce(n,r),46),i=jz(n.a,19).a,a=jz(n.b,19).a;FPt(e,r,i,a)}}function qqt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;for(h=(r=t.f.b).a,u=r.b,g=t.e.g,f=t.e.f,_I(t.e,r.a,r.b),R=h/g,_=u/f,l=new AO(mZ(t.e));l.e!=l.i.gc();)Cnt(c=jz(wmt(l),137),c.i*R),Snt(c,c.j*_);for(y=new AO(yZ(t.e));y.e!=y.i.gc();)w=(m=jz(wmt(y),118)).i,x=m.j,w>0&&Cnt(m,w*R),x>0&&Snt(m,x*_);for(Qrt(t.b,new de),e=new Lm,s=new olt(new Ef(t.c).a);s.b;)i=jz((o=tnt(s)).cd(),79),n=jz(o.dd(),395).a,a=aBt(i,!1,!1),G$t(d=dkt(CEt(i),HCt(a),n),a),(v=SEt(i))&&-1==x9(e,v,0)&&(e.c[e.c.length]=v,sK(v,(EN(0!=d.b),jz(d.a.a.c,8)),n));for(b=new olt(new Ef(t.d).a);b.b;)i=jz((p=tnt(b)).cd(),79),n=jz(p.dd(),395).a,a=aBt(i,!1,!1),d=dkt(AEt(i),Xct(HCt(a)),n),G$t(d=Xct(d),a),(v=TEt(i))&&-1==x9(e,v,0)&&(e.c[e.c.length]=v,sK(v,(EN(0!=d.b),jz(d.c.b.c,8)),n))}function Wqt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;if(0!=n.c.length){for(g=new Lm,f=new Wf(n);f.a<f.c.c.length;)Wz(g,new OT((h=jz(J1(f),33)).i,h.j));for(a.n&&e&&y0(a,o2(e),($lt(),oDe));OEt(t,n);)RLt(t,n,!1);for(a.n&&e&&y0(a,o2(e),($lt(),oDe)),s=0,c=0,r=null,0!=n.c.length&&(u1(0,n.c.length),s=(r=jz(n.c[0],33)).i-(u1(0,g.c.length),jz(g.c[0],8)).a,c=r.j-(u1(0,g.c.length),jz(g.c[0],8)).b),o=i.Math.sqrt(s*s+c*c),d=qut(n);0!=d.a.gc();){for(u=d.a.ec().Kc();u.Ob();)l=jz(u.Pb(),33),b=(p=t.f).i+p.g/2,m=p.j+p.f/2,y=l.i+l.g/2,w=l.j+l.f/2-m,R=(v=y-b)/(x=i.Math.sqrt(v*v+w*w)),_=w/x,Cnt(l,l.i+R*o),Snt(l,l.j+_*o);a.n&&e&&y0(a,o2(e),($lt(),oDe)),d=qut(new QF(d))}t.a&&t.a.lg(new QF(d)),a.n&&e&&y0(a,o2(e),($lt(),oDe)),Wqt(t,e,new QF(d),a)}}function Yqt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if(b=t.n,m=t.o,f=t.d,h=Hw(_B(ept(t,(zYt(),pme)))),e){for(d=h*(e.gc()-1),g=0,l=e.Kc();l.Ob();)d+=(s=jz(l.Pb(),10)).o.a,g=i.Math.max(g,s.o.b);for(y=b.a-(d-m.a)/2,o=b.b-f.d+g,r=a=m.a/(e.gc()+1),c=e.Kc();c.Ob();)(s=jz(c.Pb(),10)).n.a=y,s.n.b=o-s.o.b,y+=s.o.a+h,(u=NOt(s)).n.a=s.o.a/2-u.a.a,u.n.b=s.o.b,(p=jz(yEt(s,(lGt(),Bde)),11)).e.c.length+p.g.c.length==1&&(p.n.a=r-p.a.a,p.n.b=0,CQ(p,t)),r+=a}if(n){for(d=h*(n.gc()-1),g=0,l=n.Kc();l.Ob();)d+=(s=jz(l.Pb(),10)).o.a,g=i.Math.max(g,s.o.b);for(y=b.a-(d-m.a)/2,o=b.b+m.b+f.a-g,r=a=m.a/(n.gc()+1),c=n.Kc();c.Ob();)(s=jz(c.Pb(),10)).n.a=y,s.n.b=o,y+=s.o.a+h,(u=NOt(s)).n.a=s.o.a/2-u.a.a,u.n.b=0,(p=jz(yEt(s,(lGt(),Bde)),11)).e.c.length+p.g.c.length==1&&(p.n.a=r-p.a.a,p.n.b=m.b,CQ(p,t)),r+=a}}function Gqt(t,e){var n,a,r,o,s,c;if(jz(yEt(e,(lGt(),Xde)),21).Hc((hBt(),dde))){for(c=new Wf(e.a);c.a<c.c.c.length;)(o=jz(J1(c),10)).k==(oCt(),Sse)&&(r=jz(yEt(o,(zYt(),Cbe)),142),t.c=i.Math.min(t.c,o.n.a-r.b),t.a=i.Math.max(t.a,o.n.a+o.o.a+r.c),t.d=i.Math.min(t.d,o.n.b-r.d),t.b=i.Math.max(t.b,o.n.b+o.o.b+r.a));for(s=new Wf(e.a);s.a<s.c.c.length;)if((o=jz(J1(s),10)).k!=(oCt(),Sse))switch(o.k.g){case 2:if((a=jz(yEt(o,(zYt(),vbe)),163))==(_ft(),jhe)){o.n.a=t.c-10,Kwt(o,new Vn).Jb(new np(o));break}if(a==zhe){o.n.a=t.a+10,Kwt(o,new qn).Jb(new ip(o));break}if((n=jz(yEt(o,ehe),303))==(U9(),Sde)){dUt(o).Jb(new ap(o)),o.n.b=t.d-10;break}if(n==Ede){dUt(o).Jb(new rp(o)),o.n.b=t.b+10;break}break;default:throw $m(new Pw("The node type "+o.k+" is not supported by the "+Yse))}}}function Zqt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p;for(c=new OT(i.i+i.g/2,i.j+i.f/2),h=WHt(i),f=jz(JIt(e,(zYt(),tme)),98),p=jz(JIt(i,rme),61),jA(dmt(i),Qbe)||(g=0==i.i&&0==i.j?0:tEt(i,p),Kmt(i,Qbe,g)),lct(a=hYt(i,f,p,h,new OT(e.g,e.f),c,new OT(i.g,i.f),jz(yEt(n,Vpe),103),n),(lGt(),fhe),i),jh(r=jz(OU(a.j,0),11),xjt(i)),lct(a,ime,(dAt(),Qht(iAe))),u=jz(JIt(e,ime),174).Hc(eAe),s=new AO((!i.n&&(i.n=new tW(HDe,i,1,7)),i.n));s.e!=s.i.gc();)if(!zw(RB(JIt(o=jz(wmt(s),137),Hbe)))&&o.a&&(d=zut(o),Wz(r.f,d),!u))switch(l=0,$q(jz(JIt(e,ime),21))&&(l=IAt(new OT(o.i,o.j),new OT(o.g,o.f),new OT(i.g,i.f),0,p)),p.g){case 2:case 4:d.o.a=l;break;case 1:case 3:d.o.b=l}lct(a,Cme,_B(JIt(KJ(e),Cme))),lct(a,Sme,_B(JIt(KJ(e),Sme))),lct(a,kme,_B(JIt(KJ(e),kme))),Wz(n.a,a),YG(t.a,i,a)}function Kqt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(Akt(n,"Processor arrange level",1),u=0,kK(),Fat(e,new am((HUt(),exe))),r=e.b,s=cmt(e,e.b),l=!0;l&&s.b.b!=s.d.a;)b=jz(V0(s),86),0==jz(yEt(b,exe),19).a?--r:l=!1;if(o=new JF(new s1(e,0,r)),c=new JF(new s1(e,r,e.b)),0==o.b)for(f=cmt(c,0);f.b!=f.d.c;)lct(jz(d4(f),86),cxe,nht(u++));else for(d=o.b,v=cmt(o,0);v.b!=v.d.c;){for(lct(y=jz(d4(v),86),cxe,nht(u++)),Kqt(t,i=Mst(y),yrt(n,1/d|0)),Fat(i,GG(new am(cxe))),h=new Zk,m=cmt(i,0);m.b!=m.d.c;)for(b=jz(d4(m),86),p=cmt(y.d,0);p.b!=p.d.c;)(g=jz(d4(p),188)).c==b&&n6(h,g,h.c.b,h.c);for(yK(y.d),jat(y.d,h),s=cmt(c,c.b),a=y.d.b,l=!0;0<a&&l&&s.b.b!=s.d.a;)b=jz(V0(s),86),0==jz(yEt(b,exe),19).a?(lct(b,cxe,nht(u++)),--a,yet(s)):l=!1}zCt(n)}function Xqt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;for(Akt(e,"Inverted port preprocessing",1),s=new _2(t.b,0),n=null,b=new Lm;s.b<s.d.gc();){for(p=n,EN(s.b<s.d.gc()),n=jz(s.d.Xb(s.c=s.b++),29),u=new Wf(b);u.a<u.c.c.length;)EQ(c=jz(J1(u),10),p);for(b.c=O5(Dte,zGt,1,0,5,1),d=new Wf(n.a);d.a<d.c.c.length;)if((c=jz(J1(d),10)).k==(oCt(),Sse)&&bI(jz(yEt(c,(zYt(),tme)),98))){for(g=aPt(c,(rit(),zye),(wWt(),sAe)).Kc();g.Ob();)for(h=jz(g.Pb(),11),a=0,r=(i=jz(Zbt(o=h.e,O5(yse,a1t,17,o.c.length,0,1)),474)).length;a<r;++a)Izt(t,h,i[a],b);for(f=aPt(c,Hye,SAe).Kc();f.Ob();)for(h=jz(f.Pb(),11),a=0,r=(i=jz(Zbt(o=h.g,O5(yse,a1t,17,o.c.length,0,1)),474)).length;a<r;++a)Dzt(t,h,i[a],b)}}for(l=new Wf(b);l.a<l.c.c.length;)EQ(c=jz(J1(l),10),n);zCt(e)}function Jqt(t,e,n,i,a,r){var o,s,c,l,u,d;for(Hot(l=new SCt,e),HTt(l,jz(JIt(e,(zYt(),rme)),61)),lct(l,(lGt(),fhe),e),CQ(l,n),(d=l.o).a=e.g,d.b=e.f,(u=l.n).a=e.i,u.b=e.j,YG(t.a,e,l),(o=o6(DZ(htt(new NU(null,(!e.e&&(e.e=new cF(BDe,e,7,4)),new h1(e.e,16))),new Ge),new We),new Wg(e)))||(o=o6(DZ(htt(new NU(null,(!e.d&&(e.d=new cF(BDe,e,8,5)),new h1(e.d,16))),new Ze),new Ye),new Yg(e))),o||(o=o6(new NU(null,(!e.e&&(e.e=new cF(BDe,e,7,4)),new h1(e.e,16))),new Ke)),lct(l,the,(cM(),!!o)),bUt(l,r,a,jz(JIt(e,Jbe),8)),c=new AO((!e.n&&(e.n=new tW(HDe,e,1,7)),e.n));c.e!=c.i.gc();)!zw(RB(JIt(s=jz(wmt(c),137),Hbe)))&&s.a&&Wz(l.f,zut(s));switch(a.g){case 2:case 1:(l.j==(wWt(),cAe)||l.j==EAe)&&i.Fc((hBt(),pde));break;case 4:case 3:(l.j==(wWt(),sAe)||l.j==SAe)&&i.Fc((hBt(),pde))}return l}function Qqt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g,p,b,m,y,v;for(h=null,a==(fJ(),Lwe)?h=e:a==Owe&&(h=n),p=h.a.ec().Kc();p.Ob();){for(g=jz(p.Pb(),11),b=Dct(Cst(Hx(EEe,1),cZt,8,0,[g.i.n,g.n,g.a])).b,v=new Ny,c=new Ny,u=new m7(g.b);yL(u.a)||yL(u.b);)if(zw(RB(yEt(l=jz(yL(u.a)?J1(u.a):J1(u.b),17),(lGt(),Che))))==r&&-1!=x9(o,l,0)){if(m=l.d==g?l.c:l.d,y=Dct(Cst(Hx(EEe,1),cZt,8,0,[m.i.n,m.n,m.a])).b,i.Math.abs(y-b)<.2)continue;y<b?e.a._b(m)?RW(v,new nA(Lwe,l)):RW(v,new nA(Owe,l)):e.a._b(m)?RW(c,new nA(Lwe,l)):RW(c,new nA(Owe,l))}if(v.a.gc()>1)for(t6(v,new sT(t,f=new lUt(g,v,a))),s.c[s.c.length]=f,d=v.a.ec().Kc();d.Ob();)y9(o,jz(d.Pb(),46).b);if(c.a.gc()>1)for(t6(c,new cT(t,f=new lUt(g,c,a))),s.c[s.c.length]=f,d=c.a.ec().Kc();d.Ob();)y9(o,jz(d.Pb(),46).b)}}function tWt(t){LE(t,new kkt(fR(bR(hR(pR(gR(new bs,f3t),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new Uo),f3t))),r2(t,f3t,p4t,ymt(ORe)),r2(t,f3t,mQt,ymt(BRe)),r2(t,f3t,CQt,ymt(CRe)),r2(t,f3t,$Qt,ymt(SRe)),r2(t,f3t,EQt,ymt(TRe)),r2(t,f3t,SQt,ymt(ERe)),r2(t,f3t,kQt,ymt(ARe)),r2(t,f3t,TQt,ymt(LRe)),r2(t,f3t,l3t,ymt(_Re)),r2(t,f3t,c3t,ymt(kRe)),r2(t,f3t,h3t,ymt(DRe)),r2(t,f3t,o3t,ymt(IRe)),r2(t,f3t,s3t,ymt(MRe)),r2(t,f3t,u3t,ymt(NRe)),r2(t,f3t,d3t,ymt(PRe))}function eWt(t){var e;if(this.r=OZ(new Ct,new St),this.b=new zft(jz(yY(MAe),290)),this.p=new zft(jz(yY(MAe),290)),this.i=new zft(jz(yY(Lae),290)),this.e=t,this.o=new hI(t.rf()),this.D=t.Df()||zw(RB(t.We((cGt(),kCe)))),this.A=jz(t.We((cGt(),BCe)),21),this.B=jz(t.We(zCe),21),this.q=jz(t.We(rSe),98),this.u=jz(t.We(lSe),21),!fEt(this.u))throw $m(new nx("Invalid port label placement: "+this.u));if(this.v=zw(RB(t.We(dSe))),this.j=jz(t.We(MCe),21),!tOt(this.j))throw $m(new nx("Invalid node label placement: "+this.j));this.n=jz(Qwt(t,LCe),116),this.k=Hw(_B(Qwt(t,TSe))),this.d=Hw(_B(Qwt(t,SSe))),this.w=Hw(_B(Qwt(t,NSe))),this.s=Hw(_B(Qwt(t,ASe))),this.t=Hw(_B(Qwt(t,DSe))),this.C=jz(Qwt(t,OSe),142),this.c=2*this.d,e=!this.B.Hc((QFt(),zAe)),this.f=new Tbt(0,e,0),this.g=new Tbt(1,e,0),ww(this.f,(Net(),Vie),this.g)}function nWt(t,e,n,a,r){var o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C;for(w=0,b=0,p=0,g=1,v=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));v.e!=v.i.gc();)g+=F4(new oq(XO(gOt(m=jz(wmt(v),33)).a.Kc(),new u))),k=m.g,b=i.Math.max(b,k),f=m.f,p=i.Math.max(p,f),w+=k*f;for(s=w+2*a*a*g*(!t.a&&(t.a=new tW(UDe,t,10,11)),t.a).i,o=i.Math.sqrt(s),l=i.Math.max(o*n,b),c=i.Math.max(o/n,p),y=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));y.e!=y.i.gc();)m=jz(wmt(y),33),E=r.b+(zLt(e,26)*iXt+zLt(e,27)*aXt)*(l-m.g),C=r.b+(zLt(e,26)*iXt+zLt(e,27)*aXt)*(c-m.f),Cnt(m,E),Snt(m,C);for(_=l+(r.b+r.c),R=c+(r.d+r.a),x=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));x.e!=x.i.gc();)for(h=new oq(XO(gOt(jz(wmt(x),33)).a.Kc(),new u));gIt(h);)QDt(d=jz(V6(h),79))||$Yt(d,e,_,R);PWt(t,_+=r.b+r.c,R+=r.d+r.a,!1,!0)}function iWt(t){var e,n,i,a,r,o,s,c,l,u,d;if(null==t)throw $m(new _x(VGt));if(l=t,c=!1,(r=t.length)>0&&(d1(0,t.length),(45==(e=t.charCodeAt(0))||43==e)&&(t=t.substr(1),--r,c=45==e)),0==r)throw $m(new _x(NKt+l+'"'));for(;t.length>0&&(d1(0,t.length),48==t.charCodeAt(0));)t=t.substr(1),--r;if(r>(n$t(),Mee)[10])throw $m(new _x(NKt+l+'"'));for(a=0;a<r;a++)if(-1==ebt((d1(a,t.length),t.charCodeAt(a))))throw $m(new _x(NKt+l+'"'));for(d=0,o=Lee[10],u=Oee[10],s=w9(Nee[10]),n=!0,(i=r%o)>0&&(d=-parseInt(t.substr(0,i),10),t=t.substr(i),r-=i,n=!1);r>=o;){if(i=parseInt(t.substr(0,o),10),t=t.substr(o),r-=o,n)n=!1;else{if(Gut(d,s)<0)throw $m(new _x(NKt+l+'"'));d=aft(d,u)}d=nft(d,i)}if(Gut(d,0)>0)throw $m(new _x(NKt+l+'"'));if(!c&&Gut(d=w9(d),0)<0)throw $m(new _x(NKt+l+'"'));return d}function aWt(t,e){var n,i,a,r,o,s,c;if(XH(),this.a=new qL(this),this.b=t,this.c=e,this.f=TW(j9((TSt(),KLe),e)),this.f.dc())if((s=yRt(KLe,t))==e)for(this.e=!0,this.d=new Lm,this.f=new hc,this.f.Fc(E9t),jz(OHt(F9(KLe,qet(t)),""),26)==t&&this.f.Fc(aq(KLe,qet(t))),a=RFt(KLe,t).Kc();a.Ob();)switch(i=jz(a.Pb(),170),MG(j9(KLe,i))){case 4:this.d.Fc(i);break;case 5:this.f.Gc(TW(j9(KLe,i)))}else if(XE(),jz(e,66).Oj())for(this.e=!0,this.f=null,this.d=new Lm,o=0,c=(null==t.i&&H$t(t),t.i).length;o<c;++o)for(null==t.i&&H$t(t),n=t.i,i=o>=0&&o<n.length?n[o]:null,r=X1(j9(KLe,i));r;r=X1(j9(KLe,r)))r==e&&this.d.Fc(i);else 1==MG(j9(KLe,e))&&s?(this.f=null,this.d=(_Dt(),uOe)):(this.f=null,this.e=!0,this.d=(kK(),new Hf(e)));else this.e=5==MG(j9(KLe,e)),this.f.Fb(aOe)&&(this.f=aOe)}function rWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p;for(n=0,a=Cvt(t,e),f=t.s,g=t.t,u=jz(jz(c7(t.r,e),21),84).Kc();u.Ob();)if((l=jz(u.Pb(),111)).c&&!(l.c.d.c.length<=0)){switch(p=l.b.rf(),c=l.b.Xe((cGt(),aSe))?Hw(_B(l.b.We(aSe))):0,(h=(d=l.c).i).b=(s=d.n,d.e.a+s.b+s.c),h.a=(o=d.n,d.e.b+o.d+o.a),e.g){case 1:h.c=l.a?(p.a-h.b)/2:p.a+f,h.d=p.b+c+a,u8(d,(K8(),Kie)),WB(d,(H9(),aae));break;case 3:h.c=l.a?(p.a-h.b)/2:p.a+f,h.d=-c-a-h.a,u8(d,(K8(),Kie)),WB(d,(H9(),nae));break;case 2:h.c=-c-a-h.b,l.a?(r=t.v?h.a:jz(OU(d.d,0),181).rf().b,h.d=(p.b-r)/2):h.d=p.b+g,u8(d,(K8(),Jie)),WB(d,(H9(),iae));break;case 4:h.c=p.a+c+a,l.a?(r=t.v?h.a:jz(OU(d.d,0),181).rf().b,h.d=(p.b-r)/2):h.d=p.b+g,u8(d,(K8(),Xie)),WB(d,(H9(),iae))}(e==(wWt(),cAe)||e==EAe)&&(n=i.Math.max(n,h.a))}n>0&&(jz(oZ(t.b,e),124).a.b=n)}function oWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;for(Akt(e,"Comment pre-processing",1),n=0,c=new Wf(t.a);c.a<c.c.c.length;)if(zw(RB(yEt(s=jz(J1(c),10),(zYt(),Rpe))))){for(++n,a=0,i=null,l=null,g=new Wf(s.j);g.a<g.c.c.length;)a+=(h=jz(J1(g),11)).e.c.length+h.g.c.length,1==h.e.c.length&&(l=(i=jz(OU(h.e,0),17)).c),1==h.g.c.length&&(l=(i=jz(OU(h.g,0),17)).d);if(1!=a||l.e.c.length+l.g.c.length!=1||zw(RB(yEt(l.i,Rpe)))){for(b=new Lm,f=new Wf(s.j);f.a<f.c.c.length;){for(d=new Wf((h=jz(J1(f),11)).g);d.a<d.c.c.length;)0==(u=jz(J1(d),17)).d.g.c.length||(b.c[b.c.length]=u);for(o=new Wf(h.e);o.a<o.c.c.length;)0==(r=jz(J1(o),17)).c.e.c.length||(b.c[b.c.length]=r)}for(p=new Wf(b);p.a<p.c.c.length;)tzt(jz(J1(p),17),!0)}else QWt(s,i,l,l.i),AW(c)}e.n&&TH(e,"Found "+n+" comment boxes"),zCt(e)}function sWt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p;if(h=Hw(_B(yEt(t,(zYt(),Cme)))),f=Hw(_B(yEt(t,Sme))),d=Hw(_B(yEt(t,kme))),s=t.o,o=(r=jz(OU(t.j,0),11)).n,p=_St(r,d)){if(e.Hc((dAt(),eAe)))switch(jz(yEt(t,(lGt(),Gde)),61).g){case 1:p.c=(s.a-p.b)/2-o.a,p.d=f;break;case 3:p.c=(s.a-p.b)/2-o.a,p.d=-f-p.a;break;case 2:n&&0==r.e.c.length&&0==r.g.c.length?(u=i?p.a:jz(OU(r.f,0),70).o.b,p.d=(s.b-u)/2-o.b):p.d=s.b+f-o.b,p.c=-h-p.b;break;case 4:n&&0==r.e.c.length&&0==r.g.c.length?(u=i?p.a:jz(OU(r.f,0),70).o.b,p.d=(s.b-u)/2-o.b):p.d=s.b+f-o.b,p.c=h}else if(e.Hc(iAe))switch(jz(yEt(t,(lGt(),Gde)),61).g){case 1:case 3:p.c=o.a+h;break;case 2:case 4:n&&!r.c?(u=i?p.a:jz(OU(r.f,0),70).o.b,p.d=(s.b-u)/2-o.b):p.d=o.b+f}for(a=p.d,l=new Wf(r.f);l.a<l.c.c.length;)(g=(c=jz(J1(l),70)).n).a=p.c,g.b=a,a+=c.o.b+d}}function cWt(){ND(dOe,new Zl),ND(HOe,new ou),ND(UOe,new mu),ND(VOe,new Tu),ND(zee,new Lu),ND(Hx(IMe,1),new Ou),ND(wee,new Mu),ND(Ree,new Nu),ND(zee,new jl),ND(zee,new $l),ND(zee,new zl),ND(Cee,new Hl),ND(zee,new Ul),ND(Bte,new Vl),ND(Bte,new ql),ND(zee,new Wl),ND(See,new Yl),ND(zee,new Gl),ND(zee,new Kl),ND(zee,new Xl),ND(zee,new Jl),ND(zee,new Ql),ND(Hx(IMe,1),new tu),ND(zee,new eu),ND(zee,new nu),ND(Bte,new iu),ND(Bte,new au),ND(zee,new ru),ND(Dee,new su),ND(zee,new cu),ND(Bee,new lu),ND(zee,new uu),ND(zee,new du),ND(zee,new hu),ND(zee,new fu),ND(Bte,new gu),ND(Bte,new pu),ND(zee,new bu),ND(zee,new yu),ND(zee,new vu),ND(zee,new wu),ND(zee,new xu),ND(zee,new Ru),ND(Fee,new _u),ND(zee,new ku),ND(zee,new Eu),ND(zee,new Cu),ND(Fee,new Su),ND(Bee,new Au),ND(zee,new Du),ND(Dee,new Iu)}function lWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if((d=e.length)>0&&(d1(0,e.length),64!=(s=e.charCodeAt(0)))){if(37==s&&(c=!1,0!=(u=e.lastIndexOf("%"))&&(u==d-1||(d1(u+1,e.length),c=46==e.charCodeAt(u+1))))){if(y=mF("%",o=e.substr(1,u-1))?null:IWt(o),i=0,c)try{i=djt(e.substr(u+2),FZt,NGt)}catch(v){throw iO(v=dst(v),127)?$m(new I9(v)):$m(v)}for(p=Rat(t.Wg());p.Ob();)if(iO(f=kot(p),510)&&(m=(a=jz(f,590)).d,(null==y?null==m:mF(y,m))&&0==i--))return a;return null}if(h=-1==(l=e.lastIndexOf("."))?e:e.substr(0,l),n=0,-1!=l)try{n=djt(e.substr(l+1),FZt,NGt)}catch(v){if(!iO(v=dst(v),127))throw $m(v);h=e}for(h=mF("%",h)?null:IWt(h),g=Rat(t.Wg());g.Ob();)if(iO(f=kot(g),191)&&(b=(r=jz(f,191)).ne(),(null==h?null==b:mF(h,b))&&0==n--))return r;return null}return FUt(t,e)}function uWt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k;for(v=new Lm,d=new Wf(t.b);d.a<d.c.c.length;)for(g=new Wf(jz(J1(d),29).a);g.a<g.c.c.length;)if((h=jz(J1(g),10)).k==(oCt(),kse)&&IN(h,(lGt(),Yde))){for(p=null,m=null,b=null,R=new Wf(h.j);R.a<R.c.c.length;)switch(x=jz(J1(R),11),x.j.g){case 4:p=x;break;case 2:m=x;break;default:b=x}for(l=new BR((y=jz(OU(b.g,0),17)).a),VP(c=new hI(b.n),h.n),JW(cmt(l,0),c),w=Xct(y.a),VP(u=new hI(b.n),h.n),n6(w,u,w.c.b,w.c),_=jz(yEt(h,Yde),10),k=jz(OU(_.j,0),11),r=0,s=(i=jz(Zbt(p.e,O5(yse,a1t,17,0,0,1)),474)).length;r<s;++r)_Q(e=i[r],k),Ylt(e.a,e.a.b,l);for(a=0,o=(n=X0(m.g)).length;a<o;++a)kQ(e=n[a],k),Ylt(e.a,0,w);kQ(y,null),_Q(y,null),v.c[v.c.length]=h}for(f=new Wf(v);f.a<f.c.c.length;)EQ(h=jz(J1(f),10),null)}function dWt(){var t,e,n;for(dWt=D,new vtt(1,0),new vtt(10,0),new vtt(0,0),Hee=O5(Kee,cZt,240,11,0,1),Uee=O5(SMe,YZt,25,100,15,1),Vee=Cst(Hx(LMe,1),HKt,25,15,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,0x878678326eac9]),qee=O5(TMe,lKt,25,Vee.length,15,1),Wee=Cst(Hx(LMe,1),HKt,25,15,[1,10,100,GZt,1e4,UKt,1e6,1e7,1e8,DKt,1e10,1e11,1e12,1e13,1e14,1e15,1e16]),Yee=O5(TMe,lKt,25,Wee.length,15,1),Gee=O5(Kee,cZt,240,11,0,1),t=0;t<Gee.length;t++)Hee[t]=new vtt(t,0),Gee[t]=new vtt(0,t),Uee[t]=48;for(;t<Uee.length;t++)Uee[t]=48;for(n=0;n<qee.length;n++)qee[n]=rAt(Vee[n]);for(e=0;e<Yee.length;e++)Yee[e]=rAt(Wee[e]);IDt()}function hWt(){function t(){this.obj=this.createObject()}return t.prototype.createObject=function(t){return Object.create(null)},t.prototype.get=function(t){return this.obj[t]},t.prototype.set=function(t,e){this.obj[t]=e},t.prototype[nXt]=function(t){delete this.obj[t]},t.prototype.keys=function(){return Object.getOwnPropertyNames(this.obj)},t.prototype.entries=function(){var t=this.keys(),e=this,n=0;return{next:function(){if(n>=t.length)return{done:!0};var i=t[n++];return{value:[i,e.get(i)],done:!1}}}},VBt()||(t.prototype.createObject=function(){return{}},t.prototype.get=function(t){return this.obj[":"+t]},t.prototype.set=function(t,e){this.obj[":"+t]=e},t.prototype[nXt]=function(t){delete this.obj[":"+t]},t.prototype.keys=function(){var t=[];for(var e in this.obj)58==e.charCodeAt(0)&&t.push(e.substring(1));return t}),t}function fWt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p;if(C$t(),null==t)return null;if(0==(d=8*t.length))return"";for(h=d/24|0,r=null,r=O5(SMe,YZt,25,4*(0!=(s=d%24)?h+1:h),15,1),l=0,u=0,e=0,n=0,i=0,o=0,a=0,c=0;c<h;c++)e=t[a++],u=(15&(n=t[a++]))<<24>>24,l=(3&e)<<24>>24,f=-128&e?(e>>2^192)<<24>>24:e>>2<<24>>24,g=-128&n?(n>>4^240)<<24>>24:n>>4<<24>>24,p=-128&(i=t[a++])?(i>>6^252)<<24>>24:i>>6<<24>>24,r[o++]=WOe[f],r[o++]=WOe[g|l<<4],r[o++]=WOe[u<<2|p],r[o++]=WOe[63&i];return 8==s?(l=(3&(e=t[a]))<<24>>24,f=-128&e?(e>>2^192)<<24>>24:e>>2<<24>>24,r[o++]=WOe[f],r[o++]=WOe[l<<4],r[o++]=61,r[o++]=61):16==s&&(e=t[a],u=(15&(n=t[a+1]))<<24>>24,l=(3&e)<<24>>24,f=-128&e?(e>>2^192)<<24>>24:e>>2<<24>>24,g=-128&n?(n>>4^240)<<24>>24:n>>4<<24>>24,r[o++]=WOe[f],r[o++]=WOe[g|l<<4],r[o++]=WOe[u<<2],r[o++]=61),$pt(r,0,r.length)}function gWt(t,e){var n,a,r,o,s,c;if(0==t.e&&t.p>0&&(t.p=-(t.p-1)),t.p>FZt&&t3(e,t.p-cKt),s=e.q.getDate(),FJ(e,1),t.k>=0&&bQ(e,t.k),t.c>=0?FJ(e,t.c):t.k>=0?(a=35-new mct(e.q.getFullYear()-cKt,e.q.getMonth(),35).q.getDate(),FJ(e,i.Math.min(a,s))):FJ(e,s),t.f<0&&(t.f=e.q.getHours()),t.b>0&&t.f<12&&(t.f+=12),aO(e,24==t.f&&t.g?0:t.f),t.j>=0&&g7(e,t.j),t.n>=0&&V5(e,t.n),t.i>=0&&fD(e,ift(aft(ARt(uot(e.q.getTime()),GZt),GZt),t.i)),t.a&&(t3(r=new Ak,r.q.getFullYear()-cKt-80),sC(uot(e.q.getTime()),uot(r.q.getTime()))&&t3(e,r.q.getFullYear()-cKt+100)),t.d>=0)if(-1==t.c)(n=(7+t.d-e.q.getDay())%7)>3&&(n-=7),c=e.q.getMonth(),FJ(e,e.q.getDate()+n),e.q.getMonth()!=c&&FJ(e,e.q.getDate()+(n>0?-7:7));else if(e.q.getDay()!=t.d)return!1;return t.o>FZt&&(o=e.q.getTimezoneOffset(),fD(e,ift(uot(e.q.getTime()),60*(t.o-o)*GZt))),!0}function pWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m;if(iO(a=yEt(e,(lGt(),fhe)),239)){for(f=jz(a,33),g=e.e,d=new hI(e.c),r=e.d,d.a+=r.b,d.b+=r.d,kM(jz(JIt(f,(zYt(),zbe)),174),(QFt(),HAe))&&(Sh(h=jz(JIt(f,Ube),116),r.a),Bh(h,r.d),Th(h,r.b),Ph(h,r.c)),n=new Lm,l=new Wf(e.a);l.a<l.c.c.length;)for(iO(yEt(s=jz(J1(l),10),fhe),239)?SWt(s,d):iO(yEt(s,fhe),186)&&!g&&kI(i=jz(yEt(s,fhe),118),(b=v$t(e,s,i.g,i.f)).a,b.b),p=new Wf(s.j);p.a<p.c.c.length;)Kk(AZ(new NU(null,new h1(jz(J1(p),11).g,16)),new Gg(s)),new Zg(n));if(g)for(p=new Wf(g.j);p.a<p.c.c.length;)Kk(AZ(new NU(null,new h1(jz(J1(p),11).g,16)),new Kg(g)),new Xg(n));for(m=jz(JIt(f,Xpe),218),o=new Wf(n);o.a<o.c.c.length;)bqt(jz(J1(o),17),m,d);for(yjt(e),c=new Wf(e.a);c.a<c.c.c.length;)(u=(s=jz(J1(c),10)).e)&&pWt(t,u)}}function bWt(t){LE(t,new kkt(mR(fR(bR(hR(pR(gR(new bs,pQt),"ELK Force"),"Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported."),new ge),pQt),xV((lIt(),QDe),Cst(Hx(iIe,1),IZt,237,0,[XDe]))))),r2(t,pQt,bQt,nht(1)),r2(t,pQt,mQt,80),r2(t,pQt,yQt,5),r2(t,pQt,GJt,gQt),r2(t,pQt,vQt,nht(1)),r2(t,pQt,wQt,(cM(),!0)),r2(t,pQt,ZJt,Gre),r2(t,pQt,xQt,ymt($re)),r2(t,pQt,RQt,ymt(Zre)),r2(t,pQt,_Qt,!1),r2(t,pQt,kQt,ymt(Wre)),r2(t,pQt,EQt,ymt(qre)),r2(t,pQt,CQt,ymt(Vre)),r2(t,pQt,SQt,ymt(Ure)),r2(t,pQt,TQt,ymt(Kre)),r2(t,pQt,sQt,ymt(Hre)),r2(t,pQt,uQt,ymt(aoe)),r2(t,pQt,cQt,ymt(zre)),r2(t,pQt,hQt,ymt(Qre)),r2(t,pQt,lQt,ymt(toe))}function mWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g;if(!jz(jz(c7(t.r,e),21),84).dc()){if(l=(s=jz(oZ(t.b,e),124)).i,c=s.n,d=CBt(t,e),a=l.b-c.b-c.c,r=s.a.a,o=l.c+c.b,g=t.w,(d==(amt(),$Te)||d==HTe)&&1==jz(jz(c7(t.r,e),21),84).gc()&&(r=d==$Te?r-2*t.w:r,d=jTe),a<r&&!t.B.Hc((QFt(),YAe)))d==$Te?o+=g+=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()+1):g+=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()-1);else switch(a<r&&(r=d==$Te?r-2*t.w:r,d=jTe),d.g){case 3:o+=(a-r)/2;break;case 4:o+=a-r;break;case 0:n=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()+1),o+=g+=i.Math.max(0,n);break;case 1:n=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()-1),g+=i.Math.max(0,n)}for(f=jz(jz(c7(t.r,e),21),84).Kc();f.Ob();)(h=jz(f.Pb(),111)).e.a=o+h.d.b,h.e.b=(u=h.b).Xe((cGt(),aSe))?u.Hf()==(wWt(),cAe)?-u.rf().b-Hw(_B(u.We(aSe))):Hw(_B(u.We(aSe))):u.Hf()==(wWt(),cAe)?-u.rf().b:0,o+=h.d.b+h.b.rf().a+h.d.c+g}}function yWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p;if(!jz(jz(c7(t.r,e),21),84).dc()){if(l=(s=jz(oZ(t.b,e),124)).i,c=s.n,h=CBt(t,e),a=l.a-c.d-c.a,r=s.a.b,o=l.d+c.d,p=t.w,u=t.o.a,(h==(amt(),$Te)||h==HTe)&&1==jz(jz(c7(t.r,e),21),84).gc()&&(r=h==$Te?r-2*t.w:r,h=jTe),a<r&&!t.B.Hc((QFt(),YAe)))h==$Te?o+=p+=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()+1):p+=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()-1);else switch(a<r&&(r=h==$Te?r-2*t.w:r,h=jTe),h.g){case 3:o+=(a-r)/2;break;case 4:o+=a-r;break;case 0:n=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()+1),o+=p+=i.Math.max(0,n);break;case 1:n=(a-r)/(jz(jz(c7(t.r,e),21),84).gc()-1),p+=i.Math.max(0,n)}for(g=jz(jz(c7(t.r,e),21),84).Kc();g.Ob();)(f=jz(g.Pb(),111)).e.a=(d=f.b).Xe((cGt(),aSe))?d.Hf()==(wWt(),SAe)?-d.rf().a-Hw(_B(d.We(aSe))):u+Hw(_B(d.We(aSe))):d.Hf()==(wWt(),SAe)?-d.rf().a:u,f.e.b=o+f.d.d,o+=f.d.d+f.b.rf().b+f.d.a+p}}function vWt(t){var e,n,a,r,o,s,c,l,d,h,f,g,p,b,m;for(t.n=Hw(_B(yEt(t.g,(zYt(),Tme)))),t.e=Hw(_B(yEt(t.g,Rme))),t.i=t.g.b.c.length,c=t.i-1,g=0,t.j=0,t.k=0,t.a=r7(O5(Dee,cZt,19,t.i,0,1)),t.b=r7(O5(Cee,cZt,333,t.i,7,1)),s=new Wf(t.g.b);s.a<s.c.c.length;){for((r=jz(J1(s),29)).p=c,f=new Wf(r.a);f.a<f.c.c.length;)(h=jz(J1(f),10)).p=g,++g;--c}for(t.f=O5(TMe,lKt,25,g,15,1),t.c=vU(TMe,[cZt,lKt],[48,25],15,[g,3],2),t.o=new Lm,t.p=new Lm,e=0,t.d=0,o=new Wf(t.g.b);o.a<o.c.c.length;){for(c=(r=jz(J1(o),29)).p,a=0,m=0,l=r.a.c.length,d=0,f=new Wf(r.a);f.a<f.c.c.length;)g=(h=jz(J1(f),10)).p,t.f[g]=h.c.p,d+=h.o.b+t.n,n=F4(new oq(XO(uft(h).a.Kc(),new u))),b=F4(new oq(XO(dft(h).a.Kc(),new u))),t.c[g][0]=b-n,t.c[g][1]=n,t.c[g][2]=b,a+=n,m+=b,n>0&&Wz(t.p,h),Wz(t.o,h);p=l+(e-=a),d+=e*t.e,i6(t.a,c,nht(p)),i6(t.b,c,d),t.j=i.Math.max(t.j,p),t.k=i.Math.max(t.k,d),t.d+=e,e+=m}}function wWt(){var t;wWt=D,CAe=new WT(lJt,0),cAe=new WT(yJt,1),sAe=new WT(vJt,2),EAe=new WT(wJt,3),SAe=new WT(xJt,4),kK(),fAe=new Ax(new ZF(t=jz(YR(MAe),9),jz(kP(t,t.length),9),0)),gAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[]))),lAe=udt(xV(sAe,Cst(Hx(MAe,1),KQt,61,0,[]))),RAe=udt(xV(EAe,Cst(Hx(MAe,1),KQt,61,0,[]))),kAe=udt(xV(SAe,Cst(Hx(MAe,1),KQt,61,0,[]))),vAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[EAe]))),hAe=udt(xV(sAe,Cst(Hx(MAe,1),KQt,61,0,[SAe]))),xAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[SAe]))),pAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[sAe]))),_Ae=udt(xV(EAe,Cst(Hx(MAe,1),KQt,61,0,[SAe]))),uAe=udt(xV(sAe,Cst(Hx(MAe,1),KQt,61,0,[EAe]))),yAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[sAe,SAe]))),dAe=udt(xV(sAe,Cst(Hx(MAe,1),KQt,61,0,[EAe,SAe]))),wAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[EAe,SAe]))),bAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[sAe,EAe]))),mAe=udt(xV(cAe,Cst(Hx(MAe,1),KQt,61,0,[sAe,EAe,SAe])))}function xWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if(0!=e.b){for(h=new Zk,o=null,f=null,n=CJ(i.Math.floor(i.Math.log(e.b)*i.Math.LOG10E)+1),s=0,y=cmt(e,0);y.b!=y.d.c;)for(b=jz(d4(y),86),HA(f)!==HA(yEt(b,(HUt(),nxe)))&&(f=kB(yEt(b,nxe)),s=0),o=null!=f?f+f0(s++,n):f0(s++,n),lct(b,nxe,o),p=new hb(cmt(new db(b).a.d,0));x_(p.a);)n6(h,g=jz(d4(p.a),188).c,h.c.b,h.c),lct(g,nxe,o);for(d=new Om,r=0;r<o.length-n;r++)for(m=cmt(e,0);m.b!=m.d.c;)mQ(d,c=lN(kB(yEt(b=jz(d4(m),86),(HUt(),nxe))),0,r+1),nht(null!=(null==c?zA(AX(d.f,null)):cC(d.g,c))?jz(null==c?zA(AX(d.f,null)):cC(d.g,c),19).a+1:1));for(u=new olt(new Ef(d).a);u.b;)l=tnt(u),a=nht(null!=NY(t.a,l.cd())?jz(NY(t.a,l.cd()),19).a:0),mQ(t.a,kB(l.cd()),nht(jz(l.dd(),19).a+a.a)),(!(a=jz(NY(t.b,l.cd()),19))||a.a<jz(l.dd(),19).a)&&mQ(t.b,kB(l.cd()),jz(l.dd(),19));xWt(t,h)}}function RWt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(Akt(n,"Interactive node layering",1),a=new Lm,g=new Wf(e.a);g.a<g.c.c.length;){for(l=(u=(h=jz(J1(g),10)).n.a)+h.o.a,l=i.Math.max(u+1,l),y=new _2(a,0),r=null;y.b<y.d.gc();){if(EN(y.b<y.d.gc()),(b=jz(y.d.Xb(y.c=y.b++),569)).c>=l){EN(y.b>0),y.a.Xb(y.c=--y.b);break}b.a>u&&(r?(pst(r.b,b.b),r.a=i.Math.max(r.a,b.a),lG(y)):(Wz(b.b,h),b.c=i.Math.min(b.c,u),b.a=i.Math.max(b.a,l),r=b))}r||((r=new ev).c=u,r.a=l,yP(y,r),Wz(r.b,h))}for(c=e.b,d=0,m=new Wf(a);m.a<m.c.c.length;)for(b=jz(J1(m),569),(o=new $Y(e)).p=d++,c.c[c.c.length]=o,p=new Wf(b.b);p.a<p.c.c.length;)EQ(h=jz(J1(p),10),o),h.p=0;for(f=new Wf(e.a);f.a<f.c.c.length;)0==(h=jz(J1(f),10)).p&&SBt(t,h,e);for(s=new _2(c,0);s.b<s.d.gc();)0==(EN(s.b<s.d.gc()),jz(s.d.Xb(s.c=s.b++),29)).a.c.length&&lG(s);e.a.c=O5(Dte,zGt,1,0,5,1),zCt(n)}function _Wt(t,e,n){var i,a,r,o,s,c,l,u,d,h;if(0!=e.e.c.length&&0!=n.e.c.length){if((i=jz(OU(e.e,0),17).c.i)==(o=jz(OU(n.e,0),17).c.i))return xL(jz(yEt(jz(OU(e.e,0),17),(lGt(),hhe)),19).a,jz(yEt(jz(OU(n.e,0),17),hhe),19).a);for(d=0,h=(u=t.a).length;d<h;++d){if((l=u[d])==i)return 1;if(l==o)return-1}}return 0!=e.g.c.length&&0!=n.g.c.length?(r=jz(yEt(e,(lGt(),uhe)),10),c=jz(yEt(n,uhe),10),a=0,s=0,IN(jz(OU(e.g,0),17),hhe)&&(a=jz(yEt(jz(OU(e.g,0),17),hhe),19).a),IN(jz(OU(n.g,0),17),hhe)&&(s=jz(yEt(jz(OU(e.g,0),17),hhe),19).a),r&&r==c?zw(RB(yEt(jz(OU(e.g,0),17),Che)))&&!zw(RB(yEt(jz(OU(n.g,0),17),Che)))?1:!zw(RB(yEt(jz(OU(e.g,0),17),Che)))&&zw(RB(yEt(jz(OU(n.g,0),17),Che)))||a<s?-1:a>s?1:0:(t.b&&(t.b._b(r)&&(a=jz(t.b.xc(r),19).a),t.b._b(c)&&(s=jz(t.b.xc(c),19).a)),a<s?-1:a>s?1:0)):0!=e.e.c.length&&0!=n.g.c.length?1:-1}function kWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;for(Akt(e,A1t,1),g=new Lm,w=new Lm,l=new Wf(t.b);l.a<l.c.c.length;)for(b=-1,h=0,f=(d=J0((c=jz(J1(l),29)).a)).length;h<f;++h)if(++b,(u=d[h]).k==(oCt(),Sse)&&bI(jz(yEt(u,(zYt(),tme)),98))){for(IF(jz(yEt(u,(zYt(),tme)),98))||zMt(u),lct(u,(lGt(),nhe),u),g.c=O5(Dte,zGt,1,0,5,1),w.c=O5(Dte,zGt,1,0,5,1),n=new Lm,Hat(y=new Zk,NCt(u,(wWt(),cAe))),DYt(t,y,g,w,n),s=b,x=u,r=new Wf(g);r.a<r.c.c.length;)Zwt(i=jz(J1(r),10),s,c),++b,lct(i,nhe,u),o=jz(OU(i.j,0),11),p=jz(yEt(o,fhe),11),zw(RB(yEt(p,wpe)))||jz(yEt(i,ihe),15).Fc(x);for(yK(y),m=NCt(u,EAe).Kc();m.Ob();)n6(y,jz(m.Pb(),11),y.a,y.a.a);for(DYt(t,y,w,null,n),v=u,a=new Wf(w);a.a<a.c.c.length;)Zwt(i=jz(J1(a),10),++b,c),lct(i,nhe,u),o=jz(OU(i.j,0),11),p=jz(yEt(o,fhe),11),zw(RB(yEt(p,wpe)))||jz(yEt(v,ihe),15).Fc(i);0==n.c.length||lct(u,Ode,n)}zCt(e)}function EWt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S;for(u=jz(yEt(t,(kat(),soe)),33),p=NGt,b=NGt,f=FZt,g=FZt,y=new Wf(t.e);y.a<y.c.c.length;)_=(m=jz(J1(y),144)).d,k=m.e,p=i.Math.min(p,_.a-k.a/2),b=i.Math.min(b,_.b-k.b/2),f=i.Math.max(f,_.a+k.a/2),g=i.Math.max(g,_.b+k.b/2);for(x=new OT((R=jz(JIt(u,(uPt(),Yre)),116)).b-p,R.d-b),c=new Wf(t.e);c.a<c.c.c.length;)iO(w=yEt(s=jz(J1(c),144),soe),239)&&kI(d=jz(w,33),(v=VP(s.d,x)).a-d.g/2,v.b-d.f/2);for(a=new Wf(t.c);a.a<a.c.c.length;)n=jz(J1(a),282),l=aBt(jz(yEt(n,soe),79),!0,!0),qxt(C=qP(jL(n.d.d),n.c.d),n.c.e.a,n.c.e.b),CI(l,(E=VP(C,n.c.d)).a,E.b),qxt(S=qP(jL(n.c.d),n.d.d),n.d.e.a,n.d.e.b),EI(l,(e=VP(S,n.d.d)).a,e.b);for(o=new Wf(t.d);o.a<o.c.c.length;)r=jz(J1(o),447),kI(jz(yEt(r,soe),137),(h=VP(r.d,x)).a,h.b);PWt(u,f-p+(R.b+R.c),g-b+(R.d+R.a),!1,!0)}function CWt(t){var e,n,i,a,r,o,s,c,l,u,d;for(n=null,s=null,(a=jz(yEt(t.b,(zYt(),ebe)),376))==(A7(),Xye)&&(n=new Lm,s=new Lm),o=new Wf(t.d);o.a<o.c.c.length;)if((r=jz(J1(o),101)).i)switch(r.e.g){case 0:e=jz(r3(new Gk(r.b)),61),a==Xye&&e==(wWt(),cAe)?n.c[n.c.length]=r:a==Xye&&e==(wWt(),EAe)?s.c[s.c.length]=r:Ovt(r,e);break;case 1:c=r.a.d.j,l=r.c.d.j,c==(wWt(),cAe)?dW(r,cAe,(Ast(),yle),r.a):l==cAe?dW(r,cAe,(Ast(),vle),r.c):c==EAe?dW(r,EAe,(Ast(),vle),r.a):l==EAe&&dW(r,EAe,(Ast(),yle),r.c);break;case 2:case 3:kM(i=r.b,(wWt(),cAe))?kM(i,EAe)?kM(i,SAe)?kM(i,sAe)||dW(r,cAe,(Ast(),vle),r.c):dW(r,cAe,(Ast(),yle),r.a):dW(r,cAe,(Ast(),mle),null):dW(r,EAe,(Ast(),mle),null);break;case 4:u=r.a.d.j,d=r.a.d.j,u==(wWt(),cAe)||d==cAe?dW(r,EAe,(Ast(),mle),null):dW(r,cAe,(Ast(),mle),null)}n&&(0==n.c.length||Z$t(n,(wWt(),cAe)),0==s.c.length||Z$t(s,(wWt(),EAe)))}function SWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g;for(i=jz(yEt(t,(lGt(),fhe)),33),f=jz(yEt(t,(zYt(),jpe)),19).a,r=jz(yEt(t,wbe),19).a,Kmt(i,jpe,nht(f)),Kmt(i,wbe,nht(r)),Cnt(i,t.n.a+e.a),Snt(i,t.n.b+e.b),(0!=jz(JIt(i,Fbe),174).gc()||t.e||HA(yEt(bG(t),Pbe))===HA((Oyt(),yye))&&pI((hyt(),(t.q?t.q:(kK(),kK(),lne))._b(Nbe)?jz(yEt(t,Nbe),197):jz(yEt(bG(t),Bbe),197))))&&(Ent(i,t.o.a),knt(i,t.o.b)),d=new Wf(t.j);d.a<d.c.c.length;)iO(g=yEt(l=jz(J1(d),11),fhe),186)&&(kI(a=jz(g,118),l.n.a,l.n.b),Kmt(a,rme,l.j));for(h=0!=jz(yEt(t,Dbe),174).gc(),c=new Wf(t.b);c.a<c.c.c.length;)o=jz(J1(c),70),(h||0!=jz(yEt(o,Dbe),174).gc())&&(_I(n=jz(yEt(o,fhe),137),o.o.a,o.o.b),kI(n,o.n.a,o.n.b));if(!$q(jz(yEt(t,ime),21)))for(u=new Wf(t.j);u.a<u.c.c.length;)for(s=new Wf((l=jz(J1(u),11)).f);s.a<s.c.c.length;)o=jz(J1(s),70),Ent(n=jz(yEt(o,fhe),137),o.o.a),knt(n,o.o.b),kI(n,o.n.a,o.n.b)}function TWt(t){var e,n,i,a,r;switch(TX(t,n5t),(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i+(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i){case 0:throw $m(new Pw("The edge must have at least one source or target."));case 1:return 0==(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i?KJ(Ckt(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82))):KJ(Ckt(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)))}if(1==(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b).i&&1==(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c).i){if(a=Ckt(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)),r=Ckt(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82)),KJ(a)==KJ(r))return KJ(a);if(a==KJ(r))return a;if(r==KJ(a))return r}for(e=Ckt(jz(V6(i=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),(!t.c&&(t.c=new cF(NDe,t,5,8)),t.c)])))),82));gIt(i);)if((n=Ckt(jz(V6(i),82)))!=e&&!Set(n,e))if(KJ(n)==KJ(e))e=KJ(n);else if(!(e=$Lt(e,n)))return null;return e}function AWt(t,e,n){var a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R;for(Akt(n,"Polyline edge routing",1),y=Hw(_B(yEt(e,(zYt(),Qpe)))),p=Hw(_B(yEt(e,Ame))),r=Hw(_B(yEt(e,vme))),a=i.Math.min(1,r/p),x=0,l=0,0!=e.b.c.length&&(x=.4*a*(R=lOt(jz(OU(e.b,0),29)))),c=new _2(e.b,0);c.b<c.d.gc();){for(EN(c.b<c.d.gc()),(o=YA(s=jz(c.d.Xb(c.c=c.b++),29),wwe))&&x>0&&(x-=p),_Ut(s,x),h=0,g=new Wf(s.a);g.a<g.c.c.length;){for(d=0,m=new oq(XO(dft(f=jz(J1(g),10)).a.Kc(),new u));gIt(m);)v=g1((b=jz(V6(m),17)).c).b,w=g1(b.d).b,s==b.d.i.c&&!d6(b)&&(GAt(b,x,.4*a*i.Math.abs(v-w)),b.c.j==(wWt(),SAe)&&(v=0,w=0)),d=i.Math.max(d,i.Math.abs(w-v));switch(f.k.g){case 0:case 4:case 1:case 3:case 5:UUt(t,f,x,y)}h=i.Math.max(h,d)}c.b<c.d.gc()&&(R=lOt((EN(c.b<c.d.gc()),jz(c.d.Xb(c.c=c.b++),29))),h=i.Math.max(h,R),EN(c.b>0),c.a.Xb(c.c=--c.b)),l=.4*a*h,!o&&c.b<c.d.gc()&&(l+=p),x+=s.c.a+l}t.a.a.$b(),e.f.a=x,zCt(n)}function DWt(t){var e,n,i,a,r,o,s,c,l,d,h,f,g,p,b,m,y;for(l=new Om,s=new pJ,i=new Wf(t.a.a.b);i.a<i.c.c.length;)if(c=l2(e=jz(J1(i),57)))xTt(l.f,c,e);else if(y=l4(e))for(a=new Wf(y.k);a.a<a.c.c.length;)XAt(s,jz(J1(a),17),e);for(n=new Wf(t.a.a.b);n.a<n.c.c.length;)if(c=l2(e=jz(J1(n),57)))for(o=new oq(XO(dft(c).a.Kc(),new u));gIt(o);)if(!d6(r=jz(V6(o),17))&&(g=r.c,m=r.d,!(wWt(),vAe).Hc(r.c.j)||!vAe.Hc(r.d.j))){if(p=jz(NY(l,r.d.i),57),qMt(aE(iE(rE(nE(new $y,0),100),t.c[e.a.d]),t.c[p.a.d])),g.j==SAe&&Dq((prt(),g)))for(h=jz(c7(s,r),21).Kc();h.Ob();)if((d=jz(h.Pb(),57)).d.c<e.d.c){if((f=t.c[d.a.d])==(b=t.c[e.a.d]))continue;qMt(aE(iE(rE(nE(new $y,1),100),f),b))}if(m.j==sAe&&Aq((prt(),m)))for(h=jz(c7(s,r),21).Kc();h.Ob();)if((d=jz(h.Pb(),57)).d.c>e.d.c){if((f=t.c[e.a.d])==(b=t.c[d.a.d]))continue;qMt(aE(iE(rE(nE(new $y,1),100),f),b))}}}function IWt(t){var e,n,i,a,r,o,s,c;if(BHt(),null==t)return null;if((a=HD(t,Kkt(37)))<0)return t;for(c=new uM(t.substr(0,a)),e=O5(IMe,m7t,25,4,15,1),s=0,i=0,o=t.length;a<o;a++)if(d1(a,t.length),37==t.charCodeAt(a)&&t.length>a+2&&tct((d1(a+1,t.length),t.charCodeAt(a+1)),CIe,SIe)&&tct((d1(a+2,t.length),t.charCodeAt(a+2)),CIe,SIe))if(n=CH((d1(a+1,t.length),t.charCodeAt(a+1)),(d1(a+2,t.length),t.charCodeAt(a+2))),a+=2,i>0?128==(192&n)?e[s++]=n<<24>>24:i=0:n>=128&&(192==(224&n)?(e[s++]=n<<24>>24,i=2):224==(240&n)?(e[s++]=n<<24>>24,i=3):240==(248&n)&&(e[s++]=n<<24>>24,i=4)),i>0){if(s==i){switch(s){case 2:OY(c,((31&e[0])<<6|63&e[1])&ZZt);break;case 3:OY(c,((15&e[0])<<12|(63&e[1])<<6|63&e[2])&ZZt)}s=0,i=0}}else{for(r=0;r<s;++r)OY(c,e[r]&ZZt);s=0,c.a+=String.fromCharCode(n)}else{for(r=0;r<s;++r)OY(c,e[r]&ZZt);s=0,OY(c,(d1(a,t.length),t.charCodeAt(a)))}return c.a}function LWt(t,e,n,i,a){var r,o,s;if(ytt(t,e),o=e[0],r=lZ(n.c,0),s=-1,Kct(n))if(i>0){if(o+i>t.length)return!1;s=qAt(t.substr(0,o+i),e)}else s=qAt(t,e);switch(r){case 71:return s=Vkt(t,o,Cst(Hx(zee,1),cZt,2,6,[uKt,dKt]),e),a.e=s,!0;case 77:return pBt(t,e,a,s,o);case 76:return bBt(t,e,a,s,o);case 69:return iTt(t,e,o,a);case 99:return aTt(t,e,o,a);case 97:return s=Vkt(t,o,Cst(Hx(zee,1),cZt,2,6,["AM","PM"]),e),a.b=s,!0;case 121:return mBt(t,e,o,s,n,a);case 100:return!(s<=0||(a.c=s,0));case 83:return!(s<0)&&xgt(s,o,e[0],a);case 104:12==s&&(s=0);case 75:case 72:return!(s<0||(a.f=s,a.g=!1,0));case 107:return!(s<0||(a.f=s,a.g=!0,0));case 109:return!(s<0||(a.j=s,0));case 115:return!(s<0||(a.n=s,0));case 90:if(o<t.length&&(d1(o,t.length),90==t.charCodeAt(o)))return++e[0],a.o=0,!0;case 122:case 118:return Skt(t,o,e,a);default:return!1}}function OWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;if(f=jz(jz(c7(t.r,e),21),84),e!=(wWt(),sAe)&&e!=SAe){for(o=e==cAe?(Not(),Oae):(Not(),Bae),x=e==cAe?(H9(),aae):(H9(),nae),r=(a=(n=jz(oZ(t.b,e),124)).i).c+Lct(Cst(Hx(LMe,1),HKt,25,15,[n.n.b,t.C.b,t.k])),y=a.c+a.b-Lct(Cst(Hx(LMe,1),HKt,25,15,[n.n.c,t.C.c,t.k])),s=Xx($j(o),t.t),v=e==cAe?PKt:BKt,h=f.Kc();h.Ob();)(u=jz(h.Pb(),111)).c&&!(u.c.d.c.length<=0)&&(m=u.b.rf(),b=u.e,(p=(g=u.c).i).b=(l=g.n,g.e.a+l.b+l.c),p.a=(c=g.n,g.e.b+c.d+c.a),TX(x,oJt),g.f=x,u8(g,(K8(),Jie)),p.c=b.a-(p.b-m.a)/2,R=i.Math.min(r,b.a),_=i.Math.max(y,b.a+m.a),p.c<R?p.c=R:p.c+p.b>_&&(p.c=_-p.b),Wz(s.d,new OV(p,wht(s,p))),v=e==cAe?i.Math.max(v,b.b+u.b.rf().b):i.Math.min(v,b.b));for(v+=e==cAe?t.t:-t.t,(w=Cgt((s.e=v,s)))>0&&(jz(oZ(t.b,e),124).a.b=w),d=f.Kc();d.Ob();)(u=jz(d.Pb(),111)).c&&!(u.c.d.c.length<=0)&&((p=u.c.i).c-=u.e.a,p.d-=u.e.b)}else rWt(t,e)}function MWt(t){var e,n,i,a,r,o,s,c,l,d;for(e=new Om,o=new AO(t);o.e!=o.i.gc();){for(r=jz(wmt(o),33),n=new Ny,YG(_re,r,n),d=new oe,i=jz(E3(new NU(null,new UW(new oq(XO(fOt(r).a.Kc(),new u)))),kV(d,m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[(Hlt(),Zne)])))),83),Xnt(n,jz(i.xc((cM(),!0)),14),new se),a=jz(E3(AZ(jz(i.xc(!1),15).Lc(),new ce),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[Zne]))),15).Kc();a.Ob();)(l=SEt(jz(a.Pb(),79)))&&((s=jz(zA(AX(e.f,l)),21))||(s=ANt(l),xTt(e.f,l,s)),jat(n,s));for(i=jz(E3(new NU(null,new UW(new oq(XO(gOt(r).a.Kc(),new u)))),kV(d,m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[Zne])))),83),Xnt(n,jz(i.xc(!0),14),new le),c=jz(E3(AZ(jz(i.xc(!1),15).Lc(),new ue),m8(new H,new z,new it,Cst(Hx(Jne,1),IZt,132,0,[Zne]))),15).Kc();c.Ob();)(l=TEt(jz(c.Pb(),79)))&&((s=jz(zA(AX(e.f,l)),21))||(s=ANt(l),xTt(e.f,l,s)),jat(n,s))}}function NWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p;if(oHt(),(c=Gut(t,0)<0)&&(t=w9(t)),0==Gut(t,0))switch(e){case 0:return"0";case 1:return YKt;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return(f=new Cx).a+=e<0?"0E+":"0E",f.a+=e==FZt?"2147483648":""+-e,f.a}d=O5(SMe,YZt,25,1+(u=18),15,1),n=u,p=t;do{l=p,p=ARt(p,10),d[--n]=fV(ift(48,nft(l,aft(p,10))))&ZZt}while(0!=Gut(p,0));if(a=nft(nft(nft(u,n),e),1),0==e)return c&&(d[--n]=45),$pt(d,n,u-n);if(e>0&&Gut(a,-6)>=0){if(Gut(a,0)>=0){for(r=n+fV(a),s=u-1;s>=r;s--)d[s+1]=d[s];return d[++r]=46,c&&(d[--n]=45),$pt(d,n,u-n+1)}for(o=2;sC(o,ift(w9(a),1));o++)d[--n]=48;return d[--n]=46,d[--n]=48,c&&(d[--n]=45),$pt(d,n,u-n)}return g=n+1,i=u,h=new Sx,c&&(h.a+="-"),i-g>=1?(OY(h,d[n]),h.a+=".",h.a+=$pt(d,n+1,u-n-1)):h.a+=$pt(d,n,u-n),h.a+="E",Gut(a,0)>0&&(h.a+="+"),h.a+=""+bq(a),h.a}function BWt(t,e,n){var i,a,r,o,s,c,l,u,d,h;if(t.e.a.$b(),t.f.a.$b(),t.c.c=O5(Dte,zGt,1,0,5,1),t.i.c=O5(Dte,zGt,1,0,5,1),t.g.a.$b(),e)for(o=new Wf(e.a);o.a<o.c.c.length;)for(u=NCt(r=jz(J1(o),10),(wWt(),sAe)).Kc();u.Ob();)for(l=jz(u.Pb(),11),RW(t.e,l),a=new Wf(l.g);a.a<a.c.c.length;)!d6(i=jz(J1(a),17))&&(Wz(t.c,i),bmt(t,i),((s=i.c.i.k)==(oCt(),Sse)||s==Tse||s==kse||s==_se)&&Wz(t.j,i),(d=(h=i.d).i.c)==n?RW(t.f,h):d==e?RW(t.e,h):y9(t.c,i));if(n)for(o=new Wf(n.a);o.a<o.c.c.length;){for(c=new Wf((r=jz(J1(o),10)).j);c.a<c.c.c.length;)for(a=new Wf(jz(J1(c),11).g);a.a<a.c.c.length;)d6(i=jz(J1(a),17))&&RW(t.g,i);for(u=NCt(r,(wWt(),SAe)).Kc();u.Ob();)for(l=jz(u.Pb(),11),RW(t.f,l),a=new Wf(l.g);a.a<a.c.c.length;)!d6(i=jz(J1(a),17))&&(Wz(t.c,i),bmt(t,i),((s=i.c.i.k)==(oCt(),Sse)||s==Tse||s==kse||s==_se)&&Wz(t.j,i),(d=(h=i.d).i.c)==n?RW(t.f,h):d==e?RW(t.e,h):y9(t.c,i))}}function PWt(t,e,n,a,r){var o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;if(m=new OT(t.g,t.f),(b=WSt(t)).a=i.Math.max(b.a,e),b.b=i.Math.max(b.b,n),_=b.a/m.a,d=b.b/m.b,x=b.a-m.a,l=b.b-m.b,a)for(s=KJ(t)?jz(JIt(KJ(t),(cGt(),dCe)),103):jz(JIt(t,(cGt(),dCe)),103),c=HA(JIt(t,(cGt(),rSe)))===HA((Z_t(),WTe)),v=new AO((!t.c&&(t.c=new tW(VDe,t,9,9)),t.c));v.e!=v.i.gc();)switch(y=jz(wmt(v),118),w=jz(JIt(y,hSe),61),w==(wWt(),CAe)&&(w=A$t(y,s),Kmt(y,hSe,w)),w.g){case 1:c||Cnt(y,y.i*_);break;case 2:Cnt(y,y.i+x),c||Snt(y,y.j*d);break;case 3:c||Cnt(y,y.i*_),Snt(y,y.j+l);break;case 4:c||Snt(y,y.j*d)}if(_I(t,b.a,b.b),r)for(f=new AO((!t.n&&(t.n=new tW(HDe,t,1,7)),t.n));f.e!=f.i.gc();)g=(h=jz(wmt(f),137)).i+h.g/2,p=h.j+h.f/2,(R=g/m.a)+(u=p/m.b)>=1&&(R-u>0&&p>=0?(Cnt(h,h.i+x),Snt(h,h.j+l*u)):R-u<0&&g>=0&&(Cnt(h,h.i+x*R),Snt(h,h.j+l)));return Kmt(t,(cGt(),BCe),(ypt(),new ZF(o=jz(YR($Ae),9),jz(kP(o,o.length),9),0))),new OT(_,d)}function FWt(t){var e,n,a,r,o,s,c,l,u,d,h;if(d=KJ(Ckt(jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)))==KJ(Ckt(jz(Yet((!t.c&&(t.c=new cF(NDe,t,5,8)),t.c),0),82))),s=new HR,(e=jz(JIt(t,(Wlt(),cTe)),74))&&e.b>=2){if(0==(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i)QR(),n=new oc,l8((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),n);else if((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i>1)for(h=new iN((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a));h.e!=h.i.gc();)ZRt(h);G$t(e,jz(Yet((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),0),202))}if(d)for(a=new AO((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a));a.e!=a.i.gc();)for(l=new AO((!(n=jz(wmt(a),202)).a&&(n.a=new DO(LDe,n,5)),n.a));l.e!=l.i.gc();)c=jz(wmt(l),469),s.a=i.Math.max(s.a,c.a),s.b=i.Math.max(s.b,c.b);for(o=new AO((!t.n&&(t.n=new tW(HDe,t,1,7)),t.n));o.e!=o.i.gc();)r=jz(wmt(o),137),(u=jz(JIt(r,gTe),8))&&kI(r,u.a,u.b),d&&(s.a=i.Math.max(s.a,r.i+r.g),s.b=i.Math.max(s.b,r.j+r.f));return s}function jWt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;for(y=e.c.length,r=new HFt(t.a,n,null,null),_=O5(LMe,HKt,25,y,15,1),g=O5(LMe,HKt,25,y,15,1),f=O5(LMe,HKt,25,y,15,1),p=0,c=0;c<y;c++)g[c]=NGt,f[c]=FZt;for(l=0;l<y;l++)for(u1(l,e.c.length),a=jz(e.c[l],180),_[l]=mLt(a),_[p]>_[l]&&(p=l),d=new Wf(t.a.b);d.a<d.c.c.length;)for(m=new Wf(jz(J1(d),29).a);m.a<m.c.c.length;)b=jz(J1(m),10),x=Hw(a.p[b.p])+Hw(a.d[b.p]),g[l]=i.Math.min(g[l],x),f[l]=i.Math.max(f[l],x+b.o.b);for(R=O5(LMe,HKt,25,y,15,1),u=0;u<y;u++)(u1(u,e.c.length),jz(e.c[u],180)).o==(oQ(),iwe)?R[u]=g[p]-g[u]:R[u]=f[p]-f[u];for(o=O5(LMe,HKt,25,y,15,1),h=new Wf(t.a.b);h.a<h.c.c.length;)for(w=new Wf(jz(J1(h),29).a);w.a<w.c.c.length;){for(v=jz(J1(w),10),s=0;s<y;s++)o[s]=Hw((u1(s,e.c.length),jz(e.c[s],180)).p[v.p])+Hw((u1(s,e.c.length),jz(e.c[s],180)).d[v.p])+R[s];o.sort(nnt(k.prototype.te,k,[])),r.p[v.p]=(o[1]+o[2])/2,r.d[v.p]=0}return r}function $Wt(t,e,n){var i,a,r,o,s;switch(i=e.i,r=t.i.o,a=t.i.d,s=t.n,o=Dct(Cst(Hx(EEe,1),cZt,8,0,[s,t.a])),t.j.g){case 1:WB(e,(H9(),nae)),i.d=-a.d-n-i.a,jz(jz(OU(e.d,0),181).We((lGt(),rhe)),285)==(Wwt(),xTe)?(u8(e,(K8(),Jie)),i.c=o.a-Hw(_B(yEt(t,dhe)))-n-i.b):(u8(e,(K8(),Xie)),i.c=o.a+Hw(_B(yEt(t,dhe)))+n);break;case 2:u8(e,(K8(),Xie)),i.c=r.a+a.c+n,jz(jz(OU(e.d,0),181).We((lGt(),rhe)),285)==(Wwt(),xTe)?(WB(e,(H9(),nae)),i.d=o.b-Hw(_B(yEt(t,dhe)))-n-i.a):(WB(e,(H9(),aae)),i.d=o.b+Hw(_B(yEt(t,dhe)))+n);break;case 3:WB(e,(H9(),aae)),i.d=r.b+a.a+n,jz(jz(OU(e.d,0),181).We((lGt(),rhe)),285)==(Wwt(),xTe)?(u8(e,(K8(),Jie)),i.c=o.a-Hw(_B(yEt(t,dhe)))-n-i.b):(u8(e,(K8(),Xie)),i.c=o.a+Hw(_B(yEt(t,dhe)))+n);break;case 4:u8(e,(K8(),Jie)),i.c=-a.b-n-i.b,jz(jz(OU(e.d,0),181).We((lGt(),rhe)),285)==(Wwt(),xTe)?(WB(e,(H9(),nae)),i.d=o.b-Hw(_B(yEt(t,dhe)))-n-i.a):(WB(e,(H9(),aae)),i.d=o.b+Hw(_B(yEt(t,dhe)))+n)}}function zWt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D;for(g=0,C=0,l=new Wf(t);l.a<l.c.c.length;)sqt(c=jz(J1(l),33)),g=i.Math.max(g,c.g),C+=c.g*c.f;for(E=Jwt(t,C/t.c.length),C+=t.c.length*E,g=i.Math.max(g,i.Math.sqrt(C*s))+n.b,A=n.b,D=n.d,f=0,d=n.b+n.c,MH(k=new Zk,nht(0)),R=new Zk,u=new _2(t,0);u.b<u.d.gc();)EN(u.b<u.d.gc()),T=(c=jz(u.d.Xb(u.c=u.b++),33)).g,h=c.f,A+T>g&&(o&&(lD(R,f),lD(k,nht(u.b-1))),A=n.b,D+=f+e,f=0,d=i.Math.max(d,n.b+n.c+T)),Cnt(c,A),Snt(c,D),d=i.Math.max(d,A+T+n.c),f=i.Math.max(f,h),A+=T+e;if(d=i.Math.max(d,a),(S=D+f+n.a)<r&&(f+=r-S,S=r),o)for(A=n.b,u=new _2(t,0),lD(k,nht(t.c.length)),m=jz(d4(_=cmt(k,0)),19).a,lD(R,f),x=cmt(R,0),w=0;u.b<u.d.gc();)u.b==m&&(A=n.b,w=Hw(_B(d4(x))),m=jz(d4(_),19).a),EN(u.b<u.d.gc()),y=(c=jz(u.d.Xb(u.c=u.b++),33)).f,knt(c,w),p=w,u.b==m&&(b=d-A-n.c,v=c.g,Ent(c,b),dTt(c,new OT(b,p),new OT(v,y))),A+=c.g+e;return new OT(d,S)}function HWt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C;for(Akt(e,"Compound graph postprocessor",1),n=zw(RB(yEt(t,(zYt(),Mme)))),c=jz(yEt(t,(lGt(),$de)),224),d=new Ny,y=c.ec().Kc();y.Ob();){for(m=jz(y.Pb(),17),s=new QF(c.cc(m)),kK(),mL(s,new Pg(t)),R=art((u1(0,s.c.length),jz(s.c[0],243))),k=rrt(jz(OU(s,s.c.length-1),243)),w=R.i,v=fot(k.i,w)?w.e:bG(w),h=Dmt(m,s),yK(m.a),f=null,o=new Wf(s);o.a<o.c.c.length;)r=jz(J1(o),243),ASt(b=new HR,r.a,v),g=r.b,Ylt(a=new vv,0,g.a),Jet(a,b),x=new hI(g1(g.c)),_=new hI(g1(g.d)),VP(x,b),VP(_,b),f&&(0==a.b?p=_:(EN(0!=a.b),p=jz(a.a.a.c,8)),E=i.Math.abs(f.a-p.a)>dQt,C=i.Math.abs(f.b-p.b)>dQt,(!n&&E&&C||n&&(E||C))&&MH(m.a,x)),jat(m.a,a),0==a.b?f=x:(EN(0!=a.b),f=jz(a.c.b.c,8)),Kot(g,h,b),rrt(r)==k&&(bG(k.i)!=r.a&&ASt(b=new HR,bG(k.i),v),lct(m,Nhe,b)),kCt(g,m,v),d.a.zc(g,d);kQ(m,R),_Q(m,k)}for(u=d.a.ec().Kc();u.Ob();)kQ(l=jz(u.Pb(),17),null),_Q(l,null);zCt(e)}function UWt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;if(1==t.gc())return jz(t.Xb(0),231);if(t.gc()<=0)return new y7;for(r=t.Kc();r.Ob();){for(n=jz(r.Pb(),231),p=0,d=NGt,h=NGt,l=FZt,u=FZt,g=new Wf(n.e);g.a<g.c.c.length;)f=jz(J1(g),144),p+=jz(yEt(f,(uPt(),Xre)),19).a,d=i.Math.min(d,f.d.a-f.e.a/2),h=i.Math.min(h,f.d.b-f.e.b/2),l=i.Math.max(l,f.d.a+f.e.a/2),u=i.Math.max(u,f.d.b+f.e.b/2);lct(n,(uPt(),Xre),nht(p)),lct(n,(kat(),ooe),new OT(d,h)),lct(n,roe,new OT(l,u))}for(kK(),t.ad(new fe),Hot(b=new y7,jz(t.Xb(0),94)),c=0,v=0,o=t.Kc();o.Ob();)n=jz(o.Pb(),231),m=qP(jL(jz(yEt(n,(kat(),roe)),8)),jz(yEt(n,ooe),8)),c=i.Math.max(c,m.a),v+=m.a*m.b;for(c=i.Math.max(c,i.Math.sqrt(v)*Hw(_B(yEt(b,(uPt(),Fre))))),w=0,x=0,s=0,e=y=Hw(_B(yEt(b,ioe))),a=t.Kc();a.Ob();)n=jz(a.Pb(),231),w+(m=qP(jL(jz(yEt(n,(kat(),roe)),8)),jz(yEt(n,ooe),8))).a>c&&(w=0,x+=s+y,s=0),GFt(b,n,w,x),e=i.Math.max(e,w+m.a),s=i.Math.max(s,m.b),w+=m.a+y;return b}function VWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g;switch(u=new vv,t.a.g){case 3:h=jz(yEt(e.e,(lGt(),Lhe)),15),f=jz(yEt(e.j,Lhe),15),g=jz(yEt(e.f,Lhe),15),n=jz(yEt(e.e,Dhe),15),i=jz(yEt(e.j,Dhe),15),a=jz(yEt(e.f,Dhe),15),pst(o=new Lm,h),f.Jc(new wr),pst(o,iO(f,152)?o7(jz(f,152)):iO(f,131)?jz(f,131).a:iO(f,54)?new lw(f):new Ck(f)),pst(o,g),pst(r=new Lm,n),pst(r,iO(i,152)?o7(jz(i,152)):iO(i,131)?jz(i,131).a:iO(i,54)?new lw(i):new Ck(i)),pst(r,a),lct(e.f,Lhe,o),lct(e.f,Dhe,r),lct(e.f,Ohe,e.f),lct(e.e,Lhe,null),lct(e.e,Dhe,null),lct(e.j,Lhe,null),lct(e.j,Dhe,null);break;case 1:jat(u,e.e.a),MH(u,e.i.n),jat(u,eot(e.j.a)),MH(u,e.a.n),jat(u,e.f.a);break;default:jat(u,e.e.a),jat(u,eot(e.j.a)),jat(u,e.f.a)}yK(e.f.a),jat(e.f.a,u),kQ(e.f,e.e.c),s=jz(yEt(e.e,(zYt(),bbe)),74),l=jz(yEt(e.j,bbe),74),c=jz(yEt(e.f,bbe),74),(s||l||c)&&(EW(d=new vv,c),EW(d,l),EW(d,s),lct(e.f,bbe,d)),kQ(e.j,null),_Q(e.j,null),kQ(e.e,null),_Q(e.e,null),EQ(e.a,null),EQ(e.i,null),e.g&&VWt(t,e.g)}function qWt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;if(C$t(),null==t||(g=hht(r=Y9(t)))%4!=0)return null;if(0==(p=g/4|0))return O5(IMe,m7t,25,0,15,1);for(d=null,e=0,n=0,i=0,a=0,o=0,s=0,c=0,l=0,f=0,h=0,u=0,d=O5(IMe,m7t,25,3*p,15,1);f<p-1;f++){if(!(Y_(o=r[u++])&&Y_(s=r[u++])&&Y_(c=r[u++])&&Y_(l=r[u++])))return null;e=qOe[o],n=qOe[s],i=qOe[c],a=qOe[l],d[h++]=(e<<2|n>>4)<<24>>24,d[h++]=((15&n)<<4|i>>2&15)<<24>>24,d[h++]=(i<<6|a)<<24>>24}return Y_(o=r[u++])&&Y_(s=r[u++])?(e=qOe[o],n=qOe[s],c=r[u++],l=r[u++],-1==qOe[c]||-1==qOe[l]?61==c&&61==l?15&n?null:(rHt(d,0,b=O5(IMe,m7t,25,3*f+1,15,1),0,3*f),b[h]=(e<<2|n>>4)<<24>>24,b):61!=c&&61==l?3&(i=qOe[c])?null:(rHt(d,0,b=O5(IMe,m7t,25,3*f+2,15,1),0,3*f),b[h++]=(e<<2|n>>4)<<24>>24,b[h]=((15&n)<<4|i>>2&15)<<24>>24,b):null:(i=qOe[c],a=qOe[l],d[h++]=(e<<2|n>>4)<<24>>24,d[h++]=((15&n)<<4|i>>2&15)<<24>>24,d[h++]=(i<<6|a)<<24>>24,d)):null}function WWt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;for(Akt(e,A1t,1),h=jz(yEt(t,(zYt(),Xpe)),218),i=new Wf(t.b);i.a<i.c.c.length;)for(o=0,s=(r=J0(jz(J1(i),29).a)).length;o<s;++o)if((a=r[o]).k==(oCt(),Tse)){if(h==(kft(),XSe))for(l=new Wf(a.j);l.a<l.c.c.length;)0==(c=jz(J1(l),11)).e.c.length||Dbt(c),0==c.g.c.length||Ibt(c);else if(iO(yEt(a,(lGt(),fhe)),17))g=jz(yEt(a,fhe),17),p=jz(NCt(a,(wWt(),SAe)).Kc().Pb(),11),b=jz(NCt(a,sAe).Kc().Pb(),11),m=jz(yEt(p,fhe),11),kQ(g,y=jz(yEt(b,fhe),11)),_Q(g,m),(v=new hI(b.i.n)).a=Dct(Cst(Hx(EEe,1),cZt,8,0,[y.i.n,y.n,y.a])).a,MH(g.a,v),(v=new hI(p.i.n)).a=Dct(Cst(Hx(EEe,1),cZt,8,0,[m.i.n,m.n,m.a])).a,MH(g.a,v);else{if(a.j.c.length>=2){for(f=!0,n=jz(J1(u=new Wf(a.j)),11),d=null;u.a<u.c.c.length;)if(d=n,n=jz(J1(u),11),!Odt(yEt(d,fhe),yEt(n,fhe))){f=!1;break}}else f=!1;for(l=new Wf(a.j);l.a<l.c.c.length;)0==(c=jz(J1(l),11)).e.c.length||oNt(c,f),0==c.g.c.length||sNt(c,f)}EQ(a,null)}zCt(e)}function YWt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E;return w=t.c[(u1(0,e.c.length),jz(e.c[0],17)).p],k=t.c[(u1(1,e.c.length),jz(e.c[1],17)).p],!(w.a.e.e-w.a.a-(w.b.e.e-w.b.a)==0&&k.a.e.e-k.a.a-(k.b.e.e-k.b.a)==0||(y=w.b.e.f,!iO(y,10))||(m=jz(y,10),R=t.i[m.p],_=m.c?x9(m.c.a,m,0):-1,o=BKt,_>0&&(r=jz(OU(m.c.a,_-1),10),s=t.i[r.p],E=i.Math.ceil(BL(t.n,r,m)),o=R.a.e-m.d.d-(s.a.e+r.o.b+r.d.a)-E),u=BKt,_<m.c.a.c.length-1&&(l=jz(OU(m.c.a,_+1),10),d=t.i[l.p],E=i.Math.ceil(BL(t.n,l,m)),u=d.a.e-l.d.d-(R.a.e+m.o.b+m.d.a)-E),!(n&&(cL(),iit(D4t),i.Math.abs(o-u)<=D4t||o==u||isNaN(o)&&isNaN(u)))&&(a=aY(w.a),c=-aY(w.b),h=-aY(k.a),v=aY(k.b),b=w.a.e.e-w.a.a-(w.b.e.e-w.b.a)>0&&k.a.e.e-k.a.a-(k.b.e.e-k.b.a)<0,p=w.a.e.e-w.a.a-(w.b.e.e-w.b.a)<0&&k.a.e.e-k.a.a-(k.b.e.e-k.b.a)>0,g=w.a.e.e+w.b.a<k.b.e.e+k.a.a,f=w.a.e.e+w.b.a>k.b.e.e+k.a.a,x=0,!b&&!p&&(f?o+h>0?x=h:u-a>0&&(x=a):g&&(o+c>0?x=c:u-v>0&&(x=v))),R.a.e+=x,R.b&&(R.d.e+=x),1)))}function GWt(t,e,n){var a,r,o,s,c,l,u,d,h,f;if(a=new VZ(e.qf().a,e.qf().b,e.rf().a,e.rf().b),r=new dI,t.c)for(s=new Wf(e.wf());s.a<s.c.c.length;)o=jz(J1(s),181),r.c=o.qf().a+e.qf().a,r.d=o.qf().b+e.qf().b,r.b=o.rf().a,r.a=o.rf().b,SSt(a,r);for(u=new Wf(e.Cf());u.a<u.c.c.length;){if(d=(l=jz(J1(u),838)).qf().a+e.qf().a,h=l.qf().b+e.qf().b,t.e&&(r.c=d,r.d=h,r.b=l.rf().a,r.a=l.rf().b,SSt(a,r)),t.d)for(s=new Wf(l.wf());s.a<s.c.c.length;)o=jz(J1(s),181),r.c=o.qf().a+d,r.d=o.qf().b+h,r.b=o.rf().a,r.a=o.rf().b,SSt(a,r);if(t.b){if(f=new OT(-n,-n),jz(e.We((cGt(),lSe)),174).Hc((dAt(),iAe)))for(s=new Wf(l.wf());s.a<s.c.c.length;)o=jz(J1(s),181),f.a+=o.rf().a+n,f.b+=o.rf().b+n;f.a=i.Math.max(f.a,0),f.b=i.Math.max(f.b,0),Wjt(a,l.Bf(),l.zf(),e,l,f,n)}}t.b&&Wjt(a,e.Bf(),e.zf(),e,null,null,n),(c=new Aj(e.Af())).d=i.Math.max(0,e.qf().b-a.d),c.a=i.Math.max(0,a.d+a.a-(e.qf().b+e.rf().b)),c.b=i.Math.max(0,e.qf().a-a.c),c.c=i.Math.max(0,a.c+a.b-(e.qf().a+e.rf().a)),e.Ef(c)}function ZWt(){var t=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F"];return t[34]='\\"',t[92]="\\\\",t[173]="\\u00ad",t[1536]="\\u0600",t[1537]="\\u0601",t[1538]="\\u0602",t[1539]="\\u0603",t[1757]="\\u06dd",t[1807]="\\u070f",t[6068]="\\u17b4",t[6069]="\\u17b5",t[8203]="\\u200b",t[8204]="\\u200c",t[8205]="\\u200d",t[8206]="\\u200e",t[8207]="\\u200f",t[8232]="\\u2028",t[8233]="\\u2029",t[8234]="\\u202a",t[8235]="\\u202b",t[8236]="\\u202c",t[8237]="\\u202d",t[8238]="\\u202e",t[8288]="\\u2060",t[8289]="\\u2061",t[8290]="\\u2062",t[8291]="\\u2063",t[8292]="\\u2064",t[8298]="\\u206a",t[8299]="\\u206b",t[8300]="\\u206c",t[8301]="\\u206d",t[8302]="\\u206e",t[8303]="\\u206f",t[65279]="\\ufeff",t[65529]="\\ufff9",t[65530]="\\ufffa",t[65531]="\\ufffb",t}function KWt(t,e,n){var i,a,r,o,s,c,l,u,d,h;for(c=new Lm,d=e.length,o=Tct(n),l=0;l<d;++l){switch(u=yM(e,Kkt(61),l),r=(a=ost(i=uht(o,e.substr(l,u-l)))).Aj().Nh(),lZ(e,++u)){case 39:s=uN(e,39,++u),Wz(c,new CA(i,ZZ(e.substr(u,s-u),r,a))),l=s+1;break;case 34:s=uN(e,34,++u),Wz(c,new CA(i,ZZ(e.substr(u,s-u),r,a))),l=s+1;break;case 91:Wz(c,new CA(i,h=new Lm));t:for(;;){switch(lZ(e,++u)){case 39:s=uN(e,39,++u),Wz(h,ZZ(e.substr(u,s-u),r,a)),u=s+1;break;case 34:s=uN(e,34,++u),Wz(h,ZZ(e.substr(u,s-u),r,a)),u=s+1;break;case 110:if(++u,e.indexOf("ull",u)!=u)throw $m(new fw(r7t));h.c[h.c.length]=null,u+=3}if(!(u<d))break;switch(d1(u,e.length),e.charCodeAt(u)){case 44:break;case 93:break t;default:throw $m(new fw("Expecting , or ]"))}}l=u+1;break;case 110:if(++u,e.indexOf("ull",u)!=u)throw $m(new fw(r7t));Wz(c,new CA(i,null)),l=u+3}if(!(l<d))break;if(d1(l,e.length),44!=e.charCodeAt(l))throw $m(new fw("Expecting ,"))}return nBt(t,c,n)}function XWt(t,e){var n,i,a,r,o,s,c,l,u,d,h;for(l=jz(jz(c7(t.r,e),21),84),o=Xkt(t,e),n=t.u.Hc((dAt(),QTe)),c=l.Kc();c.Ob();)if((s=jz(c.Pb(),111)).c&&!(s.c.d.c.length<=0)){switch(h=s.b.rf(),(d=(u=s.c).i).b=(r=u.n,u.e.a+r.b+r.c),d.a=(a=u.n,u.e.b+a.d+a.a),e.g){case 1:s.a?(d.c=(h.a-d.b)/2,u8(u,(K8(),Kie))):o||n?(d.c=-d.b-t.s,u8(u,(K8(),Jie))):(d.c=h.a+t.s,u8(u,(K8(),Xie))),d.d=-d.a-t.t,WB(u,(H9(),nae));break;case 3:s.a?(d.c=(h.a-d.b)/2,u8(u,(K8(),Kie))):o||n?(d.c=-d.b-t.s,u8(u,(K8(),Jie))):(d.c=h.a+t.s,u8(u,(K8(),Xie))),d.d=h.b+t.t,WB(u,(H9(),aae));break;case 2:s.a?(i=t.v?d.a:jz(OU(u.d,0),181).rf().b,d.d=(h.b-i)/2,WB(u,(H9(),iae))):o||n?(d.d=-d.a-t.t,WB(u,(H9(),nae))):(d.d=h.b+t.t,WB(u,(H9(),aae))),d.c=h.a+t.s,u8(u,(K8(),Xie));break;case 4:s.a?(i=t.v?d.a:jz(OU(u.d,0),181).rf().b,d.d=(h.b-i)/2,WB(u,(H9(),iae))):o||n?(d.d=-d.a-t.t,WB(u,(H9(),nae))):(d.d=h.b+t.t,WB(u,(H9(),aae))),d.c=-d.b-t.s,u8(u,(K8(),Jie))}o=!1}}function JWt(t,e){var n,i,a,r,o,s,c,l,u,d,h;if(fGt(),0==Lk(tMe)){for(d=O5(CMe,cZt,117,nMe.length,0,1),o=0;o<d.length;o++)d[o]=new _0(4);for(i=new Ex,r=0;r<QOe.length;r++){if(u=new _0(4),r<84?(d1(s=2*r,mte.length),h=mte.charCodeAt(s),d1(s+1,mte.length),KNt(u,h,mte.charCodeAt(s+1))):KNt(u,iMe[s=2*(r-84)],iMe[s+1]),mF(c=QOe[r],"Specials")&&KNt(u,65520,65533),mF(c,pte)&&(KNt(u,983040,1048573),KNt(u,1048576,1114109)),mQ(tMe,c,u),mQ(eMe,c,I$t(u)),0<(l=i.a.length)?i.a=i.a.substr(0,0):0>l&&(i.a+=nO(O5(SMe,YZt,25,-l,15,1))),i.a+="Is",HD(c,Kkt(32))>=0)for(a=0;a<c.length;a++)d1(a,c.length),32!=c.charCodeAt(a)&&LY(i,(d1(a,c.length),c.charCodeAt(a)));else i.a+=""+c;_pt(i.a,c,!0)}_pt(bte,"Cn",!1),_pt(yte,"Cn",!0),KNt(n=new _0(4),0,ote),mQ(tMe,"ALL",n),mQ(eMe,"ALL",I$t(n)),!_Me&&(_Me=new Om),mQ(_Me,bte,bte),!_Me&&(_Me=new Om),mQ(_Me,yte,yte),!_Me&&(_Me=new Om),mQ(_Me,"ALL","ALL")}return jz(kJ(e?tMe:eMe,t),136)}function QWt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if(h=!1,d=!1,bI(jz(yEt(i,(zYt(),tme)),98))){o=!1,s=!1;t:for(g=new Wf(i.j);g.a<g.c.c.length;)for(f=jz(J1(g),11),b=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[new $g(f),new Hg(f)])));gIt(b);)if(p=jz(V6(b),11),!zw(RB(yEt(p.i,Rpe)))){if(f.j==(wWt(),cAe)){o=!0;break t}if(f.j==EAe){s=!0;break t}}h=s&&!o,d=o&&!s}if(h||d||0==i.b.c.length)y=!d;else{for(u=0,l=new Wf(i.b);l.a<l.c.c.length;)u+=(c=jz(J1(l),70)).n.b+c.o.b/2;y=(u/=i.b.c.length)>=i.o.b/2}y?(m=jz(yEt(i,(lGt(),Bhe)),15))?h?r=m:(a=jz(yEt(i,Mde),15))?r=m.gc()<=a.gc()?m:a:(r=new Lm,lct(i,Mde,r)):(r=new Lm,lct(i,Bhe,r)):(a=jz(yEt(i,(lGt(),Mde)),15))?d?r=a:(m=jz(yEt(i,Bhe),15))?r=a.gc()<=m.gc()?a:m:(r=new Lm,lct(i,Bhe,r)):(r=new Lm,lct(i,Mde,r)),r.Fc(t),lct(t,(lGt(),Bde),n),e.d==n?(_Q(e,null),n.e.c.length+n.g.c.length==0&&CQ(n,null),plt(n)):(kQ(e,null),n.e.c.length+n.g.c.length==0&&CQ(n,null)),yK(e.a)}function tYt(t,e){var n,i,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A;for(y=new _2(t.b,0),p=0,l=jz((d=e.Kc()).Pb(),19).a,x=0,n=new Ny,_=new lI;y.b<y.d.gc();){for(EN(y.b<y.d.gc()),w=new Wf(jz(y.d.Xb(y.c=y.b++),29).a);w.a<w.c.c.length;){for(g=new oq(XO(dft(v=jz(J1(w),10)).a.Kc(),new u));gIt(g);)h=jz(V6(g),17),_.a.zc(h,_);for(f=new oq(XO(uft(v).a.Kc(),new u));gIt(f);)h=jz(V6(f),17),_.a.Bc(h)}if(p+1==l){for(yP(y,a=new $Y(t)),yP(y,r=new $Y(t)),E=_.a.ec().Kc();E.Ob();)k=jz(E.Pb(),17),n.a._b(k)||(++x,n.a.zc(k,n)),lct(o=new Iyt(t),(zYt(),tme),(Z_t(),GTe)),EQ(o,a),Fh(o,(oCt(),_se)),CQ(b=new SCt,o),HTt(b,(wWt(),SAe)),CQ(C=new SCt,o),HTt(C,sAe),lct(i=new Iyt(t),tme,GTe),EQ(i,r),Fh(i,_se),CQ(m=new SCt,i),HTt(m,SAe),CQ(S=new SCt,i),HTt(S,sAe),kQ(R=new hX,k.c),_Q(R,b),kQ(A=new hX,C),_Q(A,m),kQ(k,S),s=new b4(o,i,R,A,k),lct(o,(lGt(),Nde),s),lct(i,Nde,s),(T=R.c.i).k==_se&&((c=jz(yEt(T,Nde),305)).d=s,s.g=c);if(!d.Ob())break;l=jz(d.Pb(),19).a}++p}return nht(x)}function eYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p;for(d=0,a=new AO((!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));a.e!=a.i.gc();)zw(RB(JIt(i=jz(wmt(a),33),(zYt(),Hbe))))||((HA(JIt(e,Ipe))!==HA((yct(),Oye))||HA(JIt(e,Hpe))===HA((Gyt(),Rue))||HA(JIt(e,Hpe))===HA((Gyt(),wue))||zw(RB(JIt(e,Ope)))||HA(JIt(e,Cpe))!==HA(($dt(),fse)))&&!zw(RB(JIt(i,Dpe)))&&(Kmt(i,(lGt(),hhe),nht(d)),++d),fqt(t,i,n));for(d=0,l=new AO((!e.b&&(e.b=new tW(BDe,e,12,3)),e.b));l.e!=l.i.gc();)s=jz(wmt(l),79),(HA(JIt(e,(zYt(),Ipe)))!==HA((yct(),Oye))||HA(JIt(e,Hpe))===HA((Gyt(),Rue))||HA(JIt(e,Hpe))===HA((Gyt(),wue))||zw(RB(JIt(e,Ope)))||HA(JIt(e,Cpe))!==HA(($dt(),fse)))&&(Kmt(s,(lGt(),hhe),nht(d)),++d),g=CEt(s),p=AEt(s),u=zw(RB(JIt(g,hbe))),f=!zw(RB(JIt(s,Hbe))),h=u&&ZAt(s)&&zw(RB(JIt(s,fbe))),r=KJ(g)==e&&KJ(g)==KJ(p),o=(KJ(g)==e&&p==e)^(KJ(p)==e&&g==e),f&&!h&&(o||r)&&oGt(t,s,e,n);if(KJ(e))for(c=new AO(eK(KJ(e)));c.e!=c.i.gc();)(g=CEt(s=jz(wmt(c),79)))==e&&ZAt(s)&&(h=zw(RB(JIt(g,(zYt(),hbe))))&&zw(RB(JIt(s,fbe))))&&oGt(t,s,e,n)}function nYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I;for(Akt(n,"MinWidth layering",1),g=e.b,k=e.a,I=jz(yEt(e,(zYt(),xbe)),19).a,c=jz(yEt(e,Rbe),19).a,t.b=Hw(_B(yEt(e,yme))),t.d=BKt,x=new Wf(k);x.a<x.c.c.length;)(v=jz(J1(x),10)).k==(oCt(),Sse)&&(S=v.o.b,t.d=i.Math.min(t.d,S));for(t.d=i.Math.max(1,t.d),E=k.c.length,t.c=O5(TMe,lKt,25,E,15,1),t.f=O5(TMe,lKt,25,E,15,1),t.e=O5(LMe,HKt,25,E,15,1),u=0,t.a=0,R=new Wf(k);R.a<R.c.c.length;)(v=jz(J1(R),10)).p=u++,t.c[v.p]=fut(uft(v)),t.f[v.p]=fut(dft(v)),t.e[v.p]=v.o.b/t.d,t.a+=t.e[v.p];for(t.b/=t.d,t.a/=E,_=xDt(k),mL(k,GG(new Bp(t))),b=BKt,p=NGt,s=null,D=I,A=I,o=c,r=c,I<0&&(D=jz(Rve.a.zd(),19).a,A=jz(Rve.b.zd(),19).a),c<0&&(o=jz(xve.a.zd(),19).a,r=jz(xve.b.zd(),19).a),T=D;T<=A;T++)for(a=o;a<=r;a++)y=Hw(_B((C=Lzt(t,T,a,k,_)).a)),m=(f=jz(C.b,15)).gc(),(y<b||y==b&&m<p)&&(b=y,p=m,s=f);for(h=s.Kc();h.Ob();){for(d=jz(h.Pb(),15),l=new $Y(e),w=d.Kc();w.Ob();)EQ(v=jz(w.Pb(),10),l);g.c[g.c.length]=l}XSt(g),k.c=O5(Dte,zGt,1,0,5,1),zCt(n)}function iYt(t,e){var n,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E;for(t.b=e,t.a=jz(yEt(e,(zYt(),cbe)),19).a,t.c=jz(yEt(e,ube),19).a,0==t.c&&(t.c=NGt),b=new _2(e.b,0);b.b<b.d.gc();){for(EN(b.b<b.d.gc()),p=jz(b.d.Xb(b.c=b.b++),29),c=new Lm,h=-1,w=-1,v=new Wf(p.a);v.a<v.c.c.length;)y=jz(J1(v),10),F4((zj(),new oq(XO(lft(y).a.Kc(),new u))))>=t.a&&(a=vzt(t,y),h=i.Math.max(h,a.b),w=i.Math.max(w,a.d),Wz(c,new nA(y,a)));for(_=new Lm,d=0;d<h;++d)vV(_,0,(EN(b.b>0),b.a.Xb(b.c=--b.b),yP(b,k=new $Y(t.b)),EN(b.b<b.d.gc()),b.d.Xb(b.c=b.b++),k));for(s=new Wf(c);s.a<s.c.c.length;)if(r=jz(J1(s),46),g=jz(r.b,571).a)for(f=new Wf(g);f.a<f.c.c.length;)oxt(t,jz(J1(f),10),Vse,_);for(n=new Lm,l=0;l<w;++l)Wz(n,(yP(b,E=new $Y(t.b)),E));for(o=new Wf(c);o.a<o.c.c.length;)if(r=jz(J1(o),46),R=jz(r.b,571).c)for(x=new Wf(R);x.a<x.c.c.length;)oxt(t,jz(J1(x),10),qse,n)}for(m=new _2(e.b,0);m.b<m.d.gc();)EN(m.b<m.d.gc()),0==jz(m.d.Xb(m.c=m.b++),29).a.c.length&&lG(m)}function aYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T;if(Akt(n,"Spline edge routing",1),0==e.b.c.length)return e.f.a=0,void zCt(n);y=Hw(_B(yEt(e,(zYt(),Ame)))),c=Hw(_B(yEt(e,Rme))),s=Hw(_B(yEt(e,vme))),k=jz(yEt(e,nbe),336)==(qlt(),ive),_=Hw(_B(yEt(e,ibe))),t.d=e,t.j.c=O5(Dte,zGt,1,0,5,1),t.a.c=O5(Dte,zGt,1,0,5,1),DW(t.k),d=YA((l=jz(OU(e.b,0),29)).a,(gNt(),wwe)),h=YA((p=jz(OU(e.b,e.b.c.length-1),29)).a,wwe),b=new Wf(e.b),m=null,T=0;do{for(BWt(t,m,v=b.a<b.c.c.length?jz(J1(b),29):null),k$t(t),S=0,w=T,f=!m||d&&m==l,g=!v||h&&v==p,(E=Px(irt(LZ(AZ(new NU(null,new h1(t.i,16)),new xo),new wo))))>0?(u=0,m&&(u+=c),u+=(E-1)*s,v&&(u+=c),k&&v&&(u=i.Math.max(u,QMt(v,s,y,_))),u<y&&!f&&!g&&(S=(y-u)/2,u=y),w+=u):!f&&!g&&(w+=y),v&&_Ut(v,w),R=new Wf(t.i);R.a<R.c.c.length;)(x=jz(J1(R),128)).a.c=T,x.a.b=w-T,x.F=S,x.p=!m;pst(t.a,t.i),T=w,v&&(T+=v.c.a),m=v,f=g}while(v);for(r=new Wf(t.j);r.a<r.c.c.length;)o=yot(t,a=jz(J1(r),17)),lct(a,(lGt(),Dhe),o),C=NNt(t,a),lct(a,Lhe,C);e.f.a=T,t.d=null,zCt(n)}function rYt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v;if(p=0!=t.i,y=!1,b=null,mI(t.e)){if((u=e.gc())>0){for(h=u<100?null:new FR(u),g=(l=new xrt(e)).g,b=O5(TMe,lKt,25,u,15,1),i=0,v=new pet(u),a=0;a<t.i;++a){f=s=t.g[a];t:for(m=0;m<2;++m){for(c=u;--c>=0;)if(null!=f?Odt(f,g[c]):HA(f)===HA(g[c])){b.length<=i&&rHt(b,0,b=O5(TMe,lKt,25,2*b.length,15,1),0,i),b[i++]=a,l8(v,g[c]);break t}if(HA(f)===HA(s))break}}if(l=v,g=v.g,u=i,i>b.length&&rHt(b,0,b=O5(TMe,lKt,25,i,15,1),0,i),i>0){for(y=!0,r=0;r<i;++r)h=UF(t,jz(f=g[r],72),h);for(o=i;--o>=0;)Lwt(t,b[o]);if(i!=u){for(a=u;--a>=i;)Lwt(l,a);rHt(b,0,b=O5(TMe,lKt,25,i,15,1),0,i)}e=l}}}else for(e=xwt(t,e),a=t.i;--a>=0;)e.Hc(t.g[a])&&(Lwt(t,a),y=!0);if(y){if(null!=b){for(d=1==(n=e.gc())?yQ(t,4,e.Kc().Pb(),null,b[0],p):yQ(t,6,e,b,b[0],p),h=n<100?null:new FR(n),a=e.Kc();a.Ob();)h=zF(t,jz(f=a.Pb(),72),h);h?(h.Ei(d),h.Fi()):hot(t.e,d)}else{for(h=DF(e.gc()),a=e.Kc();a.Ob();)h=zF(t,jz(f=a.Pb(),72),h);h&&h.Fi()}return!0}return!1}function oYt(t,e){var n,i,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v;for((n=new lyt(e)).a||pjt(e),l=dPt(e),c=new pJ,b=new ZNt,p=new Wf(e.a);p.a<p.c.c.length;)for(a=new oq(XO(dft(jz(J1(p),10)).a.Kc(),new u));gIt(a);)((i=jz(V6(a),17)).c.i.k==(oCt(),kse)||i.d.i.k==kse)&&XAt(c,omt((d=dqt(t,i,l,b)).d),d.a);for(o=new Lm,v=jz(yEt(n.c,(lGt(),qde)),21).Kc();v.Ob();){switch(y=jz(v.Pb(),61),g=b.c[y.g],f=b.b[y.g],s=b.a[y.g],r=null,m=null,y.g){case 4:r=new VZ(t.d.a,g,l.b.a-t.d.a,f-g),m=new VZ(t.d.a,g,s,f-g),UH(l,new OT(r.c+r.b,r.d)),UH(l,new OT(r.c+r.b,r.d+r.a));break;case 2:r=new VZ(l.a.a,g,t.c.a-l.a.a,f-g),m=new VZ(t.c.a-s,g,s,f-g),UH(l,new OT(r.c,r.d)),UH(l,new OT(r.c,r.d+r.a));break;case 1:r=new VZ(g,t.d.b,f-g,l.b.b-t.d.b),m=new VZ(g,t.d.b,f-g,s),UH(l,new OT(r.c,r.d+r.a)),UH(l,new OT(r.c+r.b,r.d+r.a));break;case 3:r=new VZ(g,l.a.b,f-g,t.c.b-l.a.b),m=new VZ(g,t.c.b-s,f-g,s),UH(l,new OT(r.c,r.d)),UH(l,new OT(r.c+r.b,r.d))}r&&((h=new Jy).d=y,h.b=r,h.c=m,h.a=KK(jz(c7(c,omt(y)),21)),o.c[o.c.length]=h)}return pst(n.b,o),n.d=$ut(QUt(l)),n}function sYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p;if(null==n.p[e.p]){c=!0,n.p[e.p]=0,s=e,p=n.o==(oQ(),iwe)?PKt:BKt;do{r=t.b.e[s.p],o=s.c.a.c.length,n.o==iwe&&r>0||n.o==awe&&r<o-1?(l=null,u=null,l=n.o==awe?jz(OU(s.c.a,r+1),10):jz(OU(s.c.a,r-1),10),sYt(t,u=n.g[l.p],n),p=t.e.bg(p,e,s),n.j[e.p]==e&&(n.j[e.p]=n.j[u.p]),n.j[e.p]==n.j[u.p]?(g=BL(t.d,s,l),n.o==awe?(a=Hw(n.p[e.p]),h=Hw(n.p[u.p])+Hw(n.d[l.p])-l.d.d-g-s.d.a-s.o.b-Hw(n.d[s.p]),c?(c=!1,n.p[e.p]=i.Math.min(h,p)):n.p[e.p]=i.Math.min(a,i.Math.min(h,p))):(a=Hw(n.p[e.p]),h=Hw(n.p[u.p])+Hw(n.d[l.p])+l.o.b+l.d.a+g+s.d.d-Hw(n.d[s.p]),c?(c=!1,n.p[e.p]=i.Math.max(h,p)):n.p[e.p]=i.Math.max(a,i.Math.max(h,p)))):(g=Hw(_B(yEt(t.a,(zYt(),Tme)))),f=wat(t,n.j[e.p]),d=wat(t,n.j[u.p]),n.o==awe?V1(f,d,Hw(n.p[e.p])+Hw(n.d[s.p])+s.o.b+s.d.a+g-(Hw(n.p[u.p])+Hw(n.d[l.p])-l.d.d)):V1(f,d,Hw(n.p[e.p])+Hw(n.d[s.p])-s.d.d-Hw(n.p[u.p])-Hw(n.d[l.p])-l.o.b-l.d.a-g))):p=t.e.bg(p,e,s),s=n.a[s.p]}while(s!=e);Ty(t.e,e)}}function cYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;for(d=e,u=new pJ,h=new pJ,r=L2(d,M7t),UCt((i=new lK(t,n,u,h)).a,i.b,i.c,i.d,r),p=(u.i||(u.i=new $O(u,u.c))).Kc();p.Ob();)for(g=jz(p.Pb(),202),s=jz(c7(u,g),21).Kc();s.Ob();){if(o=s.Pb(),!(f=jz(cnt(t.d,o),202)))throw a=N2(d,H7t),$m(new tx(G7t+o+Z7t+a+Y7t));!g.e&&(g.e=new cF(PDe,g,10,9)),l8(g.e,f)}for(m=(h.i||(h.i=new $O(h,h.c))).Kc();m.Ob();)for(b=jz(m.Pb(),202),l=jz(c7(h,b),21).Kc();l.Ob();){if(c=l.Pb(),!(f=jz(cnt(t.d,c),202)))throw a=N2(d,H7t),$m(new tx(G7t+c+Z7t+a+Y7t));!b.g&&(b.g=new cF(PDe,b,9,10)),l8(b.g,f)}!n.b&&(n.b=new cF(NDe,n,4,7)),0!=n.b.i&&(!n.c&&(n.c=new cF(NDe,n,5,8)),0!=n.c.i)&&(!n.b&&(n.b=new cF(NDe,n,4,7)),n.b.i<=1&&(!n.c&&(n.c=new cF(NDe,n,5,8)),n.c.i<=1))&&1==(!n.a&&(n.a=new tW(PDe,n,6,6)),n.a).i&&!Eyt(y=jz(Yet((!n.a&&(n.a=new tW(PDe,n,6,6)),n.a),0),202))&&!Cyt(y)&&(Lit(y,jz(Yet((!n.b&&(n.b=new cF(NDe,n,4,7)),n.b),0),82)),Oit(y,jz(Yet((!n.c&&(n.c=new cF(NDe,n,5,8)),n.c),0),82)))}function lYt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C;for(w=0,x=(v=t.a).length;w<x;++w){for(y=v[w],l=NGt,u=NGt,g=new Wf(y.e);g.a<g.c.c.length;)(o=(h=jz(J1(g),10)).c?x9(h.c.a,h,0):-1)>0?(d=jz(OU(h.c.a,o-1),10),k=BL(t.b,h,d),b=h.n.b-h.d.d-(d.n.b+d.o.b+d.d.a+k)):b=h.n.b-h.d.d,l=i.Math.min(b,l),o<h.c.a.c.length-1?(d=jz(OU(h.c.a,o+1),10),k=BL(t.b,h,d),m=d.n.b-d.d.d-(h.n.b+h.o.b+h.d.a+k)):m=2*h.n.b,u=i.Math.min(m,u);for(c=NGt,r=!1,C=new Wf((a=jz(OU(y.e,0),10)).j);C.a<C.c.c.length;)for(E=jz(J1(C),11),p=a.n.b+E.n.b+E.a.b,n=new Wf(E.e);n.a<n.c.c.length;)e=(R=jz(J1(n),17).c).i.n.b+R.n.b+R.a.b-p,i.Math.abs(e)<i.Math.abs(c)&&i.Math.abs(e)<(e<0?l:u)&&(c=e,r=!0);for(_=new Wf((s=jz(OU(y.e,y.e.c.length-1),10)).j);_.a<_.c.c.length;)for(R=jz(J1(_),11),p=s.n.b+R.n.b+R.a.b,n=new Wf(R.g);n.a<n.c.c.length;)e=(E=jz(J1(n),17).d).i.n.b+E.n.b+E.a.b-p,i.Math.abs(e)<i.Math.abs(c)&&i.Math.abs(e)<(e<0?l:u)&&(c=e,r=!0);if(r&&0!=c)for(f=new Wf(y.e);f.a<f.c.c.length;)(h=jz(J1(f),10)).n.b+=c}}function uYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b;if(cW(t.a,e)){if(Fk(jz(NY(t.a,e),53),n))return 1}else YG(t.a,e,new Ny);if(cW(t.a,n)){if(Fk(jz(NY(t.a,n),53),e))return-1}else YG(t.a,n,new Ny);if(cW(t.e,e)){if(Fk(jz(NY(t.e,e),53),n))return-1}else YG(t.e,e,new Ny);if(cW(t.e,n)){if(Fk(jz(NY(t.a,n),53),e))return 1}else YG(t.e,n,new Ny);if(t.c==(yct(),Mye)||!IN(e,(lGt(),hhe))||!IN(n,(lGt(),hhe))){if(c=jz(xM(_3(Zct(AZ(new NU(null,new h1(e.j,16)),new lr)),new ur)),11),u=jz(xM(_3(Zct(AZ(new NU(null,new h1(n.j,16)),new dr)),new hr)),11),c&&u){if(s=c.i,l=u.i,s&&s==l){for(h=new Wf(s.j);h.a<h.c.c.length;){if((d=jz(J1(h),11))==c)return rFt(t,n,e),-1;if(d==u)return rFt(t,e,n),1}return xL(n_t(t,e),n_t(t,n))}for(p=0,b=(g=t.d).length;p<b;++p){if((f=g[p])==s)return rFt(t,n,e),-1;if(f==l)return rFt(t,e,n),1}}if(!IN(e,(lGt(),hhe))||!IN(n,hhe))return(a=n_t(t,e))>(o=n_t(t,n))?rFt(t,e,n):rFt(t,n,e),a<o?-1:a>o?1:0}return(i=jz(yEt(e,(lGt(),hhe)),19).a)>(r=jz(yEt(n,hhe),19).a)?rFt(t,e,n):rFt(t,n,e),i<r?-1:i>r?1:0}function dYt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p;if(zw(RB(JIt(e,(cGt(),UCe)))))return kK(),kK(),cne;if(c=0!=(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a).i,l=!(u=vAt(e)).dc(),c||l){if(!(a=jz(JIt(e,mSe),149)))throw $m(new nx("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));if(p=TT(a,(lIt(),JDe)),Obt(e),!c&&l&&!p)return kK(),kK(),cne;if(s=new Lm,HA(JIt(e,xCe))===HA((odt(),bTe))&&(TT(a,ZDe)||TT(a,GDe)))for(h=bPt(t,e),jat(f=new Zk,(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));0!=f.b;)Obt(d=jz(0==f.b?null:(EN(0!=f.b),Det(f,f.a.a)),33)),HA(JIt(d,xCe))===HA(yTe)||E5(d,tCe)&&!w6(a,JIt(d,mSe))?(pst(s,dYt(t,d,n,i)),Kmt(d,xCe,yTe),PFt(d)):jat(f,(!d.a&&(d.a=new tW(UDe,d,10,11)),d.a));else for(h=(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a).i,o=new AO((!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));o.e!=o.i.gc();)pst(s,dYt(t,r=jz(wmt(o),33),n,i)),PFt(r);for(g=new Wf(s);g.a<g.c.c.length;)Kmt(jz(J1(g),79),UCe,(cM(),!0));return qbt(e,a,yrt(i,h)),fjt(s),l&&p?u:(kK(),kK(),cne)}return kK(),kK(),cne}function hYt(t,e,n,i,a,r,o,s,c){var l,u,d,h,f,g,p;switch(f=n,Fh(u=new Iyt(c),(oCt(),kse)),lct(u,(lGt(),Zde),o),lct(u,(zYt(),tme),(Z_t(),WTe)),p=Hw(_B(t.We(Qbe))),lct(u,Qbe,p),CQ(d=new SCt,u),e!=ZTe&&e!=KTe||(f=i>=0?lgt(s):_ht(lgt(s)),t.Ye(rme,f)),l=new HR,h=!1,t.Xe(Jbe)?($N(l,jz(t.We(Jbe),8)),h=!0):yO(l,o.a/2,o.b/2),f.g){case 4:lct(u,vbe,(_ft(),jhe)),lct(u,Hde,(Xst(),Iue)),u.o.b=o.b,p<0&&(u.o.a=-p),HTt(d,(wWt(),sAe)),h||(l.a=o.a),l.a-=o.a;break;case 2:lct(u,vbe,(_ft(),zhe)),lct(u,Hde,(Xst(),Aue)),u.o.b=o.b,p<0&&(u.o.a=-p),HTt(d,(wWt(),SAe)),h||(l.a=0);break;case 1:lct(u,ehe,(U9(),Sde)),u.o.a=o.a,p<0&&(u.o.b=-p),HTt(d,(wWt(),EAe)),h||(l.b=o.b),l.b-=o.b;break;case 3:lct(u,ehe,(U9(),Ede)),u.o.a=o.a,p<0&&(u.o.b=-p),HTt(d,(wWt(),cAe)),h||(l.b=0)}if($N(d.n,l),lct(u,Jbe,l),e==qTe||e==YTe||e==WTe){if(g=0,e==qTe&&t.Xe(eme))switch(f.g){case 1:case 2:g=jz(t.We(eme),19).a;break;case 3:case 4:g=-jz(t.We(eme),19).a}else switch(f.g){case 4:case 2:g=r.b,e==YTe&&(g/=a.b);break;case 1:case 3:g=r.a,e==YTe&&(g/=a.a)}lct(u,Rhe,g)}return lct(u,Gde,f),u}function fYt(t){var e,n,i,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_;if((n=Hw(_B(yEt(t.a.j,(zYt(),Ppe)))))<-1||!t.a.i||IF(jz(yEt(t.a.o,tme),98))||rft(t.a.o,(wWt(),sAe)).gc()<2&&rft(t.a.o,SAe).gc()<2)return!0;if(t.a.c.Rf())return!1;for(w=0,v=0,y=new Lm,c=0,l=(s=t.a.e).length;c<l;++c){for(f=0,p=(h=s[c]).length;f<p;++f)if((d=h[f]).k!=(oCt(),Tse)){for(i=t.b[d.c.p][d.p],d.k==kse?(i.b=1,jz(yEt(d,(lGt(),fhe)),11).j==(wWt(),sAe)&&(v+=i.a)):(_=rft(d,(wWt(),SAe))).dc()||!QL(_,new Mr)?i.c=1:((a=rft(d,sAe)).dc()||!QL(a,new Or))&&(w+=i.a),o=new oq(XO(dft(d).a.Kc(),new u));gIt(o);)r=jz(V6(o),17),w+=i.c,v+=i.b,q5(t,i,r.d.i);for(R=new oq(new WO((b=Ynt(Cst(Hx(Mte,1),zGt,20,0,[rft(d,(wWt(),cAe)),rft(d,EAe)]))).a.length,b.a));gIt(R);)x=jz(V6(R),11),(m=jz(yEt(x,(lGt(),xhe)),10))&&(w+=i.c,v+=i.b,q5(t,i,m))}else y.c[y.c.length]=d;for(g=new Wf(y);g.a<g.c.c.length;)for(d=jz(J1(g),10),i=t.b[d.c.p][d.p],o=new oq(XO(dft(d).a.Kc(),new u));gIt(o);)r=jz(V6(o),17),w+=i.c,v+=i.b,q5(t,i,r.d.i);y.c=O5(Dte,zGt,1,0,5,1)}return(0==(e=w+v)?BKt:(w-v)/e)>=n}function gYt(){function t(t){var e=this;this.dispatch=function(e){var n=e.data;switch(n.cmd){case"algorithms":var i=Egt((kK(),new $f(new Tf(lIe.b))));t.postMessage({id:n.id,data:i});break;case"categories":var a=Egt((kK(),new $f(new Tf(lIe.c))));t.postMessage({id:n.id,data:a});break;case"options":var r=Egt((kK(),new $f(new Tf(lIe.d))));t.postMessage({id:n.id,data:r});break;case"register":dVt(n.algorithms),t.postMessage({id:n.id});break;case"layout":Mzt(n.graph,n.layoutOptions||{},n.options||{}),t.postMessage({id:n.id,data:n.graph})}},this.saveDispatch=function(n){try{e.dispatch(n)}catch(i){t.postMessage({id:n.data.id,error:i})}}}function i(e){var n=this;this.dispatcher=new t({postMessage:function(t){n.onmessage({data:t})}}),this.postMessage=function(t){setTimeout((function(){n.dispatcher.saveDispatch({data:t})}),0)}}if(a_(),typeof document===pXt&&typeof self!==pXt){var a=new t(self);self.onmessage=a.saveDispatch}else typeof e!==pXt&&e.exports&&(Object.defineProperty(n,"__esModule",{value:!0}),e.exports={default:i,Worker:i})}function pYt(t){t.N||(t.N=!0,t.b=wot(t,0),Bat(t.b,0),Bat(t.b,1),Bat(t.b,2),t.bb=wot(t,1),Bat(t.bb,0),Bat(t.bb,1),t.fb=wot(t,2),Bat(t.fb,3),Bat(t.fb,4),Pat(t.fb,5),t.qb=wot(t,3),Bat(t.qb,0),Pat(t.qb,1),Pat(t.qb,2),Bat(t.qb,3),Bat(t.qb,4),Pat(t.qb,5),Bat(t.qb,6),t.a=xot(t,4),t.c=xot(t,5),t.d=xot(t,6),t.e=xot(t,7),t.f=xot(t,8),t.g=xot(t,9),t.i=xot(t,10),t.j=xot(t,11),t.k=xot(t,12),t.n=xot(t,13),t.o=xot(t,14),t.p=xot(t,15),t.q=xot(t,16),t.s=xot(t,17),t.r=xot(t,18),t.t=xot(t,19),t.u=xot(t,20),t.v=xot(t,21),t.w=xot(t,22),t.B=xot(t,23),t.A=xot(t,24),t.C=xot(t,25),t.D=xot(t,26),t.F=xot(t,27),t.G=xot(t,28),t.H=xot(t,29),t.J=xot(t,30),t.I=xot(t,31),t.K=xot(t,32),t.M=xot(t,33),t.L=xot(t,34),t.P=xot(t,35),t.Q=xot(t,36),t.R=xot(t,37),t.S=xot(t,38),t.T=xot(t,39),t.U=xot(t,40),t.V=xot(t,41),t.X=xot(t,42),t.W=xot(t,43),t.Y=xot(t,44),t.Z=xot(t,45),t.$=xot(t,46),t._=xot(t,47),t.ab=xot(t,48),t.cb=xot(t,49),t.db=xot(t,50),t.eb=xot(t,51),t.gb=xot(t,52),t.hb=xot(t,53),t.ib=xot(t,54),t.jb=xot(t,55),t.kb=xot(t,56),t.lb=xot(t,57),t.mb=xot(t,58),t.nb=xot(t,59),t.ob=xot(t,60),t.pb=xot(t,61))}function bYt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;if(v=0,0==e.f.a)for(m=new Wf(t);m.a<m.c.c.length;)p=jz(J1(m),10),v=i.Math.max(v,p.n.a+p.o.a+p.d.c);else v=e.f.a-e.c.a;for(v-=e.c.a,b=new Wf(t);b.a<b.c.c.length;){switch(Xm((p=jz(J1(b),10)).n,v-p.o.a),iH(p.f),Gvt(p),(p.q?p.q:(kK(),kK(),lne))._b((zYt(),sme))&&Xm(jz(yEt(p,sme),8),v-p.o.a),jz(yEt(p,vpe),248).g){case 1:lct(p,vpe,(fyt(),IEe));break;case 2:lct(p,vpe,(fyt(),DEe))}for(y=p.o,x=new Wf(p.j);x.a<x.c.c.length;){for(Xm((w=jz(J1(x),11)).n,y.a-w.o.a),Xm(w.a,w.o.a),HTt(w,Trt(w.j)),(s=jz(yEt(w,eme),19))&&lct(w,eme,nht(-s.a)),o=new Wf(w.g);o.a<o.c.c.length;){for(a=cmt((r=jz(J1(o),17)).a,0);a.b!=a.d.c;)(n=jz(d4(a),8)).a=v-n.a;if(u=jz(yEt(r,bbe),74))for(l=cmt(u,0);l.b!=l.d.c;)(c=jz(d4(l),8)).a=v-c.a;for(f=new Wf(r.b);f.a<f.c.c.length;)Xm((d=jz(J1(f),70)).n,v-d.o.a)}for(g=new Wf(w.f);g.a<g.c.c.length;)Xm((d=jz(J1(g),70)).n,w.o.a-d.o.a)}for(p.k==(oCt(),kse)&&(lct(p,(lGt(),Gde),Trt(jz(yEt(p,Gde),61))),KEt(p)),h=new Wf(p.b);h.a<h.c.c.length;)Gvt(d=jz(J1(h),70)),Xm(d.n,y.a-d.o.a)}}function mYt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;if(v=0,0==e.f.b)for(m=new Wf(t);m.a<m.c.c.length;)p=jz(J1(m),10),v=i.Math.max(v,p.n.b+p.o.b+p.d.a);else v=e.f.b-e.c.b;for(v-=e.c.b,b=new Wf(t);b.a<b.c.c.length;){switch(Km((p=jz(J1(b),10)).n,v-p.o.b),aH(p.f),Zvt(p),(p.q?p.q:(kK(),kK(),lne))._b((zYt(),sme))&&Km(jz(yEt(p,sme),8),v-p.o.b),jz(yEt(p,vpe),248).g){case 3:lct(p,vpe,(fyt(),TEe));break;case 4:lct(p,vpe,(fyt(),LEe))}for(y=p.o,x=new Wf(p.j);x.a<x.c.c.length;){for(Km((w=jz(J1(x),11)).n,y.b-w.o.b),Km(w.a,w.o.b),HTt(w,Art(w.j)),(s=jz(yEt(w,eme),19))&&lct(w,eme,nht(-s.a)),o=new Wf(w.g);o.a<o.c.c.length;){for(a=cmt((r=jz(J1(o),17)).a,0);a.b!=a.d.c;)(n=jz(d4(a),8)).b=v-n.b;if(u=jz(yEt(r,bbe),74))for(l=cmt(u,0);l.b!=l.d.c;)(c=jz(d4(l),8)).b=v-c.b;for(f=new Wf(r.b);f.a<f.c.c.length;)Km((d=jz(J1(f),70)).n,v-d.o.b)}for(g=new Wf(w.f);g.a<g.c.c.length;)Km((d=jz(J1(g),70)).n,w.o.b-d.o.b)}for(p.k==(oCt(),kse)&&(lct(p,(lGt(),Gde),Art(jz(yEt(p,Gde),61))),pht(p)),h=new Wf(p.b);h.a<h.c.c.length;)Zvt(d=jz(J1(h),70)),Km(d.n,y.b-d.o.b)}}function yYt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f;for(d=!1,l=t+1,u1(t,e.c.length),o=(u=jz(e.c[t],200)).a,s=null,r=0;r<u.a.c.length;r++)if(u1(r,o.c.length),!(a=jz(o.c[r],187)).c){if(0==a.b.c.length){Dk(),_xt(u,a),--r,d=!0;continue}if(a.k||(s&&Uvt(s),_yt(a,(s=new BJ(s?s.e+s.d+i:0,u.f,i)).e+s.d,u.f),Wz(u.d,s),Mrt(s,a),a.k=!0),c=null,f=null,r<u.a.c.length-1?f=jz(OU(u.a,r+1),187):l<e.c.length&&0!=(u1(l,e.c.length),jz(e.c[l],200)).a.c.length&&(f=jz(OU((u1(l,e.c.length),jz(e.c[l],200)).a,0),187)),h=!1,(c=f)&&(h=!Odt(c.j,u)),c){if(0==c.b.c.length){_xt(u,c);break}if(p8(a,n-a.s),Uvt(a.q),d|=QEt(u,a,c,n,i),0==c.b.c.length)for(_xt((u1(l,e.c.length),jz(e.c[l],200)),c),c=null;e.c.length>l&&0==(u1(l,e.c.length),jz(e.c[l],200)).a.c.length;)y9(e,(u1(l,e.c.length),e.c[l]));if(!c){--r;continue}if(Djt(e,u,a,c,h,n,l,i)){d=!0;continue}if(h){if(Xzt(e,u,a,c,n,l,i)){d=!0;continue}if(Dut(u,a)){a.c=!0,d=!0;continue}}else if(Dut(u,a)){a.c=!0,d=!0;continue}if(d)continue}if(Dut(u,a)){a.c=!0,d=!0,c&&(c.k=!1);continue}Uvt(a.q)}return d}function vYt(t,e,n,a,r,o,s){var c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I;for(b=0,S=0,u=new Wf(t.b);u.a<u.c.c.length;)(l=jz(J1(u),157)).c&&sqt(l.c),b=i.Math.max(b,eV(l)),S+=eV(l)*tV(l);for(m=S/t.b.c.length,C=lRt(t.b,m),S+=t.b.c.length*C,b=i.Math.max(b,i.Math.sqrt(S*s))+n.b,D=n.b,I=n.d,g=0,h=n.b+n.c,MH(E=new Zk,nht(0)),_=new Zk,d=new _2(t.b,0),p=null,c=new Lm;d.b<d.d.gc();)EN(d.b<d.d.gc()),A=eV(l=jz(d.d.Xb(d.c=d.b++),157)),f=tV(l),D+A>b&&(o&&(lD(_,g),lD(E,nht(d.b-1)),Wz(t.d,p),c.c=O5(Dte,zGt,1,0,5,1)),D=n.b,I+=g+e,g=0,h=i.Math.max(h,n.b+n.c+A)),c.c[c.c.length]=l,kmt(l,D,I),h=i.Math.max(h,D+A+n.c),g=i.Math.max(g,f),D+=A+e,p=l;if(pst(t.a,c),Wz(t.d,jz(OU(c,c.c.length-1),157)),h=i.Math.max(h,a),(T=I+g+n.a)<r&&(g+=r-T,T=r),o)for(D=n.b,d=new _2(t.b,0),lD(E,nht(t.b.c.length)),v=jz(d4(k=cmt(E,0)),19).a,lD(_,g),R=cmt(_,0),x=0;d.b<d.d.gc();)d.b==v&&(D=n.b,x=Hw(_B(d4(R))),v=jz(d4(k),19).a),EN(d.b<d.d.gc()),qpt(l=jz(d.d.Xb(d.c=d.b++),157),x),d.b==v&&(y=h-D-n.c,w=eV(l),Vpt(l,y),jht(l,(y-w)/2,0)),D+=eV(l)+e;return new OT(h,T)}function wYt(t){var e,n,i,a;switch(a=null,t.c){case 6:return t.Vl();case 13:return t.Wl();case 23:return t.Nl();case 22:return t.Sl();case 18:return t.Pl();case 8:ZYt(t),fGt(),a=rMe;break;case 9:return t.vl(!0);case 19:return t.wl();case 10:switch(t.a){case 100:case 68:case 119:case 87:case 115:case 83:return a=t.ul(t.a),ZYt(t),a;case 101:case 102:case 110:case 114:case 116:case 117:case 118:case 120:(e=t.tl())<$Kt?(fGt(),fGt(),a=new oV(0,e)):a=pq(Wht(e));break;case 99:return t.Fl();case 67:return t.Al();case 105:return t.Il();case 73:return t.Bl();case 103:return t.Gl();case 88:return t.Cl();case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return t.xl();case 80:case 112:if(!(a=NAt(t,t.a)))throw $m(new ax(wGt((rL(),A5t))));break;default:a=GH(t.a)}ZYt(t);break;case 0:if(93==t.a||123==t.a||125==t.a)throw $m(new ax(wGt((rL(),T5t))));a=GH(t.a),n=t.a,ZYt(t),(64512&n)==zKt&&0==t.c&&56320==(64512&t.a)&&((i=O5(SMe,YZt,25,2,15,1))[0]=n&ZZt,i[1]=t.a&ZZt,a=oW(pq($pt(i,0,i.length)),0),ZYt(t));break;default:throw $m(new ax(wGt((rL(),T5t))))}return a}function xYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(a=new Lm,r=NGt,o=NGt,s=NGt,n)for(r=t.f.a,p=new Wf(e.j);p.a<p.c.c.length;)for(l=new Wf(jz(J1(p),11).g);l.a<l.c.c.length;)0!=(c=jz(J1(l),17)).a.b&&((d=jz(gN(c.a),8)).a<r&&(o=r-d.a,s=NGt,a.c=O5(Dte,zGt,1,0,5,1),r=d.a),d.a<=r&&(a.c[a.c.length]=c,c.a.b>1&&(s=i.Math.min(s,i.Math.abs(jz(Nmt(c.a,1),8).b-d.b)))));else for(p=new Wf(e.j);p.a<p.c.c.length;)for(l=new Wf(jz(J1(p),11).e);l.a<l.c.c.length;)0!=(c=jz(J1(l),17)).a.b&&((f=jz(pN(c.a),8)).a>r&&(o=f.a-r,s=NGt,a.c=O5(Dte,zGt,1,0,5,1),r=f.a),f.a>=r&&(a.c[a.c.length]=c,c.a.b>1&&(s=i.Math.min(s,i.Math.abs(jz(Nmt(c.a,c.a.b-2),8).b-f.b)))));if(0!=a.c.length&&o>e.o.a/2&&s>e.o.b/2){for(CQ(g=new SCt,e),HTt(g,(wWt(),cAe)),g.n.a=e.o.a/2,CQ(b=new SCt,e),HTt(b,EAe),b.n.a=e.o.a/2,b.n.b=e.o.b,l=new Wf(a);l.a<l.c.c.length;)c=jz(J1(l),17),n?(u=jz(fH(c.a),8),(0==c.a.b?g1(c.d):jz(gN(c.a),8)).b>=u.b?kQ(c,b):kQ(c,g)):(u=jz(gH(c.a),8),(0==c.a.b?g1(c.c):jz(pN(c.a),8)).b>=u.b?_Q(c,b):_Q(c,g)),(h=jz(yEt(c,(zYt(),bbe)),74))&&vgt(h,u,!0);e.n.a=r-e.o.a/2}}function RYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;if(l=e,Iit(c=G4(t,I4(n),l),N2(l,H7t)),u=jz(cnt(t.g,wAt(UJ(l,_7t))),33),i=null,(o=UJ(l,"sourcePort"))&&(i=wAt(o)),d=jz(cnt(t.j,i),118),!u)throw $m(new tx("An edge must have a source node (edge id: '"+Zpt(l)+Y7t));if(d&&!hG(WJ(d),u))throw $m(new tx("The source port of an edge must be a port of the edge's source node (edge id: '"+N2(l,H7t)+Y7t));if(!c.b&&(c.b=new cF(NDe,c,4,7)),l8(c.b,d||u),h=jz(cnt(t.g,wAt(UJ(l,K7t))),33),a=null,(s=UJ(l,"targetPort"))&&(a=wAt(s)),f=jz(cnt(t.j,a),118),!h)throw $m(new tx("An edge must have a target node (edge id: '"+Zpt(l)+Y7t));if(f&&!hG(WJ(f),h))throw $m(new tx("The target port of an edge must be a port of the edge's target node (edge id: '"+N2(l,H7t)+Y7t));if(!c.c&&(c.c=new cF(NDe,c,5,8)),l8(c.c,f||h),0==(!c.b&&(c.b=new cF(NDe,c,4,7)),c.b).i||0==(!c.c&&(c.c=new cF(NDe,c,5,8)),c.c).i)throw r=N2(l,H7t),$m(new tx(W7t+r+Y7t));return Ekt(l,c),cLt(l,c),Mct(t,l,c)}function _Yt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C;return d=S$t($M(t,(wWt(),fAe)),e),g=rwt($M(t,gAe),e),w=rwt($M(t,RAe),e),k=owt($M(t,kAe),e),h=owt($M(t,lAe),e),y=rwt($M(t,xAe),e),p=rwt($M(t,pAe),e),R=rwt($M(t,_Ae),e),x=rwt($M(t,uAe),e),E=owt($M(t,hAe),e),m=rwt($M(t,vAe),e),v=rwt($M(t,yAe),e),_=rwt($M(t,dAe),e),C=owt($M(t,wAe),e),f=owt($M(t,bAe),e),b=rwt($M(t,mAe),e),n=Lct(Cst(Hx(LMe,1),HKt,25,15,[y.a,k.a,R.a,C.a])),i=Lct(Cst(Hx(LMe,1),HKt,25,15,[g.a,d.a,w.a,b.a])),a=m.a,r=Lct(Cst(Hx(LMe,1),HKt,25,15,[p.a,h.a,x.a,f.a])),l=Lct(Cst(Hx(LMe,1),HKt,25,15,[y.b,g.b,p.b,v.b])),c=Lct(Cst(Hx(LMe,1),HKt,25,15,[k.b,d.b,h.b,b.b])),u=E.b,s=Lct(Cst(Hx(LMe,1),HKt,25,15,[R.b,w.b,x.b,_.b])),h8($M(t,fAe),n+a,l+u),h8($M(t,mAe),n+a,l+u),h8($M(t,gAe),n+a,0),h8($M(t,RAe),n+a,l+u+c),h8($M(t,kAe),0,l+u),h8($M(t,lAe),n+a+i,l+u),h8($M(t,pAe),n+a+i,0),h8($M(t,_Ae),0,l+u+c),h8($M(t,uAe),n+a+i,l+u+c),h8($M(t,hAe),0,l),h8($M(t,vAe),n,0),h8($M(t,dAe),0,l+u+c),h8($M(t,bAe),n+a+i,0),(o=new HR).a=Lct(Cst(Hx(LMe,1),HKt,25,15,[n+i+a+r,E.a,v.a,_.a])),o.b=Lct(Cst(Hx(LMe,1),HKt,25,15,[l+c+u+s,m.b,C.b,f.b])),o}function kYt(t){var e,n,i,a,r,o,s,c,l,d,h,f,g,p,b;for(p=new Lm,h=new Wf(t.d.b);h.a<h.c.c.length;)for(g=new Wf(jz(J1(h),29).a);g.a<g.c.c.length;){for(f=jz(J1(g),10),a=jz(NY(t.f,f),57),c=new oq(XO(dft(f).a.Kc(),new u));gIt(c);)if(l=!0,d=null,(i=cmt((o=jz(V6(c),17)).a,0)).b!=i.d.c){for(e=jz(d4(i),8),n=null,o.c.j==(wWt(),cAe)&&((b=new Czt(e,new OT(e.a,a.d.d),a,o)).f.a=!0,b.a=o.c,p.c[p.c.length]=b),o.c.j==EAe&&((b=new Czt(e,new OT(e.a,a.d.d+a.d.a),a,o)).f.d=!0,b.a=o.c,p.c[p.c.length]=b);i.b!=i.d.c;)n=jz(d4(i),8),rnt(e.b,n.b)||(d=new Czt(e,n,null,o),p.c[p.c.length]=d,l&&(l=!1,n.b<a.d.d?d.f.a=!0:n.b>a.d.d+a.d.a?d.f.d=!0:(d.f.d=!0,d.f.a=!0))),i.b!=i.d.c&&(e=n);d&&(r=jz(NY(t.f,o.d.i),57),e.b<r.d.d?d.f.a=!0:e.b>r.d.d+r.d.a?d.f.d=!0:(d.f.d=!0,d.f.a=!0))}for(s=new oq(XO(uft(f).a.Kc(),new u));gIt(s);)0!=(o=jz(V6(s),17)).a.b&&(e=jz(pN(o.a),8),o.d.j==(wWt(),cAe)&&((b=new Czt(e,new OT(e.a,a.d.d),a,o)).f.a=!0,b.a=o.d,p.c[p.c.length]=b),o.d.j==EAe&&((b=new Czt(e,new OT(e.a,a.d.d+a.d.a),a,o)).f.d=!0,b.a=o.d,p.c[p.c.length]=b))}return p}function EYt(t,e,n){var i,a,r,o,s,c,l;if(Akt(n,"Network simplex node placement",1),t.e=e,t.n=jz(yEt(e,(lGt(),Ahe)),304),sUt(t),B_t(t),Kk(htt(new NU(null,new h1(t.e.b,16)),new Hr),new ib(t)),Kk(AZ(htt(AZ(htt(new NU(null,new h1(t.e.b,16)),new eo),new no),new io),new ao),new nb(t)),zw(RB(yEt(t.e,(zYt(),Obe))))&&(Akt(r=yrt(n,1),"Straight Edges Pre-Processing",1),xqt(t),zCt(r)),kyt(t.f),a=jz(yEt(e,Ome),19).a*t.f.a.c.length,YFt(Gx(Zx(jj(t.f),a),!1),yrt(n,1)),0!=t.d.a.gc()){for(Akt(r=yrt(n,1),"Flexible Where Space Processing",1),o=jz(DM(Tq(DZ(new NU(null,new h1(t.f.a,16)),new Ur),new Br)),19).a,s=jz(DM(Sq(DZ(new NU(null,new h1(t.f.a,16)),new Vr),new Pr)),19).a-o,c=AM(new zy,t.f),l=AM(new zy,t.f),qMt(aE(iE(nE(rE(new $y,2e4),s),c),l)),Kk(AZ(AZ(IW(t.i),new qr),new Wr),new UZ(o,c,s,l)),i=t.d.a.ec().Kc();i.Ob();)jz(i.Pb(),213).g=1;YFt(Gx(Zx(jj(t.f),a),!1),yrt(r,1)),zCt(r)}zw(RB(yEt(e,Obe)))&&(Akt(r=yrt(n,1),"Straight Edges Post-Processing",1),ESt(t),zCt(r)),ZVt(t),t.e=null,t.f=null,t.i=null,t.c=null,DW(t.k),t.j=null,t.a=null,t.o=null,t.d.a.$b(),zCt(n)}function CYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;for(s=new Wf(t.a.b);s.a<s.c.c.length;)for(v=new Wf(jz(J1(s),29).a);v.a<v.c.c.length;)y=jz(J1(v),10),e.g[y.p]=y,e.a[y.p]=y,e.d[y.p]=0;for(c=t.a.b,e.c==(gJ(),Qve)&&(c=iO(c,152)?o7(jz(c,152)):iO(c,131)?jz(c,131).a:iO(c,54)?new lw(c):new Ck(c)),o=c.Kc();o.Ob();)for(f=-1,h=jz(o.Pb(),29).a,e.o==(oQ(),awe)&&(f=NGt,h=iO(h,152)?o7(jz(h,152)):iO(h,131)?jz(h,131).a:iO(h,54)?new lw(h):new Ck(h)),x=h.Kc();x.Ob();)if(w=jz(x.Pb(),10),d=null,(d=e.c==Qve?jz(OU(t.b.f,w.p),15):jz(OU(t.b.b,w.p),15)).gc()>0)if(a=d.gc(),l=CJ(i.Math.floor((a+1)/2))-1,r=CJ(i.Math.ceil((a+1)/2))-1,e.o==awe)for(u=r;u>=l;u--)e.a[w.p]==w&&(p=jz(d.Xb(u),46),g=jz(p.a,10),!Fk(n,p.b)&&f>t.b.e[g.p]&&(e.a[g.p]=w,e.g[w.p]=e.g[g.p],e.a[w.p]=e.g[w.p],e.f[e.g[w.p].p]=(cM(),!!(zw(e.f[e.g[w.p].p])&w.k==(oCt(),Cse))),f=t.b.e[g.p]));else for(u=l;u<=r;u++)e.a[w.p]==w&&(m=jz(d.Xb(u),46),b=jz(m.a,10),!Fk(n,m.b)&&f<t.b.e[b.p]&&(e.a[b.p]=w,e.g[w.p]=e.g[b.p],e.a[w.p]=e.g[w.p],e.f[e.g[w.p].p]=(cM(),!!(zw(e.f[e.g[w.p].p])&w.k==(oCt(),Cse))),f=t.b.e[b.p]))}function SYt(){SYt=D,t_(),EDe=gDe.a,jz(Yet(GK(gDe.a),0),18),vDe=gDe.f,jz(Yet(GK(gDe.f),0),18),jz(Yet(GK(gDe.f),1),34),kDe=gDe.n,jz(Yet(GK(gDe.n),0),34),jz(Yet(GK(gDe.n),1),34),jz(Yet(GK(gDe.n),2),34),jz(Yet(GK(gDe.n),3),34),wDe=gDe.g,jz(Yet(GK(gDe.g),0),18),jz(Yet(GK(gDe.g),1),34),bDe=gDe.c,jz(Yet(GK(gDe.c),0),18),jz(Yet(GK(gDe.c),1),18),xDe=gDe.i,jz(Yet(GK(gDe.i),0),18),jz(Yet(GK(gDe.i),1),18),jz(Yet(GK(gDe.i),2),18),jz(Yet(GK(gDe.i),3),18),jz(Yet(GK(gDe.i),4),34),RDe=gDe.j,jz(Yet(GK(gDe.j),0),18),mDe=gDe.d,jz(Yet(GK(gDe.d),0),18),jz(Yet(GK(gDe.d),1),18),jz(Yet(GK(gDe.d),2),18),jz(Yet(GK(gDe.d),3),18),jz(Yet(GK(gDe.d),4),34),jz(Yet(GK(gDe.d),5),34),jz(Yet(GK(gDe.d),6),34),jz(Yet(GK(gDe.d),7),34),pDe=gDe.b,jz(Yet(GK(gDe.b),0),34),jz(Yet(GK(gDe.b),1),34),yDe=gDe.e,jz(Yet(GK(gDe.e),0),34),jz(Yet(GK(gDe.e),1),34),jz(Yet(GK(gDe.e),2),34),jz(Yet(GK(gDe.e),3),34),jz(Yet(GK(gDe.e),4),18),jz(Yet(GK(gDe.e),5),18),jz(Yet(GK(gDe.e),6),18),jz(Yet(GK(gDe.e),7),18),jz(Yet(GK(gDe.e),8),18),jz(Yet(GK(gDe.e),9),18),jz(Yet(GK(gDe.e),10),34),_De=gDe.k,jz(Yet(GK(gDe.k),0),34),jz(Yet(GK(gDe.k),1),34)}function TYt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S;for(E=new Zk,R=new Zk,b=-1,c=new Wf(t);c.a<c.c.c.length;){for((o=jz(J1(c),128)).s=b--,u=0,v=0,r=new Wf(o.t);r.a<r.c.c.length;)v+=(i=jz(J1(r),268)).c;for(a=new Wf(o.i);a.a<a.c.c.length;)u+=(i=jz(J1(a),268)).c;o.n=u,o.u=v,0==v?n6(R,o,R.c.b,R.c):0==u&&n6(E,o,E.c.b,E.c)}for(S=k3(t),p=(d=t.c.length)+1,m=d-1,f=new Lm;0!=S.a.gc();){for(;0!=R.b;)EN(0!=R.b),x=jz(Det(R,R.a.a),128),S.a.Bc(x),x.s=m--,aOt(x,E,R);for(;0!=E.b;)EN(0!=E.b),_=jz(Det(E,E.a.a),128),S.a.Bc(_),_.s=p++,aOt(_,E,R);for(g=FZt,l=S.a.ec().Kc();l.Ob();)(y=(o=jz(l.Pb(),128)).u-o.n)>=g&&(y>g&&(f.c=O5(Dte,zGt,1,0,5,1),g=y),f.c[f.c.length]=o);0!=f.c.length&&(h=jz(OU(f,byt(e,f.c.length)),128),S.a.Bc(h),h.s=p++,aOt(h,E,R),f.c=O5(Dte,zGt,1,0,5,1))}for(w=t.c.length+1,s=new Wf(t);s.a<s.c.c.length;)(o=jz(J1(s),128)).s<d&&(o.s+=w);for(k=new Wf(t);k.a<k.c.c.length;)for(n=new _2((_=jz(J1(k),128)).t,0);n.b<n.d.gc();)EN(n.b<n.d.gc()),C=(i=jz(n.d.Xb(n.c=n.b++),268)).b,_.s>C.s&&(lG(n),y9(C.i,i),i.c>0&&(i.a=C,Wz(C.t,i),i.b=_,Wz(_.i,i)))}function AYt(t){var e,n,i,a,r;switch(e=t.c){case 11:return t.Ml();case 12:return t.Ol();case 14:return t.Ql();case 15:return t.Tl();case 16:return t.Rl();case 17:return t.Ul();case 21:return ZYt(t),fGt(),fGt(),oMe;case 10:switch(t.a){case 65:return t.yl();case 90:return t.Dl();case 122:return t.Kl();case 98:return t.El();case 66:return t.zl();case 60:return t.Jl();case 62:return t.Hl()}}switch(r=wYt(t),e=t.c){case 3:return t.Zl(r);case 4:return t.Xl(r);case 5:return t.Yl(r);case 0:if(123==t.a&&t.d<t.j){if(a=t.d,i=0,n=-1,!((e=lZ(t.i,a++))>=48&&e<=57))throw $m(new ax(wGt((rL(),W5t))));for(i=e-48;a<t.j&&(e=lZ(t.i,a++))>=48&&e<=57;)if((i=10*i+e-48)<0)throw $m(new ax(wGt((rL(),K5t))));if(n=i,44==e){if(a>=t.j)throw $m(new ax(wGt((rL(),G5t))));if((e=lZ(t.i,a++))>=48&&e<=57){for(n=e-48;a<t.j&&(e=lZ(t.i,a++))>=48&&e<=57;)if((n=10*n+e-48)<0)throw $m(new ax(wGt((rL(),K5t))));if(i>n)throw $m(new ax(wGt((rL(),Z5t))))}else n=-1}if(125!=e)throw $m(new ax(wGt((rL(),Y5t))));t.sl(a)?(fGt(),fGt(),r=new c3(9,r),t.d=a+1):(fGt(),fGt(),r=new c3(3,r),t.d=a),r.dm(i),r.cm(n),ZYt(t)}}return r}function DYt(t,e,n,i,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E;for(g=new K7(e.b),y=new K7(e.b),h=new K7(e.b),R=new K7(e.b),p=new K7(e.b),x=cmt(e,0);x.b!=x.d.c;)for(s=new Wf((v=jz(d4(x),11)).g);s.a<s.c.c.length;)if((r=jz(J1(s),17)).c.i==r.d.i){if(v.j==r.d.j){R.c[R.c.length]=r;continue}if(v.j==(wWt(),cAe)&&r.d.j==EAe){p.c[p.c.length]=r;continue}}for(c=new Wf(p);c.a<c.c.c.length;)Fjt(t,r=jz(J1(c),17),n,i,(wWt(),sAe));for(o=new Wf(R);o.a<o.c.c.length;)r=jz(J1(o),17),Fh(_=new Iyt(t),(oCt(),Tse)),lct(_,(zYt(),tme),(Z_t(),WTe)),lct(_,(lGt(),fhe),r),lct(k=new SCt,fhe,r.d),HTt(k,(wWt(),SAe)),CQ(k,_),lct(E=new SCt,fhe,r.c),HTt(E,sAe),CQ(E,_),lct(r.c,xhe,_),lct(r.d,xhe,_),kQ(r,null),_Q(r,null),n.c[n.c.length]=_,lct(_,jde,nht(2));for(w=cmt(e,0);w.b!=w.d.c;)l=(v=jz(d4(w),11)).e.c.length>0,b=v.g.c.length>0,l&&b?h.c[h.c.length]=v:l?g.c[g.c.length]=v:b&&(y.c[y.c.length]=v);for(f=new Wf(g);f.a<f.c.c.length;)Wz(a,zzt(t,jz(J1(f),11),null,n));for(m=new Wf(y);m.a<m.c.c.length;)Wz(a,zzt(t,null,jz(J1(m),11),n));for(d=new Wf(h);d.a<d.c.c.length;)Wz(a,zzt(t,u=jz(J1(d),11),u,n))}function IYt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;for(p=new OT(BKt,BKt),e=new OT(PKt,PKt),x=new Wf(t);x.a<x.c.c.length;)w=jz(J1(x),8),p.a=i.Math.min(p.a,w.a),p.b=i.Math.min(p.b,w.b),e.a=i.Math.max(e.a,w.a),e.b=i.Math.max(e.b,w.b);for(l=new OT(e.a-p.a,e.b-p.b),u=new J$t(new OT(p.a-50,p.b-l.a-50),new OT(p.a-50,e.b+l.a+50),new OT(e.a+l.b/2+50,p.b+l.b/2)),v=new Ny,r=new Lm,n=new Lm,v.a.zc(u,v),_=new Wf(t);_.a<_.c.c.length;){for(R=jz(J1(_),8),r.c=O5(Dte,zGt,1,0,5,1),y=v.a.ec().Kc();y.Ob();)W5((b=jz(y.Pb(),308)).d,b.a),Tft(W5(b.d,R),W5(b.d,b.a))<0&&(r.c[r.c.length]=b);for(n.c=O5(Dte,zGt,1,0,5,1),m=new Wf(r);m.a<m.c.c.length;)for(f=new Wf((b=jz(J1(m),308)).e);f.a<f.c.c.length;){for(d=jz(J1(f),168),o=!0,c=new Wf(r);c.a<c.c.c.length;)(s=jz(J1(c),308))!=b&&(iZ(d,OU(s.e,0))||iZ(d,OU(s.e,1))||iZ(d,OU(s.e,2)))&&(o=!1);o&&(n.c[n.c.length]=d)}for(sEt(v,r),t6(v,new ht),h=new Wf(n);h.a<h.c.c.length;)RW(v,new J$t(R,(d=jz(J1(h),168)).a,d.b))}for(t6(v,new wg(g=new Ny)),a=g.a.ec().Kc();a.Ob();)(B9(u,(d=jz(a.Pb(),168)).a)||B9(u,d.b))&&a.Qb();return t6(g,new ft),g}function LYt(t){var e,n,i;switch(n=jz(yEt(t,(lGt(),Xde)),21),e=vI(Loe),jz(yEt(t,(zYt(),sbe)),334)==(odt(),bTe)&&Xrt(e,Ooe),zw(RB(yEt(t,rbe)))?fU(e,(vEt(),Boe),(dGt(),zce)):fU(e,(vEt(),Foe),(dGt(),zce)),null!=yEt(t,(C7(),REe))&&Xrt(e,Moe),(zw(RB(yEt(t,gbe)))||zw(RB(yEt(t,obe))))&&WV(e,(vEt(),$oe),(dGt(),ece)),jz(yEt(t,Vpe),103).g){case 2:case 3:case 4:WV(fU(e,(vEt(),Boe),(dGt(),ice)),$oe,nce)}switch(n.Hc((hBt(),lde))&&WV(fU(fU(e,(vEt(),Boe),(dGt(),tce)),joe,Jse),$oe,Qse),HA(yEt(t,kbe))!==HA((cMt(),Tye))&&fU(e,(vEt(),Foe),(dGt(),Oce)),n.Hc(bde)&&(fU(e,(vEt(),Boe),(dGt(),jce)),fU(e,Poe,Pce),fU(e,Foe,Fce)),HA(yEt(t,Epe))!==HA((XEt(),ade))&&HA(yEt(t,Xpe))!==HA((kft(),KSe))&&WV(e,(vEt(),$oe),(dGt(),bce)),zw(RB(yEt(t,lbe)))&&fU(e,(vEt(),Foe),(dGt(),pce)),zw(RB(yEt(t,$pe)))&&fU(e,(vEt(),Foe),(dGt(),Yce)),POt(t)&&(i=(HA(yEt(t,sbe))===HA(bTe)?jz(yEt(t,Npe),292):jz(yEt(t,Bpe),292))==(Pot(),xde)?(dGt(),Bce):(dGt(),Kce),fU(e,(vEt(),joe),i)),jz(yEt(t,Ume),377).g){case 1:fU(e,(vEt(),joe),(dGt(),Gce));break;case 2:WV(fU(fU(e,(vEt(),Foe),(dGt(),Gse)),joe,Zse),$oe,Kse)}return HA(yEt(t,Ipe))!==HA((yct(),Oye))&&fU(e,(vEt(),Foe),(dGt(),Zce)),e}function OYt(t){LE(t,new kkt(bR(hR(pR(gR(new bs,I3t),"ELK Rectangle Packing"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."),new ts))),r2(t,I3t,GJt,1.3),r2(t,I3t,D3t,ymt(g_e)),r2(t,I3t,ZJt,S_e),r2(t,I3t,mQt,15),r2(t,I3t,o4t,ymt(d_e)),r2(t,I3t,CQt,ymt(w_e)),r2(t,I3t,$Qt,ymt(x_e)),r2(t,I3t,EQt,ymt(R_e)),r2(t,I3t,SQt,ymt(v_e)),r2(t,I3t,kQt,ymt(__e)),r2(t,I3t,TQt,ymt(T_e)),r2(t,I3t,R3t,ymt(E_e)),r2(t,I3t,_3t,ymt(y_e)),r2(t,I3t,C3t,ymt(k_e)),r2(t,I3t,S3t,ymt(A_e)),r2(t,I3t,T3t,ymt(p_e)),r2(t,I3t,xQt,ymt(b_e)),r2(t,I3t,y4t,ymt(m_e)),r2(t,I3t,E3t,ymt(f_e)),r2(t,I3t,k3t,ymt(h_e)),r2(t,I3t,A3t,ymt(I_e))}function MYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p;if(null==n)return null;if(t.a!=e.Aj())throw $m(new Pw(g7t+e.ne()+p7t));if(iO(e,457)){if(!(p=EBt(jz(e,671),n)))throw $m(new Pw(b7t+n+"' is not a valid enumerator of '"+e.ne()+"'"));return p}switch(Sdt((TSt(),KLe),e).cl()){case 2:n=jzt(n,!1);break;case 3:n=jzt(n,!0)}if(i=Sdt(KLe,e).$k())return i.Aj().Nh().Kh(i,n);if(d=Sdt(KLe,e).al()){for(p=new Lm,l=0,u=(c=vlt(n)).length;l<u;++l)s=c[l],Wz(p,d.Aj().Nh().Kh(d,s));return p}if(!(g=Sdt(KLe,e).bl()).dc()){for(f=g.Kc();f.Ob();){h=jz(f.Pb(),148);try{if(null!=(p=h.Aj().Nh().Kh(h,n)))return p}catch(b){if(!iO(b=dst(b),60))throw $m(b)}}throw $m(new Pw(b7t+n+"' does not match any member types of the union datatype '"+e.ne()+"'"))}if(jz(e,834).Fj(),!(a=Mdt(e.Bj())))return null;if(a==Eee){r=0;try{r=djt(n,FZt,NGt)&ZZt}catch(b){if(!iO(b=dst(b),127))throw $m(b);r=Y9(n)[0]}return ust(r)}if(a==bee){for(o=0;o<SDe.length;++o)try{return jE(SDe[o],n)}catch(b){if(!iO(b=dst(b),32))throw $m(b)}throw $m(new Pw(b7t+n+"' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof"))}throw $m(new Pw(b7t+n+"' is invalid. "))}function NYt(t,e){var n,i,a,r,o,s,c,l;if(n=0,o=0,r=e.length,s=null,l=new Sx,o<r&&(d1(o,e.length),43==e.charCodeAt(o))&&(++n,++o<r&&(d1(o,e.length),43==e.charCodeAt(o)||(d1(o,e.length),45==e.charCodeAt(o)))))throw $m(new _x(NKt+e+'"'));for(;o<r&&(d1(o,e.length),46!=e.charCodeAt(o))&&(d1(o,e.length),101!=e.charCodeAt(o))&&(d1(o,e.length),69!=e.charCodeAt(o));)++o;if(l.a+=""+lN(null==e?VGt:(vG(e),e),n,o),o<r&&(d1(o,e.length),46==e.charCodeAt(o))){for(n=++o;o<r&&(d1(o,e.length),101!=e.charCodeAt(o))&&(d1(o,e.length),69!=e.charCodeAt(o));)++o;t.e=o-n,l.a+=""+lN(null==e?VGt:(vG(e),e),n,o)}else t.e=0;if(o<r&&(d1(o,e.length),101==e.charCodeAt(o)||(d1(o,e.length),69==e.charCodeAt(o)))&&(n=++o,o<r&&(d1(o,e.length),43==e.charCodeAt(o))&&++o<r&&(d1(o,e.length),45!=e.charCodeAt(o))&&++n,s=e.substr(n,r-n),t.e=t.e-djt(s,FZt,NGt),t.e!=CJ(t.e)))throw $m(new _x("Scale out of range."));if((c=l.a).length<16){if(t.f=(null==Zee&&(Zee=new RegExp("^[+-]?\\d*$","i")),Zee.test(c)?parseInt(c,10):NaN),isNaN(t.f))throw $m(new _x(NKt+e+'"'));t.a=rAt(t.f)}else upt(t,new DI(c));for(t.d=l.a.length,a=0;a<l.a.length&&(45==(i=lZ(l.a,a))||48==i);++a)--t.d;0==t.d&&(t.d=1)}function BYt(){BYt=D,XAt(lse=new pJ,(wWt(),fAe),mAe),XAt(lse,kAe,mAe),XAt(lse,kAe,wAe),XAt(lse,lAe,bAe),XAt(lse,lAe,mAe),XAt(lse,gAe,mAe),XAt(lse,gAe,yAe),XAt(lse,RAe,dAe),XAt(lse,RAe,mAe),XAt(lse,vAe,hAe),XAt(lse,vAe,mAe),XAt(lse,vAe,yAe),XAt(lse,vAe,dAe),XAt(lse,hAe,vAe),XAt(lse,hAe,wAe),XAt(lse,hAe,bAe),XAt(lse,hAe,mAe),XAt(lse,xAe,xAe),XAt(lse,xAe,yAe),XAt(lse,xAe,wAe),XAt(lse,pAe,pAe),XAt(lse,pAe,yAe),XAt(lse,pAe,bAe),XAt(lse,_Ae,_Ae),XAt(lse,_Ae,dAe),XAt(lse,_Ae,wAe),XAt(lse,uAe,uAe),XAt(lse,uAe,dAe),XAt(lse,uAe,bAe),XAt(lse,yAe,gAe),XAt(lse,yAe,vAe),XAt(lse,yAe,xAe),XAt(lse,yAe,pAe),XAt(lse,yAe,mAe),XAt(lse,yAe,yAe),XAt(lse,yAe,wAe),XAt(lse,yAe,bAe),XAt(lse,dAe,RAe),XAt(lse,dAe,vAe),XAt(lse,dAe,_Ae),XAt(lse,dAe,uAe),XAt(lse,dAe,dAe),XAt(lse,dAe,wAe),XAt(lse,dAe,bAe),XAt(lse,dAe,mAe),XAt(lse,wAe,kAe),XAt(lse,wAe,hAe),XAt(lse,wAe,xAe),XAt(lse,wAe,_Ae),XAt(lse,wAe,yAe),XAt(lse,wAe,dAe),XAt(lse,wAe,wAe),XAt(lse,wAe,mAe),XAt(lse,bAe,lAe),XAt(lse,bAe,hAe),XAt(lse,bAe,pAe),XAt(lse,bAe,uAe),XAt(lse,bAe,yAe),XAt(lse,bAe,dAe),XAt(lse,bAe,bAe),XAt(lse,bAe,mAe),XAt(lse,mAe,fAe),XAt(lse,mAe,kAe),XAt(lse,mAe,lAe),XAt(lse,mAe,gAe),XAt(lse,mAe,RAe),XAt(lse,mAe,vAe),XAt(lse,mAe,hAe),XAt(lse,mAe,yAe),XAt(lse,mAe,dAe),XAt(lse,mAe,wAe),XAt(lse,mAe,bAe),XAt(lse,mAe,mAe)}function PYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k;for(t.d=new OT(BKt,BKt),t.c=new OT(PKt,PKt),h=e.Kc();h.Ob();)for(v=new Wf(jz(h.Pb(),37).a);v.a<v.c.c.length;)y=jz(J1(v),10),t.d.a=i.Math.min(t.d.a,y.n.a-y.d.b),t.d.b=i.Math.min(t.d.b,y.n.b-y.d.d),t.c.a=i.Math.max(t.c.a,y.n.a+y.o.a+y.d.c),t.c.b=i.Math.max(t.c.b,y.n.b+y.o.b+y.d.a);for(c=new Zy,d=e.Kc();d.Ob();)a=oYt(t,jz(d.Pb(),37)),Wz(c.a,a),a.a=a.a|!jz(yEt(a.c,(lGt(),qde)),21).dc();for(t.b=(Eut(),(k=new we).f=new mit(n),k.b=sVt(k.f,c),k),xVt((g=t.b,new qv,g)),t.e=new HR,t.a=t.b.f.e,s=new Wf(c.a);s.a<s.c.c.length;)for(r=jz(J1(s),841),w=AJ(t.b,r),QPt(r.c,w.a,w.b),b=new Wf(r.c.a);b.a<b.c.c.length;)(p=jz(J1(b),10)).k==(oCt(),kse)&&(m=dOt(t,p.n,jz(yEt(p,(lGt(),Gde)),61)),VP(vD(p.n),m));for(o=new Wf(c.a);o.a<o.c.c.length;)for(u=new Wf(fht(r=jz(J1(o),841)));u.a<u.c.c.length;)for(BN(_=new BR((l=jz(J1(u),17)).a),0,g1(l.c)),MH(_,g1(l.d)),f=null,R=cmt(_,0);R.b!=R.d.c;)x=jz(d4(R),8),f?(ont(f.a,x.a)?(t.e.a=i.Math.min(t.e.a,f.a),t.a.a=i.Math.max(t.a.a,f.a)):ont(f.b,x.b)&&(t.e.b=i.Math.min(t.e.b,f.b),t.a.b=i.Math.max(t.a.b,f.b)),f=x):f=x;zN(t.e),VP(t.a,t.e)}function FYt(t){GLt(t.b,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"ConsistentTransient"])),GLt(t.a,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"WellFormedSourceURI"])),GLt(t.o,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"])),GLt(t.p,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"WellFormedInstanceTypeName UniqueTypeParameterNames"])),GLt(t.v,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"UniqueEnumeratorNames UniqueEnumeratorLiterals"])),GLt(t.R,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"WellFormedName"])),GLt(t.T,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"])),GLt(t.U,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"])),GLt(t.W,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"])),GLt(t.bb,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"ValidDefaultValueLiteral"])),GLt(t.eb,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"ValidLowerBound ValidUpperBound ConsistentBounds ValidType"])),GLt(t.H,G8t,Cst(Hx(zee,1),cZt,2,6,[K8t,"ConsistentType ConsistentBounds ConsistentArguments"]))}function jYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;if(!e.dc()){if(a=new vv,d=(o=n||jz(e.Xb(0),17)).c,pNt(),(l=d.i.k)!=(oCt(),Sse)&&l!=Tse&&l!=kse&&l!=_se)throw $m(new Pw("The target node of the edge must be a normal node or a northSouthPort."));for(lD(a,Dct(Cst(Hx(EEe,1),cZt,8,0,[d.i.n,d.n,d.a]))),(wWt(),vAe).Hc(d.j)&&(f=Hw(_B(yEt(d,(lGt(),Ihe)))),n6(a,new OT(Dct(Cst(Hx(EEe,1),cZt,8,0,[d.i.n,d.n,d.a])).a,f),a.c.b,a.c)),c=null,i=!1,s=e.Kc();s.Ob();)0!=(r=jz(s.Pb(),17).a).b&&(i?(n6(a,vO(VP(c,(EN(0!=r.b),jz(r.a.a.c,8))),.5),a.c.b,a.c),i=!1):i=!0,c=jL((EN(0!=r.b),jz(r.c.b.c,8))),jat(a,r),yK(r));h=o.d,vAe.Hc(h.j)&&(f=Hw(_B(yEt(h,(lGt(),Ihe)))),n6(a,new OT(Dct(Cst(Hx(EEe,1),cZt,8,0,[h.i.n,h.n,h.a])).a,f),a.c.b,a.c)),lD(a,Dct(Cst(Hx(EEe,1),cZt,8,0,[h.i.n,h.n,h.a]))),t.d==(qlt(),eve)&&(EN(0!=a.b),g=jz(a.a.a.c,8),p=jz(Nmt(a,1),8),(b=new qQ(llt(d.j))).a*=5,b.b*=5,m=qP(new OT(p.a,p.b),g),VP(y=new OT(eQ(b.a,m.a),eQ(b.b,m.b)),g),JW(cmt(a,1),y),EN(0!=a.b),v=jz(a.c.b.c,8),w=jz(Nmt(a,a.b-2),8),(b=new qQ(llt(h.j))).a*=5,b.b*=5,m=qP(new OT(w.a,w.b),v),VP(x=new OT(eQ(b.a,m.a),eQ(b.b,m.b)),v),BN(a,a.b-1,x)),u=new szt(a),jat(o.a,jyt(u))}}function $Yt(t,e,n,a){var r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I,L,O,M,N;if(w=(y=jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)).Dg(),x=y.Eg(),v=y.Cg()/2,g=y.Bg()/2,iO(y,186)&&(w+=WJ(m=jz(y,118)).i,w+=WJ(m).i),w+=v,x+=g,T=(C=jz(Yet((!t.b&&(t.b=new cF(NDe,t,4,7)),t.b),0),82)).Dg(),A=C.Eg(),S=C.Cg()/2,R=C.Bg()/2,iO(C,186)&&(T+=WJ(E=jz(C,118)).i,T+=WJ(E).i),T+=S,A+=R,0==(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i)QR(),c=new oc,l8((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),c);else if((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i>1)for(f=new iN((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a));f.e!=f.i.gc();)ZRt(f);for(p=T,T>w+v?p=w+v:T<w-v&&(p=w-v),b=A,A>x+g?b=x+g:A<x-g&&(b=x-g),p>w-v&&p<w+v&&b>x-g&&b<x+g&&(p=w+v),Tnt(s=jz(Yet((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),0),202),p),Dnt(s,b),_=w,w>T+S?_=T+S:w<T-S&&(_=T-S),k=x,x>A+R?k=A+R:x<A-R&&(k=A-R),_>T-S&&_<T+S&&k>A-R&&k<A+R&&(k=A+R),_nt(s,_),Ant(s,k),cUt((!s.a&&(s.a=new DO(LDe,s,5)),s.a)),o=byt(e,5),y==C&&++o,I=_-p,M=k-b,u=.20000000298023224*i.Math.sqrt(I*I+M*M),L=I/(o+1),N=M/(o+1),D=p,O=b,l=0;l<o;l++)O+=N,(d=(D+=L)+zLt(e,24)*oXt*u-u/2)<0?d=1:d>n&&(d=n-1),(h=O+zLt(e,24)*oXt*u-u/2)<0?h=1:h>a&&(h=a-1),QR(),xnt(r=new rc,d),Rnt(r,h),l8((!s.a&&(s.a=new DO(LDe,s,5)),s.a),r)}function zYt(){zYt=D,cGt(),pme=wSe,bme=xSe,mme=RSe,yme=_Se,wme=kSe,xme=ESe,kme=SSe,Cme=ASe,Sme=DSe,Eme=TSe,Tme=ISe,Dme=LSe,Lme=NSe,_me=CSe,uGt(),gme=Pge,vme=Fge,Rme=jge,Ame=$ge,cme=new qI(pSe,nht(0)),lme=Mge,ume=Nge,dme=Bge,Ume=upe,Nme=Uge,Bme=Wge,jme=tpe,Pme=Zge,Fme=Xge,qme=ppe,Vme=hpe,zme=ope,$me=ape,Hme=cpe,Nbe=Ege,Bbe=Cge,nbe=Bfe,ibe=jfe,Vbe=new WI(12),Ube=new qI(qCe,Vbe),kft(),Xpe=new qI(bCe,Jpe=ZSe),Qbe=new qI(aSe,0),hme=new qI(bSe,nht(1)),xpe=new qI(iCe,gQt),Hbe=UCe,tme=rSe,rme=hSe,Upe=uCe,vpe=eCe,sbe=xCe,fme=new qI(vSe,(cM(),!0)),hbe=kCe,fbe=ECe,Fbe=BCe,zbe=zCe,jbe=FCe,jdt(),Vpe=new qI(dCe,Wpe=$Se),Dbe=MCe,Abe=LCe,ime=lSe,nme=cSe,ame=dSe,amt(),new qI(XCe,Ybe=HTe),Zbe=tSe,Kbe=eSe,Xbe=nSe,Gbe=QCe,Mme=Hge,Ebe=uge,kbe=cge,Ome=zge,vbe=tge,Hpe=Rfe,zpe=wfe,Ope=rfe,Mpe=ofe,Bpe=dfe,Npe=sfe,$pe=yfe,Sbe=hge,Tbe=fge,pbe=Yfe,Pbe=Dge,Lbe=mge,rbe=Hfe,Mbe=_ge,tbe=Lfe,ebe=Mfe,Lpe=cCe,Ibe=gge,Epe=Ghe,kpe=Whe,_pe=qhe,lbe=qfe,cbe=Vfe,ube=Wfe,$be=jCe,bbe=TCe,abe=yCe,Zpe=gCe,Gpe=fCe,Ppe=gfe,eme=sSe,Rpe=sCe,dbe=_Ce,Jbe=iSe,qbe=YCe,Wbe=ZCe,xbe=ige,Rbe=rge,sme=gSe,wpe=Vhe,_be=sge,Kpe=Tfe,Ype=Cfe,Cbe=DCe,mbe=Xfe,Obe=wge,Ime=OSe,qpe=kfe,ome=Lge,Qpe=Dfe,ybe=Qfe,Fpe=bfe,gbe=SCe,wbe=nge,jpe=mfe,Ipe=ife,Ape=tfe,Spe=Jhe,Tpe=Qhe,Dpe=nfe,Cpe=Khe,obe=Ufe}function HYt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T;if(oHt(),k=t.e,g=t.d,a=t.a,0==k)switch(e){case 0:return"0";case 1:return YKt;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return(R=new Cx).a+=e<0?"0E+":"0E",R.a+=-e,R.a}if(w=O5(SMe,YZt,25,1+(v=10*g+1+7),15,1),n=v,1==g)if((s=a[0])<0){T=t0(s,qKt);do{p=T,T=ARt(T,10),w[--n]=48+fV(nft(p,aft(T,10)))&ZZt}while(0!=Gut(T,0))}else{T=s;do{p=T,T=T/10|0,w[--n]=p-10*T+48&ZZt}while(0!=T)}else{rHt(a,0,C=O5(TMe,lKt,25,g,15,1),0,S=g);t:for(;;){for(_=0,l=S-1;l>=0;l--)m=ukt(ift(yq(_,32),t0(C[l],qKt))),C[l]=fV(m),_=fV(vq(m,32));y=fV(_),b=n;do{w[--n]=48+y%10&ZZt}while(0!=(y=y/10|0)&&0!=n);for(i=9-b+n,c=0;c<i&&n>0;c++)w[--n]=48;for(d=S-1;0==C[d];d--)if(0==d)break t;S=d+1}for(;48==w[n];)++n}if(f=k<0,o=v-n-e-1,0==e)return f&&(w[--n]=45),$pt(w,n,v-n);if(e>0&&o>=-6){if(o>=0){for(u=n+o,h=v-1;h>=u;h--)w[h+1]=w[h];return w[++u]=46,f&&(w[--n]=45),$pt(w,n,v-n+1)}for(d=2;d<1-o;d++)w[--n]=48;return w[--n]=46,w[--n]=48,f&&(w[--n]=45),$pt(w,n,v-n)}return E=n+1,r=v,x=new Sx,f&&(x.a+="-"),r-E>=1?(OY(x,w[n]),x.a+=".",x.a+=$pt(w,n+1,v-n-1)):x.a+=$pt(w,n,v-n),x.a+="E",o>0&&(x.a+="+"),x.a+=""+o,x.a}function UYt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;switch(t.c=e,t.g=new Om,HE(),tgt(new Eg(new Mw(t.c))),y=kB(JIt(t.c,(kEt(),fke))),s=jz(JIt(t.c,pke),316),w=jz(JIt(t.c,bke),429),r=jz(JIt(t.c,cke),482),v=jz(JIt(t.c,gke),430),t.j=Hw(_B(JIt(t.c,mke))),o=t.a,s.g){case 0:o=t.a;break;case 1:o=t.b;break;case 2:o=t.i;break;case 3:o=t.e;break;case 4:o=t.f;break;default:throw $m(new Pw(O3t+(null!=s.f?s.f:""+s.g)))}if(t.d=new MJ(o,w,r),lct(t.d,(Wrt(),Gae),RB(JIt(t.c,uke))),t.d.c=zw(RB(JIt(t.c,lke))),0==ZK(t.c).i)return t.d;for(u=new AO(ZK(t.c));u.e!=u.i.gc();){for(h=(l=jz(wmt(u),33)).g/2,d=l.f/2,x=new OT(l.i+h,l.j+d);cW(t.g,x);)PN(x,(i.Math.random()-.5)*dQt,(i.Math.random()-.5)*dQt);g=jz(JIt(l,(cGt(),DCe)),142),p=new AQ(x,new VZ(x.a-h-t.j/2-g.b,x.b-d-t.j/2-g.d,l.g+t.j+(g.b+g.c),l.f+t.j+(g.d+g.a))),Wz(t.d.i,p),YG(t.g,x,new nA(p,l))}switch(v.g){case 0:if(null==y)t.d.d=jz(OU(t.d.i,0),65);else for(m=new Wf(t.d.i);m.a<m.c.c.length;)p=jz(J1(m),65),null!=(f=jz(jz(NY(t.g,p.a),46).b,33).zg())&&mF(f,y)&&(t.d.d=p);break;case 1:for((n=new OT(t.c.g,t.c.f)).a*=.5,n.b*=.5,PN(n,t.c.i,t.c.j),a=BKt,b=new Wf(t.d.i);b.a<b.c.c.length;)(c=W5((p=jz(J1(b),65)).a,n))<a&&(a=c,t.d.d=p);break;default:throw $m(new Pw(O3t+(null!=v.f?v.f:""+v.g)))}return t.d}function VYt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_;for(R=jz(Yet((!t.a&&(t.a=new tW(PDe,t,6,6)),t.a),0),202),d=new vv,x=new Om,_=t$t(R),xTt(x.f,R,_),f=new Om,a=new Zk,p=LW(Ynt(Cst(Hx(Mte,1),zGt,20,0,[(!e.d&&(e.d=new cF(BDe,e,8,5)),e.d),(!e.e&&(e.e=new cF(BDe,e,7,4)),e.e)])));gIt(p);){if(g=jz(V6(p),79),1!=(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i)throw $m(new Pw($6t+(!t.a&&(t.a=new tW(PDe,t,6,6)),t.a).i));g!=t&&(n6(a,m=jz(Yet((!g.a&&(g.a=new tW(PDe,g,6,6)),g.a),0),202),a.c.b,a.c),(b=jz(zA(AX(x.f,m)),12))||(b=t$t(m),xTt(x.f,m,b)),h=n?qP(new hI(jz(OU(_,_.c.length-1),8)),jz(OU(b,b.c.length-1),8)):qP(new hI((u1(0,_.c.length),jz(_.c[0],8))),(u1(0,b.c.length),jz(b.c[0],8))),xTt(f.f,m,h))}if(0!=a.b)for(y=jz(OU(_,n?_.c.length-1:0),8),u=1;u<_.c.length;u++){for(v=jz(OU(_,n?_.c.length-1-u:u),8),r=cmt(a,0);r.b!=r.d.c;)m=jz(d4(r),202),(b=jz(zA(AX(x.f,m)),12)).c.length<=u?yet(r):(w=VP(new hI(jz(OU(b,n?b.c.length-1-u:u),8)),jz(zA(AX(f.f,m)),8)),(v.a!=w.a||v.b!=w.b)&&(o=v.a-y.a,c=v.b-y.b,(s=w.a-y.a)*c==(l=w.b-y.b)*o&&(0==o||isNaN(o)?o:o<0?-1:1)==(0==s||isNaN(s)?s:s<0?-1:1)&&(0==c||isNaN(c)?c:c<0?-1:1)==(0==l||isNaN(l)?l:l<0?-1:1)?(i.Math.abs(o)<i.Math.abs(s)||i.Math.abs(c)<i.Math.abs(l))&&n6(d,v,d.c.b,d.c):u>1&&n6(d,y,d.c.b,d.c),yet(r)));y=v}return d}function qYt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I;for(Akt(n,"Greedy cycle removal",1),I=(v=e.a).c.length,t.a=O5(TMe,lKt,25,I,15,1),t.c=O5(TMe,lKt,25,I,15,1),t.b=O5(TMe,lKt,25,I,15,1),l=0,m=new Wf(v);m.a<m.c.c.length;){for((p=jz(J1(m),10)).p=l,k=new Wf(p.j);k.a<k.c.c.length;){for(s=new Wf((x=jz(J1(k),11)).e);s.a<s.c.c.length;)(i=jz(J1(s),17)).c.i!=p&&(C=jz(yEt(i,(zYt(),lme)),19).a,t.a[l]+=C>0?C+1:1);for(o=new Wf(x.g);o.a<o.c.c.length;)(i=jz(J1(o),17)).d.i!=p&&(C=jz(yEt(i,(zYt(),lme)),19).a,t.c[l]+=C>0?C+1:1)}0==t.c[l]?MH(t.e,p):0==t.a[l]&&MH(t.f,p),++l}for(g=-1,f=1,d=new Lm,t.d=jz(yEt(e,(lGt(),khe)),230);I>0;){for(;0!=t.e.b;)T=jz(fH(t.e),10),t.b[T.p]=g--,ZFt(t,T),--I;for(;0!=t.f.b;)A=jz(fH(t.f),10),t.b[A.p]=f++,ZFt(t,A),--I;if(I>0){for(h=FZt,y=new Wf(v);y.a<y.c.c.length;)p=jz(J1(y),10),0==t.b[p.p]&&(w=t.c[p.p]-t.a[p.p])>=h&&(w>h&&(d.c=O5(Dte,zGt,1,0,5,1),h=w),d.c[d.c.length]=p);u=t.Zf(d),t.b[u.p]=f++,ZFt(t,u),--I}}for(S=v.c.length+1,l=0;l<v.c.length;l++)t.b[l]<0&&(t.b[l]+=S);for(b=new Wf(v);b.a<b.c.c.length;)for(_=0,E=(R=S2((p=jz(J1(b),10)).j)).length;_<E;++_)for(r=0,c=(a=X0((x=R[_]).g)).length;r<c;++r)D=(i=a[r]).d.i.p,t.b[p.p]>t.b[D]&&(tzt(i,!0),lct(e,zde,(cM(),!0)));t.a=null,t.c=null,t.b=null,yK(t.f),yK(t.e),zCt(n)}function WYt(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m;for(i=new Lm,s=new Lm,b=e/2,f=t.gc(),a=jz(t.Xb(0),8),m=jz(t.Xb(1),8),Wz(i,(u1(0,(g=ZIt(a.a,a.b,m.a,m.b,b)).c.length),jz(g.c[0],8))),Wz(s,(u1(1,g.c.length),jz(g.c[1],8))),l=2;l<f;l++)p=a,a=m,m=jz(t.Xb(l),8),Wz(i,(u1(1,(g=ZIt(a.a,a.b,p.a,p.b,b)).c.length),jz(g.c[1],8))),Wz(s,(u1(0,g.c.length),jz(g.c[0],8))),Wz(i,(u1(0,(g=ZIt(a.a,a.b,m.a,m.b,b)).c.length),jz(g.c[0],8))),Wz(s,(u1(1,g.c.length),jz(g.c[1],8)));for(Wz(i,(u1(1,(g=ZIt(m.a,m.b,a.a,a.b,b)).c.length),jz(g.c[1],8))),Wz(s,(u1(0,g.c.length),jz(g.c[0],8))),n=new vv,o=new Lm,MH(n,(u1(0,i.c.length),jz(i.c[0],8))),u=1;u<i.c.length-2;u+=2)u1(u,i.c.length),r=jz(i.c[u],8),h=HSt((u1(u-1,i.c.length),jz(i.c[u-1],8)),r,(u1(u+1,i.c.length),jz(i.c[u+1],8)),(u1(u+2,i.c.length),jz(i.c[u+2],8))),isFinite(h.a)&&isFinite(h.b)?n6(n,h,n.c.b,n.c):n6(n,r,n.c.b,n.c);for(MH(n,jz(OU(i,i.c.length-1),8)),Wz(o,(u1(0,s.c.length),jz(s.c[0],8))),d=1;d<s.c.length-2;d+=2)u1(d,s.c.length),r=jz(s.c[d],8),h=HSt((u1(d-1,s.c.length),jz(s.c[d-1],8)),r,(u1(d+1,s.c.length),jz(s.c[d+1],8)),(u1(d+2,s.c.length),jz(s.c[d+2],8))),isFinite(h.a)&&isFinite(h.b)?o.c[o.c.length]=h:o.c[o.c.length]=r;for(Wz(o,jz(OU(s,s.c.length-1),8)),c=o.c.length-1;c>=0;c--)MH(n,(u1(c,o.c.length),jz(o.c[c],8)));return n}function YYt(t){var e,n,i,a,r,o,s,c,l,u,d,h,f;if(o=!0,d=null,i=null,a=null,e=!1,f=yIe,l=null,r=null,(c=Gbt(t,s=0,TIe,AIe))<t.length&&(d1(c,t.length),58==t.charCodeAt(c))&&(d=t.substr(s,c-s),s=c+1),n=null!=d&&Ok(vIe,d.toLowerCase())){if(-1==(c=t.lastIndexOf("!/")))throw $m(new Pw("no archive separator"));o=!0,i=lN(t,s,++c),s=c}else s>=0&&mF(t.substr(s,2),"//")?(c=Gbt(t,s+=2,DIe,IIe),i=t.substr(s,c-s),s=c):null!=d&&(s==t.length||(d1(s,t.length),47!=t.charCodeAt(s)))&&(o=!1,-1==(c=yM(t,Kkt(35),s))&&(c=t.length),i=t.substr(s,c-s),s=c);if(!n&&s<t.length&&(d1(s,t.length),47==t.charCodeAt(s))&&(c=Gbt(t,s+1,DIe,IIe),(u=t.substr(s+1,c-(s+1))).length>0&&58==lZ(u,u.length-1)&&(a=u,s=c)),s<t.length&&(d1(s,t.length),47==t.charCodeAt(s))&&(++s,e=!0),s<t.length&&(d1(s,t.length),63!=t.charCodeAt(s))&&(d1(s,t.length),35!=t.charCodeAt(s))){for(h=new Lm;s<t.length&&(d1(s,t.length),63!=t.charCodeAt(s))&&(d1(s,t.length),35!=t.charCodeAt(s));)c=Gbt(t,s,DIe,IIe),Wz(h,t.substr(s,c-s)),(s=c)<t.length&&(d1(s,t.length),47==t.charCodeAt(s))&&(Zut(t,++s)||(h.c[h.c.length]=""));Zbt(h,f=O5(zee,cZt,2,h.c.length,6,1))}return s<t.length&&(d1(s,t.length),63==t.charCodeAt(s))&&(-1==(c=uN(t,35,++s))&&(c=t.length),l=t.substr(s,c-s),s=c),s<t.length&&(r=JA(t,++s)),fVt(o,d,i,a,f,l),new iPt(o,d,i,a,e,f,l,r)}function GYt(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I,L;for(D=new Lm,g=new Wf(e.b);g.a<g.c.c.length;)for(x=new Wf(jz(J1(g),29).a);x.a<x.c.c.length;){for((w=jz(J1(x),10)).p=-1,h=FZt,k=FZt,C=new Wf(w.j);C.a<C.c.c.length;){for(r=new Wf((E=jz(J1(C),11)).e);r.a<r.c.c.length;)n=jz(J1(r),17),S=jz(yEt(n,(zYt(),dme)),19).a,h=i.Math.max(h,S);for(a=new Wf(E.g);a.a<a.c.c.length;)n=jz(J1(a),17),S=jz(yEt(n,(zYt(),dme)),19).a,k=i.Math.max(k,S)}lct(w,qve,nht(h)),lct(w,Wve,nht(k))}for(m=0,f=new Wf(e.b);f.a<f.c.c.length;)for(x=new Wf(jz(J1(f),29).a);x.a<x.c.c.length;)(w=jz(J1(x),10)).p<0&&((A=new nv).b=m++,xPt(t,w,A),D.c[D.c.length]=A);for(_=sN(D.c.length),d=sN(D.c.length),s=0;s<D.c.length;s++)Wz(_,new Lm),Wz(d,nht(0));for(mqt(e,D,_,d),I=jz(Zbt(D,O5(Zve,A4t,257,D.c.length,0,1)),840),R=jz(Zbt(_,O5(Bte,QJt,15,_.c.length,0,1)),192),u=O5(TMe,lKt,25,d.c.length,15,1),c=0;c<u.length;c++)u[c]=(u1(c,d.c.length),jz(d.c[c],19)).a;for(y=0,v=new Lm,l=0;l<I.length;l++)0==u[l]&&Wz(v,I[l]);for(b=O5(TMe,lKt,25,I.length,15,1);0!=v.c.length;)for(b[(A=jz(s7(v,0),257)).b]=y++;!R[A.b].dc();)--u[(L=jz(R[A.b].$c(0),257)).b],0==u[L.b]&&(v.c[v.c.length]=L);for(t.a=O5(Zve,A4t,257,I.length,0,1),o=0;o<I.length;o++)for(p=I[o],T=b[o],t.a[T]=p,p.b=T,x=new Wf(p.e);x.a<x.c.c.length;)(w=jz(J1(x),10)).p=T;return t.a}function ZYt(t){var e,n,i;if(t.d>=t.j)return t.a=-1,void(t.c=1);if(e=lZ(t.i,t.d++),t.a=e,1!=t.b){switch(e){case 124:i=2;break;case 42:i=3;break;case 43:i=4;break;case 63:i=5;break;case 41:i=7;break;case 46:i=8;break;case 91:i=9;break;case 94:i=11;break;case 36:i=12;break;case 40:if(i=6,t.d>=t.j||63!=lZ(t.i,t.d))break;if(++t.d>=t.j)throw $m(new ax(wGt((rL(),b5t))));switch(e=lZ(t.i,t.d++)){case 58:i=13;break;case 61:i=14;break;case 33:i=15;break;case 91:i=19;break;case 62:i=18;break;case 60:if(t.d>=t.j)throw $m(new ax(wGt((rL(),b5t))));if(61==(e=lZ(t.i,t.d++)))i=16;else{if(33!=e)throw $m(new ax(wGt((rL(),m5t))));i=17}break;case 35:for(;t.d<t.j&&41!=(e=lZ(t.i,t.d++)););if(41!=e)throw $m(new ax(wGt((rL(),y5t))));i=21;break;default:if(45==e||97<=e&&e<=122||65<=e&&e<=90){--t.d,i=22;break}if(40==e){i=23;break}throw $m(new ax(wGt((rL(),b5t))))}break;case 92:if(i=10,t.d>=t.j)throw $m(new ax(wGt((rL(),p5t))));t.a=lZ(t.i,t.d++);break;default:i=0}t.c=i}else{switch(e){case 92:if(i=10,t.d>=t.j)throw $m(new ax(wGt((rL(),p5t))));t.a=lZ(t.i,t.d++);break;case 45:512==(512&t.e)&&t.d<t.j&&91==lZ(t.i,t.d)?(++t.d,i=24):i=0;break;case 91:if(512!=(512&t.e)&&t.d<t.j&&58==lZ(t.i,t.d)){++t.d,i=20;break}default:(64512&e)==zKt&&t.d<t.j&&56320==(64512&(n=lZ(t.i,t.d)))&&(t.a=$Kt+(e-zKt<<10)+n-56320,++t.d),i=0}t.c=i}}function KYt(t){var e,n,i,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S;if((R=jz(yEt(t,(zYt(),tme)),98))!=(Z_t(),ZTe)&&R!=KTe){for(l=new K7((dit((f=(g=t.b).c.length)+2,OZt),Qtt(ift(ift(5,f+2),(f+2)/10|0)))),p=new K7((dit(f+2,OZt),Qtt(ift(ift(5,f+2),(f+2)/10|0)))),Wz(l,new Om),Wz(l,new Om),Wz(p,new Lm),Wz(p,new Lm),x=new Lm,e=0;e<f;e++)for(u1(e,g.c.length),n=jz(g.c[e],29),u1(e,l.c.length),_=jz(l.c[e],83),b=new Om,l.c[l.c.length]=b,u1(e,p.c.length),E=jz(p.c[e],15),y=new Lm,p.c[p.c.length]=y,a=new Wf(n.a);a.a<a.c.c.length;)if(aht(i=jz(J1(a),10)))x.c[x.c.length]=i;else{for(c=new oq(XO(uft(i).a.Kc(),new u));gIt(c);)aht(C=(o=jz(V6(c),17)).c.i)&&((k=jz(_.xc(yEt(C,(lGt(),fhe))),10))||(k=sAt(t,C),_.zc(yEt(C,fhe),k),E.Fc(k)),kQ(o,jz(OU(k.j,1),11)));for(s=new oq(XO(dft(i).a.Kc(),new u));gIt(s);)aht(S=(o=jz(V6(s),17)).d.i)&&((m=jz(NY(b,yEt(S,(lGt(),fhe))),10))||(m=sAt(t,S),YG(b,yEt(S,fhe),m),y.c[y.c.length]=m),_Q(o,jz(OU(m.j,0),11)))}for(d=0;d<p.c.length;d++)if(u1(d,p.c.length),!(v=jz(p.c[d],15)).dc())for(h=null,0==d?(h=new $Y(t),IQ(0,g.c.length),_C(g.c,0,h)):d==l.c.length-1?(h=new $Y(t),g.c[g.c.length]=h):(u1(d-1,g.c.length),h=jz(g.c[d-1],29)),r=v.Kc();r.Ob();)EQ(jz(r.Pb(),10),h);for(w=new Wf(x);w.a<w.c.c.length;)EQ(jz(J1(w),10),null);lct(t,(lGt(),Wde),x)}}function XYt(t,e,n){var i,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R;if(Akt(n,"Coffman-Graham Layering",1),0!=e.a.c.length){for(R=jz(yEt(e,(zYt(),mbe)),19).a,c=0,o=0,f=new Wf(e.a);f.a<f.c.c.length;)for((h=jz(J1(f),10)).p=c++,r=new oq(XO(dft(h).a.Kc(),new u));gIt(r);)(a=jz(V6(r),17)).p=o++;for(t.d=O5(AMe,JXt,25,c,16,1),t.a=O5(AMe,JXt,25,o,16,1),t.b=O5(TMe,lKt,25,c,15,1),t.e=O5(TMe,lKt,25,c,15,1),t.f=O5(TMe,lKt,25,c,15,1),fit(t.c),i_t(t,e),p=new qq(new Mp(t)),x=new Wf(e.a);x.a<x.c.c.length;){for(r=new oq(XO(uft(v=jz(J1(x),10)).a.Kc(),new u));gIt(r);)a=jz(V6(r),17),t.a[a.p]||++t.b[v.p];0==t.b[v.p]&&F5(eEt(p,v))}for(s=0;0!=p.b.c.length;)for(v=jz(mtt(p),10),t.f[v.p]=s++,r=new oq(XO(dft(v).a.Kc(),new u));gIt(r);)a=jz(V6(r),17),!t.a[a.p]&&(m=a.d.i,--t.b[m.p],XAt(t.c,m,nht(t.f[v.p])),0==t.b[m.p]&&F5(eEt(p,m)));for(g=new qq(new Np(t)),w=new Wf(e.a);w.a<w.c.c.length;){for(r=new oq(XO(dft(v=jz(J1(w),10)).a.Kc(),new u));gIt(r);)a=jz(V6(r),17),t.a[a.p]||++t.e[v.p];0==t.e[v.p]&&F5(eEt(g,v))}for(i=n1(e,d=new Lm);0!=g.b.c.length;)for(y=jz(mtt(g),10),(i.a.c.length>=R||!Opt(y,i))&&(i=n1(e,d)),EQ(y,i),r=new oq(XO(uft(y).a.Kc(),new u));gIt(r);)a=jz(V6(r),17),!t.a[a.p]&&(b=a.c.i,--t.e[b.p],0==t.e[b.p]&&F5(eEt(g,b)));for(l=d.c.length-1;l>=0;--l)Wz(e.b,(u1(l,d.c.length),jz(d.c[l],29)));e.a.c=O5(Dte,zGt,1,0,5,1),zCt(n)}else zCt(n)}function JYt(t){var e,n,i,a,r,o,s,c;for(t.b=1,ZYt(t),e=null,0==t.c&&94==t.a?(ZYt(t),fGt(),fGt(),KNt(e=new _0(4),0,ote),o=new _0(4)):(fGt(),fGt(),o=new _0(4)),a=!0;1!=(c=t.c);){if(0==c&&93==t.a&&!a){e&&(YVt(e,o),o=e);break}if(n=t.a,i=!1,10==c)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:cHt(o,gjt(n)),i=!0;break;case 105:case 73:case 99:case 67:cHt(o,gjt(n)),(n=-1)<0&&(i=!0);break;case 112:case 80:if(!(s=NAt(t,n)))throw $m(new ax(wGt((rL(),A5t))));cHt(o,s),i=!0;break;default:n=HBt(t)}else if(24==c&&!a){if(e&&(YVt(e,o),o=e),YVt(o,JYt(t)),0!=t.c||93!=t.a)throw $m(new ax(wGt((rL(),O5t))));break}if(ZYt(t),!i){if(0==c){if(91==n)throw $m(new ax(wGt((rL(),M5t))));if(93==n)throw $m(new ax(wGt((rL(),N5t))));if(45==n&&!a&&93!=t.a)throw $m(new ax(wGt((rL(),B5t))))}if(0!=t.c||45!=t.a||45==n&&a)KNt(o,n,n);else{if(ZYt(t),1==(c=t.c))throw $m(new ax(wGt((rL(),I5t))));if(0==c&&93==t.a)KNt(o,n,n),KNt(o,45,45);else{if(0==c&&93==t.a||24==c)throw $m(new ax(wGt((rL(),B5t))));if(r=t.a,0==c){if(91==r)throw $m(new ax(wGt((rL(),M5t))));if(93==r)throw $m(new ax(wGt((rL(),N5t))));if(45==r)throw $m(new ax(wGt((rL(),B5t))))}else 10==c&&(r=HBt(t));if(ZYt(t),n>r)throw $m(new ax(wGt((rL(),j5t))));KNt(o,n,r)}}}a=!1}if(1==t.c)throw $m(new ax(wGt((rL(),I5t))));return _Lt(o),HHt(o),t.b=0,ZYt(t),o}function QYt(t){GLt(t.c,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#decimal"])),GLt(t.d,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#integer"])),GLt(t.e,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#boolean"])),GLt(t.f,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EBoolean",t5t,"EBoolean:Object"])),GLt(t.i,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#byte"])),GLt(t.g,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#hexBinary"])),GLt(t.j,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EByte",t5t,"EByte:Object"])),GLt(t.n,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EChar",t5t,"EChar:Object"])),GLt(t.t,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#double"])),GLt(t.u,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EDouble",t5t,"EDouble:Object"])),GLt(t.F,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#float"])),GLt(t.G,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EFloat",t5t,"EFloat:Object"])),GLt(t.I,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#int"])),GLt(t.J,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EInt",t5t,"EInt:Object"])),GLt(t.N,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#long"])),GLt(t.O,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"ELong",t5t,"ELong:Object"])),GLt(t.Z,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#short"])),GLt(t.$,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"EShort",t5t,"EShort:Object"])),GLt(t._,F8t,Cst(Hx(zee,1),cZt,2,6,[X8t,"http://www.w3.org/2001/XMLSchema#string"]))}function tGt(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T;if(1==t.c.length)return u1(0,t.c.length),jz(t.c[0],135);if(t.c.length<=0)return new E7;for(l=new Wf(t);l.a<l.c.c.length;){for(s=jz(J1(l),135),v=0,p=NGt,b=NGt,f=FZt,g=FZt,y=cmt(s.b,0);y.b!=y.d.c;)m=jz(d4(y),86),v+=jz(yEt(m,(SIt(),Dxe)),19).a,p=i.Math.min(p,m.e.a),b=i.Math.min(b,m.e.b),f=i.Math.max(f,m.e.a+m.f.a),g=i.Math.max(g,m.e.b+m.f.b);lct(s,(SIt(),Dxe),nht(v)),lct(s,(HUt(),Jwe),new OT(p,b)),lct(s,Xwe,new OT(f,g))}for(kK(),mL(t,new mo),Hot(x=new E7,(u1(0,t.c.length),jz(t.c[0],94))),h=0,C=0,u=new Wf(t);u.a<u.c.c.length;)s=jz(J1(u),135),R=qP(jL(jz(yEt(s,(HUt(),Xwe)),8)),jz(yEt(s,Jwe),8)),h=i.Math.max(h,R.a),C+=R.a*R.b;for(h=i.Math.max(h,i.Math.sqrt(C)*Hw(_B(yEt(x,(SIt(),wxe))))),S=0,T=0,d=0,e=_=Hw(_B(yEt(x,Oxe))),c=new Wf(t);c.a<c.c.c.length;)s=jz(J1(c),135),S+(R=qP(jL(jz(yEt(s,(HUt(),Xwe)),8)),jz(yEt(s,Jwe),8))).a>h&&(S=0,T+=d+_,d=0),ROt(x,s,S,T),e=i.Math.max(e,S+R.a),d=i.Math.max(d,R.b),S+=R.a+_;for(w=new Om,n=new Om,E=new Wf(t);E.a<E.c.c.length;)for(a=zw(RB(yEt(k=jz(J1(E),135),(cGt(),uCe)))),o=(k.q?k.q:lne).vc().Kc();o.Ob();)cW(w,(r=jz(o.Pb(),42)).cd())?HA(jz(r.cd(),146).wg())!==HA(r.dd())&&(a&&cW(n,r.cd())?(Dk(),jz(r.cd(),146).tg()):(YG(w,jz(r.cd(),146),r.dd()),lct(x,jz(r.cd(),146),r.dd()),a&&YG(n,jz(r.cd(),146),r.dd()))):(YG(w,jz(r.cd(),146),r.dd()),lct(x,jz(r.cd(),146),r.dd()));return x}function eGt(){eGt=D,BYt(),XAt(pse=new pJ,(wWt(),gAe),fAe),XAt(pse,kAe,fAe),XAt(pse,pAe,fAe),XAt(pse,xAe,fAe),XAt(pse,wAe,fAe),XAt(pse,yAe,fAe),XAt(pse,xAe,gAe),XAt(pse,fAe,lAe),XAt(pse,gAe,lAe),XAt(pse,kAe,lAe),XAt(pse,pAe,lAe),XAt(pse,vAe,lAe),XAt(pse,xAe,lAe),XAt(pse,wAe,lAe),XAt(pse,yAe,lAe),XAt(pse,hAe,lAe),XAt(pse,fAe,RAe),XAt(pse,gAe,RAe),XAt(pse,lAe,RAe),XAt(pse,kAe,RAe),XAt(pse,pAe,RAe),XAt(pse,vAe,RAe),XAt(pse,xAe,RAe),XAt(pse,hAe,RAe),XAt(pse,_Ae,RAe),XAt(pse,wAe,RAe),XAt(pse,bAe,RAe),XAt(pse,yAe,RAe),XAt(pse,gAe,kAe),XAt(pse,pAe,kAe),XAt(pse,xAe,kAe),XAt(pse,yAe,kAe),XAt(pse,gAe,pAe),XAt(pse,kAe,pAe),XAt(pse,xAe,pAe),XAt(pse,pAe,pAe),XAt(pse,wAe,pAe),XAt(pse,fAe,uAe),XAt(pse,gAe,uAe),XAt(pse,lAe,uAe),XAt(pse,RAe,uAe),XAt(pse,kAe,uAe),XAt(pse,pAe,uAe),XAt(pse,vAe,uAe),XAt(pse,xAe,uAe),XAt(pse,_Ae,uAe),XAt(pse,hAe,uAe),XAt(pse,yAe,uAe),XAt(pse,wAe,uAe),XAt(pse,mAe,uAe),XAt(pse,fAe,_Ae),XAt(pse,gAe,_Ae),XAt(pse,lAe,_Ae),XAt(pse,kAe,_Ae),XAt(pse,pAe,_Ae),XAt(pse,vAe,_Ae),XAt(pse,xAe,_Ae),XAt(pse,hAe,_Ae),XAt(pse,yAe,_Ae),XAt(pse,bAe,_Ae),XAt(pse,mAe,_Ae),XAt(pse,gAe,hAe),XAt(pse,kAe,hAe),XAt(pse,pAe,hAe),XAt(pse,xAe,hAe),XAt(pse,_Ae,hAe),XAt(pse,yAe,hAe),XAt(pse,wAe,hAe),XAt(pse,fAe,dAe),XAt(pse,gAe,dAe),XAt(pse,lAe,dAe),XAt(pse,kAe,dAe),XAt(pse,pAe,dAe),XAt(pse,vAe,dAe),XAt(pse,xAe,dAe),XAt(pse,hAe,dAe),XAt(pse,yAe,dAe),XAt(pse,gAe,wAe),XAt(pse,lAe,wAe),XAt(pse,RAe,wAe),XAt(pse,pAe,wAe),XAt(pse,fAe,bAe),XAt(pse,gAe,bAe),XAt(pse,RAe,bAe),XAt(pse,kAe,bAe),XAt(pse,pAe,bAe),XAt(pse,vAe,bAe),XAt(pse,xAe,bAe),XAt(pse,xAe,mAe),XAt(pse,pAe,mAe),XAt(pse,hAe,fAe),XAt(pse,hAe,kAe),XAt(pse,hAe,lAe),XAt(pse,vAe,fAe),XAt(pse,vAe,gAe),XAt(pse,vAe,RAe)}function nGt(t,e){switch(t.e){case 0:case 2:case 4:case 6:case 42:case 44:case 46:case 48:case 8:case 10:case 12:case 14:case 16:case 18:case 20:case 22:case 24:case 26:case 28:case 30:case 32:case 34:case 36:case 38:return new UK(t.b,t.a,e,t.c);case 1:return new IO(t.a,e,Dgt(e.Tg(),t.c));case 43:return new OO(t.a,e,Dgt(e.Tg(),t.c));case 3:return new DO(t.a,e,Dgt(e.Tg(),t.c));case 45:return new LO(t.a,e,Dgt(e.Tg(),t.c));case 41:return new y8(jz(Txt(t.c),26),t.a,e,Dgt(e.Tg(),t.c));case 50:return new vit(jz(Txt(t.c),26),t.a,e,Dgt(e.Tg(),t.c));case 5:return new eF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 47:return new nF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 7:return new tW(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 49:return new tF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 9:return new FO(t.a,e,Dgt(e.Tg(),t.c));case 11:return new PO(t.a,e,Dgt(e.Tg(),t.c));case 13:return new BO(t.a,e,Dgt(e.Tg(),t.c));case 15:return new _H(t.a,e,Dgt(e.Tg(),t.c));case 17:return new jO(t.a,e,Dgt(e.Tg(),t.c));case 19:return new NO(t.a,e,Dgt(e.Tg(),t.c));case 21:return new MO(t.a,e,Dgt(e.Tg(),t.c));case 23:return new yH(t.a,e,Dgt(e.Tg(),t.c));case 25:return new lF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 27:return new cF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 29:return new oF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 31:return new iF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 33:return new sF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 35:return new rF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 37:return new aF(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 39:return new eW(t.a,e,Dgt(e.Tg(),t.c),t.d.n);case 40:return new Rrt(e,Dgt(e.Tg(),t.c));default:throw $m(new fw("Unknown feature style: "+t.e))}}function iGt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;switch(Akt(n,"Brandes & Koepf node placement",1),t.a=e,t.c=j$t(e),i=jz(yEt(e,(zYt(),Lbe)),274),f=zw(RB(yEt(e,Obe))),t.d=i==($Rt(),Zue)&&!f||i==Wue,XUt(t,e),w=null,x=null,b=null,m=null,dit(4,DZt),p=new K7(4),jz(yEt(e,Lbe),274).g){case 3:b=new HFt(e,t.c.d,(oQ(),iwe),(gJ(),Qve)),p.c[p.c.length]=b;break;case 1:m=new HFt(e,t.c.d,(oQ(),awe),(gJ(),Qve)),p.c[p.c.length]=m;break;case 4:w=new HFt(e,t.c.d,(oQ(),iwe),(gJ(),twe)),p.c[p.c.length]=w;break;case 2:x=new HFt(e,t.c.d,(oQ(),awe),(gJ(),twe)),p.c[p.c.length]=x;break;default:b=new HFt(e,t.c.d,(oQ(),iwe),(gJ(),Qve)),m=new HFt(e,t.c.d,awe,Qve),w=new HFt(e,t.c.d,iwe,twe),x=new HFt(e,t.c.d,awe,twe),p.c[p.c.length]=w,p.c[p.c.length]=x,p.c[p.c.length]=b,p.c[p.c.length]=m}for(a=new eT(e,t.c),s=new Wf(p);s.a<s.c.c.length;)CYt(a,r=jz(J1(s),180),t.b),Yzt(r);for(h=new Xwt(e,t.c),c=new Wf(p);c.a<c.c.c.length;)zqt(h,r=jz(J1(c),180));if(n.n)for(l=new Wf(p);l.a<l.c.c.length;)TH(n,(r=jz(J1(l),180))+" size is "+mLt(r));if(d=null,t.d&&Tzt(e,u=jWt(t,p,t.c.d),n)&&(d=u),!d)for(l=new Wf(p);l.a<l.c.c.length;)Tzt(e,r=jz(J1(l),180),n)&&(!d||mLt(d)>mLt(r))&&(d=r);for(!d&&(u1(0,p.c.length),d=jz(p.c[0],180)),g=new Wf(e.b);g.a<g.c.c.length;)for(v=new Wf(jz(J1(g),29).a);v.a<v.c.c.length;)(y=jz(J1(v),10)).n.b=Hw(d.p[y.p])+Hw(d.d[y.p]);for(n.n&&(TH(n,"Chosen node placement: "+d),TH(n,"Blocks: "+MDt(d)),TH(n,"Classes: "+qIt(d,n)),TH(n,"Marked edges: "+t.b)),o=new Wf(p);o.a<o.c.c.length;)(r=jz(J1(o),180)).g=null,r.b=null,r.a=null,r.d=null,r.j=null,r.i=null,r.p=null;Vat(t.c),t.b.a.$b(),zCt(n)}function aGt(t,e,n){var i,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k;for(o=new Zk,y=jz(yEt(n,(zYt(),Vpe)),103),g=0,jat(o,(!e.a&&(e.a=new tW(UDe,e,10,11)),e.a));0!=o.b;)l=jz(0==o.b?null:(EN(0!=o.b),Det(o,o.a.a)),33),(HA(JIt(e,Ipe))!==HA((yct(),Oye))||HA(JIt(e,Hpe))===HA((Gyt(),Rue))||HA(JIt(e,Hpe))===HA((Gyt(),wue))||zw(RB(JIt(e,Ope)))||HA(JIt(e,Cpe))!==HA(($dt(),fse)))&&!zw(RB(JIt(l,Dpe)))&&Kmt(l,(lGt(),hhe),nht(g++)),!zw(RB(JIt(l,Hbe)))&&(d=0!=(!l.a&&(l.a=new tW(UDe,l,10,11)),l.a).i,f=wkt(l),h=HA(JIt(l,sbe))===HA((odt(),bTe)),b=null,(k=!E5(l,(cGt(),tCe))||mF(kB(JIt(l,tCe)),f1t))&&h&&(d||f)&&(lct(b=w$t(l),Vpe,y),IN(b,gme)&&_w(new ogt(Hw(_B(yEt(b,gme)))),b),0!=jz(JIt(l,Fbe),174).gc()&&(u=b,Kk(new NU(null,(!l.c&&(l.c=new tW(VDe,l,9,9)),new h1(l.c,16))),new qg(u)),yBt(l,b))),v=n,(w=jz(NY(t.a,KJ(l)),10))&&(v=w.e),p=fqt(t,l,v),b&&(p.e=b,b.e=p,jat(o,(!l.a&&(l.a=new tW(UDe,l,10,11)),l.a))));for(g=0,n6(o,e,o.c.b,o.c);0!=o.b;){for(c=new AO((!(r=jz(0==o.b?null:(EN(0!=o.b),Det(o,o.a.a)),33)).b&&(r.b=new tW(BDe,r,12,3)),r.b));c.e!=c.i.gc();)tFt(s=jz(wmt(c),79)),(HA(JIt(e,Ipe))!==HA((yct(),Oye))||HA(JIt(e,Hpe))===HA((Gyt(),Rue))||HA(JIt(e,Hpe))===HA((Gyt(),wue))||zw(RB(JIt(e,Ope)))||HA(JIt(e,Cpe))!==HA(($dt(),fse)))&&Kmt(s,(lGt(),hhe),nht(g++)),R=Ckt(jz(Yet((!s.b&&(s.b=new cF(NDe,s,4,7)),s.b),0),82)),_=Ckt(jz(Yet((!s.c&&(s.c=new cF(NDe,s,5,8)),s.c),0),82)),!(zw(RB(JIt(s,Hbe)))||zw(RB(JIt(R,Hbe)))||zw(RB(JIt(_,Hbe))))&&(m=r,ZAt(s)&&zw(RB(JIt(R,hbe)))&&zw(RB(JIt(s,fbe)))||Set(_,R)?m=R:Set(R,_)&&(m=_),v=n,(w=jz(NY(t.a,m),10))&&(v=w.e),lct(oGt(t,s,m,v),(lGt(),Fde),LNt(t,s,e,n)));if(h=HA(JIt(r,sbe))===HA((odt(),bTe)))for(a=new AO((!r.a&&(r.a=new tW(UDe,r,10,11)),r.a));a.e!=a.i.gc();)k=!E5(i=jz(wmt(a),33),(cGt(),tCe))||mF(kB(JIt(i,tCe)),f1t),x=HA(JIt(i,sbe))===HA(bTe),k&&x&&n6(o,i,o.c.b,o.c)}}function rGt(t,e,n,i,a,r){var o,s,c,l,u,d,h;switch(e){case 71:o=i.q.getFullYear()-cKt>=-1900?1:0,oD(t,n>=4?Cst(Hx(zee,1),cZt,2,6,[uKt,dKt])[o]:Cst(Hx(zee,1),cZt,2,6,["BC","AD"])[o]);break;case 121:smt(t,n,i);break;case 77:WFt(t,n,i);break;case 107:xtt(t,0==(s=a.q.getHours())?24:s,n);break;case 83:BOt(t,n,a);break;case 69:c=i.q.getDay(),oD(t,5==n?Cst(Hx(zee,1),cZt,2,6,["S","M","T","W","T","F","S"])[c]:4==n?Cst(Hx(zee,1),cZt,2,6,[hKt,fKt,gKt,pKt,bKt,mKt,yKt])[c]:Cst(Hx(zee,1),cZt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[c]);break;case 97:a.q.getHours()>=12&&a.q.getHours()<24?oD(t,Cst(Hx(zee,1),cZt,2,6,["AM","PM"])[1]):oD(t,Cst(Hx(zee,1),cZt,2,6,["AM","PM"])[0]);break;case 104:xtt(t,0==(l=a.q.getHours()%12)?12:l,n);break;case 75:xtt(t,a.q.getHours()%12,n);break;case 72:xtt(t,a.q.getHours(),n);break;case 99:u=i.q.getDay(),5==n?oD(t,Cst(Hx(zee,1),cZt,2,6,["S","M","T","W","T","F","S"])[u]):4==n?oD(t,Cst(Hx(zee,1),cZt,2,6,[hKt,fKt,gKt,pKt,bKt,mKt,yKt])[u]):3==n?oD(t,Cst(Hx(zee,1),cZt,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[u]):xtt(t,u,1);break;case 76:d=i.q.getMonth(),5==n?oD(t,Cst(Hx(zee,1),cZt,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[d]):4==n?oD(t,Cst(Hx(zee,1),cZt,2,6,[KZt,XZt,JZt,QZt,tKt,eKt,nKt,iKt,aKt,rKt,oKt,sKt])[d]):3==n?oD(t,Cst(Hx(zee,1),cZt,2,6,["Jan","Feb","Mar","Apr",tKt,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[d]):xtt(t,d+1,n);break;case 81:h=i.q.getMonth()/3|0,oD(t,n<4?Cst(Hx(zee,1),cZt,2,6,["Q1","Q2","Q3","Q4"])[h]:Cst(Hx(zee,1),cZt,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[h]);break;case 100:xtt(t,i.q.getDate(),n);break;case 109:xtt(t,a.q.getMinutes(),n);break;case 115:xtt(t,a.q.getSeconds(),n);break;case 122:oD(t,n<4?r.c[0]:r.c[1]);break;case 118:oD(t,r.b);break;case 90:oD(t,n<3?QTt(r):3==n?fAt(r):gAt(r.a));break;default:return!1}return!0}function oGt(t,e,n,i){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T;if(tFt(e),c=jz(Yet((!e.b&&(e.b=new cF(NDe,e,4,7)),e.b),0),82),u=jz(Yet((!e.c&&(e.c=new cF(NDe,e,5,8)),e.c),0),82),s=Ckt(c),l=Ckt(u),o=0==(!e.a&&(e.a=new tW(PDe,e,6,6)),e.a).i?null:jz(Yet((!e.a&&(e.a=new tW(PDe,e,6,6)),e.a),0),202),R=jz(NY(t.a,s),10),C=jz(NY(t.a,l),10),_=null,S=null,iO(c,186)&&(iO(x=jz(NY(t.a,c),299),11)?_=jz(x,11):iO(x,10)&&(R=jz(x,10),_=jz(OU(R.j,0),11))),iO(u,186)&&(iO(E=jz(NY(t.a,u),299),11)?S=jz(E,11):iO(E,10)&&(C=jz(E,10),S=jz(OU(C.j,0),11))),!R||!C)throw $m(new ix("The source or the target of edge "+e+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(Hot(p=new hX,e),lct(p,(lGt(),fhe),e),lct(p,(zYt(),bbe),null),f=jz(yEt(i,Xde),21),R==C&&f.Fc((hBt(),mde)),_||(rit(),w=Hye,k=null,o&&bI(jz(yEt(R,tme),98))&&(Z4(k=new OT(o.j,o.k),qJ(e)),Q3(k,n),Set(l,s)&&(w=zye,VP(k,R.n))),_=gHt(R,k,w,i)),S||(rit(),w=zye,T=null,o&&bI(jz(yEt(C,tme),98))&&(Z4(T=new OT(o.b,o.c),qJ(e)),Q3(T,n)),S=gHt(C,T,w,bG(C))),kQ(p,_),_Q(p,S),(_.e.c.length>1||_.g.c.length>1||S.e.c.length>1||S.g.c.length>1)&&f.Fc((hBt(),hde)),h=new AO((!e.n&&(e.n=new tW(HDe,e,1,7)),e.n));h.e!=h.i.gc();)if(!zw(RB(JIt(d=jz(wmt(h),137),Hbe)))&&d.a)switch(b=zut(d),Wz(p.b,b),jz(yEt(b,Zpe),272).g){case 1:case 2:f.Fc((hBt(),ude));break;case 0:f.Fc((hBt(),cde)),lct(b,Zpe,(Bet(),VSe))}if(r=jz(yEt(i,zpe),314),m=jz(yEt(i,Pbe),315),a=r==(Ait(),cue)||m==(Oyt(),bye),o&&0!=(!o.a&&(o.a=new DO(LDe,o,5)),o.a).i&&a){for(y=HCt(o),g=new vv,v=cmt(y,0);v.b!=v.d.c;)MH(g,new hI(jz(d4(v),8)));lct(p,ghe,g)}return p}function sGt(t){t.gb||(t.gb=!0,t.b=wot(t,0),Bat(t.b,18),Pat(t.b,19),t.a=wot(t,1),Bat(t.a,1),Pat(t.a,2),Pat(t.a,3),Pat(t.a,4),Pat(t.a,5),t.o=wot(t,2),Bat(t.o,8),Bat(t.o,9),Pat(t.o,10),Pat(t.o,11),Pat(t.o,12),Pat(t.o,13),Pat(t.o,14),Pat(t.o,15),Pat(t.o,16),Pat(t.o,17),Pat(t.o,18),Pat(t.o,19),Pat(t.o,20),Pat(t.o,21),Pat(t.o,22),Pat(t.o,23),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),oet(t.o),t.p=wot(t,3),Bat(t.p,2),Bat(t.p,3),Bat(t.p,4),Bat(t.p,5),Pat(t.p,6),Pat(t.p,7),oet(t.p),oet(t.p),t.q=wot(t,4),Bat(t.q,8),t.v=wot(t,5),Pat(t.v,9),oet(t.v),oet(t.v),oet(t.v),t.w=wot(t,6),Bat(t.w,2),Bat(t.w,3),Bat(t.w,4),Pat(t.w,5),t.B=wot(t,7),Pat(t.B,1),oet(t.B),oet(t.B),oet(t.B),t.Q=wot(t,8),Pat(t.Q,0),oet(t.Q),t.R=wot(t,9),Bat(t.R,1),t.S=wot(t,10),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),oet(t.S),t.T=wot(t,11),Pat(t.T,10),Pat(t.T,11),Pat(t.T,12),Pat(t.T,13),Pat(t.T,14),oet(t.T),oet(t.T),t.U=wot(t,12),Bat(t.U,2),Bat(t.U,3),Pat(t.U,4),Pat(t.U,5),Pat(t.U,6),Pat(t.U,7),oet(t.U),t.V=wot(t,13),Pat(t.V,10),t.W=wot(t,14),Bat(t.W,18),Bat(t.W,19),Bat(t.W,20),Pat(t.W,21),Pat(t.W,22),Pat(t.W,23),t.bb=wot(t,15),Bat(t.bb,10),Bat(t.bb,11),Bat(t.bb,12),Bat(t.bb,13),Bat(t.bb,14),Bat(t.bb,15),Bat(t.bb,16),Pat(t.bb,17),oet(t.bb),oet(t.bb),t.eb=wot(t,16),Bat(t.eb,2),Bat(t.eb,3),Bat(t.eb,4),Bat(t.eb,5),Bat(t.eb,6),Bat(t.eb,7),Pat(t.eb,8),Pat(t.eb,9),t.ab=wot(t,17),Bat(t.ab,0),Bat(t.ab,1),t.H=wot(t,18),Pat(t.H,0),Pat(t.H,1),Pat(t.H,2),Pat(t.H,3),Pat(t.H,4),Pat(t.H,5),oet(t.H),t.db=wot(t,19),Pat(t.db,2),t.c=xot(t,20),t.d=xot(t,21),t.e=xot(t,22),t.f=xot(t,23),t.i=xot(t,24),t.g=xot(t,25),t.j=xot(t,26),t.k=xot(t,27),t.n=xot(t,28),t.r=xot(t,29),t.s=xot(t,30),t.t=xot(t,31),t.u=xot(t,32),t.fb=xot(t,33),t.A=xot(t,34),t.C=xot(t,35),t.D=xot(t,36),t.F=xot(t,37),t.G=xot(t,38),t.I=xot(t,39),t.J=xot(t,40),t.L=xot(t,41),t.M=xot(t,42),t.N=xot(t,43),t.O=xot(t,44),t.P=xot(t,45),t.X=xot(t,46),t.Y=xot(t,47),t.Z=xot(t,48),t.$=xot(t,49),t._=xot(t,50),t.cb=xot(t,51),t.K=xot(t,52))}function cGt(){var t,e;cGt=D,tCe=new rm(f6t),mSe=new rm(g6t),fyt(),eCe=new DD(Y2t,nCe=SEe),iCe=new DD(GJt,null),aCe=new rm(p6t),f_t(),lCe=xV(JEe,Cst(Hx(BSe,1),IZt,291,0,[GEe])),cCe=new DD(o4t,lCe),uCe=new DD(W2t,(cM(),!1)),jdt(),dCe=new DD(X2t,hCe=$Se),kft(),bCe=new DD(v2t,mCe=JSe),wCe=new DD(D3t,!1),odt(),xCe=new DD(g2t,RCe=mTe),WCe=new WI(12),qCe=new DD(ZJt,WCe),CCe=new DD(xQt,!1),SCe=new DD(y4t,!1),VCe=new DD(kQt,!1),Z_t(),rSe=new DD(RQt,oSe=KTe),gSe=new rm(p4t),pSe=new rm(bQt),bSe=new rm(vQt),vSe=new rm(wQt),ACe=new vv,TCe=new DD(s4t,ACe),sCe=new DD(u4t,!1),_Ce=new DD(d4t,!1),ICe=new uv,DCe=new DD(b4t,ICe),UCe=new DD(V2t,!1),ySe=new DD(m6t,1),new DD(y6t,!0),nht(0),new DD(v6t,nht(100)),new DD(w6t,!1),nht(0),new DD(x6t,nht(4e3)),nht(0),new DD(R6t,nht(400)),new DD(_6t,!1),new DD(k6t,!1),new DD(E6t,!0),new DD(C6t,!1),jgt(),rCe=new DD(h6t,oCe=eDe),wSe=new DD(L2t,10),xSe=new DD(O2t,10),RSe=new DD(WJt,20),_Se=new DD(M2t,10),kSe=new DD(yQt,2),ESe=new DD(N2t,10),SSe=new DD(B2t,0),TSe=new DD(j2t,5),ASe=new DD(P2t,1),DSe=new DD(F2t,1),ISe=new DD(mQt,20),LSe=new DD($2t,10),NSe=new DD(z2t,10),CSe=new rm(H2t),MSe=new uI,OSe=new DD(m4t,MSe),ZCe=new rm(g4t),YCe=new DD(f4t,GCe=!1),OCe=new WI(5),LCe=new DD(J2t,OCe),QIt(),e=jz(YR(PTe),9),NCe=new ZF(e,jz(kP(e,e.length),9),0),MCe=new DD(SQt,NCe),amt(),XCe=new DD(e4t,JCe=$Te),tSe=new rm(n4t),eSe=new rm(i4t),nSe=new rm(a4t),QCe=new rm(r4t),t=jz(YR($Ae),9),PCe=new ZF(t,jz(kP(t,t.length),9),0),BCe=new DD(CQt,PCe),HCe=Qht((QFt(),UAe)),zCe=new DD(EQt,HCe),$Ce=new OT(0,0),jCe=new DD($Qt,$Ce),FCe=new DD(K2t,!1),Bet(),gCe=new DD(c4t,pCe=VSe),fCe=new DD(_Qt,!1),nht(1),new DD(T6t,null),iSe=new rm(h4t),sSe=new rm(l4t),wWt(),hSe=new DD(q2t,fSe=CAe),aSe=new rm(U2t),dAt(),uSe=Qht(iAe),lSe=new DD(TQt,uSe),cSe=new DD(Q2t,!1),dSe=new DD(t4t,!0),kCe=new DD(G2t,!1),ECe=new DD(Z2t,!1),yCe=new DD(YJt,1),Qkt(),new DD(A6t,vCe=rTe),KCe=!0}function lGt(){var t,e;lGt=D,fhe=new rm(AQt),Fde=new rm("coordinateOrigin"),_he=new rm("processors"),Pde=new eP("compoundNode",(cM(),!1)),the=new eP("insideConnections",!1),ghe=new rm("originalBendpoints"),phe=new rm("originalDummyNodePosition"),bhe=new rm("originalLabelEdge"),Ehe=new rm("representedLabels"),Ude=new rm("endLabels"),Vde=new rm("endLabel.origin"),rhe=new eP("labelSide",(Wwt(),kTe)),dhe=new eP("maxEdgeThickness",0),Che=new eP("reversed",!1),khe=new rm(DQt),che=new eP("longEdgeSource",null),lhe=new eP("longEdgeTarget",null),she=new eP("longEdgeHasLabelDummies",!1),ohe=new eP("longEdgeBeforeLabelDummy",!1),Hde=new eP("edgeConstraint",(Xst(),Due)),nhe=new rm("inLayerLayoutUnit"),ehe=new eP("inLayerConstraint",(U9(),Cde)),ihe=new eP("inLayerSuccessorConstraint",new Lm),ahe=new eP("inLayerSuccessorConstraintBetweenNonDummies",!1),xhe=new rm("portDummy"),jde=new eP("crossingHint",nht(0)),Xde=new eP("graphProperties",new ZF(e=jz(YR(vde),9),jz(kP(e,e.length),9),0)),Gde=new eP("externalPortSide",(wWt(),CAe)),Zde=new eP("externalPortSize",new HR),Wde=new rm("externalPortReplacedDummies"),Yde=new rm("externalPortReplacedDummy"),qde=new eP("externalPortConnections",new ZF(t=jz(YR(MAe),9),jz(kP(t,t.length),9),0)),Rhe=new eP(gJt,0),Ode=new rm("barycenterAssociates"),Bhe=new rm("TopSideComments"),Mde=new rm("BottomSideComments"),Bde=new rm("CommentConnectionPort"),Qde=new eP("inputCollect",!1),vhe=new eP("outputCollect",!1),zde=new eP("cyclic",!1),$de=new rm("crossHierarchyMap"),Nhe=new rm("targetOffset"),new eP("splineLabelSize",new HR),Ahe=new rm("spacings"),whe=new eP("partitionConstraint",!1),Nde=new rm("breakingPoint.info"),Ohe=new rm("splines.survivingEdge"),Lhe=new rm("splines.route.start"),Dhe=new rm("splines.edgeChain"),yhe=new rm("originalPortConstraints"),The=new rm("selfLoopHolder"),Ihe=new rm("splines.nsPortY"),hhe=new rm("modelOrder"),uhe=new rm("longEdgeTargetNode"),Kde=new eP(V1t,!1),She=new eP(V1t,!1),Jde=new rm("layerConstraints.hiddenNodes"),mhe=new rm("layerConstraints.opposidePort"),Mhe=new rm("targetNode.modelOrder")}function uGt(){uGt=D,Ptt(),kfe=new DD(q1t,Efe=Eue),Hfe=new DD(W1t,(cM(),!1)),U2(),Yfe=new DD(Y1t,Gfe=Dde),hge=new DD(G1t,!1),fge=new DD(Z1t,!0),Vhe=new DD(K1t,!1),V9(),Lge=new DD(X1t,Oge=Pye),nht(1),zge=new DD(J1t,nht(7)),Hge=new DD(Q1t,!1),Ufe=new DD(t0t,!1),Gyt(),Rfe=new DD(e0t,_fe=vue),_kt(),uge=new DD(n0t,dge=tye),_ft(),tge=new DD(i0t,ege=Hhe),nht(-1),Qfe=new DD(a0t,nht(-1)),nht(-1),nge=new DD(r0t,nht(-1)),nht(-1),ige=new DD(o0t,nht(4)),nht(-1),rge=new DD(s0t,nht(2)),cMt(),cge=new DD(c0t,lge=Tye),nht(0),sge=new DD(l0t,nht(0)),Xfe=new DD(u0t,nht(NGt)),Ait(),wfe=new DD(d0t,xfe=lue),rfe=new DD(h0t,!1),gfe=new DD(f0t,.1),yfe=new DD(g0t,!1),nht(-1),bfe=new DD(p0t,nht(-1)),nht(-1),mfe=new DD(b0t,nht(-1)),nht(0),ofe=new DD(m0t,nht(40)),Pot(),dfe=new DD(y0t,hfe=Rde),sfe=new DD(v0t,cfe=wde),Oyt(),Dge=new DD(w0t,Ige=pye),wge=new rm(x0t),g9(),gge=new DD(R0t,pge=Hue),$Rt(),mge=new DD(_0t,yge=Zue),_ge=new DD(k0t,.3),Ege=new rm(E0t),hyt(),Cge=new DD(C0t,Sge=dye),zrt(),Lfe=new DD(S0t,Ofe=Yye),A7(),Mfe=new DD(T0t,Nfe=Jye),qlt(),Bfe=new DD(A0t,Pfe=ive),jfe=new DD(D0t,.2),Dfe=new DD(I0t,2),Pge=new DD(L0t,null),jge=new DD(O0t,10),Fge=new DD(M0t,10),$ge=new DD(N0t,20),nht(0),Mge=new DD(B0t,nht(0)),nht(0),Nge=new DD(P0t,nht(0)),nht(0),Bge=new DD(F0t,nht(0)),qhe=new DD(j0t,!1),XEt(),Ghe=new DD($0t,Zhe=ade),Y5(),Whe=new DD(z0t,Yhe=rue),qfe=new DD(H0t,!1),nht(0),Vfe=new DD(U0t,nht(16)),nht(0),Wfe=new DD(V0t,nht(5)),Ist(),upe=new DD(q0t,dpe=hve),Uge=new DD(W0t,10),Wge=new DD(Y0t,1),oit(),tpe=new DD(G0t,epe=pue),Zge=new rm(Z0t),Jge=nht(1),nht(0),Xge=new DD(K0t,Jge),grt(),ppe=new DD(X0t,bpe=ove),hpe=new rm(J0t),ope=new DD(Q0t,!0),ape=new DD(t2t,2),cpe=new DD(e2t,!0),pCt(),Tfe=new DD(n2t,Afe=Fue),ISt(),Cfe=new DD(i2t,Sfe=Jle),yct(),ife=new DD(a2t,afe=Oye),nfe=new DD(r2t,!1),$dt(),Khe=new DD(o2t,Xhe=fse),kut(),tfe=new DD(s2t,efe=aye),Jhe=new DD(c2t,0),Qhe=new DD(l2t,0),Kfe=xue,Zfe=cue,age=Qme,oge=Qme,Jfe=Kme,odt(),pfe=bTe,vfe=lue,ffe=lue,lfe=lue,ufe=bTe,xge=yye,Rge=pye,bge=pye,vge=pye,kge=mye,Age=yye,Tge=yye,kft(),Ffe=XSe,$fe=XSe,zfe=ive,Ife=KSe,Vge=fve,qge=dve,Yge=fve,Gge=dve,npe=fve,ipe=dve,Kge=gue,Qge=pue,mpe=fve,ype=dve,fpe=fve,gpe=dve,spe=dve,rpe=dve,lpe=dve}function dGt(){dGt=D,ice=new JC("DIRECTION_PREPROCESSOR",0),tce=new JC("COMMENT_PREPROCESSOR",1),ace=new JC("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),wce=new JC("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),jce=new JC("PARTITION_PREPROCESSOR",4),kce=new JC("LABEL_DUMMY_INSERTER",5),qce=new JC("SELF_LOOP_PREPROCESSOR",6),Ace=new JC("LAYER_CONSTRAINT_PREPROCESSOR",7),Pce=new JC("PARTITION_MIDPROCESSOR",8),pce=new JC("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),Oce=new JC("NODE_PROMOTION",10),Tce=new JC("LAYER_CONSTRAINT_POSTPROCESSOR",11),Fce=new JC("PARTITION_POSTPROCESSOR",12),dce=new JC("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),Yce=new JC("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),Gse=new JC("BREAKING_POINT_INSERTER",15),Lce=new JC("LONG_EDGE_SPLITTER",16),zce=new JC("PORT_SIDE_PROCESSOR",17),xce=new JC("INVERTED_PORT_PROCESSOR",18),$ce=new JC("PORT_LIST_SORTER",19),Zce=new JC("SORT_BY_INPUT_ORDER_OF_MODEL",20),Nce=new JC("NORTH_SOUTH_PORT_PREPROCESSOR",21),Zse=new JC("BREAKING_POINT_PROCESSOR",22),Bce=new JC(R1t,23),Kce=new JC(_1t,24),Uce=new JC("SELF_LOOP_PORT_RESTORER",25),Gce=new JC("SINGLE_EDGE_GRAPH_WRAPPER",26),Rce=new JC("IN_LAYER_CONSTRAINT_PROCESSOR",27),cce=new JC("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),_ce=new JC("LABEL_AND_NODE_SIZE_PROCESSOR",29),vce=new JC("INNERMOST_NODE_MARGIN_CALCULATOR",30),Wce=new JC("SELF_LOOP_ROUTER",31),Jse=new JC("COMMENT_NODE_MARGIN_CALCULATOR",32),oce=new JC("END_LABEL_PREPROCESSOR",33),Cce=new JC("LABEL_DUMMY_SWITCHER",34),Xse=new JC("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),Sce=new JC("LABEL_SIDE_SELECTOR",36),mce=new JC("HYPEREDGE_DUMMY_MERGER",37),hce=new JC("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),Dce=new JC("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),gce=new JC("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),ece=new JC("CONSTRAINTS_POSTPROCESSOR",41),Qse=new JC("COMMENT_POSTPROCESSOR",42),yce=new JC("HYPERNODE_PROCESSOR",43),fce=new JC("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),Ice=new JC("LONG_EDGE_JOINER",45),Vce=new JC("SELF_LOOP_POSTPROCESSOR",46),Kse=new JC("BREAKING_POINT_REMOVER",47),Mce=new JC("NORTH_SOUTH_PORT_POSTPROCESSOR",48),bce=new JC("HORIZONTAL_COMPACTOR",49),Ece=new JC("LABEL_DUMMY_REMOVER",50),lce=new JC("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),sce=new JC("END_LABEL_SORTER",52),Hce=new JC("REVERSED_EDGE_RESTORER",53),rce=new JC("END_LABEL_POSTPROCESSOR",54),uce=new JC("HIERARCHICAL_NODE_RESIZER",55),nce=new JC("DIRECTION_POSTPROCESSOR",56)}function hGt(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I,L,O,M,N,B,P,F,j,$,z,H,U,V,q,W,Y,G,Z,K,X,J,Q,tt,et,nt,it,at,rt,ot,st;for(J=0,O=0,B=(D=e).length;O<B;++O)for(V=new Wf((T=D[O]).j);V.a<V.c.c.length;){for(W=0,c=new Wf((U=jz(J1(V),11)).g);c.a<c.c.c.length;)s=jz(J1(c),17),T.c!=s.d.i.c&&++W;W>0&&(t.a[U.p]=J++)}for(it=0,M=0,P=(I=n).length;M<P;++M){for(F=0,V=new Wf((T=I[M]).j);V.a<V.c.c.length&&(U=jz(J1(V),11)).j==(wWt(),cAe);)for(c=new Wf(U.e);c.a<c.c.c.length;)if(s=jz(J1(c),17),T.c!=s.c.i.c){++F;break}for($=0,Y=new _2(T.j,T.j.c.length);Y.b>0;){for(EN(Y.b>0),W=0,c=new Wf((U=jz(Y.a.Xb(Y.c=--Y.b),11)).e);c.a<c.c.c.length;)s=jz(J1(c),17),T.c!=s.c.i.c&&++W;W>0&&(U.j==(wWt(),cAe)?(t.a[U.p]=it,++it):(t.a[U.p]=it+F+$,++$))}it+=$}for(q=new Om,p=new lI,L=0,N=(A=e).length;L<N;++L)for(et=new Wf((T=A[L]).j);et.a<et.c.c.length;)for(c=new Wf((tt=jz(J1(et),11)).g);c.a<c.c.c.length;)if(rt=(s=jz(J1(c),17)).d,T.c!=rt.i.c)if(Q=jz(zA(AX(q.f,tt)),467),at=jz(zA(AX(q.f,rt)),467),Q||at)if(Q)if(at)if(Q==at)Wz(Q.a,s);else{for(Wz(Q.a,s),H=new Wf(at.d);H.a<H.c.c.length;)z=jz(J1(H),11),xTt(q.f,z,Q);pst(Q.a,at.a),pst(Q.d,at.d),p.a.Bc(at)}else Wz(Q.a,s),Wz(Q.d,rt),xTt(q.f,rt,Q);else Wz(at.a,s),Wz(at.d,tt),xTt(q.f,tt,at);else g=new MP,p.a.zc(g,p),Wz(g.a,s),Wz(g.d,tt),xTt(q.f,tt,g),Wz(g.d,rt),xTt(q.f,rt,g);for(b=jz(Rvt(p,O5(Fve,{3:1,4:1,5:1,1946:1},467,p.a.gc(),0,1)),1946),S=e[0].c,X=n[0].c,h=0,f=(d=b).length;h<f;++h)for((u=d[h]).e=J,u.f=it,V=new Wf(u.d);V.a<V.c.c.length;)U=jz(J1(V),11),G=t.a[U.p],U.i.c==S?(G<u.e&&(u.e=G),G>u.b&&(u.b=G)):U.i.c==X&&(G<u.f&&(u.f=G),G>u.c&&(u.c=G));for(U8(b,0,b.length,null),nt=O5(TMe,lKt,25,b.length,15,1),a=O5(TMe,lKt,25,it+1,15,1),y=0;y<b.length;y++)nt[y]=b[y].f,a[nt[y]]=1;for(o=0,v=0;v<a.length;v++)1==a[v]?a[v]=o:--o;for(Z=0,w=0;w<nt.length;w++)nt[w]+=a[nt[w]],Z=i.Math.max(Z,nt[w]+1);for(l=1;l<Z;)l*=2;for(st=2*l-1,l-=1,ot=O5(TMe,lKt,25,st,15,1),r=0,E=0;E<nt.length;E++)for(++ot[k=nt[E]+l];k>0;)k%2>0&&(r+=ot[k+1]),++ot[k=(k-1)/2|0];for(C=O5(jve,zGt,362,2*b.length,0,1),x=0;x<b.length;x++)C[2*x]=new zZ(b[x],b[x].e,b[x].b,(G3(),zve)),C[2*x+1]=new zZ(b[x],b[x].b,b[x].e,$ve);for(U8(C,0,C.length,null),j=0,R=0;R<C.length;R++)switch(C[R].d.g){case 0:++j;break;case 1:r+=--j}for(K=O5(jve,zGt,362,2*b.length,0,1),_=0;_<b.length;_++)K[2*_]=new zZ(b[_],b[_].f,b[_].c,(G3(),zve)),K[2*_+1]=new zZ(b[_],b[_].c,b[_].f,$ve);for(U8(K,0,K.length,null),j=0,m=0;m<K.length;m++)switch(K[m].d.g){case 0:++j;break;case 1:r+=--j}return r}function fGt(){fGt=D,oMe=new Am(7),sMe=new oV(8,94),new oV(8,64),cMe=new oV(8,36),gMe=new oV(8,65),pMe=new oV(8,122),bMe=new oV(8,90),vMe=new oV(8,98),hMe=new oV(8,66),mMe=new oV(8,60),wMe=new oV(8,62),rMe=new Am(11),KNt(aMe=new _0(4),48,57),KNt(yMe=new _0(4),48,57),KNt(yMe,65,90),KNt(yMe,95,95),KNt(yMe,97,122),KNt(fMe=new _0(4),9,9),KNt(fMe,10,10),KNt(fMe,12,12),KNt(fMe,13,13),KNt(fMe,32,32),lMe=I$t(aMe),dMe=I$t(yMe),uMe=I$t(fMe),tMe=new Om,eMe=new Om,nMe=Cst(Hx(zee,1),cZt,2,6,["Cn","Lu","Ll","Lt","Lm","Lo","Mn","Me","Mc","Nd","Nl","No","Zs","Zl","Zp","Cc","Cf",null,"Co","Cs","Pd","Ps","Pe","Pc","Po","Sm","Sc","Sk","So","Pi","Pf","L","M","N","Z","C","P","S"]),QOe=Cst(Hx(zee,1),cZt,2,6,["Basic Latin","Latin-1 Supplement","Latin Extended-A","Latin Extended-B","IPA Extensions","Spacing Modifier Letters","Combining Diacritical Marks","Greek","Cyrillic","Armenian","Hebrew","Arabic","Syriac","Thaana","Devanagari","Bengali","Gurmukhi","Gujarati","Oriya","Tamil","Telugu","Kannada","Malayalam","Sinhala","Thai","Lao","Tibetan","Myanmar","Georgian","Hangul Jamo","Ethiopic","Cherokee","Unified Canadian Aboriginal Syllabics","Ogham","Runic","Khmer","Mongolian","Latin Extended Additional","Greek Extended","General Punctuation","Superscripts and Subscripts","Currency Symbols","Combining Marks for Symbols","Letterlike Symbols","Number Forms","Arrows","Mathematical Operators","Miscellaneous Technical","Control Pictures","Optical Character Recognition","Enclosed Alphanumerics","Box Drawing","Block Elements","Geometric Shapes","Miscellaneous Symbols","Dingbats","Braille Patterns","CJK Radicals Supplement","Kangxi Radicals","Ideographic Description Characters","CJK Symbols and Punctuation","Hiragana","Katakana","Bopomofo","Hangul Compatibility Jamo","Kanbun","Bopomofo Extended","Enclosed CJK Letters and Months","CJK Compatibility","CJK Unified Ideographs Extension A","CJK Unified Ideographs","Yi Syllables","Yi Radicals","Hangul Syllables",pte,"CJK Compatibility Ideographs","Alphabetic Presentation Forms","Arabic Presentation Forms-A","Combining Half Marks","CJK Compatibility Forms","Small Form Variants","Arabic Presentation Forms-B","Specials","Halfwidth and Fullwidth Forms","Old Italic","Gothic","Deseret","Byzantine Musical Symbols","Musical Symbols","Mathematical Alphanumeric Symbols","CJK Unified Ideographs Extension B","CJK Compatibility Ideographs Supplement","Tags"]),iMe=Cst(Hx(TMe,1),lKt,25,15,[66304,66351,66352,66383,66560,66639,118784,119039,119040,119295,119808,120831,131072,173782,194560,195103,917504,917631])}function gGt(){gGt=D,Cae=new srt("OUT_T_L",0,(K8(),Xie),(H9(),nae),(Net(),Uie),Uie,Cst(Hx(Nte,1),zGt,21,0,[xV((QIt(),LTe),Cst(Hx(PTe,1),IZt,93,0,[NTe,TTe]))])),Eae=new srt("OUT_T_C",1,Kie,nae,Uie,Vie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[NTe,STe])),xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[NTe,STe,ATe]))])),Sae=new srt("OUT_T_R",2,Jie,nae,Uie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[NTe,DTe]))])),mae=new srt("OUT_B_L",3,Xie,aae,qie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[OTe,TTe]))])),bae=new srt("OUT_B_C",4,Kie,aae,qie,Vie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[OTe,STe])),xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[OTe,STe,ATe]))])),yae=new srt("OUT_B_R",5,Jie,aae,qie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[OTe,DTe]))])),xae=new srt("OUT_L_T",6,Jie,aae,Uie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[TTe,NTe,ATe]))])),wae=new srt("OUT_L_C",7,Jie,iae,Vie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[TTe,MTe])),xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[TTe,MTe,ATe]))])),vae=new srt("OUT_L_B",8,Jie,nae,qie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[TTe,OTe,ATe]))])),kae=new srt("OUT_R_T",9,Xie,aae,Uie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[DTe,NTe,ATe]))])),_ae=new srt("OUT_R_C",10,Xie,iae,Vie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[DTe,MTe])),xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[DTe,MTe,ATe]))])),Rae=new srt("OUT_R_B",11,Xie,nae,qie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(LTe,Cst(Hx(PTe,1),IZt,93,0,[DTe,OTe,ATe]))])),gae=new srt("IN_T_L",12,Xie,aae,Uie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,TTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,TTe,ATe]))])),fae=new srt("IN_T_C",13,Kie,aae,Uie,Vie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,STe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,STe,ATe]))])),pae=new srt("IN_T_R",14,Jie,aae,Uie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,DTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[NTe,DTe,ATe]))])),dae=new srt("IN_C_L",15,Xie,iae,Vie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,TTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,TTe,ATe]))])),uae=new srt("IN_C_C",16,Kie,iae,Vie,Vie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,STe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,STe,ATe]))])),hae=new srt("IN_C_R",17,Jie,iae,Vie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,DTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[MTe,DTe,ATe]))])),cae=new srt("IN_B_L",18,Xie,nae,qie,Uie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,TTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,TTe,ATe]))])),sae=new srt("IN_B_C",19,Kie,nae,qie,Vie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,STe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,STe,ATe]))])),lae=new srt("IN_B_R",20,Jie,nae,qie,qie,Cst(Hx(Nte,1),zGt,21,0,[xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,DTe])),xV(ITe,Cst(Hx(PTe,1),IZt,93,0,[OTe,DTe,ATe]))])),Tae=new srt(lJt,21,null,null,null,null,Cst(Hx(Nte,1),zGt,21,0,[]))}function pGt(){pGt=D,tLe=(GY(),JIe).b,jz(Yet(GK(JIe.b),0),34),jz(Yet(GK(JIe.b),1),18),QIe=JIe.a,jz(Yet(GK(JIe.a),0),34),jz(Yet(GK(JIe.a),1),18),jz(Yet(GK(JIe.a),2),18),jz(Yet(GK(JIe.a),3),18),jz(Yet(GK(JIe.a),4),18),eLe=JIe.o,jz(Yet(GK(JIe.o),0),34),jz(Yet(GK(JIe.o),1),34),iLe=jz(Yet(GK(JIe.o),2),18),jz(Yet(GK(JIe.o),3),18),jz(Yet(GK(JIe.o),4),18),jz(Yet(GK(JIe.o),5),18),jz(Yet(GK(JIe.o),6),18),jz(Yet(GK(JIe.o),7),18),jz(Yet(GK(JIe.o),8),18),jz(Yet(GK(JIe.o),9),18),jz(Yet(GK(JIe.o),10),18),jz(Yet(GK(JIe.o),11),18),jz(Yet(GK(JIe.o),12),18),jz(Yet(GK(JIe.o),13),18),jz(Yet(GK(JIe.o),14),18),jz(Yet(GK(JIe.o),15),18),jz(Yet(YK(JIe.o),0),59),jz(Yet(YK(JIe.o),1),59),jz(Yet(YK(JIe.o),2),59),jz(Yet(YK(JIe.o),3),59),jz(Yet(YK(JIe.o),4),59),jz(Yet(YK(JIe.o),5),59),jz(Yet(YK(JIe.o),6),59),jz(Yet(YK(JIe.o),7),59),jz(Yet(YK(JIe.o),8),59),jz(Yet(YK(JIe.o),9),59),nLe=JIe.p,jz(Yet(GK(JIe.p),0),34),jz(Yet(GK(JIe.p),1),34),jz(Yet(GK(JIe.p),2),34),jz(Yet(GK(JIe.p),3),34),jz(Yet(GK(JIe.p),4),18),jz(Yet(GK(JIe.p),5),18),jz(Yet(YK(JIe.p),0),59),jz(Yet(YK(JIe.p),1),59),aLe=JIe.q,jz(Yet(GK(JIe.q),0),34),rLe=JIe.v,jz(Yet(GK(JIe.v),0),18),jz(Yet(YK(JIe.v),0),59),jz(Yet(YK(JIe.v),1),59),jz(Yet(YK(JIe.v),2),59),oLe=JIe.w,jz(Yet(GK(JIe.w),0),34),jz(Yet(GK(JIe.w),1),34),jz(Yet(GK(JIe.w),2),34),jz(Yet(GK(JIe.w),3),18),sLe=JIe.B,jz(Yet(GK(JIe.B),0),18),jz(Yet(YK(JIe.B),0),59),jz(Yet(YK(JIe.B),1),59),jz(Yet(YK(JIe.B),2),59),uLe=JIe.Q,jz(Yet(GK(JIe.Q),0),18),jz(Yet(YK(JIe.Q),0),59),dLe=JIe.R,jz(Yet(GK(JIe.R),0),34),hLe=JIe.S,jz(Yet(YK(JIe.S),0),59),jz(Yet(YK(JIe.S),1),59),jz(Yet(YK(JIe.S),2),59),jz(Yet(YK(JIe.S),3),59),jz(Yet(YK(JIe.S),4),59),jz(Yet(YK(JIe.S),5),59),jz(Yet(YK(JIe.S),6),59),jz(Yet(YK(JIe.S),7),59),jz(Yet(YK(JIe.S),8),59),jz(Yet(YK(JIe.S),9),59),jz(Yet(YK(JIe.S),10),59),jz(Yet(YK(JIe.S),11),59),jz(Yet(YK(JIe.S),12),59),jz(Yet(YK(JIe.S),13),59),jz(Yet(YK(JIe.S),14),59),fLe=JIe.T,jz(Yet(GK(JIe.T),0),18),jz(Yet(GK(JIe.T),2),18),gLe=jz(Yet(GK(JIe.T),3),18),jz(Yet(GK(JIe.T),4),18),jz(Yet(YK(JIe.T),0),59),jz(Yet(YK(JIe.T),1),59),jz(Yet(GK(JIe.T),1),18),pLe=JIe.U,jz(Yet(GK(JIe.U),0),34),jz(Yet(GK(JIe.U),1),34),jz(Yet(GK(JIe.U),2),18),jz(Yet(GK(JIe.U),3),18),jz(Yet(GK(JIe.U),4),18),jz(Yet(GK(JIe.U),5),18),jz(Yet(YK(JIe.U),0),59),bLe=JIe.V,jz(Yet(GK(JIe.V),0),18),mLe=JIe.W,jz(Yet(GK(JIe.W),0),34),jz(Yet(GK(JIe.W),1),34),jz(Yet(GK(JIe.W),2),34),jz(Yet(GK(JIe.W),3),18),jz(Yet(GK(JIe.W),4),18),jz(Yet(GK(JIe.W),5),18),vLe=JIe.bb,jz(Yet(GK(JIe.bb),0),34),jz(Yet(GK(JIe.bb),1),34),jz(Yet(GK(JIe.bb),2),34),jz(Yet(GK(JIe.bb),3),34),jz(Yet(GK(JIe.bb),4),34),jz(Yet(GK(JIe.bb),5),34),jz(Yet(GK(JIe.bb),6),34),jz(Yet(GK(JIe.bb),7),18),jz(Yet(YK(JIe.bb),0),59),jz(Yet(YK(JIe.bb),1),59),wLe=JIe.eb,jz(Yet(GK(JIe.eb),0),34),jz(Yet(GK(JIe.eb),1),34),jz(Yet(GK(JIe.eb),2),34),jz(Yet(GK(JIe.eb),3),34),jz(Yet(GK(JIe.eb),4),34),jz(Yet(GK(JIe.eb),5),34),jz(Yet(GK(JIe.eb),6),18),jz(Yet(GK(JIe.eb),7),18),yLe=JIe.ab,jz(Yet(GK(JIe.ab),0),34),jz(Yet(GK(JIe.ab),1),34),cLe=JIe.H,jz(Yet(GK(JIe.H),0),18),jz(Yet(GK(JIe.H),1),18),jz(Yet(GK(JIe.H),2),18),jz(Yet(GK(JIe.H),3),18),jz(Yet(GK(JIe.H),4),18),jz(Yet(GK(JIe.H),5),18),jz(Yet(YK(JIe.H),0),59),xLe=JIe.db,jz(Yet(GK(JIe.db),0),18),lLe=JIe.M}function bGt(t){var e;t.O||(t.O=!0,Oat(t,"type"),Mat(t,"ecore.xml.type"),Nat(t,E9t),e=jz(ILt((WE(),HIe),E9t),1945),l8(vX(t.fb),t.b),U0(t.b,dOe,"AnyType",!1,!1,!0),ort(jz(Yet(GK(t.b),0),34),t.wb.D,P8t,null,0,-1,dOe,!1,!1,!0,!1,!1,!1),ort(jz(Yet(GK(t.b),1),34),t.wb.D,"any",null,0,-1,dOe,!0,!0,!0,!1,!1,!0),ort(jz(Yet(GK(t.b),2),34),t.wb.D,"anyAttribute",null,0,-1,dOe,!1,!1,!0,!1,!1,!1),U0(t.bb,HOe,D9t,!1,!1,!0),ort(jz(Yet(GK(t.bb),0),34),t.gb,"data",null,0,1,HOe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),1),34),t.gb,K7t,null,1,1,HOe,!1,!1,!0,!1,!0,!1),U0(t.fb,UOe,I9t,!1,!1,!0),ort(jz(Yet(GK(t.fb),0),34),e.gb,"rawValue",null,0,1,UOe,!0,!0,!0,!1,!0,!0),ort(jz(Yet(GK(t.fb),1),34),e.a,R7t,null,0,1,UOe,!0,!0,!0,!1,!0,!0),kwt(jz(Yet(GK(t.fb),2),18),t.wb.q,null,"instanceType",1,1,UOe,!1,!1,!0,!1,!1,!1,!1),U0(t.qb,VOe,L9t,!1,!1,!0),ort(jz(Yet(GK(t.qb),0),34),t.wb.D,P8t,null,0,-1,null,!1,!1,!0,!1,!1,!1),kwt(jz(Yet(GK(t.qb),1),18),t.wb.ab,null,"xMLNSPrefixMap",0,-1,null,!0,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.qb),2),18),t.wb.ab,null,"xSISchemaLocation",0,-1,null,!0,!1,!0,!0,!1,!1,!1),ort(jz(Yet(GK(t.qb),3),34),t.gb,"cDATA",null,0,-2,null,!0,!0,!0,!1,!1,!0),ort(jz(Yet(GK(t.qb),4),34),t.gb,"comment",null,0,-2,null,!0,!0,!0,!1,!1,!0),kwt(jz(Yet(GK(t.qb),5),18),t.bb,null,ate,0,-2,null,!0,!0,!0,!0,!1,!1,!0),ort(jz(Yet(GK(t.qb),6),34),t.gb,A7t,null,0,-2,null,!0,!0,!0,!1,!1,!0),fZ(t.a,Dte,"AnySimpleType",!0),fZ(t.c,zee,"AnyURI",!0),fZ(t.d,Hx(IMe,1),"Base64Binary",!0),fZ(t.e,AMe,"Boolean",!0),fZ(t.f,wee,"BooleanObject",!0),fZ(t.g,IMe,"Byte",!0),fZ(t.i,Ree,"ByteObject",!0),fZ(t.j,zee,"Date",!0),fZ(t.k,zee,"DateTime",!0),fZ(t.n,Kee,"Decimal",!0),fZ(t.o,LMe,"Double",!0),fZ(t.p,Cee,"DoubleObject",!0),fZ(t.q,zee,"Duration",!0),fZ(t.s,Bte,"ENTITIES",!0),fZ(t.r,Bte,"ENTITIESBase",!0),fZ(t.t,zee,F9t,!0),fZ(t.u,OMe,"Float",!0),fZ(t.v,See,"FloatObject",!0),fZ(t.w,zee,"GDay",!0),fZ(t.B,zee,"GMonth",!0),fZ(t.A,zee,"GMonthDay",!0),fZ(t.C,zee,"GYear",!0),fZ(t.D,zee,"GYearMonth",!0),fZ(t.F,Hx(IMe,1),"HexBinary",!0),fZ(t.G,zee,"ID",!0),fZ(t.H,zee,"IDREF",!0),fZ(t.J,Bte,"IDREFS",!0),fZ(t.I,Bte,"IDREFSBase",!0),fZ(t.K,TMe,"Int",!0),fZ(t.M,sne,"Integer",!0),fZ(t.L,Dee,"IntObject",!0),fZ(t.P,zee,"Language",!0),fZ(t.Q,DMe,"Long",!0),fZ(t.R,Bee,"LongObject",!0),fZ(t.S,zee,"Name",!0),fZ(t.T,zee,j9t,!0),fZ(t.U,sne,"NegativeInteger",!0),fZ(t.V,zee,Z9t,!0),fZ(t.X,Bte,"NMTOKENS",!0),fZ(t.W,Bte,"NMTOKENSBase",!0),fZ(t.Y,sne,"NonNegativeInteger",!0),fZ(t.Z,sne,"NonPositiveInteger",!0),fZ(t.$,zee,"NormalizedString",!0),fZ(t._,zee,"NOTATION",!0),fZ(t.ab,zee,"PositiveInteger",!0),fZ(t.cb,zee,"QName",!0),fZ(t.db,MMe,"Short",!0),fZ(t.eb,Fee,"ShortObject",!0),fZ(t.gb,zee,HZt,!0),fZ(t.hb,zee,"Time",!0),fZ(t.ib,zee,"Token",!0),fZ(t.jb,MMe,"UnsignedByte",!0),fZ(t.kb,Fee,"UnsignedByteObject",!0),fZ(t.lb,DMe,"UnsignedInt",!0),fZ(t.mb,Bee,"UnsignedIntObject",!0),fZ(t.nb,sne,"UnsignedLong",!0),fZ(t.ob,TMe,"UnsignedShort",!0),fZ(t.pb,Dee,"UnsignedShortObject",!0),Lut(t,E9t),vGt(t))}function mGt(t){LE(t,new kkt(mR(fR(bR(hR(pR(gR(new bs,f1t),"ELK Layered"),"Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level."),new Tr),f1t),xV((lIt(),eIe),Cst(Hx(iIe,1),IZt,237,0,[JDe,QDe,XDe,tIe,ZDe,GDe]))))),r2(t,f1t,L2t,ymt(pme)),r2(t,f1t,O2t,ymt(bme)),r2(t,f1t,WJt,ymt(mme)),r2(t,f1t,M2t,ymt(yme)),r2(t,f1t,yQt,ymt(wme)),r2(t,f1t,N2t,ymt(xme)),r2(t,f1t,B2t,ymt(kme)),r2(t,f1t,P2t,ymt(Cme)),r2(t,f1t,F2t,ymt(Sme)),r2(t,f1t,j2t,ymt(Eme)),r2(t,f1t,mQt,ymt(Tme)),r2(t,f1t,$2t,ymt(Dme)),r2(t,f1t,z2t,ymt(Lme)),r2(t,f1t,H2t,ymt(_me)),r2(t,f1t,L0t,ymt(gme)),r2(t,f1t,M0t,ymt(vme)),r2(t,f1t,O0t,ymt(Rme)),r2(t,f1t,N0t,ymt(Ame)),r2(t,f1t,bQt,nht(0)),r2(t,f1t,B0t,ymt(lme)),r2(t,f1t,P0t,ymt(ume)),r2(t,f1t,F0t,ymt(dme)),r2(t,f1t,q0t,ymt(Ume)),r2(t,f1t,W0t,ymt(Nme)),r2(t,f1t,Y0t,ymt(Bme)),r2(t,f1t,G0t,ymt(jme)),r2(t,f1t,Z0t,ymt(Pme)),r2(t,f1t,K0t,ymt(Fme)),r2(t,f1t,X0t,ymt(qme)),r2(t,f1t,J0t,ymt(Vme)),r2(t,f1t,Q0t,ymt(zme)),r2(t,f1t,t2t,ymt($me)),r2(t,f1t,e2t,ymt(Hme)),r2(t,f1t,E0t,ymt(Nbe)),r2(t,f1t,C0t,ymt(Bbe)),r2(t,f1t,A0t,ymt(nbe)),r2(t,f1t,D0t,ymt(ibe)),r2(t,f1t,ZJt,Vbe),r2(t,f1t,v2t,Jpe),r2(t,f1t,U2t,0),r2(t,f1t,vQt,nht(1)),r2(t,f1t,GJt,gQt),r2(t,f1t,V2t,ymt(Hbe)),r2(t,f1t,RQt,ymt(tme)),r2(t,f1t,q2t,ymt(rme)),r2(t,f1t,W2t,ymt(Upe)),r2(t,f1t,Y2t,ymt(vpe)),r2(t,f1t,g2t,ymt(sbe)),r2(t,f1t,wQt,(cM(),!0)),r2(t,f1t,G2t,ymt(hbe)),r2(t,f1t,Z2t,ymt(fbe)),r2(t,f1t,CQt,ymt(Fbe)),r2(t,f1t,EQt,ymt(zbe)),r2(t,f1t,K2t,ymt(jbe)),r2(t,f1t,X2t,Wpe),r2(t,f1t,SQt,ymt(Dbe)),r2(t,f1t,J2t,ymt(Abe)),r2(t,f1t,TQt,ymt(ime)),r2(t,f1t,Q2t,ymt(nme)),r2(t,f1t,t4t,ymt(ame)),r2(t,f1t,e4t,Ybe),r2(t,f1t,n4t,ymt(Zbe)),r2(t,f1t,i4t,ymt(Kbe)),r2(t,f1t,a4t,ymt(Xbe)),r2(t,f1t,r4t,ymt(Gbe)),r2(t,f1t,Q1t,ymt(Mme)),r2(t,f1t,n0t,ymt(Ebe)),r2(t,f1t,c0t,ymt(kbe)),r2(t,f1t,J1t,ymt(Ome)),r2(t,f1t,i0t,ymt(vbe)),r2(t,f1t,e0t,ymt(Hpe)),r2(t,f1t,d0t,ymt(zpe)),r2(t,f1t,h0t,ymt(Ope)),r2(t,f1t,m0t,ymt(Mpe)),r2(t,f1t,y0t,ymt(Bpe)),r2(t,f1t,v0t,ymt(Npe)),r2(t,f1t,g0t,ymt($pe)),r2(t,f1t,G1t,ymt(Sbe)),r2(t,f1t,Z1t,ymt(Tbe)),r2(t,f1t,Y1t,ymt(pbe)),r2(t,f1t,w0t,ymt(Pbe)),r2(t,f1t,_0t,ymt(Lbe)),r2(t,f1t,W1t,ymt(rbe)),r2(t,f1t,k0t,ymt(Mbe)),r2(t,f1t,S0t,ymt(tbe)),r2(t,f1t,T0t,ymt(ebe)),r2(t,f1t,o4t,ymt(Lpe)),r2(t,f1t,R0t,ymt(Ibe)),r2(t,f1t,$0t,ymt(Epe)),r2(t,f1t,z0t,ymt(kpe)),r2(t,f1t,j0t,ymt(_pe)),r2(t,f1t,H0t,ymt(lbe)),r2(t,f1t,U0t,ymt(cbe)),r2(t,f1t,V0t,ymt(ube)),r2(t,f1t,$Qt,ymt($be)),r2(t,f1t,s4t,ymt(bbe)),r2(t,f1t,YJt,ymt(abe)),r2(t,f1t,c4t,ymt(Zpe)),r2(t,f1t,_Qt,ymt(Gpe)),r2(t,f1t,f0t,ymt(Ppe)),r2(t,f1t,l4t,ymt(eme)),r2(t,f1t,u4t,ymt(Rpe)),r2(t,f1t,d4t,ymt(dbe)),r2(t,f1t,h4t,ymt(Jbe)),r2(t,f1t,f4t,ymt(qbe)),r2(t,f1t,g4t,ymt(Wbe)),r2(t,f1t,o0t,ymt(xbe)),r2(t,f1t,s0t,ymt(Rbe)),r2(t,f1t,p4t,ymt(sme)),r2(t,f1t,K1t,ymt(wpe)),r2(t,f1t,l0t,ymt(_be)),r2(t,f1t,n2t,ymt(Kpe)),r2(t,f1t,i2t,ymt(Ype)),r2(t,f1t,b4t,ymt(Cbe)),r2(t,f1t,u0t,ymt(mbe)),r2(t,f1t,x0t,ymt(Obe)),r2(t,f1t,m4t,ymt(Ime)),r2(t,f1t,q1t,ymt(qpe)),r2(t,f1t,X1t,ymt(ome)),r2(t,f1t,I0t,ymt(Qpe)),r2(t,f1t,a0t,ymt(ybe)),r2(t,f1t,p0t,ymt(Fpe)),r2(t,f1t,y4t,ymt(gbe)),r2(t,f1t,r0t,ymt(wbe)),r2(t,f1t,b0t,ymt(jpe)),r2(t,f1t,a2t,ymt(Ipe)),r2(t,f1t,s2t,ymt(Ape)),r2(t,f1t,c2t,ymt(Spe)),r2(t,f1t,l2t,ymt(Tpe)),r2(t,f1t,r2t,ymt(Dpe)),r2(t,f1t,o2t,ymt(Cpe)),r2(t,f1t,t0t,ymt(obe))}function yGt(t,e){var n;return XOe||(XOe=new Om,JOe=new Om,fGt(),fGt(),vpt(n=new _0(4),"\t\n\r\r "),mQ(XOe,ute,n),mQ(JOe,ute,I$t(n)),vpt(n=new _0(4),fte),mQ(XOe,cte,n),mQ(JOe,cte,I$t(n)),vpt(n=new _0(4),fte),mQ(XOe,cte,n),mQ(JOe,cte,I$t(n)),vpt(n=new _0(4),gte),cHt(n,jz(kJ(XOe,cte),117)),mQ(XOe,lte,n),mQ(JOe,lte,I$t(n)),vpt(n=new _0(4),"-.0:AZ__az\xb7\xb7\xc0\xd6\xd8\xf6\xf8\u0131\u0134\u013e\u0141\u0148\u014a\u017e\u0180\u01c3\u01cd\u01f0\u01f4\u01f5\u01fa\u0217\u0250\u02a8\u02bb\u02c1\u02d0\u02d1\u0300\u0345\u0360\u0361\u0386\u038a\u038c\u038c\u038e\u03a1\u03a3\u03ce\u03d0\u03d6\u03da\u03da\u03dc\u03dc\u03de\u03de\u03e0\u03e0\u03e2\u03f3\u0401\u040c\u040e\u044f\u0451\u045c\u045e\u0481\u0483\u0486\u0490\u04c4\u04c7\u04c8\u04cb\u04cc\u04d0\u04eb\u04ee\u04f5\u04f8\u04f9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05a1\u05a3\u05b9\u05bb\u05bd\u05bf\u05bf\u05c1\u05c2\u05c4\u05c4\u05d0\u05ea\u05f0\u05f2\u0621\u063a\u0640\u0652\u0660\u0669\u0670\u06b7\u06ba\u06be\u06c0\u06ce\u06d0\u06d3\u06d5\u06e8\u06ea\u06ed\u06f0\u06f9\u0901\u0903\u0905\u0939\u093c\u094d\u0951\u0954\u0958\u0963\u0966\u096f\u0981\u0983\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6\u09b9\u09bc\u09bc\u09be\u09c4\u09c7\u09c8\u09cb\u09cd\u09d7\u09d7\u09dc\u09dd\u09df\u09e3\u09e6\u09f1\u0a02\u0a02\u0a05\u0a0a\u0a0f\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3c\u0a3e\u0a42\u0a47\u0a48\u0a4b\u0a4d\u0a59\u0a5c\u0a5e\u0a5e\u0a66\u0a74\u0a81\u0a83\u0a85\u0a8b\u0a8d\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abc\u0ac5\u0ac7\u0ac9\u0acb\u0acd\u0ae0\u0ae0\u0ae6\u0aef\u0b01\u0b03\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b36\u0b39\u0b3c\u0b43\u0b47\u0b48\u0b4b\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f\u0b61\u0b66\u0b6f\u0b82\u0b83\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb5\u0bb7\u0bb9\u0bbe\u0bc2\u0bc6\u0bc8\u0bca\u0bcd\u0bd7\u0bd7\u0be7\u0bef\u0c01\u0c03\u0c05\u0c0c\u0c0e\u0c10\u0c12\u0c28\u0c2a\u0c33\u0c35\u0c39\u0c3e\u0c44\u0c46\u0c48\u0c4a\u0c4d\u0c55\u0c56\u0c60\u0c61\u0c66\u0c6f\u0c82\u0c83\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cbe\u0cc4\u0cc6\u0cc8\u0cca\u0ccd\u0cd5\u0cd6\u0cde\u0cde\u0ce0\u0ce1\u0ce6\u0cef\u0d02\u0d03\u0d05\u0d0c\u0d0e\u0d10\u0d12\u0d28\u0d2a\u0d39\u0d3e\u0d43\u0d46\u0d48\u0d4a\u0d4d\u0d57\u0d57\u0d60\u0d61\u0d66\u0d6f\u0e01\u0e2e\u0e30\u0e3a\u0e40\u0e4e\u0e50\u0e59\u0e81\u0e82\u0e84\u0e84\u0e87\u0e88\u0e8a\u0e8a\u0e8d\u0e8d\u0e94\u0e97\u0e99\u0e9f\u0ea1\u0ea3\u0ea5\u0ea5\u0ea7\u0ea7\u0eaa\u0eab\u0ead\u0eae\u0eb0\u0eb9\u0ebb\u0ebd\u0ec0\u0ec4\u0ec6\u0ec6\u0ec8\u0ecd\u0ed0\u0ed9\u0f18\u0f19\u0f20\u0f29\u0f35\u0f35\u0f37\u0f37\u0f39\u0f39\u0f3e\u0f47\u0f49\u0f69\u0f71\u0f84\u0f86\u0f8b\u0f90\u0f95\u0f97\u0f97\u0f99\u0fad\u0fb1\u0fb7\u0fb9\u0fb9\u10a0\u10c5\u10d0\u10f6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110b\u110c\u110e\u1112\u113c\u113c\u113e\u113e\u1140\u1140\u114c\u114c\u114e\u114e\u1150\u1150\u1154\u1155\u1159\u1159\u115f\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116d\u116e\u1172\u1173\u1175\u1175\u119e\u119e\u11a8\u11a8\u11ab\u11ab\u11ae\u11af\u11b7\u11b8\u11ba\u11ba\u11bc\u11c2\u11eb\u11eb\u11f0\u11f0\u11f9\u11f9\u1e00\u1e9b\u1ea0\u1ef9\u1f00\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u20d0\u20dc\u20e1\u20e1\u2126\u2126\u212a\u212b\u212e\u212e\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302f\u3031\u3035\u3041\u3094\u3099\u309a\u309d\u309e\u30a1\u30fa\u30fc\u30fe\u3105\u312c\u4e00\u9fa5\uac00\ud7a3"),mQ(XOe,dte,n),mQ(JOe,dte,I$t(n)),vpt(n=new _0(4),gte),KNt(n,95,95),KNt(n,58,58),mQ(XOe,hte,n),mQ(JOe,hte,I$t(n))),jz(kJ(e?XOe:JOe,t),136)}function vGt(t){GLt(t.a,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"anySimpleType"])),GLt(t.b,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"anyType",j8t,P8t])),GLt(jz(Yet(GK(t.b),0),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,y9t,t5t,":mixed"])),GLt(jz(Yet(GK(t.b),1),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,y9t,k9t,C9t,t5t,":1",N9t,"lax"])),GLt(jz(Yet(GK(t.b),2),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,b9t,k9t,C9t,t5t,":2",N9t,"lax"])),GLt(t.c,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"anyURI",_9t,v9t])),GLt(t.d,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"base64Binary",_9t,v9t])),GLt(t.e,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,IGt,_9t,v9t])),GLt(t.f,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"boolean:Object",X8t,IGt])),GLt(t.g,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,E8t])),GLt(t.i,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"byte:Object",X8t,E8t])),GLt(t.j,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"date",_9t,v9t])),GLt(t.k,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"dateTime",_9t,v9t])),GLt(t.n,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"decimal",_9t,v9t])),GLt(t.o,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,S8t,_9t,v9t])),GLt(t.p,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"double:Object",X8t,S8t])),GLt(t.q,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"duration",_9t,v9t])),GLt(t.s,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"ENTITIES",X8t,B9t,P9t,"1"])),GLt(t.r,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,B9t,w9t,F9t])),GLt(t.t,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,F9t,X8t,j9t])),GLt(t.u,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,T8t,_9t,v9t])),GLt(t.v,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"float:Object",X8t,T8t])),GLt(t.w,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"gDay",_9t,v9t])),GLt(t.B,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"gMonth",_9t,v9t])),GLt(t.A,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"gMonthDay",_9t,v9t])),GLt(t.C,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"gYear",_9t,v9t])),GLt(t.D,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"gYearMonth",_9t,v9t])),GLt(t.F,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"hexBinary",_9t,v9t])),GLt(t.G,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"ID",X8t,j9t])),GLt(t.H,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"IDREF",X8t,j9t])),GLt(t.J,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"IDREFS",X8t,$9t,P9t,"1"])),GLt(t.I,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,$9t,w9t,"IDREF"])),GLt(t.K,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,A8t])),GLt(t.M,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,z9t])),GLt(t.L,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"int:Object",X8t,A8t])),GLt(t.P,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"language",X8t,H9t,U9t,V9t])),GLt(t.Q,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,D8t])),GLt(t.R,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"long:Object",X8t,D8t])),GLt(t.S,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"Name",X8t,H9t,U9t,q9t])),GLt(t.T,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,j9t,X8t,"Name",U9t,W9t])),GLt(t.U,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"negativeInteger",X8t,Y9t,G9t,"-1"])),GLt(t.V,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,Z9t,X8t,H9t,U9t,"\\c+"])),GLt(t.X,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"NMTOKENS",X8t,K9t,P9t,"1"])),GLt(t.W,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,K9t,w9t,Z9t])),GLt(t.Y,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,X9t,X8t,z9t,J9t,"0"])),GLt(t.Z,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,Y9t,X8t,z9t,G9t,"0"])),GLt(t.$,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,Q9t,X8t,OGt,_9t,"replace"])),GLt(t._,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"NOTATION",_9t,v9t])),GLt(t.ab,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"positiveInteger",X8t,X9t,J9t,"1"])),GLt(t.bb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"processingInstruction_._type",j8t,"empty"])),GLt(jz(Yet(GK(t.bb),0),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,p9t,t5t,"data"])),GLt(jz(Yet(GK(t.bb),1),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,p9t,t5t,K7t])),GLt(t.cb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"QName",_9t,v9t])),GLt(t.db,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,I8t])),GLt(t.eb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"short:Object",X8t,I8t])),GLt(t.fb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"simpleAnyType",j8t,g9t])),GLt(jz(Yet(GK(t.fb),0),34),F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,":3",j8t,g9t])),GLt(jz(Yet(GK(t.fb),1),34),F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,":4",j8t,g9t])),GLt(jz(Yet(GK(t.fb),2),18),F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,":5",j8t,g9t])),GLt(t.gb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,OGt,_9t,"preserve"])),GLt(t.hb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"time",_9t,v9t])),GLt(t.ib,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,H9t,X8t,Q9t,_9t,v9t])),GLt(t.jb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,tte,G9t,"255",J9t,"0"])),GLt(t.kb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"unsignedByte:Object",X8t,tte])),GLt(t.lb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,ete,G9t,"4294967295",J9t,"0"])),GLt(t.mb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"unsignedInt:Object",X8t,ete])),GLt(t.nb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"unsignedLong",X8t,X9t,G9t,nte,J9t,"0"])),GLt(t.ob,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,ite,G9t,"65535",J9t,"0"])),GLt(t.pb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"unsignedShort:Object",X8t,ite])),GLt(t.qb,F8t,Cst(Hx(zee,1),cZt,2,6,[t5t,"",j8t,P8t])),GLt(jz(Yet(GK(t.qb),0),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,y9t,t5t,":mixed"])),GLt(jz(Yet(GK(t.qb),1),18),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,p9t,t5t,"xmlns:prefix"])),GLt(jz(Yet(GK(t.qb),2),18),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,p9t,t5t,"xsi:schemaLocation"])),GLt(jz(Yet(GK(t.qb),3),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,m9t,t5t,"cDATA",x9t,R9t])),GLt(jz(Yet(GK(t.qb),4),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,m9t,t5t,"comment",x9t,R9t])),GLt(jz(Yet(GK(t.qb),5),18),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,m9t,t5t,ate,x9t,R9t])),GLt(jz(Yet(GK(t.qb),6),34),F8t,Cst(Hx(zee,1),cZt,2,6,[j8t,m9t,t5t,A7t,x9t,R9t]))}function wGt(t){return mF("_UI_EMFDiagnostic_marker",t)?"EMF Problem":mF("_UI_CircularContainment_diagnostic",t)?"An object may not circularly contain itself":mF(f5t,t)?"Wrong character.":mF(g5t,t)?"Invalid reference number.":mF(p5t,t)?"A character is required after \\.":mF(b5t,t)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":mF(m5t,t)?"'(?<' or '(?<!' is expected.":mF(y5t,t)?"A comment is not terminated.":mF(v5t,t)?"')' is expected.":mF(w5t,t)?"Unexpected end of the pattern in a modifier group.":mF(x5t,t)?"':' is expected.":mF(R5t,t)?"Unexpected end of the pattern in a conditional group.":mF(_5t,t)?"A back reference or an anchor or a lookahead or a look-behind is expected in a conditional pattern.":mF(k5t,t)?"There are more than three choices in a conditional group.":mF(E5t,t)?"A character in U+0040-U+005f must follow \\c.":mF(C5t,t)?"A '{' is required before a character category.":mF(S5t,t)?"A property name is not closed by '}'.":mF(T5t,t)?"Unexpected meta character.":mF(A5t,t)?"Unknown property.":mF(D5t,t)?"A POSIX character class must be closed by ':]'.":mF(I5t,t)?"Unexpected end of the pattern in a character class.":mF(L5t,t)?"Unknown name for a POSIX character class.":mF("parser.cc.4",t)?"'-' is invalid here.":mF(O5t,t)?"']' is expected.":mF(M5t,t)?"'[' is invalid in a character class. Write '\\['.":mF(N5t,t)?"']' is invalid in a character class. Write '\\]'.":mF(B5t,t)?"'-' is an invalid character range. Write '\\-'.":mF(P5t,t)?"'[' is expected.":mF(F5t,t)?"')' or '-[' or '+[' or '&[' is expected.":mF(j5t,t)?"The range end code point is less than the start code point.":mF($5t,t)?"Invalid Unicode hex notation.":mF(z5t,t)?"Overflow in a hex notation.":mF(H5t,t)?"'\\x{' must be closed by '}'.":mF(U5t,t)?"Invalid Unicode code point.":mF(V5t,t)?"An anchor must not be here.":mF(q5t,t)?"This expression is not supported in the current option setting.":mF(W5t,t)?"Invalid quantifier. A digit is expected.":mF(Y5t,t)?"Invalid quantifier. Invalid quantity or a '}' is missing.":mF(G5t,t)?"Invalid quantifier. A digit or '}' is expected.":mF(Z5t,t)?"Invalid quantifier. A min quantity must be <= a max quantity.":mF(K5t,t)?"Invalid quantifier. A quantity value overflow.":mF("_UI_PackageRegistry_extensionpoint",t)?"Ecore Package Registry for Generated Packages":mF("_UI_DynamicPackageRegistry_extensionpoint",t)?"Ecore Package Registry for Dynamic Packages":mF("_UI_FactoryRegistry_extensionpoint",t)?"Ecore Factory Override Registry":mF("_UI_URIExtensionParserRegistry_extensionpoint",t)?"URI Extension Parser Registry":mF("_UI_URIProtocolParserRegistry_extensionpoint",t)?"URI Protocol Parser Registry":mF("_UI_URIContentParserRegistry_extensionpoint",t)?"URI Content Parser Registry":mF("_UI_ContentHandlerRegistry_extensionpoint",t)?"Content Handler Registry":mF("_UI_URIMappingRegistry_extensionpoint",t)?"URI Converter Mapping Registry":mF("_UI_PackageRegistryImplementation_extensionpoint",t)?"Ecore Package Registry Implementation":mF("_UI_ValidationDelegateRegistry_extensionpoint",t)?"Validation Delegate Registry":mF("_UI_SettingDelegateRegistry_extensionpoint",t)?"Feature Setting Delegate Factory Registry":mF("_UI_InvocationDelegateRegistry_extensionpoint",t)?"Operation Invocation Delegate Factory Registry":mF("_UI_EClassInterfaceNotAbstract_diagnostic",t)?"A class that is an interface must also be abstract":mF("_UI_EClassNoCircularSuperTypes_diagnostic",t)?"A class may not be a super type of itself":mF("_UI_EClassNotWellFormedMapEntryNoInstanceClassName_diagnostic",t)?"A class that inherits from a map entry class must have instance class name 'java.util.Map$Entry'":mF("_UI_EReferenceOppositeOfOppositeInconsistent_diagnostic",t)?"The opposite of the opposite may not be a reference different from this one":mF("_UI_EReferenceOppositeNotFeatureOfType_diagnostic",t)?"The opposite must be a feature of the reference's type":mF("_UI_EReferenceTransientOppositeNotTransient_diagnostic",t)?"The opposite of a transient reference must be transient if it is proxy resolving":mF("_UI_EReferenceOppositeBothContainment_diagnostic",t)?"The opposite of a containment reference must not be a containment reference":mF("_UI_EReferenceConsistentUnique_diagnostic",t)?"A containment or bidirectional reference must be unique if its upper bound is different from 1":mF("_UI_ETypedElementNoType_diagnostic",t)?"The typed element must have a type":mF("_UI_EAttributeNoDataType_diagnostic",t)?"The generic attribute type must not refer to a class":mF("_UI_EReferenceNoClass_diagnostic",t)?"The generic reference type must not refer to a data type":mF("_UI_EGenericTypeNoTypeParameterAndClassifier_diagnostic",t)?"A generic type can't refer to both a type parameter and a classifier":mF("_UI_EGenericTypeNoClass_diagnostic",t)?"A generic super type must refer to a class":mF("_UI_EGenericTypeNoTypeParameterOrClassifier_diagnostic",t)?"A generic type in this context must refer to a classifier or a type parameter":mF("_UI_EGenericTypeBoundsOnlyForTypeArgument_diagnostic",t)?"A generic type may have bounds only when used as a type argument":mF("_UI_EGenericTypeNoUpperAndLowerBound_diagnostic",t)?"A generic type must not have both a lower and an upper bound":mF("_UI_EGenericTypeNoTypeParameterOrClassifierAndBound_diagnostic",t)?"A generic type with bounds must not also refer to a type parameter or classifier":mF("_UI_EGenericTypeNoArguments_diagnostic",t)?"A generic type may have arguments only if it refers to a classifier":mF("_UI_EGenericTypeOutOfScopeTypeParameter_diagnostic",t)?"A generic type may only refer to a type parameter that is in scope":t}function xGt(t){var e,n,i,a,r,o,s;t.r||(t.r=!0,Oat(t,"graph"),Mat(t,"graph"),Nat(t,v7t),ast(t.o,"T"),l8(vX(t.a),t.p),l8(vX(t.f),t.a),l8(vX(t.n),t.f),l8(vX(t.g),t.n),l8(vX(t.c),t.n),l8(vX(t.i),t.c),l8(vX(t.j),t.c),l8(vX(t.d),t.f),l8(vX(t.e),t.a),U0(t.p,qae,AJt,!0,!0,!1),s=_st(o=ylt(t.p,t.p,"setProperty")),e=XZ(t.o),n=new Bm,l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),w_t(n,i=JZ(s)),qRt(o,e,x7t),qRt(o,e=JZ(s),R7t),s=_st(o=ylt(t.p,null,"getProperty")),e=XZ(t.o),n=JZ(s),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),qRt(o,e,x7t),(r=zkt(o,e=JZ(s),null))&&r.Fi(),o=ylt(t.p,t.wb.e,"hasProperty"),e=XZ(t.o),n=new Bm,l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),qRt(o,e,x7t),Iwt(o=ylt(t.p,t.p,"copyProperties"),t.p,_7t),o=ylt(t.p,null,"getAllProperties"),e=XZ(t.wb.P),n=XZ(t.o),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),i=new Bm,l8((!n.d&&(n.d=new DO(WIe,n,1)),n.d),i),n=XZ(t.wb.M),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),(a=zkt(o,e,null))&&a.Fi(),U0(t.a,IDe,V6t,!0,!1,!0),kwt(jz(Yet(GK(t.a),0),18),t.k,null,k7t,0,-1,IDe,!1,!1,!0,!0,!1,!1,!1),U0(t.f,ODe,W6t,!0,!1,!0),kwt(jz(Yet(GK(t.f),0),18),t.g,jz(Yet(GK(t.g),0),18),"labels",0,-1,ODe,!1,!1,!0,!0,!1,!1,!1),ort(jz(Yet(GK(t.f),1),34),t.wb._,E7t,null,0,1,ODe,!1,!1,!0,!1,!0,!1),U0(t.n,MDe,"ElkShape",!0,!1,!0),ort(jz(Yet(GK(t.n),0),34),t.wb.t,C7t,YKt,1,1,MDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.n),1),34),t.wb.t,S7t,YKt,1,1,MDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.n),2),34),t.wb.t,"x",YKt,1,1,MDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.n),3),34),t.wb.t,"y",YKt,1,1,MDe,!1,!1,!0,!1,!0,!1),Iwt(o=ylt(t.n,null,"setDimensions"),t.wb.t,S7t),Iwt(o,t.wb.t,C7t),Iwt(o=ylt(t.n,null,"setLocation"),t.wb.t,"x"),Iwt(o,t.wb.t,"y"),U0(t.g,HDe,J6t,!1,!1,!0),kwt(jz(Yet(GK(t.g),0),18),t.f,jz(Yet(GK(t.f),0),18),T7t,0,1,HDe,!1,!1,!0,!1,!1,!1,!1),ort(jz(Yet(GK(t.g),1),34),t.wb._,A7t,"",0,1,HDe,!1,!1,!0,!1,!0,!1),U0(t.c,NDe,Y6t,!0,!1,!0),kwt(jz(Yet(GK(t.c),0),18),t.d,jz(Yet(GK(t.d),1),18),"outgoingEdges",0,-1,NDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.c),1),18),t.d,jz(Yet(GK(t.d),2),18),"incomingEdges",0,-1,NDe,!1,!1,!0,!1,!0,!1,!1),U0(t.i,UDe,Q6t,!1,!1,!0),kwt(jz(Yet(GK(t.i),0),18),t.j,jz(Yet(GK(t.j),0),18),"ports",0,-1,UDe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.i),1),18),t.i,jz(Yet(GK(t.i),2),18),D7t,0,-1,UDe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.i),2),18),t.i,jz(Yet(GK(t.i),1),18),T7t,0,1,UDe,!1,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.i),3),18),t.d,jz(Yet(GK(t.d),0),18),"containedEdges",0,-1,UDe,!1,!1,!0,!0,!1,!1,!1),ort(jz(Yet(GK(t.i),4),34),t.wb.e,I7t,null,0,1,UDe,!0,!0,!1,!1,!0,!0),U0(t.j,VDe,t7t,!1,!1,!0),kwt(jz(Yet(GK(t.j),0),18),t.i,jz(Yet(GK(t.i),0),18),T7t,0,1,VDe,!1,!1,!0,!1,!1,!1,!1),U0(t.d,BDe,G6t,!1,!1,!0),kwt(jz(Yet(GK(t.d),0),18),t.i,jz(Yet(GK(t.i),3),18),"containingNode",0,1,BDe,!1,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.d),1),18),t.c,jz(Yet(GK(t.c),0),18),L7t,0,-1,BDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.d),2),18),t.c,jz(Yet(GK(t.c),1),18),O7t,0,-1,BDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.d),3),18),t.e,jz(Yet(GK(t.e),5),18),M7t,0,-1,BDe,!1,!1,!0,!0,!1,!1,!1),ort(jz(Yet(GK(t.d),4),34),t.wb.e,"hyperedge",null,0,1,BDe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.d),5),34),t.wb.e,I7t,null,0,1,BDe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.d),6),34),t.wb.e,"selfloop",null,0,1,BDe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.d),7),34),t.wb.e,"connected",null,0,1,BDe,!0,!0,!1,!1,!0,!0),U0(t.b,LDe,q6t,!1,!1,!0),ort(jz(Yet(GK(t.b),0),34),t.wb.t,"x",YKt,1,1,LDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.b),1),34),t.wb.t,"y",YKt,1,1,LDe,!1,!1,!0,!1,!0,!1),Iwt(o=ylt(t.b,null,"set"),t.wb.t,"x"),Iwt(o,t.wb.t,"y"),U0(t.e,PDe,Z6t,!1,!1,!0),ort(jz(Yet(GK(t.e),0),34),t.wb.t,"startX",null,0,1,PDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.e),1),34),t.wb.t,"startY",null,0,1,PDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.e),2),34),t.wb.t,"endX",null,0,1,PDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.e),3),34),t.wb.t,"endY",null,0,1,PDe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.e),4),18),t.b,null,N7t,0,-1,PDe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.e),5),18),t.d,jz(Yet(GK(t.d),3),18),T7t,0,1,PDe,!1,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.e),6),18),t.c,null,B7t,0,1,PDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.e),7),18),t.c,null,P7t,0,1,PDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.e),8),18),t.e,jz(Yet(GK(t.e),9),18),F7t,0,-1,PDe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.e),9),18),t.e,jz(Yet(GK(t.e),8),18),j7t,0,-1,PDe,!1,!1,!0,!1,!0,!1,!1),ort(jz(Yet(GK(t.e),10),34),t.wb._,E7t,null,0,1,PDe,!1,!1,!0,!1,!0,!1),Iwt(o=ylt(t.e,null,"setStartLocation"),t.wb.t,"x"),Iwt(o,t.wb.t,"y"),Iwt(o=ylt(t.e,null,"setEndLocation"),t.wb.t,"x"),Iwt(o,t.wb.t,"y"),U0(t.k,zte,"ElkPropertyToValueMapEntry",!1,!1,!1),e=XZ(t.o),n=new Bm,l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),FDt(jz(Yet(GK(t.k),0),34),e,"key",zte,!1,!1,!0,!1),ort(jz(Yet(GK(t.k),1),34),t.s,R7t,null,0,1,zte,!1,!1,!0,!1,!0,!1),fZ(t.o,rEe,"IProperty",!0),fZ(t.s,Dte,"PropertyValue",!0),Lut(t,v7t))}function RGt(){RGt=D,(ZOe=O5(IMe,m7t,25,$Kt,15,1))[9]=35,ZOe[10]=19,ZOe[13]=19,ZOe[32]=51,ZOe[33]=49,ZOe[34]=33,yW(ZOe,35,38,49),ZOe[38]=1,yW(ZOe,39,45,49),yW(ZOe,45,47,-71),ZOe[47]=49,yW(ZOe,48,58,-71),ZOe[58]=61,ZOe[59]=49,ZOe[60]=1,ZOe[61]=49,ZOe[62]=33,yW(ZOe,63,65,49),yW(ZOe,65,91,-3),yW(ZOe,91,93,33),ZOe[93]=1,ZOe[94]=33,ZOe[95]=-3,ZOe[96]=33,yW(ZOe,97,123,-3),yW(ZOe,123,183,33),ZOe[183]=-87,yW(ZOe,184,192,33),yW(ZOe,192,215,-19),ZOe[215]=33,yW(ZOe,216,247,-19),ZOe[247]=33,yW(ZOe,248,306,-19),yW(ZOe,306,308,33),yW(ZOe,308,319,-19),yW(ZOe,319,321,33),yW(ZOe,321,329,-19),ZOe[329]=33,yW(ZOe,330,383,-19),ZOe[383]=33,yW(ZOe,384,452,-19),yW(ZOe,452,461,33),yW(ZOe,461,497,-19),yW(ZOe,497,500,33),yW(ZOe,500,502,-19),yW(ZOe,502,506,33),yW(ZOe,506,536,-19),yW(ZOe,536,592,33),yW(ZOe,592,681,-19),yW(ZOe,681,699,33),yW(ZOe,699,706,-19),yW(ZOe,706,720,33),yW(ZOe,720,722,-87),yW(ZOe,722,768,33),yW(ZOe,768,838,-87),yW(ZOe,838,864,33),yW(ZOe,864,866,-87),yW(ZOe,866,902,33),ZOe[902]=-19,ZOe[903]=-87,yW(ZOe,904,907,-19),ZOe[907]=33,ZOe[908]=-19,ZOe[909]=33,yW(ZOe,910,930,-19),ZOe[930]=33,yW(ZOe,931,975,-19),ZOe[975]=33,yW(ZOe,976,983,-19),yW(ZOe,983,986,33),ZOe[986]=-19,ZOe[987]=33,ZOe[988]=-19,ZOe[989]=33,ZOe[990]=-19,ZOe[991]=33,ZOe[992]=-19,ZOe[993]=33,yW(ZOe,994,1012,-19),yW(ZOe,1012,1025,33),yW(ZOe,1025,1037,-19),ZOe[1037]=33,yW(ZOe,1038,1104,-19),ZOe[1104]=33,yW(ZOe,1105,1117,-19),ZOe[1117]=33,yW(ZOe,1118,1154,-19),ZOe[1154]=33,yW(ZOe,1155,1159,-87),yW(ZOe,1159,1168,33),yW(ZOe,1168,1221,-19),yW(ZOe,1221,1223,33),yW(ZOe,1223,1225,-19),yW(ZOe,1225,1227,33),yW(ZOe,1227,1229,-19),yW(ZOe,1229,1232,33),yW(ZOe,1232,1260,-19),yW(ZOe,1260,1262,33),yW(ZOe,1262,1270,-19),yW(ZOe,1270,1272,33),yW(ZOe,1272,1274,-19),yW(ZOe,1274,1329,33),yW(ZOe,1329,1367,-19),yW(ZOe,1367,1369,33),ZOe[1369]=-19,yW(ZOe,1370,1377,33),yW(ZOe,1377,1415,-19),yW(ZOe,1415,1425,33),yW(ZOe,1425,1442,-87),ZOe[1442]=33,yW(ZOe,1443,1466,-87),ZOe[1466]=33,yW(ZOe,1467,1470,-87),ZOe[1470]=33,ZOe[1471]=-87,ZOe[1472]=33,yW(ZOe,1473,1475,-87),ZOe[1475]=33,ZOe[1476]=-87,yW(ZOe,1477,1488,33),yW(ZOe,1488,1515,-19),yW(ZOe,1515,1520,33),yW(ZOe,1520,1523,-19),yW(ZOe,1523,1569,33),yW(ZOe,1569,1595,-19),yW(ZOe,1595,1600,33),ZOe[1600]=-87,yW(ZOe,1601,1611,-19),yW(ZOe,1611,1619,-87),yW(ZOe,1619,1632,33),yW(ZOe,1632,1642,-87),yW(ZOe,1642,1648,33),ZOe[1648]=-87,yW(ZOe,1649,1720,-19),yW(ZOe,1720,1722,33),yW(ZOe,1722,1727,-19),ZOe[1727]=33,yW(ZOe,1728,1743,-19),ZOe[1743]=33,yW(ZOe,1744,1748,-19),ZOe[1748]=33,ZOe[1749]=-19,yW(ZOe,1750,1765,-87),yW(ZOe,1765,1767,-19),yW(ZOe,1767,1769,-87),ZOe[1769]=33,yW(ZOe,1770,1774,-87),yW(ZOe,1774,1776,33),yW(ZOe,1776,1786,-87),yW(ZOe,1786,2305,33),yW(ZOe,2305,2308,-87),ZOe[2308]=33,yW(ZOe,2309,2362,-19),yW(ZOe,2362,2364,33),ZOe[2364]=-87,ZOe[2365]=-19,yW(ZOe,2366,2382,-87),yW(ZOe,2382,2385,33),yW(ZOe,2385,2389,-87),yW(ZOe,2389,2392,33),yW(ZOe,2392,2402,-19),yW(ZOe,2402,2404,-87),yW(ZOe,2404,2406,33),yW(ZOe,2406,2416,-87),yW(ZOe,2416,2433,33),yW(ZOe,2433,2436,-87),ZOe[2436]=33,yW(ZOe,2437,2445,-19),yW(ZOe,2445,2447,33),yW(ZOe,2447,2449,-19),yW(ZOe,2449,2451,33),yW(ZOe,2451,2473,-19),ZOe[2473]=33,yW(ZOe,2474,2481,-19),ZOe[2481]=33,ZOe[2482]=-19,yW(ZOe,2483,2486,33),yW(ZOe,2486,2490,-19),yW(ZOe,2490,2492,33),ZOe[2492]=-87,ZOe[2493]=33,yW(ZOe,2494,2501,-87),yW(ZOe,2501,2503,33),yW(ZOe,2503,2505,-87),yW(ZOe,2505,2507,33),yW(ZOe,2507,2510,-87),yW(ZOe,2510,2519,33),ZOe[2519]=-87,yW(ZOe,2520,2524,33),yW(ZOe,2524,2526,-19),ZOe[2526]=33,yW(ZOe,2527,2530,-19),yW(ZOe,2530,2532,-87),yW(ZOe,2532,2534,33),yW(ZOe,2534,2544,-87),yW(ZOe,2544,2546,-19),yW(ZOe,2546,2562,33),ZOe[2562]=-87,yW(ZOe,2563,2565,33),yW(ZOe,2565,2571,-19),yW(ZOe,2571,2575,33),yW(ZOe,2575,2577,-19),yW(ZOe,2577,2579,33),yW(ZOe,2579,2601,-19),ZOe[2601]=33,yW(ZOe,2602,2609,-19),ZOe[2609]=33,yW(ZOe,2610,2612,-19),ZOe[2612]=33,yW(ZOe,2613,2615,-19),ZOe[2615]=33,yW(ZOe,2616,2618,-19),yW(ZOe,2618,2620,33),ZOe[2620]=-87,ZOe[2621]=33,yW(ZOe,2622,2627,-87),yW(ZOe,2627,2631,33),yW(ZOe,2631,2633,-87),yW(ZOe,2633,2635,33),yW(ZOe,2635,2638,-87),yW(ZOe,2638,2649,33),yW(ZOe,2649,2653,-19),ZOe[2653]=33,ZOe[2654]=-19,yW(ZOe,2655,2662,33),yW(ZOe,2662,2674,-87),yW(ZOe,2674,2677,-19),yW(ZOe,2677,2689,33),yW(ZOe,2689,2692,-87),ZOe[2692]=33,yW(ZOe,2693,2700,-19),ZOe[2700]=33,ZOe[2701]=-19,ZOe[2702]=33,yW(ZOe,2703,2706,-19),ZOe[2706]=33,yW(ZOe,2707,2729,-19),ZOe[2729]=33,yW(ZOe,2730,2737,-19),ZOe[2737]=33,yW(ZOe,2738,2740,-19),ZOe[2740]=33,yW(ZOe,2741,2746,-19),yW(ZOe,2746,2748,33),ZOe[2748]=-87,ZOe[2749]=-19,yW(ZOe,2750,2758,-87),ZOe[2758]=33,yW(ZOe,2759,2762,-87),ZOe[2762]=33,yW(ZOe,2763,2766,-87),yW(ZOe,2766,2784,33),ZOe[2784]=-19,yW(ZOe,2785,2790,33),yW(ZOe,2790,2800,-87),yW(ZOe,2800,2817,33),yW(ZOe,2817,2820,-87),ZOe[2820]=33,yW(ZOe,2821,2829,-19),yW(ZOe,2829,2831,33),yW(ZOe,2831,2833,-19),yW(ZOe,2833,2835,33),yW(ZOe,2835,2857,-19),ZOe[2857]=33,yW(ZOe,2858,2865,-19),ZOe[2865]=33,yW(ZOe,2866,2868,-19),yW(ZOe,2868,2870,33),yW(ZOe,2870,2874,-19),yW(ZOe,2874,2876,33),ZOe[2876]=-87,ZOe[2877]=-19,yW(ZOe,2878,2884,-87),yW(ZOe,2884,2887,33),yW(ZOe,2887,2889,-87),yW(ZOe,2889,2891,33),yW(ZOe,2891,2894,-87),yW(ZOe,2894,2902,33),yW(ZOe,2902,2904,-87),yW(ZOe,2904,2908,33),yW(ZOe,2908,2910,-19),ZOe[2910]=33,yW(ZOe,2911,2914,-19),yW(ZOe,2914,2918,33),yW(ZOe,2918,2928,-87),yW(ZOe,2928,2946,33),yW(ZOe,2946,2948,-87),ZOe[2948]=33,yW(ZOe,2949,2955,-19),yW(ZOe,2955,2958,33),yW(ZOe,2958,2961,-19),ZOe[2961]=33,yW(ZOe,2962,2966,-19),yW(ZOe,2966,2969,33),yW(ZOe,2969,2971,-19),ZOe[2971]=33,ZOe[2972]=-19,ZOe[2973]=33,yW(ZOe,2974,2976,-19),yW(ZOe,2976,2979,33),yW(ZOe,2979,2981,-19),yW(ZOe,2981,2984,33),yW(ZOe,2984,2987,-19),yW(ZOe,2987,2990,33),yW(ZOe,2990,2998,-19),ZOe[2998]=33,yW(ZOe,2999,3002,-19),yW(ZOe,3002,3006,33),yW(ZOe,3006,3011,-87),yW(ZOe,3011,3014,33),yW(ZOe,3014,3017,-87),ZOe[3017]=33,yW(ZOe,3018,3022,-87),yW(ZOe,3022,3031,33),ZOe[3031]=-87,yW(ZOe,3032,3047,33),yW(ZOe,3047,3056,-87),yW(ZOe,3056,3073,33),yW(ZOe,3073,3076,-87),ZOe[3076]=33,yW(ZOe,3077,3085,-19),ZOe[3085]=33,yW(ZOe,3086,3089,-19),ZOe[3089]=33,yW(ZOe,3090,3113,-19),ZOe[3113]=33,yW(ZOe,3114,3124,-19),ZOe[3124]=33,yW(ZOe,3125,3130,-19),yW(ZOe,3130,3134,33),yW(ZOe,3134,3141,-87),ZOe[3141]=33,yW(ZOe,3142,3145,-87),ZOe[3145]=33,yW(ZOe,3146,3150,-87),yW(ZOe,3150,3157,33),yW(ZOe,3157,3159,-87),yW(ZOe,3159,3168,33),yW(ZOe,3168,3170,-19),yW(ZOe,3170,3174,33),yW(ZOe,3174,3184,-87),yW(ZOe,3184,3202,33),yW(ZOe,3202,3204,-87),ZOe[3204]=33,yW(ZOe,3205,3213,-19),ZOe[3213]=33,yW(ZOe,3214,3217,-19),ZOe[3217]=33,yW(ZOe,3218,3241,-19),ZOe[3241]=33,yW(ZOe,3242,3252,-19),ZOe[3252]=33,yW(ZOe,3253,3258,-19),yW(ZOe,3258,3262,33),yW(ZOe,3262,3269,-87),ZOe[3269]=33,yW(ZOe,3270,3273,-87),ZOe[3273]=33,yW(ZOe,3274,3278,-87),yW(ZOe,3278,3285,33),yW(ZOe,3285,3287,-87),yW(ZOe,3287,3294,33),ZOe[3294]=-19,ZOe[3295]=33,yW(ZOe,3296,3298,-19),yW(ZOe,3298,3302,33),yW(ZOe,3302,3312,-87),yW(ZOe,3312,3330,33),yW(ZOe,3330,3332,-87),ZOe[3332]=33,yW(ZOe,3333,3341,-19),ZOe[3341]=33,yW(ZOe,3342,3345,-19),ZOe[3345]=33,yW(ZOe,3346,3369,-19),ZOe[3369]=33,yW(ZOe,3370,3386,-19),yW(ZOe,3386,3390,33),yW(ZOe,3390,3396,-87),yW(ZOe,3396,3398,33),yW(ZOe,3398,3401,-87),ZOe[3401]=33,yW(ZOe,3402,3406,-87),yW(ZOe,3406,3415,33),ZOe[3415]=-87,yW(ZOe,3416,3424,33),yW(ZOe,3424,3426,-19),yW(ZOe,3426,3430,33),yW(ZOe,3430,3440,-87),yW(ZOe,3440,3585,33),yW(ZOe,3585,3631,-19),ZOe[3631]=33,ZOe[3632]=-19,ZOe[3633]=-87,yW(ZOe,3634,3636,-19),yW(ZOe,3636,3643,-87),yW(ZOe,3643,3648,33),yW(ZOe,3648,3654,-19),yW(ZOe,3654,3663,-87),ZOe[3663]=33,yW(ZOe,3664,3674,-87),yW(ZOe,3674,3713,33),yW(ZOe,3713,3715,-19),ZOe[3715]=33,ZOe[3716]=-19,yW(ZOe,3717,3719,33),yW(ZOe,3719,3721,-19),ZOe[3721]=33,ZOe[3722]=-19,yW(ZOe,3723,3725,33),ZOe[3725]=-19,yW(ZOe,3726,3732,33),yW(ZOe,3732,3736,-19),ZOe[3736]=33,yW(ZOe,3737,3744,-19),ZOe[3744]=33,yW(ZOe,3745,3748,-19),ZOe[3748]=33,ZOe[3749]=-19,ZOe[3750]=33,ZOe[3751]=-19,yW(ZOe,3752,3754,33),yW(ZOe,3754,3756,-19),ZOe[3756]=33,yW(ZOe,3757,3759,-19),ZOe[3759]=33,ZOe[3760]=-19,ZOe[3761]=-87,yW(ZOe,3762,3764,-19),yW(ZOe,3764,3770,-87),ZOe[3770]=33,yW(ZOe,3771,3773,-87),ZOe[3773]=-19,yW(ZOe,3774,3776,33),yW(ZOe,3776,3781,-19),ZOe[3781]=33,ZOe[3782]=-87,ZOe[3783]=33,yW(ZOe,3784,3790,-87),yW(ZOe,3790,3792,33),yW(ZOe,3792,3802,-87),yW(ZOe,3802,3864,33),yW(ZOe,3864,3866,-87),yW(ZOe,3866,3872,33),yW(ZOe,3872,3882,-87),yW(ZOe,3882,3893,33),ZOe[3893]=-87,ZOe[3894]=33,ZOe[3895]=-87,ZOe[3896]=33,ZOe[3897]=-87,yW(ZOe,3898,3902,33),yW(ZOe,3902,3904,-87),yW(ZOe,3904,3912,-19),ZOe[3912]=33,yW(ZOe,3913,3946,-19),yW(ZOe,3946,3953,33),yW(ZOe,3953,3973,-87),ZOe[3973]=33,yW(ZOe,3974,3980,-87),yW(ZOe,3980,3984,33),yW(ZOe,3984,3990,-87),ZOe[3990]=33,ZOe[3991]=-87,ZOe[3992]=33,yW(ZOe,3993,4014,-87),yW(ZOe,4014,4017,33),yW(ZOe,4017,4024,-87),ZOe[4024]=33,ZOe[4025]=-87,yW(ZOe,4026,4256,33),yW(ZOe,4256,4294,-19),yW(ZOe,4294,4304,33),yW(ZOe,4304,4343,-19),yW(ZOe,4343,4352,33),ZOe[4352]=-19,ZOe[4353]=33,yW(ZOe,4354,4356,-19),ZOe[4356]=33,yW(ZOe,4357,4360,-19),ZOe[4360]=33,ZOe[4361]=-19,ZOe[4362]=33,yW(ZOe,4363,4365,-19),ZOe[4365]=33,yW(ZOe,4366,4371,-19),yW(ZOe,4371,4412,33),ZOe[4412]=-19,ZOe[4413]=33,ZOe[4414]=-19,ZOe[4415]=33,ZOe[4416]=-19,yW(ZOe,4417,4428,33),ZOe[4428]=-19,ZOe[4429]=33,ZOe[4430]=-19,ZOe[4431]=33,ZOe[4432]=-19,yW(ZOe,4433,4436,33),yW(ZOe,4436,4438,-19),yW(ZOe,4438,4441,33),ZOe[4441]=-19,yW(ZOe,4442,4447,33),yW(ZOe,4447,4450,-19),ZOe[4450]=33,ZOe[4451]=-19,ZOe[4452]=33,ZOe[4453]=-19,ZOe[4454]=33,ZOe[4455]=-19,ZOe[4456]=33,ZOe[4457]=-19,yW(ZOe,4458,4461,33),yW(ZOe,4461,4463,-19),yW(ZOe,4463,4466,33),yW(ZOe,4466,4468,-19),ZOe[4468]=33,ZOe[4469]=-19,yW(ZOe,4470,4510,33),ZOe[4510]=-19,yW(ZOe,4511,4520,33),ZOe[4520]=-19,yW(ZOe,4521,4523,33),ZOe[4523]=-19,yW(ZOe,4524,4526,33),yW(ZOe,4526,4528,-19),yW(ZOe,4528,4535,33),yW(ZOe,4535,4537,-19),ZOe[4537]=33,ZOe[4538]=-19,ZOe[4539]=33,yW(ZOe,4540,4547,-19),yW(ZOe,4547,4587,33),ZOe[4587]=-19,yW(ZOe,4588,4592,33),ZOe[4592]=-19,yW(ZOe,4593,4601,33),ZOe[4601]=-19,yW(ZOe,4602,7680,33),yW(ZOe,7680,7836,-19),yW(ZOe,7836,7840,33),yW(ZOe,7840,7930,-19),yW(ZOe,7930,7936,33),yW(ZOe,7936,7958,-19),yW(ZOe,7958,7960,33),yW(ZOe,7960,7966,-19),yW(ZOe,7966,7968,33),yW(ZOe,7968,8006,-19),yW(ZOe,8006,8008,33),yW(ZOe,8008,8014,-19),yW(ZOe,8014,8016,33),yW(ZOe,8016,8024,-19),ZOe[8024]=33,ZOe[8025]=-19,ZOe[8026]=33,ZOe[8027]=-19,ZOe[8028]=33,ZOe[8029]=-19,ZOe[8030]=33,yW(ZOe,8031,8062,-19),yW(ZOe,8062,8064,33),yW(ZOe,8064,8117,-19),ZOe[8117]=33,yW(ZOe,8118,8125,-19),ZOe[8125]=33,ZOe[8126]=-19,yW(ZOe,8127,8130,33),yW(ZOe,8130,8133,-19),ZOe[8133]=33,yW(ZOe,8134,8141,-19),yW(ZOe,8141,8144,33),yW(ZOe,8144,8148,-19),yW(ZOe,8148,8150,33),yW(ZOe,8150,8156,-19),yW(ZOe,8156,8160,33),yW(ZOe,8160,8173,-19),yW(ZOe,8173,8178,33),yW(ZOe,8178,8181,-19),ZOe[8181]=33,yW(ZOe,8182,8189,-19),yW(ZOe,8189,8400,33),yW(ZOe,8400,8413,-87),yW(ZOe,8413,8417,33),ZOe[8417]=-87,yW(ZOe,8418,8486,33),ZOe[8486]=-19,yW(ZOe,8487,8490,33),yW(ZOe,8490,8492,-19),yW(ZOe,8492,8494,33),ZOe[8494]=-19,yW(ZOe,8495,8576,33),yW(ZOe,8576,8579,-19),yW(ZOe,8579,12293,33),ZOe[12293]=-87,ZOe[12294]=33,ZOe[12295]=-19,yW(ZOe,12296,12321,33),yW(ZOe,12321,12330,-19),yW(ZOe,12330,12336,-87),ZOe[12336]=33,yW(ZOe,12337,12342,-87),yW(ZOe,12342,12353,33),yW(ZOe,12353,12437,-19),yW(ZOe,12437,12441,33),yW(ZOe,12441,12443,-87),yW(ZOe,12443,12445,33),yW(ZOe,12445,12447,-87),yW(ZOe,12447,12449,33),yW(ZOe,12449,12539,-19),ZOe[12539]=33,yW(ZOe,12540,12543,-87),yW(ZOe,12543,12549,33),yW(ZOe,12549,12589,-19),yW(ZOe,12589,19968,33),yW(ZOe,19968,40870,-19),yW(ZOe,40870,44032,33),yW(ZOe,44032,55204,-19),yW(ZOe,55204,zKt,33),yW(ZOe,57344,65534,33)}function _Gt(t){var e,n,i,a,r,o,s;t.hb||(t.hb=!0,Oat(t,"ecore"),Mat(t,"ecore"),Nat(t,G8t),ast(t.fb,"E"),ast(t.L,"T"),ast(t.P,"K"),ast(t.P,"V"),ast(t.cb,"E"),l8(vX(t.b),t.bb),l8(vX(t.a),t.Q),l8(vX(t.o),t.p),l8(vX(t.p),t.R),l8(vX(t.q),t.p),l8(vX(t.v),t.q),l8(vX(t.w),t.R),l8(vX(t.B),t.Q),l8(vX(t.R),t.Q),l8(vX(t.T),t.eb),l8(vX(t.U),t.R),l8(vX(t.V),t.eb),l8(vX(t.W),t.bb),l8(vX(t.bb),t.eb),l8(vX(t.eb),t.R),l8(vX(t.db),t.R),U0(t.b,FIe,d8t,!1,!1,!0),ort(jz(Yet(GK(t.b),0),34),t.e,"iD",null,0,1,FIe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.b),1),18),t.q,null,"eAttributeType",1,1,FIe,!0,!0,!1,!1,!0,!1,!0),U0(t.a,NIe,c8t,!1,!1,!0),ort(jz(Yet(GK(t.a),0),34),t._,_7t,null,0,1,NIe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.a),1),18),t.ab,null,"details",0,-1,NIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.a),2),18),t.Q,jz(Yet(GK(t.Q),0),18),"eModelElement",0,1,NIe,!0,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.a),3),18),t.S,null,"contents",0,-1,NIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.a),4),18),t.S,null,"references",0,-1,NIe,!1,!1,!0,!1,!0,!1,!1),U0(t.o,$Ie,"EClass",!1,!1,!0),ort(jz(Yet(GK(t.o),0),34),t.e,"abstract",null,0,1,$Ie,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.o),1),34),t.e,"interface",null,0,1,$Ie,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.o),2),18),t.o,null,"eSuperTypes",0,-1,$Ie,!1,!1,!0,!1,!0,!0,!1),kwt(jz(Yet(GK(t.o),3),18),t.T,jz(Yet(GK(t.T),0),18),"eOperations",0,-1,$Ie,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.o),4),18),t.b,null,"eAllAttributes",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),5),18),t.W,null,"eAllReferences",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),6),18),t.W,null,"eReferences",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),7),18),t.b,null,"eAttributes",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),8),18),t.W,null,"eAllContainments",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),9),18),t.T,null,"eAllOperations",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),10),18),t.bb,null,"eAllStructuralFeatures",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),11),18),t.o,null,"eAllSuperTypes",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.o),12),18),t.b,null,"eIDAttribute",0,1,$Ie,!0,!0,!1,!1,!1,!1,!0),kwt(jz(Yet(GK(t.o),13),18),t.bb,jz(Yet(GK(t.bb),7),18),"eStructuralFeatures",0,-1,$Ie,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.o),14),18),t.H,null,"eGenericSuperTypes",0,-1,$Ie,!1,!1,!0,!0,!1,!0,!1),kwt(jz(Yet(GK(t.o),15),18),t.H,null,"eAllGenericSuperTypes",0,-1,$Ie,!0,!0,!1,!1,!0,!1,!0),Iwt(s=uit(jz(Yet(YK(t.o),0),59),t.e,"isSuperTypeOf"),t.o,"someClass"),uit(jz(Yet(YK(t.o),1),59),t.I,"getFeatureCount"),Iwt(s=uit(jz(Yet(YK(t.o),2),59),t.bb,J8t),t.I,"featureID"),Iwt(s=uit(jz(Yet(YK(t.o),3),59),t.I,Q8t),t.bb,t9t),Iwt(s=uit(jz(Yet(YK(t.o),4),59),t.bb,J8t),t._,"featureName"),uit(jz(Yet(YK(t.o),5),59),t.I,"getOperationCount"),Iwt(s=uit(jz(Yet(YK(t.o),6),59),t.T,"getEOperation"),t.I,"operationID"),Iwt(s=uit(jz(Yet(YK(t.o),7),59),t.I,e9t),t.T,n9t),Iwt(s=uit(jz(Yet(YK(t.o),8),59),t.T,"getOverride"),t.T,n9t),Iwt(s=uit(jz(Yet(YK(t.o),9),59),t.H,"getFeatureType"),t.bb,t9t),U0(t.p,jIe,h8t,!0,!1,!0),ort(jz(Yet(GK(t.p),0),34),t._,"instanceClassName",null,0,1,jIe,!1,!0,!0,!0,!0,!1),e=XZ(t.L),n=s2(),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),FDt(jz(Yet(GK(t.p),1),34),e,"instanceClass",jIe,!0,!0,!1,!0),ort(jz(Yet(GK(t.p),2),34),t.M,i9t,null,0,1,jIe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.p),3),34),t._,"instanceTypeName",null,0,1,jIe,!1,!0,!0,!0,!0,!1),kwt(jz(Yet(GK(t.p),4),18),t.U,jz(Yet(GK(t.U),3),18),"ePackage",0,1,jIe,!0,!1,!1,!1,!0,!1,!1),kwt(jz(Yet(GK(t.p),5),18),t.db,null,a9t,0,-1,jIe,!1,!1,!0,!0,!0,!1,!1),Iwt(s=uit(jz(Yet(YK(t.p),0),59),t.e,r9t),t.M,DGt),uit(jz(Yet(YK(t.p),1),59),t.I,"getClassifierID"),U0(t.q,zIe,"EDataType",!1,!1,!0),ort(jz(Yet(GK(t.q),0),34),t.e,"serializable",r6t,0,1,zIe,!1,!1,!0,!1,!0,!1),U0(t.v,VIe,"EEnum",!1,!1,!0),kwt(jz(Yet(GK(t.v),0),18),t.w,jz(Yet(GK(t.w),3),18),"eLiterals",0,-1,VIe,!1,!1,!0,!0,!1,!1,!1),Iwt(s=uit(jz(Yet(YK(t.v),0),59),t.w,o9t),t._,t5t),Iwt(s=uit(jz(Yet(YK(t.v),1),59),t.w,o9t),t.I,R7t),Iwt(s=uit(jz(Yet(YK(t.v),2),59),t.w,"getEEnumLiteralByLiteral"),t._,"literal"),U0(t.w,qIe,f8t,!1,!1,!0),ort(jz(Yet(GK(t.w),0),34),t.I,R7t,null,0,1,qIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.w),1),34),t.A,"instance",null,0,1,qIe,!0,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.w),2),34),t._,"literal",null,0,1,qIe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.w),3),18),t.v,jz(Yet(GK(t.v),0),18),"eEnum",0,1,qIe,!0,!1,!1,!1,!1,!1,!1),U0(t.B,jDe,"EFactory",!1,!1,!0),kwt(jz(Yet(GK(t.B),0),18),t.U,jz(Yet(GK(t.U),2),18),"ePackage",1,1,jDe,!0,!1,!0,!1,!1,!1,!1),Iwt(s=uit(jz(Yet(YK(t.B),0),59),t.S,"create"),t.o,"eClass"),Iwt(s=uit(jz(Yet(YK(t.B),1),59),t.M,"createFromString"),t.q,"eDataType"),Iwt(s,t._,"literalValue"),Iwt(s=uit(jz(Yet(YK(t.B),2),59),t._,"convertToString"),t.q,"eDataType"),Iwt(s,t.M,"instanceValue"),U0(t.Q,FDe,K6t,!0,!1,!0),kwt(jz(Yet(GK(t.Q),0),18),t.a,jz(Yet(GK(t.a),2),18),"eAnnotations",0,-1,FDe,!1,!1,!0,!0,!1,!1,!1),Iwt(s=uit(jz(Yet(YK(t.Q),0),59),t.a,"getEAnnotation"),t._,_7t),U0(t.R,$De,X6t,!0,!1,!0),ort(jz(Yet(GK(t.R),0),34),t._,t5t,null,0,1,$De,!1,!1,!0,!1,!0,!1),U0(t.S,DDe,"EObject",!1,!1,!0),uit(jz(Yet(YK(t.S),0),59),t.o,"eClass"),uit(jz(Yet(YK(t.S),1),59),t.e,"eIsProxy"),uit(jz(Yet(YK(t.S),2),59),t.X,"eResource"),uit(jz(Yet(YK(t.S),3),59),t.S,"eContainer"),uit(jz(Yet(YK(t.S),4),59),t.bb,"eContainingFeature"),uit(jz(Yet(YK(t.S),5),59),t.W,"eContainmentFeature"),s=uit(jz(Yet(YK(t.S),6),59),null,"eContents"),e=XZ(t.fb),n=XZ(t.S),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),(a=zkt(s,e,null))&&a.Fi(),s=uit(jz(Yet(YK(t.S),7),59),null,"eAllContents"),e=XZ(t.cb),n=XZ(t.S),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),(r=zkt(s,e,null))&&r.Fi(),s=uit(jz(Yet(YK(t.S),8),59),null,"eCrossReferences"),e=XZ(t.fb),n=XZ(t.S),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),(o=zkt(s,e,null))&&o.Fi(),Iwt(s=uit(jz(Yet(YK(t.S),9),59),t.M,"eGet"),t.bb,t9t),Iwt(s=uit(jz(Yet(YK(t.S),10),59),t.M,"eGet"),t.bb,t9t),Iwt(s,t.e,"resolve"),Iwt(s=uit(jz(Yet(YK(t.S),11),59),null,"eSet"),t.bb,t9t),Iwt(s,t.M,"newValue"),Iwt(s=uit(jz(Yet(YK(t.S),12),59),t.e,"eIsSet"),t.bb,t9t),Iwt(s=uit(jz(Yet(YK(t.S),13),59),null,"eUnset"),t.bb,t9t),Iwt(s=uit(jz(Yet(YK(t.S),14),59),t.M,"eInvoke"),t.T,n9t),e=XZ(t.fb),n=s2(),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),qRt(s,e,"arguments"),PG(s,t.K),U0(t.T,YIe,p8t,!1,!1,!0),kwt(jz(Yet(GK(t.T),0),18),t.o,jz(Yet(GK(t.o),3),18),s9t,0,1,YIe,!0,!1,!1,!1,!1,!1,!1),kwt(jz(Yet(GK(t.T),1),18),t.db,null,a9t,0,-1,YIe,!1,!1,!0,!0,!0,!1,!1),kwt(jz(Yet(GK(t.T),2),18),t.V,jz(Yet(GK(t.V),0),18),"eParameters",0,-1,YIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.T),3),18),t.p,null,"eExceptions",0,-1,YIe,!1,!1,!0,!1,!0,!0,!1),kwt(jz(Yet(GK(t.T),4),18),t.H,null,"eGenericExceptions",0,-1,YIe,!1,!1,!0,!0,!1,!0,!1),uit(jz(Yet(YK(t.T),0),59),t.I,e9t),Iwt(s=uit(jz(Yet(YK(t.T),1),59),t.e,"isOverrideOf"),t.T,"someOperation"),U0(t.U,zDe,"EPackage",!1,!1,!0),ort(jz(Yet(GK(t.U),0),34),t._,"nsURI",null,0,1,zDe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.U),1),34),t._,"nsPrefix",null,0,1,zDe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.U),2),18),t.B,jz(Yet(GK(t.B),0),18),"eFactoryInstance",1,1,zDe,!0,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.U),3),18),t.p,jz(Yet(GK(t.p),4),18),"eClassifiers",0,-1,zDe,!1,!1,!0,!0,!0,!1,!1),kwt(jz(Yet(GK(t.U),4),18),t.U,jz(Yet(GK(t.U),5),18),"eSubpackages",0,-1,zDe,!1,!1,!0,!0,!0,!1,!1),kwt(jz(Yet(GK(t.U),5),18),t.U,jz(Yet(GK(t.U),4),18),"eSuperPackage",0,1,zDe,!0,!1,!1,!1,!0,!1,!1),Iwt(s=uit(jz(Yet(YK(t.U),0),59),t.p,"getEClassifier"),t._,t5t),U0(t.V,GIe,b8t,!1,!1,!0),kwt(jz(Yet(GK(t.V),0),18),t.T,jz(Yet(GK(t.T),2),18),"eOperation",0,1,GIe,!0,!1,!1,!1,!1,!1,!1),U0(t.W,ZIe,m8t,!1,!1,!0),ort(jz(Yet(GK(t.W),0),34),t.e,"containment",null,0,1,ZIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.W),1),34),t.e,"container",null,0,1,ZIe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.W),2),34),t.e,"resolveProxies",r6t,0,1,ZIe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.W),3),18),t.W,null,"eOpposite",0,1,ZIe,!1,!1,!0,!1,!0,!1,!1),kwt(jz(Yet(GK(t.W),4),18),t.o,null,"eReferenceType",1,1,ZIe,!0,!0,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.W),5),18),t.b,null,"eKeys",0,-1,ZIe,!1,!1,!0,!1,!0,!1,!1),U0(t.bb,PIe,u8t,!0,!1,!0),ort(jz(Yet(GK(t.bb),0),34),t.e,"changeable",r6t,0,1,PIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),1),34),t.e,"volatile",null,0,1,PIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),2),34),t.e,"transient",null,0,1,PIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),3),34),t._,"defaultValueLiteral",null,0,1,PIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),4),34),t.M,i9t,null,0,1,PIe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.bb),5),34),t.e,"unsettable",null,0,1,PIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.bb),6),34),t.e,"derived",null,0,1,PIe,!1,!1,!0,!1,!0,!1),kwt(jz(Yet(GK(t.bb),7),18),t.o,jz(Yet(GK(t.o),13),18),s9t,0,1,PIe,!0,!1,!1,!1,!1,!1,!1),uit(jz(Yet(YK(t.bb),0),59),t.I,Q8t),s=uit(jz(Yet(YK(t.bb),1),59),null,"getContainerClass"),e=XZ(t.L),n=s2(),l8((!e.d&&(e.d=new DO(WIe,e,1)),e.d),n),(i=zkt(s,e,null))&&i.Fi(),U0(t.eb,BIe,l8t,!0,!1,!0),ort(jz(Yet(GK(t.eb),0),34),t.e,"ordered",r6t,0,1,BIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.eb),1),34),t.e,"unique",r6t,0,1,BIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.eb),2),34),t.I,"lowerBound",null,0,1,BIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.eb),3),34),t.I,"upperBound","1",0,1,BIe,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.eb),4),34),t.e,"many",null,0,1,BIe,!0,!0,!1,!1,!0,!0),ort(jz(Yet(GK(t.eb),5),34),t.e,"required",null,0,1,BIe,!0,!0,!1,!1,!0,!0),kwt(jz(Yet(GK(t.eb),6),18),t.p,null,"eType",0,1,BIe,!1,!0,!0,!1,!0,!0,!1),kwt(jz(Yet(GK(t.eb),7),18),t.H,null,"eGenericType",0,1,BIe,!1,!0,!0,!0,!1,!0,!1),U0(t.ab,zte,"EStringToStringMapEntry",!1,!1,!1),ort(jz(Yet(GK(t.ab),0),34),t._,"key",null,0,1,zte,!1,!1,!0,!1,!0,!1),ort(jz(Yet(GK(t.ab),1),34),t._,R7t,null,0,1,zte,!1,!1,!0,!1,!0,!1),U0(t.H,WIe,g8t,!1,!1,!0),kwt(jz(Yet(GK(t.H),0),18),t.H,null,"eUpperBound",0,1,WIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.H),1),18),t.H,null,"eTypeArguments",0,-1,WIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.H),2),18),t.p,null,"eRawType",1,1,WIe,!0,!1,!1,!1,!0,!1,!0),kwt(jz(Yet(GK(t.H),3),18),t.H,null,"eLowerBound",0,1,WIe,!1,!1,!0,!0,!1,!1,!1),kwt(jz(Yet(GK(t.H),4),18),t.db,null,"eTypeParameter",0,1,WIe,!1,!1,!0,!1,!1,!1,!1),kwt(jz(Yet(GK(t.H),5),18),t.p,null,"eClassifier",0,1,WIe,!1,!1,!0,!1,!0,!1,!1),Iwt(s=uit(jz(Yet(YK(t.H),0),59),t.e,r9t),t.M,DGt),U0(t.db,SLe,y8t,!1,!1,!0),kwt(jz(Yet(GK(t.db),0),18),t.H,null,"eBounds",0,-1,SLe,!1,!1,!0,!0,!1,!1,!1),fZ(t.c,Kee,"EBigDecimal",!0),fZ(t.d,sne,"EBigInteger",!0),fZ(t.e,AMe,"EBoolean",!0),fZ(t.f,wee,"EBooleanObject",!0),fZ(t.i,IMe,"EByte",!0),fZ(t.g,Hx(IMe,1),"EByteArray",!0),fZ(t.j,Ree,"EByteObject",!0),fZ(t.k,SMe,"EChar",!0),fZ(t.n,Eee,"ECharacterObject",!0),fZ(t.r,bee,"EDate",!0),fZ(t.s,BMe,"EDiagnosticChain",!1),fZ(t.t,LMe,"EDouble",!0),fZ(t.u,Cee,"EDoubleObject",!0),fZ(t.fb,aIe,"EEList",!1),fZ(t.A,mIe,"EEnumerator",!1),fZ(t.C,rOe,"EFeatureMap",!1),fZ(t.D,ALe,"EFeatureMapEntry",!1),fZ(t.F,OMe,"EFloat",!0),fZ(t.G,See,"EFloatObject",!0),fZ(t.I,TMe,"EInt",!0),fZ(t.J,Dee,"EIntegerObject",!0),fZ(t.L,Ite,"EJavaClass",!0),fZ(t.M,Dte,"EJavaObject",!0),fZ(t.N,DMe,"ELong",!0),fZ(t.O,Bee,"ELongObject",!0),fZ(t.P,Ote,"EMap",!1),fZ(t.X,tOe,"EResource",!1),fZ(t.Y,PMe,"EResourceSet",!1),fZ(t.Z,MMe,"EShort",!0),fZ(t.$,Fee,"EShortObject",!0),fZ(t._,zee,"EString",!0),fZ(t.cb,oIe,"ETreeIterator",!1),fZ(t.K,FMe,"EInvocationTargetException",!1),Lut(t,G8t))}typeof window<"u"?i=window:typeof t<"u"?i=t:typeof self<"u"&&(i=self);var kGt,EGt,CGt,SGt,TGt,AGt,DGt="object",IGt="boolean",LGt="number",OGt="string",MGt="function",NGt=2147483647,BGt="java.lang",PGt={3:1},FGt="com.google.common.base",jGt=", ",$Gt="%s (%s) must not be negative",zGt={3:1,4:1,5:1},HGt="negative size: ",UGt="Optional.of(",VGt="null",qGt={198:1,47:1},WGt="com.google.common.collect",YGt={198:1,47:1,125:1},GGt={224:1,3:1},ZGt={47:1},KGt="java.util",XGt={83:1},JGt={20:1,28:1,14:1},QGt=1965,tZt={20:1,28:1,14:1,21:1},eZt={83:1,171:1,161:1},nZt={20:1,28:1,14:1,21:1,84:1},iZt={20:1,28:1,14:1,271:1,21:1,84:1},aZt={47:1,125:1},rZt={345:1,42:1},oZt="AbstractMapEntry",sZt="expectedValuesPerKey",cZt={3:1,6:1,4:1,5:1},lZt=16384,uZt={164:1},dZt={38:1},hZt={l:4194303,m:4194303,h:524287},fZt={196:1},gZt={245:1,3:1,35:1},pZt="range unbounded on this side",bZt={20:1},mZt={20:1,14:1},yZt={3:1,20:1,28:1,14:1},vZt={152:1,3:1,20:1,28:1,14:1,15:1,54:1},wZt={3:1,4:1,5:1,165:1},xZt={3:1,83:1},RZt={20:1,14:1,21:1},_Zt={3:1,20:1,28:1,14:1,21:1},kZt={20:1,14:1,21:1,84:1},EZt=461845907,CZt=-862048943,SZt={3:1,6:1,4:1,5:1,165:1},TZt="expectedSize",AZt=1073741824,DZt="initialArraySize",IZt={3:1,6:1,4:1,9:1,5:1},LZt={20:1,28:1,52:1,14:1,15:1},OZt="arraySize",MZt={20:1,28:1,52:1,14:1,15:1,54:1},NZt={45:1},BZt={365:1},PZt=1e-4,FZt=-2147483648,jZt="__noinit__",$Zt={3:1,102:1,60:1,78:1},zZt="com.google.gwt.core.client.impl",HZt="String",UZt="com.google.gwt.core.client",VZt="anonymous",qZt="fnStack",WZt="Unknown",YZt={195:1,3:1,4:1},GZt=1e3,ZZt=65535,KZt="January",XZt="February",JZt="March",QZt="April",tKt="May",eKt="June",nKt="July",iKt="August",aKt="September",rKt="October",oKt="November",sKt="December",cKt=1900,lKt={48:1,3:1,4:1},uKt="Before Christ",dKt="Anno Domini",hKt="Sunday",fKt="Monday",gKt="Tuesday",pKt="Wednesday",bKt="Thursday",mKt="Friday",yKt="Saturday",vKt="com.google.gwt.i18n.shared",wKt="DateTimeFormat",xKt="com.google.gwt.i18n.client",RKt="DefaultDateTimeFormatInfo",_Kt={3:1,4:1,35:1,199:1},kKt="com.google.gwt.json.client",EKt=4194303,CKt=1048575,SKt=524288,TKt=4194304,AKt=17592186044416,DKt=1e9,IKt=-17592186044416,LKt="java.io",OKt={3:1,102:1,73:1,60:1,78:1},MKt={3:1,289:1,78:1},NKt='For input string: "',BKt=1/0,PKt=-1/0,FKt=4096,jKt={3:1,4:1,364:1},$Kt=65536,zKt=55296,HKt={104:1,3:1,4:1},UKt=1e5,VKt=.3010299956639812,qKt=4294967295,WKt=4294967296,YKt="0.0",GKt={42:1},ZKt={3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1},KKt={3:1,20:1,28:1,52:1,14:1,15:1,54:1},XKt={20:1,14:1,15:1},JKt={3:1,62:1},QKt={182:1},tXt={3:1,4:1,83:1},eXt={3:1,4:1,20:1,28:1,14:1,53:1,21:1},nXt="delete",iXt=1.4901161193847656e-8,aXt=11102230246251565e-32,rXt=15525485,oXt=5.960464477539063e-8,sXt=16777216,cXt=16777215,lXt=", length: ",uXt={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1},dXt={3:1,35:1,22:1,297:1},hXt="java.util.function",fXt="java.util.logging",gXt={3:1,4:1,5:1,842:1},pXt="undefined",bXt="java.util.stream",mXt={525:1,670:1},yXt="fromIndex: ",vXt=" > toIndex: ",wXt=", toIndex: ",xXt="Index: ",RXt=", Size: ",_Xt="org.eclipse.elk.alg.common",kXt={62:1},EXt="org.eclipse.elk.alg.common.compaction",CXt="Scanline/EventHandler",SXt="org.eclipse.elk.alg.common.compaction.oned",TXt="CNode belongs to another CGroup.",AXt="ISpacingsHandler/1",DXt="The ",IXt=" instance has been finished already.",LXt="The direction ",OXt=" is not supported by the CGraph instance.",MXt="OneDimensionalCompactor",NXt="OneDimensionalCompactor/lambda$0$Type",BXt="Quadruplet",PXt="ScanlineConstraintCalculator",FXt="ScanlineConstraintCalculator/ConstraintsScanlineHandler",jXt="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",$Xt="ScanlineConstraintCalculator/Timestamp",zXt="ScanlineConstraintCalculator/lambda$0$Type",HXt={169:1,45:1},UXt="org.eclipse.elk.alg.common.compaction.options",VXt="org.eclipse.elk.core.data",qXt="org.eclipse.elk.polyomino.traversalStrategy",WXt="org.eclipse.elk.polyomino.lowLevelSort",YXt="org.eclipse.elk.polyomino.highLevelSort",GXt="org.eclipse.elk.polyomino.fill",ZXt={130:1},KXt="polyomino",XXt="org.eclipse.elk.alg.common.networksimplex",JXt={177:1,3:1,4:1},QXt="org.eclipse.elk.alg.common.nodespacing",tJt="org.eclipse.elk.alg.common.nodespacing.cellsystem",eJt="CENTER",nJt={212:1,326:1},iJt={3:1,4:1,5:1,595:1},aJt="LEFT",rJt="RIGHT",oJt="Vertical alignment cannot be null",sJt="BOTTOM",cJt="org.eclipse.elk.alg.common.nodespacing.internal",lJt="UNDEFINED",uJt=.01,dJt="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",hJt="LabelPlacer/lambda$0$Type",fJt="LabelPlacer/lambda$1$Type",gJt="portRatioOrPosition",pJt="org.eclipse.elk.alg.common.overlaps",bJt="DOWN",mJt="org.eclipse.elk.alg.common.polyomino",yJt="NORTH",vJt="EAST",wJt="SOUTH",xJt="WEST",RJt="org.eclipse.elk.alg.common.polyomino.structures",_Jt="Direction",kJt="Grid is only of size ",EJt=". Requested point (",CJt=") is out of bounds.",SJt=" Given center based coordinates were (",TJt="org.eclipse.elk.graph.properties",AJt="IPropertyHolder",DJt={3:1,94:1,134:1},IJt="org.eclipse.elk.alg.common.spore",LJt="org.eclipse.elk.alg.common.utils",OJt={209:1},MJt="org.eclipse.elk.core",NJt="Connected Components Compaction",BJt="org.eclipse.elk.alg.disco",PJt="org.eclipse.elk.alg.disco.graph",FJt="org.eclipse.elk.alg.disco.options",jJt="CompactionStrategy",$Jt="org.eclipse.elk.disco.componentCompaction.strategy",zJt="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",HJt="org.eclipse.elk.disco.debug.discoGraph",UJt="org.eclipse.elk.disco.debug.discoPolys",VJt="componentCompaction",qJt="org.eclipse.elk.disco",WJt="org.eclipse.elk.spacing.componentComponent",YJt="org.eclipse.elk.edge.thickness",GJt="org.eclipse.elk.aspectRatio",ZJt="org.eclipse.elk.padding",KJt="org.eclipse.elk.alg.disco.transform",XJt=1.5707963267948966,JJt=17976931348623157e292,QJt={3:1,4:1,5:1,192:1},tQt={3:1,6:1,4:1,5:1,106:1,120:1},eQt="org.eclipse.elk.alg.force",nQt="ComponentsProcessor",iQt="ComponentsProcessor/1",aQt="org.eclipse.elk.alg.force.graph",rQt="Component Layout",oQt="org.eclipse.elk.alg.force.model",sQt="org.eclipse.elk.force.model",cQt="org.eclipse.elk.force.iterations",lQt="org.eclipse.elk.force.repulsivePower",uQt="org.eclipse.elk.force.temperature",dQt=.001,hQt="org.eclipse.elk.force.repulsion",fQt="org.eclipse.elk.alg.force.options",gQt=1.600000023841858,pQt="org.eclipse.elk.force",bQt="org.eclipse.elk.priority",mQt="org.eclipse.elk.spacing.nodeNode",yQt="org.eclipse.elk.spacing.edgeLabel",vQt="org.eclipse.elk.randomSeed",wQt="org.eclipse.elk.separateConnectedComponents",xQt="org.eclipse.elk.interactive",RQt="org.eclipse.elk.portConstraints",_Qt="org.eclipse.elk.edgeLabels.inline",kQt="org.eclipse.elk.omitNodeMicroLayout",EQt="org.eclipse.elk.nodeSize.options",CQt="org.eclipse.elk.nodeSize.constraints",SQt="org.eclipse.elk.nodeLabels.placement",TQt="org.eclipse.elk.portLabels.placement",AQt="origin",DQt="random",IQt="boundingBox.upLeft",LQt="boundingBox.lowRight",OQt="org.eclipse.elk.stress.fixed",MQt="org.eclipse.elk.stress.desiredEdgeLength",NQt="org.eclipse.elk.stress.dimension",BQt="org.eclipse.elk.stress.epsilon",PQt="org.eclipse.elk.stress.iterationLimit",FQt="org.eclipse.elk.stress",jQt="ELK Stress",$Qt="org.eclipse.elk.nodeSize.minimum",zQt="org.eclipse.elk.alg.force.stress",HQt="Layered layout",UQt="org.eclipse.elk.alg.layered",VQt="org.eclipse.elk.alg.layered.compaction.components",qQt="org.eclipse.elk.alg.layered.compaction.oned",WQt="org.eclipse.elk.alg.layered.compaction.oned.algs",YQt="org.eclipse.elk.alg.layered.compaction.recthull",GQt="org.eclipse.elk.alg.layered.components",ZQt="NONE",KQt={3:1,6:1,4:1,9:1,5:1,122:1},XQt={3:1,6:1,4:1,5:1,141:1,106:1,120:1},JQt="org.eclipse.elk.alg.layered.compound",QQt={51:1},t1t="org.eclipse.elk.alg.layered.graph",e1t=" -> ",n1t="Not supported by LGraph",i1t="Port side is undefined",a1t={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},r1t={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},o1t={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},s1t="([{\"' \t\r\n",c1t=")]}\"' \t\r\n",l1t="The given string contains parts that cannot be parsed as numbers.",u1t="org.eclipse.elk.core.math",d1t={3:1,4:1,142:1,207:1,414:1},h1t={3:1,4:1,116:1,207:1,414:1},f1t="org.eclipse.elk.layered",g1t="org.eclipse.elk.alg.layered.graph.transform",p1t="ElkGraphImporter",b1t="ElkGraphImporter/lambda$0$Type",m1t="ElkGraphImporter/lambda$1$Type",y1t="ElkGraphImporter/lambda$2$Type",v1t="ElkGraphImporter/lambda$4$Type",w1t="Node margin calculation",x1t="org.eclipse.elk.alg.layered.intermediate",R1t="ONE_SIDED_GREEDY_SWITCH",_1t="TWO_SIDED_GREEDY_SWITCH",k1t="No implementation is available for the layout processor ",E1t="IntermediateProcessorStrategy",C1t="Node '",S1t="FIRST_SEPARATE",T1t="LAST_SEPARATE",A1t="Odd port side processing",D1t="org.eclipse.elk.alg.layered.intermediate.compaction",I1t="org.eclipse.elk.alg.layered.intermediate.greedyswitch",L1t="org.eclipse.elk.alg.layered.p3order.counting",O1t={225:1},M1t="org.eclipse.elk.alg.layered.intermediate.loops",N1t="org.eclipse.elk.alg.layered.intermediate.loops.ordering",B1t="org.eclipse.elk.alg.layered.intermediate.loops.routing",P1t="org.eclipse.elk.alg.layered.intermediate.preserveorder",F1t="org.eclipse.elk.alg.layered.intermediate.wrapping",j1t="org.eclipse.elk.alg.layered.options",$1t="INTERACTIVE",z1t="DEPTH_FIRST",H1t="EDGE_LENGTH",U1t="SELF_LOOPS",V1t="firstTryWithInitialOrder",q1t="org.eclipse.elk.layered.directionCongruency",W1t="org.eclipse.elk.layered.feedbackEdges",Y1t="org.eclipse.elk.layered.interactiveReferencePoint",G1t="org.eclipse.elk.layered.mergeEdges",Z1t="org.eclipse.elk.layered.mergeHierarchyEdges",K1t="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",X1t="org.eclipse.elk.layered.portSortingStrategy",J1t="org.eclipse.elk.layered.thoroughness",Q1t="org.eclipse.elk.layered.unnecessaryBendpoints",t0t="org.eclipse.elk.layered.generatePositionAndLayerIds",e0t="org.eclipse.elk.layered.cycleBreaking.strategy",n0t="org.eclipse.elk.layered.layering.strategy",i0t="org.eclipse.elk.layered.layering.layerConstraint",a0t="org.eclipse.elk.layered.layering.layerChoiceConstraint",r0t="org.eclipse.elk.layered.layering.layerId",o0t="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",s0t="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",c0t="org.eclipse.elk.layered.layering.nodePromotion.strategy",l0t="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",u0t="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",d0t="org.eclipse.elk.layered.crossingMinimization.strategy",h0t="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",f0t="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",g0t="org.eclipse.elk.layered.crossingMinimization.semiInteractive",p0t="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",b0t="org.eclipse.elk.layered.crossingMinimization.positionId",m0t="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",y0t="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",v0t="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",w0t="org.eclipse.elk.layered.nodePlacement.strategy",x0t="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",R0t="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",_0t="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",k0t="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",E0t="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",C0t="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",S0t="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",T0t="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",A0t="org.eclipse.elk.layered.edgeRouting.splines.mode",D0t="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",I0t="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",L0t="org.eclipse.elk.layered.spacing.baseValue",O0t="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",M0t="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",N0t="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",B0t="org.eclipse.elk.layered.priority.direction",P0t="org.eclipse.elk.layered.priority.shortness",F0t="org.eclipse.elk.layered.priority.straightness",j0t="org.eclipse.elk.layered.compaction.connectedComponents",$0t="org.eclipse.elk.layered.compaction.postCompaction.strategy",z0t="org.eclipse.elk.layered.compaction.postCompaction.constraints",H0t="org.eclipse.elk.layered.highDegreeNodes.treatment",U0t="org.eclipse.elk.layered.highDegreeNodes.threshold",V0t="org.eclipse.elk.layered.highDegreeNodes.treeHeight",q0t="org.eclipse.elk.layered.wrapping.strategy",W0t="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",Y0t="org.eclipse.elk.layered.wrapping.correctionFactor",G0t="org.eclipse.elk.layered.wrapping.cutting.strategy",Z0t="org.eclipse.elk.layered.wrapping.cutting.cuts",K0t="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",X0t="org.eclipse.elk.layered.wrapping.validify.strategy",J0t="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",Q0t="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",t2t="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",e2t="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",n2t="org.eclipse.elk.layered.edgeLabels.sideSelection",i2t="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",a2t="org.eclipse.elk.layered.considerModelOrder.strategy",r2t="org.eclipse.elk.layered.considerModelOrder.noModelOrder",o2t="org.eclipse.elk.layered.considerModelOrder.components",s2t="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",c2t="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",l2t="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",u2t="layering",d2t="layering.minWidth",h2t="layering.nodePromotion",f2t="crossingMinimization",g2t="org.eclipse.elk.hierarchyHandling",p2t="crossingMinimization.greedySwitch",b2t="nodePlacement",m2t="nodePlacement.bk",y2t="edgeRouting",v2t="org.eclipse.elk.edgeRouting",w2t="spacing",x2t="priority",R2t="compaction",_2t="compaction.postCompaction",k2t="Specifies whether and how post-process compaction is applied.",E2t="highDegreeNodes",C2t="wrapping",S2t="wrapping.cutting",T2t="wrapping.validify",A2t="wrapping.multiEdge",D2t="edgeLabels",I2t="considerModelOrder",L2t="org.eclipse.elk.spacing.commentComment",O2t="org.eclipse.elk.spacing.commentNode",M2t="org.eclipse.elk.spacing.edgeEdge",N2t="org.eclipse.elk.spacing.edgeNode",B2t="org.eclipse.elk.spacing.labelLabel",P2t="org.eclipse.elk.spacing.labelPortHorizontal",F2t="org.eclipse.elk.spacing.labelPortVertical",j2t="org.eclipse.elk.spacing.labelNode",$2t="org.eclipse.elk.spacing.nodeSelfLoop",z2t="org.eclipse.elk.spacing.portPort",H2t="org.eclipse.elk.spacing.individual",U2t="org.eclipse.elk.port.borderOffset",V2t="org.eclipse.elk.noLayout",q2t="org.eclipse.elk.port.side",W2t="org.eclipse.elk.debugMode",Y2t="org.eclipse.elk.alignment",G2t="org.eclipse.elk.insideSelfLoops.activate",Z2t="org.eclipse.elk.insideSelfLoops.yo",K2t="org.eclipse.elk.nodeSize.fixedGraphSize",X2t="org.eclipse.elk.direction",J2t="org.eclipse.elk.nodeLabels.padding",Q2t="org.eclipse.elk.portLabels.nextToPortIfPossible",t4t="org.eclipse.elk.portLabels.treatAsGroup",e4t="org.eclipse.elk.portAlignment.default",n4t="org.eclipse.elk.portAlignment.north",i4t="org.eclipse.elk.portAlignment.south",a4t="org.eclipse.elk.portAlignment.west",r4t="org.eclipse.elk.portAlignment.east",o4t="org.eclipse.elk.contentAlignment",s4t="org.eclipse.elk.junctionPoints",c4t="org.eclipse.elk.edgeLabels.placement",l4t="org.eclipse.elk.port.index",u4t="org.eclipse.elk.commentBox",d4t="org.eclipse.elk.hypernode",h4t="org.eclipse.elk.port.anchor",f4t="org.eclipse.elk.partitioning.activate",g4t="org.eclipse.elk.partitioning.partition",p4t="org.eclipse.elk.position",b4t="org.eclipse.elk.margins",m4t="org.eclipse.elk.spacing.portsSurrounding",y4t="org.eclipse.elk.interactiveLayout",v4t="org.eclipse.elk.core.util",w4t={3:1,4:1,5:1,593:1},x4t="NETWORK_SIMPLEX",R4t={123:1,51:1},_4t="org.eclipse.elk.alg.layered.p1cycles",k4t="org.eclipse.elk.alg.layered.p2layers",E4t={402:1,225:1},C4t={832:1,3:1,4:1},S4t="org.eclipse.elk.alg.layered.p3order",T4t="org.eclipse.elk.alg.layered.p4nodes",A4t={3:1,4:1,5:1,840:1},D4t=1e-5,I4t="org.eclipse.elk.alg.layered.p4nodes.bk",L4t="org.eclipse.elk.alg.layered.p5edges",O4t="org.eclipse.elk.alg.layered.p5edges.orthogonal",M4t="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",N4t=1e-6,B4t="org.eclipse.elk.alg.layered.p5edges.splines",P4t=.09999999999999998,F4t=1e-8,j4t=4.71238898038469,$4t=3.141592653589793,z4t="org.eclipse.elk.alg.mrtree",H4t="org.eclipse.elk.alg.mrtree.graph",U4t="org.eclipse.elk.alg.mrtree.intermediate",V4t="Set neighbors in level",q4t="DESCENDANTS",W4t="org.eclipse.elk.mrtree.weighting",Y4t="org.eclipse.elk.mrtree.searchOrder",G4t="org.eclipse.elk.alg.mrtree.options",Z4t="org.eclipse.elk.mrtree",K4t="org.eclipse.elk.tree",X4t="org.eclipse.elk.alg.radial",J4t=6.283185307179586,Q4t=5e-324,t3t="org.eclipse.elk.alg.radial.intermediate",e3t="org.eclipse.elk.alg.radial.intermediate.compaction",n3t={3:1,4:1,5:1,106:1},i3t="org.eclipse.elk.alg.radial.intermediate.optimization",a3t="No implementation is available for the layout option ",r3t="org.eclipse.elk.alg.radial.options",o3t="org.eclipse.elk.radial.orderId",s3t="org.eclipse.elk.radial.radius",c3t="org.eclipse.elk.radial.compactor",l3t="org.eclipse.elk.radial.compactionStepSize",u3t="org.eclipse.elk.radial.sorter",d3t="org.eclipse.elk.radial.wedgeCriteria",h3t="org.eclipse.elk.radial.optimizationCriteria",f3t="org.eclipse.elk.radial",g3t="org.eclipse.elk.alg.radial.p1position.wedge",p3t="org.eclipse.elk.alg.radial.sorting",b3t=5.497787143782138,m3t=3.9269908169872414,y3t=2.356194490192345,v3t="org.eclipse.elk.alg.rectpacking",w3t="org.eclipse.elk.alg.rectpacking.firstiteration",x3t="org.eclipse.elk.alg.rectpacking.options",R3t="org.eclipse.elk.rectpacking.optimizationGoal",_3t="org.eclipse.elk.rectpacking.lastPlaceShift",k3t="org.eclipse.elk.rectpacking.currentPosition",E3t="org.eclipse.elk.rectpacking.desiredPosition",C3t="org.eclipse.elk.rectpacking.onlyFirstIteration",S3t="org.eclipse.elk.rectpacking.rowCompaction",T3t="org.eclipse.elk.rectpacking.expandToAspectRatio",A3t="org.eclipse.elk.rectpacking.targetWidth",D3t="org.eclipse.elk.expandNodes",I3t="org.eclipse.elk.rectpacking",L3t="org.eclipse.elk.alg.rectpacking.util",O3t="No implementation available for ",M3t="org.eclipse.elk.alg.spore",N3t="org.eclipse.elk.alg.spore.options",B3t="org.eclipse.elk.sporeCompaction",P3t="org.eclipse.elk.underlyingLayoutAlgorithm",F3t="org.eclipse.elk.processingOrder.treeConstruction",j3t="org.eclipse.elk.processingOrder.spanningTreeCostFunction",$3t="org.eclipse.elk.processingOrder.preferredRoot",z3t="org.eclipse.elk.processingOrder.rootSelection",H3t="org.eclipse.elk.structure.structureExtractionStrategy",U3t="org.eclipse.elk.compaction.compactionStrategy",V3t="org.eclipse.elk.compaction.orthogonal",q3t="org.eclipse.elk.overlapRemoval.maxIterations",W3t="org.eclipse.elk.overlapRemoval.runScanline",Y3t="processingOrder",G3t="overlapRemoval",Z3t="org.eclipse.elk.sporeOverlap",K3t="org.eclipse.elk.alg.spore.p1structure",X3t="org.eclipse.elk.alg.spore.p2processingorder",J3t="org.eclipse.elk.alg.spore.p3execution",Q3t="Invalid index: ",t6t="org.eclipse.elk.core.alg",e6t={331:1},n6t={288:1},i6t="Make sure its type is registered with the ",a6t=" utility class.",r6t="true",o6t="false",s6t="Couldn't clone property '",c6t=.05,l6t="org.eclipse.elk.core.options",u6t=1.2999999523162842,d6t="org.eclipse.elk.box",h6t="org.eclipse.elk.box.packingMode",f6t="org.eclipse.elk.algorithm",g6t="org.eclipse.elk.resolvedAlgorithm",p6t="org.eclipse.elk.bendPoints",b6t="org.eclipse.elk.labelManager",m6t="org.eclipse.elk.scaleFactor",y6t="org.eclipse.elk.animate",v6t="org.eclipse.elk.animTimeFactor",w6t="org.eclipse.elk.layoutAncestors",x6t="org.eclipse.elk.maxAnimTime",R6t="org.eclipse.elk.minAnimTime",_6t="org.eclipse.elk.progressBar",k6t="org.eclipse.elk.validateGraph",E6t="org.eclipse.elk.validateOptions",C6t="org.eclipse.elk.zoomToFit",S6t="org.eclipse.elk.font.name",T6t="org.eclipse.elk.font.size",A6t="org.eclipse.elk.edge.type",D6t="partitioning",I6t="nodeLabels",L6t="portAlignment",O6t="nodeSize",M6t="port",N6t="portLabels",B6t="insideSelfLoops",P6t="org.eclipse.elk.fixed",F6t="org.eclipse.elk.random",j6t="port must have a parent node to calculate the port side",$6t="The edge needs to have exactly one edge section. Found: ",z6t="org.eclipse.elk.core.util.adapters",H6t="org.eclipse.emf.ecore",U6t="org.eclipse.elk.graph",V6t="EMapPropertyHolder",q6t="ElkBendPoint",W6t="ElkGraphElement",Y6t="ElkConnectableShape",G6t="ElkEdge",Z6t="ElkEdgeSection",K6t="EModelElement",X6t="ENamedElement",J6t="ElkLabel",Q6t="ElkNode",t7t="ElkPort",e7t={92:1,90:1},n7t="org.eclipse.emf.common.notify.impl",i7t="The feature '",a7t="' is not a valid changeable feature",r7t="Expecting null",o7t="' is not a valid feature",s7t="The feature ID",c7t=" is not a valid feature ID",l7t=32768,u7t={105:1,92:1,90:1,56:1,49:1,97:1},d7t="org.eclipse.emf.ecore.impl",h7t="org.eclipse.elk.graph.impl",f7t="Recursive containment not allowed for ",g7t="The datatype '",p7t="' is not a valid classifier",b7t="The value '",m7t={190:1,3:1,4:1},y7t="The class '",v7t="http://www.eclipse.org/elk/ElkGraph",w7t=1024,x7t="property",R7t="value",_7t="source",k7t="properties",E7t="identifier",C7t="height",S7t="width",T7t="parent",A7t="text",D7t="children",I7t="hierarchical",L7t="sources",O7t="targets",M7t="sections",N7t="bendPoints",B7t="outgoingShape",P7t="incomingShape",F7t="outgoingSections",j7t="incomingSections",$7t="org.eclipse.emf.common.util",z7t="Severe implementation error in the Json to ElkGraph importer.",H7t="id",U7t="org.eclipse.elk.graph.json",V7t="Unhandled parameter types: ",q7t="startPoint",W7t="An edge must have at least one source and one target (edge id: '",Y7t="').",G7t="Referenced edge section does not exist: ",Z7t=" (edge id: '",K7t="target",X7t="sourcePoint",J7t="targetPoint",Q7t="group",t5t="name",e5t="connectableShape cannot be null",n5t="edge cannot be null",i5t="Passed edge is not 'simple'.",a5t="org.eclipse.elk.graph.util",r5t="The 'no duplicates' constraint is violated",o5t="targetIndex=",s5t=", size=",c5t="sourceIndex=",l5t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},u5t={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},d5t="logging",h5t="measureExecutionTime",f5t="parser.parse.1",g5t="parser.parse.2",p5t="parser.next.1",b5t="parser.next.2",m5t="parser.next.3",y5t="parser.next.4",v5t="parser.factor.1",w5t="parser.factor.2",x5t="parser.factor.3",R5t="parser.factor.4",_5t="parser.factor.5",k5t="parser.factor.6",E5t="parser.atom.1",C5t="parser.atom.2",S5t="parser.atom.3",T5t="parser.atom.4",A5t="parser.atom.5",D5t="parser.cc.1",I5t="parser.cc.2",L5t="parser.cc.3",O5t="parser.cc.5",M5t="parser.cc.6",N5t="parser.cc.7",B5t="parser.cc.8",P5t="parser.ope.1",F5t="parser.ope.2",j5t="parser.ope.3",$5t="parser.descape.1",z5t="parser.descape.2",H5t="parser.descape.3",U5t="parser.descape.4",V5t="parser.descape.5",q5t="parser.process.1",W5t="parser.quantifier.1",Y5t="parser.quantifier.2",G5t="parser.quantifier.3",Z5t="parser.quantifier.4",K5t="parser.quantifier.5",X5t="org.eclipse.emf.common.notify",J5t={415:1,672:1},Q5t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},t8t={366:1,143:1},e8t="index=",n8t={3:1,4:1,5:1,126:1},i8t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},a8t={3:1,6:1,4:1,5:1,192:1},r8t={3:1,4:1,5:1,165:1,367:1},o8t=";/?:@&=+$,",s8t="invalid authority: ",c8t="EAnnotation",l8t="ETypedElement",u8t="EStructuralFeature",d8t="EAttribute",h8t="EClassifier",f8t="EEnumLiteral",g8t="EGenericType",p8t="EOperation",b8t="EParameter",m8t="EReference",y8t="ETypeParameter",v8t="org.eclipse.emf.ecore.util",w8t={76:1},x8t={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},R8t="org.eclipse.emf.ecore.util.FeatureMap$Entry",_8t=8192,k8t=2048,E8t="byte",C8t="char",S8t="double",T8t="float",A8t="int",D8t="long",I8t="short",L8t="java.lang.Object",O8t={3:1,4:1,5:1,247:1},M8t={3:1,4:1,5:1,673:1},N8t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},B8t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},P8t="mixed",F8t="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",j8t="kind",$8t={3:1,4:1,5:1,674:1},z8t={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},H8t={20:1,28:1,52:1,14:1,15:1,58:1,69:1},U8t={47:1,125:1,279:1},V8t={72:1,332:1},q8t="The value of type '",W8t="' must be of type '",Y8t=1316,G8t="http://www.eclipse.org/emf/2002/Ecore",Z8t=-32768,K8t="constraints",X8t="baseType",J8t="getEStructuralFeature",Q8t="getFeatureID",t9t="feature",e9t="getOperationID",n9t="operation",i9t="defaultValue",a9t="eTypeParameters",r9t="isInstance",o9t="getEEnumLiteral",s9t="eContainingClass",c9t={55:1},l9t={3:1,4:1,5:1,119:1},u9t="org.eclipse.emf.ecore.resource",d9t={92:1,90:1,591:1,1935:1},h9t="org.eclipse.emf.ecore.resource.impl",f9t="unspecified",g9t="simple",p9t="attribute",b9t="attributeWildcard",m9t="element",y9t="elementWildcard",v9t="collapse",w9t="itemType",x9t="namespace",R9t="##targetNamespace",_9t="whiteSpace",k9t="wildcards",E9t="http://www.eclipse.org/emf/2003/XMLType",C9t="##any",S9t="uninitialized",T9t="The multiplicity constraint is violated",A9t="org.eclipse.emf.ecore.xml.type",D9t="ProcessingInstruction",I9t="SimpleAnyType",L9t="XMLTypeDocumentRoot",O9t="org.eclipse.emf.ecore.xml.type.impl",M9t="INF",N9t="processing",B9t="ENTITIES_._base",P9t="minLength",F9t="ENTITY",j9t="NCName",$9t="IDREFS_._base",z9t="integer",H9t="token",U9t="pattern",V9t="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",q9t="\\i\\c*",W9t="[\\i-[:]][\\c-[:]]*",Y9t="nonPositiveInteger",G9t="maxInclusive",Z9t="NMTOKEN",K9t="NMTOKENS_._base",X9t="nonNegativeInteger",J9t="minInclusive",Q9t="normalizedString",tte="unsignedByte",ete="unsignedInt",nte="18446744073709551615",ite="unsignedShort",ate="processingInstruction",rte="org.eclipse.emf.ecore.xml.type.internal",ote=1114111,ste="Internal Error: shorthands: \\u",cte="xml:isDigit",lte="xml:isWord",ute="xml:isSpace",dte="xml:isNameChar",hte="xml:isInitialNameChar",fte="09\u0660\u0669\u06f0\u06f9\u0966\u096f\u09e6\u09ef\u0a66\u0a6f\u0ae6\u0aef\u0b66\u0b6f\u0be7\u0bef\u0c66\u0c6f\u0ce6\u0cef\u0d66\u0d6f\u0e50\u0e59\u0ed0\u0ed9\u0f20\u0f29",gte="AZaz\xc0\xd6\xd8\xf6\xf8\u0131\u0134\u013e\u0141\u0148\u014a\u017e\u0180\u01c3\u01cd\u01f0\u01f4\u01f5\u01fa\u0217\u0250\u02a8\u02bb\u02c1\u0386\u0386\u0388\u038a\u038c\u038c\u038e\u03a1\u03a3\u03ce\u03d0\u03d6\u03da\u03da\u03dc\u03dc\u03de\u03de\u03e0\u03e0\u03e2\u03f3\u0401\u040c\u040e\u044f\u0451\u045c\u045e\u0481\u0490\u04c4\u04c7\u04c8\u04cb\u04cc\u04d0\u04eb\u04ee\u04f5\u04f8\u04f9\u0531\u0556\u0559\u0559\u0561\u0586\u05d0\u05ea\u05f0\u05f2\u0621\u063a\u0641\u064a\u0671\u06b7\u06ba\u06be\u06c0\u06ce\u06d0\u06d3\u06d5\u06d5\u06e5\u06e6\u0905\u0939\u093d\u093d\u0958\u0961\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6\u09b9\u09dc\u09dd\u09df\u09e1\u09f0\u09f1\u0a05\u0a0a\u0a0f\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59\u0a5c\u0a5e\u0a5e\u0a72\u0a74\u0a85\u0a8b\u0a8d\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abd\u0abd\u0ae0\u0ae0\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b36\u0b39\u0b3d\u0b3d\u0b5c\u0b5d\u0b5f\u0b61\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb5\u0bb7\u0bb9\u0c05\u0c0c\u0c0e\u0c10\u0c12\u0c28\u0c2a\u0c33\u0c35\u0c39\u0c60\u0c61\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cde\u0cde\u0ce0\u0ce1\u0d05\u0d0c\u0d0e\u0d10\u0d12\u0d28\u0d2a\u0d39\u0d60\u0d61\u0e01\u0e2e\u0e30\u0e30\u0e32\u0e33\u0e40\u0e45\u0e81\u0e82\u0e84\u0e84\u0e87\u0e88\u0e8a\u0e8a\u0e8d\u0e8d\u0e94\u0e97\u0e99\u0e9f\u0ea1\u0ea3\u0ea5\u0ea5\u0ea7\u0ea7\u0eaa\u0eab\u0ead\u0eae\u0eb0\u0eb0\u0eb2\u0eb3\u0ebd\u0ebd\u0ec0\u0ec4\u0f40\u0f47\u0f49\u0f69\u10a0\u10c5\u10d0\u10f6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110b\u110c\u110e\u1112\u113c\u113c\u113e\u113e\u1140\u1140\u114c\u114c\u114e\u114e\u1150\u1150\u1154\u1155\u1159\u1159\u115f\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116d\u116e\u1172\u1173\u1175\u1175\u119e\u119e\u11a8\u11a8\u11ab\u11ab\u11ae\u11af\u11b7\u11b8\u11ba\u11ba\u11bc\u11c2\u11eb\u11eb\u11f0\u11f0\u11f9\u11f9\u1e00\u1e9b\u1ea0\u1ef9\u1f00\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u2126\u2126\u212a\u212b\u212e\u212e\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30a1\u30fa\u3105\u312c\u4e00\u9fa5\uac00\ud7a3",pte="Private Use",bte="ASSIGNED",mte="\0\x7f\x80\xff\u0100\u017f\u0180\u024f\u0250\u02af\u02b0\u02ff\u0300\u036f\u0370\u03ff\u0400\u04ff\u0530\u058f\u0590\u05ff\u0600\u06ff\u0700\u074f\u0780\u07bf\u0900\u097f\u0980\u09ff\u0a00\u0a7f\u0a80\u0aff\u0b00\u0b7f\u0b80\u0bff\u0c00\u0c7f\u0c80\u0cff\u0d00\u0d7f\u0d80\u0dff\u0e00\u0e7f\u0e80\u0eff\u0f00\u0fff\u1000\u109f\u10a0\u10ff\u1100\u11ff\u1200\u137f\u13a0\u13ff\u1400\u167f\u1680\u169f\u16a0\u16ff\u1780\u17ff\u1800\u18af\u1e00\u1eff\u1f00\u1fff\u2000\u206f\u2070\u209f\u20a0\u20cf\u20d0\u20ff\u2100\u214f\u2150\u218f\u2190\u21ff\u2200\u22ff\u2300\u23ff\u2400\u243f\u2440\u245f\u2460\u24ff\u2500\u257f\u2580\u259f\u25a0\u25ff\u2600\u26ff\u2700\u27bf\u2800\u28ff\u2e80\u2eff\u2f00\u2fdf\u2ff0\u2fff\u3000\u303f\u3040\u309f\u30a0\u30ff\u3100\u312f\u3130\u318f\u3190\u319f\u31a0\u31bf\u3200\u32ff\u3300\u33ff\u3400\u4db5\u4e00\u9fff\ua000\ua48f\ua490\ua4cf\uac00\ud7a3\ue000\uf8ff\uf900\ufaff\ufb00\ufb4f\ufb50\ufdff\ufe20\ufe2f\ufe30\ufe4f\ufe50\ufe6f\ufe70\ufefe\ufeff\ufeff\uff00\uffef",yte="UNASSIGNED",vte={3:1,117:1},wte="org.eclipse.emf.ecore.xml.type.util",xte={3:1,4:1,5:1,368:1},Rte="org.eclipse.xtext.xbase.lib",_te="Cannot add elements to a Range",kte="Cannot set elements in a Range",Ete="Cannot remove elements from a Range",Cte="locale",Ste="default",Tte="user.agent";i.goog=i.goog||{},i.goog.global=i.goog.global||i,YEt(),fIt(1,null,{},a),kGt.Fb=function(t){return FD(this,t)},kGt.Gb=function(){return this.gm},kGt.Hb=function(){return EM(this)},kGt.Ib=function(){return JR(tlt(this))+"@"+(Qct(this)>>>0).toString(16)},kGt.equals=function(t){return this.Fb(t)},kGt.hashCode=function(){return this.Hb()},kGt.toString=function(){return this.Ib()},fIt(290,1,{290:1,2026:1},bct),kGt.le=function(t){var e;return(e=new bct).i=4,e.c=t>1?gQ(this,t-1):this,e},kGt.me=function(){return xB(this),this.b},kGt.ne=function(){return JR(this)},kGt.oe=function(){return xB(this),this.k},kGt.pe=function(){return 0!=(4&this.i)},kGt.qe=function(){return 0!=(1&this.i)},kGt.Ib=function(){return ret(this)},kGt.i=0;var Ate,Dte=bY(BGt,"Object",1),Ite=bY(BGt,"Class",290);fIt(1998,1,PGt),bY(FGt,"Optional",1998),fIt(1170,1998,PGt,r),kGt.Fb=function(t){return t===this},kGt.Hb=function(){return 2040732332},kGt.Ib=function(){return"Optional.absent()"},kGt.Jb=function(t){return yY(t),ew(),Ate},bY(FGt,"Absent",1170),fIt(628,1,{},mx),bY(FGt,"Joiner",628);var Lte=dU(FGt,"Predicate");fIt(582,1,{169:1,582:1,3:1,45:1},jd),kGt.Mb=function(t){return Pct(this,t)},kGt.Lb=function(t){return Pct(this,t)},kGt.Fb=function(t){var e;return!!iO(t,582)&&(e=jz(t,582),OIt(this.a,e.a))},kGt.Hb=function(){return jct(this.a)+306654252},kGt.Ib=function(){return fSt(this.a)},bY(FGt,"Predicates/AndPredicate",582),fIt(408,1998,{408:1,3:1},$d),kGt.Fb=function(t){var e;return!!iO(t,408)&&(e=jz(t,408),Odt(this.a,e.a))},kGt.Hb=function(){return 1502476572+Qct(this.a)},kGt.Ib=function(){return UGt+this.a+")"},kGt.Jb=function(t){return new $d(WK(t.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},bY(FGt,"Present",408),fIt(198,1,qGt),kGt.Nb=function(t){lW(this,t)},kGt.Qb=function(){dx()},bY(WGt,"UnmodifiableIterator",198),fIt(1978,198,YGt),kGt.Qb=function(){dx()},kGt.Rb=function(t){throw $m(new py)},kGt.Wb=function(t){throw $m(new py)},bY(WGt,"UnmodifiableListIterator",1978),fIt(386,1978,YGt),kGt.Ob=function(){return this.c<this.d},kGt.Sb=function(){return this.c>0},kGt.Pb=function(){if(this.c>=this.d)throw $m(new yy);return this.Xb(this.c++)},kGt.Tb=function(){return this.c},kGt.Ub=function(){if(this.c<=0)throw $m(new yy);return this.Xb(--this.c)},kGt.Vb=function(){return this.c-1},kGt.c=0,kGt.d=0,bY(WGt,"AbstractIndexedListIterator",386),fIt(699,198,qGt),kGt.Ob=function(){return Jit(this)},kGt.Pb=function(){return E9(this)},kGt.e=1,bY(WGt,"AbstractIterator",699),fIt(1986,1,{224:1}),kGt.Zb=function(){return this.f||(this.f=this.ac())},kGt.Fb=function(t){return xlt(this,t)},kGt.Hb=function(){return Qct(this.Zb())},kGt.dc=function(){return 0==this.gc()},kGt.ec=function(){return gq(this)},kGt.Ib=function(){return $ft(this.Zb())},bY(WGt,"AbstractMultimap",1986),fIt(726,1986,GGt),kGt.$b=function(){fit(this)},kGt._b=function(t){return WR(this,t)},kGt.ac=function(){return new pk(this,this.c)},kGt.ic=function(t){return this.hc()},kGt.bc=function(){return new $O(this,this.c)},kGt.jc=function(){return this.mc(this.hc())},kGt.kc=function(){return new $v(this)},kGt.lc=function(){return Hkt(this.c.vc().Nc(),new s,64,this.d)},kGt.cc=function(t){return c7(this,t)},kGt.fc=function(t){return Out(this,t)},kGt.gc=function(){return this.d},kGt.mc=function(t){return kK(),new $f(t)},kGt.nc=function(){return new jv(this)},kGt.oc=function(){return Hkt(this.c.Cc().Nc(),new o,64,this.d)},kGt.pc=function(t,e){return new W7(this,t,e,null)},kGt.d=0,bY(WGt,"AbstractMapBasedMultimap",726),fIt(1631,726,GGt),kGt.hc=function(){return new K7(this.a)},kGt.jc=function(){return kK(),kK(),cne},kGt.cc=function(t){return jz(c7(this,t),15)},kGt.fc=function(t){return jz(Out(this,t),15)},kGt.Zb=function(){return TK(this)},kGt.Fb=function(t){return xlt(this,t)},kGt.qc=function(t){return jz(c7(this,t),15)},kGt.rc=function(t){return jz(Out(this,t),15)},kGt.mc=function(t){return nX(jz(t,15))},kGt.pc=function(t,e){return e4(this,t,jz(e,15),null)},bY(WGt,"AbstractListMultimap",1631),fIt(732,1,ZGt),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.c.Ob()||this.e.Ob()},kGt.Pb=function(){var t;return this.e.Ob()||(t=jz(this.c.Pb(),42),this.b=t.cd(),this.a=jz(t.dd(),14),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},kGt.Qb=function(){this.e.Qb(),this.a.dc()&&this.c.Qb(),--this.d.d},bY(WGt,"AbstractMapBasedMultimap/Itr",732),fIt(1099,732,ZGt,jv),kGt.sc=function(t,e){return e},bY(WGt,"AbstractMapBasedMultimap/1",1099),fIt(1100,1,{},o),kGt.Kb=function(t){return jz(t,14).Nc()},bY(WGt,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1100),fIt(1101,732,ZGt,$v),kGt.sc=function(t,e){return new bk(t,e)},bY(WGt,"AbstractMapBasedMultimap/2",1101);var Ote=dU(KGt,"Map");fIt(1967,1,XGt),kGt.wc=function(t){Qrt(this,t)},kGt.yc=function(t,e,n){return Jht(this,t,e,n)},kGt.$b=function(){this.vc().$b()},kGt.tc=function(t){return kvt(this,t)},kGt._b=function(t){return!!j_t(this,t,!1)},kGt.uc=function(t){var e,n;for(e=this.vc().Kc();e.Ob();)if(n=jz(e.Pb(),42).dd(),HA(t)===HA(n)||null!=t&&Odt(t,n))return!0;return!1},kGt.Fb=function(t){var e,n,i;if(t===this)return!0;if(!iO(t,83)||(i=jz(t,83),this.gc()!=i.gc()))return!1;for(n=i.vc().Kc();n.Ob();)if(e=jz(n.Pb(),42),!this.tc(e))return!1;return!0},kGt.xc=function(t){return zA(j_t(this,t,!1))},kGt.Hb=function(){return zst(this.vc())},kGt.dc=function(){return 0==this.gc()},kGt.ec=function(){return new Cf(this)},kGt.zc=function(t,e){throw $m(new Qw("Put not supported on this map"))},kGt.Ac=function(t){_rt(this,t)},kGt.Bc=function(t){return zA(j_t(this,t,!0))},kGt.gc=function(){return this.vc().gc()},kGt.Ib=function(){return Q_t(this)},kGt.Cc=function(){return new Tf(this)},bY(KGt,"AbstractMap",1967),fIt(1987,1967,XGt),kGt.bc=function(){return new kk(this)},kGt.vc=function(){return fq(this)},kGt.ec=function(){return this.g||(this.g=this.bc())},kGt.Cc=function(){return this.i||(this.i=new Ek(this))},bY(WGt,"Maps/ViewCachingAbstractMap",1987),fIt(389,1987,XGt,pk),kGt.xc=function(t){return wet(this,t)},kGt.Bc=function(t){return Jlt(this,t)},kGt.$b=function(){this.d==this.e.c?this.e.$b():CU(new TU(this))},kGt._b=function(t){return pdt(this.d,t)},kGt.Ec=function(){return new Vd(this)},kGt.Dc=function(){return this.Ec()},kGt.Fb=function(t){return this===t||Odt(this.d,t)},kGt.Hb=function(){return Qct(this.d)},kGt.ec=function(){return this.e.ec()},kGt.gc=function(){return this.d.gc()},kGt.Ib=function(){return $ft(this.d)},bY(WGt,"AbstractMapBasedMultimap/AsMap",389);var Mte=dU(BGt,"Iterable");fIt(28,1,JGt),kGt.Jc=function(t){t6(this,t)},kGt.Lc=function(){return this.Oc()},kGt.Nc=function(){return new h1(this,0)},kGt.Oc=function(){return new NU(null,this.Nc())},kGt.Fc=function(t){throw $m(new Qw("Add not supported on this collection"))},kGt.Gc=function(t){return jat(this,t)},kGt.$b=function(){RZ(this)},kGt.Hc=function(t){return vgt(this,t,!1)},kGt.Ic=function(t){return sst(this,t)},kGt.dc=function(){return 0==this.gc()},kGt.Mc=function(t){return vgt(this,t,!0)},kGt.Pc=function(){return iq(this)},kGt.Qc=function(t){return Rvt(this,t)},kGt.Ib=function(){return LEt(this)},bY(KGt,"AbstractCollection",28);var Nte=dU(KGt,"Set");fIt(QGt,28,tZt),kGt.Nc=function(){return new h1(this,1)},kGt.Fb=function(t){return nbt(this,t)},kGt.Hb=function(){return zst(this)},bY(KGt,"AbstractSet",QGt),fIt(1970,QGt,tZt),bY(WGt,"Sets/ImprovedAbstractSet",1970),fIt(1971,1970,tZt),kGt.$b=function(){this.Rc().$b()},kGt.Hc=function(t){return npt(this,t)},kGt.dc=function(){return this.Rc().dc()},kGt.Mc=function(t){var e;return!!this.Hc(t)&&(e=jz(t,42),this.Rc().ec().Mc(e.cd()))},kGt.gc=function(){return this.Rc().gc()},bY(WGt,"Maps/EntrySet",1971),fIt(1097,1971,tZt,Vd),kGt.Hc=function(t){return fdt(this.a.d.vc(),t)},kGt.Kc=function(){return new TU(this.a)},kGt.Rc=function(){return this.a},kGt.Mc=function(t){var e;return!!fdt(this.a.d.vc(),t)&&(e=jz(t,42),$6(this.a.e,e.cd()),!0)},kGt.Nc=function(){return Nz(this.a.d.vc().Nc(),new qd(this.a))},bY(WGt,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1097),fIt(1098,1,{},qd),kGt.Kb=function(t){return e6(this.a,jz(t,42))},bY(WGt,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1098),fIt(730,1,ZGt,TU),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){var t;return t=jz(this.b.Pb(),42),this.a=jz(t.dd(),14),e6(this.c,t)},kGt.Ob=function(){return this.b.Ob()},kGt.Qb=function(){lot(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},bY(WGt,"AbstractMapBasedMultimap/AsMap/AsMapIterator",730),fIt(532,1970,tZt,kk),kGt.$b=function(){this.b.$b()},kGt.Hc=function(t){return this.b._b(t)},kGt.Jc=function(t){yY(t),this.b.wc(new ph(t))},kGt.dc=function(){return this.b.dc()},kGt.Kc=function(){return new uw(this.b.vc().Kc())},kGt.Mc=function(t){return!!this.b._b(t)&&(this.b.Bc(t),!0)},kGt.gc=function(){return this.b.gc()},bY(WGt,"Maps/KeySet",532),fIt(318,532,tZt,$O),kGt.$b=function(){CU(new tk(this,this.b.vc().Kc()))},kGt.Ic=function(t){return this.b.ec().Ic(t)},kGt.Fb=function(t){return this===t||Odt(this.b.ec(),t)},kGt.Hb=function(){return Qct(this.b.ec())},kGt.Kc=function(){return new tk(this,this.b.vc().Kc())},kGt.Mc=function(t){var e,n;return n=0,(e=jz(this.b.Bc(t),14))&&(n=e.gc(),e.$b(),this.a.d-=n),n>0},kGt.Nc=function(){return this.b.ec().Nc()},bY(WGt,"AbstractMapBasedMultimap/KeySet",318),fIt(731,1,ZGt,tk),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.c.Ob()},kGt.Pb=function(){return this.a=jz(this.c.Pb(),42),this.a.cd()},kGt.Qb=function(){var t;lot(!!this.a),t=jz(this.a.dd(),14),this.c.Qb(),this.b.a.d-=t.gc(),t.$b(),this.a=null},bY(WGt,"AbstractMapBasedMultimap/KeySet/1",731),fIt(491,389,{83:1,161:1},CB),kGt.bc=function(){return this.Sc()},kGt.ec=function(){return this.Tc()},kGt.Sc=function(){return new J_(this.c,this.Uc())},kGt.Tc=function(){return this.b||(this.b=this.Sc())},kGt.Uc=function(){return jz(this.d,161)},bY(WGt,"AbstractMapBasedMultimap/SortedAsMap",491),fIt(542,491,eZt,SB),kGt.bc=function(){return new Q_(this.a,jz(jz(this.d,161),171))},kGt.Sc=function(){return new Q_(this.a,jz(jz(this.d,161),171))},kGt.ec=function(){return jz(this.b||(this.b=new Q_(this.a,jz(jz(this.d,161),171))),271)},kGt.Tc=function(){return jz(this.b||(this.b=new Q_(this.a,jz(jz(this.d,161),171))),271)},kGt.Uc=function(){return jz(jz(this.d,161),171)},bY(WGt,"AbstractMapBasedMultimap/NavigableAsMap",542),fIt(490,318,nZt,J_),kGt.Nc=function(){return this.b.ec().Nc()},bY(WGt,"AbstractMapBasedMultimap/SortedKeySet",490),fIt(388,490,iZt,Q_),bY(WGt,"AbstractMapBasedMultimap/NavigableKeySet",388),fIt(541,28,JGt,W7),kGt.Fc=function(t){var e,n;return Vft(this),n=this.d.dc(),(e=this.d.Fc(t))&&(++this.f.d,n&&wP(this)),e},kGt.Gc=function(t){var e,n,i;return!t.dc()&&(Vft(this),i=this.d.gc(),(e=this.d.Gc(t))&&(n=this.d.gc(),this.f.d+=n-i,0==i&&wP(this)),e)},kGt.$b=function(){var t;Vft(this),0!=(t=this.d.gc())&&(this.d.$b(),this.f.d-=t,DV(this))},kGt.Hc=function(t){return Vft(this),this.d.Hc(t)},kGt.Ic=function(t){return Vft(this),this.d.Ic(t)},kGt.Fb=function(t){return t===this||(Vft(this),Odt(this.d,t))},kGt.Hb=function(){return Vft(this),Qct(this.d)},kGt.Kc=function(){return Vft(this),new Gz(this)},kGt.Mc=function(t){var e;return Vft(this),(e=this.d.Mc(t))&&(--this.f.d,DV(this)),e},kGt.gc=function(){return QA(this)},kGt.Nc=function(){return Vft(this),this.d.Nc()},kGt.Ib=function(){return Vft(this),$ft(this.d)},bY(WGt,"AbstractMapBasedMultimap/WrappedCollection",541);var Bte=dU(KGt,"List");fIt(728,541,{20:1,28:1,14:1,15:1},sq),kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return Vft(this),this.d.Nc()},kGt.Vc=function(t,e){var n;Vft(this),n=this.d.dc(),jz(this.d,15).Vc(t,e),++this.a.d,n&&wP(this)},kGt.Wc=function(t,e){var n,i,a;return!e.dc()&&(Vft(this),a=this.d.gc(),(n=jz(this.d,15).Wc(t,e))&&(i=this.d.gc(),this.a.d+=i-a,0==a&&wP(this)),n)},kGt.Xb=function(t){return Vft(this),jz(this.d,15).Xb(t)},kGt.Xc=function(t){return Vft(this),jz(this.d,15).Xc(t)},kGt.Yc=function(){return Vft(this),new gL(this)},kGt.Zc=function(t){return Vft(this),new gK(this,t)},kGt.$c=function(t){var e;return Vft(this),e=jz(this.d,15).$c(t),--this.a.d,DV(this),e},kGt._c=function(t,e){return Vft(this),jz(this.d,15)._c(t,e)},kGt.bd=function(t,e){return Vft(this),e4(this.a,this.e,jz(this.d,15).bd(t,e),this.b?this.b:this)},bY(WGt,"AbstractMapBasedMultimap/WrappedList",728),fIt(1096,728,{20:1,28:1,14:1,15:1,54:1},TN),bY(WGt,"AbstractMapBasedMultimap/RandomAccessWrappedList",1096),fIt(620,1,ZGt,Gz),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return _Z(this),this.b.Ob()},kGt.Pb=function(){return _Z(this),this.b.Pb()},kGt.Qb=function(){tM(this)},bY(WGt,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",620),fIt(729,620,aZt,gL,gK),kGt.Qb=function(){tM(this)},kGt.Rb=function(t){var e;e=0==QA(this.a),(_Z(this),jz(this.b,125)).Rb(t),++this.a.a.d,e&&wP(this.a)},kGt.Sb=function(){return(_Z(this),jz(this.b,125)).Sb()},kGt.Tb=function(){return(_Z(this),jz(this.b,125)).Tb()},kGt.Ub=function(){return(_Z(this),jz(this.b,125)).Ub()},kGt.Vb=function(){return(_Z(this),jz(this.b,125)).Vb()},kGt.Wb=function(t){(_Z(this),jz(this.b,125)).Wb(t)},bY(WGt,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",729),fIt(727,541,nZt,LB),kGt.Nc=function(){return Vft(this),this.d.Nc()},bY(WGt,"AbstractMapBasedMultimap/WrappedSortedSet",727),fIt(1095,727,iZt,AI),bY(WGt,"AbstractMapBasedMultimap/WrappedNavigableSet",1095),fIt(1094,541,tZt,OB),kGt.Nc=function(){return Vft(this),this.d.Nc()},bY(WGt,"AbstractMapBasedMultimap/WrappedSet",1094),fIt(1103,1,{},s),kGt.Kb=function(t){return F7(jz(t,42))},bY(WGt,"AbstractMapBasedMultimap/lambda$1$Type",1103),fIt(1102,1,{},Wd),kGt.Kb=function(t){return new bk(this.a,t)},bY(WGt,"AbstractMapBasedMultimap/lambda$2$Type",1102);var Pte,Fte,jte,$te,zte=dU(KGt,"Map/Entry");fIt(345,1,rZt),kGt.Fb=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),hG(this.cd(),e.cd())&&hG(this.dd(),e.dd()))},kGt.Hb=function(){var t,e;return t=this.cd(),e=this.dd(),(null==t?0:Qct(t))^(null==e?0:Qct(e))},kGt.ed=function(t){throw $m(new py)},kGt.Ib=function(){return this.cd()+"="+this.dd()},bY(WGt,oZt,345),fIt(1988,28,JGt),kGt.$b=function(){this.fd().$b()},kGt.Hc=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),$0(this.fd(),e.cd(),e.dd()))},kGt.Mc=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),z0(this.fd(),e.cd(),e.dd()))},kGt.gc=function(){return this.fd().d},bY(WGt,"Multimaps/Entries",1988),fIt(733,1988,JGt,Yd),kGt.Kc=function(){return this.a.kc()},kGt.fd=function(){return this.a},kGt.Nc=function(){return this.a.lc()},bY(WGt,"AbstractMultimap/Entries",733),fIt(734,733,tZt,zv),kGt.Nc=function(){return this.a.lc()},kGt.Fb=function(t){return VCt(this,t)},kGt.Hb=function(){return $at(this)},bY(WGt,"AbstractMultimap/EntrySet",734),fIt(735,28,JGt,Gd),kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return Tlt(this.a,t)},kGt.Kc=function(){return this.a.nc()},kGt.gc=function(){return this.a.d},kGt.Nc=function(){return this.a.oc()},bY(WGt,"AbstractMultimap/Values",735),fIt(1989,28,{835:1,20:1,28:1,14:1}),kGt.Jc=function(t){yY(t),xZ(this).Jc(new gh(t))},kGt.Nc=function(){var t;return Hkt(t=xZ(this).Nc(),new w,64|1296&t.qd(),this.a.d)},kGt.Fc=function(t){return hx(),!0},kGt.Gc=function(t){return yY(this),yY(t),iO(t,543)?u2(jz(t,835)):!t.dc()&<t(this,t.Kc())},kGt.Hc=function(t){var e;return((e=jz(ddt(TK(this.a),t),14))?e.gc():0)>0},kGt.Fb=function(t){return lLt(this,t)},kGt.Hb=function(){return Qct(xZ(this))},kGt.dc=function(){return xZ(this).dc()},kGt.Mc=function(t){return RAt(this,t,1)>0},kGt.Ib=function(){return $ft(xZ(this))},bY(WGt,"AbstractMultiset",1989),fIt(1991,1970,tZt),kGt.$b=function(){fit(this.a.a)},kGt.Hc=function(t){var e;return!(!iO(t,492)||(e=jz(t,416),jz(e.a.dd(),14).gc()<=0||i1(this.a,e.a.cd())!=jz(e.a.dd(),14).gc()))},kGt.Mc=function(t){var e,n,i;return!(!iO(t,492)||(n=jz(t,416),e=n.a.cd(),i=jz(n.a.dd(),14).gc(),0==i))&&_At(this.a,e,i)},bY(WGt,"Multisets/EntrySet",1991),fIt(1109,1991,tZt,Zd),kGt.Kc=function(){return new hw(fq(TK(this.a.a)).Kc())},kGt.gc=function(){return TK(this.a.a).gc()},bY(WGt,"AbstractMultiset/EntrySet",1109),fIt(619,726,GGt),kGt.hc=function(){return this.gd()},kGt.jc=function(){return this.hd()},kGt.cc=function(t){return this.jd(t)},kGt.fc=function(t){return this.kd(t)},kGt.Zb=function(){return this.f||(this.f=this.ac())},kGt.hd=function(){return kK(),kK(),une},kGt.Fb=function(t){return xlt(this,t)},kGt.jd=function(t){return jz(c7(this,t),21)},kGt.kd=function(t){return jz(Out(this,t),21)},kGt.mc=function(t){return kK(),new Ax(jz(t,21))},kGt.pc=function(t,e){return new OB(this,t,jz(e,21))},bY(WGt,"AbstractSetMultimap",619),fIt(1657,619,GGt),kGt.hc=function(){return new f_(this.b)},kGt.gd=function(){return new f_(this.b)},kGt.jc=function(){return SY(new f_(this.b))},kGt.hd=function(){return SY(new f_(this.b))},kGt.cc=function(t){return jz(jz(c7(this,t),21),84)},kGt.jd=function(t){return jz(jz(c7(this,t),21),84)},kGt.fc=function(t){return jz(jz(Out(this,t),21),84)},kGt.kd=function(t){return jz(jz(Out(this,t),21),84)},kGt.mc=function(t){return iO(t,271)?SY(jz(t,271)):(kK(),new fM(jz(t,84)))},kGt.Zb=function(){return this.f||(this.f=iO(this.c,171)?new SB(this,jz(this.c,171)):iO(this.c,161)?new CB(this,jz(this.c,161)):new pk(this,this.c))},kGt.pc=function(t,e){return iO(e,271)?new AI(this,t,jz(e,271)):new LB(this,t,jz(e,84))},bY(WGt,"AbstractSortedSetMultimap",1657),fIt(1658,1657,GGt),kGt.Zb=function(){return jz(jz(this.f||(this.f=iO(this.c,171)?new SB(this,jz(this.c,171)):iO(this.c,161)?new CB(this,jz(this.c,161)):new pk(this,this.c)),161),171)},kGt.ec=function(){return jz(jz(this.i||(this.i=iO(this.c,171)?new Q_(this,jz(this.c,171)):iO(this.c,161)?new J_(this,jz(this.c,161)):new $O(this,this.c)),84),271)},kGt.bc=function(){return iO(this.c,171)?new Q_(this,jz(this.c,171)):iO(this.c,161)?new J_(this,jz(this.c,161)):new $O(this,this.c)},bY(WGt,"AbstractSortedKeySortedSetMultimap",1658),fIt(2010,1,{1947:1}),kGt.Fb=function(t){return SRt(this,t)},kGt.Hb=function(){return zst(this.g||(this.g=new Kd(this)))},kGt.Ib=function(){return Q_t(this.f||(this.f=new VO(this)))},bY(WGt,"AbstractTable",2010),fIt(665,QGt,tZt,Kd),kGt.$b=function(){fx()},kGt.Hc=function(t){var e,n;return!!iO(t,468)&&(e=jz(t,682),!!(n=jz(ddt(wY(this.a),WA(e.c.e,e.b)),83))&&fdt(n.vc(),new bk(WA(e.c.c,e.a),V7(e.c,e.b,e.a))))},kGt.Kc=function(){return XK(this.a)},kGt.Mc=function(t){var e,n;return!!iO(t,468)&&(e=jz(t,682),!!(n=jz(ddt(wY(this.a),WA(e.c.e,e.b)),83))&&gdt(n.vc(),new bk(WA(e.c.c,e.a),V7(e.c,e.b,e.a))))},kGt.gc=function(){return UU(this.a)},kGt.Nc=function(){return E2(this.a)},bY(WGt,"AbstractTable/CellSet",665),fIt(1928,28,JGt,Xd),kGt.$b=function(){fx()},kGt.Hc=function(t){return lkt(this.a,t)},kGt.Kc=function(){return JK(this.a)},kGt.gc=function(){return UU(this.a)},kGt.Nc=function(){return Z0(this.a)},bY(WGt,"AbstractTable/Values",1928),fIt(1632,1631,GGt),bY(WGt,"ArrayListMultimapGwtSerializationDependencies",1632),fIt(513,1632,GGt,ox,o1),kGt.hc=function(){return new K7(this.a)},kGt.a=0,bY(WGt,"ArrayListMultimap",513),fIt(664,2010,{664:1,1947:1,3:1},mDt),bY(WGt,"ArrayTable",664),fIt(1924,386,YGt,zO),kGt.Xb=function(t){return new pct(this.a,t)},bY(WGt,"ArrayTable/1",1924),fIt(1925,1,{},zd),kGt.ld=function(t){return new pct(this.a,t)},bY(WGt,"ArrayTable/1methodref$getCell$Type",1925),fIt(2011,1,{682:1}),kGt.Fb=function(t){var e;return t===this||!!iO(t,468)&&(e=jz(t,682),hG(WA(this.c.e,this.b),WA(e.c.e,e.b))&&hG(WA(this.c.c,this.a),WA(e.c.c,e.a))&&hG(V7(this.c,this.b,this.a),V7(e.c,e.b,e.a)))},kGt.Hb=function(){return uut(Cst(Hx(Dte,1),zGt,1,5,[WA(this.c.e,this.b),WA(this.c.c,this.a),V7(this.c,this.b,this.a)]))},kGt.Ib=function(){return"("+WA(this.c.e,this.b)+","+WA(this.c.c,this.a)+")="+V7(this.c,this.b,this.a)},bY(WGt,"Tables/AbstractCell",2011),fIt(468,2011,{468:1,682:1},pct),kGt.a=0,kGt.b=0,kGt.d=0,bY(WGt,"ArrayTable/2",468),fIt(1927,1,{},Hd),kGt.ld=function(t){return Z8(this.a,t)},bY(WGt,"ArrayTable/2methodref$getValue$Type",1927),fIt(1926,386,YGt,HO),kGt.Xb=function(t){return Z8(this.a,t)},bY(WGt,"ArrayTable/3",1926),fIt(1979,1967,XGt),kGt.$b=function(){CU(this.kc())},kGt.vc=function(){return new bh(this)},kGt.lc=function(){return new CZ(this.kc(),this.gc())},bY(WGt,"Maps/IteratorBasedAbstractMap",1979),fIt(828,1979,XGt),kGt.$b=function(){throw $m(new py)},kGt._b=function(t){return ZR(this.c,t)},kGt.kc=function(){return new UO(this,this.c.b.c.gc())},kGt.lc=function(){return yU(this.c.b.c.gc(),16,new Ud(this))},kGt.xc=function(t){var e;return(e=jz(VF(this.c,t),19))?this.nd(e.a):null},kGt.dc=function(){return this.c.b.c.dc()},kGt.ec=function(){return dq(this.c)},kGt.zc=function(t,e){var n;if(!(n=jz(VF(this.c,t),19)))throw $m(new Pw(this.md()+" "+t+" not in "+dq(this.c)));return this.od(n.a,e)},kGt.Bc=function(t){throw $m(new py)},kGt.gc=function(){return this.c.b.c.gc()},bY(WGt,"ArrayTable/ArrayMap",828),fIt(1923,1,{},Ud),kGt.ld=function(t){return TY(this.a,t)},bY(WGt,"ArrayTable/ArrayMap/0methodref$getEntry$Type",1923),fIt(1921,345,rZt,sk),kGt.cd=function(){return ZO(this.a,this.b)},kGt.dd=function(){return this.a.nd(this.b)},kGt.ed=function(t){return this.a.od(this.b,t)},kGt.b=0,bY(WGt,"ArrayTable/ArrayMap/1",1921),fIt(1922,386,YGt,UO),kGt.Xb=function(t){return TY(this.a,t)},bY(WGt,"ArrayTable/ArrayMap/2",1922),fIt(1920,828,XGt,iW),kGt.md=function(){return"Column"},kGt.nd=function(t){return V7(this.b,this.a,t)},kGt.od=function(t,e){return Est(this.b,this.a,t,e)},kGt.a=0,bY(WGt,"ArrayTable/Row",1920),fIt(829,828,XGt,VO),kGt.nd=function(t){return new iW(this.a,t)},kGt.zc=function(t,e){return jz(e,83),gx()},kGt.od=function(t,e){return jz(e,83),px()},kGt.md=function(){return"Row"},bY(WGt,"ArrayTable/RowMap",829),fIt(1120,1,uZt,ck),kGt.qd=function(){return-262&this.a.qd()},kGt.rd=function(){return this.a.rd()},kGt.Nb=function(t){this.a.Nb(new ik(t,this.b))},kGt.sd=function(t){return this.a.sd(new nk(t,this.b))},bY(WGt,"CollectSpliterators/1",1120),fIt(1121,1,dZt,nk),kGt.td=function(t){this.a.td(this.b.Kb(t))},bY(WGt,"CollectSpliterators/1/lambda$0$Type",1121),fIt(1122,1,dZt,ik),kGt.td=function(t){this.a.td(this.b.Kb(t))},bY(WGt,"CollectSpliterators/1/lambda$1$Type",1122),fIt(1123,1,uZt,z2),kGt.qd=function(){return this.a},kGt.rd=function(){return this.d&&(this.b=RL(this.b,this.d.rd())),RL(this.b,0)},kGt.Nb=function(t){this.d&&(this.d.Nb(t),this.d=null),this.c.Nb(new ek(this.e,t)),this.b=0},kGt.sd=function(t){for(;;){if(this.d&&this.d.sd(t))return KA(this.b,hZt)&&(this.b=nft(this.b,1)),!0;if(this.d=null,!this.c.sd(new ak(this,this.e)))return!1}},kGt.a=0,kGt.b=0,bY(WGt,"CollectSpliterators/1FlatMapSpliterator",1123),fIt(1124,1,dZt,ak),kGt.td=function(t){fF(this.a,this.b,t)},bY(WGt,"CollectSpliterators/1FlatMapSpliterator/lambda$0$Type",1124),fIt(1125,1,dZt,ek),kGt.td=function(t){oO(this.b,this.a,t)},bY(WGt,"CollectSpliterators/1FlatMapSpliterator/lambda$1$Type",1125),fIt(1117,1,uZt,hF),kGt.qd=function(){return 16464|this.b},kGt.rd=function(){return this.a.rd()},kGt.Nb=function(t){this.a.xe(new ok(t,this.c))},kGt.sd=function(t){return this.a.ye(new rk(t,this.c))},kGt.b=0,bY(WGt,"CollectSpliterators/1WithCharacteristics",1117),fIt(1118,1,fZt,rk),kGt.ud=function(t){this.a.td(this.b.ld(t))},bY(WGt,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1118),fIt(1119,1,fZt,ok),kGt.ud=function(t){this.a.td(this.b.ld(t))},bY(WGt,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1119),fIt(245,1,gZt),kGt.wd=function(t){return this.vd(jz(t,245))},kGt.vd=function(t){var e;return t==(Qv(),Fte)?1:t==(tw(),Pte)?-1:(JH(),0!=(e=Ort(this.a,t.a))?e:iO(this,519)==iO(t,519)?0:iO(this,519)?1:-1)},kGt.zd=function(){return this.a},kGt.Fb=function(t){return Mpt(this,t)},bY(WGt,"Cut",245),fIt(1761,245,gZt,Lx),kGt.vd=function(t){return t==this?0:1},kGt.xd=function(t){throw $m(new cy)},kGt.yd=function(t){t.a+="+\u221e)"},kGt.zd=function(){throw $m(new Fw(pZt))},kGt.Hb=function(){return Dk(),eyt(this)},kGt.Ad=function(t){return!1},kGt.Ib=function(){return"+\u221e"},bY(WGt,"Cut/AboveAll",1761),fIt(519,245,{245:1,519:1,3:1,35:1},eM),kGt.xd=function(t){rD((t.a+="(",t),this.a)},kGt.yd=function(t){OY(rD(t,this.a),93)},kGt.Hb=function(){return~Qct(this.a)},kGt.Ad=function(t){return JH(),Ort(this.a,t)<0},kGt.Ib=function(){return"/"+this.a+"\\"},bY(WGt,"Cut/AboveValue",519),fIt(1760,245,gZt,Ox),kGt.vd=function(t){return t==this?0:-1},kGt.xd=function(t){t.a+="(-\u221e"},kGt.yd=function(t){throw $m(new cy)},kGt.zd=function(){throw $m(new Fw(pZt))},kGt.Hb=function(){return Dk(),eyt(this)},kGt.Ad=function(t){return!0},kGt.Ib=function(){return"-\u221e"},bY(WGt,"Cut/BelowAll",1760),fIt(1762,245,gZt,nM),kGt.xd=function(t){rD((t.a+="[",t),this.a)},kGt.yd=function(t){OY(rD(t,this.a),41)},kGt.Hb=function(){return Qct(this.a)},kGt.Ad=function(t){return JH(),Ort(this.a,t)<=0},kGt.Ib=function(){return"\\"+this.a+"/"},bY(WGt,"Cut/BelowValue",1762),fIt(537,1,bZt),kGt.Jc=function(t){t6(this,t)},kGt.Ib=function(){return zht(jz(WK(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},bY(WGt,"FluentIterable",537),fIt(433,537,bZt,TD),kGt.Kc=function(){return new oq(XO(this.a.Kc(),new u))},bY(WGt,"FluentIterable/2",433),fIt(1046,537,bZt,AD),kGt.Kc=function(){return LW(this)},bY(WGt,"FluentIterable/3",1046),fIt(708,386,YGt,WO),kGt.Xb=function(t){return this.a[t].Kc()},bY(WGt,"FluentIterable/3/1",708),fIt(1972,1,{}),kGt.Ib=function(){return $ft(this.Bd().b)},bY(WGt,"ForwardingObject",1972),fIt(1973,1972,mZt),kGt.Bd=function(){return this.Cd()},kGt.Jc=function(t){t6(this,t)},kGt.Lc=function(){return this.Oc()},kGt.Nc=function(){return new h1(this,0)},kGt.Oc=function(){return new NU(null,this.Nc())},kGt.Fc=function(t){return this.Cd(),o_()},kGt.Gc=function(t){return this.Cd(),s_()},kGt.$b=function(){this.Cd(),c_()},kGt.Hc=function(t){return this.Cd().Hc(t)},kGt.Ic=function(t){return this.Cd().Ic(t)},kGt.dc=function(){return this.Cd().b.dc()},kGt.Kc=function(){return this.Cd().Kc()},kGt.Mc=function(t){return this.Cd(),l_()},kGt.gc=function(){return this.Cd().b.gc()},kGt.Pc=function(){return this.Cd().Pc()},kGt.Qc=function(t){return this.Cd().Qc(t)},bY(WGt,"ForwardingCollection",1973),fIt(1980,28,yZt),kGt.Kc=function(){return this.Ed()},kGt.Fc=function(t){throw $m(new py)},kGt.Gc=function(t){throw $m(new py)},kGt.$b=function(){throw $m(new py)},kGt.Hc=function(t){return null!=t&&vgt(this,t,!1)},kGt.Dd=function(){switch(this.gc()){case 0:return WY(),WY(),jte;case 1:return WY(),new EU(yY(this.Ed().Pb()));default:return new aW(this,this.Pc())}},kGt.Mc=function(t){throw $m(new py)},bY(WGt,"ImmutableCollection",1980),fIt(712,1980,yZt,ny),kGt.Kc=function(){return I8(this.a.Kc())},kGt.Hc=function(t){return null!=t&&this.a.Hc(t)},kGt.Ic=function(t){return this.a.Ic(t)},kGt.dc=function(){return this.a.dc()},kGt.Ed=function(){return I8(this.a.Kc())},kGt.gc=function(){return this.a.gc()},kGt.Pc=function(){return this.a.Pc()},kGt.Qc=function(t){return this.a.Qc(t)},kGt.Ib=function(){return $ft(this.a)},bY(WGt,"ForwardingImmutableCollection",712),fIt(152,1980,vZt),kGt.Kc=function(){return this.Ed()},kGt.Yc=function(){return this.Fd(0)},kGt.Zc=function(t){return this.Fd(t)},kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.bd=function(t,e){return this.Gd(t,e)},kGt.Vc=function(t,e){throw $m(new py)},kGt.Wc=function(t,e){throw $m(new py)},kGt.Fb=function(t){return HIt(this,t)},kGt.Hb=function(){return Tot(this)},kGt.Xc=function(t){return null==t?-1:_vt(this,t)},kGt.Ed=function(){return this.Fd(0)},kGt.Fd=function(t){return eN(this,t)},kGt.$c=function(t){throw $m(new py)},kGt._c=function(t,e){throw $m(new py)},kGt.Gd=function(t,e){return cdt(new s1(new Sk(this),t,e))},bY(WGt,"ImmutableList",152),fIt(2006,152,vZt),kGt.Kc=function(){return I8(this.Hd().Kc())},kGt.bd=function(t,e){return cdt(this.Hd().bd(t,e))},kGt.Hc=function(t){return null!=t&&this.Hd().Hc(t)},kGt.Ic=function(t){return this.Hd().Ic(t)},kGt.Fb=function(t){return Odt(this.Hd(),t)},kGt.Xb=function(t){return WA(this,t)},kGt.Hb=function(){return Qct(this.Hd())},kGt.Xc=function(t){return this.Hd().Xc(t)},kGt.dc=function(){return this.Hd().dc()},kGt.Ed=function(){return I8(this.Hd().Kc())},kGt.gc=function(){return this.Hd().gc()},kGt.Gd=function(t,e){return cdt(this.Hd().bd(t,e))},kGt.Pc=function(){return this.Hd().Qc(O5(Dte,zGt,1,this.Hd().gc(),5,1))},kGt.Qc=function(t){return this.Hd().Qc(t)},kGt.Ib=function(){return $ft(this.Hd())},bY(WGt,"ForwardingImmutableList",2006),fIt(714,1,xZt),kGt.vc=function(){return uq(this)},kGt.wc=function(t){Qrt(this,t)},kGt.ec=function(){return dq(this)},kGt.yc=function(t,e,n){return Jht(this,t,e,n)},kGt.Cc=function(){return this.Ld()},kGt.$b=function(){throw $m(new py)},kGt._b=function(t){return null!=this.xc(t)},kGt.uc=function(t){return this.Ld().Hc(t)},kGt.Jd=function(){return new iy(this)},kGt.Kd=function(){return new ay(this)},kGt.Fb=function(t){return Ilt(this,t)},kGt.Hb=function(){return uq(this).Hb()},kGt.dc=function(){return 0==this.gc()},kGt.zc=function(t,e){return bx()},kGt.Bc=function(t){throw $m(new py)},kGt.Ib=function(){return uCt(this)},kGt.Ld=function(){return this.e?this.e:this.e=this.Kd()},kGt.c=null,kGt.d=null,kGt.e=null,bY(WGt,"ImmutableMap",714),fIt(715,714,xZt),kGt._b=function(t){return ZR(this,t)},kGt.uc=function(t){return Pk(this.b,t)},kGt.Id=function(){return ldt(new Qd(this))},kGt.Jd=function(){return ldt(eZ(this.b))},kGt.Kd=function(){return sj(),new ny(QG(this.b))},kGt.Fb=function(t){return jk(this.b,t)},kGt.xc=function(t){return VF(this,t)},kGt.Hb=function(){return Qct(this.b.c)},kGt.dc=function(){return this.b.c.dc()},kGt.gc=function(){return this.b.c.gc()},kGt.Ib=function(){return $ft(this.b.c)},bY(WGt,"ForwardingImmutableMap",715),fIt(1974,1973,RZt),kGt.Bd=function(){return this.Md()},kGt.Cd=function(){return this.Md()},kGt.Nc=function(){return new h1(this,1)},kGt.Fb=function(t){return t===this||this.Md().Fb(t)},kGt.Hb=function(){return this.Md().Hb()},bY(WGt,"ForwardingSet",1974),fIt(1069,1974,RZt,Qd),kGt.Bd=function(){return tZ(this.a.b)},kGt.Cd=function(){return tZ(this.a.b)},kGt.Hc=function(t){if(iO(t,42)&&null==jz(t,42).cd())return!1;try{return Bk(tZ(this.a.b),t)}catch(e){if(iO(e=dst(e),205))return!1;throw $m(e)}},kGt.Md=function(){return tZ(this.a.b)},kGt.Qc=function(t){var e;return e=SX(tZ(this.a.b),t),tZ(this.a.b).b.gc()<e.length&&DY(e,tZ(this.a.b).b.gc(),null),e},bY(WGt,"ForwardingImmutableMap/1",1069),fIt(1981,1980,_Zt),kGt.Kc=function(){return this.Ed()},kGt.Nc=function(){return new h1(this,1)},kGt.Fb=function(t){return VCt(this,t)},kGt.Hb=function(){return $at(this)},bY(WGt,"ImmutableSet",1981),fIt(703,1981,_Zt),kGt.Kc=function(){return I8(new zf(this.a.b.Kc()))},kGt.Hc=function(t){return null!=t&&Ok(this.a,t)},kGt.Ic=function(t){return Mk(this.a,t)},kGt.Hb=function(){return Qct(this.a.b)},kGt.dc=function(){return this.a.b.dc()},kGt.Ed=function(){return I8(new zf(this.a.b.Kc()))},kGt.gc=function(){return this.a.b.gc()},kGt.Pc=function(){return this.a.b.Pc()},kGt.Qc=function(t){return Nk(this.a,t)},kGt.Ib=function(){return $ft(this.a.b)},bY(WGt,"ForwardingImmutableSet",703),fIt(1975,1974,kZt),kGt.Bd=function(){return this.b},kGt.Cd=function(){return this.b},kGt.Md=function(){return this.b},kGt.Nc=function(){return new hC(this)},bY(WGt,"ForwardingSortedSet",1975),fIt(533,1979,xZt,Dyt),kGt.Ac=function(t){_rt(this,t)},kGt.Cc=function(){return new pL(this.d||(this.d=new th(this)))},kGt.$b=function(){f6(this)},kGt._b=function(t){return!!Xat(this,t,fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15))))},kGt.uc=function(t){return Let(this,t)},kGt.kc=function(){return new YO(this,this)},kGt.wc=function(t){jJ(this,t)},kGt.xc=function(t){return cnt(this,t)},kGt.ec=function(){return new bL(this)},kGt.zc=function(t,e){return fFt(this,t,e)},kGt.Bc=function(t){var e;return(e=Xat(this,t,fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15)))))?(LOt(this,e),e.e=null,e.c=null,e.i):null},kGt.gc=function(){return this.i},kGt.pd=function(){return new pL(this.d||(this.d=new th(this)))},kGt.f=0,kGt.g=0,kGt.i=0,bY(WGt,"HashBiMap",533),fIt(534,1,ZGt),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return u4(this)},kGt.Pb=function(){var t;if(!u4(this))throw $m(new yy);return t=this.c,this.c=t.c,this.f=t,--this.d,this.Nd(t)},kGt.Qb=function(){if(this.e.g!=this.b)throw $m(new by);lot(!!this.f),LOt(this.e,this.f),this.b=this.e.g,this.f=null},kGt.b=0,kGt.d=0,kGt.f=null,bY(WGt,"HashBiMap/Itr",534),fIt(1011,534,ZGt,YO),kGt.Nd=function(t){return new dk(this,t)},bY(WGt,"HashBiMap/1",1011),fIt(1012,345,rZt,dk),kGt.cd=function(){return this.a.g},kGt.dd=function(){return this.a.i},kGt.ed=function(t){var e,n,i;return n=this.a.i,(i=fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15))))==this.a.f&&(HA(t)===HA(n)||null!=t&&Odt(t,n))?t:(vst(!Jat(this.b.a,t,i),t),LOt(this.b.a,this.a),e=new zG(this.a.g,this.a.a,t,i),KTt(this.b.a,e,this.a),this.a.e=null,this.a.c=null,this.b.b=this.b.a.g,this.b.f==this.a&&(this.b.f=e),this.a=e,n)},bY(WGt,"HashBiMap/1/MapEntry",1012),fIt(238,345,{345:1,238:1,3:1,42:1},bk),kGt.cd=function(){return this.g},kGt.dd=function(){return this.i},kGt.ed=function(t){throw $m(new py)},bY(WGt,"ImmutableEntry",238),fIt(317,238,{345:1,317:1,238:1,3:1,42:1},zG),kGt.a=0,kGt.f=0;var Hte,Ute=bY(WGt,"HashBiMap/BiEntry",317);fIt(610,1979,xZt,th),kGt.Ac=function(t){_rt(this,t)},kGt.Cc=function(){return new bL(this.a)},kGt.$b=function(){f6(this.a)},kGt._b=function(t){return Let(this.a,t)},kGt.kc=function(){return new GO(this,this.a)},kGt.wc=function(t){yY(t),jJ(this.a,new eh(t))},kGt.xc=function(t){return qit(this,t)},kGt.ec=function(){return new pL(this)},kGt.zc=function(t,e){return Sjt(this.a,t,e,!1)},kGt.Bc=function(t){var e;return(e=Jat(this.a,t,fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15)))))?(LOt(this.a,e),e.e=null,e.c=null,e.g):null},kGt.gc=function(){return this.a.i},kGt.pd=function(){return new bL(this.a)},bY(WGt,"HashBiMap/Inverse",610),fIt(1008,534,ZGt,GO),kGt.Nd=function(t){return new hk(this,t)},bY(WGt,"HashBiMap/Inverse/1",1008),fIt(1009,345,rZt,hk),kGt.cd=function(){return this.a.i},kGt.dd=function(){return this.a.g},kGt.ed=function(t){var e,n,i;return i=this.a.g,(e=fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15))))==this.a.a&&(HA(t)===HA(i)||null!=t&&Odt(t,i))?t:(vst(!Xat(this.b.a.a,t,e),t),LOt(this.b.a.a,this.a),n=new zG(t,e,this.a.i,this.a.f),this.a=n,KTt(this.b.a.a,n,null),this.b.b=this.b.a.a.g,i)},bY(WGt,"HashBiMap/Inverse/1/InverseEntry",1009),fIt(611,532,tZt,pL),kGt.Kc=function(){return new rw(this.a.a)},kGt.Mc=function(t){var e;return!!(e=Jat(this.a.a,t,fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15)))))&&(LOt(this.a.a,e),!0)},bY(WGt,"HashBiMap/Inverse/InverseKeySet",611),fIt(1007,534,ZGt,rw),kGt.Nd=function(t){return t.i},bY(WGt,"HashBiMap/Inverse/InverseKeySet/1",1007),fIt(1010,1,{},eh),kGt.Od=function(t,e){ty(this.a,t,e)},bY(WGt,"HashBiMap/Inverse/lambda$0$Type",1010),fIt(609,532,tZt,bL),kGt.Kc=function(){return new ow(this.a)},kGt.Mc=function(t){var e;return!!(e=Xat(this.a,t,fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15)))))&&(LOt(this.a,e),e.e=null,e.c=null,!0)},bY(WGt,"HashBiMap/KeySet",609),fIt(1006,534,ZGt,ow),kGt.Nd=function(t){return t.g},bY(WGt,"HashBiMap/KeySet/1",1006),fIt(1093,619,GGt),bY(WGt,"HashMultimapGwtSerializationDependencies",1093),fIt(265,1093,GGt,pJ),kGt.hc=function(){return new d_(tet(this.a))},kGt.gd=function(){return new d_(tet(this.a))},kGt.a=2,bY(WGt,"HashMultimap",265),fIt(1999,152,vZt),kGt.Hc=function(t){return this.Pd().Hc(t)},kGt.dc=function(){return this.Pd().dc()},kGt.gc=function(){return this.Pd().gc()},bY(WGt,"ImmutableAsList",1999),fIt(1931,715,xZt),kGt.Ld=function(){return sj(),new yx(this.a)},kGt.Cc=function(){return sj(),new yx(this.a)},kGt.pd=function(){return sj(),new yx(this.a)},bY(WGt,"ImmutableBiMap",1931),fIt(1977,1,{}),bY(WGt,"ImmutableCollection/Builder",1977),fIt(1022,703,_Zt,sw),bY(WGt,"ImmutableEnumSet",1022),fIt(969,386,YGt,dF),kGt.Xb=function(t){return this.a.Xb(t)},bY(WGt,"ImmutableList/1",969),fIt(968,1977,{},sP),bY(WGt,"ImmutableList/Builder",968),fIt(614,198,qGt,nh),kGt.Ob=function(){return this.a.Ob()},kGt.Pb=function(){return jz(this.a.Pb(),42).cd()},bY(WGt,"ImmutableMap/1",614),fIt(1041,1,{},c),kGt.Kb=function(t){return jz(t,42).cd()},bY(WGt,"ImmutableMap/2methodref$getKey$Type",1041),fIt(1040,1,{},cP),bY(WGt,"ImmutableMap/Builder",1040),fIt(2e3,1981,_Zt),kGt.Kc=function(){return new nh(uq(this.a).Ed())},kGt.Dd=function(){return new ry(this)},kGt.Jc=function(t){var e,n;for(yY(t),n=this.gc(),e=0;e<n;e++)t.td(jz(hq(uq(this.a)).Xb(e),42).cd())},kGt.Ed=function(){var t;return(t=this.c,t||(this.c=new ry(this))).Ed()},kGt.Nc=function(){return yU(this.gc(),1296,new ah(this))},bY(WGt,"IndexedImmutableSet",2e3),fIt(1180,2e3,_Zt,iy),kGt.Kc=function(){return new nh(uq(this.a).Ed())},kGt.Hc=function(t){return this.a._b(t)},kGt.Jc=function(t){yY(t),Qrt(this.a,new ih(t))},kGt.Ed=function(){return new nh(uq(this.a).Ed())},kGt.gc=function(){return this.a.gc()},kGt.Nc=function(){return Nz(uq(this.a).Nc(),new c)},bY(WGt,"ImmutableMapKeySet",1180),fIt(1181,1,{},ih),kGt.Od=function(t,e){sj(),this.a.td(t)},bY(WGt,"ImmutableMapKeySet/lambda$0$Type",1181),fIt(1178,1980,yZt,ay),kGt.Kc=function(){return new BH(this)},kGt.Hc=function(t){return null!=t&&CRt(new BH(this),t)},kGt.Ed=function(){return new BH(this)},kGt.gc=function(){return this.a.gc()},kGt.Nc=function(){return Nz(uq(this.a).Nc(),new l)},bY(WGt,"ImmutableMapValues",1178),fIt(1179,1,{},l),kGt.Kb=function(t){return jz(t,42).dd()},bY(WGt,"ImmutableMapValues/0methodref$getValue$Type",1179),fIt(626,198,qGt,BH),kGt.Ob=function(){return this.a.Ob()},kGt.Pb=function(){return jz(this.a.Pb(),42).dd()},bY(WGt,"ImmutableMapValues/1",626),fIt(1182,1,{},ah),kGt.ld=function(t){return $W(this.a,t)},bY(WGt,"IndexedImmutableSet/0methodref$get$Type",1182),fIt(752,1999,vZt,ry),kGt.Pd=function(){return this.a},kGt.Xb=function(t){return $W(this.a,t)},kGt.gc=function(){return this.a.a.gc()},bY(WGt,"IndexedImmutableSet/1",752),fIt(44,1,{},u),kGt.Kb=function(t){return jz(t,20).Kc()},kGt.Fb=function(t){return this===t},bY(WGt,"Iterables/10",44),fIt(1042,537,bZt,PH),kGt.Jc=function(t){yY(t),this.b.Jc(new fk(this.a,t))},kGt.Kc=function(){return zI(this)},bY(WGt,"Iterables/4",1042),fIt(1043,1,dZt,fk),kGt.td=function(t){RC(this.b,this.a,t)},bY(WGt,"Iterables/4/lambda$0$Type",1043),fIt(1044,537,bZt,FH),kGt.Jc=function(t){yY(t),t6(this.a,new lk(t,this.b))},kGt.Kc=function(){return XO(new AO(this.a),this.b)},bY(WGt,"Iterables/5",1044),fIt(1045,1,dZt,lk),kGt.td=function(t){this.a.td(yI(t))},bY(WGt,"Iterables/5/lambda$0$Type",1045),fIt(1071,198,qGt,rh),kGt.Ob=function(){return this.a.Ob()},kGt.Pb=function(){return this.a.Pb()},bY(WGt,"Iterators/1",1071),fIt(1072,699,qGt,uk),kGt.Yb=function(){for(var t;this.b.Ob();)if(t=this.b.Pb(),this.a.Lb(t))return t;return this.e=2,null},bY(WGt,"Iterators/5",1072),fIt(487,1,ZGt),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.b.Ob()},kGt.Pb=function(){return this.Qd(this.b.Pb())},kGt.Qb=function(){this.b.Qb()},bY(WGt,"TransformedIterator",487),fIt(1073,487,ZGt,JO),kGt.Qd=function(t){return this.a.Kb(t)},bY(WGt,"Iterators/6",1073),fIt(717,198,qGt,oh),kGt.Ob=function(){return!this.a},kGt.Pb=function(){if(this.a)throw $m(new yy);return this.a=!0,this.b},kGt.a=!1,bY(WGt,"Iterators/9",717),fIt(1070,386,YGt,lV),kGt.Xb=function(t){return this.a[this.b+t]},kGt.b=0,bY(WGt,"Iterators/ArrayItr",1070),fIt(39,1,{39:1,47:1},oq),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return gIt(this)},kGt.Pb=function(){return V6(this)},kGt.Qb=function(){lot(!!this.c),this.c.Qb(),this.c=null},bY(WGt,"Iterators/ConcatenatedIterator",39),fIt(22,1,{3:1,35:1,22:1}),kGt.wd=function(t){return Ew(this,jz(t,22))},kGt.Fb=function(t){return this===t},kGt.Hb=function(){return EM(this)},kGt.Ib=function(){return fN(this)},kGt.g=0;var Vte=bY(BGt,"Enum",22);fIt(538,22,{538:1,3:1,35:1,22:1,47:1},iM),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return!1},kGt.Pb=function(){throw $m(new yy)},kGt.Qb=function(){lot(!1)};var qte,Wte,Yte=$nt(WGt,"Iterators/EmptyModifiableIterator",538,Vte,oY,nN);fIt(1834,619,GGt),bY(WGt,"LinkedHashMultimapGwtSerializationDependencies",1834),fIt(1835,1834,GGt,_ut),kGt.hc=function(){return new IM(tet(this.b))},kGt.$b=function(){fit(this),ey(this.a,this.a)},kGt.gd=function(){return new IM(tet(this.b))},kGt.ic=function(t){return new _lt(this,t,this.b)},kGt.kc=function(){return new QO(this)},kGt.lc=function(){return new h1(jz(this.g||(this.g=new zv(this)),21),17)},kGt.ec=function(){return this.i||(this.i=new $O(this,this.c))},kGt.nc=function(){return new dw(new QO(this))},kGt.oc=function(){return Nz(new h1(jz(this.g||(this.g=new zv(this)),21),17),new d)},kGt.b=2,bY(WGt,"LinkedHashMultimap",1835),fIt(1838,1,{},d),kGt.Kb=function(t){return jz(t,42).dd()},bY(WGt,"LinkedHashMultimap/0methodref$getValue$Type",1838),fIt(824,1,ZGt,QO),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return met(this)},kGt.Ob=function(){return this.a!=this.b.a},kGt.Qb=function(){lot(!!this.c),z0(this.b,this.c.g,this.c.i),this.c=null},bY(WGt,"LinkedHashMultimap/1",824),fIt(330,238,{345:1,238:1,330:1,2020:1,3:1,42:1},$G),kGt.Rd=function(){return this.f},kGt.Sd=function(t){this.c=t},kGt.Td=function(t){this.f=t},kGt.d=0;var Gte,Zte=bY(WGt,"LinkedHashMultimap/ValueEntry",330);fIt(1836,1970,{2020:1,20:1,28:1,14:1,21:1},_lt),kGt.Fc=function(t){var e,n,i,a,r;for(e=(r=fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15))))&this.b.length-1,n=a=this.b[e];n;n=n.a)if(n.d==r&&hG(n.i,t))return!1;return i=new $G(this.c,t,r,a),vx(this.d,i),i.f=this,this.d=i,ey(this.g.a.b,i),ey(i,this.g.a),this.b[e]=i,++this.f,++this.e,vRt(this),!0},kGt.$b=function(){var t,e;for(yC(this.b,null),this.f=0,t=this.a;t!=this;t=t.Rd())ey((e=jz(t,330)).b,e.e);this.a=this,this.d=this,++this.e},kGt.Hc=function(t){var e,n;for(n=fV(aft(EZt,nZ(fV(aft(null==t?0:Qct(t),CZt)),15))),e=this.b[n&this.b.length-1];e;e=e.a)if(e.d==n&&hG(e.i,t))return!0;return!1},kGt.Jc=function(t){var e;for(yY(t),e=this.a;e!=this;e=e.Rd())t.td(jz(e,330).i)},kGt.Rd=function(){return this.a},kGt.Kc=function(){return new sG(this)},kGt.Mc=function(t){return wIt(this,t)},kGt.Sd=function(t){this.d=t},kGt.Td=function(t){this.a=t},kGt.gc=function(){return this.f},kGt.e=0,kGt.f=0,bY(WGt,"LinkedHashMultimap/ValueSet",1836),fIt(1837,1,ZGt,sG),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return hV(this),this.b!=this.c},kGt.Pb=function(){var t,e;if(hV(this),this.b==this.c)throw $m(new yy);return e=(t=jz(this.b,330)).i,this.d=t,this.b=t.f,e},kGt.Qb=function(){hV(this),lot(!!this.d),wIt(this.c,this.d.i),this.a=this.c.e,this.d=null},kGt.a=0,bY(WGt,"LinkedHashMultimap/ValueSet/1",1837),fIt(766,1986,GGt,ED),kGt.Zb=function(){return this.f||(this.f=new nC(this))},kGt.Fb=function(t){return xlt(this,t)},kGt.cc=function(t){return new mk(this,t)},kGt.fc=function(t){return K4(this,t)},kGt.$b=function(){iY(this)},kGt._b=function(t){return $k(this,t)},kGt.ac=function(){return new nC(this)},kGt.bc=function(){return new mh(this)},kGt.qc=function(t){return new mk(this,t)},kGt.dc=function(){return!this.a},kGt.rc=function(t){return K4(this,t)},kGt.gc=function(){return this.d},kGt.c=0,kGt.d=0,bY(WGt,"LinkedListMultimap",766),fIt(52,28,LZt),kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.Vc=function(t,e){throw $m(new Qw("Add not supported on this list"))},kGt.Fc=function(t){return this.Vc(this.gc(),t),!0},kGt.Wc=function(t,e){var n,i,a;for(vG(e),n=!1,a=e.Kc();a.Ob();)i=a.Pb(),this.Vc(t++,i),n=!0;return n},kGt.$b=function(){this.Ud(0,this.gc())},kGt.Fb=function(t){return OIt(this,t)},kGt.Hb=function(){return jct(this)},kGt.Xc=function(t){return hit(this,t)},kGt.Kc=function(){return new kf(this)},kGt.Yc=function(){return this.Zc(0)},kGt.Zc=function(t){return new _2(this,t)},kGt.$c=function(t){throw $m(new Qw("Remove not supported on this list"))},kGt.Ud=function(t,e){var n,i;for(i=this.Zc(t),n=t;n<e;++n)i.Pb(),i.Qb()},kGt._c=function(t,e){throw $m(new Qw("Set not supported on this list"))},kGt.bd=function(t,e){return new s1(this,t,e)},kGt.j=0,bY(KGt,"AbstractList",52),fIt(1964,52,LZt),kGt.Vc=function(t,e){BN(this,t,e)},kGt.Wc=function(t,e){return Dlt(this,t,e)},kGt.Xb=function(t){return Nmt(this,t)},kGt.Kc=function(){return this.Zc(0)},kGt.$c=function(t){return txt(this,t)},kGt._c=function(t,e){var n,i;n=this.Zc(t);try{return i=n.Pb(),n.Wb(e),i}catch(a){throw iO(a=dst(a),109)?$m(new Aw("Can't set element "+t)):$m(a)}},bY(KGt,"AbstractSequentialList",1964),fIt(636,1964,LZt,mk),kGt.Zc=function(t){return bM(this,t)},kGt.gc=function(){var t;return(t=jz(NY(this.a.b,this.b),283))?t.a:0},bY(WGt,"LinkedListMultimap/1",636),fIt(1297,1970,tZt,mh),kGt.Hc=function(t){return $k(this.a,t)},kGt.Kc=function(){return new mat(this.a)},kGt.Mc=function(t){return!K4(this.a,t).a.dc()},kGt.gc=function(){return Lk(this.a.b)},bY(WGt,"LinkedListMultimap/1KeySetImpl",1297),fIt(1296,1,ZGt,mat),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return dV(this),!!this.c},kGt.Pb=function(){dV(this),oM(this.c),this.a=this.c,RW(this.d,this.a.a);do{this.c=this.c.b}while(this.c&&!RW(this.d,this.c.a));return this.a.a},kGt.Qb=function(){dV(this),lot(!!this.a),CU(new C9(this.e,this.a.a)),this.a=null,this.b=this.e.c},kGt.b=0,bY(WGt,"LinkedListMultimap/DistinctKeyIterator",1296),fIt(283,1,{283:1},sX),kGt.a=0,bY(WGt,"LinkedListMultimap/KeyList",283),fIt(1295,345,rZt,yk),kGt.cd=function(){return this.a},kGt.dd=function(){return this.f},kGt.ed=function(t){var e;return e=this.f,this.f=t,e},bY(WGt,"LinkedListMultimap/Node",1295),fIt(560,1,aZt,C9,PSt),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){this.e=vFt(this.f,this.b,t,this.c),++this.d,this.a=null},kGt.Ob=function(){return!!this.c},kGt.Sb=function(){return!!this.e},kGt.Pb=function(){return xQ(this)},kGt.Tb=function(){return this.d},kGt.Ub=function(){return RQ(this)},kGt.Vb=function(){return this.d-1},kGt.Qb=function(){lot(!!this.a),this.a!=this.c?(this.e=this.a.e,--this.d):this.c=this.a.c,JTt(this.f,this.a),this.a=null},kGt.Wb=function(t){rM(!!this.a),this.a.f=t},kGt.d=0,bY(WGt,"LinkedListMultimap/ValueForKeyIterator",560),fIt(1018,52,LZt),kGt.Vc=function(t,e){this.a.Vc(t,e)},kGt.Wc=function(t,e){return this.a.Wc(t,e)},kGt.Hc=function(t){return this.a.Hc(t)},kGt.Xb=function(t){return this.a.Xb(t)},kGt.$c=function(t){return this.a.$c(t)},kGt._c=function(t,e){return this.a._c(t,e)},kGt.gc=function(){return this.a.gc()},bY(WGt,"Lists/AbstractListWrapper",1018),fIt(1019,1018,MZt),bY(WGt,"Lists/RandomAccessListWrapper",1019),fIt(1021,1019,MZt,Sk),kGt.Zc=function(t){return this.a.Zc(t)},bY(WGt,"Lists/1",1021),fIt(131,52,{131:1,20:1,28:1,52:1,14:1,15:1},Ck),kGt.Vc=function(t,e){this.a.Vc(pW(this,t),e)},kGt.$b=function(){this.a.$b()},kGt.Xb=function(t){return this.a.Xb(IY(this,t))},kGt.Kc=function(){return W1(this,0)},kGt.Zc=function(t){return W1(this,t)},kGt.$c=function(t){return this.a.$c(IY(this,t))},kGt.Ud=function(t,e){(f2(t,e,this.a.gc()),eot(this.a.bd(pW(this,e),pW(this,t)))).$b()},kGt._c=function(t,e){return this.a._c(IY(this,t),e)},kGt.gc=function(){return this.a.gc()},kGt.bd=function(t,e){return f2(t,e,this.a.gc()),eot(this.a.bd(pW(this,e),pW(this,t)))},bY(WGt,"Lists/ReverseList",131),fIt(280,131,{131:1,20:1,28:1,52:1,14:1,15:1,54:1},lw),bY(WGt,"Lists/RandomAccessReverseList",280),fIt(1020,1,aZt,vk),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){this.c.Rb(t),this.c.Ub(),this.a=!1},kGt.Ob=function(){return this.c.Sb()},kGt.Sb=function(){return this.c.Ob()},kGt.Pb=function(){return h6(this)},kGt.Tb=function(){return pW(this.b,this.c.Tb())},kGt.Ub=function(){if(!this.c.Ob())throw $m(new yy);return this.a=!0,this.c.Pb()},kGt.Vb=function(){return pW(this.b,this.c.Tb())-1},kGt.Qb=function(){lot(this.a),this.c.Qb(),this.a=!1},kGt.Wb=function(t){rM(this.a),this.c.Wb(t)},kGt.a=!1,bY(WGt,"Lists/ReverseList/1",1020),fIt(432,487,ZGt,uw),kGt.Qd=function(t){return iC(t)},bY(WGt,"Maps/1",432),fIt(698,487,ZGt,dw),kGt.Qd=function(t){return jz(t,42).dd()},bY(WGt,"Maps/2",698),fIt(962,487,ZGt,pM),kGt.Qd=function(t){return new bk(t,PD(this.a,t))},bY(WGt,"Maps/3",962),fIt(959,1971,tZt,bh),kGt.Jc=function(t){Oy(this.a,t)},kGt.Kc=function(){return this.a.kc()},kGt.Rc=function(){return this.a},kGt.Nc=function(){return this.a.lc()},bY(WGt,"Maps/IteratorBasedAbstractMap/1",959),fIt(960,1,{},ph),kGt.Od=function(t,e){this.a.td(t)},bY(WGt,"Maps/KeySet/lambda$0$Type",960),fIt(958,28,JGt,Ek),kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return this.a.uc(t)},kGt.Jc=function(t){yY(t),this.a.wc(new lh(t))},kGt.dc=function(){return this.a.dc()},kGt.Kc=function(){return new dw(this.a.vc().Kc())},kGt.Mc=function(t){var e,n;try{return vgt(this,t,!0)}catch(i){if(iO(i=dst(i),41)){for(n=this.a.vc().Kc();n.Ob();)if(hG(t,(e=jz(n.Pb(),42)).dd()))return this.a.Bc(e.cd()),!0;return!1}throw $m(i)}},kGt.gc=function(){return this.a.gc()},bY(WGt,"Maps/Values",958),fIt(961,1,{},lh),kGt.Od=function(t,e){this.a.td(e)},bY(WGt,"Maps/Values/lambda$0$Type",961),fIt(736,1987,XGt,nC),kGt.xc=function(t){return this.a._b(t)?this.a.cc(t):null},kGt.Bc=function(t){return this.a._b(t)?this.a.fc(t):null},kGt.$b=function(){this.a.$b()},kGt._b=function(t){return this.a._b(t)},kGt.Ec=function(){return new ch(this)},kGt.Dc=function(){return this.Ec()},kGt.dc=function(){return this.a.dc()},kGt.ec=function(){return this.a.ec()},kGt.gc=function(){return this.a.ec().gc()},bY(WGt,"Multimaps/AsMap",736),fIt(1104,1971,tZt,ch),kGt.Kc=function(){return JL(this.a.a.ec(),new uh(this))},kGt.Rc=function(){return this.a},kGt.Mc=function(t){var e;return!!npt(this,t)&&(e=jz(t,42),wx(this.a,e.cd()),!0)},bY(WGt,"Multimaps/AsMap/EntrySet",1104),fIt(1108,1,{},uh),kGt.Kb=function(t){return PD(this,t)},kGt.Fb=function(t){return this===t},bY(WGt,"Multimaps/AsMap/EntrySet/1",1108),fIt(543,1989,{543:1,835:1,20:1,28:1,14:1},dh),kGt.$b=function(){fit(this.a)},kGt.Hc=function(t){return WR(this.a,t)},kGt.Jc=function(t){yY(t),t6(_Y(this.a),new fh(t))},kGt.Kc=function(){return new uw(_Y(this.a).a.kc())},kGt.gc=function(){return this.a.d},kGt.Nc=function(){return Nz(_Y(this.a).Nc(),new h)},bY(WGt,"Multimaps/Keys",543),fIt(1106,1,{},h),kGt.Kb=function(t){return jz(t,42).cd()},bY(WGt,"Multimaps/Keys/0methodref$getKey$Type",1106),fIt(1105,487,ZGt,hw),kGt.Qd=function(t){return new hh(jz(t,42))},bY(WGt,"Multimaps/Keys/1",1105),fIt(1990,1,{416:1}),kGt.Fb=function(t){var e;return!!iO(t,492)&&(e=jz(t,416),jz(this.a.dd(),14).gc()==jz(e.a.dd(),14).gc()&&hG(this.a.cd(),e.a.cd()))},kGt.Hb=function(){var t;return(null==(t=this.a.cd())?0:Qct(t))^jz(this.a.dd(),14).gc()},kGt.Ib=function(){var t,e;return e=vM(this.a.cd()),1==(t=jz(this.a.dd(),14).gc())?e:e+" x "+t},bY(WGt,"Multisets/AbstractEntry",1990),fIt(492,1990,{492:1,416:1},hh),bY(WGt,"Multimaps/Keys/1/1",492),fIt(1107,1,dZt,fh),kGt.td=function(t){this.a.td(jz(t,42).cd())},bY(WGt,"Multimaps/Keys/lambda$1$Type",1107),fIt(1110,1,dZt,f),kGt.td=function(t){SU(jz(t,416))},bY(WGt,"Multiset/lambda$0$Type",1110),fIt(737,1,dZt,gh),kGt.td=function(t){Tet(this.a,jz(t,416))},bY(WGt,"Multiset/lambda$1$Type",737),fIt(1111,1,{},v),bY(WGt,"Multisets/0methodref$add$Type",1111),fIt(738,1,{},w),kGt.Kb=function(t){return s4(jz(t,416))},bY(WGt,"Multisets/lambda$3$Type",738),fIt(2008,1,PGt),bY(WGt,"RangeGwtSerializationDependencies",2008),fIt(514,2008,{169:1,514:1,3:1,45:1},cyt),kGt.Lb=function(t){return _q(this,jz(t,35))},kGt.Mb=function(t){return _q(this,jz(t,35))},kGt.Fb=function(t){var e;return!!iO(t,514)&&(e=jz(t,514),Mpt(this.a,e.a)&&Mpt(this.b,e.b))},kGt.Hb=function(){return 31*this.a.Hb()+this.b.Hb()},kGt.Ib=function(){return j4(this.a,this.b)},bY(WGt,"Range",514),fIt(778,1999,vZt,aW),kGt.Zc=function(t){return eN(this.b,t)},kGt.Pd=function(){return this.a},kGt.Xb=function(t){return WA(this.b,t)},kGt.Fd=function(t){return eN(this.b,t)},bY(WGt,"RegularImmutableAsList",778),fIt(646,2006,vZt,kX),kGt.Hd=function(){return this.a},bY(WGt,"RegularImmutableList",646),fIt(616,715,xZt,cw),bY(WGt,"RegularImmutableMap",616),fIt(716,703,_Zt,bC),bY(WGt,"RegularImmutableSet",716),fIt(1976,QGt,tZt),kGt.Kc=function(){return new kZ(this.a,this.b)},kGt.Fc=function(t){throw $m(new py)},kGt.Gc=function(t){throw $m(new py)},kGt.$b=function(){throw $m(new py)},kGt.Mc=function(t){throw $m(new py)},bY(WGt,"Sets/SetView",1976),fIt(963,1976,tZt,xk),kGt.Kc=function(){return new kZ(this.a,this.b)},kGt.Hc=function(t){return CV(this.a,t)&&this.b.Hc(t)},kGt.Ic=function(t){return sst(this.a,t)&&this.b.Ic(t)},kGt.dc=function(){return Pmt(this.b,this.a)},kGt.Lc=function(){return AZ(new NU(null,new h1(this.a,1)),new vh(this.b))},kGt.gc=function(){return Sot(this)},kGt.Oc=function(){return AZ(new NU(null,new h1(this.a,1)),new yh(this.b))},bY(WGt,"Sets/2",963),fIt(700,699,qGt,kZ),kGt.Yb=function(){for(var t;vL(this.a);)if(t=r3(this.a),this.c.Hc(t))return t;return this.e=2,null},bY(WGt,"Sets/2/1",700),fIt(964,1,NZt,yh),kGt.Mb=function(t){return this.a.Hc(t)},bY(WGt,"Sets/2/4methodref$contains$Type",964),fIt(965,1,NZt,vh),kGt.Mb=function(t){return this.a.Hc(t)},bY(WGt,"Sets/2/5methodref$contains$Type",965),fIt(607,1975,{607:1,3:1,20:1,14:1,271:1,21:1,84:1},dJ),kGt.Bd=function(){return this.b},kGt.Cd=function(){return this.b},kGt.Md=function(){return this.b},kGt.Jc=function(t){this.a.Jc(t)},kGt.Lc=function(){return this.a.Lc()},kGt.Oc=function(){return this.a.Oc()},bY(WGt,"Sets/UnmodifiableNavigableSet",607),fIt(1932,1931,xZt,HG),kGt.Ld=function(){return sj(),new yx(this.a)},kGt.Cc=function(){return sj(),new yx(this.a)},kGt.pd=function(){return sj(),new yx(this.a)},bY(WGt,"SingletonImmutableBiMap",1932),fIt(647,2006,vZt,EU),kGt.Hd=function(){return this.a},bY(WGt,"SingletonImmutableList",647),fIt(350,1981,_Zt,yx),kGt.Kc=function(){return new oh(this.a)},kGt.Hc=function(t){return Odt(this.a,t)},kGt.Ed=function(){return new oh(this.a)},kGt.gc=function(){return 1},bY(WGt,"SingletonImmutableSet",350),fIt(1115,1,{},x),kGt.Kb=function(t){return jz(t,164)},bY(WGt,"Streams/lambda$0$Type",1115),fIt(1116,1,BZt,wh),kGt.Vd=function(){j6(this.a)},bY(WGt,"Streams/lambda$1$Type",1116),fIt(1659,1658,GGt,pX),kGt.Zb=function(){return jz(jz(this.f||(this.f=iO(this.c,171)?new SB(this,jz(this.c,171)):iO(this.c,161)?new CB(this,jz(this.c,161)):new pk(this,this.c)),161),171)},kGt.hc=function(){return new f_(this.b)},kGt.gd=function(){return new f_(this.b)},kGt.ec=function(){return jz(jz(this.i||(this.i=iO(this.c,171)?new Q_(this,jz(this.c,171)):iO(this.c,161)?new J_(this,jz(this.c,161)):new $O(this,this.c)),84),271)},kGt.ac=function(){return iO(this.c,171)?new SB(this,jz(this.c,171)):iO(this.c,161)?new CB(this,jz(this.c,161)):new pk(this,this.c)},kGt.ic=function(t){return null==t&&this.a.ue(t,t),new f_(this.b)},bY(WGt,"TreeMultimap",1659),fIt(78,1,{3:1,78:1}),kGt.Wd=function(t){return new Error(t)},kGt.Xd=function(){return this.e},kGt.Yd=function(){return Fgt(DZ(IW((null==this.k&&(this.k=O5(Xte,cZt,78,0,0,1)),this.k)),new N))},kGt.Zd=function(){return this.f},kGt.$d=function(){return this.g},kGt._d=function(){yw(this,d2(this.Wd(CX(this,this.g)))),oy(this)},kGt.Ib=function(){return CX(this,this.$d())},kGt.e=jZt,kGt.i=!1,kGt.n=!0;var Kte,Xte=bY(BGt,"Throwable",78);fIt(102,78,{3:1,102:1,78:1}),bY(BGt,"Exception",102),fIt(60,102,$Zt,sy,fw),bY(BGt,"RuntimeException",60),fIt(598,60,$Zt),bY(BGt,"JsException",598),fIt(863,598,$Zt),bY(zZt,"JavaScriptExceptionBase",863),fIt(477,863,{477:1,3:1,102:1,60:1,78:1},xut),kGt.$d=function(){return b_t(this),this.c},kGt.ae=function(){return HA(this.b)===HA(Kte)?null:this.b},bY(UZt,"JavaScriptException",477);var Jte,Qte=bY(UZt,"JavaScriptObject$",0);fIt(1948,1,{}),bY(UZt,"Scheduler",1948);var tee,eee,nee,iee,aee=0,ree=0,oee=-1;fIt(890,1948,{},R),bY(zZt,"SchedulerImpl",890),fIt(1960,1,{}),bY(zZt,"StackTraceCreator/Collector",1960),fIt(864,1960,{},_),kGt.be=function(t){var e={},n=[];t[qZt]=n;for(var i=arguments.callee.caller;i;){var a=(EX(),i.name||(i.name=Gnt(i.toString())));n.push(a);var r,o,s=":"+a,c=e[s];if(c)for(r=0,o=c.length;r<o;r++)if(c[r]===i)return;(c||(e[s]=[])).push(i),i=i.caller}},kGt.ce=function(t){var e,n,i,a;for(EX(),n=(i=t&&t[qZt]?t[qZt]:[]).length,a=O5(jee,cZt,310,n,0,1),e=0;e<n;e++)a[e]=new EZ(i[e],null,-1);return a},bY(zZt,"StackTraceCreator/CollectorLegacy",864),fIt(1961,1960,{}),kGt.be=function(t){},kGt.de=function(t,e,n,i){return new EZ(e,t+"@"+i,n<0?-1:n)},kGt.ce=function(t){var e,n,i,a,r,o;if(a=dwt(t),r=O5(jee,cZt,310,0,0,1),e=0,0==(i=a.length))return r;for(mF((o=AUt(this,a[0])).d,VZt)||(r[e++]=o),n=1;n<i;n++)r[e++]=AUt(this,a[n]);return r},bY(zZt,"StackTraceCreator/CollectorModern",1961),fIt(865,1961,{},p),kGt.de=function(t,e,n,i){return new EZ(e,t,-1)},bY(zZt,"StackTraceCreator/CollectorModernNoSourceMap",865),fIt(1050,1,{}),bY(vKt,wKt,1050),fIt(615,1050,{615:1},UY),bY(xKt,wKt,615),fIt(2001,1,{}),bY(vKt,RKt,2001),fIt(2002,2001,{}),bY(xKt,RKt,2002),fIt(1090,1,{},b),bY(xKt,"LocaleInfo",1090),fIt(1918,1,{},m),kGt.a=0,bY(xKt,"TimeZone",1918),fIt(1258,2002,{},g),bY("com.google.gwt.i18n.client.impl.cldr","DateTimeFormatInfoImpl",1258),fIt(434,1,{434:1},Yz),kGt.a=!1,kGt.b=0,bY(vKt,"DateTimeFormat/PatternPart",434),fIt(199,1,_Kt,Ak,mct,EB),kGt.wd=function(t){return K0(this,jz(t,199))},kGt.Fb=function(t){return iO(t,199)&&GA(uot(this.q.getTime()),uot(jz(t,199).q.getTime()))},kGt.Hb=function(){var t;return fV(n0(t=uot(this.q.getTime()),wq(t,32)))},kGt.Ib=function(){var t,e,n;return t=((n=-this.q.getTimezoneOffset())>=0?"+":"")+(n/60|0),e=VD(i.Math.abs(n)%60),(bEt(),pne)[this.q.getDay()]+" "+bne[this.q.getMonth()]+" "+VD(this.q.getDate())+" "+VD(this.q.getHours())+":"+VD(this.q.getMinutes())+":"+VD(this.q.getSeconds())+" GMT"+t+e+" "+this.q.getFullYear()};var see,cee,lee,uee,dee,hee,fee,gee,pee,bee=bY(KGt,"Date",199);fIt(1915,199,_Kt,Kxt),kGt.a=!1,kGt.b=0,kGt.c=0,kGt.d=0,kGt.e=0,kGt.f=0,kGt.g=!1,kGt.i=0,kGt.j=0,kGt.k=0,kGt.n=0,kGt.o=0,kGt.p=0,bY("com.google.gwt.i18n.shared.impl","DateRecord",1915),fIt(1966,1,{}),kGt.fe=function(){return null},kGt.ge=function(){return null},kGt.he=function(){return null},kGt.ie=function(){return null},kGt.je=function(){return null},bY(kKt,"JSONValue",1966),fIt(216,1966,{216:1},Eh,xh),kGt.Fb=function(t){return!!iO(t,216)&&b0(this.a,jz(t,216).a)},kGt.ee=function(){return zm},kGt.Hb=function(){return QK(this.a)},kGt.fe=function(){return this},kGt.Ib=function(){var t,e,n;for(n=new uM("["),e=0,t=this.a.length;e<t;e++)e>0&&(n.a+=","),rD(n,ftt(this,e));return n.a+="]",n.a},bY(kKt,"JSONArray",216),fIt(483,1966,{483:1},Rh),kGt.ee=function(){return Hm},kGt.ge=function(){return this},kGt.Ib=function(){return cM(),""+this.a},kGt.a=!1,bY(kKt,"JSONBoolean",483),fIt(985,60,$Zt,gw),bY(kKt,"JSONException",985),fIt(1023,1966,{},y),kGt.ee=function(){return Ym},kGt.Ib=function(){return VGt},bY(kKt,"JSONNull",1023),fIt(258,1966,{258:1},_h),kGt.Fb=function(t){return!!iO(t,258)&&this.a==jz(t,258).a},kGt.ee=function(){return Um},kGt.Hb=function(){return YD(this.a)},kGt.he=function(){return this},kGt.Ib=function(){return this.a+""},kGt.a=0,bY(kKt,"JSONNumber",258),fIt(183,1966,{183:1},pw,kh),kGt.Fb=function(t){return!!iO(t,183)&&b0(this.a,jz(t,183).a)},kGt.ee=function(){return Vm},kGt.Hb=function(){return QK(this.a)},kGt.ie=function(){return this},kGt.Ib=function(){var t,e,n,i,a,r;for(r=new uM("{"),t=!0,i=0,a=(n=xat(this,O5(zee,cZt,2,0,6,1))).length;i<a;++i)e=n[i],t?t=!1:r.a+=jGt,oD(r,yDt(e)),r.a+=":",rD(r,UJ(this,e));return r.a+="}",r.a},bY(kKt,"JSONObject",183),fIt(596,QGt,tZt,Rk),kGt.Hc=function(t){return qA(t)&&Ux(this.a,kB(t))},kGt.Kc=function(){return new kf(new Kw(this.b))},kGt.gc=function(){return this.b.length},bY(kKt,"JSONObject/1",596),fIt(204,1966,{204:1},HY),kGt.Fb=function(t){return!!iO(t,204)&&mF(this.a,jz(t,204).a)},kGt.ee=function(){return qm},kGt.Hb=function(){return myt(this.a)},kGt.je=function(){return this},kGt.Ib=function(){return yDt(this.a)},bY(kKt,"JSONString",204),fIt(1962,1,{525:1}),bY(LKt,"OutputStream",1962),fIt(1963,1962,{525:1}),bY(LKt,"FilterOutputStream",1963),fIt(866,1963,{525:1},I),bY(LKt,"PrintStream",866),fIt(418,1,{475:1}),kGt.Ib=function(){return this.a},bY(BGt,"AbstractStringBuilder",418),fIt(529,60,$Zt,Tw),bY(BGt,"ArithmeticException",529),fIt(73,60,OKt,ly,Aw),bY(BGt,"IndexOutOfBoundsException",73),fIt(320,73,{3:1,320:1,102:1,73:1,60:1,78:1},ky,Rx),bY(BGt,"ArrayIndexOutOfBoundsException",320),fIt(528,60,$Zt,uy,Dw),bY(BGt,"ArrayStoreException",528),fIt(289,78,MKt,Iw),bY(BGt,"Error",289),fIt(194,289,MKt,cy,g6),bY(BGt,"AssertionError",194),SGt={3:1,476:1,35:1};var mee,yee,vee,wee=bY(BGt,"Boolean",476);fIt(236,1,{3:1,236:1}),bY(BGt,"Number",236),fIt(217,236,{3:1,217:1,35:1,236:1},Df),kGt.wd=function(t){return Fx(this,jz(t,217))},kGt.ke=function(){return this.a},kGt.Fb=function(t){return iO(t,217)&&jz(t,217).a==this.a},kGt.Hb=function(){return this.a},kGt.Ib=function(){return""+this.a},kGt.a=0;var xee,Ree=bY(BGt,"Byte",217);fIt(172,1,{3:1,172:1,35:1},If),kGt.wd=function(t){return jx(this,jz(t,172))},kGt.Fb=function(t){return iO(t,172)&&jz(t,172).a==this.a},kGt.Hb=function(){return this.a},kGt.Ib=function(){return String.fromCharCode(this.a)},kGt.a=0;var _ee,kee,Eee=bY(BGt,"Character",172);fIt(205,60,{3:1,205:1,102:1,60:1,78:1},dy,Bw),bY(BGt,"ClassCastException",205),TGt={3:1,35:1,333:1,236:1};var Cee=bY(BGt,"Double",333);fIt(155,236,{3:1,35:1,155:1,236:1},Lf,My),kGt.wd=function(t){return jD(this,jz(t,155))},kGt.ke=function(){return this.a},kGt.Fb=function(t){return iO(t,155)&&bF(this.a,jz(t,155).a)},kGt.Hb=function(){return CJ(this.a)},kGt.Ib=function(){return""+this.a},kGt.a=0;var See=bY(BGt,"Float",155);fIt(32,60,{3:1,102:1,32:1,60:1,78:1},hy,Pw,jlt),bY(BGt,"IllegalArgumentException",32),fIt(71,60,$Zt,fy,Fw),bY(BGt,"IllegalStateException",71),fIt(19,236,{3:1,35:1,19:1,236:1},Of),kGt.wd=function(t){return $D(this,jz(t,19))},kGt.ke=function(){return this.a},kGt.Fb=function(t){return iO(t,19)&&jz(t,19).a==this.a},kGt.Hb=function(){return this.a},kGt.Ib=function(){return""+this.a},kGt.a=0;var Tee,Aee,Dee=bY(BGt,"Integer",19);fIt(162,236,{3:1,35:1,162:1,236:1},Mf),kGt.wd=function(t){return zD(this,jz(t,162))},kGt.ke=function(){return w2(this.a)},kGt.Fb=function(t){return iO(t,162)&&GA(jz(t,162).a,this.a)},kGt.Hb=function(){return fV(this.a)},kGt.Ib=function(){return""+bq(this.a)},kGt.a=0;var Iee,Lee,Oee,Mee,Nee,Bee=bY(BGt,"Long",162);fIt(2039,1,{}),fIt(1831,60,$Zt,jw),bY(BGt,"NegativeArraySizeException",1831),fIt(173,598,{3:1,102:1,173:1,60:1,78:1},gy,$w),kGt.Wd=function(t){return new TypeError(t)},bY(BGt,"NullPointerException",173),fIt(127,32,{3:1,102:1,32:1,127:1,60:1,78:1},_x),bY(BGt,"NumberFormatException",127),fIt(184,236,{3:1,35:1,236:1,184:1},Nf),kGt.wd=function(t){return $x(this,jz(t,184))},kGt.ke=function(){return this.a},kGt.Fb=function(t){return iO(t,184)&&jz(t,184).a==this.a},kGt.Hb=function(){return this.a},kGt.Ib=function(){return""+this.a},kGt.a=0;var Pee,Fee=bY(BGt,"Short",184);fIt(310,1,{3:1,310:1},EZ),kGt.Fb=function(t){var e;return!!iO(t,310)&&(e=jz(t,310),this.c==e.c&&this.d==e.d&&this.a==e.a&&this.b==e.b)},kGt.Hb=function(){return uut(Cst(Hx(Dte,1),zGt,1,5,[nht(this.c),this.a,this.d,this.b]))},kGt.Ib=function(){return this.a+"."+this.d+"("+(null!=this.b?this.b:"Unknown Source")+(this.c>=0?":"+this.c:"")+")"},kGt.c=0;var jee=bY(BGt,"StackTraceElement",310);AGt={3:1,475:1,35:1,2:1};var $ee,zee=bY(BGt,HZt,2);fIt(107,418,{475:1},kx,Ex,lM),bY(BGt,"StringBuffer",107),fIt(100,418,{475:1},Cx,Sx,uM),bY(BGt,"StringBuilder",100),fIt(687,73,OKt,Tx),bY(BGt,"StringIndexOutOfBoundsException",687),fIt(2043,1,{}),fIt(844,1,{},N),kGt.Kb=function(t){return jz(t,78).e},bY(BGt,"Throwable/lambda$0$Type",844),fIt(41,60,{3:1,102:1,60:1,78:1,41:1},py,Qw),bY(BGt,"UnsupportedOperationException",41),fIt(240,236,{3:1,35:1,236:1,240:1},vtt,h_),kGt.wd=function(t){return Xjt(this,jz(t,240))},kGt.ke=function(){return hCt(eUt(this))},kGt.Fb=function(t){var e;return this===t||!!iO(t,240)&&(e=jz(t,240),this.e==e.e&&0==Xjt(this,e))},kGt.Hb=function(){var t;return 0!=this.b?this.b:this.a<54?(t=uot(this.f),this.b=fV(t0(t,-1)),this.b=33*this.b+fV(t0(vq(t,32),-1)),this.b=17*this.b+CJ(this.e),this.b):(this.b=17*Put(this.c)+CJ(this.e),this.b)},kGt.Ib=function(){return eUt(this)},kGt.a=0,kGt.b=0,kGt.d=0,kGt.e=0,kGt.f=0;var Hee,Uee,Vee,qee,Wee,Yee,Gee,Zee,Kee=bY("java.math","BigDecimal",240);fIt(91,236,{3:1,35:1,236:1,91:1},Bmt,q7,uW,m_t,Sbt,DI),kGt.wd=function(t){return tbt(this,jz(t,91))},kGt.ke=function(){return hCt(HYt(this,0))},kGt.Fb=function(t){return cgt(this,t)},kGt.Hb=function(){return Put(this)},kGt.Ib=function(){return HYt(this,0)},kGt.b=-2,kGt.c=0,kGt.d=0,kGt.e=0;var Xee,Jee,Qee,tne,ene,nne,ine,ane,rne,one,sne=bY("java.math","BigInteger",91);fIt(488,1967,XGt),kGt.$b=function(){DW(this)},kGt._b=function(t){return cW(this,t)},kGt.uc=function(t){return Llt(this,t,this.g)||Llt(this,t,this.f)},kGt.vc=function(){return new Ef(this)},kGt.xc=function(t){return NY(this,t)},kGt.zc=function(t,e){return YG(this,t,e)},kGt.Bc=function(t){return b7(this,t)},kGt.gc=function(){return Lk(this)},bY(KGt,"AbstractHashMap",488),fIt(261,QGt,tZt,Ef),kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return m2(this,t)},kGt.Kc=function(){return new olt(this.a)},kGt.Mc=function(t){var e;return!!m2(this,t)&&(e=jz(t,42).cd(),this.a.Bc(e),!0)},kGt.gc=function(){return this.a.gc()},bY(KGt,"AbstractHashMap/EntrySet",261),fIt(262,1,ZGt,olt),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return tnt(this)},kGt.Ob=function(){return this.b},kGt.Qb=function(){o8(this)},kGt.b=!1,bY(KGt,"AbstractHashMap/EntrySetIterator",262),fIt(417,1,ZGt,kf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return aC(this)},kGt.Pb=function(){return mK(this)},kGt.Qb=function(){lG(this)},kGt.b=0,kGt.c=-1,bY(KGt,"AbstractList/IteratorImpl",417),fIt(96,417,aZt,_2),kGt.Qb=function(){lG(this)},kGt.Rb=function(t){yP(this,t)},kGt.Sb=function(){return this.b>0},kGt.Tb=function(){return this.b},kGt.Ub=function(){return EN(this.b>0),this.a.Xb(this.c=--this.b)},kGt.Vb=function(){return this.b-1},kGt.Wb=function(t){_N(-1!=this.c),this.a._c(this.c,t)},bY(KGt,"AbstractList/ListIteratorImpl",96),fIt(219,52,LZt,s1),kGt.Vc=function(t,e){IQ(t,this.b),this.c.Vc(this.a+t,e),++this.b},kGt.Xb=function(t){return u1(t,this.b),this.c.Xb(this.a+t)},kGt.$c=function(t){var e;return u1(t,this.b),e=this.c.$c(this.a+t),--this.b,e},kGt._c=function(t,e){return u1(t,this.b),this.c._c(this.a+t,e)},kGt.gc=function(){return this.b},kGt.a=0,kGt.b=0,bY(KGt,"AbstractList/SubList",219),fIt(384,QGt,tZt,Cf),kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return this.a._b(t)},kGt.Kc=function(){return new Sf(this.a.vc().Kc())},kGt.Mc=function(t){return!!this.a._b(t)&&(this.a.Bc(t),!0)},kGt.gc=function(){return this.a.gc()},bY(KGt,"AbstractMap/1",384),fIt(691,1,ZGt,Sf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.a.Ob()},kGt.Pb=function(){return jz(this.a.Pb(),42).cd()},kGt.Qb=function(){this.a.Qb()},bY(KGt,"AbstractMap/1/1",691),fIt(226,28,JGt,Tf),kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return this.a.uc(t)},kGt.Kc=function(){return new Bf(this.a.vc().Kc())},kGt.gc=function(){return this.a.gc()},bY(KGt,"AbstractMap/2",226),fIt(294,1,ZGt,Bf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.a.Ob()},kGt.Pb=function(){return jz(this.a.Pb(),42).dd()},kGt.Qb=function(){this.a.Qb()},bY(KGt,"AbstractMap/2/1",294),fIt(484,1,{484:1,42:1}),kGt.Fb=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),iZ(this.d,e.cd())&&iZ(this.e,e.dd()))},kGt.cd=function(){return this.d},kGt.dd=function(){return this.e},kGt.Hb=function(){return BI(this.d)^BI(this.e)},kGt.ed=function(t){return pP(this,t)},kGt.Ib=function(){return this.d+"="+this.e},bY(KGt,"AbstractMap/AbstractEntry",484),fIt(383,484,{484:1,383:1,42:1},EC),bY(KGt,"AbstractMap/SimpleEntry",383),fIt(1984,1,GKt),kGt.Fb=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),iZ(this.cd(),e.cd())&&iZ(this.dd(),e.dd()))},kGt.Hb=function(){return BI(this.cd())^BI(this.dd())},kGt.Ib=function(){return this.cd()+"="+this.dd()},bY(KGt,oZt,1984),fIt(1992,1967,eZt),kGt.tc=function(t){return z6(this,t)},kGt._b=function(t){return MF(this,t)},kGt.vc=function(){return new jf(this)},kGt.xc=function(t){return zA(dlt(this,t))},kGt.ec=function(){return new Pf(this)},bY(KGt,"AbstractNavigableMap",1992),fIt(739,QGt,tZt,jf),kGt.Hc=function(t){return iO(t,42)&&z6(this.b,jz(t,42))},kGt.Kc=function(){return new jP(this.b)},kGt.Mc=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),U5(this.b,e))},kGt.gc=function(){return this.b.c},bY(KGt,"AbstractNavigableMap/EntrySet",739),fIt(493,QGt,iZt,Pf),kGt.Nc=function(){return new hC(this)},kGt.$b=function(){mw(this.a)},kGt.Hc=function(t){return MF(this.a,t)},kGt.Kc=function(){return new Ff(new jP(new OM(this.a).b))},kGt.Mc=function(t){return!!MF(this.a,t)&&(DJ(this.a,t),!0)},kGt.gc=function(){return this.a.c},bY(KGt,"AbstractNavigableMap/NavigableKeySet",493),fIt(494,1,ZGt,Ff),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return aC(this.a.a)},kGt.Pb=function(){return mN(this.a).cd()},kGt.Qb=function(){tj(this.a)},bY(KGt,"AbstractNavigableMap/NavigableKeySet/1",494),fIt(2004,28,JGt),kGt.Fc=function(t){return F5(eEt(this,t)),!0},kGt.Gc=function(t){return vG(t),bH(t!=this,"Can't add a queue to itself"),jat(this,t)},kGt.$b=function(){for(;null!=mtt(this););},bY(KGt,"AbstractQueue",2004),fIt(302,28,{4:1,20:1,28:1,14:1},Im,f1),kGt.Fc=function(t){return h4(this,t),!0},kGt.$b=function(){o3(this)},kGt.Hc=function(t){return fst(new dZ(this),t)},kGt.dc=function(){return Ww(this)},kGt.Kc=function(){return new dZ(this)},kGt.Mc=function(t){return HJ(new dZ(this),t)},kGt.gc=function(){return this.c-this.b&this.a.length-1},kGt.Nc=function(){return new h1(this,272)},kGt.Qc=function(t){var e;return e=this.c-this.b&this.a.length-1,t.length<e&&(t=zx(new Array(e),t)),oat(this,t,e),t.length>e&&DY(t,e,null),t},kGt.b=0,kGt.c=0,bY(KGt,"ArrayDeque",302),fIt(446,1,ZGt,dZ),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.a!=this.b},kGt.Pb=function(){return Fut(this)},kGt.Qb=function(){eit(this)},kGt.a=0,kGt.b=0,kGt.c=-1,bY(KGt,"ArrayDeque/IteratorImpl",446),fIt(12,52,ZKt,Lm,K7,QF),kGt.Vc=function(t,e){vV(this,t,e)},kGt.Fc=function(t){return Wz(this,t)},kGt.Wc=function(t,e){return sut(this,t,e)},kGt.Gc=function(t){return pst(this,t)},kGt.$b=function(){this.c=O5(Dte,zGt,1,0,5,1)},kGt.Hc=function(t){return-1!=x9(this,t,0)},kGt.Jc=function(t){Aet(this,t)},kGt.Xb=function(t){return OU(this,t)},kGt.Xc=function(t){return x9(this,t,0)},kGt.dc=function(){return 0==this.c.length},kGt.Kc=function(){return new Wf(this)},kGt.$c=function(t){return s7(this,t)},kGt.Mc=function(t){return y9(this,t)},kGt.Ud=function(t,e){c1(this,t,e)},kGt._c=function(t,e){return i6(this,t,e)},kGt.gc=function(){return this.c.length},kGt.ad=function(t){mL(this,t)},kGt.Pc=function(){return dN(this)},kGt.Qc=function(t){return Zbt(this,t)};var cne,lne,une,dne,hne,fne,gne,pne,bne,mne=bY(KGt,"ArrayList",12);fIt(7,1,ZGt,Wf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return yL(this)},kGt.Pb=function(){return J1(this)},kGt.Qb=function(){AW(this)},kGt.a=0,kGt.b=-1,bY(KGt,"ArrayList/1",7),fIt(2013,i.Function,{},k),kGt.te=function(t,e){return Cht(t,e)},fIt(154,52,KKt,Kw),kGt.Hc=function(t){return-1!=hit(this,t)},kGt.Jc=function(t){var e,n,i,a;for(vG(t),i=0,a=(n=this.a).length;i<a;++i)e=n[i],t.td(e)},kGt.Xb=function(t){return MU(this,t)},kGt._c=function(t,e){var n;return u1(t,this.a.length),n=this.a[t],DY(this.a,t,e),n},kGt.gc=function(){return this.a.length},kGt.ad=function(t){yV(this.a,this.a.length,t)},kGt.Pc=function(){return Kbt(this,O5(Dte,zGt,1,this.a.length,5,1))},kGt.Qc=function(t){return Kbt(this,t)},bY(KGt,"Arrays/ArrayList",154),fIt(940,52,KKt,C),kGt.Hc=function(t){return!1},kGt.Xb=function(t){return yD(t)},kGt.Kc=function(){return kK(),Ik(),dne},kGt.Yc=function(){return kK(),Ik(),dne},kGt.gc=function(){return 0},bY(KGt,"Collections/EmptyList",940),fIt(941,1,aZt,S),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){throw $m(new py)},kGt.Ob=function(){return!1},kGt.Sb=function(){return!1},kGt.Pb=function(){throw $m(new yy)},kGt.Tb=function(){return 0},kGt.Ub=function(){throw $m(new yy)},kGt.Vb=function(){return-1},kGt.Qb=function(){throw $m(new fy)},kGt.Wb=function(t){throw $m(new fy)},bY(KGt,"Collections/EmptyListIterator",941),fIt(943,1967,xZt,T),kGt._b=function(t){return!1},kGt.uc=function(t){return!1},kGt.vc=function(){return kK(),une},kGt.xc=function(t){return null},kGt.ec=function(){return kK(),une},kGt.gc=function(){return 0},kGt.Cc=function(){return kK(),cne},bY(KGt,"Collections/EmptyMap",943),fIt(942,QGt,_Zt,E),kGt.Hc=function(t){return!1},kGt.Kc=function(){return kK(),Ik(),dne},kGt.gc=function(){return 0},bY(KGt,"Collections/EmptySet",942),fIt(599,52,{3:1,20:1,28:1,52:1,14:1,15:1},Hf),kGt.Hc=function(t){return iZ(this.a,t)},kGt.Xb=function(t){return u1(t,1),this.a},kGt.gc=function(){return 1},bY(KGt,"Collections/SingletonList",599),fIt(372,1,mZt,$f),kGt.Jc=function(t){t6(this,t)},kGt.Lc=function(){return new NU(null,this.Nc())},kGt.Nc=function(){return new h1(this,0)},kGt.Oc=function(){return new NU(null,this.Nc())},kGt.Fc=function(t){return o_()},kGt.Gc=function(t){return s_()},kGt.$b=function(){c_()},kGt.Hc=function(t){return Ok(this,t)},kGt.Ic=function(t){return Mk(this,t)},kGt.dc=function(){return this.b.dc()},kGt.Kc=function(){return new zf(this.b.Kc())},kGt.Mc=function(t){return l_()},kGt.gc=function(){return this.b.gc()},kGt.Pc=function(){return this.b.Pc()},kGt.Qc=function(t){return Nk(this,t)},kGt.Ib=function(){return $ft(this.b)},bY(KGt,"Collections/UnmodifiableCollection",372),fIt(371,1,ZGt,zf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.b.Ob()},kGt.Pb=function(){return this.b.Pb()},kGt.Qb=function(){u_()},bY(KGt,"Collections/UnmodifiableCollectionIterator",371),fIt(531,372,XKt,dM),kGt.Nc=function(){return new h1(this,16)},kGt.Vc=function(t,e){throw $m(new py)},kGt.Wc=function(t,e){throw $m(new py)},kGt.Fb=function(t){return Odt(this.a,t)},kGt.Xb=function(t){return this.a.Xb(t)},kGt.Hb=function(){return Qct(this.a)},kGt.Xc=function(t){return this.a.Xc(t)},kGt.dc=function(){return this.a.dc()},kGt.Yc=function(){return new hM(this.a.Zc(0))},kGt.Zc=function(t){return new hM(this.a.Zc(t))},kGt.$c=function(t){throw $m(new py)},kGt._c=function(t,e){throw $m(new py)},kGt.ad=function(t){throw $m(new py)},kGt.bd=function(t,e){return new dM(this.a.bd(t,e))},bY(KGt,"Collections/UnmodifiableList",531),fIt(690,371,aZt,hM),kGt.Qb=function(){u_()},kGt.Rb=function(t){throw $m(new py)},kGt.Sb=function(){return this.a.Sb()},kGt.Tb=function(){return this.a.Tb()},kGt.Ub=function(){return this.a.Ub()},kGt.Vb=function(){return this.a.Vb()},kGt.Wb=function(t){throw $m(new py)},bY(KGt,"Collections/UnmodifiableListIterator",690),fIt(600,1,XGt,qf),kGt.wc=function(t){Qrt(this,t)},kGt.yc=function(t,e,n){return Jht(this,t,e,n)},kGt.$b=function(){throw $m(new py)},kGt._b=function(t){return this.c._b(t)},kGt.uc=function(t){return Pk(this,t)},kGt.vc=function(){return tZ(this)},kGt.Fb=function(t){return jk(this,t)},kGt.xc=function(t){return this.c.xc(t)},kGt.Hb=function(){return Qct(this.c)},kGt.dc=function(){return this.c.dc()},kGt.ec=function(){return eZ(this)},kGt.zc=function(t,e){throw $m(new py)},kGt.Bc=function(t){throw $m(new py)},kGt.gc=function(){return this.c.gc()},kGt.Ib=function(){return $ft(this.c)},kGt.Cc=function(){return QG(this)},bY(KGt,"Collections/UnmodifiableMap",600),fIt(382,372,RZt,Ax),kGt.Nc=function(){return new h1(this,1)},kGt.Fb=function(t){return Odt(this.b,t)},kGt.Hb=function(){return Qct(this.b)},bY(KGt,"Collections/UnmodifiableSet",382),fIt(944,382,RZt,Ix),kGt.Hc=function(t){return Bk(this,t)},kGt.Ic=function(t){return this.b.Ic(t)},kGt.Kc=function(){return new Uf(this.b.Kc())},kGt.Pc=function(){var t;return w3(t=this.b.Pc(),t.length),t},kGt.Qc=function(t){return SX(this,t)},bY(KGt,"Collections/UnmodifiableMap/UnmodifiableEntrySet",944),fIt(945,1,ZGt,Uf),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return new Vf(jz(this.a.Pb(),42))},kGt.Ob=function(){return this.a.Ob()},kGt.Qb=function(){throw $m(new py)},bY(KGt,"Collections/UnmodifiableMap/UnmodifiableEntrySet/1",945),fIt(688,1,GKt,Vf),kGt.Fb=function(t){return this.a.Fb(t)},kGt.cd=function(){return this.a.cd()},kGt.dd=function(){return this.a.dd()},kGt.Hb=function(){return this.a.Hb()},kGt.ed=function(t){throw $m(new py)},kGt.Ib=function(){return $ft(this.a)},bY(KGt,"Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry",688),fIt(601,531,{20:1,14:1,15:1,54:1},Dx),bY(KGt,"Collections/UnmodifiableRandomAccessList",601),fIt(689,382,kZt,fM),kGt.Nc=function(){return new hC(this)},kGt.Fb=function(t){return Odt(this.a,t)},kGt.Hb=function(){return Qct(this.a)},bY(KGt,"Collections/UnmodifiableSortedSet",689),fIt(847,1,JKt,B),kGt.ue=function(t,e){var n;return 0!=(n=R3(jz(t,11),jz(e,11)))?n:Qjt(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(KGt,"Comparator/lambda$0$Type",847),fIt(751,1,JKt,P),kGt.ue=function(t,e){return PU(jz(t,35),jz(e,35))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return EK(),gne},bY(KGt,"Comparators/NaturalOrderComparator",751),fIt(1177,1,JKt,F),kGt.ue=function(t,e){return FU(jz(t,35),jz(e,35))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return EK(),fne},bY(KGt,"Comparators/ReverseNaturalOrderComparator",1177),fIt(64,1,JKt,Jf),kGt.Fb=function(t){return this===t},kGt.ue=function(t,e){return this.a.ue(e,t)},kGt.ve=function(){return this.a},bY(KGt,"Comparators/ReversedComparator",64),fIt(166,60,$Zt,by),bY(KGt,"ConcurrentModificationException",166),fIt(1904,1,QKt,j),kGt.we=function(t){lpt(this,t)},kGt.Ib=function(){return"DoubleSummaryStatistics[count = "+bq(this.a)+", avg = "+(oC(this.a,0)?u7(this)/w2(this.a):0)+", min = "+this.c+", max = "+this.b+", sum = "+u7(this)+"]"},kGt.a=0,kGt.b=PKt,kGt.c=BKt,kGt.d=0,kGt.e=0,kGt.f=0,bY(KGt,"DoubleSummaryStatistics",1904),fIt(1805,60,$Zt,my),bY(KGt,"EmptyStackException",1805),fIt(451,1967,XGt,zft),kGt.zc=function(t,e){return hP(this,t,e)},kGt.$b=function(){RG(this)},kGt._b=function(t){return rC(this,t)},kGt.uc=function(t){var e,n;for(n=new Gk(this.a);n.a<n.c.a.length;)if(e=r3(n),iZ(t,this.b[e.g]))return!0;return!1},kGt.vc=function(){return new Qf(this)},kGt.xc=function(t){return oZ(this,t)},kGt.Bc=function(t){return LQ(this,t)},kGt.gc=function(){return this.a.c},bY(KGt,"EnumMap",451),fIt(1352,QGt,tZt,Qf),kGt.$b=function(){RG(this.a)},kGt.Hc=function(t){return b2(this,t)},kGt.Kc=function(){return new AU(this.a)},kGt.Mc=function(t){var e;return!!b2(this,t)&&(e=jz(t,42).cd(),LQ(this.a,e),!0)},kGt.gc=function(){return this.a.a.c},bY(KGt,"EnumMap/EntrySet",1352),fIt(1353,1,ZGt,AU),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return this.b=r3(this.a),new CC(this.c,this.b)},kGt.Ob=function(){return vL(this.a)},kGt.Qb=function(){_N(!!this.b),LQ(this.c,this.b),this.b=null},bY(KGt,"EnumMap/EntrySetIterator",1353),fIt(1354,1984,GKt,CC),kGt.cd=function(){return this.a},kGt.dd=function(){return this.b.b[this.a.g]},kGt.ed=function(t){return xW(this.b,this.a.g,t)},bY(KGt,"EnumMap/MapEntry",1354),fIt(174,QGt,{20:1,28:1,14:1,174:1,21:1});var yne=bY(KGt,"EnumSet",174);fIt(156,174,{20:1,28:1,14:1,174:1,156:1,21:1},ZF),kGt.Fc=function(t){return sat(this,jz(t,22))},kGt.Hc=function(t){return CV(this,t)},kGt.Kc=function(){return new Gk(this)},kGt.Mc=function(t){return SV(this,t)},kGt.gc=function(){return this.c},kGt.c=0,bY(KGt,"EnumSet/EnumSetImpl",156),fIt(343,1,ZGt,Gk),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return r3(this)},kGt.Ob=function(){return vL(this)},kGt.Qb=function(){_N(-1!=this.b),DY(this.c.b,this.b,null),--this.c.c,this.b=-1},kGt.a=-1,kGt.b=-1,bY(KGt,"EnumSet/EnumSetImpl/IteratorImpl",343),fIt(43,488,tXt,Om,qk,mD),kGt.re=function(t,e){return HA(t)===HA(e)||null!=t&&Odt(t,e)},kGt.se=function(t){return 0|Qct(t)},bY(KGt,"HashMap",43),fIt(53,QGt,eXt,Ny,d_,DU),kGt.Fc=function(t){return RW(this,t)},kGt.$b=function(){this.a.$b()},kGt.Hc=function(t){return Fk(this,t)},kGt.dc=function(){return 0==this.a.gc()},kGt.Kc=function(){return this.a.ec().Kc()},kGt.Mc=function(t){return tO(this,t)},kGt.gc=function(){return this.a.gc()};var vne,wne=bY(KGt,"HashSet",53);fIt(1781,1,fZt,$),kGt.ud=function(t){iot(this,t)},kGt.Ib=function(){return"IntSummaryStatistics[count = "+bq(this.a)+", avg = "+(oC(this.a,0)?w2(this.d)/w2(this.a):0)+", min = "+this.c+", max = "+this.b+", sum = "+bq(this.d)+"]"},kGt.a=0,kGt.b=FZt,kGt.c=NGt,kGt.d=0,bY(KGt,"IntSummaryStatistics",1781),fIt(1049,1,bZt,tI),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new k2(this)},kGt.c=0,bY(KGt,"InternalHashCodeMap",1049),fIt(711,1,ZGt,k2),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return this.d=this.a[this.c++],this.d},kGt.Ob=function(){var t;return this.c<this.a.length||!(t=this.b.next()).done&&(this.a=t.value[1],this.c=0,!0)},kGt.Qb=function(){pIt(this.e,this.d.cd()),0!=this.c&&--this.c},kGt.c=0,kGt.d=null,bY(KGt,"InternalHashCodeMap/1",711),fIt(1047,1,bZt,eI),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new p3(this)},kGt.c=0,kGt.d=0,bY(KGt,"InternalStringMap",1047),fIt(710,1,ZGt,p3),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return this.c=this.a,this.a=this.b.next(),new KF(this.d,this.c,this.d.d)},kGt.Ob=function(){return!this.a.done},kGt.Qb=function(){Uot(this.d,this.c.value[0])},bY(KGt,"InternalStringMap/1",710),fIt(1048,1984,GKt,KF),kGt.cd=function(){return this.b.value[0]},kGt.dd=function(){return this.a.d!=this.c?cC(this.a,this.b.value[0]):this.b.value[1]},kGt.ed=function(t){return oft(this.a,this.b.value[0],t)},kGt.c=0,bY(KGt,"InternalStringMap/2",1048),fIt(228,43,tXt,b3,z5),kGt.$b=function(){vP(this)},kGt._b=function(t){return uC(this,t)},kGt.uc=function(t){var e;for(e=this.d.a;e!=this.d;){if(iZ(e.e,t))return!0;e=e.a}return!1},kGt.vc=function(){return new eg(this)},kGt.xc=function(t){return utt(this,t)},kGt.zc=function(t,e){return Xbt(this,t,e)},kGt.Bc=function(t){return v9(this,t)},kGt.gc=function(){return Lk(this.e)},kGt.c=!1,bY(KGt,"LinkedHashMap",228),fIt(387,383,{484:1,383:1,387:1,42:1},CN,Jz),bY(KGt,"LinkedHashMap/ChainEntry",387),fIt(701,QGt,tZt,eg),kGt.$b=function(){vP(this.a)},kGt.Hc=function(t){return y2(this,t)},kGt.Kc=function(){return new cG(this)},kGt.Mc=function(t){var e;return!!y2(this,t)&&(e=jz(t,42).cd(),v9(this.a,e),!0)},kGt.gc=function(){return Lk(this.a.e)},bY(KGt,"LinkedHashMap/EntrySet",701),fIt(702,1,ZGt,cG),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return s8(this)},kGt.Ob=function(){return this.b!=this.c.a.d},kGt.Qb=function(){_N(!!this.a),p2(this.c.a.e,this),NH(this.a),b7(this.c.a.e,this.a.d),dB(this.c.a.e,this),this.a=null},bY(KGt,"LinkedHashMap/EntrySet/EntryIterator",702),fIt(178,53,eXt,lI,IM,IU);var xne=bY(KGt,"LinkedHashSet",178);fIt(68,1964,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1},Zk,JF),kGt.Fc=function(t){return MH(this,t)},kGt.$b=function(){yK(this)},kGt.Zc=function(t){return cmt(this,t)},kGt.gc=function(){return this.b},kGt.b=0;var Rne,_ne,kne,Ene,Cne,Sne=bY(KGt,"LinkedList",68);fIt(970,1,aZt,XF),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){JW(this,t)},kGt.Ob=function(){return x_(this)},kGt.Sb=function(){return this.b.b!=this.d.a},kGt.Pb=function(){return d4(this)},kGt.Tb=function(){return this.a},kGt.Ub=function(){return V0(this)},kGt.Vb=function(){return this.a-1},kGt.Qb=function(){yet(this)},kGt.Wb=function(t){_N(!!this.c),this.c.c=t},kGt.a=0,kGt.c=null,bY(KGt,"LinkedList/ListIteratorImpl",970),fIt(608,1,{},L),bY(KGt,"LinkedList/Node",608),fIt(1959,1,{}),bY(KGt,"Locale",1959),fIt(861,1959,{},O),kGt.Ib=function(){return""},bY(KGt,"Locale/1",861),fIt(862,1959,{},M),kGt.Ib=function(){return"unknown"},bY(KGt,"Locale/4",862),fIt(109,60,{3:1,102:1,60:1,78:1,109:1},yy,uZ),bY(KGt,"NoSuchElementException",109),fIt(404,1,{404:1},bw),kGt.Fb=function(t){var e;return t===this||!!iO(t,404)&&(e=jz(t,404),iZ(this.a,e.a))},kGt.Hb=function(){return BI(this.a)},kGt.Ib=function(){return null!=this.a?UGt+vM(this.a)+")":"Optional.empty()"},bY(KGt,"Optional",404),fIt(463,1,{463:1},CD,yN),kGt.Fb=function(t){var e;return t===this||!!iO(t,463)&&(e=jz(t,463),this.a==e.a&&0==Cht(this.b,e.b))},kGt.Hb=function(){return this.a?CJ(this.b):0},kGt.Ib=function(){return this.a?"OptionalDouble.of("+this.b+")":"OptionalDouble.empty()"},kGt.a=!1,kGt.b=0,bY(KGt,"OptionalDouble",463),fIt(517,1,{517:1},SD,vN),kGt.Fb=function(t){var e;return t===this||!!iO(t,517)&&(e=jz(t,517),this.a==e.a&&0==xL(this.b,e.b))},kGt.Hb=function(){return this.a?this.b:0},kGt.Ib=function(){return this.a?"OptionalInt.of("+this.b+")":"OptionalInt.empty()"},kGt.a=!1,kGt.b=0,bY(KGt,"OptionalInt",517),fIt(503,2004,JGt,qq),kGt.Gc=function(t){return nxt(this,t)},kGt.$b=function(){this.b.c=O5(Dte,zGt,1,0,5,1)},kGt.Hc=function(t){return-1!=(null==t?-1:x9(this.b,t,0))},kGt.Kc=function(){return new Yf(this)},kGt.Mc=function(t){return cat(this,t)},kGt.gc=function(){return this.b.c.length},kGt.Nc=function(){return new h1(this,256)},kGt.Pc=function(){return dN(this.b)},kGt.Qc=function(t){return Zbt(this.b,t)},bY(KGt,"PriorityQueue",503),fIt(1277,1,ZGt,Yf),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return this.a<this.c.b.c.length},kGt.Pb=function(){return EN(this.a<this.c.b.c.length),this.b=this.a++,OU(this.c.b,this.b)},kGt.Qb=function(){_N(-1!=this.b),lat(this.c,this.a=this.b),this.b=-1},kGt.a=0,kGt.b=-1,bY(KGt,"PriorityQueue/1",1277),fIt(230,1,{230:1},cft,C3),kGt.a=0,kGt.b=0;var Tne,Ane,Dne,Ine=0;bY(KGt,"Random",230),fIt(27,1,uZt,h1,UW,CZ),kGt.qd=function(){return this.a},kGt.rd=function(){return Mq(this),this.c},kGt.Nb=function(t){Mq(this),this.d.Nb(t)},kGt.sd=function(t){return Jtt(this,t)},kGt.a=0,kGt.c=0,bY(KGt,"Spliterators/IteratorSpliterator",27),fIt(485,27,uZt,hC),bY(KGt,"SortedSet/1",485),fIt(602,1,QKt,Gf),kGt.we=function(t){this.a.td(t)},bY(KGt,"Spliterator/OfDouble/0methodref$accept$Type",602),fIt(603,1,QKt,Zf),kGt.we=function(t){this.a.td(t)},bY(KGt,"Spliterator/OfDouble/1methodref$accept$Type",603),fIt(604,1,fZt,Kf),kGt.ud=function(t){this.a.td(nht(t))},bY(KGt,"Spliterator/OfInt/2methodref$accept$Type",604),fIt(605,1,fZt,Xf),kGt.ud=function(t){this.a.td(nht(t))},bY(KGt,"Spliterator/OfInt/3methodref$accept$Type",605),fIt(617,1,uZt),kGt.Nb=function(t){p_(this,t)},kGt.qd=function(){return this.d},kGt.rd=function(){return this.e},kGt.d=0,kGt.e=0,bY(KGt,"Spliterators/BaseSpliterator",617),fIt(721,617,uZt),kGt.xe=function(t){g_(this,t)},kGt.Nb=function(t){iO(t,182)?g_(this,jz(t,182)):g_(this,new Zf(t))},kGt.sd=function(t){return iO(t,182)?this.ye(jz(t,182)):this.ye(new Gf(t))},bY(KGt,"Spliterators/AbstractDoubleSpliterator",721),fIt(720,617,uZt),kGt.xe=function(t){g_(this,t)},kGt.Nb=function(t){iO(t,196)?g_(this,jz(t,196)):g_(this,new Xf(t))},kGt.sd=function(t){return iO(t,196)?this.ye(jz(t,196)):this.ye(new Kf(t))},bY(KGt,"Spliterators/AbstractIntSpliterator",720),fIt(540,617,uZt),bY(KGt,"Spliterators/AbstractSpliterator",540),fIt(692,1,uZt),kGt.Nb=function(t){p_(this,t)},kGt.qd=function(){return this.b},kGt.rd=function(){return this.d-this.c},kGt.b=0,kGt.c=0,kGt.d=0,bY(KGt,"Spliterators/BaseArraySpliterator",692),fIt(947,692,uZt,jH),kGt.ze=function(t,e){iR(this,jz(t,38),e)},kGt.Nb=function(t){MY(this,t)},kGt.sd=function(t){return B7(this,t)},bY(KGt,"Spliterators/ArraySpliterator",947),fIt(693,692,uZt,PF),kGt.ze=function(t,e){aR(this,jz(t,182),e)},kGt.xe=function(t){MY(this,t)},kGt.Nb=function(t){iO(t,182)?MY(this,jz(t,182)):MY(this,new Zf(t))},kGt.ye=function(t){return B7(this,t)},kGt.sd=function(t){return iO(t,182)?B7(this,jz(t,182)):B7(this,new Gf(t))},bY(KGt,"Spliterators/DoubleArraySpliterator",693),fIt(1968,1,uZt),kGt.Nb=function(t){p_(this,t)},kGt.qd=function(){return 16448},kGt.rd=function(){return 0},bY(KGt,"Spliterators/EmptySpliterator",1968),fIt(946,1968,uZt,q),kGt.xe=function(t){Fd(t)},kGt.Nb=function(t){iO(t,196)?Fd(jz(t,196)):Fd(new Xf(t))},kGt.ye=function(t){return dC(t)},kGt.sd=function(t){return iO(t,196)?dC(jz(t,196)):dC(new Kf(t))},bY(KGt,"Spliterators/EmptySpliterator/OfInt",946),fIt(580,52,uXt,Py),kGt.Vc=function(t,e){Bq(t,this.a.c.length+1),vV(this.a,t,e)},kGt.Fc=function(t){return Wz(this.a,t)},kGt.Wc=function(t,e){return Bq(t,this.a.c.length+1),sut(this.a,t,e)},kGt.Gc=function(t){return pst(this.a,t)},kGt.$b=function(){this.a.c=O5(Dte,zGt,1,0,5,1)},kGt.Hc=function(t){return-1!=x9(this.a,t,0)},kGt.Ic=function(t){return sst(this.a,t)},kGt.Jc=function(t){Aet(this.a,t)},kGt.Xb=function(t){return Bq(t,this.a.c.length),OU(this.a,t)},kGt.Xc=function(t){return x9(this.a,t,0)},kGt.dc=function(){return 0==this.a.c.length},kGt.Kc=function(){return new Wf(this.a)},kGt.$c=function(t){return Bq(t,this.a.c.length),s7(this.a,t)},kGt.Ud=function(t,e){c1(this.a,t,e)},kGt._c=function(t,e){return Bq(t,this.a.c.length),i6(this.a,t,e)},kGt.gc=function(){return this.a.c.length},kGt.ad=function(t){mL(this.a,t)},kGt.bd=function(t,e){return new s1(this.a,t,e)},kGt.Pc=function(){return dN(this.a)},kGt.Qc=function(t){return Zbt(this.a,t)},kGt.Ib=function(){return LEt(this.a)},bY(KGt,"Vector",580),fIt(809,580,uXt,ov),bY(KGt,"Stack",809),fIt(206,1,{206:1},Iot),kGt.Ib=function(){return W0(this)},bY(KGt,"StringJoiner",206),fIt(544,1992,{3:1,83:1,171:1,161:1},Wk,Wq),kGt.$b=function(){mw(this)},kGt.vc=function(){return new OM(this)},kGt.zc=function(t,e){return kct(this,t,e)},kGt.Bc=function(t){return DJ(this,t)},kGt.gc=function(){return this.c},kGt.c=0,bY(KGt,"TreeMap",544),fIt(390,1,ZGt,jP),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return mN(this)},kGt.Ob=function(){return aC(this.a)},kGt.Qb=function(){tj(this)},bY(KGt,"TreeMap/EntryIterator",390),fIt(435,739,tZt,OM),kGt.$b=function(){mw(this.a)},bY(KGt,"TreeMap/EntrySet",435),fIt(436,383,{484:1,383:1,42:1,436:1},$5),kGt.b=!1;var Lne=bY(KGt,"TreeMap/Node",436);fIt(621,1,{},U),kGt.Ib=function(){return"State: mv="+this.c+" value="+this.d+" done="+this.a+" found="+this.b},kGt.a=!1,kGt.b=!1,kGt.c=!1,bY(KGt,"TreeMap/State",621),fIt(297,22,dXt,gC),kGt.Ae=function(){return!1},kGt.Be=function(){return!1};var One,Mne,Nne,Bne,Pne,Fne=$nt(KGt,"TreeMap/SubMapType",297,Vte,K2,cj);fIt(1112,297,dXt,II),kGt.Be=function(){return!0},$nt(KGt,"TreeMap/SubMapType/1",1112,Fne,null,null),fIt(1113,297,dXt,AL),kGt.Ae=function(){return!0},kGt.Be=function(){return!0},$nt(KGt,"TreeMap/SubMapType/2",1113,Fne,null,null),fIt(1114,297,dXt,LI),kGt.Ae=function(){return!0},$nt(KGt,"TreeMap/SubMapType/3",1114,Fne,null,null),fIt(208,QGt,{3:1,20:1,28:1,14:1,271:1,21:1,84:1,208:1},Uy,f_),kGt.Nc=function(){return new hC(this)},kGt.Fc=function(t){return XW(this,t)},kGt.$b=function(){mw(this.a)},kGt.Hc=function(t){return MF(this.a,t)},kGt.Kc=function(){return new Ff(new jP(new OM(new Pf(this.a).a).b))},kGt.Mc=function(t){return _M(this,t)},kGt.gc=function(){return this.a.c};var jne=bY(KGt,"TreeSet",208);fIt(966,1,{},ng),kGt.Ce=function(t,e){return MB(this.a,t,e)},bY(hXt,"BinaryOperator/lambda$0$Type",966),fIt(967,1,{},ig),kGt.Ce=function(t,e){return NB(this.a,t,e)},bY(hXt,"BinaryOperator/lambda$1$Type",967),fIt(846,1,{},V),kGt.Kb=function(t){return t},bY(hXt,"Function/lambda$0$Type",846),fIt(431,1,NZt,ag),kGt.Mb=function(t){return!this.a.Mb(t)},bY(hXt,"Predicate/lambda$2$Type",431),fIt(572,1,{572:1});var $ne,zne,Hne=bY(fXt,"Handler",572);fIt(2007,1,PGt),kGt.ne=function(){return"DUMMY"},kGt.Ib=function(){return this.ne()},bY(fXt,"Level",2007),fIt(1621,2007,PGt,W),kGt.ne=function(){return"INFO"},bY(fXt,"Level/LevelInfo",1621),fIt(1640,1,{},By),bY(fXt,"LogManager",1640),fIt(1780,1,PGt,ej),kGt.b=null,bY(fXt,"LogRecord",1780),fIt(512,1,{512:1},y6),kGt.e=!1;var Une=!1,Vne=!1,qne=!1,Wne=!1,Yne=!1;bY(fXt,"Logger",512),fIt(819,572,{572:1},Y),bY(fXt,"SimpleConsoleLogHandler",819),fIt(132,22,{3:1,35:1,22:1,132:1},pC);var Gne,Zne,Kne,Xne,Jne=$nt(bXt,"Collector/Characteristics",132,Vte,p1,lj);fIt(744,1,{},wW),bY(bXt,"CollectorImpl",744),fIt(1060,1,{},G),kGt.Ce=function(t,e){return Adt(jz(t,206),jz(e,206))},bY(bXt,"Collectors/10methodref$merge$Type",1060),fIt(1061,1,{},Z),kGt.Kb=function(t){return W0(jz(t,206))},bY(bXt,"Collectors/11methodref$toString$Type",1061),fIt(1062,1,{},rg),kGt.Kb=function(t){return cM(),!!RD(t)},bY(bXt,"Collectors/12methodref$test$Type",1062),fIt(251,1,{},z),kGt.Od=function(t,e){jz(t,14).Fc(e)},bY(bXt,"Collectors/20methodref$add$Type",251),fIt(253,1,{},H),kGt.Ee=function(){return new Lm},bY(bXt,"Collectors/21methodref$ctor$Type",253),fIt(346,1,{},K),kGt.Ee=function(){return new Ny},bY(bXt,"Collectors/23methodref$ctor$Type",346),fIt(347,1,{},X),kGt.Od=function(t,e){RW(jz(t,53),e)},bY(bXt,"Collectors/24methodref$add$Type",347),fIt(1055,1,{},J),kGt.Ce=function(t,e){return Xk(jz(t,15),jz(e,14))},bY(bXt,"Collectors/4methodref$addAll$Type",1055),fIt(1059,1,{},Q),kGt.Od=function(t,e){d7(jz(t,206),jz(e,475))},bY(bXt,"Collectors/9methodref$add$Type",1059),fIt(1058,1,{},Zz),kGt.Ee=function(){return new Iot(this.a,this.b,this.c)},bY(bXt,"Collectors/lambda$15$Type",1058),fIt(1063,1,{},tt),kGt.Ee=function(){var t;return Xbt(t=new b3,(cM(),!1),new Lm),Xbt(t,!0,new Lm),t},bY(bXt,"Collectors/lambda$22$Type",1063),fIt(1064,1,{},og),kGt.Ee=function(){return Cst(Hx(Dte,1),zGt,1,5,[this.a])},bY(bXt,"Collectors/lambda$25$Type",1064),fIt(1065,1,{},sg),kGt.Od=function(t,e){jU(this.a,ent(t))},bY(bXt,"Collectors/lambda$26$Type",1065),fIt(1066,1,{},cg),kGt.Ce=function(t,e){return Pq(this.a,ent(t),ent(e))},bY(bXt,"Collectors/lambda$27$Type",1066),fIt(1067,1,{},et),kGt.Kb=function(t){return ent(t)[0]},bY(bXt,"Collectors/lambda$28$Type",1067),fIt(713,1,{},nt),kGt.Ce=function(t,e){return $U(t,e)},bY(bXt,"Collectors/lambda$4$Type",713),fIt(252,1,{},it),kGt.Ce=function(t,e){return Hk(jz(t,14),jz(e,14))},bY(bXt,"Collectors/lambda$42$Type",252),fIt(348,1,{},at),kGt.Ce=function(t,e){return Uk(jz(t,53),jz(e,53))},bY(bXt,"Collectors/lambda$50$Type",348),fIt(349,1,{},rt),kGt.Kb=function(t){return jz(t,53)},bY(bXt,"Collectors/lambda$51$Type",349),fIt(1054,1,{},lg),kGt.Od=function(t,e){hlt(this.a,jz(t,83),e)},bY(bXt,"Collectors/lambda$7$Type",1054),fIt(1056,1,{},ot),kGt.Ce=function(t,e){return bst(jz(t,83),jz(e,83),new J)},bY(bXt,"Collectors/lambda$8$Type",1056),fIt(1057,1,{},ug),kGt.Kb=function(t){return yft(this.a,jz(t,83))},bY(bXt,"Collectors/lambda$9$Type",1057),fIt(539,1,{}),kGt.He=function(){wG(this)},kGt.d=!1,bY(bXt,"TerminatableStream",539),fIt(812,539,mXt,AB),kGt.He=function(){wG(this)},bY(bXt,"DoubleStreamImpl",812),fIt(1784,721,uZt,Xz),kGt.ye=function(t){return bvt(this,jz(t,182))},kGt.a=null,bY(bXt,"DoubleStreamImpl/2",1784),fIt(1785,1,QKt,dg),kGt.we=function(t){$I(this.a,t)},bY(bXt,"DoubleStreamImpl/2/lambda$0$Type",1785),fIt(1782,1,QKt,hg),kGt.we=function(t){jI(this.a,t)},bY(bXt,"DoubleStreamImpl/lambda$0$Type",1782),fIt(1783,1,QKt,fg),kGt.we=function(t){lpt(this.a,t)},bY(bXt,"DoubleStreamImpl/lambda$2$Type",1783),fIt(1358,720,uZt,m6),kGt.ye=function(t){return v2(this,jz(t,196))},kGt.a=0,kGt.b=0,kGt.c=0,bY(bXt,"IntStream/5",1358),fIt(787,539,mXt,DB),kGt.He=function(){wG(this)},kGt.Ie=function(){return xG(this),this.a},bY(bXt,"IntStreamImpl",787),fIt(788,539,mXt,Yk),kGt.He=function(){wG(this)},kGt.Ie=function(){return xG(this),SO(),Dne},bY(bXt,"IntStreamImpl/Empty",788),fIt(1463,1,fZt,gg),kGt.ud=function(t){iot(this.a,t)},bY(bXt,"IntStreamImpl/lambda$4$Type",1463);var Qne,tie=dU(bXt,"Stream");fIt(30,539,{525:1,670:1,833:1},NU),kGt.He=function(){wG(this)},bY(bXt,"StreamImpl",30),fIt(845,1,{},st),kGt.ld=function(t){return uH(t)},bY(bXt,"StreamImpl/0methodref$lambda$2$Type",845),fIt(1084,540,uZt,BF),kGt.sd=function(t){for(;D8(this);){if(this.a.sd(t))return!0;wG(this.b),this.b=null,this.a=null}return!1},bY(bXt,"StreamImpl/1",1084),fIt(1085,1,dZt,pg),kGt.td=function(t){eH(this.a,jz(t,833))},bY(bXt,"StreamImpl/1/lambda$0$Type",1085),fIt(1086,1,NZt,bg),kGt.Mb=function(t){return RW(this.a,t)},bY(bXt,"StreamImpl/1methodref$add$Type",1086),fIt(1087,540,uZt,bK),kGt.sd=function(t){var e;return this.a||(e=new Lm,this.b.a.Nb(new mg(e)),kK(),mL(e,this.c),this.a=new h1(e,16)),Jtt(this.a,t)},kGt.a=null,bY(bXt,"StreamImpl/5",1087),fIt(1088,1,dZt,mg),kGt.td=function(t){Wz(this.a,t)},bY(bXt,"StreamImpl/5/2methodref$add$Type",1088),fIt(722,540,uZt,G8),kGt.sd=function(t){for(this.b=!1;!this.b&&this.c.sd(new AC(this,t)););return this.b},kGt.b=!1,bY(bXt,"StreamImpl/FilterSpliterator",722),fIt(1079,1,dZt,AC),kGt.td=function(t){Nq(this.a,this.b,t)},bY(bXt,"StreamImpl/FilterSpliterator/lambda$0$Type",1079),fIt(1075,721,uZt,x7),kGt.ye=function(t){return wF(this,jz(t,182))},bY(bXt,"StreamImpl/MapToDoubleSpliterator",1075),fIt(1078,1,dZt,DC),kGt.td=function(t){wC(this.a,this.b,t)},bY(bXt,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1078),fIt(1074,720,uZt,R7),kGt.ye=function(t){return xF(this,jz(t,196))},bY(bXt,"StreamImpl/MapToIntSpliterator",1074),fIt(1077,1,dZt,IC),kGt.td=function(t){vC(this.a,this.b,t)},bY(bXt,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1077),fIt(719,540,uZt,_7),kGt.sd=function(t){return RF(this,t)},bY(bXt,"StreamImpl/MapToObjSpliterator",719),fIt(1076,1,dZt,LC),kGt.td=function(t){xC(this.a,this.b,t)},bY(bXt,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1076),fIt(618,1,dZt,ct),kGt.td=function(t){Ch(this,t)},bY(bXt,"StreamImpl/ValueConsumer",618),fIt(1080,1,dZt,lt),kGt.td=function(t){fE()},bY(bXt,"StreamImpl/lambda$0$Type",1080),fIt(1081,1,dZt,ut),kGt.td=function(t){fE()},bY(bXt,"StreamImpl/lambda$1$Type",1081),fIt(1082,1,{},yg),kGt.Ce=function(t,e){return Fj(this.a,t,e)},bY(bXt,"StreamImpl/lambda$4$Type",1082),fIt(1083,1,dZt,SC),kGt.td=function(t){xP(this.b,this.a,t)},bY(bXt,"StreamImpl/lambda$5$Type",1083),fIt(1089,1,dZt,vg),kGt.td=function(t){zct(this.a,jz(t,365))},bY(bXt,"TerminatableStream/lambda$0$Type",1089),fIt(2041,1,{}),fIt(1914,1,{},dt),bY("javaemul.internal","ConsoleLogger",1914),fIt(2038,1,{});var eie,nie,iie=0,aie=0;fIt(1768,1,dZt,ht),kGt.td=function(t){jz(t,308)},bY(_Xt,"BowyerWatsonTriangulation/lambda$0$Type",1768),fIt(1769,1,dZt,wg),kGt.td=function(t){jat(this.a,jz(t,308).e)},bY(_Xt,"BowyerWatsonTriangulation/lambda$1$Type",1769),fIt(1770,1,dZt,ft),kGt.td=function(t){jz(t,168)},bY(_Xt,"BowyerWatsonTriangulation/lambda$2$Type",1770),fIt(1765,1,kXt,xg),kGt.ue=function(t,e){return z4(this.a,jz(t,168),jz(e,168))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(_Xt,"NaiveMinST/lambda$0$Type",1765),fIt(499,1,{},Rg),bY(_Xt,"NodeMicroLayout",499),fIt(168,1,{168:1},OC),kGt.Fb=function(t){var e;return!!iO(t,168)&&(e=jz(t,168),iZ(this.a,e.a)&&iZ(this.b,e.b)||iZ(this.a,e.b)&&iZ(this.b,e.a))},kGt.Hb=function(){return BI(this.a)+BI(this.b)};var rie=bY(_Xt,"TEdge",168);fIt(308,1,{308:1},J$t),kGt.Fb=function(t){var e;return!!iO(t,308)&&B9(this,(e=jz(t,308)).a)&&B9(this,e.b)&&B9(this,e.c)},kGt.Hb=function(){return BI(this.a)+BI(this.b)+BI(this.c)},bY(_Xt,"TTriangle",308),fIt(221,1,{221:1},CL),bY(_Xt,"Tree",221),fIt(1254,1,{},SQ),bY(EXt,"Scanline",1254);var oie=dU(EXt,CXt);fIt(1692,1,{},det),bY(SXt,"CGraph",1692),fIt(307,1,{307:1},iQ),kGt.b=0,kGt.c=0,kGt.d=0,kGt.g=0,kGt.i=0,kGt.k=PKt,bY(SXt,"CGroup",307),fIt(815,1,{},qy),bY(SXt,"CGroup/CGroupBuilder",815),fIt(57,1,{57:1},AP),kGt.Ib=function(){return this.j?kB(this.j.Kb(this)):(xB(cie),cie.o+"@"+(EM(this)>>>0).toString(16))},kGt.f=0,kGt.i=PKt;var sie,cie=bY(SXt,"CNode",57);fIt(814,1,{},Wy),bY(SXt,"CNode/CNodeBuilder",814),fIt(1525,1,{},gt),kGt.Oe=function(t,e){return 0},kGt.Pe=function(t,e){return 0},bY(SXt,AXt,1525),fIt(1790,1,{},pt),kGt.Le=function(t){var e,n,a,r,o,s,c,l,u,d,h,f,g,p,b;for(u=BKt,a=new Wf(t.a.b);a.a<a.c.c.length;)e=jz(J1(a),57),u=i.Math.min(u,e.a.j.d.c+e.b.a);for(g=new Zk,s=new Wf(t.a.a);s.a<s.c.c.length;)(o=jz(J1(s),307)).k=u,0==o.g&&n6(g,o,g.c.b,g.c);for(;0!=g.b;){for(r=(o=jz(0==g.b?null:(EN(0!=g.b),Det(g,g.a.a)),307)).j.d.c,f=o.a.a.ec().Kc();f.Ob();)d=jz(f.Pb(),57),b=o.k+d.b.a,!Uut(t,o,t.d)||d.d.c<b?d.i=b:d.i=d.d.c;for(r-=o.j.i,o.b+=r,t.d==(jdt(),jSe)||t.d==PSe?o.c+=r:o.c-=r,h=o.a.a.ec().Kc();h.Ob();)for(l=(d=jz(h.Pb(),57)).c.Kc();l.Ob();)c=jz(l.Pb(),57),p=fI(t.d)?t.g.Oe(d,c):t.g.Pe(d,c),c.a.k=i.Math.max(c.a.k,d.i+d.d.b+p-c.b.a),iX(t,c,t.d)&&(c.a.k=i.Math.max(c.a.k,c.d.c-c.b.a)),--c.a.g,0==c.a.g&&MH(g,c.a)}for(n=new Wf(t.a.b);n.a<n.c.c.length;)(e=jz(J1(n),57)).d.c=e.i},bY(SXt,"LongestPathCompaction",1790),fIt(1690,1,{},vDt),kGt.e=!1;var lie,uie,die,hie=bY(SXt,MXt,1690);fIt(1691,1,dZt,_g),kGt.td=function(t){nst(this.a,jz(t,46))},bY(SXt,NXt,1691),fIt(1791,1,{},bt),kGt.Me=function(t){var e,n,i,a,r,o;for(e=new Wf(t.a.b);e.a<e.c.c.length;)jz(J1(e),57).c.$b();for(i=new Wf(t.a.b);i.a<i.c.c.length;)for(n=jz(J1(i),57),r=new Wf(t.a.b);r.a<r.c.c.length;)n!=(a=jz(J1(r),57))&&(n.a&&n.a==a.a||(o=fI(t.d)?t.g.Pe(n,a):t.g.Oe(n,a),(a.d.c>n.d.c||n.d.c==a.d.c&&n.d.b<a.d.b)&&Bpt(a.d.d+a.d.a+o,n.d.d)&&Ppt(a.d.d,n.d.d+n.d.a+o)&&n.c.Fc(a)))},bY(SXt,"QuadraticConstraintCalculation",1791),fIt(522,1,{522:1},Mm),kGt.a=!1,kGt.b=!1,kGt.c=!1,kGt.d=!1,bY(SXt,BXt,522),fIt(803,1,{},NV),kGt.Me=function(t){this.c=t,bTt(this,new vt)},bY(SXt,PXt,803),fIt(1718,1,{679:1},lX),kGt.Ke=function(t){FSt(this,jz(t,464))},bY(SXt,FXt,1718),fIt(1719,1,kXt,mt),kGt.ue=function(t,e){return rK(jz(t,57),jz(e,57))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(SXt,jXt,1719),fIt(464,1,{464:1},TC),kGt.a=!1,bY(SXt,$Xt,464),fIt(1720,1,kXt,yt),kGt.ue=function(t,e){return Xxt(jz(t,464),jz(e,464))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(SXt,zXt,1720),fIt(1721,1,HXt,vt),kGt.Lb=function(t){return jz(t,57),!0},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return jz(t,57),!0},bY(SXt,"ScanlineConstraintCalculator/lambda$1$Type",1721),fIt(428,22,{3:1,35:1,22:1,428:1},FC);var fie,gie,pie,bie=$nt(UXt,"HighLevelSortingCriterion",428,Vte,nJ,uj);fIt(427,22,{3:1,35:1,22:1,427:1},jC);var mie,yie,vie,wie,xie,Rie,_ie,kie,Eie,Cie,Sie=$nt(UXt,"LowLevelSortingCriterion",427,Vte,iJ,dj),Tie=dU(VXt,"ILayoutMetaDataProvider");fIt(853,1,ZXt,Hu),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,qXt),KXt),"Polyomino Traversal Strategy"),"Traversal strategy for trying different candidate positions for polyominoes."),Cie),(CSt(),pEe)),jie),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,WXt),KXt),"Polyomino Secondary Sorting Criterion"),"Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."),kie),pEe),Sie),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,YXt),KXt),"Polyomino Primary Sorting Criterion"),"Possible primary sorting criteria for the processing order of polyominoes."),Rie),pEe),bie),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,GXt),KXt),"Fill Polyominoes"),"Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."),(cM(),!0)),fEe),wee),Qht(lEe))))},bY(UXt,"PolyominoOptions",853),fIt(250,22,{3:1,35:1,22:1,250:1},$C);var Aie,Die,Iie,Lie,Oie,Mie,Nie,Bie,Pie,Fie,jie=$nt(UXt,"TraversalStrategy",250,Vte,_it,hj);fIt(213,1,{213:1},wt),kGt.Ib=function(){return"NEdge[id="+this.b+" w="+this.g+" d="+this.a+"]"},kGt.a=1,kGt.b=0,kGt.c=0,kGt.f=!1,kGt.g=0;var $ie=bY(XXt,"NEdge",213);fIt(176,1,{},$y),bY(XXt,"NEdge/NEdgeBuilder",176),fIt(653,1,{},Fy),bY(XXt,"NGraph",653),fIt(121,1,{121:1},v7),kGt.c=-1,kGt.d=0,kGt.e=0,kGt.i=-1,kGt.j=!1;var zie=bY(XXt,"NNode",121);fIt(795,1,XKt,jy),kGt.Jc=function(t){t6(this,t)},kGt.Lc=function(){return new NU(null,new h1(this,16))},kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.Oc=function(){return new NU(null,new h1(this,16))},kGt.Vc=function(t,e){++this.b,vV(this.a,t,e)},kGt.Fc=function(t){return NM(this,t)},kGt.Wc=function(t,e){return++this.b,sut(this.a,t,e)},kGt.Gc=function(t){return++this.b,pst(this.a,t)},kGt.$b=function(){++this.b,this.a.c=O5(Dte,zGt,1,0,5,1)},kGt.Hc=function(t){return-1!=x9(this.a,t,0)},kGt.Ic=function(t){return sst(this.a,t)},kGt.Xb=function(t){return OU(this.a,t)},kGt.Xc=function(t){return x9(this.a,t,0)},kGt.dc=function(){return 0==this.a.c.length},kGt.Kc=function(){return I8(new Wf(this.a))},kGt.Yc=function(){throw $m(new py)},kGt.Zc=function(t){throw $m(new py)},kGt.$c=function(t){return++this.b,s7(this.a,t)},kGt.Mc=function(t){return BM(this,t)},kGt._c=function(t,e){return++this.b,i6(this.a,t,e)},kGt.gc=function(){return this.a.c.length},kGt.bd=function(t,e){return new s1(this.a,t,e)},kGt.Pc=function(){return dN(this.a)},kGt.Qc=function(t){return Zbt(this.a,t)},kGt.b=0,bY(XXt,"NNode/ChangeAwareArrayList",795),fIt(269,1,{},zy),bY(XXt,"NNode/NNodeBuilder",269),fIt(1630,1,{},xt),kGt.a=!1,kGt.f=NGt,kGt.j=0,bY(XXt,"NetworkSimplex",1630),fIt(1294,1,dZt,kg),kGt.td=function(t){Hqt(this.a,jz(t,680),!0,!1)},bY(QXt,"NodeLabelAndSizeCalculator/lambda$0$Type",1294),fIt(558,1,{},Eg),kGt.b=!0,kGt.c=!0,kGt.d=!0,kGt.e=!0,bY(QXt,"NodeMarginCalculator",558),fIt(212,1,{212:1}),kGt.j=!1,kGt.k=!1;var Hie=bY(tJt,"Cell",212);fIt(124,212,{124:1,212:1},FP),kGt.Re=function(){return qH(this)},kGt.Se=function(){var t;return t=this.n,this.a.a+t.b+t.c},bY(tJt,"AtomicCell",124),fIt(232,22,{3:1,35:1,22:1,232:1},zC);var Uie,Vie,qie,Wie,Yie=$nt(tJt,"ContainerArea",232,Vte,b1,fj);fIt(326,212,nJt),bY(tJt,"ContainerCell",326),fIt(1473,326,nJt,zgt),kGt.Re=function(){var t;return t=0,this.e?this.b?t=this.b.b:this.a[1][1]&&(t=this.a[1][1].Re()):t=Kft(this,qvt(this,!0)),t>0?t+this.n.d+this.n.a:0},kGt.Se=function(){var t,e,n,a,r;if(r=0,this.e)this.b?r=this.b.a:this.a[1][1]&&(r=this.a[1][1].Se());else if(this.g)r=Kft(this,Axt(this,null,!0));else for(Net(),n=0,a=(e=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;n<a;++n)t=e[n],r=i.Math.max(r,Kft(this,Axt(this,t,!0)));return r>0?r+this.n.b+this.n.c:0},kGt.Te=function(){var t,e,n,i,a;if(this.g)for(t=Axt(this,null,!1),Net(),i=0,a=(n=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;i<a;++i)GNt(this,e=n[i],t);else for(Net(),i=0,a=(n=Cst(Hx(Yie,1),IZt,232,0,[Uie,Vie,qie])).length;i<a;++i)GNt(this,e=n[i],t=Axt(this,e,!1))},kGt.Ue=function(){var t,e,n,a;e=this.i,t=this.n,a=qvt(this,!1),G6(this,(Net(),Uie),e.d+t.d,a),G6(this,qie,e.d+e.a-t.a-a[2],a),n=e.a-t.d-t.a,a[0]>0&&(a[0]+=this.d,n-=a[0]),a[2]>0&&(a[2]+=this.d,n-=a[2]),this.c.a=i.Math.max(0,n),this.c.d=e.d+t.d+(this.c.a-n)/2,a[1]=i.Math.max(a[1],n),G6(this,Vie,e.d+t.d+a[0]-(a[1]-n)/2,a)},kGt.b=null,kGt.d=0,kGt.e=!1,kGt.f=!1,kGt.g=!1;var Gie=0,Zie=0;bY(tJt,"GridContainerCell",1473),fIt(461,22,{3:1,35:1,22:1,461:1},HC);var Kie,Xie,Jie,Qie,tae=$nt(tJt,"HorizontalLabelAlignment",461,Vte,m1,gj);fIt(306,212,{212:1,306:1},yJ,fet,BX),kGt.Re=function(){return WH(this)},kGt.Se=function(){return YH(this)},kGt.a=0,kGt.c=!1;var eae=bY(tJt,"LabelCell",306);fIt(244,326,{212:1,326:1,244:1},Tbt),kGt.Re=function(){return kAt(this)},kGt.Se=function(){return EAt(this)},kGt.Te=function(){F$t(this)},kGt.Ue=function(){U$t(this)},kGt.b=0,kGt.c=0,kGt.d=!1,bY(tJt,"StripContainerCell",244),fIt(1626,1,NZt,Rt),kGt.Mb=function(t){return Gw(jz(t,212))},bY(tJt,"StripContainerCell/lambda$0$Type",1626),fIt(1627,1,{},_t),kGt.Fe=function(t){return jz(t,212).Se()},bY(tJt,"StripContainerCell/lambda$1$Type",1627),fIt(1628,1,NZt,kt),kGt.Mb=function(t){return Zw(jz(t,212))},bY(tJt,"StripContainerCell/lambda$2$Type",1628),fIt(1629,1,{},Et),kGt.Fe=function(t){return jz(t,212).Re()},bY(tJt,"StripContainerCell/lambda$3$Type",1629),fIt(462,22,{3:1,35:1,22:1,462:1},UC);var nae,iae,aae,rae,oae=$nt(tJt,"VerticalLabelAlignment",462,Vte,y1,pj);fIt(789,1,{},eWt),kGt.c=0,kGt.d=0,kGt.k=0,kGt.s=0,kGt.t=0,kGt.v=!1,kGt.w=0,kGt.D=!1,bY(cJt,"NodeContext",789),fIt(1471,1,kXt,Ct),kGt.ue=function(t,e){return ZD(jz(t,61),jz(e,61))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(cJt,"NodeContext/0methodref$comparePortSides$Type",1471),fIt(1472,1,kXt,St),kGt.ue=function(t,e){return qkt(jz(t,111),jz(e,111))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(cJt,"NodeContext/1methodref$comparePortContexts$Type",1472),fIt(159,22,{3:1,35:1,22:1,159:1},srt);var sae,cae,lae,uae,dae,hae,fae,gae,pae,bae,mae,yae,vae,wae,xae,Rae,_ae,kae,Eae,Cae,Sae,Tae,Aae,Dae,Iae,Lae=$nt(cJt,"NodeLabelLocation",159,Vte,tmt,bj);fIt(111,1,{111:1},kDt),kGt.a=!1,bY(cJt,"PortContext",111),fIt(1476,1,dZt,Tt),kGt.td=function(t){C_(jz(t,306))},bY(dJt,hJt,1476),fIt(1477,1,NZt,At),kGt.Mb=function(t){return!!jz(t,111).c},bY(dJt,fJt,1477),fIt(1478,1,dZt,Dt),kGt.td=function(t){C_(jz(t,111).c)},bY(dJt,"LabelPlacer/lambda$2$Type",1478),fIt(1475,1,dZt,Lt),kGt.td=function(t){zB(),Zm(jz(t,111))},bY(dJt,"NodeLabelAndSizeUtilities/lambda$0$Type",1475),fIt(790,1,dZt,Dj),kGt.td=function(t){NE(this.b,this.c,this.a,jz(t,181))},kGt.a=!1,kGt.c=!1,bY(dJt,"NodeLabelCellCreator/lambda$0$Type",790),fIt(1474,1,dZt,Cg),kGt.td=function(t){Sy(this.a,jz(t,181))},bY(dJt,"PortContextCreator/lambda$0$Type",1474),fIt(1829,1,{},Ot),bY(pJt,"GreedyRectangleStripOverlapRemover",1829),fIt(1830,1,kXt,It),kGt.ue=function(t,e){return FM(jz(t,222),jz(e,222))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(pJt,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1830),fIt(1786,1,{},Xy),kGt.a=5,kGt.e=0,bY(pJt,"RectangleStripOverlapRemover",1786),fIt(1787,1,kXt,Nt),kGt.ue=function(t,e){return jM(jz(t,222),jz(e,222))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(pJt,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1787),fIt(1789,1,kXt,Bt),kGt.ue=function(t,e){return KW(jz(t,222),jz(e,222))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(pJt,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1789),fIt(406,22,{3:1,35:1,22:1,406:1},VC);var Oae,Mae,Nae,Bae,Pae,Fae=$nt(pJt,"RectangleStripOverlapRemover/OverlapRemovalDirection",406,Vte,Z2,mj);fIt(222,1,{222:1},OV),bY(pJt,"RectangleStripOverlapRemover/RectangleNode",222),fIt(1788,1,dZt,Sg),kGt.td=function(t){Svt(this.a,jz(t,222))},bY(pJt,"RectangleStripOverlapRemover/lambda$1$Type",1788),fIt(1304,1,kXt,Pt),kGt.ue=function(t,e){return VHt(jz(t,167),jz(e,167))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1304),fIt(1307,1,{},Ft),kGt.Kb=function(t){return jz(t,324).a},bY(mJt,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1307),fIt(1308,1,NZt,jt),kGt.Mb=function(t){return jz(t,323).a},bY(mJt,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1308),fIt(1309,1,NZt,$t),kGt.Mb=function(t){return jz(t,323).a},bY(mJt,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1309),fIt(1302,1,kXt,zt),kGt.ue=function(t,e){return YPt(jz(t,167),jz(e,167))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1302),fIt(1305,1,{},Mt),kGt.Kb=function(t){return jz(t,324).a},bY(mJt,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1305),fIt(767,1,kXt,Ht),kGt.ue=function(t,e){return qot(jz(t,167),jz(e,167))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/MinNumOfExtensionsComparator",767),fIt(1300,1,kXt,Ut),kGt.ue=function(t,e){return Zit(jz(t,321),jz(e,321))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/MinPerimeterComparator",1300),fIt(1301,1,kXt,Vt),kGt.ue=function(t,e){return ryt(jz(t,321),jz(e,321))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/MinPerimeterComparatorWithShape",1301),fIt(1303,1,kXt,qt),kGt.ue=function(t,e){return $Ft(jz(t,167),jz(e,167))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(mJt,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1303),fIt(1306,1,{},Wt),kGt.Kb=function(t){return jz(t,324).a},bY(mJt,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1306),fIt(777,1,{},MC),kGt.Ce=function(t,e){return T2(this,jz(t,46),jz(e,167))},bY(mJt,"SuccessorCombination",777),fIt(644,1,{},Yt),kGt.Ce=function(t,e){var n;return WAt((n=jz(t,46),jz(e,167),n))},bY(mJt,"SuccessorJitter",644),fIt(643,1,{},Gt),kGt.Ce=function(t,e){var n;return hNt((n=jz(t,46),jz(e,167),n))},bY(mJt,"SuccessorLineByLine",643),fIt(568,1,{},Zt),kGt.Ce=function(t,e){var n;return uLt((n=jz(t,46),jz(e,167),n))},bY(mJt,"SuccessorManhattan",568),fIt(1356,1,{},Kt),kGt.Ce=function(t,e){var n;return xMt((n=jz(t,46),jz(e,167),n))},bY(mJt,"SuccessorMaxNormWindingInMathPosSense",1356),fIt(400,1,{},Tg),kGt.Ce=function(t,e){return jW(this,t,e)},kGt.c=!1,kGt.d=!1,kGt.e=!1,kGt.f=!1,bY(mJt,"SuccessorQuadrantsGeneric",400),fIt(1357,1,{},Xt),kGt.Kb=function(t){return jz(t,324).a},bY(mJt,"SuccessorQuadrantsGeneric/lambda$0$Type",1357),fIt(323,22,{3:1,35:1,22:1,323:1},PC),kGt.a=!1;var jae,$ae,zae,Hae,Uae,Vae=$nt(RJt,_Jt,323,Vte,J2,yj);fIt(1298,1,{}),kGt.Ib=function(){var t,e,n,i,a,r;for(n=" ",t=nht(0),a=0;a<this.o;a++)n+=""+t.a,t=nht(uP(t.a));for(n+="\n",t=nht(0),r=0;r<this.p;r++){for(n+=""+t.a,t=nht(uP(t.a)),i=0;i<this.o;i++)0==Gut(e=tat(this,i,r),0)?n+="_":0==Gut(e,1)?n+="X":n+="0";n+="\n"}return lN(n,0,n.length-1)},kGt.o=0,kGt.p=0,bY(RJt,"TwoBitGrid",1298),fIt(321,1298,{321:1},Hgt),kGt.j=0,kGt.k=0,bY(RJt,"PlanarGrid",321),fIt(167,321,{321:1,167:1}),kGt.g=0,kGt.i=0,bY(RJt,"Polyomino",167);var qae=dU(TJt,AJt);fIt(134,1,DJt,Jt),kGt.Ye=function(t,e){return cct(this,t,e)},kGt.Ve=function(){return HU(this)},kGt.We=function(t){return yEt(this,t)},kGt.Xe=function(t){return IN(this,t)},bY(TJt,"MapPropertyHolder",134),fIt(1299,134,DJt,vNt),bY(RJt,"Polyominoes",1299);var Wae,Yae,Gae,Zae,Kae=!1;fIt(1766,1,dZt,Qt),kGt.td=function(t){oUt(jz(t,221))},bY(IJt,"DepthFirstCompaction/0methodref$compactTree$Type",1766),fIt(810,1,dZt,Ag),kGt.td=function(t){BG(this.a,jz(t,221))},bY(IJt,"DepthFirstCompaction/lambda$1$Type",810),fIt(1767,1,dZt,Lj),kGt.td=function(t){gbt(this.a,this.b,this.c,jz(t,221))},bY(IJt,"DepthFirstCompaction/lambda$2$Type",1767),fIt(65,1,{65:1},AQ),bY(IJt,"Node",65),fIt(1250,1,{},SL),bY(IJt,"ScanlineOverlapCheck",1250),fIt(1251,1,{679:1},cX),kGt.Ke=function(t){HB(this,jz(t,440))},bY(IJt,"ScanlineOverlapCheck/OverlapsScanlineHandler",1251),fIt(1252,1,kXt,te),kGt.ue=function(t,e){return Mht(jz(t,65),jz(e,65))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(IJt,"ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type",1252),fIt(440,1,{440:1},NC),kGt.a=!1,bY(IJt,"ScanlineOverlapCheck/Timestamp",440),fIt(1253,1,kXt,ee),kGt.ue=function(t,e){return Jxt(jz(t,440),jz(e,440))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(IJt,"ScanlineOverlapCheck/lambda$0$Type",1253),fIt(550,1,{},ne),bY(LJt,"SVGImage",550),fIt(324,1,{324:1},Oj),kGt.Ib=function(){return"("+this.a+jGt+this.b+jGt+this.c+")"},bY(LJt,"UniqueTriple",324),fIt(209,1,OJt),bY(MJt,"AbstractLayoutProvider",209),fIt(1132,209,OJt,ie),kGt.Ze=function(t,e){var n,i,a;0===(Akt(e,NJt,1),this.a=Hw(_B(JIt(t,(Rmt(),xre)))),E5(t,dre)&&(i=kB(JIt(t,dre)),(n=WPt(ait(),i))&&jz(sJ(n.f),209).Ze(t,yrt(e,1))),a=new s3(this.a),this.b=Bqt(a,t),jz(JIt(t,(Ult(),ore)),481).g)?($Dt(new ae,this.b),Kmt(t,gre,yEt(this.b,gre))):Dk(),qqt(a),Kmt(t,fre,this.b),zCt(e)},kGt.a=0,bY(BJt,"DisCoLayoutProvider",1132),fIt(1244,1,{},ae),kGt.c=!1,kGt.e=0,kGt.f=0,bY(BJt,"DisCoPolyominoCompactor",1244),fIt(561,1,{561:1},cV),kGt.b=!0,bY(PJt,"DCComponent",561),fIt(394,22,{3:1,35:1,22:1,394:1},BC),kGt.a=!1;var Xae,Jae,Qae,tre,ere,nre=$nt(PJt,"DCDirection",394,Vte,X2,vj);fIt(266,134,{3:1,266:1,94:1,134:1},RIt),bY(PJt,"DCElement",266),fIt(395,1,{395:1},Tvt),kGt.c=0,bY(PJt,"DCExtension",395),fIt(755,134,DJt,PR),bY(PJt,"DCGraph",755),fIt(481,22,{3:1,35:1,22:1,481:1},SN);var ire,are,rre,ore,sre,cre,lre,ure,dre,hre,fre,gre,pre,bre,mre,yre,vre,wre,xre,Rre,_re,kre,Ere=$nt(FJt,jJt,481,Vte,NZ,wj);fIt(854,1,ZXt,$u),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,$Jt),VJt),"Connected Components Compaction Strategy"),"Strategy for packing different connected components in order to save space and enhance readability of a graph."),sre),(CSt(),pEe)),Ere),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,zJt),VJt),"Connected Components Layout Algorithm"),"A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."),vEe),zee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,HJt),"debug"),"DCGraph"),"Access to the DCGraph is intended for the debug view,"),yEe),Dte),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,UJt),"debug"),"List of Polyominoes"),"Access to the polyominoes is intended for the debug view,"),yEe),Dte),Qht(lEe)))),$zt((new zu,t))},bY(FJt,"DisCoMetaDataProvider",854),fIt(998,1,ZXt,zu),kGt.Qe=function(t){$zt(t)},bY(FJt,"DisCoOptions",998),fIt(999,1,{},re),kGt.$e=function(){return new ie},kGt._e=function(t){},bY(FJt,"DisCoOptions/DiscoFactory",999),fIt(562,167,{321:1,167:1,562:1},ZLt),kGt.a=0,kGt.b=0,kGt.c=0,kGt.d=0,bY("org.eclipse.elk.alg.disco.structures","DCPolyomino",562),fIt(1268,1,NZt,oe),kGt.Mb=function(t){return RD(t)},bY(KJt,"ElkGraphComponentsProcessor/lambda$0$Type",1268),fIt(1269,1,{},se),kGt.Kb=function(t){return _K(),CEt(jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$1$Type",1269),fIt(1270,1,NZt,ce),kGt.Mb=function(t){return zH(jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$2$Type",1270),fIt(1271,1,{},le),kGt.Kb=function(t){return _K(),AEt(jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$3$Type",1271),fIt(1272,1,NZt,ue),kGt.Mb=function(t){return HH(jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$4$Type",1272),fIt(1273,1,NZt,Dg),kGt.Mb=function(t){return _J(this.a,jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$5$Type",1273),fIt(1274,1,{},Ig),kGt.Kb=function(t){return BY(this.a,jz(t,79))},bY(KJt,"ElkGraphComponentsProcessor/lambda$6$Type",1274),fIt(1241,1,{},s3),kGt.a=0,bY(KJt,"ElkGraphTransformer",1241),fIt(1242,1,{},de),kGt.Od=function(t,e){tDt(this,jz(t,160),jz(e,266))},bY(KJt,"ElkGraphTransformer/OffsetApplier",1242),fIt(1243,1,dZt,Lg),kGt.td=function(t){RO(this,jz(t,8))},bY(KJt,"ElkGraphTransformer/OffsetApplier/OffSetToChainApplier",1243),fIt(753,1,{},he),bY(eQt,nQt,753),fIt(1232,1,kXt,fe),kGt.ue=function(t,e){return SAt(jz(t,231),jz(e,231))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(eQt,iQt,1232),fIt(740,209,OJt,Hy),kGt.Ze=function(t,e){mOt(this,t,e)},bY(eQt,"ForceLayoutProvider",740),fIt(357,134,{3:1,357:1,94:1,134:1}),bY(aQt,"FParticle",357),fIt(559,357,{3:1,559:1,357:1,94:1,134:1},cY),kGt.Ib=function(){var t;return this.a?(t=x9(this.a.a,this,0))>=0?"b"+t+"["+r6(this.a)+"]":"b["+r6(this.a)+"]":"b_"+EM(this)},bY(aQt,"FBendpoint",559),fIt(282,134,{3:1,282:1,94:1,134:1},SP),kGt.Ib=function(){return r6(this)},bY(aQt,"FEdge",282),fIt(231,134,{3:1,231:1,94:1,134:1},y7);var Cre,Sre,Tre,Are,Dre,Ire,Lre,Ore,Mre=bY(aQt,"FGraph",231);fIt(447,357,{3:1,447:1,357:1,94:1,134:1},m3),kGt.Ib=function(){return null==this.b||0==this.b.length?"l["+r6(this.a)+"]":"l_"+this.b},bY(aQt,"FLabel",447),fIt(144,357,{3:1,144:1,357:1,94:1,134:1},zY),kGt.Ib=function(){return p0(this)},kGt.b=0,bY(aQt,"FNode",144),fIt(2003,1,{}),kGt.bf=function(t){c$t(this,t)},kGt.cf=function(){Hvt(this)},kGt.d=0,bY(oQt,"AbstractForceModel",2003),fIt(631,2003,{631:1},Lot),kGt.af=function(t,e){var n,a,r,o;return tAt(this.f,t,e),r=qP(jL(e.d),t.d),o=i.Math.sqrt(r.a*r.a+r.b*r.b),a=i.Math.max(0,o-uG(t.e)/2-uG(e.e)/2),vO(r,((n=Hct(this.e,t,e))>0?-PW(a,this.c)*n:ON(a,this.b)*jz(yEt(t,(uPt(),Xre)),19).a)/o),r},kGt.bf=function(t){c$t(this,t),this.a=jz(yEt(t,(uPt(),zre)),19).a,this.c=Hw(_B(yEt(t,ioe))),this.b=Hw(_B(yEt(t,Qre)))},kGt.df=function(t){return t<this.a},kGt.a=0,kGt.b=0,kGt.c=0,bY(oQt,"EadesModel",631),fIt(632,2003,{632:1},lH),kGt.af=function(t,e){var n,a,r,o,s;return tAt(this.f,t,e),r=qP(jL(e.d),t.d),s=i.Math.sqrt(r.a*r.a+r.b*r.b),o=LN(a=i.Math.max(0,s-uG(t.e)/2-uG(e.e)/2),this.a)*jz(yEt(t,(uPt(),Xre)),19).a,(n=Hct(this.e,t,e))>0&&(o-=kw(a,this.a)*n),vO(r,o*this.b/s),r},kGt.bf=function(t){var e,n,a,r,o,s,c;for(c$t(this,t),this.b=Hw(_B(yEt(t,(uPt(),aoe)))),this.c=this.b/jz(yEt(t,zre),19).a,a=t.e.c.length,o=0,r=0,c=new Wf(t.e);c.a<c.c.c.length;)o+=(s=jz(J1(c),144)).e.a,r+=s.e.b;e=o*r,n=Hw(_B(yEt(t,ioe)))*uJt,this.a=i.Math.sqrt(e/(2*a))*n},kGt.cf=function(){Hvt(this),this.b-=this.c},kGt.df=function(t){return this.b>0},kGt.a=0,kGt.b=0,kGt.c=0,bY(oQt,"FruchtermanReingoldModel",632),fIt(849,1,ZXt,Uu),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,sQt),""),"Force Model"),"Determines the model for force calculation."),Tre),(CSt(),pEe)),Soe),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,cQt),""),"Iterations"),"The number of iterations on the force model."),nht(300)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,lQt),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),nht(0)),mEe),Dee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,uQt),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),dQt),gEe),Cee),Qht(lEe)))),a2(t,uQt,sQt,Ore),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,hQt),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),gEe),Cee),Qht(lEe)))),a2(t,hQt,sQt,Dre),bWt((new Vu,t))},bY(fQt,"ForceMetaDataProvider",849),fIt(424,22,{3:1,35:1,22:1,424:1},qC);var Nre,Bre,Pre,Fre,jre,$re,zre,Hre,Ure,Vre,qre,Wre,Yre,Gre,Zre,Kre,Xre,Jre,Qre,toe,eoe,noe,ioe,aoe,roe,ooe,soe,coe,loe,uoe,doe,hoe,foe,goe,poe,boe,moe,yoe,voe,woe,xoe,Roe,_oe,koe,Eoe,Coe,Soe=$nt(fQt,"ForceModelStrategy",424,Vte,aJ,xj);fIt(988,1,ZXt,Vu),kGt.Qe=function(t){bWt(t)},bY(fQt,"ForceOptions",988),fIt(989,1,{},ge),kGt.$e=function(){return new Hy},kGt._e=function(t){},bY(fQt,"ForceOptions/ForceFactory",989),fIt(850,1,ZXt,qu),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,OQt),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(cM(),!1)),(CSt(),fEe)),wee),Qht((imt(),cEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,MQt),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),gEe),Cee),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[oEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,NQt),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),doe),pEe),Noe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,BQt),""),"Stress Epsilon"),"Termination criterion for the iterative process."),dQt),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,PQt),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),nht(NGt)),mEe),Dee),Qht(lEe)))),qVt((new Wu,t))},bY(fQt,"StressMetaDataProvider",850),fIt(992,1,ZXt,Wu),kGt.Qe=function(t){qVt(t)},bY(fQt,"StressOptions",992),fIt(993,1,{},pe),kGt.$e=function(){return new TP},kGt._e=function(t){},bY(fQt,"StressOptions/StressFactory",993),fIt(1128,209,OJt,TP),kGt.Ze=function(t,e){var n,i,a,r;for(Akt(e,jQt,1),zw(RB(JIt(t,(ixt(),voe))))?zw(RB(JIt(t,Eoe)))||wJ(new Rg((HE(),new Mw(t)))):mOt(new Hy,t,yrt(e,1)),i=uct(t),r=(n=z$t(this.a,i)).Kc();r.Ob();)!((a=jz(r.Pb(),231)).e.c.length<=1)&&(zHt(this.b,a),nLt(this.b),Aet(a.d,new be));EWt(i=UWt(n)),zCt(e)},bY(zQt,"StressLayoutProvider",1128),fIt(1129,1,dZt,be),kGt.td=function(t){Fzt(jz(t,447))},bY(zQt,"StressLayoutProvider/lambda$0$Type",1129),fIt(990,1,{},Ry),kGt.c=0,kGt.e=0,kGt.g=0,bY(zQt,"StressMajorization",990),fIt(379,22,{3:1,35:1,22:1,379:1},WC);var Toe,Aoe,Doe,Ioe,Loe,Ooe,Moe,Noe=$nt(zQt,"StressMajorization/Dimension",379,Vte,w1,Rj);fIt(991,1,kXt,Og),kGt.ue=function(t,e){return kF(this.a,jz(t,144),jz(e,144))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(zQt,"StressMajorization/lambda$0$Type",991),fIt(1229,1,{},M0),bY(UQt,"ElkLayered",1229),fIt(1230,1,dZt,me),kGt.td=function(t){BAt(jz(t,37))},bY(UQt,"ElkLayered/lambda$0$Type",1230),fIt(1231,1,dZt,Mg),kGt.td=function(t){EF(this.a,jz(t,37))},bY(UQt,"ElkLayered/lambda$1$Type",1231),fIt(1263,1,{},DL),bY(UQt,"GraphConfigurator",1263),fIt(759,1,dZt,Ng),kGt.td=function(t){GEt(this.a,jz(t,10))},bY(UQt,"GraphConfigurator/lambda$0$Type",759),fIt(760,1,{},ye),kGt.Kb=function(t){return tRt(),new NU(null,new h1(jz(t,29).a,16))},bY(UQt,"GraphConfigurator/lambda$1$Type",760),fIt(761,1,dZt,Bg),kGt.td=function(t){GEt(this.a,jz(t,10))},bY(UQt,"GraphConfigurator/lambda$2$Type",761),fIt(1127,209,OJt,Vy),kGt.Ze=function(t,e){var n;n=Ezt(new Qy,t),HA(JIt(t,(zYt(),sbe)))===HA((odt(),bTe))?igt(this.a,n,e):fDt(this.a,n,e),pWt(new Gu,n)},bY(UQt,"LayeredLayoutProvider",1127),fIt(356,22,{3:1,35:1,22:1,356:1},YC);var Boe,Poe,Foe,joe,$oe,zoe,Hoe,Uoe,Voe=$nt(UQt,"LayeredPhases",356,Vte,s6,_j);fIt(1651,1,{},mit),kGt.i=0,bY(VQt,"ComponentsToCGraphTransformer",1651),fIt(1652,1,{},ve),kGt.ef=function(t,e){return i.Math.min(null!=t.a?Hw(t.a):t.c.i,null!=e.a?Hw(e.a):e.c.i)},kGt.ff=function(t,e){return i.Math.min(null!=t.a?Hw(t.a):t.c.i,null!=e.a?Hw(e.a):e.c.i)},bY(VQt,"ComponentsToCGraphTransformer/1",1652),fIt(81,1,{81:1}),kGt.i=0,kGt.k=!0,kGt.o=PKt;var qoe,Woe,Yoe=bY(qQt,"CNode",81);fIt(460,81,{460:1,81:1},LM,Ebt),kGt.Ib=function(){return""},bY(VQt,"ComponentsToCGraphTransformer/CRectNode",460),fIt(1623,1,{},we),bY(VQt,"OneDimensionalComponentsCompaction",1623),fIt(1624,1,{},xe),kGt.Kb=function(t){return OQ(jz(t,46))},kGt.Fb=function(t){return this===t},bY(VQt,"OneDimensionalComponentsCompaction/lambda$0$Type",1624),fIt(1625,1,{},Re),kGt.Kb=function(t){return Rgt(jz(t,46))},kGt.Fb=function(t){return this===t},bY(VQt,"OneDimensionalComponentsCompaction/lambda$1$Type",1625),fIt(1654,1,{},jY),bY(qQt,"CGraph",1654),fIt(189,1,{189:1},Cbt),kGt.b=0,kGt.c=0,kGt.e=0,kGt.g=!0,kGt.i=PKt,bY(qQt,"CGroup",189),fIt(1653,1,{},Ce),kGt.ef=function(t,e){return i.Math.max(null!=t.a?Hw(t.a):t.c.i,null!=e.a?Hw(e.a):e.c.i)},kGt.ff=function(t,e){return i.Math.max(null!=t.a?Hw(t.a):t.c.i,null!=e.a?Hw(e.a):e.c.i)},bY(qQt,AXt,1653),fIt(1655,1,{},cDt),kGt.d=!1;var Goe,Zoe=bY(qQt,MXt,1655);fIt(1656,1,{},Se),kGt.Kb=function(t){return vE(),cM(),0!=jz(jz(t,46).a,81).d.e},kGt.Fb=function(t){return this===t},bY(qQt,NXt,1656),fIt(823,1,{},kU),kGt.a=!1,kGt.b=!1,kGt.c=!1,kGt.d=!1,bY(qQt,BXt,823),fIt(1825,1,{},MV),bY(WQt,PXt,1825);var Koe=dU(YQt,CXt);fIt(1826,1,{369:1},uX),kGt.Ke=function(t){UNt(this,jz(t,466))},bY(WQt,FXt,1826),fIt(1827,1,kXt,Te),kGt.ue=function(t,e){return oK(jz(t,81),jz(e,81))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(WQt,jXt,1827),fIt(466,1,{466:1},lS),kGt.a=!1,bY(WQt,$Xt,466),fIt(1828,1,kXt,Ae),kGt.ue=function(t,e){return Qxt(jz(t,466),jz(e,466))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(WQt,zXt,1828),fIt(140,1,{140:1},fS,mH),kGt.Fb=function(t){var e;return null!=t&&Xoe==tlt(t)&&(e=jz(t,140),iZ(this.c,e.c)&&iZ(this.d,e.d))},kGt.Hb=function(){return uut(Cst(Hx(Dte,1),zGt,1,5,[this.c,this.d]))},kGt.Ib=function(){return"("+this.c+jGt+this.d+(this.a?"cx":"")+this.b+")"},kGt.a=!0,kGt.c=0,kGt.d=0;var Xoe=bY(YQt,"Point",140);fIt(405,22,{3:1,35:1,22:1,405:1},GC);var Joe,Qoe,tse,ese,nse,ise,ase,rse,ose,sse,cse,lse,use=$nt(YQt,"Point/Quadrant",405,Vte,Q2,kj);fIt(1642,1,{},Yy),kGt.b=null,kGt.c=null,kGt.d=null,kGt.e=null,kGt.f=null,bY(YQt,"RectilinearConvexHull",1642),fIt(574,1,{369:1},_mt),kGt.Ke=function(t){P8(this,jz(t,140))},kGt.b=0,bY(YQt,"RectilinearConvexHull/MaximalElementsEventHandler",574),fIt(1644,1,kXt,ke),kGt.ue=function(t,e){return MZ(_B(t),_B(e))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1644),fIt(1643,1,{369:1},uet),kGt.Ke=function(t){CMt(this,jz(t,140))},kGt.a=0,kGt.b=null,kGt.c=null,kGt.d=null,kGt.e=null,bY(YQt,"RectilinearConvexHull/RectangleEventHandler",1643),fIt(1645,1,kXt,Ee),kGt.ue=function(t,e){return r0(jz(t,140),jz(e,140))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/lambda$0$Type",1645),fIt(1646,1,kXt,_e),kGt.ue=function(t,e){return o0(jz(t,140),jz(e,140))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/lambda$1$Type",1646),fIt(1647,1,kXt,De),kGt.ue=function(t,e){return c0(jz(t,140),jz(e,140))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/lambda$2$Type",1647),fIt(1648,1,kXt,Ie),kGt.ue=function(t,e){return s0(jz(t,140),jz(e,140))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/lambda$3$Type",1648),fIt(1649,1,kXt,Le),kGt.ue=function(t,e){return xEt(jz(t,140),jz(e,140))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(YQt,"RectilinearConvexHull/lambda$4$Type",1649),fIt(1650,1,{},TQ),bY(YQt,"Scanline",1650),fIt(2005,1,{}),bY(GQt,"AbstractGraphPlacer",2005),fIt(325,1,{325:1},qN),kGt.mf=function(t){return!!this.nf(t)&&(XAt(this.b,jz(yEt(t,(lGt(),qde)),21),t),!0)},kGt.nf=function(t){var e,n,i;for(e=jz(yEt(t,(lGt(),qde)),21),i=jz(c7(lse,e),21).Kc();i.Ob();)if(n=jz(i.Pb(),21),!jz(c7(this.b,n),15).dc())return!1;return!0},bY(GQt,"ComponentGroup",325),fIt(765,2005,{},Gy),kGt.of=function(t){var e;for(e=new Wf(this.a);e.a<e.c.c.length;)if(jz(J1(e),325).mf(t))return;Wz(this.a,new qN(t))},kGt.lf=function(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g;if(this.a.c=O5(Dte,zGt,1,0,5,1),e.a.c=O5(Dte,zGt,1,0,5,1),t.dc())return e.f.a=0,void(e.f.b=0);for(Hot(e,o=jz(t.Xb(0),37)),a=t.Kc();a.Ob();)i=jz(a.Pb(),37),this.of(i);for(g=new HR,r=Hw(_B(yEt(o,(zYt(),mme)))),l=new Wf(this.a);l.a<l.c.c.length;)u=_Yt(s=jz(J1(l),325),r),h8(RY(s.b),g.a,g.b),g.a+=u.a,g.b+=u.b;if(e.f.a=g.a-r,e.f.b=g.b-r,zw(RB(yEt(o,_pe)))&&HA(yEt(o,Xpe))===HA((kft(),ZSe))){for(f=t.Kc();f.Ob();)JPt(d=jz(f.Pb(),37),d.c.a,d.c.b);for(PYt(n=new Oe,t,r),h=t.Kc();h.Ob();)VP(vD((d=jz(h.Pb(),37)).c),n.e);VP(vD(e.f),n.a)}for(c=new Wf(this.a);c.a<c.c.c.length;)f8(e,RY((s=jz(J1(c),325)).b))},bY(GQt,"ComponentGroupGraphPlacer",765),fIt(1293,765,{},cv),kGt.of=function(t){bdt(this,t)},kGt.lf=function(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y;if(this.a.c=O5(Dte,zGt,1,0,5,1),e.a.c=O5(Dte,zGt,1,0,5,1),t.dc())return e.f.a=0,void(e.f.b=0);for(Hot(e,o=jz(t.Xb(0),37)),a=t.Kc();a.Ob();)bdt(this,jz(a.Pb(),37));for(y=new HR,m=new HR,p=new HR,g=new HR,r=Hw(_B(yEt(o,(zYt(),mme)))),l=new Wf(this.a);l.a<l.c.c.length;){if(s=jz(J1(l),325),fI(jz(yEt(e,(cGt(),dCe)),103))){for(p.a=y.a,b=new uw(_Y(vY(s.b).a).a.kc());b.b.Ob();)if(jz(iC(b.b.Pb()),21).Hc((wWt(),cAe))){p.a=m.a;break}}else if(gI(jz(yEt(e,dCe),103)))for(p.b=y.b,b=new uw(_Y(vY(s.b).a).a.kc());b.b.Ob();)if(jz(iC(b.b.Pb()),21).Hc((wWt(),SAe))){p.b=m.b;break}if(u=_Yt(jz(s,570),r),h8(RY(s.b),p.a,p.b),fI(jz(yEt(e,dCe),103))){for(m.a=p.a+u.a,g.a=i.Math.max(g.a,m.a),b=new uw(_Y(vY(s.b).a).a.kc());b.b.Ob();)if(jz(iC(b.b.Pb()),21).Hc((wWt(),EAe))){y.a=p.a+u.a;break}m.b=p.b+u.b,p.b=m.b,g.b=i.Math.max(g.b,p.b)}else if(gI(jz(yEt(e,dCe),103))){for(m.b=p.b+u.b,g.b=i.Math.max(g.b,m.b),b=new uw(_Y(vY(s.b).a).a.kc());b.b.Ob();)if(jz(iC(b.b.Pb()),21).Hc((wWt(),sAe))){y.b=p.b+u.b;break}m.a=p.a+u.a,p.a=m.a,g.a=i.Math.max(g.a,p.a)}}if(e.f.a=g.a-r,e.f.b=g.b-r,zw(RB(yEt(o,_pe)))&&HA(yEt(o,Xpe))===HA((kft(),ZSe))){for(f=t.Kc();f.Ob();)JPt(d=jz(f.Pb(),37),d.c.a,d.c.b);for(PYt(n=new Oe,t,r),h=t.Kc();h.Ob();)VP(vD((d=jz(h.Pb(),37)).c),n.e);VP(vD(e.f),n.a)}for(c=new Wf(this.a);c.a<c.c.c.length;)f8(e,RY((s=jz(J1(c),325)).b))},bY(GQt,"ComponentGroupModelOrderGraphPlacer",1293),fIt(423,22,{3:1,35:1,22:1,423:1},ZC);var dse,hse,fse,gse,pse,bse,mse=$nt(GQt,"ComponentOrderingStrategy",423,Vte,v1,Ej);fIt(650,1,{},Oe),bY(GQt,"ComponentsCompactor",650),fIt(1468,12,ZKt,b6),kGt.Fc=function(t){return KRt(this,jz(t,140))},bY(GQt,"ComponentsCompactor/Hullpoints",1468),fIt(1465,1,{841:1},lyt),kGt.a=!1,bY(GQt,"ComponentsCompactor/InternalComponent",1465),fIt(1464,1,bZt,Zy),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new Wf(this.a)},bY(GQt,"ComponentsCompactor/InternalConnectedComponents",1464),fIt(1467,1,{594:1},gDt),kGt.hf=function(){return null},kGt.jf=function(){return this.a},kGt.gf=function(){return omt(this.d)},kGt.kf=function(){return this.b},bY(GQt,"ComponentsCompactor/InternalExternalExtension",1467),fIt(1466,1,{594:1},Jy),kGt.jf=function(){return this.a},kGt.gf=function(){return omt(this.d)},kGt.hf=function(){return this.c},kGt.kf=function(){return this.b},bY(GQt,"ComponentsCompactor/InternalUnionExternalExtension",1466),fIt(1470,1,{},ZNt),bY(GQt,"ComponentsCompactor/OuterSegments",1470),fIt(1469,1,{},Ky),bY(GQt,"ComponentsCompactor/Segments",1469),fIt(1264,1,{},dX),bY(GQt,nQt,1264),fIt(1265,1,kXt,Me),kGt.ue=function(t,e){return d0(jz(t,37),jz(e,37))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(GQt,"ComponentsProcessor/lambda$0$Type",1265),fIt(570,325,{325:1,570:1},p6),kGt.mf=function(t){return glt(this,t)},kGt.nf=function(t){return hMt(this,t)},bY(GQt,"ModelOrderComponentGroup",570),fIt(1291,2005,{},Ne),kGt.lf=function(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R;if(1!=t.gc()){if(t.dc())return e.a.c=O5(Dte,zGt,1,0,5,1),e.f.a=0,void(e.f.b=0);if(HA(yEt(e,(zYt(),Cpe)))===HA(($dt(),fse))){for(l=t.Kc();l.Ob();){for(m=0,p=new Wf((s=jz(l.Pb(),37)).a);p.a<p.c.c.length;)g=jz(J1(p),10),m+=jz(yEt(g,cme),19).a;s.p=m}kK(),t.ad(new Be)}for(o=jz(t.Xb(0),37),e.a.c=O5(Dte,zGt,1,0,5,1),Hot(e,o),f=0,w=0,u=t.Kc();u.Ob();)y=(s=jz(u.Pb(),37)).f,f=i.Math.max(f,y.a),w+=y.a*y.b;for(f=i.Math.max(f,i.Math.sqrt(w)*Hw(_B(yEt(e,xpe)))),x=0,R=0,h=0,n=r=Hw(_B(yEt(e,mme))),c=t.Kc();c.Ob();)x+(y=(s=jz(c.Pb(),37)).f).a>f&&(x=0,R+=h+r,h=0),JPt(s,x+(b=s.c).a,R+b.b),vD(b),n=i.Math.max(n,x+y.a),h=i.Math.max(h,y.b),x+=y.a+r;if(e.f.a=n,e.f.b=R+h,zw(RB(yEt(o,_pe)))){for(PYt(a=new Oe,t,r),d=t.Kc();d.Ob();)VP(vD(jz(d.Pb(),37).c),a.e);VP(vD(e.f),a.a)}f8(e,t)}else(v=jz(t.Xb(0),37))!=e&&(e.a.c=O5(Dte,zGt,1,0,5,1),IFt(e,v,0,0),Hot(e,v),vK(e.d,v.d),e.f.a=v.f.a,e.f.b=v.f.b)},bY(GQt,"SimpleRowGraphPlacer",1291),fIt(1292,1,kXt,Be),kGt.ue=function(t,e){return Vot(jz(t,37),jz(e,37))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(GQt,"SimpleRowGraphPlacer/1",1292),fIt(1262,1,HXt,Pe),kGt.Lb=function(t){var e;return!!(e=jz(yEt(jz(t,243).b,(zYt(),bbe)),74))&&0!=e.b},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){var e;return!!(e=jz(yEt(jz(t,243).b,(zYt(),bbe)),74))&&0!=e.b},bY(JQt,"CompoundGraphPostprocessor/1",1262),fIt(1261,1,QQt,tv),kGt.pf=function(t,e){yyt(this,jz(t,37),e)},bY(JQt,"CompoundGraphPreprocessor",1261),fIt(441,1,{441:1},Vdt),kGt.c=!1,bY(JQt,"CompoundGraphPreprocessor/ExternalPort",441),fIt(243,1,{243:1},Ij),kGt.Ib=function(){return fN(this.c)+":"+AAt(this.b)},bY(JQt,"CrossHierarchyEdge",243),fIt(763,1,kXt,Pg),kGt.ue=function(t,e){return Gwt(this,jz(t,243),jz(e,243))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(JQt,"CrossHierarchyEdgeComparator",763),fIt(299,134,{3:1,299:1,94:1,134:1}),kGt.p=0,bY(t1t,"LGraphElement",299),fIt(17,299,{3:1,17:1,299:1,94:1,134:1},hX),kGt.Ib=function(){return AAt(this)};var yse=bY(t1t,"LEdge",17);fIt(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},yit),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new Wf(this.b)},kGt.Ib=function(){return 0==this.b.c.length?"G-unlayered"+LEt(this.a):0==this.a.c.length?"G-layered"+LEt(this.b):"G[layerless"+LEt(this.a)+", layers"+LEt(this.b)+"]"};var vse,wse=bY(t1t,"LGraph",37);fIt(657,1,{}),kGt.qf=function(){return this.e.n},kGt.We=function(t){return yEt(this.e,t)},kGt.rf=function(){return this.e.o},kGt.sf=function(){return this.e.p},kGt.Xe=function(t){return IN(this.e,t)},kGt.tf=function(t){this.e.n.a=t.a,this.e.n.b=t.b},kGt.uf=function(t){this.e.o.a=t.a,this.e.o.b=t.b},kGt.vf=function(t){this.e.p=t},bY(t1t,"LGraphAdapters/AbstractLShapeAdapter",657),fIt(577,1,{839:1},Fg),kGt.wf=function(){var t,e;if(!this.b)for(this.b=sN(this.a.b.c.length),e=new Wf(this.a.b);e.a<e.c.c.length;)t=jz(J1(e),70),Wz(this.b,new jg(t));return this.b},kGt.b=null,bY(t1t,"LGraphAdapters/LEdgeAdapter",577),fIt(656,1,{},$Z),kGt.xf=function(){var t,e,n,i,a;if(!this.b)for(this.b=new Lm,n=new Wf(this.a.b);n.a<n.c.c.length;)for(a=new Wf(jz(J1(n),29).a);a.a<a.c.c.length;)if(i=jz(J1(a),10),this.c.Mb(i)&&(Wz(this.b,new Pj(this,i,this.e)),this.d)){if(IN(i,(lGt(),Bhe)))for(e=jz(yEt(i,Bhe),15).Kc();e.Ob();)t=jz(e.Pb(),10),Wz(this.b,new Pj(this,t,!1));if(IN(i,Mde))for(e=jz(yEt(i,Mde),15).Kc();e.Ob();)t=jz(e.Pb(),10),Wz(this.b,new Pj(this,t,!1))}return this.b},kGt.qf=function(){throw $m(new Qw(n1t))},kGt.We=function(t){return yEt(this.a,t)},kGt.rf=function(){return this.a.f},kGt.sf=function(){return this.a.p},kGt.Xe=function(t){return IN(this.a,t)},kGt.tf=function(t){throw $m(new Qw(n1t))},kGt.uf=function(t){this.a.f.a=t.a,this.a.f.b=t.b},kGt.vf=function(t){this.a.p=t},kGt.b=null,kGt.d=!1,kGt.e=!1,bY(t1t,"LGraphAdapters/LGraphAdapter",656),fIt(576,657,{181:1},jg),bY(t1t,"LGraphAdapters/LLabelAdapter",576),fIt(575,657,{680:1},Pj),kGt.yf=function(){return this.b},kGt.zf=function(){return kK(),kK(),cne},kGt.wf=function(){var t,e;if(!this.a)for(this.a=sN(jz(this.e,10).b.c.length),e=new Wf(jz(this.e,10).b);e.a<e.c.c.length;)t=jz(J1(e),70),Wz(this.a,new jg(t));return this.a},kGt.Af=function(){var t;return new $P((t=jz(this.e,10).d).d,t.c,t.a,t.b)},kGt.Bf=function(){return kK(),kK(),cne},kGt.Cf=function(){var t,e;if(!this.c)for(this.c=sN(jz(this.e,10).j.c.length),e=new Wf(jz(this.e,10).j);e.a<e.c.c.length;)t=jz(J1(e),11),Wz(this.c,new gS(t,this.d));return this.c},kGt.Df=function(){return zw(RB(yEt(jz(this.e,10),(lGt(),Pde))))},kGt.Ef=function(t){jz(this.e,10).d.b=t.b,jz(this.e,10).d.d=t.d,jz(this.e,10).d.c=t.c,jz(this.e,10).d.a=t.a},kGt.Ff=function(t){jz(this.e,10).f.b=t.b,jz(this.e,10).f.d=t.d,jz(this.e,10).f.c=t.c,jz(this.e,10).f.a=t.a},kGt.Gf=function(){Oet(this,(gE(),vse))},kGt.a=null,kGt.b=null,kGt.c=null,kGt.d=!1,bY(t1t,"LGraphAdapters/LNodeAdapter",575),fIt(1722,657,{838:1},gS),kGt.zf=function(){var t,e,n,i;if(this.d&&jz(this.e,11).i.k==(oCt(),Tse))return kK(),kK(),cne;if(!this.a){for(this.a=new Lm,n=new Wf(jz(this.e,11).e);n.a<n.c.c.length;)t=jz(J1(n),17),Wz(this.a,new Fg(t));if(this.d&&(i=jz(yEt(jz(this.e,11),(lGt(),xhe)),10)))for(e=new oq(XO(uft(i).a.Kc(),new u));gIt(e);)t=jz(V6(e),17),Wz(this.a,new Fg(t))}return this.a},kGt.wf=function(){var t,e;if(!this.b)for(this.b=sN(jz(this.e,11).f.c.length),e=new Wf(jz(this.e,11).f);e.a<e.c.c.length;)t=jz(J1(e),70),Wz(this.b,new jg(t));return this.b},kGt.Bf=function(){var t,e,n,i;if(this.d&&jz(this.e,11).i.k==(oCt(),Tse))return kK(),kK(),cne;if(!this.c){for(this.c=new Lm,n=new Wf(jz(this.e,11).g);n.a<n.c.c.length;)t=jz(J1(n),17),Wz(this.c,new Fg(t));if(this.d&&(i=jz(yEt(jz(this.e,11),(lGt(),xhe)),10)))for(e=new oq(XO(dft(i).a.Kc(),new u));gIt(e);)t=jz(V6(e),17),Wz(this.c,new Fg(t))}return this.c},kGt.Hf=function(){return jz(this.e,11).j},kGt.If=function(){return zw(RB(yEt(jz(this.e,11),(lGt(),the))))},kGt.a=null,kGt.b=null,kGt.c=null,kGt.d=!1,bY(t1t,"LGraphAdapters/LPortAdapter",1722),fIt(1723,1,kXt,Fe),kGt.ue=function(t,e){return YBt(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(t1t,"LGraphAdapters/PortComparator",1723),fIt(804,1,NZt,je),kGt.Mb=function(t){return jz(t,10),gE(),!0},bY(t1t,"LGraphAdapters/lambda$0$Type",804),fIt(392,299,{3:1,299:1,392:1,94:1,134:1}),bY(t1t,"LShape",392),fIt(70,392,{3:1,299:1,70:1,392:1,94:1,134:1},zR,TL),kGt.Ib=function(){var t;return null==(t=ZH(this))?"label":"l_"+t},bY(t1t,"LLabel",70),fIt(207,1,{3:1,4:1,207:1,414:1}),kGt.Fb=function(t){var e;return!!iO(t,207)&&(e=jz(t,207),this.d==e.d&&this.a==e.a&&this.b==e.b&&this.c==e.c)},kGt.Hb=function(){var t,e;return t=YD(this.b)<<16,t|=YD(this.a)&ZZt,e=YD(this.c)<<16,t^(e|=YD(this.d)&ZZt)},kGt.Jf=function(t){var e,n,i,a,r,o,s,c,l;for(a=0;a<t.length&&Nut((d1(a,t.length),t.charCodeAt(a)),s1t);)++a;for(e=t.length;e>0&&Nut((d1(e-1,t.length),t.charCodeAt(e-1)),c1t);)--e;if(a<e){c=wFt(t.substr(a,e-a),",|;");try{for(o=0,s=(r=c).length;o<s;++o){if(2!=(i=wFt(r[o],"=")).length)throw $m(new Pw("Expecting a list of key-value pairs."));n=BEt(i[0]),l=hCt(BEt(i[1])),mF(n,"top")?this.d=l:mF(n,"left")?this.b=l:mF(n,"bottom")?this.a=l:mF(n,"right")&&(this.c=l)}}catch(u){throw iO(u=dst(u),127)?$m(new Pw(l1t+u)):$m(u)}}},kGt.Ib=function(){return"[top="+this.d+",left="+this.b+",bottom="+this.a+",right="+this.c+"]"},kGt.a=0,kGt.b=0,kGt.c=0,kGt.d=0,bY(u1t,"Spacing",207),fIt(142,207,d1t,uv,uI,$P,Aj);var xse=bY(u1t,"ElkMargin",142);fIt(651,142,d1t,lv),bY(t1t,"LMargin",651),fIt(10,392,{3:1,299:1,10:1,392:1,94:1,134:1},Iyt),kGt.Ib=function(){return Imt(this)},kGt.i=!1;var Rse=bY(t1t,"LNode",10);fIt(267,22,{3:1,35:1,22:1,267:1},KC);var _se,kse,Ese,Cse,Sse,Tse,Ase,Dse=$nt(t1t,"LNode/NodeType",267,Vte,r8,Sj);fIt(116,207,h1t,dv,WI,Tj);var Ise=bY(u1t,"ElkPadding",116);fIt(764,116,h1t,hv),bY(t1t,"LPadding",764),fIt(11,392,{3:1,299:1,11:1,392:1,94:1,134:1},SCt),kGt.Ib=function(){var t,e,n;return oD(((t=new Cx).a+="p_",t),bwt(this)),this.i&&oD(rD((t.a+="[",t),this.i),"]"),1==this.e.c.length&&0==this.g.c.length&&jz(OU(this.e,0),17).c!=this&&(e=jz(OU(this.e,0),17).c,oD((t.a+=" << ",t),bwt(e)),oD(rD((t.a+="[",t),e.i),"]")),0==this.e.c.length&&1==this.g.c.length&&jz(OU(this.g,0),17).d!=this&&(n=jz(OU(this.g,0),17).d,oD((t.a+=" >> ",t),bwt(n)),oD(rD((t.a+="[",t),n.i),"]")),t.a},kGt.c=!0,kGt.d=!1;var Lse,Ose,Mse,Nse,Bse,Pse,Fse,jse,$se=bY(t1t,"LPort",11);fIt(397,1,bZt,$g),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new zg(new Wf(this.a.e))},bY(t1t,"LPort/1",397),fIt(1290,1,ZGt,zg),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return jz(J1(this.a),17).c},kGt.Ob=function(){return yL(this.a)},kGt.Qb=function(){AW(this.a)},bY(t1t,"LPort/1/1",1290),fIt(359,1,bZt,Hg),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new Ug(new Wf(this.a.g))},bY(t1t,"LPort/2",359),fIt(762,1,ZGt,Ug),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return jz(J1(this.a),17).d},kGt.Ob=function(){return yL(this.a)},kGt.Qb=function(){AW(this.a)},bY(t1t,"LPort/2/1",762),fIt(1283,1,bZt,cS),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new m7(this)},bY(t1t,"LPort/CombineIter",1283),fIt(201,1,ZGt,m7),kGt.Nb=function(t){lW(this,t)},kGt.Qb=function(){r_()},kGt.Ob=function(){return UM(this)},kGt.Pb=function(){return yL(this.a)?J1(this.a):J1(this.b)},bY(t1t,"LPort/CombineIter/1",201),fIt(1285,1,HXt,$e),kGt.Lb=function(t){return Aq(t)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),0!=jz(t,11).e.c.length},bY(t1t,"LPort/lambda$0$Type",1285),fIt(1284,1,HXt,ze),kGt.Lb=function(t){return Dq(t)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),0!=jz(t,11).g.c.length},bY(t1t,"LPort/lambda$1$Type",1284),fIt(1286,1,HXt,He),kGt.Lb=function(t){return prt(),jz(t,11).j==(wWt(),cAe)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),jz(t,11).j==(wWt(),cAe)},bY(t1t,"LPort/lambda$2$Type",1286),fIt(1287,1,HXt,Ue),kGt.Lb=function(t){return prt(),jz(t,11).j==(wWt(),sAe)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),jz(t,11).j==(wWt(),sAe)},bY(t1t,"LPort/lambda$3$Type",1287),fIt(1288,1,HXt,Ve),kGt.Lb=function(t){return prt(),jz(t,11).j==(wWt(),EAe)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),jz(t,11).j==(wWt(),EAe)},bY(t1t,"LPort/lambda$4$Type",1288),fIt(1289,1,HXt,qe),kGt.Lb=function(t){return prt(),jz(t,11).j==(wWt(),SAe)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return prt(),jz(t,11).j==(wWt(),SAe)},bY(t1t,"LPort/lambda$5$Type",1289),fIt(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},$Y),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new Wf(this.a)},kGt.Ib=function(){return"L_"+x9(this.b.b,this,0)+LEt(this.a)},bY(t1t,"Layer",29),fIt(1342,1,{},Qy),bY(g1t,p1t,1342),fIt(1346,1,{},We),kGt.Kb=function(t){return Ckt(jz(t,82))},bY(g1t,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1346),fIt(1349,1,{},Ye),kGt.Kb=function(t){return Ckt(jz(t,82))},bY(g1t,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1349),fIt(1343,1,dZt,Vg),kGt.td=function(t){CDt(this.a,jz(t,118))},bY(g1t,b1t,1343),fIt(1344,1,dZt,qg),kGt.td=function(t){CDt(this.a,jz(t,118))},bY(g1t,m1t,1344),fIt(1345,1,{},Ge),kGt.Kb=function(t){return new NU(null,new h1(pZ(jz(t,79)),16))},bY(g1t,y1t,1345),fIt(1347,1,NZt,Wg),kGt.Mb=function(t){return PI(this.a,jz(t,33))},bY(g1t,v1t,1347),fIt(1348,1,{},Ze),kGt.Kb=function(t){return new NU(null,new h1(bZ(jz(t,79)),16))},bY(g1t,"ElkGraphImporter/lambda$5$Type",1348),fIt(1350,1,NZt,Yg),kGt.Mb=function(t){return FI(this.a,jz(t,33))},bY(g1t,"ElkGraphImporter/lambda$7$Type",1350),fIt(1351,1,NZt,Ke),kGt.Mb=function(t){return AK(jz(t,79))},bY(g1t,"ElkGraphImporter/lambda$8$Type",1351),fIt(1278,1,{},Gu),bY(g1t,"ElkGraphLayoutTransferrer",1278),fIt(1279,1,NZt,Gg),kGt.Mb=function(t){return KP(this.a,jz(t,17))},bY(g1t,"ElkGraphLayoutTransferrer/lambda$0$Type",1279),fIt(1280,1,dZt,Zg),kGt.td=function(t){mE(),Wz(this.a,jz(t,17))},bY(g1t,"ElkGraphLayoutTransferrer/lambda$1$Type",1280),fIt(1281,1,NZt,Kg),kGt.Mb=function(t){return VB(this.a,jz(t,17))},bY(g1t,"ElkGraphLayoutTransferrer/lambda$2$Type",1281),fIt(1282,1,dZt,Xg),kGt.td=function(t){mE(),Wz(this.a,jz(t,17))},bY(g1t,"ElkGraphLayoutTransferrer/lambda$3$Type",1282),fIt(1485,1,QQt,Xe),kGt.pf=function(t,e){Gat(jz(t,37),e)},bY(x1t,"CommentNodeMarginCalculator",1485),fIt(1486,1,{},Je),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"CommentNodeMarginCalculator/lambda$0$Type",1486),fIt(1487,1,dZt,Qe),kGt.td=function(t){tHt(jz(t,10))},bY(x1t,"CommentNodeMarginCalculator/lambda$1$Type",1487),fIt(1488,1,QQt,tn),kGt.pf=function(t,e){rBt(jz(t,37),e)},bY(x1t,"CommentPostprocessor",1488),fIt(1489,1,QQt,en),kGt.pf=function(t,e){oWt(jz(t,37),e)},bY(x1t,"CommentPreprocessor",1489),fIt(1490,1,QQt,nn),kGt.pf=function(t,e){xOt(jz(t,37),e)},bY(x1t,"ConstraintsPostprocessor",1490),fIt(1491,1,QQt,an),kGt.pf=function(t,e){aot(jz(t,37),e)},bY(x1t,"EdgeAndLayerConstraintEdgeReverser",1491),fIt(1492,1,QQt,rn),kGt.pf=function(t,e){Ugt(jz(t,37),e)},bY(x1t,"EndLabelPostprocessor",1492),fIt(1493,1,{},on),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"EndLabelPostprocessor/lambda$0$Type",1493),fIt(1494,1,NZt,sn),kGt.Mb=function(t){return _X(jz(t,10))},bY(x1t,"EndLabelPostprocessor/lambda$1$Type",1494),fIt(1495,1,dZt,cn),kGt.td=function(t){eRt(jz(t,10))},bY(x1t,"EndLabelPostprocessor/lambda$2$Type",1495),fIt(1496,1,QQt,ln),kGt.pf=function(t,e){JSt(jz(t,37),e)},bY(x1t,"EndLabelPreprocessor",1496),fIt(1497,1,{},un),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"EndLabelPreprocessor/lambda$0$Type",1497),fIt(1498,1,dZt,Mj),kGt.td=function(t){BE(this.a,this.b,this.c,jz(t,10))},kGt.a=0,kGt.b=0,kGt.c=!1,bY(x1t,"EndLabelPreprocessor/lambda$1$Type",1498),fIt(1499,1,NZt,dn),kGt.Mb=function(t){return HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),WSe))},bY(x1t,"EndLabelPreprocessor/lambda$2$Type",1499),fIt(1500,1,dZt,Jg),kGt.td=function(t){MH(this.a,jz(t,70))},bY(x1t,"EndLabelPreprocessor/lambda$3$Type",1500),fIt(1501,1,NZt,hn),kGt.Mb=function(t){return HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),qSe))},bY(x1t,"EndLabelPreprocessor/lambda$4$Type",1501),fIt(1502,1,dZt,Qg),kGt.td=function(t){MH(this.a,jz(t,70))},bY(x1t,"EndLabelPreprocessor/lambda$5$Type",1502),fIt(1551,1,QQt,Yu),kGt.pf=function(t,e){Sht(jz(t,37),e)},bY(x1t,"EndLabelSorter",1551),fIt(1552,1,kXt,fn),kGt.ue=function(t,e){return zbt(jz(t,456),jz(e,456))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"EndLabelSorter/1",1552),fIt(456,1,{456:1},RK),bY(x1t,"EndLabelSorter/LabelGroup",456),fIt(1553,1,{},gn),kGt.Kb=function(t){return xE(),new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"EndLabelSorter/lambda$0$Type",1553),fIt(1554,1,NZt,pn),kGt.Mb=function(t){return xE(),jz(t,10).k==(oCt(),Sse)},bY(x1t,"EndLabelSorter/lambda$1$Type",1554),fIt(1555,1,dZt,bn),kGt.td=function(t){sCt(jz(t,10))},bY(x1t,"EndLabelSorter/lambda$2$Type",1555),fIt(1556,1,NZt,mn),kGt.Mb=function(t){return xE(),HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),qSe))},bY(x1t,"EndLabelSorter/lambda$3$Type",1556),fIt(1557,1,NZt,yn),kGt.Mb=function(t){return xE(),HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),WSe))},bY(x1t,"EndLabelSorter/lambda$4$Type",1557),fIt(1503,1,QQt,vn),kGt.pf=function(t,e){THt(this,jz(t,37))},kGt.b=0,kGt.c=0,bY(x1t,"FinalSplineBendpointsCalculator",1503),fIt(1504,1,{},wn),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"FinalSplineBendpointsCalculator/lambda$0$Type",1504),fIt(1505,1,{},xn),kGt.Kb=function(t){return new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(x1t,"FinalSplineBendpointsCalculator/lambda$1$Type",1505),fIt(1506,1,NZt,Rn),kGt.Mb=function(t){return!d6(jz(t,17))},bY(x1t,"FinalSplineBendpointsCalculator/lambda$2$Type",1506),fIt(1507,1,NZt,_n),kGt.Mb=function(t){return IN(jz(t,17),(lGt(),Lhe))},bY(x1t,"FinalSplineBendpointsCalculator/lambda$3$Type",1507),fIt(1508,1,dZt,tp),kGt.td=function(t){VFt(this.a,jz(t,128))},bY(x1t,"FinalSplineBendpointsCalculator/lambda$4$Type",1508),fIt(1509,1,dZt,kn),kGt.td=function(t){XSt(jz(t,17).a)},bY(x1t,"FinalSplineBendpointsCalculator/lambda$5$Type",1509),fIt(792,1,QQt,ep),kGt.pf=function(t,e){GUt(this,jz(t,37),e)},bY(x1t,"GraphTransformer",792),fIt(511,22,{3:1,35:1,22:1,511:1},XC);var zse,Hse,Use,Vse,qse,Wse=$nt(x1t,"GraphTransformer/Mode",511,Vte,rJ,Q$);fIt(1510,1,QQt,En),kGt.pf=function(t,e){eNt(jz(t,37),e)},bY(x1t,"HierarchicalNodeResizingProcessor",1510),fIt(1511,1,QQt,Cn),kGt.pf=function(t,e){dat(jz(t,37),e)},bY(x1t,"HierarchicalPortConstraintProcessor",1511),fIt(1512,1,kXt,Sn),kGt.ue=function(t,e){return Tmt(jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"HierarchicalPortConstraintProcessor/NodeComparator",1512),fIt(1513,1,QQt,Tn),kGt.pf=function(t,e){xzt(jz(t,37),e)},bY(x1t,"HierarchicalPortDummySizeProcessor",1513),fIt(1514,1,QQt,An),kGt.pf=function(t,e){XBt(this,jz(t,37),e)},kGt.a=0,bY(x1t,"HierarchicalPortOrthogonalEdgeRouter",1514),fIt(1515,1,kXt,Dn),kGt.ue=function(t,e){return PM(jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"HierarchicalPortOrthogonalEdgeRouter/1",1515),fIt(1516,1,kXt,In),kGt.ue=function(t,e){return E8(jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"HierarchicalPortOrthogonalEdgeRouter/2",1516),fIt(1517,1,QQt,Ln),kGt.pf=function(t,e){REt(jz(t,37),e)},bY(x1t,"HierarchicalPortPositionProcessor",1517),fIt(1518,1,QQt,Zu),kGt.pf=function(t,e){iYt(this,jz(t,37))},kGt.a=0,kGt.c=0,bY(x1t,"HighDegreeNodeLayeringProcessor",1518),fIt(571,1,{571:1},On),kGt.b=-1,kGt.d=-1,bY(x1t,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",571),fIt(1519,1,{},Mn),kGt.Kb=function(t){return zj(),uft(jz(t,10))},kGt.Fb=function(t){return this===t},bY(x1t,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1519),fIt(1520,1,{},Nn),kGt.Kb=function(t){return zj(),dft(jz(t,10))},kGt.Fb=function(t){return this===t},bY(x1t,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1520),fIt(1526,1,QQt,Bn),kGt.pf=function(t,e){g$t(this,jz(t,37),e)},bY(x1t,"HyperedgeDummyMerger",1526),fIt(793,1,{},Nj),kGt.a=!1,kGt.b=!1,kGt.c=!1,bY(x1t,"HyperedgeDummyMerger/MergeState",793),fIt(1527,1,{},Pn),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"HyperedgeDummyMerger/lambda$0$Type",1527),fIt(1528,1,{},Fn),kGt.Kb=function(t){return new NU(null,new h1(jz(t,10).j,16))},bY(x1t,"HyperedgeDummyMerger/lambda$1$Type",1528),fIt(1529,1,dZt,jn),kGt.td=function(t){jz(t,11).p=-1},bY(x1t,"HyperedgeDummyMerger/lambda$2$Type",1529),fIt(1530,1,QQt,$n),kGt.pf=function(t,e){h$t(jz(t,37),e)},bY(x1t,"HypernodesProcessor",1530),fIt(1531,1,QQt,zn),kGt.pf=function(t,e){f$t(jz(t,37),e)},bY(x1t,"InLayerConstraintProcessor",1531),fIt(1532,1,QQt,Hn),kGt.pf=function(t,e){Lrt(jz(t,37),e)},bY(x1t,"InnermostNodeMarginCalculator",1532),fIt(1533,1,QQt,Un),kGt.pf=function(t,e){Gqt(this,jz(t,37))},kGt.a=PKt,kGt.b=PKt,kGt.c=BKt,kGt.d=BKt;var Yse=bY(x1t,"InteractiveExternalPortPositioner",1533);fIt(1534,1,{},Vn),kGt.Kb=function(t){return jz(t,17).d.i},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$0$Type",1534),fIt(1535,1,{},np),kGt.Kb=function(t){return zM(this.a,_B(t))},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$1$Type",1535),fIt(1536,1,{},qn),kGt.Kb=function(t){return jz(t,17).c.i},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$2$Type",1536),fIt(1537,1,{},ip),kGt.Kb=function(t){return HM(this.a,_B(t))},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$3$Type",1537),fIt(1538,1,{},ap),kGt.Kb=function(t){return WP(this.a,_B(t))},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$4$Type",1538),fIt(1539,1,{},rp),kGt.Kb=function(t){return YP(this.a,_B(t))},kGt.Fb=function(t){return this===t},bY(x1t,"InteractiveExternalPortPositioner/lambda$5$Type",1539),fIt(77,22,{3:1,35:1,22:1,77:1,234:1},JC),kGt.Kf=function(){switch(this.g){case 15:return new pr;case 22:return new br;case 47:return new vr;case 28:case 35:return new ni;case 32:return new Xe;case 42:return new tn;case 1:return new en;case 41:return new nn;case 56:return new ep((Eat(),Hse));case 0:return new ep((Eat(),zse));case 2:return new an;case 54:return new rn;case 33:return new ln;case 51:return new vn;case 55:return new En;case 13:return new Cn;case 38:return new Tn;case 44:return new An;case 40:return new Ln;case 9:return new Zu;case 49:return new oN;case 37:return new Bn;case 43:return new $n;case 27:return new zn;case 30:return new Hn;case 3:return new Un;case 18:return new Yn;case 29:return new Gn;case 5:return new Ku;case 50:return new Wn;case 34:return new Xu;case 36:return new ii;case 52:return new Yu;case 11:return new ri;case 7:return new Qu;case 39:return new oi;case 45:return new si;case 16:return new ci;case 10:return new li;case 48:return new di;case 21:return new hi;case 23:return new Lw((sit(),Dve));case 8:return new gi;case 12:return new bi;case 4:return new mi;case 19:return new id;case 17:return new Si;case 53:return new Ti;case 6:return new zi;case 25:return new av;case 46:return new Mi;case 31:return new OP;case 14:return new Zi;case 26:return new Cr;case 20:return new ta;case 24:return new Lw((sit(),Ive));default:throw $m(new Pw(k1t+(null!=this.f?this.f:""+this.g)))}};var Gse,Zse,Kse,Xse,Jse,Qse,tce,ece,nce,ice,ace,rce,oce,sce,cce,lce,uce,dce,hce,fce,gce,pce,bce,mce,yce,vce,wce,xce,Rce,_ce,kce,Ece,Cce,Sce,Tce,Ace,Dce,Ice,Lce,Oce,Mce,Nce,Bce,Pce,Fce,jce,$ce,zce,Hce,Uce,Vce,qce,Wce,Yce,Gce,Zce,Kce,Xce,Jce,Qce,tle,ele=$nt(x1t,E1t,77,Vte,RMt,J$);fIt(1540,1,QQt,Yn),kGt.pf=function(t,e){Xqt(jz(t,37),e)},bY(x1t,"InvertedPortProcessor",1540),fIt(1541,1,QQt,Gn),kGt.pf=function(t,e){LFt(jz(t,37),e)},bY(x1t,"LabelAndNodeSizeProcessor",1541),fIt(1542,1,NZt,Zn),kGt.Mb=function(t){return jz(t,10).k==(oCt(),Sse)},bY(x1t,"LabelAndNodeSizeProcessor/lambda$0$Type",1542),fIt(1543,1,NZt,Kn),kGt.Mb=function(t){return jz(t,10).k==(oCt(),kse)},bY(x1t,"LabelAndNodeSizeProcessor/lambda$1$Type",1543),fIt(1544,1,dZt,Bj),kGt.td=function(t){PE(this.b,this.a,this.c,jz(t,10))},kGt.a=!1,kGt.c=!1,bY(x1t,"LabelAndNodeSizeProcessor/lambda$2$Type",1544),fIt(1545,1,QQt,Ku),kGt.pf=function(t,e){uqt(jz(t,37),e)},bY(x1t,"LabelDummyInserter",1545),fIt(1546,1,HXt,Xn),kGt.Lb=function(t){return HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),VSe))},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return HA(yEt(jz(t,70),(zYt(),Zpe)))===HA((Bet(),VSe))},bY(x1t,"LabelDummyInserter/1",1546),fIt(1547,1,QQt,Wn),kGt.pf=function(t,e){CUt(jz(t,37),e)},bY(x1t,"LabelDummyRemover",1547),fIt(1548,1,NZt,Jn),kGt.Mb=function(t){return zw(RB(yEt(jz(t,70),(zYt(),Gpe))))},bY(x1t,"LabelDummyRemover/lambda$0$Type",1548),fIt(1359,1,QQt,Xu),kGt.pf=function(t,e){_Vt(this,jz(t,37),e)},kGt.a=null,bY(x1t,"LabelDummySwitcher",1359),fIt(286,1,{286:1},aFt),kGt.c=0,kGt.d=null,kGt.f=0,bY(x1t,"LabelDummySwitcher/LabelDummyInfo",286),fIt(1360,1,{},Qn),kGt.Kb=function(t){return Tat(),new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"LabelDummySwitcher/lambda$0$Type",1360),fIt(1361,1,NZt,ti),kGt.Mb=function(t){return Tat(),jz(t,10).k==(oCt(),Ese)},bY(x1t,"LabelDummySwitcher/lambda$1$Type",1361),fIt(1362,1,{},cp),kGt.Kb=function(t){return qB(this.a,jz(t,10))},bY(x1t,"LabelDummySwitcher/lambda$2$Type",1362),fIt(1363,1,dZt,lp),kGt.td=function(t){ZY(this.a,jz(t,286))},bY(x1t,"LabelDummySwitcher/lambda$3$Type",1363),fIt(1364,1,kXt,ei),kGt.ue=function(t,e){return Iq(jz(t,286),jz(e,286))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"LabelDummySwitcher/lambda$4$Type",1364),fIt(791,1,QQt,ni),kGt.pf=function(t,e){Z7(jz(t,37),e)},bY(x1t,"LabelManagementProcessor",791),fIt(1549,1,QQt,ii),kGt.pf=function(t,e){ONt(jz(t,37),e)},bY(x1t,"LabelSideSelector",1549),fIt(1550,1,NZt,ai),kGt.Mb=function(t){return zw(RB(yEt(jz(t,70),(zYt(),Gpe))))},bY(x1t,"LabelSideSelector/lambda$0$Type",1550),fIt(1558,1,QQt,ri),kGt.pf=function(t,e){Rzt(jz(t,37),e)},bY(x1t,"LayerConstraintPostprocessor",1558),fIt(1559,1,QQt,Qu),kGt.pf=function(t,e){iLt(jz(t,37),e)},bY(x1t,"LayerConstraintPreprocessor",1559),fIt(360,22,{3:1,35:1,22:1,360:1},QC);var nle,ile,ale,rle,ole,sle,cle,lle,ule,dle,hle,fle,gle,ple=$nt(x1t,"LayerConstraintPreprocessor/HiddenNodeConnections",360,Vte,t4,Uj);fIt(1560,1,QQt,oi),kGt.pf=function(t,e){RUt(jz(t,37),e)},bY(x1t,"LayerSizeAndGraphHeightCalculator",1560),fIt(1561,1,QQt,si),kGt.pf=function(t,e){DOt(jz(t,37),e)},bY(x1t,"LongEdgeJoiner",1561),fIt(1562,1,QQt,ci),kGt.pf=function(t,e){YHt(jz(t,37),e)},bY(x1t,"LongEdgeSplitter",1562),fIt(1563,1,QQt,li),kGt.pf=function(t,e){CVt(this,jz(t,37),e)},kGt.d=0,kGt.e=0,kGt.i=0,kGt.j=0,kGt.k=0,kGt.n=0,bY(x1t,"NodePromotion",1563),fIt(1564,1,{},ui),kGt.Kb=function(t){return jz(t,46),cM(),!0},kGt.Fb=function(t){return this===t},bY(x1t,"NodePromotion/lambda$0$Type",1564),fIt(1565,1,{},op),kGt.Kb=function(t){return aZ(this.a,jz(t,46))},kGt.Fb=function(t){return this===t},kGt.a=0,bY(x1t,"NodePromotion/lambda$1$Type",1565),fIt(1566,1,{},sp),kGt.Kb=function(t){return rZ(this.a,jz(t,46))},kGt.Fb=function(t){return this===t},kGt.a=0,bY(x1t,"NodePromotion/lambda$2$Type",1566),fIt(1567,1,QQt,di),kGt.pf=function(t,e){WWt(jz(t,37),e)},bY(x1t,"NorthSouthPortPostprocessor",1567),fIt(1568,1,QQt,hi),kGt.pf=function(t,e){kWt(jz(t,37),e)},bY(x1t,"NorthSouthPortPreprocessor",1568),fIt(1569,1,kXt,fi),kGt.ue=function(t,e){return Jot(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"NorthSouthPortPreprocessor/lambda$0$Type",1569),fIt(1570,1,QQt,gi),kGt.pf=function(t,e){Ijt(jz(t,37),e)},bY(x1t,"PartitionMidprocessor",1570),fIt(1571,1,NZt,pi),kGt.Mb=function(t){return IN(jz(t,10),(zYt(),Wbe))},bY(x1t,"PartitionMidprocessor/lambda$0$Type",1571),fIt(1572,1,dZt,up),kGt.td=function(t){DK(this.a,jz(t,10))},bY(x1t,"PartitionMidprocessor/lambda$1$Type",1572),fIt(1573,1,QQt,bi),kGt.pf=function(t,e){fMt(jz(t,37),e)},bY(x1t,"PartitionPostprocessor",1573),fIt(1574,1,QQt,mi),kGt.pf=function(t,e){ODt(jz(t,37),e)},bY(x1t,"PartitionPreprocessor",1574),fIt(1575,1,NZt,yi),kGt.Mb=function(t){return IN(jz(t,10),(zYt(),Wbe))},bY(x1t,"PartitionPreprocessor/lambda$0$Type",1575),fIt(1576,1,{},vi),kGt.Kb=function(t){return new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(x1t,"PartitionPreprocessor/lambda$1$Type",1576),fIt(1577,1,NZt,wi),kGt.Mb=function(t){return Lbt(jz(t,17))},bY(x1t,"PartitionPreprocessor/lambda$2$Type",1577),fIt(1578,1,dZt,xi),kGt.td=function(t){Bst(jz(t,17))},bY(x1t,"PartitionPreprocessor/lambda$3$Type",1578),fIt(1579,1,QQt,id),kGt.pf=function(t,e){ojt(jz(t,37),e)},bY(x1t,"PortListSorter",1579),fIt(1580,1,{},Ri),kGt.Kb=function(t){return Vlt(),jz(t,11).e},bY(x1t,"PortListSorter/lambda$0$Type",1580),fIt(1581,1,{},_i),kGt.Kb=function(t){return Vlt(),jz(t,11).g},bY(x1t,"PortListSorter/lambda$1$Type",1581),fIt(1582,1,kXt,ki),kGt.ue=function(t,e){return R3(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"PortListSorter/lambda$2$Type",1582),fIt(1583,1,kXt,Ei),kGt.ue=function(t,e){return Awt(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"PortListSorter/lambda$3$Type",1583),fIt(1584,1,kXt,Ci),kGt.ue=function(t,e){return Qjt(jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"PortListSorter/lambda$4$Type",1584),fIt(1585,1,QQt,Si),kGt.pf=function(t,e){YIt(jz(t,37),e)},bY(x1t,"PortSideProcessor",1585),fIt(1586,1,QQt,Ti),kGt.pf=function(t,e){TPt(jz(t,37),e)},bY(x1t,"ReversedEdgeRestorer",1586),fIt(1591,1,QQt,av),kGt.pf=function(t,e){Kvt(this,jz(t,37),e)},bY(x1t,"SelfLoopPortRestorer",1591),fIt(1592,1,{},Ai),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"SelfLoopPortRestorer/lambda$0$Type",1592),fIt(1593,1,NZt,Di),kGt.Mb=function(t){return jz(t,10).k==(oCt(),Sse)},bY(x1t,"SelfLoopPortRestorer/lambda$1$Type",1593),fIt(1594,1,NZt,Ii),kGt.Mb=function(t){return IN(jz(t,10),(lGt(),The))},bY(x1t,"SelfLoopPortRestorer/lambda$2$Type",1594),fIt(1595,1,{},Li),kGt.Kb=function(t){return jz(yEt(jz(t,10),(lGt(),The)),403)},bY(x1t,"SelfLoopPortRestorer/lambda$3$Type",1595),fIt(1596,1,dZt,dp),kGt.td=function(t){ECt(this.a,jz(t,403))},bY(x1t,"SelfLoopPortRestorer/lambda$4$Type",1596),fIt(794,1,dZt,Oi),kGt.td=function(t){QCt(jz(t,101))},bY(x1t,"SelfLoopPortRestorer/lambda$5$Type",794),fIt(1597,1,QQt,Mi),kGt.pf=function(t,e){Lmt(jz(t,37),e)},bY(x1t,"SelfLoopPostProcessor",1597),fIt(1598,1,{},Ni),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"SelfLoopPostProcessor/lambda$0$Type",1598),fIt(1599,1,NZt,Bi),kGt.Mb=function(t){return jz(t,10).k==(oCt(),Sse)},bY(x1t,"SelfLoopPostProcessor/lambda$1$Type",1599),fIt(1600,1,NZt,Pi),kGt.Mb=function(t){return IN(jz(t,10),(lGt(),The))},bY(x1t,"SelfLoopPostProcessor/lambda$2$Type",1600),fIt(1601,1,dZt,Fi),kGt.td=function(t){LRt(jz(t,10))},bY(x1t,"SelfLoopPostProcessor/lambda$3$Type",1601),fIt(1602,1,{},ji),kGt.Kb=function(t){return new NU(null,new h1(jz(t,101).f,1))},bY(x1t,"SelfLoopPostProcessor/lambda$4$Type",1602),fIt(1603,1,dZt,hp),kGt.td=function(t){a4(this.a,jz(t,409))},bY(x1t,"SelfLoopPostProcessor/lambda$5$Type",1603),fIt(1604,1,NZt,$i),kGt.Mb=function(t){return!!jz(t,101).i},bY(x1t,"SelfLoopPostProcessor/lambda$6$Type",1604),fIt(1605,1,dZt,fp),kGt.td=function(t){Rw(this.a,jz(t,101))},bY(x1t,"SelfLoopPostProcessor/lambda$7$Type",1605),fIt(1587,1,QQt,zi),kGt.pf=function(t,e){JLt(jz(t,37),e)},bY(x1t,"SelfLoopPreProcessor",1587),fIt(1588,1,{},Hi),kGt.Kb=function(t){return new NU(null,new h1(jz(t,101).f,1))},bY(x1t,"SelfLoopPreProcessor/lambda$0$Type",1588),fIt(1589,1,{},Ui),kGt.Kb=function(t){return jz(t,409).a},bY(x1t,"SelfLoopPreProcessor/lambda$1$Type",1589),fIt(1590,1,dZt,Vi),kGt.td=function(t){zL(jz(t,17))},bY(x1t,"SelfLoopPreProcessor/lambda$2$Type",1590),fIt(1606,1,QQt,OP),kGt.pf=function(t,e){cCt(this,jz(t,37),e)},bY(x1t,"SelfLoopRouter",1606),fIt(1607,1,{},qi),kGt.Kb=function(t){return new NU(null,new h1(jz(t,29).a,16))},bY(x1t,"SelfLoopRouter/lambda$0$Type",1607),fIt(1608,1,NZt,Wi),kGt.Mb=function(t){return jz(t,10).k==(oCt(),Sse)},bY(x1t,"SelfLoopRouter/lambda$1$Type",1608),fIt(1609,1,NZt,Yi),kGt.Mb=function(t){return IN(jz(t,10),(lGt(),The))},bY(x1t,"SelfLoopRouter/lambda$2$Type",1609),fIt(1610,1,{},Gi),kGt.Kb=function(t){return jz(yEt(jz(t,10),(lGt(),The)),403)},bY(x1t,"SelfLoopRouter/lambda$3$Type",1610),fIt(1611,1,dZt,tS),kGt.td=function(t){GZ(this.a,this.b,jz(t,403))},bY(x1t,"SelfLoopRouter/lambda$4$Type",1611),fIt(1612,1,QQt,Zi),kGt.pf=function(t,e){uNt(jz(t,37),e)},bY(x1t,"SemiInteractiveCrossMinProcessor",1612),fIt(1613,1,NZt,Ki),kGt.Mb=function(t){return jz(t,10).k==(oCt(),Sse)},bY(x1t,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1613),fIt(1614,1,NZt,Xi),kGt.Mb=function(t){return HU(jz(t,10))._b((zYt(),sme))},bY(x1t,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1614),fIt(1615,1,kXt,Ji),kGt.ue=function(t,e){return gat(jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(x1t,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1615),fIt(1616,1,{},Qi),kGt.Ce=function(t,e){return qK(jz(t,10),jz(e,10))},bY(x1t,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1616),fIt(1618,1,QQt,ta),kGt.pf=function(t,e){kzt(jz(t,37),e)},bY(x1t,"SortByInputModelProcessor",1618),fIt(1619,1,NZt,ea),kGt.Mb=function(t){return 0!=jz(t,11).g.c.length},bY(x1t,"SortByInputModelProcessor/lambda$0$Type",1619),fIt(1620,1,dZt,gp),kGt.td=function(t){uSt(this.a,jz(t,11))},bY(x1t,"SortByInputModelProcessor/lambda$1$Type",1620),fIt(1693,803,{},pat),kGt.Me=function(t){var e,n,i,a;switch(this.c=t,this.a.g){case 2:e=new Lm,Kk(AZ(new NU(null,new h1(this.c.a.b,16)),new pa),new rS(this,e)),bTt(this,new aa),Aet(e,new ra),e.c=O5(Dte,zGt,1,0,5,1),Kk(AZ(new NU(null,new h1(this.c.a.b,16)),new oa),new bp(e)),bTt(this,new sa),Aet(e,new ca),e.c=O5(Dte,zGt,1,0,5,1),n=wL(nrt(IZ(new NU(null,new h1(this.c.a.b,16)),new mp(this))),new la),Kk(new NU(null,new h1(this.c.a.a,16)),new nS(n,e)),bTt(this,new da),Aet(e,new na),e.c=O5(Dte,zGt,1,0,5,1);break;case 3:i=new Lm,bTt(this,new ia),a=wL(nrt(IZ(new NU(null,new h1(this.c.a.b,16)),new pp(this))),new ua),Kk(AZ(new NU(null,new h1(this.c.a.b,16)),new ha),new aS(a,i)),bTt(this,new fa),Aet(i,new ga),i.c=O5(Dte,zGt,1,0,5,1);break;default:throw $m(new vy)}},kGt.b=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation",1693),fIt(1694,1,HXt,ia),kGt.Lb=function(t){return iO(jz(t,57).g,145)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return iO(jz(t,57).g,145)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1694),fIt(1695,1,{},pp),kGt.Fe=function(t){return UTt(this.a,jz(t,57))},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1695),fIt(1703,1,BZt,eS),kGt.Vd=function(){jxt(this.a,this.b,-1)},kGt.b=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1703),fIt(1705,1,HXt,aa),kGt.Lb=function(t){return iO(jz(t,57).g,145)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return iO(jz(t,57).g,145)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1705),fIt(1706,1,dZt,ra),kGt.td=function(t){jz(t,365).Vd()},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1706),fIt(1707,1,NZt,oa),kGt.Mb=function(t){return iO(jz(t,57).g,10)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1707),fIt(1709,1,dZt,bp),kGt.td=function(t){Rft(this.a,jz(t,57))},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1709),fIt(1708,1,BZt,uS),kGt.Vd=function(){jxt(this.b,this.a,-1)},kGt.a=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1708),fIt(1710,1,HXt,sa),kGt.Lb=function(t){return iO(jz(t,57).g,10)},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return iO(jz(t,57).g,10)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1710),fIt(1711,1,dZt,ca),kGt.td=function(t){jz(t,365).Vd()},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1711),fIt(1712,1,{},mp),kGt.Fe=function(t){return VTt(this.a,jz(t,57))},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1712),fIt(1713,1,{},la),kGt.De=function(){return 0},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1713),fIt(1696,1,{},ua),kGt.De=function(){return 0},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1696),fIt(1715,1,dZt,nS),kGt.td=function(t){$V(this.a,this.b,jz(t,307))},kGt.a=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1715),fIt(1714,1,BZt,iS),kGt.Vd=function(){GIt(this.a,this.b,-1)},kGt.b=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1714),fIt(1716,1,HXt,da),kGt.Lb=function(t){return jz(t,57),!0},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return jz(t,57),!0},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1716),fIt(1717,1,dZt,na),kGt.td=function(t){jz(t,365).Vd()},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1717),fIt(1697,1,NZt,ha),kGt.Mb=function(t){return iO(jz(t,57).g,10)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1697),fIt(1699,1,dZt,aS),kGt.td=function(t){zV(this.a,this.b,jz(t,57))},kGt.a=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1699),fIt(1698,1,BZt,dS),kGt.Vd=function(){jxt(this.b,this.a,-1)},kGt.a=0,bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1698),fIt(1700,1,HXt,fa),kGt.Lb=function(t){return jz(t,57),!0},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return jz(t,57),!0},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1700),fIt(1701,1,dZt,ga),kGt.td=function(t){jz(t,365).Vd()},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1701),fIt(1702,1,NZt,pa),kGt.Mb=function(t){return iO(jz(t,57).g,145)},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1702),fIt(1704,1,dZt,rS),kGt.td=function(t){_et(this.a,this.b,jz(t,57))},bY(D1t,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1704),fIt(1521,1,QQt,oN),kGt.pf=function(t,e){aUt(this,jz(t,37),e)},bY(D1t,"HorizontalGraphCompactor",1521),fIt(1522,1,{},yp),kGt.Oe=function(t,e){var n,i;return X9(t,e)||(n=l2(t),i=l2(e),n&&n.k==(oCt(),kse)||i&&i.k==(oCt(),kse))?0:VM(jz(yEt(this.a.a,(lGt(),Ahe)),304),n?n.k:(oCt(),Cse),i?i.k:(oCt(),Cse))},kGt.Pe=function(t,e){var n,i;return X9(t,e)?1:(n=l2(t),i=l2(e),qM(jz(yEt(this.a.a,(lGt(),Ahe)),304),n?n.k:(oCt(),Cse),i?i.k:(oCt(),Cse)))},bY(D1t,"HorizontalGraphCompactor/1",1522),fIt(1523,1,{},ba),kGt.Ne=function(t,e){return _E(),0==t.a.i},bY(D1t,"HorizontalGraphCompactor/lambda$0$Type",1523),fIt(1524,1,{},vp),kGt.Ne=function(t,e){return PK(this.a,t,e)},bY(D1t,"HorizontalGraphCompactor/lambda$1$Type",1524),fIt(1664,1,{},S9),bY(D1t,"LGraphToCGraphTransformer",1664),fIt(1672,1,NZt,ma),kGt.Mb=function(t){return null!=t},bY(D1t,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1672),fIt(1665,1,{},ya),kGt.Kb=function(t){return Hj(),$ft(yEt(jz(jz(t,57).g,10),(lGt(),fhe)))},bY(D1t,"LGraphToCGraphTransformer/lambda$0$Type",1665),fIt(1666,1,{},va),kGt.Kb=function(t){return Hj(),ydt(jz(jz(t,57).g,145))},bY(D1t,"LGraphToCGraphTransformer/lambda$1$Type",1666),fIt(1675,1,NZt,wa),kGt.Mb=function(t){return Hj(),iO(jz(t,57).g,10)},bY(D1t,"LGraphToCGraphTransformer/lambda$10$Type",1675),fIt(1676,1,dZt,xa),kGt.td=function(t){BK(jz(t,57))},bY(D1t,"LGraphToCGraphTransformer/lambda$11$Type",1676),fIt(1677,1,NZt,Ra),kGt.Mb=function(t){return Hj(),iO(jz(t,57).g,145)},bY(D1t,"LGraphToCGraphTransformer/lambda$12$Type",1677),fIt(1681,1,dZt,_a),kGt.td=function(t){mdt(jz(t,57))},bY(D1t,"LGraphToCGraphTransformer/lambda$13$Type",1681),fIt(1678,1,dZt,wp),kGt.td=function(t){rI(this.a,jz(t,8))},kGt.a=0,bY(D1t,"LGraphToCGraphTransformer/lambda$14$Type",1678),fIt(1679,1,dZt,xp),kGt.td=function(t){sI(this.a,jz(t,110))},kGt.a=0,bY(D1t,"LGraphToCGraphTransformer/lambda$15$Type",1679),fIt(1680,1,dZt,Rp),kGt.td=function(t){oI(this.a,jz(t,8))},kGt.a=0,bY(D1t,"LGraphToCGraphTransformer/lambda$16$Type",1680),fIt(1682,1,{},ka),kGt.Kb=function(t){return Hj(),new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(D1t,"LGraphToCGraphTransformer/lambda$17$Type",1682),fIt(1683,1,NZt,Ea),kGt.Mb=function(t){return Hj(),d6(jz(t,17))},bY(D1t,"LGraphToCGraphTransformer/lambda$18$Type",1683),fIt(1684,1,dZt,_p),kGt.td=function(t){ktt(this.a,jz(t,17))},bY(D1t,"LGraphToCGraphTransformer/lambda$19$Type",1684),fIt(1668,1,dZt,kp),kGt.td=function(t){u0(this.a,jz(t,145))},bY(D1t,"LGraphToCGraphTransformer/lambda$2$Type",1668),fIt(1685,1,{},Ca),kGt.Kb=function(t){return Hj(),new NU(null,new h1(jz(t,29).a,16))},bY(D1t,"LGraphToCGraphTransformer/lambda$20$Type",1685),fIt(1686,1,{},Sa),kGt.Kb=function(t){return Hj(),new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(D1t,"LGraphToCGraphTransformer/lambda$21$Type",1686),fIt(1687,1,{},Ta),kGt.Kb=function(t){return Hj(),jz(yEt(jz(t,17),(lGt(),Lhe)),15)},bY(D1t,"LGraphToCGraphTransformer/lambda$22$Type",1687),fIt(1688,1,NZt,Aa),kGt.Mb=function(t){return QM(jz(t,15))},bY(D1t,"LGraphToCGraphTransformer/lambda$23$Type",1688),fIt(1689,1,dZt,Ep),kGt.td=function(t){CTt(this.a,jz(t,15))},bY(D1t,"LGraphToCGraphTransformer/lambda$24$Type",1689),fIt(1667,1,dZt,oS),kGt.td=function(t){$4(this.a,this.b,jz(t,145))},bY(D1t,"LGraphToCGraphTransformer/lambda$3$Type",1667),fIt(1669,1,{},Da),kGt.Kb=function(t){return Hj(),new NU(null,new h1(jz(t,29).a,16))},bY(D1t,"LGraphToCGraphTransformer/lambda$4$Type",1669),fIt(1670,1,{},Ia),kGt.Kb=function(t){return Hj(),new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(D1t,"LGraphToCGraphTransformer/lambda$5$Type",1670),fIt(1671,1,{},La),kGt.Kb=function(t){return Hj(),jz(yEt(jz(t,17),(lGt(),Lhe)),15)},bY(D1t,"LGraphToCGraphTransformer/lambda$6$Type",1671),fIt(1673,1,dZt,Cp),kGt.td=function(t){PAt(this.a,jz(t,15))},bY(D1t,"LGraphToCGraphTransformer/lambda$8$Type",1673),fIt(1674,1,dZt,sS),kGt.td=function(t){OL(this.a,this.b,jz(t,145))},bY(D1t,"LGraphToCGraphTransformer/lambda$9$Type",1674),fIt(1663,1,{},Oa),kGt.Le=function(t){var e,n,i,a,r;for(this.a=t,this.d=new Fy,this.c=O5(zie,zGt,121,this.a.a.a.c.length,0,1),this.b=0,n=new Wf(this.a.a.a);n.a<n.c.c.length;)(e=jz(J1(n),307)).d=this.b,r=AM(oE(new zy,e),this.d),this.c[this.b]=r,++this.b;for(XVt(this),DWt(this),JOt(this),YFt(jj(this.d),new qv),a=new Wf(this.a.a.b);a.a<a.c.c.length;)(i=jz(J1(a),57)).d.c=this.c[i.a.d].e+i.b.a},kGt.b=0,bY(D1t,"NetworkSimplexCompaction",1663),fIt(145,1,{35:1,145:1},Czt),kGt.wd=function(t){return Itt(this,jz(t,145))},kGt.Ib=function(){return ydt(this)},bY(D1t,"VerticalSegment",145),fIt(827,1,{},V_t),kGt.c=0,kGt.e=0,kGt.i=0,bY(I1t,"BetweenLayerEdgeTwoNodeCrossingsCounter",827),fIt(663,1,{663:1},wrt),kGt.Ib=function(){return"AdjacencyList [node="+this.d+", adjacencies= "+this.a+"]"},kGt.b=0,kGt.c=0,kGt.f=0,bY(I1t,"BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList",663),fIt(287,1,{35:1,287:1},HN),kGt.wd=function(t){return aU(this,jz(t,287))},kGt.Ib=function(){return"Adjacency [position="+this.c+", cardinality="+this.a+", currentCardinality="+this.b+"]"},kGt.a=0,kGt.b=0,kGt.c=0,bY(I1t,"BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency",287),fIt(1929,1,{},JCt),kGt.b=0,kGt.e=!1,bY(I1t,"CrossingMatrixFiller",1929);var ble=dU(L1t,"IInitializable");fIt(1804,1,O1t,bS),kGt.Nf=function(t,e,n,i,a,r){},kGt.Pf=function(t,e,n){},kGt.Lf=function(){return this.c!=(sit(),Dve)},kGt.Mf=function(){this.e=O5(TMe,lKt,25,this.d,15,1)},kGt.Of=function(t,e){e[t][0].c.p=t},kGt.Qf=function(t,e,n,i){++this.d},kGt.Rf=function(){return!0},kGt.Sf=function(t,e,n,i){return Kut(this,t,e,n),X3(this,e)},kGt.Tf=function(t,e){var n;return Kut(this,t,n=cR(e,t.length),e),hct(this,n)},kGt.d=0,bY(I1t,"GreedySwitchHeuristic",1804),fIt(1930,1,{},uV),kGt.b=0,kGt.d=0,bY(I1t,"NorthSouthEdgeNeighbouringNodeCrossingsCounter",1930),fIt(1917,1,{},oPt),kGt.a=!1,bY(I1t,"SwitchDecider",1917),fIt(101,1,{101:1},bSt),kGt.a=null,kGt.c=null,kGt.i=null,bY(M1t,"SelfHyperLoop",101),fIt(1916,1,{},emt),kGt.c=0,kGt.e=0,bY(M1t,"SelfHyperLoopLabels",1916),fIt(411,22,{3:1,35:1,22:1,411:1},mS);var mle,yle,vle,wle,xle,Rle=$nt(M1t,"SelfHyperLoopLabels/Alignment",411,Vte,n4,Vj);fIt(409,1,{409:1},w7),bY(M1t,"SelfLoopEdge",409),fIt(403,1,{403:1},Abt),kGt.a=!1,bY(M1t,"SelfLoopHolder",403),fIt(1724,1,NZt,Ua),kGt.Mb=function(t){return d6(jz(t,17))},bY(M1t,"SelfLoopHolder/lambda$0$Type",1724),fIt(113,1,{113:1},nmt),kGt.a=!1,kGt.c=!1,bY(M1t,"SelfLoopPort",113),fIt(1792,1,NZt,Va),kGt.Mb=function(t){return d6(jz(t,17))},bY(M1t,"SelfLoopPort/lambda$0$Type",1792),fIt(363,22,{3:1,35:1,22:1,363:1},yS);var _le,kle,Ele,Cle,Sle,Tle,Ale,Dle,Ile,Lle,Ole=$nt(M1t,"SelfLoopType",363,Vte,O6,Zj);fIt(1732,1,{},ad),bY(N1t,"PortRestorer",1732),fIt(361,22,{3:1,35:1,22:1,361:1},vS);var Mle,Nle,Ble,Ple,Fle=$nt(N1t,"PortRestorer/PortSideArea",361,Vte,E1,Kj);fIt(1733,1,{},Ga),kGt.Kb=function(t){return FEt(),jz(t,15).Oc()},bY(N1t,"PortRestorer/lambda$0$Type",1733),fIt(1734,1,dZt,Za),kGt.td=function(t){FEt(),jz(t,113).c=!1},bY(N1t,"PortRestorer/lambda$1$Type",1734),fIt(1743,1,NZt,Ka),kGt.Mb=function(t){return FEt(),jz(t,11).j==(wWt(),SAe)},bY(N1t,"PortRestorer/lambda$10$Type",1743),fIt(1744,1,{},Xa),kGt.Kb=function(t){return FEt(),jz(t,113).d},bY(N1t,"PortRestorer/lambda$11$Type",1744),fIt(1745,1,dZt,Sp),kGt.td=function(t){LR(this.a,jz(t,11))},bY(N1t,"PortRestorer/lambda$12$Type",1745),fIt(1735,1,dZt,Tp),kGt.td=function(t){AN(this.a,jz(t,101))},bY(N1t,"PortRestorer/lambda$2$Type",1735),fIt(1736,1,kXt,Ja),kGt.ue=function(t,e){return snt(jz(t,113),jz(e,113))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(N1t,"PortRestorer/lambda$3$Type",1736),fIt(1737,1,NZt,Qa),kGt.Mb=function(t){return FEt(),jz(t,113).c},bY(N1t,"PortRestorer/lambda$4$Type",1737),fIt(1738,1,NZt,Na),kGt.Mb=function(t){return Drt(jz(t,11))},bY(N1t,"PortRestorer/lambda$5$Type",1738),fIt(1739,1,NZt,Ma),kGt.Mb=function(t){return FEt(),jz(t,11).j==(wWt(),cAe)},bY(N1t,"PortRestorer/lambda$6$Type",1739),fIt(1740,1,NZt,Ba),kGt.Mb=function(t){return FEt(),jz(t,11).j==(wWt(),sAe)},bY(N1t,"PortRestorer/lambda$7$Type",1740),fIt(1741,1,NZt,Pa),kGt.Mb=function(t){return i4(jz(t,11))},bY(N1t,"PortRestorer/lambda$8$Type",1741),fIt(1742,1,NZt,Fa),kGt.Mb=function(t){return FEt(),jz(t,11).j==(wWt(),EAe)},bY(N1t,"PortRestorer/lambda$9$Type",1742),fIt(270,22,{3:1,35:1,22:1,270:1},WZ);var jle,$le,zle,Hle,Ule,Vle,qle,Wle,Yle,Gle,Zle=$nt(N1t,"PortSideAssigner/Target",270,Vte,jet,qj);fIt(1725,1,{},ja),kGt.Kb=function(t){return AZ(new NU(null,new h1(jz(t,101).j,16)),new Ya)},bY(N1t,"PortSideAssigner/lambda$1$Type",1725),fIt(1726,1,{},$a),kGt.Kb=function(t){return jz(t,113).d},bY(N1t,"PortSideAssigner/lambda$2$Type",1726),fIt(1727,1,dZt,za),kGt.td=function(t){HTt(jz(t,11),(wWt(),cAe))},bY(N1t,"PortSideAssigner/lambda$3$Type",1727),fIt(1728,1,{},Ha),kGt.Kb=function(t){return jz(t,113).d},bY(N1t,"PortSideAssigner/lambda$4$Type",1728),fIt(1729,1,dZt,Ap),kGt.td=function(t){Qm(this.a,jz(t,11))},bY(N1t,"PortSideAssigner/lambda$5$Type",1729),fIt(1730,1,kXt,qa),kGt.ue=function(t,e){return _G(jz(t,101),jz(e,101))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(N1t,"PortSideAssigner/lambda$6$Type",1730),fIt(1731,1,kXt,Wa),kGt.ue=function(t,e){return oH(jz(t,113),jz(e,113))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(N1t,"PortSideAssigner/lambda$7$Type",1731),fIt(805,1,NZt,Ya),kGt.Mb=function(t){return jz(t,113).c},bY(N1t,"PortSideAssigner/lambda$8$Type",805),fIt(2009,1,{}),bY(B1t,"AbstractSelfLoopRouter",2009),fIt(1750,1,kXt,tr),kGt.ue=function(t,e){return SF(jz(t,101),jz(e,101))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(B1t,hJt,1750),fIt(1751,1,kXt,er),kGt.ue=function(t,e){return CF(jz(t,101),jz(e,101))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(B1t,fJt,1751),fIt(1793,2009,{},nr),kGt.Uf=function(t,e,n){return n},bY(B1t,"OrthogonalSelfLoopRouter",1793),fIt(1795,1,dZt,hS),kGt.td=function(t){bbt(this.b,this.a,jz(t,8))},bY(B1t,"OrthogonalSelfLoopRouter/lambda$0$Type",1795),fIt(1794,1793,{},ir),kGt.Uf=function(t,e,n){var i,a;return BN(n,0,VP(jL((i=t.c.d).n),i.a)),MH(n,VP(jL((a=t.d.d).n),a.a)),Rjt(n)},bY(B1t,"PolylineSelfLoopRouter",1794),fIt(1746,1,{},Ju),kGt.a=null,bY(B1t,"RoutingDirector",1746),fIt(1747,1,kXt,ar),kGt.ue=function(t,e){return hH(jz(t,113),jz(e,113))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(B1t,"RoutingDirector/lambda$0$Type",1747),fIt(1748,1,{},rr),kGt.Kb=function(t){return kE(),jz(t,101).j},bY(B1t,"RoutingDirector/lambda$1$Type",1748),fIt(1749,1,dZt,or),kGt.td=function(t){kE(),jz(t,15).ad(Gle)},bY(B1t,"RoutingDirector/lambda$2$Type",1749),fIt(1752,1,{},sr),bY(B1t,"RoutingSlotAssigner",1752),fIt(1753,1,NZt,Dp),kGt.Mb=function(t){return CT(this.a,jz(t,101))},bY(B1t,"RoutingSlotAssigner/lambda$0$Type",1753),fIt(1754,1,kXt,Ip),kGt.ue=function(t,e){return VU(this.a,jz(t,101),jz(e,101))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(B1t,"RoutingSlotAssigner/lambda$1$Type",1754),fIt(1796,1793,{},cr),kGt.Uf=function(t,e,n){var i,a,r,o;return i=Hw(_B(pmt(t.b.g.b,(zYt(),wme)))),QLt(t,e,n,o=new VN(Cst(Hx(EEe,1),cZt,8,0,[(r=t.c.d,VP(new hI(r.n),r.a))])),i),MH(o,VP(new hI((a=t.d.d).n),a.a)),jyt(new szt(o))},bY(B1t,"SplineSelfLoopRouter",1796),fIt(578,1,kXt,Uat,vH),kGt.ue=function(t,e){return uYt(this,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(P1t,"ModelOrderNodeComparator",578),fIt(1755,1,NZt,lr),kGt.Mb=function(t){return 0!=jz(t,11).e.c.length},bY(P1t,"ModelOrderNodeComparator/lambda$0$Type",1755),fIt(1756,1,{},ur),kGt.Kb=function(t){return jz(OU(jz(t,11).e,0),17).c},bY(P1t,"ModelOrderNodeComparator/lambda$1$Type",1756),fIt(1757,1,NZt,dr),kGt.Mb=function(t){return 0!=jz(t,11).e.c.length},bY(P1t,"ModelOrderNodeComparator/lambda$2$Type",1757),fIt(1758,1,{},hr),kGt.Kb=function(t){return jz(OU(jz(t,11).e,0),17).c},bY(P1t,"ModelOrderNodeComparator/lambda$3$Type",1758),fIt(1759,1,NZt,fr),kGt.Mb=function(t){return 0!=jz(t,11).e.c.length},bY(P1t,"ModelOrderNodeComparator/lambda$4$Type",1759),fIt(806,1,kXt,T9,pS),kGt.ue=function(t,e){return Lq(this,t,e)},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(P1t,"ModelOrderPortComparator",806),fIt(801,1,{},gr),kGt.Vf=function(t,e){var n,a,r,o;for(r=CCt(e),n=new Lm,o=e.f/r,a=1;a<r;++a)Wz(n,nht(fV(uot(i.Math.round(a*o)))));return n},kGt.Wf=function(){return!1},bY(F1t,"ARDCutIndexHeuristic",801),fIt(1479,1,QQt,pr),kGt.pf=function(t,e){sFt(jz(t,37),e)},bY(F1t,"BreakingPointInserter",1479),fIt(305,1,{305:1},b4),kGt.Ib=function(){var t;return(t=new Cx).a+="BPInfo[",t.a+="\n\tstart=",rD(t,this.i),t.a+="\n\tend=",rD(t,this.a),t.a+="\n\tnodeStartEdge=",rD(t,this.e),t.a+="\n\tstartEndEdge=",rD(t,this.j),t.a+="\n\toriginalEdge=",rD(t,this.f),t.a+="\n\tstartInLayerDummy=",rD(t,this.k),t.a+="\n\tstartInLayerEdge=",rD(t,this.n),t.a+="\n\tendInLayerDummy=",rD(t,this.b),t.a+="\n\tendInLayerEdge=",rD(t,this.c),t.a},bY(F1t,"BreakingPointInserter/BPInfo",305),fIt(652,1,{652:1},$p),kGt.a=!1,kGt.b=0,kGt.c=0,bY(F1t,"BreakingPointInserter/Cut",652),fIt(1480,1,QQt,br),kGt.pf=function(t,e){yOt(jz(t,37),e)},bY(F1t,"BreakingPointProcessor",1480),fIt(1481,1,NZt,mr),kGt.Mb=function(t){return Ktt(jz(t,10))},bY(F1t,"BreakingPointProcessor/0methodref$isEnd$Type",1481),fIt(1482,1,NZt,yr),kGt.Mb=function(t){return Xtt(jz(t,10))},bY(F1t,"BreakingPointProcessor/1methodref$isStart$Type",1482),fIt(1483,1,QQt,vr),kGt.pf=function(t,e){iMt(this,jz(t,37),e)},bY(F1t,"BreakingPointRemover",1483),fIt(1484,1,dZt,wr),kGt.td=function(t){jz(t,128).k=!0},bY(F1t,"BreakingPointRemover/lambda$0$Type",1484),fIt(797,1,{},kIt),kGt.b=0,kGt.e=0,kGt.f=0,kGt.j=0,bY(F1t,"GraphStats",797),fIt(798,1,{},xr),kGt.Ce=function(t,e){return i.Math.max(Hw(_B(t)),Hw(_B(e)))},bY(F1t,"GraphStats/0methodref$max$Type",798),fIt(799,1,{},Rr),kGt.Ce=function(t,e){return i.Math.max(Hw(_B(t)),Hw(_B(e)))},bY(F1t,"GraphStats/2methodref$max$Type",799),fIt(1660,1,{},_r),kGt.Ce=function(t,e){return bz(_B(t),_B(e))},bY(F1t,"GraphStats/lambda$1$Type",1660),fIt(1661,1,{},Lp),kGt.Kb=function(t){return fmt(this.a,jz(t,29))},bY(F1t,"GraphStats/lambda$2$Type",1661),fIt(1662,1,{},Op),kGt.Kb=function(t){return GOt(this.a,jz(t,29))},bY(F1t,"GraphStats/lambda$6$Type",1662),fIt(800,1,{},kr),kGt.Vf=function(t,e){return jz(yEt(t,(zYt(),Pme)),15)||(kK(),kK(),cne)},kGt.Wf=function(){return!1},bY(F1t,"ICutIndexCalculator/ManualCutIndexCalculator",800),fIt(802,1,{},Er),kGt.Vf=function(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x;for(null==e.n&&Nvt(e),x=e.n,null==e.d&&Nvt(e),l=e.d,(w=O5(LMe,HKt,25,x.length,15,1))[0]=x[0],y=x[0],u=1;u<x.length;u++)w[u]=w[u-1]+x[u],y+=x[u];for(r=CCt(e)-1,s=jz(yEt(t,(zYt(),Fme)),19).a,a=PKt,n=new Lm,f=i.Math.max(0,r-s);f<=i.Math.min(e.f-1,r+s);f++){if(b=y/(f+1),m=0,d=1,o=new Lm,v=PKt,h=0,c=0,p=l[0],0==f)v=y,null==e.g&&(e.g=Wat(e,new Rr)),c=Hw(e.g);else{for(;d<e.f;)w[d-1]-m>=b&&(Wz(o,nht(d)),v=i.Math.max(v,w[d-1]-h),c+=p,m+=w[d-1]-m,h=w[d-1],p=l[d]),p=i.Math.max(p,l[d]),++d;c+=p}(g=i.Math.min(1/v,1/e.b/c))>a&&(a=g,n=o)}return n},kGt.Wf=function(){return!1},bY(F1t,"MSDCutIndexHeuristic",802),fIt(1617,1,QQt,Cr),kGt.pf=function(t,e){hzt(jz(t,37),e)},bY(F1t,"SingleEdgeGraphWrapper",1617),fIt(227,22,{3:1,35:1,22:1,227:1},wS);var Kle,Xle,Jle,Qle,tue,eue,nue,iue=$nt(j1t,"CenterEdgeLabelPlacementStrategy",227,Vte,X5,Wj);fIt(422,22,{3:1,35:1,22:1,422:1},xS);var aue,rue,oue,sue=$nt(j1t,"ConstraintCalculationStrategy",422,Vte,HX,Yj);fIt(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},RS),kGt.Kf=function(){return cAt(this)},kGt.Xf=function(){return cAt(this)};var cue,lue,uue,due,hue=$nt(j1t,"CrossingMinimizationStrategy",314,Vte,R1,Gj);fIt(337,22,{3:1,35:1,22:1,337:1},_S);var fue,gue,pue,bue,mue=$nt(j1t,"CuttingStrategy",337,Vte,_1,Xj);fIt(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},kS),kGt.Kf=function(){return BIt(this)},kGt.Xf=function(){return BIt(this)};var yue,vue,wue,xue,Rue,_ue,kue=$nt(j1t,"CycleBreakingStrategy",335,Vte,I6,Jj);fIt(419,22,{3:1,35:1,22:1,419:1},ES);var Eue,Cue,Sue,Tue=$nt(j1t,"DirectionCongruency",419,Vte,zX,Qj);fIt(450,22,{3:1,35:1,22:1,450:1},CS);var Aue,Due,Iue,Lue,Oue=$nt(j1t,"EdgeConstraint",450,Vte,k1,t$);fIt(276,22,{3:1,35:1,22:1,276:1},SS);var Mue,Nue,Bue,Pue,Fue,jue,$ue,zue=$nt(j1t,"EdgeLabelSideSelection",276,Vte,e8,e$);fIt(479,22,{3:1,35:1,22:1,479:1},TS);var Hue,Uue,Vue,que=$nt(j1t,"EdgeStraighteningStrategy",479,Vte,$X,n$);fIt(274,22,{3:1,35:1,22:1,274:1},AS);var Wue,Yue,Gue,Zue,Kue,Xue,Jue,Que=$nt(j1t,"FixedAlignment",274,Vte,Q5,i$);fIt(275,22,{3:1,35:1,22:1,275:1},DS);var tde,ede,nde,ide,ade,rde,ode,sde=$nt(j1t,"GraphCompactionStrategy",275,Vte,J5,a$);fIt(256,22,{3:1,35:1,22:1,256:1},IS);var cde,lde,ude,dde,hde,fde,gde,pde,bde,mde,yde,vde=$nt(j1t,"GraphProperties",256,Vte,hrt,r$);fIt(292,22,{3:1,35:1,22:1,292:1},LS);var wde,xde,Rde,_de,kde=$nt(j1t,"GreedySwitchType",292,Vte,S1,o$);fIt(303,22,{3:1,35:1,22:1,303:1},OS);var Ede,Cde,Sde,Tde,Ade=$nt(j1t,"InLayerConstraint",303,Vte,C1,s$);fIt(420,22,{3:1,35:1,22:1,420:1},MS);var Dde,Ide,Lde,Ode,Mde,Nde,Bde,Pde,Fde,jde,$de,zde,Hde,Ude,Vde,qde,Wde,Yde,Gde,Zde,Kde,Xde,Jde,Qde,the,ehe,nhe,ihe,ahe,rhe,ohe,she,che,lhe,uhe,dhe,hhe,fhe,ghe,phe,bhe,mhe,yhe,vhe,whe,xhe,Rhe,_he,khe,Ehe,Che,She,The,Ahe,Dhe,Ihe,Lhe,Ohe,Mhe,Nhe,Bhe,Phe=$nt(j1t,"InteractiveReferencePoint",420,Vte,UX,c$);fIt(163,22,{3:1,35:1,22:1,163:1},jS);var Fhe,jhe,$he,zhe,Hhe,Uhe,Vhe,qhe,Whe,Yhe,Ghe,Zhe,Khe,Xhe,Jhe,Qhe,tfe,efe,nfe,ife,afe,rfe,ofe,sfe,cfe,lfe,ufe,dfe,hfe,ffe,gfe,pfe,bfe,mfe,yfe,vfe,wfe,xfe,Rfe,_fe,kfe,Efe,Cfe,Sfe,Tfe,Afe,Dfe,Ife,Lfe,Ofe,Mfe,Nfe,Bfe,Pfe,Ffe,jfe,$fe,zfe,Hfe,Ufe,Vfe,qfe,Wfe,Yfe,Gfe,Zfe,Kfe,Xfe,Jfe,Qfe,tge,ege,nge,ige,age,rge,oge,sge,cge,lge,uge,dge,hge,fge,gge,pge,bge,mge,yge,vge,wge,xge,Rge,_ge,kge,Ege,Cge,Sge,Tge,Age,Dge,Ige,Lge,Oge,Mge,Nge,Bge,Pge,Fge,jge,$ge,zge,Hge,Uge,Vge,qge,Wge,Yge,Gge,Zge,Kge,Xge,Jge,Qge,tpe,epe,npe,ipe,ape,rpe,ope,spe,cpe,lpe,upe,dpe,hpe,fpe,gpe,ppe,bpe,mpe,ype,vpe,wpe,xpe,Rpe,_pe,kpe,Epe,Cpe,Spe,Tpe,Ape,Dpe,Ipe,Lpe,Ope,Mpe,Npe,Bpe,Ppe,Fpe,jpe,$pe,zpe,Hpe,Upe,Vpe,qpe,Wpe,Ype,Gpe,Zpe,Kpe,Xpe,Jpe,Qpe,tbe,ebe,nbe,ibe,abe,rbe,obe,sbe,cbe,lbe,ube,dbe,hbe,fbe,gbe,pbe,bbe,mbe,ybe,vbe,wbe,xbe,Rbe,_be,kbe,Ebe,Cbe,Sbe,Tbe,Abe,Dbe,Ibe,Lbe,Obe,Mbe,Nbe,Bbe,Pbe,Fbe,jbe,$be,zbe,Hbe,Ube,Vbe,qbe,Wbe,Ybe,Gbe,Zbe,Kbe,Xbe,Jbe,Qbe,tme,eme,nme,ime,ame,rme,ome,sme,cme,lme,ume,dme,hme,fme,gme,pme,bme,mme,yme,vme,wme,xme,Rme,_me,kme,Eme,Cme,Sme,Tme,Ame,Dme,Ime,Lme,Ome,Mme,Nme,Bme,Pme,Fme,jme,$me,zme,Hme,Ume,Vme,qme,Wme,Yme,Gme,Zme=$nt(j1t,"LayerConstraint",163,Vte,M6,l$);fIt(848,1,ZXt,sd),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,q1t),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),Efe),(CSt(),pEe)),Tue),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,W1t),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(cM(),!1)),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Y1t),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),Gfe),pEe),Phe),Qht(lEe)))),a2(t,Y1t,e0t,Kfe),a2(t,Y1t,d0t,Zfe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,G1t),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Z1t),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),fEe),wee),Qht(lEe)))),Dft(t,new hSt(ER(TR(SR(AR(RR(xR(CR(_R(kR(new zs,K1t),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),fEe),wee),Qht(uEe)),Cst(Hx(zee,1),cZt,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,X1t),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),Oge),pEe),$ye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,J1t),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),nht(7)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Q1t),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,t0t),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,e0t),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),_fe),pEe),kue),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,n0t),u2t),"Node Layering Strategy"),"Strategy for node layering."),dge),pEe),iye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,i0t),u2t),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),ege),pEe),Zme),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,a0t),u2t),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,r0t),u2t),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,o0t),d2t),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),nht(4)),mEe),Dee),Qht(lEe)))),a2(t,o0t,n0t,age),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,s0t),d2t),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),nht(2)),mEe),Dee),Qht(lEe)))),a2(t,s0t,n0t,oge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,c0t),h2t),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),lge),pEe),Iye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,l0t),h2t),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),nht(0)),mEe),Dee),Qht(lEe)))),a2(t,l0t,c0t,null),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,u0t),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),nht(NGt)),mEe),Dee),Qht(lEe)))),a2(t,u0t,n0t,Jfe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,d0t),f2t),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),xfe),pEe),hue),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,h0t),f2t),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,f0t),f2t),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),gEe),Cee),Qht(lEe)))),a2(t,f0t,g2t,pfe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,g0t),f2t),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),fEe),wee),Qht(lEe)))),a2(t,g0t,d0t,vfe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,p0t),f2t),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,b0t),f2t),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,m0t),p2t),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),nht(40)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,y0t),p2t),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),hfe),pEe),kde),Qht(lEe)))),a2(t,y0t,d0t,ffe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,v0t),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),cfe),pEe),kde),Qht(lEe)))),a2(t,v0t,d0t,lfe),a2(t,v0t,g2t,ufe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,w0t),b2t),"Node Placement Strategy"),"Strategy for node placement."),Ige),pEe),xye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,x0t),b2t),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),fEe),wee),Qht(lEe)))),a2(t,x0t,w0t,xge),a2(t,x0t,w0t,Rge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,R0t),m2t),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),pge),pEe),que),Qht(lEe)))),a2(t,R0t,w0t,bge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,_0t),m2t),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),yge),pEe),Que),Qht(lEe)))),a2(t,_0t,w0t,vge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,k0t),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),gEe),Cee),Qht(lEe)))),a2(t,k0t,w0t,kge),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,E0t),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),pEe),gye),Qht(cEe)))),a2(t,E0t,w0t,Age),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,C0t),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Sge),pEe),gye),Qht(lEe)))),a2(t,C0t,w0t,Tge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,S0t),y2t),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),Ofe),pEe),Kye),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,T0t),y2t),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),Nfe),pEe),tve),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,A0t),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),Pfe),pEe),rve),Qht(lEe)))),a2(t,A0t,v2t,Ffe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,D0t),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),gEe),Cee),Qht(lEe)))),a2(t,D0t,v2t,$fe),a2(t,D0t,A0t,zfe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,I0t),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),gEe),Cee),Qht(lEe)))),a2(t,I0t,v2t,Ife),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,L0t),w2t),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,O0t),w2t),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,M0t),w2t),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,N0t),w2t),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,B0t),x2t),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),nht(0)),mEe),Dee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,P0t),x2t),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),nht(0)),mEe),Dee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,F0t),x2t),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),nht(0)),mEe),Dee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,j0t),R2t),NJt),"Tries to further compact components (disconnected sub-graphs)."),!1),fEe),wee),Qht(lEe)))),a2(t,j0t,wQt,!0),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,$0t),_2t),"Post Compaction Strategy"),k2t),Zhe),pEe),sde),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,z0t),_2t),"Post Compaction Constraint Calculation"),k2t),Yhe),pEe),sue),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,H0t),E2t),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,U0t),E2t),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),nht(16)),mEe),Dee),Qht(lEe)))),a2(t,U0t,H0t,!0),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,V0t),E2t),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),nht(5)),mEe),Dee),Qht(lEe)))),a2(t,V0t,H0t,!0),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,q0t),C2t),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),dpe),pEe),kve),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,W0t),C2t),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),gEe),Cee),Qht(lEe)))),a2(t,W0t,q0t,Vge),a2(t,W0t,q0t,qge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Y0t),C2t),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),gEe),Cee),Qht(lEe)))),a2(t,Y0t,q0t,Yge),a2(t,Y0t,q0t,Gge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,G0t),S2t),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),epe),pEe),mue),Qht(lEe)))),a2(t,G0t,q0t,npe),a2(t,G0t,q0t,ipe),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,Z0t),S2t),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),yEe),Bte),Qht(lEe)))),a2(t,Z0t,G0t,Kge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,K0t),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),Jge),mEe),Dee),Qht(lEe)))),a2(t,K0t,G0t,Qge),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,X0t),T2t),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),bpe),pEe),uve),Qht(lEe)))),a2(t,X0t,q0t,mpe),a2(t,X0t,q0t,ype),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,J0t),T2t),"Valid Indices for Wrapping"),null),yEe),Bte),Qht(lEe)))),a2(t,J0t,q0t,fpe),a2(t,J0t,q0t,gpe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Q0t),A2t),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),fEe),wee),Qht(lEe)))),a2(t,Q0t,q0t,spe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,t2t),A2t),"Distance Penalty When Improving Cuts"),null),2),gEe),Cee),Qht(lEe)))),a2(t,t2t,q0t,rpe),a2(t,t2t,Q0t,!0),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,e2t),A2t),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),fEe),wee),Qht(lEe)))),a2(t,e2t,q0t,lpe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,n2t),D2t),"Edge Label Side Selection"),"Method to decide on edge label sides."),Afe),pEe),zue),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,i2t),D2t),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),Sfe),pEe),iue),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[sEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,a2t),I2t),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),afe),pEe),Bye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,r2t),I2t),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,o2t),I2t),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),Xhe),pEe),mse),Qht(lEe)))),a2(t,o2t,wQt,null),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,s2t),I2t),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),efe),pEe),cye),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,c2t),I2t),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),gEe),Cee),Qht(lEe)))),a2(t,c2t,a2t,null),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,l2t),I2t),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),gEe),Cee),Qht(lEe)))),a2(t,l2t,a2t,null),mGt((new ud,t))},bY(j1t,"LayeredMetaDataProvider",848),fIt(986,1,ZXt,ud),kGt.Qe=function(t){mGt(t)},bY(j1t,"LayeredOptions",986),fIt(987,1,{},Tr),kGt.$e=function(){return new Vy},kGt._e=function(t){},bY(j1t,"LayeredOptions/LayeredFactory",987),fIt(1372,1,{}),kGt.a=0,bY(v4t,"ElkSpacings/AbstractSpacingsBuilder",1372),fIt(779,1372,{},ogt),bY(j1t,"LayeredSpacings/LayeredSpacingsBuilder",779),fIt(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},NS),kGt.Kf=function(){return iOt(this)},kGt.Xf=function(){return iOt(this)};var Kme,Xme,Jme,Qme,tye,eye,nye,iye=$nt(j1t,"LayeringStrategy",313,Vte,t8,u$);fIt(378,22,{3:1,35:1,22:1,378:1},BS);var aye,rye,oye,sye,cye=$nt(j1t,"LongEdgeOrderingStrategy",378,Vte,x1,d$);fIt(197,22,{3:1,35:1,22:1,197:1},PS);var lye,uye,dye,hye,fye,gye=$nt(j1t,"NodeFlexibility",197,Vte,v4,h$);fIt(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},FS),kGt.Kf=function(){return NIt(this)},kGt.Xf=function(){return NIt(this)};var pye,bye,mye,yye,vye,wye,xye=$nt(j1t,"NodePlacementStrategy",315,Vte,D6,y$);fIt(260,22,{3:1,35:1,22:1,260:1},$S);var Rye,_ye,kye,Eye,Cye,Sye,Tye,Aye,Dye,Iye=$nt(j1t,"NodePromotionStrategy",260,Vte,$et,g$);fIt(339,22,{3:1,35:1,22:1,339:1},zS);var Lye,Oye,Mye,Nye,Bye=$nt(j1t,"OrderingStrategy",339,Vte,A1,p$);fIt(421,22,{3:1,35:1,22:1,421:1},HS);var Pye,Fye,jye,$ye=$nt(j1t,"PortSortingStrategy",421,Vte,VX,b$);fIt(452,22,{3:1,35:1,22:1,452:1},US);var zye,Hye,Uye,Vye,qye=$nt(j1t,"PortType",452,Vte,T1,f$);fIt(375,22,{3:1,35:1,22:1,375:1},VS);var Wye,Yye,Gye,Zye,Kye=$nt(j1t,"SelfLoopDistributionStrategy",375,Vte,D1,m$);fIt(376,22,{3:1,35:1,22:1,376:1},qS);var Xye,Jye,Qye,tve=$nt(j1t,"SelfLoopOrderingStrategy",376,Vte,jX,v$);fIt(304,1,{304:1},cVt),bY(j1t,"Spacings",304),fIt(336,22,{3:1,35:1,22:1,336:1},WS);var eve,nve,ive,ave,rve=$nt(j1t,"SplineRoutingMode",336,Vte,L1,w$);fIt(338,22,{3:1,35:1,22:1,338:1},YS);var ove,sve,cve,lve,uve=$nt(j1t,"ValidifyStrategy",338,Vte,O1,x$);fIt(377,22,{3:1,35:1,22:1,377:1},GS);var dve,hve,fve,gve,pve,bve,mve,yve,vve,wve,xve,Rve,_ve,kve=$nt(j1t,"WrappingStrategy",377,Vte,I1,R$);fIt(1383,1,R4t,dd),kGt.Yf=function(t){return jz(t,37),pve},kGt.pf=function(t,e){XHt(this,jz(t,37),e)},bY(_4t,"DepthFirstCycleBreaker",1383),fIt(782,1,R4t,BV),kGt.Yf=function(t){return jz(t,37),bve},kGt.pf=function(t,e){qYt(this,jz(t,37),e)},kGt.Zf=function(t){return jz(OU(t,byt(this.d,t.c.length)),10)},bY(_4t,"GreedyCycleBreaker",782),fIt(1386,782,R4t,RA),kGt.Zf=function(t){var e,n,i,a;for(a=null,e=NGt,i=new Wf(t);i.a<i.c.c.length;)IN(n=jz(J1(i),10),(lGt(),hhe))&&jz(yEt(n,hhe),19).a<e&&(e=jz(yEt(n,hhe),19).a,a=n);return a||jz(OU(t,byt(this.d,t.c.length)),10)},bY(_4t,"GreedyModelOrderCycleBreaker",1386),fIt(1384,1,R4t,ed),kGt.Yf=function(t){return jz(t,37),mve},kGt.pf=function(t,e){TUt(this,jz(t,37),e)},bY(_4t,"InteractiveCycleBreaker",1384),fIt(1385,1,R4t,nd),kGt.Yf=function(t){return jz(t,37),yve},kGt.pf=function(t,e){LUt(this,jz(t,37),e)},kGt.a=0,kGt.b=0,bY(_4t,"ModelOrderCycleBreaker",1385),fIt(1389,1,R4t,DE),kGt.Yf=function(t){return jz(t,37),vve},kGt.pf=function(t,e){XYt(this,jz(t,37),e)},bY(k4t,"CoffmanGrahamLayerer",1389),fIt(1390,1,kXt,Mp),kGt.ue=function(t,e){return $At(this.a,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(k4t,"CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type",1390),fIt(1391,1,kXt,Np),kGt.ue=function(t,e){return UV(this.a,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(k4t,"CoffmanGrahamLayerer/lambda$1$Type",1391),fIt(1392,1,R4t,Ar),kGt.Yf=function(t){return jz(t,37),fU(fU(fU(new j2,(vEt(),Boe),(dGt(),wce)),Poe,Ace),Foe,Tce)},kGt.pf=function(t,e){RWt(this,jz(t,37),e)},bY(k4t,"InteractiveLayerer",1392),fIt(569,1,{569:1},ev),kGt.a=0,kGt.c=0,bY(k4t,"InteractiveLayerer/LayerSpan",569),fIt(1388,1,R4t,td),kGt.Yf=function(t){return jz(t,37),wve},kGt.pf=function(t,e){HNt(this,jz(t,37),e)},bY(k4t,"LongestPathLayerer",1388),fIt(1395,1,R4t,od),kGt.Yf=function(t){return jz(t,37),fU(fU(fU(new j2,(vEt(),Boe),(dGt(),ace)),Poe,Ace),Foe,Tce)},kGt.pf=function(t,e){nYt(this,jz(t,37),e)},kGt.a=0,kGt.b=0,kGt.d=0,bY(k4t,"MinWidthLayerer",1395),fIt(1396,1,kXt,Bp),kGt.ue=function(t,e){return got(this,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(k4t,"MinWidthLayerer/MinOutgoingEdgesComparator",1396),fIt(1387,1,R4t,rd),kGt.Yf=function(t){return jz(t,37),_ve},kGt.pf=function(t,e){yVt(this,jz(t,37),e)},bY(k4t,"NetworkSimplexLayerer",1387),fIt(1393,1,R4t,NP),kGt.Yf=function(t){return jz(t,37),fU(fU(fU(new j2,(vEt(),Boe),(dGt(),ace)),Poe,Ace),Foe,Tce)},kGt.pf=function(t,e){Iqt(this,jz(t,37),e)},kGt.d=0,kGt.f=0,kGt.g=0,kGt.i=0,kGt.s=0,kGt.t=0,kGt.u=0,bY(k4t,"StretchWidthLayerer",1393),fIt(1394,1,kXt,Dr),kGt.ue=function(t,e){return N7(jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(k4t,"StretchWidthLayerer/1",1394),fIt(402,1,E4t),kGt.Nf=function(t,e,n,i,a,r){},kGt._f=function(t,e,n){return ijt(this,t,e,n)},kGt.Mf=function(){this.g=O5(OMe,C4t,25,this.d,15,1),this.f=O5(OMe,C4t,25,this.d,15,1)},kGt.Of=function(t,e){this.e[t]=O5(TMe,lKt,25,e[t].length,15,1)},kGt.Pf=function(t,e,n){n[t][e].p=e,this.e[t][e]=e},kGt.Qf=function(t,e,n,i){jz(OU(i[t][e].j,n),11).p=this.d++},kGt.b=0,kGt.c=0,kGt.d=0,bY(S4t,"AbstractBarycenterPortDistributor",402),fIt(1633,1,kXt,Pp),kGt.ue=function(t,e){return Hbt(this.a,jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(S4t,"AbstractBarycenterPortDistributor/lambda$0$Type",1633),fIt(817,1,O1t,H2),kGt.Nf=function(t,e,n,i,a,r){},kGt.Pf=function(t,e,n){},kGt.Qf=function(t,e,n,i){},kGt.Lf=function(){return!1},kGt.Mf=function(){this.c=this.e.a,this.g=this.f.g},kGt.Of=function(t,e){e[t][0].c.p=t},kGt.Rf=function(){return!1},kGt.ag=function(t,e,n,i){n?cRt(this,t):(NRt(this,t,i),JVt(this,t,e)),t.c.length>1&&(zw(RB(yEt(bG((u1(0,t.c.length),jz(t.c[0],10))),(zYt(),Ope))))?BLt(t,this.d,jz(this,660)):(kK(),mL(t,this.d)),$ot(this.e,t))},kGt.Sf=function(t,e,n,i){var a,r,o,s,c,l,u;for(e!=KU(n,t.length)&&(r=t[e-(n?1:-1)],H7(this.f,r,n?(rit(),Hye):(rit(),zye))),a=t[e][0],u=!i||a.k==(oCt(),kse),l=r7(t[e]),this.ag(l,u,!1,n),o=0,c=new Wf(l);c.a<c.c.c.length;)s=jz(J1(c),10),t[e][o++]=s;return!1},kGt.Tf=function(t,e){var n,i,a,r,o;for(r=r7(t[o=KU(e,t.length)]),this.ag(r,!1,!0,e),n=0,a=new Wf(r);a.a<a.c.c.length;)i=jz(J1(a),10),t[o][n++]=i;return!1},bY(S4t,"BarycenterHeuristic",817),fIt(658,1,{658:1},jp),kGt.Ib=function(){return"BarycenterState [node="+this.c+", summedWeight="+this.d+", degree="+this.b+", barycenter="+this.a+", visited="+this.e+"]"},kGt.b=0,kGt.d=0,kGt.e=!1;var Eve=bY(S4t,"BarycenterHeuristic/BarycenterState",658);fIt(1802,1,kXt,Fp),kGt.ue=function(t,e){return k_t(this.a,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(S4t,"BarycenterHeuristic/lambda$0$Type",1802),fIt(816,1,O1t,q_t),kGt.Mf=function(){},kGt.Nf=function(t,e,n,i,a,r){},kGt.Qf=function(t,e,n,i){},kGt.Of=function(t,e){this.a[t]=O5(Eve,{3:1,4:1,5:1,2018:1},658,e[t].length,0,1),this.b[t]=O5(Tve,{3:1,4:1,5:1,2019:1},233,e[t].length,0,1)},kGt.Pf=function(t,e,n){Nbt(this,n[t][e],!0)},kGt.c=!1,bY(S4t,"ForsterConstraintResolver",816),fIt(233,1,{233:1},MX,oVt),kGt.Ib=function(){var t,e;for((e=new Cx).a+="[",t=0;t<this.d.length;t++)oD(e,Imt(this.d[t])),null!=uO(this.g,this.d[0]).a&&oD(oD((e.a+="<",e),XA(uO(this.g,this.d[0]).a)),">"),t<this.d.length-1&&(e.a+=jGt);return(e.a+="]",e).a},kGt.a=0,kGt.c=0,kGt.f=0;var Cve,Sve,Tve=bY(S4t,"ForsterConstraintResolver/ConstraintGroup",233);fIt(1797,1,dZt,zp),kGt.td=function(t){Nbt(this.a,jz(t,10),!1)},bY(S4t,"ForsterConstraintResolver/lambda$0$Type",1797),fIt(214,1,{214:1,225:1},SVt),kGt.Nf=function(t,e,n,i,a,r){},kGt.Of=function(t,e){},kGt.Mf=function(){this.r=O5(TMe,lKt,25,this.n,15,1)},kGt.Pf=function(t,e,n){var i;(i=n[t][e].e)&&Wz(this.b,i)},kGt.Qf=function(t,e,n,i){++this.n},kGt.Ib=function(){return nqt(this.e,new Ny)},kGt.g=!1,kGt.i=!1,kGt.n=0,kGt.s=!1,bY(S4t,"GraphInfoHolder",214),fIt(1832,1,O1t,Sr),kGt.Nf=function(t,e,n,i,a,r){},kGt.Of=function(t,e){},kGt.Qf=function(t,e,n,i){},kGt._f=function(t,e,n){return n&&e>0?rQ(this.a,t[e-1],t[e]):!n&&e<t.length-1?rQ(this.a,t[e],t[e+1]):vat(this.a,t[e],n?(wWt(),SAe):(wWt(),sAe)),hOt(this,t,e,n)},kGt.Mf=function(){this.d=O5(TMe,lKt,25,this.c,15,1),this.a=new GF(this.d)},kGt.Pf=function(t,e,n){var i;i=n[t][e],this.c+=i.j.c.length},kGt.c=0,bY(S4t,"GreedyPortDistributor",1832),fIt(1401,1,R4t,hd),kGt.Yf=function(t){return Wut(jz(t,37))},kGt.pf=function(t,e){WVt(jz(t,37),e)},bY(S4t,"InteractiveCrossingMinimizer",1401),fIt(1402,1,kXt,Hp),kGt.ue=function(t,e){return zRt(this,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(S4t,"InteractiveCrossingMinimizer/1",1402),fIt(507,1,{507:1,123:1,51:1},Lw),kGt.Yf=function(t){var e;return jz(t,37),fU(e=vI(Sve),(vEt(),Foe),(dGt(),$ce)),e},kGt.pf=function(t,e){Cjt(this,jz(t,37),e)},kGt.e=0,bY(S4t,"LayerSweepCrossingMinimizer",507),fIt(1398,1,dZt,Up),kGt.td=function(t){fzt(this.a,jz(t,214))},bY(S4t,"LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type",1398),fIt(1399,1,dZt,Vp),kGt.td=function(t){Aut(this.a,jz(t,214))},bY(S4t,"LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type",1399),fIt(1400,1,dZt,qp),kGt.td=function(t){b$t(this.a,jz(t,214))},bY(S4t,"LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type",1400),fIt(454,22,{3:1,35:1,22:1,454:1},ZS);var Ave,Dve,Ive,Lve,Ove=$nt(S4t,"LayerSweepCrossingMinimizer/CrossMinType",454,Vte,M1,_$);fIt(1397,1,NZt,Ir),kGt.Mb=function(t){return Frt(),0==jz(t,29).a.c.length},bY(S4t,"LayerSweepCrossingMinimizer/lambda$0$Type",1397),fIt(1799,1,O1t,aQ),kGt.Mf=function(){},kGt.Nf=function(t,e,n,i,a,r){},kGt.Qf=function(t,e,n,i){},kGt.Of=function(t,e){e[t][0].c.p=t,this.b[t]=O5(Pve,{3:1,4:1,5:1,1944:1},659,e[t].length,0,1)},kGt.Pf=function(t,e,n){n[t][e].p=e,DY(this.b[t],e,new Lr)},bY(S4t,"LayerSweepTypeDecider",1799),fIt(659,1,{659:1},Lr),kGt.Ib=function(){return"NodeInfo [connectedEdges="+this.a+", hierarchicalInfluence="+this.b+", randomInfluence="+this.c+"]"},kGt.a=0,kGt.b=0,kGt.c=0;var Mve,Nve,Bve,Pve=bY(S4t,"LayerSweepTypeDecider/NodeInfo",659);fIt(1800,1,HXt,Or),kGt.Lb=function(t){return UM(new m7(jz(t,11).b))},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return UM(new m7(jz(t,11).b))},bY(S4t,"LayerSweepTypeDecider/lambda$0$Type",1800),fIt(1801,1,HXt,Mr),kGt.Lb=function(t){return UM(new m7(jz(t,11).b))},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return UM(new m7(jz(t,11).b))},bY(S4t,"LayerSweepTypeDecider/lambda$1$Type",1801),fIt(1833,402,E4t,MR),kGt.$f=function(t,e,n){var i,a,r,o,s,c,l,u,d;switch(l=this.g,n.g){case 1:for(i=0,a=0,c=new Wf(t.j);c.a<c.c.c.length;)0!=(o=jz(J1(c),11)).e.c.length&&(++i,o.j==(wWt(),cAe)&&++a);for(r=e+a,d=e+i,s=Mgt(t,(rit(),zye)).Kc();s.Ob();)(o=jz(s.Pb(),11)).j==(wWt(),cAe)?(l[o.p]=r,--r):(l[o.p]=d,--d);return i;case 2:for(u=0,s=Mgt(t,(rit(),Hye)).Kc();s.Ob();)++u,l[(o=jz(s.Pb(),11)).p]=e+u;return u;default:throw $m(new hy)}},bY(S4t,"LayerTotalPortDistributor",1833),fIt(660,817,{660:1,225:1},bat),kGt.ag=function(t,e,n,i){n?cRt(this,t):(NRt(this,t,i),JVt(this,t,e)),t.c.length>1&&(zw(RB(yEt(bG((u1(0,t.c.length),jz(t.c[0],10))),(zYt(),Ope))))?BLt(t,this.d,this):(kK(),mL(t,this.d)),zw(RB(yEt(bG((u1(0,t.c.length),jz(t.c[0],10))),Ope)))||$ot(this.e,t))},bY(S4t,"ModelOrderBarycenterHeuristic",660),fIt(1803,1,kXt,Wp),kGt.ue=function(t,e){return PCt(this.a,jz(t,10),jz(e,10))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(S4t,"ModelOrderBarycenterHeuristic/lambda$0$Type",1803),fIt(1403,1,R4t,vd),kGt.Yf=function(t){var e;return jz(t,37),fU(e=vI(Mve),(vEt(),Foe),(dGt(),$ce)),e},kGt.pf=function(t,e){mX((jz(t,37),e))},bY(S4t,"NoCrossingMinimizer",1403),fIt(796,402,E4t,NR),kGt.$f=function(t,e,n){var i,a,r,o,s,c,l,u,d,h,f;switch(d=this.g,n.g){case 1:for(a=0,r=0,u=new Wf(t.j);u.a<u.c.c.length;)0!=(c=jz(J1(u),11)).e.c.length&&(++a,c.j==(wWt(),cAe)&&++r);for(o=e+r*(i=1/(a+1)),f=e+1-i,l=Mgt(t,(rit(),zye)).Kc();l.Ob();)(c=jz(l.Pb(),11)).j==(wWt(),cAe)?(d[c.p]=o,o-=i):(d[c.p]=f,f-=i);break;case 2:for(s=0,u=new Wf(t.j);u.a<u.c.c.length;)0==(c=jz(J1(u),11)).g.c.length||++s;for(h=e+(i=1/(s+1)),l=Mgt(t,(rit(),Hye)).Kc();l.Ob();)d[(c=jz(l.Pb(),11)).p]=h,h+=i;break;default:throw $m(new Pw("Port type is undefined"))}return 1},bY(S4t,"NodeRelativePortDistributor",796),fIt(807,1,{},Yq,zEt),bY(S4t,"SweepCopy",807),fIt(1798,1,O1t,fpt),kGt.Of=function(t,e){},kGt.Mf=function(){var t;t=O5(TMe,lKt,25,this.f,15,1),this.d=new tb(t),this.a=new GF(t)},kGt.Nf=function(t,e,n,i,a,r){var o;o=jz(OU(r[t][e].j,n),11),a.c==o&&a.c.i.c==a.d.i.c&&++this.e[t]},kGt.Pf=function(t,e,n){var i;i=n[t][e],this.c[t]=this.c[t]|i.k==(oCt(),Tse)},kGt.Qf=function(t,e,n,i){var a;(a=jz(OU(i[t][e].j,n),11)).p=this.f++,a.g.c.length+a.e.c.length>1&&(a.j==(wWt(),sAe)?this.b[t]=!0:a.j==SAe&&t>0&&(this.b[t-1]=!0))},kGt.f=0,bY(L1t,"AllCrossingsCounter",1798),fIt(587,1,{},yat),kGt.b=0,kGt.d=0,bY(L1t,"BinaryIndexedTree",587),fIt(524,1,{},GF),bY(L1t,"CrossingsCounter",524),fIt(1906,1,kXt,Yp),kGt.ue=function(t,e){return qU(this.a,jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(L1t,"CrossingsCounter/lambda$0$Type",1906),fIt(1907,1,kXt,Gp),kGt.ue=function(t,e){return WU(this.a,jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(L1t,"CrossingsCounter/lambda$1$Type",1907),fIt(1908,1,kXt,Zp),kGt.ue=function(t,e){return YU(this.a,jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(L1t,"CrossingsCounter/lambda$2$Type",1908),fIt(1909,1,kXt,Kp),kGt.ue=function(t,e){return GU(this.a,jz(t,11),jz(e,11))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(L1t,"CrossingsCounter/lambda$3$Type",1909),fIt(1910,1,dZt,Xp),kGt.td=function(t){p9(this.a,jz(t,11))},bY(L1t,"CrossingsCounter/lambda$4$Type",1910),fIt(1911,1,NZt,Jp),kGt.Mb=function(t){return yA(this.a,jz(t,11))},bY(L1t,"CrossingsCounter/lambda$5$Type",1911),fIt(1912,1,dZt,Qp),kGt.td=function(t){mA(this,t)},bY(L1t,"CrossingsCounter/lambda$6$Type",1912),fIt(1913,1,dZt,XS),kGt.td=function(t){var e;cH(),f4(this.b,(e=this.a,jz(t,11),e))},bY(L1t,"CrossingsCounter/lambda$7$Type",1913),fIt(826,1,HXt,Nr),kGt.Lb=function(t){return cH(),IN(jz(t,11),(lGt(),xhe))},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return cH(),IN(jz(t,11),(lGt(),xhe))},bY(L1t,"CrossingsCounter/lambda$8$Type",826),fIt(1905,1,{},tb),bY(L1t,"HyperedgeCrossingsCounter",1905),fIt(467,1,{35:1,467:1},MP),kGt.wd=function(t){return mbt(this,jz(t,467))},kGt.b=0,kGt.c=0,kGt.e=0,kGt.f=0;var Fve=bY(L1t,"HyperedgeCrossingsCounter/Hyperedge",467);fIt(362,1,{35:1,362:1},zZ),kGt.wd=function(t){return dLt(this,jz(t,362))},kGt.b=0,kGt.c=0;var jve=bY(L1t,"HyperedgeCrossingsCounter/HyperedgeCorner",362);fIt(523,22,{3:1,35:1,22:1,523:1},KS);var $ve,zve,Hve,Uve,Vve,qve,Wve,Yve=$nt(L1t,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",523,Vte,qX,k$);fIt(1405,1,R4t,ld),kGt.Yf=function(t){return jz(yEt(jz(t,37),(lGt(),Xde)),21).Hc((hBt(),dde))?Uve:null},kGt.pf=function(t,e){dRt(this,jz(t,37),e)},bY(T4t,"InteractiveNodePlacer",1405),fIt(1406,1,R4t,cd),kGt.Yf=function(t){return jz(yEt(jz(t,37),(lGt(),Xde)),21).Hc((hBt(),dde))?Vve:null},kGt.pf=function(t,e){xvt(this,jz(t,37),e)},bY(T4t,"LinearSegmentsNodePlacer",1406),fIt(257,1,{35:1,257:1},nv),kGt.wd=function(t){return rR(this,jz(t,257))},kGt.Fb=function(t){var e;return!!iO(t,257)&&(e=jz(t,257),this.b==e.b)},kGt.Hb=function(){return this.b},kGt.Ib=function(){return"ls"+LEt(this.e)},kGt.a=0,kGt.b=0,kGt.c=-1,kGt.d=-1,kGt.g=0;var Gve,Zve=bY(T4t,"LinearSegmentsNodePlacer/LinearSegment",257);fIt(1408,1,R4t,PV),kGt.Yf=function(t){return jz(yEt(jz(t,37),(lGt(),Xde)),21).Hc((hBt(),dde))?Gve:null},kGt.pf=function(t,e){EYt(this,jz(t,37),e)},kGt.b=0,kGt.g=0,bY(T4t,"NetworkSimplexPlacer",1408),fIt(1427,1,kXt,Br),kGt.ue=function(t,e){return xL(jz(t,19).a,jz(e,19).a)},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(T4t,"NetworkSimplexPlacer/0methodref$compare$Type",1427),fIt(1429,1,kXt,Pr),kGt.ue=function(t,e){return xL(jz(t,19).a,jz(e,19).a)},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(T4t,"NetworkSimplexPlacer/1methodref$compare$Type",1429),fIt(649,1,{649:1},JS);var Kve=bY(T4t,"NetworkSimplexPlacer/EdgeRep",649);fIt(401,1,{401:1},HZ),kGt.b=!1;var Xve,Jve=bY(T4t,"NetworkSimplexPlacer/NodeRep",401);fIt(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},rv),bY(T4t,"NetworkSimplexPlacer/Path",508),fIt(1409,1,{},Fr),kGt.Kb=function(t){return jz(t,17).d.i.k},bY(T4t,"NetworkSimplexPlacer/Path/lambda$0$Type",1409),fIt(1410,1,NZt,jr),kGt.Mb=function(t){return jz(t,267)==(oCt(),Cse)},bY(T4t,"NetworkSimplexPlacer/Path/lambda$1$Type",1410),fIt(1411,1,{},$r),kGt.Kb=function(t){return jz(t,17).d.i},bY(T4t,"NetworkSimplexPlacer/Path/lambda$2$Type",1411),fIt(1412,1,NZt,eb),kGt.Mb=function(t){return $B(tpt(jz(t,10)))},bY(T4t,"NetworkSimplexPlacer/Path/lambda$3$Type",1412),fIt(1413,1,NZt,zr),kGt.Mb=function(t){return cU(jz(t,11))},bY(T4t,"NetworkSimplexPlacer/lambda$0$Type",1413),fIt(1414,1,dZt,QS),kGt.td=function(t){ML(this.a,this.b,jz(t,11))},bY(T4t,"NetworkSimplexPlacer/lambda$1$Type",1414),fIt(1423,1,dZt,nb),kGt.td=function(t){YTt(this.a,jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$10$Type",1423),fIt(1424,1,{},Hr),kGt.Kb=function(t){return jQ(),new NU(null,new h1(jz(t,29).a,16))},bY(T4t,"NetworkSimplexPlacer/lambda$11$Type",1424),fIt(1425,1,dZt,ib),kGt.td=function(t){$Bt(this.a,jz(t,10))},bY(T4t,"NetworkSimplexPlacer/lambda$12$Type",1425),fIt(1426,1,{},Ur),kGt.Kb=function(t){return jQ(),nht(jz(t,121).e)},bY(T4t,"NetworkSimplexPlacer/lambda$13$Type",1426),fIt(1428,1,{},Vr),kGt.Kb=function(t){return jQ(),nht(jz(t,121).e)},bY(T4t,"NetworkSimplexPlacer/lambda$15$Type",1428),fIt(1430,1,NZt,qr),kGt.Mb=function(t){return jQ(),jz(t,401).c.k==(oCt(),Sse)},bY(T4t,"NetworkSimplexPlacer/lambda$17$Type",1430),fIt(1431,1,NZt,Wr),kGt.Mb=function(t){return jQ(),jz(t,401).c.j.c.length>1},bY(T4t,"NetworkSimplexPlacer/lambda$18$Type",1431),fIt(1432,1,dZt,UZ),kGt.td=function(t){agt(this.c,this.b,this.d,this.a,jz(t,401))},kGt.c=0,kGt.d=0,bY(T4t,"NetworkSimplexPlacer/lambda$19$Type",1432),fIt(1415,1,{},Yr),kGt.Kb=function(t){return jQ(),new NU(null,new h1(jz(t,29).a,16))},bY(T4t,"NetworkSimplexPlacer/lambda$2$Type",1415),fIt(1433,1,dZt,ab),kGt.td=function(t){LL(this.a,jz(t,11))},kGt.a=0,bY(T4t,"NetworkSimplexPlacer/lambda$20$Type",1433),fIt(1434,1,{},Gr),kGt.Kb=function(t){return jQ(),new NU(null,new h1(jz(t,29).a,16))},bY(T4t,"NetworkSimplexPlacer/lambda$21$Type",1434),fIt(1435,1,dZt,rb),kGt.td=function(t){fO(this.a,jz(t,10))},bY(T4t,"NetworkSimplexPlacer/lambda$22$Type",1435),fIt(1436,1,NZt,Zr),kGt.Mb=function(t){return $B(t)},bY(T4t,"NetworkSimplexPlacer/lambda$23$Type",1436),fIt(1437,1,{},Kr),kGt.Kb=function(t){return jQ(),new NU(null,new h1(jz(t,29).a,16))},bY(T4t,"NetworkSimplexPlacer/lambda$24$Type",1437),fIt(1438,1,NZt,ob),kGt.Mb=function(t){return xD(this.a,jz(t,10))},bY(T4t,"NetworkSimplexPlacer/lambda$25$Type",1438),fIt(1439,1,dZt,tT),kGt.td=function(t){kSt(this.a,this.b,jz(t,10))},bY(T4t,"NetworkSimplexPlacer/lambda$26$Type",1439),fIt(1440,1,NZt,Xr),kGt.Mb=function(t){return jQ(),!d6(jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$27$Type",1440),fIt(1441,1,NZt,Jr),kGt.Mb=function(t){return jQ(),!d6(jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$28$Type",1441),fIt(1442,1,{},sb),kGt.Ce=function(t,e){return sO(this.a,jz(t,29),jz(e,29))},bY(T4t,"NetworkSimplexPlacer/lambda$29$Type",1442),fIt(1416,1,{},Qr),kGt.Kb=function(t){return jQ(),new NU(null,new UW(new oq(XO(dft(jz(t,10)).a.Kc(),new u))))},bY(T4t,"NetworkSimplexPlacer/lambda$3$Type",1416),fIt(1417,1,NZt,to),kGt.Mb=function(t){return jQ(),Q0(jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$4$Type",1417),fIt(1418,1,dZt,cb),kGt.td=function(t){nzt(this.a,jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$5$Type",1418),fIt(1419,1,{},eo),kGt.Kb=function(t){return jQ(),new NU(null,new h1(jz(t,29).a,16))},bY(T4t,"NetworkSimplexPlacer/lambda$6$Type",1419),fIt(1420,1,NZt,no),kGt.Mb=function(t){return jQ(),jz(t,10).k==(oCt(),Sse)},bY(T4t,"NetworkSimplexPlacer/lambda$7$Type",1420),fIt(1421,1,{},io),kGt.Kb=function(t){return jQ(),new NU(null,new UW(new oq(XO(lft(jz(t,10)).a.Kc(),new u))))},bY(T4t,"NetworkSimplexPlacer/lambda$8$Type",1421),fIt(1422,1,NZt,ao),kGt.Mb=function(t){return jQ(),VH(jz(t,17))},bY(T4t,"NetworkSimplexPlacer/lambda$9$Type",1422),fIt(1404,1,R4t,Ed),kGt.Yf=function(t){return jz(yEt(jz(t,37),(lGt(),Xde)),21).Hc((hBt(),dde))?Xve:null},kGt.pf=function(t,e){wHt(jz(t,37),e)},bY(T4t,"SimpleNodePlacer",1404),fIt(180,1,{180:1},HFt),kGt.Ib=function(){var t;return t="",this.c==(gJ(),twe)?t+=rJt:this.c==Qve&&(t+=aJt),this.o==(oQ(),iwe)?t+=bJt:this.o==awe?t+="UP":t+="BALANCED",t},bY(I4t,"BKAlignedLayout",180),fIt(516,22,{3:1,35:1,22:1,516:1},iT);var Qve,twe,ewe,nwe=$nt(I4t,"BKAlignedLayout/HDirection",516,Vte,YX,E$);fIt(515,22,{3:1,35:1,22:1,515:1},nT);var iwe,awe,rwe,owe,swe,cwe,lwe,uwe,dwe,hwe,fwe,gwe,pwe,bwe,mwe,ywe,vwe,wwe,xwe,Rwe=$nt(I4t,"BKAlignedLayout/VDirection",515,Vte,GX,C$);fIt(1634,1,{},eT),bY(I4t,"BKAligner",1634),fIt(1637,1,{},Xwt),bY(I4t,"BKCompactor",1637),fIt(654,1,{654:1},ro),kGt.a=0,bY(I4t,"BKCompactor/ClassEdge",654),fIt(458,1,{458:1},iv),kGt.a=null,kGt.b=0,bY(I4t,"BKCompactor/ClassNode",458),fIt(1407,1,R4t,wA),kGt.Yf=function(t){return jz(yEt(jz(t,37),(lGt(),Xde)),21).Hc((hBt(),dde))?owe:null},kGt.pf=function(t,e){iGt(this,jz(t,37),e)},kGt.d=!1,bY(I4t,"BKNodePlacer",1407),fIt(1635,1,{},oo),kGt.d=0,bY(I4t,"NeighborhoodInformation",1635),fIt(1636,1,kXt,lb),kGt.ue=function(t,e){return ket(this,jz(t,46),jz(e,46))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(I4t,"NeighborhoodInformation/NeighborComparator",1636),fIt(808,1,{}),bY(I4t,"ThresholdStrategy",808),fIt(1763,808,{},fv),kGt.bg=function(t,e,n){return this.a.o==(oQ(),awe)?BKt:PKt},kGt.cg=function(){},bY(I4t,"ThresholdStrategy/NullThresholdStrategy",1763),fIt(579,1,{579:1},aT),kGt.c=!1,kGt.d=!1,bY(I4t,"ThresholdStrategy/Postprocessable",579),fIt(1764,808,{},gv),kGt.bg=function(t,e,n){var i,a,r;return a=e==n,i=this.a.a[n.p]==e,a||i?(r=t,this.a.c,gJ(),a&&(r=_Ht(this,e,!0)),!isNaN(r)&&!isFinite(r)&&i&&(r=_Ht(this,n,!1)),r):t},kGt.cg=function(){for(var t,e,n;0!=this.d.b;)(e=a$t(this,n=jz(EJ(this.d),579))).a&&(t=e.a,(zw(this.a.f[this.a.g[n.b.p].p])||d6(t)||t.c.i.c!=t.d.i.c)&&(hLt(this,n)||nI(this.e,n)));for(;0!=this.e.a.c.length;)hLt(this,jz(tut(this.e),579))},bY(I4t,"ThresholdStrategy/SimpleThresholdStrategy",1764),fIt(635,1,{635:1,246:1,234:1},so),kGt.Kf=function(){return _ot(this)},kGt.Xf=function(){return _ot(this)},bY(L4t,"EdgeRouterFactory",635),fIt(1458,1,R4t,Cd),kGt.Yf=function(t){return qNt(jz(t,37))},kGt.pf=function(t,e){NHt(jz(t,37),e)},bY(L4t,"OrthogonalEdgeRouter",1458),fIt(1451,1,R4t,xA),kGt.Yf=function(t){return RRt(jz(t,37))},kGt.pf=function(t,e){AWt(this,jz(t,37),e)},bY(L4t,"PolylineEdgeRouter",1451),fIt(1452,1,HXt,co),kGt.Lb=function(t){return Zot(jz(t,10))},kGt.Fb=function(t){return this===t},kGt.Mb=function(t){return Zot(jz(t,10))},bY(L4t,"PolylineEdgeRouter/1",1452),fIt(1809,1,NZt,lo),kGt.Mb=function(t){return jz(t,129).c==(T7(),_we)},bY(O4t,"HyperEdgeCycleDetector/lambda$0$Type",1809),fIt(1810,1,{},uo),kGt.Ge=function(t){return jz(t,129).d},bY(O4t,"HyperEdgeCycleDetector/lambda$1$Type",1810),fIt(1811,1,NZt,ho),kGt.Mb=function(t){return jz(t,129).c==(T7(),_we)},bY(O4t,"HyperEdgeCycleDetector/lambda$2$Type",1811),fIt(1812,1,{},fo),kGt.Ge=function(t){return jz(t,129).d},bY(O4t,"HyperEdgeCycleDetector/lambda$3$Type",1812),fIt(1813,1,{},go),kGt.Ge=function(t){return jz(t,129).d},bY(O4t,"HyperEdgeCycleDetector/lambda$4$Type",1813),fIt(1814,1,{},po),kGt.Ge=function(t){return jz(t,129).d},bY(O4t,"HyperEdgeCycleDetector/lambda$5$Type",1814),fIt(112,1,{35:1,112:1},jot),kGt.wd=function(t){return oR(this,jz(t,112))},kGt.Fb=function(t){var e;return!!iO(t,112)&&(e=jz(t,112),this.g==e.g)},kGt.Hb=function(){return this.g},kGt.Ib=function(){var t,e,n,i;for(t=new uM("{"),i=new Wf(this.n);i.a<i.c.c.length;)null==(e=pwt((n=jz(J1(i),11)).i))&&(e="n"+AF(n.i)),t.a+=""+e,i.a<i.c.c.length&&(t.a+=",");return t.a+="}",t.a},kGt.a=0,kGt.b=0,kGt.c=NaN,kGt.d=0,kGt.g=0,kGt.i=0,kGt.o=0,kGt.s=NaN,bY(O4t,"HyperEdgeSegment",112),fIt(129,1,{129:1},UQ),kGt.Ib=function(){return this.a+"->"+this.b+" ("+hN(this.c)+")"},kGt.d=0,bY(O4t,"HyperEdgeSegmentDependency",129),fIt(520,22,{3:1,35:1,22:1,520:1},rT);var _we,kwe,Ewe,Cwe,Swe,Twe,Awe,Dwe,Iwe=$nt(O4t,"HyperEdgeSegmentDependency/DependencyType",520,Vte,WX,S$);fIt(1815,1,{},ub),bY(O4t,"HyperEdgeSegmentSplitter",1815),fIt(1816,1,{},UR),kGt.a=0,kGt.b=0,bY(O4t,"HyperEdgeSegmentSplitter/AreaRating",1816),fIt(329,1,{329:1},vz),kGt.a=0,kGt.b=0,kGt.c=0,bY(O4t,"HyperEdgeSegmentSplitter/FreeArea",329),fIt(1817,1,kXt,_o),kGt.ue=function(t,e){return TF(jz(t,112),jz(e,112))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(O4t,"HyperEdgeSegmentSplitter/lambda$0$Type",1817),fIt(1818,1,dZt,qZ),kGt.td=function(t){J4(this.a,this.d,this.c,this.b,jz(t,112))},kGt.b=0,bY(O4t,"HyperEdgeSegmentSplitter/lambda$1$Type",1818),fIt(1819,1,{},ko),kGt.Kb=function(t){return new NU(null,new h1(jz(t,112).e,16))},bY(O4t,"HyperEdgeSegmentSplitter/lambda$2$Type",1819),fIt(1820,1,{},Eo),kGt.Kb=function(t){return new NU(null,new h1(jz(t,112).j,16))},bY(O4t,"HyperEdgeSegmentSplitter/lambda$3$Type",1820),fIt(1821,1,{},Co),kGt.Fe=function(t){return Hw(_B(t))},bY(O4t,"HyperEdgeSegmentSplitter/lambda$4$Type",1821),fIt(655,1,{},lY),kGt.a=0,kGt.b=0,kGt.c=0,bY(O4t,"OrthogonalRoutingGenerator",655),fIt(1638,1,{},So),kGt.Kb=function(t){return new NU(null,new h1(jz(t,112).e,16))},bY(O4t,"OrthogonalRoutingGenerator/lambda$0$Type",1638),fIt(1639,1,{},To),kGt.Kb=function(t){return new NU(null,new h1(jz(t,112).j,16))},bY(O4t,"OrthogonalRoutingGenerator/lambda$1$Type",1639),fIt(661,1,{}),bY(M4t,"BaseRoutingDirectionStrategy",661),fIt(1807,661,{},pv),kGt.dg=function(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(!t.r||t.q)for(d=e+t.o*n,u=new Wf(t.n);u.a<u.c.c.length;)for(l=jz(J1(u),11),h=Dct(Cst(Hx(EEe,1),cZt,8,0,[l.i.n,l.n,l.a])).a,c=new Wf(l.g);c.a<c.c.c.length;)d6(s=jz(J1(c),17))||(p=s.d,b=Dct(Cst(Hx(EEe,1),cZt,8,0,[p.i.n,p.n,p.a])).a,i.Math.abs(h-b)>dQt&&(r=t,a=new OT(h,o=d),MH(s.a,a),jjt(this,s,r,a,!1),(f=t.r)&&(a=new OT(g=Hw(_B(Nmt(f.e,0))),o),MH(s.a,a),jjt(this,s,r,a,!1),r=f,a=new OT(g,o=e+f.o*n),MH(s.a,a),jjt(this,s,r,a,!1)),a=new OT(b,o),MH(s.a,a),jjt(this,s,r,a,!1)))},kGt.eg=function(t){return t.i.n.a+t.n.a+t.a.a},kGt.fg=function(){return wWt(),EAe},kGt.gg=function(){return wWt(),cAe},bY(M4t,"NorthToSouthRoutingStrategy",1807),fIt(1808,661,{},bv),kGt.dg=function(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(!t.r||t.q)for(d=e-t.o*n,u=new Wf(t.n);u.a<u.c.c.length;)for(l=jz(J1(u),11),h=Dct(Cst(Hx(EEe,1),cZt,8,0,[l.i.n,l.n,l.a])).a,c=new Wf(l.g);c.a<c.c.c.length;)d6(s=jz(J1(c),17))||(p=s.d,b=Dct(Cst(Hx(EEe,1),cZt,8,0,[p.i.n,p.n,p.a])).a,i.Math.abs(h-b)>dQt&&(r=t,a=new OT(h,o=d),MH(s.a,a),jjt(this,s,r,a,!1),(f=t.r)&&(a=new OT(g=Hw(_B(Nmt(f.e,0))),o),MH(s.a,a),jjt(this,s,r,a,!1),r=f,a=new OT(g,o=e-f.o*n),MH(s.a,a),jjt(this,s,r,a,!1)),a=new OT(b,o),MH(s.a,a),jjt(this,s,r,a,!1)))},kGt.eg=function(t){return t.i.n.a+t.n.a+t.a.a},kGt.fg=function(){return wWt(),cAe},kGt.gg=function(){return wWt(),EAe},bY(M4t,"SouthToNorthRoutingStrategy",1808),fIt(1806,661,{},mv),kGt.dg=function(t,e,n){var a,r,o,s,c,l,u,d,h,f,g,p,b;if(!t.r||t.q)for(d=e+t.o*n,u=new Wf(t.n);u.a<u.c.c.length;)for(l=jz(J1(u),11),h=Dct(Cst(Hx(EEe,1),cZt,8,0,[l.i.n,l.n,l.a])).b,c=new Wf(l.g);c.a<c.c.c.length;)d6(s=jz(J1(c),17))||(p=s.d,b=Dct(Cst(Hx(EEe,1),cZt,8,0,[p.i.n,p.n,p.a])).b,i.Math.abs(h-b)>dQt&&(r=t,a=new OT(o=d,h),MH(s.a,a),jjt(this,s,r,a,!0),(f=t.r)&&(a=new OT(o,g=Hw(_B(Nmt(f.e,0)))),MH(s.a,a),jjt(this,s,r,a,!0),r=f,a=new OT(o=e+f.o*n,g),MH(s.a,a),jjt(this,s,r,a,!0)),a=new OT(o,b),MH(s.a,a),jjt(this,s,r,a,!0)))},kGt.eg=function(t){return t.i.n.b+t.n.b+t.a.b},kGt.fg=function(){return wWt(),sAe},kGt.gg=function(){return wWt(),SAe},bY(M4t,"WestToEastRoutingStrategy",1806),fIt(813,1,{},szt),kGt.Ib=function(){return LEt(this.a)},kGt.b=0,kGt.c=!1,kGt.d=!1,kGt.f=0,bY(B4t,"NubSpline",813),fIt(407,1,{407:1},RNt,hJ),bY(B4t,"NubSpline/PolarCP",407),fIt(1453,1,R4t,lwt),kGt.Yf=function(t){return ikt(jz(t,37))},kGt.pf=function(t,e){aYt(this,jz(t,37),e)},bY(B4t,"SplineEdgeRouter",1453),fIt(268,1,{268:1},k7),kGt.Ib=function(){return this.a+" ->("+this.c+") "+this.b},kGt.c=0,bY(B4t,"SplineEdgeRouter/Dependency",268),fIt(455,22,{3:1,35:1,22:1,455:1},oT);var Lwe,Owe,Mwe,Nwe=$nt(B4t,"SplineEdgeRouter/SideToProcess",455,Vte,ZX,T$);fIt(1454,1,NZt,xo),kGt.Mb=function(t){return pNt(),!jz(t,128).o},bY(B4t,"SplineEdgeRouter/lambda$0$Type",1454),fIt(1455,1,{},wo),kGt.Ge=function(t){return pNt(),jz(t,128).v+1},bY(B4t,"SplineEdgeRouter/lambda$1$Type",1455),fIt(1456,1,dZt,sT),kGt.td=function(t){eU(this.a,this.b,jz(t,46))},bY(B4t,"SplineEdgeRouter/lambda$2$Type",1456),fIt(1457,1,dZt,cT),kGt.td=function(t){nU(this.a,this.b,jz(t,46))},bY(B4t,"SplineEdgeRouter/lambda$3$Type",1457),fIt(128,1,{35:1,128:1},tTt,lUt),kGt.wd=function(t){return sR(this,jz(t,128))},kGt.b=0,kGt.e=!1,kGt.f=0,kGt.g=0,kGt.j=!1,kGt.k=!1,kGt.n=0,kGt.o=!1,kGt.p=!1,kGt.q=!1,kGt.s=0,kGt.u=0,kGt.v=0,kGt.F=0,bY(B4t,"SplineSegment",128),fIt(459,1,{459:1},Ro),kGt.a=0,kGt.b=!1,kGt.c=!1,kGt.d=!1,kGt.e=!1,kGt.f=0,bY(B4t,"SplineSegment/EdgeInformation",459),fIt(1234,1,{},bo),bY(z4t,nQt,1234),fIt(1235,1,kXt,mo),kGt.ue=function(t,e){return TAt(jz(t,135),jz(e,135))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(z4t,iQt,1235),fIt(1233,1,{},A_),bY(z4t,"MrTree",1233),fIt(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},lT),kGt.Kf=function(){return DAt(this)},kGt.Xf=function(){return DAt(this)};var Bwe,Pwe,Fwe,jwe,$we,zwe=$nt(z4t,"TreeLayoutPhases",393,Vte,w4,A$);fIt(1130,209,OJt,PP),kGt.Ze=function(t,e){var n,i,a,r,o,s;for(zw(RB(JIt(t,(SIt(),Cxe))))||wJ(new Rg((HE(),new Mw(t)))),Hot(o=new E7,t),lct(o,(HUt(),sxe),t),mjt(t,o,s=new Om),Yjt(t,o,s),r=o,i=new Wf(a=Mjt(this.a,r));i.a<i.c.c.length;)n=jz(J1(i),135),Y_t(this.b,n,yrt(e,1/a.c.length));Tqt(r=tGt(a))},bY(z4t,"TreeLayoutProvider",1130),fIt(1847,1,bZt,yo),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return kK(),Ik(),dne},bY(z4t,"TreeUtil/1",1847),fIt(1848,1,bZt,vo),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return kK(),Ik(),dne},bY(z4t,"TreeUtil/2",1848),fIt(502,134,{3:1,502:1,94:1,134:1}),kGt.g=0,bY(H4t,"TGraphElement",502),fIt(188,502,{3:1,188:1,502:1,94:1,134:1},VK),kGt.Ib=function(){return this.b&&this.c?g0(this.b)+"->"+g0(this.c):"e_"+Qct(this)},bY(H4t,"TEdge",188),fIt(135,134,{3:1,135:1,94:1,134:1},E7),kGt.Ib=function(){var t,e,n,i,a;for(a=null,i=cmt(this.b,0);i.b!=i.d.c;)a+=(null==(n=jz(d4(i),86)).c||0==n.c.length?"n_"+n.g:"n_"+n.c)+"\n";for(e=cmt(this.a,0);e.b!=e.d.c;)a+=((t=jz(d4(e),188)).b&&t.c?g0(t.b)+"->"+g0(t.c):"e_"+Qct(t))+"\n";return a};var Hwe=bY(H4t,"TGraph",135);fIt(633,502,{3:1,502:1,633:1,94:1,134:1}),bY(H4t,"TShape",633),fIt(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},alt),kGt.Ib=function(){return g0(this)};var Uwe=bY(H4t,"TNode",86);fIt(255,1,bZt,db),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return new hb(cmt(this.a.d,0))},bY(H4t,"TNode/2",255),fIt(358,1,ZGt,hb),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return jz(d4(this.a),188).c},kGt.Ob=function(){return x_(this.a)},kGt.Qb=function(){yet(this.a)},bY(H4t,"TNode/2/1",358),fIt(1840,1,QQt,BP),kGt.pf=function(t,e){M$t(this,jz(t,135),e)},bY(U4t,"FanProcessor",1840),fIt(327,22,{3:1,35:1,22:1,327:1,234:1},uT),kGt.Kf=function(){switch(this.g){case 0:return new Gv;case 1:return new BP;case 2:return new Io;case 3:return new Ao;case 4:return new Oo;case 5:return new Mo;default:throw $m(new Pw(k1t+(null!=this.f?this.f:""+this.g)))}};var Vwe,qwe,Wwe,Ywe,Gwe,Zwe,Kwe,Xwe,Jwe,Qwe,txe,exe,nxe,ixe,axe,rxe,oxe,sxe,cxe,lxe,uxe,dxe,hxe,fxe,gxe,pxe,bxe,mxe,yxe,vxe,wxe,xxe,Rxe,_xe,kxe,Exe,Cxe,Sxe,Txe,Axe,Dxe,Ixe,Lxe,Oxe,Mxe,Nxe=$nt(U4t,E1t,327,Vte,n8,D$);fIt(1843,1,QQt,Ao),kGt.pf=function(t,e){oLt(this,jz(t,135),e)},kGt.a=0,bY(U4t,"LevelHeightProcessor",1843),fIt(1844,1,bZt,Do),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return kK(),Ik(),dne},bY(U4t,"LevelHeightProcessor/1",1844),fIt(1841,1,QQt,Io),kGt.pf=function(t,e){ZSt(this,jz(t,135),e)},kGt.a=0,bY(U4t,"NeighborsProcessor",1841),fIt(1842,1,bZt,Lo),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return kK(),Ik(),dne},bY(U4t,"NeighborsProcessor/1",1842),fIt(1845,1,QQt,Oo),kGt.pf=function(t,e){rLt(this,jz(t,135),e)},kGt.a=0,bY(U4t,"NodePositionProcessor",1845),fIt(1839,1,QQt,Gv),kGt.pf=function(t,e){JHt(this,jz(t,135))},bY(U4t,"RootProcessor",1839),fIt(1846,1,QQt,Mo),kGt.pf=function(t,e){ght(jz(t,135))},bY(U4t,"Untreeifyer",1846),fIt(851,1,ZXt,kd),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,W4t),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),vxe),(CSt(),pEe)),jxe),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Y4t),""),"Search Order"),"Which search order to use when computing a spanning tree."),mxe),pEe),Gxe),Qht(lEe)))),PVt((new _d,t))},bY(G4t,"MrTreeMetaDataProvider",851),fIt(994,1,ZXt,_d),kGt.Qe=function(t){PVt(t)},bY(G4t,"MrTreeOptions",994),fIt(995,1,{},No),kGt.$e=function(){return new PP},kGt._e=function(t){},bY(G4t,"MrTreeOptions/MrtreeFactory",995),fIt(480,22,{3:1,35:1,22:1,480:1},dT);var Bxe,Pxe,Fxe,jxe=$nt(G4t,"OrderWeighting",480,Vte,XX,I$);fIt(425,22,{3:1,35:1,22:1,425:1},hT);var $xe,zxe,Hxe,Uxe,Vxe,qxe,Wxe,Yxe,Gxe=$nt(G4t,"TreeifyingOrder",425,Vte,KX,O$);fIt(1459,1,R4t,gd),kGt.Yf=function(t){return jz(t,135),Uxe},kGt.pf=function(t,e){vrt(this,jz(t,135),e)},bY("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1459),fIt(1460,1,R4t,pd),kGt.Yf=function(t){return jz(t,135),Vxe},kGt.pf=function(t,e){uTt(this,jz(t,135),e)},bY("org.eclipse.elk.alg.mrtree.p2order","NodeOrderer",1460),fIt(1461,1,R4t,fd),kGt.Yf=function(t){return jz(t,135),qxe},kGt.pf=function(t,e){QBt(this,jz(t,135),e)},kGt.a=0,bY("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1461),fIt(1462,1,R4t,bd),kGt.Yf=function(t){return jz(t,135),Wxe},kGt.pf=function(t,e){Mxt(jz(t,135),e)},bY("org.eclipse.elk.alg.mrtree.p4route","EdgeRouter",1462),fIt(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},fT),kGt.Kf=function(){return hgt(this)},kGt.Xf=function(){return hgt(this)};var Zxe,Kxe,Xxe,Jxe=$nt(X4t,"RadialLayoutPhases",495,Vte,JX,L$);fIt(1131,209,OJt,T_),kGt.Ze=function(t,e){var n,i,a;if(Akt(e,"Radial layout",RTt(this,t).c.length),zw(RB(JIt(t,(qwt(),ARe))))||wJ(new Rg((HE(),new Mw(t)))),a=okt(t),Kmt(t,(hB(),Yxe),a),!a)throw $m(new Pw("The given graph is not a tree!"));for(0==(n=Hw(_B(JIt(t,MRe))))&&(n=uAt(t)),Kmt(t,MRe,n),i=new Wf(RTt(this,t));i.a<i.c.c.length;)jz(J1(i),51).pf(t,yrt(e,1));zCt(e)},bY(X4t,"RadialLayoutProvider",1131),fIt(549,1,kXt,S_),kGt.ue=function(t,e){return NPt(this.a,this.b,jz(t,33),jz(e,33))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},kGt.a=0,kGt.b=0,bY(X4t,"RadialUtil/lambda$0$Type",549),fIt(1375,1,QQt,Po),kGt.pf=function(t,e){gVt(jz(t,33),e)},bY(t3t,"CalculateGraphSize",1375),fIt(442,22,{3:1,35:1,22:1,442:1,234:1},gT),kGt.Kf=function(){switch(this.g){case 0:return new Ho;case 1:return new Bo;case 2:return new Po;default:throw $m(new Pw(k1t+(null!=this.f?this.f:""+this.g)))}};var Qxe,tRe,eRe,nRe,iRe=$nt(t3t,E1t,442,Vte,N1,M$);fIt(645,1,{}),kGt.e=1,kGt.g=0,bY(e3t,"AbstractRadiusExtensionCompaction",645),fIt(1772,645,{},gB),kGt.hg=function(t){var e,n,i,a,r,o,s,c,l;for(this.c=jz(JIt(t,(hB(),Yxe)),33),Qh(this,this.c),this.d=Ryt(jz(JIt(t,(qwt(),NRe)),293)),(c=jz(JIt(t,_Re),19))&&Jh(this,c.a),tf(this,(vG(s=_B(JIt(t,(cGt(),ISe)))),s)),l=fBt(this.c),this.d&&this.d.lg(l),mFt(this,l),o=new Kw(Cst(Hx(UDe,1),n3t,33,0,[this.c])),n=0;n<2;n++)for(e=0;e<l.c.length;e++)a=new Kw(Cst(Hx(UDe,1),n3t,33,0,[(u1(e,l.c.length),jz(l.c[e],33))])),r=e<l.c.length-1?(u1(e+1,l.c.length),jz(l.c[e+1],33)):(u1(0,l.c.length),jz(l.c[0],33)),i=0==e?jz(OU(l,l.c.length-1),33):(u1(e-1,l.c.length),jz(l.c[e-1],33)),Jkt(this,(u1(e,l.c.length),jz(l.c[e],33),o),i,r,a)},bY(e3t,"AnnulusWedgeCompaction",1772),fIt(1374,1,QQt,Bo),kGt.pf=function(t,e){hRt(jz(t,33),e)},bY(e3t,"GeneralCompactor",1374),fIt(1771,645,{},Fo),kGt.hg=function(t){var e,n,i,a;n=jz(JIt(t,(hB(),Yxe)),33),this.f=n,this.b=Ryt(jz(JIt(t,(qwt(),NRe)),293)),(a=jz(JIt(t,_Re),19))&&Jh(this,a.a),tf(this,(vG(i=_B(JIt(t,(cGt(),ISe)))),i)),e=fBt(n),this.b&&this.b.lg(e),mSt(this,e)},kGt.a=0,bY(e3t,"RadialCompaction",1771),fIt(1779,1,{},jo),kGt.ig=function(t){var e,n,i,a,r,o;for(this.a=t,e=0,i=0,r=new Wf(o=fBt(t));r.a<r.c.c.length;)for(a=jz(J1(r),33),n=++i;n<o.c.length;n++)K$t(this,a,(u1(n,o.c.length),jz(o.c[n],33)))&&(e+=1);return e},bY(i3t,"CrossingMinimizationPosition",1779),fIt(1777,1,{},$o),kGt.ig=function(t){var e,n,a,r,o,s,c,l,d,h,f,g,p;for(a=0,n=new oq(XO(gOt(t).a.Kc(),new u));gIt(n);)e=jz(V6(n),79),d=(c=Ckt(jz(Yet((!e.c&&(e.c=new cF(NDe,e,5,8)),e.c),0),82))).i+c.g/2,h=c.j+c.f/2,r=t.i+t.g/2,o=t.j+t.f/2,(f=new HR).a=d-r,f.b=h-o,qxt(s=new OT(f.a,f.b),t.g,t.f),f.a-=s.a,f.b-=s.b,r=d-f.a,o=h-f.b,qxt(l=new OT(f.a,f.b),c.g,c.f),f.a-=l.a,f.b-=l.b,g=(d=r+f.a)-r,p=(h=o+f.b)-o,a+=i.Math.sqrt(g*g+p*p);return a},bY(i3t,"EdgeLengthOptimization",1777),fIt(1778,1,{},zo),kGt.ig=function(t){var e,n,a,r,o,s,c,l,d;for(a=0,n=new oq(XO(gOt(t).a.Kc(),new u));gIt(n);)e=jz(V6(n),79),s=(o=Ckt(jz(Yet((!e.c&&(e.c=new cF(NDe,e,5,8)),e.c),0),82))).i+o.g/2,c=o.j+o.f/2,r=jz(JIt(o,(cGt(),gSe)),8),l=s-(t.i+r.a+t.g/2),d=c-(t.j+r.b+t.f),a+=i.Math.sqrt(l*l+d*d);return a},bY(i3t,"EdgeLengthPositionOptimization",1778),fIt(1373,645,QQt,Ho),kGt.pf=function(t,e){uOt(this,jz(t,33),e)},bY("org.eclipse.elk.alg.radial.intermediate.overlaps","RadiusExtensionOverlapRemoval",1373),fIt(426,22,{3:1,35:1,22:1,426:1},pT);var aRe,rRe,oRe,sRe=$nt(r3t,"AnnulusWedgeCriteria",426,Vte,QX,N$);fIt(380,22,{3:1,35:1,22:1,380:1},bT);var cRe,lRe,uRe,dRe,hRe,fRe,gRe,pRe,bRe,mRe,yRe,vRe,wRe,xRe,RRe,_Re,kRe,ERe,CRe,SRe,TRe,ARe,DRe,IRe,LRe,ORe,MRe,NRe,BRe,PRe,FRe=$nt(r3t,jJt,380,Vte,B1,B$);fIt(852,1,ZXt,md),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,o3t),""),"Order ID"),"The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."),nht(0)),(CSt(),mEe)),Dee),Qht((imt(),cEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,s3t),""),"Radius"),"The radius option can be used to set the initial radius for the radial layouter."),0),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,c3t),""),"Compaction"),"With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."),gRe),pEe),FRe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,l3t),""),"Compaction Step Size"),"Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."),nht(1)),mEe),Dee),Qht(lEe)))),a2(t,l3t,c3t,null),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,u3t),""),"Sorter"),"Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."),wRe),pEe),ZRe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,d3t),""),"Annulus Wedge Criteria"),"Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."),RRe),pEe),sRe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,h3t),""),"Translation Optimization"),"Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."),bRe),pEe),VRe),Qht(lEe)))),tWt((new yd,t))},bY(r3t,"RadialMetaDataProvider",852),fIt(996,1,ZXt,yd),kGt.Qe=function(t){tWt(t)},bY(r3t,"RadialOptions",996),fIt(997,1,{},Uo),kGt.$e=function(){return new T_},kGt._e=function(t){},bY(r3t,"RadialOptions/RadialFactory",997),fIt(340,22,{3:1,35:1,22:1,340:1},mT);var jRe,$Re,zRe,HRe,URe,VRe=$nt(r3t,"RadialTranslationStrategy",340,Vte,x4,P$);fIt(293,22,{3:1,35:1,22:1,293:1},yT);var qRe,WRe,YRe,GRe,ZRe=$nt(r3t,"SortingStrategy",293,Vte,F1,F$);fIt(1449,1,R4t,Vo),kGt.Yf=function(t){return jz(t,33),null},kGt.pf=function(t,e){EOt(this,jz(t,33),e)},kGt.c=0,bY("org.eclipse.elk.alg.radial.p1position","EadesRadial",1449),fIt(1775,1,{},qo),kGt.jg=function(t){return qmt(t)},bY(g3t,"AnnulusWedgeByLeafs",1775),fIt(1776,1,{},Wo),kGt.jg=function(t){return G_t(this,t)},bY(g3t,"AnnulusWedgeByNodeSpace",1776),fIt(1450,1,R4t,Yo),kGt.Yf=function(t){return jz(t,33),null},kGt.pf=function(t,e){h_t(this,jz(t,33),e)},bY("org.eclipse.elk.alg.radial.p2routing","StraightLineEdgeRouter",1450),fIt(811,1,{},Kv),kGt.kg=function(t){},kGt.lg=function(t){Jm(this,t)},bY(p3t,"IDSorter",811),fIt(1774,1,kXt,Go),kGt.ue=function(t,e){return Zat(jz(t,33),jz(e,33))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(p3t,"IDSorter/lambda$0$Type",1774),fIt(1773,1,{},Dat),kGt.kg=function(t){i2(this,t)},kGt.lg=function(t){t.dc()||(this.e||i2(this,JU(jz(t.Xb(0),33))),Jm(this.e,t))},bY(p3t,"PolarCoordinateSorter",1773),fIt(1136,209,OJt,Zo),kGt.Ze=function(t,e){var n,a,r,o,s,c,l,u,d,h,f,g,p,b,m,y,v,w,x,R,_,k;if(Akt(e,"Rectangle Packing",1),e.n&&e.n&&t&&y0(e,o2(t),($lt(),oDe)),n=Hw(_B(JIt(t,(YLt(),u_e)))),g=jz(JIt(t,E_e),381),m=zw(RB(JIt(t,y_e))),w=zw(RB(JIt(t,k_e))),d=zw(RB(JIt(t,g_e))),x=jz(JIt(t,C_e),116),v=Hw(_B(JIt(t,D_e))),a=zw(RB(JIt(t,A_e))),h=zw(RB(JIt(t,p_e))),b=zw(RB(JIt(t,b_e))),k=Hw(_B(JIt(t,I_e))),!t.a&&(t.a=new tW(UDe,t,10,11)),_at(_=t.a),b){for(f=new Lm,c=new AO(_);c.e!=c.i.gc();)E5(o=jz(wmt(c),33),f_e)&&(f.c[f.c.length]=o);for(l=new Wf(f);l.a<l.c.c.length;)stt(_,o=jz(J1(l),33));for(kK(),mL(f,new Ko),u=new Wf(f);u.a<u.c.c.length;)o=jz(J1(u),33),R=jz(JIt(o,f_e),19).a,cht(_,R=i.Math.min(R,_.i),o);for(p=0,s=new AO(_);s.e!=s.i.gc();)Kmt(o=jz(wmt(s),33),h_e,nht(p)),++p}(y=WSt(t)).a-=x.b+x.c,y.b-=x.d+x.a,y.a,k<0||k<y.a?(r=AFt(new wz(n,g,m),_,v,x),e.n&&e.n&&t&&y0(e,o2(t),($lt(),oDe))):r=new tU(n,k,0,(KOt(),F_e)),y.a+=x.b+x.c,y.b+=x.d+x.a,w||(_at(_),r=wqt(new m4(n,d,h,a,v),_,i.Math.max(y.a,r.c),y,e,t,x)),bot(_,x),PWt(t,r.c+(x.b+x.c),r.b+(x.d+x.a),!1,!0),zw(RB(JIt(t,__e)))||wJ(new Rg((HE(),new Mw(t)))),e.n&&e.n&&t&&y0(e,o2(t),($lt(),oDe)),zCt(e)},bY(v3t,"RectPackingLayoutProvider",1136),fIt(1137,1,kXt,Ko),kGt.ue=function(t,e){return flt(jz(t,33),jz(e,33))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(v3t,"RectPackingLayoutProvider/lambda$0$Type",1137),fIt(1256,1,{},wz),kGt.a=0,kGt.c=!1,bY(w3t,"AreaApproximation",1256);var KRe=dU(w3t,"BestCandidateFilter");fIt(638,1,{526:1},Xo),kGt.mg=function(t,e,n){var a,r,o,s,c,l;for(l=new Lm,o=BKt,c=new Wf(t);c.a<c.c.c.length;)s=jz(J1(c),220),o=i.Math.min(o,(s.c+(n.b+n.c))*(s.b+(n.d+n.a)));for(r=new Wf(t);r.a<r.c.c.length;)((a=jz(J1(r),220)).c+(n.b+n.c))*(a.b+(n.d+n.a))==o&&(l.c[l.c.length]=a);return l},bY(w3t,"AreaFilter",638),fIt(639,1,{526:1},Jo),kGt.mg=function(t,e,n){var a,r,o,s,c,l;for(c=new Lm,l=BKt,s=new Wf(t);s.a<s.c.c.length;)o=jz(J1(s),220),l=i.Math.min(l,i.Math.abs((o.c+(n.b+n.c))/(o.b+(n.d+n.a))-e));for(r=new Wf(t);r.a<r.c.c.length;)a=jz(J1(r),220),i.Math.abs((a.c+(n.b+n.c))/(a.b+(n.d+n.a))-e)==l&&(c.c[c.c.length]=a);return c},bY(w3t,"AspectRatioFilter",639),fIt(637,1,{526:1},Qo),kGt.mg=function(t,e,n){var a,r,o,s,c,l;for(l=new Lm,o=PKt,c=new Wf(t);c.a<c.c.c.length;)s=jz(J1(c),220),o=i.Math.max(o,ZU(s.c+(n.b+n.c),s.b+(n.d+n.a),s.a));for(r=new Wf(t);r.a<r.c.c.length;)ZU((a=jz(J1(r),220)).c+(n.b+n.c),a.b+(n.d+n.a),a.a)==o&&(l.c[l.c.length]=a);return l},bY(w3t,"ScaleMeasureFilter",637),fIt(381,22,{3:1,35:1,22:1,381:1},vT);var XRe,JRe,QRe,t_e,e_e,n_e,i_e,a_e,r_e,o_e,s_e,c_e,l_e,u_e,d_e,h_e,f_e,g_e,p_e,b_e,m_e,y_e,v_e,w_e,x_e,R_e,__e,k_e,E_e,C_e,S_e,T_e,A_e,D_e,I_e,L_e=$nt(x3t,"OptimizationGoal",381,Vte,P1,j$);fIt(856,1,ZXt,Sd),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,R3t),""),"Optimization Goal"),"Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."),s_e),(CSt(),pEe)),L_e),Qht((imt(),cEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,_3t),""),"Shift Last Placed."),"When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."),(cM(),!0)),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,k3t),""),"Current position of a node in the order of nodes"),"The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,E3t),""),"Desired index of node"),"The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."),nht(-1)),mEe),Dee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,C3t),""),"Only Area Approximation"),"If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place."),!1),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,S3t),""),"Compact Rows"),"Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows."),!0),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,T3t),""),"Fit Aspect Ratio"),"Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion."),!1),fEe),wee),Qht(cEe)))),a2(t,T3t,D3t,null),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,A3t),""),"Target Width"),"Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."),-1),gEe),Cee),Qht(cEe)))),OYt((new Td,t))},bY(x3t,"RectPackingMetaDataProvider",856),fIt(1004,1,ZXt,Td),kGt.Qe=function(t){OYt(t)},bY(x3t,"RectPackingOptions",1004),fIt(1005,1,{},ts),kGt.$e=function(){return new Zo},kGt._e=function(t){},bY(x3t,"RectPackingOptions/RectpackingFactory",1005),fIt(1257,1,{},m4),kGt.a=0,kGt.b=!1,kGt.c=0,kGt.d=0,kGt.e=!1,kGt.f=!1,kGt.g=0,bY("org.eclipse.elk.alg.rectpacking.seconditeration","RowFillingAndCompaction",1257),fIt(187,1,{187:1},rlt),kGt.a=0,kGt.c=!1,kGt.d=0,kGt.e=0,kGt.f=0,kGt.g=0,kGt.i=0,kGt.k=!1,kGt.o=BKt,kGt.p=BKt,kGt.r=0,kGt.s=0,kGt.t=0,bY(L3t,"Block",187),fIt(211,1,{211:1},NJ),kGt.a=0,kGt.b=0,kGt.d=0,kGt.e=0,kGt.f=0,bY(L3t,"BlockRow",211),fIt(443,1,{443:1},BJ),kGt.b=0,kGt.c=0,kGt.d=0,kGt.e=0,kGt.f=0,bY(L3t,"BlockStack",443),fIt(220,1,{220:1},tU,rgt),kGt.a=0,kGt.b=0,kGt.c=0,kGt.d=0,kGt.e=0;var O_e=bY(L3t,"DrawingData",220);fIt(355,22,{3:1,35:1,22:1,355:1},wT);var M_e,N_e,B_e,P_e,F_e,j_e,$_e=$nt(L3t,"DrawingDataDescriptor",355,Vte,L6,$$);fIt(200,1,{200:1},O0),kGt.b=0,kGt.c=0,kGt.e=0,kGt.f=0,bY(L3t,"RectRow",200),fIt(756,1,{},Rut),kGt.j=0,bY(M3t,p1t,756),fIt(1245,1,{},es),kGt.Je=function(t){return W5(t.a,t.b)},bY(M3t,b1t,1245),fIt(1246,1,{},fb),kGt.Je=function(t){return p7(this.a,t)},bY(M3t,m1t,1246),fIt(1247,1,{},gb),kGt.Je=function(t){return Amt(this.a,t)},bY(M3t,y1t,1247),fIt(1248,1,{},pb),kGt.Je=function(t){return oct(this.a,t)},bY(M3t,"ElkGraphImporter/lambda$3$Type",1248),fIt(1249,1,{},bb),kGt.Je=function(t){return nDt(this.a,t)},bY(M3t,v1t,1249),fIt(1133,209,OJt,D_),kGt.Ze=function(t,e){var n,i,a,r,o,s,c,l,u,d;for(E5(t,(kEt(),vke))&&(d=kB(JIt(t,($yt(),zke))),(r=WPt(ait(),d))&&jz(sJ(r.f),209).Ze(t,yrt(e,1))),Kmt(t,gke,(D7(),J_e)),Kmt(t,pke,(ICt(),ake)),Kmt(t,bke,(Lst(),Yke)),o=jz(JIt(t,($yt(),Pke)),19).a,Akt(e,"Overlap removal",1),zw(RB(JIt(t,Bke))),c=new mb(s=new Ny),n=UYt(i=new Rut,t),l=!0,a=0;a<o&&l;){if(zw(RB(JIt(t,Fke)))){if(s.a.$b(),zSt(new SL(c),n.i),0==s.a.gc())break;n.e=s}for(c2(this.b),CW(this.b,(Cft(),z_e),(TE(),Uke)),CW(this.b,H_e,n.g),CW(this.b,U_e,(SE(),Z_e)),this.a=IUt(this.b,n),u=new Wf(this.a);u.a<u.c.c.length;)jz(J1(u),51).pf(n,yrt(e,1));aRt(i,n),l=zw(RB(yEt(n,(Wrt(),Zae)))),++a}NVt(i,n),zCt(e)},bY(M3t,"OverlapRemovalLayoutProvider",1133),fIt(1134,1,{},mb),bY(M3t,"OverlapRemovalLayoutProvider/lambda$0$Type",1134),fIt(437,22,{3:1,35:1,22:1,437:1},xT);var z_e,H_e,U_e,V_e,q_e=$nt(M3t,"SPOrEPhases",437,Vte,j1,z$);fIt(1255,1,{},I_),bY(M3t,"ShrinkTree",1255),fIt(1135,209,OJt,Xv),kGt.Ze=function(t,e){var n,i,a,r;E5(t,(kEt(),vke))&&(r=kB(JIt(t,vke)),(a=WPt(ait(),r))&&jz(sJ(a.f),209).Ze(t,yrt(e,1))),n=UYt(i=new Rut,t),IOt(this.a,n,yrt(e,1)),NVt(i,n)},bY(M3t,"ShrinkTreeLayoutProvider",1135),fIt(300,134,{3:1,300:1,94:1,134:1},MJ),kGt.c=!1,bY("org.eclipse.elk.alg.spore.graph","Graph",300),fIt(482,22,{3:1,35:1,22:1,482:1,246:1,234:1},IE),kGt.Kf=function(){return elt(this)},kGt.Xf=function(){return elt(this)};var W_e,Y_e,G_e=$nt(N3t,jJt,482,Vte,BZ,H$);fIt(551,22,{3:1,35:1,22:1,551:1,246:1,234:1},bB),kGt.Kf=function(){return new rs},kGt.Xf=function(){return new rs};var Z_e,K_e,X_e=$nt(N3t,"OverlapRemovalStrategy",551,Vte,PZ,U$);fIt(430,22,{3:1,35:1,22:1,430:1},RT);var J_e,Q_e,tke,eke=$nt(N3t,"RootSelection",430,Vte,eJ,V$);fIt(316,22,{3:1,35:1,22:1,316:1},_T);var nke,ike,ake,rke,oke,ske,cke,lke,uke,dke,hke,fke,gke,pke,bke,mke,yke,vke,wke,xke,Rke,_ke,kke,Eke,Cke,Ske,Tke,Ake,Dke,Ike,Lke,Oke,Mke,Nke,Bke,Pke,Fke,jke,$ke,zke,Hke=$nt(N3t,"SpanningTreeCostFunction",316,Vte,A6,q$);fIt(1002,1,ZXt,wd),kGt.Qe=function(t){vHt(t)},bY(N3t,"SporeCompactionOptions",1002),fIt(1003,1,{},ns),kGt.$e=function(){return new Xv},kGt._e=function(t){},bY(N3t,"SporeCompactionOptions/SporeCompactionFactory",1003),fIt(855,1,ZXt,xd),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,P3t),""),"Underlying Layout Algorithm"),"A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."),(CSt(),vEe)),zee),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,H3t),"structure"),"Structure Extraction Strategy"),"This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."),Mke),pEe),qke),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,F3t),Y3t),"Tree Construction Strategy"),"Whether a minimum spanning tree or a maximum spanning tree should be constructed."),Lke),pEe),Zke),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,j3t),Y3t),"Cost Function for Spanning Tree"),"The cost function is used in the creation of the spanning tree."),Dke),pEe),Hke),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,$3t),Y3t),"Root node for spanning tree construction"),"The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."),null),vEe),zee),Qht(lEe)))),a2(t,$3t,z3t,Cke),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,z3t),Y3t),"Root selection for spanning tree"),"This sets the method used to select a root node for the construction of a spanning tree"),Tke),pEe),eke),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,U3t),R2t),"Compaction Strategy"),"This option defines how the compaction is applied."),xke),pEe),G_e),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,V3t),R2t),"Orthogonal Compaction"),"Restricts the translation of nodes to orthogonal directions in the compaction phase."),(cM(),!1)),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,q3t),G3t),"Upper limit for iterations of overlap removal"),null),nht(64)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,W3t),G3t),"Whether to run a supplementary scanline overlap check."),null),!0),fEe),wee),Qht(lEe)))),DFt((new Rd,t)),vHt((new wd,t))},bY(N3t,"SporeMetaDataProvider",855),fIt(GZt,1,ZXt,Rd),kGt.Qe=function(t){DFt(t)},bY(N3t,"SporeOverlapRemovalOptions",GZt),fIt(1001,1,{},is),kGt.$e=function(){return new D_},kGt._e=function(t){},bY(N3t,"SporeOverlapRemovalOptions/SporeOverlapFactory",1001),fIt(530,22,{3:1,35:1,22:1,530:1,246:1,234:1},qG),kGt.Kf=function(){return nlt(this)},kGt.Xf=function(){return nlt(this)};var Uke,Vke,qke=$nt(N3t,"StructureExtractionStrategy",530,Vte,FZ,W$);fIt(429,22,{3:1,35:1,22:1,429:1,246:1,234:1},kT),kGt.Kf=function(){return fgt(this)},kGt.Xf=function(){return fgt(this)};var Wke,Yke,Gke,Zke=$nt(N3t,"TreeConstructionStrategy",429,Vte,tJ,Y$);fIt(1443,1,R4t,as),kGt.Yf=function(t){return jz(t,300),new j2},kGt.pf=function(t,e){_Rt(jz(t,300),e)},bY(K3t,"DelaunayTriangulationPhase",1443),fIt(1444,1,dZt,yb),kGt.td=function(t){Wz(this.a,jz(t,65).a)},bY(K3t,"DelaunayTriangulationPhase/lambda$0$Type",1444),fIt(783,1,R4t,Yv),kGt.Yf=function(t){return jz(t,300),new j2},kGt.pf=function(t,e){this.ng(jz(t,300),e)},kGt.ng=function(t,e){var n;Akt(e,"Minimum spanning tree construction",1),n=t.d?t.d.a:jz(OU(t.i,0),65).a,Pst(this,(zw(RB(yEt(t,(Wrt(),Gae)))),KHt(t.e,n,t.b)),t),zCt(e)},bY(X3t,"MinSTPhase",783),fIt(1446,783,R4t,yv),kGt.ng=function(t,e){var n,i;Akt(e,"Maximum spanning tree construction",1),n=new vb(t),i=t.d?t.d.c:jz(OU(t.i,0),65).c,Pst(this,(zw(RB(yEt(t,(Wrt(),Gae)))),KHt(t.e,i,n)),t),zCt(e)},bY(X3t,"MaxSTPhase",1446),fIt(1447,1,{},vb),kGt.Je=function(t){return ST(this.a,t)},bY(X3t,"MaxSTPhase/lambda$0$Type",1447),fIt(1445,1,dZt,wb),kGt.td=function(t){NL(this.a,jz(t,65))},bY(X3t,"MinSTPhase/lambda$0$Type",1445),fIt(785,1,R4t,rs),kGt.Yf=function(t){return jz(t,300),new j2},kGt.pf=function(t,e){Ykt(this,jz(t,300),e)},kGt.a=!1,bY(J3t,"GrowTreePhase",785),fIt(786,1,dZt,xz),kGt.td=function(t){est(this.a,this.b,this.c,jz(t,221))},bY(J3t,"GrowTreePhase/lambda$0$Type",786),fIt(1448,1,R4t,os),kGt.Yf=function(t){return jz(t,300),new j2},kGt.pf=function(t,e){tvt(this,jz(t,300),e)},bY(J3t,"ShrinkTreeCompactionPhase",1448),fIt(784,1,dZt,Rz),kGt.td=function(t){dIt(this.a,this.b,this.c,jz(t,221))},bY(J3t,"ShrinkTreeCompactionPhase/lambda$0$Type",784);var Kke,Xke,Jke=dU(v4t,"IGraphElementVisitor");fIt(860,1,{527:1},N0),kGt.og=function(t){var e;Hot(e=lPt(this,t),jz(NY(this.b,t),94)),vOt(this,t,e)},bY(MJt,"LayoutConfigurator",860);var Qke,tEe,eEe,nEe=dU(MJt,"LayoutConfigurator/IPropertyHolderOptionFilter");fIt(932,1,{1933:1},ss),kGt.pg=function(t,e){return Ost(),!t.Xe(e)},bY(MJt,"LayoutConfigurator/lambda$0$Type",932),fIt(933,1,{1933:1},cs),kGt.pg=function(t,e){return k_(t,e)},bY(MJt,"LayoutConfigurator/lambda$1$Type",933),fIt(931,1,{831:1},ls),kGt.qg=function(t,e){return Ost(),!t.Xe(e)},bY(MJt,"LayoutConfigurator/lambda$2$Type",931),fIt(934,1,NZt,IT),kGt.Mb=function(t){return ZG(this.a,this.b,jz(t,1933))},bY(MJt,"LayoutConfigurator/lambda$3$Type",934),fIt(858,1,{},us),bY(MJt,"RecursiveGraphLayoutEngine",858),fIt(296,60,$Zt,vy,nx),bY(MJt,"UnsupportedConfigurationException",296),fIt(453,60,$Zt,ix),bY(MJt,"UnsupportedGraphException",453),fIt(754,1,{}),bY(v4t,"AbstractRandomListAccessor",754),fIt(500,754,{},SMt),kGt.rg=function(){return null},kGt.d=!0,kGt.e=!0,kGt.f=0,bY(t6t,"AlgorithmAssembler",500),fIt(1236,1,NZt,ds),kGt.Mb=function(t){return!!jz(t,123)},bY(t6t,"AlgorithmAssembler/lambda$0$Type",1236),fIt(1237,1,{},xb),kGt.Kb=function(t){return dR(this.a,jz(t,123))},bY(t6t,"AlgorithmAssembler/lambda$1$Type",1237),fIt(1238,1,NZt,hs),kGt.Mb=function(t){return!!jz(t,80)},bY(t6t,"AlgorithmAssembler/lambda$2$Type",1238),fIt(1239,1,dZt,Rb),kGt.td=function(t){Xrt(this.a,jz(t,80))},bY(t6t,"AlgorithmAssembler/lambda$3$Type",1239),fIt(1240,1,dZt,LT),kGt.td=function(t){MN(this.a,this.b,jz(t,234))},bY(t6t,"AlgorithmAssembler/lambda$4$Type",1240),fIt(1355,1,kXt,fs),kGt.ue=function(t,e){return FK(jz(t,234),jz(e,234))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(t6t,"EnumBasedFactoryComparator",1355),fIt(80,754,{80:1},j2),kGt.rg=function(){return new Ny},kGt.a=0,bY(t6t,"LayoutProcessorConfiguration",80),fIt(1013,1,{527:1},Ad),kGt.og=function(t){Qrt(tEe,new _b(t))},bY(VXt,"DeprecatedLayoutOptionReplacer",1013),fIt(1014,1,dZt,gs),kGt.td=function(t){L8(jz(t,160))},bY(VXt,"DeprecatedLayoutOptionReplacer/lambda$0$Type",1014),fIt(1015,1,dZt,ps),kGt.td=function(t){_gt(jz(t,160))},bY(VXt,"DeprecatedLayoutOptionReplacer/lambda$1$Type",1015),fIt(1016,1,{},_b),kGt.Od=function(t,e){NN(this.a,jz(t,146),jz(e,38))},bY(VXt,"DeprecatedLayoutOptionReplacer/lambda$2$Type",1016),fIt(149,1,{686:1,149:1},kkt),kGt.Fb=function(t){return w6(this,t)},kGt.sg=function(){return this.b},kGt.tg=function(){return this.c},kGt.ne=function(){return this.e},kGt.Hb=function(){return myt(this.c)},kGt.Ib=function(){return"Layout Algorithm: "+this.c};var iEe,aEe=bY(VXt,"LayoutAlgorithmData",149);fIt(263,1,{},bs),bY(VXt,"LayoutAlgorithmData/Builder",263),fIt(1017,1,{527:1},ms),kGt.og=function(t){iO(t,239)&&!zw(RB(t.We((cGt(),UCe))))&&P$t(jz(t,33))},bY(VXt,"LayoutAlgorithmResolver",1017),fIt(229,1,{686:1,229:1},VQ),kGt.Fb=function(t){return!!iO(t,229)&&mF(this.b,jz(t,229).b)},kGt.sg=function(){return this.a},kGt.tg=function(){return this.b},kGt.ne=function(){return this.d},kGt.Hb=function(){return myt(this.b)},kGt.Ib=function(){return"Layout Type: "+this.b},bY(VXt,"LayoutCategoryData",229),fIt(344,1,{},ys),bY(VXt,"LayoutCategoryData/Builder",344),fIt(867,1,{},APt),bY(VXt,"LayoutMetaDataService",867),fIt(868,1,{},VY),bY(VXt,"LayoutMetaDataService/Registry",868),fIt(478,1,{478:1},vs),bY(VXt,"LayoutMetaDataService/Registry/Triple",478),fIt(869,1,e6t,ws),kGt.ug=function(){return new HR},bY(VXt,"LayoutMetaDataService/lambda$0$Type",869),fIt(870,1,n6t,xs),kGt.vg=function(t){return jL(jz(t,8))},bY(VXt,"LayoutMetaDataService/lambda$1$Type",870),fIt(879,1,e6t,Rs),kGt.ug=function(){return new Lm},bY(VXt,"LayoutMetaDataService/lambda$10$Type",879),fIt(880,1,n6t,_s),kGt.vg=function(t){return new QF(jz(t,12))},bY(VXt,"LayoutMetaDataService/lambda$11$Type",880),fIt(881,1,e6t,ks),kGt.ug=function(){return new Zk},bY(VXt,"LayoutMetaDataService/lambda$12$Type",881),fIt(882,1,n6t,Es),kGt.vg=function(t){return Uz(jz(t,68))},bY(VXt,"LayoutMetaDataService/lambda$13$Type",882),fIt(883,1,e6t,Cs),kGt.ug=function(){return new Ny},bY(VXt,"LayoutMetaDataService/lambda$14$Type",883),fIt(884,1,n6t,Ss),kGt.vg=function(t){return KK(jz(t,53))},bY(VXt,"LayoutMetaDataService/lambda$15$Type",884),fIt(885,1,e6t,Ts),kGt.ug=function(){return new lI},bY(VXt,"LayoutMetaDataService/lambda$16$Type",885),fIt(886,1,n6t,As),kGt.vg=function(t){return k3(jz(t,53))},bY(VXt,"LayoutMetaDataService/lambda$17$Type",886),fIt(887,1,e6t,Ds),kGt.ug=function(){return new Uy},bY(VXt,"LayoutMetaDataService/lambda$18$Type",887),fIt(888,1,n6t,Is),kGt.vg=function(t){return Hz(jz(t,208))},bY(VXt,"LayoutMetaDataService/lambda$19$Type",888),fIt(871,1,e6t,Ls),kGt.ug=function(){return new vv},bY(VXt,"LayoutMetaDataService/lambda$2$Type",871),fIt(872,1,n6t,Os),kGt.vg=function(t){return new BR(jz(t,74))},bY(VXt,"LayoutMetaDataService/lambda$3$Type",872),fIt(873,1,e6t,Ms),kGt.ug=function(){return new uv},bY(VXt,"LayoutMetaDataService/lambda$4$Type",873),fIt(874,1,n6t,Ns),kGt.vg=function(t){return new Aj(jz(t,142))},bY(VXt,"LayoutMetaDataService/lambda$5$Type",874),fIt(875,1,e6t,Ps),kGt.ug=function(){return new dv},bY(VXt,"LayoutMetaDataService/lambda$6$Type",875),fIt(876,1,n6t,Fs),kGt.vg=function(t){return new Tj(jz(t,116))},bY(VXt,"LayoutMetaDataService/lambda$7$Type",876),fIt(877,1,e6t,js),kGt.ug=function(){return new Js},bY(VXt,"LayoutMetaDataService/lambda$8$Type",877),fIt(878,1,n6t,$s),kGt.vg=function(t){return new ntt(jz(t,373))},bY(VXt,"LayoutMetaDataService/lambda$9$Type",878);var rEe=dU(TJt,"IProperty");fIt(23,1,{35:1,686:1,23:1,146:1},hSt),kGt.wd=function(t){return gO(this,jz(t,146))},kGt.Fb=function(t){return iO(t,23)?mF(this.f,jz(t,23).f):iO(t,146)&&mF(this.f,jz(t,146).tg())},kGt.wg=function(){var t;if(iO(this.b,4)){if(null==(t=Xpt(this.b)))throw $m(new Fw(s6t+this.f+"'. Make sure it's type is registered with the "+(xB(uIe),uIe.k)+a6t));return t}return this.b},kGt.sg=function(){return this.d},kGt.tg=function(){return this.f},kGt.ne=function(){return this.i},kGt.Hb=function(){return myt(this.f)},kGt.Ib=function(){return"Layout Option: "+this.f},bY(VXt,"LayoutOptionData",23),fIt(24,1,{},zs),bY(VXt,"LayoutOptionData/Builder",24),fIt(175,22,{3:1,35:1,22:1,175:1},AT);var oEe,sEe,cEe,lEe,uEe,dEe,hEe=$nt(VXt,"LayoutOptionData/Target",175,Vte,T6,G$);fIt(277,22,{3:1,35:1,22:1,277:1},DT);var fEe,gEe,pEe,bEe,mEe,yEe,vEe,wEe,xEe,REe,_Ee,kEe=$nt(VXt,"LayoutOptionData/Type",277,Vte,Fet,Z$);fIt(110,1,{110:1},dI,VZ,gX),kGt.Fb=function(t){var e;return!(null==t||!iO(t,110))&&(e=jz(t,110),iZ(this.c,e.c)&&iZ(this.d,e.d)&&iZ(this.b,e.b)&&iZ(this.a,e.a))},kGt.Hb=function(){return uut(Cst(Hx(Dte,1),zGt,1,5,[this.c,this.d,this.b,this.a]))},kGt.Ib=function(){return"Rect[x="+this.c+",y="+this.d+",w="+this.b+",h="+this.a+"]"},kGt.a=0,kGt.b=0,kGt.c=0,kGt.d=0,bY(u1t,"ElkRectangle",110),fIt(8,1,{3:1,4:1,8:1,414:1},HR,qQ,OT,hI),kGt.Fb=function(t){return Qit(this,t)},kGt.Hb=function(){return YD(this.a)+hwt(YD(this.b))},kGt.Jf=function(t){var e,n,i;for(n=0;n<t.length&&Mut((d1(n,t.length),t.charCodeAt(n)),s1t);)++n;for(e=t.length;e>0&&Mut((d1(e-1,t.length),t.charCodeAt(e-1)),c1t);)--e;if(n>=e)throw $m(new Pw("The given string does not contain any numbers."));if(2!=(i=wFt(t.substr(n,e-n),",|;|\r|\n")).length)throw $m(new Pw("Exactly two numbers are expected, "+i.length+" were found."));try{this.a=hCt(BEt(i[0])),this.b=hCt(BEt(i[1]))}catch(a){throw iO(a=dst(a),127)?$m(new Pw(l1t+a)):$m(a)}},kGt.Ib=function(){return"("+this.a+","+this.b+")"},kGt.a=0,kGt.b=0;var EEe=bY(u1t,"KVector",8);fIt(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},vv,BR,VN),kGt.Pc=function(){return Glt(this)},kGt.Jf=function(t){var e,n,i,a,r;n=wFt(t,",|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n"),yK(this);try{for(e=0,a=0,i=0,r=0;e<n.length;)null!=n[e]&&BEt(n[e]).length>0&&(a%2==0?i=hCt(n[e]):r=hCt(n[e]),a>0&&a%2!=0&&MH(this,new OT(i,r)),++a),++e}catch(o){throw iO(o=dst(o),127)?$m(new Pw("The given string does not match the expected format for vectors."+o)):$m(o)}},kGt.Ib=function(){var t,e,n;for(t=new uM("("),e=cmt(this,0);e.b!=e.d.c;)oD(t,(n=jz(d4(e),8)).a+","+n.b),e.b!=e.d.c&&(t.a+="; ");return(t.a+=")",t).a};var CEe=bY(u1t,"KVectorChain",74);fIt(248,22,{3:1,35:1,22:1,248:1},MT);var SEe,TEe,AEe,DEe,IEe,LEe,OEe,MEe,NEe,BEe,PEe,FEe,jEe,$Ee,zEe,HEe,UEe,VEe,qEe,WEe=$nt(l6t,"Alignment",248,Vte,K5,K$);fIt(979,1,ZXt,Dd),kGt.Qe=function(t){Ujt(t)},bY(l6t,"BoxLayouterOptions",979),fIt(980,1,{},Bs),kGt.$e=function(){return new qs},kGt._e=function(t){},bY(l6t,"BoxLayouterOptions/BoxFactory",980),fIt(291,22,{3:1,35:1,22:1,291:1},NT);var YEe,GEe,ZEe,KEe,XEe,JEe,QEe,tCe,eCe,nCe,iCe,aCe,rCe,oCe,sCe,cCe,lCe,uCe,dCe,hCe,fCe,gCe,pCe,bCe,mCe,yCe,vCe,wCe,xCe,RCe,_Ce,kCe,ECe,CCe,SCe,TCe,ACe,DCe,ICe,LCe,OCe,MCe,NCe,BCe,PCe,FCe,jCe,$Ce,zCe,HCe,UCe,VCe,qCe,WCe,YCe,GCe,ZCe,KCe,XCe,JCe,QCe,tSe,eSe,nSe,iSe,aSe,rSe,oSe,sSe,cSe,lSe,uSe,dSe,hSe,fSe,gSe,pSe,bSe,mSe,ySe,vSe,wSe,xSe,RSe,_Se,kSe,ESe,CSe,SSe,TSe,ASe,DSe,ISe,LSe,OSe,MSe,NSe,BSe=$nt(l6t,"ContentAlignment",291,Vte,Z5,X$);fIt(684,1,ZXt,Id),kGt.Qe=function(t){Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,f6t),""),"Layout Algorithm"),"Select a specific layout algorithm."),(CSt(),vEe)),zee),Qht((imt(),lEe))))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,g6t),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),yEe),aEe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Y2t),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),nCe),pEe),WEe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,GJt),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,p6t),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),yEe),CEe),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,o4t),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),lCe),bEe),BSe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,W2t),""),"Debug Mode"),"Whether additional debug information shall be generated."),(cM(),!1)),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,X2t),""),_Jt),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),hCe),pEe),USe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,v2t),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),mCe),pEe),tTe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,D3t),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,g2t),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),RCe),pEe),wTe),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[cEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,ZJt),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),WCe),yEe),Ise),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[cEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,xQt),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,y4t),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,kQt),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,RQt),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),oSe),pEe),JTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,p4t),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),yEe),EEe),xV(cEe,Cst(Hx(hEe,1),IZt,175,0,[uEe,sEe]))))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,bQt),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),mEe),Dee),xV(cEe,Cst(Hx(hEe,1),IZt,175,0,[oEe]))))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,vQt),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,wQt),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,s4t),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),ACe),yEe),CEe),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,u4t),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,d4t),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,b6t),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),yEe),NMe),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[sEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,b4t),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),ICe),yEe),xse),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,V2t),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),fEe),wee),xV(cEe,Cst(Hx(hEe,1),IZt,175,0,[oEe,uEe,sEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,m6t),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),gEe),Cee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,y6t),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,v6t),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),nht(100)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,w6t),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,x6t),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),nht(4e3)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,R6t),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),nht(400)),mEe),Dee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,_6t),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,k6t),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,E6t),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,C6t),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,h6t),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),oCe),pEe),iDe),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,L2t),w2t),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,O2t),w2t),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,WJt),w2t),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,M2t),w2t),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,yQt),w2t),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,N2t),w2t),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,B2t),w2t),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,j2t),w2t),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,P2t),w2t),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,F2t),w2t),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,mQt),w2t),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,$2t),w2t),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),gEe),Cee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,z2t),w2t),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),gEe),Cee),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[cEe]))))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,H2t),w2t),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),yEe),aDe),xV(cEe,Cst(Hx(hEe,1),IZt,175,0,[oEe,uEe,sEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,m4t),w2t),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),MSe),yEe),xse),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,g4t),D6t),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),mEe),Dee),xV(lEe,Cst(Hx(hEe,1),IZt,175,0,[cEe]))))),a2(t,g4t,f4t,KCe),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,f4t),D6t),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),GCe),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,J2t),I6t),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),OCe),yEe),Ise),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,SQt),I6t),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),NCe),bEe),PTe),xV(cEe,Cst(Hx(hEe,1),IZt,175,0,[sEe]))))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,e4t),L6t),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),JCe),pEe),VTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,n4t),L6t),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),pEe),VTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,i4t),L6t),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),pEe),VTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,a4t),L6t),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),pEe),VTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,r4t),L6t),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),pEe),VTe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,CQt),O6t),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),PCe),bEe),$Ae),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,EQt),O6t),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),HCe),bEe),XAe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,$Qt),O6t),"Node Size Minimum"),"The minimal size to which a node can be reduced."),$Ce),yEe),EEe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,K2t),O6t),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),fEe),wee),Qht(lEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,c4t),D2t),"Edge Label Placement"),"Gives a hint on where to put edge labels."),pCe),pEe),GSe),Qht(sEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,_Qt),D2t),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),fEe),wee),Qht(sEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,S6t),"font"),"Font Name"),"Font name used for a label."),vEe),zee),Qht(sEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,T6t),"font"),"Font Size"),"Font size used for a label."),mEe),Dee),Qht(sEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,h4t),M6t),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),yEe),EEe),Qht(uEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,l4t),M6t),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),mEe),Dee),Qht(uEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,q2t),M6t),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),fSe),pEe),MAe),Qht(uEe)))),Dft(t,new hSt(TR(SR(AR(xR(CR(_R(kR(new zs,U2t),M6t),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),gEe),Cee),Qht(uEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,TQt),N6t),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),uSe),bEe),oAe),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Q2t),N6t),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,t4t),N6t),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,G2t),B6t),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),fEe),wee),Qht(cEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,Z2t),B6t),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),fEe),wee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,YJt),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),gEe),Cee),Qht(oEe)))),Dft(t,new hSt(TR(SR(AR(RR(xR(CR(_R(kR(new zs,A6t),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),vCe),pEe),pTe),Qht(oEe)))),OE(t,new VQ(yR(wR(vR(new ys,f1t),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),OE(t,new VQ(yR(wR(vR(new ys,"org.eclipse.elk.orthogonal"),"Orthogonal"),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.'))),OE(t,new VQ(yR(wR(vR(new ys,pQt),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),OE(t,new VQ(yR(wR(vR(new ys,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),OE(t,new VQ(yR(wR(vR(new ys,K4t),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),OE(t,new VQ(yR(wR(vR(new ys,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),OE(t,new VQ(yR(wR(vR(new ys,f3t),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),hFt((new Ld,t)),Ujt((new Dd,t)),BBt((new Od,t))},bY(l6t,"CoreOptions",684),fIt(103,22,{3:1,35:1,22:1,103:1},BT);var PSe,FSe,jSe,$Se,zSe,HSe,USe=$nt(l6t,_Jt,103,Vte,C6,tz);fIt(272,22,{3:1,35:1,22:1,272:1},PT);var VSe,qSe,WSe,YSe,GSe=$nt(l6t,"EdgeLabelPlacement",272,Vte,z1,ez);fIt(218,22,{3:1,35:1,22:1,218:1},FT);var ZSe,KSe,XSe,JSe,QSe,tTe=$nt(l6t,"EdgeRouting",218,Vte,k4,nz);fIt(312,22,{3:1,35:1,22:1,312:1},jT);var eTe,nTe,iTe,aTe,rTe,oTe,sTe,cTe,lTe,uTe,dTe,hTe,fTe,gTe,pTe=$nt(l6t,"EdgeType",312,Vte,a8,iz);fIt(977,1,ZXt,Ld),kGt.Qe=function(t){hFt(t)},bY(l6t,"FixedLayouterOptions",977),fIt(978,1,{},Ks),kGt.$e=function(){return new Us},kGt._e=function(t){},bY(l6t,"FixedLayouterOptions/FixedFactory",978),fIt(334,22,{3:1,35:1,22:1,334:1},$T);var bTe,mTe,yTe,vTe,wTe=$nt(l6t,"HierarchyHandling",334,Vte,$1,az);fIt(285,22,{3:1,35:1,22:1,285:1},zT);var xTe,RTe,_Te,kTe,ETe,CTe=$nt(l6t,"LabelSide",285,Vte,_4,rz);fIt(93,22,{3:1,35:1,22:1,93:1},HT);var STe,TTe,ATe,DTe,ITe,LTe,OTe,MTe,NTe,BTe,PTe=$nt(l6t,"NodeLabelPlacement",93,Vte,wnt,oz);fIt(249,22,{3:1,35:1,22:1,249:1},UT);var FTe,jTe,$Te,zTe,HTe,UTe,VTe=$nt(l6t,"PortAlignment",249,Vte,S6,sz);fIt(98,22,{3:1,35:1,22:1,98:1},VT);var qTe,WTe,YTe,GTe,ZTe,KTe,XTe,JTe=$nt(l6t,"PortConstraints",98,Vte,k5,cz);fIt(273,22,{3:1,35:1,22:1,273:1},qT);var QTe,tAe,eAe,nAe,iAe,aAe,rAe,oAe=$nt(l6t,"PortLabelPlacement",273,Vte,i8,lz);fIt(61,22,{3:1,35:1,22:1,61:1},WT);var sAe,cAe,lAe,uAe,dAe,hAe,fAe,gAe,pAe,bAe,mAe,yAe,vAe,wAe,xAe,RAe,_Ae,kAe,EAe,CAe,SAe,TAe,AAe,DAe,IAe,LAe,OAe,MAe=$nt(l6t,"PortSide",61,Vte,c6,hz);fIt(981,1,ZXt,Od),kGt.Qe=function(t){BBt(t)},bY(l6t,"RandomLayouterOptions",981),fIt(982,1,{},Xs),kGt.$e=function(){return new ec},kGt._e=function(t){},bY(l6t,"RandomLayouterOptions/RandomFactory",982),fIt(374,22,{3:1,35:1,22:1,374:1},YT);var NAe,BAe,PAe,FAe,jAe,$Ae=$nt(l6t,"SizeConstraint",374,Vte,R4,uz);fIt(259,22,{3:1,35:1,22:1,259:1},GT);var zAe,HAe,UAe,VAe,qAe,WAe,YAe,GAe,ZAe,KAe,XAe=$nt(l6t,"SizeOptions",259,Vte,Rit,dz);fIt(370,1,{1949:1},qv),kGt.b=!1,kGt.c=0,kGt.d=-1,kGt.e=null,kGt.f=null,kGt.g=-1,kGt.j=!1,kGt.k=!1,kGt.n=!1,kGt.o=0,kGt.q=0,kGt.r=0,bY(v4t,"BasicProgressMonitor",370),fIt(972,209,OJt,qs),kGt.Ze=function(t,e){var n,i,a,r,o,s,c,l,u;0===(Akt(e,"Box layout",2),a=Uw(_B(JIt(t,(EEt(),qEe)))),r=jz(JIt(t,HEe),116),n=zw(RB(JIt(t,PEe))),i=zw(RB(JIt(t,FEe))),jz(JIt(t,NEe),311).g)?(s=new QF((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a)),kK(),mL(s,new kb(i)),o=s,c=WSt(t),(null==(l=_B(JIt(t,MEe)))||(vG(l),l<=0))&&(l=1.3),PWt(t,(u=zWt(o,a,r,c.a,c.b,n,(vG(l),l))).a,u.b,!1,!0)):wUt(t,a,r,n),zCt(e)},bY(v4t,"BoxLayoutProvider",972),fIt(973,1,kXt,kb),kGt.ue=function(t,e){return lMt(this,jz(t,33),jz(e,33))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},kGt.a=!1,bY(v4t,"BoxLayoutProvider/1",973),fIt(157,1,{157:1},Uet,UN),kGt.Ib=function(){return this.c?VPt(this.c):LEt(this.b)},bY(v4t,"BoxLayoutProvider/Group",157),fIt(311,22,{3:1,35:1,22:1,311:1},ZT);var JAe,QAe,tDe,eDe,nDe,iDe=$nt(v4t,"BoxLayoutProvider/PackingMode",311,Vte,E4,fz);fIt(974,1,kXt,Ws),kGt.ue=function(t,e){return MK(jz(t,157),jz(e,157))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(v4t,"BoxLayoutProvider/lambda$0$Type",974),fIt(975,1,kXt,Ys),kGt.ue=function(t,e){return iK(jz(t,157),jz(e,157))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(v4t,"BoxLayoutProvider/lambda$1$Type",975),fIt(976,1,kXt,Gs),kGt.ue=function(t,e){return aK(jz(t,157),jz(e,157))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(v4t,"BoxLayoutProvider/lambda$2$Type",976),fIt(1365,1,{831:1},Zs),kGt.qg=function(t,e){return AE(),!iO(e,160)||k_((Ost(),jz(t,160)),e)},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1365),fIt(1366,1,dZt,Eb),kGt.td=function(t){Xlt(this.a,jz(t,146))},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1366),fIt(1367,1,dZt,Vs),kGt.td=function(t){jz(t,94),AE()},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1367),fIt(1371,1,dZt,Cb),kGt.td=function(t){Aat(this.a,jz(t,94))},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1371),fIt(1369,1,NZt,KT),kGt.Mb=function(t){return Gct(this.a,this.b,jz(t,146))},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1369),fIt(1368,1,NZt,XT),kGt.Mb=function(t){return DN(this.a,this.b,jz(t,831))},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1368),fIt(1370,1,dZt,JT),kGt.td=function(t){Fq(this.a,this.b,jz(t,146))},bY(v4t,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1370),fIt(935,1,{},Hs),kGt.Kb=function(t){return yI(t)},kGt.Fb=function(t){return this===t},bY(v4t,"ElkUtil/lambda$0$Type",935),fIt(936,1,dZt,QT),kGt.td=function(t){iDt(this.a,this.b,jz(t,79))},kGt.a=0,kGt.b=0,bY(v4t,"ElkUtil/lambda$1$Type",936),fIt(937,1,dZt,tA),kGt.td=function(t){xw(this.a,this.b,jz(t,202))},kGt.a=0,kGt.b=0,bY(v4t,"ElkUtil/lambda$2$Type",937),fIt(938,1,dZt,eA),kGt.td=function(t){QI(this.a,this.b,jz(t,137))},kGt.a=0,kGt.b=0,bY(v4t,"ElkUtil/lambda$3$Type",938),fIt(939,1,dZt,Sb),kGt.td=function(t){iU(this.a,jz(t,469))},bY(v4t,"ElkUtil/lambda$4$Type",939),fIt(342,1,{35:1,342:1},Dm),kGt.wd=function(t){return bO(this,jz(t,236))},kGt.Fb=function(t){var e;return!!iO(t,342)&&(e=jz(t,342),this.a==e.a)},kGt.Hb=function(){return CJ(this.a)},kGt.Ib=function(){return this.a+" (exclusive)"},kGt.a=0,bY(v4t,"ExclusiveBounds/ExclusiveLowerBound",342),fIt(1138,209,OJt,Us),kGt.Ze=function(t,e){var n,a,r,o,s,c,l,d,h,f,g,p,b,m,y,v,w,x,R,_,k;for(Akt(e,"Fixed Layout",1),o=jz(JIt(t,(cGt(),bCe)),218),f=0,g=0,y=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));y.e!=y.i.gc();){for(b=jz(wmt(y),33),(k=jz(JIt(b,(Wlt(),gTe)),8))&&(kI(b,k.a,k.b),jz(JIt(b,lTe),174).Hc((ypt(),NAe))&&(p=jz(JIt(b,dTe),8)).a>0&&p.b>0&&PWt(b,p.a,p.b,!0,!0)),f=i.Math.max(f,b.i+b.g),g=i.Math.max(g,b.j+b.f),d=new AO((!b.n&&(b.n=new tW(HDe,b,1,7)),b.n));d.e!=d.i.gc();)c=jz(wmt(d),137),(k=jz(JIt(c,gTe),8))&&kI(c,k.a,k.b),f=i.Math.max(f,b.i+c.i+c.g),g=i.Math.max(g,b.j+c.j+c.f);for(x=new AO((!b.c&&(b.c=new tW(VDe,b,9,9)),b.c));x.e!=x.i.gc();)for(w=jz(wmt(x),118),(k=jz(JIt(w,gTe),8))&&kI(w,k.a,k.b),R=b.i+w.i,_=b.j+w.j,f=i.Math.max(f,R+w.g),g=i.Math.max(g,_+w.f),l=new AO((!w.n&&(w.n=new tW(HDe,w,1,7)),w.n));l.e!=l.i.gc();)c=jz(wmt(l),137),(k=jz(JIt(c,gTe),8))&&kI(c,k.a,k.b),f=i.Math.max(f,R+c.i+c.g),g=i.Math.max(g,_+c.j+c.f);for(r=new oq(XO(gOt(b).a.Kc(),new u));gIt(r);)h=FWt(n=jz(V6(r),79)),f=i.Math.max(f,h.a),g=i.Math.max(g,h.b);for(a=new oq(XO(fOt(b).a.Kc(),new u));gIt(a);)KJ(CEt(n=jz(V6(a),79)))!=t&&(h=FWt(n),f=i.Math.max(f,h.a),g=i.Math.max(g,h.b))}if(o==(kft(),ZSe))for(m=new AO((!t.a&&(t.a=new tW(UDe,t,10,11)),t.a));m.e!=m.i.gc();)for(a=new oq(XO(gOt(b=jz(wmt(m),33)).a.Kc(),new u));gIt(a);)0==(s=i$t(n=jz(V6(a),79))).b?Kmt(n,TCe,null):Kmt(n,TCe,s);zw(RB(JIt(t,(Wlt(),uTe))))||PWt(t,f+(v=jz(JIt(t,hTe),116)).b+v.c,g+v.d+v.a,!0,!0),zCt(e)},bY(v4t,"FixedLayoutProvider",1138),fIt(373,134,{3:1,414:1,373:1,94:1,134:1},Js,ntt),kGt.Jf=function(t){var e,n,i,a,r,o,s;if(t)try{for(o=wFt(t,";,;"),a=0,r=(i=o).length;a<r;++a){if(e=wFt(i[a],"\\:"),!(n=bVt(ait(),e[0])))throw $m(new Pw("Invalid option id: "+e[0]));if(null==(s=JUt(n,e[1])))throw $m(new Pw("Invalid option value: "+e[1]));null==s?(!this.q&&(this.q=new Om),b7(this.q,n)):(!this.q&&(this.q=new Om),YG(this.q,n,s))}}catch(c){throw iO(c=dst(c),102)?$m(new jlt(c)):$m(c)}},kGt.Ib=function(){return kB(E3(DZ((this.q?this.q:(kK(),kK(),lne)).vc().Oc(),new Qs),O9(new Zz,new Q,new G,new Z,Cst(Hx(Jne,1),IZt,132,0,[]))))};var aDe=bY(v4t,"IndividualSpacings",373);fIt(971,1,{},Qs),kGt.Kb=function(t){return NK(jz(t,42))},bY(v4t,"IndividualSpacings/lambda$0$Type",971),fIt(709,1,{},sV),kGt.c=0,bY(v4t,"InstancePool",709),fIt(1275,1,{},tc),bY(v4t,"LoggedGraph",1275),fIt(396,22,{3:1,35:1,22:1,396:1},iA);var rDe,oDe,sDe,cDe,lDe,uDe,dDe,hDe=$nt(v4t,"LoggedGraph/Type",396,Vte,C4,gz);fIt(46,1,{20:1,46:1},nA),kGt.Jc=function(t){t6(this,t)},kGt.Fb=function(t){var e,n,i;return!!iO(t,46)&&(n=jz(t,46),e=null==this.a?null==n.a:Odt(this.a,n.a),i=null==this.b?null==n.b:Odt(this.b,n.b),e&&i)},kGt.Hb=function(){var t,e,n;return t=-65536&(e=null==this.a?0:Qct(this.a)),e&ZZt^(-65536&(n=null==this.b?0:Qct(this.b)))>>16&ZZt|t^(n&ZZt)<<16},kGt.Kc=function(){return new Tb(this)},kGt.Ib=function(){return null==this.a&&null==this.b?"pair(null,null)":null==this.a?"pair(null,"+$ft(this.b)+")":null==this.b?"pair("+$ft(this.a)+",null)":"pair("+$ft(this.a)+","+$ft(this.b)+")"},bY(v4t,"Pair",46),fIt(983,1,ZGt,Tb),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return!this.c&&(!this.b&&null!=this.a.a||null!=this.a.b)},kGt.Pb=function(){if(!this.c&&!this.b&&null!=this.a.a)return this.b=!0,this.a.a;if(!this.c&&null!=this.a.b)return this.c=!0,this.a.b;throw $m(new yy)},kGt.Qb=function(){throw this.c&&null!=this.a.b?this.a.b=null:this.b&&null!=this.a.a&&(this.a.a=null),$m(new fy)},kGt.b=!1,kGt.c=!1,bY(v4t,"Pair/1",983),fIt(448,1,{448:1},YZ),kGt.Fb=function(t){return iZ(this.a,jz(t,448).a)&&iZ(this.c,jz(t,448).c)&&iZ(this.d,jz(t,448).d)&&iZ(this.b,jz(t,448).b)},kGt.Hb=function(){return uut(Cst(Hx(Dte,1),zGt,1,5,[this.a,this.c,this.d,this.b]))},kGt.Ib=function(){return"("+this.a+jGt+this.c+jGt+this.d+jGt+this.b+")"},bY(v4t,"Quadruple",448),fIt(1126,209,OJt,ec),kGt.Ze=function(t,e){var n;Akt(e,"Random Layout",1),0!=(!t.a&&(t.a=new tW(UDe,t,10,11)),t.a).i?(nWt(t,(n=jz(JIt(t,(mpt(),LAe)),19))&&0!=n.a?new C3(n.a):new cft,Uw(_B(JIt(t,AAe))),Uw(_B(JIt(t,OAe))),jz(JIt(t,DAe),116)),zCt(e)):zCt(e)},bY(v4t,"RandomLayoutProvider",1126),fIt(553,1,{}),kGt.qf=function(){return new OT(this.f.i,this.f.j)},kGt.We=function(t){return xX(t,(cGt(),aSe))?JIt(this.f,dDe):JIt(this.f,t)},kGt.rf=function(){return new OT(this.f.g,this.f.f)},kGt.sf=function(){return this.g},kGt.Xe=function(t){return E5(this.f,t)},kGt.tf=function(t){Cnt(this.f,t.a),Snt(this.f,t.b)},kGt.uf=function(t){Ent(this.f,t.a),knt(this.f,t.b)},kGt.vf=function(t){this.g=t},kGt.g=0,bY(z6t,"ElkGraphAdapters/AbstractElkGraphElementAdapter",553),fIt(554,1,{839:1},Ab),kGt.wf=function(){var t,e;if(!this.b)for(this.b=C2(mZ(this.a).i),e=new AO(mZ(this.a));e.e!=e.i.gc();)t=jz(wmt(e),137),Wz(this.b,new Nw(t));return this.b},kGt.b=null,bY(z6t,"ElkGraphAdapters/ElkEdgeAdapter",554),fIt(301,553,{},Mw),kGt.xf=function(){return ewt(this)},kGt.a=null,bY(z6t,"ElkGraphAdapters/ElkGraphAdapter",301),fIt(630,553,{181:1},Nw),bY(z6t,"ElkGraphAdapters/ElkLabelAdapter",630),fIt(629,553,{680:1},KM),kGt.wf=function(){return Qvt(this)},kGt.Af=function(){var t;return!(t=jz(JIt(this.f,(cGt(),DCe)),142))&&(t=new uv),t},kGt.Cf=function(){return twt(this)},kGt.Ef=function(t){var e;e=new Aj(t),Kmt(this.f,(cGt(),DCe),e)},kGt.Ff=function(t){Kmt(this.f,(cGt(),qCe),new Tj(t))},kGt.yf=function(){return this.d},kGt.zf=function(){var t,e;if(!this.a)for(this.a=new Lm,e=new oq(XO(fOt(jz(this.f,33)).a.Kc(),new u));gIt(e);)t=jz(V6(e),79),Wz(this.a,new Ab(t));return this.a},kGt.Bf=function(){var t,e;if(!this.c)for(this.c=new Lm,e=new oq(XO(gOt(jz(this.f,33)).a.Kc(),new u));gIt(e);)t=jz(V6(e),79),Wz(this.c,new Ab(t));return this.c},kGt.Df=function(){return 0!=ZK(jz(this.f,33)).i||zw(RB(jz(this.f,33).We((cGt(),kCe))))},kGt.Gf=function(){P9(this,(HE(),uDe))},kGt.a=null,kGt.b=null,kGt.c=null,kGt.d=null,kGt.e=null,bY(z6t,"ElkGraphAdapters/ElkNodeAdapter",629),fIt(1266,553,{838:1},om),kGt.wf=function(){return wwt(this)},kGt.zf=function(){var t,e;if(!this.a)for(this.a=sN(jz(this.f,118).xg().i),e=new AO(jz(this.f,118).xg());e.e!=e.i.gc();)t=jz(wmt(e),79),Wz(this.a,new Ab(t));return this.a},kGt.Bf=function(){var t,e;if(!this.c)for(this.c=sN(jz(this.f,118).yg().i),e=new AO(jz(this.f,118).yg());e.e!=e.i.gc();)t=jz(wmt(e),79),Wz(this.c,new Ab(t));return this.c},kGt.Hf=function(){return jz(jz(this.f,118).We((cGt(),hSe)),61)},kGt.If=function(){var t,e,n,i,a,r,o;for(i=WJ(jz(this.f,118)),n=new AO(jz(this.f,118).yg());n.e!=n.i.gc();)for(o=new AO((!(t=jz(wmt(n),79)).c&&(t.c=new cF(NDe,t,5,8)),t.c));o.e!=o.i.gc();){if(Set(Ckt(r=jz(wmt(o),82)),i))return!0;if(Ckt(r)==i&&zw(RB(JIt(t,(cGt(),ECe)))))return!0}for(e=new AO(jz(this.f,118).xg());e.e!=e.i.gc();)for(a=new AO((!(t=jz(wmt(e),79)).b&&(t.b=new cF(NDe,t,4,7)),t.b));a.e!=a.i.gc();)if(Set(Ckt(jz(wmt(a),82)),i))return!0;return!1},kGt.a=null,kGt.b=null,kGt.c=null,bY(z6t,"ElkGraphAdapters/ElkPortAdapter",1266),fIt(1267,1,kXt,nc),kGt.ue=function(t,e){return UPt(jz(t,118),jz(e,118))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(z6t,"ElkGraphAdapters/PortComparator",1267);var fDe,gDe,pDe,bDe,mDe,yDe,vDe,wDe,xDe,RDe,_De,kDe,EDe,CDe,SDe,TDe,ADe,DDe=dU(H6t,"EObject"),IDe=dU(U6t,V6t),LDe=dU(U6t,q6t),ODe=dU(U6t,W6t),MDe=dU(U6t,"ElkShape"),NDe=dU(U6t,Y6t),BDe=dU(U6t,G6t),PDe=dU(U6t,Z6t),FDe=dU(H6t,K6t),jDe=dU(H6t,"EFactory"),$De=dU(H6t,X6t),zDe=dU(H6t,"EPackage"),HDe=dU(U6t,J6t),UDe=dU(U6t,Q6t),VDe=dU(U6t,t7t);fIt(90,1,e7t),kGt.Jg=function(){return this.Kg(),null},kGt.Kg=function(){return null},kGt.Lg=function(){return this.Kg(),!1},kGt.Mg=function(){return!1},kGt.Ng=function(t){hot(this,t)},bY(n7t,"BasicNotifierImpl",90),fIt(97,90,u7t),kGt.nh=function(){return mI(this)},kGt.Og=function(t,e){return t},kGt.Pg=function(){throw $m(new py)},kGt.Qg=function(t){var e;return e=Syt(jz(eet(this.Tg(),this.Vg()),18)),this.eh().ih(this,e.n,e.f,t)},kGt.Rg=function(t,e){throw $m(new py)},kGt.Sg=function(t,e,n){return _jt(this,t,e,n)},kGt.Tg=function(){var t;return this.Pg()&&(t=this.Pg().ck())?t:this.zh()},kGt.Ug=function(){return aIt(this)},kGt.Vg=function(){throw $m(new py)},kGt.Wg=function(){var t,e;return!(e=this.ph().dk())&&this.Pg().ik((GE(),e=null==(t=uJ(H$t(this.Tg())))?ILe:new GM(this,t))),e},kGt.Xg=function(t,e){return t},kGt.Yg=function(t){return t.Gj()?t.aj():Dgt(this.Tg(),t)},kGt.Zg=function(){var t;return(t=this.Pg())?t.fk():null},kGt.$g=function(){return this.Pg()?this.Pg().ck():null},kGt._g=function(t,e,n){return Jmt(this,t,e,n)},kGt.ah=function(t){return k8(this,t)},kGt.bh=function(t,e){return Y6(this,t,e)},kGt.dh=function(){var t;return!!(t=this.Pg())&&t.gk()},kGt.eh=function(){throw $m(new py)},kGt.fh=function(){return Kpt(this)},kGt.gh=function(t,e,n,i){return Omt(this,t,e,i)},kGt.hh=function(t,e,n){return jz(eet(this.Tg(),e),66).Nj().Qj(this,this.yh(),e-this.Ah(),t,n)},kGt.ih=function(t,e,n,i){return oJ(this,t,e,i)},kGt.jh=function(t,e,n){return jz(eet(this.Tg(),e),66).Nj().Rj(this,this.yh(),e-this.Ah(),t,n)},kGt.kh=function(){return!!this.Pg()&&!!this.Pg().ek()},kGt.lh=function(t){return mmt(this,t)},kGt.mh=function(t){return XJ(this,t)},kGt.oh=function(t){return FUt(this,t)},kGt.ph=function(){throw $m(new py)},kGt.qh=function(){return this.Pg()?this.Pg().ek():null},kGt.rh=function(){return Kpt(this)},kGt.sh=function(t,e){vTt(this,t,e)},kGt.th=function(t){this.ph().hk(t)},kGt.uh=function(t){this.ph().kk(t)},kGt.vh=function(t){this.ph().jk(t)},kGt.wh=function(t,e){var n,i,a,r;return(r=this.Zg())&&t&&(e=Fmt(r.Vk(),this,e),r.Zk(this)),(i=this.eh())&&(pFt(this,this.eh(),this.Vg()).Bb&$Kt?(a=i.fh())&&(t?!r&&a.Zk(this):a.Yk(this)):(e=(n=this.Vg())>=0?this.Qg(e):this.eh().ih(this,-1-n,null,e),e=this.Sg(null,-1,e))),this.uh(t),e},kGt.xh=function(t){var e,n,i,a,r,o,s;if((r=Dgt(n=this.Tg(),t))>=(e=this.Ah()))return jz(t,66).Nj().Uj(this,this.yh(),r-e);if(r<=-1){if(!(o=jUt((TSt(),KLe),n,t)))throw $m(new Pw(i7t+t.ne()+o7t));if(XE(),jz(o,66).Oj()||(o=X1(j9(KLe,o))),a=jz((i=this.Yg(o))>=0?this._g(i,!0,!0):aDt(this,o,!0),153),(s=o.Zj())>1||-1==s)return jz(jz(a,215).hl(t,!1),76)}else if(t.$j())return jz((i=this.Yg(t))>=0?this._g(i,!1,!0):aDt(this,t,!1),76);return new SA(this,t)},kGt.yh=function(){return G9(this)},kGt.zh=function(){return(GY(),JIe).S},kGt.Ah=function(){return dY(this.zh())},kGt.Bh=function(t){ySt(this,t)},kGt.Ib=function(){return CLt(this)},bY(d7t,"BasicEObjectImpl",97),fIt(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1}),kGt.Ch=function(t){return Z9(this)[t]},kGt.Dh=function(t,e){DY(Z9(this),t,e)},kGt.Eh=function(t){DY(Z9(this),t,null)},kGt.Jg=function(){return jz(vot(this,4),126)},kGt.Kg=function(){throw $m(new py)},kGt.Lg=function(){return 0!=(4&this.Db)},kGt.Pg=function(){throw $m(new py)},kGt.Fh=function(t){lbt(this,2,t)},kGt.Rg=function(t,e){this.Db=e<<16|255&this.Db,this.Fh(t)},kGt.Tg=function(){return wX(this)},kGt.Vg=function(){return this.Db>>16},kGt.Wg=function(){var t;return GE(),null==(t=uJ(H$t(jz(vot(this,16),26)||this.zh())))?ILe:new GM(this,t)},kGt.Mg=function(){return 0==(1&this.Db)},kGt.Zg=function(){return jz(vot(this,128),1935)},kGt.$g=function(){return jz(vot(this,16),26)},kGt.dh=function(){return 0!=(32&this.Db)},kGt.eh=function(){return jz(vot(this,2),49)},kGt.kh=function(){return 0!=(64&this.Db)},kGt.ph=function(){throw $m(new py)},kGt.qh=function(){return jz(vot(this,64),281)},kGt.th=function(t){lbt(this,16,t)},kGt.uh=function(t){lbt(this,128,t)},kGt.vh=function(t){lbt(this,64,t)},kGt.yh=function(){return ubt(this)},kGt.Db=0,bY(d7t,"MinimalEObjectImpl",114),fIt(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),kGt.Fh=function(t){this.Cb=t},kGt.eh=function(){return this.Cb},bY(d7t,"MinimalEObjectImpl/Container",115),fIt(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),kGt._g=function(t,e,n){return Rwt(this,t,e,n)},kGt.jh=function(t,e,n){return eCt(this,t,e,n)},kGt.lh=function(t){return m0(this,t)},kGt.sh=function(t,e){ilt(this,t,e)},kGt.zh=function(){return SYt(),EDe},kGt.Bh=function(t){Vst(this,t)},kGt.Ve=function(){return dmt(this)},kGt.We=function(t){return JIt(this,t)},kGt.Xe=function(t){return E5(this,t)},kGt.Ye=function(t,e){return Kmt(this,t,e)},bY(h7t,"EMapPropertyHolderImpl",1985),fIt(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rc),kGt._g=function(t,e,n){switch(t){case 0:return this.a;case 1:return this.b}return Jmt(this,t,e,n)},kGt.lh=function(t){switch(t){case 0:return 0!=this.a;case 1:return 0!=this.b}return mmt(this,t)},kGt.sh=function(t,e){switch(t){case 0:return void xnt(this,Hw(_B(e)));case 1:return void Rnt(this,Hw(_B(e)))}vTt(this,t,e)},kGt.zh=function(){return SYt(),pDe},kGt.Bh=function(t){switch(t){case 0:return void xnt(this,0);case 1:return void Rnt(this,0)}ySt(this,t)},kGt.Ib=function(){var t;return 64&this.Db?CLt(this):((t=new lM(CLt(this))).a+=" (x: ",b_(t,this.a),t.a+=", y: ",b_(t,this.b),t.a+=")",t.a)},kGt.a=0,kGt.b=0,bY(h7t,"ElkBendPointImpl",567),fIt(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),kGt._g=function(t,e,n){return Fdt(this,t,e,n)},kGt.hh=function(t,e,n){return jkt(this,t,e,n)},kGt.jh=function(t,e,n){return ist(this,t,e,n)},kGt.lh=function(t){return Rot(this,t)},kGt.sh=function(t,e){URt(this,t,e)},kGt.zh=function(){return SYt(),vDe},kGt.Bh=function(t){sdt(this,t)},kGt.zg=function(){return this.k},kGt.Ag=function(){return mZ(this)},kGt.Ib=function(){return Kht(this)},kGt.k=null,bY(h7t,"ElkGraphElementImpl",723),fIt(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),kGt._g=function(t,e,n){return Bft(this,t,e,n)},kGt.lh=function(t){return ugt(this,t)},kGt.sh=function(t,e){VRt(this,t,e)},kGt.zh=function(){return SYt(),kDe},kGt.Bh=function(t){Ngt(this,t)},kGt.Bg=function(){return this.f},kGt.Cg=function(){return this.g},kGt.Dg=function(){return this.i},kGt.Eg=function(){return this.j},kGt.Fg=function(t,e){_I(this,t,e)},kGt.Gg=function(t,e){kI(this,t,e)},kGt.Hg=function(t){Cnt(this,t)},kGt.Ig=function(t){Snt(this,t)},kGt.Ib=function(){return yCt(this)},kGt.f=0,kGt.g=0,kGt.i=0,kGt.j=0,bY(h7t,"ElkShapeImpl",724),fIt(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),kGt._g=function(t,e,n){return zyt(this,t,e,n)},kGt.hh=function(t,e,n){return gRt(this,t,e,n)},kGt.jh=function(t,e,n){return pRt(this,t,e,n)},kGt.lh=function(t){return Uct(this,t)},kGt.sh=function(t,e){LIt(this,t,e)},kGt.zh=function(){return SYt(),bDe},kGt.Bh=function(t){Mmt(this,t)},kGt.xg=function(){return!this.d&&(this.d=new cF(BDe,this,8,5)),this.d},kGt.yg=function(){return!this.e&&(this.e=new cF(BDe,this,7,4)),this.e},bY(h7t,"ElkConnectableShapeImpl",725),fIt(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ac),kGt.Qg=function(t){return kxt(this,t)},kGt._g=function(t,e,n){switch(t){case 3:return qJ(this);case 4:return!this.b&&(this.b=new cF(NDe,this,4,7)),this.b;case 5:return!this.c&&(this.c=new cF(NDe,this,5,8)),this.c;case 6:return!this.a&&(this.a=new tW(PDe,this,6,6)),this.a;case 7:return cM(),!this.b&&(this.b=new cF(NDe,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new cF(NDe,this,5,8)),this.c.i<=1));case 8:return cM(),!!QDt(this);case 9:return cM(),!!ZAt(this);case 10:return cM(),!this.b&&(this.b=new cF(NDe,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new cF(NDe,this,5,8)),0!=this.c.i)}return Fdt(this,t,e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 3:return this.Cb&&(n=(i=this.Db>>16)>=0?kxt(this,n):this.Cb.ih(this,-1-i,null,n)),YB(this,jz(t,33),n);case 4:return!this.b&&(this.b=new cF(NDe,this,4,7)),Kgt(this.b,t,n);case 5:return!this.c&&(this.c=new cF(NDe,this,5,8)),Kgt(this.c,t,n);case 6:return!this.a&&(this.a=new tW(PDe,this,6,6)),Kgt(this.a,t,n)}return jkt(this,t,e,n)},kGt.jh=function(t,e,n){switch(e){case 3:return YB(this,null,n);case 4:return!this.b&&(this.b=new cF(NDe,this,4,7)),Fmt(this.b,t,n);case 5:return!this.c&&(this.c=new cF(NDe,this,5,8)),Fmt(this.c,t,n);case 6:return!this.a&&(this.a=new tW(PDe,this,6,6)),Fmt(this.a,t,n)}return ist(this,t,e,n)},kGt.lh=function(t){switch(t){case 3:return!!qJ(this);case 4:return!!this.b&&0!=this.b.i;case 5:return!!this.c&&0!=this.c.i;case 6:return!!this.a&&0!=this.a.i;case 7:return!this.b&&(this.b=new cF(NDe,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new cF(NDe,this,5,8)),this.c.i<=1));case 8:return QDt(this);case 9:return ZAt(this);case 10:return!this.b&&(this.b=new cF(NDe,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new cF(NDe,this,5,8)),0!=this.c.i)}return Rot(this,t)},kGt.sh=function(t,e){switch(t){case 3:return void zOt(this,jz(e,33));case 4:return!this.b&&(this.b=new cF(NDe,this,4,7)),cUt(this.b),!this.b&&(this.b=new cF(NDe,this,4,7)),void pY(this.b,jz(e,14));case 5:return!this.c&&(this.c=new cF(NDe,this,5,8)),cUt(this.c),!this.c&&(this.c=new cF(NDe,this,5,8)),void pY(this.c,jz(e,14));case 6:return!this.a&&(this.a=new tW(PDe,this,6,6)),cUt(this.a),!this.a&&(this.a=new tW(PDe,this,6,6)),void pY(this.a,jz(e,14))}URt(this,t,e)},kGt.zh=function(){return SYt(),mDe},kGt.Bh=function(t){switch(t){case 3:return void zOt(this,null);case 4:return!this.b&&(this.b=new cF(NDe,this,4,7)),void cUt(this.b);case 5:return!this.c&&(this.c=new cF(NDe,this,5,8)),void cUt(this.c);case 6:return!this.a&&(this.a=new tW(PDe,this,6,6)),void cUt(this.a)}sdt(this,t)},kGt.Ib=function(){return dHt(this)},bY(h7t,"ElkEdgeImpl",352),fIt(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},oc),kGt.Qg=function(t){return cxt(this,t)},kGt._g=function(t,e,n){switch(t){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new DO(LDe,this,5)),this.a;case 6:return YJ(this);case 7:return e?Cyt(this):this.i;case 8:return e?Eyt(this):this.f;case 9:return!this.g&&(this.g=new cF(PDe,this,9,10)),this.g;case 10:return!this.e&&(this.e=new cF(PDe,this,10,9)),this.e;case 11:return this.d}return Rwt(this,t,e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?cxt(this,n):this.Cb.ih(this,-1-i,null,n)),GB(this,jz(t,79),n);case 9:return!this.g&&(this.g=new cF(PDe,this,9,10)),Kgt(this.g,t,n);case 10:return!this.e&&(this.e=new cF(PDe,this,10,9)),Kgt(this.e,t,n)}return jz(eet(jz(vot(this,16),26)||(SYt(),yDe),e),66).Nj().Qj(this,ubt(this),e-dY((SYt(),yDe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 5:return!this.a&&(this.a=new DO(LDe,this,5)),Fmt(this.a,t,n);case 6:return GB(this,null,n);case 9:return!this.g&&(this.g=new cF(PDe,this,9,10)),Fmt(this.g,t,n);case 10:return!this.e&&(this.e=new cF(PDe,this,10,9)),Fmt(this.e,t,n)}return eCt(this,t,e,n)},kGt.lh=function(t){switch(t){case 1:return 0!=this.j;case 2:return 0!=this.k;case 3:return 0!=this.b;case 4:return 0!=this.c;case 5:return!!this.a&&0!=this.a.i;case 6:return!!YJ(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&0!=this.g.i;case 10:return!!this.e&&0!=this.e.i;case 11:return null!=this.d}return m0(this,t)},kGt.sh=function(t,e){switch(t){case 1:return void Tnt(this,Hw(_B(e)));case 2:return void Dnt(this,Hw(_B(e)));case 3:return void _nt(this,Hw(_B(e)));case 4:return void Ant(this,Hw(_B(e)));case 5:return!this.a&&(this.a=new DO(LDe,this,5)),cUt(this.a),!this.a&&(this.a=new DO(LDe,this,5)),void pY(this.a,jz(e,14));case 6:return void jOt(this,jz(e,79));case 7:return void Oit(this,jz(e,82));case 8:return void Lit(this,jz(e,82));case 9:return!this.g&&(this.g=new cF(PDe,this,9,10)),cUt(this.g),!this.g&&(this.g=new cF(PDe,this,9,10)),void pY(this.g,jz(e,14));case 10:return!this.e&&(this.e=new cF(PDe,this,10,9)),cUt(this.e),!this.e&&(this.e=new cF(PDe,this,10,9)),void pY(this.e,jz(e,14));case 11:return void aat(this,kB(e))}ilt(this,t,e)},kGt.zh=function(){return SYt(),yDe},kGt.Bh=function(t){switch(t){case 1:return void Tnt(this,0);case 2:return void Dnt(this,0);case 3:return void _nt(this,0);case 4:return void Ant(this,0);case 5:return!this.a&&(this.a=new DO(LDe,this,5)),void cUt(this.a);case 6:return void jOt(this,null);case 7:return void Oit(this,null);case 8:return void Lit(this,null);case 9:return!this.g&&(this.g=new cF(PDe,this,9,10)),void cUt(this.g);case 10:return!this.e&&(this.e=new cF(PDe,this,10,9)),void cUt(this.e);case 11:return void aat(this,null)}Vst(this,t)},kGt.Ib=function(){return BDt(this)},kGt.b=0,kGt.c=0,kGt.d=null,kGt.j=0,kGt.k=0,bY(h7t,"ElkEdgeSectionImpl",439),fIt(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),kGt._g=function(t,e,n){return 0==t?(!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab):V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.hh=function(t,e,n){return 0==e?(!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n)):jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Qj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.jh=function(t,e,n){return 0==e?(!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n)):jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Rj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.lh=function(t){return 0==t?!!this.Ab&&0!=this.Ab.i:T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.oh=function(t){return lWt(this,t)},kGt.sh=function(t,e){if(0===t)return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.uh=function(t){lbt(this,128,t)},kGt.zh=function(){return pGt(),uLe},kGt.Bh=function(t){if(0===t)return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.Gh=function(){this.Bb|=1},kGt.Hh=function(t){return Ojt(this,t)},kGt.Bb=0,bY(d7t,"EModelElementImpl",150),fIt(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},Md),kGt.Ih=function(t,e){return HVt(this,t,e)},kGt.Jh=function(t){var e,n,i,a;if(this.a!=qet(t)||256&t.Bb)throw $m(new Pw(y7t+t.zb+p7t));for(n=vX(t);0!=a3(n.a).i;){if(nwt(e=jz(eVt(n,0,iO(a=jz(Yet(a3(n.a),0),87).c,88)?jz(a,26):(pGt(),hLe)),26)))return jz(i=qet(e).Nh().Jh(e),49).th(t),i;n=vX(e)}return"java.util.Map$Entry"==(null!=t.D?t.D:t.B)?new lU(t):new wH(t)},kGt.Kh=function(t,e){return MYt(this,t,e)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.a}return V8(this,t-dY((pGt(),sLe)),eet(jz(vot(this,16),26)||sLe,t),e,n)},kGt.hh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 1:return this.a&&(n=jz(this.a,49).ih(this,4,zDe,n)),Xut(this,jz(t,235),n)}return jz(eet(jz(vot(this,16),26)||(pGt(),sLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),sLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 1:return Xut(this,null,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),sLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),sLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return!!this.a}return T4(this,t-dY((pGt(),sLe)),eet(jz(vot(this,16),26)||sLe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void MEt(this,jz(e,235))}Lft(this,t-dY((pGt(),sLe)),eet(jz(vot(this,16),26)||sLe,t),e)},kGt.zh=function(){return pGt(),sLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void MEt(this,null)}Hdt(this,t-dY((pGt(),sLe)),eet(jz(vot(this,16),26)||sLe,t))},bY(d7t,"EFactoryImpl",704),fIt(w7t,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},sc),kGt.Ih=function(t,e){switch(t.yj()){case 12:return jz(e,146).tg();case 13:return $ft(e);default:throw $m(new Pw(g7t+t.ne()+p7t))}},kGt.Jh=function(t){var e;switch(-1==t.G&&(t.G=(e=qet(t))?oyt(e.Mh(),t):-1),t.G){case 4:return new cc;case 6:return new wv;case 7:return new xv;case 8:return new ac;case 9:return new rc;case 10:return new oc;case 11:return new uc;default:throw $m(new Pw(y7t+t.zb+p7t))}},kGt.Kh=function(t,e){switch(t.yj()){case 13:case 12:return null;default:throw $m(new Pw(g7t+t.ne()+p7t))}},bY(h7t,"ElkGraphFactoryImpl",w7t),fIt(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),kGt.Wg=function(){var t;return null==(t=uJ(H$t(jz(vot(this,16),26)||this.zh())))?(GE(),GE(),ILe):new WN(this,t)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.ne()}return V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb}return T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void this.Lh(kB(e))}Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.zh=function(){return pGt(),dLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void this.Lh(null)}Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.ne=function(){return this.zb},kGt.Lh=function(t){Oat(this,t)},kGt.Ib=function(){return wdt(this)},kGt.zb=null,bY(d7t,"ENamedElementImpl",438),fIt(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},bX),kGt.Qg=function(t){return fxt(this,t)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new Kq(this,jIe,this)),this.rb;case 6:return!this.vb&&(this.vb=new tF(zDe,this,6,7)),this.vb;case 7:return e?this.Db>>16==7?jz(this.Cb,235):null:GJ(this)}return V8(this,t-dY((pGt(),pLe)),eet(jz(vot(this,16),26)||pLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 4:return this.sb&&(n=jz(this.sb,49).ih(this,1,jDe,n)),xdt(this,jz(t,471),n);case 5:return!this.rb&&(this.rb=new Kq(this,jIe,this)),Kgt(this.rb,t,n);case 6:return!this.vb&&(this.vb=new tF(zDe,this,6,7)),Kgt(this.vb,t,n);case 7:return this.Cb&&(n=(i=this.Db>>16)>=0?fxt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,7,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),pLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),pLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 4:return xdt(this,null,n);case 5:return!this.rb&&(this.rb=new Kq(this,jIe,this)),Fmt(this.rb,t,n);case 6:return!this.vb&&(this.vb=new tF(zDe,this,6,7)),Fmt(this.vb,t,n);case 7:return _jt(this,null,7,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),pLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),pLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.yb;case 3:return null!=this.xb;case 4:return!!this.sb;case 5:return!!this.rb&&0!=this.rb.i;case 6:return!!this.vb&&0!=this.vb.i;case 7:return!!GJ(this)}return T4(this,t-dY((pGt(),pLe)),eet(jz(vot(this,16),26)||pLe,t))},kGt.oh=function(t){return LMt(this,t)||lWt(this,t)},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void Oat(this,kB(e));case 2:return void Nat(this,kB(e));case 3:return void Mat(this,kB(e));case 4:return void nCt(this,jz(e,471));case 5:return!this.rb&&(this.rb=new Kq(this,jIe,this)),cUt(this.rb),!this.rb&&(this.rb=new Kq(this,jIe,this)),void pY(this.rb,jz(e,14));case 6:return!this.vb&&(this.vb=new tF(zDe,this,6,7)),cUt(this.vb),!this.vb&&(this.vb=new tF(zDe,this,6,7)),void pY(this.vb,jz(e,14))}Lft(this,t-dY((pGt(),pLe)),eet(jz(vot(this,16),26)||pLe,t),e)},kGt.vh=function(t){var e,n;if(t&&this.rb)for(n=new AO(this.rb);n.e!=n.i.gc();)iO(e=wmt(n),351)&&(jz(e,351).w=null);lbt(this,64,t)},kGt.zh=function(){return pGt(),pLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void Oat(this,null);case 2:return void Nat(this,null);case 3:return void Mat(this,null);case 4:return void nCt(this,null);case 5:return!this.rb&&(this.rb=new Kq(this,jIe,this)),void cUt(this.rb);case 6:return!this.vb&&(this.vb=new tF(zDe,this,6,7)),void cUt(this.vb)}Hdt(this,t-dY((pGt(),pLe)),eet(jz(vot(this,16),26)||pLe,t))},kGt.Gh=function(){_wt(this)},kGt.Mh=function(){return!this.rb&&(this.rb=new Kq(this,jIe,this)),this.rb},kGt.Nh=function(){return this.sb},kGt.Oh=function(){return this.ub},kGt.Ph=function(){return this.xb},kGt.Qh=function(){return this.yb},kGt.Rh=function(t){this.ub=t},kGt.Ib=function(){var t;return 64&this.Db?wdt(this):((t=new lM(wdt(this))).a+=" (nsURI: ",iD(t,this.yb),t.a+=", nsPrefix: ",iD(t,this.xb),t.a+=")",t.a)},kGt.xb=null,kGt.yb=null,bY(d7t,"EPackageImpl",179),fIt(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},cIt),kGt.q=!1,kGt.r=!1;var qDe=!1;bY(h7t,"ElkGraphPackageImpl",555),fIt(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},cc),kGt.Qg=function(t){return lxt(this,t)},kGt._g=function(t,e,n){switch(t){case 7:return ZJ(this);case 8:return this.a}return Bft(this,t,e,n)},kGt.hh=function(t,e,n){var i;return 7===e?(this.Cb&&(n=(i=this.Db>>16)>=0?lxt(this,n):this.Cb.ih(this,-1-i,null,n)),YV(this,jz(t,160),n)):jkt(this,t,e,n)},kGt.jh=function(t,e,n){return 7==e?YV(this,null,n):ist(this,t,e,n)},kGt.lh=function(t){switch(t){case 7:return!!ZJ(this);case 8:return!mF("",this.a)}return ugt(this,t)},kGt.sh=function(t,e){switch(t){case 7:return void TMt(this,jz(e,160));case 8:return void Mit(this,kB(e))}VRt(this,t,e)},kGt.zh=function(){return SYt(),wDe},kGt.Bh=function(t){switch(t){case 7:return void TMt(this,null);case 8:return void Mit(this,"")}Ngt(this,t)},kGt.Ib=function(){return aSt(this)},kGt.a="",bY(h7t,"ElkLabelImpl",354),fIt(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},wv),kGt.Qg=function(t){return Ext(this,t)},kGt._g=function(t,e,n){switch(t){case 9:return!this.c&&(this.c=new tW(VDe,this,9,9)),this.c;case 10:return!this.a&&(this.a=new tW(UDe,this,10,11)),this.a;case 11:return KJ(this);case 12:return!this.b&&(this.b=new tW(BDe,this,12,3)),this.b;case 13:return cM(),!this.a&&(this.a=new tW(UDe,this,10,11)),this.a.i>0}return zyt(this,t,e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 9:return!this.c&&(this.c=new tW(VDe,this,9,9)),Kgt(this.c,t,n);case 10:return!this.a&&(this.a=new tW(UDe,this,10,11)),Kgt(this.a,t,n);case 11:return this.Cb&&(n=(i=this.Db>>16)>=0?Ext(this,n):this.Cb.ih(this,-1-i,null,n)),UP(this,jz(t,33),n);case 12:return!this.b&&(this.b=new tW(BDe,this,12,3)),Kgt(this.b,t,n)}return gRt(this,t,e,n)},kGt.jh=function(t,e,n){switch(e){case 9:return!this.c&&(this.c=new tW(VDe,this,9,9)),Fmt(this.c,t,n);case 10:return!this.a&&(this.a=new tW(UDe,this,10,11)),Fmt(this.a,t,n);case 11:return UP(this,null,n);case 12:return!this.b&&(this.b=new tW(BDe,this,12,3)),Fmt(this.b,t,n)}return pRt(this,t,e,n)},kGt.lh=function(t){switch(t){case 9:return!!this.c&&0!=this.c.i;case 10:return!!this.a&&0!=this.a.i;case 11:return!!KJ(this);case 12:return!!this.b&&0!=this.b.i;case 13:return!this.a&&(this.a=new tW(UDe,this,10,11)),this.a.i>0}return Uct(this,t)},kGt.sh=function(t,e){switch(t){case 9:return!this.c&&(this.c=new tW(VDe,this,9,9)),cUt(this.c),!this.c&&(this.c=new tW(VDe,this,9,9)),void pY(this.c,jz(e,14));case 10:return!this.a&&(this.a=new tW(UDe,this,10,11)),cUt(this.a),!this.a&&(this.a=new tW(UDe,this,10,11)),void pY(this.a,jz(e,14));case 11:return void QOt(this,jz(e,33));case 12:return!this.b&&(this.b=new tW(BDe,this,12,3)),cUt(this.b),!this.b&&(this.b=new tW(BDe,this,12,3)),void pY(this.b,jz(e,14))}LIt(this,t,e)},kGt.zh=function(){return SYt(),xDe},kGt.Bh=function(t){switch(t){case 9:return!this.c&&(this.c=new tW(VDe,this,9,9)),void cUt(this.c);case 10:return!this.a&&(this.a=new tW(UDe,this,10,11)),void cUt(this.a);case 11:return void QOt(this,null);case 12:return!this.b&&(this.b=new tW(BDe,this,12,3)),void cUt(this.b)}Mmt(this,t)},kGt.Ib=function(){return VPt(this)},bY(h7t,"ElkNodeImpl",239),fIt(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xv),kGt.Qg=function(t){return uxt(this,t)},kGt._g=function(t,e,n){return 9==t?WJ(this):zyt(this,t,e,n)},kGt.hh=function(t,e,n){var i;return 9===e?(this.Cb&&(n=(i=this.Db>>16)>=0?uxt(this,n):this.Cb.ih(this,-1-i,null,n)),ZB(this,jz(t,33),n)):gRt(this,t,e,n)},kGt.jh=function(t,e,n){return 9==e?ZB(this,null,n):pRt(this,t,e,n)},kGt.lh=function(t){return 9==t?!!WJ(this):Uct(this,t)},kGt.sh=function(t,e){9!==t?LIt(this,t,e):$Ot(this,jz(e,33))},kGt.zh=function(){return SYt(),RDe},kGt.Bh=function(t){9!==t?Mmt(this,t):$Ot(this,null)},kGt.Ib=function(){return qPt(this)},bY(h7t,"ElkPortImpl",186);var WDe=dU($7t,"BasicEMap/Entry");fIt(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},uc),kGt.Fb=function(t){return this===t},kGt.cd=function(){return this.b},kGt.Hb=function(){return EM(this)},kGt.Uh=function(t){Nit(this,jz(t,146))},kGt._g=function(t,e,n){switch(t){case 0:return this.b;case 1:return this.c}return Jmt(this,t,e,n)},kGt.lh=function(t){switch(t){case 0:return!!this.b;case 1:return null!=this.c}return mmt(this,t)},kGt.sh=function(t,e){switch(t){case 0:return void Nit(this,jz(e,146));case 1:return void Fit(this,e)}vTt(this,t,e)},kGt.zh=function(){return SYt(),_De},kGt.Bh=function(t){switch(t){case 0:return void Nit(this,null);case 1:return void Fit(this,null)}ySt(this,t)},kGt.Sh=function(){var t;return-1==this.a&&(t=this.b,this.a=t?Qct(t):0),this.a},kGt.dd=function(){return this.c},kGt.Th=function(t){this.a=t},kGt.ed=function(t){var e;return e=this.c,Fit(this,t),e},kGt.Ib=function(){var t;return 64&this.Db?CLt(this):(oD(oD(oD(t=new Cx,this.b?this.b.tg():VGt),e1t),vM(this.c)),t.a)},kGt.a=-1,kGt.c=null;var YDe=bY(h7t,"ElkPropertyToValueMapEntryImpl",1092);fIt(984,1,{},fc),bY(U7t,"JsonAdapter",984),fIt(210,60,$Zt,tx),bY(U7t,"JsonImportException",210),fIt(857,1,{},gxt),bY(U7t,"JsonImporter",857),fIt(891,1,{},aA),bY(U7t,"JsonImporter/lambda$0$Type",891),fIt(892,1,{},rA),bY(U7t,"JsonImporter/lambda$1$Type",892),fIt(900,1,{},Db),bY(U7t,"JsonImporter/lambda$10$Type",900),fIt(902,1,{},oA),bY(U7t,"JsonImporter/lambda$11$Type",902),fIt(903,1,{},sA),bY(U7t,"JsonImporter/lambda$12$Type",903),fIt(909,1,{},lK),bY(U7t,"JsonImporter/lambda$13$Type",909),fIt(908,1,{},cK),bY(U7t,"JsonImporter/lambda$14$Type",908),fIt(904,1,{},cA),bY(U7t,"JsonImporter/lambda$15$Type",904),fIt(905,1,{},lA),bY(U7t,"JsonImporter/lambda$16$Type",905),fIt(906,1,{},uA),bY(U7t,"JsonImporter/lambda$17$Type",906),fIt(907,1,{},dA),bY(U7t,"JsonImporter/lambda$18$Type",907),fIt(912,1,{},Ib),bY(U7t,"JsonImporter/lambda$19$Type",912),fIt(893,1,{},Lb),bY(U7t,"JsonImporter/lambda$2$Type",893),fIt(910,1,{},Ob),bY(U7t,"JsonImporter/lambda$20$Type",910),fIt(911,1,{},Mb),bY(U7t,"JsonImporter/lambda$21$Type",911),fIt(915,1,{},Nb),bY(U7t,"JsonImporter/lambda$22$Type",915),fIt(913,1,{},Bb),bY(U7t,"JsonImporter/lambda$23$Type",913),fIt(914,1,{},Pb),bY(U7t,"JsonImporter/lambda$24$Type",914),fIt(917,1,{},Fb),bY(U7t,"JsonImporter/lambda$25$Type",917),fIt(916,1,{},jb),bY(U7t,"JsonImporter/lambda$26$Type",916),fIt(918,1,dZt,hA),kGt.td=function(t){x8(this.b,this.a,kB(t))},bY(U7t,"JsonImporter/lambda$27$Type",918),fIt(919,1,dZt,fA),kGt.td=function(t){R8(this.b,this.a,kB(t))},bY(U7t,"JsonImporter/lambda$28$Type",919),fIt(920,1,{},gA),bY(U7t,"JsonImporter/lambda$29$Type",920),fIt(896,1,{},$b),bY(U7t,"JsonImporter/lambda$3$Type",896),fIt(921,1,{},pA),bY(U7t,"JsonImporter/lambda$30$Type",921),fIt(922,1,{},zb),bY(U7t,"JsonImporter/lambda$31$Type",922),fIt(923,1,{},Hb),bY(U7t,"JsonImporter/lambda$32$Type",923),fIt(924,1,{},Ub),bY(U7t,"JsonImporter/lambda$33$Type",924),fIt(925,1,{},Vb),bY(U7t,"JsonImporter/lambda$34$Type",925),fIt(859,1,{},qb),bY(U7t,"JsonImporter/lambda$35$Type",859),fIt(929,1,{},_z),bY(U7t,"JsonImporter/lambda$36$Type",929),fIt(926,1,dZt,Wb),kGt.td=function(t){Z3(this.a,jz(t,469))},bY(U7t,"JsonImporter/lambda$37$Type",926),fIt(927,1,dZt,kA),kGt.td=function(t){uD(this.a,this.b,jz(t,202))},bY(U7t,"JsonImporter/lambda$38$Type",927),fIt(928,1,dZt,EA),kGt.td=function(t){dD(this.a,this.b,jz(t,202))},bY(U7t,"JsonImporter/lambda$39$Type",928),fIt(894,1,{},Yb),bY(U7t,"JsonImporter/lambda$4$Type",894),fIt(930,1,dZt,Gb),kGt.td=function(t){K3(this.a,jz(t,8))},bY(U7t,"JsonImporter/lambda$40$Type",930),fIt(895,1,{},Zb),bY(U7t,"JsonImporter/lambda$5$Type",895),fIt(899,1,{},Kb),bY(U7t,"JsonImporter/lambda$6$Type",899),fIt(897,1,{},Xb),bY(U7t,"JsonImporter/lambda$7$Type",897),fIt(898,1,{},Jb),bY(U7t,"JsonImporter/lambda$8$Type",898),fIt(901,1,{},Qb),bY(U7t,"JsonImporter/lambda$9$Type",901),fIt(948,1,dZt,tm),kGt.td=function(t){JY(this.a,new HY(kB(t)))},bY(U7t,"JsonMetaDataConverter/lambda$0$Type",948),fIt(949,1,dZt,em),kGt.td=function(t){PY(this.a,jz(t,237))},bY(U7t,"JsonMetaDataConverter/lambda$1$Type",949),fIt(950,1,dZt,nm),kGt.td=function(t){QQ(this.a,jz(t,149))},bY(U7t,"JsonMetaDataConverter/lambda$2$Type",950),fIt(951,1,dZt,im),kGt.td=function(t){FY(this.a,jz(t,175))},bY(U7t,"JsonMetaDataConverter/lambda$3$Type",951),fIt(237,22,{3:1,35:1,22:1,237:1},_A);var GDe,ZDe,KDe,XDe,JDe,QDe,tIe,eIe,nIe,iIe=$nt(TJt,"GraphFeature",237,Vte,Pet,pz);fIt(13,1,{35:1,146:1},rm,eP,DD,qI),kGt.wd=function(t){return pO(this,jz(t,146))},kGt.Fb=function(t){return xX(this,t)},kGt.wg=function(){return ymt(this)},kGt.tg=function(){return this.b},kGt.Hb=function(){return myt(this.b)},kGt.Ib=function(){return this.b},bY(TJt,"Property",13),fIt(818,1,kXt,am),kGt.ue=function(t,e){return Fht(this,jz(t,94),jz(e,94))},kGt.Fb=function(t){return this===t},kGt.ve=function(){return new Jf(this)},bY(TJt,"PropertyHolderComparator",818),fIt(695,1,ZGt,sm),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return A8(this)},kGt.Qb=function(){r_()},kGt.Ob=function(){return!!this.a},bY(a5t,"ElkGraphUtil/AncestorIterator",695);var aIe=dU($7t,"EList");fIt(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1}),kGt.Vc=function(t,e){cht(this,t,e)},kGt.Fc=function(t){return l8(this,t)},kGt.Wc=function(t,e){return sct(this,t,e)},kGt.Gc=function(t){return pY(this,t)},kGt.Zh=function(){return new aN(this)},kGt.$h=function(){return new rN(this)},kGt._h=function(t){return cit(this,t)},kGt.ai=function(){return!0},kGt.bi=function(t,e){},kGt.ci=function(){},kGt.di=function(t,e){I5(this,t,e)},kGt.ei=function(t,e,n){},kGt.fi=function(t,e){},kGt.gi=function(t,e,n){},kGt.Fb=function(t){return ZBt(this,t)},kGt.Hb=function(){return kst(this)},kGt.hi=function(){return!1},kGt.Kc=function(){return new AO(this)},kGt.Yc=function(){return new iN(this)},kGt.Zc=function(t){var e;if(e=this.gc(),t<0||t>e)throw $m(new QP(t,e));return new HW(this,t)},kGt.ji=function(t,e){this.ii(t,this.Xc(e))},kGt.Mc=function(t){return stt(this,t)},kGt.li=function(t,e){return e},kGt._c=function(t,e){return syt(this,t,e)},kGt.Ib=function(){return Xft(this)},kGt.ni=function(){return!0},kGt.oi=function(t,e){return Mlt(this,e)},bY($7t,"AbstractEList",67),fIt(63,67,l5t,bc,pet,xrt),kGt.Vh=function(t,e){return $kt(this,t,e)},kGt.Wh=function(t){return hvt(this,t)},kGt.Xh=function(t,e){Tdt(this,t,e)},kGt.Yh=function(t){i7(this,t)},kGt.pi=function(t){return F8(this,t)},kGt.$b=function(){a7(this)},kGt.Hc=function(t){return ERt(this,t)},kGt.Xb=function(t){return Yet(this,t)},kGt.qi=function(t){var e,n,i;++this.j,t>(n=null==this.g?0:this.g.length)&&(i=this.g,(e=n+(n/2|0)+4)<t&&(e=t),this.g=this.ri(e),null!=i&&rHt(i,0,this.g,0,this.i))},kGt.Xc=function(t){return Ywt(this,t)},kGt.dc=function(){return 0==this.i},kGt.ii=function(t,e){return KAt(this,t,e)},kGt.ri=function(t){return O5(Dte,zGt,1,t,5,1)},kGt.ki=function(t){return this.g[t]},kGt.$c=function(t){return Lwt(this,t)},kGt.mi=function(t,e){return ott(this,t,e)},kGt.gc=function(){return this.i},kGt.Pc=function(){return L4(this)},kGt.Qc=function(t){return Zgt(this,t)},kGt.i=0;var rIe=bY($7t,"BasicEList",63),oIe=dU($7t,"TreeIterator");fIt(694,63,u5t),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return null!=this.g||this.c?null==this.g||0!=this.i&&jz(this.g[this.i-1],47).Ob():QJ(this)},kGt.Pb=function(){return rOt(this)},kGt.Qb=function(){if(!this.e)throw $m(new Fw("There is no valid object to remove."));this.e.Qb()},kGt.c=!1,bY($7t,"AbstractTreeIterator",694),fIt(685,694,u5t,TI),kGt.si=function(t){var e;return iO(e=jz(t,56).Wg().Kc(),279)&&jz(e,279).Nk(new gc),e},bY(a5t,"ElkGraphUtil/PropertiesSkippingTreeIterator",685),fIt(952,1,{},gc),bY(a5t,"ElkGraphUtil/PropertiesSkippingTreeIterator/1",952);var sIe,cIe,lIe,uIe=bY(a5t,"ElkReflect",null);fIt(889,1,n6t,pc),kGt.vg=function(t){return cQ(),j7(jz(t,174))},bY(a5t,"ElkReflect/lambda$0$Type",889),dU($7t,"ResourceLocator"),fIt(1051,1,{}),bY($7t,"DelegatingResourceLocator",1051),fIt(1052,1051,{}),bY("org.eclipse.emf.common","EMFPlugin",1052);var dIe,hIe=dU(X5t,"Adapter"),fIe=dU(X5t,"Notification");fIt(1153,1,J5t),kGt.ti=function(){return this.d},kGt.ui=function(t){},kGt.vi=function(t){this.d=t},kGt.wi=function(t){this.d==t&&(this.d=null)},kGt.d=null,bY(n7t,"AdapterImpl",1153),fIt(1995,67,Q5t),kGt.Vh=function(t,e){return wgt(this,t,e)},kGt.Wh=function(t){var e,n,i;if(++this.j,t.dc())return!1;for(e=this.Vi(),i=t.Kc();i.Ob();)n=i.Pb(),this.Ii(this.oi(e,n)),++e;return!0},kGt.Xh=function(t,e){XB(this,t,e)},kGt.Yh=function(t){tG(this,t)},kGt.Gi=function(){return this.Ji()},kGt.$b=function(){KB(this,this.Vi(),this.Wi())},kGt.Hc=function(t){return this.Li(t)},kGt.Ic=function(t){return this.Mi(t)},kGt.Hi=function(t,e){this.Si().jm()},kGt.Ii=function(t){this.Si().jm()},kGt.Ji=function(){return this.Si()},kGt.Ki=function(){this.Si().jm()},kGt.Li=function(t){return this.Si().jm()},kGt.Mi=function(t){return this.Si().jm()},kGt.Ni=function(t){return this.Si().jm()},kGt.Oi=function(t){return this.Si().jm()},kGt.Pi=function(){return this.Si().jm()},kGt.Qi=function(t){return this.Si().jm()},kGt.Ri=function(){return this.Si().jm()},kGt.Ti=function(t){return this.Si().jm()},kGt.Ui=function(t,e){return this.Si().jm()},kGt.Vi=function(){return this.Si().jm()},kGt.Wi=function(){return this.Si().jm()},kGt.Xi=function(t){return this.Si().jm()},kGt.Yi=function(){return this.Si().jm()},kGt.Fb=function(t){return this.Ni(t)},kGt.Xb=function(t){return this.li(t,this.Oi(t))},kGt.Hb=function(){return this.Pi()},kGt.Xc=function(t){return this.Qi(t)},kGt.dc=function(){return this.Ri()},kGt.ii=function(t,e){return DEt(this,t,e)},kGt.ki=function(t){return this.Oi(t)},kGt.$c=function(t){return hU(this,t)},kGt.Mc=function(t){var e;return(e=this.Xc(t))>=0&&(this.$c(e),!0)},kGt.mi=function(t,e){return this.Ui(t,this.oi(t,e))},kGt.gc=function(){return this.Vi()},kGt.Pc=function(){return this.Wi()},kGt.Qc=function(t){return this.Xi(t)},kGt.Ib=function(){return this.Yi()},bY($7t,"DelegatingEList",1995),fIt(1996,1995,Q5t),kGt.Vh=function(t,e){return o$t(this,t,e)},kGt.Wh=function(t){return this.Vh(this.Vi(),t)},kGt.Xh=function(t,e){eIt(this,t,e)},kGt.Yh=function(t){ADt(this,t)},kGt.ai=function(){return!this.bj()},kGt.$b=function(){mUt(this)},kGt.Zi=function(t,e,n,i,a){return new LX(this,t,e,n,i,a)},kGt.$i=function(t){hot(this.Ai(),t)},kGt._i=function(){return null},kGt.aj=function(){return-1},kGt.Ai=function(){return null},kGt.bj=function(){return!1},kGt.cj=function(t,e){return e},kGt.dj=function(t,e){return e},kGt.ej=function(){return!1},kGt.fj=function(){return!this.Ri()},kGt.ii=function(t,e){var n,i;return this.ej()?(i=this.fj(),n=DEt(this,t,e),this.$i(this.Zi(7,nht(e),n,t,i)),n):DEt(this,t,e)},kGt.$c=function(t){var e,n,i,a;return this.ej()?(n=null,i=this.fj(),e=this.Zi(4,a=hU(this,t),null,t,i),this.bj()&&a?(n=this.dj(a,n))?(n.Ei(e),n.Fi()):this.$i(e):n?(n.Ei(e),n.Fi()):this.$i(e),a):(a=hU(this,t),this.bj()&&a&&(n=this.dj(a,null))&&n.Fi(),a)},kGt.mi=function(t,e){return s$t(this,t,e)},bY(n7t,"DelegatingNotifyingListImpl",1996),fIt(143,1,t8t),kGt.Ei=function(t){return P_t(this,t)},kGt.Fi=function(){D9(this)},kGt.xi=function(){return this.d},kGt._i=function(){return null},kGt.gj=function(){return null},kGt.yi=function(t){return-1},kGt.zi=function(){return BNt(this)},kGt.Ai=function(){return null},kGt.Bi=function(){return PNt(this)},kGt.Ci=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},kGt.hj=function(){return!1},kGt.Di=function(t){var e,n,i,a,r,o,s,c;switch(this.d){case 1:case 2:switch(t.xi()){case 1:case 2:if(HA(t.Ai())===HA(this.Ai())&&this.yi(null)==t.yi(null))return this.g=t.zi(),1==t.xi()&&(this.d=1),!0}case 4:if(4===t.xi()&&HA(t.Ai())===HA(this.Ai())&&this.yi(null)==t.yi(null))return o=tVt(this),r=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,i=t.Ci(),this.d=6,c=new pet(2),r<=i?(l8(c,this.n),l8(c,t.Bi()),this.g=Cst(Hx(TMe,1),lKt,25,15,[this.o=r,i+1])):(l8(c,t.Bi()),l8(c,this.n),this.g=Cst(Hx(TMe,1),lKt,25,15,[this.o=i,r])),this.n=c,o||(this.o=-2-this.o-1),!0;break;case 6:if(4===t.xi()&&HA(t.Ai())===HA(this.Ai())&&this.yi(null)==t.yi(null)){for(o=tVt(this),i=t.Ci(),s=jz(this.g,48),n=O5(TMe,lKt,25,s.length+1,15,1),e=0;e<s.length&&(a=s[e])<=i;)n[e++]=a,++i;for(jz(this.n,15).Vc(e,t.Bi()),n[e]=i;++e<n.length;)n[e]=s[e-1];return this.g=n,o||(this.o=-2-n[0]),!0}}return!1},kGt.Ib=function(){var t,e,n;switch((n=new lM(JR(this.gm)+"@"+(Qct(this)>>>0).toString(16))).a+=" (eventType: ",this.d){case 1:n.a+="SET";break;case 2:n.a+="UNSET";break;case 3:n.a+="ADD";break;case 5:n.a+="ADD_MANY";break;case 4:n.a+="REMOVE";break;case 6:n.a+="REMOVE_MANY";break;case 7:n.a+="MOVE";break;case 8:n.a+="REMOVING_ADAPTER";break;case 9:n.a+="RESOLVE";break;default:m_(n,this.d)}if(dFt(this)&&(n.a+=", touch: true"),n.a+=", position: ",m_(n,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),n.a+=", notifier: ",nD(n,this.Ai()),n.a+=", feature: ",nD(n,this._i()),n.a+=", oldValue: ",nD(n,PNt(this)),n.a+=", newValue: ",6==this.d&&iO(this.g,48)){for(e=jz(this.g,48),n.a+="[",t=0;t<e.length;)n.a+=e[t],++t<e.length&&(n.a+=jGt);n.a+="]"}else nD(n,BNt(this));return n.a+=", isTouch: ",y_(n,dFt(this)),n.a+=", wasSet: ",y_(n,tVt(this)),n.a+=")",n.a},kGt.d=0,kGt.e=0,kGt.f=0,kGt.j=0,kGt.k=0,kGt.o=0,kGt.p=0,bY(n7t,"NotificationImpl",143),fIt(1167,143,t8t,LX),kGt._i=function(){return this.a._i()},kGt.yi=function(t){return this.a.aj()},kGt.Ai=function(){return this.a.Ai()},bY(n7t,"DelegatingNotifyingListImpl/1",1167),fIt(242,63,l5t,mc,FR),kGt.Fc=function(t){return kgt(this,jz(t,366))},kGt.Ei=function(t){return kgt(this,t)},kGt.Fi=function(){var t,e,n;for(t=0;t<this.i;++t)null!=(n=(e=jz(this.g[t],366)).Ai())&&-1!=e.xi()&&jz(n,92).Ng(e)},kGt.ri=function(t){return O5(fIe,zGt,366,t,0,1)},bY(n7t,"NotificationChainImpl",242),fIt(1378,90,e7t),kGt.Kg=function(){return this.e},kGt.Mg=function(){return 0!=(1&this.f)},kGt.f=1,bY(n7t,"NotifierImpl",1378),fIt(1993,63,l5t),kGt.Vh=function(t,e){return L$t(this,t,e)},kGt.Wh=function(t){return this.Vh(this.i,t)},kGt.Xh=function(t,e){HDt(this,t,e)},kGt.Yh=function(t){tIt(this,t)},kGt.ai=function(){return!this.bj()},kGt.$b=function(){cUt(this)},kGt.Zi=function(t,e,n,i,a){return new OX(this,t,e,n,i,a)},kGt.$i=function(t){hot(this.Ai(),t)},kGt._i=function(){return null},kGt.aj=function(){return-1},kGt.Ai=function(){return null},kGt.bj=function(){return!1},kGt.ij=function(){return!1},kGt.cj=function(t,e){return e},kGt.dj=function(t,e){return e},kGt.ej=function(){return!1},kGt.fj=function(){return 0!=this.i},kGt.ii=function(t,e){return Tht(this,t,e)},kGt.$c=function(t){return uBt(this,t)},kGt.mi=function(t,e){return uzt(this,t,e)},kGt.jj=function(t,e){return e},kGt.kj=function(t,e){return e},kGt.lj=function(t,e,n){return n},bY(n7t,"NotifyingListImpl",1993),fIt(1166,143,t8t,OX),kGt._i=function(){return this.a._i()},kGt.yi=function(t){return this.a.aj()},kGt.Ai=function(){return this.a.Ai()},bY(n7t,"NotifyingListImpl/1",1166),fIt(953,63,l5t,aP),kGt.Hc=function(t){return this.i>10?((!this.b||this.c.j!=this.a)&&(this.b=new DU(this),this.a=this.j),Fk(this.b,t)):ERt(this,t)},kGt.ni=function(){return!0},kGt.a=0,bY($7t,"AbstractEList/1",953),fIt(295,73,OKt,QP),bY($7t,"AbstractEList/BasicIndexOutOfBoundsException",295),fIt(40,1,ZGt,AO),kGt.Nb=function(t){lW(this,t)},kGt.mj=function(){if(this.i.j!=this.f)throw $m(new by)},kGt.nj=function(){return wmt(this)},kGt.Ob=function(){return this.e!=this.i.gc()},kGt.Pb=function(){return this.nj()},kGt.Qb=function(){ZRt(this)},kGt.e=0,kGt.f=0,kGt.g=-1,bY($7t,"AbstractEList/EIterator",40),fIt(278,40,aZt,iN,HW),kGt.Qb=function(){ZRt(this)},kGt.Rb=function(t){spt(this,t)},kGt.oj=function(){var t;try{return t=this.d.Xb(--this.e),this.mj(),this.g=this.e,t}catch(e){throw iO(e=dst(e),73)?(this.mj(),$m(new yy)):$m(e)}},kGt.pj=function(t){wvt(this,t)},kGt.Sb=function(){return 0!=this.e},kGt.Tb=function(){return this.e},kGt.Ub=function(){return this.oj()},kGt.Vb=function(){return this.e-1},kGt.Wb=function(t){this.pj(t)},bY($7t,"AbstractEList/EListIterator",278),fIt(341,40,ZGt,aN),kGt.nj=function(){return xmt(this)},kGt.Qb=function(){throw $m(new py)},bY($7t,"AbstractEList/NonResolvingEIterator",341),fIt(385,278,aZt,rN,NF),kGt.Rb=function(t){throw $m(new py)},kGt.nj=function(){var t;try{return t=this.c.ki(this.e),this.mj(),this.g=this.e++,t}catch(e){throw iO(e=dst(e),73)?(this.mj(),$m(new yy)):$m(e)}},kGt.oj=function(){var t;try{return t=this.c.ki(--this.e),this.mj(),this.g=this.e,t}catch(e){throw iO(e=dst(e),73)?(this.mj(),$m(new yy)):$m(e)}},kGt.Qb=function(){throw $m(new py)},kGt.Wb=function(t){throw $m(new py)},bY($7t,"AbstractEList/NonResolvingEListIterator",385),fIt(1982,67,i8t),kGt.Vh=function(t,e){var n,i,a,r,o,s,c,l,u;if(0!=(i=e.gc())){for(n=Clt(this,(l=null==(c=jz(vot(this.a,4),126))?0:c.length)+i),(u=l-t)>0&&rHt(c,t,n,t+i,u),s=e.Kc(),r=0;r<i;++r)KI(n,t+r,Mlt(this,o=s.Pb()));for(jbt(this,n),a=0;a<i;++a)o=n[t],this.bi(t,o),++t;return!0}return++this.j,!1},kGt.Wh=function(t){var e,n,i,a,r,o,s,c,l;if(0!=(i=t.gc())){for(e=Clt(this,l=(c=null==(n=jz(vot(this.a,4),126))?0:n.length)+i),s=t.Kc(),r=c;r<l;++r)KI(e,r,Mlt(this,o=s.Pb()));for(jbt(this,e),a=c;a<l;++a)o=e[a],this.bi(a,o);return!0}return++this.j,!1},kGt.Xh=function(t,e){var n,i,a,r;n=Clt(this,(a=null==(i=jz(vot(this.a,4),126))?0:i.length)+1),r=Mlt(this,e),t!=a&&rHt(i,t,n,t+1,a-t),DY(n,t,r),jbt(this,n),this.bi(t,e)},kGt.Yh=function(t){var e,n,i;KI(e=Clt(this,(i=null==(n=jz(vot(this.a,4),126))?0:n.length)+1),i,Mlt(this,t)),jbt(this,e),this.bi(i,t)},kGt.Zh=function(){return new k6(this)},kGt.$h=function(){return new Zq(this)},kGt._h=function(t){var e,n;if(n=null==(e=jz(vot(this.a,4),126))?0:e.length,t<0||t>n)throw $m(new QP(t,n));return new jG(this,t)},kGt.$b=function(){var t,e;++this.j,e=null==(t=jz(vot(this.a,4),126))?0:t.length,jbt(this,null),I5(this,e,t)},kGt.Hc=function(t){var e,n,i,a;if(null!=(e=jz(vot(this.a,4),126)))if(null!=t){for(i=0,a=(n=e).length;i<a;++i)if(Odt(t,n[i]))return!0}else for(i=0,a=(n=e).length;i<a;++i)if(HA(n[i])===HA(t))return!0;return!1},kGt.Xb=function(t){var e,n;if(t>=(n=null==(e=jz(vot(this.a,4),126))?0:e.length))throw $m(new QP(t,n));return e[t]},kGt.Xc=function(t){var e,n,i;if(null!=(e=jz(vot(this.a,4),126)))if(null!=t){for(n=0,i=e.length;n<i;++n)if(Odt(t,e[n]))return n}else for(n=0,i=e.length;n<i;++n)if(HA(e[n])===HA(t))return n;return-1},kGt.dc=function(){return null==jz(vot(this.a,4),126)},kGt.Kc=function(){return new _6(this)},kGt.Yc=function(){return new Gq(this)},kGt.Zc=function(t){var e,n;if(n=null==(e=jz(vot(this.a,4),126))?0:e.length,t<0||t>n)throw $m(new QP(t,n));return new FG(this,t)},kGt.ii=function(t,e){var n,i,a;if(t>=(a=null==(n=Ipt(this))?0:n.length))throw $m(new Aw(o5t+t+s5t+a));if(e>=a)throw $m(new Aw(c5t+e+s5t+a));return i=n[e],t!=e&&(t<e?rHt(n,t,n,t+1,e-t):rHt(n,e+1,n,e,t-e),DY(n,t,i),jbt(this,n)),i},kGt.ki=function(t){return jz(vot(this.a,4),126)[t]},kGt.$c=function(t){return RDt(this,t)},kGt.mi=function(t,e){var n,i;return i=(n=Ipt(this))[t],KI(n,t,Mlt(this,e)),jbt(this,n),i},kGt.gc=function(){var t;return null==(t=jz(vot(this.a,4),126))?0:t.length},kGt.Pc=function(){var t,e,n;return n=null==(t=jz(vot(this.a,4),126))?0:t.length,e=O5(hIe,n8t,415,n,0,1),n>0&&rHt(t,0,e,0,n),e},kGt.Qc=function(t){var e,n;return(n=null==(e=jz(vot(this.a,4),126))?0:e.length)>0&&(t.length<n&&(t=Nnt(tlt(t).c,n)),rHt(e,0,t,0,n)),t.length>n&&DY(t,n,null),t},bY($7t,"ArrayDelegatingEList",1982),fIt(1038,40,ZGt,_6),kGt.mj=function(){if(this.b.j!=this.f||HA(jz(vot(this.b.a,4),126))!==HA(this.a))throw $m(new by)},kGt.Qb=function(){ZRt(this),this.a=jz(vot(this.b.a,4),126)},bY($7t,"ArrayDelegatingEList/EIterator",1038),fIt(706,278,aZt,Gq,FG),kGt.mj=function(){if(this.b.j!=this.f||HA(jz(vot(this.b.a,4),126))!==HA(this.a))throw $m(new by)},kGt.pj=function(t){wvt(this,t),this.a=jz(vot(this.b.a,4),126)},kGt.Qb=function(){ZRt(this),this.a=jz(vot(this.b.a,4),126)},bY($7t,"ArrayDelegatingEList/EListIterator",706),fIt(1039,341,ZGt,k6),kGt.mj=function(){if(this.b.j!=this.f||HA(jz(vot(this.b.a,4),126))!==HA(this.a))throw $m(new by)},bY($7t,"ArrayDelegatingEList/NonResolvingEIterator",1039),fIt(707,385,aZt,Zq,jG),kGt.mj=function(){if(this.b.j!=this.f||HA(jz(vot(this.b.a,4),126))!==HA(this.a))throw $m(new by)},bY($7t,"ArrayDelegatingEList/NonResolvingEListIterator",707),fIt(606,295,OKt,ID),bY($7t,"BasicEList/BasicIndexOutOfBoundsException",606),fIt(696,63,l5t,MA),kGt.Vc=function(t,e){throw $m(new py)},kGt.Fc=function(t){throw $m(new py)},kGt.Wc=function(t,e){throw $m(new py)},kGt.Gc=function(t){throw $m(new py)},kGt.$b=function(){throw $m(new py)},kGt.qi=function(t){throw $m(new py)},kGt.Kc=function(){return this.Zh()},kGt.Yc=function(){return this.$h()},kGt.Zc=function(t){return this._h(t)},kGt.ii=function(t,e){throw $m(new py)},kGt.ji=function(t,e){throw $m(new py)},kGt.$c=function(t){throw $m(new py)},kGt.Mc=function(t){throw $m(new py)},kGt._c=function(t,e){throw $m(new py)},bY($7t,"BasicEList/UnmodifiableEList",696),fIt(705,1,{3:1,20:1,14:1,15:1,58:1,589:1}),kGt.Vc=function(t,e){GL(this,t,jz(e,42))},kGt.Fc=function(t){return aB(this,jz(t,42))},kGt.Jc=function(t){t6(this,t)},kGt.Xb=function(t){return jz(Yet(this.c,t),133)},kGt.ii=function(t,e){return jz(this.c.ii(t,e),42)},kGt.ji=function(t,e){ZL(this,t,jz(e,42))},kGt.Lc=function(){return new NU(null,new h1(this,16))},kGt.$c=function(t){return jz(this.c.$c(t),42)},kGt._c=function(t,e){return rY(this,t,jz(e,42))},kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.Oc=function(){return new NU(null,new h1(this,16))},kGt.Wc=function(t,e){return this.c.Wc(t,e)},kGt.Gc=function(t){return this.c.Gc(t)},kGt.$b=function(){this.c.$b()},kGt.Hc=function(t){return this.c.Hc(t)},kGt.Ic=function(t){return sst(this.c,t)},kGt.qj=function(){var t,e;if(null==this.d){for(this.d=O5(rIe,a8t,63,2*this.f+1,0,1),e=this.e,this.f=0,t=this.c.Kc();t.e!=t.i.gc();)Tyt(this,jz(t.nj(),133));this.e=e}},kGt.Fb=function(t){return LF(this,t)},kGt.Hb=function(){return kst(this.c)},kGt.Xc=function(t){return this.c.Xc(t)},kGt.rj=function(){this.c=new cm(this)},kGt.dc=function(){return 0==this.f},kGt.Kc=function(){return this.c.Kc()},kGt.Yc=function(){return this.c.Yc()},kGt.Zc=function(t){return this.c.Zc(t)},kGt.sj=function(){return A5(this)},kGt.tj=function(t,e,n){return new kz(t,e,n)},kGt.uj=function(){return new yc},kGt.Mc=function(t){return lit(this,t)},kGt.gc=function(){return this.f},kGt.bd=function(t,e){return new s1(this.c,t,e)},kGt.Pc=function(){return this.c.Pc()},kGt.Qc=function(t){return this.c.Qc(t)},kGt.Ib=function(){return Xft(this.c)},kGt.e=0,kGt.f=0,bY($7t,"BasicEMap",705),fIt(1033,63,l5t,cm),kGt.bi=function(t,e){Ay(this,jz(e,133))},kGt.ei=function(t,e,n){var i;++(i=this,jz(e,133),i).a.e},kGt.fi=function(t,e){Dy(this,jz(e,133))},kGt.gi=function(t,e,n){YM(this,jz(e,133),jz(n,133))},kGt.di=function(t,e){rot(this.a)},bY($7t,"BasicEMap/1",1033),fIt(1034,63,l5t,yc),kGt.ri=function(t){return O5(pIe,r8t,612,t,0,1)},bY($7t,"BasicEMap/2",1034),fIt(1035,QGt,tZt,lm),kGt.$b=function(){this.a.c.$b()},kGt.Hc=function(t){return ipt(this.a,t)},kGt.Kc=function(){return 0==this.a.f?(fB(),gIe.a):new jR(this.a)},kGt.Mc=function(t){var e;return e=this.a.f,Ypt(this.a,t),this.a.f!=e},kGt.gc=function(){return this.a.f},bY($7t,"BasicEMap/3",1035),fIt(1036,28,JGt,um),kGt.$b=function(){this.a.c.$b()},kGt.Hc=function(t){return KBt(this.a,t)},kGt.Kc=function(){return 0==this.a.f?(fB(),gIe.a):new $R(this.a)},kGt.gc=function(){return this.a.f},bY($7t,"BasicEMap/4",1036),fIt(1037,QGt,tZt,dm),kGt.$b=function(){this.a.c.$b()},kGt.Hc=function(t){var e,n,i,a,r,o,s,c,l;if(this.a.f>0&&iO(t,42)&&(this.a.qj(),a=null==(s=(c=jz(t,42)).cd())?0:Qct(s),r=tP(this.a,a),e=this.a.d[r]))for(n=jz(e.g,367),l=e.i,o=0;o<l;++o)if((i=n[o]).Sh()==a&&i.Fb(c))return!0;return!1},kGt.Kc=function(){return 0==this.a.f?(fB(),gIe.a):new pK(this.a)},kGt.Mc=function(t){return TIt(this,t)},kGt.gc=function(){return this.a.f},bY($7t,"BasicEMap/5",1037),fIt(613,1,ZGt,pK),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return-1!=this.b},kGt.Pb=function(){var t;if(this.f.e!=this.c)throw $m(new by);if(-1==this.b)throw $m(new yy);return this.d=this.a,this.e=this.b,oRt(this),t=jz(this.f.d[this.d].g[this.e],133),this.vj(t)},kGt.Qb=function(){if(this.f.e!=this.c)throw $m(new by);if(-1==this.e)throw $m(new fy);this.f.c.Mc(Yet(this.f.d[this.d],this.e)),this.c=this.f.e,this.e=-1,this.a==this.d&&-1!=this.b&&--this.b},kGt.vj=function(t){return t},kGt.a=0,kGt.b=-1,kGt.c=0,kGt.d=0,kGt.e=0,bY($7t,"BasicEMap/BasicEMapIterator",613),fIt(1031,613,ZGt,jR),kGt.vj=function(t){return t.cd()},bY($7t,"BasicEMap/BasicEMapKeyIterator",1031),fIt(1032,613,ZGt,$R),kGt.vj=function(t){return t.dd()},bY($7t,"BasicEMap/BasicEMapValueIterator",1032),fIt(1030,1,XGt,hm),kGt.wc=function(t){Qrt(this,t)},kGt.yc=function(t,e,n){return Jht(this,t,e,n)},kGt.$b=function(){this.a.c.$b()},kGt._b=function(t){return jA(this,t)},kGt.uc=function(t){return KBt(this.a,t)},kGt.vc=function(){return S5(this.a)},kGt.Fb=function(t){return LF(this.a,t)},kGt.xc=function(t){return apt(this.a,t)},kGt.Hb=function(){return kst(this.a.c)},kGt.dc=function(){return 0==this.a.f},kGt.ec=function(){return T5(this.a)},kGt.zc=function(t,e){return mRt(this.a,t,e)},kGt.Bc=function(t){return Ypt(this.a,t)},kGt.gc=function(){return this.a.f},kGt.Ib=function(){return Xft(this.a.c)},kGt.Cc=function(){return C5(this.a)},bY($7t,"BasicEMap/DelegatingMap",1030),fIt(612,1,{42:1,133:1,612:1},kz),kGt.Fb=function(t){var e;return!!iO(t,42)&&(e=jz(t,42),(null!=this.b?Odt(this.b,e.cd()):HA(this.b)===HA(e.cd()))&&(null!=this.c?Odt(this.c,e.dd()):HA(this.c)===HA(e.dd())))},kGt.Sh=function(){return this.a},kGt.cd=function(){return this.b},kGt.dd=function(){return this.c},kGt.Hb=function(){return this.a^(null==this.c?0:Qct(this.c))},kGt.Th=function(t){this.a=t},kGt.Uh=function(t){throw $m(new sy)},kGt.ed=function(t){var e;return e=this.c,this.c=t,e},kGt.Ib=function(){return this.b+"->"+this.c},kGt.a=0;var gIe,pIe=bY($7t,"BasicEMap/EntryImpl",612);fIt(536,1,{},lc),bY($7t,"BasicEMap/View",536),fIt(768,1,{}),kGt.Fb=function(t){return OIt((kK(),cne),t)},kGt.Hb=function(){return jct((kK(),cne))},kGt.Ib=function(){return LEt((kK(),cne))},bY($7t,"ECollections/BasicEmptyUnmodifiableEList",768),fIt(1312,1,aZt,vc),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){throw $m(new py)},kGt.Ob=function(){return!1},kGt.Sb=function(){return!1},kGt.Pb=function(){throw $m(new yy)},kGt.Tb=function(){return 0},kGt.Ub=function(){throw $m(new yy)},kGt.Vb=function(){return-1},kGt.Qb=function(){throw $m(new py)},kGt.Wb=function(t){throw $m(new py)},bY($7t,"ECollections/BasicEmptyUnmodifiableEList/1",1312),fIt(1310,768,{20:1,14:1,15:1,58:1},Rv),kGt.Vc=function(t,e){L_()},kGt.Fc=function(t){return O_()},kGt.Wc=function(t,e){return M_()},kGt.Gc=function(t){return N_()},kGt.$b=function(){B_()},kGt.Hc=function(t){return!1},kGt.Ic=function(t){return!1},kGt.Jc=function(t){t6(this,t)},kGt.Xb=function(t){return yD((kK(),t)),null},kGt.Xc=function(t){return-1},kGt.dc=function(){return!0},kGt.Kc=function(){return this.a},kGt.Yc=function(){return this.a},kGt.Zc=function(t){return this.a},kGt.ii=function(t,e){return P_()},kGt.ji=function(t,e){F_()},kGt.Lc=function(){return new NU(null,new h1(this,16))},kGt.$c=function(t){return j_()},kGt.Mc=function(t){return $_()},kGt._c=function(t,e){return z_()},kGt.gc=function(){return 0},kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.Oc=function(){return new NU(null,new h1(this,16))},kGt.bd=function(t,e){return kK(),new s1(cne,t,e)},kGt.Pc=function(){return iq((kK(),cne))},kGt.Qc=function(t){return kK(),Rvt(cne,t)},bY($7t,"ECollections/EmptyUnmodifiableEList",1310),fIt(1311,768,{20:1,14:1,15:1,58:1,589:1},_v),kGt.Vc=function(t,e){L_()},kGt.Fc=function(t){return O_()},kGt.Wc=function(t,e){return M_()},kGt.Gc=function(t){return N_()},kGt.$b=function(){B_()},kGt.Hc=function(t){return!1},kGt.Ic=function(t){return!1},kGt.Jc=function(t){t6(this,t)},kGt.Xb=function(t){return yD((kK(),t)),null},kGt.Xc=function(t){return-1},kGt.dc=function(){return!0},kGt.Kc=function(){return this.a},kGt.Yc=function(){return this.a},kGt.Zc=function(t){return this.a},kGt.ii=function(t,e){return P_()},kGt.ji=function(t,e){F_()},kGt.Lc=function(){return new NU(null,new h1(this,16))},kGt.$c=function(t){return j_()},kGt.Mc=function(t){return $_()},kGt._c=function(t,e){return z_()},kGt.gc=function(){return 0},kGt.ad=function(t){Fat(this,t)},kGt.Nc=function(){return new h1(this,16)},kGt.Oc=function(){return new NU(null,new h1(this,16))},kGt.bd=function(t,e){return kK(),new s1(cne,t,e)},kGt.Pc=function(){return iq((kK(),cne))},kGt.Qc=function(t){return kK(),Rvt(cne,t)},kGt.sj=function(){return kK(),kK(),lne},bY($7t,"ECollections/EmptyUnmodifiableEMap",1311);var bIe,mIe=dU($7t,"Enumerator");fIt(281,1,{281:1},iPt),kGt.Fb=function(t){var e;return this===t||!!iO(t,281)&&(e=jz(t,281),this.f==e.f&&bV(this.i,e.i)&&pV(this.a,256&this.f?256&e.f?e.a:null:256&e.f?null:e.a)&&pV(this.d,e.d)&&pV(this.g,e.g)&&pV(this.e,e.e)&&Emt(this,e))},kGt.Hb=function(){return this.f},kGt.Ib=function(){return kjt(this)},kGt.f=0;var yIe,vIe,wIe,xIe=0,RIe=0,_Ie=0,kIe=0,EIe=0,CIe=0,SIe=0,TIe=0,AIe=0,DIe=0,IIe=0,LIe=0,OIe=0;bY($7t,"URI",281),fIt(1091,43,tXt,kv),kGt.zc=function(t,e){return jz(mQ(this,kB(t),jz(e,281)),281)},bY($7t,"URI/URICache",1091),fIt(497,63,l5t,hc,nV),kGt.hi=function(){return!0},bY($7t,"UniqueEList",497),fIt(581,60,$Zt,I9),bY($7t,"WrappedException",581);var MIe,NIe=dU(H6t,c8t),BIe=dU(H6t,l8t),PIe=dU(H6t,u8t),FIe=dU(H6t,d8t),jIe=dU(H6t,h8t),$Ie=dU(H6t,"EClass"),zIe=dU(H6t,"EDataType");fIt(1183,43,tXt,Ev),kGt.xc=function(t){return qA(t)?kJ(this,t):zA(AX(this.f,t))},bY(H6t,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1183);var HIe,UIe,VIe=dU(H6t,"EEnum"),qIe=dU(H6t,f8t),WIe=dU(H6t,g8t),YIe=dU(H6t,p8t),GIe=dU(H6t,b8t),ZIe=dU(H6t,m8t);fIt(1029,1,{},dc),kGt.Ib=function(){return"NIL"},bY(H6t,"EStructuralFeature/Internal/DynamicValueHolder/1",1029),fIt(1028,43,tXt,Cv),kGt.xc=function(t){return qA(t)?kJ(this,t):zA(AX(this.f,t))},bY(H6t,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1028);var KIe,XIe,JIe,QIe,tLe,eLe,nLe,iLe,aLe,rLe,oLe,sLe,cLe,lLe,uLe,dLe,hLe,fLe,gLe,pLe,bLe,mLe,yLe,vLe,wLe,xLe,RLe,_Le,kLe,ELe,CLe,SLe=dU(H6t,y8t),TLe=dU(H6t,"EValidator/PatternMatcher"),ALe=dU(v8t,"FeatureMap/Entry");fIt(535,1,{72:1},CA),kGt.ak=function(){return this.a},kGt.dd=function(){return this.b},bY(d7t,"BasicEObjectImpl/1",535),fIt(1027,1,w8t,SA),kGt.Wj=function(t){return Y6(this.a,this.b,t)},kGt.fj=function(){return XJ(this.a,this.b)},kGt.Wb=function(t){LJ(this.a,this.b,t)},kGt.Xj=function(){EG(this.a,this.b)},bY(d7t,"BasicEObjectImpl/4",1027),fIt(1983,1,{108:1}),kGt.bk=function(t){this.e=0==t?RLe:O5(Dte,zGt,1,t,5,1)},kGt.Ch=function(t){return this.e[t]},kGt.Dh=function(t,e){this.e[t]=e},kGt.Eh=function(t){this.e[t]=null},kGt.ck=function(){return this.c},kGt.dk=function(){throw $m(new py)},kGt.ek=function(){throw $m(new py)},kGt.fk=function(){return this.d},kGt.gk=function(){return null!=this.e},kGt.hk=function(t){this.c=t},kGt.ik=function(t){throw $m(new py)},kGt.jk=function(t){throw $m(new py)},kGt.kk=function(t){this.d=t},bY(d7t,"BasicEObjectImpl/EPropertiesHolderBaseImpl",1983),fIt(185,1983,{108:1},Nd),kGt.dk=function(){return this.a},kGt.ek=function(){return this.b},kGt.ik=function(t){this.a=t},kGt.jk=function(t){this.b=t},bY(d7t,"BasicEObjectImpl/EPropertiesHolderImpl",185),fIt(506,97,u7t,wc),kGt.Kg=function(){return this.f},kGt.Pg=function(){return this.k},kGt.Rg=function(t,e){this.g=t,this.i=e},kGt.Tg=function(){return 2&this.j?this.ph().ck():this.zh()},kGt.Vg=function(){return this.i},kGt.Mg=function(){return 0!=(1&this.j)},kGt.eh=function(){return this.g},kGt.kh=function(){return 0!=(4&this.j)},kGt.ph=function(){return!this.k&&(this.k=new Nd),this.k},kGt.th=function(t){this.ph().hk(t),t?this.j|=2:this.j&=-3},kGt.vh=function(t){this.ph().jk(t),t?this.j|=4:this.j&=-5},kGt.zh=function(){return(GY(),JIe).S},kGt.i=0,kGt.j=1,bY(d7t,"EObjectImpl",506),fIt(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},wH),kGt.Ch=function(t){return this.e[t]},kGt.Dh=function(t,e){this.e[t]=e},kGt.Eh=function(t){this.e[t]=null},kGt.Tg=function(){return this.d},kGt.Yg=function(t){return Dgt(this.d,t)},kGt.$g=function(){return this.d},kGt.dh=function(){return null!=this.e},kGt.ph=function(){return!this.k&&(this.k=new xc),this.k},kGt.th=function(t){this.d=t},kGt.yh=function(){var t;return null==this.e&&(t=dY(this.d),this.e=0==t?_Le:O5(Dte,zGt,1,t,5,1)),this},kGt.Ah=function(){return 0},bY(d7t,"DynamicEObjectImpl",780),fIt(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lU),kGt.Fb=function(t){return this===t},kGt.Hb=function(){return EM(this)},kGt.th=function(t){this.d=t,this.b=OMt(t,"key"),this.c=OMt(t,R7t)},kGt.Sh=function(){var t;return-1==this.a&&(t=K9(this,this.b),this.a=null==t?0:Qct(t)),this.a},kGt.cd=function(){return K9(this,this.b)},kGt.dd=function(){return K9(this,this.c)},kGt.Th=function(t){this.a=t},kGt.Uh=function(t){LJ(this,this.b,t)},kGt.ed=function(t){var e;return e=K9(this,this.c),LJ(this,this.c,t),e},kGt.a=0,bY(d7t,"DynamicEObjectImpl/BasicEMapEntry",1376),fIt(1377,1,{108:1},xc),kGt.bk=function(t){throw $m(new py)},kGt.Ch=function(t){throw $m(new py)},kGt.Dh=function(t,e){throw $m(new py)},kGt.Eh=function(t){throw $m(new py)},kGt.ck=function(){throw $m(new py)},kGt.dk=function(){return this.a},kGt.ek=function(){return this.b},kGt.fk=function(){return this.c},kGt.gk=function(){throw $m(new py)},kGt.hk=function(t){throw $m(new py)},kGt.ik=function(t){this.a=t},kGt.jk=function(t){this.b=t},kGt.kk=function(t){this.c=t},bY(d7t,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1377),fIt(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},Rc),kGt.Qg=function(t){return hxt(this,t)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.d;case 2:return n?(!this.b&&(this.b=new KN((pGt(),yLe),VLe,this)),this.b):(!this.b&&(this.b=new KN((pGt(),yLe),VLe,this)),A5(this.b));case 3:return dQ(this);case 4:return!this.a&&(this.a=new DO(DDe,this,4)),this.a;case 5:return!this.c&&(this.c=new NO(DDe,this,5)),this.c}return V8(this,t-dY((pGt(),QIe)),eet(jz(vot(this,16),26)||QIe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 3:return this.Cb&&(n=(i=this.Db>>16)>=0?hxt(this,n):this.Cb.ih(this,-1-i,null,n)),GV(this,jz(t,147),n)}return jz(eet(jz(vot(this,16),26)||(pGt(),QIe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),QIe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 2:return!this.b&&(this.b=new KN((pGt(),yLe),VLe,this)),jF(this.b,t,n);case 3:return GV(this,null,n);case 4:return!this.a&&(this.a=new DO(DDe,this,4)),Fmt(this.a,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),QIe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),QIe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.d;case 2:return!!this.b&&0!=this.b.f;case 3:return!!dQ(this);case 4:return!!this.a&&0!=this.a.i;case 5:return!!this.c&&0!=this.c.i}return T4(this,t-dY((pGt(),QIe)),eet(jz(vot(this,16),26)||QIe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void pU(this,kB(e));case 2:return!this.b&&(this.b=new KN((pGt(),yLe),VLe,this)),void tot(this.b,e);case 3:return void AMt(this,jz(e,147));case 4:return!this.a&&(this.a=new DO(DDe,this,4)),cUt(this.a),!this.a&&(this.a=new DO(DDe,this,4)),void pY(this.a,jz(e,14));case 5:return!this.c&&(this.c=new NO(DDe,this,5)),cUt(this.c),!this.c&&(this.c=new NO(DDe,this,5)),void pY(this.c,jz(e,14))}Lft(this,t-dY((pGt(),QIe)),eet(jz(vot(this,16),26)||QIe,t),e)},kGt.zh=function(){return pGt(),QIe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void $it(this,null);case 2:return!this.b&&(this.b=new KN((pGt(),yLe),VLe,this)),void this.b.c.$b();case 3:return void AMt(this,null);case 4:return!this.a&&(this.a=new DO(DDe,this,4)),void cUt(this.a);case 5:return!this.c&&(this.c=new NO(DDe,this,5)),void cUt(this.c)}Hdt(this,t-dY((pGt(),QIe)),eet(jz(vot(this,16),26)||QIe,t))},kGt.Ib=function(){return Gdt(this)},kGt.d=null,bY(d7t,"EAnnotationImpl",510),fIt(151,705,x8t,y8),kGt.Xh=function(t,e){JI(this,t,jz(e,42))},kGt.lk=function(t,e){return FF(this,jz(t,42),e)},kGt.pi=function(t){return jz(jz(this.c,69).pi(t),133)},kGt.Zh=function(){return jz(this.c,69).Zh()},kGt.$h=function(){return jz(this.c,69).$h()},kGt._h=function(t){return jz(this.c,69)._h(t)},kGt.mk=function(t,e){return jF(this,t,e)},kGt.Wj=function(t){return jz(this.c,76).Wj(t)},kGt.rj=function(){},kGt.fj=function(){return jz(this.c,76).fj()},kGt.tj=function(t,e,n){var i;return(i=jz(qet(this.b).Nh().Jh(this.b),133)).Th(t),i.Uh(e),i.ed(n),i},kGt.uj=function(){return new Sm(this)},kGt.Wb=function(t){tot(this,t)},kGt.Xj=function(){jz(this.c,76).Xj()},bY(v8t,"EcoreEMap",151),fIt(158,151,x8t,KN),kGt.qj=function(){var t,e,n,i,a;if(null==this.d){for(a=O5(rIe,a8t,63,2*this.f+1,0,1),n=this.c.Kc();n.e!=n.i.gc();)!(t=a[i=((e=jz(n.nj(),133)).Sh()&NGt)%a.length])&&(t=a[i]=new Sm(this)),t.Fc(e);this.d=a}},bY(d7t,"EAnnotationImpl/1",158),fIt(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1}),kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),!!this.$j();case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q}return V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 9:return gY(this,n)}return jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Rj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i)}return T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.sh=function(t,e){var n;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void this.Lh(kB(e));case 2:return void Kdt(this,zw(RB(e)));case 3:return void Qdt(this,zw(RB(e)));case 4:return void Lnt(this,jz(e,19).a);case 5:return void this.ok(jz(e,19).a);case 8:return void Tut(this,jz(e,138));case 9:return void((n=zkt(this,jz(e,87),null))&&n.Fi())}Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.zh=function(){return pGt(),wLe},kGt.Bh=function(t){var e;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void this.Lh(null);case 2:return void Kdt(this,!0);case 3:return void Qdt(this,!0);case 4:return void Lnt(this,0);case 5:return void this.ok(1);case 8:return void Tut(this,null);case 9:return void((e=zkt(this,null,null))&&e.Fi())}Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.Gh=function(){Txt(this),this.Bb|=1},kGt.Yj=function(){return Txt(this)},kGt.Zj=function(){return this.t},kGt.$j=function(){var t;return(t=this.t)>1||-1==t},kGt.hi=function(){return 0!=(512&this.Bb)},kGt.nk=function(t,e){return Cdt(this,t,e)},kGt.ok=function(t){Ont(this,t)},kGt.Ib=function(){return PDt(this)},kGt.s=0,kGt.t=1,bY(d7t,"ETypedElementImpl",284),fIt(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1}),kGt.Qg=function(t){return Owt(this,t)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),!!this.$j();case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q;case 10:return cM(),!!(this.Bb&w7t);case 11:return cM(),!!(this.Bb&k8t);case 12:return cM(),!!(this.Bb&FKt);case 13:return this.j;case 14:return HOt(this);case 15:return cM(),!!(this.Bb&_8t);case 16:return cM(),!!(this.Bb&lZt);case 17:return fQ(this)}return V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 17:return this.Cb&&(n=(i=this.Db>>16)>=0?Owt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,17,n)}return jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Qj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 9:return gY(this,n);case 17:return _jt(this,null,17,n)}return jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Rj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i);case 10:return 0==(this.Bb&w7t);case 11:return 0!=(this.Bb&k8t);case 12:return 0!=(this.Bb&FKt);case 13:return null!=this.j;case 14:return null!=HOt(this);case 15:return 0!=(this.Bb&_8t);case 16:return 0!=(this.Bb&lZt);case 17:return!!fQ(this)}return T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.sh=function(t,e){var n;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void KQ(this,kB(e));case 2:return void Kdt(this,zw(RB(e)));case 3:return void Qdt(this,zw(RB(e)));case 4:return void Lnt(this,jz(e,19).a);case 5:return void this.ok(jz(e,19).a);case 8:return void Tut(this,jz(e,138));case 9:return void((n=zkt(this,jz(e,87),null))&&n.Fi());case 10:return void Dht(this,zw(RB(e)));case 11:return void Oht(this,zw(RB(e)));case 12:return void Iht(this,zw(RB(e)));case 13:return void PA(this,kB(e));case 15:return void Lht(this,zw(RB(e)));case 16:return void Hht(this,zw(RB(e)))}Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.zh=function(){return pGt(),vLe},kGt.Bh=function(t){var e;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,88)&&DTt(E6(jz(this.Cb,88)),4),void Oat(this,null);case 2:return void Kdt(this,!0);case 3:return void Qdt(this,!0);case 4:return void Lnt(this,0);case 5:return void this.ok(1);case 8:return void Tut(this,null);case 9:return void((e=zkt(this,null,null))&&e.Fi());case 10:return void Dht(this,!0);case 11:return void Oht(this,!1);case 12:return void Iht(this,!1);case 13:return this.i=null,void rat(this,null);case 15:return void Lht(this,!1);case 16:return void Hht(this,!1)}Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.Gh=function(){vZ(j9((TSt(),KLe),this)),Txt(this),this.Bb|=1},kGt.Gj=function(){return this.f},kGt.zj=function(){return HOt(this)},kGt.Hj=function(){return fQ(this)},kGt.Lj=function(){return null},kGt.pk=function(){return this.k},kGt.aj=function(){return this.n},kGt.Mj=function(){return s_t(this)},kGt.Nj=function(){var t,e,n,i,a,r,o,s,c;return this.p||((null==(n=fQ(this)).i&&H$t(n),n.i).length,(i=this.Lj())&&dY(fQ(i)),t=(o=(a=Txt(this)).Bj())?1&o.i?o==AMe?wee:o==TMe?Dee:o==OMe?See:o==LMe?Cee:o==DMe?Bee:o==MMe?Fee:o==IMe?Ree:Eee:o:null,e=HOt(this),s=a.zj(),hft(this),this.Bb&lZt&&((r=yRt((TSt(),KLe),n))&&r!=this||(r=X1(j9(KLe,this))))?this.p=new AA(this,r):this.$j()?this.rk()?i?this.Bb&_8t?t?this.sk()?this.p=new uK(47,t,this,i):this.p=new uK(5,t,this,i):this.sk()?this.p=new h3(46,this,i):this.p=new h3(4,this,i):t?this.sk()?this.p=new uK(49,t,this,i):this.p=new uK(7,t,this,i):this.sk()?this.p=new h3(48,this,i):this.p=new h3(6,this,i):this.Bb&_8t?t?t==zte?this.p=new Ez(50,WDe,this):this.sk()?this.p=new Ez(43,t,this):this.p=new Ez(1,t,this):this.sk()?this.p=new NX(42,this):this.p=new NX(0,this):t?t==zte?this.p=new Ez(41,WDe,this):this.sk()?this.p=new Ez(45,t,this):this.p=new Ez(3,t,this):this.sk()?this.p=new NX(44,this):this.p=new NX(2,this):iO(a,148)?t==ALe?this.p=new NX(40,this):512&this.Bb?this.Bb&_8t?this.p=t?new Ez(9,t,this):new NX(8,this):this.p=t?new Ez(11,t,this):new NX(10,this):this.Bb&_8t?this.p=t?new Ez(13,t,this):new NX(12,this):this.p=t?new Ez(15,t,this):new NX(14,this):i?(c=i.t)>1||-1==c?this.sk()?this.Bb&_8t?this.p=t?new uK(25,t,this,i):new h3(24,this,i):this.p=t?new uK(27,t,this,i):new h3(26,this,i):this.Bb&_8t?this.p=t?new uK(29,t,this,i):new h3(28,this,i):this.p=t?new uK(31,t,this,i):new h3(30,this,i):this.sk()?this.Bb&_8t?this.p=t?new uK(33,t,this,i):new h3(32,this,i):this.p=t?new uK(35,t,this,i):new h3(34,this,i):this.Bb&_8t?this.p=t?new uK(37,t,this,i):new h3(36,this,i):this.p=t?new uK(39,t,this,i):new h3(38,this,i):this.sk()?this.Bb&_8t?this.p=t?new Ez(17,t,this):new NX(16,this):this.p=t?new Ez(19,t,this):new NX(18,this):this.Bb&_8t?this.p=t?new Ez(21,t,this):new NX(20,this):this.p=t?new Ez(23,t,this):new NX(22,this):this.qk()?this.sk()?this.p=new Cz(jz(a,26),this,i):this.p=new mJ(jz(a,26),this,i):iO(a,148)?t==ALe?this.p=new NX(40,this):this.Bb&_8t?this.p=t?new JV(e,s,this,($gt(),o==TMe?$Le:o==AMe?NLe:o==DMe?zLe:o==OMe?jLe:o==LMe?FLe:o==MMe?ULe:o==IMe?BLe:o==SMe?PLe:HLe)):new fK(jz(a,148),e,s,this):this.p=t?new XV(e,s,this,($gt(),o==TMe?$Le:o==AMe?NLe:o==DMe?zLe:o==OMe?jLe:o==LMe?FLe:o==MMe?ULe:o==IMe?BLe:o==SMe?PLe:HLe)):new hK(jz(a,148),e,s,this):this.rk()?i?this.Bb&_8t?this.sk()?this.p=new Lz(jz(a,26),this,i):this.p=new Iz(jz(a,26),this,i):this.sk()?this.p=new Dz(jz(a,26),this,i):this.p=new Sz(jz(a,26),this,i):this.Bb&_8t?this.sk()?this.p=new tB(jz(a,26),this):this.p=new QN(jz(a,26),this):this.sk()?this.p=new JN(jz(a,26),this):this.p=new XN(jz(a,26),this):this.sk()?i?this.Bb&_8t?this.p=new Oz(jz(a,26),this,i):this.p=new Tz(jz(a,26),this,i):this.Bb&_8t?this.p=new nB(jz(a,26),this):this.p=new eB(jz(a,26),this):i?this.Bb&_8t?this.p=new Mz(jz(a,26),this,i):this.p=new Az(jz(a,26),this,i):this.Bb&_8t?this.p=new iB(jz(a,26),this):this.p=new iV(jz(a,26),this)),this.p},kGt.Ij=function(){return 0!=(this.Bb&w7t)},kGt.qk=function(){return!1},kGt.rk=function(){return!1},kGt.Jj=function(){return 0!=(this.Bb&lZt)},kGt.Oj=function(){return ctt(this)},kGt.sk=function(){return!1},kGt.Kj=function(){return 0!=(this.Bb&_8t)},kGt.tk=function(t){this.k=t},kGt.Lh=function(t){KQ(this,t)},kGt.Ib=function(){return RPt(this)},kGt.e=!1,kGt.n=0,bY(d7t,"EStructuralFeatureImpl",449),fIt(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},Tv),kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),!!OAt(this);case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q;case 10:return cM(),!!(this.Bb&w7t);case 11:return cM(),!!(this.Bb&k8t);case 12:return cM(),!!(this.Bb&FKt);case 13:return this.j;case 14:return HOt(this);case 15:return cM(),!!(this.Bb&_8t);case 16:return cM(),!!(this.Bb&lZt);case 17:return fQ(this);case 18:return cM(),!!(this.Bb&l7t);case 19:return e?ost(this):O7(this)}return V8(this,t-dY((pGt(),tLe)),eet(jz(vot(this,16),26)||tLe,t),e,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return OAt(this);case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i);case 10:return 0==(this.Bb&w7t);case 11:return 0!=(this.Bb&k8t);case 12:return 0!=(this.Bb&FKt);case 13:return null!=this.j;case 14:return null!=HOt(this);case 15:return 0!=(this.Bb&_8t);case 16:return 0!=(this.Bb&lZt);case 17:return!!fQ(this);case 18:return 0!=(this.Bb&l7t);case 19:return!!O7(this)}return T4(this,t-dY((pGt(),tLe)),eet(jz(vot(this,16),26)||tLe,t))},kGt.sh=function(t,e){var n;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void KQ(this,kB(e));case 2:return void Kdt(this,zw(RB(e)));case 3:return void Qdt(this,zw(RB(e)));case 4:return void Lnt(this,jz(e,19).a);case 5:return void VR(this,jz(e,19).a);case 8:return void Tut(this,jz(e,138));case 9:return void((n=zkt(this,jz(e,87),null))&&n.Fi());case 10:return void Dht(this,zw(RB(e)));case 11:return void Oht(this,zw(RB(e)));case 12:return void Iht(this,zw(RB(e)));case 13:return void PA(this,kB(e));case 15:return void Lht(this,zw(RB(e)));case 16:return void Hht(this,zw(RB(e)));case 18:return void Uht(this,zw(RB(e)))}Lft(this,t-dY((pGt(),tLe)),eet(jz(vot(this,16),26)||tLe,t),e)},kGt.zh=function(){return pGt(),tLe},kGt.Bh=function(t){var e;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,88)&&DTt(E6(jz(this.Cb,88)),4),void Oat(this,null);case 2:return void Kdt(this,!0);case 3:return void Qdt(this,!0);case 4:return void Lnt(this,0);case 5:return this.b=0,void Ont(this,1);case 8:return void Tut(this,null);case 9:return void((e=zkt(this,null,null))&&e.Fi());case 10:return void Dht(this,!0);case 11:return void Oht(this,!1);case 12:return void Iht(this,!1);case 13:return this.i=null,void rat(this,null);case 15:return void Lht(this,!1);case 16:return void Hht(this,!1);case 18:return void Uht(this,!1)}Hdt(this,t-dY((pGt(),tLe)),eet(jz(vot(this,16),26)||tLe,t))},kGt.Gh=function(){ost(this),vZ(j9((TSt(),KLe),this)),Txt(this),this.Bb|=1},kGt.$j=function(){return OAt(this)},kGt.nk=function(t,e){return this.b=0,this.a=null,Cdt(this,t,e)},kGt.ok=function(t){VR(this,t)},kGt.Ib=function(){var t;return 64&this.Db?RPt(this):((t=new lM(RPt(this))).a+=" (iD: ",y_(t,0!=(this.Bb&l7t)),t.a+=")",t.a)},kGt.b=0,bY(d7t,"EAttributeImpl",322),fIt(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1}),kGt.uk=function(t){return t.Tg()==this},kGt.Qg=function(t){return uwt(this,t)},kGt.Rg=function(t,e){this.w=null,this.Db=e<<16|255&this.Db,this.Cb=t},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return nwt(this);case 4:return this.zj();case 5:return this.F;case 6:return e?qet(this):hQ(this);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),this.A}return V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?uwt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,6,n)}return jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Qj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 6:return _jt(this,null,6,n);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),Fmt(this.A,t,n)}return jz(eet(jz(vot(this,16),26)||this.zh(),e),66).Nj().Rj(this,ubt(this),e-dY(this.zh()),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!nwt(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!hQ(this);case 7:return!!this.A&&0!=this.A.i}return T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void XQ(this,kB(e));case 2:return void SI(this,kB(e));case 5:return void KUt(this,kB(e));case 7:return!this.A&&(this.A=new LO(SLe,this,7)),cUt(this.A),!this.A&&(this.A=new LO(SLe,this,7)),void pY(this.A,jz(e,14))}Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.zh=function(){return pGt(),nLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,179)&&(jz(this.Cb,179).tb=null),void Oat(this,null);case 2:return Nlt(this,null),void Mnt(this,this.D);case 5:return void KUt(this,null);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),void cUt(this.A)}Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.yj=function(){var t;return-1==this.G&&(this.G=(t=qet(this))?oyt(t.Mh(),this):-1),this.G},kGt.zj=function(){return null},kGt.Aj=function(){return qet(this)},kGt.vk=function(){return this.v},kGt.Bj=function(){return nwt(this)},kGt.Cj=function(){return null!=this.D?this.D:this.B},kGt.Dj=function(){return this.F},kGt.wj=function(t){return E$t(this,t)},kGt.wk=function(t){this.v=t},kGt.xk=function(t){qat(this,t)},kGt.yk=function(t){this.C=t},kGt.Lh=function(t){XQ(this,t)},kGt.Ib=function(){return Sgt(this)},kGt.C=null,kGt.D=null,kGt.G=-1,bY(d7t,"EClassifierImpl",351),fIt(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},Bd),kGt.uk=function(t){return GP(this,t.Tg())},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return nwt(this);case 4:return null;case 5:return this.F;case 6:return e?qet(this):hQ(this);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),this.A;case 8:return cM(),!!(256&this.Bb);case 9:return cM(),!!(512&this.Bb);case 10:return vX(this);case 11:return!this.q&&(this.q=new tW(YIe,this,11,10)),this.q;case 12:return Kzt(this);case 13:return Bzt(this);case 14:return Bzt(this),this.r;case 15:return Kzt(this),this.k;case 16:return YSt(this);case 17:return pzt(this);case 18:return H$t(this);case 19:return SOt(this);case 20:return Kzt(this),this.o;case 21:return!this.s&&(this.s=new tW(PIe,this,21,17)),this.s;case 22:return a3(this);case 23:return zBt(this)}return V8(this,t-dY((pGt(),eLe)),eet(jz(vot(this,16),26)||eLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?uwt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,6,n);case 11:return!this.q&&(this.q=new tW(YIe,this,11,10)),Kgt(this.q,t,n);case 21:return!this.s&&(this.s=new tW(PIe,this,21,17)),Kgt(this.s,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),eLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),eLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 6:return _jt(this,null,6,n);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),Fmt(this.A,t,n);case 11:return!this.q&&(this.q=new tW(YIe,this,11,10)),Fmt(this.q,t,n);case 21:return!this.s&&(this.s=new tW(PIe,this,21,17)),Fmt(this.s,t,n);case 22:return Fmt(a3(this),t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),eLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),eLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!nwt(this);case 4:return!1;case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!hQ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0!=(256&this.Bb);case 9:return 0!=(512&this.Bb);case 10:return!(!this.u||0==a3(this.u.a).i||this.n&&Byt(this.n));case 11:return!!this.q&&0!=this.q.i;case 12:return 0!=Kzt(this).i;case 13:return 0!=Bzt(this).i;case 14:return Bzt(this),0!=this.r.i;case 15:return Kzt(this),0!=this.k.i;case 16:return 0!=YSt(this).i;case 17:return 0!=pzt(this).i;case 18:return 0!=H$t(this).i;case 19:return 0!=SOt(this).i;case 20:return Kzt(this),!!this.o;case 21:return!!this.s&&0!=this.s.i;case 22:return!!this.n&&Byt(this.n);case 23:return 0!=zBt(this).i}return T4(this,t-dY((pGt(),eLe)),eet(jz(vot(this,16),26)||eLe,t))},kGt.oh=function(t){return(null==this.i||this.q&&0!=this.q.i?null:OMt(this,t))||lWt(this,t)},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void XQ(this,kB(e));case 2:return void SI(this,kB(e));case 5:return void KUt(this,kB(e));case 7:return!this.A&&(this.A=new LO(SLe,this,7)),cUt(this.A),!this.A&&(this.A=new LO(SLe,this,7)),void pY(this.A,jz(e,14));case 8:return void Xdt(this,zw(RB(e)));case 9:return void tht(this,zw(RB(e)));case 10:return mUt(vX(this)),void pY(vX(this),jz(e,14));case 11:return!this.q&&(this.q=new tW(YIe,this,11,10)),cUt(this.q),!this.q&&(this.q=new tW(YIe,this,11,10)),void pY(this.q,jz(e,14));case 21:return!this.s&&(this.s=new tW(PIe,this,21,17)),cUt(this.s),!this.s&&(this.s=new tW(PIe,this,21,17)),void pY(this.s,jz(e,14));case 22:return cUt(a3(this)),void pY(a3(this),jz(e,14))}Lft(this,t-dY((pGt(),eLe)),eet(jz(vot(this,16),26)||eLe,t),e)},kGt.zh=function(){return pGt(),eLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,179)&&(jz(this.Cb,179).tb=null),void Oat(this,null);case 2:return Nlt(this,null),void Mnt(this,this.D);case 5:return void KUt(this,null);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),void cUt(this.A);case 8:return void Xdt(this,!1);case 9:return void tht(this,!1);case 10:return void(this.u&&mUt(this.u));case 11:return!this.q&&(this.q=new tW(YIe,this,11,10)),void cUt(this.q);case 21:return!this.s&&(this.s=new tW(PIe,this,21,17)),void cUt(this.s);case 22:return void(this.n&&cUt(this.n))}Hdt(this,t-dY((pGt(),eLe)),eet(jz(vot(this,16),26)||eLe,t))},kGt.Gh=function(){var t,e;if(Kzt(this),Bzt(this),YSt(this),pzt(this),H$t(this),SOt(this),zBt(this),a7(qz(E6(this))),this.s)for(t=0,e=this.s.i;t<e;++t)bN(Yet(this.s,t));if(this.q)for(t=0,e=this.q.i;t<e;++t)bN(Yet(this.q,t));Sdt((TSt(),KLe),this).ne(),this.Bb|=1},kGt.Ib=function(){return g_t(this)},kGt.k=null,kGt.r=null,bY(d7t,"EClassImpl",88),fIt(1994,1993,N8t),kGt.Vh=function(t,e){return L$t(this,t,e)},kGt.Wh=function(t){return L$t(this,this.i,t)},kGt.Xh=function(t,e){HDt(this,t,e)},kGt.Yh=function(t){tIt(this,t)},kGt.lk=function(t,e){return Kgt(this,t,e)},kGt.pi=function(t){return F8(this,t)},kGt.mk=function(t,e){return Fmt(this,t,e)},kGt.mi=function(t,e){return uzt(this,t,e)},kGt.Zh=function(){return new aN(this)},kGt.$h=function(){return new rN(this)},kGt._h=function(t){return cit(this,t)},bY(v8t,"NotifyingInternalEListImpl",1994),fIt(622,1994,B8t),kGt.Hc=function(t){return hUt(this,t)},kGt.Zi=function(t,e,n,i,a){return yQ(this,t,e,n,i,a)},kGt.$i=function(t){Iy(this,t)},kGt.Wj=function(t){return this},kGt.ak=function(){return eet(this.e.Tg(),this.aj())},kGt._i=function(){return this.ak()},kGt.aj=function(){return Dgt(this.e.Tg(),this.ak())},kGt.zk=function(){return jz(this.ak().Yj(),26).Bj()},kGt.Ak=function(){return Syt(jz(this.ak(),18)).n},kGt.Ai=function(){return this.e},kGt.Bk=function(){return!0},kGt.Ck=function(){return!1},kGt.Dk=function(){return!1},kGt.Ek=function(){return!1},kGt.Xc=function(t){return oyt(this,t)},kGt.cj=function(t,e){var n;return n=jz(t,49),this.Dk()?this.Bk()?n.gh(this.e,this.Ak(),this.zk(),e):n.gh(this.e,Dgt(n.Tg(),Syt(jz(this.ak(),18))),null,e):n.gh(this.e,-1-this.aj(),null,e)},kGt.dj=function(t,e){var n;return n=jz(t,49),this.Dk()?this.Bk()?n.ih(this.e,this.Ak(),this.zk(),e):n.ih(this.e,Dgt(n.Tg(),Syt(jz(this.ak(),18))),null,e):n.ih(this.e,-1-this.aj(),null,e)},kGt.rk=function(){return!1},kGt.Fk=function(){return!0},kGt.wj=function(t){return O4(this.d,t)},kGt.ej=function(){return mI(this.e)},kGt.fj=function(){return 0!=this.i},kGt.ri=function(t){return Nnt(this.d,t)},kGt.li=function(t,e){return this.Fk()&&this.Ek()?UDt(this,t,jz(e,56)):e},kGt.Gk=function(t){return t.kh()?tdt(this.e,jz(t,49)):t},kGt.Wb=function(t){KL(this,t)},kGt.Pc=function(){return $8(this)},kGt.Qc=function(t){var e;if(this.Ek())for(e=this.i-1;e>=0;--e)Yet(this,e);return Zgt(this,t)},kGt.Xj=function(){cUt(this)},kGt.oi=function(t,e){return Fnt(this,t,e)},bY(v8t,"EcoreEList",622),fIt(496,622,B8t,yH),kGt.ai=function(){return!1},kGt.aj=function(){return this.c},kGt.bj=function(){return!1},kGt.Fk=function(){return!0},kGt.hi=function(){return!0},kGt.li=function(t,e){return e},kGt.ni=function(){return!1},kGt.c=0,bY(v8t,"EObjectEList",496),fIt(85,496,B8t,DO),kGt.bj=function(){return!0},kGt.Dk=function(){return!1},kGt.rk=function(){return!0},bY(v8t,"EObjectContainmentEList",85),fIt(545,85,B8t,IO),kGt.ci=function(){this.b=!0},kGt.fj=function(){return this.b},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.b,this.b=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.b=!1},kGt.b=!1,bY(v8t,"EObjectContainmentEList/Unsettable",545),fIt(1140,545,B8t,ZV),kGt.ii=function(t,e){var n,i;return n=jz(Tht(this,t,e),87),mI(this.e)&&Iy(this,new w8(this.a,7,(pGt(),iLe),nht(e),iO(i=n.c,88)?jz(i,26):hLe,t)),n},kGt.jj=function(t,e){return Jgt(this,jz(t,87),e)},kGt.kj=function(t,e){return Xgt(this,jz(t,87),e)},kGt.lj=function(t,e,n){return FRt(this,jz(t,87),jz(e,87),n)},kGt.Zi=function(t,e,n,i,a){switch(t){case 3:return yQ(this,t,e,n,i,this.i>1);case 5:return yQ(this,t,e,n,i,this.i-jz(n,15).gc()>0);default:return new L9(this.e,t,this.c,e,n,i,!0)}},kGt.ij=function(){return!0},kGt.fj=function(){return Byt(this)},kGt.Xj=function(){cUt(this)},bY(d7t,"EClassImpl/1",1140),fIt(1154,1153,J5t),kGt.ui=function(t){var e,n,i,a,r,o,s;if(8!=(n=t.xi())){if(0==(i=rmt(t)))switch(n){case 1:case 9:null!=(s=t.Bi())&&(!(e=E6(jz(s,473))).c&&(e.c=new zc),stt(e.c,t.Ai())),null!=(o=t.zi())&&(1&(a=jz(o,473)).Bb||(!(e=E6(a)).c&&(e.c=new zc),l8(e.c,jz(t.Ai(),26))));break;case 3:null!=(o=t.zi())&&(1&(a=jz(o,473)).Bb||(!(e=E6(a)).c&&(e.c=new zc),l8(e.c,jz(t.Ai(),26))));break;case 5:if(null!=(o=t.zi()))for(r=jz(o,14).Kc();r.Ob();)1&(a=jz(r.Pb(),473)).Bb||(!(e=E6(a)).c&&(e.c=new zc),l8(e.c,jz(t.Ai(),26)));break;case 4:null!=(s=t.Bi())&&(1&(a=jz(s,473)).Bb||(!(e=E6(a)).c&&(e.c=new zc),stt(e.c,t.Ai())));break;case 6:if(null!=(s=t.Bi()))for(r=jz(s,14).Kc();r.Ob();)1&(a=jz(r.Pb(),473)).Bb||(!(e=E6(a)).c&&(e.c=new zc),stt(e.c,t.Ai()))}this.Hk(i)}},kGt.Hk=function(t){gPt(this,t)},kGt.b=63,bY(d7t,"ESuperAdapter",1154),fIt(1155,1154,J5t,fm),kGt.Hk=function(t){DTt(this,t)},bY(d7t,"EClassImpl/10",1155),fIt(1144,696,B8t),kGt.Vh=function(t,e){return $kt(this,t,e)},kGt.Wh=function(t){return hvt(this,t)},kGt.Xh=function(t,e){Tdt(this,t,e)},kGt.Yh=function(t){i7(this,t)},kGt.pi=function(t){return F8(this,t)},kGt.mi=function(t,e){return ott(this,t,e)},kGt.lk=function(t,e){throw $m(new py)},kGt.Zh=function(){return new aN(this)},kGt.$h=function(){return new rN(this)},kGt._h=function(t){return cit(this,t)},kGt.mk=function(t,e){throw $m(new py)},kGt.Wj=function(t){return this},kGt.fj=function(){return 0!=this.i},kGt.Wb=function(t){throw $m(new py)},kGt.Xj=function(){throw $m(new py)},bY(v8t,"EcoreEList/UnmodifiableEList",1144),fIt(319,1144,B8t,LD),kGt.ni=function(){return!1},bY(v8t,"EcoreEList/UnmodifiableEList/FastCompare",319),fIt(1147,319,B8t,gct),kGt.Xc=function(t){var e,n;if(iO(t,170)&&-1!=(e=jz(t,170).aj()))for(n=this.i;e<n;++e)if(HA(this.g[e])===HA(t))return e;return-1},bY(d7t,"EClassImpl/1EAllStructuralFeaturesList",1147),fIt(1141,497,l5t,_c),kGt.ri=function(t){return O5(WIe,$8t,87,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/1EGenericSuperTypeEList",1141),fIt(623,497,l5t,kc),kGt.ri=function(t){return O5(PIe,O8t,170,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/1EStructuralFeatureUniqueEList",623),fIt(741,497,l5t,Ec),kGt.ri=function(t){return O5(ZIe,O8t,18,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/1ReferenceList",741),fIt(1142,497,l5t,gm),kGt.bi=function(t,e){QV(this,jz(e,34))},kGt.ri=function(t){return O5(FIe,O8t,34,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/2",1142),fIt(1143,497,l5t,Cc),kGt.ri=function(t){return O5(FIe,O8t,34,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/3",1143),fIt(1145,319,B8t,xH),kGt.Fc=function(t){return mz(this,jz(t,34))},kGt.Yh=function(t){K_(this,jz(t,34))},bY(d7t,"EClassImpl/4",1145),fIt(1146,319,B8t,RH),kGt.Fc=function(t){return yz(this,jz(t,18))},kGt.Yh=function(t){X_(this,jz(t,18))},bY(d7t,"EClassImpl/5",1146),fIt(1148,497,l5t,Sc),kGt.ri=function(t){return O5(YIe,M8t,59,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/6",1148),fIt(1149,497,l5t,Tc),kGt.ri=function(t){return O5(ZIe,O8t,18,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/7",1149),fIt(1997,1996,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,69:1}),kGt.Vh=function(t,e){return o$t(this,t,e)},kGt.Wh=function(t){return o$t(this,this.Vi(),t)},kGt.Xh=function(t,e){eIt(this,t,e)},kGt.Yh=function(t){ADt(this,t)},kGt.lk=function(t,e){return fvt(this,t,e)},kGt.mk=function(t,e){return jmt(this,t,e)},kGt.mi=function(t,e){return s$t(this,t,e)},kGt.pi=function(t){return this.Oi(t)},kGt.Zh=function(){return new aN(this)},kGt.Gi=function(){return this.Ji()},kGt.$h=function(){return new rN(this)},kGt._h=function(t){return cit(this,t)},bY(v8t,"DelegatingNotifyingInternalEListImpl",1997),fIt(742,1997,z8t),kGt.ai=function(){var t;return iO(t=eet(wX(this.b),this.aj()).Yj(),148)&&!iO(t,457)&&0==(1&t.Bj().i)},kGt.Hc=function(t){var e,n,i,a,r,o,s;if(this.Fk()){if((s=this.Vi())>4){if(!this.wj(t))return!1;if(this.rk()){if(o=(e=(n=jz(t,49)).Ug())==this.b&&(this.Dk()?n.Og(n.Vg(),jz(eet(wX(this.b),this.aj()).Yj(),26).Bj())==Syt(jz(eet(wX(this.b),this.aj()),18)).n:-1-n.Vg()==this.aj()),this.Ek()&&!o&&!e&&n.Zg())for(i=0;i<s;++i)if(HA(Hq(this,this.Oi(i)))===HA(t))return!0;return o}if(this.Dk()&&!this.Ck()){if(HA(a=jz(t,56).ah(Syt(jz(eet(wX(this.b),this.aj()),18))))===HA(this.b))return!0;if(null==a||!jz(a,56).kh())return!1}}if(r=this.Li(t),this.Ek()&&!r)for(i=0;i<s;++i)if(HA(n=Hq(this,this.Oi(i)))===HA(t))return!0;return r}return this.Li(t)},kGt.Zi=function(t,e,n,i,a){return new L9(this.b,t,this.aj(),e,n,i,a)},kGt.$i=function(t){hot(this.b,t)},kGt.Wj=function(t){return this},kGt._i=function(){return eet(wX(this.b),this.aj())},kGt.aj=function(){return Dgt(wX(this.b),eet(wX(this.b),this.aj()))},kGt.Ai=function(){return this.b},kGt.Bk=function(){return!!eet(wX(this.b),this.aj()).Yj().Bj()},kGt.bj=function(){var t;return!(!iO(t=eet(wX(this.b),this.aj()),99)||0==(jz(t,18).Bb&l7t)&&!Syt(jz(t,18)))},kGt.Ck=function(){var t,e,n;return!!iO(t=eet(wX(this.b),this.aj()),99)&&!!(e=Syt(jz(t,18)))&&((n=e.t)>1||-1==n)},kGt.Dk=function(){var t;return!!iO(t=eet(wX(this.b),this.aj()),99)&&!!Syt(jz(t,18))},kGt.Ek=function(){var t;return!!iO(t=eet(wX(this.b),this.aj()),99)&&0!=(jz(t,18).Bb&$Kt)},kGt.Xc=function(t){var e,n,i;if((n=this.Qi(t))>=0)return n;if(this.Fk())for(e=0,i=this.Vi();e<i;++e)if(HA(Hq(this,this.Oi(e)))===HA(t))return e;return-1},kGt.cj=function(t,e){var n;return n=jz(t,49),this.Dk()?this.Bk()?n.gh(this.b,Syt(jz(eet(wX(this.b),this.aj()),18)).n,jz(eet(wX(this.b),this.aj()).Yj(),26).Bj(),e):n.gh(this.b,Dgt(n.Tg(),Syt(jz(eet(wX(this.b),this.aj()),18))),null,e):n.gh(this.b,-1-this.aj(),null,e)},kGt.dj=function(t,e){var n;return n=jz(t,49),this.Dk()?this.Bk()?n.ih(this.b,Syt(jz(eet(wX(this.b),this.aj()),18)).n,jz(eet(wX(this.b),this.aj()).Yj(),26).Bj(),e):n.ih(this.b,Dgt(n.Tg(),Syt(jz(eet(wX(this.b),this.aj()),18))),null,e):n.ih(this.b,-1-this.aj(),null,e)},kGt.rk=function(){var t;return!!iO(t=eet(wX(this.b),this.aj()),99)&&0!=(jz(t,18).Bb&l7t)},kGt.Fk=function(){return iO(eet(wX(this.b),this.aj()).Yj(),88)},kGt.wj=function(t){return eet(wX(this.b),this.aj()).Yj().wj(t)},kGt.ej=function(){return mI(this.b)},kGt.fj=function(){return!this.Ri()},kGt.hi=function(){return eet(wX(this.b),this.aj()).hi()},kGt.li=function(t,e){return eVt(this,t,e)},kGt.Wb=function(t){mUt(this),pY(this,jz(t,15))},kGt.Pc=function(){var t;if(this.Ek())for(t=this.Vi()-1;t>=0;--t)eVt(this,t,this.Oi(t));return this.Wi()},kGt.Qc=function(t){var e;if(this.Ek())for(e=this.Vi()-1;e>=0;--e)eVt(this,e,this.Oi(e));return this.Xi(t)},kGt.Xj=function(){mUt(this)},kGt.oi=function(t,e){return j8(this,t,e)},bY(v8t,"DelegatingEcoreEList",742),fIt(1150,742,z8t,rP),kGt.Hi=function(t,e){uB(this,t,jz(e,26))},kGt.Ii=function(t){tL(this,jz(t,26))},kGt.Oi=function(t){var e;return iO(e=jz(Yet(a3(this.a),t),87).c,88)?jz(e,26):(pGt(),hLe)},kGt.Ti=function(t){var e;return iO(e=jz(uBt(a3(this.a),t),87).c,88)?jz(e,26):(pGt(),hLe)},kGt.Ui=function(t,e){return gvt(this,t,jz(e,26))},kGt.ai=function(){return!1},kGt.Zi=function(t,e,n,i,a){return null},kGt.Ji=function(){return new pm(this)},kGt.Ki=function(){cUt(a3(this.a))},kGt.Li=function(t){return qdt(this,t)},kGt.Mi=function(t){var e;for(e=t.Kc();e.Ob();)if(!qdt(this,e.Pb()))return!1;return!0},kGt.Ni=function(t){var e,n,i;if(iO(t,15)&&(i=jz(t,15)).gc()==a3(this.a).i){for(e=i.Kc(),n=new AO(this);e.Ob();)if(HA(e.Pb())!==HA(wmt(n)))return!1;return!0}return!1},kGt.Pi=function(){var t,e,n,i;for(e=1,t=new AO(a3(this.a));t.e!=t.i.gc();)e=31*e+((n=iO(i=jz(wmt(t),87).c,88)?jz(i,26):(pGt(),hLe))?EM(n):0);return e},kGt.Qi=function(t){var e,n,i,a;for(i=0,n=new AO(a3(this.a));n.e!=n.i.gc();){if(e=jz(wmt(n),87),HA(t)===HA(iO(a=e.c,88)?jz(a,26):(pGt(),hLe)))return i;++i}return-1},kGt.Ri=function(){return 0==a3(this.a).i},kGt.Si=function(){return null},kGt.Vi=function(){return a3(this.a).i},kGt.Wi=function(){var t,e,n,i,a,r;for(r=a3(this.a).i,a=O5(Dte,zGt,1,r,5,1),n=0,e=new AO(a3(this.a));e.e!=e.i.gc();)t=jz(wmt(e),87),a[n++]=iO(i=t.c,88)?jz(i,26):(pGt(),hLe);return a},kGt.Xi=function(t){var e,n,i,a;for(a=a3(this.a).i,t.length<a&&(t=Nnt(tlt(t).c,a)),t.length>a&&DY(t,a,null),n=0,e=new AO(a3(this.a));e.e!=e.i.gc();)DY(t,n++,iO(i=jz(wmt(e),87).c,88)?jz(i,26):(pGt(),hLe));return t},kGt.Yi=function(){var t,e,n,i,a;for((a=new kx).a+="[",t=a3(this.a),e=0,i=a3(this.a).i;e<i;)iD(a,vM(iO(n=jz(Yet(t,e),87).c,88)?jz(n,26):(pGt(),hLe))),++e<i&&(a.a+=jGt);return a.a+="]",a.a},kGt.$i=function(t){},kGt.aj=function(){return 10},kGt.Bk=function(){return!0},kGt.bj=function(){return!1},kGt.Ck=function(){return!1},kGt.Dk=function(){return!1},kGt.Ek=function(){return!0},kGt.rk=function(){return!1},kGt.Fk=function(){return!0},kGt.wj=function(t){return iO(t,88)},kGt.fj=function(){return G0(this.a)},kGt.hi=function(){return!0},kGt.ni=function(){return!0},bY(d7t,"EClassImpl/8",1150),fIt(1151,1964,LZt,pm),kGt.Zc=function(t){return cit(this.a,t)},kGt.gc=function(){return a3(this.a.a).i},bY(d7t,"EClassImpl/8/1",1151),fIt(1152,497,l5t,Ac),kGt.ri=function(t){return O5(jIe,zGt,138,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"EClassImpl/9",1152),fIt(1139,53,eXt,Sv),bY(d7t,"EClassImpl/MyHashSet",1139),fIt(566,351,{105:1,92:1,90:1,138:1,148:1,834:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1},xy),kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return nwt(this);case 4:return this.zj();case 5:return this.F;case 6:return e?qet(this):hQ(this);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),this.A;case 8:return cM(),!!(256&this.Bb)}return V8(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!nwt(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!hQ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0==(256&this.Bb)}return T4(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void XQ(this,kB(e));case 2:return void SI(this,kB(e));case 5:return void KUt(this,kB(e));case 7:return!this.A&&(this.A=new LO(SLe,this,7)),cUt(this.A),!this.A&&(this.A=new LO(SLe,this,7)),void pY(this.A,jz(e,14));case 8:return void Jdt(this,zw(RB(e)))}Lft(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t),e)},kGt.zh=function(){return pGt(),aLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,179)&&(jz(this.Cb,179).tb=null),void Oat(this,null);case 2:return Nlt(this,null),void Mnt(this,this.D);case 5:return void KUt(this,null);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),void cUt(this.A);case 8:return void Jdt(this,!0)}Hdt(this,t-dY(this.zh()),eet(jz(vot(this,16),26)||this.zh(),t))},kGt.Gh=function(){Sdt((TSt(),KLe),this).ne(),this.Bb|=1},kGt.Fj=function(){var t,e;if(!this.c&&!(t=ULt(qet(this))).dc())for(e=t.Kc();e.Ob();)Ojt(this,kB(e.Pb()))&&Bht(this);return this.b},kGt.zj=function(){var t;if(!this.e){t=null;try{t=nwt(this)}catch(e){if(!iO(e=dst(e),102))throw $m(e)}this.d=null,t&&1&t.i&&(this.d=t==AMe?(cM(),mee):t==TMe?nht(0):t==OMe?new Lf(0):t==LMe?0:t==DMe?xbt(0):t==MMe?iht(0):t==IMe?Ett(0):ust(0)),this.e=!0}return this.d},kGt.Ej=function(){return 0!=(256&this.Bb)},kGt.Ik=function(t){t&&(this.D="org.eclipse.emf.common.util.AbstractEnumerator")},kGt.xk=function(t){qat(this,t),this.Ik(t)},kGt.yk=function(t){this.C=t,this.e=!1},kGt.Ib=function(){var t;return 64&this.Db?Sgt(this):((t=new lM(Sgt(this))).a+=" (serializable: ",y_(t,0!=(256&this.Bb)),t.a+=")",t.a)},kGt.c=!1,kGt.d=null,kGt.e=!1,bY(d7t,"EDataTypeImpl",566),fIt(457,566,{105:1,92:1,90:1,138:1,148:1,834:1,671:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,457:1,150:1,114:1,115:1,676:1},Av),kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return nwt(this);case 4:return Zlt(this);case 5:return this.F;case 6:return e?qet(this):hQ(this);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),this.A;case 8:return cM(),!!(256&this.Bb);case 9:return!this.a&&(this.a=new tW(qIe,this,9,5)),this.a}return V8(this,t-dY((pGt(),rLe)),eet(jz(vot(this,16),26)||rLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 6:return this.Cb&&(n=(i=this.Db>>16)>=0?uwt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,6,n);case 9:return!this.a&&(this.a=new tW(qIe,this,9,5)),Kgt(this.a,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),rLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),rLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 6:return _jt(this,null,6,n);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),Fmt(this.A,t,n);case 9:return!this.a&&(this.a=new tW(qIe,this,9,5)),Fmt(this.a,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),rLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),rLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!nwt(this);case 4:return!!Zlt(this);case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!hQ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0==(256&this.Bb);case 9:return!!this.a&&0!=this.a.i}return T4(this,t-dY((pGt(),rLe)),eet(jz(vot(this,16),26)||rLe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void XQ(this,kB(e));case 2:return void SI(this,kB(e));case 5:return void KUt(this,kB(e));case 7:return!this.A&&(this.A=new LO(SLe,this,7)),cUt(this.A),!this.A&&(this.A=new LO(SLe,this,7)),void pY(this.A,jz(e,14));case 8:return void Jdt(this,zw(RB(e)));case 9:return!this.a&&(this.a=new tW(qIe,this,9,5)),cUt(this.a),!this.a&&(this.a=new tW(qIe,this,9,5)),void pY(this.a,jz(e,14))}Lft(this,t-dY((pGt(),rLe)),eet(jz(vot(this,16),26)||rLe,t),e)},kGt.zh=function(){return pGt(),rLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,179)&&(jz(this.Cb,179).tb=null),void Oat(this,null);case 2:return Nlt(this,null),void Mnt(this,this.D);case 5:return void KUt(this,null);case 7:return!this.A&&(this.A=new LO(SLe,this,7)),void cUt(this.A);case 8:return void Jdt(this,!0);case 9:return!this.a&&(this.a=new tW(qIe,this,9,5)),void cUt(this.a)}Hdt(this,t-dY((pGt(),rLe)),eet(jz(vot(this,16),26)||rLe,t))},kGt.Gh=function(){var t,e;if(this.a)for(t=0,e=this.a.i;t<e;++t)bN(Yet(this.a,t));Sdt((TSt(),KLe),this).ne(),this.Bb|=1},kGt.zj=function(){return Zlt(this)},kGt.wj=function(t){return null!=t},kGt.Ik=function(t){},bY(d7t,"EEnumImpl",457),fIt(573,438,{105:1,92:1,90:1,1940:1,678:1,147:1,191:1,56:1,108:1,49:1,97:1,573:1,150:1,114:1,115:1},wy),kGt.ne=function(){return this.zb},kGt.Qg=function(t){return dxt(this,t)},kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return nht(this.d);case 3:return this.b?this.b:this.a;case 4:return this.c??this.zb;case 5:return this.Db>>16==5?jz(this.Cb,671):null}return V8(this,t-dY((pGt(),oLe)),eet(jz(vot(this,16),26)||oLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 5:return this.Cb&&(n=(i=this.Db>>16)>=0?dxt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,5,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),oLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),oLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 5:return _jt(this,null,5,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),oLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),oLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0!=this.d;case 3:return!!this.b;case 4:return null!=this.c;case 5:return!(this.Db>>16!=5||!jz(this.Cb,671))}return T4(this,t-dY((pGt(),oLe)),eet(jz(vot(this,16),26)||oLe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void Oat(this,kB(e));case 2:return void Int(this,jz(e,19).a);case 3:return void pDt(this,jz(e,1940));case 4:return void jit(this,kB(e))}Lft(this,t-dY((pGt(),oLe)),eet(jz(vot(this,16),26)||oLe,t),e)},kGt.zh=function(){return pGt(),oLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void Oat(this,null);case 2:return void Int(this,0);case 3:return void pDt(this,null);case 4:return void jit(this,null)}Hdt(this,t-dY((pGt(),oLe)),eet(jz(vot(this,16),26)||oLe,t))},kGt.Ib=function(){return this.c??this.zb},kGt.b=null,kGt.c=null,kGt.d=0,bY(d7t,"EEnumLiteralImpl",573);var DLe,ILe,LLe,OLe=dU(d7t,"EFactoryImpl/InternalEDateTimeFormat");fIt(489,1,{2015:1},bm),bY(d7t,"EFactoryImpl/1ClientInternalEDateTimeFormat",489),fIt(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},Bm),kGt.Sg=function(t,e,n){var i;return n=_jt(this,t,e,n),this.e&&iO(t,170)&&(i=wOt(this,this.e))!=this.c&&(n=rqt(this,i,n)),n},kGt._g=function(t,e,n){switch(t){case 0:return this.f;case 1:return!this.d&&(this.d=new DO(WIe,this,1)),this.d;case 2:return e?d$t(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return e?Hyt(this):this.a}return V8(this,t-dY((pGt(),cLe)),eet(jz(vot(this,16),26)||cLe,t),e,n)},kGt.jh=function(t,e,n){switch(e){case 0:return Qut(this,null,n);case 1:return!this.d&&(this.d=new DO(WIe,this,1)),Fmt(this.d,t,n);case 3:return Jut(this,null,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),cLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),cLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.f;case 1:return!!this.d&&0!=this.d.i;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return T4(this,t-dY((pGt(),cLe)),eet(jz(vot(this,16),26)||cLe,t))},kGt.sh=function(t,e){switch(t){case 0:return void x_t(this,jz(e,87));case 1:return!this.d&&(this.d=new DO(WIe,this,1)),cUt(this.d),!this.d&&(this.d=new DO(WIe,this,1)),void pY(this.d,jz(e,14));case 3:return void w_t(this,jz(e,87));case 4:return void NEt(this,jz(e,836));case 5:return void ant(this,jz(e,138))}Lft(this,t-dY((pGt(),cLe)),eet(jz(vot(this,16),26)||cLe,t),e)},kGt.zh=function(){return pGt(),cLe},kGt.Bh=function(t){switch(t){case 0:return void x_t(this,null);case 1:return!this.d&&(this.d=new DO(WIe,this,1)),void cUt(this.d);case 3:return void w_t(this,null);case 4:return void NEt(this,null);case 5:return void ant(this,null)}Hdt(this,t-dY((pGt(),cLe)),eet(jz(vot(this,16),26)||cLe,t))},kGt.Ib=function(){var t;return(t=new uM(CLt(this))).a+=" (expression: ",hHt(this,t),t.a+=")",t.a},bY(d7t,"EGenericTypeImpl",241),fIt(1969,1964,H8t),kGt.Xh=function(t,e){JB(this,t,e)},kGt.lk=function(t,e){return JB(this,this.gc(),t),e},kGt.pi=function(t){return Nmt(this.Gi(),t)},kGt.Zh=function(){return this.$h()},kGt.Gi=function(){return new Em(this)},kGt.$h=function(){return this._h(0)},kGt._h=function(t){return this.Gi().Zc(t)},kGt.mk=function(t,e){return vgt(this,t,!0),e},kGt.ii=function(t,e){var n;return n=txt(this,e),this.Zc(t).Rb(n),n},kGt.ji=function(t,e){vgt(this,e,!0),this.Zc(t).Rb(e)},bY(v8t,"AbstractSequentialInternalEList",1969),fIt(486,1969,H8t,GM),kGt.pi=function(t){return Nmt(this.Gi(),t)},kGt.Zh=function(){return null==this.b?(ZE(),ZE(),LLe):this.Jk()},kGt.Gi=function(){return new MD(this.a,this.b)},kGt.$h=function(){return null==this.b?(ZE(),ZE(),LLe):this.Jk()},kGt._h=function(t){var e,n;if(null==this.b){if(t<0||t>1)throw $m(new Aw(e8t+t+", size=0"));return ZE(),ZE(),LLe}for(n=this.Jk(),e=0;e<t;++e)kot(n);return n},kGt.dc=function(){var t,e,n,i,a,r;if(null!=this.b)for(n=0;n<this.b.length;++n)if(t=this.b[n],!this.Mk()||this.a.mh(t))if(r=this.a.bh(t,!1),XE(),jz(t,66).Oj()){for(i=0,a=(e=jz(r,153)).gc();i<a;++i)if(hY(e.il(i))&&null!=e.jl(i))return!1}else if(t.$j()){if(!jz(r,14).dc())return!1}else if(null!=r)return!1;return!0},kGt.Kc=function(){return Rat(this)},kGt.Zc=function(t){var e,n;if(null==this.b){if(0!=t)throw $m(new Aw(e8t+t+", size=0"));return ZE(),ZE(),LLe}for(n=this.Lk()?this.Kk():this.Jk(),e=0;e<t;++e)kot(n);return n},kGt.ii=function(t,e){throw $m(new py)},kGt.ji=function(t,e){throw $m(new py)},kGt.Jk=function(){return new ZM(this.a,this.b)},kGt.Kk=function(){return new YN(this.a,this.b)},kGt.Lk=function(){return!0},kGt.gc=function(){var t,e,n,i,a,r,o;if(a=0,null!=this.b)for(n=0;n<this.b.length;++n)if(t=this.b[n],!this.Mk()||this.a.mh(t))if(o=this.a.bh(t,!1),XE(),jz(t,66).Oj())for(i=0,r=(e=jz(o,153)).gc();i<r;++i)hY(e.il(i))&&null!=e.jl(i)&&++a;else t.$j()?a+=jz(o,14).gc():null!=o&&++a;return a},kGt.Mk=function(){return!0},bY(v8t,"EContentsEList",486),fIt(1156,486,H8t,WN),kGt.Jk=function(){return new GN(this.a,this.b)},kGt.Kk=function(){return new ZN(this.a,this.b)},kGt.Mk=function(){return!1},bY(d7t,"ENamedElementImpl/1",1156),fIt(279,1,U8t,ZM),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){throw $m(new py)},kGt.Nk=function(t){if(0!=this.g||this.e)throw $m(new Fw("Iterator already in use or already filtered"));this.e=t},kGt.Ob=function(){var t,e,n,i,a,r;switch(this.g){case 3:case 2:return!0;case 1:return!1;case-3:this.p?this.p.Pb():++this.n;default:if(this.k&&(this.p?wSt(this,this.p):bDt(this)))return a=this.p?this.p.Pb():this.j?this.j.pi(this.n++):this.k.Xb(this.n++),this.f?((t=jz(a,72)).ak(),n=t.dd(),this.i=n):(n=a,this.i=n),this.g=3,!0;for(;this.d<this.c.length;)if(e=this.c[this.d++],(!this.e||e.Gj()!=IDe||0!=e.aj())&&(!this.Mk()||this.b.mh(e)))if(r=this.b.bh(e,this.Lk()),this.f=(XE(),jz(e,66).Oj()),this.f||e.$j()){if(this.Lk()?(i=jz(r,15),this.k=i):(i=jz(r,69),this.k=this.j=i),iO(this.k,54)?(this.p=null,this.o=this.k.gc(),this.n=0):this.p=this.j?this.j.$h():this.k.Yc(),this.p?wSt(this,this.p):bDt(this))return a=this.p?this.p.Pb():this.j?this.j.pi(this.n++):this.k.Xb(this.n++),this.f?((t=jz(a,72)).ak(),n=t.dd(),this.i=n):(n=a,this.i=n),this.g=3,!0}else if(null!=r)return this.k=null,this.p=null,n=r,this.i=n,this.g=2,!0;return this.k=null,this.p=null,this.f=!1,this.g=1,!1}},kGt.Sb=function(){var t,e,n,i,a,r;switch(this.g){case-3:case-2:return!0;case-1:return!1;case 3:this.p?this.p.Ub():--this.n;default:if(this.k&&(this.p?xSt(this,this.p):fTt(this)))return a=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((t=jz(a,72)).ak(),n=t.dd(),this.i=n):(n=a,this.i=n),this.g=-3,!0;for(;this.d>0;)if(e=this.c[--this.d],(!this.e||e.Gj()!=IDe||0!=e.aj())&&(!this.Mk()||this.b.mh(e)))if(r=this.b.bh(e,this.Lk()),this.f=(XE(),jz(e,66).Oj()),this.f||e.$j()){if(this.Lk()?(i=jz(r,15),this.k=i):(i=jz(r,69),this.k=this.j=i),iO(this.k,54)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j._h(this.k.gc()):this.k.Zc(this.k.gc()),this.p?xSt(this,this.p):fTt(this))return a=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((t=jz(a,72)).ak(),n=t.dd(),this.i=n):(n=a,this.i=n),this.g=-3,!0}else if(null!=r)return this.k=null,this.p=null,n=r,this.i=n,this.g=-2,!0;return this.k=null,this.p=null,this.g=-1,!1}},kGt.Pb=function(){return kot(this)},kGt.Tb=function(){return this.a},kGt.Ub=function(){var t;if(this.g<-1||this.Sb())return--this.a,this.g=0,t=this.i,this.Sb(),t;throw $m(new yy)},kGt.Vb=function(){return this.a-1},kGt.Qb=function(){throw $m(new py)},kGt.Lk=function(){return!1},kGt.Wb=function(t){throw $m(new py)},kGt.Mk=function(){return!0},kGt.a=0,kGt.d=0,kGt.f=!1,kGt.g=0,kGt.n=0,kGt.o=0,bY(v8t,"EContentsEList/FeatureIteratorImpl",279),fIt(697,279,U8t,YN),kGt.Lk=function(){return!0},bY(v8t,"EContentsEList/ResolvingFeatureIteratorImpl",697),fIt(1157,697,U8t,ZN),kGt.Mk=function(){return!1},bY(d7t,"ENamedElementImpl/1/1",1157),fIt(1158,279,U8t,GN),kGt.Mk=function(){return!1},bY(d7t,"ENamedElementImpl/1/2",1158),fIt(36,143,t8t,l3,u3,Jq,v8,L9,Q6,znt,k0,Hnt,E0,K6,C0,qnt,S0,X6,T0,Unt,A0,Qq,w8,HK,Vnt,D0,J6,I0),kGt._i=function(){return c8(this)},kGt.gj=function(){var t;return(t=c8(this))?t.zj():null},kGt.yi=function(t){return-1==this.b&&this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj())),this.c.Og(this.b,t)},kGt.Ai=function(){return this.c},kGt.hj=function(){var t;return!!(t=c8(this))&&t.Kj()},kGt.b=-1,bY(d7t,"ENotificationImpl",36),fIt(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},Dv),kGt.Qg=function(t){return Cxt(this,t)},kGt._g=function(t,e,n){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),(i=this.t)>1||-1==i;case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?jz(this.Cb,26):null;case 11:return!this.d&&(this.d=new LO(SLe,this,11)),this.d;case 12:return!this.c&&(this.c=new tW(GIe,this,12,10)),this.c;case 13:return!this.a&&(this.a=new oP(this,this)),this.a;case 14:return $9(this)}return V8(this,t-dY((pGt(),fLe)),eet(jz(vot(this,16),26)||fLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 10:return this.Cb&&(n=(i=this.Db>>16)>=0?Cxt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,10,n);case 12:return!this.c&&(this.c=new tW(GIe,this,12,10)),Kgt(this.c,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),fLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),fLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 9:return gY(this,n);case 10:return _jt(this,null,10,n);case 11:return!this.d&&(this.d=new LO(SLe,this,11)),Fmt(this.d,t,n);case 12:return!this.c&&(this.c=new tW(GIe,this,12,10)),Fmt(this.c,t,n);case 14:return Fmt($9(this),t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),fLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),fLe)),t,n)},kGt.lh=function(t){var e;switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(e=this.t)>1||-1==e;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i);case 10:return!(this.Db>>16!=10||!jz(this.Cb,26));case 11:return!!this.d&&0!=this.d.i;case 12:return!!this.c&&0!=this.c.i;case 13:return!(!this.a||0==$9(this.a.a).i||this.b&&Pyt(this.b));case 14:return!!this.b&&Pyt(this.b)}return T4(this,t-dY((pGt(),fLe)),eet(jz(vot(this,16),26)||fLe,t))},kGt.sh=function(t,e){var n;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void Oat(this,kB(e));case 2:return void Kdt(this,zw(RB(e)));case 3:return void Qdt(this,zw(RB(e)));case 4:return void Lnt(this,jz(e,19).a);case 5:return void Ont(this,jz(e,19).a);case 8:return void Tut(this,jz(e,138));case 9:return void((n=zkt(this,jz(e,87),null))&&n.Fi());case 11:return!this.d&&(this.d=new LO(SLe,this,11)),cUt(this.d),!this.d&&(this.d=new LO(SLe,this,11)),void pY(this.d,jz(e,14));case 12:return!this.c&&(this.c=new tW(GIe,this,12,10)),cUt(this.c),!this.c&&(this.c=new tW(GIe,this,12,10)),void pY(this.c,jz(e,14));case 13:return!this.a&&(this.a=new oP(this,this)),mUt(this.a),!this.a&&(this.a=new oP(this,this)),void pY(this.a,jz(e,14));case 14:return cUt($9(this)),void pY($9(this),jz(e,14))}Lft(this,t-dY((pGt(),fLe)),eet(jz(vot(this,16),26)||fLe,t),e)},kGt.zh=function(){return pGt(),fLe},kGt.Bh=function(t){var e;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void Oat(this,null);case 2:return void Kdt(this,!0);case 3:return void Qdt(this,!0);case 4:return void Lnt(this,0);case 5:return void Ont(this,1);case 8:return void Tut(this,null);case 9:return void((e=zkt(this,null,null))&&e.Fi());case 11:return!this.d&&(this.d=new LO(SLe,this,11)),void cUt(this.d);case 12:return!this.c&&(this.c=new tW(GIe,this,12,10)),void cUt(this.c);case 13:return void(this.a&&mUt(this.a));case 14:return void(this.b&&cUt(this.b))}Hdt(this,t-dY((pGt(),fLe)),eet(jz(vot(this,16),26)||fLe,t))},kGt.Gh=function(){var t,e;if(this.c)for(t=0,e=this.c.i;t<e;++t)bN(Yet(this.c,t));Txt(this),this.Bb|=1},bY(d7t,"EOperationImpl",399),fIt(505,742,z8t,oP),kGt.Hi=function(t,e){lB(this,t,jz(e,138))},kGt.Ii=function(t){eL(this,jz(t,138))},kGt.Oi=function(t){return jz(Yet($9(this.a),t),87).c||(pGt(),lLe)},kGt.Ti=function(t){return jz(uBt($9(this.a),t),87).c||(pGt(),lLe)},kGt.Ui=function(t,e){return hbt(this,t,jz(e,138))},kGt.ai=function(){return!1},kGt.Zi=function(t,e,n,i,a){return null},kGt.Ji=function(){return new mm(this)},kGt.Ki=function(){cUt($9(this.a))},kGt.Li=function(t){return sht(this,t)},kGt.Mi=function(t){var e;for(e=t.Kc();e.Ob();)if(!sht(this,e.Pb()))return!1;return!0},kGt.Ni=function(t){var e,n,i;if(iO(t,15)&&(i=jz(t,15)).gc()==$9(this.a).i){for(e=i.Kc(),n=new AO(this);e.Ob();)if(HA(e.Pb())!==HA(wmt(n)))return!1;return!0}return!1},kGt.Pi=function(){var t,e,n;for(e=1,t=new AO($9(this.a));t.e!=t.i.gc();)e=31*e+((n=jz(wmt(t),87).c||(pGt(),lLe))?Qct(n):0);return e},kGt.Qi=function(t){var e,n,i;for(i=0,n=new AO($9(this.a));n.e!=n.i.gc();){if(e=jz(wmt(n),87),HA(t)===HA(e.c||(pGt(),lLe)))return i;++i}return-1},kGt.Ri=function(){return 0==$9(this.a).i},kGt.Si=function(){return null},kGt.Vi=function(){return $9(this.a).i},kGt.Wi=function(){var t,e,n,i,a;for(a=$9(this.a).i,i=O5(Dte,zGt,1,a,5,1),n=0,e=new AO($9(this.a));e.e!=e.i.gc();)t=jz(wmt(e),87),i[n++]=t.c||(pGt(),lLe);return i},kGt.Xi=function(t){var e,n,i;for(i=$9(this.a).i,t.length<i&&(t=Nnt(tlt(t).c,i)),t.length>i&&DY(t,i,null),n=0,e=new AO($9(this.a));e.e!=e.i.gc();)DY(t,n++,jz(wmt(e),87).c||(pGt(),lLe));return t},kGt.Yi=function(){var t,e,n,i;for((i=new kx).a+="[",t=$9(this.a),e=0,n=$9(this.a).i;e<n;)iD(i,vM(jz(Yet(t,e),87).c||(pGt(),lLe))),++e<n&&(i.a+=jGt);return i.a+="]",i.a},kGt.$i=function(t){},kGt.aj=function(){return 13},kGt.Bk=function(){return!0},kGt.bj=function(){return!1},kGt.Ck=function(){return!1},kGt.Dk=function(){return!1},kGt.Ek=function(){return!0},kGt.rk=function(){return!1},kGt.Fk=function(){return!0},kGt.wj=function(t){return iO(t,138)},kGt.fj=function(){return Y0(this.a)},kGt.hi=function(){return!0},kGt.ni=function(){return!0},bY(d7t,"EOperationImpl/1",505),fIt(1340,1964,LZt,mm),kGt.Zc=function(t){return cit(this.a,t)},kGt.gc=function(){return $9(this.a.a).i},bY(d7t,"EOperationImpl/1/1",1340),fIt(1341,545,B8t,KV),kGt.ii=function(t,e){var n;return n=jz(Tht(this,t,e),87),mI(this.e)&&Iy(this,new w8(this.a,7,(pGt(),gLe),nht(e),n.c||lLe,t)),n},kGt.jj=function(t,e){return kdt(this,jz(t,87),e)},kGt.kj=function(t,e){return Edt(this,jz(t,87),e)},kGt.lj=function(t,e,n){return Ybt(this,jz(t,87),jz(e,87),n)},kGt.Zi=function(t,e,n,i,a){switch(t){case 3:return yQ(this,t,e,n,i,this.i>1);case 5:return yQ(this,t,e,n,i,this.i-jz(n,15).gc()>0);default:return new L9(this.e,t,this.c,e,n,i,!0)}},kGt.ij=function(){return!0},kGt.fj=function(){return Pyt(this)},kGt.Xj=function(){cUt(this)},bY(d7t,"EOperationImpl/2",1341),fIt(498,1,{1938:1,498:1},TA),bY(d7t,"EPackageImpl/1",498),fIt(16,85,B8t,tW),kGt.zk=function(){return this.d},kGt.Ak=function(){return this.b},kGt.Dk=function(){return!0},kGt.b=0,bY(v8t,"EObjectContainmentWithInverseEList",16),fIt(353,16,B8t,tF),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectContainmentWithInverseEList/Resolving",353),fIt(298,353,B8t,Kq),kGt.ci=function(){this.a.tb=null},bY(d7t,"EPackageImpl/2",298),fIt(1228,1,{},Dc),bY(d7t,"EPackageImpl/3",1228),fIt(718,43,tXt,Lv),kGt._b=function(t){return qA(t)?tX(this,t):!!AX(this.f,t)},bY(d7t,"EPackageRegistryImpl",718),fIt(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},Iv),kGt.Qg=function(t){return Sxt(this,t)},kGt._g=function(t,e,n){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),(i=this.t)>1||-1==i;case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?jz(this.Cb,59):null}return V8(this,t-dY((pGt(),bLe)),eet(jz(vot(this,16),26)||bLe,t),e,n)},kGt.hh=function(t,e,n){var i;switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Kgt(this.Ab,t,n);case 10:return this.Cb&&(n=(i=this.Db>>16)>=0?Sxt(this,n):this.Cb.ih(this,-1-i,null,n)),_jt(this,t,10,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),bLe),e),66).Nj().Qj(this,ubt(this),e-dY((pGt(),bLe)),t,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 9:return gY(this,n);case 10:return _jt(this,null,10,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),bLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),bLe)),t,n)},kGt.lh=function(t){var e;switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(e=this.t)>1||-1==e;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i);case 10:return!(this.Db>>16!=10||!jz(this.Cb,59))}return T4(this,t-dY((pGt(),bLe)),eet(jz(vot(this,16),26)||bLe,t))},kGt.zh=function(){return pGt(),bLe},bY(d7t,"EParameterImpl",509),fIt(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},pB),kGt._g=function(t,e,n){var i,a;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return cM(),!!(256&this.Bb);case 3:return cM(),!!(512&this.Bb);case 4:return nht(this.s);case 5:return nht(this.t);case 6:return cM(),(a=this.t)>1||-1==a;case 7:return cM(),this.s>=1;case 8:return e?Txt(this):this.r;case 9:return this.q;case 10:return cM(),!!(this.Bb&w7t);case 11:return cM(),!!(this.Bb&k8t);case 12:return cM(),!!(this.Bb&FKt);case 13:return this.j;case 14:return HOt(this);case 15:return cM(),!!(this.Bb&_8t);case 16:return cM(),!!(this.Bb&lZt);case 17:return fQ(this);case 18:return cM(),!!(this.Bb&l7t);case 19:return cM(),!!((i=Syt(this))&&i.Bb&l7t);case 20:return cM(),!!(this.Bb&$Kt);case 21:return e?Syt(this):this.b;case 22:return e?Tct(this):B6(this);case 23:return!this.a&&(this.a=new NO(FIe,this,23)),this.a}return V8(this,t-dY((pGt(),mLe)),eet(jz(vot(this,16),26)||mLe,t),e,n)},kGt.lh=function(t){var e,n;switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(n=this.t)>1||-1==n;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yG(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yG(this.q).i);case 10:return 0==(this.Bb&w7t);case 11:return 0!=(this.Bb&k8t);case 12:return 0!=(this.Bb&FKt);case 13:return null!=this.j;case 14:return null!=HOt(this);case 15:return 0!=(this.Bb&_8t);case 16:return 0!=(this.Bb&lZt);case 17:return!!fQ(this);case 18:return 0!=(this.Bb&l7t);case 19:return!!(e=Syt(this))&&0!=(e.Bb&l7t);case 20:return 0==(this.Bb&$Kt);case 21:return!!this.b;case 22:return!!B6(this);case 23:return!!this.a&&0!=this.a.i}return T4(this,t-dY((pGt(),mLe)),eet(jz(vot(this,16),26)||mLe,t))},kGt.sh=function(t,e){var n;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void KQ(this,kB(e));case 2:return void Kdt(this,zw(RB(e)));case 3:return void Qdt(this,zw(RB(e)));case 4:return void Lnt(this,jz(e,19).a);case 5:return void Ont(this,jz(e,19).a);case 8:return void Tut(this,jz(e,138));case 9:return void((n=zkt(this,jz(e,87),null))&&n.Fi());case 10:return void Dht(this,zw(RB(e)));case 11:return void Oht(this,zw(RB(e)));case 12:return void Iht(this,zw(RB(e)));case 13:return void PA(this,kB(e));case 15:return void Lht(this,zw(RB(e)));case 16:return void Hht(this,zw(RB(e)));case 18:return void ZQ(this,zw(RB(e)));case 20:return void qht(this,zw(RB(e)));case 21:return void iat(this,jz(e,18));case 23:return!this.a&&(this.a=new NO(FIe,this,23)),cUt(this.a),!this.a&&(this.a=new NO(FIe,this,23)),void pY(this.a,jz(e,14))}Lft(this,t-dY((pGt(),mLe)),eet(jz(vot(this,16),26)||mLe,t),e)},kGt.zh=function(){return pGt(),mLe},kGt.Bh=function(t){var e;switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return iO(this.Cb,88)&&DTt(E6(jz(this.Cb,88)),4),void Oat(this,null);case 2:return void Kdt(this,!0);case 3:return void Qdt(this,!0);case 4:return void Lnt(this,0);case 5:return void Ont(this,1);case 8:return void Tut(this,null);case 9:return void((e=zkt(this,null,null))&&e.Fi());case 10:return void Dht(this,!0);case 11:return void Oht(this,!1);case 12:return void Iht(this,!1);case 13:return this.i=null,void rat(this,null);case 15:return void Lht(this,!1);case 16:return void Hht(this,!1);case 18:return Vht(this,!1),void(iO(this.Cb,88)&&DTt(E6(jz(this.Cb,88)),2));case 20:return void qht(this,!0);case 21:return void iat(this,null);case 23:return!this.a&&(this.a=new NO(FIe,this,23)),void cUt(this.a)}Hdt(this,t-dY((pGt(),mLe)),eet(jz(vot(this,16),26)||mLe,t))},kGt.Gh=function(){Tct(this),vZ(j9((TSt(),KLe),this)),Txt(this),this.Bb|=1},kGt.Lj=function(){return Syt(this)},kGt.qk=function(){var t;return!!(t=Syt(this))&&0!=(t.Bb&l7t)},kGt.rk=function(){return 0!=(this.Bb&l7t)},kGt.sk=function(){return 0!=(this.Bb&$Kt)},kGt.nk=function(t,e){return this.c=null,Cdt(this,t,e)},kGt.Ib=function(){var t;return 64&this.Db?RPt(this):((t=new lM(RPt(this))).a+=" (containment: ",y_(t,0!=(this.Bb&l7t)),t.a+=", resolveProxies: ",y_(t,0!=(this.Bb&$Kt)),t.a+=")",t.a)},bY(d7t,"EReferenceImpl",99),fIt(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},Ic),kGt.Fb=function(t){return this===t},kGt.cd=function(){return this.b},kGt.dd=function(){return this.c},kGt.Hb=function(){return EM(this)},kGt.Uh=function(t){bU(this,kB(t))},kGt.ed=function(t){return DH(this,kB(t))},kGt._g=function(t,e,n){switch(t){case 0:return this.b;case 1:return this.c}return V8(this,t-dY((pGt(),yLe)),eet(jz(vot(this,16),26)||yLe,t),e,n)},kGt.lh=function(t){switch(t){case 0:return null!=this.b;case 1:return null!=this.c}return T4(this,t-dY((pGt(),yLe)),eet(jz(vot(this,16),26)||yLe,t))},kGt.sh=function(t,e){switch(t){case 0:return void mU(this,kB(e));case 1:return void Pit(this,kB(e))}Lft(this,t-dY((pGt(),yLe)),eet(jz(vot(this,16),26)||yLe,t),e)},kGt.zh=function(){return pGt(),yLe},kGt.Bh=function(t){switch(t){case 0:return void Bit(this,null);case 1:return void Pit(this,null)}Hdt(this,t-dY((pGt(),yLe)),eet(jz(vot(this,16),26)||yLe,t))},kGt.Sh=function(){var t;return-1==this.a&&(t=this.b,this.a=null==t?0:myt(t)),this.a},kGt.Th=function(t){this.a=t},kGt.Ib=function(){var t;return 64&this.Db?CLt(this):((t=new lM(CLt(this))).a+=" (key: ",iD(t,this.b),t.a+=", value: ",iD(t,this.c),t.a+=")",t.a)},kGt.a=-1,kGt.b=null,kGt.c=null;var MLe,NLe,BLe,PLe,FLe,jLe,$Le,zLe,HLe,ULe,VLe=bY(d7t,"EStringToStringMapEntryImpl",548),qLe=dU(v8t,"FeatureMap/Entry/Internal");fIt(565,1,V8t),kGt.Ok=function(t){return this.Pk(jz(t,49))},kGt.Pk=function(t){return this.Ok(t)},kGt.Fb=function(t){var e,n;return this===t||!!iO(t,72)&&(e=jz(t,72)).ak()==this.c&&(null==(n=this.dd())?null==e.dd():Odt(n,e.dd()))},kGt.ak=function(){return this.c},kGt.Hb=function(){var t;return t=this.dd(),Qct(this.c)^(null==t?0:Qct(t))},kGt.Ib=function(){var t,e;return e=qet((t=this.c).Hj()).Ph(),t.ne(),(null!=e&&0!=e.length?e+":"+t.ne():t.ne())+"="+this.dd()},bY(d7t,"EStructuralFeatureImpl/BasicFeatureMapEntry",565),fIt(776,565,V8t,nP),kGt.Pk=function(t){return new nP(this.c,t)},kGt.dd=function(){return this.a},kGt.Qk=function(t,e,n){return Ert(this,t,this.a,e,n)},kGt.Rk=function(t,e,n){return Crt(this,t,this.a,e,n)},bY(d7t,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",776),fIt(1314,1,{},AA),kGt.Pj=function(t,e,n,i,a){return jz(k8(t,this.b),215).nl(this.a).Wj(i)},kGt.Qj=function(t,e,n,i,a){return jz(k8(t,this.b),215).el(this.a,i,a)},kGt.Rj=function(t,e,n,i,a){return jz(k8(t,this.b),215).fl(this.a,i,a)},kGt.Sj=function(t,e,n){return jz(k8(t,this.b),215).nl(this.a).fj()},kGt.Tj=function(t,e,n,i){jz(k8(t,this.b),215).nl(this.a).Wb(i)},kGt.Uj=function(t,e,n){return jz(k8(t,this.b),215).nl(this.a)},kGt.Vj=function(t,e,n){jz(k8(t,this.b),215).nl(this.a).Xj()},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1314),fIt(89,1,{},Ez,uK,NX,h3),kGt.Pj=function(t,e,n,i,a){var r;if(null==(r=e.Ch(n))&&e.Dh(n,r=nGt(this,t)),!a)switch(this.e){case 50:case 41:return jz(r,589).sj();case 40:return jz(r,215).kl()}return r},kGt.Qj=function(t,e,n,i,a){var r;return null==(r=e.Ch(n))&&e.Dh(n,r=nGt(this,t)),jz(r,69).lk(i,a)},kGt.Rj=function(t,e,n,i,a){var r;return null!=(r=e.Ch(n))&&(a=jz(r,69).mk(i,a)),a},kGt.Sj=function(t,e,n){var i;return null!=(i=e.Ch(n))&&jz(i,76).fj()},kGt.Tj=function(t,e,n,i){var a;!(a=jz(e.Ch(n),76))&&e.Dh(n,a=nGt(this,t)),a.Wb(i)},kGt.Uj=function(t,e,n){var i;return null==(i=e.Ch(n))&&e.Dh(n,i=nGt(this,t)),iO(i,76)?jz(i,76):new xm(jz(e.Ch(n),15))},kGt.Vj=function(t,e,n){var i;!(i=jz(e.Ch(n),76))&&e.Dh(n,i=nGt(this,t)),i.Xj()},kGt.b=0,kGt.e=0,bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateMany",89),fIt(504,1,{}),kGt.Qj=function(t,e,n,i,a){throw $m(new py)},kGt.Rj=function(t,e,n,i,a){throw $m(new py)},kGt.Uj=function(t,e,n){return new dK(this,t,e,n)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingle",504),fIt(1331,1,w8t,dK),kGt.Wj=function(t){return this.a.Pj(this.c,this.d,this.b,t,!0)},kGt.fj=function(){return this.a.Sj(this.c,this.d,this.b)},kGt.Wb=function(t){this.a.Tj(this.c,this.d,this.b,t)},kGt.Xj=function(){this.a.Vj(this.c,this.d,this.b)},kGt.b=0,bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1331),fIt(769,504,{},mJ),kGt.Pj=function(t,e,n,i,a){return pFt(t,t.eh(),t.Vg())==this.b?this.sk()&&i?aIt(t):t.eh():null},kGt.Qj=function(t,e,n,i,a){var r,o;return t.eh()&&(a=(r=t.Vg())>=0?t.Qg(a):t.eh().ih(t,-1-r,null,a)),o=Dgt(t.Tg(),this.e),t.Sg(i,o,a)},kGt.Rj=function(t,e,n,i,a){var r;return r=Dgt(t.Tg(),this.e),t.Sg(null,r,a)},kGt.Sj=function(t,e,n){var i;return i=Dgt(t.Tg(),this.e),!!t.eh()&&t.Vg()==i},kGt.Tj=function(t,e,n,i){var a,r,o,s,c;if(null!=i&&!E$t(this.a,i))throw $m(new Bw(q8t+(iO(i,56)?g_t(jz(i,56).Tg()):ret(tlt(i)))+W8t+this.a+"'"));if(a=t.eh(),o=Dgt(t.Tg(),this.e),HA(i)!==HA(a)||t.Vg()!=o&&null!=i){if(mxt(t,jz(i,56)))throw $m(new Pw(f7t+t.Ib()));c=null,a&&(c=(r=t.Vg())>=0?t.Qg(c):t.eh().ih(t,-1-r,null,c)),(s=jz(i,49))&&(c=s.gh(t,Dgt(s.Tg(),this.b),null,c)),(c=t.Sg(s,o,c))&&c.Fi()}else t.Lg()&&t.Mg()&&hot(t,new Jq(t,1,o,i,i))},kGt.Vj=function(t,e,n){var i,a,r;t.eh()?(r=(i=t.Vg())>=0?t.Qg(null):t.eh().ih(t,-1-i,null,null),a=Dgt(t.Tg(),this.e),(r=t.Sg(null,a,r))&&r.Fi()):t.Lg()&&t.Mg()&&hot(t,new Qq(t,1,this.e,null,null))},kGt.sk=function(){return!1},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",769),fIt(1315,769,{},Cz),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1315),fIt(563,504,{}),kGt.Pj=function(t,e,n,i,a){var r;return null==(r=e.Ch(n))?this.b:HA(r)===HA(MLe)?null:r},kGt.Sj=function(t,e,n){var i;return null!=(i=e.Ch(n))&&(HA(i)===HA(MLe)||!Odt(i,this.b))},kGt.Tj=function(t,e,n,i){var a,r;t.Lg()&&t.Mg()?(a=null==(r=e.Ch(n))?this.b:HA(r)===HA(MLe)?null:r,null==i?null!=this.c?(e.Dh(n,null),i=this.b):null!=this.b?e.Dh(n,MLe):e.Dh(n,null):(this.Sk(i),e.Dh(n,i)),hot(t,this.d.Tk(t,1,this.e,a,i))):null==i?null!=this.c?e.Dh(n,null):null!=this.b?e.Dh(n,MLe):e.Dh(n,null):(this.Sk(i),e.Dh(n,i))},kGt.Vj=function(t,e,n){var i,a;t.Lg()&&t.Mg()?(i=null==(a=e.Ch(n))?this.b:HA(a)===HA(MLe)?null:a,e.Eh(n),hot(t,this.d.Tk(t,1,this.e,i,this.b))):e.Eh(n)},kGt.Sk=function(t){throw $m(new dy)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",563),fIt(Y8t,1,{},Lc),kGt.Tk=function(t,e,n,i,a){return new Qq(t,e,n,i,a)},kGt.Uk=function(t,e,n,i,a,r){return new HK(t,e,n,i,a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",Y8t),fIt(1332,Y8t,{},Oc),kGt.Tk=function(t,e,n,i,a){return new J6(t,e,n,zw(RB(i)),zw(RB(a)))},kGt.Uk=function(t,e,n,i,a,r){return new I0(t,e,n,zw(RB(i)),zw(RB(a)),r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1332),fIt(1333,Y8t,{},Mc),kGt.Tk=function(t,e,n,i,a){return new znt(t,e,n,jz(i,217).a,jz(a,217).a)},kGt.Uk=function(t,e,n,i,a,r){return new k0(t,e,n,jz(i,217).a,jz(a,217).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1333),fIt(1334,Y8t,{},Nc),kGt.Tk=function(t,e,n,i,a){return new Hnt(t,e,n,jz(i,172).a,jz(a,172).a)},kGt.Uk=function(t,e,n,i,a,r){return new E0(t,e,n,jz(i,172).a,jz(a,172).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1334),fIt(1335,Y8t,{},Bc),kGt.Tk=function(t,e,n,i,a){return new K6(t,e,n,Hw(_B(i)),Hw(_B(a)))},kGt.Uk=function(t,e,n,i,a,r){return new C0(t,e,n,Hw(_B(i)),Hw(_B(a)),r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1335),fIt(1336,Y8t,{},Pc),kGt.Tk=function(t,e,n,i,a){return new qnt(t,e,n,jz(i,155).a,jz(a,155).a)},kGt.Uk=function(t,e,n,i,a,r){return new S0(t,e,n,jz(i,155).a,jz(a,155).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1336),fIt(1337,Y8t,{},Fc),kGt.Tk=function(t,e,n,i,a){return new X6(t,e,n,jz(i,19).a,jz(a,19).a)},kGt.Uk=function(t,e,n,i,a,r){return new T0(t,e,n,jz(i,19).a,jz(a,19).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1337),fIt(1338,Y8t,{},jc),kGt.Tk=function(t,e,n,i,a){return new Unt(t,e,n,jz(i,162).a,jz(a,162).a)},kGt.Uk=function(t,e,n,i,a,r){return new A0(t,e,n,jz(i,162).a,jz(a,162).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1338),fIt(1339,Y8t,{},$c),kGt.Tk=function(t,e,n,i,a){return new Vnt(t,e,n,jz(i,184).a,jz(a,184).a)},kGt.Uk=function(t,e,n,i,a,r){return new D0(t,e,n,jz(i,184).a,jz(a,184).a,r)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1339),fIt(1317,563,{},hK),kGt.Sk=function(t){if(!this.a.wj(t))throw $m(new Bw(q8t+tlt(t)+W8t+this.a+"'"))},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1317),fIt(1318,563,{},XV),kGt.Sk=function(t){},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1318),fIt(770,563,{}),kGt.Sj=function(t,e,n){return null!=e.Ch(n)},kGt.Tj=function(t,e,n,i){var a,r;t.Lg()&&t.Mg()?(a=!0,null==(r=e.Ch(n))?(a=!1,r=this.b):HA(r)===HA(MLe)&&(r=null),null==i?null!=this.c?(e.Dh(n,null),i=this.b):e.Dh(n,MLe):(this.Sk(i),e.Dh(n,i)),hot(t,this.d.Uk(t,1,this.e,r,i,!a))):null==i?null!=this.c?e.Dh(n,null):e.Dh(n,MLe):(this.Sk(i),e.Dh(n,i))},kGt.Vj=function(t,e,n){var i,a;t.Lg()&&t.Mg()?(i=!0,null==(a=e.Ch(n))?(i=!1,a=this.b):HA(a)===HA(MLe)&&(a=null),e.Eh(n),hot(t,this.d.Uk(t,2,this.e,a,this.b,i))):e.Eh(n)},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",770),fIt(1319,770,{},fK),kGt.Sk=function(t){if(!this.a.wj(t))throw $m(new Bw(q8t+tlt(t)+W8t+this.a+"'"))},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1319),fIt(1320,770,{},JV),kGt.Sk=function(t){},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1320),fIt(398,504,{},iV),kGt.Pj=function(t,e,n,i,a){var r,o,s,c,l;if(l=e.Ch(n),this.Kj()&&HA(l)===HA(MLe))return null;if(this.sk()&&i&&null!=l){if((s=jz(l,49)).kh()&&s!=(c=tdt(t,s))){if(!E$t(this.a,c))throw $m(new Bw(q8t+tlt(c)+W8t+this.a+"'"));e.Dh(n,l=c),this.rk()&&(r=jz(c,49),o=s.ih(t,this.b?Dgt(s.Tg(),this.b):-1-Dgt(t.Tg(),this.e),null,null),!r.eh()&&(o=r.gh(t,this.b?Dgt(r.Tg(),this.b):-1-Dgt(t.Tg(),this.e),null,o)),o&&o.Fi()),t.Lg()&&t.Mg()&&hot(t,new Qq(t,9,this.e,s,c))}return l}return l},kGt.Qj=function(t,e,n,i,a){var r,o;return HA(o=e.Ch(n))===HA(MLe)&&(o=null),e.Dh(n,i),this.bj()?HA(o)!==HA(i)&&null!=o&&(a=(r=jz(o,49)).ih(t,Dgt(r.Tg(),this.b),null,a)):this.rk()&&null!=o&&(a=jz(o,49).ih(t,-1-Dgt(t.Tg(),this.e),null,a)),t.Lg()&&t.Mg()&&(!a&&(a=new FR(4)),a.Ei(new Qq(t,1,this.e,o,i))),a},kGt.Rj=function(t,e,n,i,a){var r;return HA(r=e.Ch(n))===HA(MLe)&&(r=null),e.Eh(n),t.Lg()&&t.Mg()&&(!a&&(a=new FR(4)),this.Kj()?a.Ei(new Qq(t,2,this.e,r,null)):a.Ei(new Qq(t,1,this.e,r,null))),a},kGt.Sj=function(t,e,n){return null!=e.Ch(n)},kGt.Tj=function(t,e,n,i){var a,r,o,s,c;if(null!=i&&!E$t(this.a,i))throw $m(new Bw(q8t+(iO(i,56)?g_t(jz(i,56).Tg()):ret(tlt(i)))+W8t+this.a+"'"));s=null!=(c=e.Ch(n)),this.Kj()&&HA(c)===HA(MLe)&&(c=null),o=null,this.bj()?HA(c)!==HA(i)&&(null!=c&&(o=(a=jz(c,49)).ih(t,Dgt(a.Tg(),this.b),null,o)),null!=i&&(o=(a=jz(i,49)).gh(t,Dgt(a.Tg(),this.b),null,o))):this.rk()&&HA(c)!==HA(i)&&(null!=c&&(o=jz(c,49).ih(t,-1-Dgt(t.Tg(),this.e),null,o)),null!=i&&(o=jz(i,49).gh(t,-1-Dgt(t.Tg(),this.e),null,o))),null==i&&this.Kj()?e.Dh(n,MLe):e.Dh(n,i),t.Lg()&&t.Mg()?(r=new HK(t,1,this.e,c,i,this.Kj()&&!s),o?(o.Ei(r),o.Fi()):hot(t,r)):o&&o.Fi()},kGt.Vj=function(t,e,n){var i,a,r,o,s;o=null!=(s=e.Ch(n)),this.Kj()&&HA(s)===HA(MLe)&&(s=null),r=null,null!=s&&(this.bj()?r=(i=jz(s,49)).ih(t,Dgt(i.Tg(),this.b),null,r):this.rk()&&(r=jz(s,49).ih(t,-1-Dgt(t.Tg(),this.e),null,r))),e.Eh(n),t.Lg()&&t.Mg()?(a=new HK(t,this.Kj()?2:1,this.e,s,null,o),r?(r.Ei(a),r.Fi()):hot(t,a)):r&&r.Fi()},kGt.bj=function(){return!1},kGt.rk=function(){return!1},kGt.sk=function(){return!1},kGt.Kj=function(){return!1},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",398),fIt(564,398,{},XN),kGt.rk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",564),fIt(1323,564,{},JN),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1323),fIt(772,564,{},QN),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",772),fIt(1325,772,{},tB),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1325),fIt(640,564,{},Sz),kGt.bj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",640),fIt(1324,640,{},Dz),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1324),fIt(773,640,{},Iz),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",773),fIt(1326,773,{},Lz),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1326),fIt(641,398,{},eB),kGt.sk=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",641),fIt(1327,641,{},nB),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1327),fIt(774,641,{},Tz),kGt.bj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",774),fIt(1328,774,{},Oz),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1328),fIt(1321,398,{},iB),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1321),fIt(771,398,{},Az),kGt.bj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",771),fIt(1322,771,{},Mz),kGt.Kj=function(){return!0},bY(d7t,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1322),fIt(775,565,V8t,aG),kGt.Pk=function(t){return new aG(this.a,this.c,t)},kGt.dd=function(){return this.b},kGt.Qk=function(t,e,n){return M5(this,t,this.b,n)},kGt.Rk=function(t,e,n){return N5(this,t,this.b,n)},bY(d7t,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",775),fIt(1329,1,w8t,xm),kGt.Wj=function(t){return this.a},kGt.fj=function(){return iO(this.a,95)?jz(this.a,95).fj():!this.a.dc()},kGt.Wb=function(t){this.a.$b(),this.a.Gc(jz(t,15))},kGt.Xj=function(){iO(this.a,95)?jz(this.a,95).Xj():this.a.$b()},bY(d7t,"EStructuralFeatureImpl/SettingMany",1329),fIt(1330,565,V8t,g3),kGt.Ok=function(t){return new iP((qUt(),POe),this.b.Ih(this.a,t))},kGt.dd=function(){return null},kGt.Qk=function(t,e,n){return n},kGt.Rk=function(t,e,n){return n},bY(d7t,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1330),fIt(642,565,V8t,iP),kGt.Ok=function(t){return new iP(this.c,t)},kGt.dd=function(){return this.a},kGt.Qk=function(t,e,n){return n},kGt.Rk=function(t,e,n){return n},bY(d7t,"EStructuralFeatureImpl/SimpleFeatureMapEntry",642),fIt(391,497,l5t,zc),kGt.ri=function(t){return O5($Ie,zGt,26,t,0,1)},kGt.ni=function(){return!1},bY(d7t,"ESuperAdapter/1",391),fIt(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},Hc),kGt._g=function(t,e,n){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new aV(this,WIe,this)),this.a}return V8(this,t-dY((pGt(),xLe)),eet(jz(vot(this,16),26)||xLe,t),e,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),Fmt(this.Ab,t,n);case 2:return!this.a&&(this.a=new aV(this,WIe,this)),Fmt(this.a,t,n)}return jz(eet(jz(vot(this,16),26)||(pGt(),xLe),e),66).Nj().Rj(this,ubt(this),e-dY((pGt(),xLe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return!!this.a&&0!=this.a.i}return T4(this,t-dY((pGt(),xLe)),eet(jz(vot(this,16),26)||xLe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),cUt(this.Ab),!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void pY(this.Ab,jz(e,14));case 1:return void Oat(this,kB(e));case 2:return!this.a&&(this.a=new aV(this,WIe,this)),cUt(this.a),!this.a&&(this.a=new aV(this,WIe,this)),void pY(this.a,jz(e,14))}Lft(this,t-dY((pGt(),xLe)),eet(jz(vot(this,16),26)||xLe,t),e)},kGt.zh=function(){return pGt(),xLe},kGt.Bh=function(t){switch(t){case 0:return!this.Ab&&(this.Ab=new tW(NIe,this,0,3)),void cUt(this.Ab);case 1:return void Oat(this,null);case 2:return!this.a&&(this.a=new aV(this,WIe,this)),void cUt(this.a)}Hdt(this,t-dY((pGt(),xLe)),eet(jz(vot(this,16),26)||xLe,t))},bY(d7t,"ETypeParameterImpl",444),fIt(445,85,B8t,aV),kGt.cj=function(t,e){return Lkt(this,jz(t,87),e)},kGt.dj=function(t,e){return Okt(this,jz(t,87),e)},bY(d7t,"ETypeParameterImpl/1",445),fIt(634,43,tXt,Ov),kGt.ec=function(){return new Rm(this)},bY(d7t,"ETypeParameterImpl/2",634),fIt(556,QGt,tZt,Rm),kGt.Fc=function(t){return ZP(this,jz(t,87))},kGt.Gc=function(t){var e,n,i;for(i=!1,n=t.Kc();n.Ob();)e=jz(n.Pb(),87),null==YG(this.a,e,"")&&(i=!0);return i},kGt.$b=function(){DW(this.a)},kGt.Hc=function(t){return cW(this.a,t)},kGt.Kc=function(){return new _m(new olt(new Ef(this.a).a))},kGt.Mc=function(t){return P7(this,t)},kGt.gc=function(){return Lk(this.a)},bY(d7t,"ETypeParameterImpl/2/1",556),fIt(557,1,ZGt,_m),kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return jz(tnt(this.a).cd(),87)},kGt.Ob=function(){return this.a.b},kGt.Qb=function(){o8(this.a)},bY(d7t,"ETypeParameterImpl/2/1/1",557),fIt(1276,43,tXt,Mv),kGt._b=function(t){return qA(t)?tX(this,t):!!AX(this.f,t)},kGt.xc=function(t){var e;return iO(e=qA(t)?kJ(this,t):zA(AX(this.f,t)),837)?(e=jz(e,837)._j(),YG(this,jz(t,235),e),e):e??(null==t?(KE(),eOe):null)},bY(d7t,"EValidatorRegistryImpl",1276),fIt(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},Uc),kGt.Ih=function(t,e){switch(t.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return null==e?null:$ft(e);case 25:return Wet(e);case 27:return q8(e);case 28:return W8(e);case 29:return null==e?null:$L(SDe[0],jz(e,199));case 41:return null==e?"":JR(jz(e,290));case 42:return $ft(e);case 50:return kB(e);default:throw $m(new Pw(g7t+t.ne()+p7t))}},kGt.Jh=function(t){var e;switch(-1==t.G&&(t.G=(e=qet(t))?oyt(e.Mh(),t):-1),t.G){case 0:return new Tv;case 1:return new Rc;case 2:return new Bd;case 4:return new xy;case 5:return new Av;case 6:return new wy;case 7:return new Md;case 10:return new wc;case 11:return new Dv;case 12:return new bX;case 13:return new Iv;case 14:return new pB;case 17:return new Ic;case 18:return new Bm;case 19:return new Hc;default:throw $m(new Pw(y7t+t.zb+p7t))}},kGt.Kh=function(t,e){switch(t.yj()){case 20:return null==e?null:new h_(e);case 21:return null==e?null:new DI(e);case 23:case 22:return null==e?null:Jpt(e);case 26:case 24:return null==e?null:Ett(djt(e,-128,127)<<24>>24);case 25:return gLt(e);case 27:return Ewt(e);case 28:return Cwt(e);case 29:return pEt(e);case 32:case 31:return null==e?null:hCt(e);case 38:case 37:return null==e?null:new My(e);case 40:case 39:return null==e?null:nht(djt(e,FZt,NGt));case 41:case 42:return null;case 44:case 43:return null==e?null:xbt(iWt(e));case 49:case 48:return null==e?null:iht(djt(e,Z8t,32767)<<16>>16);case 50:return e;default:throw $m(new Pw(g7t+t.ne()+p7t))}},bY(d7t,"EcoreFactoryImpl",1313),fIt(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},VG),kGt.gb=!1,kGt.hb=!1;var WLe,YLe=!1;bY(d7t,"EcorePackageImpl",547),fIt(1184,1,{837:1},Vc),kGt._j=function(){return sM(),nOe},bY(d7t,"EcorePackageImpl/1",1184),fIt(1193,1,c9t,qc),kGt.wj=function(t){return iO(t,147)},kGt.xj=function(t){return O5(FDe,zGt,147,t,0,1)},bY(d7t,"EcorePackageImpl/10",1193),fIt(1194,1,c9t,Wc),kGt.wj=function(t){return iO(t,191)},kGt.xj=function(t){return O5($De,zGt,191,t,0,1)},bY(d7t,"EcorePackageImpl/11",1194),fIt(1195,1,c9t,Yc),kGt.wj=function(t){return iO(t,56)},kGt.xj=function(t){return O5(DDe,zGt,56,t,0,1)},bY(d7t,"EcorePackageImpl/12",1195),fIt(1196,1,c9t,Gc),kGt.wj=function(t){return iO(t,399)},kGt.xj=function(t){return O5(YIe,M8t,59,t,0,1)},bY(d7t,"EcorePackageImpl/13",1196),fIt(1197,1,c9t,Zc),kGt.wj=function(t){return iO(t,235)},kGt.xj=function(t){return O5(zDe,zGt,235,t,0,1)},bY(d7t,"EcorePackageImpl/14",1197),fIt(1198,1,c9t,Kc),kGt.wj=function(t){return iO(t,509)},kGt.xj=function(t){return O5(GIe,zGt,2017,t,0,1)},bY(d7t,"EcorePackageImpl/15",1198),fIt(1199,1,c9t,Xc),kGt.wj=function(t){return iO(t,99)},kGt.xj=function(t){return O5(ZIe,O8t,18,t,0,1)},bY(d7t,"EcorePackageImpl/16",1199),fIt(1200,1,c9t,Jc),kGt.wj=function(t){return iO(t,170)},kGt.xj=function(t){return O5(PIe,O8t,170,t,0,1)},bY(d7t,"EcorePackageImpl/17",1200),fIt(1201,1,c9t,Qc),kGt.wj=function(t){return iO(t,472)},kGt.xj=function(t){return O5(BIe,zGt,472,t,0,1)},bY(d7t,"EcorePackageImpl/18",1201),fIt(1202,1,c9t,tl),kGt.wj=function(t){return iO(t,548)},kGt.xj=function(t){return O5(VLe,r8t,548,t,0,1)},bY(d7t,"EcorePackageImpl/19",1202),fIt(1185,1,c9t,el),kGt.wj=function(t){return iO(t,322)},kGt.xj=function(t){return O5(FIe,O8t,34,t,0,1)},bY(d7t,"EcorePackageImpl/2",1185),fIt(1203,1,c9t,nl),kGt.wj=function(t){return iO(t,241)},kGt.xj=function(t){return O5(WIe,$8t,87,t,0,1)},bY(d7t,"EcorePackageImpl/20",1203),fIt(1204,1,c9t,il),kGt.wj=function(t){return iO(t,444)},kGt.xj=function(t){return O5(SLe,zGt,836,t,0,1)},bY(d7t,"EcorePackageImpl/21",1204),fIt(1205,1,c9t,al),kGt.wj=function(t){return UA(t)},kGt.xj=function(t){return O5(wee,cZt,476,t,8,1)},bY(d7t,"EcorePackageImpl/22",1205),fIt(1206,1,c9t,rl),kGt.wj=function(t){return iO(t,190)},kGt.xj=function(t){return O5(IMe,cZt,190,t,0,2)},bY(d7t,"EcorePackageImpl/23",1206),fIt(1207,1,c9t,ol),kGt.wj=function(t){return iO(t,217)},kGt.xj=function(t){return O5(Ree,cZt,217,t,0,1)},bY(d7t,"EcorePackageImpl/24",1207),fIt(1208,1,c9t,sl),kGt.wj=function(t){return iO(t,172)},kGt.xj=function(t){return O5(Eee,cZt,172,t,0,1)},bY(d7t,"EcorePackageImpl/25",1208),fIt(1209,1,c9t,cl),kGt.wj=function(t){return iO(t,199)},kGt.xj=function(t){return O5(bee,cZt,199,t,0,1)},bY(d7t,"EcorePackageImpl/26",1209),fIt(1210,1,c9t,ll),kGt.wj=function(t){return!1},kGt.xj=function(t){return O5(BMe,zGt,2110,t,0,1)},bY(d7t,"EcorePackageImpl/27",1210),fIt(1211,1,c9t,ul),kGt.wj=function(t){return VA(t)},kGt.xj=function(t){return O5(Cee,cZt,333,t,7,1)},bY(d7t,"EcorePackageImpl/28",1211),fIt(1212,1,c9t,dl),kGt.wj=function(t){return iO(t,58)},kGt.xj=function(t){return O5(aIe,QJt,58,t,0,1)},bY(d7t,"EcorePackageImpl/29",1212),fIt(1186,1,c9t,hl),kGt.wj=function(t){return iO(t,510)},kGt.xj=function(t){return O5(NIe,{3:1,4:1,5:1,1934:1},590,t,0,1)},bY(d7t,"EcorePackageImpl/3",1186),fIt(1213,1,c9t,fl),kGt.wj=function(t){return iO(t,573)},kGt.xj=function(t){return O5(mIe,zGt,1940,t,0,1)},bY(d7t,"EcorePackageImpl/30",1213),fIt(1214,1,c9t,gl),kGt.wj=function(t){return iO(t,153)},kGt.xj=function(t){return O5(rOe,QJt,153,t,0,1)},bY(d7t,"EcorePackageImpl/31",1214),fIt(1215,1,c9t,pl),kGt.wj=function(t){return iO(t,72)},kGt.xj=function(t){return O5(ALe,l9t,72,t,0,1)},bY(d7t,"EcorePackageImpl/32",1215),fIt(1216,1,c9t,bl),kGt.wj=function(t){return iO(t,155)},kGt.xj=function(t){return O5(See,cZt,155,t,0,1)},bY(d7t,"EcorePackageImpl/33",1216),fIt(1217,1,c9t,ml),kGt.wj=function(t){return iO(t,19)},kGt.xj=function(t){return O5(Dee,cZt,19,t,0,1)},bY(d7t,"EcorePackageImpl/34",1217),fIt(1218,1,c9t,yl),kGt.wj=function(t){return iO(t,290)},kGt.xj=function(t){return O5(Ite,zGt,290,t,0,1)},bY(d7t,"EcorePackageImpl/35",1218),fIt(1219,1,c9t,vl),kGt.wj=function(t){return iO(t,162)},kGt.xj=function(t){return O5(Bee,cZt,162,t,0,1)},bY(d7t,"EcorePackageImpl/36",1219),fIt(1220,1,c9t,wl),kGt.wj=function(t){return iO(t,83)},kGt.xj=function(t){return O5(Ote,zGt,83,t,0,1)},bY(d7t,"EcorePackageImpl/37",1220),fIt(1221,1,c9t,xl),kGt.wj=function(t){return iO(t,591)},kGt.xj=function(t){return O5(tOe,zGt,591,t,0,1)},bY(d7t,"EcorePackageImpl/38",1221),fIt(1222,1,c9t,Rl),kGt.wj=function(t){return!1},kGt.xj=function(t){return O5(PMe,zGt,2111,t,0,1)},bY(d7t,"EcorePackageImpl/39",1222),fIt(1187,1,c9t,_l),kGt.wj=function(t){return iO(t,88)},kGt.xj=function(t){return O5($Ie,zGt,26,t,0,1)},bY(d7t,"EcorePackageImpl/4",1187),fIt(1223,1,c9t,kl),kGt.wj=function(t){return iO(t,184)},kGt.xj=function(t){return O5(Fee,cZt,184,t,0,1)},bY(d7t,"EcorePackageImpl/40",1223),fIt(1224,1,c9t,El),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(d7t,"EcorePackageImpl/41",1224),fIt(1225,1,c9t,Cl),kGt.wj=function(t){return iO(t,588)},kGt.xj=function(t){return O5(oIe,zGt,588,t,0,1)},bY(d7t,"EcorePackageImpl/42",1225),fIt(1226,1,c9t,Sl),kGt.wj=function(t){return!1},kGt.xj=function(t){return O5(FMe,cZt,2112,t,0,1)},bY(d7t,"EcorePackageImpl/43",1226),fIt(1227,1,c9t,Tl),kGt.wj=function(t){return iO(t,42)},kGt.xj=function(t){return O5(zte,wZt,42,t,0,1)},bY(d7t,"EcorePackageImpl/44",1227),fIt(1188,1,c9t,Al),kGt.wj=function(t){return iO(t,138)},kGt.xj=function(t){return O5(jIe,zGt,138,t,0,1)},bY(d7t,"EcorePackageImpl/5",1188),fIt(1189,1,c9t,Dl),kGt.wj=function(t){return iO(t,148)},kGt.xj=function(t){return O5(zIe,zGt,148,t,0,1)},bY(d7t,"EcorePackageImpl/6",1189),fIt(1190,1,c9t,Il),kGt.wj=function(t){return iO(t,457)},kGt.xj=function(t){return O5(VIe,zGt,671,t,0,1)},bY(d7t,"EcorePackageImpl/7",1190),fIt(1191,1,c9t,Ll),kGt.wj=function(t){return iO(t,573)},kGt.xj=function(t){return O5(qIe,zGt,678,t,0,1)},bY(d7t,"EcorePackageImpl/8",1191),fIt(1192,1,c9t,Ol),kGt.wj=function(t){return iO(t,471)},kGt.xj=function(t){return O5(jDe,zGt,471,t,0,1)},bY(d7t,"EcorePackageImpl/9",1192),fIt(1025,1982,i8t,Ow),kGt.bi=function(t,e){Ddt(this,jz(e,415))},kGt.fi=function(t,e){eTt(this,t,jz(e,415))},bY(d7t,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1025),fIt(1026,143,t8t,rG),kGt.Ai=function(){return this.a.a},bY(d7t,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1026),fIt(1053,1052,{},oL),bY("org.eclipse.emf.ecore.plugin","EcorePlugin",1053);var GLe,ZLe,KLe,XLe,JLe,QLe,tOe=dU(u9t,"Resource");fIt(781,1378,d9t),kGt.Yk=function(t){},kGt.Zk=function(t){},kGt.Vk=function(){return!this.a&&(this.a=new km(this)),this.a},kGt.Wk=function(t){var e,n,i,a,r;if((i=t.length)>0){if(d1(0,t.length),47==t.charCodeAt(0)){for(r=new K7(4),a=1,e=1;e<i;++e)d1(e,t.length),47==t.charCodeAt(e)&&(Wz(r,a==e?"":t.substr(a,e-a)),a=e+1);return Wz(r,t.substr(a)),sRt(this,r)}d1(i-1,t.length),63==t.charCodeAt(i-1)&&(n=_F(t,Kkt(63),i-2))>0&&(t=t.substr(0,n))}return xAt(this,t)},kGt.Xk=function(){return this.c},kGt.Ib=function(){return JR(this.gm)+"@"+(Qct(this)>>>0).toString(16)+" uri='"+this.d+"'"},kGt.b=!1,bY(h9t,"ResourceImpl",781),fIt(1379,781,d9t,Cm),bY(h9t,"BinaryResourceImpl",1379),fIt(1169,694,u5t),kGt.si=function(t){return iO(t,56)?RX(this,jz(t,56)):iO(t,591)?new AO(jz(t,591).Vk()):HA(t)===HA(this.f)?jz(t,14).Kc():(fB(),gIe.a)},kGt.Ob=function(){return hDt(this)},kGt.a=!1,bY(v8t,"EcoreUtil/ContentTreeIterator",1169),fIt(1380,1169,u5t,nW),kGt.si=function(t){return HA(t)===HA(this.f)?jz(t,15).Kc():new F2(jz(t,56))},bY(h9t,"ResourceImpl/5",1380),fIt(648,1994,N8t,km),kGt.Hc=function(t){return this.i<=4?ERt(this,t):iO(t,49)&&jz(t,49).Zg()==this.a},kGt.bi=function(t,e){t==this.i-1&&(this.a.b||(this.a.b=!0))},kGt.di=function(t,e){0==t?this.a.b||(this.a.b=!0):I5(this,t,e)},kGt.fi=function(t,e){},kGt.gi=function(t,e,n){},kGt.aj=function(){return 2},kGt.Ai=function(){return this.a},kGt.bj=function(){return!0},kGt.cj=function(t,e){return e=jz(t,49).wh(this.a,e)},kGt.dj=function(t,e){return jz(t,49).wh(null,e)},kGt.ej=function(){return!1},kGt.hi=function(){return!0},kGt.ri=function(t){return O5(DDe,zGt,56,t,0,1)},kGt.ni=function(){return!1},bY(h9t,"ResourceImpl/ContentsEList",648),fIt(957,1964,LZt,Em),kGt.Zc=function(t){return this.a._h(t)},kGt.gc=function(){return this.a.gc()},bY(v8t,"AbstractSequentialInternalEList/1",957),fIt(624,1,{},kH),bY(v8t,"BasicExtendedMetaData",624),fIt(1160,1,{},DA),kGt.$k=function(){return null},kGt._k=function(){return-2==this.a&&of(this,rEt(this.d,this.b)),this.a},kGt.al=function(){return null},kGt.bl=function(){return kK(),kK(),cne},kGt.ne=function(){return this.c==S9t&&cf(this,Rbt(this.d,this.b)),this.c},kGt.cl=function(){return 0},kGt.a=-2,kGt.c=S9t,bY(v8t,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1160),fIt(1161,1,{},P0),kGt.$k=function(){return this.a==(N6(),JLe)&&sf(this,mMt(this.f,this.b)),this.a},kGt._k=function(){return 0},kGt.al=function(){return this.c==(N6(),JLe)&&lf(this,yMt(this.f,this.b)),this.c},kGt.bl=function(){return!this.d&&uf(this,EFt(this.f,this.b)),this.d},kGt.ne=function(){return this.e==S9t&&df(this,Rbt(this.f,this.b)),this.e},kGt.cl=function(){return-2==this.g&&hf(this,K_t(this.f,this.b)),this.g},kGt.e=S9t,kGt.g=-2,bY(v8t,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1161),fIt(1159,1,{},NA),kGt.b=!1,kGt.c=!1,bY(v8t,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1159),fIt(1162,1,{},B0),kGt.c=-2,kGt.e=S9t,kGt.f=S9t,bY(v8t,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1162),fIt(585,622,B8t,_H),kGt.aj=function(){return this.c},kGt.Fk=function(){return!1},kGt.li=function(t,e){return e},kGt.c=0,bY(v8t,"EDataTypeEList",585);var eOe,nOe,iOe,aOe,rOe=dU(v8t,"FeatureMap");fIt(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},Rrt),kGt.Vc=function(t,e){dMt(this,t,jz(e,72))},kGt.Fc=function(t){return oOt(this,jz(t,72))},kGt.Yh=function(t){fY(this,jz(t,72))},kGt.cj=function(t,e){return $F(this,jz(t,72),e)},kGt.dj=function(t,e){return zF(this,jz(t,72),e)},kGt.ii=function(t,e){return rjt(this,t,e)},kGt.li=function(t,e){return lVt(this,t,jz(e,72))},kGt._c=function(t,e){return CNt(this,t,jz(e,72))},kGt.jj=function(t,e){return HF(this,jz(t,72),e)},kGt.kj=function(t,e){return UF(this,jz(t,72),e)},kGt.lj=function(t,e,n){return p_t(this,jz(t,72),jz(e,72),n)},kGt.oi=function(t,e){return ckt(this,t,jz(e,72))},kGt.dl=function(t,e){return MFt(this,t,e)},kGt.Wc=function(t,e){var n,i,a,r,o,s,c,l,u;for(l=new pet(e.gc()),a=e.Kc();a.Ob();)if(r=(i=jz(a.Pb(),72)).ak(),INt(this.e,r))(!r.hi()||!H4(this,r,i.dd())&&!ERt(l,i))&&l8(l,i);else{for(u=rNt(this.e.Tg(),r),n=jz(this.g,119),o=!0,s=0;s<this.i;++s)if(c=n[s],u.rl(c.ak())){jz(syt(this,s,i),72),o=!1;break}o&&l8(l,i)}return sct(this,t,l)},kGt.Gc=function(t){var e,n,i,a,r,o,s,c,l;for(c=new pet(t.gc()),i=t.Kc();i.Ob();)if(a=(n=jz(i.Pb(),72)).ak(),INt(this.e,a))(!a.hi()||!H4(this,a,n.dd())&&!ERt(c,n))&&l8(c,n);else{for(l=rNt(this.e.Tg(),a),e=jz(this.g,119),r=!0,o=0;o<this.i;++o)if(s=e[o],l.rl(s.ak())){jz(syt(this,o,n),72),r=!1;break}r&&l8(c,n)}return pY(this,c)},kGt.Wh=function(t){return this.j=-1,L$t(this,this.i,t)},kGt.el=function(t,e,n){return CPt(this,t,e,n)},kGt.mk=function(t,e){return _Ft(this,t,e)},kGt.fl=function(t,e,n){return Jzt(this,t,e,n)},kGt.gl=function(){return this},kGt.hl=function(t,e){return iHt(this,t,e)},kGt.il=function(t){return jz(Yet(this,t),72).ak()},kGt.jl=function(t){return jz(Yet(this,t),72).dd()},kGt.kl=function(){return this.b},kGt.bj=function(){return!0},kGt.ij=function(){return!0},kGt.ll=function(t){return!rpt(this,t)},kGt.ri=function(t){return O5(qLe,l9t,332,t,0,1)},kGt.Gk=function(t){return cB(this,t)},kGt.Wb=function(t){QW(this,t)},kGt.ml=function(t,e){kHt(this,t,e)},kGt.nl=function(t){return Vit(this,t)},kGt.ol=function(t){Pvt(this,t)},bY(v8t,"BasicFeatureMap",75),fIt(1851,1,aZt),kGt.Nb=function(t){lW(this,t)},kGt.Rb=function(t){if(-1==this.g)throw $m(new fy);mq(this);try{DNt(this.e,this.b,this.a,t),this.d=this.e.j,ayt(this)}catch(e){throw iO(e=dst(e),73)?$m(new by):$m(e)}},kGt.Ob=function(){return Plt(this)},kGt.Sb=function(){return Flt(this)},kGt.Pb=function(){return ayt(this)},kGt.Tb=function(){return this.a},kGt.Ub=function(){var t;if(Flt(this))return mq(this),this.g=--this.a,this.Lk()&&(t=jAt(this.e,this.b,this.c,this.a,this.j),this.j=t),this.i=0,this.j;throw $m(new yy)},kGt.Vb=function(){return this.a-1},kGt.Qb=function(){if(-1==this.g)throw $m(new fy);mq(this);try{rSt(this.e,this.b,this.g),this.d=this.e.j,this.g<this.a&&(--this.a,--this.c),--this.g}catch(t){throw iO(t=dst(t),73)?$m(new by):$m(t)}},kGt.Lk=function(){return!1},kGt.Wb=function(t){if(-1==this.g)throw $m(new fy);mq(this);try{W$t(this.e,this.b,this.g,t),this.d=this.e.j}catch(e){throw iO(e=dst(e),73)?$m(new by):$m(e)}},kGt.a=0,kGt.c=0,kGt.d=0,kGt.f=!1,kGt.g=0,kGt.i=0,bY(v8t,"FeatureMapUtil/BasicFeatureEIterator",1851),fIt(410,1851,aZt,Dot),kGt.pl=function(){var t,e,n;for(n=this.e.i,t=jz(this.e.g,119);this.c<n;){if(e=t[this.c],this.k.rl(e.ak()))return this.j=this.f?e:e.dd(),this.i=2,!0;++this.c}return this.i=1,this.g=-1,!1},kGt.ql=function(){var t,e;for(t=jz(this.e.g,119);--this.c>=0;)if(e=t[this.c],this.k.rl(e.ak()))return this.j=this.f?e:e.dd(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},bY(v8t,"BasicFeatureMap/FeatureEIterator",410),fIt(662,410,aZt,OD),kGt.Lk=function(){return!0},bY(v8t,"BasicFeatureMap/ResolvingFeatureEIterator",662),fIt(955,486,H8t,UL),kGt.Gi=function(){return this},bY(v8t,"EContentsEList/1",955),fIt(956,486,H8t,MD),kGt.Lk=function(){return!1},bY(v8t,"EContentsEList/2",956),fIt(954,279,U8t,VL),kGt.Nk=function(t){},kGt.Ob=function(){return!1},kGt.Sb=function(){return!1},bY(v8t,"EContentsEList/FeatureIteratorImpl/1",954),fIt(825,585,B8t,BO),kGt.ci=function(){this.a=!0},kGt.fj=function(){return this.a},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.a,this.a=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.a=!1},kGt.a=!1,bY(v8t,"EDataTypeEList/Unsettable",825),fIt(1849,585,B8t,PO),kGt.hi=function(){return!0},bY(v8t,"EDataTypeUniqueEList",1849),fIt(1850,825,B8t,FO),kGt.hi=function(){return!0},bY(v8t,"EDataTypeUniqueEList/Unsettable",1850),fIt(139,85,B8t,LO),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectContainmentEList/Resolving",139),fIt(1163,545,B8t,OO),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectContainmentEList/Unsettable/Resolving",1163),fIt(748,16,B8t,eF),kGt.ci=function(){this.a=!0},kGt.fj=function(){return this.a},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.a,this.a=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.a=!1},kGt.a=!1,bY(v8t,"EObjectContainmentWithInverseEList/Unsettable",748),fIt(1173,748,B8t,nF),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1173),fIt(743,496,B8t,MO),kGt.ci=function(){this.a=!0},kGt.fj=function(){return this.a},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.a,this.a=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.a=!1},kGt.a=!1,bY(v8t,"EObjectEList/Unsettable",743),fIt(328,496,B8t,NO),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectResolvingEList",328),fIt(1641,743,B8t,jO),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectResolvingEList/Unsettable",1641),fIt(1381,1,{},Ml),bY(v8t,"EObjectValidator",1381),fIt(546,496,B8t,eW),kGt.zk=function(){return this.d},kGt.Ak=function(){return this.b},kGt.bj=function(){return!0},kGt.Dk=function(){return!0},kGt.b=0,bY(v8t,"EObjectWithInverseEList",546),fIt(1176,546,B8t,iF),kGt.Ck=function(){return!0},bY(v8t,"EObjectWithInverseEList/ManyInverse",1176),fIt(625,546,B8t,aF),kGt.ci=function(){this.a=!0},kGt.fj=function(){return this.a},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.a,this.a=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.a=!1},kGt.a=!1,bY(v8t,"EObjectWithInverseEList/Unsettable",625),fIt(1175,625,B8t,oF),kGt.Ck=function(){return!0},bY(v8t,"EObjectWithInverseEList/Unsettable/ManyInverse",1175),fIt(749,546,B8t,rF),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectWithInverseResolvingEList",749),fIt(31,749,B8t,cF),kGt.Ck=function(){return!0},bY(v8t,"EObjectWithInverseResolvingEList/ManyInverse",31),fIt(750,625,B8t,sF),kGt.Ek=function(){return!0},kGt.li=function(t,e){return UDt(this,t,jz(e,56))},bY(v8t,"EObjectWithInverseResolvingEList/Unsettable",750),fIt(1174,750,B8t,lF),kGt.Ck=function(){return!0},bY(v8t,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1174),fIt(1164,622,B8t),kGt.ai=function(){return 0==(1792&this.b)},kGt.ci=function(){this.b|=1},kGt.Bk=function(){return 0!=(4&this.b)},kGt.bj=function(){return 0!=(40&this.b)},kGt.Ck=function(){return 0!=(16&this.b)},kGt.Dk=function(){return 0!=(8&this.b)},kGt.Ek=function(){return 0!=(this.b&k8t)},kGt.rk=function(){return 0!=(32&this.b)},kGt.Fk=function(){return 0!=(this.b&w7t)},kGt.wj=function(t){return this.d?O4(this.d,t):this.ak().Yj().wj(t)},kGt.fj=function(){return 2&this.b?0!=(1&this.b):0!=this.i},kGt.hi=function(){return 0!=(128&this.b)},kGt.Xj=function(){var t;cUt(this),2&this.b&&(mI(this.e)?(t=0!=(1&this.b),this.b&=-2,Iy(this,new Q6(this.e,2,Dgt(this.e.Tg(),this.ak()),t,!1))):this.b&=-2)},kGt.ni=function(){return 0==(1536&this.b)},kGt.b=0,bY(v8t,"EcoreEList/Generic",1164),fIt(1165,1164,B8t,UK),kGt.ak=function(){return this.a},bY(v8t,"EcoreEList/Dynamic",1165),fIt(747,63,l5t,Sm),kGt.ri=function(t){return Nnt(this.a.a,t)},bY(v8t,"EcoreEMap/1",747),fIt(746,85,B8t,Xq),kGt.bi=function(t,e){Tyt(this.b,jz(e,133))},kGt.di=function(t,e){rot(this.b)},kGt.ei=function(t,e,n){var i;++(i=this.b,jz(e,133),i).e},kGt.fi=function(t,e){Aht(this.b,jz(e,133))},kGt.gi=function(t,e,n){Aht(this.b,jz(n,133)),HA(n)===HA(e)&&jz(n,133).Th(iL(jz(e,133).cd())),Tyt(this.b,jz(e,133))},bY(v8t,"EcoreEMap/DelegateEObjectContainmentEList",746),fIt(1171,151,x8t,vit),bY(v8t,"EcoreEMap/Unsettable",1171),fIt(1172,746,B8t,uF),kGt.ci=function(){this.a=!0},kGt.fj=function(){return this.a},kGt.Xj=function(){var t;cUt(this),mI(this.e)?(t=this.a,this.a=!1,hot(this.e,new Q6(this.e,2,this.c,t,!1))):this.a=!1},kGt.a=!1,bY(v8t,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1172),fIt(1168,228,tXt,uY),kGt.a=!1,kGt.b=!1,bY(v8t,"EcoreUtil/Copier",1168),fIt(745,1,ZGt,F2),kGt.Nb=function(t){lW(this,t)},kGt.Ob=function(){return opt(this)},kGt.Pb=function(){var t;return opt(this),t=this.b,this.b=null,t},kGt.Qb=function(){this.a.Qb()},bY(v8t,"EcoreUtil/ProperContentIterator",745),fIt(1382,1381,{},Pd),bY(v8t,"EcoreValidator",1382),dU(v8t,"FeatureMapUtil/Validator"),fIt(1260,1,{1942:1},Nl),kGt.rl=function(t){return!0},bY(v8t,"FeatureMapUtil/1",1260),fIt(757,1,{1942:1},aWt),kGt.rl=function(t){var e;return this.c==t||(null==(e=RB(NY(this.a,t)))?MPt(this,t)?(n7(this.a,t,(cM(),yee)),!0):(n7(this.a,t,(cM(),mee)),!1):e==(cM(),yee))},kGt.e=!1,bY(v8t,"FeatureMapUtil/BasicValidator",757),fIt(758,43,tXt,qL),bY(v8t,"FeatureMapUtil/BasicValidator/Cache",758),fIt(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},OA),kGt.Vc=function(t,e){DNt(this.c,this.b,t,e)},kGt.Fc=function(t){return MFt(this.c,this.b,t)},kGt.Wc=function(t,e){return xHt(this.c,this.b,t,e)},kGt.Gc=function(t){return XL(this,t)},kGt.Xh=function(t,e){cet(this.c,this.b,t,e)},kGt.lk=function(t,e){return CPt(this.c,this.b,t,e)},kGt.pi=function(t){return nHt(this.c,this.b,t,!1)},kGt.Zh=function(){return wI(this.c,this.b)},kGt.$h=function(){return xI(this.c,this.b)},kGt._h=function(t){return D5(this.c,this.b,t)},kGt.mk=function(t,e){return QB(this,t,e)},kGt.$b=function(){Ly(this)},kGt.Hc=function(t){return H4(this.c,this.b,t)},kGt.Ic=function(t){return krt(this.c,this.b,t)},kGt.Xb=function(t){return nHt(this.c,this.b,t,!0)},kGt.Wj=function(t){return this},kGt.Xc=function(t){return U4(this.c,this.b,t)},kGt.dc=function(){return $A(this)},kGt.fj=function(){return!rpt(this.c,this.b)},kGt.Kc=function(){return itt(this.c,this.b)},kGt.Yc=function(){return att(this.c,this.b)},kGt.Zc=function(t){return dht(this.c,this.b,t)},kGt.ii=function(t,e){return y$t(this.c,this.b,t,e)},kGt.ji=function(t,e){G7(this.c,this.b,t,e)},kGt.$c=function(t){return rSt(this.c,this.b,t)},kGt.Mc=function(t){return SFt(this.c,this.b,t)},kGt._c=function(t,e){return W$t(this.c,this.b,t,e)},kGt.Wb=function(t){DDt(this.c,this.b),XL(this,jz(t,15))},kGt.gc=function(){return Pht(this.c,this.b)},kGt.Pc=function(){return H1(this.c,this.b)},kGt.Qc=function(t){return V4(this.c,this.b,t)},kGt.Ib=function(){var t,e;for((e=new kx).a+="[",t=wI(this.c,this.b);Plt(t);)iD(e,vM(ayt(t))),Plt(t)&&(e.a+=jGt);return e.a+="]",e.a},kGt.Xj=function(){DDt(this.c,this.b)},bY(v8t,"FeatureMapUtil/FeatureEList",501),fIt(627,36,t8t,d3),kGt.yi=function(t){return eht(this,t)},kGt.Di=function(t){var e,n,i,a;switch(this.d){case 1:case 2:if(HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return this.g=t.zi(),1==t.xi()&&(this.d=1),!0;break;case 3:if(3===t.xi()&&HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return this.d=5,l8(e=new pet(2),this.g),l8(e,t.zi()),this.g=e,!0;break;case 5:if(3===t.xi()&&HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return jz(this.g,14).Fc(t.zi()),!0;break;case 4:switch(t.xi()){case 3:if(HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return this.d=1,this.g=t.zi(),!0;break;case 4:if(HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return this.d=6,l8(a=new pet(2),this.n),l8(a,t.Bi()),this.n=a,i=Cst(Hx(TMe,1),lKt,25,15,[this.o,t.Ci()]),this.g=i,!0}break;case 6:if(4===t.xi()&&HA(t.Ai())===HA(this.c)&&eht(this,null)==t.yi(null))return jz(this.n,14).Fc(t.Bi()),rHt(i=jz(this.g,48),0,n=O5(TMe,lKt,25,i.length+1,15,1),0,i.length),n[i.length]=t.Ci(),this.g=n,!0}return!1},bY(v8t,"FeatureMapUtil/FeatureENotificationImpl",627),fIt(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},uU),kGt.dl=function(t,e){return MFt(this.c,t,e)},kGt.el=function(t,e,n){return CPt(this.c,t,e,n)},kGt.fl=function(t,e,n){return Jzt(this.c,t,e,n)},kGt.gl=function(){return this},kGt.hl=function(t,e){return iHt(this.c,t,e)},kGt.il=function(t){return jz(nHt(this.c,this.b,t,!1),72).ak()},kGt.jl=function(t){return jz(nHt(this.c,this.b,t,!1),72).dd()},kGt.kl=function(){return this.a},kGt.ll=function(t){return!rpt(this.c,t)},kGt.ml=function(t,e){kHt(this.c,t,e)},kGt.nl=function(t){return Vit(this.c,t)},kGt.ol=function(t){Pvt(this.c,t)},bY(v8t,"FeatureMapUtil/FeatureFeatureMap",552),fIt(1259,1,w8t,BA),kGt.Wj=function(t){return nHt(this.b,this.a,-1,t)},kGt.fj=function(){return!rpt(this.b,this.a)},kGt.Wb=function(t){kHt(this.b,this.a,t)},kGt.Xj=function(){DDt(this.b,this.a)},bY(v8t,"FeatureMapUtil/FeatureValue",1259);var oOe,sOe,cOe,lOe,uOe,dOe=dU(A9t,"AnyType");fIt(666,60,$Zt,ex),bY(A9t,"InvalidDatatypeValueException",666);var hOe,fOe,gOe,pOe,bOe,mOe,yOe,vOe,wOe,xOe,ROe,_Oe,kOe,EOe,COe,SOe,TOe,AOe,DOe,IOe,LOe,OOe,MOe,NOe,BOe,POe,FOe,jOe,$Oe,zOe,HOe=dU(A9t,D9t),UOe=dU(A9t,I9t),VOe=dU(A9t,L9t);fIt(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},Nv),kGt._g=function(t,e,n){switch(t){case 0:return n?(!this.c&&(this.c=new Rrt(this,0)),this.c):(!this.c&&(this.c=new Rrt(this,0)),this.c.b);case 1:return n?(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)):(!this.c&&(this.c=new Rrt(this,0)),jz(jz(JQ(this.c,(qUt(),pOe)),153),215)).kl();case 2:return n?(!this.b&&(this.b=new Rrt(this,2)),this.b):(!this.b&&(this.b=new Rrt(this,2)),this.b.b)}return V8(this,t-dY(this.zh()),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():this.zh(),t),e,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.c&&(this.c=new Rrt(this,0)),_Ft(this.c,t,n);case 1:return(!this.c&&(this.c=new Rrt(this,0)),jz(jz(JQ(this.c,(qUt(),pOe)),153),69)).mk(t,n);case 2:return!this.b&&(this.b=new Rrt(this,2)),_Ft(this.b,t,n)}return jz(eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():this.zh(),e),66).Nj().Rj(this,G9(this),e-dY(this.zh()),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.c&&0!=this.c.i;case 1:return!(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)).dc();case 2:return!!this.b&&0!=this.b.i}return T4(this,t-dY(this.zh()),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():this.zh(),t))},kGt.sh=function(t,e){switch(t){case 0:return!this.c&&(this.c=new Rrt(this,0)),void QW(this.c,e);case 1:return void(!this.c&&(this.c=new Rrt(this,0)),jz(jz(JQ(this.c,(qUt(),pOe)),153),215)).Wb(e);case 2:return!this.b&&(this.b=new Rrt(this,2)),void QW(this.b,e)}Lft(this,t-dY(this.zh()),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():this.zh(),t),e)},kGt.zh=function(){return qUt(),gOe},kGt.Bh=function(t){switch(t){case 0:return!this.c&&(this.c=new Rrt(this,0)),void cUt(this.c);case 1:return void(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)).$b();case 2:return!this.b&&(this.b=new Rrt(this,2)),void cUt(this.b)}Hdt(this,t-dY(this.zh()),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():this.zh(),t))},kGt.Ib=function(){var t;return 4&this.j?CLt(this):((t=new lM(CLt(this))).a+=" (mixed: ",nD(t,this.c),t.a+=", anyAttribute: ",nD(t,this.b),t.a+=")",t.a)},bY(O9t,"AnyTypeImpl",830),fIt(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},Pl),kGt._g=function(t,e,n){switch(t){case 0:return this.a;case 1:return this.b}return V8(this,t-dY((qUt(),SOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():SOe,t),e,n)},kGt.lh=function(t){switch(t){case 0:return null!=this.a;case 1:return null!=this.b}return T4(this,t-dY((qUt(),SOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():SOe,t))},kGt.sh=function(t,e){switch(t){case 0:return void vf(this,kB(e));case 1:return void wf(this,kB(e))}Lft(this,t-dY((qUt(),SOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():SOe,t),e)},kGt.zh=function(){return qUt(),SOe},kGt.Bh=function(t){switch(t){case 0:return void(this.a=null);case 1:return void(this.b=null)}Hdt(this,t-dY((qUt(),SOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():SOe,t))},kGt.Ib=function(){var t;return 4&this.j?CLt(this):((t=new lM(CLt(this))).a+=" (data: ",iD(t,this.a),t.a+=", target: ",iD(t,this.b),t.a+=")",t.a)},kGt.a=null,kGt.b=null,bY(O9t,"ProcessingInstructionImpl",667),fIt(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},Pv),kGt._g=function(t,e,n){switch(t){case 0:return n?(!this.c&&(this.c=new Rrt(this,0)),this.c):(!this.c&&(this.c=new Rrt(this,0)),this.c.b);case 1:return n?(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)):(!this.c&&(this.c=new Rrt(this,0)),jz(jz(JQ(this.c,(qUt(),pOe)),153),215)).kl();case 2:return n?(!this.b&&(this.b=new Rrt(this,2)),this.b):(!this.b&&(this.b=new Rrt(this,2)),this.b.b);case 3:return!this.c&&(this.c=new Rrt(this,0)),kB(iHt(this.c,(qUt(),DOe),!0));case 4:return gF(this.a,(!this.c&&(this.c=new Rrt(this,0)),kB(iHt(this.c,(qUt(),DOe),!0))));case 5:return this.a}return V8(this,t-dY((qUt(),AOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():AOe,t),e,n)},kGt.lh=function(t){switch(t){case 0:return!!this.c&&0!=this.c.i;case 1:return!(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)).dc();case 2:return!!this.b&&0!=this.b.i;case 3:return!this.c&&(this.c=new Rrt(this,0)),null!=kB(iHt(this.c,(qUt(),DOe),!0));case 4:return null!=gF(this.a,(!this.c&&(this.c=new Rrt(this,0)),kB(iHt(this.c,(qUt(),DOe),!0))));case 5:return!!this.a}return T4(this,t-dY((qUt(),AOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():AOe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.c&&(this.c=new Rrt(this,0)),void QW(this.c,e);case 1:return void(!this.c&&(this.c=new Rrt(this,0)),jz(jz(JQ(this.c,(qUt(),pOe)),153),215)).Wb(e);case 2:return!this.b&&(this.b=new Rrt(this,2)),void QW(this.b,e);case 3:return void F0(this,kB(e));case 4:return void F0(this,pF(this.a,e));case 5:return void xf(this,jz(e,148))}Lft(this,t-dY((qUt(),AOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():AOe,t),e)},kGt.zh=function(){return qUt(),AOe},kGt.Bh=function(t){switch(t){case 0:return!this.c&&(this.c=new Rrt(this,0)),void cUt(this.c);case 1:return void(!this.c&&(this.c=new Rrt(this,0)),jz(JQ(this.c,(qUt(),pOe)),153)).$b();case 2:return!this.b&&(this.b=new Rrt(this,2)),void cUt(this.b);case 3:return!this.c&&(this.c=new Rrt(this,0)),void kHt(this.c,(qUt(),DOe),null);case 4:return void F0(this,pF(this.a,null));case 5:return void(this.a=null)}Hdt(this,t-dY((qUt(),AOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():AOe,t))},bY(O9t,"SimpleAnyTypeImpl",668),fIt(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},Bv),kGt._g=function(t,e,n){switch(t){case 0:return n?(!this.a&&(this.a=new Rrt(this,0)),this.a):(!this.a&&(this.a=new Rrt(this,0)),this.a.b);case 1:return n?(!this.b&&(this.b=new y8((pGt(),yLe),VLe,this,1)),this.b):(!this.b&&(this.b=new y8((pGt(),yLe),VLe,this,1)),A5(this.b));case 2:return n?(!this.c&&(this.c=new y8((pGt(),yLe),VLe,this,2)),this.c):(!this.c&&(this.c=new y8((pGt(),yLe),VLe,this,2)),A5(this.c));case 3:return!this.a&&(this.a=new Rrt(this,0)),JQ(this.a,(qUt(),OOe));case 4:return!this.a&&(this.a=new Rrt(this,0)),JQ(this.a,(qUt(),MOe));case 5:return!this.a&&(this.a=new Rrt(this,0)),JQ(this.a,(qUt(),BOe));case 6:return!this.a&&(this.a=new Rrt(this,0)),JQ(this.a,(qUt(),POe))}return V8(this,t-dY((qUt(),LOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():LOe,t),e,n)},kGt.jh=function(t,e,n){switch(e){case 0:return!this.a&&(this.a=new Rrt(this,0)),_Ft(this.a,t,n);case 1:return!this.b&&(this.b=new y8((pGt(),yLe),VLe,this,1)),jF(this.b,t,n);case 2:return!this.c&&(this.c=new y8((pGt(),yLe),VLe,this,2)),jF(this.c,t,n);case 5:return!this.a&&(this.a=new Rrt(this,0)),QB(JQ(this.a,(qUt(),BOe)),t,n)}return jz(eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():(qUt(),LOe),e),66).Nj().Rj(this,G9(this),e-dY((qUt(),LOe)),t,n)},kGt.lh=function(t){switch(t){case 0:return!!this.a&&0!=this.a.i;case 1:return!!this.b&&0!=this.b.f;case 2:return!!this.c&&0!=this.c.f;case 3:return!this.a&&(this.a=new Rrt(this,0)),!$A(JQ(this.a,(qUt(),OOe)));case 4:return!this.a&&(this.a=new Rrt(this,0)),!$A(JQ(this.a,(qUt(),MOe)));case 5:return!this.a&&(this.a=new Rrt(this,0)),!$A(JQ(this.a,(qUt(),BOe)));case 6:return!this.a&&(this.a=new Rrt(this,0)),!$A(JQ(this.a,(qUt(),POe)))}return T4(this,t-dY((qUt(),LOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():LOe,t))},kGt.sh=function(t,e){switch(t){case 0:return!this.a&&(this.a=new Rrt(this,0)),void QW(this.a,e);case 1:return!this.b&&(this.b=new y8((pGt(),yLe),VLe,this,1)),void tot(this.b,e);case 2:return!this.c&&(this.c=new y8((pGt(),yLe),VLe,this,2)),void tot(this.c,e);case 3:return!this.a&&(this.a=new Rrt(this,0)),Ly(JQ(this.a,(qUt(),OOe))),!this.a&&(this.a=new Rrt(this,0)),void XL(JQ(this.a,OOe),jz(e,14));case 4:return!this.a&&(this.a=new Rrt(this,0)),Ly(JQ(this.a,(qUt(),MOe))),!this.a&&(this.a=new Rrt(this,0)),void XL(JQ(this.a,MOe),jz(e,14));case 5:return!this.a&&(this.a=new Rrt(this,0)),Ly(JQ(this.a,(qUt(),BOe))),!this.a&&(this.a=new Rrt(this,0)),void XL(JQ(this.a,BOe),jz(e,14));case 6:return!this.a&&(this.a=new Rrt(this,0)),Ly(JQ(this.a,(qUt(),POe))),!this.a&&(this.a=new Rrt(this,0)),void XL(JQ(this.a,POe),jz(e,14))}Lft(this,t-dY((qUt(),LOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():LOe,t),e)},kGt.zh=function(){return qUt(),LOe},kGt.Bh=function(t){switch(t){case 0:return!this.a&&(this.a=new Rrt(this,0)),void cUt(this.a);case 1:return!this.b&&(this.b=new y8((pGt(),yLe),VLe,this,1)),void this.b.c.$b();case 2:return!this.c&&(this.c=new y8((pGt(),yLe),VLe,this,2)),void this.c.c.$b();case 3:return!this.a&&(this.a=new Rrt(this,0)),void Ly(JQ(this.a,(qUt(),OOe)));case 4:return!this.a&&(this.a=new Rrt(this,0)),void Ly(JQ(this.a,(qUt(),MOe)));case 5:return!this.a&&(this.a=new Rrt(this,0)),void Ly(JQ(this.a,(qUt(),BOe)));case 6:return!this.a&&(this.a=new Rrt(this,0)),void Ly(JQ(this.a,(qUt(),POe)))}Hdt(this,t-dY((qUt(),LOe)),eet(2&this.j?(!this.k&&(this.k=new Nd),this.k).ck():LOe,t))},kGt.Ib=function(){var t;return 4&this.j?CLt(this):((t=new lM(CLt(this))).a+=" (mixed: ",nD(t,this.a),t.a+=")",t.a)},bY(O9t,"XMLTypeDocumentRootImpl",669),fIt(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},Bl),kGt.Ih=function(t,e){switch(t.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return null==e?null:$ft(e);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return kB(e);case 6:return mB(jz(e,190));case 12:case 47:case 49:case 11:return HVt(this,t,e);case 13:return null==e?null:Uzt(jz(e,240));case 15:case 14:return null==e?null:NW(Hw(_B(e)));case 17:return R_t((qUt(),e));case 18:return R_t(e);case 21:case 20:return null==e?null:BW(jz(e,155).a);case 27:return yB(jz(e,190));case 30:return Fvt((qUt(),jz(e,15)));case 31:return Fvt(jz(e,15));case 40:return wB((qUt(),e));case 42:return __t((qUt(),e));case 43:return __t(e);case 59:case 48:return vB((qUt(),e));default:throw $m(new Pw(g7t+t.ne()+p7t))}},kGt.Jh=function(t){var e;switch(-1==t.G&&(t.G=(e=qet(t))?oyt(e.Mh(),t):-1),t.G){case 0:return new Nv;case 1:return new Pl;case 2:return new Pv;case 3:return new Bv;default:throw $m(new Pw(y7t+t.zb+p7t))}},kGt.Kh=function(t,e){var n,i,a,r,o,s,c,l,u,d,h,f,g,p,b,m;switch(t.yj()){case 5:case 52:case 4:return e;case 6:return vmt(e);case 8:case 7:return null==e?null:F_t(e);case 9:return null==e?null:Ett(djt((i=jzt(e,!0)).length>0&&(d1(0,i.length),43==i.charCodeAt(0))?i.substr(1):i,-128,127)<<24>>24);case 10:return null==e?null:Ett(djt((a=jzt(e,!0)).length>0&&(d1(0,a.length),43==a.charCodeAt(0))?a.substr(1):a,-128,127)<<24>>24);case 11:return kB(MYt(this,(qUt(),yOe),e));case 12:return kB(MYt(this,(qUt(),vOe),e));case 13:return null==e?null:new h_(jzt(e,!0));case 15:case 14:return pOt(e);case 16:return kB(MYt(this,(qUt(),wOe),e));case 17:return zpt((qUt(),e));case 18:return zpt(e);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return jzt(e,!0);case 21:case 20:return TOt(e);case 22:return kB(MYt(this,(qUt(),xOe),e));case 23:return kB(MYt(this,(qUt(),ROe),e));case 24:return kB(MYt(this,(qUt(),_Oe),e));case 25:return kB(MYt(this,(qUt(),kOe),e));case 26:return kB(MYt(this,(qUt(),EOe),e));case 27:return Jbt(e);case 30:return Hpt((qUt(),e));case 31:return Hpt(e);case 32:return null==e?null:nht(djt((u=jzt(e,!0)).length>0&&(d1(0,u.length),43==u.charCodeAt(0))?u.substr(1):u,FZt,NGt));case 33:return null==e?null:new DI((d=jzt(e,!0)).length>0&&(d1(0,d.length),43==d.charCodeAt(0))?d.substr(1):d);case 34:return null==e?null:nht(djt((h=jzt(e,!0)).length>0&&(d1(0,h.length),43==h.charCodeAt(0))?h.substr(1):h,FZt,NGt));case 36:return null==e?null:xbt(iWt((f=jzt(e,!0)).length>0&&(d1(0,f.length),43==f.charCodeAt(0))?f.substr(1):f));case 37:return null==e?null:xbt(iWt((g=jzt(e,!0)).length>0&&(d1(0,g.length),43==g.charCodeAt(0))?g.substr(1):g));case 40:return Ggt((qUt(),e));case 42:return Upt((qUt(),e));case 43:return Upt(e);case 44:return null==e?null:new DI((p=jzt(e,!0)).length>0&&(d1(0,p.length),43==p.charCodeAt(0))?p.substr(1):p);case 45:return null==e?null:new DI((b=jzt(e,!0)).length>0&&(d1(0,b.length),43==b.charCodeAt(0))?b.substr(1):b);case 46:return jzt(e,!1);case 47:return kB(MYt(this,(qUt(),COe),e));case 59:case 48:return Ygt((qUt(),e));case 49:return kB(MYt(this,(qUt(),TOe),e));case 50:return null==e?null:iht(djt((m=jzt(e,!0)).length>0&&(d1(0,m.length),43==m.charCodeAt(0))?m.substr(1):m,Z8t,32767)<<16>>16);case 51:return null==e?null:iht(djt((r=jzt(e,!0)).length>0&&(d1(0,r.length),43==r.charCodeAt(0))?r.substr(1):r,Z8t,32767)<<16>>16);case 53:return kB(MYt(this,(qUt(),IOe),e));case 55:return null==e?null:iht(djt((o=jzt(e,!0)).length>0&&(d1(0,o.length),43==o.charCodeAt(0))?o.substr(1):o,Z8t,32767)<<16>>16);case 56:return null==e?null:iht(djt((s=jzt(e,!0)).length>0&&(d1(0,s.length),43==s.charCodeAt(0))?s.substr(1):s,Z8t,32767)<<16>>16);case 57:return null==e?null:xbt(iWt((c=jzt(e,!0)).length>0&&(d1(0,c.length),43==c.charCodeAt(0))?c.substr(1):c));case 58:return null==e?null:xbt(iWt((l=jzt(e,!0)).length>0&&(d1(0,l.length),43==l.charCodeAt(0))?l.substr(1):l));case 60:return null==e?null:nht(djt((n=jzt(e,!0)).length>0&&(d1(0,n.length),43==n.charCodeAt(0))?n.substr(1):n,FZt,NGt));case 61:return null==e?null:nht(djt(jzt(e,!0),FZt,NGt));default:throw $m(new Pw(g7t+t.ne()+p7t))}},bY(O9t,"XMLTypeFactoryImpl",1919),fIt(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},UG),kGt.N=!1,kGt.O=!1;var qOe,WOe,YOe,GOe,ZOe,KOe=!1;bY(O9t,"XMLTypePackageImpl",586),fIt(1852,1,{837:1},Fl),kGt._j=function(){return u$t(),xMe},bY(O9t,"XMLTypePackageImpl/1",1852),fIt(1861,1,c9t,jl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/10",1861),fIt(1862,1,c9t,$l),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/11",1862),fIt(1863,1,c9t,zl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/12",1863),fIt(1864,1,c9t,Hl),kGt.wj=function(t){return VA(t)},kGt.xj=function(t){return O5(Cee,cZt,333,t,7,1)},bY(O9t,"XMLTypePackageImpl/13",1864),fIt(1865,1,c9t,Ul),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/14",1865),fIt(1866,1,c9t,Vl),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/15",1866),fIt(1867,1,c9t,ql),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/16",1867),fIt(1868,1,c9t,Wl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/17",1868),fIt(1869,1,c9t,Yl),kGt.wj=function(t){return iO(t,155)},kGt.xj=function(t){return O5(See,cZt,155,t,0,1)},bY(O9t,"XMLTypePackageImpl/18",1869),fIt(1870,1,c9t,Gl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/19",1870),fIt(1853,1,c9t,Zl),kGt.wj=function(t){return iO(t,843)},kGt.xj=function(t){return O5(dOe,zGt,843,t,0,1)},bY(O9t,"XMLTypePackageImpl/2",1853),fIt(1871,1,c9t,Kl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/20",1871),fIt(1872,1,c9t,Xl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/21",1872),fIt(1873,1,c9t,Jl),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/22",1873),fIt(1874,1,c9t,Ql),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/23",1874),fIt(1875,1,c9t,tu),kGt.wj=function(t){return iO(t,190)},kGt.xj=function(t){return O5(IMe,cZt,190,t,0,2)},bY(O9t,"XMLTypePackageImpl/24",1875),fIt(1876,1,c9t,eu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/25",1876),fIt(1877,1,c9t,nu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/26",1877),fIt(1878,1,c9t,iu),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/27",1878),fIt(1879,1,c9t,au),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/28",1879),fIt(1880,1,c9t,ru),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/29",1880),fIt(1854,1,c9t,ou),kGt.wj=function(t){return iO(t,667)},kGt.xj=function(t){return O5(HOe,zGt,2021,t,0,1)},bY(O9t,"XMLTypePackageImpl/3",1854),fIt(1881,1,c9t,su),kGt.wj=function(t){return iO(t,19)},kGt.xj=function(t){return O5(Dee,cZt,19,t,0,1)},bY(O9t,"XMLTypePackageImpl/30",1881),fIt(1882,1,c9t,cu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/31",1882),fIt(1883,1,c9t,lu),kGt.wj=function(t){return iO(t,162)},kGt.xj=function(t){return O5(Bee,cZt,162,t,0,1)},bY(O9t,"XMLTypePackageImpl/32",1883),fIt(1884,1,c9t,uu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/33",1884),fIt(1885,1,c9t,du),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/34",1885),fIt(1886,1,c9t,hu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/35",1886),fIt(1887,1,c9t,fu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/36",1887),fIt(1888,1,c9t,gu),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/37",1888),fIt(1889,1,c9t,pu),kGt.wj=function(t){return iO(t,15)},kGt.xj=function(t){return O5(Bte,QJt,15,t,0,1)},bY(O9t,"XMLTypePackageImpl/38",1889),fIt(1890,1,c9t,bu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/39",1890),fIt(1855,1,c9t,mu),kGt.wj=function(t){return iO(t,668)},kGt.xj=function(t){return O5(UOe,zGt,2022,t,0,1)},bY(O9t,"XMLTypePackageImpl/4",1855),fIt(1891,1,c9t,yu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/40",1891),fIt(1892,1,c9t,vu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/41",1892),fIt(1893,1,c9t,wu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/42",1893),fIt(1894,1,c9t,xu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/43",1894),fIt(1895,1,c9t,Ru),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/44",1895),fIt(1896,1,c9t,_u),kGt.wj=function(t){return iO(t,184)},kGt.xj=function(t){return O5(Fee,cZt,184,t,0,1)},bY(O9t,"XMLTypePackageImpl/45",1896),fIt(1897,1,c9t,ku),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/46",1897),fIt(1898,1,c9t,Eu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/47",1898),fIt(1899,1,c9t,Cu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/48",1899),fIt(cKt,1,c9t,Su),kGt.wj=function(t){return iO(t,184)},kGt.xj=function(t){return O5(Fee,cZt,184,t,0,1)},bY(O9t,"XMLTypePackageImpl/49",cKt),fIt(1856,1,c9t,Tu),kGt.wj=function(t){return iO(t,669)},kGt.xj=function(t){return O5(VOe,zGt,2023,t,0,1)},bY(O9t,"XMLTypePackageImpl/5",1856),fIt(1901,1,c9t,Au),kGt.wj=function(t){return iO(t,162)},kGt.xj=function(t){return O5(Bee,cZt,162,t,0,1)},bY(O9t,"XMLTypePackageImpl/50",1901),fIt(1902,1,c9t,Du),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/51",1902),fIt(1903,1,c9t,Iu),kGt.wj=function(t){return iO(t,19)},kGt.xj=function(t){return O5(Dee,cZt,19,t,0,1)},bY(O9t,"XMLTypePackageImpl/52",1903),fIt(1857,1,c9t,Lu),kGt.wj=function(t){return qA(t)},kGt.xj=function(t){return O5(zee,cZt,2,t,6,1)},bY(O9t,"XMLTypePackageImpl/6",1857),fIt(1858,1,c9t,Ou),kGt.wj=function(t){return iO(t,190)},kGt.xj=function(t){return O5(IMe,cZt,190,t,0,2)},bY(O9t,"XMLTypePackageImpl/7",1858),fIt(1859,1,c9t,Mu),kGt.wj=function(t){return UA(t)},kGt.xj=function(t){return O5(wee,cZt,476,t,8,1)},bY(O9t,"XMLTypePackageImpl/8",1859),fIt(1860,1,c9t,Nu),kGt.wj=function(t){return iO(t,217)},kGt.xj=function(t){return O5(Ree,cZt,217,t,0,1)},bY(O9t,"XMLTypePackageImpl/9",1860),fIt(50,60,$Zt,ax),bY(rte,"RegEx/ParseException",50),fIt(820,1,{},Bu),kGt.sl=function(t){return t<this.j&&63==lZ(this.i,t)},kGt.tl=function(){var t,e,n,i,a;if(10!=this.c)throw $m(new ax(wGt((rL(),p5t))));switch(t=this.a){case 101:t=27;break;case 102:t=12;break;case 110:t=10;break;case 114:t=13;break;case 116:t=9;break;case 120:if(ZYt(this),0!=this.c)throw $m(new ax(wGt((rL(),$5t))));if(123==this.a){for(a=0,n=0;;){if(ZYt(this),0!=this.c)throw $m(new ax(wGt((rL(),$5t))));if((a=Uyt(this.a))<0)break;if(n>16*n)throw $m(new ax(wGt((rL(),z5t))));n=16*n+a}if(125!=this.a)throw $m(new ax(wGt((rL(),H5t))));if(n>ote)throw $m(new ax(wGt((rL(),U5t))));t=n}else{if(a=0,0!=this.c||(a=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(n=a,ZYt(this),0!=this.c||(a=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));t=n=16*n+a}break;case 117:if(i=0,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));t=e=16*e+i;break;case 118:if(ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if(e=16*e+i,ZYt(this),0!=this.c||(i=Uyt(this.a))<0)throw $m(new ax(wGt((rL(),$5t))));if((e=16*e+i)>ote)throw $m(new ax(wGt((rL(),"parser.descappe.4"))));t=e;break;case 65:case 90:case 122:throw $m(new ax(wGt((rL(),V5t))))}return t},kGt.ul=function(t){var e;switch(t){case 100:e=32==(32&this.e)?JWt("Nd",!0):(fGt(),aMe);break;case 68:e=32==(32&this.e)?JWt("Nd",!1):(fGt(),lMe);break;case 119:e=32==(32&this.e)?JWt("IsWord",!0):(fGt(),yMe);break;case 87:e=32==(32&this.e)?JWt("IsWord",!1):(fGt(),dMe);break;case 115:e=32==(32&this.e)?JWt("IsSpace",!0):(fGt(),fMe);break;case 83:e=32==(32&this.e)?JWt("IsSpace",!1):(fGt(),uMe);break;default:throw $m(new fw(ste+t.toString(16)))}return e},kGt.vl=function(t){var e,n,i,a,r,o,s,c,l,u,d;for(this.b=1,ZYt(this),e=null,0==this.c&&94==this.a?(ZYt(this),t?(fGt(),fGt(),l=new _0(5)):(fGt(),fGt(),KNt(e=new _0(4),0,ote),l=new _0(4))):(fGt(),fGt(),l=new _0(4)),a=!0;1!=(d=this.c)&&(0!=d||93!=this.a||a);){if(a=!1,n=this.a,i=!1,10==d)switch(n){case 100:case 68:case 119:case 87:case 115:case 83:cHt(l,this.ul(n)),i=!0;break;case 105:case 73:case 99:case 67:(n=this.Ll(l,n))<0&&(i=!0);break;case 112:case 80:if(!(u=NAt(this,n)))throw $m(new ax(wGt((rL(),A5t))));cHt(l,u),i=!0;break;default:n=this.tl()}else if(20==d){if((r=uN(this.i,58,this.d))<0)throw $m(new ax(wGt((rL(),D5t))));if(o=!0,94==lZ(this.i,this.d)&&(++this.d,o=!1),!(s=d8(lN(this.i,this.d,r),o,512==(512&this.e))))throw $m(new ax(wGt((rL(),L5t))));if(cHt(l,s),i=!0,r+1>=this.j||93!=lZ(this.i,r+1))throw $m(new ax(wGt((rL(),D5t))));this.d=r+2}if(ZYt(this),!i)if(0!=this.c||45!=this.a)KNt(l,n,n);else{if(ZYt(this),1==(d=this.c))throw $m(new ax(wGt((rL(),I5t))));0==d&&93==this.a?(KNt(l,n,n),KNt(l,45,45)):(c=this.a,10==d&&(c=this.tl()),ZYt(this),KNt(l,n,c))}(this.e&w7t)==w7t&&0==this.c&&44==this.a&&ZYt(this)}if(1==this.c)throw $m(new ax(wGt((rL(),I5t))));return e&&(YVt(e,l),l=e),_Lt(l),HHt(l),this.b=0,ZYt(this),l},kGt.wl=function(){var t,e,n,i;for(n=this.vl(!1);7!=(i=this.c);){if(t=this.a,(0!=i||45!=t&&38!=t)&&4!=i)throw $m(new ax(wGt((rL(),F5t))));if(ZYt(this),9!=this.c)throw $m(new ax(wGt((rL(),P5t))));if(e=this.vl(!1),4==i)cHt(n,e);else if(45==t)YVt(n,e);else{if(38!=t)throw $m(new fw("ASSERT"));wVt(n,e)}}return ZYt(this),n},kGt.xl=function(){var t,e;return t=this.a-48,fGt(),fGt(),e=new bJ(12,null,t),!this.g&&(this.g=new Py),Cy(this.g,new Tm(t)),ZYt(this),e},kGt.yl=function(){return ZYt(this),fGt(),gMe},kGt.zl=function(){return ZYt(this),fGt(),hMe},kGt.Al=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Bl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Cl=function(){return ZYt(this),ult()},kGt.Dl=function(){return ZYt(this),fGt(),bMe},kGt.El=function(){return ZYt(this),fGt(),vMe},kGt.Fl=function(){var t;if(this.d>=this.j||64!=(65504&(t=lZ(this.i,this.d++))))throw $m(new ax(wGt((rL(),E5t))));return ZYt(this),fGt(),fGt(),new oV(0,t-64)},kGt.Gl=function(){return ZYt(this),B$t()},kGt.Hl=function(){return ZYt(this),fGt(),wMe},kGt.Il=function(){var t;return fGt(),fGt(),t=new oV(0,105),ZYt(this),t},kGt.Jl=function(){return ZYt(this),fGt(),mMe},kGt.Kl=function(){return ZYt(this),fGt(),pMe},kGt.Ll=function(t,e){return this.tl()},kGt.Ml=function(){return ZYt(this),fGt(),sMe},kGt.Nl=function(){var t,e,n,i,a;if(this.d+1>=this.j)throw $m(new ax(wGt((rL(),R5t))));if(i=-1,e=null,49<=(t=lZ(this.i,this.d))&&t<=57){if(i=t-48,!this.g&&(this.g=new Py),Cy(this.g,new Tm(i)),++this.d,41!=lZ(this.i,this.d))throw $m(new ax(wGt((rL(),v5t))));++this.d}else switch(63==t&&--this.d,ZYt(this),e=AYt(this),e.e){case 20:case 21:case 22:case 23:break;case 8:if(7!=this.c)throw $m(new ax(wGt((rL(),v5t))));break;default:throw $m(new ax(wGt((rL(),_5t))))}if(ZYt(this),n=null,2==(a=Gpt(this)).e){if(2!=a.em())throw $m(new ax(wGt((rL(),k5t))));n=a.am(1),a=a.am(0)}if(7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),fGt(),fGt(),new wtt(i,e,a,n)},kGt.Ol=function(){return ZYt(this),fGt(),cMe},kGt.Pl=function(){var t;if(ZYt(this),t=rW(24,Gpt(this)),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Ql=function(){var t;if(ZYt(this),t=rW(20,Gpt(this)),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Rl=function(){var t;if(ZYt(this),t=rW(22,Gpt(this)),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Sl=function(){var t,e,n,i,a;for(t=0,n=0,e=-1;this.d<this.j&&0!=(a=ZDt(e=lZ(this.i,this.d)));)t|=a,++this.d;if(this.d>=this.j)throw $m(new ax(wGt((rL(),w5t))));if(45==e){for(++this.d;this.d<this.j&&0!=(a=ZDt(e=lZ(this.i,this.d)));)n|=a,++this.d;if(this.d>=this.j)throw $m(new ax(wGt((rL(),w5t))))}if(58==e){if(++this.d,ZYt(this),i=AY(Gpt(this),t,n),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));ZYt(this)}else{if(41!=e)throw $m(new ax(wGt((rL(),x5t))));++this.d,ZYt(this),i=AY(Gpt(this),t,n)}return i},kGt.Tl=function(){var t;if(ZYt(this),t=rW(21,Gpt(this)),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Ul=function(){var t;if(ZYt(this),t=rW(23,Gpt(this)),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Vl=function(){var t,e;if(ZYt(this),t=this.f++,e=oW(Gpt(this),t),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),e},kGt.Wl=function(){var t;if(ZYt(this),t=oW(Gpt(this),0),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Xl=function(t){return ZYt(this),5==this.c?(ZYt(this),gV(t,(fGt(),fGt(),new c3(9,t)))):gV(t,(fGt(),fGt(),new c3(3,t)))},kGt.Yl=function(t){var e;return ZYt(this),fGt(),fGt(),e=new nL(2),5==this.c?(ZYt(this),tUt(e,oMe),tUt(e,t)):(tUt(e,t),tUt(e,oMe)),e},kGt.Zl=function(t){return ZYt(this),5==this.c?(ZYt(this),fGt(),fGt(),new c3(9,t)):(fGt(),fGt(),new c3(3,t))},kGt.a=0,kGt.b=0,kGt.c=0,kGt.d=0,kGt.e=0,kGt.f=1,kGt.g=null,kGt.j=0,bY(rte,"RegEx/RegexParser",820),fIt(1824,820,{},Fv),kGt.sl=function(t){return!1},kGt.tl=function(){return HBt(this)},kGt.ul=function(t){return gjt(t)},kGt.vl=function(t){return JYt(this)},kGt.wl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.xl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.yl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.zl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Al=function(){return ZYt(this),gjt(67)},kGt.Bl=function(){return ZYt(this),gjt(73)},kGt.Cl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Dl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.El=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Fl=function(){return ZYt(this),gjt(99)},kGt.Gl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Hl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Il=function(){return ZYt(this),gjt(105)},kGt.Jl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Kl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Ll=function(t,e){return cHt(t,gjt(e)),-1},kGt.Ml=function(){return ZYt(this),fGt(),fGt(),new oV(0,94)},kGt.Nl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Ol=function(){return ZYt(this),fGt(),fGt(),new oV(0,36)},kGt.Pl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Ql=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Rl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Sl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Tl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Ul=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Vl=function(){var t;if(ZYt(this),t=oW(Gpt(this),0),7!=this.c)throw $m(new ax(wGt((rL(),v5t))));return ZYt(this),t},kGt.Wl=function(){throw $m(new ax(wGt((rL(),q5t))))},kGt.Xl=function(t){return ZYt(this),gV(t,(fGt(),fGt(),new c3(3,t)))},kGt.Yl=function(t){var e;return ZYt(this),fGt(),fGt(),tUt(e=new nL(2),t),tUt(e,oMe),e},kGt.Zl=function(t){return ZYt(this),fGt(),fGt(),new c3(3,t)};var XOe=null,JOe=null;bY(rte,"RegEx/ParserForXMLSchema",1824),fIt(117,1,vte,Am),kGt.$l=function(t){throw $m(new fw("Not supported."))},kGt._l=function(){return-1},kGt.am=function(t){return null},kGt.bm=function(){return null},kGt.cm=function(t){},kGt.dm=function(t){},kGt.em=function(){return 0},kGt.Ib=function(){return this.fm(0)},kGt.fm=function(t){return 11==this.e?".":""},kGt.e=0;var QOe,tMe,eMe,nMe,iMe,aMe,rMe,oMe,sMe,cMe,lMe,uMe,dMe,hMe,fMe,gMe,pMe,bMe,mMe,yMe,vMe,wMe,xMe,RMe,_Me=null,kMe=null,EMe=null,CMe=bY(rte,"RegEx/Token",117);fIt(136,117,{3:1,136:1,117:1},_0),kGt.fm=function(t){var e,n,i;if(4==this.e)if(this==rMe)n=".";else if(this==aMe)n="\\d";else if(this==yMe)n="\\w";else if(this==fMe)n="\\s";else{for((i=new kx).a+="[",e=0;e<this.b.length;e+=2)t&w7t&&e>0&&(i.a+=","),this.b[e]===this.b[e+1]?iD(i,rzt(this.b[e])):(iD(i,rzt(this.b[e])),i.a+="-",iD(i,rzt(this.b[e+1])));i.a+="]",n=i.a}else if(this==lMe)n="\\D";else if(this==dMe)n="\\W";else if(this==uMe)n="\\S";else{for((i=new kx).a+="[^",e=0;e<this.b.length;e+=2)t&w7t&&e>0&&(i.a+=","),this.b[e]===this.b[e+1]?iD(i,rzt(this.b[e])):(iD(i,rzt(this.b[e])),i.a+="-",iD(i,rzt(this.b[e+1])));i.a+="]",n=i.a}return n},kGt.a=!1,kGt.c=!1,bY(rte,"RegEx/RangeToken",136),fIt(584,1,{584:1},Tm),kGt.a=0,bY(rte,"RegEx/RegexParser/ReferencePosition",584),fIt(583,1,{3:1,583:1},q_),kGt.Fb=function(t){var e;return!(null==t||!iO(t,583))&&(e=jz(t,583),mF(this.b,e.b)&&this.a==e.a)},kGt.Hb=function(){return myt(this.b+"/"+tNt(this.a))},kGt.Ib=function(){return this.c.fm(this.a)},kGt.a=0,bY(rte,"RegEx/RegularExpression",583),fIt(223,117,vte,oV),kGt._l=function(){return this.a},kGt.fm=function(t){var e,n;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:n="\\"+EP(this.a&ZZt);break;case 12:n="\\f";break;case 10:n="\\n";break;case 13:n="\\r";break;case 9:n="\\t";break;case 27:n="\\e";break;default:n=this.a>=$Kt?"\\v"+lN(e="0"+(this.a>>>0).toString(16),e.length-6,e.length):""+EP(this.a&ZZt)}break;case 8:n=this==sMe||this==cMe?""+EP(this.a&ZZt):"\\"+EP(this.a&ZZt);break;default:n=null}return n},kGt.a=0,bY(rte,"RegEx/Token/CharToken",223),fIt(309,117,vte,c3),kGt.am=function(t){return this.a},kGt.cm=function(t){this.b=t},kGt.dm=function(t){this.c=t},kGt.em=function(){return 1},kGt.fm=function(t){var e;if(3==this.e)if(this.c<0&&this.b<0)e=this.a.fm(t)+"*";else if(this.c==this.b)e=this.a.fm(t)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)e=this.a.fm(t)+"{"+this.c+","+this.b+"}";else{if(!(this.c>=0&&this.b<0))throw $m(new fw("Token#toString(): CLOSURE "+this.c+jGt+this.b));e=this.a.fm(t)+"{"+this.c+",}"}else if(this.c<0&&this.b<0)e=this.a.fm(t)+"*?";else if(this.c==this.b)e=this.a.fm(t)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)e=this.a.fm(t)+"{"+this.c+","+this.b+"}?";else{if(!(this.c>=0&&this.b<0))throw $m(new fw("Token#toString(): NONGREEDYCLOSURE "+this.c+jGt+this.b));e=this.a.fm(t)+"{"+this.c+",}?"}return e},kGt.b=0,kGt.c=0,bY(rte,"RegEx/Token/ClosureToken",309),fIt(821,117,vte,VW),kGt.am=function(t){return 0==t?this.a:this.b},kGt.em=function(){return 2},kGt.fm=function(t){return 3==this.b.e&&this.b.am(0)==this.a?this.a.fm(t)+"+":9==this.b.e&&this.b.am(0)==this.a?this.a.fm(t)+"+?":this.a.fm(t)+""+this.b.fm(t)},bY(rte,"RegEx/Token/ConcatToken",821),fIt(1822,117,vte,wtt),kGt.am=function(t){if(0==t)return this.d;if(1==t)return this.b;throw $m(new fw("Internal Error: "+t))},kGt.em=function(){return this.b?2:1},kGt.fm=function(t){var e;return e=this.c>0?"(?("+this.c+")":8==this.a.e?"(?("+this.a+")":"(?"+this.a,this.b?e+=this.d+"|"+this.b+")":e+=this.d+")",e},kGt.c=0,bY(rte,"RegEx/Token/ConditionToken",1822),fIt(1823,117,vte,R0),kGt.am=function(t){return this.b},kGt.em=function(){return 1},kGt.fm=function(t){return"(?"+(0==this.a?"":tNt(this.a))+(0==this.c?"":tNt(this.c))+":"+this.b.fm(t)+")"},kGt.a=0,kGt.c=0,bY(rte,"RegEx/Token/ModifierToken",1823),fIt(822,117,vte,iG),kGt.am=function(t){return this.a},kGt.em=function(){return 1},kGt.fm=function(t){var e;switch(e=null,this.e){case 6:e=0==this.b?"(?:"+this.a.fm(t)+")":"("+this.a.fm(t)+")";break;case 20:e="(?="+this.a.fm(t)+")";break;case 21:e="(?!"+this.a.fm(t)+")";break;case 22:e="(?<="+this.a.fm(t)+")";break;case 23:e="(?<!"+this.a.fm(t)+")";break;case 24:e="(?>"+this.a.fm(t)+")"}return e},kGt.b=0,bY(rte,"RegEx/Token/ParenToken",822),fIt(521,117,{3:1,117:1,521:1},bJ),kGt.bm=function(){return this.b},kGt.fm=function(t){return 12==this.e?"\\"+this.a:nIt(this.b)},kGt.a=0,bY(rte,"RegEx/Token/StringToken",521),fIt(465,117,vte,nL),kGt.$l=function(t){tUt(this,t)},kGt.am=function(t){return jz(dG(this.a,t),117)},kGt.em=function(){return this.a?this.a.a.c.length:0},kGt.fm=function(t){var e,n,i,a,r;if(1==this.e){if(2==this.a.a.c.length)e=jz(dG(this.a,0),117),a=3==(n=jz(dG(this.a,1),117)).e&&n.am(0)==e?e.fm(t)+"+":9==n.e&&n.am(0)==e?e.fm(t)+"+?":e.fm(t)+""+n.fm(t);else{for(r=new kx,i=0;i<this.a.a.c.length;i++)iD(r,jz(dG(this.a,i),117).fm(t));a=r.a}return a}if(2==this.a.a.c.length&&7==jz(dG(this.a,1),117).e)a=jz(dG(this.a,0),117).fm(t)+"?";else if(2==this.a.a.c.length&&7==jz(dG(this.a,0),117).e)a=jz(dG(this.a,1),117).fm(t)+"??";else{for(iD(r=new kx,jz(dG(this.a,0),117).fm(t)),i=1;i<this.a.a.c.length;i++)r.a+="|",iD(r,jz(dG(this.a,i),117).fm(t));a=r.a}return a},bY(rte,"RegEx/Token/UnionToken",465),fIt(518,1,{592:1},V_),kGt.Ib=function(){return this.a.b},bY(wte,"XMLTypeUtil/PatternMatcherImpl",518),fIt(1622,1381,{},Pu),bY(wte,"XMLTypeValidator",1622),fIt(264,1,bZt,cq),kGt.Jc=function(t){t6(this,t)},kGt.Kc=function(){return(this.b-this.a)*this.c<0?RMe:new qO(this)},kGt.a=0,kGt.b=0,kGt.c=0,bY(Rte,"ExclusiveRange",264),fIt(1068,1,aZt,Fu),kGt.Rb=function(t){jz(t,19),uL()},kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return H_()},kGt.Ub=function(){return U_()},kGt.Wb=function(t){jz(t,19),hL()},kGt.Ob=function(){return!1},kGt.Sb=function(){return!1},kGt.Tb=function(){return-1},kGt.Vb=function(){return-1},kGt.Qb=function(){throw $m(new Qw(Ete))},bY(Rte,"ExclusiveRange/1",1068),fIt(254,1,aZt,qO),kGt.Rb=function(t){jz(t,19),dL()},kGt.Nb=function(t){lW(this,t)},kGt.Pb=function(){return jut(this)},kGt.Ub=function(){return T8(this)},kGt.Wb=function(t){jz(t,19),fL()},kGt.Ob=function(){return this.c.c<0?this.a>=this.c.b:this.a<=this.c.b},kGt.Sb=function(){return this.b>0},kGt.Tb=function(){return this.b},kGt.Vb=function(){return this.b-1},kGt.Qb=function(){throw $m(new Qw(Ete))},kGt.a=0,kGt.b=0,bY(Rte,"ExclusiveRange/RangeIterator",254);var SMe=NG(C8t,"C"),TMe=NG(A8t,"I"),AMe=NG(IGt,"Z"),DMe=NG(D8t,"J"),IMe=NG(E8t,"B"),LMe=NG(S8t,"D"),OMe=NG(T8t,"F"),MMe=NG(I8t,"S"),NMe=dU("org.eclipse.elk.core.labels","ILabelManager"),BMe=dU($7t,"DiagnosticChain"),PMe=dU(u9t,"ResourceSet"),FMe=bY($7t,"InvocationTargetException",null),jMe=(Mx(),l6),$Me=$Me=l_t;Jnt(Gm),crt("permProps",[[[Cte,Ste],[Tte,"gecko1_8"]],[[Cte,Ste],[Tte,"ie10"]],[[Cte,Ste],[Tte,"ie8"]],[[Cte,Ste],[Tte,"ie9"]],[[Cte,Ste],[Tte,"safari"]]]),$Me(null,"elk",null)}).call(this)}).call(this,typeof a<"u"?a:typeof self<"u"?self:typeof window<"u"?window:{})},{}],3:[function(t,e,n){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var o=function(e){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,n);var r=Object.assign({},e),o=!1;try{t.resolve("web-worker"),o=!0}catch{}if(e.workerUrl)if(o){var s=t("web-worker");r.workerFactory=function(t){return new s(t)}}else console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version.");if(!r.workerFactory){var c=t("./elk-worker.min.js").Worker;r.workerFactory=function(t){return new c(t)}}return a(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,r))}return r(n,e),n}(t("./elk-api.js").default);Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports=o,o.default=o},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(t,e,n){e.exports=Worker},{}]},{},[3])(3)},t.exports=n()}({get exports(){return DU},set exports(t){DU=t}});const IU=new(r(DU)),LU={},OU={};let MU={};const NU=function(t,e,n,i,a,r,o){const s=n.select(`[id="${e}"]`),c=s.insert("g").attr("class","nodes");return Object.keys(t).forEach((function(e){const n=t[e];let o="default";n.classes.length>0&&(o=n.classes.join(" "));const l=em(n.styles);let u,d=void 0!==n.text?n.text:n.id;const h={width:0,height:0};if(Xd(Ry().flowchart.htmlLabels)){const t={label:d.replace(/fa[blrs]?:fa-[\w-]+/g,(t=>`<i class='${t.replace(":"," ")}'></i>`))};u=mN(s,t).node();const e=u.getBBox();h.width=e.width,h.height=e.height,h.labelNode=u,u.parentNode.removeChild(u)}else{const t=i.createElementNS("http://www.w3.org/2000/svg","text");t.setAttribute("style",l.labelStyle.replace("color:","fill:"));const e=d.split(Qd.lineBreakRegex);for(const a of e){const e=i.createElementNS("http://www.w3.org/2000/svg","tspan");e.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),e.setAttribute("dy","1em"),e.setAttribute("x","1"),e.textContent=a,t.appendChild(e)}u=t;const n=u.getBBox();h.width=n.width,h.height=n.height,h.labelNode=u}const f=[{id:n.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:n.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:n.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:n.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let g=0,p="",b={};switch(n.type){case"round":g=5,p="rect";break;case"square":case"group":default:p="rect";break;case"diamond":p="question",b={portConstraints:"FIXED_SIDE"};break;case"hexagon":p="hexagon";break;case"odd":case"odd_right":p="rect_left_inv_arrow";break;case"lean_right":p="lean_right";break;case"lean_left":p="lean_left";break;case"trapezoid":p="trapezoid";break;case"inv_trapezoid":p="inv_trapezoid";break;case"circle":p="circle";break;case"ellipse":p="ellipse";break;case"stadium":p="stadium";break;case"subroutine":p="subroutine";break;case"cylinder":p="cylinder";break;case"doublecircle":p="doublecircle"}const m={labelStyle:l.labelStyle,shape:p,labelText:d,rx:g,ry:g,class:o,style:l.style,id:n.id,link:n.link,linkTarget:n.linkTarget,tooltip:a.db.getTooltip(n.id)||"",domId:a.db.lookUpDomId(n.id),haveCallback:n.haveCallback,width:"group"===n.type?500:void 0,dir:n.dir,type:n.type,props:n.props,padding:Ry().flowchart.padding};let y,v;"group"!==m.type&&(v=UL(c,m,n.dir),y=v.node().getBBox());const w={id:n.id,ports:"diamond"===n.type?f:[],layoutOptions:b,labelText:d,labelData:h,domId:a.db.lookUpDomId(n.id),width:null==y?void 0:y.width,height:null==y?void 0:y.height,type:n.type,el:v,parent:r.parentById[n.id]};MU[m.id]=w})),o},BU=(t,e,n)=>{const i={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return i.TD=i.TB,d.info("abc88",n,e,t),i[n][e][t]},PU=(t,e,n)=>{if(d.info("getNextPort abc88",{node:t,edgeDirection:e,graphDirection:n}),!LU[t])switch(n){case"TB":case"TD":LU[t]={inPosition:"north",outPosition:"south"};break;case"BT":LU[t]={inPosition:"south",outPosition:"north"};break;case"RL":LU[t]={inPosition:"east",outPosition:"west"};break;case"LR":LU[t]={inPosition:"west",outPosition:"east"}}const i="in"===e?LU[t].inPosition:LU[t].outPosition;return"in"===e?LU[t].inPosition=BU(LU[t].inPosition,e,n):LU[t].outPosition=BU(LU[t].outPosition,e,n),i},FU=(t,e)=>{let n=t.start,i=t.end;const a=MU[n],r=MU[i];return a&&r?("diamond"===a.type&&(n=`${n}-${PU(n,"out",e)}`),"diamond"===r.type&&(i=`${i}-${PU(i,"in",e)}`),{source:n,target:i}):{source:n,target:i}},jU=function(t,e,n,i){d.info("abc78 edges = ",t);const a=i.insert("g").attr("class","edgeLabels");let r,o,s={},c=e.db.getDirection();if(void 0!==t.defaultStyle){const e=em(t.defaultStyle);r=e.style,o=e.labelStyle}return t.forEach((function(e){var i="L-"+e.start+"-"+e.end;void 0===s[i]?(s[i]=0,d.info("abc78 new entry",i,s[i])):(s[i]++,d.info("abc78 new entry",i,s[i]));let l=i+"-"+s[i];d.info("abc78 new link id to be used is",i,l,s[i]);var u="LS-"+e.start,h="LE-"+e.end;const f={style:"",labelStyle:""};switch(f.minlen=e.length||1,"arrow_open"===e.type?f.arrowhead="none":f.arrowhead="normal",f.arrowTypeStart="arrow_open",f.arrowTypeEnd="arrow_open",e.type){case"double_arrow_cross":f.arrowTypeStart="arrow_cross";case"arrow_cross":f.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":f.arrowTypeStart="arrow_point";case"arrow_point":f.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":f.arrowTypeStart="arrow_circle";case"arrow_circle":f.arrowTypeEnd="arrow_circle"}let g="",p="";switch(e.stroke){case"normal":g="fill:none;",void 0!==r&&(g=r),void 0!==o&&(p=o),f.thickness="normal",f.pattern="solid";break;case"dotted":f.thickness="normal",f.pattern="dotted",f.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":f.thickness="thick",f.pattern="solid",f.style="stroke-width: 3.5px;fill:none;"}if(void 0!==e.style){const t=em(e.style);g=t.style,p=t.labelStyle}f.style=f.style+=g,f.labelStyle=f.labelStyle+=p,void 0!==e.interpolate?f.curve=Yb(e.interpolate,Pl):void 0!==t.defaultInterpolate?f.curve=Yb(t.defaultInterpolate,Pl):f.curve=Yb(OU.curve,Pl),void 0===e.text?void 0!==e.style&&(f.arrowheadStyle="fill: #333"):(f.arrowheadStyle="fill: #333",f.labelpos="c"),f.labelType="text",f.label=e.text.replace(Qd.lineBreakRegex,"\n"),void 0===e.style&&(f.style=f.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),f.labelStyle=f.labelStyle.replace("color:","fill:"),f.id=l,f.classes="flowchart-link "+u+" "+h;const b=tO(a,f),{source:m,target:y}=FU(e,c);d.debug("abc78 source and target",m,y),n.edges.push({id:"e"+e.start+e.end,sources:[m],targets:[y],labelEl:b,labels:[{width:f.width,height:f.height,orgWidth:f.width,orgHeight:f.height,text:f.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:f})})),n},$U=function(t,e,n,i){let a="";switch(i&&(a=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,a=a.replace(/\(/g,"\\("),a=a.replace(/\)/g,"\\)")),e.arrowTypeStart){case"arrow_cross":t.attr("marker-start","url("+a+"#"+n+"-crossStart)");break;case"arrow_point":t.attr("marker-start","url("+a+"#"+n+"-pointStart)");break;case"arrow_barb":t.attr("marker-start","url("+a+"#"+n+"-barbStart)");break;case"arrow_circle":t.attr("marker-start","url("+a+"#"+n+"-circleStart)");break;case"aggregation":t.attr("marker-start","url("+a+"#"+n+"-aggregationStart)");break;case"extension":t.attr("marker-start","url("+a+"#"+n+"-extensionStart)");break;case"composition":t.attr("marker-start","url("+a+"#"+n+"-compositionStart)");break;case"dependency":t.attr("marker-start","url("+a+"#"+n+"-dependencyStart)");break;case"lollipop":t.attr("marker-start","url("+a+"#"+n+"-lollipopStart)")}switch(e.arrowTypeEnd){case"arrow_cross":t.attr("marker-end","url("+a+"#"+n+"-crossEnd)");break;case"arrow_point":t.attr("marker-end","url("+a+"#"+n+"-pointEnd)");break;case"arrow_barb":t.attr("marker-end","url("+a+"#"+n+"-barbEnd)");break;case"arrow_circle":t.attr("marker-end","url("+a+"#"+n+"-circleEnd)");break;case"aggregation":t.attr("marker-end","url("+a+"#"+n+"-aggregationEnd)");break;case"extension":t.attr("marker-end","url("+a+"#"+n+"-extensionEnd)");break;case"composition":t.attr("marker-end","url("+a+"#"+n+"-compositionEnd)");break;case"dependency":t.attr("marker-end","url("+a+"#"+n+"-dependencyEnd)");break;case"lollipop":t.attr("marker-end","url("+a+"#"+n+"-lollipopEnd)")}},zU=function(t){const e={parentById:{},childrenById:{}},n=t.getSubGraphs();return d.info("Subgraphs - ",n),n.forEach((function(t){t.nodes.forEach((function(n){e.parentById[n]=t.id,void 0===e.childrenById[t.id]&&(e.childrenById[t.id]=[]),e.childrenById[t.id].push(n)}))})),n.forEach((function(t){t.id,void 0!==e.parentById[t.id]&&e.parentById[t.id]})),e},HU=function(t,e,n){const i=TU(t,e,n);if(void 0===i||"root"===i)return{x:0,y:0};const a=MU[i].offset;return{x:a.posX,y:a.posY}},UU=function(t,e,n,i,a){const r=HU(e.sources[0],e.targets[0],a),o=e.sections[0].startPoint,s=e.sections[0].endPoint,c=(e.sections[0].bendPoints?e.sections[0].bendPoints:[]).map((t=>[t.x+r.x,t.y+r.y])),l=[[o.x+r.x,o.y+r.y],...c,[s.x+r.x,s.y+r.y]],u=$l().curve(Pl),d=t.insert("path").attr("d",u(l)).attr("class","path").attr("fill","none"),h=t.insert("g").attr("class","edgeLabel"),f=un(h.node().appendChild(e.labelEl)),g=f.node().firstChild.getBoundingClientRect();f.attr("width",g.width),f.attr("height",g.height),h.attr("transform",`translate(${e.labels[0].x+r.x}, ${e.labels[0].y+r.y})`),$U(d,n,i.type,i.arrowMarkerAbsolute)},VU=(t,e)=>{t.forEach((t=>{t.children||(t.children=[]);const n=e.childrenById[t.id];n&&n.forEach((e=>{t.children.push(MU[e])})),VU(t.children,e)}))},qU=async function(t,e,n,i){var a;i.db.clear(),MU={},i.db.setGen("gen-2"),i.parser.parse(t);const r=un("body").append("div").attr("style","height:400px").attr("id","cy");let o={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(d.info("Drawing flowchart using v3 renderer",IU),i.db.getDirection()){case"BT":o.layoutOptions["elk.direction"]="UP";break;case"TB":o.layoutOptions["elk.direction"]="DOWN";break;case"LR":o.layoutOptions["elk.direction"]="RIGHT";break;case"RL":o.layoutOptions["elk.direction"]="LEFT"}const{securityLevel:s,flowchart:c}=Ry();let l;"sandbox"===s&&(l=un("#i"+e));const u=un("sandbox"===s?l.nodes()[0].contentDocument.body:"body"),h="sandbox"===s?l.nodes()[0].contentDocument:document,f=u.select(`[id="${e}"]`);lL(f,["point","circle","cross"],i.type,i.arrowMarkerAbsolute);const g=i.db.getVertices();let p;const b=i.db.getSubGraphs();d.info("Subgraphs - ",b);for(let d=b.length-1;d>=0;d--)p=b[d],i.db.addVertex(p.id,p.title,"group",void 0,p.classes,p.dir);const m=f.insert("g").attr("class","subgraphs"),y=zU(i.db);o=NU(g,e,u,h,i,y,o);const v=f.insert("g").attr("class","edges edgePath"),w=i.db.getEdges();o=jU(w,i,o,f),Object.keys(MU).forEach((t=>{const e=MU[t];e.parent||o.children.push(e),void 0!==y.childrenById[t]&&(e.labels=[{text:e.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:e.labelData.width,height:e.labelData.height}],delete e.x,delete e.y,delete e.width,delete e.height)})),VU(o.children,y),d.info("after layout",JSON.stringify(o,null,2));const x=await IU.layout(o);WU(0,0,x.children,f,m,i,0),d.info("after layout",x),null==(a=x.edges)||a.map((t=>{UU(v,t,t.edgeData,i,y)})),Oy({},f,c.diagramPadding,c.useMaxWidth),r.remove()},WU=(t,e,n,i,a,r,o)=>{n.forEach((function(n){if(n)if(MU[n.id].offset={posX:n.x+t,posY:n.y+e,x:t,y:e,depth:o,width:n.width,height:n.height},"group"===n.type){const i=a.insert("g").attr("class","subgraph");i.insert("rect").attr("class","subgraph subgraph-lvl-"+o%5+" node").attr("x",n.x+t).attr("y",n.y+e).attr("width",n.width).attr("height",n.height);const r=i.insert("g").attr("class","label");r.attr("transform",`translate(${n.labels[0].x+t+n.x}, ${n.labels[0].y+e+n.y})`),r.node().appendChild(n.labelData.labelNode),d.info("Id (UGH)= ",n.type,n.labels)}else d.info("Id (UGH)= ",n.id),n.el.attr("transform",`translate(${n.x+t+n.width/2}, ${n.y+e+n.height/2})`)})),n.forEach((function(n){n&&"group"===n.type&&WU(t+n.x,e+n.y,n.children,i,a,r,o+1)}))},YU={getClasses:function(t,e){d.info("Extracting classes"),e.db.clear("ver-2");try{return e.parse(t),e.db.getClasses()}catch{return{}}},draw:qU},GU=t=>{let e="";for(let n=0;n<5;n++)e+=`\n .subgraph-lvl-${n} {\n fill: ${t[`surface${n}`]};\n stroke: ${t[`surfacePeer${n}`]};\n }\n `;return e},ZU=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:aN,renderer:YU,parser:QO,styles:t=>`.label {\n font-family: ${t.fontFamily};\n color: ${t.nodeTextColor||t.textColor};\n }\n .cluster-label text {\n fill: ${t.titleColor};\n }\n .cluster-label span {\n color: ${t.titleColor};\n }\n\n .label text,span {\n fill: ${t.nodeTextColor||t.textColor};\n color: ${t.nodeTextColor||t.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${t.mainBkg};\n stroke: ${t.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${t.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${t.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${t.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${t.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${t.edgeLabelBackground};\n fill: ${t.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${t.clusterBkg};\n stroke: ${t.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${t.titleColor};\n }\n\n .cluster span {\n color: ${t.titleColor};\n }\n /* .cluster div {\n color: ${t.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${t.fontFamily};\n font-size: 12px;\n background: ${t.tertiaryColor};\n border: 1px solid ${t.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${t.textColor};\n }\n .subgraph {\n stroke-width:2;\n rx:3;\n }\n // .subgraph-lvl-1 {\n // fill:#ccc;\n // // stroke:black;\n // }\n ${GU(t)}\n`}},Symbol.toStringTag,{value:"Module"}));var KU=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,2],n=[1,5],i=[6,9,11,17,18,20,22,23,26,27,28],a=[1,15],r=[1,16],o=[1,17],s=[1,18],c=[1,19],l=[1,23],u=[1,24],d=[1,27],h=[4,6,9,11,17,18,20,22,23,26,27,28],f={trace:function(){},yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,directive:7,line:8,SPACE:9,statement:10,NEWLINE:11,openDirective:12,typeDirective:13,closeDirective:14,":":15,argDirective:16,title:17,acc_title:18,acc_title_value:19,acc_descr:20,acc_descr_value:21,acc_descr_multiline_value:22,section:23,period_statement:24,event_statement:25,period:26,event:27,open_directive:28,type_directive:29,arg_directive:30,close_directive:31,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",9:"SPACE",11:"NEWLINE",15:":",17:"title",18:"acc_title",19:"acc_title_value",20:"acc_descr",21:"acc_descr_value",22:"acc_descr_multiline_value",23:"section",26:"period",27:"event",28:"open_directive",29:"type_directive",30:"arg_directive",31:"close_directive"},productions_:[0,[3,3],[3,2],[5,0],[5,2],[8,2],[8,1],[8,1],[8,1],[7,4],[7,6],[10,1],[10,2],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[24,1],[25,1],[12,1],[13,1],[16,1],[14,1]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 1:return r[s-1];case 3:case 7:case 8:this.$=[];break;case 4:r[s-1].push(r[s]),this.$=r[s-1];break;case 5:case 6:this.$=r[s];break;case 11:i.getCommonDb().setDiagramTitle(r[s].substr(6)),this.$=r[s].substr(6);break;case 12:this.$=r[s].trim(),i.getCommonDb().setAccTitle(this.$);break;case 13:case 14:this.$=r[s].trim(),i.getCommonDb().setAccDescription(this.$);break;case 15:i.addSection(r[s].substr(8)),this.$=r[s].substr(8);break;case 19:i.addTask(r[s],0,""),this.$=r[s];break;case 20:i.addEvent(r[s].substr(2)),this.$=r[s];break;case 21:i.parseDirective("%%{","open_directive");break;case 22:i.parseDirective(r[s],"type_directive");break;case 23:r[s]=r[s].trim().replace(/'/g,'"'),i.parseDirective(r[s],"arg_directive");break;case 24:i.parseDirective("}%%","close_directive","timeline")}},table:[{3:1,4:e,7:3,12:4,28:n},{1:[3]},t(i,[2,3],{5:6}),{3:7,4:e,7:3,12:4,28:n},{13:8,29:[1,9]},{29:[2,21]},{6:[1,10],7:22,8:11,9:[1,12],10:13,11:[1,14],12:4,17:a,18:r,20:o,22:s,23:c,24:20,25:21,26:l,27:u,28:n},{1:[2,2]},{14:25,15:[1,26],31:d},t([15,31],[2,22]),t(i,[2,8],{1:[2,1]}),t(i,[2,4]),{7:22,10:28,12:4,17:a,18:r,20:o,22:s,23:c,24:20,25:21,26:l,27:u,28:n},t(i,[2,6]),t(i,[2,7]),t(i,[2,11]),{19:[1,29]},{21:[1,30]},t(i,[2,14]),t(i,[2,15]),t(i,[2,16]),t(i,[2,17]),t(i,[2,18]),t(i,[2,19]),t(i,[2,20]),{11:[1,31]},{16:32,30:[1,33]},{11:[2,24]},t(i,[2,5]),t(i,[2,12]),t(i,[2,13]),t(h,[2,9]),{14:34,31:d},{31:[2,23]},{11:[1,35]},t(h,[2,10])],defaultActions:{5:[2,21],7:[2,2],27:[2,24],33:[2,23]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},g={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:return this.begin("open_directive"),28;case 1:return this.begin("type_directive"),29;case 2:return this.popState(),this.begin("arg_directive"),15;case 3:return this.popState(),this.popState(),31;case 4:return 30;case 5:case 6:case 8:case 9:break;case 7:return 11;case 10:return 4;case 11:return 17;case 12:return this.begin("acc_title"),18;case 13:return this.popState(),"acc_title_value";case 14:return this.begin("acc_descr"),20;case 15:return this.popState(),"acc_descr_value";case 16:this.begin("acc_descr_multiline");break;case 17:this.popState();break;case 18:return"acc_descr_multiline_value";case 19:return 23;case 20:return 27;case 21:return 26;case 22:return 6;case 23:return"INVALID"}},rules:[/^(?:%%\{)/i,/^(?:((?:(?!\}%%)[^:.])*))/i,/^(?::)/i,/^(?:\}%%)/i,/^(?:((?:(?!\}%%).|\n)*))/i,/^(?:%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:timeline\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:section\s[^#:\n;]+)/i,/^(?::\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{open_directive:{rules:[1],inclusive:!1},type_directive:{rules:[2,3],inclusive:!1},arg_directive:{rules:[3,4],inclusive:!1},acc_descr_multiline:{rules:[17,18],inclusive:!1},acc_descr:{rules:[15],inclusive:!1},acc_title:{rules:[13],inclusive:!1},INITIAL:{rules:[0,5,6,7,8,9,10,11,12,14,16,19,20,21,22,23],inclusive:!0}}};function p(){this.yy={}}return f.lexer=g,p.prototype=f,f.Parser=p,new p}();KU.parser=KU;const XU=KU;let JU="",QU=0;const tV=[],eV=[],nV=[],iV=()=>ov,aV=(t,e,n)=>{cv(globalThis,t,e,n)},rV=function(){tV.length=0,eV.length=0,JU="",nV.length=0,Qy()},oV=function(t){JU=t,tV.push(t)},sV=function(){return tV},cV=function(){let t=hV();const e=100;let n=0;for(;!t&&n<e;)t=hV(),n++;return eV.push(...nV),eV},lV=function(t,e,n){const i={id:QU++,section:JU,type:JU,task:t,score:e||0,events:n?[n]:[]};nV.push(i)},uV=function(t){nV.find((t=>t.id===QU-1)).events.push(t)},dV=function(t){const e={section:JU,type:JU,description:t,task:t,classes:[]};eV.push(e)},hV=function(){const t=function(t){return nV[t].processed};let e=!0;for(const[n,i]of nV.entries())t(n),e=e&&i.processed;return e},fV=Object.freeze(Object.defineProperty({__proto__:null,addEvent:uV,addSection:oV,addTask:lV,addTaskOrg:dV,clear:rV,default:{clear:rV,getCommonDb:iV,addSection:oV,getSections:sV,getTasks:cV,addTask:lV,addTaskOrg:dV,addEvent:uV,parseDirective:aV},getCommonDb:iV,getSections:sV,getTasks:cV,parseDirective:aV},Symbol.toStringTag,{value:"Module"})),gV=12,pV=function(t,e){const n=t.append("rect");return n.attr("x",e.x),n.attr("y",e.y),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("width",e.width),n.attr("height",e.height),n.attr("rx",e.rx),n.attr("ry",e.ry),void 0!==e.class&&n.attr("class",e.class),n},bV=function(t,e){const n=t.append("circle").attr("cx",e.cx).attr("cy",e.cy).attr("class","face").attr("r",15).attr("stroke-width",2).attr("overflow","visible"),i=t.append("g");function a(t){const n=Ml().startAngle(Math.PI/2).endAngle(Math.PI/2*3).innerRadius(7.5).outerRadius(6.8181818181818175);t.append("path").attr("class","mouth").attr("d",n).attr("transform","translate("+e.cx+","+(e.cy+2)+")")}function r(t){const n=Ml().startAngle(3*Math.PI/2).endAngle(Math.PI/2*5).innerRadius(7.5).outerRadius(6.8181818181818175);t.append("path").attr("class","mouth").attr("d",n).attr("transform","translate("+e.cx+","+(e.cy+7)+")")}function o(t){t.append("line").attr("class","mouth").attr("stroke",2).attr("x1",e.cx-5).attr("y1",e.cy+7).attr("x2",e.cx+5).attr("y2",e.cy+7).attr("class","mouth").attr("stroke-width","1px").attr("stroke","#666")}return i.append("circle").attr("cx",e.cx-5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),i.append("circle").attr("cx",e.cx+5).attr("cy",e.cy-5).attr("r",1.5).attr("stroke-width",2).attr("fill","#666").attr("stroke","#666"),e.score>3?a(i):e.score<3?r(i):o(i),n},mV=function(t,e){const n=t.append("circle");return n.attr("cx",e.cx),n.attr("cy",e.cy),n.attr("class","actor-"+e.pos),n.attr("fill",e.fill),n.attr("stroke",e.stroke),n.attr("r",e.r),void 0!==n.class&&n.attr("class",n.class),void 0!==e.title&&n.append("title").text(e.title),n},yV=function(t,e){const n=e.text.replace(/<br\s*\/?>/gi," "),i=t.append("text");i.attr("x",e.x),i.attr("y",e.y),i.attr("class","legend"),i.style("text-anchor",e.anchor),void 0!==e.class&&i.attr("class",e.class);const a=i.append("tspan");return a.attr("x",e.x+2*e.textMargin),a.text(n),i},vV=function(t,e){function n(t,e,n,i,a){return t+","+e+" "+(t+n)+","+e+" "+(t+n)+","+(e+i-a)+" "+(t+n-1.2*a)+","+(e+i)+" "+t+","+(e+i)}const i=t.append("polygon");i.attr("points",n(e.x,e.y,50,20,7)),i.attr("class","labelBox"),e.y=e.y+e.labelMargin,e.x=e.x+.5*e.labelMargin,yV(t,e)},wV=function(t,e,n){const i=t.append("g"),a=EV();a.x=e.x,a.y=e.y,a.fill=e.fill,a.width=n.width,a.height=n.height,a.class="journey-section section-type-"+e.num,a.rx=3,a.ry=3,pV(i,a),CV(n)(e.text,i,a.x,a.y,a.width,a.height,{class:"journey-section section-type-"+e.num},n,e.colour)};let xV=-1;const RV=function(t,e,n){const i=e.x+n.width/2,a=t.append("g");xV++;const r=450;a.append("line").attr("id","task"+xV).attr("x1",i).attr("y1",e.y).attr("x2",i).attr("y2",r).attr("class","task-line").attr("stroke-width","1px").attr("stroke-dasharray","4 2").attr("stroke","#666"),bV(a,{cx:i,cy:300+30*(5-e.score),score:e.score});const o=EV();o.x=e.x,o.y=e.y,o.fill=e.fill,o.width=n.width,o.height=n.height,o.class="task task-type-"+e.num,o.rx=3,o.ry=3,pV(a,o),e.x,CV(n)(e.task,a,o.x,o.y,o.width,o.height,{class:"task"},n,e.colour)},_V=function(t,e){pV(t,{x:e.startx,y:e.starty,width:e.stopx-e.startx,height:e.stopy-e.starty,fill:e.fill,class:"rect"}).lower()},kV=function(){return{x:0,y:0,fill:void 0,"text-anchor":"start",width:100,height:100,textMargin:0,rx:0,ry:0}},EV=function(){return{x:0,y:0,width:100,anchor:"start",height:100,rx:0,ry:0}},CV=function(){function t(t,e,n,a,r,o,s,c){i(e.append("text").attr("x",n+r/2).attr("y",a+o/2+5).style("font-color",c).style("text-anchor","middle").text(t),s)}function e(t,e,n,a,r,o,s,c,l){const{taskFontSize:u,taskFontFamily:d}=c,h=t.split(/<br\s*\/?>/gi);for(let f=0;f<h.length;f++){const t=f*u-u*(h.length-1)/2,c=e.append("text").attr("x",n+r/2).attr("y",a).attr("fill",l).style("text-anchor","middle").style("font-size",u).style("font-family",d);c.append("tspan").attr("x",n+r/2).attr("dy",t).text(h[f]),c.attr("y",a+o/2).attr("dominant-baseline","central").attr("alignment-baseline","central"),i(c,s)}}function n(t,n,a,r,o,s,c,l){const u=n.append("switch"),d=u.append("foreignObject").attr("x",a).attr("y",r).attr("width",o).attr("height",s).attr("position","fixed").append("xhtml:div").style("display","table").style("height","100%").style("width","100%");d.append("div").attr("class","label").style("display","table-cell").style("text-align","center").style("vertical-align","middle").text(t),e(t,u,a,r,o,s,c,l),i(d,c)}function i(t,e){for(const n in e)n in e&&t.attr(n,e[n])}return function(i){return"fo"===i.textPlacement?n:"old"===i.textPlacement?t:e}}();function SV(t,e){t.each((function(){var t,n=un(this),i=n.text().split(/(\s+|<br>)/).reverse(),a=[],r=1.1,o=n.attr("y"),s=parseFloat(n.attr("dy")),c=n.text(null).append("tspan").attr("x",0).attr("y",o).attr("dy",s+"em");for(let l=0;l<i.length;l++)t=i[i.length-1-l],a.push(t),c.text(a.join(" ").trim()),(c.node().getComputedTextLength()>e||"<br>"===t)&&(a.pop(),c.text(a.join(" ").trim()),a="<br>"===t?[""]:[t],c=n.append("tspan").attr("x",0).attr("y",o).attr("dy",r+"em").text(t))}))}const TV=function(t,e,n,i){const a=n%gV-1,r=t.append("g");e.section=a,r.attr("class",(e.class?e.class+" ":"")+"timeline-node section-"+a);const o=r.append("g"),s=r.append("g"),c=s.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(SV,e.width).node().getBBox(),l=i.fontSize&&i.fontSize.replace?i.fontSize.replace("px",""):i.fontSize;return e.height=c.height+1.1*l*.5+e.padding,e.height=Math.max(e.height,e.maxHeight),e.width=e.width+2*e.padding,s.attr("transform","translate("+e.width/2+", "+e.padding/2+")"),AV(o,e,a),e},AV=function(t,e,n){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+e.type).attr("d",`M0 ${e.height-5} v${10-e.height} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},DV={drawRect:pV,drawCircle:mV,drawSection:wV,drawText:yV,drawLabel:vV,drawTask:RV,drawBackgroundRect:_V,getTextObj:kV,getNoteRect:EV,initGraphics:function(t){t.append("defs").append("marker").attr("id","arrowhead").attr("refX",5).attr("refY",2).attr("markerWidth",6).attr("markerHeight",4).attr("orient","auto").append("path").attr("d","M 0,0 V 4 L6,2 Z")},drawNode:TV,getVirtualNodeHeight:function(t,e,n){const i=t.append("g"),a=i.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(SV,e.width).node().getBBox(),r=n.fontSize&&n.fontSize.replace?n.fontSize.replace("px",""):n.fontSize;return i.remove(),a.height+1.1*r*.5+e.padding}},IV=function(t,e,n,i){const a=Ry(),r=a.leftMargin?a.leftMargin:50;i.db.clear(),i.parser.parse(t+"\n"),d.debug("timeline",i.db);const o=a.securityLevel;let s;"sandbox"===o&&(s=un("#i"+e));const c=un("sandbox"===o?s.nodes()[0].contentDocument.body:"body").select("#"+e);c.append("g");const l=i.db.getTasks(),u=i.db.getCommonDb().getDiagramTitle();d.debug("task",l),DV.initGraphics(c);const h=i.db.getSections();d.debug("sections",h);let f=0,g=0,p=0,b=0,m=50+r,y=50;b=50;let v=0,w=!0;h.forEach((function(t){const e={number:v,descr:t,section:v,width:150,padding:20,maxHeight:f},n=DV.getVirtualNodeHeight(c,e,a);d.debug("sectionHeight before draw",n),f=Math.max(f,n+20)}));let x=0,R=0;d.debug("tasks.length",l.length);for(const[k,E]of l.entries()){const t={number:k,descr:E,section:E.section,width:150,padding:20,maxHeight:g},e=DV.getVirtualNodeHeight(c,t,a);d.debug("taskHeight before draw",e),g=Math.max(g,e+20),x=Math.max(x,E.events.length);let n=0;for(let i=0;i<E.events.length;i++){const t={descr:E.events[i],section:E.section,number:E.section,width:150,padding:20,maxHeight:50};n+=DV.getVirtualNodeHeight(c,t,a)}R=Math.max(R,n)}d.debug("maxSectionHeight before draw",f),d.debug("maxTaskHeight before draw",g),h&&h.length>0?h.forEach((t=>{const e={number:v,descr:t,section:v,width:150,padding:20,maxHeight:f};d.debug("sectionNode",e);const n=c.append("g"),i=DV.drawNode(n,e,v,a);d.debug("sectionNode output",i),n.attr("transform",`translate(${m}, ${b})`),y+=f+50;const r=l.filter((e=>e.section===t));r.length>0&&LV(c,r,v,m,y,g,a,x,R,f,!1),m+=200*Math.max(r.length,1),y=b,v++})):(w=!1,LV(c,l,v,m,y,g,a,x,R,f,!0));const _=c.node().getBBox();d.debug("bounds",_),u&&c.append("text").text(u).attr("x",_.width/2-r).attr("font-size","4ex").attr("font-weight","bold").attr("y",20),p=w?f+g+150:g+100,c.append("g").attr("class","lineWrapper").append("line").attr("x1",r).attr("y1",p).attr("x2",_.width+3*r).attr("y2",p).attr("stroke-width",4).attr("stroke","black").attr("marker-end","url(#arrowhead)"),Oy(void 0,c,a.timeline.padding?a.timeline.padding:50,!!a.timeline.useMaxWidth&&a.timeline.useMaxWidth)},LV=function(t,e,n,i,a,r,o,s,c,l,u){for(const h of e){const e={descr:h.task,section:n,number:n,width:150,padding:20,maxHeight:r};d.debug("taskNode",e);const s=t.append("g").attr("class","taskWrapper"),f=DV.drawNode(s,e,n,o).height;if(d.debug("taskHeight after draw",f),s.attr("transform",`translate(${i}, ${a})`),r=Math.max(r,f),h.events){const e=t.append("g").attr("class","lineWrapper");let s=r;a+=100,s+=OV(t,h.events,n,i,a,o),a-=100,e.append("line").attr("x1",i+95).attr("y1",a+r).attr("x2",i+95).attr("y2",a+r+(u?r:l)+c+120).attr("stroke-width",2).attr("stroke","black").attr("marker-end","url(#arrowhead)").attr("stroke-dasharray","5,5")}i+=200,u&&!Ry().timeline.disableMulticolor&&n++}a-=10},OV=function(t,e,n,i,a,r){let o=0;const s=a;a+=100;for(const c of e){const e={descr:c,section:n,number:n,width:150,padding:20,maxHeight:50};d.debug("eventNode",e);const s=t.append("g").attr("class","eventWrapper"),l=DV.drawNode(s,e,n,r).height;o+=l,s.attr("transform",`translate(${i}, ${a})`),a=a+10+l}return a=s,o},MV={setConf:function(t){Object.keys(t).forEach((function(e){conf[e]=t[e]}))},draw:IV},NV=t=>{let e="";for(let n=0;n<t.THEME_COLOR_LIMIT;n++)t["lineColor"+n]=t["lineColor"+n]||t["cScaleInv"+n],xh(t["lineColor"+n])?t["lineColor"+n]=_h(t["lineColor"+n],20):t["lineColor"+n]=kh(t["lineColor"+n],20);for(let n=0;n<t.THEME_COLOR_LIMIT;n++){const i=""+(17-3*n);e+=`\n .section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} path {\n fill: ${t["cScale"+n]};\n }\n .section-${n-1} text {\n fill: ${t["cScaleLabel"+n]};\n }\n .node-icon-${n-1} {\n font-size: 40px;\n color: ${t["cScaleLabel"+n]};\n }\n .section-edge-${n-1}{\n stroke: ${t["cScale"+n]};\n }\n .edge-depth-${n-1}{\n stroke-width: ${i};\n }\n .section-${n-1} line {\n stroke: ${t["cScaleInv"+n]} ;\n stroke-width: 3;\n }\n\n .lineWrapper line{\n stroke: ${t["cScaleLabel"+n]} ;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `}return e},BV=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:fV,renderer:MV,parser:XU,styles:t=>`\n .edge {\n stroke-width: 3;\n }\n ${NV(t)}\n .section-root rect, .section-root path, .section-root circle {\n fill: ${t.git0};\n }\n .section-root text {\n fill: ${t.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n .eventWrapper {\n filter: brightness(120%);\n }\n`}},Symbol.toStringTag,{value:"Module"}));var PV=function(){var t=function(t,e,n,i){for(n=n||{},i=t.length;i--;n[t[i]]=e);return n},e=[1,4],n=[1,13],i=[1,12],a=[1,15],r=[1,16],o=[1,20],s=[1,19],c=[6,7,8],l=[1,26],u=[1,24],d=[1,25],h=[6,7,11],f=[1,6,13,15,16,19,22],g=[1,33],p=[1,34],b=[1,6,7,11,13,15,16,19,22],m={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(t,e,n,i,a,r,o){var s=r.length-1;switch(a){case 6:case 7:return i;case 8:i.getLogger().trace("Stop NL ");break;case 9:i.getLogger().trace("Stop EOF ");break;case 11:i.getLogger().trace("Stop NL2 ");break;case 12:i.getLogger().trace("Stop EOF2 ");break;case 15:i.getLogger().info("Node: ",r[s].id),i.addNode(r[s-1].length,r[s].id,r[s].descr,r[s].type);break;case 16:i.getLogger().trace("Icon: ",r[s]),i.decorateNode({icon:r[s]});break;case 17:case 21:i.decorateNode({class:r[s]});break;case 18:i.getLogger().trace("SPACELIST");break;case 19:i.getLogger().trace("Node: ",r[s].id),i.addNode(0,r[s].id,r[s].descr,r[s].type);break;case 20:i.decorateNode({icon:r[s]});break;case 25:i.getLogger().trace("node found ..",r[s-2]),this.$={id:r[s-1],descr:r[s-1],type:i.getType(r[s-2],r[s])};break;case 26:this.$={id:r[s],descr:r[s],type:i.nodeType.DEFAULT};break;case 27:i.getLogger().trace("node found ..",r[s-3]),this.$={id:r[s-3],descr:r[s-1],type:i.getType(r[s-2],r[s])}}},table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:n,7:[1,10],9:9,12:11,13:i,14:14,15:a,16:r,17:17,18:18,19:o,22:s},t(c,[2,3]),{1:[2,2]},t(c,[2,4]),t(c,[2,5]),{1:[2,6],6:n,12:21,13:i,14:14,15:a,16:r,17:17,18:18,19:o,22:s},{6:n,9:22,12:11,13:i,14:14,15:a,16:r,17:17,18:18,19:o,22:s},{6:l,7:u,10:23,11:d},t(h,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:o,22:s}),t(h,[2,18]),t(h,[2,19]),t(h,[2,20]),t(h,[2,21]),t(h,[2,23]),t(h,[2,24]),t(h,[2,26],{19:[1,30]}),{20:[1,31]},{6:l,7:u,10:32,11:d},{1:[2,7],6:n,12:21,13:i,14:14,15:a,16:r,17:17,18:18,19:o,22:s},t(f,[2,14],{7:g,11:p}),t(b,[2,8]),t(b,[2,9]),t(b,[2,10]),t(h,[2,15]),t(h,[2,16]),t(h,[2,17]),{20:[1,35]},{21:[1,36]},t(f,[2,13],{7:g,11:p}),t(b,[2,11]),t(b,[2,12]),{21:[1,37]},t(h,[2,25]),t(h,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(t,e){if(!e.recoverable){var n=new Error(t);throw n.hash=e,n}this.trace(t)},parse:function(t){var e=this,n=[0],i=[],a=[null],r=[],o=this.table,s="",c=0,l=0,u=2,d=1,h=r.slice.call(arguments,1),f=Object.create(this.lexer),g={yy:{}};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(g.yy[p]=this.yy[p]);f.setInput(t,g.yy),g.yy.lexer=f,g.yy.parser=this,typeof f.yylloc>"u"&&(f.yylloc={});var b=f.yylloc;r.push(b);var m=f.options&&f.options.ranges;function y(){var t;return"number"!=typeof(t=i.pop()||f.lex()||d)&&(t instanceof Array&&(t=(i=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var v,w,x,R,_,k,E,C,S={};;){if(w=n[n.length-1],this.defaultActions[w]?x=this.defaultActions[w]:((null===v||typeof v>"u")&&(v=y()),x=o[w]&&o[w][v]),typeof x>"u"||!x.length||!x[0]){var T="";for(_ in C=[],o[w])this.terminals_[_]&&_>u&&C.push("'"+this.terminals_[_]+"'");T=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[v]||v)+"'":"Parse error on line "+(c+1)+": Unexpected "+(v==d?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(T,{text:f.match,token:this.terminals_[v]||v,line:f.yylineno,loc:b,expected:C})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+w+", token: "+v);switch(x[0]){case 1:n.push(v),a.push(f.yytext),r.push(f.yylloc),n.push(x[1]),v=null,l=f.yyleng,s=f.yytext,c=f.yylineno,b=f.yylloc;break;case 2:if(k=this.productions_[x[1]][1],S.$=a[a.length-k],S._$={first_line:r[r.length-(k||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(k||1)].first_column,last_column:r[r.length-1].last_column},m&&(S._$.range=[r[r.length-(k||1)].range[0],r[r.length-1].range[1]]),typeof(R=this.performAction.apply(S,[s,l,c,g.yy,x[1],a,r].concat(h)))<"u")return R;k&&(n=n.slice(0,-1*k*2),a=a.slice(0,-1*k),r=r.slice(0,-1*k)),n.push(this.productions_[x[1]][0]),a.push(S.$),r.push(S._$),E=o[n[n.length-2]][n[n.length-1]],n.push(E);break;case 3:return!0}}return!0}},y={EOF:1,parseError:function(t,e){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,e)},setInput:function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var e=t.length,n=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var i=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var a=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===i.length?this.yylloc.first_column:0)+i[i.length-n.length].length-n[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[a[0],a[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var t=this.pastInput(),e=new Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},test_match:function(t,e){var n,i,a;if(this.options.backtrack_lexer&&(a={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(a.yylloc.range=this.yylloc.range.slice(0))),(i=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],n=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var r in a)this[r]=a[r];return!1}return!1},next:function(){if(this.done)return this.EOF;var t,e,n,i;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a=this._currentRules(),r=0;r<a.length;r++)if((n=this._input.match(this.rules[a[r]]))&&(!e||n[0].length>e[0].length)){if(e=n,i=r,this.options.backtrack_lexer){if(!1!==(t=this.test_match(n,a[r])))return t;if(this._backtrack){e=!1;continue}return!1}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,a[i]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(t,e,n,i){switch(n){case 0:t.getLogger().trace("Found comment",e.yytext);break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:case 23:this.popState();break;case 5:t.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return t.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:t.getLogger().trace("end icon"),this.popState();break;case 10:return t.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return t.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return t.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return t.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:case 15:case 16:case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:t.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 22:return t.getLogger().trace("description:",e.yytext),"NODE_DESCR";case 24:return this.popState(),t.getLogger().trace("node end ))"),"NODE_DEND";case 25:return this.popState(),t.getLogger().trace("node end )"),"NODE_DEND";case 26:return this.popState(),t.getLogger().trace("node end ...",e.yytext),"NODE_DEND";case 27:case 30:case 31:return this.popState(),t.getLogger().trace("node end (("),"NODE_DEND";case 28:case 29:return this.popState(),t.getLogger().trace("node end (-"),"NODE_DEND";case 32:case 33:return t.getLogger().trace("Long description:",e.yytext),20}},rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\-\)\{\}]+)/i,/^(?:$)/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR:{rules:[22,23],inclusive:!1},NODE:{rules:[21,24,25,26,27,28,29,30,31,32,33],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};function v(){this.yy={}}return m.lexer=y,v.prototype=m,m.Parser=v,new v}();PV.parser=PV;const FV=PV,jV=t=>Wd(t,Ry());let $V=[],zV=0,HV={};const UV=()=>{$V=[],zV=0,HV={}},VV=function(t){for(let e=$V.length-1;e>=0;e--)if($V[e].level<t)return $V[e];return null},qV=()=>$V.length>0?$V[0]:null,WV=(t,e,n,i)=>{d.info("addNode",t,e,n,i);const a=Ry(),r={id:zV++,nodeId:jV(e),level:t,descr:jV(n),type:i,children:[],width:Ry().mindmap.maxNodeWidth};switch(r.type){case YV.ROUNDED_RECT:case YV.RECT:case YV.HEXAGON:r.padding=2*a.mindmap.padding;break;default:r.padding=a.mindmap.padding}const o=VV(t);if(o)o.children.push(r),$V.push(r);else{if(0!==$V.length){let t=new Error('There can be only one root. No parent could be found for ("'+r.descr+'")');throw t.hash={text:"branch "+name,token:"branch "+name,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+name+'"']},t}$V.push(r)}},YV={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},GV=(t,e)=>{switch(d.debug("In get type",t,e),t){case"[":return YV.RECT;case"(":return")"===e?YV.ROUNDED_RECT:YV.CLOUD;case"((":return YV.CIRCLE;case")":return YV.CLOUD;case"))":return YV.BANG;case"{{":return YV.HEXAGON;default:return YV.DEFAULT}},ZV=(t,e)=>{HV[t]=e},KV=t=>{const e=$V[$V.length-1];t&&t.icon&&(e.icon=jV(t.icon)),t&&t.class&&(e.class=jV(t.class))},XV=t=>{switch(t){case YV.DEFAULT:return"no-border";case YV.RECT:return"rect";case YV.ROUNDED_RECT:return"rounded-rect";case YV.CIRCLE:return"circle";case YV.CLOUD:return"cloud";case YV.BANG:return"bang";case YV.HEXAGON:return"hexgon";default:return"no-border"}};let JV;const QV=t=>{JV=t},tq=()=>d,eq=t=>$V[t],nq=t=>HV[t],iq=Object.freeze(Object.defineProperty({__proto__:null,addNode:WV,clear:UV,decorateNode:KV,getElementById:nq,getLogger:tq,getMindmap:qV,getNodeById:eq,getType:GV,nodeType:YV,get parseError(){return JV},sanitizeText:jV,setElementForId:ZV,setErrorHandler:QV,type2Str:XV},Symbol.toStringTag,{value:"Module"})),aq=12;function rq(t,e){t.each((function(){var t,n=un(this),i=n.text().split(/(\s+|<br>)/).reverse(),a=[],r=1.1,o=n.attr("y"),s=parseFloat(n.attr("dy")),c=n.text(null).append("tspan").attr("x",0).attr("y",o).attr("dy",s+"em");for(let l=0;l<i.length;l++)t=i[i.length-1-l],a.push(t),c.text(a.join(" ").trim()),(c.node().getComputedTextLength()>e||"<br>"===t)&&(a.pop(),c.text(a.join(" ").trim()),a="<br>"===t?[""]:[t],c=n.append("tspan").attr("x",0).attr("y",o).attr("dy",r+"em").text(t))}))}const oq=function(t,e,n){t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("d",`M0 ${e.height-5} v${10-e.height} q0,-5 5,-5 h${e.width-10} q5,0 5,5 v${e.height-5} H0 Z`),t.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",e.height).attr("x2",e.width).attr("y2",e.height)},sq=function(t,e){t.append("rect").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("height",e.height).attr("width",e.width)},cq=function(t,e){const n=e.width,i=e.height,a=.15*n,r=.25*n,o=.35*n,s=.2*n;t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("d",`M0 0 a${a},${a} 0 0,1 ${.25*n},${-1*n*.1}\n a${o},${o} 1 0,1 ${.4*n},${-1*n*.1}\n a${r},${r} 1 0,1 ${.35*n},${1*n*.2}\n\n a${a},${a} 1 0,1 ${.15*n},${1*i*.35}\n a${s},${s} 1 0,1 ${-1*n*.15},${1*i*.65}\n\n a${r},${a} 1 0,1 ${-1*n*.25},${.15*n}\n a${o},${o} 1 0,1 ${-1*n*.5},0\n a${a},${a} 1 0,1 ${-1*n*.25},${-1*n*.15}\n\n a${a},${a} 1 0,1 ${-1*n*.1},${-1*i*.35}\n a${s},${s} 1 0,1 ${.1*n},${-1*i*.65}\n\n H0 V0 Z`)},lq=function(t,e){const n=e.width,i=e.height,a=.15*n;t.append("path").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("d",`M0 0 a${a},${a} 1 0,0 ${.25*n},${-1*i*.1}\n a${a},${a} 1 0,0 ${.25*n},0\n a${a},${a} 1 0,0 ${.25*n},0\n a${a},${a} 1 0,0 ${.25*n},${1*i*.1}\n\n a${a},${a} 1 0,0 ${.15*n},${1*i*.33}\n a${.8*a},${.8*a} 1 0,0 0,${1*i*.34}\n a${a},${a} 1 0,0 ${-1*n*.15},${1*i*.33}\n\n a${a},${a} 1 0,0 ${-1*n*.25},${.15*i}\n a${a},${a} 1 0,0 ${-1*n*.25},0\n a${a},${a} 1 0,0 ${-1*n*.25},0\n a${a},${a} 1 0,0 ${-1*n*.25},${-1*i*.15}\n\n a${a},${a} 1 0,0 ${-1*n*.1},${-1*i*.33}\n a${.8*a},${.8*a} 1 0,0 0,${-1*i*.34}\n a${a},${a} 1 0,0 ${.1*n},${-1*i*.33}\n\n H0 V0 Z`)},uq=function(t,e){t.append("circle").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("r",e.width/2)};function dq(t,e,n,i,a){return t.insert("polygon",":first-child").attr("points",i.map((function(t){return t.x+","+t.y})).join(" ")).attr("transform","translate("+(a.width-e)/2+", "+n+")")}const hq=function(t,e){const n=e.height,i=n/4,a=e.width-e.padding+2*i;dq(t,a,n,[{x:i,y:0},{x:a-i,y:0},{x:a,y:-n/2},{x:a-i,y:-n},{x:i,y:-n},{x:0,y:-n/2}],e)},fq=function(t,e){t.append("rect").attr("id","node-"+e.id).attr("class","node-bkg node-"+XV(e.type)).attr("height",e.height).attr("rx",e.padding).attr("ry",e.padding).attr("width",e.width)},gq={drawNode:function(t,e,n,i){const a=n%(aq-1),r=t.append("g");e.section=a;let o="section-"+a;a<0&&(o+=" section-root"),r.attr("class",(e.class?e.class+" ":"")+"mindmap-node "+o);const s=r.append("g"),c=r.append("g"),l=c.append("text").text(e.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(rq,e.width).node().getBBox(),u=i.fontSize.replace?i.fontSize.replace("px",""):i.fontSize;if(e.height=l.height+1.1*u*.5+e.padding,e.width=l.width+2*e.padding,e.icon)if(e.type===YV.CIRCLE)e.height+=50,e.width+=50,r.append("foreignObject").attr("height","50px").attr("width",e.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+a+" "+e.icon),c.attr("transform","translate("+e.width/2+", "+(e.height/2-1.5*e.padding)+")");else{e.width+=50;const t=e.height;e.height=Math.max(t,60);const n=Math.abs(e.height-t);r.append("foreignObject").attr("width","60px").attr("height",e.height).attr("style","text-align: center;margin-top:"+n/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+a+" "+e.icon),c.attr("transform","translate("+(25+e.width/2)+", "+(n/2+e.padding/2)+")")}else c.attr("transform","translate("+e.width/2+", "+e.padding/2+")");switch(e.type){case YV.DEFAULT:oq(s,e,a);break;case YV.ROUNDED_RECT:fq(s,e);break;case YV.RECT:sq(s,e);break;case YV.CIRCLE:s.attr("transform","translate("+e.width/2+", "+ +e.height/2+")"),uq(s,e);break;case YV.CLOUD:cq(s,e);break;case YV.BANG:lq(s,e);break;case YV.HEXAGON:hq(s,e)}return ZV(e.id,r),e.height},positionNode:function(t){const e=nq(t.id),n=t.x||0,i=t.y||0;e.attr("transform","translate("+n+","+i+")")},drawEdge:function(t,e,n,i,a){const r=a%(aq-1),o=n.x+n.width/2,s=n.y+n.height/2,c=e.x+e.width/2,l=e.y+e.height/2,u=c>o?o+Math.abs(o-c)/2:o-Math.abs(o-c)/2,d=l>s?s+Math.abs(s-l)/2:s-Math.abs(s-l)/2,h=c>o?Math.abs(o-u)/2+o:-Math.abs(o-u)/2+o,f=l>s?Math.abs(s-d)/2+s:-Math.abs(s-d)/2+s;t.append("path").attr("d","TB"===n.direction||"BT"===n.direction?`M${o},${s} Q${o},${f} ${u},${d} T${c},${l}`:`M${o},${s} Q${h},${s} ${u},${d} T${c},${l}`).attr("class","edge section-edge-"+r+" edge-depth-"+i)}};var pq={};!function(t,e){!function(e,n){t.exports=n()}(0,(function(){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function i(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),Object.defineProperty(t,"prototype",{writable:!1}),t}function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){return s(t)||c(t,e)||l(t,e)||d()}function s(t){if(Array.isArray(t))return t}function c(t,e){var n=null==t?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var i,a,r=[],o=!0,s=!1;try{for(n=n.call(t);!(o=(i=n.next()).done)&&(r.push(i.value),!e||r.length!==e);o=!0);}catch(c){s=!0,a=c}finally{try{!o&&null!=n.return&&n.return()}finally{if(s)throw a}}return r}}function l(t,e){if(t){if("string"==typeof t)return u(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(t,e)}}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}function d(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var h=typeof window>"u"?null:window,f=h?h.navigator:null;h&&h.document;var g=t(""),p=t({}),b=t((function(){})),m=typeof HTMLElement>"u"?"undefined":t(HTMLElement),y=function(t){return t&&t.instanceString&&w(t.instanceString)?t.instanceString():null},v=function(e){return null!=e&&t(e)==g},w=function(e){return null!=e&&t(e)===b},x=function(t){return!S(t)&&(Array.isArray?Array.isArray(t):null!=t&&t instanceof Array)},R=function(e){return null!=e&&t(e)===p&&!x(e)&&e.constructor===Object},_=function(e){return null!=e&&t(e)===p},k=function(e){return null!=e&&t(e)===t(1)&&!isNaN(e)},E=function(t){return k(t)&&Math.floor(t)===t},C=function(t){if("undefined"!==m)return null!=t&&t instanceof HTMLElement},S=function(t){return T(t)||A(t)},T=function(t){return"collection"===y(t)&&t._private.single},A=function(t){return"collection"===y(t)&&!t._private.single},D=function(t){return"core"===y(t)},I=function(t){return"stylesheet"===y(t)},L=function(t){return"event"===y(t)},O=function(t){return null==t||!(""!==t&&!t.match(/^\s+$/))},M=function(t){return!(typeof HTMLElement>"u")&&t instanceof HTMLElement},N=function(t){return R(t)&&k(t.x1)&&k(t.x2)&&k(t.y1)&&k(t.y2)},B=function(t){return _(t)&&w(t.then)},P=function(){return f&&f.userAgent.match(/msie|trident|edge/i)},F=function(t,e){e||(e=function(){if(1===arguments.length)return arguments[0];if(0===arguments.length)return"undefined";for(var t=[],e=0;e<arguments.length;e++)t.push(arguments[e]);return t.join("$")});var n=function n(){var i,a=this,r=arguments,o=e.apply(a,r),s=n.cache;return(i=s[o])||(i=s[o]=t.apply(a,r)),i};return n.cache={},n},j=F((function(t){return t.replace(/([A-Z])/g,(function(t){return"-"+t.toLowerCase()}))})),$=F((function(t){return t.replace(/(-\w)/g,(function(t){return t[1].toUpperCase()}))})),z=F((function(t,e){return t+e[0].toUpperCase()+e.substring(1)}),(function(t,e){return t+"$"+e})),H=function(t){return O(t)?t:t.charAt(0).toUpperCase()+t.substring(1)},U="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))",V="rgb[a]?\\(("+U+"[%]?)\\s*,\\s*("+U+"[%]?)\\s*,\\s*("+U+"[%]?)(?:\\s*,\\s*("+U+"))?\\)",q="rgb[a]?\\((?:"+U+"[%]?)\\s*,\\s*(?:"+U+"[%]?)\\s*,\\s*(?:"+U+"[%]?)(?:\\s*,\\s*(?:"+U+"))?\\)",W="hsl[a]?\\(("+U+")\\s*,\\s*("+U+"[%])\\s*,\\s*("+U+"[%])(?:\\s*,\\s*("+U+"))?\\)",Y="hsl[a]?\\((?:"+U+")\\s*,\\s*(?:"+U+"[%])\\s*,\\s*(?:"+U+"[%])(?:\\s*,\\s*(?:"+U+"))?\\)",G="\\#[0-9a-fA-F]{3}",Z="\\#[0-9a-fA-F]{6}",K=function(t,e){return t<e?-1:t>e?1:0},X=function(t,e){return-1*K(t,e)},J=null!=Object.assign?Object.assign.bind(Object):function(t){for(var e=arguments,n=1;n<e.length;n++){var i=e[n];if(null!=i)for(var a=Object.keys(i),r=0;r<a.length;r++){var o=a[r];t[o]=i[o]}}return t},Q=function(t){if((4===t.length||7===t.length)&&"#"===t[0]){var e,n,i,a=16;return 4===t.length?(e=parseInt(t[1]+t[1],a),n=parseInt(t[2]+t[2],a),i=parseInt(t[3]+t[3],a)):(e=parseInt(t[1]+t[2],a),n=parseInt(t[3]+t[4],a),i=parseInt(t[5]+t[6],a)),[e,n,i]}},tt=function(t){var e,n,i,a,r,o,s,c;function l(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t}var u=new RegExp("^"+W+"$").exec(t);if(u){if((n=parseInt(u[1]))<0?n=(360- -1*n%360)%360:n>360&&(n%=360),n/=360,(i=parseFloat(u[2]))<0||i>100||(i/=100,(a=parseFloat(u[3]))<0||a>100)||(a/=100,void 0!==(r=u[4])&&((r=parseFloat(r))<0||r>1)))return;if(0===i)o=s=c=Math.round(255*a);else{var d=a<.5?a*(1+i):a+i-a*i,h=2*a-d;o=Math.round(255*l(h,d,n+1/3)),s=Math.round(255*l(h,d,n)),c=Math.round(255*l(h,d,n-1/3))}e=[o,s,c,r]}return e},et=function(t){var e,n=new RegExp("^"+V+"$").exec(t);if(n){e=[];for(var i=[],a=1;a<=3;a++){var r=n[a];if("%"===r[r.length-1]&&(i[a]=!0),r=parseFloat(r),i[a]&&(r=r/100*255),r<0||r>255)return;e.push(Math.floor(r))}var o=i[1]||i[2]||i[3],s=i[1]&&i[2]&&i[3];if(o&&!s)return;var c=n[4];if(void 0!==c){if((c=parseFloat(c))<0||c>1)return;e.push(c)}}return e},nt=function(t){return at[t.toLowerCase()]},it=function(t){return(x(t)?t:null)||nt(t)||Q(t)||et(t)||tt(t)},at={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},rt=function(t){for(var e=t.map,n=t.keys,i=n.length,a=0;a<i;a++){var r=n[a];if(R(r))throw Error("Tried to set map with object key");a<n.length-1?(null==e[r]&&(e[r]={}),e=e[r]):e[r]=t.value}},ot=function(t){for(var e=t.map,n=t.keys,i=n.length,a=0;a<i;a++){var r=n[a];if(R(r))throw Error("Tried to get map with object key");if(null==(e=e[r]))return e}return e};function st(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}var ct=st,lt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof a<"u"?a:typeof self<"u"?self:{};function ut(t,e){return t(e={exports:{}},e.exports),e.exports}var dt="object"==typeof lt&<&<.Object===Object&<,ht="object"==typeof self&&self&&self.Object===Object&&self,ft=dt||ht||Function("return this")(),gt=function(){return ft.Date.now()},pt=/\s/;function bt(t){for(var e=t.length;e--&&pt.test(t.charAt(e)););return e}var mt=bt,yt=/^\s+/;function vt(t){return t&&t.slice(0,mt(t)+1).replace(yt,"")}var wt=vt,xt=ft.Symbol,Rt=Object.prototype,_t=Rt.hasOwnProperty,kt=Rt.toString,Et=xt?xt.toStringTag:void 0;function Ct(t){var e=_t.call(t,Et),n=t[Et];try{t[Et]=void 0;var i=!0}catch{}var a=kt.call(t);return i&&(e?t[Et]=n:delete t[Et]),a}var St=Ct,Tt=Object.prototype.toString;function At(t){return Tt.call(t)}var Dt=At,It="[object Null]",Lt="[object Undefined]",Ot=xt?xt.toStringTag:void 0;function Mt(t){return null==t?void 0===t?Lt:It:Ot&&Ot in Object(t)?St(t):Dt(t)}var Nt=Mt;function Bt(t){return null!=t&&"object"==typeof t}var Pt=Bt,Ft="[object Symbol]";function jt(t){return"symbol"==typeof t||Pt(t)&&Nt(t)==Ft}var $t=jt,zt=NaN,Ht=/^[-+]0x[0-9a-f]+$/i,Ut=/^0b[01]+$/i,Vt=/^0o[0-7]+$/i,qt=parseInt;function Wt(t){if("number"==typeof t)return t;if($t(t))return zt;if(ct(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=ct(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=wt(t);var n=Ut.test(t);return n||Vt.test(t)?qt(t.slice(2),n?2:8):Ht.test(t)?zt:+t}var Yt=Wt,Gt="Expected a function",Zt=Math.max,Kt=Math.min;function Xt(t,e,n){var i,a,r,o,s,c,l=0,u=!1,d=!1,h=!0;if("function"!=typeof t)throw new TypeError(Gt);function f(e){var n=i,r=a;return i=a=void 0,l=e,o=t.apply(r,n)}function g(t){return l=t,s=setTimeout(m,e),u?f(t):o}function p(t){var n=e-(t-c);return d?Kt(n,r-(t-l)):n}function b(t){var n=t-c;return void 0===c||n>=e||n<0||d&&t-l>=r}function m(){var t=gt();if(b(t))return y(t);s=setTimeout(m,p(t))}function y(t){return s=void 0,h&&i?f(t):(i=a=void 0,o)}function v(){void 0!==s&&clearTimeout(s),l=0,i=c=a=s=void 0}function w(){return void 0===s?o:y(gt())}function x(){var t=gt(),n=b(t);if(i=arguments,a=this,c=t,n){if(void 0===s)return g(c);if(d)return clearTimeout(s),s=setTimeout(m,e),f(c)}return void 0===s&&(s=setTimeout(m,e)),o}return e=Yt(e)||0,ct(n)&&(u=!!n.leading,r=(d="maxWait"in n)?Zt(Yt(n.maxWait)||0,e):r,h="trailing"in n?!!n.trailing:h),x.cancel=v,x.flush=w,x}var Jt=Xt,Qt=h?h.performance:null,te=Qt&&Qt.now?function(){return Qt.now()}:function(){return Date.now()},ee=function(){if(h){if(h.requestAnimationFrame)return function(t){h.requestAnimationFrame(t)};if(h.mozRequestAnimationFrame)return function(t){h.mozRequestAnimationFrame(t)};if(h.webkitRequestAnimationFrame)return function(t){h.webkitRequestAnimationFrame(t)};if(h.msRequestAnimationFrame)return function(t){h.msRequestAnimationFrame(t)}}return function(t){t&&setTimeout((function(){t(te())}),1e3/60)}}(),ne=function(t){return ee(t)},ie=te,ae=9261,re=65599,oe=5381,se=function(t){for(var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ae;!(e=t.next()).done;)n=n*re+e.value|0;return n},ce=function(t){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:ae)*re+t|0},le=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:oe;return(e<<5)+e+t|0},ue=function(t,e){return 2097152*t+e},de=function(t){return 2097152*t[0]+t[1]},he=function(t,e){return[ce(t[0],e[0]),le(t[1],e[1])]},fe=function(t,e){var n={value:0,done:!1},i=0,a=t.length;return se({next:function(){return i<a?n.value=t[i++]:n.done=!0,n}},e)},ge=function(t,e){var n={value:0,done:!1},i=0,a=t.length;return se({next:function(){return i<a?n.value=t.charCodeAt(i++):n.done=!0,n}},e)},pe=function(){return be(arguments)},be=function(t){for(var e,n=0;n<t.length;n++){var i=t[n];e=0===n?ge(i):ge(i,e)}return e},me=!0,ye=null!=console.warn,ve=null!=console.trace,we=Number.MAX_SAFE_INTEGER||9007199254740991,xe=function(){return!0},Re=function(){return!1},_e=function(){return 0},ke=function(){},Ee=function(t){throw new Error(t)},Ce=function(t){if(void 0===t)return me;me=!!t},Se=function(t){Ce()&&(ye?console.warn(t):(console.log(t),ve&&console.trace()))},Te=function(t){return J({},t)},Ae=function(t){return null==t?t:x(t)?t.slice():R(t)?Te(t):t},De=function(t){return t.slice()},Ie=function(t,e){for(e=t="";t++<36;e+=51*t&52?(15^t?8^Math.random()*(20^t?16:4):4).toString(16):"-");return e},Le={},Oe=function(){return Le},Me=function(t){var e=Object.keys(t);return function(n){for(var i={},a=0;a<e.length;a++){var r=e[a],o=null==n?void 0:n[r];i[r]=void 0===o?t[r]:o}return i}},Ne=function(t,e,n){for(var i=t.length-1;i>=0&&(t[i]!==e||(t.splice(i,1),!n));i--);},Be=function(t){t.splice(0,t.length)},Pe=function(t,e){for(var n=0;n<e.length;n++){var i=e[n];t.push(i)}},Fe=function(t,e,n){return n&&(e=z(n,e)),t[e]},je=function(t,e,n,i){n&&(e=z(n,e)),t[e]=i},$e=function(){function t(){e(this,t),this._obj={}}return i(t,[{key:"set",value:function(t,e){return this._obj[t]=e,this}},{key:"delete",value:function(t){return this._obj[t]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(t){return void 0!==this._obj[t]}},{key:"get",value:function(t){return this._obj[t]}}]),t}(),ze=typeof Map<"u"?Map:$e,He="undefined",Ue=function(){function t(n){if(e(this,t),this._obj=Object.create(null),this.size=0,null!=n){var i;i=null!=n.instanceString&&n.instanceString()===this.instanceString()?n.toArray():n;for(var a=0;a<i.length;a++)this.add(i[a])}}return i(t,[{key:"instanceString",value:function(){return"set"}},{key:"add",value:function(t){var e=this._obj;1!==e[t]&&(e[t]=1,this.size++)}},{key:"delete",value:function(t){var e=this._obj;1===e[t]&&(e[t]=0,this.size--)}},{key:"clear",value:function(){this._obj=Object.create(null)}},{key:"has",value:function(t){return 1===this._obj[t]}},{key:"toArray",value:function(){var t=this;return Object.keys(this._obj).filter((function(e){return t.has(e)}))}},{key:"forEach",value:function(t,e){return this.toArray().forEach(t,e)}}]),t}(),Ve=(typeof Set>"u"?"undefined":t(Set))!==He?Set:Ue,qe=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0!==t&&void 0!==e&&D(t)){var i=e.group;if(null==i&&(i=e.data&&null!=e.data.source&&null!=e.data.target?"edges":"nodes"),"nodes"===i||"edges"===i){this.length=1,this[0]=this;var a=this._private={cy:t,single:!0,data:e.data||{},position:e.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:i,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!e.selected,selectable:void 0===e.selectable||!!e.selectable,locked:!!e.locked,grabbed:!1,grabbable:void 0===e.grabbable||!!e.grabbable,pannable:void 0===e.pannable?"edges"===i:!!e.pannable,active:!1,classes:new Ve,animation:{current:[],queue:[]},rscratch:{},scratch:e.scratch||{},edges:[],children:[],parent:e.parent&&e.parent.isNode()?e.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(null==a.position.x&&(a.position.x=0),null==a.position.y&&(a.position.y=0),e.renderedPosition){var r=e.renderedPosition,o=t.pan(),s=t.zoom();a.position={x:(r.x-o.x)/s,y:(r.y-o.y)/s}}var c=[];x(e.classes)?c=e.classes:v(e.classes)&&(c=e.classes.split(/\s+/));for(var l=0,u=c.length;l<u;l++){var d=c[l];!d||""===d||a.classes.add(d)}this.createEmitter();var h=e.style||e.css;h&&(Se("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."),this.style(h)),(void 0===n||n)&&this.restore()}else Ee("An element must be of type `nodes` or `edges`; you specified `"+i+"`")}else Ee("An element must have a core reference and parameters set")},We=function(t){return t={bfs:t.bfs||!t.dfs,dfs:t.dfs||!t.bfs},function(e,n,i){var a;R(e)&&!S(e)&&(e=(a=e).roots||a.root,n=a.visit,i=a.directed),i=2!==arguments.length||w(n)?i:n,n=w(n)?n:function(){};for(var r,o=this._private.cy,s=e=v(e)?this.filter(e):e,c=[],l=[],u={},d={},h={},f=0,g=this.byGroup(),p=g.nodes,b=g.edges,m=0;m<s.length;m++){var y=s[m],x=y.id();y.isNode()&&(c.unshift(y),t.bfs&&(h[x]=!0,l.push(y)),d[x]=0)}for(var _=function(){var e=t.bfs?c.shift():c.pop(),a=e.id();if(t.dfs){if(h[a])return"continue";h[a]=!0,l.push(e)}var o=d[a],s=u[a],g=null!=s?s.source():null,m=null!=s?s.target():null,y=null==s?void 0:e.same(g)?m[0]:g[0],v=void 0;if(!0===(v=n(e,s,y,f++,o)))return r=e,"break";if(!1===v)return"break";for(var w=e.connectedEdges().filter((function(t){return(!i||t.source().same(e))&&b.has(t)})),x=0;x<w.length;x++){var R=w[x],_=R.connectedNodes().filter((function(t){return!t.same(e)&&p.has(t)})),k=_.id();0!==_.length&&!h[k]&&(_=_[0],c.push(_),t.bfs&&(h[k]=!0,l.push(_)),u[k]=R,d[k]=d[a]+1)}};0!==c.length;){var k=_();if("continue"!==k&&"break"===k)break}for(var E=o.collection(),C=0;C<l.length;C++){var T=l[C],A=u[T.id()];null!=A&&E.push(A),E.push(T)}return{path:o.collection(E),found:o.collection(r)}}},Ye={breadthFirstSearch:We({bfs:!0}),depthFirstSearch:We({dfs:!0})};Ye.bfs=Ye.breadthFirstSearch,Ye.dfs=Ye.depthFirstSearch;var Ge=ut((function(t,e){(function(){var e,n,i,a,r,o,s,c,l,u,d,h,f,g,p,b;i=Math.floor,u=Math.min,n=function(t,e){return t<e?-1:t>e?1:0},l=function(t,e,a,r,o){var s;if(null==a&&(a=0),null==o&&(o=n),a<0)throw new Error("lo must be non-negative");for(null==r&&(r=t.length);a<r;)o(e,t[s=i((a+r)/2)])<0?r=s:a=s+1;return[].splice.apply(t,[a,a-a].concat(e)),e},o=function(t,e,i){return null==i&&(i=n),t.push(e),g(t,0,t.length-1,i)},r=function(t,e){var i,a;return null==e&&(e=n),i=t.pop(),t.length?(a=t[0],t[0]=i,p(t,0,e)):a=i,a},c=function(t,e,i){var a;return null==i&&(i=n),a=t[0],t[0]=e,p(t,0,i),a},s=function(t,e,i){var a;return null==i&&(i=n),t.length&&i(t[0],e)<0&&(e=(a=[t[0],e])[0],t[0]=a[1],p(t,0,i)),e},a=function(t,e){var a,r,o,s,c,l;for(null==e&&(e=n),c=[],r=0,o=(s=function(){l=[];for(var e=0,n=i(t.length/2);0<=n?e<n:e>n;0<=n?e++:e--)l.push(e);return l}.apply(this).reverse()).length;r<o;r++)a=s[r],c.push(p(t,a,e));return c},f=function(t,e,i){var a;if(null==i&&(i=n),-1!==(a=t.indexOf(e)))return g(t,0,a,i),p(t,a,i)},d=function(t,e,i){var r,o,c,l,u;if(null==i&&(i=n),!(o=t.slice(0,e)).length)return o;for(a(o,i),c=0,l=(u=t.slice(e)).length;c<l;c++)r=u[c],s(o,r,i);return o.sort(i).reverse()},h=function(t,e,i){var o,s,c,d,h,f,g,p,b;if(null==i&&(i=n),10*e<=t.length){if(!(c=t.slice(0,e).sort(i)).length)return c;for(s=c[c.length-1],d=0,f=(g=t.slice(e)).length;d<f;d++)i(o=g[d],s)<0&&(l(c,o,0,null,i),c.pop(),s=c[c.length-1]);return c}for(a(t,i),b=[],h=0,p=u(e,t.length);0<=p?h<p:h>p;0<=p?++h:--h)b.push(r(t,i));return b},g=function(t,e,i,a){var r,o,s;for(null==a&&(a=n),r=t[i];i>e&&a(r,o=t[s=i-1>>1])<0;)t[i]=o,i=s;return t[i]=r},p=function(t,e,i){var a,r,o,s,c;for(null==i&&(i=n),r=t.length,c=e,o=t[e],a=2*e+1;a<r;)(s=a+1)<r&&!(i(t[a],t[s])<0)&&(a=s),t[e]=t[a],a=2*(e=a)+1;return t[e]=o,g(t,c,e,i)},e=function(){function t(t){this.cmp=t??n,this.nodes=[]}return t.push=o,t.pop=r,t.replace=c,t.pushpop=s,t.heapify=a,t.updateItem=f,t.nlargest=d,t.nsmallest=h,t.prototype.push=function(t){return o(this.nodes,t,this.cmp)},t.prototype.pop=function(){return r(this.nodes,this.cmp)},t.prototype.peek=function(){return this.nodes[0]},t.prototype.contains=function(t){return-1!==this.nodes.indexOf(t)},t.prototype.replace=function(t){return c(this.nodes,t,this.cmp)},t.prototype.pushpop=function(t){return s(this.nodes,t,this.cmp)},t.prototype.heapify=function(){return a(this.nodes,this.cmp)},t.prototype.updateItem=function(t){return f(this.nodes,t,this.cmp)},t.prototype.clear=function(){return this.nodes=[]},t.prototype.empty=function(){return 0===this.nodes.length},t.prototype.size=function(){return this.nodes.length},t.prototype.clone=function(){var e;return(e=new t).nodes=this.nodes.slice(0),e},t.prototype.toArray=function(){return this.nodes.slice(0)},t.prototype.insert=t.prototype.push,t.prototype.top=t.prototype.peek,t.prototype.front=t.prototype.peek,t.prototype.has=t.prototype.contains,t.prototype.copy=t.prototype.clone,t}(),b=function(){return e},t.exports=b()}).call(lt)})),Ze=Ge,Ke=Me({root:null,weight:function(t){return 1},directed:!1}),Xe={dijkstra:function(t){if(!R(t)){var e=arguments;t={root:e[0],weight:e[1],directed:e[2]}}var n=Ke(t),i=n.root,a=n.weight,r=n.directed,o=this,s=a,c=v(i)?this.filter(i)[0]:i[0],l={},u={},d={},h=this.byGroup(),f=h.nodes,g=h.edges;g.unmergeBy((function(t){return t.isLoop()}));for(var p=function(t){return l[t.id()]},b=function(t,e){l[t.id()]=e,m.updateItem(t)},m=new Ze((function(t,e){return p(t)-p(e)})),y=0;y<f.length;y++){var w=f[y];l[w.id()]=w.same(c)?0:1/0,m.push(w)}for(var x=function(t,e){for(var n,i=(r?t.edgesTo(e):t.edgesWith(e)).intersect(g),a=1/0,o=0;o<i.length;o++){var c=i[o],l=s(c);(l<a||!n)&&(a=l,n=c)}return{edge:n,dist:a}};m.size()>0;){var _=m.pop(),k=p(_),E=_.id();if(d[E]=k,k!==1/0)for(var C=_.neighborhood().intersect(f),S=0;S<C.length;S++){var T=C[S],A=T.id(),D=x(_,T),I=k+D.dist;I<p(T)&&(b(T,I),u[A]={node:_,edge:D.edge})}}return{distanceTo:function(t){var e=v(t)?f.filter(t)[0]:t[0];return d[e.id()]},pathTo:function(t){var e=v(t)?f.filter(t)[0]:t[0],n=[],i=e,a=i.id();if(e.length>0)for(n.unshift(e);u[a];){var r=u[a];n.unshift(r.edge),n.unshift(r.node),a=(i=r.node).id()}return o.spawn(n)}}}},Je={kruskal:function(t){t=t||function(t){return 1};for(var e=this.byGroup(),n=e.nodes,i=e.edges,a=n.length,r=new Array(a),o=n,s=function(t){for(var e=0;e<r.length;e++)if(r[e].has(t))return e},c=0;c<a;c++)r[c]=this.spawn(n[c]);for(var l=i.sort((function(e,n){return t(e)-t(n)})),u=0;u<l.length;u++){var d=l[u],h=d.source()[0],f=d.target()[0],g=s(h),p=s(f),b=r[g],m=r[p];g!==p&&(o.merge(d),b.merge(m),r.splice(p,1))}return o}},Qe=Me({root:null,goal:null,weight:function(t){return 1},heuristic:function(t){return 0},directed:!1}),tn={aStar:function(t){var e=this.cy(),n=Qe(t),i=n.root,a=n.goal,r=n.heuristic,o=n.directed,s=n.weight;i=e.collection(i)[0],a=e.collection(a)[0];var c,l,u=i.id(),d=a.id(),h={},f={},g={},p=new Ze((function(t,e){return f[t.id()]-f[e.id()]})),b=new Ve,m={},y={},v=function(t,e){p.push(t),b.add(e)},w=function(){c=p.pop(),l=c.id(),b.delete(l)},x=function(t){return b.has(t)};v(i,u),h[u]=0,f[u]=r(i);for(var R=0;p.size()>0;){if(w(),R++,l===d){for(var _=[],k=a,E=d,C=y[E];_.unshift(k),null!=C&&_.unshift(C),null!=(k=m[E]);)C=y[E=k.id()];return{found:!0,distance:h[l],path:this.spawn(_),steps:R}}g[l]=!0;for(var S=c._private.edges,T=0;T<S.length;T++){var A=S[T];if(this.hasElementWithId(A.id())&&(!o||A.data("source")===l)){var D=A.source(),I=A.target(),L=D.id()!==l?D:I,O=L.id();if(this.hasElementWithId(O)&&!g[O]){var M=h[l]+s(A);if(!x(O)){h[O]=M,f[O]=M+r(L),v(L,O),m[O]=c,y[O]=A;continue}M<h[O]&&(h[O]=M,f[O]=M+r(L),m[O]=c,y[O]=A)}}}}return{found:!1,distance:void 0,path:void 0,steps:R}}},en=Me({weight:function(t){return 1},directed:!1}),nn={floydWarshall:function(t){for(var e=this.cy(),n=en(t),i=n.weight,a=n.directed,r=i,o=this.byGroup(),s=o.nodes,c=o.edges,l=s.length,u=l*l,d=function(t){return s.indexOf(t)},h=function(t){return s[t]},f=new Array(u),g=0;g<u;g++){var p=g%l,b=(g-p)/l;f[g]=b===p?0:1/0}for(var m=new Array(u),y=new Array(u),w=0;w<c.length;w++){var x=c[w],R=x.source()[0],_=x.target()[0];if(R!==_){var k=d(R),E=d(_),C=k*l+E,S=r(x);if(f[C]>S&&(f[C]=S,m[C]=E,y[C]=x),!a){var T=E*l+k;!a&&f[T]>S&&(f[T]=S,m[T]=k,y[T]=x)}}}for(var A=0;A<l;A++)for(var D=0;D<l;D++)for(var I=D*l+A,L=0;L<l;L++){var O=D*l+L,M=A*l+L;f[I]+f[M]<f[O]&&(f[O]=f[I]+f[M],m[O]=m[I])}var N=function(t){return(v(t)?e.filter(t):t)[0]},B=function(t){return d(N(t))};return{distance:function(t,e){var n=B(t),i=B(e);return f[n*l+i]},path:function(t,n){var i=B(t),a=B(n),r=h(i);if(i===a)return r.collection();if(null==m[i*l+a])return e.collection();var o,s=e.collection(),c=i;for(s.merge(r);i!==a;)c=i,i=m[i*l+a],o=y[c*l+i],s.merge(o),s.merge(h(i));return s}}}},an=Me({weight:function(t){return 1},directed:!1,root:null}),rn={bellmanFord:function(t){var e=this,n=an(t),i=n.weight,a=n.directed,r=n.root,o=i,s=this,c=this.cy(),l=this.byGroup(),u=l.edges,d=l.nodes,h=d.length,f=new ze,g=!1,p=[];r=c.collection(r)[0],u.unmergeBy((function(t){return t.isLoop()}));for(var b=u.length,m=function(t){var e=f.get(t.id());return e||(e={},f.set(t.id(),e)),e},y=function(t){return(v(t)?c.$(t):t)[0]},w=function(t){return m(y(t)).dist},x=function(t){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,i=[],a=y(t);;){if(null==a)return e.spawn();var o=m(a),c=o.edge,l=o.pred;if(i.unshift(a[0]),a.same(n)&&i.length>0)break;null!=c&&i.unshift(c),a=l}return s.spawn(i)},R=0;R<h;R++){var _=d[R],k=m(_);_.same(r)?k.dist=0:k.dist=1/0,k.pred=null,k.edge=null}for(var E=!1,C=function(t,e,n,i,a,r){var o=i.dist+r;o<a.dist&&!n.same(i.edge)&&(a.dist=o,a.pred=t,a.edge=n,E=!0)},S=1;S<h;S++){E=!1;for(var T=0;T<b;T++){var A=u[T],D=A.source(),I=A.target(),L=o(A),O=m(D),M=m(I);C(D,I,A,O,M,L),a||C(I,D,A,M,O,L)}if(!E)break}if(E)for(var N=[],B=0;B<b;B++){var P=u[B],F=P.source(),j=P.target(),$=o(P),z=m(F).dist,H=m(j).dist;if(z+$<H||!a&&H+$<z){if(g||(Se("Graph contains a negative weight cycle for Bellman-Ford"),g=!0),!1===t.findNegativeWeightCycles)break;var U=[];z+$<H&&U.push(F),!a&&H+$<z&&U.push(j);for(var V=U.length,q=0;q<V;q++){var W=U[q],Y=[W];Y.push(m(W).edge);for(var G=m(W).pred;-1===Y.indexOf(G);)Y.push(G),Y.push(m(G).edge),G=m(G).pred;for(var Z=(Y=Y.slice(Y.indexOf(G)))[0].id(),K=0,X=2;X<Y.length;X+=2)Y[X].id()<Z&&(Z=Y[X].id(),K=X);(Y=Y.slice(K).concat(Y.slice(0,K))).push(Y[0]);var J=Y.map((function(t){return t.id()})).join(",");-1===N.indexOf(J)&&(p.push(s.spawn(Y)),N.push(J))}}}return{distanceTo:w,pathTo:x,hasNegativeWeightCycle:g,negativeWeightCycles:p}}},on=Math.sqrt(2),sn=function(t,e,n){0===n.length&&Ee("Karger-Stein must be run on a connected (sub)graph");for(var i=n[t],a=i[1],r=i[2],o=e[a],s=e[r],c=n,l=c.length-1;l>=0;l--){var u=c[l],d=u[1],h=u[2];(e[d]===o&&e[h]===s||e[d]===s&&e[h]===o)&&c.splice(l,1)}for(var f=0;f<c.length;f++){var g=c[f];g[1]===s?(c[f]=g.slice(),c[f][1]=o):g[2]===s&&(c[f]=g.slice(),c[f][2]=o)}for(var p=0;p<e.length;p++)e[p]===s&&(e[p]=o);return c},cn=function(t,e,n,i){for(;n>i;){var a=Math.floor(Math.random()*e.length);e=sn(a,t,e),n--}return e},ln={kargerStein:function(){var t=this,e=this.byGroup(),n=e.nodes,i=e.edges;i.unmergeBy((function(t){return t.isLoop()}));var a=n.length,r=i.length,o=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),s=Math.floor(a/on);if(!(a<2)){for(var c=[],l=0;l<r;l++){var u=i[l];c.push([l,n.indexOf(u.source()),n.indexOf(u.target())])}for(var d=1/0,h=[],f=new Array(a),g=new Array(a),p=new Array(a),b=function(t,e){for(var n=0;n<a;n++)e[n]=t[n]},m=0;m<=o;m++){for(var y=0;y<a;y++)g[y]=y;var v=cn(g,c.slice(),a,s),w=v.slice();b(g,p);var x=cn(g,v,s,2),R=cn(p,w,s,2);x.length<=R.length&&x.length<d?(d=x.length,h=x,b(g,f)):R.length<=x.length&&R.length<d&&(d=R.length,h=R,b(p,f))}for(var _=this.spawn(h.map((function(t){return i[t[0]]}))),k=this.spawn(),E=this.spawn(),C=f[0],S=0;S<f.length;S++){var T=f[S],A=n[S];T===C?k.merge(A):E.merge(A)}var D=function(e){var n=t.spawn();return e.forEach((function(e){n.merge(e),e.connectedEdges().forEach((function(e){t.contains(e)&&!_.contains(e)&&n.merge(e)}))})),n},I=[D(k),D(E)];return{cut:_,components:I,partition1:k,partition2:E}}Ee("At least 2 nodes are required for Karger-Stein algorithm")}},un=function(t){return{x:t.x,y:t.y}},dn=function(t,e,n){return{x:t.x*e+n.x,y:t.y*e+n.y}},hn=function(t,e,n){return{x:(t.x-n.x)/e,y:(t.y-n.y)/e}},fn=function(t){return{x:t[0],y:t[1]}},gn=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,i=1/0,a=e;a<n;a++){var r=t[a];isFinite(r)&&(i=Math.min(r,i))}return i},pn=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,i=-1/0,a=e;a<n;a++){var r=t[a];isFinite(r)&&(i=Math.max(r,i))}return i},bn=function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,i=0,a=0,r=e;r<n;r++){var o=t[r];isFinite(o)&&(i+=o,a++)}return i/a},mn=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length,i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];arguments.length>3&&void 0!==arguments[3]&&!arguments[3]?(n<t.length&&t.splice(n,t.length-n),e>0&&t.splice(0,e)):t=t.slice(e,n);for(var r=0,o=t.length-1;o>=0;o--){var s=t[o];a?isFinite(s)||(t[o]=-1/0,r++):t.splice(o,1)}i&&t.sort((function(t,e){return t-e}));var c=t.length,l=Math.floor(c/2);return c%2!=0?t[l+1+r]:(t[l-1+r]+t[l+r])/2},yn=function(t){return Math.PI*t/180},vn=function(t,e){return Math.atan2(e,t)-Math.PI/2},wn=Math.log2||function(t){return Math.log(t)/Math.log(2)},xn=function(t){return t>0?1:t<0?-1:0},Rn=function(t,e){return Math.sqrt(_n(t,e))},_n=function(t,e){var n=e.x-t.x,i=e.y-t.y;return n*n+i*i},kn=function(t){for(var e=t.length,n=0,i=0;i<e;i++)n+=t[i];for(var a=0;a<e;a++)t[a]=t[a]/n;return t},En=function(t,e,n,i){return(1-i)*(1-i)*t+2*(1-i)*i*e+i*i*n},Cn=function(t,e,n,i){return{x:En(t.x,e.x,n.x,i),y:En(t.y,e.y,n.y,i)}},Sn=function(t,e,n,i){var a={x:e.x-t.x,y:e.y-t.y},r=Rn(t,e),o={x:a.x/r,y:a.y/r};return n=n??0,i=i??n*r,{x:t.x+o.x*i,y:t.y+o.y*i}},Tn=function(t,e,n){return Math.max(t,Math.min(n,e))},An=function(t){if(null==t)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};if(null!=t.x1&&null!=t.y1){if(null!=t.x2&&null!=t.y2&&t.x2>=t.x1&&t.y2>=t.y1)return{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,w:t.x2-t.x1,h:t.y2-t.y1};if(null!=t.w&&null!=t.h&&t.w>=0&&t.h>=0)return{x1:t.x1,y1:t.y1,x2:t.x1+t.w,y2:t.y1+t.h,w:t.w,h:t.h}}},Dn=function(t){return{x1:t.x1,x2:t.x2,w:t.w,y1:t.y1,y2:t.y2,h:t.h}},In=function(t){t.x1=1/0,t.y1=1/0,t.x2=-1/0,t.y2=-1/0,t.w=0,t.h=0},Ln=function(t,e){t.x1=Math.min(t.x1,e.x1),t.x2=Math.max(t.x2,e.x2),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,e.y1),t.y2=Math.max(t.y2,e.y2),t.h=t.y2-t.y1},On=function(t,e,n){t.x1=Math.min(t.x1,e),t.x2=Math.max(t.x2,e),t.w=t.x2-t.x1,t.y1=Math.min(t.y1,n),t.y2=Math.max(t.y2,n),t.h=t.y2-t.y1},Mn=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return t.x1-=e,t.x2+=e,t.y1-=e,t.y2+=e,t.w=t.x2-t.x1,t.h=t.y2-t.y1,t},Nn=function(t){var e,n,i,a,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===r.length)e=n=i=a=r[0];else if(2===r.length)e=i=r[0],a=n=r[1];else if(4===r.length){var s=o(r,4);e=s[0],n=s[1],i=s[2],a=s[3]}return t.x1-=a,t.x2+=n,t.y1-=e,t.y2+=i,t.w=t.x2-t.x1,t.h=t.y2-t.y1,t},Bn=function(t,e){t.x1=e.x1,t.y1=e.y1,t.x2=e.x2,t.y2=e.y2,t.w=t.x2-t.x1,t.h=t.y2-t.y1},Pn=function(t,e){return!(t.x1>e.x2||e.x1>t.x2||t.x2<e.x1||e.x2<t.x1||t.y2<e.y1||e.y2<t.y1||t.y1>e.y2||e.y1>t.y2)},Fn=function(t,e,n){return t.x1<=e&&e<=t.x2&&t.y1<=n&&n<=t.y2},jn=function(t,e){return Fn(t,e.x,e.y)},$n=function(t,e){return Fn(t,e.x1,e.y1)&&Fn(t,e.x2,e.y2)},zn=function(t,e,n,i,a,r,o){var s,c=ui(a,r),l=a/2,u=r/2,d=i-u-o;if((s=ii(t,e,n,i,n-l+c-o,d,n+l-c+o,d,!1)).length>0)return s;var h=n+l+o;if((s=ii(t,e,n,i,h,i-u+c-o,h,i+u-c+o,!1)).length>0)return s;var f=i+u+o;if((s=ii(t,e,n,i,n-l+c-o,f,n+l-c+o,f,!1)).length>0)return s;var g,p=n-l-o;if((s=ii(t,e,n,i,p,i-u+c-o,p,i+u-c+o,!1)).length>0)return s;var b=n-l+c,m=i-u+c;if((g=ei(t,e,n,i,b,m,c+o)).length>0&&g[0]<=b&&g[1]<=m)return[g[0],g[1]];var y=n+l-c,v=i-u+c;if((g=ei(t,e,n,i,y,v,c+o)).length>0&&g[0]>=y&&g[1]<=v)return[g[0],g[1]];var w=n+l-c,x=i+u-c;if((g=ei(t,e,n,i,w,x,c+o)).length>0&&g[0]>=w&&g[1]>=x)return[g[0],g[1]];var R=n-l+c,_=i+u-c;return(g=ei(t,e,n,i,R,_,c+o)).length>0&&g[0]<=R&&g[1]>=_?[g[0],g[1]]:[]},Hn=function(t,e,n,i,a,r,o){var s=o,c=Math.min(n,a),l=Math.max(n,a),u=Math.min(i,r),d=Math.max(i,r);return c-s<=t&&t<=l+s&&u-s<=e&&e<=d+s},Un=function(t,e,n,i,a,r,o,s,c){var l={x1:Math.min(n,o,a)-c,x2:Math.max(n,o,a)+c,y1:Math.min(i,s,r)-c,y2:Math.max(i,s,r)+c};return!(t<l.x1||t>l.x2||e<l.y1||e>l.y2)},Vn=function(t,e,n,i){var a=e*e-4*t*(n-=i);if(a<0)return[];var r=Math.sqrt(a),o=2*t;return[(-e+r)/o,(-e-r)/o]},qn=function(t,e,n,i,a){var r,o,s,c,l,u,d,h;return 0===t&&(t=1e-5),s=-27*(i/=t)+(e/=t)*(9*(n/=t)-e*e*2),r=(o=(3*n-e*e)/9)*o*o+(s/=54)*s,a[1]=0,d=e/3,r>0?(l=(l=s+Math.sqrt(r))<0?-Math.pow(-l,1/3):Math.pow(l,1/3),u=(u=s-Math.sqrt(r))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),a[0]=-d+l+u,d+=(l+u)/2,a[4]=a[2]=-d,d=Math.sqrt(3)*(-u+l)/2,a[3]=d,void(a[5]=-d)):(a[5]=a[3]=0,0===r?(h=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),a[0]=2*h-d,void(a[4]=a[2]=-(h+d))):(c=(o=-o)*o*o,c=Math.acos(s/Math.sqrt(c)),h=2*Math.sqrt(o),a[0]=-d+h*Math.cos(c/3),a[2]=-d+h*Math.cos((c+2*Math.PI)/3),void(a[4]=-d+h*Math.cos((c+4*Math.PI)/3))))},Wn=function(t,e,n,i,a,r,o,s){var c=[];qn(1*n*n-4*n*a+2*n*o+4*a*a-4*a*o+o*o+i*i-4*i*r+2*i*s+4*r*r-4*r*s+s*s,9*n*a-3*n*n-3*n*o-6*a*a+3*a*o+9*i*r-3*i*i-3*i*s-6*r*r+3*r*s,3*n*n-6*n*a+n*o-n*t+2*a*a+2*a*t-o*t+3*i*i-6*i*r+i*s-i*e+2*r*r+2*r*e-s*e,1*n*a-n*n+n*t-a*t+i*r-i*i+i*e-r*e,c);for(var l=1e-7,u=[],d=0;d<6;d+=2)Math.abs(c[d+1])<l&&c[d]>=0&&c[d]<=1&&u.push(c[d]);u.push(1),u.push(0);for(var h,f,g,p=-1,b=0;b<u.length;b++)h=Math.pow(1-u[b],2)*n+2*(1-u[b])*u[b]*a+u[b]*u[b]*o,f=Math.pow(1-u[b],2)*i+2*(1-u[b])*u[b]*r+u[b]*u[b]*s,g=Math.pow(h-t,2)+Math.pow(f-e,2),p>=0?g<p&&(p=g):p=g;return p},Yn=function(t,e,n,i,a,r){var o=[t-n,e-i],s=[a-n,r-i],c=s[0]*s[0]+s[1]*s[1],l=o[0]*o[0]+o[1]*o[1],u=o[0]*s[0]+o[1]*s[1],d=u*u/c;return u<0?l:d>c?(t-a)*(t-a)+(e-r)*(e-r):l-d},Gn=function(t,e,n){for(var i,a,r,o,s=0,c=0;c<n.length/2;c++)if(i=n[2*c],a=n[2*c+1],c+1<n.length/2?(r=n[2*(c+1)],o=n[2*(c+1)+1]):(r=n[2*(c+1-n.length/2)],o=n[2*(c+1-n.length/2)+1]),i!=t||r!=t){if(!(i>=t&&t>=r||i<=t&&t<=r))continue;(t-i)/(r-i)*(o-a)+a>e&&s++}return s%2!=0},Zn=function(t,e,n,i,a,r,o,s,c){var l,u,d=new Array(n.length);null!=s[0]?(l=Math.atan(s[1]/s[0]),s[0]<0?l+=Math.PI/2:l=-l-Math.PI/2):l=s;for(var h=Math.cos(-l),f=Math.sin(-l),g=0;g<d.length/2;g++)d[2*g]=r/2*(n[2*g]*h-n[2*g+1]*f),d[2*g+1]=o/2*(n[2*g+1]*h+n[2*g]*f),d[2*g]+=i,d[2*g+1]+=a;if(c>0){var p=Jn(d,-c);u=Xn(p)}else u=d;return Gn(t,e,u)},Kn=function(t,e,n,i,a,r,o){for(var s=new Array(n.length),c=r/2,l=o/2,u=di(r,o),d=u*u,h=0;h<n.length/4;h++){var f=void 0,g=void 0;f=0===h?n.length-2:4*h-2,g=4*h+2;var p=i+c*n[4*h],b=a+l*n[4*h+1],m=-n[f]*n[g]-n[f+1]*n[g+1],y=u/Math.tan(Math.acos(m)/2),v=p-y*n[f],w=b-y*n[f+1],x=p+y*n[g],R=b+y*n[g+1];s[4*h]=v,s[4*h+1]=w,s[4*h+2]=x,s[4*h+3]=R;var _=n[f+1],k=-n[f];_*n[g]+k*n[g+1]<0&&(_*=-1,k*=-1);var E=v+_*u,C=w+k*u;if(Math.pow(E-t,2)+Math.pow(C-e,2)<=d)return!0}return Gn(t,e,s)},Xn=function(t){for(var e,n,i,a,r,o,s,c,l=new Array(t.length/2),u=0;u<t.length/4;u++){e=t[4*u],n=t[4*u+1],i=t[4*u+2],a=t[4*u+3],u<t.length/4-1?(r=t[4*(u+1)],o=t[4*(u+1)+1],s=t[4*(u+1)+2],c=t[4*(u+1)+3]):(r=t[0],o=t[1],s=t[2],c=t[3]);var d=ii(e,n,i,a,r,o,s,c,!0);l[2*u]=d[0],l[2*u+1]=d[1]}return l},Jn=function(t,e){for(var n,i,a,r,o=new Array(2*t.length),s=0;s<t.length/2;s++){n=t[2*s],i=t[2*s+1],s<t.length/2-1?(a=t[2*(s+1)],r=t[2*(s+1)+1]):(a=t[0],r=t[1]);var c=r-i,l=-(a-n),u=Math.sqrt(c*c+l*l),d=c/u,h=l/u;o[4*s]=n+d*e,o[4*s+1]=i+h*e,o[4*s+2]=a+d*e,o[4*s+3]=r+h*e}return o},Qn=function(t,e,n,i,a,r){var o=n-t,s=i-e;o/=a,s/=r;var c=Math.sqrt(o*o+s*s),l=c-1;if(l<0)return[];var u=l/c;return[(n-t)*u+t,(i-e)*u+e]},ti=function(t,e,n,i,a,r,o){return t-=a,e-=r,(t/=n/2+o)*t+(e/=i/2+o)*e<=1},ei=function(t,e,n,i,a,r,o){var s=[n-t,i-e],c=[t-a,e-r],l=s[0]*s[0]+s[1]*s[1],u=2*(c[0]*s[0]+c[1]*s[1]),d=u*u-4*l*(c[0]*c[0]+c[1]*c[1]-o*o);if(d<0)return[];var h=(-u+Math.sqrt(d))/(2*l),f=(-u-Math.sqrt(d))/(2*l),g=Math.min(h,f),p=Math.max(h,f),b=[];if(g>=0&&g<=1&&b.push(g),p>=0&&p<=1&&b.push(p),0===b.length)return[];var m=b[0]*s[0]+t,y=b[0]*s[1]+e;return b.length>1?b[0]==b[1]?[m,y]:[m,y,b[1]*s[0]+t,b[1]*s[1]+e]:[m,y]},ni=function(t,e,n){return e<=t&&t<=n||n<=t&&t<=e?t:t<=e&&e<=n||n<=e&&e<=t?e:n},ii=function(t,e,n,i,a,r,o,s,c){var l=t-a,u=n-t,d=o-a,h=e-r,f=i-e,g=s-r,p=d*h-g*l,b=u*h-f*l,m=g*u-d*f;if(0!==m){var y=p/m,v=b/m,w=.001,x=0-w,R=1+w;return x<=y&&y<=R&&x<=v&&v<=R||c?[t+y*u,e+y*f]:[]}return 0===p||0===b?ni(t,n,o)===o?[o,s]:ni(t,n,a)===a?[a,r]:ni(a,o,n)===n?[n,i]:[]:[]},ai=function(t,e,n,i,a,r,o,s){var c,l,u=[],d=new Array(n.length),h=!0;if(null==r&&(h=!1),h){for(var f=0;f<d.length/2;f++)d[2*f]=n[2*f]*r+i,d[2*f+1]=n[2*f+1]*o+a;if(s>0){var g=Jn(d,-s);l=Xn(g)}else l=d}else l=n;for(var p,b,m,y,v=0;v<l.length/2;v++)p=l[2*v],b=l[2*v+1],v<l.length/2-1?(m=l[2*(v+1)],y=l[2*(v+1)+1]):(m=l[0],y=l[1]),0!==(c=ii(t,e,i,a,p,b,m,y)).length&&u.push(c[0],c[1]);return u},ri=function(t,e,n,i,a,r,o,s){for(var c,l=[],u=new Array(n.length),d=r/2,h=o/2,f=di(r,o),g=0;g<n.length/4;g++){var p=void 0,b=void 0;p=0===g?n.length-2:4*g-2,b=4*g+2;var m=i+d*n[4*g],y=a+h*n[4*g+1],v=-n[p]*n[b]-n[p+1]*n[b+1],w=f/Math.tan(Math.acos(v)/2),x=m-w*n[p],R=y-w*n[p+1],_=m+w*n[b],k=y+w*n[b+1];0===g?(u[n.length-2]=x,u[n.length-1]=R):(u[4*g-2]=x,u[4*g-1]=R),u[4*g]=_,u[4*g+1]=k;var E=n[p+1],C=-n[p];E*n[b]+C*n[b+1]<0&&(E*=-1,C*=-1),0!==(c=ei(t,e,i,a,x+E*f,R+C*f,f)).length&&l.push(c[0],c[1])}for(var S=0;S<u.length/4;S++)0!==(c=ii(t,e,i,a,u[4*S],u[4*S+1],u[4*S+2],u[4*S+3],!1)).length&&l.push(c[0],c[1]);if(l.length>2){for(var T=[l[0],l[1]],A=Math.pow(T[0]-t,2)+Math.pow(T[1]-e,2),D=1;D<l.length/2;D++){var I=Math.pow(l[2*D]-t,2)+Math.pow(l[2*D+1]-e,2);I<=A&&(T[0]=l[2*D],T[1]=l[2*D+1],A=I)}return T}return l},oi=function(t,e,n){var i=[t[0]-e[0],t[1]-e[1]],a=Math.sqrt(i[0]*i[0]+i[1]*i[1]),r=(a-n)/a;return r<0&&(r=1e-5),[e[0]+r*i[0],e[1]+r*i[1]]},si=function(t,e){var n=li(t,e);return n=ci(n)},ci=function(t){for(var e,n,i=t.length/2,a=1/0,r=1/0,o=-1/0,s=-1/0,c=0;c<i;c++)e=t[2*c],n=t[2*c+1],a=Math.min(a,e),o=Math.max(o,e),r=Math.min(r,n),s=Math.max(s,n);for(var l=2/(o-a),u=2/(s-r),d=0;d<i;d++)e=t[2*d]=t[2*d]*l,n=t[2*d+1]=t[2*d+1]*u,a=Math.min(a,e),o=Math.max(o,e),r=Math.min(r,n),s=Math.max(s,n);if(r<-1)for(var h=0;h<i;h++)n=t[2*h+1]=t[2*h+1]+(-1-r);return t},li=function(t,e){var n=1/t*2*Math.PI,i=t%2==0?Math.PI/2+n/2:Math.PI/2;i+=e;for(var a,r=new Array(2*t),o=0;o<t;o++)a=o*n+i,r[2*o]=Math.cos(a),r[2*o+1]=Math.sin(-a);return r},ui=function(t,e){return Math.min(t/4,e/4,8)},di=function(t,e){return Math.min(t/10,e/10,8)},hi=function(){return 8},fi=function(t,e,n){return[t-2*e+n,2*(e-t),t]},gi=function(t,e){return{heightOffset:Math.min(15,.05*e),widthOffset:Math.min(100,.25*t),ctrlPtOffsetPct:.05}},pi=Me({dampingFactor:.8,precision:1e-6,iterations:200,weight:function(t){return 1}}),bi={pageRank:function(t){for(var e=pi(t),n=e.dampingFactor,i=e.precision,a=e.iterations,r=e.weight,o=this._private.cy,s=this.byGroup(),c=s.nodes,l=s.edges,u=c.length,d=u*u,h=l.length,f=new Array(d),g=new Array(u),p=(1-n)/u,b=0;b<u;b++){for(var m=0;m<u;m++)f[b*u+m]=0;g[b]=0}for(var y=0;y<h;y++){var v=l[y],w=v.data("source"),x=v.data("target");if(w!==x){var R=c.indexOfId(w),_=c.indexOfId(x),k=r(v);f[_*u+R]+=k,g[R]+=k}}for(var E=1/u+p,C=0;C<u;C++)if(0===g[C])for(var S=0;S<u;S++)f[S*u+C]=E;else for(var T=0;T<u;T++){var A=T*u+C;f[A]=f[A]/g[C]+p}for(var D,I=new Array(u),L=new Array(u),O=0;O<u;O++)I[O]=1;for(var M=0;M<a;M++){for(var N=0;N<u;N++)L[N]=0;for(var B=0;B<u;B++)for(var P=0;P<u;P++){var F=B*u+P;L[B]+=f[F]*I[P]}kn(L),D=I,I=L,L=D;for(var j=0,$=0;$<u;$++){var z=D[$]-I[$];j+=z*z}if(j<i)break}return{rank:function(t){return t=o.collection(t)[0],I[c.indexOf(t)]}}}},mi=Me({root:null,weight:function(t){return 1},directed:!1,alpha:0}),yi={degreeCentralityNormalized:function(t){t=mi(t);var e=this.cy(),n=this.nodes(),i=n.length;if(t.directed){for(var a={},r={},o=0,s=0,c=0;c<i;c++){var l=n[c],u=l.id();t.root=l;var d=this.degreeCentrality(t);o<d.indegree&&(o=d.indegree),s<d.outdegree&&(s=d.outdegree),a[u]=d.indegree,r[u]=d.outdegree}return{indegree:function(t){return 0==o?0:(v(t)&&(t=e.filter(t)),a[t.id()]/o)},outdegree:function(t){return 0===s?0:(v(t)&&(t=e.filter(t)),r[t.id()]/s)}}}for(var h={},f=0,g=0;g<i;g++){var p=n[g];t.root=p;var b=this.degreeCentrality(t);f<b.degree&&(f=b.degree),h[p.id()]=b.degree}return{degree:function(t){return 0===f?0:(v(t)&&(t=e.filter(t)),h[t.id()]/f)}}},degreeCentrality:function(t){t=mi(t);var e=this.cy(),n=this,i=t,a=i.root,r=i.weight,o=i.directed,s=i.alpha;if(a=e.collection(a)[0],o){for(var c=a.connectedEdges(),l=c.filter((function(t){return t.target().same(a)&&n.has(t)})),u=c.filter((function(t){return t.source().same(a)&&n.has(t)})),d=l.length,h=u.length,f=0,g=0,p=0;p<l.length;p++)f+=r(l[p]);for(var b=0;b<u.length;b++)g+=r(u[b]);return{indegree:Math.pow(d,1-s)*Math.pow(f,s),outdegree:Math.pow(h,1-s)*Math.pow(g,s)}}for(var m=a.connectedEdges().intersection(n),y=m.length,v=0,w=0;w<m.length;w++)v+=r(m[w]);return{degree:Math.pow(y,1-s)*Math.pow(v,s)}}};yi.dc=yi.degreeCentrality,yi.dcn=yi.degreeCentralityNormalised=yi.degreeCentralityNormalized;var vi=Me({harmonic:!0,weight:function(){return 1},directed:!1,root:null}),wi={closenessCentralityNormalized:function(t){for(var e=vi(t),n=e.harmonic,i=e.weight,a=e.directed,r=this.cy(),o={},s=0,c=this.nodes(),l=this.floydWarshall({weight:i,directed:a}),u=0;u<c.length;u++){for(var d=0,h=c[u],f=0;f<c.length;f++)if(u!==f){var g=l.distance(h,c[f]);d+=n?1/g:g}n||(d=1/d),s<d&&(s=d),o[h.id()]=d}return{closeness:function(t){return 0==s?0:(t=v(t)?r.filter(t)[0].id():t.id(),o[t]/s)}}},closenessCentrality:function(t){var e=vi(t),n=e.root,i=e.weight,a=e.directed,r=e.harmonic;n=this.filter(n)[0];for(var o=this.dijkstra({root:n,weight:i,directed:a}),s=0,c=this.nodes(),l=0;l<c.length;l++){var u=c[l];if(!u.same(n)){var d=o.distanceTo(u);s+=r?1/d:d}}return r?s:1/s}};wi.cc=wi.closenessCentrality,wi.ccn=wi.closenessCentralityNormalised=wi.closenessCentralityNormalized;var xi=Me({weight:null,directed:!1}),Ri={betweennessCentrality:function(t){for(var e=xi(t),n=e.directed,i=e.weight,a=null!=i,r=this.cy(),o=this.nodes(),s={},c={},l=0,u={set:function(t,e){c[t]=e,e>l&&(l=e)},get:function(t){return c[t]}},d=0;d<o.length;d++){var h=o[d],f=h.id();s[f]=n?h.outgoers().nodes():h.openNeighborhood().nodes(),u.set(f,0)}for(var g=function(t){for(var e=o[t].id(),n=[],c={},l={},d={},h=new Ze((function(t,e){return d[t]-d[e]})),f=0;f<o.length;f++){var g=o[f].id();c[g]=[],l[g]=0,d[g]=1/0}for(l[e]=1,d[e]=0,h.push(e);!h.empty();){var p=h.pop();if(n.push(p),a)for(var b=0;b<s[p].length;b++){var m=s[p][b],y=r.getElementById(p),v=void 0;v=y.edgesTo(m).length>0?y.edgesTo(m)[0]:m.edgesTo(y)[0];var w=i(v);m=m.id(),d[m]>d[p]+w&&(d[m]=d[p]+w,h.nodes.indexOf(m)<0?h.push(m):h.updateItem(m),l[m]=0,c[m]=[]),d[m]==d[p]+w&&(l[m]=l[m]+l[p],c[m].push(p))}else for(var x=0;x<s[p].length;x++){var R=s[p][x].id();d[R]==1/0&&(h.push(R),d[R]=d[p]+1),d[R]==d[p]+1&&(l[R]=l[R]+l[p],c[R].push(p))}}for(var _={},k=0;k<o.length;k++)_[o[k].id()]=0;for(;n.length>0;){for(var E=n.pop(),C=0;C<c[E].length;C++){var S=c[E][C];_[S]=_[S]+l[S]/l[E]*(1+_[E])}E!=o[t].id()&&u.set(E,u.get(E)+_[E])}},p=0;p<o.length;p++)g(p);var b={betweenness:function(t){var e=r.collection(t).id();return u.get(e)},betweennessNormalized:function(t){if(0==l)return 0;var e=r.collection(t).id();return u.get(e)/l}};return b.betweennessNormalised=b.betweennessNormalized,b}};Ri.bc=Ri.betweennessCentrality;var _i=Me({expandFactor:2,inflateFactor:2,multFactor:1,maxIterations:20,attributes:[function(t){return 1}]}),ki=function(t){return _i(t)},Ei=function(t,e){for(var n=0,i=0;i<e.length;i++)n+=e[i](t);return n},Ci=function(t,e,n){for(var i=0;i<e;i++)t[i*e+i]=n},Si=function(t,e){for(var n,i=0;i<e;i++){n=0;for(var a=0;a<e;a++)n+=t[a*e+i];for(var r=0;r<e;r++)t[r*e+i]=t[r*e+i]/n}},Ti=function(t,e,n){for(var i=new Array(n*n),a=0;a<n;a++){for(var r=0;r<n;r++)i[a*n+r]=0;for(var o=0;o<n;o++)for(var s=0;s<n;s++)i[a*n+s]+=t[a*n+o]*e[o*n+s]}return i},Ai=function(t,e,n){for(var i=t.slice(0),a=1;a<n;a++)t=Ti(t,i,e);return t},Di=function(t,e,n){for(var i=new Array(e*e),a=0;a<e*e;a++)i[a]=Math.pow(t[a],n);return Si(i,e),i},Ii=function(t,e,n,i){for(var a=0;a<n;a++)if(Math.round(t[a]*Math.pow(10,i))/Math.pow(10,i)!=Math.round(e[a]*Math.pow(10,i))/Math.pow(10,i))return!1;return!0},Li=function(t,e,n,i){for(var a=[],r=0;r<e;r++){for(var o=[],s=0;s<e;s++)Math.round(1e3*t[r*e+s])/1e3>0&&o.push(n[s]);0!==o.length&&a.push(i.collection(o))}return a},Oi=function(t,e){for(var n=0;n<t.length;n++)if(!e[n]||t[n].id()!==e[n].id())return!1;return!0},Mi=function(t){for(var e=0;e<t.length;e++)for(var n=0;n<t.length;n++)e!=n&&Oi(t[e],t[n])&&t.splice(n,1);return t},Ni=function(t){for(var e=this.nodes(),n=this.edges(),i=this.cy(),a=ki(t),r={},o=0;o<e.length;o++)r[e[o].id()]=o;for(var s,c=e.length,l=c*c,u=new Array(l),d=0;d<l;d++)u[d]=0;for(var h=0;h<n.length;h++){var f=n[h],g=r[f.source().id()],p=r[f.target().id()],b=Ei(f,a.attributes);u[g*c+p]+=b,u[p*c+g]+=b}Ci(u,c,a.multFactor),Si(u,c);for(var m=!0,y=0;m&&y<a.maxIterations;)m=!1,s=Ai(u,c,a.expandFactor),u=Di(s,c,a.inflateFactor),Ii(u,s,l,4)||(m=!0),y++;var v=Li(u,c,e,i);return v=Mi(v)},Bi={markovClustering:Ni,mcl:Ni},Pi=function(t){return t},Fi=function(t,e){return Math.abs(e-t)},ji=function(t,e,n){return t+Fi(e,n)},$i=function(t,e,n){return t+Math.pow(n-e,2)},zi=function(t){return Math.sqrt(t)},Hi=function(t,e,n){return Math.max(t,Fi(e,n))},Ui=function(t,e,n,i,a){for(var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:Pi,o=i,s=0;s<t;s++)o=a(o,e(s),n(s));return r(o)},Vi={euclidean:function(t,e,n){return t>=2?Ui(t,e,n,0,$i,zi):Ui(t,e,n,0,ji)},squaredEuclidean:function(t,e,n){return Ui(t,e,n,0,$i)},manhattan:function(t,e,n){return Ui(t,e,n,0,ji)},max:function(t,e,n){return Ui(t,e,n,-1/0,Hi)}};function qi(t,e,n,i,a,r){var o;return o=w(t)?t:Vi[t]||Vi.euclidean,0===e&&w(t)?o(a,r):o(e,n,i,a,r)}Vi["squared-euclidean"]=Vi.squaredEuclidean,Vi.squaredeuclidean=Vi.squaredEuclidean;var Wi=Me({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),Yi=function(t){return Wi(t)},Gi=function(t,e,n,i,a){var r="kMedoids"!==a?function(t){return n[t]}:function(t){return i[t](n)},o=function(t){return i[t](e)},s=n,c=e;return qi(t,i.length,r,o,s,c)},Zi=function(t,e,n){for(var i=n.length,a=new Array(i),r=new Array(i),o=new Array(e),s=null,c=0;c<i;c++)a[c]=t.min(n[c]).value,r[c]=t.max(n[c]).value;for(var l=0;l<e;l++){s=[];for(var u=0;u<i;u++)s[u]=Math.random()*(r[u]-a[u])+a[u];o[l]=s}return o},Ki=function(t,e,n,i,a){for(var r=1/0,o=0,s=0;s<e.length;s++){var c=Gi(n,t,e[s],i,a);c<r&&(r=c,o=s)}return o},Xi=function(t,e,n){for(var i=[],a=null,r=0;r<e.length;r++)n[(a=e[r]).id()]===t&&i.push(a);return i},Ji=function(t,e,n){return Math.abs(e-t)<=n},Qi=function(t,e,n){for(var i=0;i<t.length;i++)for(var a=0;a<t[i].length;a++)if(Math.abs(t[i][a]-e[i][a])>n)return!1;return!0},ta=function(t,e,n){for(var i=0;i<n;i++)if(t===e[i])return!0;return!1},ea=function(t,e){var n=new Array(e);if(t.length<50)for(var i=0;i<e;i++){for(var a=t[Math.floor(Math.random()*t.length)];ta(a,n,i);)a=t[Math.floor(Math.random()*t.length)];n[i]=a}else for(var r=0;r<e;r++)n[r]=t[Math.floor(Math.random()*t.length)];return n},na=function(t,e,n){for(var i=0,a=0;a<e.length;a++)i+=Gi("manhattan",e[a],t,n,"kMedoids");return i},ia=function(t,e,n,i,a){for(var r,o,s=0;s<e.length;s++)for(var c=0;c<t.length;c++)i[s][c]=Math.pow(n[s][c],a.m);for(var l=0;l<t.length;l++)for(var u=0;u<a.attributes.length;u++){r=0,o=0;for(var d=0;d<e.length;d++)r+=i[d][l]*a.attributes[u](e[d]),o+=i[d][l];t[l][u]=r/o}},aa=function(t,e,n,i,a){for(var r=0;r<t.length;r++)e[r]=t[r].slice();for(var o,s,c,l=2/(a.m-1),u=0;u<n.length;u++)for(var d=0;d<i.length;d++){o=0;for(var h=0;h<n.length;h++)s=Gi(a.distance,i[d],n[u],a.attributes,"cmeans"),c=Gi(a.distance,i[d],n[h],a.attributes,"cmeans"),o+=Math.pow(s/c,l);t[d][u]=1/o}},ra=function(t,e,n,i){for(var a=new Array(n.k),r=0;r<a.length;r++)a[r]=[];for(var o,s,c=0;c<e.length;c++){o=-1/0,s=-1;for(var l=0;l<e[0].length;l++)e[c][l]>o&&(o=e[c][l],s=l);a[s].push(t[c])}for(var u=0;u<a.length;u++)a[u]=i.collection(a[u]);return a},oa=function(t){var e,n,i,a,r=this.cy(),o=this.nodes(),s=Yi(t);i=new Array(o.length);for(var c=0;c<o.length;c++)i[c]=new Array(s.k);n=new Array(o.length);for(var l=0;l<o.length;l++)n[l]=new Array(s.k);for(var u=0;u<o.length;u++){for(var d=0,h=0;h<s.k;h++)n[u][h]=Math.random(),d+=n[u][h];for(var f=0;f<s.k;f++)n[u][f]=n[u][f]/d}e=new Array(s.k);for(var g=0;g<s.k;g++)e[g]=new Array(s.attributes.length);a=new Array(o.length);for(var p=0;p<o.length;p++)a[p]=new Array(s.k);for(var b=!0,m=0;b&&m<s.maxIterations;)b=!1,ia(e,o,n,a,s),aa(n,i,e,o,s),Qi(n,i,s.sensitivityThreshold)||(b=!0),m++;return{clusters:ra(o,n,s,r),degreeOfMembership:n}},sa={kMeans:function(e){var n,i=this.cy(),a=this.nodes(),r=null,o=Yi(e),s=new Array(o.k),c={};o.testMode?"number"==typeof o.testCentroids?(o.testCentroids,n=Zi(a,o.k,o.attributes)):n="object"===t(o.testCentroids)?o.testCentroids:Zi(a,o.k,o.attributes):n=Zi(a,o.k,o.attributes);for(var l=!0,u=0;l&&u<o.maxIterations;){for(var d=0;d<a.length;d++)c[(r=a[d]).id()]=Ki(r,n,o.distance,o.attributes,"kMeans");l=!1;for(var h=0;h<o.k;h++){var f=Xi(h,a,c);if(0!==f.length){for(var g=o.attributes.length,p=n[h],b=new Array(g),m=new Array(g),y=0;y<g;y++){m[y]=0;for(var v=0;v<f.length;v++)r=f[v],m[y]+=o.attributes[y](r);b[y]=m[y]/f.length,Ji(b[y],p[y],o.sensitivityThreshold)||(l=!0)}n[h]=b,s[h]=i.collection(f)}}u++}return s},kMedoids:function(e){var n,i,a=this.cy(),r=this.nodes(),o=null,s=Yi(e),c=new Array(s.k),l={},u=new Array(s.k);s.testMode?"number"==typeof s.testCentroids||(n="object"===t(s.testCentroids)?s.testCentroids:ea(r,s.k)):n=ea(r,s.k);for(var d=!0,h=0;d&&h<s.maxIterations;){for(var f=0;f<r.length;f++)l[(o=r[f]).id()]=Ki(o,n,s.distance,s.attributes,"kMedoids");d=!1;for(var g=0;g<n.length;g++){var p=Xi(g,r,l);if(0!==p.length){u[g]=na(n[g],p,s.attributes);for(var b=0;b<p.length;b++)(i=na(p[b],p,s.attributes))<u[g]&&(u[g]=i,n[g]=p[b],d=!0);c[g]=a.collection(p)}}h++}return c},fuzzyCMeans:oa,fcm:oa},ca=Me({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),la={single:"min",complete:"max"},ua=function(t){var e=ca(t),n=la[e.linkage];return null!=n&&(e.linkage=n),e},da=function(t,e,n,i,a){for(var r,o=0,s=1/0,c=a.attributes,l=function(t,e){return qi(a.distance,c.length,(function(e){return c[e](t)}),(function(t){return c[t](e)}),t,e)},u=0;u<t.length;u++){var d=t[u].key,h=n[d][i[d]];h<s&&(o=d,s=h)}if("threshold"===a.mode&&s>=a.threshold||"dendrogram"===a.mode&&1===t.length)return!1;var f,g=e[o],p=e[i[o]];f="dendrogram"===a.mode?{left:g,right:p,key:g.key}:{value:g.value.concat(p.value),key:g.key},t[g.index]=f,t.splice(p.index,1),e[g.key]=f;for(var b=0;b<t.length;b++){var m=t[b];g.key===m.key?r=1/0:"min"===a.linkage?(r=n[g.key][m.key],n[g.key][m.key]>n[p.key][m.key]&&(r=n[p.key][m.key])):"max"===a.linkage?(r=n[g.key][m.key],n[g.key][m.key]<n[p.key][m.key]&&(r=n[p.key][m.key])):r="mean"===a.linkage?(n[g.key][m.key]*g.size+n[p.key][m.key]*p.size)/(g.size+p.size):"dendrogram"===a.mode?l(m.value,g.value):l(m.value[0],g.value[0]),n[g.key][m.key]=n[m.key][g.key]=r}for(var y=0;y<t.length;y++){var v=t[y].key;if(i[v]===g.key||i[v]===p.key){for(var w=v,x=0;x<t.length;x++){var R=t[x].key;n[v][R]<n[v][w]&&(w=R)}i[v]=w}t[y].index=y}return g.key=p.key=g.index=p.index=null,!0},ha=function t(e,n,i){e&&(e.value?n.push(e.value):(e.left&&t(e.left,n),e.right&&t(e.right,n)))},fa=function t(e,n){if(!e)return"";if(e.left&&e.right){var i=t(e.left,n),a=t(e.right,n),r=n.add({group:"nodes",data:{id:i+","+a}});return n.add({group:"edges",data:{source:i,target:r.id()}}),n.add({group:"edges",data:{source:a,target:r.id()}}),r.id()}return e.value?e.value.id():void 0},ga=function t(e,n,i){if(!e)return[];var a=[],r=[],o=[];return 0===n?(e.left&&ha(e.left,a),e.right&&ha(e.right,r),o=a.concat(r),[i.collection(o)]):1===n?e.value?[i.collection(e.value)]:(e.left&&ha(e.left,a),e.right&&ha(e.right,r),[i.collection(a),i.collection(r)]):e.value?[i.collection(e.value)]:(e.left&&(a=t(e.left,n-1,i)),e.right&&(r=t(e.right,n-1,i)),a.concat(r))},pa=function(t){for(var e=this.cy(),n=this.nodes(),i=ua(t),a=i.attributes,r=function(t,e){return qi(i.distance,a.length,(function(e){return a[e](t)}),(function(t){return a[t](e)}),t,e)},o=[],s=[],c=[],l=[],u=0;u<n.length;u++){var d={value:"dendrogram"===i.mode?n[u]:[n[u]],key:u,index:u};o[u]=d,l[u]=d,s[u]=[],c[u]=0}for(var h=0;h<o.length;h++)for(var f=0;f<=h;f++){var g=void 0;g="dendrogram"===i.mode?h===f?1/0:r(o[h].value,o[f].value):h===f?1/0:r(o[h].value[0],o[f].value[0]),s[h][f]=g,s[f][h]=g,g<s[h][c[h]]&&(c[h]=f)}for(var p=da(o,l,s,c,i);p;)p=da(o,l,s,c,i);var b;return"dendrogram"===i.mode?(b=ga(o[0],i.dendrogramDepth,e),i.addDendrogram&&fa(o[0],e)):(b=new Array(o.length),o.forEach((function(t,n){t.key=t.index=null,b[n]=e.collection(t.value)}))),b},ba={hierarchicalClustering:pa,hca:pa},ma=Me({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),ya=function(t){var e=t.damping,n=t.preference;.5<=e&&e<1||Ee("Damping must range on [0.5, 1). Got: ".concat(e));var i=["median","mean","min","max"];return i.some((function(t){return t===n}))||k(n)||Ee("Preference must be one of [".concat(i.map((function(t){return"'".concat(t,"'")})).join(", "),"] or a number. Got: ").concat(n)),ma(t)},va=function(t,e,n,i){var a=function(t,e){return i[e](t)};return-qi(t,i.length,(function(t){return a(e,t)}),(function(t){return a(n,t)}),e,n)},wa=function(t,e){return"median"===e?mn(t):"mean"===e?bn(t):"min"===e?gn(t):"max"===e?pn(t):e},xa=function(t,e,n){for(var i=[],a=0;a<t;a++)e[a*t+a]+n[a*t+a]>0&&i.push(a);return i},Ra=function(t,e,n){for(var i=[],a=0;a<t;a++){for(var r=-1,o=-1/0,s=0;s<n.length;s++){var c=n[s];e[a*t+c]>o&&(r=c,o=e[a*t+c])}r>0&&i.push(r)}for(var l=0;l<n.length;l++)i[n[l]]=n[l];return i},_a=function(t,e,n){for(var i=Ra(t,e,n),a=0;a<n.length;a++){for(var r=[],o=0;o<i.length;o++)i[o]===n[a]&&r.push(o);for(var s=-1,c=-1/0,l=0;l<r.length;l++){for(var u=0,d=0;d<r.length;d++)u+=e[r[d]*t+r[l]];u>c&&(s=l,c=u)}n[a]=r[s]}return i=Ra(t,e,n)},ka=function(t){for(var e=this.cy(),n=this.nodes(),i=ya(t),a={},r=0;r<n.length;r++)a[n[r].id()]=r;var o,s,c,l,u,d,h;s=(o=n.length)*o,c=new Array(s);for(var f=0;f<s;f++)c[f]=-1/0;for(var g=0;g<o;g++)for(var p=0;p<o;p++)g!==p&&(c[g*o+p]=va(i.distance,n[g],n[p],i.attributes));l=wa(c,i.preference);for(var b=0;b<o;b++)c[b*o+b]=l;u=new Array(s);for(var m=0;m<s;m++)u[m]=0;d=new Array(s);for(var y=0;y<s;y++)d[y]=0;for(var v=new Array(o),w=new Array(o),x=new Array(o),R=0;R<o;R++)v[R]=0,w[R]=0,x[R]=0;for(var _=new Array(o*i.minIterations),k=0;k<_.length;k++)_[k]=0;for(h=0;h<i.maxIterations;h++){for(var E=0;E<o;E++){for(var C=-1/0,S=-1/0,T=-1,A=0,D=0;D<o;D++)v[D]=u[E*o+D],(A=d[E*o+D]+c[E*o+D])>=C?(S=C,C=A,T=D):A>S&&(S=A);for(var I=0;I<o;I++)u[E*o+I]=(1-i.damping)*(c[E*o+I]-C)+i.damping*v[I];u[E*o+T]=(1-i.damping)*(c[E*o+T]-S)+i.damping*v[T]}for(var L=0;L<o;L++){for(var O=0,M=0;M<o;M++)v[M]=d[M*o+L],w[M]=Math.max(0,u[M*o+L]),O+=w[M];O-=w[L],w[L]=u[L*o+L],O+=w[L];for(var N=0;N<o;N++)d[N*o+L]=(1-i.damping)*Math.min(0,O-w[N])+i.damping*v[N];d[L*o+L]=(1-i.damping)*(O-w[L])+i.damping*v[L]}for(var B=0,P=0;P<o;P++){var F=d[P*o+P]+u[P*o+P]>0?1:0;_[h%i.minIterations*o+P]=F,B+=F}if(B>0&&(h>=i.minIterations-1||h==i.maxIterations-1)){for(var j=0,$=0;$<o;$++){x[$]=0;for(var z=0;z<i.minIterations;z++)x[$]+=_[z*o+$];(0===x[$]||x[$]===i.minIterations)&&j++}if(j===o)break}}for(var H=xa(o,u,d),U=_a(o,c,H),V={},q=0;q<H.length;q++)V[H[q]]=[];for(var W=0;W<n.length;W++){var Y=U[a[n[W].id()]];null!=Y&&V[Y].push(n[W])}for(var G=new Array(H.length),Z=0;Z<H.length;Z++)G[Z]=e.collection(V[H[Z]]);return G},Ea={affinityPropagation:ka,ap:ka},Ca=Me({root:void 0,directed:!1}),Sa={hierholzer:function(t){if(!R(t)){var e=arguments;t={root:e[0],directed:e[1]}}var n,i,a,r=Ca(t),o=r.root,s=r.directed,c=this,l=!1;o&&(a=v(o)?this.filter(o)[0].id():o[0].id());var u={},d={};s?c.forEach((function(t){var e=t.id();if(t.isNode()){var a=t.indegree(!0),r=t.outdegree(!0),o=a-r,s=r-a;1==o?n?l=!0:n=e:1==s?i?l=!0:i=e:(s>1||o>1)&&(l=!0),u[e]=[],t.outgoers().forEach((function(t){t.isEdge()&&u[e].push(t.id())}))}else d[e]=[void 0,t.target().id()]})):c.forEach((function(t){var e=t.id();t.isNode()?(t.degree(!0)%2&&(n?i?l=!0:i=e:n=e),u[e]=[],t.connectedEdges().forEach((function(t){return u[e].push(t.id())}))):d[e]=[t.source().id(),t.target().id()]}));var h={found:!1,trail:void 0};if(l)return h;if(i&&n)if(s){if(a&&i!=a)return h;a=i}else{if(a&&i!=a&&n!=a)return h;a||(a=i)}else a||(a=c[0].id());var f=function(t){for(var e,n,i,a=t,r=[t];u[a].length;)e=u[a].shift(),n=d[e][0],a!=(i=d[e][1])?(u[i]=u[i].filter((function(t){return t!=e})),a=i):!s&&a!=n&&(u[n]=u[n].filter((function(t){return t!=e})),a=n),r.unshift(e),r.unshift(a);return r},g=[],p=[];for(p=f(a);1!=p.length;)0==u[p[0]].length?(g.unshift(c.getElementById(p.shift())),g.unshift(c.getElementById(p.shift()))):p=f(p.shift()).concat(p);for(var b in g.unshift(c.getElementById(p.shift())),u)if(u[b].length)return h;return h.found=!0,h.trail=this.spawn(g,!0),h}},Ta=function(){var t=this,e={},n=0,i=0,a=[],r=[],o={},s=function(n,i){for(var o=r.length-1,s=[],c=t.spawn();r[o].x!=n||r[o].y!=i;)s.push(r.pop().edge),o--;s.push(r.pop().edge),s.forEach((function(n){var i=n.connectedNodes().intersection(t);c.merge(n),i.forEach((function(n){var i=n.id(),a=n.connectedEdges().intersection(t);c.merge(n),e[i].cutVertex?c.merge(a.filter((function(t){return t.isLoop()}))):c.merge(a)}))})),a.push(c)},c=function c(l,u,d){l===d&&(i+=1),e[u]={id:n,low:n++,cutVertex:!1};var h,f,g,p,b=t.getElementById(u).connectedEdges().intersection(t);0===b.size()?a.push(t.spawn(t.getElementById(u))):b.forEach((function(t){h=t.source().id(),f=t.target().id(),(g=h===u?f:h)!==d&&(p=t.id(),o[p]||(o[p]=!0,r.push({x:u,y:g,edge:t})),g in e?e[u].low=Math.min(e[u].low,e[g].id):(c(l,g,u),e[u].low=Math.min(e[u].low,e[g].low),e[u].id<=e[g].low&&(e[u].cutVertex=!0,s(u,g))))}))};t.forEach((function(t){if(t.isNode()){var n=t.id();n in e||(i=0,c(n,n),e[n].cutVertex=i>1)}}));var l=Object.keys(e).filter((function(t){return e[t].cutVertex})).map((function(e){return t.getElementById(e)}));return{cut:t.spawn(l),components:a}},Aa=function(){var t=this,e={},n=0,i=[],a=[],r=t.spawn(t),o=function o(s){if(a.push(s),e[s]={index:n,low:n++,explored:!1},t.getElementById(s).connectedEdges().intersection(t).forEach((function(t){var n=t.target().id();n!==s&&(n in e||o(n),e[n].explored||(e[s].low=Math.min(e[s].low,e[n].low)))})),e[s].index===e[s].low){for(var c=t.spawn();;){var l=a.pop();if(c.merge(t.getElementById(l)),e[l].low=e[s].index,e[l].explored=!0,l===s)break}var u=c.edgesWith(c),d=c.merge(u);i.push(d),r=r.difference(d)}};return t.forEach((function(t){if(t.isNode()){var n=t.id();n in e||o(n)}})),{cut:r,components:i}},Da={};[Ye,Xe,Je,tn,nn,rn,ln,bi,yi,wi,Ri,Bi,sa,ba,Ea,Sa,{hopcroftTarjanBiconnected:Ta,htbc:Ta,htb:Ta,hopcroftTarjanBiconnectedComponents:Ta},{tarjanStronglyConnected:Aa,tsc:Aa,tscc:Aa,tarjanStronglyConnectedComponents:Aa}].forEach((function(t){J(Da,t)}));var Ia=0,La=1,Oa=2,Ma=function t(e){if(!(this instanceof t))return new t(e);this.id="Thenable/1.0.7",this.state=Ia,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof e&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))};Ma.prototype={fulfill:function(t){return Na(this,La,"fulfillValue",t)},reject:function(t){return Na(this,Oa,"rejectReason",t)},then:function(t,e){var n=this,i=new Ma;return n.onFulfilled.push(Fa(t,i,"fulfill")),n.onRejected.push(Fa(e,i,"reject")),Ba(n),i.proxy}};var Na=function(t,e,n,i){return t.state===Ia&&(t.state=e,t[n]=i,Ba(t)),t},Ba=function(t){t.state===La?Pa(t,"onFulfilled",t.fulfillValue):t.state===Oa&&Pa(t,"onRejected",t.rejectReason)},Pa=function(t,e,n){if(0!==t[e].length){var i=t[e];t[e]=[];var a=function(){for(var t=0;t<i.length;t++)i[t](n)};"function"==typeof setImmediate?setImmediate(a):setTimeout(a,0)}},Fa=function(t,e,n){return function(i){if("function"!=typeof t)e[n].call(e,i);else{var a;try{a=t(i)}catch(r){return void e.reject(r)}ja(e,a)}}},ja=function e(n,i){if(n!==i&&n.proxy!==i){var a;if("object"===t(i)&&null!==i||"function"==typeof i)try{a=i.then}catch(o){return void n.reject(o)}if("function"!=typeof a)n.fulfill(i);else{var r=!1;try{a.call(i,(function(t){r||(r=!0,t===i?n.reject(new TypeError("circular thenable chain")):e(n,t))}),(function(t){r||(r=!0,n.reject(t))}))}catch(o){r||n.reject(o)}}}else n.reject(new TypeError("cannot resolve promise with itself"))};Ma.all=function(t){return new Ma((function(e,n){for(var i=new Array(t.length),a=0,r=function(n,r){i[n]=r,++a===t.length&&e(i)},o=0;o<t.length;o++)!function(e){var i=t[e];null!=i&&null!=i.then?i.then((function(t){r(e,t)}),(function(t){n(t)})):r(e,i)}(o)}))},Ma.resolve=function(t){return new Ma((function(e,n){e(t)}))},Ma.reject=function(t){return new Ma((function(e,n){n(t)}))};var $a=typeof Promise<"u"?Promise:Ma,za=function(t,e,n){var i=D(t),a=!i,r=this._private=J({duration:1e3},e,n);if(r.target=t,r.style=r.style||r.css,r.started=!1,r.playing=!1,r.hooked=!1,r.applying=!1,r.progress=0,r.completes=[],r.frames=[],r.complete&&w(r.complete)&&r.completes.push(r.complete),a){var o=t.position();r.startPosition=r.startPosition||{x:o.x,y:o.y},r.startStyle=r.startStyle||t.cy().style().getAnimationStartStyle(t,r.style)}if(i){var s=t.pan();r.startPan={x:s.x,y:s.y},r.startZoom=t.zoom()}this.length=1,this[0]=this},Ha=za.prototype;J(Ha,{instanceString:function(){return"animation"},hook:function(){var t=this._private;if(!t.hooked){var e=t.target._private.animation;(t.queue?e.queue:e.current).push(this),S(t.target)&&t.target.cy().addToAnimationPool(t.target),t.hooked=!0}return this},play:function(){var t=this._private;return 1===t.progress&&(t.progress=0),t.playing=!0,t.started=!1,t.stopped=!1,this.hook(),this},playing:function(){return this._private.playing},apply:function(){var t=this._private;return t.applying=!0,t.started=!1,t.stopped=!1,this.hook(),this},applying:function(){return this._private.applying},pause:function(){var t=this._private;return t.playing=!1,t.started=!1,this},stop:function(){var t=this._private;return t.playing=!1,t.started=!1,t.stopped=!0,this},rewind:function(){return this.progress(0)},fastforward:function(){return this.progress(1)},time:function(t){var e=this._private;return void 0===t?e.progress*e.duration:this.progress(t/e.duration)},progress:function(t){var e=this._private,n=e.playing;return void 0===t?e.progress:(n&&this.pause(),e.progress=t,e.started=!1,n&&this.play(),this)},completed:function(){return 1===this._private.progress},reverse:function(){var t=this._private,e=t.playing;e&&this.pause(),t.progress=1-t.progress,t.started=!1;var n=function(e,n){var i=t[e];null!=i&&(t[e]=t[n],t[n]=i)};if(n("zoom","startZoom"),n("pan","startPan"),n("position","startPosition"),t.style)for(var i=0;i<t.style.length;i++){var a=t.style[i],r=a.name,o=t.startStyle[r];t.startStyle[r]=a,t.style[i]=o}return e&&this.play(),this},promise:function(t){var e,n=this._private;return e="frame"===t?n.frames:n.completes,new $a((function(t,n){e.push((function(){t()}))}))}}),Ha.complete=Ha.completed,Ha.run=Ha.play,Ha.running=Ha.playing;var Ua={animated:function(){return function(){var t=this,e=void 0!==t.length?t:[t];if(!(this._private.cy||this).styleEnabled())return!1;var n=e[0];return n?n._private.animation.current.length>0:void 0}},clearQueue:function(){return function(){var t=this,e=void 0!==t.length?t:[t];if(!(this._private.cy||this).styleEnabled())return this;for(var n=0;n<e.length;n++)e[n]._private.animation.queue=[];return this}},delay:function(){return function(t,e){return(this._private.cy||this).styleEnabled()?this.animate({delay:t,duration:t,complete:e}):this}},delayAnimation:function(){return function(t,e){return(this._private.cy||this).styleEnabled()?this.animation({delay:t,duration:t,complete:e}):this}},animation:function(){return function(t,e){var n=this,i=void 0!==n.length,a=i?n:[n],r=this._private.cy||this,o=!i,s=!o;if(!r.styleEnabled())return this;var c=r.style();if(t=J({},t,e),0===Object.keys(t).length)return new za(a[0],t);switch(void 0===t.duration&&(t.duration=400),t.duration){case"slow":t.duration=600;break;case"fast":t.duration=200}if(s&&(t.style=c.getPropsList(t.style||t.css),t.css=void 0),s&&null!=t.renderedPosition){var l=t.renderedPosition,u=r.pan(),d=r.zoom();t.position=hn(l,d,u)}if(o&&null!=t.panBy){var h=t.panBy,f=r.pan();t.pan={x:f.x+h.x,y:f.y+h.y}}var g=t.center||t.centre;if(o&&null!=g){var p=r.getCenterPan(g.eles,t.zoom);null!=p&&(t.pan=p)}if(o&&null!=t.fit){var b=t.fit,m=r.getFitViewport(b.eles||b.boundingBox,b.padding);null!=m&&(t.pan=m.pan,t.zoom=m.zoom)}if(o&&R(t.zoom)){var y=r.getZoomedViewport(t.zoom);null!=y?(y.zoomed&&(t.zoom=y.zoom),y.panned&&(t.pan=y.pan)):t.zoom=null}return new za(a[0],t)}},animate:function(){return function(t,e){var n=this,i=void 0!==n.length?n:[n];if(!(this._private.cy||this).styleEnabled())return this;e&&(t=J({},t,e));for(var a=0;a<i.length;a++){var r=i[a],o=r.animated()&&(void 0===t.queue||t.queue);r.animation(t,o?{queue:!0}:void 0).play()}return this}},stop:function(){return function(t,e){var n=this,i=void 0!==n.length?n:[n],a=this._private.cy||this;if(!a.styleEnabled())return this;for(var r=0;r<i.length;r++){for(var o=i[r]._private,s=o.animation.current,c=0;c<s.length;c++){var l=s[c]._private;e&&(l.duration=0)}t&&(o.animation.queue=[]),e||(o.animation.current=[])}return a.notify("draw"),this}}},Va=Array.isArray,qa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Wa=/^\w*$/;function Ya(t,e){if(Va(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!$t(t))||Wa.test(t)||!qa.test(t)||null!=e&&t in Object(e)}var Ga=Ya,Za="[object AsyncFunction]",Ka="[object Function]",Xa="[object GeneratorFunction]",Ja="[object Proxy]";function Qa(t){if(!ct(t))return!1;var e=Nt(t);return e==Ka||e==Xa||e==Za||e==Ja}var tr,er=Qa,nr=ft["__core-js_shared__"],ir=(tr=/[^.]+$/.exec(nr&&nr.keys&&nr.keys.IE_PROTO||""))?"Symbol(src)_1."+tr:"";function ar(t){return!!ir&&ir in t}var rr=ar,or=Function.prototype.toString;function sr(t){if(null!=t){try{return or.call(t)}catch{}try{return t+""}catch{}}return""}var cr=sr,lr=/[\\^$.*+?()[\]{}|]/g,ur=/^\[object .+?Constructor\]$/,dr=Function.prototype,hr=Object.prototype,fr=dr.toString,gr=hr.hasOwnProperty,pr=RegExp("^"+fr.call(gr).replace(lr,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function br(t){return!(!ct(t)||rr(t))&&(er(t)?pr:ur).test(cr(t))}var mr=br;function yr(t,e){return null==t?void 0:t[e]}var vr=yr;function wr(t,e){var n=vr(t,e);return mr(n)?n:void 0}var xr=wr,Rr=xr(Object,"create");function _r(){this.__data__=Rr?Rr(null):{},this.size=0}var kr=_r;function Er(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Cr=Er,Sr="__lodash_hash_undefined__",Tr=Object.prototype.hasOwnProperty;function Ar(t){var e=this.__data__;if(Rr){var n=e[t];return n===Sr?void 0:n}return Tr.call(e,t)?e[t]:void 0}var Dr=Ar,Ir=Object.prototype.hasOwnProperty;function Lr(t){var e=this.__data__;return Rr?void 0!==e[t]:Ir.call(e,t)}var Or=Lr,Mr="__lodash_hash_undefined__";function Nr(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Rr&&void 0===e?Mr:e,this}var Br=Nr;function Pr(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}Pr.prototype.clear=kr,Pr.prototype.delete=Cr,Pr.prototype.get=Dr,Pr.prototype.has=Or,Pr.prototype.set=Br;var Fr=Pr;function jr(){this.__data__=[],this.size=0}var $r=jr;function zr(t,e){return t===e||t!=t&&e!=e}var Hr=zr;function Ur(t,e){for(var n=t.length;n--;)if(Hr(t[n][0],e))return n;return-1}var Vr=Ur,qr=Array.prototype.splice;function Wr(t){var e=this.__data__,n=Vr(e,t);return!(n<0||(n==e.length-1?e.pop():qr.call(e,n,1),--this.size,0))}var Yr=Wr;function Gr(t){var e=this.__data__,n=Vr(e,t);return n<0?void 0:e[n][1]}var Zr=Gr;function Kr(t){return Vr(this.__data__,t)>-1}var Xr=Kr;function Jr(t,e){var n=this.__data__,i=Vr(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}var Qr=Jr;function to(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}to.prototype.clear=$r,to.prototype.delete=Yr,to.prototype.get=Zr,to.prototype.has=Xr,to.prototype.set=Qr;var eo=to,no=xr(ft,"Map");function io(){this.size=0,this.__data__={hash:new Fr,map:new(no||eo),string:new Fr}}var ao=io;function ro(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}var oo=ro;function so(t,e){var n=t.__data__;return oo(e)?n["string"==typeof e?"string":"hash"]:n.map}var co=so;function lo(t){var e=co(this,t).delete(t);return this.size-=e?1:0,e}var uo=lo;function ho(t){return co(this,t).get(t)}var fo=ho;function go(t){return co(this,t).has(t)}var po=go;function bo(t,e){var n=co(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this}var mo=bo;function yo(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}yo.prototype.clear=ao,yo.prototype.delete=uo,yo.prototype.get=fo,yo.prototype.has=po,yo.prototype.set=mo;var vo=yo,wo="Expected a function";function xo(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(wo);var n=function(){var i=arguments,a=e?e.apply(this,i):i[0],r=n.cache;if(r.has(a))return r.get(a);var o=t.apply(this,i);return n.cache=r.set(a,o)||r,o};return n.cache=new(xo.Cache||vo),n}xo.Cache=vo;var Ro=xo,_o=500;function ko(t){var e=Ro(t,(function(t){return n.size===_o&&n.clear(),t})),n=e.cache;return e}var Eo=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Co=/\\(\\)?/g,So=ko((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Eo,(function(t,n,i,a){e.push(i?a.replace(Co,"$1"):n||t)})),e})),To=So;function Ao(t,e){for(var n=-1,i=null==t?0:t.length,a=Array(i);++n<i;)a[n]=e(t[n],n,t);return a}var Do=Ao,Io=1/0,Lo=xt?xt.prototype:void 0,Oo=Lo?Lo.toString:void 0;function Mo(t){if("string"==typeof t)return t;if(Va(t))return Do(t,Mo)+"";if($t(t))return Oo?Oo.call(t):"";var e=t+"";return"0"==e&&1/t==-Io?"-0":e}var No=Mo;function Bo(t){return null==t?"":No(t)}var Po=Bo;function Fo(t,e){return Va(t)?t:Ga(t,e)?[t]:To(Po(t))}var jo=Fo,$o=1/0;function zo(t){if("string"==typeof t||$t(t))return t;var e=t+"";return"0"==e&&1/t==-$o?"-0":e}var Ho=zo;function Uo(t,e){for(var n=0,i=(e=jo(e,t)).length;null!=t&&n<i;)t=t[Ho(e[n++])];return n&&n==i?t:void 0}var Vo=Uo;function qo(t,e,n){var i=null==t?void 0:Vo(t,e);return void 0===i?n:i}var Wo=qo,Yo=function(){try{var t=xr(Object,"defineProperty");return t({},"",{}),t}catch{}}(),Go=Yo;function Zo(t,e,n){"__proto__"==e&&Go?Go(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}var Ko=Zo,Xo=Object.prototype.hasOwnProperty;function Jo(t,e,n){var i=t[e];(!Xo.call(t,e)||!Hr(i,n)||void 0===n&&!(e in t))&&Ko(t,e,n)}var Qo=Jo,ts=9007199254740991,es=/^(?:0|[1-9]\d*)$/;function ns(t,e){var n=typeof t;return!!(e=e??ts)&&("number"==n||"symbol"!=n&&es.test(t))&&t>-1&&t%1==0&&t<e}var is=ns;function as(t,e,n,i){if(!ct(t))return t;for(var a=-1,r=(e=jo(e,t)).length,o=r-1,s=t;null!=s&&++a<r;){var c=Ho(e[a]),l=n;if("__proto__"===c||"constructor"===c||"prototype"===c)return t;if(a!=o){var u=s[c];void 0===(l=i?i(u,c,s):void 0)&&(l=ct(u)?u:is(e[a+1])?[]:{})}Qo(s,c,l),s=s[c]}return t}var rs=as;function os(t,e,n){return null==t?t:rs(t,e,n)}var ss=os;function cs(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n<i;)e[n]=t[n];return e}var ls=cs;function us(t){return Va(t)?Do(t,Ho):$t(t)?[t]:ls(To(Po(t)))}var ds=us,hs={eventAliasesOn:function(t){var e=t;e.addListener=e.listen=e.bind=e.on,e.unlisten=e.unbind=e.off=e.removeListener,e.trigger=e.emit,e.pon=e.promiseOn=function(t,e){var n=this,i=Array.prototype.slice.call(arguments,0);return new $a((function(t,e){var a=function(e){n.off.apply(n,o),t(e)},r=i.concat([a]),o=r.concat([]);n.on.apply(n,r)}))}}},fs={};[Ua,{data:function(t){return t=J({},{field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:function(t){},beforeSet:function(t,e){},onSet:function(t){},canSet:function(t){return!0}},t),function(e,n){var i=t,a=this,o=void 0!==a.length,s=o?a:[a],c=o?a[0]:a;if(v(e)){var l,u=-1!==e.indexOf(".")&&ds(e);if(i.allowGetting&&void 0===n)return c&&(i.beforeGet(c),l=u&&void 0===c._private[i.field][e]?Wo(c._private[i.field],u):c._private[i.field][e]),l;if(i.allowSetting&&void 0!==n&&!i.immutableKeys[e]){var d=r({},e,n);i.beforeSet(a,d);for(var h=0,f=s.length;h<f;h++){var g=s[h];i.canSet(g)&&(u&&void 0===c._private[i.field][e]?ss(g._private[i.field],u,n):g._private[i.field][e]=n)}i.updateStyle&&a.updateStyle(),i.onSet(a),i.settingTriggersEvent&&a[i.triggerFnName](i.settingEvent)}}else if(i.allowSetting&&R(e)){var p,b,m=e,y=Object.keys(m);i.beforeSet(a,m);for(var x=0;x<y.length;x++)if(b=m[p=y[x]],!i.immutableKeys[p])for(var _=0;_<s.length;_++){var k=s[_];i.canSet(k)&&(k._private[i.field][p]=b)}i.updateStyle&&a.updateStyle(),i.onSet(a),i.settingTriggersEvent&&a[i.triggerFnName](i.settingEvent)}else if(i.allowBinding&&w(e)){var E=e;a.on(i.bindingEvent,E)}else if(i.allowGetting&&void 0===e){var C;return c&&(i.beforeGet(c),C=c._private[i.field]),C}return a}},removeData:function(t){return t=J({},{field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}},t),function(e){var n=t,i=this,a=void 0!==i.length?i:[i];if(v(e)){for(var r=e.split(/\s+/),o=r.length,s=0;s<o;s++){var c=r[s];if(!O(c)&&!n.immutableKeys[c])for(var l=0,u=a.length;l<u;l++)a[l]._private[n.field][c]=void 0}n.triggerEvent&&i[n.triggerFnName](n.event)}else if(void 0===e){for(var d=0,h=a.length;d<h;d++)for(var f=a[d]._private[n.field],g=Object.keys(f),p=0;p<g.length;p++){var b=g[p];!n.immutableKeys[b]&&(f[b]=void 0)}n.triggerEvent&&i[n.triggerFnName](n.event)}return i}}},hs].forEach((function(t){J(fs,t)}));var gs={animate:fs.animate(),animation:fs.animation(),animated:fs.animated(),clearQueue:fs.clearQueue(),delay:fs.delay(),delayAnimation:fs.delayAnimation(),stop:fs.stop()},ps={classes:function(t){var e=this;if(void 0===t){var n=[];return e[0]._private.classes.forEach((function(t){return n.push(t)})),n}x(t)||(t=(t||"").match(/\S+/g)||[]);for(var i=[],a=new Ve(t),r=0;r<e.length;r++){for(var o=e[r],s=o._private,c=s.classes,l=!1,u=0;u<t.length;u++){var d=t[u];if(!c.has(d)){l=!0;break}}l||(l=c.size!==t.length),l&&(s.classes=a,i.push(o))}return i.length>0&&this.spawn(i).updateStyle().emit("class"),e},addClass:function(t){return this.toggleClass(t,!0)},hasClass:function(t){var e=this[0];return null!=e&&e._private.classes.has(t)},toggleClass:function(t,e){x(t)||(t=t.match(/\S+/g)||[]);for(var n=this,i=void 0===e,a=[],r=0,o=n.length;r<o;r++)for(var s=n[r],c=s._private.classes,l=!1,u=0;u<t.length;u++){var d=t[u],h=c.has(d),f=!1;e||i&&!h?(c.add(d),f=!0):(!e||i&&h)&&(c.delete(d),f=!0),!l&&f&&(a.push(s),l=!0)}return a.length>0&&this.spawn(a).updateStyle().emit("class"),n},removeClass:function(t){return this.toggleClass(t,!1)},flashClass:function(t,e){var n=this;if(null==e)e=250;else if(0===e)return n;return n.addClass(t),setTimeout((function(){n.removeClass(t)}),e),n}};ps.className=ps.classNames=ps.classes;var bs={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:U,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};bs.variable="(?:[\\w-.]|(?:\\\\"+bs.metaChar+"))+",bs.className="(?:[\\w-]|(?:\\\\"+bs.metaChar+"))+",bs.value=bs.string+"|"+bs.number,bs.id=bs.variable,function(){var t,e,n;for(t=bs.comparatorOp.split("|"),n=0;n<t.length;n++)e=t[n],bs.comparatorOp+="|@"+e;for(t=bs.comparatorOp.split("|"),n=0;n<t.length;n++)!((e=t[n]).indexOf("!")>=0)&&"="!==e&&(bs.comparatorOp+="|\\!"+e)}();var ms=function(){return{checks:[]}},ys={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},vs=[{selector:":selected",matches:function(t){return t.selected()}},{selector:":unselected",matches:function(t){return!t.selected()}},{selector:":selectable",matches:function(t){return t.selectable()}},{selector:":unselectable",matches:function(t){return!t.selectable()}},{selector:":locked",matches:function(t){return t.locked()}},{selector:":unlocked",matches:function(t){return!t.locked()}},{selector:":visible",matches:function(t){return t.visible()}},{selector:":hidden",matches:function(t){return!t.visible()}},{selector:":transparent",matches:function(t){return t.transparent()}},{selector:":grabbed",matches:function(t){return t.grabbed()}},{selector:":free",matches:function(t){return!t.grabbed()}},{selector:":removed",matches:function(t){return t.removed()}},{selector:":inside",matches:function(t){return!t.removed()}},{selector:":grabbable",matches:function(t){return t.grabbable()}},{selector:":ungrabbable",matches:function(t){return!t.grabbable()}},{selector:":animated",matches:function(t){return t.animated()}},{selector:":unanimated",matches:function(t){return!t.animated()}},{selector:":parent",matches:function(t){return t.isParent()}},{selector:":childless",matches:function(t){return t.isChildless()}},{selector:":child",matches:function(t){return t.isChild()}},{selector:":orphan",matches:function(t){return t.isOrphan()}},{selector:":nonorphan",matches:function(t){return t.isChild()}},{selector:":compound",matches:function(t){return t.isNode()?t.isParent():t.source().isParent()||t.target().isParent()}},{selector:":loop",matches:function(t){return t.isLoop()}},{selector:":simple",matches:function(t){return t.isSimple()}},{selector:":active",matches:function(t){return t.active()}},{selector:":inactive",matches:function(t){return!t.active()}},{selector:":backgrounding",matches:function(t){return t.backgrounding()}},{selector:":nonbackgrounding",matches:function(t){return!t.backgrounding()}}].sort((function(t,e){return X(t.selector,e.selector)})),ws=function(){for(var t,e={},n=0;n<vs.length;n++)e[(t=vs[n]).selector]=t.matches;return e}(),xs=function(t,e){return ws[t](e)},Rs="("+vs.map((function(t){return t.selector})).join("|")+")",_s=function(t){return t.replace(new RegExp("\\\\("+bs.metaChar+")","g"),(function(t,e){return e}))},ks=function(t,e,n){t[t.length-1]=n},Es=[{name:"group",query:!0,regex:"("+bs.group+")",populate:function(t,e,n){var i=o(n,1)[0];e.checks.push({type:ys.GROUP,value:"*"===i?i:i+"s"})}},{name:"state",query:!0,regex:Rs,populate:function(t,e,n){var i=o(n,1)[0];e.checks.push({type:ys.STATE,value:i})}},{name:"id",query:!0,regex:"\\#("+bs.id+")",populate:function(t,e,n){var i=o(n,1)[0];e.checks.push({type:ys.ID,value:_s(i)})}},{name:"className",query:!0,regex:"\\.("+bs.className+")",populate:function(t,e,n){var i=o(n,1)[0];e.checks.push({type:ys.CLASS,value:_s(i)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+bs.variable+")\\s*\\]",populate:function(t,e,n){var i=o(n,1)[0];e.checks.push({type:ys.DATA_EXIST,field:_s(i)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+bs.variable+")\\s*("+bs.comparatorOp+")\\s*("+bs.value+")\\s*\\]",populate:function(t,e,n){var i=o(n,3),a=i[0],r=i[1],s=i[2];s=null!=new RegExp("^"+bs.string+"$").exec(s)?s.substring(1,s.length-1):parseFloat(s),e.checks.push({type:ys.DATA_COMPARE,field:_s(a),operator:r,value:s})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+bs.boolOp+")\\s*("+bs.variable+")\\s*\\]",populate:function(t,e,n){var i=o(n,2),a=i[0],r=i[1];e.checks.push({type:ys.DATA_BOOL,field:_s(r),operator:a})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+bs.meta+")\\s*("+bs.comparatorOp+")\\s*("+bs.number+")\\s*\\]\\]",populate:function(t,e,n){var i=o(n,3),a=i[0],r=i[1],s=i[2];e.checks.push({type:ys.META_COMPARE,field:_s(a),operator:r,value:parseFloat(s)})}},{name:"nextQuery",separator:!0,regex:bs.separator,populate:function(t,e){var n=t.currentSubject,i=t.edgeCount,a=t.compoundCount,r=t[t.length-1];return null!=n&&(r.subject=n,t.currentSubject=null),r.edgeCount=i,r.compoundCount=a,t.edgeCount=0,t.compoundCount=0,t[t.length++]=ms()}},{name:"directedEdge",separator:!0,regex:bs.directedEdge,populate:function(t,e){if(null==t.currentSubject){var n=ms(),i=e,a=ms();return n.checks.push({type:ys.DIRECTED_EDGE,source:i,target:a}),ks(t,e,n),t.edgeCount++,a}var r=ms(),o=e,s=ms();return r.checks.push({type:ys.NODE_SOURCE,source:o,target:s}),ks(t,e,r),t.edgeCount++,s}},{name:"undirectedEdge",separator:!0,regex:bs.undirectedEdge,populate:function(t,e){if(null==t.currentSubject){var n=ms(),i=e,a=ms();return n.checks.push({type:ys.UNDIRECTED_EDGE,nodes:[i,a]}),ks(t,e,n),t.edgeCount++,a}var r=ms(),o=e,s=ms();return r.checks.push({type:ys.NODE_NEIGHBOR,node:o,neighbor:s}),ks(t,e,r),s}},{name:"child",separator:!0,regex:bs.child,populate:function(t,e){if(null==t.currentSubject){var n=ms(),i=ms(),a=t[t.length-1];return n.checks.push({type:ys.CHILD,parent:a,child:i}),ks(t,e,n),t.compoundCount++,i}if(t.currentSubject===e){var r=ms(),o=t[t.length-1],s=ms(),c=ms(),l=ms(),u=ms();return r.checks.push({type:ys.COMPOUND_SPLIT,left:o,right:s,subject:c}),c.checks=e.checks,e.checks=[{type:ys.TRUE}],u.checks.push({type:ys.TRUE}),s.checks.push({type:ys.PARENT,parent:u,child:l}),ks(t,o,r),t.currentSubject=c,t.compoundCount++,l}var d=ms(),h=ms(),f=[{type:ys.PARENT,parent:d,child:h}];return d.checks=e.checks,e.checks=f,t.compoundCount++,h}},{name:"descendant",separator:!0,regex:bs.descendant,populate:function(t,e){if(null==t.currentSubject){var n=ms(),i=ms(),a=t[t.length-1];return n.checks.push({type:ys.DESCENDANT,ancestor:a,descendant:i}),ks(t,e,n),t.compoundCount++,i}if(t.currentSubject===e){var r=ms(),o=t[t.length-1],s=ms(),c=ms(),l=ms(),u=ms();return r.checks.push({type:ys.COMPOUND_SPLIT,left:o,right:s,subject:c}),c.checks=e.checks,e.checks=[{type:ys.TRUE}],u.checks.push({type:ys.TRUE}),s.checks.push({type:ys.ANCESTOR,ancestor:u,descendant:l}),ks(t,o,r),t.currentSubject=c,t.compoundCount++,l}var d=ms(),h=ms(),f=[{type:ys.ANCESTOR,ancestor:d,descendant:h}];return d.checks=e.checks,e.checks=f,t.compoundCount++,h}},{name:"subject",modifier:!0,regex:bs.subject,populate:function(t,e){if(null!=t.currentSubject&&t.currentSubject!==e)return Se("Redefinition of subject in selector `"+t.toString()+"`"),!1;t.currentSubject=e;var n=t[t.length-1].checks[0],i=null==n?null:n.type;i===ys.DIRECTED_EDGE?n.type=ys.NODE_TARGET:i===ys.UNDIRECTED_EDGE&&(n.type=ys.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null)}}];Es.forEach((function(t){return t.regexObj=new RegExp("^"+t.regex)}));var Cs=function(t){for(var e,n,i,a=0;a<Es.length;a++){var r=Es[a],o=r.name,s=t.match(r.regexObj);if(null!=s){n=s,e=r,i=o;var c=s[0];t=t.substring(c.length);break}}return{expr:e,match:n,name:i,remaining:t}},Ss=function(t){var e=t.match(/^\s+/);if(e){var n=e[0];t=t.substring(n.length)}return t},Ts={parse:function(t){var e=this,n=e.inputText=t,i=e[0]=ms();for(e.length=1,n=Ss(n);;){var a=Cs(n);if(null==a.expr)return Se("The selector `"+t+"`is invalid"),!1;var r=a.match.slice(1),o=a.expr.populate(e,i,r);if(!1===o)return!1;if(null!=o&&(i=o),(n=a.remaining).match(/^\s*$/))break}var s=e[e.length-1];null!=e.currentSubject&&(s.subject=e.currentSubject),s.edgeCount=e.edgeCount,s.compoundCount=e.compoundCount;for(var c=0;c<e.length;c++){var l=e[c];if(l.compoundCount>0&&l.edgeCount>0)return Se("The selector `"+t+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(l.edgeCount>1)return Se("The selector `"+t+"` is invalid because it uses multiple edge selectors"),!1;1===l.edgeCount&&Se("The selector `"+t+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var t=function(t){return t??""},e=function(e){return v(e)?'"'+e+'"':t(e)},n=function(t){return" "+t+" "},i=function(i,r){var o=i.type,s=i.value;switch(o){case ys.GROUP:var c=t(s);return c.substring(0,c.length-1);case ys.DATA_COMPARE:var l=i.field,u=i.operator;return"["+l+n(t(u))+e(s)+"]";case ys.DATA_BOOL:var d=i.operator,h=i.field;return"["+t(d)+h+"]";case ys.DATA_EXIST:return"["+i.field+"]";case ys.META_COMPARE:var f=i.operator;return"[["+i.field+n(t(f))+e(s)+"]]";case ys.STATE:return s;case ys.ID:return"#"+s;case ys.CLASS:return"."+s;case ys.PARENT:case ys.CHILD:return a(i.parent,r)+n(">")+a(i.child,r);case ys.ANCESTOR:case ys.DESCENDANT:return a(i.ancestor,r)+" "+a(i.descendant,r);case ys.COMPOUND_SPLIT:var g=a(i.left,r),p=a(i.subject,r),b=a(i.right,r);return g+(g.length>0?" ":"")+p+b;case ys.TRUE:return""}},a=function(t,e){return t.checks.reduce((function(n,a,r){return n+(e===t&&0===r?"$":"")+i(a,e)}),"")},r="",o=0;o<this.length;o++){var s=this[o];r+=a(s,s.subject),this.length>1&&o<this.length-1&&(r+=", ")}return this.toStringCache=r,r}},As=function(t,e,n){var i,a,r,o=v(t),s=k(t),c=v(n),l=!1,u=!1,d=!1;switch(e.indexOf("!")>=0&&(e=e.replace("!",""),u=!0),e.indexOf("@")>=0&&(e=e.replace("@",""),l=!0),(o||c||l)&&(a=o||s?""+t:"",r=""+n),l&&(t=a=a.toLowerCase(),n=r=r.toLowerCase()),e){case"*=":i=a.indexOf(r)>=0;break;case"$=":i=a.indexOf(r,a.length-r.length)>=0;break;case"^=":i=0===a.indexOf(r);break;case"=":i=t===n;break;case">":d=!0,i=t>n;break;case">=":d=!0,i=t>=n;break;case"<":d=!0,i=t<n;break;case"<=":d=!0,i=t<=n;break;default:i=!1}return u&&(null!=t||!d)&&(i=!i),i},Ds=function(t,e){switch(e){case"?":return!!t;case"!":return!t;case"^":return void 0===t}},Is=function(t){return void 0!==t},Ls=function(t,e){return t.data(e)},Os=function(t,e){return t[e]()},Ms=[],Ns=function(t,e){return t.checks.every((function(t){return Ms[t.type](t,e)}))};Ms[ys.GROUP]=function(t,e){var n=t.value;return"*"===n||n===e.group()},Ms[ys.STATE]=function(t,e){var n=t.value;return xs(n,e)},Ms[ys.ID]=function(t,e){var n=t.value;return e.id()===n},Ms[ys.CLASS]=function(t,e){var n=t.value;return e.hasClass(n)},Ms[ys.META_COMPARE]=function(t,e){var n=t.field,i=t.operator,a=t.value;return As(Os(e,n),i,a)},Ms[ys.DATA_COMPARE]=function(t,e){var n=t.field,i=t.operator,a=t.value;return As(Ls(e,n),i,a)},Ms[ys.DATA_BOOL]=function(t,e){var n=t.field,i=t.operator;return Ds(Ls(e,n),i)},Ms[ys.DATA_EXIST]=function(t,e){var n=t.field;return t.operator,Is(Ls(e,n))},Ms[ys.UNDIRECTED_EDGE]=function(t,e){var n=t.nodes[0],i=t.nodes[1],a=e.source(),r=e.target();return Ns(n,a)&&Ns(i,r)||Ns(i,a)&&Ns(n,r)},Ms[ys.NODE_NEIGHBOR]=function(t,e){return Ns(t.node,e)&&e.neighborhood().some((function(e){return e.isNode()&&Ns(t.neighbor,e)}))},Ms[ys.DIRECTED_EDGE]=function(t,e){return Ns(t.source,e.source())&&Ns(t.target,e.target())},Ms[ys.NODE_SOURCE]=function(t,e){return Ns(t.source,e)&&e.outgoers().some((function(e){return e.isNode()&&Ns(t.target,e)}))},Ms[ys.NODE_TARGET]=function(t,e){return Ns(t.target,e)&&e.incomers().some((function(e){return e.isNode()&&Ns(t.source,e)}))},Ms[ys.CHILD]=function(t,e){return Ns(t.child,e)&&Ns(t.parent,e.parent())},Ms[ys.PARENT]=function(t,e){return Ns(t.parent,e)&&e.children().some((function(e){return Ns(t.child,e)}))},Ms[ys.DESCENDANT]=function(t,e){return Ns(t.descendant,e)&&e.ancestors().some((function(e){return Ns(t.ancestor,e)}))},Ms[ys.ANCESTOR]=function(t,e){return Ns(t.ancestor,e)&&e.descendants().some((function(e){return Ns(t.descendant,e)}))},Ms[ys.COMPOUND_SPLIT]=function(t,e){return Ns(t.subject,e)&&Ns(t.left,e)&&Ns(t.right,e)},Ms[ys.TRUE]=function(){return!0},Ms[ys.COLLECTION]=function(t,e){return t.value.has(e)},Ms[ys.FILTER]=function(t,e){return(0,t.value)(e)};var Bs={matches:function(t){for(var e=this,n=0;n<e.length;n++){var i=e[n];if(Ns(i,t))return!0}return!1},filter:function(t){var e=this;if(1===e.length&&1===e[0].checks.length&&e[0].checks[0].type===ys.ID)return t.getElementById(e[0].checks[0].value).collection();var n=function(t){for(var n=0;n<e.length;n++){var i=e[n];if(Ns(i,t))return!0}return!1};return null==e.text()&&(n=function(){return!0}),t.filter(n)}},Ps=function(t){this.inputText=t,this.currentSubject=null,this.compoundCount=0,this.edgeCount=0,this.length=0,null==t||v(t)&&t.match(/^\s*$/)||(S(t)?this.addQuery({checks:[{type:ys.COLLECTION,value:t.collection()}]}):w(t)?this.addQuery({checks:[{type:ys.FILTER,value:t}]}):v(t)?this.parse(t)||(this.invalid=!0):Ee("A selector must be created from a string; found "))},Fs=Ps.prototype;[Ts,Bs].forEach((function(t){return J(Fs,t)})),Fs.text=function(){return this.inputText},Fs.size=function(){return this.length},Fs.eq=function(t){return this[t]},Fs.sameText=function(t){return!this.invalid&&!t.invalid&&this.text()===t.text()},Fs.addQuery=function(t){this[this.length++]=t},Fs.selector=Fs.toString;var js={allAre:function(t){var e=new Ps(t);return this.every((function(t){return e.matches(t)}))},is:function(t){var e=new Ps(t);return this.some((function(t){return e.matches(t)}))},some:function(t,e){for(var n=0;n<this.length;n++)if(e?t.apply(e,[this[n],n,this]):t(this[n],n,this))return!0;return!1},every:function(t,e){for(var n=0;n<this.length;n++)if(!(e?t.apply(e,[this[n],n,this]):t(this[n],n,this)))return!1;return!0},same:function(t){if(this===t)return!0;t=this.cy().collection(t);var e=this.length;return e===t.length&&(1===e?this[0]===t[0]:this.every((function(e){return t.hasElementWithId(e.id())})))},anySame:function(t){return t=this.cy().collection(t),this.some((function(e){return t.hasElementWithId(e.id())}))},allAreNeighbors:function(t){t=this.cy().collection(t);var e=this.neighborhood();return t.every((function(t){return e.hasElementWithId(t.id())}))},contains:function(t){t=this.cy().collection(t);var e=this;return t.every((function(t){return e.hasElementWithId(t.id())}))}};js.allAreNeighbours=js.allAreNeighbors,js.has=js.contains,js.equal=js.equals=js.same;var $s,zs,Hs=function(t,e){return function(n,i,a,r){var o,s=n,c=this;if(null==s?o="":S(s)&&1===s.length&&(o=s.id()),1===c.length&&o){var l=c[0]._private,u=l.traversalCache=l.traversalCache||{},d=u[e]=u[e]||[],h=ge(o);return d[h]||(d[h]=t.call(c,n,i,a,r))}return t.call(c,n,i,a,r)}},Us={parent:function(t){var e=[];if(1===this.length){var n=this[0]._private.parent;if(n)return n}for(var i=0;i<this.length;i++){var a=this[i]._private.parent;a&&e.push(a)}return this.spawn(e,!0).filter(t)},parents:function(t){for(var e=[],n=this.parent();n.nonempty();){for(var i=0;i<n.length;i++){var a=n[i];e.push(a)}n=n.parent()}return this.spawn(e,!0).filter(t)},commonAncestors:function(t){for(var e,n=0;n<this.length;n++){var i=this[n].parents();e=(e=e||i).intersect(i)}return e.filter(t)},orphans:function(t){return this.stdFilter((function(t){return t.isOrphan()})).filter(t)},nonorphans:function(t){return this.stdFilter((function(t){return t.isChild()})).filter(t)},children:Hs((function(t){for(var e=[],n=0;n<this.length;n++)for(var i=this[n]._private.children,a=0;a<i.length;a++)e.push(i[a]);return this.spawn(e,!0).filter(t)}),"children"),siblings:function(t){return this.parent().children().not(this).filter(t)},isParent:function(){var t=this[0];if(t)return t.isNode()&&0!==t._private.children.length},isChildless:function(){var t=this[0];if(t)return t.isNode()&&0===t._private.children.length},isChild:function(){var t=this[0];if(t)return t.isNode()&&null!=t._private.parent},isOrphan:function(){var t=this[0];if(t)return t.isNode()&&null==t._private.parent},descendants:function(t){var e=[];function n(t){for(var i=0;i<t.length;i++){var a=t[i];e.push(a),a.children().nonempty()&&n(a.children())}}return n(this.children()),this.spawn(e,!0).filter(t)}};function Vs(t,e,n,i){for(var a=[],r=new Ve,o=t.cy().hasCompoundNodes(),s=0;s<t.length;s++){var c=t[s];n?a.push(c):o&&i(a,r,c)}for(;a.length>0;){var l=a.shift();e(l),r.add(l.id()),o&&i(a,r,l)}return t}function qs(t,e,n){if(n.isParent())for(var i=n._private.children,a=0;a<i.length;a++){var r=i[a];e.has(r.id())||t.push(r)}}function Ws(t,e,n){if(n.isChild()){var i=n._private.parent;e.has(i.id())||t.push(i)}}function Ys(t,e,n){Ws(t,e,n),qs(t,e,n)}Us.forEachDown=function(t){return Vs(this,t,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],qs)},Us.forEachUp=function(t){return Vs(this,t,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Ws)},Us.forEachUpAndDown=function(t){return Vs(this,t,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Ys)},Us.ancestors=Us.parents,($s=zs={data:fs.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:fs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:fs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:fs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:fs.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:fs.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var t=this[0];if(t)return t._private.data.id}}).attr=$s.data,$s.removeAttr=$s.removeData;var Gs=zs,Zs={};function Ks(t){return function(e){var n=this;if(void 0===e&&(e=!0),0===n.length);else if(n.isNode()&&!n.removed()){for(var i=0,a=n[0],r=a._private.edges,o=0;o<r.length;o++){var s=r[o];!e&&s.isLoop()||(i+=t(a,s))}return i}}}function Xs(t,e){return function(n){for(var i,a=this.nodes(),r=0;r<a.length;r++){var o=a[r][t](n);void 0!==o&&(void 0===i||e(o,i))&&(i=o)}return i}}J(Zs,{degree:Ks((function(t,e){return e.source().same(e.target())?2:1})),indegree:Ks((function(t,e){return e.target().same(t)?1:0})),outdegree:Ks((function(t,e){return e.source().same(t)?1:0}))}),J(Zs,{minDegree:Xs("degree",(function(t,e){return t<e})),maxDegree:Xs("degree",(function(t,e){return t>e})),minIndegree:Xs("indegree",(function(t,e){return t<e})),maxIndegree:Xs("indegree",(function(t,e){return t>e})),minOutdegree:Xs("outdegree",(function(t,e){return t<e})),maxOutdegree:Xs("outdegree",(function(t,e){return t>e}))}),J(Zs,{totalDegree:function(t){for(var e=0,n=this.nodes(),i=0;i<n.length;i++)e+=n[i].degree(t);return e}});var Js,Qs,tc=function(t,e,n){for(var i=0;i<t.length;i++){var a=t[i];if(!a.locked()){var r=a._private.position,o={x:null!=e.x?e.x-r.x:0,y:null!=e.y?e.y-r.y:0};a.isParent()&&!(0===o.x&&0===o.y)&&a.children().shift(o,n),a.dirtyBoundingBoxCache()}}},ec={field:"position",bindingEvent:"position",allowBinding:!0,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!0,triggerFnName:"emitAndNotify",allowGetting:!0,validKeys:["x","y"],beforeGet:function(t){t.updateCompoundBounds()},beforeSet:function(t,e){tc(t,e,!1)},onSet:function(t){t.dirtyCompoundBoundsCache()},canSet:function(t){return!t.locked()}};(Js=Qs={position:fs.data(ec),silentPosition:fs.data(J({},ec,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(t,e){tc(t,e,!0)},onSet:function(t){t.dirtyCompoundBoundsCache()}})),positions:function(t,e){if(R(t))e?this.silentPosition(t):this.position(t);else if(w(t)){var n=t,i=this.cy();i.startBatch();for(var a=0;a<this.length;a++){var r=this[a],o=void 0;(o=n(r,a))&&(e?r.silentPosition(o):r.position(o))}i.endBatch()}return this},silentPositions:function(t){return this.positions(t,!0)},shift:function(t,e,n){var i;if(R(t)?(i={x:k(t.x)?t.x:0,y:k(t.y)?t.y:0},n=e):v(t)&&k(e)&&((i={x:0,y:0})[t]=e),null!=i){var a=this.cy();a.startBatch();for(var r=0;r<this.length;r++){var o=this[r];if(!(a.hasCompoundNodes()&&o.isChild()&&o.ancestors().anySame(this))){var s=o.position(),c={x:s.x+i.x,y:s.y+i.y};n?o.silentPosition(c):o.position(c)}}a.endBatch()}return this},silentShift:function(t,e){return R(t)?this.shift(t,!0):v(t)&&k(e)&&this.shift(t,e,!0),this},renderedPosition:function(t,e){var n=this[0],i=this.cy(),a=i.zoom(),r=i.pan(),o=R(t)?t:void 0,s=void 0!==o||void 0!==e&&v(t);if(n&&n.isNode()){if(!s){var c=n.position();return o=dn(c,a,r),void 0===t?o:o[t]}for(var l=0;l<this.length;l++){var u=this[l];void 0!==e?u.position(t,(e-r[t])/a):void 0!==o&&u.position(hn(o,a,r))}}else if(!s)return;return this},relativePosition:function(t,e){var n=this[0],i=this.cy(),a=R(t)?t:void 0,r=void 0!==a||void 0!==e&&v(t),o=i.hasCompoundNodes();if(n&&n.isNode()){if(!r){var s=n.position(),c=o?n.parent():null,l=c&&c.length>0,u=l;l&&(c=c[0]);var d=u?c.position():{x:0,y:0};return a={x:s.x-d.x,y:s.y-d.y},void 0===t?a:a[t]}for(var h=0;h<this.length;h++){var f=this[h],g=o?f.parent():null,p=g&&g.length>0,b=p;p&&(g=g[0]);var m=b?g.position():{x:0,y:0};void 0!==e?f.position(t,e+m[t]):void 0!==a&&f.position({x:a.x+m.x,y:a.y+m.y})}}else if(!r)return;return this}}).modelPosition=Js.point=Js.position,Js.modelPositions=Js.points=Js.positions,Js.renderedPoint=Js.renderedPosition,Js.relativePoint=Js.relativePosition;var nc,ic,ac=Qs;nc=ic={},ic.renderedBoundingBox=function(t){var e=this.boundingBox(t),n=this.cy(),i=n.zoom(),a=n.pan(),r=e.x1*i+a.x,o=e.x2*i+a.x,s=e.y1*i+a.y,c=e.y2*i+a.y;return{x1:r,x2:o,y1:s,y2:c,w:o-r,h:c-s}},ic.dirtyCompoundBoundsCache=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.cy();return e.styleEnabled()&&e.hasCompoundNodes()?(this.forEachUp((function(e){if(e.isParent()){var n=e._private;n.compoundBoundsClean=!1,n.bbCache=null,t||e.emitAndNotify("bounds")}})),this):this},ic.updateCompoundBounds=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!t&&e.batching())return this;function n(t){if(t.isParent()){var e=t._private,n=t.children(),i="include"===t.pstyle("compound-sizing-wrt-labels").value,a={width:{val:t.pstyle("min-width").pfValue,left:t.pstyle("min-width-bias-left"),right:t.pstyle("min-width-bias-right")},height:{val:t.pstyle("min-height").pfValue,top:t.pstyle("min-height-bias-top"),bottom:t.pstyle("min-height-bias-bottom")}},r=n.boundingBox({includeLabels:i,includeOverlays:!1,useCache:!1}),o=e.position;(0===r.w||0===r.h)&&((r={w:t.pstyle("width").pfValue,h:t.pstyle("height").pfValue}).x1=o.x-r.w/2,r.x2=o.x+r.w/2,r.y1=o.y-r.h/2,r.y2=o.y+r.h/2);var s=a.width.left.value;"px"===a.width.left.units&&a.width.val>0&&(s=100*s/a.width.val);var c=a.width.right.value;"px"===a.width.right.units&&a.width.val>0&&(c=100*c/a.width.val);var l=a.height.top.value;"px"===a.height.top.units&&a.height.val>0&&(l=100*l/a.height.val);var u=a.height.bottom.value;"px"===a.height.bottom.units&&a.height.val>0&&(u=100*u/a.height.val);var d=m(a.width.val-r.w,s,c),h=d.biasDiff,f=d.biasComplementDiff,g=m(a.height.val-r.h,l,u),p=g.biasDiff,b=g.biasComplementDiff;e.autoPadding=y(r.w,r.h,t.pstyle("padding"),t.pstyle("padding-relative-to").value),e.autoWidth=Math.max(r.w,a.width.val),o.x=(-h+r.x1+r.x2+f)/2,e.autoHeight=Math.max(r.h,a.height.val),o.y=(-p+r.y1+r.y2+b)/2}function m(t,e,n){var i=0,a=0,r=e+n;return t>0&&r>0&&(i=e/r*t,a=n/r*t),{biasDiff:i,biasComplementDiff:a}}function y(t,e,n,i){if("%"!==n.units)return"px"===n.units?n.pfValue:0;switch(i){case"width":return t>0?n.pfValue*t:0;case"height":return e>0?n.pfValue*e:0;case"average":return t>0&&e>0?n.pfValue*(t+e)/2:0;case"min":return t>0&&e>0?t>e?n.pfValue*e:n.pfValue*t:0;case"max":return t>0&&e>0?t>e?n.pfValue*t:n.pfValue*e:0;default:return 0}}}for(var i=0;i<this.length;i++){var a=this[i],r=a._private;(!r.compoundBoundsClean||t)&&(n(a),e.batching()||(r.compoundBoundsClean=!0))}return this};var rc=function(t){return t===1/0||t===-1/0?0:t},oc=function(t,e,n,i,a){i-e==0||a-n==0||null==e||null==n||null==i||null==a||(t.x1=e<t.x1?e:t.x1,t.x2=i>t.x2?i:t.x2,t.y1=n<t.y1?n:t.y1,t.y2=a>t.y2?a:t.y2,t.w=t.x2-t.x1,t.h=t.y2-t.y1)},sc=function(t,e){return null==e?t:oc(t,e.x1,e.y1,e.x2,e.y2)},cc=function(t,e,n){return Fe(t,e,n)},lc=function(t,e,n){if(!e.cy().headless()){var i,a,r=e._private,o=r.rstyle,s=o.arrowWidth/2;if("none"!==e.pstyle(n+"-arrow-shape").value){"source"===n?(i=o.srcX,a=o.srcY):"target"===n?(i=o.tgtX,a=o.tgtY):(i=o.midX,a=o.midY);var c=r.arrowBounds=r.arrowBounds||{},l=c[n]=c[n]||{};l.x1=i-s,l.y1=a-s,l.x2=i+s,l.y2=a+s,l.w=l.x2-l.x1,l.h=l.y2-l.y1,Mn(l,1),oc(t,l.x1,l.y1,l.x2,l.y2)}}},uc=function(t,e,n){if(!e.cy().headless()){var i;i=n?n+"-":"";var a=e._private,r=a.rstyle;if(e.pstyle(i+"label").strValue){var o,s,c,l,u=e.pstyle("text-halign"),d=e.pstyle("text-valign"),h=cc(r,"labelWidth",n),f=cc(r,"labelHeight",n),g=cc(r,"labelX",n),p=cc(r,"labelY",n),b=e.pstyle(i+"text-margin-x").pfValue,m=e.pstyle(i+"text-margin-y").pfValue,y=e.isEdge(),v=e.pstyle(i+"text-rotation"),w=e.pstyle("text-outline-width").pfValue,x=e.pstyle("text-border-width").pfValue/2,R=e.pstyle("text-background-padding").pfValue,_=2,k=f,E=h,C=E/2,S=k/2;if(y)o=g-C,s=g+C,c=p-S,l=p+S;else{switch(u.value){case"left":o=g-E,s=g;break;case"center":o=g-C,s=g+C;break;case"right":o=g,s=g+E}switch(d.value){case"top":c=p-k,l=p;break;case"center":c=p-S,l=p+S;break;case"bottom":c=p,l=p+k}}o+=b-Math.max(w,x)-R-_,s+=b+Math.max(w,x)+R+_,c+=m-Math.max(w,x)-R-_,l+=m+Math.max(w,x)+R+_;var T=n||"main",A=a.labelBounds,D=A[T]=A[T]||{};D.x1=o,D.y1=c,D.x2=s,D.y2=l,D.w=s-o,D.h=l-c;var I=y&&"autorotate"===v.strValue,L=null!=v.pfValue&&0!==v.pfValue;if(I||L){var O=I?cc(a.rstyle,"labelAngle",n):v.pfValue,M=Math.cos(O),N=Math.sin(O),B=(o+s)/2,P=(c+l)/2;if(!y){switch(u.value){case"left":B=s;break;case"right":B=o}switch(d.value){case"top":P=l;break;case"bottom":P=c}}var F=function(t,e){return{x:(t-=B)*M-(e-=P)*N+B,y:t*N+e*M+P}},j=F(o,c),$=F(o,l),z=F(s,c),H=F(s,l);o=Math.min(j.x,$.x,z.x,H.x),s=Math.max(j.x,$.x,z.x,H.x),c=Math.min(j.y,$.y,z.y,H.y),l=Math.max(j.y,$.y,z.y,H.y)}var U=T+"Rot",V=A[U]=A[U]||{};V.x1=o,V.y1=c,V.x2=s,V.y2=l,V.w=s-o,V.h=l-c,oc(t,o,c,s,l),oc(a.labelBounds.all,o,c,s,l)}return t}},dc=function(t,e){var n,i,a,r,o,s,c=t._private.cy,l=c.styleEnabled(),u=c.headless(),d=An(),h=t._private,f=t.isNode(),g=t.isEdge(),p=h.rstyle,b=f&&l?t.pstyle("bounds-expansion").pfValue:[0],m=function(t){return"none"!==t.pstyle("display").value},y=!l||m(t)&&(!g||m(t.source())&&m(t.target()));if(y){var v=0;l&&e.includeOverlays&&0!==t.pstyle("overlay-opacity").value&&(v=t.pstyle("overlay-padding").value);var w=0;l&&e.includeUnderlays&&0!==t.pstyle("underlay-opacity").value&&(w=t.pstyle("underlay-padding").value);var x=Math.max(v,w),R=0;if(l&&(R=t.pstyle("width").pfValue/2),f&&e.includeNodes){var _=t.position();o=_.x,s=_.y;var k=t.outerWidth()/2,E=t.outerHeight()/2;oc(d,n=o-k,a=s-E,i=o+k,r=s+E)}else if(g&&e.includeEdges)if(l&&!u){var C=t.pstyle("curve-style").strValue;if(n=Math.min(p.srcX,p.midX,p.tgtX),i=Math.max(p.srcX,p.midX,p.tgtX),a=Math.min(p.srcY,p.midY,p.tgtY),r=Math.max(p.srcY,p.midY,p.tgtY),oc(d,n-=R,a-=R,i+=R,r+=R),"haystack"===C){var S=p.haystackPts;if(S&&2===S.length){if(n=S[0].x,a=S[0].y,n>(i=S[1].x)){var T=n;n=i,i=T}if(a>(r=S[1].y)){var A=a;a=r,r=A}oc(d,n-R,a-R,i+R,r+R)}}else if("bezier"===C||"unbundled-bezier"===C||"segments"===C||"taxi"===C){var D;switch(C){case"bezier":case"unbundled-bezier":D=p.bezierPts;break;case"segments":case"taxi":D=p.linePts}if(null!=D)for(var I=0;I<D.length;I++){var L=D[I];n=L.x-R,i=L.x+R,a=L.y-R,r=L.y+R,oc(d,n,a,i,r)}}}else{var O=t.source().position(),M=t.target().position();if((n=O.x)>(i=M.x)){var N=n;n=i,i=N}if((a=O.y)>(r=M.y)){var B=a;a=r,r=B}oc(d,n-=R,a-=R,i+=R,r+=R)}if(l&&e.includeEdges&&g&&(lc(d,t,"mid-source"),lc(d,t,"mid-target"),lc(d,t,"source"),lc(d,t,"target")),l&&"yes"===t.pstyle("ghost").value){var P=t.pstyle("ghost-offset-x").pfValue,F=t.pstyle("ghost-offset-y").pfValue;oc(d,d.x1+P,d.y1+F,d.x2+P,d.y2+F)}var j=h.bodyBounds=h.bodyBounds||{};Bn(j,d),Nn(j,b),Mn(j,1),l&&(n=d.x1,i=d.x2,a=d.y1,r=d.y2,oc(d,n-x,a-x,i+x,r+x));var $=h.overlayBounds=h.overlayBounds||{};Bn($,d),Nn($,b),Mn($,1);var z=h.labelBounds=h.labelBounds||{};null!=z.all?In(z.all):z.all=An(),l&&e.includeLabels&&(e.includeMainLabels&&uc(d,t,null),g&&(e.includeSourceLabels&&uc(d,t,"source"),e.includeTargetLabels&&uc(d,t,"target")))}return d.x1=rc(d.x1),d.y1=rc(d.y1),d.x2=rc(d.x2),d.y2=rc(d.y2),d.w=rc(d.x2-d.x1),d.h=rc(d.y2-d.y1),d.w>0&&d.h>0&&y&&(Nn(d,b),Mn(d,1)),d},hc=function(t){var e=0,n=function(t){return(t?1:0)<<e++},i=0;return i+=n(t.incudeNodes),i+=n(t.includeEdges),i+=n(t.includeLabels),i+=n(t.includeMainLabels),i+=n(t.includeSourceLabels),i+=n(t.includeTargetLabels),i+=n(t.includeOverlays)},fc=function(t){if(t.isEdge()){var e=t.source().position(),n=t.target().position(),i=function(t){return Math.round(t)};return fe([i(e.x),i(e.y),i(n.x),i(n.y)])}return 0},gc=function(t,e){var n,i=t._private,a=t.isEdge(),r=(null==e?bc:hc(e))===bc,o=fc(t),s=i.bbCachePosKey===o,c=e.useCache&&s,l=function(t){return null==t._private.bbCache||t._private.styleDirty};if(!c||l(t)||a&&l(t.source())||l(t.target())?(s||t.recalculateRenderedStyle(c),n=dc(t,pc),i.bbCache=n,i.bbCachePosKey=o):n=i.bbCache,!r){var u=t.isNode();n=An(),(e.includeNodes&&u||e.includeEdges&&!u)&&(e.includeOverlays?sc(n,i.overlayBounds):sc(n,i.bodyBounds)),e.includeLabels&&(e.includeMainLabels&&(!a||e.includeSourceLabels&&e.includeTargetLabels)?sc(n,i.labelBounds.all):(e.includeMainLabels&&sc(n,i.labelBounds.mainRot),e.includeSourceLabels&&sc(n,i.labelBounds.sourceRot),e.includeTargetLabels&&sc(n,i.labelBounds.targetRot))),n.w=n.x2-n.x1,n.h=n.y2-n.y1}return n},pc={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,useCache:!0},bc=hc(pc),mc=Me(pc);ic.boundingBox=function(t){var e;if(1!==this.length||null==this[0]._private.bbCache||this[0]._private.styleDirty||void 0!==t&&void 0!==t.useCache&&!0!==t.useCache){e=An();var n=mc(t=t||pc),i=this;if(i.cy().styleEnabled())for(var a=0;a<i.length;a++){var r=i[a],o=r._private,s=fc(r),c=o.bbCachePosKey===s,l=n.useCache&&c&&!o.styleDirty;r.recalculateRenderedStyle(l)}this.updateCompoundBounds(!t.useCache);for(var u=0;u<i.length;u++){var d=i[u];sc(e,gc(d,n))}}else t=void 0===t?pc:mc(t),e=gc(this[0],t);return e.x1=rc(e.x1),e.y1=rc(e.y1),e.x2=rc(e.x2),e.y2=rc(e.y2),e.w=rc(e.x2-e.x1),e.h=rc(e.y2-e.y1),e},ic.dirtyBoundingBoxCache=function(){for(var t=0;t<this.length;t++){var e=this[t]._private;e.bbCache=null,e.bbCachePosKey=null,e.bodyBounds=null,e.overlayBounds=null,e.labelBounds.all=null,e.labelBounds.source=null,e.labelBounds.target=null,e.labelBounds.main=null,e.labelBounds.sourceRot=null,e.labelBounds.targetRot=null,e.labelBounds.mainRot=null,e.arrowBounds.source=null,e.arrowBounds.target=null,e.arrowBounds["mid-source"]=null,e.arrowBounds["mid-target"]=null}return this.emitAndNotify("bounds"),this},ic.boundingBoxAt=function(t){var e=this.nodes(),n=this.cy(),i=n.hasCompoundNodes(),a=n.collection();if(i&&(a=e.filter((function(t){return t.isParent()})),e=e.not(a)),R(t)){var r=t;t=function(){return r}}var o=function(e,n){return e._private.bbAtOldPos=t(e,n)},s=function(t){return t._private.bbAtOldPos};n.startBatch(),e.forEach(o).silentPositions(t),i&&(a.dirtyCompoundBoundsCache(),a.dirtyBoundingBoxCache(),a.updateCompoundBounds(!0));var c=Dn(this.boundingBox({useCache:!1}));return e.silentPositions(s),i&&(a.dirtyCompoundBoundsCache(),a.dirtyBoundingBoxCache(),a.updateCompoundBounds(!0)),n.endBatch(),c},nc.boundingbox=nc.bb=nc.boundingBox,nc.renderedBoundingbox=nc.renderedBoundingBox;var yc,vc,wc=ic;yc=vc={};var xc=function(t){t.uppercaseName=H(t.name),t.autoName="auto"+t.uppercaseName,t.labelName="label"+t.uppercaseName,t.outerName="outer"+t.uppercaseName,t.uppercaseOuterName=H(t.outerName),yc[t.name]=function(){var e=this[0],n=e._private,i=n.cy._private.styleEnabled;if(e){if(i){if(e.isParent())return e.updateCompoundBounds(),n[t.autoName]||0;var a=e.pstyle(t.name);return"label"===a.strValue?(e.recalculateRenderedStyle(),n.rstyle[t.labelName]||0):a.pfValue}return 1}},yc["outer"+t.uppercaseName]=function(){var e=this[0],n=e._private.cy._private.styleEnabled;if(e)return n?e[t.name]()+e.pstyle("border-width").pfValue+2*e.padding():1},yc["rendered"+t.uppercaseName]=function(){var e=this[0];if(e)return e[t.name]()*this.cy().zoom()},yc["rendered"+t.uppercaseOuterName]=function(){var e=this[0];if(e)return e[t.outerName]()*this.cy().zoom()}};xc({name:"width"}),xc({name:"height"}),vc.padding=function(){var t=this[0],e=t._private;return t.isParent()?(t.updateCompoundBounds(),void 0!==e.autoPadding?e.autoPadding:t.pstyle("padding").pfValue):t.pstyle("padding").pfValue},vc.paddedHeight=function(){var t=this[0];return t.height()+2*t.padding()},vc.paddedWidth=function(){var t=this[0];return t.width()+2*t.padding()};var Rc=vc,_c=function(t,e){if(t.isEdge())return e(t)},kc=function(t,e){if(t.isEdge()){var n=t.cy();return dn(e(t),n.zoom(),n.pan())}},Ec=function(t,e){if(t.isEdge()){var n=t.cy(),i=n.pan(),a=n.zoom();return e(t).map((function(t){return dn(t,a,i)}))}},Cc={controlPoints:{get:function(t){return t.renderer().getControlPoints(t)},mult:!0},segmentPoints:{get:function(t){return t.renderer().getSegmentPoints(t)},mult:!0},sourceEndpoint:{get:function(t){return t.renderer().getSourceEndpoint(t)}},targetEndpoint:{get:function(t){return t.renderer().getTargetEndpoint(t)}},midpoint:{get:function(t){return t.renderer().getEdgeMidpoint(t)}}},Sc=function(t){return"rendered"+t[0].toUpperCase()+t.substr(1)},Tc=Object.keys(Cc).reduce((function(t,e){var n=Cc[e],i=Sc(e);return t[e]=function(){return _c(this,n.get)},n.mult?t[i]=function(){return Ec(this,n.get)}:t[i]=function(){return kc(this,n.get)},t}),{}),Ac=J({},ac,wc,Rc,Tc),Dc=function(t,e){this.recycle(t,e)};function Ic(){return!1}function Lc(){return!0}Dc.prototype={instanceString:function(){return"event"},recycle:function(t,e){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=Ic,null!=t&&t.preventDefault?(this.type=t.type,this.isDefaultPrevented=t.defaultPrevented?Lc:Ic):null!=t&&t.type?e=t:this.type=t,null!=e&&(this.originalEvent=e.originalEvent,this.type=null!=e.type?e.type:this.type,this.cy=e.cy,this.target=e.target,this.position=e.position,this.renderedPosition=e.renderedPosition,this.namespace=e.namespace,this.layout=e.layout),null!=this.cy&&null!=this.position&&null==this.renderedPosition){var n=this.position,i=this.cy.zoom(),a=this.cy.pan();this.renderedPosition={x:n.x*i+a.x,y:n.y*i+a.y}}this.timeStamp=t&&t.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=Lc;var t=this.originalEvent;t&&t.preventDefault&&t.preventDefault()},stopPropagation:function(){this.isPropagationStopped=Lc;var t=this.originalEvent;t&&t.stopPropagation&&t.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Lc,this.stopPropagation()},isDefaultPrevented:Ic,isPropagationStopped:Ic,isImmediatePropagationStopped:Ic};var Oc=/^([^.]+)(\.(?:[^.]+))?$/,Mc=".*",Nc={qualifierCompare:function(t,e){return t===e},eventMatches:function(){return!0},addEventFields:function(){},callbackContext:function(t){return t},beforeEmit:function(){},afterEmit:function(){},bubble:function(){return!1},parent:function(){return null},context:null},Bc=Object.keys(Nc),Pc={};function Fc(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Pc,e=arguments.length>1?arguments[1]:void 0,n=0;n<Bc.length;n++){var i=Bc[n];this[i]=t[i]||Nc[i]}this.context=e||this.context,this.listeners=[],this.emitting=0}var jc=Fc.prototype,$c=function(t,e,n,i,a,r,o){w(i)&&(a=i,i=null),o&&(r=null==r?o:J({},r,o));for(var s=x(n)?n:n.split(/\s+/),c=0;c<s.length;c++){var l=s[c];if(!O(l)){var u=l.match(Oc);if(u&&!1===e(t,l,u[1],u[2]?u[2]:null,i,a,r))break}}},zc=function(t,e){return t.addEventFields(t.context,e),new Dc(e.type,e)},Hc=function(t,e,n){if(L(n))e(t,n);else if(R(n))e(t,zc(t,n));else for(var i=x(n)?n:n.split(/\s+/),a=0;a<i.length;a++){var r=i[a];if(!O(r)){var o=r.match(Oc);if(o){var s=o[1],c=o[2]?o[2]:null;e(t,zc(t,{type:s,namespace:c,target:t.context}))}}}};jc.on=jc.addListener=function(t,e,n,i,a){return $c(this,(function(t,e,n,i,a,r,o){w(r)&&t.listeners.push({event:e,callback:r,type:n,namespace:i,qualifier:a,conf:o})}),t,e,n,i,a),this},jc.one=function(t,e,n,i){return this.on(t,e,n,i,{one:!0})},jc.removeListener=jc.off=function(t,e,n,i){var a=this;0!==this.emitting&&(this.listeners=De(this.listeners));for(var r=this.listeners,o=function(o){var s=r[o];$c(a,(function(e,n,i,a,c,l){if((s.type===i||"*"===t)&&(!a&&".*"!==s.namespace||s.namespace===a)&&(!c||e.qualifierCompare(s.qualifier,c))&&(!l||s.callback===l))return r.splice(o,1),!1}),t,e,n,i)},s=r.length-1;s>=0;s--)o(s);return this},jc.removeAllListeners=function(){return this.removeListener("*")},jc.emit=jc.trigger=function(t,e,n){var i=this.listeners,a=i.length;return this.emitting++,x(e)||(e=[e]),Hc(this,(function(t,r){null!=n&&(i=[{event:r.event,type:r.type,namespace:r.namespace,callback:n}],a=i.length);for(var o=function(n){var a=i[n];if(a.type===r.type&&(!a.namespace||a.namespace===r.namespace||a.namespace===Mc)&&t.eventMatches(t.context,a,r)){var o=[r];null!=e&&Pe(o,e),t.beforeEmit(t.context,a,r),a.conf&&a.conf.one&&(t.listeners=t.listeners.filter((function(t){return t!==a})));var s=t.callbackContext(t.context,a,r),c=a.callback.apply(s,o);t.afterEmit(t.context,a,r),!1===c&&(r.stopPropagation(),r.preventDefault())}},s=0;s<a;s++)o(s);t.bubble(t.context)&&!r.isPropagationStopped()&&t.parent(t.context).emit(r,e)}),t),this.emitting--,this};var Uc={qualifierCompare:function(t,e){return null==t||null==e?null==t&&null==e:t.sameText(e)},eventMatches:function(t,e,n){var i=e.qualifier;return null==i||t!==n.target&&T(n.target)&&i.matches(n.target)},addEventFields:function(t,e){e.cy=t.cy(),e.target=t},callbackContext:function(t,e,n){return null!=e.qualifier?n.target:t},beforeEmit:function(t,e){e.conf&&e.conf.once&&e.conf.onceCollection.removeListener(e.event,e.qualifier,e.callback)},bubble:function(){return!0},parent:function(t){return t.isChild()?t.parent():t.cy()}},Vc=function(t){return v(t)?new Ps(t):t},qc={createEmitter:function(){for(var t=0;t<this.length;t++){var e=this[t],n=e._private;n.emitter||(n.emitter=new Fc(Uc,e))}return this},emitter:function(){return this._private.emitter},on:function(t,e,n){for(var i=Vc(e),a=0;a<this.length;a++)this[a].emitter().on(t,i,n);return this},removeListener:function(t,e,n){for(var i=Vc(e),a=0;a<this.length;a++)this[a].emitter().removeListener(t,i,n);return this},removeAllListeners:function(){for(var t=0;t<this.length;t++)this[t].emitter().removeAllListeners();return this},one:function(t,e,n){for(var i=Vc(e),a=0;a<this.length;a++)this[a].emitter().one(t,i,n);return this},once:function(t,e,n){for(var i=Vc(e),a=0;a<this.length;a++)this[a].emitter().on(t,i,n,{once:!0,onceCollection:this})},emit:function(t,e){for(var n=0;n<this.length;n++)this[n].emitter().emit(t,e);return this},emitAndNotify:function(t,e){if(0!==this.length)return this.cy().notify(t,this),this.emit(t,e),this}};fs.eventAliasesOn(qc);var Wc={nodes:function(t){return this.filter((function(t){return t.isNode()})).filter(t)},edges:function(t){return this.filter((function(t){return t.isEdge()})).filter(t)},byGroup:function(){for(var t=this.spawn(),e=this.spawn(),n=0;n<this.length;n++){var i=this[n];i.isNode()?t.push(i):e.push(i)}return{nodes:t,edges:e}},filter:function(t,e){if(void 0===t)return this;if(v(t)||S(t))return new Ps(t).filter(this);if(w(t)){for(var n=this.spawn(),i=this,a=0;a<i.length;a++){var r=i[a];(e?t.apply(e,[r,a,i]):t(r,a,i))&&n.push(r)}return n}return this.spawn()},not:function(t){if(t){v(t)&&(t=this.filter(t));for(var e=this.spawn(),n=0;n<this.length;n++){var i=this[n];t.has(i)||e.push(i)}return e}return this},absoluteComplement:function(){return this.cy().mutableElements().not(this)},intersect:function(t){if(v(t)){var e=t;return this.filter(e)}for(var n=this.spawn(),i=this,a=t,r=this.length<t.length,o=r?i:a,s=r?a:i,c=0;c<o.length;c++){var l=o[c];s.has(l)&&n.push(l)}return n},xor:function(t){var e=this._private.cy;v(t)&&(t=e.$(t));var n=this.spawn(),i=this,a=t,r=function(t,e){for(var i=0;i<t.length;i++){var a=t[i],r=a._private.data.id;e.hasElementWithId(r)||n.push(a)}};return r(i,a),r(a,i),n},diff:function(t){var e=this._private.cy;v(t)&&(t=e.$(t));var n=this.spawn(),i=this.spawn(),a=this.spawn(),r=this,o=t,s=function(t,e,n){for(var i=0;i<t.length;i++){var r=t[i],o=r._private.data.id;e.hasElementWithId(o)?a.merge(r):n.push(r)}};return s(r,o,n),s(o,r,i),{left:n,right:i,both:a}},add:function(t){var e=this._private.cy;if(!t)return this;if(v(t)){var n=t;t=e.mutableElements().filter(n)}for(var i=this.spawnSelf(),a=0;a<t.length;a++){var r=t[a];!this.has(r)&&i.push(r)}return i},merge:function(t){var e=this._private,n=e.cy;if(!t)return this;if(t&&v(t)){var i=t;t=n.mutableElements().filter(i)}for(var a=e.map,r=0;r<t.length;r++){var o=t[r],s=o._private.data.id;if(!a.has(s)){var c=this.length++;this[c]=o,a.set(s,{ele:o,index:c})}}return this},unmergeAt:function(t){var e=this[t].id(),n=this._private.map;this[t]=void 0,n.delete(e);var i=t===this.length-1;if(this.length>1&&!i){var a=this.length-1,r=this[a],o=r._private.data.id;this[a]=void 0,this[t]=r,n.set(o,{ele:r,index:t})}return this.length--,this},unmergeOne:function(t){t=t[0];var e=this._private,n=t._private.data.id,i=e.map.get(n);if(!i)return this;var a=i.index;return this.unmergeAt(a),this},unmerge:function(t){var e=this._private.cy;if(!t)return this;if(t&&v(t)){var n=t;t=e.mutableElements().filter(n)}for(var i=0;i<t.length;i++)this.unmergeOne(t[i]);return this},unmergeBy:function(t){for(var e=this.length-1;e>=0;e--)t(this[e])&&this.unmergeAt(e);return this},map:function(t,e){for(var n=[],i=this,a=0;a<i.length;a++){var r=i[a],o=e?t.apply(e,[r,a,i]):t(r,a,i);n.push(o)}return n},reduce:function(t,e){for(var n=e,i=this,a=0;a<i.length;a++)n=t(n,i[a],a,i);return n},max:function(t,e){for(var n,i=-1/0,a=this,r=0;r<a.length;r++){var o=a[r],s=e?t.apply(e,[o,r,a]):t(o,r,a);s>i&&(i=s,n=o)}return{value:i,ele:n}},min:function(t,e){for(var n,i=1/0,a=this,r=0;r<a.length;r++){var o=a[r],s=e?t.apply(e,[o,r,a]):t(o,r,a);s<i&&(i=s,n=o)}return{value:i,ele:n}}},Yc=Wc;Yc.u=Yc["|"]=Yc["+"]=Yc.union=Yc.or=Yc.add,Yc["\\"]=Yc["!"]=Yc["-"]=Yc.difference=Yc.relativeComplement=Yc.subtract=Yc.not,Yc.n=Yc["&"]=Yc["."]=Yc.and=Yc.intersection=Yc.intersect,Yc["^"]=Yc["(+)"]=Yc["(-)"]=Yc.symmetricDifference=Yc.symdiff=Yc.xor,Yc.fnFilter=Yc.filterFn=Yc.stdFilter=Yc.filter,Yc.complement=Yc.abscomp=Yc.absoluteComplement;var Gc,Zc={isNode:function(){return"nodes"===this.group()},isEdge:function(){return"edges"===this.group()},isLoop:function(){return this.isEdge()&&this.source()[0]===this.target()[0]},isSimple:function(){return this.isEdge()&&this.source()[0]!==this.target()[0]},group:function(){var t=this[0];if(t)return t._private.group}},Kc=function(t,e){var n=t.cy().hasCompoundNodes();function i(t){var e=t.pstyle("z-compound-depth");return"auto"===e.value?n?t.zDepth():0:"bottom"===e.value?-1:"top"===e.value?we:0}var a=i(t)-i(e);if(0!==a)return a;function r(t){return"auto"===t.pstyle("z-index-compare").value&&t.isNode()?1:0}var o=r(t)-r(e);if(0!==o)return o;var s=t.pstyle("z-index").value-e.pstyle("z-index").value;return 0!==s?s:t.poolIndex()-e.poolIndex()},Xc={forEach:function(t,e){if(w(t))for(var n=this.length,i=0;i<n;i++){var a=this[i];if(!1===(e?t.apply(e,[a,i,this]):t(a,i,this)))break}return this},toArray:function(){for(var t=[],e=0;e<this.length;e++)t.push(this[e]);return t},slice:function(t,e){var n=[],i=this.length;null==e&&(e=i),null==t&&(t=0),t<0&&(t=i+t),e<0&&(e=i+e);for(var a=t;a>=0&&a<e&&a<i;a++)n.push(this[a]);return this.spawn(n)},size:function(){return this.length},eq:function(t){return this[t]||this.spawn()},first:function(){return this[0]||this.spawn()},last:function(){return this[this.length-1]||this.spawn()},empty:function(){return 0===this.length},nonempty:function(){return!this.empty()},sort:function(t){if(!w(t))return this;var e=this.toArray().sort(t);return this.spawn(e)},sortByZIndex:function(){return this.sort(Kc)},zDepth:function(){var t=this[0];if(t){var e=t._private;if("nodes"===e.group){var n=e.data.parent?t.parents().size():0;return t.isParent()?n:we-1}var i=e.source,a=e.target,r=i.zDepth(),o=a.zDepth();return Math.max(r,o,0)}}};Xc.each=Xc.forEach,Gc="undefined",(typeof Symbol>"u"?"undefined":t(Symbol))!=Gc&&t(Symbol.iterator)!=Gc&&(Xc[Symbol.iterator]=function(){var t=this,e={value:void 0,done:!1},n=0,i=this.length;return r({next:function(){return n<i?e.value=t[n++]:(e.value=void 0,e.done=!0),e}},Symbol.iterator,(function(){return this}))});var Jc=Me({nodeDimensionsIncludeLabels:!1}),Qc={layoutDimensions:function(t){var e;if(t=Jc(t),this.takesUpSpace())if(t.nodeDimensionsIncludeLabels){var n=this.boundingBox();e={w:n.w,h:n.h}}else e={w:this.outerWidth(),h:this.outerHeight()};else e={w:0,h:0};return(0===e.w||0===e.h)&&(e.w=e.h=1),e},layoutPositions:function(t,e,n){var i=this.nodes().filter((function(t){return!t.isParent()})),a=this.cy(),r=e.eles,o=function(t){return t.id()},s=F(n,o);t.emit({type:"layoutstart",layout:t}),t.animations=[];var c=function(t,e,n){var i={x:e.x1+e.w/2,y:e.y1+e.h/2},a={x:(n.x-i.x)*t,y:(n.y-i.y)*t};return{x:i.x+a.x,y:i.y+a.y}},l=e.spacingFactor&&1!==e.spacingFactor,u=function(){if(!l)return null;for(var t=An(),e=0;e<i.length;e++){var n=i[e],a=s(n,e);On(t,a.x,a.y)}return t}(),d=F((function(t,n){var i=s(t,n);if(l){var a=Math.abs(e.spacingFactor);i=c(a,u,i)}return null!=e.transform&&(i=e.transform(t,i)),i}),o);if(e.animate){for(var h=0;h<i.length;h++){var f=i[h],g=d(f,h);if(null==e.animateFilter||e.animateFilter(f,h)){var p=f.animation({position:g,duration:e.animationDuration,easing:e.animationEasing});t.animations.push(p)}else f.position(g)}if(e.fit){var b=a.animation({fit:{boundingBox:r.boundingBoxAt(d),padding:e.padding},duration:e.animationDuration,easing:e.animationEasing});t.animations.push(b)}else if(void 0!==e.zoom&&void 0!==e.pan){var m=a.animation({zoom:e.zoom,pan:e.pan,duration:e.animationDuration,easing:e.animationEasing});t.animations.push(m)}t.animations.forEach((function(t){return t.play()})),t.one("layoutready",e.ready),t.emit({type:"layoutready",layout:t}),$a.all(t.animations.map((function(t){return t.promise()}))).then((function(){t.one("layoutstop",e.stop),t.emit({type:"layoutstop",layout:t})}))}else i.positions(d),e.fit&&a.fit(e.eles,e.padding),null!=e.zoom&&a.zoom(e.zoom),e.pan&&a.pan(e.pan),t.one("layoutready",e.ready),t.emit({type:"layoutready",layout:t}),t.one("layoutstop",e.stop),t.emit({type:"layoutstop",layout:t});return this},layout:function(t){return this.cy().makeLayout(J({},t,{eles:this}))}};function tl(t,e,n){var i,a=n._private,r=a.styleCache=a.styleCache||[];return null!=(i=r[t])||(i=r[t]=e(n)),i}function el(t,e){return t=ge(t),function(n){return tl(t,e,n)}}function nl(t,e){t=ge(t);var n=function(t){return e.call(t)};return function(){var e=this[0];if(e)return tl(t,n,e)}}Qc.createLayout=Qc.makeLayout=Qc.layout;var il={recalculateRenderedStyle:function(t){var e=this.cy(),n=e.renderer(),i=e.styleEnabled();return n&&i&&n.recalculateRenderedStyle(this,t),this},dirtyStyleCache:function(){var t,e=this.cy(),n=function(t){return t._private.styleCache=null};return e.hasCompoundNodes()?((t=this.spawnSelf().merge(this.descendants()).merge(this.parents())).merge(t.connectedEdges()),t.forEach(n)):this.forEach((function(t){n(t),t.connectedEdges().forEach(n)})),this},updateStyle:function(t){var e=this._private.cy;if(!e.styleEnabled())return this;if(e.batching())return e._private.batchStyleEles.merge(this),this;var n=this;t=!(!t&&void 0!==t),e.hasCompoundNodes()&&(n=this.spawnSelf().merge(this.descendants()).merge(this.parents()));var i=n;return t?i.emitAndNotify("style"):i.emit("style"),n.forEach((function(t){return t._private.styleDirty=!0})),this},cleanStyle:function(){var t=this.cy();if(t.styleEnabled())for(var e=0;e<this.length;e++){var n=this[e];n._private.styleDirty&&(n._private.styleDirty=!1,t.style().apply(n))}},parsedStyle:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this[0],i=n.cy();if(i.styleEnabled()&&n)return this.cleanStyle(),n._private.style[t]??(e?i.style().getDefaultProperty(t):null)},numericStyle:function(t){var e=this[0];if(e.cy().styleEnabled()&&e){var n=e.pstyle(t);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(t){var e=this[0];if(e.cy().styleEnabled()&&e)return e.pstyle(t).units},renderedStyle:function(t){var e=this.cy();if(!e.styleEnabled())return this;var n=this[0];return n?e.style().getRenderedStyle(n,t):void 0},style:function(t,e){var n=this.cy();if(!n.styleEnabled())return this;var i=!1,a=n.style();if(R(t)){var r=t;a.applyBypass(this,r,i),this.emitAndNotify("style")}else if(v(t)){if(void 0===e){var o=this[0];return o?a.getStylePropertyValue(o,t):void 0}a.applyBypass(this,t,e,i),this.emitAndNotify("style")}else if(void 0===t){var s=this[0];return s?a.getRawStyle(s):void 0}return this},removeStyle:function(t){var e=this.cy();if(!e.styleEnabled())return this;var n=!1,i=e.style(),a=this;if(void 0===t)for(var r=0;r<a.length;r++){var o=a[r];i.removeAllBypasses(o,n)}else{t=t.split(/\s+/);for(var s=0;s<a.length;s++){var c=a[s];i.removeBypasses(c,t,n)}}return this.emitAndNotify("style"),this},show:function(){return this.css("display","element"),this},hide:function(){return this.css("display","none"),this},effectiveOpacity:function(){var t=this.cy();if(!t.styleEnabled())return 1;var e=t.hasCompoundNodes(),n=this[0];if(n){var i=n._private,a=n.pstyle("opacity").value;if(!e)return a;var r=i.data.parent?n.parents():null;if(r)for(var o=0;o<r.length;o++)a*=r[o].pstyle("opacity").value;return a}},transparent:function(){if(!this.cy().styleEnabled())return!1;var t=this[0],e=t.cy().hasCompoundNodes();return t?e?0===t.effectiveOpacity():0===t.pstyle("opacity").value:void 0},backgrounding:function(){return!!this.cy().styleEnabled()&&!!this[0]._private.backgrounding}};function al(t,e){var n=t._private.data.parent?t.parents():null;if(n)for(var i=0;i<n.length;i++)if(!e(n[i]))return!1;return!0}function rl(t){var e=t.ok,n=t.edgeOkViaNode||t.ok,i=t.parentOk||t.ok;return function(){var t=this.cy();if(!t.styleEnabled())return!0;var a=this[0],r=t.hasCompoundNodes();if(a){var o=a._private;if(!e(a))return!1;if(a.isNode())return!r||al(a,i);var s=o.source,c=o.target;return n(s)&&(!r||al(s,n))&&(s===c||n(c)&&(!r||al(c,n)))}}}var ol=el("eleTakesUpSpace",(function(t){return"element"===t.pstyle("display").value&&0!==t.width()&&(!t.isNode()||0!==t.height())}));il.takesUpSpace=nl("takesUpSpace",rl({ok:ol}));var sl=el("eleInteractive",(function(t){return"yes"===t.pstyle("events").value&&"visible"===t.pstyle("visibility").value&&ol(t)})),cl=el("parentInteractive",(function(t){return"visible"===t.pstyle("visibility").value&&ol(t)}));il.interactive=nl("interactive",rl({ok:sl,parentOk:cl,edgeOkViaNode:ol})),il.noninteractive=function(){var t=this[0];if(t)return!t.interactive()};var ll=el("eleVisible",(function(t){return"visible"===t.pstyle("visibility").value&&0!==t.pstyle("opacity").pfValue&&ol(t)})),ul=ol;il.visible=nl("visible",rl({ok:ll,edgeOkViaNode:ul})),il.hidden=function(){var t=this[0];if(t)return!t.visible()},il.isBundledBezier=nl("isBundledBezier",(function(){return!!this.cy().styleEnabled()&&!this.removed()&&"bezier"===this.pstyle("curve-style").value&&this.takesUpSpace()})),il.bypass=il.css=il.style,il.renderedCss=il.renderedStyle,il.removeBypass=il.removeCss=il.removeStyle,il.pstyle=il.parsedStyle;var dl={};function hl(t){return function(){var e=arguments,n=[];if(2===e.length){var i=e[0],a=e[1];this.on(t.event,i,a)}else if(1===e.length&&w(e[0])){var r=e[0];this.on(t.event,r)}else if(0===e.length||1===e.length&&x(e[0])){for(var o=1===e.length?e[0]:null,s=0;s<this.length;s++){var c=this[s],l=!t.ableField||c._private[t.ableField],u=c._private[t.field]!=t.value;if(t.overrideAble){var d=t.overrideAble(c);if(void 0!==d&&(l=d,!d))return this}l&&(c._private[t.field]=t.value,u&&n.push(c))}var h=this.spawn(n);h.updateStyle(),h.emit(t.event),o&&h.emit(o)}return this}}function fl(t){dl[t.field]=function(){var e=this[0];if(e){if(t.overrideField){var n=t.overrideField(e);if(void 0!==n)return n}return e._private[t.field]}},dl[t.on]=hl({event:t.on,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!0}),dl[t.off]=hl({event:t.off,field:t.field,ableField:t.ableField,overrideAble:t.overrideAble,value:!1})}fl({field:"locked",overrideField:function(t){return!!t.cy().autolock()||void 0},on:"lock",off:"unlock"}),fl({field:"grabbable",overrideField:function(t){return!t.cy().autoungrabify()&&!t.pannable()&&void 0},on:"grabify",off:"ungrabify"}),fl({field:"selected",ableField:"selectable",overrideAble:function(t){return!t.cy().autounselectify()&&void 0},on:"select",off:"unselect"}),fl({field:"selectable",overrideField:function(t){return!t.cy().autounselectify()&&void 0},on:"selectify",off:"unselectify"}),dl.deselect=dl.unselect,dl.grabbed=function(){var t=this[0];if(t)return t._private.grabbed},fl({field:"active",on:"activate",off:"unactivate"}),fl({field:"pannable",on:"panify",off:"unpanify"}),dl.inactive=function(){var t=this[0];if(t)return!t._private.active};var gl={},pl=function(t){return function(e){for(var n=this,i=[],a=0;a<n.length;a++){var r=n[a];if(r.isNode()){for(var o=!1,s=r.connectedEdges(),c=0;c<s.length;c++){var l=s[c],u=l.source(),d=l.target();if(t.noIncomingEdges&&d===r&&u!==r||t.noOutgoingEdges&&u===r&&d!==r){o=!0;break}}o||i.push(r)}}return this.spawn(i,!0).filter(e)}},bl=function(t){return function(e){for(var n=this,i=[],a=0;a<n.length;a++){var r=n[a];if(r.isNode())for(var o=r.connectedEdges(),s=0;s<o.length;s++){var c=o[s],l=c.source(),u=c.target();t.outgoing&&l===r?(i.push(c),i.push(u)):t.incoming&&u===r&&(i.push(c),i.push(l))}}return this.spawn(i,!0).filter(e)}},ml=function(t){return function(e){for(var n=this,i=[],a={};;){var r=t.outgoing?n.outgoers():n.incomers();if(0===r.length)break;for(var o=!1,s=0;s<r.length;s++){var c=r[s],l=c.id();a[l]||(a[l]=!0,i.push(c),o=!0)}if(!o)break;n=r}return this.spawn(i,!0).filter(e)}};function yl(t){return function(e){for(var n=[],i=0;i<this.length;i++){var a=this[i]._private[t.attr];a&&n.push(a)}return this.spawn(n,!0).filter(e)}}function vl(t){return function(e){var n=[],i=this._private.cy,a=t||{};v(e)&&(e=i.$(e));for(var r=0;r<e.length;r++)for(var o=e[r]._private.edges,s=0;s<o.length;s++){var c=o[s],l=c._private.data,u=this.hasElementWithId(l.source)&&e.hasElementWithId(l.target),d=e.hasElementWithId(l.source)&&this.hasElementWithId(l.target);(u||d)&&((a.thisIsSrc||a.thisIsTgt)&&(a.thisIsSrc&&!u||a.thisIsTgt&&!d)||n.push(c))}return this.spawn(n,!0)}}function wl(t){return t=J({},{codirected:!1},t),function(e){for(var n=[],i=this.edges(),a=t,r=0;r<i.length;r++)for(var o=i[r]._private,s=o.source,c=s._private.data.id,l=o.data.target,u=s._private.edges,d=0;d<u.length;d++){var h=u[d],f=h._private.data,g=f.target,p=f.source,b=g===l&&p===c,m=c===g&&l===p;(a.codirected&&b||!a.codirected&&(b||m))&&n.push(h)}return this.spawn(n,!0).filter(e)}}gl.clearTraversalCache=function(){for(var t=0;t<this.length;t++)this[t]._private.traversalCache=null},J(gl,{roots:pl({noIncomingEdges:!0}),leaves:pl({noOutgoingEdges:!0}),outgoers:Hs(bl({outgoing:!0}),"outgoers"),successors:ml({outgoing:!0}),incomers:Hs(bl({incoming:!0}),"incomers"),predecessors:ml({incoming:!0})}),J(gl,{neighborhood:Hs((function(t){for(var e=[],n=this.nodes(),i=0;i<n.length;i++)for(var a=n[i],r=a.connectedEdges(),o=0;o<r.length;o++){var s=r[o],c=s.source(),l=s.target(),u=a===c?l:c;u.length>0&&e.push(u[0]),e.push(s[0])}return this.spawn(e,!0).filter(t)}),"neighborhood"),closedNeighborhood:function(t){return this.neighborhood().add(this).filter(t)},openNeighborhood:function(t){return this.neighborhood(t)}}),gl.neighbourhood=gl.neighborhood,gl.closedNeighbourhood=gl.closedNeighborhood,gl.openNeighbourhood=gl.openNeighborhood,J(gl,{source:Hs((function(t){var e,n=this[0];return n&&(e=n._private.source||n.cy().collection()),e&&t?e.filter(t):e}),"source"),target:Hs((function(t){var e,n=this[0];return n&&(e=n._private.target||n.cy().collection()),e&&t?e.filter(t):e}),"target"),sources:yl({attr:"source"}),targets:yl({attr:"target"})}),J(gl,{edgesWith:Hs(vl(),"edgesWith"),edgesTo:Hs(vl({thisIsSrc:!0}),"edgesTo")}),J(gl,{connectedEdges:Hs((function(t){for(var e=[],n=this,i=0;i<n.length;i++){var a=n[i];if(a.isNode())for(var r=a._private.edges,o=0;o<r.length;o++){var s=r[o];e.push(s)}}return this.spawn(e,!0).filter(t)}),"connectedEdges"),connectedNodes:Hs((function(t){for(var e=[],n=this,i=0;i<n.length;i++){var a=n[i];a.isEdge()&&(e.push(a.source()[0]),e.push(a.target()[0]))}return this.spawn(e,!0).filter(t)}),"connectedNodes"),parallelEdges:Hs(wl(),"parallelEdges"),codirectedEdges:Hs(wl({codirected:!0}),"codirectedEdges")}),J(gl,{components:function(t){var e=this,n=e.cy(),i=n.collection(),a=null==t?e.nodes():t.nodes(),r=[];null!=t&&a.empty()&&(a=t.sources());var o=function(t,e){i.merge(t),a.unmerge(t),e.merge(t)};if(a.empty())return e.spawn();var s=function(){var t=n.collection();r.push(t);var i=a[0];o(i,t),e.bfs({directed:!1,roots:i,visit:function(e){return o(e,t)}}),t.forEach((function(n){n.connectedEdges().forEach((function(n){e.has(n)&&t.has(n.source())&&t.has(n.target())&&t.merge(n)}))}))};do{s()}while(a.length>0);return r},component:function(){var t=this[0];return t.cy().mutableElements().components(t)[0]}}),gl.componentsOf=gl.components;var xl=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==t){var a=new ze,r=!1;if(e){if(e.length>0&&R(e[0])&&!T(e[0])){r=!0;for(var o=[],s=new Ve,c=0,l=e.length;c<l;c++){var u=e[c];null==u.data&&(u.data={});var d=u.data;if(null==d.id)d.id=Ie();else if(t.hasElementWithId(d.id)||s.has(d.id))continue;var h=new qe(t,u,!1);o.push(h),s.add(d.id)}e=o}}else e=[];this.length=0;for(var f=0,g=e.length;f<g;f++){var p=e[f][0];if(null!=p){var b=p._private.data.id;(!n||!a.has(b))&&(n&&a.set(b,{index:this.length,ele:p}),this[this.length]=p,this.length++)}}this._private={eles:this,cy:t,get map(){return null==this.lazyMap&&this.rebuildMap(),this.lazyMap},set map(t){this.lazyMap=t},rebuildMap:function(){for(var t=this.lazyMap=new ze,e=this.eles,n=0;n<e.length;n++){var i=e[n];t.set(i.id(),{index:n,ele:i})}}},n&&(this._private.map=a),r&&!i&&this.restore()}else Ee("A collection must have a reference to the core")},Rl=qe.prototype=xl.prototype=Object.create(Array.prototype);Rl.instanceString=function(){return"collection"},Rl.spawn=function(t,e){return new xl(this.cy(),t,e)},Rl.spawnSelf=function(){return this.spawn(this)},Rl.cy=function(){return this._private.cy},Rl.renderer=function(){return this._private.cy.renderer()},Rl.element=function(){return this[0]},Rl.collection=function(){return A(this)?this:new xl(this._private.cy,[this])},Rl.unique=function(){return new xl(this._private.cy,this,!0)},Rl.hasElementWithId=function(t){return t=""+t,this._private.map.has(t)},Rl.getElementById=function(t){t=""+t;var e=this._private.cy,n=this._private.map.get(t);return n?n.ele:new xl(e)},Rl.$id=Rl.getElementById,Rl.poolIndex=function(){var t=this._private.cy._private.elements,e=this[0]._private.data.id;return t._private.map.get(e).index},Rl.indexOf=function(t){var e=t[0]._private.data.id;return this._private.map.get(e).index},Rl.indexOfId=function(t){return t=""+t,this._private.map.get(t).index},Rl.json=function(t){var e=this.element(),n=this.cy();if(null==e&&t)return this;if(null!=e){var i=e._private;if(R(t)){if(n.startBatch(),t.data){e.data(t.data);var a=i.data;if(e.isEdge()){var r=!1,o={},s=t.data.source,c=t.data.target;null!=s&&s!=a.source&&(o.source=""+s,r=!0),null!=c&&c!=a.target&&(o.target=""+c,r=!0),r&&(e=e.move(o))}else{var l="parent"in t.data,u=t.data.parent;l&&(null!=u||null!=a.parent)&&u!=a.parent&&(void 0===u&&(u=null),null!=u&&(u=""+u),e=e.move({parent:u}))}}t.position&&e.position(t.position);var d=function(n,a,r){var o=t[n];null!=o&&o!==i[n]&&(o?e[a]():e[r]())};return d("removed","remove","restore"),d("selected","select","unselect"),d("selectable","selectify","unselectify"),d("locked","lock","unlock"),d("grabbable","grabify","ungrabify"),d("pannable","panify","unpanify"),null!=t.classes&&e.classes(t.classes),n.endBatch(),this}if(void 0===t){var h={data:Ae(i.data),position:Ae(i.position),group:i.group,removed:i.removed,selected:i.selected,selectable:i.selectable,locked:i.locked,grabbable:i.grabbable,pannable:i.pannable,classes:null};h.classes="";var f=0;return i.classes.forEach((function(t){return h.classes+=0==f++?t:" "+t})),h}}},Rl.jsons=function(){for(var t=[],e=0;e<this.length;e++){var n=this[e].json();t.push(n)}return t},Rl.clone=function(){for(var t=this.cy(),e=[],n=0;n<this.length;n++){var i=this[n].json(),a=new qe(t,i,!1);e.push(a)}return new xl(t,e)},Rl.copy=Rl.clone,Rl.restore=function(){for(var t,e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this,a=i.cy(),r=a._private,o=[],s=[],c=0,l=i.length;c<l;c++){var u=i[c];n&&!u.removed()||(u.isNode()?o.push(u):s.push(u))}t=o.concat(s);var d,h=function(){t.splice(d,1),d--};for(d=0;d<t.length;d++){var f=t[d],g=f._private,p=g.data;if(f.clearTraversalCache(),n||g.removed)if(void 0===p.id)p.id=Ie();else if(k(p.id))p.id=""+p.id;else{if(O(p.id)||!v(p.id)){Ee("Can not create element with invalid string ID `"+p.id+"`"),h();continue}if(a.hasElementWithId(p.id)){Ee("Can not create second element with ID `"+p.id+"`"),h();continue}}var b=p.id;if(f.isNode()){var m=g.position;null==m.x&&(m.x=0),null==m.y&&(m.y=0)}if(f.isEdge()){for(var y=f,w=["source","target"],x=w.length,R=!1,_=0;_<x;_++){var E=w[_],C=p[E];k(C)&&(C=p[E]=""+p[E]),null==C||""===C?(Ee("Can not create edge `"+b+"` with unspecified "+E),R=!0):a.hasElementWithId(C)||(Ee("Can not create edge `"+b+"` with nonexistant "+E+" `"+C+"`"),R=!0)}if(R){h();continue}var S=a.getElementById(p.source),T=a.getElementById(p.target);S.same(T)?S._private.edges.push(y):(S._private.edges.push(y),T._private.edges.push(y)),y._private.source=S,y._private.target=T}g.map=new ze,g.map.set(b,{ele:f,index:0}),g.removed=!1,n&&a.addToPool(f)}for(var A=0;A<o.length;A++){var D=o[A],I=D._private.data;k(I.parent)&&(I.parent=""+I.parent);var L=I.parent;if(null!=L||D._private.parent){var M=D._private.parent?a.collection().merge(D._private.parent):a.getElementById(L);if(M.empty())I.parent=void 0;else if(M[0].removed())Se("Node added with missing parent, reference to parent removed"),I.parent=void 0,D._private.parent=null;else{for(var N=!1,B=M;!B.empty();){if(D.same(B)){N=!0,I.parent=void 0;break}B=B.parent()}N||(M[0]._private.children.push(D),D._private.parent=M[0],r.hasCompoundNodes=!0)}}}if(t.length>0){for(var P=t.length===i.length?i:new xl(a,t),F=0;F<P.length;F++){var j=P[F];j.isNode()||(j.parallelEdges().clearTraversalCache(),j.source().clearTraversalCache(),j.target().clearTraversalCache())}(r.hasCompoundNodes?a.collection().merge(P).merge(P.connectedNodes()).merge(P.parent()):P).dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(e),e?P.emitAndNotify("add"):n&&P.emit("add")}return i},Rl.removed=function(){var t=this[0];return t&&t._private.removed},Rl.inside=function(){var t=this[0];return t&&!t._private.removed},Rl.remove=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this,i=[],a={},r=n._private.cy;function o(t){for(var e=t._private.edges,n=0;n<e.length;n++)c(e[n])}function s(t){for(var e=t._private.children,n=0;n<e.length;n++)c(e[n])}function c(t){var n=a[t.id()];e&&t.removed()||n||(a[t.id()]=!0,t.isNode()?(i.push(t),o(t),s(t)):i.unshift(t))}for(var l=0,u=n.length;l<u;l++)c(n[l]);function d(t,e){var n=t._private.edges;Ne(n,e),t.clearTraversalCache()}function h(t){t.clearTraversalCache()}var f=[];function g(t,e){e=e[0];var n=(t=t[0])._private.children,i=t.id();Ne(n,e),e._private.parent=null,f.ids[i]||(f.ids[i]=!0,f.push(t))}f.ids={},n.dirtyCompoundBoundsCache(),e&&r.removeFromPool(i);for(var p=0;p<i.length;p++){var b=i[p];if(b.isEdge()){var m=b.source()[0],y=b.target()[0];d(m,b),d(y,b);for(var v=b.parallelEdges(),w=0;w<v.length;w++){var x=v[w];h(x),x.isBundledBezier()&&x.dirtyBoundingBoxCache()}}else{var R=b.parent();0!==R.length&&g(R,b)}e&&(b._private.removed=!0)}var _=r._private.elements;r._private.hasCompoundNodes=!1;for(var k=0;k<_.length;k++)if(_[k].isParent()){r._private.hasCompoundNodes=!0;break}var E=new xl(this.cy(),i);E.size()>0&&(t?E.emitAndNotify("remove"):e&&E.emit("remove"));for(var C=0;C<f.length;C++){var S=f[C];(!e||!S.removed())&&S.updateStyle()}return E},Rl.move=function(t){var e=this._private.cy,n=this,i=!1,a=!1,r=function(t){return null==t?t:""+t};if(void 0!==t.source||void 0!==t.target){var o=r(t.source),s=r(t.target),c=null!=o&&e.hasElementWithId(o),l=null!=s&&e.hasElementWithId(s);(c||l)&&(e.batch((function(){n.remove(i,a),n.emitAndNotify("moveout");for(var t=0;t<n.length;t++){var e=n[t],r=e._private.data;e.isEdge()&&(c&&(r.source=o),l&&(r.target=s))}n.restore(i,a)})),n.emitAndNotify("move"))}else if(void 0!==t.parent){var u=r(t.parent);if(null===u||e.hasElementWithId(u)){var d=null===u?void 0:u;e.batch((function(){var t=n.remove(i,a);t.emitAndNotify("moveout");for(var e=0;e<n.length;e++){var r=n[e],o=r._private.data;r.isNode()&&(o.parent=d)}t.restore(i,a)})),n.emitAndNotify("move")}}return this},[Da,gs,ps,js,Us,Gs,Zs,Ac,qc,Wc,Zc,Xc,Qc,il,dl,gl].forEach((function(t){J(Rl,t)}));var _l={add:function(t){var e,n=this;if(S(t)){var i=t;if(i._private.cy===n)e=i.restore();else{for(var a=[],r=0;r<i.length;r++){var o=i[r];a.push(o.json())}e=new xl(n,a)}}else if(x(t))e=new xl(n,t);else if(R(t)&&(x(t.nodes)||x(t.edges))){for(var s=t,c=[],l=["nodes","edges"],u=0,d=l.length;u<d;u++){var h=l[u],f=s[h];if(x(f))for(var g=0,p=f.length;g<p;g++){var b=J({group:h},f[g]);c.push(b)}}e=new xl(n,c)}else e=new qe(n,t).collection();return e},remove:function(t){if(!S(t)&&v(t)){var e=t;t=this.$(e)}return t.remove()}};function kl(t,e,n,i){var a=4,r=.001,o=1e-7,s=10,c=11,l=1/(c-1),u=typeof Float32Array<"u";if(4!==arguments.length)return!1;for(var d=0;d<4;++d)if("number"!=typeof arguments[d]||isNaN(arguments[d])||!isFinite(arguments[d]))return!1;t=Math.min(t,1),n=Math.min(n,1),t=Math.max(t,0),n=Math.max(n,0);var h=u?new Float32Array(c):new Array(c);function f(t,e){return 1-3*e+3*t}function g(t,e){return 3*e-6*t}function p(t){return 3*t}function b(t,e,n){return((f(e,n)*t+g(e,n))*t+p(e))*t}function m(t,e,n){return 3*f(e,n)*t*t+2*g(e,n)*t+p(e)}function y(e,i){for(var r=0;r<a;++r){var o=m(i,t,n);if(0===o)return i;i-=(b(i,t,n)-e)/o}return i}function v(){for(var e=0;e<c;++e)h[e]=b(e*l,t,n)}function w(e,i,a){var r,c,l=0;do{(r=b(c=i+(a-i)/2,t,n)-e)>0?a=c:i=c}while(Math.abs(r)>o&&++l<s);return c}function x(e){for(var i=0,a=1,o=c-1;a!==o&&h[a]<=e;++a)i+=l;--a;var s=i+(e-h[a])/(h[a+1]-h[a])*l,u=m(s,t,n);return u>=r?y(e,s):0===u?s:w(e,i,i+l)}var R=!1;function _(){R=!0,(t!==e||n!==i)&&v()}var k=function(a){return R||_(),t===e&&n===i?a:0===a?0:1===a?1:b(x(a),e,i)};k.getControlPoints=function(){return[{x:t,y:e},{x:n,y:i}]};var E="generateBezier("+[t,e,n,i]+")";return k.toString=function(){return E},k}var El=function(){function t(t){return-t.tension*t.x-t.friction*t.v}function e(e,n,i){var a={x:e.x+i.dx*n,v:e.v+i.dv*n,tension:e.tension,friction:e.friction};return{dx:a.v,dv:t(a)}}function n(n,i){var a={dx:n.v,dv:t(n)},r=e(n,.5*i,a),o=e(n,.5*i,r),s=e(n,i,o),c=1/6*(a.dx+2*(r.dx+o.dx)+s.dx),l=1/6*(a.dv+2*(r.dv+o.dv)+s.dv);return n.x=n.x+c*i,n.v=n.v+l*i,n}return function t(e,i,a){var r,o,s,c={x:-1,v:0,tension:null,friction:null},l=[0],u=0,d=1e-4,h=.016;for(e=parseFloat(e)||500,i=parseFloat(i)||20,a=a||null,c.tension=e,c.friction=i,o=(r=null!==a)?(u=t(e,i))/a*h:h;s=n(s||c,o),l.push(1+s.x),u+=16,Math.abs(s.x)>d&&Math.abs(s.v)>d;);return r?function(t){return l[t*(l.length-1)|0]}:u}}(),Cl=function(t,e,n,i){var a=kl(t,e,n,i);return function(t,e,n){return t+(e-t)*a(n)}},Sl={linear:function(t,e,n){return t+(e-t)*n},ease:Cl(.25,.1,.25,1),"ease-in":Cl(.42,0,1,1),"ease-out":Cl(0,0,.58,1),"ease-in-out":Cl(.42,0,.58,1),"ease-in-sine":Cl(.47,0,.745,.715),"ease-out-sine":Cl(.39,.575,.565,1),"ease-in-out-sine":Cl(.445,.05,.55,.95),"ease-in-quad":Cl(.55,.085,.68,.53),"ease-out-quad":Cl(.25,.46,.45,.94),"ease-in-out-quad":Cl(.455,.03,.515,.955),"ease-in-cubic":Cl(.55,.055,.675,.19),"ease-out-cubic":Cl(.215,.61,.355,1),"ease-in-out-cubic":Cl(.645,.045,.355,1),"ease-in-quart":Cl(.895,.03,.685,.22),"ease-out-quart":Cl(.165,.84,.44,1),"ease-in-out-quart":Cl(.77,0,.175,1),"ease-in-quint":Cl(.755,.05,.855,.06),"ease-out-quint":Cl(.23,1,.32,1),"ease-in-out-quint":Cl(.86,0,.07,1),"ease-in-expo":Cl(.95,.05,.795,.035),"ease-out-expo":Cl(.19,1,.22,1),"ease-in-out-expo":Cl(1,0,0,1),"ease-in-circ":Cl(.6,.04,.98,.335),"ease-out-circ":Cl(.075,.82,.165,1),"ease-in-out-circ":Cl(.785,.135,.15,.86),spring:function(t,e,n){if(0===n)return Sl.linear;var i=El(t,e,n);return function(t,e,n){return t+(e-t)*i(n)}},"cubic-bezier":Cl};function Tl(t,e,n,i,a){if(1===i||e===n)return n;var r=a(e,n,i);return null==t||((t.roundValue||t.color)&&(r=Math.round(r)),void 0!==t.min&&(r=Math.max(r,t.min)),void 0!==t.max&&(r=Math.min(r,t.max))),r}function Al(t,e){return null!=t.pfValue||null!=t.value?null==t.pfValue||null!=e&&"%"===e.type.units?t.value:t.pfValue:t}function Dl(t,e,n,i,a){var r=null!=a?a.type:null;n<0?n=0:n>1&&(n=1);var o=Al(t,a),s=Al(e,a);if(k(o)&&k(s))return Tl(r,o,s,n,i);if(x(o)&&x(s)){for(var c=[],l=0;l<s.length;l++){var u=o[l],d=s[l];if(null!=u&&null!=d){var h=Tl(r,u,d,n,i);c.push(h)}else c.push(d)}return c}}function Il(t,e,n,i){var a=!i,r=t._private,o=e._private,s=o.easing,c=o.startTime,l=(i?t:t.cy()).style();if(!o.easingImpl)if(null==s)o.easingImpl=Sl.linear;else{var u,d,h;u=v(s)?l.parse("transition-timing-function",s).value:s,v(u)?(d=u,h=[]):(d=u[1],h=u.slice(2).map((function(t){return+t}))),h.length>0?("spring"===d&&h.push(o.duration),o.easingImpl=Sl[d].apply(null,h)):o.easingImpl=Sl[d]}var f,g=o.easingImpl;if(f=0===o.duration?1:(n-c)/o.duration,o.applying&&(f=o.progress),f<0?f=0:f>1&&(f=1),null==o.delay){var p=o.startPosition,b=o.position;if(b&&a&&!t.locked()){var m={};Ll(p.x,b.x)&&(m.x=Dl(p.x,b.x,f,g)),Ll(p.y,b.y)&&(m.y=Dl(p.y,b.y,f,g)),t.position(m)}var y=o.startPan,w=o.pan,x=r.pan,R=null!=w&&i;R&&(Ll(y.x,w.x)&&(x.x=Dl(y.x,w.x,f,g)),Ll(y.y,w.y)&&(x.y=Dl(y.y,w.y,f,g)),t.emit("pan"));var _=o.startZoom,k=o.zoom,E=null!=k&&i;E&&(Ll(_,k)&&(r.zoom=Tn(r.minZoom,Dl(_,k,f,g),r.maxZoom)),t.emit("zoom")),(R||E)&&t.emit("viewport");var C=o.style;if(C&&C.length>0&&a){for(var S=0;S<C.length;S++){var T=C[S],A=T.name,D=T,I=o.startStyle[A],L=Dl(I,D,f,g,l.properties[I.name]);l.overrideBypass(t,A,L)}t.emit("style")}}return o.progress=f,f}function Ll(t,e){return!!(null!=t&&null!=e&&(k(t)&&k(e)||t&&e))}function Ol(t,e,n,i){var a=e._private;a.started=!0,a.startTime=n-a.progress*a.duration}function Ml(t,e){var n=e._private.aniEles,i=[];function a(e,n){var a=e._private,r=a.animation.current,o=a.animation.queue,s=!1;if(0===r.length){var c=o.shift();c&&r.push(c)}for(var l=function(t){for(var e=t.length-1;e>=0;e--)(0,t[e])();t.splice(0,t.length)},u=r.length-1;u>=0;u--){var d=r[u],h=d._private;h.stopped?(r.splice(u,1),h.hooked=!1,h.playing=!1,h.started=!1,l(h.frames)):!h.playing&&!h.applying||(h.playing&&h.applying&&(h.applying=!1),h.started||Ol(e,d,t),Il(e,d,t,n),h.applying&&(h.applying=!1),l(h.frames),null!=h.step&&h.step(t),d.completed()&&(r.splice(u,1),h.hooked=!1,h.playing=!1,h.started=!1,l(h.completes)),s=!0)}return!n&&0===r.length&&0===o.length&&i.push(e),s}for(var r=!1,o=0;o<n.length;o++){var s=a(n[o]);r=r||s}var c=a(e,!0);(r||c)&&(n.length>0?e.notify("draw",n):e.notify("draw")),n.unmerge(i),e.emit("step")}var Nl={animate:fs.animate(),animation:fs.animation(),animated:fs.animated(),clearQueue:fs.clearQueue(),delay:fs.delay(),delayAnimation:fs.delayAnimation(),stop:fs.stop(),addToAnimationPool:function(t){var e=this;e.styleEnabled()&&e._private.aniEles.merge(t)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var t=this;if(t._private.animationsRunning=!0,t.styleEnabled()){var e=t.renderer();e&&e.beforeRender?e.beforeRender((function(e,n){Ml(n,t)}),e.beforeRenderPriorities.animations):n()}function n(){t._private.animationsRunning&&ne((function(e){Ml(e,t),n()}))}}},Bl={qualifierCompare:function(t,e){return null==t||null==e?null==t&&null==e:t.sameText(e)},eventMatches:function(t,e,n){var i=e.qualifier;return null==i||t!==n.target&&T(n.target)&&i.matches(n.target)},addEventFields:function(t,e){e.cy=t,e.target=t},callbackContext:function(t,e,n){return null!=e.qualifier?n.target:t}},Pl=function(t){return v(t)?new Ps(t):t},Fl={createEmitter:function(){var t=this._private;return t.emitter||(t.emitter=new Fc(Bl,this)),this},emitter:function(){return this._private.emitter},on:function(t,e,n){return this.emitter().on(t,Pl(e),n),this},removeListener:function(t,e,n){return this.emitter().removeListener(t,Pl(e),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(t,e,n){return this.emitter().one(t,Pl(e),n),this},once:function(t,e,n){return this.emitter().one(t,Pl(e),n),this},emit:function(t,e){return this.emitter().emit(t,e),this},emitAndNotify:function(t,e){return this.emit(t),this.notify(t,e),this}};fs.eventAliasesOn(Fl);var jl={png:function(t){return t=t||{},this._private.renderer.png(t)},jpg:function(t){var e=this._private.renderer;return(t=t||{}).bg=t.bg||"#fff",e.jpg(t)}};jl.jpeg=jl.jpg;var $l={layout:function(t){var e=this;if(null!=t)if(null!=t.name){var n,i=t.name,a=e.extension("layout",i);if(null!=a)return n=v(t.eles)?e.$(t.eles):null!=t.eles?t.eles:e.$(),new a(J({},t,{cy:e,eles:n}));Ee("No such layout `"+i+"` found. Did you forget to import it and `cytoscape.use()` it?")}else Ee("A `name` must be specified to make a layout");else Ee("Layout options must be specified to make a layout")}};$l.createLayout=$l.makeLayout=$l.layout;var zl={notify:function(t,e){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var i=n.batchNotifications[t]=n.batchNotifications[t]||this.collection();null!=e&&i.merge(e)}else if(n.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(t,e)}},notifications:function(t){var e=this._private;return void 0===t?e.notificationsEnabled:(e.notificationsEnabled=!!t,this)},noNotifications:function(t){this.notifications(!1),t(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var t=this._private;return null==t.batchCount&&(t.batchCount=0),0===t.batchCount&&(t.batchStyleEles=this.collection(),t.batchNotifications={}),t.batchCount++,this},endBatch:function(){var t=this._private;if(0===t.batchCount)return this;if(t.batchCount--,0===t.batchCount){t.batchStyleEles.updateStyle();var e=this.renderer();Object.keys(t.batchNotifications).forEach((function(n){var i=t.batchNotifications[n];i.empty()?e.notify(n):e.notify(n,i)}))}return this},batch:function(t){return this.startBatch(),t(),this.endBatch(),this},batchData:function(t){var e=this;return this.batch((function(){for(var n=Object.keys(t),i=0;i<n.length;i++){var a=n[i],r=t[a];e.getElementById(a).data(r)}}))}},Hl=Me({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1}),Ul={renderTo:function(t,e,n,i){return this._private.renderer.renderTo(t,e,n,i),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify("draw"),this},resize:function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},initRenderer:function(t){var e=this,n=e.extension("renderer",t.name);if(null!=n){void 0!==t.wheelSensitivity&&Se("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var i=Hl(t);i.cy=e,e._private.renderer=new n(i),this.notify("init")}else Ee("Can not initialise: No such renderer `".concat(t.name,"` found. Did you forget to import it and `cytoscape.use()` it?"))},destroyRenderer:function(){var t=this;t.notify("destroy");var e=t.container();if(e)for(e._cyreg=null;e.childNodes.length>0;)e.removeChild(e.childNodes[0]);t._private.renderer=null,t.mutableElements().forEach((function(t){var e=t._private;e.rscratch={},e.rstyle={},e.animation.current=[],e.animation.queue=[]}))},onRender:function(t){return this.on("render",t)},offRender:function(t){return this.off("render",t)}};Ul.invalidateDimensions=Ul.resize;var Vl={collection:function(t,e){return v(t)?this.$(t):S(t)?t.collection():x(t)?(e||(e={}),new xl(this,t,e.unique,e.removed)):new xl(this)},nodes:function(t){var e=this.$((function(t){return t.isNode()}));return t?e.filter(t):e},edges:function(t){var e=this.$((function(t){return t.isEdge()}));return t?e.filter(t):e},$:function(t){var e=this._private.elements;return t?e.filter(t):e.spawnSelf()},mutableElements:function(){return this._private.elements}};Vl.elements=Vl.filter=Vl.$;var ql={},Wl="t",Yl="f";ql.apply=function(t){for(var e=this,n=e._private.cy.collection(),i=0;i<t.length;i++){var a=t[i],r=e.getContextMeta(a);if(!r.empty){var o=e.getContextStyle(r),s=e.applyContextStyle(r,o,a);a._private.appliedInitStyle?e.updateTransitions(a,s.diffProps):a._private.appliedInitStyle=!0,e.updateStyleHints(a)&&n.push(a)}}return n},ql.getPropertiesDiff=function(t,e){var n=this,i=n._private.propDiffs=n._private.propDiffs||{},a=t+"-"+e,r=i[a];if(r)return r;for(var o=[],s={},c=0;c<n.length;c++){var l=n[c],u=t[c]===Wl,d=e[c]===Wl,h=u!==d,f=l.mappedProperties.length>0;if(h||d&&f){var g=void 0;h&&f||h?g=l.properties:f&&(g=l.mappedProperties);for(var p=0;p<g.length;p++){for(var b=g[p],m=b.name,y=!1,v=c+1;v<n.length;v++){var w=n[v];if(e[v]===Wl&&(y=null!=w.properties[b.name]))break}!s[m]&&!y&&(s[m]=!0,o.push(m))}}}return i[a]=o,o},ql.getContextMeta=function(t){for(var e,n=this,i="",a=t._private.styleCxtKey||"",r=0;r<n.length;r++){var o=n[r];i+=o.selector&&o.selector.matches(t)?Wl:Yl}return e=n.getPropertiesDiff(a,i),t._private.styleCxtKey=i,{key:i,diffPropNames:e,empty:0===e.length}},ql.getContextStyle=function(t){var e=t.key,n=this,i=this._private.contextStyles=this._private.contextStyles||{};if(i[e])return i[e];for(var a={_private:{key:e}},r=0;r<n.length;r++){var o=n[r];if(e[r]===Wl)for(var s=0;s<o.properties.length;s++){var c=o.properties[s];a[c.name]=c}}return i[e]=a,a},ql.applyContextStyle=function(t,e,n){for(var i=this,a=t.diffPropNames,r={},o=i.types,s=0;s<a.length;s++){var c=a[s],l=e[c],u=n.pstyle(c);if(!l){if(!u)continue;l=u.bypass?{name:c,deleteBypassed:!0}:{name:c,delete:!0}}if(u!==l){if(l.mapped===o.fn&&null!=u&&null!=u.mapping&&u.mapping.value===l.value){var d=u.mapping;if((d.fnValue=l.value(n))===d.prevFnValue)continue}var h=r[c]={prev:u};i.applyParsedProperty(n,l),h.next=n.pstyle(c),h.next&&h.next.bypass&&(h.next=h.next.bypassed)}}return{diffProps:r}},ql.updateStyleHints=function(t){var e=t._private,n=this,i=n.propertyGroupNames,a=n.propertyGroupKeys,r=function(t,e,i){return n.getPropertiesHash(t,e,i)},o=e.styleKey;if(t.removed())return!1;var s="nodes"===e.group,c=t._private.style;i=Object.keys(c);for(var l=0;l<a.length;l++){var u=a[l];e.styleKeys[u]=[ae,oe]}for(var d=function(t,n){return e.styleKeys[n][0]=ce(t,e.styleKeys[n][0])},h=function(t,n){return e.styleKeys[n][1]=le(t,e.styleKeys[n][1])},f=function(t,e){d(t,e),h(t,e)},g=function(t,e){for(var n=0;n<t.length;n++){var i=t.charCodeAt(n);d(i,e),h(i,e)}},p=2e9,b=function(t){return-128<t&&t<128&&Math.floor(t)!==t?p-(1024*t|0):t},m=0;m<i.length;m++){var y=i[m],v=c[y];if(null!=v){var w=this.properties[y],x=w.type,R=w.groupKey,_=void 0;null!=w.hashOverride?_=w.hashOverride(t,v):null!=v.pfValue&&(_=v.pfValue);var k=null==w.enums?v.value:null,E=null!=_,C=E||null!=k,S=v.units;x.number&&C&&!x.multiple?(f(b(E?_:k),R),!E&&null!=S&&g(S,R)):g(v.strValue,R)}}for(var T=[ae,oe],A=0;A<a.length;A++){var D=a[A],I=e.styleKeys[D];T[0]=ce(I[0],T[0]),T[1]=le(I[1],T[1])}e.styleKey=ue(T[0],T[1]);var L=e.styleKeys;e.labelDimsKey=de(L.labelDimensions);var O=r(t,["label"],L.labelDimensions);if(e.labelKey=de(O),e.labelStyleKey=de(he(L.commonLabel,O)),!s){var M=r(t,["source-label"],L.labelDimensions);e.sourceLabelKey=de(M),e.sourceLabelStyleKey=de(he(L.commonLabel,M));var N=r(t,["target-label"],L.labelDimensions);e.targetLabelKey=de(N),e.targetLabelStyleKey=de(he(L.commonLabel,N))}if(s){var B=e.styleKeys,P=B.nodeBody,F=B.nodeBorder,j=B.backgroundImage,$=B.compound,z=B.pie,H=[P,F,j,$,z].filter((function(t){return null!=t})).reduce(he,[ae,oe]);e.nodeKey=de(H),e.hasPie=null!=z&&z[0]!==ae&&z[1]!==oe}return o!==e.styleKey},ql.clearStyleHints=function(t){var e=t._private;e.styleCxtKey="",e.styleKeys={},e.styleKey=null,e.labelKey=null,e.labelStyleKey=null,e.sourceLabelKey=null,e.sourceLabelStyleKey=null,e.targetLabelKey=null,e.targetLabelStyleKey=null,e.nodeKey=null,e.hasPie=null},ql.applyParsedProperty=function(t,e){var n,i=this,a=e,r=t._private.style,o=i.types,s=i.properties[a.name].type,c=a.bypass,l=r[a.name],u=l&&l.bypass,d=t._private,h="mapping",f=function(t){return null==t?null:null!=t.pfValue?t.pfValue:t.value},g=function(){var e=f(l),n=f(a);i.checkTriggers(t,a.name,e,n)};if(a&&"pie"===a.name.substr(0,3)&&Se("The pie style properties are deprecated. Create charts using background images instead."),"curve-style"===e.name&&t.isEdge()&&("bezier"!==e.value&&t.isLoop()||"haystack"===e.value&&(t.source().isParent()||t.target().isParent()))&&(a=e=this.parse(e.name,"bezier",c)),a.delete)return r[a.name]=void 0,g(),!0;if(a.deleteBypassed)return l?!!l.bypass&&(l.bypassed=void 0,g(),!0):(g(),!0);if(a.deleteBypass)return l?!!l.bypass&&(r[a.name]=l.bypassed,g(),!0):(g(),!0);var p=function(){Se("Do not assign mappings to elements without corresponding data (i.e. ele `"+t.id()+"` has no mapping for property `"+a.name+"` with data field `"+a.field+"`); try a `["+a.field+"]` selector to limit scope to elements with `"+a.field+"` defined")};switch(a.mapped){case o.mapData:for(var b=a.field.split("."),m=d.data,y=0;y<b.length&&m;y++)m=m[b[y]];if(null==m)return p(),!1;var v;if(!k(m))return Se("Do not use continuous mappers without specifying numeric data (i.e. `"+a.field+": "+m+"` for `"+t.id()+"` is non-numeric)"),!1;var w=a.fieldMax-a.fieldMin;if((v=0===w?0:(m-a.fieldMin)/w)<0?v=0:v>1&&(v=1),s.color){var x=a.valueMin[0],R=a.valueMax[0],_=a.valueMin[1],E=a.valueMax[1],C=a.valueMin[2],S=a.valueMax[2],T=null==a.valueMin[3]?1:a.valueMin[3],A=null==a.valueMax[3]?1:a.valueMax[3],D=[Math.round(x+(R-x)*v),Math.round(_+(E-_)*v),Math.round(C+(S-C)*v),Math.round(T+(A-T)*v)];n={bypass:a.bypass,name:a.name,value:D,strValue:"rgb("+D[0]+", "+D[1]+", "+D[2]+")"}}else{if(!s.number)return!1;var I=a.valueMin+(a.valueMax-a.valueMin)*v;n=this.parse(a.name,I,a.bypass,h)}if(!n)return p(),!1;n.mapping=a,a=n;break;case o.data:for(var L=a.field.split("."),O=d.data,M=0;M<L.length&&O;M++)O=O[L[M]];if(null!=O&&(n=this.parse(a.name,O,a.bypass,h)),!n)return p(),!1;n.mapping=a,a=n;break;case o.fn:var N=a.value,B=null!=a.fnValue?a.fnValue:N(t);if(a.prevFnValue=B,null==B)return Se("Custom function mappers may not return null (i.e. `"+a.name+"` for ele `"+t.id()+"` is null)"),!1;if(!(n=this.parse(a.name,B,a.bypass,h)))return Se("Custom function mappers may not return invalid values for the property type (i.e. `"+a.name+"` for ele `"+t.id()+"` is invalid)"),!1;n.mapping=Ae(a),a=n;break;case void 0:break;default:return!1}return c?(a.bypassed=u?l.bypassed:l,r[a.name]=a):u?l.bypassed=a:r[a.name]=a,g(),!0},ql.cleanElements=function(t,e){for(var n=0;n<t.length;n++){var i=t[n];if(this.clearStyleHints(i),i.dirtyCompoundBoundsCache(),i.dirtyBoundingBoxCache(),e)for(var a=i._private.style,r=Object.keys(a),o=0;o<r.length;o++){var s=r[o],c=a[s];null!=c&&(c.bypass?c.bypassed=null:a[s]=null)}else i._private.style={}}},ql.update=function(){this._private.cy.mutableElements().updateStyle()},ql.updateTransitions=function(t,e){var n=this,i=t._private,a=t.pstyle("transition-property").value,r=t.pstyle("transition-duration").pfValue,o=t.pstyle("transition-delay").pfValue;if(a.length>0&&r>0){for(var s={},c=!1,l=0;l<a.length;l++){var u=a[l],d=t.pstyle(u),h=e[u];if(h){var f=h.prev,g=null!=h.next?h.next:d,p=!1,b=void 0,m=1e-6;f&&(k(f.pfValue)&&k(g.pfValue)?(p=g.pfValue-f.pfValue,b=f.pfValue+m*p):k(f.value)&&k(g.value)?(p=g.value-f.value,b=f.value+m*p):x(f.value)&&x(g.value)&&(p=f.value[0]!==g.value[0]||f.value[1]!==g.value[1]||f.value[2]!==g.value[2],b=f.strValue),p&&(s[u]=g.strValue,this.applyBypass(t,u,b),c=!0))}}if(!c)return;i.transitioning=!0,new $a((function(e){o>0?t.delayAnimation(o).play().promise().then(e):e()})).then((function(){return t.animation({style:s,duration:r,easing:t.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){n.removeBypasses(t,a),t.emitAndNotify("style"),i.transitioning=!1}))}else i.transitioning&&(this.removeBypasses(t,a),t.emitAndNotify("style"),i.transitioning=!1)},ql.checkTrigger=function(t,e,n,i,a,r){var o=this.properties[e],s=a(o);null!=s&&s(n,i)&&r(o)},ql.checkZOrderTrigger=function(t,e,n,i){var a=this;this.checkTrigger(t,e,n,i,(function(t){return t.triggersZOrder}),(function(){a._private.cy.notify("zorder",t)}))},ql.checkBoundsTrigger=function(t,e,n,i){this.checkTrigger(t,e,n,i,(function(t){return t.triggersBounds}),(function(a){t.dirtyCompoundBoundsCache(),t.dirtyBoundingBoxCache(),a.triggersBoundsOfParallelBeziers&&("curve-style"===e&&("bezier"===n||"bezier"===i)||"display"===e&&("none"===n||"none"===i))&&t.parallelEdges().forEach((function(t){t.isBundledBezier()&&t.dirtyBoundingBoxCache()}))}))},ql.checkTriggers=function(t,e,n,i){t.dirtyStyleCache(),this.checkZOrderTrigger(t,e,n,i),this.checkBoundsTrigger(t,e,n,i)};var Gl={applyBypass:function(t,e,n,i){var a=this,r=[],o=!0;if("*"===e||"**"===e){if(void 0!==n)for(var s=0;s<a.properties.length;s++){var c=a.properties[s].name,l=this.parse(c,n,!0);l&&r.push(l)}}else if(v(e)){var u=this.parse(e,n,!0);u&&r.push(u)}else{if(!R(e))return!1;var d=e;i=n;for(var h=Object.keys(d),f=0;f<h.length;f++){var g=h[f],p=d[g];if(void 0===p&&(p=d[$(g)]),void 0!==p){var b=this.parse(g,p,!0);b&&r.push(b)}}}if(0===r.length)return!1;for(var m=!1,y=0;y<t.length;y++){for(var w=t[y],x={},_=void 0,k=0;k<r.length;k++){var E=r[k];if(i){var C=w.pstyle(E.name);_=x[E.name]={prev:C}}m=this.applyParsedProperty(w,Ae(E))||m,i&&(_.next=w.pstyle(E.name))}m&&this.updateStyleHints(w),i&&this.updateTransitions(w,x,o)}return m},overrideBypass:function(t,e,n){e=j(e);for(var i=0;i<t.length;i++){var a=t[i],r=a._private.style[e],o=this.properties[e].type,s=o.color,c=o.mutiple,l=r?null!=r.pfValue?r.pfValue:r.value:null;r&&r.bypass?(r.value=n,null!=r.pfValue&&(r.pfValue=n),r.strValue=s?"rgb("+n.join(",")+")":c?n.join(" "):""+n,this.updateStyleHints(a)):this.applyBypass(a,e,n),this.checkTriggers(a,e,l,n)}},removeAllBypasses:function(t,e){return this.removeBypasses(t,this.propertyNames,e)},removeBypasses:function(t,e,n){for(var i=!0,a=0;a<t.length;a++){for(var r=t[a],o={},s=0;s<e.length;s++){var c=e[s],l=this.properties[c],u=r.pstyle(l.name);if(u&&u.bypass){var d="",h=this.parse(c,d,!0),f=o[l.name]={prev:u};this.applyParsedProperty(r,h),f.next=r.pstyle(l.name)}}this.updateStyleHints(r),n&&this.updateTransitions(r,o,i)}}},Zl={getEmSizeInPixels:function(){var t=this.containerCss("font-size");return null!=t?parseFloat(t):1},containerCss:function(t){var e=this._private.cy.container();if(h&&e&&h.getComputedStyle)return h.getComputedStyle(e).getPropertyValue(t)}},Kl={getRenderedStyle:function(t,e){return e?this.getStylePropertyValue(t,e,!0):this.getRawStyle(t,!0)},getRawStyle:function(t,e){var n=this;if(t=t[0]){for(var i={},a=0;a<n.properties.length;a++){var r=n.properties[a],o=n.getStylePropertyValue(t,r.name,e);null!=o&&(i[r.name]=o,i[$(r.name)]=o)}return i}},getIndexedStyle:function(t,e,n,i){return t.pstyle(e)[n][i]??t.cy().style().getDefaultProperty(e)[n][0]},getStylePropertyValue:function(t,e,n){var i=this;if(t=t[0]){var a=i.properties[e];a.alias&&(a=a.pointsTo);var r=a.type,o=t.pstyle(a.name);if(o){var s=o.value,c=o.units,l=o.strValue;if(n&&r.number&&null!=s&&k(s)){var u=t.cy().zoom(),d=function(t){return t*u},h=function(t,e){return d(t)+e},f=x(s);return(f?c.every((function(t){return null!=t})):null!=c)?f?s.map((function(t,e){return h(t,c[e])})).join(" "):h(s,c):f?s.map((function(t){return v(t)?t:""+d(t)})).join(" "):""+d(s)}if(null!=l)return l}return null}},getAnimationStartStyle:function(t,e){for(var n={},i=0;i<e.length;i++){var a=e[i].name,r=t.pstyle(a);void 0!==r&&(r=R(r)?this.parse(a,r.strValue):this.parse(a,r)),r&&(n[a]=r)}return n},getPropsList:function(t){var e=[],n=t,i=this.properties;if(n)for(var a=Object.keys(n),r=0;r<a.length;r++){var o=a[r],s=n[o],c=i[o]||i[j(o)],l=this.parse(c.name,s);l&&e.push(l)}return e},getNonDefaultPropertiesHash:function(t,e,n){var i,a,r,o,s,c,l=n.slice();for(s=0;s<e.length;s++)if(i=e[s],null!=(a=t.pstyle(i,!1)))if(null!=a.pfValue)l[0]=ce(o,l[0]),l[1]=le(o,l[1]);else for(r=a.strValue,c=0;c<r.length;c++)o=r.charCodeAt(c),l[0]=ce(o,l[0]),l[1]=le(o,l[1]);return l}};Kl.getPropertiesHash=Kl.getNonDefaultPropertiesHash;var Xl={appendFromJson:function(t){for(var e=this,n=0;n<t.length;n++){var i=t[n],a=i.selector,r=i.style||i.css,o=Object.keys(r);e.selector(a);for(var s=0;s<o.length;s++){var c=o[s],l=r[c];e.css(c,l)}}return e},fromJson:function(t){var e=this;return e.resetToDefault(),e.appendFromJson(t),e},json:function(){for(var t=[],e=this.defaultLength;e<this.length;e++){for(var n=this[e],i=n.selector,a=n.properties,r={},o=0;o<a.length;o++){var s=a[o];r[s.name]=s.strValue}t.push({selector:i?i.toString():"core",style:r})}return t}},Jl={appendFromString:function(t){var e,n,i,a=this,r=this,o=""+t;function s(){o=o.length>e.length?o.substr(e.length):""}function c(){n=n.length>i.length?n.substr(i.length):""}for(o=o.replace(/[/][*](\s|.)+?[*][/]/g,"");!o.match(/^\s*$/);){var l=o.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!l){Se("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+o);break}e=l[0];var u=l[1];if("core"!==u&&new Ps(u).invalid)Se("Skipping parsing of block: Invalid selector found in string stylesheet: "+u),s();else{var d=l[2],h=!1;n=d;for(var f=[];!n.match(/^\s*$/);){var g=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!g){Se("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+d),h=!0;break}i=g[0];var p=g[1],b=g[2];a.properties[p]?r.parse(p,b)?(f.push({name:p,val:b}),c()):(Se("Skipping property: Invalid property definition in: "+i),c()):(Se("Skipping property: Invalid property name in: "+i),c())}if(h){s();break}r.selector(u);for(var m=0;m<f.length;m++){var y=f[m];r.css(y.name,y.val)}s()}}return r},fromString:function(t){var e=this;return e.resetToDefault(),e.appendFromString(t),e}},Ql={};(function(){var t=U,e=q,n=Y,i=G,a=Z,r=function(t){return"^"+t+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},o=function(r){var o=t+"|\\w+|"+e+"|"+n+"|"+i+"|"+a;return"^"+r+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+t+")\\s*\\,\\s*("+t+")\\s*,\\s*("+o+")\\s*\\,\\s*("+o+")\\)$"},s=["^url\\s*\\(\\s*['\"]?(.+?)['\"]?\\s*\\)$","^(none)$","^(.+)$"];Ql.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi"]},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},justification:{enums:["left","center","right","auto"]},text:{string:!0},data:{mapping:!0,regex:r("data")},layoutData:{mapping:!0,regex:r("layoutData")},scratch:{mapping:!0,regex:r("scratch")},mapData:{mapping:!0,regex:o("mapData")},mapLayoutData:{mapping:!0,regex:o("mapLayoutData")},mapScratch:{mapping:!0,regex:o("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:s,singleRegexMatchValue:!0},urls:{regexes:s,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:function(t,e){switch(t.length){case 2:return"deg"!==e[0]&&"rad"!==e[0]&&"deg"!==e[1]&&"rad"!==e[1];case 1:return v(t[0])||"deg"===e[0]||"rad"===e[0];default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+t+")\\s*,\\s*("+t+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+t+")\\s*,\\s*("+t+")\\s*,\\s*("+t+")\\s*,\\s*("+t+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(t){var e=t.length;return 1===e||2===e||4===e}}};var c={zeroNonZero:function(t,e){return(null==t||null==e)&&t!==e||0==t&&0!=e||0!=t&&0==e},any:function(t,e){return t!=e},emptyNonEmpty:function(t,e){var n=O(t),i=O(e);return n&&!i||!n&&i}},l=Ql.types,u=[{name:"label",type:l.text,triggersBounds:c.any,triggersZOrder:c.emptyNonEmpty},{name:"text-rotation",type:l.textRotation,triggersBounds:c.any},{name:"text-margin-x",type:l.bidirectionalSize,triggersBounds:c.any},{name:"text-margin-y",type:l.bidirectionalSize,triggersBounds:c.any}],d=[{name:"source-label",type:l.text,triggersBounds:c.any},{name:"source-text-rotation",type:l.textRotation,triggersBounds:c.any},{name:"source-text-margin-x",type:l.bidirectionalSize,triggersBounds:c.any},{name:"source-text-margin-y",type:l.bidirectionalSize,triggersBounds:c.any},{name:"source-text-offset",type:l.size,triggersBounds:c.any}],h=[{name:"target-label",type:l.text,triggersBounds:c.any},{name:"target-text-rotation",type:l.textRotation,triggersBounds:c.any},{name:"target-text-margin-x",type:l.bidirectionalSize,triggersBounds:c.any},{name:"target-text-margin-y",type:l.bidirectionalSize,triggersBounds:c.any},{name:"target-text-offset",type:l.size,triggersBounds:c.any}],f=[{name:"font-family",type:l.fontFamily,triggersBounds:c.any},{name:"font-style",type:l.fontStyle,triggersBounds:c.any},{name:"font-weight",type:l.fontWeight,triggersBounds:c.any},{name:"font-size",type:l.size,triggersBounds:c.any},{name:"text-transform",type:l.textTransform,triggersBounds:c.any},{name:"text-wrap",type:l.textWrap,triggersBounds:c.any},{name:"text-overflow-wrap",type:l.textOverflowWrap,triggersBounds:c.any},{name:"text-max-width",type:l.size,triggersBounds:c.any},{name:"text-outline-width",type:l.size,triggersBounds:c.any},{name:"line-height",type:l.positiveNumber,triggersBounds:c.any}],g=[{name:"text-valign",type:l.valign,triggersBounds:c.any},{name:"text-halign",type:l.halign,triggersBounds:c.any},{name:"color",type:l.color},{name:"text-outline-color",type:l.color},{name:"text-outline-opacity",type:l.zeroOneNumber},{name:"text-background-color",type:l.color},{name:"text-background-opacity",type:l.zeroOneNumber},{name:"text-background-padding",type:l.size,triggersBounds:c.any},{name:"text-border-opacity",type:l.zeroOneNumber},{name:"text-border-color",type:l.color},{name:"text-border-width",type:l.size,triggersBounds:c.any},{name:"text-border-style",type:l.borderStyle,triggersBounds:c.any},{name:"text-background-shape",type:l.textBackgroundShape,triggersBounds:c.any},{name:"text-justification",type:l.justification}],p=[{name:"events",type:l.bool},{name:"text-events",type:l.bool}],b=[{name:"display",type:l.display,triggersZOrder:c.any,triggersBounds:c.any,triggersBoundsOfParallelBeziers:!0},{name:"visibility",type:l.visibility,triggersZOrder:c.any},{name:"opacity",type:l.zeroOneNumber,triggersZOrder:c.zeroNonZero},{name:"text-opacity",type:l.zeroOneNumber},{name:"min-zoomed-font-size",type:l.size},{name:"z-compound-depth",type:l.zCompoundDepth,triggersZOrder:c.any},{name:"z-index-compare",type:l.zIndexCompare,triggersZOrder:c.any},{name:"z-index",type:l.nonNegativeInt,triggersZOrder:c.any}],m=[{name:"overlay-padding",type:l.size,triggersBounds:c.any},{name:"overlay-color",type:l.color},{name:"overlay-opacity",type:l.zeroOneNumber,triggersBounds:c.zeroNonZero},{name:"overlay-shape",type:l.overlayShape,triggersBounds:c.any}],y=[{name:"underlay-padding",type:l.size,triggersBounds:c.any},{name:"underlay-color",type:l.color},{name:"underlay-opacity",type:l.zeroOneNumber,triggersBounds:c.zeroNonZero},{name:"underlay-shape",type:l.overlayShape,triggersBounds:c.any}],w=[{name:"transition-property",type:l.propList},{name:"transition-duration",type:l.time},{name:"transition-delay",type:l.time},{name:"transition-timing-function",type:l.easing}],x=function(t,e){return"label"===e.value?-t.poolIndex():e.pfValue},R=[{name:"height",type:l.nodeSize,triggersBounds:c.any,hashOverride:x},{name:"width",type:l.nodeSize,triggersBounds:c.any,hashOverride:x},{name:"shape",type:l.nodeShape,triggersBounds:c.any},{name:"shape-polygon-points",type:l.polygonPointList,triggersBounds:c.any},{name:"background-color",type:l.color},{name:"background-fill",type:l.fill},{name:"background-opacity",type:l.zeroOneNumber},{name:"background-blacken",type:l.nOneOneNumber},{name:"background-gradient-stop-colors",type:l.colors},{name:"background-gradient-stop-positions",type:l.percentages},{name:"background-gradient-direction",type:l.gradientDirection},{name:"padding",type:l.sizeMaybePercent,triggersBounds:c.any},{name:"padding-relative-to",type:l.paddingRelativeTo,triggersBounds:c.any},{name:"bounds-expansion",type:l.boundsExpansion,triggersBounds:c.any}],_=[{name:"border-color",type:l.color},{name:"border-opacity",type:l.zeroOneNumber},{name:"border-width",type:l.size,triggersBounds:c.any},{name:"border-style",type:l.borderStyle}],k=[{name:"background-image",type:l.urls},{name:"background-image-crossorigin",type:l.bgCrossOrigin},{name:"background-image-opacity",type:l.zeroOneNumbers},{name:"background-image-containment",type:l.bgContainment},{name:"background-image-smoothing",type:l.bools},{name:"background-position-x",type:l.bgPos},{name:"background-position-y",type:l.bgPos},{name:"background-width-relative-to",type:l.bgRelativeTo},{name:"background-height-relative-to",type:l.bgRelativeTo},{name:"background-repeat",type:l.bgRepeat},{name:"background-fit",type:l.bgFit},{name:"background-clip",type:l.bgClip},{name:"background-width",type:l.bgWH},{name:"background-height",type:l.bgWH},{name:"background-offset-x",type:l.bgPos},{name:"background-offset-y",type:l.bgPos}],E=[{name:"position",type:l.position,triggersBounds:c.any},{name:"compound-sizing-wrt-labels",type:l.compoundIncludeLabels,triggersBounds:c.any},{name:"min-width",type:l.size,triggersBounds:c.any},{name:"min-width-bias-left",type:l.sizeMaybePercent,triggersBounds:c.any},{name:"min-width-bias-right",type:l.sizeMaybePercent,triggersBounds:c.any},{name:"min-height",type:l.size,triggersBounds:c.any},{name:"min-height-bias-top",type:l.sizeMaybePercent,triggersBounds:c.any},{name:"min-height-bias-bottom",type:l.sizeMaybePercent,triggersBounds:c.any}],C=[{name:"line-style",type:l.lineStyle},{name:"line-color",type:l.color},{name:"line-fill",type:l.fill},{name:"line-cap",type:l.lineCap},{name:"line-opacity",type:l.zeroOneNumber},{name:"line-dash-pattern",type:l.numbers},{name:"line-dash-offset",type:l.number},{name:"line-gradient-stop-colors",type:l.colors},{name:"line-gradient-stop-positions",type:l.percentages},{name:"curve-style",type:l.curveStyle,triggersBounds:c.any,triggersBoundsOfParallelBeziers:!0},{name:"haystack-radius",type:l.zeroOneNumber,triggersBounds:c.any},{name:"source-endpoint",type:l.edgeEndpoint,triggersBounds:c.any},{name:"target-endpoint",type:l.edgeEndpoint,triggersBounds:c.any},{name:"control-point-step-size",type:l.size,triggersBounds:c.any},{name:"control-point-distances",type:l.bidirectionalSizes,triggersBounds:c.any},{name:"control-point-weights",type:l.numbers,triggersBounds:c.any},{name:"segment-distances",type:l.bidirectionalSizes,triggersBounds:c.any},{name:"segment-weights",type:l.numbers,triggersBounds:c.any},{name:"taxi-turn",type:l.bidirectionalSizeMaybePercent,triggersBounds:c.any},{name:"taxi-turn-min-distance",type:l.size,triggersBounds:c.any},{name:"taxi-direction",type:l.axisDirection,triggersBounds:c.any},{name:"edge-distances",type:l.edgeDistances,triggersBounds:c.any},{name:"arrow-scale",type:l.positiveNumber,triggersBounds:c.any},{name:"loop-direction",type:l.angle,triggersBounds:c.any},{name:"loop-sweep",type:l.angle,triggersBounds:c.any},{name:"source-distance-from-node",type:l.size,triggersBounds:c.any},{name:"target-distance-from-node",type:l.size,triggersBounds:c.any}],S=[{name:"ghost",type:l.bool,triggersBounds:c.any},{name:"ghost-offset-x",type:l.bidirectionalSize,triggersBounds:c.any},{name:"ghost-offset-y",type:l.bidirectionalSize,triggersBounds:c.any},{name:"ghost-opacity",type:l.zeroOneNumber}],T=[{name:"selection-box-color",type:l.color},{name:"selection-box-opacity",type:l.zeroOneNumber},{name:"selection-box-border-color",type:l.color},{name:"selection-box-border-width",type:l.size},{name:"active-bg-color",type:l.color},{name:"active-bg-opacity",type:l.zeroOneNumber},{name:"active-bg-size",type:l.size},{name:"outside-texture-bg-color",type:l.color},{name:"outside-texture-bg-opacity",type:l.zeroOneNumber}],A=[];Ql.pieBackgroundN=16,A.push({name:"pie-size",type:l.sizeMaybePercent});for(var D=1;D<=Ql.pieBackgroundN;D++)A.push({name:"pie-"+D+"-background-color",type:l.color}),A.push({name:"pie-"+D+"-background-size",type:l.percent}),A.push({name:"pie-"+D+"-background-opacity",type:l.zeroOneNumber});var I=[],L=Ql.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:l.arrowShape,triggersBounds:c.any},{name:"arrow-color",type:l.color},{name:"arrow-fill",type:l.arrowFill}].forEach((function(t){L.forEach((function(e){var n=e+"-"+t.name,i=t.type,a=t.triggersBounds;I.push({name:n,type:i,triggersBounds:a})}))}),{});var M=Ql.properties=[].concat(p,w,b,m,y,S,g,f,u,d,h,R,_,k,A,E,C,I,T),N=Ql.propertyGroups={behavior:p,transition:w,visibility:b,overlay:m,underlay:y,ghost:S,commonLabel:g,labelDimensions:f,mainLabel:u,sourceLabel:d,targetLabel:h,nodeBody:R,nodeBorder:_,backgroundImage:k,pie:A,compound:E,edgeLine:C,edgeArrow:I,core:T},B=Ql.propertyGroupNames={};(Ql.propertyGroupKeys=Object.keys(N)).forEach((function(t){B[t]=N[t].map((function(t){return t.name})),N[t].forEach((function(e){return e.groupKey=t}))}));var P=Ql.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];Ql.propertyNames=M.map((function(t){return t.name}));for(var F=0;F<M.length;F++){var j=M[F];M[j.name]=j}for(var $=0;$<P.length;$++){var z=P[$],H=M[z.pointsTo],V={name:z.name,alias:!0,pointsTo:H};M.push(V),M[z.name]=V}})(),Ql.getDefaultProperty=function(t){return this.getDefaultProperties()[t]},Ql.getDefaultProperties=function(){var t=this._private;if(null!=t.defaultProperties)return t.defaultProperties;for(var e=J({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125,events:"yes","text-events":"no","text-valign":"top","text-halign":"center","text-justification":"auto","line-height":1,color:"#000","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-overflow-wrap":"whitespace","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"overlay-shape":"round-rectangle","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","background-blacken":0,"background-color":"#999","background-fill":"solid","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-image-containment":"inside","background-image-smoothing":"yes","background-position-x":"50%","background-position-y":"50%","background-offset-x":0,"background-offset-y":0,"background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce((function(t,e){for(var n=1;n<=Ql.pieBackgroundN;n++){var i=e.name.replace("{{i}}",n),a=e.value;t[i]=a}return t}),{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"taxi-turn":"50%","taxi-turn-min-distance":10,"taxi-direction":"auto","edge-distances":"intersection","curve-style":"haystack","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node","line-dash-pattern":[6,3],"line-dash-offset":0},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"}].reduce((function(t,e){return Ql.arrowPrefixes.forEach((function(n){var i=n+"-"+e.name,a=e.value;t[i]=a})),t}),{})),n={},i=0;i<this.properties.length;i++){var a=this.properties[i];if(!a.pointsTo){var r=a.name,o=e[r],s=this.parse(r,o);n[r]=s}}return t.defaultProperties=n,t.defaultProperties},Ql.addDefaultStylesheet=function(){this.selector(":parent").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3}).selector(":loop").css({"curve-style":"bezier"}).selector("edge:compound").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector(":parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}),this.defaultLength=this.length};var tu={parse:function(t,e,n,i){var a=this;if(w(e))return a.parseImplWarn(t,e,n,i);var r,o=pe(t,""+e,n?"t":"f","mapping"===i||!0===i||!1===i||null==i?"dontcare":i),s=a.propCache=a.propCache||[];return(r=s[o])||(r=s[o]=a.parseImplWarn(t,e,n,i)),(n||"mapping"===i)&&(r=Ae(r))&&(r.value=Ae(r.value)),r},parseImplWarn:function(t,e,n,i){var a=this.parseImpl(t,e,n,i);return!a&&null!=e&&Se("The style property `".concat(t,": ").concat(e,"` is invalid")),a&&("width"===a.name||"height"===a.name)&&"label"===e&&Se("The style value of `label` is deprecated for `"+a.name+"`"),a},parseImpl:function(t,e,n,i){var a=this;t=j(t);var r=a.properties[t],o=e,s=a.types;if(!r||void 0===e)return null;r.alias&&(r=r.pointsTo,t=r.name);var c=v(e);c&&(e=e.trim());var l,u,d=r.type;if(!d)return null;if(n&&(""===e||null===e))return{name:t,value:e,bypass:!0,deleteBypass:!0};if(w(e))return{name:t,value:e,strValue:"fn",mapped:s.fn,bypass:n};if(!(!c||i||e.length<7||"a"!==e[1])){if(e.length>=7&&"d"===e[0]&&(l=new RegExp(s.data.regex).exec(e))){if(n)return!1;var h=s.data;return{name:t,value:l,strValue:""+e,mapped:h,field:l[1],bypass:n}}if(e.length>=10&&"m"===e[0]&&(u=new RegExp(s.mapData.regex).exec(e))){if(n||d.multiple)return!1;var f=s.mapData;if(!d.color&&!d.number)return!1;var g=this.parse(t,u[4]);if(!g||g.mapped)return!1;var p=this.parse(t,u[5]);if(!p||p.mapped)return!1;if(g.pfValue===p.pfValue||g.strValue===p.strValue)return Se("`"+t+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+t+": "+g.strValue+"`"),this.parse(t,g.strValue);if(d.color){var b=g.value,m=p.value;if(!(b[0]!==m[0]||b[1]!==m[1]||b[2]!==m[2]||b[3]!==m[3]&&(null!=b[3]&&1!==b[3]||null!=m[3]&&1!==m[3])))return!1}return{name:t,value:u,strValue:""+e,mapped:f,field:u[1],fieldMin:parseFloat(u[2]),fieldMax:parseFloat(u[3]),valueMin:g.value,valueMax:p.value,bypass:n}}}if(d.multiple&&"multiple"!==i){var y;if(y=c?e.split(/\s+/):x(e)?e:[e],d.evenMultiple&&y.length%2!=0)return null;for(var R=[],_=[],k=[],C="",S=!1,T=0;T<y.length;T++){var A=a.parse(t,y[T],n,"multiple");S=S||v(A.value),R.push(A.value),k.push(null!=A.pfValue?A.pfValue:A.value),_.push(A.units),C+=(T>0?" ":"")+A.strValue}return d.validate&&!d.validate(R,_)?null:d.singleEnum&&S?1===R.length&&v(R[0])?{name:t,value:R[0],strValue:R[0],bypass:n}:null:{name:t,value:R,pfValue:k,strValue:C,bypass:n,units:_}}var D=function(){for(var i=0;i<d.enums.length;i++)if(d.enums[i]===e)return{name:t,value:e,strValue:""+e,bypass:n};return null};if(d.number){var I,L="px";if(d.units&&(I=d.units),d.implicitUnits&&(L=d.implicitUnits),!d.unitless)if(c){var O="px|em"+(d.allowPercent?"|\\%":"");I&&(O=I);var M=e.match("^("+U+")("+O+")?$");M&&(e=M[1],I=M[2]||L)}else(!I||d.implicitUnits)&&(I=L);if(e=parseFloat(e),isNaN(e)&&void 0===d.enums)return null;if(isNaN(e)&&void 0!==d.enums)return e=o,D();if(d.integer&&!E(e)||void 0!==d.min&&(e<d.min||d.strictMin&&e===d.min)||void 0!==d.max&&(e>d.max||d.strictMax&&e===d.max))return null;var N={name:t,value:e,strValue:""+e+(I||""),units:I,bypass:n};return d.unitless||"px"!==I&&"em"!==I?N.pfValue=e:N.pfValue="px"!==I&&I?this.getEmSizeInPixels()*e:e,("ms"===I||"s"===I)&&(N.pfValue="ms"===I?e:1e3*e),("deg"===I||"rad"===I)&&(N.pfValue="rad"===I?e:yn(e)),"%"===I&&(N.pfValue=e/100),N}if(d.propList){var B=[],P=""+e;if("none"!==P){for(var F=P.split(/\s*,\s*|\s+/),$=0;$<F.length;$++){var z=F[$].trim();a.properties[z]?B.push(z):Se("`"+z+"` is not a valid property name")}if(0===B.length)return null}return{name:t,value:B,strValue:0===B.length?"none":B.join(" "),bypass:n}}if(d.color){var H=it(e);return H?{name:t,value:H,pfValue:H,strValue:"rgb("+H[0]+","+H[1]+","+H[2]+")",bypass:n}:null}if(d.regex||d.regexes){if(d.enums){var V=D();if(V)return V}for(var q=d.regexes?d.regexes:[d.regex],W=0;W<q.length;W++){var Y=new RegExp(q[W]).exec(e);if(Y)return{name:t,value:d.singleRegexMatchValue?Y[1]:Y,strValue:""+e,bypass:n}}return null}return d.string?{name:t,value:""+e,strValue:""+e,bypass:n}:d.enums?D():null}},eu=function t(e){if(!(this instanceof t))return new t(e);D(e)?(this._private={cy:e,coreStyle:{}},this.length=0,this.resetToDefault()):Ee("A style must have a core reference")},nu=eu.prototype;nu.instanceString=function(){return"style"},nu.clear=function(){for(var t=this._private,e=t.cy.elements(),n=0;n<this.length;n++)this[n]=void 0;return this.length=0,t.contextStyles={},t.propDiffs={},this.cleanElements(e,!0),e.forEach((function(t){var e=t[0]._private;e.styleDirty=!0,e.appliedInitStyle=!1})),this},nu.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},nu.core=function(t){return this._private.coreStyle[t]||this.getDefaultProperty(t)},nu.selector=function(t){var e="core"===t?null:new Ps(t),n=this.length++;return this[n]={selector:e,properties:[],mappedProperties:[],index:n},this},nu.css=function(){var t=this,e=arguments;if(1===e.length)for(var n=e[0],i=0;i<t.properties.length;i++){var a=t.properties[i],r=n[a.name];void 0===r&&(r=n[$(a.name)]),void 0!==r&&this.cssRule(a.name,r)}else 2===e.length&&this.cssRule(e[0],e[1]);return this},nu.style=nu.css,nu.cssRule=function(t,e){var n=this.parse(t,e);if(n){var i=this.length-1;this[i].properties.push(n),this[i].properties[n.name]=n,n.name.match(/pie-(\d+)-background-size/)&&n.value&&(this._private.hasPie=!0),n.mapped&&this[i].mappedProperties.push(n),!this[i].selector&&(this._private.coreStyle[n.name]=n)}return this},nu.append=function(t){return I(t)?t.appendToStyle(this):x(t)?this.appendFromJson(t):v(t)&&this.appendFromString(t),this},eu.fromJson=function(t,e){var n=new eu(t);return n.fromJson(e),n},eu.fromString=function(t,e){return new eu(t).fromString(e)},[ql,Gl,Zl,Kl,Xl,Jl,Ql,tu].forEach((function(t){J(nu,t)})),eu.types=nu.types,eu.properties=nu.properties,eu.propertyGroups=nu.propertyGroups,eu.propertyGroupNames=nu.propertyGroupNames,eu.propertyGroupKeys=nu.propertyGroupKeys;var iu={style:function(t){return t&&this.setStyle(t).update(),this._private.style},setStyle:function(t){var e=this._private;return I(t)?e.style=t.generateStyle(this):x(t)?e.style=eu.fromJson(this,t):v(t)?e.style=eu.fromString(this,t):e.style=eu(this),e.style},updateStyle:function(){this.mutableElements().updateStyle()}},au="single",ru={autolock:function(t){return void 0===t?this._private.autolock:(this._private.autolock=!!t,this)},autoungrabify:function(t){return void 0===t?this._private.autoungrabify:(this._private.autoungrabify=!!t,this)},autounselectify:function(t){return void 0===t?this._private.autounselectify:(this._private.autounselectify=!!t,this)},selectionType:function(t){var e=this._private;return null==e.selectionType&&(e.selectionType=au),void 0===t?e.selectionType:(("additive"===t||"single"===t)&&(e.selectionType=t),this)},panningEnabled:function(t){return void 0===t?this._private.panningEnabled:(this._private.panningEnabled=!!t,this)},userPanningEnabled:function(t){return void 0===t?this._private.userPanningEnabled:(this._private.userPanningEnabled=!!t,this)},zoomingEnabled:function(t){return void 0===t?this._private.zoomingEnabled:(this._private.zoomingEnabled=!!t,this)},userZoomingEnabled:function(t){return void 0===t?this._private.userZoomingEnabled:(this._private.userZoomingEnabled=!!t,this)},boxSelectionEnabled:function(t){return void 0===t?this._private.boxSelectionEnabled:(this._private.boxSelectionEnabled=!!t,this)},pan:function(){var t,e,n,i,a,r=arguments,o=this._private.pan;switch(r.length){case 0:return o;case 1:if(v(r[0]))return o[t=r[0]];if(R(r[0])){if(!this._private.panningEnabled)return this;i=(n=r[0]).x,a=n.y,k(i)&&(o.x=i),k(a)&&(o.y=a),this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;t=r[0],e=r[1],("x"===t||"y"===t)&&k(e)&&(o[t]=e),this.emit("pan viewport")}return this.notify("viewport"),this},panBy:function(t,e){var n,i,a,r,o,s=arguments,c=this._private.pan;if(!this._private.panningEnabled)return this;switch(s.length){case 1:R(t)&&(r=(a=s[0]).x,o=a.y,k(r)&&(c.x+=r),k(o)&&(c.y+=o),this.emit("pan viewport"));break;case 2:i=e,("x"===(n=t)||"y"===n)&&k(i)&&(c[n]+=i),this.emit("pan viewport")}return this.notify("viewport"),this},fit:function(t,e){var n=this.getFitViewport(t,e);if(n){var i=this._private;i.zoom=n.zoom,i.pan=n.pan,this.emit("pan zoom viewport"),this.notify("viewport")}return this},getFitViewport:function(t,e){if(k(t)&&void 0===e&&(e=t,t=void 0),this._private.panningEnabled&&this._private.zoomingEnabled){var n;if(v(t)){var i=t;t=this.$(i)}else if(N(t)){var a=t;(n={x1:a.x1,y1:a.y1,x2:a.x2,y2:a.y2}).w=n.x2-n.x1,n.h=n.y2-n.y1}else S(t)||(t=this.mutableElements());if(!S(t)||!t.empty()){n=n||t.boundingBox();var r,o=this.width(),s=this.height();if(e=k(e)?e:0,!isNaN(o)&&!isNaN(s)&&o>0&&s>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0)return{zoom:r=(r=(r=Math.min((o-2*e)/n.w,(s-2*e)/n.h))>this._private.maxZoom?this._private.maxZoom:r)<this._private.minZoom?this._private.minZoom:r,pan:{x:(o-r*(n.x1+n.x2))/2,y:(s-r*(n.y1+n.y2))/2}}}}},zoomRange:function(t,e){var n=this._private;if(null==e){var i=t;t=i.min,e=i.max}return k(t)&&k(e)&&t<=e?(n.minZoom=t,n.maxZoom=e):k(t)&&void 0===e&&t<=n.maxZoom?n.minZoom=t:k(e)&&void 0===t&&e>=n.minZoom&&(n.maxZoom=e),this},minZoom:function(t){return void 0===t?this._private.minZoom:this.zoomRange({min:t})},maxZoom:function(t){return void 0===t?this._private.maxZoom:this.zoomRange({max:t})},getZoomedViewport:function(t){var e,n,i=this._private,a=i.pan,r=i.zoom,o=!1;if(i.zoomingEnabled||(o=!0),k(t)?n=t:R(t)&&(n=t.level,null!=t.position?e=dn(t.position,r,a):null!=t.renderedPosition&&(e=t.renderedPosition),null!=e&&!i.panningEnabled&&(o=!0)),n=(n=n>i.maxZoom?i.maxZoom:n)<i.minZoom?i.minZoom:n,o||!k(n)||n===r||null!=e&&(!k(e.x)||!k(e.y)))return null;if(null!=e){var s=a,c=r,l=n;return{zoomed:!0,panned:!0,zoom:l,pan:{x:-l/c*(e.x-s.x)+e.x,y:-l/c*(e.y-s.y)+e.y}}}return{zoomed:!0,panned:!1,zoom:n,pan:a}},zoom:function(t){if(void 0===t)return this._private.zoom;var e=this.getZoomedViewport(t),n=this._private;return null!=e&&e.zoomed?(n.zoom=e.zoom,e.panned&&(n.pan.x=e.pan.x,n.pan.y=e.pan.y),this.emit("zoom"+(e.panned?" pan":"")+" viewport"),this.notify("viewport"),this):this},viewport:function(t){var e=this._private,n=!0,i=!0,a=[],r=!1,o=!1;if(!t)return this;if(k(t.zoom)||(n=!1),R(t.pan)||(i=!1),!n&&!i)return this;if(n){var s=t.zoom;s<e.minZoom||s>e.maxZoom||!e.zoomingEnabled?r=!0:(e.zoom=s,a.push("zoom"))}if(i&&(!r||!t.cancelOnFailedZoom)&&e.panningEnabled){var c=t.pan;k(c.x)&&(e.pan.x=c.x,o=!1),k(c.y)&&(e.pan.y=c.y,o=!1),o||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},center:function(t){var e=this.getCenterPan(t);return e&&(this._private.pan=e,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(t,e){if(this._private.panningEnabled){if(v(t)){var n=t;t=this.mutableElements().filter(n)}else S(t)||(t=this.mutableElements());if(0!==t.length){var i=t.boundingBox(),a=this.width(),r=this.height();return{x:(a-(e=void 0===e?this._private.zoom:e)*(i.x1+i.x2))/2,y:(r-e*(i.y1+i.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var t,e,n=this._private,i=n.container;return n.sizeCache=n.sizeCache||(i?(t=h.getComputedStyle(i),e=function(e){return parseFloat(t.getPropertyValue(e))},{width:i.clientWidth-e("padding-left")-e("padding-right"),height:i.clientHeight-e("padding-top")-e("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var t=this._private.pan,e=this._private.zoom,n=this.renderedExtent(),i={x1:(n.x1-t.x)/e,x2:(n.x2-t.x)/e,y1:(n.y1-t.y)/e,y2:(n.y2-t.y)/e};return i.w=i.x2-i.x1,i.h=i.y2-i.y1,i},renderedExtent:function(){var t=this.width(),e=this.height();return{x1:0,y1:0,x2:t,y2:e,w:t,h:e}},multiClickDebounceTime:function(t){return t?(this._private.multiClickDebounceTime=t,this):this._private.multiClickDebounceTime}};ru.centre=ru.center,ru.autolockNodes=ru.autolock,ru.autoungrabifyNodes=ru.autoungrabify;var ou={data:fs.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:fs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:fs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:fs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};ou.attr=ou.data,ou.removeAttr=ou.removeData;var su=function(t){var e=this,n=(t=J({},t)).container;n&&!C(n)&&C(n[0])&&(n=n[0]);var i=n?n._cyreg:null;(i=i||{})&&i.cy&&(i.cy.destroy(),i={});var a=i.readies=i.readies||[];n&&(n._cyreg=i),i.cy=e;var r=void 0!==h&&void 0!==n&&!t.headless,o=t;o.layout=J({name:r?"grid":"null"},o.layout),o.renderer=J({name:r?"canvas":"null"},o.renderer);var s=function(t,e,n){return void 0!==e?e:void 0!==n?n:t},c=this._private={container:n,ready:!1,options:o,elements:new xl(this),listeners:[],aniEles:new xl(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?r:o.styleEnabled,zoom:k(o.zoom)?o.zoom:1,pan:{x:R(o.pan)&&k(o.pan.x)?o.pan.x:0,y:R(o.pan)&&k(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var l=function(t,e){if(t.some(B))return $a.all(t).then(e);e(t)};c.styleEnabled&&e.setStyle([]);var u=J({},o,o.renderer);e.initRenderer(u);var d=function(t,n,i){e.notifications(!1);var a=e.mutableElements();a.length>0&&a.remove(),null!=t&&(R(t)||x(t))&&e.add(t),e.one("layoutready",(function(t){e.notifications(!0),e.emit(t),e.one("load",n),e.emitAndNotify("load")})).one("layoutstop",(function(){e.one("done",i),e.emit("done")}));var r=J({},e._private.options.layout);r.eles=e.elements(),e.layout(r).run()};l([o.style,o.elements],(function(t){var n=t[0],r=t[1];c.styleEnabled&&e.style().append(n),d(r,(function(){e.startAnimationLoop(),c.ready=!0,w(o.ready)&&e.on("ready",o.ready);for(var t=0;t<a.length;t++){var n=a[t];e.on("ready",n)}i&&(i.readies=[]),e.emit("ready")}),o.done)}))},cu=su.prototype;J(cu,{instanceString:function(){return"core"},isReady:function(){return this._private.ready},destroyed:function(){return this._private.destroyed},ready:function(t){return this.isReady()?this.emitter().emit("ready",[],t):this.on("ready",t),this},destroy:function(){var t=this;if(!t.destroyed())return t.stopAnimationLoop(),t.destroyRenderer(),this.emit("destroy"),t._private.destroyed=!0,t},hasElementWithId:function(t){return this._private.elements.hasElementWithId(t)},getElementById:function(t){return this._private.elements.getElementById(t)},hasCompoundNodes:function(){return this._private.hasCompoundNodes},headless:function(){return this._private.renderer.isHeadless()},styleEnabled:function(){return this._private.styleEnabled},addToPool:function(t){return this._private.elements.merge(t),this},removeFromPool:function(t){return this._private.elements.unmerge(t),this},container:function(){return this._private.container||null},mount:function(t){if(null!=t){var e=this,n=e._private,i=n.options;return!C(t)&&C(t[0])&&(t=t[0]),e.stopAnimationLoop(),e.destroyRenderer(),n.container=t,n.styleEnabled=!0,e.invalidateSize(),e.initRenderer(J({},i,i.renderer,{name:"null"===i.renderer.name?"canvas":i.renderer.name})),e.startAnimationLoop(),e.style(i.style),e.emit("mount"),e}},unmount:function(){var t=this;return t.stopAnimationLoop(),t.destroyRenderer(),t.initRenderer({name:"null"}),t.emit("unmount"),t},options:function(){return Ae(this._private.options)},json:function(t){var e=this,n=e._private,i=e.mutableElements(),a=function(t){return e.getElementById(t.id())};if(R(t)){if(e.startBatch(),t.elements){var r={},o=function(t,n){for(var i=[],a=[],o=0;o<t.length;o++){var s=t[o];if(s.data.id){var c=""+s.data.id,l=e.getElementById(c);r[c]=!0,0!==l.length?a.push({ele:l,json:s}):(n&&(s.group=n),i.push(s))}else Se("cy.json() cannot handle elements without an ID attribute")}e.add(i);for(var u=0;u<a.length;u++){var d=a[u],h=d.ele,f=d.json;h.json(f)}};if(x(t.elements))o(t.elements);else for(var s=["nodes","edges"],c=0;c<s.length;c++){var l=s[c],u=t.elements[l];x(u)&&o(u,l)}var d=e.collection();i.filter((function(t){return!r[t.id()]})).forEach((function(t){t.isParent()?d.merge(t):t.remove()})),d.forEach((function(t){return t.children().move({parent:null})})),d.forEach((function(t){return a(t).remove()}))}t.style&&e.style(t.style),null!=t.zoom&&t.zoom!==n.zoom&&e.zoom(t.zoom),t.pan&&(t.pan.x!==n.pan.x||t.pan.y!==n.pan.y)&&e.pan(t.pan),t.data&&e.data(t.data);for(var h=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"],f=0;f<h.length;f++){var g=h[f];null!=t[g]&&e[g](t[g])}return e.endBatch(),this}var p={};t?p.elements=this.elements().map((function(t){return t.json()})):(p.elements={},i.forEach((function(t){var e=t.group();p.elements[e]||(p.elements[e]=[]),p.elements[e].push(t.json())}))),this._private.styleEnabled&&(p.style=e.style().json()),p.data=Ae(e.data());var b=n.options;return p.zoomingEnabled=n.zoomingEnabled,p.userZoomingEnabled=n.userZoomingEnabled,p.zoom=n.zoom,p.minZoom=n.minZoom,p.maxZoom=n.maxZoom,p.panningEnabled=n.panningEnabled,p.userPanningEnabled=n.userPanningEnabled,p.pan=Ae(n.pan),p.boxSelectionEnabled=n.boxSelectionEnabled,p.renderer=Ae(b.renderer),p.hideEdgesOnViewport=b.hideEdgesOnViewport,p.textureOnViewport=b.textureOnViewport,p.wheelSensitivity=b.wheelSensitivity,p.motionBlur=b.motionBlur,p.multiClickDebounceTime=b.multiClickDebounceTime,p}}),cu.$id=cu.getElementById,[_l,Nl,Fl,jl,$l,zl,Ul,Vl,iu,ru,ou].forEach((function(t){J(cu,t)}));var lu={fit:!0,directed:!1,padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,maximal:!1,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}},uu=function(t){return t.scratch("breadthfirst")},du=function(t,e){return t.scratch("breadthfirst",e)};function hu(t){this.options=J({},lu,t)}hu.prototype.run=function(){var t,e=this.options,n=e,i=e.cy,a=n.eles,r=a.nodes().filter((function(t){return!t.isParent()})),o=a,s=n.directed,c=n.maximal||n.maximalAdjustments>0,l=An(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:i.width(),h:i.height()});if(S(n.roots))t=n.roots;else if(x(n.roots)){for(var u=[],d=0;d<n.roots.length;d++){var h=n.roots[d],f=i.getElementById(h);u.push(f)}t=i.collection(u)}else if(v(n.roots))t=i.$(n.roots);else if(s)t=r.roots();else{var g=a.components();t=i.collection();for(var p=function(e){var n=g[e],i=n.maxDegree(!1),a=n.filter((function(t){return t.degree(!1)===i}));t=t.add(a)},b=0;b<g.length;b++)p(b)}var m=[],y={},w=function(t,e){null==m[e]&&(m[e]=[]);var n=m[e].length;m[e].push(t),du(t,{index:n,depth:e})},R=function(t,e){var n=uu(t),i=n.depth,a=n.index;m[i][a]=null,w(t,e)};o.bfs({roots:t,directed:n.directed,visit:function(t,e,n,i,a){var r=t[0],o=r.id();w(r,a),y[o]=!0}});for(var _=[],k=0;k<r.length;k++){var E=r[k];y[E.id()]||_.push(E)}var C=function(t){for(var e=m[t],n=0;n<e.length;n++){var i=e[n];null!=i?du(i,{depth:t,index:n}):(e.splice(n,1),n--)}},T=function(){for(var t=0;t<m.length;t++)C(t)},A=function(t,e){for(var n=uu(t),i=t.incomers().filter((function(t){return t.isNode()&&a.has(t)})),r=-1,o=t.id(),s=0;s<i.length;s++){var c=i[s],l=uu(c);r=Math.max(r,l.depth)}return n.depth<=r&&(e[o]?null:(R(t,r+1),e[o]=!0,!0))};if(s&&c){var D=[],I={},L=function(t){return D.push(t)},O=function(){return D.shift()};for(r.forEach((function(t){return D.push(t)}));D.length>0;){var M=O(),N=A(M,I);if(N)M.outgoers().filter((function(t){return t.isNode()&&a.has(t)})).forEach(L);else if(null===N){Se("Detected double maximal shift for node `"+M.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}T();var B=0;if(n.avoidOverlap)for(var P=0;P<r.length;P++){var F=r[P].layoutDimensions(n),j=F.w,$=F.h;B=Math.max(B,j,$)}var z={},H=function(t){if(z[t.id()])return z[t.id()];for(var e=uu(t).depth,n=t.neighborhood(),i=0,a=0,o=0;o<n.length;o++){var s=n[o];if(!s.isEdge()&&!s.isParent()&&r.has(s)){var c=uu(s);if(null!=c){var l=c.index,u=c.depth;if(null!=l&&null!=u){var d=m[u].length;u<e&&(i+=l/d,a++)}}}}return i/=a=Math.max(1,a),0===a&&(i=0),z[t.id()]=i,i},U=function(t,e){var n=H(t)-H(e);return 0===n?K(t.id(),e.id()):n};void 0!==n.depthSort&&(U=n.depthSort);for(var V=0;V<m.length;V++)m[V].sort(U),C(V);for(var q=[],W=0;W<_.length;W++)q.push(_[W]);m.unshift(q),T();for(var Y=0,G=0;G<m.length;G++)Y=Math.max(m[G].length,Y);var Z={x:l.x1+l.w/2,y:l.x1+l.h/2},X=m.reduce((function(t,e){return Math.max(t,e.length)}),0),J=function(t){var e=uu(t),i=e.depth,a=e.index,r=m[i].length,o=Math.max(l.w/((n.grid?X:r)+1),B),s=Math.max(l.h/(m.length+1),B),c=Math.min(l.w/2/m.length,l.h/2/m.length);if(c=Math.max(c,B),n.circle){var u=c*i+c-(m.length>0&&m[0].length<=3?c/2:0),d=2*Math.PI/m[i].length*a;return 0===i&&1===m[0].length&&(u=1),{x:Z.x+u*Math.cos(d),y:Z.y+u*Math.sin(d)}}return{x:Z.x+(a+1-(r+1)/2)*o,y:(i+1)*s}};return a.nodes().layoutPositions(this,n,J),this};var fu={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}};function gu(t){this.options=J({},fu,t)}gu.prototype.run=function(){var t=this.options,e=t,n=t.cy,i=e.eles,a=void 0!==e.counterclockwise?!e.counterclockwise:e.clockwise,r=i.nodes().not(":parent");e.sort&&(r=r.sort(e.sort));for(var o,s=An(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),c={x:s.x1+s.w/2,y:s.y1+s.h/2},l=(void 0===e.sweep?2*Math.PI-2*Math.PI/r.length:e.sweep)/Math.max(1,r.length-1),u=0,d=0;d<r.length;d++){var h=r[d].layoutDimensions(e),f=h.w,g=h.h;u=Math.max(u,f,g)}if(o=k(e.radius)?e.radius:r.length<=1?0:Math.min(s.h,s.w)/2-u,r.length>1&&e.avoidOverlap){u*=1.75;var p=Math.cos(l)-Math.cos(0),b=Math.sin(l)-Math.sin(0),m=Math.sqrt(u*u/(p*p+b*b));o=Math.max(m,o)}var y=function(t,n){var i=e.startAngle+n*l*(a?1:-1),r=o*Math.cos(i),s=o*Math.sin(i);return{x:c.x+r,y:c.y+s}};return i.nodes().layoutPositions(this,e,y),this};var pu={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(t){return t.degree()},levelWidth:function(t){return t.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}};function bu(t){this.options=J({},pu,t)}bu.prototype.run=function(){for(var t=this.options,e=t,n=void 0!==e.counterclockwise?!e.counterclockwise:e.clockwise,i=t.cy,a=e.eles,r=a.nodes().not(":parent"),o=An(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:i.width(),h:i.height()}),s={x:o.x1+o.w/2,y:o.y1+o.h/2},c=[],l=0,u=0;u<r.length;u++){var d=r[u],h=void 0;h=e.concentric(d),c.push({value:h,node:d}),d._private.scratch.concentric=h}r.updateStyle();for(var f=0;f<r.length;f++){var g=r[f].layoutDimensions(e);l=Math.max(l,g.w,g.h)}c.sort((function(t,e){return e.value-t.value}));for(var p=e.levelWidth(r),b=[[]],m=b[0],y=0;y<c.length;y++){var v=c[y];m.length>0&&Math.abs(m[0].value-v.value)>=p&&(m=[],b.push(m)),m.push(v)}var w=l+e.minNodeSpacing;if(!e.avoidOverlap){var x=b.length>0&&b[0].length>1,R=(Math.min(o.w,o.h)/2-w)/(b.length+x?1:0);w=Math.min(w,R)}for(var _=0,k=0;k<b.length;k++){var E=b[k],C=void 0===e.sweep?2*Math.PI-2*Math.PI/E.length:e.sweep,S=E.dTheta=C/Math.max(1,E.length-1);if(E.length>1&&e.avoidOverlap){var T=Math.cos(S)-Math.cos(0),A=Math.sin(S)-Math.sin(0),D=Math.sqrt(w*w/(T*T+A*A));_=Math.max(D,_)}E.r=_,_+=w}if(e.equidistant){for(var I=0,L=0,O=0;O<b.length;O++){var M=b[O].r-L;I=Math.max(I,M)}L=0;for(var N=0;N<b.length;N++){var B=b[N];0===N&&(L=B.r),B.r=L,L+=I}}for(var P={},F=0;F<b.length;F++)for(var j=b[F],$=j.dTheta,z=j.r,H=0;H<j.length;H++){var U=j[H],V=e.startAngle+(n?1:-1)*$*H,q={x:s.x+z*Math.cos(V),y:s.y+z*Math.sin(V)};P[U.node.id()]=q}return a.nodes().layoutPositions(this,e,(function(t){var e=t.id();return P[e]})),this};var mu,yu={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(t,e){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(t){return 2048},nodeOverlap:4,idealEdgeLength:function(t){return 32},edgeElasticity:function(t){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1};function vu(t){this.options=J({},yu,t),this.options.layout=this}vu.prototype.run=function(){var t=this.options,e=t.cy,n=this;n.stopped=!1,(!0===t.animate||!1===t.animate)&&n.emit({type:"layoutstart",layout:n}),mu=!0===t.debug;var i=xu(e,n,t);mu&&wu(i),t.randomize&&ku(i);var a=ie(),r=function(){Cu(i,e,t),!0===t.fit&&e.fit(t.padding)},o=function(e){return!(n.stopped||e>=t.numIter||(Su(i,t),i.temperature=i.temperature*t.coolingFactor,i.temperature<t.minTemp))},s=function(){if(!0===t.animate||!1===t.animate)r(),n.one("layoutstop",t.stop),n.emit({type:"layoutstop",layout:n});else{var e=t.eles.nodes(),a=Eu(i,t,e);e.layoutPositions(n,t,a)}},c=0,l=!0;if(!0===t.animate)!function e(){for(var n=0;l&&n<t.refresh;)l=o(c),c++,n++;l?(ie()-a>=t.animationThreshold&&r(),ne(e)):(ju(i,t),s())}();else{for(;l;)l=o(c),c++;ju(i,t),s()}return this},vu.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},vu.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var wu,xu=function(t,e,n){for(var i=n.eles.edges(),a=n.eles.nodes(),r={isCompound:t.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:i.size(),temperature:n.initialTemp,clientWidth:t.width(),clientHeight:t.width(),boundingBox:An(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()})},o=n.eles.components(),s={},c=0;c<o.length;c++)for(var l=o[c],u=0;u<l.length;u++)s[l[u].id()]=c;for(c=0;c<r.nodeSize;c++){var d=(b=a[c]).layoutDimensions(n);(O={}).isLocked=b.locked(),O.id=b.data("id"),O.parentId=b.data("parent"),O.cmptId=s[b.id()],O.children=[],O.positionX=b.position("x"),O.positionY=b.position("y"),O.offsetX=0,O.offsetY=0,O.height=d.w,O.width=d.h,O.maxX=O.positionX+O.width/2,O.minX=O.positionX-O.width/2,O.maxY=O.positionY+O.height/2,O.minY=O.positionY-O.height/2,O.padLeft=parseFloat(b.style("padding")),O.padRight=parseFloat(b.style("padding")),O.padTop=parseFloat(b.style("padding")),O.padBottom=parseFloat(b.style("padding")),O.nodeRepulsion=w(n.nodeRepulsion)?n.nodeRepulsion(b):n.nodeRepulsion,r.layoutNodes.push(O),r.idToIndex[O.id]=c}var h=[],f=0,g=-1,p=[];for(c=0;c<r.nodeSize;c++){var b,m=(b=r.layoutNodes[c]).parentId;null!=m?r.layoutNodes[r.idToIndex[m]].children.push(b.id):(h[++g]=b.id,p.push(b.id))}for(r.graphSet.push(p);f<=g;){var y=h[f++],v=r.idToIndex[y],x=r.layoutNodes[v].children;if(x.length>0)for(r.graphSet.push(x),c=0;c<x.length;c++)h[++g]=x[c]}for(c=0;c<r.graphSet.length;c++){var R=r.graphSet[c];for(u=0;u<R.length;u++){var _=r.idToIndex[R[u]];r.indexToGraph[_]=c}}for(c=0;c<r.edgeSize;c++){var k=i[c],E={};E.id=k.data("id"),E.sourceId=k.data("source"),E.targetId=k.data("target");var C=w(n.idealEdgeLength)?n.idealEdgeLength(k):n.idealEdgeLength,S=w(n.edgeElasticity)?n.edgeElasticity(k):n.edgeElasticity,T=r.idToIndex[E.sourceId],A=r.idToIndex[E.targetId];if(r.indexToGraph[T]!=r.indexToGraph[A]){for(var D=Ru(E.sourceId,E.targetId,r),I=r.graphSet[D],L=0,O=r.layoutNodes[T];-1===I.indexOf(O.id);)O=r.layoutNodes[r.idToIndex[O.parentId]],L++;for(O=r.layoutNodes[A];-1===I.indexOf(O.id);)O=r.layoutNodes[r.idToIndex[O.parentId]],L++;C*=L*n.nestingFactor}E.idealLength=C,E.elasticity=S,r.layoutEdges.push(E)}return r},Ru=function(t,e,n){var i=_u(t,e,0,n);return 2>i.count?0:i.graph},_u=function t(e,n,i,a){var r=a.graphSet[i];if(-1<r.indexOf(e)&&-1<r.indexOf(n))return{count:2,graph:i};for(var o=0,s=0;s<r.length;s++){var c=r[s],l=a.idToIndex[c],u=a.layoutNodes[l].children;if(0!==u.length){var d=t(e,n,a.indexToGraph[a.idToIndex[u[0]]],a);if(0!==d.count){if(1!==d.count)return d;if(2==++o)break}}}return{count:o,graph:i}},ku=function(t,e){for(var n=t.clientWidth,i=t.clientHeight,a=0;a<t.nodeSize;a++){var r=t.layoutNodes[a];0===r.children.length&&!r.isLocked&&(r.positionX=Math.random()*n,r.positionY=Math.random()*i)}},Eu=function(t,e,n){var i=t.boundingBox,a={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};return e.boundingBox&&(n.forEach((function(e){var n=t.layoutNodes[t.idToIndex[e.data("id")]];a.x1=Math.min(a.x1,n.positionX),a.x2=Math.max(a.x2,n.positionX),a.y1=Math.min(a.y1,n.positionY),a.y2=Math.max(a.y2,n.positionY)})),a.w=a.x2-a.x1,a.h=a.y2-a.y1),function(n,r){var o=t.layoutNodes[t.idToIndex[n.data("id")]];if(e.boundingBox){var s=(o.positionX-a.x1)/a.w,c=(o.positionY-a.y1)/a.h;return{x:i.x1+s*i.w,y:i.y1+c*i.h}}return{x:o.positionX,y:o.positionY}}},Cu=function(t,e,n){var i=n.layout,a=n.eles.nodes(),r=Eu(t,n,a);a.positions(r),!0!==t.ready&&(t.ready=!0,i.one("layoutready",n.ready),i.emit({type:"layoutready",layout:this}))},Su=function(t,e,n){Tu(t,e),Ou(t),Mu(t,e),Nu(t),Bu(t)},Tu=function(t,e){for(var n=0;n<t.graphSet.length;n++)for(var i=t.graphSet[n],a=i.length,r=0;r<a;r++)for(var o=t.layoutNodes[t.idToIndex[i[r]]],s=r+1;s<a;s++){var c=t.layoutNodes[t.idToIndex[i[s]]];Du(o,c,t,e)}},Au=function(t){return-t+2*t*Math.random()},Du=function(t,e,n,i){if(t.cmptId===e.cmptId||n.isCompound){var a=e.positionX-t.positionX,r=e.positionY-t.positionY,o=1;0===a&&0===r&&(a=Au(o),r=Au(o));var s=Iu(t,e,a,r);if(s>0)var c=(u=i.nodeOverlap*s)*a/(b=Math.sqrt(a*a+r*r)),l=u*r/b;else{var u,d=Lu(t,a,r),h=Lu(e,-1*a,-1*r),f=h.x-d.x,g=h.y-d.y,p=f*f+g*g,b=Math.sqrt(p);c=(u=(t.nodeRepulsion+e.nodeRepulsion)/p)*f/b,l=u*g/b}t.isLocked||(t.offsetX-=c,t.offsetY-=l),e.isLocked||(e.offsetX+=c,e.offsetY+=l)}},Iu=function(t,e,n,i){if(n>0)var a=t.maxX-e.minX;else a=e.maxX-t.minX;if(i>0)var r=t.maxY-e.minY;else r=e.maxY-t.minY;return a>=0&&r>=0?Math.sqrt(a*a+r*r):0},Lu=function(t,e,n){var i=t.positionX,a=t.positionY,r=t.height||1,o=t.width||1,s=n/e,c=r/o,l={};return 0===e&&0<n||0===e&&0>n?(l.x=i,l.y=a+r/2,l):0<e&&-1*c<=s&&s<=c?(l.x=i+o/2,l.y=a+o*n/2/e,l):0>e&&-1*c<=s&&s<=c?(l.x=i-o/2,l.y=a-o*n/2/e,l):0<n&&(s<=-1*c||s>=c)?(l.x=i+r*e/2/n,l.y=a+r/2,l):(0>n&&(s<=-1*c||s>=c)&&(l.x=i-r*e/2/n,l.y=a-r/2),l)},Ou=function(t,e){for(var n=0;n<t.edgeSize;n++){var i=t.layoutEdges[n],a=t.idToIndex[i.sourceId],r=t.layoutNodes[a],o=t.idToIndex[i.targetId],s=t.layoutNodes[o],c=s.positionX-r.positionX,l=s.positionY-r.positionY;if(0!==c||0!==l){var u=Lu(r,c,l),d=Lu(s,-1*c,-1*l),h=d.x-u.x,f=d.y-u.y,g=Math.sqrt(h*h+f*f),p=Math.pow(i.idealLength-g,2)/i.elasticity;if(0!==g)var b=p*h/g,m=p*f/g;else b=0,m=0;r.isLocked||(r.offsetX+=b,r.offsetY+=m),s.isLocked||(s.offsetX-=b,s.offsetY-=m)}}},Mu=function(t,e){if(0!==e.gravity)for(var n=1,i=0;i<t.graphSet.length;i++){var a=t.graphSet[i],r=a.length;if(0===i)var o=t.clientHeight/2,s=t.clientWidth/2;else{var c=t.layoutNodes[t.idToIndex[a[0]]],l=t.layoutNodes[t.idToIndex[c.parentId]];o=l.positionX,s=l.positionY}for(var u=0;u<r;u++){var d=t.layoutNodes[t.idToIndex[a[u]]];if(!d.isLocked){var h=o-d.positionX,f=s-d.positionY,g=Math.sqrt(h*h+f*f);if(g>n){var p=e.gravity*h/g,b=e.gravity*f/g;d.offsetX+=p,d.offsetY+=b}}}}},Nu=function(t,e){var n=[],i=0,a=-1;for(n.push.apply(n,t.graphSet[0]),a+=t.graphSet[0].length;i<=a;){var r=n[i++],o=t.idToIndex[r],s=t.layoutNodes[o],c=s.children;if(0<c.length&&!s.isLocked){for(var l=s.offsetX,u=s.offsetY,d=0;d<c.length;d++){var h=t.layoutNodes[t.idToIndex[c[d]]];h.offsetX+=l,h.offsetY+=u,n[++a]=c[d]}s.offsetX=0,s.offsetY=0}}},Bu=function(t,e){for(var n=0;n<t.nodeSize;n++)0<(a=t.layoutNodes[n]).children.length&&(a.maxX=void 0,a.minX=void 0,a.maxY=void 0,a.minY=void 0);for(n=0;n<t.nodeSize;n++)if(!(0<(a=t.layoutNodes[n]).children.length||a.isLocked)){var i=Pu(a.offsetX,a.offsetY,t.temperature);a.positionX+=i.x,a.positionY+=i.y,a.offsetX=0,a.offsetY=0,a.minX=a.positionX-a.width,a.maxX=a.positionX+a.width,a.minY=a.positionY-a.height,a.maxY=a.positionY+a.height,Fu(a,t)}for(n=0;n<t.nodeSize;n++){var a;0<(a=t.layoutNodes[n]).children.length&&!a.isLocked&&(a.positionX=(a.maxX+a.minX)/2,a.positionY=(a.maxY+a.minY)/2,a.width=a.maxX-a.minX,a.height=a.maxY-a.minY)}},Pu=function(t,e,n){var i=Math.sqrt(t*t+e*e);if(i>n)var a={x:n*t/i,y:n*e/i};else a={x:t,y:e};return a},Fu=function t(e,n){var i=e.parentId;if(null!=i){var a=n.layoutNodes[n.idToIndex[i]],r=!1;if((null==a.maxX||e.maxX+a.padRight>a.maxX)&&(a.maxX=e.maxX+a.padRight,r=!0),(null==a.minX||e.minX-a.padLeft<a.minX)&&(a.minX=e.minX-a.padLeft,r=!0),(null==a.maxY||e.maxY+a.padBottom>a.maxY)&&(a.maxY=e.maxY+a.padBottom,r=!0),(null==a.minY||e.minY-a.padTop<a.minY)&&(a.minY=e.minY-a.padTop,r=!0),r)return t(a,n)}},ju=function(t,e){for(var n=t.layoutNodes,i=[],a=0;a<n.length;a++){var r=n[a],o=r.cmptId;(i[o]=i[o]||[]).push(r)}var s=0;for(a=0;a<i.length;a++)if(p=i[a]){p.x1=1/0,p.x2=-1/0,p.y1=1/0,p.y2=-1/0;for(var c=0;c<p.length;c++){var l=p[c];p.x1=Math.min(p.x1,l.positionX-l.width/2),p.x2=Math.max(p.x2,l.positionX+l.width/2),p.y1=Math.min(p.y1,l.positionY-l.height/2),p.y2=Math.max(p.y2,l.positionY+l.height/2)}p.w=p.x2-p.x1,p.h=p.y2-p.y1,s+=p.w*p.h}i.sort((function(t,e){return e.w*e.h-t.w*t.h}));var u=0,d=0,h=0,f=0,g=Math.sqrt(s)*t.clientWidth/t.clientHeight;for(a=0;a<i.length;a++){var p;if(p=i[a]){for(c=0;c<p.length;c++)(l=p[c]).isLocked||(l.positionX+=u-p.x1,l.positionY+=d-p.y1);u+=p.w+e.componentSpacing,h+=p.w+e.componentSpacing,f=Math.max(f,p.h),h>g&&(d+=f+e.componentSpacing,u=0,h=0,f=0)}}},$u={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(t){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}};function zu(t){this.options=J({},$u,t)}zu.prototype.run=function(){var t=this.options,e=t,n=t.cy,i=e.eles,a=i.nodes().not(":parent");e.sort&&(a=a.sort(e.sort));var r=An(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(0===r.h||0===r.w)i.nodes().layoutPositions(this,e,(function(t){return{x:r.x1,y:r.y1}}));else{var o=a.size(),s=Math.sqrt(o*r.h/r.w),c=Math.round(s),l=Math.round(r.w/r.h*s),u=function(t){if(null==t)return Math.min(c,l);Math.min(c,l)==c?c=t:l=t},d=function(t){if(null==t)return Math.max(c,l);Math.max(c,l)==c?c=t:l=t},h=e.rows,f=null!=e.cols?e.cols:e.columns;if(null!=h&&null!=f)c=h,l=f;else if(null!=h&&null==f)c=h,l=Math.ceil(o/c);else if(null==h&&null!=f)l=f,c=Math.ceil(o/l);else if(l*c>o){var g=u(),p=d();(g-1)*p>=o?u(g-1):(p-1)*g>=o&&d(p-1)}else for(;l*c<o;){var b=u(),m=d();(m+1)*b>=o?d(m+1):u(b+1)}var y=r.w/l,v=r.h/c;if(e.condense&&(y=0,v=0),e.avoidOverlap)for(var w=0;w<a.length;w++){var x=a[w],R=x._private.position;(null==R.x||null==R.y)&&(R.x=0,R.y=0);var _=x.layoutDimensions(e),k=e.avoidOverlapPadding,E=_.w+k,C=_.h+k;y=Math.max(y,E),v=Math.max(v,C)}for(var S={},T=function(t,e){return!!S["c-"+t+"-"+e]},A=function(t,e){S["c-"+t+"-"+e]=!0},D=0,I=0,L=function(){++I>=l&&(I=0,D++)},O={},M=0;M<a.length;M++){var N=a[M],B=e.position(N);if(B&&(void 0!==B.row||void 0!==B.col)){var P={row:B.row,col:B.col};if(void 0===P.col)for(P.col=0;T(P.row,P.col);)P.col++;else if(void 0===P.row)for(P.row=0;T(P.row,P.col);)P.row++;O[N.id()]=P,A(P.row,P.col)}}var F=function(t,e){var n,i;if(t.locked()||t.isParent())return!1;var a=O[t.id()];if(a)n=a.col*y+y/2+r.x1,i=a.row*v+v/2+r.y1;else{for(;T(D,I);)L();n=I*y+y/2+r.x1,i=D*v+v/2+r.y1,A(D,I),L()}return{x:n,y:i}};a.layoutPositions(this,e,F)}return this};var Hu={ready:function(){},stop:function(){}};function Uu(t){this.options=J({},Hu,t)}Uu.prototype.run=function(){var t=this.options,e=t.eles,n=this;return t.cy,n.emit("layoutstart"),e.nodes().positions((function(){return{x:0,y:0}})),n.one("layoutready",t.ready),n.emit("layoutready"),n.one("layoutstop",t.stop),n.emit("layoutstop"),this},Uu.prototype.stop=function(){return this};var Vu={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}};function qu(t){this.options=J({},Vu,t)}qu.prototype.run=function(){var t=this.options,e=t.eles.nodes(),n=w(t.positions);function i(e){return null==t.positions?un(e.position()):n?t.positions(e):t.positions[e._private.data.id]??null}return e.layoutPositions(this,t,(function(t,e){var n=i(t);return!t.locked()&&null!=n&&n})),this};var Wu={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(t,e){return!0},ready:void 0,stop:void 0,transform:function(t,e){return e}};function Yu(t){this.options=J({},Wu,t)}Yu.prototype.run=function(){var t=this.options,e=t.cy,n=t.eles,i=An(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),a=function(t,e){return{x:i.x1+Math.round(Math.random()*i.w),y:i.y1+Math.round(Math.random()*i.h)}};return n.nodes().layoutPositions(this,t,a),this};var Gu=[{name:"breadthfirst",impl:hu},{name:"circle",impl:gu},{name:"concentric",impl:bu},{name:"cose",impl:vu},{name:"grid",impl:zu},{name:"null",impl:Uu},{name:"preset",impl:qu},{name:"random",impl:Yu}];function Zu(t){this.options=t,this.notifications=0}var Ku=function(){},Xu=function(){throw new Error("A headless instance can not render images")};Zu.prototype={recalculateRenderedStyle:Ku,notify:function(){this.notifications++},init:Ku,isHeadless:function(){return!0},png:Xu,jpg:Xu};var Ju={arrowShapeWidth:.3,registerArrowShapes:function(){var t=this.arrowShapes={},e=this,n=function(t,e,n,i,a,r,o){var s=a.x-n/2-o,c=a.x+n/2+o,l=a.y-n/2-o,u=a.y+n/2+o;return s<=t&&t<=c&&l<=e&&e<=u},i=function(t,e,n,i,a){var r=t*Math.cos(i)-e*Math.sin(i),o=(t*Math.sin(i)+e*Math.cos(i))*n;return{x:r*n+a.x,y:o+a.y}},a=function(t,e,n,a){for(var r=[],o=0;o<t.length;o+=2){var s=t[o],c=t[o+1];r.push(i(s,c,e,n,a))}return r},r=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n];e.push(i.x,i.y)}return e},o=function(t){return t.pstyle("width").pfValue*t.pstyle("arrow-scale").pfValue*2},s=function(i,s){v(s)&&(s=t[s]),t[i]=J({name:i,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(t,e,n,i,o,s){var c=r(a(this.points,n+2*s,i,o));return Gn(t,e,c)},roughCollide:n,draw:function(t,n,i,r){var o=a(this.points,n,i,r);e.arrowShapeImpl("polygon")(t,o)},spacing:function(t){return 0},gap:o},s)};s("none",{collide:Re,roughCollide:Re,draw:ke,spacing:_e,gap:_e}),s("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),s("arrow","triangle"),s("triangle-backcurve",{points:t.triangle.points,controlPoint:[0,-.15],roughCollide:n,draw:function(t,n,r,o,s){var c=a(this.points,n,r,o),l=this.controlPoint,u=i(l[0],l[1],n,r,o);e.arrowShapeImpl(this.name)(t,c,u)},gap:function(t){return.8*o(t)}}),s("triangle-tee",{points:[0,0,.15,-.3,-.15,-.3,0,0],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(t,e,n,i,o,s,c){var l=r(a(this.points,n+2*c,i,o)),u=r(a(this.pointsTee,n+2*c,i,o));return Gn(t,e,l)||Gn(t,e,u)},draw:function(t,n,i,r,o){var s=a(this.points,n,i,r),c=a(this.pointsTee,n,i,r);e.arrowShapeImpl(this.name)(t,s,c)}}),s("circle-triangle",{radius:.15,pointsTr:[0,-.15,.15,-.45,-.15,-.45,0,-.15],collide:function(t,e,n,i,o,s,c){var l=o,u=Math.pow(l.x-t,2)+Math.pow(l.y-e,2)<=Math.pow((n+2*c)*this.radius,2),d=r(a(this.points,n+2*c,i,o));return Gn(t,e,d)||u},draw:function(t,n,i,r,o){var s=a(this.pointsTr,n,i,r);e.arrowShapeImpl(this.name)(t,s,r.x,r.y,this.radius*n)},spacing:function(t){return e.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.radius}}),s("triangle-cross",{points:[0,0,.15,-.3,-.15,-.3,0,0],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(t,e){var n=this.baseCrossLinePts.slice(),i=e/t,a=3,r=5;return n[a]=n[a]-i,n[r]=n[r]-i,n},collide:function(t,e,n,i,o,s,c){var l=r(a(this.points,n+2*c,i,o)),u=r(a(this.crossLinePts(n,s),n+2*c,i,o));return Gn(t,e,l)||Gn(t,e,u)},draw:function(t,n,i,r,o){var s=a(this.points,n,i,r),c=a(this.crossLinePts(n,o),n,i,r);e.arrowShapeImpl(this.name)(t,s,c)}}),s("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(t){return.525*o(t)}}),s("circle",{radius:.15,collide:function(t,e,n,i,a,r,o){var s=a;return Math.pow(s.x-t,2)+Math.pow(s.y-e,2)<=Math.pow((n+2*o)*this.radius,2)},draw:function(t,n,i,a,r){e.arrowShapeImpl(this.name)(t,a.x,a.y,this.radius*n)},spacing:function(t){return e.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.radius}}),s("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(t){return 1},gap:function(t){return 1}}),s("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),s("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(t){return t.pstyle("width").pfValue*t.pstyle("arrow-scale").value}}),s("chevron",{points:[0,0,-.15,-.15,-.1,-.2,0,-.1,.1,-.2,.15,-.15],gap:function(t){return.95*t.pstyle("width").pfValue*t.pstyle("arrow-scale").value}})}},Qu={projectIntoViewport:function(t,e){var n=this.cy,i=this.findContainerClientCoords(),a=i[0],r=i[1],o=i[4],s=n.pan(),c=n.zoom();return[((t-a)/o-s.x)/c,((e-r)/o-s.y)/c]},findContainerClientCoords:function(){if(this.containerBB)return this.containerBB;var t=this.container,e=t.getBoundingClientRect(),n=h.getComputedStyle(t),i=function(t){return parseFloat(n.getPropertyValue(t))},a={left:i("padding-left"),right:i("padding-right"),top:i("padding-top"),bottom:i("padding-bottom")},r={left:i("border-left-width"),right:i("border-right-width"),top:i("border-top-width"),bottom:i("border-bottom-width")},o=t.clientWidth,s=t.clientHeight,c=a.left+a.right,l=a.top+a.bottom,u=r.left+r.right,d=e.width/(o+u),f=o-c,g=s-l,p=e.left+a.left+r.left,b=e.top+a.top+r.top;return this.containerBB=[p,b,f,g,d]},invalidateContainerClientCoordsCache:function(){this.containerBB=null},findNearestElement:function(t,e,n,i){return this.findNearestElements(t,e,n,i)[0]},findNearestElements:function(t,e,n,i){var a,r,o=this,s=this,c=s.getCachedZSortedEles(),l=[],u=s.cy.zoom(),d=s.cy.hasCompoundNodes(),h=(i?24:8)/u,f=(i?8:2)/u,g=(i?8:2)/u,p=1/0;function b(t,e){if(t.isNode()){if(r)return;r=t,l.push(t)}if(t.isEdge()&&(null==e||e<p))if(a){if(a.pstyle("z-compound-depth").value===t.pstyle("z-compound-depth").value&&a.pstyle("z-compound-depth").value===t.pstyle("z-compound-depth").value)for(var n=0;n<l.length;n++)if(l[n].isEdge()){l[n]=t,a=t,p=e??p;break}}else l.push(t),a=t,p=e??p}function m(n){var i=n.outerWidth()+2*f,a=n.outerHeight()+2*f,r=i/2,c=a/2,l=n.position();if(l.x-r<=t&&t<=l.x+r&&l.y-c<=e&&e<=l.y+c&&s.nodeShapes[o.getNodeShape(n)].checkPoint(t,e,0,i,a,l.x,l.y))return b(n,0),!0}function y(n){var i,a=n._private,r=a.rscratch,c=n.pstyle("width").pfValue,u=n.pstyle("arrow-scale").value,f=c/2+h,g=f*f,p=2*f,y=a.source,v=a.target;if("segments"===r.edgeType||"straight"===r.edgeType||"haystack"===r.edgeType){for(var w=r.allpts,x=0;x+3<w.length;x+=2)if(Hn(t,e,w[x],w[x+1],w[x+2],w[x+3],p)&&g>(i=Yn(t,e,w[x],w[x+1],w[x+2],w[x+3])))return b(n,i),!0}else if("bezier"===r.edgeType||"multibezier"===r.edgeType||"self"===r.edgeType||"compound"===r.edgeType)for(w=r.allpts,x=0;x+5<r.allpts.length;x+=4)if(Un(t,e,w[x],w[x+1],w[x+2],w[x+3],w[x+4],w[x+5],p)&&g>(i=Wn(t,e,w[x],w[x+1],w[x+2],w[x+3],w[x+4],w[x+5])))return b(n,i),!0;y=y||a.source,v=v||a.target;var R=o.getArrowWidth(c,u),_=[{name:"source",x:r.arrowStartX,y:r.arrowStartY,angle:r.srcArrowAngle},{name:"target",x:r.arrowEndX,y:r.arrowEndY,angle:r.tgtArrowAngle},{name:"mid-source",x:r.midX,y:r.midY,angle:r.midsrcArrowAngle},{name:"mid-target",x:r.midX,y:r.midY,angle:r.midtgtArrowAngle}];for(x=0;x<_.length;x++){var k=_[x],E=s.arrowShapes[n.pstyle(k.name+"-arrow-shape").value],C=n.pstyle("width").pfValue;if(E.roughCollide(t,e,R,k.angle,{x:k.x,y:k.y},C,h)&&E.collide(t,e,R,k.angle,{x:k.x,y:k.y},C,h))return b(n),!0}d&&l.length>0&&(m(y),m(v))}function v(t,e,n){return Fe(t,e,n)}function w(n,i){var a,r=n._private,o=g;a=i?i+"-":"",n.boundingBox();var s=r.labelBounds[i||"main"],c=n.pstyle(a+"label").value;if("yes"===n.pstyle("text-events").strValue&&c){var l=v(r.rscratch,"labelX",i),u=v(r.rscratch,"labelY",i),d=v(r.rscratch,"labelAngle",i),h=n.pstyle(a+"text-margin-x").pfValue,f=n.pstyle(a+"text-margin-y").pfValue,p=s.x1-o-h,m=s.x2+o-h,y=s.y1-o-f,w=s.y2+o-f;if(d){var x=Math.cos(d),R=Math.sin(d),_=function(t,e){return{x:(t-=l)*x-(e-=u)*R+l,y:t*R+e*x+u}},k=_(p,y),E=_(p,w),C=_(m,y),S=_(m,w),T=[k.x+h,k.y+f,C.x+h,C.y+f,S.x+h,S.y+f,E.x+h,E.y+f];if(Gn(t,e,T))return b(n),!0}else if(Fn(s,t,e))return b(n),!0}}n&&(c=c.interactive);for(var x=c.length-1;x>=0;x--){var R=c[x];R.isNode()?m(R)||w(R):y(R)||w(R)||w(R,"source")||w(R,"target")}return l},getAllInBox:function(t,e,n,i){for(var a=this.getCachedZSortedEles().interactive,r=[],o=Math.min(t,n),s=Math.max(t,n),c=Math.min(e,i),l=Math.max(e,i),u=An({x1:t=o,y1:e=c,x2:n=s,y2:i=l}),d=0;d<a.length;d++){var h=a[d];if(h.isNode()){var f=h,g=f.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});Pn(u,g)&&!$n(g,u)&&r.push(f)}else{var p=h,b=p._private,m=b.rscratch;if(null!=m.startX&&null!=m.startY&&!Fn(u,m.startX,m.startY)||null!=m.endX&&null!=m.endY&&!Fn(u,m.endX,m.endY))continue;if("bezier"===m.edgeType||"multibezier"===m.edgeType||"self"===m.edgeType||"compound"===m.edgeType||"segments"===m.edgeType||"haystack"===m.edgeType){for(var y=b.rstyle.bezierPts||b.rstyle.linePts||b.rstyle.haystackPts,v=!0,w=0;w<y.length;w++)if(!jn(u,y[w])){v=!1;break}v&&r.push(p)}else("haystack"===m.edgeType||"straight"===m.edgeType)&&r.push(p)}}return r}},td={calculateArrowAngles:function(t){var e,n,i,a,r,o,s=t._private.rscratch,c="haystack"===s.edgeType,l="bezier"===s.edgeType,u="multibezier"===s.edgeType,d="segments"===s.edgeType,h="compound"===s.edgeType,f="self"===s.edgeType;if(c?(i=s.haystackPts[0],a=s.haystackPts[1],r=s.haystackPts[2],o=s.haystackPts[3]):(i=s.arrowStartX,a=s.arrowStartY,r=s.arrowEndX,o=s.arrowEndY),p=s.midX,b=s.midY,d)e=i-s.segpts[0],n=a-s.segpts[1];else if(u||h||f||l){var g=s.allpts;e=i-En(g[0],g[2],g[4],.1),n=a-En(g[1],g[3],g[5],.1)}else e=i-p,n=a-b;s.srcArrowAngle=vn(e,n);var p=s.midX,b=s.midY;if(c&&(p=(i+r)/2,b=(a+o)/2),e=r-i,n=o-a,d)if((g=s.allpts).length/2%2==0){var m=(y=g.length/2)-2;e=g[y]-g[m],n=g[y+1]-g[m+1]}else{m=(y=g.length/2-1)-2;var y,v=y+2;e=g[y]-g[m],n=g[y+1]-g[m+1]}else if(u||h||f){var w,x,R,_,g=s.allpts;if(s.ctrlpts.length/2%2==0){var k=2+(E=2+(C=g.length/2-1));w=En(g[C],g[E],g[k],0),x=En(g[C+1],g[E+1],g[k+1],0),R=En(g[C],g[E],g[k],1e-4),_=En(g[C+1],g[E+1],g[k+1],1e-4)}else{var E,C;k=2+(E=g.length/2-1),w=En(g[C=E-2],g[E],g[k],.4999),x=En(g[C+1],g[E+1],g[k+1],.4999),R=En(g[C],g[E],g[k],.5),_=En(g[C+1],g[E+1],g[k+1],.5)}e=R-w,n=_-x}if(s.midtgtArrowAngle=vn(e,n),s.midDispX=e,s.midDispY=n,e*=-1,n*=-1,d&&(g=s.allpts).length/2%2!=0&&(e=-(g[v=2+(y=g.length/2-1)]-g[y]),n=-(g[v+1]-g[y+1])),s.midsrcArrowAngle=vn(e,n),d)e=r-s.segpts[s.segpts.length-2],n=o-s.segpts[s.segpts.length-1];else if(u||h||f||l){var S=(g=s.allpts).length;e=r-En(g[S-6],g[S-4],g[S-2],.9),n=o-En(g[S-5],g[S-3],g[S-1],.9)}else e=r-p,n=o-b;s.tgtArrowAngle=vn(e,n)}};td.getArrowWidth=td.getArrowHeight=function(t,e){var n=this.arrowWidthCache=this.arrowWidthCache||{},i=n[t+", "+e];return i||(i=Math.max(Math.pow(13.37*t,.9),29)*e,n[t+", "+e]=i,i)};var ed={};function nd(t){var e=[];if(null!=t){for(var n=0;n<t.length;n+=2){var i=t[n],a=t[n+1];e.push({x:i,y:a})}return e}}ed.findHaystackPoints=function(t){for(var e=0;e<t.length;e++){var n=t[e],i=n._private,a=i.rscratch;if(!a.haystack){var r=2*Math.random()*Math.PI;a.source={x:Math.cos(r),y:Math.sin(r)},r=2*Math.random()*Math.PI,a.target={x:Math.cos(r),y:Math.sin(r)}}var o=i.source,s=i.target,c=o.position(),l=s.position(),u=o.width(),d=s.width(),h=o.height(),f=s.height(),g=n.pstyle("haystack-radius").value/2;a.haystackPts=a.allpts=[a.source.x*u*g+c.x,a.source.y*h*g+c.y,a.target.x*d*g+l.x,a.target.y*f*g+l.y],a.midX=(a.allpts[0]+a.allpts[2])/2,a.midY=(a.allpts[1]+a.allpts[3])/2,a.edgeType="haystack",a.haystack=!0,this.storeEdgeProjections(n),this.calculateArrowAngles(n),this.recalculateEdgeLabelProjections(n),this.calculateLabelAngles(n)}},ed.findSegmentsPoints=function(t,e){var n=t._private.rscratch,i=e.posPts,a=e.intersectionPts,r=e.vectorNormInverse,o=t.pstyle("edge-distances").value,s=t.pstyle("segment-weights"),c=t.pstyle("segment-distances"),l=Math.min(s.pfValue.length,c.pfValue.length);n.edgeType="segments",n.segpts=[];for(var u=0;u<l;u++){var d=s.pfValue[u],h=c.pfValue[u],f=1-d,g=d,p="node-position"===o?i:a,b={x:p.x1*f+p.x2*g,y:p.y1*f+p.y2*g};n.segpts.push(b.x+r.x*h,b.y+r.y*h)}},ed.findLoopPoints=function(t,e,n,i){var a=t._private.rscratch,r=e.dirCounts,o=e.srcPos,s=t.pstyle("control-point-distances"),c=s?s.pfValue[0]:void 0,l=t.pstyle("loop-direction").pfValue,u=t.pstyle("loop-sweep").pfValue,d=t.pstyle("control-point-step-size").pfValue;a.edgeType="self";var h=n,f=d;i&&(h=0,f=c);var g=l-Math.PI/2,p=g-u/2,b=g+u/2,m=String(l+"_"+u);h=void 0===r[m]?r[m]=0:++r[m],a.ctrlpts=[o.x+1.4*Math.cos(p)*f*(h/3+1),o.y+1.4*Math.sin(p)*f*(h/3+1),o.x+1.4*Math.cos(b)*f*(h/3+1),o.y+1.4*Math.sin(b)*f*(h/3+1)]},ed.findCompoundLoopPoints=function(t,e,n,i){var a=t._private.rscratch;a.edgeType="compound";var r=e.srcPos,o=e.tgtPos,s=e.srcW,c=e.srcH,l=e.tgtW,u=e.tgtH,d=t.pstyle("control-point-step-size").pfValue,h=t.pstyle("control-point-distances"),f=h?h.pfValue[0]:void 0,g=n,p=d;i&&(g=0,p=f);var b=50,m={x:r.x-s/2,y:r.y-c/2},y={x:o.x-l/2,y:o.y-u/2},v={x:Math.min(m.x,y.x),y:Math.min(m.y,y.y)},w=.5,x=Math.max(w,Math.log(.01*s)),R=Math.max(w,Math.log(.01*l));a.ctrlpts=[v.x,v.y-(1+Math.pow(b,1.12)/100)*p*(g/3+1)*x,v.x-(1+Math.pow(b,1.12)/100)*p*(g/3+1)*R,v.y]},ed.findStraightEdgePoints=function(t){t._private.rscratch.edgeType="straight"},ed.findBezierPoints=function(t,e,n,i,a){var r=t._private.rscratch,o=e.vectorNormInverse,s=e.posPts,c=e.intersectionPts,l=t.pstyle("edge-distances").value,u=t.pstyle("control-point-step-size").pfValue,d=t.pstyle("control-point-distances"),h=t.pstyle("control-point-weights"),f=d&&h?Math.min(d.value.length,h.value.length):1,g=d?d.pfValue[0]:void 0,p=h.value[0],b=i;r.edgeType=b?"multibezier":"bezier",r.ctrlpts=[];for(var m=0;m<f;m++){var y=(.5-e.eles.length/2+n)*u*(a?-1:1),v=void 0,w=xn(y);b&&(g=d?d.pfValue[m]:u,p=h.value[m]);var x=void 0!==(v=i?g:void 0!==g?w*g:void 0)?v:y,R=1-p,_=p,k="node-position"===l?s:c,E={x:k.x1*R+k.x2*_,y:k.y1*R+k.y2*_};r.ctrlpts.push(E.x+o.x*x,E.y+o.y*x)}},ed.findTaxiPoints=function(t,e){var n=t._private.rscratch;n.edgeType="segments";var i="vertical",a="horizontal",r="leftward",o="rightward",s="downward",c="upward",l="auto",u=e.posPts,d=e.srcW,h=e.srcH,f=e.tgtW,g=e.tgtH,p="node-position"!==t.pstyle("edge-distances").value,b=t.pstyle("taxi-direction").value,m=b,y=t.pstyle("taxi-turn"),v="%"===y.units,w=y.pfValue,x=w<0,R=t.pstyle("taxi-turn-min-distance").pfValue,_=p?(d+f)/2:0,k=p?(h+g)/2:0,E=u.x2-u.x1,C=u.y2-u.y1,S=function(t,e){return t>0?Math.max(t-e,0):Math.min(t+e,0)},T=S(E,_),A=S(C,k),D=!1;m===l?b=Math.abs(T)>Math.abs(A)?a:i:m===c||m===s?(b=i,D=!0):(m===r||m===o)&&(b=a,D=!0);var I,L=b===i,O=L?A:T,M=L?C:E,N=xn(M),B=!1;(!D||!v&&!x)&&(m===s&&M<0||m===c&&M>0||m===r&&M>0||m===o&&M<0)&&(O=(N*=-1)*Math.abs(O),B=!0);var P=function(t){return Math.abs(t)<R||Math.abs(t)>=Math.abs(O)},F=P(I=v?(w<0?1+w:w)*O:(w<0?O:0)+w*N),j=P(Math.abs(O)-Math.abs(I));if(!F&&!j||B)if(L){var $=u.y1+I+(p?h/2*N:0),z=u.x1,H=u.x2;n.segpts=[z,$,H,$]}else{var U=u.x1+I+(p?d/2*N:0),V=u.y1,q=u.y2;n.segpts=[U,V,U,q]}else if(L){var W=Math.abs(M)<=h/2,Y=Math.abs(E)<=f/2;if(W){var G=(u.x1+u.x2)/2,Z=u.y1,K=u.y2;n.segpts=[G,Z,G,K]}else if(Y){var X=(u.y1+u.y2)/2,J=u.x1,Q=u.x2;n.segpts=[J,X,Q,X]}else n.segpts=[u.x1,u.y2]}else{var tt=Math.abs(M)<=d/2,et=Math.abs(C)<=g/2;if(tt){var nt=(u.y1+u.y2)/2,it=u.x1,at=u.x2;n.segpts=[it,nt,at,nt]}else if(et){var rt=(u.x1+u.x2)/2,ot=u.y1,st=u.y2;n.segpts=[rt,ot,rt,st]}else n.segpts=[u.x2,u.y1]}},ed.tryToCorrectInvalidPoints=function(t,e){var n=t._private.rscratch;if("bezier"===n.edgeType){var i=e.srcPos,a=e.tgtPos,r=e.srcW,o=e.srcH,s=e.tgtW,c=e.tgtH,l=e.srcShape,u=e.tgtShape,d=!k(n.startX)||!k(n.startY),h=!k(n.arrowStartX)||!k(n.arrowStartY),f=!k(n.endX)||!k(n.endY),g=!k(n.arrowEndX)||!k(n.arrowEndY),p=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth*3,b=Rn({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),m=b<p,y=Rn({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.endX,y:n.endY}),v=y<p,w=!1;if(d||h||m){w=!0;var x={x:n.ctrlpts[0]-i.x,y:n.ctrlpts[1]-i.y},R=Math.sqrt(x.x*x.x+x.y*x.y),_={x:x.x/R,y:x.y/R},E=Math.max(r,o),C={x:n.ctrlpts[0]+2*_.x*E,y:n.ctrlpts[1]+2*_.y*E},S=l.intersectLine(i.x,i.y,r,o,C.x,C.y,0);m?(n.ctrlpts[0]=n.ctrlpts[0]+_.x*(p-b),n.ctrlpts[1]=n.ctrlpts[1]+_.y*(p-b)):(n.ctrlpts[0]=S[0]+_.x*p,n.ctrlpts[1]=S[1]+_.y*p)}if(f||g||v){w=!0;var T={x:n.ctrlpts[0]-a.x,y:n.ctrlpts[1]-a.y},A=Math.sqrt(T.x*T.x+T.y*T.y),D={x:T.x/A,y:T.y/A},I=Math.max(r,o),L={x:n.ctrlpts[0]+2*D.x*I,y:n.ctrlpts[1]+2*D.y*I},O=u.intersectLine(a.x,a.y,s,c,L.x,L.y,0);v?(n.ctrlpts[0]=n.ctrlpts[0]+D.x*(p-y),n.ctrlpts[1]=n.ctrlpts[1]+D.y*(p-y)):(n.ctrlpts[0]=O[0]+D.x*p,n.ctrlpts[1]=O[1]+D.y*p)}w&&this.findEndpoints(t)}},ed.storeAllpts=function(t){var e=t._private.rscratch;if("multibezier"===e.edgeType||"bezier"===e.edgeType||"self"===e.edgeType||"compound"===e.edgeType){e.allpts=[],e.allpts.push(e.startX,e.startY);for(var n=0;n+1<e.ctrlpts.length;n+=2)e.allpts.push(e.ctrlpts[n],e.ctrlpts[n+1]),n+3<e.ctrlpts.length&&e.allpts.push((e.ctrlpts[n]+e.ctrlpts[n+2])/2,(e.ctrlpts[n+1]+e.ctrlpts[n+3])/2);var i,a;e.allpts.push(e.endX,e.endY),e.ctrlpts.length/2%2==0?(i=e.allpts.length/2-1,e.midX=e.allpts[i],e.midY=e.allpts[i+1]):(i=e.allpts.length/2-3,a=.5,e.midX=En(e.allpts[i],e.allpts[i+2],e.allpts[i+4],a),e.midY=En(e.allpts[i+1],e.allpts[i+3],e.allpts[i+5],a))}else if("straight"===e.edgeType)e.allpts=[e.startX,e.startY,e.endX,e.endY],e.midX=(e.startX+e.endX+e.arrowStartX+e.arrowEndX)/4,e.midY=(e.startY+e.endY+e.arrowStartY+e.arrowEndY)/4;else if("segments"===e.edgeType)if(e.allpts=[],e.allpts.push(e.startX,e.startY),e.allpts.push.apply(e.allpts,e.segpts),e.allpts.push(e.endX,e.endY),e.segpts.length%4==0){var r=e.segpts.length/2,o=r-2;e.midX=(e.segpts[o]+e.segpts[r])/2,e.midY=(e.segpts[o+1]+e.segpts[r+1])/2}else{var s=e.segpts.length/2-1;e.midX=e.segpts[s],e.midY=e.segpts[s+1]}},ed.checkForInvalidEdgeWarning=function(t){var e=t[0]._private.rscratch;e.nodesOverlap||k(e.startX)&&k(e.startY)&&k(e.endX)&&k(e.endY)?e.loggedErr=!1:e.loggedErr||(e.loggedErr=!0,Se("Edge `"+t.id()+"` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."))},ed.findEdgeControlPoints=function(t){var e=this;if(t&&0!==t.length){for(var n=this,i=n.cy.hasCompoundNodes(),a={map:new ze,get:function(t){var e=this.map.get(t[0]);return null!=e?e.get(t[1]):null},set:function(t,e){var n=this.map.get(t[0]);null==n&&(n=new ze,this.map.set(t[0],n)),n.set(t[1],e)}},r=[],o=[],s=0;s<t.length;s++){var c=t[s],l=c._private,u=c.pstyle("curve-style").value;if(!c.removed()&&c.takesUpSpace()){if("haystack"===u){o.push(c);continue}var d="unbundled-bezier"===u||"segments"===u||"straight"===u||"straight-triangle"===u||"taxi"===u,h="unbundled-bezier"===u||"bezier"===u,f=l.source,g=l.target,p=[f.poolIndex(),g.poolIndex()].sort(),b=a.get(p);null==b&&(b={eles:[]},a.set(p,b),r.push(p)),b.eles.push(c),d&&(b.hasUnbundled=!0),h&&(b.hasBezier=!0)}}for(var m=function(t){var o=r[t],s=a.get(o),c=void 0;if(!s.hasUnbundled){var l=s.eles[0].parallelEdges().filter((function(t){return t.isBundledBezier()}));Be(s.eles),l.forEach((function(t){return s.eles.push(t)})),s.eles.sort((function(t,e){return t.poolIndex()-e.poolIndex()}))}var u=s.eles[0],d=u.source(),h=u.target();if(d.poolIndex()>h.poolIndex()){var f=d;d=h,h=f}var g=s.srcPos=d.position(),p=s.tgtPos=h.position(),b=s.srcW=d.outerWidth(),m=s.srcH=d.outerHeight(),y=s.tgtW=h.outerWidth(),v=s.tgtH=h.outerHeight(),w=s.srcShape=n.nodeShapes[e.getNodeShape(d)],x=s.tgtShape=n.nodeShapes[e.getNodeShape(h)];s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var R=0;R<s.eles.length;R++){var _=s.eles[R],E=_[0]._private.rscratch,C=_.pstyle("curve-style").value,S="unbundled-bezier"===C||"segments"===C||"taxi"===C,T=!d.same(_.source());if(!s.calculatedIntersection&&d!==h&&(s.hasBezier||s.hasUnbundled)){s.calculatedIntersection=!0;var A=w.intersectLine(g.x,g.y,b,m,p.x,p.y,0),D=s.srcIntn=A,I=x.intersectLine(p.x,p.y,y,v,g.x,g.y,0),L=s.tgtIntn=I,O=s.intersectionPts={x1:A[0],x2:I[0],y1:A[1],y2:I[1]},M=s.posPts={x1:g.x,x2:p.x,y1:g.y,y2:p.y},N=I[1]-A[1],B=I[0]-A[0],P=Math.sqrt(B*B+N*N),F=s.vector={x:B,y:N},j=s.vectorNorm={x:F.x/P,y:F.y/P},$={x:-j.y,y:j.x};s.nodesOverlap=!k(P)||x.checkPoint(A[0],A[1],0,y,v,p.x,p.y)||w.checkPoint(I[0],I[1],0,b,m,g.x,g.y),s.vectorNormInverse=$,c={nodesOverlap:s.nodesOverlap,dirCounts:s.dirCounts,calculatedIntersection:!0,hasBezier:s.hasBezier,hasUnbundled:s.hasUnbundled,eles:s.eles,srcPos:p,tgtPos:g,srcW:y,srcH:v,tgtW:b,tgtH:m,srcIntn:L,tgtIntn:D,srcShape:x,tgtShape:w,posPts:{x1:M.x2,y1:M.y2,x2:M.x1,y2:M.y1},intersectionPts:{x1:O.x2,y1:O.y2,x2:O.x1,y2:O.y1},vector:{x:-F.x,y:-F.y},vectorNorm:{x:-j.x,y:-j.y},vectorNormInverse:{x:-$.x,y:-$.y}}}var z=T?c:s;E.nodesOverlap=z.nodesOverlap,E.srcIntn=z.srcIntn,E.tgtIntn=z.tgtIntn,i&&(d.isParent()||d.isChild()||h.isParent()||h.isChild())&&(d.parents().anySame(h)||h.parents().anySame(d)||d.same(h)&&d.isParent())?e.findCompoundLoopPoints(_,z,R,S):d===h?e.findLoopPoints(_,z,R,S):"segments"===C?e.findSegmentsPoints(_,z):"taxi"===C?e.findTaxiPoints(_,z):"straight"===C||!S&&s.eles.length%2==1&&R===Math.floor(s.eles.length/2)?e.findStraightEdgePoints(_):e.findBezierPoints(_,z,R,S,T),e.findEndpoints(_),e.tryToCorrectInvalidPoints(_,z),e.checkForInvalidEdgeWarning(_),e.storeAllpts(_),e.storeEdgeProjections(_),e.calculateArrowAngles(_),e.recalculateEdgeLabelProjections(_),e.calculateLabelAngles(_)}},y=0;y<r.length;y++)m(y);this.findHaystackPoints(o)}},ed.getSegmentPoints=function(t){var e=t[0]._private.rscratch;if("segments"===e.edgeType)return this.recalculateRenderedStyle(t),nd(e.segpts)},ed.getControlPoints=function(t){var e=t[0]._private.rscratch,n=e.edgeType;if("bezier"===n||"multibezier"===n||"self"===n||"compound"===n)return this.recalculateRenderedStyle(t),nd(e.ctrlpts)},ed.getEdgeMidpoint=function(t){var e=t[0]._private.rscratch;return this.recalculateRenderedStyle(t),{x:e.midX,y:e.midY}};var id={manualEndptToPx:function(t,e){var n=this,i=t.position(),a=t.outerWidth(),r=t.outerHeight();if(2===e.value.length){var o=[e.pfValue[0],e.pfValue[1]];return"%"===e.units[0]&&(o[0]=o[0]*a),"%"===e.units[1]&&(o[1]=o[1]*r),o[0]+=i.x,o[1]+=i.y,o}var s=e.pfValue[0];s=-Math.PI/2+s;var c=2*Math.max(a,r),l=[i.x+Math.cos(s)*c,i.y+Math.sin(s)*c];return n.nodeShapes[this.getNodeShape(t)].intersectLine(i.x,i.y,a,r,l[0],l[1],0)},findEndpoints:function(t){var e,n,i,a,r,o=this,s=t.source()[0],c=t.target()[0],l=s.position(),u=c.position(),d=t.pstyle("target-arrow-shape").value,h=t.pstyle("source-arrow-shape").value,f=t.pstyle("target-distance-from-node").pfValue,g=t.pstyle("source-distance-from-node").pfValue,p=t.pstyle("curve-style").value,b=t._private.rscratch,m=b.edgeType,y="self"===m||"compound"===m,v="bezier"===m||"multibezier"===m||y,w="bezier"!==m,x="straight"===m||"segments"===m,R="segments"===m,_=v||w||x,E=y||"taxi"===p,C=t.pstyle("source-endpoint"),S=E?"outside-to-node":C.value,T=t.pstyle("target-endpoint"),A=E?"outside-to-node":T.value;if(b.srcManEndpt=C,b.tgtManEndpt=T,v){var D=[b.ctrlpts[0],b.ctrlpts[1]];n=w?[b.ctrlpts[b.ctrlpts.length-2],b.ctrlpts[b.ctrlpts.length-1]]:D,i=D}else if(x){var I=R?b.segpts.slice(0,2):[u.x,u.y];n=R?b.segpts.slice(b.segpts.length-2):[l.x,l.y],i=I}if("inside-to-node"===A)e=[u.x,u.y];else if(T.units)e=this.manualEndptToPx(c,T);else if("outside-to-line"===A)e=b.tgtIntn;else if("outside-to-node"===A||"outside-to-node-or-label"===A?a=n:("outside-to-line"===A||"outside-to-line-or-label"===A)&&(a=[l.x,l.y]),e=o.nodeShapes[this.getNodeShape(c)].intersectLine(u.x,u.y,c.outerWidth(),c.outerHeight(),a[0],a[1],0),"outside-to-node-or-label"===A||"outside-to-line-or-label"===A){var L=c._private.rscratch,O=L.labelWidth,M=L.labelHeight,N=L.labelX,B=L.labelY,P=O/2,F=M/2,j=c.pstyle("text-valign").value;"top"===j?B-=F:"bottom"===j&&(B+=F);var $=c.pstyle("text-halign").value;"left"===$?N-=P:"right"===$&&(N+=P);var z=ai(a[0],a[1],[N-P,B-F,N+P,B-F,N+P,B+F,N-P,B+F],u.x,u.y);if(z.length>0){var H=l,U=_n(H,fn(e)),V=_n(H,fn(z)),q=U;V<U&&(e=z,q=V),z.length>2&&_n(H,{x:z[2],y:z[3]})<q&&(e=[z[2],z[3]])}}var W=oi(e,n,o.arrowShapes[d].spacing(t)+f),Y=oi(e,n,o.arrowShapes[d].gap(t)+f);if(b.endX=Y[0],b.endY=Y[1],b.arrowEndX=W[0],b.arrowEndY=W[1],"inside-to-node"===S)e=[l.x,l.y];else if(C.units)e=this.manualEndptToPx(s,C);else if("outside-to-line"===S)e=b.srcIntn;else if("outside-to-node"===S||"outside-to-node-or-label"===S?r=i:("outside-to-line"===S||"outside-to-line-or-label"===S)&&(r=[u.x,u.y]),e=o.nodeShapes[this.getNodeShape(s)].intersectLine(l.x,l.y,s.outerWidth(),s.outerHeight(),r[0],r[1],0),"outside-to-node-or-label"===S||"outside-to-line-or-label"===S){var G=s._private.rscratch,Z=G.labelWidth,K=G.labelHeight,X=G.labelX,J=G.labelY,Q=Z/2,tt=K/2,et=s.pstyle("text-valign").value;"top"===et?J-=tt:"bottom"===et&&(J+=tt);var nt=s.pstyle("text-halign").value;"left"===nt?X-=Q:"right"===nt&&(X+=Q);var it=ai(r[0],r[1],[X-Q,J-tt,X+Q,J-tt,X+Q,J+tt,X-Q,J+tt],l.x,l.y);if(it.length>0){var at=u,rt=_n(at,fn(e)),ot=_n(at,fn(it)),st=rt;ot<rt&&(e=[it[0],it[1]],st=ot),it.length>2&&_n(at,{x:it[2],y:it[3]})<st&&(e=[it[2],it[3]])}}var ct=oi(e,i,o.arrowShapes[h].spacing(t)+g),lt=oi(e,i,o.arrowShapes[h].gap(t)+g);b.startX=lt[0],b.startY=lt[1],b.arrowStartX=ct[0],b.arrowStartY=ct[1],_&&(k(b.startX)&&k(b.startY)&&k(b.endX)&&k(b.endY)?b.badLine=!1:b.badLine=!0)},getSourceEndpoint:function(t){var e=t[0]._private.rscratch;return"haystack"===(this.recalculateRenderedStyle(t),e.edgeType)?{x:e.haystackPts[0],y:e.haystackPts[1]}:{x:e.arrowStartX,y:e.arrowStartY}},getTargetEndpoint:function(t){var e=t[0]._private.rscratch;return"haystack"===(this.recalculateRenderedStyle(t),e.edgeType)?{x:e.haystackPts[2],y:e.haystackPts[3]}:{x:e.arrowEndX,y:e.arrowEndY}}},ad={};function rd(t,e,n){for(var i=function(t,e,n,i){return En(t,e,n,i)},a=e._private.rstyle.bezierPts,r=0;r<t.bezierProjPcts.length;r++){var o=t.bezierProjPcts[r];a.push({x:i(n[0],n[2],n[4],o),y:i(n[1],n[3],n[5],o)})}}ad.storeEdgeProjections=function(t){var e=t._private,n=e.rscratch,i=n.edgeType;if(e.rstyle.bezierPts=null,e.rstyle.linePts=null,e.rstyle.haystackPts=null,"multibezier"===i||"bezier"===i||"self"===i||"compound"===i){e.rstyle.bezierPts=[];for(var a=0;a+5<n.allpts.length;a+=4)rd(this,t,n.allpts.slice(a,a+6))}else if("segments"===i){var r=e.rstyle.linePts=[];for(a=0;a+1<n.allpts.length;a+=2)r.push({x:n.allpts[a],y:n.allpts[a+1]})}else if("haystack"===i){var o=n.haystackPts;e.rstyle.haystackPts=[{x:o[0],y:o[1]},{x:o[2],y:o[3]}]}e.rstyle.arrowWidth=this.getArrowWidth(t.pstyle("width").pfValue,t.pstyle("arrow-scale").value)*this.arrowShapeWidth},ad.recalculateEdgeProjections=function(t){this.findEdgeControlPoints(t)};var od={recalculateNodeLabelProjection:function(t){var e=t.pstyle("label").strValue;if(!O(e)){var n,i,a=t._private,r=t.width(),o=t.height(),s=t.padding(),c=t.position(),l=t.pstyle("text-halign").strValue,u=t.pstyle("text-valign").strValue,d=a.rscratch,h=a.rstyle;switch(l){case"left":n=c.x-r/2-s;break;case"right":n=c.x+r/2+s;break;default:n=c.x}switch(u){case"top":i=c.y-o/2-s;break;case"bottom":i=c.y+o/2+s;break;default:i=c.y}d.labelX=n,d.labelY=i,h.labelX=n,h.labelY=i,this.calculateLabelAngles(t),this.applyLabelDimensions(t)}}},sd=function(t,e){var n=Math.atan(e/t);return 0===t&&n<0&&(n*=-1),n},cd=function(t,e){var n=e.x-t.x,i=e.y-t.y;return sd(n,i)},ld=function(t,e,n,i){var a=Tn(0,i-.001,1),r=Tn(0,i+.001,1),o=Cn(t,e,n,a),s=Cn(t,e,n,r);return cd(o,s)};od.recalculateEdgeLabelProjections=function(t){var e,n=t._private,i=n.rscratch,a=this,r={mid:t.pstyle("label").strValue,source:t.pstyle("source-label").strValue,target:t.pstyle("target-label").strValue};if(r.mid||r.source||r.target){e={x:i.midX,y:i.midY};var o=function(t,e,i){je(n.rscratch,t,e,i),je(n.rstyle,t,e,i)};o("labelX",null,e.x),o("labelY",null,e.y);var s=sd(i.midDispX,i.midDispY);o("labelAutoAngle",null,s);var c=function t(){if(t.cache)return t.cache;for(var e=[],r=0;r+5<i.allpts.length;r+=4){var o={x:i.allpts[r],y:i.allpts[r+1]},s={x:i.allpts[r+2],y:i.allpts[r+3]},c={x:i.allpts[r+4],y:i.allpts[r+5]};e.push({p0:o,p1:s,p2:c,startDist:0,length:0,segments:[]})}var l=n.rstyle.bezierPts,u=a.bezierProjPcts.length;function d(t,e,n,i,a){var r=Rn(e,n),o=t.segments[t.segments.length-1],s={p0:e,p1:n,t0:i,t1:a,startDist:o?o.startDist+o.length:0,length:r};t.segments.push(s),t.length+=r}for(var h=0;h<e.length;h++){var f=e[h],g=e[h-1];g&&(f.startDist=g.startDist+g.length),d(f,f.p0,l[h*u],0,a.bezierProjPcts[0]);for(var p=0;p<u-1;p++)d(f,l[h*u+p],l[h*u+p+1],a.bezierProjPcts[p],a.bezierProjPcts[p+1]);d(f,l[h*u+u-1],f.p2,a.bezierProjPcts[u-1],1)}return t.cache=e},l=function(n){var a,s="source"===n;if(r[n]){var l=t.pstyle(n+"-text-offset").pfValue;switch(i.edgeType){case"self":case"compound":case"bezier":case"multibezier":for(var u,d=c(),h=0,f=0,g=0;g<d.length;g++){for(var p=d[s?g:d.length-1-g],b=0;b<p.segments.length;b++){var m=p.segments[s?b:p.segments.length-1-b],y=g===d.length-1&&b===p.segments.length-1;if(h=f,(f+=m.length)>=l||y){u={cp:p,segment:m};break}}if(u)break}var v=u.cp,w=u.segment,x=(l-h)/w.length,R=w.t1-w.t0,_=s?w.t0+R*x:w.t1-R*x;_=Tn(0,_,1),e=Cn(v.p0,v.p1,v.p2,_),a=ld(v.p0,v.p1,v.p2,_);break;case"straight":case"segments":case"haystack":for(var k,E,C,S,T=0,A=i.allpts.length,D=0;D+3<A&&(s?(C={x:i.allpts[D],y:i.allpts[D+1]},S={x:i.allpts[D+2],y:i.allpts[D+3]}):(C={x:i.allpts[A-2-D],y:i.allpts[A-1-D]},S={x:i.allpts[A-4-D],y:i.allpts[A-3-D]}),E=T,!((T+=k=Rn(C,S))>=l));D+=2);var I=(l-E)/k;I=Tn(0,I,1),e=Sn(C,S,I),a=cd(C,S)}o("labelX",n,e.x),o("labelY",n,e.y),o("labelAutoAngle",n,a)}};l("source"),l("target"),this.applyLabelDimensions(t)}},od.applyLabelDimensions=function(t){this.applyPrefixedLabelDimensions(t),t.isEdge()&&(this.applyPrefixedLabelDimensions(t,"source"),this.applyPrefixedLabelDimensions(t,"target"))},od.applyPrefixedLabelDimensions=function(t,e){var n=t._private,i=this.getLabelText(t,e),a=this.calculateLabelDimensions(t,i),r=t.pstyle("line-height").pfValue,o=t.pstyle("text-wrap").strValue,s=Fe(n.rscratch,"labelWrapCachedLines",e)||[],c="wrap"!==o?1:Math.max(s.length,1),l=a.height/c,u=l*r,d=a.width,h=a.height+(c-1)*(r-1)*l;je(n.rstyle,"labelWidth",e,d),je(n.rscratch,"labelWidth",e,d),je(n.rstyle,"labelHeight",e,h),je(n.rscratch,"labelHeight",e,h),je(n.rscratch,"labelLineHeight",e,u)},od.getLabelText=function(t,e){var n=t._private,i=e?e+"-":"",a=t.pstyle(i+"label").strValue,r=t.pstyle("text-transform").value,o=function(t,i){return i?(je(n.rscratch,t,e,i),i):Fe(n.rscratch,t,e)};if(!a)return"";"none"==r||("uppercase"==r?a=a.toUpperCase():"lowercase"==r&&(a=a.toLowerCase()));var s=t.pstyle("text-wrap").value;if("wrap"===s){var c=o("labelKey");if(null!=c&&o("labelWrapKey")===c)return o("labelWrapCachedText");for(var l="\u200b",u=a.split("\n"),d=t.pstyle("text-max-width").pfValue,h="anywhere"===t.pstyle("text-overflow-wrap").value,f=[],g=/[\s\u200b]+/,p=h?"":" ",b=0;b<u.length;b++){var m=u[b],y=this.calculateLabelDimensions(t,m).width;if(h){var v=m.split("").join(l);m=v}if(y>d){for(var w=m.split(g),x="",R=0;R<w.length;R++){var _=w[R],k=0===x.length?_:x+p+_;this.calculateLabelDimensions(t,k).width<=d?x+=_+p:(x&&f.push(x),x=_+p)}x.match(/^[\s\u200b]+$/)||f.push(x)}else f.push(m)}o("labelWrapCachedLines",f),a=o("labelWrapCachedText",f.join("\n")),o("labelWrapKey",c)}else if("ellipsis"===s){var E=t.pstyle("text-max-width").pfValue,C="",S="\u2026",T=!1;if(this.calculateLabelDimensions(t,a).width<E)return a;for(var A=0;A<a.length&&!(this.calculateLabelDimensions(t,C+a[A]+S).width>E);A++)C+=a[A],A===a.length-1&&(T=!0);return T||(C+=S),C}return a},od.getLabelJustification=function(t){var e=t.pstyle("text-justification").strValue,n=t.pstyle("text-halign").strValue;if("auto"!==e)return e;if(!t.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},od.calculateLabelDimensions=function(t,e){var n=this,i=ge(e,t._private.labelDimsKey),a=n.labelDimCache||(n.labelDimCache=[]),r=a[i];if(null!=r)return r;var o=0,s=t.pstyle("font-style").strValue,c=t.pstyle("font-size").pfValue,l=t.pstyle("font-family").strValue,u=t.pstyle("font-weight").strValue,d=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!d){d=this.labelCalcCanvas=document.createElement("canvas"),h=this.labelCalcCanvasContext=d.getContext("2d");var f=d.style;f.position="absolute",f.left="-9999px",f.top="-9999px",f.zIndex="-1",f.visibility="hidden",f.pointerEvents="none"}h.font="".concat(s," ").concat(u," ").concat(c,"px ").concat(l);for(var g=0,p=0,b=e.split("\n"),m=0;m<b.length;m++){var y=b[m],v=h.measureText(y),w=Math.ceil(v.width),x=c;g=Math.max(w,g),p+=x}return g+=o,p+=o,a[i]={width:g,height:p}},od.calculateLabelAngle=function(t,e){var n=t._private.rscratch,i=t.isEdge(),a=e?e+"-":"",r=t.pstyle(a+"text-rotation"),o=r.strValue;return"none"===o?0:i&&"autorotate"===o?n.labelAutoAngle:"autorotate"===o?0:r.pfValue},od.calculateLabelAngles=function(t){var e=this,n=t.isEdge(),i=t._private.rscratch;i.labelAngle=e.calculateLabelAngle(t),n&&(i.sourceLabelAngle=e.calculateLabelAngle(t,"source"),i.targetLabelAngle=e.calculateLabelAngle(t,"target"))};var ud={},dd=28,hd=!1;ud.getNodeShape=function(t){var e=this,n=t.pstyle("shape").value;if("cutrectangle"===n&&(t.width()<dd||t.height()<dd))return hd||(Se("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),hd=!0),"rectangle";if(t.isParent())return"rectangle"===n||"roundrectangle"===n||"round-rectangle"===n||"cutrectangle"===n||"cut-rectangle"===n||"barrel"===n?n:"rectangle";if("polygon"===n){var i=t.pstyle("shape-polygon-points").value;return e.nodeShapes.makePolygon(i).name}return n};var fd={registerCalculationListeners:function(){var t=this.cy,e=t.collection(),n=this,i=function(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(e.merge(t),n)for(var i=0;i<t.length;i++){var a=t[i]._private.rstyle;a.clean=!1,a.cleanConnected=!1}};n.binder(t).on("bounds.* dirty.*",(function(t){var e=t.target;i(e)})).on("style.* background.*",(function(t){var e=t.target;i(e,!1)}));var a=function(a){if(a){var r=n.onUpdateEleCalcsFns;e.cleanStyle();for(var o=0;o<e.length;o++){var s=e[o],c=s._private.rstyle;s.isNode()&&!c.cleanConnected&&(i(s.connectedEdges()),c.cleanConnected=!0)}if(r)for(var l=0;l<r.length;l++)(0,r[l])(a,e);n.recalculateRenderedStyle(e),e=t.collection()}};n.flushRenderedStyleQueue=function(){a(!0)},n.beforeRender(a,n.beforeRenderPriorities.eleCalcs)},onUpdateEleCalcs:function(t){(this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[]).push(t)},recalculateRenderedStyle:function(t,e){var n=function(t){return t._private.rstyle.cleanConnected},i=[],a=[];if(!this.destroyed){void 0===e&&(e=!0);for(var r=0;r<t.length;r++){var o=t[r],s=o._private,c=s.rstyle;o.isEdge()&&(!n(o.source())||!n(o.target()))&&(c.clean=!1),!(e&&c.clean||o.removed())&&"none"!==o.pstyle("display").value&&("nodes"===s.group?a.push(o):i.push(o),c.clean=!0)}for(var l=0;l<a.length;l++){var u=a[l],d=u._private.rstyle,h=u.position();this.recalculateNodeLabelProjection(u),d.nodeX=h.x,d.nodeY=h.y,d.nodeW=u.pstyle("width").pfValue,d.nodeH=u.pstyle("height").pfValue}this.recalculateEdgeProjections(i);for(var f=0;f<i.length;f++){var g=i[f]._private,p=g.rstyle,b=g.rscratch;p.srcX=b.arrowStartX,p.srcY=b.arrowStartY,p.tgtX=b.arrowEndX,p.tgtY=b.arrowEndY,p.midX=b.midX,p.midY=b.midY,p.labelAngle=b.labelAngle,p.sourceLabelAngle=b.sourceLabelAngle,p.targetLabelAngle=b.targetLabelAngle}}}},gd={updateCachedGrabbedEles:function(){var t=this.cachedZSortedEles;if(t){t.drag=[],t.nondrag=[];for(var e=[],n=0;n<t.length;n++){var i=(a=t[n])._private.rscratch;a.grabbed()&&!a.isParent()?e.push(a):i.inDragLayer?t.drag.push(a):t.nondrag.push(a)}for(n=0;n<e.length;n++){var a=e[n];t.drag.push(a)}}},invalidateCachedZSortedEles:function(){this.cachedZSortedEles=null},getCachedZSortedEles:function(t){if(t||!this.cachedZSortedEles){var e=this.cy.mutableElements().toArray();e.sort(Kc),e.interactive=e.filter((function(t){return t.interactive()})),this.cachedZSortedEles=e,this.updateCachedGrabbedEles()}else e=this.cachedZSortedEles;return e}},pd={};[Qu,td,ed,id,ad,od,ud,fd,gd].forEach((function(t){J(pd,t)}));var bd={getCachedImage:function(t,e,n){var i=this,a=i.imageCache=i.imageCache||{},r=a[t];if(r)return r.image.complete||r.image.addEventListener("load",n),r.image;var o=(r=a[t]=a[t]||{}).image=new Image;o.addEventListener("load",n),o.addEventListener("error",(function(){o.error=!0}));var s="data:";return t.substring(0,s.length).toLowerCase()===s||(o.crossOrigin=e),o.src=t,o}},md={registerBinding:function(t,e,n,i){var a=Array.prototype.slice.apply(arguments,[1]),r=this.binder(t);return r.on.apply(r,a)},binder:function(t){var e=this,n=t===window||t===document||t===document.body||M(t);if(null==e.supportsPassiveEvents){var i=!1;try{var a=Object.defineProperty({},"passive",{get:function(){return i=!0,!0}});window.addEventListener("test",null,a)}catch{}e.supportsPassiveEvents=i}var r=function(i,a,r){var o=Array.prototype.slice.call(arguments);return n&&e.supportsPassiveEvents&&(o[2]={capture:r??!1,passive:!1,once:!1}),e.bindings.push({target:t,args:o}),(t.addEventListener||t.on).apply(t,o),this};return{on:r,addEventListener:r,addListener:r,bind:r}},nodeIsDraggable:function(t){return t&&t.isNode()&&!t.locked()&&t.grabbable()},nodeIsGrabbable:function(t){return this.nodeIsDraggable(t)&&t.interactive()},load:function(){var t=this,e=function(t){return t.selected()},n=function(e,n,i,a){null==e&&(e=t.cy);for(var r=0;r<n.length;r++){var o=n[r];e.emit({originalEvent:i,type:o,position:a})}},i=function(t){return t.shiftKey||t.metaKey||t.ctrlKey},a=function(e,n){var i=!0;if(t.cy.hasCompoundNodes()&&e&&e.pannable()){for(var a=0;n&&a<n.length;a++)if((e=n[a]).isNode()&&e.isParent()&&!e.pannable()){i=!1;break}}else i=!0;return i},r=function(t){t[0]._private.grabbed=!0},o=function(t){t[0]._private.grabbed=!1},s=function(t){t[0]._private.rscratch.inDragLayer=!0},c=function(t){t[0]._private.rscratch.inDragLayer=!1},l=function(t){t[0]._private.rscratch.isGrabTarget=!0},u=function(t){t[0]._private.rscratch.isGrabTarget=!1},d=function(t,e){var n=e.addToList;!n.has(t)&&t.grabbable()&&!t.locked()&&(n.merge(t),r(t))},h=function(t,e){if(t.cy().hasCompoundNodes()&&(null!=e.inDragLayer||null!=e.addToList)){var n=t.descendants();e.inDragLayer&&(n.forEach(s),n.connectedEdges().forEach(s)),e.addToList&&d(n,e)}},f=function(e,n){n=n||{};var i=e.cy().hasCompoundNodes();n.inDragLayer&&(e.forEach(s),e.neighborhood().stdFilter((function(t){return!i||t.isEdge()})).forEach(s)),n.addToList&&e.forEach((function(t){d(t,n)})),h(e,n),b(e,{inDragLayer:n.inDragLayer}),t.updateCachedGrabbedEles()},g=f,p=function(e){e&&(t.getCachedZSortedEles().forEach((function(t){o(t),c(t),u(t)})),t.updateCachedGrabbedEles())},b=function(t,e){if((null!=e.inDragLayer||null!=e.addToList)&&t.cy().hasCompoundNodes()){var n=t.ancestors().orphans();if(!n.same(t)){var i=n.descendants().spawnSelf().merge(n).unmerge(t).unmerge(t.descendants()),a=i.connectedEdges();e.inDragLayer&&(a.forEach(s),i.forEach(s)),e.addToList&&i.forEach((function(t){d(t,e)}))}}},m=function(){null!=document.activeElement&&null!=document.activeElement.blur&&document.activeElement.blur()},y=typeof MutationObserver<"u",v=typeof ResizeObserver<"u";y?(t.removeObserver=new MutationObserver((function(e){for(var n=0;n<e.length;n++){var i=e[n].removedNodes;if(i)for(var a=0;a<i.length;a++)if(i[a]===t.container){t.destroy();break}}})),t.container.parentNode&&t.removeObserver.observe(t.container.parentNode,{childList:!0})):t.registerBinding(t.container,"DOMNodeRemoved",(function(e){t.destroy()}));var w=Jt((function(){t.cy.resize()}),100);y&&(t.styleObserver=new MutationObserver(w),t.styleObserver.observe(t.container,{attributes:!0})),t.registerBinding(window,"resize",w),v&&(t.resizeObserver=new ResizeObserver(w),t.resizeObserver.observe(t.container));var x=function(){t.invalidateContainerClientCoordsCache()};(function(t,e){for(;null!=t;)e(t),t=t.parentNode})(t.container,(function(e){t.registerBinding(e,"transitionend",x),t.registerBinding(e,"animationend",x),t.registerBinding(e,"scroll",x)})),t.registerBinding(t.container,"contextmenu",(function(t){t.preventDefault()}));var R,_,E,C=function(){return 0!==t.selection[4]},S=function(e){for(var n=t.findContainerClientCoords(),i=n[0],a=n[1],r=n[2],o=n[3],s=e.touches?e.touches:[e],c=!1,l=0;l<s.length;l++){var u=s[l];if(i<=u.clientX&&u.clientX<=i+r&&a<=u.clientY&&u.clientY<=a+o){c=!0;break}}if(!c)return!1;for(var d=t.container,h=e.target.parentNode,f=!1;h;){if(h===d){f=!0;break}h=h.parentNode}return!!f};t.registerBinding(t.container,"mousedown",(function(e){if(S(e)){e.preventDefault(),m(),t.hoverData.capture=!0,t.hoverData.which=e.which;var i=t.cy,a=[e.clientX,e.clientY],r=t.projectIntoViewport(a[0],a[1]),o=t.selection,s=t.findNearestElements(r[0],r[1],!0,!1),c=s[0],u=t.dragData.possibleDragElements;t.hoverData.mdownPos=r,t.hoverData.mdownGPos=a;var d=function(){t.hoverData.tapholdCancelled=!1,clearTimeout(t.hoverData.tapholdTimeout),t.hoverData.tapholdTimeout=setTimeout((function(){if(!t.hoverData.tapholdCancelled){var n=t.hoverData.down;n?n.emit({originalEvent:e,type:"taphold",position:{x:r[0],y:r[1]}}):i.emit({originalEvent:e,type:"taphold",position:{x:r[0],y:r[1]}})}}),t.tapholdDuration)};if(3==e.which){t.hoverData.cxtStarted=!0;var h={originalEvent:e,type:"cxttapstart",position:{x:r[0],y:r[1]}};c?(c.activate(),c.emit(h),t.hoverData.down=c):i.emit(h),t.hoverData.downTime=(new Date).getTime(),t.hoverData.cxtDragged=!1}else if(1==e.which){if(c&&c.activate(),null!=c&&t.nodeIsGrabbable(c)){var p=function(t){return{originalEvent:e,type:t,position:{x:r[0],y:r[1]}}},b=function(t){t.emit(p("grab"))};if(l(c),c.selected()){u=t.dragData.possibleDragElements=i.collection();var y=i.$((function(e){return e.isNode()&&e.selected()&&t.nodeIsGrabbable(e)}));f(y,{addToList:u}),c.emit(p("grabon")),y.forEach(b)}else u=t.dragData.possibleDragElements=i.collection(),g(c,{addToList:u}),c.emit(p("grabon")).emit(p("grab"));t.redrawHint("eles",!0),t.redrawHint("drag",!0)}t.hoverData.down=c,t.hoverData.downs=s,t.hoverData.downTime=(new Date).getTime(),n(c,["mousedown","tapstart","vmousedown"],e,{x:r[0],y:r[1]}),null==c?(o[4]=1,t.data.bgActivePosistion={x:r[0],y:r[1]},t.redrawHint("select",!0),t.redraw()):c.pannable()&&(o[4]=1),d()}o[0]=o[2]=r[0],o[1]=o[3]=r[1]}}),!1),t.registerBinding(window,"mousemove",(function(e){if(t.hoverData.capture||S(e)){var r=!1,o=t.cy,s=o.zoom(),c=[e.clientX,e.clientY],l=t.projectIntoViewport(c[0],c[1]),u=t.hoverData.mdownPos,d=t.hoverData.mdownGPos,h=t.selection,g=null;!t.hoverData.draggingEles&&!t.hoverData.dragging&&!t.hoverData.selecting&&(g=t.findNearestElement(l[0],l[1],!0,!1));var b,m=t.hoverData.last,y=t.hoverData.down,v=[l[0]-h[2],l[1]-h[3]],w=t.dragData.possibleDragElements;if(d){var x=c[0]-d[0],R=x*x,_=c[1]-d[1],E=R+_*_;t.hoverData.isOverThresholdDrag=b=E>=t.desktopTapThreshold2}var C=i(e);b&&(t.hoverData.tapholdCancelled=!0);var T=function(){var e=t.hoverData.dragDelta=t.hoverData.dragDelta||[];0===e.length?(e.push(v[0]),e.push(v[1])):(e[0]+=v[0],e[1]+=v[1])};r=!0,n(g,["mousemove","vmousemove","tapdrag"],e,{x:l[0],y:l[1]});var A=function(){t.data.bgActivePosistion=void 0,t.hoverData.selecting||o.emit({originalEvent:e,type:"boxstart",position:{x:l[0],y:l[1]}}),h[4]=1,t.hoverData.selecting=!0,t.redrawHint("select",!0),t.redraw()};if(3===t.hoverData.which){if(b){var D={originalEvent:e,type:"cxtdrag",position:{x:l[0],y:l[1]}};y?y.emit(D):o.emit(D),t.hoverData.cxtDragged=!0,(!t.hoverData.cxtOver||g!==t.hoverData.cxtOver)&&(t.hoverData.cxtOver&&t.hoverData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:l[0],y:l[1]}}),t.hoverData.cxtOver=g,g&&g.emit({originalEvent:e,type:"cxtdragover",position:{x:l[0],y:l[1]}}))}}else if(t.hoverData.dragging){if(r=!0,o.panningEnabled()&&o.userPanningEnabled()){var I;if(t.hoverData.justStartedPan){var L=t.hoverData.mdownPos;I={x:(l[0]-L[0])*s,y:(l[1]-L[1])*s},t.hoverData.justStartedPan=!1}else I={x:v[0]*s,y:v[1]*s};o.panBy(I),o.emit("dragpan"),t.hoverData.dragged=!0}l=t.projectIntoViewport(e.clientX,e.clientY)}else if(1!=h[4]||null!=y&&!y.pannable()){if(y&&y.pannable()&&y.active()&&y.unactivate(),(!y||!y.grabbed())&&g!=m&&(m&&n(m,["mouseout","tapdragout"],e,{x:l[0],y:l[1]}),g&&n(g,["mouseover","tapdragover"],e,{x:l[0],y:l[1]}),t.hoverData.last=g),y)if(b){if(o.boxSelectionEnabled()&&C)y&&y.grabbed()&&(p(w),y.emit("freeon"),w.emit("free"),t.dragData.didDrag&&(y.emit("dragfreeon"),w.emit("dragfree"))),A();else if(y&&y.grabbed()&&t.nodeIsDraggable(y)){var O=!t.dragData.didDrag;O&&t.redrawHint("eles",!0),t.dragData.didDrag=!0,t.hoverData.draggingEles||f(w,{inDragLayer:!0});var M={x:0,y:0};if(k(v[0])&&k(v[1])&&(M.x+=v[0],M.y+=v[1],O)){var N=t.hoverData.dragDelta;N&&k(N[0])&&k(N[1])&&(M.x+=N[0],M.y+=N[1])}t.hoverData.draggingEles=!0,w.silentShift(M).emit("position drag"),t.redrawHint("drag",!0),t.redraw()}}else T();r=!0}else b&&(t.hoverData.dragging||!o.boxSelectionEnabled()||!C&&o.panningEnabled()&&o.userPanningEnabled()?!t.hoverData.selecting&&o.panningEnabled()&&o.userPanningEnabled()&&a(y,t.hoverData.downs)&&(t.hoverData.dragging=!0,t.hoverData.justStartedPan=!0,h[4]=0,t.data.bgActivePosistion=fn(u),t.redrawHint("select",!0),t.redraw()):A(),y&&y.pannable()&&y.active()&&y.unactivate());if(h[2]=l[0],h[3]=l[1],r)return e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),!1}}),!1),t.registerBinding(window,"mouseup",(function(a){if(t.hoverData.capture){t.hoverData.capture=!1;var r=t.cy,o=t.projectIntoViewport(a.clientX,a.clientY),s=t.selection,c=t.findNearestElement(o[0],o[1],!0,!1),l=t.dragData.possibleDragElements,u=t.hoverData.down,d=i(a);if(t.data.bgActivePosistion&&(t.redrawHint("select",!0),t.redraw()),t.hoverData.tapholdCancelled=!0,t.data.bgActivePosistion=void 0,u&&u.unactivate(),3===t.hoverData.which){var h={originalEvent:a,type:"cxttapend",position:{x:o[0],y:o[1]}};if(u?u.emit(h):r.emit(h),!t.hoverData.cxtDragged){var f={originalEvent:a,type:"cxttap",position:{x:o[0],y:o[1]}};u?u.emit(f):r.emit(f)}t.hoverData.cxtDragged=!1,t.hoverData.which=null}else if(1===t.hoverData.which){if(n(c,["mouseup","tapend","vmouseup"],a,{x:o[0],y:o[1]}),!t.dragData.didDrag&&!t.hoverData.dragged&&!t.hoverData.selecting&&!t.hoverData.isOverThresholdDrag&&(n(u,["click","tap","vclick"],a,{x:o[0],y:o[1]}),_=!1,a.timeStamp-E<=r.multiClickDebounceTime()?(R&&clearTimeout(R),_=!0,E=null,n(u,["dblclick","dbltap","vdblclick"],a,{x:o[0],y:o[1]})):(R=setTimeout((function(){_||n(u,["oneclick","onetap","voneclick"],a,{x:o[0],y:o[1]})}),r.multiClickDebounceTime()),E=a.timeStamp)),null==u&&!t.dragData.didDrag&&!t.hoverData.selecting&&!t.hoverData.dragged&&!i(a)&&(r.$(e).unselect(["tapunselect"]),l.length>0&&t.redrawHint("eles",!0),t.dragData.possibleDragElements=l=r.collection()),c==u&&!t.dragData.didDrag&&!t.hoverData.selecting&&null!=c&&c._private.selectable&&(t.hoverData.dragging||("additive"===r.selectionType()||d?c.selected()?c.unselect(["tapunselect"]):c.select(["tapselect"]):d||(r.$(e).unmerge(c).unselect(["tapunselect"]),c.select(["tapselect"]))),t.redrawHint("eles",!0)),t.hoverData.selecting){var g=r.collection(t.getAllInBox(s[0],s[1],s[2],s[3]));t.redrawHint("select",!0),g.length>0&&t.redrawHint("eles",!0),r.emit({type:"boxend",originalEvent:a,position:{x:o[0],y:o[1]}});var b=function(t){return t.selectable()&&!t.selected()};"additive"===r.selectionType()||d||r.$(e).unmerge(g).unselect(),g.emit("box").stdFilter(b).select().emit("boxselect"),t.redraw()}if(t.hoverData.dragging&&(t.hoverData.dragging=!1,t.redrawHint("select",!0),t.redrawHint("eles",!0),t.redraw()),!s[4]){t.redrawHint("drag",!0),t.redrawHint("eles",!0);var m=u&&u.grabbed();p(l),m&&(u.emit("freeon"),l.emit("free"),t.dragData.didDrag&&(u.emit("dragfreeon"),l.emit("dragfree")))}}s[4]=0,t.hoverData.down=null,t.hoverData.cxtStarted=!1,t.hoverData.draggingEles=!1,t.hoverData.selecting=!1,t.hoverData.isOverThresholdDrag=!1,t.dragData.didDrag=!1,t.hoverData.dragged=!1,t.hoverData.dragDelta=[],t.hoverData.mdownPos=null,t.hoverData.mdownGPos=null}}),!1);var T=function(e){if(!t.scrollingPage){var n=t.cy,i=n.zoom(),a=n.pan(),r=t.projectIntoViewport(e.clientX,e.clientY),o=[r[0]*i+a.x,r[1]*i+a.y];if(t.hoverData.draggingEles||t.hoverData.dragging||t.hoverData.cxtStarted||C())return void e.preventDefault();if(n.panningEnabled()&&n.userPanningEnabled()&&n.zoomingEnabled()&&n.userZoomingEnabled()){var s;e.preventDefault(),t.data.wheelZooming=!0,clearTimeout(t.data.wheelTimeout),t.data.wheelTimeout=setTimeout((function(){t.data.wheelZooming=!1,t.redrawHint("eles",!0),t.redraw()}),150),s=null!=e.deltaY?e.deltaY/-250:null!=e.wheelDeltaY?e.wheelDeltaY/1e3:e.wheelDelta/1e3,s*=t.wheelSensitivity,1===e.deltaMode&&(s*=33);var c=n.zoom()*Math.pow(10,s);"gesturechange"===e.type&&(c=t.gestureStartZoom*e.scale),n.zoom({level:c,renderedPosition:{x:o[0],y:o[1]}}),n.emit("gesturechange"===e.type?"pinchzoom":"scrollzoom")}}};t.registerBinding(t.container,"wheel",T,!0),t.registerBinding(window,"scroll",(function(e){t.scrollingPage=!0,clearTimeout(t.scrollingPageTimeout),t.scrollingPageTimeout=setTimeout((function(){t.scrollingPage=!1}),250)}),!0),t.registerBinding(t.container,"gesturestart",(function(e){t.gestureStartZoom=t.cy.zoom(),t.hasTouchStarted||e.preventDefault()}),!0),t.registerBinding(t.container,"gesturechange",(function(e){t.hasTouchStarted||T(e)}),!0),t.registerBinding(t.container,"mouseout",(function(e){var n=t.projectIntoViewport(e.clientX,e.clientY);t.cy.emit({originalEvent:e,type:"mouseout",position:{x:n[0],y:n[1]}})}),!1),t.registerBinding(t.container,"mouseover",(function(e){var n=t.projectIntoViewport(e.clientX,e.clientY);t.cy.emit({originalEvent:e,type:"mouseover",position:{x:n[0],y:n[1]}})}),!1);var A,D,I,L,O,M,N,B,P,F,j,$,z,H,U,V,q,W,Y,G,Z=function(t,e,n,i){return Math.sqrt((n-t)*(n-t)+(i-e)*(i-e))},K=function(t,e,n,i){return(n-t)*(n-t)+(i-e)*(i-e)};if(t.registerBinding(t.container,"touchstart",H=function(e){if(t.hasTouchStarted=!0,S(e)){m(),t.touchData.capture=!0,t.data.bgActivePosistion=void 0;var i=t.cy,a=t.touchData.now,r=t.touchData.earlier;if(e.touches[0]){var o=t.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);a[0]=o[0],a[1]=o[1]}if(e.touches[1]&&(o=t.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY),a[2]=o[0],a[3]=o[1]),e.touches[2]&&(o=t.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY),a[4]=o[0],a[5]=o[1]),e.touches[1]){t.touchData.singleTouchMoved=!0,p(t.dragData.touchDragEles);var s=t.findContainerClientCoords();P=s[0],F=s[1],j=s[2],$=s[3],A=e.touches[0].clientX-P,D=e.touches[0].clientY-F,I=e.touches[1].clientX-P,L=e.touches[1].clientY-F,z=0<=A&&A<=j&&0<=I&&I<=j&&0<=D&&D<=$&&0<=L&&L<=$;var c=i.pan(),u=i.zoom();O=Z(A,D,I,L),M=K(A,D,I,L),B=[((N=[(A+I)/2,(D+L)/2])[0]-c.x)/u,(N[1]-c.y)/u];var d=200;if(M<d*d&&!e.touches[2]){var h=t.findNearestElement(a[0],a[1],!0,!0),b=t.findNearestElement(a[2],a[3],!0,!0);return h&&h.isNode()?(h.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:a[0],y:a[1]}}),t.touchData.start=h):b&&b.isNode()?(b.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:a[0],y:a[1]}}),t.touchData.start=b):i.emit({originalEvent:e,type:"cxttapstart",position:{x:a[0],y:a[1]}}),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!0,t.touchData.cxtDragged=!1,t.data.bgActivePosistion=void 0,void t.redraw()}}if(e.touches[2])i.boxSelectionEnabled()&&e.preventDefault();else if(!e.touches[1]&&e.touches[0]){var y=t.findNearestElements(a[0],a[1],!0,!0),v=y[0];if(null!=v&&(v.activate(),t.touchData.start=v,t.touchData.starts=y,t.nodeIsGrabbable(v))){var w=t.dragData.touchDragEles=i.collection(),x=null;t.redrawHint("eles",!0),t.redrawHint("drag",!0),v.selected()?(x=i.$((function(e){return e.selected()&&t.nodeIsGrabbable(e)})),f(x,{addToList:w})):g(v,{addToList:w}),l(v);var R=function(t){return{originalEvent:e,type:t,position:{x:a[0],y:a[1]}}};v.emit(R("grabon")),x?x.forEach((function(t){t.emit(R("grab"))})):v.emit(R("grab"))}n(v,["touchstart","tapstart","vmousedown"],e,{x:a[0],y:a[1]}),null==v&&(t.data.bgActivePosistion={x:o[0],y:o[1]},t.redrawHint("select",!0),t.redraw()),t.touchData.singleTouchMoved=!1,t.touchData.singleTouchStartTime=+new Date,clearTimeout(t.touchData.tapholdTimeout),t.touchData.tapholdTimeout=setTimeout((function(){!1===t.touchData.singleTouchMoved&&!t.pinching&&!t.touchData.selecting&&n(t.touchData.start,["taphold"],e,{x:a[0],y:a[1]})}),t.tapholdDuration)}if(e.touches.length>=1){for(var _=t.touchData.startPosition=[],k=0;k<a.length;k++)_[k]=r[k]=a[k];var E=e.touches[0];t.touchData.startGPosition=[E.clientX,E.clientY]}}},!1),t.registerBinding(window,"touchmove",U=function(e){var i=t.touchData.capture;if(i||S(e)){var r=t.selection,o=t.cy,s=t.touchData.now,c=t.touchData.earlier,l=o.zoom();if(e.touches[0]){var u=t.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);s[0]=u[0],s[1]=u[1]}e.touches[1]&&(u=t.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY),s[2]=u[0],s[3]=u[1]),e.touches[2]&&(u=t.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY),s[4]=u[0],s[5]=u[1]);var d,h=t.touchData.startGPosition;if(i&&e.touches[0]&&h){for(var g=[],b=0;b<s.length;b++)g[b]=s[b]-c[b];var m=e.touches[0].clientX-h[0],y=m*m,v=e.touches[0].clientY-h[1];d=y+v*v>=t.touchTapThreshold2}if(i&&t.touchData.cxt){e.preventDefault();var w=e.touches[0].clientX-P,x=e.touches[0].clientY-F,R=e.touches[1].clientX-P,_=e.touches[1].clientY-F,E=K(w,x,R,_),C=150,T=1.5;if(E/M>=T*T||E>=C*C){t.touchData.cxt=!1,t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var N={originalEvent:e,type:"cxttapend",position:{x:s[0],y:s[1]}};t.touchData.start?(t.touchData.start.unactivate().emit(N),t.touchData.start=null):o.emit(N)}}if(i&&t.touchData.cxt){N={originalEvent:e,type:"cxtdrag",position:{x:s[0],y:s[1]}},t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.touchData.start?t.touchData.start.emit(N):o.emit(N),t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxtDragged=!0;var j=t.findNearestElement(s[0],s[1],!0,!0);(!t.touchData.cxtOver||j!==t.touchData.cxtOver)&&(t.touchData.cxtOver&&t.touchData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:s[0],y:s[1]}}),t.touchData.cxtOver=j,j&&j.emit({originalEvent:e,type:"cxtdragover",position:{x:s[0],y:s[1]}}))}else if(i&&e.touches[2]&&o.boxSelectionEnabled())e.preventDefault(),t.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,t.touchData.selecting||o.emit({originalEvent:e,type:"boxstart",position:{x:s[0],y:s[1]}}),t.touchData.selecting=!0,t.touchData.didSelect=!0,r[4]=1,r&&0!==r.length&&void 0!==r[0]?(r[2]=(s[0]+s[2]+s[4])/3,r[3]=(s[1]+s[3]+s[5])/3):(r[0]=(s[0]+s[2]+s[4])/3,r[1]=(s[1]+s[3]+s[5])/3,r[2]=(s[0]+s[2]+s[4])/3+1,r[3]=(s[1]+s[3]+s[5])/3+1),t.redrawHint("select",!0),t.redraw();else if(i&&e.touches[1]&&!t.touchData.didSelect&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){if(e.preventDefault(),t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),nt=t.dragData.touchDragEles){t.redrawHint("drag",!0);for(var $=0;$<nt.length;$++){var H=nt[$]._private;H.grabbed=!1,H.rscratch.inDragLayer=!1}}var U=t.touchData.start,V=(w=e.touches[0].clientX-P,x=e.touches[0].clientY-F,R=e.touches[1].clientX-P,_=e.touches[1].clientY-F,Z(w,x,R,_)),q=V/O;if(z){var W=(w-A+(R-I))/2,Y=(x-D+(_-L))/2,G=o.zoom(),X=G*q,J=o.pan(),Q=B[0]*G+J.x,tt=B[1]*G+J.y,et={x:-X/G*(Q-J.x-W)+Q,y:-X/G*(tt-J.y-Y)+tt};if(U&&U.active()){var nt=t.dragData.touchDragEles;p(nt),t.redrawHint("drag",!0),t.redrawHint("eles",!0),U.unactivate().emit("freeon"),nt.emit("free"),t.dragData.didDrag&&(U.emit("dragfreeon"),nt.emit("dragfree"))}o.viewport({zoom:X,pan:et,cancelOnFailedZoom:!0}),o.emit("pinchzoom"),O=V,A=w,D=x,I=R,L=_,t.pinching=!0}e.touches[0]&&(u=t.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY),s[0]=u[0],s[1]=u[1]),e.touches[1]&&(u=t.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY),s[2]=u[0],s[3]=u[1]),e.touches[2]&&(u=t.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY),s[4]=u[0],s[5]=u[1])}else if(e.touches[0]&&!t.touchData.didSelect){var it=t.touchData.start,at=t.touchData.last;if(!t.hoverData.draggingEles&&!t.swipePanning&&(j=t.findNearestElement(s[0],s[1],!0,!0)),i&&null!=it&&e.preventDefault(),i&&null!=it&&t.nodeIsDraggable(it))if(d){nt=t.dragData.touchDragEles;var rt=!t.dragData.didDrag;rt&&f(nt,{inDragLayer:!0}),t.dragData.didDrag=!0;var ot={x:0,y:0};k(g[0])&&k(g[1])&&(ot.x+=g[0],ot.y+=g[1],rt)&&(t.redrawHint("eles",!0),(st=t.touchData.dragDelta)&&k(st[0])&&k(st[1])&&(ot.x+=st[0],ot.y+=st[1])),t.hoverData.draggingEles=!0,nt.silentShift(ot).emit("position drag"),t.redrawHint("drag",!0),t.touchData.startPosition[0]==c[0]&&t.touchData.startPosition[1]==c[1]&&t.redrawHint("eles",!0),t.redraw()}else{var st;0===(st=t.touchData.dragDelta=t.touchData.dragDelta||[]).length?(st.push(g[0]),st.push(g[1])):(st[0]+=g[0],st[1]+=g[1])}if(n(it||j,["touchmove","tapdrag","vmousemove"],e,{x:s[0],y:s[1]}),(!it||!it.grabbed())&&j!=at&&(at&&at.emit({originalEvent:e,type:"tapdragout",position:{x:s[0],y:s[1]}}),j&&j.emit({originalEvent:e,type:"tapdragover",position:{x:s[0],y:s[1]}})),t.touchData.last=j,i)for($=0;$<s.length;$++)s[$]&&t.touchData.startPosition[$]&&d&&(t.touchData.singleTouchMoved=!0);i&&(null==it||it.pannable())&&o.panningEnabled()&&o.userPanningEnabled()&&(a(it,t.touchData.starts)&&(e.preventDefault(),t.data.bgActivePosistion||(t.data.bgActivePosistion=fn(t.touchData.startPosition)),t.swipePanning?(o.panBy({x:g[0]*l,y:g[1]*l}),o.emit("dragpan")):d&&(t.swipePanning=!0,o.panBy({x:m*l,y:v*l}),o.emit("dragpan"),it&&(it.unactivate(),t.redrawHint("select",!0),t.touchData.start=null))),u=t.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY),s[0]=u[0],s[1]=u[1])}for(b=0;b<s.length;b++)c[b]=s[b];i&&e.touches.length>0&&!t.hoverData.draggingEles&&!t.swipePanning&&null!=t.data.bgActivePosistion&&(t.data.bgActivePosistion=void 0,t.redrawHint("select",!0),t.redraw())}},!1),t.registerBinding(window,"touchcancel",V=function(e){var n=t.touchData.start;t.touchData.capture=!1,n&&n.unactivate()}),t.registerBinding(window,"touchend",q=function(i){var a=t.touchData.start;if(t.touchData.capture){0===i.touches.length&&(t.touchData.capture=!1),i.preventDefault();var r=t.selection;t.swipePanning=!1,t.hoverData.draggingEles=!1;var o,s=t.cy,c=s.zoom(),l=t.touchData.now,u=t.touchData.earlier;if(i.touches[0]){var d=t.projectIntoViewport(i.touches[0].clientX,i.touches[0].clientY);l[0]=d[0],l[1]=d[1]}if(i.touches[1]&&(d=t.projectIntoViewport(i.touches[1].clientX,i.touches[1].clientY),l[2]=d[0],l[3]=d[1]),i.touches[2]&&(d=t.projectIntoViewport(i.touches[2].clientX,i.touches[2].clientY),l[4]=d[0],l[5]=d[1]),a&&a.unactivate(),t.touchData.cxt){if(o={originalEvent:i,type:"cxttapend",position:{x:l[0],y:l[1]}},a?a.emit(o):s.emit(o),!t.touchData.cxtDragged){var h={originalEvent:i,type:"cxttap",position:{x:l[0],y:l[1]}};a?a.emit(h):s.emit(h)}return t.touchData.start&&(t.touchData.start._private.grabbed=!1),t.touchData.cxt=!1,t.touchData.start=null,void t.redraw()}if(!i.touches[2]&&s.boxSelectionEnabled()&&t.touchData.selecting){t.touchData.selecting=!1;var f=s.collection(t.getAllInBox(r[0],r[1],r[2],r[3]));r[0]=void 0,r[1]=void 0,r[2]=void 0,r[3]=void 0,r[4]=0,t.redrawHint("select",!0),s.emit({type:"boxend",originalEvent:i,position:{x:l[0],y:l[1]}});var g=function(t){return t.selectable()&&!t.selected()};f.emit("box").stdFilter(g).select().emit("boxselect"),f.nonempty()&&t.redrawHint("eles",!0),t.redraw()}if(null!=a&&a.unactivate(),i.touches[2])t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);else if(!i.touches[1]&&!i.touches[0]&&!i.touches[0]){t.data.bgActivePosistion=void 0,t.redrawHint("select",!0);var b=t.dragData.touchDragEles;if(null!=a){var m=a._private.grabbed;p(b),t.redrawHint("drag",!0),t.redrawHint("eles",!0),m&&(a.emit("freeon"),b.emit("free"),t.dragData.didDrag&&(a.emit("dragfreeon"),b.emit("dragfree"))),n(a,["touchend","tapend","vmouseup","tapdragout"],i,{x:l[0],y:l[1]}),a.unactivate(),t.touchData.start=null}else{var y=t.findNearestElement(l[0],l[1],!0,!0);n(y,["touchend","tapend","vmouseup","tapdragout"],i,{x:l[0],y:l[1]})}var v=t.touchData.startPosition[0]-l[0],w=v*v,x=t.touchData.startPosition[1]-l[1],R=(w+x*x)*c*c;t.touchData.singleTouchMoved||(a||s.$(":selected").unselect(["tapunselect"]),n(a,["tap","vclick"],i,{x:l[0],y:l[1]}),W=!1,i.timeStamp-G<=s.multiClickDebounceTime()?(Y&&clearTimeout(Y),W=!0,G=null,n(a,["dbltap","vdblclick"],i,{x:l[0],y:l[1]})):(Y=setTimeout((function(){W||n(a,["onetap","voneclick"],i,{x:l[0],y:l[1]})}),s.multiClickDebounceTime()),G=i.timeStamp)),null!=a&&!t.dragData.didDrag&&a._private.selectable&&R<t.touchTapThreshold2&&!t.pinching&&("single"===s.selectionType()?(s.$(e).unmerge(a).unselect(["tapunselect"]),a.select(["tapselect"])):a.selected()?a.unselect(["tapunselect"]):a.select(["tapselect"]),t.redrawHint("eles",!0)),t.touchData.singleTouchMoved=!0}for(var _=0;_<l.length;_++)u[_]=l[_];t.dragData.didDrag=!1,0===i.touches.length&&(t.touchData.dragDelta=[],t.touchData.startPosition=null,t.touchData.startGPosition=null,t.touchData.didSelect=!1),i.touches.length<2&&(1===i.touches.length&&(t.touchData.startGPosition=[i.touches[0].clientX,i.touches[0].clientY]),t.pinching=!1,t.redrawHint("eles",!0),t.redraw())}},!1),typeof TouchEvent>"u"){var X=[],J=function(t){return{clientX:t.clientX,clientY:t.clientY,force:1,identifier:t.pointerId,pageX:t.pageX,pageY:t.pageY,radiusX:t.width/2,radiusY:t.height/2,screenX:t.screenX,screenY:t.screenY,target:t.target}},Q=function(t){return{event:t,touch:J(t)}},tt=function(t){X.push(Q(t))},et=function(t){for(var e=0;e<X.length;e++)if(X[e].event.pointerId===t.pointerId)return void X.splice(e,1)},nt=function(t){var e=X.filter((function(e){return e.event.pointerId===t.pointerId}))[0];e.event=t,e.touch=J(t)},it=function(t){t.touches=X.map((function(t){return t.touch}))},at=function(t){return"mouse"===t.pointerType||4===t.pointerType};t.registerBinding(t.container,"pointerdown",(function(t){at(t)||(t.preventDefault(),tt(t),it(t),H(t))})),t.registerBinding(t.container,"pointerup",(function(t){at(t)||(et(t),it(t),q(t))})),t.registerBinding(t.container,"pointercancel",(function(t){at(t)||(et(t),it(t),V(t))})),t.registerBinding(t.container,"pointermove",(function(t){at(t)||(t.preventDefault(),nt(t),it(t),U(t))}))}}},yd={generatePolygon:function(t,e){return this.nodeShapes[t]={renderer:this,name:t,points:e,draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl("polygon",t,e,n,i,a,this.points)},intersectLine:function(t,e,n,i,a,r,o){return ai(a,r,this.points,t,e,n/2,i/2,o)},checkPoint:function(t,e,n,i,a,r,o){return Zn(t,e,this.points,r,o,i,a,[0,-1],n)}}},generateEllipse:function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl(this.name,t,e,n,i,a)},intersectLine:function(t,e,n,i,a,r,o){return Qn(a,r,t,e,n/2+o,i/2+o)},checkPoint:function(t,e,n,i,a,r,o){return ti(t,e,i,a,r,o,n)}}},generateRoundPolygon:function(t,e){for(var n=new Array(2*e.length),i=0;i<e.length/2;i++){var a=2*i,r=void 0;r=i<e.length/2-1?2*(i+1):0,n[4*i]=e[a],n[4*i+1]=e[a+1];var o=e[r]-e[a],s=e[r+1]-e[a+1],c=Math.sqrt(o*o+s*s);n[4*i+2]=o/c,n[4*i+3]=s/c}return this.nodeShapes[t]={renderer:this,name:t,points:n,draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl("round-polygon",t,e,n,i,a,this.points)},intersectLine:function(t,e,n,i,a,r,o){return ri(a,r,this.points,t,e,n,i)},checkPoint:function(t,e,n,i,a,r,o){return Kn(t,e,this.points,r,o,i,a)}}},generateRoundRectangle:function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:si(4,0),draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl(this.name,t,e,n,i,a)},intersectLine:function(t,e,n,i,a,r,o){return zn(a,r,t,e,n,i,o)},checkPoint:function(t,e,n,i,a,r,o){var s=ui(i,a),c=2*s;return!!(Zn(t,e,this.points,r,o,i,a-c,[0,-1],n)||Zn(t,e,this.points,r,o,i-c,a,[0,-1],n)||ti(t,e,c,c,r-i/2+s,o-a/2+s,n)||ti(t,e,c,c,r+i/2-s,o-a/2+s,n)||ti(t,e,c,c,r+i/2-s,o+a/2-s,n)||ti(t,e,c,c,r-i/2+s,o+a/2-s,n))}}},generateCutRectangle:function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:hi(),points:si(4,0),draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl(this.name,t,e,n,i,a)},generateCutTrianglePts:function(t,e,n,i){var a=this.cornerLength,r=e/2,o=t/2,s=n-o,c=n+o,l=i-r,u=i+r;return{topLeft:[s,l+a,s+a,l,s+a,l+a],topRight:[c-a,l,c,l+a,c-a,l+a],bottomRight:[c,u-a,c-a,u,c-a,u-a],bottomLeft:[s+a,u,s,u-a,s+a,u-a]}},intersectLine:function(t,e,n,i,a,r,o){var s=this.generateCutTrianglePts(n+2*o,i+2*o,t,e),c=[].concat.apply([],[s.topLeft.splice(0,4),s.topRight.splice(0,4),s.bottomRight.splice(0,4),s.bottomLeft.splice(0,4)]);return ai(a,r,c,t,e)},checkPoint:function(t,e,n,i,a,r,o){if(Zn(t,e,this.points,r,o,i,a-2*this.cornerLength,[0,-1],n)||Zn(t,e,this.points,r,o,i-2*this.cornerLength,a,[0,-1],n))return!0;var s=this.generateCutTrianglePts(i,a,r,o);return Gn(t,e,s.topLeft)||Gn(t,e,s.topRight)||Gn(t,e,s.bottomRight)||Gn(t,e,s.bottomLeft)}}},generateBarrel:function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:si(4,0),draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl(this.name,t,e,n,i,a)},intersectLine:function(t,e,n,i,a,r,o){var s=.15,c=.5,l=.85,u=this.generateBarrelBezierPts(n+2*o,i+2*o,t,e),d=function(t){var e=Cn({x:t[0],y:t[1]},{x:t[2],y:t[3]},{x:t[4],y:t[5]},s),n=Cn({x:t[0],y:t[1]},{x:t[2],y:t[3]},{x:t[4],y:t[5]},c),i=Cn({x:t[0],y:t[1]},{x:t[2],y:t[3]},{x:t[4],y:t[5]},l);return[t[0],t[1],e.x,e.y,n.x,n.y,i.x,i.y,t[4],t[5]]},h=[].concat(d(u.topLeft),d(u.topRight),d(u.bottomRight),d(u.bottomLeft));return ai(a,r,h,t,e)},generateBarrelBezierPts:function(t,e,n,i){var a=e/2,r=t/2,o=n-r,s=n+r,c=i-a,l=i+a,u=gi(t,e),d=u.heightOffset,h=u.widthOffset,f=u.ctrlPtOffsetPct*t,g={topLeft:[o,c+d,o+f,c,o+h,c],topRight:[s-h,c,s-f,c,s,c+d],bottomRight:[s,l-d,s-f,l,s-h,l],bottomLeft:[o+h,l,o+f,l,o,l-d]};return g.topLeft.isTop=!0,g.topRight.isTop=!0,g.bottomLeft.isBottom=!0,g.bottomRight.isBottom=!0,g},checkPoint:function(t,e,n,i,a,r,o){var s=gi(i,a),c=s.heightOffset,l=s.widthOffset;if(Zn(t,e,this.points,r,o,i,a-2*c,[0,-1],n)||Zn(t,e,this.points,r,o,i-2*l,a,[0,-1],n))return!0;for(var u=this.generateBarrelBezierPts(i,a,r,o),d=function(t,e,n){var i=n[4],a=n[2],r=n[0],o=n[5],s=n[1],c=Math.min(i,r),l=Math.max(i,r),u=Math.min(o,s),d=Math.max(o,s);if(c<=t&&t<=l&&u<=e&&e<=d){var h=fi(i,a,r),f=Vn(h[0],h[1],h[2],t).filter((function(t){return 0<=t&&t<=1}));if(f.length>0)return f[0]}return null},h=Object.keys(u),f=0;f<h.length;f++){var g=u[h[f]],p=d(t,e,g);if(null!=p){var b=g[5],m=g[3],y=g[1],v=En(b,m,y,p);if(g.isTop&&v<=e||g.isBottom&&e<=v)return!0}}return!1}}},generateBottomRoundrectangle:function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:si(4,0),draw:function(t,e,n,i,a){this.renderer.nodeShapeImpl(this.name,t,e,n,i,a)},intersectLine:function(t,e,n,i,a,r,o){var s=e-(i/2+o),c=ii(a,r,t,e,t-(n/2+o),s,t+(n/2+o),s,!1);return c.length>0?c:zn(a,r,t,e,n,i,o)},checkPoint:function(t,e,n,i,a,r,o){var s=ui(i,a),c=2*s;if(Zn(t,e,this.points,r,o,i,a-c,[0,-1],n)||Zn(t,e,this.points,r,o,i-c,a,[0,-1],n))return!0;var l=i/2+2*n,u=a/2+2*n;return!!(Gn(t,e,[r-l,o-u,r-l,o,r+l,o,r+l,o-u])||ti(t,e,c,c,r+i/2-s,o+a/2-s,n)||ti(t,e,c,c,r-i/2+s,o+a/2-s,n))}}},registerNodeShapes:function(){var t=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",si(3,0)),this.generateRoundPolygon("round-triangle",si(3,0)),this.generatePolygon("rectangle",si(4,0)),t.square=t.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",si(5,0)),this.generateRoundPolygon("round-pentagon",si(5,0)),this.generatePolygon("hexagon",si(6,0)),this.generateRoundPolygon("round-hexagon",si(6,0)),this.generatePolygon("heptagon",si(7,0)),this.generateRoundPolygon("round-heptagon",si(7,0)),this.generatePolygon("octagon",si(8,0)),this.generateRoundPolygon("round-octagon",si(8,0));var i=new Array(20),a=li(5,0),r=li(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s<r.length/2;s++)r[2*s]*=o,r[2*s+1]*=o;for(s=0;s<5;s++)i[4*s]=a[2*s],i[4*s+1]=a[2*s+1],i[4*s+2]=r[2*s],i[4*s+3]=r[2*s+1];i=ci(i),this.generatePolygon("star",i),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);var c=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",c),this.generateRoundPolygon("round-tag",c),t.makePolygon=function(t){var n,i="polygon-"+t.join("$");return(n=this[i])?n:e.generatePolygon(i,t)}}},vd={timeToRender:function(){return this.redrawTotalTime/this.redrawCount},redraw:function(t){t=t||Oe();var e=this;void 0===e.averageRedrawTime&&(e.averageRedrawTime=0),void 0===e.lastRedrawTime&&(e.lastRedrawTime=0),void 0===e.lastDrawTime&&(e.lastDrawTime=0),e.requestedFrame=!0,e.renderOptions=t},beforeRender:function(t,e){if(!this.destroyed){null==e&&Ee("Priority is not optional for beforeRender");var n=this.beforeRenderCallbacks;n.push({fn:t,priority:e}),n.sort((function(t,e){return e.priority-t.priority}))}}},wd=function(t,e,n){for(var i=t.beforeRenderCallbacks,a=0;a<i.length;a++)i[a].fn(e,n)};vd.startRenderLoop=function(){var t=this,e=t.cy;if(!t.renderLoopStarted){t.renderLoopStarted=!0;var n=function n(i){if(!t.destroyed){if(!e.batching())if(t.requestedFrame&&!t.skipFrame){wd(t,!0,i);var a=ie();t.render(t.renderOptions);var r=t.lastDrawTime=ie();void 0===t.averageRedrawTime&&(t.averageRedrawTime=r-a),void 0===t.redrawCount&&(t.redrawCount=0),t.redrawCount++,void 0===t.redrawTotalTime&&(t.redrawTotalTime=0);var o=r-a;t.redrawTotalTime+=o,t.lastRedrawTime=o,t.averageRedrawTime=t.averageRedrawTime/2+o/2,t.requestedFrame=!1}else wd(t,!1,i);t.skipFrame=!1,ne(n)}};ne(n)}};var xd=function(t){this.init(t)},Rd=xd.prototype;Rd.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],Rd.init=function(t){var e=this;e.options=t,e.cy=t.cy;var n=e.container=t.cy.container();if(h){var i=h.document,a=i.head,r="__________cytoscape_stylesheet",o="__________cytoscape_container",s=null!=i.getElementById(r);if(n.className.indexOf(o)<0&&(n.className=(n.className||"")+" "+o),!s){var c=i.createElement("style");c.id=r,c.innerHTML="."+o+" { position: relative; }",a.insertBefore(c,a.children[0])}"static"===h.getComputedStyle(n).getPropertyValue("position")&&Se("A Cytoscape container has style position:static and so can not use UI extensions properly")}e.selection=[void 0,void 0,void 0,void 0,0],e.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],e.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},e.dragData={possibleDragElements:[]},e.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},e.redraws=0,e.showFps=t.showFps,e.debug=t.debug,e.hideEdgesOnViewport=t.hideEdgesOnViewport,e.textureOnViewport=t.textureOnViewport,e.wheelSensitivity=t.wheelSensitivity,e.motionBlurEnabled=t.motionBlur,e.forcedPixelRatio=k(t.pixelRatio)?t.pixelRatio:null,e.motionBlur=t.motionBlur,e.motionBlurOpacity=t.motionBlurOpacity,e.motionBlurTransparency=1-e.motionBlurOpacity,e.motionBlurPxRatio=1,e.mbPxRBlurry=1,e.minMbLowQualFrames=4,e.fullQualityMb=!1,e.clearedForMotionBlur=[],e.desktopTapThreshold=t.desktopTapThreshold,e.desktopTapThreshold2=t.desktopTapThreshold*t.desktopTapThreshold,e.touchTapThreshold=t.touchTapThreshold,e.touchTapThreshold2=t.touchTapThreshold*t.touchTapThreshold,e.tapholdDuration=500,e.bindings=[],e.beforeRenderCallbacks=[],e.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},e.registerNodeShapes(),e.registerArrowShapes(),e.registerCalculationListeners()},Rd.notify=function(t,e){var n=this,i=n.cy;if(!this.destroyed){if("init"===t)return void n.load();if("destroy"===t)return void n.destroy();("add"===t||"remove"===t||"move"===t&&i.hasCompoundNodes()||"load"===t||"zorder"===t||"mount"===t)&&n.invalidateCachedZSortedEles(),"viewport"===t&&n.redrawHint("select",!0),("load"===t||"resize"===t||"mount"===t)&&(n.invalidateContainerClientCoordsCache(),n.matchCanvasSize(n.container)),n.redrawHint("eles",!0),n.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()}},Rd.destroy=function(){var t=this;t.destroyed=!0,t.cy.stopAnimationLoop();for(var e=0;e<t.bindings.length;e++){var n=t.bindings[e],i=n.target;(i.off||i.removeEventListener).apply(i,n.args)}if(t.bindings=[],t.beforeRenderCallbacks=[],t.onUpdateEleCalcsFns=[],t.removeObserver&&t.removeObserver.disconnect(),t.styleObserver&&t.styleObserver.disconnect(),t.resizeObserver&&t.resizeObserver.disconnect(),t.labelCalcDiv)try{document.body.removeChild(t.labelCalcDiv)}catch{}},Rd.isHeadless=function(){return!1},[Ju,pd,bd,md,yd,vd].forEach((function(t){J(Rd,t)}));var _d=1e3/60,kd={setupDequeueing:function(t){return function(){var e=this,n=this.renderer;if(!e.dequeueingSetup){e.dequeueingSetup=!0;var i=Jt((function(){n.redrawHint("eles",!0),n.redrawHint("drag",!0),n.redraw()}),t.deqRedrawThreshold),a=function(a,r){var o=ie(),s=n.averageRedrawTime,c=n.lastRedrawTime,l=[],u=n.cy.extent(),d=n.getPixelRatio();for(a||n.flushRenderedStyleQueue();;){var h=ie(),f=h-o,g=h-r;if(c<_d){var p=_d-(a?s:0);if(g>=t.deqFastCost*p)break}else if(a){if(f>=t.deqCost*c||f>=t.deqAvgCost*s)break}else if(g>=t.deqNoDrawCost*_d)break;var b=t.deq(e,d,u);if(!(b.length>0))break;for(var m=0;m<b.length;m++)l.push(b[m])}l.length>0&&(t.onDeqd(e,l),!a&&t.shouldRedraw(e,l,d,u)&&i())},r=t.priority||ke;n.beforeRender(a,r(e))}}}},Ed=function(){function t(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Re;e(this,t),this.idsByKey=new ze,this.keyForId=new ze,this.cachesByLvl=new ze,this.lvls=[],this.getKey=n,this.doesEleInvalidateKey=i}return i(t,[{key:"getIdsFor",value:function(t){null==t&&Ee("Can not get id list for null key");var e=this.idsByKey,n=this.idsByKey.get(t);return n||(n=new Ve,e.set(t,n)),n}},{key:"addIdForKey",value:function(t,e){null!=t&&this.getIdsFor(t).add(e)}},{key:"deleteIdForKey",value:function(t,e){null!=t&&this.getIdsFor(t).delete(e)}},{key:"getNumberOfIdsForKey",value:function(t){return null==t?0:this.getIdsFor(t).size}},{key:"updateKeyMappingFor",value:function(t){var e=t.id(),n=this.keyForId.get(e),i=this.getKey(t);this.deleteIdForKey(n,e),this.addIdForKey(i,e),this.keyForId.set(e,i)}},{key:"deleteKeyMappingFor",value:function(t){var e=t.id(),n=this.keyForId.get(e);this.deleteIdForKey(n,e),this.keyForId.delete(e)}},{key:"keyHasChangedFor",value:function(t){var e=t.id();return this.keyForId.get(e)!==this.getKey(t)}},{key:"isInvalid",value:function(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)}},{key:"getCachesAt",value:function(t){var e=this.cachesByLvl,n=this.lvls,i=e.get(t);return i||(i=new ze,e.set(t,i),n.push(t)),i}},{key:"getCache",value:function(t,e){return this.getCachesAt(e).get(t)}},{key:"get",value:function(t,e){var n=this.getKey(t),i=this.getCache(n,e);return null!=i&&this.updateKeyMappingFor(t),i}},{key:"getForCachedKey",value:function(t,e){var n=this.keyForId.get(t.id());return this.getCache(n,e)}},{key:"hasCache",value:function(t,e){return this.getCachesAt(e).has(t)}},{key:"has",value:function(t,e){var n=this.getKey(t);return this.hasCache(n,e)}},{key:"setCache",value:function(t,e,n){n.key=t,this.getCachesAt(e).set(t,n)}},{key:"set",value:function(t,e,n){var i=this.getKey(t);this.setCache(i,e,n),this.updateKeyMappingFor(t)}},{key:"deleteCache",value:function(t,e){this.getCachesAt(e).delete(t)}},{key:"delete",value:function(t,e){var n=this.getKey(t);this.deleteCache(n,e)}},{key:"invalidateKey",value:function(t){var e=this;this.lvls.forEach((function(n){return e.deleteCache(t,n)}))}},{key:"invalidate",value:function(t){var e=t.id(),n=this.keyForId.get(e);this.deleteKeyMappingFor(t);var i=this.doesEleInvalidateKey(t);return i&&this.invalidateKey(n),i||0===this.getNumberOfIdsForKey(n)}}]),t}(),Cd=25,Sd=50,Td=-4,Ad=3,Dd=7.99,Id=8,Ld=1024,Od=1024,Md=1024,Nd=.2,Bd=.8,Pd=10,Fd=.15,jd=.1,$d=.9,zd=.9,Hd=100,Ud=1,Vd={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},qd=Me({getKey:null,doesEleInvalidateKey:Re,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:xe,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Wd=function(t,e){var n=this;n.renderer=t,n.onDequeues=[];var i=qd(e);J(n,i),n.lookup=new Ed(i.getKey,i.doesEleInvalidateKey),n.setupDequeueing()},Yd=Wd.prototype;Yd.reasons=Vd,Yd.getTextureQueue=function(t){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[t]=e.eleImgCaches[t]||[]},Yd.getRetiredTextureQueue=function(t){var e=this,n=e.eleImgCaches.retired=e.eleImgCaches.retired||{};return n[t]=n[t]||[]},Yd.getElementQueue=function(){var t=this;return t.eleCacheQueue=t.eleCacheQueue||new Ze((function(t,e){return e.reqs-t.reqs}))},Yd.getElementKeyToQueue=function(){var t=this;return t.eleKeyToCacheQueue=t.eleKeyToCacheQueue||{}},Yd.getElement=function(t,e,n,i,a){var r=this,o=this.renderer,s=o.cy.zoom(),c=this.lookup;if(!e||0===e.w||0===e.h||isNaN(e.w)||isNaN(e.h)||!t.visible()||t.removed()||!r.allowEdgeTxrCaching&&t.isEdge()||!r.allowParentTxrCaching&&t.isParent())return null;if(null==i&&(i=Math.ceil(wn(s*n))),i<Td)i=Td;else if(s>=Dd||i>Ad)return null;var l=Math.pow(2,i),u=e.h*l,d=e.w*l,h=o.eleTextBiggerThanMin(t,l);if(!this.isVisible(t,h))return null;var f,g=c.get(t,i);if(g&&g.invalidated&&(g.invalidated=!1,g.texture.invalidatedWidth-=g.width),g)return g;if(f=u<=Cd?Cd:u<=Sd?Sd:Math.ceil(u/Sd)*Sd,u>Md||d>Od)return null;var p=r.getTextureQueue(f),b=p[p.length-2],m=function(){return r.recycleTexture(f,d)||r.addTexture(f,d)};b||(b=p[p.length-1]),b||(b=m()),b.width-b.usedWidth<d&&(b=m());for(var y,v=function(t){return t&&t.scaledLabelShown===h},w=a&&a===Vd.dequeue,x=a&&a===Vd.highQuality,R=a&&a===Vd.downscale,_=i+1;_<=Ad;_++){var k=c.get(t,_);if(k){y=k;break}}var E=y&&y.level===i+1?y:null,C=function(){b.context.drawImage(E.texture.canvas,E.x,0,E.width,E.height,b.usedWidth,0,d,u)};if(b.context.setTransform(1,0,0,1,0,0),b.context.clearRect(b.usedWidth,0,d,f),v(E))C();else if(v(y)){if(!x)return r.queueElement(t,y.level-1),y;for(var S=y.level;S>i;S--)E=r.getElement(t,e,n,S,Vd.downscale);C()}else{var T;if(!w&&!x&&!R)for(var A=i-1;A>=Td;A--){var D=c.get(t,A);if(D){T=D;break}}if(v(T))return r.queueElement(t,i),T;b.context.translate(b.usedWidth,0),b.context.scale(l,l),this.drawElement(b.context,t,e,h,!1),b.context.scale(1/l,1/l),b.context.translate(-b.usedWidth,0)}return g={x:b.usedWidth,texture:b,level:i,scale:l,width:d,height:u,scaledLabelShown:h},b.usedWidth+=Math.ceil(d+Id),b.eleCaches.push(g),c.set(t,i,g),r.checkTextureFullness(b),g},Yd.invalidateElements=function(t){for(var e=0;e<t.length;e++)this.invalidateElement(t[e])},Yd.invalidateElement=function(t){var e=this,n=e.lookup,i=[];if(n.isInvalid(t)){for(var a=Td;a<=Ad;a++){var r=n.getForCachedKey(t,a);r&&i.push(r)}if(n.invalidate(t))for(var o=0;o<i.length;o++){var s=i[o],c=s.texture;c.invalidatedWidth+=s.width,s.invalidated=!0,e.checkTextureUtility(c)}e.removeFromQueue(t)}},Yd.checkTextureUtility=function(t){t.invalidatedWidth>=Nd*t.width&&this.retireTexture(t)},Yd.checkTextureFullness=function(t){var e=this.getTextureQueue(t.height);t.usedWidth/t.width>Bd&&t.fullnessChecks>=Pd?Ne(e,t):t.fullnessChecks++},Yd.retireTexture=function(t){var e=this,n=t.height,i=e.getTextureQueue(n),a=this.lookup;Ne(i,t),t.retired=!0;for(var r=t.eleCaches,o=0;o<r.length;o++){var s=r[o];a.deleteCache(s.key,s.level)}Be(r),e.getRetiredTextureQueue(n).push(t)},Yd.addTexture=function(t,e){var n=this,i={};return n.getTextureQueue(t).push(i),i.eleCaches=[],i.height=t,i.width=Math.max(Ld,e),i.usedWidth=0,i.invalidatedWidth=0,i.fullnessChecks=0,i.canvas=n.renderer.makeOffscreenCanvas(i.width,i.height),i.context=i.canvas.getContext("2d"),i},Yd.recycleTexture=function(t,e){for(var n=this,i=n.getTextureQueue(t),a=n.getRetiredTextureQueue(t),r=0;r<a.length;r++){var o=a[r];if(o.width>=e)return o.retired=!1,o.usedWidth=0,o.invalidatedWidth=0,o.fullnessChecks=0,Be(o.eleCaches),o.context.setTransform(1,0,0,1,0,0),o.context.clearRect(0,0,o.width,o.height),Ne(a,o),i.push(o),o}},Yd.queueElement=function(t,e){var n=this,i=n.getElementQueue(),a=n.getElementKeyToQueue(),r=this.getKey(t),o=a[r];if(o)o.level=Math.max(o.level,e),o.eles.merge(t),o.reqs++,i.updateItem(o);else{var s={eles:t.spawn().merge(t),level:e,reqs:1,key:r};i.push(s),a[r]=s}},Yd.dequeue=function(t){for(var e=this,n=e.getElementQueue(),i=e.getElementKeyToQueue(),a=[],r=e.lookup,o=0;o<Ud&&n.size()>0;o++){var s=n.pop(),c=s.key,l=s.eles[0],u=r.hasCache(l,s.level);if(i[c]=null,!u){a.push(s);var d=e.getBoundingBox(l);e.getElement(l,d,t,s.level,Vd.dequeue)}}return a},Yd.removeFromQueue=function(t){var e=this,n=e.getElementQueue(),i=e.getElementKeyToQueue(),a=this.getKey(t),r=i[a];null!=r&&(1===r.eles.length?(r.reqs=we,n.updateItem(r),n.pop(),i[a]=null):r.eles.unmerge(t))},Yd.onDequeue=function(t){this.onDequeues.push(t)},Yd.offDequeue=function(t){Ne(this.onDequeues,t)},Yd.setupDequeueing=kd.setupDequeueing({deqRedrawThreshold:Hd,deqCost:Fd,deqAvgCost:jd,deqNoDrawCost:$d,deqFastCost:zd,deq:function(t,e,n){return t.dequeue(e,n)},onDeqd:function(t,e){for(var n=0;n<t.onDequeues.length;n++)(0,t.onDequeues[n])(e)},shouldRedraw:function(t,e,n,i){for(var a=0;a<e.length;a++)for(var r=e[a].eles,o=0;o<r.length;o++){var s=r[o].boundingBox();if(Pn(s,i))return!0}return!1},priority:function(t){return t.renderer.beforeRenderPriorities.eleTxrDeq}});var Gd=1,Zd=-4,Kd=2,Xd=3.99,Jd=50,Qd=50,th=.15,eh=.1,nh=.9,ih=.9,ah=1,rh=250,oh=16e6,sh=!0,ch=function(t){var e=this,n=e.renderer=t,i=n.cy;e.layersByLevel={},e.firstGet=!0,e.lastInvalidationTime=ie()-2*rh,e.skipping=!1,e.eleTxrDeqs=i.collection(),e.scheduleElementRefinement=Jt((function(){e.refineElementTextures(e.eleTxrDeqs),e.eleTxrDeqs.unmerge(e.eleTxrDeqs)}),Qd),n.beforeRender((function(t,n){n-e.lastInvalidationTime<=rh?e.skipping=!0:e.skipping=!1}),n.beforeRenderPriorities.lyrTxrSkip);var a=function(t,e){return e.reqs-t.reqs};e.layersQueue=new Ze(a),e.setupDequeueing()},lh=ch.prototype,uh=0,dh=Math.pow(2,53)-1;lh.makeLayer=function(t,e){var n=Math.pow(2,e),i=Math.ceil(t.w*n),a=Math.ceil(t.h*n),r=this.renderer.makeOffscreenCanvas(i,a),o={id:uh=++uh%dh,bb:t,level:e,width:i,height:a,canvas:r,context:r.getContext("2d"),eles:[],elesQueue:[],reqs:0},s=o.context,c=-o.bb.x1,l=-o.bb.y1;return s.scale(n,n),s.translate(c,l),o},lh.getLayers=function(t,e,n){var i=this,a=i.renderer.cy.zoom(),r=i.firstGet;if(i.firstGet=!1,null==n)if((n=Math.ceil(wn(a*e)))<Zd)n=Zd;else if(a>=Xd||n>Kd)return null;i.validateLayersElesOrdering(n,t);var o,s,c=i.layersByLevel,l=Math.pow(2,n),u=c[n]=c[n]||[];if(i.levelIsComplete(n,t))return u;!function(){var e=function(e){if(i.validateLayersElesOrdering(e,t),i.levelIsComplete(e,t))return s=c[e],!0},a=function(t){if(!s)for(var i=n+t;Zd<=i&&i<=Kd&&!e(i);i+=t);};a(1),a(-1);for(var r=u.length-1;r>=0;r--){var o=u[r];o.invalid&&Ne(u,o)}}();var d=function(){if(!o){o=An();for(var e=0;e<t.length;e++)Ln(o,t[e].boundingBox())}return o},h=function(t){var e=(t=t||{}).after;if(d(),o.w*l*(o.h*l)>oh)return null;var a=i.makeLayer(o,n);if(null!=e){var r=u.indexOf(e)+1;u.splice(r,0,a)}else(void 0===t.insert||t.insert)&&u.unshift(a);return a};if(i.skipping&&!r)return null;for(var f=null,g=t.length/Gd,p=!r,b=0;b<t.length;b++){var m=t[b],y=m._private.rscratch,v=y.imgLayerCaches=y.imgLayerCaches||{},w=v[n];if(w)f=w;else{if((!f||f.eles.length>=g||!$n(f.bb,m.boundingBox()))&&!(f=h({insert:!0,after:f})))return null;s||p?i.queueLayer(f,m):i.drawEleInLayer(f,m,n,e),f.eles.push(m),v[n]=f}}return s||(p?null:u)},lh.getEleLevelForLayerLevel=function(t,e){return t},lh.drawEleInLayer=function(t,e,n,i){var a=this,r=this.renderer,o=t.context,s=e.boundingBox();0===s.w||0===s.h||!e.visible()||(n=a.getEleLevelForLayerLevel(n,i),r.setImgSmoothing(o,!1),r.drawCachedElement(o,e,null,null,n,sh),r.setImgSmoothing(o,!0))},lh.levelIsComplete=function(t,e){var n=this.layersByLevel[t];if(!n||0===n.length)return!1;for(var i=0,a=0;a<n.length;a++){var r=n[a];if(r.reqs>0||r.invalid)return!1;i+=r.eles.length}return i===e.length},lh.validateLayersElesOrdering=function(t,e){var n=this.layersByLevel[t];if(n)for(var i=0;i<n.length;i++){for(var a=n[i],r=-1,o=0;o<e.length;o++)if(a.eles[0]===e[o]){r=o;break}if(r<0)this.invalidateLayer(a);else{var s=r;for(o=0;o<a.eles.length;o++)if(a.eles[o]!==e[s+o]){this.invalidateLayer(a);break}}}},lh.updateElementsInLayers=function(t,e){for(var n=this,i=T(t[0]),a=0;a<t.length;a++)for(var r=i?null:t[a],o=i?t[a]:t[a].ele,s=o._private.rscratch,c=s.imgLayerCaches=s.imgLayerCaches||{},l=Zd;l<=Kd;l++){var u=c[l];u&&(r&&n.getEleLevelForLayerLevel(u.level)!==r.level||e(u,o,r))}},lh.haveLayers=function(){for(var t=this,e=!1,n=Zd;n<=Kd;n++){var i=t.layersByLevel[n];if(i&&i.length>0){e=!0;break}}return e},lh.invalidateElements=function(t){var e=this;0!==t.length&&(e.lastInvalidationTime=ie(),0!==t.length&&e.haveLayers()&&e.updateElementsInLayers(t,(function(t,n,i){e.invalidateLayer(t)})))},lh.invalidateLayer=function(t){if(this.lastInvalidationTime=ie(),!t.invalid){var e=t.level,n=t.eles,i=this.layersByLevel[e];Ne(i,t),t.elesQueue=[],t.invalid=!0,t.replacement&&(t.replacement.invalid=!0);for(var a=0;a<n.length;a++){var r=n[a]._private.rscratch.imgLayerCaches;r&&(r[e]=null)}}},lh.refineElementTextures=function(t){var e=this;e.updateElementsInLayers(t,(function(t,n,i){var a=t.replacement;if(a||((a=t.replacement=e.makeLayer(t.bb,t.level)).replaces=t,a.eles=t.eles),!a.reqs)for(var r=0;r<a.eles.length;r++)e.queueLayer(a,a.eles[r])}))},lh.enqueueElementRefinement=function(t){this.eleTxrDeqs.merge(t),this.scheduleElementRefinement()},lh.queueLayer=function(t,e){var n=this.layersQueue,i=t.elesQueue,a=i.hasId=i.hasId||{};if(!t.replacement){if(e){if(a[e.id()])return;i.push(e),a[e.id()]=!0}t.reqs?(t.reqs++,n.updateItem(t)):(t.reqs=1,n.push(t))}},lh.dequeue=function(t){for(var e=this,n=e.layersQueue,i=[],a=0;a<ah&&0!==n.size();){var r=n.peek();if(r.replacement)n.pop();else if(r.replaces&&r!==r.replaces.replacement)n.pop();else if(r.invalid)n.pop();else{var o=r.elesQueue.shift();o&&(e.drawEleInLayer(r,o,r.level,t),a++),0===i.length&&i.push(!0),0===r.elesQueue.length&&(n.pop(),r.reqs=0,r.replaces&&e.applyLayerReplacement(r),e.requestRedraw())}}return i},lh.applyLayerReplacement=function(t){var e=this,n=e.layersByLevel[t.level],i=t.replaces,a=n.indexOf(i);if(!(a<0||i.invalid)){n[a]=t;for(var r=0;r<t.eles.length;r++){var o=t.eles[r]._private,s=o.imgLayerCaches=o.imgLayerCaches||{};s&&(s[t.level]=t)}e.requestRedraw()}},lh.requestRedraw=Jt((function(){var t=this.renderer;t.redrawHint("eles",!0),t.redrawHint("drag",!0),t.redraw()}),100),lh.setupDequeueing=kd.setupDequeueing({deqRedrawThreshold:Jd,deqCost:th,deqAvgCost:eh,deqNoDrawCost:nh,deqFastCost:ih,deq:function(t,e){return t.dequeue(e)},onDeqd:ke,shouldRedraw:xe,priority:function(t){return t.renderer.beforeRenderPriorities.lyrTxrDeq}});var hh,fh={};function gh(t,e){for(var n=0;n<e.length;n++){var i=e[n];t.lineTo(i.x,i.y)}}function ph(t,e,n){for(var i,a=0;a<e.length;a++){var r=e[a];0===a&&(i=r),t.lineTo(r.x,r.y)}t.quadraticCurveTo(n.x,n.y,i.x,i.y)}function bh(t,e,n){t.beginPath&&t.beginPath();for(var i=e,a=0;a<i.length;a++){var r=i[a];t.lineTo(r.x,r.y)}var o=n,s=n[0];for(t.moveTo(s.x,s.y),a=1;a<o.length;a++)r=o[a],t.lineTo(r.x,r.y);t.closePath&&t.closePath()}function mh(t,e,n,i,a){t.beginPath&&t.beginPath(),t.arc(n,i,a,0,2*Math.PI,!1);var r=e,o=r[0];t.moveTo(o.x,o.y);for(var s=0;s<r.length;s++){var c=r[s];t.lineTo(c.x,c.y)}t.closePath&&t.closePath()}function yh(t,e,n,i){t.arc(e,n,i,0,2*Math.PI,!1)}fh.arrowShapeImpl=function(t){return(hh||(hh={polygon:gh,"triangle-backcurve":ph,"triangle-tee":bh,"circle-triangle":mh,"triangle-cross":bh,circle:yh}))[t]};var vh={drawElement:function(t,e,n,i,a,r){var o=this;e.isNode()?o.drawNode(t,e,n,i,a,r):o.drawEdge(t,e,n,i,a,r)},drawElementOverlay:function(t,e){var n=this;e.isNode()?n.drawNodeOverlay(t,e):n.drawEdgeOverlay(t,e)},drawElementUnderlay:function(t,e){var n=this;e.isNode()?n.drawNodeUnderlay(t,e):n.drawEdgeUnderlay(t,e)},drawCachedElementPortion:function(t,e,n,i,a,r,o,s){var c=this,l=n.getBoundingBox(e);if(0!==l.w&&0!==l.h){var u=n.getElement(e,l,i,a,r);if(null!=u){var d=s(c,e);if(0===d)return;var h,f,g,p,b,m,y=o(c,e),v=l.x1,w=l.y1,x=l.w,R=l.h;if(0!==y){var _=n.getRotationPoint(e);g=_.x,p=_.y,t.translate(g,p),t.rotate(y),(b=c.getImgSmoothing(t))||c.setImgSmoothing(t,!0);var k=n.getRotationOffset(e);h=k.x,f=k.y}else h=v,f=w;1!==d&&(m=t.globalAlpha,t.globalAlpha=m*d),t.drawImage(u.texture.canvas,u.x,0,u.width,u.height,h,f,x,R),1!==d&&(t.globalAlpha=m),0!==y&&(t.rotate(-y),t.translate(-g,-p),b||c.setImgSmoothing(t,!1))}else n.drawElement(t,e)}}},wh=function(){return 0},xh=function(t,e){return t.getTextAngle(e,null)},Rh=function(t,e){return t.getTextAngle(e,"source")},_h=function(t,e){return t.getTextAngle(e,"target")},kh=function(t,e){return e.effectiveOpacity()},Eh=function(t,e){return e.pstyle("text-opacity").pfValue*e.effectiveOpacity()};vh.drawCachedElement=function(t,e,n,i,a,r){var o=this,s=o.data,c=s.eleTxrCache,l=s.lblTxrCache,u=s.slbTxrCache,d=s.tlbTxrCache,h=e.boundingBox(),f=!0===r?c.reasons.highQuality:null;if(0!==h.w&&0!==h.h&&e.visible()&&(!i||Pn(h,i))){var g=e.isEdge(),p=e.element()._private.rscratch.badLine;o.drawElementUnderlay(t,e),o.drawCachedElementPortion(t,e,c,n,a,f,wh,kh),(!g||!p)&&o.drawCachedElementPortion(t,e,l,n,a,f,xh,Eh),g&&!p&&(o.drawCachedElementPortion(t,e,u,n,a,f,Rh,Eh),o.drawCachedElementPortion(t,e,d,n,a,f,_h,Eh)),o.drawElementOverlay(t,e)}},vh.drawElements=function(t,e){for(var n=this,i=0;i<e.length;i++){var a=e[i];n.drawElement(t,a)}},vh.drawCachedElements=function(t,e,n,i){for(var a=this,r=0;r<e.length;r++){var o=e[r];a.drawCachedElement(t,o,n,i)}},vh.drawCachedNodes=function(t,e,n,i){for(var a=this,r=0;r<e.length;r++){var o=e[r];o.isNode()&&a.drawCachedElement(t,o,n,i)}},vh.drawLayeredElements=function(t,e,n,i){var a=this,r=a.data.lyrTxrCache.getLayers(e,n);if(r)for(var o=0;o<r.length;o++){var s=r[o],c=s.bb;0===c.w||0===c.h||t.drawImage(s.canvas,c.x1,c.y1,c.w,c.h)}else a.drawCachedElements(t,e,n,i)};var Ch={drawEdge:function(t,e,n){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this,s=e._private.rscratch;if((!r||e.visible())&&!s.badLine&&null!=s.allpts&&!isNaN(s.allpts[0])){var c;n&&(c=n,t.translate(-c.x1,-c.y1));var l=r?e.pstyle("opacity").value:1,u=r?e.pstyle("line-opacity").value:1,d=e.pstyle("curve-style").value,h=e.pstyle("line-style").value,f=e.pstyle("width").pfValue,g=e.pstyle("line-cap").value,p=l*u,b=l*u,m=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p;"straight-triangle"===d?(o.eleStrokeStyle(t,e,n),o.drawEdgeTrianglePath(e,t,s.allpts)):(t.lineWidth=f,t.lineCap=g,o.eleStrokeStyle(t,e,n),o.drawEdgePath(e,t,s.allpts,h),t.lineCap="butt")},y=function(){a&&o.drawEdgeOverlay(t,e)},v=function(){a&&o.drawEdgeUnderlay(t,e)},w=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b;o.drawArrowheads(t,e,n)},x=function(){o.drawElementText(t,e,null,i)};if(t.lineJoin="round","yes"===e.pstyle("ghost").value){var R=e.pstyle("ghost-offset-x").pfValue,_=e.pstyle("ghost-offset-y").pfValue,k=e.pstyle("ghost-opacity").value,E=p*k;t.translate(R,_),m(E),w(E),t.translate(-R,-_)}v(),m(),w(),y(),x(),n&&t.translate(c.x1,c.y1)}}},Sh=function(t){if(!["overlay","underlay"].includes(t))throw new Error("Invalid state");return function(e,n){if(n.visible()){var i=n.pstyle("".concat(t,"-opacity")).value;if(0!==i){var a=this,r=a.usePaths(),o=n._private.rscratch,s=2*n.pstyle("".concat(t,"-padding")).pfValue,c=n.pstyle("".concat(t,"-color")).value;e.lineWidth=s,"self"!==o.edgeType||r?e.lineCap="round":e.lineCap="butt",a.colorStrokeStyle(e,c[0],c[1],c[2],i),a.drawEdgePath(n,e,o.allpts,"solid")}}}};Ch.drawEdgeOverlay=Sh("overlay"),Ch.drawEdgeUnderlay=Sh("underlay"),Ch.drawEdgePath=function(t,e,n,i){var a,r=t._private.rscratch,o=e,s=!1,c=this.usePaths(),l=t.pstyle("line-dash-pattern").pfValue,u=t.pstyle("line-dash-offset").pfValue;if(c){var d=n.join("$");r.pathCacheKey&&r.pathCacheKey===d?(a=e=r.pathCache,s=!0):(a=e=new Path2D,r.pathCacheKey=d,r.pathCache=a)}if(o.setLineDash)switch(i){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash(l),o.lineDashOffset=u;break;case"solid":o.setLineDash([])}if(!s&&!r.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(n[0],n[1]),r.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var h=2;h+3<n.length;h+=4)e.quadraticCurveTo(n[h],n[h+1],n[h+2],n[h+3]);break;case"straight":case"segments":case"haystack":for(var f=2;f+1<n.length;f+=2)e.lineTo(n[f],n[f+1])}e=o,c?e.stroke(a):e.stroke(),e.setLineDash&&e.setLineDash([])},Ch.drawEdgeTrianglePath=function(t,e,n){e.fillStyle=e.strokeStyle;for(var i=t.pstyle("width").pfValue,a=0;a+1<n.length;a+=2){var r=[n[a+2]-n[a],n[a+3]-n[a+1]],o=Math.sqrt(r[0]*r[0]+r[1]*r[1]),s=[r[1]/o,-r[0]/o],c=[s[0]*i/2,s[1]*i/2];e.beginPath(),e.moveTo(n[a]-c[0],n[a+1]-c[1]),e.lineTo(n[a]+c[0],n[a+1]+c[1]),e.lineTo(n[a+2],n[a+3]),e.closePath(),e.fill()}},Ch.drawArrowheads=function(t,e,n){var i=e._private.rscratch,a="haystack"===i.edgeType;a||this.drawArrowhead(t,e,"source",i.arrowStartX,i.arrowStartY,i.srcArrowAngle,n),this.drawArrowhead(t,e,"mid-target",i.midX,i.midY,i.midtgtArrowAngle,n),this.drawArrowhead(t,e,"mid-source",i.midX,i.midY,i.midsrcArrowAngle,n),a||this.drawArrowhead(t,e,"target",i.arrowEndX,i.arrowEndY,i.tgtArrowAngle,n)},Ch.drawArrowhead=function(t,e,n,i,a,r,o){if(!(isNaN(i)||null==i||isNaN(a)||null==a||isNaN(r)||null==r)){var s=this,c=e.pstyle(n+"-arrow-shape").value;if("none"!==c){var l="hollow"===e.pstyle(n+"-arrow-fill").value?"both":"filled",u=e.pstyle(n+"-arrow-fill").value,d=e.pstyle("width").pfValue,h=e.pstyle("opacity").value;void 0===o&&(o=h);var f=t.globalCompositeOperation;(1!==o||"hollow"===u)&&(t.globalCompositeOperation="destination-out",s.colorFillStyle(t,255,255,255,1),s.colorStrokeStyle(t,255,255,255,1),s.drawArrowShape(e,t,l,d,c,i,a,r),t.globalCompositeOperation=f);var g=e.pstyle(n+"-arrow-color").value;s.colorFillStyle(t,g[0],g[1],g[2],o),s.colorStrokeStyle(t,g[0],g[1],g[2],o),s.drawArrowShape(e,t,u,d,c,i,a,r)}}},Ch.drawArrowShape=function(t,e,n,i,a,r,o,s){var c,l=this,u=this.usePaths()&&"triangle-cross"!==a,d=!1,h=e,f={x:r,y:o},g=t.pstyle("arrow-scale").value,p=this.getArrowWidth(i,g),b=l.arrowShapes[a];if(u){var m=l.arrowPathCache=l.arrowPathCache||[],y=ge(a),v=m[y];null!=v?(c=e=v,d=!0):(c=e=new Path2D,m[y]=c)}d||(e.beginPath&&e.beginPath(),u?b.draw(e,1,0,{x:0,y:0},1):b.draw(e,p,s,f,i),e.closePath&&e.closePath()),e=h,u&&(e.translate(r,o),e.rotate(s),e.scale(p,p)),("filled"===n||"both"===n)&&(u?e.fill(c):e.fill()),("hollow"===n||"both"===n)&&(e.lineWidth=(b.matchEdgeWidth?i:1)/(u?p:1),e.lineJoin="miter",u?e.stroke(c):e.stroke()),u&&(e.scale(1/p,1/p),e.rotate(-s),e.translate(-r,-o))};var Th={safeDrawImage:function(t,e,n,i,a,r,o,s,c,l){if(!(a<=0||r<=0||c<=0||l<=0))try{t.drawImage(e,n,i,a,r,o,s,c,l)}catch(u){Se(u)}},drawInscribedImage:function(t,e,n,i,a){var r=this,o=n.position(),s=o.x,c=o.y,l=n.cy().style(),u=l.getIndexedStyle.bind(l),d=u(n,"background-fit","value",i),h=u(n,"background-repeat","value",i),f=n.width(),g=n.height(),p=2*n.padding(),b=f+("inner"===u(n,"background-width-relative-to","value",i)?0:p),m=g+("inner"===u(n,"background-height-relative-to","value",i)?0:p),y=n._private.rscratch,v="node"===u(n,"background-clip","value",i),w=u(n,"background-image-opacity","value",i)*a,x=u(n,"background-image-smoothing","value",i),R=e.width||e.cachedW,_=e.height||e.cachedH;(null==R||null==_)&&(document.body.appendChild(e),R=e.cachedW=e.width||e.offsetWidth,_=e.cachedH=e.height||e.offsetHeight,document.body.removeChild(e));var k=R,E=_;if("auto"!==u(n,"background-width","value",i)&&(k="%"===u(n,"background-width","units",i)?u(n,"background-width","pfValue",i)*b:u(n,"background-width","pfValue",i)),"auto"!==u(n,"background-height","value",i)&&(E="%"===u(n,"background-height","units",i)?u(n,"background-height","pfValue",i)*m:u(n,"background-height","pfValue",i)),0!==k&&0!==E){if("contain"===d)k*=C=Math.min(b/k,m/E),E*=C;else if("cover"===d){var C;k*=C=Math.max(b/k,m/E),E*=C}var S=s-b/2,T=u(n,"background-position-x","units",i),A=u(n,"background-position-x","pfValue",i);S+="%"===T?(b-k)*A:A;var D=u(n,"background-offset-x","units",i),I=u(n,"background-offset-x","pfValue",i);S+="%"===D?(b-k)*I:I;var L=c-m/2,O=u(n,"background-position-y","units",i),M=u(n,"background-position-y","pfValue",i);L+="%"===O?(m-E)*M:M;var N=u(n,"background-offset-y","units",i),B=u(n,"background-offset-y","pfValue",i);L+="%"===N?(m-E)*B:B,y.pathCache&&(S-=s,L-=c,s=0,c=0);var P=t.globalAlpha;t.globalAlpha=w;var F=r.getImgSmoothing(t),j=!1;if("no"===x&&F?(r.setImgSmoothing(t,!1),j=!0):"yes"===x&&!F&&(r.setImgSmoothing(t,!0),j=!0),"no-repeat"===h)v&&(t.save(),y.pathCache?t.clip(y.pathCache):(r.nodeShapes[r.getNodeShape(n)].draw(t,s,c,b,m),t.clip())),r.safeDrawImage(t,e,0,0,R,_,S,L,k,E),v&&t.restore();else{var $=t.createPattern(e,h);t.fillStyle=$,r.nodeShapes[r.getNodeShape(n)].draw(t,s,c,b,m),t.translate(S,L),t.fill(),t.translate(-S,-L)}t.globalAlpha=P,j&&r.setImgSmoothing(t,F)}}},Ah={};function Dh(t,e,n,i,a){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:5;t.beginPath(),t.moveTo(e+r,n),t.lineTo(e+i-r,n),t.quadraticCurveTo(e+i,n,e+i,n+r),t.lineTo(e+i,n+a-r),t.quadraticCurveTo(e+i,n+a,e+i-r,n+a),t.lineTo(e+r,n+a),t.quadraticCurveTo(e,n+a,e,n+a-r),t.lineTo(e,n+r),t.quadraticCurveTo(e,n,e+r,n),t.closePath(),t.fill()}Ah.eleTextBiggerThanMin=function(t,e){if(!e){var n=t.cy().zoom(),i=this.getPixelRatio(),a=Math.ceil(wn(n*i));e=Math.pow(2,a)}return!(t.pstyle("font-size").pfValue*e<t.pstyle("min-zoomed-font-size").pfValue)},Ah.drawElementText=function(t,e,n,i,a){var r=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this;if(null==i){if(r&&!o.eleTextBiggerThanMin(e))return}else if(!1===i)return;if(e.isNode()){var s=e.pstyle("label");if(!s||!s.value)return;var c=o.getLabelJustification(e);t.textAlign=c,t.textBaseline="bottom"}else{var l=e.element()._private.rscratch.badLine,u=e.pstyle("label"),d=e.pstyle("source-label"),h=e.pstyle("target-label");if(l||(!u||!u.value)&&(!d||!d.value)&&(!h||!h.value))return;t.textAlign="center",t.textBaseline="bottom"}var f,g=!n;n&&(f=n,t.translate(-f.x1,-f.y1)),null==a?(o.drawText(t,e,null,g,r),e.isEdge()&&(o.drawText(t,e,"source",g,r),o.drawText(t,e,"target",g,r))):o.drawText(t,e,a,g,r),n&&t.translate(f.x1,f.y1)},Ah.getFontCache=function(t){var e;this.fontCaches=this.fontCaches||[];for(var n=0;n<this.fontCaches.length;n++)if((e=this.fontCaches[n]).context===t)return e;return e={context:t},this.fontCaches.push(e),e},Ah.setupTextStyle=function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=e.pstyle("font-style").strValue,a=e.pstyle("font-size").pfValue+"px",r=e.pstyle("font-family").strValue,o=e.pstyle("font-weight").strValue,s=n?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,c=e.pstyle("text-outline-opacity").value*s,l=e.pstyle("color").value,u=e.pstyle("text-outline-color").value;t.font=i+" "+o+" "+a+" "+r,t.lineJoin="round",this.colorFillStyle(t,l[0],l[1],l[2],s),this.colorStrokeStyle(t,u[0],u[1],u[2],c)},Ah.getTextAngle=function(t,e){var n=t._private.rscratch,i=e?e+"-":"",a=t.pstyle(i+"text-rotation"),r=Fe(n,"labelAngle",e);return"autorotate"===a.strValue?t.isEdge()?r:0:"none"===a.strValue?0:a.pfValue},Ah.drawText=function(t,e,n){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=e._private.rscratch,o=a?e.effectiveOpacity():1;if(!a||0!==o&&0!==e.pstyle("text-opacity").value){"main"===n&&(n=null);var s,c,l=Fe(r,"labelX",n),u=Fe(r,"labelY",n),d=this.getLabelText(e,n);if(null!=d&&""!==d&&!isNaN(l)&&!isNaN(u)){this.setupTextStyle(t,e,a);var h,f=n?n+"-":"",g=Fe(r,"labelWidth",n),p=Fe(r,"labelHeight",n),b=e.pstyle(f+"text-margin-x").pfValue,m=e.pstyle(f+"text-margin-y").pfValue,y=e.isEdge(),v=e.pstyle("text-halign").value,w=e.pstyle("text-valign").value;switch(y&&(v="center",w="center"),l+=b,u+=m,0!==(h=i?this.getTextAngle(e,n):0)&&(s=l,c=u,t.translate(s,c),t.rotate(h),l=0,u=0),w){case"top":break;case"center":u+=p/2;break;case"bottom":u+=p}var x=e.pstyle("text-background-opacity").value,R=e.pstyle("text-border-opacity").value,_=e.pstyle("text-border-width").pfValue,k=e.pstyle("text-background-padding").pfValue;if(x>0||_>0&&R>0){var E=l-k;switch(v){case"left":E-=g;break;case"center":E-=g/2}var C=u-p-k,S=g+2*k,T=p+2*k;if(x>0){var A=t.fillStyle,D=e.pstyle("text-background-color").value;t.fillStyle="rgba("+D[0]+","+D[1]+","+D[2]+","+x*o+")",0===e.pstyle("text-background-shape").strValue.indexOf("round")?Dh(t,E,C,S,T,2):t.fillRect(E,C,S,T),t.fillStyle=A}if(_>0&&R>0){var I=t.strokeStyle,L=t.lineWidth,O=e.pstyle("text-border-color").value,M=e.pstyle("text-border-style").value;if(t.strokeStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+R*o+")",t.lineWidth=_,t.setLineDash)switch(M){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"double":t.lineWidth=_/4,t.setLineDash([]);break;case"solid":t.setLineDash([])}if(t.strokeRect(E,C,S,T),"double"===M){var N=_/2;t.strokeRect(E+N,C+N,S-2*N,T-2*N)}t.setLineDash&&t.setLineDash([]),t.lineWidth=L,t.strokeStyle=I}}var B=2*e.pstyle("text-outline-width").pfValue;if(B>0&&(t.lineWidth=B),"wrap"===e.pstyle("text-wrap").value){var P=Fe(r,"labelWrapCachedLines",n),F=Fe(r,"labelLineHeight",n),j=g/2,$=this.getLabelJustification(e);switch("auto"===$||("left"===v?"left"===$?l+=-g:"center"===$&&(l+=-j):"center"===v?"left"===$?l+=-j:"right"===$&&(l+=j):"right"===v&&("center"===$?l+=j:"right"===$&&(l+=g))),w){case"top":case"center":case"bottom":u-=(P.length-1)*F}for(var z=0;z<P.length;z++)B>0&&t.strokeText(P[z],l,u),t.fillText(P[z],l,u),u+=F}else B>0&&t.strokeText(d,l,u),t.fillText(d,l,u);0!==h&&(t.rotate(-h),t.translate(-s,-c))}}};var Ih={drawNode:function(t,e,n){var i,a,r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],c=this,l=e._private,u=l.rscratch,d=e.position();if(k(d.x)&&k(d.y)&&(!s||e.visible())){var h,f,g=s?e.effectiveOpacity():1,p=c.usePaths(),b=!1,m=e.padding();i=e.width()+2*m,a=e.height()+2*m,n&&(f=n,t.translate(-f.x1,-f.y1));for(var y=e.pstyle("background-image").value,v=new Array(y.length),w=new Array(y.length),x=0,R=0;R<y.length;R++){var _=y[R];if(v[R]=null!=_&&"none"!==_){var E=e.cy().style().getIndexedStyle(e,"background-image-crossorigin","value",R);x++,w[R]=c.getCachedImage(_,E,(function(){l.backgroundTimestamp=Date.now(),e.emitAndNotify("background")}))}}var C=e.pstyle("background-blacken").value,S=e.pstyle("border-width").pfValue,T=e.pstyle("background-opacity").value*g,A=e.pstyle("border-color").value,D=e.pstyle("border-style").value,I=e.pstyle("border-opacity").value*g;t.lineJoin="miter";var L=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:T;c.eleFillStyle(t,e,n)},O=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:I;c.colorStrokeStyle(t,A[0],A[1],A[2],e)},M=e.pstyle("shape").strValue,N=e.pstyle("shape-polygon-points").pfValue;if(p){t.translate(d.x,d.y);var B=c.nodePathCache=c.nodePathCache||[],P=pe("polygon"===M?M+","+N.join(","):M,""+a,""+i),F=B[P];null!=F?(h=F,b=!0,u.pathCache=h):(h=new Path2D,B[P]=u.pathCache=h)}var j=function(){if(!b){var n=d;p&&(n={x:0,y:0}),c.nodeShapes[c.getNodeShape(e)].draw(h||t,n.x,n.y,i,a)}p?t.fill(h):t.fill()},$=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=l.backgrounding,r=0,o=0;o<w.length;o++){var s=e.cy().style().getIndexedStyle(e,"background-image-containment","value",o);i&&"over"===s||!i&&"inside"===s?r++:v[o]&&w[o].complete&&!w[o].error&&(r++,c.drawInscribedImage(t,w[o],e,o,n))}l.backgrounding=r!==x,a!==l.backgrounding&&e.updateStyle(!1)},z=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g;c.hasPie(e)&&(c.drawPie(t,e,r),n&&(p||c.nodeShapes[c.getNodeShape(e)].draw(t,d.x,d.y,i,a)))},H=function(){var e=(C>0?C:-C)*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:g),n=C>0?0:255;0!==C&&(c.colorFillStyle(t,n,n,n,e),p?t.fill(h):t.fill())},U=function(){if(S>0){if(t.lineWidth=S,t.lineCap="butt",t.setLineDash)switch(D){case"dotted":t.setLineDash([1,1]);break;case"dashed":t.setLineDash([4,2]);break;case"solid":case"double":t.setLineDash([])}if(p?t.stroke(h):t.stroke(),"double"===D){t.lineWidth=S/3;var e=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",p?t.stroke(h):t.stroke(),t.globalCompositeOperation=e}t.setLineDash&&t.setLineDash([])}},V=function(){o&&c.drawNodeOverlay(t,e,d,i,a)},q=function(){o&&c.drawNodeUnderlay(t,e,d,i,a)},W=function(){c.drawElementText(t,e,null,r)};if("yes"===e.pstyle("ghost").value){var Y=e.pstyle("ghost-offset-x").pfValue,G=e.pstyle("ghost-offset-y").pfValue,Z=e.pstyle("ghost-opacity").value,K=Z*g;t.translate(Y,G),L(Z*T),j(),$(K,!0),O(Z*I),U(),z(0!==C||0!==S),$(K,!1),H(K),t.translate(-Y,-G)}p&&t.translate(-d.x,-d.y),q(),p&&t.translate(d.x,d.y),L(),j(),$(g,!0),O(),U(),z(0!==C||0!==S),$(g,!1),H(),p&&t.translate(-d.x,-d.y),W(),V(),n&&t.translate(f.x1,f.y1)}}},Lh=function(t){if(!["overlay","underlay"].includes(t))throw new Error("Invalid state");return function(e,n,i,a,r){var o=this;if(n.visible()){var s=n.pstyle("".concat(t,"-padding")).pfValue,c=n.pstyle("".concat(t,"-opacity")).value,l=n.pstyle("".concat(t,"-color")).value,u=n.pstyle("".concat(t,"-shape")).value;if(c>0){if(i=i||n.position(),null==a||null==r){var d=n.padding();a=n.width()+2*d,r=n.height()+2*d}o.colorFillStyle(e,l[0],l[1],l[2],c),o.nodeShapes[u].draw(e,i.x,i.y,a+2*s,r+2*s),e.fill()}}}};Ih.drawNodeOverlay=Lh("overlay"),Ih.drawNodeUnderlay=Lh("underlay"),Ih.hasPie=function(t){return(t=t[0])._private.hasPie},Ih.drawPie=function(t,e,n,i){e=e[0],i=i||e.position();var a=e.cy().style(),r=e.pstyle("pie-size"),o=i.x,s=i.y,c=e.width(),l=e.height(),u=Math.min(c,l)/2,d=0;this.usePaths()&&(o=0,s=0),"%"===r.units?u*=r.pfValue:void 0!==r.pfValue&&(u=r.pfValue/2);for(var h=1;h<=a.pieBackgroundN;h++){var f=e.pstyle("pie-"+h+"-background-size").value,g=e.pstyle("pie-"+h+"-background-color").value,p=e.pstyle("pie-"+h+"-background-opacity").value*n,b=f/100;b+d>1&&(b=1-d);var m=1.5*Math.PI+2*Math.PI*d,y=m+2*Math.PI*b;0===f||d>=1||d+b>1||(t.beginPath(),t.moveTo(o,s),t.arc(o,s,u,m,y),t.closePath(),this.colorFillStyle(t,g[0],g[1],g[2],p),t.fill(),d+=b)}};var Oh={},Mh=100;Oh.getPixelRatio=function(){var t=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var e=t.backingStorePixelRatio||t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/e},Oh.paintCache=function(t){for(var e,n=this.paintCaches=this.paintCaches||[],i=!0,a=0;a<n.length;a++)if((e=n[a]).context===t){i=!1;break}return i&&(e={context:t},n.push(e)),e},Oh.createGradientStyleFor=function(t,e,n,i,a){var r,o=this.usePaths(),s=n.pstyle(e+"-gradient-stop-colors").value,c=n.pstyle(e+"-gradient-stop-positions").pfValue;if("radial-gradient"===i)if(n.isEdge()){var l=n.sourceEndpoint(),u=n.targetEndpoint(),d=n.midpoint(),h=Rn(l,d),f=Rn(u,d);r=t.createRadialGradient(d.x,d.y,0,d.x,d.y,Math.max(h,f))}else{var g=o?{x:0,y:0}:n.position(),p=n.paddedWidth(),b=n.paddedHeight();r=t.createRadialGradient(g.x,g.y,0,g.x,g.y,Math.max(p,b))}else if(n.isEdge()){var m=n.sourceEndpoint(),y=n.targetEndpoint();r=t.createLinearGradient(m.x,m.y,y.x,y.y)}else{var v=o?{x:0,y:0}:n.position(),w=n.paddedWidth()/2,x=n.paddedHeight()/2;switch(n.pstyle("background-gradient-direction").value){case"to-bottom":r=t.createLinearGradient(v.x,v.y-x,v.x,v.y+x);break;case"to-top":r=t.createLinearGradient(v.x,v.y+x,v.x,v.y-x);break;case"to-left":r=t.createLinearGradient(v.x+w,v.y,v.x-w,v.y);break;case"to-right":r=t.createLinearGradient(v.x-w,v.y,v.x+w,v.y);break;case"to-bottom-right":case"to-right-bottom":r=t.createLinearGradient(v.x-w,v.y-x,v.x+w,v.y+x);break;case"to-top-right":case"to-right-top":r=t.createLinearGradient(v.x-w,v.y+x,v.x+w,v.y-x);break;case"to-bottom-left":case"to-left-bottom":r=t.createLinearGradient(v.x+w,v.y-x,v.x-w,v.y+x);break;case"to-top-left":case"to-left-top":r=t.createLinearGradient(v.x+w,v.y+x,v.x-w,v.y-x)}}if(!r)return null;for(var R=c.length===s.length,_=s.length,k=0;k<_;k++)r.addColorStop(R?c[k]:k/(_-1),"rgba("+s[k][0]+","+s[k][1]+","+s[k][2]+","+a+")");return r},Oh.gradientFillStyle=function(t,e,n,i){var a=this.createGradientStyleFor(t,"background",e,n,i);if(!a)return null;t.fillStyle=a},Oh.colorFillStyle=function(t,e,n,i,a){t.fillStyle="rgba("+e+","+n+","+i+","+a+")"},Oh.eleFillStyle=function(t,e,n){var i=e.pstyle("background-fill").value;if("linear-gradient"===i||"radial-gradient"===i)this.gradientFillStyle(t,e,i,n);else{var a=e.pstyle("background-color").value;this.colorFillStyle(t,a[0],a[1],a[2],n)}},Oh.gradientStrokeStyle=function(t,e,n,i){var a=this.createGradientStyleFor(t,"line",e,n,i);if(!a)return null;t.strokeStyle=a},Oh.colorStrokeStyle=function(t,e,n,i,a){t.strokeStyle="rgba("+e+","+n+","+i+","+a+")"},Oh.eleStrokeStyle=function(t,e,n){var i=e.pstyle("line-fill").value;if("linear-gradient"===i||"radial-gradient"===i)this.gradientStrokeStyle(t,e,i,n);else{var a=e.pstyle("line-color").value;this.colorStrokeStyle(t,a[0],a[1],a[2],n)}},Oh.matchCanvasSize=function(t){var e=this,n=e.data,i=e.findContainerClientCoords(),a=i[2],r=i[3],o=e.getPixelRatio(),s=e.motionBlurPxRatio;(t===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE]||t===e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG])&&(o=s);var c,l=a*o,u=r*o;if(l!==e.canvasWidth||u!==e.canvasHeight){e.fontCaches=null;var d=n.canvasContainer;d.style.width=a+"px",d.style.height=r+"px";for(var h=0;h<e.CANVAS_LAYERS;h++)(c=n.canvases[h]).width=l,c.height=u,c.style.width=a+"px",c.style.height=r+"px";for(h=0;h<e.BUFFER_COUNT;h++)(c=n.bufferCanvases[h]).width=l,c.height=u,c.style.width=a+"px",c.style.height=r+"px";e.textureMult=1,o<=1&&(c=n.bufferCanvases[e.TEXTURE_BUFFER],e.textureMult=2,c.width=l*e.textureMult,c.height=u*e.textureMult),e.canvasWidth=l,e.canvasHeight=u}},Oh.renderTo=function(t,e,n,i){this.render({forcedContext:t,forcedZoom:e,forcedPan:n,drawAllLayers:!0,forcedPxRatio:i})},Oh.render=function(t){var e=(t=t||Oe()).forcedContext,n=t.drawAllLayers,i=t.drawOnlyNodeLayer,a=t.forcedZoom,r=t.forcedPan,o=this,s=void 0===t.forcedPxRatio?this.getPixelRatio():t.forcedPxRatio,c=o.cy,l=o.data,u=l.canvasNeedsRedraw,d=o.textureOnViewport&&!e&&(o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming),h=void 0!==t.motionBlur?t.motionBlur:o.motionBlur,f=o.motionBlurPxRatio,g=c.hasCompoundNodes(),p=o.hoverData.draggingEles,b=!(!o.hoverData.selecting&&!o.touchData.selecting),m=h=h&&!e&&o.motionBlurEnabled&&!b;e||(o.prevPxRatio!==s&&(o.invalidateContainerClientCoordsCache(),o.matchCanvasSize(o.container),o.redrawHint("eles",!0),o.redrawHint("drag",!0)),o.prevPxRatio=s),!e&&o.motionBlurTimeout&&clearTimeout(o.motionBlurTimeout),h&&(null==o.mbFrames&&(o.mbFrames=0),o.mbFrames++,o.mbFrames<3&&(m=!1),o.mbFrames>o.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!d&&(u[o.NODE]=!0,u[o.SELECT_BOX]=!0);var y=c.style(),v=c.zoom(),w=void 0!==a?a:v,x=c.pan(),R={x:x.x,y:x.y},_={zoom:v,pan:{x:x.x,y:x.y}},k=o.prevViewport;!(void 0===k||_.zoom!==k.zoom||_.pan.x!==k.pan.x||_.pan.y!==k.pan.y)&&!(p&&!g)&&(o.motionBlurPxRatio=1),r&&(R=r),w*=s,R.x*=s,R.y*=s;var E=o.getCachedZSortedEles();function C(t,e,n,i,a){var r=t.globalCompositeOperation;t.globalCompositeOperation="destination-out",o.colorFillStyle(t,255,255,255,o.motionBlurTransparency),t.fillRect(e,n,i,a),t.globalCompositeOperation=r}function S(t,i){var s,c,u,d;o.clearingMotionBlur||t!==l.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&t!==l.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=R,c=w,u=o.canvasWidth,d=o.canvasHeight):(s={x:x.x*f,y:x.y*f},c=v*f,u=o.canvasWidth*f,d=o.canvasHeight*f),t.setTransform(1,0,0,1,0,0),"motionBlur"===i?C(t,0,0,u,d):!e&&(void 0===i||i)&&t.clearRect(0,0,u,d),n||(t.translate(s.x,s.y),t.scale(c,c)),r&&t.translate(r.x,r.y),a&&t.scale(a,a)}if(d||(o.textureDrawLastFrame=!1),d){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=c.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var T=o.data.bufferContexts[o.TEXTURE_BUFFER];T.setTransform(1,0,0,1,0,0),T.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:T,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult}),(_=o.textureCache.viewport={zoom:c.zoom(),pan:c.pan(),width:o.canvasWidth,height:o.canvasHeight}).mpan={x:(0-_.pan.x)/_.zoom,y:(0-_.pan.y)/_.zoom}}u[o.DRAG]=!1,u[o.NODE]=!1;var A=l.contexts[o.NODE],D=o.textureCache.texture;_=o.textureCache.viewport,A.setTransform(1,0,0,1,0,0),h?C(A,0,0,_.width,_.height):A.clearRect(0,0,_.width,_.height);var I=y.core("outside-texture-bg-color").value,L=y.core("outside-texture-bg-opacity").value;o.colorFillStyle(A,I[0],I[1],I[2],L),A.fillRect(0,0,_.width,_.height),v=c.zoom(),S(A,!1),A.clearRect(_.mpan.x,_.mpan.y,_.width/_.zoom/s,_.height/_.zoom/s),A.drawImage(D,_.mpan.x,_.mpan.y,_.width/_.zoom/s,_.height/_.zoom/s)}else o.textureOnViewport&&!e&&(o.textureCache=null);var O=c.extent(),M=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),N=o.hideEdgesOnViewport&&M,B=[];if(B[o.NODE]=!u[o.NODE]&&h&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,B[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),B[o.DRAG]=!u[o.DRAG]&&h&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,B[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),u[o.NODE]||n||i||B[o.NODE]){var P=h&&!B[o.NODE]&&1!==f;S(A=e||(P?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:l.contexts[o.NODE]),h&&!P?"motionBlur":void 0),N?o.drawCachedNodes(A,E.nondrag,s,O):o.drawLayeredElements(A,E.nondrag,s,O),o.debug&&o.drawDebugPoints(A,E.nondrag),!n&&!h&&(u[o.NODE]=!1)}if(!i&&(u[o.DRAG]||n||B[o.DRAG])&&(P=h&&!B[o.DRAG]&&1!==f,S(A=e||(P?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:l.contexts[o.DRAG]),h&&!P?"motionBlur":void 0),N?o.drawCachedNodes(A,E.drag,s,O):o.drawCachedElements(A,E.drag,s,O),o.debug&&o.drawDebugPoints(A,E.drag),!n&&!h&&(u[o.DRAG]=!1)),o.showFps||!i&&u[o.SELECT_BOX]&&!n){if(S(A=e||l.contexts[o.SELECT_BOX]),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){v=o.cy.zoom();var F=y.core("selection-box-border-width").value/v;A.lineWidth=F,A.fillStyle="rgba("+y.core("selection-box-color").value[0]+","+y.core("selection-box-color").value[1]+","+y.core("selection-box-color").value[2]+","+y.core("selection-box-opacity").value+")",A.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),F>0&&(A.strokeStyle="rgba("+y.core("selection-box-border-color").value[0]+","+y.core("selection-box-border-color").value[1]+","+y.core("selection-box-border-color").value[2]+","+y.core("selection-box-opacity").value+")",A.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(l.bgActivePosistion&&!o.hoverData.selecting){v=o.cy.zoom();var j=l.bgActivePosistion;A.fillStyle="rgba("+y.core("active-bg-color").value[0]+","+y.core("active-bg-color").value[1]+","+y.core("active-bg-color").value[2]+","+y.core("active-bg-opacity").value+")",A.beginPath(),A.arc(j.x,j.y,y.core("active-bg-size").pfValue/v,0,2*Math.PI),A.fill()}var $=o.lastRedrawTime;if(o.showFps&&$){$=Math.round($);var z=Math.round(1e3/$);A.setTransform(1,0,0,1,0,0),A.fillStyle="rgba(255, 0, 0, 0.75)",A.strokeStyle="rgba(255, 0, 0, 0.75)",A.lineWidth=1,A.fillText("1 frame = "+$+" ms = "+z+" fps",0,20);var H=60;A.strokeRect(0,30,250,20),A.fillRect(0,30,250*Math.min(z/H,1),20)}n||(u[o.SELECT_BOX]=!1)}if(h&&1!==f){var U=l.contexts[o.NODE],V=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],q=l.contexts[o.DRAG],W=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],Y=function(t,e,n){t.setTransform(1,0,0,1,0,0),n||!m?t.clearRect(0,0,o.canvasWidth,o.canvasHeight):C(t,0,0,o.canvasWidth,o.canvasHeight);var i=f;t.drawImage(e,0,0,o.canvasWidth*i,o.canvasHeight*i,0,0,o.canvasWidth,o.canvasHeight)};(u[o.NODE]||B[o.NODE])&&(Y(U,V,B[o.NODE]),u[o.NODE]=!1),(u[o.DRAG]||B[o.DRAG])&&(Y(q,W,B[o.DRAG]),u[o.DRAG]=!1)}o.prevViewport=_,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),h&&(o.motionBlurTimeout=setTimeout((function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!d,o.mbFrames=0,u[o.NODE]=!0,u[o.DRAG]=!0,o.redraw()}),Mh)),e||c.emit("render")};for(var Nh={drawPolygonPath:function(t,e,n,i,a,r){var o=i/2,s=a/2;t.beginPath&&t.beginPath(),t.moveTo(e+o*r[0],n+s*r[1]);for(var c=1;c<r.length/2;c++)t.lineTo(e+o*r[2*c],n+s*r[2*c+1]);t.closePath()},drawRoundPolygonPath:function(t,e,n,i,a,r){var o=i/2,s=a/2,c=di(i,a);t.beginPath&&t.beginPath();for(var l=0;l<r.length/4;l++){var u=void 0,d=void 0;u=0===l?r.length-2:4*l-2,d=4*l+2;var h=e+o*r[4*l],f=n+s*r[4*l+1],g=-r[u]*r[d]-r[u+1]*r[d+1],p=c/Math.tan(Math.acos(g)/2),b=h-p*r[u],m=f-p*r[u+1],y=h+p*r[d],v=f+p*r[d+1];0===l?t.moveTo(b,m):t.lineTo(b,m),t.arcTo(h,f,y,v,c)}t.closePath()},drawRoundRectanglePath:function(t,e,n,i,a){var r=i/2,o=a/2,s=ui(i,a);t.beginPath&&t.beginPath(),t.moveTo(e,n-o),t.arcTo(e+r,n-o,e+r,n,s),t.arcTo(e+r,n+o,e,n+o,s),t.arcTo(e-r,n+o,e-r,n,s),t.arcTo(e-r,n-o,e,n-o,s),t.lineTo(e,n-o),t.closePath()},drawBottomRoundRectanglePath:function(t,e,n,i,a){var r=i/2,o=a/2,s=ui(i,a);t.beginPath&&t.beginPath(),t.moveTo(e,n-o),t.lineTo(e+r,n-o),t.lineTo(e+r,n),t.arcTo(e+r,n+o,e,n+o,s),t.arcTo(e-r,n+o,e-r,n,s),t.lineTo(e-r,n-o),t.lineTo(e,n-o),t.closePath()},drawCutRectanglePath:function(t,e,n,i,a){var r=i/2,o=a/2,s=hi();t.beginPath&&t.beginPath(),t.moveTo(e-r+s,n-o),t.lineTo(e+r-s,n-o),t.lineTo(e+r,n-o+s),t.lineTo(e+r,n+o-s),t.lineTo(e+r-s,n+o),t.lineTo(e-r+s,n+o),t.lineTo(e-r,n+o-s),t.lineTo(e-r,n-o+s),t.closePath()},drawBarrelPath:function(t,e,n,i,a){var r=i/2,o=a/2,s=e-r,c=e+r,l=n-o,u=n+o,d=gi(i,a),h=d.widthOffset,f=d.heightOffset,g=d.ctrlPtOffsetPct*h;t.beginPath&&t.beginPath(),t.moveTo(s,l+f),t.lineTo(s,u-f),t.quadraticCurveTo(s+g,u,s+h,u),t.lineTo(c-h,u),t.quadraticCurveTo(c-g,u,c,u-f),t.lineTo(c,l+f),t.quadraticCurveTo(c-g,l,c-h,l),t.lineTo(s+h,l),t.quadraticCurveTo(s+g,l,s,l+f),t.closePath()}},Bh=Math.sin(0),Ph=Math.cos(0),Fh={},jh={},$h=Math.PI/40,zh=0*Math.PI;zh<2*Math.PI;zh+=$h)Fh[zh]=Math.sin(zh),jh[zh]=Math.cos(zh);Nh.drawEllipsePath=function(t,e,n,i,a){if(t.beginPath&&t.beginPath(),t.ellipse)t.ellipse(e,n,i/2,a/2,0,0,2*Math.PI);else for(var r,o,s=i/2,c=a/2,l=0*Math.PI;l<2*Math.PI;l+=$h)r=e-s*Fh[l]*Bh+s*jh[l]*Ph,o=n+c*jh[l]*Bh+c*Fh[l]*Ph,0===l?t.moveTo(r,o):t.lineTo(r,o);t.closePath()};var Hh={};function Uh(t,e){for(var n=atob(t),i=new ArrayBuffer(n.length),a=new Uint8Array(i),r=0;r<n.length;r++)a[r]=n.charCodeAt(r);return new Blob([i],{type:e})}function Vh(t){var e=t.indexOf(",");return t.substr(e+1)}function qh(t,e,n){var i=function(){return e.toDataURL(n,t.quality)};switch(t.output){case"blob-promise":return new $a((function(i,a){try{e.toBlob((function(t){null!=t?i(t):a(new Error("`canvas.toBlob()` sent a null value in its callback"))}),n,t.quality)}catch(r){a(r)}}));case"blob":return Uh(Vh(i()),n);case"base64":return Vh(i());default:return i()}}Hh.createBuffer=function(t,e){var n=document.createElement("canvas");return n.width=t,n.height=e,[n,n.getContext("2d")]},Hh.bufferCanvasImage=function(t){var e=this.cy,n=e.mutableElements().boundingBox(),i=this.findContainerClientCoords(),a=t.full?Math.ceil(n.w):i[2],r=t.full?Math.ceil(n.h):i[3],o=k(t.maxWidth)||k(t.maxHeight),s=this.getPixelRatio(),c=1;if(void 0!==t.scale)a*=t.scale,r*=t.scale,c=t.scale;else if(o){var l=1/0,u=1/0;k(t.maxWidth)&&(l=c*t.maxWidth/a),k(t.maxHeight)&&(u=c*t.maxHeight/r),a*=c=Math.min(l,u),r*=c}o||(a*=s,r*=s,c*=s);var d=document.createElement("canvas");d.width=a,d.height=r,d.style.width=a+"px",d.style.height=r+"px";var h=d.getContext("2d");if(a>0&&r>0){h.clearRect(0,0,a,r),h.globalCompositeOperation="source-over";var f=this.getCachedZSortedEles();if(t.full)h.translate(-n.x1*c,-n.y1*c),h.scale(c,c),this.drawElements(h,f),h.scale(1/c,1/c),h.translate(n.x1*c,n.y1*c);else{var g=e.pan(),p={x:g.x*c,y:g.y*c};c*=e.zoom(),h.translate(p.x,p.y),h.scale(c,c),this.drawElements(h,f),h.scale(1/c,1/c),h.translate(-p.x,-p.y)}t.bg&&(h.globalCompositeOperation="destination-over",h.fillStyle=t.bg,h.rect(0,0,a,r),h.fill())}return d},Hh.png=function(t){return qh(t,this.bufferCanvasImage(t),"image/png")},Hh.jpg=function(t){return qh(t,this.bufferCanvasImage(t),"image/jpeg")};var Wh={nodeShapeImpl:function(t,e,n,i,a,r,o){switch(t){case"ellipse":return this.drawEllipsePath(e,n,i,a,r);case"polygon":return this.drawPolygonPath(e,n,i,a,r,o);case"round-polygon":return this.drawRoundPolygonPath(e,n,i,a,r,o);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,n,i,a,r);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,n,i,a,r);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,n,i,a,r);case"barrel":return this.drawBarrelPath(e,n,i,a,r)}}},Yh=Zh,Gh=Zh.prototype;function Zh(t){var e=this;e.data={canvases:new Array(Gh.CANVAS_LAYERS),contexts:new Array(Gh.CANVAS_LAYERS),canvasNeedsRedraw:new Array(Gh.CANVAS_LAYERS),bufferCanvases:new Array(Gh.BUFFER_COUNT),bufferContexts:new Array(Gh.CANVAS_LAYERS)};var n="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";e.data.canvasContainer=document.createElement("div");var a=e.data.canvasContainer.style;e.data.canvasContainer.style[n]=i,a.position="relative",a.zIndex="0",a.overflow="hidden";var r=t.cy.container();r.appendChild(e.data.canvasContainer),r.style[n]=i;var o={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};P()&&(o["-ms-touch-action"]="none",o["touch-action"]="none");for(var s=0;s<Gh.CANVAS_LAYERS;s++){var c=e.data.canvases[s]=document.createElement("canvas");e.data.contexts[s]=c.getContext("2d"),Object.keys(o).forEach((function(t){c.style[t]=o[t]})),c.style.position="absolute",c.setAttribute("data-id","layer"+s),c.style.zIndex=String(Gh.CANVAS_LAYERS-s),e.data.canvasContainer.appendChild(c),e.data.canvasNeedsRedraw[s]=!1}for(e.data.topCanvas=e.data.canvases[0],e.data.canvases[Gh.NODE].setAttribute("data-id","layer"+Gh.NODE+"-node"),e.data.canvases[Gh.SELECT_BOX].setAttribute("data-id","layer"+Gh.SELECT_BOX+"-selectbox"),e.data.canvases[Gh.DRAG].setAttribute("data-id","layer"+Gh.DRAG+"-drag"),s=0;s<Gh.BUFFER_COUNT;s++)e.data.bufferCanvases[s]=document.createElement("canvas"),e.data.bufferContexts[s]=e.data.bufferCanvases[s].getContext("2d"),e.data.bufferCanvases[s].style.position="absolute",e.data.bufferCanvases[s].setAttribute("data-id","buffer"+s),e.data.bufferCanvases[s].style.zIndex=String(-s-1),e.data.bufferCanvases[s].style.visibility="hidden";e.pathsEnabled=!0;var l=An(),u=function(t){return{x:(t.x1+t.x2)/2,y:(t.y1+t.y2)/2}},d=function(t){return{x:-t.w/2,y:-t.h/2}},h=function(t){var e=t[0]._private;return!(e.oldBackgroundTimestamp===e.backgroundTimestamp)},f=function(t){return t[0]._private.nodeKey},g=function(t){return t[0]._private.labelStyleKey},p=function(t){return t[0]._private.sourceLabelStyleKey},b=function(t){return t[0]._private.targetLabelStyleKey},m=function(t,n,i,a,r){return e.drawElement(t,n,i,!1,!1,r)},y=function(t,n,i,a,r){return e.drawElementText(t,n,i,a,"main",r)},v=function(t,n,i,a,r){return e.drawElementText(t,n,i,a,"source",r)},w=function(t,n,i,a,r){return e.drawElementText(t,n,i,a,"target",r)},x=function(t){return t.boundingBox(),t[0]._private.bodyBounds},R=function(t){return t.boundingBox(),t[0]._private.labelBounds.main||l},_=function(t){return t.boundingBox(),t[0]._private.labelBounds.source||l},k=function(t){return t.boundingBox(),t[0]._private.labelBounds.target||l},E=function(t,e){return e},C=function(t){return u(x(t))},S=function(t,e,n){var i=t?t+"-":"";return{x:e.x+n.pstyle(i+"text-margin-x").pfValue,y:e.y+n.pstyle(i+"text-margin-y").pfValue}},T=function(t,e,n){var i=t[0]._private.rscratch;return{x:i[e],y:i[n]}},A=function(t){return S("",T(t,"labelX","labelY"),t)},D=function(t){return S("source",T(t,"sourceLabelX","sourceLabelY"),t)},I=function(t){return S("target",T(t,"targetLabelX","targetLabelY"),t)},L=function(t){return d(x(t))},O=function(t){return d(_(t))},M=function(t){return d(k(t))},N=function(t){var e=R(t),n=d(R(t));if(t.isNode()){switch(t.pstyle("text-halign").value){case"left":n.x=-e.w;break;case"right":n.x=0}switch(t.pstyle("text-valign").value){case"top":n.y=-e.h;break;case"bottom":n.y=0}}return n},B=e.data.eleTxrCache=new Wd(e,{getKey:f,doesEleInvalidateKey:h,drawElement:m,getBoundingBox:x,getRotationPoint:C,getRotationOffset:L,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),F=e.data.lblTxrCache=new Wd(e,{getKey:g,drawElement:y,getBoundingBox:R,getRotationPoint:A,getRotationOffset:N,isVisible:E}),j=e.data.slbTxrCache=new Wd(e,{getKey:p,drawElement:v,getBoundingBox:_,getRotationPoint:D,getRotationOffset:O,isVisible:E}),$=e.data.tlbTxrCache=new Wd(e,{getKey:b,drawElement:w,getBoundingBox:k,getRotationPoint:I,getRotationOffset:M,isVisible:E}),z=e.data.lyrTxrCache=new ch(e);e.onUpdateEleCalcs((function(t,e){B.invalidateElements(e),F.invalidateElements(e),j.invalidateElements(e),$.invalidateElements(e),z.invalidateElements(e);for(var n=0;n<e.length;n++){var i=e[n]._private;i.oldBackgroundTimestamp=i.backgroundTimestamp}}));var H=function(t){for(var e=0;e<t.length;e++)z.enqueueElementRefinement(t[e].ele)};B.onDequeue(H),F.onDequeue(H),j.onDequeue(H),$.onDequeue(H)}Gh.CANVAS_LAYERS=3,Gh.SELECT_BOX=0,Gh.DRAG=1,Gh.NODE=2,Gh.BUFFER_COUNT=3,Gh.TEXTURE_BUFFER=0,Gh.MOTIONBLUR_BUFFER_NODE=1,Gh.MOTIONBLUR_BUFFER_DRAG=2,Gh.redrawHint=function(t,e){var n=this;switch(t){case"eles":n.data.canvasNeedsRedraw[Gh.NODE]=e;break;case"drag":n.data.canvasNeedsRedraw[Gh.DRAG]=e;break;case"select":n.data.canvasNeedsRedraw[Gh.SELECT_BOX]=e}};var Kh=typeof Path2D<"u";Gh.path2dEnabled=function(t){if(void 0===t)return this.pathsEnabled;this.pathsEnabled=!!t},Gh.usePaths=function(){return Kh&&this.pathsEnabled},Gh.setImgSmoothing=function(t,e){null!=t.imageSmoothingEnabled?t.imageSmoothingEnabled=e:(t.webkitImageSmoothingEnabled=e,t.mozImageSmoothingEnabled=e,t.msImageSmoothingEnabled=e)},Gh.getImgSmoothing=function(t){return null!=t.imageSmoothingEnabled?t.imageSmoothingEnabled:t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled},Gh.makeOffscreenCanvas=function(e,n){var i;return"undefined"!==(typeof OffscreenCanvas>"u"?"undefined":t(OffscreenCanvas))?i=new OffscreenCanvas(e,n):((i=document.createElement("canvas")).width=e,i.height=n),i},[fh,vh,Ch,Th,Ah,Ih,Oh,Nh,Hh,Wh].forEach((function(t){J(Gh,t)}));var Xh=[{type:"layout",extensions:Gu},{type:"renderer",extensions:[{name:"null",impl:Zu},{name:"base",impl:xd},{name:"canvas",impl:Yh}]}],Jh={},Qh={};function tf(t,e,n){var i=n,a=function(n){Se("Can not register `"+e+"` for `"+t+"` since `"+n+"` already exists in the prototype and can not be overridden")};if("core"===t){if(su.prototype[e])return a(e);su.prototype[e]=n}else if("collection"===t){if(xl.prototype[e])return a(e);xl.prototype[e]=n}else if("layout"===t){for(var r=function(t){this.options=t,n.call(this,t),R(this._private)||(this._private={}),this._private.cy=t.cy,this._private.listeners=[],this.createEmitter()},o=r.prototype=Object.create(n.prototype),s=[],c=0;c<s.length;c++){var l=s[c];o[l]=o[l]||function(){return this}}o.start&&!o.run?o.run=function(){return this.start(),this}:!o.start&&o.run&&(o.start=function(){return this.run(),this});var u=n.prototype.stop;o.stop=function(){var t=this.options;if(t&&t.animate){var e=this.animations;if(e)for(var n=0;n<e.length;n++)e[n].stop()}return u?u.call(this):this.emit("layoutstop"),this},o.destroy||(o.destroy=function(){return this}),o.cy=function(){return this._private.cy};var d=function(t){return t._private.cy},h={addEventFields:function(t,e){e.layout=t,e.cy=d(t),e.target=t},bubble:function(){return!0},parent:function(t){return d(t)}};J(o,{createEmitter:function(){return this._private.emitter=new Fc(h,this),this},emitter:function(){return this._private.emitter},on:function(t,e){return this.emitter().on(t,e),this},one:function(t,e){return this.emitter().one(t,e),this},once:function(t,e){return this.emitter().one(t,e),this},removeListener:function(t,e){return this.emitter().removeListener(t,e),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(t,e){return this.emitter().emit(t,e),this}}),fs.eventAliasesOn(o),i=r}else if("renderer"===t&&"null"!==e&&"base"!==e){var f=ef("renderer","base"),g=f.prototype,p=n,b=n.prototype,m=function(){f.apply(this,arguments),p.apply(this,arguments)},y=m.prototype;for(var v in g){var w=g[v];if(null!=b[v])return a(v);y[v]=w}for(var x in b)y[x]=b[x];g.clientFunctions.forEach((function(t){y[t]=y[t]||function(){Ee("Renderer does not implement `renderer."+t+"()` on its prototype")}})),i=m}else if("__proto__"===t||"constructor"===t||"prototype"===t)return Ee(t+" is an illegal type to be registered, possibly lead to prototype pollutions");return rt({map:Jh,keys:[t,e],value:i})}function ef(t,e){return ot({map:Jh,keys:[t,e]})}function nf(t,e,n,i,a){return rt({map:Qh,keys:[t,e,n,i],value:a})}function af(t,e,n,i){return ot({map:Qh,keys:[t,e,n,i]})}var rf=function(){return 2===arguments.length?ef.apply(null,arguments):3===arguments.length?tf.apply(null,arguments):4===arguments.length?af.apply(null,arguments):5===arguments.length?nf.apply(null,arguments):void Ee("Invalid extension access syntax")};su.prototype.extension=rf,Xh.forEach((function(t){t.extensions.forEach((function(e){tf(t.type,e.name,e.impl)}))}));var of=function t(){if(!(this instanceof t))return new t;this.length=0},sf=of.prototype;sf.instanceString=function(){return"stylesheet"},sf.selector=function(t){return this[this.length++]={selector:t,properties:[]},this},sf.css=function(t,e){var n=this.length-1;if(v(t))this[n].properties.push({name:t,value:e});else if(R(t))for(var i=t,a=Object.keys(i),r=0;r<a.length;r++){var o=a[r],s=i[o];if(null!=s){var c=eu.properties[o]||eu.properties[$(o)];if(null!=c){var l=c.name,u=s;this[n].properties.push({name:l,value:u})}}}return this},sf.style=sf.css,sf.generateStyle=function(t){var e=new eu(t);return this.appendToStyle(e)},sf.appendToStyle=function(t){for(var e=0;e<this.length;e++){var n=this[e],i=n.selector,a=n.properties;t.selector(i);for(var r=0;r<a.length;r++){var o=a[r];t.css(o.name,o.value)}}return t};var cf="3.23.0",lf=function(t){return void 0===t&&(t={}),R(t)?new su(t):v(t)?rf.apply(rf,arguments):void 0};return lf.use=function(t){var e=Array.prototype.slice.call(arguments,1);return e.unshift(lf),t.apply(null,e),this},lf.warnings=function(t){return Ce(t)},lf.version=cf,lf.stylesheet=lf.Stylesheet=of,lf}))}({get exports(){return pq},set exports(t){pq=t}});const bq=pq;var mq,yq,vq={},wq={},xq={get exports(){return wq},set exports(t){wq=t}},Rq={},_q={get exports(){return Rq},set exports(t){Rq=t}};function kq(){return mq||(mq=1,function(t,e){var n;n=function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.i=function(t){return t},n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:i})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=26)}([function(t,e,n){function i(){}i.QUALITY=1,i.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,i.DEFAULT_INCREMENTAL=!1,i.DEFAULT_ANIMATION_ON_LAYOUT=!0,i.DEFAULT_ANIMATION_DURING_LAYOUT=!1,i.DEFAULT_ANIMATION_PERIOD=50,i.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,i.DEFAULT_GRAPH_MARGIN=15,i.NODE_DIMENSIONS_INCLUDE_LABELS=!1,i.SIMPLE_NODE_SIZE=40,i.SIMPLE_NODE_HALF_SIZE=i.SIMPLE_NODE_SIZE/2,i.EMPTY_COMPOUND_NODE_SIZE=40,i.MIN_EDGE_LENGTH=1,i.WORLD_BOUNDARY=1e6,i.INITIAL_WORLD_BOUNDARY=i.WORLD_BOUNDARY/1e3,i.WORLD_CENTER_X=1200,i.WORLD_CENTER_Y=900,t.exports=i},function(t,e,n){var i=n(2),a=n(8),r=n(9);function o(t,e,n){i.call(this,n),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=n,this.bendpoints=[],this.source=t,this.target=e}for(var s in o.prototype=Object.create(i.prototype),i)o[s]=i[s];o.prototype.getSource=function(){return this.source},o.prototype.getTarget=function(){return this.target},o.prototype.isInterGraph=function(){return this.isInterGraph},o.prototype.getLength=function(){return this.length},o.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},o.prototype.getBendpoints=function(){return this.bendpoints},o.prototype.getLca=function(){return this.lca},o.prototype.getSourceInLca=function(){return this.sourceInLca},o.prototype.getTargetInLca=function(){return this.targetInLca},o.prototype.getOtherEnd=function(t){if(this.source===t)return this.target;if(this.target===t)return this.source;throw"Node is not incident with this edge"},o.prototype.getOtherEndInGraph=function(t,e){for(var n=this.getOtherEnd(t),i=e.getGraphManager().getRoot();;){if(n.getOwner()==e)return n;if(n.getOwner()==i)break;n=n.getOwner().getParent()}return null},o.prototype.updateLength=function(){var t=new Array(4);this.isOverlapingSourceAndTarget=a.getIntersection(this.target.getRect(),this.source.getRect(),t),this.isOverlapingSourceAndTarget||(this.lengthX=t[0]-t[2],this.lengthY=t[1]-t[3],Math.abs(this.lengthX)<1&&(this.lengthX=r.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=r.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},o.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=r.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=r.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},t.exports=o},function(t,e,n){function i(t){this.vGraphObject=t}t.exports=i},function(t,e,n){var i=n(2),a=n(10),r=n(13),o=n(0),s=n(16),c=n(4);function l(t,e,n,o){null==n&&null==o&&(o=e),i.call(this,o),null!=t.graphManager&&(t=t.graphManager),this.estimatedSize=a.MIN_VALUE,this.inclusionTreeDepth=a.MAX_VALUE,this.vGraphObject=o,this.edges=[],this.graphManager=t,this.rect=null!=n&&null!=e?new r(e.x,e.y,n.width,n.height):new r}for(var u in l.prototype=Object.create(i.prototype),i)l[u]=i[u];l.prototype.getEdges=function(){return this.edges},l.prototype.getChild=function(){return this.child},l.prototype.getOwner=function(){return this.owner},l.prototype.getWidth=function(){return this.rect.width},l.prototype.setWidth=function(t){this.rect.width=t},l.prototype.getHeight=function(){return this.rect.height},l.prototype.setHeight=function(t){this.rect.height=t},l.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},l.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},l.prototype.getCenter=function(){return new c(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},l.prototype.getLocation=function(){return new c(this.rect.x,this.rect.y)},l.prototype.getRect=function(){return this.rect},l.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},l.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},l.prototype.setRect=function(t,e){this.rect.x=t.x,this.rect.y=t.y,this.rect.width=e.width,this.rect.height=e.height},l.prototype.setCenter=function(t,e){this.rect.x=t-this.rect.width/2,this.rect.y=e-this.rect.height/2},l.prototype.setLocation=function(t,e){this.rect.x=t,this.rect.y=e},l.prototype.moveBy=function(t,e){this.rect.x+=t,this.rect.y+=e},l.prototype.getEdgeListToNode=function(t){var e=[],n=this;return n.edges.forEach((function(i){if(i.target==t){if(i.source!=n)throw"Incorrect edge source!";e.push(i)}})),e},l.prototype.getEdgesBetween=function(t){var e=[],n=this;return n.edges.forEach((function(i){if(i.source!=n&&i.target!=n)throw"Incorrect edge source and/or target";(i.target==t||i.source==t)&&e.push(i)})),e},l.prototype.getNeighborsList=function(){var t=new Set,e=this;return e.edges.forEach((function(n){if(n.source==e)t.add(n.target);else{if(n.target!=e)throw"Incorrect incidency!";t.add(n.source)}})),t},l.prototype.withChildren=function(){var t=new Set;if(t.add(this),null!=this.child)for(var e=this.child.getNodes(),n=0;n<e.length;n++)e[n].withChildren().forEach((function(e){t.add(e)}));return t},l.prototype.getNoOfChildren=function(){var t=0;if(null==this.child)t=1;else for(var e=this.child.getNodes(),n=0;n<e.length;n++)t+=e[n].getNoOfChildren();return 0==t&&(t=1),t},l.prototype.getEstimatedSize=function(){if(this.estimatedSize==a.MIN_VALUE)throw"assert failed";return this.estimatedSize},l.prototype.calcEstimatedSize=function(){return null==this.child?this.estimatedSize=(this.rect.width+this.rect.height)/2:(this.estimatedSize=this.child.calcEstimatedSize(),this.rect.width=this.estimatedSize,this.rect.height=this.estimatedSize,this.estimatedSize)},l.prototype.scatter=function(){var t,e,n=-o.INITIAL_WORLD_BOUNDARY,i=o.INITIAL_WORLD_BOUNDARY;t=o.WORLD_CENTER_X+s.nextDouble()*(i-n)+n;var a=-o.INITIAL_WORLD_BOUNDARY,r=o.INITIAL_WORLD_BOUNDARY;e=o.WORLD_CENTER_Y+s.nextDouble()*(r-a)+a,this.rect.x=t,this.rect.y=e},l.prototype.updateBounds=function(){if(null==this.getChild())throw"assert failed";if(0!=this.getChild().getNodes().length){var t=this.getChild();if(t.updateBounds(!0),this.rect.x=t.getLeft(),this.rect.y=t.getTop(),this.setWidth(t.getRight()-t.getLeft()),this.setHeight(t.getBottom()-t.getTop()),o.NODE_DIMENSIONS_INCLUDE_LABELS){var e=t.getRight()-t.getLeft(),n=t.getBottom()-t.getTop();this.labelWidth>e&&(this.rect.x-=(this.labelWidth-e)/2,this.setWidth(this.labelWidth)),this.labelHeight>n&&("center"==this.labelPos?this.rect.y-=(this.labelHeight-n)/2:"top"==this.labelPos&&(this.rect.y-=this.labelHeight-n),this.setHeight(this.labelHeight))}}},l.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==a.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},l.prototype.transform=function(t){var e=this.rect.x;e>o.WORLD_BOUNDARY?e=o.WORLD_BOUNDARY:e<-o.WORLD_BOUNDARY&&(e=-o.WORLD_BOUNDARY);var n=this.rect.y;n>o.WORLD_BOUNDARY?n=o.WORLD_BOUNDARY:n<-o.WORLD_BOUNDARY&&(n=-o.WORLD_BOUNDARY);var i=new c(e,n),a=t.inverseTransformPoint(i);this.setLocation(a.x,a.y)},l.prototype.getLeft=function(){return this.rect.x},l.prototype.getRight=function(){return this.rect.x+this.rect.width},l.prototype.getTop=function(){return this.rect.y},l.prototype.getBottom=function(){return this.rect.y+this.rect.height},l.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},t.exports=l},function(t,e,n){function i(t,e){null==t&&null==e?(this.x=0,this.y=0):(this.x=t,this.y=e)}i.prototype.getX=function(){return this.x},i.prototype.getY=function(){return this.y},i.prototype.setX=function(t){this.x=t},i.prototype.setY=function(t){this.y=t},i.prototype.getDifference=function(t){return new DimensionD(this.x-t.x,this.y-t.y)},i.prototype.getCopy=function(){return new i(this.x,this.y)},i.prototype.translate=function(t){return this.x+=t.width,this.y+=t.height,this},t.exports=i},function(t,e,n){var i=n(2),a=n(10),r=n(0),o=n(6),s=n(3),c=n(1),l=n(13),u=n(12),d=n(11);function h(t,e,n){i.call(this,n),this.estimatedSize=a.MIN_VALUE,this.margin=r.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=t,null!=e&&e instanceof o?this.graphManager=e:null!=e&&e instanceof Layout&&(this.graphManager=e.graphManager)}for(var f in h.prototype=Object.create(i.prototype),i)h[f]=i[f];h.prototype.getNodes=function(){return this.nodes},h.prototype.getEdges=function(){return this.edges},h.prototype.getGraphManager=function(){return this.graphManager},h.prototype.getParent=function(){return this.parent},h.prototype.getLeft=function(){return this.left},h.prototype.getRight=function(){return this.right},h.prototype.getTop=function(){return this.top},h.prototype.getBottom=function(){return this.bottom},h.prototype.isConnected=function(){return this.isConnected},h.prototype.add=function(t,e,n){if(null==e&&null==n){var i=t;if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(i)>-1)throw"Node already in graph!";return i.owner=this,this.getNodes().push(i),i}var a=t;if(!(this.getNodes().indexOf(e)>-1&&this.getNodes().indexOf(n)>-1))throw"Source or target not in graph!";if(e.owner!=n.owner||e.owner!=this)throw"Both owners must be this graph!";return e.owner!=n.owner?null:(a.source=e,a.target=n,a.isInterGraph=!1,this.getEdges().push(a),e.edges.push(a),n!=e&&n.edges.push(a),a)},h.prototype.remove=function(t){var e=t;if(t instanceof s){if(null==e)throw"Node is null!";if(null==e.owner||e.owner!=this)throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var n=e.edges.slice(),i=n.length,a=0;a<i;a++)(r=n[a]).isInterGraph?this.graphManager.remove(r):r.source.owner.remove(r);if(-1==(o=this.nodes.indexOf(e)))throw"Node not in owner node list!";this.nodes.splice(o,1)}else if(t instanceof c){var r;if(null==(r=t))throw"Edge is null!";if(null==r.source||null==r.target)throw"Source and/or target is null!";if(null==r.source.owner||null==r.target.owner||r.source.owner!=this||r.target.owner!=this)throw"Source and/or target owner is invalid!";var o,l=r.source.edges.indexOf(r),u=r.target.edges.indexOf(r);if(!(l>-1&&u>-1))throw"Source and/or target doesn't know this edge!";if(r.source.edges.splice(l,1),r.target!=r.source&&r.target.edges.splice(u,1),-1==(o=r.source.owner.getEdges().indexOf(r)))throw"Not in owner's edge list!";r.source.owner.getEdges().splice(o,1)}},h.prototype.updateLeftTop=function(){for(var t,e,n,i=a.MAX_VALUE,r=a.MAX_VALUE,o=this.getNodes(),s=o.length,c=0;c<s;c++){var l=o[c];i>(t=l.getTop())&&(i=t),r>(e=l.getLeft())&&(r=e)}return i==a.MAX_VALUE?null:(n=null!=o[0].getParent().paddingLeft?o[0].getParent().paddingLeft:this.margin,this.left=r-n,this.top=i-n,new u(this.left,this.top))},h.prototype.updateBounds=function(t){for(var e,n,i,r,o,s=a.MAX_VALUE,c=-a.MAX_VALUE,u=a.MAX_VALUE,d=-a.MAX_VALUE,h=this.nodes,f=h.length,g=0;g<f;g++){var p=h[g];t&&null!=p.child&&p.updateBounds(),s>(e=p.getLeft())&&(s=e),c<(n=p.getRight())&&(c=n),u>(i=p.getTop())&&(u=i),d<(r=p.getBottom())&&(d=r)}var b=new l(s,u,c-s,d-u);s==a.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),o=null!=h[0].getParent().paddingLeft?h[0].getParent().paddingLeft:this.margin,this.left=b.x-o,this.right=b.x+b.width+o,this.top=b.y-o,this.bottom=b.y+b.height+o},h.calculateBounds=function(t){for(var e,n,i,r,o=a.MAX_VALUE,s=-a.MAX_VALUE,c=a.MAX_VALUE,u=-a.MAX_VALUE,d=t.length,h=0;h<d;h++){var f=t[h];o>(e=f.getLeft())&&(o=e),s<(n=f.getRight())&&(s=n),c>(i=f.getTop())&&(c=i),u<(r=f.getBottom())&&(u=r)}return new l(o,c,s-o,u-c)},h.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},h.prototype.getEstimatedSize=function(){if(this.estimatedSize==a.MIN_VALUE)throw"assert failed";return this.estimatedSize},h.prototype.calcEstimatedSize=function(){for(var t=0,e=this.nodes,n=e.length,i=0;i<n;i++)t+=e[i].calcEstimatedSize();return this.estimatedSize=0==t?r.EMPTY_COMPOUND_NODE_SIZE:t/Math.sqrt(this.nodes.length),this.estimatedSize},h.prototype.updateConnected=function(){var t=this;if(0!=this.nodes.length){var e,n,i=new d,a=new Set,r=this.nodes[0];for(r.withChildren().forEach((function(t){i.push(t),a.add(t)}));0!==i.length;)for(var o=(e=(r=i.shift()).getEdges()).length,s=0;s<o;s++)null==(n=e[s].getOtherEndInGraph(r,this))||a.has(n)||n.withChildren().forEach((function(t){i.push(t),a.add(t)}));if(this.isConnected=!1,a.size>=this.nodes.length){var c=0;a.forEach((function(e){e.owner==t&&c++})),c==this.nodes.length&&(this.isConnected=!0)}}else this.isConnected=!0},t.exports=h},function(t,e,n){var i,a=n(1);function r(t){i=n(5),this.layout=t,this.graphs=[],this.edges=[]}r.prototype.addRoot=function(){var t=this.layout.newGraph(),e=this.layout.newNode(null),n=this.add(t,e);return this.setRootGraph(n),this.rootGraph},r.prototype.add=function(t,e,n,i,a){if(null==n&&null==i&&null==a){if(null==t)throw"Graph is null!";if(null==e)throw"Parent node is null!";if(this.graphs.indexOf(t)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(t),null!=t.parent)throw"Already has a parent!";if(null!=e.child)throw"Already has a child!";return t.parent=e,e.child=t,t}a=n,n=t;var r=(i=e).getOwner(),o=a.getOwner();if(null==r||r.getGraphManager()!=this)throw"Source not in this graph mgr!";if(null==o||o.getGraphManager()!=this)throw"Target not in this graph mgr!";if(r==o)return n.isInterGraph=!1,r.add(n,i,a);if(n.isInterGraph=!0,n.source=i,n.target=a,this.edges.indexOf(n)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(n),null==n.source||null==n.target)throw"Edge source and/or target is null!";if(-1!=n.source.edges.indexOf(n)||-1!=n.target.edges.indexOf(n))throw"Edge already in source and/or target incidency list!";return n.source.edges.push(n),n.target.edges.push(n),n},r.prototype.remove=function(t){if(t instanceof i){var e=t;if(e.getGraphManager()!=this)throw"Graph not in this graph mgr";if(e!=this.rootGraph&&(null==e.parent||e.parent.graphManager!=this))throw"Invalid parent node!";for(var n,r=[],o=(r=r.concat(e.getEdges())).length,s=0;s<o;s++)n=r[s],e.remove(n);var c,l=[];for(o=(l=l.concat(e.getNodes())).length,s=0;s<o;s++)c=l[s],e.remove(c);e==this.rootGraph&&this.setRootGraph(null);var u=this.graphs.indexOf(e);this.graphs.splice(u,1),e.parent=null}else if(t instanceof a){if(null==(n=t))throw"Edge is null!";if(!n.isInterGraph)throw"Not an inter-graph edge!";if(null==n.source||null==n.target)throw"Source and/or target is null!";if(-1==n.source.edges.indexOf(n)||-1==n.target.edges.indexOf(n))throw"Source and/or target doesn't know this edge!";if(u=n.source.edges.indexOf(n),n.source.edges.splice(u,1),u=n.target.edges.indexOf(n),n.target.edges.splice(u,1),null==n.source.owner||null==n.source.owner.getGraphManager())throw"Edge owner graph or owner graph manager is null!";if(-1==n.source.owner.getGraphManager().edges.indexOf(n))throw"Not in owner graph manager's edge list!";u=n.source.owner.getGraphManager().edges.indexOf(n),n.source.owner.getGraphManager().edges.splice(u,1)}},r.prototype.updateBounds=function(){this.rootGraph.updateBounds(!0)},r.prototype.getGraphs=function(){return this.graphs},r.prototype.getAllNodes=function(){if(null==this.allNodes){for(var t=[],e=this.getGraphs(),n=e.length,i=0;i<n;i++)t=t.concat(e[i].getNodes());this.allNodes=t}return this.allNodes},r.prototype.resetAllNodes=function(){this.allNodes=null},r.prototype.resetAllEdges=function(){this.allEdges=null},r.prototype.resetAllNodesToApplyGravitation=function(){this.allNodesToApplyGravitation=null},r.prototype.getAllEdges=function(){if(null==this.allEdges){var t=[],e=this.getGraphs();e.length;for(var n=0;n<e.length;n++)t=t.concat(e[n].getEdges());t=t.concat(this.edges),this.allEdges=t}return this.allEdges},r.prototype.getAllNodesToApplyGravitation=function(){return this.allNodesToApplyGravitation},r.prototype.setAllNodesToApplyGravitation=function(t){if(null!=this.allNodesToApplyGravitation)throw"assert failed";this.allNodesToApplyGravitation=t},r.prototype.getRoot=function(){return this.rootGraph},r.prototype.setRootGraph=function(t){if(t.getGraphManager()!=this)throw"Root not in this graph mgr!";this.rootGraph=t,null==t.parent&&(t.parent=this.layout.newNode("Root node"))},r.prototype.getLayout=function(){return this.layout},r.prototype.isOneAncestorOfOther=function(t,e){if(null==t||null==e)throw"assert failed";if(t==e)return!0;for(var n,i=t.getOwner();null!=(n=i.getParent());){if(n==e)return!0;if(null==(i=n.getOwner()))break}for(i=e.getOwner();null!=(n=i.getParent());){if(n==t)return!0;if(null==(i=n.getOwner()))break}return!1},r.prototype.calcLowestCommonAncestors=function(){for(var t,e,n,i,a,r=this.getAllEdges(),o=r.length,s=0;s<o;s++)if(e=(t=r[s]).source,n=t.target,t.lca=null,t.sourceInLca=e,t.targetInLca=n,e!=n){for(i=e.getOwner();null==t.lca;){for(t.targetInLca=n,a=n.getOwner();null==t.lca;){if(a==i){t.lca=a;break}if(a==this.rootGraph)break;if(null!=t.lca)throw"assert failed";t.targetInLca=a.getParent(),a=t.targetInLca.getOwner()}if(i==this.rootGraph)break;null==t.lca&&(t.sourceInLca=i.getParent(),i=t.sourceInLca.getOwner())}if(null==t.lca)throw"assert failed"}else t.lca=e.getOwner()},r.prototype.calcLowestCommonAncestor=function(t,e){if(t==e)return t.getOwner();for(var n=t.getOwner();null!=n;){for(var i=e.getOwner();null!=i;){if(i==n)return i;i=i.getParent().getOwner()}n=n.getParent().getOwner()}return n},r.prototype.calcInclusionTreeDepths=function(t,e){null==t&&null==e&&(t=this.rootGraph,e=1);for(var n,i=t.getNodes(),a=i.length,r=0;r<a;r++)(n=i[r]).inclusionTreeDepth=e,null!=n.child&&this.calcInclusionTreeDepths(n.child,e+1)},r.prototype.includesInvalidEdge=function(){for(var t,e=this.edges.length,n=0;n<e;n++)if(t=this.edges[n],this.isOneAncestorOfOther(t.source,t.target))return!0;return!1},t.exports=r},function(t,e,n){var i=n(0);function a(){}for(var r in i)a[r]=i[r];a.MAX_ITERATIONS=2500,a.DEFAULT_EDGE_LENGTH=50,a.DEFAULT_SPRING_STRENGTH=.45,a.DEFAULT_REPULSION_STRENGTH=4500,a.DEFAULT_GRAVITY_STRENGTH=.4,a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,a.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,a.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,a.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,a.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,a.COOLING_ADAPTATION_FACTOR=.33,a.ADAPTATION_LOWER_NODE_LIMIT=1e3,a.ADAPTATION_UPPER_NODE_LIMIT=5e3,a.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,a.MAX_NODE_DISPLACEMENT=3*a.MAX_NODE_DISPLACEMENT_INCREMENTAL,a.MIN_REPULSION_DIST=a.DEFAULT_EDGE_LENGTH/10,a.CONVERGENCE_CHECK_PERIOD=100,a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,a.MIN_EDGE_LENGTH=1,a.GRID_CALCULATION_CHECK_PERIOD=10,t.exports=a},function(t,e,n){var i=n(12);function a(){}a.calcSeparationAmount=function(t,e,n,i){if(!t.intersects(e))throw"assert failed";var a=new Array(2);this.decideDirectionsForOverlappingNodes(t,e,a),n[0]=Math.min(t.getRight(),e.getRight())-Math.max(t.x,e.x),n[1]=Math.min(t.getBottom(),e.getBottom())-Math.max(t.y,e.y),t.getX()<=e.getX()&&t.getRight()>=e.getRight()?n[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight()):e.getX()<=t.getX()&&e.getRight()>=t.getRight()&&(n[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight())),t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()?n[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()):e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()&&(n[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom()));var r=Math.abs((e.getCenterY()-t.getCenterY())/(e.getCenterX()-t.getCenterX()));e.getCenterY()===t.getCenterY()&&e.getCenterX()===t.getCenterX()&&(r=1);var o=r*n[0],s=n[1]/r;n[0]<s?s=n[0]:o=n[1],n[0]=-1*a[0]*(s/2+i),n[1]=-1*a[1]*(o/2+i)},a.decideDirectionsForOverlappingNodes=function(t,e,n){t.getCenterX()<e.getCenterX()?n[0]=-1:n[0]=1,t.getCenterY()<e.getCenterY()?n[1]=-1:n[1]=1},a.getIntersection2=function(t,e,n){var i=t.getCenterX(),a=t.getCenterY(),r=e.getCenterX(),o=e.getCenterY();if(t.intersects(e))return n[0]=i,n[1]=a,n[2]=r,n[3]=o,!0;var s=t.getX(),c=t.getY(),l=t.getRight(),u=t.getX(),d=t.getBottom(),h=t.getRight(),f=t.getWidthHalf(),g=t.getHeightHalf(),p=e.getX(),b=e.getY(),m=e.getRight(),y=e.getX(),v=e.getBottom(),w=e.getRight(),x=e.getWidthHalf(),R=e.getHeightHalf(),_=!1,k=!1;if(i===r){if(a>o)return n[0]=i,n[1]=c,n[2]=r,n[3]=v,!1;if(a<o)return n[0]=i,n[1]=d,n[2]=r,n[3]=b,!1}else if(a===o){if(i>r)return n[0]=s,n[1]=a,n[2]=m,n[3]=o,!1;if(i<r)return n[0]=l,n[1]=a,n[2]=p,n[3]=o,!1}else{var E=t.height/t.width,C=e.height/e.width,S=(o-a)/(r-i),T=void 0,A=void 0,D=void 0,I=void 0,L=void 0,O=void 0;if(-E===S?i>r?(n[0]=u,n[1]=d,_=!0):(n[0]=l,n[1]=c,_=!0):E===S&&(i>r?(n[0]=s,n[1]=c,_=!0):(n[0]=h,n[1]=d,_=!0)),-C===S?r>i?(n[2]=y,n[3]=v,k=!0):(n[2]=m,n[3]=b,k=!0):C===S&&(r>i?(n[2]=p,n[3]=b,k=!0):(n[2]=w,n[3]=v,k=!0)),_&&k)return!1;if(i>r?a>o?(T=this.getCardinalDirection(E,S,4),A=this.getCardinalDirection(C,S,2)):(T=this.getCardinalDirection(-E,S,3),A=this.getCardinalDirection(-C,S,1)):a>o?(T=this.getCardinalDirection(-E,S,1),A=this.getCardinalDirection(-C,S,3)):(T=this.getCardinalDirection(E,S,2),A=this.getCardinalDirection(C,S,4)),!_)switch(T){case 1:I=c,D=i+-g/S,n[0]=D,n[1]=I;break;case 2:D=h,I=a+f*S,n[0]=D,n[1]=I;break;case 3:I=d,D=i+g/S,n[0]=D,n[1]=I;break;case 4:D=u,I=a+-f*S,n[0]=D,n[1]=I}if(!k)switch(A){case 1:O=b,L=r+-R/S,n[2]=L,n[3]=O;break;case 2:L=w,O=o+x*S,n[2]=L,n[3]=O;break;case 3:O=v,L=r+R/S,n[2]=L,n[3]=O;break;case 4:L=y,O=o+-x*S,n[2]=L,n[3]=O}}return!1},a.getCardinalDirection=function(t,e,n){return t>e?n:1+n%4},a.getIntersection=function(t,e,n,a){if(null==a)return this.getIntersection2(t,e,n);var r=t.x,o=t.y,s=e.x,c=e.y,l=n.x,u=n.y,d=a.x,h=a.y,f=void 0,g=void 0,p=void 0,b=void 0,m=void 0,y=void 0,v=void 0;return m=s*o-r*c,y=d*u-l*h,0==(v=(f=c-o)*(b=l-d)-(g=h-u)*(p=r-s))?null:new i((p*y-b*m)/v,(g*m-f*y)/v)},a.angleOfVector=function(t,e,n,i){var a=void 0;return t!==n?(a=Math.atan((i-e)/(n-t)),n<t?a+=Math.PI:i<e&&(a+=this.TWO_PI)):a=i<e?this.ONE_AND_HALF_PI:this.HALF_PI,a},a.doIntersect=function(t,e,n,i){var a=t.x,r=t.y,o=e.x,s=e.y,c=n.x,l=n.y,u=i.x,d=i.y,h=(o-a)*(d-l)-(u-c)*(s-r);if(0===h)return!1;var f=((d-l)*(u-a)+(c-u)*(d-r))/h,g=((r-s)*(u-a)+(o-a)*(d-r))/h;return 0<f&&f<1&&0<g&&g<1},a.HALF_PI=.5*Math.PI,a.ONE_AND_HALF_PI=1.5*Math.PI,a.TWO_PI=2*Math.PI,a.THREE_PI=3*Math.PI,t.exports=a},function(t,e,n){function i(){}i.sign=function(t){return t>0?1:t<0?-1:0},i.floor=function(t){return t<0?Math.ceil(t):Math.floor(t)},i.ceil=function(t){return t<0?Math.floor(t):Math.ceil(t)},t.exports=i},function(t,e,n){function i(){}i.MAX_VALUE=2147483647,i.MIN_VALUE=-2147483648,t.exports=i},function(t,e,n){var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}();function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(t){return{value:t,next:null,prev:null}},o=function(t,e,n,i){return null!==t?t.next=e:i.head=e,null!==n?n.prev=e:i.tail=e,e.prev=t,e.next=n,i.length++,e},s=function(t,e){var n=t.prev,i=t.next;return null!==n?n.next=i:e.head=i,null!==i?i.prev=n:e.tail=n,t.prev=t.next=null,e.length--,t},c=function(){function t(e){var n=this;a(this,t),this.length=0,this.head=null,this.tail=null,null!=e&&e.forEach((function(t){return n.push(t)}))}return i(t,[{key:"size",value:function(){return this.length}},{key:"insertBefore",value:function(t,e){return o(e.prev,r(t),e,this)}},{key:"insertAfter",value:function(t,e){return o(e,r(t),e.next,this)}},{key:"insertNodeBefore",value:function(t,e){return o(e.prev,t,e,this)}},{key:"insertNodeAfter",value:function(t,e){return o(e,t,e.next,this)}},{key:"push",value:function(t){return o(this.tail,r(t),null,this)}},{key:"unshift",value:function(t){return o(null,r(t),this.head,this)}},{key:"remove",value:function(t){return s(t,this)}},{key:"pop",value:function(){return s(this.tail,this).value}},{key:"popNode",value:function(){return s(this.tail,this)}},{key:"shift",value:function(){return s(this.head,this).value}},{key:"shiftNode",value:function(){return s(this.head,this)}},{key:"get_object_at",value:function(t){if(t<=this.length()){for(var e=1,n=this.head;e<t;)n=n.next,e++;return n.value}}},{key:"set_object_at",value:function(t,e){if(t<=this.length()){for(var n=1,i=this.head;n<t;)i=i.next,n++;i.value=e}}}]),t}();t.exports=c},function(t,e,n){function i(t,e,n){this.x=null,this.y=null,null==t&&null==e&&null==n?(this.x=0,this.y=0):"number"==typeof t&&"number"==typeof e&&null==n?(this.x=t,this.y=e):"Point"==t.constructor.name&&null==e&&null==n&&(n=t,this.x=n.x,this.y=n.y)}i.prototype.getX=function(){return this.x},i.prototype.getY=function(){return this.y},i.prototype.getLocation=function(){return new i(this.x,this.y)},i.prototype.setLocation=function(t,e,n){"Point"==t.constructor.name&&null==e&&null==n?(n=t,this.setLocation(n.x,n.y)):"number"==typeof t&&"number"==typeof e&&null==n&&(parseInt(t)==t&&parseInt(e)==e?this.move(t,e):(this.x=Math.floor(t+.5),this.y=Math.floor(e+.5)))},i.prototype.move=function(t,e){this.x=t,this.y=e},i.prototype.translate=function(t,e){this.x+=t,this.y+=e},i.prototype.equals=function(t){if("Point"==t.constructor.name){var e=t;return this.x==e.x&&this.y==e.y}return this==t},i.prototype.toString=function(){return(new i).constructor.name+"[x="+this.x+",y="+this.y+"]"},t.exports=i},function(t,e,n){function i(t,e,n,i){this.x=0,this.y=0,this.width=0,this.height=0,null!=t&&null!=e&&null!=n&&null!=i&&(this.x=t,this.y=e,this.width=n,this.height=i)}i.prototype.getX=function(){return this.x},i.prototype.setX=function(t){this.x=t},i.prototype.getY=function(){return this.y},i.prototype.setY=function(t){this.y=t},i.prototype.getWidth=function(){return this.width},i.prototype.setWidth=function(t){this.width=t},i.prototype.getHeight=function(){return this.height},i.prototype.setHeight=function(t){this.height=t},i.prototype.getRight=function(){return this.x+this.width},i.prototype.getBottom=function(){return this.y+this.height},i.prototype.intersects=function(t){return!(this.getRight()<t.x||this.getBottom()<t.y||t.getRight()<this.x||t.getBottom()<this.y)},i.prototype.getCenterX=function(){return this.x+this.width/2},i.prototype.getMinX=function(){return this.getX()},i.prototype.getMaxX=function(){return this.getX()+this.width},i.prototype.getCenterY=function(){return this.y+this.height/2},i.prototype.getMinY=function(){return this.getY()},i.prototype.getMaxY=function(){return this.getY()+this.height},i.prototype.getWidthHalf=function(){return this.width/2},i.prototype.getHeightHalf=function(){return this.height/2},t.exports=i},function(t,e,n){var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function a(){}a.lastID=0,a.createID=function(t){return a.isPrimitive(t)?t:(null!=t.uniqueID||(t.uniqueID=a.getString(),a.lastID++),t.uniqueID)},a.getString=function(t){return null==t&&(t=a.lastID),"Object#"+t},a.isPrimitive=function(t){var e=typeof t>"u"?"undefined":i(t);return null==t||"object"!=e&&"function"!=e},t.exports=a},function(t,e,n){function i(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}var a=n(0),r=n(6),o=n(3),s=n(1),c=n(5),l=n(4),u=n(17),d=n(27);function h(t){d.call(this),this.layoutQuality=a.QUALITY,this.createBendsAsNeeded=a.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=a.DEFAULT_INCREMENTAL,this.animationOnLayout=a.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=a.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=a.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=a.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new r(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,null!=t&&(this.isRemoteUse=t)}h.RANDOM_SEED=1,h.prototype=Object.create(d.prototype),h.prototype.getGraphManager=function(){return this.graphManager},h.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},h.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},h.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},h.prototype.newGraphManager=function(){var t=new r(this);return this.graphManager=t,t},h.prototype.newGraph=function(t){return new c(null,this.graphManager,t)},h.prototype.newNode=function(t){return new o(this.graphManager,t)},h.prototype.newEdge=function(t){return new s(null,null,t)},h.prototype.checkLayoutSuccess=function(){return null==this.graphManager.getRoot()||0==this.graphManager.getRoot().getNodes().length||this.graphManager.includesInvalidEdge()},h.prototype.runLayout=function(){var t;return this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters(),t=!this.checkLayoutSuccess()&&this.layout(),"during"!==a.ANIMATE&&(t&&(this.isSubLayout||this.doPostLayout()),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,t)},h.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},h.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var t=this.graphManager.getAllEdges(),e=0;e<t.length;e++)t[e];var n=this.graphManager.getRoot().getNodes();for(e=0;e<n.length;e++)n[e];this.update(this.graphManager.getRoot())}},h.prototype.update=function(t){if(null==t)this.update2();else if(t instanceof o){var e=t;if(null!=e.getChild())for(var n=e.getChild().getNodes(),i=0;i<n.length;i++)update(n[i]);null!=e.vGraphObject&&e.vGraphObject.update(e)}else if(t instanceof s){var a=t;null!=a.vGraphObject&&a.vGraphObject.update(a)}else if(t instanceof c){var r=t;null!=r.vGraphObject&&r.vGraphObject.update(r)}},h.prototype.initParameters=function(){this.isSubLayout||(this.layoutQuality=a.QUALITY,this.animationDuringLayout=a.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=a.DEFAULT_ANIMATION_PERIOD,this.animationOnLayout=a.DEFAULT_ANIMATION_ON_LAYOUT,this.incremental=a.DEFAULT_INCREMENTAL,this.createBendsAsNeeded=a.DEFAULT_CREATE_BENDS_AS_NEEDED,this.uniformLeafNodeSizes=a.DEFAULT_UNIFORM_LEAF_NODE_SIZES),this.animationDuringLayout&&(this.animationOnLayout=!1)},h.prototype.transform=function(t){if(null==t)this.transform(new l(0,0));else{var e=new u,n=this.graphManager.getRoot().updateLeftTop();if(null!=n){e.setWorldOrgX(t.x),e.setWorldOrgY(t.y),e.setDeviceOrgX(n.x),e.setDeviceOrgY(n.y);for(var i=this.getAllNodes(),a=0;a<i.length;a++)i[a].transform(e)}}},h.prototype.positionNodesRandomly=function(t){if(null==t)this.positionNodesRandomly(this.getGraphManager().getRoot()),this.getGraphManager().getRoot().updateBounds(!0);else for(var e,n,i=t.getNodes(),a=0;a<i.length;a++)null==(n=(e=i[a]).getChild())||0==n.getNodes().length?e.scatter():(this.positionNodesRandomly(n),e.updateBounds())},h.prototype.getFlatForest=function(){for(var t=[],e=!0,n=this.graphManager.getRoot().getNodes(),a=!0,r=0;r<n.length;r++)null!=n[r].getChild()&&(a=!1);if(!a)return t;var o=new Set,s=[],c=new Map,l=[];for(l=l.concat(n);l.length>0&&e;){for(s.push(l[0]);s.length>0&&e;){var u=s[0];s.splice(0,1),o.add(u);var d=u.getEdges();for(r=0;r<d.length;r++){var h=d[r].getOtherEnd(u);if(c.get(u)!=h){if(o.has(h)){e=!1;break}s.push(h),c.set(h,u)}}}if(e){var f=[].concat(i(o));for(t.push(f),r=0;r<f.length;r++){var g=f[r],p=l.indexOf(g);p>-1&&l.splice(p,1)}o=new Set,c=new Map}else t=[]}return t},h.prototype.createDummyNodesForBendpoints=function(t){for(var e=[],n=t.source,i=this.graphManager.calcLowestCommonAncestor(t.source,t.target),a=0;a<t.bendpoints.length;a++){var r=this.newNode(null);r.setRect(new Point(0,0),new Dimension(1,1)),i.add(r);var o=this.newEdge(null);this.graphManager.add(o,n,r),e.add(r),n=r}return o=this.newEdge(null),this.graphManager.add(o,n,t.target),this.edgeToDummyNodes.set(t,e),t.isInterGraph()?this.graphManager.remove(t):i.remove(t),e},h.prototype.createBendpointsFromDummyNodes=function(){var t=[];t=t.concat(this.graphManager.getAllEdges()),t=[].concat(i(this.edgeToDummyNodes.keys())).concat(t);for(var e=0;e<t.length;e++){var n=t[e];if(n.bendpoints.length>0){for(var a=this.edgeToDummyNodes.get(n),r=0;r<a.length;r++){var o=a[r],s=new l(o.getCenterX(),o.getCenterY()),c=n.bendpoints.get(r);c.x=s.x,c.y=s.y,o.getOwner().remove(o)}this.graphManager.add(n,n.source,n.target)}}},h.transform=function(t,e,n,i){if(null!=n&&null!=i){var a=e;return t<=50?a-=(e-e/n)/50*(50-t):a+=(e*i-e)/50*(t-50),a}var r,o;return t<=50?(r=9*e/500,o=e/10):(r=9*e/50,o=-8*e),r*t+o},h.findCenterOfTree=function(t){var e=[];e=e.concat(t);var n=[],i=new Map,a=!1,r=null;(1==e.length||2==e.length)&&(a=!0,r=e[0]);for(var o=0;o<e.length;o++){var s=(u=e[o]).getNeighborsList().size;i.set(u,u.getNeighborsList().size),1==s&&n.push(u)}var c=[];for(c=c.concat(n);!a;){var l=[];for(l=l.concat(c),c=[],o=0;o<e.length;o++){var u=e[o],d=e.indexOf(u);d>=0&&e.splice(d,1),u.getNeighborsList().forEach((function(t){if(n.indexOf(t)<0){var e=i.get(t)-1;1==e&&c.push(t),i.set(t,e)}}))}n=n.concat(c),(1==e.length||2==e.length)&&(a=!0,r=e[0])}return r},h.prototype.setGraphManager=function(t){this.graphManager=t},t.exports=h},function(t,e,n){function i(){}i.seed=1,i.x=0,i.nextDouble=function(){return i.x=1e4*Math.sin(i.seed++),i.x-Math.floor(i.x)},t.exports=i},function(t,e,n){var i=n(4);function a(t,e){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}a.prototype.getWorldOrgX=function(){return this.lworldOrgX},a.prototype.setWorldOrgX=function(t){this.lworldOrgX=t},a.prototype.getWorldOrgY=function(){return this.lworldOrgY},a.prototype.setWorldOrgY=function(t){this.lworldOrgY=t},a.prototype.getWorldExtX=function(){return this.lworldExtX},a.prototype.setWorldExtX=function(t){this.lworldExtX=t},a.prototype.getWorldExtY=function(){return this.lworldExtY},a.prototype.setWorldExtY=function(t){this.lworldExtY=t},a.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},a.prototype.setDeviceOrgX=function(t){this.ldeviceOrgX=t},a.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},a.prototype.setDeviceOrgY=function(t){this.ldeviceOrgY=t},a.prototype.getDeviceExtX=function(){return this.ldeviceExtX},a.prototype.setDeviceExtX=function(t){this.ldeviceExtX=t},a.prototype.getDeviceExtY=function(){return this.ldeviceExtY},a.prototype.setDeviceExtY=function(t){this.ldeviceExtY=t},a.prototype.transformX=function(t){var e=0,n=this.lworldExtX;return 0!=n&&(e=this.ldeviceOrgX+(t-this.lworldOrgX)*this.ldeviceExtX/n),e},a.prototype.transformY=function(t){var e=0,n=this.lworldExtY;return 0!=n&&(e=this.ldeviceOrgY+(t-this.lworldOrgY)*this.ldeviceExtY/n),e},a.prototype.inverseTransformX=function(t){var e=0,n=this.ldeviceExtX;return 0!=n&&(e=this.lworldOrgX+(t-this.ldeviceOrgX)*this.lworldExtX/n),e},a.prototype.inverseTransformY=function(t){var e=0,n=this.ldeviceExtY;return 0!=n&&(e=this.lworldOrgY+(t-this.ldeviceOrgY)*this.lworldExtY/n),e},a.prototype.inverseTransformPoint=function(t){return new i(this.inverseTransformX(t.x),this.inverseTransformY(t.y))},t.exports=a},function(t,e,n){function i(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}var a=n(15),r=n(7),o=n(0),s=n(8),c=n(9);function l(){a.call(this),this.useSmartIdealEdgeLengthCalculation=r.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.idealEdgeLength=r.DEFAULT_EDGE_LENGTH,this.springConstant=r.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=r.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=r.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=r.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=r.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=r.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*r.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=r.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=r.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=r.MAX_ITERATIONS}for(var u in l.prototype=Object.create(a.prototype),a)l[u]=a[u];l.prototype.initParameters=function(){a.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=r.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},l.prototype.calcIdealEdgeLengths=function(){for(var t,e,n,i,a,s,c=this.getGraphManager().getAllEdges(),l=0;l<c.length;l++)(t=c[l]).idealLength=this.idealEdgeLength,t.isInterGraph&&(n=t.getSource(),i=t.getTarget(),a=t.getSourceInLca().getEstimatedSize(),s=t.getTargetInLca().getEstimatedSize(),this.useSmartIdealEdgeLengthCalculation&&(t.idealLength+=a+s-2*o.SIMPLE_NODE_SIZE),e=t.getLca().getInclusionTreeDepth(),t.idealLength+=r.DEFAULT_EDGE_LENGTH*r.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR*(n.getInclusionTreeDepth()+i.getInclusionTreeDepth()-2*e))},l.prototype.initSpringEmbedder=function(){var t=this.getAllNodes().length;this.incremental?(t>r.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*r.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(t-r.ADAPTATION_LOWER_NODE_LIMIT)/(r.ADAPTATION_UPPER_NODE_LIMIT-r.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-r.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=r.MAX_NODE_DISPLACEMENT_INCREMENTAL):(t>r.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(r.COOLING_ADAPTATION_FACTOR,1-(t-r.ADAPTATION_LOWER_NODE_LIMIT)/(r.ADAPTATION_UPPER_NODE_LIMIT-r.ADAPTATION_LOWER_NODE_LIMIT)*(1-r.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=r.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},l.prototype.calcSpringForces=function(){for(var t,e=this.getAllEdges(),n=0;n<e.length;n++)t=e[n],this.calcSpringForce(t,t.idealLength)},l.prototype.calcRepulsionForces=function(){var t,e,n,i,a,o=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],c=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%r.GRID_CALCULATION_CHECK_PERIOD==1&&o&&this.updateGrid(),a=new Set,t=0;t<c.length;t++)n=c[t],this.calculateRepulsionForceOfANode(n,a,o,s),a.add(n);else for(t=0;t<c.length;t++)for(n=c[t],e=t+1;e<c.length;e++)i=c[e],n.getOwner()==i.getOwner()&&this.calcRepulsionForce(n,i)},l.prototype.calcGravitationalForces=function(){for(var t,e=this.getAllNodesToApplyGravitation(),n=0;n<e.length;n++)t=e[n],this.calcGravitationalForce(t)},l.prototype.moveNodes=function(){for(var t=this.getAllNodes(),e=0;e<t.length;e++)t[e].move()},l.prototype.calcSpringForce=function(t,e){var n,i,a,r,o=t.getSource(),s=t.getTarget();if(this.uniformLeafNodeSizes&&null==o.getChild()&&null==s.getChild())t.updateLengthSimple();else if(t.updateLength(),t.isOverlapingSourceAndTarget)return;0!=(n=t.getLength())&&(a=(i=this.springConstant*(n-e))*(t.lengthX/n),r=i*(t.lengthY/n),o.springForceX+=a,o.springForceY+=r,s.springForceX-=a,s.springForceY-=r)},l.prototype.calcRepulsionForce=function(t,e){var n,i,a,o,l,u,d,h=t.getRect(),f=e.getRect(),g=new Array(2),p=new Array(4);if(h.intersects(f)){s.calcSeparationAmount(h,f,g,r.DEFAULT_EDGE_LENGTH/2),u=2*g[0],d=2*g[1];var b=t.noOfChildren*e.noOfChildren/(t.noOfChildren+e.noOfChildren);t.repulsionForceX-=b*u,t.repulsionForceY-=b*d,e.repulsionForceX+=b*u,e.repulsionForceY+=b*d}else this.uniformLeafNodeSizes&&null==t.getChild()&&null==e.getChild()?(n=f.getCenterX()-h.getCenterX(),i=f.getCenterY()-h.getCenterY()):(s.getIntersection(h,f,p),n=p[2]-p[0],i=p[3]-p[1]),Math.abs(n)<r.MIN_REPULSION_DIST&&(n=c.sign(n)*r.MIN_REPULSION_DIST),Math.abs(i)<r.MIN_REPULSION_DIST&&(i=c.sign(i)*r.MIN_REPULSION_DIST),a=n*n+i*i,o=Math.sqrt(a),u=(l=this.repulsionConstant*t.noOfChildren*e.noOfChildren/a)*n/o,d=l*i/o,t.repulsionForceX-=u,t.repulsionForceY-=d,e.repulsionForceX+=u,e.repulsionForceY+=d},l.prototype.calcGravitationalForce=function(t){var e,n,i,a,r,o,s,c;n=((e=t.getOwner()).getRight()+e.getLeft())/2,i=(e.getTop()+e.getBottom())/2,a=t.getCenterX()-n,r=t.getCenterY()-i,o=Math.abs(a)+t.getWidth()/2,s=Math.abs(r)+t.getHeight()/2,t.getOwner()==this.graphManager.getRoot()?(o>(c=e.getEstimatedSize()*this.gravityRangeFactor)||s>c)&&(t.gravitationForceX=-this.gravityConstant*a,t.gravitationForceY=-this.gravityConstant*r):(o>(c=e.getEstimatedSize()*this.compoundGravityRangeFactor)||s>c)&&(t.gravitationForceX=-this.gravityConstant*a*this.compoundGravityConstant,t.gravitationForceY=-this.gravityConstant*r*this.compoundGravityConstant)},l.prototype.isConverged=function(){var t,e=!1;return this.totalIterations>this.maxIterations/3&&(e=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),t=this.totalDisplacement<this.totalDisplacementThreshold,this.oldTotalDisplacement=this.totalDisplacement,t||e},l.prototype.animate=function(){this.animationDuringLayout&&!this.isSubLayout&&(this.notAnimatedIterations==this.animationPeriod?(this.update(),this.notAnimatedIterations=0):this.notAnimatedIterations++)},l.prototype.calcNoOfChildrenForAllNodes=function(){for(var t,e=this.graphManager.getAllNodes(),n=0;n<e.length;n++)(t=e[n]).noOfChildren=t.getNoOfChildren()},l.prototype.calcGrid=function(t){var e=0,n=0;e=parseInt(Math.ceil((t.getRight()-t.getLeft())/this.repulsionRange)),n=parseInt(Math.ceil((t.getBottom()-t.getTop())/this.repulsionRange));for(var i=new Array(e),a=0;a<e;a++)i[a]=new Array(n);for(a=0;a<e;a++)for(var r=0;r<n;r++)i[a][r]=new Array;return i},l.prototype.addNodeToGrid=function(t,e,n){var i=0,a=0,r=0,o=0;i=parseInt(Math.floor((t.getRect().x-e)/this.repulsionRange)),a=parseInt(Math.floor((t.getRect().width+t.getRect().x-e)/this.repulsionRange)),r=parseInt(Math.floor((t.getRect().y-n)/this.repulsionRange)),o=parseInt(Math.floor((t.getRect().height+t.getRect().y-n)/this.repulsionRange));for(var s=i;s<=a;s++)for(var c=r;c<=o;c++)this.grid[s][c].push(t),t.setGridCoordinates(i,a,r,o)},l.prototype.updateGrid=function(){var t,e,n=this.getAllNodes();for(this.grid=this.calcGrid(this.graphManager.getRoot()),t=0;t<n.length;t++)e=n[t],this.addNodeToGrid(e,this.graphManager.getRoot().getLeft(),this.graphManager.getRoot().getTop())},l.prototype.calculateRepulsionForceOfANode=function(t,e,n,a){if(this.totalIterations%r.GRID_CALCULATION_CHECK_PERIOD==1&&n||a){var o=new Set;t.surrounding=new Array;for(var s,c=this.grid,l=t.startX-1;l<t.finishX+2;l++)for(var u=t.startY-1;u<t.finishY+2;u++)if(!(l<0||u<0||l>=c.length||u>=c[0].length))for(var d=0;d<c[l][u].length;d++)if(s=c[l][u][d],t.getOwner()==s.getOwner()&&t!=s&&!e.has(s)&&!o.has(s)){var h=Math.abs(t.getCenterX()-s.getCenterX())-(t.getWidth()/2+s.getWidth()/2),f=Math.abs(t.getCenterY()-s.getCenterY())-(t.getHeight()/2+s.getHeight()/2);h<=this.repulsionRange&&f<=this.repulsionRange&&o.add(s)}t.surrounding=[].concat(i(o))}for(l=0;l<t.surrounding.length;l++)this.calcRepulsionForce(t,t.surrounding[l])},l.prototype.calcRepulsionRange=function(){return 0},t.exports=l},function(t,e,n){var i=n(1),a=n(7);function r(t,e,n){i.call(this,t,e,n),this.idealLength=a.DEFAULT_EDGE_LENGTH}for(var o in r.prototype=Object.create(i.prototype),i)r[o]=i[o];t.exports=r},function(t,e,n){var i=n(3);function a(t,e,n,a){i.call(this,t,e,n,a),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0,this.startX=0,this.finishX=0,this.startY=0,this.finishY=0,this.surrounding=[]}for(var r in a.prototype=Object.create(i.prototype),i)a[r]=i[r];a.prototype.setGridCoordinates=function(t,e,n,i){this.startX=t,this.finishX=e,this.startY=n,this.finishY=i},t.exports=a},function(t,e,n){function i(t,e){this.width=0,this.height=0,null!==t&&null!==e&&(this.height=e,this.width=t)}i.prototype.getWidth=function(){return this.width},i.prototype.setWidth=function(t){this.width=t},i.prototype.getHeight=function(){return this.height},i.prototype.setHeight=function(t){this.height=t},t.exports=i},function(t,e,n){var i=n(14);function a(){this.map={},this.keys=[]}a.prototype.put=function(t,e){var n=i.createID(t);this.contains(n)||(this.map[n]=e,this.keys.push(t))},a.prototype.contains=function(t){return i.createID(t),null!=this.map[t]},a.prototype.get=function(t){var e=i.createID(t);return this.map[e]},a.prototype.keySet=function(){return this.keys},t.exports=a},function(t,e,n){var i=n(14);function a(){this.set={}}a.prototype.add=function(t){var e=i.createID(t);this.contains(e)||(this.set[e]=t)},a.prototype.remove=function(t){delete this.set[i.createID(t)]},a.prototype.clear=function(){this.set={}},a.prototype.contains=function(t){return this.set[i.createID(t)]==t},a.prototype.isEmpty=function(){return 0===this.size()},a.prototype.size=function(){return Object.keys(this.set).length},a.prototype.addAllTo=function(t){for(var e=Object.keys(this.set),n=e.length,i=0;i<n;i++)t.push(this.set[e[i]])},a.prototype.size=function(){return Object.keys(this.set).length},a.prototype.addAll=function(t){for(var e=t.length,n=0;n<e;n++){var i=t[n];this.add(i)}},t.exports=a},function(t,e,n){var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}();function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=n(11),o=function(){function t(e,n){a(this,t),(null!==n||void 0!==n)&&(this.compareFunction=this._defaultCompareFunction);var i=void 0;i=e instanceof r?e.size():e.length,this._quicksort(e,0,i-1)}return i(t,[{key:"_quicksort",value:function(t,e,n){if(e<n){var i=this._partition(t,e,n);this._quicksort(t,e,i),this._quicksort(t,i+1,n)}}},{key:"_partition",value:function(t,e,n){for(var i=this._get(t,e),a=e,r=n;;){for(;this.compareFunction(i,this._get(t,r));)r--;for(;this.compareFunction(this._get(t,a),i);)a++;if(!(a<r))return r;this._swap(t,a,r),a++,r--}}},{key:"_get",value:function(t,e){return t instanceof r?t.get_object_at(e):t[e]}},{key:"_set",value:function(t,e,n){t instanceof r?t.set_object_at(e,n):t[e]=n}},{key:"_swap",value:function(t,e,n){var i=this._get(t,e);this._set(t,e,this._get(t,n)),this._set(t,n,i)}},{key:"_defaultCompareFunction",value:function(t,e){return e>t}}]),t}();t.exports=o},function(t,e,n){var i=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}();function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;a(this,t),this.sequence1=e,this.sequence2=n,this.match_score=i,this.mismatch_penalty=r,this.gap_penalty=o,this.iMax=e.length+1,this.jMax=n.length+1,this.grid=new Array(this.iMax);for(var s=0;s<this.iMax;s++){this.grid[s]=new Array(this.jMax);for(var c=0;c<this.jMax;c++)this.grid[s][c]=0}this.tracebackGrid=new Array(this.iMax);for(var l=0;l<this.iMax;l++){this.tracebackGrid[l]=new Array(this.jMax);for(var u=0;u<this.jMax;u++)this.tracebackGrid[l][u]=[null,null,null]}this.alignments=[],this.score=-1,this.computeGrids()}return i(t,[{key:"getScore",value:function(){return this.score}},{key:"getAlignments",value:function(){return this.alignments}},{key:"computeGrids",value:function(){for(var t=1;t<this.jMax;t++)this.grid[0][t]=this.grid[0][t-1]+this.gap_penalty,this.tracebackGrid[0][t]=[!1,!1,!0];for(var e=1;e<this.iMax;e++)this.grid[e][0]=this.grid[e-1][0]+this.gap_penalty,this.tracebackGrid[e][0]=[!1,!0,!1];for(var n=1;n<this.iMax;n++)for(var i=1;i<this.jMax;i++){var a=[this.sequence1[n-1]===this.sequence2[i-1]?this.grid[n-1][i-1]+this.match_score:this.grid[n-1][i-1]+this.mismatch_penalty,this.grid[n-1][i]+this.gap_penalty,this.grid[n][i-1]+this.gap_penalty],r=this.arrayAllMaxIndexes(a);this.grid[n][i]=a[r[0]],this.tracebackGrid[n][i]=[r.includes(0),r.includes(1),r.includes(2)]}this.score=this.grid[this.iMax-1][this.jMax-1]}},{key:"alignmentTraceback",value:function(){var t=[];for(t.push({pos:[this.sequence1.length,this.sequence2.length],seq1:"",seq2:""});t[0];){var e=t[0],n=this.tracebackGrid[e.pos[0]][e.pos[1]];n[0]&&t.push({pos:[e.pos[0]-1,e.pos[1]-1],seq1:this.sequence1[e.pos[0]-1]+e.seq1,seq2:this.sequence2[e.pos[1]-1]+e.seq2}),n[1]&&t.push({pos:[e.pos[0]-1,e.pos[1]],seq1:this.sequence1[e.pos[0]-1]+e.seq1,seq2:"-"+e.seq2}),n[2]&&t.push({pos:[e.pos[0],e.pos[1]-1],seq1:"-"+e.seq1,seq2:this.sequence2[e.pos[1]-1]+e.seq2}),0===e.pos[0]&&0===e.pos[1]&&this.alignments.push({sequence1:e.seq1,sequence2:e.seq2}),t.shift()}return this.alignments}},{key:"getAllIndexes",value:function(t,e){for(var n=[],i=-1;-1!==(i=t.indexOf(e,i+1));)n.push(i);return n}},{key:"arrayAllMaxIndexes",value:function(t){return this.getAllIndexes(t,Math.max.apply(null,t))}}]),t}();t.exports=r},function(t,e,n){var i=function(){};i.FDLayout=n(18),i.FDLayoutConstants=n(7),i.FDLayoutEdge=n(19),i.FDLayoutNode=n(20),i.DimensionD=n(21),i.HashMap=n(22),i.HashSet=n(23),i.IGeometry=n(8),i.IMath=n(9),i.Integer=n(10),i.Point=n(12),i.PointD=n(4),i.RandomSeed=n(16),i.RectangleD=n(13),i.Transform=n(17),i.UniqueIDGeneretor=n(14),i.Quicksort=n(24),i.LinkedList=n(11),i.LGraphObject=n(2),i.LGraph=n(5),i.LEdge=n(1),i.LGraphManager=n(6),i.LNode=n(3),i.Layout=n(15),i.LayoutConstants=n(0),i.NeedlemanWunsch=n(25),t.exports=i},function(t,e,n){function i(){this.listeners=[]}var a=i.prototype;a.addListener=function(t,e){this.listeners.push({event:t,callback:e})},a.removeListener=function(t,e){for(var n=this.listeners.length;n>=0;n--){var i=this.listeners[n];i.event===t&&i.callback===e&&this.listeners.splice(n,1)}},a.emit=function(t,e){for(var n=0;n<this.listeners.length;n++){var i=this.listeners[n];t===i.event&&i.callback(e)}},t.exports=i}])},t.exports=n()}(_q)),Rq}function Eq(){return yq||(yq=1,function(t,e){var n;n=function(t){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.i=function(t){return t},n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:i})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=7)}([function(e,n){e.exports=t},function(t,e,n){var i=n(0).FDLayoutConstants;function a(){}for(var r in i)a[r]=i[r];a.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,a.DEFAULT_RADIAL_SEPARATION=i.DEFAULT_EDGE_LENGTH,a.DEFAULT_COMPONENT_SEPERATION=60,a.TILE=!0,a.TILING_PADDING_VERTICAL=10,a.TILING_PADDING_HORIZONTAL=10,a.TREE_REDUCTION_ON_INCREMENTAL=!1,t.exports=a},function(t,e,n){var i=n(0).FDLayoutEdge;function a(t,e,n){i.call(this,t,e,n)}for(var r in a.prototype=Object.create(i.prototype),i)a[r]=i[r];t.exports=a},function(t,e,n){var i=n(0).LGraph;function a(t,e,n){i.call(this,t,e,n)}for(var r in a.prototype=Object.create(i.prototype),i)a[r]=i[r];t.exports=a},function(t,e,n){var i=n(0).LGraphManager;function a(t){i.call(this,t)}for(var r in a.prototype=Object.create(i.prototype),i)a[r]=i[r];t.exports=a},function(t,e,n){var i=n(0).FDLayoutNode,a=n(0).IMath;function r(t,e,n,a){i.call(this,t,e,n,a)}for(var o in r.prototype=Object.create(i.prototype),i)r[o]=i[o];r.prototype.move=function(){var t=this.graphManager.getLayout();this.displacementX=t.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=t.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementX=t.coolingFactor*t.maxNodeDisplacement*a.sign(this.displacementX)),Math.abs(this.displacementY)>t.coolingFactor*t.maxNodeDisplacement&&(this.displacementY=t.coolingFactor*t.maxNodeDisplacement*a.sign(this.displacementY)),null==this.child||0==this.child.getNodes().length?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),t.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},r.prototype.propogateDisplacementToChildren=function(t,e){for(var n,i=this.getChild().getNodes(),a=0;a<i.length;a++)null==(n=i[a]).getChild()?(n.moveBy(t,e),n.displacementX+=t,n.displacementY+=e):n.propogateDisplacementToChildren(t,e)},r.prototype.setPred1=function(t){this.pred1=t},r.prototype.getPred1=function(){return pred1},r.prototype.getPred2=function(){return pred2},r.prototype.setNext=function(t){this.next=t},r.prototype.getNext=function(){return next},r.prototype.setProcessed=function(t){this.processed=t},r.prototype.isProcessed=function(){return processed},t.exports=r},function(t,e,n){var i=n(0).FDLayout,a=n(4),r=n(3),o=n(5),s=n(2),c=n(1),l=n(0).FDLayoutConstants,u=n(0).LayoutConstants,d=n(0).Point,h=n(0).PointD,f=n(0).Layout,g=n(0).Integer,p=n(0).IGeometry,b=n(0).LGraph,m=n(0).Transform;function y(){i.call(this),this.toBeTiled={}}for(var v in y.prototype=Object.create(i.prototype),i)y[v]=i[v];y.prototype.newGraphManager=function(){var t=new a(this);return this.graphManager=t,t},y.prototype.newGraph=function(t){return new r(null,this.graphManager,t)},y.prototype.newNode=function(t){return new o(this.graphManager,t)},y.prototype.newEdge=function(t){return new s(null,null,t)},y.prototype.initParameters=function(){i.prototype.initParameters.call(this,arguments),this.isSubLayout||(c.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=c.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=c.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.springConstant=l.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=l.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=l.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=l.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1,this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/l.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=l.CONVERGENCE_CHECK_PERIOD/this.maxIterations,this.coolingAdjuster=1)},y.prototype.layout=function(){return u.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},y.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental){if(c.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter((function(e){return t.has(e)}));this.graphManager.setAllNodesToApplyGravitation(e)}}else{var n=this.getFlatForest();n.length>0?this.positionNodesRadially(n):(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter((function(e){return t.has(e)})),this.graphManager.setAllNodesToApplyGravitation(e),this.positionNodesRandomly())}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},y.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%l.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),e=this.nodesWithGravity.filter((function(e){return t.has(e)}));this.graphManager.setAllNodesToApplyGravitation(e),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var n=!this.isTreeGrowing&&!this.isGrowthFinished,i=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(n,i),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},y.prototype.getPositionsData=function(){for(var t=this.graphManager.getAllNodes(),e={},n=0;n<t.length;n++){var i=t[n].rect,a=t[n].id;e[a]={id:a,x:i.getCenterX(),y:i.getCenterY(),w:i.width,h:i.height}}return e},y.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var t=!1;if("during"===l.ANIMATE)this.emit("layoutstarted");else{for(;!t;)t=this.tick();this.graphManager.updateBounds()}},y.prototype.calculateNodesToApplyGravitationTo=function(){var t,e,n=[],i=this.graphManager.getGraphs(),a=i.length;for(e=0;e<a;e++)(t=i[e]).updateConnected(),t.isConnected||(n=n.concat(t.getNodes()));return n},y.prototype.createBendpoints=function(){var t=[];t=t.concat(this.graphManager.getAllEdges());var e,n=new Set;for(e=0;e<t.length;e++){var i=t[e];if(!n.has(i)){var a=i.getSource(),r=i.getTarget();if(a==r)i.getBendpoints().push(new h),i.getBendpoints().push(new h),this.createDummyNodesForBendpoints(i),n.add(i);else{var o=[];if(o=(o=o.concat(a.getEdgeListToNode(r))).concat(r.getEdgeListToNode(a)),!n.has(o[0])){var s;if(o.length>1)for(s=0;s<o.length;s++){var c=o[s];c.getBendpoints().push(new h),this.createDummyNodesForBendpoints(c)}o.forEach((function(t){n.add(t)}))}}}if(n.size==t.length)break}},y.prototype.positionNodesRadially=function(t){for(var e=new d(0,0),n=Math.ceil(Math.sqrt(t.length)),i=0,a=0,r=0,o=new h(0,0),s=0;s<t.length;s++){s%n==0&&(r=0,a=i,0!=s&&(a+=c.DEFAULT_COMPONENT_SEPERATION),i=0);var l=t[s],g=f.findCenterOfTree(l);e.x=r,e.y=a,(o=y.radialLayout(l,g,e)).y>i&&(i=Math.floor(o.y)),r=Math.floor(o.x+c.DEFAULT_COMPONENT_SEPERATION)}this.transform(new h(u.WORLD_CENTER_X-o.x/2,u.WORLD_CENTER_Y-o.y/2))},y.radialLayout=function(t,e,n){var i=Math.max(this.maxDiagonalInTree(t),c.DEFAULT_RADIAL_SEPARATION);y.branchRadialLayout(e,null,0,359,0,i);var a=b.calculateBounds(t),r=new m;r.setDeviceOrgX(a.getMinX()),r.setDeviceOrgY(a.getMinY()),r.setWorldOrgX(n.x),r.setWorldOrgY(n.y);for(var o=0;o<t.length;o++)t[o].transform(r);var s=new h(a.getMaxX(),a.getMaxY());return r.inverseTransformPoint(s)},y.branchRadialLayout=function(t,e,n,i,a,r){var o=(i-n+1)/2;o<0&&(o+=180);var s=(o+n)%360*p.TWO_PI/360,c=a*Math.cos(s),l=a*Math.sin(s);t.setCenter(c,l);var u=[],d=(u=u.concat(t.getEdges())).length;null!=e&&d--;for(var h,f=0,g=u.length,b=t.getEdgesBetween(e);b.length>1;){var m=b[0];b.splice(0,1);var v=u.indexOf(m);v>=0&&u.splice(v,1),g--,d--}h=null!=e?(u.indexOf(b[0])+1)%g:0;for(var w=Math.abs(i-n)/d,x=h;f!=d;x=++x%g){var R=u[x].getOtherEnd(t);if(R!=e){var _=(n+f*w)%360,k=(_+w)%360;y.branchRadialLayout(R,t,_,k,a+r,r),f++}}},y.maxDiagonalInTree=function(t){for(var e=g.MIN_VALUE,n=0;n<t.length;n++){var i=t[n].getDiagonal();i>e&&(e=i)}return e},y.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},y.prototype.groupZeroDegreeMembers=function(){var t=this,e={};this.memberGroups={},this.idToDummyNode={};for(var n=[],i=this.graphManager.getAllNodes(),a=0;a<i.length;a++){var r=(s=i[a]).getParent();0===this.getNodeDegreeWithChildren(s)&&(null==r.id||!this.getToBeTiled(r))&&n.push(s)}for(a=0;a<n.length;a++){var s,c=(s=n[a]).getParent().id;typeof e[c]>"u"&&(e[c]=[]),e[c]=e[c].concat(s)}Object.keys(e).forEach((function(n){if(e[n].length>1){var i="DummyCompound_"+n;t.memberGroups[i]=e[n];var a=e[n][0].getParent(),r=new o(t.graphManager);r.id=i,r.paddingLeft=a.paddingLeft||0,r.paddingRight=a.paddingRight||0,r.paddingBottom=a.paddingBottom||0,r.paddingTop=a.paddingTop||0,t.idToDummyNode[i]=r;var s=t.getGraphManager().add(t.newGraph(),r),c=a.getChild();c.add(r);for(var l=0;l<e[n].length;l++){var u=e[n][l];c.remove(u),s.add(u)}}}))},y.prototype.clearCompounds=function(){var t={},e={};this.performDFSOnCompounds();for(var n=0;n<this.compoundOrder.length;n++)e[this.compoundOrder[n].id]=this.compoundOrder[n],t[this.compoundOrder[n].id]=[].concat(this.compoundOrder[n].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[n].getChild()),this.compoundOrder[n].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(t,e)},y.prototype.clearZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach((function(n){var i=t.idToDummyNode[n];e[n]=t.tileNodes(t.memberGroups[n],i.paddingLeft+i.paddingRight),i.rect.width=e[n].width,i.rect.height=e[n].height}))},y.prototype.repopulateCompounds=function(){for(var t=this.compoundOrder.length-1;t>=0;t--){var e=this.compoundOrder[t],n=e.id,i=e.paddingLeft,a=e.paddingTop;this.adjustLocations(this.tiledMemberPack[n],e.rect.x,e.rect.y,i,a)}},y.prototype.repopulateZeroDegreeMembers=function(){var t=this,e=this.tiledZeroDegreePack;Object.keys(e).forEach((function(n){var i=t.idToDummyNode[n],a=i.paddingLeft,r=i.paddingTop;t.adjustLocations(e[n],i.rect.x,i.rect.y,a,r)}))},y.prototype.getToBeTiled=function(t){var e=t.id;if(null!=this.toBeTiled[e])return this.toBeTiled[e];var n=t.getChild();if(null==n)return this.toBeTiled[e]=!1,!1;for(var i=n.getNodes(),a=0;a<i.length;a++){var r=i[a];if(this.getNodeDegree(r)>0)return this.toBeTiled[e]=!1,!1;if(null!=r.getChild()){if(!this.getToBeTiled(r))return this.toBeTiled[e]=!1,!1}else this.toBeTiled[r.id]=!1}return this.toBeTiled[e]=!0,!0},y.prototype.getNodeDegree=function(t){t.id;for(var e=t.getEdges(),n=0,i=0;i<e.length;i++){var a=e[i];a.getSource().id!==a.getTarget().id&&(n+=1)}return n},y.prototype.getNodeDegreeWithChildren=function(t){var e=this.getNodeDegree(t);if(null==t.getChild())return e;for(var n=t.getChild().getNodes(),i=0;i<n.length;i++){var a=n[i];e+=this.getNodeDegreeWithChildren(a)}return e},y.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},y.prototype.fillCompexOrderByDFS=function(t){for(var e=0;e<t.length;e++){var n=t[e];null!=n.getChild()&&this.fillCompexOrderByDFS(n.getChild().getNodes()),this.getToBeTiled(n)&&this.compoundOrder.push(n)}},y.prototype.adjustLocations=function(t,e,n,i,a){n+=a;for(var r=e+=i,o=0;o<t.rows.length;o++){var s=t.rows[o];e=r;for(var c=0,l=0;l<s.length;l++){var u=s[l];u.rect.x=e,u.rect.y=n,e+=u.rect.width+t.horizontalPadding,u.rect.height>c&&(c=u.rect.height)}n+=c+t.verticalPadding}},y.prototype.tileCompoundMembers=function(t,e){var n=this;this.tiledMemberPack=[],Object.keys(t).forEach((function(i){var a=e[i];n.tiledMemberPack[i]=n.tileNodes(t[i],a.paddingLeft+a.paddingRight),a.rect.width=n.tiledMemberPack[i].width,a.rect.height=n.tiledMemberPack[i].height}))},y.prototype.tileNodes=function(t,e){var n={rows:[],rowWidth:[],rowHeight:[],width:0,height:e,verticalPadding:c.TILING_PADDING_VERTICAL,horizontalPadding:c.TILING_PADDING_HORIZONTAL};t.sort((function(t,e){return t.rect.width*t.rect.height>e.rect.width*e.rect.height?-1:t.rect.width*t.rect.height<e.rect.width*e.rect.height?1:0}));for(var i=0;i<t.length;i++){var a=t[i];0==n.rows.length?this.insertNodeToRow(n,a,0,e):this.canAddHorizontal(n,a.rect.width,a.rect.height)?this.insertNodeToRow(n,a,this.getShortestRowIndex(n),e):this.insertNodeToRow(n,a,n.rows.length,e),this.shiftToLastRow(n)}return n},y.prototype.insertNodeToRow=function(t,e,n,i){var a=i;if(n==t.rows.length){var r=[];t.rows.push(r),t.rowWidth.push(a),t.rowHeight.push(0)}var o=t.rowWidth[n]+e.rect.width;t.rows[n].length>0&&(o+=t.horizontalPadding),t.rowWidth[n]=o,t.width<o&&(t.width=o);var s=e.rect.height;n>0&&(s+=t.verticalPadding);var c=0;s>t.rowHeight[n]&&(c=t.rowHeight[n],t.rowHeight[n]=s,c=t.rowHeight[n]-c),t.height+=c,t.rows[n].push(e)},y.prototype.getShortestRowIndex=function(t){for(var e=-1,n=Number.MAX_VALUE,i=0;i<t.rows.length;i++)t.rowWidth[i]<n&&(e=i,n=t.rowWidth[i]);return e},y.prototype.getLongestRowIndex=function(t){for(var e=-1,n=Number.MIN_VALUE,i=0;i<t.rows.length;i++)t.rowWidth[i]>n&&(e=i,n=t.rowWidth[i]);return e},y.prototype.canAddHorizontal=function(t,e,n){var i=this.getShortestRowIndex(t);if(i<0)return!0;var a=t.rowWidth[i];if(a+t.horizontalPadding+e<=t.width)return!0;var r,o,s=0;return t.rowHeight[i]<n&&i>0&&(s=n+t.verticalPadding-t.rowHeight[i]),r=t.width-a>=e+t.horizontalPadding?(t.height+s)/(a+e+t.horizontalPadding):(t.height+s)/t.width,s=n+t.verticalPadding,(o=t.width<e?(t.height+s)/e:(t.height+s)/t.width)<1&&(o=1/o),r<1&&(r=1/r),r<o},y.prototype.shiftToLastRow=function(t){var e=this.getLongestRowIndex(t),n=t.rowWidth.length-1,i=t.rows[e],a=i[i.length-1],r=a.width+t.horizontalPadding;if(t.width-t.rowWidth[n]>r&&e!=n){i.splice(-1,1),t.rows[n].push(a),t.rowWidth[e]=t.rowWidth[e]-r,t.rowWidth[n]=t.rowWidth[n]+r,t.width=t.rowWidth[instance.getLongestRowIndex(t)];for(var o=Number.MIN_VALUE,s=0;s<i.length;s++)i[s].height>o&&(o=i[s].height);e>0&&(o+=t.verticalPadding);var c=t.rowHeight[e]+t.rowHeight[n];t.rowHeight[e]=o,t.rowHeight[n]<a.height+t.verticalPadding&&(t.rowHeight[n]=a.height+t.verticalPadding);var l=t.rowHeight[e]+t.rowHeight[n];t.height+=l-c,this.shiftToLastRow(t)}},y.prototype.tilingPreLayout=function(){c.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},y.prototype.tilingPostLayout=function(){c.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},y.prototype.reduceTrees=function(){for(var t,e=[],n=!0;n;){var i=this.graphManager.getAllNodes(),a=[];n=!1;for(var r=0;r<i.length;r++)1==(t=i[r]).getEdges().length&&!t.getEdges()[0].isInterGraph&&null==t.getChild()&&(a.push([t,t.getEdges()[0],t.getOwner()]),n=!0);if(1==n){for(var o=[],s=0;s<a.length;s++)1==a[s][0].getEdges().length&&(o.push(a[s]),a[s][0].getOwner().remove(a[s][0]));e.push(o),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=e},y.prototype.growTree=function(t){for(var e,n=t[t.length-1],i=0;i<n.length;i++)e=n[i],this.findPlaceforPrunedNode(e),e[2].add(e[0]),e[2].add(e[1],e[1].source,e[1].target);t.splice(t.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},y.prototype.findPlaceforPrunedNode=function(t){var e,n,i=t[0],a=(n=i==t[1].source?t[1].target:t[1].source).startX,r=n.finishX,o=n.startY,s=n.finishY,c=[0,0,0,0];if(o>0)for(var u=a;u<=r;u++)c[0]+=this.grid[u][o-1].length+this.grid[u][o].length-1;if(r<this.grid.length-1)for(u=o;u<=s;u++)c[1]+=this.grid[r+1][u].length+this.grid[r][u].length-1;if(s<this.grid[0].length-1)for(u=a;u<=r;u++)c[2]+=this.grid[u][s+1].length+this.grid[u][s].length-1;if(a>0)for(u=o;u<=s;u++)c[3]+=this.grid[a-1][u].length+this.grid[a][u].length-1;for(var d,h,f=g.MAX_VALUE,p=0;p<c.length;p++)c[p]<f?(f=c[p],d=1,h=p):c[p]==f&&d++;if(3==d&&0==f)0==c[0]&&0==c[1]&&0==c[2]?e=1:0==c[0]&&0==c[1]&&0==c[3]?e=0:0==c[0]&&0==c[2]&&0==c[3]?e=3:0==c[1]&&0==c[2]&&0==c[3]&&(e=2);else if(2==d&&0==f){var b=Math.floor(2*Math.random());e=0==c[0]&&0==c[1]?0==b?0:1:0==c[0]&&0==c[2]?0==b?0:2:0==c[0]&&0==c[3]?0==b?0:3:0==c[1]&&0==c[2]?0==b?1:2:0==c[1]&&0==c[3]?0==b?1:3:0==b?2:3}else e=4==d&&0==f?b=Math.floor(4*Math.random()):h;0==e?i.setCenter(n.getCenterX(),n.getCenterY()-n.getHeight()/2-l.DEFAULT_EDGE_LENGTH-i.getHeight()/2):1==e?i.setCenter(n.getCenterX()+n.getWidth()/2+l.DEFAULT_EDGE_LENGTH+i.getWidth()/2,n.getCenterY()):2==e?i.setCenter(n.getCenterX(),n.getCenterY()+n.getHeight()/2+l.DEFAULT_EDGE_LENGTH+i.getHeight()/2):i.setCenter(n.getCenterX()-n.getWidth()/2-l.DEFAULT_EDGE_LENGTH-i.getWidth()/2,n.getCenterY())},t.exports=y},function(t,e,n){var i={};i.layoutBase=n(0),i.CoSEConstants=n(1),i.CoSEEdge=n(2),i.CoSEGraph=n(3),i.CoSEGraphManager=n(4),i.CoSELayout=n(6),i.CoSENode=n(5),t.exports=i}])},t.exports=n(kq())}(xq)),wq}!function(t,e){var n;n=function(t){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.i=function(t){return t},n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:i})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=1)}([function(e,n){e.exports=t},function(t,e,n){var i=n(0).layoutBase.LayoutConstants,a=n(0).layoutBase.FDLayoutConstants,r=n(0).CoSEConstants,o=n(0).CoSELayout,s=n(0).CoSENode,c=n(0).layoutBase.PointD,l=n(0).layoutBase.DimensionD,u={ready:function(){},stop:function(){},quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function d(t,e){var n={};for(var i in t)n[i]=t[i];for(var i in e)n[i]=e[i];return n}function h(t){this.options=d(u,t),f(this.options)}var f=function(t){null!=t.nodeRepulsion&&(r.DEFAULT_REPULSION_STRENGTH=a.DEFAULT_REPULSION_STRENGTH=t.nodeRepulsion),null!=t.idealEdgeLength&&(r.DEFAULT_EDGE_LENGTH=a.DEFAULT_EDGE_LENGTH=t.idealEdgeLength),null!=t.edgeElasticity&&(r.DEFAULT_SPRING_STRENGTH=a.DEFAULT_SPRING_STRENGTH=t.edgeElasticity),null!=t.nestingFactor&&(r.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=t.nestingFactor),null!=t.gravity&&(r.DEFAULT_GRAVITY_STRENGTH=a.DEFAULT_GRAVITY_STRENGTH=t.gravity),null!=t.numIter&&(r.MAX_ITERATIONS=a.MAX_ITERATIONS=t.numIter),null!=t.gravityRange&&(r.DEFAULT_GRAVITY_RANGE_FACTOR=a.DEFAULT_GRAVITY_RANGE_FACTOR=t.gravityRange),null!=t.gravityCompound&&(r.DEFAULT_COMPOUND_GRAVITY_STRENGTH=a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=t.gravityCompound),null!=t.gravityRangeCompound&&(r.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=t.gravityRangeCompound),null!=t.initialEnergyOnIncremental&&(r.DEFAULT_COOLING_FACTOR_INCREMENTAL=a.DEFAULT_COOLING_FACTOR_INCREMENTAL=t.initialEnergyOnIncremental),"draft"==t.quality?i.QUALITY=0:"proof"==t.quality?i.QUALITY=2:i.QUALITY=1,r.NODE_DIMENSIONS_INCLUDE_LABELS=a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=t.nodeDimensionsIncludeLabels,r.DEFAULT_INCREMENTAL=a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=!t.randomize,r.ANIMATE=a.ANIMATE=i.ANIMATE=t.animate,r.TILE=t.tile,r.TILING_PADDING_VERTICAL="function"==typeof t.tilingPaddingVertical?t.tilingPaddingVertical.call():t.tilingPaddingVertical,r.TILING_PADDING_HORIZONTAL="function"==typeof t.tilingPaddingHorizontal?t.tilingPaddingHorizontal.call():t.tilingPaddingHorizontal};h.prototype.run=function(){var t,e,n=this.options;this.idToLNode={};var i=this.layout=new o,a=this;a.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var r=i.newGraphManager();this.gm=r;var s=this.options.eles.nodes(),c=this.options.eles.edges();this.root=r.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(s),i);for(var l=0;l<c.length;l++){var u=c[l],d=this.idToLNode[u.data("source")],h=this.idToLNode[u.data("target")];d!==h&&0==d.getEdgesBetween(h).length&&(r.add(i.newEdge(),d,h).id=u.id())}var f=function(t,e){"number"==typeof t&&(t=e);var n=t.data("id"),i=a.idToLNode[n];return{x:i.getRect().getCenterX(),y:i.getRect().getCenterY()}},g=function r(){for(var o,s=function(){n.fit&&n.cy.fit(n.eles,n.padding),t||(t=!0,a.cy.one("layoutready",n.ready),a.cy.trigger({type:"layoutready",layout:a}))},c=a.options.refresh,l=0;l<c&&!o;l++)o=a.stopped||a.layout.tick();if(o)return i.checkLayoutSuccess()&&!i.isSubLayout&&i.doPostLayout(),i.tilingPostLayout&&i.tilingPostLayout(),i.isLayoutFinished=!0,a.options.eles.nodes().positions(f),s(),a.cy.one("layoutstop",a.options.stop),a.cy.trigger({type:"layoutstop",layout:a}),e&&cancelAnimationFrame(e),void(t=!1);var u=a.layout.getPositionsData();n.eles.nodes().positions((function(t,e){if("number"==typeof t&&(t=e),!t.isParent()){for(var n=t.id(),i=u[n],a=t;null==i&&(i=u[a.data("parent")]||u["DummyCompound_"+a.data("parent")],u[n]=i,null!=(a=a.parent()[0])););return null!=i?{x:i.x,y:i.y}:{x:t.position("x"),y:t.position("y")}}})),s(),e=requestAnimationFrame(r)};return i.addListener("layoutstarted",(function(){"during"===a.options.animate&&(e=requestAnimationFrame(g))})),i.runLayout(),"during"!==this.options.animate&&(a.options.eles.nodes().not(":parent").layoutPositions(a,a.options,f),t=!1),this},h.prototype.getTopMostNodes=function(t){for(var e={},n=0;n<t.length;n++)e[t[n].id()]=!0;return t.filter((function(t,n){"number"==typeof t&&(t=n);for(var i=t.parent()[0];null!=i;){if(e[i.id()])return!1;i=i.parent()[0]}return!0}))},h.prototype.processChildrenList=function(t,e,n){for(var i=e.length,a=0;a<i;a++){var r,o,u=e[a],d=u.children(),h=u.layoutDimensions({nodeDimensionsIncludeLabels:this.options.nodeDimensionsIncludeLabels});if((r=null!=u.outerWidth()&&null!=u.outerHeight()?t.add(new s(n.graphManager,new c(u.position("x")-h.w/2,u.position("y")-h.h/2),new l(parseFloat(h.w),parseFloat(h.h)))):t.add(new s(this.graphManager))).id=u.data("id"),r.paddingLeft=parseInt(u.css("padding")),r.paddingTop=parseInt(u.css("padding")),r.paddingRight=parseInt(u.css("padding")),r.paddingBottom=parseInt(u.css("padding")),this.options.nodeDimensionsIncludeLabels&&u.isParent()){var f=u.boundingBox({includeLabels:!0,includeNodes:!1}).w,g=u.boundingBox({includeLabels:!0,includeNodes:!1}).h,p=u.css("text-halign");r.labelWidth=f,r.labelHeight=g,r.labelPos=p}this.idToLNode[u.data("id")]=r,isNaN(r.rect.x)&&(r.rect.x=0),isNaN(r.rect.y)&&(r.rect.y=0),null!=d&&d.length>0&&(o=n.getGraphManager().add(n.newGraph(),r),this.processChildrenList(o,d,n))}},h.prototype.stop=function(){return this.stopped=!0,this};var g=function(t){t("layout","cose-bilkent",h)};typeof cytoscape<"u"&&g(cytoscape),t.exports=g}])},t.exports=n(Eq())}({get exports(){return vq},set exports(t){vq=t}});const Cq=r(vq);function Sq(t,e,n,i){gq.drawNode(t,e,n,i),e.children&&e.children.forEach(((e,a)=>{Sq(t,e,n<0?a:n,i)}))}function Tq(t,e){e.edges().map(((e,n)=>{const i=e.data();if(e[0]._private.bodyBounds){const a=e[0]._private.rscratch;d.trace("Edge: ",n,i),t.insert("path").attr("d",`M ${a.startX},${a.startY} L ${a.midX},${a.midY} L${a.endX},${a.endY} `).attr("class","edge section-edge-"+i.section+" edge-depth-"+i.depth)}}))}function Aq(t,e,n,i){e.add({group:"nodes",data:{id:t.id,labelText:t.descr,height:t.height,width:t.width,level:i,nodeId:t.id,padding:t.padding,type:t.type},position:{x:t.x,y:t.y}}),t.children&&t.children.forEach((a=>{Aq(a,e,n,i+1),e.add({group:"edges",data:{id:`${t.id}_${a.id}`,source:t.id,target:a.id,depth:i,section:a.section}})}))}function Dq(t,e){return new Promise((n=>{const i=un("body").append("div").attr("id","cy").attr("style","display:none"),a=bq({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});i.remove(),Aq(t,a,e,0),a.nodes().forEach((function(t){t.layoutDimensions=()=>{const e=t.data();return{w:e.width,h:e.height}}})),a.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),a.ready((t=>{d.info("Ready",t),n(a)}))}))}function Iq(t){t.nodes().map(((t,e)=>{const n=t.data();n.x=t.position().x,n.y=t.position().y,gq.positionNode(n);const i=nq(n.nodeId);d.info("Id:",e,"Position: (",t.position().x,", ",t.position().y,")",n),i.attr("transform",`translate(${t.position().x-n.width/2}, ${t.position().y-n.height/2})`),i.attr("attr",`apa-${e})`)}))}bq.use(Cq);const Lq={draw:async(t,e,n,i)=>{const a=Ry();i.db.clear(),i.parser.parse(t),d.debug("Renering info diagram\n"+t);const r=Ry().securityLevel;let o;"sandbox"===r&&(o=un("#i"+e));const s=un("sandbox"===r?o.nodes()[0].contentDocument.body:"body").select("#"+e);s.append("g");const c=i.db.getMindmap(),l=s.append("g");l.attr("class","mindmap-edges");const u=s.append("g");u.attr("class","mindmap-nodes"),Sq(u,c,-1,a);const h=await Dq(c,a);Tq(l,h),Iq(h),Oy(void 0,s,a.mindmap.padding,a.mindmap.useMaxWidth)}},Oq=t=>{let e="";for(let n=0;n<t.THEME_COLOR_LIMIT;n++)t["lineColor"+n]=t["lineColor"+n]||t["cScaleInv"+n],xh(t["lineColor"+n])?t["lineColor"+n]=_h(t["lineColor"+n],20):t["lineColor"+n]=kh(t["lineColor"+n],20);for(let n=0;n<t.THEME_COLOR_LIMIT;n++){const i=""+(17-3*n);e+=`\n .section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} polygon, .section-${n-1} path {\n fill: ${t["cScale"+n]};\n }\n .section-${n-1} text {\n fill: ${t["cScaleLabel"+n]};\n }\n .node-icon-${n-1} {\n font-size: 40px;\n color: ${t["cScaleLabel"+n]};\n }\n .section-edge-${n-1}{\n stroke: ${t["cScale"+n]};\n }\n .edge-depth-${n-1}{\n stroke-width: ${i};\n }\n .section-${n-1} line {\n stroke: ${t["cScaleInv"+n]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `}return e},Mq=Object.freeze(Object.defineProperty({__proto__:null,diagram:{db:iq,renderer:Lq,parser:FV,styles:t=>`\n .edge {\n stroke-width: 3;\n }\n ${Oq(t)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${t.git0};\n }\n .section-root text {\n fill: ${t.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n`}},Symbol.toStringTag,{value:"Module"}));return SU}()},94668:(t,e,n)=>{"use strict";const i=n(1597),a=/^[\da-fA-F]+$/,r=/^\d+$/,o=new WeakMap;function s(t){t=t.Parser.acorn||t;let e=o.get(t);if(!e){const n=t.tokTypes,i=t.TokContext,a=t.TokenType,r=new i("<tag",!1),s=new i("</tag",!1),c=new i("<tag>...</tag>",!0,!0),l={tc_oTag:r,tc_cTag:s,tc_expr:c},u={jsxName:new a("jsxName"),jsxText:new a("jsxText",{beforeExpr:!0}),jsxTagStart:new a("jsxTagStart",{startsExpr:!0}),jsxTagEnd:new a("jsxTagEnd")};u.jsxTagStart.updateContext=function(){this.context.push(c),this.context.push(r),this.exprAllowed=!1},u.jsxTagEnd.updateContext=function(t){let e=this.context.pop();e===r&&t===n.slash||e===s?(this.context.pop(),this.exprAllowed=this.curContext()===c):this.exprAllowed=!0},e={tokContexts:l,tokTypes:u},o.set(t,e)}return e}function c(t){return t?"JSXIdentifier"===t.type?t.name:"JSXNamespacedName"===t.type?t.namespace.name+":"+t.name.name:"JSXMemberExpression"===t.type?c(t.object)+"."+c(t.property):void 0:t}t.exports=function(t){return t=t||{},function(e){return function(t,e){const o=e.acorn||n(22030),l=s(o),u=o.tokTypes,d=l.tokTypes,h=o.tokContexts,f=l.tokContexts.tc_oTag,g=l.tokContexts.tc_cTag,p=l.tokContexts.tc_expr,b=o.isNewLine,m=o.isIdentifierStart,y=o.isIdentifierChar;return class extends e{static get acornJsx(){return l}jsx_readToken(){let t="",e=this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated JSX contents");let n=this.input.charCodeAt(this.pos);switch(n){case 60:case 123:return this.pos===this.start?60===n&&this.exprAllowed?(++this.pos,this.finishToken(d.jsxTagStart)):this.getTokenFromCode(n):(t+=this.input.slice(e,this.pos),this.finishToken(d.jsxText,t));case 38:t+=this.input.slice(e,this.pos),t+=this.jsx_readEntity(),e=this.pos;break;case 62:case 125:this.raise(this.pos,"Unexpected token `"+this.input[this.pos]+"`. Did you mean `"+(62===n?">":"}")+'` or `{"'+this.input[this.pos]+'"}`?');default:b(n)?(t+=this.input.slice(e,this.pos),t+=this.jsx_readNewLine(!0),e=this.pos):++this.pos}}}jsx_readNewLine(t){let e,n=this.input.charCodeAt(this.pos);return++this.pos,13===n&&10===this.input.charCodeAt(this.pos)?(++this.pos,e=t?"\n":"\r\n"):e=String.fromCharCode(n),this.options.locations&&(++this.curLine,this.lineStart=this.pos),e}jsx_readString(t){let e="",n=++this.pos;for(;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");let i=this.input.charCodeAt(this.pos);if(i===t)break;38===i?(e+=this.input.slice(n,this.pos),e+=this.jsx_readEntity(),n=this.pos):b(i)?(e+=this.input.slice(n,this.pos),e+=this.jsx_readNewLine(!1),n=this.pos):++this.pos}return e+=this.input.slice(n,this.pos++),this.finishToken(u.string,e)}jsx_readEntity(){let t,e="",n=0,o=this.input[this.pos];"&"!==o&&this.raise(this.pos,"Entity must start with an ampersand");let s=++this.pos;for(;this.pos<this.input.length&&n++<10;){if(o=this.input[this.pos++],";"===o){"#"===e[0]?"x"===e[1]?(e=e.substr(2),a.test(e)&&(t=String.fromCharCode(parseInt(e,16)))):(e=e.substr(1),r.test(e)&&(t=String.fromCharCode(parseInt(e,10)))):t=i[e];break}e+=o}return t||(this.pos=s,"&")}jsx_readWord(){let t,e=this.pos;do{t=this.input.charCodeAt(++this.pos)}while(y(t)||45===t);return this.finishToken(d.jsxName,this.input.slice(e,this.pos))}jsx_parseIdentifier(){let t=this.startNode();return this.type===d.jsxName?t.name=this.value:this.type.keyword?t.name=this.type.keyword:this.unexpected(),this.next(),this.finishNode(t,"JSXIdentifier")}jsx_parseNamespacedName(){let e=this.start,n=this.startLoc,i=this.jsx_parseIdentifier();if(!t.allowNamespaces||!this.eat(u.colon))return i;var a=this.startNodeAt(e,n);return a.namespace=i,a.name=this.jsx_parseIdentifier(),this.finishNode(a,"JSXNamespacedName")}jsx_parseElementName(){if(this.type===d.jsxTagEnd)return"";let e=this.start,n=this.startLoc,i=this.jsx_parseNamespacedName();for(this.type!==u.dot||"JSXNamespacedName"!==i.type||t.allowNamespacedObjects||this.unexpected();this.eat(u.dot);){let t=this.startNodeAt(e,n);t.object=i,t.property=this.jsx_parseIdentifier(),i=this.finishNode(t,"JSXMemberExpression")}return i}jsx_parseAttributeValue(){switch(this.type){case u.braceL:let t=this.jsx_parseExpressionContainer();return"JSXEmptyExpression"===t.expression.type&&this.raise(t.start,"JSX attributes must only be assigned a non-empty expression"),t;case d.jsxTagStart:case u.string:return this.parseExprAtom();default:this.raise(this.start,"JSX value should be either an expression or a quoted JSX text")}}jsx_parseEmptyExpression(){let t=this.startNodeAt(this.lastTokEnd,this.lastTokEndLoc);return this.finishNodeAt(t,"JSXEmptyExpression",this.start,this.startLoc)}jsx_parseExpressionContainer(){let t=this.startNode();return this.next(),t.expression=this.type===u.braceR?this.jsx_parseEmptyExpression():this.parseExpression(),this.expect(u.braceR),this.finishNode(t,"JSXExpressionContainer")}jsx_parseAttribute(){let t=this.startNode();return this.eat(u.braceL)?(this.expect(u.ellipsis),t.argument=this.parseMaybeAssign(),this.expect(u.braceR),this.finishNode(t,"JSXSpreadAttribute")):(t.name=this.jsx_parseNamespacedName(),t.value=this.eat(u.eq)?this.jsx_parseAttributeValue():null,this.finishNode(t,"JSXAttribute"))}jsx_parseOpeningElementAt(t,e){let n=this.startNodeAt(t,e);n.attributes=[];let i=this.jsx_parseElementName();for(i&&(n.name=i);this.type!==u.slash&&this.type!==d.jsxTagEnd;)n.attributes.push(this.jsx_parseAttribute());return n.selfClosing=this.eat(u.slash),this.expect(d.jsxTagEnd),this.finishNode(n,i?"JSXOpeningElement":"JSXOpeningFragment")}jsx_parseClosingElementAt(t,e){let n=this.startNodeAt(t,e),i=this.jsx_parseElementName();return i&&(n.name=i),this.expect(d.jsxTagEnd),this.finishNode(n,i?"JSXClosingElement":"JSXClosingFragment")}jsx_parseElementAt(t,e){let n=this.startNodeAt(t,e),i=[],a=this.jsx_parseOpeningElementAt(t,e),r=null;if(!a.selfClosing){t:for(;;)switch(this.type){case d.jsxTagStart:if(t=this.start,e=this.startLoc,this.next(),this.eat(u.slash)){r=this.jsx_parseClosingElementAt(t,e);break t}i.push(this.jsx_parseElementAt(t,e));break;case d.jsxText:i.push(this.parseExprAtom());break;case u.braceL:i.push(this.jsx_parseExpressionContainer());break;default:this.unexpected()}c(r.name)!==c(a.name)&&this.raise(r.start,"Expected corresponding JSX closing tag for <"+c(a.name)+">")}let o=a.name?"Element":"Fragment";return n["opening"+o]=a,n["closing"+o]=r,n.children=i,this.type===u.relational&&"<"===this.value&&this.raise(this.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(n,"JSX"+o)}jsx_parseText(){let t=this.parseLiteral(this.value);return t.type="JSXText",t}jsx_parseElement(){let t=this.start,e=this.startLoc;return this.next(),this.jsx_parseElementAt(t,e)}parseExprAtom(t){return this.type===d.jsxText?this.jsx_parseText():this.type===d.jsxTagStart?this.jsx_parseElement():super.parseExprAtom(t)}readToken(t){let e=this.curContext();if(e===p)return this.jsx_readToken();if(e===f||e===g){if(m(t))return this.jsx_readWord();if(62==t)return++this.pos,this.finishToken(d.jsxTagEnd);if((34===t||39===t)&&e==f)return this.jsx_readString(t)}return 60===t&&this.exprAllowed&&33!==this.input.charCodeAt(this.pos+1)?(++this.pos,this.finishToken(d.jsxTagStart)):super.readToken(t)}updateContext(t){if(this.type==u.braceL){var e=this.curContext();e==f?this.context.push(h.b_expr):e==p?this.context.push(h.b_tmpl):super.updateContext(t),this.exprAllowed=!0}else{if(this.type!==u.slash||t!==d.jsxTagStart)return super.updateContext(t);this.context.length-=2,this.context.push(g),this.exprAllowed=!1}}}}({allowNamespaces:!1!==t.allowNamespaces,allowNamespacedObjects:!!t.allowNamespacedObjects},e)}},Object.defineProperty(t.exports,"tokTypes",{get:function(){return s(n(22030)).tokTypes},configurable:!0,enumerable:!0})},1597:t=>{t.exports={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"\xa0",iexcl:"\xa1",cent:"\xa2",pound:"\xa3",curren:"\xa4",yen:"\xa5",brvbar:"\xa6",sect:"\xa7",uml:"\xa8",copy:"\xa9",ordf:"\xaa",laquo:"\xab",not:"\xac",shy:"\xad",reg:"\xae",macr:"\xaf",deg:"\xb0",plusmn:"\xb1",sup2:"\xb2",sup3:"\xb3",acute:"\xb4",micro:"\xb5",para:"\xb6",middot:"\xb7",cedil:"\xb8",sup1:"\xb9",ordm:"\xba",raquo:"\xbb",frac14:"\xbc",frac12:"\xbd",frac34:"\xbe",iquest:"\xbf",Agrave:"\xc0",Aacute:"\xc1",Acirc:"\xc2",Atilde:"\xc3",Auml:"\xc4",Aring:"\xc5",AElig:"\xc6",Ccedil:"\xc7",Egrave:"\xc8",Eacute:"\xc9",Ecirc:"\xca",Euml:"\xcb",Igrave:"\xcc",Iacute:"\xcd",Icirc:"\xce",Iuml:"\xcf",ETH:"\xd0",Ntilde:"\xd1",Ograve:"\xd2",Oacute:"\xd3",Ocirc:"\xd4",Otilde:"\xd5",Ouml:"\xd6",times:"\xd7",Oslash:"\xd8",Ugrave:"\xd9",Uacute:"\xda",Ucirc:"\xdb",Uuml:"\xdc",Yacute:"\xdd",THORN:"\xde",szlig:"\xdf",agrave:"\xe0",aacute:"\xe1",acirc:"\xe2",atilde:"\xe3",auml:"\xe4",aring:"\xe5",aelig:"\xe6",ccedil:"\xe7",egrave:"\xe8",eacute:"\xe9",ecirc:"\xea",euml:"\xeb",igrave:"\xec",iacute:"\xed",icirc:"\xee",iuml:"\xef",eth:"\xf0",ntilde:"\xf1",ograve:"\xf2",oacute:"\xf3",ocirc:"\xf4",otilde:"\xf5",ouml:"\xf6",divide:"\xf7",oslash:"\xf8",ugrave:"\xf9",uacute:"\xfa",ucirc:"\xfb",uuml:"\xfc",yacute:"\xfd",thorn:"\xfe",yuml:"\xff",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02c6",tilde:"\u02dc",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039a",Lambda:"\u039b",Mu:"\u039c",Nu:"\u039d",Xi:"\u039e",Omicron:"\u039f",Pi:"\u03a0",Rho:"\u03a1",Sigma:"\u03a3",Tau:"\u03a4",Upsilon:"\u03a5",Phi:"\u03a6",Chi:"\u03a7",Psi:"\u03a8",Omega:"\u03a9",alpha:"\u03b1",beta:"\u03b2",gamma:"\u03b3",delta:"\u03b4",epsilon:"\u03b5",zeta:"\u03b6",eta:"\u03b7",theta:"\u03b8",iota:"\u03b9",kappa:"\u03ba",lambda:"\u03bb",mu:"\u03bc",nu:"\u03bd",xi:"\u03be",omicron:"\u03bf",pi:"\u03c0",rho:"\u03c1",sigmaf:"\u03c2",sigma:"\u03c3",tau:"\u03c4",upsilon:"\u03c5",phi:"\u03c6",chi:"\u03c7",psi:"\u03c8",omega:"\u03c9",thetasym:"\u03d1",upsih:"\u03d2",piv:"\u03d6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200c",zwj:"\u200d",lrm:"\u200e",rlm:"\u200f",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201a",ldquo:"\u201c",rdquo:"\u201d",bdquo:"\u201e",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203a",oline:"\u203e",frasl:"\u2044",euro:"\u20ac",image:"\u2111",weierp:"\u2118",real:"\u211c",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21b5",lArr:"\u21d0",uArr:"\u21d1",rArr:"\u21d2",dArr:"\u21d3",hArr:"\u21d4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220b",prod:"\u220f",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221a",prop:"\u221d",infin:"\u221e",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222a",int:"\u222b",there4:"\u2234",sim:"\u223c",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22a5",sdot:"\u22c5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230a",rfloor:"\u230b",lang:"\u2329",rang:"\u232a",loz:"\u25ca",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"}},22030:function(t,e){!function(t){"use strict";var e=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239],n=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,3104,541,1507,4938,6,4191],i="\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f",a="\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc",r={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},o="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",s={5:o,"5module":o+" export import",6:o+" const class extends export import super"},c=/^in(stanceof)?$/,l=new RegExp("["+a+"]"),u=new RegExp("["+a+i+"]");function d(t,e){for(var n=65536,i=0;i<e.length;i+=2){if((n+=e[i])>t)return!1;if((n+=e[i+1])>=t)return!0}return!1}function h(t,e){return t<65?36===t:t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&l.test(String.fromCharCode(t)):!1!==e&&d(t,n)))}function f(t,i){return t<48?36===t:t<58||!(t<65)&&(t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&u.test(String.fromCharCode(t)):!1!==i&&(d(t,n)||d(t,e)))))}var g=function(t,e){void 0===e&&(e={}),this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop||null,this.updateContext=null};function p(t,e){return new g(t,{beforeExpr:!0,binop:e})}var b={beforeExpr:!0},m={startsExpr:!0},y={};function v(t,e){return void 0===e&&(e={}),e.keyword=t,y[t]=new g(t,e)}var w={num:new g("num",m),regexp:new g("regexp",m),string:new g("string",m),name:new g("name",m),privateId:new g("privateId",m),eof:new g("eof"),bracketL:new g("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new g("]"),braceL:new g("{",{beforeExpr:!0,startsExpr:!0}),braceR:new g("}"),parenL:new g("(",{beforeExpr:!0,startsExpr:!0}),parenR:new g(")"),comma:new g(",",b),semi:new g(";",b),colon:new g(":",b),dot:new g("."),question:new g("?",b),questionDot:new g("?."),arrow:new g("=>",b),template:new g("template"),invalidTemplate:new g("invalidTemplate"),ellipsis:new g("...",b),backQuote:new g("`",m),dollarBraceL:new g("${",{beforeExpr:!0,startsExpr:!0}),eq:new g("=",{beforeExpr:!0,isAssign:!0}),assign:new g("_=",{beforeExpr:!0,isAssign:!0}),incDec:new g("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new g("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:p("||",1),logicalAND:p("&&",2),bitwiseOR:p("|",3),bitwiseXOR:p("^",4),bitwiseAND:p("&",5),equality:p("==/!=/===/!==",6),relational:p("</>/<=/>=",7),bitShift:p("<</>>/>>>",8),plusMin:new g("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:p("%",10),star:p("*",10),slash:p("/",10),starstar:new g("**",{beforeExpr:!0}),coalesce:p("??",1),_break:v("break"),_case:v("case",b),_catch:v("catch"),_continue:v("continue"),_debugger:v("debugger"),_default:v("default",b),_do:v("do",{isLoop:!0,beforeExpr:!0}),_else:v("else",b),_finally:v("finally"),_for:v("for",{isLoop:!0}),_function:v("function",m),_if:v("if"),_return:v("return",b),_switch:v("switch"),_throw:v("throw",b),_try:v("try"),_var:v("var"),_const:v("const"),_while:v("while",{isLoop:!0}),_with:v("with"),_new:v("new",{beforeExpr:!0,startsExpr:!0}),_this:v("this",m),_super:v("super",m),_class:v("class",m),_extends:v("extends",b),_export:v("export"),_import:v("import",m),_null:v("null",m),_true:v("true",m),_false:v("false",m),_in:v("in",{beforeExpr:!0,binop:7}),_instanceof:v("instanceof",{beforeExpr:!0,binop:7}),_typeof:v("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:v("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:v("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},x=/\r\n?|\n|\u2028|\u2029/,R=new RegExp(x.source,"g");function _(t){return 10===t||13===t||8232===t||8233===t}function k(t,e,n){void 0===n&&(n=t.length);for(var i=e;i<n;i++){var a=t.charCodeAt(i);if(_(a))return i<n-1&&13===a&&10===t.charCodeAt(i+1)?i+2:i+1}return-1}var E=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,C=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,S=Object.prototype,T=S.hasOwnProperty,A=S.toString,D=Object.hasOwn||function(t,e){return T.call(t,e)},I=Array.isArray||function(t){return"[object Array]"===A.call(t)};function L(t){return new RegExp("^(?:"+t.replace(/ /g,"|")+")$")}function O(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}var M=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,N=function(t,e){this.line=t,this.column=e};N.prototype.offset=function(t){return new N(this.line,this.column+t)};var B=function(t,e,n){this.start=e,this.end=n,null!==t.sourceFile&&(this.source=t.sourceFile)};function P(t,e){for(var n=1,i=0;;){var a=k(t,i,e);if(a<0)return new N(n,e-i);++n,i=a}}var F={ecmaVersion:null,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},j=!1;function $(t){var e={};for(var n in F)e[n]=t&&D(t,n)?t[n]:F[n];if("latest"===e.ecmaVersion?e.ecmaVersion=1e8:null==e.ecmaVersion?(!j&&"object"==typeof console&&console.warn&&(j=!0,console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.")),e.ecmaVersion=11):e.ecmaVersion>=2015&&(e.ecmaVersion-=2009),null==e.allowReserved&&(e.allowReserved=e.ecmaVersion<5),t&&null!=t.allowHashBang||(e.allowHashBang=e.ecmaVersion>=14),I(e.onToken)){var i=e.onToken;e.onToken=function(t){return i.push(t)}}return I(e.onComment)&&(e.onComment=z(e,e.onComment)),e}function z(t,e){return function(n,i,a,r,o,s){var c={type:n?"Block":"Line",value:i,start:a,end:r};t.locations&&(c.loc=new B(this,o,s)),t.ranges&&(c.range=[a,r]),e.push(c)}}var H=1,U=2,V=4,q=8,W=16,Y=32,G=64,Z=128,K=256,X=H|U|K;function J(t,e){return U|(t?V:0)|(e?q:0)}var Q=0,tt=1,et=2,nt=3,it=4,at=5,rt=function(t,e,n){this.options=t=$(t),this.sourceFile=t.sourceFile,this.keywords=L(s[t.ecmaVersion>=6?6:"module"===t.sourceType?"5module":5]);var i="";!0!==t.allowReserved&&(i=r[t.ecmaVersion>=6?6:5===t.ecmaVersion?5:3],"module"===t.sourceType&&(i+=" await")),this.reservedWords=L(i);var a=(i?i+" ":"")+r.strict;this.reservedWordsStrict=L(a),this.reservedWordsStrictBind=L(a+" "+r.strictBind),this.input=String(e),this.containsEsc=!1,n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(x).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=w.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===t.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),0===this.pos&&t.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(H),this.regexpState=null,this.privateNameStack=[]},ot={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};rt.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)},ot.inFunction.get=function(){return(this.currentVarScope().flags&U)>0},ot.inGenerator.get=function(){return(this.currentVarScope().flags&q)>0&&!this.currentVarScope().inClassFieldInit},ot.inAsync.get=function(){return(this.currentVarScope().flags&V)>0&&!this.currentVarScope().inClassFieldInit},ot.canAwait.get=function(){for(var t=this.scopeStack.length-1;t>=0;t--){var e=this.scopeStack[t];if(e.inClassFieldInit||e.flags&K)return!1;if(e.flags&U)return(e.flags&V)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},ot.allowSuper.get=function(){var t=this.currentThisScope(),e=t.flags,n=t.inClassFieldInit;return(e&G)>0||n||this.options.allowSuperOutsideMethod},ot.allowDirectSuper.get=function(){return(this.currentThisScope().flags&Z)>0},ot.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},ot.allowNewDotTarget.get=function(){var t=this.currentThisScope(),e=t.flags,n=t.inClassFieldInit;return(e&(U|K))>0||n},ot.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&K)>0},rt.extend=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];for(var n=this,i=0;i<t.length;i++)n=t[i](n);return n},rt.parse=function(t,e){return new this(e,t).parse()},rt.parseExpressionAt=function(t,e,n){var i=new this(n,t,e);return i.nextToken(),i.parseExpression()},rt.tokenizer=function(t,e){return new this(e,t)},Object.defineProperties(rt.prototype,ot);var st=rt.prototype,ct=/^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;st.strictDirective=function(t){if(this.options.ecmaVersion<5)return!1;for(;;){C.lastIndex=t,t+=C.exec(this.input)[0].length;var e=ct.exec(this.input.slice(t));if(!e)return!1;if("use strict"===(e[1]||e[2])){C.lastIndex=t+e[0].length;var n=C.exec(this.input),i=n.index+n[0].length,a=this.input.charAt(i);return";"===a||"}"===a||x.test(n[0])&&!(/[(`.[+\-/*%<>=,?^&]/.test(a)||"!"===a&&"="===this.input.charAt(i+1))}t+=e[0].length,C.lastIndex=t,t+=C.exec(this.input)[0].length,";"===this.input[t]&&t++}},st.eat=function(t){return this.type===t&&(this.next(),!0)},st.isContextual=function(t){return this.type===w.name&&this.value===t&&!this.containsEsc},st.eatContextual=function(t){return!!this.isContextual(t)&&(this.next(),!0)},st.expectContextual=function(t){this.eatContextual(t)||this.unexpected()},st.canInsertSemicolon=function(){return this.type===w.eof||this.type===w.braceR||x.test(this.input.slice(this.lastTokEnd,this.start))},st.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},st.semicolon=function(){this.eat(w.semi)||this.insertSemicolon()||this.unexpected()},st.afterTrailingComma=function(t,e){if(this.type===t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0},st.expect=function(t){this.eat(t)||this.unexpected()},st.unexpected=function(t){this.raise(null!=t?t:this.start,"Unexpected token")};var lt=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};st.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element");var n=e?t.parenthesizedAssign:t.parenthesizedBind;n>-1&&this.raiseRecoverable(n,e?"Assigning to rvalue":"Parenthesized pattern")}},st.checkExpressionErrors=function(t,e){if(!t)return!1;var n=t.shorthandAssign,i=t.doubleProto;if(!e)return n>=0||i>=0;n>=0&&this.raise(n,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},st.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},st.isSimpleAssignTarget=function(t){return"ParenthesizedExpression"===t.type?this.isSimpleAssignTarget(t.expression):"Identifier"===t.type||"MemberExpression"===t.type};var ut=rt.prototype;ut.parseTopLevel=function(t){var e=Object.create(null);for(t.body||(t.body=[]);this.type!==w.eof;){var n=this.parseStatement(null,!0,e);t.body.push(n)}if(this.inModule)for(var i=0,a=Object.keys(this.undefinedExports);i<a.length;i+=1){var r=a[i];this.raiseRecoverable(this.undefinedExports[r].start,"Export '"+r+"' is not defined")}return this.adaptDirectivePrologue(t.body),this.next(),t.sourceType=this.options.sourceType,this.finishNode(t,"Program")};var dt={kind:"loop"},ht={kind:"switch"};ut.isLet=function(t){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;C.lastIndex=this.pos;var e=C.exec(this.input),n=this.pos+e[0].length,i=this.input.charCodeAt(n);if(91===i||92===i)return!0;if(t)return!1;if(123===i||i>55295&&i<56320)return!0;if(h(i,!0)){for(var a=n+1;f(i=this.input.charCodeAt(a),!0);)++a;if(92===i||i>55295&&i<56320)return!0;var r=this.input.slice(n,a);if(!c.test(r))return!0}return!1},ut.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;C.lastIndex=this.pos;var t,e=C.exec(this.input),n=this.pos+e[0].length;return!(x.test(this.input.slice(this.pos,n))||"function"!==this.input.slice(n,n+8)||n+8!==this.input.length&&(f(t=this.input.charCodeAt(n+8))||t>55295&&t<56320))},ut.parseStatement=function(t,e,n){var i,a=this.type,r=this.startNode();switch(this.isLet(t)&&(a=w._var,i="let"),a){case w._break:case w._continue:return this.parseBreakContinueStatement(r,a.keyword);case w._debugger:return this.parseDebuggerStatement(r);case w._do:return this.parseDoStatement(r);case w._for:return this.parseForStatement(r);case w._function:return t&&(this.strict||"if"!==t&&"label"!==t)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1,!t);case w._class:return t&&this.unexpected(),this.parseClass(r,!0);case w._if:return this.parseIfStatement(r);case w._return:return this.parseReturnStatement(r);case w._switch:return this.parseSwitchStatement(r);case w._throw:return this.parseThrowStatement(r);case w._try:return this.parseTryStatement(r);case w._const:case w._var:return i=i||this.value,t&&"var"!==i&&this.unexpected(),this.parseVarStatement(r,i);case w._while:return this.parseWhileStatement(r);case w._with:return this.parseWithStatement(r);case w.braceL:return this.parseBlock(!0,r);case w.semi:return this.parseEmptyStatement(r);case w._export:case w._import:if(this.options.ecmaVersion>10&&a===w._import){C.lastIndex=this.pos;var o=C.exec(this.input),s=this.pos+o[0].length,c=this.input.charCodeAt(s);if(40===c||46===c)return this.parseExpressionStatement(r,this.parseExpression())}return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),a===w._import?this.parseImport(r):this.parseExport(r,n);default:if(this.isAsyncFunction())return t&&this.unexpected(),this.next(),this.parseFunctionStatement(r,!0,!t);var l=this.value,u=this.parseExpression();return a===w.name&&"Identifier"===u.type&&this.eat(w.colon)?this.parseLabeledStatement(r,l,u,t):this.parseExpressionStatement(r,u)}},ut.parseBreakContinueStatement=function(t,e){var n="break"===e;this.next(),this.eat(w.semi)||this.insertSemicolon()?t.label=null:this.type!==w.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var a=this.labels[i];if(null==t.label||a.name===t.label.name){if(null!=a.kind&&(n||"loop"===a.kind))break;if(t.label&&n)break}}return i===this.labels.length&&this.raise(t.start,"Unsyntactic "+e),this.finishNode(t,n?"BreakStatement":"ContinueStatement")},ut.parseDebuggerStatement=function(t){return this.next(),this.semicolon(),this.finishNode(t,"DebuggerStatement")},ut.parseDoStatement=function(t){return this.next(),this.labels.push(dt),t.body=this.parseStatement("do"),this.labels.pop(),this.expect(w._while),t.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(w.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")},ut.parseForStatement=function(t){this.next();var e=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(dt),this.enterScope(0),this.expect(w.parenL),this.type===w.semi)return e>-1&&this.unexpected(e),this.parseFor(t,null);var n=this.isLet();if(this.type===w._var||this.type===w._const||n){var i=this.startNode(),a=n?"let":this.value;return this.next(),this.parseVar(i,!0,a),this.finishNode(i,"VariableDeclaration"),(this.type===w._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===i.declarations.length?(this.options.ecmaVersion>=9&&(this.type===w._in?e>-1&&this.unexpected(e):t.await=e>-1),this.parseForIn(t,i)):(e>-1&&this.unexpected(e),this.parseFor(t,i))}var r=this.isContextual("let"),o=!1,s=new lt,c=this.parseExpression(!(e>-1)||"await",s);return this.type===w._in||(o=this.options.ecmaVersion>=6&&this.isContextual("of"))?(this.options.ecmaVersion>=9&&(this.type===w._in?e>-1&&this.unexpected(e):t.await=e>-1),r&&o&&this.raise(c.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(c,!1,s),this.checkLValPattern(c),this.parseForIn(t,c)):(this.checkExpressionErrors(s,!0),e>-1&&this.unexpected(e),this.parseFor(t,c))},ut.parseFunctionStatement=function(t,e,n){return this.next(),this.parseFunction(t,gt|(n?0:pt),!1,e)},ut.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement("if"),t.alternate=this.eat(w._else)?this.parseStatement("if"):null,this.finishNode(t,"IfStatement")},ut.parseReturnStatement=function(t){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(w.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")},ut.parseSwitchStatement=function(t){var e;this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(w.braceL),this.labels.push(ht),this.enterScope(0);for(var n=!1;this.type!==w.braceR;)if(this.type===w._case||this.type===w._default){var i=this.type===w._case;e&&this.finishNode(e,"SwitchCase"),t.cases.push(e=this.startNode()),e.consequent=[],this.next(),i?e.test=this.parseExpression():(n&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),n=!0,e.test=null),this.expect(w.colon)}else e||this.unexpected(),e.consequent.push(this.parseStatement(null));return this.exitScope(),e&&this.finishNode(e,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")},ut.parseThrowStatement=function(t){return this.next(),x.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")};var ft=[];ut.parseCatchClauseParam=function(){var t=this.parseBindingAtom(),e="Identifier"===t.type;return this.enterScope(e?Y:0),this.checkLValPattern(t,e?it:et),this.expect(w.parenR),t},ut.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===w._catch){var e=this.startNode();this.next(),this.eat(w.parenL)?e.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),e.param=null,this.enterScope(0)),e.body=this.parseBlock(!1),this.exitScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(w._finally)?this.parseBlock():null,t.handler||t.finalizer||this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")},ut.parseVarStatement=function(t,e,n){return this.next(),this.parseVar(t,!1,e,n),this.semicolon(),this.finishNode(t,"VariableDeclaration")},ut.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(dt),t.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(t,"WhileStatement")},ut.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement("with"),this.finishNode(t,"WithStatement")},ut.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")},ut.parseLabeledStatement=function(t,e,n,i){for(var a=0,r=this.labels;a<r.length;a+=1)r[a].name===e&&this.raise(n.start,"Label '"+e+"' is already declared");for(var o=this.type.isLoop?"loop":this.type===w._switch?"switch":null,s=this.labels.length-1;s>=0;s--){var c=this.labels[s];if(c.statementStart!==t.start)break;c.statementStart=this.start,c.kind=o}return this.labels.push({name:e,kind:o,statementStart:this.start}),t.body=this.parseStatement(i?-1===i.indexOf("label")?i+"label":i:"label"),this.labels.pop(),t.label=n,this.finishNode(t,"LabeledStatement")},ut.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")},ut.parseBlock=function(t,e,n){for(void 0===t&&(t=!0),void 0===e&&(e=this.startNode()),e.body=[],this.expect(w.braceL),t&&this.enterScope(0);this.type!==w.braceR;){var i=this.parseStatement(null);e.body.push(i)}return n&&(this.strict=!1),this.next(),t&&this.exitScope(),this.finishNode(e,"BlockStatement")},ut.parseFor=function(t,e){return t.init=e,this.expect(w.semi),t.test=this.type===w.semi?null:this.parseExpression(),this.expect(w.semi),t.update=this.type===w.parenR?null:this.parseExpression(),this.expect(w.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,"ForStatement")},ut.parseForIn=function(t,e){var n=this.type===w._in;return this.next(),"VariableDeclaration"===e.type&&null!=e.declarations[0].init&&(!n||this.options.ecmaVersion<8||this.strict||"var"!==e.kind||"Identifier"!==e.declarations[0].id.type)&&this.raise(e.start,(n?"for-in":"for-of")+" loop variable declaration may not have an initializer"),t.left=e,t.right=n?this.parseExpression():this.parseMaybeAssign(),this.expect(w.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,n?"ForInStatement":"ForOfStatement")},ut.parseVar=function(t,e,n,i){for(t.declarations=[],t.kind=n;;){var a=this.startNode();if(this.parseVarId(a,n),this.eat(w.eq)?a.init=this.parseMaybeAssign(e):i||"const"!==n||this.type===w._in||this.options.ecmaVersion>=6&&this.isContextual("of")?i||"Identifier"===a.id.type||e&&(this.type===w._in||this.isContextual("of"))?a.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),t.declarations.push(this.finishNode(a,"VariableDeclarator")),!this.eat(w.comma))break}return t},ut.parseVarId=function(t,e){t.id=this.parseBindingAtom(),this.checkLValPattern(t.id,"var"===e?tt:et,!1)};var gt=1,pt=2,bt=4;function mt(t,e){var n=e.key.name,i=t[n],a="true";return"MethodDefinition"!==e.type||"get"!==e.kind&&"set"!==e.kind||(a=(e.static?"s":"i")+e.kind),"iget"===i&&"iset"===a||"iset"===i&&"iget"===a||"sget"===i&&"sset"===a||"sset"===i&&"sget"===a?(t[n]="true",!1):!!i||(t[n]=a,!1)}function yt(t,e){var n=t.computed,i=t.key;return!n&&("Identifier"===i.type&&i.name===e||"Literal"===i.type&&i.value===e)}ut.parseFunction=function(t,e,n,i,a){this.initFunction(t),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===w.star&&e&pt&&this.unexpected(),t.generator=this.eat(w.star)),this.options.ecmaVersion>=8&&(t.async=!!i),e>&&(t.id=e&bt&&this.type!==w.name?null:this.parseIdent(),!t.id||e&pt||this.checkLValSimple(t.id,this.strict||t.generator||t.async?this.treatFunctionsAsVar?tt:et:nt));var r=this.yieldPos,o=this.awaitPos,s=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(J(t.async,t.generator)),e>||(t.id=this.type===w.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,n,!1,a),this.yieldPos=r,this.awaitPos=o,this.awaitIdentPos=s,this.finishNode(t,e>?"FunctionDeclaration":"FunctionExpression")},ut.parseFunctionParams=function(t){this.expect(w.parenL),t.params=this.parseBindingList(w.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},ut.parseClass=function(t,e){this.next();var n=this.strict;this.strict=!0,this.parseClassId(t,e),this.parseClassSuper(t);var i=this.enterClassBody(),a=this.startNode(),r=!1;for(a.body=[],this.expect(w.braceL);this.type!==w.braceR;){var o=this.parseClassElement(null!==t.superClass);o&&(a.body.push(o),"MethodDefinition"===o.type&&"constructor"===o.kind?(r&&this.raiseRecoverable(o.start,"Duplicate constructor in the same class"),r=!0):o.key&&"PrivateIdentifier"===o.key.type&&mt(i,o)&&this.raiseRecoverable(o.key.start,"Identifier '#"+o.key.name+"' has already been declared"))}return this.strict=n,this.next(),t.body=this.finishNode(a,"ClassBody"),this.exitClassBody(),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")},ut.parseClassElement=function(t){if(this.eat(w.semi))return null;var e=this.options.ecmaVersion,n=this.startNode(),i="",a=!1,r=!1,o="method",s=!1;if(this.eatContextual("static")){if(e>=13&&this.eat(w.braceL))return this.parseClassStaticBlock(n),n;this.isClassElementNameStart()||this.type===w.star?s=!0:i="static"}if(n.static=s,!i&&e>=8&&this.eatContextual("async")&&(!this.isClassElementNameStart()&&this.type!==w.star||this.canInsertSemicolon()?i="async":r=!0),!i&&(e>=9||!r)&&this.eat(w.star)&&(a=!0),!i&&!r&&!a){var c=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?o=c:i=c)}if(i?(n.computed=!1,n.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),n.key.name=i,this.finishNode(n.key,"Identifier")):this.parseClassElementName(n),e<13||this.type===w.parenL||"method"!==o||a||r){var l=!n.static&&yt(n,"constructor"),u=l&&t;l&&"method"!==o&&this.raise(n.key.start,"Constructor can't have get/set modifier"),n.kind=l?"constructor":o,this.parseClassMethod(n,a,r,u)}else this.parseClassField(n);return n},ut.isClassElementNameStart=function(){return this.type===w.name||this.type===w.privateId||this.type===w.num||this.type===w.string||this.type===w.bracketL||this.type.keyword},ut.parseClassElementName=function(t){this.type===w.privateId?("constructor"===this.value&&this.raise(this.start,"Classes can't have an element named '#constructor'"),t.computed=!1,t.key=this.parsePrivateIdent()):this.parsePropertyName(t)},ut.parseClassMethod=function(t,e,n,i){var a=t.key;"constructor"===t.kind?(e&&this.raise(a.start,"Constructor can't be a generator"),n&&this.raise(a.start,"Constructor can't be an async method")):t.static&&yt(t,"prototype")&&this.raise(a.start,"Classes may not have a static property named prototype");var r=t.value=this.parseMethod(e,n,i);return"get"===t.kind&&0!==r.params.length&&this.raiseRecoverable(r.start,"getter should have no params"),"set"===t.kind&&1!==r.params.length&&this.raiseRecoverable(r.start,"setter should have exactly one param"),"set"===t.kind&&"RestElement"===r.params[0].type&&this.raiseRecoverable(r.params[0].start,"Setter cannot use rest params"),this.finishNode(t,"MethodDefinition")},ut.parseClassField=function(t){if(yt(t,"constructor")?this.raise(t.key.start,"Classes can't have a field named 'constructor'"):t.static&&yt(t,"prototype")&&this.raise(t.key.start,"Classes can't have a static field named 'prototype'"),this.eat(w.eq)){var e=this.currentThisScope(),n=e.inClassFieldInit;e.inClassFieldInit=!0,t.value=this.parseMaybeAssign(),e.inClassFieldInit=n}else t.value=null;return this.semicolon(),this.finishNode(t,"PropertyDefinition")},ut.parseClassStaticBlock=function(t){t.body=[];var e=this.labels;for(this.labels=[],this.enterScope(K|G);this.type!==w.braceR;){var n=this.parseStatement(null);t.body.push(n)}return this.next(),this.exitScope(),this.labels=e,this.finishNode(t,"StaticBlock")},ut.parseClassId=function(t,e){this.type===w.name?(t.id=this.parseIdent(),e&&this.checkLValSimple(t.id,et,!1)):(!0===e&&this.unexpected(),t.id=null)},ut.parseClassSuper=function(t){t.superClass=this.eat(w._extends)?this.parseExprSubscripts(null,!1):null},ut.enterClassBody=function(){var t={declared:Object.create(null),used:[]};return this.privateNameStack.push(t),t.declared},ut.exitClassBody=function(){var t=this.privateNameStack.pop(),e=t.declared,n=t.used;if(this.options.checkPrivateFields)for(var i=this.privateNameStack.length,a=0===i?null:this.privateNameStack[i-1],r=0;r<n.length;++r){var o=n[r];D(e,o.name)||(a?a.used.push(o):this.raiseRecoverable(o.start,"Private field '#"+o.name+"' must be declared in an enclosing class"))}},ut.parseExportAllDeclaration=function(t,e){return this.options.ecmaVersion>=11&&(this.eatContextual("as")?(t.exported=this.parseModuleExportName(),this.checkExport(e,t.exported,this.lastTokStart)):t.exported=null),this.expectContextual("from"),this.type!==w.string&&this.unexpected(),t.source=this.parseExprAtom(),this.semicolon(),this.finishNode(t,"ExportAllDeclaration")},ut.parseExport=function(t,e){if(this.next(),this.eat(w.star))return this.parseExportAllDeclaration(t,e);if(this.eat(w._default))return this.checkExport(e,"default",this.lastTokStart),t.declaration=this.parseExportDefaultDeclaration(),this.finishNode(t,"ExportDefaultDeclaration");if(this.shouldParseExportStatement())t.declaration=this.parseExportDeclaration(t),"VariableDeclaration"===t.declaration.type?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id,t.declaration.id.start),t.specifiers=[],t.source=null;else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))this.type!==w.string&&this.unexpected(),t.source=this.parseExprAtom();else{for(var n=0,i=t.specifiers;n<i.length;n+=1){var a=i[n];this.checkUnreserved(a.local),this.checkLocalExport(a.local),"Literal"===a.local.type&&this.raise(a.local.start,"A string literal cannot be used as an exported binding without `from`.")}t.source=null}this.semicolon()}return this.finishNode(t,"ExportNamedDeclaration")},ut.parseExportDeclaration=function(t){return this.parseStatement(null)},ut.parseExportDefaultDeclaration=function(){var t;if(this.type===w._function||(t=this.isAsyncFunction())){var e=this.startNode();return this.next(),t&&this.next(),this.parseFunction(e,gt|bt,!1,t)}if(this.type===w._class){var n=this.startNode();return this.parseClass(n,"nullableID")}var i=this.parseMaybeAssign();return this.semicolon(),i},ut.checkExport=function(t,e,n){t&&("string"!=typeof e&&(e="Identifier"===e.type?e.name:e.value),D(t,e)&&this.raiseRecoverable(n,"Duplicate export '"+e+"'"),t[e]=!0)},ut.checkPatternExport=function(t,e){var n=e.type;if("Identifier"===n)this.checkExport(t,e,e.start);else if("ObjectPattern"===n)for(var i=0,a=e.properties;i<a.length;i+=1){var r=a[i];this.checkPatternExport(t,r)}else if("ArrayPattern"===n)for(var o=0,s=e.elements;o<s.length;o+=1){var c=s[o];c&&this.checkPatternExport(t,c)}else"Property"===n?this.checkPatternExport(t,e.value):"AssignmentPattern"===n?this.checkPatternExport(t,e.left):"RestElement"===n?this.checkPatternExport(t,e.argument):"ParenthesizedExpression"===n&&this.checkPatternExport(t,e.expression)},ut.checkVariableExport=function(t,e){if(t)for(var n=0,i=e;n<i.length;n+=1){var a=i[n];this.checkPatternExport(t,a.id)}},ut.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},ut.parseExportSpecifier=function(t){var e=this.startNode();return e.local=this.parseModuleExportName(),e.exported=this.eatContextual("as")?this.parseModuleExportName():e.local,this.checkExport(t,e.exported,e.exported.start),this.finishNode(e,"ExportSpecifier")},ut.parseExportSpecifiers=function(t){var e=[],n=!0;for(this.expect(w.braceL);!this.eat(w.braceR);){if(n)n=!1;else if(this.expect(w.comma),this.afterTrailingComma(w.braceR))break;e.push(this.parseExportSpecifier(t))}return e},ut.parseImport=function(t){return this.next(),this.type===w.string?(t.specifiers=ft,t.source=this.parseExprAtom()):(t.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),t.source=this.type===w.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(t,"ImportDeclaration")},ut.parseImportSpecifier=function(){var t=this.startNode();return t.imported=this.parseModuleExportName(),this.eatContextual("as")?t.local=this.parseIdent():(this.checkUnreserved(t.imported),t.local=t.imported),this.checkLValSimple(t.local,et),this.finishNode(t,"ImportSpecifier")},ut.parseImportDefaultSpecifier=function(){var t=this.startNode();return t.local=this.parseIdent(),this.checkLValSimple(t.local,et),this.finishNode(t,"ImportDefaultSpecifier")},ut.parseImportNamespaceSpecifier=function(){var t=this.startNode();return this.next(),this.expectContextual("as"),t.local=this.parseIdent(),this.checkLValSimple(t.local,et),this.finishNode(t,"ImportNamespaceSpecifier")},ut.parseImportSpecifiers=function(){var t=[],e=!0;if(this.type===w.name&&(t.push(this.parseImportDefaultSpecifier()),!this.eat(w.comma)))return t;if(this.type===w.star)return t.push(this.parseImportNamespaceSpecifier()),t;for(this.expect(w.braceL);!this.eat(w.braceR);){if(e)e=!1;else if(this.expect(w.comma),this.afterTrailingComma(w.braceR))break;t.push(this.parseImportSpecifier())}return t},ut.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===w.string){var t=this.parseLiteral(this.value);return M.test(t.value)&&this.raise(t.start,"An export name cannot include a lone surrogate."),t}return this.parseIdent(!0)},ut.adaptDirectivePrologue=function(t){for(var e=0;e<t.length&&this.isDirectiveCandidate(t[e]);++e)t[e].directive=t[e].expression.raw.slice(1,-1)},ut.isDirectiveCandidate=function(t){return this.options.ecmaVersion>=5&&"ExpressionStatement"===t.type&&"Literal"===t.expression.type&&"string"==typeof t.expression.value&&('"'===this.input[t.start]||"'"===this.input[t.start])};var vt=rt.prototype;vt.toAssignable=function(t,e,n){if(this.options.ecmaVersion>=6&&t)switch(t.type){case"Identifier":this.inAsync&&"await"===t.name&&this.raise(t.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern",n&&this.checkPatternErrors(n,!0);for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.toAssignable(r,e),"RestElement"!==r.type||"ArrayPattern"!==r.argument.type&&"ObjectPattern"!==r.argument.type||this.raise(r.argument.start,"Unexpected token")}break;case"Property":"init"!==t.kind&&this.raise(t.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(t.value,e);break;case"ArrayExpression":t.type="ArrayPattern",n&&this.checkPatternErrors(n,!0),this.toAssignableList(t.elements,e);break;case"SpreadElement":t.type="RestElement",this.toAssignable(t.argument,e),"AssignmentPattern"===t.argument.type&&this.raise(t.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":"="!==t.operator&&this.raise(t.left.end,"Only '=' operator can be used for specifying default value."),t.type="AssignmentPattern",delete t.operator,this.toAssignable(t.left,e);break;case"ParenthesizedExpression":this.toAssignable(t.expression,e,n);break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":if(!e)break;default:this.raise(t.start,"Assigning to rvalue")}else n&&this.checkPatternErrors(n,!0);return t},vt.toAssignableList=function(t,e){for(var n=t.length,i=0;i<n;i++){var a=t[i];a&&this.toAssignable(a,e)}if(n){var r=t[n-1];6===this.options.ecmaVersion&&e&&r&&"RestElement"===r.type&&"Identifier"!==r.argument.type&&this.unexpected(r.argument.start)}return t},vt.parseSpread=function(t){var e=this.startNode();return this.next(),e.argument=this.parseMaybeAssign(!1,t),this.finishNode(e,"SpreadElement")},vt.parseRestBinding=function(){var t=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==w.name&&this.unexpected(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")},vt.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case w.bracketL:var t=this.startNode();return this.next(),t.elements=this.parseBindingList(w.bracketR,!0,!0),this.finishNode(t,"ArrayPattern");case w.braceL:return this.parseObj(!0)}return this.parseIdent()},vt.parseBindingList=function(t,e,n,i){for(var a=[],r=!0;!this.eat(t);)if(r?r=!1:this.expect(w.comma),e&&this.type===w.comma)a.push(null);else{if(n&&this.afterTrailingComma(t))break;if(this.type===w.ellipsis){var o=this.parseRestBinding();this.parseBindingListItem(o),a.push(o),this.type===w.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.expect(t);break}a.push(this.parseAssignableListItem(i))}return a},vt.parseAssignableListItem=function(t){var e=this.parseMaybeDefault(this.start,this.startLoc);return this.parseBindingListItem(e),e},vt.parseBindingListItem=function(t){return t},vt.parseMaybeDefault=function(t,e,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(w.eq))return n;var i=this.startNodeAt(t,e);return i.left=n,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},vt.checkLValSimple=function(t,e,n){void 0===e&&(e=Q);var i=e!==Q;switch(t.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(t.name)&&this.raiseRecoverable(t.start,(i?"Binding ":"Assigning to ")+t.name+" in strict mode"),i&&(e===et&&"let"===t.name&&this.raiseRecoverable(t.start,"let is disallowed as a lexically bound name"),n&&(D(n,t.name)&&this.raiseRecoverable(t.start,"Argument name clash"),n[t.name]=!0),e!==at&&this.declareName(t.name,e,t.start));break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":i&&this.raiseRecoverable(t.start,"Binding member expression");break;case"ParenthesizedExpression":return i&&this.raiseRecoverable(t.start,"Binding parenthesized expression"),this.checkLValSimple(t.expression,e,n);default:this.raise(t.start,(i?"Binding":"Assigning to")+" rvalue")}},vt.checkLValPattern=function(t,e,n){switch(void 0===e&&(e=Q),t.type){case"ObjectPattern":for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.checkLValInnerPattern(r,e,n)}break;case"ArrayPattern":for(var o=0,s=t.elements;o<s.length;o+=1){var c=s[o];c&&this.checkLValInnerPattern(c,e,n)}break;default:this.checkLValSimple(t,e,n)}},vt.checkLValInnerPattern=function(t,e,n){switch(void 0===e&&(e=Q),t.type){case"Property":this.checkLValInnerPattern(t.value,e,n);break;case"AssignmentPattern":this.checkLValPattern(t.left,e,n);break;case"RestElement":this.checkLValPattern(t.argument,e,n);break;default:this.checkLValPattern(t,e,n)}};var wt=function(t,e,n,i,a){this.token=t,this.isExpr=!!e,this.preserveSpace=!!n,this.override=i,this.generator=!!a},xt={b_stat:new wt("{",!1),b_expr:new wt("{",!0),b_tmpl:new wt("${",!1),p_stat:new wt("(",!1),p_expr:new wt("(",!0),q_tmpl:new wt("`",!0,!0,(function(t){return t.tryReadTemplateToken()})),f_stat:new wt("function",!1),f_expr:new wt("function",!0),f_expr_gen:new wt("function",!0,!1,null,!0),f_gen:new wt("function",!1,!1,null,!0)},Rt=rt.prototype;Rt.initialContext=function(){return[xt.b_stat]},Rt.curContext=function(){return this.context[this.context.length-1]},Rt.braceIsBlock=function(t){var e=this.curContext();return e===xt.f_expr||e===xt.f_stat||(t!==w.colon||e!==xt.b_stat&&e!==xt.b_expr?t===w._return||t===w.name&&this.exprAllowed?x.test(this.input.slice(this.lastTokEnd,this.start)):t===w._else||t===w.semi||t===w.eof||t===w.parenR||t===w.arrow||(t===w.braceL?e===xt.b_stat:t!==w._var&&t!==w._const&&t!==w.name&&!this.exprAllowed):!e.isExpr)},Rt.inGeneratorContext=function(){for(var t=this.context.length-1;t>=1;t--){var e=this.context[t];if("function"===e.token)return e.generator}return!1},Rt.updateContext=function(t){var e,n=this.type;n.keyword&&t===w.dot?this.exprAllowed=!1:(e=n.updateContext)?e.call(this,t):this.exprAllowed=n.beforeExpr},Rt.overrideContext=function(t){this.curContext()!==t&&(this.context[this.context.length-1]=t)},w.parenR.updateContext=w.braceR.updateContext=function(){if(1!==this.context.length){var t=this.context.pop();t===xt.b_stat&&"function"===this.curContext().token&&(t=this.context.pop()),this.exprAllowed=!t.isExpr}else this.exprAllowed=!0},w.braceL.updateContext=function(t){this.context.push(this.braceIsBlock(t)?xt.b_stat:xt.b_expr),this.exprAllowed=!0},w.dollarBraceL.updateContext=function(){this.context.push(xt.b_tmpl),this.exprAllowed=!0},w.parenL.updateContext=function(t){var e=t===w._if||t===w._for||t===w._with||t===w._while;this.context.push(e?xt.p_stat:xt.p_expr),this.exprAllowed=!0},w.incDec.updateContext=function(){},w._function.updateContext=w._class.updateContext=function(t){!t.beforeExpr||t===w._else||t===w.semi&&this.curContext()!==xt.p_stat||t===w._return&&x.test(this.input.slice(this.lastTokEnd,this.start))||(t===w.colon||t===w.braceL)&&this.curContext()===xt.b_stat?this.context.push(xt.f_stat):this.context.push(xt.f_expr),this.exprAllowed=!1},w.backQuote.updateContext=function(){this.curContext()===xt.q_tmpl?this.context.pop():this.context.push(xt.q_tmpl),this.exprAllowed=!1},w.star.updateContext=function(t){if(t===w._function){var e=this.context.length-1;this.context[e]===xt.f_expr?this.context[e]=xt.f_expr_gen:this.context[e]=xt.f_gen}this.exprAllowed=!0},w.name.updateContext=function(t){var e=!1;this.options.ecmaVersion>=6&&t!==w.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(e=!0),this.exprAllowed=e};var _t=rt.prototype;function kt(t){return"MemberExpression"===t.type&&"PrivateIdentifier"===t.property.type||"ChainExpression"===t.type&&kt(t.expression)}_t.checkPropClash=function(t,e,n){if(!(this.options.ecmaVersion>=9&&"SpreadElement"===t.type||this.options.ecmaVersion>=6&&(t.computed||t.method||t.shorthand))){var i,a=t.key;switch(a.type){case"Identifier":i=a.name;break;case"Literal":i=String(a.value);break;default:return}var r=t.kind;if(this.options.ecmaVersion>=6)"__proto__"===i&&"init"===r&&(e.proto&&(n?n.doubleProto<0&&(n.doubleProto=a.start):this.raiseRecoverable(a.start,"Redefinition of __proto__ property")),e.proto=!0);else{var o=e[i="$"+i];o?("init"===r?this.strict&&o.init||o.get||o.set:o.init||o[r])&&this.raiseRecoverable(a.start,"Redefinition of property"):o=e[i]={init:!1,get:!1,set:!1},o[r]=!0}}},_t.parseExpression=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeAssign(t,e);if(this.type===w.comma){var r=this.startNodeAt(n,i);for(r.expressions=[a];this.eat(w.comma);)r.expressions.push(this.parseMaybeAssign(t,e));return this.finishNode(r,"SequenceExpression")}return a},_t.parseMaybeAssign=function(t,e,n){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(t);this.exprAllowed=!1}var i=!1,a=-1,r=-1,o=-1;e?(a=e.parenthesizedAssign,r=e.trailingComma,o=e.doubleProto,e.parenthesizedAssign=e.trailingComma=-1):(e=new lt,i=!0);var s=this.start,c=this.startLoc;this.type!==w.parenL&&this.type!==w.name||(this.potentialArrowAt=this.start,this.potentialArrowInForAwait="await"===t);var l=this.parseMaybeConditional(t,e);if(n&&(l=n.call(this,l,s,c)),this.type.isAssign){var u=this.startNodeAt(s,c);return u.operator=this.value,this.type===w.eq&&(l=this.toAssignable(l,!1,e)),i||(e.parenthesizedAssign=e.trailingComma=e.doubleProto=-1),e.shorthandAssign>=l.start&&(e.shorthandAssign=-1),this.type===w.eq?this.checkLValPattern(l):this.checkLValSimple(l),u.left=l,this.next(),u.right=this.parseMaybeAssign(t),o>-1&&(e.doubleProto=o),this.finishNode(u,"AssignmentExpression")}return i&&this.checkExpressionErrors(e,!0),a>-1&&(e.parenthesizedAssign=a),r>-1&&(e.trailingComma=r),l},_t.parseMaybeConditional=function(t,e){var n=this.start,i=this.startLoc,a=this.parseExprOps(t,e);if(this.checkExpressionErrors(e))return a;if(this.eat(w.question)){var r=this.startNodeAt(n,i);return r.test=a,r.consequent=this.parseMaybeAssign(),this.expect(w.colon),r.alternate=this.parseMaybeAssign(t),this.finishNode(r,"ConditionalExpression")}return a},_t.parseExprOps=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeUnary(e,!1,!1,t);return this.checkExpressionErrors(e)||a.start===n&&"ArrowFunctionExpression"===a.type?a:this.parseExprOp(a,n,i,-1,t)},_t.parseExprOp=function(t,e,n,i,a){var r=this.type.binop;if(null!=r&&(!a||this.type!==w._in)&&r>i){var o=this.type===w.logicalOR||this.type===w.logicalAND,s=this.type===w.coalesce;s&&(r=w.logicalAND.binop);var c=this.value;this.next();var l=this.start,u=this.startLoc,d=this.parseExprOp(this.parseMaybeUnary(null,!1,!1,a),l,u,r,a),h=this.buildBinary(e,n,t,d,c,o||s);return(o&&this.type===w.coalesce||s&&(this.type===w.logicalOR||this.type===w.logicalAND))&&this.raiseRecoverable(this.start,"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"),this.parseExprOp(h,e,n,i,a)}return t},_t.buildBinary=function(t,e,n,i,a,r){"PrivateIdentifier"===i.type&&this.raise(i.start,"Private identifier can only be left side of binary expression");var o=this.startNodeAt(t,e);return o.left=n,o.operator=a,o.right=i,this.finishNode(o,r?"LogicalExpression":"BinaryExpression")},_t.parseMaybeUnary=function(t,e,n,i){var a,r=this.start,o=this.startLoc;if(this.isContextual("await")&&this.canAwait)a=this.parseAwait(i),e=!0;else if(this.type.prefix){var s=this.startNode(),c=this.type===w.incDec;s.operator=this.value,s.prefix=!0,this.next(),s.argument=this.parseMaybeUnary(null,!0,c,i),this.checkExpressionErrors(t,!0),c?this.checkLValSimple(s.argument):this.strict&&"delete"===s.operator&&"Identifier"===s.argument.type?this.raiseRecoverable(s.start,"Deleting local variable in strict mode"):"delete"===s.operator&&kt(s.argument)?this.raiseRecoverable(s.start,"Private fields can not be deleted"):e=!0,a=this.finishNode(s,c?"UpdateExpression":"UnaryExpression")}else if(e||this.type!==w.privateId){if(a=this.parseExprSubscripts(t,i),this.checkExpressionErrors(t))return a;for(;this.type.postfix&&!this.canInsertSemicolon();){var l=this.startNodeAt(r,o);l.operator=this.value,l.prefix=!1,l.argument=a,this.checkLValSimple(a),this.next(),a=this.finishNode(l,"UpdateExpression")}}else(i||0===this.privateNameStack.length)&&this.options.checkPrivateFields&&this.unexpected(),a=this.parsePrivateIdent(),this.type!==w._in&&this.unexpected();return n||!this.eat(w.starstar)?a:e?void this.unexpected(this.lastTokStart):this.buildBinary(r,o,a,this.parseMaybeUnary(null,!1,!1,i),"**",!1)},_t.parseExprSubscripts=function(t,e){var n=this.start,i=this.startLoc,a=this.parseExprAtom(t,e);if("ArrowFunctionExpression"===a.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd))return a;var r=this.parseSubscripts(a,n,i,!1,e);return t&&"MemberExpression"===r.type&&(t.parenthesizedAssign>=r.start&&(t.parenthesizedAssign=-1),t.parenthesizedBind>=r.start&&(t.parenthesizedBind=-1),t.trailingComma>=r.start&&(t.trailingComma=-1)),r},_t.parseSubscripts=function(t,e,n,i,a){for(var r=this.options.ecmaVersion>=8&&"Identifier"===t.type&&"async"===t.name&&this.lastTokEnd===t.end&&!this.canInsertSemicolon()&&t.end-t.start==5&&this.potentialArrowAt===t.start,o=!1;;){var s=this.parseSubscript(t,e,n,i,r,o,a);if(s.optional&&(o=!0),s===t||"ArrowFunctionExpression"===s.type){if(o){var c=this.startNodeAt(e,n);c.expression=s,s=this.finishNode(c,"ChainExpression")}return s}t=s}},_t.shouldParseAsyncArrow=function(){return!this.canInsertSemicolon()&&this.eat(w.arrow)},_t.parseSubscriptAsyncArrow=function(t,e,n,i){return this.parseArrowExpression(this.startNodeAt(t,e),n,!0,i)},_t.parseSubscript=function(t,e,n,i,a,r,o){var s=this.options.ecmaVersion>=11,c=s&&this.eat(w.questionDot);i&&c&&this.raise(this.lastTokStart,"Optional chaining cannot appear in the callee of new expressions");var l=this.eat(w.bracketL);if(l||c&&this.type!==w.parenL&&this.type!==w.backQuote||this.eat(w.dot)){var u=this.startNodeAt(e,n);u.object=t,l?(u.property=this.parseExpression(),this.expect(w.bracketR)):this.type===w.privateId&&"Super"!==t.type?u.property=this.parsePrivateIdent():u.property=this.parseIdent("never"!==this.options.allowReserved),u.computed=!!l,s&&(u.optional=c),t=this.finishNode(u,"MemberExpression")}else if(!i&&this.eat(w.parenL)){var d=new lt,h=this.yieldPos,f=this.awaitPos,g=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var p=this.parseExprList(w.parenR,this.options.ecmaVersion>=8,!1,d);if(a&&!c&&this.shouldParseAsyncArrow())return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,"Cannot use 'await' as identifier inside an async function"),this.yieldPos=h,this.awaitPos=f,this.awaitIdentPos=g,this.parseSubscriptAsyncArrow(e,n,p,o);this.checkExpressionErrors(d,!0),this.yieldPos=h||this.yieldPos,this.awaitPos=f||this.awaitPos,this.awaitIdentPos=g||this.awaitIdentPos;var b=this.startNodeAt(e,n);b.callee=t,b.arguments=p,s&&(b.optional=c),t=this.finishNode(b,"CallExpression")}else if(this.type===w.backQuote){(c||r)&&this.raise(this.start,"Optional chaining cannot appear in the tag of tagged template expressions");var m=this.startNodeAt(e,n);m.tag=t,m.quasi=this.parseTemplate({isTagged:!0}),t=this.finishNode(m,"TaggedTemplateExpression")}return t},_t.parseExprAtom=function(t,e,n){this.type===w.slash&&this.readRegexp();var i,a=this.potentialArrowAt===this.start;switch(this.type){case w._super:return this.allowSuper||this.raise(this.start,"'super' keyword outside a method"),i=this.startNode(),this.next(),this.type!==w.parenL||this.allowDirectSuper||this.raise(i.start,"super() call outside constructor of a subclass"),this.type!==w.dot&&this.type!==w.bracketL&&this.type!==w.parenL&&this.unexpected(),this.finishNode(i,"Super");case w._this:return i=this.startNode(),this.next(),this.finishNode(i,"ThisExpression");case w.name:var r=this.start,o=this.startLoc,s=this.containsEsc,c=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!s&&"async"===c.name&&!this.canInsertSemicolon()&&this.eat(w._function))return this.overrideContext(xt.f_expr),this.parseFunction(this.startNodeAt(r,o),0,!1,!0,e);if(a&&!this.canInsertSemicolon()){if(this.eat(w.arrow))return this.parseArrowExpression(this.startNodeAt(r,o),[c],!1,e);if(this.options.ecmaVersion>=8&&"async"===c.name&&this.type===w.name&&!s&&(!this.potentialArrowInForAwait||"of"!==this.value||this.containsEsc))return c=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(w.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(r,o),[c],!0,e)}return c;case w.regexp:var l=this.value;return(i=this.parseLiteral(l.value)).regex={pattern:l.pattern,flags:l.flags},i;case w.num:case w.string:return this.parseLiteral(this.value);case w._null:case w._true:case w._false:return(i=this.startNode()).value=this.type===w._null?null:this.type===w._true,i.raw=this.type.keyword,this.next(),this.finishNode(i,"Literal");case w.parenL:var u=this.start,d=this.parseParenAndDistinguishExpression(a,e);return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(d)&&(t.parenthesizedAssign=u),t.parenthesizedBind<0&&(t.parenthesizedBind=u)),d;case w.bracketL:return i=this.startNode(),this.next(),i.elements=this.parseExprList(w.bracketR,!0,!0,t),this.finishNode(i,"ArrayExpression");case w.braceL:return this.overrideContext(xt.b_expr),this.parseObj(!1,t);case w._function:return i=this.startNode(),this.next(),this.parseFunction(i,0);case w._class:return this.parseClass(this.startNode(),!1);case w._new:return this.parseNew();case w.backQuote:return this.parseTemplate();case w._import:return this.options.ecmaVersion>=11?this.parseExprImport(n):this.unexpected();default:return this.parseExprAtomDefault()}},_t.parseExprAtomDefault=function(){this.unexpected()},_t.parseExprImport=function(t){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var n=this.parseIdent(!0);return this.type!==w.parenL||t?this.type===w.dot?(e.meta=n,this.parseImportMeta(e)):void this.unexpected():this.parseDynamicImport(e)},_t.parseDynamicImport=function(t){if(this.next(),t.source=this.parseMaybeAssign(),!this.eat(w.parenR)){var e=this.start;this.eat(w.comma)&&this.eat(w.parenR)?this.raiseRecoverable(e,"Trailing comma is not allowed in import()"):this.unexpected(e)}return this.finishNode(t,"ImportExpression")},_t.parseImportMeta=function(t){this.next();var e=this.containsEsc;return t.property=this.parseIdent(!0),"meta"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for import is 'import.meta'"),e&&this.raiseRecoverable(t.start,"'import.meta' must not contain escaped characters"),"module"===this.options.sourceType||this.options.allowImportExportEverywhere||this.raiseRecoverable(t.start,"Cannot use 'import.meta' outside a module"),this.finishNode(t,"MetaProperty")},_t.parseLiteral=function(t){var e=this.startNode();return e.value=t,e.raw=this.input.slice(this.start,this.end),110===e.raw.charCodeAt(e.raw.length-1)&&(e.bigint=e.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(e,"Literal")},_t.parseParenExpression=function(){this.expect(w.parenL);var t=this.parseExpression();return this.expect(w.parenR),t},_t.shouldParseArrow=function(t){return!this.canInsertSemicolon()},_t.parseParenAndDistinguishExpression=function(t,e){var n,i=this.start,a=this.startLoc,r=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o,s=this.start,c=this.startLoc,l=[],u=!0,d=!1,h=new lt,f=this.yieldPos,g=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==w.parenR;){if(u?u=!1:this.expect(w.comma),r&&this.afterTrailingComma(w.parenR,!0)){d=!0;break}if(this.type===w.ellipsis){o=this.start,l.push(this.parseParenItem(this.parseRestBinding())),this.type===w.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element");break}l.push(this.parseMaybeAssign(!1,h,this.parseParenItem))}var p=this.lastTokEnd,b=this.lastTokEndLoc;if(this.expect(w.parenR),t&&this.shouldParseArrow(l)&&this.eat(w.arrow))return this.checkPatternErrors(h,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=f,this.awaitPos=g,this.parseParenArrowList(i,a,l,e);l.length&&!d||this.unexpected(this.lastTokStart),o&&this.unexpected(o),this.checkExpressionErrors(h,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=g||this.awaitPos,l.length>1?((n=this.startNodeAt(s,c)).expressions=l,this.finishNodeAt(n,"SequenceExpression",p,b)):n=l[0]}else n=this.parseParenExpression();if(this.options.preserveParens){var m=this.startNodeAt(i,a);return m.expression=n,this.finishNode(m,"ParenthesizedExpression")}return n},_t.parseParenItem=function(t){return t},_t.parseParenArrowList=function(t,e,n,i){return this.parseArrowExpression(this.startNodeAt(t,e),n,!1,i)};var Et=[];_t.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var t=this.startNode(),e=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(w.dot)){t.meta=e;var n=this.containsEsc;return t.property=this.parseIdent(!0),"target"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is 'new.target'"),n&&this.raiseRecoverable(t.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(t.start,"'new.target' can only be used in functions and class static block"),this.finishNode(t,"MetaProperty")}var i=this.start,a=this.startLoc;return t.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),i,a,!0,!1),this.eat(w.parenL)?t.arguments=this.parseExprList(w.parenR,this.options.ecmaVersion>=8,!1):t.arguments=Et,this.finishNode(t,"NewExpression")},_t.parseTemplateElement=function(t){var e=t.isTagged,n=this.startNode();return this.type===w.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),n.value={raw:this.value,cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),n.tail=this.type===w.backQuote,this.finishNode(n,"TemplateElement")},_t.parseTemplate=function(t){void 0===t&&(t={});var e=t.isTagged;void 0===e&&(e=!1);var n=this.startNode();this.next(),n.expressions=[];var i=this.parseTemplateElement({isTagged:e});for(n.quasis=[i];!i.tail;)this.type===w.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(w.dollarBraceL),n.expressions.push(this.parseExpression()),this.expect(w.braceR),n.quasis.push(i=this.parseTemplateElement({isTagged:e}));return this.next(),this.finishNode(n,"TemplateLiteral")},_t.isAsyncProp=function(t){return!t.computed&&"Identifier"===t.key.type&&"async"===t.key.name&&(this.type===w.name||this.type===w.num||this.type===w.string||this.type===w.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===w.star)&&!x.test(this.input.slice(this.lastTokEnd,this.start))},_t.parseObj=function(t,e){var n=this.startNode(),i=!0,a={};for(n.properties=[],this.next();!this.eat(w.braceR);){if(i)i=!1;else if(this.expect(w.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(w.braceR))break;var r=this.parseProperty(t,e);t||this.checkPropClash(r,a,e),n.properties.push(r)}return this.finishNode(n,t?"ObjectPattern":"ObjectExpression")},_t.parseProperty=function(t,e){var n,i,a,r,o=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(w.ellipsis))return t?(o.argument=this.parseIdent(!1),this.type===w.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.finishNode(o,"RestElement")):(o.argument=this.parseMaybeAssign(!1,e),this.type===w.comma&&e&&e.trailingComma<0&&(e.trailingComma=this.start),this.finishNode(o,"SpreadElement"));this.options.ecmaVersion>=6&&(o.method=!1,o.shorthand=!1,(t||e)&&(a=this.start,r=this.startLoc),t||(n=this.eat(w.star)));var s=this.containsEsc;return this.parsePropertyName(o),!t&&!s&&this.options.ecmaVersion>=8&&!n&&this.isAsyncProp(o)?(i=!0,n=this.options.ecmaVersion>=9&&this.eat(w.star),this.parsePropertyName(o)):i=!1,this.parsePropertyValue(o,t,n,i,a,r,e,s),this.finishNode(o,"Property")},_t.parseGetterSetter=function(t){t.kind=t.key.name,this.parsePropertyName(t),t.value=this.parseMethod(!1);var e="get"===t.kind?0:1;if(t.value.params.length!==e){var n=t.value.start;"get"===t.kind?this.raiseRecoverable(n,"getter should have no params"):this.raiseRecoverable(n,"setter should have exactly one param")}else"set"===t.kind&&"RestElement"===t.value.params[0].type&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")},_t.parsePropertyValue=function(t,e,n,i,a,r,o,s){(n||i)&&this.type===w.colon&&this.unexpected(),this.eat(w.colon)?(t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),t.kind="init"):this.options.ecmaVersion>=6&&this.type===w.parenL?(e&&this.unexpected(),t.kind="init",t.method=!0,t.value=this.parseMethod(n,i)):e||s||!(this.options.ecmaVersion>=5)||t.computed||"Identifier"!==t.key.type||"get"!==t.key.name&&"set"!==t.key.name||this.type===w.comma||this.type===w.braceR||this.type===w.eq?this.options.ecmaVersion>=6&&!t.computed&&"Identifier"===t.key.type?((n||i)&&this.unexpected(),this.checkUnreserved(t.key),"await"!==t.key.name||this.awaitIdentPos||(this.awaitIdentPos=a),t.kind="init",e?t.value=this.parseMaybeDefault(a,r,this.copyNode(t.key)):this.type===w.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),t.value=this.parseMaybeDefault(a,r,this.copyNode(t.key))):t.value=this.copyNode(t.key),t.shorthand=!0):this.unexpected():((n||i)&&this.unexpected(),this.parseGetterSetter(t))},_t.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(w.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(w.bracketR),t.key;t.computed=!1}return t.key=this.type===w.num||this.type===w.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},_t.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)},_t.parseMethod=function(t,e,n){var i=this.startNode(),a=this.yieldPos,r=this.awaitPos,o=this.awaitIdentPos;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=t),this.options.ecmaVersion>=8&&(i.async=!!e),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(J(e,i.generator)|G|(n?Z:0)),this.expect(w.parenL),i.params=this.parseBindingList(w.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1,!0,!1),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=o,this.finishNode(i,"FunctionExpression")},_t.parseArrowExpression=function(t,e,n,i){var a=this.yieldPos,r=this.awaitPos,o=this.awaitIdentPos;return this.enterScope(J(n,!1)|W),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!n),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0,!1,i),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=o,this.finishNode(t,"ArrowFunctionExpression")},_t.parseFunctionBody=function(t,e,n,i){var a=e&&this.type!==w.braceL,r=this.strict,o=!1;if(a)t.body=this.parseMaybeAssign(i),t.expression=!0,this.checkParams(t,!1);else{var s=this.options.ecmaVersion>=7&&!this.isSimpleParamList(t.params);r&&!s||(o=this.strictDirective(this.end))&&s&&this.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list");var c=this.labels;this.labels=[],o&&(this.strict=!0),this.checkParams(t,!r&&!o&&!e&&!n&&this.isSimpleParamList(t.params)),this.strict&&t.id&&this.checkLValSimple(t.id,at),t.body=this.parseBlock(!1,void 0,o&&!r),t.expression=!1,this.adaptDirectivePrologue(t.body.body),this.labels=c}this.exitScope()},_t.isSimpleParamList=function(t){for(var e=0,n=t;e<n.length;e+=1)if("Identifier"!==n[e].type)return!1;return!0},_t.checkParams=function(t,e){for(var n=Object.create(null),i=0,a=t.params;i<a.length;i+=1){var r=a[i];this.checkLValInnerPattern(r,tt,e?null:n)}},_t.parseExprList=function(t,e,n,i){for(var a=[],r=!0;!this.eat(t);){if(r)r=!1;else if(this.expect(w.comma),e&&this.afterTrailingComma(t))break;var o=void 0;n&&this.type===w.comma?o=null:this.type===w.ellipsis?(o=this.parseSpread(i),i&&this.type===w.comma&&i.trailingComma<0&&(i.trailingComma=this.start)):o=this.parseMaybeAssign(!1,i),a.push(o)}return a},_t.checkUnreserved=function(t){var e=t.start,n=t.end,i=t.name;this.inGenerator&&"yield"===i&&this.raiseRecoverable(e,"Cannot use 'yield' as identifier inside a generator"),this.inAsync&&"await"===i&&this.raiseRecoverable(e,"Cannot use 'await' as identifier inside an async function"),this.currentThisScope().inClassFieldInit&&"arguments"===i&&this.raiseRecoverable(e,"Cannot use 'arguments' in class field initializer"),!this.inClassStaticBlock||"arguments"!==i&&"await"!==i||this.raise(e,"Cannot use "+i+" in class static initialization block"),this.keywords.test(i)&&this.raise(e,"Unexpected keyword '"+i+"'"),this.options.ecmaVersion<6&&-1!==this.input.slice(e,n).indexOf("\\")||(this.strict?this.reservedWordsStrict:this.reservedWords).test(i)&&(this.inAsync||"await"!==i||this.raiseRecoverable(e,"Cannot use keyword 'await' outside an async function"),this.raiseRecoverable(e,"The keyword '"+i+"' is reserved"))},_t.parseIdent=function(t){var e=this.parseIdentNode();return this.next(!!t),this.finishNode(e,"Identifier"),t||(this.checkUnreserved(e),"await"!==e.name||this.awaitIdentPos||(this.awaitIdentPos=e.start)),e},_t.parseIdentNode=function(){var t=this.startNode();return this.type===w.name?t.name=this.value:this.type.keyword?(t.name=this.type.keyword,"class"!==t.name&&"function"!==t.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),t},_t.parsePrivateIdent=function(){var t=this.startNode();return this.type===w.privateId?t.name=this.value:this.unexpected(),this.next(),this.finishNode(t,"PrivateIdentifier"),this.options.checkPrivateFields&&(0===this.privateNameStack.length?this.raise(t.start,"Private field '#"+t.name+"' must be declared in an enclosing class"):this.privateNameStack[this.privateNameStack.length-1].used.push(t)),t},_t.parseYield=function(t){this.yieldPos||(this.yieldPos=this.start);var e=this.startNode();return this.next(),this.type===w.semi||this.canInsertSemicolon()||this.type!==w.star&&!this.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(w.star),e.argument=this.parseMaybeAssign(t)),this.finishNode(e,"YieldExpression")},_t.parseAwait=function(t){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!0,!1,t),this.finishNode(e,"AwaitExpression")};var Ct=rt.prototype;Ct.raise=function(t,e){var n=P(this.input,t);e+=" ("+n.line+":"+n.column+")";var i=new SyntaxError(e);throw i.pos=t,i.loc=n,i.raisedAt=this.pos,i},Ct.raiseRecoverable=Ct.raise,Ct.curPosition=function(){if(this.options.locations)return new N(this.curLine,this.pos-this.lineStart)};var St=rt.prototype,Tt=function(t){this.flags=t,this.var=[],this.lexical=[],this.functions=[],this.inClassFieldInit=!1};St.enterScope=function(t){this.scopeStack.push(new Tt(t))},St.exitScope=function(){this.scopeStack.pop()},St.treatFunctionsAsVarInScope=function(t){return t.flags&U||!this.inModule&&t.flags&H},St.declareName=function(t,e,n){var i=!1;if(e===et){var a=this.currentScope();i=a.lexical.indexOf(t)>-1||a.functions.indexOf(t)>-1||a.var.indexOf(t)>-1,a.lexical.push(t),this.inModule&&a.flags&H&&delete this.undefinedExports[t]}else if(e===it)this.currentScope().lexical.push(t);else if(e===nt){var r=this.currentScope();i=this.treatFunctionsAsVar?r.lexical.indexOf(t)>-1:r.lexical.indexOf(t)>-1||r.var.indexOf(t)>-1,r.functions.push(t)}else for(var o=this.scopeStack.length-1;o>=0;--o){var s=this.scopeStack[o];if(s.lexical.indexOf(t)>-1&&!(s.flags&Y&&s.lexical[0]===t)||!this.treatFunctionsAsVarInScope(s)&&s.functions.indexOf(t)>-1){i=!0;break}if(s.var.push(t),this.inModule&&s.flags&H&&delete this.undefinedExports[t],s.flags&X)break}i&&this.raiseRecoverable(n,"Identifier '"+t+"' has already been declared")},St.checkLocalExport=function(t){-1===this.scopeStack[0].lexical.indexOf(t.name)&&-1===this.scopeStack[0].var.indexOf(t.name)&&(this.undefinedExports[t.name]=t)},St.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},St.currentVarScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(e.flags&X)return e}},St.currentThisScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(e.flags&X&&!(e.flags&W))return e}};var At=function(t,e,n){this.type="",this.start=e,this.end=0,t.options.locations&&(this.loc=new B(t,n)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[e,0])},Dt=rt.prototype;function It(t,e,n,i){return t.type=e,t.end=n,this.options.locations&&(t.loc.end=i),this.options.ranges&&(t.range[1]=n),t}Dt.startNode=function(){return new At(this,this.start,this.startLoc)},Dt.startNodeAt=function(t,e){return new At(this,t,e)},Dt.finishNode=function(t,e){return It.call(this,t,e,this.lastTokEnd,this.lastTokEndLoc)},Dt.finishNodeAt=function(t,e,n,i){return It.call(this,t,e,n,i)},Dt.copyNode=function(t){var e=new At(this,t.start,this.startLoc);for(var n in t)e[n]=t[n];return e};var Lt="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",Ot=Lt+" Extended_Pictographic",Mt=Ot+" EBase EComp EMod EPres ExtPict",Nt={9:Lt,10:Ot,11:Ot,12:Mt,13:Mt,14:Mt},Bt={9:"",10:"",11:"",12:"",13:"",14:"Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji"},Pt="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",Ft="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",jt=Ft+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",$t=jt+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",zt=$t+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",Ht=zt+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",Ut={9:Ft,10:jt,11:$t,12:zt,13:Ht,14:Ht+" Hrkt Katakana_Or_Hiragana Kawi Nag_Mundari Nagm Unknown Zzzz"},Vt={};function qt(t){var e=Vt[t]={binary:L(Nt[t]+" "+Pt),binaryOfStrings:L(Bt[t]),nonBinary:{General_Category:L(Pt),Script:L(Ut[t])}};e.nonBinary.Script_Extensions=e.nonBinary.Script,e.nonBinary.gc=e.nonBinary.General_Category,e.nonBinary.sc=e.nonBinary.Script,e.nonBinary.scx=e.nonBinary.Script_Extensions}for(var Wt=0,Yt=[9,10,11,12,13,14];Wt<Yt.length;Wt+=1)qt(Yt[Wt]);var Gt=rt.prototype,Zt=function(t){this.parser=t,this.validFlags="gim"+(t.options.ecmaVersion>=6?"uy":"")+(t.options.ecmaVersion>=9?"s":"")+(t.options.ecmaVersion>=13?"d":"")+(t.options.ecmaVersion>=15?"v":""),this.unicodeProperties=Vt[t.options.ecmaVersion>=14?14:t.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function Kt(t){return 36===t||t>=40&&t<=43||46===t||63===t||t>=91&&t<=94||t>=123&&t<=125}function Xt(t){return h(t,!0)||36===t||95===t}function Jt(t){return f(t,!0)||36===t||95===t||8204===t||8205===t}function Qt(t){return t>=65&&t<=90||t>=97&&t<=122}function te(t){return t>=0&&t<=1114111}Zt.prototype.reset=function(t,e,n){var i=-1!==n.indexOf("v"),a=-1!==n.indexOf("u");this.start=0|t,this.source=e+"",this.flags=n,i&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=a&&this.parser.options.ecmaVersion>=9)},Zt.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)},Zt.prototype.at=function(t,e){void 0===e&&(e=!1);var n=this.source,i=n.length;if(t>=i)return-1;var a=n.charCodeAt(t);if(!e&&!this.switchU||a<=55295||a>=57344||t+1>=i)return a;var r=n.charCodeAt(t+1);return r>=56320&&r<=57343?(a<<10)+r-56613888:a},Zt.prototype.nextIndex=function(t,e){void 0===e&&(e=!1);var n=this.source,i=n.length;if(t>=i)return i;var a,r=n.charCodeAt(t);return!e&&!this.switchU||r<=55295||r>=57344||t+1>=i||(a=n.charCodeAt(t+1))<56320||a>57343?t+1:t+2},Zt.prototype.current=function(t){return void 0===t&&(t=!1),this.at(this.pos,t)},Zt.prototype.lookahead=function(t){return void 0===t&&(t=!1),this.at(this.nextIndex(this.pos,t),t)},Zt.prototype.advance=function(t){void 0===t&&(t=!1),this.pos=this.nextIndex(this.pos,t)},Zt.prototype.eat=function(t,e){return void 0===e&&(e=!1),this.current(e)===t&&(this.advance(e),!0)},Zt.prototype.eatChars=function(t,e){void 0===e&&(e=!1);for(var n=this.pos,i=0,a=t;i<a.length;i+=1){var r=a[i],o=this.at(n,e);if(-1===o||o!==r)return!1;n=this.nextIndex(n,e)}return this.pos=n,!0},Gt.validateRegExpFlags=function(t){for(var e=t.validFlags,n=t.flags,i=!1,a=!1,r=0;r<n.length;r++){var o=n.charAt(r);-1===e.indexOf(o)&&this.raise(t.start,"Invalid regular expression flag"),n.indexOf(o,r+1)>-1&&this.raise(t.start,"Duplicate regular expression flag"),"u"===o&&(i=!0),"v"===o&&(a=!0)}this.options.ecmaVersion>=15&&i&&a&&this.raise(t.start,"Invalid regular expression flag")},Gt.validateRegExpPattern=function(t){this.regexp_pattern(t),!t.switchN&&this.options.ecmaVersion>=9&&t.groupNames.length>0&&(t.switchN=!0,this.regexp_pattern(t))},Gt.regexp_pattern=function(t){t.pos=0,t.lastIntValue=0,t.lastStringValue="",t.lastAssertionIsQuantifiable=!1,t.numCapturingParens=0,t.maxBackReference=0,t.groupNames.length=0,t.backReferenceNames.length=0,this.regexp_disjunction(t),t.pos!==t.source.length&&(t.eat(41)&&t.raise("Unmatched ')'"),(t.eat(93)||t.eat(125))&&t.raise("Lone quantifier brackets")),t.maxBackReference>t.numCapturingParens&&t.raise("Invalid escape");for(var e=0,n=t.backReferenceNames;e<n.length;e+=1){var i=n[e];-1===t.groupNames.indexOf(i)&&t.raise("Invalid named capture referenced")}},Gt.regexp_disjunction=function(t){for(this.regexp_alternative(t);t.eat(124);)this.regexp_alternative(t);this.regexp_eatQuantifier(t,!0)&&t.raise("Nothing to repeat"),t.eat(123)&&t.raise("Lone quantifier brackets")},Gt.regexp_alternative=function(t){for(;t.pos<t.source.length&&this.regexp_eatTerm(t););},Gt.regexp_eatTerm=function(t){return this.regexp_eatAssertion(t)?(t.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(t)&&t.switchU&&t.raise("Invalid quantifier"),!0):!!(t.switchU?this.regexp_eatAtom(t):this.regexp_eatExtendedAtom(t))&&(this.regexp_eatQuantifier(t),!0)},Gt.regexp_eatAssertion=function(t){var e=t.pos;if(t.lastAssertionIsQuantifiable=!1,t.eat(94)||t.eat(36))return!0;if(t.eat(92)){if(t.eat(66)||t.eat(98))return!0;t.pos=e}if(t.eat(40)&&t.eat(63)){var n=!1;if(this.options.ecmaVersion>=9&&(n=t.eat(60)),t.eat(61)||t.eat(33))return this.regexp_disjunction(t),t.eat(41)||t.raise("Unterminated group"),t.lastAssertionIsQuantifiable=!n,!0}return t.pos=e,!1},Gt.regexp_eatQuantifier=function(t,e){return void 0===e&&(e=!1),!!this.regexp_eatQuantifierPrefix(t,e)&&(t.eat(63),!0)},Gt.regexp_eatQuantifierPrefix=function(t,e){return t.eat(42)||t.eat(43)||t.eat(63)||this.regexp_eatBracedQuantifier(t,e)},Gt.regexp_eatBracedQuantifier=function(t,e){var n=t.pos;if(t.eat(123)){var i=0,a=-1;if(this.regexp_eatDecimalDigits(t)&&(i=t.lastIntValue,t.eat(44)&&this.regexp_eatDecimalDigits(t)&&(a=t.lastIntValue),t.eat(125)))return-1!==a&&a<i&&!e&&t.raise("numbers out of order in {} quantifier"),!0;t.switchU&&!e&&t.raise("Incomplete quantifier"),t.pos=n}return!1},Gt.regexp_eatAtom=function(t){return this.regexp_eatPatternCharacters(t)||t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)},Gt.regexp_eatReverseSolidusAtomEscape=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatAtomEscape(t))return!0;t.pos=e}return!1},Gt.regexp_eatUncapturingGroup=function(t){var e=t.pos;if(t.eat(40)){if(t.eat(63)&&t.eat(58)){if(this.regexp_disjunction(t),t.eat(41))return!0;t.raise("Unterminated group")}t.pos=e}return!1},Gt.regexp_eatCapturingGroup=function(t){if(t.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(t):63===t.current()&&t.raise("Invalid group"),this.regexp_disjunction(t),t.eat(41))return t.numCapturingParens+=1,!0;t.raise("Unterminated group")}return!1},Gt.regexp_eatExtendedAtom=function(t){return t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)||this.regexp_eatInvalidBracedQuantifier(t)||this.regexp_eatExtendedPatternCharacter(t)},Gt.regexp_eatInvalidBracedQuantifier=function(t){return this.regexp_eatBracedQuantifier(t,!0)&&t.raise("Nothing to repeat"),!1},Gt.regexp_eatSyntaxCharacter=function(t){var e=t.current();return!!Kt(e)&&(t.lastIntValue=e,t.advance(),!0)},Gt.regexp_eatPatternCharacters=function(t){for(var e=t.pos,n=0;-1!==(n=t.current())&&!Kt(n);)t.advance();return t.pos!==e},Gt.regexp_eatExtendedPatternCharacter=function(t){var e=t.current();return!(-1===e||36===e||e>=40&&e<=43||46===e||63===e||91===e||94===e||124===e||(t.advance(),0))},Gt.regexp_groupSpecifier=function(t){if(t.eat(63)){if(this.regexp_eatGroupName(t))return-1!==t.groupNames.indexOf(t.lastStringValue)&&t.raise("Duplicate capture group name"),void t.groupNames.push(t.lastStringValue);t.raise("Invalid group")}},Gt.regexp_eatGroupName=function(t){if(t.lastStringValue="",t.eat(60)){if(this.regexp_eatRegExpIdentifierName(t)&&t.eat(62))return!0;t.raise("Invalid capture group name")}return!1},Gt.regexp_eatRegExpIdentifierName=function(t){if(t.lastStringValue="",this.regexp_eatRegExpIdentifierStart(t)){for(t.lastStringValue+=O(t.lastIntValue);this.regexp_eatRegExpIdentifierPart(t);)t.lastStringValue+=O(t.lastIntValue);return!0}return!1},Gt.regexp_eatRegExpIdentifierStart=function(t){var e=t.pos,n=this.options.ecmaVersion>=11,i=t.current(n);return t.advance(n),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(t,n)&&(i=t.lastIntValue),Xt(i)?(t.lastIntValue=i,!0):(t.pos=e,!1)},Gt.regexp_eatRegExpIdentifierPart=function(t){var e=t.pos,n=this.options.ecmaVersion>=11,i=t.current(n);return t.advance(n),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(t,n)&&(i=t.lastIntValue),Jt(i)?(t.lastIntValue=i,!0):(t.pos=e,!1)},Gt.regexp_eatAtomEscape=function(t){return!!(this.regexp_eatBackReference(t)||this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)||t.switchN&&this.regexp_eatKGroupName(t))||(t.switchU&&(99===t.current()&&t.raise("Invalid unicode escape"),t.raise("Invalid escape")),!1)},Gt.regexp_eatBackReference=function(t){var e=t.pos;if(this.regexp_eatDecimalEscape(t)){var n=t.lastIntValue;if(t.switchU)return n>t.maxBackReference&&(t.maxBackReference=n),!0;if(n<=t.numCapturingParens)return!0;t.pos=e}return!1},Gt.regexp_eatKGroupName=function(t){if(t.eat(107)){if(this.regexp_eatGroupName(t))return t.backReferenceNames.push(t.lastStringValue),!0;t.raise("Invalid named reference")}return!1},Gt.regexp_eatCharacterEscape=function(t){return this.regexp_eatControlEscape(t)||this.regexp_eatCControlLetter(t)||this.regexp_eatZero(t)||this.regexp_eatHexEscapeSequence(t)||this.regexp_eatRegExpUnicodeEscapeSequence(t,!1)||!t.switchU&&this.regexp_eatLegacyOctalEscapeSequence(t)||this.regexp_eatIdentityEscape(t)},Gt.regexp_eatCControlLetter=function(t){var e=t.pos;if(t.eat(99)){if(this.regexp_eatControlLetter(t))return!0;t.pos=e}return!1},Gt.regexp_eatZero=function(t){return 48===t.current()&&!ue(t.lookahead())&&(t.lastIntValue=0,t.advance(),!0)},Gt.regexp_eatControlEscape=function(t){var e=t.current();return 116===e?(t.lastIntValue=9,t.advance(),!0):110===e?(t.lastIntValue=10,t.advance(),!0):118===e?(t.lastIntValue=11,t.advance(),!0):102===e?(t.lastIntValue=12,t.advance(),!0):114===e&&(t.lastIntValue=13,t.advance(),!0)},Gt.regexp_eatControlLetter=function(t){var e=t.current();return!!Qt(e)&&(t.lastIntValue=e%32,t.advance(),!0)},Gt.regexp_eatRegExpUnicodeEscapeSequence=function(t,e){void 0===e&&(e=!1);var n=t.pos,i=e||t.switchU;if(t.eat(117)){if(this.regexp_eatFixedHexDigits(t,4)){var a=t.lastIntValue;if(i&&a>=55296&&a<=56319){var r=t.pos;if(t.eat(92)&&t.eat(117)&&this.regexp_eatFixedHexDigits(t,4)){var o=t.lastIntValue;if(o>=56320&&o<=57343)return t.lastIntValue=1024*(a-55296)+(o-56320)+65536,!0}t.pos=r,t.lastIntValue=a}return!0}if(i&&t.eat(123)&&this.regexp_eatHexDigits(t)&&t.eat(125)&&te(t.lastIntValue))return!0;i&&t.raise("Invalid unicode escape"),t.pos=n}return!1},Gt.regexp_eatIdentityEscape=function(t){if(t.switchU)return!!this.regexp_eatSyntaxCharacter(t)||!!t.eat(47)&&(t.lastIntValue=47,!0);var e=t.current();return!(99===e||t.switchN&&107===e||(t.lastIntValue=e,t.advance(),0))},Gt.regexp_eatDecimalEscape=function(t){t.lastIntValue=0;var e=t.current();if(e>=49&&e<=57){do{t.lastIntValue=10*t.lastIntValue+(e-48),t.advance()}while((e=t.current())>=48&&e<=57);return!0}return!1};var ee=0,ne=1,ie=2;function ae(t){return 100===t||68===t||115===t||83===t||119===t||87===t}function re(t){return Qt(t)||95===t}function oe(t){return re(t)||ue(t)}function se(t){return 33===t||t>=35&&t<=38||t>=42&&t<=44||46===t||t>=58&&t<=64||94===t||96===t||126===t}function ce(t){return 40===t||41===t||45===t||47===t||t>=91&&t<=93||t>=123&&t<=125}function le(t){return 33===t||35===t||37===t||38===t||44===t||45===t||t>=58&&t<=62||64===t||96===t||126===t}function ue(t){return t>=48&&t<=57}function de(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function he(t){return t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:t-48}function fe(t){return t>=48&&t<=55}Gt.regexp_eatCharacterClassEscape=function(t){var e=t.current();if(ae(e))return t.lastIntValue=-1,t.advance(),ne;var n=!1;if(t.switchU&&this.options.ecmaVersion>=9&&((n=80===e)||112===e)){var i;if(t.lastIntValue=-1,t.advance(),t.eat(123)&&(i=this.regexp_eatUnicodePropertyValueExpression(t))&&t.eat(125))return n&&i===ie&&t.raise("Invalid property name"),i;t.raise("Invalid property name")}return ee},Gt.regexp_eatUnicodePropertyValueExpression=function(t){var e=t.pos;if(this.regexp_eatUnicodePropertyName(t)&&t.eat(61)){var n=t.lastStringValue;if(this.regexp_eatUnicodePropertyValue(t)){var i=t.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(t,n,i),ne}}if(t.pos=e,this.regexp_eatLoneUnicodePropertyNameOrValue(t)){var a=t.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(t,a)}return ee},Gt.regexp_validateUnicodePropertyNameAndValue=function(t,e,n){D(t.unicodeProperties.nonBinary,e)||t.raise("Invalid property name"),t.unicodeProperties.nonBinary[e].test(n)||t.raise("Invalid property value")},Gt.regexp_validateUnicodePropertyNameOrValue=function(t,e){return t.unicodeProperties.binary.test(e)?ne:t.switchV&&t.unicodeProperties.binaryOfStrings.test(e)?ie:void t.raise("Invalid property name")},Gt.regexp_eatUnicodePropertyName=function(t){var e=0;for(t.lastStringValue="";re(e=t.current());)t.lastStringValue+=O(e),t.advance();return""!==t.lastStringValue},Gt.regexp_eatUnicodePropertyValue=function(t){var e=0;for(t.lastStringValue="";oe(e=t.current());)t.lastStringValue+=O(e),t.advance();return""!==t.lastStringValue},Gt.regexp_eatLoneUnicodePropertyNameOrValue=function(t){return this.regexp_eatUnicodePropertyValue(t)},Gt.regexp_eatCharacterClass=function(t){if(t.eat(91)){var e=t.eat(94),n=this.regexp_classContents(t);return t.eat(93)||t.raise("Unterminated character class"),e&&n===ie&&t.raise("Negated character class may contain strings"),!0}return!1},Gt.regexp_classContents=function(t){return 93===t.current()?ne:t.switchV?this.regexp_classSetExpression(t):(this.regexp_nonEmptyClassRanges(t),ne)},Gt.regexp_nonEmptyClassRanges=function(t){for(;this.regexp_eatClassAtom(t);){var e=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassAtom(t)){var n=t.lastIntValue;!t.switchU||-1!==e&&-1!==n||t.raise("Invalid character class"),-1!==e&&-1!==n&&e>n&&t.raise("Range out of order in character class")}}},Gt.regexp_eatClassAtom=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatClassEscape(t))return!0;if(t.switchU){var n=t.current();(99===n||fe(n))&&t.raise("Invalid class escape"),t.raise("Invalid escape")}t.pos=e}var i=t.current();return 93!==i&&(t.lastIntValue=i,t.advance(),!0)},Gt.regexp_eatClassEscape=function(t){var e=t.pos;if(t.eat(98))return t.lastIntValue=8,!0;if(t.switchU&&t.eat(45))return t.lastIntValue=45,!0;if(!t.switchU&&t.eat(99)){if(this.regexp_eatClassControlLetter(t))return!0;t.pos=e}return this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)},Gt.regexp_classSetExpression=function(t){var e,n=ne;if(this.regexp_eatClassSetRange(t));else if(e=this.regexp_eatClassSetOperand(t)){e===ie&&(n=ie);for(var i=t.pos;t.eatChars([38,38]);)38!==t.current()&&(e=this.regexp_eatClassSetOperand(t))?e!==ie&&(n=ne):t.raise("Invalid character in character class");if(i!==t.pos)return n;for(;t.eatChars([45,45]);)this.regexp_eatClassSetOperand(t)||t.raise("Invalid character in character class");if(i!==t.pos)return n}else t.raise("Invalid character in character class");for(;;)if(!this.regexp_eatClassSetRange(t)){if(!(e=this.regexp_eatClassSetOperand(t)))return n;e===ie&&(n=ie)}},Gt.regexp_eatClassSetRange=function(t){var e=t.pos;if(this.regexp_eatClassSetCharacter(t)){var n=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassSetCharacter(t)){var i=t.lastIntValue;return-1!==n&&-1!==i&&n>i&&t.raise("Range out of order in character class"),!0}t.pos=e}return!1},Gt.regexp_eatClassSetOperand=function(t){return this.regexp_eatClassSetCharacter(t)?ne:this.regexp_eatClassStringDisjunction(t)||this.regexp_eatNestedClass(t)},Gt.regexp_eatNestedClass=function(t){var e=t.pos;if(t.eat(91)){var n=t.eat(94),i=this.regexp_classContents(t);if(t.eat(93))return n&&i===ie&&t.raise("Negated character class may contain strings"),i;t.pos=e}if(t.eat(92)){var a=this.regexp_eatCharacterClassEscape(t);if(a)return a;t.pos=e}return null},Gt.regexp_eatClassStringDisjunction=function(t){var e=t.pos;if(t.eatChars([92,113])){if(t.eat(123)){var n=this.regexp_classStringDisjunctionContents(t);if(t.eat(125))return n}else t.raise("Invalid escape");t.pos=e}return null},Gt.regexp_classStringDisjunctionContents=function(t){for(var e=this.regexp_classString(t);t.eat(124);)this.regexp_classString(t)===ie&&(e=ie);return e},Gt.regexp_classString=function(t){for(var e=0;this.regexp_eatClassSetCharacter(t);)e++;return 1===e?ne:ie},Gt.regexp_eatClassSetCharacter=function(t){var e=t.pos;if(t.eat(92))return!(!this.regexp_eatCharacterEscape(t)&&!this.regexp_eatClassSetReservedPunctuator(t)&&(t.eat(98)?(t.lastIntValue=8,0):(t.pos=e,1)));var n=t.current();return!(n<0||n===t.lookahead()&&se(n)||ce(n)||(t.advance(),t.lastIntValue=n,0))},Gt.regexp_eatClassSetReservedPunctuator=function(t){var e=t.current();return!!le(e)&&(t.lastIntValue=e,t.advance(),!0)},Gt.regexp_eatClassControlLetter=function(t){var e=t.current();return!(!ue(e)&&95!==e||(t.lastIntValue=e%32,t.advance(),0))},Gt.regexp_eatHexEscapeSequence=function(t){var e=t.pos;if(t.eat(120)){if(this.regexp_eatFixedHexDigits(t,2))return!0;t.switchU&&t.raise("Invalid escape"),t.pos=e}return!1},Gt.regexp_eatDecimalDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;ue(n=t.current());)t.lastIntValue=10*t.lastIntValue+(n-48),t.advance();return t.pos!==e},Gt.regexp_eatHexDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;de(n=t.current());)t.lastIntValue=16*t.lastIntValue+he(n),t.advance();return t.pos!==e},Gt.regexp_eatLegacyOctalEscapeSequence=function(t){if(this.regexp_eatOctalDigit(t)){var e=t.lastIntValue;if(this.regexp_eatOctalDigit(t)){var n=t.lastIntValue;e<=3&&this.regexp_eatOctalDigit(t)?t.lastIntValue=64*e+8*n+t.lastIntValue:t.lastIntValue=8*e+n}else t.lastIntValue=e;return!0}return!1},Gt.regexp_eatOctalDigit=function(t){var e=t.current();return fe(e)?(t.lastIntValue=e-48,t.advance(),!0):(t.lastIntValue=0,!1)},Gt.regexp_eatFixedHexDigits=function(t,e){var n=t.pos;t.lastIntValue=0;for(var i=0;i<e;++i){var a=t.current();if(!de(a))return t.pos=n,!1;t.lastIntValue=16*t.lastIntValue+he(a),t.advance()}return!0};var ge=function(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,t.options.locations&&(this.loc=new B(t,t.startLoc,t.endLoc)),t.options.ranges&&(this.range=[t.start,t.end])},pe=rt.prototype;function be(t,e){return e?parseInt(t,8):parseFloat(t.replace(/_/g,""))}function me(t){return"function"!=typeof BigInt?null:BigInt(t.replace(/_/g,""))}pe.next=function(t){!t&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new ge(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},pe.getToken=function(){return this.next(),new ge(this)},"undefined"!=typeof Symbol&&(pe[Symbol.iterator]=function(){var t=this;return{next:function(){var e=t.getToken();return{done:e.type===w.eof,value:e}}}}),pe.nextToken=function(){var t=this.curContext();return t&&t.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(w.eof):t.override?t.override(this):void this.readToken(this.fullCharCodeAtPos())},pe.readToken=function(t){return h(t,this.options.ecmaVersion>=6)||92===t?this.readWord():this.getTokenFromCode(t)},pe.fullCharCodeAtPos=function(){var t=this.input.charCodeAt(this.pos);if(t<=55295||t>=56320)return t;var e=this.input.charCodeAt(this.pos+1);return e<=56319||e>=57344?t:(t<<10)+e-56613888},pe.skipBlockComment=function(){var t=this.options.onComment&&this.curPosition(),e=this.pos,n=this.input.indexOf("*/",this.pos+=2);if(-1===n&&this.raise(this.pos-2,"Unterminated comment"),this.pos=n+2,this.options.locations)for(var i=void 0,a=e;(i=k(this.input,a,this.pos))>-1;)++this.curLine,a=this.lineStart=i;this.options.onComment&&this.options.onComment(!0,this.input.slice(e+2,n),e,this.pos,t,this.curPosition())},pe.skipLineComment=function(t){for(var e=this.pos,n=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=t);this.pos<this.input.length&&!_(i);)i=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(e+t,this.pos),e,this.pos,n,this.curPosition())},pe.skipSpace=function(){t:for(;this.pos<this.input.length;){var t=this.input.charCodeAt(this.pos);switch(t){case 32:case 160:++this.pos;break;case 13:10===this.input.charCodeAt(this.pos+1)&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break t}break;default:if(!(t>8&&t<14||t>=5760&&E.test(String.fromCharCode(t))))break t;++this.pos}}},pe.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=t,this.value=e,this.updateContext(n)},pe.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1);if(t>=48&&t<=57)return this.readNumber(!0);var e=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===t&&46===e?(this.pos+=3,this.finishToken(w.ellipsis)):(++this.pos,this.finishToken(w.dot))},pe.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===t?this.finishOp(w.assign,2):this.finishOp(w.slash,1)},pe.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),n=1,i=42===t?w.star:w.modulo;return this.options.ecmaVersion>=7&&42===t&&42===e&&(++n,i=w.starstar,e=this.input.charCodeAt(this.pos+2)),61===e?this.finishOp(w.assign,n+1):this.finishOp(i,n)},pe.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?this.options.ecmaVersion>=12&&61===this.input.charCodeAt(this.pos+2)?this.finishOp(w.assign,3):this.finishOp(124===t?w.logicalOR:w.logicalAND,2):61===e?this.finishOp(w.assign,2):this.finishOp(124===t?w.bitwiseOR:w.bitwiseAND,1)},pe.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(w.assign,2):this.finishOp(w.bitwiseXOR,1)},pe.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?45!==e||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!x.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(w.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===e?this.finishOp(w.assign,2):this.finishOp(w.plusMin,1)},pe.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),n=1;return e===t?(n=62===t&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+n)?this.finishOp(w.assign,n+1):this.finishOp(w.bitShift,n)):33!==e||60!==t||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===e&&(n=2),this.finishOp(w.relational,n)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},pe.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1);return 61===e?this.finishOp(w.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===t&&62===e&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(w.arrow)):this.finishOp(61===t?w.eq:w.prefix,1)},pe.readToken_question=function(){var t=this.options.ecmaVersion;if(t>=11){var e=this.input.charCodeAt(this.pos+1);if(46===e){var n=this.input.charCodeAt(this.pos+2);if(n<48||n>57)return this.finishOp(w.questionDot,2)}if(63===e)return t>=12&&61===this.input.charCodeAt(this.pos+2)?this.finishOp(w.assign,3):this.finishOp(w.coalesce,2)}return this.finishOp(w.question,1)},pe.readToken_numberSign=function(){var t=35;if(this.options.ecmaVersion>=13&&(++this.pos,h(t=this.fullCharCodeAtPos(),!0)||92===t))return this.finishToken(w.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+O(t)+"'")},pe.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(w.parenL);case 41:return++this.pos,this.finishToken(w.parenR);case 59:return++this.pos,this.finishToken(w.semi);case 44:return++this.pos,this.finishToken(w.comma);case 91:return++this.pos,this.finishToken(w.bracketL);case 93:return++this.pos,this.finishToken(w.bracketR);case 123:return++this.pos,this.finishToken(w.braceL);case 125:return++this.pos,this.finishToken(w.braceR);case 58:return++this.pos,this.finishToken(w.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(w.backQuote);case 48:var e=this.input.charCodeAt(this.pos+1);if(120===e||88===e)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===e||79===e)return this.readRadixNumber(8);if(98===e||66===e)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(t);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(t);case 124:case 38:return this.readToken_pipe_amp(t);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(t);case 60:case 62:return this.readToken_lt_gt(t);case 61:case 33:return this.readToken_eq_excl(t);case 63:return this.readToken_question();case 126:return this.finishOp(w.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+O(t)+"'")},pe.finishOp=function(t,e){var n=this.input.slice(this.pos,this.pos+e);return this.pos+=e,this.finishToken(t,n)},pe.readRegexp=function(){for(var t,e,n=this.pos;;){this.pos>=this.input.length&&this.raise(n,"Unterminated regular expression");var i=this.input.charAt(this.pos);if(x.test(i)&&this.raise(n,"Unterminated regular expression"),t)t=!1;else{if("["===i)e=!0;else if("]"===i&&e)e=!1;else if("/"===i&&!e)break;t="\\"===i}++this.pos}var a=this.input.slice(n,this.pos);++this.pos;var r=this.pos,o=this.readWord1();this.containsEsc&&this.unexpected(r);var s=this.regexpState||(this.regexpState=new Zt(this));s.reset(n,a,o),this.validateRegExpFlags(s),this.validateRegExpPattern(s);var c=null;try{c=new RegExp(a,o)}catch(l){}return this.finishToken(w.regexp,{pattern:a,flags:o,value:c})},pe.readInt=function(t,e,n){for(var i=this.options.ecmaVersion>=12&&void 0===e,a=n&&48===this.input.charCodeAt(this.pos),r=this.pos,o=0,s=0,c=0,l=null==e?1/0:e;c<l;++c,++this.pos){var u=this.input.charCodeAt(this.pos),d=void 0;if(i&&95===u)a&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed in legacy octal numeric literals"),95===s&&this.raiseRecoverable(this.pos,"Numeric separator must be exactly one underscore"),0===c&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed at the first of digits"),s=u;else{if((d=u>=97?u-97+10:u>=65?u-65+10:u>=48&&u<=57?u-48:1/0)>=t)break;s=u,o=o*t+d}}return i&&95===s&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===r||null!=e&&this.pos-r!==e?null:o},pe.readRadixNumber=function(t){var e=this.pos;this.pos+=2;var n=this.readInt(t);return null==n&&this.raise(this.start+2,"Expected number in radix "+t),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(n=me(this.input.slice(e,this.pos)),++this.pos):h(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(w.num,n)},pe.readNumber=function(t){var e=this.pos;t||null!==this.readInt(10,void 0,!0)||this.raise(e,"Invalid number");var n=this.pos-e>=2&&48===this.input.charCodeAt(e);n&&this.strict&&this.raise(e,"Invalid number");var i=this.input.charCodeAt(this.pos);if(!n&&!t&&this.options.ecmaVersion>=11&&110===i){var a=me(this.input.slice(e,this.pos));return++this.pos,h(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(w.num,a)}n&&/[89]/.test(this.input.slice(e,this.pos))&&(n=!1),46!==i||n||(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),69!==i&&101!==i||n||(43!==(i=this.input.charCodeAt(++this.pos))&&45!==i||++this.pos,null===this.readInt(10)&&this.raise(e,"Invalid number")),h(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var r=be(this.input.slice(e,this.pos),n);return this.finishToken(w.num,r)},pe.readCodePoint=function(){var t;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var e=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(e,"Code point out of bounds")}else t=this.readHexChar(4);return t},pe.readString=function(t){for(var e="",n=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var i=this.input.charCodeAt(this.pos);if(i===t)break;92===i?(e+=this.input.slice(n,this.pos),e+=this.readEscapedChar(!1),n=this.pos):8232===i||8233===i?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(_(i)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return e+=this.input.slice(n,this.pos++),this.finishToken(w.string,e)};var ye={};pe.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(t){if(t!==ye)throw t;this.readInvalidTemplateToken()}this.inTemplateElement=!1},pe.invalidStringToken=function(t,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw ye;this.raise(t,e)},pe.readTmplToken=function(){for(var t="",e=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var n=this.input.charCodeAt(this.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==w.template&&this.type!==w.invalidTemplate?(t+=this.input.slice(e,this.pos),this.finishToken(w.template,t)):36===n?(this.pos+=2,this.finishToken(w.dollarBraceL)):(++this.pos,this.finishToken(w.backQuote));if(92===n)t+=this.input.slice(e,this.pos),t+=this.readEscapedChar(!0),e=this.pos;else if(_(n)){switch(t+=this.input.slice(e,this.pos),++this.pos,n){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:t+="\n";break;default:t+=String.fromCharCode(n)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),e=this.pos}else++this.pos}},pe.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if("{"!==this.input[this.pos+1])break;case"`":return this.finishToken(w.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,"Unterminated template")},pe.readEscapedChar=function(t){var e=this.input.charCodeAt(++this.pos);switch(++this.pos,e){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return O(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,"Invalid escape sequence"),t){var n=this.pos-1;this.invalidStringToken(n,"Invalid escape sequence in template string")}default:if(e>=48&&e<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],a=parseInt(i,8);return a>255&&(i=i.slice(0,-1),a=parseInt(i,8)),this.pos+=i.length-1,e=this.input.charCodeAt(this.pos),"0"===i&&56!==e&&57!==e||!this.strict&&!t||this.invalidStringToken(this.pos-1-i.length,t?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(a)}return _(e)?"":String.fromCharCode(e)}},pe.readHexChar=function(t){var e=this.pos,n=this.readInt(16,t);return null===n&&this.invalidStringToken(e,"Bad character escape sequence"),n},pe.readWord1=function(){this.containsEsc=!1;for(var t="",e=!0,n=this.pos,i=this.options.ecmaVersion>=6;this.pos<this.input.length;){var a=this.fullCharCodeAtPos();if(f(a,i))this.pos+=a<=65535?1:2;else{if(92!==a)break;this.containsEsc=!0,t+=this.input.slice(n,this.pos);var r=this.pos;117!==this.input.charCodeAt(++this.pos)&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var o=this.readCodePoint();(e?h:f)(o,i)||this.invalidStringToken(r,"Invalid Unicode escape"),t+=O(o),n=this.pos}e=!1}return t+this.input.slice(n,this.pos)},pe.readWord=function(){var t=this.readWord1(),e=w.name;return this.keywords.test(t)&&(e=y[t]),this.finishToken(e,t)};var ve="8.10.0";function we(t,e){return rt.parse(t,e)}function xe(t,e,n){return rt.parseExpressionAt(t,e,n)}function Re(t,e){return rt.tokenizer(t,e)}rt.acorn={Parser:rt,version:ve,defaultOptions:F,Position:N,SourceLocation:B,getLineInfo:P,Node:At,TokenType:g,tokTypes:w,keywordTypes:y,TokContext:wt,tokContexts:xt,isIdentifierChar:f,isIdentifierStart:h,Token:ge,isNewLine:_,lineBreak:x,lineBreakG:R,nonASCIIwhitespace:E},t.Node=At,t.Parser=rt,t.Position=N,t.SourceLocation=B,t.TokContext=wt,t.Token=ge,t.TokenType=g,t.defaultOptions=F,t.getLineInfo=P,t.isIdentifierChar=f,t.isIdentifierStart=h,t.isNewLine=_,t.keywordTypes=y,t.lineBreak=x,t.lineBreakG=R,t.nonASCIIwhitespace=E,t.parse=we,t.parseExpressionAt=xe,t.tokContexts=xt,t.tokTypes=w,t.tokenizer=Re,t.version=ve}(e)},74071:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});const i={CodeBlockFilenameTab:"CodeBlockFilenameTab_T2zd"}},43150:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});const i={button:"button_ipBY"}},10275:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});const i={filepath_validation_list:"filepath_validation_list_jJSD"}},1925:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});const i={editor:"editor_ksb3",editor_header:"editor_header_k1u9",cta_wrapper:"cta_wrapper_gL2E",editor_input:"editor_input_J9Qe",editor_preview:"editor_preview_IykG",preview_fail_note:"preview_fail_note_lUiM",live_editor:"live_editor_gff9",live_error:"live_error_EIYU",live_preview:"live_preview_LmGk",unknown_component:"unknown_component_htsO",unknown_component_children:"unknown_component_children_WmeU"}},84373:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>i});const i={FeedbackButton:"FeedbackButton_oOHZ",FeedbackIcon:"FeedbackIcon_kE_h"}},87594:(t,e)=>{function n(t){let e,n=[];for(let i of t.split(",").map((t=>t.trim())))if(/^-?\d+$/.test(i))n.push(parseInt(i,10));else if(e=i.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[t,i,a,r]=e;if(i&&r){i=parseInt(i),r=parseInt(r);const t=i<r?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(r+=t);for(let e=i;e!==r;e+=t)n.push(e)}}return n}e.default=n,t.exports=n},46871:(t,e,n)=>{"use strict";function i(){var t=this.constructor.getDerivedStateFromProps(this.props,this.state);null!=t&&this.setState(t)}function a(t){this.setState(function(e){var n=this.constructor.getDerivedStateFromProps(t,e);return null!=n?n:null}.bind(this))}function r(t,e){try{var n=this.props,i=this.state;this.props=t,this.state=e,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,i)}finally{this.props=n,this.state=i}}function o(t){var e=t.prototype;if(!e||!e.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof t.getDerivedStateFromProps&&"function"!=typeof e.getSnapshotBeforeUpdate)return t;var n=null,o=null,s=null;if("function"==typeof e.componentWillMount?n="componentWillMount":"function"==typeof e.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof e.componentWillReceiveProps?o="componentWillReceiveProps":"function"==typeof e.UNSAFE_componentWillReceiveProps&&(o="UNSAFE_componentWillReceiveProps"),"function"==typeof e.componentWillUpdate?s="componentWillUpdate":"function"==typeof e.UNSAFE_componentWillUpdate&&(s="UNSAFE_componentWillUpdate"),null!==n||null!==o||null!==s){var c=t.displayName||t.name,l="function"==typeof t.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+c+" uses "+l+" but also contains the following legacy lifecycles:"+(null!==n?"\n "+n:"")+(null!==o?"\n "+o:"")+(null!==s?"\n "+s:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof t.getDerivedStateFromProps&&(e.componentWillMount=i,e.componentWillReceiveProps=a),"function"==typeof e.getSnapshotBeforeUpdate){if("function"!=typeof e.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");e.componentWillUpdate=r;var u=e.componentDidUpdate;e.componentDidUpdate=function(t,e,n){var i=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;u.call(this,t,e,i)}}return t}n.r(e),n.d(e,{polyfill:()=>o}),i.__suppressDeprecationWarning=!0,a.__suppressDeprecationWarning=!0,r.__suppressDeprecationWarning=!0},2497:(t,e,n)=>{"use strict";n.r(e),n.d(e,{Editor:()=>ti,LiveContext:()=>ei,LiveEditor:()=>vi,LiveError:()=>wi,LivePreview:()=>Ri,LiveProvider:()=>yi,generateElement:()=>gi,renderElementAsync:()=>pi,withLive:()=>_i});for(var i=n(67294),a=n(40460),r=n.n(a),o=n(23746),s=n(87410),c=n(11890),l=n.n(c),u={},d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",h=0;h<d.length;h++)u[d.charCodeAt(h)]=h;function f(t){var e="";t=t<0?-t<<1|1:t<<1;do{var n=31&t;(t>>>=5)>0&&(n|=32),e+=d[n]}while(t>0);return e}var g=function t(e){this.bits=e instanceof t?e.bits.slice():[]};g.prototype.add=function(t){this.bits[t>>5]|=1<<(31&t)},g.prototype.has=function(t){return!!(this.bits[t>>5]&1<<(31&t))};var p=function(t,e,n){this.start=t,this.end=e,this.original=n,this.intro="",this.outro="",this.content=n,this.storeName=!1,this.edited=!1,Object.defineProperties(this,{previous:{writable:!0,value:null},next:{writable:!0,value:null}})};p.prototype.appendLeft=function(t){this.outro+=t},p.prototype.appendRight=function(t){this.intro=this.intro+t},p.prototype.clone=function(){var t=new p(this.start,this.end,this.original);return t.intro=this.intro,t.outro=this.outro,t.content=this.content,t.storeName=this.storeName,t.edited=this.edited,t},p.prototype.contains=function(t){return this.start<t&&t<this.end},p.prototype.eachNext=function(t){for(var e=this;e;)t(e),e=e.next},p.prototype.eachPrevious=function(t){for(var e=this;e;)t(e),e=e.previous},p.prototype.edit=function(t,e,n){return this.content=t,n||(this.intro="",this.outro=""),this.storeName=e,this.edited=!0,this},p.prototype.prependLeft=function(t){this.outro=t+this.outro},p.prototype.prependRight=function(t){this.intro=t+this.intro},p.prototype.split=function(t){var e=t-this.start,n=this.original.slice(0,e),i=this.original.slice(e);this.original=n;var a=new p(t,this.end,i);return a.outro=this.outro,this.outro="",this.end=t,this.edited?(a.edit("",!1),this.content=""):this.content=n,a.next=this.next,a.next&&(a.next.previous=a),a.previous=this,this.next=a,a},p.prototype.toString=function(){return this.intro+this.content+this.outro},p.prototype.trimEnd=function(t){if(this.outro=this.outro.replace(t,""),this.outro.length)return!0;var e=this.content.replace(t,"");return e.length?(e!==this.content&&this.split(this.start+e.length).edit("",void 0,!0),!0):(this.edit("",void 0,!0),this.intro=this.intro.replace(t,""),!!this.intro.length||void 0)},p.prototype.trimStart=function(t){if(this.intro=this.intro.replace(t,""),this.intro.length)return!0;var e=this.content.replace(t,"");return e.length?(e!==this.content&&(this.split(this.end-e.length),this.edit("",void 0,!0)),!0):(this.edit("",void 0,!0),this.outro=this.outro.replace(t,""),!!this.outro.length||void 0)};var b=function(){throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")};"undefined"!=typeof window&&"function"==typeof window.btoa?b=function(t){return window.btoa(unescape(encodeURIComponent(t)))}:"function"==typeof Buffer&&(b=function(t){return Buffer.from(t,"utf-8").toString("base64")});var m=function(t){this.version=3,this.file=t.file,this.sources=t.sources,this.sourcesContent=t.sourcesContent,this.names=t.names,this.mappings=function(t){for(var e=0,n=0,i=0,a=0,r="",o=0;o<t.length;o++){var s=t[o];if(o>0&&(r+=";"),0!==s.length){for(var c=0,l=[],u=0,d=s;u<d.length;u++){var h=d[u],g=f(h[0]-c);c=h[0],h.length>1&&(g+=f(h[1]-e)+f(h[2]-n)+f(h[3]-i),e=h[1],n=h[2],i=h[3]),5===h.length&&(g+=f(h[4]-a),a=h[4]),l.push(g)}r+=l.join(",")}}return r}(t.mappings)};function y(t){var e=t.split("\n"),n=e.filter((function(t){return/^\t+/.test(t)})),i=e.filter((function(t){return/^ {2,}/.test(t)}));if(0===n.length&&0===i.length)return null;if(n.length>=i.length)return"\t";var a=i.reduce((function(t,e){var n=/^ +/.exec(e)[0].length;return Math.min(n,t)}),1/0);return new Array(a+1).join(" ")}function v(t,e){var n=t.split(/[/\\]/),i=e.split(/[/\\]/);for(n.pop();n[0]===i[0];)n.shift(),i.shift();if(n.length)for(var a=n.length;a--;)n[a]="..";return n.concat(i).join("/")}m.prototype.toString=function(){return JSON.stringify(this)},m.prototype.toUrl=function(){return"data:application/json;charset=utf-8;base64,"+b(this.toString())};var w=Object.prototype.toString;function x(t){return"[object Object]"===w.call(t)}function R(t){for(var e=t.split("\n"),n=[],i=0,a=0;i<e.length;i++)n.push(a),a+=e[i].length+1;return function(t){for(var e=0,i=n.length;e<i;){var a=e+i>>1;t<n[a]?i=a:e=a+1}var r=e-1;return{line:r,column:t-n[r]}}}var _=function(t){this.hires=t,this.generatedCodeLine=0,this.generatedCodeColumn=0,this.raw=[],this.rawSegments=this.raw[this.generatedCodeLine]=[],this.pending=null};_.prototype.addEdit=function(t,e,n,i){if(e.length){var a=[this.generatedCodeColumn,t,n.line,n.column];i>=0&&a.push(i),this.rawSegments.push(a)}else this.pending&&this.rawSegments.push(this.pending);this.advance(e),this.pending=null},_.prototype.addUneditedChunk=function(t,e,n,i,a){for(var r=e.start,o=!0;r<e.end;)(this.hires||o||a.has(r))&&this.rawSegments.push([this.generatedCodeColumn,t,i.line,i.column]),"\n"===n[r]?(i.line+=1,i.column=0,this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,o=!0):(i.column+=1,this.generatedCodeColumn+=1,o=!1),r+=1;this.pending=null},_.prototype.advance=function(t){if(t){var e=t.split("\n");if(e.length>1){for(var n=0;n<e.length-1;n++)this.generatedCodeLine++,this.raw[this.generatedCodeLine]=this.rawSegments=[];this.generatedCodeColumn=0}this.generatedCodeColumn+=e[e.length-1].length}};var k="\n",E={insertLeft:!1,insertRight:!1,storeName:!1},C=function(t,e){void 0===e&&(e={});var n=new p(0,t.length,t);Object.defineProperties(this,{original:{writable:!0,value:t},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:n},lastChunk:{writable:!0,value:n},lastSearchedChunk:{writable:!0,value:n},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:e.filename},indentExclusionRanges:{writable:!0,value:e.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new g},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:y(t)}}),this.byStart[0]=n,this.byEnd[t.length]=n};C.prototype.addSourcemapLocation=function(t){this.sourcemapLocations.add(t)},C.prototype.append=function(t){if("string"!=typeof t)throw new TypeError("outro content must be a string");return this.outro+=t,this},C.prototype.appendLeft=function(t,e){if("string"!=typeof e)throw new TypeError("inserted content must be a string");this._split(t);var n=this.byEnd[t];return n?n.appendLeft(e):this.intro+=e,this},C.prototype.appendRight=function(t,e){if("string"!=typeof e)throw new TypeError("inserted content must be a string");this._split(t);var n=this.byStart[t];return n?n.appendRight(e):this.outro+=e,this},C.prototype.clone=function(){for(var t=new C(this.original,{filename:this.filename}),e=this.firstChunk,n=t.firstChunk=t.lastSearchedChunk=e.clone();e;){t.byStart[n.start]=n,t.byEnd[n.end]=n;var i=e.next,a=i&&i.clone();a&&(n.next=a,a.previous=n,n=a),e=i}return t.lastChunk=n,this.indentExclusionRanges&&(t.indentExclusionRanges=this.indentExclusionRanges.slice()),t.sourcemapLocations=new g(this.sourcemapLocations),t.intro=this.intro,t.outro=this.outro,t},C.prototype.generateDecodedMap=function(t){var e=this;t=t||{};var n=Object.keys(this.storedNames),i=new _(t.hires),a=R(this.original);return this.intro&&i.advance(this.intro),this.firstChunk.eachNext((function(t){var r=a(t.start);t.intro.length&&i.advance(t.intro),t.edited?i.addEdit(0,t.content,r,t.storeName?n.indexOf(t.original):-1):i.addUneditedChunk(0,t,e.original,r,e.sourcemapLocations),t.outro.length&&i.advance(t.outro)})),{file:t.file?t.file.split(/[/\\]/).pop():null,sources:[t.source?v(t.file||"",t.source):null],sourcesContent:t.includeContent?[this.original]:[null],names:n,mappings:i.raw}},C.prototype.generateMap=function(t){return new m(this.generateDecodedMap(t))},C.prototype.getIndentString=function(){return null===this.indentStr?"\t":this.indentStr},C.prototype.indent=function(t,e){var n=/^[^\r\n]/gm;if(x(t)&&(e=t,t=void 0),""===(t=void 0!==t?t:this.indentStr||"\t"))return this;var i={};(e=e||{}).exclude&&("number"==typeof e.exclude[0]?[e.exclude]:e.exclude).forEach((function(t){for(var e=t[0];e<t[1];e+=1)i[e]=!0}));var a=!1!==e.indentStart,r=function(e){return a?""+t+e:(a=!0,e)};this.intro=this.intro.replace(n,r);for(var o=0,s=this.firstChunk;s;){var c=s.end;if(s.edited)i[o]||(s.content=s.content.replace(n,r),s.content.length&&(a="\n"===s.content[s.content.length-1]));else for(o=s.start;o<c;){if(!i[o]){var l=this.original[o];"\n"===l?a=!0:"\r"!==l&&a&&(a=!1,o===s.start?s.prependRight(t):(this._splitChunk(s,o),(s=s.next).prependRight(t)))}o+=1}o=s.end,s=s.next}return this.outro=this.outro.replace(n,r),this},C.prototype.insert=function(){throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)")},C.prototype.insertLeft=function(t,e){return E.insertLeft||(console.warn("magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"),E.insertLeft=!0),this.appendLeft(t,e)},C.prototype.insertRight=function(t,e){return E.insertRight||(console.warn("magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"),E.insertRight=!0),this.prependRight(t,e)},C.prototype.move=function(t,e,n){if(n>=t&&n<=e)throw new Error("Cannot move a selection inside itself");this._split(t),this._split(e),this._split(n);var i=this.byStart[t],a=this.byEnd[e],r=i.previous,o=a.next,s=this.byStart[n];if(!s&&a===this.lastChunk)return this;var c=s?s.previous:this.lastChunk;return r&&(r.next=o),o&&(o.previous=r),c&&(c.next=i),s&&(s.previous=a),i.previous||(this.firstChunk=a.next),a.next||(this.lastChunk=i.previous,this.lastChunk.next=null),i.previous=c,a.next=s||null,c||(this.firstChunk=i),s||(this.lastChunk=a),this},C.prototype.overwrite=function(t,e,n,i){if("string"!=typeof n)throw new TypeError("replacement content must be a string");for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length;if(e>this.original.length)throw new Error("end is out of bounds");if(t===e)throw new Error("Cannot overwrite a zero-length range \u2013 use appendLeft or prependRight instead");this._split(t),this._split(e),!0===i&&(E.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),E.storeName=!0),i={storeName:!0});var a=void 0!==i&&i.storeName,r=void 0!==i&&i.contentOnly;if(a){var o=this.original.slice(t,e);Object.defineProperty(this.storedNames,o,{writable:!0,value:!0,enumerable:!0})}var s=this.byStart[t],c=this.byEnd[e];if(s){for(var l=s;l!==c;){if(l.next!==this.byStart[l.end])throw new Error("Cannot overwrite across a split point");(l=l.next).edit("",!1)}s.edit(n,a,r)}else{var u=new p(t,e,"").edit(n,a);c.next=u,u.previous=c}return this},C.prototype.prepend=function(t){if("string"!=typeof t)throw new TypeError("outro content must be a string");return this.intro=t+this.intro,this},C.prototype.prependLeft=function(t,e){if("string"!=typeof e)throw new TypeError("inserted content must be a string");this._split(t);var n=this.byEnd[t];return n?n.prependLeft(e):this.intro=e+this.intro,this},C.prototype.prependRight=function(t,e){if("string"!=typeof e)throw new TypeError("inserted content must be a string");this._split(t);var n=this.byStart[t];return n?n.prependRight(e):this.outro=e+this.outro,this},C.prototype.remove=function(t,e){for(;t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length;if(t===e)return this;if(t<0||e>this.original.length)throw new Error("Character is out of bounds");if(t>e)throw new Error("end must be greater than start");this._split(t),this._split(e);for(var n=this.byStart[t];n;)n.intro="",n.outro="",n.edit(""),n=e>n.end?this.byStart[n.end]:null;return this},C.prototype.lastChar=function(){if(this.outro.length)return this.outro[this.outro.length-1];var t=this.lastChunk;do{if(t.outro.length)return t.outro[t.outro.length-1];if(t.content.length)return t.content[t.content.length-1];if(t.intro.length)return t.intro[t.intro.length-1]}while(t=t.previous);return this.intro.length?this.intro[this.intro.length-1]:""},C.prototype.lastLine=function(){var t=this.outro.lastIndexOf(k);if(-1!==t)return this.outro.substr(t+1);var e=this.outro,n=this.lastChunk;do{if(n.outro.length>0){if(-1!==(t=n.outro.lastIndexOf(k)))return n.outro.substr(t+1)+e;e=n.outro+e}if(n.content.length>0){if(-1!==(t=n.content.lastIndexOf(k)))return n.content.substr(t+1)+e;e=n.content+e}if(n.intro.length>0){if(-1!==(t=n.intro.lastIndexOf(k)))return n.intro.substr(t+1)+e;e=n.intro+e}}while(n=n.previous);return-1!==(t=this.intro.lastIndexOf(k))?this.intro.substr(t+1)+e:this.intro+e},C.prototype.slice=function(t,e){for(void 0===t&&(t=0),void 0===e&&(e=this.original.length);t<0;)t+=this.original.length;for(;e<0;)e+=this.original.length;for(var n="",i=this.firstChunk;i&&(i.start>t||i.end<=t);){if(i.start<e&&i.end>=e)return n;i=i.next}if(i&&i.edited&&i.start!==t)throw new Error("Cannot use replaced character "+t+" as slice start anchor.");for(var a=i;i;){!i.intro||a===i&&i.start!==t||(n+=i.intro);var r=i.start<e&&i.end>=e;if(r&&i.edited&&i.end!==e)throw new Error("Cannot use replaced character "+e+" as slice end anchor.");var o=a===i?t-i.start:0,s=r?i.content.length+e-i.end:i.content.length;if(n+=i.content.slice(o,s),!i.outro||r&&i.end!==e||(n+=i.outro),r)break;i=i.next}return n},C.prototype.snip=function(t,e){var n=this.clone();return n.remove(0,t),n.remove(e,n.original.length),n},C.prototype._split=function(t){if(!this.byStart[t]&&!this.byEnd[t])for(var e=this.lastSearchedChunk,n=t>e.end;e;){if(e.contains(t))return this._splitChunk(e,t);e=n?this.byStart[e.end]:this.byEnd[e.start]}},C.prototype._splitChunk=function(t,e){if(t.edited&&t.content.length){var n=R(this.original)(e);throw new Error("Cannot split a chunk that has already been edited ("+n.line+":"+n.column+' \u2013 "'+t.original+'")')}var i=t.split(e);return this.byEnd[e]=t,this.byStart[e]=i,this.byEnd[i.end]=i,t===this.lastChunk&&(this.lastChunk=i),this.lastSearchedChunk=t,!0},C.prototype.toString=function(){for(var t=this.intro,e=this.firstChunk;e;)t+=e.toString(),e=e.next;return t+this.outro},C.prototype.isEmpty=function(){var t=this.firstChunk;do{if(t.intro.length&&t.intro.trim()||t.content.length&&t.content.trim()||t.outro.length&&t.outro.trim())return!1}while(t=t.next);return!0},C.prototype.length=function(){var t=this.firstChunk,e=0;do{e+=t.intro.length+t.content.length+t.outro.length}while(t=t.next);return e},C.prototype.trimLines=function(){return this.trim("[\\r\\n]")},C.prototype.trim=function(t){return this.trimStart(t).trimEnd(t)},C.prototype.trimEndAborted=function(t){var e=new RegExp((t||"\\s")+"+$");if(this.outro=this.outro.replace(e,""),this.outro.length)return!0;var n=this.lastChunk;do{var i=n.end,a=n.trimEnd(e);if(n.end!==i&&(this.lastChunk===n&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),a)return!0;n=n.previous}while(n);return!1},C.prototype.trimEnd=function(t){return this.trimEndAborted(t),this},C.prototype.trimStartAborted=function(t){var e=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(e,""),this.intro.length)return!0;var n=this.firstChunk;do{var i=n.end,a=n.trimStart(e);if(n.end!==i&&(n===this.lastChunk&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),a)return!0;n=n.next}while(n);return!1},C.prototype.trimStart=function(t){return this.trimStartAborted(t),this};var S=Object.prototype.hasOwnProperty,T=function(t){void 0===t&&(t={}),this.intro=t.intro||"",this.separator=void 0!==t.separator?t.separator:"\n",this.sources=[],this.uniqueSources=[],this.uniqueSourceIndexByFilename={}};T.prototype.addSource=function(t){if(t instanceof C)return this.addSource({content:t,filename:t.filename,separator:this.separator});if(!x(t)||!t.content)throw new Error("bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`");if(["filename","indentExclusionRanges","separator"].forEach((function(e){S.call(t,e)||(t[e]=t.content[e])})),void 0===t.separator&&(t.separator=this.separator),t.filename)if(S.call(this.uniqueSourceIndexByFilename,t.filename)){var e=this.uniqueSources[this.uniqueSourceIndexByFilename[t.filename]];if(t.content.original!==e.content)throw new Error("Illegal source: same filename ("+t.filename+"), different contents")}else this.uniqueSourceIndexByFilename[t.filename]=this.uniqueSources.length,this.uniqueSources.push({filename:t.filename,content:t.content.original});return this.sources.push(t),this},T.prototype.append=function(t,e){return this.addSource({content:new C(t),separator:e&&e.separator||""}),this},T.prototype.clone=function(){var t=new T({intro:this.intro,separator:this.separator});return this.sources.forEach((function(e){t.addSource({filename:e.filename,content:e.content.clone(),separator:e.separator})})),t},T.prototype.generateDecodedMap=function(t){var e=this;void 0===t&&(t={});var n=[];this.sources.forEach((function(t){Object.keys(t.content.storedNames).forEach((function(t){~n.indexOf(t)||n.push(t)}))}));var i=new _(t.hires);return this.intro&&i.advance(this.intro),this.sources.forEach((function(t,a){a>0&&i.advance(e.separator);var r=t.filename?e.uniqueSourceIndexByFilename[t.filename]:-1,o=t.content,s=R(o.original);o.intro&&i.advance(o.intro),o.firstChunk.eachNext((function(e){var a=s(e.start);e.intro.length&&i.advance(e.intro),t.filename?e.edited?i.addEdit(r,e.content,a,e.storeName?n.indexOf(e.original):-1):i.addUneditedChunk(r,e,o.original,a,o.sourcemapLocations):i.advance(e.content),e.outro.length&&i.advance(e.outro)})),o.outro&&i.advance(o.outro)})),{file:t.file?t.file.split(/[/\\]/).pop():null,sources:this.uniqueSources.map((function(e){return t.file?v(t.file,e.filename):e.filename})),sourcesContent:this.uniqueSources.map((function(e){return t.includeContent?e.content:null})),names:n,mappings:i.raw}},T.prototype.generateMap=function(t){return new m(this.generateDecodedMap(t))},T.prototype.getIndentString=function(){var t={};return this.sources.forEach((function(e){var n=e.content.indentStr;null!==n&&(t[n]||(t[n]=0),t[n]+=1)})),Object.keys(t).sort((function(e,n){return t[e]-t[n]}))[0]||"\t"},T.prototype.indent=function(t){var e=this;if(arguments.length||(t=this.getIndentString()),""===t)return this;var n=!this.intro||"\n"===this.intro.slice(-1);return this.sources.forEach((function(i,a){var r=void 0!==i.separator?i.separator:e.separator,o=n||a>0&&/\r?\n$/.test(r);i.content.indent(t,{exclude:i.indentExclusionRanges,indentStart:o}),n="\n"===i.content.lastChar()})),this.intro&&(this.intro=t+this.intro.replace(/^[^\n]/gm,(function(e,n){return n>0?t+e:e}))),this},T.prototype.prepend=function(t){return this.intro=t+this.intro,this},T.prototype.toString=function(){var t=this,e=this.sources.map((function(e,n){var i=void 0!==e.separator?e.separator:t.separator;return(n>0?i:"")+e.content.toString()})).join("");return this.intro+e},T.prototype.isEmpty=function(){return(!this.intro.length||!this.intro.trim())&&!this.sources.some((function(t){return!t.content.isEmpty()}))},T.prototype.length=function(){return this.sources.reduce((function(t,e){return t+e.content.length()}),this.intro.length)},T.prototype.trimLines=function(){return this.trim("[\\r\\n]")},T.prototype.trim=function(t){return this.trimStart(t).trimEnd(t)},T.prototype.trimStart=function(t){var e=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(e,""),!this.intro){var n,i=0;do{if(!(n=this.sources[i++]))break}while(!n.content.trimStartAborted(t))}return this},T.prototype.trimEnd=function(t){var e,n=new RegExp((t||"\\s")+"+$"),i=this.sources.length-1;do{if(!(e=this.sources[i--])){this.intro=this.intro.replace(n,"");break}}while(!e.content.trimEndAborted(t));return this};var A={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},D="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",I={5:D,6:D+" const class extends export import super"},L=/^in(stanceof)?$/,O="\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7b9\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc",M="\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f",N=new RegExp("["+O+"]"),B=new RegExp("["+O+M+"]");O=M=null;var P=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,477,28,11,0,9,21,190,52,76,44,33,24,27,35,30,0,12,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,26,230,43,117,63,32,0,257,0,11,39,8,0,22,0,12,39,3,3,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,270,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,68,12,0,67,12,65,1,31,6129,15,754,9486,286,82,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,15,7472,3104,541],F=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,525,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,4,9,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,280,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239];function j(t,e){for(var n=65536,i=0;i<e.length;i+=2){if((n+=e[i])>t)return!1;if((n+=e[i+1])>=t)return!0}}function $(t,e){return t<65?36===t:t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&N.test(String.fromCharCode(t)):!1!==e&&j(t,P)))}function z(t,e){return t<48?36===t:t<58||!(t<65)&&(t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&B.test(String.fromCharCode(t)):!1!==e&&(j(t,P)||j(t,F)))))}var H=function(t,e){void 0===e&&(e={}),this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop||null,this.updateContext=null};function U(t,e){return new H(t,{beforeExpr:!0,binop:e})}var V={beforeExpr:!0},q={startsExpr:!0},W={};function Y(t,e){return void 0===e&&(e={}),e.keyword=t,W[t]=new H(t,e)}var G={num:new H("num",q),regexp:new H("regexp",q),string:new H("string",q),name:new H("name",q),eof:new H("eof"),bracketL:new H("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new H("]"),braceL:new H("{",{beforeExpr:!0,startsExpr:!0}),braceR:new H("}"),parenL:new H("(",{beforeExpr:!0,startsExpr:!0}),parenR:new H(")"),comma:new H(",",V),semi:new H(";",V),colon:new H(":",V),dot:new H("."),question:new H("?",V),arrow:new H("=>",V),template:new H("template"),invalidTemplate:new H("invalidTemplate"),ellipsis:new H("...",V),backQuote:new H("`",q),dollarBraceL:new H("${",{beforeExpr:!0,startsExpr:!0}),eq:new H("=",{beforeExpr:!0,isAssign:!0}),assign:new H("_=",{beforeExpr:!0,isAssign:!0}),incDec:new H("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new H("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:U("||",1),logicalAND:U("&&",2),bitwiseOR:U("|",3),bitwiseXOR:U("^",4),bitwiseAND:U("&",5),equality:U("==/!=/===/!==",6),relational:U("</>/<=/>=",7),bitShift:U("<</>>/>>>",8),plusMin:new H("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:U("%",10),star:U("*",10),slash:U("/",10),starstar:new H("**",{beforeExpr:!0}),_break:Y("break"),_case:Y("case",V),_catch:Y("catch"),_continue:Y("continue"),_debugger:Y("debugger"),_default:Y("default",V),_do:Y("do",{isLoop:!0,beforeExpr:!0}),_else:Y("else",V),_finally:Y("finally"),_for:Y("for",{isLoop:!0}),_function:Y("function",q),_if:Y("if"),_return:Y("return",V),_switch:Y("switch"),_throw:Y("throw",V),_try:Y("try"),_var:Y("var"),_const:Y("const"),_while:Y("while",{isLoop:!0}),_with:Y("with"),_new:Y("new",{beforeExpr:!0,startsExpr:!0}),_this:Y("this",q),_super:Y("super",q),_class:Y("class",q),_extends:Y("extends",V),_export:Y("export"),_import:Y("import"),_null:Y("null",q),_true:Y("true",q),_false:Y("false",q),_in:Y("in",{beforeExpr:!0,binop:7}),_instanceof:Y("instanceof",{beforeExpr:!0,binop:7}),_typeof:Y("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:Y("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:Y("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},Z=/\r\n?|\n|\u2028|\u2029/,K=new RegExp(Z.source,"g");function X(t,e){return 10===t||13===t||!e&&(8232===t||8233===t)}var J=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,Q=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,tt=Object.prototype,et=tt.hasOwnProperty,nt=tt.toString;function it(t,e){return et.call(t,e)}var at=Array.isArray||function(t){return"[object Array]"===nt.call(t)},rt=function(t,e){this.line=t,this.column=e};rt.prototype.offset=function(t){return new rt(this.line,this.column+t)};var ot=function(t,e,n){this.start=e,this.end=n,null!==t.sourceFile&&(this.source=t.sourceFile)};function st(t,e){for(var n=1,i=0;;){K.lastIndex=i;var a=K.exec(t);if(!(a&&a.index<e))return new rt(n,e-i);++n,i=a.index+a[0].length}}var ct={ecmaVersion:9,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1};function lt(t){var e={};for(var n in ct)e[n]=t&&it(t,n)?t[n]:ct[n];if(e.ecmaVersion>=2015&&(e.ecmaVersion-=2009),null==e.allowReserved&&(e.allowReserved=e.ecmaVersion<5),at(e.onToken)){var i=e.onToken;e.onToken=function(t){return i.push(t)}}return at(e.onComment)&&(e.onComment=function(t,e){return function(n,i,a,r,o,s){var c={type:n?"Block":"Line",value:i,start:a,end:r};t.locations&&(c.loc=new ot(this,o,s)),t.ranges&&(c.range=[a,r]),e.push(c)}}(e,e.onComment)),e}function ut(t,e){return 2|(t?4:0)|(e?8:0)}function dt(t){return new RegExp("^(?:"+t.replace(/ /g,"|")+")$")}var ht=function(t,e,n){this.options=t=lt(t),this.sourceFile=t.sourceFile,this.keywords=dt(I[t.ecmaVersion>=6?6:5]);var i="";if(!t.allowReserved){for(var a=t.ecmaVersion;!(i=A[a]);a--);"module"===t.sourceType&&(i+=" await")}this.reservedWords=dt(i);var r=(i?i+" ":"")+A.strict;this.reservedWordsStrict=dt(r),this.reservedWordsStrictBind=dt(r+" "+A.strictBind),this.input=String(e),this.containsEsc=!1,n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(Z).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=G.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===t.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.yieldPos=this.awaitPos=0,this.labels=[],0===this.pos&&t.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null},ft={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0}};ht.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)},ft.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},ft.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0},ft.inAsync.get=function(){return(4&this.currentVarScope().flags)>0},ht.extend=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];for(var n=this,i=0;i<t.length;i++)n=t[i](n);return n},ht.parse=function(t,e){return new this(e,t).parse()},ht.parseExpressionAt=function(t,e,n){var i=new this(n,t,e);return i.nextToken(),i.parseExpression()},ht.tokenizer=function(t,e){return new this(e,t)},Object.defineProperties(ht.prototype,ft);var gt=ht.prototype,pt=/^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)"|;)/;function bt(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}gt.strictDirective=function(t){for(;;){Q.lastIndex=t,t+=Q.exec(this.input)[0].length;var e=pt.exec(this.input.slice(t));if(!e)return!1;if("use strict"===(e[1]||e[2]))return!0;t+=e[0].length}},gt.eat=function(t){return this.type===t&&(this.next(),!0)},gt.isContextual=function(t){return this.type===G.name&&this.value===t&&!this.containsEsc},gt.eatContextual=function(t){return!!this.isContextual(t)&&(this.next(),!0)},gt.expectContextual=function(t){this.eatContextual(t)||this.unexpected()},gt.canInsertSemicolon=function(){return this.type===G.eof||this.type===G.braceR||Z.test(this.input.slice(this.lastTokEnd,this.start))},gt.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},gt.semicolon=function(){this.eat(G.semi)||this.insertSemicolon()||this.unexpected()},gt.afterTrailingComma=function(t,e){if(this.type===t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0},gt.expect=function(t){this.eat(t)||this.unexpected()},gt.unexpected=function(t){this.raise(null!=t?t:this.start,"Unexpected token")},gt.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element");var n=e?t.parenthesizedAssign:t.parenthesizedBind;n>-1&&this.raiseRecoverable(n,"Parenthesized pattern")}},gt.checkExpressionErrors=function(t,e){if(!t)return!1;var n=t.shorthandAssign,i=t.doubleProto;if(!e)return n>=0||i>=0;n>=0&&this.raise(n,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},gt.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},gt.isSimpleAssignTarget=function(t){return"ParenthesizedExpression"===t.type?this.isSimpleAssignTarget(t.expression):"Identifier"===t.type||"MemberExpression"===t.type};var mt=ht.prototype;mt.parseTopLevel=function(t){var e={};for(t.body||(t.body=[]);this.type!==G.eof;){var n=this.parseStatement(null,!0,e);t.body.push(n)}return this.adaptDirectivePrologue(t.body),this.next(),this.options.ecmaVersion>=6&&(t.sourceType=this.options.sourceType),this.finishNode(t,"Program")};var yt={kind:"loop"},vt={kind:"switch"};mt.isLet=function(){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;Q.lastIndex=this.pos;var t=Q.exec(this.input),e=this.pos+t[0].length,n=this.input.charCodeAt(e);if(91===n||123===n)return!0;if($(n,!0)){for(var i=e+1;z(this.input.charCodeAt(i),!0);)++i;var a=this.input.slice(e,i);if(!L.test(a))return!0}return!1},mt.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;Q.lastIndex=this.pos;var t=Q.exec(this.input),e=this.pos+t[0].length;return!(Z.test(this.input.slice(this.pos,e))||"function"!==this.input.slice(e,e+8)||e+8!==this.input.length&&z(this.input.charAt(e+8)))},mt.parseStatement=function(t,e,n){var i,a=this.type,r=this.startNode();switch(this.isLet()&&(a=G._var,i="let"),a){case G._break:case G._continue:return this.parseBreakContinueStatement(r,a.keyword);case G._debugger:return this.parseDebuggerStatement(r);case G._do:return this.parseDoStatement(r);case G._for:return this.parseForStatement(r);case G._function:return t&&(this.strict||"if"!==t)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1,!t);case G._class:return t&&this.unexpected(),this.parseClass(r,!0);case G._if:return this.parseIfStatement(r);case G._return:return this.parseReturnStatement(r);case G._switch:return this.parseSwitchStatement(r);case G._throw:return this.parseThrowStatement(r);case G._try:return this.parseTryStatement(r);case G._const:case G._var:return i=i||this.value,t&&"var"!==i&&this.unexpected(),this.parseVarStatement(r,i);case G._while:return this.parseWhileStatement(r);case G._with:return this.parseWithStatement(r);case G.braceL:return this.parseBlock(!0,r);case G.semi:return this.parseEmptyStatement(r);case G._export:case G._import:return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),a===G._import?this.parseImport(r):this.parseExport(r,n);default:if(this.isAsyncFunction())return t&&this.unexpected(),this.next(),this.parseFunctionStatement(r,!0,!t);var o=this.value,s=this.parseExpression();return a===G.name&&"Identifier"===s.type&&this.eat(G.colon)?this.parseLabeledStatement(r,o,s,t):this.parseExpressionStatement(r,s)}},mt.parseBreakContinueStatement=function(t,e){var n="break"===e;this.next(),this.eat(G.semi)||this.insertSemicolon()?t.label=null:this.type!==G.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var a=this.labels[i];if(null==t.label||a.name===t.label.name){if(null!=a.kind&&(n||"loop"===a.kind))break;if(t.label&&n)break}}return i===this.labels.length&&this.raise(t.start,"Unsyntactic "+e),this.finishNode(t,n?"BreakStatement":"ContinueStatement")},mt.parseDebuggerStatement=function(t){return this.next(),this.semicolon(),this.finishNode(t,"DebuggerStatement")},mt.parseDoStatement=function(t){return this.next(),this.labels.push(yt),t.body=this.parseStatement("do"),this.labels.pop(),this.expect(G._while),t.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(G.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")},mt.parseForStatement=function(t){this.next();var e=this.options.ecmaVersion>=9&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction)&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(yt),this.enterScope(0),this.expect(G.parenL),this.type===G.semi)return e>-1&&this.unexpected(e),this.parseFor(t,null);var n=this.isLet();if(this.type===G._var||this.type===G._const||n){var i=this.startNode(),a=n?"let":this.value;return this.next(),this.parseVar(i,!0,a),this.finishNode(i,"VariableDeclaration"),!(this.type===G._in||this.options.ecmaVersion>=6&&this.isContextual("of"))||1!==i.declarations.length||"var"!==a&&i.declarations[0].init?(e>-1&&this.unexpected(e),this.parseFor(t,i)):(this.options.ecmaVersion>=9&&(this.type===G._in?e>-1&&this.unexpected(e):t.await=e>-1),this.parseForIn(t,i))}var r=new bt,o=this.parseExpression(!0,r);return this.type===G._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.options.ecmaVersion>=9&&(this.type===G._in?e>-1&&this.unexpected(e):t.await=e>-1),this.toAssignable(o,!1,r),this.checkLVal(o),this.parseForIn(t,o)):(this.checkExpressionErrors(r,!0),e>-1&&this.unexpected(e),this.parseFor(t,o))},mt.parseFunctionStatement=function(t,e,n){return this.next(),this.parseFunction(t,xt|(n?0:Rt),!1,e)},mt.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement("if"),t.alternate=this.eat(G._else)?this.parseStatement("if"):null,this.finishNode(t,"IfStatement")},mt.parseReturnStatement=function(t){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(G.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")},mt.parseSwitchStatement=function(t){var e,n=this;this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(G.braceL),this.labels.push(vt),this.enterScope(0);for(var i=!1;this.type!==G.braceR;)if(n.type===G._case||n.type===G._default){var a=n.type===G._case;e&&n.finishNode(e,"SwitchCase"),t.cases.push(e=n.startNode()),e.consequent=[],n.next(),a?e.test=n.parseExpression():(i&&n.raiseRecoverable(n.lastTokStart,"Multiple default clauses"),i=!0,e.test=null),n.expect(G.colon)}else e||n.unexpected(),e.consequent.push(n.parseStatement(null));return this.exitScope(),e&&this.finishNode(e,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")},mt.parseThrowStatement=function(t){return this.next(),Z.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")};var wt=[];mt.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===G._catch){var e=this.startNode();if(this.next(),this.eat(G.parenL)){e.param=this.parseBindingAtom();var n="Identifier"===e.param.type;this.enterScope(n?32:0),this.checkLVal(e.param,n?4:2),this.expect(G.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),e.param=null,this.enterScope(0);e.body=this.parseBlock(!1),this.exitScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(G._finally)?this.parseBlock():null,t.handler||t.finalizer||this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")},mt.parseVarStatement=function(t,e){return this.next(),this.parseVar(t,!1,e),this.semicolon(),this.finishNode(t,"VariableDeclaration")},mt.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(yt),t.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(t,"WhileStatement")},mt.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement("with"),this.finishNode(t,"WithStatement")},mt.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")},mt.parseLabeledStatement=function(t,e,n,i){for(var a=this,r=0,o=a.labels;r<o.length;r+=1){o[r].name===e&&a.raise(n.start,"Label '"+e+"' is already declared")}for(var s=this.type.isLoop?"loop":this.type===G._switch?"switch":null,c=this.labels.length-1;c>=0;c--){var l=a.labels[c];if(l.statementStart!==t.start)break;l.statementStart=a.start,l.kind=s}return this.labels.push({name:e,kind:s,statementStart:this.start}),t.body=this.parseStatement(i),("ClassDeclaration"===t.body.type||"VariableDeclaration"===t.body.type&&"var"!==t.body.kind||"FunctionDeclaration"===t.body.type&&(this.strict||t.body.generator||t.body.async))&&this.raiseRecoverable(t.body.start,"Invalid labeled declaration"),this.labels.pop(),t.label=n,this.finishNode(t,"LabeledStatement")},mt.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")},mt.parseBlock=function(t,e){for(void 0===t&&(t=!0),void 0===e&&(e=this.startNode()),e.body=[],this.expect(G.braceL),t&&this.enterScope(0);!this.eat(G.braceR);){var n=this.parseStatement(null);e.body.push(n)}return t&&this.exitScope(),this.finishNode(e,"BlockStatement")},mt.parseFor=function(t,e){return t.init=e,this.expect(G.semi),t.test=this.type===G.semi?null:this.parseExpression(),this.expect(G.semi),t.update=this.type===G.parenR?null:this.parseExpression(),this.expect(G.parenR),this.exitScope(),t.body=this.parseStatement("for"),this.labels.pop(),this.finishNode(t,"ForStatement")},mt.parseForIn=function(t,e){var n=this.type===G._in?"ForInStatement":"ForOfStatement";return this.next(),"ForInStatement"===n&&("AssignmentPattern"===e.type||"VariableDeclaration"===e.type&&null!=e.declarations[0].init&&(this.strict||"Identifier"!==e.declarations[0].id.type))&&this.raise(e.start,"Invalid assignment in for-in loop head"),t.left=e,t.right="ForInStatement"===n?this.parseExpression():this.parseMaybeAssign(),this.expect(G.parenR),this.exitScope(),t.body=this.parseStatement("for"),this.labels.pop(),this.finishNode(t,n)},mt.parseVar=function(t,e,n){var i=this;for(t.declarations=[],t.kind=n;;){var a=i.startNode();if(i.parseVarId(a,n),i.eat(G.eq)?a.init=i.parseMaybeAssign(e):"const"!==n||i.type===G._in||i.options.ecmaVersion>=6&&i.isContextual("of")?"Identifier"===a.id.type||e&&(i.type===G._in||i.isContextual("of"))?a.init=null:i.raise(i.lastTokEnd,"Complex binding patterns require an initialization value"):i.unexpected(),t.declarations.push(i.finishNode(a,"VariableDeclarator")),!i.eat(G.comma))break}return t},mt.parseVarId=function(t,e){t.id=this.parseBindingAtom(e),this.checkLVal(t.id,"var"===e?1:2,!1)};var xt=1,Rt=2;mt.parseFunction=function(t,e,n,i){this.initFunction(t),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(t.generator=this.eat(G.star)),this.options.ecmaVersion>=8&&(t.async=!!i),e&xt&&(t.id=4&e&&this.type!==G.name?null:this.parseIdent(),!t.id||e&Rt||this.checkLVal(t.id,this.inModule&&!this.inFunction?2:3));var a=this.yieldPos,r=this.awaitPos;return this.yieldPos=0,this.awaitPos=0,this.enterScope(ut(t.async,t.generator)),e&xt||(t.id=this.type===G.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,n),this.yieldPos=a,this.awaitPos=r,this.finishNode(t,e&xt?"FunctionDeclaration":"FunctionExpression")},mt.parseFunctionParams=function(t){this.expect(G.parenL),t.params=this.parseBindingList(G.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},mt.parseClass=function(t,e){this.next(),this.parseClassId(t,e),this.parseClassSuper(t);var n=this.startNode(),i=!1;for(n.body=[],this.expect(G.braceL);!this.eat(G.braceR);){var a=this.parseClassElement();a&&(n.body.push(a),"MethodDefinition"===a.type&&"constructor"===a.kind&&(i&&this.raise(a.start,"Duplicate constructor in the same class"),i=!0))}return t.body=this.finishNode(n,"ClassBody"),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")},mt.parseClassElement=function(){var t=this;if(this.eat(G.semi))return null;var e=this.startNode(),n=function(n,i){void 0===i&&(i=!1);var a=t.start,r=t.startLoc;return!!t.eatContextual(n)&&(!(t.type===G.parenL||i&&t.canInsertSemicolon())||(e.key&&t.unexpected(),e.computed=!1,e.key=t.startNodeAt(a,r),e.key.name=n,t.finishNode(e.key,"Identifier"),!1))};e.kind="method",e.static=n("static");var i=this.eat(G.star),a=!1;i||(this.options.ecmaVersion>=8&&n("async",!0)?(a=!0,i=this.options.ecmaVersion>=9&&this.eat(G.star)):n("get")?e.kind="get":n("set")&&(e.kind="set")),e.key||this.parsePropertyName(e);var r=e.key;return e.computed||e.static||!("Identifier"===r.type&&"constructor"===r.name||"Literal"===r.type&&"constructor"===r.value)?e.static&&"Identifier"===r.type&&"prototype"===r.name&&this.raise(r.start,"Classes may not have a static property named prototype"):("method"!==e.kind&&this.raise(r.start,"Constructor can't have get/set modifier"),i&&this.raise(r.start,"Constructor can't be a generator"),a&&this.raise(r.start,"Constructor can't be an async method"),e.kind="constructor"),this.parseClassMethod(e,i,a),"get"===e.kind&&0!==e.value.params.length&&this.raiseRecoverable(e.value.start,"getter should have no params"),"set"===e.kind&&1!==e.value.params.length&&this.raiseRecoverable(e.value.start,"setter should have exactly one param"),"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params"),e},mt.parseClassMethod=function(t,e,n){return t.value=this.parseMethod(e,n),this.finishNode(t,"MethodDefinition")},mt.parseClassId=function(t,e){t.id=this.type===G.name?this.parseIdent():!0===e?this.unexpected():null},mt.parseClassSuper=function(t){t.superClass=this.eat(G._extends)?this.parseExprSubscripts():null},mt.parseExport=function(t,e){if(this.next(),this.eat(G.star))return this.expectContextual("from"),this.type!==G.string&&this.unexpected(),t.source=this.parseExprAtom(),this.semicolon(),this.finishNode(t,"ExportAllDeclaration");if(this.eat(G._default)){var n;if(this.checkExport(e,"default",this.lastTokStart),this.type===G._function||(n=this.isAsyncFunction())){var i=this.startNode();this.next(),n&&this.next(),t.declaration=this.parseFunction(i,4|xt,!1,n,!0)}else if(this.type===G._class){var a=this.startNode();t.declaration=this.parseClass(a,"nullableID")}else t.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(t,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())t.declaration=this.parseStatement(null),"VariableDeclaration"===t.declaration.type?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id.name,t.declaration.id.start),t.specifiers=[],t.source=null;else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))this.type!==G.string&&this.unexpected(),t.source=this.parseExprAtom();else{for(var r=0,o=t.specifiers;r<o.length;r+=1){var s=o[r];this.checkUnreserved(s.local)}t.source=null}this.semicolon()}return this.finishNode(t,"ExportNamedDeclaration")},mt.checkExport=function(t,e,n){t&&(it(t,e)&&this.raiseRecoverable(n,"Duplicate export '"+e+"'"),t[e]=!0)},mt.checkPatternExport=function(t,e){var n=e.type;if("Identifier"===n)this.checkExport(t,e.name,e.start);else if("ObjectPattern"===n)for(var i=0,a=e.properties;i<a.length;i+=1){var r=a[i];this.checkPatternExport(t,r)}else if("ArrayPattern"===n)for(var o=0,s=e.elements;o<s.length;o+=1){var c=s[o];c&&this.checkPatternExport(t,c)}else"Property"===n?this.checkPatternExport(t,e.value):"AssignmentPattern"===n?this.checkPatternExport(t,e.left):"RestElement"===n?this.checkPatternExport(t,e.argument):"ParenthesizedExpression"===n&&this.checkPatternExport(t,e.expression)},mt.checkVariableExport=function(t,e){if(t)for(var n=0,i=e;n<i.length;n+=1){var a=i[n];this.checkPatternExport(t,a.id)}},mt.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},mt.parseExportSpecifiers=function(t){var e=this,n=[],i=!0;for(this.expect(G.braceL);!this.eat(G.braceR);){if(i)i=!1;else if(e.expect(G.comma),e.afterTrailingComma(G.braceR))break;var a=e.startNode();a.local=e.parseIdent(!0),a.exported=e.eatContextual("as")?e.parseIdent(!0):a.local,e.checkExport(t,a.exported.name,a.exported.start),n.push(e.finishNode(a,"ExportSpecifier"))}return n},mt.parseImport=function(t){return this.next(),this.type===G.string?(t.specifiers=wt,t.source=this.parseExprAtom()):(t.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),t.source=this.type===G.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(t,"ImportDeclaration")},mt.parseImportSpecifiers=function(){var t=this,e=[],n=!0;if(this.type===G.name){var i=this.startNode();if(i.local=this.parseIdent(),this.checkLVal(i.local,2),e.push(this.finishNode(i,"ImportDefaultSpecifier")),!this.eat(G.comma))return e}if(this.type===G.star){var a=this.startNode();return this.next(),this.expectContextual("as"),a.local=this.parseIdent(),this.checkLVal(a.local,2),e.push(this.finishNode(a,"ImportNamespaceSpecifier")),e}for(this.expect(G.braceL);!this.eat(G.braceR);){if(n)n=!1;else if(t.expect(G.comma),t.afterTrailingComma(G.braceR))break;var r=t.startNode();r.imported=t.parseIdent(!0),t.eatContextual("as")?r.local=t.parseIdent():(t.checkUnreserved(r.imported),r.local=r.imported),t.checkLVal(r.local,2),e.push(t.finishNode(r,"ImportSpecifier"))}return e},mt.adaptDirectivePrologue=function(t){for(var e=0;e<t.length&&this.isDirectiveCandidate(t[e]);++e)t[e].directive=t[e].expression.raw.slice(1,-1)},mt.isDirectiveCandidate=function(t){return"ExpressionStatement"===t.type&&"Literal"===t.expression.type&&"string"==typeof t.expression.value&&('"'===this.input[t.start]||"'"===this.input[t.start])};var _t=ht.prototype;_t.toAssignable=function(t,e,n){if(this.options.ecmaVersion>=6&&t)switch(t.type){case"Identifier":this.inAsync&&"await"===t.name&&this.raise(t.start,"Can not use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern",n&&this.checkPatternErrors(n,!0);for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.toAssignable(r,e),"RestElement"!==r.type||"ArrayPattern"!==r.argument.type&&"ObjectPattern"!==r.argument.type||this.raise(r.argument.start,"Unexpected token")}break;case"Property":"init"!==t.kind&&this.raise(t.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(t.value,e);break;case"ArrayExpression":t.type="ArrayPattern",n&&this.checkPatternErrors(n,!0),this.toAssignableList(t.elements,e);break;case"SpreadElement":t.type="RestElement",this.toAssignable(t.argument,e),"AssignmentPattern"===t.argument.type&&this.raise(t.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":"="!==t.operator&&this.raise(t.left.end,"Only '=' operator can be used for specifying default value."),t.type="AssignmentPattern",delete t.operator,this.toAssignable(t.left,e);case"AssignmentPattern":break;case"ParenthesizedExpression":this.toAssignable(t.expression,e);break;case"MemberExpression":if(!e)break;default:this.raise(t.start,"Assigning to rvalue")}else n&&this.checkPatternErrors(n,!0);return t},_t.toAssignableList=function(t,e){for(var n=t.length,i=0;i<n;i++){var a=t[i];a&&this.toAssignable(a,e)}if(n){var r=t[n-1];6===this.options.ecmaVersion&&e&&r&&"RestElement"===r.type&&"Identifier"!==r.argument.type&&this.unexpected(r.argument.start)}return t},_t.parseSpread=function(t){var e=this.startNode();return this.next(),e.argument=this.parseMaybeAssign(!1,t),this.finishNode(e,"SpreadElement")},_t.parseRestBinding=function(){var t=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==G.name&&this.unexpected(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")},_t.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case G.bracketL:var t=this.startNode();return this.next(),t.elements=this.parseBindingList(G.bracketR,!0,!0),this.finishNode(t,"ArrayPattern");case G.braceL:return this.parseObj(!0)}return this.parseIdent()},_t.parseBindingList=function(t,e,n){for(var i=this,a=[],r=!0;!this.eat(t);)if(r?r=!1:i.expect(G.comma),e&&i.type===G.comma)a.push(null);else{if(n&&i.afterTrailingComma(t))break;if(i.type===G.ellipsis){var o=i.parseRestBinding();i.parseBindingListItem(o),a.push(o),i.type===G.comma&&i.raise(i.start,"Comma is not permitted after the rest element"),i.expect(t);break}var s=i.parseMaybeDefault(i.start,i.startLoc);i.parseBindingListItem(s),a.push(s)}return a},_t.parseBindingListItem=function(t){return t},_t.parseMaybeDefault=function(t,e,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(G.eq))return n;var i=this.startNodeAt(t,e);return i.left=n,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},_t.checkLVal=function(t,e,n){switch(void 0===e&&(e=0),t.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(t.name)&&this.raiseRecoverable(t.start,(e?"Binding ":"Assigning to ")+t.name+" in strict mode"),n&&(it(n,t.name)&&this.raiseRecoverable(t.start,"Argument name clash"),n[t.name]=!0),0!==e&&5!==e&&this.declareName(t.name,e,t.start);break;case"MemberExpression":e&&this.raiseRecoverable(t.start,"Binding member expression");break;case"ObjectPattern":for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.checkLVal(r,e,n)}break;case"Property":this.checkLVal(t.value,e,n);break;case"ArrayPattern":for(var o=0,s=t.elements;o<s.length;o+=1){var c=s[o];c&&this.checkLVal(c,e,n)}break;case"AssignmentPattern":this.checkLVal(t.left,e,n);break;case"RestElement":this.checkLVal(t.argument,e,n);break;case"ParenthesizedExpression":this.checkLVal(t.expression,e,n);break;default:this.raise(t.start,(e?"Binding":"Assigning to")+" rvalue")}};var kt=ht.prototype;kt.checkPropClash=function(t,e,n){if(!(this.options.ecmaVersion>=9&&"SpreadElement"===t.type||this.options.ecmaVersion>=6&&(t.computed||t.method||t.shorthand))){var i,a=t.key;switch(a.type){case"Identifier":i=a.name;break;case"Literal":i=String(a.value);break;default:return}var r=t.kind;if(this.options.ecmaVersion>=6)"__proto__"===i&&"init"===r&&(e.proto&&(n&&n.doubleProto<0?n.doubleProto=a.start:this.raiseRecoverable(a.start,"Redefinition of __proto__ property")),e.proto=!0);else{var o=e[i="$"+i];if(o)("init"===r?this.strict&&o.init||o.get||o.set:o.init||o[r])&&this.raiseRecoverable(a.start,"Redefinition of property");else o=e[i]={init:!1,get:!1,set:!1};o[r]=!0}}},kt.parseExpression=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeAssign(t,e);if(this.type===G.comma){var r=this.startNodeAt(n,i);for(r.expressions=[a];this.eat(G.comma);)r.expressions.push(this.parseMaybeAssign(t,e));return this.finishNode(r,"SequenceExpression")}return a},kt.parseMaybeAssign=function(t,e,n){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield();this.exprAllowed=!1}var i=!1,a=-1,r=-1,o=-1;e?(a=e.parenthesizedAssign,r=e.trailingComma,o=e.shorthandAssign,e.parenthesizedAssign=e.trailingComma=e.shorthandAssign=-1):(e=new bt,i=!0);var s=this.start,c=this.startLoc;this.type!==G.parenL&&this.type!==G.name||(this.potentialArrowAt=this.start);var l=this.parseMaybeConditional(t,e);if(n&&(l=n.call(this,l,s,c)),this.type.isAssign){var u=this.startNodeAt(s,c);return u.operator=this.value,u.left=this.type===G.eq?this.toAssignable(l,!1,e):l,i||bt.call(e),e.shorthandAssign=-1,this.checkLVal(l),this.next(),u.right=this.parseMaybeAssign(t),this.finishNode(u,"AssignmentExpression")}return i&&this.checkExpressionErrors(e,!0),a>-1&&(e.parenthesizedAssign=a),r>-1&&(e.trailingComma=r),o>-1&&(e.shorthandAssign=o),l},kt.parseMaybeConditional=function(t,e){var n=this.start,i=this.startLoc,a=this.parseExprOps(t,e);if(this.checkExpressionErrors(e))return a;if(this.eat(G.question)){var r=this.startNodeAt(n,i);return r.test=a,r.consequent=this.parseMaybeAssign(),this.expect(G.colon),r.alternate=this.parseMaybeAssign(t),this.finishNode(r,"ConditionalExpression")}return a},kt.parseExprOps=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeUnary(e,!1);return this.checkExpressionErrors(e)||a.start===n&&"ArrowFunctionExpression"===a.type?a:this.parseExprOp(a,n,i,-1,t)},kt.parseExprOp=function(t,e,n,i,a){var r=this.type.binop;if(null!=r&&(!a||this.type!==G._in)&&r>i){var o=this.type===G.logicalOR||this.type===G.logicalAND,s=this.value;this.next();var c=this.start,l=this.startLoc,u=this.parseExprOp(this.parseMaybeUnary(null,!1),c,l,r,a),d=this.buildBinary(e,n,t,u,s,o);return this.parseExprOp(d,e,n,i,a)}return t},kt.buildBinary=function(t,e,n,i,a,r){var o=this.startNodeAt(t,e);return o.left=n,o.operator=a,o.right=i,this.finishNode(o,r?"LogicalExpression":"BinaryExpression")},kt.parseMaybeUnary=function(t,e){var n,i=this,a=this.start,r=this.startLoc;if(this.isContextual("await")&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction))n=this.parseAwait(),e=!0;else if(this.type.prefix){var o=this.startNode(),s=this.type===G.incDec;o.operator=this.value,o.prefix=!0,this.next(),o.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(t,!0),s?this.checkLVal(o.argument):this.strict&&"delete"===o.operator&&"Identifier"===o.argument.type?this.raiseRecoverable(o.start,"Deleting local variable in strict mode"):e=!0,n=this.finishNode(o,s?"UpdateExpression":"UnaryExpression")}else{if(n=this.parseExprSubscripts(t),this.checkExpressionErrors(t))return n;for(;this.type.postfix&&!this.canInsertSemicolon();){var c=i.startNodeAt(a,r);c.operator=i.value,c.prefix=!1,c.argument=n,i.checkLVal(n),i.next(),n=i.finishNode(c,"UpdateExpression")}}return!e&&this.eat(G.starstar)?this.buildBinary(a,r,n,this.parseMaybeUnary(null,!1),"**",!1):n},kt.parseExprSubscripts=function(t){var e=this.start,n=this.startLoc,i=this.parseExprAtom(t),a="ArrowFunctionExpression"===i.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd);if(this.checkExpressionErrors(t)||a)return i;var r=this.parseSubscripts(i,e,n);return t&&"MemberExpression"===r.type&&(t.parenthesizedAssign>=r.start&&(t.parenthesizedAssign=-1),t.parenthesizedBind>=r.start&&(t.parenthesizedBind=-1)),r},kt.parseSubscripts=function(t,e,n,i){for(var a=this,r=this.options.ecmaVersion>=8&&"Identifier"===t.type&&"async"===t.name&&this.lastTokEnd===t.end&&!this.canInsertSemicolon()&&"async"===this.input.slice(t.start,t.end),o=void 0;;)if((o=a.eat(G.bracketL))||a.eat(G.dot)){var s=a.startNodeAt(e,n);s.object=t,s.property=o?a.parseExpression():a.parseIdent(!0),s.computed=!!o,o&&a.expect(G.bracketR),t=a.finishNode(s,"MemberExpression")}else if(!i&&a.eat(G.parenL)){var c=new bt,l=a.yieldPos,u=a.awaitPos;a.yieldPos=0,a.awaitPos=0;var d=a.parseExprList(G.parenR,a.options.ecmaVersion>=8,!1,c);if(r&&!a.canInsertSemicolon()&&a.eat(G.arrow))return a.checkPatternErrors(c,!1),a.checkYieldAwaitInDefaultParams(),a.yieldPos=l,a.awaitPos=u,a.parseArrowExpression(a.startNodeAt(e,n),d,!0);a.checkExpressionErrors(c,!0),a.yieldPos=l||a.yieldPos,a.awaitPos=u||a.awaitPos;var h=a.startNodeAt(e,n);h.callee=t,h.arguments=d,t=a.finishNode(h,"CallExpression")}else{if(a.type!==G.backQuote)return t;var f=a.startNodeAt(e,n);f.tag=t,f.quasi=a.parseTemplate({isTagged:!0}),t=a.finishNode(f,"TaggedTemplateExpression")}},kt.parseExprAtom=function(t){var e,n=this.potentialArrowAt===this.start;switch(this.type){case G._super:return this.inFunction||this.raise(this.start,"'super' outside of function or class"),e=this.startNode(),this.next(),this.type!==G.dot&&this.type!==G.bracketL&&this.type!==G.parenL&&this.unexpected(),this.finishNode(e,"Super");case G._this:return e=this.startNode(),this.next(),this.finishNode(e,"ThisExpression");case G.name:var i=this.start,a=this.startLoc,r=this.containsEsc,o=this.parseIdent(this.type!==G.name);if(this.options.ecmaVersion>=8&&!r&&"async"===o.name&&!this.canInsertSemicolon()&&this.eat(G._function))return this.parseFunction(this.startNodeAt(i,a),0,!1,!0);if(n&&!this.canInsertSemicolon()){if(this.eat(G.arrow))return this.parseArrowExpression(this.startNodeAt(i,a),[o],!1);if(this.options.ecmaVersion>=8&&"async"===o.name&&this.type===G.name&&!r)return o=this.parseIdent(),!this.canInsertSemicolon()&&this.eat(G.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(i,a),[o],!0)}return o;case G.regexp:var s=this.value;return(e=this.parseLiteral(s.value)).regex={pattern:s.pattern,flags:s.flags},e;case G.num:case G.string:return this.parseLiteral(this.value);case G._null:case G._true:case G._false:return(e=this.startNode()).value=this.type===G._null?null:this.type===G._true,e.raw=this.type.keyword,this.next(),this.finishNode(e,"Literal");case G.parenL:var c=this.start,l=this.parseParenAndDistinguishExpression(n);return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(l)&&(t.parenthesizedAssign=c),t.parenthesizedBind<0&&(t.parenthesizedBind=c)),l;case G.bracketL:return e=this.startNode(),this.next(),e.elements=this.parseExprList(G.bracketR,!0,!0,t),this.finishNode(e,"ArrayExpression");case G.braceL:return this.parseObj(!1,t);case G._function:return e=this.startNode(),this.next(),this.parseFunction(e,0);case G._class:return this.parseClass(this.startNode(),!1);case G._new:return this.parseNew();case G.backQuote:return this.parseTemplate();default:this.unexpected()}},kt.parseLiteral=function(t){var e=this.startNode();return e.value=t,e.raw=this.input.slice(this.start,this.end),this.next(),this.finishNode(e,"Literal")},kt.parseParenExpression=function(){this.expect(G.parenL);var t=this.parseExpression();return this.expect(G.parenR),t},kt.parseParenAndDistinguishExpression=function(t){var e,n=this,i=this.start,a=this.startLoc,r=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o,s=this.start,c=this.startLoc,l=[],u=!0,d=!1,h=new bt,f=this.yieldPos,g=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==G.parenR;){if(u?u=!1:n.expect(G.comma),r&&n.afterTrailingComma(G.parenR,!0)){d=!0;break}if(n.type===G.ellipsis){o=n.start,l.push(n.parseParenItem(n.parseRestBinding())),n.type===G.comma&&n.raise(n.start,"Comma is not permitted after the rest element");break}l.push(n.parseMaybeAssign(!1,h,n.parseParenItem))}var p=this.start,b=this.startLoc;if(this.expect(G.parenR),t&&!this.canInsertSemicolon()&&this.eat(G.arrow))return this.checkPatternErrors(h,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=f,this.awaitPos=g,this.parseParenArrowList(i,a,l);l.length&&!d||this.unexpected(this.lastTokStart),o&&this.unexpected(o),this.checkExpressionErrors(h,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=g||this.awaitPos,l.length>1?((e=this.startNodeAt(s,c)).expressions=l,this.finishNodeAt(e,"SequenceExpression",p,b)):e=l[0]}else e=this.parseParenExpression();if(this.options.preserveParens){var m=this.startNodeAt(i,a);return m.expression=e,this.finishNode(m,"ParenthesizedExpression")}return e},kt.parseParenItem=function(t){return t},kt.parseParenArrowList=function(t,e,n){return this.parseArrowExpression(this.startNodeAt(t,e),n)};var Et=[];kt.parseNew=function(){var t=this.startNode(),e=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(G.dot)){t.meta=e;var n=this.containsEsc;return t.property=this.parseIdent(!0),("target"!==t.property.name||n)&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is new.target"),this.inNonArrowFunction()||this.raiseRecoverable(t.start,"new.target can only be used in functions"),this.finishNode(t,"MetaProperty")}var i=this.start,a=this.startLoc;return t.callee=this.parseSubscripts(this.parseExprAtom(),i,a,!0),this.eat(G.parenL)?t.arguments=this.parseExprList(G.parenR,this.options.ecmaVersion>=8,!1):t.arguments=Et,this.finishNode(t,"NewExpression")},kt.parseTemplateElement=function(t){var e=t.isTagged,n=this.startNode();return this.type===G.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),n.value={raw:this.value,cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),n.tail=this.type===G.backQuote,this.finishNode(n,"TemplateElement")},kt.parseTemplate=function(t){var e=this;void 0===t&&(t={});var n=t.isTagged;void 0===n&&(n=!1);var i=this.startNode();this.next(),i.expressions=[];var a=this.parseTemplateElement({isTagged:n});for(i.quasis=[a];!a.tail;)e.type===G.eof&&e.raise(e.pos,"Unterminated template literal"),e.expect(G.dollarBraceL),i.expressions.push(e.parseExpression()),e.expect(G.braceR),i.quasis.push(a=e.parseTemplateElement({isTagged:n}));return this.next(),this.finishNode(i,"TemplateLiteral")},kt.isAsyncProp=function(t){return!t.computed&&"Identifier"===t.key.type&&"async"===t.key.name&&(this.type===G.name||this.type===G.num||this.type===G.string||this.type===G.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===G.star)&&!Z.test(this.input.slice(this.lastTokEnd,this.start))},kt.parseObj=function(t,e){var n=this,i=this.startNode(),a=!0,r={};for(i.properties=[],this.next();!this.eat(G.braceR);){if(a)a=!1;else if(n.expect(G.comma),n.afterTrailingComma(G.braceR))break;var o=n.parseProperty(t,e);t||n.checkPropClash(o,r,e),i.properties.push(o)}return this.finishNode(i,t?"ObjectPattern":"ObjectExpression")},kt.parseProperty=function(t,e){var n,i,a,r,o=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(G.ellipsis))return t?(o.argument=this.parseIdent(!1),this.type===G.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.finishNode(o,"RestElement")):(this.type===G.parenL&&e&&(e.parenthesizedAssign<0&&(e.parenthesizedAssign=this.start),e.parenthesizedBind<0&&(e.parenthesizedBind=this.start)),o.argument=this.parseMaybeAssign(!1,e),this.type===G.comma&&e&&e.trailingComma<0&&(e.trailingComma=this.start),this.finishNode(o,"SpreadElement"));this.options.ecmaVersion>=6&&(o.method=!1,o.shorthand=!1,(t||e)&&(a=this.start,r=this.startLoc),t||(n=this.eat(G.star)));var s=this.containsEsc;return this.parsePropertyName(o),!t&&!s&&this.options.ecmaVersion>=8&&!n&&this.isAsyncProp(o)?(i=!0,n=this.options.ecmaVersion>=9&&this.eat(G.star),this.parsePropertyName(o,e)):i=!1,this.parsePropertyValue(o,t,n,i,a,r,e,s),this.finishNode(o,"Property")},kt.parsePropertyValue=function(t,e,n,i,a,r,o,s){if((n||i)&&this.type===G.colon&&this.unexpected(),this.eat(G.colon))t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),t.kind="init";else if(this.options.ecmaVersion>=6&&this.type===G.parenL)e&&this.unexpected(),t.kind="init",t.method=!0,t.value=this.parseMethod(n,i);else if(e||s||!(this.options.ecmaVersion>=5)||t.computed||"Identifier"!==t.key.type||"get"!==t.key.name&&"set"!==t.key.name||this.type===G.comma||this.type===G.braceR)this.options.ecmaVersion>=6&&!t.computed&&"Identifier"===t.key.type?(this.checkUnreserved(t.key),t.kind="init",e?t.value=this.parseMaybeDefault(a,r,t.key):this.type===G.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),t.value=this.parseMaybeDefault(a,r,t.key)):t.value=t.key,t.shorthand=!0):this.unexpected();else{(n||i)&&this.unexpected(),t.kind=t.key.name,this.parsePropertyName(t),t.value=this.parseMethod(!1);var c="get"===t.kind?0:1;if(t.value.params.length!==c){var l=t.value.start;"get"===t.kind?this.raiseRecoverable(l,"getter should have no params"):this.raiseRecoverable(l,"setter should have exactly one param")}else"set"===t.kind&&"RestElement"===t.value.params[0].type&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")}},kt.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(G.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(G.bracketR),t.key;t.computed=!1}return t.key=this.type===G.num||this.type===G.string?this.parseExprAtom():this.parseIdent(!0)},kt.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)},kt.parseMethod=function(t,e){var n=this.startNode(),i=this.yieldPos,a=this.awaitPos;return this.initFunction(n),this.options.ecmaVersion>=6&&(n.generator=t),this.options.ecmaVersion>=8&&(n.async=!!e),this.yieldPos=0,this.awaitPos=0,this.enterScope(ut(e,n.generator)),this.expect(G.parenL),n.params=this.parseBindingList(G.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(n,!1),this.yieldPos=i,this.awaitPos=a,this.finishNode(n,"FunctionExpression")},kt.parseArrowExpression=function(t,e,n){var i=this.yieldPos,a=this.awaitPos;return this.enterScope(16|ut(n,!1)),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!n),this.yieldPos=0,this.awaitPos=0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0),this.yieldPos=i,this.awaitPos=a,this.finishNode(t,"ArrowFunctionExpression")},kt.parseFunctionBody=function(t,e){var n=e&&this.type!==G.braceL,i=this.strict,a=!1;if(n)t.body=this.parseMaybeAssign(),t.expression=!0,this.checkParams(t,!1);else{var r=this.options.ecmaVersion>=7&&!this.isSimpleParamList(t.params);i&&!r||(a=this.strictDirective(this.end))&&r&&this.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list");var o=this.labels;this.labels=[],a&&(this.strict=!0),this.checkParams(t,!i&&!a&&!e&&this.isSimpleParamList(t.params)),t.body=this.parseBlock(!1),t.expression=!1,this.adaptDirectivePrologue(t.body.body),this.labels=o}this.exitScope(),this.strict&&t.id&&this.checkLVal(t.id,5),this.strict=i},kt.isSimpleParamList=function(t){for(var e=0,n=t;e<n.length;e+=1){if("Identifier"!==n[e].type)return!1}return!0},kt.checkParams=function(t,e){for(var n={},i=0,a=t.params;i<a.length;i+=1){var r=a[i];this.checkLVal(r,1,e?null:n)}},kt.parseExprList=function(t,e,n,i){for(var a=this,r=[],o=!0;!this.eat(t);){if(o)o=!1;else if(a.expect(G.comma),e&&a.afterTrailingComma(t))break;var s=void 0;n&&a.type===G.comma?s=null:a.type===G.ellipsis?(s=a.parseSpread(i),i&&a.type===G.comma&&i.trailingComma<0&&(i.trailingComma=a.start)):s=a.parseMaybeAssign(!1,i),r.push(s)}return r},kt.checkUnreserved=function(t){var e=t.start,n=t.end,i=t.name;(this.inGenerator&&"yield"===i&&this.raiseRecoverable(e,"Can not use 'yield' as identifier inside a generator"),this.inAsync&&"await"===i&&this.raiseRecoverable(e,"Can not use 'await' as identifier inside an async function"),this.keywords.test(i)&&this.raise(e,"Unexpected keyword '"+i+"'"),this.options.ecmaVersion<6&&-1!==this.input.slice(e,n).indexOf("\\"))||(this.strict?this.reservedWordsStrict:this.reservedWords).test(i)&&(this.inAsync||"await"!==i||this.raiseRecoverable(e,"Can not use keyword 'await' outside an async function"),this.raiseRecoverable(e,"The keyword '"+i+"' is reserved"))},kt.parseIdent=function(t,e){var n=this.startNode();return t&&"never"===this.options.allowReserved&&(t=!1),this.type===G.name?n.name=this.value:this.type.keyword?(n.name=this.type.keyword,"class"!==n.name&&"function"!==n.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),this.next(),this.finishNode(n,"Identifier"),t||this.checkUnreserved(n),n},kt.parseYield=function(){this.yieldPos||(this.yieldPos=this.start);var t=this.startNode();return this.next(),this.type===G.semi||this.canInsertSemicolon()||this.type!==G.star&&!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(G.star),t.argument=this.parseMaybeAssign()),this.finishNode(t,"YieldExpression")},kt.parseAwait=function(){this.awaitPos||(this.awaitPos=this.start);var t=this.startNode();return this.next(),t.argument=this.parseMaybeUnary(null,!0),this.finishNode(t,"AwaitExpression")};var Ct=ht.prototype;Ct.raise=function(t,e){var n=st(this.input,t);e+=" ("+n.line+":"+n.column+")";var i=new SyntaxError(e);throw i.pos=t,i.loc=n,i.raisedAt=this.pos,i},Ct.raiseRecoverable=Ct.raise,Ct.curPosition=function(){if(this.options.locations)return new rt(this.curLine,this.pos-this.lineStart)};var St=ht.prototype,Tt=function(t){this.flags=t,this.var=[],this.lexical=[]};St.enterScope=function(t){this.scopeStack.push(new Tt(t))},St.exitScope=function(){this.scopeStack.pop()},St.declareName=function(t,e,n){var i=!1;if(2===e){var a=this.currentScope();i=a.lexical.indexOf(t)>-1||a.var.indexOf(t)>-1,a.lexical.push(t)}else if(4===e){this.currentScope().lexical.push(t)}else if(3===e){var r=this.currentScope();i=r.lexical.indexOf(t)>-1,r.var.push(t)}else for(var o=this.scopeStack.length-1;o>=0;--o){var s=this.scopeStack[o];if(s.lexical.indexOf(t)>-1&&!(32&s.flags)&&s.lexical[0]===t&&(i=!0),s.var.push(t),3&s.flags)break}i&&this.raiseRecoverable(n,"Identifier '"+t+"' has already been declared")},St.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},St.currentVarScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(3&e.flags)return e}},St.inNonArrowFunction=function(){for(var t=this.scopeStack.length-1;t>=0;t--)if(2&this.scopeStack[t].flags&&!(16&this.scopeStack[t].flags))return!0;return!1};var At=function(t,e,n){this.type="",this.start=e,this.end=0,t.options.locations&&(this.loc=new ot(t,n)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[e,0])},Dt=ht.prototype;function It(t,e,n,i){return t.type=e,t.end=n,this.options.locations&&(t.loc.end=i),this.options.ranges&&(t.range[1]=n),t}Dt.startNode=function(){return new At(this,this.start,this.startLoc)},Dt.startNodeAt=function(t,e){return new At(this,t,e)},Dt.finishNode=function(t,e){return It.call(this,t,e,this.lastTokEnd,this.lastTokEndLoc)},Dt.finishNodeAt=function(t,e,n,i){return It.call(this,t,e,n,i)};var Lt=function(t,e,n,i,a){this.token=t,this.isExpr=!!e,this.preserveSpace=!!n,this.override=i,this.generator=!!a},Ot={b_stat:new Lt("{",!1),b_expr:new Lt("{",!0),b_tmpl:new Lt("${",!1),p_stat:new Lt("(",!1),p_expr:new Lt("(",!0),q_tmpl:new Lt("`",!0,!0,(function(t){return t.tryReadTemplateToken()})),f_stat:new Lt("function",!1),f_expr:new Lt("function",!0),f_expr_gen:new Lt("function",!0,!1,null,!0),f_gen:new Lt("function",!1,!1,null,!0)},Mt=ht.prototype;Mt.initialContext=function(){return[Ot.b_stat]},Mt.braceIsBlock=function(t){var e=this.curContext();return e===Ot.f_expr||e===Ot.f_stat||(t!==G.colon||e!==Ot.b_stat&&e!==Ot.b_expr?t===G._return||t===G.name&&this.exprAllowed?Z.test(this.input.slice(this.lastTokEnd,this.start)):t===G._else||t===G.semi||t===G.eof||t===G.parenR||t===G.arrow||(t===G.braceL?e===Ot.b_stat:t!==G._var&&t!==G.name&&!this.exprAllowed):!e.isExpr)},Mt.inGeneratorContext=function(){for(var t=this.context.length-1;t>=1;t--){var e=this.context[t];if("function"===e.token)return e.generator}return!1},Mt.updateContext=function(t){var e,n=this.type;n.keyword&&t===G.dot?this.exprAllowed=!1:(e=n.updateContext)?e.call(this,t):this.exprAllowed=n.beforeExpr},G.parenR.updateContext=G.braceR.updateContext=function(){if(1!==this.context.length){var t=this.context.pop();t===Ot.b_stat&&"function"===this.curContext().token&&(t=this.context.pop()),this.exprAllowed=!t.isExpr}else this.exprAllowed=!0},G.braceL.updateContext=function(t){this.context.push(this.braceIsBlock(t)?Ot.b_stat:Ot.b_expr),this.exprAllowed=!0},G.dollarBraceL.updateContext=function(){this.context.push(Ot.b_tmpl),this.exprAllowed=!0},G.parenL.updateContext=function(t){var e=t===G._if||t===G._for||t===G._with||t===G._while;this.context.push(e?Ot.p_stat:Ot.p_expr),this.exprAllowed=!0},G.incDec.updateContext=function(){},G._function.updateContext=G._class.updateContext=function(t){t.beforeExpr&&t!==G.semi&&t!==G._else&&(t!==G.colon&&t!==G.braceL||this.curContext()!==Ot.b_stat)?this.context.push(Ot.f_expr):this.context.push(Ot.f_stat),this.exprAllowed=!1},G.backQuote.updateContext=function(){this.curContext()===Ot.q_tmpl?this.context.pop():this.context.push(Ot.q_tmpl),this.exprAllowed=!1},G.star.updateContext=function(t){if(t===G._function){var e=this.context.length-1;this.context[e]===Ot.f_expr?this.context[e]=Ot.f_expr_gen:this.context[e]=Ot.f_gen}this.exprAllowed=!0},G.name.updateContext=function(t){var e=!1;this.options.ecmaVersion>=6&&t!==G.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(e=!0),this.exprAllowed=e};var Nt={$LONE:["ASCII","ASCII_Hex_Digit","AHex","Alphabetic","Alpha","Any","Assigned","Bidi_Control","Bidi_C","Bidi_Mirrored","Bidi_M","Case_Ignorable","CI","Cased","Changes_When_Casefolded","CWCF","Changes_When_Casemapped","CWCM","Changes_When_Lowercased","CWL","Changes_When_NFKC_Casefolded","CWKCF","Changes_When_Titlecased","CWT","Changes_When_Uppercased","CWU","Dash","Default_Ignorable_Code_Point","DI","Deprecated","Dep","Diacritic","Dia","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extender","Ext","Grapheme_Base","Gr_Base","Grapheme_Extend","Gr_Ext","Hex_Digit","Hex","IDS_Binary_Operator","IDSB","IDS_Trinary_Operator","IDST","ID_Continue","IDC","ID_Start","IDS","Ideographic","Ideo","Join_Control","Join_C","Logical_Order_Exception","LOE","Lowercase","Lower","Math","Noncharacter_Code_Point","NChar","Pattern_Syntax","Pat_Syn","Pattern_White_Space","Pat_WS","Quotation_Mark","QMark","Radical","Regional_Indicator","RI","Sentence_Terminal","STerm","Soft_Dotted","SD","Terminal_Punctuation","Term","Unified_Ideograph","UIdeo","Uppercase","Upper","Variation_Selector","VS","White_Space","space","XID_Continue","XIDC","XID_Start","XIDS"],General_Category:["Cased_Letter","LC","Close_Punctuation","Pe","Connector_Punctuation","Pc","Control","Cc","cntrl","Currency_Symbol","Sc","Dash_Punctuation","Pd","Decimal_Number","Nd","digit","Enclosing_Mark","Me","Final_Punctuation","Pf","Format","Cf","Initial_Punctuation","Pi","Letter","L","Letter_Number","Nl","Line_Separator","Zl","Lowercase_Letter","Ll","Mark","M","Combining_Mark","Math_Symbol","Sm","Modifier_Letter","Lm","Modifier_Symbol","Sk","Nonspacing_Mark","Mn","Number","N","Open_Punctuation","Ps","Other","C","Other_Letter","Lo","Other_Number","No","Other_Punctuation","Po","Other_Symbol","So","Paragraph_Separator","Zp","Private_Use","Co","Punctuation","P","punct","Separator","Z","Space_Separator","Zs","Spacing_Mark","Mc","Surrogate","Cs","Symbol","S","Titlecase_Letter","Lt","Unassigned","Cn","Uppercase_Letter","Lu"],Script:["Adlam","Adlm","Ahom","Anatolian_Hieroglyphs","Hluw","Arabic","Arab","Armenian","Armn","Avestan","Avst","Balinese","Bali","Bamum","Bamu","Bassa_Vah","Bass","Batak","Batk","Bengali","Beng","Bhaiksuki","Bhks","Bopomofo","Bopo","Brahmi","Brah","Braille","Brai","Buginese","Bugi","Buhid","Buhd","Canadian_Aboriginal","Cans","Carian","Cari","Caucasian_Albanian","Aghb","Chakma","Cakm","Cham","Cherokee","Cher","Common","Zyyy","Coptic","Copt","Qaac","Cuneiform","Xsux","Cypriot","Cprt","Cyrillic","Cyrl","Deseret","Dsrt","Devanagari","Deva","Duployan","Dupl","Egyptian_Hieroglyphs","Egyp","Elbasan","Elba","Ethiopic","Ethi","Georgian","Geor","Glagolitic","Glag","Gothic","Goth","Grantha","Gran","Greek","Grek","Gujarati","Gujr","Gurmukhi","Guru","Han","Hani","Hangul","Hang","Hanunoo","Hano","Hatran","Hatr","Hebrew","Hebr","Hiragana","Hira","Imperial_Aramaic","Armi","Inherited","Zinh","Qaai","Inscriptional_Pahlavi","Phli","Inscriptional_Parthian","Prti","Javanese","Java","Kaithi","Kthi","Kannada","Knda","Katakana","Kana","Kayah_Li","Kali","Kharoshthi","Khar","Khmer","Khmr","Khojki","Khoj","Khudawadi","Sind","Lao","Laoo","Latin","Latn","Lepcha","Lepc","Limbu","Limb","Linear_A","Lina","Linear_B","Linb","Lisu","Lycian","Lyci","Lydian","Lydi","Mahajani","Mahj","Malayalam","Mlym","Mandaic","Mand","Manichaean","Mani","Marchen","Marc","Masaram_Gondi","Gonm","Meetei_Mayek","Mtei","Mende_Kikakui","Mend","Meroitic_Cursive","Merc","Meroitic_Hieroglyphs","Mero","Miao","Plrd","Modi","Mongolian","Mong","Mro","Mroo","Multani","Mult","Myanmar","Mymr","Nabataean","Nbat","New_Tai_Lue","Talu","Newa","Nko","Nkoo","Nushu","Nshu","Ogham","Ogam","Ol_Chiki","Olck","Old_Hungarian","Hung","Old_Italic","Ital","Old_North_Arabian","Narb","Old_Permic","Perm","Old_Persian","Xpeo","Old_South_Arabian","Sarb","Old_Turkic","Orkh","Oriya","Orya","Osage","Osge","Osmanya","Osma","Pahawh_Hmong","Hmng","Palmyrene","Palm","Pau_Cin_Hau","Pauc","Phags_Pa","Phag","Phoenician","Phnx","Psalter_Pahlavi","Phlp","Rejang","Rjng","Runic","Runr","Samaritan","Samr","Saurashtra","Saur","Sharada","Shrd","Shavian","Shaw","Siddham","Sidd","SignWriting","Sgnw","Sinhala","Sinh","Sora_Sompeng","Sora","Soyombo","Soyo","Sundanese","Sund","Syloti_Nagri","Sylo","Syriac","Syrc","Tagalog","Tglg","Tagbanwa","Tagb","Tai_Le","Tale","Tai_Tham","Lana","Tai_Viet","Tavt","Takri","Takr","Tamil","Taml","Tangut","Tang","Telugu","Telu","Thaana","Thaa","Thai","Tibetan","Tibt","Tifinagh","Tfng","Tirhuta","Tirh","Ugaritic","Ugar","Vai","Vaii","Warang_Citi","Wara","Yi","Yiii","Zanabazar_Square","Zanb"]};Array.prototype.push.apply(Nt.$LONE,Nt.General_Category),Nt.gc=Nt.General_Category,Nt.sc=Nt.Script_Extensions=Nt.scx=Nt.Script;var Bt=ht.prototype,Pt=function(t){this.parser=t,this.validFlags="gim"+(t.options.ecmaVersion>=6?"uy":"")+(t.options.ecmaVersion>=9?"s":""),this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function Ft(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}function jt(t){return 36===t||t>=40&&t<=43||46===t||63===t||t>=91&&t<=94||t>=123&&t<=125}function $t(t){return t>=65&&t<=90||t>=97&&t<=122}function zt(t){return $t(t)||95===t}function Ht(t){return zt(t)||Ut(t)}function Ut(t){return t>=48&&t<=57}function Vt(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function qt(t){return t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:t-48}function Wt(t){return t>=48&&t<=55}Pt.prototype.reset=function(t,e,n){var i=-1!==n.indexOf("u");this.start=0|t,this.source=e+"",this.flags=n,this.switchU=i&&this.parser.options.ecmaVersion>=6,this.switchN=i&&this.parser.options.ecmaVersion>=9},Pt.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)},Pt.prototype.at=function(t){var e=this.source,n=e.length;if(t>=n)return-1;var i=e.charCodeAt(t);return!this.switchU||i<=55295||i>=57344||t+1>=n?i:(i<<10)+e.charCodeAt(t+1)-56613888},Pt.prototype.nextIndex=function(t){var e=this.source,n=e.length;if(t>=n)return n;var i=e.charCodeAt(t);return!this.switchU||i<=55295||i>=57344||t+1>=n?t+1:t+2},Pt.prototype.current=function(){return this.at(this.pos)},Pt.prototype.lookahead=function(){return this.at(this.nextIndex(this.pos))},Pt.prototype.advance=function(){this.pos=this.nextIndex(this.pos)},Pt.prototype.eat=function(t){return this.current()===t&&(this.advance(),!0)},Bt.validateRegExpFlags=function(t){for(var e=t.validFlags,n=t.flags,i=0;i<n.length;i++){var a=n.charAt(i);-1===e.indexOf(a)&&this.raise(t.start,"Invalid regular expression flag"),n.indexOf(a,i+1)>-1&&this.raise(t.start,"Duplicate regular expression flag")}},Bt.validateRegExpPattern=function(t){this.regexp_pattern(t),!t.switchN&&this.options.ecmaVersion>=9&&t.groupNames.length>0&&(t.switchN=!0,this.regexp_pattern(t))},Bt.regexp_pattern=function(t){t.pos=0,t.lastIntValue=0,t.lastStringValue="",t.lastAssertionIsQuantifiable=!1,t.numCapturingParens=0,t.maxBackReference=0,t.groupNames.length=0,t.backReferenceNames.length=0,this.regexp_disjunction(t),t.pos!==t.source.length&&(t.eat(41)&&t.raise("Unmatched ')'"),(t.eat(93)||t.eat(125))&&t.raise("Lone quantifier brackets")),t.maxBackReference>t.numCapturingParens&&t.raise("Invalid escape");for(var e=0,n=t.backReferenceNames;e<n.length;e+=1){var i=n[e];-1===t.groupNames.indexOf(i)&&t.raise("Invalid named capture referenced")}},Bt.regexp_disjunction=function(t){for(this.regexp_alternative(t);t.eat(124);)this.regexp_alternative(t);this.regexp_eatQuantifier(t,!0)&&t.raise("Nothing to repeat"),t.eat(123)&&t.raise("Lone quantifier brackets")},Bt.regexp_alternative=function(t){for(;t.pos<t.source.length&&this.regexp_eatTerm(t););},Bt.regexp_eatTerm=function(t){return this.regexp_eatAssertion(t)?(t.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(t)&&t.switchU&&t.raise("Invalid quantifier"),!0):!!(t.switchU?this.regexp_eatAtom(t):this.regexp_eatExtendedAtom(t))&&(this.regexp_eatQuantifier(t),!0)},Bt.regexp_eatAssertion=function(t){var e=t.pos;if(t.lastAssertionIsQuantifiable=!1,t.eat(94)||t.eat(36))return!0;if(t.eat(92)){if(t.eat(66)||t.eat(98))return!0;t.pos=e}if(t.eat(40)&&t.eat(63)){var n=!1;if(this.options.ecmaVersion>=9&&(n=t.eat(60)),t.eat(61)||t.eat(33))return this.regexp_disjunction(t),t.eat(41)||t.raise("Unterminated group"),t.lastAssertionIsQuantifiable=!n,!0}return t.pos=e,!1},Bt.regexp_eatQuantifier=function(t,e){return void 0===e&&(e=!1),!!this.regexp_eatQuantifierPrefix(t,e)&&(t.eat(63),!0)},Bt.regexp_eatQuantifierPrefix=function(t,e){return t.eat(42)||t.eat(43)||t.eat(63)||this.regexp_eatBracedQuantifier(t,e)},Bt.regexp_eatBracedQuantifier=function(t,e){var n=t.pos;if(t.eat(123)){var i=0,a=-1;if(this.regexp_eatDecimalDigits(t)&&(i=t.lastIntValue,t.eat(44)&&this.regexp_eatDecimalDigits(t)&&(a=t.lastIntValue),t.eat(125)))return-1!==a&&a<i&&!e&&t.raise("numbers out of order in {} quantifier"),!0;t.switchU&&!e&&t.raise("Incomplete quantifier"),t.pos=n}return!1},Bt.regexp_eatAtom=function(t){return this.regexp_eatPatternCharacters(t)||t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)},Bt.regexp_eatReverseSolidusAtomEscape=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatAtomEscape(t))return!0;t.pos=e}return!1},Bt.regexp_eatUncapturingGroup=function(t){var e=t.pos;if(t.eat(40)){if(t.eat(63)&&t.eat(58)){if(this.regexp_disjunction(t),t.eat(41))return!0;t.raise("Unterminated group")}t.pos=e}return!1},Bt.regexp_eatCapturingGroup=function(t){if(t.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(t):63===t.current()&&t.raise("Invalid group"),this.regexp_disjunction(t),t.eat(41))return t.numCapturingParens+=1,!0;t.raise("Unterminated group")}return!1},Bt.regexp_eatExtendedAtom=function(t){return t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)||this.regexp_eatInvalidBracedQuantifier(t)||this.regexp_eatExtendedPatternCharacter(t)},Bt.regexp_eatInvalidBracedQuantifier=function(t){return this.regexp_eatBracedQuantifier(t,!0)&&t.raise("Nothing to repeat"),!1},Bt.regexp_eatSyntaxCharacter=function(t){var e=t.current();return!!jt(e)&&(t.lastIntValue=e,t.advance(),!0)},Bt.regexp_eatPatternCharacters=function(t){for(var e=t.pos,n=0;-1!==(n=t.current())&&!jt(n);)t.advance();return t.pos!==e},Bt.regexp_eatExtendedPatternCharacter=function(t){var e=t.current();return!(-1===e||36===e||e>=40&&e<=43||46===e||63===e||91===e||94===e||124===e)&&(t.advance(),!0)},Bt.regexp_groupSpecifier=function(t){if(t.eat(63)){if(this.regexp_eatGroupName(t))return-1!==t.groupNames.indexOf(t.lastStringValue)&&t.raise("Duplicate capture group name"),void t.groupNames.push(t.lastStringValue);t.raise("Invalid group")}},Bt.regexp_eatGroupName=function(t){if(t.lastStringValue="",t.eat(60)){if(this.regexp_eatRegExpIdentifierName(t)&&t.eat(62))return!0;t.raise("Invalid capture group name")}return!1},Bt.regexp_eatRegExpIdentifierName=function(t){if(t.lastStringValue="",this.regexp_eatRegExpIdentifierStart(t)){for(t.lastStringValue+=Ft(t.lastIntValue);this.regexp_eatRegExpIdentifierPart(t);)t.lastStringValue+=Ft(t.lastIntValue);return!0}return!1},Bt.regexp_eatRegExpIdentifierStart=function(t){var e=t.pos,n=t.current();return t.advance(),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(t)&&(n=t.lastIntValue),function(t){return $(t,!0)||36===t||95===t}(n)?(t.lastIntValue=n,!0):(t.pos=e,!1)},Bt.regexp_eatRegExpIdentifierPart=function(t){var e=t.pos,n=t.current();return t.advance(),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(t)&&(n=t.lastIntValue),function(t){return z(t,!0)||36===t||95===t||8204===t||8205===t}(n)?(t.lastIntValue=n,!0):(t.pos=e,!1)},Bt.regexp_eatAtomEscape=function(t){return!!(this.regexp_eatBackReference(t)||this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)||t.switchN&&this.regexp_eatKGroupName(t))||(t.switchU&&(99===t.current()&&t.raise("Invalid unicode escape"),t.raise("Invalid escape")),!1)},Bt.regexp_eatBackReference=function(t){var e=t.pos;if(this.regexp_eatDecimalEscape(t)){var n=t.lastIntValue;if(t.switchU)return n>t.maxBackReference&&(t.maxBackReference=n),!0;if(n<=t.numCapturingParens)return!0;t.pos=e}return!1},Bt.regexp_eatKGroupName=function(t){if(t.eat(107)){if(this.regexp_eatGroupName(t))return t.backReferenceNames.push(t.lastStringValue),!0;t.raise("Invalid named reference")}return!1},Bt.regexp_eatCharacterEscape=function(t){return this.regexp_eatControlEscape(t)||this.regexp_eatCControlLetter(t)||this.regexp_eatZero(t)||this.regexp_eatHexEscapeSequence(t)||this.regexp_eatRegExpUnicodeEscapeSequence(t)||!t.switchU&&this.regexp_eatLegacyOctalEscapeSequence(t)||this.regexp_eatIdentityEscape(t)},Bt.regexp_eatCControlLetter=function(t){var e=t.pos;if(t.eat(99)){if(this.regexp_eatControlLetter(t))return!0;t.pos=e}return!1},Bt.regexp_eatZero=function(t){return 48===t.current()&&!Ut(t.lookahead())&&(t.lastIntValue=0,t.advance(),!0)},Bt.regexp_eatControlEscape=function(t){var e=t.current();return 116===e?(t.lastIntValue=9,t.advance(),!0):110===e?(t.lastIntValue=10,t.advance(),!0):118===e?(t.lastIntValue=11,t.advance(),!0):102===e?(t.lastIntValue=12,t.advance(),!0):114===e&&(t.lastIntValue=13,t.advance(),!0)},Bt.regexp_eatControlLetter=function(t){var e=t.current();return!!$t(e)&&(t.lastIntValue=e%32,t.advance(),!0)},Bt.regexp_eatRegExpUnicodeEscapeSequence=function(t){var e,n=t.pos;if(t.eat(117)){if(this.regexp_eatFixedHexDigits(t,4)){var i=t.lastIntValue;if(t.switchU&&i>=55296&&i<=56319){var a=t.pos;if(t.eat(92)&&t.eat(117)&&this.regexp_eatFixedHexDigits(t,4)){var r=t.lastIntValue;if(r>=56320&&r<=57343)return t.lastIntValue=1024*(i-55296)+(r-56320)+65536,!0}t.pos=a,t.lastIntValue=i}return!0}if(t.switchU&&t.eat(123)&&this.regexp_eatHexDigits(t)&&t.eat(125)&&((e=t.lastIntValue)>=0&&e<=1114111))return!0;t.switchU&&t.raise("Invalid unicode escape"),t.pos=n}return!1},Bt.regexp_eatIdentityEscape=function(t){if(t.switchU)return!!this.regexp_eatSyntaxCharacter(t)||!!t.eat(47)&&(t.lastIntValue=47,!0);var e=t.current();return!(99===e||t.switchN&&107===e)&&(t.lastIntValue=e,t.advance(),!0)},Bt.regexp_eatDecimalEscape=function(t){t.lastIntValue=0;var e=t.current();if(e>=49&&e<=57){do{t.lastIntValue=10*t.lastIntValue+(e-48),t.advance()}while((e=t.current())>=48&&e<=57);return!0}return!1},Bt.regexp_eatCharacterClassEscape=function(t){var e=t.current();if(function(t){return 100===t||68===t||115===t||83===t||119===t||87===t}(e))return t.lastIntValue=-1,t.advance(),!0;if(t.switchU&&this.options.ecmaVersion>=9&&(80===e||112===e)){if(t.lastIntValue=-1,t.advance(),t.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(t)&&t.eat(125))return!0;t.raise("Invalid property name")}return!1},Bt.regexp_eatUnicodePropertyValueExpression=function(t){var e=t.pos;if(this.regexp_eatUnicodePropertyName(t)&&t.eat(61)){var n=t.lastStringValue;if(this.regexp_eatUnicodePropertyValue(t)){var i=t.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(t,n,i),!0}}if(t.pos=e,this.regexp_eatLoneUnicodePropertyNameOrValue(t)){var a=t.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(t,a),!0}return!1},Bt.regexp_validateUnicodePropertyNameAndValue=function(t,e,n){Nt.hasOwnProperty(e)&&-1!==Nt[e].indexOf(n)||t.raise("Invalid property name")},Bt.regexp_validateUnicodePropertyNameOrValue=function(t,e){-1===Nt.$LONE.indexOf(e)&&t.raise("Invalid property name")},Bt.regexp_eatUnicodePropertyName=function(t){var e=0;for(t.lastStringValue="";zt(e=t.current());)t.lastStringValue+=Ft(e),t.advance();return""!==t.lastStringValue},Bt.regexp_eatUnicodePropertyValue=function(t){var e=0;for(t.lastStringValue="";Ht(e=t.current());)t.lastStringValue+=Ft(e),t.advance();return""!==t.lastStringValue},Bt.regexp_eatLoneUnicodePropertyNameOrValue=function(t){return this.regexp_eatUnicodePropertyValue(t)},Bt.regexp_eatCharacterClass=function(t){if(t.eat(91)){if(t.eat(94),this.regexp_classRanges(t),t.eat(93))return!0;t.raise("Unterminated character class")}return!1},Bt.regexp_classRanges=function(t){for(;this.regexp_eatClassAtom(t);){var e=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassAtom(t)){var n=t.lastIntValue;!t.switchU||-1!==e&&-1!==n||t.raise("Invalid character class"),-1!==e&&-1!==n&&e>n&&t.raise("Range out of order in character class")}}},Bt.regexp_eatClassAtom=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatClassEscape(t))return!0;if(t.switchU){var n=t.current();(99===n||Wt(n))&&t.raise("Invalid class escape"),t.raise("Invalid escape")}t.pos=e}var i=t.current();return 93!==i&&(t.lastIntValue=i,t.advance(),!0)},Bt.regexp_eatClassEscape=function(t){var e=t.pos;if(t.eat(98))return t.lastIntValue=8,!0;if(t.switchU&&t.eat(45))return t.lastIntValue=45,!0;if(!t.switchU&&t.eat(99)){if(this.regexp_eatClassControlLetter(t))return!0;t.pos=e}return this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)},Bt.regexp_eatClassControlLetter=function(t){var e=t.current();return!(!Ut(e)&&95!==e)&&(t.lastIntValue=e%32,t.advance(),!0)},Bt.regexp_eatHexEscapeSequence=function(t){var e=t.pos;if(t.eat(120)){if(this.regexp_eatFixedHexDigits(t,2))return!0;t.switchU&&t.raise("Invalid escape"),t.pos=e}return!1},Bt.regexp_eatDecimalDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;Ut(n=t.current());)t.lastIntValue=10*t.lastIntValue+(n-48),t.advance();return t.pos!==e},Bt.regexp_eatHexDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;Vt(n=t.current());)t.lastIntValue=16*t.lastIntValue+qt(n),t.advance();return t.pos!==e},Bt.regexp_eatLegacyOctalEscapeSequence=function(t){if(this.regexp_eatOctalDigit(t)){var e=t.lastIntValue;if(this.regexp_eatOctalDigit(t)){var n=t.lastIntValue;e<=3&&this.regexp_eatOctalDigit(t)?t.lastIntValue=64*e+8*n+t.lastIntValue:t.lastIntValue=8*e+n}else t.lastIntValue=e;return!0}return!1},Bt.regexp_eatOctalDigit=function(t){var e=t.current();return Wt(e)?(t.lastIntValue=e-48,t.advance(),!0):(t.lastIntValue=0,!1)},Bt.regexp_eatFixedHexDigits=function(t,e){var n=t.pos;t.lastIntValue=0;for(var i=0;i<e;++i){var a=t.current();if(!Vt(a))return t.pos=n,!1;t.lastIntValue=16*t.lastIntValue+qt(a),t.advance()}return!0};var Yt=function(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,t.options.locations&&(this.loc=new ot(t,t.startLoc,t.endLoc)),t.options.ranges&&(this.range=[t.start,t.end])},Gt=ht.prototype;function Zt(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}Gt.next=function(){this.options.onToken&&this.options.onToken(new Yt(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},Gt.getToken=function(){return this.next(),new Yt(this)},"undefined"!=typeof Symbol&&(Gt[Symbol.iterator]=function(){var t=this;return{next:function(){var e=t.getToken();return{done:e.type===G.eof,value:e}}}}),Gt.curContext=function(){return this.context[this.context.length-1]},Gt.nextToken=function(){var t=this.curContext();return t&&t.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(G.eof):t.override?t.override(this):void this.readToken(this.fullCharCodeAtPos())},Gt.readToken=function(t){return $(t,this.options.ecmaVersion>=6)||92===t?this.readWord():this.getTokenFromCode(t)},Gt.fullCharCodeAtPos=function(){var t=this.input.charCodeAt(this.pos);return t<=55295||t>=57344?t:(t<<10)+this.input.charCodeAt(this.pos+1)-56613888},Gt.skipBlockComment=function(){var t,e=this.options.onComment&&this.curPosition(),n=this.pos,i=this.input.indexOf("*/",this.pos+=2);if(-1===i&&this.raise(this.pos-2,"Unterminated comment"),this.pos=i+2,this.options.locations)for(K.lastIndex=n;(t=K.exec(this.input))&&t.index<this.pos;)++this.curLine,this.lineStart=t.index+t[0].length;this.options.onComment&&this.options.onComment(!0,this.input.slice(n+2,i),n,this.pos,e,this.curPosition())},Gt.skipLineComment=function(t){for(var e=this.pos,n=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=t);this.pos<this.input.length&&!X(i);)i=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(e+t,this.pos),e,this.pos,n,this.curPosition())},Gt.skipSpace=function(){var t=this;t:for(;this.pos<this.input.length;){var e=t.input.charCodeAt(t.pos);switch(e){case 32:case 160:++t.pos;break;case 13:10===t.input.charCodeAt(t.pos+1)&&++t.pos;case 10:case 8232:case 8233:++t.pos,t.options.locations&&(++t.curLine,t.lineStart=t.pos);break;case 47:switch(t.input.charCodeAt(t.pos+1)){case 42:t.skipBlockComment();break;case 47:t.skipLineComment(2);break;default:break t}break;default:if(!(e>8&&e<14||e>=5760&&J.test(String.fromCharCode(e))))break t;++t.pos}}},Gt.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=t,this.value=e,this.updateContext(n)},Gt.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1);if(t>=48&&t<=57)return this.readNumber(!0);var e=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===t&&46===e?(this.pos+=3,this.finishToken(G.ellipsis)):(++this.pos,this.finishToken(G.dot))},Gt.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===t?this.finishOp(G.assign,2):this.finishOp(G.slash,1)},Gt.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),n=1,i=42===t?G.star:G.modulo;return this.options.ecmaVersion>=7&&42===t&&42===e&&(++n,i=G.starstar,e=this.input.charCodeAt(this.pos+2)),61===e?this.finishOp(G.assign,n+1):this.finishOp(i,n)},Gt.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?this.finishOp(124===t?G.logicalOR:G.logicalAND,2):61===e?this.finishOp(G.assign,2):this.finishOp(124===t?G.bitwiseOR:G.bitwiseAND,1)},Gt.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(G.assign,2):this.finishOp(G.bitwiseXOR,1)},Gt.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?45!==e||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!Z.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(G.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===e?this.finishOp(G.assign,2):this.finishOp(G.plusMin,1)},Gt.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),n=1;return e===t?(n=62===t&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+n)?this.finishOp(G.assign,n+1):this.finishOp(G.bitShift,n)):33!==e||60!==t||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===e&&(n=2),this.finishOp(G.relational,n)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},Gt.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1);return 61===e?this.finishOp(G.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===t&&62===e&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(G.arrow)):this.finishOp(61===t?G.eq:G.prefix,1)},Gt.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(G.parenL);case 41:return++this.pos,this.finishToken(G.parenR);case 59:return++this.pos,this.finishToken(G.semi);case 44:return++this.pos,this.finishToken(G.comma);case 91:return++this.pos,this.finishToken(G.bracketL);case 93:return++this.pos,this.finishToken(G.bracketR);case 123:return++this.pos,this.finishToken(G.braceL);case 125:return++this.pos,this.finishToken(G.braceR);case 58:return++this.pos,this.finishToken(G.colon);case 63:return++this.pos,this.finishToken(G.question);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(G.backQuote);case 48:var e=this.input.charCodeAt(this.pos+1);if(120===e||88===e)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===e||79===e)return this.readRadixNumber(8);if(98===e||66===e)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(t);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(t);case 124:case 38:return this.readToken_pipe_amp(t);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(t);case 60:case 62:return this.readToken_lt_gt(t);case 61:case 33:return this.readToken_eq_excl(t);case 126:return this.finishOp(G.prefix,1)}this.raise(this.pos,"Unexpected character '"+Zt(t)+"'")},Gt.finishOp=function(t,e){var n=this.input.slice(this.pos,this.pos+e);return this.pos+=e,this.finishToken(t,n)},Gt.readRegexp=function(){for(var t,e,n=this,i=this.pos;;){n.pos>=n.input.length&&n.raise(i,"Unterminated regular expression");var a=n.input.charAt(n.pos);if(Z.test(a)&&n.raise(i,"Unterminated regular expression"),t)t=!1;else{if("["===a)e=!0;else if("]"===a&&e)e=!1;else if("/"===a&&!e)break;t="\\"===a}++n.pos}var r=this.input.slice(i,this.pos);++this.pos;var o=this.pos,s=this.readWord1();this.containsEsc&&this.unexpected(o);var c=this.regexpState||(this.regexpState=new Pt(this));c.reset(i,r,s),this.validateRegExpFlags(c),this.validateRegExpPattern(c);var l=null;try{l=new RegExp(r,s)}catch(u){}return this.finishToken(G.regexp,{pattern:r,flags:s,value:l})},Gt.readInt=function(t,e){for(var n=this,i=this.pos,a=0,r=0,o=null==e?1/0:e;r<o;++r){var s=n.input.charCodeAt(n.pos),c=void 0;if((c=s>=97?s-97+10:s>=65?s-65+10:s>=48&&s<=57?s-48:1/0)>=t)break;++n.pos,a=a*t+c}return this.pos===i||null!=e&&this.pos-i!==e?null:a},Gt.readRadixNumber=function(t){this.pos+=2;var e=this.readInt(t);return null==e&&this.raise(this.start+2,"Expected number in radix "+t),$(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(G.num,e)},Gt.readNumber=function(t){var e=this.pos;t||null!==this.readInt(10)||this.raise(e,"Invalid number");var n=this.pos-e>=2&&48===this.input.charCodeAt(e);n&&this.strict&&this.raise(e,"Invalid number"),n&&/[89]/.test(this.input.slice(e,this.pos))&&(n=!1);var i=this.input.charCodeAt(this.pos);46!==i||n||(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),69!==i&&101!==i||n||(43!==(i=this.input.charCodeAt(++this.pos))&&45!==i||++this.pos,null===this.readInt(10)&&this.raise(e,"Invalid number")),$(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var a=this.input.slice(e,this.pos),r=n?parseInt(a,8):parseFloat(a);return this.finishToken(G.num,r)},Gt.readCodePoint=function(){var t;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var e=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(e,"Code point out of bounds")}else t=this.readHexChar(4);return t},Gt.readString=function(t){for(var e=this,n="",i=++this.pos;;){e.pos>=e.input.length&&e.raise(e.start,"Unterminated string constant");var a=e.input.charCodeAt(e.pos);if(a===t)break;92===a?(n+=e.input.slice(i,e.pos),n+=e.readEscapedChar(!1),i=e.pos):(X(a,e.options.ecmaVersion>=10)&&e.raise(e.start,"Unterminated string constant"),++e.pos)}return n+=this.input.slice(i,this.pos++),this.finishToken(G.string,n)};var Kt={};Gt.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(t){if(t!==Kt)throw t;this.readInvalidTemplateToken()}this.inTemplateElement=!1},Gt.invalidStringToken=function(t,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Kt;this.raise(t,e)},Gt.readTmplToken=function(){for(var t=this,e="",n=this.pos;;){t.pos>=t.input.length&&t.raise(t.start,"Unterminated template");var i=t.input.charCodeAt(t.pos);if(96===i||36===i&&123===t.input.charCodeAt(t.pos+1))return t.pos!==t.start||t.type!==G.template&&t.type!==G.invalidTemplate?(e+=t.input.slice(n,t.pos),t.finishToken(G.template,e)):36===i?(t.pos+=2,t.finishToken(G.dollarBraceL)):(++t.pos,t.finishToken(G.backQuote));if(92===i)e+=t.input.slice(n,t.pos),e+=t.readEscapedChar(!0),n=t.pos;else if(X(i)){switch(e+=t.input.slice(n,t.pos),++t.pos,i){case 13:10===t.input.charCodeAt(t.pos)&&++t.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(i)}t.options.locations&&(++t.curLine,t.lineStart=t.pos),n=t.pos}else++t.pos}},Gt.readInvalidTemplateToken=function(){for(var t=this;this.pos<this.input.length;this.pos++)switch(t.input[t.pos]){case"\\":++t.pos;break;case"$":if("{"!==t.input[t.pos+1])break;case"`":return t.finishToken(G.invalidTemplate,t.input.slice(t.start,t.pos))}this.raise(this.start,"Unterminated template")},Gt.readEscapedChar=function(t){var e=this.input.charCodeAt(++this.pos);switch(++this.pos,e){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return Zt(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";default:if(e>=48&&e<=55){var n=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],i=parseInt(n,8);return i>255&&(n=n.slice(0,-1),i=parseInt(n,8)),this.pos+=n.length-1,e=this.input.charCodeAt(this.pos),"0"===n&&56!==e&&57!==e||!this.strict&&!t||this.invalidStringToken(this.pos-1-n.length,t?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(i)}return String.fromCharCode(e)}},Gt.readHexChar=function(t){var e=this.pos,n=this.readInt(16,t);return null===n&&this.invalidStringToken(e,"Bad character escape sequence"),n},Gt.readWord1=function(){var t=this;this.containsEsc=!1;for(var e="",n=!0,i=this.pos,a=this.options.ecmaVersion>=6;this.pos<this.input.length;){var r=t.fullCharCodeAtPos();if(z(r,a))t.pos+=r<=65535?1:2;else{if(92!==r)break;t.containsEsc=!0,e+=t.input.slice(i,t.pos);var o=t.pos;117!==t.input.charCodeAt(++t.pos)&&t.invalidStringToken(t.pos,"Expecting Unicode escape sequence \\uXXXX"),++t.pos;var s=t.readCodePoint();(n?$:z)(s,a)||t.invalidStringToken(o,"Invalid Unicode escape"),e+=Zt(s),i=t.pos}n=!1}return e+this.input.slice(i,this.pos)},Gt.readWord=function(){var t=this.readWord1(),e=G.name;return this.keywords.test(t)&&(this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+t),e=W[t]),this.finishToken(e,t)};var Xt=Object.freeze({version:"6.0.2",parse:function(t,e){return ht.parse(t,e)},parseExpressionAt:function(t,e,n){return ht.parseExpressionAt(t,e,n)},tokenizer:function(t,e){return ht.tokenizer(t,e)},Parser:ht,defaultOptions:ct,Position:rt,SourceLocation:ot,getLineInfo:st,Node:At,TokenType:H,tokTypes:G,keywordTypes:W,TokContext:Lt,tokContexts:Ot,isIdentifierChar:z,isIdentifierStart:$,Token:Yt,isNewLine:X,lineBreak:Z,lineBreakG:K,nonASCIIwhitespace:J}),Jt={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"\xa0",iexcl:"\xa1",cent:"\xa2",pound:"\xa3",curren:"\xa4",yen:"\xa5",brvbar:"\xa6",sect:"\xa7",uml:"\xa8",copy:"\xa9",ordf:"\xaa",laquo:"\xab",not:"\xac",shy:"\xad",reg:"\xae",macr:"\xaf",deg:"\xb0",plusmn:"\xb1",sup2:"\xb2",sup3:"\xb3",acute:"\xb4",micro:"\xb5",para:"\xb6",middot:"\xb7",cedil:"\xb8",sup1:"\xb9",ordm:"\xba",raquo:"\xbb",frac14:"\xbc",frac12:"\xbd",frac34:"\xbe",iquest:"\xbf",Agrave:"\xc0",Aacute:"\xc1",Acirc:"\xc2",Atilde:"\xc3",Auml:"\xc4",Aring:"\xc5",AElig:"\xc6",Ccedil:"\xc7",Egrave:"\xc8",Eacute:"\xc9",Ecirc:"\xca",Euml:"\xcb",Igrave:"\xcc",Iacute:"\xcd",Icirc:"\xce",Iuml:"\xcf",ETH:"\xd0",Ntilde:"\xd1",Ograve:"\xd2",Oacute:"\xd3",Ocirc:"\xd4",Otilde:"\xd5",Ouml:"\xd6",times:"\xd7",Oslash:"\xd8",Ugrave:"\xd9",Uacute:"\xda",Ucirc:"\xdb",Uuml:"\xdc",Yacute:"\xdd",THORN:"\xde",szlig:"\xdf",agrave:"\xe0",aacute:"\xe1",acirc:"\xe2",atilde:"\xe3",auml:"\xe4",aring:"\xe5",aelig:"\xe6",ccedil:"\xe7",egrave:"\xe8",eacute:"\xe9",ecirc:"\xea",euml:"\xeb",igrave:"\xec",iacute:"\xed",icirc:"\xee",iuml:"\xef",eth:"\xf0",ntilde:"\xf1",ograve:"\xf2",oacute:"\xf3",ocirc:"\xf4",otilde:"\xf5",ouml:"\xf6",divide:"\xf7",oslash:"\xf8",ugrave:"\xf9",uacute:"\xfa",ucirc:"\xfb",uuml:"\xfc",yacute:"\xfd",thorn:"\xfe",yuml:"\xff",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02c6",tilde:"\u02dc",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039a",Lambda:"\u039b",Mu:"\u039c",Nu:"\u039d",Xi:"\u039e",Omicron:"\u039f",Pi:"\u03a0",Rho:"\u03a1",Sigma:"\u03a3",Tau:"\u03a4",Upsilon:"\u03a5",Phi:"\u03a6",Chi:"\u03a7",Psi:"\u03a8",Omega:"\u03a9",alpha:"\u03b1",beta:"\u03b2",gamma:"\u03b3",delta:"\u03b4",epsilon:"\u03b5",zeta:"\u03b6",eta:"\u03b7",theta:"\u03b8",iota:"\u03b9",kappa:"\u03ba",lambda:"\u03bb",mu:"\u03bc",nu:"\u03bd",xi:"\u03be",omicron:"\u03bf",pi:"\u03c0",rho:"\u03c1",sigmaf:"\u03c2",sigma:"\u03c3",tau:"\u03c4",upsilon:"\u03c5",phi:"\u03c6",chi:"\u03c7",psi:"\u03c8",omega:"\u03c9",thetasym:"\u03d1",upsih:"\u03d2",piv:"\u03d6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200c",zwj:"\u200d",lrm:"\u200e",rlm:"\u200f",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201a",ldquo:"\u201c",rdquo:"\u201d",bdquo:"\u201e",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203a",oline:"\u203e",frasl:"\u2044",euro:"\u20ac",image:"\u2111",weierp:"\u2118",real:"\u211c",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21b5",lArr:"\u21d0",uArr:"\u21d1",rArr:"\u21d2",dArr:"\u21d3",hArr:"\u21d4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220b",prod:"\u220f",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221a",prop:"\u221d",infin:"\u221e",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222a",int:"\u222b",there4:"\u2234",sim:"\u223c",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22a5",sdot:"\u22c5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230a",rfloor:"\u230b",lang:"\u2329",rang:"\u232a",loz:"\u25ca",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"},Qt=/^[\da-fA-F]+$/,te=/^\d+$/,ee=Xt.tokTypes,ne=Xt.TokContext,ie=Xt.tokContexts,ae=Xt.TokenType,re=Xt.isNewLine,oe=Xt.isIdentifierStart,se=Xt.isIdentifierChar,ce=new ne("<tag",!1),le=new ne("</tag",!1),ue=new ne("<tag>...</tag>",!0,!0),de={jsxName:new ae("jsxName"),jsxText:new ae("jsxText",{beforeExpr:!0}),jsxTagStart:new ae("jsxTagStart"),jsxTagEnd:new ae("jsxTagEnd")};function he(t){return t?"JSXIdentifier"===t.type?t.name:"JSXNamespacedName"===t.type?t.namespace.name+":"+t.name.name:"JSXMemberExpression"===t.type?he(t.object)+"."+he(t.property):void 0:t}de.jsxTagStart.updateContext=function(){this.context.push(ue),this.context.push(ce),this.exprAllowed=!1},de.jsxTagEnd.updateContext=function(t){var e=this.context.pop();e===ce&&t===ee.slash||e===le?(this.context.pop(),this.exprAllowed=this.curContext()===ue):this.exprAllowed=!0};var fe=function(t){return void 0===t&&(t={}),function(e){return function(t,e){return function(e){function n(){e.apply(this,arguments)}return e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.jsx_readToken=function(){for(var t=this,e="",n=this.pos;;){t.pos>=t.input.length&&t.raise(t.start,"Unterminated JSX contents");var i=t.input.charCodeAt(t.pos);switch(i){case 60:case 123:return t.pos===t.start?60===i&&t.exprAllowed?(++t.pos,t.finishToken(de.jsxTagStart)):t.getTokenFromCode(i):(e+=t.input.slice(n,t.pos),t.finishToken(de.jsxText,e));case 38:e+=t.input.slice(n,t.pos),e+=t.jsx_readEntity(),n=t.pos;break;default:re(i)?(e+=t.input.slice(n,t.pos),e+=t.jsx_readNewLine(!0),n=t.pos):++t.pos}}},n.prototype.jsx_readNewLine=function(t){var e,n=this.input.charCodeAt(this.pos);return++this.pos,13===n&&10===this.input.charCodeAt(this.pos)?(++this.pos,e=t?"\n":"\r\n"):e=String.fromCharCode(n),this.options.locations&&(++this.curLine,this.lineStart=this.pos),e},n.prototype.jsx_readString=function(t){for(var e=this,n="",i=++this.pos;;){e.pos>=e.input.length&&e.raise(e.start,"Unterminated string constant");var a=e.input.charCodeAt(e.pos);if(a===t)break;38===a?(n+=e.input.slice(i,e.pos),n+=e.jsx_readEntity(),i=e.pos):re(a)?(n+=e.input.slice(i,e.pos),n+=e.jsx_readNewLine(!1),i=e.pos):++e.pos}return n+=this.input.slice(i,this.pos++),this.finishToken(ee.string,n)},n.prototype.jsx_readEntity=function(){var t,e=this,n="",i=0,a=this.input[this.pos];"&"!==a&&this.raise(this.pos,"Entity must start with an ampersand");for(var r=++this.pos;this.pos<this.input.length&&i++<10;){if(";"===(a=e.input[e.pos++])){"#"===n[0]?"x"===n[1]?(n=n.substr(2),Qt.test(n)&&(t=String.fromCharCode(parseInt(n,16)))):(n=n.substr(1),te.test(n)&&(t=String.fromCharCode(parseInt(n,10)))):t=Jt[n];break}n+=a}return t||(this.pos=r,"&")},n.prototype.jsx_readWord=function(){var t,e=this,n=this.pos;do{t=e.input.charCodeAt(++e.pos)}while(se(t)||45===t);return this.finishToken(de.jsxName,this.input.slice(n,this.pos))},n.prototype.jsx_parseIdentifier=function(){var t=this.startNode();return this.type===de.jsxName?t.name=this.value:this.type.keyword?t.name=this.type.keyword:this.unexpected(),this.next(),this.finishNode(t,"JSXIdentifier")},n.prototype.jsx_parseNamespacedName=function(){var e=this.start,n=this.startLoc,i=this.jsx_parseIdentifier();if(!t.allowNamespaces||!this.eat(ee.colon))return i;var a=this.startNodeAt(e,n);return a.namespace=i,a.name=this.jsx_parseIdentifier(),this.finishNode(a,"JSXNamespacedName")},n.prototype.jsx_parseElementName=function(){var e=this;if(this.type===de.jsxTagEnd)return"";var n=this.start,i=this.startLoc,a=this.jsx_parseNamespacedName();for(this.type!==ee.dot||"JSXNamespacedName"!==a.type||t.allowNamespacedObjects||this.unexpected();this.eat(ee.dot);){var r=e.startNodeAt(n,i);r.object=a,r.property=e.jsx_parseIdentifier(),a=e.finishNode(r,"JSXMemberExpression")}return a},n.prototype.jsx_parseAttributeValue=function(){switch(this.type){case ee.braceL:var t=this.jsx_parseExpressionContainer();return"JSXEmptyExpression"===t.expression.type&&this.raise(t.start,"JSX attributes must only be assigned a non-empty expression"),t;case de.jsxTagStart:case ee.string:return this.parseExprAtom();default:this.raise(this.start,"JSX value should be either an expression or a quoted JSX text")}},n.prototype.jsx_parseEmptyExpression=function(){var t=this.startNodeAt(this.lastTokEnd,this.lastTokEndLoc);return this.finishNodeAt(t,"JSXEmptyExpression",this.start,this.startLoc)},n.prototype.jsx_parseExpressionContainer=function(){var t=this.startNode();return this.next(),t.expression=this.type===ee.braceR?this.jsx_parseEmptyExpression():this.parseExpression(),this.expect(ee.braceR),this.finishNode(t,"JSXExpressionContainer")},n.prototype.jsx_parseAttribute=function(){var t=this.startNode();return this.eat(ee.braceL)?(this.expect(ee.ellipsis),t.argument=this.parseMaybeAssign(),this.expect(ee.braceR),this.finishNode(t,"JSXSpreadAttribute")):(t.name=this.jsx_parseNamespacedName(),t.value=this.eat(ee.eq)?this.jsx_parseAttributeValue():null,this.finishNode(t,"JSXAttribute"))},n.prototype.jsx_parseOpeningElementAt=function(t,e){var n=this,i=this.startNodeAt(t,e);i.attributes=[];var a=this.jsx_parseElementName();for(a&&(i.name=a);this.type!==ee.slash&&this.type!==de.jsxTagEnd;)i.attributes.push(n.jsx_parseAttribute());return i.selfClosing=this.eat(ee.slash),this.expect(de.jsxTagEnd),this.finishNode(i,a?"JSXOpeningElement":"JSXOpeningFragment")},n.prototype.jsx_parseClosingElementAt=function(t,e){var n=this.startNodeAt(t,e),i=this.jsx_parseElementName();return i&&(n.name=i),this.expect(de.jsxTagEnd),this.finishNode(n,i?"JSXClosingElement":"JSXClosingFragment")},n.prototype.jsx_parseElementAt=function(t,e){var n=this,i=this.startNodeAt(t,e),a=[],r=this.jsx_parseOpeningElementAt(t,e),o=null;if(!r.selfClosing){t:for(;;)switch(n.type){case de.jsxTagStart:if(t=n.start,e=n.startLoc,n.next(),n.eat(ee.slash)){o=n.jsx_parseClosingElementAt(t,e);break t}a.push(n.jsx_parseElementAt(t,e));break;case de.jsxText:a.push(n.parseExprAtom());break;case ee.braceL:a.push(n.jsx_parseExpressionContainer());break;default:n.unexpected()}he(o.name)!==he(r.name)&&this.raise(o.start,"Expected corresponding JSX closing tag for <"+he(r.name)+">")}var s=r.name?"Element":"Fragment";return i["opening"+s]=r,i["closing"+s]=o,i.children=a,this.type===ee.relational&&"<"===this.value&&this.raise(this.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(i,"JSX"+s)},n.prototype.jsx_parseText=function(t){var e=this.parseLiteral(t);return e.type="JSXText",e},n.prototype.jsx_parseElement=function(){var t=this.start,e=this.startLoc;return this.next(),this.jsx_parseElementAt(t,e)},n.prototype.parseExprAtom=function(t){return this.type===de.jsxText?this.jsx_parseText(this.value):this.type===de.jsxTagStart?this.jsx_parseElement():e.prototype.parseExprAtom.call(this,t)},n.prototype.readToken=function(t){var n=this.curContext();if(n===ue)return this.jsx_readToken();if(n===ce||n===le){if(oe(t))return this.jsx_readWord();if(62==t)return++this.pos,this.finishToken(de.jsxTagEnd);if((34===t||39===t)&&n==ce)return this.jsx_readString(t)}return 60===t&&this.exprAllowed&&33!==this.input.charCodeAt(this.pos+1)?(++this.pos,this.finishToken(de.jsxTagStart)):e.prototype.readToken.call(this,t)},n.prototype.updateContext=function(t){if(this.type==ee.braceL){var n=this.curContext();n==ce?this.context.push(ie.b_expr):n==ue?this.context.push(ie.b_tmpl):e.prototype.updateContext.call(this,t),this.exprAllowed=!0}else{if(this.type!==ee.slash||t!==de.jsxTagStart)return e.prototype.updateContext.call(this,t);this.context.length-=2,this.context.push(le),this.exprAllowed=!1}},n}(e)}({allowNamespaces:!1!==t.allowNamespaces,allowNamespacedObjects:!!t.allowNamespacedObjects},e)}};fe.tokTypes=de;var ge,pe=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicImportKey=void 0;var n=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),i=function t(e,n,i){null===e&&(e=Function.prototype);var a=Object.getOwnPropertyDescriptor(e,n);if(void 0===a){var r=Object.getPrototypeOf(e);return null===r?void 0:t(r,n,i)}if("value"in a)return a.value;var o=a.get;return void 0!==o?o.call(i):void 0};function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}e.default=function(t){return function(t){function e(){return a(this,e),r(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:"parseStatement",value:function(t,n,a){return this.type===Xt.tokTypes._import&&c.call(this)?this.parseExpressionStatement(this.startNode(),this.parseExpression()):i(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"parseStatement",this).call(this,t,n,a)}},{key:"parseExprAtom",value:function(t){return this.type===Xt.tokTypes._import?s.call(this):i(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"parseExprAtom",this).call(this,t)}}]),e}(t)};var o=e.DynamicImportKey="Import";function s(){var t=this.startNode();return this.next(),this.type!==Xt.tokTypes.parenL&&this.unexpected(),this.finishNode(t,o)}function c(){return/^(\s|\/\/.*|\/\*[^]*?\*\/)*\(/.test(this.input.slice(this.pos))}Xt.tokTypes._import.startsExpr=!0})),be=(ge=pe)&&ge.__esModule&&Object.prototype.hasOwnProperty.call(ge,"default")?ge.default:ge;pe.DynamicImportKey;function me(t){var e={};return Object.keys(t).forEach((function(n){"parent"!==n&&"program"!==n&&"keys"!==n&&"__wrapped"!==n&&(Array.isArray(t[n])?e[n]=t[n].map(me):t[n]&&t[n].toJSON?e[n]=t[n].toJSON():e[n]=t[n])})),e}var ye=function(){};function ve(t){var e=[];return we[t.type](e,t),e}ye.prototype.ancestor=function(t){for(var e=this;t--;)if(!(e=e.parent))return null;return e},ye.prototype.contains=function(t){for(;t;){if(t===this)return!0;t=t.parent}return!1},ye.prototype.findLexicalBoundary=function(){return this.parent.findLexicalBoundary()},ye.prototype.findNearest=function(t){return"string"==typeof t&&(t=new RegExp("^"+t+"$")),t.test(this.type)?this:this.parent.findNearest(t)},ye.prototype.unparenthesizedParent=function(){for(var t=this.parent;t&&"ParenthesizedExpression"===t.type;)t=t.parent;return t},ye.prototype.unparenthesize=function(){for(var t=this;"ParenthesizedExpression"===t.type;)t=t.expression;return t},ye.prototype.findScope=function(t){return this.parent.findScope(t)},ye.prototype.getIndentation=function(){return this.parent.getIndentation()},ye.prototype.initialise=function(t){for(var e=0,n=this.keys;e<n.length;e+=1){var i=this[n[e]];Array.isArray(i)?i.forEach((function(e){return e&&e.initialise(t)})):i&&"object"==typeof i&&i.initialise(t)}},ye.prototype.toJSON=function(){return me(this)},ye.prototype.toString=function(){return this.program.magicString.original.slice(this.start,this.end)},ye.prototype.transpile=function(t,e){for(var n=0,i=this.keys;n<i.length;n+=1){var a=this[i[n]];Array.isArray(a)?a.forEach((function(n){return n&&n.transpile(t,e)})):a&&"object"==typeof a&&a.transpile(t,e)}};var we={Identifier:function(t,e){t.push(e)},ObjectPattern:function(t,e){for(var n=0,i=e.properties;n<i.length;n+=1){var a=i[n];we[a.type](t,a)}},Property:function(t,e){we[e.value.type](t,e.value)},ArrayPattern:function(t,e){for(var n=0,i=e.elements;n<i.length;n+=1){var a=i[n];a&&we[a.type](t,a)}},RestElement:function(t,e){we[e.argument.type](t,e.argument)},AssignmentPattern:function(t,e){we[e.left.type](t,e.left)}},xe=Object.create(null);function Re(t){t=t||{},this.parent=t.parent,this.isBlockScope=!!t.block,this.createDeclarationCallback=t.declare;for(var e=this;e.isBlockScope;)e=e.parent;this.functionScope=e,this.identifiers=[],this.declarations=Object.create(null),this.references=Object.create(null),this.blockScopedDeclarations=this.isBlockScope?null:Object.create(null),this.aliases=Object.create(null)}function _e(t,e){var n,i=t.split("\n"),a=i.length,r=0;for(n=0;n<a;n+=1){var o=r+i[n].length+1;if(o>e)return{line:n+1,column:e-r,char:n};r=o}throw new Error("Could not determine location of character")}function ke(t,e){for(var n="";e--;)n+=t;return n}function Ee(t,e,n){void 0===n&&(n=1);var i=Math.max(e.line-5,0),a=e.line,r=String(a).length,o=t.split("\n").slice(i,a),s=o[o.length-1].slice(0,e.column).replace(/\t/g," ").length,c=o.map((function(t,e){return n=r,(a=String(e+i+1))+ke(" ",n-a.length)+" : "+t.replace(/\t/g," ");var n,a})).join("\n");return c+="\n"+ke(" ",r+3+s)+ke("^",n)}"do if in for let new try var case else enum eval null this true void with await break catch class const false super throw while yield delete export import public return static switch typeof default extends finally package private continue debugger function arguments interface protected implements instanceof".split(" ").forEach((function(t){return xe[t]=!0})),Re.prototype={addDeclaration:function(t,e){for(var n=this,i=0,a=ve(t);i<a.length;i+=1){var r=a[i],o=r.name,s={name:o,node:r,kind:e,instances:[]};n.declarations[o]=s,n.isBlockScope&&(n.functionScope.blockScopedDeclarations[o]||(n.functionScope.blockScopedDeclarations[o]=[]),n.functionScope.blockScopedDeclarations[o].push(s))}},addReference:function(t){this.consolidated?this.consolidateReference(t):this.identifiers.push(t)},consolidate:function(){for(var t=0;t<this.identifiers.length;t+=1){var e=this.identifiers[t];this.consolidateReference(e)}this.consolidated=!0},consolidateReference:function(t){var e=this.declarations[t.name];e?e.instances.push(t):(this.references[t.name]=!0,this.parent&&this.parent.addReference(t))},contains:function(t){return this.declarations[t]||!!this.parent&&this.parent.contains(t)},createIdentifier:function(t){"number"==typeof t&&(t=t.toString());for(var e=t=t.replace(/\s/g,"").replace(/\[([^\]]+)\]/g,"_$1").replace(/[^a-zA-Z0-9_$]/g,"_").replace(/_{2,}/,"_"),n=1;this.declarations[e]||this.references[e]||this.aliases[e]||e in xe;)e=t+"$"+n++;return this.aliases[e]=!0,e},createDeclaration:function(t){var e=this.createIdentifier(t);return this.createDeclarationCallback(e),e},findDeclaration:function(t){return this.declarations[t]||this.parent&&this.parent.findDeclaration(t)},resolveName:function(t){var e=this.findDeclaration(t);return e?e.name:t}};var Ce=function(t){function e(e,n){if(t.call(this,e),this.name="CompileError",n){var i=n.program.magicString.original,a=_e(i,n.start);this.message=e+" ("+a.line+":"+a.column+")",this.stack=(new t).stack.replace(new RegExp(".+new "+this.name+".+\\n","m"),""),this.loc=a,this.snippet=Ee(i,a,n.end-n.start)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return this.name+": "+this.message+"\n"+this.snippet},e}(Error);function Se(t,e){for(var n=0;n<t.length;n+=1)if(e(t[n],n))return n;return-1}var Te={Identifier:De,AssignmentPattern:function(t,e,n,i,a,r,o){var s="Identifier"===i.left.type,c=s?i.left.name:a;r||o.push((function(e,n,a){t.prependRight(i.left.end,n+"if ( "+c+" === void 0 ) "+c),t.move(i.left.end,i.right.end,e),t.appendLeft(i.right.end,a)}));s||Ae(t,e,n,i.left,a,r,o)},ArrayPattern:function(t,e,n,i,a,r,o){var s=i.start;i.elements.forEach((function(i,c){i&&("RestElement"===i.type?Le(t,e,n,s,i.argument,a+".slice("+c+")",r,o):Le(t,e,n,s,i,a+"["+c+"]",r,o),s=i.end)})),t.remove(s,i.end)},ObjectPattern:Ie};function Ae(t,e,n,i,a,r,o){Te[i.type](t,e,n,i,a,r,o)}function De(t,e,n,i,a,r,o){o.push((function(e,o,s){t.overwrite(i.start,i.end,(r?o:o+"var ")+n(i)+" = "+a+s),t.move(i.start,i.end,e)}))}function Ie(t,e,n,i,a,r,o){var s=this,c=i.start,l=[];i.properties.forEach((function(i){var u,d;if("Property"===i.type){var h=i.computed||"Identifier"!==i.key.type,f=h?t.slice(i.key.start,i.key.end):i.key.name;u=h?a+"["+f+"]":a+"."+f,d=i.value,l.push(h?f:'"'+f+'"')}else{if("RestElement"!==i.type)throw new Ce(s,"Unexpected node of type "+i.type+" in object pattern");d=i.argument,u=e("rest"),o.push((function(e,n,o){var s=i.program.getObjectWithoutPropertiesHelper(t);t.overwrite(i.start,c=i.argument.start,(r?n:n+"var ")+u+" = "+s+"( "+a+", ["+l.join(", ")+"] )"+o),t.move(i.start,c,e)}))}Le(t,e,n,c,d,u,r,o),c=i.end})),t.remove(c,i.end)}function Le(t,e,n,i,a,r,o,s){switch(a.type){case"Identifier":t.remove(i,a.start),De(t,0,n,a,r,o,s);break;case"MemberExpression":t.remove(i,a.start),function(t,e,n,i,a,r,o){o.push((function(e,n,o){t.prependRight(i.start,r?n:n+"var "),t.appendLeft(i.end," = "+a+o),t.move(i.start,i.end,e)}))}(t,0,0,a,r,!0,s);break;case"AssignmentPattern":var c,l="Identifier"===a.left.type;c=l?n(a.left):e(r),s.push((function(e,n,i){o?(t.prependRight(a.right.start,c+" = "+r+", "+c+" = "+c+" === void 0 ? "),t.appendLeft(a.right.end," : "+c+i)):(t.prependRight(a.right.start,n+"var "+c+" = "+r+"; if ( "+c+" === void 0 ) "+c+" = "),t.appendLeft(a.right.end,i)),t.move(a.right.start,a.right.end,e)})),l?t.remove(i,a.right.start):(t.remove(i,a.left.start),t.remove(a.left.end,a.right.start),Le(t,e,n,i,a.left,c,o,s));break;case"ObjectPattern":t.remove(i,i=a.start);var u=r;a.properties.length>1&&(u=e(r),s.push((function(e,n,s){t.prependRight(a.start,(o?"":n+"var ")+u+" = "),t.overwrite(a.start,i=a.start+1,r),t.appendLeft(i,s),t.overwrite(a.start,i=a.start+1,(o?"":n+"var ")+u+" = "+r+s),t.move(a.start,i,e)}))),Ie(t,e,n,a,u,o,s);break;case"ArrayPattern":if(t.remove(i,i=a.start),a.elements.filter(Boolean).length>1){var d=e(r);s.push((function(e,n,s){t.prependRight(a.start,(o?"":n+"var ")+d+" = "),t.overwrite(a.start,i=a.start+1,r,{contentOnly:!0}),t.appendLeft(i,s),t.move(a.start,i,e)})),a.elements.forEach((function(a,r){a&&("RestElement"===a.type?Le(t,e,n,i,a.argument,d+".slice("+r+")",o,s):Le(t,e,n,i,a,d+"["+r+"]",o,s),i=a.end)}))}else{var h=Se(a.elements,Boolean),f=a.elements[h];"RestElement"===f.type?Le(t,e,n,i,f.argument,r+".slice("+h+")",o,s):Le(t,e,n,i,f,r+"["+h+"]",o,s),i=f.end}t.remove(i,a.end);break;default:throw new Error("Unexpected node type in destructuring ("+a.type+")")}}var Oe=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createScope=function(){var t=this;this.parentIsFunction=/Function/.test(this.parent.type),this.isFunctionBlock=this.parentIsFunction||"Root"===this.parent.type,this.scope=new Re({block:!this.isFunctionBlock,parent:this.parent.findScope(!1),declare:function(e){return t.createdDeclarations.push(e)}}),this.parentIsFunction&&this.parent.params.forEach((function(e){t.scope.addDeclaration(e,"param")}))},e.prototype.initialise=function(t){this.thisAlias=null,this.argumentsAlias=null,this.defaultParameters=[],this.createdDeclarations=[],this.scope||this.createScope(),this.body.forEach((function(e){return e.initialise(t)})),this.scope.consolidate()},e.prototype.findLexicalBoundary=function(){return"Program"===this.type||/^Function/.test(this.parent.type)?this:this.parent.findLexicalBoundary()},e.prototype.findScope=function(t){return t&&!this.isFunctionBlock?this.parent.findScope(t):this.scope},e.prototype.getArgumentsAlias=function(){return this.argumentsAlias||(this.argumentsAlias=this.scope.createIdentifier("arguments")),this.argumentsAlias},e.prototype.getArgumentsArrayAlias=function(){return this.argumentsArrayAlias||(this.argumentsArrayAlias=this.scope.createIdentifier("argsArray")),this.argumentsArrayAlias},e.prototype.getThisAlias=function(){return this.thisAlias||(this.thisAlias=this.scope.createIdentifier("this")),this.thisAlias},e.prototype.getIndentation=function(){var t=this;if(void 0===this.indentation){for(var e=this.program.magicString.original,n=this.synthetic||!this.body.length,i=n?this.start:this.body[0].start;i&&"\n"!==e[i];)i-=1;for(this.indentation="";;){var a=e[i+=1];if(" "!==a&&"\t"!==a)break;t.indentation+=a}for(var r=this.program.magicString.getIndentString(),o=this.parent;o;)"constructor"!==o.kind||o.parent.parent.superClass||(t.indentation=t.indentation.replace(r,"")),o=o.parent;n&&(this.indentation+=r)}return this.indentation},e.prototype.transpile=function(e,n){var i,a,r=this,o=this.getIndentation(),s=[];if(this.argumentsAlias&&s.push((function(t,n,i){var a=n+"var "+r.argumentsAlias+" = arguments"+i;e.appendLeft(t,a)})),this.thisAlias&&s.push((function(t,n,i){var a=n+"var "+r.thisAlias+" = this"+i;e.appendLeft(t,a)})),this.argumentsArrayAlias&&s.push((function(t,n,i){var a=r.scope.createIdentifier("i"),s=n+"var "+a+" = arguments.length, "+r.argumentsArrayAlias+" = Array("+a+");\n"+o+"while ( "+a+"-- ) "+r.argumentsArrayAlias+"["+a+"] = arguments["+a+"]"+i;e.appendLeft(t,s)})),/Function/.test(this.parent.type)?this.transpileParameters(this.parent.params,e,n,o,s):"CatchClause"===this.parent.type&&this.transpileParameters([this.parent.param],e,n,o,s),n.letConst&&this.isFunctionBlock&&this.transpileBlockScopedIdentifiers(e),t.prototype.transpile.call(this,e,n),this.createdDeclarations.length&&s.push((function(t,n,i){var a=n+"var "+r.createdDeclarations.join(", ")+i;e.appendLeft(t,a)})),this.synthetic)if("ArrowFunctionExpression"===this.parent.type){var c=this.body[0];s.length?(e.appendLeft(this.start,"{").prependRight(this.end,this.parent.getIndentation()+"}"),e.prependRight(c.start,"\n"+o+"return "),e.appendLeft(c.end,";\n")):n.arrow&&(e.prependRight(c.start,"{ return "),e.appendLeft(c.end,"; }"))}else s.length&&e.prependRight(this.start,"{").appendLeft(this.end,"}");a=this.body[0],i=a&&"ExpressionStatement"===a.type&&"Literal"===a.expression.type&&"use strict"===a.expression.value?this.body[0].end:this.synthetic||"Root"===this.parent.type?this.start:this.start+1;var l="\n"+o,u=";";s.forEach((function(t,e){e===s.length-1&&(u=";\n"),t(i,l,u)}))},e.prototype.transpileParameters=function(t,e,n,i,a){var r=this;t.forEach((function(o){if("AssignmentPattern"===o.type&&"Identifier"===o.left.type)n.defaultParameter&&a.push((function(t,n,i){var a=n+"if ( "+o.left.name+" === void 0 ) "+o.left.name;e.prependRight(o.left.end,a).move(o.left.end,o.right.end,t).appendLeft(o.right.end,i)}));else if("RestElement"===o.type)n.spreadRest&&a.push((function(n,a,s){var c=t[t.length-2];if(c)e.remove(c?c.end:o.start,o.end);else{for(var l=o.start,u=o.end;/\s/.test(e.original[l-1]);)l-=1;for(;/\s/.test(e.original[u]);)u+=1;e.remove(l,u)}var d=o.argument.name,h=r.scope.createIdentifier("len"),f=t.length-1;f?e.prependRight(n,a+"var "+d+" = [], "+h+" = arguments.length - "+f+";\n"+i+"while ( "+h+"-- > 0 ) "+d+"[ "+h+" ] = arguments[ "+h+" + "+f+" ]"+s):e.prependRight(n,a+"var "+d+" = [], "+h+" = arguments.length;\n"+i+"while ( "+h+"-- ) "+d+"[ "+h+" ] = arguments[ "+h+" ]"+s)}));else if("Identifier"!==o.type&&n.parameterDestructuring){var s=r.scope.createIdentifier("ref");Ae(e,(function(t){return r.scope.createIdentifier(t)}),(function(t){var e=t.name;return r.scope.resolveName(e)}),o,s,!1,a),e.prependRight(o.start,s)}}))},e.prototype.transpileBlockScopedIdentifiers=function(t){var e=this;Object.keys(this.scope.blockScopedDeclarations).forEach((function(n){for(var i=0,a=e.scope.blockScopedDeclarations[n];i<a.length;i+=1){var r=a[i],o=!1;if("for.let"===r.kind){var s=r.node.findNearest("ForStatement");if(s.shouldRewriteAsFunction){var c=e.scope.createIdentifier(n),l=s.reassigned[n]?e.scope.createIdentifier(n):n;r.name=c,t.overwrite(r.node.start,r.node.end,c,{storeName:!0}),s.aliases[n]={outer:c,inner:l};for(var u=0,d=r.instances;u<d.length;u+=1){var h=d[u],f=s.body.contains(h)?l:c;n!==f&&t.overwrite(h.start,h.end,f,{storeName:!0})}o=!0}}if(!o){var g=e.scope.createIdentifier(n);if(n!==g){r.name=g,t.overwrite(r.node.start,r.node.end,g,{storeName:!0});for(var p=0,b=r.instances;p<b.length;p+=1){var m=b[p];m.rewritten=!0,t.overwrite(m.start,m.end,g,{storeName:!0})}}}}}))},e}(ye);function Me(t){return"Identifier"===t.type&&"arguments"===t.name}function Ne(t,e,n,i,a){for(var r=e.length,o=-1;r--;){var s=e[r];s&&"SpreadElement"===s.type&&(Me(s.argument)&&t.overwrite(s.argument.start,s.argument.end,i),o=r)}if(-1===o)return!1;if(a){for(r=0;r<e.length;r+=1){var c=e[r];"SpreadElement"===c.type?t.remove(c.start,c.argument.start):(t.prependRight(c.start,"["),t.prependRight(c.end,"]"))}return!0}var l=e[o],u=e[o-1];for(u?t.overwrite(u.end,l.start," ].concat( "):(t.remove(n,l.start),t.overwrite(l.end,e[1].start,".concat( ")),r=o;r<e.length;r+=1)(l=e[r])&&("SpreadElement"===l.type?t.remove(l.start,l.argument.start):(t.appendLeft(l.start,"["),t.appendLeft(l.end,"]")));return!0}var Be=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.spreadRest&&this.elements.length)for(var n=this.findLexicalBoundary(),i=this.elements.length;i--;){var a=this.elements[i];a&&"SpreadElement"===a.type&&Me(a.argument)&&(this.argumentsArrayAlias=n.getArgumentsArrayAlias())}t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(t.prototype.transpile.call(this,e,n),n.spreadRest){if(this.elements.length){var i=this.elements[this.elements.length-1];i&&/\s*,/.test(e.original.slice(i.end,this.end))&&e.overwrite(i.end,this.end-1," ")}if(1===this.elements.length){var a=this.elements[0];a&&"SpreadElement"===a.type&&(Me(a.argument)?e.overwrite(this.start,this.end,"[].concat( "+this.argumentsArrayAlias+" )"):(e.overwrite(this.start,a.argument.start,"[].concat( "),e.overwrite(a.end,this.end," )")))}else{Ne(e,this.elements,this.start,this.argumentsArrayAlias)&&e.overwrite(this.end-1,this.end,")")}}},e}(ye);function Pe(t,e){for(;")"!==t.original[e];){if(","===t.original[e])return void t.remove(e,e+1);"/"===t.original[e]&&(e=t.original.indexOf("/"===t.original[e+1]?"\n":"*/",e)+1),e+=1}}var Fe=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){this.body.createScope(),t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){var i=1===this.params.length&&this.start===this.params[0].start;if(n.arrow||this.needsArguments(n)){for(var a=this.body.start;"="!==e.original[a];)a-=1;e.remove(a,this.body.start),t.prototype.transpile.call(this,e,n),i&&(e.prependRight(this.params[0].start,"("),e.appendLeft(this.params[0].end,")")),this.parent&&"ExpressionStatement"===this.parent.type?e.prependRight(this.start,"!function"):e.prependRight(this.start,"function ")}else t.prototype.transpile.call(this,e,n);n.trailingFunctionCommas&&this.params.length&&!i&&Pe(e,this.params[this.params.length-1].end)},e.prototype.needsArguments=function(t){return t.spreadRest&&this.params.filter((function(t){return"RestElement"===t.type})).length>0},e}(ye);function je(t,e){var n=e.findDeclaration(t.name);if(n&&"const"===n.kind)throw new Ce(t.name+" is read-only",t)}var $e=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if("Identifier"===this.left.type){var n=this.findScope(!1).findDeclaration(this.left.name),i=n&&n.node.ancestor(3);i&&"ForStatement"===i.type&&i.body.contains(this)&&(i.reassigned[this.left.name]=!0)}t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){"Identifier"===this.left.type&&je(this.left,this.findScope(!1)),"**="===this.operator&&n.exponentiation?this.transpileExponentiation(e,n):/Pattern/.test(this.left.type)&&n.destructuring&&this.transpileDestructuring(e),t.prototype.transpile.call(this,e,n)},e.prototype.transpileDestructuring=function(t){var e=this,n=this.findScope(!0),i=this.findScope(!1),a=n.createDeclaration("assign");t.appendRight(this.left.end,"("+a),t.appendLeft(this.right.end,", ");var r=[];Ae(t,(function(t){return n.createDeclaration(t)}),(function(t){var e=i.resolveName(t.name);return je(t,i),e}),this.left,a,!0,r);var o=", ";r.forEach((function(t,n){n===r.length-1&&(o=""),t(e.end,"",o)})),"ExpressionStatement"===this.unparenthesizedParent().type?t.prependRight(this.end,")"):t.appendRight(this.end,", "+a+")")},e.prototype.transpileExponentiation=function(t){for(var e,n=this.findScope(!1),i=this.left.end;"*"!==t.original[i];)i+=1;t.remove(i,i+2);var a=this.left.unparenthesize();if("Identifier"===a.type)e=n.resolveName(a.name);else if("MemberExpression"===a.type){var r,o,s=!1,c=!1,l=this.findNearest(/(?:Statement|Declaration)$/),u=l.getIndentation();"Identifier"===a.property.type?o=a.computed?n.resolveName(a.property.name):a.property.name:(o=n.createDeclaration("property"),c=!0),"Identifier"===a.object.type?r=n.resolveName(a.object.name):(r=n.createDeclaration("object"),s=!0),a.start===l.start?s&&c?(t.prependRight(l.start,r+" = "),t.overwrite(a.object.end,a.property.start,";\n"+u+o+" = "),t.overwrite(a.property.end,a.end,";\n"+u+r+"["+o+"]")):s?(t.prependRight(l.start,r+" = "),t.appendLeft(a.object.end,";\n"+u),t.appendLeft(a.object.end,r)):c&&(t.prependRight(a.property.start,o+" = "),t.appendLeft(a.property.end,";\n"+u),t.move(a.property.start,a.property.end,this.start),t.appendLeft(a.object.end,"["+o+"]"),t.remove(a.object.end,a.property.start),t.remove(a.property.end,a.end)):(s&&c?(t.prependRight(a.start,"( "+r+" = "),t.overwrite(a.object.end,a.property.start,", "+o+" = "),t.overwrite(a.property.end,a.end,", "+r+"["+o+"]")):s?(t.prependRight(a.start,"( "+r+" = "),t.appendLeft(a.object.end,", "+r)):c&&(t.prependRight(a.property.start,"( "+o+" = "),t.appendLeft(a.property.end,", "),t.move(a.property.start,a.property.end,a.start),t.overwrite(a.object.end,a.property.start,"["+o+"]"),t.remove(a.property.end,a.end)),c&&t.appendLeft(this.end," )")),e=r+(a.computed||c?"["+o+"]":"."+o)}t.prependRight(this.right.start,"Math.pow( "+e+", "),t.appendLeft(this.right.end," )")},e}(ye),ze=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){"**"===this.operator&&n.exponentiation&&(e.prependRight(this.start,"Math.pow( "),e.overwrite(this.left.end,this.right.start,", "),e.appendLeft(this.end," )")),t.prototype.transpile.call(this,e,n)},e}(ye),He=/(?:For(?:In|Of)?|While)Statement/,Ue=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(){var t=this.findNearest(He),e=this.findNearest("SwitchCase");t&&(!e||t.depth>e.depth)&&(t.canBreak=!0,this.loop=t)},e.prototype.transpile=function(t){if(this.loop&&this.loop.shouldRewriteAsFunction){if(this.label)throw new Ce("Labels are not currently supported in a loop with locally-scoped variables",this);t.overwrite(this.start,this.start+5,"return 'break'")}},e}(ye),Ve=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.spreadRest&&this.arguments.length>1)for(var n=this.findLexicalBoundary(),i=this.arguments.length;i--;){var a=this.arguments[i];"SpreadElement"===a.type&&Me(a.argument)&&(this.argumentsArrayAlias=n.getArgumentsArrayAlias())}t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(n.spreadRest&&this.arguments.length){var i,a=!1,r=this.arguments[0];if(1===this.arguments.length?"SpreadElement"===r.type&&(e.remove(r.start,r.argument.start),a=!0):a=Ne(e,this.arguments,r.start,this.argumentsArrayAlias),a){var o=null;if("Super"===this.callee.type?o=this.callee:"MemberExpression"===this.callee.type&&"Super"===this.callee.object.type&&(o=this.callee.object),o||"MemberExpression"!==this.callee.type)i="void 0";else if("Identifier"===this.callee.object.type)i=this.callee.object.name;else{i=this.findScope(!0).createDeclaration("ref");var s=this.callee.object;e.prependRight(s.start,"("+i+" = "),e.appendLeft(s.end,")")}e.appendLeft(this.callee.end,".apply"),o?(o.noCall=!0,this.arguments.length>1&&("SpreadElement"!==r.type&&e.prependRight(r.start,"[ "),e.appendLeft(this.arguments[this.arguments.length-1].end," )"))):1===this.arguments.length?e.prependRight(r.start,i+", "):("SpreadElement"===r.type?e.appendLeft(r.start,i+", "):e.appendLeft(r.start,i+", [ "),e.appendLeft(this.arguments[this.arguments.length-1].end," )"))}}n.trailingFunctionCommas&&this.arguments.length&&Pe(e,this.arguments[this.arguments.length-1].end),t.prototype.transpile.call(this,e,n)},e}(ye),qe=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n,i,a){var r=this;if(n.classes){var o=this.parent.name,s=e.getIndentString(),c=this.getIndentation()+(i?s:""),l=c+s,u=Se(this.body,(function(t){return"constructor"===t.kind})),d=this.body[u],h="",f="";if(this.body.length?(e.remove(this.start,this.body[0].start),e.remove(this.body[this.body.length-1].end,this.end)):e.remove(this.start,this.end),d){d.value.body.isConstructorBody=!0;var g=this.body[u-1],p=this.body[u+1];u>0&&(e.remove(g.end,d.start),e.move(d.start,p?p.start:this.end-1,this.body[0].start)),i||e.appendLeft(d.end,";")}var b=!1!==this.program.options.namedFunctionExpressions,m=b||this.parent.superClass||"ClassDeclaration"!==this.parent.type;if(this.parent.superClass){var y="if ( "+a+" ) "+o+".__proto__ = "+a+";\n"+c+o+".prototype = Object.create( "+a+" && "+a+".prototype );\n"+c+o+".prototype.constructor = "+o+";";if(d)h+="\n\n"+c+y;else h+=(y="function "+o+" () {"+(a?"\n"+l+a+".apply(this, arguments);\n"+c+"}":"}")+(i?"":";")+(this.body.length?"\n\n"+c:"")+y)+"\n\n"+c}else if(!d){var v="function "+(m?o+" ":"")+"() {}";"ClassDeclaration"===this.parent.type&&(v+=";"),this.body.length&&(v+="\n\n"+c),h+=v}var w,x,R=this.findScope(!1),_=[],k=[];if(this.body.forEach((function(t,i){if(("get"===t.kind||"set"===t.kind)&&n.getterSetter)throw new Ce("getters and setters are not supported. Use `transforms: { getterSetter: false }` to skip transformation and disable this error",t);if("constructor"!==t.kind){if(t.static){var a=" "==e.original[t.start+6]?7:6;e.remove(t.start,t.start+a)}var s,l="method"!==t.kind,d=t.key.name;(xe[d]||t.value.body.scope.references[d])&&(d=R.createIdentifier(d));var h=!1;if(t.computed||"Literal"!==t.key.type||(h=!0,t.computed=!0),l){if(t.computed)throw new Error("Computed accessor properties are not currently supported");e.remove(t.start,t.key.start),t.static?(~k.indexOf(t.key.name)||k.push(t.key.name),x||(x=R.createIdentifier("staticAccessors")),s=""+x):(~_.indexOf(t.key.name)||_.push(t.key.name),w||(w=R.createIdentifier("prototypeAccessors")),s=""+w)}else s=t.static?""+o:o+".prototype";t.computed||(s+="."),(u>0&&i===u+1||0===i&&u===r.body.length-1)&&(s="\n\n"+c+s);var f=t.key.end;if(t.computed)if(h)e.prependRight(t.key.start,"["),e.appendLeft(t.key.end,"]");else{for(;"]"!==e.original[f];)f+=1;f+=1}var g=t.computed||l||!b?"":d+" ",p=(l?"."+t.kind:"")+" = function"+(t.value.generator?"* ":" ")+g;e.remove(f,t.value.start),e.prependRight(t.value.start,p),e.appendLeft(t.end,";"),t.value.generator&&e.remove(t.start,t.key.start),e.prependRight(t.start,s)}else{var y=m?" "+o:"";e.overwrite(t.key.start,t.key.end,"function"+y)}})),_.length||k.length){var E=[],C=[];_.length&&(E.push("var "+w+" = { "+_.map((function(t){return t+": { configurable: true }"})).join(",")+" };"),C.push("Object.defineProperties( "+o+".prototype, "+w+" );")),k.length&&(E.push("var "+x+" = { "+k.map((function(t){return t+": { configurable: true }"})).join(",")+" };"),C.push("Object.defineProperties( "+o+", "+x+" );")),d&&(h+="\n\n"+c),h+=E.join("\n"+c),d||(h+="\n\n"+c),f+="\n\n"+c+C.join("\n"+c)}d?e.appendLeft(d.end,h):e.prependRight(this.start,h),e.appendLeft(this.end,f)}t.prototype.transpile.call(this,e,n)},e}(ye);var We=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){this.id?(this.name=this.id.name,this.findScope(!0).addDeclaration(this.id,"class")):this.name=this.findScope(!0).createIdentifier("defaultExport"),t.prototype.initialise.call(this,e)},e.prototype.transpile=function(t,e){if(e.classes){this.superClass||function(t,e){var n=t.start,i=t.end,a=e.getIndentString(),r=a.length,o=n-r;t.program.indentExclusions[o]||e.original.slice(o,n)!==a||e.remove(o,n);for(var s,c=new RegExp(a+"\\S","g"),l=e.original.slice(n,i);s=c.exec(l);){var u=n+s.index;t.program.indentExclusions[u]||e.remove(u,u+r)}}(this.body,t);var n=this.superClass&&(this.superClass.name||"superclass"),i=this.getIndentation(),a=i+t.getIndentString(),r="ExportDefaultDeclaration"===this.parent.type;r&&t.remove(this.parent.start,this.start);var o=this.start;this.id?(t.overwrite(o,this.id.start,"var "),o=this.id.end):t.prependLeft(o,"var "+this.name),this.superClass?this.superClass.end===this.body.start?(t.remove(o,this.superClass.start),t.appendLeft(o," = /*@__PURE__*/(function ("+n+") {\n"+a)):(t.overwrite(o,this.superClass.start," = "),t.overwrite(this.superClass.end,this.body.start,"/*@__PURE__*/(function ("+n+") {\n"+a)):o===this.body.start?t.appendLeft(o," = "):t.overwrite(o,this.body.start," = "),this.body.transpile(t,e,!!this.superClass,n);var s=r?"\n\n"+i+"export default "+this.name+";":"";this.superClass?(t.appendLeft(this.end,"\n\n"+a+"return "+this.name+";\n"+i+"}("),t.move(this.superClass.start,this.superClass.end,this.end),t.prependRight(this.end,"));"+s)):s&&t.prependRight(this.end,s)}else this.body.transpile(t,e,!1,null)},e}(ye),Ye=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){this.name=(this.id?this.id.name:"VariableDeclarator"===this.parent.type?this.parent.id.name:"AssignmentExpression"!==this.parent.type?null:"Identifier"===this.parent.left.type?this.parent.left.name:"MemberExpression"===this.parent.left.type?this.parent.left.property.name:null)||this.findScope(!0).createIdentifier("anonymous"),t.prototype.initialise.call(this,e)},e.prototype.transpile=function(t,e){if(e.classes){var n=this.superClass&&(this.superClass.name||"superclass"),i=this.getIndentation(),a=i+t.getIndentString();this.superClass?(t.remove(this.start,this.superClass.start),t.remove(this.superClass.end,this.body.start),t.appendRight(this.start,"/*@__PURE__*/(function ("+n+") {\n"+a)):t.overwrite(this.start,this.body.start,"/*@__PURE__*/(function () {\n"+a),this.body.transpile(t,e,!0,n);var r="";this.superClass&&(r=t.slice(this.superClass.start,this.superClass.end),t.remove(this.superClass.start,this.superClass.end)),t.appendLeft(this.end,"\n\n"+a+"return "+this.name+";\n"+i+"}("+r+"))")}else this.body.transpile(t,e,!1)},e}(ye),Ge=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(t){if(this.findNearest(He).shouldRewriteAsFunction){if(this.label)throw new Ce("Labels are not currently supported in a loop with locally-scoped variables",this);t.overwrite(this.start,this.start+8,"return")}},e}(ye),Ze=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.moduleExport)throw new Ce("export is not supported",this);t.prototype.initialise.call(this,e)},e}(ye),Ke=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.moduleExport)throw new Ce("export is not supported",this);t.prototype.initialise.call(this,e)},e}(ye),Xe=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.findScope=function(t){return t||!this.createdScope?this.parent.findScope(t):this.body.scope},e.prototype.initialise=function(e){var n=this;if(this.body.createScope(),this.createdScope=!0,this.reassigned=Object.create(null),this.aliases=Object.create(null),this.thisRefs=[],t.prototype.initialise.call(this,e),e.letConst)for(var i=Object.keys(this.body.scope.declarations),a=i.length;a--;){for(var r=i[a],o=n.body.scope.declarations[r],s=o.instances.length;s--;){var c=o.instances[s].findNearest(/Function/);if(c&&c.depth>n.depth){n.shouldRewriteAsFunction=!0;for(var l=0,u=n.thisRefs;l<u.length;l+=1){var d=u[l];d.alias=d.alias||d.findLexicalBoundary().getThisAlias()}break}}if(n.shouldRewriteAsFunction)break}},e.prototype.transpile=function(e,n){var i="ForOfStatement"!=this.type&&("BlockStatement"!==this.body.type||"BlockStatement"===this.body.type&&this.body.synthetic);if(this.shouldRewriteAsFunction){var a=this.getIndentation(),r=a+e.getIndentString(),o=this.args?" "+this.args.join(", ")+" ":"",s=this.params?" "+this.params.join(", ")+" ":"",c=this.findScope(!0),l=c.createIdentifier("loop"),u="var "+l+" = function ("+s+") "+(this.body.synthetic?"{\n"+a+e.getIndentString():""),d=(this.body.synthetic?"\n"+a+"}":"")+";\n\n"+a;if(e.prependRight(this.body.start,u),e.appendLeft(this.body.end,d),e.move(this.start,this.body.start,this.body.end),this.canBreak||this.canReturn){var h=c.createIdentifier("returned"),f="{\n"+r+"var "+h+" = "+l+"("+o+");\n";this.canBreak&&(f+="\n"+r+"if ( "+h+" === 'break' ) break;"),this.canReturn&&(f+="\n"+r+"if ( "+h+" ) return "+h+".v;"),f+="\n"+a+"}",e.prependRight(this.body.end,f)}else{var g=l+"("+o+");";"DoWhileStatement"===this.type?e.overwrite(this.start,this.body.start,"do {\n"+r+g+"\n"+a+"}"):e.prependRight(this.body.end,g)}}else i&&(e.appendLeft(this.body.start,"{ "),e.prependRight(this.body.end," }"));t.prototype.transpile.call(this,e,n)},e}(ye),Je=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.findScope=function(t){return t||!this.createdScope?this.parent.findScope(t):this.body.scope},e.prototype.transpile=function(e,n){var i=this,a=this.getIndentation()+e.getIndentString();if(this.shouldRewriteAsFunction){var r="VariableDeclaration"===this.init.type?this.init.declarations.map((function(t){return ve(t.id)})):[],o=this.aliases;this.args=r.map((function(t){return t in i.aliases?i.aliases[t].outer:t})),this.params=r.map((function(t){return t in i.aliases?i.aliases[t].inner:t}));var s=Object.keys(this.reassigned).map((function(t){return o[t].outer+" = "+o[t].inner+";"}));if(s.length)if(this.body.synthetic)e.appendLeft(this.body.body[0].end,"; "+s.join(" "));else{var c=this.body.body[this.body.body.length-1];e.appendLeft(c.end,"\n\n"+a+s.join("\n"+a))}}t.prototype.transpile.call(this,e,n)},e}(Xe),Qe=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.findScope=function(t){return t||!this.createdScope?this.parent.findScope(t):this.body.scope},e.prototype.transpile=function(e,n){var i=this,a="VariableDeclaration"===this.left.type;if(this.shouldRewriteAsFunction){var r=a?this.left.declarations.map((function(t){return ve(t.id)})):[];this.args=r.map((function(t){return t in i.aliases?i.aliases[t].outer:t})),this.params=r.map((function(t){return t in i.aliases?i.aliases[t].inner:t}))}t.prototype.transpile.call(this,e,n);var o=a?this.left.declarations[0].id:this.left;"Identifier"!==o.type&&this.destructurePattern(e,o,a)},e.prototype.destructurePattern=function(t,e,n){var i=this.findScope(!0),a=this.getIndentation()+t.getIndentString(),r=i.createIdentifier("ref"),o=this.body.body.length?this.body.body[0].start:this.body.start+1;t.move(e.start,e.end,o),t.prependRight(e.end,n?r:"var "+r);var s=[];Ae(t,(function(t){return i.createIdentifier(t)}),(function(t){var e=t.name;return i.resolveName(e)}),e,r,!1,s);var c=";\n"+a;s.forEach((function(t,e){e===s.length-1&&(c=";\n\n"+a),t(o,"",c)}))},e}(Xe),tn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.forOf&&!e.dangerousForOf)throw new Ce("for...of statements are not supported. Use `transforms: { forOf: false }` to skip transformation and disable this error, or `transforms: { dangerousForOf: true }` if you know what you're doing",this);t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(t.prototype.transpile.call(this,e,n),n.dangerousForOf)if(this.body.body[0]){var i=this.findScope(!0),a=this.getIndentation(),r=a+e.getIndentString(),o=i.createIdentifier("i"),s=i.createIdentifier("list");this.body.synthetic&&(e.prependRight(this.left.start,"{\n"+r),e.appendLeft(this.body.body[0].end,"\n"+a+"}"));var c=this.body.body[0].start;e.remove(this.left.end,this.right.start),e.move(this.left.start,this.left.end,c),e.prependRight(this.right.start,"var "+o+" = 0, "+s+" = "),e.appendLeft(this.right.end,"; "+o+" < "+s+".length; "+o+" += 1");var l="VariableDeclaration"===this.left.type,u=l?this.left.declarations[0].id:this.left;if("Identifier"!==u.type){var d=[],h=i.createIdentifier("ref");Ae(e,(function(t){return i.createIdentifier(t)}),(function(t){var e=t.name;return i.resolveName(e)}),u,h,!l,d);var f=";\n"+r;d.forEach((function(t,e){e===d.length-1&&(f=";\n\n"+r),t(c,"",f)})),l?(e.appendLeft(this.left.start+this.left.kind.length+1,h),e.appendLeft(this.left.end," = "+s+"["+o+"];\n"+r)):e.appendLeft(this.left.end,"var "+h+" = "+s+"["+o+"];\n"+r)}else e.appendLeft(this.left.end," = "+s+"["+o+"];\n\n"+r)}else"VariableDeclaration"===this.left.type&&"var"===this.left.kind?(e.remove(this.start,this.left.start),e.appendLeft(this.left.end,";"),e.remove(this.left.end,this.end)):e.remove(this.start,this.end)},e}(Xe),en=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(this.generator&&e.generator)throw new Ce("Generators are not supported",this);this.body.createScope(),this.id&&this.findScope(!0).addDeclaration(this.id,"function"),t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){t.prototype.transpile.call(this,e,n),n.trailingFunctionCommas&&this.params.length&&Pe(e,this.params[this.params.length-1].end)},e}(ye),nn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(this.generator&&e.generator)throw new Ce("Generators are not supported",this);this.body.createScope(),this.id&&this.body.scope.addDeclaration(this.id,"function"),t.prototype.initialise.call(this,e);var n,i=this.parent;if(e.conciseMethodProperty&&"Property"===i.type&&"init"===i.kind&&i.method&&"Identifier"===i.key.type||e.classes&&"MethodDefinition"===i.type&&"method"===i.kind&&"Identifier"===i.key.type?n=i.key.name:this.id&&"Identifier"===this.id.type&&(n=this.id.alias||this.id.name),n)for(var a=0,r=this.params;a<r.length;a+=1){var o=r[a];if("Identifier"===o.type&&n===o.name){var s=this.body.scope,c=s.declarations[n],l=s.createIdentifier(n);o.alias=l;for(var u=0,d=c.instances;u<d.length;u+=1){d[u].alias=l}break}}},e.prototype.transpile=function(e,n){t.prototype.transpile.call(this,e,n),n.trailingFunctionCommas&&this.params.length&&Pe(e,this.params[this.params.length-1].end)},e}(ye);function an(t,e){return"MemberExpression"===t.type?!t.computed&&an(t.object,t):"Identifier"===t.type?!e||!/(Function|Class)Expression/.test(e.type)&&("VariableDeclarator"===e.type?t===e.init:"MemberExpression"===e.type||"MethodDefinition"===e.type?e.computed||t===e.object:"ArrayPattern"!==e.type&&("Property"===e.type?"ObjectPattern"!==e.parent.type&&(e.computed||t===e.value):"MethodDefinition"!==e.type&&("ExportSpecifier"!==e.type||t===e.local))):void 0}var rn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.findScope=function(t){return this.parent.params&&~this.parent.params.indexOf(this)||"FunctionExpression"===this.parent.type&&this===this.parent.id?this.parent.body.scope:this.parent.findScope(t)},e.prototype.initialise=function(t){if(an(this,this.parent)){if(t.arrow&&"arguments"===this.name&&!this.findScope(!1).contains(this.name)){var e=this.findLexicalBoundary(),n=this.findNearest("ArrowFunctionExpression"),i=this.findNearest(He);n&&n.depth>e.depth&&(this.alias=e.getArgumentsAlias()),i&&i.body.contains(this)&&i.depth>e.depth&&(this.alias=e.getArgumentsAlias())}this.findScope(!1).addReference(this)}},e.prototype.transpile=function(t){this.alias&&t.overwrite(this.start,this.end,this.alias,{storeName:!0,contentOnly:!0})},e}(ye),on=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){("BlockStatement"!==this.consequent.type||"BlockStatement"===this.consequent.type&&this.consequent.synthetic)&&(e.appendLeft(this.consequent.start,"{ "),e.prependRight(this.consequent.end," }")),this.alternate&&"IfStatement"!==this.alternate.type&&("BlockStatement"!==this.alternate.type||"BlockStatement"===this.alternate.type&&this.alternate.synthetic)&&(e.appendLeft(this.alternate.start,"{ "),e.prependRight(this.alternate.end," }")),t.prototype.transpile.call(this,e,n)},e}(ye),sn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.moduleImport)throw new Ce("import is not supported",this);t.prototype.initialise.call(this,e)},e}(ye),cn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){this.findScope(!0).addDeclaration(this.local,"import"),t.prototype.initialise.call(this,e)},e}(ye),ln=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){this.findScope(!0).addDeclaration(this.local,"import"),t.prototype.initialise.call(this,e)},e}(ye),un=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){var i,a=this.name,r=a.start,o=a.name,s=this.value?this.value.start:this.name.end;e.overwrite(r,s,(/-/.test(i=o)?"'"+i+"'":i)+": "+(this.value?"":"true")),t.prototype.transpile.call(this,e,n)},e}(ye);var dn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(t){var e,n=!0,i=this.parent.children[this.parent.children.length-1];(i&&("JSXText"===(e=i).type&&!/\S/.test(e.value)&&/\n/.test(e.value))||this.parent.openingElement.attributes.length)&&(n=!1),t.overwrite(this.start,this.end,n?" )":")")},e}(ye);var hn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(t){var e,n=!0,i=this.parent.children[this.parent.children.length-1];i&&("JSXText"===(e=i).type&&!/\S/.test(e.value)&&/\n/.test(e.value))&&(n=!1),t.overwrite(this.start,this.end,n?" )":")")},e}(ye);function fn(t,e){return t=t.replace(/\u00a0/g," "),e&&/\n/.test(t)&&(t=t.replace(/\s+$/,"")),t=t.replace(/^\n\r?\s+/,"").replace(/\s*\n\r?\s*/gm," "),JSON.stringify(t)}var gn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){t.prototype.transpile.call(this,e,n);var i=this.children.filter((function(t){return"JSXText"!==t.type||(/\S/.test(t.raw)||!/\n/.test(t.raw))}));if(i.length){var a,r=(this.openingElement||this.openingFragment).end;for(a=0;a<i.length;a+=1){var o=i[a];if("JSXExpressionContainer"===o.type&&"JSXEmptyExpression"===o.expression.type);else{var s="\n"===e.original[r]&&"JSXText"!==o.type?"":" ";e.appendLeft(r,","+s)}if("JSXText"===o.type){var c=fn(o.value,a===i.length-1);e.overwrite(o.start,o.end,c)}r=o.end}}},e}(ye),pn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){e.remove(this.start,this.expression.start),e.remove(this.expression.end,this.end),t.prototype.transpile.call(this,e,n)},e}(ye),bn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(gn),mn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){var i=this;t.prototype.transpile.call(this,e,n),e.overwrite(this.start,this.name.start,this.program.jsx+"( ");var a="JSXIdentifier"===this.name.type&&this.name.name[0]===this.name.name[0].toLowerCase();a&&e.prependRight(this.name.start,"'");var r=this.attributes.length,o=this.name.end;if(r){var s,c,l,u=!1;for(s=0;s<r;s+=1)if("JSXSpreadAttribute"===i.attributes[s].type){u=!0;break}for(o=this.attributes[0].end,s=0;s<r;s+=1){var d=i.attributes[s];if(s>0&&(d.start===o?e.prependRight(o,", "):e.overwrite(o,d.start,", ")),u&&"JSXSpreadAttribute"!==d.type){var h=i.attributes[s-1],f=i.attributes[s+1];h&&"JSXSpreadAttribute"!==h.type||e.prependRight(d.start,"{ "),f&&"JSXSpreadAttribute"!==f.type||e.appendLeft(d.end," }")}o=d.end}if(u)if(1===r)l=a?"',":",";else{if(!this.program.options.objectAssign)throw new Ce("Mixed JSX attributes ending in spread requires specified objectAssign option with 'Object.assign' or polyfill helper.",this);l=a?"', "+this.program.options.objectAssign+"({},":", "+this.program.options.objectAssign+"({},",c=")"}else l=a?"', {":", {",c=" }";e.prependRight(this.name.end,l),c&&e.appendLeft(this.attributes[r-1].end,c)}else e.appendLeft(this.name.end,a?"', null":", null"),o=this.name.end;this.selfClosing?e.overwrite(o,this.end,this.attributes.length?")":" )"):e.remove(o,this.end)},e}(ye),yn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(t){t.overwrite(this.start,this.end,this.program.jsx+"( React.Fragment, null")},e}(ye),vn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){e.remove(this.start,this.argument.start),e.remove(this.argument.end,this.end),t.prototype.transpile.call(this,e,n)},e}(ye),wn=/[\u2028-\u2029]/g,xn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(){"string"==typeof this.value&&this.program.indentExclusionElements.push(this)},e.prototype.transpile=function(t,e){if(e.numericLiteral&&this.raw.match(/^0[bo]/i)&&t.overwrite(this.start,this.end,String(this.value),{storeName:!0,contentOnly:!0}),this.regex){var n=this.regex,i=n.pattern,a=n.flags;if(e.stickyRegExp&&/y/.test(a))throw new Ce("Regular expression sticky flag is not supported",this);e.unicodeRegExp&&/u/.test(a)&&t.overwrite(this.start,this.end,"/"+l()(i,a)+"/"+a.replace("u",""),{contentOnly:!0})}else"string"==typeof this.value&&this.value.match(wn)&&t.overwrite(this.start,this.end,this.raw.replace(wn,(function(t){return"\u2028"==t?"\\u2028":"\\u2029"})),{contentOnly:!0})},e}(ye),Rn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){n.reservedProperties&&xe[this.property.name]&&(e.overwrite(this.object.end,this.property.start,"['"),e.appendLeft(this.property.end,"']")),t.prototype.transpile.call(this,e,n)},e}(ye),_n=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.spreadRest&&this.arguments.length)for(var n=this.findLexicalBoundary(),i=this.arguments.length;i--;){var a=this.arguments[i];if("SpreadElement"===a.type&&Me(a.argument)){this.argumentsArrayAlias=n.getArgumentsArrayAlias();break}}t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(t.prototype.transpile.call(this,e,n),n.spreadRest&&this.arguments.length){var i=this.arguments[0];Ne(e,this.arguments,i.start,this.argumentsArrayAlias,!0)&&(e.prependRight(this.start+"new".length," (Function.prototype.bind.apply("),e.overwrite(this.callee.end,i.start,", [ null ].concat( "),e.appendLeft(this.end," ))"))}this.arguments.length&&Pe(e,this.arguments[this.arguments.length-1].end)},e}(ye),kn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){var i=this;t.prototype.transpile.call(this,e,n);for(var a=this.start+1,r=0,o=0,s=null,c=null,l=0;l<this.properties.length;++l){var u=i.properties[l];"SpreadElement"===u.type?(r+=1,null===s&&(s=l)):u.computed&&n.computedProperty&&(o+=1,null===c&&(c=l))}if(!r||n.objectRestSpread||o&&n.computedProperty){if(r){if(!this.program.options.objectAssign)throw new Ce("Object spread operator requires specified objectAssign option with 'Object.assign' or polyfill helper.",this);for(var d=this.properties.length;d--;){var h=i.properties[d];if("Property"===h.type&&!o){var f=i.properties[d-1],g=i.properties[d+1];f&&"Property"===f.type||e.prependRight(h.start,"{"),g&&"Property"===g.type||e.appendLeft(h.end,"}")}"SpreadElement"===h.type&&(e.remove(h.start,h.argument.start),e.remove(h.argument.end,h.end))}a=this.properties[0].start,o?"SpreadElement"===this.properties[0].type?(e.overwrite(this.start,a,this.program.options.objectAssign+"({}, "),e.remove(this.end-1,this.end),e.appendRight(this.end,")")):(e.prependLeft(this.start,this.program.options.objectAssign+"("),e.appendRight(this.end,")")):(e.overwrite(this.start,a,this.program.options.objectAssign+"({}, "),e.overwrite(this.properties[this.properties.length-1].end,this.end,")"))}}else r=0,s=null;if(o&&n.computedProperty){var p,b,m=this.getIndentation();"VariableDeclarator"===this.parent.type&&1===this.parent.parent.declarations.length&&"Identifier"===this.parent.id.type?(p=!0,b=this.parent.id.alias||this.parent.id.name):("AssignmentExpression"===this.parent.type&&"ExpressionStatement"===this.parent.parent.type&&"Identifier"===this.parent.left.type||"AssignmentPattern"===this.parent.type&&"Identifier"===this.parent.left.type)&&(p=!0,b=this.parent.left.alias||this.parent.left.name),r&&(p=!1),b=this.findScope(!1).resolveName(b);var y=a,v=this.end;p||(null===s||c<s?(b=this.findScope(!0).createDeclaration("obj"),e.prependRight(this.start,"( "+b+" = ")):b=null);for(var w,x=this.properties.length,R=!1,_=!0,k=0;k<x;k+=1){var E=i.properties[k],C=k>0?i.properties[k-1].end:y;if("Property"===E.type&&(E.computed||w&&!r)){if(0===k&&(C=i.start+1),w=E,b){var S=(p?";\n"+m+b:", "+b)+("Literal"===E.key.type||E.computed?"":".");C<E.start?e.overwrite(C,E.start,S):e.prependRight(E.start,S)}else{var T=(b=i.findScope(!0).createDeclaration("obj"))+(E.computed?"":".");e.appendRight(E.start,"( "+b+" = {}, "+T)}var A=E.key.end;if(E.computed){for(;"]"!==e.original[A];)A+=1;A+=1}"Literal"!==E.key.type||E.computed?E.shorthand||E.method&&!E.computed&&n.conciseMethodProperty?e.overwrite(E.key.start,E.key.end,e.slice(E.key.start,E.key.end).replace(/:/," =")):(E.value.start>A&&e.remove(A,E.value.start),e.prependLeft(A," = ")):e.overwrite(E.start,E.key.end+1,"["+e.slice(E.start,E.key.end)+"] = "),!E.method||!E.computed&&n.conciseMethodProperty||(E.value.generator&&e.remove(E.start,E.key.start),e.prependRight(E.value.start,"function"+(E.value.generator?"*":"")+" "))}else"SpreadElement"===E.type?b&&k>0&&(w||(w=i.properties[k-1]),e.appendLeft(w.end,", "+b+" )"),w=null,b=null):(!_&&r&&(e.prependRight(E.start,"{"),e.appendLeft(E.end,"}")),R=!0);if(_&&("SpreadElement"===E.type||E.computed)){var D=R?i.properties[i.properties.length-1].end:i.end-1;","==e.original[D]&&++D;var I=e.slice(D,v);e.prependLeft(C,I),e.remove(D,v),_=!1}var L=E.end;if(k<x-1&&!R)for(;","!==e.original[L];)L+=1;else k==x-1&&(L=i.end);E.end!=L&&e.overwrite(E.end,L,"",{contentOnly:!0})}!p&&b&&e.appendLeft(w.end,", "+b+" )")}},e}(ye),En=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(("get"===this.kind||"set"===this.kind)&&e.getterSetter)throw new Ce("getters and setters are not supported. Use `transforms: { getterSetter: false }` to skip transformation and disable this error",this);t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(t.prototype.transpile.call(this,e,n),n.conciseMethodProperty&&!this.computed&&"ObjectPattern"!==this.parent.type)if(this.shorthand)e.prependRight(this.start,this.key.name+": ");else if(this.method){var i="";!1!==this.program.options.namedFunctionExpressions&&(i=" "+(i="Literal"===this.key.type&&"number"==typeof this.key.value?"":"Identifier"===this.key.type?xe[this.key.name]||!/^[a-z_$][a-z0-9_$]*$/i.test(this.key.name)||this.value.body.scope.references[this.key.name]?this.findScope(!0).createIdentifier(this.key.name):this.key.name:this.findScope(!0).createIdentifier(this.key.value))),this.value.generator&&e.remove(this.start,this.key.start),e.appendLeft(this.key.end,": function"+(this.value.generator?"*":"")+i)}n.reservedProperties&&xe[this.key.name]&&(e.prependRight(this.key.start,"'"),e.appendLeft(this.key.end,"'"))},e}(ye),Cn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(t){this.loop=this.findNearest(He),this.nearestFunction=this.findNearest(/Function/),this.loop&&(!this.nearestFunction||this.loop.depth>this.nearestFunction.depth)&&(this.loop.canReturn=!0,this.shouldWrap=!0),this.argument&&this.argument.initialise(t)},e.prototype.transpile=function(t,e){var n=this.shouldWrap&&this.loop&&this.loop.shouldRewriteAsFunction;this.argument?(n&&t.prependRight(this.argument.start,"{ v: "),this.argument.transpile(t,e),n&&t.appendLeft(this.argument.end," }")):n&&t.appendLeft(this.start+6," {}")},e}(ye),Sn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(t){if(t.classes){if(this.method=this.findNearest("MethodDefinition"),!this.method)throw new Ce("use of super outside class method",this);var e=this.findNearest("ClassBody").parent;if(this.superClassName=e.superClass&&(e.superClass.name||"superclass"),!this.superClassName)throw new Ce("super used in base class",this);if(this.isCalled="CallExpression"===this.parent.type&&this===this.parent.callee,"constructor"!==this.method.kind&&this.isCalled)throw new Ce("super() not allowed outside class constructor",this);if(this.isMember="MemberExpression"===this.parent.type,!this.isCalled&&!this.isMember)throw new Ce("Unexpected use of `super` (expected `super(...)` or `super.*`)",this)}if(t.arrow){var n=this.findLexicalBoundary(),i=this.findNearest("ArrowFunctionExpression"),a=this.findNearest(He);i&&i.depth>n.depth&&(this.thisAlias=n.getThisAlias()),a&&a.body.contains(this)&&a.depth>n.depth&&(this.thisAlias=n.getThisAlias())}},e.prototype.transpile=function(t,e){if(e.classes){var n=this.isCalled||this.method.static?this.superClassName:this.superClassName+".prototype";t.overwrite(this.start,this.end,n,{storeName:!0,contentOnly:!0});var i=this.isCalled?this.parent:this.parent.parent;if(i&&"CallExpression"===i.type){this.noCall||t.appendLeft(i.callee.end,".call");var a=this.thisAlias||"this";i.arguments.length?t.appendLeft(i.arguments[0].start,a+", "):t.appendLeft(i.end-1,""+a)}}},e}(ye),Tn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if(e.templateString&&!e.dangerousTaggedTemplateString)throw new Ce("Tagged template strings are not supported. Use `transforms: { templateString: false }` to skip transformation and disable this error, or `transforms: { dangerousTaggedTemplateString: true }` if you know what you're doing",this);t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){if(n.templateString&&n.dangerousTaggedTemplateString){var i=this.quasi.expressions.concat(this.quasi.quasis).sort((function(t,e){return t.start-e.start})),a=this.program.body.scope,r=this.quasi.quasis.map((function(t){return JSON.stringify(t.value.cooked)})).join(", "),o=this.program.templateLiteralQuasis[r];o||(o=a.createIdentifier("templateObject"),e.prependRight(this.program.prependAt,"var "+o+" = Object.freeze(["+r+"]);\n"),this.program.templateLiteralQuasis[r]=o),e.overwrite(this.tag.end,i[0].start,"("+o);var s=i[0].start;i.forEach((function(t){"TemplateElement"===t.type?e.remove(s,t.end):e.overwrite(s,t.start,", "),s=t.end})),e.overwrite(s,this.end,")")}t.prototype.transpile.call(this,e,n)},e}(ye),An=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(){this.program.indentExclusionElements.push(this)},e}(ye),Dn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.transpile=function(e,n){if(t.prototype.transpile.call(this,e,n),n.templateString&&"TaggedTemplateExpression"!==this.parent.type){var i=this.expressions.concat(this.quasis).sort((function(t,e){return t.start-e.start||t.end-e.end})).filter((function(t,e){return"TemplateElement"!==t.type||(!!t.value.raw||!e)}));if(i.length>=3){var a=i[0],r=i[2];"TemplateElement"===a.type&&""===a.value.raw&&"TemplateElement"===r.type&&i.shift()}var o=!(1===this.quasis.length&&0===this.expressions.length||"TemplateLiteral"===this.parent.type||"AssignmentExpression"===this.parent.type||"AssignmentPattern"===this.parent.type||"VariableDeclarator"===this.parent.type||"BinaryExpression"===this.parent.type&&"+"===this.parent.operator);o&&e.appendRight(this.start,"(");var s=this.start;i.forEach((function(t,n){var i=0===n?o?"(":"":" + ";if("TemplateElement"===t.type)e.overwrite(s,t.end,i+JSON.stringify(t.value.cooked));else{var a="Identifier"!==t.type;a&&(i+="("),e.remove(s,t.start),i&&e.prependRight(t.start,i),a&&e.appendLeft(t.end,")")}s=t.end})),o&&e.appendLeft(s,")"),e.overwrite(s,this.end,"",{contentOnly:!0})}},e}(ye),In=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(t){var e=this.findLexicalBoundary();if(t.letConst)for(var n=this.findNearest(He);n&&n.depth>e.depth;)n.thisRefs.push(this),n=n.parent.findNearest(He);if(t.arrow){var i=this.findNearest("ArrowFunctionExpression");i&&i.depth>e.depth&&(this.alias=e.getThisAlias())}},e.prototype.transpile=function(t){this.alias&&t.overwrite(this.start,this.end,this.alias,{storeName:!0,contentOnly:!0})},e}(ye),Ln=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){if("Identifier"===this.argument.type){var n=this.findScope(!1).findDeclaration(this.argument.name),i=n&&n.node.ancestor(3);i&&"ForStatement"===i.type&&i.body.contains(this)&&(i.reassigned[this.argument.name]=!0)}t.prototype.initialise.call(this,e)},e.prototype.transpile=function(e,n){"Identifier"===this.argument.type&&je(this.argument,this.findScope(!1)),t.prototype.transpile.call(this,e,n)},e}(ye),On=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(t){this.scope=this.findScope("var"===this.kind),this.declarations.forEach((function(e){return e.initialise(t)}))},e.prototype.transpile=function(t,e){var n=this,i=this.getIndentation(),a=this.kind;if(e.letConst&&"var"!==a&&(a="var",t.overwrite(this.start,this.start+this.kind.length,a,{contentOnly:!0,storeName:!0})),e.destructuring&&"ForOfStatement"!==this.parent.type&&"ForInStatement"!==this.parent.type){var r,o=this.start;this.declarations.forEach((function(a,s){if(a.transpile(t,e),"Identifier"===a.id.type)s>0&&"Identifier"!==n.declarations[s-1].id.type&&t.overwrite(o,a.id.start,"var ");else{var c=He.test(n.parent.type);0===s?t.remove(o,a.id.start):t.overwrite(o,a.id.start,";\n"+i);var l="Identifier"===a.init.type&&!a.init.rewritten,u=l?a.init.alias||a.init.name:a.findScope(!0).createIdentifier("ref");o=a.start;var d=[];l?t.remove(a.id.end,a.end):d.push((function(e,n,i){t.prependRight(a.id.end,"var "+u),t.appendLeft(a.init.end,""+i),t.move(a.id.end,a.end,e)}));var h=a.findScope(!1);Ae(t,(function(t){return h.createIdentifier(t)}),(function(t){var e=t.name;return h.resolveName(e)}),a.id,u,c,d);var f=c?"var ":"",g=c?", ":";\n"+i;d.forEach((function(t,e){s===n.declarations.length-1&&e===d.length-1&&(g=c?"":";"),t(a.start,0===e?f:"",g)}))}o=a.end,r="Identifier"!==a.id.type})),r&&this.end>o&&t.overwrite(o,this.end,"",{contentOnly:!0})}else this.declarations.forEach((function(n){n.transpile(t,e)}))},e}(ye),Mn=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.initialise=function(e){var n=this.parent.kind;"let"===n&&"ForStatement"===this.parent.parent.type&&(n="for.let"),this.parent.scope.addDeclaration(this.id,n),t.prototype.initialise.call(this,e)},e.prototype.transpile=function(t,e){if(!this.init&&e.letConst&&"var"!==this.parent.kind){var n=this.findNearest(/Function|^For(In|Of)?Statement|^(?:Do)?WhileStatement/);!n||/Function/.test(n.type)||this.isLeftDeclaratorOfLoop()||t.appendLeft(this.id.end," = (void 0)")}this.id&&this.id.transpile(t,e),this.init&&this.init.transpile(t,e)},e.prototype.isLeftDeclaratorOfLoop=function(){return this.parent&&"VariableDeclaration"===this.parent.type&&this.parent.parent&&("ForInStatement"===this.parent.parent.type||"ForOfStatement"===this.parent.parent.type)&&this.parent.parent.left&&this.parent.parent.left.declarations[0]===this},e}(ye),Nn={ArrayExpression:Be,ArrowFunctionExpression:Fe,AssignmentExpression:$e,BinaryExpression:ze,BreakStatement:Ue,CallExpression:Ve,ClassBody:qe,ClassDeclaration:We,ClassExpression:Ye,ContinueStatement:Ge,DoWhileStatement:Xe,ExportNamedDeclaration:Ke,ExportDefaultDeclaration:Ze,ForStatement:Je,ForInStatement:Qe,ForOfStatement:tn,FunctionDeclaration:en,FunctionExpression:nn,Identifier:rn,IfStatement:on,ImportDeclaration:sn,ImportDefaultSpecifier:cn,ImportSpecifier:ln,JSXAttribute:un,JSXClosingElement:dn,JSXClosingFragment:hn,JSXElement:gn,JSXExpressionContainer:pn,JSXFragment:bn,JSXOpeningElement:mn,JSXOpeningFragment:yn,JSXSpreadAttribute:vn,Literal:xn,MemberExpression:Rn,NewExpression:_n,ObjectExpression:kn,Property:En,ReturnStatement:Cn,Super:Sn,TaggedTemplateExpression:Tn,TemplateElement:An,TemplateLiteral:Dn,ThisExpression:In,UpdateExpression:Ln,VariableDeclaration:On,VariableDeclarator:Mn,WhileStatement:Xe},Bn={Program:["body"],Literal:[]},Pn={IfStatement:"consequent",ForStatement:"body",ForInStatement:"body",ForOfStatement:"body",WhileStatement:"body",DoWhileStatement:"body",ArrowFunctionExpression:"body"};function Fn(t,e){if(t)if("length"in t)for(var n=t.length;n--;)Fn(t[n],e);else if(!t.__wrapped){t.__wrapped=!0,Bn[t.type]||(Bn[t.type]=Object.keys(t).filter((function(e){return"object"==typeof t[e]})));var i=Pn[t.type];if(i&&"BlockStatement"!==t[i].type){var a=t[i];t[i]={start:a.start,end:a.end,type:"BlockStatement",body:[a],synthetic:!0}}t.parent=e,t.program=e.program||e,t.depth=e.depth+1,t.keys=Bn[t.type],t.indentation=void 0;for(var r=0,o=Bn[t.type];r<o.length;r+=1){var s=o[r];Fn(t[s],t)}t.program.magicString.addSourcemapLocation(t.start),t.program.magicString.addSourcemapLocation(t.end);var c=("BlockStatement"===t.type?Oe:Nn[t.type])||ye;t.__proto__=c.prototype}}function jn(t,e,n,i){var a=this;this.type="Root",this.jsx=i.jsx||"React.createElement",this.options=i,this.source=t,this.magicString=new C(t),this.ast=e,this.depth=0,Fn(this.body=e,this),this.body.__proto__=Oe.prototype,this.templateLiteralQuasis=Object.create(null);for(var r=0;r<this.body.body.length;++r)if(!a.body.body[r].directive){a.prependAt=a.body.body[r].start;break}this.objectWithoutPropertiesHelper=null,this.indentExclusionElements=[],this.body.initialise(n),this.indentExclusions=Object.create(null);for(var o=0,s=a.indentExclusionElements;o<s.length;o+=1)for(var c=s[o],l=c.start;l<c.end;l+=1)a.indentExclusions[l]=!0;this.body.transpile(this.magicString,n)}jn.prototype={export:function(t){return void 0===t&&(t={}),{code:this.magicString.toString(),map:this.magicString.generateMap({file:t.file,source:t.source,includeContent:!1!==t.includeContent})}},findNearest:function(){return null},findScope:function(){return null},getObjectWithoutPropertiesHelper:function(t){return this.objectWithoutPropertiesHelper||(this.objectWithoutPropertiesHelper=this.body.scope.createIdentifier("objectWithoutProperties"),t.prependLeft(this.prependAt,"function "+this.objectWithoutPropertiesHelper+" (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }\n")),this.objectWithoutPropertiesHelper}};var $n={chrome:{48:610719,49:652287,50:783359,51:783359,52:1045503,53:1045503,54:1045503,55:3142655,56:3142655,57:3142655,58:4191231,59:4191231,60:8385535,61:8385535,62:8385535,63:8385535,64:8385535,65:8385535,66:8385535,67:8385535,68:8385535,69:8385535,70:8385535,71:8385535},firefox:{43:643515,44:643515,45:643519,46:774591,47:774655,48:774655,49:774655,50:774655,51:775167,52:4191231,53:4191231,54:4191231,55:8385535,56:8385535,57:8385535,58:8385535,59:8385535,60:8385535,61:8385535,62:8385535,63:8385535,64:8385535},safari:{8:524297,9:594141,10:1831935,10.1:4191231,11:4191231,11.1:8385535,12:8385535},ie:{8:0,9:524289,10:524289,11:524289},edge:{12:610459,13:774559,14:2085887,15:4183039,16:4183039,17:4183039,18:4183039,19:4183039},node:{"0.10":524289,.12:524417,4:594335,5:594335,6:783359,8:4191231,8.3:8385535,8.7:8385535,"8.10":8385535}},zn=["getterSetter","arrow","classes","computedProperty","conciseMethodProperty","defaultParameter","destructuring","forOf","generator","letConst","moduleExport","moduleImport","numericLiteral","parameterDestructuring","spreadRest","stickyRegExp","templateString","unicodeRegExp","exponentiation","reservedProperties","trailingFunctionCommas","asyncAwait","objectRestSpread"],Hn=ht.extend(be,fe()),Un=["dangerousTaggedTemplateString","dangerousForOf"];function Vn(t,e){var n;void 0===e&&(e={});var i=null;try{n=Hn.parse(t,{ecmaVersion:10,preserveParens:!0,sourceType:"module",allowReturnOutsideFunction:!0,onComment:function(t,e){if(!i){var n=/@jsx\s+([^\s]+)/.exec(e);n&&(i=n[1])}}}),e.jsx=i||e.jsx}catch(r){throw r.snippet=Ee(t,r.loc),r.toString=function(){return r.name+": "+r.message+"\n"+r.snippet},r}var a=function(t){var e=Object.keys(t).length?8388607:524289;Object.keys(t).forEach((function(n){var i=$n[n];if(!i)throw new Error("Unknown environment '"+n+"'. Please raise an issue at https://github.com/Rich-Harris/buble/issues");var a=t[n];if(!(a in i))throw new Error("Support data exists for the following versions of "+n+": "+Object.keys(i).join(", ")+". Please raise an issue at https://github.com/Rich-Harris/buble/issues");var r=i[a];e&=r}));var n=Object.create(null);return zn.forEach((function(t,i){n[t]=!(e&1<<i)})),Un.forEach((function(t){n[t]=!1})),n}(e.target||{});return Object.keys(e.transforms||{}).forEach((function(t){if("modules"===t)return"moduleImport"in e.transforms||(a.moduleImport=e.transforms.modules),void("moduleExport"in e.transforms||(a.moduleExport=e.transforms.modules));if(!(t in a))throw new Error("Unknown transform '"+t+"'");a[t]=e.transforms[t]})),!0===e.objectAssign&&(e.objectAssign="Object.assign"),new jn(t,n,a,e).export(e)}var qn=n(68548),Wn=n.n(qn);function Yn(){return Yn=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},Yn.apply(this,arguments)}function Gn(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Zn(t,e){if(null==t)return{};var n,i,a={},r=Object.keys(t);for(i=0;i<r.length;i++)n=r[i],e.indexOf(n)>=0||(a[n]=t[n]);return a}var Kn={plain:{color:"#C5C8C6",backgroundColor:"#1D1F21"},styles:[{types:["prolog","comment","doctype","cdata"],style:{color:"hsl(30, 20%, 50%)"}},{types:["property","tag","boolean","number","constant","symbol"],style:{color:"hsl(350, 40%, 70%)"}},{types:["attr-name","string","char","builtin","insterted"],style:{color:"hsl(75, 70%, 60%)"}},{types:["operator","entity","url","string","variable","language-css"],style:{color:"hsl(40, 90%, 60%)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["regex","important"],style:{color:"#e90"}},{types:["atrule","attr-value","keyword"],style:{color:"hsl(350, 40%, 70%)"}},{types:["punctuation","symbol"],style:{opacity:"0.7"}}]},Xn=["style","theme","onChange"];function Jn(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function Qn(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Jn(Object(n),!0).forEach((function(e){Gn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Jn(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var ti=function(t){var e=(0,i.useState)({code:t.code||""}),n=e[0],a=e[1];(0,i.useEffect)((function(){n.prevCodeProp&&t.code!==n.prevCodeProp&&a({code:t.code,prevCodeProp:t.code})}),[t.code]);(0,i.useEffect)((function(){t.onChange&&t.onChange(n.code)}),[n.code]);var c=t.style,l=t.theme;t.onChange;var u=Zn(t,Xn),d=n.code,h=l&&"object"==typeof l.plain?l.plain:{};return i.createElement(r(),Yn({value:d,padding:10,highlight:function(e){return i.createElement(o.ZP,{Prism:s.Z,code:e,theme:t.theme||Kn,language:t.language},(function(t){var e=t.tokens,n=t.getLineProps,a=t.getTokenProps;return i.createElement(i.Fragment,null,e.map((function(t,e){return i.createElement("div",n({line:t,key:e}),t.map((function(t,e){return i.createElement("span",a({token:t,key:e}))})))})))}))},onValueChange:function(t){a({code:t})},style:Qn(Qn({whiteSpace:"pre",fontFamily:"monospace"},h),c)},u))},ei=(0,i.createContext)({});function ni(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function ii(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ni(Object(n),!0).forEach((function(e){Gn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ni(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var ai={assign:Wn()},ri=function(t,e){return void 0===e&&(e={}),Vn(t,ii(ii({},e),{},{objectAssign:"_poly.assign",transforms:ii({dangerousForOf:!0,dangerousTaggedTemplateString:!0},e.transforms)})).code};function oi(t,e){return oi=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},oi(t,e)}function si(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,oi(t,e)}var ci=function(t,e){return function(n){function a(){return n.apply(this,arguments)||this}si(a,n);var r=a.prototype;return r.componentDidCatch=function(t){e(t)},r.render=function(){return"function"==typeof t?i.createElement(t,null):i.isValidElement(t)?t:null},a}(i.Component)};function li(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function ui(t,e,n){return ui=li()?Reflect.construct:function(t,e,n){var i=[null];i.push.apply(i,e);var a=new(Function.bind.apply(t,i));return n&&oi(a,n.prototype),a},ui.apply(null,arguments)}var di=function(t,e){var n=Object.keys(e),a=n.map((function(t){return e[t]}));return ui(Function,["_poly","React"].concat(n,[t])).apply(void 0,[ai,i].concat(a))};function hi(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function fi(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?hi(Object(n),!0).forEach((function(e){Gn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):hi(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}var gi=function(t,e){var n=t.code,i=void 0===n?"":n,a=t.scope,r=void 0===a?{}:a,o=t.transpileOptions,s=i.trim().replace(/;$/,""),c=ri("return ("+s+")",o).trim();return ci(di(c,r),e)},pi=function(t,e,n){var i=t.code,a=void 0===i?"":i,r=t.scope,o=void 0===r?{}:r,s=t.transpileOptions;if(!/render\s*\(/.test(a))return n(new SyntaxError("No-Inline evaluations must call `render`."));di(ri(a,s),fi(fi({},o),{},{render:function(t){void 0===t?n(new SyntaxError("`render` must be called with valid JSX.")):e(ci(t,n))}}))};function bi(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function mi(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?bi(Object(n),!0).forEach((function(e){Gn(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):bi(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function yi(t){var e=t.children,n=t.code,a=t.language,r=t.theme,o=t.disabled,s=t.scope,c=t.transformCode,l=t.transpileOptions,u=t.noInline,d=void 0!==u&&u,h=(0,i.useState)({error:void 0,element:void 0}),f=h[0],g=h[1];function p(t){var e={code:c?c(t):t,scope:s,transpileOptions:l},n=function(t){return g({error:t.toString(),element:void 0})},i=function(t){return g({error:void 0,element:t})};try{d?(g({error:void 0,element:null}),pi(e,i,n)):i(gi(e,n))}catch(a){n(a)}}(0,i.useEffect)((function(){p(n)}),[n,s,d,c,l]);return i.createElement(ei.Provider,{value:mi(mi({},f),{},{code:n,language:a,theme:r,disabled:o,onError:function(t){return g({error:t.toString()})},onChange:function(t){return p(t)}})},e)}function vi(t){var e=(0,i.useContext)(ei),n=e.code,a=e.language,r=e.theme,o=e.disabled,s=e.onChange;return i.createElement(ti,Yn({theme:r,code:n,language:a,disabled:o,onChange:s},t))}function wi(t){var e=(0,i.useContext)(ei).error;return e?i.createElement("pre",t,e):null}yi.defaultProps={code:"",noInline:!1,language:"jsx",disabled:!1};var xi=["Component"];function Ri(t){var e=t.Component,n=Zn(t,xi),a=(0,i.useContext)(ei).element;return i.createElement(e,n,a?i.createElement(a,null):null)}function _i(t){var e=function(e){function n(){return e.apply(this,arguments)||this}return si(n,e),n.prototype.render=function(){var e=this;return i.createElement(ei.Consumer,null,(function(n){return i.createElement(t,Yn({live:n},e.props))}))},n}(i.Component);return e}Ri.defaultProps={Component:"div"}},12556:(t,e,n)=>{"use strict";var i=n(75878);t.exports=i},76670:(t,e,n)=>{"use strict";n(35762);var i=n(89021);t.exports=i.Object.assign},68548:(t,e,n)=>{"use strict";t.exports=n(88372)},88372:(t,e,n)=>{"use strict";var i=n(12556);t.exports=i},53866:(t,e,n)=>{"use strict";var i=n(32094),a=n(72526),r=TypeError;t.exports=function(t){if(i(t))return t;throw r(a(t)+" is not a function")}},47420:(t,e,n)=>{"use strict";var i=n(1140),a=String,r=TypeError;t.exports=function(t){if(i(t))return t;throw r(a(t)+" is not an object")}},53260:(t,e,n)=>{"use strict";var i=n(94607),a=n(77),r=n(59782),o=function(t){return function(e,n,o){var s,c=i(e),l=r(c),u=a(o,l);if(t&&n!=n){for(;l>u;)if((s=c[u++])!=s)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}};t.exports={includes:o(!0),indexOf:o(!1)}},55097:(t,e,n)=>{"use strict";var i=n(51213),a=i({}.toString),r=i("".slice);t.exports=function(t){return r(a(t),8,-1)}},94731:(t,e,n)=>{"use strict";var i=n(76333),a=n(47560),r=n(96179),o=n(45689);t.exports=function(t,e,n){for(var s=a(e),c=o.f,l=r.f,u=0;u<s.length;u++){var d=s[u];i(t,d)||n&&i(n,d)||c(t,d,l(e,d))}}},55842:(t,e,n)=>{"use strict";var i=n(10617),a=n(45689),r=n(67797);t.exports=i?function(t,e,n){return a.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},67797:t=>{"use strict";t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},443:(t,e,n)=>{"use strict";var i=n(32094),a=n(45689),r=n(47660),o=n(30336);t.exports=function(t,e,n,s){s||(s={});var c=s.enumerable,l=void 0!==s.name?s.name:e;if(i(n)&&r(n,l,s),s.global)c?t[e]=n:o(e,n);else{try{s.unsafe?t[e]&&(c=!0):delete t[e]}catch(u){}c?t[e]=n:a.f(t,e,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return t}},30336:(t,e,n)=>{"use strict";var i=n(96019),a=Object.defineProperty;t.exports=function(t,e){try{a(i,t,{value:e,configurable:!0,writable:!0})}catch(n){i[t]=e}return e}},10617:(t,e,n)=>{"use strict";var i=n(85264);t.exports=!i((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},65004:t=>{"use strict";var e="object"==typeof document&&document.all,n=void 0===e&&void 0!==e;t.exports={all:e,IS_HTMLDDA:n}},16248:(t,e,n)=>{"use strict";var i=n(96019),a=n(1140),r=i.document,o=a(r)&&a(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},17061:t=>{"use strict";t.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},63730:(t,e,n)=>{"use strict";var i,a,r=n(96019),o=n(17061),s=r.process,c=r.Deno,l=s&&s.versions||c&&c.version,u=l&&l.v8;u&&(a=(i=u.split("."))[0]>0&&i[0]<4?1:+(i[0]+i[1])),!a&&o&&(!(i=o.match(/Edge\/(\d+)/))||i[1]>=74)&&(i=o.match(/Chrome\/(\d+)/))&&(a=+i[1]),t.exports=a},2142:t=>{"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},45100:(t,e,n)=>{"use strict";var i=n(96019),a=n(96179).f,r=n(55842),o=n(443),s=n(30336),c=n(94731),l=n(3570);t.exports=function(t,e){var n,u,d,h,f,g=t.target,p=t.global,b=t.stat;if(n=p?i:b?i[g]||s(g,{}):(i[g]||{}).prototype)for(u in e){if(h=e[u],d=t.dontCallGetSet?(f=a(n,u))&&f.value:n[u],!l(p?u:g+(b?".":"#")+u,t.forced)&&void 0!==d){if(typeof h==typeof d)continue;c(h,d)}(t.sham||d&&d.sham)&&r(h,"sham",!0),o(n,u,h,t)}}},85264:t=>{"use strict";t.exports=function(t){try{return!!t()}catch(e){return!0}}},61314:(t,e,n)=>{"use strict";var i=n(85264);t.exports=!i((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},26622:(t,e,n)=>{"use strict";var i=n(61314),a=Function.prototype.call;t.exports=i?a.bind(a):function(){return a.apply(a,arguments)}},94615:(t,e,n)=>{"use strict";var i=n(10617),a=n(76333),r=Function.prototype,o=i&&Object.getOwnPropertyDescriptor,s=a(r,"name"),c=s&&"something"===function(){}.name,l=s&&(!i||i&&o(r,"name").configurable);t.exports={EXISTS:s,PROPER:c,CONFIGURABLE:l}},51213:(t,e,n)=>{"use strict";var i=n(61314),a=Function.prototype,r=a.call,o=i&&a.bind.bind(r,r);t.exports=i?o:function(t){return function(){return r.apply(t,arguments)}}},14101:(t,e,n)=>{"use strict";var i=n(96019),a=n(32094),r=function(t){return a(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?r(i[t]):i[t]&&i[t][e]}},62114:(t,e,n)=>{"use strict";var i=n(53866),a=n(94049);t.exports=function(t,e){var n=t[e];return a(n)?void 0:i(n)}},96019:function(t,e,n){"use strict";var i=function(t){return t&&t.Math===Math&&t};t.exports=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof n.g&&n.g)||function(){return this}()||this||Function("return this")()},76333:(t,e,n)=>{"use strict";var i=n(51213),a=n(78713),r=i({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return r(a(t),e)}},16079:t=>{"use strict";t.exports={}},84989:(t,e,n)=>{"use strict";var i=n(10617),a=n(85264),r=n(16248);t.exports=!i&&!a((function(){return 7!==Object.defineProperty(r("div"),"a",{get:function(){return 7}}).a}))},52650:(t,e,n)=>{"use strict";var i=n(51213),a=n(85264),r=n(55097),o=Object,s=i("".split);t.exports=a((function(){return!o("z").propertyIsEnumerable(0)}))?function(t){return"String"===r(t)?s(t,""):o(t)}:o},89933:(t,e,n)=>{"use strict";var i=n(51213),a=n(32094),r=n(52149),o=i(Function.toString);a(r.inspectSource)||(r.inspectSource=function(t){return o(t)}),t.exports=r.inspectSource},54436:(t,e,n)=>{"use strict";var i,a,r,o=n(95188),s=n(96019),c=n(1140),l=n(55842),u=n(76333),d=n(52149),h=n(20444),f=n(16079),g="Object already initialized",p=s.TypeError,b=s.WeakMap;if(o||d.state){var m=d.state||(d.state=new b);m.get=m.get,m.has=m.has,m.set=m.set,i=function(t,e){if(m.has(t))throw p(g);return e.facade=t,m.set(t,e),e},a=function(t){return m.get(t)||{}},r=function(t){return m.has(t)}}else{var y=h("state");f[y]=!0,i=function(t,e){if(u(t,y))throw p(g);return e.facade=t,l(t,y,e),e},a=function(t){return u(t,y)?t[y]:{}},r=function(t){return u(t,y)}}t.exports={set:i,get:a,has:r,enforce:function(t){return r(t)?a(t):i(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=a(e)).type!==t)throw p("Incompatible receiver, "+t+" required");return n}}}},32094:(t,e,n)=>{"use strict";var i=n(65004),a=i.all;t.exports=i.IS_HTMLDDA?function(t){return"function"==typeof t||t===a}:function(t){return"function"==typeof t}},3570:(t,e,n)=>{"use strict";var i=n(85264),a=n(32094),r=/#|\.prototype\./,o=function(t,e){var n=c[s(t)];return n===u||n!==l&&(a(e)?i(e):!!e)},s=o.normalize=function(t){return String(t).replace(r,".").toLowerCase()},c=o.data={},l=o.NATIVE="N",u=o.POLYFILL="P";t.exports=o},94049:t=>{"use strict";t.exports=function(t){return null==t}},1140:(t,e,n)=>{"use strict";var i=n(32094),a=n(65004),r=a.all;t.exports=a.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:i(t)||t===r}:function(t){return"object"==typeof t?null!==t:i(t)}},50596:t=>{"use strict";t.exports=!1},91776:(t,e,n)=>{"use strict";var i=n(14101),a=n(32094),r=n(55157),o=n(52988),s=Object;t.exports=o?function(t){return"symbol"==typeof t}:function(t){var e=i("Symbol");return a(e)&&r(e.prototype,s(t))}},59782:(t,e,n)=>{"use strict";var i=n(43832);t.exports=function(t){return i(t.length)}},47660:(t,e,n)=>{"use strict";var i=n(51213),a=n(85264),r=n(32094),o=n(76333),s=n(10617),c=n(94615).CONFIGURABLE,l=n(89933),u=n(54436),d=u.enforce,h=u.get,f=String,g=Object.defineProperty,p=i("".slice),b=i("".replace),m=i([].join),y=s&&!a((function(){return 8!==g((function(){}),"length",{value:8}).length})),v=String(String).split("String"),w=t.exports=function(t,e,n){"Symbol("===p(f(e),0,7)&&(e="["+b(f(e),/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!o(t,"name")||c&&t.name!==e)&&(s?g(t,"name",{value:e,configurable:!0}):t.name=e),y&&n&&o(n,"arity")&&t.length!==n.arity&&g(t,"length",{value:n.arity});try{n&&o(n,"constructor")&&n.constructor?s&&g(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(a){}var i=d(t);return o(i,"source")||(i.source=m(v,"string"==typeof e?e:"")),t};Function.prototype.toString=w((function(){return r(this)&&h(this).source||l(this)}),"toString")},69662:t=>{"use strict";var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var i=+t;return(i>0?n:e)(i)}},55250:(t,e,n)=>{"use strict";var i=n(10617),a=n(51213),r=n(26622),o=n(85264),s=n(11180),c=n(58551),l=n(18308),u=n(78713),d=n(52650),h=Object.assign,f=Object.defineProperty,g=a([].concat);t.exports=!h||o((function(){if(i&&1!==h({b:1},h(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol("assign detection"),a="abcdefghijklmnopqrst";return t[n]=7,a.split("").forEach((function(t){e[t]=t})),7!==h({},t)[n]||s(h({},e)).join("")!==a}))?function(t,e){for(var n=u(t),a=arguments.length,o=1,h=c.f,f=l.f;a>o;)for(var p,b=d(arguments[o++]),m=h?g(s(b),h(b)):s(b),y=m.length,v=0;y>v;)p=m[v++],i&&!r(f,b,p)||(n[p]=b[p]);return n}:h},45689:(t,e,n)=>{"use strict";var i=n(10617),a=n(84989),r=n(29178),o=n(47420),s=n(60604),c=TypeError,l=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d="enumerable",h="configurable",f="writable";e.f=i?r?function(t,e,n){if(o(t),e=s(e),o(n),"function"==typeof t&&"prototype"===e&&"value"in n&&f in n&&!n.writable){var i=u(t,e);i&&i.writable&&(t[e]=n.value,n={configurable:h in n?n.configurable:i.configurable,enumerable:d in n?n.enumerable:i.enumerable,writable:!1})}return l(t,e,n)}:l:function(t,e,n){if(o(t),e=s(e),o(n),a)try{return l(t,e,n)}catch(i){}if("get"in n||"set"in n)throw c("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},96179:(t,e,n)=>{"use strict";var i=n(10617),a=n(26622),r=n(18308),o=n(67797),s=n(94607),c=n(60604),l=n(76333),u=n(84989),d=Object.getOwnPropertyDescriptor;e.f=i?d:function(t,e){if(t=s(t),e=c(e),u)try{return d(t,e)}catch(n){}if(l(t,e))return o(!a(r.f,t,e),t[e])}},26520:(t,e,n)=>{"use strict";var i=n(84379),a=n(2142).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,a)}},58551:(t,e)=>{"use strict";e.f=Object.getOwnPropertySymbols},55157:(t,e,n)=>{"use strict";var i=n(51213);t.exports=i({}.isPrototypeOf)},84379:(t,e,n)=>{"use strict";var i=n(51213),a=n(76333),r=n(94607),o=n(53260).indexOf,s=n(16079),c=i([].push);t.exports=function(t,e){var n,i=r(t),l=0,u=[];for(n in i)!a(s,n)&&a(i,n)&&c(u,n);for(;e.length>l;)a(i,n=e[l++])&&(~o(u,n)||c(u,n));return u}},11180:(t,e,n)=>{"use strict";var i=n(84379),a=n(2142);t.exports=Object.keys||function(t){return i(t,a)}},18308:(t,e)=>{"use strict";var n={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,a=i&&!n.call({1:2},1);e.f=a?function(t){var e=i(this,t);return!!e&&e.enumerable}:n},92779:(t,e,n)=>{"use strict";var i=n(26622),a=n(32094),r=n(1140),o=TypeError;t.exports=function(t,e){var n,s;if("string"===e&&a(n=t.toString)&&!r(s=i(n,t)))return s;if(a(n=t.valueOf)&&!r(s=i(n,t)))return s;if("string"!==e&&a(n=t.toString)&&!r(s=i(n,t)))return s;throw o("Can't convert object to primitive value")}},47560:(t,e,n)=>{"use strict";var i=n(14101),a=n(51213),r=n(26520),o=n(58551),s=n(47420),c=a([].concat);t.exports=i("Reflect","ownKeys")||function(t){var e=r.f(s(t)),n=o.f;return n?c(e,n(t)):e}},89021:(t,e,n)=>{"use strict";var i=n(96019);t.exports=i},5870:(t,e,n)=>{"use strict";var i=n(94049),a=TypeError;t.exports=function(t){if(i(t))throw a("Can't call method on "+t);return t}},20444:(t,e,n)=>{"use strict";var i=n(57928),a=n(90571),r=i("keys");t.exports=function(t){return r[t]||(r[t]=a(t))}},52149:(t,e,n)=>{"use strict";var i=n(96019),a=n(30336),r="__core-js_shared__",o=i[r]||a(r,{});t.exports=o},57928:(t,e,n)=>{"use strict";var i=n(50596),a=n(52149);(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.32.2",mode:i?"pure":"global",copyright:"\xa9 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.32.2/LICENSE",source:"https://github.com/zloirock/core-js"})},95435:(t,e,n)=>{"use strict";var i=n(63730),a=n(85264),r=n(96019).String;t.exports=!!Object.getOwnPropertySymbols&&!a((function(){var t=Symbol("symbol detection");return!r(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&i&&i<41}))},77:(t,e,n)=>{"use strict";var i=n(51382),a=Math.max,r=Math.min;t.exports=function(t,e){var n=i(t);return n<0?a(n+e,0):r(n,e)}},94607:(t,e,n)=>{"use strict";var i=n(52650),a=n(5870);t.exports=function(t){return i(a(t))}},51382:(t,e,n)=>{"use strict";var i=n(69662);t.exports=function(t){var e=+t;return e!=e||0===e?0:i(e)}},43832:(t,e,n)=>{"use strict";var i=n(51382),a=Math.min;t.exports=function(t){return t>0?a(i(t),9007199254740991):0}},78713:(t,e,n)=>{"use strict";var i=n(5870),a=Object;t.exports=function(t){return a(i(t))}},24392:(t,e,n)=>{"use strict";var i=n(26622),a=n(1140),r=n(91776),o=n(62114),s=n(92779),c=n(74267),l=TypeError,u=c("toPrimitive");t.exports=function(t,e){if(!a(t)||r(t))return t;var n,c=o(t,u);if(c){if(void 0===e&&(e="default"),n=i(c,t,e),!a(n)||r(n))return n;throw l("Can't convert object to primitive value")}return void 0===e&&(e="number"),s(t,e)}},60604:(t,e,n)=>{"use strict";var i=n(24392),a=n(91776);t.exports=function(t){var e=i(t,"string");return a(e)?e:e+""}},72526:t=>{"use strict";var e=String;t.exports=function(t){try{return e(t)}catch(n){return"Object"}}},90571:(t,e,n)=>{"use strict";var i=n(51213),a=0,r=Math.random(),o=i(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+o(++a+r,36)}},52988:(t,e,n)=>{"use strict";var i=n(95435);t.exports=i&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},29178:(t,e,n)=>{"use strict";var i=n(10617),a=n(85264);t.exports=i&&a((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},95188:(t,e,n)=>{"use strict";var i=n(96019),a=n(32094),r=i.WeakMap;t.exports=a(r)&&/native code/.test(String(r))},74267:(t,e,n)=>{"use strict";var i=n(96019),a=n(57928),r=n(76333),o=n(90571),s=n(95435),c=n(52988),l=i.Symbol,u=a("wks"),d=c?l.for||l:l&&l.withoutSetter||o;t.exports=function(t){return r(u,t)||(u[t]=s&&r(l,t)?l[t]:d("Symbol."+t)),u[t]}},35762:(t,e,n)=>{"use strict";var i=n(45100),a=n(55250);i({target:"Object",stat:!0,arity:2,forced:Object.assign!==a},{assign:a})},75878:(t,e,n)=>{"use strict";var i=n(76670);t.exports=i},29983:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.bodyOpenClassName=e.portalClassName=void 0;var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},a=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),r=n(67294),o=g(r),s=g(n(73935)),c=g(n(45697)),l=g(n(28747)),u=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(n(57149)),d=n(51112),h=g(d),f=n(46871);function g(t){return t&&t.__esModule?t:{default:t}}function p(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function b(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}var m=e.portalClassName="ReactModalPortal",y=e.bodyOpenClassName="ReactModal__Body--open",v=d.canUseDOM&&void 0!==s.default.createPortal,w=function(t){return document.createElement(t)},x=function(){return v?s.default.createPortal:s.default.unstable_renderSubtreeIntoContainer};function R(t){return t()}var _=function(t){function e(){var t,n,a;p(this,e);for(var r=arguments.length,c=Array(r),u=0;u<r;u++)c[u]=arguments[u];return n=a=b(this,(t=e.__proto__||Object.getPrototypeOf(e)).call.apply(t,[this].concat(c))),a.removePortal=function(){!v&&s.default.unmountComponentAtNode(a.node);var t=R(a.props.parentSelector);t&&t.contains(a.node)?t.removeChild(a.node):console.warn('React-Modal: "parentSelector" prop did not returned any DOM element. Make sure that the parent element is unmounted to avoid any memory leaks.')},a.portalRef=function(t){a.portal=t},a.renderPortal=function(t){var n=x()(a,o.default.createElement(l.default,i({defaultStyles:e.defaultStyles},t)),a.node);a.portalRef(n)},b(a,n)}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),a(e,[{key:"componentDidMount",value:function(){d.canUseDOM&&(v||(this.node=w("div")),this.node.className=this.props.portalClassName,R(this.props.parentSelector).appendChild(this.node),!v&&this.renderPortal(this.props))}},{key:"getSnapshotBeforeUpdate",value:function(t){return{prevParent:R(t.parentSelector),nextParent:R(this.props.parentSelector)}}},{key:"componentDidUpdate",value:function(t,e,n){if(d.canUseDOM){var i=this.props,a=i.isOpen,r=i.portalClassName;t.portalClassName!==r&&(this.node.className=r);var o=n.prevParent,s=n.nextParent;s!==o&&(o.removeChild(this.node),s.appendChild(this.node)),(t.isOpen||a)&&!v&&this.renderPortal(this.props)}}},{key:"componentWillUnmount",value:function(){if(d.canUseDOM&&this.node&&this.portal){var t=this.portal.state,e=Date.now(),n=t.isOpen&&this.props.closeTimeoutMS&&(t.closesAt||e+this.props.closeTimeoutMS);n?(t.beforeClose||this.portal.closeWithTimeout(),setTimeout(this.removePortal,n-e)):this.removePortal()}}},{key:"render",value:function(){return d.canUseDOM&&v?(!this.node&&v&&(this.node=w("div")),x()(o.default.createElement(l.default,i({ref:this.portalRef,defaultStyles:e.defaultStyles},this.props)),this.node)):null}}],[{key:"setAppElement",value:function(t){u.setElement(t)}}]),e}(r.Component);_.propTypes={isOpen:c.default.bool.isRequired,style:c.default.shape({content:c.default.object,overlay:c.default.object}),portalClassName:c.default.string,bodyOpenClassName:c.default.string,htmlOpenClassName:c.default.string,className:c.default.oneOfType([c.default.string,c.default.shape({base:c.default.string.isRequired,afterOpen:c.default.string.isRequired,beforeClose:c.default.string.isRequired})]),overlayClassName:c.default.oneOfType([c.default.string,c.default.shape({base:c.default.string.isRequired,afterOpen:c.default.string.isRequired,beforeClose:c.default.string.isRequired})]),appElement:c.default.oneOfType([c.default.instanceOf(h.default),c.default.instanceOf(d.SafeHTMLCollection),c.default.instanceOf(d.SafeNodeList),c.default.arrayOf(c.default.instanceOf(h.default))]),onAfterOpen:c.default.func,onRequestClose:c.default.func,closeTimeoutMS:c.default.number,ariaHideApp:c.default.bool,shouldFocusAfterRender:c.default.bool,shouldCloseOnOverlayClick:c.default.bool,shouldReturnFocusAfterClose:c.default.bool,preventScroll:c.default.bool,parentSelector:c.default.func,aria:c.default.object,data:c.default.object,role:c.default.string,contentLabel:c.default.string,shouldCloseOnEsc:c.default.bool,overlayRef:c.default.func,contentRef:c.default.func,id:c.default.string,overlayElement:c.default.func,contentElement:c.default.func},_.defaultProps={isOpen:!1,portalClassName:m,bodyOpenClassName:y,role:"dialog",ariaHideApp:!0,closeTimeoutMS:0,shouldFocusAfterRender:!0,shouldCloseOnEsc:!0,shouldCloseOnOverlayClick:!0,shouldReturnFocusAfterClose:!0,preventScroll:!1,parentSelector:function(){return document.body},overlayElement:function(t,e){return o.default.createElement("div",t,e)},contentElement:function(t,e){return o.default.createElement("div",t,e)}},_.defaultStyles={overlay:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(255, 255, 255, 0.75)"},content:{position:"absolute",top:"40px",left:"40px",right:"40px",bottom:"40px",border:"1px solid #ccc",background:"#fff",overflow:"auto",WebkitOverflowScrolling:"touch",borderRadius:"4px",outline:"none",padding:"20px"}},(0,f.polyfill)(_),e.default=_},28747:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=n(67294),s=b(n(45697)),c=p(n(99685)),l=b(n(88338)),u=p(n(57149)),d=p(n(32409)),h=n(51112),f=b(h),g=b(n(89623));function p(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function b(t){return t&&t.__esModule?t:{default:t}}n(35063);var m={overlay:"ReactModal__Overlay",content:"ReactModal__Content"},y=0,v=function(t){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return n.setOverlayRef=function(t){n.overlay=t,n.props.overlayRef&&n.props.overlayRef(t)},n.setContentRef=function(t){n.content=t,n.props.contentRef&&n.props.contentRef(t)},n.afterClose=function(){var t=n.props,e=t.appElement,i=t.ariaHideApp,a=t.htmlOpenClassName,r=t.bodyOpenClassName;r&&d.remove(document.body,r),a&&d.remove(document.getElementsByTagName("html")[0],a),i&&y>0&&0===(y-=1)&&u.show(e),n.props.shouldFocusAfterRender&&(n.props.shouldReturnFocusAfterClose?(c.returnFocus(n.props.preventScroll),c.teardownScopedFocus()):c.popWithoutFocus()),n.props.onAfterClose&&n.props.onAfterClose(),g.default.deregister(n)},n.open=function(){n.beforeOpen(),n.state.afterOpen&&n.state.beforeClose?(clearTimeout(n.closeTimer),n.setState({beforeClose:!1})):(n.props.shouldFocusAfterRender&&(c.setupScopedFocus(n.node),c.markForFocusLater()),n.setState({isOpen:!0},(function(){n.openAnimationFrame=requestAnimationFrame((function(){n.setState({afterOpen:!0}),n.props.isOpen&&n.props.onAfterOpen&&n.props.onAfterOpen({overlayEl:n.overlay,contentEl:n.content})}))})))},n.close=function(){n.props.closeTimeoutMS>0?n.closeWithTimeout():n.closeWithoutTimeout()},n.focusContent=function(){return n.content&&!n.contentHasFocus()&&n.content.focus({preventScroll:!0})},n.closeWithTimeout=function(){var t=Date.now()+n.props.closeTimeoutMS;n.setState({beforeClose:!0,closesAt:t},(function(){n.closeTimer=setTimeout(n.closeWithoutTimeout,n.state.closesAt-Date.now())}))},n.closeWithoutTimeout=function(){n.setState({beforeClose:!1,isOpen:!1,afterOpen:!1,closesAt:null},n.afterClose)},n.handleKeyDown=function(t){9===t.keyCode&&(0,l.default)(n.content,t),n.props.shouldCloseOnEsc&&27===t.keyCode&&(t.stopPropagation(),n.requestClose(t))},n.handleOverlayOnClick=function(t){null===n.shouldClose&&(n.shouldClose=!0),n.shouldClose&&n.props.shouldCloseOnOverlayClick&&(n.ownerHandlesClose()?n.requestClose(t):n.focusContent()),n.shouldClose=null},n.handleContentOnMouseUp=function(){n.shouldClose=!1},n.handleOverlayOnMouseDown=function(t){n.props.shouldCloseOnOverlayClick||t.target!=n.overlay||t.preventDefault()},n.handleContentOnClick=function(){n.shouldClose=!1},n.handleContentOnMouseDown=function(){n.shouldClose=!1},n.requestClose=function(t){return n.ownerHandlesClose()&&n.props.onRequestClose(t)},n.ownerHandlesClose=function(){return n.props.onRequestClose},n.shouldBeClosed=function(){return!n.state.isOpen&&!n.state.beforeClose},n.contentHasFocus=function(){return document.activeElement===n.content||n.content.contains(document.activeElement)},n.buildClassName=function(t,e){var i="object"===(void 0===e?"undefined":a(e))?e:{base:m[t],afterOpen:m[t]+"--after-open",beforeClose:m[t]+"--before-close"},r=i.base;return n.state.afterOpen&&(r=r+" "+i.afterOpen),n.state.beforeClose&&(r=r+" "+i.beforeClose),"string"==typeof e&&e?r+" "+e:r},n.attributesFromObject=function(t,e){return Object.keys(e).reduce((function(n,i){return n[t+"-"+i]=e[i],n}),{})},n.state={afterOpen:!1,beforeClose:!1},n.shouldClose=null,n.moveFromContentToOverlay=null,n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),r(e,[{key:"componentDidMount",value:function(){this.props.isOpen&&this.open()}},{key:"componentDidUpdate",value:function(t,e){this.props.isOpen&&!t.isOpen?this.open():!this.props.isOpen&&t.isOpen&&this.close(),this.props.shouldFocusAfterRender&&this.state.isOpen&&!e.isOpen&&this.focusContent()}},{key:"componentWillUnmount",value:function(){this.state.isOpen&&this.afterClose(),clearTimeout(this.closeTimer),cancelAnimationFrame(this.openAnimationFrame)}},{key:"beforeOpen",value:function(){var t=this.props,e=t.appElement,n=t.ariaHideApp,i=t.htmlOpenClassName,a=t.bodyOpenClassName;a&&d.add(document.body,a),i&&d.add(document.getElementsByTagName("html")[0],i),n&&(y+=1,u.hide(e)),g.default.register(this)}},{key:"render",value:function(){var t=this.props,e=t.id,n=t.className,a=t.overlayClassName,r=t.defaultStyles,o=t.children,s=n?{}:r.content,c=a?{}:r.overlay;if(this.shouldBeClosed())return null;var l={ref:this.setOverlayRef,className:this.buildClassName("overlay",a),style:i({},c,this.props.style.overlay),onClick:this.handleOverlayOnClick,onMouseDown:this.handleOverlayOnMouseDown},u=i({id:e,ref:this.setContentRef,style:i({},s,this.props.style.content),className:this.buildClassName("content",n),tabIndex:"-1",onKeyDown:this.handleKeyDown,onMouseDown:this.handleContentOnMouseDown,onMouseUp:this.handleContentOnMouseUp,onClick:this.handleContentOnClick,role:this.props.role,"aria-label":this.props.contentLabel},this.attributesFromObject("aria",i({modal:!0},this.props.aria)),this.attributesFromObject("data",this.props.data||{}),{"data-testid":this.props.testId}),d=this.props.contentElement(u,o);return this.props.overlayElement(l,d)}}]),e}(o.Component);v.defaultProps={style:{overlay:{},content:{}},defaultStyles:{}},v.propTypes={isOpen:s.default.bool.isRequired,defaultStyles:s.default.shape({content:s.default.object,overlay:s.default.object}),style:s.default.shape({content:s.default.object,overlay:s.default.object}),className:s.default.oneOfType([s.default.string,s.default.object]),overlayClassName:s.default.oneOfType([s.default.string,s.default.object]),bodyOpenClassName:s.default.string,htmlOpenClassName:s.default.string,ariaHideApp:s.default.bool,appElement:s.default.oneOfType([s.default.instanceOf(f.default),s.default.instanceOf(h.SafeHTMLCollection),s.default.instanceOf(h.SafeNodeList),s.default.arrayOf(s.default.instanceOf(f.default))]),onAfterOpen:s.default.func,onAfterClose:s.default.func,onRequestClose:s.default.func,closeTimeoutMS:s.default.number,shouldFocusAfterRender:s.default.bool,shouldCloseOnOverlayClick:s.default.bool,shouldReturnFocusAfterClose:s.default.bool,preventScroll:s.default.bool,role:s.default.string,contentLabel:s.default.string,aria:s.default.object,data:s.default.object,children:s.default.node,shouldCloseOnEsc:s.default.bool,overlayRef:s.default.func,contentRef:s.default.func,id:s.default.string,overlayElement:s.default.func,contentElement:s.default.func,testId:s.default.string},e.default=v,t.exports=e.default},57149:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.resetState=function(){s&&(s.removeAttribute?s.removeAttribute("aria-hidden"):null!=s.length?s.forEach((function(t){return t.removeAttribute("aria-hidden")})):document.querySelectorAll(s).forEach((function(t){return t.removeAttribute("aria-hidden")})));s=null},e.log=function(){0},e.assertNodeList=c,e.setElement=function(t){var e=t;if("string"==typeof e&&o.canUseDOM){var n=document.querySelectorAll(e);c(n,e),e=n}return s=e||s},e.validateElement=l,e.hide=function(t){var e=!0,n=!1,i=void 0;try{for(var a,r=l(t)[Symbol.iterator]();!(e=(a=r.next()).done);e=!0){a.value.setAttribute("aria-hidden","true")}}catch(o){n=!0,i=o}finally{try{!e&&r.return&&r.return()}finally{if(n)throw i}}},e.show=function(t){var e=!0,n=!1,i=void 0;try{for(var a,r=l(t)[Symbol.iterator]();!(e=(a=r.next()).done);e=!0){a.value.removeAttribute("aria-hidden")}}catch(o){n=!0,i=o}finally{try{!e&&r.return&&r.return()}finally{if(n)throw i}}},e.documentNotReadyOrSSRTesting=function(){s=null};var i,a=n(42473),r=(i=a)&&i.__esModule?i:{default:i},o=n(51112);var s=null;function c(t,e){if(!t||!t.length)throw new Error("react-modal: No elements were found for selector "+e+".")}function l(t){var e=t||s;return e?Array.isArray(e)||e instanceof HTMLCollection||e instanceof NodeList?e:[e]:((0,r.default)(!1,["react-modal: App element is not defined.","Please use `Modal.setAppElement(el)` or set `appElement={el}`.","This is needed so screen readers don't see main content","when modal is opened. It is not recommended, but you can opt-out","by setting `ariaHideApp={false}`."].join(" ")),[])}},35063:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.resetState=function(){for(var t=[o,s],e=0;e<t.length;e++){var n=t[e];n&&(n.parentNode&&n.parentNode.removeChild(n))}o=s=null,c=[]},e.log=function(){console.log("bodyTrap ----------"),console.log(c.length);for(var t=[o,s],e=0;e<t.length;e++){var n=t[e]||{};console.log(n.nodeName,n.className,n.id)}console.log("edn bodyTrap ----------")};var i,a=n(89623),r=(i=a)&&i.__esModule?i:{default:i};var o=void 0,s=void 0,c=[];function l(){0!==c.length&&c[c.length-1].focusContent()}r.default.subscribe((function(t,e){o||s||((o=document.createElement("div")).setAttribute("data-react-modal-body-trap",""),o.style.position="absolute",o.style.opacity="0",o.setAttribute("tabindex","0"),o.addEventListener("focus",l),(s=o.cloneNode()).addEventListener("focus",l)),(c=e).length>0?(document.body.firstChild!==o&&document.body.insertBefore(o,document.body.firstChild),document.body.lastChild!==s&&document.body.appendChild(s)):(o.parentElement&&o.parentElement.removeChild(o),s.parentElement&&s.parentElement.removeChild(s))}))},32409:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.resetState=function(){var t=document.getElementsByTagName("html")[0];for(var e in n)a(t,n[e]);var r=document.body;for(var o in i)a(r,i[o]);n={},i={}},e.log=function(){0};var n={},i={};function a(t,e){t.classList.remove(e)}e.add=function(t,e){return a=t.classList,r="html"==t.nodeName.toLowerCase()?n:i,void e.split(" ").forEach((function(t){!function(t,e){t[e]||(t[e]=0),t[e]+=1}(r,t),a.add(t)}));var a,r},e.remove=function(t,e){return a=t.classList,r="html"==t.nodeName.toLowerCase()?n:i,void e.split(" ").forEach((function(t){!function(t,e){t[e]&&(t[e]-=1)}(r,t),0===r[t]&&a.remove(t)}));var a,r}},99685:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.resetState=function(){o=[]},e.log=function(){0},e.handleBlur=l,e.handleFocus=u,e.markForFocusLater=function(){o.push(document.activeElement)},e.returnFocus=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=null;try{return void(0!==o.length&&(e=o.pop()).focus({preventScroll:t}))}catch(n){console.warn(["You tried to return focus to",e,"but it is not in the DOM anymore"].join(" "))}},e.popWithoutFocus=function(){o.length>0&&o.pop()},e.setupScopedFocus=function(t){s=t,window.addEventListener?(window.addEventListener("blur",l,!1),document.addEventListener("focus",u,!0)):(window.attachEvent("onBlur",l),document.attachEvent("onFocus",u))},e.teardownScopedFocus=function(){s=null,window.addEventListener?(window.removeEventListener("blur",l),document.removeEventListener("focus",u)):(window.detachEvent("onBlur",l),document.detachEvent("onFocus",u))};var i,a=n(37845),r=(i=a)&&i.__esModule?i:{default:i};var o=[],s=null,c=!1;function l(){c=!0}function u(){if(c){if(c=!1,!s)return;setTimeout((function(){s.contains(document.activeElement)||((0,r.default)(s)[0]||s).focus()}),0)}}},89623:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.log=function(){console.log("portalOpenInstances ----------"),console.log(i.openInstances.length),i.openInstances.forEach((function(t){return console.log(t)})),console.log("end portalOpenInstances ----------")},e.resetState=function(){i=new n};var n=function t(){var e=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.register=function(t){-1===e.openInstances.indexOf(t)&&(e.openInstances.push(t),e.emit("register"))},this.deregister=function(t){var n=e.openInstances.indexOf(t);-1!==n&&(e.openInstances.splice(n,1),e.emit("deregister"))},this.subscribe=function(t){e.subscribers.push(t)},this.emit=function(t){e.subscribers.forEach((function(n){return n(t,e.openInstances.slice())}))},this.openInstances=[],this.subscribers=[]},i=new n;e.default=i},51112:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.canUseDOM=e.SafeNodeList=e.SafeHTMLCollection=void 0;var i,a=n(58875);var r=((i=a)&&i.__esModule?i:{default:i}).default,o=r.canUseDOM?window.HTMLElement:{};e.SafeHTMLCollection=r.canUseDOM?window.HTMLCollection:{},e.SafeNodeList=r.canUseDOM?window.NodeList:{},e.canUseDOM=r.canUseDOM;e.default=o},88338:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){var n=(0,r.default)(t);if(!n.length)return void e.preventDefault();var i=void 0,a=e.shiftKey,s=n[0],c=n[n.length-1],l=o();if(t===l){if(!a)return;i=c}c!==l||a||(i=s);s===l&&a&&(i=c);if(i)return e.preventDefault(),void i.focus();var u=/(\bChrome\b|\bSafari\b)\//.exec(navigator.userAgent);if(null==u||"Chrome"==u[1]||null!=/\biPod\b|\biPad\b/g.exec(navigator.userAgent))return;var d=n.indexOf(l);d>-1&&(d+=a?-1:1);if(void 0===(i=n[d]))return e.preventDefault(),void(i=a?c:s).focus();e.preventDefault(),i.focus()};var i,a=n(37845),r=(i=a)&&i.__esModule?i:{default:i};function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document;return t.activeElement.shadowRoot?o(t.activeElement.shadowRoot):t.activeElement}t.exports=e.default},37845:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function t(e){var n=[].slice.call(e.querySelectorAll("*"),0).reduce((function(e,n){return e.concat(n.shadowRoot?t(n.shadowRoot):[n])}),[]);return n.filter(r)};var n=/input|select|textarea|button|object|iframe/;function i(t){var e=t.offsetWidth<=0&&t.offsetHeight<=0;if(e&&!t.innerHTML)return!0;try{var n=window.getComputedStyle(t);return e?"visible"!==n.getPropertyValue("overflow")||t.scrollWidth<=0&&t.scrollHeight<=0:"none"==n.getPropertyValue("display")}catch(i){return console.warn("Failed to inspect element style"),!1}}function a(t,e){var a=t.nodeName.toLowerCase();return(n.test(a)&&!t.disabled||"a"===a&&t.href||e)&&function(t){for(var e=t,n=t.getRootNode&&t.getRootNode();e&&e!==document.body;){if(n&&e===n&&(e=n.host.parentNode),i(e))return!1;e=e.parentNode}return!0}(t)}function r(t){var e=t.getAttribute("tabindex");null===e&&(e=void 0);var n=isNaN(e);return(n||e>=0)&&a(t,!n)}t.exports=e.default},83253:(t,e,n)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i,a=n(29983),r=(i=a)&&i.__esModule?i:{default:i};e.default=r.default,t.exports=e.default},40460:function(t,e,n){"use strict";var i,a=this&&this.__extends||(i=function(t,e){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},i(t,e)},function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function n(){this.constructor=t}i(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),r=this&&this.__assign||function(){return r=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var a in e=arguments[n])Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t},r.apply(this,arguments)},o=this&&this.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(e,n);a&&!("get"in a?!e.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,a)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),s=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),c=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&o(e,t,n);return s(e,t),e},l=this&&this.__rest||function(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(i=Object.getOwnPropertySymbols(t);a<i.length;a++)e.indexOf(i[a])<0&&Object.prototype.propertyIsEnumerable.call(t,i[a])&&(n[i[a]]=t[i[a]])}return n};Object.defineProperty(e,"__esModule",{value:!0});var u=c(n(67294)),d=90,h=219,f=222,g=192,p=100,b="undefined"!=typeof window&&"navigator"in window&&/Win/i.test(navigator.platform),m="undefined"!=typeof window&&"navigator"in window&&/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform),y="npm__react-simple-code-editor__textarea",v="\n/**\n * Reset the text fill color so that placeholder is visible\n */\n.".concat(y,":empty {\n -webkit-text-fill-color: inherit !important;\n}\n\n/**\n * Hack to apply on some CSS on IE10 and IE11\n */\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n /**\n * IE doesn't support '-webkit-text-fill-color'\n * So we use 'color: transparent' to make the text transparent on IE\n * Unlike other browsers, it doesn't affect caret color in IE\n */\n .").concat(y," {\n color: transparent !important;\n }\n\n .").concat(y,"::selection {\n background-color: #accef7 !important;\n color: transparent !important;\n }\n}\n"),w=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={capture:!0},e._recordCurrentState=function(){var t=e._input;if(t){var n=t.value,i=t.selectionStart,a=t.selectionEnd;e._recordChange({value:n,selectionStart:i,selectionEnd:a})}},e._getLines=function(t,e){return t.substring(0,e).split("\n")},e._recordChange=function(t,n){var i,a,o;void 0===n&&(n=!1);var s=e._history,c=s.stack,l=s.offset;if(c.length&&l>-1){e._history.stack=c.slice(0,l+1);var u=e._history.stack.length;if(u>p){var d=u-p;e._history.stack=c.slice(d,u),e._history.offset=Math.max(e._history.offset-d,0)}}var h=Date.now();if(n){var f=e._history.stack[e._history.offset];if(f&&h-f.timestamp<3e3){var g=/[^a-z0-9]([a-z0-9]+)$/i,b=null===(i=e._getLines(f.value,f.selectionStart).pop())||void 0===i?void 0:i.match(g),m=null===(a=e._getLines(t.value,t.selectionStart).pop())||void 0===a?void 0:a.match(g);if((null==b?void 0:b[1])&&(null===(o=null==m?void 0:m[1])||void 0===o?void 0:o.startsWith(b[1])))return void(e._history.stack[e._history.offset]=r(r({},t),{timestamp:h}))}}e._history.stack.push(r(r({},t),{timestamp:h})),e._history.offset++},e._updateInput=function(t){var n=e._input;n&&(n.value=t.value,n.selectionStart=t.selectionStart,n.selectionEnd=t.selectionEnd,e.props.onValueChange(t.value))},e._applyEdits=function(t){var n=e._input,i=e._history.stack[e._history.offset];i&&n&&(e._history.stack[e._history.offset]=r(r({},i),{selectionStart:n.selectionStart,selectionEnd:n.selectionEnd})),e._recordChange(t),e._updateInput(t)},e._undoEdit=function(){var t=e._history,n=t.stack,i=t.offset,a=n[i-1];a&&(e._updateInput(a),e._history.offset=Math.max(i-1,0))},e._redoEdit=function(){var t=e._history,n=t.stack,i=t.offset,a=n[i+1];a&&(e._updateInput(a),e._history.offset=Math.min(i+1,n.length-1))},e._handleKeyDown=function(t){var n=e.props,i=n.tabSize,a=n.insertSpaces,r=n.ignoreTabKey,o=n.onKeyDown;if(!o||(o(t),!t.defaultPrevented)){27===t.keyCode&&t.currentTarget.blur();var s=t.currentTarget,c=s.value,l=s.selectionStart,u=s.selectionEnd,p=(a?" ":"\t").repeat(i);if(9===t.keyCode&&!r&&e.state.capture)if(t.preventDefault(),t.shiftKey){var y=(R=e._getLines(c,l)).length-1,v=e._getLines(c,u).length-1,w=c.split("\n").map((function(t,e){return e>=y&&e<=v&&t.startsWith(p)?t.substring(p.length):t})).join("\n");if(c!==w){var x=R[y];e._applyEdits({value:w,selectionStart:(null==x?void 0:x.startsWith(p))?l-p.length:l,selectionEnd:u-(c.length-w.length)})}}else if(l!==u){var R,_=(R=e._getLines(c,l)).length-1,k=e._getLines(c,u).length-1;x=R[_];e._applyEdits({value:c.split("\n").map((function(t,e){return e>=_&&e<=k?p+t:t})).join("\n"),selectionStart:x&&/\S/.test(x)?l+p.length:l,selectionEnd:u+p.length*(k-_+1)})}else{var E=l+p.length;e._applyEdits({value:c.substring(0,l)+p+c.substring(u),selectionStart:E,selectionEnd:E})}else if(8===t.keyCode){var C=l!==u;if(c.substring(0,l).endsWith(p)&&!C){t.preventDefault();E=l-p.length;e._applyEdits({value:c.substring(0,l-p.length)+c.substring(u),selectionStart:E,selectionEnd:E})}}else if(13===t.keyCode){if(l===u){var S=e._getLines(c,l).pop(),T=null==S?void 0:S.match(/^\s+/);if(null==T?void 0:T[0]){t.preventDefault();var A="\n"+T[0];E=l+A.length;e._applyEdits({value:c.substring(0,l)+A+c.substring(u),selectionStart:E,selectionEnd:E})}}}else if(57===t.keyCode||t.keyCode===h||t.keyCode===f||t.keyCode===g){var D=void 0;57===t.keyCode&&t.shiftKey?D=["(",")"]:t.keyCode===h?D=t.shiftKey?["{","}"]:["[","]"]:t.keyCode===f?D=t.shiftKey?['"','"']:["'","'"]:t.keyCode!==g||t.shiftKey||(D=["`","`"]),l!==u&&D&&(t.preventDefault(),e._applyEdits({value:c.substring(0,l)+D[0]+c.substring(l,u)+D[1]+c.substring(u),selectionStart:l,selectionEnd:u+2}))}else!(m?t.metaKey&&t.keyCode===d:t.ctrlKey&&t.keyCode===d)||t.shiftKey||t.altKey?(m?t.metaKey&&t.keyCode===d&&t.shiftKey:b?t.ctrlKey&&89===t.keyCode:t.ctrlKey&&t.keyCode===d&&t.shiftKey)&&!t.altKey?(t.preventDefault(),e._redoEdit()):77!==t.keyCode||!t.ctrlKey||m&&!t.shiftKey||(t.preventDefault(),e.setState((function(t){return{capture:!t.capture}}))):(t.preventDefault(),e._undoEdit())}},e._handleChange=function(t){var n=t.currentTarget,i=n.value,a=n.selectionStart,r=n.selectionEnd;e._recordChange({value:i,selectionStart:a,selectionEnd:r},!0),e.props.onValueChange(i)},e._history={stack:[],offset:-1},e._input=null,e}return a(e,t),e.prototype.componentDidMount=function(){this._recordCurrentState()},Object.defineProperty(e.prototype,"session",{get:function(){return{history:this._history}},set:function(t){this._history=t.history},enumerable:!1,configurable:!0}),e.prototype.render=function(){var t=this,e=this.props,n=e.value,i=e.style,a=e.padding,o=e.highlight,s=e.textareaId,c=e.textareaClassName,d=e.autoFocus,h=e.disabled,f=e.form,g=e.maxLength,p=e.minLength,b=e.name,m=e.placeholder,w=e.readOnly,R=e.required,_=e.onClick,k=e.onFocus,E=e.onBlur,C=e.onKeyUp,S=(e.onKeyDown,e.onValueChange,e.tabSize,e.insertSpaces,e.ignoreTabKey,e.preClassName),T=l(e,["value","style","padding","highlight","textareaId","textareaClassName","autoFocus","disabled","form","maxLength","minLength","name","placeholder","readOnly","required","onClick","onFocus","onBlur","onKeyUp","onKeyDown","onValueChange","tabSize","insertSpaces","ignoreTabKey","preClassName"]),A={paddingTop:a,paddingRight:a,paddingBottom:a,paddingLeft:a},D=o(n);return u.createElement("div",r({},T,{style:r(r({},x.container),i)}),u.createElement("textarea",{ref:function(e){return t._input=e},style:r(r(r({},x.editor),x.textarea),A),className:y+(c?" ".concat(c):""),id:s,value:n,onChange:this._handleChange,onKeyDown:this._handleKeyDown,onClick:_,onKeyUp:C,onFocus:k,onBlur:E,disabled:h,form:f,maxLength:g,minLength:p,name:b,placeholder:m,readOnly:w,required:R,autoFocus:d,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"data-gramm":!1}),u.createElement("pre",r({className:S,"aria-hidden":"true",style:r(r(r({},x.editor),x.highlight),A)},"string"==typeof D?{dangerouslySetInnerHTML:{__html:D+"<br />"}}:{children:D})),u.createElement("style",{type:"text/css",dangerouslySetInnerHTML:{__html:v}}))},e.defaultProps={tabSize:2,insertSpaces:!0,ignoreTabKey:!1,padding:0},e}(u.Component);e.default=w;var x={container:{position:"relative",textAlign:"left",boxSizing:"border-box",padding:0,overflow:"hidden"},textarea:{position:"absolute",top:0,left:0,height:"100%",width:"100%",resize:"none",color:"inherit",overflow:"hidden",MozOsxFontSmoothing:"grayscale",WebkitFontSmoothing:"antialiased",WebkitTextFillColor:"transparent"},highlight:{position:"relative",pointerEvents:"none"},editor:{margin:0,border:0,background:"none",boxSizing:"inherit",display:"inherit",fontFamily:"inherit",fontSize:"inherit",fontStyle:"inherit",fontVariantLigatures:"inherit",fontWeight:"inherit",letterSpacing:"inherit",lineHeight:"inherit",tabSize:"inherit",textIndent:"inherit",textRendering:"inherit",textTransform:"inherit",whiteSpace:"pre-wrap",wordBreak:"keep-all",overflowWrap:"break-word"}}},46962:(t,e,n)=>{const i=n(78776)();i.addRange(0,127),t.exports=i},60270:(t,e,n)=>{const i=n(78776)();i.addRange(48,57).addRange(65,70).addRange(97,102),t.exports=i},26969:(t,e,n)=>{const i=n(78776)(170,181,186,748,750,837,895,902,908,1369,1471,1479,1791,2042,2482,2510,2519,2556,2641,2654,2768,2929,2972,3024,3031,3165,3406,3517,3542,3661,3716,3749,3782,3789,3840,4152,4295,4301,4696,4800,6103,6108,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,11823,42963,43205,43259,43471,43712,43714,64318,67592,67644,69415,69826,70006,70106,70108,70199,70206,70280,70480,70487,70855,71232,71236,71352,71945,72161,72349,72768,73018,73027,73112,73648,94179,113822,119970,119995,120134,123214,125255,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1456,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1623).addRange(1625,1631).addRange(1646,1747).addRange(1749,1756).addRange(1761,1768).addRange(1773,1775).addRange(1786,1788).addRange(1808,1855).addRange(1869,1969).addRange(1994,2026).addRange(2036,2037).addRange(2048,2071).addRange(2074,2092).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2260,2271).addRange(2275,2281).addRange(2288,2363).addRange(2365,2380).addRange(2382,2384).addRange(2389,2403).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472),i.addRange(2474,2480).addRange(2486,2489).addRange(2493,2500).addRange(2503,2504).addRange(2507,2508).addRange(2524,2525).addRange(2527,2531).addRange(2544,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2636).addRange(2649,2652).addRange(2672,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2749,2757).addRange(2759,2761).addRange(2763,2764).addRange(2784,2787).addRange(2809,2812).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2877,2884).addRange(2887,2888).addRange(2891,2892).addRange(2902,2903).addRange(2908,2909).addRange(2911,2915).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970),i.addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3020).addRange(3072,3075).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3133,3140).addRange(3142,3144).addRange(3146,3148).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3261,3268).addRange(3270,3272).addRange(3274,3276).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3386).addRange(3389,3396).addRange(3398,3400).addRange(3402,3404).addRange(3412,3415).addRange(3423,3427).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3570,3571).addRange(3585,3642).addRange(3648,3654).addRange(3713,3714),i.addRange(3718,3722).addRange(3724,3747).addRange(3751,3769).addRange(3771,3773).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3953,3969).addRange(3976,3991).addRange(3993,4028).addRange(4096,4150).addRange(4155,4159).addRange(4176,4239).addRange(4250,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5907).addRange(5919,5939).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6067).addRange(6070,6088).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430),i.addRange(6432,6443).addRange(6448,6456).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6683).addRange(6688,6750).addRange(6753,6772).addRange(6847,6848).addRange(6860,6862).addRange(6912,6963).addRange(6965,6979).addRange(6981,6988).addRange(7040,7081).addRange(7084,7087).addRange(7098,7141).addRange(7143,7153).addRange(7168,7222).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7655,7668).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8505).addRange(8508,8511).addRange(8517,8521),i.addRange(8544,8584).addRange(9398,9449).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42612,42619).addRange(42623,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43013).addRange(43015,43047).addRange(43072,43123).addRange(43136,43203).addRange(43250,43255).addRange(43261,43263).addRange(43274,43306).addRange(43312,43346),i.addRange(43360,43388).addRange(43392,43442).addRange(43444,43455).addRange(43488,43503).addRange(43514,43518).addRange(43520,43574).addRange(43584,43597).addRange(43616,43638).addRange(43642,43710).addRange(43739,43741).addRange(43744,43759).addRange(43762,43765).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613),i.addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295),i.addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69632,69701).addRange(69745,69749).addRange(69762,69816).addRange(69840,69864).addRange(69888,69938).addRange(69956,69959).addRange(69968,70002).addRange(70016,70079).addRange(70081,70084).addRange(70094,70095).addRange(70144,70161).addRange(70163,70196).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70376).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70461,70468).addRange(70471,70472).addRange(70475,70476).addRange(70493,70499).addRange(70656,70721).addRange(70723,70725).addRange(70727,70730).addRange(70751,70753).addRange(70784,70849).addRange(70852,70853),i.addRange(71040,71093).addRange(71096,71102).addRange(71128,71133).addRange(71168,71230).addRange(71296,71349).addRange(71424,71450).addRange(71453,71466).addRange(71488,71494).addRange(71680,71736).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,71996).addRange(71999,72002).addRange(72096,72103).addRange(72106,72151).addRange(72154,72159).addRange(72163,72164).addRange(72192,72242).addRange(72245,72254).addRange(72272,72343).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72766).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73025).addRange(73030,73031).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73110).addRange(73440,73462).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766),i.addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744),i.addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},22499:(t,e,n)=>{const i=n(78776)();i.addRange(0,1114111),t.exports=i},9213:(t,e,n)=>{const i=n(78776)(908,2142,2482,2519,2620,2641,2654,2768,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,4295,4301,4696,4800,6464,8025,8027,8029,11559,11565,42963,64318,64975,65279,65952,67592,67644,67903,69837,70280,70480,70487,71945,73018,73648,119970,119995,120134,123647,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,129008,917505);i.addRange(0,887).addRange(890,895).addRange(900,906).addRange(910,929).addRange(931,1327).addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(1536,1805).addRange(1807,1866).addRange(1869,1969).addRange(1984,2042).addRange(2045,2093).addRange(2096,2110).addRange(2112,2139).addRange(2144,2154).addRange(2160,2190).addRange(2192,2193).addRange(2200,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736),i.addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257),i.addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(3585,3642).addRange(3647,3675).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807).addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4058).addRange(4096,4293).addRange(4304,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805),i.addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(5024,5109).addRange(5112,5117).addRange(5120,5788).addRange(5792,5880).addRange(5888,5909).addRange(5919,5942).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6144,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6683).addRange(6686,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829).addRange(6832,6862).addRange(6912,6988).addRange(6992,7038).addRange(7040,7155).addRange(7164,7223).addRange(7227,7241).addRange(7245,7304).addRange(7312,7354).addRange(7357,7367).addRange(7376,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013),i.addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(8192,8292).addRange(8294,8305).addRange(8308,8334).addRange(8336,8348).addRange(8352,8384).addRange(8400,8432).addRange(8448,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,11123).addRange(11126,11157).addRange(11159,11507).addRange(11513,11557).addRange(11568,11623).addRange(11631,11632).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11869).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12288,12351).addRange(12353,12438).addRange(12441,12543).addRange(12549,12591).addRange(12593,12686).addRange(12688,12771).addRange(12784,12830).addRange(12832,42124).addRange(42128,42182).addRange(42192,42539).addRange(42560,42743).addRange(42752,42954).addRange(42960,42961),i.addRange(42965,42969).addRange(42994,43052).addRange(43056,43065).addRange(43072,43127).addRange(43136,43205).addRange(43214,43225).addRange(43232,43347).addRange(43359,43388).addRange(43392,43469).addRange(43471,43481).addRange(43486,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43714).addRange(43739,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43883).addRange(43888,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(55296,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65049).addRange(65056,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65140).addRange(65142,65276).addRange(65281,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518),i.addRange(65529,65533).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65934).addRange(65936,65948).addRange(66e3,66045).addRange(66176,66204).addRange(66208,66256).addRange(66272,66299).addRange(66304,66339).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66463,66499).addRange(66504,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66927,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67671,67742).addRange(67751,67759).addRange(67808,67826).addRange(67828,67829).addRange(67835,67867),i.addRange(67871,67897).addRange(67968,68023).addRange(68028,68047).addRange(68050,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184).addRange(68192,68255).addRange(68288,68326).addRange(68331,68342).addRange(68352,68405).addRange(68409,68437).addRange(68440,68466).addRange(68472,68497).addRange(68505,68508).addRange(68521,68527).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68858,68903).addRange(68912,68921).addRange(69216,69246).addRange(69248,69289).addRange(69291,69293).addRange(69296,69297).addRange(69376,69415).addRange(69424,69465).addRange(69488,69513).addRange(69552,69579).addRange(69600,69622).addRange(69632,69709).addRange(69714,69749).addRange(69759,69826).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69959).addRange(69968,70006).addRange(70016,70111).addRange(70113,70132).addRange(70144,70161).addRange(70163,70206).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313).addRange(70320,70378),i.addRange(70384,70393).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70747).addRange(70749,70753).addRange(70784,70855).addRange(70864,70873).addRange(71040,71093).addRange(71096,71133).addRange(71168,71236).addRange(71248,71257).addRange(71264,71276).addRange(71296,71353).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71494).addRange(71680,71739).addRange(71840,71922).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72164).addRange(72192,72263).addRange(72272,72354).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812).addRange(72816,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966),i.addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73464).addRange(73664,73713).addRange(73727,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075).addRange(77712,77810).addRange(77824,78894).addRange(78896,78904).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92782,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92917).addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071).addRange(93760,93850).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788),i.addRange(113792,113800).addRange(113808,113817).addRange(113820,113827).addRange(118528,118573).addRange(118576,118598).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119274).addRange(119296,119365).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,121483).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215).addRange(123536,123566).addRange(123584,123641).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125127,125142),i.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279).addRange(126065,126132).addRange(126209,126269).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660),i.addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546).addRange(917536,917631).addRange(917760,917999).addRange(983040,1048573).addRange(1048576,1114109),t.exports=i},38838:(t,e,n)=>{const i=n(78776)(1564);i.addRange(8206,8207).addRange(8234,8238).addRange(8294,8297),t.exports=i},5720:(t,e,n)=>{const i=n(78776)(60,62,91,93,123,125,171,187,8512,8721,8740,8742,8761,8802,8856,10176,10680,10697,10721,10788,10790,10793,10972,10974,10995,11005,11262,65308,65310,65339,65341,65371,65373,120539,120597,120655,120713,120771);i.addRange(40,41).addRange(3898,3901).addRange(5787,5788).addRange(8249,8250).addRange(8261,8262).addRange(8317,8318).addRange(8333,8334).addRange(8705,8708).addRange(8712,8717).addRange(8725,8726).addRange(8730,8733).addRange(8735,8738).addRange(8747,8755).addRange(8763,8780).addRange(8786,8789).addRange(8799,8800).addRange(8804,8811).addRange(8814,8844).addRange(8847,8850).addRange(8866,8867).addRange(8870,8888).addRange(8894,8895).addRange(8905,8909).addRange(8912,8913).addRange(8918,8941).addRange(8944,8959).addRange(8968,8971).addRange(8992,8993).addRange(9001,9002).addRange(10088,10101).addRange(10179,10182).addRange(10184,10185).addRange(10187,10189).addRange(10195,10198).addRange(10204,10206).addRange(10210,10223).addRange(10627,10648).addRange(10651,10656).addRange(10658,10671).addRange(10688,10693).addRange(10702,10706).addRange(10708,10709).addRange(10712,10716).addRange(10723,10725).addRange(10728,10729).addRange(10740,10745).addRange(10748,10749).addRange(10762,10780).addRange(10782,10785).addRange(10795,10798).addRange(10804,10805),i.addRange(10812,10814).addRange(10839,10840).addRange(10852,10853).addRange(10858,10861).addRange(10863,10864).addRange(10867,10868).addRange(10873,10915).addRange(10918,10925).addRange(10927,10966).addRange(10978,10982).addRange(10988,10990).addRange(10999,11003).addRange(11778,11781).addRange(11785,11786).addRange(11788,11789).addRange(11804,11805).addRange(11808,11817).addRange(11861,11868).addRange(12296,12305).addRange(12308,12315).addRange(65113,65118).addRange(65124,65125).addRange(65288,65289).addRange(65375,65376).addRange(65378,65379),t.exports=i},49965:(t,e,n)=>{const i=n(78776)(39,46,58,94,96,168,173,175,180,890,903,1369,1375,1471,1479,1524,1564,1600,1648,1807,1809,2042,2045,2184,2362,2364,2381,2417,2433,2492,2509,2558,2620,2641,2677,2748,2765,2817,2876,2879,2893,2946,3008,3021,3072,3076,3132,3201,3260,3263,3270,3405,3457,3530,3542,3633,3761,3782,3893,3895,3897,4038,4226,4237,4253,4348,6086,6103,6109,6211,6313,6450,6683,6742,6752,6754,6783,6823,6964,6972,6978,7142,7149,7405,7412,7544,8125,8228,8231,8305,8319,11631,11647,11823,12293,12347,40981,42508,42623,42864,43010,43014,43019,43052,43263,43443,43471,43587,43596,43632,43644,43696,43713,43741,43766,44005,44008,44013,64286,65043,65106,65109,65279,65287,65294,65306,65342,65344,65392,65507,66045,66272,68159,69633,69744,69821,69826,69837,70003,70095,70196,70206,70367,70464,70726,70750,70842,71229,71339,71341,71351,71998,72003,72160,72263,72767,73018,73031,73109,73111,94031,121461,121476,123566,917505);i.addRange(183,184).addRange(688,879).addRange(884,885).addRange(900,901).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1536,1541).addRange(1552,1562).addRange(1611,1631).addRange(1750,1757).addRange(1759,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2037).addRange(2070,2093).addRange(2137,2139).addRange(2192,2193).addRange(2200,2207).addRange(2249,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2881,2884).addRange(2901,2902).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388).addRange(3393,3396).addRange(3426,3427),i.addRange(3538,3540).addRange(3636,3642).addRange(3654,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6159).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6862).addRange(6912,6915).addRange(6966,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7288,7293).addRange(7376,7378).addRange(7380,7392),i.addRange(7394,7400).addRange(7416,7417).addRange(7468,7530).addRange(7579,7679).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(8203,8207).addRange(8216,8217).addRange(8234,8238).addRange(8288,8292).addRange(8294,8303).addRange(8336,8348).addRange(8400,8432).addRange(11388,11389).addRange(11503,11505).addRange(11744,11775).addRange(12330,12333).addRange(12337,12341).addRange(12441,12446).addRange(12540,12542).addRange(42232,42237).addRange(42607,42610).addRange(42612,42621).addRange(42652,42655).addRange(42736,42737).addRange(42752,42785).addRange(42888,42890).addRange(42994,42996).addRange(43e3,43001).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43493,43494).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(43763,43764).addRange(43867,43871).addRange(43881,43883),i.addRange(64434,64450).addRange(65024,65039).addRange(65056,65071).addRange(65438,65439).addRange(65529,65531).addRange(66422,66426).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078).addRange(70089,70092).addRange(70191,70193).addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461).addRange(71463,71467),i.addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(78896,78904).addRange(92912,92916).addRange(92976,92982).addRange(92992,92995).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(113821,113822).addRange(113824,113827).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119155,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),i.addRange(123184,123197).addRange(123628,123631).addRange(125136,125142).addRange(125252,125259).addRange(127995,127999).addRange(917536,917631).addRange(917760,917999),t.exports=i},32948:(t,e,n)=>{const i=n(78776)(170,181,186,837,895,902,908,4295,4301,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8505,8526,11559,11565,42963,67456,119970,119995,120134);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,442).addRange(444,447).addRange(452,659).addRange(661,696).addRange(704,705).addRange(736,740).addRange(880,883).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8500).addRange(8508,8511).addRange(8517,8521),i.addRange(8544,8575).addRange(8579,8580).addRange(9398,9449).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42653).addRange(42786,42887).addRange(42891,42894).addRange(42896,42954).addRange(42960,42961).addRange(42965,42969).addRange(42997,42998).addRange(43e3,43002).addRange(43824,43866).addRange(43868,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67459,67461).addRange(67463,67504).addRange(67506,67514).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084),i.addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122633).addRange(122635,122654).addRange(125184,125251).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369),t.exports=i},65314:(t,e,n)=>{const i=n(78776)(181,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,383,388,418,420,425,428,437,444,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,837,880,882,886,895,902,908,962,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1415,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8486,8498,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997);i.addRange(65,90).addRange(192,214).addRange(216,223).addRange(329,330).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,453).addRange(455,456).addRange(458,459).addRange(497,498).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(975,977).addRange(981,982).addRange(1008,1009).addRange(1012,1013).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7834,7835).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8064,8111).addRange(8114,8116),i.addRange(8119,8124).addRange(8130,8132).addRange(8135,8140).addRange(8152,8155).addRange(8168,8172).addRange(8178,8180).addRange(8183,8188).addRange(8490,8491).addRange(8544,8559).addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(125184,125217),t.exports=i},78562:(t,e,n)=>{const i=n(78776)(181,447,601,611,623,629,637,640,658,837,895,902,908,4295,4301,7545,7549,7566,7838,8025,8027,8029,8126,8486,8498,8526,11559,11565,43859);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,311).addRange(313,396).addRange(398,410).addRange(412,425).addRange(428,441).addRange(444,445).addRange(452,544).addRange(546,563).addRange(570,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(880,883).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,977).addRange(981,1013).addRange(1015,1019).addRange(1021,1153).addRange(1162,1327).addRange(1329,1366).addRange(1377,1415).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7680,7835).addRange(7840,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124),i.addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8490,8491).addRange(8544,8575).addRange(8579,8580).addRange(9398,9449).addRange(11264,11376).addRange(11378,11379).addRange(11381,11382).addRange(11390,11491).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42651).addRange(42786,42799).addRange(42802,42863).addRange(42873,42887).addRange(42891,42893).addRange(42896,42900).addRange(42902,42926).addRange(42928,42954).addRange(42960,42961).addRange(42966,42969).addRange(42997,42998).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(125184,125251),t.exports=i},12104:(t,e,n)=>{const i=n(78776)(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8486,8498,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997);i.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,453).addRange(455,456).addRange(458,459).addRange(497,498).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8072,8079).addRange(8088,8095).addRange(8104,8111).addRange(8120,8124).addRange(8136,8140).addRange(8152,8155).addRange(8168,8172).addRange(8184,8188).addRange(8490,8491),i.addRange(8544,8559).addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(125184,125217),t.exports=i},41347:(t,e,n)=>{const i=n(78776)(160,168,170,173,175,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,310,313,315,317,323,325,327,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,383,388,418,420,425,428,437,444,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,847,880,882,884,886,890,908,962,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1415,1564,2527,2611,2614,2654,3635,3763,3852,3907,3917,3922,3927,3932,3945,3955,3969,3987,3997,4002,4007,4012,4025,4295,4301,4348,7544,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8049,8051,8053,8055,8057,8059,8061,8147,8163,8209,8215,8252,8254,8279,8360,8484,8486,8488,8579,8585,10764,10972,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,11631,11935,12019,12288,12342,12447,12543,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42864,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,43881,64016,64018,64032,64034,64285,64318,65140,65279,119970,119995,120134,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,127376);i.addRange(65,90).addRange(178,181).addRange(184,186).addRange(188,190).addRange(192,214).addRange(216,223).addRange(306,308).addRange(319,321).addRange(329,330).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,461).addRange(497,500).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(688,696).addRange(728,733).addRange(736,740).addRange(832,833).addRange(835,837).addRange(894,895).addRange(900,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(975,982).addRange(1008,1010).addRange(1012,1013).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(1653,1656).addRange(2392,2399).addRange(2524,2525).addRange(2649,2651).addRange(2908,2909).addRange(3804,3805),i.addRange(3957,3961).addRange(4256,4293).addRange(4447,4448).addRange(5112,5117).addRange(6068,6069).addRange(6155,6159).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7468,7470).addRange(7472,7482).addRange(7484,7501).addRange(7503,7530).addRange(7579,7615).addRange(7834,7835).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8064,8111).addRange(8114,8116).addRange(8119,8132).addRange(8135,8143).addRange(8152,8155).addRange(8157,8159).addRange(8168,8175).addRange(8178,8180).addRange(8183,8190).addRange(8192,8207).addRange(8228,8230).addRange(8234,8239).addRange(8243,8244).addRange(8246,8247).addRange(8263,8265).addRange(8287,8305).addRange(8308,8334).addRange(8336,8348).addRange(8448,8451).addRange(8453,8455).addRange(8457,8467).addRange(8469,8470).addRange(8473,8477).addRange(8480,8482).addRange(8490,8493).addRange(8495,8505).addRange(8507,8512).addRange(8517,8521).addRange(8528,8575).addRange(8748,8749),i.addRange(8751,8752).addRange(9001,9002).addRange(9312,9450).addRange(10868,10870).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11388,11392).addRange(12032,12245).addRange(12344,12346).addRange(12443,12444).addRange(12593,12686).addRange(12690,12703).addRange(12800,12830).addRange(12832,12871).addRange(12880,12926).addRange(12928,13311).addRange(42652,42653).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(42994,42997).addRange(43e3,43001).addRange(43868,43871).addRange(43888,43967).addRange(63744,64013).addRange(64021,64030).addRange(64037,64038).addRange(64042,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65020).addRange(65024,65049).addRange(65072,65092).addRange(65095,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65138).addRange(65142,65276).addRange(65281,65470).addRange(65474,65479),i.addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65520,65528).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(67457,67461).addRange(67463,67504).addRange(67506,67514).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(113824,113827).addRange(119134,119140).addRange(119155,119162).addRange(119227,119232).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(125184,125217).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578),i.addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(127232,127242).addRange(127248,127278).addRange(127280,127311).addRange(127338,127340).addRange(127488,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(130032,130041).addRange(194560,195101).addRange(917504,921599),t.exports=i},50589:(t,e,n)=>{const i=n(78776)(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,396,402,405,414,417,419,421,424,429,432,436,438,441,445,447,452,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,547,549,551,553,555,557,559,561,563,572,578,583,585,587,589,601,611,623,629,637,640,658,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1019,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7545,7549,7566,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8526,8580,11361,11368,11370,11372,11379,11382,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11491,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42799,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42967,42969,42998,43859);i.addRange(97,122).addRange(223,246).addRange(248,255).addRange(328,329).addRange(382,384).addRange(409,410).addRange(454,455).addRange(457,458).addRange(476,477).addRange(495,497).addRange(575,576).addRange(591,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1072,1119).addRange(1230,1231).addRange(1377,1415).addRange(5112,5117).addRange(7296,7304).addRange(7829,7835).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151).addRange(8160,8167).addRange(8178,8180),i.addRange(8182,8183).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11520,11557).addRange(42899,42900).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(125218,125251),t.exports=i},50046:(t,e,n)=>{const i=n(78776)(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,396,402,405,414,417,419,421,424,429,432,436,438,441,445,447,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,547,549,551,553,555,557,559,561,563,572,578,583,585,587,589,601,611,623,629,637,640,658,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1019,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7545,7549,7566,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8124,8126,8140,8188,8526,8580,11361,11368,11370,11372,11379,11382,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11491,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42799,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42967,42969,42998,43859);i.addRange(97,122).addRange(223,246).addRange(248,255).addRange(328,329).addRange(382,384).addRange(409,410).addRange(453,454).addRange(456,457).addRange(459,460).addRange(476,477).addRange(495,496).addRange(498,499).addRange(575,576).addRange(591,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(613,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1072,1119).addRange(1230,1231).addRange(1377,1415).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7829,7835).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151).addRange(8160,8167),i.addRange(8178,8180).addRange(8182,8183).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11520,11557).addRange(42899,42900).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(125218,125251),t.exports=i},77336:(t,e,n)=>{const i=n(78776)(45,1418,1470,5120,6150,8275,8315,8331,8722,11799,11802,11840,11869,12316,12336,12448,65112,65123,65293,69293);i.addRange(8208,8213).addRange(11834,11835).addRange(65073,65074),t.exports=i},32016:(t,e,n)=>{const i=n(78776)(173,847,1564,12644,65279,65440);i.addRange(4447,4448).addRange(6068,6069).addRange(6155,6159).addRange(8203,8207).addRange(8234,8238).addRange(8288,8303).addRange(65024,65039).addRange(65520,65528).addRange(113824,113827).addRange(119155,119162).addRange(917504,921599),t.exports=i},42339:(t,e,n)=>{const i=n(78776)(329,1651,3959,3961,917505);i.addRange(6051,6052).addRange(8298,8303).addRange(9001,9002),t.exports=i},97707:(t,e,n)=>{const i=n(78776)(94,96,168,175,180,890,1369,1471,1476,2364,2381,2417,2492,2509,2620,2637,2748,2765,2876,2893,2901,3021,3132,3149,3260,3277,3405,3530,3662,3770,3893,3895,3897,4038,4151,4239,6109,6783,6964,6980,7405,7412,8125,11823,12540,42607,42623,43204,43347,43443,43456,43493,43766,64286,65342,65344,65392,65507,66272,69702,69744,70003,70080,70460,70477,70722,70726,71231,71467,72003,72160,72244,72263,72345,72767,73026,73111,123566);i.addRange(183,184).addRange(688,846).addRange(848,855).addRange(861,866).addRange(884,885).addRange(900,901).addRange(1155,1159).addRange(1425,1441).addRange(1443,1469).addRange(1473,1474).addRange(1611,1618).addRange(1623,1624).addRange(1759,1760).addRange(1765,1766).addRange(1770,1772).addRange(1840,1866).addRange(1958,1968).addRange(2027,2037).addRange(2072,2073).addRange(2200,2207).addRange(2249,2258).addRange(2275,2302).addRange(2385,2388).addRange(2813,2815).addRange(3387,3388).addRange(3655,3660).addRange(3784,3788).addRange(3864,3865).addRange(3902,3903).addRange(3970,3972).addRange(3974,3975).addRange(4153,4154).addRange(4195,4196).addRange(4201,4205).addRange(4231,4237).addRange(4250,4251).addRange(4957,4959).addRange(5908,5909).addRange(6089,6099).addRange(6457,6459).addRange(6773,6780).addRange(6832,6846).addRange(6849,6859).addRange(7019,7027).addRange(7082,7083).addRange(7222,7223).addRange(7288,7293).addRange(7376,7400).addRange(7415,7417).addRange(7468,7530).addRange(7620,7631),i.addRange(7669,7679).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(11503,11505).addRange(12330,12335).addRange(12441,12444).addRange(42620,42621).addRange(42652,42653).addRange(42736,42737).addRange(42752,42785).addRange(42888,42890).addRange(43e3,43001).addRange(43232,43249).addRange(43307,43310).addRange(43643,43645).addRange(43711,43714).addRange(43867,43871).addRange(43881,43883).addRange(44012,44013).addRange(65056,65071).addRange(65438,65439).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(68325,68326).addRange(68898,68903).addRange(69446,69456).addRange(69506,69509).addRange(69817,69818).addRange(69939,69940).addRange(70090,70092).addRange(70197,70198).addRange(70377,70378).addRange(70502,70508).addRange(70512,70516).addRange(70850,70851).addRange(71103,71104).addRange(71350,71351).addRange(71737,71738).addRange(71997,71998).addRange(73028,73029).addRange(92912,92916).addRange(92976,92982).addRange(94095,94111).addRange(94192,94193).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590),i.addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125254).addRange(125256,125258),t.exports=i},23694:(t,e,n)=>{const i=n(78776)(35,42,169,174,8252,8265,8482,8505,9e3,9167,9410,9654,9664,9742,9745,9752,9757,9760,9766,9770,9792,9794,9827,9832,9851,9881,9895,9928,9937,9981,9986,9989,9999,10002,10004,10006,10013,10017,10024,10052,10055,10060,10062,10071,10145,10160,10175,11088,11093,12336,12349,12951,12953,126980,127183,127374,127514,127535,128391,128400,128424,128444,128481,128483,128488,128495,128499,128745,128752,129008);i.addRange(48,57).addRange(8596,8601).addRange(8617,8618).addRange(8986,8987).addRange(9193,9203).addRange(9208,9210).addRange(9642,9643).addRange(9723,9726).addRange(9728,9732).addRange(9748,9749).addRange(9762,9763).addRange(9774,9775).addRange(9784,9786).addRange(9800,9811).addRange(9823,9824).addRange(9829,9830).addRange(9854,9855).addRange(9874,9879).addRange(9883,9884).addRange(9888,9889).addRange(9898,9899).addRange(9904,9905).addRange(9917,9918).addRange(9924,9925).addRange(9934,9935).addRange(9939,9940).addRange(9961,9962).addRange(9968,9973).addRange(9975,9978).addRange(9992,9997).addRange(10035,10036).addRange(10067,10069).addRange(10083,10084).addRange(10133,10135).addRange(10548,10549).addRange(11013,11015).addRange(11035,11036).addRange(127344,127345).addRange(127358,127359).addRange(127377,127386).addRange(127462,127487).addRange(127489,127490).addRange(127538,127546).addRange(127568,127569).addRange(127744,127777).addRange(127780,127891).addRange(127894,127895).addRange(127897,127899).addRange(127902,127984).addRange(127987,127989).addRange(127991,128253),i.addRange(128255,128317).addRange(128329,128334).addRange(128336,128359).addRange(128367,128368).addRange(128371,128378).addRange(128394,128397).addRange(128405,128406).addRange(128420,128421).addRange(128433,128434).addRange(128450,128452).addRange(128465,128467).addRange(128476,128478).addRange(128506,128591).addRange(128640,128709).addRange(128715,128722).addRange(128725,128727).addRange(128733,128741).addRange(128747,128748).addRange(128755,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782),t.exports=i},94007:(t,e,n)=>{const i=n(78776)(35,42,8205,8419,65039);i.addRange(48,57).addRange(127462,127487).addRange(127995,127999).addRange(129456,129459).addRange(917536,917631),t.exports=i},13916:(t,e,n)=>{const i=n(78776)();i.addRange(127995,127999),t.exports=i},98053:(t,e,n)=>{const i=n(78776)(9757,9977,127877,127943,128124,128143,128145,128170,128378,128400,128675,128704,128716,129292,129295,129318,129399,129467);i.addRange(9994,9997).addRange(127938,127940).addRange(127946,127948).addRange(128066,128067).addRange(128070,128080).addRange(128102,128120).addRange(128129,128131).addRange(128133,128135).addRange(128372,128373).addRange(128405,128406).addRange(128581,128583).addRange(128587,128591).addRange(128692,128694).addRange(129304,129311).addRange(129328,129337).addRange(129340,129342).addRange(129461,129462).addRange(129464,129465).addRange(129485,129487).addRange(129489,129501).addRange(129731,129733).addRange(129776,129782),t.exports=i},10906:(t,e,n)=>{const i=n(78776)(9200,9203,9855,9875,9889,9934,9940,9962,9973,9978,9981,9989,10024,10060,10062,10071,10160,10175,11088,11093,126980,127183,127374,127489,127514,127535,127988,128064,128378,128420,128716,129008);i.addRange(8986,8987).addRange(9193,9196).addRange(9725,9726).addRange(9748,9749).addRange(9800,9811).addRange(9898,9899).addRange(9917,9918).addRange(9924,9925).addRange(9970,9971).addRange(9994,9995).addRange(10067,10069).addRange(10133,10135).addRange(11035,11036).addRange(127377,127386).addRange(127462,127487).addRange(127538,127542).addRange(127544,127546).addRange(127568,127569).addRange(127744,127776).addRange(127789,127797).addRange(127799,127868).addRange(127870,127891).addRange(127904,127946).addRange(127951,127955).addRange(127968,127984).addRange(127992,128062).addRange(128066,128252).addRange(128255,128317).addRange(128331,128334).addRange(128336,128359).addRange(128405,128406).addRange(128507,128591).addRange(128640,128709).addRange(128720,128722).addRange(128725,128727).addRange(128733,128735).addRange(128747,128748).addRange(128756,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782),t.exports=i},66359:(t,e,n)=>{const i=n(78776)(169,174,8252,8265,8482,8505,9e3,9096,9167,9410,9654,9664,10004,10006,10013,10017,10024,10052,10055,10060,10062,10071,10145,10160,10175,11088,11093,12336,12349,12951,12953,127279,127374,127514,127535);i.addRange(8596,8601).addRange(8617,8618).addRange(8986,8987).addRange(9193,9203).addRange(9208,9210).addRange(9642,9643).addRange(9723,9726).addRange(9728,9733).addRange(9735,9746).addRange(9748,9861).addRange(9872,9989).addRange(9992,10002).addRange(10035,10036).addRange(10067,10069).addRange(10083,10087).addRange(10133,10135).addRange(10548,10549).addRange(11013,11015).addRange(11035,11036).addRange(126976,127231).addRange(127245,127247).addRange(127340,127345).addRange(127358,127359).addRange(127377,127386).addRange(127405,127461).addRange(127489,127503).addRange(127538,127546).addRange(127548,127551).addRange(127561,127994).addRange(128e3,128317).addRange(128326,128591).addRange(128640,128767).addRange(128884,128895).addRange(128981,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129279).addRange(129292,129338).addRange(129340,129349).addRange(129351,129791).addRange(130048,131069),t.exports=i},17743:(t,e,n)=>{const i=n(78776)(183,1600,2042,2901,3654,3782,6154,6211,6823,7222,7291,12293,40981,42508,43471,43494,43632,43741,65392,70493,72344,94179);i.addRange(720,721).addRange(12337,12341).addRange(12445,12446).addRange(12540,12542).addRange(43763,43764).addRange(67457,67458).addRange(71110,71112).addRange(92994,92995).addRange(94176,94177).addRange(123196,123197).addRange(125252,125254),t.exports=i},75530:(t,e,n)=>{const i=n(78776)(908,1470,1472,1475,1478,1563,1758,1769,1808,1969,2074,2084,2088,2142,2363,2482,2493,2510,2563,2654,2678,2691,2761,2768,2809,2877,2880,2947,2972,3007,3024,3133,3165,3389,3517,3716,3749,3773,3782,3894,3896,3967,3973,4145,4152,4295,4301,4696,4800,5909,6070,6314,6464,6743,6753,6971,7082,7143,7150,7379,7393,7418,8025,8027,8029,11559,11565,42611,42963,43597,43697,43712,43714,64285,64318,64975,65952,67592,67644,67903,69293,69632,69749,69932,70197,70280,70461,70463,70480,70725,70749,70841,70846,70849,71102,71230,71340,71350,71462,71736,71739,71945,71997,72192,72272,72343,72766,72873,72881,72884,73030,73110,73112,73648,92917,113820,113823,119142,119365,119970,119995,120134,123647,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,129008);i.addRange(32,126).addRange(160,172).addRange(174,767).addRange(880,887).addRange(890,895).addRange(900,906).addRange(910,929).addRange(931,1154).addRange(1162,1327).addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(1488,1514).addRange(1519,1524).addRange(1542,1551).addRange(1565,1610).addRange(1632,1647).addRange(1649,1749).addRange(1765,1766).addRange(1774,1805).addRange(1810,1839).addRange(1869,1957).addRange(1984,2026).addRange(2036,2042).addRange(2046,2069).addRange(2096,2110).addRange(2112,2136).addRange(2144,2154).addRange(2160,2190).addRange(2208,2249).addRange(2307,2361).addRange(2365,2368).addRange(2377,2380).addRange(2382,2384).addRange(2392,2401).addRange(2404,2432).addRange(2434,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2495,2496).addRange(2503,2504).addRange(2507,2508).addRange(2524,2525).addRange(2527,2529).addRange(2534,2557).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600),i.addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2624).addRange(2649,2652).addRange(2662,2671).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2749,2752).addRange(2763,2764).addRange(2784,2785).addRange(2790,2801).addRange(2818,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2887,2888).addRange(2891,2892).addRange(2908,2909).addRange(2911,2913).addRange(2918,2935).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3009,3010).addRange(3014,3016).addRange(3018,3020).addRange(3046,3066).addRange(3073,3075).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3137,3140).addRange(3160,3162).addRange(3168,3169).addRange(3174,3183),i.addRange(3191,3200).addRange(3202,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3261,3262).addRange(3264,3265).addRange(3267,3268).addRange(3271,3272).addRange(3274,3275).addRange(3293,3294).addRange(3296,3297).addRange(3302,3311).addRange(3313,3314).addRange(3330,3340).addRange(3342,3344).addRange(3346,3386).addRange(3391,3392).addRange(3398,3400).addRange(3402,3404).addRange(3406,3407).addRange(3412,3414).addRange(3416,3425).addRange(3430,3455).addRange(3458,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3536,3537).addRange(3544,3550).addRange(3558,3567).addRange(3570,3572).addRange(3585,3632).addRange(3634,3635).addRange(3647,3654).addRange(3663,3675).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3792,3801).addRange(3804,3807).addRange(3840,3863).addRange(3866,3892).addRange(3898,3911).addRange(3913,3948).addRange(3976,3980),i.addRange(4030,4037).addRange(4039,4044).addRange(4046,4058).addRange(4096,4140).addRange(4155,4156).addRange(4159,4183).addRange(4186,4189).addRange(4193,4208).addRange(4213,4225).addRange(4227,4228).addRange(4231,4236).addRange(4238,4252).addRange(4254,4293).addRange(4304,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4960,4988).addRange(4992,5017).addRange(5024,5109).addRange(5112,5117).addRange(5120,5788).addRange(5792,5880).addRange(5888,5905).addRange(5919,5937).addRange(5940,5942).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6078,6085).addRange(6087,6088).addRange(6100,6108).addRange(6112,6121).addRange(6128,6137).addRange(6144,6154).addRange(6160,6169).addRange(6176,6264).addRange(6272,6276).addRange(6279,6312).addRange(6320,6389),i.addRange(6400,6430).addRange(6435,6438).addRange(6441,6443).addRange(6448,6449).addRange(6451,6456).addRange(6468,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6678).addRange(6681,6682).addRange(6686,6741).addRange(6755,6756).addRange(6765,6770).addRange(6784,6793).addRange(6800,6809).addRange(6816,6829).addRange(6916,6963).addRange(6973,6977).addRange(6979,6988).addRange(6992,7018).addRange(7028,7038).addRange(7042,7073).addRange(7078,7079).addRange(7086,7141).addRange(7146,7148).addRange(7154,7155).addRange(7164,7211).addRange(7220,7221).addRange(7227,7241).addRange(7245,7304).addRange(7312,7354).addRange(7357,7367).addRange(7401,7404).addRange(7406,7411).addRange(7413,7415).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190),i.addRange(8192,8202).addRange(8208,8231).addRange(8239,8287).addRange(8304,8305).addRange(8308,8334).addRange(8336,8348).addRange(8352,8384).addRange(8448,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,11123).addRange(11126,11157).addRange(11159,11502).addRange(11506,11507).addRange(11513,11557).addRange(11568,11623).addRange(11631,11632).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11776,11869).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12288,12329).addRange(12336,12351).addRange(12353,12438).addRange(12443,12543).addRange(12549,12591).addRange(12593,12686).addRange(12688,12771).addRange(12784,12830).addRange(12832,42124).addRange(42128,42182).addRange(42192,42539).addRange(42560,42606).addRange(42622,42653).addRange(42656,42735).addRange(42738,42743).addRange(42752,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013),i.addRange(43015,43018).addRange(43020,43044).addRange(43047,43051).addRange(43056,43065).addRange(43072,43127).addRange(43136,43203).addRange(43214,43225).addRange(43250,43262).addRange(43264,43301).addRange(43310,43334).addRange(43346,43347).addRange(43359,43388).addRange(43395,43442).addRange(43444,43445).addRange(43450,43451).addRange(43454,43469).addRange(43471,43481).addRange(43486,43492).addRange(43494,43518).addRange(43520,43560).addRange(43567,43568).addRange(43571,43572).addRange(43584,43586).addRange(43588,43595).addRange(43600,43609).addRange(43612,43643).addRange(43645,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43755).addRange(43758,43765).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43883).addRange(43888,44004).addRange(44006,44007).addRange(44009,44012).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64310).addRange(64312,64316).addRange(64320,64321),i.addRange(64323,64324).addRange(64326,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65023).addRange(65040,65049).addRange(65072,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65140).addRange(65142,65276).addRange(65281,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65532,65533).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65934).addRange(65936,65948).addRange(66e3,66044).addRange(66176,66204).addRange(66208,66256).addRange(66273,66299).addRange(66304,66339).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66463,66499).addRange(66504,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66927,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965),i.addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67671,67742).addRange(67751,67759).addRange(67808,67826).addRange(67828,67829).addRange(67835,67867).addRange(67871,67897).addRange(67968,68023).addRange(68028,68047).addRange(68050,68096).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68160,68168).addRange(68176,68184).addRange(68192,68255).addRange(68288,68324).addRange(68331,68342).addRange(68352,68405).addRange(68409,68437).addRange(68440,68466).addRange(68472,68497).addRange(68505,68508).addRange(68521,68527).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68858,68899).addRange(68912,68921).addRange(69216,69246).addRange(69248,69289).addRange(69296,69297).addRange(69376,69415).addRange(69424,69445).addRange(69457,69465).addRange(69488,69505).addRange(69510,69513).addRange(69552,69579),i.addRange(69600,69622).addRange(69634,69687).addRange(69703,69709).addRange(69714,69743).addRange(69745,69746).addRange(69762,69810).addRange(69815,69816).addRange(69819,69820).addRange(69822,69825).addRange(69840,69864).addRange(69872,69881).addRange(69891,69926).addRange(69942,69959).addRange(69968,70002).addRange(70004,70006).addRange(70018,70069).addRange(70079,70088).addRange(70093,70094).addRange(70096,70111).addRange(70113,70132).addRange(70144,70161).addRange(70163,70190).addRange(70194,70195).addRange(70200,70205).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313).addRange(70320,70366).addRange(70368,70370).addRange(70384,70393).addRange(70402,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70465,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70656,70711).addRange(70720,70721).addRange(70727,70747).addRange(70751,70753).addRange(70784,70831).addRange(70833,70834).addRange(70843,70844).addRange(70852,70855).addRange(70864,70873),i.addRange(71040,71086).addRange(71088,71089).addRange(71096,71099).addRange(71105,71131).addRange(71168,71218).addRange(71227,71228).addRange(71233,71236).addRange(71248,71257).addRange(71264,71276).addRange(71296,71338).addRange(71342,71343).addRange(71352,71353).addRange(71360,71369).addRange(71424,71450).addRange(71456,71457).addRange(71472,71494).addRange(71680,71726).addRange(71840,71922).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(71985,71989).addRange(71991,71992).addRange(71999,72002).addRange(72004,72006).addRange(72016,72025).addRange(72096,72103).addRange(72106,72147).addRange(72156,72159).addRange(72161,72164).addRange(72203,72242).addRange(72249,72250).addRange(72255,72262).addRange(72279,72280).addRange(72284,72329).addRange(72346,72354).addRange(72368,72440).addRange(72704,72712).addRange(72714,72751).addRange(72768,72773).addRange(72784,72812).addRange(72816,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73107,73108),i.addRange(73120,73129).addRange(73440,73458).addRange(73461,73464).addRange(73664,73713).addRange(73727,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075).addRange(77712,77810).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92782,92862).addRange(92864,92873).addRange(92880,92909).addRange(92928,92975).addRange(92983,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071).addRange(93760,93850).addRange(93952,94026).addRange(94032,94087).addRange(94099,94111).addRange(94176,94179).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119149).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274),i.addRange(119296,119361).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475).addRange(121477,121483).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123200,123209).addRange(123214,123215).addRange(123536,123565).addRange(123584,123627).addRange(123632,123641).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125127,125135).addRange(125184,125251).addRange(125264,125273).addRange(125278,125279).addRange(126065,126132).addRange(126209,126269).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543),i.addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(131072,173791),i.addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},38693:(t,e,n)=>{const i=n(78776)(1471,1479,1648,1809,2045,2362,2364,2381,2433,2492,2494,2509,2519,2558,2620,2641,2677,2748,2765,2817,2876,2893,2946,3006,3008,3021,3031,3072,3076,3132,3201,3260,3263,3266,3270,3390,3405,3415,3457,3530,3535,3542,3551,3633,3761,3893,3895,3897,4038,4226,4237,4253,6086,6109,6159,6313,6450,6683,6742,6752,6754,6783,6972,6978,7142,7149,7405,7412,8204,11647,43010,43014,43019,43052,43263,43443,43493,43587,43596,43644,43696,43713,43766,44005,44008,44013,64286,66045,66272,68159,69633,69744,69826,70003,70095,70196,70206,70367,70462,70464,70487,70726,70750,70832,70842,70845,71087,71229,71339,71341,71351,71984,71998,72003,72160,72263,72767,73018,73031,73109,73111,94031,94180,119141,121461,121476,123566);i.addRange(768,879).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2878,2879).addRange(2881,2884).addRange(2901,2903).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3285,3286).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388),i.addRange(3393,3396).addRange(3426,3427).addRange(3538,3540).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6862).addRange(6912,6915).addRange(6964,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7376,7378),i.addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8400,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12335).addRange(12441,12442).addRange(42607,42610).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(65024,65039).addRange(65056,65071).addRange(65438,65439).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078),i.addRange(70089,70092).addRange(70191,70193).addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461).addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(92912,92916).addRange(92976,92982).addRange(94095,94098).addRange(113821,113822).addRange(118528,118573),i.addRange(118576,118598).addRange(119143,119145).addRange(119150,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125258).addRange(917536,917631).addRange(917760,917999),t.exports=i},91556:(t,e,n)=>{const i=n(78776)();i.addRange(48,57).addRange(65,70).addRange(97,102).addRange(65296,65305).addRange(65313,65318).addRange(65345,65350),t.exports=i},2103:(t,e,n)=>{const i=n(78776)();i.addRange(12272,12273).addRange(12276,12283),t.exports=i},18502:(t,e,n)=>{const i=n(78776)();i.addRange(12274,12275),t.exports=i},19494:(t,e,n)=>{const i=n(78776)(95,170,181,183,186,748,750,895,908,1369,1471,1479,1791,2042,2045,2482,2519,2556,2558,2620,2641,2654,2768,2929,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,3840,3893,3895,3897,4038,4295,4301,4696,4800,6103,6823,8025,8027,8029,8126,8276,8305,8319,8417,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43052,43259,64318,65343,66045,66272,67592,67644,68159,69415,69826,70006,70108,70206,70280,70480,70487,70855,71236,71945,72263,72349,73018,73648,119970,119995,120134,121461,121476,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(48,57).addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(768,884).addRange(886,887).addRange(890,893).addRange(902,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1155,1159).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1641).addRange(1646,1747).addRange(1749,1756).addRange(1759,1768).addRange(1770,1788).addRange(1808,1866).addRange(1869,1969).addRange(1984,2037).addRange(2048,2093).addRange(2112,2139).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2200,2273).addRange(2275,2403).addRange(2406,2415).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525),i.addRange(2527,2531).addRange(2534,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2799).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2927).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001),i.addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3055).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3406).addRange(3412,3415).addRange(3423,3427).addRange(3430,3439).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3571).addRange(3585,3642).addRange(3648,3662).addRange(3664,3673).addRange(3713,3714),i.addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807).addRange(3864,3865).addRange(3872,3881).addRange(3902,3911).addRange(3913,3948).addRange(3953,3972).addRange(3974,3991).addRange(3993,4028).addRange(4096,4169).addRange(4176,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4959).addRange(4969,4977).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5909).addRange(5919,5940).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6099).addRange(6108,6109).addRange(6112,6121),i.addRange(6155,6157).addRange(6159,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6470,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6656,6683).addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6832,6845).addRange(6847,6862).addRange(6912,6988).addRange(6992,7001).addRange(7019,7027).addRange(7040,7155).addRange(7168,7223).addRange(7232,7241).addRange(7245,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7376,7378).addRange(7380,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8255,8256).addRange(8336,8348).addRange(8400,8412).addRange(8421,8432),i.addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11507).addRange(11520,11557).addRange(11568,11623).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12335).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12441,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42539).addRange(42560,42607).addRange(42612,42621).addRange(42623,42737).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43047).addRange(43072,43123).addRange(43136,43205).addRange(43216,43225).addRange(43232,43255).addRange(43261,43309),i.addRange(43312,43347).addRange(43360,43388).addRange(43392,43456).addRange(43471,43481).addRange(43488,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43616,43638).addRange(43642,43714).addRange(43739,43741).addRange(43744,43759).addRange(43762,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44012,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65024,65039).addRange(65056,65071).addRange(65075,65076).addRange(65101,65103).addRange(65136,65140).addRange(65142,65276).addRange(65296,65305).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479),i.addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023),i.addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68326).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(68912,68921).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69376,69404).addRange(69424,69456).addRange(69488,69509).addRange(69552,69572).addRange(69600,69622).addRange(69632,69702).addRange(69734,69749).addRange(69759,69818).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69951).addRange(69956,69959).addRange(69968,70003).addRange(70016,70084).addRange(70089,70092).addRange(70094,70106).addRange(70144,70161).addRange(70163,70199).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70378).addRange(70384,70393).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416),i.addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70730).addRange(70736,70745).addRange(70750,70753).addRange(70784,70853).addRange(70864,70873).addRange(71040,71093).addRange(71096,71104).addRange(71128,71133).addRange(71168,71232).addRange(71248,71257).addRange(71296,71352).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71481).addRange(71488,71494).addRange(71680,71738).addRange(71840,71913).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72003).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72161).addRange(72163,72164).addRange(72192,72254).addRange(72272,72345).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72768).addRange(72784,72793).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966).addRange(72968,72969),i.addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73462).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92784,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92916).addRange(92928,92982).addRange(92992,92995).addRange(93008,93017).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113821,113822),i.addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(120782,120831).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123536,123566).addRange(123584,123641),i.addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125136,125142).addRange(125184,125259).addRange(125264,125273).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(130032,130041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546).addRange(917760,917999),t.exports=i},20567:(t,e,n)=>{const i=n(78776)(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43259,43471,43642,43697,43712,43714,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,94179,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),i.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),i.addRange(3585,3632).addRange(3634,3635).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6312),i.addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670),i.addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12443,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586),i.addRange(43588,43595).addRange(43616,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204),i.addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680),i.addRange(68736,68786).addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144),i.addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993),i.addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976),i.addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},19586:(t,e,n)=>{const i=n(78776)(94180);i.addRange(12294,12295).addRange(12321,12329).addRange(12344,12346).addRange(13312,19903).addRange(19968,40959).addRange(63744,64109).addRange(64112,64217).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110960,111355).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},36983:(t,e,n)=>{const i=n(78776)();i.addRange(8204,8205),t.exports=i},72947:(t,e,n)=>{const i=n(78776)(6586,43705);i.addRange(3648,3652).addRange(3776,3780).addRange(6581,6583).addRange(43701,43702).addRange(43707,43708),t.exports=i},49111:(t,e,n)=>{const i=n(78776)(170,181,186,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,402,405,414,417,419,421,424,429,432,436,438,454,457,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,572,578,583,585,587,589,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8305,8319,8458,8467,8495,8500,8505,8526,8580,11361,11368,11370,11372,11377,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42787,42789,42791,42793,42795,42797,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42874,42876,42879,42881,42883,42885,42887,42892,42894,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42927,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42963,42965,42967,42969,42998,67456,119995,120779);i.addRange(97,122).addRange(223,246).addRange(248,255).addRange(311,312).addRange(328,329).addRange(382,384).addRange(396,397).addRange(409,411).addRange(426,427).addRange(441,442).addRange(445,447).addRange(476,477).addRange(495,496).addRange(563,569).addRange(575,576).addRange(591,659).addRange(661,696).addRange(704,705).addRange(736,740).addRange(890,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1019,1020).addRange(1072,1119).addRange(1230,1231).addRange(1376,1416).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7424,7615).addRange(7829,7837).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151),i.addRange(8160,8167).addRange(8178,8180).addRange(8182,8183).addRange(8336,8348).addRange(8462,8463).addRange(8508,8509).addRange(8518,8521).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11379,11380).addRange(11382,11389).addRange(11491,11492).addRange(11520,11557).addRange(42651,42653).addRange(42799,42801).addRange(42863,42872).addRange(42899,42901).addRange(43e3,43002).addRange(43824,43866).addRange(43868,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67459,67461).addRange(67463,67504).addRange(67506,67514).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(119834,119859).addRange(119886,119892).addRange(119894,119911).addRange(119938,119963).addRange(119990,119993).addRange(119997,120003).addRange(120005,120015).addRange(120042,120067).addRange(120094,120119).addRange(120146,120171).addRange(120198,120223).addRange(120250,120275).addRange(120302,120327),i.addRange(120354,120379).addRange(120406,120431).addRange(120458,120485).addRange(120514,120538).addRange(120540,120545).addRange(120572,120596).addRange(120598,120603).addRange(120630,120654).addRange(120656,120661).addRange(120688,120712).addRange(120714,120719).addRange(120746,120770).addRange(120772,120777).addRange(122624,122633).addRange(122635,122654).addRange(125218,125251),t.exports=i},65667:(t,e,n)=>{const i=n(78776)(43,94,124,126,172,177,215,247,981,8214,8256,8260,8274,8417,8450,8455,8469,8484,8523,8669,9084,9143,9168,9698,9700,9792,9794,64297,65128,65291,65340,65342,65372,65374,65506,119970,119995,120134,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(60,62).addRange(976,978).addRange(1008,1009).addRange(1012,1014).addRange(1542,1544).addRange(8242,8244).addRange(8289,8292).addRange(8314,8318).addRange(8330,8334).addRange(8400,8412).addRange(8421,8422).addRange(8427,8431).addRange(8458,8467).addRange(8472,8477).addRange(8488,8489).addRange(8492,8493).addRange(8495,8497).addRange(8499,8504).addRange(8508,8521).addRange(8592,8615).addRange(8617,8622).addRange(8624,8625).addRange(8630,8631).addRange(8636,8667).addRange(8676,8677).addRange(8692,8959).addRange(8968,8971).addRange(8992,8993).addRange(9115,9141).addRange(9180,9186).addRange(9632,9633).addRange(9646,9655).addRange(9660,9665).addRange(9670,9671).addRange(9674,9675).addRange(9679,9683).addRange(9703,9708).addRange(9720,9727).addRange(9733,9734).addRange(9824,9827).addRange(9837,9839).addRange(10176,10239).addRange(10496,11007).addRange(11056,11076).addRange(11079,11084).addRange(65121,65126).addRange(65308,65310).addRange(65513,65516).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967),i.addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),t.exports=i},20052:(t,e,n)=>{const i=n(78776)();i.addRange(64976,65007).addRange(65534,65535).addRange(131070,131071).addRange(196606,196607).addRange(262142,262143).addRange(327678,327679).addRange(393214,393215).addRange(458750,458751).addRange(524286,524287).addRange(589822,589823).addRange(655358,655359).addRange(720894,720895).addRange(786430,786431).addRange(851966,851967).addRange(917502,917503).addRange(983038,983039).addRange(1048574,1048575).addRange(1114110,1114111),t.exports=i},60514:(t,e,n)=>{const i=n(78776)(96,169,174,182,187,191,215,247,12336);i.addRange(33,47).addRange(58,64).addRange(91,94).addRange(123,126).addRange(161,167).addRange(171,172).addRange(176,177).addRange(8208,8231).addRange(8240,8254).addRange(8257,8275).addRange(8277,8286).addRange(8592,9311).addRange(9472,10101).addRange(10132,11263).addRange(11776,11903).addRange(12289,12291).addRange(12296,12320).addRange(64830,64831).addRange(65093,65094),t.exports=i},78588:(t,e,n)=>{const i=n(78776)(32,133);i.addRange(9,13).addRange(8206,8207).addRange(8232,8233),t.exports=i},1053:(t,e,n)=>{const i=n(78776)(34,39,171,187,11842,65282,65287);i.addRange(8216,8223).addRange(8249,8250).addRange(12300,12303).addRange(12317,12319).addRange(65089,65092).addRange(65378,65379),t.exports=i},25361:(t,e,n)=>{const i=n(78776)();i.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245),t.exports=i},94375:(t,e,n)=>{const i=n(78776)();i.addRange(127462,127487),t.exports=i},89697:(t,e,n)=>{const i=n(78776)(33,46,63,1417,1748,2041,2103,2105,4962,5742,6147,6153,11822,11836,12290,42239,42739,42743,43311,44011,65106,65281,65294,65311,65377,70093,70313,72004,72006,92917,92996,93848,113823,121480);i.addRange(1565,1567).addRange(1792,1794).addRange(2109,2110).addRange(2404,2405).addRange(4170,4171).addRange(4967,4968).addRange(5941,5942).addRange(6468,6469).addRange(6824,6827).addRange(7002,7003).addRange(7006,7007).addRange(7037,7038).addRange(7227,7228).addRange(7294,7295).addRange(8252,8253).addRange(8263,8265).addRange(11859,11860).addRange(42510,42511).addRange(43126,43127).addRange(43214,43215).addRange(43464,43465).addRange(43613,43615).addRange(43760,43761).addRange(65110,65111).addRange(68182,68183).addRange(69461,69465).addRange(69510,69513).addRange(69703,69704).addRange(69822,69825).addRange(69953,69955).addRange(70085,70086).addRange(70110,70111).addRange(70200,70201).addRange(70203,70204).addRange(70731,70732).addRange(71106,71107).addRange(71113,71127).addRange(71233,71234).addRange(71484,71486).addRange(72258,72259).addRange(72347,72348).addRange(72769,72770).addRange(73463,73464).addRange(92782,92783).addRange(92983,92984),t.exports=i},35514:(t,e,n)=>{const i=n(78776)(303,585,616,669,690,1011,1110,1112,7522,7574,7588,7592,7725,7883,8305,11388,122650);i.addRange(105,106).addRange(8520,8521).addRange(119842,119843).addRange(119894,119895).addRange(119946,119947).addRange(119998,119999).addRange(120050,120051).addRange(120102,120103).addRange(120154,120155).addRange(120206,120207).addRange(120258,120259).addRange(120310,120311).addRange(120362,120363).addRange(120414,120415).addRange(120466,120467),t.exports=i},21043:(t,e,n)=>{const i=n(78776)(33,44,46,63,894,903,1417,1475,1548,1563,1748,1804,2142,3848,5742,6106,11822,11836,11841,11852,43311,43743,44011,65281,65292,65294,65311,65377,65380,66463,66512,67671,67871,70093,70313,72004,72006,72817,92917,92996,113823);i.addRange(58,59).addRange(1565,1567).addRange(1792,1802).addRange(2040,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3853,3858).addRange(4170,4171).addRange(4961,4968).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6146,6149).addRange(6152,6153).addRange(6468,6469).addRange(6824,6827).addRange(7002,7003).addRange(7005,7007).addRange(7037,7038).addRange(7227,7231).addRange(7294,7295).addRange(8252,8253).addRange(8263,8265).addRange(11854,11855).addRange(11859,11860).addRange(12289,12290).addRange(42238,42239).addRange(42509,42511).addRange(42739,42743).addRange(43126,43127).addRange(43214,43215).addRange(43463,43465).addRange(43613,43615).addRange(43760,43761).addRange(65104,65106).addRange(65108,65111).addRange(65306,65307).addRange(68182,68183).addRange(68336,68341).addRange(68410,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69822,69825).addRange(69953,69955).addRange(70085,70086).addRange(70110,70111).addRange(70200,70204).addRange(70731,70733),i.addRange(70746,70747).addRange(71106,71109).addRange(71113,71127).addRange(71233,71234).addRange(71484,71486).addRange(72258,72259).addRange(72347,72348).addRange(72353,72354).addRange(72769,72771).addRange(73463,73464).addRange(74864,74868).addRange(92782,92783).addRange(92983,92985).addRange(93847,93848).addRange(121479,121482),t.exports=i},75771:(t,e,n)=>{const i=n(78776)(64017,64031,64033);i.addRange(13312,19903).addRange(19968,40959).addRange(64014,64015).addRange(64019,64020).addRange(64035,64036).addRange(64039,64041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(196608,201546),t.exports=i},28368:(t,e,n)=>{const i=n(78776)(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,452,455,458,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,497,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8450,8455,8469,8484,8486,8488,8517,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997,119964,119970,120134,120778);i.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(978,980).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8120,8123).addRange(8136,8139).addRange(8152,8155).addRange(8168,8172).addRange(8184,8187).addRange(8459,8461).addRange(8464,8466).addRange(8473,8477).addRange(8490,8493).addRange(8496,8499).addRange(8510,8511).addRange(8544,8559),i.addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(119808,119833).addRange(119860,119885).addRange(119912,119937).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119989).addRange(120016,120041).addRange(120068,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120120,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120172,120197).addRange(120224,120249).addRange(120276,120301).addRange(120328,120353).addRange(120380,120405).addRange(120432,120457).addRange(120488,120512).addRange(120546,120570).addRange(120604,120628).addRange(120662,120686).addRange(120720,120744).addRange(125184,125217).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369),t.exports=i},27186:(t,e,n)=>{const i=n(78776)(6159);i.addRange(6155,6157).addRange(65024,65039).addRange(917760,917999),t.exports=i},61846:(t,e,n)=>{const i=n(78776)(32,133,160,5760,8239,8287,12288);i.addRange(9,13).addRange(8192,8202).addRange(8232,8233),t.exports=i},74003:(t,e,n)=>{const i=n(78776)(95,170,181,183,186,748,750,895,908,1369,1471,1479,1791,2042,2045,2482,2519,2556,2558,2620,2641,2654,2768,2929,2972,3024,3031,3165,3517,3530,3542,3716,3749,3782,3840,3893,3895,3897,4038,4295,4301,4696,4800,6103,6823,8025,8027,8029,8126,8276,8305,8319,8417,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43052,43259,64318,65137,65139,65143,65145,65147,65149,65343,66045,66272,67592,67644,68159,69415,69826,70006,70108,70206,70280,70480,70487,70855,71236,71945,72263,72349,73018,73648,119970,119995,120134,121461,121476,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(48,57).addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(768,884).addRange(886,887).addRange(891,893).addRange(902,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1155,1159).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1641).addRange(1646,1747).addRange(1749,1756).addRange(1759,1768).addRange(1770,1788).addRange(1808,1866).addRange(1869,1969).addRange(1984,2037).addRange(2048,2093).addRange(2112,2139).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2200,2273).addRange(2275,2403).addRange(2406,2415).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525),i.addRange(2527,2531).addRange(2534,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2799).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2927).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001),i.addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3055).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3406).addRange(3412,3415).addRange(3423,3427).addRange(3430,3439).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3571).addRange(3585,3642).addRange(3648,3662).addRange(3664,3673).addRange(3713,3714),i.addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807).addRange(3864,3865).addRange(3872,3881).addRange(3902,3911).addRange(3913,3948).addRange(3953,3972).addRange(3974,3991).addRange(3993,4028).addRange(4096,4169).addRange(4176,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4959).addRange(4969,4977).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5909).addRange(5919,5940).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6099).addRange(6108,6109).addRange(6112,6121),i.addRange(6155,6157).addRange(6159,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6470,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6656,6683).addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6832,6845).addRange(6847,6862).addRange(6912,6988).addRange(6992,7001).addRange(7019,7027).addRange(7040,7155).addRange(7168,7223).addRange(7232,7241).addRange(7245,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7376,7378).addRange(7380,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8255,8256).addRange(8336,8348).addRange(8400,8412).addRange(8421,8432),i.addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11507).addRange(11520,11557).addRange(11568,11623).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12335).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12441,12442).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42539).addRange(42560,42607).addRange(42612,42621).addRange(42623,42737).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43047).addRange(43072,43123).addRange(43136,43205).addRange(43216,43225).addRange(43232,43255),i.addRange(43261,43309).addRange(43312,43347).addRange(43360,43388).addRange(43392,43456).addRange(43471,43481).addRange(43488,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43616,43638).addRange(43642,43714).addRange(43739,43741).addRange(43744,43759).addRange(43762,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44012,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64605).addRange(64612,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65017).addRange(65024,65039).addRange(65056,65071).addRange(65075,65076).addRange(65101,65103).addRange(65151,65276).addRange(65296,65305).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470),i.addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897),i.addRange(67968,68023).addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68326).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(68912,68921).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69376,69404).addRange(69424,69456).addRange(69488,69509).addRange(69552,69572).addRange(69600,69622).addRange(69632,69702).addRange(69734,69749).addRange(69759,69818).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69951).addRange(69956,69959).addRange(69968,70003).addRange(70016,70084).addRange(70089,70092).addRange(70094,70106).addRange(70144,70161).addRange(70163,70199).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70378).addRange(70384,70393).addRange(70400,70403).addRange(70405,70412),i.addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70656,70730).addRange(70736,70745).addRange(70750,70753).addRange(70784,70853).addRange(70864,70873).addRange(71040,71093).addRange(71096,71104).addRange(71128,71133).addRange(71168,71232).addRange(71248,71257).addRange(71296,71352).addRange(71360,71369).addRange(71424,71450).addRange(71453,71467).addRange(71472,71481).addRange(71488,71494).addRange(71680,71738).addRange(71840,71913).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72003).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72161).addRange(72163,72164).addRange(72192,72254).addRange(72272,72345).addRange(72368,72440).addRange(72704,72712).addRange(72714,72758).addRange(72760,72768).addRange(72784,72793).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966),i.addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73440,73462).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92784,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92916).addRange(92928,92982).addRange(92992,92995).addRange(93008,93017).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(94192,94193).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817),i.addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(120782,120831).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123536,123566),i.addRange(123584,123641).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125136,125142).addRange(125184,125259).addRange(125264,125273).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(130032,130041).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546).addRange(917760,917999),t.exports=i},3468:(t,e,n)=>{const i=n(78776)(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3634,3716,3749,3762,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,42963,43259,43471,43642,43697,43712,43714,64285,64318,65137,65139,65143,65145,65147,65149,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,94179,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),i.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),i.addRange(3585,3632).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6312).addRange(6320,6389).addRange(6400,6430),i.addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694),i.addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586).addRange(43588,43595).addRange(43616,43638),i.addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64605).addRange(64612,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65017).addRange(65151,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256),i.addRange(66304,66335).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786),i.addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144).addRange(72203,72242),i.addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003),i.addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205),i.addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},13090:(t,e,n)=>{const i=n(78776)(181,895,902,908,4295,4301,8025,8027,8029,8126,8450,8455,8469,8484,8486,8488,8505,8526,11559,11565,42963,43002,119970,119995,120134);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,442).addRange(444,447).addRange(452,659).addRange(661,687).addRange(880,883).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7424,7467).addRange(7531,7543).addRange(7545,7578).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8500).addRange(8508,8511).addRange(8517,8521).addRange(8579,8580),i.addRange(11264,11387).addRange(11390,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42651).addRange(42786,42863).addRange(42865,42887).addRange(42891,42894).addRange(42896,42954).addRange(42960,42961).addRange(42965,42969).addRange(42997,42998).addRange(43824,43866).addRange(43872,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68736,68786).addRange(68800,68850).addRange(71840,71903).addRange(93760,93823).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144),i.addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122633).addRange(122635,122654).addRange(125184,125251),t.exports=i},8526:(t,e,n)=>{const i=n(78776)(41,93,125,3899,3901,5788,8262,8318,8334,8969,8971,9002,10089,10091,10093,10095,10097,10099,10101,10182,10215,10217,10219,10221,10223,10628,10630,10632,10634,10636,10638,10640,10642,10644,10646,10648,10713,10715,10749,11811,11813,11815,11817,11862,11864,11866,11868,12297,12299,12301,12303,12305,12309,12311,12313,12315,64830,65048,65078,65080,65082,65084,65086,65088,65090,65092,65096,65114,65116,65118,65289,65341,65373,65376,65379);i.addRange(12318,12319),t.exports=i},26100:(t,e,n)=>{const i=n(78776)(95,8276,65343);i.addRange(8255,8256).addRange(65075,65076).addRange(65101,65103),t.exports=i},80282:(t,e,n)=>{const i=n(78776)();i.addRange(0,31).addRange(127,159),t.exports=i},15352:(t,e,n)=>{const i=n(78776)(36,1423,1547,2555,2801,3065,3647,6107,43064,65020,65129,65284,123647,126128);i.addRange(162,165).addRange(2046,2047).addRange(2546,2547).addRange(8352,8384).addRange(65504,65505).addRange(65509,65510).addRange(73693,73696),t.exports=i},45647:(t,e,n)=>{const i=n(78776)(45,1418,1470,5120,6150,11799,11802,11840,11869,12316,12336,12448,65112,65123,65293,69293);i.addRange(8208,8213).addRange(11834,11835).addRange(65073,65074),t.exports=i},98349:(t,e,n)=>{const i=n(78776)();i.addRange(48,57).addRange(1632,1641).addRange(1776,1785).addRange(1984,1993).addRange(2406,2415).addRange(2534,2543).addRange(2662,2671).addRange(2790,2799).addRange(2918,2927).addRange(3046,3055).addRange(3174,3183).addRange(3302,3311).addRange(3430,3439).addRange(3558,3567).addRange(3664,3673).addRange(3792,3801).addRange(3872,3881).addRange(4160,4169).addRange(4240,4249).addRange(6112,6121).addRange(6160,6169).addRange(6470,6479).addRange(6608,6617).addRange(6784,6793).addRange(6800,6809).addRange(6992,7001).addRange(7088,7097).addRange(7232,7241).addRange(7248,7257).addRange(42528,42537).addRange(43216,43225).addRange(43264,43273).addRange(43472,43481).addRange(43504,43513).addRange(43600,43609).addRange(44016,44025).addRange(65296,65305).addRange(66720,66729).addRange(68912,68921).addRange(69734,69743).addRange(69872,69881).addRange(69942,69951).addRange(70096,70105).addRange(70384,70393).addRange(70736,70745).addRange(70864,70873).addRange(71248,71257).addRange(71360,71369).addRange(71472,71481).addRange(71904,71913).addRange(72016,72025),i.addRange(72784,72793).addRange(73040,73049).addRange(73120,73129).addRange(92768,92777).addRange(92864,92873).addRange(93008,93017).addRange(120782,120831).addRange(123200,123209).addRange(123632,123641).addRange(125264,125273).addRange(130032,130041),t.exports=i},18220:(t,e,n)=>{const i=n(78776)(6846);i.addRange(1160,1161).addRange(8413,8416).addRange(8418,8420).addRange(42608,42610),t.exports=i},88482:(t,e,n)=>{const i=n(78776)(187,8217,8221,8250,11779,11781,11786,11789,11805,11809);t.exports=i},87586:(t,e,n)=>{const i=n(78776)(173,1564,1757,1807,2274,6158,65279,69821,69837,917505);i.addRange(1536,1541).addRange(2192,2193).addRange(8203,8207).addRange(8234,8238).addRange(8288,8292).addRange(8294,8303).addRange(65529,65531).addRange(78896,78904).addRange(113824,113827).addRange(119155,119162).addRange(917536,917631),t.exports=i},88147:(t,e,n)=>{const i=n(78776)(171,8216,8223,8249,11778,11780,11785,11788,11804,11808);i.addRange(8219,8220),t.exports=i},65964:(t,e,n)=>{const i=n(78776)(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,11823,42963,43259,43471,43642,43697,43712,43714,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,94179,119970,119995,120134,123214,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),i.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526),i.addRange(3585,3632).addRange(3634,3635).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5873,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6276),i.addRange(6279,6312).addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7304).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8505).addRange(8508,8511).addRange(8517,8521).addRange(8579,8580).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557),i.addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12294).addRange(12337,12341).addRange(12347,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42725).addRange(42775,42783).addRange(42786,42888).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560),i.addRange(43584,43586).addRange(43588,43595).addRange(43616,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(66176,66204),i.addRange(66208,66256).addRange(66304,66335).addRange(66349,66368).addRange(66370,66377).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680),i.addRange(68736,68786).addRange(68800,68850).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144),i.addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93760,93823).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003),i.addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205),i.addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},66793:(t,e,n)=>{const i=n(78776)(12295,66369,66378);i.addRange(5870,5872).addRange(8544,8578).addRange(8581,8584).addRange(12321,12329).addRange(12344,12346).addRange(42726,42735).addRange(65856,65908).addRange(66513,66517).addRange(74752,74862),t.exports=i},63061:(t,e,n)=>{const i=n(78776)(8232);t.exports=i},19340:(t,e,n)=>{const i=n(78776)(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,402,405,414,417,419,421,424,429,432,436,438,454,457,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,572,578,583,585,587,589,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8458,8467,8495,8500,8505,8526,8580,11361,11368,11370,11372,11377,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42894,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42927,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42961,42963,42965,42967,42969,42998,43002,119995,120779);i.addRange(97,122).addRange(223,246).addRange(248,255).addRange(311,312).addRange(328,329).addRange(382,384).addRange(396,397).addRange(409,411).addRange(426,427).addRange(441,442).addRange(445,447).addRange(476,477).addRange(495,496).addRange(563,569).addRange(575,576).addRange(591,659).addRange(661,687).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1019,1020).addRange(1072,1119).addRange(1230,1231).addRange(1376,1416).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7424,7467).addRange(7531,7543).addRange(7545,7578).addRange(7829,7837).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151),i.addRange(8160,8167).addRange(8178,8180).addRange(8182,8183).addRange(8462,8463).addRange(8508,8509).addRange(8518,8521).addRange(11312,11359).addRange(11365,11366).addRange(11379,11380).addRange(11382,11387).addRange(11491,11492).addRange(11520,11557).addRange(42799,42801).addRange(42865,42872).addRange(42899,42901).addRange(43824,43866).addRange(43872,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(71872,71903).addRange(93792,93823).addRange(119834,119859).addRange(119886,119892).addRange(119894,119911).addRange(119938,119963).addRange(119990,119993).addRange(119997,120003).addRange(120005,120015).addRange(120042,120067).addRange(120094,120119).addRange(120146,120171).addRange(120198,120223).addRange(120250,120275).addRange(120302,120327).addRange(120354,120379).addRange(120406,120431).addRange(120458,120485).addRange(120514,120538).addRange(120540,120545).addRange(120572,120596).addRange(120598,120603).addRange(120630,120654),i.addRange(120656,120661).addRange(120688,120712).addRange(120714,120719).addRange(120746,120770).addRange(120772,120777).addRange(122624,122633).addRange(122635,122654).addRange(125218,125251),t.exports=i},93748:(t,e,n)=>{const i=n(78776)(1471,1479,1648,1809,2045,2492,2519,2558,2620,2641,2677,2748,2876,2946,3031,3132,3260,3415,3530,3542,3633,3761,3893,3895,3897,4038,4239,6109,6159,6313,6783,7405,7412,11647,43010,43014,43019,43052,43263,43493,43587,43696,43713,64286,66045,66272,68159,69744,69826,70003,70206,70487,70750,72e3,72164,72263,73018,73031,94031,94180,121461,121476,123566);i.addRange(768,879).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2307).addRange(2362,2364).addRange(2366,2383).addRange(2385,2391).addRange(2402,2403).addRange(2433,2435).addRange(2494,2500).addRange(2503,2504).addRange(2507,2509).addRange(2530,2531).addRange(2561,2563).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2691).addRange(2750,2757).addRange(2759,2761).addRange(2763,2765).addRange(2786,2787).addRange(2810,2815).addRange(2817,2819).addRange(2878,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2914,2915).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021),i.addRange(3072,3076).addRange(3134,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3201,3203).addRange(3262,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3298,3299).addRange(3328,3331).addRange(3387,3388).addRange(3390,3396).addRange(3398,3400).addRange(3402,3405).addRange(3426,3427).addRange(3457,3459).addRange(3535,3540).addRange(3544,3551).addRange(3570,3571).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3902,3903).addRange(3953,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4139,4158).addRange(4182,4185).addRange(4190,4192).addRange(4194,4196).addRange(4199,4205).addRange(4209,4212).addRange(4226,4237).addRange(4250,4253).addRange(4957,4959).addRange(5906,5909).addRange(5938,5940).addRange(5970,5971).addRange(6002,6003).addRange(6068,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6443).addRange(6448,6459).addRange(6679,6683),i.addRange(6741,6750).addRange(6752,6780).addRange(6832,6862).addRange(6912,6916).addRange(6964,6980).addRange(7019,7027).addRange(7040,7042).addRange(7073,7085).addRange(7142,7155).addRange(7204,7223).addRange(7376,7378).addRange(7380,7400).addRange(7415,7417).addRange(7616,7679).addRange(8400,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12335).addRange(12441,12442).addRange(42607,42610).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43043,43047).addRange(43136,43137).addRange(43188,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43347).addRange(43392,43395).addRange(43443,43456).addRange(43561,43574).addRange(43596,43597).addRange(43643,43645).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43755,43759).addRange(43765,43766).addRange(44003,44010).addRange(44012,44013).addRange(65024,65039).addRange(65056,65071).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292),i.addRange(69446,69456).addRange(69506,69509).addRange(69632,69634).addRange(69688,69702).addRange(69747,69748).addRange(69759,69762).addRange(69808,69818).addRange(69888,69890).addRange(69927,69940).addRange(69957,69958).addRange(70016,70018).addRange(70067,70080).addRange(70089,70092).addRange(70094,70095).addRange(70188,70199).addRange(70367,70378).addRange(70400,70403).addRange(70459,70460).addRange(70462,70468).addRange(70471,70472).addRange(70475,70477).addRange(70498,70499).addRange(70502,70508).addRange(70512,70516).addRange(70709,70726).addRange(70832,70851).addRange(71087,71093).addRange(71096,71104).addRange(71132,71133).addRange(71216,71232).addRange(71339,71351).addRange(71453,71467).addRange(71724,71738).addRange(71984,71989).addRange(71991,71992).addRange(71995,71998).addRange(72002,72003).addRange(72145,72151).addRange(72154,72160).addRange(72193,72202).addRange(72243,72249).addRange(72251,72254).addRange(72273,72283).addRange(72330,72345).addRange(72751,72758).addRange(72760,72767).addRange(72850,72871).addRange(72873,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029),i.addRange(73098,73102).addRange(73104,73105).addRange(73107,73111).addRange(73459,73462).addRange(92912,92916).addRange(92976,92982).addRange(94033,94087).addRange(94095,94098).addRange(94192,94193).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125258).addRange(917760,917999),t.exports=i},32895:(t,e,n)=>{const i=n(78776)(43,124,126,172,177,215,247,1014,8260,8274,8472,8523,8608,8611,8614,8622,8658,8660,9084,9655,9665,9839,64297,65122,65291,65372,65374,65506,120513,120539,120571,120597,120629,120655,120687,120713,120745,120771);i.addRange(60,62).addRange(1542,1544).addRange(8314,8316).addRange(8330,8332).addRange(8512,8516).addRange(8592,8596).addRange(8602,8603).addRange(8654,8655).addRange(8692,8959).addRange(8992,8993).addRange(9115,9139).addRange(9180,9185).addRange(9720,9727).addRange(10176,10180).addRange(10183,10213).addRange(10224,10239).addRange(10496,10626).addRange(10649,10711).addRange(10716,10747).addRange(10750,11007).addRange(11056,11076).addRange(11079,11084).addRange(65124,65126).addRange(65308,65310).addRange(65513,65516).addRange(126704,126705),t.exports=i},66710:(t,e,n)=>{const i=n(78776)(748,750,884,890,1369,1600,2042,2074,2084,2088,2249,2417,3654,3782,4348,6103,6211,6823,7544,8305,8319,11631,11823,12293,12347,40981,42508,42623,42864,42888,43471,43494,43632,43741,43881,65392,94179,125259);i.addRange(688,705).addRange(710,721).addRange(736,740).addRange(1765,1766).addRange(2036,2037).addRange(7288,7293).addRange(7468,7530).addRange(7579,7615).addRange(8336,8348).addRange(11388,11389).addRange(12337,12341).addRange(12445,12446).addRange(12540,12542).addRange(42232,42237).addRange(42652,42653).addRange(42775,42783).addRange(42994,42996).addRange(43e3,43001).addRange(43763,43764).addRange(43868,43871).addRange(65438,65439).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(92992,92995).addRange(94099,94111).addRange(94176,94177).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(123191,123197),t.exports=i},43026:(t,e,n)=>{const i=n(78776)(94,96,168,175,180,184,749,885,2184,8125,43867,65342,65344,65507);i.addRange(706,709).addRange(722,735).addRange(741,747).addRange(751,767).addRange(900,901).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(12443,12444).addRange(42752,42774).addRange(42784,42785).addRange(42889,42890).addRange(43882,43883).addRange(64434,64450).addRange(127995,127999),t.exports=i},95580:(t,e,n)=>{const i=n(78776)(1471,1479,1648,1809,2045,2362,2364,2381,2433,2492,2509,2558,2620,2641,2677,2748,2765,2817,2876,2879,2893,2946,3008,3021,3072,3076,3132,3201,3260,3263,3270,3405,3457,3530,3542,3633,3761,3893,3895,3897,4038,4226,4237,4253,6086,6109,6159,6313,6450,6683,6742,6752,6754,6783,6964,6972,6978,7142,7149,7405,7412,8417,11647,42607,43010,43014,43019,43052,43263,43443,43493,43587,43596,43644,43696,43713,43766,44005,44008,44013,64286,66045,66272,68159,69633,69744,69826,70003,70095,70196,70206,70367,70464,70726,70750,70842,71229,71339,71341,71351,71998,72003,72160,72263,72767,73018,73031,73109,73111,94031,94180,121461,121476,123566);i.addRange(768,879).addRange(1155,1159).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2200,2207).addRange(2250,2273).addRange(2275,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2881,2884).addRange(2901,2902).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388).addRange(3393,3396).addRange(3426,3427),i.addRange(3538,3540).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3789).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6845).addRange(6847,6862).addRange(6912,6915).addRange(6966,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7376,7378).addRange(7380,7392),i.addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8400,8412).addRange(8421,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12333).addRange(12441,12442).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(65024,65039).addRange(65056,65071).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(69291,69292).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078).addRange(70089,70092).addRange(70191,70193),i.addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71453,71455).addRange(71458,71461).addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(92912,92916).addRange(92976,92982).addRange(94095,94098).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145),i.addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(125136,125142).addRange(125252,125258).addRange(917760,917999),t.exports=i},90055:(t,e,n)=>{const i=n(78776)(185,8304,11517,12295,66369,66378);i.addRange(48,57).addRange(178,179).addRange(188,190).addRange(1632,1641).addRange(1776,1785).addRange(1984,1993).addRange(2406,2415).addRange(2534,2543).addRange(2548,2553).addRange(2662,2671).addRange(2790,2799).addRange(2918,2927).addRange(2930,2935).addRange(3046,3058).addRange(3174,3183).addRange(3192,3198).addRange(3302,3311).addRange(3416,3422).addRange(3430,3448).addRange(3558,3567).addRange(3664,3673).addRange(3792,3801).addRange(3872,3891).addRange(4160,4169).addRange(4240,4249).addRange(4969,4988).addRange(5870,5872).addRange(6112,6121).addRange(6128,6137).addRange(6160,6169).addRange(6470,6479).addRange(6608,6618).addRange(6784,6793).addRange(6800,6809).addRange(6992,7001).addRange(7088,7097).addRange(7232,7241).addRange(7248,7257).addRange(8308,8313).addRange(8320,8329).addRange(8528,8578).addRange(8581,8585).addRange(9312,9371).addRange(9450,9471).addRange(10102,10131).addRange(12321,12329).addRange(12344,12346).addRange(12690,12693).addRange(12832,12841).addRange(12872,12879).addRange(12881,12895),i.addRange(12928,12937).addRange(12977,12991).addRange(42528,42537).addRange(42726,42735).addRange(43056,43061).addRange(43216,43225).addRange(43264,43273).addRange(43472,43481).addRange(43504,43513).addRange(43600,43609).addRange(44016,44025).addRange(65296,65305).addRange(65799,65843).addRange(65856,65912).addRange(65930,65931).addRange(66273,66299).addRange(66336,66339).addRange(66513,66517).addRange(66720,66729).addRange(67672,67679).addRange(67705,67711).addRange(67751,67759).addRange(67835,67839).addRange(67862,67867).addRange(68028,68029).addRange(68032,68047).addRange(68050,68095).addRange(68160,68168).addRange(68221,68222).addRange(68253,68255).addRange(68331,68335).addRange(68440,68447).addRange(68472,68479).addRange(68521,68527).addRange(68858,68863).addRange(68912,68921).addRange(69216,69246).addRange(69405,69414).addRange(69457,69460).addRange(69573,69579).addRange(69714,69743).addRange(69872,69881).addRange(69942,69951).addRange(70096,70105).addRange(70113,70132).addRange(70384,70393).addRange(70736,70745).addRange(70864,70873).addRange(71248,71257).addRange(71360,71369).addRange(71472,71483),i.addRange(71904,71922).addRange(72016,72025).addRange(72784,72812).addRange(73040,73049).addRange(73120,73129).addRange(73664,73684).addRange(74752,74862).addRange(92768,92777).addRange(92864,92873).addRange(93008,93017).addRange(93019,93025).addRange(93824,93846).addRange(119520,119539).addRange(119648,119672).addRange(120782,120831).addRange(123200,123209).addRange(123632,123641).addRange(125127,125135).addRange(125264,125273).addRange(126065,126123).addRange(126125,126127).addRange(126129,126132).addRange(126209,126253).addRange(126255,126269).addRange(127232,127244).addRange(130032,130041),t.exports=i},25622:(t,e,n)=>{const i=n(78776)(40,91,123,3898,3900,5787,8218,8222,8261,8317,8333,8968,8970,9001,10088,10090,10092,10094,10096,10098,10100,10181,10214,10216,10218,10220,10222,10627,10629,10631,10633,10635,10637,10639,10641,10643,10645,10647,10712,10714,10748,11810,11812,11814,11816,11842,11861,11863,11865,11867,12296,12298,12300,12302,12304,12308,12310,12312,12314,12317,64831,65047,65077,65079,65081,65083,65085,65087,65089,65091,65095,65113,65115,65117,65288,65339,65371,65375,65378);t.exports=i},76288:(t,e,n)=>{const i=n(78776)(173,907,909,930,1328,1424,1564,1757,2111,2143,2274,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6158,6431,6751,7039,8024,8026,8028,8030,8117,8133,8156,8181,8191,8335,11158,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,42962,42964,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69821,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,74863,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129939);i.addRange(0,31).addRange(127,159).addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1541).addRange(1806,1807).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2191,2199).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957),i.addRange(2966,2968).addRange(2976,2978).addRange(2981,2983).addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3163,3164).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3292).addRange(3300,3301).addRange(3315,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3790,3791).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119),i.addRange(5789,5791).addRange(5881,5887).addRange(5910,5918).addRange(5943,5951).addRange(5972,5983).addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6863,6911).addRange(6989,6991).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7305,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8203,8207).addRange(8234,8238).addRange(8288,8303).addRange(8306,8307).addRange(8349,8351).addRange(8385,8399).addRange(8433,8447).addRange(8588,8591).addRange(9255,9279),i.addRange(9291,9311).addRange(11124,11125).addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630).addRange(11633,11646).addRange(11671,11679).addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12284,12287).addRange(12439,12440).addRange(12544,12548).addRange(12772,12783).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42955,42959).addRange(42970,42993).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,63743).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64451,64466).addRange(64912,64913).addRange(64968,64974).addRange(64976,65007),i.addRange(65050,65055).addRange(65132,65135).addRange(65277,65280).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489).addRange(65496,65497).addRange(65501,65503).addRange(65519,65531).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791).addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67904,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158),i.addRange(68169,68175).addRange(68185,68191).addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408).addRange(68438,68439).addRange(68467,68471).addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735).addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,69215).addRange(69294,69295).addRange(69298,69375).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70207,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039).addRange(71094,71095).addRange(71134,71167).addRange(71237,71247),i.addRange(71258,71263).addRange(71277,71295).addRange(71354,71359).addRange(71370,71423).addRange(71451,71452).addRange(71468,71471).addRange(71495,71679).addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73439).addRange(73465,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78895,82943).addRange(83527,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911).addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93759).addRange(93851,93951).addRange(94027,94030).addRange(94088,94094).addRange(94112,94175).addRange(94181,94191),i.addRange(94194,94207).addRange(100344,100351).addRange(101590,101631).addRange(101641,110575).addRange(110883,110927).addRange(110931,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113824,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119155,119162).addRange(119275,119295).addRange(119366,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972).addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623).addRange(122655,122879).addRange(122905,122906).addRange(122923,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208).addRange(126270,126463).addRange(126501,126502),i.addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703).addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128728,128732).addRange(128749,128751).addRange(128765,128767).addRange(128884,128895).addRange(128985,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129202,129279).addRange(129620,129631).addRange(129646,129647).addRange(129653,129655).addRange(129661,129663).addRange(129671,129679).addRange(129709,129711).addRange(129723,129727).addRange(129734,129743).addRange(129754,129759).addRange(129768,129775).addRange(129783,129791).addRange(129995,130031).addRange(130042,131071).addRange(173792,173823).addRange(177977,177983).addRange(178206,178207).addRange(183970,183983).addRange(191457,194559).addRange(195102,196607).addRange(201547,917759).addRange(918e3,1114111),t.exports=i},61453:(t,e,n)=>{const i=n(78776)(170,186,443,660,1749,1791,1808,1969,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3165,3200,3261,3389,3406,3517,3716,3749,3773,3840,4159,4193,4238,4696,4800,6108,6314,7418,12294,12348,12447,12543,42606,42895,42999,43259,43642,43697,43712,43714,43762,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73648,94032,122634,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(448,451).addRange(1488,1514).addRange(1519,1522).addRange(1568,1599).addRange(1601,1610).addRange(1646,1647).addRange(1649,1747).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2190).addRange(2208,2248).addRange(2308,2361).addRange(2392,2401).addRange(2418,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873),i.addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3293,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3585,3632).addRange(3634,3635).addRange(3648,3653).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198),i.addRange(4206,4208).addRange(4213,4225).addRange(4352,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5873,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6210).addRange(6212,6264).addRange(6272,6276).addRange(6279,6312).addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7287).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414),i.addRange(8501,8504).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12353,12438).addRange(12449,12538).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,40980).addRange(40982,42124).addRange(42192,42231).addRange(42240,42507).addRange(42512,42527).addRange(42538,42539).addRange(42656,42725).addRange(43003,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43495,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586).addRange(43588,43595).addRange(43616,43631).addRange(43633,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43740).addRange(43744,43754).addRange(43777,43782),i.addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43968,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65382,65391).addRange(65393,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66368).addRange(66370,66377).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66640,66717).addRange(66816,66855).addRange(66864,66915).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),i.addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68864,68899).addRange(69248,69289).addRange(69296,69297).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448),i.addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144).addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73440,73458).addRange(73728,74649).addRange(74880,75075).addRange(77712,77808).addRange(77824,78894).addRange(82944,83526).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(93027,93047).addRange(93053,93071).addRange(93952,94026).addRange(94208,100343).addRange(100352,101589).addRange(101632,101640).addRange(110592,110882),i.addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(123136,123180).addRange(123536,123565).addRange(123584,123627).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},88795:(t,e,n)=>{const i=n(78776)(185,6618,8304,8585,11517);i.addRange(178,179).addRange(188,190).addRange(2548,2553).addRange(2930,2935).addRange(3056,3058).addRange(3192,3198).addRange(3416,3422).addRange(3440,3448).addRange(3882,3891).addRange(4969,4988).addRange(6128,6137).addRange(8308,8313).addRange(8320,8329).addRange(8528,8543).addRange(9312,9371).addRange(9450,9471).addRange(10102,10131).addRange(12690,12693).addRange(12832,12841).addRange(12872,12879).addRange(12881,12895).addRange(12928,12937).addRange(12977,12991).addRange(43056,43061).addRange(65799,65843).addRange(65909,65912).addRange(65930,65931).addRange(66273,66299).addRange(66336,66339).addRange(67672,67679).addRange(67705,67711).addRange(67751,67759).addRange(67835,67839).addRange(67862,67867).addRange(68028,68029).addRange(68032,68047).addRange(68050,68095).addRange(68160,68168).addRange(68221,68222).addRange(68253,68255).addRange(68331,68335).addRange(68440,68447).addRange(68472,68479).addRange(68521,68527).addRange(68858,68863).addRange(69216,69246).addRange(69405,69414).addRange(69457,69460).addRange(69573,69579).addRange(69714,69733).addRange(70113,70132),i.addRange(71482,71483).addRange(71914,71922).addRange(72794,72812).addRange(73664,73684).addRange(93019,93025).addRange(93824,93846).addRange(119520,119539).addRange(119648,119672).addRange(125127,125135).addRange(126065,126123).addRange(126125,126127).addRange(126129,126132).addRange(126209,126253).addRange(126255,126269).addRange(127232,127244),t.exports=i},47221:(t,e,n)=>{const i=n(78776)(42,44,92,161,167,191,894,903,1417,1472,1475,1478,1563,1748,2142,2416,2557,2678,2800,3191,3204,3572,3663,3860,3973,4347,5742,7379,8275,11632,11787,11803,11841,12349,12539,42611,42622,43260,43359,44011,65049,65072,65128,65290,65292,65340,65377,66463,66512,66927,67671,67871,67903,68223,70093,70107,70313,70749,70854,71353,71739,72162,73727,92917,92996,94178,113823);i.addRange(33,35).addRange(37,39).addRange(46,47).addRange(58,59).addRange(63,64).addRange(182,183).addRange(1370,1375).addRange(1523,1524).addRange(1545,1546).addRange(1548,1549).addRange(1565,1567).addRange(1642,1645).addRange(1792,1805).addRange(2039,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3844,3858).addRange(4048,4052).addRange(4057,4058).addRange(4170,4175).addRange(4960,4968).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6104,6106).addRange(6144,6149).addRange(6151,6154).addRange(6468,6469).addRange(6686,6687).addRange(6816,6822).addRange(6824,6829).addRange(7002,7008).addRange(7037,7038).addRange(7164,7167).addRange(7227,7231).addRange(7294,7295).addRange(7360,7367).addRange(8214,8215).addRange(8224,8231).addRange(8240,8248).addRange(8251,8254).addRange(8257,8259).addRange(8263,8273).addRange(8277,8286).addRange(11513,11516).addRange(11518,11519).addRange(11776,11777).addRange(11782,11784).addRange(11790,11798).addRange(11800,11801),i.addRange(11806,11807).addRange(11818,11822).addRange(11824,11833).addRange(11836,11839).addRange(11843,11855).addRange(11858,11860).addRange(12289,12291).addRange(42238,42239).addRange(42509,42511).addRange(42738,42743).addRange(43124,43127).addRange(43214,43215).addRange(43256,43258).addRange(43310,43311).addRange(43457,43469).addRange(43486,43487).addRange(43612,43615).addRange(43742,43743).addRange(43760,43761).addRange(65040,65046).addRange(65093,65094).addRange(65097,65100).addRange(65104,65106).addRange(65108,65111).addRange(65119,65121).addRange(65130,65131).addRange(65281,65283).addRange(65285,65287).addRange(65294,65295).addRange(65306,65307).addRange(65311,65312).addRange(65380,65381).addRange(65792,65794).addRange(68176,68184).addRange(68336,68342).addRange(68409,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69819,69820).addRange(69822,69825).addRange(69952,69955).addRange(70004,70005).addRange(70085,70088).addRange(70109,70111).addRange(70200,70205).addRange(70731,70735).addRange(70746,70747).addRange(71105,71127).addRange(71233,71235),i.addRange(71264,71276).addRange(71484,71486).addRange(72004,72006).addRange(72255,72262).addRange(72346,72348).addRange(72350,72354).addRange(72769,72773).addRange(72816,72817).addRange(73463,73464).addRange(74864,74868).addRange(77809,77810).addRange(92782,92783).addRange(92983,92987).addRange(93847,93850).addRange(121479,121483).addRange(125278,125279),t.exports=i},66733:(t,e,n)=>{const i=n(78776)(166,169,174,176,1154,1758,1769,2038,2554,2928,3066,3199,3407,3449,3859,3892,3894,3896,5741,6464,8468,8485,8487,8489,8494,8522,8527,8659,12292,12320,12880,43065,64975,65508,65512,65952,68296,71487,92997,113820,119365,123215,126124,126254,129008);i.addRange(1421,1422).addRange(1550,1551).addRange(1789,1790).addRange(3059,3064).addRange(3841,3843).addRange(3861,3863).addRange(3866,3871).addRange(4030,4037).addRange(4039,4044).addRange(4046,4047).addRange(4053,4056).addRange(4254,4255).addRange(5008,5017).addRange(6622,6655).addRange(7009,7018).addRange(7028,7036).addRange(8448,8449).addRange(8451,8454).addRange(8456,8457).addRange(8470,8471).addRange(8478,8483).addRange(8506,8507).addRange(8524,8525).addRange(8586,8587).addRange(8597,8601).addRange(8604,8607).addRange(8609,8610).addRange(8612,8613).addRange(8615,8621).addRange(8623,8653).addRange(8656,8657).addRange(8661,8691).addRange(8960,8967).addRange(8972,8991).addRange(8994,9e3).addRange(9003,9083).addRange(9085,9114).addRange(9140,9179).addRange(9186,9254).addRange(9280,9290).addRange(9372,9449).addRange(9472,9654).addRange(9656,9664).addRange(9666,9719).addRange(9728,9838).addRange(9840,10087).addRange(10132,10175).addRange(10240,10495).addRange(11008,11055).addRange(11077,11078).addRange(11085,11123),i.addRange(11126,11157).addRange(11159,11263).addRange(11493,11498).addRange(11856,11857).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12306,12307).addRange(12342,12343).addRange(12350,12351).addRange(12688,12689).addRange(12694,12703).addRange(12736,12771).addRange(12800,12830).addRange(12842,12871).addRange(12896,12927).addRange(12938,12976).addRange(12992,13311).addRange(19904,19967).addRange(42128,42182).addRange(43048,43051).addRange(43062,43063).addRange(43639,43641).addRange(64832,64847).addRange(65021,65023).addRange(65517,65518).addRange(65532,65533).addRange(65847,65855).addRange(65913,65929).addRange(65932,65934).addRange(65936,65948).addRange(66e3,66044).addRange(67703,67704).addRange(73685,73692).addRange(73697,73713).addRange(92988,92991).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119148).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119552,119638).addRange(120832,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475),i.addRange(121477,121478).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127245,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,127994).addRange(128e3,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994),t.exports=i},12600:(t,e,n)=>{const i=n(78776)(8233);t.exports=i},61704:(t,e,n)=>{const i=n(78776)();i.addRange(57344,63743).addRange(983040,1048573).addRange(1048576,1114109),t.exports=i},36290:(t,e,n)=>{const i=n(78776)(95,123,125,161,167,171,187,191,894,903,1470,1472,1475,1478,1563,1748,2142,2416,2557,2678,2800,3191,3204,3572,3663,3860,3973,4347,5120,5742,7379,11632,12336,12349,12448,12539,42611,42622,43260,43359,44011,65123,65128,65343,65371,65373,66463,66512,66927,67671,67871,67903,68223,69293,70093,70107,70313,70749,70854,71353,71739,72162,73727,92917,92996,94178,113823);i.addRange(33,35).addRange(37,42).addRange(44,47).addRange(58,59).addRange(63,64).addRange(91,93).addRange(182,183).addRange(1370,1375).addRange(1417,1418).addRange(1523,1524).addRange(1545,1546).addRange(1548,1549).addRange(1565,1567).addRange(1642,1645).addRange(1792,1805).addRange(2039,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3844,3858).addRange(3898,3901).addRange(4048,4052).addRange(4057,4058).addRange(4170,4175).addRange(4960,4968).addRange(5787,5788).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6104,6106).addRange(6144,6154).addRange(6468,6469).addRange(6686,6687).addRange(6816,6822).addRange(6824,6829).addRange(7002,7008).addRange(7037,7038).addRange(7164,7167).addRange(7227,7231).addRange(7294,7295).addRange(7360,7367).addRange(8208,8231).addRange(8240,8259).addRange(8261,8273).addRange(8275,8286).addRange(8317,8318).addRange(8333,8334).addRange(8968,8971).addRange(9001,9002).addRange(10088,10101).addRange(10181,10182),i.addRange(10214,10223).addRange(10627,10648).addRange(10712,10715).addRange(10748,10749).addRange(11513,11516).addRange(11518,11519).addRange(11776,11822).addRange(11824,11855).addRange(11858,11869).addRange(12289,12291).addRange(12296,12305).addRange(12308,12319).addRange(42238,42239).addRange(42509,42511).addRange(42738,42743).addRange(43124,43127).addRange(43214,43215).addRange(43256,43258).addRange(43310,43311).addRange(43457,43469).addRange(43486,43487).addRange(43612,43615).addRange(43742,43743).addRange(43760,43761).addRange(64830,64831).addRange(65040,65049).addRange(65072,65106).addRange(65108,65121).addRange(65130,65131).addRange(65281,65283).addRange(65285,65290).addRange(65292,65295).addRange(65306,65307).addRange(65311,65312).addRange(65339,65341).addRange(65375,65381).addRange(65792,65794).addRange(68176,68184).addRange(68336,68342).addRange(68409,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69819,69820).addRange(69822,69825).addRange(69952,69955).addRange(70004,70005).addRange(70085,70088).addRange(70109,70111).addRange(70200,70205),i.addRange(70731,70735).addRange(70746,70747).addRange(71105,71127).addRange(71233,71235).addRange(71264,71276).addRange(71484,71486).addRange(72004,72006).addRange(72255,72262).addRange(72346,72348).addRange(72350,72354).addRange(72769,72773).addRange(72816,72817).addRange(73463,73464).addRange(74864,74868).addRange(77809,77810).addRange(92782,92783).addRange(92983,92987).addRange(93847,93850).addRange(121479,121483).addRange(125278,125279),t.exports=i},64661:(t,e,n)=>{const i=n(78776)(32,160,5760,8239,8287,12288);i.addRange(8192,8202).addRange(8232,8233),t.exports=i},54343:(t,e,n)=>{const i=n(78776)(32,160,5760,8239,8287,12288);i.addRange(8192,8202),t.exports=i},11276:(t,e,n)=>{const i=n(78776)(2307,2363,2519,2563,2691,2761,2878,2880,2903,3031,3262,3415,3967,4145,4152,4239,5909,5940,6070,6741,6743,6753,6916,6965,6971,7042,7073,7082,7143,7150,7393,7415,43047,43395,43597,43643,43645,43755,43765,44012,69632,69634,69762,69932,70018,70094,70197,70487,70725,70841,70849,71102,71230,71340,71350,71462,71736,71997,72e3,72002,72164,72249,72343,72751,72766,72873,72881,72884,73110);i.addRange(2366,2368).addRange(2377,2380).addRange(2382,2383).addRange(2434,2435).addRange(2494,2496).addRange(2503,2504).addRange(2507,2508).addRange(2622,2624).addRange(2750,2752).addRange(2763,2764).addRange(2818,2819).addRange(2887,2888).addRange(2891,2892).addRange(3006,3007).addRange(3009,3010).addRange(3014,3016).addRange(3018,3020).addRange(3073,3075).addRange(3137,3140).addRange(3202,3203).addRange(3264,3268).addRange(3271,3272).addRange(3274,3275).addRange(3285,3286).addRange(3330,3331).addRange(3390,3392).addRange(3398,3400).addRange(3402,3404).addRange(3458,3459).addRange(3535,3537).addRange(3544,3551).addRange(3570,3571).addRange(3902,3903).addRange(4139,4140).addRange(4155,4156).addRange(4182,4183).addRange(4194,4196).addRange(4199,4205).addRange(4227,4228).addRange(4231,4236).addRange(4250,4252).addRange(6078,6085).addRange(6087,6088).addRange(6435,6438).addRange(6441,6443).addRange(6448,6449).addRange(6451,6456).addRange(6681,6682).addRange(6755,6756).addRange(6765,6770).addRange(6973,6977),i.addRange(6979,6980).addRange(7078,7079).addRange(7146,7148).addRange(7154,7155).addRange(7204,7211).addRange(7220,7221).addRange(12334,12335).addRange(43043,43044).addRange(43136,43137).addRange(43188,43203).addRange(43346,43347).addRange(43444,43445).addRange(43450,43451).addRange(43454,43456).addRange(43567,43568).addRange(43571,43572).addRange(43758,43759).addRange(44003,44004).addRange(44006,44007).addRange(44009,44010).addRange(69808,69810).addRange(69815,69816).addRange(69957,69958).addRange(70067,70069).addRange(70079,70080).addRange(70188,70190).addRange(70194,70195).addRange(70368,70370).addRange(70402,70403).addRange(70462,70463).addRange(70465,70468).addRange(70471,70472).addRange(70475,70477).addRange(70498,70499).addRange(70709,70711).addRange(70720,70721).addRange(70832,70834).addRange(70843,70846).addRange(71087,71089).addRange(71096,71099).addRange(71216,71218).addRange(71227,71228).addRange(71342,71343).addRange(71456,71457).addRange(71724,71726).addRange(71984,71989).addRange(71991,71992).addRange(72145,72147).addRange(72156,72159).addRange(72279,72280).addRange(73098,73102),i.addRange(73107,73108).addRange(73461,73462).addRange(94033,94087).addRange(94192,94193).addRange(119141,119142).addRange(119149,119154),t.exports=i},93474:(t,e,n)=>{const i=n(78776)();i.addRange(55296,57343),t.exports=i},54581:(t,e,n)=>{const i=n(78776)(36,43,94,96,124,126,172,180,184,215,247,749,885,1014,1154,1547,1758,1769,2038,2184,2801,2928,3199,3407,3449,3647,3859,3892,3894,3896,5741,6107,6464,8125,8260,8274,8468,8485,8487,8489,8494,8527,12292,12320,12880,43867,64297,64975,65122,65129,65284,65291,65342,65344,65372,65374,65952,68296,71487,92997,113820,119365,120513,120539,120571,120597,120629,120655,120687,120713,120745,120771,123215,123647,126124,126128,126254,129008);i.addRange(60,62).addRange(162,166).addRange(168,169).addRange(174,177).addRange(706,709).addRange(722,735).addRange(741,747).addRange(751,767).addRange(900,901).addRange(1421,1423).addRange(1542,1544).addRange(1550,1551).addRange(1789,1790).addRange(2046,2047).addRange(2546,2547).addRange(2554,2555).addRange(3059,3066).addRange(3841,3843).addRange(3861,3863).addRange(3866,3871).addRange(4030,4037).addRange(4039,4044).addRange(4046,4047).addRange(4053,4056).addRange(4254,4255).addRange(5008,5017).addRange(6622,6655).addRange(7009,7018).addRange(7028,7036).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(8314,8316).addRange(8330,8332).addRange(8352,8384).addRange(8448,8449).addRange(8451,8454).addRange(8456,8457).addRange(8470,8472).addRange(8478,8483).addRange(8506,8507).addRange(8512,8516).addRange(8522,8525).addRange(8586,8587).addRange(8592,8967).addRange(8972,9e3).addRange(9003,9254).addRange(9280,9290).addRange(9372,9449),i.addRange(9472,10087).addRange(10132,10180).addRange(10183,10213).addRange(10224,10626).addRange(10649,10711).addRange(10716,10747).addRange(10750,11123).addRange(11126,11157).addRange(11159,11263).addRange(11493,11498).addRange(11856,11857).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12283).addRange(12306,12307).addRange(12342,12343).addRange(12350,12351).addRange(12443,12444).addRange(12688,12689).addRange(12694,12703).addRange(12736,12771).addRange(12800,12830).addRange(12842,12871).addRange(12896,12927).addRange(12938,12976).addRange(12992,13311).addRange(19904,19967).addRange(42128,42182).addRange(42752,42774).addRange(42784,42785).addRange(42889,42890).addRange(43048,43051).addRange(43062,43065).addRange(43639,43641).addRange(43882,43883).addRange(64434,64450).addRange(64832,64847).addRange(65020,65023).addRange(65124,65126).addRange(65308,65310).addRange(65504,65510).addRange(65512,65518).addRange(65532,65533).addRange(65847,65855).addRange(65913,65929).addRange(65932,65934).addRange(65936,65948).addRange(66e3,66044).addRange(67703,67704).addRange(73685,73713),i.addRange(92988,92991).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119148).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119552,119638).addRange(120832,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475).addRange(121477,121478).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127245,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767),i.addRange(129776,129782).addRange(129792,129938).addRange(129940,129994),t.exports=i},8550:(t,e,n)=>{const i=n(78776)(453,456,459,498,8124,8140,8188);i.addRange(8072,8079).addRange(8088,8095).addRange(8104,8111),t.exports=i},22525:(t,e,n)=>{const i=n(78776)(907,909,930,1328,1424,1806,2111,2143,2191,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6431,6751,7039,8024,8026,8028,8030,8117,8133,8156,8181,8191,8293,8335,11158,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,42962,42964,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65280,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,74863,78895,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129939);i.addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1535).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2194,2199).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957).addRange(2966,2968).addRange(2976,2978).addRange(2981,2983),i.addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3163,3164).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3292).addRange(3300,3301).addRange(3315,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3790,3791).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119).addRange(5789,5791).addRange(5881,5887).addRange(5910,5918),i.addRange(5943,5951).addRange(5972,5983).addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6863,6911).addRange(6989,6991).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7305,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8306,8307).addRange(8349,8351).addRange(8385,8399).addRange(8433,8447).addRange(8588,8591).addRange(9255,9279).addRange(9291,9311).addRange(11124,11125).addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630),i.addRange(11633,11646).addRange(11671,11679).addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12284,12287).addRange(12439,12440).addRange(12544,12548).addRange(12772,12783).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42955,42959).addRange(42970,42993).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,55295).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64451,64466).addRange(64912,64913).addRange(64968,64974).addRange(64976,65007).addRange(65050,65055).addRange(65132,65135).addRange(65277,65278).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489),i.addRange(65496,65497).addRange(65501,65503).addRange(65519,65528).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791).addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67904,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158).addRange(68169,68175).addRange(68185,68191).addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408),i.addRange(68438,68439).addRange(68467,68471).addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735).addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,69215).addRange(69294,69295).addRange(69298,69375).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69836).addRange(69838,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70207,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039).addRange(71094,71095).addRange(71134,71167).addRange(71237,71247).addRange(71258,71263).addRange(71277,71295).addRange(71354,71359).addRange(71370,71423).addRange(71451,71452),i.addRange(71468,71471).addRange(71495,71679).addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73439).addRange(73465,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78905,82943).addRange(83527,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911).addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93759).addRange(93851,93951).addRange(94027,94030).addRange(94088,94094).addRange(94112,94175).addRange(94181,94191).addRange(94194,94207).addRange(100344,100351).addRange(101590,101631).addRange(101641,110575).addRange(110883,110927),i.addRange(110931,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113828,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119275,119295).addRange(119366,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972).addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623).addRange(122655,122879).addRange(122905,122906).addRange(122923,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208).addRange(126270,126463).addRange(126501,126502).addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703),i.addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128728,128732).addRange(128749,128751).addRange(128765,128767).addRange(128884,128895).addRange(128985,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129202,129279).addRange(129620,129631).addRange(129646,129647).addRange(129653,129655).addRange(129661,129663).addRange(129671,129679).addRange(129709,129711).addRange(129723,129727).addRange(129734,129743).addRange(129754,129759).addRange(129768,129775).addRange(129783,129791).addRange(129995,130031).addRange(130042,131071).addRange(173792,173823).addRange(177977,177983).addRange(178206,178207).addRange(183970,183983).addRange(191457,194559).addRange(195102,196607).addRange(201547,917504).addRange(917506,917535).addRange(917632,917759).addRange(918e3,983039).addRange(1048574,1048575).addRange(1114110,1114111),t.exports=i},28829:(t,e,n)=>{const i=n(78776)(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,452,455,458,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,497,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8450,8455,8469,8484,8486,8488,8517,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42960,42966,42968,42997,119964,119970,120134,120778);i.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(978,980).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8120,8123).addRange(8136,8139).addRange(8152,8155).addRange(8168,8172).addRange(8184,8187).addRange(8459,8461).addRange(8464,8466).addRange(8473,8477).addRange(8490,8493).addRange(8496,8499).addRange(8510,8511).addRange(11264,11311),i.addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(71840,71871).addRange(93760,93791).addRange(119808,119833).addRange(119860,119885).addRange(119912,119937).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119989).addRange(120016,120041).addRange(120068,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120120,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120172,120197).addRange(120224,120249).addRange(120276,120301).addRange(120328,120353).addRange(120380,120405).addRange(120432,120457).addRange(120488,120512).addRange(120546,120570).addRange(120604,120628).addRange(120662,120686).addRange(120720,120744).addRange(125184,125217),t.exports=i},56129:(t,e,n)=>{const i=n(78776)();i.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279),t.exports=i},50147:(t,e,n)=>{const i=n(78776)();i.addRange(71424,71450).addRange(71453,71467).addRange(71472,71494),t.exports=i},50926:(t,e,n)=>{const i=n(78776)();i.addRange(82944,83526),t.exports=i},56820:(t,e,n)=>{const i=n(78776)(64975,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(1536,1540).addRange(1542,1547).addRange(1549,1562).addRange(1564,1566).addRange(1568,1599).addRange(1601,1610).addRange(1622,1647).addRange(1649,1756).addRange(1758,1791).addRange(1872,1919).addRange(2160,2190).addRange(2192,2193).addRange(2200,2273).addRange(2275,2303).addRange(64336,64450).addRange(64467,64829).addRange(64832,64911).addRange(64914,64967).addRange(65008,65023).addRange(65136,65140).addRange(65142,65276).addRange(69216,69246).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),t.exports=i},14899:(t,e,n)=>{const i=n(78776)();i.addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(64275,64279),t.exports=i},69929:(t,e,n)=>{const i=n(78776)();i.addRange(68352,68405).addRange(68409,68415),t.exports=i},30706:(t,e,n)=>{const i=n(78776)();i.addRange(6912,6988).addRange(6992,7038),t.exports=i},15533:(t,e,n)=>{const i=n(78776)();i.addRange(42656,42743).addRange(92160,92728),t.exports=i},89979:(t,e,n)=>{const i=n(78776)();i.addRange(92880,92909).addRange(92912,92917),t.exports=i},83765:(t,e,n)=>{const i=n(78776)();i.addRange(7104,7155).addRange(7164,7167),t.exports=i},72693:(t,e,n)=>{const i=n(78776)(2482,2519);i.addRange(2432,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558),t.exports=i},10236:(t,e,n)=>{const i=n(78776)();i.addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812),t.exports=i},30468:(t,e,n)=>{const i=n(78776)();i.addRange(746,747).addRange(12549,12591).addRange(12704,12735),t.exports=i},45770:(t,e,n)=>{const i=n(78776)(69759);i.addRange(69632,69709).addRange(69714,69749),t.exports=i},65529:(t,e,n)=>{const i=n(78776)();i.addRange(10240,10495),t.exports=i},74206:(t,e,n)=>{const i=n(78776)();i.addRange(6656,6683).addRange(6686,6687),t.exports=i},96208:(t,e,n)=>{const i=n(78776)();i.addRange(5952,5971),t.exports=i},66700:(t,e,n)=>{const i=n(78776)();i.addRange(5120,5759).addRange(6320,6389).addRange(72368,72383),t.exports=i},93961:(t,e,n)=>{const i=n(78776)();i.addRange(66208,66256),t.exports=i},74121:(t,e,n)=>{const i=n(78776)(66927);i.addRange(66864,66915),t.exports=i},12128:(t,e,n)=>{const i=n(78776)();i.addRange(69888,69940).addRange(69942,69959),t.exports=i},52189:(t,e,n)=>{const i=n(78776)();i.addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43615),t.exports=i},75033:(t,e,n)=>{const i=n(78776)();i.addRange(5024,5109).addRange(5112,5117).addRange(43888,43967),t.exports=i},73507:(t,e,n)=>{const i=n(78776)();i.addRange(69552,69579),t.exports=i},85998:(t,e,n)=>{const i=n(78776)(215,247,884,894,901,903,1541,1548,1563,1567,1600,1757,2274,3647,4347,6149,7379,7393,7418,12294,12448,13055,43310,43471,43867,65279,65392,119970,119995,120134,129008,917505);i.addRange(0,64).addRange(91,96).addRange(123,169).addRange(171,185).addRange(187,191).addRange(697,735).addRange(741,745).addRange(748,767).addRange(2404,2405).addRange(4053,4056).addRange(5867,5869).addRange(5941,5942).addRange(6146,6147).addRange(7401,7404).addRange(7406,7411).addRange(7413,7415).addRange(8192,8203).addRange(8206,8292).addRange(8294,8304).addRange(8308,8318).addRange(8320,8334).addRange(8352,8384).addRange(8448,8485).addRange(8487,8489).addRange(8492,8497).addRange(8499,8525).addRange(8527,8543).addRange(8585,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,10239).addRange(10496,11123).addRange(11126,11157).addRange(11159,11263).addRange(11776,11869).addRange(12272,12283).addRange(12288,12292).addRange(12296,12320).addRange(12336,12343).addRange(12348,12351).addRange(12443,12444).addRange(12539,12540).addRange(12688,12703).addRange(12736,12771).addRange(12832,12895).addRange(12927,13007).addRange(13144,13311).addRange(19904,19967).addRange(42752,42785).addRange(42888,42890).addRange(43056,43065),i.addRange(43882,43883).addRange(64830,64831).addRange(65040,65049).addRange(65072,65106).addRange(65108,65126).addRange(65128,65131).addRange(65281,65312).addRange(65339,65344).addRange(65371,65381).addRange(65438,65439).addRange(65504,65510).addRange(65512,65518).addRange(65529,65533).addRange(65792,65794).addRange(65799,65843).addRange(65847,65855).addRange(65936,65948).addRange(66e3,66044).addRange(66273,66299).addRange(113824,113827).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119142).addRange(119146,119162).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126065,126132).addRange(126209,126269),i.addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127487).addRange(127489,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(917536,917631),t.exports=i},56036:(t,e,n)=>{const i=n(78776)();i.addRange(994,1007).addRange(11392,11507).addRange(11513,11519),t.exports=i},13563:(t,e,n)=>{const i=n(78776)();i.addRange(73728,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075),t.exports=i},49182:(t,e,n)=>{const i=n(78776)(67592,67644,67647);i.addRange(67584,67589).addRange(67594,67637).addRange(67639,67640),t.exports=i},80084:(t,e,n)=>{const i=n(78776)();i.addRange(77712,77810),t.exports=i},84087:(t,e,n)=>{const i=n(78776)(7467,7544);i.addRange(1024,1156).addRange(1159,1327).addRange(7296,7304).addRange(11744,11775).addRange(42560,42655).addRange(65070,65071),t.exports=i},48844:(t,e,n)=>{const i=n(78776)();i.addRange(66560,66639),t.exports=i},35690:(t,e,n)=>{const i=n(78776)();i.addRange(2304,2384).addRange(2389,2403).addRange(2406,2431).addRange(43232,43263),t.exports=i},57201:(t,e,n)=>{const i=n(78776)(71945);i.addRange(71936,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025),t.exports=i},71932:(t,e,n)=>{const i=n(78776)();i.addRange(71680,71739),t.exports=i},95187:(t,e,n)=>{const i=n(78776)();i.addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113823),t.exports=i},49778:(t,e,n)=>{const i=n(78776)();i.addRange(77824,78894).addRange(78896,78904),t.exports=i},42781:(t,e,n)=>{const i=n(78776)();i.addRange(66816,66855),t.exports=i},83103:(t,e,n)=>{const i=n(78776)();i.addRange(69600,69622),t.exports=i},26672:(t,e,n)=>{const i=n(78776)(4696,4800);i.addRange(4608,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926),t.exports=i},73661:(t,e,n)=>{const i=n(78776)(4295,4301,11559,11565);i.addRange(4256,4293).addRange(4304,4346).addRange(4348,4351).addRange(7312,7354).addRange(7357,7359).addRange(11520,11557),t.exports=i},85857:(t,e,n)=>{const i=n(78776)();i.addRange(11264,11359).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),t.exports=i},32096:(t,e,n)=>{const i=n(78776)();i.addRange(66352,66378),t.exports=i},71742:(t,e,n)=>{const i=n(78776)(70480,70487);i.addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70460,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516),t.exports=i},62199:(t,e,n)=>{const i=n(78776)(895,900,902,908,7615,8025,8027,8029,8486,43877,65952);i.addRange(880,883).addRange(885,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,993).addRange(1008,1023).addRange(7462,7466).addRange(7517,7521).addRange(7526,7530).addRange(7936,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(65856,65934).addRange(119296,119365),t.exports=i},11931:(t,e,n)=>{const i=n(78776)(2768);i.addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815),t.exports=i},27600:(t,e,n)=>{const i=n(78776)();i.addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129),t.exports=i},76482:(t,e,n)=>{const i=n(78776)(2620,2641,2654);i.addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678),t.exports=i},26294:(t,e,n)=>{const i=n(78776)(12293,12295);i.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12321,12329).addRange(12344,12347).addRange(13312,19903).addRange(19968,40959).addRange(63744,64109).addRange(64112,64217).addRange(94178,94179).addRange(94192,94193).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},38858:(t,e,n)=>{const i=n(78776)();i.addRange(4352,4607).addRange(12334,12335).addRange(12593,12686).addRange(12800,12830).addRange(12896,12926).addRange(43360,43388).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500),t.exports=i},50043:(t,e,n)=>{const i=n(78776)();i.addRange(68864,68903).addRange(68912,68921),t.exports=i},95307:(t,e,n)=>{const i=n(78776)();i.addRange(5920,5940),t.exports=i},20280:(t,e,n)=>{const i=n(78776)();i.addRange(67808,67826).addRange(67828,67829).addRange(67835,67839),t.exports=i},12674:(t,e,n)=>{const i=n(78776)(64318);i.addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64335),t.exports=i},54058:(t,e,n)=>{const i=n(78776)(127488);i.addRange(12353,12438).addRange(12445,12447).addRange(110593,110879).addRange(110928,110930),t.exports=i},70521:(t,e,n)=>{const i=n(78776)();i.addRange(67648,67669).addRange(67671,67679),t.exports=i},21448:(t,e,n)=>{const i=n(78776)(1648,7405,7412,66045,66272,70459);i.addRange(768,879).addRange(1157,1158).addRange(1611,1621).addRange(2385,2388).addRange(6832,6862).addRange(7376,7378).addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8204,8205).addRange(8400,8432).addRange(12330,12333).addRange(12441,12442).addRange(65024,65039).addRange(65056,65069).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(917760,917999),t.exports=i},64086:(t,e,n)=>{const i=n(78776)();i.addRange(68448,68466).addRange(68472,68479),t.exports=i},35772:(t,e,n)=>{const i=n(78776)();i.addRange(68416,68437).addRange(68440,68447),t.exports=i},98272:(t,e,n)=>{const i=n(78776)();i.addRange(43392,43469).addRange(43472,43481).addRange(43486,43487),t.exports=i},52764:(t,e,n)=>{const i=n(78776)(69837);i.addRange(69760,69826),t.exports=i},98276:(t,e,n)=>{const i=n(78776)();i.addRange(3200,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314),t.exports=i},98285:(t,e,n)=>{const i=n(78776)(110592);i.addRange(12449,12538).addRange(12541,12543).addRange(12784,12799).addRange(13008,13054).addRange(13056,13143).addRange(65382,65391).addRange(65393,65437).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110880,110882).addRange(110948,110951),t.exports=i},10821:(t,e,n)=>{const i=n(78776)(43311);i.addRange(43264,43309),t.exports=i},67559:(t,e,n)=>{const i=n(78776)();i.addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184),t.exports=i},48304:(t,e,n)=>{const i=n(78776)(94180);i.addRange(101120,101589),t.exports=i},39834:(t,e,n)=>{const i=n(78776)();i.addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6624,6655),t.exports=i},42593:(t,e,n)=>{const i=n(78776)();i.addRange(70144,70161).addRange(70163,70206),t.exports=i},64415:(t,e,n)=>{const i=n(78776)();i.addRange(70320,70378).addRange(70384,70393),t.exports=i},37740:(t,e,n)=>{const i=n(78776)(3716,3749,3782);i.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807),t.exports=i},46818:(t,e,n)=>{const i=n(78776)(170,186,8305,8319,8498,8526,42963);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,696).addRange(736,740).addRange(7424,7461).addRange(7468,7516).addRange(7522,7525).addRange(7531,7543).addRange(7545,7614).addRange(7680,7935).addRange(8336,8348).addRange(8490,8491).addRange(8544,8584).addRange(11360,11391).addRange(42786,42887).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43007).addRange(43824,43866).addRange(43868,43876).addRange(43878,43881).addRange(64256,64262).addRange(65313,65338).addRange(65345,65370).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(122624,122654),t.exports=i},7647:(t,e,n)=>{const i=n(78776)();i.addRange(7168,7223).addRange(7227,7241).addRange(7245,7247),t.exports=i},92627:(t,e,n)=>{const i=n(78776)(6464);i.addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6479),t.exports=i},16193:(t,e,n)=>{const i=n(78776)();i.addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),t.exports=i},71901:(t,e,n)=>{const i=n(78776)();i.addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786),t.exports=i},25734:(t,e,n)=>{const i=n(78776)(73648);i.addRange(42192,42239),t.exports=i},6450:(t,e,n)=>{const i=n(78776)();i.addRange(66176,66204),t.exports=i},28293:(t,e,n)=>{const i=n(78776)(67903);i.addRange(67872,67897),t.exports=i},48193:(t,e,n)=>{const i=n(78776)();i.addRange(69968,70006),t.exports=i},50865:(t,e,n)=>{const i=n(78776)();i.addRange(73440,73464),t.exports=i},24789:(t,e,n)=>{const i=n(78776)();i.addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455),t.exports=i},9535:(t,e,n)=>{const i=n(78776)(2142);i.addRange(2112,2139),t.exports=i},83061:(t,e,n)=>{const i=n(78776)();i.addRange(68288,68326).addRange(68331,68342),t.exports=i},76528:(t,e,n)=>{const i=n(78776)();i.addRange(72816,72847).addRange(72850,72871).addRange(72873,72886),t.exports=i},9921:(t,e,n)=>{const i=n(78776)(73018);i.addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049),t.exports=i},93378:(t,e,n)=>{const i=n(78776)();i.addRange(93760,93850),t.exports=i},6940:(t,e,n)=>{const i=n(78776)();i.addRange(43744,43766).addRange(43968,44013).addRange(44016,44025),t.exports=i},3897:(t,e,n)=>{const i=n(78776)();i.addRange(124928,125124).addRange(125127,125142),t.exports=i},65999:(t,e,n)=>{const i=n(78776)();i.addRange(68e3,68023).addRange(68028,68047).addRange(68050,68095),t.exports=i},59758:(t,e,n)=>{const i=n(78776)();i.addRange(67968,67999),t.exports=i},65484:(t,e,n)=>{const i=n(78776)();i.addRange(93952,94026).addRange(94031,94087).addRange(94095,94111),t.exports=i},34575:(t,e,n)=>{const i=n(78776)();i.addRange(71168,71236).addRange(71248,71257),t.exports=i},75392:(t,e,n)=>{const i=n(78776)(6148);i.addRange(6144,6145).addRange(6150,6169).addRange(6176,6264).addRange(6272,6314).addRange(71264,71276),t.exports=i},36388:(t,e,n)=>{const i=n(78776)();i.addRange(92736,92766).addRange(92768,92777).addRange(92782,92783),t.exports=i},60556:(t,e,n)=>{const i=n(78776)(70280);i.addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313),t.exports=i},15837:(t,e,n)=>{const i=n(78776)();i.addRange(4096,4255).addRange(43488,43518).addRange(43616,43647),t.exports=i},6820:(t,e,n)=>{const i=n(78776)();i.addRange(67712,67742).addRange(67751,67759),t.exports=i},51892:(t,e,n)=>{const i=n(78776)();i.addRange(72096,72103).addRange(72106,72151).addRange(72154,72164),t.exports=i},32003:(t,e,n)=>{const i=n(78776)();i.addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6623),t.exports=i},15297:(t,e,n)=>{const i=n(78776)();i.addRange(70656,70747).addRange(70749,70753),t.exports=i},17594:(t,e,n)=>{const i=n(78776)();i.addRange(1984,2042).addRange(2045,2047),t.exports=i},7493:(t,e,n)=>{const i=n(78776)(94177);i.addRange(110960,111355),t.exports=i},14406:(t,e,n)=>{const i=n(78776)();i.addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215),t.exports=i},75847:(t,e,n)=>{const i=n(78776)();i.addRange(5760,5788),t.exports=i},88416:(t,e,n)=>{const i=n(78776)();i.addRange(7248,7295),t.exports=i},40115:(t,e,n)=>{const i=n(78776)();i.addRange(68736,68786).addRange(68800,68850).addRange(68858,68863),t.exports=i},29109:(t,e,n)=>{const i=n(78776)();i.addRange(66304,66339).addRange(66349,66351),t.exports=i},96840:(t,e,n)=>{const i=n(78776)();i.addRange(68224,68255),t.exports=i},39291:(t,e,n)=>{const i=n(78776)();i.addRange(66384,66426),t.exports=i},24678:(t,e,n)=>{const i=n(78776)();i.addRange(66464,66499).addRange(66504,66517),t.exports=i},78647:(t,e,n)=>{const i=n(78776)();i.addRange(69376,69415),t.exports=i},70744:(t,e,n)=>{const i=n(78776)();i.addRange(68192,68223),t.exports=i},59527:(t,e,n)=>{const i=n(78776)();i.addRange(68608,68680),t.exports=i},11791:(t,e,n)=>{const i=n(78776)();i.addRange(69488,69513),t.exports=i},23761:(t,e,n)=>{const i=n(78776)();i.addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935),t.exports=i},39384:(t,e,n)=>{const i=n(78776)();i.addRange(66736,66771).addRange(66776,66811),t.exports=i},90237:(t,e,n)=>{const i=n(78776)();i.addRange(66688,66717).addRange(66720,66729),t.exports=i},62976:(t,e,n)=>{const i=n(78776)();i.addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071),t.exports=i},60351:(t,e,n)=>{const i=n(78776)();i.addRange(67680,67711),t.exports=i},19767:(t,e,n)=>{const i=n(78776)();i.addRange(72384,72440),t.exports=i},25712:(t,e,n)=>{const i=n(78776)();i.addRange(43072,43127),t.exports=i},86458:(t,e,n)=>{const i=n(78776)(67871);i.addRange(67840,67867),t.exports=i},74874:(t,e,n)=>{const i=n(78776)();i.addRange(68480,68497).addRange(68505,68508).addRange(68521,68527),t.exports=i},27603:(t,e,n)=>{const i=n(78776)(43359);i.addRange(43312,43347),t.exports=i},84788:(t,e,n)=>{const i=n(78776)();i.addRange(5792,5866).addRange(5870,5880),t.exports=i},45810:(t,e,n)=>{const i=n(78776)();i.addRange(2048,2093).addRange(2096,2110),t.exports=i},37632:(t,e,n)=>{const i=n(78776)();i.addRange(43136,43205).addRange(43214,43225),t.exports=i},15058:(t,e,n)=>{const i=n(78776)();i.addRange(70016,70111),t.exports=i},76250:(t,e,n)=>{const i=n(78776)();i.addRange(66640,66687),t.exports=i},39573:(t,e,n)=>{const i=n(78776)();i.addRange(71040,71093).addRange(71096,71133),t.exports=i},54039:(t,e,n)=>{const i=n(78776)();i.addRange(120832,121483).addRange(121499,121503).addRange(121505,121519),t.exports=i},1611:(t,e,n)=>{const i=n(78776)(3517,3530,3542);i.addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(70113,70132),t.exports=i},34250:(t,e,n)=>{const i=n(78776)();i.addRange(69424,69465),t.exports=i},43065:(t,e,n)=>{const i=n(78776)();i.addRange(69840,69864).addRange(69872,69881),t.exports=i},18135:(t,e,n)=>{const i=n(78776)();i.addRange(72272,72354),t.exports=i},95849:(t,e,n)=>{const i=n(78776)();i.addRange(7040,7103).addRange(7360,7367),t.exports=i},46566:(t,e,n)=>{const i=n(78776)();i.addRange(43008,43052),t.exports=i},7810:(t,e,n)=>{const i=n(78776)();i.addRange(1792,1805).addRange(1807,1866).addRange(1869,1871).addRange(2144,2154),t.exports=i},67833:(t,e,n)=>{const i=n(78776)(5919);i.addRange(5888,5909),t.exports=i},58009:(t,e,n)=>{const i=n(78776)();i.addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003),t.exports=i},1187:(t,e,n)=>{const i=n(78776)();i.addRange(6480,6509).addRange(6512,6516),t.exports=i},40377:(t,e,n)=>{const i=n(78776)();i.addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829),t.exports=i},99e3:(t,e,n)=>{const i=n(78776)();i.addRange(43648,43714).addRange(43739,43743),t.exports=i},72294:(t,e,n)=>{const i=n(78776)();i.addRange(71296,71353).addRange(71360,71369),t.exports=i},98682:(t,e,n)=>{const i=n(78776)(2972,3024,3031,73727);i.addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(73664,73713),t.exports=i},77808:(t,e,n)=>{const i=n(78776)();i.addRange(92784,92862).addRange(92864,92873),t.exports=i},75540:(t,e,n)=>{const i=n(78776)(94176);i.addRange(94208,100343).addRange(100352,101119).addRange(101632,101640),t.exports=i},65084:(t,e,n)=>{const i=n(78776)(3165);i.addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3199),t.exports=i},6867:(t,e,n)=>{const i=n(78776)();i.addRange(1920,1969),t.exports=i},49907:(t,e,n)=>{const i=n(78776)();i.addRange(3585,3642).addRange(3648,3675),t.exports=i},29341:(t,e,n)=>{const i=n(78776)();i.addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4052).addRange(4057,4058),t.exports=i},81261:(t,e,n)=>{const i=n(78776)(11647);i.addRange(11568,11623).addRange(11631,11632),t.exports=i},57954:(t,e,n)=>{const i=n(78776)();i.addRange(70784,70855).addRange(70864,70873),t.exports=i},68196:(t,e,n)=>{const i=n(78776)();i.addRange(123536,123566),t.exports=i},29097:(t,e,n)=>{const i=n(78776)(66463);i.addRange(66432,66461),t.exports=i},5767:(t,e,n)=>{const i=n(78776)();i.addRange(42240,42539),t.exports=i},45785:(t,e,n)=>{const i=n(78776)();i.addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004),t.exports=i},27172:(t,e,n)=>{const i=n(78776)(123647);i.addRange(123584,123641),t.exports=i},17315:(t,e,n)=>{const i=n(78776)(71935);i.addRange(71840,71922),t.exports=i},34961:(t,e,n)=>{const i=n(78776)();i.addRange(69248,69289).addRange(69291,69293).addRange(69296,69297),t.exports=i},90923:(t,e,n)=>{const i=n(78776)();i.addRange(40960,42124).addRange(42128,42182),t.exports=i},92108:(t,e,n)=>{const i=n(78776)();i.addRange(72192,72263),t.exports=i},99614:(t,e,n)=>{const i=n(78776)(1567,1600);i.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279),t.exports=i},24915:(t,e,n)=>{const i=n(78776)();i.addRange(71424,71450).addRange(71453,71467).addRange(71472,71494),t.exports=i},8983:(t,e,n)=>{const i=n(78776)();i.addRange(82944,83526),t.exports=i},75627:(t,e,n)=>{const i=n(78776)(64975,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);i.addRange(1536,1540).addRange(1542,1756).addRange(1758,1791).addRange(1872,1919).addRange(2160,2190).addRange(2192,2193).addRange(2200,2273).addRange(2275,2303).addRange(64336,64450).addRange(64467,64911).addRange(64914,64967).addRange(65008,65023).addRange(65136,65140).addRange(65142,65276).addRange(66272,66299).addRange(69216,69246).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),t.exports=i},13585:(t,e,n)=>{const i=n(78776)();i.addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(64275,64279),t.exports=i},79384:(t,e,n)=>{const i=n(78776)();i.addRange(68352,68405).addRange(68409,68415),t.exports=i},47072:(t,e,n)=>{const i=n(78776)();i.addRange(6912,6988).addRange(6992,7038),t.exports=i},31856:(t,e,n)=>{const i=n(78776)();i.addRange(42656,42743).addRange(92160,92728),t.exports=i},24945:(t,e,n)=>{const i=n(78776)();i.addRange(92880,92909).addRange(92912,92917),t.exports=i},92147:(t,e,n)=>{const i=n(78776)();i.addRange(7104,7155).addRange(7164,7167),t.exports=i},61530:(t,e,n)=>{const i=n(78776)(2482,2519,7376,7378,7384,7393,7402,7405,7410,43249);i.addRange(2385,2386).addRange(2404,2405).addRange(2432,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558).addRange(7381,7382).addRange(7413,7415),t.exports=i},64063:(t,e,n)=>{const i=n(78776)();i.addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812),t.exports=i},29962:(t,e,n)=>{const i=n(78776)(12336,12343,12539);i.addRange(746,747).addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12330,12333).addRange(12549,12591).addRange(12704,12735).addRange(65093,65094).addRange(65377,65381),t.exports=i},61752:(t,e,n)=>{const i=n(78776)(69759);i.addRange(69632,69709).addRange(69714,69749),t.exports=i},28434:(t,e,n)=>{const i=n(78776)();i.addRange(10240,10495),t.exports=i},15148:(t,e,n)=>{const i=n(78776)(43471);i.addRange(6656,6683).addRange(6686,6687),t.exports=i},78881:(t,e,n)=>{const i=n(78776)();i.addRange(5941,5942).addRange(5952,5971),t.exports=i},55254:(t,e,n)=>{const i=n(78776)();i.addRange(5120,5759).addRange(6320,6389).addRange(72368,72383),t.exports=i},79110:(t,e,n)=>{const i=n(78776)();i.addRange(66208,66256),t.exports=i},76550:(t,e,n)=>{const i=n(78776)(66927);i.addRange(66864,66915),t.exports=i},88753:(t,e,n)=>{const i=n(78776)();i.addRange(2534,2543).addRange(4160,4169).addRange(69888,69940).addRange(69942,69959),t.exports=i},98451:(t,e,n)=>{const i=n(78776)();i.addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43615),t.exports=i},80196:(t,e,n)=>{const i=n(78776)();i.addRange(5024,5109).addRange(5112,5117).addRange(43888,43967),t.exports=i},38676:(t,e,n)=>{const i=n(78776)();i.addRange(69552,69579),t.exports=i},46921:(t,e,n)=>{const i=n(78776)(215,247,884,894,901,903,1541,1757,2274,3647,12288,12292,12306,12320,12342,12927,13311,43867,65279,119970,119995,120134,129008,917505);i.addRange(0,64).addRange(91,96).addRange(123,169).addRange(171,185).addRange(187,191).addRange(697,735).addRange(741,745).addRange(748,767).addRange(4053,4056).addRange(5867,5869).addRange(8192,8203).addRange(8206,8238).addRange(8240,8292).addRange(8294,8304).addRange(8308,8318).addRange(8320,8334).addRange(8352,8384).addRange(8448,8485).addRange(8487,8489).addRange(8492,8497).addRange(8499,8525).addRange(8527,8543).addRange(8585,8587).addRange(8592,9254).addRange(9280,9290).addRange(9312,10239).addRange(10496,11123).addRange(11126,11157).addRange(11159,11263).addRange(11776,11842).addRange(11844,11869).addRange(12272,12283).addRange(12872,12895).addRange(12977,12991).addRange(13004,13007).addRange(13169,13178).addRange(13184,13279).addRange(19904,19967).addRange(42760,42785).addRange(42888,42890).addRange(43882,43883).addRange(65040,65049).addRange(65072,65092).addRange(65095,65106).addRange(65108,65126).addRange(65128,65131).addRange(65281,65312).addRange(65339,65344).addRange(65371,65376).addRange(65504,65510).addRange(65512,65518),i.addRange(65529,65533).addRange(65936,65948).addRange(66e3,66044).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119142).addRange(119146,119162).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119520,119539).addRange(119552,119638).addRange(119666,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126065,126132).addRange(126209,126269).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127487).addRange(127489,127490).addRange(127504,127547).addRange(127552,127560).addRange(127584,127589).addRange(127744,128727).addRange(128733,128748).addRange(128752,128764).addRange(128768,128883).addRange(128896,128984),i.addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129201).addRange(129280,129619).addRange(129632,129645).addRange(129648,129652).addRange(129656,129660).addRange(129664,129670).addRange(129680,129708).addRange(129712,129722).addRange(129728,129733).addRange(129744,129753).addRange(129760,129767).addRange(129776,129782).addRange(129792,129938).addRange(129940,129994).addRange(130032,130041).addRange(917536,917631),t.exports=i},44141:(t,e,n)=>{const i=n(78776)();i.addRange(994,1007).addRange(11392,11507).addRange(11513,11519).addRange(66272,66299),t.exports=i},30286:(t,e,n)=>{const i=n(78776)();i.addRange(73728,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075),t.exports=i},73326:(t,e,n)=>{const i=n(78776)(67592,67644,67647);i.addRange(65792,65794).addRange(65799,65843).addRange(65847,65855).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640),t.exports=i},82300:(t,e,n)=>{const i=n(78776)();i.addRange(65792,65793).addRange(77712,77810),t.exports=i},77115:(t,e,n)=>{const i=n(78776)(7467,7544,7672,11843);i.addRange(1024,1327).addRange(7296,7304).addRange(11744,11775).addRange(42560,42655).addRange(65070,65071),t.exports=i},59108:(t,e,n)=>{const i=n(78776)();i.addRange(66560,66639),t.exports=i},59426:(t,e,n)=>{const i=n(78776)(8432);i.addRange(2304,2386).addRange(2389,2431).addRange(7376,7414).addRange(7416,7417).addRange(43056,43065).addRange(43232,43263),t.exports=i},44660:(t,e,n)=>{const i=n(78776)(71945);i.addRange(71936,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025),t.exports=i},41422:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2415).addRange(43056,43065).addRange(71680,71739),t.exports=i},66667:(t,e,n)=>{const i=n(78776)();i.addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113827),t.exports=i},20449:(t,e,n)=>{const i=n(78776)();i.addRange(77824,78894).addRange(78896,78904),t.exports=i},25810:(t,e,n)=>{const i=n(78776)();i.addRange(66816,66855),t.exports=i},83509:(t,e,n)=>{const i=n(78776)();i.addRange(69600,69622),t.exports=i},37837:(t,e,n)=>{const i=n(78776)(4696,4800);i.addRange(4608,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926),t.exports=i},77680:(t,e,n)=>{const i=n(78776)(4295,4301,11559,11565);i.addRange(4256,4293).addRange(4304,4351).addRange(7312,7354).addRange(7357,7359).addRange(11520,11557),t.exports=i},97772:(t,e,n)=>{const i=n(78776)(1156,1159,11843,42607);i.addRange(11264,11359).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),t.exports=i},60674:(t,e,n)=>{const i=n(78776)();i.addRange(66352,66378),t.exports=i},52336:(t,e,n)=>{const i=n(78776)(7376,8432,70480,70487,73683);i.addRange(2385,2386).addRange(2404,2405).addRange(3046,3059).addRange(7378,7379).addRange(7410,7412).addRange(7416,7417).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(73680,73681),t.exports=i},86310:(t,e,n)=>{const i=n(78776)(834,837,895,900,902,908,8025,8027,8029,8486,43877,65952);i.addRange(880,883).addRange(885,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,993).addRange(1008,1023).addRange(7462,7466).addRange(7517,7521).addRange(7526,7530).addRange(7615,7617).addRange(7936,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(65856,65934).addRange(119296,119365),t.exports=i},92436:(t,e,n)=>{const i=n(78776)(2768);i.addRange(2385,2386).addRange(2404,2405).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815).addRange(43056,43065),t.exports=i},20642:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2405).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129),t.exports=i},33831:(t,e,n)=>{const i=n(78776)(2620,2641,2654);i.addRange(2385,2386).addRange(2404,2405).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678).addRange(43056,43065),t.exports=i},16613:(t,e,n)=>{const i=n(78776)(12336,12539,13055);i.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12289,12291).addRange(12293,12305).addRange(12307,12319).addRange(12321,12333).addRange(12343,12351).addRange(12688,12703).addRange(12736,12771).addRange(12832,12871).addRange(12928,12976).addRange(12992,13003).addRange(13144,13168).addRange(13179,13183).addRange(13280,13310).addRange(13312,19903).addRange(19968,40959).addRange(42752,42759).addRange(63744,64109).addRange(64112,64217).addRange(65093,65094).addRange(65377,65381).addRange(94178,94179).addRange(94192,94193).addRange(119648,119665).addRange(127568,127569).addRange(131072,173791).addRange(173824,177976).addRange(177984,178205).addRange(178208,183969).addRange(183984,191456).addRange(194560,195101).addRange(196608,201546),t.exports=i},87001:(t,e,n)=>{const i=n(78776)(12343,12539);i.addRange(4352,4607).addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12334,12336).addRange(12593,12686).addRange(12800,12830).addRange(12896,12926).addRange(43360,43388).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(65093,65094).addRange(65377,65381).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500),t.exports=i},88583:(t,e,n)=>{const i=n(78776)(1548,1563,1567,1600,1748);i.addRange(68864,68903).addRange(68912,68921),t.exports=i},82758:(t,e,n)=>{const i=n(78776)();i.addRange(5920,5942),t.exports=i},66416:(t,e,n)=>{const i=n(78776)();i.addRange(67808,67826).addRange(67828,67829).addRange(67835,67839),t.exports=i},85222:(t,e,n)=>{const i=n(78776)(64318);i.addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64335),t.exports=i},60191:(t,e,n)=>{const i=n(78776)(12343,65392,127488);i.addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12336,12341).addRange(12348,12349).addRange(12353,12438).addRange(12441,12448).addRange(12539,12540).addRange(65093,65094).addRange(65377,65381).addRange(65438,65439).addRange(110593,110879).addRange(110928,110930),t.exports=i},57632:(t,e,n)=>{const i=n(78776)();i.addRange(67648,67669).addRange(67671,67679),t.exports=i},96988:(t,e,n)=>{const i=n(78776)(7673,66045);i.addRange(768,833).addRange(835,836).addRange(838,866).addRange(2387,2388).addRange(6832,6862).addRange(7618,7671).addRange(7675,7679).addRange(8204,8205).addRange(8400,8431).addRange(65024,65039).addRange(65056,65069).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(917760,917999),t.exports=i},52121:(t,e,n)=>{const i=n(78776)();i.addRange(68448,68466).addRange(68472,68479),t.exports=i},82809:(t,e,n)=>{const i=n(78776)();i.addRange(68416,68437).addRange(68440,68447),t.exports=i},55081:(t,e,n)=>{const i=n(78776)();i.addRange(43392,43469).addRange(43471,43481).addRange(43486,43487),t.exports=i},57574:(t,e,n)=>{const i=n(78776)(69837);i.addRange(2406,2415).addRange(43056,43065).addRange(69760,69826),t.exports=i},81868:(t,e,n)=>{const i=n(78776)(7376,7378,7386,7410,7412);i.addRange(2385,2386).addRange(2404,2405).addRange(3200,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3293,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3314).addRange(43056,43061),t.exports=i},10774:(t,e,n)=>{const i=n(78776)(12343,110592);i.addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12336,12341).addRange(12348,12349).addRange(12441,12444).addRange(12448,12543).addRange(12784,12799).addRange(13008,13054).addRange(13056,13143).addRange(65093,65094).addRange(65377,65439).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110880,110882).addRange(110948,110951),t.exports=i},76701:(t,e,n)=>{const i=n(78776)();i.addRange(43264,43311),t.exports=i},81466:(t,e,n)=>{const i=n(78776)();i.addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184),t.exports=i},21325:(t,e,n)=>{const i=n(78776)(94180);i.addRange(101120,101589),t.exports=i},6068:(t,e,n)=>{const i=n(78776)();i.addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6624,6655),t.exports=i},77706:(t,e,n)=>{const i=n(78776)();i.addRange(2790,2799).addRange(43056,43065).addRange(70144,70161).addRange(70163,70206),t.exports=i},54258:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2405).addRange(43056,43065).addRange(70320,70378).addRange(70384,70393),t.exports=i},77149:(t,e,n)=>{const i=n(78776)(3716,3749,3782);i.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3789).addRange(3792,3801).addRange(3804,3807),t.exports=i},38334:(t,e,n)=>{const i=n(78776)(170,186,4347,8239,8305,8319,8432,8498,8526,42963,43310);i.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,696).addRange(736,740).addRange(867,879).addRange(1157,1158).addRange(2385,2386).addRange(7424,7461).addRange(7468,7516).addRange(7522,7525).addRange(7531,7543).addRange(7545,7614).addRange(7680,7935).addRange(8336,8348).addRange(8490,8491).addRange(8544,8584).addRange(11360,11391).addRange(42752,42759).addRange(42786,42887).addRange(42891,42954).addRange(42960,42961).addRange(42965,42969).addRange(42994,43007).addRange(43824,43866).addRange(43868,43876).addRange(43878,43881).addRange(64256,64262).addRange(65313,65338).addRange(65345,65370).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(122624,122654),t.exports=i},12299:(t,e,n)=>{const i=n(78776)();i.addRange(7168,7223).addRange(7227,7241).addRange(7245,7247),t.exports=i},25476:(t,e,n)=>{const i=n(78776)(2405,6464);i.addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6479),t.exports=i},54625:(t,e,n)=>{const i=n(78776)();i.addRange(65799,65843).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),t.exports=i},38810:(t,e,n)=>{const i=n(78776)();i.addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65855),t.exports=i},90845:(t,e,n)=>{const i=n(78776)(73648);i.addRange(42192,42239),t.exports=i},68978:(t,e,n)=>{const i=n(78776)();i.addRange(66176,66204),t.exports=i},67905:(t,e,n)=>{const i=n(78776)(67903);i.addRange(67872,67897),t.exports=i},89576:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2415).addRange(43056,43065).addRange(69968,70006),t.exports=i},3405:(t,e,n)=>{const i=n(78776)();i.addRange(73440,73464),t.exports=i},974:(t,e,n)=>{const i=n(78776)(7386);i.addRange(2385,2386).addRange(2404,2405).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455).addRange(43056,43058),t.exports=i},28940:(t,e,n)=>{const i=n(78776)(1600,2142);i.addRange(2112,2139),t.exports=i},6677:(t,e,n)=>{const i=n(78776)(1600);i.addRange(68288,68326).addRange(68331,68342),t.exports=i},14740:(t,e,n)=>{const i=n(78776)();i.addRange(72816,72847).addRange(72850,72871).addRange(72873,72886),t.exports=i},82278:(t,e,n)=>{const i=n(78776)(73018);i.addRange(2404,2405).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049),t.exports=i},55949:(t,e,n)=>{const i=n(78776)();i.addRange(93760,93850),t.exports=i},13329:(t,e,n)=>{const i=n(78776)();i.addRange(43744,43766).addRange(43968,44013).addRange(44016,44025),t.exports=i},97146:(t,e,n)=>{const i=n(78776)();i.addRange(124928,125124).addRange(125127,125142),t.exports=i},23715:(t,e,n)=>{const i=n(78776)();i.addRange(68e3,68023).addRange(68028,68047).addRange(68050,68095),t.exports=i},43199:(t,e,n)=>{const i=n(78776)();i.addRange(67968,67999),t.exports=i},26499:(t,e,n)=>{const i=n(78776)();i.addRange(93952,94026).addRange(94031,94087).addRange(94095,94111),t.exports=i},36995:(t,e,n)=>{const i=n(78776)();i.addRange(43056,43065).addRange(71168,71236).addRange(71248,71257),t.exports=i},98606:(t,e,n)=>{const i=n(78776)(8239);i.addRange(6144,6169).addRange(6176,6264).addRange(6272,6314).addRange(71264,71276),t.exports=i},11462:(t,e,n)=>{const i=n(78776)();i.addRange(92736,92766).addRange(92768,92777).addRange(92782,92783),t.exports=i},45402:(t,e,n)=>{const i=n(78776)(70280);i.addRange(2662,2671).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313),t.exports=i},76318:(t,e,n)=>{const i=n(78776)(43310);i.addRange(4096,4255).addRange(43488,43518).addRange(43616,43647),t.exports=i},34924:(t,e,n)=>{const i=n(78776)();i.addRange(67712,67742).addRange(67751,67759),t.exports=i},8236:(t,e,n)=>{const i=n(78776)(7401,7410,7418);i.addRange(2404,2405).addRange(3302,3311).addRange(43056,43061).addRange(72096,72103).addRange(72106,72151).addRange(72154,72164),t.exports=i},14575:(t,e,n)=>{const i=n(78776)();i.addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6623),t.exports=i},71314:(t,e,n)=>{const i=n(78776)();i.addRange(70656,70747).addRange(70749,70753),t.exports=i},40577:(t,e,n)=>{const i=n(78776)(1548,1563,1567);i.addRange(1984,2042).addRange(2045,2047).addRange(64830,64831),t.exports=i},44432:(t,e,n)=>{const i=n(78776)(94177);i.addRange(110960,111355),t.exports=i},53612:(t,e,n)=>{const i=n(78776)();i.addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215),t.exports=i},19298:(t,e,n)=>{const i=n(78776)();i.addRange(5760,5788),t.exports=i},55285:(t,e,n)=>{const i=n(78776)();i.addRange(7248,7295),t.exports=i},16737:(t,e,n)=>{const i=n(78776)();i.addRange(68736,68786).addRange(68800,68850).addRange(68858,68863),t.exports=i},73023:(t,e,n)=>{const i=n(78776)();i.addRange(66304,66339).addRange(66349,66351),t.exports=i},35723:(t,e,n)=>{const i=n(78776)();i.addRange(68224,68255),t.exports=i},56370:(t,e,n)=>{const i=n(78776)(1155);i.addRange(66384,66426),t.exports=i},1402:(t,e,n)=>{const i=n(78776)();i.addRange(66464,66499).addRange(66504,66517),t.exports=i},14718:(t,e,n)=>{const i=n(78776)();i.addRange(69376,69415),t.exports=i},40316:(t,e,n)=>{const i=n(78776)();i.addRange(68192,68223),t.exports=i},5462:(t,e,n)=>{const i=n(78776)();i.addRange(68608,68680),t.exports=i},2280:(t,e,n)=>{const i=n(78776)(1600,68338);i.addRange(69488,69513),t.exports=i},29434:(t,e,n)=>{const i=n(78776)(7386,7410);i.addRange(2385,2386).addRange(2404,2405).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935),t.exports=i},77045:(t,e,n)=>{const i=n(78776)();i.addRange(66736,66771).addRange(66776,66811),t.exports=i},82301:(t,e,n)=>{const i=n(78776)();i.addRange(66688,66717).addRange(66720,66729),t.exports=i},84766:(t,e,n)=>{const i=n(78776)();i.addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071),t.exports=i},72685:(t,e,n)=>{const i=n(78776)();i.addRange(67680,67711),t.exports=i},34107:(t,e,n)=>{const i=n(78776)();i.addRange(72384,72440),t.exports=i},66506:(t,e,n)=>{const i=n(78776)(6149);i.addRange(6146,6147).addRange(43072,43127),t.exports=i},42186:(t,e,n)=>{const i=n(78776)(67871);i.addRange(67840,67867),t.exports=i},55507:(t,e,n)=>{const i=n(78776)(1600);i.addRange(68480,68497).addRange(68505,68508).addRange(68521,68527),t.exports=i},35435:(t,e,n)=>{const i=n(78776)(43359);i.addRange(43312,43347),t.exports=i},76355:(t,e,n)=>{const i=n(78776)();i.addRange(5792,5866).addRange(5870,5880),t.exports=i},1509:(t,e,n)=>{const i=n(78776)();i.addRange(2048,2093).addRange(2096,2110),t.exports=i},23386:(t,e,n)=>{const i=n(78776)();i.addRange(43136,43205).addRange(43214,43225),t.exports=i},86116:(t,e,n)=>{const i=n(78776)(2385,7383,7385,7392);i.addRange(7388,7389).addRange(70016,70111),t.exports=i},51826:(t,e,n)=>{const i=n(78776)();i.addRange(66640,66687),t.exports=i},22026:(t,e,n)=>{const i=n(78776)();i.addRange(71040,71093).addRange(71096,71133),t.exports=i},96007:(t,e,n)=>{const i=n(78776)();i.addRange(120832,121483).addRange(121499,121503).addRange(121505,121519),t.exports=i},51104:(t,e,n)=>{const i=n(78776)(3517,3530,3542);i.addRange(2404,2405).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(70113,70132),t.exports=i},82401:(t,e,n)=>{const i=n(78776)(1600);i.addRange(69424,69465),t.exports=i},44399:(t,e,n)=>{const i=n(78776)();i.addRange(69840,69864).addRange(69872,69881),t.exports=i},37415:(t,e,n)=>{const i=n(78776)();i.addRange(72272,72354),t.exports=i},3894:(t,e,n)=>{const i=n(78776)();i.addRange(7040,7103).addRange(7360,7367),t.exports=i},5419:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2405).addRange(2534,2543).addRange(43008,43052),t.exports=i},21038:(t,e,n)=>{const i=n(78776)(1548,1567,1600,1648,7672,7674);i.addRange(1563,1564).addRange(1611,1621).addRange(1792,1805).addRange(1807,1866).addRange(1869,1871).addRange(2144,2154),t.exports=i},1744:(t,e,n)=>{const i=n(78776)(5919);i.addRange(5888,5909).addRange(5941,5942),t.exports=i},54217:(t,e,n)=>{const i=n(78776)();i.addRange(5941,5942).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003),t.exports=i},63153:(t,e,n)=>{const i=n(78776)();i.addRange(4160,4169).addRange(6480,6509).addRange(6512,6516),t.exports=i},4926:(t,e,n)=>{const i=n(78776)();i.addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829),t.exports=i},39311:(t,e,n)=>{const i=n(78776)();i.addRange(43648,43714).addRange(43739,43743),t.exports=i},55970:(t,e,n)=>{const i=n(78776)();i.addRange(2404,2405).addRange(43056,43065).addRange(71296,71353).addRange(71360,71369),t.exports=i},80882:(t,e,n)=>{const i=n(78776)(2972,3024,3031,7386,43251,70401,70403,73727);i.addRange(2385,2386).addRange(2404,2405).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(70459,70460).addRange(73664,73713),t.exports=i},92138:(t,e,n)=>{const i=n(78776)();i.addRange(92784,92862).addRange(92864,92873),t.exports=i},46776:(t,e,n)=>{const i=n(78776)(94176);i.addRange(94208,100343).addRange(100352,101119).addRange(101632,101640),t.exports=i},40444:(t,e,n)=>{const i=n(78776)(3165,7386,7410);i.addRange(2385,2386).addRange(2404,2405).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3168,3171).addRange(3174,3183).addRange(3191,3199),t.exports=i},23431:(t,e,n)=>{const i=n(78776)(1548,1567,65010,65021);i.addRange(1563,1564).addRange(1632,1641).addRange(1920,1969),t.exports=i},94846:(t,e,n)=>{const i=n(78776)();i.addRange(3585,3642).addRange(3648,3675),t.exports=i},137:(t,e,n)=>{const i=n(78776)();i.addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4052).addRange(4057,4058),t.exports=i},67065:(t,e,n)=>{const i=n(78776)(11647);i.addRange(11568,11623).addRange(11631,11632),t.exports=i},98082:(t,e,n)=>{const i=n(78776)(7410);i.addRange(2385,2386).addRange(2404,2405).addRange(43056,43065).addRange(70784,70855).addRange(70864,70873),t.exports=i},6715:(t,e,n)=>{const i=n(78776)();i.addRange(123536,123566),t.exports=i},29213:(t,e,n)=>{const i=n(78776)(66463);i.addRange(66432,66461),t.exports=i},85388:(t,e,n)=>{const i=n(78776)();i.addRange(42240,42539),t.exports=i},97706:(t,e,n)=>{const i=n(78776)();i.addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004),t.exports=i},68659:(t,e,n)=>{const i=n(78776)(123647);i.addRange(123584,123641),t.exports=i},27900:(t,e,n)=>{const i=n(78776)(71935);i.addRange(71840,71922),t.exports=i},8051:(t,e,n)=>{const i=n(78776)(1548,1563,1567);i.addRange(1632,1641).addRange(69248,69289).addRange(69291,69293).addRange(69296,69297),t.exports=i},99799:(t,e,n)=>{const i=n(78776)(12539);i.addRange(12289,12290).addRange(12296,12305).addRange(12308,12315).addRange(40960,42124).addRange(42128,42182).addRange(65377,65381),t.exports=i},25904:(t,e,n)=>{const i=n(78776)();i.addRange(72192,72263),t.exports=i},94274:t=>{t.exports=new Map([["General_Category",["Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Number","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Symbol","Titlecase_Letter","Unassigned","Uppercase_Letter"]],["Script",["Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Chorasmian","Common","Coptic","Cuneiform","Cypriot","Cypro_Minoan","Cyrillic","Deseret","Devanagari","Dives_Akuru","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Elymaic","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khitan_Small_Script","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Masaram_Gondi","Medefaidrin","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","Nandinagari","New_Tai_Lue","Newa","Nko","Nushu","Nyiakeng_Puachue_Hmong","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Old_Uyghur","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangsa","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Toto","Ugaritic","Vai","Vithkuqi","Wancho","Warang_Citi","Yezidi","Yi","Zanabazar_Square"]],["Script_Extensions",["Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Chorasmian","Common","Coptic","Cuneiform","Cypriot","Cypro_Minoan","Cyrillic","Deseret","Devanagari","Dives_Akuru","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Elymaic","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khitan_Small_Script","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Masaram_Gondi","Medefaidrin","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","Nandinagari","New_Tai_Lue","Newa","Nko","Nushu","Nyiakeng_Puachue_Hmong","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Old_Uyghur","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangsa","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Toto","Ugaritic","Vai","Vithkuqi","Wancho","Warang_Citi","Yezidi","Yi","Zanabazar_Square"]],["Binary_Property",["ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"]]])},47993:t=>{t.exports="14.0.0"},78776:function(t,e,n){var i;t=n.nmd(t),function(a){var r=e,o=(t&&t.exports,"object"==typeof n.g&&n.g);o.global!==o&&o.window;var s="A range\u2019s `stop` value must be greater than or equal to the `start` value.",c="Invalid code point value. Code points range from U+000000 to U+10FFFF.",l=55296,u=56319,d=56320,h=57343,f=/\\x00([^0123456789]|$)/g,g={},p=g.hasOwnProperty,b=function(t,e){for(var n=-1,i=t.length;++n<i;)e(t[n],n)},m=g.toString,y=function(t){return"[object Array]"==m.call(t)},v=function(t){return"number"==typeof t||"[object Number]"==m.call(t)},w=function(t,e){var n=String(t);return n.length<e?("0000"+n).slice(-e):n},x=function(t){return Number(t).toString(16).toUpperCase()},R=[].slice,_=function(t,e){for(var n,i,a=0,r=t.length;a<r;){if(n=t[a],i=t[a+1],e>=n&&e<i)return e==n?i==n+1?(t.splice(a,2),t):(t[a]=e+1,t):e==i-1?(t[a+1]=e,t):(t.splice(a,2,n,e,e+1,i),t);a+=2}return t},k=function(t,e,n){if(n<e)throw Error(s);for(var i,a,r=0;r<t.length;){if(i=t[r],a=t[r+1]-1,i>n)return t;if(e<=i&&n>=a)t.splice(r,2);else{if(e>=i&&n<a)return e==i?(t[r]=n+1,t[r+1]=a+1,t):(t.splice(r,2,i,e,n+1,a+1),t);if(e>=i&&e<=a)t[r+1]=e;else if(n>=i&&n<=a)return t[r]=n+1,t;r+=2}}return t},E=function(t,e){var n,i,a=0,r=null,o=t.length;if(e<0||e>1114111)throw RangeError(c);for(;a<o;){if(n=t[a],i=t[a+1],e>=n&&e<i)return t;if(e==n-1)return t[a]=e,t;if(n>e)return t.splice(null!=r?r+2:0,0,e,e+1),t;if(e==i)return e+1==t[a+2]?(t.splice(a,4,n,t[a+3]),t):(t[a+1]=e+1,t);r=a,a+=2}return t.push(e,e+1),t},C=function(t,e){for(var n,i,a=0,r=t.slice(),o=e.length;a<o;)r=(n=e[a])==(i=e[a+1]-1)?E(r,n):T(r,n,i),a+=2;return r},S=function(t,e){for(var n,i,a=0,r=t.slice(),o=e.length;a<o;)r=(n=e[a])==(i=e[a+1]-1)?_(r,n):k(r,n,i),a+=2;return r},T=function(t,e,n){if(n<e)throw Error(s);if(e<0||e>1114111||n<0||n>1114111)throw RangeError(c);for(var i,a,r=0,o=!1,l=t.length;r<l;){if(i=t[r],a=t[r+1],o){if(i==n+1)return t.splice(r-1,2),t;if(i>n)return t;i>=e&&i<=n&&(a>e&&a-1<=n?(t.splice(r,2),r-=2):(t.splice(r-1,2),r-=2))}else{if(i==n+1||i==n)return t[r]=e,t;if(i>n)return t.splice(r,0,e,n+1),t;if(e>=i&&e<a&&n+1<=a)return t;e>=i&&e<a||a==e?(t[r+1]=n+1,o=!0):e<=i&&n+1>=a&&(t[r]=e,t[r+1]=n+1,o=!0)}r+=2}return o||t.push(e,n+1),t},A=function(t,e){var n=0,i=t.length,a=t[n],r=t[i-1];if(i>=2&&(e<a||e>r))return!1;for(;n<i;){if(a=t[n],r=t[n+1],e>=a&&e<r)return!0;n+=2}return!1},D=function(t){return!t.length},I=function(t){return 2==t.length&&t[0]+1==t[1]},L=function(t){for(var e,n,i=0,a=[],r=t.length;i<r;){for(e=t[i],n=t[i+1];e<n;)a.push(e),++e;i+=2}return a},O=Math.floor,M=function(t){return parseInt(O((t-65536)/1024)+l,10)},N=function(t){return parseInt((t-65536)%1024+d,10)},B=String.fromCharCode,P=function(t){return 9==t?"\\t":10==t?"\\n":12==t?"\\f":13==t?"\\r":45==t?"\\x2D":92==t?"\\\\":36==t||t>=40&&t<=43||46==t||47==t||63==t||t>=91&&t<=94||t>=123&&t<=125?"\\"+B(t):t>=32&&t<=126?B(t):t<=255?"\\x"+w(x(t),2):"\\u"+w(x(t),4)},F=function(t){return t<=65535?P(t):"\\u{"+t.toString(16).toUpperCase()+"}"},j=function(t){var e,n=t.length,i=t.charCodeAt(0);return i>=l&&i<=u&&n>1?(e=t.charCodeAt(1),1024*(i-l)+e-d+65536):i},$=function(t){var e,n,i="",a=0,r=t.length;if(I(t))return P(t[0]);for(;a<r;)i+=(e=t[a])==(n=t[a+1]-1)?P(e):e+1==n?P(e)+P(n):P(e)+"-"+P(n),a+=2;return"["+i+"]"},z=function(t){if(1==t.length)return t;for(var e=-1,n=-1;++e<t.length;){var i=t[e],a=i[1],r=a[0],o=a[1];for(n=e;++n<t.length;){var s=t[n],c=s[1],l=c[0],u=c[1];r==l&&o==u&&2===c.length&&(I(s[0])?i[0]=E(i[0],s[0][0]):i[0]=T(i[0],s[0][0],s[0][1]-1),t.splice(n,1),--n)}}return t},H=function(t){if(!t.length)return[];for(var e,n,i,a,r,o,s=0,c=[],l=t.length;s<l;){e=t[s],n=t[s+1]-1,i=M(e),a=N(e),r=M(n);var u=(o=N(n))==h,f=!1;i==r||a==d&&u?(c.push([[i,r+1],[a,o+1]]),f=!0):c.push([[i,i+1],[a,57344]]),!f&&i+1<r&&(u?(c.push([[i+1,r+1],[d,o+1]]),f=!0):c.push([[i+1,r],[d,57344]])),f||c.push([[r,r+1],[d,o+1]]),s+=2}return function(t){for(var e,n,i,a,r,o,s=[],c=[],l=!1,u=-1,d=t.length;++u<d;)if(e=t[u],n=t[u+1]){for(i=e[0],a=e[1],r=n[0],o=n[1],c=a;r&&i[0]==r[0]&&i[1]==r[1];)c=I(o)?E(c,o[0]):T(c,o[0],o[1]-1),i=(e=t[++u])[0],a=e[1],r=(n=t[u+1])&&n[0],o=n&&n[1],l=!0;s.push([i,l?c:a]),l=!1}else s.push(e);return z(s)}(c)},U=function(t,e,n){if(n)return function(t){var e,n,i="",a=0,r=t.length;if(I(t))return F(t[0]);for(;a<r;)i+=(e=t[a])==(n=t[a+1]-1)?F(e):e+1==n?F(e)+F(n):F(e)+"-"+F(n),a+=2;return"["+i+"]"}(t);var i=[],a=function(t){for(var e,n,i=[],a=[],r=[],o=[],s=0,c=t.length;s<c;)e=t[s],n=t[s+1]-1,e<l?(n<l&&r.push(e,n+1),n>=l&&n<=u&&(r.push(e,l),i.push(l,n+1)),n>=d&&n<=h&&(r.push(e,l),i.push(l,56320),a.push(d,n+1)),n>h&&(r.push(e,l),i.push(l,56320),a.push(d,57344),n<=65535?r.push(57344,n+1):(r.push(57344,65536),o.push(65536,n+1)))):e>=l&&e<=u?(n>=l&&n<=u&&i.push(e,n+1),n>=d&&n<=h&&(i.push(e,56320),a.push(d,n+1)),n>h&&(i.push(e,56320),a.push(d,57344),n<=65535?r.push(57344,n+1):(r.push(57344,65536),o.push(65536,n+1)))):e>=d&&e<=h?(n>=d&&n<=h&&a.push(e,n+1),n>h&&(a.push(e,57344),n<=65535?r.push(57344,n+1):(r.push(57344,65536),o.push(65536,n+1)))):e>h&&e<=65535?n<=65535?r.push(e,n+1):(r.push(e,65536),o.push(65536,n+1)):o.push(e,n+1),s+=2;return{loneHighSurrogates:i,loneLowSurrogates:a,bmp:r,astral:o}}(t),r=a.loneHighSurrogates,o=a.loneLowSurrogates,s=a.bmp,c=a.astral,f=!D(r),g=!D(o),p=H(c);return e&&(s=C(s,r),f=!1,s=C(s,o),g=!1),D(s)||i.push($(s)),p.length&&i.push(function(t){var e=[];return b(t,(function(t){var n=t[0],i=t[1];e.push($(n)+$(i))})),e.join("|")}(p)),f&&i.push($(r)+"(?![\\uDC00-\\uDFFF])"),g&&i.push("(?:[^\\uD800-\\uDBFF]|^)"+$(o)),i.join("|")},V=function(t){return arguments.length>1&&(t=R.call(arguments)),this instanceof V?(this.data=[],t?this.add(t):this):(new V).add(t)};V.version="1.4.2";var q=V.prototype;!function(t,e){var n;for(n in e)p.call(e,n)&&(t[n]=e[n])}(q,{add:function(t){var e=this;return null==t?e:t instanceof V?(e.data=C(e.data,t.data),e):(arguments.length>1&&(t=R.call(arguments)),y(t)?(b(t,(function(t){e.add(t)})),e):(e.data=E(e.data,v(t)?t:j(t)),e))},remove:function(t){var e=this;return null==t?e:t instanceof V?(e.data=S(e.data,t.data),e):(arguments.length>1&&(t=R.call(arguments)),y(t)?(b(t,(function(t){e.remove(t)})),e):(e.data=_(e.data,v(t)?t:j(t)),e))},addRange:function(t,e){var n=this;return n.data=T(n.data,v(t)?t:j(t),v(e)?e:j(e)),n},removeRange:function(t,e){var n=this,i=v(t)?t:j(t),a=v(e)?e:j(e);return n.data=k(n.data,i,a),n},intersection:function(t){var e=this,n=t instanceof V?L(t.data):t;return e.data=function(t,e){for(var n,i=0,a=e.length,r=[];i<a;)n=e[i],A(t,n)&&r.push(n),++i;return function(t){for(var e,n=-1,i=t.length,a=i-1,r=[],o=!0,s=0;++n<i;)if(e=t[n],o)r.push(e),s=e,o=!1;else if(e==s+1){if(n!=a){s=e;continue}o=!0,r.push(e+1)}else r.push(s+1,e),s=e;return o||r.push(e+1),r}(r)}(e.data,n),e},contains:function(t){return A(this.data,v(t)?t:j(t))},clone:function(){var t=new V;return t.data=this.data.slice(0),t},toString:function(t){var e=U(this.data,!!t&&t.bmpOnly,!!t&&t.hasUnicodeFlag);return e?e.replace(f,"\\0$1"):"[]"},toRegExp:function(t){var e=this.toString(t&&-1!=t.indexOf("u")?{hasUnicodeFlag:!0}:null);return RegExp(e,t||"")},valueOf:function(){return L(this.data)}}),q.toArray=q.valueOf,void 0===(i=function(){return V}.call(e,n,e,t))||(t.exports=i)}()},98957:(t,e,n)=>{"use strict";const i=n(78776);e.REGULAR=new Map([["d",i().addRange(48,57)],["D",i().addRange(0,47).addRange(58,65535)],["s",i(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",i().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,65535)],["w",i(95).addRange(48,57).addRange(65,90).addRange(97,122)],["W",i(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,65535)]]),e.UNICODE=new Map([["d",i().addRange(48,57)],["D",i().addRange(0,47).addRange(58,1114111)],["s",i(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",i().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111)],["w",i(95).addRange(48,57).addRange(65,90).addRange(97,122)],["W",i(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)]]),e.UNICODE_IGNORE_CASE=new Map([["d",i().addRange(48,57)],["D",i().addRange(0,47).addRange(58,1114111)],["s",i(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",i().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111)],["w",i(95,383,8490).addRange(48,57).addRange(65,90).addRange(97,122)],["W",i(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,382).addRange(384,8489).addRange(8491,1114111)]])},61818:t=>{t.exports=new Map([[75,8490],[83,383],[107,8490],[115,383],[181,924],[197,8491],[223,7838],[229,8491],[383,83],[452,453],[453,452],[455,456],[456,455],[458,459],[459,458],[497,498],[498,497],[837,8126],[914,976],[917,1013],[920,1012],[921,8126],[922,1008],[924,181],[928,982],[929,1009],[931,962],[934,981],[937,8486],[952,1012],[962,931],[969,8486],[976,914],[977,1012],[981,934],[982,928],[1008,922],[1009,929],[1012,[920,977,952]],[1013,917],[1042,7296],[1044,7297],[1054,7298],[1057,7299],[1058,7301],[1066,7302],[1122,7303],[7296,1042],[7297,1044],[7298,1054],[7299,1057],[7300,7301],[7301,[1058,7300]],[7302,1066],[7303,1122],[7304,42570],[7776,7835],[7835,7776],[7838,223],[8064,8072],[8065,8073],[8066,8074],[8067,8075],[8068,8076],[8069,8077],[8070,8078],[8071,8079],[8072,8064],[8073,8065],[8074,8066],[8075,8067],[8076,8068],[8077,8069],[8078,8070],[8079,8071],[8080,8088],[8081,8089],[8082,8090],[8083,8091],[8084,8092],[8085,8093],[8086,8094],[8087,8095],[8088,8080],[8089,8081],[8090,8082],[8091,8083],[8092,8084],[8093,8085],[8094,8086],[8095,8087],[8096,8104],[8097,8105],[8098,8106],[8099,8107],[8100,8108],[8101,8109],[8102,8110],[8103,8111],[8104,8096],[8105,8097],[8106,8098],[8107,8099],[8108,8100],[8109,8101],[8110,8102],[8111,8103],[8115,8124],[8124,8115],[8126,[837,921]],[8131,8140],[8140,8131],[8179,8188],[8188,8179],[8486,[937,969]],[8490,75],[8491,[197,229]],[11311,11359],[11359,11311],[42570,7304],[42944,42945],[42945,42944],[42960,42961],[42961,42960],[42966,42967],[42967,42966],[42968,42969],[42969,42968],[66560,66600],[66561,66601],[66562,66602],[66563,66603],[66564,66604],[66565,66605],[66566,66606],[66567,66607],[66568,66608],[66569,66609],[66570,66610],[66571,66611],[66572,66612],[66573,66613],[66574,66614],[66575,66615],[66576,66616],[66577,66617],[66578,66618],[66579,66619],[66580,66620],[66581,66621],[66582,66622],[66583,66623],[66584,66624],[66585,66625],[66586,66626],[66587,66627],[66588,66628],[66589,66629],[66590,66630],[66591,66631],[66592,66632],[66593,66633],[66594,66634],[66595,66635],[66596,66636],[66597,66637],[66598,66638],[66599,66639],[66600,66560],[66601,66561],[66602,66562],[66603,66563],[66604,66564],[66605,66565],[66606,66566],[66607,66567],[66608,66568],[66609,66569],[66610,66570],[66611,66571],[66612,66572],[66613,66573],[66614,66574],[66615,66575],[66616,66576],[66617,66577],[66618,66578],[66619,66579],[66620,66580],[66621,66581],[66622,66582],[66623,66583],[66624,66584],[66625,66585],[66626,66586],[66627,66587],[66628,66588],[66629,66589],[66630,66590],[66631,66591],[66632,66592],[66633,66593],[66634,66594],[66635,66595],[66636,66596],[66637,66597],[66638,66598],[66639,66599],[66736,66776],[66737,66777],[66738,66778],[66739,66779],[66740,66780],[66741,66781],[66742,66782],[66743,66783],[66744,66784],[66745,66785],[66746,66786],[66747,66787],[66748,66788],[66749,66789],[66750,66790],[66751,66791],[66752,66792],[66753,66793],[66754,66794],[66755,66795],[66756,66796],[66757,66797],[66758,66798],[66759,66799],[66760,66800],[66761,66801],[66762,66802],[66763,66803],[66764,66804],[66765,66805],[66766,66806],[66767,66807],[66768,66808],[66769,66809],[66770,66810],[66771,66811],[66776,66736],[66777,66737],[66778,66738],[66779,66739],[66780,66740],[66781,66741],[66782,66742],[66783,66743],[66784,66744],[66785,66745],[66786,66746],[66787,66747],[66788,66748],[66789,66749],[66790,66750],[66791,66751],[66792,66752],[66793,66753],[66794,66754],[66795,66755],[66796,66756],[66797,66757],[66798,66758],[66799,66759],[66800,66760],[66801,66761],[66802,66762],[66803,66763],[66804,66764],[66805,66765],[66806,66766],[66807,66767],[66808,66768],[66809,66769],[66810,66770],[66811,66771],[66928,66967],[66929,66968],[66930,66969],[66931,66970],[66932,66971],[66933,66972],[66934,66973],[66935,66974],[66936,66975],[66937,66976],[66938,66977],[66940,66979],[66941,66980],[66942,66981],[66943,66982],[66944,66983],[66945,66984],[66946,66985],[66947,66986],[66948,66987],[66949,66988],[66950,66989],[66951,66990],[66952,66991],[66953,66992],[66954,66993],[66956,66995],[66957,66996],[66958,66997],[66959,66998],[66960,66999],[66961,67e3],[66962,67001],[66964,67003],[66965,67004],[66967,66928],[66968,66929],[66969,66930],[66970,66931],[66971,66932],[66972,66933],[66973,66934],[66974,66935],[66975,66936],[66976,66937],[66977,66938],[66979,66940],[66980,66941],[66981,66942],[66982,66943],[66983,66944],[66984,66945],[66985,66946],[66986,66947],[66987,66948],[66988,66949],[66989,66950],[66990,66951],[66991,66952],[66992,66953],[66993,66954],[66995,66956],[66996,66957],[66997,66958],[66998,66959],[66999,66960],[67e3,66961],[67001,66962],[67003,66964],[67004,66965],[68736,68800],[68737,68801],[68738,68802],[68739,68803],[68740,68804],[68741,68805],[68742,68806],[68743,68807],[68744,68808],[68745,68809],[68746,68810],[68747,68811],[68748,68812],[68749,68813],[68750,68814],[68751,68815],[68752,68816],[68753,68817],[68754,68818],[68755,68819],[68756,68820],[68757,68821],[68758,68822],[68759,68823],[68760,68824],[68761,68825],[68762,68826],[68763,68827],[68764,68828],[68765,68829],[68766,68830],[68767,68831],[68768,68832],[68769,68833],[68770,68834],[68771,68835],[68772,68836],[68773,68837],[68774,68838],[68775,68839],[68776,68840],[68777,68841],[68778,68842],[68779,68843],[68780,68844],[68781,68845],[68782,68846],[68783,68847],[68784,68848],[68785,68849],[68786,68850],[68800,68736],[68801,68737],[68802,68738],[68803,68739],[68804,68740],[68805,68741],[68806,68742],[68807,68743],[68808,68744],[68809,68745],[68810,68746],[68811,68747],[68812,68748],[68813,68749],[68814,68750],[68815,68751],[68816,68752],[68817,68753],[68818,68754],[68819,68755],[68820,68756],[68821,68757],[68822,68758],[68823,68759],[68824,68760],[68825,68761],[68826,68762],[68827,68763],[68828,68764],[68829,68765],[68830,68766],[68831,68767],[68832,68768],[68833,68769],[68834,68770],[68835,68771],[68836,68772],[68837,68773],[68838,68774],[68839,68775],[68840,68776],[68841,68777],[68842,68778],[68843,68779],[68844,68780],[68845,68781],[68846,68782],[68847,68783],[68848,68784],[68849,68785],[68850,68786],[71840,71872],[71841,71873],[71842,71874],[71843,71875],[71844,71876],[71845,71877],[71846,71878],[71847,71879],[71848,71880],[71849,71881],[71850,71882],[71851,71883],[71852,71884],[71853,71885],[71854,71886],[71855,71887],[71856,71888],[71857,71889],[71858,71890],[71859,71891],[71860,71892],[71861,71893],[71862,71894],[71863,71895],[71864,71896],[71865,71897],[71866,71898],[71867,71899],[71868,71900],[71869,71901],[71870,71902],[71871,71903],[71872,71840],[71873,71841],[71874,71842],[71875,71843],[71876,71844],[71877,71845],[71878,71846],[71879,71847],[71880,71848],[71881,71849],[71882,71850],[71883,71851],[71884,71852],[71885,71853],[71886,71854],[71887,71855],[71888,71856],[71889,71857],[71890,71858],[71891,71859],[71892,71860],[71893,71861],[71894,71862],[71895,71863],[71896,71864],[71897,71865],[71898,71866],[71899,71867],[71900,71868],[71901,71869],[71902,71870],[71903,71871],[93760,93792],[93761,93793],[93762,93794],[93763,93795],[93764,93796],[93765,93797],[93766,93798],[93767,93799],[93768,93800],[93769,93801],[93770,93802],[93771,93803],[93772,93804],[93773,93805],[93774,93806],[93775,93807],[93776,93808],[93777,93809],[93778,93810],[93779,93811],[93780,93812],[93781,93813],[93782,93814],[93783,93815],[93784,93816],[93785,93817],[93786,93818],[93787,93819],[93788,93820],[93789,93821],[93790,93822],[93791,93823],[93792,93760],[93793,93761],[93794,93762],[93795,93763],[93796,93764],[93797,93765],[93798,93766],[93799,93767],[93800,93768],[93801,93769],[93802,93770],[93803,93771],[93804,93772],[93805,93773],[93806,93774],[93807,93775],[93808,93776],[93809,93777],[93810,93778],[93811,93779],[93812,93780],[93813,93781],[93814,93782],[93815,93783],[93816,93784],[93817,93785],[93818,93786],[93819,93787],[93820,93788],[93821,93789],[93822,93790],[93823,93791],[125184,125218],[125185,125219],[125186,125220],[125187,125221],[125188,125222],[125189,125223],[125190,125224],[125191,125225],[125192,125226],[125193,125227],[125194,125228],[125195,125229],[125196,125230],[125197,125231],[125198,125232],[125199,125233],[125200,125234],[125201,125235],[125202,125236],[125203,125237],[125204,125238],[125205,125239],[125206,125240],[125207,125241],[125208,125242],[125209,125243],[125210,125244],[125211,125245],[125212,125246],[125213,125247],[125214,125248],[125215,125249],[125216,125250],[125217,125251],[125218,125184],[125219,125185],[125220,125186],[125221,125187],[125222,125188],[125223,125189],[125224,125190],[125225,125191],[125226,125192],[125227,125193],[125228,125194],[125229,125195],[125230,125196],[125231,125197],[125232,125198],[125233,125199],[125234,125200],[125235,125201],[125236,125202],[125237,125203],[125238,125204],[125239,125205],[125240,125206],[125241,125207],[125242,125208],[125243,125209],[125244,125210],[125245,125211],[125246,125212],[125247,125213],[125248,125214],[125249,125215],[125250,125216],[125251,125217]])},11890:(t,e,n)=>{"use strict";const i=n(23161).generate,a=n(89077).parse,r=n(78776),o=n(48710),s=n(73276),c=n(61818),l=n(98957),u=r().addRange(0,1114111),d=(r().addRange(0,65535),u.clone().remove(10,13,8232,8233)),h=(t,e,n)=>e?n?l.UNICODE_IGNORE_CASE.get(t):l.UNICODE.get(t):l.REGULAR.get(t),f=(t,e)=>{const i=e?`${t}/${e}`:`Binary_Property/${t}`;try{return n(7771)(`./${i}.js`)}catch(a){throw new Error(`Failed to recognize value \`${e}\` for property \`${t}\`.`)}},g=(t,e)=>{const n=t.split("="),i=n[0];let a;if(1==n.length)a=(t=>{try{const e="General_Category",n=s(e,t);return f(e,n)}catch(n){}const e=o(t);return f(e)})(i);else{const t=o(i),e=s(t,n[1]);a=f(t,e)}return e?u.clone().remove(a):a.clone()};r.prototype.iuAddRange=function(t,e){const n=this;do{const e=m(t);e&&n.add(e)}while(++t<=e);return n};const p=(t,e)=>{let n=a(e,w.useUnicodeFlag?"u":"");switch(n.type){case"characterClass":case"group":case"value":break;default:n=b(n,e)}Object.assign(t,n)},b=(t,e)=>({type:"group",behavior:"ignore",body:[t],raw:`(?:${e})`}),m=t=>c.get(t)||!1,y=(t,e)=>{delete t.name,t.matchIndex=e},v=(t,e,n)=>{switch(t.type){case"dot":if(w.useDotAllFlag)break;w.unicode?p(t,(i=w.dotAll,i?u:d).toString(e)):w.dotAll&&p(t,"[\\s\\S]");break;case"characterClass":t=((t,e)=>{const n=r();for(const i of t.body)switch(i.type){case"value":if(n.add(i.codePoint),w.ignoreCase&&w.unicode&&!w.useUnicodeFlag){const t=m(i.codePoint);t&&n.add(t)}break;case"characterClassRange":const t=i.min.codePoint,e=i.max.codePoint;n.addRange(t,e),w.ignoreCase&&w.unicode&&!w.useUnicodeFlag&&n.iuAddRange(t,e);break;case"characterClassEscape":n.add(h(i.value,w.unicode,w.ignoreCase));break;case"unicodePropertyEscape":n.add(g(i.value,i.negative));break;default:throw new Error(`Unknown term type: ${i.type}`)}return t.negative?p(t,`(?!${n.toString(e)})[\\s\\S]`):p(t,n.toString(e)),t})(t,e);break;case"unicodePropertyEscape":w.unicodePropertyEscape&&p(t,g(t.value,t.negative).toString(e));break;case"characterClassEscape":p(t,h(t.value,w.unicode,w.ignoreCase).toString(e));break;case"group":if("normal"==t.behavior&&n.lastIndex++,t.name&&w.namedGroup){const e=t.name.value;if(n.names[e])throw new Error(`Multiple groups with the same name (${e}) are not allowed.`);const i=n.lastIndex;delete t.name,n.names[e]=i,n.onNamedGroup&&n.onNamedGroup.call(null,e,i),n.unmatchedReferences[e]&&(n.unmatchedReferences[e].forEach((t=>{y(t,i)})),delete n.unmatchedReferences[e])}case"alternative":case"disjunction":case"quantifier":t.body=t.body.map((t=>v(t,e,n)));break;case"value":const a=t.codePoint,o=r(a);if(w.ignoreCase&&w.unicode&&!w.useUnicodeFlag){const t=m(a);t&&o.add(t)}p(t,o.toString(e));break;case"reference":if(t.name){const e=t.name.value,i=n.names[e];if(i){y(t,i);break}n.unmatchedReferences[e]||(n.unmatchedReferences[e]=[]),n.unmatchedReferences[e].push(t)}break;case"anchor":case"empty":case"group":break;default:throw new Error(`Unknown term type: ${t.type}`)}var i;return t},w={ignoreCase:!1,unicode:!1,dotAll:!1,useDotAllFlag:!1,useUnicodeFlag:!1,unicodePropertyEscape:!1,namedGroup:!1};t.exports=(t,e,n)=>{w.unicode=e&&e.includes("u");const r={unicodePropertyEscape:w.unicode,namedGroups:!0,lookbehind:n&&n.lookbehind};w.ignoreCase=e&&e.includes("i");const o=n&&n.dotAllFlag;if(w.dotAll=o&&e&&e.includes("s"),w.namedGroup=n&&n.namedGroup,w.useDotAllFlag=n&&n.useDotAllFlag,w.useUnicodeFlag=n&&n.useUnicodeFlag,w.unicodePropertyEscape=n&&n.unicodePropertyEscape,o&&w.useDotAllFlag)throw new Error("`useDotAllFlag` and `dotAllFlag` cannot both be true!");const s={hasUnicodeFlag:w.useUnicodeFlag,bmpOnly:!w.unicode},c={onNamedGroup:n&&n.onNamedGroup,lastIndex:0,names:Object.create(null),unmatchedReferences:Object.create(null)},l=a(t,e,r);return v(l,s,c),(t=>{const e=Object.keys(t.unmatchedReferences);if(e.length>0)throw new Error(`Unknown group names: ${e}`)})(c),i(l)}},23161:function(t,e,n){var i;t=n.nmd(t),function(){"use strict";var a={function:!0,object:!0},r=a[typeof window]&&window||this,o=a[typeof e]&&e&&!e.nodeType&&e,s=a.object&&t&&!t.nodeType,c=o&&s&&"object"==typeof n.g&&n.g;!c||c.global!==c&&c.window!==c&&c.self!==c||(r=c);var l=Object.prototype.hasOwnProperty;function u(){var t=Number(arguments[0]);if(!isFinite(t)||t<0||t>1114111||Math.floor(t)!=t)throw RangeError("Invalid code point: "+t);if(t<=65535)return String.fromCharCode(t);var e=55296+((t-=65536)>>10),n=t%1024+56320;return String.fromCharCode(e,n)}var d={};function h(t,e){if(-1==e.indexOf("|")){if(t==e)return;throw Error("Invalid node type: "+t+"; expected type: "+e)}if(!(e=l.call(d,e)?d[e]:d[e]=RegExp("^(?:"+e+")$")).test(t))throw Error("Invalid node type: "+t+"; expected types: "+e)}function f(t){var e=t.type;if(l.call(y,e))return y[e](t);throw Error("Invalid node type: "+e)}function g(t,e){for(var n,i=-1,a=e.length,r="";++i<a;)n=e[i],i+1<a&&"value"==e[i].type&&"null"==e[i].kind&&"value"==e[i+1].type&&"symbol"==e[i+1].kind&&e[i+1].codePoint>=48&&e[i+1].codePoint<=57?r+="\\000":r+=t(n);return r}function p(t){return h(t.type,"anchor|characterClassEscape|characterClassRange|dot|value"),f(t)}function b(t){return h(t.type,"identifier"),t.value}function m(t){return h(t.type,"anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|unicodePropertyEscape|value|dot"),f(t)}var y={alternative:function(t){return h(t.type,"alternative"),g(m,t.body)},anchor:function(t){switch(h(t.type,"anchor"),t.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}},characterClass:function(t){return h(t.type,"characterClass"),"["+(t.negative?"^":"")+g(p,t.body)+"]"},characterClassEscape:function(t){return h(t.type,"characterClassEscape"),"\\"+t.value},characterClassRange:function(t){h(t.type,"characterClassRange");var e=t.min,n=t.max;if("characterClassRange"==e.type||"characterClassRange"==n.type)throw Error("Invalid character class range");return p(e)+"-"+p(n)},disjunction:function(t){h(t.type,"disjunction");for(var e=t.body,n=-1,i=e.length,a="";++n<i;)0!=n&&(a+="|"),a+=f(e[n]);return a},dot:function(t){return h(t.type,"dot"),"."},group:function(t){h(t.type,"group");var e="";switch(t.behavior){case"normal":t.name&&(e+="?<"+b(t.name)+">");break;case"ignore":e+="?:";break;case"lookahead":e+="?=";break;case"negativeLookahead":e+="?!";break;case"lookbehind":e+="?<=";break;case"negativeLookbehind":e+="?<!";break;default:throw Error("Invalid behaviour: "+t.behaviour)}return"("+(e+=g(f,t.body))+")"},quantifier:function(t){h(t.type,"quantifier");var e="",n=t.min,i=t.max;return e=null==i?0==n?"*":1==n?"+":"{"+n+",}":n==i?"{"+n+"}":0==n&&1==i?"?":"{"+n+","+i+"}",t.greedy||(e+="?"),function(t){return h(t.type,"anchor|characterClass|characterClassEscape|dot|group|reference|value"),f(t)}(t.body[0])+e},reference:function(t){if(h(t.type,"reference"),t.matchIndex)return"\\"+t.matchIndex;if(t.name)return"\\k<"+b(t.name)+">";throw new Error("Unknown reference type")},unicodePropertyEscape:function(t){return h(t.type,"unicodePropertyEscape"),"\\"+(t.negative?"P":"p")+"{"+t.value+"}"},value:function(t){h(t.type,"value");var e=t.kind,n=t.codePoint;if("number"!=typeof n)throw new Error("Invalid code point: "+n);switch(e){case"controlLetter":return"\\c"+u(n+64);case"hexadecimalEscape":return"\\x"+("00"+n.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+u(n);case"null":return"\\"+n;case"octal":return"\\"+("000"+n.toString(8)).slice(-3);case"singleEscape":switch(n){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";case 45:return"\\-";default:throw Error("Invalid code point: "+n)}case"symbol":return u(n);case"unicodeEscape":return"\\u"+("0000"+n.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+n.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+e)}}},v={generate:f};void 0===(i=function(){return v}.call(e,n,e,t))||(t.exports=i),r.regjsgen=v}.call(this)},89077:t=>{var e,n,i,a;i=String.fromCodePoint||(e=String.fromCharCode,n=Math.floor,function(){var t,i,a=16384,r=[],o=-1,s=arguments.length;if(!s)return"";for(var c="";++o<s;){var l=Number(arguments[o]);if(!isFinite(l)||l<0||l>1114111||n(l)!=l)throw RangeError("Invalid code point: "+l);l<=65535?r.push(l):(t=55296+((l-=65536)>>10),i=l%1024+56320,r.push(t,i)),(o+1==s||r.length>a)&&(c+=e.apply(null,r),r.length=0)}return c}),a={parse:function(t,e,n){function a(e){return e.raw=t.substring(e.range[0],e.range[1]),e}function r(t,e){return t.range[0]=e,a(t)}function o(t,e){return a({type:"anchor",kind:t,range:[J-e,J]})}function s(t,e,n,i){return a({type:"value",kind:t,codePoint:e,range:[n,i]})}function c(t,e,n,i){return i=i||0,s(t,e,J-(n.length+i),J)}function l(t){var e,n=t[0],i=n.charCodeAt(0);return K&&1===n.length&&i>=55296&&i<=56319&&(e=m().charCodeAt(0))>=56320&&e<=57343?s("symbol",1024*(i-55296)+e-56320+65536,++J-2,J):s("symbol",i,J-1,J)}function u(t,e,n,i){return null==i&&(n=J-1,i=J),a({type:"quantifier",min:t,max:e,greedy:!0,body:null,range:[n,i]})}function d(t,e,n,i){return a({type:"characterClass",kind:t.kind,body:t.body,negative:e,range:[n,i]})}function h(t,e,n,i){return t.codePoint>e.codePoint&&W("invalid range in character class",t.raw+"-"+e.raw,n,i),a({type:"characterClassRange",min:t,max:e,range:[n,i]})}function f(t){return"alternative"===t.type?t.body:[t]}function g(e){e=e||1;var n=t.substring(J,J+e);return J+=e||1,n}function p(t){b(t)||W("character",t)}function b(e){if(t.indexOf(e,J)===J)return g(e.length)}function m(){return t[J]}function y(e){return t.indexOf(e,J)===J}function v(e){return t[J+1]===e}function w(e){var n=t.substring(J).match(e);return n&&(n.range=[],n.range[0]=J,g(n[0].length),n.range[1]=J),n}function x(){var t=[],e=J;for(t.push(R());b("|");)t.push(R());return 1===t.length?t[0]:function(t,e,n){return a({type:"disjunction",body:t,range:[e,n]})}(t,e,J)}function R(){for(var t,e=[],n=J;t=_();)e.push(t);return 1===e.length?e[0]:function(t,e,n){return a({type:"alternative",body:t,range:[e,n]})}(e,n,J)}function _(){if(J>=t.length||y("|")||y(")"))return null;var e=b("^")?o("start",1):b("$")?o("end",1):b("\\b")?o("boundary",2):b("\\B")?o("not-boundary",2):k("(?=","lookahead","(?!","negativeLookahead");if(e)return e;var i,c=function(){var t;if(t=w(/^[^^$\\.*+?()[\]{}|]/))return l(t);if(!K&&(t=w(/^(?:]|})/)))return l(t);if(b("."))return a({type:"dot",range:[J-1,J]});if(b("\\")){if(!(t=A())){if(!K&&"c"==m())return s("symbol",92,J-1,J);W("atomEscape")}return t}if(t=P())return t;if(n.lookbehind&&(t=k("(?<=","lookbehind","(?<!","negativeLookbehind")))return t;if(n.namedGroups&&b("(?<")){var e=M();p(">");var i=E("normal",e.range[0]-3);return i.name=e,i}return k("(?:","ignore","(","normal")}();return c||(pos_backup=J,(i=C()||!1)&&(J=pos_backup,W("Expected atom")),!K&&(res=w(/^{/))?c=l(res):W("Expected atom")),(i=C()||!1)?(i.body=f(c),r(i,c.range[0]),i):c}function k(t,e,n,i){var a=null,r=J;if(b(t))a=e;else{if(!b(n))return!1;a=i}return E(a,r)}function E(t,e){var n=x();n||W("Expected disjunction"),p(")");var i=function(t,e,n,i){return a({type:"group",behavior:t,body:e,range:[n,i]})}(t,f(n),e,J);return"normal"==t&&Z&&G++,i}function C(){var t,e,n,i,a=J;return b("*")?e=u(0):b("+")?e=u(1):b("?")?e=u(0,1):(t=w(/^\{([0-9]+)\}/))?e=u(n=parseInt(t[1],10),n,t.range[0],t.range[1]):(t=w(/^\{([0-9]+),\}/))?e=u(n=parseInt(t[1],10),void 0,t.range[0],t.range[1]):(t=w(/^\{([0-9]+),([0-9]+)\}/))&&((n=parseInt(t[1],10))>(i=parseInt(t[2],10))&&W("numbers out of order in {} quantifier","",a,J),e=u(n,i,t.range[0],t.range[1])),e&&b("?")&&(e.greedy=!1,e.range[1]+=1),e}function S(t){var e,n;if(K&&"unicodeEscape"==t.kind&&(e=t.codePoint)>=55296&&e<=56319&&y("\\")&&v("u")){var i=J;J++;var r=T();"unicodeEscape"==r.kind&&(n=r.codePoint)>=56320&&n<=57343?(t.range[1]=r.range[1],t.codePoint=1024*(e-55296)+n-56320+65536,t.type="value",t.kind="unicodeCodePointEscape",a(t)):J=i}return t}function T(){return A(!0)}function A(t){var e,i=J;if(e=function(){var t,e,n;if(t=w(/^(?!0)\d+/)){e=t[0];var i=parseInt(t[0],10);return i<=G?(n=t[0],a({type:"reference",matchIndex:parseInt(n,10),range:[J-1-n.length,J]})):(Y.push(i),g(-t[0].length),(t=w(/^[0-7]{1,3}/))?c("octal",parseInt(t[0],8),t[0],1):r(t=l(w(/^[89]/)),t.range[0]-1))}return!!(t=w(/^[0-7]{1,3}/))&&(e=t[0],/^0{1,3}$/.test(e)?c("null",0,"0",e.length):c("octal",parseInt(e,8),e,1))}()||function(){if(n.namedGroups&&w(/^k<(?=.*?>)/)){var t=M();return p(">"),function(t){return a({type:"reference",name:t,range:[t.range[0]-3,J]})}(t)}}(),e)return e;if(t){if(b("b"))return c("singleEscape",8,"\\b");if(b("B"))W("\\B not possible inside of CharacterClass","",i);else{if(!K&&(e=w(/^c([0-9])/)))return c("controlLetter",e[1]+16,e[1],2);if(!K&&(e=w(/^c_/)))return c("controlLetter",31,"_",2)}if(K&&b("-"))return c("singleEscape",45,"\\-")}return e=D()||L()}function D(){var t;return(t=w(/^[dDsSwW]/))?a({type:"characterClassEscape",value:t[0],range:[J-2,J]}):!(!n.unicodePropertyEscape||!K&&!X||!(t=w(/^([pP])\{([^\}]+)\}/)))&&a({type:"unicodePropertyEscape",negative:"P"===t[1],value:t[2],range:[t.range[0]-1,t.range[1]],raw:t[0]})}function I(){var t;return(t=w(/^u([0-9a-fA-F]{4})/))?S(c("unicodeEscape",parseInt(t[1],16),t[1],2)):K&&(t=w(/^u\{([0-9a-fA-F]+)\}/))?c("unicodeCodePointEscape",parseInt(t[1],16),t[1],4):void 0}function L(){var t,e,i,a=J;if(t=w(/^[fnrtv]/)){var r=0;switch(t[0]){case"t":r=9;break;case"n":r=10;break;case"v":r=11;break;case"f":r=12;break;case"r":r=13}return c("singleEscape",r,"\\"+t[0])}return(t=w(/^c([a-zA-Z])/))?c("controlLetter",t[1].charCodeAt(0)%32,t[1],2):(t=w(/^x([0-9a-fA-F]{2})/))?c("hexadecimalEscape",parseInt(t[1],16),t[1],2):(t=I())?((!t||t.codePoint>1114111)&&W("Invalid escape sequence",null,a,J),t):(i=m(),K&&/[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/.test(i)||!K&&"c"!==i?"k"===i&&n.lookbehind?null:c("identifier",(e=g()).charCodeAt(0),e,1):null)}function O(e){var n=m(),a=J;if("\\"===n){g();var r=I();return r&&e(r.codePoint)||W("Invalid escape sequence",null,a,J),i(r.codePoint)}var o=n.charCodeAt(0);if(o>=55296&&o<=56319){var s=(n+=t[J+1]).charCodeAt(1);s>=56320&&s<=57343&&(o=1024*(o-55296)+s-56320+65536)}if(e(o))return g(),o>65535&&g(),n}function M(){var t,e=J,n=O(N);for(n||W("Invalid identifier");t=O(B);)n+=t;return a({type:"identifier",value:n,range:[e,J]})}function N(t){return 36===t||95===t||t>=65&&t<=90||t>=97&&t<=122||t>=128&&/[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/.test(i(t))}function B(t){return N(t)||t>=48&&t<=57||t>=128&&/[0-9_\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD30-\uDD39\uDF46-\uDF50]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC66-\uDC6F\uDC7F-\uDC82\uDCB0-\uDCBA\uDCF0-\uDCF9\uDD00-\uDD02\uDD27-\uDD34\uDD36-\uDD3F\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDD0-\uDDD9\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC50-\uDC59\uDC5E\uDCB0-\uDCC3\uDCD0-\uDCD9\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDE50-\uDE59\uDEAB-\uDEB7\uDEC0-\uDEC9\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC2C-\uDC3A\uDCE0-\uDCE9\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC50-\uDC59\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD50-\uDD59\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDDA0-\uDDA9\uDEF3-\uDEF6]|\uD81A[\uDE60-\uDE69\uDEF0-\uDEF4\uDF30-\uDF36\uDF50-\uDF59]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A\uDD50-\uDD59]|\uDB40[\uDD00-\uDDEF]/.test(i(t))}function P(){var t,e=J;return(t=w(/^\[\^/))?(t=F(),p("]"),d(t,!0,e,J)):b("[")?(t=F(),p("]"),d(t,!1,e,J)):null}function F(){var t,e;return y("]")?{kind:"union",body:[]}:X?function(){var t,e=[],n=z(!0);for(e.push(n),t="classRange"===n.type?"union":y("&")?"intersection":y("-")?"subtraction":"union";!y("]");)"intersection"===t?(p("&"),p("&"),y("&")&&W("&& cannot be followed by &. Wrap it in parentheses: &&(&).")):"subtraction"===t&&(p("-"),p("-")),n=z("union"===t),e.push(n);return{kind:t,body:e}}():((e=$())||W("classAtom"),(t=y("]")?[e]:j(e))||W("nonEmptyClassRanges"),{kind:"union",body:t})}function j(t){var e,n,i,a,r;if(y("-")&&!v("]")){e=t.range[0],r=l(b("-")),(a=$())||W("classAtom"),n=J;var o=F();return o||W("classRanges"),"codePoint"in t&&"codePoint"in a?i=[h(t,a,e,n)]:K?W("invalid character class"):i=[t,r,a],"empty"===o.type?i:i.concat(o.body)}return(i=function(){var t=$();return t||W("classAtom"),y("]")?t:j(t)}())||W("nonEmptyClassRangesNoDash"),[t].concat(i)}function $(){return b("-")?l("-"):function(){var t;return(t=w(/^[^\\\]-]/))?l(t[0]):b("\\")?((t=T())||W("classEscape"),S(t)):void 0}()}function z(t){var e,n,i=J;if(b("\\"))if(n=D())e=n;else{if(n=V())return n;W("Invalid escape","\\"+m(),i)}else if(n=U())e=n;else{if(n=function(){var t=[],e=J;if(!b("("))return null;do{t.push(q())}while(b("|"));return p(")"),function(t,e,n){return a({type:"classStrings",strings:t,range:[e,n]})}(t,e,J)}()||P())return n;W("Invalid character",m())}if(t&&y("-")&&!v("-")){if(p("-"),n=H())return h(e,n,i,J);W("Invalid range end",m())}return e}function H(){if(b("\\")){if(res=V())return res;W("Invalid escape","\\"+m(),from)}return U()}function U(){var t;if(t=w(/^[^()[\]{}/\-\\|]/))return l(t)}function V(){return b("b")?c("singleEscape",8,"\\b"):b("B")?void W("\\B not possible inside of ClassContents","",J-2):(res=w(/^[&\-!#%,:;<=>@_`~]/))?c("identifier",res[0].codePointAt(0),res[0]):(res=L())?res:null}function q(){for(var t,e=[],n=J;t=H();)e.push(t);return function(t,e,n){return a({type:"classString",characters:t,range:[e,n]})}(e,n,J)}function W(e,n,i,a){i=null==i?J:i,a=null==a?i:a;var r=Math.max(0,i-10),o=Math.min(a+10,t.length),s=" "+t.substring(r,o),c=" "+new Array(i-r+1).join(" ")+"^";throw SyntaxError(e+" at position "+i+(n?": "+n:"")+"\n"+s+"\n"+c)}n||(n={});var Y=[],G=0,Z=!0,K=-1!==(e||"").indexOf("u"),X=-1!==(e||"").indexOf("v"),J=0;if(X&&!n.unicodeSet)throw new Error('The "v" flag is only supported when the .unicodeSet option is enabled.');if(K&&X)throw new Error('The "u" and "v" flags are mutually exclusive.');""===(t=String(t))&&(t="(?:)");var Q=x();Q.range[1]!==t.length&&W("Could not parse entire input - got stuck","",Q.range[1]);for(var tt=0;tt<Y.length;tt++)if(Y[tt]<=G)return J=0,Z=!1,x();return Q}},t.exports?t.exports=a:window.regjsparser=a},42351:t=>{t.exports=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"])},48710:(t,e,n)=>{"use strict";const i=n(42351),a=n(84855);t.exports=function(t){if(i.has(t))return t;if(a.has(t))return a.get(t);throw new Error(`Unknown property: ${t}`)}},44973:t=>{t.exports=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Toto","Toto"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]])},73276:(t,e,n)=>{"use strict";const i=n(44973);t.exports=function(t,e){const n=i.get(t);if(!n)throw new Error(`Unknown property \`${t}\`.`);const a=n.get(e);if(a)return a;throw new Error(`Unknown value \`${e}\` for property \`${t}\`.`)}},84855:t=>{t.exports=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["EBase","Emoji_Modifier_Base"],["EComp","Emoji_Component"],["EMod","Emoji_Modifier"],["Emoji","Emoji"],["EPres","Emoji_Presentation"],["Ext","Extender"],["ExtPict","Extended_Pictographic"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]])},62854:(t,e,n)=>{"use strict";t.exports=s;var i=n(49858),a=i.CONTINUE,r=i.SKIP,o=i.EXIT;function s(t,e,n,a){"function"==typeof e&&"function"!=typeof n&&(a=n,n=e,e=null),i(t,e,(function(t,e){var i=e[e.length-1],a=i?i.children.indexOf(t):null;return n(t,a,i)}),a)}s.CONTINUE=a,s.SKIP=r,s.EXIT=o},40350:t=>{"use strict";function e(t){if(null==t)return n;if("string"==typeof t)return function(t){return e;function e(e){return Boolean(e&&e.type===t)}}(t);if("object"==typeof t)return"length"in t?function(t){var n=[],i=-1;for(;++i<t.length;)n[i]=e(t[i]);return a;function a(){for(var t=-1;++t<n.length;)if(n[t].apply(this,arguments))return!0;return!1}}(t):function(t){return e;function e(e){var n;for(n in t)if(e[n]!==t[n])return!1;return!0}}(t);if("function"==typeof t)return t;throw new Error("Expected function, string, or object as test")}function n(){return!0}t.exports=e},29824:t=>{t.exports=function(t){return t}},49858:(t,e,n)=>{"use strict";t.exports=c;var i=n(40350),a=n(29824),r=!0,o="skip",s=!1;function c(t,e,n,c){var l,u;"function"==typeof e&&"function"!=typeof n&&(c=n,n=e,e=null),u=i(e),l=c?-1:1,function t(i,d,h){var f,g="object"==typeof i&&null!==i?i:{};"string"==typeof g.type&&(f="string"==typeof g.tagName?g.tagName:"string"==typeof g.name?g.name:void 0,p.displayName="node ("+a(g.type+(f?"<"+f+">":""))+")");return p;function p(){var a,f,g=h.concat(i),p=[];if((!e||u(i,d,h[h.length-1]||null))&&(p=function(t){if(null!==t&&"object"==typeof t&&"length"in t)return t;if("number"==typeof t)return[r,t];return[t]}(n(i,h)),p[0]===s))return p;if(i.children&&p[0]!==o)for(f=(c?i.children.length:-1)+l;f>-1&&f<i.children.length;){if(a=t(i.children[f],f,g)(),a[0]===s)return a;f="number"==typeof a[1]?a[1]:f+l}return p}}(t,null,[])()}c.CONTINUE=true,c.SKIP=o,c.EXIT=s},42473:t=>{"use strict";var e=function(){};t.exports=e},12813:(t,e,n)=>{"use strict";n.r(e),n.d(e,{compile:()=>ss,compileSync:()=>cs});var i={};n.r(i),n.d(i,{attentionMarkers:()=>Vi,contentInitial:()=>Fi,disable:()=>qi,document:()=>Pi,flow:()=>$i,flowInitial:()=>ji,insideSpan:()=>Ui,string:()=>zi,text:()=>Hi});var a={};function r(t){if(t)throw t}n.r(a),n.d(a,{boolean:()=>Ir,booleanish:()=>Lr,commaOrSpaceSeparated:()=>Pr,commaSeparated:()=>Br,number:()=>Mr,overloadedBoolean:()=>Or,spaceSeparated:()=>Nr});var o=n(48738),s=n(94470);function c(t){if("object"!=typeof t||null===t)return!1;const e=Object.getPrototypeOf(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)}function l(){const t=[],e={run:function(...e){let n=-1;const i=e.pop();if("function"!=typeof i)throw new TypeError("Expected function as last argument, not "+i);!function a(r,...o){const s=t[++n];let c=-1;if(r)i(r);else{for(;++c<e.length;)null!==o[c]&&void 0!==o[c]||(o[c]=e[c]);e=o,s?function(t,e){let n;return i;function i(...e){const i=t.length>e.length;let s;i&&e.push(a);try{s=t.apply(this,e)}catch(r){const e=r;if(i&&n)throw e;return a(e)}i||(s instanceof Promise?s.then(o,a):s instanceof Error?a(s):o(s))}function a(t,...i){n||(n=!0,e(t,...i))}function o(t){a(null,t)}}(s,a)(...o):i(null,...o)}}(null,...e)},use:function(n){if("function"!=typeof n)throw new TypeError("Expected `middelware` to be a function, not "+n);return t.push(n),e}};return e}function u(t){return t&&"object"==typeof t?"position"in t||"type"in t?h(t.position):"start"in t||"end"in t?h(t):"line"in t||"column"in t?d(t):"":""}function d(t){return f(t&&t.line)+":"+f(t&&t.column)}function h(t){return d(t&&t.start)+"-"+d(t&&t.end)}function f(t){return t&&"number"==typeof t?t:1}class g extends Error{constructor(t,e,n){const i=[null,null];let a={start:{line:null,column:null},end:{line:null,column:null}};if(super(),"string"==typeof e&&(n=e,e=void 0),"string"==typeof n){const t=n.indexOf(":");-1===t?i[1]=n:(i[0]=n.slice(0,t),i[1]=n.slice(t+1))}e&&("type"in e||"position"in e?e.position&&(a=e.position):"start"in e||"end"in e?a=e:("line"in e||"column"in e)&&(a.start=e)),this.name=u(e)||"1:1",this.message="object"==typeof t?t.message:t,this.stack="","object"==typeof t&&t.stack&&(this.stack=t.stack),this.reason=this.message,this.fatal,this.line=a.start.line,this.column=a.start.column,this.position=a,this.source=i[0],this.ruleId=i[1],this.file,this.actual,this.expected,this.url,this.note}}g.prototype.file="",g.prototype.name="",g.prototype.reason="",g.prototype.message="",g.prototype.stack="",g.prototype.fatal=null,g.prototype.column=null,g.prototype.line=null,g.prototype.source=null,g.prototype.ruleId=null,g.prototype.position=null;const p={basename:function(t,e){if(void 0!==e&&"string"!=typeof e)throw new TypeError('"ext" argument must be a string');b(t);let n,i=0,a=-1,r=t.length;if(void 0===e||0===e.length||e.length>t.length){for(;r--;)if(47===t.charCodeAt(r)){if(n){i=r+1;break}}else a<0&&(n=!0,a=r+1);return a<0?"":t.slice(i,a)}if(e===t)return"";let o=-1,s=e.length-1;for(;r--;)if(47===t.charCodeAt(r)){if(n){i=r+1;break}}else o<0&&(n=!0,o=r+1),s>-1&&(t.charCodeAt(r)===e.charCodeAt(s--)?s<0&&(a=r):(s=-1,a=o));i===a?a=o:a<0&&(a=t.length);return t.slice(i,a)},dirname:function(t){if(b(t),0===t.length)return".";let e,n=-1,i=t.length;for(;--i;)if(47===t.charCodeAt(i)){if(e){n=i;break}}else e||(e=!0);return n<0?47===t.charCodeAt(0)?"/":".":1===n&&47===t.charCodeAt(0)?"//":t.slice(0,n)},extname:function(t){b(t);let e,n=t.length,i=-1,a=0,r=-1,o=0;for(;n--;){const s=t.charCodeAt(n);if(47!==s)i<0&&(e=!0,i=n+1),46===s?r<0?r=n:1!==o&&(o=1):r>-1&&(o=-1);else if(e){a=n+1;break}}if(r<0||i<0||0===o||1===o&&r===i-1&&r===a+1)return"";return t.slice(r,i)},join:function(...t){let e,n=-1;for(;++n<t.length;)b(t[n]),t[n]&&(e=void 0===e?t[n]:e+"/"+t[n]);return void 0===e?".":function(t){b(t);const e=47===t.charCodeAt(0);let n=function(t,e){let n,i,a="",r=0,o=-1,s=0,c=-1;for(;++c<=t.length;){if(c<t.length)n=t.charCodeAt(c);else{if(47===n)break;n=47}if(47===n){if(o===c-1||1===s);else if(o!==c-1&&2===s){if(a.length<2||2!==r||46!==a.charCodeAt(a.length-1)||46!==a.charCodeAt(a.length-2))if(a.length>2){if(i=a.lastIndexOf("/"),i!==a.length-1){i<0?(a="",r=0):(a=a.slice(0,i),r=a.length-1-a.lastIndexOf("/")),o=c,s=0;continue}}else if(a.length>0){a="",r=0,o=c,s=0;continue}e&&(a=a.length>0?a+"/..":"..",r=2)}else a.length>0?a+="/"+t.slice(o+1,c):a=t.slice(o+1,c),r=c-o-1;o=c,s=0}else 46===n&&s>-1?s++:s=-1}return a}(t,!e);0!==n.length||e||(n=".");n.length>0&&47===t.charCodeAt(t.length-1)&&(n+="/");return e?"/"+n:n}(e)},sep:"/"};function b(t){if("string"!=typeof t)throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}const m={cwd:function(){return"/"}};function y(t){return null!==t&&"object"==typeof t&&t.href&&t.origin}function v(t){if("string"==typeof t)t=new URL(t);else if(!y(t)){const e=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+t+"`");throw e.code="ERR_INVALID_ARG_TYPE",e}if("file:"!==t.protocol){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return function(t){if(""!==t.hostname){const t=new TypeError('File URL host must be "localhost" or empty on darwin');throw t.code="ERR_INVALID_FILE_URL_HOST",t}const e=t.pathname;let n=-1;for(;++n<e.length;)if(37===e.charCodeAt(n)&&50===e.charCodeAt(n+1)){const t=e.charCodeAt(n+2);if(70===t||102===t){const t=new TypeError("File URL path must not include encoded / characters");throw t.code="ERR_INVALID_FILE_URL_PATH",t}}return decodeURIComponent(e)}(t)}const w=["history","path","basename","stem","extname","dirname"];class x{constructor(t){let e;e=t?"string"==typeof t||function(t){return o(t)}(t)?{value:t}:y(t)?{path:t}:t:{},this.data={},this.messages=[],this.history=[],this.cwd=m.cwd(),this.value,this.stored,this.result,this.map;let n,i=-1;for(;++i<w.length;){const t=w[i];t in e&&void 0!==e[t]&&null!==e[t]&&(this[t]="history"===t?[...e[t]]:e[t])}for(n in e)w.includes(n)||(this[n]=e[n])}get path(){return this.history[this.history.length-1]}set path(t){y(t)&&(t=v(t)),_(t,"path"),this.path!==t&&this.history.push(t)}get dirname(){return"string"==typeof this.path?p.dirname(this.path):void 0}set dirname(t){k(this.basename,"dirname"),this.path=p.join(t||"",this.basename)}get basename(){return"string"==typeof this.path?p.basename(this.path):void 0}set basename(t){_(t,"basename"),R(t,"basename"),this.path=p.join(this.dirname||"",t)}get extname(){return"string"==typeof this.path?p.extname(this.path):void 0}set extname(t){if(R(t,"extname"),k(this.dirname,"extname"),t){if(46!==t.charCodeAt(0))throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=p.join(this.dirname,this.stem+(t||""))}get stem(){return"string"==typeof this.path?p.basename(this.path,this.extname):void 0}set stem(t){_(t,"stem"),R(t,"stem"),this.path=p.join(this.dirname||"",t+(this.extname||""))}toString(t){return(this.value||"").toString(t||void 0)}message(t,e,n){const i=new g(t,e,n);return this.path&&(i.name=this.path+":"+i.name,i.file=this.path),i.fatal=!1,this.messages.push(i),i}info(t,e,n){const i=this.message(t,e,n);return i.fatal=null,i}fail(t,e,n){const i=this.message(t,e,n);throw i.fatal=!0,i}}function R(t,e){if(t&&t.includes(p.sep))throw new Error("`"+e+"` cannot be a path: did not expect `"+p.sep+"`")}function _(t,e){if(!t)throw new Error("`"+e+"` cannot be empty")}function k(t,e){if(!t)throw new Error("Setting `"+e+"` requires `path` to be set too")}const E=function t(){const e=l(),n=[];let i,a={},u=-1;return d.data=function(t,e){if("string"==typeof t)return 2===arguments.length?(D("data",i),a[t]=e,d):C.call(a,t)&&a[t]||null;if(t)return D("data",i),a=t,d;return a},d.Parser=void 0,d.Compiler=void 0,d.freeze=function(){if(i)return d;for(;++u<n.length;){const[t,...i]=n[u];if(!1===i[0])continue;!0===i[0]&&(i[0]=void 0);const a=t.call(d,...i);"function"==typeof a&&e.use(a)}return i=!0,u=Number.POSITIVE_INFINITY,d},d.attachers=n,d.use=function(t,...e){let r;if(D("use",i),null==t);else if("function"==typeof t)h(t,...e);else{if("object"!=typeof t)throw new TypeError("Expected usable value, not `"+t+"`");Array.isArray(t)?u(t):l(t)}r&&(a.settings=Object.assign(a.settings||{},r));return d;function o(t){if("function"==typeof t)h(t);else{if("object"!=typeof t)throw new TypeError("Expected usable value, not `"+t+"`");if(Array.isArray(t)){const[e,...n]=t;h(e,...n)}else l(t)}}function l(t){u(t.plugins),t.settings&&(r=Object.assign(r||{},t.settings))}function u(t){let e=-1;if(null==t);else{if(!Array.isArray(t))throw new TypeError("Expected a list of plugins, not `"+t+"`");for(;++e<t.length;){o(t[e])}}}function h(t,e){let i,a=-1;for(;++a<n.length;)if(n[a][0]===t){i=n[a];break}i?(c(i[1])&&c(e)&&(e=s(!0,i[1],e)),i[1]=e):n.push([...arguments])}},d.parse=function(t){d.freeze();const e=O(t),n=d.Parser;if(T("parse",n),S(n,"parse"))return new n(String(e),e).parse();return n(String(e),e)},d.stringify=function(t,e){d.freeze();const n=O(e),i=d.Compiler;if(A("stringify",i),I(t),S(i,"compile"))return new i(t,n).compile();return i(t,n)},d.run=function(t,n,i){I(t),d.freeze(),i||"function"!=typeof n||(i=n,n=void 0);if(!i)return new Promise(a);function a(a,r){function o(e,n,o){n=n||t,e?r(e):a?a(n):i(null,n,o)}e.run(t,O(n),o)}a(null,i)},d.runSync=function(t,e){let n,i;return d.run(t,e,a),L("runSync","run",i),n;function a(t,e){r(t),n=e,i=!0}},d.process=function(t,e){if(d.freeze(),T("process",d.Parser),A("process",d.Compiler),!e)return new Promise(n);function n(n,i){const a=O(t);function r(t,a){t||!a?i(t):n?n(a):e(null,a)}d.run(d.parse(a),a,((t,e,n)=>{if(!t&&e&&n){const a=d.stringify(e,n);null==a||("string"==typeof(i=a)||o(i)?n.value=a:n.result=a),r(t,n)}else r(t);var i}))}n(null,e)},d.processSync=function(t){let e;d.freeze(),T("processSync",d.Parser),A("processSync",d.Compiler);const n=O(t);return d.process(n,i),L("processSync","process",e),n;function i(t){e=!0,r(t)}},d;function d(){const e=t();let i=-1;for(;++i<n.length;)e.use(...n[i]);return e.data(s(!0,{},a)),e}}().freeze(),C={}.hasOwnProperty;function S(t,e){return"function"==typeof t&&t.prototype&&(function(t){let e;for(e in t)if(C.call(t,e))return!0;return!1}(t.prototype)||e in t.prototype)}function T(t,e){if("function"!=typeof e)throw new TypeError("Cannot `"+t+"` without `Parser`")}function A(t,e){if("function"!=typeof e)throw new TypeError("Cannot `"+t+"` without `Compiler`")}function D(t,e){if(e)throw new Error("Cannot call `"+t+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function I(t){if(!c(t)||"string"!=typeof t.type)throw new TypeError("Expected node, got `"+t+"`")}function L(t,e,n){if(!n)throw new Error("`"+t+"` finished async. Use `"+e+"` instead")}function O(t){return function(t){return Boolean(t&&"object"==typeof t&&"message"in t&&"messages"in t)}(t)?t:new x(t)}var M=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239],N=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,3104,541,1507,4938,6,4191],B="\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc",P={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},F="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",j={5:F,"5module":F+" export import",6:F+" const class extends export import super"},$=/^in(stanceof)?$/,z=new RegExp("["+B+"]"),H=new RegExp("["+B+"\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]");function U(t,e){for(var n=65536,i=0;i<e.length;i+=2){if((n+=e[i])>t)return!1;if((n+=e[i+1])>=t)return!0}return!1}function V(t,e){return t<65?36===t:t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&z.test(String.fromCharCode(t)):!1!==e&&U(t,N)))}function q(t,e){return t<48?36===t:t<58||!(t<65)&&(t<91||(t<97?95===t:t<123||(t<=65535?t>=170&&H.test(String.fromCharCode(t)):!1!==e&&(U(t,N)||U(t,M)))))}var W=function(t,e){void 0===e&&(e={}),this.label=t,this.keyword=e.keyword,this.beforeExpr=!!e.beforeExpr,this.startsExpr=!!e.startsExpr,this.isLoop=!!e.isLoop,this.isAssign=!!e.isAssign,this.prefix=!!e.prefix,this.postfix=!!e.postfix,this.binop=e.binop||null,this.updateContext=null};function Y(t,e){return new W(t,{beforeExpr:!0,binop:e})}var G={beforeExpr:!0},Z={startsExpr:!0},K={};function X(t,e){return void 0===e&&(e={}),e.keyword=t,K[t]=new W(t,e)}var J={num:new W("num",Z),regexp:new W("regexp",Z),string:new W("string",Z),name:new W("name",Z),privateId:new W("privateId",Z),eof:new W("eof"),bracketL:new W("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new W("]"),braceL:new W("{",{beforeExpr:!0,startsExpr:!0}),braceR:new W("}"),parenL:new W("(",{beforeExpr:!0,startsExpr:!0}),parenR:new W(")"),comma:new W(",",G),semi:new W(";",G),colon:new W(":",G),dot:new W("."),question:new W("?",G),questionDot:new W("?."),arrow:new W("=>",G),template:new W("template"),invalidTemplate:new W("invalidTemplate"),ellipsis:new W("...",G),backQuote:new W("`",Z),dollarBraceL:new W("${",{beforeExpr:!0,startsExpr:!0}),eq:new W("=",{beforeExpr:!0,isAssign:!0}),assign:new W("_=",{beforeExpr:!0,isAssign:!0}),incDec:new W("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new W("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Y("||",1),logicalAND:Y("&&",2),bitwiseOR:Y("|",3),bitwiseXOR:Y("^",4),bitwiseAND:Y("&",5),equality:Y("==/!=/===/!==",6),relational:Y("</>/<=/>=",7),bitShift:Y("<</>>/>>>",8),plusMin:new W("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Y("%",10),star:Y("*",10),slash:Y("/",10),starstar:new W("**",{beforeExpr:!0}),coalesce:Y("??",1),_break:X("break"),_case:X("case",G),_catch:X("catch"),_continue:X("continue"),_debugger:X("debugger"),_default:X("default",G),_do:X("do",{isLoop:!0,beforeExpr:!0}),_else:X("else",G),_finally:X("finally"),_for:X("for",{isLoop:!0}),_function:X("function",Z),_if:X("if"),_return:X("return",G),_switch:X("switch"),_throw:X("throw",G),_try:X("try"),_var:X("var"),_const:X("const"),_while:X("while",{isLoop:!0}),_with:X("with"),_new:X("new",{beforeExpr:!0,startsExpr:!0}),_this:X("this",Z),_super:X("super",Z),_class:X("class",Z),_extends:X("extends",G),_export:X("export"),_import:X("import",Z),_null:X("null",Z),_true:X("true",Z),_false:X("false",Z),_in:X("in",{beforeExpr:!0,binop:7}),_instanceof:X("instanceof",{beforeExpr:!0,binop:7}),_typeof:X("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:X("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:X("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},Q=/\r\n?|\n|\u2028|\u2029/,tt=new RegExp(Q.source,"g");function et(t){return 10===t||13===t||8232===t||8233===t}function nt(t,e,n){void 0===n&&(n=t.length);for(var i=e;i<n;i++){var a=t.charCodeAt(i);if(et(a))return i<n-1&&13===a&&10===t.charCodeAt(i+1)?i+2:i+1}return-1}var it=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,at=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,rt=Object.prototype,ot=rt.hasOwnProperty,st=rt.toString,ct=Object.hasOwn||function(t,e){return ot.call(t,e)},lt=Array.isArray||function(t){return"[object Array]"===st.call(t)};function ut(t){return new RegExp("^(?:"+t.replace(/ /g,"|")+")$")}function dt(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))}var ht=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,ft=function(t,e){this.line=t,this.column=e};ft.prototype.offset=function(t){return new ft(this.line,this.column+t)};var gt=function(t,e,n){this.start=e,this.end=n,null!==t.sourceFile&&(this.source=t.sourceFile)};function pt(t,e){for(var n=1,i=0;;){var a=nt(t,i,e);if(a<0)return new ft(n,e-i);++n,i=a}}var bt={ecmaVersion:null,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},mt=!1;function yt(t){var e={};for(var n in bt)e[n]=t&&ct(t,n)?t[n]:bt[n];if("latest"===e.ecmaVersion?e.ecmaVersion=1e8:null==e.ecmaVersion?(!mt&&"object"==typeof console&&console.warn&&(mt=!0,console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.")),e.ecmaVersion=11):e.ecmaVersion>=2015&&(e.ecmaVersion-=2009),null==e.allowReserved&&(e.allowReserved=e.ecmaVersion<5),t&&null!=t.allowHashBang||(e.allowHashBang=e.ecmaVersion>=14),lt(e.onToken)){var i=e.onToken;e.onToken=function(t){return i.push(t)}}return lt(e.onComment)&&(e.onComment=function(t,e){return function(n,i,a,r,o,s){var c={type:n?"Block":"Line",value:i,start:a,end:r};t.locations&&(c.loc=new gt(this,o,s)),t.ranges&&(c.range=[a,r]),e.push(c)}}(e,e.onComment)),e}var vt=256;function wt(t,e){return 2|(t?4:0)|(e?8:0)}var xt=function(t,e,n){this.options=t=yt(t),this.sourceFile=t.sourceFile,this.keywords=ut(j[t.ecmaVersion>=6?6:"module"===t.sourceType?"5module":5]);var i="";!0!==t.allowReserved&&(i=P[t.ecmaVersion>=6?6:5===t.ecmaVersion?5:3],"module"===t.sourceType&&(i+=" await")),this.reservedWords=ut(i);var a=(i?i+" ":"")+P.strict;this.reservedWordsStrict=ut(a),this.reservedWordsStrictBind=ut(a+" "+P.strictBind),this.input=String(e),this.containsEsc=!1,n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(Q).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=J.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===t.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),0===this.pos&&t.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(1),this.regexpState=null,this.privateNameStack=[]},Rt={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};xt.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)},Rt.inFunction.get=function(){return(2&this.currentVarScope().flags)>0},Rt.inGenerator.get=function(){return(8&this.currentVarScope().flags)>0&&!this.currentVarScope().inClassFieldInit},Rt.inAsync.get=function(){return(4&this.currentVarScope().flags)>0&&!this.currentVarScope().inClassFieldInit},Rt.canAwait.get=function(){for(var t=this.scopeStack.length-1;t>=0;t--){var e=this.scopeStack[t];if(e.inClassFieldInit||e.flags&vt)return!1;if(2&e.flags)return(4&e.flags)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},Rt.allowSuper.get=function(){var t=this.currentThisScope(),e=t.flags,n=t.inClassFieldInit;return(64&e)>0||n||this.options.allowSuperOutsideMethod},Rt.allowDirectSuper.get=function(){return(128&this.currentThisScope().flags)>0},Rt.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},Rt.allowNewDotTarget.get=function(){var t=this.currentThisScope(),e=t.flags,n=t.inClassFieldInit;return(258&e)>0||n},Rt.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&vt)>0},xt.extend=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];for(var n=this,i=0;i<t.length;i++)n=t[i](n);return n},xt.parse=function(t,e){return new this(e,t).parse()},xt.parseExpressionAt=function(t,e,n){var i=new this(n,t,e);return i.nextToken(),i.parseExpression()},xt.tokenizer=function(t,e){return new this(e,t)},Object.defineProperties(xt.prototype,Rt);var _t=xt.prototype,kt=/^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;_t.strictDirective=function(t){if(this.options.ecmaVersion<5)return!1;for(;;){at.lastIndex=t,t+=at.exec(this.input)[0].length;var e=kt.exec(this.input.slice(t));if(!e)return!1;if("use strict"===(e[1]||e[2])){at.lastIndex=t+e[0].length;var n=at.exec(this.input),i=n.index+n[0].length,a=this.input.charAt(i);return";"===a||"}"===a||Q.test(n[0])&&!(/[(`.[+\-/*%<>=,?^&]/.test(a)||"!"===a&&"="===this.input.charAt(i+1))}t+=e[0].length,at.lastIndex=t,t+=at.exec(this.input)[0].length,";"===this.input[t]&&t++}},_t.eat=function(t){return this.type===t&&(this.next(),!0)},_t.isContextual=function(t){return this.type===J.name&&this.value===t&&!this.containsEsc},_t.eatContextual=function(t){return!!this.isContextual(t)&&(this.next(),!0)},_t.expectContextual=function(t){this.eatContextual(t)||this.unexpected()},_t.canInsertSemicolon=function(){return this.type===J.eof||this.type===J.braceR||Q.test(this.input.slice(this.lastTokEnd,this.start))},_t.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},_t.semicolon=function(){this.eat(J.semi)||this.insertSemicolon()||this.unexpected()},_t.afterTrailingComma=function(t,e){if(this.type===t)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),e||this.next(),!0},_t.expect=function(t){this.eat(t)||this.unexpected()},_t.unexpected=function(t){this.raise(null!=t?t:this.start,"Unexpected token")};var Et=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};_t.checkPatternErrors=function(t,e){if(t){t.trailingComma>-1&&this.raiseRecoverable(t.trailingComma,"Comma is not permitted after the rest element");var n=e?t.parenthesizedAssign:t.parenthesizedBind;n>-1&&this.raiseRecoverable(n,e?"Assigning to rvalue":"Parenthesized pattern")}},_t.checkExpressionErrors=function(t,e){if(!t)return!1;var n=t.shorthandAssign,i=t.doubleProto;if(!e)return n>=0||i>=0;n>=0&&this.raise(n,"Shorthand property assignments are valid only in destructuring patterns"),i>=0&&this.raiseRecoverable(i,"Redefinition of __proto__ property")},_t.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},_t.isSimpleAssignTarget=function(t){return"ParenthesizedExpression"===t.type?this.isSimpleAssignTarget(t.expression):"Identifier"===t.type||"MemberExpression"===t.type};var Ct=xt.prototype;Ct.parseTopLevel=function(t){var e=Object.create(null);for(t.body||(t.body=[]);this.type!==J.eof;){var n=this.parseStatement(null,!0,e);t.body.push(n)}if(this.inModule)for(var i=0,a=Object.keys(this.undefinedExports);i<a.length;i+=1){var r=a[i];this.raiseRecoverable(this.undefinedExports[r].start,"Export '"+r+"' is not defined")}return this.adaptDirectivePrologue(t.body),this.next(),t.sourceType=this.options.sourceType,this.finishNode(t,"Program")};var St={kind:"loop"},Tt={kind:"switch"};Ct.isLet=function(t){if(this.options.ecmaVersion<6||!this.isContextual("let"))return!1;at.lastIndex=this.pos;var e=at.exec(this.input),n=this.pos+e[0].length,i=this.input.charCodeAt(n);if(91===i||92===i)return!0;if(t)return!1;if(123===i||i>55295&&i<56320)return!0;if(V(i,!0)){for(var a=n+1;q(i=this.input.charCodeAt(a),!0);)++a;if(92===i||i>55295&&i<56320)return!0;var r=this.input.slice(n,a);if(!$.test(r))return!0}return!1},Ct.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;at.lastIndex=this.pos;var t,e=at.exec(this.input),n=this.pos+e[0].length;return!(Q.test(this.input.slice(this.pos,n))||"function"!==this.input.slice(n,n+8)||n+8!==this.input.length&&(q(t=this.input.charCodeAt(n+8))||t>55295&&t<56320))},Ct.parseStatement=function(t,e,n){var i,a=this.type,r=this.startNode();switch(this.isLet(t)&&(a=J._var,i="let"),a){case J._break:case J._continue:return this.parseBreakContinueStatement(r,a.keyword);case J._debugger:return this.parseDebuggerStatement(r);case J._do:return this.parseDoStatement(r);case J._for:return this.parseForStatement(r);case J._function:return t&&(this.strict||"if"!==t&&"label"!==t)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(r,!1,!t);case J._class:return t&&this.unexpected(),this.parseClass(r,!0);case J._if:return this.parseIfStatement(r);case J._return:return this.parseReturnStatement(r);case J._switch:return this.parseSwitchStatement(r);case J._throw:return this.parseThrowStatement(r);case J._try:return this.parseTryStatement(r);case J._const:case J._var:return i=i||this.value,t&&"var"!==i&&this.unexpected(),this.parseVarStatement(r,i);case J._while:return this.parseWhileStatement(r);case J._with:return this.parseWithStatement(r);case J.braceL:return this.parseBlock(!0,r);case J.semi:return this.parseEmptyStatement(r);case J._export:case J._import:if(this.options.ecmaVersion>10&&a===J._import){at.lastIndex=this.pos;var o=at.exec(this.input),s=this.pos+o[0].length,c=this.input.charCodeAt(s);if(40===c||46===c)return this.parseExpressionStatement(r,this.parseExpression())}return this.options.allowImportExportEverywhere||(e||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),a===J._import?this.parseImport(r):this.parseExport(r,n);default:if(this.isAsyncFunction())return t&&this.unexpected(),this.next(),this.parseFunctionStatement(r,!0,!t);var l=this.value,u=this.parseExpression();return a===J.name&&"Identifier"===u.type&&this.eat(J.colon)?this.parseLabeledStatement(r,l,u,t):this.parseExpressionStatement(r,u)}},Ct.parseBreakContinueStatement=function(t,e){var n="break"===e;this.next(),this.eat(J.semi)||this.insertSemicolon()?t.label=null:this.type!==J.name?this.unexpected():(t.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var a=this.labels[i];if(null==t.label||a.name===t.label.name){if(null!=a.kind&&(n||"loop"===a.kind))break;if(t.label&&n)break}}return i===this.labels.length&&this.raise(t.start,"Unsyntactic "+e),this.finishNode(t,n?"BreakStatement":"ContinueStatement")},Ct.parseDebuggerStatement=function(t){return this.next(),this.semicolon(),this.finishNode(t,"DebuggerStatement")},Ct.parseDoStatement=function(t){return this.next(),this.labels.push(St),t.body=this.parseStatement("do"),this.labels.pop(),this.expect(J._while),t.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(J.semi):this.semicolon(),this.finishNode(t,"DoWhileStatement")},Ct.parseForStatement=function(t){this.next();var e=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(St),this.enterScope(0),this.expect(J.parenL),this.type===J.semi)return e>-1&&this.unexpected(e),this.parseFor(t,null);var n=this.isLet();if(this.type===J._var||this.type===J._const||n){var i=this.startNode(),a=n?"let":this.value;return this.next(),this.parseVar(i,!0,a),this.finishNode(i,"VariableDeclaration"),(this.type===J._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===i.declarations.length?(this.options.ecmaVersion>=9&&(this.type===J._in?e>-1&&this.unexpected(e):t.await=e>-1),this.parseForIn(t,i)):(e>-1&&this.unexpected(e),this.parseFor(t,i))}var r=this.isContextual("let"),o=!1,s=new Et,c=this.parseExpression(!(e>-1)||"await",s);return this.type===J._in||(o=this.options.ecmaVersion>=6&&this.isContextual("of"))?(this.options.ecmaVersion>=9&&(this.type===J._in?e>-1&&this.unexpected(e):t.await=e>-1),r&&o&&this.raise(c.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(c,!1,s),this.checkLValPattern(c),this.parseForIn(t,c)):(this.checkExpressionErrors(s,!0),e>-1&&this.unexpected(e),this.parseFor(t,c))},Ct.parseFunctionStatement=function(t,e,n){return this.next(),this.parseFunction(t,Dt|(n?0:It),!1,e)},Ct.parseIfStatement=function(t){return this.next(),t.test=this.parseParenExpression(),t.consequent=this.parseStatement("if"),t.alternate=this.eat(J._else)?this.parseStatement("if"):null,this.finishNode(t,"IfStatement")},Ct.parseReturnStatement=function(t){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(J.semi)||this.insertSemicolon()?t.argument=null:(t.argument=this.parseExpression(),this.semicolon()),this.finishNode(t,"ReturnStatement")},Ct.parseSwitchStatement=function(t){var e;this.next(),t.discriminant=this.parseParenExpression(),t.cases=[],this.expect(J.braceL),this.labels.push(Tt),this.enterScope(0);for(var n=!1;this.type!==J.braceR;)if(this.type===J._case||this.type===J._default){var i=this.type===J._case;e&&this.finishNode(e,"SwitchCase"),t.cases.push(e=this.startNode()),e.consequent=[],this.next(),i?e.test=this.parseExpression():(n&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),n=!0,e.test=null),this.expect(J.colon)}else e||this.unexpected(),e.consequent.push(this.parseStatement(null));return this.exitScope(),e&&this.finishNode(e,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(t,"SwitchStatement")},Ct.parseThrowStatement=function(t){return this.next(),Q.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),t.argument=this.parseExpression(),this.semicolon(),this.finishNode(t,"ThrowStatement")};var At=[];Ct.parseCatchClauseParam=function(){var t=this.parseBindingAtom(),e="Identifier"===t.type;return this.enterScope(e?32:0),this.checkLValPattern(t,e?4:2),this.expect(J.parenR),t},Ct.parseTryStatement=function(t){if(this.next(),t.block=this.parseBlock(),t.handler=null,this.type===J._catch){var e=this.startNode();this.next(),this.eat(J.parenL)?e.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),e.param=null,this.enterScope(0)),e.body=this.parseBlock(!1),this.exitScope(),t.handler=this.finishNode(e,"CatchClause")}return t.finalizer=this.eat(J._finally)?this.parseBlock():null,t.handler||t.finalizer||this.raise(t.start,"Missing catch or finally clause"),this.finishNode(t,"TryStatement")},Ct.parseVarStatement=function(t,e,n){return this.next(),this.parseVar(t,!1,e,n),this.semicolon(),this.finishNode(t,"VariableDeclaration")},Ct.parseWhileStatement=function(t){return this.next(),t.test=this.parseParenExpression(),this.labels.push(St),t.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(t,"WhileStatement")},Ct.parseWithStatement=function(t){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),t.object=this.parseParenExpression(),t.body=this.parseStatement("with"),this.finishNode(t,"WithStatement")},Ct.parseEmptyStatement=function(t){return this.next(),this.finishNode(t,"EmptyStatement")},Ct.parseLabeledStatement=function(t,e,n,i){for(var a=0,r=this.labels;a<r.length;a+=1){r[a].name===e&&this.raise(n.start,"Label '"+e+"' is already declared")}for(var o=this.type.isLoop?"loop":this.type===J._switch?"switch":null,s=this.labels.length-1;s>=0;s--){var c=this.labels[s];if(c.statementStart!==t.start)break;c.statementStart=this.start,c.kind=o}return this.labels.push({name:e,kind:o,statementStart:this.start}),t.body=this.parseStatement(i?-1===i.indexOf("label")?i+"label":i:"label"),this.labels.pop(),t.label=n,this.finishNode(t,"LabeledStatement")},Ct.parseExpressionStatement=function(t,e){return t.expression=e,this.semicolon(),this.finishNode(t,"ExpressionStatement")},Ct.parseBlock=function(t,e,n){for(void 0===t&&(t=!0),void 0===e&&(e=this.startNode()),e.body=[],this.expect(J.braceL),t&&this.enterScope(0);this.type!==J.braceR;){var i=this.parseStatement(null);e.body.push(i)}return n&&(this.strict=!1),this.next(),t&&this.exitScope(),this.finishNode(e,"BlockStatement")},Ct.parseFor=function(t,e){return t.init=e,this.expect(J.semi),t.test=this.type===J.semi?null:this.parseExpression(),this.expect(J.semi),t.update=this.type===J.parenR?null:this.parseExpression(),this.expect(J.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,"ForStatement")},Ct.parseForIn=function(t,e){var n=this.type===J._in;return this.next(),"VariableDeclaration"===e.type&&null!=e.declarations[0].init&&(!n||this.options.ecmaVersion<8||this.strict||"var"!==e.kind||"Identifier"!==e.declarations[0].id.type)&&this.raise(e.start,(n?"for-in":"for-of")+" loop variable declaration may not have an initializer"),t.left=e,t.right=n?this.parseExpression():this.parseMaybeAssign(),this.expect(J.parenR),t.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(t,n?"ForInStatement":"ForOfStatement")},Ct.parseVar=function(t,e,n,i){for(t.declarations=[],t.kind=n;;){var a=this.startNode();if(this.parseVarId(a,n),this.eat(J.eq)?a.init=this.parseMaybeAssign(e):i||"const"!==n||this.type===J._in||this.options.ecmaVersion>=6&&this.isContextual("of")?i||"Identifier"===a.id.type||e&&(this.type===J._in||this.isContextual("of"))?a.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),t.declarations.push(this.finishNode(a,"VariableDeclarator")),!this.eat(J.comma))break}return t},Ct.parseVarId=function(t,e){t.id=this.parseBindingAtom(),this.checkLValPattern(t.id,"var"===e?1:2,!1)};var Dt=1,It=2;function Lt(t,e){var n=e.key.name,i=t[n],a="true";return"MethodDefinition"!==e.type||"get"!==e.kind&&"set"!==e.kind||(a=(e.static?"s":"i")+e.kind),"iget"===i&&"iset"===a||"iset"===i&&"iget"===a||"sget"===i&&"sset"===a||"sset"===i&&"sget"===a?(t[n]="true",!1):!!i||(t[n]=a,!1)}function Ot(t,e){var n=t.computed,i=t.key;return!n&&("Identifier"===i.type&&i.name===e||"Literal"===i.type&&i.value===e)}Ct.parseFunction=function(t,e,n,i,a){this.initFunction(t),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!i)&&(this.type===J.star&&e&It&&this.unexpected(),t.generator=this.eat(J.star)),this.options.ecmaVersion>=8&&(t.async=!!i),e&Dt&&(t.id=4&e&&this.type!==J.name?null:this.parseIdent(),!t.id||e&It||this.checkLValSimple(t.id,this.strict||t.generator||t.async?this.treatFunctionsAsVar?1:2:3));var r=this.yieldPos,o=this.awaitPos,s=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(wt(t.async,t.generator)),e&Dt||(t.id=this.type===J.name?this.parseIdent():null),this.parseFunctionParams(t),this.parseFunctionBody(t,n,!1,a),this.yieldPos=r,this.awaitPos=o,this.awaitIdentPos=s,this.finishNode(t,e&Dt?"FunctionDeclaration":"FunctionExpression")},Ct.parseFunctionParams=function(t){this.expect(J.parenL),t.params=this.parseBindingList(J.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},Ct.parseClass=function(t,e){this.next();var n=this.strict;this.strict=!0,this.parseClassId(t,e),this.parseClassSuper(t);var i=this.enterClassBody(),a=this.startNode(),r=!1;for(a.body=[],this.expect(J.braceL);this.type!==J.braceR;){var o=this.parseClassElement(null!==t.superClass);o&&(a.body.push(o),"MethodDefinition"===o.type&&"constructor"===o.kind?(r&&this.raiseRecoverable(o.start,"Duplicate constructor in the same class"),r=!0):o.key&&"PrivateIdentifier"===o.key.type&&Lt(i,o)&&this.raiseRecoverable(o.key.start,"Identifier '#"+o.key.name+"' has already been declared"))}return this.strict=n,this.next(),t.body=this.finishNode(a,"ClassBody"),this.exitClassBody(),this.finishNode(t,e?"ClassDeclaration":"ClassExpression")},Ct.parseClassElement=function(t){if(this.eat(J.semi))return null;var e=this.options.ecmaVersion,n=this.startNode(),i="",a=!1,r=!1,o="method",s=!1;if(this.eatContextual("static")){if(e>=13&&this.eat(J.braceL))return this.parseClassStaticBlock(n),n;this.isClassElementNameStart()||this.type===J.star?s=!0:i="static"}if(n.static=s,!i&&e>=8&&this.eatContextual("async")&&(!this.isClassElementNameStart()&&this.type!==J.star||this.canInsertSemicolon()?i="async":r=!0),!i&&(e>=9||!r)&&this.eat(J.star)&&(a=!0),!i&&!r&&!a){var c=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?o=c:i=c)}if(i?(n.computed=!1,n.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),n.key.name=i,this.finishNode(n.key,"Identifier")):this.parseClassElementName(n),e<13||this.type===J.parenL||"method"!==o||a||r){var l=!n.static&&Ot(n,"constructor"),u=l&&t;l&&"method"!==o&&this.raise(n.key.start,"Constructor can't have get/set modifier"),n.kind=l?"constructor":o,this.parseClassMethod(n,a,r,u)}else this.parseClassField(n);return n},Ct.isClassElementNameStart=function(){return this.type===J.name||this.type===J.privateId||this.type===J.num||this.type===J.string||this.type===J.bracketL||this.type.keyword},Ct.parseClassElementName=function(t){this.type===J.privateId?("constructor"===this.value&&this.raise(this.start,"Classes can't have an element named '#constructor'"),t.computed=!1,t.key=this.parsePrivateIdent()):this.parsePropertyName(t)},Ct.parseClassMethod=function(t,e,n,i){var a=t.key;"constructor"===t.kind?(e&&this.raise(a.start,"Constructor can't be a generator"),n&&this.raise(a.start,"Constructor can't be an async method")):t.static&&Ot(t,"prototype")&&this.raise(a.start,"Classes may not have a static property named prototype");var r=t.value=this.parseMethod(e,n,i);return"get"===t.kind&&0!==r.params.length&&this.raiseRecoverable(r.start,"getter should have no params"),"set"===t.kind&&1!==r.params.length&&this.raiseRecoverable(r.start,"setter should have exactly one param"),"set"===t.kind&&"RestElement"===r.params[0].type&&this.raiseRecoverable(r.params[0].start,"Setter cannot use rest params"),this.finishNode(t,"MethodDefinition")},Ct.parseClassField=function(t){if(Ot(t,"constructor")?this.raise(t.key.start,"Classes can't have a field named 'constructor'"):t.static&&Ot(t,"prototype")&&this.raise(t.key.start,"Classes can't have a static field named 'prototype'"),this.eat(J.eq)){var e=this.currentThisScope(),n=e.inClassFieldInit;e.inClassFieldInit=!0,t.value=this.parseMaybeAssign(),e.inClassFieldInit=n}else t.value=null;return this.semicolon(),this.finishNode(t,"PropertyDefinition")},Ct.parseClassStaticBlock=function(t){t.body=[];var e=this.labels;for(this.labels=[],this.enterScope(320);this.type!==J.braceR;){var n=this.parseStatement(null);t.body.push(n)}return this.next(),this.exitScope(),this.labels=e,this.finishNode(t,"StaticBlock")},Ct.parseClassId=function(t,e){this.type===J.name?(t.id=this.parseIdent(),e&&this.checkLValSimple(t.id,2,!1)):(!0===e&&this.unexpected(),t.id=null)},Ct.parseClassSuper=function(t){t.superClass=this.eat(J._extends)?this.parseExprSubscripts(null,!1):null},Ct.enterClassBody=function(){var t={declared:Object.create(null),used:[]};return this.privateNameStack.push(t),t.declared},Ct.exitClassBody=function(){var t=this.privateNameStack.pop(),e=t.declared,n=t.used;if(this.options.checkPrivateFields)for(var i=this.privateNameStack.length,a=0===i?null:this.privateNameStack[i-1],r=0;r<n.length;++r){var o=n[r];ct(e,o.name)||(a?a.used.push(o):this.raiseRecoverable(o.start,"Private field '#"+o.name+"' must be declared in an enclosing class"))}},Ct.parseExportAllDeclaration=function(t,e){return this.options.ecmaVersion>=11&&(this.eatContextual("as")?(t.exported=this.parseModuleExportName(),this.checkExport(e,t.exported,this.lastTokStart)):t.exported=null),this.expectContextual("from"),this.type!==J.string&&this.unexpected(),t.source=this.parseExprAtom(),this.semicolon(),this.finishNode(t,"ExportAllDeclaration")},Ct.parseExport=function(t,e){if(this.next(),this.eat(J.star))return this.parseExportAllDeclaration(t,e);if(this.eat(J._default))return this.checkExport(e,"default",this.lastTokStart),t.declaration=this.parseExportDefaultDeclaration(),this.finishNode(t,"ExportDefaultDeclaration");if(this.shouldParseExportStatement())t.declaration=this.parseExportDeclaration(t),"VariableDeclaration"===t.declaration.type?this.checkVariableExport(e,t.declaration.declarations):this.checkExport(e,t.declaration.id,t.declaration.id.start),t.specifiers=[],t.source=null;else{if(t.declaration=null,t.specifiers=this.parseExportSpecifiers(e),this.eatContextual("from"))this.type!==J.string&&this.unexpected(),t.source=this.parseExprAtom();else{for(var n=0,i=t.specifiers;n<i.length;n+=1){var a=i[n];this.checkUnreserved(a.local),this.checkLocalExport(a.local),"Literal"===a.local.type&&this.raise(a.local.start,"A string literal cannot be used as an exported binding without `from`.")}t.source=null}this.semicolon()}return this.finishNode(t,"ExportNamedDeclaration")},Ct.parseExportDeclaration=function(t){return this.parseStatement(null)},Ct.parseExportDefaultDeclaration=function(){var t;if(this.type===J._function||(t=this.isAsyncFunction())){var e=this.startNode();return this.next(),t&&this.next(),this.parseFunction(e,4|Dt,!1,t)}if(this.type===J._class){var n=this.startNode();return this.parseClass(n,"nullableID")}var i=this.parseMaybeAssign();return this.semicolon(),i},Ct.checkExport=function(t,e,n){t&&("string"!=typeof e&&(e="Identifier"===e.type?e.name:e.value),ct(t,e)&&this.raiseRecoverable(n,"Duplicate export '"+e+"'"),t[e]=!0)},Ct.checkPatternExport=function(t,e){var n=e.type;if("Identifier"===n)this.checkExport(t,e,e.start);else if("ObjectPattern"===n)for(var i=0,a=e.properties;i<a.length;i+=1){var r=a[i];this.checkPatternExport(t,r)}else if("ArrayPattern"===n)for(var o=0,s=e.elements;o<s.length;o+=1){var c=s[o];c&&this.checkPatternExport(t,c)}else"Property"===n?this.checkPatternExport(t,e.value):"AssignmentPattern"===n?this.checkPatternExport(t,e.left):"RestElement"===n?this.checkPatternExport(t,e.argument):"ParenthesizedExpression"===n&&this.checkPatternExport(t,e.expression)},Ct.checkVariableExport=function(t,e){if(t)for(var n=0,i=e;n<i.length;n+=1){var a=i[n];this.checkPatternExport(t,a.id)}},Ct.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},Ct.parseExportSpecifier=function(t){var e=this.startNode();return e.local=this.parseModuleExportName(),e.exported=this.eatContextual("as")?this.parseModuleExportName():e.local,this.checkExport(t,e.exported,e.exported.start),this.finishNode(e,"ExportSpecifier")},Ct.parseExportSpecifiers=function(t){var e=[],n=!0;for(this.expect(J.braceL);!this.eat(J.braceR);){if(n)n=!1;else if(this.expect(J.comma),this.afterTrailingComma(J.braceR))break;e.push(this.parseExportSpecifier(t))}return e},Ct.parseImport=function(t){return this.next(),this.type===J.string?(t.specifiers=At,t.source=this.parseExprAtom()):(t.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),t.source=this.type===J.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(t,"ImportDeclaration")},Ct.parseImportSpecifier=function(){var t=this.startNode();return t.imported=this.parseModuleExportName(),this.eatContextual("as")?t.local=this.parseIdent():(this.checkUnreserved(t.imported),t.local=t.imported),this.checkLValSimple(t.local,2),this.finishNode(t,"ImportSpecifier")},Ct.parseImportDefaultSpecifier=function(){var t=this.startNode();return t.local=this.parseIdent(),this.checkLValSimple(t.local,2),this.finishNode(t,"ImportDefaultSpecifier")},Ct.parseImportNamespaceSpecifier=function(){var t=this.startNode();return this.next(),this.expectContextual("as"),t.local=this.parseIdent(),this.checkLValSimple(t.local,2),this.finishNode(t,"ImportNamespaceSpecifier")},Ct.parseImportSpecifiers=function(){var t=[],e=!0;if(this.type===J.name&&(t.push(this.parseImportDefaultSpecifier()),!this.eat(J.comma)))return t;if(this.type===J.star)return t.push(this.parseImportNamespaceSpecifier()),t;for(this.expect(J.braceL);!this.eat(J.braceR);){if(e)e=!1;else if(this.expect(J.comma),this.afterTrailingComma(J.braceR))break;t.push(this.parseImportSpecifier())}return t},Ct.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===J.string){var t=this.parseLiteral(this.value);return ht.test(t.value)&&this.raise(t.start,"An export name cannot include a lone surrogate."),t}return this.parseIdent(!0)},Ct.adaptDirectivePrologue=function(t){for(var e=0;e<t.length&&this.isDirectiveCandidate(t[e]);++e)t[e].directive=t[e].expression.raw.slice(1,-1)},Ct.isDirectiveCandidate=function(t){return this.options.ecmaVersion>=5&&"ExpressionStatement"===t.type&&"Literal"===t.expression.type&&"string"==typeof t.expression.value&&('"'===this.input[t.start]||"'"===this.input[t.start])};var Mt=xt.prototype;Mt.toAssignable=function(t,e,n){if(this.options.ecmaVersion>=6&&t)switch(t.type){case"Identifier":this.inAsync&&"await"===t.name&&this.raise(t.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":t.type="ObjectPattern",n&&this.checkPatternErrors(n,!0);for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.toAssignable(r,e),"RestElement"!==r.type||"ArrayPattern"!==r.argument.type&&"ObjectPattern"!==r.argument.type||this.raise(r.argument.start,"Unexpected token")}break;case"Property":"init"!==t.kind&&this.raise(t.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(t.value,e);break;case"ArrayExpression":t.type="ArrayPattern",n&&this.checkPatternErrors(n,!0),this.toAssignableList(t.elements,e);break;case"SpreadElement":t.type="RestElement",this.toAssignable(t.argument,e),"AssignmentPattern"===t.argument.type&&this.raise(t.argument.start,"Rest elements cannot have a default value");break;case"AssignmentExpression":"="!==t.operator&&this.raise(t.left.end,"Only '=' operator can be used for specifying default value."),t.type="AssignmentPattern",delete t.operator,this.toAssignable(t.left,e);break;case"ParenthesizedExpression":this.toAssignable(t.expression,e,n);break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":if(!e)break;default:this.raise(t.start,"Assigning to rvalue")}else n&&this.checkPatternErrors(n,!0);return t},Mt.toAssignableList=function(t,e){for(var n=t.length,i=0;i<n;i++){var a=t[i];a&&this.toAssignable(a,e)}if(n){var r=t[n-1];6===this.options.ecmaVersion&&e&&r&&"RestElement"===r.type&&"Identifier"!==r.argument.type&&this.unexpected(r.argument.start)}return t},Mt.parseSpread=function(t){var e=this.startNode();return this.next(),e.argument=this.parseMaybeAssign(!1,t),this.finishNode(e,"SpreadElement")},Mt.parseRestBinding=function(){var t=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==J.name&&this.unexpected(),t.argument=this.parseBindingAtom(),this.finishNode(t,"RestElement")},Mt.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case J.bracketL:var t=this.startNode();return this.next(),t.elements=this.parseBindingList(J.bracketR,!0,!0),this.finishNode(t,"ArrayPattern");case J.braceL:return this.parseObj(!0)}return this.parseIdent()},Mt.parseBindingList=function(t,e,n,i){for(var a=[],r=!0;!this.eat(t);)if(r?r=!1:this.expect(J.comma),e&&this.type===J.comma)a.push(null);else{if(n&&this.afterTrailingComma(t))break;if(this.type===J.ellipsis){var o=this.parseRestBinding();this.parseBindingListItem(o),a.push(o),this.type===J.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.expect(t);break}a.push(this.parseAssignableListItem(i))}return a},Mt.parseAssignableListItem=function(t){var e=this.parseMaybeDefault(this.start,this.startLoc);return this.parseBindingListItem(e),e},Mt.parseBindingListItem=function(t){return t},Mt.parseMaybeDefault=function(t,e,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(J.eq))return n;var i=this.startNodeAt(t,e);return i.left=n,i.right=this.parseMaybeAssign(),this.finishNode(i,"AssignmentPattern")},Mt.checkLValSimple=function(t,e,n){void 0===e&&(e=0);var i=0!==e;switch(t.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(t.name)&&this.raiseRecoverable(t.start,(i?"Binding ":"Assigning to ")+t.name+" in strict mode"),i&&(2===e&&"let"===t.name&&this.raiseRecoverable(t.start,"let is disallowed as a lexically bound name"),n&&(ct(n,t.name)&&this.raiseRecoverable(t.start,"Argument name clash"),n[t.name]=!0),5!==e&&this.declareName(t.name,e,t.start));break;case"ChainExpression":this.raiseRecoverable(t.start,"Optional chaining cannot appear in left-hand side");break;case"MemberExpression":i&&this.raiseRecoverable(t.start,"Binding member expression");break;case"ParenthesizedExpression":return i&&this.raiseRecoverable(t.start,"Binding parenthesized expression"),this.checkLValSimple(t.expression,e,n);default:this.raise(t.start,(i?"Binding":"Assigning to")+" rvalue")}},Mt.checkLValPattern=function(t,e,n){switch(void 0===e&&(e=0),t.type){case"ObjectPattern":for(var i=0,a=t.properties;i<a.length;i+=1){var r=a[i];this.checkLValInnerPattern(r,e,n)}break;case"ArrayPattern":for(var o=0,s=t.elements;o<s.length;o+=1){var c=s[o];c&&this.checkLValInnerPattern(c,e,n)}break;default:this.checkLValSimple(t,e,n)}},Mt.checkLValInnerPattern=function(t,e,n){switch(void 0===e&&(e=0),t.type){case"Property":this.checkLValInnerPattern(t.value,e,n);break;case"AssignmentPattern":this.checkLValPattern(t.left,e,n);break;case"RestElement":this.checkLValPattern(t.argument,e,n);break;default:this.checkLValPattern(t,e,n)}};var Nt=function(t,e,n,i,a){this.token=t,this.isExpr=!!e,this.preserveSpace=!!n,this.override=i,this.generator=!!a},Bt={b_stat:new Nt("{",!1),b_expr:new Nt("{",!0),b_tmpl:new Nt("${",!1),p_stat:new Nt("(",!1),p_expr:new Nt("(",!0),q_tmpl:new Nt("`",!0,!0,(function(t){return t.tryReadTemplateToken()})),f_stat:new Nt("function",!1),f_expr:new Nt("function",!0),f_expr_gen:new Nt("function",!0,!1,null,!0),f_gen:new Nt("function",!1,!1,null,!0)},Pt=xt.prototype;Pt.initialContext=function(){return[Bt.b_stat]},Pt.curContext=function(){return this.context[this.context.length-1]},Pt.braceIsBlock=function(t){var e=this.curContext();return e===Bt.f_expr||e===Bt.f_stat||(t!==J.colon||e!==Bt.b_stat&&e!==Bt.b_expr?t===J._return||t===J.name&&this.exprAllowed?Q.test(this.input.slice(this.lastTokEnd,this.start)):t===J._else||t===J.semi||t===J.eof||t===J.parenR||t===J.arrow||(t===J.braceL?e===Bt.b_stat:t!==J._var&&t!==J._const&&t!==J.name&&!this.exprAllowed):!e.isExpr)},Pt.inGeneratorContext=function(){for(var t=this.context.length-1;t>=1;t--){var e=this.context[t];if("function"===e.token)return e.generator}return!1},Pt.updateContext=function(t){var e,n=this.type;n.keyword&&t===J.dot?this.exprAllowed=!1:(e=n.updateContext)?e.call(this,t):this.exprAllowed=n.beforeExpr},Pt.overrideContext=function(t){this.curContext()!==t&&(this.context[this.context.length-1]=t)},J.parenR.updateContext=J.braceR.updateContext=function(){if(1!==this.context.length){var t=this.context.pop();t===Bt.b_stat&&"function"===this.curContext().token&&(t=this.context.pop()),this.exprAllowed=!t.isExpr}else this.exprAllowed=!0},J.braceL.updateContext=function(t){this.context.push(this.braceIsBlock(t)?Bt.b_stat:Bt.b_expr),this.exprAllowed=!0},J.dollarBraceL.updateContext=function(){this.context.push(Bt.b_tmpl),this.exprAllowed=!0},J.parenL.updateContext=function(t){var e=t===J._if||t===J._for||t===J._with||t===J._while;this.context.push(e?Bt.p_stat:Bt.p_expr),this.exprAllowed=!0},J.incDec.updateContext=function(){},J._function.updateContext=J._class.updateContext=function(t){!t.beforeExpr||t===J._else||t===J.semi&&this.curContext()!==Bt.p_stat||t===J._return&&Q.test(this.input.slice(this.lastTokEnd,this.start))||(t===J.colon||t===J.braceL)&&this.curContext()===Bt.b_stat?this.context.push(Bt.f_stat):this.context.push(Bt.f_expr),this.exprAllowed=!1},J.backQuote.updateContext=function(){this.curContext()===Bt.q_tmpl?this.context.pop():this.context.push(Bt.q_tmpl),this.exprAllowed=!1},J.star.updateContext=function(t){if(t===J._function){var e=this.context.length-1;this.context[e]===Bt.f_expr?this.context[e]=Bt.f_expr_gen:this.context[e]=Bt.f_gen}this.exprAllowed=!0},J.name.updateContext=function(t){var e=!1;this.options.ecmaVersion>=6&&t!==J.dot&&("of"===this.value&&!this.exprAllowed||"yield"===this.value&&this.inGeneratorContext())&&(e=!0),this.exprAllowed=e};var Ft=xt.prototype;function jt(t){return"MemberExpression"===t.type&&"PrivateIdentifier"===t.property.type||"ChainExpression"===t.type&&jt(t.expression)}Ft.checkPropClash=function(t,e,n){if(!(this.options.ecmaVersion>=9&&"SpreadElement"===t.type||this.options.ecmaVersion>=6&&(t.computed||t.method||t.shorthand))){var i,a=t.key;switch(a.type){case"Identifier":i=a.name;break;case"Literal":i=String(a.value);break;default:return}var r=t.kind;if(this.options.ecmaVersion>=6)"__proto__"===i&&"init"===r&&(e.proto&&(n?n.doubleProto<0&&(n.doubleProto=a.start):this.raiseRecoverable(a.start,"Redefinition of __proto__ property")),e.proto=!0);else{var o=e[i="$"+i];if(o)("init"===r?this.strict&&o.init||o.get||o.set:o.init||o[r])&&this.raiseRecoverable(a.start,"Redefinition of property");else o=e[i]={init:!1,get:!1,set:!1};o[r]=!0}}},Ft.parseExpression=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeAssign(t,e);if(this.type===J.comma){var r=this.startNodeAt(n,i);for(r.expressions=[a];this.eat(J.comma);)r.expressions.push(this.parseMaybeAssign(t,e));return this.finishNode(r,"SequenceExpression")}return a},Ft.parseMaybeAssign=function(t,e,n){if(this.isContextual("yield")){if(this.inGenerator)return this.parseYield(t);this.exprAllowed=!1}var i=!1,a=-1,r=-1,o=-1;e?(a=e.parenthesizedAssign,r=e.trailingComma,o=e.doubleProto,e.parenthesizedAssign=e.trailingComma=-1):(e=new Et,i=!0);var s=this.start,c=this.startLoc;this.type!==J.parenL&&this.type!==J.name||(this.potentialArrowAt=this.start,this.potentialArrowInForAwait="await"===t);var l=this.parseMaybeConditional(t,e);if(n&&(l=n.call(this,l,s,c)),this.type.isAssign){var u=this.startNodeAt(s,c);return u.operator=this.value,this.type===J.eq&&(l=this.toAssignable(l,!1,e)),i||(e.parenthesizedAssign=e.trailingComma=e.doubleProto=-1),e.shorthandAssign>=l.start&&(e.shorthandAssign=-1),this.type===J.eq?this.checkLValPattern(l):this.checkLValSimple(l),u.left=l,this.next(),u.right=this.parseMaybeAssign(t),o>-1&&(e.doubleProto=o),this.finishNode(u,"AssignmentExpression")}return i&&this.checkExpressionErrors(e,!0),a>-1&&(e.parenthesizedAssign=a),r>-1&&(e.trailingComma=r),l},Ft.parseMaybeConditional=function(t,e){var n=this.start,i=this.startLoc,a=this.parseExprOps(t,e);if(this.checkExpressionErrors(e))return a;if(this.eat(J.question)){var r=this.startNodeAt(n,i);return r.test=a,r.consequent=this.parseMaybeAssign(),this.expect(J.colon),r.alternate=this.parseMaybeAssign(t),this.finishNode(r,"ConditionalExpression")}return a},Ft.parseExprOps=function(t,e){var n=this.start,i=this.startLoc,a=this.parseMaybeUnary(e,!1,!1,t);return this.checkExpressionErrors(e)||a.start===n&&"ArrowFunctionExpression"===a.type?a:this.parseExprOp(a,n,i,-1,t)},Ft.parseExprOp=function(t,e,n,i,a){var r=this.type.binop;if(null!=r&&(!a||this.type!==J._in)&&r>i){var o=this.type===J.logicalOR||this.type===J.logicalAND,s=this.type===J.coalesce;s&&(r=J.logicalAND.binop);var c=this.value;this.next();var l=this.start,u=this.startLoc,d=this.parseExprOp(this.parseMaybeUnary(null,!1,!1,a),l,u,r,a),h=this.buildBinary(e,n,t,d,c,o||s);return(o&&this.type===J.coalesce||s&&(this.type===J.logicalOR||this.type===J.logicalAND))&&this.raiseRecoverable(this.start,"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"),this.parseExprOp(h,e,n,i,a)}return t},Ft.buildBinary=function(t,e,n,i,a,r){"PrivateIdentifier"===i.type&&this.raise(i.start,"Private identifier can only be left side of binary expression");var o=this.startNodeAt(t,e);return o.left=n,o.operator=a,o.right=i,this.finishNode(o,r?"LogicalExpression":"BinaryExpression")},Ft.parseMaybeUnary=function(t,e,n,i){var a,r=this.start,o=this.startLoc;if(this.isContextual("await")&&this.canAwait)a=this.parseAwait(i),e=!0;else if(this.type.prefix){var s=this.startNode(),c=this.type===J.incDec;s.operator=this.value,s.prefix=!0,this.next(),s.argument=this.parseMaybeUnary(null,!0,c,i),this.checkExpressionErrors(t,!0),c?this.checkLValSimple(s.argument):this.strict&&"delete"===s.operator&&"Identifier"===s.argument.type?this.raiseRecoverable(s.start,"Deleting local variable in strict mode"):"delete"===s.operator&&jt(s.argument)?this.raiseRecoverable(s.start,"Private fields can not be deleted"):e=!0,a=this.finishNode(s,c?"UpdateExpression":"UnaryExpression")}else if(e||this.type!==J.privateId){if(a=this.parseExprSubscripts(t,i),this.checkExpressionErrors(t))return a;for(;this.type.postfix&&!this.canInsertSemicolon();){var l=this.startNodeAt(r,o);l.operator=this.value,l.prefix=!1,l.argument=a,this.checkLValSimple(a),this.next(),a=this.finishNode(l,"UpdateExpression")}}else(i||0===this.privateNameStack.length)&&this.options.checkPrivateFields&&this.unexpected(),a=this.parsePrivateIdent(),this.type!==J._in&&this.unexpected();return n||!this.eat(J.starstar)?a:e?void this.unexpected(this.lastTokStart):this.buildBinary(r,o,a,this.parseMaybeUnary(null,!1,!1,i),"**",!1)},Ft.parseExprSubscripts=function(t,e){var n=this.start,i=this.startLoc,a=this.parseExprAtom(t,e);if("ArrowFunctionExpression"===a.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd))return a;var r=this.parseSubscripts(a,n,i,!1,e);return t&&"MemberExpression"===r.type&&(t.parenthesizedAssign>=r.start&&(t.parenthesizedAssign=-1),t.parenthesizedBind>=r.start&&(t.parenthesizedBind=-1),t.trailingComma>=r.start&&(t.trailingComma=-1)),r},Ft.parseSubscripts=function(t,e,n,i,a){for(var r=this.options.ecmaVersion>=8&&"Identifier"===t.type&&"async"===t.name&&this.lastTokEnd===t.end&&!this.canInsertSemicolon()&&t.end-t.start==5&&this.potentialArrowAt===t.start,o=!1;;){var s=this.parseSubscript(t,e,n,i,r,o,a);if(s.optional&&(o=!0),s===t||"ArrowFunctionExpression"===s.type){if(o){var c=this.startNodeAt(e,n);c.expression=s,s=this.finishNode(c,"ChainExpression")}return s}t=s}},Ft.shouldParseAsyncArrow=function(){return!this.canInsertSemicolon()&&this.eat(J.arrow)},Ft.parseSubscriptAsyncArrow=function(t,e,n,i){return this.parseArrowExpression(this.startNodeAt(t,e),n,!0,i)},Ft.parseSubscript=function(t,e,n,i,a,r,o){var s=this.options.ecmaVersion>=11,c=s&&this.eat(J.questionDot);i&&c&&this.raise(this.lastTokStart,"Optional chaining cannot appear in the callee of new expressions");var l=this.eat(J.bracketL);if(l||c&&this.type!==J.parenL&&this.type!==J.backQuote||this.eat(J.dot)){var u=this.startNodeAt(e,n);u.object=t,l?(u.property=this.parseExpression(),this.expect(J.bracketR)):this.type===J.privateId&&"Super"!==t.type?u.property=this.parsePrivateIdent():u.property=this.parseIdent("never"!==this.options.allowReserved),u.computed=!!l,s&&(u.optional=c),t=this.finishNode(u,"MemberExpression")}else if(!i&&this.eat(J.parenL)){var d=new Et,h=this.yieldPos,f=this.awaitPos,g=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var p=this.parseExprList(J.parenR,this.options.ecmaVersion>=8,!1,d);if(a&&!c&&this.shouldParseAsyncArrow())return this.checkPatternErrors(d,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,"Cannot use 'await' as identifier inside an async function"),this.yieldPos=h,this.awaitPos=f,this.awaitIdentPos=g,this.parseSubscriptAsyncArrow(e,n,p,o);this.checkExpressionErrors(d,!0),this.yieldPos=h||this.yieldPos,this.awaitPos=f||this.awaitPos,this.awaitIdentPos=g||this.awaitIdentPos;var b=this.startNodeAt(e,n);b.callee=t,b.arguments=p,s&&(b.optional=c),t=this.finishNode(b,"CallExpression")}else if(this.type===J.backQuote){(c||r)&&this.raise(this.start,"Optional chaining cannot appear in the tag of tagged template expressions");var m=this.startNodeAt(e,n);m.tag=t,m.quasi=this.parseTemplate({isTagged:!0}),t=this.finishNode(m,"TaggedTemplateExpression")}return t},Ft.parseExprAtom=function(t,e,n){this.type===J.slash&&this.readRegexp();var i,a=this.potentialArrowAt===this.start;switch(this.type){case J._super:return this.allowSuper||this.raise(this.start,"'super' keyword outside a method"),i=this.startNode(),this.next(),this.type!==J.parenL||this.allowDirectSuper||this.raise(i.start,"super() call outside constructor of a subclass"),this.type!==J.dot&&this.type!==J.bracketL&&this.type!==J.parenL&&this.unexpected(),this.finishNode(i,"Super");case J._this:return i=this.startNode(),this.next(),this.finishNode(i,"ThisExpression");case J.name:var r=this.start,o=this.startLoc,s=this.containsEsc,c=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!s&&"async"===c.name&&!this.canInsertSemicolon()&&this.eat(J._function))return this.overrideContext(Bt.f_expr),this.parseFunction(this.startNodeAt(r,o),0,!1,!0,e);if(a&&!this.canInsertSemicolon()){if(this.eat(J.arrow))return this.parseArrowExpression(this.startNodeAt(r,o),[c],!1,e);if(this.options.ecmaVersion>=8&&"async"===c.name&&this.type===J.name&&!s&&(!this.potentialArrowInForAwait||"of"!==this.value||this.containsEsc))return c=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(J.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(r,o),[c],!0,e)}return c;case J.regexp:var l=this.value;return(i=this.parseLiteral(l.value)).regex={pattern:l.pattern,flags:l.flags},i;case J.num:case J.string:return this.parseLiteral(this.value);case J._null:case J._true:case J._false:return(i=this.startNode()).value=this.type===J._null?null:this.type===J._true,i.raw=this.type.keyword,this.next(),this.finishNode(i,"Literal");case J.parenL:var u=this.start,d=this.parseParenAndDistinguishExpression(a,e);return t&&(t.parenthesizedAssign<0&&!this.isSimpleAssignTarget(d)&&(t.parenthesizedAssign=u),t.parenthesizedBind<0&&(t.parenthesizedBind=u)),d;case J.bracketL:return i=this.startNode(),this.next(),i.elements=this.parseExprList(J.bracketR,!0,!0,t),this.finishNode(i,"ArrayExpression");case J.braceL:return this.overrideContext(Bt.b_expr),this.parseObj(!1,t);case J._function:return i=this.startNode(),this.next(),this.parseFunction(i,0);case J._class:return this.parseClass(this.startNode(),!1);case J._new:return this.parseNew();case J.backQuote:return this.parseTemplate();case J._import:return this.options.ecmaVersion>=11?this.parseExprImport(n):this.unexpected();default:return this.parseExprAtomDefault()}},Ft.parseExprAtomDefault=function(){this.unexpected()},Ft.parseExprImport=function(t){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import");var n=this.parseIdent(!0);return this.type!==J.parenL||t?this.type===J.dot?(e.meta=n,this.parseImportMeta(e)):void this.unexpected():this.parseDynamicImport(e)},Ft.parseDynamicImport=function(t){if(this.next(),t.source=this.parseMaybeAssign(),!this.eat(J.parenR)){var e=this.start;this.eat(J.comma)&&this.eat(J.parenR)?this.raiseRecoverable(e,"Trailing comma is not allowed in import()"):this.unexpected(e)}return this.finishNode(t,"ImportExpression")},Ft.parseImportMeta=function(t){this.next();var e=this.containsEsc;return t.property=this.parseIdent(!0),"meta"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for import is 'import.meta'"),e&&this.raiseRecoverable(t.start,"'import.meta' must not contain escaped characters"),"module"===this.options.sourceType||this.options.allowImportExportEverywhere||this.raiseRecoverable(t.start,"Cannot use 'import.meta' outside a module"),this.finishNode(t,"MetaProperty")},Ft.parseLiteral=function(t){var e=this.startNode();return e.value=t,e.raw=this.input.slice(this.start,this.end),110===e.raw.charCodeAt(e.raw.length-1)&&(e.bigint=e.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(e,"Literal")},Ft.parseParenExpression=function(){this.expect(J.parenL);var t=this.parseExpression();return this.expect(J.parenR),t},Ft.shouldParseArrow=function(t){return!this.canInsertSemicolon()},Ft.parseParenAndDistinguishExpression=function(t,e){var n,i=this.start,a=this.startLoc,r=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o,s=this.start,c=this.startLoc,l=[],u=!0,d=!1,h=new Et,f=this.yieldPos,g=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==J.parenR;){if(u?u=!1:this.expect(J.comma),r&&this.afterTrailingComma(J.parenR,!0)){d=!0;break}if(this.type===J.ellipsis){o=this.start,l.push(this.parseParenItem(this.parseRestBinding())),this.type===J.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element");break}l.push(this.parseMaybeAssign(!1,h,this.parseParenItem))}var p=this.lastTokEnd,b=this.lastTokEndLoc;if(this.expect(J.parenR),t&&this.shouldParseArrow(l)&&this.eat(J.arrow))return this.checkPatternErrors(h,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=f,this.awaitPos=g,this.parseParenArrowList(i,a,l,e);l.length&&!d||this.unexpected(this.lastTokStart),o&&this.unexpected(o),this.checkExpressionErrors(h,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=g||this.awaitPos,l.length>1?((n=this.startNodeAt(s,c)).expressions=l,this.finishNodeAt(n,"SequenceExpression",p,b)):n=l[0]}else n=this.parseParenExpression();if(this.options.preserveParens){var m=this.startNodeAt(i,a);return m.expression=n,this.finishNode(m,"ParenthesizedExpression")}return n},Ft.parseParenItem=function(t){return t},Ft.parseParenArrowList=function(t,e,n,i){return this.parseArrowExpression(this.startNodeAt(t,e),n,!1,i)};var $t=[];Ft.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var t=this.startNode(),e=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(J.dot)){t.meta=e;var n=this.containsEsc;return t.property=this.parseIdent(!0),"target"!==t.property.name&&this.raiseRecoverable(t.property.start,"The only valid meta property for new is 'new.target'"),n&&this.raiseRecoverable(t.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(t.start,"'new.target' can only be used in functions and class static block"),this.finishNode(t,"MetaProperty")}var i=this.start,a=this.startLoc;return t.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),i,a,!0,!1),this.eat(J.parenL)?t.arguments=this.parseExprList(J.parenR,this.options.ecmaVersion>=8,!1):t.arguments=$t,this.finishNode(t,"NewExpression")},Ft.parseTemplateElement=function(t){var e=t.isTagged,n=this.startNode();return this.type===J.invalidTemplate?(e||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),n.value={raw:this.value,cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),n.tail=this.type===J.backQuote,this.finishNode(n,"TemplateElement")},Ft.parseTemplate=function(t){void 0===t&&(t={});var e=t.isTagged;void 0===e&&(e=!1);var n=this.startNode();this.next(),n.expressions=[];var i=this.parseTemplateElement({isTagged:e});for(n.quasis=[i];!i.tail;)this.type===J.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(J.dollarBraceL),n.expressions.push(this.parseExpression()),this.expect(J.braceR),n.quasis.push(i=this.parseTemplateElement({isTagged:e}));return this.next(),this.finishNode(n,"TemplateLiteral")},Ft.isAsyncProp=function(t){return!t.computed&&"Identifier"===t.key.type&&"async"===t.key.name&&(this.type===J.name||this.type===J.num||this.type===J.string||this.type===J.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===J.star)&&!Q.test(this.input.slice(this.lastTokEnd,this.start))},Ft.parseObj=function(t,e){var n=this.startNode(),i=!0,a={};for(n.properties=[],this.next();!this.eat(J.braceR);){if(i)i=!1;else if(this.expect(J.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(J.braceR))break;var r=this.parseProperty(t,e);t||this.checkPropClash(r,a,e),n.properties.push(r)}return this.finishNode(n,t?"ObjectPattern":"ObjectExpression")},Ft.parseProperty=function(t,e){var n,i,a,r,o=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(J.ellipsis))return t?(o.argument=this.parseIdent(!1),this.type===J.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.finishNode(o,"RestElement")):(o.argument=this.parseMaybeAssign(!1,e),this.type===J.comma&&e&&e.trailingComma<0&&(e.trailingComma=this.start),this.finishNode(o,"SpreadElement"));this.options.ecmaVersion>=6&&(o.method=!1,o.shorthand=!1,(t||e)&&(a=this.start,r=this.startLoc),t||(n=this.eat(J.star)));var s=this.containsEsc;return this.parsePropertyName(o),!t&&!s&&this.options.ecmaVersion>=8&&!n&&this.isAsyncProp(o)?(i=!0,n=this.options.ecmaVersion>=9&&this.eat(J.star),this.parsePropertyName(o)):i=!1,this.parsePropertyValue(o,t,n,i,a,r,e,s),this.finishNode(o,"Property")},Ft.parseGetterSetter=function(t){t.kind=t.key.name,this.parsePropertyName(t),t.value=this.parseMethod(!1);var e="get"===t.kind?0:1;if(t.value.params.length!==e){var n=t.value.start;"get"===t.kind?this.raiseRecoverable(n,"getter should have no params"):this.raiseRecoverable(n,"setter should have exactly one param")}else"set"===t.kind&&"RestElement"===t.value.params[0].type&&this.raiseRecoverable(t.value.params[0].start,"Setter cannot use rest params")},Ft.parsePropertyValue=function(t,e,n,i,a,r,o,s){(n||i)&&this.type===J.colon&&this.unexpected(),this.eat(J.colon)?(t.value=e?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),t.kind="init"):this.options.ecmaVersion>=6&&this.type===J.parenL?(e&&this.unexpected(),t.kind="init",t.method=!0,t.value=this.parseMethod(n,i)):e||s||!(this.options.ecmaVersion>=5)||t.computed||"Identifier"!==t.key.type||"get"!==t.key.name&&"set"!==t.key.name||this.type===J.comma||this.type===J.braceR||this.type===J.eq?this.options.ecmaVersion>=6&&!t.computed&&"Identifier"===t.key.type?((n||i)&&this.unexpected(),this.checkUnreserved(t.key),"await"!==t.key.name||this.awaitIdentPos||(this.awaitIdentPos=a),t.kind="init",e?t.value=this.parseMaybeDefault(a,r,this.copyNode(t.key)):this.type===J.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),t.value=this.parseMaybeDefault(a,r,this.copyNode(t.key))):t.value=this.copyNode(t.key),t.shorthand=!0):this.unexpected():((n||i)&&this.unexpected(),this.parseGetterSetter(t))},Ft.parsePropertyName=function(t){if(this.options.ecmaVersion>=6){if(this.eat(J.bracketL))return t.computed=!0,t.key=this.parseMaybeAssign(),this.expect(J.bracketR),t.key;t.computed=!1}return t.key=this.type===J.num||this.type===J.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},Ft.initFunction=function(t){t.id=null,this.options.ecmaVersion>=6&&(t.generator=t.expression=!1),this.options.ecmaVersion>=8&&(t.async=!1)},Ft.parseMethod=function(t,e,n){var i=this.startNode(),a=this.yieldPos,r=this.awaitPos,o=this.awaitIdentPos;return this.initFunction(i),this.options.ecmaVersion>=6&&(i.generator=t),this.options.ecmaVersion>=8&&(i.async=!!e),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(64|wt(e,i.generator)|(n?128:0)),this.expect(J.parenL),i.params=this.parseBindingList(J.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(i,!1,!0,!1),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=o,this.finishNode(i,"FunctionExpression")},Ft.parseArrowExpression=function(t,e,n,i){var a=this.yieldPos,r=this.awaitPos,o=this.awaitIdentPos;return this.enterScope(16|wt(n,!1)),this.initFunction(t),this.options.ecmaVersion>=8&&(t.async=!!n),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,t.params=this.toAssignableList(e,!0),this.parseFunctionBody(t,!0,!1,i),this.yieldPos=a,this.awaitPos=r,this.awaitIdentPos=o,this.finishNode(t,"ArrowFunctionExpression")},Ft.parseFunctionBody=function(t,e,n,i){var a=e&&this.type!==J.braceL,r=this.strict,o=!1;if(a)t.body=this.parseMaybeAssign(i),t.expression=!0,this.checkParams(t,!1);else{var s=this.options.ecmaVersion>=7&&!this.isSimpleParamList(t.params);r&&!s||(o=this.strictDirective(this.end))&&s&&this.raiseRecoverable(t.start,"Illegal 'use strict' directive in function with non-simple parameter list");var c=this.labels;this.labels=[],o&&(this.strict=!0),this.checkParams(t,!r&&!o&&!e&&!n&&this.isSimpleParamList(t.params)),this.strict&&t.id&&this.checkLValSimple(t.id,5),t.body=this.parseBlock(!1,void 0,o&&!r),t.expression=!1,this.adaptDirectivePrologue(t.body.body),this.labels=c}this.exitScope()},Ft.isSimpleParamList=function(t){for(var e=0,n=t;e<n.length;e+=1){if("Identifier"!==n[e].type)return!1}return!0},Ft.checkParams=function(t,e){for(var n=Object.create(null),i=0,a=t.params;i<a.length;i+=1){var r=a[i];this.checkLValInnerPattern(r,1,e?null:n)}},Ft.parseExprList=function(t,e,n,i){for(var a=[],r=!0;!this.eat(t);){if(r)r=!1;else if(this.expect(J.comma),e&&this.afterTrailingComma(t))break;var o=void 0;n&&this.type===J.comma?o=null:this.type===J.ellipsis?(o=this.parseSpread(i),i&&this.type===J.comma&&i.trailingComma<0&&(i.trailingComma=this.start)):o=this.parseMaybeAssign(!1,i),a.push(o)}return a},Ft.checkUnreserved=function(t){var e=t.start,n=t.end,i=t.name;(this.inGenerator&&"yield"===i&&this.raiseRecoverable(e,"Cannot use 'yield' as identifier inside a generator"),this.inAsync&&"await"===i&&this.raiseRecoverable(e,"Cannot use 'await' as identifier inside an async function"),this.currentThisScope().inClassFieldInit&&"arguments"===i&&this.raiseRecoverable(e,"Cannot use 'arguments' in class field initializer"),!this.inClassStaticBlock||"arguments"!==i&&"await"!==i||this.raise(e,"Cannot use "+i+" in class static initialization block"),this.keywords.test(i)&&this.raise(e,"Unexpected keyword '"+i+"'"),this.options.ecmaVersion<6&&-1!==this.input.slice(e,n).indexOf("\\"))||(this.strict?this.reservedWordsStrict:this.reservedWords).test(i)&&(this.inAsync||"await"!==i||this.raiseRecoverable(e,"Cannot use keyword 'await' outside an async function"),this.raiseRecoverable(e,"The keyword '"+i+"' is reserved"))},Ft.parseIdent=function(t){var e=this.parseIdentNode();return this.next(!!t),this.finishNode(e,"Identifier"),t||(this.checkUnreserved(e),"await"!==e.name||this.awaitIdentPos||(this.awaitIdentPos=e.start)),e},Ft.parseIdentNode=function(){var t=this.startNode();return this.type===J.name?t.name=this.value:this.type.keyword?(t.name=this.type.keyword,"class"!==t.name&&"function"!==t.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),t},Ft.parsePrivateIdent=function(){var t=this.startNode();return this.type===J.privateId?t.name=this.value:this.unexpected(),this.next(),this.finishNode(t,"PrivateIdentifier"),this.options.checkPrivateFields&&(0===this.privateNameStack.length?this.raise(t.start,"Private field '#"+t.name+"' must be declared in an enclosing class"):this.privateNameStack[this.privateNameStack.length-1].used.push(t)),t},Ft.parseYield=function(t){this.yieldPos||(this.yieldPos=this.start);var e=this.startNode();return this.next(),this.type===J.semi||this.canInsertSemicolon()||this.type!==J.star&&!this.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(J.star),e.argument=this.parseMaybeAssign(t)),this.finishNode(e,"YieldExpression")},Ft.parseAwait=function(t){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!0,!1,t),this.finishNode(e,"AwaitExpression")};var zt=xt.prototype;zt.raise=function(t,e){var n=pt(this.input,t);e+=" ("+n.line+":"+n.column+")";var i=new SyntaxError(e);throw i.pos=t,i.loc=n,i.raisedAt=this.pos,i},zt.raiseRecoverable=zt.raise,zt.curPosition=function(){if(this.options.locations)return new ft(this.curLine,this.pos-this.lineStart)};var Ht=xt.prototype,Ut=function(t){this.flags=t,this.var=[],this.lexical=[],this.functions=[],this.inClassFieldInit=!1};Ht.enterScope=function(t){this.scopeStack.push(new Ut(t))},Ht.exitScope=function(){this.scopeStack.pop()},Ht.treatFunctionsAsVarInScope=function(t){return 2&t.flags||!this.inModule&&1&t.flags},Ht.declareName=function(t,e,n){var i=!1;if(2===e){var a=this.currentScope();i=a.lexical.indexOf(t)>-1||a.functions.indexOf(t)>-1||a.var.indexOf(t)>-1,a.lexical.push(t),this.inModule&&1&a.flags&&delete this.undefinedExports[t]}else if(4===e){this.currentScope().lexical.push(t)}else if(3===e){var r=this.currentScope();i=this.treatFunctionsAsVar?r.lexical.indexOf(t)>-1:r.lexical.indexOf(t)>-1||r.var.indexOf(t)>-1,r.functions.push(t)}else for(var o=this.scopeStack.length-1;o>=0;--o){var s=this.scopeStack[o];if(s.lexical.indexOf(t)>-1&&!(32&s.flags&&s.lexical[0]===t)||!this.treatFunctionsAsVarInScope(s)&&s.functions.indexOf(t)>-1){i=!0;break}if(s.var.push(t),this.inModule&&1&s.flags&&delete this.undefinedExports[t],259&s.flags)break}i&&this.raiseRecoverable(n,"Identifier '"+t+"' has already been declared")},Ht.checkLocalExport=function(t){-1===this.scopeStack[0].lexical.indexOf(t.name)&&-1===this.scopeStack[0].var.indexOf(t.name)&&(this.undefinedExports[t.name]=t)},Ht.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},Ht.currentVarScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(259&e.flags)return e}},Ht.currentThisScope=function(){for(var t=this.scopeStack.length-1;;t--){var e=this.scopeStack[t];if(259&e.flags&&!(16&e.flags))return e}};var Vt=function(t,e,n){this.type="",this.start=e,this.end=0,t.options.locations&&(this.loc=new gt(t,n)),t.options.directSourceFile&&(this.sourceFile=t.options.directSourceFile),t.options.ranges&&(this.range=[e,0])},qt=xt.prototype;function Wt(t,e,n,i){return t.type=e,t.end=n,this.options.locations&&(t.loc.end=i),this.options.ranges&&(t.range[1]=n),t}qt.startNode=function(){return new Vt(this,this.start,this.startLoc)},qt.startNodeAt=function(t,e){return new Vt(this,t,e)},qt.finishNode=function(t,e){return Wt.call(this,t,e,this.lastTokEnd,this.lastTokEndLoc)},qt.finishNodeAt=function(t,e,n,i){return Wt.call(this,t,e,n,i)},qt.copyNode=function(t){var e=new Vt(this,t.start,this.startLoc);for(var n in t)e[n]=t[n];return e};var Yt="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",Gt=Yt+" Extended_Pictographic",Zt=Gt+" EBase EComp EMod EPres ExtPict",Kt={9:Yt,10:Gt,11:Gt,12:Zt,13:Zt,14:"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS Extended_Pictographic EBase EComp EMod EPres ExtPict"},Xt={9:"",10:"",11:"",12:"",13:"",14:"Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji"},Jt="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",Qt="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",te=Qt+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",ee=te+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",ne=ee+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",ie=ne+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",ae={9:Qt,10:te,11:ee,12:ne,13:ie,14:"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith Hrkt Katakana_Or_Hiragana Kawi Nag_Mundari Nagm Unknown Zzzz"},re={};function oe(t){var e=re[t]={binary:ut(Kt[t]+" "+Jt),binaryOfStrings:ut(Xt[t]),nonBinary:{General_Category:ut(Jt),Script:ut(ae[t])}};e.nonBinary.Script_Extensions=e.nonBinary.Script,e.nonBinary.gc=e.nonBinary.General_Category,e.nonBinary.sc=e.nonBinary.Script,e.nonBinary.scx=e.nonBinary.Script_Extensions}for(var se=0,ce=[9,10,11,12,13,14];se<ce.length;se+=1){oe(ce[se])}var le=xt.prototype,ue=function(t){this.parser=t,this.validFlags="gim"+(t.options.ecmaVersion>=6?"uy":"")+(t.options.ecmaVersion>=9?"s":"")+(t.options.ecmaVersion>=13?"d":"")+(t.options.ecmaVersion>=15?"v":""),this.unicodeProperties=re[t.options.ecmaVersion>=14?14:t.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};function de(t){return 36===t||t>=40&&t<=43||46===t||63===t||t>=91&&t<=94||t>=123&&t<=125}function he(t){return t>=65&&t<=90||t>=97&&t<=122}ue.prototype.reset=function(t,e,n){var i=-1!==n.indexOf("v"),a=-1!==n.indexOf("u");this.start=0|t,this.source=e+"",this.flags=n,i&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=a&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=a&&this.parser.options.ecmaVersion>=9)},ue.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+t)},ue.prototype.at=function(t,e){void 0===e&&(e=!1);var n=this.source,i=n.length;if(t>=i)return-1;var a=n.charCodeAt(t);if(!e&&!this.switchU||a<=55295||a>=57344||t+1>=i)return a;var r=n.charCodeAt(t+1);return r>=56320&&r<=57343?(a<<10)+r-56613888:a},ue.prototype.nextIndex=function(t,e){void 0===e&&(e=!1);var n=this.source,i=n.length;if(t>=i)return i;var a,r=n.charCodeAt(t);return!e&&!this.switchU||r<=55295||r>=57344||t+1>=i||(a=n.charCodeAt(t+1))<56320||a>57343?t+1:t+2},ue.prototype.current=function(t){return void 0===t&&(t=!1),this.at(this.pos,t)},ue.prototype.lookahead=function(t){return void 0===t&&(t=!1),this.at(this.nextIndex(this.pos,t),t)},ue.prototype.advance=function(t){void 0===t&&(t=!1),this.pos=this.nextIndex(this.pos,t)},ue.prototype.eat=function(t,e){return void 0===e&&(e=!1),this.current(e)===t&&(this.advance(e),!0)},ue.prototype.eatChars=function(t,e){void 0===e&&(e=!1);for(var n=this.pos,i=0,a=t;i<a.length;i+=1){var r=a[i],o=this.at(n,e);if(-1===o||o!==r)return!1;n=this.nextIndex(n,e)}return this.pos=n,!0},le.validateRegExpFlags=function(t){for(var e=t.validFlags,n=t.flags,i=!1,a=!1,r=0;r<n.length;r++){var o=n.charAt(r);-1===e.indexOf(o)&&this.raise(t.start,"Invalid regular expression flag"),n.indexOf(o,r+1)>-1&&this.raise(t.start,"Duplicate regular expression flag"),"u"===o&&(i=!0),"v"===o&&(a=!0)}this.options.ecmaVersion>=15&&i&&a&&this.raise(t.start,"Invalid regular expression flag")},le.validateRegExpPattern=function(t){this.regexp_pattern(t),!t.switchN&&this.options.ecmaVersion>=9&&t.groupNames.length>0&&(t.switchN=!0,this.regexp_pattern(t))},le.regexp_pattern=function(t){t.pos=0,t.lastIntValue=0,t.lastStringValue="",t.lastAssertionIsQuantifiable=!1,t.numCapturingParens=0,t.maxBackReference=0,t.groupNames.length=0,t.backReferenceNames.length=0,this.regexp_disjunction(t),t.pos!==t.source.length&&(t.eat(41)&&t.raise("Unmatched ')'"),(t.eat(93)||t.eat(125))&&t.raise("Lone quantifier brackets")),t.maxBackReference>t.numCapturingParens&&t.raise("Invalid escape");for(var e=0,n=t.backReferenceNames;e<n.length;e+=1){var i=n[e];-1===t.groupNames.indexOf(i)&&t.raise("Invalid named capture referenced")}},le.regexp_disjunction=function(t){for(this.regexp_alternative(t);t.eat(124);)this.regexp_alternative(t);this.regexp_eatQuantifier(t,!0)&&t.raise("Nothing to repeat"),t.eat(123)&&t.raise("Lone quantifier brackets")},le.regexp_alternative=function(t){for(;t.pos<t.source.length&&this.regexp_eatTerm(t););},le.regexp_eatTerm=function(t){return this.regexp_eatAssertion(t)?(t.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(t)&&t.switchU&&t.raise("Invalid quantifier"),!0):!!(t.switchU?this.regexp_eatAtom(t):this.regexp_eatExtendedAtom(t))&&(this.regexp_eatQuantifier(t),!0)},le.regexp_eatAssertion=function(t){var e=t.pos;if(t.lastAssertionIsQuantifiable=!1,t.eat(94)||t.eat(36))return!0;if(t.eat(92)){if(t.eat(66)||t.eat(98))return!0;t.pos=e}if(t.eat(40)&&t.eat(63)){var n=!1;if(this.options.ecmaVersion>=9&&(n=t.eat(60)),t.eat(61)||t.eat(33))return this.regexp_disjunction(t),t.eat(41)||t.raise("Unterminated group"),t.lastAssertionIsQuantifiable=!n,!0}return t.pos=e,!1},le.regexp_eatQuantifier=function(t,e){return void 0===e&&(e=!1),!!this.regexp_eatQuantifierPrefix(t,e)&&(t.eat(63),!0)},le.regexp_eatQuantifierPrefix=function(t,e){return t.eat(42)||t.eat(43)||t.eat(63)||this.regexp_eatBracedQuantifier(t,e)},le.regexp_eatBracedQuantifier=function(t,e){var n=t.pos;if(t.eat(123)){var i=0,a=-1;if(this.regexp_eatDecimalDigits(t)&&(i=t.lastIntValue,t.eat(44)&&this.regexp_eatDecimalDigits(t)&&(a=t.lastIntValue),t.eat(125)))return-1!==a&&a<i&&!e&&t.raise("numbers out of order in {} quantifier"),!0;t.switchU&&!e&&t.raise("Incomplete quantifier"),t.pos=n}return!1},le.regexp_eatAtom=function(t){return this.regexp_eatPatternCharacters(t)||t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)},le.regexp_eatReverseSolidusAtomEscape=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatAtomEscape(t))return!0;t.pos=e}return!1},le.regexp_eatUncapturingGroup=function(t){var e=t.pos;if(t.eat(40)){if(t.eat(63)&&t.eat(58)){if(this.regexp_disjunction(t),t.eat(41))return!0;t.raise("Unterminated group")}t.pos=e}return!1},le.regexp_eatCapturingGroup=function(t){if(t.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(t):63===t.current()&&t.raise("Invalid group"),this.regexp_disjunction(t),t.eat(41))return t.numCapturingParens+=1,!0;t.raise("Unterminated group")}return!1},le.regexp_eatExtendedAtom=function(t){return t.eat(46)||this.regexp_eatReverseSolidusAtomEscape(t)||this.regexp_eatCharacterClass(t)||this.regexp_eatUncapturingGroup(t)||this.regexp_eatCapturingGroup(t)||this.regexp_eatInvalidBracedQuantifier(t)||this.regexp_eatExtendedPatternCharacter(t)},le.regexp_eatInvalidBracedQuantifier=function(t){return this.regexp_eatBracedQuantifier(t,!0)&&t.raise("Nothing to repeat"),!1},le.regexp_eatSyntaxCharacter=function(t){var e=t.current();return!!de(e)&&(t.lastIntValue=e,t.advance(),!0)},le.regexp_eatPatternCharacters=function(t){for(var e=t.pos,n=0;-1!==(n=t.current())&&!de(n);)t.advance();return t.pos!==e},le.regexp_eatExtendedPatternCharacter=function(t){var e=t.current();return!(-1===e||36===e||e>=40&&e<=43||46===e||63===e||91===e||94===e||124===e)&&(t.advance(),!0)},le.regexp_groupSpecifier=function(t){if(t.eat(63)){if(this.regexp_eatGroupName(t))return-1!==t.groupNames.indexOf(t.lastStringValue)&&t.raise("Duplicate capture group name"),void t.groupNames.push(t.lastStringValue);t.raise("Invalid group")}},le.regexp_eatGroupName=function(t){if(t.lastStringValue="",t.eat(60)){if(this.regexp_eatRegExpIdentifierName(t)&&t.eat(62))return!0;t.raise("Invalid capture group name")}return!1},le.regexp_eatRegExpIdentifierName=function(t){if(t.lastStringValue="",this.regexp_eatRegExpIdentifierStart(t)){for(t.lastStringValue+=dt(t.lastIntValue);this.regexp_eatRegExpIdentifierPart(t);)t.lastStringValue+=dt(t.lastIntValue);return!0}return!1},le.regexp_eatRegExpIdentifierStart=function(t){var e=t.pos,n=this.options.ecmaVersion>=11,i=t.current(n);return t.advance(n),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(t,n)&&(i=t.lastIntValue),function(t){return V(t,!0)||36===t||95===t}(i)?(t.lastIntValue=i,!0):(t.pos=e,!1)},le.regexp_eatRegExpIdentifierPart=function(t){var e=t.pos,n=this.options.ecmaVersion>=11,i=t.current(n);return t.advance(n),92===i&&this.regexp_eatRegExpUnicodeEscapeSequence(t,n)&&(i=t.lastIntValue),function(t){return q(t,!0)||36===t||95===t||8204===t||8205===t}(i)?(t.lastIntValue=i,!0):(t.pos=e,!1)},le.regexp_eatAtomEscape=function(t){return!!(this.regexp_eatBackReference(t)||this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)||t.switchN&&this.regexp_eatKGroupName(t))||(t.switchU&&(99===t.current()&&t.raise("Invalid unicode escape"),t.raise("Invalid escape")),!1)},le.regexp_eatBackReference=function(t){var e=t.pos;if(this.regexp_eatDecimalEscape(t)){var n=t.lastIntValue;if(t.switchU)return n>t.maxBackReference&&(t.maxBackReference=n),!0;if(n<=t.numCapturingParens)return!0;t.pos=e}return!1},le.regexp_eatKGroupName=function(t){if(t.eat(107)){if(this.regexp_eatGroupName(t))return t.backReferenceNames.push(t.lastStringValue),!0;t.raise("Invalid named reference")}return!1},le.regexp_eatCharacterEscape=function(t){return this.regexp_eatControlEscape(t)||this.regexp_eatCControlLetter(t)||this.regexp_eatZero(t)||this.regexp_eatHexEscapeSequence(t)||this.regexp_eatRegExpUnicodeEscapeSequence(t,!1)||!t.switchU&&this.regexp_eatLegacyOctalEscapeSequence(t)||this.regexp_eatIdentityEscape(t)},le.regexp_eatCControlLetter=function(t){var e=t.pos;if(t.eat(99)){if(this.regexp_eatControlLetter(t))return!0;t.pos=e}return!1},le.regexp_eatZero=function(t){return 48===t.current()&&!pe(t.lookahead())&&(t.lastIntValue=0,t.advance(),!0)},le.regexp_eatControlEscape=function(t){var e=t.current();return 116===e?(t.lastIntValue=9,t.advance(),!0):110===e?(t.lastIntValue=10,t.advance(),!0):118===e?(t.lastIntValue=11,t.advance(),!0):102===e?(t.lastIntValue=12,t.advance(),!0):114===e&&(t.lastIntValue=13,t.advance(),!0)},le.regexp_eatControlLetter=function(t){var e=t.current();return!!he(e)&&(t.lastIntValue=e%32,t.advance(),!0)},le.regexp_eatRegExpUnicodeEscapeSequence=function(t,e){void 0===e&&(e=!1);var n,i=t.pos,a=e||t.switchU;if(t.eat(117)){if(this.regexp_eatFixedHexDigits(t,4)){var r=t.lastIntValue;if(a&&r>=55296&&r<=56319){var o=t.pos;if(t.eat(92)&&t.eat(117)&&this.regexp_eatFixedHexDigits(t,4)){var s=t.lastIntValue;if(s>=56320&&s<=57343)return t.lastIntValue=1024*(r-55296)+(s-56320)+65536,!0}t.pos=o,t.lastIntValue=r}return!0}if(a&&t.eat(123)&&this.regexp_eatHexDigits(t)&&t.eat(125)&&((n=t.lastIntValue)>=0&&n<=1114111))return!0;a&&t.raise("Invalid unicode escape"),t.pos=i}return!1},le.regexp_eatIdentityEscape=function(t){if(t.switchU)return!!this.regexp_eatSyntaxCharacter(t)||!!t.eat(47)&&(t.lastIntValue=47,!0);var e=t.current();return!(99===e||t.switchN&&107===e)&&(t.lastIntValue=e,t.advance(),!0)},le.regexp_eatDecimalEscape=function(t){t.lastIntValue=0;var e=t.current();if(e>=49&&e<=57){do{t.lastIntValue=10*t.lastIntValue+(e-48),t.advance()}while((e=t.current())>=48&&e<=57);return!0}return!1};function fe(t){return he(t)||95===t}function ge(t){return fe(t)||pe(t)}function pe(t){return t>=48&&t<=57}function be(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}function me(t){return t>=65&&t<=70?t-65+10:t>=97&&t<=102?t-97+10:t-48}function ye(t){return t>=48&&t<=55}le.regexp_eatCharacterClassEscape=function(t){var e=t.current();if(function(t){return 100===t||68===t||115===t||83===t||119===t||87===t}(e))return t.lastIntValue=-1,t.advance(),1;var n=!1;if(t.switchU&&this.options.ecmaVersion>=9&&((n=80===e)||112===e)){var i;if(t.lastIntValue=-1,t.advance(),t.eat(123)&&(i=this.regexp_eatUnicodePropertyValueExpression(t))&&t.eat(125))return n&&2===i&&t.raise("Invalid property name"),i;t.raise("Invalid property name")}return 0},le.regexp_eatUnicodePropertyValueExpression=function(t){var e=t.pos;if(this.regexp_eatUnicodePropertyName(t)&&t.eat(61)){var n=t.lastStringValue;if(this.regexp_eatUnicodePropertyValue(t)){var i=t.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(t,n,i),1}}if(t.pos=e,this.regexp_eatLoneUnicodePropertyNameOrValue(t)){var a=t.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(t,a)}return 0},le.regexp_validateUnicodePropertyNameAndValue=function(t,e,n){ct(t.unicodeProperties.nonBinary,e)||t.raise("Invalid property name"),t.unicodeProperties.nonBinary[e].test(n)||t.raise("Invalid property value")},le.regexp_validateUnicodePropertyNameOrValue=function(t,e){return t.unicodeProperties.binary.test(e)?1:t.switchV&&t.unicodeProperties.binaryOfStrings.test(e)?2:void t.raise("Invalid property name")},le.regexp_eatUnicodePropertyName=function(t){var e=0;for(t.lastStringValue="";fe(e=t.current());)t.lastStringValue+=dt(e),t.advance();return""!==t.lastStringValue},le.regexp_eatUnicodePropertyValue=function(t){var e=0;for(t.lastStringValue="";ge(e=t.current());)t.lastStringValue+=dt(e),t.advance();return""!==t.lastStringValue},le.regexp_eatLoneUnicodePropertyNameOrValue=function(t){return this.regexp_eatUnicodePropertyValue(t)},le.regexp_eatCharacterClass=function(t){if(t.eat(91)){var e=t.eat(94),n=this.regexp_classContents(t);return t.eat(93)||t.raise("Unterminated character class"),e&&2===n&&t.raise("Negated character class may contain strings"),!0}return!1},le.regexp_classContents=function(t){return 93===t.current()?1:t.switchV?this.regexp_classSetExpression(t):(this.regexp_nonEmptyClassRanges(t),1)},le.regexp_nonEmptyClassRanges=function(t){for(;this.regexp_eatClassAtom(t);){var e=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassAtom(t)){var n=t.lastIntValue;!t.switchU||-1!==e&&-1!==n||t.raise("Invalid character class"),-1!==e&&-1!==n&&e>n&&t.raise("Range out of order in character class")}}},le.regexp_eatClassAtom=function(t){var e=t.pos;if(t.eat(92)){if(this.regexp_eatClassEscape(t))return!0;if(t.switchU){var n=t.current();(99===n||ye(n))&&t.raise("Invalid class escape"),t.raise("Invalid escape")}t.pos=e}var i=t.current();return 93!==i&&(t.lastIntValue=i,t.advance(),!0)},le.regexp_eatClassEscape=function(t){var e=t.pos;if(t.eat(98))return t.lastIntValue=8,!0;if(t.switchU&&t.eat(45))return t.lastIntValue=45,!0;if(!t.switchU&&t.eat(99)){if(this.regexp_eatClassControlLetter(t))return!0;t.pos=e}return this.regexp_eatCharacterClassEscape(t)||this.regexp_eatCharacterEscape(t)},le.regexp_classSetExpression=function(t){var e,n=1;if(this.regexp_eatClassSetRange(t));else if(e=this.regexp_eatClassSetOperand(t)){2===e&&(n=2);for(var i=t.pos;t.eatChars([38,38]);)38!==t.current()&&(e=this.regexp_eatClassSetOperand(t))?2!==e&&(n=1):t.raise("Invalid character in character class");if(i!==t.pos)return n;for(;t.eatChars([45,45]);)this.regexp_eatClassSetOperand(t)||t.raise("Invalid character in character class");if(i!==t.pos)return n}else t.raise("Invalid character in character class");for(;;)if(!this.regexp_eatClassSetRange(t)){if(!(e=this.regexp_eatClassSetOperand(t)))return n;2===e&&(n=2)}},le.regexp_eatClassSetRange=function(t){var e=t.pos;if(this.regexp_eatClassSetCharacter(t)){var n=t.lastIntValue;if(t.eat(45)&&this.regexp_eatClassSetCharacter(t)){var i=t.lastIntValue;return-1!==n&&-1!==i&&n>i&&t.raise("Range out of order in character class"),!0}t.pos=e}return!1},le.regexp_eatClassSetOperand=function(t){return this.regexp_eatClassSetCharacter(t)?1:this.regexp_eatClassStringDisjunction(t)||this.regexp_eatNestedClass(t)},le.regexp_eatNestedClass=function(t){var e=t.pos;if(t.eat(91)){var n=t.eat(94),i=this.regexp_classContents(t);if(t.eat(93))return n&&2===i&&t.raise("Negated character class may contain strings"),i;t.pos=e}if(t.eat(92)){var a=this.regexp_eatCharacterClassEscape(t);if(a)return a;t.pos=e}return null},le.regexp_eatClassStringDisjunction=function(t){var e=t.pos;if(t.eatChars([92,113])){if(t.eat(123)){var n=this.regexp_classStringDisjunctionContents(t);if(t.eat(125))return n}else t.raise("Invalid escape");t.pos=e}return null},le.regexp_classStringDisjunctionContents=function(t){for(var e=this.regexp_classString(t);t.eat(124);)2===this.regexp_classString(t)&&(e=2);return e},le.regexp_classString=function(t){for(var e=0;this.regexp_eatClassSetCharacter(t);)e++;return 1===e?1:2},le.regexp_eatClassSetCharacter=function(t){var e=t.pos;if(t.eat(92))return!(!this.regexp_eatCharacterEscape(t)&&!this.regexp_eatClassSetReservedPunctuator(t))||(t.eat(98)?(t.lastIntValue=8,!0):(t.pos=e,!1));var n=t.current();return!(n<0||n===t.lookahead()&&function(t){return 33===t||t>=35&&t<=38||t>=42&&t<=44||46===t||t>=58&&t<=64||94===t||96===t||126===t}(n))&&(!function(t){return 40===t||41===t||45===t||47===t||t>=91&&t<=93||t>=123&&t<=125}(n)&&(t.advance(),t.lastIntValue=n,!0))},le.regexp_eatClassSetReservedPunctuator=function(t){var e=t.current();return!!function(t){return 33===t||35===t||37===t||38===t||44===t||45===t||t>=58&&t<=62||64===t||96===t||126===t}(e)&&(t.lastIntValue=e,t.advance(),!0)},le.regexp_eatClassControlLetter=function(t){var e=t.current();return!(!pe(e)&&95!==e)&&(t.lastIntValue=e%32,t.advance(),!0)},le.regexp_eatHexEscapeSequence=function(t){var e=t.pos;if(t.eat(120)){if(this.regexp_eatFixedHexDigits(t,2))return!0;t.switchU&&t.raise("Invalid escape"),t.pos=e}return!1},le.regexp_eatDecimalDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;pe(n=t.current());)t.lastIntValue=10*t.lastIntValue+(n-48),t.advance();return t.pos!==e},le.regexp_eatHexDigits=function(t){var e=t.pos,n=0;for(t.lastIntValue=0;be(n=t.current());)t.lastIntValue=16*t.lastIntValue+me(n),t.advance();return t.pos!==e},le.regexp_eatLegacyOctalEscapeSequence=function(t){if(this.regexp_eatOctalDigit(t)){var e=t.lastIntValue;if(this.regexp_eatOctalDigit(t)){var n=t.lastIntValue;e<=3&&this.regexp_eatOctalDigit(t)?t.lastIntValue=64*e+8*n+t.lastIntValue:t.lastIntValue=8*e+n}else t.lastIntValue=e;return!0}return!1},le.regexp_eatOctalDigit=function(t){var e=t.current();return ye(e)?(t.lastIntValue=e-48,t.advance(),!0):(t.lastIntValue=0,!1)},le.regexp_eatFixedHexDigits=function(t,e){var n=t.pos;t.lastIntValue=0;for(var i=0;i<e;++i){var a=t.current();if(!be(a))return t.pos=n,!1;t.lastIntValue=16*t.lastIntValue+me(a),t.advance()}return!0};var ve=function(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,t.options.locations&&(this.loc=new gt(t,t.startLoc,t.endLoc)),t.options.ranges&&(this.range=[t.start,t.end])},we=xt.prototype;function xe(t){return"function"!=typeof BigInt?null:BigInt(t.replace(/_/g,""))}we.next=function(t){!t&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+this.type.keyword),this.options.onToken&&this.options.onToken(new ve(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},we.getToken=function(){return this.next(),new ve(this)},"undefined"!=typeof Symbol&&(we[Symbol.iterator]=function(){var t=this;return{next:function(){var e=t.getToken();return{done:e.type===J.eof,value:e}}}}),we.nextToken=function(){var t=this.curContext();return t&&t.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(J.eof):t.override?t.override(this):void this.readToken(this.fullCharCodeAtPos())},we.readToken=function(t){return V(t,this.options.ecmaVersion>=6)||92===t?this.readWord():this.getTokenFromCode(t)},we.fullCharCodeAtPos=function(){var t=this.input.charCodeAt(this.pos);if(t<=55295||t>=56320)return t;var e=this.input.charCodeAt(this.pos+1);return e<=56319||e>=57344?t:(t<<10)+e-56613888},we.skipBlockComment=function(){var t=this.options.onComment&&this.curPosition(),e=this.pos,n=this.input.indexOf("*/",this.pos+=2);if(-1===n&&this.raise(this.pos-2,"Unterminated comment"),this.pos=n+2,this.options.locations)for(var i=void 0,a=e;(i=nt(this.input,a,this.pos))>-1;)++this.curLine,a=this.lineStart=i;this.options.onComment&&this.options.onComment(!0,this.input.slice(e+2,n),e,this.pos,t,this.curPosition())},we.skipLineComment=function(t){for(var e=this.pos,n=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=t);this.pos<this.input.length&&!et(i);)i=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(e+t,this.pos),e,this.pos,n,this.curPosition())},we.skipSpace=function(){t:for(;this.pos<this.input.length;){var t=this.input.charCodeAt(this.pos);switch(t){case 32:case 160:++this.pos;break;case 13:10===this.input.charCodeAt(this.pos+1)&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break t}break;default:if(!(t>8&&t<14||t>=5760&&it.test(String.fromCharCode(t))))break t;++this.pos}}},we.finishToken=function(t,e){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=t,this.value=e,this.updateContext(n)},we.readToken_dot=function(){var t=this.input.charCodeAt(this.pos+1);if(t>=48&&t<=57)return this.readNumber(!0);var e=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===t&&46===e?(this.pos+=3,this.finishToken(J.ellipsis)):(++this.pos,this.finishToken(J.dot))},we.readToken_slash=function(){var t=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===t?this.finishOp(J.assign,2):this.finishOp(J.slash,1)},we.readToken_mult_modulo_exp=function(t){var e=this.input.charCodeAt(this.pos+1),n=1,i=42===t?J.star:J.modulo;return this.options.ecmaVersion>=7&&42===t&&42===e&&(++n,i=J.starstar,e=this.input.charCodeAt(this.pos+2)),61===e?this.finishOp(J.assign,n+1):this.finishOp(i,n)},we.readToken_pipe_amp=function(t){var e=this.input.charCodeAt(this.pos+1);if(e===t){if(this.options.ecmaVersion>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(J.assign,3);return this.finishOp(124===t?J.logicalOR:J.logicalAND,2)}return 61===e?this.finishOp(J.assign,2):this.finishOp(124===t?J.bitwiseOR:J.bitwiseAND,1)},we.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(J.assign,2):this.finishOp(J.bitwiseXOR,1)},we.readToken_plus_min=function(t){var e=this.input.charCodeAt(this.pos+1);return e===t?45!==e||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!Q.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(J.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===e?this.finishOp(J.assign,2):this.finishOp(J.plusMin,1)},we.readToken_lt_gt=function(t){var e=this.input.charCodeAt(this.pos+1),n=1;return e===t?(n=62===t&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+n)?this.finishOp(J.assign,n+1):this.finishOp(J.bitShift,n)):33!==e||60!==t||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===e&&(n=2),this.finishOp(J.relational,n)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},we.readToken_eq_excl=function(t){var e=this.input.charCodeAt(this.pos+1);return 61===e?this.finishOp(J.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===t&&62===e&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(J.arrow)):this.finishOp(61===t?J.eq:J.prefix,1)},we.readToken_question=function(){var t=this.options.ecmaVersion;if(t>=11){var e=this.input.charCodeAt(this.pos+1);if(46===e){var n=this.input.charCodeAt(this.pos+2);if(n<48||n>57)return this.finishOp(J.questionDot,2)}if(63===e){if(t>=12)if(61===this.input.charCodeAt(this.pos+2))return this.finishOp(J.assign,3);return this.finishOp(J.coalesce,2)}}return this.finishOp(J.question,1)},we.readToken_numberSign=function(){var t=35;if(this.options.ecmaVersion>=13&&(++this.pos,V(t=this.fullCharCodeAtPos(),!0)||92===t))return this.finishToken(J.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+dt(t)+"'")},we.getTokenFromCode=function(t){switch(t){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(J.parenL);case 41:return++this.pos,this.finishToken(J.parenR);case 59:return++this.pos,this.finishToken(J.semi);case 44:return++this.pos,this.finishToken(J.comma);case 91:return++this.pos,this.finishToken(J.bracketL);case 93:return++this.pos,this.finishToken(J.bracketR);case 123:return++this.pos,this.finishToken(J.braceL);case 125:return++this.pos,this.finishToken(J.braceR);case 58:return++this.pos,this.finishToken(J.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(J.backQuote);case 48:var e=this.input.charCodeAt(this.pos+1);if(120===e||88===e)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===e||79===e)return this.readRadixNumber(8);if(98===e||66===e)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(t);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(t);case 124:case 38:return this.readToken_pipe_amp(t);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(t);case 60:case 62:return this.readToken_lt_gt(t);case 61:case 33:return this.readToken_eq_excl(t);case 63:return this.readToken_question();case 126:return this.finishOp(J.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+dt(t)+"'")},we.finishOp=function(t,e){var n=this.input.slice(this.pos,this.pos+e);return this.pos+=e,this.finishToken(t,n)},we.readRegexp=function(){for(var t,e,n=this.pos;;){this.pos>=this.input.length&&this.raise(n,"Unterminated regular expression");var i=this.input.charAt(this.pos);if(Q.test(i)&&this.raise(n,"Unterminated regular expression"),t)t=!1;else{if("["===i)e=!0;else if("]"===i&&e)e=!1;else if("/"===i&&!e)break;t="\\"===i}++this.pos}var a=this.input.slice(n,this.pos);++this.pos;var r=this.pos,o=this.readWord1();this.containsEsc&&this.unexpected(r);var s=this.regexpState||(this.regexpState=new ue(this));s.reset(n,a,o),this.validateRegExpFlags(s),this.validateRegExpPattern(s);var c=null;try{c=new RegExp(a,o)}catch(l){}return this.finishToken(J.regexp,{pattern:a,flags:o,value:c})},we.readInt=function(t,e,n){for(var i=this.options.ecmaVersion>=12&&void 0===e,a=n&&48===this.input.charCodeAt(this.pos),r=this.pos,o=0,s=0,c=0,l=null==e?1/0:e;c<l;++c,++this.pos){var u=this.input.charCodeAt(this.pos),d=void 0;if(i&&95===u)a&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed in legacy octal numeric literals"),95===s&&this.raiseRecoverable(this.pos,"Numeric separator must be exactly one underscore"),0===c&&this.raiseRecoverable(this.pos,"Numeric separator is not allowed at the first of digits"),s=u;else{if((d=u>=97?u-97+10:u>=65?u-65+10:u>=48&&u<=57?u-48:1/0)>=t)break;s=u,o=o*t+d}}return i&&95===s&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===r||null!=e&&this.pos-r!==e?null:o},we.readRadixNumber=function(t){var e=this.pos;this.pos+=2;var n=this.readInt(t);return null==n&&this.raise(this.start+2,"Expected number in radix "+t),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(n=xe(this.input.slice(e,this.pos)),++this.pos):V(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(J.num,n)},we.readNumber=function(t){var e=this.pos;t||null!==this.readInt(10,void 0,!0)||this.raise(e,"Invalid number");var n=this.pos-e>=2&&48===this.input.charCodeAt(e);n&&this.strict&&this.raise(e,"Invalid number");var i=this.input.charCodeAt(this.pos);if(!n&&!t&&this.options.ecmaVersion>=11&&110===i){var a=xe(this.input.slice(e,this.pos));return++this.pos,V(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(J.num,a)}n&&/[89]/.test(this.input.slice(e,this.pos))&&(n=!1),46!==i||n||(++this.pos,this.readInt(10),i=this.input.charCodeAt(this.pos)),69!==i&&101!==i||n||(43!==(i=this.input.charCodeAt(++this.pos))&&45!==i||++this.pos,null===this.readInt(10)&&this.raise(e,"Invalid number")),V(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var r,o=(r=this.input.slice(e,this.pos),n?parseInt(r,8):parseFloat(r.replace(/_/g,"")));return this.finishToken(J.num,o)},we.readCodePoint=function(){var t;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var e=++this.pos;t=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(e,"Code point out of bounds")}else t=this.readHexChar(4);return t},we.readString=function(t){for(var e="",n=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var i=this.input.charCodeAt(this.pos);if(i===t)break;92===i?(e+=this.input.slice(n,this.pos),e+=this.readEscapedChar(!1),n=this.pos):8232===i||8233===i?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(et(i)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return e+=this.input.slice(n,this.pos++),this.finishToken(J.string,e)};var Re={};we.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(t){if(t!==Re)throw t;this.readInvalidTemplateToken()}this.inTemplateElement=!1},we.invalidStringToken=function(t,e){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Re;this.raise(t,e)},we.readTmplToken=function(){for(var t="",e=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var n=this.input.charCodeAt(this.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==J.template&&this.type!==J.invalidTemplate?(t+=this.input.slice(e,this.pos),this.finishToken(J.template,t)):36===n?(this.pos+=2,this.finishToken(J.dollarBraceL)):(++this.pos,this.finishToken(J.backQuote));if(92===n)t+=this.input.slice(e,this.pos),t+=this.readEscapedChar(!0),e=this.pos;else if(et(n)){switch(t+=this.input.slice(e,this.pos),++this.pos,n){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:t+="\n";break;default:t+=String.fromCharCode(n)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),e=this.pos}else++this.pos}},we.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if("{"!==this.input[this.pos+1])break;case"`":return this.finishToken(J.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,"Unterminated template")},we.readEscapedChar=function(t){var e=this.input.charCodeAt(++this.pos);switch(++this.pos,e){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return dt(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";case 56:case 57:if(this.strict&&this.invalidStringToken(this.pos-1,"Invalid escape sequence"),t){var n=this.pos-1;this.invalidStringToken(n,"Invalid escape sequence in template string")}default:if(e>=48&&e<=55){var i=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],a=parseInt(i,8);return a>255&&(i=i.slice(0,-1),a=parseInt(i,8)),this.pos+=i.length-1,e=this.input.charCodeAt(this.pos),"0"===i&&56!==e&&57!==e||!this.strict&&!t||this.invalidStringToken(this.pos-1-i.length,t?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(a)}return et(e)?"":String.fromCharCode(e)}},we.readHexChar=function(t){var e=this.pos,n=this.readInt(16,t);return null===n&&this.invalidStringToken(e,"Bad character escape sequence"),n},we.readWord1=function(){this.containsEsc=!1;for(var t="",e=!0,n=this.pos,i=this.options.ecmaVersion>=6;this.pos<this.input.length;){var a=this.fullCharCodeAtPos();if(q(a,i))this.pos+=a<=65535?1:2;else{if(92!==a)break;this.containsEsc=!0,t+=this.input.slice(n,this.pos);var r=this.pos;117!==this.input.charCodeAt(++this.pos)&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var o=this.readCodePoint();(e?V:q)(o,i)||this.invalidStringToken(r,"Invalid Unicode escape"),t+=dt(o),n=this.pos}e=!1}return t+this.input.slice(n,this.pos)},we.readWord=function(){var t=this.readWord1(),e=J.name;return this.keywords.test(t)&&(e=K[t]),this.finishToken(e,t)};xt.acorn={Parser:xt,version:"8.10.0",defaultOptions:bt,Position:ft,SourceLocation:gt,getLineInfo:pt,Node:Vt,TokenType:W,tokTypes:J,keywordTypes:K,TokContext:Nt,tokContexts:Bt,isIdentifierChar:q,isIdentifierStart:V,Token:ve,isNewLine:et,lineBreak:Q,lineBreakG:tt,nonASCIIwhitespace:it};var _e=n(94668),ke=n(75364);const Ee={}.hasOwnProperty,Ce=Symbol("continue"),Se=Symbol("exit"),Te=Symbol("skip");function Ae(t){return Array.isArray(t)?t:"number"==typeof t?[Ce,t]:[t]}function De(t){return Boolean(t&&"object"==typeof t&&"type"in t&&"string"==typeof t.type&&t.type.length>0)}function Ie(t,e){const n=e.prefix||"",i=e.suffix||"",a=Object.assign({},e.acornOptions),r=[],o=[],s=a.onComment,c=a.onToken;let l,u,d=!1;const h=Object.assign({},a,{onComment:r,preserveParens:!0});c&&(h.onToken=o);const f=function(t,e){const n={value:"",stops:[]};let i=-1;for(;++i<t.length;){const a=t[i];if("enter"===a[0]&&e.includes(a[1].type)){const t=a[2].sliceStream(a[1]);for(;t.length>0&&-1===t[0];)t.shift();const e=Oe(t);n.stops.push([n.value.length,a[1].start]),n.value+=e,n.stops.push([n.value.length,a[1].end])}}return n}(t,["lineEnding","expressionChunk","mdxFlowExpressionChunk","mdxTextExpressionChunk","mdxJsxTextTagExpressionAttributeValue","mdxJsxTextTagAttributeValueExpressionValue","mdxJsxFlowTagExpressionAttributeValue","mdxJsxFlowTagAttributeValueExpressionValue","mdxjsEsmData"]),p=f.value,b=n+p+i,m=e.expression&&Le(p);if(m&&!e.allowEmpty)throw new g("Unexpected empty expression",v(0),"micromark-extension-mdx-expression:unexpected-empty-expression");try{l=e.expression&&!m?e.acorn.parseExpressionAt(b,0,h):e.acorn.parse(b,h)}catch(w){const t=w,e=v(t.pos);t.message=String(t.message).replace(/ \(\d+:\d+\)$/,""),t.pos=e.offset,t.loc={line:e.line,column:e.column-1},u=t,d=t.raisedAt>=n.length+p.length||"Unterminated comment"===t.message}if(l&&e.expression&&!m)if(Le(b.slice(l.end,b.length-i.length)))l={type:"Program",start:0,end:n.length+p.length,body:[{type:"ExpressionStatement",expression:l,start:0,end:n.length+p.length}],sourceType:"module",comments:[]};else{const t=v(l.end),e=new Error("Unexpected content after expression");e.pos=t.offset,e.loc={line:t.line,column:t.column-1},u=e,l=void 0}if(l){if(l.comments=r,function(t,e){let n,i;"function"==typeof e?n=e:e&&"object"==typeof e&&(e.enter&&(n=e.enter),e.leave&&(i=e.leave)),function t(e,a,r,o){return De(e)&&(s.displayName="node ("+e.type+")"),s;function s(){const s=n?Ae(n(e,a,r,o)):[];if(s[0]===Se)return s;if(s[0]!==Te){let n;for(n in e)if(Ee.call(e,n)&&e[n]&&"object"==typeof e[n]&&"data"!==n&&"position"!==n){const i=o.concat(e),a=e[n];if(Array.isArray(a)){const e=a;let r=0;for(;r>-1&&r<e.length;){const a=e[r];if(De(a)){const e=t(a,n,r,i)();if(e[0]===Se)return e;r="number"==typeof e[1]?e[1]:r+1}else r++}}else if(De(a)){const e=t(a,n,null,i)();if(e[0]===Se)return e}}}return i?Ae(i(e,a,r,o)):s}}(t,null,null,[])()}(l,((t,e,n,i)=>{let a=i[i.length-1],r=e;"ParenthesizedExpression"===t.type&&a&&r&&("number"==typeof n&&(a=a[r],r=n),a[r]=t.expression),y(t)})),Array.isArray(s))s.push(...r);else if("function"==typeof s)for(const t of r)s("Block"===t.type,t.value,t.start,t.end,t.loc.start,t.loc.end);for(const t of o)t.end<=n.length||t.start-n.length>=p.length||(y(t),Array.isArray(c)?c.push(t):c(t))}return{estree:l,error:u,swallow:d};function y(t){const e=v(t.start),n=v(t.end);t.start=e.offset,t.end=n.offset,t.loc={start:{line:e.line,column:e.column-1,offset:e.offset},end:{line:n.line,column:n.column-1,offset:n.offset}},t.range=[t.start,t.end]}function v(t){let i=t-n.length;i<0?i=0:i>p.length&&(i=p.length);let a=function(t,e){let n=0;for(;n<t.length&&t[n][0]<=e;)n+=1;if(0===n)return;const[i,a]=t[n-1],r=e-i;return{line:a.line,column:a.column+r,offset:a.offset+r}}(f.stops,i);return a||(a={line:e.start.line,column:e.start.column,offset:e.start.offset}),a}}function Le(t){return/^\s*$/.test(t.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\/\/[^\r\n]*(\r\n|\n|\r)/g,""))}function Oe(t){let e=-1;const n=[];let i;for(;++e<t.length;){const a=t[e];let r;if("string"==typeof a)r=a;else switch(a){case-5:r="\r";break;case-4:r="\n";break;case-3:r="\r\n";break;case-2:r="\t";break;case-1:if(i)continue;r=" ";break;default:r=String.fromCharCode(a)}i=-2===a,n.push(r)}return n.join("")}function Me(t){const e=t||{},n=e.loc||{},i=e.range||[0,0],a=n.start?Ne(n.start.column):void 0,r=n.end?Ne(n.end.column):void 0;return{start:{line:n.start?Ne(n.start.line):void 0,column:void 0===a?void 0:a+1,offset:Ne(i[0]||e.start)},end:{line:n.end?Ne(n.end.line):void 0,column:void 0===r?void 0:r+1,offset:Ne(i[1]||e.end)}}}function Ne(t){return"number"==typeof t&&t>-1?t:void 0}function Be(t,e,n,i,a,r,o,s,c,l,u){const d=this,h=this.events.length+3;let f,p,b=0;return function(e){return t.enter(n),t.enter(i),t.consume(e),t.exit(i),f=d.now(),m};function m(u){if(null===u)throw p||new g("Unexpected end of file in expression, expected a corresponding closing brace for `{`",d.now(),"micromark-extension-mdx-expression:unexpected-eof");if((0,ke.Ch)(u))return t.enter("lineEnding"),t.consume(u),t.exit("lineEnding"),v;if(125===u&&0===b){const g=r?Pe.call(d,r,o,h,f,l||!1,c||!1):{type:"ok",estree:void 0};if("ok"===g.type){t.enter(i),t.consume(u),t.exit(i);const a=t.exit(n);return s&&g.estree&&Object.assign(a,{estree:g.estree}),e}return p=g.message,t.enter(a),t.consume(u),y}return t.enter(a),y(u)}function y(e){return 125===e&&0===b||null===e||(0,ke.Ch)(e)?(t.exit(a),m(e)):(123!==e||r?125===e&&(b-=1):b+=1,t.consume(e),y)}function v(t){const e=d.now();if(e.line!==f.line&&!u&&d.parser.lazy[e.line])throw new g("Unexpected end of file in expression, expected a corresponding closing brace for `{`",d.now(),"micromark-extension-mdx-expression:unexpected-eof");return m(t)}}function Pe(t,e,n,i,a,r){const o=Ie(this.events.slice(n),{acorn:t,acornOptions:e,start:i,expression:!0,allowEmpty:a,prefix:r?"({":"",suffix:r?"})":""}),s=o.estree;if(r&&s){const t=s.body[0];if("ExpressionStatement"!==t.type||"ObjectExpression"!==t.expression.type)throw new g("Unexpected `"+t.type+"` in code: expected an object spread (`{...spread}`)",Me(t).start,"micromark-extension-mdx-expression:non-spread");if(t.expression.properties[1])throw new g("Unexpected extra content in spread: only a single spread is supported",Me(t.expression.properties[1]).start,"micromark-extension-mdx-expression:spread-extra");if(t.expression.properties[0]&&"SpreadElement"!==t.expression.properties[0].type)throw new g("Unexpected `"+t.expression.properties[0].type+"` in code: only spread elements are supported",Me(t.expression.properties[0]).start,"micromark-extension-mdx-expression:non-spread")}return o.error?{type:"nok",message:new g("Could not parse expression with acorn: "+o.error.message,{line:o.error.loc.line,column:o.error.loc.column+1,offset:o.error.pos},"micromark-extension-mdx-expression:acorn")}:{type:"ok",estree:s}}var Fe=n(42761);function je(t){const e=t||{},n=e.addResult,i=e.acorn,a=e.spread;let r,o=e.allowEmpty;if(null==o&&(o=!0),i){if(!i.parseExpressionAt)throw new Error("Expected a proper `acorn` instance passed in as `options.acorn`");r=Object.assign({ecmaVersion:2020,sourceType:"module"},e.acornOptions)}else if(e.acornOptions||e.addResult)throw new Error("Expected an `acorn` instance passed in as `options.acorn`");return{flow:{123:{tokenize:function(t,e,s){const c=this;return function(e){return function(e){return Be.call(c,t,l,"mdxFlowExpression","mdxFlowExpressionMarker","mdxFlowExpressionChunk",i,r,n,a,o)(e)}(e)};function l(e){return(0,ke.xz)(e)?(0,Fe.f)(t,u,"whitespace")(e):u(e)}function u(t){return null===t||(0,ke.Ch)(t)?e(t):s(t)}},concrete:!0}},text:{123:{tokenize:function(t,e){const s=this;return function(c){return Be.call(s,t,e,"mdxTextExpression","mdxTextExpressionMarker","mdxTextExpressionChunk",i,r,n,a,o,!0)(c)}}}}}}const $e=/[$A-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,ze=/[\d\u00B7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F]/;function He(t){return $e.test(String.fromCharCode(t))}function Ue(t){const e=String.fromCharCode(t);return $e.test(e)||ze.test(e)}function Ve(t){let e=-1;for(;++e<t.length;)if(!(e?Ue:He)(t.charCodeAt(e)))return!1;return e>0}function qe(t,e,n,i,a,r,o,s,c,l,u,d,h,f,p,b,m,y,v,w,x,R,_,k,E,C,S,T,A,D,I,L){const O=this;let M,N;return function(e){return t.enter(s),t.enter(c),t.consume(e),t.exit(c),B};function B(t){return(0,ke.z3)(t)?n(t):(M=P,ot(t))}function P(e){return 47===e?(t.enter(l),t.consume(e),t.exit(l),M=F,ot):62===e?rt(e):null!==e&&He(e)?(t.enter(d),t.enter(h),t.consume(e),j):void lt(e,"before name","a character that can start a name, such as a letter, `$`, or `_`"+(33===e?" (note: to create a comment in MDX, use `{/* text */}`)":""))}function F(e){return 62===e?rt(e):null!==e&&He(e)?(t.enter(d),t.enter(h),t.consume(e),j):void lt(e,"before name","a character that can start a name, such as a letter, `$`, or `_`"+(42===e||47===e?" (note: JS comments in JSX tags are not supported in MDX)":""))}function j(e){return 45===e||null!==e&&Ue(e)?(t.consume(e),j):46===e||47===e||58===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)?(t.exit(h),M=$,ot(e)):void lt(e,"in name","a name character such as letters, digits, `$`, or `_`; whitespace before attributes; or the end of the tag"+(64===e?" (note: to create a link in MDX, use `[text](url)`)":""))}function $(e){return 46===e?(t.enter(f),t.consume(e),t.exit(f),M=z,ot):58===e?(t.enter(b),t.consume(e),t.exit(b),M=V,ot):47===e||62===e||123===e||null!==e&&He(e)?(t.exit(d),Y(e)):void lt(e,"after name","a character that can start an attribute name, such as a letter, `$`, or `_`; whitespace before attributes; or the end of the tag")}function z(e){if(null!==e&&He(e))return t.enter(p),t.consume(e),H;lt(e,"before member name","a character that can start an attribute name, such as a letter, `$`, or `_`; whitespace before attributes; or the end of the tag")}function H(e){return 45===e||null!==e&&Ue(e)?(t.consume(e),H):46===e||47===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)?(t.exit(p),M=U,ot(e)):void lt(e,"in member name","a name character such as letters, digits, `$`, or `_`; whitespace before attributes; or the end of the tag"+(64===e?" (note: to create a link in MDX, use `[text](url)`)":""))}function U(e){return 46===e?(t.enter(f),t.consume(e),t.exit(f),M=z,ot):47===e||62===e||123===e||null!==e&&He(e)?(t.exit(d),Y(e)):void lt(e,"after member name","a character that can start an attribute name, such as a letter, `$`, or `_`; whitespace before attributes; or the end of the tag")}function V(e){if(null!==e&&He(e))return t.enter(m),t.consume(e),q;lt(e,"before local name","a character that can start a name, such as a letter, `$`, or `_`"+(43===e||null!==e&&e>46&&e<58?" (note: to create a link in MDX, use `[text](url)`)":""))}function q(e){return 45===e||null!==e&&Ue(e)?(t.consume(e),q):47===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)?(t.exit(m),M=W,ot(e)):void lt(e,"in local name","a name character such as letters, digits, `$`, or `_`; whitespace before attributes; or the end of the tag")}function W(e){if(47===e||62===e||123===e||null!==e&&He(e))return t.exit(d),Y(e);lt(e,"after local name","a character that can start an attribute name, such as a letter, `$`, or `_`; whitespace before attributes; or the end of the tag")}function Y(e){return 47===e?(t.enter(u),t.consume(e),t.exit(u),M=at,ot):62===e?rt(e):123===e?Be.call(O,t,G,y,v,w,i,a,r,!0,!1,o)(e):null!==e&&He(e)?(t.enter(x),t.enter(R),t.enter(_),t.consume(e),Z):void lt(e,"before attribute name","a character that can start an attribute name, such as a letter, `$`, or `_`; whitespace before attributes; or the end of the tag")}function G(t){return M=Y,ot(t)}function Z(e){return 45===e||null!==e&&Ue(e)?(t.consume(e),Z):47===e||58===e||61===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)?(t.exit(_),M=K,ot(e)):void lt(e,"in attribute name","an attribute name character such as letters, digits, `$`, or `_`; `=` to initialize a value; whitespace before attributes; or the end of the tag")}function K(e){return 58===e?(t.enter(k),t.consume(e),t.exit(k),M=X,ot):61===e?(t.exit(R),t.enter(C),t.consume(e),t.exit(C),M=tt,ot):47===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)||null!==e&&He(e)?(t.exit(R),t.exit(x),M=Y,ot(e)):void lt(e,"after attribute name","a character that can start an attribute name, such as a letter, `$`, or `_`; `=` to initialize a value; or the end of the tag")}function X(e){if(null!==e&&He(e))return t.enter(E),t.consume(e),J;lt(e,"before local attribute name","a character that can start an attribute name, such as a letter, `$`, or `_`; `=` to initialize a value; or the end of the tag")}function J(e){return 45===e||null!==e&&Ue(e)?(t.consume(e),J):47===e||61===e||62===e||123===e||(0,ke.z3)(e)||(0,ke.B8)(e)?(t.exit(E),t.exit(R),M=Q,ot(e)):void lt(e,"in local attribute name","an attribute name character such as letters, digits, `$`, or `_`; `=` to initialize a value; whitespace before attributes; or the end of the tag")}function Q(e){return 61===e?(t.enter(C),t.consume(e),t.exit(C),M=tt,ot):47===e||62===e||123===e||null!==e&&He(e)?(t.exit(x),Y(e)):void lt(e,"after local attribute name","a character that can start an attribute name, such as a letter, `$`, or `_`; `=` to initialize a value; or the end of the tag")}function tt(e){return 34===e||39===e?(t.enter(S),t.enter(T),t.consume(e),t.exit(T),N=e,nt):123===e?Be.call(O,t,et,D,I,L,i,a,r,!1,!1,o)(e):void lt(e,"before attribute value","a character that can start an attribute value, such as `\"`, `'`, or `{`"+(60===e?" (note: to use an element or fragment as a prop value in MDX, use `{<element />}`)":""))}function et(e){return t.exit(x),M=Y,ot(e)}function nt(e){return null===e&<(e,"in attribute value","a corresponding closing quote `"+String.fromCodePoint(N)+"`"),e===N?(t.enter(T),t.consume(e),t.exit(T),t.exit(S),t.exit(x),N=void 0,M=Y,ot):(0,ke.Ch)(e)?(M=nt,ot(e)):(t.enter(A),it(e))}function it(e){return null===e||e===N||(0,ke.Ch)(e)?(t.exit(A),nt(e)):(t.consume(e),it)}function at(t){if(62===t)return rt(t);lt(t,"after self-closing slash","`>` to end the tag"+(42===t||47===t?" (note: JS comments in JSX tags are not supported in MDX)":""))}function rt(n){return t.enter(c),t.consume(n),t.exit(c),t.exit(s),e}function ot(e){return(0,ke.Ch)(e)?(t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),ct):(0,ke.xz)(e)||(0,ke.B8)(e)?(t.enter("esWhitespace"),st(e)):M(e)}function st(e){return(0,ke.Ch)(e)?(t.exit("esWhitespace"),ot(e)):(0,ke.xz)(e)||(0,ke.B8)(e)?(t.consume(e),st):(t.exit("esWhitespace"),M(e))}function ct(t){if(!o&&O.parser.lazy[O.now().line])throw new g("Unexpected lazy line in container, expected line to be prefixed with `>` when in a block quote, whitespace when in a list, etc",O.now(),"micromark-extension-mdx-jsx:unexpected-eof");return ot(t)}function lt(t,e,n){throw new g("Unexpected "+(null===t?"end of file":"character `"+(96===t?"` ` `":String.fromCodePoint(t))+"` ("+function(t){return"U+"+t.toString(16).toUpperCase().padStart(4,"0")}(t)+")")+" "+e+", expected "+n,O.now(),"micromark-extension-mdx-jsx:unexpected-"+(null===t?"eof":"character"))}}function We(t,e,n){return{tokenize:function(i,a,r){return qe.call(this,i,a,r,t,e,n,!0,"mdxJsxTextTag","mdxJsxTextTagMarker","mdxJsxTextTagClosingMarker","mdxJsxTextTagSelfClosingMarker","mdxJsxTextTagName","mdxJsxTextTagNamePrimary","mdxJsxTextTagNameMemberMarker","mdxJsxTextTagNameMember","mdxJsxTextTagNamePrefixMarker","mdxJsxTextTagNameLocal","mdxJsxTextTagExpressionAttribute","mdxJsxTextTagExpressionAttributeMarker","mdxJsxTextTagExpressionAttributeValue","mdxJsxTextTagAttribute","mdxJsxTextTagAttributeName","mdxJsxTextTagAttributeNamePrimary","mdxJsxTextTagAttributeNamePrefixMarker","mdxJsxTextTagAttributeNameLocal","mdxJsxTextTagAttributeInitializerMarker","mdxJsxTextTagAttributeValueLiteral","mdxJsxTextTagAttributeValueLiteralMarker","mdxJsxTextTagAttributeValueLiteralValue","mdxJsxTextTagAttributeValueExpression","mdxJsxTextTagAttributeValueExpressionMarker","mdxJsxTextTagAttributeValueExpressionValue")}}}function Ye(t,e,n){return{tokenize:function(i,a,r){const o=this;return s;function s(a){return function(a){return qe.call(o,i,c,r,t,e,n,!1,"mdxJsxFlowTag","mdxJsxFlowTagMarker","mdxJsxFlowTagClosingMarker","mdxJsxFlowTagSelfClosingMarker","mdxJsxFlowTagName","mdxJsxFlowTagNamePrimary","mdxJsxFlowTagNameMemberMarker","mdxJsxFlowTagNameMember","mdxJsxFlowTagNamePrefixMarker","mdxJsxFlowTagNameLocal","mdxJsxFlowTagExpressionAttribute","mdxJsxFlowTagExpressionAttributeMarker","mdxJsxFlowTagExpressionAttributeValue","mdxJsxFlowTagAttribute","mdxJsxFlowTagAttributeName","mdxJsxFlowTagAttributeNamePrimary","mdxJsxFlowTagAttributeNamePrefixMarker","mdxJsxFlowTagAttributeNameLocal","mdxJsxFlowTagAttributeInitializerMarker","mdxJsxFlowTagAttributeValueLiteral","mdxJsxFlowTagAttributeValueLiteralMarker","mdxJsxFlowTagAttributeValueLiteralValue","mdxJsxFlowTagAttributeValueExpression","mdxJsxFlowTagAttributeValueExpressionMarker","mdxJsxFlowTagAttributeValueExpressionValue")(a)}(a)}function c(t){return(0,ke.xz)(t)?(0,Fe.f)(i,l,"whitespace")(t):l(t)}function l(t){return 60===t?s(t):null===t||(0,ke.Ch)(t)?a(t):r(t)}},concrete:!0}}function Ge(t){const e=t||{},n=e.acorn;let i;if(n){if(!n.parse||!n.parseExpressionAt)throw new Error("Expected a proper `acorn` instance passed in as `options.acorn`");i=Object.assign({ecmaVersion:2020,sourceType:"module"},e.acornOptions,{locations:!0})}else if(e.acornOptions||e.addResult)throw new Error("Expected an `acorn` instance passed in as `options.acorn`");return{flow:{60:Ye(n||void 0,i,e.addResult||!1)},text:{60:We(n||void 0,i,e.addResult||!1)}}}const Ze={disable:{null:["autolink","codeIndented","htmlFlow","htmlText"]}};var Ke=n(23402);const Xe={tokenize:function(t,e,n){return function(i){return t.enter("lineEndingBlank"),t.consume(i),t.exit("lineEndingBlank"),t.attempt(Ke.w,e,n)}},partial:!0},Je=new Set(["ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ImportDeclaration"]);function Qe(t){const e={tokenize:function(e,a,r){const o=this,s=o.parser.definedModuleSpecifiers||(o.parser.definedModuleSpecifiers=[]),c=this.events.length+1;let l="";return o.interrupt?r:function(t){return o.now().column>1?r(t):(e.enter("mdxjsEsm"),e.enter("mdxjsEsmData"),e.consume(t),l+=String.fromCharCode(t),u)};function u(t){return(0,ke.jv)(t)?(e.consume(t),l+=String.fromCharCode(t),u):"import"!==l&&"export"!==l||32!==t?r(t):(e.consume(t),d)}function d(t){return null===t||(0,ke.Ch)(t)?(e.exit("mdxjsEsmData"),h(t)):(e.consume(t),d)}function h(t){return null===t?p(t):(0,ke.Ch)(t)?e.check(Xe,p,f)(t):(e.enter("mdxjsEsmData"),d(t))}function f(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),h}function p(r){const l=Ie(o.events.slice(c),{acorn:n,acornOptions:i,prefix:s.length>0?"var "+s.join(",")+"\n":""});if(l.error){if(null!==r&&l.swallow)return f(r);throw new g("Could not parse import/exports with acorn: "+String(l.error),{line:l.error.loc.line,column:l.error.loc.column+1,offset:l.error.pos},"micromark-extension-mdxjs-esm:acorn")}if(s.length>0){l.estree.body.shift()}let u=-1;for(;++u<l.estree.body.length;){const t=l.estree.body[u];if(!Je.has(t.type))throw new g("Unexpected `"+t.type+"` in code: only import/exports are supported",Me(t),"micromark-extension-mdxjs-esm:non-esm");if("ImportDeclaration"===t.type&&!o.interrupt){let e=-1;for(;++e<t.specifiers.length;){const n=t.specifiers[e];s.push(n.local.name)}}}return Object.assign(e.exit("mdxjsEsm"),t.addResult?{estree:l.estree}:void 0),a(r)}},concrete:!0};if(!t||!t.acorn||!t.acorn.parse)throw new Error("Expected an `acorn` instance passed in as `options.acorn`");const n=t.acorn,i=Object.assign({ecmaVersion:2020,sourceType:"module"},t.acornOptions);return{flow:{101:e,105:e}}}var tn=n(4663);const en={enter:{mdxFlowExpression:function(t){this.enter({type:"mdxFlowExpression",value:""},t),this.buffer()},mdxTextExpression:function(t){this.enter({type:"mdxTextExpression",value:""},t),this.buffer()}},exit:{mdxFlowExpression:an,mdxFlowExpressionChunk:rn,mdxTextExpression:an,mdxTextExpressionChunk:rn}},nn={handlers:{mdxFlowExpression:on,mdxTextExpression:on},unsafe:[{character:"{",inConstruct:["phrasing"]},{atBreak:!0,character:"{"}]};function an(t){const e=this.resume(),n=t.estree,i=this.exit(t);i.value=e,n&&(i.data={estree:n})}function rn(t){this.config.enter.data.call(this,t),this.config.exit.data.call(this,t)}function on(t){return"{"+(t.value||"")+"}"}var sn=n(64777);const cn=["AElig","AMP","Aacute","Acirc","Agrave","Aring","Atilde","Auml","COPY","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","GT","Iacute","Icirc","Igrave","Iuml","LT","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","QUOT","REG","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","acute","aelig","agrave","amp","aring","atilde","auml","brvbar","ccedil","cedil","cent","copy","curren","deg","divide","eacute","ecirc","egrave","eth","euml","frac12","frac14","frac34","gt","iacute","icirc","iexcl","igrave","iquest","iuml","laquo","lt","macr","micro","middot","nbsp","not","ntilde","oacute","ocirc","ograve","ordf","ordm","oslash","otilde","ouml","para","plusmn","pound","quot","raquo","reg","sect","shy","sup1","sup2","sup3","szlig","thorn","times","uacute","ucirc","ugrave","uml","uuml","yacute","yen","yuml"],ln={0:"\ufffd",128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};function un(t){const e="string"==typeof t?t.charCodeAt(0):t;return e>=48&&e<=57}function dn(t){const e="string"==typeof t?t.charCodeAt(0):t;return e>=97&&e<=102||e>=65&&e<=70||e>=48&&e<=57}function hn(t){return function(t){const e="string"==typeof t?t.charCodeAt(0):t;return e>=97&&e<=122||e>=65&&e<=90}(t)||un(t)}var fn=n(44301);const gn=String.fromCharCode,pn=["","Named character references must be terminated by a semicolon","Numeric character references must be terminated by a semicolon","Named character references cannot be empty","Numeric character references cannot be empty","Named character references must be known","Numeric character references cannot be disallowed","Numeric character references cannot be outside the permissible Unicode range"];function bn(t){return t>=55296&&t<=57343||t>1114111}function mn(t){return t>=1&&t<=8||11===t||t>=13&&t<=31||t>=127&&t<=159||t>=64976&&t<=65007||65535==(65535&t)||65534==(65535&t)}function yn(t,e){return t=t.replace(e.subset?function(t){const e=[];let n=-1;for(;++n<t.length;)e.push(t[n].replace(/[|\\{}()[\]^$+*?.]/g,"\\$&"));return new RegExp("(?:"+e.join("|")+")","g")}(e.subset):/["&'<>`]/g,n),e.subset||e.escapeOnly?t:t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,(function(t,n,i){return e.format(1024*(t.charCodeAt(0)-55296)+t.charCodeAt(1)-56320+65536,i.charCodeAt(n+2),e)})).replace(/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,n);function n(t,n,i){return e.format(t.charCodeAt(0),i.charCodeAt(n+1),e)}}function vn(t){return"&#x"+t.toString(16).toUpperCase()+";"}function wn(t,e){return yn(t,Object.assign({format:vn},e))}var xn=n(87891),Rn=n(21665),_n=n(48653);function kn(){return{canContainEols:["mdxJsxTextElement"],enter:{mdxJsxFlowTag:n,mdxJsxFlowTagClosingMarker:i,mdxJsxFlowTagAttribute:d,mdxJsxFlowTagExpressionAttribute:h,mdxJsxFlowTagAttributeValueLiteral:t,mdxJsxFlowTagAttributeValueExpression:t,mdxJsxFlowTagSelfClosingMarker:r,mdxJsxTextTag:n,mdxJsxTextTagClosingMarker:i,mdxJsxTextTagAttribute:d,mdxJsxTextTagExpressionAttribute:h,mdxJsxTextTagAttributeValueLiteral:t,mdxJsxTextTagAttributeValueExpression:t,mdxJsxTextTagSelfClosingMarker:r},exit:{mdxJsxFlowTagClosingMarker:o,mdxJsxFlowTagNamePrimary:s,mdxJsxFlowTagNameMember:c,mdxJsxFlowTagNameLocal:l,mdxJsxFlowTagExpressionAttribute:f,mdxJsxFlowTagExpressionAttributeValue:e,mdxJsxFlowTagAttributeNamePrimary:p,mdxJsxFlowTagAttributeNameLocal:b,mdxJsxFlowTagAttributeValueLiteral:m,mdxJsxFlowTagAttributeValueLiteralValue:e,mdxJsxFlowTagAttributeValueExpression:y,mdxJsxFlowTagAttributeValueExpressionValue:e,mdxJsxFlowTagSelfClosingMarker:v,mdxJsxFlowTag:w,mdxJsxTextTagClosingMarker:o,mdxJsxTextTagNamePrimary:s,mdxJsxTextTagNameMember:c,mdxJsxTextTagNameLocal:l,mdxJsxTextTagExpressionAttribute:f,mdxJsxTextTagExpressionAttributeValue:e,mdxJsxTextTagAttributeNamePrimary:p,mdxJsxTextTagAttributeNameLocal:b,mdxJsxTextTagAttributeValueLiteral:m,mdxJsxTextTagAttributeValueLiteralValue:e,mdxJsxTextTagAttributeValueExpression:y,mdxJsxTextTagAttributeValueExpressionValue:e,mdxJsxTextTagSelfClosingMarker:v,mdxJsxTextTag:w}};function t(){this.buffer()}function e(t){this.config.enter.data.call(this,t),this.config.exit.data.call(this,t)}function n(t){const e={name:void 0,attributes:[],close:!1,selfClosing:!1,start:t.start,end:t.end};this.getData("mdxJsxTagStack")||this.setData("mdxJsxTagStack",[]),this.setData("mdxJsxTag",e),this.buffer()}function i(t){if(0===this.getData("mdxJsxTagStack").length)throw new g("Unexpected closing slash `/` in tag, expected an open tag first",{start:t.start,end:t.end},"mdast-util-mdx-jsx:unexpected-closing-slash")}function a(t){if(this.getData("mdxJsxTag").close)throw new g("Unexpected attribute in closing tag, expected the end of the tag",{start:t.start,end:t.end},"mdast-util-mdx-jsx:unexpected-attribute")}function r(t){if(this.getData("mdxJsxTag").close)throw new g("Unexpected self-closing slash `/` in closing tag, expected the end of the tag",{start:t.start,end:t.end},"mdast-util-mdx-jsx:unexpected-self-closing-slash")}function o(){this.getData("mdxJsxTag").close=!0}function s(t){this.getData("mdxJsxTag").name=this.sliceSerialize(t)}function c(t){this.getData("mdxJsxTag").name+="."+this.sliceSerialize(t)}function l(t){this.getData("mdxJsxTag").name+=":"+this.sliceSerialize(t)}function d(t){const e=this.getData("mdxJsxTag");a.call(this,t),e.attributes.push({type:"mdxJsxAttribute",name:"",value:null})}function h(t){const e=this.getData("mdxJsxTag");a.call(this,t),e.attributes.push({type:"mdxJsxExpressionAttribute",value:""}),this.buffer()}function f(t){const e=this.getData("mdxJsxTag"),n=e.attributes[e.attributes.length-1],i=t.estree;n.value=this.resume(),i&&(n.data={estree:i})}function p(t){const e=this.getData("mdxJsxTag");e.attributes[e.attributes.length-1].name=this.sliceSerialize(t)}function b(t){const e=this.getData("mdxJsxTag");e.attributes[e.attributes.length-1].name+=":"+this.sliceSerialize(t)}function m(){const t=this.getData("mdxJsxTag");t.attributes[t.attributes.length-1].value=function(t,e={}){const n="string"==typeof e.additional?e.additional.charCodeAt(0):e.additional,i=[];let a,r,o=0,s=-1,c="";e.position&&("start"in e.position||"indent"in e.position?(r=e.position.indent,a=e.position.start):a=e.position);let l,u=(a?a.line:0)||1,d=(a?a.column:0)||1,h=f();for(o--;++o<=t.length;)if(10===l&&(d=(r?r[s]:0)||1),l=t.charCodeAt(o),38===l){const a=t.charCodeAt(o+1);if(9===a||10===a||12===a||32===a||38===a||60===a||Number.isNaN(a)||n&&a===n){c+=gn(l),d++;continue}const r=o+1;let s,u=r,b=r;if(35===a){b=++u;const e=t.charCodeAt(b);88===e||120===e?(s="hexadecimal",b=++u):s="decimal"}else s="named";let m="",y="",v="";const w="named"===s?hn:"decimal"===s?un:dn;for(b--;++b<=t.length;){const e=t.charCodeAt(b);if(!w(e))break;v+=gn(e),"named"===s&&cn.includes(v)&&(m=v,y=(0,fn.T)(v))}let x=59===t.charCodeAt(b);if(x){b++;const t="named"===s&&(0,fn.T)(v);t&&(m=v,y=t)}let R=1+b-r,_="";if(x||!1!==e.nonTerminated)if(v)if("named"===s){if(x&&!y)g(5,1);else if(m!==v&&(b=u+m.length,R=1+b-u,x=!1),!x){const n=m?1:3;if(e.attribute){const e=t.charCodeAt(b);61===e?(g(n,R),y=""):hn(e)?y="":g(n,R)}else g(n,R)}_=y}else{x||g(2,R);let t=Number.parseInt(v,"hexadecimal"===s?16:10);if(bn(t))g(7,R),_=gn(65533);else if(t in ln)g(6,R),_=ln[t];else{let e="";mn(t)&&g(6,R),t>65535&&(t-=65536,e+=gn(t>>>10|55296),t=56320|1023&t),_=e+gn(t)}}else"named"!==s&&g(4,R);if(_){p(),h=f(),o=b-1,d+=b-r+1,i.push(_);const n=f();n.offset++,e.reference&&e.reference.call(e.referenceContext,_,{start:h,end:n},t.slice(r-1,b)),h=n}else v=t.slice(r-1,b),c+=v,d+=v.length,o=b-1}else 10===l&&(u++,s++,d=0),Number.isNaN(l)?p():(c+=gn(l),d++);return i.join("");function f(){return{line:u,column:d,offset:o+((a?a.offset:0)||0)}}function g(t,n){let i;e.warning&&(i=f(),i.column+=n,i.offset+=n,e.warning.call(e.warningContext,pn[t],i,t))}function p(){c&&(i.push(c),e.text&&e.text.call(e.textContext,c,{start:h,end:f()}),c="")}}(this.resume(),{nonTerminated:!1})}function y(t){const e=this.getData("mdxJsxTag"),n=e.attributes[e.attributes.length-1],i={type:"mdxJsxAttributeValueExpression",value:this.resume()},a=t.estree;a&&(i.data={estree:a}),n.value=i}function v(){this.getData("mdxJsxTag").selfClosing=!0}function w(t){const e=this.getData("mdxJsxTag"),n=this.getData("mdxJsxTagStack"),i=n[n.length-1];if(e.close&&i.name!==e.name)throw new g("Unexpected closing tag `"+_(e)+"`, expected corresponding closing tag for `"+_(i)+"` ("+u(i)+")",{start:t.start,end:t.end},"mdast-util-mdx-jsx:end-tag-mismatch");this.resume(),e.close?n.pop():this.enter({type:"mdxJsxTextTag"===t.type?"mdxJsxTextElement":"mdxJsxFlowElement",name:e.name||null,attributes:e.attributes,children:[]},t,x),e.selfClosing||e.close?this.exit(t,R):n.push(e)}function x(t,e){const n=this.getData("mdxJsxTag"),i=t?" before the end of `"+t.type+"`":"",a=t?{start:t.start,end:t.end}:void 0;throw new g("Expected a closing tag for `"+_(n)+"` ("+u({start:e.start,end:e.end})+")"+i,a,"mdast-util-mdx-jsx:end-tag-mismatch")}function R(t,e){const n=this.getData("mdxJsxTag");throw new g("Expected the closing tag `"+_(n)+"` either after the end of `"+e.type+"` ("+u(e.end)+") or another opening tag after the start of `"+e.type+"` ("+u(e.start)+")",{start:t.start,end:t.end},"mdast-util-mdx-jsx:end-tag-mismatch")}function _(t){return"<"+(t.close?"/":"")+(t.name||"")+">"}}function En(t){const e=t||{},n=e.quote||'"',i=e.quoteSmart||!1,a=e.tightSelfClosing||!1,r=e.printWidth||Number.POSITIVE_INFINITY,o='"'===n?"'":'"';if('"'!==n&&"'"!==n)throw new Error("Cannot serialize attribute values with `"+n+"` for `options.quote`, expected `\"`, or `'`");return s.peek=Tn,{handlers:{mdxJsxFlowElement:s,mdxJsxTextElement:s},unsafe:[{character:"<",inConstruct:["phrasing"]},{atBreak:!0,character:"<"}],fences:!0,resourceLink:!0};function s(t,e,s,c){const l="mdxJsxFlowElement"===t.type,u=!!t.name&&(!t.children||0===t.children.length),d=Sn(Cn(s)),h=(0,_n.j)(c),f=(0,_n.j)(c),g=[],p=(l?d:"")+"<"+(t.name||""),b=s.enter(t.type);if(h.move(p),f.move(p),t.attributes&&t.attributes.length>0){if(!t.name)throw new Error("Cannot serialize fragment w/ attributes");let e=-1;for(;++e<t.attributes.length;){const a=t.attributes[e];let r;if("mdxJsxExpressionAttribute"===a.type)r="{"+(a.value||"")+"}";else{if(!a.name)throw new Error("Cannot serialize attribute w/o name");const t=a.value,e=a.name;let s="";if(null==t);else if("object"==typeof t)s="{"+(t.value||"")+"}";else{const e=i&&(0,sn.w)(t,n)>(0,sn.w)(t,o)?o:n;s=e+wn(t,{subset:[e]})+e}r=e+(s?"=":"")+s}g.push(r)}}let m=!1;const y=g.join(" ");l&&(/\r?\n|\r/.test(y)||h.current().now.column+y.length+(u?a?2:3:1)>r)&&(m=!0);let v=h,w=p;if(m){v=f;let t=-1;for(;++t<g.length;)g[t]=d+" "+g[t];w+=v.move("\n"+g.join("\n")+"\n"+d)}else y&&(w+=v.move(" "+y));return u&&(w+=v.move((a||m?"":" ")+"/")),w+=v.move(">"),t.children&&t.children.length>0&&("mdxJsxTextElement"===t.type?w+=v.move((0,xn.p)(t,s,{...v.current(),before:">",after:"<"})):(v.shift(2),w+=v.move("\n"),w+=v.move(function(t,e,n){const i=e.indexStack,a=t.children,r=e.createTracker(n),o=Sn(Cn(e)),s=[];let c=-1;i.push(-1);for(;++c<a.length;){const n=a[c];i[i.length-1]=c;const l={before:"\n",after:"\n",...r.current()},u=e.handle(n,t,e,l),d="mdxJsxFlowElement"===n.type?u:(0,Rn.Q)(u,(function(t,e,n){return(n?"":o)+t}));s.push(r.move(d)),"list"!==n.type&&(e.bulletLastUsed=void 0),c<a.length-1&&s.push(r.move("\n\n"))}return i.pop(),s.join("")}(t,s,v.current())),w+=v.move("\n"))),u||(w+=v.move((l?d:"")+"</"+(t.name||"")+">")),b(),w}}function Cn(t){let e=0;for(const n of t.stack)"mdxJsxFlowElement"===n&&e++;return e}function Sn(t){return" ".repeat(t)}function Tn(){return"<"}const An={enter:{mdxjsEsm:function(t){this.enter({type:"mdxjsEsm",value:""},t),this.buffer()}},exit:{mdxjsEsm:function(t){const e=this.resume(),n=this.exit(t),i=t.estree;n.value=e,i&&(n.data={estree:i})},mdxjsEsmData:function(t){this.config.enter.data.call(this,t),this.config.exit.data.call(this,t)}}},Dn={handlers:{mdxjsEsm:function(t){return t.value||""}}};function In(t){const e=this.data();function n(t,n){(e[t]?e[t]:e[t]=[]).push(n)}n("micromarkExtensions",function(t){const e=Object.assign({acorn:xt.extend(_e()),acornOptions:{ecmaVersion:2020,sourceType:"module"},addResult:!0},t);return(0,tn.W)([Qe(e),je(e),Ge(e),Ze])}(t)),n("fromMarkdownExtensions",[en,kn(),An]),n("toMarkdownExtensions",function(t){return{extensions:[nn,En(t),Dn]}}(t))}const Ln={};function On(t,e,n){if(function(t){return Boolean(t&&"object"==typeof t)}(t)){if("value"in t)return"html"!==t.type||n?t.value:"";if(e&&"alt"in t&&t.alt)return t.alt;if("children"in t)return Mn(t.children,e,n)}return Array.isArray(t)?Mn(t,e,n):""}function Mn(t,e,n){const i=[];let a=-1;for(;++a<t.length;)i[a]=On(t[a],e,n);return i.join("")}const Nn={tokenize:function(t){const e=t.attempt(this.parser.constructs.contentInitial,(function(n){if(null===n)return void t.consume(n);return t.enter("lineEnding"),t.consume(n),t.exit("lineEnding"),(0,Fe.f)(t,e,"linePrefix")}),(function(e){return t.enter("paragraph"),i(e)}));let n;return e;function i(e){const i=t.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=i),n=i,a(e)}function a(e){return null===e?(t.exit("chunkText"),t.exit("paragraph"),void t.consume(e)):(0,ke.Ch)(e)?(t.consume(e),t.exit("chunkText"),i):(t.consume(e),a)}}};var Bn=n(21905);const Pn={tokenize:function(t){const e=this,n=[];let i,a,r,o=0;return s;function s(i){if(o<n.length){const a=n[o];return e.containerState=a[1],t.attempt(a[0].continuation,c,l)(i)}return l(i)}function c(t){if(o++,e.containerState._closeFlow){e.containerState._closeFlow=void 0,i&&y();const n=e.events.length;let a,r=n;for(;r--;)if("exit"===e.events[r][0]&&"chunkFlow"===e.events[r][1].type){a=e.events[r][1].end;break}m(o);let s=n;for(;s<e.events.length;)e.events[s][1].end=Object.assign({},a),s++;return(0,Bn.d)(e.events,r+1,0,e.events.slice(n)),e.events.length=s,l(t)}return s(t)}function l(a){if(o===n.length){if(!i)return h(a);if(i.currentConstruct&&i.currentConstruct.concrete)return g(a);e.interrupt=Boolean(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return e.containerState={},t.check(Fn,u,d)(a)}function u(t){return i&&y(),m(o),h(t)}function d(t){return e.parser.lazy[e.now().line]=o!==n.length,r=e.now().offset,g(t)}function h(n){return e.containerState={},t.attempt(Fn,f,g)(n)}function f(t){return o++,n.push([e.currentConstruct,e.containerState]),h(t)}function g(n){return null===n?(i&&y(),m(0),void t.consume(n)):(i=i||e.parser.flow(e.now()),t.enter("chunkFlow",{contentType:"flow",previous:a,_tokenizer:i}),p(n))}function p(n){return null===n?(b(t.exit("chunkFlow"),!0),m(0),void t.consume(n)):(0,ke.Ch)(n)?(t.consume(n),b(t.exit("chunkFlow")),o=0,e.interrupt=void 0,s):(t.consume(n),p)}function b(t,n){const s=e.sliceStream(t);if(n&&s.push(null),t.previous=a,a&&(a.next=t),a=t,i.defineSkip(t.start),i.write(s),e.parser.lazy[t.start.line]){let t=i.events.length;for(;t--;)if(i.events[t][1].start.offset<r&&(!i.events[t][1].end||i.events[t][1].end.offset>r))return;const n=e.events.length;let a,s,c=n;for(;c--;)if("exit"===e.events[c][0]&&"chunkFlow"===e.events[c][1].type){if(a){s=e.events[c][1].end;break}a=!0}for(m(o),t=n;t<e.events.length;)e.events[t][1].end=Object.assign({},s),t++;(0,Bn.d)(e.events,c+1,0,e.events.slice(n)),e.events.length=t}}function m(i){let a=n.length;for(;a-- >i;){const i=n[a];e.containerState=i[1],i[0].exit.call(e,t)}n.length=i}function y(){i.write([null]),a=void 0,i=void 0,e.containerState._closeFlow=void 0}}},Fn={tokenize:function(t,e,n){return(0,Fe.f)(t,t.attempt(this.parser.constructs.document,e,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};function jn(t){const e={};let n,i,a,r,o,s,c,l=-1;for(;++l<t.length;){for(;l in e;)l=e[l];if(n=t[l],l&&"chunkFlow"===n[1].type&&"listItemPrefix"===t[l-1][1].type&&(s=n[1]._tokenizer.events,a=0,a<s.length&&"lineEndingBlank"===s[a][1].type&&(a+=2),a<s.length&&"content"===s[a][1].type))for(;++a<s.length&&"content"!==s[a][1].type;)"chunkText"===s[a][1].type&&(s[a][1]._isInFirstContentOfListItem=!0,a++);if("enter"===n[0])n[1].contentType&&(Object.assign(e,$n(t,l)),l=e[l],c=!0);else if(n[1]._container){for(a=l,i=void 0;a--&&(r=t[a],"lineEnding"===r[1].type||"lineEndingBlank"===r[1].type);)"enter"===r[0]&&(i&&(t[i][1].type="lineEndingBlank"),r[1].type="lineEnding",i=a);i&&(n[1].end=Object.assign({},t[i][1].start),o=t.slice(i,l),o.unshift(n),(0,Bn.d)(t,i,l-i+1,o))}}return!c}function $n(t,e){const n=t[e][1],i=t[e][2];let a=e-1;const r=[],o=n._tokenizer||i.parser[n.contentType](n.start),s=o.events,c=[],l={};let u,d,h=-1,f=n,g=0,p=0;const b=[p];for(;f;){for(;t[++a][1]!==f;);r.push(a),f._tokenizer||(u=i.sliceStream(f),f.next||u.push(null),d&&o.defineSkip(f.start),f._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(u),f._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=f,f=f.next}for(f=n;++h<s.length;)"exit"===s[h][0]&&"enter"===s[h-1][0]&&s[h][1].type===s[h-1][1].type&&s[h][1].start.line!==s[h][1].end.line&&(p=h+1,b.push(p),f._tokenizer=void 0,f.previous=void 0,f=f.next);for(o.events=[],f?(f._tokenizer=void 0,f.previous=void 0):b.pop(),h=b.length;h--;){const e=s.slice(b[h],b[h+1]),n=r.pop();c.unshift([n,n+e.length-1]),(0,Bn.d)(t,n,2,e)}for(h=-1;++h<c.length;)l[g+c[h][0]]=g+c[h][1],g+=c[h][1]-c[h][0]-1;return l}const zn={tokenize:function(t,e){let n;return function(e){return t.enter("content"),n=t.enter("chunkContent",{contentType:"content"}),i(e)};function i(e){return null===e?a(e):(0,ke.Ch)(e)?t.check(Hn,r,a)(e):(t.consume(e),i)}function a(n){return t.exit("chunkContent"),t.exit("content"),e(n)}function r(e){return t.consume(e),t.exit("chunkContent"),n.next=t.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}},resolve:function(t){return jn(t),t}},Hn={tokenize:function(t,e,n){const i=this;return function(e){return t.exit("chunkContent"),t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),(0,Fe.f)(t,a,"linePrefix")};function a(a){if(null===a||(0,ke.Ch)(a))return n(a);const r=i.events[i.events.length-1];return!i.parser.constructs.disable.null.includes("codeIndented")&&r&&"linePrefix"===r[1].type&&r[2].sliceSerialize(r[1],!0).length>=4?e(a):t.interrupt(i.parser.constructs.flow,n,e)(a)}},partial:!0};const Un={tokenize:function(t){const e=this,n=t.attempt(Ke.w,(function(i){if(null===i)return void t.consume(i);return t.enter("lineEndingBlank"),t.consume(i),t.exit("lineEndingBlank"),e.currentConstruct=void 0,n}),t.attempt(this.parser.constructs.flowInitial,i,(0,Fe.f)(t,t.attempt(this.parser.constructs.flow,i,t.attempt(zn,i)),"linePrefix")));return n;function i(i){if(null!==i)return t.enter("lineEnding"),t.consume(i),t.exit("lineEnding"),e.currentConstruct=void 0,n;t.consume(i)}}};const Vn={resolveAll:Gn()},qn=Yn("string"),Wn=Yn("text");function Yn(t){return{tokenize:function(e){const n=this,i=this.parser.constructs[t],a=e.attempt(i,r,o);return r;function r(t){return c(t)?a(t):o(t)}function o(t){if(null!==t)return e.enter("data"),e.consume(t),s;e.consume(t)}function s(t){return c(t)?(e.exit("data"),a(t)):(e.consume(t),s)}function c(t){if(null===t)return!0;const e=i[t];let a=-1;if(e)for(;++a<e.length;){const t=e[a];if(!t.previous||t.previous.call(n,n.previous))return!0}return!1}},resolveAll:Gn("text"===t?Zn:void 0)}}function Gn(t){return function(e,n){let i,a=-1;for(;++a<=e.length;)void 0===i?e[a]&&"data"===e[a][1].type&&(i=a,a++):e[a]&&"data"===e[a][1].type||(a!==i+2&&(e[i][1].end=e[a-1][1].end,e.splice(i+2,a-i-2),a=i+2),i=void 0);return t?t(e,n):e}}function Zn(t,e){let n=0;for(;++n<=t.length;)if((n===t.length||"lineEnding"===t[n][1].type)&&"data"===t[n-1][1].type){const i=t[n-1][1],a=e.sliceStream(i);let r,o=a.length,s=-1,c=0;for(;o--;){const t=a[o];if("string"==typeof t){for(s=t.length;32===t.charCodeAt(s-1);)c++,s--;if(s)break;s=-1}else if(-2===t)r=!0,c++;else if(-1!==t){o++;break}}if(c){const a={type:n===t.length||r||c<2?"lineSuffix":"hardBreakTrailing",start:{line:i.end.line,column:i.end.column-c,offset:i.end.offset-c,_index:i.start._index+o,_bufferIndex:o?s:i.start._bufferIndex+s},end:Object.assign({},i.end)};i.end=Object.assign({},a.start),i.start.offset===i.end.offset?Object.assign(i,a):(t.splice(n,0,["enter",a,e],["exit",a,e]),n+=2)}n++}return t}var Kn=n(63233);function Xn(t,e,n){let i=Object.assign(n?Object.assign({},n):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1});const a={},r=[];let o=[],s=[],c=!0;const l={consume:function(t){(0,ke.Ch)(t)?(i.line++,i.column=1,i.offset+=-3===t?2:1,w()):-1!==t&&(i.column++,i.offset++);i._bufferIndex<0?i._index++:(i._bufferIndex++,i._bufferIndex===o[i._index].length&&(i._bufferIndex=-1,i._index++));u.previous=t,c=!0},enter:function(t,e){const n=e||{};return n.type=t,n.start=g(),u.events.push(["enter",n,u]),s.push(n),n},exit:function(t){const e=s.pop();return e.end=g(),u.events.push(["exit",e,u]),e},attempt:y((function(t,e){v(t,e.from)})),check:y(m),interrupt:y(m,{interrupt:!0})},u={previous:null,code:null,containerState:{},events:[],parser:t,sliceStream:f,sliceSerialize:function(t,e){return function(t,e){let n=-1;const i=[];let a;for(;++n<t.length;){const r=t[n];let o;if("string"==typeof r)o=r;else switch(r){case-5:o="\r";break;case-4:o="\n";break;case-3:o="\r\n";break;case-2:o=e?" ":"\t";break;case-1:if(!e&&a)continue;o=" ";break;default:o=String.fromCharCode(r)}a=-2===r,i.push(o)}return i.join("")}(f(t),e)},now:g,defineSkip:function(t){a[t.line]=t.column,w()},write:function(t){if(o=(0,Bn.V)(o,t),p(),null!==o[o.length-1])return[];return v(e,0),u.events=(0,Kn.C)(r,u.events,u),u.events}};let d,h=e.tokenize.call(u,l);return e.resolveAll&&r.push(e),u;function f(t){return function(t,e){const n=e.start._index,i=e.start._bufferIndex,a=e.end._index,r=e.end._bufferIndex;let o;if(n===a)o=[t[n].slice(i,r)];else{if(o=t.slice(n,a),i>-1){const t=o[0];"string"==typeof t?o[0]=t.slice(i):o.shift()}r>0&&o.push(t[a].slice(0,r))}return o}(o,t)}function g(){const{line:t,column:e,offset:n,_index:a,_bufferIndex:r}=i;return{line:t,column:e,offset:n,_index:a,_bufferIndex:r}}function p(){let t;for(;i._index<o.length;){const e=o[i._index];if("string"==typeof e)for(t=i._index,i._bufferIndex<0&&(i._bufferIndex=0);i._index===t&&i._bufferIndex<e.length;)b(e.charCodeAt(i._bufferIndex));else b(e)}}function b(t){c=void 0,d=t,h=h(t)}function m(t,e){e.restore()}function y(t,e){return function(n,a,r){let o,d,h,f;return Array.isArray(n)?p(n):"tokenize"in n?p([n]):function(t){return e;function e(e){const n=null!==e&&t[e],i=null!==e&&t.null;return p([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(i)?i:i?[i]:[]])(e)}}(n);function p(t){return o=t,d=0,0===t.length?r:b(t[d])}function b(t){return function(n){f=function(){const t=g(),e=u.previous,n=u.currentConstruct,a=u.events.length,r=Array.from(s);return{restore:o,from:a};function o(){i=t,u.previous=e,u.currentConstruct=n,u.events.length=a,s=r,w()}}(),h=t,t.partial||(u.currentConstruct=t);if(t.name&&u.parser.constructs.disable.null.includes(t.name))return y(n);return t.tokenize.call(e?Object.assign(Object.create(u),e):u,l,m,y)(n)}}function m(e){return c=!0,t(h,f),a}function y(t){return c=!0,f.restore(),++d<o.length?b(o[d]):r}}}function v(t,e){t.resolveAll&&!r.includes(t)&&r.push(t),t.resolve&&(0,Bn.d)(u.events,e,u.events.length-e,t.resolve(u.events.slice(e),u)),t.resolveTo&&(u.events=t.resolveTo(u.events,u))}function w(){i.line in a&&i.column<2&&(i.column=a[i.line],i.offset+=a[i.line]-1)}}const Jn={name:"thematicBreak",tokenize:function(t,e,n){let i,a=0;return function(e){return t.enter("thematicBreak"),function(t){return i=t,r(t)}(e)};function r(r){return r===i?(t.enter("thematicBreakSequence"),o(r)):a>=3&&(null===r||(0,ke.Ch)(r))?(t.exit("thematicBreak"),e(r)):n(r)}function o(e){return e===i?(t.consume(e),a++,o):(t.exit("thematicBreakSequence"),(0,ke.xz)(e)?(0,Fe.f)(t,r,"whitespace")(e):r(e))}}};const Qn={name:"list",tokenize:function(t,e,n){const i=this,a=i.events[i.events.length-1];let r=a&&"linePrefix"===a[1].type?a[2].sliceSerialize(a[1],!0).length:0,o=0;return function(e){const a=i.containerState.type||(42===e||43===e||45===e?"listUnordered":"listOrdered");if("listUnordered"===a?!i.containerState.marker||e===i.containerState.marker:(0,ke.pY)(e)){if(i.containerState.type||(i.containerState.type=a,t.enter(a,{_container:!0})),"listUnordered"===a)return t.enter("listItemPrefix"),42===e||45===e?t.check(Jn,n,c)(e):c(e);if(!i.interrupt||49===e)return t.enter("listItemPrefix"),t.enter("listItemValue"),s(e)}return n(e)};function s(e){return(0,ke.pY)(e)&&++o<10?(t.consume(e),s):(!i.interrupt||o<2)&&(i.containerState.marker?e===i.containerState.marker:41===e||46===e)?(t.exit("listItemValue"),c(e)):n(e)}function c(e){return t.enter("listItemMarker"),t.consume(e),t.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||e,t.check(Ke.w,i.interrupt?n:l,t.attempt(ti,d,u))}function l(t){return i.containerState.initialBlankLine=!0,r++,d(t)}function u(e){return(0,ke.xz)(e)?(t.enter("listItemPrefixWhitespace"),t.consume(e),t.exit("listItemPrefixWhitespace"),d):n(e)}function d(n){return i.containerState.size=r+i.sliceSerialize(t.exit("listItemPrefix"),!0).length,e(n)}},continuation:{tokenize:function(t,e,n){const i=this;return i.containerState._closeFlow=void 0,t.check(Ke.w,(function(n){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,(0,Fe.f)(t,e,"listItemIndent",i.containerState.size+1)(n)}),(function(n){if(i.containerState.furtherBlankLines||!(0,ke.xz)(n))return i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,a(n);return i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,t.attempt(ei,e,a)(n)}));function a(a){return i.containerState._closeFlow=!0,i.interrupt=void 0,(0,Fe.f)(t,t.attempt(Qn,e,n),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}},exit:function(t){t.exit(this.containerState.type)}},ti={tokenize:function(t,e,n){const i=this;return(0,Fe.f)(t,(function(t){const a=i.events[i.events.length-1];return!(0,ke.xz)(t)&&a&&"listItemPrefixWhitespace"===a[1].type?e(t):n(t)}),"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},ei={tokenize:function(t,e,n){const i=this;return(0,Fe.f)(t,(function(t){const a=i.events[i.events.length-1];return a&&"listItemIndent"===a[1].type&&a[2].sliceSerialize(a[1],!0).length===i.containerState.size?e(t):n(t)}),"listItemIndent",i.containerState.size+1)},partial:!0};const ni={name:"blockQuote",tokenize:function(t,e,n){const i=this;return function(e){if(62===e){const n=i.containerState;return n.open||(t.enter("blockQuote",{_container:!0}),n.open=!0),t.enter("blockQuotePrefix"),t.enter("blockQuoteMarker"),t.consume(e),t.exit("blockQuoteMarker"),a}return n(e)};function a(n){return(0,ke.xz)(n)?(t.enter("blockQuotePrefixWhitespace"),t.consume(n),t.exit("blockQuotePrefixWhitespace"),t.exit("blockQuotePrefix"),e):(t.exit("blockQuotePrefix"),e(n))}},continuation:{tokenize:function(t,e,n){const i=this;return function(e){if((0,ke.xz)(e))return(0,Fe.f)(t,a,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e);return a(e)};function a(i){return t.attempt(ni,e,n)(i)}}},exit:function(t){t.exit("blockQuote")}};function ii(t,e,n,i,a,r,o,s,c){const l=c||Number.POSITIVE_INFINITY;let u=0;return function(e){if(60===e)return t.enter(i),t.enter(a),t.enter(r),t.consume(e),t.exit(r),d;if(null===e||32===e||41===e||(0,ke.Av)(e))return n(e);return t.enter(i),t.enter(o),t.enter(s),t.enter("chunkString",{contentType:"string"}),g(e)};function d(n){return 62===n?(t.enter(r),t.consume(n),t.exit(r),t.exit(a),t.exit(i),e):(t.enter(s),t.enter("chunkString",{contentType:"string"}),h(n))}function h(e){return 62===e?(t.exit("chunkString"),t.exit(s),d(e)):null===e||60===e||(0,ke.Ch)(e)?n(e):(t.consume(e),92===e?f:h)}function f(e){return 60===e||62===e||92===e?(t.consume(e),h):h(e)}function g(a){return u||null!==a&&41!==a&&!(0,ke.z3)(a)?u<l&&40===a?(t.consume(a),u++,g):41===a?(t.consume(a),u--,g):null===a||32===a||40===a||(0,ke.Av)(a)?n(a):(t.consume(a),92===a?p:g):(t.exit("chunkString"),t.exit(s),t.exit(o),t.exit(i),e(a))}function p(e){return 40===e||41===e||92===e?(t.consume(e),g):g(e)}}function ai(t,e,n,i,a,r){const o=this;let s,c=0;return function(e){return t.enter(i),t.enter(a),t.consume(e),t.exit(a),t.enter(r),l};function l(d){return c>999||null===d||91===d||93===d&&!s||94===d&&!c&&"_hiddenFootnoteSupport"in o.parser.constructs?n(d):93===d?(t.exit(r),t.enter(a),t.consume(d),t.exit(a),t.exit(i),e):(0,ke.Ch)(d)?(t.enter("lineEnding"),t.consume(d),t.exit("lineEnding"),l):(t.enter("chunkString",{contentType:"string"}),u(d))}function u(e){return null===e||91===e||93===e||(0,ke.Ch)(e)||c++>999?(t.exit("chunkString"),l(e)):(t.consume(e),s||(s=!(0,ke.xz)(e)),92===e?d:u)}function d(e){return 91===e||92===e||93===e?(t.consume(e),c++,u):u(e)}}function ri(t,e,n,i,a,r){let o;return function(e){if(34===e||39===e||40===e)return t.enter(i),t.enter(a),t.consume(e),t.exit(a),o=40===e?41:e,s;return n(e)};function s(n){return n===o?(t.enter(a),t.consume(n),t.exit(a),t.exit(i),e):(t.enter(r),c(n))}function c(e){return e===o?(t.exit(r),s(o)):null===e?n(e):(0,ke.Ch)(e)?(t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),(0,Fe.f)(t,c,"linePrefix")):(t.enter("chunkString",{contentType:"string"}),l(e))}function l(e){return e===o||null===e||(0,ke.Ch)(e)?(t.exit("chunkString"),c(e)):(t.consume(e),92===e?u:l)}function u(e){return e===o||92===e?(t.consume(e),l):l(e)}}function oi(t,e){let n;return function i(a){if((0,ke.Ch)(a))return t.enter("lineEnding"),t.consume(a),t.exit("lineEnding"),n=!0,i;if((0,ke.xz)(a))return(0,Fe.f)(t,i,n?"linePrefix":"lineSuffix")(a);return e(a)}}var si=n(11098);const ci={name:"definition",tokenize:function(t,e,n){const i=this;let a;return function(e){return t.enter("definition"),function(e){return ai.call(i,t,r,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(e)}(e)};function r(e){return a=(0,si.d)(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),58===e?(t.enter("definitionMarker"),t.consume(e),t.exit("definitionMarker"),o):n(e)}function o(e){return(0,ke.z3)(e)?oi(t,s)(e):s(e)}function s(e){return ii(t,c,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(e)}function c(e){return t.attempt(li,l,l)(e)}function l(e){return(0,ke.xz)(e)?(0,Fe.f)(t,u,"whitespace")(e):u(e)}function u(r){return null===r||(0,ke.Ch)(r)?(t.exit("definition"),i.parser.defined.push(a),e(r)):n(r)}}},li={tokenize:function(t,e,n){return function(e){return(0,ke.z3)(e)?oi(t,i)(e):n(e)};function i(e){return ri(t,a,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(e)}function a(e){return(0,ke.xz)(e)?(0,Fe.f)(t,r,"whitespace")(e):r(e)}function r(t){return null===t||(0,ke.Ch)(t)?e(t):n(t)}},partial:!0};const ui={name:"codeIndented",tokenize:function(t,e,n){const i=this;return function(e){return t.enter("codeIndented"),(0,Fe.f)(t,a,"linePrefix",5)(e)};function a(t){const e=i.events[i.events.length-1];return e&&"linePrefix"===e[1].type&&e[2].sliceSerialize(e[1],!0).length>=4?r(t):n(t)}function r(e){return null===e?s(e):(0,ke.Ch)(e)?t.attempt(di,r,s)(e):(t.enter("codeFlowValue"),o(e))}function o(e){return null===e||(0,ke.Ch)(e)?(t.exit("codeFlowValue"),r(e)):(t.consume(e),o)}function s(n){return t.exit("codeIndented"),e(n)}}},di={tokenize:function(t,e,n){const i=this;return a;function a(e){return i.parser.lazy[i.now().line]?n(e):(0,ke.Ch)(e)?(t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),a):(0,Fe.f)(t,r,"linePrefix",5)(e)}function r(t){const r=i.events[i.events.length-1];return r&&"linePrefix"===r[1].type&&r[2].sliceSerialize(r[1],!0).length>=4?e(t):(0,ke.Ch)(t)?a(t):n(t)}},partial:!0};const hi={name:"headingAtx",tokenize:function(t,e,n){let i=0;return function(e){return t.enter("atxHeading"),function(e){return t.enter("atxHeadingSequence"),a(e)}(e)};function a(e){return 35===e&&i++<6?(t.consume(e),a):null===e||(0,ke.z3)(e)?(t.exit("atxHeadingSequence"),r(e)):n(e)}function r(n){return 35===n?(t.enter("atxHeadingSequence"),o(n)):null===n||(0,ke.Ch)(n)?(t.exit("atxHeading"),e(n)):(0,ke.xz)(n)?(0,Fe.f)(t,r,"whitespace")(n):(t.enter("atxHeadingText"),s(n))}function o(e){return 35===e?(t.consume(e),o):(t.exit("atxHeadingSequence"),r(e))}function s(e){return null===e||35===e||(0,ke.z3)(e)?(t.exit("atxHeadingText"),r(e)):(t.consume(e),s)}},resolve:function(t,e){let n,i,a=t.length-2,r=3;"whitespace"===t[r][1].type&&(r+=2);a-2>r&&"whitespace"===t[a][1].type&&(a-=2);"atxHeadingSequence"===t[a][1].type&&(r===a-1||a-4>r&&"whitespace"===t[a-2][1].type)&&(a-=r+1===a?2:4);a>r&&(n={type:"atxHeadingText",start:t[r][1].start,end:t[a][1].end},i={type:"chunkText",start:t[r][1].start,end:t[a][1].end,contentType:"text"},(0,Bn.d)(t,r,a-r+1,[["enter",n,e],["enter",i,e],["exit",i,e],["exit",n,e]]));return t}};const fi={name:"setextUnderline",tokenize:function(t,e,n){const i=this;let a;return function(e){let o,s=i.events.length;for(;s--;)if("lineEnding"!==i.events[s][1].type&&"linePrefix"!==i.events[s][1].type&&"content"!==i.events[s][1].type){o="paragraph"===i.events[s][1].type;break}if(!i.parser.lazy[i.now().line]&&(i.interrupt||o))return t.enter("setextHeadingLine"),a=e,function(e){return t.enter("setextHeadingLineSequence"),r(e)}(e);return n(e)};function r(e){return e===a?(t.consume(e),r):(t.exit("setextHeadingLineSequence"),(0,ke.xz)(e)?(0,Fe.f)(t,o,"lineSuffix")(e):o(e))}function o(i){return null===i||(0,ke.Ch)(i)?(t.exit("setextHeadingLine"),e(i)):n(i)}},resolveTo:function(t,e){let n,i,a,r=t.length;for(;r--;)if("enter"===t[r][0]){if("content"===t[r][1].type){n=r;break}"paragraph"===t[r][1].type&&(i=r)}else"content"===t[r][1].type&&t.splice(r,1),a||"definition"!==t[r][1].type||(a=r);const o={type:"setextHeading",start:Object.assign({},t[i][1].start),end:Object.assign({},t[t.length-1][1].end)};t[i][1].type="setextHeadingText",a?(t.splice(i,0,["enter",o,e]),t.splice(a+1,0,["exit",t[n][1],e]),t[n][1].end=Object.assign({},t[a][1].end)):t[n][1]=o;return t.push(["exit",o,e]),t}};const gi=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],pi=["pre","script","style","textarea"],bi={name:"htmlFlow",tokenize:function(t,e,n){const i=this;let a,r,o,s,c;return function(e){return function(e){return t.enter("htmlFlow"),t.enter("htmlFlowData"),t.consume(e),l}(e)};function l(s){return 33===s?(t.consume(s),u):47===s?(t.consume(s),r=!0,f):63===s?(t.consume(s),a=3,i.interrupt?e:M):(0,ke.jv)(s)?(t.consume(s),o=String.fromCharCode(s),g):n(s)}function u(r){return 45===r?(t.consume(r),a=2,d):91===r?(t.consume(r),a=5,s=0,h):(0,ke.jv)(r)?(t.consume(r),a=4,i.interrupt?e:M):n(r)}function d(a){return 45===a?(t.consume(a),i.interrupt?e:M):n(a)}function h(a){const r="CDATA[";return a===r.charCodeAt(s++)?(t.consume(a),s===r.length?i.interrupt?e:C:h):n(a)}function f(e){return(0,ke.jv)(e)?(t.consume(e),o=String.fromCharCode(e),g):n(e)}function g(s){if(null===s||47===s||62===s||(0,ke.z3)(s)){const c=47===s,l=o.toLowerCase();return c||r||!pi.includes(l)?gi.includes(o.toLowerCase())?(a=6,c?(t.consume(s),p):i.interrupt?e(s):C(s)):(a=7,i.interrupt&&!i.parser.lazy[i.now().line]?n(s):r?b(s):m(s)):(a=1,i.interrupt?e(s):C(s))}return 45===s||(0,ke.H$)(s)?(t.consume(s),o+=String.fromCharCode(s),g):n(s)}function p(a){return 62===a?(t.consume(a),i.interrupt?e:C):n(a)}function b(e){return(0,ke.xz)(e)?(t.consume(e),b):k(e)}function m(e){return 47===e?(t.consume(e),k):58===e||95===e||(0,ke.jv)(e)?(t.consume(e),y):(0,ke.xz)(e)?(t.consume(e),m):k(e)}function y(e){return 45===e||46===e||58===e||95===e||(0,ke.H$)(e)?(t.consume(e),y):v(e)}function v(e){return 61===e?(t.consume(e),w):(0,ke.xz)(e)?(t.consume(e),v):m(e)}function w(e){return null===e||60===e||61===e||62===e||96===e?n(e):34===e||39===e?(t.consume(e),c=e,x):(0,ke.xz)(e)?(t.consume(e),w):R(e)}function x(e){return e===c?(t.consume(e),c=null,_):null===e||(0,ke.Ch)(e)?n(e):(t.consume(e),x)}function R(e){return null===e||34===e||39===e||47===e||60===e||61===e||62===e||96===e||(0,ke.z3)(e)?v(e):(t.consume(e),R)}function _(t){return 47===t||62===t||(0,ke.xz)(t)?m(t):n(t)}function k(e){return 62===e?(t.consume(e),E):n(e)}function E(e){return null===e||(0,ke.Ch)(e)?C(e):(0,ke.xz)(e)?(t.consume(e),E):n(e)}function C(e){return 45===e&&2===a?(t.consume(e),D):60===e&&1===a?(t.consume(e),I):62===e&&4===a?(t.consume(e),N):63===e&&3===a?(t.consume(e),M):93===e&&5===a?(t.consume(e),O):!(0,ke.Ch)(e)||6!==a&&7!==a?null===e||(0,ke.Ch)(e)?(t.exit("htmlFlowData"),S(e)):(t.consume(e),C):(t.exit("htmlFlowData"),t.check(mi,B,S)(e))}function S(e){return t.check(yi,T,B)(e)}function T(e){return t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),A}function A(e){return null===e||(0,ke.Ch)(e)?S(e):(t.enter("htmlFlowData"),C(e))}function D(e){return 45===e?(t.consume(e),M):C(e)}function I(e){return 47===e?(t.consume(e),o="",L):C(e)}function L(e){if(62===e){const n=o.toLowerCase();return pi.includes(n)?(t.consume(e),N):C(e)}return(0,ke.jv)(e)&&o.length<8?(t.consume(e),o+=String.fromCharCode(e),L):C(e)}function O(e){return 93===e?(t.consume(e),M):C(e)}function M(e){return 62===e?(t.consume(e),N):45===e&&2===a?(t.consume(e),M):C(e)}function N(e){return null===e||(0,ke.Ch)(e)?(t.exit("htmlFlowData"),B(e)):(t.consume(e),N)}function B(n){return t.exit("htmlFlow"),e(n)}},resolveTo:function(t){let e=t.length;for(;e--&&("enter"!==t[e][0]||"htmlFlow"!==t[e][1].type););e>1&&"linePrefix"===t[e-2][1].type&&(t[e][1].start=t[e-2][1].start,t[e+1][1].start=t[e-2][1].start,t.splice(e-2,2));return t},concrete:!0},mi={tokenize:function(t,e,n){return function(i){return t.enter("lineEnding"),t.consume(i),t.exit("lineEnding"),t.attempt(Ke.w,e,n)}},partial:!0},yi={tokenize:function(t,e,n){const i=this;return function(e){if((0,ke.Ch)(e))return t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),a;return n(e)};function a(t){return i.parser.lazy[i.now().line]?n(t):e(t)}},partial:!0};const vi={tokenize:function(t,e,n){const i=this;return function(e){if(null===e)return n(e);return t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),a};function a(t){return i.parser.lazy[i.now().line]?n(t):e(t)}},partial:!0},wi={name:"codeFenced",tokenize:function(t,e,n){const i=this,a={tokenize:function(t,e,n){let a=0;return o;function o(e){return t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),c}function c(e){return t.enter("codeFencedFence"),(0,ke.xz)(e)?(0,Fe.f)(t,l,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e):l(e)}function l(e){return e===r?(t.enter("codeFencedFenceSequence"),u(e)):n(e)}function u(e){return e===r?(a++,t.consume(e),u):a>=s?(t.exit("codeFencedFenceSequence"),(0,ke.xz)(e)?(0,Fe.f)(t,d,"whitespace")(e):d(e)):n(e)}function d(i){return null===i||(0,ke.Ch)(i)?(t.exit("codeFencedFence"),e(i)):n(i)}},partial:!0};let r,o=0,s=0;return function(e){return function(e){const n=i.events[i.events.length-1];return o=n&&"linePrefix"===n[1].type?n[2].sliceSerialize(n[1],!0).length:0,r=e,t.enter("codeFenced"),t.enter("codeFencedFence"),t.enter("codeFencedFenceSequence"),c(e)}(e)};function c(e){return e===r?(s++,t.consume(e),c):s<3?n(e):(t.exit("codeFencedFenceSequence"),(0,ke.xz)(e)?(0,Fe.f)(t,l,"whitespace")(e):l(e))}function l(n){return null===n||(0,ke.Ch)(n)?(t.exit("codeFencedFence"),i.interrupt?e(n):t.check(vi,f,y)(n)):(t.enter("codeFencedFenceInfo"),t.enter("chunkString",{contentType:"string"}),u(n))}function u(e){return null===e||(0,ke.Ch)(e)?(t.exit("chunkString"),t.exit("codeFencedFenceInfo"),l(e)):(0,ke.xz)(e)?(t.exit("chunkString"),t.exit("codeFencedFenceInfo"),(0,Fe.f)(t,d,"whitespace")(e)):96===e&&e===r?n(e):(t.consume(e),u)}function d(e){return null===e||(0,ke.Ch)(e)?l(e):(t.enter("codeFencedFenceMeta"),t.enter("chunkString",{contentType:"string"}),h(e))}function h(e){return null===e||(0,ke.Ch)(e)?(t.exit("chunkString"),t.exit("codeFencedFenceMeta"),l(e)):96===e&&e===r?n(e):(t.consume(e),h)}function f(e){return t.attempt(a,y,g)(e)}function g(e){return t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),p}function p(e){return o>0&&(0,ke.xz)(e)?(0,Fe.f)(t,b,"linePrefix",o+1)(e):b(e)}function b(e){return null===e||(0,ke.Ch)(e)?t.check(vi,f,y)(e):(t.enter("codeFlowValue"),m(e))}function m(e){return null===e||(0,ke.Ch)(e)?(t.exit("codeFlowValue"),b(e)):(t.consume(e),m)}function y(n){return t.exit("codeFenced"),e(n)}},concrete:!0};const xi={name:"characterReference",tokenize:function(t,e,n){const i=this;let a,r,o=0;return function(e){return t.enter("characterReference"),t.enter("characterReferenceMarker"),t.consume(e),t.exit("characterReferenceMarker"),s};function s(e){return 35===e?(t.enter("characterReferenceMarkerNumeric"),t.consume(e),t.exit("characterReferenceMarkerNumeric"),c):(t.enter("characterReferenceValue"),a=31,r=ke.H$,l(e))}function c(e){return 88===e||120===e?(t.enter("characterReferenceMarkerHexadecimal"),t.consume(e),t.exit("characterReferenceMarkerHexadecimal"),t.enter("characterReferenceValue"),a=6,r=ke.AF,l):(t.enter("characterReferenceValue"),a=7,r=ke.pY,l(e))}function l(s){if(59===s&&o){const a=t.exit("characterReferenceValue");return r!==ke.H$||(0,fn.T)(i.sliceSerialize(a))?(t.enter("characterReferenceMarker"),t.consume(s),t.exit("characterReferenceMarker"),t.exit("characterReference"),e):n(s)}return r(s)&&o++<a?(t.consume(s),l):n(s)}}};const Ri={name:"characterEscape",tokenize:function(t,e,n){return function(e){return t.enter("characterEscape"),t.enter("escapeMarker"),t.consume(e),t.exit("escapeMarker"),i};function i(i){return(0,ke.sR)(i)?(t.enter("characterEscapeValue"),t.consume(i),t.exit("characterEscapeValue"),t.exit("characterEscape"),e):n(i)}}};const _i={name:"lineEnding",tokenize:function(t,e){return function(n){return t.enter("lineEnding"),t.consume(n),t.exit("lineEnding"),(0,Fe.f)(t,e,"linePrefix")}}};const ki={name:"labelEnd",tokenize:function(t,e,n){const i=this;let a,r,o=i.events.length;for(;o--;)if(("labelImage"===i.events[o][1].type||"labelLink"===i.events[o][1].type)&&!i.events[o][1]._balanced){a=i.events[o][1];break}return function(e){if(!a)return n(e);if(a._inactive)return u(e);return r=i.parser.defined.includes((0,si.d)(i.sliceSerialize({start:a.end,end:i.now()}))),t.enter("labelEnd"),t.enter("labelMarker"),t.consume(e),t.exit("labelMarker"),t.exit("labelEnd"),s};function s(e){return 40===e?t.attempt(Ei,l,r?l:u)(e):91===e?t.attempt(Ci,l,r?c:u)(e):r?l(e):u(e)}function c(e){return t.attempt(Si,l,u)(e)}function l(t){return e(t)}function u(t){return a._balanced=!0,n(t)}},resolveTo:function(t,e){let n,i,a,r,o=t.length,s=0;for(;o--;)if(n=t[o][1],i){if("link"===n.type||"labelLink"===n.type&&n._inactive)break;"enter"===t[o][0]&&"labelLink"===n.type&&(n._inactive=!0)}else if(a){if("enter"===t[o][0]&&("labelImage"===n.type||"labelLink"===n.type)&&!n._balanced&&(i=o,"labelLink"!==n.type)){s=2;break}}else"labelEnd"===n.type&&(a=o);const c={type:"labelLink"===t[i][1].type?"link":"image",start:Object.assign({},t[i][1].start),end:Object.assign({},t[t.length-1][1].end)},l={type:"label",start:Object.assign({},t[i][1].start),end:Object.assign({},t[a][1].end)},u={type:"labelText",start:Object.assign({},t[i+s+2][1].end),end:Object.assign({},t[a-2][1].start)};return r=[["enter",c,e],["enter",l,e]],r=(0,Bn.V)(r,t.slice(i+1,i+s+3)),r=(0,Bn.V)(r,[["enter",u,e]]),r=(0,Bn.V)(r,(0,Kn.C)(e.parser.constructs.insideSpan.null,t.slice(i+s+4,a-3),e)),r=(0,Bn.V)(r,[["exit",u,e],t[a-2],t[a-1],["exit",l,e]]),r=(0,Bn.V)(r,t.slice(a+1)),r=(0,Bn.V)(r,[["exit",c,e]]),(0,Bn.d)(t,i,t.length,r),t},resolveAll:function(t){let e=-1;for(;++e<t.length;){const n=t[e][1];"labelImage"!==n.type&&"labelLink"!==n.type&&"labelEnd"!==n.type||(t.splice(e+1,"labelImage"===n.type?4:2),n.type="data",e++)}return t}},Ei={tokenize:function(t,e,n){return function(e){return t.enter("resource"),t.enter("resourceMarker"),t.consume(e),t.exit("resourceMarker"),i};function i(e){return(0,ke.z3)(e)?oi(t,a)(e):a(e)}function a(e){return 41===e?l(e):ii(t,r,o,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(e)}function r(e){return(0,ke.z3)(e)?oi(t,s)(e):l(e)}function o(t){return n(t)}function s(e){return 34===e||39===e||40===e?ri(t,c,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(e):l(e)}function c(e){return(0,ke.z3)(e)?oi(t,l)(e):l(e)}function l(i){return 41===i?(t.enter("resourceMarker"),t.consume(i),t.exit("resourceMarker"),t.exit("resource"),e):n(i)}}},Ci={tokenize:function(t,e,n){const i=this;return function(e){return ai.call(i,t,a,r,"reference","referenceMarker","referenceString")(e)};function a(t){return i.parser.defined.includes((0,si.d)(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)))?e(t):n(t)}function r(t){return n(t)}}},Si={tokenize:function(t,e,n){return function(e){return t.enter("reference"),t.enter("referenceMarker"),t.consume(e),t.exit("referenceMarker"),i};function i(i){return 93===i?(t.enter("referenceMarker"),t.consume(i),t.exit("referenceMarker"),t.exit("reference"),e):n(i)}}};const Ti={name:"labelStartImage",tokenize:function(t,e,n){const i=this;return function(e){return t.enter("labelImage"),t.enter("labelImageMarker"),t.consume(e),t.exit("labelImageMarker"),a};function a(e){return 91===e?(t.enter("labelMarker"),t.consume(e),t.exit("labelMarker"),t.exit("labelImage"),r):n(e)}function r(t){return 94===t&&"_hiddenFootnoteSupport"in i.parser.constructs?n(t):e(t)}},resolveAll:ki.resolveAll};var Ai=n(62987);const Di={name:"attention",tokenize:function(t,e){const n=this.parser.constructs.attentionMarkers.null,i=this.previous,a=(0,Ai.r)(i);let r;return function(e){return r=e,t.enter("attentionSequence"),o(e)};function o(s){if(s===r)return t.consume(s),o;const c=t.exit("attentionSequence"),l=(0,Ai.r)(s),u=!l||2===l&&a||n.includes(s),d=!a||2===a&&l||n.includes(i);return c._open=Boolean(42===r?u:u&&(a||!d)),c._close=Boolean(42===r?d:d&&(l||!u)),e(s)}},resolveAll:function(t,e){let n,i,a,r,o,s,c,l,u=-1;for(;++u<t.length;)if("enter"===t[u][0]&&"attentionSequence"===t[u][1].type&&t[u][1]._close)for(n=u;n--;)if("exit"===t[n][0]&&"attentionSequence"===t[n][1].type&&t[n][1]._open&&e.sliceSerialize(t[n][1]).charCodeAt(0)===e.sliceSerialize(t[u][1]).charCodeAt(0)){if((t[n][1]._close||t[u][1]._open)&&(t[u][1].end.offset-t[u][1].start.offset)%3&&!((t[n][1].end.offset-t[n][1].start.offset+t[u][1].end.offset-t[u][1].start.offset)%3))continue;s=t[n][1].end.offset-t[n][1].start.offset>1&&t[u][1].end.offset-t[u][1].start.offset>1?2:1;const d=Object.assign({},t[n][1].end),h=Object.assign({},t[u][1].start);Ii(d,-s),Ii(h,s),r={type:s>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},t[n][1].end)},o={type:s>1?"strongSequence":"emphasisSequence",start:Object.assign({},t[u][1].start),end:h},a={type:s>1?"strongText":"emphasisText",start:Object.assign({},t[n][1].end),end:Object.assign({},t[u][1].start)},i={type:s>1?"strong":"emphasis",start:Object.assign({},r.start),end:Object.assign({},o.end)},t[n][1].end=Object.assign({},r.start),t[u][1].start=Object.assign({},o.end),c=[],t[n][1].end.offset-t[n][1].start.offset&&(c=(0,Bn.V)(c,[["enter",t[n][1],e],["exit",t[n][1],e]])),c=(0,Bn.V)(c,[["enter",i,e],["enter",r,e],["exit",r,e],["enter",a,e]]),c=(0,Bn.V)(c,(0,Kn.C)(e.parser.constructs.insideSpan.null,t.slice(n+1,u),e)),c=(0,Bn.V)(c,[["exit",a,e],["enter",o,e],["exit",o,e],["exit",i,e]]),t[u][1].end.offset-t[u][1].start.offset?(l=2,c=(0,Bn.V)(c,[["enter",t[u][1],e],["exit",t[u][1],e]])):l=0,(0,Bn.d)(t,n-1,u-n+3,c),u=n+c.length-l-2;break}u=-1;for(;++u<t.length;)"attentionSequence"===t[u][1].type&&(t[u][1].type="data");return t}};function Ii(t,e){t.column+=e,t.offset+=e,t._bufferIndex+=e}const Li={name:"autolink",tokenize:function(t,e,n){let i=0;return function(e){return t.enter("autolink"),t.enter("autolinkMarker"),t.consume(e),t.exit("autolinkMarker"),t.enter("autolinkProtocol"),a};function a(e){return(0,ke.jv)(e)?(t.consume(e),r):c(e)}function r(t){return 43===t||45===t||46===t||(0,ke.H$)(t)?(i=1,o(t)):c(t)}function o(e){return 58===e?(t.consume(e),i=0,s):(43===e||45===e||46===e||(0,ke.H$)(e))&&i++<32?(t.consume(e),o):(i=0,c(e))}function s(i){return 62===i?(t.exit("autolinkProtocol"),t.enter("autolinkMarker"),t.consume(i),t.exit("autolinkMarker"),t.exit("autolink"),e):null===i||32===i||60===i||(0,ke.Av)(i)?n(i):(t.consume(i),s)}function c(e){return 64===e?(t.consume(e),l):(0,ke.n9)(e)?(t.consume(e),c):n(e)}function l(t){return(0,ke.H$)(t)?u(t):n(t)}function u(n){return 46===n?(t.consume(n),i=0,l):62===n?(t.exit("autolinkProtocol").type="autolinkEmail",t.enter("autolinkMarker"),t.consume(n),t.exit("autolinkMarker"),t.exit("autolink"),e):d(n)}function d(e){if((45===e||(0,ke.H$)(e))&&i++<63){const n=45===e?d:u;return t.consume(e),n}return n(e)}}};const Oi={name:"htmlText",tokenize:function(t,e,n){const i=this;let a,r,o;return function(e){return t.enter("htmlText"),t.enter("htmlTextData"),t.consume(e),s};function s(e){return 33===e?(t.consume(e),c):47===e?(t.consume(e),w):63===e?(t.consume(e),y):(0,ke.jv)(e)?(t.consume(e),_):n(e)}function c(e){return 45===e?(t.consume(e),l):91===e?(t.consume(e),r=0,f):(0,ke.jv)(e)?(t.consume(e),m):n(e)}function l(e){return 45===e?(t.consume(e),h):n(e)}function u(e){return null===e?n(e):45===e?(t.consume(e),d):(0,ke.Ch)(e)?(o=u,L(e)):(t.consume(e),u)}function d(e){return 45===e?(t.consume(e),h):u(e)}function h(t){return 62===t?I(t):45===t?d(t):u(t)}function f(e){const i="CDATA[";return e===i.charCodeAt(r++)?(t.consume(e),r===i.length?g:f):n(e)}function g(e){return null===e?n(e):93===e?(t.consume(e),p):(0,ke.Ch)(e)?(o=g,L(e)):(t.consume(e),g)}function p(e){return 93===e?(t.consume(e),b):g(e)}function b(e){return 62===e?I(e):93===e?(t.consume(e),b):g(e)}function m(e){return null===e||62===e?I(e):(0,ke.Ch)(e)?(o=m,L(e)):(t.consume(e),m)}function y(e){return null===e?n(e):63===e?(t.consume(e),v):(0,ke.Ch)(e)?(o=y,L(e)):(t.consume(e),y)}function v(t){return 62===t?I(t):y(t)}function w(e){return(0,ke.jv)(e)?(t.consume(e),x):n(e)}function x(e){return 45===e||(0,ke.H$)(e)?(t.consume(e),x):R(e)}function R(e){return(0,ke.Ch)(e)?(o=R,L(e)):(0,ke.xz)(e)?(t.consume(e),R):I(e)}function _(e){return 45===e||(0,ke.H$)(e)?(t.consume(e),_):47===e||62===e||(0,ke.z3)(e)?k(e):n(e)}function k(e){return 47===e?(t.consume(e),I):58===e||95===e||(0,ke.jv)(e)?(t.consume(e),E):(0,ke.Ch)(e)?(o=k,L(e)):(0,ke.xz)(e)?(t.consume(e),k):I(e)}function E(e){return 45===e||46===e||58===e||95===e||(0,ke.H$)(e)?(t.consume(e),E):C(e)}function C(e){return 61===e?(t.consume(e),S):(0,ke.Ch)(e)?(o=C,L(e)):(0,ke.xz)(e)?(t.consume(e),C):k(e)}function S(e){return null===e||60===e||61===e||62===e||96===e?n(e):34===e||39===e?(t.consume(e),a=e,T):(0,ke.Ch)(e)?(o=S,L(e)):(0,ke.xz)(e)?(t.consume(e),S):(t.consume(e),A)}function T(e){return e===a?(t.consume(e),a=void 0,D):null===e?n(e):(0,ke.Ch)(e)?(o=T,L(e)):(t.consume(e),T)}function A(e){return null===e||34===e||39===e||60===e||61===e||96===e?n(e):47===e||62===e||(0,ke.z3)(e)?k(e):(t.consume(e),A)}function D(t){return 47===t||62===t||(0,ke.z3)(t)?k(t):n(t)}function I(i){return 62===i?(t.consume(i),t.exit("htmlTextData"),t.exit("htmlText"),e):n(i)}function L(e){return t.exit("htmlTextData"),t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),O}function O(e){return(0,ke.xz)(e)?(0,Fe.f)(t,M,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e):M(e)}function M(e){return t.enter("htmlTextData"),o(e)}}};const Mi={name:"labelStartLink",tokenize:function(t,e,n){const i=this;return function(e){return t.enter("labelLink"),t.enter("labelMarker"),t.consume(e),t.exit("labelMarker"),t.exit("labelLink"),a};function a(t){return 94===t&&"_hiddenFootnoteSupport"in i.parser.constructs?n(t):e(t)}},resolveAll:ki.resolveAll};const Ni={name:"hardBreakEscape",tokenize:function(t,e,n){return function(e){return t.enter("hardBreakEscape"),t.consume(e),i};function i(i){return(0,ke.Ch)(i)?(t.exit("hardBreakEscape"),e(i)):n(i)}}};const Bi={name:"codeText",tokenize:function(t,e,n){let i,a,r=0;return function(e){return t.enter("codeText"),t.enter("codeTextSequence"),o(e)};function o(e){return 96===e?(t.consume(e),r++,o):(t.exit("codeTextSequence"),s(e))}function s(e){return null===e?n(e):32===e?(t.enter("space"),t.consume(e),t.exit("space"),s):96===e?(a=t.enter("codeTextSequence"),i=0,l(e)):(0,ke.Ch)(e)?(t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),s):(t.enter("codeTextData"),c(e))}function c(e){return null===e||32===e||96===e||(0,ke.Ch)(e)?(t.exit("codeTextData"),s(e)):(t.consume(e),c)}function l(n){return 96===n?(t.consume(n),i++,l):i===r?(t.exit("codeTextSequence"),t.exit("codeText"),e(n)):(a.type="codeTextData",c(n))}},resolve:function(t){let e,n,i=t.length-4,a=3;if(!("lineEnding"!==t[a][1].type&&"space"!==t[a][1].type||"lineEnding"!==t[i][1].type&&"space"!==t[i][1].type))for(e=a;++e<i;)if("codeTextData"===t[e][1].type){t[a][1].type="codeTextPadding",t[i][1].type="codeTextPadding",a+=2,i-=2;break}e=a-1,i++;for(;++e<=i;)void 0===n?e!==i&&"lineEnding"!==t[e][1].type&&(n=e):e!==i&&"lineEnding"!==t[e][1].type||(t[n][1].type="codeTextData",e!==n+2&&(t[n][1].end=t[e-1][1].end,t.splice(n+2,e-n-2),i-=e-n-2,e=n+2),n=void 0);return t},previous:function(t){return 96!==t||"characterEscape"===this.events[this.events.length-1][1].type}};const Pi={42:Qn,43:Qn,45:Qn,48:Qn,49:Qn,50:Qn,51:Qn,52:Qn,53:Qn,54:Qn,55:Qn,56:Qn,57:Qn,62:ni},Fi={91:ci},ji={[-2]:ui,[-1]:ui,32:ui},$i={35:hi,42:Jn,45:[fi,Jn],60:bi,61:fi,95:Jn,96:wi,126:wi},zi={38:xi,92:Ri},Hi={[-5]:_i,[-4]:_i,[-3]:_i,33:Ti,38:xi,42:Di,60:[Li,Oi],91:Mi,92:[Ni,Ri],93:ki,95:Di,96:Bi},Ui={null:[Di,Vn]},Vi={null:[42,95]},qi={null:[]};const Wi=/[\0\t\n\r]/g;var Yi=n(80889),Gi=n(47881);const Zi={}.hasOwnProperty,Ki=function(t,e,n){return"string"!=typeof e&&(n=e,e=void 0),function(t){const e={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:s(it),autolinkProtocol:T,autolinkEmail:T,atxHeading:s(Q),blockQuote:s(G),characterEscape:T,characterReference:T,codeFenced:s(Z),codeFencedFenceInfo:c,codeFencedFenceMeta:c,codeIndented:s(Z,c),codeText:s(K,c),codeTextData:T,data:T,codeFlowValue:T,definition:s(X),definitionDestinationString:c,definitionLabelString:c,definitionTitleString:c,emphasis:s(J),hardBreakEscape:s(tt),hardBreakTrailing:s(tt),htmlFlow:s(et,c),htmlFlowData:T,htmlText:s(et,c),htmlTextData:T,image:s(nt),label:c,link:s(it),listItem:s(rt),listItemValue:p,listOrdered:s(at,g),listUnordered:s(at),paragraph:s(ot),reference:H,referenceString:c,resourceDestinationString:c,resourceTitleString:c,setextHeading:s(Q),strong:s(st),thematicBreak:s(lt)},exit:{atxHeading:d(),atxHeadingSequence:k,autolink:d(),autolinkEmail:Y,autolinkProtocol:W,blockQuote:d(),characterEscapeValue:A,characterReferenceMarkerHexadecimal:V,characterReferenceMarkerNumeric:V,characterReferenceValue:q,codeFenced:d(v),codeFencedFence:y,codeFencedFenceInfo:b,codeFencedFenceMeta:m,codeFlowValue:A,codeIndented:d(w),codeText:d(M),codeTextData:A,data:A,definition:d(),definitionDestinationString:_,definitionLabelString:x,definitionTitleString:R,emphasis:d(),hardBreakEscape:d(I),hardBreakTrailing:d(I),htmlFlow:d(L),htmlFlowData:A,htmlText:d(O),htmlTextData:A,image:d(B),label:F,labelText:P,lineEnding:D,link:d(N),listItem:d(),listOrdered:d(),listUnordered:d(),paragraph:d(),referenceString:U,resourceDestinationString:j,resourceTitleString:$,resource:z,setextHeading:d(S),setextHeadingLineSequence:C,setextHeadingText:E,strong:d(),thematicBreak:d()}};Ji(e,(t||{}).mdastExtensions||[]);const n={};return i;function i(t){let n={type:"root",children:[]};const i={stack:[n],tokenStack:[],config:e,enter:l,exit:h,buffer:c,resume:f,setData:r,getData:o},s=[];let u=-1;for(;++u<t.length;)if("listOrdered"===t[u][1].type||"listUnordered"===t[u][1].type)if("enter"===t[u][0])s.push(u);else{u=a(t,s.pop(),u)}for(u=-1;++u<t.length;){const n=e[t[u][0]];Zi.call(n,t[u][1].type)&&n[t[u][1].type].call(Object.assign({sliceSerialize:t[u][2].sliceSerialize},i),t[u][1])}if(i.tokenStack.length>0){const t=i.tokenStack[i.tokenStack.length-1];(t[1]||ta).call(i,void 0,t[0])}for(n.position={start:Xi(t.length>0?t[0][1].start:{line:1,column:1,offset:0}),end:Xi(t.length>0?t[t.length-2][1].end:{line:1,column:1,offset:0})},u=-1;++u<e.transforms.length;)n=e.transforms[u](n)||n;return n}function a(t,e,n){let i,a,r,o,s=e-1,c=-1,l=!1;for(;++s<=n;){const e=t[s];if("listUnordered"===e[1].type||"listOrdered"===e[1].type||"blockQuote"===e[1].type?("enter"===e[0]?c++:c--,o=void 0):"lineEndingBlank"===e[1].type?"enter"===e[0]&&(!i||o||c||r||(r=s),o=void 0):"linePrefix"===e[1].type||"listItemValue"===e[1].type||"listItemMarker"===e[1].type||"listItemPrefix"===e[1].type||"listItemPrefixWhitespace"===e[1].type||(o=void 0),!c&&"enter"===e[0]&&"listItemPrefix"===e[1].type||-1===c&&"exit"===e[0]&&("listUnordered"===e[1].type||"listOrdered"===e[1].type)){if(i){let o=s;for(a=void 0;o--;){const e=t[o];if("lineEnding"===e[1].type||"lineEndingBlank"===e[1].type){if("exit"===e[0])continue;a&&(t[a][1].type="lineEndingBlank",l=!0),e[1].type="lineEnding",a=o}else if("linePrefix"!==e[1].type&&"blockQuotePrefix"!==e[1].type&&"blockQuotePrefixWhitespace"!==e[1].type&&"blockQuoteMarker"!==e[1].type&&"listItemIndent"!==e[1].type)break}r&&(!a||r<a)&&(i._spread=!0),i.end=Object.assign({},a?t[a][1].start:e[1].end),t.splice(a||s,0,["exit",i,e[2]]),s++,n++}"listItemPrefix"===e[1].type&&(i={type:"listItem",_spread:!1,start:Object.assign({},e[1].start),end:void 0},t.splice(s,0,["enter",i,e[2]]),s++,n++,r=void 0,o=!0)}}return t[e][1]._spread=l,n}function r(t,e){n[t]=e}function o(t){return n[t]}function s(t,e){return n;function n(n){l.call(this,t(n),n),e&&e.call(this,n)}}function c(){this.stack.push({type:"fragment",children:[]})}function l(t,e,n){return this.stack[this.stack.length-1].children.push(t),this.stack.push(t),this.tokenStack.push([e,n]),t.position={start:Xi(e.start)},t}function d(t){return e;function e(e){t&&t.call(this,e),h.call(this,e)}}function h(t,e){const n=this.stack.pop(),i=this.tokenStack.pop();if(!i)throw new Error("Cannot close `"+t.type+"` ("+u({start:t.start,end:t.end})+"): it\u2019s not open");if(i[0].type!==t.type)if(e)e.call(this,t,i[0]);else{(i[1]||ta).call(this,t,i[0])}return n.position.end=Xi(t.end),n}function f(){return function(t,e){const n=e||Ln;return On(t,"boolean"!=typeof n.includeImageAlt||n.includeImageAlt,"boolean"!=typeof n.includeHtml||n.includeHtml)}(this.stack.pop())}function g(){r("expectingFirstListItemValue",!0)}function p(t){if(o("expectingFirstListItemValue")){this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(t),10),r("expectingFirstListItemValue")}}function b(){const t=this.resume();this.stack[this.stack.length-1].lang=t}function m(){const t=this.resume();this.stack[this.stack.length-1].meta=t}function y(){o("flowCodeInside")||(this.buffer(),r("flowCodeInside",!0))}function v(){const t=this.resume();this.stack[this.stack.length-1].value=t.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),r("flowCodeInside")}function w(){const t=this.resume();this.stack[this.stack.length-1].value=t.replace(/(\r?\n|\r)$/g,"")}function x(t){const e=this.resume(),n=this.stack[this.stack.length-1];n.label=e,n.identifier=(0,si.d)(this.sliceSerialize(t)).toLowerCase()}function R(){const t=this.resume();this.stack[this.stack.length-1].title=t}function _(){const t=this.resume();this.stack[this.stack.length-1].url=t}function k(t){const e=this.stack[this.stack.length-1];if(!e.depth){const n=this.sliceSerialize(t).length;e.depth=n}}function E(){r("setextHeadingSlurpLineEnding",!0)}function C(t){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(t).charCodeAt(0)?1:2}function S(){r("setextHeadingSlurpLineEnding")}function T(t){const e=this.stack[this.stack.length-1];let n=e.children[e.children.length-1];n&&"text"===n.type||(n=ct(),n.position={start:Xi(t.start)},e.children.push(n)),this.stack.push(n)}function A(t){const e=this.stack.pop();e.value+=this.sliceSerialize(t),e.position.end=Xi(t.end)}function D(t){const n=this.stack[this.stack.length-1];if(o("atHardBreak")){return n.children[n.children.length-1].position.end=Xi(t.end),void r("atHardBreak")}!o("setextHeadingSlurpLineEnding")&&e.canContainEols.includes(n.type)&&(T.call(this,t),A.call(this,t))}function I(){r("atHardBreak",!0)}function L(){const t=this.resume();this.stack[this.stack.length-1].value=t}function O(){const t=this.resume();this.stack[this.stack.length-1].value=t}function M(){const t=this.resume();this.stack[this.stack.length-1].value=t}function N(){const t=this.stack[this.stack.length-1];if(o("inReference")){const e=o("referenceType")||"shortcut";t.type+="Reference",t.referenceType=e,delete t.url,delete t.title}else delete t.identifier,delete t.label;r("referenceType")}function B(){const t=this.stack[this.stack.length-1];if(o("inReference")){const e=o("referenceType")||"shortcut";t.type+="Reference",t.referenceType=e,delete t.url,delete t.title}else delete t.identifier,delete t.label;r("referenceType")}function P(t){const e=this.sliceSerialize(t),n=this.stack[this.stack.length-2];n.label=(0,Gi.v)(e),n.identifier=(0,si.d)(e).toLowerCase()}function F(){const t=this.stack[this.stack.length-1],e=this.resume(),n=this.stack[this.stack.length-1];if(r("inReference",!0),"link"===n.type){const e=t.children;n.children=e}else n.alt=e}function j(){const t=this.resume();this.stack[this.stack.length-1].url=t}function $(){const t=this.resume();this.stack[this.stack.length-1].title=t}function z(){r("inReference")}function H(){r("referenceType","collapsed")}function U(t){const e=this.resume(),n=this.stack[this.stack.length-1];n.label=e,n.identifier=(0,si.d)(this.sliceSerialize(t)).toLowerCase(),r("referenceType","full")}function V(t){r("characterReferenceType",t.type)}function q(t){const e=this.sliceSerialize(t),n=o("characterReferenceType");let i;if(n)i=(0,Yi.o)(e,"characterReferenceMarkerNumeric"===n?10:16),r("characterReferenceType");else{i=(0,fn.T)(e)}const a=this.stack.pop();a.value+=i,a.position.end=Xi(t.end)}function W(t){A.call(this,t);this.stack[this.stack.length-1].url=this.sliceSerialize(t)}function Y(t){A.call(this,t);this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(t)}function G(){return{type:"blockquote",children:[]}}function Z(){return{type:"code",lang:null,meta:null,value:""}}function K(){return{type:"inlineCode",value:""}}function X(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function J(){return{type:"emphasis",children:[]}}function Q(){return{type:"heading",depth:void 0,children:[]}}function tt(){return{type:"break"}}function et(){return{type:"html",value:""}}function nt(){return{type:"image",title:null,url:"",alt:null}}function it(){return{type:"link",title:null,url:"",children:[]}}function at(t){return{type:"list",ordered:"listOrdered"===t.type,start:null,spread:t._spread,children:[]}}function rt(t){return{type:"listItem",spread:t._spread,checked:null,children:[]}}function ot(){return{type:"paragraph",children:[]}}function st(){return{type:"strong",children:[]}}function ct(){return{type:"text",value:""}}function lt(){return{type:"thematicBreak"}}}(n)(function(t){for(;!jn(t););return t}(function(t){const e=t||{},n={defined:[],lazy:{},constructs:(0,tn.W)([i,...e.extensions||[]]),content:a(Nn),document:a(Pn),flow:a(Un),string:a(qn),text:a(Wn)};return n;function a(t){return function(e){return Xn(n,t,e)}}}(n).document().write(function(){let t,e=1,n="",i=!0;return function(a,r,o){const s=[];let c,l,u,d,h;for(a=n+a.toString(r),u=0,n="",i&&(65279===a.charCodeAt(0)&&u++,i=void 0);u<a.length;){if(Wi.lastIndex=u,c=Wi.exec(a),d=c&&void 0!==c.index?c.index:a.length,h=a.charCodeAt(d),!c){n=a.slice(u);break}if(10===h&&u===d&&t)s.push(-3),t=void 0;else switch(t&&(s.push(-5),t=void 0),u<d&&(s.push(a.slice(u,d)),e+=d-u),h){case 0:s.push(65533),e++;break;case 9:for(l=4*Math.ceil(e/4),s.push(-2);e++<l;)s.push(-1);break;case 10:s.push(-4),e=1;break;default:t=!0,e=1}u=d+1}return o&&(t&&s.push(-5),n&&s.push(n),s.push(null)),s}}()(t,e,!0))))};function Xi(t){return{line:t.line,column:t.column,offset:t.offset}}function Ji(t,e){let n=-1;for(;++n<e.length;){const i=e[n];Array.isArray(i)?Ji(t,i):Qi(t,i)}}function Qi(t,e){let n;for(n in e)if(Zi.call(e,n))if("canContainEols"===n){const i=e[n];i&&t[n].push(...i)}else if("transforms"===n){const i=e[n];i&&t[n].push(...i)}else if("enter"===n||"exit"===n){const i=e[n];i&&Object.assign(t[n],i)}}function ta(t,e){throw t?new Error("Cannot close `"+t.type+"` ("+u({start:t.start,end:t.end})+"): a different token (`"+e.type+"`, "+u({start:e.start,end:e.end})+") is open"):new Error("Cannot close document, a token (`"+e.type+"`, "+u({start:e.start,end:e.end})+") is still open")}function ea(t){Object.assign(this,{Parser:e=>{const n=this.data("settings");return Ki(e,Object.assign({},n,t,{extensions:this.data("micromarkExtensions")||[],mdastExtensions:this.data("fromMarkdownExtensions")||[]}))}})}function na(t){const e=[];let n=-1,i=0,a=0;for(;++n<t.length;){const r=t.charCodeAt(n);let o="";if(37===r&&(0,ke.H$)(t.charCodeAt(n+1))&&(0,ke.H$)(t.charCodeAt(n+2)))a=2;else if(r<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(r))||(o=String.fromCharCode(r));else if(r>55295&&r<57344){const e=t.charCodeAt(n+1);r<56320&&e>56319&&e<57344?(o=String.fromCharCode(r,e),a=1):o="\ufffd"}else o=String.fromCharCode(r);o&&(e.push(t.slice(i,n),encodeURIComponent(o)),i=n+a+1,o=""),a&&(n+=a,a=0)}return e.join("")+t.slice(i)}var ia=n(20557);const aa=function(t,e,n,i){"function"==typeof e&&"function"!=typeof n&&(i=n,n=e,e=null),(0,ia.S4)(t,e,(function(t,e){const i=e[e.length-1];return n(t,i?i.children.indexOf(t):null,i)}),i)},ra=sa("start"),oa=sa("end");function sa(t){return function(e){const n=e&&e.position&&e.position[t]||{};return{line:n.line||null,column:n.column||null,offset:n.offset>-1?n.offset:null}}}const ca={}.hasOwnProperty;function la(t){return String(t||"").toUpperCase()}function ua(t,e){const n=String(e.identifier).toUpperCase(),i=na(n.toLowerCase()),a=t.footnoteOrder.indexOf(n);let r;-1===a?(t.footnoteOrder.push(n),t.footnoteCounts[n]=1,r=t.footnoteOrder.length):(t.footnoteCounts[n]++,r=a+1);const o=t.footnoteCounts[n],s={type:"element",tagName:"a",properties:{href:"#"+t.clobberPrefix+"fn-"+i,id:t.clobberPrefix+"fnref-"+i+(o>1?"-"+o:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(r)}]};t.patch(e,s);const c={type:"element",tagName:"sup",properties:{},children:[s]};return t.patch(e,c),t.applyData(e,c)}function da(t,e){const n=e.referenceType;let i="]";if("collapsed"===n?i+="[]":"full"===n&&(i+="["+(e.label||e.identifier)+"]"),"imageReference"===e.type)return{type:"text",value:"!["+e.alt+i};const a=t.all(e),r=a[0];r&&"text"===r.type?r.value="["+r.value:a.unshift({type:"text",value:"["});const o=a[a.length-1];return o&&"text"===o.type?o.value+=i:a.push({type:"text",value:i}),a}function ha(t){const e=t.spread;return null==e?t.children.length>1:e}function fa(t){const e=String(t),n=/\r?\n|\r/g;let i=n.exec(e),a=0;const r=[];for(;i;)r.push(ga(e.slice(a,i.index),a>0,!0),i[0]),a=i.index+i[0].length,i=n.exec(e);return r.push(ga(e.slice(a),a>0,!1)),r.join("")}function ga(t,e,n){let i=0,a=t.length;if(e){let e=t.codePointAt(i);for(;9===e||32===e;)i++,e=t.codePointAt(i)}if(n){let e=t.codePointAt(a-1);for(;9===e||32===e;)a--,e=t.codePointAt(a-1)}return a>i?t.slice(i,a):""}const pa={blockquote:function(t,e){const n={type:"element",tagName:"blockquote",properties:{},children:t.wrap(t.all(e),!0)};return t.patch(e,n),t.applyData(e,n)},break:function(t,e){const n={type:"element",tagName:"br",properties:{},children:[]};return t.patch(e,n),[t.applyData(e,n),{type:"text",value:"\n"}]},code:function(t,e){const n=e.value?e.value+"\n":"",i=e.lang?e.lang.match(/^[^ \t]+(?=[ \t]|$)/):null,a={};i&&(a.className=["language-"+i]);let r={type:"element",tagName:"code",properties:a,children:[{type:"text",value:n}]};return e.meta&&(r.data={meta:e.meta}),t.patch(e,r),r=t.applyData(e,r),r={type:"element",tagName:"pre",properties:{},children:[r]},t.patch(e,r),r},delete:function(t,e){const n={type:"element",tagName:"del",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},emphasis:function(t,e){const n={type:"element",tagName:"em",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},footnoteReference:ua,footnote:function(t,e){const n=t.footnoteById;let i=1;for(;i in n;)i++;const a=String(i);return n[a]={type:"footnoteDefinition",identifier:a,children:[{type:"paragraph",children:e.children}],position:e.position},ua(t,{type:"footnoteReference",identifier:a,position:e.position})},heading:function(t,e){const n={type:"element",tagName:"h"+e.depth,properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},html:function(t,e){if(t.dangerous){const n={type:"raw",value:e.value};return t.patch(e,n),t.applyData(e,n)}return null},imageReference:function(t,e){const n=t.definition(e.identifier);if(!n)return da(t,e);const i={src:na(n.url||""),alt:e.alt};null!==n.title&&void 0!==n.title&&(i.title=n.title);const a={type:"element",tagName:"img",properties:i,children:[]};return t.patch(e,a),t.applyData(e,a)},image:function(t,e){const n={src:na(e.url)};null!==e.alt&&void 0!==e.alt&&(n.alt=e.alt),null!==e.title&&void 0!==e.title&&(n.title=e.title);const i={type:"element",tagName:"img",properties:n,children:[]};return t.patch(e,i),t.applyData(e,i)},inlineCode:function(t,e){const n={type:"text",value:e.value.replace(/\r?\n|\r/g," ")};t.patch(e,n);const i={type:"element",tagName:"code",properties:{},children:[n]};return t.patch(e,i),t.applyData(e,i)},linkReference:function(t,e){const n=t.definition(e.identifier);if(!n)return da(t,e);const i={href:na(n.url||"")};null!==n.title&&void 0!==n.title&&(i.title=n.title);const a={type:"element",tagName:"a",properties:i,children:t.all(e)};return t.patch(e,a),t.applyData(e,a)},link:function(t,e){const n={href:na(e.url)};null!==e.title&&void 0!==e.title&&(n.title=e.title);const i={type:"element",tagName:"a",properties:n,children:t.all(e)};return t.patch(e,i),t.applyData(e,i)},listItem:function(t,e,n){const i=t.all(e),a=n?function(t){let e=!1;if("list"===t.type){e=t.spread||!1;const n=t.children;let i=-1;for(;!e&&++i<n.length;)e=ha(n[i])}return e}(n):ha(e),r={},o=[];if("boolean"==typeof e.checked){const t=i[0];let n;t&&"element"===t.type&&"p"===t.tagName?n=t:(n={type:"element",tagName:"p",properties:{},children:[]},i.unshift(n)),n.children.length>0&&n.children.unshift({type:"text",value:" "}),n.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:e.checked,disabled:!0},children:[]}),r.className=["task-list-item"]}let s=-1;for(;++s<i.length;){const t=i[s];(a||0!==s||"element"!==t.type||"p"!==t.tagName)&&o.push({type:"text",value:"\n"}),"element"!==t.type||"p"!==t.tagName||a?o.push(t):o.push(...t.children)}const c=i[i.length-1];c&&(a||"element"!==c.type||"p"!==c.tagName)&&o.push({type:"text",value:"\n"});const l={type:"element",tagName:"li",properties:r,children:o};return t.patch(e,l),t.applyData(e,l)},list:function(t,e){const n={},i=t.all(e);let a=-1;for("number"==typeof e.start&&1!==e.start&&(n.start=e.start);++a<i.length;){const t=i[a];if("element"===t.type&&"li"===t.tagName&&t.properties&&Array.isArray(t.properties.className)&&t.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}const r={type:"element",tagName:e.ordered?"ol":"ul",properties:n,children:t.wrap(i,!0)};return t.patch(e,r),t.applyData(e,r)},paragraph:function(t,e){const n={type:"element",tagName:"p",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},root:function(t,e){const n={type:"root",children:t.wrap(t.all(e))};return t.patch(e,n),t.applyData(e,n)},strong:function(t,e){const n={type:"element",tagName:"strong",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},table:function(t,e){const n=t.all(e),i=n.shift(),a=[];if(i){const n={type:"element",tagName:"thead",properties:{},children:t.wrap([i],!0)};t.patch(e.children[0],n),a.push(n)}if(n.length>0){const i={type:"element",tagName:"tbody",properties:{},children:t.wrap(n,!0)},r=ra(e.children[1]),o=oa(e.children[e.children.length-1]);r.line&&o.line&&(i.position={start:r,end:o}),a.push(i)}const r={type:"element",tagName:"table",properties:{},children:t.wrap(a,!0)};return t.patch(e,r),t.applyData(e,r)},tableCell:function(t,e){const n={type:"element",tagName:"td",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)},tableRow:function(t,e,n){const i=n?n.children:void 0,a=0===(i?i.indexOf(e):1)?"th":"td",r=n&&"table"===n.type?n.align:void 0,o=r?r.length:e.children.length;let s=-1;const c=[];for(;++s<o;){const n=e.children[s],i={},o=r?r[s]:void 0;o&&(i.align=o);let l={type:"element",tagName:a,properties:i,children:[]};n&&(l.children=t.all(n),t.patch(n,l),l=t.applyData(e,l)),c.push(l)}const l={type:"element",tagName:"tr",properties:{},children:t.wrap(c,!0)};return t.patch(e,l),t.applyData(e,l)},text:function(t,e){const n={type:"text",value:fa(String(e.value))};return t.patch(e,n),t.applyData(e,n)},thematicBreak:function(t,e){const n={type:"element",tagName:"hr",properties:{},children:[]};return t.patch(e,n),t.applyData(e,n)},toml:ba,yaml:ba,definition:ba,footnoteDefinition:ba};function ba(){return null}const ma={}.hasOwnProperty;function ya(t,e){const n=e||{},i=n.allowDangerousHtml||!1,a={};return o.dangerous=i,o.clobberPrefix=void 0===n.clobberPrefix||null===n.clobberPrefix?"user-content-":n.clobberPrefix,o.footnoteLabel=n.footnoteLabel||"Footnotes",o.footnoteLabelTagName=n.footnoteLabelTagName||"h2",o.footnoteLabelProperties=n.footnoteLabelProperties||{className:["sr-only"]},o.footnoteBackLabel=n.footnoteBackLabel||"Back to content",o.unknownHandler=n.unknownHandler,o.passThrough=n.passThrough,o.handlers={...pa,...n.handlers},o.definition=function(t){const e=Object.create(null);if(!t||!t.type)throw new Error("mdast-util-definitions expected node");return aa(t,"definition",(t=>{const n=la(t.identifier);n&&!ca.call(e,n)&&(e[n]=t)})),function(t){const n=la(t);return n&&ca.call(e,n)?e[n]:null}}(t),o.footnoteById=a,o.footnoteOrder=[],o.footnoteCounts={},o.patch=va,o.applyData=wa,o.one=function(t,e){return xa(o,t,e)},o.all=function(t){return Ra(o,t)},o.wrap=_a,o.augment=r,aa(t,"footnoteDefinition",(t=>{const e=String(t.identifier).toUpperCase();ma.call(a,e)||(a[e]=t)})),o;function r(t,e){if(t&&"data"in t&&t.data){const n=t.data;n.hName&&("element"!==e.type&&(e={type:"element",tagName:"",properties:{},children:[]}),e.tagName=n.hName),"element"===e.type&&n.hProperties&&(e.properties={...e.properties,...n.hProperties}),"children"in e&&e.children&&n.hChildren&&(e.children=n.hChildren)}if(t){const n="type"in t?t:{position:t};(function(t){return!(t&&t.position&&t.position.start&&t.position.start.line&&t.position.start.column&&t.position.end&&t.position.end.line&&t.position.end.column)})(n)||(e.position={start:ra(n),end:oa(n)})}return e}function o(t,e,n,i){return Array.isArray(n)&&(i=n,n={}),r(t,{type:"element",tagName:e,properties:n||{},children:i||[]})}}function va(t,e){t.position&&(e.position=function(t){return{start:ra(t),end:oa(t)}}(t))}function wa(t,e){let n=e;if(t&&t.data){const e=t.data.hName,i=t.data.hChildren,a=t.data.hProperties;"string"==typeof e&&("element"===n.type?n.tagName=e:n={type:"element",tagName:e,properties:{},children:[]}),"element"===n.type&&a&&(n.properties={...n.properties,...a}),"children"in n&&n.children&&null!=i&&(n.children=i)}return n}function xa(t,e,n){const i=e&&e.type;if(!i)throw new Error("Expected node, got `"+e+"`");return ma.call(t.handlers,i)?t.handlers[i](t,e,n):t.passThrough&&t.passThrough.includes(i)?"children"in e?{...e,children:Ra(t,e)}:e:t.unknownHandler?t.unknownHandler(t,e,n):function(t,e){const n=e.data||{},i=!("value"in e)||ma.call(n,"hProperties")||ma.call(n,"hChildren")?{type:"element",tagName:"div",properties:{},children:Ra(t,e)}:{type:"text",value:e.value};return t.patch(e,i),t.applyData(e,i)}(t,e)}function Ra(t,e){const n=[];if("children"in e){const i=e.children;let a=-1;for(;++a<i.length;){const r=xa(t,i[a],e);if(r){if(a&&"break"===i[a-1].type&&(Array.isArray(r)||"text"!==r.type||(r.value=r.value.replace(/^\s+/,"")),!Array.isArray(r)&&"element"===r.type)){const t=r.children[0];t&&"text"===t.type&&(t.value=t.value.replace(/^\s+/,""))}Array.isArray(r)?n.push(...r):n.push(r)}}}return n}function _a(t,e){const n=[];let i=-1;for(e&&n.push({type:"text",value:"\n"});++i<t.length;)i&&n.push({type:"text",value:"\n"}),n.push(t[i]);return e&&t.length>0&&n.push({type:"text",value:"\n"}),n}function ka(t,e){const n=ya(t,e),i=n.one(t,null),a=function(t){const e=[];let n=-1;for(;++n<t.footnoteOrder.length;){const i=t.footnoteById[t.footnoteOrder[n]];if(!i)continue;const a=t.all(i),r=String(i.identifier).toUpperCase(),o=na(r.toLowerCase());let s=0;const c=[];for(;++s<=t.footnoteCounts[r];){const e={type:"element",tagName:"a",properties:{href:"#"+t.clobberPrefix+"fnref-"+o+(s>1?"-"+s:""),dataFootnoteBackref:!0,className:["data-footnote-backref"],ariaLabel:t.footnoteBackLabel},children:[{type:"text",value:"\u21a9"}]};s>1&&e.children.push({type:"element",tagName:"sup",children:[{type:"text",value:String(s)}]}),c.length>0&&c.push({type:"text",value:" "}),c.push(e)}const l=a[a.length-1];if(l&&"element"===l.type&&"p"===l.tagName){const t=l.children[l.children.length-1];t&&"text"===t.type?t.value+=" ":l.children.push({type:"text",value:" "}),l.children.push(...c)}else a.push(...c);const u={type:"element",tagName:"li",properties:{id:t.clobberPrefix+"fn-"+o},children:t.wrap(a,!0)};t.patch(i,u),e.push(u)}if(0!==e.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:t.footnoteLabelTagName,properties:{...JSON.parse(JSON.stringify(t.footnoteLabelProperties)),id:"footnote-label"},children:[{type:"text",value:t.footnoteLabel}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:t.wrap(e,!0)},{type:"text",value:"\n"}]}}(n);return a&&i.children.push({type:"text",value:"\n"},a),Array.isArray(i)?{type:"root",children:i}:i}const Ea=function(t,e){return t&&"run"in t?function(t,e){return(n,i,a)=>{t.run(ka(n,e),i,(t=>{a(t)}))}}(t,e):function(t){return e=>ka(e,t)}(t||e)};class Ca extends class{constructor(){this.should_skip=!1,this.should_remove=!1,this.replacement=null,this.context={skip:()=>this.should_skip=!0,remove:()=>this.should_remove=!0,replace:t=>this.replacement=t}}replace(t,e,n,i){t&&e&&(null!=n?t[e][n]=i:t[e]=i)}remove(t,e,n){t&&e&&(null!=n?t[e].splice(n,1):delete t[e])}}{constructor(t,e){super(),this.should_skip=!1,this.should_remove=!1,this.replacement=null,this.context={skip:()=>this.should_skip=!0,remove:()=>this.should_remove=!0,replace:t=>this.replacement=t},this.enter=t,this.leave=e}visit(t,e,n,i){if(t){if(this.enter){const a=this.should_skip,r=this.should_remove,o=this.replacement;this.should_skip=!1,this.should_remove=!1,this.replacement=null,this.enter.call(this.context,t,e,n,i),this.replacement&&(t=this.replacement,this.replace(e,n,i,t)),this.should_remove&&this.remove(e,n,i);const s=this.should_skip,c=this.should_remove;if(this.should_skip=a,this.should_remove=r,this.replacement=o,s)return t;if(c)return null}let a;for(a in t){const e=t[a];if(e&&"object"==typeof e)if(Array.isArray(e)){const n=e;for(let e=0;e<n.length;e+=1){const i=n[e];Sa(i)&&(this.visit(i,t,a,e)||e--)}}else Sa(e)&&this.visit(e,t,a,null)}if(this.leave){const a=this.replacement,r=this.should_remove;this.replacement=null,this.should_remove=!1,this.leave.call(this.context,t,e,n,i),this.replacement&&(t=this.replacement,this.replace(e,n,i,t)),this.should_remove&&this.remove(e,n,i);const o=this.should_remove;if(this.replacement=a,this.should_remove=r,o)return null}}return t}}function Sa(t){return null!==t&&"object"==typeof t&&"type"in t&&"string"==typeof t.type}function Ta(t,{enter:e,leave:n}){return new Ca(e,n).visit(t,null)}const Aa=/@(jsx|jsxFrag|jsxImportSource|jsxRuntime)\s+(\S+)/g;function Da(t){let e;return t.value?"JSXExpressionContainer"===t.value.type?e=t.value.expression:(e=t.value,delete e.raw):e={type:"Literal",value:!0},Oa(t,{type:"Property",key:Ia(t.name),value:e,kind:"init",method:!1,shorthand:!1,computed:!1})}function Ia(t){let e;if("JSXMemberExpression"===t.type){const n=Ia(t.property);e={type:"MemberExpression",object:Ia(t.object),property:n,computed:"Literal"===n.type,optional:!1}}else e="JSXNamespacedName"===t.type?{type:"Literal",value:t.namespace.name+":"+t.name.name}:Ve(t.name)?{type:"Identifier",name:t.name}:{type:"Literal",value:t.name};return Oa(t,e)}function La(t){const e=t.split(".");let n,i=-1;for(;++i<e.length;){const t=Ve(e[i])?{type:"Identifier",name:e[i]}:{type:"Literal",value:e[i]};n=n?{type:"MemberExpression",object:n,property:t,computed:Boolean(i&&"Literal"===t.type),optional:!1}:t}return n}function Oa(t,e){const n=["start","end","loc","range","comments"];let i=-1;for(;++i<n.length;){const a=n[i];a in t&&(e[a]=t[a])}return e}function Ma(t,e){const n=["start","end","loc","range","comments"];let i=-1;for(;++i<n.length;){const a=n[i];a in t&&(e[a]=t[a])}}function Na(t,e){let n=-1;const i=[],a=[];let r;for(;++n<t.length;){const e=t[n];"ImportNamespaceSpecifier"===e.type?r=e:a.push(e)}if(r){const t={type:"VariableDeclarator",id:r.local,init:e};Ma(r,t),i.push(t)}return i.push({type:"VariableDeclarator",id:{type:"ObjectPattern",properties:a.map((t=>{let e="ImportSpecifier"===t.type?t.imported:"ExportSpecifier"===t.type?t.exported:{type:"Identifier",name:"default"},n=t.local;"ExportSpecifier"===t.type&&(n=e,e=t.local);const i={type:"Property",kind:"init",shorthand:e.name===n.name,method:!1,computed:!1,key:e,value:n};return Ma(t,i),i}))},init:r?{type:"Identifier",name:r.local.name}:e}),i}const Ba=Fa("Identifier","MemberExpression",Ve),Pa=Fa("JSXIdentifier","JSXMemberExpression",(function(t){let e=-1;for(;++e<t.length;)if(!(e?ja:He)(t.charCodeAt(e)))return!1;return e>0}));function Fa(t,e,n){return function(i){let a,r=-1;for(;++r<i.length;){const o=i[r],s="string"==typeof o&&n(o);if("JSXIdentifier"===t&&!s)throw new Error("Cannot turn `"+o+"` into a JSX identifier");const c=s?{type:t,name:o}:{type:"Literal",value:o};a=a?{type:e,object:a,property:c,computed:"Literal"===c.type,optional:!1}:c}if(!a)throw new Error("Expected non-empty `ids` to be passed");if("Literal"===a.type)throw new Error("Expected identifier as left-most value");return a}}function ja(t){return 45===t||Ue(t)}function $a(t){const{development:e,outputFormat:n}=t||{};return(t,i)=>{!function(t,e){const n=e||{};let i="automatic"===n.runtime;const a={},r={};Ta(t,{enter(t){if("Program"===t.type){const e=t.comments||[];let n=-1;for(;++n<e.length;){Aa.lastIndex=0;let t=Aa.exec(e[n].value);for(;t;)a[t[1]]=t[2],t=Aa.exec(e[n].value)}if(a.jsxRuntime)if("automatic"===a.jsxRuntime){if(i=!0,a.jsx)throw new Error("Unexpected `@jsx` pragma w/ automatic runtime");if(a.jsxFrag)throw new Error("Unexpected `@jsxFrag` pragma w/ automatic runtime")}else{if("classic"!==a.jsxRuntime)throw new Error("Unexpected `jsxRuntime` `"+a.jsxRuntime+"`, expected `automatic` or `classic`");if(i=!1,a.jsxImportSource)throw new Error("Unexpected `@jsxImportSource` w/ classic runtime")}}},leave(t){if("Program"===t.type){const e=[];r.fragment&&e.push({type:"ImportSpecifier",imported:{type:"Identifier",name:"Fragment"},local:{type:"Identifier",name:"_Fragment"}}),r.jsx&&e.push({type:"ImportSpecifier",imported:{type:"Identifier",name:"jsx"},local:{type:"Identifier",name:"_jsx"}}),r.jsxs&&e.push({type:"ImportSpecifier",imported:{type:"Identifier",name:"jsxs"},local:{type:"Identifier",name:"_jsxs"}}),r.jsxDEV&&e.push({type:"ImportSpecifier",imported:{type:"Identifier",name:"jsxDEV"},local:{type:"Identifier",name:"_jsxDEV"}}),e.length>0&&t.body.unshift({type:"ImportDeclaration",specifiers:e,source:{type:"Literal",value:(a.jsxImportSource||n.importSource||"react")+(n.development?"/jsx-dev-runtime":"/jsx-runtime")}})}if("JSXElement"!==t.type&&"JSXFragment"!==t.type)return;const e=[];let o,s=-1;for(;++s<t.children.length;){const n=t.children[s];if("JSXExpressionContainer"===n.type)"JSXEmptyExpression"!==n.expression.type&&e.push(n.expression);else if("JSXText"===n.type){const t=n.value.replace(/\t/g," ").replace(/ *(\r?\n|\r) */g,"\n").replace(/\n+/g,"\n").replace(/\n+$/,"").replace(/^\n+/,"").replace(/\n/g," ");t&&e.push(Oa(n,{type:"Literal",value:t}))}else e.push(n)}let c=[];const l=[];let u,d,h,f=[];if("JSXElement"===t.type){let e;o=Ia(t.openingElement.name),"Identifier"===o.type&&/^[a-z]/.test(o.name)&&(o=Oa(o,{type:"Literal",value:o.name}));const n=t.openingElement.attributes;let a=-1;for(;++a<n.length;){const t=n[a];if("JSXSpreadAttribute"===t.type)c.length>0&&(l.push({type:"ObjectExpression",properties:c}),c=[]),l.push(t.argument),e=!0;else{const n=Da(t);if(i&&"Identifier"===n.key.type&&"key"===n.key.name){if(e)throw new Error("Expected `key` to come before any spread expressions");u=n.value}else c.push(n)}}}else i?(r.fragment=!0,o={type:"Identifier",name:"_Fragment"}):o=La(a.jsxFrag||n.pragmaFrag||"React.Fragment");if(i?e.length>0&&c.push({type:"Property",key:{type:"Identifier",name:"children"},value:e.length>1?{type:"ArrayExpression",elements:e}:e[0],kind:"init",method:!1,shorthand:!1,computed:!1}):f=e,c.length>0&&l.push({type:"ObjectExpression",properties:c}),l.length>1?("ObjectExpression"!==l[0].type&&l.unshift({type:"ObjectExpression",properties:[]}),d={type:"CallExpression",callee:La("Object.assign"),arguments:l,optional:!1}):l.length>0&&(d=l[0]),i){f.push(d||{type:"ObjectExpression",properties:[]}),u?f.push(u):n.development&&f.push({type:"Identifier",name:"undefined"});const i=e.length>1;if(n.development){r.jsxDEV=!0,h={type:"Identifier",name:"_jsxDEV"},f.push({type:"Literal",value:i});const e={type:"ObjectExpression",properties:[{type:"Property",method:!1,shorthand:!1,computed:!1,kind:"init",key:{type:"Identifier",name:"fileName"},value:{type:"Literal",value:n.filePath||"<source.js>"}}]};t.loc&&e.properties.push({type:"Property",method:!1,shorthand:!1,computed:!1,kind:"init",key:{type:"Identifier",name:"lineNumber"},value:{type:"Literal",value:t.loc.start.line}},{type:"Property",method:!1,shorthand:!1,computed:!1,kind:"init",key:{type:"Identifier",name:"columnNumber"},value:{type:"Literal",value:t.loc.start.column+1}}),f.push(e,{type:"ThisExpression"})}else i?(r.jsxs=!0,h={type:"Identifier",name:"_jsxs"}):(r.jsx=!0,h={type:"Identifier",name:"_jsx"})}else(d||f.length>0)&&f.unshift(d||{type:"Literal",value:null}),h=La(a.jsx||n.pragma||"React.createElement");f.unshift(o),this.replace(Oa(t,{type:"CallExpression",callee:h,arguments:f,optional:!1}))}})}(t,{development:e,filePath:i.history[0]}),"function-body"===n&&t.body[0]&&"ImportDeclaration"===t.body[0].type&&"string"==typeof t.body[0].source.value&&/\/jsx-(dev-)?runtime$/.test(t.body[0].source.value)&&(t.body[0]={type:"VariableDeclaration",kind:"const",declarations:Na(t.body[0].specifiers,Ba(["arguments",0]))})}}function za(t,e){if("MemberExpression"===t.type)return!t.computed&&za(t.object,t);if("Identifier"===t.type){if(!e)return!0;switch(e.type){case"MemberExpression":return e.computed||t===e.object;case"MethodDefinition":return e.computed;case"PropertyDefinition":case"Property":return e.computed||t===e.value;case"ExportSpecifier":case"ImportSpecifier":return t===e.local;case"LabeledStatement":case"BreakStatement":case"ContinueStatement":return!1;default:return!0}}return!1}function Ha(t){const e=new WeakMap,n=new Map,i=new Va(null,!1),a=[];let r=i;Ta(t,{enter(t,n){switch(t.type){case"Identifier":n&&za(t,n)&&a.push([r,t]);break;case"ImportDeclaration":t.specifiers.forEach((t=>{r.declarations.set(t.local.name,t)}));break;case"FunctionExpression":case"FunctionDeclaration":case"ArrowFunctionExpression":"FunctionDeclaration"===t.type?(t.id&&r.declarations.set(t.id.name,t),e.set(t,r=new Va(r,!1))):(e.set(t,r=new Va(r,!1)),"FunctionExpression"===t.type&&t.id&&r.declarations.set(t.id.name,t)),t.params.forEach((e=>{qa(e).forEach((e=>{r.declarations.set(e,t)}))}));break;case"ForStatement":case"ForInStatement":case"ForOfStatement":case"BlockStatement":e.set(t,r=new Va(r,!0));break;case"ClassDeclaration":case"VariableDeclaration":r.add_declaration(t);break;case"CatchClause":e.set(t,r=new Va(r,!0)),t.param&&qa(t.param).forEach((e=>{t.param&&r.declarations.set(e,t.param)}))}},leave(t){e.has(t)&&null!==r&&r.parent&&(r=r.parent)}});for(let o=a.length-1;o>=0;--o){const[t,e]=a[o];t.references.has(e.name)||Ua(t,e.name),t.find_owner(e.name)||n.set(e.name,e)}return{map:e,scope:i,globals:n}}function Ua(t,e){t.references.add(e),t.parent&&Ua(t.parent,e)}class Va{constructor(t,e){this.parent=t,this.block=e,this.declarations=new Map,this.initialised_declarations=new Set,this.references=new Set}add_declaration(t){if("VariableDeclaration"===t.type)if("var"===t.kind&&this.block&&this.parent)this.parent.add_declaration(t);else{const e=e=>{qa(e.id).forEach((n=>{this.declarations.set(n,t),e.init&&this.initialised_declarations.add(n)}))};t.declarations.forEach(e)}else t.id&&this.declarations.set(t.id.name,t)}find_owner(t){return this.declarations.has(t)?this:this.parent&&this.parent.find_owner(t)}has(t){return this.declarations.has(t)||!!this.parent&&this.parent.has(t)}}function qa(t){return Wa(t).map((t=>t.name))}function Wa(t,e=[]){switch(t.type){case"Identifier":e.push(t);break;case"MemberExpression":let n=t;for(;"MemberExpression"===n.type;)n=n.object;e.push(n);break;case"ObjectPattern":const i=t=>{"RestElement"===t.type?Wa(t.argument,e):Wa(t.value,e)};t.properties.forEach(i);break;case"ArrayPattern":const a=t=>{t&&Wa(t,e)};t.elements.forEach((t=>{t&&a(t)}));break;case"RestElement":Wa(t.argument,e);break;case"AssignmentPattern":Wa(t.left,e)}return e}function Ya(t){if("FunctionDeclaration"===t.type)return{...t,type:"FunctionExpression"};if("ClassDeclaration"===t.type)return{...t,type:"ClassExpression"};throw new Error("Cannot turn `"+t.type+"` into an expression")}function Ga(t){return Boolean("FunctionDeclaration"===t.type||"ClassDeclaration"===t.type||"VariableDeclaration"===t.type)}function Za(t){const e=t||{},n=e.baseUrl||void 0,i=e.useDynamicImport||void 0,a=e.outputFormat||"program",r=void 0===e.pragma?"React.createElement":e.pragma,o=void 0===e.pragmaFrag?"React.Fragment":e.pragmaFrag,s=e.pragmaImportSource||"react",c=e.jsxImportSource||"react",l=e.jsxRuntime||"automatic";return(t,e)=>{const h=[],f=[],g=[];let p,b,m,y=0;if(t.comments||(t.comments=[]),l&&g.push("@jsxRuntime "+l),"automatic"===l&&c&&g.push("@jsxImportSource "+c),"classic"===l&&r&&g.push("@jsx "+r),"classic"===l&&o&&g.push("@jsxFrag "+o),g.length>0&&t.comments.unshift({type:"Block",value:g.join(" ")}),"classic"===l&&s){if(!r)throw new Error("Missing `pragma` in classic runtime with `pragmaImportSource`");w({type:"ImportDeclaration",specifiers:[{type:"ImportDefaultSpecifier",local:{type:"Identifier",name:r.split(".")[0]}}],source:{type:"Literal",value:s}})}for(m of t.body)if("ExportDefaultDeclaration"===m.type)p&&e.fail("Cannot specify multiple layouts (previous: "+u(Me(p))+")",Me(m),"recma-document:duplicate-layout"),p=m,f.push({type:"VariableDeclaration",kind:"const",declarations:[{type:"VariableDeclarator",id:{type:"Identifier",name:"MDXLayout"},init:Ga(m.declaration)?Ya(m.declaration):m.declaration}]});else if("ExportNamedDeclaration"===m.type&&m.source){const t=m.source;m.specifiers=m.specifiers.filter((n=>{if("default"===n.exported.name){p&&e.fail("Cannot specify multiple layouts (previous: "+u(Me(p))+")",Me(m),"recma-document:duplicate-layout"),p=n;const i=[];if("default"===n.local.name)i.push({type:"ImportDefaultSpecifier",local:{type:"Identifier",name:"MDXLayout"}});else{const t={type:"ImportSpecifier",imported:n.local,local:{type:"Identifier",name:"MDXLayout"}};Ma(n.local,t),i.push(t)}const a={type:"Literal",value:t.value};Ma(t,a);const r={type:"ImportDeclaration",specifiers:i,source:a};return Ma(n,r),w(r),!1}return!0})),m.specifiers.length>0&&v(m)}else"ExportNamedDeclaration"===m.type||"ExportAllDeclaration"===m.type?v(m):"ImportDeclaration"===m.type?w(m):"ExpressionStatement"!==m.type||"JSXFragment"!==m.expression.type&&"JSXElement"!==m.expression.type?f.push(m):(b=!0,f.push(...d(m.expression,Boolean(p))));function v(t){if("ExportNamedDeclaration"===t.type)for(m of(t.declaration&&h.push(...Ha(t.declaration).scope.declarations.keys()),t.specifiers))h.push(m.exported.name);w(t)}function w(t){if(n&&t.source){let e=String(t.source.value);try{e=String(new URL(e))}catch{/^\.{0,2}\//.test(e)&&(e=String(new URL(e,n)))}const i={type:"Literal",value:e};Ma(t.source,i),t.source=i}let r,o;if("function-body"===a)if("ImportDeclaration"===t.type||"ExportAllDeclaration"===t.type||"ExportNamedDeclaration"===t.type&&t.source){if(i||e.fail("Cannot use `import` or `export \u2026 from` in `evaluate` (outputting a function body) by default: please set `useDynamicImport: true` (and probably specify a `baseUrl`)",Me(t),"recma-document:invalid-esm-statement"),!t.source)throw new Error("Expected `node.source` to be defined");const n={type:"ImportExpression",source:t.source};Ma(t,n),o={type:"AwaitExpression",argument:n},r="ImportDeclaration"!==t.type&&"ExportNamedDeclaration"!==t.type||0!==t.specifiers.length?{type:"VariableDeclaration",kind:"const",declarations:"ExportAllDeclaration"===t.type?[{type:"VariableDeclarator",id:{type:"Identifier",name:"_exportAll"+ ++y},init:o}]:Na(t.specifiers,o)}:{type:"ExpressionStatement",expression:o}}else if(t.declaration)r=t.declaration;else{const e=t.specifiers.filter((t=>t.local.name!==t.exported.name)).map((t=>({type:"VariableDeclarator",id:t.exported,init:t.local})));e.length>0&&(r={type:"VariableDeclaration",kind:"const",declarations:e})}else r=t;r&&f.push(r)}b||f.push(...d(void 0,Boolean(p))),h.push(["MDXContent","default"]),"function-body"===a?f.push({type:"ReturnStatement",argument:{type:"ObjectExpression",properties:[...Array.from({length:y}).map(((t,e)=>({type:"SpreadElement",argument:{type:"Identifier",name:"_exportAll"+(e+1)}}))),...h.map((t=>({type:"Property",kind:"init",method:!1,computed:!1,shorthand:"string"==typeof t,key:{type:"Identifier",name:"string"==typeof t?t:t[1]},value:{type:"Identifier",name:"string"==typeof t?t:t[0]}})))]}}):f.push({type:"ExportDefaultDeclaration",declaration:{type:"Identifier",name:"MDXContent"}}),t.body=f,n&&Ta(t,{enter(t){if("MemberExpression"===t.type&&"object"in t&&"MetaProperty"===t.object.type&&"Identifier"===t.property.type&&"import"===t.object.meta.name&&"meta"===t.object.property.name&&"url"===t.property.name){const t={type:"Literal",value:n};this.replace(t)}}})};function d(t,e){let n={type:"JSXElement",openingElement:{type:"JSXOpeningElement",name:{type:"JSXIdentifier",name:"MDXLayout"},attributes:[{type:"JSXSpreadAttribute",argument:{type:"Identifier",name:"props"}}],selfClosing:!1},closingElement:{type:"JSXClosingElement",name:{type:"JSXIdentifier",name:"MDXLayout"}},children:[{type:"JSXElement",openingElement:{type:"JSXOpeningElement",name:{type:"JSXIdentifier",name:"_createMdxContent"},attributes:[{type:"JSXSpreadAttribute",argument:{type:"Identifier",name:"props"}}],selfClosing:!0},closingElement:null,children:[]}]};e||(n={type:"ConditionalExpression",test:{type:"Identifier",name:"MDXLayout"},consequent:n,alternate:{type:"CallExpression",callee:{type:"Identifier",name:"_createMdxContent"},arguments:[{type:"Identifier",name:"props"}],optional:!1}});let i=t||{type:"Literal",value:null};return i&&"JSXFragment"===i.type&&1===i.children.length&&"JSXElement"===i.children[0].type&&(i=i.children[0]),[{type:"FunctionDeclaration",id:{type:"Identifier",name:"_createMdxContent"},params:[{type:"Identifier",name:"props"}],body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:i}]}},{type:"FunctionDeclaration",id:{type:"Identifier",name:"MDXContent"},params:[{type:"AssignmentPattern",left:{type:"Identifier",name:"props"},right:{type:"ObjectExpression",properties:[]}}],body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:n}]}}]}}function Ka(t){let e,n=-1;for(;++n<t.length;){const i=t[n];e=e?{type:"BinaryExpression",left:e,operator:"+",right:i}:i}if(!e)throw new Error("Expected non-empty `expressions` to be passed");return e}const Xa={}.hasOwnProperty;function Ja(t){const{development:e,providerImportSource:n,outputFormat:i}=t||{};return(t,a)=>{const r=Ha(t),o=[];let s,c=!1,l=!1;if(Ta(t,{enter(t){const e=r.map.get(t);"FunctionDeclaration"!==t.type&&"FunctionExpression"!==t.type&&"ArrowFunctionExpression"!==t.type||(o.push({objects:[],components:[],tags:[],references:{},idToInvalidComponentName:new Map,node:t}),Qa(t,"MDXContent")&&e&&!tr(e,"MDXLayout")&&o[0].components.push("MDXLayout"));const i=o[0];if(i&&(Qa(i.node,"_createMdxContent")||n)&&(e&&(e.node=t,s=e),s&&"JSXElement"===t.type)){let e=t.openingElement.name;if("JSXMemberExpression"===e.type){const n=[];for(;"JSXMemberExpression"===e.type;)n.unshift(e.property.name),e=e.object;n.unshift(e.name);const a=n.join("."),r=e.name,o=tr(s,r);if(!Xa.call(i.references,a)){const e=s.parent;(!o||e&&"FunctionDeclaration"===e.node.type&&Qa(e.node,"_createMdxContent"))&&(i.references[a]={node:t,component:!0})}i.objects.includes(r)||o||i.objects.push(r)}else if("JSXNamespacedName"===e.type);else if(Ve(e.name)&&!/^[a-z]/.test(e.name)){const n=e.name;tr(s,n)||("MDXLayout"===n||Xa.call(i.references,n)||(i.references[n]={node:t,component:!0}),i.components.includes(n)||i.components.push(n))}else if(t.data&&t.data._mdxExplicitJsx);else{const n=e.name;i.tags.includes(n)||i.tags.push(n);let a=["_components",n];if(!1===Ve(n)){let t=i.idToInvalidComponentName.get(n);void 0===t&&(t=`_component${i.idToInvalidComponentName.size}`,i.idToInvalidComponentName.set(n,t)),a=[t]}t.openingElement.name=Pa(a),t.closingElement&&(t.closingElement.name=Pa(a))}}},leave(t){const i=[],a=[],r=[],d=[];if(s&&s.node===t&&(s=s.parent),"FunctionDeclaration"===t.type||"FunctionExpression"===t.type||"ArrowFunctionExpression"===t.type){const s=t,h=o[o.length-1];let f;for(f of h.tags)i.push({type:"Property",kind:"init",key:Ve(f)?{type:"Identifier",name:f}:{type:"Literal",value:f},value:{type:"Literal",value:f},method:!1,shorthand:!1,computed:!1});for(f of(a.push(...h.components),h.objects))a.includes(f)||a.push(f);const g=[];if(i.length>0||a.length>0||h.idToInvalidComponentName.size>0){n&&(c=!0,r.push({type:"CallExpression",callee:{type:"Identifier",name:"_provideComponents"},arguments:[],optional:!1})),(Qa(h.node,"MDXContent")||Qa(h.node,"_createMdxContent"))&&r.push(Ba(["props","components"])),(i.length>0||r.length>1)&&r.unshift({type:"ObjectExpression",properties:i});let t,e=r.length>1?{type:"CallExpression",callee:Ba(["Object","assign"]),arguments:r,optional:!1}:"MemberExpression"===r[0].type?{type:"LogicalExpression",operator:"||",left:r[0],right:{type:"ObjectExpression",properties:[]}}:r[0];if(a.length>0&&(t={type:"ObjectPattern",properties:a.map((t=>({type:"Property",kind:"init",key:{type:"Identifier",name:"MDXLayout"===t?"wrapper":t},value:{type:"Identifier",name:t},method:!1,shorthand:"MDXLayout"!==t,computed:!1})))}),h.tags.length>0&&(d.push({type:"VariableDeclarator",id:{type:"Identifier",name:"_components"},init:e}),e={type:"Identifier",name:"_components"}),Qa(h.node,"_createMdxContent"))for(const[n,i]of h.idToInvalidComponentName)d.push({type:"VariableDeclarator",id:{type:"Identifier",name:i},init:{type:"MemberExpression",object:{type:"Identifier",name:"_components"},property:{type:"Literal",value:n},computed:!0,optional:!1}});t&&d.push({type:"VariableDeclarator",id:t,init:e}),d.length>0&&g.push({type:"VariableDeclaration",kind:"const",declarations:d})}let p;for(p in h.references)if(Xa.call(h.references,p)){const t=p.split(".");let e=0;for(;++e<t.length;){const n=t.slice(0,e).join(".");Xa.call(h.references,n)||(h.references[n]={node:h.references[p].node,component:!1})}}const b=Object.keys(h.references).sort();let m=-1;for(;++m<b.length;){const t=b[m],n=h.references[t],i=u(Me(n.node)),a=[{type:"Literal",value:t},{type:"Literal",value:n.component}];l=!0,e&&"1:1-1:1"!==i&&a.push({type:"Literal",value:i}),g.push({type:"IfStatement",test:{type:"UnaryExpression",operator:"!",prefix:!0,argument:Ba(t.split("."))},consequent:{type:"ExpressionStatement",expression:{type:"CallExpression",callee:{type:"Identifier",name:"_missingMdxReference"},arguments:a,optional:!1}},alternate:null})}g.length>0&&("BlockStatement"!==s.body.type&&(s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:s.body}]}),s.body.body.unshift(...g)),o.pop()}}}),c&&n&&t.body.unshift(function(t,e){const n=[{type:"ImportSpecifier",imported:{type:"Identifier",name:"useMDXComponents"},local:{type:"Identifier",name:"_provideComponents"}}];return"function-body"===e?{type:"VariableDeclaration",kind:"const",declarations:Na(n,Ba(["arguments",0]))}:{type:"ImportDeclaration",specifiers:n,source:{type:"Literal",value:t}}}(n,i)),l){const n=[{type:"Literal",value:"Expected "},{type:"ConditionalExpression",test:{type:"Identifier",name:"component"},consequent:{type:"Literal",value:"component"},alternate:{type:"Literal",value:"object"}},{type:"Literal",value:" `"},{type:"Identifier",name:"id"},{type:"Literal",value:"` to be defined: you likely forgot to import, pass, or provide it."}],i=[{type:"Identifier",name:"id"},{type:"Identifier",name:"component"}];e&&(n.push({type:"ConditionalExpression",test:{type:"Identifier",name:"place"},consequent:Ka([{type:"Literal",value:"\nIt\u2019s referenced in your code at `"},{type:"Identifier",name:"place"},{type:"Literal",value:(a.path?"` in `"+a.path:"")+"`"}]),alternate:{type:"Literal",value:""}}),i.push({type:"Identifier",name:"place"})),t.body.push({type:"FunctionDeclaration",id:{type:"Identifier",name:"_missingMdxReference"},generator:!1,async:!1,params:i,body:{type:"BlockStatement",body:[{type:"ThrowStatement",argument:{type:"NewExpression",callee:{type:"Identifier",name:"Error"},arguments:[Ka(n)]}}]}})}}}function Qa(t,e){return Boolean(t&&"id"in t&&t.id&&t.id.name===e)}function tr(t,e){let n=t;for(;n;){if(n.declarations.has(e))return!0;n=n.parent}return!1}const{stringify:er}=JSON;if(!String.prototype.repeat)throw new Error("String.prototype.repeat is undefined, see https://github.com/davidbonnet/astring#installation");if(!String.prototype.endsWith)throw new Error("String.prototype.endsWith is undefined, see https://github.com/davidbonnet/astring#installation");const nr={"||":2,"??":3,"&&":4,"|":5,"^":6,"&":7,"==":8,"!=":8,"===":8,"!==":8,"<":9,">":9,"<=":9,">=":9,in:9,instanceof:9,"<<":10,">>":10,">>>":10,"+":11,"-":11,"*":12,"%":12,"/":12,"**":13},ir=17,ar={ArrayExpression:20,TaggedTemplateExpression:20,ThisExpression:20,Identifier:20,PrivateIdentifier:20,Literal:18,TemplateLiteral:20,Super:20,SequenceExpression:20,MemberExpression:19,ChainExpression:19,CallExpression:19,NewExpression:19,ArrowFunctionExpression:ir,ClassExpression:ir,FunctionExpression:ir,ObjectExpression:ir,UpdateExpression:16,UnaryExpression:15,AwaitExpression:15,BinaryExpression:14,LogicalExpression:13,ConditionalExpression:4,AssignmentExpression:3,YieldExpression:2,RestElement:1};function rr(t,e){const{generator:n}=t;if(t.write("("),null!=e&&e.length>0){n[e[0].type](e[0],t);const{length:i}=e;for(let a=1;a<i;a++){const i=e[a];t.write(", "),n[i.type](i,t)}}t.write(")")}function or(t,e,n,i){const a=t.expressionsPrecedence[e.type];if(a===ir)return!0;const r=t.expressionsPrecedence[n.type];return a!==r?!i&&15===a&&14===r&&"**"===n.operator||a<r:(13===a||14===a)&&("**"===e.operator&&"**"===n.operator?!i:13===a&&13===r&&("??"===e.operator||"??"===n.operator)||(i?nr[e.operator]<=nr[n.operator]:nr[e.operator]<nr[n.operator]))}function sr(t,e,n,i){const{generator:a}=t;or(t,e,n,i)?(t.write("("),a[e.type](e,t),t.write(")")):a[e.type](e,t)}function cr(t,e,n,i){const a=e.split("\n"),r=a.length-1;if(t.write(a[0].trim()),r>0){t.write(i);for(let e=1;e<r;e++)t.write(n+a[e].trim()+i);t.write(n+a[r].trim())}}function lr(t,e,n,i){const{length:a}=e;for(let r=0;r<a;r++){const a=e[r];t.write(n),"L"===a.type[0]?t.write("// "+a.value.trim()+"\n",a):(t.write("/*"),cr(t,a.value,n,i),t.write("*/"+i))}}function ur(t,e){const{generator:n}=t,{declarations:i}=e;t.write(e.kind+" ");const{length:a}=i;if(a>0){n.VariableDeclarator(i[0],t);for(let e=1;e<a;e++)t.write(", "),n.VariableDeclarator(i[e],t)}}let dr,hr,fr,gr,pr,br;const mr={Program(t,e){const n=e.indent.repeat(e.indentLevel),{lineEnd:i,writeComments:a}=e;a&&null!=t.comments&&lr(e,t.comments,n,i);const r=t.body,{length:o}=r;for(let s=0;s<o;s++){const t=r[s];a&&null!=t.comments&&lr(e,t.comments,n,i),e.write(n),this[t.type](t,e),e.write(i)}a&&null!=t.trailingComments&&lr(e,t.trailingComments,n,i)},BlockStatement:br=function(t,e){const n=e.indent.repeat(e.indentLevel++),{lineEnd:i,writeComments:a}=e,r=n+e.indent;e.write("{");const o=t.body;if(null!=o&&o.length>0){e.write(i),a&&null!=t.comments&&lr(e,t.comments,r,i);const{length:s}=o;for(let t=0;t<s;t++){const n=o[t];a&&null!=n.comments&&lr(e,n.comments,r,i),e.write(r),this[n.type](n,e),e.write(i)}e.write(n)}else a&&null!=t.comments&&(e.write(i),lr(e,t.comments,r,i),e.write(n));a&&null!=t.trailingComments&&lr(e,t.trailingComments,r,i),e.write("}"),e.indentLevel--},ClassBody:br,StaticBlock(t,e){e.write("static "),this.BlockStatement(t,e)},EmptyStatement(t,e){e.write(";")},ExpressionStatement(t,e){const n=e.expressionsPrecedence[t.expression.type];n===ir||3===n&&"O"===t.expression.left.type[0]?(e.write("("),this[t.expression.type](t.expression,e),e.write(")")):this[t.expression.type](t.expression,e),e.write(";")},IfStatement(t,e){e.write("if ("),this[t.test.type](t.test,e),e.write(") "),this[t.consequent.type](t.consequent,e),null!=t.alternate&&(e.write(" else "),this[t.alternate.type](t.alternate,e))},LabeledStatement(t,e){this[t.label.type](t.label,e),e.write(": "),this[t.body.type](t.body,e)},BreakStatement(t,e){e.write("break"),null!=t.label&&(e.write(" "),this[t.label.type](t.label,e)),e.write(";")},ContinueStatement(t,e){e.write("continue"),null!=t.label&&(e.write(" "),this[t.label.type](t.label,e)),e.write(";")},WithStatement(t,e){e.write("with ("),this[t.object.type](t.object,e),e.write(") "),this[t.body.type](t.body,e)},SwitchStatement(t,e){const n=e.indent.repeat(e.indentLevel++),{lineEnd:i,writeComments:a}=e;e.indentLevel++;const r=n+e.indent,o=r+e.indent;e.write("switch ("),this[t.discriminant.type](t.discriminant,e),e.write(") {"+i);const{cases:s}=t,{length:c}=s;for(let l=0;l<c;l++){const t=s[l];a&&null!=t.comments&&lr(e,t.comments,r,i),t.test?(e.write(r+"case "),this[t.test.type](t.test,e),e.write(":"+i)):e.write(r+"default:"+i);const{consequent:n}=t,{length:c}=n;for(let r=0;r<c;r++){const t=n[r];a&&null!=t.comments&&lr(e,t.comments,o,i),e.write(o),this[t.type](t,e),e.write(i)}}e.indentLevel-=2,e.write(n+"}")},ReturnStatement(t,e){e.write("return"),t.argument&&(e.write(" "),this[t.argument.type](t.argument,e)),e.write(";")},ThrowStatement(t,e){e.write("throw "),this[t.argument.type](t.argument,e),e.write(";")},TryStatement(t,e){if(e.write("try "),this[t.block.type](t.block,e),t.handler){const{handler:n}=t;null==n.param?e.write(" catch "):(e.write(" catch ("),this[n.param.type](n.param,e),e.write(") ")),this[n.body.type](n.body,e)}t.finalizer&&(e.write(" finally "),this[t.finalizer.type](t.finalizer,e))},WhileStatement(t,e){e.write("while ("),this[t.test.type](t.test,e),e.write(") "),this[t.body.type](t.body,e)},DoWhileStatement(t,e){e.write("do "),this[t.body.type](t.body,e),e.write(" while ("),this[t.test.type](t.test,e),e.write(");")},ForStatement(t,e){if(e.write("for ("),null!=t.init){const{init:n}=t;"V"===n.type[0]?ur(e,n):this[n.type](n,e)}e.write("; "),t.test&&this[t.test.type](t.test,e),e.write("; "),t.update&&this[t.update.type](t.update,e),e.write(") "),this[t.body.type](t.body,e)},ForInStatement:dr=function(t,e){e.write(`for ${t.await?"await ":""}(`);const{left:n}=t;"V"===n.type[0]?ur(e,n):this[n.type](n,e),e.write("I"===t.type[3]?" in ":" of "),this[t.right.type](t.right,e),e.write(") "),this[t.body.type](t.body,e)},ForOfStatement:dr,DebuggerStatement(t,e){e.write("debugger;",t)},FunctionDeclaration:hr=function(t,e){e.write((t.async?"async ":"")+(t.generator?"function* ":"function ")+(t.id?t.id.name:""),t),rr(e,t.params),e.write(" "),this[t.body.type](t.body,e)},FunctionExpression:hr,VariableDeclaration(t,e){ur(e,t),e.write(";")},VariableDeclarator(t,e){this[t.id.type](t.id,e),null!=t.init&&(e.write(" = "),this[t.init.type](t.init,e))},ClassDeclaration(t,e){if(e.write("class "+(t.id?`${t.id.name} `:""),t),t.superClass){e.write("extends ");const{superClass:n}=t,{type:i}=n,a=e.expressionsPrecedence[i];"C"===i[0]&&"l"===i[1]&&"E"===i[5]||!(a===ir||a<e.expressionsPrecedence.ClassExpression)?this[n.type](n,e):(e.write("("),this[t.superClass.type](n,e),e.write(")")),e.write(" ")}this.ClassBody(t.body,e)},ImportDeclaration(t,e){e.write("import ");const{specifiers:n}=t,{length:i}=n;let a=0;if(i>0){for(;a<i;){a>0&&e.write(", ");const t=n[a],i=t.type[6];if("D"===i)e.write(t.local.name,t),a++;else{if("N"!==i)break;e.write("* as "+t.local.name,t),a++}}if(a<i){for(e.write("{");;){const t=n[a],{name:r}=t.imported;if(e.write(r,t),r!==t.local.name&&e.write(" as "+t.local.name),!(++a<i))break;e.write(", ")}e.write("}")}e.write(" from ")}this.Literal(t.source,e),e.write(";")},ImportExpression(t,e){e.write("import("),this[t.source.type](t.source,e),e.write(")")},ExportDefaultDeclaration(t,e){e.write("export default "),this[t.declaration.type](t.declaration,e),null!=e.expressionsPrecedence[t.declaration.type]&&"F"!==t.declaration.type[0]&&e.write(";")},ExportNamedDeclaration(t,e){if(e.write("export "),t.declaration)this[t.declaration.type](t.declaration,e);else{e.write("{");const{specifiers:n}=t,{length:i}=n;if(i>0)for(let t=0;;){const a=n[t],{name:r}=a.local;if(e.write(r,a),r!==a.exported.name&&e.write(" as "+a.exported.name),!(++t<i))break;e.write(", ")}e.write("}"),t.source&&(e.write(" from "),this.Literal(t.source,e)),e.write(";")}},ExportAllDeclaration(t,e){null!=t.exported?e.write("export * as "+t.exported.name+" from "):e.write("export * from "),this.Literal(t.source,e),e.write(";")},MethodDefinition(t,e){t.static&&e.write("static ");const n=t.kind[0];"g"!==n&&"s"!==n||e.write(t.kind+" "),t.value.async&&e.write("async "),t.value.generator&&e.write("*"),t.computed?(e.write("["),this[t.key.type](t.key,e),e.write("]")):this[t.key.type](t.key,e),rr(e,t.value.params),e.write(" "),this[t.value.body.type](t.value.body,e)},ClassExpression(t,e){this.ClassDeclaration(t,e)},ArrowFunctionExpression(t,e){e.write(t.async?"async ":"",t);const{params:n}=t;null!=n&&(1===n.length&&"I"===n[0].type[0]?e.write(n[0].name,n[0]):rr(e,t.params)),e.write(" => "),"O"===t.body.type[0]?(e.write("("),this.ObjectExpression(t.body,e),e.write(")")):this[t.body.type](t.body,e)},ThisExpression(t,e){e.write("this",t)},Super(t,e){e.write("super",t)},RestElement:fr=function(t,e){e.write("..."),this[t.argument.type](t.argument,e)},SpreadElement:fr,YieldExpression(t,e){e.write(t.delegate?"yield*":"yield"),t.argument&&(e.write(" "),this[t.argument.type](t.argument,e))},AwaitExpression(t,e){e.write("await ",t),sr(e,t.argument,t)},TemplateLiteral(t,e){const{quasis:n,expressions:i}=t;e.write("`");const{length:a}=i;for(let o=0;o<a;o++){const t=i[o],a=n[o];e.write(a.value.raw,a),e.write("${"),this[t.type](t,e),e.write("}")}const r=n[n.length-1];e.write(r.value.raw,r),e.write("`")},TemplateElement(t,e){e.write(t.value.raw,t)},TaggedTemplateExpression(t,e){sr(e,t.tag,t),this[t.quasi.type](t.quasi,e)},ArrayExpression:pr=function(t,e){if(e.write("["),t.elements.length>0){const{elements:n}=t,{length:i}=n;for(let t=0;;){const a=n[t];if(null!=a&&this[a.type](a,e),!(++t<i)){null==a&&e.write(", ");break}e.write(", ")}}e.write("]")},ArrayPattern:pr,ObjectExpression(t,e){const n=e.indent.repeat(e.indentLevel++),{lineEnd:i,writeComments:a}=e,r=n+e.indent;if(e.write("{"),t.properties.length>0){e.write(i),a&&null!=t.comments&&lr(e,t.comments,r,i);const o=","+i,{properties:s}=t,{length:c}=s;for(let t=0;;){const n=s[t];if(a&&null!=n.comments&&lr(e,n.comments,r,i),e.write(r),this[n.type](n,e),!(++t<c))break;e.write(o)}e.write(i),a&&null!=t.trailingComments&&lr(e,t.trailingComments,r,i),e.write(n+"}")}else a?null!=t.comments?(e.write(i),lr(e,t.comments,r,i),null!=t.trailingComments&&lr(e,t.trailingComments,r,i),e.write(n+"}")):null!=t.trailingComments?(e.write(i),lr(e,t.trailingComments,r,i),e.write(n+"}")):e.write("}"):e.write("}");e.indentLevel--},Property(t,e){t.method||"i"!==t.kind[0]?this.MethodDefinition(t,e):(t.shorthand||(t.computed?(e.write("["),this[t.key.type](t.key,e),e.write("]")):this[t.key.type](t.key,e),e.write(": ")),this[t.value.type](t.value,e))},PropertyDefinition(t,e){t.static&&e.write("static "),t.computed&&e.write("["),this[t.key.type](t.key,e),t.computed&&e.write("]"),null!=t.value?(e.write(" = "),this[t.value.type](t.value,e),e.write(";")):"F"!==t.key.type[0]&&e.write(";")},ObjectPattern(t,e){if(e.write("{"),t.properties.length>0){const{properties:n}=t,{length:i}=n;for(let t=0;this[n[t].type](n[t],e),++t<i;)e.write(", ")}e.write("}")},SequenceExpression(t,e){rr(e,t.expressions)},UnaryExpression(t,e){if(t.prefix){const{operator:n,argument:i,argument:{type:a}}=t;e.write(n);const r=or(e,i,t);r||!(n.length>1)&&("U"!==a[0]||"n"!==a[1]&&"p"!==a[1]||!i.prefix||i.operator[0]!==n||"+"!==n&&"-"!==n)||e.write(" "),r?(e.write(n.length>1?" (":"("),this[a](i,e),e.write(")")):this[a](i,e)}else this[t.argument.type](t.argument,e),e.write(t.operator)},UpdateExpression(t,e){t.prefix?(e.write(t.operator),this[t.argument.type](t.argument,e)):(this[t.argument.type](t.argument,e),e.write(t.operator))},AssignmentExpression(t,e){this[t.left.type](t.left,e),e.write(" "+t.operator+" "),this[t.right.type](t.right,e)},AssignmentPattern(t,e){this[t.left.type](t.left,e),e.write(" = "),this[t.right.type](t.right,e)},BinaryExpression:gr=function(t,e){const n="in"===t.operator;n&&e.write("("),sr(e,t.left,t,!1),e.write(" "+t.operator+" "),sr(e,t.right,t,!0),n&&e.write(")")},LogicalExpression:gr,ConditionalExpression(t,e){const{test:n}=t,i=e.expressionsPrecedence[n.type];i===ir||i<=e.expressionsPrecedence.ConditionalExpression?(e.write("("),this[n.type](n,e),e.write(")")):this[n.type](n,e),e.write(" ? "),this[t.consequent.type](t.consequent,e),e.write(" : "),this[t.alternate.type](t.alternate,e)},NewExpression(t,e){e.write("new ");const n=e.expressionsPrecedence[t.callee.type];n===ir||n<e.expressionsPrecedence.CallExpression||function(t){let e=t;for(;null!=e;){const{type:t}=e;if("C"===t[0]&&"a"===t[1])return!0;if("M"!==t[0]||"e"!==t[1]||"m"!==t[2])return!1;e=e.object}}(t.callee)?(e.write("("),this[t.callee.type](t.callee,e),e.write(")")):this[t.callee.type](t.callee,e),rr(e,t.arguments)},CallExpression(t,e){const n=e.expressionsPrecedence[t.callee.type];n===ir||n<e.expressionsPrecedence.CallExpression?(e.write("("),this[t.callee.type](t.callee,e),e.write(")")):this[t.callee.type](t.callee,e),t.optional&&e.write("?."),rr(e,t.arguments)},ChainExpression(t,e){this[t.expression.type](t.expression,e)},MemberExpression(t,e){const n=e.expressionsPrecedence[t.object.type];n===ir||n<e.expressionsPrecedence.MemberExpression?(e.write("("),this[t.object.type](t.object,e),e.write(")")):this[t.object.type](t.object,e),t.computed?(t.optional&&e.write("?."),e.write("["),this[t.property.type](t.property,e),e.write("]")):(t.optional?e.write("?."):e.write("."),this[t.property.type](t.property,e))},MetaProperty(t,e){e.write(t.meta.name+"."+t.property.name,t)},Identifier(t,e){e.write(t.name,t)},PrivateIdentifier(t,e){e.write(`#${t.name}`,t)},Literal(t,e){null!=t.raw?e.write(t.raw,t):null!=t.regex?this.RegExpLiteral(t,e):null!=t.bigint?e.write(t.bigint+"n",t):e.write(er(t.value),t)},RegExpLiteral(t,e){const{regex:n}=t;e.write(`/${n.pattern}/${n.flags}`,t)}},yr={};class vr{constructor(t){const e=null==t?yr:t;this.output="",null!=e.output?(this.output=e.output,this.write=this.writeToStream):this.output="",this.generator=null!=e.generator?e.generator:mr,this.expressionsPrecedence=null!=e.expressionsPrecedence?e.expressionsPrecedence:ar,this.indent=null!=e.indent?e.indent:" ",this.lineEnd=null!=e.lineEnd?e.lineEnd:"\n",this.indentLevel=null!=e.startingIndentLevel?e.startingIndentLevel:0,this.writeComments=!!e.comments&&e.comments,null!=e.sourceMap&&(this.write=null==e.output?this.writeAndMap:this.writeToStreamAndMap,this.sourceMap=e.sourceMap,this.line=1,this.column=0,this.lineEndSize=this.lineEnd.split("\n").length-1,this.mapping={original:null,generated:this,name:void 0,source:e.sourceMap.file||e.sourceMap._file})}write(t){this.output+=t}writeToStream(t){this.output.write(t)}writeAndMap(t,e){this.output+=t,this.map(t,e)}writeToStreamAndMap(t,e){this.output.write(t),this.map(t,e)}map(t,e){if(null!=e){const{type:n}=e;if("L"===n[0]&&"n"===n[2])return this.column=0,void this.line++;if(null!=e.loc){const{mapping:t}=this;t.original=e.loc.start,t.name=e.name,this.sourceMap.addMapping(t)}if("T"===n[0]&&"E"===n[8]||"L"===n[0]&&"i"===n[1]&&"string"==typeof e.value){const{length:e}=t;let{column:n,line:i}=this;for(let a=0;a<e;a++)"\n"===t[a]?(n=0,i++):n++;return this.column=n,void(this.line=i)}}const{length:n}=t,{lineEnd:i}=this;n>0&&(this.lineEndSize>0&&(1===i.length?t[n-1]===i:t.endsWith(i))?(this.line+=this.lineEndSize,this.column=0):this.column+=n)}toString(){return this.output}}const wr=mr,xr=function(t,e){const n=new vr(e);return n.generator[t.type](t,n),n.output},Rr=function(t,e){const{SourceMapGenerator:n,filePath:i,handlers:a}=e||{},r=n?new n({file:i||"<unknown>.js"}):void 0;return{value:xr(t,{comments:!0,generator:{...wr,...a},sourceMap:r}),map:r?r.toJSON():void 0}},_r={JSXAttribute:function(t,e){this[t.name.type](t.name,e),void 0!==t.value&&null!==t.value&&(e.write("="),"Literal"===t.value.type?e.write('"'+kr(String(t.value.value)).replace(/"/g,""")+'"',t):this[t.value.type](t.value,e))},JSXClosingElement:function(t,e){e.write("</"),this[t.name.type](t.name,e),e.write(">")},JSXClosingFragment:function(t,e){e.write("</>",t)},JSXElement:function(t,e){let n=-1;if(this[t.openingElement.type](t.openingElement,e),t.children)for(;++n<t.children.length;){const i=t.children[n];if("JSXSpreadChild"===i.type)throw new Error("JSX spread children are not supported");this[i.type](i,e)}t.closingElement&&this[t.closingElement.type](t.closingElement,e)},JSXEmptyExpression:function(){},JSXExpressionContainer:function(t,e){e.write("{"),this[t.expression.type](t.expression,e),e.write("}")},JSXFragment:function(t,e){let n=-1;if(this[t.openingFragment.type](t.openingFragment,e),t.children)for(;++n<t.children.length;){const i=t.children[n];if("JSXSpreadChild"===i.type)throw new Error("JSX spread children are not supported");this[i.type](i,e)}this[t.closingFragment.type](t.closingFragment,e)},JSXIdentifier:function(t,e){e.write(t.name,t)},JSXMemberExpression:function(t,e){this[t.object.type](t.object,e),e.write("."),this[t.property.type](t.property,e)},JSXNamespacedName:function(t,e){this[t.namespace.type](t.namespace,e),e.write(":"),this[t.name.type](t.name,e)},JSXOpeningElement:function(t,e){let n=-1;if(e.write("<"),this[t.name.type](t.name,e),t.attributes)for(;++n<t.attributes.length;)e.write(" "),this[t.attributes[n].type](t.attributes[n],e);e.write(t.selfClosing?" />":">")},JSXOpeningFragment:function(t,e){e.write("<>",t)},JSXSpreadAttribute:function(t,e){e.write("{"),this.SpreadElement(t,e),e.write("}")},JSXText:function(t,e){e.write(kr(t.value).replace(/[<>{}]/g,(t=>"<"===t?"<":">"===t?">":"{"===t?"{":"}")),t)}};function kr(t){return t.replace(/&(?=[#a-z])/gi,"&")}function Er(t){const{SourceMapGenerator:e}=t||{};Object.assign(this,{Compiler:function(t,n){const i=Rr(t,e?{filePath:n.path||"unknown.mdx",SourceMapGenerator:e,handlers:_r}:{handlers:_r});return n.map=i.map,i.value}})}class Cr{constructor(t,e,n){this.property=t,this.normal=e,n&&(this.space=n)}}function Sr(t,e){const n={},i={};let a=-1;for(;++a<t.length;)Object.assign(n,t[a].property),Object.assign(i,t[a].normal);return new Cr(n,i,e)}function Tr(t){return t.toLowerCase()}Cr.prototype.property={},Cr.prototype.normal={},Cr.prototype.space=null;class Ar{constructor(t,e){this.property=t,this.attribute=e}}Ar.prototype.space=null,Ar.prototype.boolean=!1,Ar.prototype.booleanish=!1,Ar.prototype.overloadedBoolean=!1,Ar.prototype.number=!1,Ar.prototype.commaSeparated=!1,Ar.prototype.spaceSeparated=!1,Ar.prototype.commaOrSpaceSeparated=!1,Ar.prototype.mustUseProperty=!1,Ar.prototype.defined=!1;let Dr=0;const Ir=Fr(),Lr=Fr(),Or=Fr(),Mr=Fr(),Nr=Fr(),Br=Fr(),Pr=Fr();function Fr(){return 2**++Dr}const jr=Object.keys(a);class $r extends Ar{constructor(t,e,n,i){let r=-1;if(super(t,e),zr(this,"space",i),"number"==typeof n)for(;++r<jr.length;){const t=jr[r];zr(this,jr[r],(n&a[t])===a[t])}}}function zr(t,e,n){n&&(t[e]=n)}$r.prototype.defined=!0;const Hr={}.hasOwnProperty;function Ur(t){const e={},n={};let i;for(i in t.properties)if(Hr.call(t.properties,i)){const a=t.properties[i],r=new $r(i,t.transform(t.attributes||{},i),a,t.space);t.mustUseProperty&&t.mustUseProperty.includes(i)&&(r.mustUseProperty=!0),e[i]=r,n[Tr(i)]=i,n[Tr(r.attribute)]=i}return new Cr(e,n,t.space)}const Vr=Ur({space:"xlink",transform:(t,e)=>"xlink:"+e.slice(5).toLowerCase(),properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}}),qr=Ur({space:"xml",transform:(t,e)=>"xml:"+e.slice(3).toLowerCase(),properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function Wr(t,e){return e in t?t[e]:e}function Yr(t,e){return Wr(t,e.toLowerCase())}const Gr=Ur({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:Yr,properties:{xmlns:null,xmlnsXLink:null}}),Zr=Ur({transform:(t,e)=>"role"===e?e:"aria-"+e.slice(4).toLowerCase(),properties:{ariaActiveDescendant:null,ariaAtomic:Lr,ariaAutoComplete:null,ariaBusy:Lr,ariaChecked:Lr,ariaColCount:Mr,ariaColIndex:Mr,ariaColSpan:Mr,ariaControls:Nr,ariaCurrent:null,ariaDescribedBy:Nr,ariaDetails:null,ariaDisabled:Lr,ariaDropEffect:Nr,ariaErrorMessage:null,ariaExpanded:Lr,ariaFlowTo:Nr,ariaGrabbed:Lr,ariaHasPopup:null,ariaHidden:Lr,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Nr,ariaLevel:Mr,ariaLive:null,ariaModal:Lr,ariaMultiLine:Lr,ariaMultiSelectable:Lr,ariaOrientation:null,ariaOwns:Nr,ariaPlaceholder:null,ariaPosInSet:Mr,ariaPressed:Lr,ariaReadOnly:Lr,ariaRelevant:null,ariaRequired:Lr,ariaRoleDescription:Nr,ariaRowCount:Mr,ariaRowIndex:Mr,ariaRowSpan:Mr,ariaSelected:Lr,ariaSetSize:Mr,ariaSort:null,ariaValueMax:Mr,ariaValueMin:Mr,ariaValueNow:Mr,ariaValueText:null,role:null}}),Kr=Ur({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:Yr,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Br,acceptCharset:Nr,accessKey:Nr,action:null,allow:null,allowFullScreen:Ir,allowPaymentRequest:Ir,allowUserMedia:Ir,alt:null,as:null,async:Ir,autoCapitalize:null,autoComplete:Nr,autoFocus:Ir,autoPlay:Ir,blocking:Nr,capture:Ir,charSet:null,checked:Ir,cite:null,className:Nr,cols:Mr,colSpan:null,content:null,contentEditable:Lr,controls:Ir,controlsList:Nr,coords:Mr|Br,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Ir,defer:Ir,dir:null,dirName:null,disabled:Ir,download:Or,draggable:Lr,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Ir,formTarget:null,headers:Nr,height:Mr,hidden:Ir,high:Mr,href:null,hrefLang:null,htmlFor:Nr,httpEquiv:Nr,id:null,imageSizes:null,imageSrcSet:null,inert:Ir,inputMode:null,integrity:null,is:null,isMap:Ir,itemId:null,itemProp:Nr,itemRef:Nr,itemScope:Ir,itemType:Nr,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Ir,low:Mr,manifest:null,max:null,maxLength:Mr,media:null,method:null,min:null,minLength:Mr,multiple:Ir,muted:Ir,name:null,nonce:null,noModule:Ir,noValidate:Ir,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Ir,optimum:Mr,pattern:null,ping:Nr,placeholder:null,playsInline:Ir,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Ir,referrerPolicy:null,rel:Nr,required:Ir,reversed:Ir,rows:Mr,rowSpan:Mr,sandbox:Nr,scope:null,scoped:Ir,seamless:Ir,selected:Ir,shape:null,size:Mr,sizes:null,slot:null,span:Mr,spellCheck:Lr,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Mr,step:null,style:null,tabIndex:Mr,target:null,title:null,translate:null,type:null,typeMustMatch:Ir,useMap:null,value:Lr,width:Mr,wrap:null,align:null,aLink:null,archive:Nr,axis:null,background:null,bgColor:null,border:Mr,borderColor:null,bottomMargin:Mr,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Ir,declare:Ir,event:null,face:null,frame:null,frameBorder:null,hSpace:Mr,leftMargin:Mr,link:null,longDesc:null,lowSrc:null,marginHeight:Mr,marginWidth:Mr,noResize:Ir,noHref:Ir,noShade:Ir,noWrap:Ir,object:null,profile:null,prompt:null,rev:null,rightMargin:Mr,rules:null,scheme:null,scrolling:Lr,standby:null,summary:null,text:null,topMargin:Mr,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Mr,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Ir,disableRemotePlayback:Ir,prefix:null,property:null,results:Mr,security:null,unselectable:null}}),Xr=Ur({space:"svg",attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},transform:Wr,properties:{about:Pr,accentHeight:Mr,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Mr,amplitude:Mr,arabicForm:null,ascent:Mr,attributeName:null,attributeType:null,azimuth:Mr,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Mr,by:null,calcMode:null,capHeight:Mr,className:Nr,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Mr,diffuseConstant:Mr,direction:null,display:null,dur:null,divisor:Mr,dominantBaseline:null,download:Ir,dx:null,dy:null,edgeMode:null,editable:null,elevation:Mr,enableBackground:null,end:null,event:null,exponent:Mr,externalResourcesRequired:null,fill:null,fillOpacity:Mr,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Br,g2:Br,glyphName:Br,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Mr,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Mr,horizOriginX:Mr,horizOriginY:Mr,id:null,ideographic:Mr,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Mr,k:Mr,k1:Mr,k2:Mr,k3:Mr,k4:Mr,kernelMatrix:Pr,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Mr,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Mr,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Mr,overlineThickness:Mr,paintOrder:null,panose1:null,path:null,pathLength:Mr,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Nr,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Mr,pointsAtY:Mr,pointsAtZ:Mr,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Pr,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Pr,rev:Pr,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Pr,requiredFeatures:Pr,requiredFonts:Pr,requiredFormats:Pr,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Mr,specularExponent:Mr,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Mr,strikethroughThickness:Mr,string:null,stroke:null,strokeDashArray:Pr,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Mr,strokeOpacity:Mr,strokeWidth:null,style:null,surfaceScale:Mr,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Pr,tabIndex:Mr,tableValues:null,target:null,targetX:Mr,targetY:Mr,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Pr,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Mr,underlineThickness:Mr,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Mr,values:null,vAlphabetic:Mr,vMathematical:Mr,vectorEffect:null,vHanging:Mr,vIdeographic:Mr,version:null,vertAdvY:Mr,vertOriginX:Mr,vertOriginY:Mr,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Mr,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null}}),Jr=Sr([qr,Vr,Gr,Zr,Kr],"html"),Qr=Sr([qr,Vr,Gr,Zr,Xr],"svg"),to=no("start"),eo=no("end");function no(t){return function(e){const n=e&&e.position&&e.position[t]||{};return{line:n.line||null,column:n.column||null,offset:n.offset>-1?n.offset:null}}}const io={}.hasOwnProperty;function ao(t,e){const n=e||{};return(""===t[t.length-1]?[...t,""]:t).join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}const ro=/^data[-\w.:]+$/i,oo=/-[a-z]/g,so=/[A-Z]/g;function co(t,e){const n=Tr(e);let i=e,a=Ar;if(n in t.normal)return t.property[t.normal[n]];if(n.length>4&&"data"===n.slice(0,4)&&ro.test(e)){if("-"===e.charAt(4)){const t=e.slice(5).replace(oo,uo);i="data"+t.charAt(0).toUpperCase()+t.slice(1)}else{const t=e.slice(4);if(!oo.test(t)){let n=t.replace(so,lo);"-"!==n.charAt(0)&&(n="-"+n),e="data"+n}}a=$r}return new a(i,e)}function lo(t){return"-"+t.toLowerCase()}function uo(t){return t.charAt(1).toUpperCase()}const ho={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};const fo=n(52897),go={}.hasOwnProperty,po=/[A-Z]/g,bo=/-([a-z])/g;function mo(t,e){const n={};try{fo(t,(function(t,e){let i=t;"--"!==i.slice(0,2)&&("-ms-"===i.slice(0,4)&&(i="ms-"+i.slice(4)),i=i.replace(bo,vo));n[i]=e}))}catch(i){const t=i;throw t.message=e+"[style]"+t.message.slice("undefined".length),i}return n}function yo(t){const e={};let n;for(n in t)if(go.call(t,n)){let i=n.replace(po,wo);"ms-"===i.slice(0,3)&&(i="-"+i),e[i]=t[n]}return e}function vo(t,e){return e.toUpperCase()}function wo(t){return"-"+t.toLowerCase()}function xo(t){let e=-1;for(;++e<t.length;)if(!(e?n:He)(t.charCodeAt(e)))return!1;return e>0;function n(t){return Ue(t)||45===t}}const Ro={}.hasOwnProperty;function _o(t,e){const n=(e||[]).concat().sort(Co);return n.length>0&&ko(t,{comments:n,index:0}),t}function ko(t,e){if(e.index===e.comments.length)return;const n=[],i=[];let a;for(a in t)if(Ro.call(t,a)){const e=t[a];if(e&&"object"==typeof e&&"comments"!==a)if(Array.isArray(e)){let t=-1;for(;++t<e.length;)e[t]&&"string"==typeof e[t].type&&n.push(e[t])}else"string"==typeof e.type&&n.push(e)}n.sort(Co),i.push(...Eo(e,t,!1,{leading:!0,trailing:!1}));let r=-1;for(;++r<n.length;)ko(n[r],e);i.push(...Eo(e,t,!0,{leading:!1,trailing:n.length>0})),i.length>0&&(t.comments=i)}function Eo(t,e,n,i){const a=[];for(;t.comments[t.index]&&Co(t.comments[t.index],e,n)<1;)a.push(Object.assign({},t.comments[t.index++],i));return a}function Co(t,e,n){const i=n?"end":"start";return t.range&&e.range?t.range[0]-e.range[n?1:0]:t.loc&&t.loc.start&&e.loc&&e.loc[i]?t.loc.start.line-e.loc[i].line||t.loc.start.column-e.loc[i].column:"start"in t&&i in e?t.start-e[i]:Number.NaN}function So(t,e){const n=t.data&&t.data.estree,i=n&&n.comments||[];let a;n&&(e.comments.push(...i),_o(n,n.comments),a=n.body[0]&&"ExpressionStatement"===n.body[0].type&&n.body[0].expression||void 0),a||(a={type:"JSXEmptyExpression"},e.patch(t,a));const r={type:"JSXExpressionContainer",expression:a};return e.inherit(t,r),r}function To(t,e){const n=e.schema;let i=n;const a=t.attributes||[];let r=-1;t.name&&"html"===n.space&&"svg"===t.name.toLowerCase()&&(i=Qr,e.schema=i);const o=e.all(t),s=[];for(;++r<a.length;){const t=a[r],n=t.value;let i;if("mdxJsxAttribute"===t.type){if(null==n)i=null;else if("object"==typeof n){const t=n.data&&n.data.estree,a=t&&t.comments||[];let r;t&&(e.comments.push(...a),_o(t,t.comments),r=t.body[0]&&"ExpressionStatement"===t.body[0].type&&t.body[0].expression||void 0),i={type:"JSXExpressionContainer",expression:r||{type:"JSXEmptyExpression"}},e.inherit(n,i)}else i={type:"Literal",value:String(n)};const a={type:"JSXAttribute",name:e.createJsxAttributeName(t.name),value:i};e.inherit(t,a),s.push(a)}else{const n=t.data&&t.data.estree,i=n&&n.comments||[];let a;n&&(e.comments.push(...i),_o(n,n.comments),a=n.body[0]&&"ExpressionStatement"===n.body[0].type&&n.body[0].expression&&"ObjectExpression"===n.body[0].expression.type&&n.body[0].expression.properties&&n.body[0].expression.properties[0]&&"SpreadElement"===n.body[0].expression.properties[0].type&&n.body[0].expression.properties[0].argument||void 0);const r={type:"JSXSpreadAttribute",argument:a||{type:"ObjectExpression",properties:[]}};e.inherit(t,r),s.push(r)}}e.schema=n;const c=t.name?{type:"JSXElement",openingElement:{type:"JSXOpeningElement",attributes:s,name:e.createJsxElementName(t.name),selfClosing:0===o.length},closingElement:o.length>0?{type:"JSXClosingElement",name:e.createJsxElementName(t.name)}:null,children:o}:{type:"JSXFragment",openingFragment:{type:"JSXOpeningFragment"},closingFragment:{type:"JSXClosingFragment"},children:o};return e.inherit(t,c),c}function Ao(t){const e=t&&"object"==typeof t&&"text"===t.type?t.value||"":t;return"string"==typeof e&&""===e.replace(/[ \t\n\f\r]/g,"")}const Do={comment:function(t,e){const n={type:"Block",value:t.value};e.inherit(t,n),e.comments.push(n);const i={type:"JSXEmptyExpression",comments:[Object.assign({},n,{leading:!1,trailing:!0})]};e.patch(t,i);const a={type:"JSXExpressionContainer",expression:i};return e.patch(t,a),a},doctype:function(){},element:function(t,e){const n=e.schema;let i=n;const a=t.properties||{};"html"===n.space&&"svg"===t.tagName.toLowerCase()&&(i=Qr,e.schema=i);const r=e.all(t),o=[];let s;for(s in a)if(go.call(a,s)){let n=a[s];const r=co(i,s);let c;if(null==n||"number"==typeof n&&Number.isNaN(n)||!1===n||!n&&r.boolean)continue;if(s="react"===e.elementAttributeNameCase&&r.space?ho[r.property]||r.property:r.attribute,Array.isArray(n)&&(n=r.commaSeparated?ao(n):n.join(" ").trim()),"style"===s){let i="object"==typeof n?n:mo(String(n),t.tagName);"css"===e.stylePropertyNameCase&&(i=yo(i));const a=[];let r;for(r in i)go.call(i,r)&&a.push({type:"Property",method:!1,shorthand:!1,computed:!1,key:Ve(r)?{type:"Identifier",name:r}:{type:"Literal",value:r},value:{type:"Literal",value:String(i[r])},kind:"init"});c={type:"JSXExpressionContainer",expression:{type:"ObjectExpression",properties:a}}}else c=!0===n?null:{type:"Literal",value:String(n)};xo(s)?o.push({type:"JSXAttribute",name:{type:"JSXIdentifier",name:s},value:c}):o.push({type:"JSXSpreadAttribute",argument:{type:"ObjectExpression",properties:[{type:"Property",method:!1,shorthand:!1,computed:!1,key:{type:"Literal",value:String(s)},value:c||{type:"Literal",value:!0},kind:"init"}]}})}e.schema=n;const c={type:"JSXElement",openingElement:{type:"JSXOpeningElement",attributes:o,name:e.createJsxElementName(t.tagName),selfClosing:0===r.length},closingElement:r.length>0?{type:"JSXClosingElement",name:e.createJsxElementName(t.tagName)}:null,children:r};return e.inherit(t,c),c},mdxFlowExpression:So,mdxTextExpression:So,mdxJsxFlowElement:To,mdxJsxTextElement:To,mdxjsEsm:function(t,e){const n=t.data&&t.data.estree,i=n&&n.comments||[];n&&(e.comments.push(...i),_o(n,i),e.esm.push(...n.body))},text:function(t,e){const n=String(t.value||"");if(n){const i={type:"Literal",value:n};e.inherit(t,i);const a={type:"JSXExpressionContainer",expression:i};return e.patch(t,a),a}},root:function(t,e){const n=e.all(t),i=[];let a,r=-1;for(;++r<n.length;){const t=n[r];"JSXExpressionContainer"===t.type&&"Literal"===t.expression.type&&Ao(t.expression.value)?a&&a.push(t):(a&&i.push(...a),i.push(t),a=[])}const o={type:"JSXFragment",openingFragment:{type:"JSXOpeningFragment"},closingFragment:{type:"JSXClosingFragment"},children:i};return e.inherit(t,o),o}};const Io={}.hasOwnProperty,Lo=new Set(["table","thead","tbody","tfoot","tr"]);function Oo(t){const e=function(t,e){const n=e||{};function i(e,...n){let a=i.invalid;const r=i.handlers;if(e&&io.call(e,t)){const n=String(e[t]);a=io.call(r,n)?r[n]:i.unknown}if(a)return a.call(this,e,...n)}return i.handlers=n.handlers||{},i.invalid=n.invalid,i.unknown=n.unknown,i}("type",{invalid:Mo,unknown:No,handlers:{...Do,...t.handlers}});return{schema:"svg"===t.space?Qr:Jr,elementAttributeNameCase:t.elementAttributeNameCase||"react",stylePropertyNameCase:t.stylePropertyNameCase||"dom",comments:[],esm:[],handle:function(t){return e(t,this)},all:Bo,patch:Fo,inherit:Po,createJsxAttributeName:jo,createJsxElementName:$o}}function Mo(t){throw new Error("Cannot handle value `"+t+"`, expected node")}function No(t){throw new Error("Cannot handle unknown node `"+t.type+"`")}function Bo(t){const e=t.children||[];let n=-1;const i=[],a="html"===this.schema.space&&"element"===t.type&&Lo.has(t.tagName.toLowerCase());for(;++n<e.length;){const t=e[n];if(a&&"text"===t.type&&"\n"===t.value)continue;const r=this.handle(t);Array.isArray(r)?i.push(...r):r&&i.push(r)}return i}function Po(t,e){const n=t.data;let i,a;if(Fo(t,e),n){for(a in n)Io.call(n,a)&&"estree"!==a&&(i||(i={}),i[a]=n[a]);i&&(e.data=i)}}function Fo(t,e){const n=function(t){return{start:to(t),end:eo(t)}}(t);n.start.line&&void 0!==n.start.offset&&void 0!==n.end.offset&&(e.start=n.start.offset,e.end=n.end.offset,e.loc={start:{line:n.start.line,column:n.start.column-1},end:{line:n.end.line,column:n.end.column-1}},e.range=[n.start.offset,n.end.offset])}function jo(t){const e=zo(t);if("JSXMemberExpression"===e.type)throw new Error("Member expressions in attribute names are not supported");return e}function $o(t){return zo(t)}function zo(t){if(t.includes(".")){const e=t.split(".");let n=e.shift(),i={type:"JSXIdentifier",name:n};for(;n=e.shift();)i={type:"JSXMemberExpression",object:i,property:{type:"JSXIdentifier",name:n}};return i}if(t.includes(":")){const e=t.split(":");return{type:"JSXNamespacedName",namespace:{type:"JSXIdentifier",name:e[0]},name:{type:"JSXIdentifier",name:e[1]}}}return{type:"JSXIdentifier",name:t}}function Ho(t){return e=>function(t,e){const n=Oo(e||{});let i=n.handle(t);const a=n.esm;if(i){"JSXFragment"!==i.type&&"JSXElement"!==i.type&&(i={type:"JSXFragment",openingFragment:{type:"JSXOpeningFragment"},closingFragment:{type:"JSXClosingFragment"},children:[i]},n.patch(t,i));const e={type:"ExpressionStatement",expression:i};n.patch(t,e),a.push(e)}const r={type:"Program",body:a,sourceType:"module",comments:n.comments};return n.patch(t,r),r}(e,t)}const Uo=function(t,e,n,i){"function"==typeof e&&"function"!=typeof n&&(i=n,n=e,e=null),(0,ia.S4)(t,e,(function(t,e){const i=e[e.length-1];return n(t,i?i.children.indexOf(t):null,i)}),i)};function Vo(){return t=>{Uo(t,"raw",((t,e,n)=>{if(n&&"number"==typeof e)return n.children.splice(e,1),e}))}}function qo(){return t=>{Uo(t,((t,e,n)=>{let i=-1,a=!0,r=!1;if(n&&"number"==typeof e&&"paragraph"===t.type){const o=t.children;for(;++i<o.length;){const t=o[i];if("mdxJsxTextElement"===t.type||"mdxTextExpression"===t.type)r=!0;else if("text"!==t.type||!/^[\t\r\n ]+$/.test(String(t.value))){a=!1;break}}if(a&&r){i=-1;const t=[];for(;++i<o.length;){const e=o[i];"mdxJsxTextElement"===e.type&&(e.type="mdxJsxFlowElement"),"mdxTextExpression"===e.type&&(e.type="mdxFlowExpression"),"text"===e.type&&/^[\t\r\n ]+$/.test(String(e.value))||t.push(e)}return n.children.splice(e,1,...t),e}}if("mdxJsxFlowElement"===t.type||"mdxJsxTextElement"===t.type){(t.data||(t.data={}))._mdxExplicitJsx=!0}}))}}const Wo=["mdxFlowExpression","mdxJsxFlowElement","mdxJsxTextElement","mdxTextExpression","mdxjsEsm"],Yo=["filepath","compilers","hastPlugins","mdPlugins","skipExport","wrapExport"];function Go(t){const{development:e,jsx:n,format:i,outputFormat:a,providerImportSource:r,recmaPlugins:o,rehypePlugins:s,remarkPlugins:c,remarkRehypeOptions:l,elementAttributeNameCase:u,stylePropertyNameCase:d,SourceMapGenerator:h,...f}=t||{},g=null!=e&&e;let p=-1;for(;++p<Yo.length;){const e=Yo[p];if(t&&e in t)throw new Error("`options."+e+"` is no longer supported. Please see <https://mdxjs.com/migrating/v2/> for more information")}if("detect"===i)throw new Error("Incorrect `format: 'detect'`: `createProcessor` can support either `md` or `mdx`; it does not support detecting the format");const b=E().use(ea);"md"!==i&&b.use(In);const m=l&&l.passThrough||[];return b.use(qo).use(c||[]).use(Ea,{...l,allowDangerousHtml:!0,passThrough:[...m,...Wo]}).use(s||[]),"md"===i&&b.use(Vo),b.use(Ho,{elementAttributeNameCase:u,stylePropertyNameCase:d}).use(Za,{...f,outputFormat:a}).use(Ja,{development:g,providerImportSource:r,outputFormat:a}),n||b.use($a,{development:g,outputFormat:a}),b.use(Er,{SourceMapGenerator:h}).use(o||[]),b}const Zo={basename:function(t,e){if(void 0!==e&&"string"!=typeof e)throw new TypeError('"ext" argument must be a string');Ko(t);let n,i=0,a=-1,r=t.length;if(void 0===e||0===e.length||e.length>t.length){for(;r--;)if(47===t.charCodeAt(r)){if(n){i=r+1;break}}else a<0&&(n=!0,a=r+1);return a<0?"":t.slice(i,a)}if(e===t)return"";let o=-1,s=e.length-1;for(;r--;)if(47===t.charCodeAt(r)){if(n){i=r+1;break}}else o<0&&(n=!0,o=r+1),s>-1&&(t.charCodeAt(r)===e.charCodeAt(s--)?s<0&&(a=r):(s=-1,a=o));i===a?a=o:a<0&&(a=t.length);return t.slice(i,a)},dirname:function(t){if(Ko(t),0===t.length)return".";let e,n=-1,i=t.length;for(;--i;)if(47===t.charCodeAt(i)){if(e){n=i;break}}else e||(e=!0);return n<0?47===t.charCodeAt(0)?"/":".":1===n&&47===t.charCodeAt(0)?"//":t.slice(0,n)},extname:function(t){Ko(t);let e,n=t.length,i=-1,a=0,r=-1,o=0;for(;n--;){const s=t.charCodeAt(n);if(47!==s)i<0&&(e=!0,i=n+1),46===s?r<0?r=n:1!==o&&(o=1):r>-1&&(o=-1);else if(e){a=n+1;break}}if(r<0||i<0||0===o||1===o&&r===i-1&&r===a+1)return"";return t.slice(r,i)},join:function(...t){let e,n=-1;for(;++n<t.length;)Ko(t[n]),t[n]&&(e=void 0===e?t[n]:e+"/"+t[n]);return void 0===e?".":function(t){Ko(t);const e=47===t.charCodeAt(0);let n=function(t,e){let n,i,a="",r=0,o=-1,s=0,c=-1;for(;++c<=t.length;){if(c<t.length)n=t.charCodeAt(c);else{if(47===n)break;n=47}if(47===n){if(o===c-1||1===s);else if(o!==c-1&&2===s){if(a.length<2||2!==r||46!==a.charCodeAt(a.length-1)||46!==a.charCodeAt(a.length-2))if(a.length>2){if(i=a.lastIndexOf("/"),i!==a.length-1){i<0?(a="",r=0):(a=a.slice(0,i),r=a.length-1-a.lastIndexOf("/")),o=c,s=0;continue}}else if(a.length>0){a="",r=0,o=c,s=0;continue}e&&(a=a.length>0?a+"/..":"..",r=2)}else a.length>0?a+="/"+t.slice(o+1,c):a=t.slice(o+1,c),r=c-o-1;o=c,s=0}else 46===n&&s>-1?s++:s=-1}return a}(t,!e);0!==n.length||e||(n=".");n.length>0&&47===t.charCodeAt(t.length-1)&&(n+="/");return e?"/"+n:n}(e)},sep:"/"};function Ko(t){if("string"!=typeof t)throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}const Xo={cwd:function(){return"/"}};function Jo(t){return null!==t&&"object"==typeof t&&t.href&&t.origin}function Qo(t){if("string"==typeof t)t=new URL(t);else if(!Jo(t)){const e=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+t+"`");throw e.code="ERR_INVALID_ARG_TYPE",e}if("file:"!==t.protocol){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return function(t){if(""!==t.hostname){const t=new TypeError('File URL host must be "localhost" or empty on darwin');throw t.code="ERR_INVALID_FILE_URL_HOST",t}const e=t.pathname;let n=-1;for(;++n<e.length;)if(37===e.charCodeAt(n)&&50===e.charCodeAt(n+1)){const t=e.charCodeAt(n+2);if(70===t||102===t){const t=new TypeError("File URL path must not include encoded / characters");throw t.code="ERR_INVALID_FILE_URL_PATH",t}}return decodeURIComponent(e)}(t)}const ts=["history","path","basename","stem","extname","dirname"];class es{constructor(t){let e;e=t?"string"==typeof t||function(t){return o(t)}(t)?{value:t}:Jo(t)?{path:t}:t:{},this.data={},this.messages=[],this.history=[],this.cwd=Xo.cwd(),this.value,this.stored,this.result,this.map;let n,i=-1;for(;++i<ts.length;){const t=ts[i];t in e&&void 0!==e[t]&&null!==e[t]&&(this[t]="history"===t?[...e[t]]:e[t])}for(n in e)ts.includes(n)||(this[n]=e[n])}get path(){return this.history[this.history.length-1]}set path(t){Jo(t)&&(t=Qo(t)),is(t,"path"),this.path!==t&&this.history.push(t)}get dirname(){return"string"==typeof this.path?Zo.dirname(this.path):void 0}set dirname(t){as(this.basename,"dirname"),this.path=Zo.join(t||"",this.basename)}get basename(){return"string"==typeof this.path?Zo.basename(this.path):void 0}set basename(t){is(t,"basename"),ns(t,"basename"),this.path=Zo.join(this.dirname||"",t)}get extname(){return"string"==typeof this.path?Zo.extname(this.path):void 0}set extname(t){if(ns(t,"extname"),as(this.dirname,"extname"),t){if(46!==t.charCodeAt(0))throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=Zo.join(this.dirname,this.stem+(t||""))}get stem(){return"string"==typeof this.path?Zo.basename(this.path,this.extname):void 0}set stem(t){is(t,"stem"),ns(t,"stem"),this.path=Zo.join(this.dirname||"",t+(this.extname||""))}toString(t){return(this.value||"").toString(t||void 0)}message(t,e,n){const i=new g(t,e,n);return this.path&&(i.name=this.path+":"+i.name,i.file=this.path),i.fatal=!1,this.messages.push(i),i}info(t,e,n){const i=this.message(t,e,n);return i.fatal=null,i}fail(t,e,n){const i=this.message(t,e,n);throw i.fatal=!0,i}}function ns(t,e){if(t&&t.includes(Zo.sep))throw new Error("`"+e+"` cannot be a path: did not expect `"+Zo.sep+"`")}function is(t,e){if(!t)throw new Error("`"+e+"` cannot be empty")}function as(t,e){if(!t)throw new Error("Setting `"+e+"` requires `path` to be set too")}const rs=n(26024).map((t=>"."+t));function os(t,e){const n=(i=t,Boolean(i&&"object"==typeof i&&"message"in i&&"messages"in i)?t:new es(t));var i;const{format:a,...r}=e||{};return{file:n,options:{format:"md"===a||"mdx"===a?a:n.extname&&(r.mdExtensions||rs).includes(n.extname)?"md":"mdx",...r}}}function ss(t,e){const{file:n,options:i}=os(t,e);return Go(i).process(n)}function cs(t,e){const{file:n,options:i}=os(t,e);return Go(i).processSync(n)}},64777:(t,e,n)=>{"use strict";function i(t,e){const n=String(t);if("string"!=typeof e)throw new TypeError("Expected character");let i=0,a=n.indexOf(e);for(;-1!==a;)i++,a=n.indexOf(e,a+e.length);return i}n.d(e,{w:()=>i})},59373:(t,e,n)=>{"use strict";function i(t,e){let n;if(void 0===e)for(const i of t)null!=i&&(n<i||void 0===n&&i>=i)&&(n=i);else{let i=-1;for(let a of t)null!=(a=e(a,++i,t))&&(n<a||void 0===n&&a>=a)&&(n=a)}return n}function a(t,e){let n;if(void 0===e)for(const i of t)null!=i&&(n>i||void 0===n&&i>=i)&&(n=i);else{let i=-1;for(let a of t)null!=(a=e(a,++i,t))&&(n>a||void 0===n&&a>=a)&&(n=a)}return n}function r(t){return t}n.d(e,{Nb1:()=>os,LLu:()=>g,F5q:()=>f,$0Z:()=>vs,Dts:()=>xs,WQY:()=>_s,qpX:()=>Es,u93:()=>Cs,tFB:()=>Ts,YY7:()=>Is,OvA:()=>Os,dCK:()=>Ns,zgE:()=>Fs,fGX:()=>$s,$m7:()=>Hs,c_6:()=>ls,fxm:()=>Vs,FdL:()=>Js,ak_:()=>Qs,SxZ:()=>nc,eA_:()=>ac,jsv:()=>oc,iJ:()=>rc,JHv:()=>hi,jvg:()=>hs,Fp7:()=>i,VV$:()=>a,ve8:()=>ps,BYU:()=>ra,PKp:()=>ha,Xf:()=>Ao,Ys:()=>Do,td_:()=>Io,YPS:()=>Yn,rr1:()=>Aa,i$Z:()=>sr,WQD:()=>Sa,Z_i:()=>Ea,F0B:()=>Ga,NGh:()=>Oa});var o=1e-6;function s(t){return"translate("+t+",0)"}function c(t){return"translate(0,"+t+")"}function l(t){return e=>+t(e)}function u(t,e){return e=Math.max(0,t.bandwidth()-2*e)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function d(){return!this.__axis}function h(t,e){var n=[],i=null,a=null,h=6,f=6,g=3,p="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,b=1===t||4===t?-1:1,m=4===t||2===t?"x":"y",y=1===t||3===t?s:c;function v(s){var c=null==i?e.ticks?e.ticks.apply(e,n):e.domain():i,v=null==a?e.tickFormat?e.tickFormat.apply(e,n):r:a,w=Math.max(h,0)+g,x=e.range(),R=+x[0]+p,_=+x[x.length-1]+p,k=(e.bandwidth?u:l)(e.copy(),p),E=s.selection?s.selection():s,C=E.selectAll(".domain").data([null]),S=E.selectAll(".tick").data(c,e).order(),T=S.exit(),A=S.enter().append("g").attr("class","tick"),D=S.select("line"),I=S.select("text");C=C.merge(C.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),S=S.merge(A),D=D.merge(A.append("line").attr("stroke","currentColor").attr(m+"2",b*h)),I=I.merge(A.append("text").attr("fill","currentColor").attr(m,b*w).attr("dy",1===t?"0em":3===t?"0.71em":"0.32em")),s!==E&&(C=C.transition(s),S=S.transition(s),D=D.transition(s),I=I.transition(s),T=T.transition(s).attr("opacity",o).attr("transform",(function(t){return isFinite(t=k(t))?y(t+p):this.getAttribute("transform")})),A.attr("opacity",o).attr("transform",(function(t){var e=this.parentNode.__axis;return y((e&&isFinite(e=e(t))?e:k(t))+p)}))),T.remove(),C.attr("d",4===t||2===t?f?"M"+b*f+","+R+"H"+p+"V"+_+"H"+b*f:"M"+p+","+R+"V"+_:f?"M"+R+","+b*f+"V"+p+"H"+_+"V"+b*f:"M"+R+","+p+"H"+_),S.attr("opacity",1).attr("transform",(function(t){return y(k(t)+p)})),D.attr(m+"2",b*h),I.attr(m,b*w).text(v),E.filter(d).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",2===t?"start":4===t?"end":"middle"),E.each((function(){this.__axis=k}))}return v.scale=function(t){return arguments.length?(e=t,v):e},v.ticks=function(){return n=Array.from(arguments),v},v.tickArguments=function(t){return arguments.length?(n=null==t?[]:Array.from(t),v):n.slice()},v.tickValues=function(t){return arguments.length?(i=null==t?null:Array.from(t),v):i&&i.slice()},v.tickFormat=function(t){return arguments.length?(a=t,v):a},v.tickSize=function(t){return arguments.length?(h=f=+t,v):h},v.tickSizeInner=function(t){return arguments.length?(h=+t,v):h},v.tickSizeOuter=function(t){return arguments.length?(f=+t,v):f},v.tickPadding=function(t){return arguments.length?(g=+t,v):g},v.offset=function(t){return arguments.length?(p=+t,v):p},v}function f(t){return h(1,t)}function g(t){return h(3,t)}function p(){}function b(t){return null==t?p:function(){return this.querySelector(t)}}function m(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function y(){return[]}function v(t){return null==t?y:function(){return this.querySelectorAll(t)}}function w(t){return function(){return this.matches(t)}}function x(t){return function(e){return e.matches(t)}}var R=Array.prototype.find;function _(){return this.firstElementChild}var k=Array.prototype.filter;function E(){return Array.from(this.children)}function C(t){return new Array(t.length)}function S(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function T(t){return function(){return t}}function A(t,e,n,i,a,r){for(var o,s=0,c=e.length,l=r.length;s<l;++s)(o=e[s])?(o.__data__=r[s],i[s]=o):n[s]=new S(t,r[s]);for(;s<c;++s)(o=e[s])&&(a[s]=o)}function D(t,e,n,i,a,r,o){var s,c,l,u=new Map,d=e.length,h=r.length,f=new Array(d);for(s=0;s<d;++s)(c=e[s])&&(f[s]=l=o.call(c,c.__data__,s,e)+"",u.has(l)?a[s]=c:u.set(l,c));for(s=0;s<h;++s)l=o.call(t,r[s],s,r)+"",(c=u.get(l))?(i[s]=c,c.__data__=r[s],u.delete(l)):n[s]=new S(t,r[s]);for(s=0;s<d;++s)(c=e[s])&&u.get(f[s])===c&&(a[s]=c)}function I(t){return t.__data__}function L(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function O(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}S.prototype={constructor:S,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var M="http://www.w3.org/1999/xhtml";const N={svg:"http://www.w3.org/2000/svg",xhtml:M,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function B(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),N.hasOwnProperty(e)?{space:N[e],local:t}:t}function P(t){return function(){this.removeAttribute(t)}}function F(t){return function(){this.removeAttributeNS(t.space,t.local)}}function j(t,e){return function(){this.setAttribute(t,e)}}function $(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function z(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function H(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function U(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function V(t){return function(){this.style.removeProperty(t)}}function q(t,e,n){return function(){this.style.setProperty(t,e,n)}}function W(t,e,n){return function(){var i=e.apply(this,arguments);null==i?this.style.removeProperty(t):this.style.setProperty(t,i,n)}}function Y(t,e){return t.style.getPropertyValue(e)||U(t).getComputedStyle(t,null).getPropertyValue(e)}function G(t){return function(){delete this[t]}}function Z(t,e){return function(){this[t]=e}}function K(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function X(t){return t.trim().split(/^|\s+/)}function J(t){return t.classList||new Q(t)}function Q(t){this._node=t,this._names=X(t.getAttribute("class")||"")}function tt(t,e){for(var n=J(t),i=-1,a=e.length;++i<a;)n.add(e[i])}function et(t,e){for(var n=J(t),i=-1,a=e.length;++i<a;)n.remove(e[i])}function nt(t){return function(){tt(this,t)}}function it(t){return function(){et(this,t)}}function at(t,e){return function(){(e.apply(this,arguments)?tt:et)(this,t)}}function rt(){this.textContent=""}function ot(t){return function(){this.textContent=t}}function st(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function ct(){this.innerHTML=""}function lt(t){return function(){this.innerHTML=t}}function ut(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function dt(){this.nextSibling&&this.parentNode.appendChild(this)}function ht(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ft(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===M&&e.documentElement.namespaceURI===M?e.createElement(t):e.createElementNS(n,t)}}function gt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function pt(t){var e=B(t);return(e.local?gt:ft)(e)}function bt(){return null}function mt(){var t=this.parentNode;t&&t.removeChild(this)}function yt(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function vt(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function wt(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}function xt(t){return function(){var e=this.__on;if(e){for(var n,i=0,a=-1,r=e.length;i<r;++i)n=e[i],t.type&&n.type!==t.type||n.name!==t.name?e[++a]=n:this.removeEventListener(n.type,n.listener,n.options);++a?e.length=a:delete this.__on}}}function Rt(t,e,n){return function(){var i,a=this.__on,r=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(a)for(var o=0,s=a.length;o<s;++o)if((i=a[o]).type===t.type&&i.name===t.name)return this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=r,i.options=n),void(i.value=e);this.addEventListener(t.type,r,n),i={type:t.type,name:t.name,value:e,listener:r,options:n},a?a.push(i):this.__on=[i]}}function _t(t,e,n){var i=U(t),a=i.CustomEvent;"function"==typeof a?a=new a(e,n):(a=i.document.createEvent("Event"),n?(a.initEvent(e,n.bubbles,n.cancelable),a.detail=n.detail):a.initEvent(e,!1,!1)),t.dispatchEvent(a)}function kt(t,e){return function(){return _t(this,t,e)}}function Et(t,e){return function(){return _t(this,t,e.apply(this,arguments))}}Q.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Ct=[null];function St(t,e){this._groups=t,this._parents=e}function Tt(){return new St([[document.documentElement]],Ct)}St.prototype=Tt.prototype={constructor:St,select:function(t){"function"!=typeof t&&(t=b(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o,s=e[a],c=s.length,l=i[a]=new Array(c),u=0;u<c;++u)(r=s[u])&&(o=t.call(r,r.__data__,u,s))&&("__data__"in r&&(o.__data__=r.__data__),l[u]=o);return new St(i,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return m(t.apply(this,arguments))}}(t):v(t);for(var e=this._groups,n=e.length,i=[],a=[],r=0;r<n;++r)for(var o,s=e[r],c=s.length,l=0;l<c;++l)(o=s[l])&&(i.push(t.call(o,o.__data__,l,s)),a.push(o));return new St(i,a)},selectChild:function(t){return this.select(null==t?_:function(t){return function(){return R.call(this.children,t)}}("function"==typeof t?t:x(t)))},selectChildren:function(t){return this.selectAll(null==t?E:function(t){return function(){return k.call(this.children,t)}}("function"==typeof t?t:x(t)))},filter:function(t){"function"!=typeof t&&(t=w(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o=e[a],s=o.length,c=i[a]=[],l=0;l<s;++l)(r=o[l])&&t.call(r,r.__data__,l,o)&&c.push(r);return new St(i,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,I);var n=e?D:A,i=this._parents,a=this._groups;"function"!=typeof t&&(t=T(t));for(var r=a.length,o=new Array(r),s=new Array(r),c=new Array(r),l=0;l<r;++l){var u=i[l],d=a[l],h=d.length,f=L(t.call(u,u&&u.__data__,l,i)),g=f.length,p=s[l]=new Array(g),b=o[l]=new Array(g),m=c[l]=new Array(h);n(u,d,p,b,m,f,e);for(var y,v,w=0,x=0;w<g;++w)if(y=p[w]){for(w>=x&&(x=w+1);!(v=b[x])&&++x<g;);y._next=v||null}}return(o=new St(o,i))._enter=s,o._exit=c,o},enter:function(){return new St(this._enter||this._groups.map(C),this._parents)},exit:function(){return new St(this._exit||this._groups.map(C),this._parents)},join:function(t,e,n){var i=this.enter(),a=this,r=this.exit();return"function"==typeof t?(i=t(i))&&(i=i.selection()):i=i.append(t+""),null!=e&&(a=e(a))&&(a=a.selection()),null==n?r.remove():n(r),i&&a?i.merge(a).order():a},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,i=e._groups,a=n.length,r=i.length,o=Math.min(a,r),s=new Array(a),c=0;c<o;++c)for(var l,u=n[c],d=i[c],h=u.length,f=s[c]=new Array(h),g=0;g<h;++g)(l=u[g]||d[g])&&(f[g]=l);for(;c<a;++c)s[c]=n[c];return new St(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var i,a=t[e],r=a.length-1,o=a[r];--r>=0;)(i=a[r])&&(o&&4^i.compareDocumentPosition(o)&&o.parentNode.insertBefore(i,o),o=i);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=O);for(var n=this._groups,i=n.length,a=new Array(i),r=0;r<i;++r){for(var o,s=n[r],c=s.length,l=a[r]=new Array(c),u=0;u<c;++u)(o=s[u])&&(l[u]=o);l.sort(e)}return new St(a,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i=t[e],a=0,r=i.length;a<r;++a){var o=i[a];if(o)return o}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,i=e.length;n<i;++n)for(var a,r=e[n],o=0,s=r.length;o<s;++o)(a=r[o])&&t.call(a,a.__data__,o,r);return this},attr:function(t,e){var n=B(t);if(arguments.length<2){var i=this.node();return n.local?i.getAttributeNS(n.space,n.local):i.getAttribute(n)}return this.each((null==e?n.local?F:P:"function"==typeof e?n.local?H:z:n.local?$:j)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?V:"function"==typeof e?W:q)(t,e,null==n?"":n)):Y(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?G:"function"==typeof e?K:Z)(t,e)):this.node()[t]},classed:function(t,e){var n=X(t+"");if(arguments.length<2){for(var i=J(this.node()),a=-1,r=n.length;++a<r;)if(!i.contains(n[a]))return!1;return!0}return this.each(("function"==typeof e?at:e?nt:it)(n,e))},text:function(t){return arguments.length?this.each(null==t?rt:("function"==typeof t?st:ot)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?ct:("function"==typeof t?ut:lt)(t)):this.node().innerHTML},raise:function(){return this.each(dt)},lower:function(){return this.each(ht)},append:function(t){var e="function"==typeof t?t:pt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:pt(t),i=null==e?bt:"function"==typeof e?e:b(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),i.apply(this,arguments)||null)}))},remove:function(){return this.each(mt)},clone:function(t){return this.select(t?vt:yt)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var i,a,r=wt(t+""),o=r.length;if(!(arguments.length<2)){for(s=e?Rt:xt,i=0;i<o;++i)this.each(s(r[i],e,n));return this}var s=this.node().__on;if(s)for(var c,l=0,u=s.length;l<u;++l)for(i=0,c=s[l];i<o;++i)if((a=r[i]).type===c.type&&a.name===c.name)return c.value},dispatch:function(t,e){return this.each(("function"==typeof e?Et:kt)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var i,a=t[e],r=0,o=a.length;r<o;++r)(i=a[r])&&(yield i)}};const At=Tt;var Dt={value:()=>{}};function It(){for(var t,e=0,n=arguments.length,i={};e<n;++e){if(!(t=arguments[e]+"")||t in i||/[\s.]/.test(t))throw new Error("illegal type: "+t);i[t]=[]}return new Lt(i)}function Lt(t){this._=t}function Ot(t,e){return t.trim().split(/^|\s+/).map((function(t){var n="",i=t.indexOf(".");if(i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))}function Mt(t,e){for(var n,i=0,a=t.length;i<a;++i)if((n=t[i]).name===e)return n.value}function Nt(t,e,n){for(var i=0,a=t.length;i<a;++i)if(t[i].name===e){t[i]=Dt,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=n&&t.push({name:e,value:n}),t}Lt.prototype=It.prototype={constructor:Lt,on:function(t,e){var n,i=this._,a=Ot(t+"",i),r=-1,o=a.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++r<o;)if(n=(t=a[r]).type)i[n]=Nt(i[n],t.name,e);else if(null==e)for(n in i)i[n]=Nt(i[n],t.name,null);return this}for(;++r<o;)if((n=(t=a[r]).type)&&(n=Mt(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new Lt(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,i,a=new Array(n),r=0;r<n;++r)a[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(r=0,n=(i=this._[t]).length;r<n;++r)i[r].value.apply(e,a)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var i=this._[t],a=0,r=i.length;a<r;++a)i[a].value.apply(e,n)}};const Bt=It;var Pt,Ft,jt=0,$t=0,zt=0,Ht=0,Ut=0,Vt=0,qt="object"==typeof performance&&performance.now?performance:Date,Wt="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Yt(){return Ut||(Wt(Gt),Ut=qt.now()+Vt)}function Gt(){Ut=0}function Zt(){this._call=this._time=this._next=null}function Kt(t,e,n){var i=new Zt;return i.restart(t,e,n),i}function Xt(){Ut=(Ht=qt.now())+Vt,jt=$t=0;try{!function(){Yt(),++jt;for(var t,e=Pt;e;)(t=Ut-e._time)>=0&&e._call.call(void 0,t),e=e._next;--jt}()}finally{jt=0,function(){var t,e,n=Pt,i=1/0;for(;n;)n._call?(i>n._time&&(i=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Pt=e);Ft=t,Qt(i)}(),Ut=0}}function Jt(){var t=qt.now(),e=t-Ht;e>1e3&&(Vt-=e,Ht=t)}function Qt(t){jt||($t&&($t=clearTimeout($t)),t-Ut>24?(t<1/0&&($t=setTimeout(Xt,t-qt.now()-Vt)),zt&&(zt=clearInterval(zt))):(zt||(Ht=qt.now(),zt=setInterval(Jt,1e3)),jt=1,Wt(Xt)))}function te(t,e,n){var i=new Zt;return e=null==e?0:+e,i.restart((n=>{i.stop(),t(n+e)}),e,n),i}Zt.prototype=Kt.prototype={constructor:Zt,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?Yt():+n)+(null==e?0:+e),this._next||Ft===this||(Ft?Ft._next=this:Pt=this,Ft=this),this._call=t,this._time=n,Qt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Qt())}};var ee=Bt("start","end","cancel","interrupt"),ne=[];function ie(t,e,n,i,a,r){var o=t.__transition;if(o){if(n in o)return}else t.__transition={};!function(t,e,n){var i,a=t.__transition;function r(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}function o(r){var l,u,d,h;if(1!==n.state)return c();for(l in a)if((h=a[l]).name===n.name){if(3===h.state)return te(o);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete a[l]):+l<e&&(h.state=6,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete a[l])}if(te((function(){3===n.state&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(r))})),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(n.state=3,i=new Array(d=n.tween.length),l=0,u=-1;l<d;++l)(h=n.tween[l].value.call(t,t.__data__,n.index,n.group))&&(i[++u]=h);i.length=u+1}}function s(e){for(var a=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(c),n.state=5,1),r=-1,o=i.length;++r<o;)i[r].call(t,a);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete a[e],a)return;delete t.__transition}a[e]=n,n.timer=Kt(r,0,n.time)}(t,n,{name:e,index:i,group:a,on:ee,tween:ne,time:r.time,delay:r.delay,duration:r.duration,ease:r.ease,timer:null,state:0})}function ae(t,e){var n=oe(t,e);if(n.state>0)throw new Error("too late; already scheduled");return n}function re(t,e){var n=oe(t,e);if(n.state>3)throw new Error("too late; already running");return n}function oe(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function se(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var ce,le=180/Math.PI,ue={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function de(t,e,n,i,a,r){var o,s,c;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(c=t*n+e*i)&&(n-=t*c,i-=e*c),(s=Math.sqrt(n*n+i*i))&&(n/=s,i/=s,c/=s),t*i<e*n&&(t=-t,e=-e,c=-c,o=-o),{translateX:a,translateY:r,rotate:Math.atan2(e,t)*le,skewX:Math.atan(c)*le,scaleX:o,scaleY:s}}function he(t,e,n,i){function a(t){return t.length?t.pop()+" ":""}return function(r,o){var s=[],c=[];return r=t(r),o=t(o),function(t,i,a,r,o,s){if(t!==a||i!==r){var c=o.push("translate(",null,e,null,n);s.push({i:c-4,x:se(t,a)},{i:c-2,x:se(i,r)})}else(a||r)&&o.push("translate("+a+e+r+n)}(r.translateX,r.translateY,o.translateX,o.translateY,s,c),function(t,e,n,r){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),r.push({i:n.push(a(n)+"rotate(",null,i)-2,x:se(t,e)})):e&&n.push(a(n)+"rotate("+e+i)}(r.rotate,o.rotate,s,c),function(t,e,n,r){t!==e?r.push({i:n.push(a(n)+"skewX(",null,i)-2,x:se(t,e)}):e&&n.push(a(n)+"skewX("+e+i)}(r.skewX,o.skewX,s,c),function(t,e,n,i,r,o){if(t!==n||e!==i){var s=r.push(a(r)+"scale(",null,",",null,")");o.push({i:s-4,x:se(t,n)},{i:s-2,x:se(e,i)})}else 1===n&&1===i||r.push(a(r)+"scale("+n+","+i+")")}(r.scaleX,r.scaleY,o.scaleX,o.scaleY,s,c),r=o=null,function(t){for(var e,n=-1,i=c.length;++n<i;)s[(e=c[n]).i]=e.x(t);return s.join("")}}}var fe=he((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?ue:de(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),ge=he((function(t){return null==t?ue:(ce||(ce=document.createElementNS("http://www.w3.org/2000/svg","g")),ce.setAttribute("transform",t),(t=ce.transform.baseVal.consolidate())?de((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):ue)}),", ",")",")");function pe(t,e){var n,i;return function(){var a=re(this,t),r=a.tween;if(r!==n)for(var o=0,s=(i=n=r).length;o<s;++o)if(i[o].name===e){(i=i.slice()).splice(o,1);break}a.tween=i}}function be(t,e,n){var i,a;if("function"!=typeof n)throw new Error;return function(){var r=re(this,t),o=r.tween;if(o!==i){a=(i=o).slice();for(var s={name:e,value:n},c=0,l=a.length;c<l;++c)if(a[c].name===e){a[c]=s;break}c===l&&a.push(s)}r.tween=a}}function me(t,e,n){var i=t._id;return t.each((function(){var t=re(this,i);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return oe(t,i).value[e]}}function ye(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function ve(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function we(){}var xe=.7,Re=1/xe,_e="\\s*([+-]?\\d+)\\s*",ke="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ee="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ce=/^#([0-9a-f]{3,8})$/,Se=new RegExp(`^rgb\\(${_e},${_e},${_e}\\)$`),Te=new RegExp(`^rgb\\(${Ee},${Ee},${Ee}\\)$`),Ae=new RegExp(`^rgba\\(${_e},${_e},${_e},${ke}\\)$`),De=new RegExp(`^rgba\\(${Ee},${Ee},${Ee},${ke}\\)$`),Ie=new RegExp(`^hsl\\(${ke},${Ee},${Ee}\\)$`),Le=new RegExp(`^hsla\\(${ke},${Ee},${Ee},${ke}\\)$`),Oe={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function Me(){return this.rgb().formatHex()}function Ne(){return this.rgb().formatRgb()}function Be(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=Ce.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?Pe(e):3===n?new ze(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Fe(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Fe(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=Se.exec(t))?new ze(e[1],e[2],e[3],1):(e=Te.exec(t))?new ze(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=Ae.exec(t))?Fe(e[1],e[2],e[3],e[4]):(e=De.exec(t))?Fe(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=Ie.exec(t))?Ye(e[1],e[2]/100,e[3]/100,1):(e=Le.exec(t))?Ye(e[1],e[2]/100,e[3]/100,e[4]):Oe.hasOwnProperty(t)?Pe(Oe[t]):"transparent"===t?new ze(NaN,NaN,NaN,0):null}function Pe(t){return new ze(t>>16&255,t>>8&255,255&t,1)}function Fe(t,e,n,i){return i<=0&&(t=e=n=NaN),new ze(t,e,n,i)}function je(t){return t instanceof we||(t=Be(t)),t?new ze((t=t.rgb()).r,t.g,t.b,t.opacity):new ze}function $e(t,e,n,i){return 1===arguments.length?je(t):new ze(t,e,n,null==i?1:i)}function ze(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}function He(){return`#${We(this.r)}${We(this.g)}${We(this.b)}`}function Ue(){const t=Ve(this.opacity);return`${1===t?"rgb(":"rgba("}${qe(this.r)}, ${qe(this.g)}, ${qe(this.b)}${1===t?")":`, ${t})`}`}function Ve(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function qe(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function We(t){return((t=qe(t))<16?"0":"")+t.toString(16)}function Ye(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new Ze(t,e,n,i)}function Ge(t){if(t instanceof Ze)return new Ze(t.h,t.s,t.l,t.opacity);if(t instanceof we||(t=Be(t)),!t)return new Ze;if(t instanceof Ze)return t;var e=(t=t.rgb()).r/255,n=t.g/255,i=t.b/255,a=Math.min(e,n,i),r=Math.max(e,n,i),o=NaN,s=r-a,c=(r+a)/2;return s?(o=e===r?(n-i)/s+6*(n<i):n===r?(i-e)/s+2:(e-n)/s+4,s/=c<.5?r+a:2-r-a,o*=60):s=c>0&&c<1?0:o,new Ze(o,s,c,t.opacity)}function Ze(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}function Ke(t){return(t=(t||0)%360)<0?t+360:t}function Xe(t){return Math.max(0,Math.min(1,t||0))}function Je(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function Qe(t,e,n,i,a){var r=t*t,o=r*t;return((1-3*t+3*r-o)*e+(4-6*r+3*o)*n+(1+3*t+3*r-3*o)*i+o*a)/6}ye(we,Be,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Me,formatHex:Me,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Ge(this).formatHsl()},formatRgb:Ne,toString:Ne}),ye(ze,$e,ve(we,{brighter(t){return t=null==t?Re:Math.pow(Re,t),new ze(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?xe:Math.pow(xe,t),new ze(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ze(qe(this.r),qe(this.g),qe(this.b),Ve(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:He,formatHex:He,formatHex8:function(){return`#${We(this.r)}${We(this.g)}${We(this.b)}${We(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Ue,toString:Ue})),ye(Ze,(function(t,e,n,i){return 1===arguments.length?Ge(t):new Ze(t,e,n,null==i?1:i)}),ve(we,{brighter(t){return t=null==t?Re:Math.pow(Re,t),new Ze(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?xe:Math.pow(xe,t),new Ze(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,a=2*n-i;return new ze(Je(t>=240?t-240:t+120,a,i),Je(t,a,i),Je(t<120?t+240:t-120,a,i),this.opacity)},clamp(){return new Ze(Ke(this.h),Xe(this.s),Xe(this.l),Ve(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Ve(this.opacity);return`${1===t?"hsl(":"hsla("}${Ke(this.h)}, ${100*Xe(this.s)}%, ${100*Xe(this.l)}%${1===t?")":`, ${t})`}`}}));const tn=t=>()=>t;function en(t,e){return function(n){return t+n*e}}function nn(t){return 1==(t=+t)?an:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}}(e,n,t):tn(isNaN(e)?n:e)}}function an(t,e){var n=e-t;return n?en(t,n):tn(isNaN(t)?e:t)}const rn=function t(e){var n=nn(e);function i(t,e){var i=n((t=$e(t)).r,(e=$e(e)).r),a=n(t.g,e.g),r=n(t.b,e.b),o=an(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=a(e),t.b=r(e),t.opacity=o(e),t+""}}return i.gamma=t,i}(1);function on(t){return function(e){var n,i,a=e.length,r=new Array(a),o=new Array(a),s=new Array(a);for(n=0;n<a;++n)i=$e(e[n]),r[n]=i.r||0,o[n]=i.g||0,s[n]=i.b||0;return r=t(r),o=t(o),s=t(s),i.opacity=1,function(t){return i.r=r(t),i.g=o(t),i.b=s(t),i+""}}}on((function(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[i],r=t[i+1],o=i>0?t[i-1]:2*a-r,s=i<e-1?t[i+2]:2*r-a;return Qe((n-i/e)*e,o,a,r,s)}})),on((function(t){var e=t.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*e),a=t[(i+e-1)%e],r=t[i%e],o=t[(i+1)%e],s=t[(i+2)%e];return Qe((n-i/e)*e,a,r,o,s)}}));var sn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,cn=new RegExp(sn.source,"g");function ln(t,e){var n,i,a,r=sn.lastIndex=cn.lastIndex=0,o=-1,s=[],c=[];for(t+="",e+="";(n=sn.exec(t))&&(i=cn.exec(e));)(a=i.index)>r&&(a=e.slice(r,a),s[o]?s[o]+=a:s[++o]=a),(n=n[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:se(n,i)})),r=cn.lastIndex;return r<e.length&&(a=e.slice(r),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?function(t){return function(e){return t(e)+""}}(c[0].x):function(t){return function(){return t}}(e):(e=c.length,function(t){for(var n,i=0;i<e;++i)s[(n=c[i]).i]=n.x(t);return s.join("")})}function un(t,e){var n;return("number"==typeof e?se:e instanceof Be?rn:(n=Be(e))?(e=n,rn):ln)(t,e)}function dn(t){return function(){this.removeAttribute(t)}}function hn(t){return function(){this.removeAttributeNS(t.space,t.local)}}function fn(t,e,n){var i,a,r=n+"";return function(){var o=this.getAttribute(t);return o===r?null:o===i?a:a=e(i=o,n)}}function gn(t,e,n){var i,a,r=n+"";return function(){var o=this.getAttributeNS(t.space,t.local);return o===r?null:o===i?a:a=e(i=o,n)}}function pn(t,e,n){var i,a,r;return function(){var o,s,c=n(this);if(null!=c)return(o=this.getAttribute(t))===(s=c+"")?null:o===i&&s===a?r:(a=s,r=e(i=o,c));this.removeAttribute(t)}}function bn(t,e,n){var i,a,r;return function(){var o,s,c=n(this);if(null!=c)return(o=this.getAttributeNS(t.space,t.local))===(s=c+"")?null:o===i&&s===a?r:(a=s,r=e(i=o,c));this.removeAttributeNS(t.space,t.local)}}function mn(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function yn(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function vn(t,e){var n,i;function a(){var a=e.apply(this,arguments);return a!==i&&(n=(i=a)&&yn(t,a)),n}return a._value=e,a}function wn(t,e){var n,i;function a(){var a=e.apply(this,arguments);return a!==i&&(n=(i=a)&&mn(t,a)),n}return a._value=e,a}function xn(t,e){return function(){ae(this,t).delay=+e.apply(this,arguments)}}function Rn(t,e){return e=+e,function(){ae(this,t).delay=e}}function _n(t,e){return function(){re(this,t).duration=+e.apply(this,arguments)}}function kn(t,e){return e=+e,function(){re(this,t).duration=e}}function En(t,e){if("function"!=typeof e)throw new Error;return function(){re(this,t).ease=e}}function Cn(t,e,n){var i,a,r=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?ae:re;return function(){var o=r(this,t),s=o.on;s!==i&&(a=(i=s).copy()).on(e,n),o.on=a}}var Sn=At.prototype.constructor;function Tn(t){return function(){this.style.removeProperty(t)}}function An(t,e,n){return function(i){this.style.setProperty(t,e.call(this,i),n)}}function Dn(t,e,n){var i,a;function r(){var r=e.apply(this,arguments);return r!==a&&(i=(a=r)&&An(t,r,n)),i}return r._value=e,r}function In(t){return function(e){this.textContent=t.call(this,e)}}function Ln(t){var e,n;function i(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&In(i)),e}return i._value=t,i}var On=0;function Mn(t,e,n,i){this._groups=t,this._parents=e,this._name=n,this._id=i}function Nn(){return++On}var Bn=At.prototype;Mn.prototype=function(t){return At().transition(t)}.prototype={constructor:Mn,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=b(t));for(var i=this._groups,a=i.length,r=new Array(a),o=0;o<a;++o)for(var s,c,l=i[o],u=l.length,d=r[o]=new Array(u),h=0;h<u;++h)(s=l[h])&&(c=t.call(s,s.__data__,h,l))&&("__data__"in s&&(c.__data__=s.__data__),d[h]=c,ie(d[h],e,n,h,d,oe(s,n)));return new Mn(r,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=v(t));for(var i=this._groups,a=i.length,r=[],o=[],s=0;s<a;++s)for(var c,l=i[s],u=l.length,d=0;d<u;++d)if(c=l[d]){for(var h,f=t.call(c,c.__data__,d,l),g=oe(c,n),p=0,b=f.length;p<b;++p)(h=f[p])&&ie(h,e,n,p,f,g);r.push(f),o.push(c)}return new Mn(r,o,e,n)},selectChild:Bn.selectChild,selectChildren:Bn.selectChildren,filter:function(t){"function"!=typeof t&&(t=w(t));for(var e=this._groups,n=e.length,i=new Array(n),a=0;a<n;++a)for(var r,o=e[a],s=o.length,c=i[a]=[],l=0;l<s;++l)(r=o[l])&&t.call(r,r.__data__,l,o)&&c.push(r);return new Mn(i,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,i=e.length,a=n.length,r=Math.min(i,a),o=new Array(i),s=0;s<r;++s)for(var c,l=e[s],u=n[s],d=l.length,h=o[s]=new Array(d),f=0;f<d;++f)(c=l[f]||u[f])&&(h[f]=c);for(;s<i;++s)o[s]=e[s];return new Mn(o,this._parents,this._name,this._id)},selection:function(){return new Sn(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=Nn(),i=this._groups,a=i.length,r=0;r<a;++r)for(var o,s=i[r],c=s.length,l=0;l<c;++l)if(o=s[l]){var u=oe(o,e);ie(o,t,n,l,s,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new Mn(i,this._parents,t,n)},call:Bn.call,nodes:Bn.nodes,node:Bn.node,size:Bn.size,empty:Bn.empty,each:Bn.each,on:function(t,e){var n=this._id;return arguments.length<2?oe(this.node(),n).on.on(t):this.each(Cn(n,t,e))},attr:function(t,e){var n=B(t),i="transform"===n?ge:un;return this.attrTween(t,"function"==typeof e?(n.local?bn:pn)(n,i,me(this,"attr."+t,e)):null==e?(n.local?hn:dn)(n):(n.local?gn:fn)(n,i,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var i=B(t);return this.tween(n,(i.local?vn:wn)(i,e))},style:function(t,e,n){var i="transform"==(t+="")?fe:un;return null==e?this.styleTween(t,function(t,e){var n,i,a;return function(){var r=Y(this,t),o=(this.style.removeProperty(t),Y(this,t));return r===o?null:r===n&&o===i?a:a=e(n=r,i=o)}}(t,i)).on("end.style."+t,Tn(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var i,a,r;return function(){var o=Y(this,t),s=n(this),c=s+"";return null==s&&(this.style.removeProperty(t),c=s=Y(this,t)),o===c?null:o===i&&c===a?r:(a=c,r=e(i=o,s))}}(t,i,me(this,"style."+t,e))).each(function(t,e){var n,i,a,r,o="style."+e,s="end."+o;return function(){var c=re(this,t),l=c.on,u=null==c.value[o]?r||(r=Tn(e)):void 0;l===n&&a===u||(i=(n=l).copy()).on(s,a=u),c.on=i}}(this._id,t)):this.styleTween(t,function(t,e,n){var i,a,r=n+"";return function(){var o=Y(this,t);return o===r?null:o===i?a:a=e(i=o,n)}}(t,i,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var i="style."+(t+="");if(arguments.length<2)return(i=this.tween(i))&&i._value;if(null==e)return this.tween(i,null);if("function"!=typeof e)throw new Error;return this.tween(i,Dn(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(me(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,Ln(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var i,a=oe(this.node(),n).tween,r=0,o=a.length;r<o;++r)if((i=a[r]).name===t)return i.value;return null}return this.each((null==e?pe:be)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?xn:Rn)(e,t)):oe(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?_n:kn)(e,t)):oe(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(En(e,t)):oe(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;re(this,t).ease=n}}(this._id,t))},end:function(){var t,e,n=this,i=n._id,a=n.size();return new Promise((function(r,o){var s={value:o},c={value:function(){0==--a&&r()}};n.each((function(){var n=re(this,i),a=n.on;a!==t&&((e=(t=a).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(c)),n.on=e})),0===a&&r()}))},[Symbol.iterator]:Bn[Symbol.iterator]};var Pn={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function Fn(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}At.prototype.interrupt=function(t){return this.each((function(){!function(t,e){var n,i,a,r=t.__transition,o=!0;if(r){for(a in e=null==e?null:e+"",r)(n=r[a]).name===e?(i=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(i?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete r[a]):o=!1;o&&delete t.__transition}}(this,t)}))},At.prototype.transition=function(t){var e,n;t instanceof Mn?(e=t._id,t=t._name):(e=Nn(),(n=Pn).time=Yt(),t=null==t?null:t+"");for(var i=this._groups,a=i.length,r=0;r<a;++r)for(var o,s=i[r],c=s.length,l=0;l<c;++l)(o=s[l])&&ie(o,t,e,l,s,n||Fn(o,e));return new Mn(i,this._parents,t,e)};const{abs:jn,max:$n,min:zn}=Math;function Hn(t){return[+t[0],+t[1]]}function Un(t){return[Hn(t[0]),Hn(t[1])]}["w","e"].map(Vn),["n","s"].map(Vn),["n","w","e","s","nw","ne","sw","se"].map(Vn);function Vn(t){return{type:t}}function qn(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function Wn(t){return(e,n)=>function(t,e){return fetch(t,e).then(qn)}(e,n).then((e=>(new DOMParser).parseFromString(e,t)))}Wn("application/xml");Wn("text/html");var Yn=Wn("image/svg+xml");const Gn=Math.PI/180,Zn=180/Math.PI,Kn=.96422,Xn=.82521,Jn=4/29,Qn=6/29,ti=3*Qn*Qn;function ei(t){if(t instanceof ni)return new ni(t.l,t.a,t.b,t.opacity);if(t instanceof li)return ui(t);t instanceof ze||(t=je(t));var e,n,i=oi(t.r),a=oi(t.g),r=oi(t.b),o=ii((.2225045*i+.7168786*a+.0606169*r)/1);return i===a&&a===r?e=n=o:(e=ii((.4360747*i+.3850649*a+.1430804*r)/Kn),n=ii((.0139322*i+.0971045*a+.7141733*r)/Xn)),new ni(116*o-16,500*(e-o),200*(o-n),t.opacity)}function ni(t,e,n,i){this.l=+t,this.a=+e,this.b=+n,this.opacity=+i}function ii(t){return t>.008856451679035631?Math.pow(t,1/3):t/ti+Jn}function ai(t){return t>Qn?t*t*t:ti*(t-Jn)}function ri(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function oi(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function si(t){if(t instanceof li)return new li(t.h,t.c,t.l,t.opacity);if(t instanceof ni||(t=ei(t)),0===t.a&&0===t.b)return new li(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var e=Math.atan2(t.b,t.a)*Zn;return new li(e<0?e+360:e,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function ci(t,e,n,i){return 1===arguments.length?si(t):new li(t,e,n,null==i?1:i)}function li(t,e,n,i){this.h=+t,this.c=+e,this.l=+n,this.opacity=+i}function ui(t){if(isNaN(t.h))return new ni(t.l,0,0,t.opacity);var e=t.h*Gn;return new ni(t.l,Math.cos(e)*t.c,Math.sin(e)*t.c,t.opacity)}function di(t){return function(e,n){var i=t((e=ci(e)).h,(n=ci(n)).h),a=an(e.c,n.c),r=an(e.l,n.l),o=an(e.opacity,n.opacity);return function(t){return e.h=i(t),e.c=a(t),e.l=r(t),e.opacity=o(t),e+""}}}ye(ni,(function(t,e,n,i){return 1===arguments.length?ei(t):new ni(t,e,n,null==i?1:i)}),ve(we,{brighter(t){return new ni(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker(t){return new ni(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,e=isNaN(this.a)?t:t+this.a/500,n=isNaN(this.b)?t:t-this.b/200;return new ze(ri(3.1338561*(e=Kn*ai(e))-1.6168667*(t=1*ai(t))-.4906146*(n=Xn*ai(n))),ri(-.9787684*e+1.9161415*t+.033454*n),ri(.0719453*e-.2289914*t+1.4052427*n),this.opacity)}})),ye(li,ci,ve(we,{brighter(t){return new li(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker(t){return new li(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb(){return ui(this).rgb()}}));const hi=di((function(t,e){var n=e-t;return n?en(t,n>180||n<-180?n-360*Math.round(n/360):n):tn(isNaN(t)?e:t)}));di(an);const fi=Math.sqrt(50),gi=Math.sqrt(10),pi=Math.sqrt(2);function bi(t,e,n){const i=(e-t)/Math.max(0,n),a=Math.floor(Math.log10(i)),r=i/Math.pow(10,a),o=r>=fi?10:r>=gi?5:r>=pi?2:1;let s,c,l;return a<0?(l=Math.pow(10,-a)/o,s=Math.round(t*l),c=Math.round(e*l),s/l<t&&++s,c/l>e&&--c,l=-l):(l=Math.pow(10,a)*o,s=Math.round(t/l),c=Math.round(e/l),s*l<t&&++s,c*l>e&&--c),c<s&&.5<=n&&n<2?bi(t,e,2*n):[s,c,l]}function mi(t,e,n){return bi(t=+t,e=+e,n=+n)[2]}function yi(t,e,n){n=+n;const i=(e=+e)<(t=+t),a=i?mi(e,t,n):mi(t,e,n);return(i?-1:1)*(a<0?1/-a:a)}function vi(t,e){return null==t||null==e?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function wi(t,e){return null==t||null==e?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function xi(t){let e,n,i;function a(t,i,a=0,r=t.length){if(a<r){if(0!==e(i,i))return r;do{const e=a+r>>>1;n(t[e],i)<0?a=e+1:r=e}while(a<r)}return a}return 2!==t.length?(e=vi,n=(e,n)=>vi(t(e),n),i=(e,n)=>t(e)-n):(e=t===vi||t===wi?t:Ri,n=t,i=t),{left:a,center:function(t,e,n=0,r=t.length){const o=a(t,e,n,r-1);return o>n&&i(t[o-1],e)>-i(t[o],e)?o-1:o},right:function(t,i,a=0,r=t.length){if(a<r){if(0!==e(i,i))return r;do{const e=a+r>>>1;n(t[e],i)<=0?a=e+1:r=e}while(a<r)}return a}}}function Ri(){return 0}const _i=xi(vi),ki=_i.right,Ei=(_i.left,xi((function(t){return null===t?NaN:+t})).center,ki);function Ci(t,e){var n,i=e?e.length:0,a=t?Math.min(i,t.length):0,r=new Array(a),o=new Array(i);for(n=0;n<a;++n)r[n]=Di(t[n],e[n]);for(;n<i;++n)o[n]=e[n];return function(t){for(n=0;n<a;++n)o[n]=r[n](t);return o}}function Si(t,e){var n=new Date;return t=+t,e=+e,function(i){return n.setTime(t*(1-i)+e*i),n}}function Ti(t,e){var n,i={},a={};for(n in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)n in t?i[n]=Di(t[n],e[n]):a[n]=e[n];return function(t){for(n in i)a[n]=i[n](t);return a}}function Ai(t,e){e||(e=[]);var n,i=t?Math.min(e.length,t.length):0,a=e.slice();return function(r){for(n=0;n<i;++n)a[n]=t[n]*(1-r)+e[n]*r;return a}}function Di(t,e){var n,i,a=typeof e;return null==e||"boolean"===a?tn(e):("number"===a?se:"string"===a?(n=Be(e))?(e=n,rn):ln:e instanceof Be?rn:e instanceof Date?Si:(i=e,!ArrayBuffer.isView(i)||i instanceof DataView?Array.isArray(e)?Ci:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?Ti:se:Ai))(t,e)}function Ii(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}function Li(t){return+t}var Oi=[0,1];function Mi(t){return t}function Ni(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:(n=isNaN(e)?NaN:.5,function(){return n});var n}function Bi(t,e,n){var i=t[0],a=t[1],r=e[0],o=e[1];return a<i?(i=Ni(a,i),r=n(o,r)):(i=Ni(i,a),r=n(r,o)),function(t){return r(i(t))}}function Pi(t,e,n){var i=Math.min(t.length,e.length)-1,a=new Array(i),r=new Array(i),o=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++o<i;)a[o]=Ni(t[o],t[o+1]),r[o]=n(e[o],e[o+1]);return function(e){var n=Ei(t,e,1,i)-1;return r[n](a[n](e))}}function Fi(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function ji(){var t,e,n,i,a,r,o=Oi,s=Oi,c=Di,l=Mi;function u(){var t,e,n,c=Math.min(o.length,s.length);return l!==Mi&&(t=o[0],e=o[c-1],t>e&&(n=t,t=e,e=n),l=function(n){return Math.max(t,Math.min(e,n))}),i=c>2?Pi:Bi,a=r=null,d}function d(e){return null==e||isNaN(e=+e)?n:(a||(a=i(o.map(t),s,c)))(t(l(e)))}return d.invert=function(n){return l(e((r||(r=i(s,o.map(t),se)))(n)))},d.domain=function(t){return arguments.length?(o=Array.from(t,Li),u()):o.slice()},d.range=function(t){return arguments.length?(s=Array.from(t),u()):s.slice()},d.rangeRound=function(t){return s=Array.from(t),c=Ii,u()},d.clamp=function(t){return arguments.length?(l=!!t||Mi,u()):l!==Mi},d.interpolate=function(t){return arguments.length?(c=t,u()):c},d.unknown=function(t){return arguments.length?(n=t,d):n},function(n,i){return t=n,e=i,u()}}function $i(){return ji()(Mi,Mi)}function zi(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}var Hi,Ui=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Vi(t){if(!(e=Ui.exec(t)))throw new Error("invalid format: "+t);var e;return new qi({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function qi(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function Wi(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,i=t.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+t.slice(n+1)]}function Yi(t){return(t=Wi(Math.abs(t)))?t[1]:NaN}function Gi(t,e){var n=Wi(t,e);if(!n)return t+"";var i=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+i:i.length>a+1?i.slice(0,a+1)+"."+i.slice(a+1):i+new Array(a-i.length+2).join("0")}Vi.prototype=qi.prototype,qi.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const Zi={"%":(t,e)=>(100*t).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Gi(100*t,e),r:Gi,s:function(t,e){var n=Wi(t,e);if(!n)return t+"";var i=n[0],a=n[1],r=a-(Hi=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,o=i.length;return r===o?i:r>o?i+new Array(r-o+1).join("0"):r>0?i.slice(0,r)+"."+i.slice(r):"0."+new Array(1-r).join("0")+Wi(t,Math.max(0,e+r-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Ki(t){return t}var Xi,Ji,Qi,ta=Array.prototype.map,ea=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"];function na(t){var e,n,i=void 0===t.grouping||void 0===t.thousands?Ki:(e=ta.call(t.grouping,Number),n=t.thousands+"",function(t,i){for(var a=t.length,r=[],o=0,s=e[0],c=0;a>0&&s>0&&(c+s+1>i&&(s=Math.max(1,i-c)),r.push(t.substring(a-=s,a+s)),!((c+=s+1)>i));)s=e[o=(o+1)%e.length];return r.reverse().join(n)}),a=void 0===t.currency?"":t.currency[0]+"",r=void 0===t.currency?"":t.currency[1]+"",o=void 0===t.decimal?".":t.decimal+"",s=void 0===t.numerals?Ki:function(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}(ta.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",l=void 0===t.minus?"\u2212":t.minus+"",u=void 0===t.nan?"NaN":t.nan+"";function d(t){var e=(t=Vi(t)).fill,n=t.align,d=t.sign,h=t.symbol,f=t.zero,g=t.width,p=t.comma,b=t.precision,m=t.trim,y=t.type;"n"===y?(p=!0,y="g"):Zi[y]||(void 0===b&&(b=12),m=!0,y="g"),(f||"0"===e&&"="===n)&&(f=!0,e="0",n="=");var v="$"===h?a:"#"===h&&/[boxX]/.test(y)?"0"+y.toLowerCase():"",w="$"===h?r:/[%p]/.test(y)?c:"",x=Zi[y],R=/[defgprs%]/.test(y);function _(t){var a,r,c,h=v,_=w;if("c"===y)_=x(t)+_,t="";else{var k=(t=+t)<0||1/t<0;if(t=isNaN(t)?u:x(Math.abs(t),b),m&&(t=function(t){t:for(var e,n=t.length,i=1,a=-1;i<n;++i)switch(t[i]){case".":a=e=i;break;case"0":0===a&&(a=i),e=i;break;default:if(!+t[i])break t;a>0&&(a=0)}return a>0?t.slice(0,a)+t.slice(e+1):t}(t)),k&&0==+t&&"+"!==d&&(k=!1),h=(k?"("===d?d:l:"-"===d||"("===d?"":d)+h,_=("s"===y?ea[8+Hi/3]:"")+_+(k&&"("===d?")":""),R)for(a=-1,r=t.length;++a<r;)if(48>(c=t.charCodeAt(a))||c>57){_=(46===c?o+t.slice(a+1):t.slice(a))+_,t=t.slice(0,a);break}}p&&!f&&(t=i(t,1/0));var E=h.length+t.length+_.length,C=E<g?new Array(g-E+1).join(e):"";switch(p&&f&&(t=i(C+t,C.length?g-_.length:1/0),C=""),n){case"<":t=h+t+_+C;break;case"=":t=h+C+t+_;break;case"^":t=C.slice(0,E=C.length>>1)+h+t+_+C.slice(E);break;default:t=C+h+t+_}return s(t)}return b=void 0===b?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),_.toString=function(){return t+""},_}return{format:d,formatPrefix:function(t,e){var n=d(((t=Vi(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(Yi(e)/3))),a=Math.pow(10,-i),r=ea[8+i/3];return function(t){return n(a*t)+r}}}}function ia(t,e,n,i){var a,r=yi(t,e,n);switch((i=Vi(null==i?",f":i)).type){case"s":var o=Math.max(Math.abs(t),Math.abs(e));return null!=i.precision||isNaN(a=function(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Yi(e)/3)))-Yi(Math.abs(t)))}(r,o))||(i.precision=a),Qi(i,o);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(a=function(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,Yi(e)-Yi(t))+1}(r,Math.max(Math.abs(t),Math.abs(e))))||(i.precision=a-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(a=function(t){return Math.max(0,-Yi(Math.abs(t)))}(r))||(i.precision=a-2*("%"===i.type))}return Ji(i)}function aa(t){var e=t.domain;return t.ticks=function(t){var n=e();return function(t,e,n){if(!((n=+n)>0))return[];if((t=+t)==(e=+e))return[t];const i=e<t,[a,r,o]=i?bi(e,t,n):bi(t,e,n);if(!(r>=a))return[];const s=r-a+1,c=new Array(s);if(i)if(o<0)for(let l=0;l<s;++l)c[l]=(r-l)/-o;else for(let l=0;l<s;++l)c[l]=(r-l)*o;else if(o<0)for(let l=0;l<s;++l)c[l]=(a+l)/-o;else for(let l=0;l<s;++l)c[l]=(a+l)*o;return c}(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var i=e();return ia(i[0],i[i.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var i,a,r=e(),o=0,s=r.length-1,c=r[o],l=r[s],u=10;for(l<c&&(a=c,c=l,l=a,a=o,o=s,s=a);u-- >0;){if((a=mi(c,l,n))===i)return r[o]=c,r[s]=l,e(r);if(a>0)c=Math.floor(c/a)*a,l=Math.ceil(l/a)*a;else{if(!(a<0))break;c=Math.ceil(c*a)/a,l=Math.floor(l*a)/a}i=a}return t},t}function ra(){var t=$i();return t.copy=function(){return Fi(t,ra())},zi.apply(t,arguments),aa(t)}Xi=na({thousands:",",grouping:[3],currency:["$",""]}),Ji=Xi.format,Qi=Xi.formatPrefix;class oa extends Map{constructor(t,e=ua){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:e}}),null!=t)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(sa(this,t))}has(t){return super.has(sa(this,t))}set(t,e){return super.set(ca(this,t),e)}delete(t){return super.delete(la(this,t))}}Set;function sa({_intern:t,_key:e},n){const i=e(n);return t.has(i)?t.get(i):n}function ca({_intern:t,_key:e},n){const i=e(n);return t.has(i)?t.get(i):(t.set(i,n),n)}function la({_intern:t,_key:e},n){const i=e(n);return t.has(i)&&(n=t.get(i),t.delete(i)),n}function ua(t){return null!==t&&"object"==typeof t?t.valueOf():t}const da=Symbol("implicit");function ha(){var t=new oa,e=[],n=[],i=da;function a(a){let r=t.get(a);if(void 0===r){if(i!==da)return i;t.set(a,r=e.push(a)-1)}return n[r%n.length]}return a.domain=function(n){if(!arguments.length)return e.slice();e=[],t=new oa;for(const i of n)t.has(i)||t.set(i,e.push(i)-1);return a},a.range=function(t){return arguments.length?(n=Array.from(t),a):n.slice()},a.unknown=function(t){return arguments.length?(i=t,a):i},a.copy=function(){return ha(e,n).unknown(i)},zi.apply(a,arguments),a}const fa=1e3,ga=6e4,pa=36e5,ba=864e5,ma=6048e5,ya=2592e6,va=31536e6,wa=new Date,xa=new Date;function Ra(t,e,n,i){function a(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return a.floor=e=>(t(e=new Date(+e)),e),a.ceil=n=>(t(n=new Date(n-1)),e(n,1),t(n),n),a.round=t=>{const e=a(t),n=a.ceil(t);return t-e<n-t?e:n},a.offset=(t,n)=>(e(t=new Date(+t),null==n?1:Math.floor(n)),t),a.range=(n,i,r)=>{const o=[];if(n=a.ceil(n),r=null==r?1:Math.floor(r),!(n<i&&r>0))return o;let s;do{o.push(s=new Date(+n)),e(n,r),t(n)}while(s<n&&n<i);return o},a.filter=n=>Ra((e=>{if(e>=e)for(;t(e),!n(e);)e.setTime(e-1)}),((t,i)=>{if(t>=t)if(i<0)for(;++i<=0;)for(;e(t,-1),!n(t););else for(;--i>=0;)for(;e(t,1),!n(t););})),n&&(a.count=(e,i)=>(wa.setTime(+e),xa.setTime(+i),t(wa),t(xa),Math.floor(n(wa,xa))),a.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?a.filter(i?e=>i(e)%t==0:e=>a.count(0,e)%t==0):a:null)),a}const _a=Ra((()=>{}),((t,e)=>{t.setTime(+t+e)}),((t,e)=>e-t));_a.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?Ra((e=>{e.setTime(Math.floor(e/t)*t)}),((e,n)=>{e.setTime(+e+n*t)}),((e,n)=>(n-e)/t)):_a:null);_a.range;const ka=Ra((t=>{t.setTime(t-t.getMilliseconds())}),((t,e)=>{t.setTime(+t+e*fa)}),((t,e)=>(e-t)/fa),(t=>t.getUTCSeconds())),Ea=(ka.range,Ra((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*fa)}),((t,e)=>{t.setTime(+t+e*ga)}),((t,e)=>(e-t)/ga),(t=>t.getMinutes()))),Ca=(Ea.range,Ra((t=>{t.setUTCSeconds(0,0)}),((t,e)=>{t.setTime(+t+e*ga)}),((t,e)=>(e-t)/ga),(t=>t.getUTCMinutes()))),Sa=(Ca.range,Ra((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*fa-t.getMinutes()*ga)}),((t,e)=>{t.setTime(+t+e*pa)}),((t,e)=>(e-t)/pa),(t=>t.getHours()))),Ta=(Sa.range,Ra((t=>{t.setUTCMinutes(0,0,0)}),((t,e)=>{t.setTime(+t+e*pa)}),((t,e)=>(e-t)/pa),(t=>t.getUTCHours()))),Aa=(Ta.range,Ra((t=>t.setHours(0,0,0,0)),((t,e)=>t.setDate(t.getDate()+e)),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*ga)/ba),(t=>t.getDate()-1))),Da=(Aa.range,Ra((t=>{t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+e)}),((t,e)=>(e-t)/ba),(t=>t.getUTCDate()-1))),Ia=(Da.range,Ra((t=>{t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+e)}),((t,e)=>(e-t)/ba),(t=>Math.floor(t/ba))));Ia.range;function La(t){return Ra((e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),((t,e)=>{t.setDate(t.getDate()+7*e)}),((t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*ga)/ma))}const Oa=La(0),Ma=La(1),Na=La(2),Ba=La(3),Pa=La(4),Fa=La(5),ja=La(6);Oa.range,Ma.range,Na.range,Ba.range,Pa.range,Fa.range,ja.range;function $a(t){return Ra((e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCDate(t.getUTCDate()+7*e)}),((t,e)=>(e-t)/ma))}const za=$a(0),Ha=$a(1),Ua=$a(2),Va=$a(3),qa=$a(4),Wa=$a(5),Ya=$a(6),Ga=(za.range,Ha.range,Ua.range,Va.range,qa.range,Wa.range,Ya.range,Ra((t=>{t.setDate(1),t.setHours(0,0,0,0)}),((t,e)=>{t.setMonth(t.getMonth()+e)}),((t,e)=>e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())),(t=>t.getMonth()))),Za=(Ga.range,Ra((t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)}),((t,e)=>e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())),(t=>t.getUTCMonth()))),Ka=(Za.range,Ra((t=>{t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,e)=>{t.setFullYear(t.getFullYear()+e)}),((t,e)=>e.getFullYear()-t.getFullYear()),(t=>t.getFullYear())));Ka.every=t=>isFinite(t=Math.floor(t))&&t>0?Ra((e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),((e,n)=>{e.setFullYear(e.getFullYear()+n*t)})):null;Ka.range;const Xa=Ra((t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)}),((t,e)=>e.getUTCFullYear()-t.getUTCFullYear()),(t=>t.getUTCFullYear()));Xa.every=t=>isFinite(t=Math.floor(t))&&t>0?Ra((e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),((e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)})):null;Xa.range;function Ja(t,e,n,i,a,r){const o=[[ka,1,fa],[ka,5,5e3],[ka,15,15e3],[ka,30,3e4],[r,1,ga],[r,5,3e5],[r,15,9e5],[r,30,18e5],[a,1,pa],[a,3,108e5],[a,6,216e5],[a,12,432e5],[i,1,ba],[i,2,1728e5],[n,1,ma],[e,1,ya],[e,3,7776e6],[t,1,va]];function s(e,n,i){const a=Math.abs(n-e)/i,r=xi((([,,t])=>t)).right(o,a);if(r===o.length)return t.every(yi(e/va,n/va,i));if(0===r)return _a.every(Math.max(yi(e,n,i),1));const[s,c]=o[a/o[r-1][2]<o[r][2]/a?r-1:r];return s.every(c)}return[function(t,e,n){const i=e<t;i&&([t,e]=[e,t]);const a=n&&"function"==typeof n.range?n:s(t,e,n),r=a?a.range(t,+e+1):[];return i?r.reverse():r},s]}const[Qa,tr]=Ja(Xa,Za,za,Ia,Ta,Ca),[er,nr]=Ja(Ka,Ga,Oa,Aa,Sa,Ea);function ir(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function ar(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function rr(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}var or,sr,cr={"-":"",_:" ",0:"0"},lr=/^\s*\d+/,ur=/^%/,dr=/[\\^$*+?|[\]().{}]/g;function hr(t,e,n){var i=t<0?"-":"",a=(i?-t:t)+"",r=a.length;return i+(r<n?new Array(n-r+1).join(e)+a:a)}function fr(t){return t.replace(dr,"\\$&")}function gr(t){return new RegExp("^(?:"+t.map(fr).join("|")+")","i")}function pr(t){return new Map(t.map(((t,e)=>[t.toLowerCase(),e])))}function br(t,e,n){var i=lr.exec(e.slice(n,n+1));return i?(t.w=+i[0],n+i[0].length):-1}function mr(t,e,n){var i=lr.exec(e.slice(n,n+1));return i?(t.u=+i[0],n+i[0].length):-1}function yr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.U=+i[0],n+i[0].length):-1}function vr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.V=+i[0],n+i[0].length):-1}function wr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.W=+i[0],n+i[0].length):-1}function xr(t,e,n){var i=lr.exec(e.slice(n,n+4));return i?(t.y=+i[0],n+i[0].length):-1}function Rr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function _r(t,e,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function kr(t,e,n){var i=lr.exec(e.slice(n,n+1));return i?(t.q=3*i[0]-3,n+i[0].length):-1}function Er(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.m=i[0]-1,n+i[0].length):-1}function Cr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.d=+i[0],n+i[0].length):-1}function Sr(t,e,n){var i=lr.exec(e.slice(n,n+3));return i?(t.m=0,t.d=+i[0],n+i[0].length):-1}function Tr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.H=+i[0],n+i[0].length):-1}function Ar(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.M=+i[0],n+i[0].length):-1}function Dr(t,e,n){var i=lr.exec(e.slice(n,n+2));return i?(t.S=+i[0],n+i[0].length):-1}function Ir(t,e,n){var i=lr.exec(e.slice(n,n+3));return i?(t.L=+i[0],n+i[0].length):-1}function Lr(t,e,n){var i=lr.exec(e.slice(n,n+6));return i?(t.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function Or(t,e,n){var i=ur.exec(e.slice(n,n+1));return i?n+i[0].length:-1}function Mr(t,e,n){var i=lr.exec(e.slice(n));return i?(t.Q=+i[0],n+i[0].length):-1}function Nr(t,e,n){var i=lr.exec(e.slice(n));return i?(t.s=+i[0],n+i[0].length):-1}function Br(t,e){return hr(t.getDate(),e,2)}function Pr(t,e){return hr(t.getHours(),e,2)}function Fr(t,e){return hr(t.getHours()%12||12,e,2)}function jr(t,e){return hr(1+Aa.count(Ka(t),t),e,3)}function $r(t,e){return hr(t.getMilliseconds(),e,3)}function zr(t,e){return $r(t,e)+"000"}function Hr(t,e){return hr(t.getMonth()+1,e,2)}function Ur(t,e){return hr(t.getMinutes(),e,2)}function Vr(t,e){return hr(t.getSeconds(),e,2)}function qr(t){var e=t.getDay();return 0===e?7:e}function Wr(t,e){return hr(Oa.count(Ka(t)-1,t),e,2)}function Yr(t){var e=t.getDay();return e>=4||0===e?Pa(t):Pa.ceil(t)}function Gr(t,e){return t=Yr(t),hr(Pa.count(Ka(t),t)+(4===Ka(t).getDay()),e,2)}function Zr(t){return t.getDay()}function Kr(t,e){return hr(Ma.count(Ka(t)-1,t),e,2)}function Xr(t,e){return hr(t.getFullYear()%100,e,2)}function Jr(t,e){return hr((t=Yr(t)).getFullYear()%100,e,2)}function Qr(t,e){return hr(t.getFullYear()%1e4,e,4)}function to(t,e){var n=t.getDay();return hr((t=n>=4||0===n?Pa(t):Pa.ceil(t)).getFullYear()%1e4,e,4)}function eo(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+hr(e/60|0,"0",2)+hr(e%60,"0",2)}function no(t,e){return hr(t.getUTCDate(),e,2)}function io(t,e){return hr(t.getUTCHours(),e,2)}function ao(t,e){return hr(t.getUTCHours()%12||12,e,2)}function ro(t,e){return hr(1+Da.count(Xa(t),t),e,3)}function oo(t,e){return hr(t.getUTCMilliseconds(),e,3)}function so(t,e){return oo(t,e)+"000"}function co(t,e){return hr(t.getUTCMonth()+1,e,2)}function lo(t,e){return hr(t.getUTCMinutes(),e,2)}function uo(t,e){return hr(t.getUTCSeconds(),e,2)}function ho(t){var e=t.getUTCDay();return 0===e?7:e}function fo(t,e){return hr(za.count(Xa(t)-1,t),e,2)}function go(t){var e=t.getUTCDay();return e>=4||0===e?qa(t):qa.ceil(t)}function po(t,e){return t=go(t),hr(qa.count(Xa(t),t)+(4===Xa(t).getUTCDay()),e,2)}function bo(t){return t.getUTCDay()}function mo(t,e){return hr(Ha.count(Xa(t)-1,t),e,2)}function yo(t,e){return hr(t.getUTCFullYear()%100,e,2)}function vo(t,e){return hr((t=go(t)).getUTCFullYear()%100,e,2)}function wo(t,e){return hr(t.getUTCFullYear()%1e4,e,4)}function xo(t,e){var n=t.getUTCDay();return hr((t=n>=4||0===n?qa(t):qa.ceil(t)).getUTCFullYear()%1e4,e,4)}function Ro(){return"+0000"}function _o(){return"%"}function ko(t){return+t}function Eo(t){return Math.floor(+t/1e3)}function Co(t){return new Date(t)}function So(t){return t instanceof Date?+t:+new Date(+t)}function To(t,e,n,i,a,r,o,s,c,l){var u=$i(),d=u.invert,h=u.domain,f=l(".%L"),g=l(":%S"),p=l("%I:%M"),b=l("%I %p"),m=l("%a %d"),y=l("%b %d"),v=l("%B"),w=l("%Y");function x(t){return(c(t)<t?f:s(t)<t?g:o(t)<t?p:r(t)<t?b:i(t)<t?a(t)<t?m:y:n(t)<t?v:w)(t)}return u.invert=function(t){return new Date(d(t))},u.domain=function(t){return arguments.length?h(Array.from(t,So)):h().map(Co)},u.ticks=function(e){var n=h();return t(n[0],n[n.length-1],null==e?10:e)},u.tickFormat=function(t,e){return null==e?x:l(e)},u.nice=function(t){var n=h();return t&&"function"==typeof t.range||(t=e(n[0],n[n.length-1],null==t?10:t)),t?h(function(t,e){var n,i=0,a=(t=t.slice()).length-1,r=t[i],o=t[a];return o<r&&(n=i,i=a,a=n,n=r,r=o,o=n),t[i]=e.floor(r),t[a]=e.ceil(o),t}(n,t)):u},u.copy=function(){return Fi(u,To(t,e,n,i,a,r,o,s,c,l))},u}function Ao(){return zi.apply(To(er,nr,Ka,Ga,Oa,Aa,Sa,Ea,ka,sr).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function Do(t){return"string"==typeof t?new St([[document.querySelector(t)]],[document.documentElement]):new St([[t]],Ct)}function Io(t){return"string"==typeof t?new St([document.querySelectorAll(t)],[document.documentElement]):new St([m(t)],Ct)}function Lo(t){return function(){return t}}!function(t){or=function(t){var e=t.dateTime,n=t.date,i=t.time,a=t.periods,r=t.days,o=t.shortDays,s=t.months,c=t.shortMonths,l=gr(a),u=pr(a),d=gr(r),h=pr(r),f=gr(o),g=pr(o),p=gr(s),b=pr(s),m=gr(c),y=pr(c),v={a:function(t){return o[t.getDay()]},A:function(t){return r[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return s[t.getMonth()]},c:null,d:Br,e:Br,f:zr,g:Jr,G:to,H:Pr,I:Fr,j:jr,L:$r,m:Hr,M:Ur,p:function(t){return a[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:ko,s:Eo,S:Vr,u:qr,U:Wr,V:Gr,w:Zr,W:Kr,x:null,X:null,y:Xr,Y:Qr,Z:eo,"%":_o},w={a:function(t){return o[t.getUTCDay()]},A:function(t){return r[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return s[t.getUTCMonth()]},c:null,d:no,e:no,f:so,g:vo,G:xo,H:io,I:ao,j:ro,L:oo,m:co,M:lo,p:function(t){return a[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:ko,s:Eo,S:uo,u:ho,U:fo,V:po,w:bo,W:mo,x:null,X:null,y:yo,Y:wo,Z:Ro,"%":_o},x={a:function(t,e,n){var i=f.exec(e.slice(n));return i?(t.w=g.get(i[0].toLowerCase()),n+i[0].length):-1},A:function(t,e,n){var i=d.exec(e.slice(n));return i?(t.w=h.get(i[0].toLowerCase()),n+i[0].length):-1},b:function(t,e,n){var i=m.exec(e.slice(n));return i?(t.m=y.get(i[0].toLowerCase()),n+i[0].length):-1},B:function(t,e,n){var i=p.exec(e.slice(n));return i?(t.m=b.get(i[0].toLowerCase()),n+i[0].length):-1},c:function(t,n,i){return k(t,e,n,i)},d:Cr,e:Cr,f:Lr,g:Rr,G:xr,H:Tr,I:Tr,j:Sr,L:Ir,m:Er,M:Ar,p:function(t,e,n){var i=l.exec(e.slice(n));return i?(t.p=u.get(i[0].toLowerCase()),n+i[0].length):-1},q:kr,Q:Mr,s:Nr,S:Dr,u:mr,U:yr,V:vr,w:br,W:wr,x:function(t,e,i){return k(t,n,e,i)},X:function(t,e,n){return k(t,i,e,n)},y:Rr,Y:xr,Z:_r,"%":Or};function R(t,e){return function(n){var i,a,r,o=[],s=-1,c=0,l=t.length;for(n instanceof Date||(n=new Date(+n));++s<l;)37===t.charCodeAt(s)&&(o.push(t.slice(c,s)),null!=(a=cr[i=t.charAt(++s)])?i=t.charAt(++s):a="e"===i?" ":"0",(r=e[i])&&(i=r(n,a)),o.push(i),c=s+1);return o.push(t.slice(c,s)),o.join("")}}function _(t,e){return function(n){var i,a,r=rr(1900,void 0,1);if(k(r,t,n+="",0)!=n.length)return null;if("Q"in r)return new Date(r.Q);if("s"in r)return new Date(1e3*r.s+("L"in r?r.L:0));if(e&&!("Z"in r)&&(r.Z=0),"p"in r&&(r.H=r.H%12+12*r.p),void 0===r.m&&(r.m="q"in r?r.q:0),"V"in r){if(r.V<1||r.V>53)return null;"w"in r||(r.w=1),"Z"in r?(a=(i=ar(rr(r.y,0,1))).getUTCDay(),i=a>4||0===a?Ha.ceil(i):Ha(i),i=Da.offset(i,7*(r.V-1)),r.y=i.getUTCFullYear(),r.m=i.getUTCMonth(),r.d=i.getUTCDate()+(r.w+6)%7):(a=(i=ir(rr(r.y,0,1))).getDay(),i=a>4||0===a?Ma.ceil(i):Ma(i),i=Aa.offset(i,7*(r.V-1)),r.y=i.getFullYear(),r.m=i.getMonth(),r.d=i.getDate()+(r.w+6)%7)}else("W"in r||"U"in r)&&("w"in r||(r.w="u"in r?r.u%7:"W"in r?1:0),a="Z"in r?ar(rr(r.y,0,1)).getUTCDay():ir(rr(r.y,0,1)).getDay(),r.m=0,r.d="W"in r?(r.w+6)%7+7*r.W-(a+5)%7:r.w+7*r.U-(a+6)%7);return"Z"in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,ar(r)):ir(r)}}function k(t,e,n,i){for(var a,r,o=0,s=e.length,c=n.length;o<s;){if(i>=c)return-1;if(37===(a=e.charCodeAt(o++))){if(a=e.charAt(o++),!(r=x[a in cr?e.charAt(o++):a])||(i=r(t,n,i))<0)return-1}else if(a!=n.charCodeAt(i++))return-1}return i}return v.x=R(n,v),v.X=R(i,v),v.c=R(e,v),w.x=R(n,w),w.X=R(i,w),w.c=R(e,w),{format:function(t){var e=R(t+="",v);return e.toString=function(){return t},e},parse:function(t){var e=_(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=R(t+="",w);return e.toString=function(){return t},e},utcParse:function(t){var e=_(t+="",!0);return e.toString=function(){return t},e}}}(t),sr=or.format,or.parse,or.utcFormat,or.utcParse}({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});const Oo=Math.abs,Mo=Math.atan2,No=Math.cos,Bo=Math.max,Po=Math.min,Fo=Math.sin,jo=Math.sqrt,$o=1e-12,zo=Math.PI,Ho=zo/2,Uo=2*zo;function Vo(t){return t>1?0:t<-1?zo:Math.acos(t)}function qo(t){return t>=1?Ho:t<=-1?-Ho:Math.asin(t)}const Wo=Math.PI,Yo=2*Wo,Go=1e-6,Zo=Yo-Go;function Ko(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}class Xo{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?Ko:function(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return Ko;const n=10**e;return function(t){this._+=t[0];for(let e=1,i=t.length;e<i;++e)this._+=Math.round(arguments[e]*n)/n+t[e]}}(t)}moveTo(t,e){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,e){this._append`L${this._x1=+t},${this._y1=+e}`}quadraticCurveTo(t,e,n,i){this._append`Q${+t},${+e},${this._x1=+n},${this._y1=+i}`}bezierCurveTo(t,e,n,i,a,r){this._append`C${+t},${+e},${+n},${+i},${this._x1=+a},${this._y1=+r}`}arcTo(t,e,n,i,a){if(t=+t,e=+e,n=+n,i=+i,(a=+a)<0)throw new Error(`negative radius: ${a}`);let r=this._x1,o=this._y1,s=n-t,c=i-e,l=r-t,u=o-e,d=l*l+u*u;if(null===this._x1)this._append`M${this._x1=t},${this._y1=e}`;else if(d>Go)if(Math.abs(u*s-c*l)>Go&&a){let h=n-r,f=i-o,g=s*s+c*c,p=h*h+f*f,b=Math.sqrt(g),m=Math.sqrt(d),y=a*Math.tan((Wo-Math.acos((g+d-p)/(2*b*m)))/2),v=y/m,w=y/b;Math.abs(v-1)>Go&&this._append`L${t+v*l},${e+v*u}`,this._append`A${a},${a},0,0,${+(u*h>l*f)},${this._x1=t+w*s},${this._y1=e+w*c}`}else this._append`L${this._x1=t},${this._y1=e}`;else;}arc(t,e,n,i,a,r){if(t=+t,e=+e,r=!!r,(n=+n)<0)throw new Error(`negative radius: ${n}`);let o=n*Math.cos(i),s=n*Math.sin(i),c=t+o,l=e+s,u=1^r,d=r?i-a:a-i;null===this._x1?this._append`M${c},${l}`:(Math.abs(this._x1-c)>Go||Math.abs(this._y1-l)>Go)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%Yo+Yo),d>Zo?this._append`A${n},${n},0,1,${u},${t-o},${e-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>Go&&this._append`A${n},${n},0,${+(d>=Wo)},${u},${this._x1=t+n*Math.cos(a)},${this._y1=e+n*Math.sin(a)}`)}rect(t,e,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+e}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function Jo(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(null==n)e=null;else{const t=Math.floor(n);if(!(t>=0))throw new RangeError(`invalid digits: ${n}`);e=t}return t},()=>new Xo(e)}function Qo(t){return t.innerRadius}function ts(t){return t.outerRadius}function es(t){return t.startAngle}function ns(t){return t.endAngle}function is(t){return t&&t.padAngle}function as(t,e,n,i,a,r,o,s){var c=n-t,l=i-e,u=o-a,d=s-r,h=d*c-u*l;if(!(h*h<$o))return[t+(h=(u*(e-r)-d*(t-a))/h)*c,e+h*l]}function rs(t,e,n,i,a,r,o){var s=t-n,c=e-i,l=(o?r:-r)/jo(s*s+c*c),u=l*c,d=-l*s,h=t+u,f=e+d,g=n+u,p=i+d,b=(h+g)/2,m=(f+p)/2,y=g-h,v=p-f,w=y*y+v*v,x=a-r,R=h*p-g*f,_=(v<0?-1:1)*jo(Bo(0,x*x*w-R*R)),k=(R*v-y*_)/w,E=(-R*y-v*_)/w,C=(R*v+y*_)/w,S=(-R*y+v*_)/w,T=k-b,A=E-m,D=C-b,I=S-m;return T*T+A*A>D*D+I*I&&(k=C,E=S),{cx:k,cy:E,x01:-u,y01:-d,x11:k*(a/x-1),y11:E*(a/x-1)}}function os(){var t=Qo,e=ts,n=Lo(0),i=null,a=es,r=ns,o=is,s=null,c=Jo(l);function l(){var l,u,d=+t.apply(this,arguments),h=+e.apply(this,arguments),f=a.apply(this,arguments)-Ho,g=r.apply(this,arguments)-Ho,p=Oo(g-f),b=g>f;if(s||(s=l=c()),h<d&&(u=h,h=d,d=u),h>$o)if(p>Uo-$o)s.moveTo(h*No(f),h*Fo(f)),s.arc(0,0,h,f,g,!b),d>$o&&(s.moveTo(d*No(g),d*Fo(g)),s.arc(0,0,d,g,f,b));else{var m,y,v=f,w=g,x=f,R=g,_=p,k=p,E=o.apply(this,arguments)/2,C=E>$o&&(i?+i.apply(this,arguments):jo(d*d+h*h)),S=Po(Oo(h-d)/2,+n.apply(this,arguments)),T=S,A=S;if(C>$o){var D=qo(C/d*Fo(E)),I=qo(C/h*Fo(E));(_-=2*D)>$o?(x+=D*=b?1:-1,R-=D):(_=0,x=R=(f+g)/2),(k-=2*I)>$o?(v+=I*=b?1:-1,w-=I):(k=0,v=w=(f+g)/2)}var L=h*No(v),O=h*Fo(v),M=d*No(R),N=d*Fo(R);if(S>$o){var B,P=h*No(w),F=h*Fo(w),j=d*No(x),$=d*Fo(x);if(p<zo)if(B=as(L,O,j,$,P,F,M,N)){var z=L-B[0],H=O-B[1],U=P-B[0],V=F-B[1],q=1/Fo(Vo((z*U+H*V)/(jo(z*z+H*H)*jo(U*U+V*V)))/2),W=jo(B[0]*B[0]+B[1]*B[1]);T=Po(S,(d-W)/(q-1)),A=Po(S,(h-W)/(q+1))}else T=A=0}k>$o?A>$o?(m=rs(j,$,L,O,h,A,b),y=rs(P,F,M,N,h,A,b),s.moveTo(m.cx+m.x01,m.cy+m.y01),A<S?s.arc(m.cx,m.cy,A,Mo(m.y01,m.x01),Mo(y.y01,y.x01),!b):(s.arc(m.cx,m.cy,A,Mo(m.y01,m.x01),Mo(m.y11,m.x11),!b),s.arc(0,0,h,Mo(m.cy+m.y11,m.cx+m.x11),Mo(y.cy+y.y11,y.cx+y.x11),!b),s.arc(y.cx,y.cy,A,Mo(y.y11,y.x11),Mo(y.y01,y.x01),!b))):(s.moveTo(L,O),s.arc(0,0,h,v,w,!b)):s.moveTo(L,O),d>$o&&_>$o?T>$o?(m=rs(M,N,P,F,d,-T,b),y=rs(L,O,j,$,d,-T,b),s.lineTo(m.cx+m.x01,m.cy+m.y01),T<S?s.arc(m.cx,m.cy,T,Mo(m.y01,m.x01),Mo(y.y01,y.x01),!b):(s.arc(m.cx,m.cy,T,Mo(m.y01,m.x01),Mo(m.y11,m.x11),!b),s.arc(0,0,d,Mo(m.cy+m.y11,m.cx+m.x11),Mo(y.cy+y.y11,y.cx+y.x11),b),s.arc(y.cx,y.cy,T,Mo(y.y11,y.x11),Mo(y.y01,y.x01),!b))):s.arc(0,0,d,R,x,b):s.lineTo(M,N)}else s.moveTo(0,0);if(s.closePath(),l)return s=null,l+""||null}return l.centroid=function(){var n=(+t.apply(this,arguments)+ +e.apply(this,arguments))/2,i=(+a.apply(this,arguments)+ +r.apply(this,arguments))/2-zo/2;return[No(i)*n,Fo(i)*n]},l.innerRadius=function(e){return arguments.length?(t="function"==typeof e?e:Lo(+e),l):t},l.outerRadius=function(t){return arguments.length?(e="function"==typeof t?t:Lo(+t),l):e},l.cornerRadius=function(t){return arguments.length?(n="function"==typeof t?t:Lo(+t),l):n},l.padRadius=function(t){return arguments.length?(i=null==t?null:"function"==typeof t?t:Lo(+t),l):i},l.startAngle=function(t){return arguments.length?(a="function"==typeof t?t:Lo(+t),l):a},l.endAngle=function(t){return arguments.length?(r="function"==typeof t?t:Lo(+t),l):r},l.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:Lo(+t),l):o},l.context=function(t){return arguments.length?(s=null==t?null:t,l):s},l}Array.prototype.slice;function ss(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function cs(t){this._context=t}function ls(t){return new cs(t)}function us(t){return t[0]}function ds(t){return t[1]}function hs(t,e){var n=Lo(!0),i=null,a=ls,r=null,o=Jo(s);function s(s){var c,l,u,d=(s=ss(s)).length,h=!1;for(null==i&&(r=a(u=o())),c=0;c<=d;++c)!(c<d&&n(l=s[c],c,s))===h&&((h=!h)?r.lineStart():r.lineEnd()),h&&r.point(+t(l,c,s),+e(l,c,s));if(u)return r=null,u+""||null}return t="function"==typeof t?t:void 0===t?us:Lo(t),e="function"==typeof e?e:void 0===e?ds:Lo(e),s.x=function(e){return arguments.length?(t="function"==typeof e?e:Lo(+e),s):t},s.y=function(t){return arguments.length?(e="function"==typeof t?t:Lo(+t),s):e},s.defined=function(t){return arguments.length?(n="function"==typeof t?t:Lo(!!t),s):n},s.curve=function(t){return arguments.length?(a=t,null!=i&&(r=a(i)),s):a},s.context=function(t){return arguments.length?(null==t?i=r=null:r=a(i=t),s):i},s}function fs(t,e){return e<t?-1:e>t?1:e>=t?0:NaN}function gs(t){return t}function ps(){var t=gs,e=fs,n=null,i=Lo(0),a=Lo(Uo),r=Lo(0);function o(o){var s,c,l,u,d,h=(o=ss(o)).length,f=0,g=new Array(h),p=new Array(h),b=+i.apply(this,arguments),m=Math.min(Uo,Math.max(-Uo,a.apply(this,arguments)-b)),y=Math.min(Math.abs(m)/h,r.apply(this,arguments)),v=y*(m<0?-1:1);for(s=0;s<h;++s)(d=p[g[s]=s]=+t(o[s],s,o))>0&&(f+=d);for(null!=e?g.sort((function(t,n){return e(p[t],p[n])})):null!=n&&g.sort((function(t,e){return n(o[t],o[e])})),s=0,l=f?(m-h*v)/f:0;s<h;++s,b=u)c=g[s],u=b+((d=p[c])>0?d*l:0)+v,p[c]={data:o[c],index:s,value:d,startAngle:b,endAngle:u,padAngle:y};return p}return o.value=function(e){return arguments.length?(t="function"==typeof e?e:Lo(+e),o):t},o.sortValues=function(t){return arguments.length?(e=t,n=null,o):e},o.sort=function(t){return arguments.length?(n=t,e=null,o):n},o.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:Lo(+t),o):i},o.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:Lo(+t),o):a},o.padAngle=function(t){return arguments.length?(r="function"==typeof t?t:Lo(+t),o):r},o}function bs(){}function ms(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function ys(t){this._context=t}function vs(t){return new ys(t)}function ws(t){this._context=t}function xs(t){return new ws(t)}function Rs(t){this._context=t}function _s(t){return new Rs(t)}cs.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}},ys.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ms(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ms(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ws.prototype={areaStart:bs,areaEnd:bs,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:ms(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},Rs.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:ms(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};class ks{constructor(t,e){this._context=t,this._x=e}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,e,t,e):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+e)/2,t,this._y0,t,e)}this._x0=t,this._y0=e}}function Es(t){return new ks(t,!0)}function Cs(t){return new ks(t,!1)}function Ss(t,e){this._basis=new ys(t),this._beta=e}Ss.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var i,a=t[0],r=e[0],o=t[n]-a,s=e[n]-r,c=-1;++c<=n;)i=c/n,this._basis.point(this._beta*t[c]+(1-this._beta)*(a+i*o),this._beta*e[c]+(1-this._beta)*(r+i*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};const Ts=function t(e){function n(t){return 1===e?new ys(t):new Ss(t,e)}return n.beta=function(e){return t(+e)},n}(.85);function As(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function Ds(t,e){this._context=t,this._k=(1-e)/6}Ds.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:As(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:As(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Is=function t(e){function n(t){return new Ds(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Ls(t,e){this._context=t,this._k=(1-e)/6}Ls.prototype={areaStart:bs,areaEnd:bs,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:As(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Os=function t(e){function n(t){return new Ls(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Ms(t,e){this._context=t,this._k=(1-e)/6}Ms.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:As(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Ns=function t(e){function n(t){return new Ms(t,e)}return n.tension=function(e){return t(+e)},n}(0);function Bs(t,e,n){var i=t._x1,a=t._y1,r=t._x2,o=t._y2;if(t._l01_a>$o){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);i=(i*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,a=(a*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>$o){var l=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);r=(r*l+t._x1*t._l23_2a-e*t._l12_2a)/u,o=(o*l+t._y1*t._l23_2a-n*t._l12_2a)/u}t._context.bezierCurveTo(i,a,r,o,t._x2,t._y2)}function Ps(t,e){this._context=t,this._alpha=e}Ps.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:Bs(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Fs=function t(e){function n(t){return e?new Ps(t,e):new Ds(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function js(t,e){this._context=t,this._alpha=e}js.prototype={areaStart:bs,areaEnd:bs,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Bs(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const $s=function t(e){function n(t){return e?new js(t,e):new Ls(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function zs(t,e){this._context=t,this._alpha=e}zs.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,i=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+i*i,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Bs(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};const Hs=function t(e){function n(t){return e?new zs(t,e):new Ms(t,0)}return n.alpha=function(e){return t(+e)},n}(.5);function Us(t){this._context=t}function Vs(t){return new Us(t)}function qs(t){return t<0?-1:1}function Ws(t,e,n){var i=t._x1-t._x0,a=e-t._x1,r=(t._y1-t._y0)/(i||a<0&&-0),o=(n-t._y1)/(a||i<0&&-0),s=(r*a+o*i)/(i+a);return(qs(r)+qs(o))*Math.min(Math.abs(r),Math.abs(o),.5*Math.abs(s))||0}function Ys(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function Gs(t,e,n){var i=t._x0,a=t._y0,r=t._x1,o=t._y1,s=(r-i)/3;t._context.bezierCurveTo(i+s,a+s*e,r-s,o-s*n,r,o)}function Zs(t){this._context=t}function Ks(t){this._context=new Xs(t)}function Xs(t){this._context=t}function Js(t){return new Zs(t)}function Qs(t){return new Ks(t)}function tc(t){this._context=t}function ec(t){var e,n,i=t.length-1,a=new Array(i),r=new Array(i),o=new Array(i);for(a[0]=0,r[0]=2,o[0]=t[0]+2*t[1],e=1;e<i-1;++e)a[e]=1,r[e]=4,o[e]=4*t[e]+2*t[e+1];for(a[i-1]=2,r[i-1]=7,o[i-1]=8*t[i-1]+t[i],e=1;e<i;++e)n=a[e]/r[e-1],r[e]-=n,o[e]-=n*o[e-1];for(a[i-1]=o[i-1]/r[i-1],e=i-2;e>=0;--e)a[e]=(o[e]-a[e+1])/r[e];for(r[i-1]=(t[i]+a[i-1])/2,e=0;e<i-1;++e)r[e]=2*t[e+1]-a[e+1];return[a,r]}function nc(t){return new tc(t)}function ic(t,e){this._context=t,this._t=e}function ac(t){return new ic(t,.5)}function rc(t){return new ic(t,0)}function oc(t){return new ic(t,1)}function sc(t,e,n){this.k=t,this.x=e,this.y=n}Us.prototype={areaStart:bs,areaEnd:bs,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}},Zs.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Gs(this,this._t0,Ys(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(e=+e,(t=+t)!==this._x1||e!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,Gs(this,Ys(this,n=Ws(this,t,e)),n);break;default:Gs(this,this._t0,n=Ws(this,t,e))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}},(Ks.prototype=Object.create(Zs.prototype)).point=function(t,e){Zs.prototype.point.call(this,e,t)},Xs.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,i,a,r){this._context.bezierCurveTo(e,t,i,n,r,a)}},tc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),2===n)this._context.lineTo(t[1],e[1]);else for(var i=ec(t),a=ec(e),r=0,o=1;o<n;++r,++o)this._context.bezierCurveTo(i[0][r],a[0][r],i[1][r],a[1][r],t[o],e[o]);(this._line||0!==this._line&&1===n)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}},ic.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}}this._x=t,this._y=e}},sc.prototype={constructor:sc,scale:function(t){return 1===t?this:new sc(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new sc(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};new sc(1,0,0);sc.prototype},23352:(t,e,n)=>{"use strict";function i(t,e,n,i){var r,o,s,c,l,u,d,h,f,g,p,b,m;if(r=e.y-t.y,s=t.x-e.x,l=e.x*t.y-t.x*e.y,f=r*n.x+s*n.y+l,g=r*i.x+s*i.y+l,!(0!==f&&0!==g&&a(f,g)||(o=i.y-n.y,c=n.x-i.x,u=i.x*n.y-n.x*i.y,d=o*t.x+c*t.y+u,h=o*e.x+c*e.y+u,0!==d&&0!==h&&a(d,h)||0==(p=r*c-o*s))))return b=Math.abs(p/2),{x:(m=s*u-c*l)<0?(m-b)/p:(m+b)/p,y:(m=o*l-r*u)<0?(m-b)/p:(m+b)/p}}function a(t,e){return t*e>0}function r(t,e,n){var a=t.x,r=t.y,o=[],s=Number.POSITIVE_INFINITY,c=Number.POSITIVE_INFINITY;e.forEach((function(t){s=Math.min(s,t.x),c=Math.min(c,t.y)}));for(var l=a-t.width/2-s,u=r-t.height/2-c,d=0;d<e.length;d++){var h=e[d],f=e[d<e.length-1?d+1:0],g=i(t,n,{x:l+h.x,y:u+h.y},{x:l+f.x,y:u+f.y});g&&o.push(g)}return o.length?(o.length>1&&o.sort((function(t,e){var i=t.x-n.x,a=t.y-n.y,r=Math.sqrt(i*i+a*a),o=e.x-n.x,s=e.y-n.y,c=Math.sqrt(o*o+s*s);return r<c?-1:r===c?0:1})),o[0]):(console.log("NO INTERSECTION FOUND, RETURN NODE CENTER",t),t)}n.d(e,{A:()=>r})},22930:(t,e,n)=>{"use strict";function i(t,e){var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=0===s?0:l*o/s,i=l):(o<0&&(c=-c),n=c,i=0===o?0:c*s/o),{x:a+n,y:r+i}}n.d(e,{q:()=>i})},43349:(t,e,n)=>{"use strict";n.d(e,{a:()=>a});var i=n(96225);function a(t,e){var n=t.append("foreignObject").attr("width","100000"),a=n.append("xhtml:div");a.attr("xmlns","http://www.w3.org/1999/xhtml");var r=e.label;switch(typeof r){case"function":a.insert(r);break;case"object":a.insert((function(){return r}));break;default:a.html(r)}i.bg(a,e.labelStyle),a.style("display","inline-block"),a.style("white-space","nowrap");var o=a.node().getBoundingClientRect();return n.attr("width",o.width).attr("height",o.height),n}},96225:(t,e,n)=>{"use strict";n.d(e,{$p:()=>u,O1:()=>o,WR:()=>d,bF:()=>r,bg:()=>l});var i=n(37514),a=n(73234);function r(t,e){return!!t.children(e).length}function o(t){return c(t.v)+":"+c(t.w)+":"+c(t.name)}var s=/:/g;function c(t){return t?String(t).replace(s,"\\:"):""}function l(t,e){e&&t.attr("style",e)}function u(t,e,n){e&&t.attr("class",e).attr("class",n+" "+t.attr("class"))}function d(t,e){var n=e.graph();if(i.Z(n)){var r=n.transition;if(a.Z(r))return r(t)}return t}},70277:(t,e,n)=>{"use strict";n.d(e,{bK:()=>Ge});var i=n(70870),a=n(66749),r=n(17452),o=n(62002),s=n(27961),c=n(43836),l=n(74379),u=n(45625);class d{constructor(){var t={};t._next=t._prev=t,this._sentinel=t}dequeue(){var t=this._sentinel,e=t._prev;if(e!==t)return h(e),e}enqueue(t){var e=this._sentinel;t._prev&&t._next&&h(t),t._next=e._next,e._next._prev=t,e._next=t,t._prev=e}toString(){for(var t=[],e=this._sentinel,n=e._prev;n!==e;)t.push(JSON.stringify(n,f)),n=n._prev;return"["+t.join(", ")+"]"}}function h(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function f(t,e){if("_next"!==t&&"_prev"!==t)return e}var g=o.Z(1);function p(t,e){if(t.nodeCount()<=1)return[];var n=function(t,e){var n=new u.k,a=0,r=0;i.Z(t.nodes(),(function(t){n.setNode(t,{v:t,in:0,out:0})})),i.Z(t.edges(),(function(t){var i=n.edge(t.v,t.w)||0,o=e(t),s=i+o;n.setEdge(t.v,t.w,s),r=Math.max(r,n.node(t.v).out+=o),a=Math.max(a,n.node(t.w).in+=o)}));var o=l.Z(r+a+3).map((function(){return new d})),s=a+1;return i.Z(n.nodes(),(function(t){m(o,s,n.node(t))})),{graph:n,buckets:o,zeroIdx:s}}(t,e||g),a=function(t,e,n){var i,a=[],r=e[e.length-1],o=e[0];for(;t.nodeCount();){for(;i=o.dequeue();)b(t,e,n,i);for(;i=r.dequeue();)b(t,e,n,i);if(t.nodeCount())for(var s=e.length-2;s>0;--s)if(i=e[s].dequeue()){a=a.concat(b(t,e,n,i,!0));break}}return a}(n.graph,n.buckets,n.zeroIdx);return s.Z(c.Z(a,(function(e){return t.outEdges(e.v,e.w)})))}function b(t,e,n,a,r){var o=r?[]:void 0;return i.Z(t.inEdges(a.v),(function(i){var a=t.edge(i),s=t.node(i.v);r&&o.push({v:i.v,w:i.w}),s.out-=a,m(e,n,s)})),i.Z(t.outEdges(a.v),(function(i){var a=t.edge(i),r=i.w,o=t.node(r);o.in-=a,m(e,n,o)})),t.removeNode(a.v),o}function m(t,e,n){n.out?n.in?t[n.out-n.in+e].enqueue(n):t[t.length-1].enqueue(n):t[0].enqueue(n)}function y(t){var e="greedy"===t.graph().acyclicer?p(t,function(t){return function(e){return t.edge(e).weight}}(t)):function(t){var e=[],n={},a={};function o(s){r.Z(a,s)||(a[s]=!0,n[s]=!0,i.Z(t.outEdges(s),(function(t){r.Z(n,t.w)?e.push(t):o(t.w)})),delete n[s])}return i.Z(t.nodes(),o),e}(t);i.Z(e,(function(e){var n=t.edge(e);t.removeEdge(e),n.forwardName=e.name,n.reversed=!0,t.setEdge(e.w,e.v,n,a.Z("rev"))}))}var v=n(31667),w=n(74752),x=n(79651);const R=function(t,e,n){(void 0!==n&&!(0,x.Z)(t[e],n)||void 0===n&&!(e in t))&&(0,w.Z)(t,e,n)};var _=n(61395),k=n(91050),E=n(12701),C=n(87215),S=n(73658),T=n(29169),A=n(27771),D=n(836),I=n(77008),L=n(73234),O=n(77226),M=n(37514),N=n(18843);const B=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]};var P=n(31899),F=n(32957);const j=function(t){return(0,P.Z)(t,(0,F.Z)(t))};const $=function(t,e,n,i,a,r,o){var s=B(t,n),c=B(e,n),l=o.get(c);if(l)R(t,n,l);else{var u=r?r(s,c,n+"",t,e,o):void 0,d=void 0===u;if(d){var h=(0,A.Z)(c),f=!h&&(0,I.Z)(c),g=!h&&!f&&(0,N.Z)(c);u=c,h||f||g?(0,A.Z)(s)?u=s:(0,D.Z)(s)?u=(0,C.Z)(s):f?(d=!1,u=(0,k.Z)(c,!0)):g?(d=!1,u=(0,E.Z)(c,!0)):u=[]:(0,M.Z)(c)||(0,T.Z)(c)?(u=s,(0,T.Z)(s)?u=j(s):(0,O.Z)(s)&&!(0,L.Z)(s)||(u=(0,S.Z)(c))):d=!1}d&&(o.set(c,u),a(u,c,i,r,o),o.delete(c)),R(t,n,u)}};const z=function t(e,n,i,a,r){e!==n&&(0,_.Z)(n,(function(o,s){if(r||(r=new v.Z),(0,O.Z)(o))$(e,n,s,i,t,a,r);else{var c=a?a(B(e,s),o,s+"",e,n,r):void 0;void 0===c&&(c=o),R(e,s,c)}}),F.Z)};var H=n(69581),U=n(50439);const V=function(t){return(0,H.Z)((function(e,n){var i=-1,a=n.length,r=a>1?n[a-1]:void 0,o=a>2?n[2]:void 0;for(r=t.length>3&&"function"==typeof r?(a--,r):void 0,o&&(0,U.Z)(n[0],n[1],o)&&(r=a<3?void 0:r,a=1),e=Object(e);++i<a;){var s=n[i];s&&t(e,s,i,r)}return e}))}((function(t,e,n){z(t,e,n)}));var q=n(61666),W=n(3688),Y=n(72714);const G=function(t,e,n){for(var i=-1,a=t.length;++i<a;){var r=t[i],o=e(r);if(null!=o&&(void 0===s?o==o&&!(0,Y.Z)(o):n(o,s)))var s=o,c=r}return c};const Z=function(t,e){return t>e};var K=n(69203);const X=function(t){return t&&t.length?G(t,K.Z,Z):void 0};const J=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0};var Q=n(2693),tt=n(74765);const et=function(t,e){var n={};return e=(0,tt.Z)(e,3),(0,Q.Z)(t,(function(t,i,a){(0,w.Z)(n,i,e(t,i,a))})),n};var nt=n(49360);const it=function(t,e){return t<e};const at=function(t){return t&&t.length?G(t,K.Z,it):void 0};var rt=n(66092);const ot=function(){return rt.Z.Date.now()};function st(t,e,n,i){var r;do{r=a.Z(i)}while(t.hasNode(r));return n.dummy=e,t.setNode(r,n),r}function ct(t){var e=new u.k({multigraph:t.isMultigraph()}).setGraph(t.graph());return i.Z(t.nodes(),(function(n){t.children(n).length||e.setNode(n,t.node(n))})),i.Z(t.edges(),(function(n){e.setEdge(n,t.edge(n))})),e}function lt(t,e){var n,i,a=t.x,r=t.y,o=e.x-a,s=e.y-r,c=t.width/2,l=t.height/2;if(!o&&!s)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*c>Math.abs(o)*l?(s<0&&(l=-l),n=l*o/s,i=l):(o<0&&(c=-c),n=c,i=c*s/o),{x:a+n,y:r+i}}function ut(t){var e=c.Z(l.Z(ht(t)+1),(function(){return[]}));return i.Z(t.nodes(),(function(n){var i=t.node(n),a=i.rank;nt.Z(a)||(e[a][i.order]=n)})),e}function dt(t,e,n,i){var a={width:0,height:0};return arguments.length>=4&&(a.rank=n,a.order=i),st(t,"border",a,e)}function ht(t){return X(c.Z(t.nodes(),(function(e){var n=t.node(e).rank;if(!nt.Z(n))return n})))}function ft(t,e){var n=ot();try{return e()}finally{console.log(t+" time: "+(ot()-n)+"ms")}}function gt(t,e){return e()}function pt(t,e,n,i,a,r){var o={width:0,height:0,rank:r,borderType:e},s=a[e][r-1],c=st(t,"border",o,n);a[e][r]=c,t.setParent(c,i),s&&t.setEdge(s,c,{weight:1})}function bt(t){var e=t.graph().rankdir.toLowerCase();"bt"!==e&&"rl"!==e||function(t){i.Z(t.nodes(),(function(e){vt(t.node(e))})),i.Z(t.edges(),(function(e){var n=t.edge(e);i.Z(n.points,vt),r.Z(n,"y")&&vt(n)}))}(t),"lr"!==e&&"rl"!==e||(!function(t){i.Z(t.nodes(),(function(e){wt(t.node(e))})),i.Z(t.edges(),(function(e){var n=t.edge(e);i.Z(n.points,wt),r.Z(n,"x")&&wt(n)}))}(t),mt(t))}function mt(t){i.Z(t.nodes(),(function(e){yt(t.node(e))})),i.Z(t.edges(),(function(e){yt(t.edge(e))}))}function yt(t){var e=t.width;t.width=t.height,t.height=e}function vt(t){t.y=-t.y}function wt(t){var e=t.x;t.x=t.y,t.y=e}function xt(t){t.graph().dummyChains=[],i.Z(t.edges(),(function(e){!function(t,e){var n,i,a,r=e.v,o=t.node(r).rank,s=e.w,c=t.node(s).rank,l=e.name,u=t.edge(e),d=u.labelRank;if(c===o+1)return;for(t.removeEdge(e),a=0,++o;o<c;++a,++o)u.points=[],n=st(t,"edge",i={width:0,height:0,edgeLabel:u,edgeObj:e,rank:o},"_d"),o===d&&(i.width=u.width,i.height=u.height,i.dummy="edge-label",i.labelpos=u.labelpos),t.setEdge(r,n,{weight:u.weight},l),0===a&&t.graph().dummyChains.push(n),r=n;t.setEdge(r,s,{weight:u.weight},l)}(t,e)}))}const Rt=function(t,e){return t&&t.length?G(t,(0,tt.Z)(e,2),it):void 0};function _t(t){var e={};i.Z(t.sources(),(function n(i){var a=t.node(i);if(r.Z(e,i))return a.rank;e[i]=!0;var o=at(c.Z(t.outEdges(i),(function(e){return n(e.w)-t.edge(e).minlen})));return o!==Number.POSITIVE_INFINITY&&null!=o||(o=0),a.rank=o}))}function kt(t,e){return t.node(e.w).rank-t.node(e.v).rank-t.edge(e).minlen}function Et(t){var e,n,i=new u.k({directed:!1}),a=t.nodes()[0],r=t.nodeCount();for(i.setNode(a,{});Ct(i,t)<r;)e=St(i,t),n=i.hasNode(e.v)?kt(t,e):-kt(t,e),Tt(i,t,n);return i}function Ct(t,e){return i.Z(t.nodes(),(function n(a){i.Z(e.nodeEdges(a),(function(i){var r=i.v,o=a===r?i.w:r;t.hasNode(o)||kt(e,i)||(t.setNode(o,{}),t.setEdge(a,o,{}),n(o))}))})),t.nodeCount()}function St(t,e){return Rt(e.edges(),(function(n){if(t.hasNode(n.v)!==t.hasNode(n.w))return kt(e,n)}))}function Tt(t,e,n){i.Z(t.nodes(),(function(t){e.node(t).rank+=n}))}var At=n(50585),Dt=n(17179);const It=function(t){return function(e,n,i){var a=Object(e);if(!(0,At.Z)(e)){var r=(0,tt.Z)(n,3);e=(0,Dt.Z)(e),n=function(t){return r(a[t],t,a)}}var o=t(e,n,i);return o>-1?a[r?e[o]:o]:void 0}};var Lt=n(21692),Ot=n(94099);const Mt=function(t){var e=(0,Ot.Z)(t),n=e%1;return e==e?n?e-n:e:0};var Nt=Math.max;const Bt=It((function(t,e,n){var i=null==t?0:t.length;if(!i)return-1;var a=null==n?0:Mt(n);return a<0&&(a=Nt(i+a,0)),(0,Lt.Z)(t,(0,tt.Z)(e,3),a)}));var Pt=n(13445);o.Z(1);o.Z(1);n(39473),n(83970),n(93589),n(18533);(0,n(54193).Z)("length");RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var Ft="[\\ud800-\\udfff]",jt="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",$t="\\ud83c[\\udffb-\\udfff]",zt="[^\\ud800-\\udfff]",Ht="(?:\\ud83c[\\udde6-\\uddff]){2}",Ut="[\\ud800-\\udbff][\\udc00-\\udfff]",Vt="(?:"+jt+"|"+$t+")"+"?",qt="[\\ufe0e\\ufe0f]?",Wt=qt+Vt+("(?:\\u200d(?:"+[zt,Ht,Ut].join("|")+")"+qt+Vt+")*"),Yt="(?:"+[zt+jt+"?",jt,Ht,Ut,Ft].join("|")+")";RegExp($t+"(?="+$t+")|"+Yt+Wt,"g");function Gt(){}function Zt(t,e,n){A.Z(e)||(e=[e]);var a=(t.isDirected()?t.successors:t.neighbors).bind(t),r=[],o={};return i.Z(e,(function(e){if(!t.hasNode(e))throw new Error("Graph does not have node: "+e);Kt(t,e,"post"===n,o,a,r)})),r}function Kt(t,e,n,a,o,s){r.Z(a,e)||(a[e]=!0,n||s.push(e),i.Z(o(e),(function(e){Kt(t,e,n,a,o,s)})),n&&s.push(e))}Gt.prototype=new Error;n(52544);function Xt(t){t=function(t){var e=(new u.k).setGraph(t.graph());return i.Z(t.nodes(),(function(n){e.setNode(n,t.node(n))})),i.Z(t.edges(),(function(n){var i=e.edge(n.v,n.w)||{weight:0,minlen:1},a=t.edge(n);e.setEdge(n.v,n.w,{weight:i.weight+a.weight,minlen:Math.max(i.minlen,a.minlen)})})),e}(t),_t(t);var e,n=Et(t);for(te(n),Jt(n,t);e=ne(n);)ae(n,t,e,ie(n,t,e))}function Jt(t,e){var n=function(t,e){return Zt(t,e,"post")}(t,t.nodes());n=n.slice(0,n.length-1),i.Z(n,(function(n){!function(t,e,n){var i=t.node(n).parent;t.edge(n,i).cutvalue=Qt(t,e,n)}(t,e,n)}))}function Qt(t,e,n){var a=t.node(n).parent,r=!0,o=e.edge(n,a),s=0;return o||(r=!1,o=e.edge(a,n)),s=o.weight,i.Z(e.nodeEdges(n),(function(i){var o,c,l=i.v===n,u=l?i.w:i.v;if(u!==a){var d=l===r,h=e.edge(i).weight;if(s+=d?h:-h,o=n,c=u,t.hasEdge(o,c)){var f=t.edge(n,u).cutvalue;s+=d?-f:f}}})),s}function te(t,e){arguments.length<2&&(e=t.nodes()[0]),ee(t,{},1,e)}function ee(t,e,n,a,o){var s=n,c=t.node(a);return e[a]=!0,i.Z(t.neighbors(a),(function(i){r.Z(e,i)||(n=ee(t,e,n,i,a))})),c.low=s,c.lim=n++,o?c.parent=o:delete c.parent,n}function ne(t){return Bt(t.edges(),(function(e){return t.edge(e).cutvalue<0}))}function ie(t,e,n){var i=n.v,a=n.w;e.hasEdge(i,a)||(i=n.w,a=n.v);var r=t.node(i),o=t.node(a),s=r,c=!1;r.lim>o.lim&&(s=o,c=!0);var l=Pt.Z(e.edges(),(function(e){return c===re(t,t.node(e.v),s)&&c!==re(t,t.node(e.w),s)}));return Rt(l,(function(t){return kt(e,t)}))}function ae(t,e,n,a){var r=n.v,o=n.w;t.removeEdge(r,o),t.setEdge(a.v,a.w,{}),te(t),Jt(t,e),function(t,e){var n=Bt(t.nodes(),(function(t){return!e.node(t).parent})),a=function(t,e){return Zt(t,e,"pre")}(t,n);a=a.slice(1),i.Z(a,(function(n){var i=t.node(n).parent,a=e.edge(n,i),r=!1;a||(a=e.edge(i,n),r=!0),e.node(n).rank=e.node(i).rank+(r?a.minlen:-a.minlen)}))}(t,e)}function re(t,e,n){return n.low<=e.lim&&e.lim<=n.lim}function oe(t){switch(t.graph().ranker){case"network-simplex":default:ce(t);break;case"tight-tree":!function(t){_t(t),Et(t)}(t);break;case"longest-path":se(t)}}Xt.initLowLimValues=te,Xt.initCutValues=Jt,Xt.calcCutValue=Qt,Xt.leaveEdge=ne,Xt.enterEdge=ie,Xt.exchangeEdges=ae;var se=_t;function ce(t){Xt(t)}var le=n(34148),ue=n(92344);function de(t){var e=st(t,"root",{},"_root"),n=function(t){var e={};function n(a,r){var o=t.children(a);o&&o.length&&i.Z(o,(function(t){n(t,r+1)})),e[a]=r}return i.Z(t.children(),(function(t){n(t,1)})),e}(t),a=X(le.Z(n))-1,r=2*a+1;t.graph().nestingRoot=e,i.Z(t.edges(),(function(e){t.edge(e).minlen*=r}));var o=function(t){return ue.Z(t.edges(),(function(e,n){return e+t.edge(n).weight}),0)}(t)+1;i.Z(t.children(),(function(i){he(t,e,r,o,a,n,i)})),t.graph().nodeRankFactor=r}function he(t,e,n,a,r,o,s){var c=t.children(s);if(c.length){var l=dt(t,"_bt"),u=dt(t,"_bb"),d=t.node(s);t.setParent(l,s),d.borderTop=l,t.setParent(u,s),d.borderBottom=u,i.Z(c,(function(i){he(t,e,n,a,r,o,i);var c=t.node(i),d=c.borderTop?c.borderTop:i,h=c.borderBottom?c.borderBottom:i,f=c.borderTop?a:2*a,g=d!==h?1:r-o[s]+1;t.setEdge(l,d,{weight:f,minlen:g,nestingEdge:!0}),t.setEdge(h,u,{weight:f,minlen:g,nestingEdge:!0})})),t.parent(s)||t.setEdge(e,l,{weight:0,minlen:r+o[s]})}else s!==e&&t.setEdge(e,s,{weight:0,minlen:n})}var fe=n(48451);const ge=function(t){return(0,fe.Z)(t,5)};function pe(t,e,n){var o=function(t){var e;for(;t.hasNode(e=a.Z("_root")););return e}(t),s=new u.k({compound:!0}).setGraph({root:o}).setDefaultNodeLabel((function(e){return t.node(e)}));return i.Z(t.nodes(),(function(a){var c=t.node(a),l=t.parent(a);(c.rank===e||c.minRank<=e&&e<=c.maxRank)&&(s.setNode(a),s.setParent(a,l||o),i.Z(t[n](a),(function(e){var n=e.v===a?e.w:e.v,i=s.edge(n,a),r=nt.Z(i)?0:i.weight;s.setEdge(n,a,{weight:t.edge(e).weight+r})})),r.Z(c,"minRank")&&s.setNode(a,{borderLeft:c.borderLeft[e],borderRight:c.borderRight[e]}))})),s}var be=n(72954);const me=function(t,e,n){for(var i=-1,a=t.length,r=e.length,o={};++i<a;){var s=i<r?e[i]:void 0;n(o,t[i],s)}return o};const ye=function(t,e){return me(t||[],e||[],be.Z)};var ve=n(10626),we=n(74073),xe=n(13317),Re=n(21018);const _e=function(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t};var ke=n(21162);const Ee=function(t,e){if(t!==e){var n=void 0!==t,i=null===t,a=t==t,r=(0,Y.Z)(t),o=void 0!==e,s=null===e,c=e==e,l=(0,Y.Z)(e);if(!s&&!l&&!r&&t>e||r&&o&&c&&!s&&!l||i&&o&&c||!n&&c||!a)return 1;if(!i&&!r&&!l&&t<e||l&&n&&a&&!i&&!r||s&&n&&a||!o&&a||!c)return-1}return 0};const Ce=function(t,e,n){for(var i=-1,a=t.criteria,r=e.criteria,o=a.length,s=n.length;++i<o;){var c=Ee(a[i],r[i]);if(c)return i>=s?c:c*("desc"==n[i]?-1:1)}return t.index-e.index};const Se=function(t,e,n){e=e.length?(0,we.Z)(e,(function(t){return(0,A.Z)(t)?function(e){return(0,xe.Z)(e,1===t.length?t[0]:t)}:t})):[K.Z];var i=-1;e=(0,we.Z)(e,(0,ke.Z)(tt.Z));var a=(0,Re.Z)(t,(function(t,n,a){return{criteria:(0,we.Z)(e,(function(e){return e(t)})),index:++i,value:t}}));return _e(a,(function(t,e){return Ce(t,e,n)}))};const Te=(0,H.Z)((function(t,e){if(null==t)return[];var n=e.length;return n>1&&(0,U.Z)(t,e[0],e[1])?e=[]:n>2&&(0,U.Z)(e[0],e[1],e[2])&&(e=[e[0]]),Se(t,(0,ve.Z)(e,1),[])}));function Ae(t,e){for(var n=0,i=1;i<e.length;++i)n+=De(t,e[i-1],e[i]);return n}function De(t,e,n){for(var a=ye(n,c.Z(n,(function(t,e){return e}))),r=s.Z(c.Z(e,(function(e){return Te(c.Z(t.outEdges(e),(function(e){return{pos:a[e.w],weight:t.edge(e).weight}})),"pos")}))),o=1;o<n.length;)o<<=1;var l=2*o-1;o-=1;var u=c.Z(new Array(l),(function(){return 0})),d=0;return i.Z(r.forEach((function(t){var e=t.pos+o;u[e]+=t.weight;for(var n=0;e>0;)e%2&&(n+=u[e+1]),u[e=e-1>>1]+=t.weight;d+=t.weight*n}))),d}function Ie(t,e){var n={};return i.Z(t,(function(t,e){var i=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:e};nt.Z(t.barycenter)||(i.barycenter=t.barycenter,i.weight=t.weight)})),i.Z(e.edges(),(function(t){var e=n[t.v],i=n[t.w];nt.Z(e)||nt.Z(i)||(i.indegree++,e.out.push(n[t.w]))})),function(t){var e=[];function n(t){return function(e){e.merged||(nt.Z(e.barycenter)||nt.Z(t.barycenter)||e.barycenter>=t.barycenter)&&function(t,e){var n=0,i=0;t.weight&&(n+=t.barycenter*t.weight,i+=t.weight);e.weight&&(n+=e.barycenter*e.weight,i+=e.weight);t.vs=e.vs.concat(t.vs),t.barycenter=n/i,t.weight=i,t.i=Math.min(e.i,t.i),e.merged=!0}(t,e)}}function a(e){return function(n){n.in.push(e),0==--n.indegree&&t.push(n)}}for(;t.length;){var r=t.pop();e.push(r),i.Z(r.in.reverse(),n(r)),i.Z(r.out,a(r))}return c.Z(Pt.Z(e,(function(t){return!t.merged})),(function(t){return q.Z(t,["vs","i","barycenter","weight"])}))}(Pt.Z(n,(function(t){return!t.indegree})))}function Le(t,e){var n,a=function(t,e){var n={lhs:[],rhs:[]};return i.Z(t,(function(t){e(t)?n.lhs.push(t):n.rhs.push(t)})),n}(t,(function(t){return r.Z(t,"barycenter")})),o=a.lhs,c=Te(a.rhs,(function(t){return-t.i})),l=[],u=0,d=0,h=0;o.sort((n=!!e,function(t,e){return t.barycenter<e.barycenter?-1:t.barycenter>e.barycenter?1:n?e.i-t.i:t.i-e.i})),h=Oe(l,c,h),i.Z(o,(function(t){h+=t.vs.length,l.push(t.vs),u+=t.barycenter*t.weight,d+=t.weight,h=Oe(l,c,h)}));var f={vs:s.Z(l)};return d&&(f.barycenter=u/d,f.weight=d),f}function Oe(t,e,n){for(var i;e.length&&(i=J(e)).i<=n;)e.pop(),t.push(i.vs),n++;return n}function Me(t,e,n,a){var o=t.children(e),l=t.node(e),u=l?l.borderLeft:void 0,d=l?l.borderRight:void 0,h={};u&&(o=Pt.Z(o,(function(t){return t!==u&&t!==d})));var f=function(t,e){return c.Z(e,(function(e){var n=t.inEdges(e);if(n.length){var i=ue.Z(n,(function(e,n){var i=t.edge(n),a=t.node(n.v);return{sum:e.sum+i.weight*a.order,weight:e.weight+i.weight}}),{sum:0,weight:0});return{v:e,barycenter:i.sum/i.weight,weight:i.weight}}return{v:e}}))}(t,o);i.Z(f,(function(e){if(t.children(e.v).length){var i=Me(t,e.v,n,a);h[e.v]=i,r.Z(i,"barycenter")&&(o=e,s=i,nt.Z(o.barycenter)?(o.barycenter=s.barycenter,o.weight=s.weight):(o.barycenter=(o.barycenter*o.weight+s.barycenter*s.weight)/(o.weight+s.weight),o.weight+=s.weight))}var o,s}));var g=Ie(f,n);!function(t,e){i.Z(t,(function(t){t.vs=s.Z(t.vs.map((function(t){return e[t]?e[t].vs:t})))}))}(g,h);var p=Le(g,a);if(u&&(p.vs=s.Z([u,p.vs,d]),t.predecessors(u).length)){var b=t.node(t.predecessors(u)[0]),m=t.node(t.predecessors(d)[0]);r.Z(p,"barycenter")||(p.barycenter=0,p.weight=0),p.barycenter=(p.barycenter*p.weight+b.order+m.order)/(p.weight+2),p.weight+=2}return p}function Ne(t){var e=ht(t),n=Be(t,l.Z(1,e+1),"inEdges"),a=Be(t,l.Z(e-1,-1,-1),"outEdges"),o=function(t){var e={},n=Pt.Z(t.nodes(),(function(e){return!t.children(e).length})),a=X(c.Z(n,(function(e){return t.node(e).rank}))),o=c.Z(l.Z(a+1),(function(){return[]})),s=Te(n,(function(e){return t.node(e).rank}));return i.Z(s,(function n(a){if(!r.Z(e,a)){e[a]=!0;var s=t.node(a);o[s.rank].push(a),i.Z(t.successors(a),n)}})),o}(t);Fe(t,o);for(var s,u=Number.POSITIVE_INFINITY,d=0,h=0;h<4;++d,++h){Pe(d%2?n:a,d%4>=2);var f=Ae(t,o=ut(t));f<u&&(h=0,s=ge(o),u=f)}Fe(t,s)}function Be(t,e,n){return c.Z(e,(function(e){return pe(t,e,n)}))}function Pe(t,e){var n=new u.k;i.Z(t,(function(t){var a=t.graph().root,r=Me(t,a,n,e);i.Z(r.vs,(function(e,n){t.node(e).order=n})),function(t,e,n){var a,r={};i.Z(n,(function(n){for(var i,o,s=t.parent(n);s;){if((i=t.parent(s))?(o=r[i],r[i]=s):(o=a,a=s),o&&o!==s)return void e.setEdge(o,s);s=i}}))}(t,n,r.vs)}))}function Fe(t,e){i.Z(e,(function(e){i.Z(e,(function(e,n){t.node(e).order=n}))}))}function je(t){var e=function(t){var e={},n=0;function a(r){var o=n;i.Z(t.children(r),a),e[r]={low:o,lim:n++}}return i.Z(t.children(),a),e}(t);i.Z(t.graph().dummyChains,(function(n){for(var i=t.node(n),a=i.edgeObj,r=function(t,e,n,i){var a,r,o=[],s=[],c=Math.min(e[n].low,e[i].low),l=Math.max(e[n].lim,e[i].lim);a=n;do{a=t.parent(a),o.push(a)}while(a&&(e[a].low>c||l>e[a].lim));r=a,a=i;for(;(a=t.parent(a))!==r;)s.push(a);return{path:o.concat(s.reverse()),lca:r}}(t,e,a.v,a.w),o=r.path,s=r.lca,c=0,l=o[c],u=!0;n!==a.w;){if(i=t.node(n),u){for(;(l=o[c])!==s&&t.node(l).maxRank<i.rank;)c++;l===s&&(u=!1)}if(!u){for(;c<o.length-1&&t.node(l=o[c+1]).minRank<=i.rank;)c++;l=o[c]}t.setParent(n,l),n=t.successors(n)[0]}}))}var $e=n(68882);const ze=function(t,e){return null==t?t:(0,_.Z)(t,(0,$e.Z)(e),F.Z)};function He(t,e){var n={};return ue.Z(e,(function(e,a){var r=0,o=0,s=e.length,c=J(a);return i.Z(a,(function(e,l){var u=function(t,e){if(t.node(e).dummy)return Bt(t.predecessors(e),(function(e){return t.node(e).dummy}))}(t,e),d=u?t.node(u).order:s;(u||e===c)&&(i.Z(a.slice(o,l+1),(function(e){i.Z(t.predecessors(e),(function(i){var a=t.node(i),o=a.order;!(o<r||d<o)||a.dummy&&t.node(e).dummy||Ue(n,i,e)}))})),o=l+1,r=d)})),a})),n}function Ue(t,e,n){if(e>n){var i=e;e=n,n=i}var a=t[e];a||(t[e]=a={}),a[n]=!0}function Ve(t,e,n){if(e>n){var i=e;e=n,n=i}return r.Z(t[e],n)}function qe(t,e,n,a,o){var s={},c=function(t,e,n,a){var o=new u.k,s=t.graph(),c=function(t,e,n){return function(i,a,o){var s,c=i.node(a),l=i.node(o),u=0;if(u+=c.width/2,r.Z(c,"labelpos"))switch(c.labelpos.toLowerCase()){case"l":s=-c.width/2;break;case"r":s=c.width/2}if(s&&(u+=n?s:-s),s=0,u+=(c.dummy?e:t)/2,u+=(l.dummy?e:t)/2,u+=l.width/2,r.Z(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":s=l.width/2;break;case"r":s=-l.width/2}return s&&(u+=n?s:-s),s=0,u}}(s.nodesep,s.edgesep,a);return i.Z(e,(function(e){var a;i.Z(e,(function(e){var i=n[e];if(o.setNode(i),a){var r=n[a],s=o.edge(r,i);o.setEdge(r,i,Math.max(c(t,e,a),s||0))}a=e}))})),o}(t,e,n,o),l=o?"borderLeft":"borderRight";function d(t,e){for(var n=c.nodes(),i=n.pop(),a={};i;)a[i]?t(i):(a[i]=!0,n.push(i),n=n.concat(e(i))),i=n.pop()}return d((function(t){s[t]=c.inEdges(t).reduce((function(t,e){return Math.max(t,s[e.v]+c.edge(e))}),0)}),c.predecessors.bind(c)),d((function(e){var n=c.outEdges(e).reduce((function(t,e){return Math.min(t,s[e.w]-c.edge(e))}),Number.POSITIVE_INFINITY),i=t.node(e);n!==Number.POSITIVE_INFINITY&&i.borderType!==l&&(s[e]=Math.max(s[e],n))}),c.successors.bind(c)),i.Z(a,(function(t){s[t]=s[n[t]]})),s}function We(t){var e,n=ut(t),a=V(He(t,n),function(t,e){var n={};function a(e,a,r,o,s){var c;i.Z(l.Z(a,r),(function(a){c=e[a],t.node(c).dummy&&i.Z(t.predecessors(c),(function(e){var i=t.node(e);i.dummy&&(i.order<o||i.order>s)&&Ue(n,e,c)}))}))}return ue.Z(e,(function(e,n){var r,o=-1,s=0;return i.Z(n,(function(i,c){if("border"===t.node(i).dummy){var l=t.predecessors(i);l.length&&(r=t.node(l[0]).order,a(n,s,c,o,r),s=c,o=r)}a(n,s,n.length,r,e.length)})),n})),n}(t,n)),r={};i.Z(["u","d"],(function(o){e="u"===o?n:le.Z(n).reverse(),i.Z(["l","r"],(function(n){"r"===n&&(e=c.Z(e,(function(t){return le.Z(t).reverse()})));var s=("u"===o?t.predecessors:t.successors).bind(t),l=function(t,e,n,a){var r={},o={},s={};return i.Z(e,(function(t){i.Z(t,(function(t,e){r[t]=t,o[t]=t,s[t]=e}))})),i.Z(e,(function(t){var e=-1;i.Z(t,(function(t){var i=a(t);if(i.length){i=Te(i,(function(t){return s[t]}));for(var c=(i.length-1)/2,l=Math.floor(c),u=Math.ceil(c);l<=u;++l){var d=i[l];o[t]===t&&e<s[d]&&!Ve(n,t,d)&&(o[d]=t,o[t]=r[t]=r[d],e=s[d])}}}))})),{root:r,align:o}}(0,e,a,s),u=qe(t,e,l.root,l.align,"r"===n);"r"===n&&(u=et(u,(function(t){return-t}))),r[o+n]=u}))}));var o=function(t,e){return Rt(le.Z(e),(function(e){var n=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return ze(e,(function(e,a){var r=function(t,e){return t.node(e).width}(t,a)/2;n=Math.max(e+r,n),i=Math.min(e-r,i)})),n-i}))}(t,r);return function(t,e){var n=le.Z(e),a=at(n),r=X(n);i.Z(["u","d"],(function(n){i.Z(["l","r"],(function(i){var o,s=n+i,c=t[s];if(c!==e){var l=le.Z(c);(o="l"===i?a-at(l):r-X(l))&&(t[s]=et(c,(function(t){return t+o})))}}))}))}(r,o),function(t,e){return et(t.ul,(function(n,i){if(e)return t[e.toLowerCase()][i];var a=Te(c.Z(t,i));return(a[1]+a[2])/2}))}(r,t.graph().align)}function Ye(t){(function(t){var e=ut(t),n=t.graph().ranksep,a=0;i.Z(e,(function(e){var r=X(c.Z(e,(function(e){return t.node(e).height})));i.Z(e,(function(e){t.node(e).y=a+r/2})),a+=r+n}))})(t=ct(t)),i.Z(We(t),(function(e,n){t.node(n).x=e}))}function Ge(t,e){var n=e&&e.debugTiming?ft:gt;n("layout",(function(){var e=n(" buildLayoutGraph",(function(){return function(t){var e=new u.k({multigraph:!0,compound:!0}),n=rn(t.graph());return e.setGraph(V({},Ke,an(n,Ze),q.Z(n,Xe))),i.Z(t.nodes(),(function(n){var i=rn(t.node(n));e.setNode(n,W.Z(an(i,Je),Qe)),e.setParent(n,t.parent(n))})),i.Z(t.edges(),(function(n){var i=rn(t.edge(n));e.setEdge(n,V({},en,an(i,tn),q.Z(i,nn)))})),e}(t)}));n(" runLayout",(function(){!function(t,e){e(" makeSpaceForEdgeLabels",(function(){!function(t){var e=t.graph();e.ranksep/=2,i.Z(t.edges(),(function(n){var i=t.edge(n);i.minlen*=2,"c"!==i.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?i.width+=i.labeloffset:i.height+=i.labeloffset)}))}(t)})),e(" removeSelfEdges",(function(){!function(t){i.Z(t.edges(),(function(e){if(e.v===e.w){var n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:e,label:t.edge(e)}),t.removeEdge(e)}}))}(t)})),e(" acyclic",(function(){y(t)})),e(" nestingGraph.run",(function(){de(t)})),e(" rank",(function(){oe(ct(t))})),e(" injectEdgeLabelProxies",(function(){!function(t){i.Z(t.edges(),(function(e){var n=t.edge(e);if(n.width&&n.height){var i=t.node(e.v),a={rank:(t.node(e.w).rank-i.rank)/2+i.rank,e:e};st(t,"edge-proxy",a,"_ep")}}))}(t)})),e(" removeEmptyRanks",(function(){!function(t){var e=at(c.Z(t.nodes(),(function(e){return t.node(e).rank}))),n=[];i.Z(t.nodes(),(function(i){var a=t.node(i).rank-e;n[a]||(n[a]=[]),n[a].push(i)}));var a=0,r=t.graph().nodeRankFactor;i.Z(n,(function(e,n){nt.Z(e)&&n%r!=0?--a:a&&i.Z(e,(function(e){t.node(e).rank+=a}))}))}(t)})),e(" nestingGraph.cleanup",(function(){!function(t){var e=t.graph();t.removeNode(e.nestingRoot),delete e.nestingRoot,i.Z(t.edges(),(function(e){t.edge(e).nestingEdge&&t.removeEdge(e)}))}(t)})),e(" normalizeRanks",(function(){!function(t){var e=at(c.Z(t.nodes(),(function(e){return t.node(e).rank})));i.Z(t.nodes(),(function(n){var i=t.node(n);r.Z(i,"rank")&&(i.rank-=e)}))}(t)})),e(" assignRankMinMax",(function(){!function(t){var e=0;i.Z(t.nodes(),(function(n){var i=t.node(n);i.borderTop&&(i.minRank=t.node(i.borderTop).rank,i.maxRank=t.node(i.borderBottom).rank,e=X(e,i.maxRank))})),t.graph().maxRank=e}(t)})),e(" removeEdgeLabelProxies",(function(){!function(t){i.Z(t.nodes(),(function(e){var n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))}))}(t)})),e(" normalize.run",(function(){xt(t)})),e(" parentDummyChains",(function(){je(t)})),e(" addBorderSegments",(function(){!function(t){i.Z(t.children(),(function e(n){var a=t.children(n),o=t.node(n);if(a.length&&i.Z(a,e),r.Z(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(var s=o.minRank,c=o.maxRank+1;s<c;++s)pt(t,"borderLeft","_bl",n,o,s),pt(t,"borderRight","_br",n,o,s)}}))}(t)})),e(" order",(function(){Ne(t)})),e(" insertSelfEdges",(function(){!function(t){var e=ut(t);i.Z(e,(function(e){var n=0;i.Z(e,(function(e,a){var r=t.node(e);r.order=a+n,i.Z(r.selfEdges,(function(e){st(t,"selfedge",{width:e.label.width,height:e.label.height,rank:r.rank,order:a+ ++n,e:e.e,label:e.label},"_se")})),delete r.selfEdges}))}))}(t)})),e(" adjustCoordinateSystem",(function(){!function(t){var e=t.graph().rankdir.toLowerCase();"lr"!==e&&"rl"!==e||mt(t)}(t)})),e(" position",(function(){Ye(t)})),e(" positionSelfEdges",(function(){!function(t){i.Z(t.nodes(),(function(e){var n=t.node(e);if("selfedge"===n.dummy){var i=t.node(n.e.v),a=i.x+i.width/2,r=i.y,o=n.x-a,s=i.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:a+2*o/3,y:r-s},{x:a+5*o/6,y:r-s},{x:a+o,y:r},{x:a+5*o/6,y:r+s},{x:a+2*o/3,y:r+s}],n.label.x=n.x,n.label.y=n.y}}))}(t)})),e(" removeBorderNodes",(function(){!function(t){i.Z(t.nodes(),(function(e){if(t.children(e).length){var n=t.node(e),i=t.node(n.borderTop),a=t.node(n.borderBottom),r=t.node(J(n.borderLeft)),o=t.node(J(n.borderRight));n.width=Math.abs(o.x-r.x),n.height=Math.abs(a.y-i.y),n.x=r.x+n.width/2,n.y=i.y+n.height/2}})),i.Z(t.nodes(),(function(e){"border"===t.node(e).dummy&&t.removeNode(e)}))}(t)})),e(" normalize.undo",(function(){!function(t){i.Z(t.graph().dummyChains,(function(e){var n,i=t.node(e),a=i.edgeLabel;for(t.setEdge(i.edgeObj,a);i.dummy;)n=t.successors(e)[0],t.removeNode(e),a.points.push({x:i.x,y:i.y}),"edge-label"===i.dummy&&(a.x=i.x,a.y=i.y,a.width=i.width,a.height=i.height),e=n,i=t.node(e)}))}(t)})),e(" fixupEdgeLabelCoords",(function(){!function(t){i.Z(t.edges(),(function(e){var n=t.edge(e);if(r.Z(n,"x"))switch("l"!==n.labelpos&&"r"!==n.labelpos||(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}}))}(t)})),e(" undoCoordinateSystem",(function(){bt(t)})),e(" translateGraph",(function(){!function(t){var e=Number.POSITIVE_INFINITY,n=0,a=Number.POSITIVE_INFINITY,o=0,s=t.graph(),c=s.marginx||0,l=s.marginy||0;function u(t){var i=t.x,r=t.y,s=t.width,c=t.height;e=Math.min(e,i-s/2),n=Math.max(n,i+s/2),a=Math.min(a,r-c/2),o=Math.max(o,r+c/2)}i.Z(t.nodes(),(function(e){u(t.node(e))})),i.Z(t.edges(),(function(e){var n=t.edge(e);r.Z(n,"x")&&u(n)})),e-=c,a-=l,i.Z(t.nodes(),(function(n){var i=t.node(n);i.x-=e,i.y-=a})),i.Z(t.edges(),(function(n){var o=t.edge(n);i.Z(o.points,(function(t){t.x-=e,t.y-=a})),r.Z(o,"x")&&(o.x-=e),r.Z(o,"y")&&(o.y-=a)})),s.width=n-e+c,s.height=o-a+l}(t)})),e(" assignNodeIntersects",(function(){!function(t){i.Z(t.edges(),(function(e){var n,i,a=t.edge(e),r=t.node(e.v),o=t.node(e.w);a.points?(n=a.points[0],i=a.points[a.points.length-1]):(a.points=[],n=o,i=r),a.points.unshift(lt(r,n)),a.points.push(lt(o,i))}))}(t)})),e(" reversePoints",(function(){!function(t){i.Z(t.edges(),(function(e){var n=t.edge(e);n.reversed&&n.points.reverse()}))}(t)})),e(" acyclic.undo",(function(){!function(t){i.Z(t.edges(),(function(e){var n=t.edge(e);if(n.reversed){t.removeEdge(e);var i=n.forwardName;delete n.reversed,delete n.forwardName,t.setEdge(e.w,e.v,n,i)}}))}(t)}))}(e,n)})),n(" updateInputGraph",(function(){!function(t,e){i.Z(t.nodes(),(function(n){var i=t.node(n),a=e.node(n);i&&(i.x=a.x,i.y=a.y,e.children(n).length&&(i.width=a.width,i.height=a.height))})),i.Z(t.edges(),(function(n){var i=t.edge(n),a=e.edge(n);i.points=a.points,r.Z(a,"x")&&(i.x=a.x,i.y=a.y)})),t.graph().width=e.graph().width,t.graph().height=e.graph().height}(t,e)}))}))}var Ze=["nodesep","edgesep","ranksep","marginx","marginy"],Ke={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},Xe=["acyclicer","ranker","rankdir","align"],Je=["width","height"],Qe={width:0,height:0},tn=["minlen","weight","width","height","labeloffset"],en={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},nn=["labelpos"];function an(t,e){return et(q.Z(t,e),Number)}function rn(t){var e={};return i.Z(t,(function(t,n){e[n.toLowerCase()]=t})),e}},52544:(t,e,n)=>{"use strict";n.d(e,{k:()=>L});var i=n(17452),a=n(62002),r=n(73234),o=n(17179),s=n(13445),c=n(79697),l=n(70870),u=n(49360),d=n(10626),h=n(69581),f=n(63001),g=n(21692);const p=function(t){return t!=t};const b=function(t,e,n){for(var i=n-1,a=t.length;++i<a;)if(t[i]===e)return i;return-1};const m=function(t,e,n){return e==e?b(t,e,n):(0,g.Z)(t,p,n)};const y=function(t,e){return!!(null==t?0:t.length)&&m(t,e,0)>-1};const v=function(t,e,n){for(var i=-1,a=null==t?0:t.length;++i<a;)if(n(e,t[i]))return!0;return!1};var w=n(59548),x=n(93203);const R=function(){};var _=n(6545),k=x.Z&&1/(0,_.Z)(new x.Z([,-0]))[1]==1/0?function(t){return new x.Z(t)}:R;const E=k;const C=function(t,e,n){var i=-1,a=y,r=t.length,o=!0,s=[],c=s;if(n)o=!1,a=v;else if(r>=200){var l=e?null:E(t);if(l)return(0,_.Z)(l);o=!1,a=w.Z,c=new f.Z}else c=e?[]:s;t:for(;++i<r;){var u=t[i],d=e?e(u):u;if(u=n||0!==u?u:0,o&&d==d){for(var h=c.length;h--;)if(c[h]===d)continue t;e&&c.push(d),s.push(u)}else a(c,d,n)||(c!==s&&c.push(d),s.push(u))}return s};var S=n(836);const T=(0,h.Z)((function(t){return C((0,d.Z)(t,1,S.Z,!0))}));var A=n(34148),D=n(92344),I="\0";class L{constructor(t={}){this._isDirected=!i.Z(t,"directed")||t.directed,this._isMultigraph=!!i.Z(t,"multigraph")&&t.multigraph,this._isCompound=!!i.Z(t,"compound")&&t.compound,this._label=void 0,this._defaultNodeLabelFn=a.Z(void 0),this._defaultEdgeLabelFn=a.Z(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children["\0"]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(t){return this._label=t,this}graph(){return this._label}setDefaultNodeLabel(t){return r.Z(t)||(t=a.Z(t)),this._defaultNodeLabelFn=t,this}nodeCount(){return this._nodeCount}nodes(){return o.Z(this._nodes)}sources(){var t=this;return s.Z(this.nodes(),(function(e){return c.Z(t._in[e])}))}sinks(){var t=this;return s.Z(this.nodes(),(function(e){return c.Z(t._out[e])}))}setNodes(t,e){var n=arguments,i=this;return l.Z(t,(function(t){n.length>1?i.setNode(t,e):i.setNode(t)})),this}setNode(t,e){return i.Z(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=e),this):(this._nodes[t]=arguments.length>1?e:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=I,this._children[t]={},this._children["\0"][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)}node(t){return this._nodes[t]}hasNode(t){return i.Z(this._nodes,t)}removeNode(t){var e=this;if(i.Z(this._nodes,t)){var n=function(t){e.removeEdge(e._edgeObjs[t])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],l.Z(this.children(t),(function(t){e.setParent(t)})),delete this._children[t]),l.Z(o.Z(this._in[t]),n),delete this._in[t],delete this._preds[t],l.Z(o.Z(this._out[t]),n),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this}setParent(t,e){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(u.Z(e))e=I;else{for(var n=e+="";!u.Z(n);n=this.parent(n))if(n===t)throw new Error("Setting "+e+" as parent of "+t+" would create a cycle");this.setNode(e)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=e,this._children[e][t]=!0,this}_removeFromParentsChildList(t){delete this._children[this._parent[t]][t]}parent(t){if(this._isCompound){var e=this._parent[t];if(e!==I)return e}}children(t){if(u.Z(t)&&(t=I),this._isCompound){var e=this._children[t];if(e)return o.Z(e)}else{if(t===I)return this.nodes();if(this.hasNode(t))return[]}}predecessors(t){var e=this._preds[t];if(e)return o.Z(e)}successors(t){var e=this._sucs[t];if(e)return o.Z(e)}neighbors(t){var e=this.predecessors(t);if(e)return T(e,this.successors(t))}isLeaf(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length}filterNodes(t){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var n=this;l.Z(this._nodes,(function(n,i){t(i)&&e.setNode(i,n)})),l.Z(this._edgeObjs,(function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,n.edge(t))}));var i={};function a(t){var r=n.parent(t);return void 0===r||e.hasNode(r)?(i[t]=r,r):r in i?i[r]:a(r)}return this._isCompound&&l.Z(e.nodes(),(function(t){e.setParent(t,a(t))})),e}setDefaultEdgeLabel(t){return r.Z(t)||(t=a.Z(t)),this._defaultEdgeLabelFn=t,this}edgeCount(){return this._edgeCount}edges(){return A.Z(this._edgeObjs)}setPath(t,e){var n=this,i=arguments;return D.Z(t,(function(t,a){return i.length>1?n.setEdge(t,a,e):n.setEdge(t,a),a})),this}setEdge(){var t,e,n,a,r=!1,o=arguments[0];"object"==typeof o&&null!==o&&"v"in o?(t=o.v,e=o.w,n=o.name,2===arguments.length&&(a=arguments[1],r=!0)):(t=o,e=arguments[1],n=arguments[3],arguments.length>2&&(a=arguments[2],r=!0)),t=""+t,e=""+e,u.Z(n)||(n=""+n);var s=N(this._isDirected,t,e,n);if(i.Z(this._edgeLabels,s))return r&&(this._edgeLabels[s]=a),this;if(!u.Z(n)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(t),this.setNode(e),this._edgeLabels[s]=r?a:this._defaultEdgeLabelFn(t,e,n);var c=function(t,e,n,i){var a=""+e,r=""+n;if(!t&&a>r){var o=a;a=r,r=o}var s={v:a,w:r};i&&(s.name=i);return s}(this._isDirected,t,e,n);return t=c.v,e=c.w,Object.freeze(c),this._edgeObjs[s]=c,O(this._preds[e],t),O(this._sucs[t],e),this._in[e][s]=c,this._out[t][s]=c,this._edgeCount++,this}edge(t,e,n){var i=1===arguments.length?B(this._isDirected,arguments[0]):N(this._isDirected,t,e,n);return this._edgeLabels[i]}hasEdge(t,e,n){var a=1===arguments.length?B(this._isDirected,arguments[0]):N(this._isDirected,t,e,n);return i.Z(this._edgeLabels,a)}removeEdge(t,e,n){var i=1===arguments.length?B(this._isDirected,arguments[0]):N(this._isDirected,t,e,n),a=this._edgeObjs[i];return a&&(t=a.v,e=a.w,delete this._edgeLabels[i],delete this._edgeObjs[i],M(this._preds[e],t),M(this._sucs[t],e),delete this._in[e][i],delete this._out[t][i],this._edgeCount--),this}inEdges(t,e){var n=this._in[t];if(n){var i=A.Z(n);return e?s.Z(i,(function(t){return t.v===e})):i}}outEdges(t,e){var n=this._out[t];if(n){var i=A.Z(n);return e?s.Z(i,(function(t){return t.w===e})):i}}nodeEdges(t,e){var n=this.inEdges(t,e);if(n)return n.concat(this.outEdges(t,e))}}function O(t,e){t[e]?t[e]++:t[e]=1}function M(t,e){--t[e]||delete t[e]}function N(t,e,n,i){var a=""+e,r=""+n;if(!t&&a>r){var o=a;a=r,r=o}return a+"\x01"+r+"\x01"+(u.Z(i)?"\0":i)}function B(t,e){return N(t,e.v,e.w,e.name)}L.prototype._nodeCount=0,L.prototype._edgeCount=0},45625:(t,e,n)=>{"use strict";n.d(e,{k:()=>i.k});var i=n(52544)},39354:(t,e,n)=>{"use strict";n.d(e,{c:()=>s});var i=n(49360),a=n(48451);const r=function(t){return(0,a.Z)(t,4)};var o=n(43836);n(52544);function s(t){var e={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:c(t),edges:l(t)};return i.Z(t.graph())||(e.value=r(t.graph())),e}function c(t){return o.Z(t.nodes(),(function(e){var n=t.node(e),a=t.parent(e),r={v:e};return i.Z(n)||(r.value=n),i.Z(a)||(r.parent=a),r}))}function l(t){return o.Z(t.edges(),(function(e){var n=t.edge(e),a={v:e.v,w:e.w};return i.Z(e.name)||(a.name=e.name),i.Z(n)||(a.value=n),a}))}},91518:(t,e,n)=>{"use strict";n.d(e,{sY:()=>I});var i=n(59373),a=n(17452),r=n(3688),o=n(70870),s=n(70277),c=n(96225),l={normal:function(t,e,n,i){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 z").style("stroke-width",1).style("stroke-dasharray","1,0");c.bg(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])},vee:function(t,e,n,i){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width",1).style("stroke-dasharray","1,0");c.bg(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])},undirected:function(t,e,n,i){var a=t.append("marker").attr("id",e).attr("viewBox","0 0 10 10").attr("refX",9).attr("refY",5).attr("markerUnits","strokeWidth").attr("markerWidth",8).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 0 5 L 10 5").style("stroke-width",1).style("stroke-dasharray","1,0");c.bg(a,n[i+"Style"]),n[i+"Class"]&&a.attr("class",n[i+"Class"])}};function u(t){l=t}var d=n(43349);function h(t,e,n){var i=e.label,a=t.append("g");"svg"===e.labelType?function(t,e){var n=t;n.node().appendChild(e.label),c.bg(n,e.labelStyle)}(a,e):"string"!=typeof i||"html"===e.labelType?(0,d.a)(a,e):function(t,e){for(var n=t.append("text"),i=function(t){for(var e,n="",i=!1,a=0;a<t.length;++a)e=t[a],i?(n+="n"===e?"\n":e,i=!1):"\\"===e?i=!0:n+=e;return n}(e.label).split("\n"),a=0;a<i.length;a++)n.append("tspan").attr("xml:space","preserve").attr("dy","1em").attr("x","1").text(i[a]);c.bg(n,e.labelStyle)}(a,e);var r,o=a.node().getBBox();switch(n){case"top":r=-e.height/2;break;case"bottom":r=e.height/2-o.height;break;default:r=-o.height/2}return a.attr("transform","translate("+-o.width/2+","+r+")"),a}var f=function(t,e){var n=e.nodes().filter((function(t){return c.bF(e,t)})),a=t.selectAll("g.cluster").data(n,(function(t){return t}));c.WR(a.exit(),e).style("opacity",0).remove();var r=a.enter().append("g").attr("class","cluster").attr("id",(function(t){return e.node(t).id})).style("opacity",0).each((function(t){var n=e.node(t),a=i.Ys(this);i.Ys(this).append("rect"),h(a.append("g").attr("class","label"),n,n.clusterLabelPos)}));return a=a.merge(r),(a=c.WR(a,e).style("opacity",1)).selectAll("rect").each((function(t){var n=e.node(t),a=i.Ys(this);c.bg(a,n.style)})),a};function g(t){f=t}let p=function(t,e){var n,r=t.selectAll("g.edgeLabel").data(e.edges(),(function(t){return c.O1(t)})).classed("update",!0);return r.exit().remove(),r.enter().append("g").classed("edgeLabel",!0).style("opacity",0),(r=t.selectAll("g.edgeLabel")).each((function(t){var n=i.Ys(this);n.select(".label").remove();var r=e.edge(t),o=h(n,e.edge(t),0).classed("label",!0),s=o.node().getBBox();r.labelId&&o.attr("id",r.labelId),a.Z(r,"width")||(r.width=s.width),a.Z(r,"height")||(r.height=s.height)})),n=r.exit?r.exit():r.selectAll(null),c.WR(n,e).style("opacity",0).remove(),r};function b(t){p=t}var m=n(66749),y=n(74379);function v(t,e){return t.intersect(e)}var w=function(t,e,n){var a=t.selectAll("g.edgePath").data(e.edges(),(function(t){return c.O1(t)})).classed("update",!0),r=function(t,e){var n=t.enter().append("g").attr("class","edgePath").style("opacity",0);return n.append("path").attr("class","path").attr("d",(function(t){var n=e.edge(t),i=e.node(t.v).elem;return R(n,y.Z(n.points.length).map((function(){return e=(t=i).getBBox(),{x:(n=t.ownerSVGElement.getScreenCTM().inverse().multiply(t.getScreenCTM()).translate(e.width/2,e.height/2)).e,y:n.f};var t,e,n})))})),n.append("defs"),n}(a,e);!function(t,e){var n=t.exit();c.WR(n,e).style("opacity",0).remove()}(a,e);var o=void 0!==a.merge?a.merge(r):a;return c.WR(o,e).style("opacity",1),o.each((function(t){var n=i.Ys(this),a=e.edge(t);a.elem=this,a.id&&n.attr("id",a.id),c.$p(n,a.class,(n.classed("update")?"update ":"")+"edgePath")})),o.selectAll("path.path").each((function(t){var n=e.edge(t);n.arrowheadId=m.Z("arrowhead");var a=i.Ys(this).attr("marker-end",(function(){return"url("+(t=location.href,e=n.arrowheadId,t.split("#")[0]+"#"+e+")");var t,e})).style("fill","none");c.WR(a,e).attr("d",(function(t){return function(t,e){var n=t.edge(e),i=t.node(e.v),a=t.node(e.w),r=n.points.slice(1,n.points.length-1);return r.unshift(v(i,r[0])),r.push(v(a,r[r.length-1])),R(n,r)}(e,t)})),c.bg(a,n.style)})),o.selectAll("defs *").remove(),o.selectAll("defs").each((function(t){var a=e.edge(t);(0,n[a.arrowhead])(i.Ys(this),a.arrowheadId,a,"arrowhead")})),o};function x(t){w=t}function R(t,e){var n=(i.jvg||i.YPS.line)().x((function(t){return t.x})).y((function(t){return t.y}));return(n.curve||n.interpolate)(t.curve),n(e)}var _=n(61666),k=function(t,e,n){var r,o=e.nodes().filter((function(t){return!c.bF(e,t)})),s=t.selectAll("g.node").data(o,(function(t){return t})).classed("update",!0);return s.exit().remove(),s.enter().append("g").attr("class","node").style("opacity",0),(s=t.selectAll("g.node")).each((function(t){var r=e.node(t),o=i.Ys(this);c.$p(o,r.class,(o.classed("update")?"update ":"")+"node"),o.select("g.label").remove();var s=o.append("g").attr("class","label"),l=h(s,r),u=n[r.shape],d=_.Z(l.node().getBBox(),"width","height");r.elem=this,r.id&&o.attr("id",r.id),r.labelId&&s.attr("id",r.labelId),a.Z(r,"width")&&(d.width=r.width),a.Z(r,"height")&&(d.height=r.height),d.width+=r.paddingLeft+r.paddingRight,d.height+=r.paddingTop+r.paddingBottom,s.attr("transform","translate("+(r.paddingLeft-r.paddingRight)/2+","+(r.paddingTop-r.paddingBottom)/2+")");var f=i.Ys(this);f.select(".label-container").remove();var g=u(f,d,r).classed("label-container",!0);c.bg(g,r.style);var p=g.node().getBBox();r.width=p.width,r.height=p.height})),r=s.exit?s.exit():s.selectAll(null),c.WR(r,e).style("opacity",0).remove(),s};function E(t){k=t}function C(t,e,n,i){var a=t.x,r=t.y,o=a-i.x,s=r-i.y,c=Math.sqrt(e*e*s*s+n*n*o*o),l=Math.abs(e*n*o/c);i.x<a&&(l=-l);var u=Math.abs(e*n*s/c);return i.y<r&&(u=-u),{x:a+l,y:r+u}}var S=n(23352),T=n(22930),A={rect:function(t,e,n){var i=t.insert("rect",":first-child").attr("rx",n.rx).attr("ry",n.ry).attr("x",-e.width/2).attr("y",-e.height/2).attr("width",e.width).attr("height",e.height);return n.intersect=function(t){return(0,T.q)(n,t)},i},ellipse:function(t,e,n){var i=e.width/2,a=e.height/2,r=t.insert("ellipse",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("rx",i).attr("ry",a);return n.intersect=function(t){return C(n,i,a,t)},r},circle:function(t,e,n){var i=Math.max(e.width,e.height)/2,a=t.insert("circle",":first-child").attr("x",-e.width/2).attr("y",-e.height/2).attr("r",i);return n.intersect=function(t){return function(t,e,n){return C(t,e,e,n)}(n,i,t)},a},diamond:function(t,e,n){var i=e.width*Math.SQRT2/2,a=e.height*Math.SQRT2/2,r=[{x:0,y:-a},{x:-i,y:0},{x:0,y:a},{x:i,y:0}],o=t.insert("polygon",":first-child").attr("points",r.map((function(t){return t.x+","+t.y})).join(" "));return n.intersect=function(t){return(0,S.A)(n,r,t)},o}};function D(t){A=t}function I(){var t=function(t,e){!function(t){t.nodes().forEach((function(e){var n=t.node(e);a.Z(n,"label")||t.children(e).length||(n.label=e),a.Z(n,"paddingX")&&r.Z(n,{paddingLeft:n.paddingX,paddingRight:n.paddingX}),a.Z(n,"paddingY")&&r.Z(n,{paddingTop:n.paddingY,paddingBottom:n.paddingY}),a.Z(n,"padding")&&r.Z(n,{paddingLeft:n.padding,paddingRight:n.padding,paddingTop:n.padding,paddingBottom:n.padding}),r.Z(n,L),o.Z(["paddingLeft","paddingRight","paddingTop","paddingBottom"],(function(t){n[t]=Number(n[t])})),a.Z(n,"width")&&(n._prevWidth=n.width),a.Z(n,"height")&&(n._prevHeight=n.height)})),t.edges().forEach((function(e){var n=t.edge(e);a.Z(n,"label")||(n.label=""),r.Z(n,O)}))}(e);var n=M(t,"output"),u=M(n,"clusters"),d=M(n,"edgePaths"),h=p(M(n,"edgeLabels"),e),g=k(M(n,"nodes"),e,A);(0,s.bK)(e),function(t,e){function n(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}t.filter((function(){return!i.Ys(this).classed("update")})).attr("transform",n),c.WR(t,e).style("opacity",1).attr("transform",n)}(g,e),function(t,e){function n(t){var n=e.edge(t);return a.Z(n,"x")?"translate("+n.x+","+n.y+")":""}t.filter((function(){return!i.Ys(this).classed("update")})).attr("transform",n),c.WR(t,e).style("opacity",1).attr("transform",n)}(h,e),w(d,e,l),function(t,e){var n=t.filter((function(){return!i.Ys(this).classed("update")}));function a(t){var n=e.node(t);return"translate("+n.x+","+n.y+")"}n.attr("transform",a),c.WR(t,e).style("opacity",1).attr("transform",a),c.WR(n.selectAll("rect"),e).attr("width",(function(t){return e.node(t).width})).attr("height",(function(t){return e.node(t).height})).attr("x",(function(t){return-e.node(t).width/2})).attr("y",(function(t){return-e.node(t).height/2}))}(f(u,e),e),function(t){o.Z(t.nodes(),(function(e){var n=t.node(e);a.Z(n,"_prevWidth")?n.width=n._prevWidth:delete n.width,a.Z(n,"_prevHeight")?n.height=n._prevHeight:delete n.height,delete n._prevWidth,delete n._prevHeight}))}(e)};return t.createNodes=function(e){return arguments.length?(E(e),t):k},t.createClusters=function(e){return arguments.length?(g(e),t):f},t.createEdgeLabels=function(e){return arguments.length?(b(e),t):p},t.createEdgePaths=function(e){return arguments.length?(x(e),t):w},t.shapes=function(e){return arguments.length?(D(e),t):A},t.arrows=function(e){return arguments.length?(u(e),t):l},t}var L={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:"rect"},O={arrowhead:"normal",curve:i.c_6};function M(t,e){var n=t.select("g."+e);return n.empty()&&(n=t.append("g").attr("class",e)),n}n(45625)},44301:(t,e,n)=>{"use strict";n.d(e,{T:()=>a});const i=document.createElement("i");function a(t){const e="&"+t+";";i.innerHTML=e;const n=i.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===t)&&(n!==e&&n)}},21883:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(61691),a=n(82142);const r=class{constructor(){this.type=a.w.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=a.w.ALL}is(t){return this.type===t}};const o=new class{constructor(t,e){this.color=e,this.changed=!1,this.data=t,this.type=new r}set(t,e){return this.color=e,this.changed=!1,this.data=t,this.type.type=a.w.ALL,this}_ensureHSL(){const t=this.data,{h:e,s:n,l:a}=t;void 0===e&&(t.h=i.Z.channel.rgb2hsl(t,"h")),void 0===n&&(t.s=i.Z.channel.rgb2hsl(t,"s")),void 0===a&&(t.l=i.Z.channel.rgb2hsl(t,"l"))}_ensureRGB(){const t=this.data,{r:e,g:n,b:a}=t;void 0===e&&(t.r=i.Z.channel.hsl2rgb(t,"r")),void 0===n&&(t.g=i.Z.channel.hsl2rgb(t,"g")),void 0===a&&(t.b=i.Z.channel.hsl2rgb(t,"b"))}get r(){const t=this.data,e=t.r;return this.type.is(a.w.HSL)||void 0===e?(this._ensureHSL(),i.Z.channel.hsl2rgb(t,"r")):e}get g(){const t=this.data,e=t.g;return this.type.is(a.w.HSL)||void 0===e?(this._ensureHSL(),i.Z.channel.hsl2rgb(t,"g")):e}get b(){const t=this.data,e=t.b;return this.type.is(a.w.HSL)||void 0===e?(this._ensureHSL(),i.Z.channel.hsl2rgb(t,"b")):e}get h(){const t=this.data,e=t.h;return this.type.is(a.w.RGB)||void 0===e?(this._ensureRGB(),i.Z.channel.rgb2hsl(t,"h")):e}get s(){const t=this.data,e=t.s;return this.type.is(a.w.RGB)||void 0===e?(this._ensureRGB(),i.Z.channel.rgb2hsl(t,"s")):e}get l(){const t=this.data,e=t.l;return this.type.is(a.w.RGB)||void 0===e?(this._ensureRGB(),i.Z.channel.rgb2hsl(t,"l")):e}get a(){return this.data.a}set r(t){this.type.set(a.w.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(a.w.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(a.w.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(a.w.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(a.w.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(a.w.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}({r:0,g:0,b:0,a:0},"transparent")},71610:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var i=n(21883),a=n(82142);const r={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:t=>{if(35!==t.charCodeAt(0))return;const e=t.match(r.re);if(!e)return;const n=e[1],a=parseInt(n,16),o=n.length,s=o%4==0,c=o>4,l=c?1:17,u=c?8:4,d=s?0:-1,h=c?255:15;return i.Z.set({r:(a>>u*(d+3)&h)*l,g:(a>>u*(d+2)&h)*l,b:(a>>u*(d+1)&h)*l,a:s?(a&h)*l/255:1},t)},stringify:t=>{const{r:e,g:n,b:i,a:r}=t;return r<1?`#${a.Q[Math.round(e)]}${a.Q[Math.round(n)]}${a.Q[Math.round(i)]}${a.Q[Math.round(255*r)]}`:`#${a.Q[Math.round(e)]}${a.Q[Math.round(n)]}${a.Q[Math.round(i)]}`}},o=r;var s=n(61691);const c={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:t=>{const e=t.match(c.hueRe);if(e){const[,t,n]=e;switch(n){case"grad":return s.Z.channel.clamp.h(.9*parseFloat(t));case"rad":return s.Z.channel.clamp.h(180*parseFloat(t)/Math.PI);case"turn":return s.Z.channel.clamp.h(360*parseFloat(t))}}return s.Z.channel.clamp.h(parseFloat(t))},parse:t=>{const e=t.charCodeAt(0);if(104!==e&&72!==e)return;const n=t.match(c.re);if(!n)return;const[,a,r,o,l,u]=n;return i.Z.set({h:c._hue2deg(a),s:s.Z.channel.clamp.s(parseFloat(r)),l:s.Z.channel.clamp.l(parseFloat(o)),a:l?s.Z.channel.clamp.a(u?parseFloat(l)/100:parseFloat(l)):1},t)},stringify:t=>{const{h:e,s:n,l:i,a:a}=t;return a<1?`hsla(${s.Z.lang.round(e)}, ${s.Z.lang.round(n)}%, ${s.Z.lang.round(i)}%, ${a})`:`hsl(${s.Z.lang.round(e)}, ${s.Z.lang.round(n)}%, ${s.Z.lang.round(i)}%)`}},l=c,u={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:t=>{t=t.toLowerCase();const e=u.colors[t];if(e)return o.parse(e)},stringify:t=>{const e=o.stringify(t);for(const n in u.colors)if(u.colors[n]===e)return n}},d=u,h={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:t=>{const e=t.charCodeAt(0);if(114!==e&&82!==e)return;const n=t.match(h.re);if(!n)return;const[,a,r,o,c,l,u,d,f]=n;return i.Z.set({r:s.Z.channel.clamp.r(r?2.55*parseFloat(a):parseFloat(a)),g:s.Z.channel.clamp.g(c?2.55*parseFloat(o):parseFloat(o)),b:s.Z.channel.clamp.b(u?2.55*parseFloat(l):parseFloat(l)),a:d?s.Z.channel.clamp.a(f?parseFloat(d)/100:parseFloat(d)):1},t)},stringify:t=>{const{r:e,g:n,b:i,a:a}=t;return a<1?`rgba(${s.Z.lang.round(e)}, ${s.Z.lang.round(n)}, ${s.Z.lang.round(i)}, ${s.Z.lang.round(a)})`:`rgb(${s.Z.lang.round(e)}, ${s.Z.lang.round(n)}, ${s.Z.lang.round(i)})`}},f=h,g={format:{keyword:u,hex:o,rgb:h,rgba:h,hsl:c,hsla:c},parse:t=>{if("string"!=typeof t)return t;const e=o.parse(t)||f.parse(t)||l.parse(t)||d.parse(t);if(e)return e;throw new Error(`Unsupported color format: "${t}"`)},stringify:t=>!t.changed&&t.color?t.color:t.type.is(a.w.HSL)||void 0===t.data.r?l.stringify(t):t.a<1||!Number.isInteger(t.r)||!Number.isInteger(t.g)||!Number.isInteger(t.b)?f.stringify(t):o.stringify(t)},p=g},82142:(t,e,n)=>{"use strict";n.d(e,{Q:()=>a,w:()=>r});var i=n(61691);const a={};for(let o=0;o<=255;o++)a[o]=i.Z.unit.dec2hex(o);const r={ALL:0,RGB:1,HSL:2}},26174:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(61691),a=n(71610);const r=(t,e,n)=>{const r=a.Z.parse(t),o=r[e],s=i.Z.channel.clamp[e](o+n);return o!==s&&(r[e]=s),a.Z.stringify(r)}},7201:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(26174);const a=(t,e)=>(0,i.Z)(t,"l",-e)},12281:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(26174);const a=(t,e)=>(0,i.Z)(t,"l",e)},61691:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});const i={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:t=>t>=255?255:t<0?0:t,g:t=>t>=255?255:t<0?0:t,b:t=>t>=255?255:t<0?0:t,h:t=>t%360,s:t=>t>=100?100:t<0?0:t,l:t=>t>=100?100:t<0?0:t,a:t=>t>=1?1:t<0?0:t},toLinear:t=>{const e=t/255;return t>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92},hue2rgb:(t,e,n)=>(n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+(e-t)*(2/3-n)*6:t),hsl2rgb:({h:t,s:e,l:n},a)=>{if(!e)return 2.55*n;t/=360,e/=100;const r=(n/=100)<.5?n*(1+e):n+e-n*e,o=2*n-r;switch(a){case"r":return 255*i.hue2rgb(o,r,t+1/3);case"g":return 255*i.hue2rgb(o,r,t);case"b":return 255*i.hue2rgb(o,r,t-1/3)}},rgb2hsl:({r:t,g:e,b:n},i)=>{t/=255,e/=255,n/=255;const a=Math.max(t,e,n),r=Math.min(t,e,n),o=(a+r)/2;if("l"===i)return 100*o;if(a===r)return 0;const s=a-r;if("s"===i)return 100*(o>.5?s/(2-a-r):s/(a+r));switch(a){case t:return 60*((e-n)/s+(e<n?6:0));case e:return 60*((n-t)/s+2);case n:return 60*((t-e)/s+4);default:return-1}}},a={channel:i,lang:{clamp:(t,e,n)=>e>n?Math.min(e,Math.max(n,t)):Math.min(n,Math.max(e,t)),round:t=>Math.round(1e10*t)/1e10},unit:{dec2hex:t=>{const e=Math.round(t).toString(16);return e.length>1?e:`0${e}`}}}},67308:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});const i=function(){this.__data__=[],this.size=0};var a=n(79651);const r=function(t,e){for(var n=t.length;n--;)if((0,a.Z)(t[n][0],e))return n;return-1};var o=Array.prototype.splice;const s=function(t){var e=this.__data__,n=r(e,t);return!(n<0)&&(n==e.length-1?e.pop():o.call(e,n,1),--this.size,!0)};const c=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]};const l=function(t){return r(this.__data__,t)>-1};const u=function(t,e){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this};function d(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}d.prototype.clear=i,d.prototype.delete=s,d.prototype.get=c,d.prototype.has=l,d.prototype.set=u;const h=d},86183:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(62508),a=n(66092);const r=(0,i.Z)(a.Z,"Map")},37834:(t,e,n)=>{"use strict";n.d(e,{Z:()=>_});const i=(0,n(62508).Z)(Object,"create");const a=function(){this.__data__=i?i(null):{},this.size=0};const r=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e};var o=Object.prototype.hasOwnProperty;const s=function(t){var e=this.__data__;if(i){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(e,t)?e[t]:void 0};var c=Object.prototype.hasOwnProperty;const l=function(t){var e=this.__data__;return i?void 0!==e[t]:c.call(e,t)};const u=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=i&&void 0===e?"__lodash_hash_undefined__":e,this};function d(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}d.prototype.clear=a,d.prototype.delete=r,d.prototype.get=s,d.prototype.has=l,d.prototype.set=u;const h=d;var f=n(67308),g=n(86183);const p=function(){this.size=0,this.__data__={hash:new h,map:new(g.Z||f.Z),string:new h}};const b=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};const m=function(t,e){var n=t.__data__;return b(e)?n["string"==typeof e?"string":"hash"]:n.map};const y=function(t){var e=m(this,t).delete(t);return this.size-=e?1:0,e};const v=function(t){return m(this,t).get(t)};const w=function(t){return m(this,t).has(t)};const x=function(t,e){var n=m(this,t),i=n.size;return n.set(t,e),this.size+=n.size==i?0:1,this};function R(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var i=t[e];this.set(i[0],i[1])}}R.prototype.clear=p,R.prototype.delete=y,R.prototype.get=v,R.prototype.has=w,R.prototype.set=x;const _=R},93203:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(62508),a=n(66092);const r=(0,i.Z)(a.Z,"Set")},63001:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(37834);const a=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};const r=function(t){return this.__data__.has(t)};function o(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new i.Z;++e<n;)this.add(t[e])}o.prototype.add=o.prototype.push=a,o.prototype.has=r;const s=o},31667:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var i=n(67308);const a=function(){this.__data__=new i.Z,this.size=0};const r=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n};const o=function(t){return this.__data__.get(t)};const s=function(t){return this.__data__.has(t)};var c=n(86183),l=n(37834);const u=function(t,e){var n=this.__data__;if(n instanceof i.Z){var a=n.__data__;if(!c.Z||a.length<199)return a.push([t,e]),this.size=++n.size,this;n=this.__data__=new l.Z(a)}return n.set(t,e),this.size=n.size,this};function d(t){var e=this.__data__=new i.Z(t);this.size=e.size}d.prototype.clear=a,d.prototype.delete=r,d.prototype.get=o,d.prototype.has=s,d.prototype.set=u;const h=d},17685:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=n(66092).Z.Symbol},84073:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=n(66092).Z.Uint8Array},76579:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){for(var n=-1,i=null==t?0:t.length;++n<i&&!1!==e(t[n],n,t););return t}},68774:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){for(var n=-1,i=null==t?0:t.length,a=0,r=[];++n<i;){var o=t[n];e(o,n,t)&&(r[a++]=o)}return r}},87668:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});const i=function(t,e){for(var n=-1,i=Array(t);++n<t;)i[n]=e(n);return i};var a=n(29169),r=n(27771),o=n(77008),s=n(56009),c=n(18843),l=Object.prototype.hasOwnProperty;const u=function(t,e){var n=(0,r.Z)(t),u=!n&&(0,a.Z)(t),d=!n&&!u&&(0,o.Z)(t),h=!n&&!u&&!d&&(0,c.Z)(t),f=n||u||d||h,g=f?i(t.length,String):[],p=g.length;for(var b in t)!e&&!l.call(t,b)||f&&("length"==b||d&&("offset"==b||"parent"==b)||h&&("buffer"==b||"byteLength"==b||"byteOffset"==b)||(0,s.Z)(b,p))||g.push(b);return g}},74073:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){for(var n=-1,i=null==t?0:t.length,a=Array(i);++n<i;)a[n]=e(t[n],n,t);return a}},58694:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){for(var n=-1,i=e.length,a=t.length;++n<i;)t[a+n]=e[n];return t}},72954:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(74752),a=n(79651),r=Object.prototype.hasOwnProperty;const o=function(t,e,n){var o=t[e];r.call(t,e)&&(0,a.Z)(o,n)&&(void 0!==n||e in t)||(0,i.Z)(t,e,n)}},74752:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(77904);const a=function(t,e,n){"__proto__"==e&&i.Z?(0,i.Z)(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}},48451:(t,e,n)=>{"use strict";n.d(e,{Z:()=>Q});var i=n(31667),a=n(76579),r=n(72954),o=n(31899),s=n(17179);const c=function(t,e){return t&&(0,o.Z)(e,(0,s.Z)(e),t)};var l=n(32957);const u=function(t,e){return t&&(0,o.Z)(e,(0,l.Z)(e),t)};var d=n(91050),h=n(87215),f=n(95695);const g=function(t,e){return(0,o.Z)(t,(0,f.Z)(t),e)};var p=n(58694),b=n(12513),m=n(60532);const y=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)(0,p.Z)(e,(0,f.Z)(t)),t=(0,b.Z)(t);return e}:m.Z;const v=function(t,e){return(0,o.Z)(t,y(t),e)};var w=n(1808),x=n(63327);const R=function(t){return(0,x.Z)(t,l.Z,y)};var _=n(83970),k=Object.prototype.hasOwnProperty;const E=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&k.call(t,"index")&&(n.index=t.index,n.input=t.input),n};var C=n(41884);const S=function(t,e){var n=e?(0,C.Z)(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)};var T=/\w*$/;const A=function(t){var e=new t.constructor(t.source,T.exec(t));return e.lastIndex=t.lastIndex,e};var D=n(17685),I=D.Z?D.Z.prototype:void 0,L=I?I.valueOf:void 0;const O=function(t){return L?Object(L.call(t)):{}};var M=n(12701);const N=function(t,e,n){var i=t.constructor;switch(e){case"[object ArrayBuffer]":return(0,C.Z)(t);case"[object Boolean]":case"[object Date]":return new i(+t);case"[object DataView]":return S(t,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return(0,M.Z)(t,n);case"[object Map]":case"[object Set]":return new i;case"[object Number]":case"[object String]":return new i(t);case"[object RegExp]":return A(t);case"[object Symbol]":return O(t)}};var B=n(73658),P=n(27771),F=n(77008),j=n(18533);const $=function(t){return(0,j.Z)(t)&&"[object Map]"==(0,_.Z)(t)};var z=n(21162),H=n(98351),U=H.Z&&H.Z.isMap;const V=U?(0,z.Z)(U):$;var q=n(77226);const W=function(t){return(0,j.Z)(t)&&"[object Set]"==(0,_.Z)(t)};var Y=H.Z&&H.Z.isSet;const G=Y?(0,z.Z)(Y):W;var Z="[object Arguments]",K="[object Function]",X="[object Object]",J={};J[Z]=J["[object Array]"]=J["[object ArrayBuffer]"]=J["[object DataView]"]=J["[object Boolean]"]=J["[object Date]"]=J["[object Float32Array]"]=J["[object Float64Array]"]=J["[object Int8Array]"]=J["[object Int16Array]"]=J["[object Int32Array]"]=J["[object Map]"]=J["[object Number]"]=J[X]=J["[object RegExp]"]=J["[object Set]"]=J["[object String]"]=J["[object Symbol]"]=J["[object Uint8Array]"]=J["[object Uint8ClampedArray]"]=J["[object Uint16Array]"]=J["[object Uint32Array]"]=!0,J["[object Error]"]=J[K]=J["[object WeakMap]"]=!1;const Q=function t(e,n,o,f,p,b){var m,y=1&n,x=2&n,k=4&n;if(o&&(m=p?o(e,f,p,b):o(e)),void 0!==m)return m;if(!(0,q.Z)(e))return e;var C=(0,P.Z)(e);if(C){if(m=E(e),!y)return(0,h.Z)(e,m)}else{var S=(0,_.Z)(e),T=S==K||"[object GeneratorFunction]"==S;if((0,F.Z)(e))return(0,d.Z)(e,y);if(S==X||S==Z||T&&!p){if(m=x||T?{}:(0,B.Z)(e),!y)return x?v(e,u(m,e)):g(e,c(m,e))}else{if(!J[S])return p?e:{};m=N(e,S,y)}}b||(b=new i.Z);var A=b.get(e);if(A)return A;b.set(e,m),G(e)?e.forEach((function(i){m.add(t(i,n,o,i,e,b))})):V(e)&&e.forEach((function(i,a){m.set(a,t(i,n,o,a,e,b))}));var D=k?x?R:w.Z:x?l.Z:s.Z,I=C?void 0:D(e);return(0,a.Z)(I||e,(function(i,a){I&&(i=e[a=i]),(0,r.Z)(m,a,t(i,n,o,a,e,b))})),m}},49811:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(2693),a=n(50585);const r=function(t,e){return function(n,i){if(null==n)return n;if(!(0,a.Z)(n))return t(n,i);for(var r=n.length,o=e?r:-1,s=Object(n);(e?o--:++o<r)&&!1!==i(s[o],o,s););return n}}(i.Z)},21692:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e,n,i){for(var a=t.length,r=n+(i?1:-1);i?r--:++r<a;)if(e(t[r],r,t))return r;return-1}},10626:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var i=n(58694),a=n(17685),r=n(29169),o=n(27771),s=a.Z?a.Z.isConcatSpreadable:void 0;const c=function(t){return(0,o.Z)(t)||(0,r.Z)(t)||!!(s&&t&&t[s])};const l=function t(e,n,a,r,o){var s=-1,l=e.length;for(a||(a=c),o||(o=[]);++s<l;){var u=e[s];n>0&&a(u)?n>1?t(u,n-1,a,r,o):(0,i.Z)(o,u):r||(o[o.length]=u)}return o}},61395:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return function(e,n,i){for(var a=-1,r=Object(e),o=i(e),s=o.length;s--;){var c=o[t?s:++a];if(!1===n(r[c],c,r))break}return e}}()},2693:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(61395),a=n(17179);const r=function(t,e){return t&&(0,i.Z)(t,e,a.Z)}},13317:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(22823),a=n(62281);const r=function(t,e){for(var n=0,r=(e=(0,i.Z)(e,t)).length;null!=t&&n<r;)t=t[(0,a.Z)(e[n++])];return n&&n==r?t:void 0}},63327:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(58694),a=n(27771);const r=function(t,e,n){var r=e(t);return(0,a.Z)(t)?r:(0,i.Z)(r,n(t))}},93589:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var i=n(17685),a=Object.prototype,r=a.hasOwnProperty,o=a.toString,s=i.Z?i.Z.toStringTag:void 0;const c=function(t){var e=r.call(t,s),n=t[s];try{t[s]=void 0;var i=!0}catch(c){}var a=o.call(t);return i&&(e?t[s]=n:delete t[s]),a};var l=Object.prototype.toString;const u=function(t){return l.call(t)};var d=i.Z?i.Z.toStringTag:void 0;const h=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":d&&d in Object(t)?c(t):u(t)}},74765:(t,e,n)=>{"use strict";n.d(e,{Z:()=>Y});var i=n(31667),a=n(63001);const r=function(t,e){for(var n=-1,i=null==t?0:t.length;++n<i;)if(e(t[n],n,t))return!0;return!1};var o=n(59548);const s=function(t,e,n,i,s,c){var l=1&n,u=t.length,d=e.length;if(u!=d&&!(l&&d>u))return!1;var h=c.get(t),f=c.get(e);if(h&&f)return h==e&&f==t;var g=-1,p=!0,b=2&n?new a.Z:void 0;for(c.set(t,e),c.set(e,t);++g<u;){var m=t[g],y=e[g];if(i)var v=l?i(y,m,g,e,t,c):i(m,y,g,t,e,c);if(void 0!==v){if(v)continue;p=!1;break}if(b){if(!r(e,(function(t,e){if(!(0,o.Z)(b,e)&&(m===t||s(m,t,n,i,c)))return b.push(e)}))){p=!1;break}}else if(m!==y&&!s(m,y,n,i,c)){p=!1;break}}return c.delete(t),c.delete(e),p};var c=n(17685),l=n(84073),u=n(79651);const d=function(t){var e=-1,n=Array(t.size);return t.forEach((function(t,i){n[++e]=[i,t]})),n};var h=n(6545),f=c.Z?c.Z.prototype:void 0,g=f?f.valueOf:void 0;const p=function(t,e,n,i,a,r,o){switch(n){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!r(new l.Z(t),new l.Z(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return(0,u.Z)(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var c=d;case"[object Set]":var f=1&i;if(c||(c=h.Z),t.size!=e.size&&!f)return!1;var p=o.get(t);if(p)return p==e;i|=2,o.set(t,e);var b=s(c(t),c(e),i,a,r,o);return o.delete(t),b;case"[object Symbol]":if(g)return g.call(t)==g.call(e)}return!1};var b=n(1808),m=Object.prototype.hasOwnProperty;const y=function(t,e,n,i,a,r){var o=1&n,s=(0,b.Z)(t),c=s.length;if(c!=(0,b.Z)(e).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in e:m.call(e,u)))return!1}var d=r.get(t),h=r.get(e);if(d&&h)return d==e&&h==t;var f=!0;r.set(t,e),r.set(e,t);for(var g=o;++l<c;){var p=t[u=s[l]],y=e[u];if(i)var v=o?i(y,p,u,e,t,r):i(p,y,u,t,e,r);if(!(void 0===v?p===y||a(p,y,n,i,r):v)){f=!1;break}g||(g="constructor"==u)}if(f&&!g){var w=t.constructor,x=e.constructor;w==x||!("constructor"in t)||!("constructor"in e)||"function"==typeof w&&w instanceof w&&"function"==typeof x&&x instanceof x||(f=!1)}return r.delete(t),r.delete(e),f};var v=n(83970),w=n(27771),x=n(77008),R=n(18843),_="[object Arguments]",k="[object Array]",E="[object Object]",C=Object.prototype.hasOwnProperty;const S=function(t,e,n,a,r,o){var c=(0,w.Z)(t),l=(0,w.Z)(e),u=c?k:(0,v.Z)(t),d=l?k:(0,v.Z)(e),h=(u=u==_?E:u)==E,f=(d=d==_?E:d)==E,g=u==d;if(g&&(0,x.Z)(t)){if(!(0,x.Z)(e))return!1;c=!0,h=!1}if(g&&!h)return o||(o=new i.Z),c||(0,R.Z)(t)?s(t,e,n,a,r,o):p(t,e,u,n,a,r,o);if(!(1&n)){var b=h&&C.call(t,"__wrapped__"),m=f&&C.call(e,"__wrapped__");if(b||m){var S=b?t.value():t,T=m?e.value():e;return o||(o=new i.Z),r(S,T,n,a,o)}}return!!g&&(o||(o=new i.Z),y(t,e,n,a,r,o))};var T=n(18533);const A=function t(e,n,i,a,r){return e===n||(null==e||null==n||!(0,T.Z)(e)&&!(0,T.Z)(n)?e!=e&&n!=n:S(e,n,i,a,t,r))};const D=function(t,e,n,a){var r=n.length,o=r,s=!a;if(null==t)return!o;for(t=Object(t);r--;){var c=n[r];if(s&&c[2]?c[1]!==t[c[0]]:!(c[0]in t))return!1}for(;++r<o;){var l=(c=n[r])[0],u=t[l],d=c[1];if(s&&c[2]){if(void 0===u&&!(l in t))return!1}else{var h=new i.Z;if(a)var f=a(u,d,l,t,e,h);if(!(void 0===f?A(d,u,3,a,h):f))return!1}}return!0};var I=n(77226);const L=function(t){return t==t&&!(0,I.Z)(t)};var O=n(17179);const M=function(t){for(var e=(0,O.Z)(t),n=e.length;n--;){var i=e[n],a=t[i];e[n]=[i,a,L(a)]}return e};const N=function(t,e){return function(n){return null!=n&&(n[t]===e&&(void 0!==e||t in Object(n)))}};const B=function(t){var e=M(t);return 1==e.length&&e[0][2]?N(e[0][0],e[0][1]):function(n){return n===t||D(n,t,e)}};var P=n(13317);const F=function(t,e,n){var i=null==t?void 0:(0,P.Z)(t,e);return void 0===i?n:i};var j=n(75487),$=n(99365),z=n(62281);const H=function(t,e){return(0,$.Z)(t)&&L(e)?N((0,z.Z)(t),e):function(n){var i=F(n,t);return void 0===i&&i===e?(0,j.Z)(n,t):A(e,i,3)}};var U=n(69203),V=n(54193);const q=function(t){return function(e){return(0,P.Z)(e,t)}};const W=function(t){return(0,$.Z)(t)?(0,V.Z)((0,z.Z)(t)):q(t)};const Y=function(t){return"function"==typeof t?t:null==t?U.Z:"object"==typeof t?(0,w.Z)(t)?H(t[0],t[1]):B(t):W(t)}},39473:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(72764);const a=(0,n(1851).Z)(Object.keys,Object);var r=Object.prototype.hasOwnProperty;const o=function(t){if(!(0,i.Z)(t))return a(t);var e=[];for(var n in Object(t))r.call(t,n)&&"constructor"!=n&&e.push(n);return e}},21018:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(49811),a=n(50585);const r=function(t,e){var n=-1,r=(0,a.Z)(t)?Array(t.length):[];return(0,i.Z)(t,(function(t,i,a){r[++n]=e(t,i,a)})),r}},54193:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return function(e){return null==e?void 0:e[t]}}},69581:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(69203),a=n(81211),r=n(27227);const o=function(t,e){return(0,r.Z)((0,a.Z)(t,e,i.Z),t+"")}},21162:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return function(e){return t(e)}}},59548:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){return t.has(e)}},68882:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(69203);const a=function(t){return"function"==typeof t?t:i.Z}},22823:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});var i=n(27771),a=n(99365),r=n(42454);var o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g;const c=function(t){var e=(0,r.Z)(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(o,(function(t,n,i,a){e.push(i?a.replace(s,"$1"):n||t)})),e}));var l=n(50751);const u=function(t,e){return(0,i.Z)(t)?t:(0,a.Z)(t,e)?[t]:c((0,l.Z)(t))}},41884:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(84073);const a=function(t){var e=new t.constructor(t.byteLength);return new i.Z(e).set(new i.Z(t)),e}},91050:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(66092),a="object"==typeof exports&&exports&&!exports.nodeType&&exports,r=a&&"object"==typeof module&&module&&!module.nodeType&&module,o=r&&r.exports===a?i.Z.Buffer:void 0,s=o?o.allocUnsafe:void 0;const c=function(t,e){if(e)return t.slice();var n=t.length,i=s?s(n):new t.constructor(n);return t.copy(i),i}},12701:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(41884);const a=function(t,e){var n=e?(0,i.Z)(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},87215:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){var n=-1,i=t.length;for(e||(e=Array(i));++n<i;)e[n]=t[n];return e}},31899:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(72954),a=n(74752);const r=function(t,e,n,r){var o=!n;n||(n={});for(var s=-1,c=e.length;++s<c;){var l=e[s],u=r?r(n[l],t[l],l,n,t):void 0;void 0===u&&(u=t[l]),o?(0,a.Z)(n,l,u):(0,i.Z)(n,l,u)}return n}},77904:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(62508);const a=function(){try{var t=(0,i.Z)(Object,"defineProperty");return t({},"",{}),t}catch(e){}}()},13413:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i="object"==typeof global&&global&&global.Object===Object&&global},1808:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(63327),a=n(95695),r=n(17179);const o=function(t){return(0,i.Z)(t,r.Z,a.Z)}},62508:(t,e,n)=>{"use strict";n.d(e,{Z:()=>y});var i=n(73234);const a=n(66092).Z["__core-js_shared__"];var r,o=(r=/[^.]+$/.exec(a&&a.keys&&a.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";const s=function(t){return!!o&&o in t};var c=n(77226),l=n(90019),u=/^\[object .+?Constructor\]$/,d=Function.prototype,h=Object.prototype,f=d.toString,g=h.hasOwnProperty,p=RegExp("^"+f.call(g).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");const b=function(t){return!(!(0,c.Z)(t)||s(t))&&((0,i.Z)(t)?p:u).test((0,l.Z)(t))};const m=function(t,e){return null==t?void 0:t[e]};const y=function(t,e){var n=m(t,e);return b(n)?n:void 0}},12513:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=(0,n(1851).Z)(Object.getPrototypeOf,Object)},95695:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(68774),a=n(60532),r=Object.prototype.propertyIsEnumerable,o=Object.getOwnPropertySymbols;const s=o?function(t){return null==t?[]:(t=Object(t),(0,i.Z)(o(t),(function(e){return r.call(t,e)})))}:a.Z},83970:(t,e,n)=>{"use strict";n.d(e,{Z:()=>_});var i=n(62508),a=n(66092);const r=(0,i.Z)(a.Z,"DataView");var o=n(86183);const s=(0,i.Z)(a.Z,"Promise");var c=n(93203);const l=(0,i.Z)(a.Z,"WeakMap");var u=n(93589),d=n(90019),h="[object Map]",f="[object Promise]",g="[object Set]",p="[object WeakMap]",b="[object DataView]",m=(0,d.Z)(r),y=(0,d.Z)(o.Z),v=(0,d.Z)(s),w=(0,d.Z)(c.Z),x=(0,d.Z)(l),R=u.Z;(r&&R(new r(new ArrayBuffer(1)))!=b||o.Z&&R(new o.Z)!=h||s&&R(s.resolve())!=f||c.Z&&R(new c.Z)!=g||l&&R(new l)!=p)&&(R=function(t){var e=(0,u.Z)(t),n="[object Object]"==e?t.constructor:void 0,i=n?(0,d.Z)(n):"";if(i)switch(i){case m:return b;case y:return h;case v:return f;case w:return g;case x:return p}return e});const _=R},16174:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var i=n(22823),a=n(29169),r=n(27771),o=n(56009),s=n(1656),c=n(62281);const l=function(t,e,n){for(var l=-1,u=(e=(0,i.Z)(e,t)).length,d=!1;++l<u;){var h=(0,c.Z)(e[l]);if(!(d=null!=t&&n(t,h)))break;t=t[h]}return d||++l!=u?d:!!(u=null==t?0:t.length)&&(0,s.Z)(u)&&(0,o.Z)(h,u)&&((0,r.Z)(t)||(0,a.Z)(t))}},73658:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(77226),a=Object.create;const r=function(){function t(){}return function(e){if(!(0,i.Z)(e))return{};if(a)return a(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();var o=n(12513),s=n(72764);const c=function(t){return"function"!=typeof t.constructor||(0,s.Z)(t)?{}:r((0,o.Z)(t))}},56009:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=/^(?:0|[1-9]\d*)$/;const a=function(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&i.test(t))&&t>-1&&t%1==0&&t<e}},50439:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(79651),a=n(50585),r=n(56009),o=n(77226);const s=function(t,e,n){if(!(0,o.Z)(n))return!1;var s=typeof e;return!!("number"==s?(0,a.Z)(n)&&(0,r.Z)(e,n.length):"string"==s&&e in n)&&(0,i.Z)(n[e],t)}},99365:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(27771),a=n(72714),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;const s=function(t,e){if((0,i.Z)(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!(0,a.Z)(t))||(o.test(t)||!r.test(t)||null!=e&&t in Object(e))}},72764:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=Object.prototype;const a=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||i)}},98351:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(13413),a="object"==typeof exports&&exports&&!exports.nodeType&&exports,r=a&&"object"==typeof module&&module&&!module.nodeType&&module,o=r&&r.exports===a&&i.Z.process;const s=function(){try{var t=r&&r.require&&r.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(e){}}()},1851:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){return function(n){return t(e(n))}}},81211:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});const i=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)};var a=Math.max;const r=function(t,e,n){return e=a(void 0===e?t.length-1:e,0),function(){for(var r=arguments,o=-1,s=a(r.length-e,0),c=Array(s);++o<s;)c[o]=r[e+o];o=-1;for(var l=Array(e+1);++o<e;)l[o]=r[o];return l[e]=n(c),i(t,this,l)}}},66092:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(13413),a="object"==typeof self&&self&&self.Object===Object&&self;const r=i.Z||a||Function("return this")()},6545:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}},27227:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(62002),a=n(77904),r=n(69203);const o=a.Z?function(t,e){return(0,a.Z)(t,"toString",{configurable:!0,enumerable:!1,value:(0,i.Z)(e),writable:!0})}:r.Z;var s=Date.now;const c=function(t){var e=0,n=0;return function(){var i=s(),a=16-(i-n);if(n=i,a>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}(o)},62281:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(72714);const a=function(t){if("string"==typeof t||(0,i.Z)(t))return t;var e=t+"";return"0"==e&&1/t==-Infinity?"-0":e}},90019:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=Function.prototype.toString;const a=function(t){if(null!=t){try{return i.call(t)}catch(e){}try{return t+""}catch(e){}}return""}},62002:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return function(){return t}}},3688:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var i=n(69581),a=n(79651),r=n(50439),o=n(32957),s=Object.prototype,c=s.hasOwnProperty;const l=(0,i.Z)((function(t,e){t=Object(t);var n=-1,i=e.length,l=i>2?e[2]:void 0;for(l&&(0,r.Z)(e[0],e[1],l)&&(i=1);++n<i;)for(var u=e[n],d=(0,o.Z)(u),h=-1,f=d.length;++h<f;){var g=d[h],p=t[g];(void 0===p||(0,a.Z)(p,s[g])&&!c.call(t,g))&&(t[g]=u[g])}return t}))},79651:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t,e){return t===e||t!=t&&e!=e}},13445:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(68774),a=n(49811);const r=function(t,e){var n=[];return(0,a.Z)(t,(function(t,i,a){e(t,i,a)&&n.push(t)})),n};var o=n(74765),s=n(27771);const c=function(t,e){return((0,s.Z)(t)?i.Z:r)(t,(0,o.Z)(e,3))}},27961:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var i=n(10626);const a=function(t){return(null==t?0:t.length)?(0,i.Z)(t,1):[]}},70870:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(76579),a=n(49811),r=n(68882),o=n(27771);const s=function(t,e){return((0,o.Z)(t)?i.Z:a.Z)(t,(0,r.Z)(e))}},17452:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=Object.prototype.hasOwnProperty;const a=function(t,e){return null!=t&&i.call(t,e)};var r=n(16174);const o=function(t,e){return null!=t&&(0,r.Z)(t,e,a)}},75487:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});const i=function(t,e){return null!=t&&e in Object(t)};var a=n(16174);const r=function(t,e){return null!=t&&(0,a.Z)(t,e,i)}},69203:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return t}},29169:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var i=n(93589),a=n(18533);const r=function(t){return(0,a.Z)(t)&&"[object Arguments]"==(0,i.Z)(t)};var o=Object.prototype,s=o.hasOwnProperty,c=o.propertyIsEnumerable;const l=r(function(){return arguments}())?r:function(t){return(0,a.Z)(t)&&s.call(t,"callee")&&!c.call(t,"callee")}},27771:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=Array.isArray},50585:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(73234),a=n(1656);const r=function(t){return null!=t&&(0,a.Z)(t.length)&&!(0,i.Z)(t)}},836:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(50585),a=n(18533);const r=function(t){return(0,a.Z)(t)&&(0,i.Z)(t)}},77008:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(66092);const a=function(){return!1};var r="object"==typeof exports&&exports&&!exports.nodeType&&exports,o=r&&"object"==typeof module&&module&&!module.nodeType&&module,s=o&&o.exports===r?i.Z.Buffer:void 0;const c=(s?s.isBuffer:void 0)||a},79697:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var i=n(39473),a=n(83970),r=n(29169),o=n(27771),s=n(50585),c=n(77008),l=n(72764),u=n(18843),d=Object.prototype.hasOwnProperty;const h=function(t){if(null==t)return!0;if((0,s.Z)(t)&&((0,o.Z)(t)||"string"==typeof t||"function"==typeof t.splice||(0,c.Z)(t)||(0,u.Z)(t)||(0,r.Z)(t)))return!t.length;var e=(0,a.Z)(t);if("[object Map]"==e||"[object Set]"==e)return!t.size;if((0,l.Z)(t))return!(0,i.Z)(t).length;for(var n in t)if(d.call(t,n))return!1;return!0}},73234:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(93589),a=n(77226);const r=function(t){if(!(0,a.Z)(t))return!1;var e=(0,i.Z)(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},1656:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},77226:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},18533:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return null!=t&&"object"==typeof t}},37514:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var i=n(93589),a=n(12513),r=n(18533),o=Function.prototype,s=Object.prototype,c=o.toString,l=s.hasOwnProperty,u=c.call(Object);const d=function(t){if(!(0,r.Z)(t)||"[object Object]"!=(0,i.Z)(t))return!1;var e=(0,a.Z)(t);if(null===e)return!0;var n=l.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==u}},72714:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(93589),a=n(18533);const r=function(t){return"symbol"==typeof t||(0,a.Z)(t)&&"[object Symbol]"==(0,i.Z)(t)}},18843:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var i=n(93589),a=n(1656),r=n(18533),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1;const s=function(t){return(0,r.Z)(t)&&(0,a.Z)(t.length)&&!!o[(0,i.Z)(t)]};var c=n(21162),l=n(98351),u=l.Z&&l.Z.isTypedArray;const d=u?(0,c.Z)(u):s},49360:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(t){return void 0===t}},17179:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(87668),a=n(39473),r=n(50585);const o=function(t){return(0,r.Z)(t)?(0,i.Z)(t):(0,a.Z)(t)}},32957:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});var i=n(87668),a=n(77226),r=n(72764);const o=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e};var s=Object.prototype.hasOwnProperty;const c=function(t){if(!(0,a.Z)(t))return o(t);var e=(0,r.Z)(t),n=[];for(var i in t)("constructor"!=i||!e&&s.call(t,i))&&n.push(i);return n};var l=n(50585);const u=function(t){return(0,l.Z)(t)?(0,i.Z)(t,!0):c(t)}},43836:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var i=n(74073),a=n(74765),r=n(21018),o=n(27771);const s=function(t,e){return((0,o.Z)(t)?i.Z:r.Z)(t,(0,a.Z)(e,3))}},42454:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(37834);function a(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var n=function(){var i=arguments,a=e?e.apply(this,i):i[0],r=n.cache;if(r.has(a))return r.get(a);var o=t.apply(this,i);return n.cache=r.set(a,o)||r,o};return n.cache=new(a.Cache||i.Z),n}a.Cache=i.Z;const r=a},61666:(t,e,n)=>{"use strict";n.d(e,{Z:()=>b});var i=n(13317),a=n(72954),r=n(22823),o=n(56009),s=n(77226),c=n(62281);const l=function(t,e,n,i){if(!(0,s.Z)(t))return t;for(var l=-1,u=(e=(0,r.Z)(e,t)).length,d=u-1,h=t;null!=h&&++l<u;){var f=(0,c.Z)(e[l]),g=n;if("__proto__"===f||"constructor"===f||"prototype"===f)return t;if(l!=d){var p=h[f];void 0===(g=i?i(p,f,h):void 0)&&(g=(0,s.Z)(p)?p:(0,o.Z)(e[l+1])?[]:{})}(0,a.Z)(h,f,g),h=h[f]}return t};const u=function(t,e,n){for(var a=-1,o=e.length,s={};++a<o;){var c=e[a],u=(0,i.Z)(t,c);n(u,c)&&l(s,(0,r.Z)(c,t),u)}return s};var d=n(75487);const h=function(t,e){return u(t,e,(function(e,n){return(0,d.Z)(t,n)}))};var f=n(27961),g=n(81211),p=n(27227);const b=function(t){return(0,p.Z)((0,g.Z)(t,void 0,f.Z),t+"")}((function(t,e){return null==t?{}:h(t,e)}))},74379:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=Math.ceil,a=Math.max;const r=function(t,e,n,r){for(var o=-1,s=a(i((e-t)/(n||1)),0),c=Array(s);s--;)c[r?s:++o]=t,t+=n;return c};var o=n(50439),s=n(94099);const c=function(t){return function(e,n,i){return i&&"number"!=typeof i&&(0,o.Z)(e,n,i)&&(n=i=void 0),e=(0,s.Z)(e),void 0===n?(n=e,e=0):n=(0,s.Z)(n),i=void 0===i?e<n?1:-1:(0,s.Z)(i),r(e,n,i,t)}}()},92344:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});const i=function(t,e,n,i){var a=-1,r=null==t?0:t.length;for(i&&r&&(n=t[++a]);++a<r;)n=e(n,t[a],a,t);return n};var a=n(49811),r=n(74765);const o=function(t,e,n,i,a){return a(t,(function(t,a,r){n=i?(i=!1,t):e(n,t,a,r)})),n};var s=n(27771);const c=function(t,e,n){var c=(0,s.Z)(t)?i:o,l=arguments.length<3;return c(t,(0,r.Z)(e,4),n,l,a.Z)}},60532:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});const i=function(){return[]}},94099:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var i=/\s/;const a=function(t){for(var e=t.length;e--&&i.test(t.charAt(e)););return e};var r=/^\s+/;const o=function(t){return t?t.slice(0,a(t)+1).replace(r,""):t};var s=n(77226),c=n(72714),l=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,d=/^0o[0-7]+$/i,h=parseInt;const f=function(t){if("number"==typeof t)return t;if((0,c.Z)(t))return NaN;if((0,s.Z)(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=(0,s.Z)(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=o(t);var n=u.test(t);return n||d.test(t)?h(t.slice(2),n?2:8):l.test(t)?NaN:+t};var g=1/0;const p=function(t){return t?(t=f(t))===g||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},50751:(t,e,n)=>{"use strict";n.d(e,{Z:()=>u});var i=n(17685),a=n(74073),r=n(27771),o=n(72714),s=i.Z?i.Z.prototype:void 0,c=s?s.toString:void 0;const l=function t(e){if("string"==typeof e)return e;if((0,r.Z)(e))return(0,a.Z)(e,t)+"";if((0,o.Z)(e))return c?c.call(e):"";var n=e+"";return"0"==n&&1/e==-Infinity?"-0":n};const u=function(t){return null==t?"":l(t)}},66749:(t,e,n)=>{"use strict";n.d(e,{Z:()=>r});var i=n(50751),a=0;const r=function(t){var e=++a;return(0,i.Z)(t)+e}},34148:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var i=n(74073);const a=function(t,e){return(0,i.Z)(e,(function(e){return t[e]}))};var r=n(17179);const o=function(t){return null==t?[]:a(t,(0,r.Z)(t))}},87891:(t,e,n)=>{"use strict";function i(t,e,n){const i=e.indexStack,a=t.children||[],r=[];let o=-1,s=n.before;i.push(-1);let c=e.createTracker(n);for(;++o<a.length;){const l=a[o];let u;if(i[i.length-1]=o,o+1<a.length){let n=e.handle.handlers[a[o+1].type];n&&n.peek&&(n=n.peek),u=n?n(a[o+1],t,e,{before:"",after:"",...c.current()}).charAt(0):""}else u=n.after;r.length>0&&("\r"===s||"\n"===s)&&"html"===l.type&&(r[r.length-1]=r[r.length-1].replace(/(\r?\n|\r)$/," "),s=" ",c=e.createTracker(n),c.move(r.join(""))),r.push(c.move(e.handle(l,t,e,{...c.current(),before:s,after:u}))),s=r[r.length-1].slice(-1)}return i.pop(),r.join("")}n.d(e,{p:()=>i})},21665:(t,e,n)=>{"use strict";n.d(e,{Q:()=>a});const i=/\r?\n|\r/g;function a(t,e){const n=[];let a,r=0,o=0;for(;a=i.exec(t);)s(t.slice(r,a.index)),n.push(a[0]),r=a.index+a[0].length,o++;return s(t.slice(r)),n.join("");function s(t){n.push(e(t,o,!t))}}},48653:(t,e,n)=>{"use strict";function i(t){const e=t||{},n=e.now||{};let i=e.lineShift||0,a=n.line||1,r=n.column||1;return{move:function(t){const e=t||"",n=e.split(/\r?\n|\r/g),o=n[n.length-1];return a+=n.length-1,r=1===n.length?r+o.length:1+o.length+i,e},current:function(){return{now:{line:a,column:r},lineShift:i}},shift:function(t){i+=t}}}n.d(e,{j:()=>i})},23402:(t,e,n)=>{"use strict";n.d(e,{w:()=>r});var i=n(42761),a=n(75364);const r={tokenize:function(t,e,n){return function(e){return(0,a.xz)(e)?(0,i.f)(t,r,"linePrefix")(e):r(e)};function r(t){return null===t||(0,a.Ch)(t)?e(t):n(t)}},partial:!0}},42761:(t,e,n)=>{"use strict";n.d(e,{f:()=>a});var i=n(75364);function a(t,e,n,a){const r=a?a-1:Number.POSITIVE_INFINITY;let o=0;return function(a){if((0,i.xz)(a))return t.enter(n),s(a);return e(a)};function s(a){return(0,i.xz)(a)&&o++<r?(t.consume(a),s):(t.exit(n),e(a))}}},75364:(t,e,n)=>{"use strict";n.d(e,{jv:()=>i,H$:()=>a,n9:()=>r,Av:()=>o,pY:()=>s,AF:()=>c,sR:()=>l,Ch:()=>u,z3:()=>d,xz:()=>h,Xh:()=>f,B8:()=>g});const i=p(/[A-Za-z]/),a=p(/[\dA-Za-z]/),r=p(/[#-'*+\--9=?A-Z^-~]/);function o(t){return null!==t&&(t<32||127===t)}const s=p(/\d/),c=p(/[\dA-Fa-f]/),l=p(/[!-/:-@[-`{-~]/);function u(t){return null!==t&&t<-2}function d(t){return null!==t&&(t<0||32===t)}function h(t){return-2===t||-1===t||32===t}const f=p(/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/),g=p(/\s/);function p(t){return function(e){return null!==e&&t.test(String.fromCharCode(e))}}},21905:(t,e,n)=>{"use strict";function i(t,e,n,i){const a=t.length;let r,o=0;if(e=e<0?-e>a?0:a+e:e>a?a:e,n=n>0?n:0,i.length<1e4)r=Array.from(i),r.unshift(e,n),t.splice(...r);else for(n&&t.splice(e,n);o<i.length;)r=i.slice(o,o+1e4),r.unshift(e,0),t.splice(...r),o+=1e4,e+=1e4}function a(t,e){return t.length>0?(i(t,t.length,0,e),t):e}n.d(e,{V:()=>a,d:()=>i})},62987:(t,e,n)=>{"use strict";n.d(e,{r:()=>a});var i=n(75364);function a(t){return null===t||(0,i.z3)(t)||(0,i.B8)(t)?1:(0,i.Xh)(t)?2:void 0}},4663:(t,e,n)=>{"use strict";n.d(e,{W:()=>r});var i=n(21905);const a={}.hasOwnProperty;function r(t){const e={};let n=-1;for(;++n<t.length;)o(e,t[n]);return e}function o(t,e){let n;for(n in e){const i=(a.call(t,n)?t[n]:void 0)||(t[n]={}),r=e[n];let o;if(r)for(o in r){a.call(i,o)||(i[o]=[]);const t=r[o];s(i[o],Array.isArray(t)?t:t?[t]:[])}}}function s(t,e){let n=-1;const a=[];for(;++n<e.length;)("after"===e[n].add?t:a).push(e[n]);(0,i.d)(t,0,0,a)}},80889:(t,e,n)=>{"use strict";function i(t,e){const n=Number.parseInt(t,e);return n<9||11===n||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535==(65535&n)||65534==(65535&n)||n>1114111?"\ufffd":String.fromCharCode(n)}n.d(e,{o:()=>i})},47881:(t,e,n)=>{"use strict";n.d(e,{v:()=>o});var i=n(44301),a=n(80889);const r=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function o(t){return t.replace(r,s)}function s(t,e,n){if(e)return e;if(35===n.charCodeAt(0)){const t=n.charCodeAt(1),e=120===t||88===t;return(0,a.o)(n.slice(e?2:1),e?16:10)}return(0,i.T)(n)||t}},11098:(t,e,n)=>{"use strict";function i(t){return t.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}n.d(e,{d:()=>i})},63233:(t,e,n)=>{"use strict";function i(t,e,n){const i=[];let a=-1;for(;++a<t.length;){const r=t[a].resolveAll;r&&!i.includes(r)&&(e=r(e,n),i.push(r))}return e}n.d(e,{C:()=>i})},86504:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>Ut});var i=n(4663),a=n(75364);const r={tokenize:function(t,e,n){let i=0;return function e(r){if((87===r||119===r)&&i<3)return i++,t.consume(r),e;if(46===r&&3===i)return t.consume(r),a;return n(r)};function a(t){return null===t?n(t):e(t)}},partial:!0},o={tokenize:function(t,e,n){let i,r,o;return s;function s(e){return 46===e||95===e?t.check(c,u,l)(e):null===e||(0,a.z3)(e)||(0,a.B8)(e)||45!==e&&(0,a.Xh)(e)?u(e):(o=!0,t.consume(e),s)}function l(e){return 95===e?i=!0:(r=i,i=void 0),t.consume(e),s}function u(t){return r||i||!o?n(t):e(t)}},partial:!0},s={tokenize:function(t,e){let n=0,i=0;return r;function r(s){return 40===s?(n++,t.consume(s),r):41===s&&i<n?o(s):33===s||34===s||38===s||39===s||41===s||42===s||44===s||46===s||58===s||59===s||60===s||63===s||93===s||95===s||126===s?t.check(c,e,o)(s):null===s||(0,a.z3)(s)||(0,a.B8)(s)?e(s):(t.consume(s),r)}function o(e){return 41===e&&i++,t.consume(e),r}},partial:!0},c={tokenize:function(t,e,n){return i;function i(s){return 33===s||34===s||39===s||41===s||42===s||44===s||46===s||58===s||59===s||63===s||95===s||126===s?(t.consume(s),i):38===s?(t.consume(s),o):93===s?(t.consume(s),r):60===s||null===s||(0,a.z3)(s)||(0,a.B8)(s)?e(s):n(s)}function r(t){return null===t||40===t||91===t||(0,a.z3)(t)||(0,a.B8)(t)?e(t):i(t)}function o(t){return(0,a.jv)(t)?s(t):n(t)}function s(e){return 59===e?(t.consume(e),i):(0,a.jv)(e)?(t.consume(e),s):n(e)}},partial:!0},l={tokenize:function(t,e,n){return function(e){return t.consume(e),i};function i(t){return(0,a.H$)(t)?n(t):e(t)}},partial:!0},u={tokenize:function(t,e,n){const i=this;return function(e){if(87!==e&&119!==e||!b.call(i,i.previous)||w(i.events))return n(e);return t.enter("literalAutolink"),t.enter("literalAutolinkWww"),t.check(r,t.attempt(o,t.attempt(s,a),n),n)(e)};function a(n){return t.exit("literalAutolinkWww"),t.exit("literalAutolink"),e(n)}},previous:b},d={tokenize:function(t,e,n){const i=this;let r="",c=!1;return function(e){if((72===e||104===e)&&m.call(i,i.previous)&&!w(i.events))return t.enter("literalAutolink"),t.enter("literalAutolinkHttp"),r+=String.fromCodePoint(e),t.consume(e),l;return n(e)};function l(e){if((0,a.jv)(e)&&r.length<5)return r+=String.fromCodePoint(e),t.consume(e),l;if(58===e){const n=r.toLowerCase();if("http"===n||"https"===n)return t.consume(e),u}return n(e)}function u(e){return 47===e?(t.consume(e),c?d:(c=!0,u)):n(e)}function d(e){return null===e||(0,a.Av)(e)||(0,a.z3)(e)||(0,a.B8)(e)||(0,a.Xh)(e)?n(e):t.attempt(o,t.attempt(s,h),n)(e)}function h(n){return t.exit("literalAutolinkHttp"),t.exit("literalAutolink"),e(n)}},previous:m},h={tokenize:function(t,e,n){const i=this;let r,o;return function(e){if(!v(e)||!y.call(i,i.previous)||w(i.events))return n(e);return t.enter("literalAutolink"),t.enter("literalAutolinkEmail"),s(e)};function s(e){return v(e)?(t.consume(e),s):64===e?(t.consume(e),c):n(e)}function c(e){return 46===e?t.check(l,d,u)(e):45===e||95===e||(0,a.H$)(e)?(o=!0,t.consume(e),c):d(e)}function u(e){return t.consume(e),r=!0,c}function d(s){return o&&r&&(0,a.jv)(i.previous)?(t.exit("literalAutolinkEmail"),t.exit("literalAutolink"),e(s)):n(s)}},previous:y},f={},g={text:f};let p=48;for(;p<123;)f[p]=h,p++,58===p?p=65:91===p&&(p=97);function b(t){return null===t||40===t||42===t||95===t||91===t||93===t||126===t||(0,a.z3)(t)}function m(t){return!(0,a.jv)(t)}function y(t){return!(47===t||v(t))}function v(t){return 43===t||45===t||46===t||95===t||(0,a.H$)(t)}function w(t){let e=t.length,n=!1;for(;e--;){const i=t[e][1];if(("labelLink"===i.type||"labelImage"===i.type)&&!i._balanced){n=!0;break}if(i._gfmAutolinkLiteralWalkedInto){n=!1;break}}return t.length>0&&!n&&(t[t.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}f[43]=h,f[45]=h,f[46]=h,f[95]=h,f[72]=[h,d],f[104]=[h,d],f[87]=[h,u],f[119]=[h,u];var x=n(23402),R=n(42761),_=n(11098);const k={tokenize:function(t,e,n){const i=this;return(0,R.f)(t,(function(t){const a=i.events[i.events.length-1];return a&&"gfmFootnoteDefinitionIndent"===a[1].type&&4===a[2].sliceSerialize(a[1],!0).length?e(t):n(t)}),"gfmFootnoteDefinitionIndent",5)},partial:!0};function E(t,e,n){const i=this;let a=i.events.length;const r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o;for(;a--;){const t=i.events[a][1];if("labelImage"===t.type){o=t;break}if("gfmFootnoteCall"===t.type||"labelLink"===t.type||"label"===t.type||"image"===t.type||"link"===t.type)break}return function(a){if(!o||!o._balanced)return n(a);const s=(0,_.d)(i.sliceSerialize({start:o.end,end:i.now()}));if(94!==s.codePointAt(0)||!r.includes(s.slice(1)))return n(a);return t.enter("gfmFootnoteCallLabelMarker"),t.consume(a),t.exit("gfmFootnoteCallLabelMarker"),e(a)}}function C(t,e){let n,i=t.length;for(;i--;)if("labelImage"===t[i][1].type&&"enter"===t[i][0]){n=t[i][1];break}t[i+1][1].type="data",t[i+3][1].type="gfmFootnoteCallLabelMarker";const a={type:"gfmFootnoteCall",start:Object.assign({},t[i+3][1].start),end:Object.assign({},t[t.length-1][1].end)},r={type:"gfmFootnoteCallMarker",start:Object.assign({},t[i+3][1].end),end:Object.assign({},t[i+3][1].end)};r.end.column++,r.end.offset++,r.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},r.end),end:Object.assign({},t[t.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},c=[t[i+1],t[i+2],["enter",a,e],t[i+3],t[i+4],["enter",r,e],["exit",r,e],["enter",o,e],["enter",s,e],["exit",s,e],["exit",o,e],t[t.length-2],t[t.length-1],["exit",a,e]];return t.splice(i,t.length-i+1,...c),t}function S(t,e,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o,s=0;return function(e){return t.enter("gfmFootnoteCall"),t.enter("gfmFootnoteCallLabelMarker"),t.consume(e),t.exit("gfmFootnoteCallLabelMarker"),c};function c(e){return 94!==e?n(e):(t.enter("gfmFootnoteCallMarker"),t.consume(e),t.exit("gfmFootnoteCallMarker"),t.enter("gfmFootnoteCallString"),t.enter("chunkString").contentType="string",l)}function l(c){if(s>999||93===c&&!o||null===c||91===c||(0,a.z3)(c))return n(c);if(93===c){t.exit("chunkString");const a=t.exit("gfmFootnoteCallString");return r.includes((0,_.d)(i.sliceSerialize(a)))?(t.enter("gfmFootnoteCallLabelMarker"),t.consume(c),t.exit("gfmFootnoteCallLabelMarker"),t.exit("gfmFootnoteCall"),e):n(c)}return(0,a.z3)(c)||(o=!0),s++,t.consume(c),92===c?u:l}function u(e){return 91===e||92===e||93===e?(t.consume(e),s++,l):l(e)}}function T(t,e,n){const i=this,r=i.parser.gfmFootnotes||(i.parser.gfmFootnotes=[]);let o,s,c=0;return function(e){return t.enter("gfmFootnoteDefinition")._container=!0,t.enter("gfmFootnoteDefinitionLabel"),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(e),t.exit("gfmFootnoteDefinitionLabelMarker"),l};function l(e){return 94===e?(t.enter("gfmFootnoteDefinitionMarker"),t.consume(e),t.exit("gfmFootnoteDefinitionMarker"),t.enter("gfmFootnoteDefinitionLabelString"),t.enter("chunkString").contentType="string",u):n(e)}function u(e){if(c>999||93===e&&!s||null===e||91===e||(0,a.z3)(e))return n(e);if(93===e){t.exit("chunkString");const n=t.exit("gfmFootnoteDefinitionLabelString");return o=(0,_.d)(i.sliceSerialize(n)),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(e),t.exit("gfmFootnoteDefinitionLabelMarker"),t.exit("gfmFootnoteDefinitionLabel"),h}return(0,a.z3)(e)||(s=!0),c++,t.consume(e),92===e?d:u}function d(e){return 91===e||92===e||93===e?(t.consume(e),c++,u):u(e)}function h(e){return 58===e?(t.enter("definitionMarker"),t.consume(e),t.exit("definitionMarker"),r.includes(o)||r.push(o),(0,R.f)(t,f,"gfmFootnoteDefinitionWhitespace")):n(e)}function f(t){return e(t)}}function A(t,e,n){return t.check(x.w,e,t.attempt(k,e,n))}function D(t){t.exit("gfmFootnoteDefinition")}var I=n(21905),L=n(62987),O=n(63233);function M(t){let e=(t||{}).singleTilde;const n={tokenize:function(t,n,i){const a=this.previous,r=this.events;let o=0;return function(e){if(126===a&&"characterEscape"!==r[r.length-1][1].type)return i(e);return t.enter("strikethroughSequenceTemporary"),s(e)};function s(r){const c=(0,L.r)(a);if(126===r)return o>1?i(r):(t.consume(r),o++,s);if(o<2&&!e)return i(r);const l=t.exit("strikethroughSequenceTemporary"),u=(0,L.r)(r);return l._open=!u||2===u&&Boolean(c),l._close=!c||2===c&&Boolean(u),n(r)}},resolveAll:function(t,e){let n=-1;for(;++n<t.length;)if("enter"===t[n][0]&&"strikethroughSequenceTemporary"===t[n][1].type&&t[n][1]._close){let i=n;for(;i--;)if("exit"===t[i][0]&&"strikethroughSequenceTemporary"===t[i][1].type&&t[i][1]._open&&t[n][1].end.offset-t[n][1].start.offset==t[i][1].end.offset-t[i][1].start.offset){t[n][1].type="strikethroughSequence",t[i][1].type="strikethroughSequence";const a={type:"strikethrough",start:Object.assign({},t[i][1].start),end:Object.assign({},t[n][1].end)},r={type:"strikethroughText",start:Object.assign({},t[i][1].end),end:Object.assign({},t[n][1].start)},o=[["enter",a,e],["enter",t[i][1],e],["exit",t[i][1],e],["enter",r,e]],s=e.parser.constructs.insideSpan.null;s&&(0,I.d)(o,o.length,0,(0,O.C)(s,t.slice(i+1,n),e)),(0,I.d)(o,o.length,0,[["exit",r,e],["enter",t[n][1],e],["exit",t[n][1],e],["exit",a,e]]),(0,I.d)(t,i-1,n-i+3,o),n=i+o.length-2;break}}n=-1;for(;++n<t.length;)"strikethroughSequenceTemporary"===t[n][1].type&&(t[n][1].type="data");return t}};return null==e&&(e=!0),{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}}}class N{constructor(){this.map=[]}add(t,e,n){!function(t,e,n,i){let a=0;if(0===n&&0===i.length)return;for(;a<t.map.length;){if(t.map[a][0]===e)return t.map[a][1]+=n,void t.map[a][2].push(...i);a+=1}t.map.push([e,n,i])}(this,t,e,n)}consume(t){if(this.map.sort(((t,e)=>t[0]-e[0])),0===this.map.length)return;let e=this.map.length;const n=[];for(;e>0;)e-=1,n.push(t.slice(this.map[e][0]+this.map[e][1])),n.push(this.map[e][2]),t.length=this.map[e][0];n.push([...t]),t.length=0;let i=n.pop();for(;i;)t.push(...i),i=n.pop();this.map.length=0}}function B(t,e){let n=!1;const i=[];for(;e<t.length;){const a=t[e];if(n){if("enter"===a[0])"tableContent"===a[1].type&&i.push("tableDelimiterMarker"===t[e+1][1].type?"left":"none");else if("tableContent"===a[1].type){if("tableDelimiterMarker"===t[e-1][1].type){const t=i.length-1;i[t]="left"===i[t]?"center":"right"}}else if("tableDelimiterRow"===a[1].type)break}else"enter"===a[0]&&"tableDelimiterRow"===a[1].type&&(n=!0);e+=1}return i}const P={flow:{null:{tokenize:function(t,e,n){const i=this;let r,o=0,s=0;return function(t){let e=i.events.length-1;for(;e>-1;){const t=i.events[e][1].type;if("lineEnding"!==t&&"linePrefix"!==t)break;e--}const a=e>-1?i.events[e][1].type:null,r="tableHead"===a||"tableRow"===a?x:c;if(r===x&&i.parser.lazy[i.now().line])return n(t);return r(t)};function c(e){return t.enter("tableHead"),t.enter("tableRow"),function(t){if(124===t)return l(t);return r=!0,s+=1,l(t)}(e)}function l(e){return null===e?n(e):(0,a.Ch)(e)?s>1?(s=0,i.interrupt=!0,t.exit("tableRow"),t.enter("lineEnding"),t.consume(e),t.exit("lineEnding"),h):n(e):(0,a.xz)(e)?(0,R.f)(t,l,"whitespace")(e):(s+=1,r&&(r=!1,o+=1),124===e?(t.enter("tableCellDivider"),t.consume(e),t.exit("tableCellDivider"),r=!0,l):(t.enter("data"),u(e)))}function u(e){return null===e||124===e||(0,a.z3)(e)?(t.exit("data"),l(e)):(t.consume(e),92===e?d:u)}function d(e){return 92===e||124===e?(t.consume(e),u):u(e)}function h(e){return i.interrupt=!1,i.parser.lazy[i.now().line]?n(e):(t.enter("tableDelimiterRow"),r=!1,(0,a.xz)(e)?(0,R.f)(t,f,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e):f(e))}function f(e){return 45===e||58===e?p(e):124===e?(r=!0,t.enter("tableCellDivider"),t.consume(e),t.exit("tableCellDivider"),g):w(e)}function g(e){return(0,a.xz)(e)?(0,R.f)(t,p,"whitespace")(e):p(e)}function p(e){return 58===e?(s+=1,r=!0,t.enter("tableDelimiterMarker"),t.consume(e),t.exit("tableDelimiterMarker"),b):45===e?(s+=1,b(e)):null===e||(0,a.Ch)(e)?v(e):w(e)}function b(e){return 45===e?(t.enter("tableDelimiterFiller"),m(e)):w(e)}function m(e){return 45===e?(t.consume(e),m):58===e?(r=!0,t.exit("tableDelimiterFiller"),t.enter("tableDelimiterMarker"),t.consume(e),t.exit("tableDelimiterMarker"),y):(t.exit("tableDelimiterFiller"),y(e))}function y(e){return(0,a.xz)(e)?(0,R.f)(t,v,"whitespace")(e):v(e)}function v(n){return 124===n?f(n):(null===n||(0,a.Ch)(n))&&r&&o===s?(t.exit("tableDelimiterRow"),t.exit("tableHead"),e(n)):w(n)}function w(t){return n(t)}function x(e){return t.enter("tableRow"),_(e)}function _(n){return 124===n?(t.enter("tableCellDivider"),t.consume(n),t.exit("tableCellDivider"),_):null===n||(0,a.Ch)(n)?(t.exit("tableRow"),e(n)):(0,a.xz)(n)?(0,R.f)(t,_,"whitespace")(n):(t.enter("data"),k(n))}function k(e){return null===e||124===e||(0,a.z3)(e)?(t.exit("data"),_(e)):(t.consume(e),92===e?E:k)}function E(e){return 92===e||124===e?(t.consume(e),k):k(e)}},resolveAll:function(t,e){let n,i,a,r=-1,o=!0,s=0,c=[0,0,0,0],l=[0,0,0,0],u=!1,d=0;const h=new N;for(;++r<t.length;){const f=t[r],g=f[1];"enter"===f[0]?"tableHead"===g.type?(u=!1,0!==d&&(j(h,e,d,n,i),i=void 0,d=0),n={type:"table",start:Object.assign({},g.start),end:Object.assign({},g.end)},h.add(r,0,[["enter",n,e]])):"tableRow"===g.type||"tableDelimiterRow"===g.type?(o=!0,a=void 0,c=[0,0,0,0],l=[0,r+1,0,0],u&&(u=!1,i={type:"tableBody",start:Object.assign({},g.start),end:Object.assign({},g.end)},h.add(r,0,[["enter",i,e]])),s="tableDelimiterRow"===g.type?2:i?3:1):!s||"data"!==g.type&&"tableDelimiterMarker"!==g.type&&"tableDelimiterFiller"!==g.type?"tableCellDivider"===g.type&&(o?o=!1:(0!==c[1]&&(l[0]=l[1],a=F(h,e,c,s,void 0,a)),c=l,l=[c[1],r,0,0])):(o=!1,0===l[2]&&(0!==c[1]&&(l[0]=l[1],a=F(h,e,c,s,void 0,a),c=[0,0,0,0]),l[2]=r)):"tableHead"===g.type?(u=!0,d=r):"tableRow"===g.type||"tableDelimiterRow"===g.type?(d=r,0!==c[1]?(l[0]=l[1],a=F(h,e,c,s,r,a)):0!==l[1]&&(a=F(h,e,l,s,r,a)),s=0):!s||"data"!==g.type&&"tableDelimiterMarker"!==g.type&&"tableDelimiterFiller"!==g.type||(l[3]=r)}0!==d&&j(h,e,d,n,i);h.consume(e.events),r=-1;for(;++r<e.events.length;){const t=e.events[r];"enter"===t[0]&&"table"===t[1].type&&(t[1]._align=B(e.events,r))}return t}}}};function F(t,e,n,i,a,r){const o=1===i?"tableHeader":2===i?"tableDelimiter":"tableData";0!==n[0]&&(r.end=Object.assign({},$(e.events,n[0])),t.add(n[0],0,[["exit",r,e]]));const s=$(e.events,n[1]);if(r={type:o,start:Object.assign({},s),end:Object.assign({},s)},t.add(n[1],0,[["enter",r,e]]),0!==n[2]){const a=$(e.events,n[2]),r=$(e.events,n[3]),o={type:"tableContent",start:Object.assign({},a),end:Object.assign({},r)};if(t.add(n[2],0,[["enter",o,e]]),2!==i){const i=e.events[n[2]],a=e.events[n[3]];if(i[1].end=Object.assign({},a[1].end),i[1].type="chunkText",i[1].contentType="text",n[3]>n[2]+1){const e=n[2]+1,i=n[3]-n[2]-1;t.add(e,i,[])}}t.add(n[3]+1,0,[["exit",o,e]])}return void 0!==a&&(r.end=Object.assign({},$(e.events,a)),t.add(a,0,[["exit",r,e]]),r=void 0),r}function j(t,e,n,i,a){const r=[],o=$(e.events,n);a&&(a.end=Object.assign({},o),r.push(["exit",a,e])),i.end=Object.assign({},o),r.push(["exit",i,e]),t.add(n+1,0,r)}function $(t,e){const n=t[e],i="enter"===n[0]?"start":"end";return n[1][i]}const z={tokenize:function(t,e,n){const i=this;return function(e){if(null!==i.previous||!i._gfmTasklistFirstContentOfListItem)return n(e);return t.enter("taskListCheck"),t.enter("taskListCheckMarker"),t.consume(e),t.exit("taskListCheckMarker"),r};function r(e){return(0,a.z3)(e)?(t.enter("taskListCheckValueUnchecked"),t.consume(e),t.exit("taskListCheckValueUnchecked"),o):88===e||120===e?(t.enter("taskListCheckValueChecked"),t.consume(e),t.exit("taskListCheckValueChecked"),o):n(e)}function o(e){return 93===e?(t.enter("taskListCheckMarker"),t.consume(e),t.exit("taskListCheckMarker"),t.exit("taskListCheck"),s):n(e)}function s(i){return(0,a.Ch)(i)?e(i):(0,a.xz)(i)?t.check({tokenize:U},e,n)(i):n(i)}}},H={text:{91:z}};function U(t,e,n){return(0,R.f)(t,(function(t){return null===t?n(t):e(t)}),"whitespace")}var V=n(64777);var q=n(20557),W=n(96093);const Y={}.hasOwnProperty,G=function(t,e,n,i){let a,r;"string"==typeof e||e instanceof RegExp?(r=[[e,n]],a=i):(r=e,a=n),a||(a={});const o=(0,W.O)(a.ignore||[]),s=function(t){const e=[];if("object"!=typeof t)throw new TypeError("Expected array or object as schema");if(Array.isArray(t)){let n=-1;for(;++n<t.length;)e.push([Z(t[n][0]),K(t[n][1])])}else{let n;for(n in t)Y.call(t,n)&&e.push([Z(n),K(t[n])])}return e}(r);let c=-1;for(;++c<s.length;)(0,q.S4)(t,"text",l);return t;function l(t,e){let n,i=-1;for(;++i<e.length;){const t=e[i];if(o(t,n?n.children.indexOf(t):void 0,n))return;n=t}if(n)return function(t,e){const n=e[e.length-1],i=s[c][0],a=s[c][1];let r=0;const o=n.children.indexOf(t);let l=!1,u=[];i.lastIndex=0;let d=i.exec(t.value);for(;d;){const n=d.index,o={index:d.index,input:d.input,stack:[...e,t]};let s=a(...d,o);if("string"==typeof s&&(s=s.length>0?{type:"text",value:s}:void 0),!1!==s&&(r!==n&&u.push({type:"text",value:t.value.slice(r,n)}),Array.isArray(s)?u.push(...s):s&&u.push(s),r=n+d[0].length,l=!0),!i.global)break;d=i.exec(t.value)}l?(r<t.value.length&&u.push({type:"text",value:t.value.slice(r)}),n.children.splice(o,1,...u)):u=[t];return o+u.length}(t,e)}};function Z(t){return"string"==typeof t?new RegExp(function(t){if("string"!=typeof t)throw new TypeError("Expected a string");return t.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}(t),"g"):t}function K(t){return"function"==typeof t?t:()=>t}const X="phrasing",J=["autolink","link","image","label"],Q={transforms:[function(t){G(t,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,nt],[/([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/g,it]],{ignore:["link","linkReference"]})}],enter:{literalAutolink:function(t){this.enter({type:"link",title:null,url:"",children:[]},t)},literalAutolinkEmail:et,literalAutolinkHttp:et,literalAutolinkWww:et},exit:{literalAutolink:function(t){this.exit(t)},literalAutolinkEmail:function(t){this.config.exit.autolinkEmail.call(this,t)},literalAutolinkHttp:function(t){this.config.exit.autolinkProtocol.call(this,t)},literalAutolinkWww:function(t){this.config.exit.data.call(this,t);this.stack[this.stack.length-1].url="http://"+this.sliceSerialize(t)}}},tt={unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:X,notInConstruct:J},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:X,notInConstruct:J},{character:":",before:"[ps]",after:"\\/",inConstruct:X,notInConstruct:J}]};function et(t){this.config.enter.autolinkProtocol.call(this,t)}function nt(t,e,n,i,a){let r="";if(!at(a))return!1;if(/^w/i.test(e)&&(n=e+n,e="",r="http://"),!function(t){const e=t.split(".");if(e.length<2||e[e.length-1]&&(/_/.test(e[e.length-1])||!/[a-zA-Z\d]/.test(e[e.length-1]))||e[e.length-2]&&(/_/.test(e[e.length-2])||!/[a-zA-Z\d]/.test(e[e.length-2])))return!1;return!0}(n))return!1;const o=function(t){const e=/[!"&'),.:;<>?\]}]+$/.exec(t);if(!e)return[t,void 0];t=t.slice(0,e.index);let n=e[0],i=n.indexOf(")");const a=(0,V.w)(t,"(");let r=(0,V.w)(t,")");for(;-1!==i&&a>r;)t+=n.slice(0,i+1),n=n.slice(i+1),i=n.indexOf(")"),r++;return[t,n]}(n+i);if(!o[0])return!1;const s={type:"link",title:null,url:r+e+o[0],children:[{type:"text",value:e+o[0]}]};return o[1]?[s,{type:"text",value:o[1]}]:s}function it(t,e,n,i){return!(!at(i,!0)||/[-\d_]$/.test(n))&&{type:"link",title:null,url:"mailto:"+e+"@"+n,children:[{type:"text",value:e+"@"+n}]}}function at(t,e){const n=t.input.charCodeAt(t.index-1);return(0===t.index||(0,a.B8)(n)||(0,a.Xh)(n))&&(!e||47!==n)}var rt=n(47881);function ot(t){return t.label||!t.identifier?t.label||"":(0,rt.v)(t.identifier)}function st(t,e,n,i){let a=i.join.length;for(;a--;){const r=i.join[a](t,e,n,i);if(!0===r||1===r)break;if("number"==typeof r)return"\n".repeat(1+r);if(!1===r)return"\n\n\x3c!----\x3e\n\n"}return"\n\n"}var ct=n(21665);function lt(t){if(!t._compiled){const e=(t.atBreak?"[\\r\\n][\\t ]*":"")+(t.before?"(?:"+t.before+")":"");t._compiled=new RegExp((e?"("+e+")":"")+(/[|\\{}()[\]^$+*?.-]/.test(t.character)?"\\":"")+t.character+(t.after?"(?:"+t.after+")":""),"g")}return t._compiled}function ut(t,e){return dt(t,e.inConstruct,!0)&&!dt(t,e.notInConstruct,!1)}function dt(t,e,n){if("string"==typeof e&&(e=[e]),!e||0===e.length)return n;let i=-1;for(;++i<e.length;)if(t.includes(e[i]))return!0;return!1}function ht(t,e,n){const i=(n.before||"")+(e||"")+(n.after||""),a=[],r=[],o={};let s=-1;for(;++s<t.unsafe.length;){const e=t.unsafe[s];if(!ut(t.stack,e))continue;const n=lt(e);let r;for(;r=n.exec(i);){const t="before"in e||Boolean(e.atBreak),n="after"in e,i=r.index+(t?r[1].length:0);a.includes(i)?(o[i].before&&!t&&(o[i].before=!1),o[i].after&&!n&&(o[i].after=!1)):(a.push(i),o[i]={before:t,after:n})}}a.sort(ft);let c=n.before?n.before.length:0;const l=i.length-(n.after?n.after.length:0);for(s=-1;++s<a.length;){const t=a[s];t<c||t>=l||(t+1<l&&a[s+1]===t+1&&o[t].after&&!o[t+1].before&&!o[t+1].after||a[s-1]===t-1&&o[t].before&&!o[t-1].before&&!o[t-1].after||(c!==t&&r.push(gt(i.slice(c,t),"\\")),c=t,!/[!-/:-@[-`{-~]/.test(i.charAt(t))||n.encode&&n.encode.includes(i.charAt(t))?(r.push("&#x"+i.charCodeAt(t).toString(16).toUpperCase()+";"),c++):r.push("\\")))}return r.push(gt(i.slice(c,l),n.after)),r.join("")}function ft(t,e){return t-e}function gt(t,e){const n=/\\(?=[!-/:-@[-`{-~])/g,i=[],a=[],r=t+e;let o,s=-1,c=0;for(;o=n.exec(r);)i.push(o.index);for(;++s<i.length;)c!==i[s]&&a.push(t.slice(c,i[s])),a.push("\\"),c=i[s];return a.push(t.slice(c)),a.join("")}var pt=n(48653);function bt(t){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},t)}function mt(){this.buffer()}function yt(t){const e=this.resume(),n=this.stack[this.stack.length-1];n.label=e,n.identifier=(0,_.d)(this.sliceSerialize(t)).toLowerCase()}function vt(t){this.exit(t)}function wt(t){this.enter({type:"footnoteReference",identifier:"",label:""},t)}function xt(){this.buffer()}function Rt(t){const e=this.resume(),n=this.stack[this.stack.length-1];n.label=e,n.identifier=(0,_.d)(this.sliceSerialize(t)).toLowerCase()}function _t(t){this.exit(t)}function kt(t,e,n,i){const a=(0,pt.j)(i);let r=a.move("[^");const o=n.enter("footnoteReference"),s=n.enter("reference");return r+=a.move(ht(n,ot(t),{...a.current(),before:r,after:"]"})),s(),o(),r+=a.move("]"),r}function Et(t,e,n,i){const a=(0,pt.j)(i);let r=a.move("[^");const o=n.enter("footnoteDefinition"),s=n.enter("label");return r+=a.move(ht(n,ot(t),{...a.current(),before:r,after:"]"})),s(),r+=a.move("]:"+(t.children&&t.children.length>0?" ":"")),a.shift(4),r+=a.move((0,ct.Q)(function(t,e,n){const i=e.indexStack,a=t.children||[],r=e.createTracker(n),o=[];let s=-1;for(i.push(-1);++s<a.length;){const n=a[s];i[i.length-1]=s,o.push(r.move(e.handle(n,t,e,{before:"\n",after:"\n",...r.current()}))),"list"!==n.type&&(e.bulletLastUsed=void 0),s<a.length-1&&o.push(r.move(st(n,a[s+1],t,e)))}return i.pop(),o.join("")}(t,n,a.current()),Ct)),o(),r}function Ct(t,e,n){return 0===e?t:(n?"":" ")+t}kt.peek=function(){return"["};var St=n(87891);Dt.peek=function(){return"~"};const Tt={canContainEols:["delete"],enter:{strikethrough:function(t){this.enter({type:"delete",children:[]},t)}},exit:{strikethrough:function(t){this.exit(t)}}},At={unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"]}],handlers:{delete:Dt}};function Dt(t,e,n,i){const a=(0,pt.j)(i),r=n.enter("strikethrough");let o=a.move("~~");return o+=(0,St.p)(t,n,{...a.current(),before:o,after:"~"}),o+=a.move("~~"),r(),o}function It(t,e,n){let i=t.value||"",a="`",r=-1;for(;new RegExp("(^|[^`])"+a+"([^`]|$)").test(i);)a+="`";for(/[^ \r\n]/.test(i)&&(/^[ \r\n]/.test(i)&&/[ \r\n]$/.test(i)||/^`|`$/.test(i))&&(i=" "+i+" ");++r<n.unsafe.length;){const t=n.unsafe[r],e=lt(t);let a;if(t.atBreak)for(;a=e.exec(i);){let t=a.index;10===i.charCodeAt(t)&&13===i.charCodeAt(t-1)&&t--,i=i.slice(0,t)+" "+i.slice(a.index+1)}}return a+i+a}function Lt(t){return t.length}function Ot(t){const e="string"==typeof t?t.codePointAt(0):0;return 67===e||99===e?99:76===e||108===e?108:82===e||114===e?114:0}It.peek=function(){return"`"};const Mt={enter:{table:function(t){const e=t._align;this.enter({type:"table",align:e.map((t=>"none"===t?null:t)),children:[]},t),this.setData("inTable",!0)},tableData:Bt,tableHeader:Bt,tableRow:function(t){this.enter({type:"tableRow",children:[]},t)}},exit:{codeText:function(t){let e=this.resume();this.getData("inTable")&&(e=e.replace(/\\([\\|])/g,Pt));this.stack[this.stack.length-1].value=e,this.exit(t)},table:function(t){this.exit(t),this.setData("inTable")},tableData:Nt,tableHeader:Nt,tableRow:Nt}};function Nt(t){this.exit(t)}function Bt(t){this.enter({type:"tableCell",children:[]},t)}function Pt(t,e){return"|"===e?e:t}function Ft(t){const e=t||{},n=e.tableCellPadding,i=e.tablePipeAlign,a=e.stringLength,r=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:"\n",inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[\t :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{table:function(t,e,n,i){return s(function(t,e,n){const i=t.children;let a=-1;const r=[],o=e.enter("table");for(;++a<i.length;)r[a]=c(i[a],e,n);return o(),r}(t,n,i),t.align)},tableRow:function(t,e,n,i){const a=s([c(t,n,i)]);return a.slice(0,a.indexOf("\n"))},tableCell:o,inlineCode:function(t,e,n){let i=It(t,0,n);n.stack.includes("tableCell")&&(i=i.replace(/\|/g,"\\$&"));return i}}};function o(t,e,n,i){const a=n.enter("tableCell"),o=n.enter("phrasing"),s=(0,St.p)(t,n,{...i,before:r,after:r});return o(),a(),s}function s(t,e){return function(t,e={}){const n=(e.align||[]).concat(),i=e.stringLength||Lt,a=[],r=[],o=[],s=[];let c=0,l=-1;for(;++l<t.length;){const n=[],a=[];let d=-1;for(t[l].length>c&&(c=t[l].length);++d<t[l].length;){const r=null==(u=t[l][d])?"":String(u);if(!1!==e.alignDelimiters){const t=i(r);a[d]=t,(void 0===s[d]||t>s[d])&&(s[d]=t)}n.push(r)}r[l]=n,o[l]=a}var u;let d=-1;if("object"==typeof n&&"length"in n)for(;++d<c;)a[d]=Ot(n[d]);else{const t=Ot(n);for(;++d<c;)a[d]=t}d=-1;const h=[],f=[];for(;++d<c;){const t=a[d];let n="",i="";99===t?(n=":",i=":"):108===t?n=":":114===t&&(i=":");let r=!1===e.alignDelimiters?1:Math.max(1,s[d]-n.length-i.length);const o=n+"-".repeat(r)+i;!1!==e.alignDelimiters&&(r=n.length+r+i.length,r>s[d]&&(s[d]=r),f[d]=r),h[d]=o}r.splice(1,0,h),o.splice(1,0,f),l=-1;const g=[];for(;++l<r.length;){const t=r[l],n=o[l];d=-1;const i=[];for(;++d<c;){const r=t[d]||"";let o="",l="";if(!1!==e.alignDelimiters){const t=s[d]-(n[d]||0),e=a[d];114===e?o=" ".repeat(t):99===e?t%2?(o=" ".repeat(t/2+.5),l=" ".repeat(t/2-.5)):(o=" ".repeat(t/2),l=o):l=" ".repeat(t)}!1===e.delimiterStart||d||i.push("|"),!1===e.padding||!1===e.alignDelimiters&&""===r||!1===e.delimiterStart&&!d||i.push(" "),!1!==e.alignDelimiters&&i.push(o),i.push(r),!1!==e.alignDelimiters&&i.push(l),!1!==e.padding&&i.push(" "),!1===e.delimiterEnd&&d===c-1||i.push("|")}g.push(!1===e.delimiterEnd?i.join("").replace(/ +$/,""):i.join(""))}return g.join("\n")}(t,{align:e,alignDelimiters:i,padding:n,stringLength:a})}function c(t,e,n){const i=t.children;let a=-1;const r=[],s=e.enter("tableRow");for(;++a<i.length;)r[a]=o(i[a],0,e,n);return s(),r}}function jt(t,e,n,i){const a=function(t){const e=t.options.listItemIndent||"tab";if(1===e||"1"===e)return"one";if("tab"!==e&&"one"!==e&&"mixed"!==e)throw new Error("Cannot serialize items with `"+e+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return e}(n);let r=n.bulletCurrent||function(t){const e=t.options.bullet||"*";if("*"!==e&&"+"!==e&&"-"!==e)throw new Error("Cannot serialize items with `"+e+"` for `options.bullet`, expected `*`, `+`, or `-`");return e}(n);e&&"list"===e.type&&e.ordered&&(r=("number"==typeof e.start&&e.start>-1?e.start:1)+(!1===n.options.incrementListMarker?0:e.children.indexOf(t))+r);let o=r.length+1;("tab"===a||"mixed"===a&&(e&&"list"===e.type&&e.spread||t.spread))&&(o=4*Math.ceil(o/4));const s=n.createTracker(i);s.move(r+" ".repeat(o-r.length)),s.shift(o);const c=n.enter("listItem"),l=n.indentLines(n.containerFlow(t,s.current()),(function(t,e,n){if(e)return(n?"":" ".repeat(o))+t;return(n?r:r+" ".repeat(o-r.length))+t}));return c(),l}const $t={exit:{taskListCheckValueChecked:Ht,taskListCheckValueUnchecked:Ht,paragraph:function(t){const e=this.stack[this.stack.length-2];if(e&&"listItem"===e.type&&"boolean"==typeof e.checked){const t=this.stack[this.stack.length-1],n=t.children[0];if(n&&"text"===n.type){const i=e.children;let a,r=-1;for(;++r<i.length;){const t=i[r];if("paragraph"===t.type){a=t;break}}a===t&&(n.value=n.value.slice(1),0===n.value.length?t.children.shift():t.position&&n.position&&"number"==typeof n.position.start.offset&&(n.position.start.column++,n.position.start.offset++,t.position.start=Object.assign({},n.position.start)))}}this.exit(t)}}},zt={unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:function(t,e,n,i){const a=t.children[0],r="boolean"==typeof t.checked&&a&&"paragraph"===a.type,o="["+(t.checked?"x":" ")+"] ",s=(0,pt.j)(i);r&&s.move(o);let c=jt(t,e,n,{...i,...s.current()});r&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,(function(t){return t+o})));return c}}};function Ht(t){this.stack[this.stack.length-2].checked="taskListCheckValueChecked"===t.type}function Ut(t={}){const e=this.data();function n(t,n){(e[t]?e[t]:e[t]=[]).push(n)}n("micromarkExtensions",function(t){return(0,i.W)([g,{document:{91:{tokenize:T,continuation:{tokenize:A},exit:D}},text:{91:{tokenize:S},93:{add:"after",tokenize:E,resolveTo:C}}},M(t),P,H])}(t)),n("fromMarkdownExtensions",[Q,{enter:{gfmFootnoteDefinition:bt,gfmFootnoteDefinitionLabelString:mt,gfmFootnoteCall:wt,gfmFootnoteCallString:xt},exit:{gfmFootnoteDefinition:vt,gfmFootnoteDefinitionLabelString:yt,gfmFootnoteCall:_t,gfmFootnoteCallString:Rt}},Tt,Mt,$t]),n("toMarkdownExtensions",function(t){return{extensions:[tt,{unsafe:[{character:"[",inConstruct:["phrasing","label","reference"]}],handlers:{footnoteDefinition:Et,footnoteReference:kt}},At,Ft(t),zt]}}(t))}},96093:(t,e,n)=>{"use strict";n.d(e,{O:()=>i});const i=function(t){if(null==t)return r;if("string"==typeof t)return function(t){return a(e);function e(e){return e&&e.type===t}}(t);if("object"==typeof t)return Array.isArray(t)?function(t){const e=[];let n=-1;for(;++n<t.length;)e[n]=i(t[n]);return a(r);function r(...t){let n=-1;for(;++n<e.length;)if(e[n].call(this,...t))return!0;return!1}}(t):function(t){return a(e);function e(e){let n;for(n in t)if(e[n]!==t[n])return!1;return!0}}(t);if("function"==typeof t)return a(t);throw new Error("Expected function, string, or object as test")};function a(t){return function(e,...n){return Boolean(e&&"object"==typeof e&&"type"in e&&Boolean(t.call(this,e,...n)))}}function r(){return!0}},70905:(t,e,n)=>{"use strict";n.r(e),n.d(e,{remove:()=>r});var i=n(96093);const a=[],r=function(t,e,n){const r=(0,i.O)(n||e),o=!e||void 0===e.cascade||null===e.cascade||e.cascade;return function t(e,n,i){const s=e.children||a;let c=-1,l=0;if(r(e,n,i))return null;if(s.length>0){for(;++c<s.length;)t(s[c],c,e)&&(s[l++]=s[c]);if(o&&!l)return null;s.length=l}return e}(t)}},20557:(t,e,n)=>{"use strict";n.d(e,{S4:()=>a});var i=n(96093);const a=function(t,e,n,a){"function"==typeof e&&"function"!=typeof n&&(a=n,n=e,e=null);const r=(0,i.O)(e),o=a?-1:1;!function t(i,s,c){const l=i&&"object"==typeof i?i:{};if("string"==typeof l.type){const t="string"==typeof l.tagName?l.tagName:"string"==typeof l.name?l.name:void 0;Object.defineProperty(u,"name",{value:"node ("+i.type+(t?"<"+t+">":"")+")"})}return u;function u(){let l,u,d,h=[];if((!e||r(i,s,c[c.length-1]||null))&&(h=function(t){if(Array.isArray(t))return t;if("number"==typeof t)return[true,t];return[t]}(n(i,c)),false===h[0]))return h;if(i.children&&"skip"!==h[0])for(u=(a?i.children.length:-1)+o,d=c.concat(i);u>-1&&u<i.children.length;){if(l=t(i.children[u],u,d)(),false===l[0])return l;u="number"==typeof l[1]?l[1]:u+o}return h}}(t,void 0,[])()}},68914:t=>{"use strict";t.exports=JSON.parse('["md","markdown","mdown","mkdn","mkd","mdwn","mkdown","ron"]')}}]); \ No newline at end of file diff --git a/assets/js/6894.61d518cf.js.LICENSE.txt b/assets/js/6894.61d518cf.js.LICENSE.txt new file mode 100644 index 00000000000..b4b09e0d654 --- /dev/null +++ b/assets/js/6894.61d518cf.js.LICENSE.txt @@ -0,0 +1,64 @@ +/*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + */ + +/*! + * Wait for document loaded before starting the execution + */ + +/*! + Copyright (c) 2015 Jed Watson. + Based on code that is Copyright 2013-2015, Facebook, Inc. + All rights reserved. +*/ + +/*! + * Adapted from jQuery UI core + * + * http://jqueryui.com + * + * Copyright 2014 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/ui-core/ + */ + +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh <https://feross.org> + * @license MIT + */ + +/*! + * Wait for document loaded before starting the execution + */ + +/*! + * regjsgen 0.5.2 + * Copyright 2014-2020 Benjamin Tan <https://ofcr.se/> + * Available under the MIT license <https://github.com/bnjmnt4n/regjsgen/blob/master/LICENSE-MIT.txt> + */ + +/*! +Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable +Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) +Licensed under The MIT License (http://opensource.org/licenses/MIT) +*/ + +/*! @license DOMPurify 2.4.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.3/LICENSE */ + +/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + +/*! Check if previously processed */ + +/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + +/*! https://mths.be/regenerate v1.4.2 by @mathias | MIT license */ + +/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ diff --git a/assets/js/6923.4bd4b036.js b/assets/js/6923.4bd4b036.js new file mode 100644 index 00000000000..eba8bec831e --- /dev/null +++ b/assets/js/6923.4bd4b036.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6923],{66923:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>m,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>n});var o=s(87462),a=(s(67294),s(3905));s(45475);const i={title:"Emacs",slug:"/editors/emacs"},l=void 0,r={unversionedId:"editors/emacs",id:"editors/emacs",title:"Emacs",description:"flow-for-emacs",source:"@site/docs/editors/emacs.md",sourceDirName:"editors",slug:"/editors/emacs",permalink:"/en/docs/editors/emacs",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/emacs.md",tags:[],version:"current",frontMatter:{title:"Emacs",slug:"/editors/emacs"},sidebar:"docsSidebar",previous:{title:"Vim",permalink:"/en/docs/editors/vim"},next:{title:"WebStorm",permalink:"/en/docs/editors/webstorm"}},m={},n=[{value:"flow-for-emacs",id:"toc-flow-for-emacs",level:3},{value:"Requirements",id:"toc-emacs-requirements",level:3},{value:"Installation",id:"toc-emacs-installation",level:3}],c={toc:n};function d(e){let{components:t,...s}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},c,s,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("h3",{id:"toc-flow-for-emacs"},"flow-for-emacs"),(0,a.mdx)("p",null,"You can add support for Flow in Emacs by using ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/flowtype/flow-for-emacs"},"flow-for-emacs")),(0,a.mdx)("h3",{id:"toc-emacs-requirements"},"Requirements"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"Requires Flow to be installed and available on your path."),(0,a.mdx)("li",{parentName:"ul"},"Requires projects containing JavaScript files to be initialised with flow init."),(0,a.mdx)("li",{parentName:"ul"},"Requires JavaScript files to be marked with /",(0,a.mdx)("em",{parentName:"li"}," @flow "),"/ at the top.")),(0,a.mdx)("h3",{id:"toc-emacs-installation"},"Installation"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},'cd ~/.emacs.d/\ngit clone https://github.com/flowtype/flow-for-emacs.git\necho -e "\\n(load-file \\"~/.emacs.d/flow-for-emacs/flow.el\\")" >> ~/.emacs\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6943.36e5dcf5.js b/assets/js/6943.36e5dcf5.js new file mode 100644 index 00000000000..4c1880510dd --- /dev/null +++ b/assets/js/6943.36e5dcf5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6943],{56943:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>n,contentTitle:()=>i,default:()=>w,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var s=t(87462),r=(t(67294),t(3905));const a={title:"A More Responsive Flow","short-title":"A More Responsive Flow",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/a-more-responsive-flow-1a8cb01aec11"},i=void 0,l={permalink:"/blog/2019/2/8/A-More-Responsive-Flow",source:"@site/blog/2019-2-8-A-More-Responsive-Flow.md",title:"A More Responsive Flow",description:"Flow 0.92 improves on the Flow developer experience.",date:"2019-02-08T00:00:00.000Z",formattedDate:"February 8, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{title:"A More Responsive Flow","short-title":"A More Responsive Flow",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/a-more-responsive-flow-1a8cb01aec11"},prevItem:{title:"Upgrading Flow Codebases",permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases"},nextItem:{title:"What the Flow Team Has Been Up To",permalink:"/blog/2019/1/28/What-the-flow-team-has-been-up-to"}},n={authorsImageUrls:[void 0]},p=[],m={toc:p};function w(e){let{components:o,...t}=e;return(0,r.mdx)("wrapper",(0,s.Z)({},m,t,{components:o,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow 0.92 improves on the Flow developer experience."))}w.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6945.7839b727.js b/assets/js/6945.7839b727.js new file mode 100644 index 00000000000..7d43e5bdef2 --- /dev/null +++ b/assets/js/6945.7839b727.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6945],{46945:(e,s,w)=>{w.r(s)}}]); \ No newline at end of file diff --git a/assets/js/6956.75567b7a.js b/assets/js/6956.75567b7a.js new file mode 100644 index 00000000000..8c1633eb1c6 --- /dev/null +++ b/assets/js/6956.75567b7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6956],{86956:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>n,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>p,toc:()=>l});var s=o(87462),a=(o(67294),o(3905));const r={title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases","short-title":"Private Props w/ Opaque Types",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/private-object-properties-using-flows-opaque-type-aliases-e0100e9b0282"},i=void 0,p={permalink:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases",source:"@site/blog/2017-08-25-Private-Object-Properties-Using-Flows-Opaque-Type-Aliases.md",title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases",description:"In the last few weeks, a proposal for private class fields in Javascript reached",date:"2017-08-25T00:00:00.000Z",formattedDate:"August 25, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases","short-title":"Private Props w/ Opaque Types",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/private-object-properties-using-flows-opaque-type-aliases-e0100e9b0282"},prevItem:{title:"Typing Higher-Order Components in Recompose With Flow",permalink:"/blog/2017/09/03/Flow-Support-in-Recompose"},nextItem:{title:"Even Better Support for React in Flow",permalink:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow"}},n={authorsImageUrls:[void 0]},l=[],u={toc:l};function c(e){let{components:t,...o}=e;return(0,a.mdx)("wrapper",(0,s.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"In the last few weeks, a proposal for ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/tc39/proposal-class-fields"},"private class fields in Javascript")," reached\nstage 3. This is going to be a great way to hide implementation details away\nfrom users of your classes. However, locking yourself in to an OOP style of\nprogramming is not always ideal if you prefer a more functional style. Let\u2019s\ntalk about how you can use Flow\u2019s ",(0,a.mdx)("a",{parentName:"p",href:"https://flow.org/en/docs/types/opaque-types/"},"opaque type aliases")," to get private properties\non any object type."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6990.60c608ae.js b/assets/js/6990.60c608ae.js new file mode 100644 index 00000000000..479af8d1e2d --- /dev/null +++ b/assets/js/6990.60c608ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[6990],{66990:(e,r,i)=>{i.r(r),i.d(r,{assets:()=>l,contentTitle:()=>n,default:()=>m,frontMatter:()=>t,metadata:()=>a,toc:()=>p});var o=i(87462),s=(i(67294),i(3905));const t={title:"Making Flow error suppressions more specific","short-title":"Making Flow error suppressions",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/making-flow-error-suppressions-more-specific-280aa4e3c95c"},n=void 0,a={permalink:"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific",source:"@site/blog/2020-03-16-Making-Flow-error-suppressions-more-specific.md",title:"Making Flow error suppressions more specific",description:"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors.",date:"2020-03-16T00:00:00.000Z",formattedDate:"March 16, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Daniel Sainati"}],frontMatter:{title:"Making Flow error suppressions more specific","short-title":"Making Flow error suppressions",author:"Daniel Sainati","medium-link":"https://medium.com/flow-type/making-flow-error-suppressions-more-specific-280aa4e3c95c"},prevItem:{title:"Types-First: A Scalable New Architecture for Flow",permalink:"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow"},nextItem:{title:"What we\u2019re building in 2020",permalink:"/blog/2020/03/09/What-were-building-in-2020"}},l={authorsImageUrls:[void 0]},p=[],c={toc:p};function m(e){let{components:r,...i}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},c,i,{components:r,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"We\u2019re improving Flow error suppressions so that they don\u2019t accidentally hide errors."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7043.6c28e0ba.js b/assets/js/7043.6c28e0ba.js new file mode 100644 index 00000000000..e3602842af2 --- /dev/null +++ b/assets/js/7043.6c28e0ba.js @@ -0,0 +1,2 @@ +/*! For license information please see 7043.6c28e0ba.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7043],{17043:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>n,language:()=>i});var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"),end:new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))")}}},i={defaultToken:"",tokenPostfix:".java",keywords:["abstract","continue","for","new","switch","assert","default","goto","package","synchronized","boolean","do","if","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","true","false","yield","record","sealed","non-sealed","permits"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,tokenizer:{root:[["non-sealed","keyword.non-sealed"],[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/7043.6c28e0ba.js.LICENSE.txt b/assets/js/7043.6c28e0ba.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7043.6c28e0ba.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7043.c99b557e.js b/assets/js/7043.c99b557e.js new file mode 100644 index 00000000000..92adf763fdb --- /dev/null +++ b/assets/js/7043.c99b557e.js @@ -0,0 +1,240 @@ +"use strict"; +exports.id = 7043; +exports.ids = [7043]; +exports.modules = { + +/***/ 17043: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/java/java.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ], + folding: { + markers: { + start: new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"), + end: new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".java", + keywords: [ + "abstract", + "continue", + "for", + "new", + "switch", + "assert", + "default", + "goto", + "package", + "synchronized", + "boolean", + "do", + "if", + "private", + "this", + "break", + "double", + "implements", + "protected", + "throw", + "byte", + "else", + "import", + "public", + "throws", + "case", + "enum", + "instanceof", + "return", + "transient", + "catch", + "extends", + "int", + "short", + "try", + "char", + "final", + "interface", + "static", + "void", + "class", + "finally", + "long", + "strictfp", + "volatile", + "const", + "float", + "native", + "super", + "while", + "true", + "false", + "yield", + "record", + "sealed", + "non-sealed", + "permits" + ], + operators: [ + "=", + ">", + "<", + "!", + "~", + "?", + ":", + "==", + "<=", + ">=", + "!=", + "&&", + "||", + "++", + "--", + "+", + "-", + "*", + "/", + "&", + "|", + "^", + "%", + "<<", + ">>", + ">>>", + "+=", + "-=", + "*=", + "/=", + "&=", + "|=", + "^=", + "%=", + "<<=", + ">>=", + ">>>=" + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + digits: /\d+(_+\d+)*/, + octaldigits: /[0-7]+(_+[0-7]+)*/, + binarydigits: /[0-1]+(_+[0-1]+)*/, + hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/, + tokenizer: { + root: [ + ["non-sealed", "keyword.non-sealed"], + [ + /[a-zA-Z_$][\w$]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/@\s*[a-zA-Z_\$][\w\$]*/, "annotation"], + [/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/, "number.float"], + [/0[xX](@hexdigits)[Ll]?/, "number.hex"], + [/0(@octaldigits)[Ll]?/, "number.octal"], + [/0[bB](@binarydigits)[Ll]?/, "number.binary"], + [/(@digits)[fFdD]/, "number.float"], + [/(@digits)[lL]?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"""/, "string", "@multistring"], + [/"/, "string", "@string"], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@javadoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + javadoc: [ + [/[^\/*]+/, "comment.doc"], + [/\/\*/, "comment.doc.invalid"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"] + ], + multistring: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"""/, "string", "@pop"], + [/./, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7085.2da88da6.js b/assets/js/7085.2da88da6.js new file mode 100644 index 00000000000..dc574a61c7c --- /dev/null +++ b/assets/js/7085.2da88da6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7085],{7085:e=>{e.exports=JSON.parse('{"name":"docusaurus-theme-search-algolia","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/7131.af65a3d6.js b/assets/js/7131.af65a3d6.js new file mode 100644 index 00000000000..1877dad4d82 --- /dev/null +++ b/assets/js/7131.af65a3d6.js @@ -0,0 +1,2 @@ +/*! For license information please see 7131.af65a3d6.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7131],{47131:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>r,language:()=>i});var o=`\\b${"[_a-zA-Z][_a-zA-Z0-9]*"}\\b`,r={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:"'''",close:"'''"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:"'''",close:"'''",notIn:["string","comment"]}],autoCloseBefore:":.,=}])' \n\t",indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},i={defaultToken:"",tokenPostfix:".bicep",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=><!~?:&|+\-*/^%]+/,keywords:["targetScope","resource","module","param","var","output","for","in","if","existing"],namedLiterals:["true","false","null"],escapes:"\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)",tokenizer:{root:[{include:"@expression"},{include:"@whitespace"}],stringVerbatim:[{regex:"(|'|'')[^']",action:{token:"string"}},{regex:"'''",action:{token:"string.quote",next:"@pop"}}],stringLiteral:[{regex:"\\${",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"[^\\\\'$]+",action:{token:"string"}},{regex:"@escapes",action:{token:"string.escape"}},{regex:"\\\\.",action:{token:"string.escape.invalid"}},{regex:"'",action:{token:"string",next:"@pop"}}],bracketCounting:[{regex:"{",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"}",action:{token:"delimiter.bracket",next:"@pop"}},{include:"expression"}],comment:[{regex:"[^\\*]+",action:{token:"comment"}},{regex:"\\*\\/",action:{token:"comment",next:"@pop"}},{regex:"[\\/*]",action:{token:"comment"}}],whitespace:[{regex:"[ \\t\\r\\n]"},{regex:"\\/\\*",action:{token:"comment",next:"@comment"}},{regex:"\\/\\/.*$",action:{token:"comment"}}],expression:[{regex:"'''",action:{token:"string.quote",next:"@stringVerbatim"}},{regex:"'",action:{token:"string.quote",next:"@stringLiteral"}},{regex:"[0-9]+",action:{token:"number"}},{regex:o,action:{cases:{"@keywords":{token:"keyword"},"@namedLiterals":{token:"keyword"},"@default":{token:"identifier"}}}}]}}}}]); \ No newline at end of file diff --git a/assets/js/7131.af65a3d6.js.LICENSE.txt b/assets/js/7131.af65a3d6.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7131.af65a3d6.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7131.ef199ac3.js b/assets/js/7131.ef199ac3.js new file mode 100644 index 00000000000..2560a0b74e3 --- /dev/null +++ b/assets/js/7131.ef199ac3.js @@ -0,0 +1,134 @@ +"use strict"; +exports.id = 7131; +exports.ids = [7131]; +exports.modules = { + +/***/ 47131: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/bicep/bicep.ts +var bounded = (text) => `\\b${text}\\b`; +var identifierStart = "[_a-zA-Z]"; +var identifierContinue = "[_a-zA-Z0-9]"; +var identifier = bounded(`${identifierStart}${identifierContinue}*`); +var keywords = [ + "targetScope", + "resource", + "module", + "param", + "var", + "output", + "for", + "in", + "if", + "existing" +]; +var namedLiterals = ["true", "false", "null"]; +var nonCommentWs = `[ \\t\\r\\n]`; +var numericLiteral = `[0-9]+`; +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'" }, + { open: "'''", close: "'''" } + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: "'''", close: "'''", notIn: ["string", "comment"] } + ], + autoCloseBefore: ":.,=}])' \n ", + indentationRules: { + increaseIndentPattern: new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"), + decreaseIndentPattern: new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$") + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".bicep", + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + symbols: /[=><!~?:&|+\-*/^%]+/, + keywords, + namedLiterals, + escapes: `\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\\${)`, + tokenizer: { + root: [{ include: "@expression" }, { include: "@whitespace" }], + stringVerbatim: [ + { regex: `(|'|'')[^']`, action: { token: "string" } }, + { regex: `'''`, action: { token: "string.quote", next: "@pop" } } + ], + stringLiteral: [ + { regex: `\\\${`, action: { token: "delimiter.bracket", next: "@bracketCounting" } }, + { regex: `[^\\\\'$]+`, action: { token: "string" } }, + { regex: "@escapes", action: { token: "string.escape" } }, + { regex: `\\\\.`, action: { token: "string.escape.invalid" } }, + { regex: `'`, action: { token: "string", next: "@pop" } } + ], + bracketCounting: [ + { regex: `{`, action: { token: "delimiter.bracket", next: "@bracketCounting" } }, + { regex: `}`, action: { token: "delimiter.bracket", next: "@pop" } }, + { include: "expression" } + ], + comment: [ + { regex: `[^\\*]+`, action: { token: "comment" } }, + { regex: `\\*\\/`, action: { token: "comment", next: "@pop" } }, + { regex: `[\\/*]`, action: { token: "comment" } } + ], + whitespace: [ + { regex: nonCommentWs }, + { regex: `\\/\\*`, action: { token: "comment", next: "@comment" } }, + { regex: `\\/\\/.*$`, action: { token: "comment" } } + ], + expression: [ + { regex: `'''`, action: { token: "string.quote", next: "@stringVerbatim" } }, + { regex: `'`, action: { token: "string.quote", next: "@stringLiteral" } }, + { regex: numericLiteral, action: { token: "number" } }, + { + regex: identifier, + action: { + cases: { + "@keywords": { token: "keyword" }, + "@namedLiterals": { token: "keyword" }, + "@default": { token: "identifier" } + } + } + } + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7210.dccd8a9d.js b/assets/js/7210.dccd8a9d.js new file mode 100644 index 00000000000..bf27f82fb2d --- /dev/null +++ b/assets/js/7210.dccd8a9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7210],{97210:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>s});var o=i(87462),t=(i(67294),i(3905));i(45475);const r={title:".flowconfig [ignore]",slug:"/config/ignore"},l=void 0,a={unversionedId:"config/ignore",id:"config/ignore",title:".flowconfig [ignore]",description:"The [ignore] section in a .flowconfig file tells Flow to ignore files",source:"@site/docs/config/ignore.md",sourceDirName:"config",slug:"/config/ignore",permalink:"/en/docs/config/ignore",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/ignore.md",tags:[],version:"current",frontMatter:{title:".flowconfig [ignore]",slug:"/config/ignore"},sidebar:"docsSidebar",previous:{title:".flowconfig [include]",permalink:"/en/docs/config/include"},next:{title:".flowconfig [untyped]",permalink:"/en/docs/config/untyped"}},d={},s=[{value:"Exclusions",id:"toc-ignore-exclusions",level:3}],m={toc:s};function p(e){let{components:n,...i}=e;return(0,t.mdx)("wrapper",(0,o.Z)({},m,i,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"The ",(0,t.mdx)("inlineCode",{parentName:"p"},"[ignore]")," section in a ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file tells Flow to ignore files\nmatching the specified regular expressions when type checking your code. By\ndefault, nothing is ignored."),(0,t.mdx)("p",null,"Things to keep in mind:"),(0,t.mdx)("ol",null,(0,t.mdx)("li",{parentName:"ol"},"These are ",(0,t.mdx)("a",{parentName:"li",href:"http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp"},"OCaml regular expressions"),"."),(0,t.mdx)("li",{parentName:"ol"},"These regular expressions match against absolute paths. They probably should\nstart with ",(0,t.mdx)("inlineCode",{parentName:"li"},".*")),(0,t.mdx)("li",{parentName:"ol"},"Ignores are processed AFTER includes. If you both include and ignore a file\nit will be ignored.")),(0,t.mdx)("p",null,"An example ",(0,t.mdx)("inlineCode",{parentName:"p"},"[ignore]")," section might look like:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[ignore]\n.*/__tests__/.*\n.*/src/\\(foo\\|bar\\)/.*\n.*\\.ignore\\.js\n")),(0,t.mdx)("p",null,"This ",(0,t.mdx)("inlineCode",{parentName:"p"},"[ignore]")," section will ignore:"),(0,t.mdx)("ol",null,(0,t.mdx)("li",{parentName:"ol"},"Any file or directory under a directory named ",(0,t.mdx)("inlineCode",{parentName:"li"},"__tests__")),(0,t.mdx)("li",{parentName:"ol"},"Any file or directory under ",(0,t.mdx)("inlineCode",{parentName:"li"},".*/src/foo")," or under ",(0,t.mdx)("inlineCode",{parentName:"li"},".*/src/bar")),(0,t.mdx)("li",{parentName:"ol"},"Any file that ends with the extension ",(0,t.mdx)("inlineCode",{parentName:"li"},".ignore.js"))),(0,t.mdx)("p",null,"You may use the ",(0,t.mdx)("inlineCode",{parentName:"p"},"<PROJECT_ROOT>")," placeholder in your regular expressions.\nAt runtime, Flow will treat the placeholder as if it were the absolute\npath to the project's root directory. This is useful for writing regular\nexpressions that are relative rather than absolute."),(0,t.mdx)("p",null,"For example, you can write:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[ignore]\n<PROJECT_ROOT>/__tests__/.*\n")),(0,t.mdx)("p",null,"Which would ignore any file or directory under the directory named ",(0,t.mdx)("inlineCode",{parentName:"p"},"__tests__/"),"\nwithin the project root. However, unlike the previous example's\n",(0,t.mdx)("inlineCode",{parentName:"p"},".*/__tests__/.*"),", it would NOT ignore files or directories under other\ndirectories named ",(0,t.mdx)("inlineCode",{parentName:"p"},"__tests__/"),", like ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/__tests__/"),"."),(0,t.mdx)("h3",{id:"toc-ignore-exclusions"},"Exclusions"),(0,t.mdx)("p",null,'Sometimes you may want to ignore all files inside a directory with the exception of a few. An optional prefix "!" which negates the pattern may help. With this, any matching file excluded by a previous pattern will become included again.'),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"[ignore]\n<PROJECT_ROOT>/node_modules/.*\n!<PROJECT_ROOT>/node_modules/not-ignored-package-A/.*\n!<PROJECT_ROOT>/node_modules/not-ignored-package-B/.*\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7216.82683887.js b/assets/js/7216.82683887.js new file mode 100644 index 00000000000..5b779300772 --- /dev/null +++ b/assets/js/7216.82683887.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7216],{17216:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>d,toc:()=>p});var i=t(87462),a=(t(67294),t(3905));t(45475);const o={title:".flowconfig [untyped]",slug:"/config/untyped"},r=void 0,d={unversionedId:"config/untyped",id:"config/untyped",title:".flowconfig [untyped]",description:"The [untyped] section in a .flowconfig file tells Flow to not typecheck files",source:"@site/docs/config/untyped.md",sourceDirName:"config",slug:"/config/untyped",permalink:"/en/docs/config/untyped",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/untyped.md",tags:[],version:"current",frontMatter:{title:".flowconfig [untyped]",slug:"/config/untyped"},sidebar:"docsSidebar",previous:{title:".flowconfig [ignore]",permalink:"/en/docs/config/ignore"},next:{title:".flowconfig [declarations]",permalink:"/en/docs/config/declarations"}},l={},p=[],s={toc:p};function m(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"The ",(0,a.mdx)("inlineCode",{parentName:"p"},"[untyped]")," section in a ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file tells Flow to not typecheck files\nmatching the specified regular expressions and instead throw away types and treat modules as ",(0,a.mdx)("a",{parentName:"p",href:"../../types/any"},(0,a.mdx)("inlineCode",{parentName:"a"},"any")),"."),(0,a.mdx)("p",null,"This is different from the ",(0,a.mdx)("a",{parentName:"p",href:"../ignore"},(0,a.mdx)("inlineCode",{parentName:"a"},"[ignore]"))," config section that causes matching files to be ignored by the module resolver,\nwhich inherently makes them un-typechecked, and also unresolvable by ",(0,a.mdx)("inlineCode",{parentName:"p"},"import")," or ",(0,a.mdx)("inlineCode",{parentName:"p"},"require"),".\nWhen ignored, ",(0,a.mdx)("a",{parentName:"p",href:"../libs"},(0,a.mdx)("inlineCode",{parentName:"a"},"[libs]"))," must then be specified for each ",(0,a.mdx)("inlineCode",{parentName:"p"},"import")," using ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow-typed"),", which may not always be desired."),(0,a.mdx)("p",null,"It is also different from the ",(0,a.mdx)("a",{parentName:"p",href:"../declarations"},(0,a.mdx)("inlineCode",{parentName:"a"},"[declarations]"))," section.\nThis also does not typecheck the file contents, but ",(0,a.mdx)("inlineCode",{parentName:"p"},"[declarations]")," does extract and use the signatures of functions, classes, etc, when checking other code."),(0,a.mdx)("p",null,(0,a.mdx)("inlineCode",{parentName:"p"},"[untyped]")," instead causes a file to be ignored by the typechecker as if it had ",(0,a.mdx)("inlineCode",{parentName:"p"},"@noflow")," in it,\nresolve modules as ",(0,a.mdx)("inlineCode",{parentName:"p"},"any")," type, but allow them to NOT be ignored by the module resolver.\nAny matching file is skipped by Flow (not even parsed, like other ",(0,a.mdx)("inlineCode",{parentName:"p"},"@noflow")," files!), but can still be ",(0,a.mdx)("inlineCode",{parentName:"p"},"require()"),"'d."),(0,a.mdx)("p",null,"Things to keep in mind:"),(0,a.mdx)("ol",null,(0,a.mdx)("li",{parentName:"ol"},"These are ",(0,a.mdx)("a",{parentName:"li",href:"http://caml.inria.fr/pub/docs/manual-ocaml/libref/Str.html#TYPEregexp"},"OCaml regular expressions"),"."),(0,a.mdx)("li",{parentName:"ol"},"These regular expressions match against absolute paths. They probably should\nstart with ",(0,a.mdx)("inlineCode",{parentName:"li"},".*"))),(0,a.mdx)("p",null,"An example ",(0,a.mdx)("inlineCode",{parentName:"p"},"[untyped]")," section might look like:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"[untyped]\n.*/third_party/.*\n.*/src/\\(foo\\|bar\\)/.*\n.*\\.untyped\\.js\n")),(0,a.mdx)("p",null,"This ",(0,a.mdx)("inlineCode",{parentName:"p"},"[untyped]")," section will parse:"),(0,a.mdx)("ol",null,(0,a.mdx)("li",{parentName:"ol"},"Any file or directory under a directory named ",(0,a.mdx)("inlineCode",{parentName:"li"},"third_party")),(0,a.mdx)("li",{parentName:"ol"},"Any file or directory under ",(0,a.mdx)("inlineCode",{parentName:"li"},".*/src/foo")," or under ",(0,a.mdx)("inlineCode",{parentName:"li"},".*/src/bar")),(0,a.mdx)("li",{parentName:"ol"},"Any file that ends with the extension ",(0,a.mdx)("inlineCode",{parentName:"li"},".untyped.js"))),(0,a.mdx)("p",null,"You may use the ",(0,a.mdx)("inlineCode",{parentName:"p"},"<PROJECT_ROOT>")," placeholder in your regular expressions.\nAt runtime, Flow will treat the placeholder as if it were the absolute path\nto the project's root directory. This is useful for writing regular\nexpressions that are relative rather than absolute."),(0,a.mdx)("p",null,"For example, you can write:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"[untyped]\n<PROJECT_ROOT>/third_party/.*\n")),(0,a.mdx)("p",null,"Which would parse in declaration mode any file or directory under the directory\nnamed ",(0,a.mdx)("inlineCode",{parentName:"p"},"third_party/")," within the project root. However, unlike the previous\nexample's ",(0,a.mdx)("inlineCode",{parentName:"p"},".*/third_party/.*"),", it would NOT parse files or directories under\ndirectories named ",(0,a.mdx)("inlineCode",{parentName:"p"},"third_party/"),", like ",(0,a.mdx)("inlineCode",{parentName:"p"},"src/third_party/"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/728.1f188d20.js b/assets/js/728.1f188d20.js new file mode 100644 index 00000000000..7cabe4b0877 --- /dev/null +++ b/assets/js/728.1f188d20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[728],{20728:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>n,contentTitle:()=>a,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=o(87462),s=(o(67294),o(3905));const l={title:"Types-First: A Scalable New Architecture for Flow","short-title":"Types-First: A Scalable New",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-a-scalable-new-architecture-for-flow-3d8c7ba1d4eb"},a=void 0,i={permalink:"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow",source:"@site/blog/2020-05-18-Types-First-A-Scalable-New-Architecture-for-Flow.md",title:"Types-First: A Scalable New Architecture for Flow",description:"Flow Types-First mode is out! It unlocks Flow\u2019s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post.",date:"2020-05-18T00:00:00.000Z",formattedDate:"May 18, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Panagiotis Vekris"}],frontMatter:{title:"Types-First: A Scalable New Architecture for Flow","short-title":"Types-First: A Scalable New",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-a-scalable-new-architecture-for-flow-3d8c7ba1d4eb"},prevItem:{title:"Flow's Improved Handling of Generic Types",permalink:"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types"},nextItem:{title:"Making Flow error suppressions more specific",permalink:"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific"}},n={authorsImageUrls:[void 0]},c=[],p={toc:c};function u(e){let{components:t,...o}=e;return(0,s.mdx)("wrapper",(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow Types-First mode is out! It unlocks Flow\u2019s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7287.851fbdcc.js b/assets/js/7287.851fbdcc.js new file mode 100644 index 00000000000..590506c2ae7 --- /dev/null +++ b/assets/js/7287.851fbdcc.js @@ -0,0 +1,2 @@ +/*! For license information please see 7287.851fbdcc.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7287],{37287:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>g,language:()=>m});var s,r,o=n(15030),i=Object.defineProperty,l=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,p=(e,t,n,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of a(t))c.call(e,r)||r===n||i(e,r,{get:()=>t[r],enumerable:!(s=l(t,r))||s.enumerable});return e},d={};p(d,s=o,"default"),r&&p(r,s,"default");var g={comments:{lineComment:"#",blockComment:["'''","'''"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$"),action:{indentAction:d.languages.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},m={defaultToken:"",tokenPostfix:".python",keywords:["False","None","True","_","and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","exec","finally","for","from","global","if","import","in","is","lambda","match","nonlocal","not","or","pass","print","raise","return","try","while","with","yield","int","float","long","complex","hex","abs","all","any","apply","basestring","bin","bool","buffer","bytearray","callable","chr","classmethod","cmp","coerce","compile","complex","delattr","dict","dir","divmod","enumerate","eval","execfile","file","filter","format","frozenset","getattr","globals","hasattr","hash","help","id","input","intern","isinstance","issubclass","iter","len","locals","list","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","reversed","range","raw_input","reduce","reload","repr","reversed","round","self","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","unichr","unicode","vars","xrange","zip","__dict__","__methods__","__members__","__class__","__bases__","__name__","__mro__","__subclasses__","__init__","__import__"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/[,:;]/,"delimiter"],[/[{}\[\]()]/,"@brackets"],[/@[a-zA-Z_]\w*/,"tag"],[/[a-zA-Z_]\w*/,{cases:{"@keywords":"keyword","@default":"identifier"}}]],whitespace:[[/\s+/,"white"],[/(^#.*$)/,"comment"],[/'''/,"string","@endDocString"],[/"""/,"string","@endDblDocString"]],endDocString:[[/[^']+/,"string"],[/\\'/,"string"],[/'''/,"string","@popall"],[/'/,"string"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string","@popall"],[/"/,"string"]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/,"number"]],strings:[[/'$/,"string.escape","@popall"],[/'/,"string.escape","@stringBody"],[/"$/,"string.escape","@popall"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/[^\\']+$/,"string","@popall"],[/[^\\']+/,"string"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],dblStringBody:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/7287.851fbdcc.js.LICENSE.txt b/assets/js/7287.851fbdcc.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7287.851fbdcc.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7287.ee26e9d5.js b/assets/js/7287.ee26e9d5.js new file mode 100644 index 00000000000..792cb467dde --- /dev/null +++ b/assets/js/7287.ee26e9d5.js @@ -0,0 +1,290 @@ +"use strict"; +exports.id = 7287; +exports.ids = [7287]; +exports.modules = { + +/***/ 37287: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15030); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/basic-languages/python/python.ts +var conf = { + comments: { + lineComment: "#", + blockComment: ["'''", "'''"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + onEnterRules: [ + { + beforeText: new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$"), + action: { indentAction: monaco_editor_core_exports.languages.IndentAction.Indent } + } + ], + folding: { + offSide: true, + markers: { + start: new RegExp("^\\s*#region\\b"), + end: new RegExp("^\\s*#endregion\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".python", + keywords: [ + "False", + "None", + "True", + "_", + "and", + "as", + "assert", + "async", + "await", + "break", + "case", + "class", + "continue", + "def", + "del", + "elif", + "else", + "except", + "exec", + "finally", + "for", + "from", + "global", + "if", + "import", + "in", + "is", + "lambda", + "match", + "nonlocal", + "not", + "or", + "pass", + "print", + "raise", + "return", + "try", + "while", + "with", + "yield", + "int", + "float", + "long", + "complex", + "hex", + "abs", + "all", + "any", + "apply", + "basestring", + "bin", + "bool", + "buffer", + "bytearray", + "callable", + "chr", + "classmethod", + "cmp", + "coerce", + "compile", + "complex", + "delattr", + "dict", + "dir", + "divmod", + "enumerate", + "eval", + "execfile", + "file", + "filter", + "format", + "frozenset", + "getattr", + "globals", + "hasattr", + "hash", + "help", + "id", + "input", + "intern", + "isinstance", + "issubclass", + "iter", + "len", + "locals", + "list", + "map", + "max", + "memoryview", + "min", + "next", + "object", + "oct", + "open", + "ord", + "pow", + "print", + "property", + "reversed", + "range", + "raw_input", + "reduce", + "reload", + "repr", + "reversed", + "round", + "self", + "set", + "setattr", + "slice", + "sorted", + "staticmethod", + "str", + "sum", + "super", + "tuple", + "type", + "unichr", + "unicode", + "vars", + "xrange", + "zip", + "__dict__", + "__methods__", + "__members__", + "__class__", + "__bases__", + "__name__", + "__mro__", + "__subclasses__", + "__init__", + "__import__" + ], + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.bracket" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + tokenizer: { + root: [ + { include: "@whitespace" }, + { include: "@numbers" }, + { include: "@strings" }, + [/[,:;]/, "delimiter"], + [/[{}\[\]()]/, "@brackets"], + [/@[a-zA-Z_]\w*/, "tag"], + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@keywords": "keyword", + "@default": "identifier" + } + } + ] + ], + whitespace: [ + [/\s+/, "white"], + [/(^#.*$)/, "comment"], + [/'''/, "string", "@endDocString"], + [/"""/, "string", "@endDblDocString"] + ], + endDocString: [ + [/[^']+/, "string"], + [/\\'/, "string"], + [/'''/, "string", "@popall"], + [/'/, "string"] + ], + endDblDocString: [ + [/[^"]+/, "string"], + [/\\"/, "string"], + [/"""/, "string", "@popall"], + [/"/, "string"] + ], + numbers: [ + [/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/, "number.hex"], + [/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/, "number"] + ], + strings: [ + [/'$/, "string.escape", "@popall"], + [/'/, "string.escape", "@stringBody"], + [/"$/, "string.escape", "@popall"], + [/"/, "string.escape", "@dblStringBody"] + ], + stringBody: [ + [/[^\\']+$/, "string", "@popall"], + [/[^\\']+/, "string"], + [/\\./, "string"], + [/'/, "string.escape", "@popall"], + [/\\$/, "string"] + ], + dblStringBody: [ + [/[^\\"]+$/, "string", "@popall"], + [/[^\\"]+/, "string"], + [/\\./, "string"], + [/"/, "string.escape", "@popall"], + [/\\$/, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7322.62a440b9.js b/assets/js/7322.62a440b9.js new file mode 100644 index 00000000000..682b4556854 --- /dev/null +++ b/assets/js/7322.62a440b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7322],{87322:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>m,frontMatter:()=>n,metadata:()=>l,toc:()=>u});var i=a(87462),o=(a(67294),a(3905));const n={title:"Opaque Type Aliases","short-title":"Opaque Type Aliases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/hiding-implementation-details-with-flows-new-opaque-type-aliases-feature-40e188c2a3f9"},s=void 0,l={permalink:"/blog/2017/07/27/Opaque-Types",source:"@site/blog/2017-07-27-Opaque-Types.md",title:"Opaque Type Aliases",description:"Do you ever wish that you could hide your implementation details away",date:"2017-07-27T00:00:00.000Z",formattedDate:"July 27, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Opaque Type Aliases","short-title":"Opaque Type Aliases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/hiding-implementation-details-with-flows-new-opaque-type-aliases-feature-40e188c2a3f9"},prevItem:{title:"Linting in Flow",permalink:"/blog/2017/08/04/Linting-in-Flow"},nextItem:{title:"Strict Checking of Function Call Arity",permalink:"/blog/2017/05/07/Strict-Function-Call-Arity"}},r={authorsImageUrls:[void 0]},u=[],p={toc:u};function m(e){let{components:t,...a}=e;return(0,o.mdx)("wrapper",(0,i.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Do you ever wish that you could hide your implementation details away\nfrom your users? Find out how opaque type aliases can get the job done!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7324.55dbe265.js b/assets/js/7324.55dbe265.js new file mode 100644 index 00000000000..baca026d055 --- /dev/null +++ b/assets/js/7324.55dbe265.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7324],{97324:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>m,frontMatter:()=>u,metadata:()=>r,toc:()=>p});var o=n(87462),l=(n(67294),n(3905));const u={title:"Announcing 5 new Flow tuple type features","short-title":"Announcing 5 new Flow tuple type features",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-5-new-flow-tuple-type-features-ff4d7f11c50a"},a=void 0,r={permalink:"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features",source:"@site/blog/2023-08-17-Announcing-5-new-Flow-tuple-type-features.md",title:"Announcing 5 new Flow tuple type features",description:"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.",date:"2023-08-17T00:00:00.000Z",formattedDate:"August 17, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Announcing 5 new Flow tuple type features","short-title":"Announcing 5 new Flow tuple type features",author:"George Zahariev","medium-link":"https://medium.com/flow-type/announcing-5-new-flow-tuple-type-features-ff4d7f11c50a"},nextItem:{title:"Flow can now detect unused Promises",permalink:"/blog/2023/04/10/Unused-Promise"}},s={authorsImageUrls:[void 0]},p=[],i={toc:p};function m(e){let{components:t,...n}=e;return(0,l.mdx)("wrapper",(0,o.Z)({},i,n,{components:t,mdxType:"MDXLayout"}),(0,l.mdx)("p",null,"Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7357.60f17144.js b/assets/js/7357.60f17144.js new file mode 100644 index 00000000000..d454d544587 --- /dev/null +++ b/assets/js/7357.60f17144.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7357],{87357:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var o=n(87462),r=(n(67294),n(3905));const a={title:"Introducing: Local Type Inference for Flow","short-title":"Introducing Local Type Inference",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/introducing-local-type-inference-for-flow-6af65b7830aa"},l=void 0,i={permalink:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow",source:"@site/blog/2021-09-27-Introducing-Local-Type-Inference-for-Flow.md",title:"Introducing: Local Type Inference for Flow",description:"We're replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally.",date:"2021-09-27T00:00:00.000Z",formattedDate:"September 27, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"Michael Vitousek"}],frontMatter:{title:"Introducing: Local Type Inference for Flow","short-title":"Introducing Local Type Inference",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/introducing-local-type-inference-for-flow-6af65b7830aa"},prevItem:{title:"New Flow Language Rule: Constrained Writes",permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"},nextItem:{title:"Introducing Flow Enums",permalink:"/blog/2021/09/13/Introducing-Flow-Enums"}},c={authorsImageUrls:[void 0]},s=[],u={toc:s};function d(e){let{components:t,...n}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"We're replacing Flow\u2019s current inference engine with a system that behaves more predictably and can be reasoned about more locally."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7454.c4cbd7ac.js b/assets/js/7454.c4cbd7ac.js new file mode 100644 index 00000000000..5da6c830db2 --- /dev/null +++ b/assets/js/7454.c4cbd7ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7454],{87454:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>p});var t=o(87462),a=(o(67294),o(3905));const r={title:"Announcing Bounded Polymorphism","short-title":"Bounded Polymorphism",author:"Avik Chaudhuri",hide_table_of_contents:!0},s=void 0,i={permalink:"/blog/2015/03/12/Bounded-Polymorphism",source:"@site/blog/2015-03-12-Bounded-Polymorphism.md",title:"Announcing Bounded Polymorphism",description:"As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like",date:"2015-03-12T00:00:00.000Z",formattedDate:"March 12, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Avik Chaudhuri"}],frontMatter:{title:"Announcing Bounded Polymorphism","short-title":"Bounded Polymorphism",author:"Avik Chaudhuri",hide_table_of_contents:!0},prevItem:{title:"Announcing Disjoint Unions",permalink:"/blog/2015/07/03/Disjoint-Unions"},nextItem:{title:"Announcing Flow Comments",permalink:"/blog/2015/02/20/Flow-Comments"}},l={authorsImageUrls:[void 0]},p=[{value:"The problem",id:"the-problem",level:2},{value:"The solution",id:"the-solution",level:2},{value:"Why we built this",id:"why-we-built-this",level:2},{value:"Transformations",id:"transformations",level:2}],m={toc:p};function d(e){let{components:n,...o}=e;return(0,a.mdx)("wrapper",(0,t.Z)({},m,o,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"class BagOfBones<T: Bone> { ... }\nfunction eat<T: Food>(meal: T): Indigestion<T> { ... }\n")),(0,a.mdx)("h2",{id:"the-problem"},"The problem"),(0,a.mdx)("p",null,"Consider the following code that defines a polymorphic function in Flow:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function fooBad<T>(obj: T): T {\n console.log(Math.abs(obj.x));\n return obj;\n}\n")),(0,a.mdx)("p",null,"This code does not (and should not!) type check. Not all values ",(0,a.mdx)("inlineCode",{parentName:"p"},"obj: T")," have a property ",(0,a.mdx)("inlineCode",{parentName:"p"},"x"),", let alone a property ",(0,a.mdx)("inlineCode",{parentName:"p"},"x")," that is a ",(0,a.mdx)("inlineCode",{parentName:"p"},"number"),", given the additional requirement imposed by ",(0,a.mdx)("inlineCode",{parentName:"p"},"Math.abs()"),"."),(0,a.mdx)("p",null,"But what if you wanted ",(0,a.mdx)("inlineCode",{parentName:"p"},"T")," to not range over all types, but instead over only the types of objects with an ",(0,a.mdx)("inlineCode",{parentName:"p"},"x")," property that has the type ",(0,a.mdx)("inlineCode",{parentName:"p"},"number"),"? Intuitively, given that condition, the body should type check. Unfortunately, the only way you could enforce this condition prior to Flow 0.5.0 was by giving up on polymorphism entirely! For example you could write:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"// Old lame workaround\nfunction fooStillBad(obj: { x: number }): {x: number } {\n console.log(Math.abs(obj.x));\n return obj;\n}\n")),(0,a.mdx)("p",null,"But while this change would make the body type check, it would cause Flow to lose information across call sites. For example:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},'// The return type of fooStillBad() is {x: number}\n// so Flow thinks result has the type {x: number}\nvar result = fooStillBad({x: 42, y: "oops"});\n\n// This will be an error since result\'s type\n// doesn\'t have a property "y"\nvar test: {x: number; y: string} = result;\n')),(0,a.mdx)("h2",{id:"the-solution"},"The solution"),(0,a.mdx)("p",null,"As of version 0.5.0, such typing problems can be solved elegantly using bounded polymorphism. Type parameters such as ",(0,a.mdx)("inlineCode",{parentName:"p"},"T")," can specify bounds that constrain the types that the type parameters range over. For example, we can write:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function fooGood<T: { x: number }>(obj: T): T {\n console.log(Math.abs(obj.x));\n return obj;\n}\n")),(0,a.mdx)("p",null,"Now the body type checks under the assumption that ",(0,a.mdx)("inlineCode",{parentName:"p"},"T")," is a subtype of ",(0,a.mdx)("inlineCode",{parentName:"p"},"{ x: number }"),". Furthermore, no information is lost across call sites. Using the example from above:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},'// With bounded polymorphism, Flow knows the return\n// type is {x: number; y: string}\nvar result = fooGood({x: 42, y: "yay"});\n\n// This works!\nvar test: {x: number; y: string} = result;\n')),(0,a.mdx)("p",null,"Of course, polymorphic classes may also specify bounds. For example, the following code type checks:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"class Store<T: { x: number }> {\n obj: T;\n constructor(obj: T) { this.obj = obj; }\n foo() { console.log(Math.abs(this.obj.x)); }\n}\n")),(0,a.mdx)("p",null,"Instantiations of the class are appropriately constrained. If you write"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},'var store = new Store({x: 42, y: "hi"});\n')),(0,a.mdx)("p",null,"Then ",(0,a.mdx)("inlineCode",{parentName:"p"},"store.obj")," has type ",(0,a.mdx)("inlineCode",{parentName:"p"},"{x: number; y: string}"),"."),(0,a.mdx)("p",null,"Any type may be used as a type parameter's bound. The type does not need to be an object type (as in the examples above). It may even be another type parameter that is in scope. For example, consider adding the following method to the above ",(0,a.mdx)("inlineCode",{parentName:"p"},"Store")," class:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"class Store<T: { x: number }> {\n ...\n bar<U: T>(obj: U): U {\n this.obj = obj;\n console.log(Math.abs(obj.x));\n return obj;\n }\n}\n")),(0,a.mdx)("p",null,"Since ",(0,a.mdx)("inlineCode",{parentName:"p"},"U")," is a subtype of ",(0,a.mdx)("inlineCode",{parentName:"p"},"T"),", the method body type checks (as you may expect, ",(0,a.mdx)("inlineCode",{parentName:"p"},"U")," must also satisfy ",(0,a.mdx)("inlineCode",{parentName:"p"},"T"),"'s bound, by transitivity of subtyping). Now the following code type checks:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},' // store is a Store<{x: number; y: string}>\n var store = new Store({x: 42, y: "yay"});\n\n var result = store.bar({x: 0, y: "hello", z: "world"});\n\n // This works!\n var test: {x: number; y: string; z: string } = result;\n')),(0,a.mdx)("p",null,"Also, in a polymorphic definition with multiple type parameters, any type parameter may appear in the bound of any following type parameter. This is useful for type checking examples like the following:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"function copyArray<T, S: T>(from: Array<S>, to: Array<T>) {\n from.forEach(elem => to.push(elem));\n}\n")),(0,a.mdx)("h2",{id:"why-we-built-this"},"Why we built this"),(0,a.mdx)("p",null,"The addition of bounded polymorphism significantly increases the expressiveness of Flow's type system, by enabling signatures and definitions to specify relationships between their type parameters, without having to sacrifice the benefits of generics. We expect that the increased expressiveness will be particularly useful to library writers, and will also allow us to write better declarations for framework APIs such as those provided by React."),(0,a.mdx)("h2",{id:"transformations"},"Transformations"),(0,a.mdx)("p",null,"Like type annotations and other Flow features, polymorphic function and class definitions need to be transformed before the code can be run. The transforms are available in react-tools ",(0,a.mdx)("inlineCode",{parentName:"p"},"0.13.0"),", which was recently released"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7466.0592b0a0.js b/assets/js/7466.0592b0a0.js new file mode 100644 index 00000000000..5954dee5436 --- /dev/null +++ b/assets/js/7466.0592b0a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7466],{7466:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>m,contentTitle:()=>d,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>i});var a=o(87462),n=(o(67294),o(3905));const r={title:"Supporting React.forwardRef and Beyond","short-title":"Supporting React.forwardRef",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/supporting-react-forwardref-and-beyond-f8dd88f35544"},d=void 0,s={permalink:"/blog/2018/12/13/React-Abstract-Component",source:"@site/blog/2018-12-13-React-Abstract-Component.md",title:"Supporting React.forwardRef and Beyond",description:"We made some major changes to our React model to better model new React components. Let's",date:"2018-12-13T00:00:00.000Z",formattedDate:"December 13, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Supporting React.forwardRef and Beyond","short-title":"Supporting React.forwardRef",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/supporting-react-forwardref-and-beyond-f8dd88f35544"},prevItem:{title:"What the Flow Team Has Been Up To",permalink:"/blog/2019/1/28/What-the-flow-team-has-been-up-to"},nextItem:{title:"Asking for Required Annotations",permalink:"/blog/2018/10/29/Asking-for-Required-Annotations"}},m={authorsImageUrls:[void 0]},i=[],p={toc:i};function c(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We made some major changes to our React model to better model new React components. Let's\ntalk about React.AbstractComponent!"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7473.75d32f9d.js b/assets/js/7473.75d32f9d.js new file mode 100644 index 00000000000..0bfae947b0a --- /dev/null +++ b/assets/js/7473.75d32f9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7473],{57473:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>c,frontMatter:()=>n,metadata:()=>s,toc:()=>m});var r=o(87462),i=(o(67294),o(3905));const n={title:"Typing Higher-Order Components in Recompose With Flow","short-title":"Flow Support in Recompose",author:"Ivan Starkov","medium-link":"https://medium.com/flow-type/flow-support-in-recompose-1b76f58f4cfc"},a=void 0,s={permalink:"/blog/2017/09/03/Flow-Support-in-Recompose",source:"@site/blog/2017-09-03-Flow-Support-in-Recompose.md",title:"Typing Higher-Order Components in Recompose With Flow",description:"One month ago Recompose landed an",date:"2017-09-03T00:00:00.000Z",formattedDate:"September 3, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Ivan Starkov"}],frontMatter:{title:"Typing Higher-Order Components in Recompose With Flow","short-title":"Flow Support in Recompose",author:"Ivan Starkov","medium-link":"https://medium.com/flow-type/flow-support-in-recompose-1b76f58f4cfc"},prevItem:{title:"Better Flow Error Messages for the JavaScript Ecosystem",permalink:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem"},nextItem:{title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases",permalink:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"}},p={authorsImageUrls:[void 0]},m=[],l={toc:m};function c(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,r.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"One month ago ",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/acdlite/recompose"},"Recompose")," landed an\nofficial Flow library definition. The definitions were a long time coming,\nconsidering the original PR was created by\n",(0,i.mdx)("a",{parentName:"p",href:"https://twitter.com/GiulioCanti"},"@GiulioCanti")," a year ago."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7493.35ce4f7a.js b/assets/js/7493.35ce4f7a.js new file mode 100644 index 00000000000..a37fd518027 --- /dev/null +++ b/assets/js/7493.35ce4f7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7493],{37493:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>r,toc:()=>l});var o=n(87462),s=(n(67294),n(3905));const a={title:"New Implementation of Unions and Intersections","short-title":"New Unions and Intersections",author:"Sam Goldman",hide_table_of_contents:!0},i=void 0,r={permalink:"/blog/2016/07/01/New-Unions-Intersections",source:"@site/blog/2016-07-01-New-Unions-Intersections.md",title:"New Implementation of Unions and Intersections",description:"Summary",date:"2016-07-01T00:00:00.000Z",formattedDate:"July 1, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"New Implementation of Unions and Intersections","short-title":"New Unions and Intersections",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Windows Support is Here!",permalink:"/blog/2016/08/01/Windows-Support"},nextItem:{title:"Version 0.21.0",permalink:"/blog/2016/02/02/Version-0.21.0"}},m={authorsImageUrls:[void 0]},l=[{value:"Summary",id:"summary",level:3}],d={toc:l};function u(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("h3",{id:"summary"},"Summary"),(0,s.mdx)("p",null,"Before Flow 0.28, the implementation of union/intersection types had serious\nbugs and was ","[the][gh1759]"," ","[root][gh1664]"," ","[cause][gh1663]"," ","[of][gh1462]","\n","[a][gh1455]"," ","[lot][gh1371]"," ","[of][gh1349]"," ","[weird][gh842]"," ","[behaviors][gh815]"," you\nmay have run into with Flow in the past. These bugs have now been addressed in\n","[a diff landing in 0.28][fotu]","."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7520.80cb00fd.js b/assets/js/7520.80cb00fd.js new file mode 100644 index 00000000000..58258de02a6 --- /dev/null +++ b/assets/js/7520.80cb00fd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7520],{85162:(e,a,n)=>{n.r(a),n.d(a,{default:()=>o});var t=n(67294),l=n(86010);const r="tabItem_Ymn6";function o(e){let{children:a,hidden:n,className:o}=e;return t.createElement("div",{role:"tabpanel",className:(0,l.default)(r,o),hidden:n},a)}},74866:(e,a,n)=>{n.r(a),n.d(a,{default:()=>N});var t=n(87462),l=n(67294),r=n(86010),o=n(12466),d=n(76775),u=n(91980),s=n(67392),p=n(50012);function i(e){return function(e){var a,n;return null!=(a=null==(n=l.Children.map(e,(e=>{if(!e||(0,l.isValidElement)(e)&&function(e){const{props:a}=e;return!!a&&"object"==typeof a&&"value"in a}(e))return e;throw new Error("Docusaurus error: Bad <Tabs> child <"+("string"==typeof e.type?e.type:e.type.name)+'>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.')})))?void 0:n.filter(Boolean))?a:[]}(e).map((e=>{let{props:{value:a,label:n,attributes:t,default:l}}=e;return{value:a,label:n,attributes:t,default:l}}))}function m(e){const{values:a,children:n}=e;return(0,l.useMemo)((()=>{const e=null!=a?a:i(n);return function(e){const a=(0,s.l)(e,((e,a)=>e.value===a.value));if(a.length>0)throw new Error('Docusaurus error: Duplicate values "'+a.map((e=>e.value)).join(", ")+'" found in <Tabs>. Every value needs to be unique.')}(e),e}),[a,n])}function c(e){let{value:a,tabValues:n}=e;return n.some((e=>e.value===a))}function b(e){let{queryString:a=!1,groupId:n}=e;const t=(0,d.k6)(),r=function(e){let{queryString:a=!1,groupId:n}=e;if("string"==typeof a)return a;if(!1===a)return null;if(!0===a&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return null!=n?n:null}({queryString:a,groupId:n});return[(0,u._X)(r),(0,l.useCallback)((e=>{if(!r)return;const a=new URLSearchParams(t.location.search);a.set(r,e),t.replace({...t.location,search:a.toString()})}),[r,t])]}function f(e){const{defaultValue:a,queryString:n=!1,groupId:t}=e,r=m(e),[o,d]=(0,l.useState)((()=>function(e){var a;let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(n){if(!c({value:n,tabValues:t}))throw new Error('Docusaurus error: The <Tabs> has a defaultValue "'+n+'" but none of its children has the corresponding value. Available values are: '+t.map((e=>e.value)).join(", ")+". If you intend to show no default tab, use defaultValue={null} instead.");return n}const l=null!=(a=t.find((e=>e.default)))?a:t[0];if(!l)throw new Error("Unexpected error: 0 tabValues");return l.value}({defaultValue:a,tabValues:r}))),[u,s]=b({queryString:n,groupId:t}),[i,f]=function(e){let{groupId:a}=e;const n=function(e){return e?"docusaurus.tab."+e:null}(a),[t,r]=(0,p.Nk)(n);return[t,(0,l.useCallback)((e=>{n&&r.set(e)}),[n,r])]}({groupId:t}),x=(()=>{const e=null!=u?u:i;return c({value:e,tabValues:r})?e:null})();(0,l.useLayoutEffect)((()=>{x&&d(x)}),[x]);return{selectedValue:o,selectValue:(0,l.useCallback)((e=>{if(!c({value:e,tabValues:r}))throw new Error("Can't select invalid tab value="+e);d(e),s(e),f(e)}),[s,f,r]),tabValues:r}}var x=n(72389);const h="tabList__CuJ",y="tabItem_LNqP";function v(e){let{className:a,block:n,selectedValue:d,selectValue:u,tabValues:s}=e;const p=[],{blockElementScrollPositionUntilNextRender:i}=(0,o.o5)(),m=e=>{const a=e.currentTarget,n=p.indexOf(a),t=s[n].value;t!==d&&(i(a),u(t))},c=e=>{var a;let n=null;switch(e.key){case"Enter":m(e);break;case"ArrowRight":{var t;const a=p.indexOf(e.currentTarget)+1;n=null!=(t=p[a])?t:p[0];break}case"ArrowLeft":{var l;const a=p.indexOf(e.currentTarget)-1;n=null!=(l=p[a])?l:p[p.length-1];break}}null==(a=n)||a.focus()};return l.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,r.default)("tabs",{"tabs--block":n},a)},s.map((e=>{let{value:a,label:n,attributes:o}=e;return l.createElement("li",(0,t.Z)({role:"tab",tabIndex:d===a?0:-1,"aria-selected":d===a,key:a,ref:e=>p.push(e),onKeyDown:c,onClick:m},o,{className:(0,r.default)("tabs__item",y,null==o?void 0:o.className,{"tabs__item--active":d===a})}),null!=n?n:a)})))}function w(e){let{lazy:a,children:n,selectedValue:t}=e;const r=(Array.isArray(n)?n:[n]).filter(Boolean);if(a){const e=r.find((e=>e.props.value===t));return e?(0,l.cloneElement)(e,{className:"margin-top--md"}):null}return l.createElement("div",{className:"margin-top--md"},r.map(((e,a)=>(0,l.cloneElement)(e,{key:a,hidden:e.props.value!==t}))))}function g(e){const a=f(e);return l.createElement("div",{className:(0,r.default)("tabs-container",h)},l.createElement(v,(0,t.Z)({},e,a)),l.createElement(w,(0,t.Z)({},e,a)))}function N(e){const a=(0,x.default)();return l.createElement(g,(0,t.Z)({key:String(a)},e))}},7520:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>p,contentTitle:()=>u,default:()=>c,frontMatter:()=>d,metadata:()=>s,toc:()=>i});var t=n(87462),l=(n(67294),n(3905)),r=(n(45475),n(74866)),o=n(85162);const d={title:"Installation",slug:"/install"},u=void 0,s={unversionedId:"install",id:"install",title:"Installation",description:"Setup Compiler",source:"@site/docs/install.md",sourceDirName:".",slug:"/install",permalink:"/en/docs/install",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/install.md",tags:[],version:"current",frontMatter:{title:"Installation",slug:"/install"},sidebar:"docsSidebar",previous:{title:"Getting Started",permalink:"/en/docs/getting-started"},next:{title:"Usage",permalink:"/en/docs/usage"}},p={},i=[{value:"Setup Compiler",id:"setup-compiler",level:2},{value:"Setup Flow",id:"setup-flow",level:2},{value:"Add a <code>devDependency</code> on the <code>flow-bin</code> npm package",id:"add-a-devdependency-on-the-flow-bin-npm-package",level:3},{value:"Add a <code>"flow"</code> script to your <code>package.json</code>",id:"add-a-flow-script-to-your-packagejson",level:3},{value:"Run Flow",id:"run-flow",level:3},{value:"Setup ESLint",id:"setup-eslint",level:2}],m={toc:i};function c(e){let{components:a,...n}=e;return(0,l.mdx)("wrapper",(0,t.Z)({},m,n,{components:a,mdxType:"MDXLayout"}),(0,l.mdx)("h2",{id:"setup-compiler"},"Setup Compiler"),(0,l.mdx)("p",null,"First you'll need to setup a compiler to strip away Flow types. You can\nchoose between ",(0,l.mdx)("a",{parentName:"p",href:"http://babeljs.io/"},"Babel")," and\n",(0,l.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/tree/master/packages/flow-remove-types"},"flow-remove-types"),"."),(0,l.mdx)(r.default,{defaultValue:"babel",values:[{label:"Babel",value:"babel"},{label:"flow-remove-types",value:"flow-remove-types"}],mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"babel",mdxType:"TabItem"},(0,l.mdx)("p",null,(0,l.mdx)("a",{parentName:"p",href:"http://babeljs.io/"},"Babel")," is a compiler for JavaScript code that has\nsupport for Flow. Babel will take your Flow code and strip out any type\nannotations. Read more about ",(0,l.mdx)("a",{parentName:"p",href:"../tools/babel"},"using Babel"),"."),(0,l.mdx)("p",null,"First install ",(0,l.mdx)("inlineCode",{parentName:"p"},"@babel/core"),", ",(0,l.mdx)("inlineCode",{parentName:"p"},"@babel/cli"),", and ",(0,l.mdx)("inlineCode",{parentName:"p"},"@babel/preset-flow")," with\neither ",(0,l.mdx)("a",{parentName:"p",href:"https://yarnpkg.com/"},"Yarn")," or ",(0,l.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npm"),"."),(0,l.mdx)(r.default,{groupId:"npm2yarn",mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"npm",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev @babel/core @babel/cli @babel/preset-flow\n"))),(0,l.mdx)(o.default,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"yarn add --dev @babel/core @babel/cli @babel/preset-flow\n")))),(0,l.mdx)("p",null,"Next you need to create a ",(0,l.mdx)("inlineCode",{parentName:"p"},".babelrc")," file at the root of your project with\n",(0,l.mdx)("inlineCode",{parentName:"p"},'"@babel/preset-flow"')," in your ",(0,l.mdx)("inlineCode",{parentName:"p"},'"presets"'),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-json"},'{ "presets": ["@babel/preset-flow"] }\n')),(0,l.mdx)("p",null,"If you then put all your source files in a ",(0,l.mdx)("inlineCode",{parentName:"p"},"src")," directory you can compile them\nto another directory by running:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"./node_modules/.bin/babel src/ -d lib/\n")),(0,l.mdx)("p",null,"You can add this to your ",(0,l.mdx)("inlineCode",{parentName:"p"},"package.json")," scripts easily, alongside your ",(0,l.mdx)("inlineCode",{parentName:"p"},'"devDependencies"')," on Babel."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "name": "my-project",\n "main": "lib/index.js",\n "scripts": {\n "build": "babel src/ -d lib/",\n "prepublish": "yarn run build"\n }\n}\n')),(0,l.mdx)("blockquote",null,(0,l.mdx)("p",{parentName:"blockquote"},(0,l.mdx)("strong",{parentName:"p"},"Note:")," You'll probably want to add a ",(0,l.mdx)("inlineCode",{parentName:"p"},"prepublish")," script that runs this\ntransform as well, so that it runs before you publish your code to the npm\nregistry."))),(0,l.mdx)(o.default,{value:"flow-remove-types",mdxType:"TabItem"},(0,l.mdx)("p",null,(0,l.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/tree/master/packages/flow-remove-types"},"flow-remove-types")," is a small\nCLI tool for stripping Flow type annotations from files. It's a lighter-weight\nalternative to Babel for projects that don't need everything Babel provides."),(0,l.mdx)("p",null,"First install ",(0,l.mdx)("inlineCode",{parentName:"p"},"flow-remove-types")," with either\n",(0,l.mdx)("a",{parentName:"p",href:"https://yarnpkg.com/"},"Yarn")," or ",(0,l.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npm"),"."),(0,l.mdx)(r.default,{groupId:"npm2yarn",mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"npm",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev flow-remove-types\n"))),(0,l.mdx)(o.default,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"yarn add --dev flow-remove-types\n")))),(0,l.mdx)("p",null,"If you then put all your source files in a ",(0,l.mdx)("inlineCode",{parentName:"p"},"src")," directory you can compile them\nto another directory by running:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-sh"},"./node_modules/.bin/flow-remove-types src/ -d lib/\n")),(0,l.mdx)("p",null,"You can add this to your ",(0,l.mdx)("inlineCode",{parentName:"p"},"package.json")," scripts easily, alongside your ",(0,l.mdx)("inlineCode",{parentName:"p"},'"devDependencies"')," on ",(0,l.mdx)("inlineCode",{parentName:"p"},"flow-remove-types"),"."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "name": "my-project",\n "main": "lib/index.js",\n "scripts": {\n "build": "flow-remove-types src/ -d lib/",\n "prepublish": "yarn run build"\n }\n}\n')),(0,l.mdx)("blockquote",null,(0,l.mdx)("p",{parentName:"blockquote"},(0,l.mdx)("strong",{parentName:"p"},"Note:")," You'll probably want to add a ",(0,l.mdx)("inlineCode",{parentName:"p"},"prepublish")," script that runs this\ntransform as well, so that it runs before you publish your code to the npm\nregistry.")))),(0,l.mdx)("h2",{id:"setup-flow"},"Setup Flow"),(0,l.mdx)("p",null,"Flow works best when installed per-project with explicit versioning rather than\nglobally."),(0,l.mdx)("p",null,"Luckily, if you're already familiar with ",(0,l.mdx)("inlineCode",{parentName:"p"},"npm")," or ",(0,l.mdx)("inlineCode",{parentName:"p"},"yarn"),", this process should\nbe pretty familiar!"),(0,l.mdx)("h3",{id:"add-a-devdependency-on-the-flow-bin-npm-package"},"Add a ",(0,l.mdx)("inlineCode",{parentName:"h3"},"devDependency")," on the ",(0,l.mdx)("inlineCode",{parentName:"h3"},"flow-bin")," npm package"),(0,l.mdx)(r.default,{groupId:"npm2yarn",mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"npm",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev flow-bin\n"))),(0,l.mdx)(o.default,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"yarn add --dev flow-bin\n")))),(0,l.mdx)("h3",{id:"add-a-flow-script-to-your-packagejson"},"Add a ",(0,l.mdx)("inlineCode",{parentName:"h3"},'"flow"')," script to your ",(0,l.mdx)("inlineCode",{parentName:"h3"},"package.json")),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "name": "my-flow-project",\n "version": "1.0.0",\n "devDependencies": {\n "flow-bin": "^0.225.1"\n },\n "scripts": {\n "flow": "flow"\n }\n}\n')),(0,l.mdx)("h3",{id:"run-flow"},"Run Flow"),(0,l.mdx)("p",null,"The first time, run:"),(0,l.mdx)(r.default,{groupId:"npm2yarn",mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"npm",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"npm run flow init\n"))),(0,l.mdx)(o.default,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"yarn run flow init\n")))),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre"},'> my-flow-project@1.0.0 flow /Users/Projects/my-flow-project\n> flow "init"\n')),(0,l.mdx)("p",null,"After running ",(0,l.mdx)("inlineCode",{parentName:"p"},"flow")," with ",(0,l.mdx)("inlineCode",{parentName:"p"},"init")," the first time, run:"),(0,l.mdx)(r.default,{groupId:"npm2yarn",mdxType:"Tabs"},(0,l.mdx)(o.default,{value:"npm",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"npm run flow\n"))),(0,l.mdx)(o.default,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-bash"},"yarn run flow\n")))),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre"},"> my-flow-project@1.0.0 flow /Users/Projects/my-flow-project\n> flow\n\nNo errors!\n")),(0,l.mdx)("h2",{id:"setup-eslint"},"Setup ESLint"),(0,l.mdx)("p",null,"If you use ESLint, you can read ",(0,l.mdx)("a",{parentName:"p",href:"../tools/eslint"},"our page on ESLint")," to set it up to support Flow."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7521.710cbe18.js b/assets/js/7521.710cbe18.js new file mode 100644 index 00000000000..15c0b82b9af --- /dev/null +++ b/assets/js/7521.710cbe18.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7521],{93632:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var t=a(87462),r=(a(67294),a(3905));a(45475);const o={title:"Interfaces",slug:"/types/interfaces"},i=void 0,s={unversionedId:"types/interfaces",id:"types/interfaces",title:"Interfaces",description:"Classes in Flow are nominally typed. This means that when you have two separate",source:"@site/docs/types/interfaces.md",sourceDirName:"types",slug:"/types/interfaces",permalink:"/en/docs/types/interfaces",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/interfaces.md",tags:[],version:"current",frontMatter:{title:"Interfaces",slug:"/types/interfaces"},sidebar:"docsSidebar",previous:{title:"Opaque Type Aliases",permalink:"/en/docs/types/opaque-types"},next:{title:"Generics",permalink:"/en/docs/types/generics"}},l={},c=[{value:"Interface Syntax",id:"toc-interface-syntax",level:2},{value:"Interface Methods",id:"toc-interface-methods",level:3},{value:"Interface Properties",id:"toc-interface-properties",level:3},{value:"Interfaces as maps",id:"toc-interfaces-as-maps",level:3},{value:"Interface Generics",id:"toc-interface-generics",level:3},{value:"Interface property variance (read-only and write-only)",id:"toc-interface-property-variance-read-only-and-write-only",level:2},{value:"Covariant (read-only) properties on interfaces",id:"toc-covariant-read-only-properties-on-interfaces",level:4},{value:"Contravariant (write-only) properties on interfaces",id:"toc-contravariant-write-only-properties-on-interfaces",level:4}],p={toc:c};function m(e){let{components:n,...a}=e;return(0,r.mdx)("wrapper",(0,t.Z)({},p,a,{components:n,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,(0,r.mdx)("a",{parentName:"p",href:"../classes"},"Classes")," in Flow are ",(0,r.mdx)("a",{parentName:"p",href:"../../lang/nominal-structural"},"nominally typed"),". This means that when you have two separate\nclasses you cannot use one in place of the other even when they have the same\nexact properties and methods:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":18,"endLine":9,"endColumn":26,"description":"Cannot assign `new Bar()` to `foo` because `Bar` [1] is incompatible with `Foo` [2]. [incompatible-type]"}]','[{"startLine":9,"startColumn":18,"endLine":9,"endColumn":26,"description":"Cannot':!0,assign:!0,"`new":!0,"Bar()`":!0,to:!0,"`foo`":!0,because:!0,"`Bar`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`Foo`":!0,"[2].":!0,'[incompatible-type]"}]':!0},"class Foo {\n serialize(): string { return '[Foo]'; }\n}\n\nclass Bar {\n serialize(): string { return '[Bar]'; }\n}\n\nconst foo: Foo = new Bar(); // Error!\n")),(0,r.mdx)("p",null,"Instead, you can use ",(0,r.mdx)("inlineCode",{parentName:"p"},"interface")," in order to declare the structure of the class\nthat you are expecting."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface Serializable {\n serialize(): string;\n}\n\nclass Foo {\n serialize(): string { return '[Foo]'; }\n}\n\nclass Bar {\n serialize(): string { return '[Bar]'; }\n}\n\nconst foo: Serializable = new Foo(); // Works!\nconst bar: Serializable = new Bar(); // Works!\n")),(0,r.mdx)("p",null,"You can also declare an anonymous interface:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Foo {\n a: number;\n}\n\nfunction getNumber(o: interface {a: number}): number {\n return o.a;\n}\n\ngetNumber(new Foo()); // Works!\n")),(0,r.mdx)("p",null,"You can also use ",(0,r.mdx)("inlineCode",{parentName:"p"},"implements")," to tell Flow that you want the class to match an\ninterface. This prevents you from making incompatible changes when editing the\nclass."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":10,"startColumn":16,"endLine":10,"endColumn":21,"description":"Cannot implement `Serializable` [1] with `Bar` because number [2] is incompatible with string [3] in the return value of property `serialize`. [incompatible-type]"}]','[{"startLine":10,"startColumn":16,"endLine":10,"endColumn":21,"description":"Cannot':!0,implement:!0,"`Serializable`":!0,"[1]":!0,with:!0,"`Bar`":!0,because:!0,number:!0,"[2]":!0,is:!0,incompatible:!0,string:!0,"[3]":!0,in:!0,the:!0,return:!0,value:!0,of:!0,property:!0,"`serialize`.":!0,'[incompatible-type]"}]':!0},"interface Serializable {\n serialize(): string;\n}\n\nclass Foo implements Serializable {\n serialize(): string { return '[Foo]'; } // Works!\n}\n\nclass Bar implements Serializable {\n serialize(): number { return 42; } // Error!\n}\n")),(0,r.mdx)("p",null,"You can also use ",(0,r.mdx)("inlineCode",{parentName:"p"},"implements")," with multiple interfaces."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-js"},"class Foo implements Bar, Baz {\n // ...\n}\n")),(0,r.mdx)("p",null,"Interfaces can describe both instances and objects, unlike object types which can only describe objects:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":17,"startColumn":12,"endLine":17,"endColumn":14,"description":"Cannot call `acceptsObj` with `foo` bound to `x` because `Foo` [1] is not a subtype of object type [2]. Class instances are not subtypes of object types; consider rewriting object type [2] as an interface. [class-object-subtyping]"}]','[{"startLine":17,"startColumn":12,"endLine":17,"endColumn":14,"description":"Cannot':!0,call:!0,"`acceptsObj`":!0,with:!0,"`foo`":!0,bound:!0,to:!0,"`x`":!0,because:!0,"`Foo`":!0,"[1]":!0,is:!0,not:!0,a:!0,subtype:!0,of:!0,object:!0,type:!0,"[2].":!0,Class:!0,instances:!0,are:!0,subtypes:!0,"types;":!0,consider:!0,rewriting:!0,"[2]":!0,as:!0,an:!0,"interface.":!0,'[class-object-subtyping]"}]':!0},"class Foo {\n a: number;\n}\nconst foo = new Foo();\nconst o: {a: number} = {a: 1};\n\ninterface MyInterface {\n a: number;\n}\n\nfunction acceptsMyInterface(x: MyInterface) { /* ... */ }\nacceptsMyInterface(o); // Works!\nacceptsMyInterface(foo); // Works!\n\nfunction acceptsObj(x: {a: number, ...}) { /* ... */ }\nacceptsObj(o); // Works!\nacceptsObj(foo); // Error!\n")),(0,r.mdx)("p",null,"Unlike objects, interfaces cannot be ",(0,r.mdx)("a",{parentName:"p",href:"../objects/#exact-and-inexact-object-types"},"exact"),", as they can always have other, unknown properties."),(0,r.mdx)("h2",{id:"toc-interface-syntax"},"Interface Syntax"),(0,r.mdx)("p",null,"Interfaces are created using the keyword ",(0,r.mdx)("inlineCode",{parentName:"p"},"interface")," followed by its name and\na block which contains the body of the type definition."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n // ...\n}\n")),(0,r.mdx)("p",null,"The syntax of the block matches the syntax of object types."),(0,r.mdx)("h3",{id:"toc-interface-methods"},"Interface Methods"),(0,r.mdx)("p",null,"You can add methods to interfaces following the same syntax as class methods. Any ",(0,r.mdx)("a",{parentName:"p",href:"../functions/#this-parameter"},(0,r.mdx)("inlineCode",{parentName:"a"},"this")," parameters")," you\nprovide are also subject to the same restrictions as class methods."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n method(value: string): number;\n}\n")),(0,r.mdx)("p",null,"Also like ",(0,r.mdx)("a",{parentName:"p",href:"../classes#toc-class-methods"},"class methods"),", interface methods must also remain bound to the interface on which they were defined."),(0,r.mdx)("p",null,"You can define ",(0,r.mdx)("a",{parentName:"p",href:"../intersections/#declaring-overloaded-functions"},"overloaded methods")," by declaring the same method name multiple times with different type signatures:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":10,"startColumn":22,"endLine":10,"endColumn":35,"description":"Cannot assign `a.method(...)` to `z` because string [1] is incompatible with boolean [2]. [incompatible-type]"}]','[{"startLine":10,"startColumn":22,"endLine":10,"endColumn":35,"description":"Cannot':!0,assign:!0,"`a.method(...)`":!0,to:!0,"`z`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-type]"}]':!0},"interface MyInterface {\n method(value: string): string;\n method(value: boolean): boolean;\n}\n\nfunction func(a: MyInterface) {\n const x: string = a.method('hi'); // Works!\n const y: boolean = a.method(true); // Works!\n\n const z: boolean = a.method('hi'); // Error!\n}\n")),(0,r.mdx)("h3",{id:"toc-interface-properties"},"Interface Properties"),(0,r.mdx)("p",null,"You can add properties to interfaces following the same syntax as class\nproperties:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n property: string;\n}\n")),(0,r.mdx)("p",null,"Interface properties can be optional as well:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n property?: string;\n}\n")),(0,r.mdx)("h3",{id:"toc-interfaces-as-maps"},"Interfaces as maps"),(0,r.mdx)("p",null,"You can create ",(0,r.mdx)("a",{parentName:"p",href:"../objects#toc-objects-as-maps"},"indexer properties")," the same\nway as with objects:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n [key: string]: number;\n}\n")),(0,r.mdx)("h3",{id:"toc-interface-generics"},"Interface Generics"),(0,r.mdx)("p",null,"Interfaces can also have their own ",(0,r.mdx)("a",{parentName:"p",href:"../generics/"},"generics"),":"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface<A, B, C> {\n property: A;\n method(val: B): C;\n}\n")),(0,r.mdx)("p",null,"Interface generics are ",(0,r.mdx)("a",{parentName:"p",href:"../generics#toc-parameterized-generics"},"parameterized"),".\nWhen you use an interface you need to pass parameters for each of its generics:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface<A, B, C> {\n foo: A;\n bar: B;\n baz: C;\n}\n\nconst val: MyInterface<number, boolean, string> = {\n foo: 1,\n bar: true,\n baz: 'three',\n};\n")),(0,r.mdx)("h2",{id:"toc-interface-property-variance-read-only-and-write-only"},"Interface property variance (read-only and write-only)"),(0,r.mdx)("p",null,"Interface properties are ",(0,r.mdx)("a",{parentName:"p",href:"../../lang/variance/"},"invariant")," by default. But you\ncan add modifiers to make them covariant (read-only) or contravariant\n(write-only)."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n +covariant: number; // read-only\n -contravariant: number; // write-only\n}\n")),(0,r.mdx)("h4",{id:"toc-covariant-read-only-properties-on-interfaces"},"Covariant (read-only) properties on interfaces"),(0,r.mdx)("p",null,"You can make a property covariant by adding a plus symbol ",(0,r.mdx)("inlineCode",{parentName:"p"},"+")," in front of the\nproperty name:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface MyInterface {\n +readOnly: number | string;\n}\n")),(0,r.mdx)("p",null,"This allows you to pass a more specific type in place of that property:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":11,"startColumn":27,"endLine":11,"endColumn":27,"description":"Cannot assign `x` to `value1` because string [1] is incompatible with number [2] in property `property`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-type]"}]','[{"startLine":11,"startColumn":27,"endLine":11,"endColumn":27,"description":"Cannot':!0,assign:!0,"`x`":!0,to:!0,"`value1`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2]":!0,in:!0,property:!0,"`property`.":!0,This:!0,invariantly:!0,"typed.":!0,See:!0,"https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number.":!0,'[incompatible-type]"}]':!0},"interface Invariant {\n property: number | string;\n}\ninterface Covariant {\n +readOnly: number | string;\n}\n\nconst x: {property: number} = {property: 42};\nconst y: {readOnly: number} = {readOnly: 42};\n\nconst value1: Invariant = x; // Error!\nconst value2: Covariant = y; // Works\n")),(0,r.mdx)("p",null,"Because of how covariance works, covariant properties also become read-only\nwhen used. Which can be useful over normal properties."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":15,"startColumn":9,"endLine":15,"endColumn":16,"description":"Cannot assign `3.14` to `value.readOnly` because property `readOnly` is not writable. [cannot-write]"}]','[{"startLine":15,"startColumn":9,"endLine":15,"endColumn":16,"description":"Cannot':!0,assign:!0,"`3.14`":!0,to:!0,"`value.readOnly`":!0,because:!0,property:!0,"`readOnly`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"}]':!0},"interface Invariant {\n property: number | string;\n}\ninterface Covariant {\n +readOnly: number | string;\n}\n\nfunction func1(value: Invariant) {\n value.property; // Works!\n value.property = 3.14; // Works!\n}\n\nfunction func2(value: Covariant) {\n value.readOnly; // Works!\n value.readOnly = 3.14; // Error!\n}\n")),(0,r.mdx)("h4",{id:"toc-contravariant-write-only-properties-on-interfaces"},"Contravariant (write-only) properties on interfaces"),(0,r.mdx)("p",null,"You can make a property contravariant by adding a minus symbol - in front of\nthe property name."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface InterfaceName {\n -writeOnly: number;\n}\n")),(0,r.mdx)("p",null,"This allows you to pass a less specific type in place of that property."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":10,"startColumn":42,"endLine":10,"endColumn":55,"description":"Cannot assign object literal to `value1` because string [1] is incompatible with number [2] in property `property`. [incompatible-type]"}]','[{"startLine":10,"startColumn":42,"endLine":10,"endColumn":55,"description":"Cannot':!0,assign:!0,object:!0,literal:!0,to:!0,"`value1`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2]":!0,in:!0,property:!0,"`property`.":!0,'[incompatible-type]"}]':!0},"interface Invariant {\n property: number;\n}\ninterface Contravariant {\n -writeOnly: number;\n}\n\nconst numberOrString = Math.random() > 0.5 ? 42 : 'forty-two';\n\nconst value1: Invariant = {property: numberOrString}; // Error!\nconst value2: Contravariant = {writeOnly: numberOrString}; // Works!\n")),(0,r.mdx)("p",null,"Because of how contravariance works, contravariant properties also become\nwrite-only when used. Which can be useful over normal properties."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":14,"startColumn":9,"endLine":14,"endColumn":17,"description":"Cannot get `value.writeOnly` because property `writeOnly` is not readable. [cannot-read]"}]','[{"startLine":14,"startColumn":9,"endLine":14,"endColumn":17,"description":"Cannot':!0,get:!0,"`value.writeOnly`":!0,because:!0,property:!0,"`writeOnly`":!0,is:!0,not:!0,"readable.":!0,'[cannot-read]"}]':!0},"interface Invariant {\n property: number;\n}\ninterface Contravariant {\n -writeOnly: number;\n}\n\nfunction func1(value: Invariant) {\n value.property; // Works!\n value.property = 3.14; // Works!\n}\n\nfunction func2(value: Contravariant) {\n value.writeOnly; // Error!\n value.writeOnly = 3.14; // Works!\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/753.c21fceb8.js b/assets/js/753.c21fceb8.js new file mode 100644 index 00000000000..e49e9578f3f --- /dev/null +++ b/assets/js/753.c21fceb8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[753],{50753:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>m});var i=t(87462),s=(t(67294),t(3905));const a={title:"Version 0.21.0","short-title":"Version 0.21.0",author:"Gabe Levi",hide_table_of_contents:!0},o=void 0,r={permalink:"/blog/2016/02/02/Version-0.21.0",source:"@site/blog/2016-02-02-Version-0.21.0.md",title:"Version 0.21.0",description:"Yesterday we deployed Flow v0.21.0! As always, we've listed out the most",date:"2016-02-02T00:00:00.000Z",formattedDate:"February 2, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Version 0.21.0","short-title":"Version 0.21.0",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"New Implementation of Unions and Intersections",permalink:"/blog/2016/07/01/New-Unions-Intersections"},nextItem:{title:"Version-0.19.0",permalink:"/blog/2015/12/01/Version-0.19.0"}},l={authorsImageUrls:[void 0]},m=[{value:"JSX Intrinsics",id:"jsx-intrinsics",level:3},{value:"Example of how to use JSX intrinsics",id:"example-of-how-to-use-jsx-intrinsics",level:4},{value:"What is going on here?",id:"what-is-going-on-here",level:4},{value:"Smarter string refinements",id:"smarter-string-refinements",level:3},{value:"New string refinements",id:"new-string-refinements",level:4}],d={toc:m};function p(e){let{components:n,...t}=e;return(0,s.mdx)("wrapper",(0,i.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Yesterday we deployed Flow v0.21.0! As always, we've listed out the most\ninteresting changes in the\n",(0,s.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0210"},"Changelog"),".\nHowever, since I'm on a plane and can't sleep, I thought it might be fun to\ndive into a couple of the changes! Hope this blog post turns out interesting\nand legible!"),(0,s.mdx)("h3",{id:"jsx-intrinsics"},"JSX Intrinsics"),(0,s.mdx)("p",null,"If you're writing JSX, it's probably a mix of your own React Components and\nsome intrinsics. For example, you might write"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'render() {\n return <div><FluffyBunny name="Fifi" /></div>;\n}\n')),(0,s.mdx)("p",null,"In this example, ",(0,s.mdx)("inlineCode",{parentName:"p"},"FluffyBunny")," is a React Component you wrote and ",(0,s.mdx)("inlineCode",{parentName:"p"},"div")," is a\nJSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React\nand by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the\ntype ",(0,s.mdx)("inlineCode",{parentName:"p"},"any"),". This meant Flow let you set any property on JSX intrinsics. Flow\nv0.21.0 will, by default, do the same thing as v0.20.0, However now you can\nalso configure Flow to properly type your JSX intrinsics!"),(0,s.mdx)("h4",{id:"example-of-how-to-use-jsx-intrinsics"},"Example of how to use JSX intrinsics"),(0,s.mdx)("p",null,".flowconfig"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"[libs]\nmyLib.js\n")),(0,s.mdx)("p",null,"myLib.js"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'// JSXHelper is a type alias to make this example more concise.\n// There\'s nothing special or magic here.\n// JSXHelper<{name: string}> is a React component\n// with the single string property "name", which has a default\ntype JSXHelper<T> = Class<ReactComponent<T,T,mixed>>;\n\n// $JSXIntrinsics is special and magic.\n// This declares the types for `div` and `span`\ntype $JSXIntrinsics = {\n div: JSXHelper<{id: string}>,\n span: JSXHelper<{id: string, class: string}>,\n};\n')),(0,s.mdx)("p",null,"myCode.js"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},'<div id="asdf" />; // No error\n<div id={42} />; // Error: `id` prop is a string, not a number!\n')),(0,s.mdx)("h4",{id:"what-is-going-on-here"},"What is going on here?"),(0,s.mdx)("p",null,"The new bit of magic is this ",(0,s.mdx)("inlineCode",{parentName:"p"},"$JSXIntrinsics")," type alias. When Flow sees\n",(0,s.mdx)("inlineCode",{parentName:"p"},"<foo />")," it will look to see if ",(0,s.mdx)("inlineCode",{parentName:"p"},"$JSXIntrinsics")," exists and if so will grab\nthe type of ",(0,s.mdx)("inlineCode",{parentName:"p"},"$JSXIntrinsics['foo']"),". It will use this type to figure out which\nproperties are available and need to be set."),(0,s.mdx)("p",null,"We haven't hardcoded the intrinsics into Flow since the available intrinsics\nwill depend on your environment. For example, React native would have different\nintrinsics than React for the web would."),(0,s.mdx)("h3",{id:"smarter-string-refinements"},"Smarter string refinements"),(0,s.mdx)("p",null,"One of the main ways that we make Flow smarter is by teaching it to recognize\nmore ways that JavaScript programmers refine types. Here's an example of a\ncommon way to refine nullable values:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"class Person {\n name: ?string;\n ...\n getName(): string {\n // Before the if, this.name could be null, undefined, or a string\n if (this.name != null) {\n // But now the programmer has refined this.name to definitely be a string\n return this.name;\n }\n // And now we know that this.name is null or undefined.\n return 'You know who';\n }\n}\n")),(0,s.mdx)("h4",{id:"new-string-refinements"},"New string refinements"),(0,s.mdx)("p",null,"In v0.21.0, one of the refinements we added is the ability to refine types by\ncomparing them to strings."),(0,s.mdx)("p",null,"This is useful for refining unions of string literals into string literals"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"function test(x: 'foo' | 'bar'): 'foo' {\n if (x === 'foo') {\n // Now Flow understands that x has the type 'foo'\n return x;\n } else {\n return 'foo';\n }\n}\n")),(0,s.mdx)("p",null,"And can also narrow the value of strings:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"function test(x: string): 'foo' {\n if (x === 'foo') {\n // Now Flow knows x has the type 'foo'\n return x;\n } else {\n return 'foo';\n }\n}\n")),(0,s.mdx)("p",null,"This is one of the many refinements that Flow currently can recognize and\nfollow, and we'll keep adding more! Stay tuned!"))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7550.c71fbb00.js b/assets/js/7550.c71fbb00.js new file mode 100644 index 00000000000..41635a4e77d --- /dev/null +++ b/assets/js/7550.c71fbb00.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7550],{57550:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>p,default:()=>m,frontMatter:()=>s,metadata:()=>r,toc:()=>o});var t=a(87462),i=(a(67294),a(3905));a(45475);const s={title:"Opaque Type Aliases",slug:"/types/opaque-types"},p=void 0,r={unversionedId:"types/opaque-types",id:"types/opaque-types",title:"Opaque Type Aliases",description:"Opaque type aliases are type aliases that do not allow access to their",source:"@site/docs/types/opaque-types.md",sourceDirName:"types",slug:"/types/opaque-types",permalink:"/en/docs/types/opaque-types",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/opaque-types.md",tags:[],version:"current",frontMatter:{title:"Opaque Type Aliases",slug:"/types/opaque-types"},sidebar:"docsSidebar",previous:{title:"Type Aliases",permalink:"/en/docs/types/aliases"},next:{title:"Interfaces",permalink:"/en/docs/types/interfaces"}},l={},o=[{value:"Opaque Type Alias Syntax",id:"toc-opaque-type-alias-syntax",level:2},{value:"Opaque Type Alias Type Checking",id:"toc-opaque-type-alias-type-checking",level:2},{value:"Within the Defining File",id:"toc-within-the-defining-file",level:3},{value:"Outside the Defining File",id:"toc-outside-the-defining-file",level:3},{value:"Subtyping Constraints",id:"toc-subtyping-constraints",level:3},{value:"Generics",id:"toc-generics",level:3},{value:"Library Definitions",id:"toc-library-definitions",level:3}],u={toc:o};function m(e){let{components:n,...a}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},u,a,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Opaque type aliases are type aliases that do not allow access to their\nunderlying type outside of the file in which they are defined."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"opaque type ID = string;\n")),(0,i.mdx)("p",null,"Opaque type aliases, like regular type aliases, may be used anywhere a type can\nbe used."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"opaque type ID = string;\n\nfunction identity(x: ID): ID {\n return x;\n}\nexport type {ID};\n")),(0,i.mdx)("h2",{id:"toc-opaque-type-alias-syntax"},"Opaque Type Alias Syntax"),(0,i.mdx)("p",null,"Opaque type aliases are created using the words ",(0,i.mdx)("inlineCode",{parentName:"p"},"opaque type")," followed by its\nname, an equals sign ",(0,i.mdx)("inlineCode",{parentName:"p"},"="),", and a type definition."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"opaque type Alias = Type;\n")),(0,i.mdx)("p",null,"You can optionally add a subtyping constraint to an opaque type alias by adding\na colon ",(0,i.mdx)("inlineCode",{parentName:"p"},":")," and a type after the name."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"opaque type Alias: SuperType = Type;\n")),(0,i.mdx)("p",null,"Any type can appear as the super type or type of an opaque type alias."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"opaque type StringAlias = string;\nopaque type ObjectAlias = {\n property: string,\n method(): number,\n};\nopaque type UnionAlias = 1 | 2 | 3;\nopaque type AliasAlias: ObjectAlias = ObjectAlias;\nopaque type VeryOpaque: AliasAlias = ObjectAlias;\n")),(0,i.mdx)("h2",{id:"toc-opaque-type-alias-type-checking"},"Opaque Type Alias Type Checking"),(0,i.mdx)("h3",{id:"toc-within-the-defining-file"},"Within the Defining File"),(0,i.mdx)("p",null,"When in the same file the alias is defined, opaque type aliases behave exactly\nas regular ",(0,i.mdx)("a",{parentName:"p",href:"../aliases/"},"type aliases")," do."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"opaque type NumberAlias = number;\n\n(0: NumberAlias);\n\nfunction add(x: NumberAlias, y: NumberAlias): NumberAlias {\n return x + y;\n}\nfunction toNumberAlias(x: number): NumberAlias { return x; }\nfunction toNumber(x: NumberAlias): number { return x; }\n")),(0,i.mdx)("h3",{id:"toc-outside-the-defining-file"},"Outside the Defining File"),(0,i.mdx)("p",null,"When importing an opaque type alias, it behaves like a\n",(0,i.mdx)("a",{parentName:"p",href:"../../lang/nominal-structural/#toc-nominal-typing"},"nominal type"),", hiding its\nunderlying type."),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("inlineCode",{parentName:"strong"},"exports.js"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"export opaque type NumberAlias = number;\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("inlineCode",{parentName:"strong"},"imports.js"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"import type {NumberAlias} from './exports';\n\n(0: NumberAlias) // Error: 0 is not a NumberAlias!\n\nfunction convert(x: NumberAlias): number {\n return x; // Error: x is not a number!\n}\n")),(0,i.mdx)("h3",{id:"toc-subtyping-constraints"},"Subtyping Constraints"),(0,i.mdx)("p",null,"When you add a subtyping constraint to an opaque type alias, we allow the opaque\ntype to be used as the super type when outside of the defining file."),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("inlineCode",{parentName:"strong"},"exports.js"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export opaque type ID: string = string;\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("inlineCode",{parentName:"strong"},"imports.js"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"import type {ID} from './exports';\n\nfunction formatID(x: ID): string {\n return \"ID: \" + x; // Ok! IDs are strings.\n}\n\nfunction toID(x: string): ID {\n return x; // Error: strings are not IDs.\n}\n")),(0,i.mdx)("p",null,"When you create an opaque type alias with a subtyping constraint, the type in\nthe type position must be a subtype of the type in the super type position."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":27,"endLine":1,"endColumn":32,"description":"number [1] is incompatible with string [2]. [incompatible-type]"}]','[{"startLine":1,"startColumn":27,"endLine":1,"endColumn":32,"description":"number':!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,'[incompatible-type]"}]':!0},"opaque type Bad: string = number; // Error: number is not a subtype of string\nopaque type Good: {x: string, ...} = {x: string, y: number};\n")),(0,i.mdx)("h3",{id:"toc-generics"},"Generics"),(0,i.mdx)("p",null,"Opaque type aliases can also have their own ",(0,i.mdx)("a",{parentName:"p",href:"../generics/"},"generics"),",\nand they work exactly as generics do in regular ",(0,i.mdx)("a",{parentName:"p",href:"../aliases#toc-type-alias-generics"},"type aliases")),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"opaque type MyObject<A, B, C>: {foo: A, bar: B, ...} = {\n foo: A,\n bar: B,\n baz: C,\n};\n\nvar val: MyObject<number, boolean, string> = {\n foo: 1,\n bar: true,\n baz: 'three',\n};\n")),(0,i.mdx)("h3",{id:"toc-library-definitions"},"Library Definitions"),(0,i.mdx)("p",null,"You can also declare opaque type aliases in\n",(0,i.mdx)("a",{parentName:"p",href:"../../libdefs"},"libdefs"),". There, you omit the underlying\ntype, but may still optionally include a super type."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare opaque type Foo;\ndeclare opaque type PositiveNumber: number;\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7562.8aeb83c2.js b/assets/js/7562.8aeb83c2.js new file mode 100644 index 00000000000..5e640c39455 --- /dev/null +++ b/assets/js/7562.8aeb83c2.js @@ -0,0 +1,2 @@ +/*! For license information please see 7562.8aeb83c2.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7562],{37562:(e,n,s)=>{s.r(n),s.d(n,{conf:()=>t,language:()=>o});var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"#",blockComment:["<#","#>"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},o={defaultToken:"",ignoreCase:!0,tokenPostfix:".ps1",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["begin","break","catch","class","continue","data","define","do","dynamicparam","else","elseif","end","exit","filter","finally","for","foreach","from","function","if","in","param","process","return","switch","throw","trap","try","until","using","var","while","workflow","parallel","sequence","inlinescript","configuration"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=><!~?&%|+\-*\/\^;\.,]+/,escapes:/`(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_][\w-]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":""}}],[/[ \t\r\n]+/,""],[/^:\w*/,"metatag"],[/\$(\{((global|local|private|script|using):)?[\w]+\}|((global|local|private|script|using):)?[\w]+)/,"variable"],[/<#/,"comment","@comment"],[/#.*$/,"comment"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+?/,"number"],[/[;,.]/,"delimiter"],[/\@"/,"string",'@herestring."'],[/\@'/,"string","@herestring.'"],[/"/,{cases:{"@eos":"string","@default":{token:"string",next:'@string."'}}}],[/'/,{cases:{"@eos":"string","@default":{token:"string",next:"@string.'"}}}]],string:[[/[^"'\$`]+/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/@escapes/,{cases:{"@eos":{token:"string.escape",next:"@popall"},"@default":"string.escape"}}],[/`./,{cases:{"@eos":{token:"string.escape.invalid",next:"@popall"},"@default":"string.escape.invalid"}}],[/\$[\w]+$/,{cases:{'$S2=="':{token:"variable",next:"@popall"},"@default":{token:"string",next:"@popall"}}}],[/\$[\w]+/,{cases:{'$S2=="':"variable","@default":"string"}}],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}}}]],herestring:[[/^\s*(["'])@/,{cases:{"$1==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/[^\$`]+/,"string"],[/@escapes/,"string.escape"],[/`./,"string.escape.invalid"],[/\$[\w]+/,{cases:{'$S2=="':"variable","@default":"string"}}]],comment:[[/[^#\.]+/,"comment"],[/#>/,"comment","@pop"],[/(\.)(@helpKeywords)(?!\w)/,{token:"comment.keyword.$2"}],[/[\.#]/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/7562.8aeb83c2.js.LICENSE.txt b/assets/js/7562.8aeb83c2.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7562.8aeb83c2.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7562.f9821228.js b/assets/js/7562.f9821228.js new file mode 100644 index 00000000000..6ce8de05cca --- /dev/null +++ b/assets/js/7562.f9821228.js @@ -0,0 +1,252 @@ +"use strict"; +exports.id = 7562; +exports.ids = [7562]; +exports.modules = { + +/***/ 37562: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/powershell/powershell.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "#", + blockComment: ["<#", "#>"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*#region\\b"), + end: new RegExp("^\\s*#endregion\\b") + } + } +}; +var language = { + defaultToken: "", + ignoreCase: true, + tokenPostfix: ".ps1", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.square", open: "[", close: "]" }, + { token: "delimiter.parenthesis", open: "(", close: ")" } + ], + keywords: [ + "begin", + "break", + "catch", + "class", + "continue", + "data", + "define", + "do", + "dynamicparam", + "else", + "elseif", + "end", + "exit", + "filter", + "finally", + "for", + "foreach", + "from", + "function", + "if", + "in", + "param", + "process", + "return", + "switch", + "throw", + "trap", + "try", + "until", + "using", + "var", + "while", + "workflow", + "parallel", + "sequence", + "inlinescript", + "configuration" + ], + helpKeywords: /SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/, + symbols: /[=><!~?&%|+\-*\/\^;\.,]+/, + escapes: /`(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [ + /[a-zA-Z_][\w-]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "" + } + } + ], + [/[ \t\r\n]+/, ""], + [/^:\w*/, "metatag"], + [ + /\$(\{((global|local|private|script|using):)?[\w]+\}|((global|local|private|script|using):)?[\w]+)/, + "variable" + ], + [/<#/, "comment", "@comment"], + [/#.*$/, "comment"], + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, "delimiter"], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"], + [/\d+?/, "number"], + [/[;,.]/, "delimiter"], + [/\@"/, "string", '@herestring."'], + [/\@'/, "string", "@herestring.'"], + [ + /"/, + { + cases: { + "@eos": "string", + "@default": { token: "string", next: '@string."' } + } + } + ], + [ + /'/, + { + cases: { + "@eos": "string", + "@default": { token: "string", next: "@string.'" } + } + } + ] + ], + string: [ + [ + /[^"'\$`]+/, + { + cases: { + "@eos": { token: "string", next: "@popall" }, + "@default": "string" + } + } + ], + [ + /@escapes/, + { + cases: { + "@eos": { token: "string.escape", next: "@popall" }, + "@default": "string.escape" + } + } + ], + [ + /`./, + { + cases: { + "@eos": { + token: "string.escape.invalid", + next: "@popall" + }, + "@default": "string.escape.invalid" + } + } + ], + [ + /\$[\w]+$/, + { + cases: { + '$S2=="': { token: "variable", next: "@popall" }, + "@default": { token: "string", next: "@popall" } + } + } + ], + [ + /\$[\w]+/, + { + cases: { + '$S2=="': "variable", + "@default": "string" + } + } + ], + [ + /["']/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": { + cases: { + "@eos": { token: "string", next: "@popall" }, + "@default": "string" + } + } + } + } + ] + ], + herestring: [ + [ + /^\s*(["'])@/, + { + cases: { + "$1==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ], + [/[^\$`]+/, "string"], + [/@escapes/, "string.escape"], + [/`./, "string.escape.invalid"], + [ + /\$[\w]+/, + { + cases: { + '$S2=="': "variable", + "@default": "string" + } + } + ] + ], + comment: [ + [/[^#\.]+/, "comment"], + [/#>/, "comment", "@pop"], + [/(\.)(@helpKeywords)(?!\w)/, { token: "comment.keyword.$2" }], + [/[\.#]/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7637.a10259f0.js b/assets/js/7637.a10259f0.js new file mode 100644 index 00000000000..3c2635c797e --- /dev/null +++ b/assets/js/7637.a10259f0.js @@ -0,0 +1,2 @@ +/*! For license information please see 7637.a10259f0.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7637],{57637:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>o,language:()=>s});var o={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},s={tokenPostfix:".tcl",specialFunctions:["set","unset","rename","variable","proc","coroutine","foreach","incr","append","lappend","linsert","lreplace"],mainFunctions:["if","then","elseif","else","case","switch","while","for","break","continue","return","package","namespace","catch","exit","eval","expr","uplevel","upvar"],builtinFunctions:["file","info","concat","join","lindex","list","llength","lrange","lsearch","lsort","split","array","parray","binary","format","regexp","regsub","scan","string","subst","dict","cd","clock","exec","glob","pid","pwd","close","eof","fblocked","fconfigure","fcopy","fileevent","flush","gets","open","puts","read","seek","socket","tell","interp","after","auto_execok","auto_load","auto_mkindex","auto_reset","bgerror","error","global","history","load","source","time","trace","unknown","unset","update","vwait","winfo","wm","bind","event","pack","place","grid","font","bell","clipboard","destroy","focus","grab","lower","option","raise","selection","send","tk","tkwait","tk_bisque","tk_focusNext","tk_focusPrev","tk_focusFollowsMouse","tk_popup","tk_setPalette"],symbols:/[=><!~?:&|+\-*\/\^%]+/,brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],escapes:/\\(?:[abfnrtv\\"'\[\]\{\};\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,variables:/(?:\$+(?:(?:\:\:?)?[a-zA-Z_]\w*)+)/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@specialFunctions":{token:"keyword.flow",next:"@specialFunc"},"@mainFunctions":"keyword","@builtinFunctions":"variable","@default":"operator.scss"}}],[/\s+\-+(?!\d|\.)\w*|{\*}/,"metatag"],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,"operator"],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/\.(?!\d|\.)[\w\-]*/,"operator.sql"],[/\d+(\.\d+)?/,"number"],[/\d+/,"number"],[/;/,"delimiter"],[/"/,{token:"string.quote",bracket:"@open",next:"@dstring"}],[/'/,{token:"string.quote",bracket:"@open",next:"@sstring"}]],dstring:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/[^\\$\[\]"]+/,"string"],[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],sstring:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\$+(?:\:\:)?\{/,{token:"identifier",next:"@nestedVariable"}],[/@variables/,"type.identifier"],[/[^\\$\[\]']+/,"string"],[/@escapes/,"string.escape"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/#.*\\$/,{token:"comment",next:"@newlineComment"}],[/#.*(?!\\)$/,"comment"]],newlineComment:[[/.*\\$/,"comment"],[/.*(?!\\)$/,{token:"comment",next:"@pop"}]],nestedVariable:[[/[^\{\}\$]+/,"type.identifier"],[/\}/,{token:"identifier",next:"@pop"}]],nestedCall:[[/\[/,{token:"@brackets",next:"@nestedCall"}],[/\]/,{token:"@brackets",next:"@pop"}],{include:"root"}],specialFunc:[[/"/,{token:"string",next:"@dstring"}],[/'/,{token:"string",next:"@sstring"}],[/\S+/,{token:"type",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/7637.a10259f0.js.LICENSE.txt b/assets/js/7637.a10259f0.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7637.a10259f0.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7637.aff67a32.js b/assets/js/7637.aff67a32.js new file mode 100644 index 00000000000..b0215292df2 --- /dev/null +++ b/assets/js/7637.aff67a32.js @@ -0,0 +1,251 @@ +"use strict"; +exports.id = 7637; +exports.ids = [7637]; +exports.modules = { + +/***/ 57637: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/tcl/tcl.ts +var conf = { + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + tokenPostfix: ".tcl", + specialFunctions: [ + "set", + "unset", + "rename", + "variable", + "proc", + "coroutine", + "foreach", + "incr", + "append", + "lappend", + "linsert", + "lreplace" + ], + mainFunctions: [ + "if", + "then", + "elseif", + "else", + "case", + "switch", + "while", + "for", + "break", + "continue", + "return", + "package", + "namespace", + "catch", + "exit", + "eval", + "expr", + "uplevel", + "upvar" + ], + builtinFunctions: [ + "file", + "info", + "concat", + "join", + "lindex", + "list", + "llength", + "lrange", + "lsearch", + "lsort", + "split", + "array", + "parray", + "binary", + "format", + "regexp", + "regsub", + "scan", + "string", + "subst", + "dict", + "cd", + "clock", + "exec", + "glob", + "pid", + "pwd", + "close", + "eof", + "fblocked", + "fconfigure", + "fcopy", + "fileevent", + "flush", + "gets", + "open", + "puts", + "read", + "seek", + "socket", + "tell", + "interp", + "after", + "auto_execok", + "auto_load", + "auto_mkindex", + "auto_reset", + "bgerror", + "error", + "global", + "history", + "load", + "source", + "time", + "trace", + "unknown", + "unset", + "update", + "vwait", + "winfo", + "wm", + "bind", + "event", + "pack", + "place", + "grid", + "font", + "bell", + "clipboard", + "destroy", + "focus", + "grab", + "lower", + "option", + "raise", + "selection", + "send", + "tk", + "tkwait", + "tk_bisque", + "tk_focusNext", + "tk_focusPrev", + "tk_focusFollowsMouse", + "tk_popup", + "tk_setPalette" + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + brackets: [ + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" } + ], + escapes: /\\(?:[abfnrtv\\"'\[\]\{\};\$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + variables: /(?:\$+(?:(?:\:\:?)?[a-zA-Z_]\w*)+)/, + tokenizer: { + root: [ + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@specialFunctions": { + token: "keyword.flow", + next: "@specialFunc" + }, + "@mainFunctions": "keyword", + "@builtinFunctions": "variable", + "@default": "operator.scss" + } + } + ], + [/\s+\-+(?!\d|\.)\w*|{\*}/, "metatag"], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, "operator"], + [/\$+(?:\:\:)?\{/, { token: "identifier", next: "@nestedVariable" }], + [/@variables/, "type.identifier"], + [/\.(?!\d|\.)[\w\-]*/, "operator.sql"], + [/\d+(\.\d+)?/, "number"], + [/\d+/, "number"], + [/;/, "delimiter"], + [/"/, { token: "string.quote", bracket: "@open", next: "@dstring" }], + [/'/, { token: "string.quote", bracket: "@open", next: "@sstring" }] + ], + dstring: [ + [/\[/, { token: "@brackets", next: "@nestedCall" }], + [/\$+(?:\:\:)?\{/, { token: "identifier", next: "@nestedVariable" }], + [/@variables/, "type.identifier"], + [/[^\\$\[\]"]+/, "string"], + [/@escapes/, "string.escape"], + [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + sstring: [ + [/\[/, { token: "@brackets", next: "@nestedCall" }], + [/\$+(?:\:\:)?\{/, { token: "identifier", next: "@nestedVariable" }], + [/@variables/, "type.identifier"], + [/[^\\$\[\]']+/, "string"], + [/@escapes/, "string.escape"], + [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/#.*\\$/, { token: "comment", next: "@newlineComment" }], + [/#.*(?!\\)$/, "comment"] + ], + newlineComment: [ + [/.*\\$/, "comment"], + [/.*(?!\\)$/, { token: "comment", next: "@pop" }] + ], + nestedVariable: [ + [/[^\{\}\$]+/, "type.identifier"], + [/\}/, { token: "identifier", next: "@pop" }] + ], + nestedCall: [ + [/\[/, { token: "@brackets", next: "@nestedCall" }], + [/\]/, { token: "@brackets", next: "@pop" }], + { include: "root" } + ], + specialFunc: [ + [/"/, { token: "string", next: "@dstring" }], + [/'/, { token: "string", next: "@sstring" }], + [/\S+/, { token: "type", next: "@pop" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7667.b9d7153f.js b/assets/js/7667.b9d7153f.js new file mode 100644 index 00000000000..9195df456c7 --- /dev/null +++ b/assets/js/7667.b9d7153f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7667],{7667:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>r,toc:()=>u});var t=a(87462),i=(a(67294),a(3905));a(45475);const l={title:"Type Refinements",slug:"/lang/refinements"},o=void 0,r={unversionedId:"lang/refinements",id:"lang/refinements",title:"Type Refinements",description:"Refinements allow us to narrow the type of a value based on conditional tests.",source:"@site/docs/lang/refinements.md",sourceDirName:"lang",slug:"/lang/refinements",permalink:"/en/docs/lang/refinements",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/refinements.md",tags:[],version:"current",frontMatter:{title:"Type Refinements",slug:"/lang/refinements"},sidebar:"docsSidebar",previous:{title:"Width Subtyping",permalink:"/en/docs/lang/width-subtyping"},next:{title:"Lazy Mode",permalink:"/en/docs/lang/lazy-modes"}},s={},u=[{value:"Ways to refine in Flow",id:"ways-to-refine-in-flow",level:2},{value:"<code>typeof</code> checks",id:"typeof-checks",level:3},{value:"Equality checks",id:"equality-checks",level:3},{value:"Truthiness checks",id:"truthiness-checks",level:3},{value:"<code>instanceof</code> checks",id:"instanceof-checks",level:3},{value:"Assignments",id:"assignments",level:3},{value:"Type Guards",id:"type-guards",level:3},{value:"Refinement Invalidations",id:"toc-refinement-invalidations",level:2}],d={toc:u};function p(e){let{components:n,...a}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},d,a,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Refinements allow us to narrow the type of a value based on conditional tests."),(0,i.mdx)("p",null,"For example, in the function below ",(0,i.mdx)("inlineCode",{parentName:"p"},"value")," is a ",(0,i.mdx)("a",{parentName:"p",href:"../../types/unions"},"union")," of ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"')," or ",(0,i.mdx)("inlineCode",{parentName:"p"},'"B"'),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(value: "A" | "B") {\n if (value === "A") {\n (value: "A");\n }\n}\n')),(0,i.mdx)("p",null,"Inside of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"if")," block we know that value must be ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"')," because that's the only\ntime the if-statement will be true."),(0,i.mdx)("p",null,"The ability for a static type checker to be able to tell that the value inside\nthe if statement must be ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"')," is known as a refinement."),(0,i.mdx)("p",null,"Next we'll add an ",(0,i.mdx)("inlineCode",{parentName:"p"},"else")," block to our if statement."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(value: "A" | "B") {\n if (value === "A") {\n (value: "A");\n } else {\n (value: "B");\n }\n}\n')),(0,i.mdx)("p",null,"Inside of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"else")," block we know that value must be ",(0,i.mdx)("inlineCode",{parentName:"p"},'"B"')," because it can only\nbe ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"')," or ",(0,i.mdx)("inlineCode",{parentName:"p"},'"B"')," and we've removed ",(0,i.mdx)("inlineCode",{parentName:"p"},'"A"')," from the possibilities."),(0,i.mdx)("h2",{id:"ways-to-refine-in-flow"},"Ways to refine in Flow"),(0,i.mdx)("h3",{id:"typeof-checks"},(0,i.mdx)("inlineCode",{parentName:"h3"},"typeof")," checks"),(0,i.mdx)("p",null,"You can use a ",(0,i.mdx)("inlineCode",{parentName:"p"},'typeof value === "<type>"')," check to refine a value to one of the categories supported by the ",(0,i.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof"},(0,i.mdx)("inlineCode",{parentName:"a"},"typeof"))," operator."),(0,i.mdx)("p",null,"The ",(0,i.mdx)("inlineCode",{parentName:"p"},"typeof")," operator can output ",(0,i.mdx)("inlineCode",{parentName:"p"},'"undefined"'),",",(0,i.mdx)("inlineCode",{parentName:"p"},'"boolean"'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'"number"'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'"bigint"'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'"string"'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'"symbol"'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'"function"'),", or ",(0,i.mdx)("inlineCode",{parentName:"p"},'"object"'),"."),(0,i.mdx)("p",null,"Keep in mind that the ",(0,i.mdx)("inlineCode",{parentName:"p"},"typeof")," operator will return ",(0,i.mdx)("inlineCode",{parentName:"p"},'"object"')," for objects, but also ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and arrays as well."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(value: mixed) {\n if (typeof value === "string") {\n (value: string);\n } else if (typeof value === "boolean") {\n (value: boolean);\n } else if (typeof value === "object") {\n // `value` could be null, an array, or an object\n (value: null | interface {} | $ReadOnlyArray<mixed>);\n }\n}\n')),(0,i.mdx)("p",null,"To check for ",(0,i.mdx)("inlineCode",{parentName:"p"},"null"),", use a ",(0,i.mdx)("inlineCode",{parentName:"p"},"value === null")," ",(0,i.mdx)("a",{parentName:"p",href:"#equality-checks"},"equality")," check."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(value: mixed) {\n if (value === null) {\n (value: null); // `value` is null\n }\n}\n")),(0,i.mdx)("p",null,"To check for ",(0,i.mdx)("a",{parentName:"p",href:"../../types/arrays"},"arrays"),", use ",(0,i.mdx)("inlineCode",{parentName:"p"},"Array.isArray"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(value: mixed) {\n if (Array.isArray(value)) {\n (value: $ReadOnlyArray<mixed>); // `value` is an array\n }\n}\n")),(0,i.mdx)("h3",{id:"equality-checks"},"Equality checks"),(0,i.mdx)("p",null,"As shown in the introductory example, you can use an equality check to narrow a value to a specific type.\nThis also applies to equality checks made in ",(0,i.mdx)("inlineCode",{parentName:"p"},"switch")," statements."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function func(value: "A" | "B" | "C") {\n if (value === "A") {\n (value: "A");\n } else {\n (value: "B" | "C");\n }\n\n switch (value) {\n case "A":\n (value: "A");\n break;\n case "B":\n (value: "B");\n break;\n case "C":\n (value: "C");\n break;\n }\n}\n')),(0,i.mdx)("p",null,"While in general it is not recommended to use ",(0,i.mdx)("inlineCode",{parentName:"p"},"==")," in JavaScript, due to the coercions it performs,\ndoing ",(0,i.mdx)("inlineCode",{parentName:"p"},"value == null")," (or ",(0,i.mdx)("inlineCode",{parentName:"p"},"value != null"),") checks ",(0,i.mdx)("inlineCode",{parentName:"p"},"value")," exactly for ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"void"),".\nThis works well with Flow's ",(0,i.mdx)("a",{parentName:"p",href:"../../types/maybe"},"maybe")," types, which create a union with ",(0,i.mdx)("inlineCode",{parentName:"p"},"null")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"void"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function func(value: ?string) {\n if (value != null) {\n (value: string);\n } else {\n (value: null | void);\n }\n}\n")),(0,i.mdx)("p",null,"You can refine a union of object types based on a common tag, which we call ",(0,i.mdx)("a",{parentName:"p",href:"../../types/unions/#toc-disjoint-object-unions"},"disjoint object unions"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type A = {type: "A", s: string};\ntype B = {type: "B", n: number};\n\nfunction func(value: A | B) {\n if (value.type === "A") {\n // `value` is A\n (value.s: string); // Works\n } else {\n // `value` is B\n (value.n: number); // Works\n }\n}\n')),(0,i.mdx)("h3",{id:"truthiness-checks"},"Truthiness checks"),(0,i.mdx)("p",null,"You can use non-booleans in JavaScript conditionals.\n",(0,i.mdx)("inlineCode",{parentName:"p"},"0"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"NaN"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},'""'),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"null"),", and ",(0,i.mdx)("inlineCode",{parentName:"p"},"undefined")," will all coerce to ",(0,i.mdx)("inlineCode",{parentName:"p"},"false"),' (and so are considered "falsey").\nOther values will coerce to ',(0,i.mdx)("inlineCode",{parentName:"p"},"true"),' (and so are considered "truthy").'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":6,"endLine":5,"endColumn":10,"description":"Cannot cast `value` to union type because string [1] is incompatible with literal union [2]. [incompatible-cast]"}]','[{"startLine":5,"startColumn":6,"endLine":5,"endColumn":10,"description":"Cannot':!0,cast:!0,"`value`":!0,to:!0,union:!0,type:!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,literal:!0,"[2].":!0,'[incompatible-cast]"}]':!0},'function func(value: ?string) {\n if (value) {\n (value: string); // Works\n } else {\n (value: null | void); // Error! Could still be the empty string ""\n }\n}\n')),(0,i.mdx)("p",null,"You can see in the above example why doing a truthy check when your value can be a string or number is not suggested:\nit is possible to unintentionally check against the ",(0,i.mdx)("inlineCode",{parentName:"p"},'""')," or ",(0,i.mdx)("inlineCode",{parentName:"p"},"0"),".\nWe created a ",(0,i.mdx)("a",{parentName:"p",href:"../../linting"},"Flow lint")," called ",(0,i.mdx)("a",{parentName:"p",href:"../../linting/rule-reference/#toc-sketchy-null"},"sketchy-null")," to guard against this scenario:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":7,"endLine":3,"endColumn":11,"description":"Sketchy null check on string [1] which is potentially an empty string. Perhaps you meant to check for null or undefined [2]? [sketchy-null-string]"}]','[{"startLine":3,"startColumn":7,"endLine":3,"endColumn":11,"description":"Sketchy':!0,null:!0,check:!0,on:!0,string:!0,"[1]":!0,which:!0,is:!0,potentially:!0,an:!0,empty:!0,"string.":!0,Perhaps:!0,you:!0,meant:!0,to:!0,for:!0,or:!0,undefined:!0,"[2]?":!0,'[sketchy-null-string]"}]':!0},"// flowlint sketchy-null:error\nfunction func(value: ?string) {\n if (value) { // Error!\n }\n}\n")),(0,i.mdx)("h3",{id:"instanceof-checks"},(0,i.mdx)("inlineCode",{parentName:"h3"},"instanceof")," checks"),(0,i.mdx)("p",null,"You can use the ",(0,i.mdx)("a",{parentName:"p",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/instanceof"},"instanceof")," operator to narrow a value as well.\nIt checks if the supplied constructor's prototype is anywhere in a value's prototype chain."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":16,"startColumn":11,"endLine":16,"endColumn":15,"description":"Cannot call `value.build` because property `build` is missing in `A` [1]. [prop-missing]"}]','[{"startLine":16,"startColumn":11,"endLine":16,"endColumn":15,"description":"Cannot':!0,call:!0,"`value.build`":!0,because:!0,property:!0,"`build`":!0,is:!0,missing:!0,in:!0,"`A`":!0,"[1].":!0,'[prop-missing]"}]':!0},"class A {\n amaze(): void {}\n}\nclass B extends A {\n build(): void {}\n}\n\nfunction func(value: mixed) {\n if (value instanceof B) {\n value.amaze(); // Works\n value.build(); // Works\n }\n\n if (value instanceof A) {\n value.amaze(); // Works\n value.build(); // Error\n }\n\n if (value instanceof Object) {\n value.toString(); // Works\n }\n}\n")),(0,i.mdx)("h3",{id:"assignments"},"Assignments"),(0,i.mdx)("p",null,"Flow follows your control flow and narrows the type of a variable after you have assigned to it."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'declare const b: boolean;\n\nlet x: ?string = b ? "str" : null;\n\n(x: ?string);\n\nx = "hi";\n\n// We know `x` must now be a string after the assignment\n(x: string); // Works\n')),(0,i.mdx)("h3",{id:"type-guards"},"Type Guards"),(0,i.mdx)("p",null,"You can create a reusable refinement by defining a function which is a ",(0,i.mdx)("a",{parentName:"p",href:"../../types/type-guards/"},"type guard"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function nonMaybe<T>(x: ?T): x is T {\n return x != null;\n}\n\nfunction func(value: ?string) {\n if (nonMaybe(value)) {\n (value: string); // Works!\n }\n}\n")),(0,i.mdx)("h2",{id:"toc-refinement-invalidations"},"Refinement Invalidations"),(0,i.mdx)("p",null,"It is also possible to invalidate refinements, for example:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":6,"startColumn":16,"endLine":6,"endColumn":21,"description":"Cannot call `value.prop.charAt` because property `charAt` is missing in undefined [1]. [incompatible-use]"}]','[{"startLine":6,"startColumn":16,"endLine":6,"endColumn":21,"description":"Cannot':!0,call:!0,"`value.prop.charAt`":!0,because:!0,property:!0,"`charAt`":!0,is:!0,missing:!0,in:!0,undefined:!0,"[1].":!0,'[incompatible-use]"}]':!0},"function otherFunc() { /* ... */ }\n\nfunction func(value: {prop?: string}) {\n if (value.prop) {\n otherFunc();\n value.prop.charAt(0); // Error!\n }\n}\n")),(0,i.mdx)("p",null,"The reason for this is that we don't know that ",(0,i.mdx)("inlineCode",{parentName:"p"},"otherFunc()")," hasn't done\nsomething to our value. Imagine the following scenario:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":12,"startColumn":16,"endLine":12,"endColumn":21,"description":"Cannot call `value.prop.charAt` because property `charAt` is missing in undefined [1]. [incompatible-use]"}]','[{"startLine":12,"startColumn":16,"endLine":12,"endColumn":21,"description":"Cannot':!0,call:!0,"`value.prop.charAt`":!0,because:!0,property:!0,"`charAt`":!0,is:!0,missing:!0,in:!0,undefined:!0,"[1].":!0,'[incompatible-use]"}]':!0},'const obj: {prop?: string} = {prop: "test"};\n\nfunction otherFunc() {\n if (Math.random() > 0.5) {\n delete obj.prop;\n }\n}\n\nfunction func(value: {prop?: string}) {\n if (value.prop) {\n otherFunc();\n value.prop.charAt(0); // Error!\n }\n}\n\nfunc(obj);\n')),(0,i.mdx)("p",null,"Inside of ",(0,i.mdx)("inlineCode",{parentName:"p"},"otherFunc()")," we sometimes remove ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop"),". Flow doesn't know if the\n",(0,i.mdx)("inlineCode",{parentName:"p"},"if (value.prop)")," check is still true, so it invalidates the refinement."),(0,i.mdx)("p",null,"There's a straightforward way to get around this. Store the value before\ncalling another function and use the stored value instead. This way you can\nprevent the refinement from invalidating."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function otherFunc() { /* ... */ }\n\nfunction func(value: {prop?: string}) {\n if (value.prop) {\n const prop = value.prop;\n otherFunc();\n prop.charAt(0);\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7678.09b0f00f.js b/assets/js/7678.09b0f00f.js new file mode 100644 index 00000000000..b0cbd8f420f --- /dev/null +++ b/assets/js/7678.09b0f00f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7678],{67678:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>u,toc:()=>l});var o=n(87462),s=(n(67294),n(3905));const a={title:"Flow can now detect unused Promises","short-title":"Flow can now detect unused Promises",author:"David Richey","medium-link":"https://medium.com/flow-type/flow-can-now-detect-unused-promises-b49341256640"},i=void 0,u={permalink:"/blog/2023/04/10/Unused-Promise",source:"@site/blog/2023-04-10-Unused-Promise.md",title:"Flow can now detect unused Promises",description:"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,",date:"2023-04-10T00:00:00.000Z",formattedDate:"April 10, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"David Richey"}],frontMatter:{title:"Flow can now detect unused Promises","short-title":"Flow can now detect unused Promises",author:"David Richey","medium-link":"https://medium.com/flow-type/flow-can-now-detect-unused-promises-b49341256640"},prevItem:{title:"Announcing 5 new Flow tuple type features",permalink:"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features"},nextItem:{title:"Announcing Partial & Required Flow utility types + catch annotations",permalink:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"}},r={authorsImageUrls:[void 0]},l=[],d={toc:l};function c(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,\nbecause errors are potentially unhandled, and the code may not execute in the intended order. They are\nusually mistakes that Flow is perfectly positioned to warn you about."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7724.5b44829a.js b/assets/js/7724.5b44829a.js new file mode 100644 index 00000000000..2a390dd5389 --- /dev/null +++ b/assets/js/7724.5b44829a.js @@ -0,0 +1,41607 @@ +exports.id = 7724; +exports.ids = [7724]; +exports.modules = { + +/***/ 84182: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(__webpack_require__(82241)); + else {} +})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __nested_webpack_require_643__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_643__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __nested_webpack_require_643__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __nested_webpack_require_643__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __nested_webpack_require_643__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __nested_webpack_require_643__.d = function(exports, name, getter) { +/******/ if(!__nested_webpack_require_643__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __nested_webpack_require_643__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __nested_webpack_require_643__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __nested_webpack_require_643__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __nested_webpack_require_643__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __nested_webpack_require_643__(__nested_webpack_require_643__.s = 7); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_0__; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __nested_webpack_require_3185__) { + +"use strict"; + + +var FDLayoutConstants = __nested_webpack_require_3185__(0).FDLayoutConstants; + +function CoSEConstants() {} + +//CoSEConstants inherits static props in FDLayoutConstants +for (var prop in FDLayoutConstants) { + CoSEConstants[prop] = FDLayoutConstants[prop]; +} + +CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false; +CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH; +CoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60; +CoSEConstants.TILE = true; +CoSEConstants.TILING_PADDING_VERTICAL = 10; +CoSEConstants.TILING_PADDING_HORIZONTAL = 10; +CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false; // make this true when cose is used incrementally as a part of other non-incremental layout + +module.exports = CoSEConstants; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __nested_webpack_require_4002__) { + +"use strict"; + + +var FDLayoutEdge = __nested_webpack_require_4002__(0).FDLayoutEdge; + +function CoSEEdge(source, target, vEdge) { + FDLayoutEdge.call(this, source, target, vEdge); +} + +CoSEEdge.prototype = Object.create(FDLayoutEdge.prototype); +for (var prop in FDLayoutEdge) { + CoSEEdge[prop] = FDLayoutEdge[prop]; +} + +module.exports = CoSEEdge; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __nested_webpack_require_4409__) { + +"use strict"; + + +var LGraph = __nested_webpack_require_4409__(0).LGraph; + +function CoSEGraph(parent, graphMgr, vGraph) { + LGraph.call(this, parent, graphMgr, vGraph); +} + +CoSEGraph.prototype = Object.create(LGraph.prototype); +for (var prop in LGraph) { + CoSEGraph[prop] = LGraph[prop]; +} + +module.exports = CoSEGraph; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __nested_webpack_require_4790__) { + +"use strict"; + + +var LGraphManager = __nested_webpack_require_4790__(0).LGraphManager; + +function CoSEGraphManager(layout) { + LGraphManager.call(this, layout); +} + +CoSEGraphManager.prototype = Object.create(LGraphManager.prototype); +for (var prop in LGraphManager) { + CoSEGraphManager[prop] = LGraphManager[prop]; +} + +module.exports = CoSEGraphManager; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __nested_webpack_require_5205__) { + +"use strict"; + + +var FDLayoutNode = __nested_webpack_require_5205__(0).FDLayoutNode; +var IMath = __nested_webpack_require_5205__(0).IMath; + +function CoSENode(gm, loc, size, vNode) { + FDLayoutNode.call(this, gm, loc, size, vNode); +} + +CoSENode.prototype = Object.create(FDLayoutNode.prototype); +for (var prop in FDLayoutNode) { + CoSENode[prop] = FDLayoutNode[prop]; +} + +CoSENode.prototype.move = function () { + var layout = this.graphManager.getLayout(); + this.displacementX = layout.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren; + this.displacementY = layout.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren; + + if (Math.abs(this.displacementX) > layout.coolingFactor * layout.maxNodeDisplacement) { + this.displacementX = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementX); + } + + if (Math.abs(this.displacementY) > layout.coolingFactor * layout.maxNodeDisplacement) { + this.displacementY = layout.coolingFactor * layout.maxNodeDisplacement * IMath.sign(this.displacementY); + } + + // a simple node, just move it + if (this.child == null) { + this.moveBy(this.displacementX, this.displacementY); + } + // an empty compound node, again just move it + else if (this.child.getNodes().length == 0) { + this.moveBy(this.displacementX, this.displacementY); + } + // non-empty compound node, propogate movement to children as well + else { + this.propogateDisplacementToChildren(this.displacementX, this.displacementY); + } + + layout.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY); + + this.springForceX = 0; + this.springForceY = 0; + this.repulsionForceX = 0; + this.repulsionForceY = 0; + this.gravitationForceX = 0; + this.gravitationForceY = 0; + this.displacementX = 0; + this.displacementY = 0; +}; + +CoSENode.prototype.propogateDisplacementToChildren = function (dX, dY) { + var nodes = this.getChild().getNodes(); + var node; + for (var i = 0; i < nodes.length; i++) { + node = nodes[i]; + if (node.getChild() == null) { + node.moveBy(dX, dY); + node.displacementX += dX; + node.displacementY += dY; + } else { + node.propogateDisplacementToChildren(dX, dY); + } + } +}; + +CoSENode.prototype.setPred1 = function (pred1) { + this.pred1 = pred1; +}; + +CoSENode.prototype.getPred1 = function () { + return pred1; +}; + +CoSENode.prototype.getPred2 = function () { + return pred2; +}; + +CoSENode.prototype.setNext = function (next) { + this.next = next; +}; + +CoSENode.prototype.getNext = function () { + return next; +}; + +CoSENode.prototype.setProcessed = function (processed) { + this.processed = processed; +}; + +CoSENode.prototype.isProcessed = function () { + return processed; +}; + +module.exports = CoSENode; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __nested_webpack_require_8085__) { + +"use strict"; + + +var FDLayout = __nested_webpack_require_8085__(0).FDLayout; +var CoSEGraphManager = __nested_webpack_require_8085__(4); +var CoSEGraph = __nested_webpack_require_8085__(3); +var CoSENode = __nested_webpack_require_8085__(5); +var CoSEEdge = __nested_webpack_require_8085__(2); +var CoSEConstants = __nested_webpack_require_8085__(1); +var FDLayoutConstants = __nested_webpack_require_8085__(0).FDLayoutConstants; +var LayoutConstants = __nested_webpack_require_8085__(0).LayoutConstants; +var Point = __nested_webpack_require_8085__(0).Point; +var PointD = __nested_webpack_require_8085__(0).PointD; +var Layout = __nested_webpack_require_8085__(0).Layout; +var Integer = __nested_webpack_require_8085__(0).Integer; +var IGeometry = __nested_webpack_require_8085__(0).IGeometry; +var LGraph = __nested_webpack_require_8085__(0).LGraph; +var Transform = __nested_webpack_require_8085__(0).Transform; + +function CoSELayout() { + FDLayout.call(this); + + this.toBeTiled = {}; // Memorize if a node is to be tiled or is tiled +} + +CoSELayout.prototype = Object.create(FDLayout.prototype); + +for (var prop in FDLayout) { + CoSELayout[prop] = FDLayout[prop]; +} + +CoSELayout.prototype.newGraphManager = function () { + var gm = new CoSEGraphManager(this); + this.graphManager = gm; + return gm; +}; + +CoSELayout.prototype.newGraph = function (vGraph) { + return new CoSEGraph(null, this.graphManager, vGraph); +}; + +CoSELayout.prototype.newNode = function (vNode) { + return new CoSENode(this.graphManager, vNode); +}; + +CoSELayout.prototype.newEdge = function (vEdge) { + return new CoSEEdge(null, null, vEdge); +}; + +CoSELayout.prototype.initParameters = function () { + FDLayout.prototype.initParameters.call(this, arguments); + if (!this.isSubLayout) { + if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) { + this.idealEdgeLength = 10; + } else { + this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH; + } + + this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION; + this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH; + this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH; + this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH; + this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH; + this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR; + this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR; + + // variables for tree reduction support + this.prunedNodesAll = []; + this.growTreeIterations = 0; + this.afterGrowthIterations = 0; + this.isTreeGrowing = false; + this.isGrowthFinished = false; + + // variables for cooling + this.coolingCycle = 0; + this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD; + this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations; + this.coolingAdjuster = 1; + } +}; + +CoSELayout.prototype.layout = function () { + var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; + if (createBendsAsNeeded) { + this.createBendpoints(); + this.graphManager.resetAllEdges(); + } + + this.level = 0; + return this.classicLayout(); +}; + +CoSELayout.prototype.classicLayout = function () { + this.nodesWithGravity = this.calculateNodesToApplyGravitationTo(); + this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity); + this.calcNoOfChildrenForAllNodes(); + this.graphManager.calcLowestCommonAncestors(); + this.graphManager.calcInclusionTreeDepths(); + this.graphManager.getRoot().calcEstimatedSize(); + this.calcIdealEdgeLengths(); + + if (!this.incremental) { + var forest = this.getFlatForest(); + + // The graph associated with this layout is flat and a forest + if (forest.length > 0) { + this.positionNodesRadially(forest); + } + // The graph associated with this layout is not flat or a forest + else { + // Reduce the trees when incremental mode is not enabled and graph is not a forest + this.reduceTrees(); + // Update nodes that gravity will be applied + this.graphManager.resetAllNodesToApplyGravitation(); + var allNodes = new Set(this.getAllNodes()); + var intersection = this.nodesWithGravity.filter(function (x) { + return allNodes.has(x); + }); + this.graphManager.setAllNodesToApplyGravitation(intersection); + + this.positionNodesRandomly(); + } + } else { + if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) { + // Reduce the trees in incremental mode if only this constant is set to true + this.reduceTrees(); + // Update nodes that gravity will be applied + this.graphManager.resetAllNodesToApplyGravitation(); + var allNodes = new Set(this.getAllNodes()); + var intersection = this.nodesWithGravity.filter(function (x) { + return allNodes.has(x); + }); + this.graphManager.setAllNodesToApplyGravitation(intersection); + } + } + + this.initSpringEmbedder(); + this.runSpringEmbedder(); + + return true; +}; + +CoSELayout.prototype.tick = function () { + this.totalIterations++; + + if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) { + if (this.prunedNodesAll.length > 0) { + this.isTreeGrowing = true; + } else { + return true; + } + } + + if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) { + if (this.isConverged()) { + if (this.prunedNodesAll.length > 0) { + this.isTreeGrowing = true; + } else { + return true; + } + } + + this.coolingCycle++; + + if (this.layoutQuality == 0) { + // quality - "draft" + this.coolingAdjuster = this.coolingCycle; + } else if (this.layoutQuality == 1) { + // quality - "default" + this.coolingAdjuster = this.coolingCycle / 3; + } + + // cooling schedule is based on http://www.btluke.com/simanf1.html -> cooling schedule 3 + this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature); + this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor)); + } + // Operations while tree is growing again + if (this.isTreeGrowing) { + if (this.growTreeIterations % 10 == 0) { + if (this.prunedNodesAll.length > 0) { + this.graphManager.updateBounds(); + this.updateGrid(); + this.growTree(this.prunedNodesAll); + // Update nodes that gravity will be applied + this.graphManager.resetAllNodesToApplyGravitation(); + var allNodes = new Set(this.getAllNodes()); + var intersection = this.nodesWithGravity.filter(function (x) { + return allNodes.has(x); + }); + this.graphManager.setAllNodesToApplyGravitation(intersection); + + this.graphManager.updateBounds(); + this.updateGrid(); + this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; + } else { + this.isTreeGrowing = false; + this.isGrowthFinished = true; + } + } + this.growTreeIterations++; + } + // Operations after growth is finished + if (this.isGrowthFinished) { + if (this.isConverged()) { + return true; + } + if (this.afterGrowthIterations % 10 == 0) { + this.graphManager.updateBounds(); + this.updateGrid(); + } + this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100); + this.afterGrowthIterations++; + } + + var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished; + var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished; + + this.totalDisplacement = 0; + this.graphManager.updateBounds(); + this.calcSpringForces(); + this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate); + this.calcGravitationalForces(); + this.moveNodes(); + this.animate(); + + return false; // Layout is not ended yet return false +}; + +CoSELayout.prototype.getPositionsData = function () { + var allNodes = this.graphManager.getAllNodes(); + var pData = {}; + for (var i = 0; i < allNodes.length; i++) { + var rect = allNodes[i].rect; + var id = allNodes[i].id; + pData[id] = { + id: id, + x: rect.getCenterX(), + y: rect.getCenterY(), + w: rect.width, + h: rect.height + }; + } + + return pData; +}; + +CoSELayout.prototype.runSpringEmbedder = function () { + this.initialAnimationPeriod = 25; + this.animationPeriod = this.initialAnimationPeriod; + var layoutEnded = false; + + // If aminate option is 'during' signal that layout is supposed to start iterating + if (FDLayoutConstants.ANIMATE === 'during') { + this.emit('layoutstarted'); + } else { + // If aminate option is 'during' tick() function will be called on index.js + while (!layoutEnded) { + layoutEnded = this.tick(); + } + + this.graphManager.updateBounds(); + } +}; + +CoSELayout.prototype.calculateNodesToApplyGravitationTo = function () { + var nodeList = []; + var graph; + + var graphs = this.graphManager.getGraphs(); + var size = graphs.length; + var i; + for (i = 0; i < size; i++) { + graph = graphs[i]; + + graph.updateConnected(); + + if (!graph.isConnected) { + nodeList = nodeList.concat(graph.getNodes()); + } + } + + return nodeList; +}; + +CoSELayout.prototype.createBendpoints = function () { + var edges = []; + edges = edges.concat(this.graphManager.getAllEdges()); + var visited = new Set(); + var i; + for (i = 0; i < edges.length; i++) { + var edge = edges[i]; + + if (!visited.has(edge)) { + var source = edge.getSource(); + var target = edge.getTarget(); + + if (source == target) { + edge.getBendpoints().push(new PointD()); + edge.getBendpoints().push(new PointD()); + this.createDummyNodesForBendpoints(edge); + visited.add(edge); + } else { + var edgeList = []; + + edgeList = edgeList.concat(source.getEdgeListToNode(target)); + edgeList = edgeList.concat(target.getEdgeListToNode(source)); + + if (!visited.has(edgeList[0])) { + if (edgeList.length > 1) { + var k; + for (k = 0; k < edgeList.length; k++) { + var multiEdge = edgeList[k]; + multiEdge.getBendpoints().push(new PointD()); + this.createDummyNodesForBendpoints(multiEdge); + } + } + edgeList.forEach(function (edge) { + visited.add(edge); + }); + } + } + } + + if (visited.size == edges.length) { + break; + } + } +}; + +CoSELayout.prototype.positionNodesRadially = function (forest) { + // We tile the trees to a grid row by row; first tree starts at (0,0) + var currentStartingPoint = new Point(0, 0); + var numberOfColumns = Math.ceil(Math.sqrt(forest.length)); + var height = 0; + var currentY = 0; + var currentX = 0; + var point = new PointD(0, 0); + + for (var i = 0; i < forest.length; i++) { + if (i % numberOfColumns == 0) { + // Start of a new row, make the x coordinate 0, increment the + // y coordinate with the max height of the previous row + currentX = 0; + currentY = height; + + if (i != 0) { + currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION; + } + + height = 0; + } + + var tree = forest[i]; + + // Find the center of the tree + var centerNode = Layout.findCenterOfTree(tree); + + // Set the staring point of the next tree + currentStartingPoint.x = currentX; + currentStartingPoint.y = currentY; + + // Do a radial layout starting with the center + point = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint); + + if (point.y > height) { + height = Math.floor(point.y); + } + + currentX = Math.floor(point.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION); + } + + this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point.x / 2, LayoutConstants.WORLD_CENTER_Y - point.y / 2)); +}; + +CoSELayout.radialLayout = function (tree, centerNode, startingPoint) { + var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION); + CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep); + var bounds = LGraph.calculateBounds(tree); + + var transform = new Transform(); + transform.setDeviceOrgX(bounds.getMinX()); + transform.setDeviceOrgY(bounds.getMinY()); + transform.setWorldOrgX(startingPoint.x); + transform.setWorldOrgY(startingPoint.y); + + for (var i = 0; i < tree.length; i++) { + var node = tree[i]; + node.transform(transform); + } + + var bottomRight = new PointD(bounds.getMaxX(), bounds.getMaxY()); + + return transform.inverseTransformPoint(bottomRight); +}; + +CoSELayout.branchRadialLayout = function (node, parentOfNode, startAngle, endAngle, distance, radialSeparation) { + // First, position this node by finding its angle. + var halfInterval = (endAngle - startAngle + 1) / 2; + + if (halfInterval < 0) { + halfInterval += 180; + } + + var nodeAngle = (halfInterval + startAngle) % 360; + var teta = nodeAngle * IGeometry.TWO_PI / 360; + + // Make polar to java cordinate conversion. + var cos_teta = Math.cos(teta); + var x_ = distance * Math.cos(teta); + var y_ = distance * Math.sin(teta); + + node.setCenter(x_, y_); + + // Traverse all neighbors of this node and recursively call this + // function. + var neighborEdges = []; + neighborEdges = neighborEdges.concat(node.getEdges()); + var childCount = neighborEdges.length; + + if (parentOfNode != null) { + childCount--; + } + + var branchCount = 0; + + var incEdgesCount = neighborEdges.length; + var startIndex; + + var edges = node.getEdgesBetween(parentOfNode); + + // If there are multiple edges, prune them until there remains only one + // edge. + while (edges.length > 1) { + //neighborEdges.remove(edges.remove(0)); + var temp = edges[0]; + edges.splice(0, 1); + var index = neighborEdges.indexOf(temp); + if (index >= 0) { + neighborEdges.splice(index, 1); + } + incEdgesCount--; + childCount--; + } + + if (parentOfNode != null) { + //assert edges.length == 1; + startIndex = (neighborEdges.indexOf(edges[0]) + 1) % incEdgesCount; + } else { + startIndex = 0; + } + + var stepAngle = Math.abs(endAngle - startAngle) / childCount; + + for (var i = startIndex; branchCount != childCount; i = ++i % incEdgesCount) { + var currentNeighbor = neighborEdges[i].getOtherEnd(node); + + // Don't back traverse to root node in current tree. + if (currentNeighbor == parentOfNode) { + continue; + } + + var childStartAngle = (startAngle + branchCount * stepAngle) % 360; + var childEndAngle = (childStartAngle + stepAngle) % 360; + + CoSELayout.branchRadialLayout(currentNeighbor, node, childStartAngle, childEndAngle, distance + radialSeparation, radialSeparation); + + branchCount++; + } +}; + +CoSELayout.maxDiagonalInTree = function (tree) { + var maxDiagonal = Integer.MIN_VALUE; + + for (var i = 0; i < tree.length; i++) { + var node = tree[i]; + var diagonal = node.getDiagonal(); + + if (diagonal > maxDiagonal) { + maxDiagonal = diagonal; + } + } + + return maxDiagonal; +}; + +CoSELayout.prototype.calcRepulsionRange = function () { + // formula is 2 x (level + 1) x idealEdgeLength + return 2 * (this.level + 1) * this.idealEdgeLength; +}; + +// Tiling methods + +// Group zero degree members whose parents are not to be tiled, create dummy parents where needed and fill memberGroups by their dummp parent id's +CoSELayout.prototype.groupZeroDegreeMembers = function () { + var self = this; + // array of [parent_id x oneDegreeNode_id] + var tempMemberGroups = {}; // A temporary map of parent node and its zero degree members + this.memberGroups = {}; // A map of dummy parent node and its zero degree members whose parents are not to be tiled + this.idToDummyNode = {}; // A map of id to dummy node + + var zeroDegree = []; // List of zero degree nodes whose parents are not to be tiled + var allNodes = this.graphManager.getAllNodes(); + + // Fill zero degree list + for (var i = 0; i < allNodes.length; i++) { + var node = allNodes[i]; + var parent = node.getParent(); + // If a node has zero degree and its parent is not to be tiled if exists add that node to zeroDegres list + if (this.getNodeDegreeWithChildren(node) === 0 && (parent.id == undefined || !this.getToBeTiled(parent))) { + zeroDegree.push(node); + } + } + + // Create a map of parent node and its zero degree members + for (var i = 0; i < zeroDegree.length; i++) { + var node = zeroDegree[i]; // Zero degree node itself + var p_id = node.getParent().id; // Parent id + + if (typeof tempMemberGroups[p_id] === "undefined") tempMemberGroups[p_id] = []; + + tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node); // Push node to the list belongs to its parent in tempMemberGroups + } + + // If there are at least two nodes at a level, create a dummy compound for them + Object.keys(tempMemberGroups).forEach(function (p_id) { + if (tempMemberGroups[p_id].length > 1) { + var dummyCompoundId = "DummyCompound_" + p_id; // The id of dummy compound which will be created soon + self.memberGroups[dummyCompoundId] = tempMemberGroups[p_id]; // Add dummy compound to memberGroups + + var parent = tempMemberGroups[p_id][0].getParent(); // The parent of zero degree nodes will be the parent of new dummy compound + + // Create a dummy compound with calculated id + var dummyCompound = new CoSENode(self.graphManager); + dummyCompound.id = dummyCompoundId; + dummyCompound.paddingLeft = parent.paddingLeft || 0; + dummyCompound.paddingRight = parent.paddingRight || 0; + dummyCompound.paddingBottom = parent.paddingBottom || 0; + dummyCompound.paddingTop = parent.paddingTop || 0; + + self.idToDummyNode[dummyCompoundId] = dummyCompound; + + var dummyParentGraph = self.getGraphManager().add(self.newGraph(), dummyCompound); + var parentGraph = parent.getChild(); + + // Add dummy compound to parent the graph + parentGraph.add(dummyCompound); + + // For each zero degree node in this level remove it from its parent graph and add it to the graph of dummy parent + for (var i = 0; i < tempMemberGroups[p_id].length; i++) { + var node = tempMemberGroups[p_id][i]; + + parentGraph.remove(node); + dummyParentGraph.add(node); + } + } + }); +}; + +CoSELayout.prototype.clearCompounds = function () { + var childGraphMap = {}; + var idToNode = {}; + + // Get compound ordering by finding the inner one first + this.performDFSOnCompounds(); + + for (var i = 0; i < this.compoundOrder.length; i++) { + + idToNode[this.compoundOrder[i].id] = this.compoundOrder[i]; + childGraphMap[this.compoundOrder[i].id] = [].concat(this.compoundOrder[i].getChild().getNodes()); + + // Remove children of compounds + this.graphManager.remove(this.compoundOrder[i].getChild()); + this.compoundOrder[i].child = null; + } + + this.graphManager.resetAllNodes(); + + // Tile the removed children + this.tileCompoundMembers(childGraphMap, idToNode); +}; + +CoSELayout.prototype.clearZeroDegreeMembers = function () { + var self = this; + var tiledZeroDegreePack = this.tiledZeroDegreePack = []; + + Object.keys(this.memberGroups).forEach(function (id) { + var compoundNode = self.idToDummyNode[id]; // Get the dummy compound + + tiledZeroDegreePack[id] = self.tileNodes(self.memberGroups[id], compoundNode.paddingLeft + compoundNode.paddingRight); + + // Set the width and height of the dummy compound as calculated + compoundNode.rect.width = tiledZeroDegreePack[id].width; + compoundNode.rect.height = tiledZeroDegreePack[id].height; + }); +}; + +CoSELayout.prototype.repopulateCompounds = function () { + for (var i = this.compoundOrder.length - 1; i >= 0; i--) { + var lCompoundNode = this.compoundOrder[i]; + var id = lCompoundNode.id; + var horizontalMargin = lCompoundNode.paddingLeft; + var verticalMargin = lCompoundNode.paddingTop; + + this.adjustLocations(this.tiledMemberPack[id], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin); + } +}; + +CoSELayout.prototype.repopulateZeroDegreeMembers = function () { + var self = this; + var tiledPack = this.tiledZeroDegreePack; + + Object.keys(tiledPack).forEach(function (id) { + var compoundNode = self.idToDummyNode[id]; // Get the dummy compound by its id + var horizontalMargin = compoundNode.paddingLeft; + var verticalMargin = compoundNode.paddingTop; + + // Adjust the positions of nodes wrt its compound + self.adjustLocations(tiledPack[id], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin); + }); +}; + +CoSELayout.prototype.getToBeTiled = function (node) { + var id = node.id; + //firstly check the previous results + if (this.toBeTiled[id] != null) { + return this.toBeTiled[id]; + } + + //only compound nodes are to be tiled + var childGraph = node.getChild(); + if (childGraph == null) { + this.toBeTiled[id] = false; + return false; + } + + var children = childGraph.getNodes(); // Get the children nodes + + //a compound node is not to be tiled if all of its compound children are not to be tiled + for (var i = 0; i < children.length; i++) { + var theChild = children[i]; + + if (this.getNodeDegree(theChild) > 0) { + this.toBeTiled[id] = false; + return false; + } + + //pass the children not having the compound structure + if (theChild.getChild() == null) { + this.toBeTiled[theChild.id] = false; + continue; + } + + if (!this.getToBeTiled(theChild)) { + this.toBeTiled[id] = false; + return false; + } + } + this.toBeTiled[id] = true; + return true; +}; + +// Get degree of a node depending of its edges and independent of its children +CoSELayout.prototype.getNodeDegree = function (node) { + var id = node.id; + var edges = node.getEdges(); + var degree = 0; + + // For the edges connected + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + if (edge.getSource().id !== edge.getTarget().id) { + degree = degree + 1; + } + } + return degree; +}; + +// Get degree of a node with its children +CoSELayout.prototype.getNodeDegreeWithChildren = function (node) { + var degree = this.getNodeDegree(node); + if (node.getChild() == null) { + return degree; + } + var children = node.getChild().getNodes(); + for (var i = 0; i < children.length; i++) { + var child = children[i]; + degree += this.getNodeDegreeWithChildren(child); + } + return degree; +}; + +CoSELayout.prototype.performDFSOnCompounds = function () { + this.compoundOrder = []; + this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes()); +}; + +CoSELayout.prototype.fillCompexOrderByDFS = function (children) { + for (var i = 0; i < children.length; i++) { + var child = children[i]; + if (child.getChild() != null) { + this.fillCompexOrderByDFS(child.getChild().getNodes()); + } + if (this.getToBeTiled(child)) { + this.compoundOrder.push(child); + } + } +}; + +/** +* This method places each zero degree member wrt given (x,y) coordinates (top left). +*/ +CoSELayout.prototype.adjustLocations = function (organization, x, y, compoundHorizontalMargin, compoundVerticalMargin) { + x += compoundHorizontalMargin; + y += compoundVerticalMargin; + + var left = x; + + for (var i = 0; i < organization.rows.length; i++) { + var row = organization.rows[i]; + x = left; + var maxHeight = 0; + + for (var j = 0; j < row.length; j++) { + var lnode = row[j]; + + lnode.rect.x = x; // + lnode.rect.width / 2; + lnode.rect.y = y; // + lnode.rect.height / 2; + + x += lnode.rect.width + organization.horizontalPadding; + + if (lnode.rect.height > maxHeight) maxHeight = lnode.rect.height; + } + + y += maxHeight + organization.verticalPadding; + } +}; + +CoSELayout.prototype.tileCompoundMembers = function (childGraphMap, idToNode) { + var self = this; + this.tiledMemberPack = []; + + Object.keys(childGraphMap).forEach(function (id) { + // Get the compound node + var compoundNode = idToNode[id]; + + self.tiledMemberPack[id] = self.tileNodes(childGraphMap[id], compoundNode.paddingLeft + compoundNode.paddingRight); + + compoundNode.rect.width = self.tiledMemberPack[id].width; + compoundNode.rect.height = self.tiledMemberPack[id].height; + }); +}; + +CoSELayout.prototype.tileNodes = function (nodes, minWidth) { + var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL; + var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL; + var organization = { + rows: [], + rowWidth: [], + rowHeight: [], + width: 0, + height: minWidth, // assume minHeight equals to minWidth + verticalPadding: verticalPadding, + horizontalPadding: horizontalPadding + }; + + // Sort the nodes in ascending order of their areas + nodes.sort(function (n1, n2) { + if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height) return -1; + if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height) return 1; + return 0; + }); + + // Create the organization -> tile members + for (var i = 0; i < nodes.length; i++) { + var lNode = nodes[i]; + + if (organization.rows.length == 0) { + this.insertNodeToRow(organization, lNode, 0, minWidth); + } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) { + this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth); + } else { + this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth); + } + + this.shiftToLastRow(organization); + } + + return organization; +}; + +CoSELayout.prototype.insertNodeToRow = function (organization, node, rowIndex, minWidth) { + var minCompoundSize = minWidth; + + // Add new row if needed + if (rowIndex == organization.rows.length) { + var secondDimension = []; + + organization.rows.push(secondDimension); + organization.rowWidth.push(minCompoundSize); + organization.rowHeight.push(0); + } + + // Update row width + var w = organization.rowWidth[rowIndex] + node.rect.width; + + if (organization.rows[rowIndex].length > 0) { + w += organization.horizontalPadding; + } + + organization.rowWidth[rowIndex] = w; + // Update compound width + if (organization.width < w) { + organization.width = w; + } + + // Update height + var h = node.rect.height; + if (rowIndex > 0) h += organization.verticalPadding; + + var extraHeight = 0; + if (h > organization.rowHeight[rowIndex]) { + extraHeight = organization.rowHeight[rowIndex]; + organization.rowHeight[rowIndex] = h; + extraHeight = organization.rowHeight[rowIndex] - extraHeight; + } + + organization.height += extraHeight; + + // Insert node + organization.rows[rowIndex].push(node); +}; + +//Scans the rows of an organization and returns the one with the min width +CoSELayout.prototype.getShortestRowIndex = function (organization) { + var r = -1; + var min = Number.MAX_VALUE; + + for (var i = 0; i < organization.rows.length; i++) { + if (organization.rowWidth[i] < min) { + r = i; + min = organization.rowWidth[i]; + } + } + return r; +}; + +//Scans the rows of an organization and returns the one with the max width +CoSELayout.prototype.getLongestRowIndex = function (organization) { + var r = -1; + var max = Number.MIN_VALUE; + + for (var i = 0; i < organization.rows.length; i++) { + + if (organization.rowWidth[i] > max) { + r = i; + max = organization.rowWidth[i]; + } + } + + return r; +}; + +/** +* This method checks whether adding extra width to the organization violates +* the aspect ratio(1) or not. +*/ +CoSELayout.prototype.canAddHorizontal = function (organization, extraWidth, extraHeight) { + + var sri = this.getShortestRowIndex(organization); + + if (sri < 0) { + return true; + } + + var min = organization.rowWidth[sri]; + + if (min + organization.horizontalPadding + extraWidth <= organization.width) return true; + + var hDiff = 0; + + // Adding to an existing row + if (organization.rowHeight[sri] < extraHeight) { + if (sri > 0) hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri]; + } + + var add_to_row_ratio; + if (organization.width - min >= extraWidth + organization.horizontalPadding) { + add_to_row_ratio = (organization.height + hDiff) / (min + extraWidth + organization.horizontalPadding); + } else { + add_to_row_ratio = (organization.height + hDiff) / organization.width; + } + + // Adding a new row for this node + hDiff = extraHeight + organization.verticalPadding; + var add_new_row_ratio; + if (organization.width < extraWidth) { + add_new_row_ratio = (organization.height + hDiff) / extraWidth; + } else { + add_new_row_ratio = (organization.height + hDiff) / organization.width; + } + + if (add_new_row_ratio < 1) add_new_row_ratio = 1 / add_new_row_ratio; + + if (add_to_row_ratio < 1) add_to_row_ratio = 1 / add_to_row_ratio; + + return add_to_row_ratio < add_new_row_ratio; +}; + +//If moving the last node from the longest row and adding it to the last +//row makes the bounding box smaller, do it. +CoSELayout.prototype.shiftToLastRow = function (organization) { + var longest = this.getLongestRowIndex(organization); + var last = organization.rowWidth.length - 1; + var row = organization.rows[longest]; + var node = row[row.length - 1]; + + var diff = node.width + organization.horizontalPadding; + + // Check if there is enough space on the last row + if (organization.width - organization.rowWidth[last] > diff && longest != last) { + // Remove the last element of the longest row + row.splice(-1, 1); + + // Push it to the last row + organization.rows[last].push(node); + + organization.rowWidth[longest] = organization.rowWidth[longest] - diff; + organization.rowWidth[last] = organization.rowWidth[last] + diff; + organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)]; + + // Update heights of the organization + var maxHeight = Number.MIN_VALUE; + for (var i = 0; i < row.length; i++) { + if (row[i].height > maxHeight) maxHeight = row[i].height; + } + if (longest > 0) maxHeight += organization.verticalPadding; + + var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last]; + + organization.rowHeight[longest] = maxHeight; + if (organization.rowHeight[last] < node.height + organization.verticalPadding) organization.rowHeight[last] = node.height + organization.verticalPadding; + + var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last]; + organization.height += finalTotal - prevTotal; + + this.shiftToLastRow(organization); + } +}; + +CoSELayout.prototype.tilingPreLayout = function () { + if (CoSEConstants.TILE) { + // Find zero degree nodes and create a compound for each level + this.groupZeroDegreeMembers(); + // Tile and clear children of each compound + this.clearCompounds(); + // Separately tile and clear zero degree nodes for each level + this.clearZeroDegreeMembers(); + } +}; + +CoSELayout.prototype.tilingPostLayout = function () { + if (CoSEConstants.TILE) { + this.repopulateZeroDegreeMembers(); + this.repopulateCompounds(); + } +}; + +// ----------------------------------------------------------------------------- +// Section: Tree Reduction methods +// ----------------------------------------------------------------------------- +// Reduce trees +CoSELayout.prototype.reduceTrees = function () { + var prunedNodesAll = []; + var containsLeaf = true; + var node; + + while (containsLeaf) { + var allNodes = this.graphManager.getAllNodes(); + var prunedNodesInStepTemp = []; + containsLeaf = false; + + for (var i = 0; i < allNodes.length; i++) { + node = allNodes[i]; + if (node.getEdges().length == 1 && !node.getEdges()[0].isInterGraph && node.getChild() == null) { + prunedNodesInStepTemp.push([node, node.getEdges()[0], node.getOwner()]); + containsLeaf = true; + } + } + if (containsLeaf == true) { + var prunedNodesInStep = []; + for (var j = 0; j < prunedNodesInStepTemp.length; j++) { + if (prunedNodesInStepTemp[j][0].getEdges().length == 1) { + prunedNodesInStep.push(prunedNodesInStepTemp[j]); + prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]); + } + } + prunedNodesAll.push(prunedNodesInStep); + this.graphManager.resetAllNodes(); + this.graphManager.resetAllEdges(); + } + } + this.prunedNodesAll = prunedNodesAll; +}; + +// Grow tree one step +CoSELayout.prototype.growTree = function (prunedNodesAll) { + var lengthOfPrunedNodesInStep = prunedNodesAll.length; + var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1]; + + var nodeData; + for (var i = 0; i < prunedNodesInStep.length; i++) { + nodeData = prunedNodesInStep[i]; + + this.findPlaceforPrunedNode(nodeData); + + nodeData[2].add(nodeData[0]); + nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target); + } + + prunedNodesAll.splice(prunedNodesAll.length - 1, 1); + this.graphManager.resetAllNodes(); + this.graphManager.resetAllEdges(); +}; + +// Find an appropriate position to replace pruned node, this method can be improved +CoSELayout.prototype.findPlaceforPrunedNode = function (nodeData) { + + var gridForPrunedNode; + var nodeToConnect; + var prunedNode = nodeData[0]; + if (prunedNode == nodeData[1].source) { + nodeToConnect = nodeData[1].target; + } else { + nodeToConnect = nodeData[1].source; + } + var startGridX = nodeToConnect.startX; + var finishGridX = nodeToConnect.finishX; + var startGridY = nodeToConnect.startY; + var finishGridY = nodeToConnect.finishY; + + var upNodeCount = 0; + var downNodeCount = 0; + var rightNodeCount = 0; + var leftNodeCount = 0; + var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount]; + + if (startGridY > 0) { + for (var i = startGridX; i <= finishGridX; i++) { + controlRegions[0] += this.grid[i][startGridY - 1].length + this.grid[i][startGridY].length - 1; + } + } + if (finishGridX < this.grid.length - 1) { + for (var i = startGridY; i <= finishGridY; i++) { + controlRegions[1] += this.grid[finishGridX + 1][i].length + this.grid[finishGridX][i].length - 1; + } + } + if (finishGridY < this.grid[0].length - 1) { + for (var i = startGridX; i <= finishGridX; i++) { + controlRegions[2] += this.grid[i][finishGridY + 1].length + this.grid[i][finishGridY].length - 1; + } + } + if (startGridX > 0) { + for (var i = startGridY; i <= finishGridY; i++) { + controlRegions[3] += this.grid[startGridX - 1][i].length + this.grid[startGridX][i].length - 1; + } + } + var min = Integer.MAX_VALUE; + var minCount; + var minIndex; + for (var j = 0; j < controlRegions.length; j++) { + if (controlRegions[j] < min) { + min = controlRegions[j]; + minCount = 1; + minIndex = j; + } else if (controlRegions[j] == min) { + minCount++; + } + } + + if (minCount == 3 && min == 0) { + if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) { + gridForPrunedNode = 1; + } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) { + gridForPrunedNode = 0; + } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) { + gridForPrunedNode = 3; + } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) { + gridForPrunedNode = 2; + } + } else if (minCount == 2 && min == 0) { + var random = Math.floor(Math.random() * 2); + if (controlRegions[0] == 0 && controlRegions[1] == 0) { + ; + if (random == 0) { + gridForPrunedNode = 0; + } else { + gridForPrunedNode = 1; + } + } else if (controlRegions[0] == 0 && controlRegions[2] == 0) { + if (random == 0) { + gridForPrunedNode = 0; + } else { + gridForPrunedNode = 2; + } + } else if (controlRegions[0] == 0 && controlRegions[3] == 0) { + if (random == 0) { + gridForPrunedNode = 0; + } else { + gridForPrunedNode = 3; + } + } else if (controlRegions[1] == 0 && controlRegions[2] == 0) { + if (random == 0) { + gridForPrunedNode = 1; + } else { + gridForPrunedNode = 2; + } + } else if (controlRegions[1] == 0 && controlRegions[3] == 0) { + if (random == 0) { + gridForPrunedNode = 1; + } else { + gridForPrunedNode = 3; + } + } else { + if (random == 0) { + gridForPrunedNode = 2; + } else { + gridForPrunedNode = 3; + } + } + } else if (minCount == 4 && min == 0) { + var random = Math.floor(Math.random() * 4); + gridForPrunedNode = random; + } else { + gridForPrunedNode = minIndex; + } + + if (gridForPrunedNode == 0) { + prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2); + } else if (gridForPrunedNode == 1) { + prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY()); + } else if (gridForPrunedNode == 2) { + prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2); + } else { + prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY()); + } +}; + +module.exports = CoSELayout; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __nested_webpack_require_45620__) { + +"use strict"; + + +var coseBase = {}; + +coseBase.layoutBase = __nested_webpack_require_45620__(0); +coseBase.CoSEConstants = __nested_webpack_require_45620__(1); +coseBase.CoSEEdge = __nested_webpack_require_45620__(2); +coseBase.CoSEGraph = __nested_webpack_require_45620__(3); +coseBase.CoSEGraphManager = __nested_webpack_require_45620__(4); +coseBase.CoSELayout = __nested_webpack_require_45620__(6); +coseBase.CoSENode = __nested_webpack_require_45620__(5); + +module.exports = coseBase; + +/***/ }) +/******/ ]); +}); + +/***/ }), + +/***/ 14607: +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(__webpack_require__(84182)); + else {} +})(this, function(__WEBPACK_EXTERNAL_MODULE_0__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __nested_webpack_require_659__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_659__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __nested_webpack_require_659__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __nested_webpack_require_659__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __nested_webpack_require_659__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __nested_webpack_require_659__.d = function(exports, name, getter) { +/******/ if(!__nested_webpack_require_659__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __nested_webpack_require_659__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __nested_webpack_require_659__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __nested_webpack_require_659__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __nested_webpack_require_659__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __nested_webpack_require_659__(__nested_webpack_require_659__.s = 1); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_0__; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __nested_webpack_require_3201__) { + +"use strict"; + + +var LayoutConstants = __nested_webpack_require_3201__(0).layoutBase.LayoutConstants; +var FDLayoutConstants = __nested_webpack_require_3201__(0).layoutBase.FDLayoutConstants; +var CoSEConstants = __nested_webpack_require_3201__(0).CoSEConstants; +var CoSELayout = __nested_webpack_require_3201__(0).CoSELayout; +var CoSENode = __nested_webpack_require_3201__(0).CoSENode; +var PointD = __nested_webpack_require_3201__(0).layoutBase.PointD; +var DimensionD = __nested_webpack_require_3201__(0).layoutBase.DimensionD; + +var defaults = { + // Called on `layoutready` + ready: function ready() {}, + // Called on `layoutstop` + stop: function stop() {}, + // 'draft', 'default' or 'proof" + // - 'draft' fast cooling rate + // - 'default' moderate cooling rate + // - "proof" slow cooling rate + quality: 'default', + // include labels in node dimensions + nodeDimensionsIncludeLabels: false, + // number of ticks per frame; higher is faster but more jerky + refresh: 30, + // Whether to fit the network view after when done + fit: true, + // Padding on fit + padding: 10, + // Whether to enable incremental mode + randomize: true, + // Node repulsion (non overlapping) multiplier + nodeRepulsion: 4500, + // Ideal edge (non nested) length + idealEdgeLength: 50, + // Divisor to compute edge forces + edgeElasticity: 0.45, + // Nesting factor (multiplier) to compute ideal edge length for nested edges + nestingFactor: 0.1, + // Gravity force (constant) + gravity: 0.25, + // Maximum number of iterations to perform + numIter: 2500, + // For enabling tiling + tile: true, + // Type of layout animation. The option set is {'during', 'end', false} + animate: 'end', + // Duration for animate:end + animationDuration: 500, + // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function) + tilingPaddingVertical: 10, + // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function) + tilingPaddingHorizontal: 10, + // Gravity range (constant) for compounds + gravityRangeCompound: 1.5, + // Gravity force (constant) for compounds + gravityCompound: 1.0, + // Gravity range (constant) + gravityRange: 3.8, + // Initial cooling factor for incremental layout + initialEnergyOnIncremental: 0.5 +}; + +function extend(defaults, options) { + var obj = {}; + + for (var i in defaults) { + obj[i] = defaults[i]; + } + + for (var i in options) { + obj[i] = options[i]; + } + + return obj; +}; + +function _CoSELayout(_options) { + this.options = extend(defaults, _options); + getUserOptions(this.options); +} + +var getUserOptions = function getUserOptions(options) { + if (options.nodeRepulsion != null) CoSEConstants.DEFAULT_REPULSION_STRENGTH = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = options.nodeRepulsion; + if (options.idealEdgeLength != null) CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options.idealEdgeLength; + if (options.edgeElasticity != null) CoSEConstants.DEFAULT_SPRING_STRENGTH = FDLayoutConstants.DEFAULT_SPRING_STRENGTH = options.edgeElasticity; + if (options.nestingFactor != null) CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options.nestingFactor; + if (options.gravity != null) CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options.gravity; + if (options.numIter != null) CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options.numIter; + if (options.gravityRange != null) CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options.gravityRange; + if (options.gravityCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options.gravityCompound; + if (options.gravityRangeCompound != null) CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options.gravityRangeCompound; + if (options.initialEnergyOnIncremental != null) CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options.initialEnergyOnIncremental; + + if (options.quality == 'draft') LayoutConstants.QUALITY = 0;else if (options.quality == 'proof') LayoutConstants.QUALITY = 2;else LayoutConstants.QUALITY = 1; + + CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options.nodeDimensionsIncludeLabels; + CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options.randomize; + CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options.animate; + CoSEConstants.TILE = options.tile; + CoSEConstants.TILING_PADDING_VERTICAL = typeof options.tilingPaddingVertical === 'function' ? options.tilingPaddingVertical.call() : options.tilingPaddingVertical; + CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options.tilingPaddingHorizontal === 'function' ? options.tilingPaddingHorizontal.call() : options.tilingPaddingHorizontal; +}; + +_CoSELayout.prototype.run = function () { + var ready; + var frameId; + var options = this.options; + var idToLNode = this.idToLNode = {}; + var layout = this.layout = new CoSELayout(); + var self = this; + + self.stopped = false; + + this.cy = this.options.cy; + + this.cy.trigger({ type: 'layoutstart', layout: this }); + + var gm = layout.newGraphManager(); + this.gm = gm; + + var nodes = this.options.eles.nodes(); + var edges = this.options.eles.edges(); + + this.root = gm.addRoot(); + this.processChildrenList(this.root, this.getTopMostNodes(nodes), layout); + + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + var sourceNode = this.idToLNode[edge.data("source")]; + var targetNode = this.idToLNode[edge.data("target")]; + if (sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) { + var e1 = gm.add(layout.newEdge(), sourceNode, targetNode); + e1.id = edge.id(); + } + } + + var getPositions = function getPositions(ele, i) { + if (typeof ele === "number") { + ele = i; + } + var theId = ele.data('id'); + var lNode = self.idToLNode[theId]; + + return { + x: lNode.getRect().getCenterX(), + y: lNode.getRect().getCenterY() + }; + }; + + /* + * Reposition nodes in iterations animatedly + */ + var iterateAnimated = function iterateAnimated() { + // Thigs to perform after nodes are repositioned on screen + var afterReposition = function afterReposition() { + if (options.fit) { + options.cy.fit(options.eles, options.padding); + } + + if (!ready) { + ready = true; + self.cy.one('layoutready', options.ready); + self.cy.trigger({ type: 'layoutready', layout: self }); + } + }; + + var ticksPerFrame = self.options.refresh; + var isDone; + + for (var i = 0; i < ticksPerFrame && !isDone; i++) { + isDone = self.stopped || self.layout.tick(); + } + + // If layout is done + if (isDone) { + // If the layout is not a sublayout and it is successful perform post layout. + if (layout.checkLayoutSuccess() && !layout.isSubLayout) { + layout.doPostLayout(); + } + + // If layout has a tilingPostLayout function property call it. + if (layout.tilingPostLayout) { + layout.tilingPostLayout(); + } + + layout.isLayoutFinished = true; + + self.options.eles.nodes().positions(getPositions); + + afterReposition(); + + // trigger layoutstop when the layout stops (e.g. finishes) + self.cy.one('layoutstop', self.options.stop); + self.cy.trigger({ type: 'layoutstop', layout: self }); + + if (frameId) { + cancelAnimationFrame(frameId); + } + + ready = false; + return; + } + + var animationData = self.layout.getPositionsData(); // Get positions of layout nodes note that all nodes may not be layout nodes because of tiling + + // Position nodes, for the nodes whose id does not included in data (because they are removed from their parents and included in dummy compounds) + // use position of their ancestors or dummy ancestors + options.eles.nodes().positions(function (ele, i) { + if (typeof ele === "number") { + ele = i; + } + // If ele is a compound node, then its position will be defined by its children + if (!ele.isParent()) { + var theId = ele.id(); + var pNode = animationData[theId]; + var temp = ele; + // If pNode is undefined search until finding position data of its first ancestor (It may be dummy as well) + while (pNode == null) { + pNode = animationData[temp.data('parent')] || animationData['DummyCompound_' + temp.data('parent')]; + animationData[theId] = pNode; + temp = temp.parent()[0]; + if (temp == undefined) { + break; + } + } + if (pNode != null) { + return { + x: pNode.x, + y: pNode.y + }; + } else { + return { + x: ele.position('x'), + y: ele.position('y') + }; + } + } + }); + + afterReposition(); + + frameId = requestAnimationFrame(iterateAnimated); + }; + + /* + * Listen 'layoutstarted' event and start animated iteration if animate option is 'during' + */ + layout.addListener('layoutstarted', function () { + if (self.options.animate === 'during') { + frameId = requestAnimationFrame(iterateAnimated); + } + }); + + layout.runLayout(); // Run cose layout + + /* + * If animate option is not 'during' ('end' or false) perform these here (If it is 'during' similar things are already performed) + */ + if (this.options.animate !== "during") { + self.options.eles.nodes().not(":parent").layoutPositions(self, self.options, getPositions); // Use layout positions to reposition the nodes it considers the options parameter + ready = false; + } + + return this; // chaining +}; + +//Get the top most ones of a list of nodes +_CoSELayout.prototype.getTopMostNodes = function (nodes) { + var nodesMap = {}; + for (var i = 0; i < nodes.length; i++) { + nodesMap[nodes[i].id()] = true; + } + var roots = nodes.filter(function (ele, i) { + if (typeof ele === "number") { + ele = i; + } + var parent = ele.parent()[0]; + while (parent != null) { + if (nodesMap[parent.id()]) { + return false; + } + parent = parent.parent()[0]; + } + return true; + }); + + return roots; +}; + +_CoSELayout.prototype.processChildrenList = function (parent, children, layout) { + var size = children.length; + for (var i = 0; i < size; i++) { + var theChild = children[i]; + var children_of_children = theChild.children(); + var theNode; + + var dimensions = theChild.layoutDimensions({ + nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels + }); + + if (theChild.outerWidth() != null && theChild.outerHeight() != null) { + theNode = parent.add(new CoSENode(layout.graphManager, new PointD(theChild.position('x') - dimensions.w / 2, theChild.position('y') - dimensions.h / 2), new DimensionD(parseFloat(dimensions.w), parseFloat(dimensions.h)))); + } else { + theNode = parent.add(new CoSENode(this.graphManager)); + } + // Attach id to the layout node + theNode.id = theChild.data("id"); + // Attach the paddings of cy node to layout node + theNode.paddingLeft = parseInt(theChild.css('padding')); + theNode.paddingTop = parseInt(theChild.css('padding')); + theNode.paddingRight = parseInt(theChild.css('padding')); + theNode.paddingBottom = parseInt(theChild.css('padding')); + + //Attach the label properties to compound if labels will be included in node dimensions + if (this.options.nodeDimensionsIncludeLabels) { + if (theChild.isParent()) { + var labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false }).w; + var labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false }).h; + var labelPos = theChild.css("text-halign"); + theNode.labelWidth = labelWidth; + theNode.labelHeight = labelHeight; + theNode.labelPos = labelPos; + } + } + + // Map the layout node + this.idToLNode[theChild.data("id")] = theNode; + + if (isNaN(theNode.rect.x)) { + theNode.rect.x = 0; + } + + if (isNaN(theNode.rect.y)) { + theNode.rect.y = 0; + } + + if (children_of_children != null && children_of_children.length > 0) { + var theNewGraph; + theNewGraph = layout.getGraphManager().add(layout.newGraph(), theNode); + this.processChildrenList(theNewGraph, children_of_children, layout); + } + } +}; + +/** + * @brief : called on continuous layouts to stop them before they finish + */ +_CoSELayout.prototype.stop = function () { + this.stopped = true; + + return this; // chaining +}; + +var register = function register(cytoscape) { + // var Layout = getLayout( cytoscape ); + + cytoscape('layout', 'cose-bilkent', _CoSELayout); +}; + +// auto reg for globals +if (typeof cytoscape !== 'undefined') { + register(cytoscape); +} + +module.exports = register; + +/***/ }) +/******/ ]); +}); + +/***/ }), + +/***/ 71377: +/***/ (function(module) { + +/** + * Copyright (c) 2016-2023, The Cytoscape Consortium. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the “Software”), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +(function (global, factory) { + true ? module.exports = factory() : + 0; +})(this, (function () { 'use strict'; + + function _typeof(obj) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + + function _defineProperty$1(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; + } + + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + + var _s, _e; + + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; + } + + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; + } + + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var _window = typeof window === 'undefined' ? null : window; // eslint-disable-line no-undef + + var navigator = _window ? _window.navigator : null; + _window ? _window.document : null; + + var typeofstr = _typeof(''); + + var typeofobj = _typeof({}); + + var typeoffn = _typeof(function () {}); + + var typeofhtmlele = typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement); + + var instanceStr = function instanceStr(obj) { + return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null; + }; + + var string = function string(obj) { + return obj != null && _typeof(obj) == typeofstr; + }; + var fn$6 = function fn(obj) { + return obj != null && _typeof(obj) === typeoffn; + }; + var array = function array(obj) { + return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array); + }; + var plainObject = function plainObject(obj) { + return obj != null && _typeof(obj) === typeofobj && !array(obj) && obj.constructor === Object; + }; + var object = function object(obj) { + return obj != null && _typeof(obj) === typeofobj; + }; + var number$1 = function number(obj) { + return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj); + }; + var integer = function integer(obj) { + return number$1(obj) && Math.floor(obj) === obj; + }; + var htmlElement = function htmlElement(obj) { + if ('undefined' === typeofhtmlele) { + return undefined; + } else { + return null != obj && obj instanceof HTMLElement; + } + }; + var elementOrCollection = function elementOrCollection(obj) { + return element(obj) || collection(obj); + }; + var element = function element(obj) { + return instanceStr(obj) === 'collection' && obj._private.single; + }; + var collection = function collection(obj) { + return instanceStr(obj) === 'collection' && !obj._private.single; + }; + var core = function core(obj) { + return instanceStr(obj) === 'core'; + }; + var stylesheet = function stylesheet(obj) { + return instanceStr(obj) === 'stylesheet'; + }; + var event = function event(obj) { + return instanceStr(obj) === 'event'; + }; + var emptyString = function emptyString(obj) { + if (obj === undefined || obj === null) { + // null is empty + return true; + } else if (obj === '' || obj.match(/^\s+$/)) { + return true; // empty string is empty + } + + return false; // otherwise, we don't know what we've got + }; + var domElement = function domElement(obj) { + if (typeof HTMLElement === 'undefined') { + return false; // we're not in a browser so it doesn't matter + } else { + return obj instanceof HTMLElement; + } + }; + var boundingBox = function boundingBox(obj) { + return plainObject(obj) && number$1(obj.x1) && number$1(obj.x2) && number$1(obj.y1) && number$1(obj.y2); + }; + var promise = function promise(obj) { + return object(obj) && fn$6(obj.then); + }; + var ms = function ms() { + return navigator && navigator.userAgent.match(/msie|trident|edge/i); + }; // probably a better way to detect this... + + var memoize$1 = function memoize(fn, keyFn) { + if (!keyFn) { + keyFn = function keyFn() { + if (arguments.length === 1) { + return arguments[0]; + } else if (arguments.length === 0) { + return 'undefined'; + } + + var args = []; + + for (var i = 0; i < arguments.length; i++) { + args.push(arguments[i]); + } + + return args.join('$'); + }; + } + + var memoizedFn = function memoizedFn() { + var self = this; + var args = arguments; + var ret; + var k = keyFn.apply(self, args); + var cache = memoizedFn.cache; + + if (!(ret = cache[k])) { + ret = cache[k] = fn.apply(self, args); + } + + return ret; + }; + + memoizedFn.cache = {}; + return memoizedFn; + }; + + var camel2dash = memoize$1(function (str) { + return str.replace(/([A-Z])/g, function (v) { + return '-' + v.toLowerCase(); + }); + }); + var dash2camel = memoize$1(function (str) { + return str.replace(/(-\w)/g, function (v) { + return v[1].toUpperCase(); + }); + }); + var prependCamel = memoize$1(function (prefix, str) { + return prefix + str[0].toUpperCase() + str.substring(1); + }, function (prefix, str) { + return prefix + '$' + str; + }); + var capitalize = function capitalize(str) { + if (emptyString(str)) { + return str; + } + + return str.charAt(0).toUpperCase() + str.substring(1); + }; + + var number = '(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))'; + var rgba = 'rgb[a]?\\((' + number + '[%]?)\\s*,\\s*(' + number + '[%]?)\\s*,\\s*(' + number + '[%]?)(?:\\s*,\\s*(' + number + '))?\\)'; + var rgbaNoBackRefs = 'rgb[a]?\\((?:' + number + '[%]?)\\s*,\\s*(?:' + number + '[%]?)\\s*,\\s*(?:' + number + '[%]?)(?:\\s*,\\s*(?:' + number + '))?\\)'; + var hsla = 'hsl[a]?\\((' + number + ')\\s*,\\s*(' + number + '[%])\\s*,\\s*(' + number + '[%])(?:\\s*,\\s*(' + number + '))?\\)'; + var hslaNoBackRefs = 'hsl[a]?\\((?:' + number + ')\\s*,\\s*(?:' + number + '[%])\\s*,\\s*(?:' + number + '[%])(?:\\s*,\\s*(?:' + number + '))?\\)'; + var hex3 = '\\#[0-9a-fA-F]{3}'; + var hex6 = '\\#[0-9a-fA-F]{6}'; + + var ascending = function ascending(a, b) { + if (a < b) { + return -1; + } else if (a > b) { + return 1; + } else { + return 0; + } + }; + var descending = function descending(a, b) { + return -1 * ascending(a, b); + }; + + var extend = Object.assign != null ? Object.assign.bind(Object) : function (tgt) { + var args = arguments; + + for (var i = 1; i < args.length; i++) { + var obj = args[i]; + + if (obj == null) { + continue; + } + + var keys = Object.keys(obj); + + for (var j = 0; j < keys.length; j++) { + var k = keys[j]; + tgt[k] = obj[k]; + } + } + + return tgt; + }; + + var hex2tuple = function hex2tuple(hex) { + if (!(hex.length === 4 || hex.length === 7) || hex[0] !== '#') { + return; + } + + var shortHex = hex.length === 4; + var r, g, b; + var base = 16; + + if (shortHex) { + r = parseInt(hex[1] + hex[1], base); + g = parseInt(hex[2] + hex[2], base); + b = parseInt(hex[3] + hex[3], base); + } else { + r = parseInt(hex[1] + hex[2], base); + g = parseInt(hex[3] + hex[4], base); + b = parseInt(hex[5] + hex[6], base); + } + + return [r, g, b]; + }; // get [r, g, b, a] from hsl(0, 0, 0) or hsla(0, 0, 0, 0) + + var hsl2tuple = function hsl2tuple(hsl) { + var ret; + var h, s, l, a, r, g, b; + + function hue2rgb(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + } + + var m = new RegExp('^' + hsla + '$').exec(hsl); + + if (m) { + // get hue + h = parseInt(m[1]); + + if (h < 0) { + h = (360 - -1 * h % 360) % 360; + } else if (h > 360) { + h = h % 360; + } + + h /= 360; // normalise on [0, 1] + + s = parseFloat(m[2]); + + if (s < 0 || s > 100) { + return; + } // saturation is [0, 100] + + + s = s / 100; // normalise on [0, 1] + + l = parseFloat(m[3]); + + if (l < 0 || l > 100) { + return; + } // lightness is [0, 100] + + + l = l / 100; // normalise on [0, 1] + + a = m[4]; + + if (a !== undefined) { + a = parseFloat(a); + + if (a < 0 || a > 1) { + return; + } // alpha is [0, 1] + + } // now, convert to rgb + // code from http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript + + + if (s === 0) { + r = g = b = Math.round(l * 255); // achromatic + } else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = Math.round(255 * hue2rgb(p, q, h + 1 / 3)); + g = Math.round(255 * hue2rgb(p, q, h)); + b = Math.round(255 * hue2rgb(p, q, h - 1 / 3)); + } + + ret = [r, g, b, a]; + } + + return ret; + }; // get [r, g, b, a] from rgb(0, 0, 0) or rgba(0, 0, 0, 0) + + var rgb2tuple = function rgb2tuple(rgb) { + var ret; + var m = new RegExp('^' + rgba + '$').exec(rgb); + + if (m) { + ret = []; + var isPct = []; + + for (var i = 1; i <= 3; i++) { + var channel = m[i]; + + if (channel[channel.length - 1] === '%') { + isPct[i] = true; + } + + channel = parseFloat(channel); + + if (isPct[i]) { + channel = channel / 100 * 255; // normalise to [0, 255] + } + + if (channel < 0 || channel > 255) { + return; + } // invalid channel value + + + ret.push(Math.floor(channel)); + } + + var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3]; + var allArePct = isPct[1] && isPct[2] && isPct[3]; + + if (atLeastOneIsPct && !allArePct) { + return; + } // must all be percent values if one is + + + var alpha = m[4]; + + if (alpha !== undefined) { + alpha = parseFloat(alpha); + + if (alpha < 0 || alpha > 1) { + return; + } // invalid alpha value + + + ret.push(alpha); + } + } + + return ret; + }; + var colorname2tuple = function colorname2tuple(color) { + return colors[color.toLowerCase()]; + }; + var color2tuple = function color2tuple(color) { + return (array(color) ? color : null) || colorname2tuple(color) || hex2tuple(color) || rgb2tuple(color) || hsl2tuple(color); + }; + var colors = { + // special colour names + transparent: [0, 0, 0, 0], + // NB alpha === 0 + // regular colours + aliceblue: [240, 248, 255], + antiquewhite: [250, 235, 215], + aqua: [0, 255, 255], + aquamarine: [127, 255, 212], + azure: [240, 255, 255], + beige: [245, 245, 220], + bisque: [255, 228, 196], + black: [0, 0, 0], + blanchedalmond: [255, 235, 205], + blue: [0, 0, 255], + blueviolet: [138, 43, 226], + brown: [165, 42, 42], + burlywood: [222, 184, 135], + cadetblue: [95, 158, 160], + chartreuse: [127, 255, 0], + chocolate: [210, 105, 30], + coral: [255, 127, 80], + cornflowerblue: [100, 149, 237], + cornsilk: [255, 248, 220], + crimson: [220, 20, 60], + cyan: [0, 255, 255], + darkblue: [0, 0, 139], + darkcyan: [0, 139, 139], + darkgoldenrod: [184, 134, 11], + darkgray: [169, 169, 169], + darkgreen: [0, 100, 0], + darkgrey: [169, 169, 169], + darkkhaki: [189, 183, 107], + darkmagenta: [139, 0, 139], + darkolivegreen: [85, 107, 47], + darkorange: [255, 140, 0], + darkorchid: [153, 50, 204], + darkred: [139, 0, 0], + darksalmon: [233, 150, 122], + darkseagreen: [143, 188, 143], + darkslateblue: [72, 61, 139], + darkslategray: [47, 79, 79], + darkslategrey: [47, 79, 79], + darkturquoise: [0, 206, 209], + darkviolet: [148, 0, 211], + deeppink: [255, 20, 147], + deepskyblue: [0, 191, 255], + dimgray: [105, 105, 105], + dimgrey: [105, 105, 105], + dodgerblue: [30, 144, 255], + firebrick: [178, 34, 34], + floralwhite: [255, 250, 240], + forestgreen: [34, 139, 34], + fuchsia: [255, 0, 255], + gainsboro: [220, 220, 220], + ghostwhite: [248, 248, 255], + gold: [255, 215, 0], + goldenrod: [218, 165, 32], + gray: [128, 128, 128], + grey: [128, 128, 128], + green: [0, 128, 0], + greenyellow: [173, 255, 47], + honeydew: [240, 255, 240], + hotpink: [255, 105, 180], + indianred: [205, 92, 92], + indigo: [75, 0, 130], + ivory: [255, 255, 240], + khaki: [240, 230, 140], + lavender: [230, 230, 250], + lavenderblush: [255, 240, 245], + lawngreen: [124, 252, 0], + lemonchiffon: [255, 250, 205], + lightblue: [173, 216, 230], + lightcoral: [240, 128, 128], + lightcyan: [224, 255, 255], + lightgoldenrodyellow: [250, 250, 210], + lightgray: [211, 211, 211], + lightgreen: [144, 238, 144], + lightgrey: [211, 211, 211], + lightpink: [255, 182, 193], + lightsalmon: [255, 160, 122], + lightseagreen: [32, 178, 170], + lightskyblue: [135, 206, 250], + lightslategray: [119, 136, 153], + lightslategrey: [119, 136, 153], + lightsteelblue: [176, 196, 222], + lightyellow: [255, 255, 224], + lime: [0, 255, 0], + limegreen: [50, 205, 50], + linen: [250, 240, 230], + magenta: [255, 0, 255], + maroon: [128, 0, 0], + mediumaquamarine: [102, 205, 170], + mediumblue: [0, 0, 205], + mediumorchid: [186, 85, 211], + mediumpurple: [147, 112, 219], + mediumseagreen: [60, 179, 113], + mediumslateblue: [123, 104, 238], + mediumspringgreen: [0, 250, 154], + mediumturquoise: [72, 209, 204], + mediumvioletred: [199, 21, 133], + midnightblue: [25, 25, 112], + mintcream: [245, 255, 250], + mistyrose: [255, 228, 225], + moccasin: [255, 228, 181], + navajowhite: [255, 222, 173], + navy: [0, 0, 128], + oldlace: [253, 245, 230], + olive: [128, 128, 0], + olivedrab: [107, 142, 35], + orange: [255, 165, 0], + orangered: [255, 69, 0], + orchid: [218, 112, 214], + palegoldenrod: [238, 232, 170], + palegreen: [152, 251, 152], + paleturquoise: [175, 238, 238], + palevioletred: [219, 112, 147], + papayawhip: [255, 239, 213], + peachpuff: [255, 218, 185], + peru: [205, 133, 63], + pink: [255, 192, 203], + plum: [221, 160, 221], + powderblue: [176, 224, 230], + purple: [128, 0, 128], + red: [255, 0, 0], + rosybrown: [188, 143, 143], + royalblue: [65, 105, 225], + saddlebrown: [139, 69, 19], + salmon: [250, 128, 114], + sandybrown: [244, 164, 96], + seagreen: [46, 139, 87], + seashell: [255, 245, 238], + sienna: [160, 82, 45], + silver: [192, 192, 192], + skyblue: [135, 206, 235], + slateblue: [106, 90, 205], + slategray: [112, 128, 144], + slategrey: [112, 128, 144], + snow: [255, 250, 250], + springgreen: [0, 255, 127], + steelblue: [70, 130, 180], + tan: [210, 180, 140], + teal: [0, 128, 128], + thistle: [216, 191, 216], + tomato: [255, 99, 71], + turquoise: [64, 224, 208], + violet: [238, 130, 238], + wheat: [245, 222, 179], + white: [255, 255, 255], + whitesmoke: [245, 245, 245], + yellow: [255, 255, 0], + yellowgreen: [154, 205, 50] + }; + + var setMap = function setMap(options) { + var obj = options.map; + var keys = options.keys; + var l = keys.length; + + for (var i = 0; i < l; i++) { + var key = keys[i]; + + if (plainObject(key)) { + throw Error('Tried to set map with object key'); + } + + if (i < keys.length - 1) { + // extend the map if necessary + if (obj[key] == null) { + obj[key] = {}; + } + + obj = obj[key]; + } else { + // set the value + obj[key] = options.value; + } + } + }; // gets the value in a map even if it's not built in places + + var getMap = function getMap(options) { + var obj = options.map; + var keys = options.keys; + var l = keys.length; + + for (var i = 0; i < l; i++) { + var key = keys[i]; + + if (plainObject(key)) { + throw Error('Tried to get map with object key'); + } + + obj = obj[key]; + + if (obj == null) { + return obj; + } + } + + return obj; + }; // deletes the entry in the map + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } + + var isObject_1 = isObject; + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + /** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal; + + var _freeGlobal = freeGlobal; + + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + + /** Used as a reference to the global object. */ + var root = _freeGlobal || freeSelf || Function('return this')(); + + var _root = root; + + /** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ + var now = function() { + return _root.Date.now(); + }; + + var now_1 = now; + + /** Used to match a single whitespace character. */ + var reWhitespace = /\s/; + + /** + * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace + * character of `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the index of the last non-whitespace character. + */ + function trimmedEndIndex(string) { + var index = string.length; + + while (index-- && reWhitespace.test(string.charAt(index))) {} + return index; + } + + var _trimmedEndIndex = trimmedEndIndex; + + /** Used to match leading whitespace. */ + var reTrimStart = /^\s+/; + + /** + * The base implementation of `_.trim`. + * + * @private + * @param {string} string The string to trim. + * @returns {string} Returns the trimmed string. + */ + function baseTrim(string) { + return string + ? string.slice(0, _trimmedEndIndex(string) + 1).replace(reTrimStart, '') + : string; + } + + var _baseTrim = baseTrim; + + /** Built-in value references. */ + var Symbol$1 = _root.Symbol; + + var _Symbol = Symbol$1; + + /** Used for built-in method references. */ + var objectProto$5 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$4 = objectProto$5.hasOwnProperty; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString$1 = objectProto$5.toString; + + /** Built-in value references. */ + var symToStringTag$1 = _Symbol ? _Symbol.toStringTag : undefined; + + /** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag(value) { + var isOwn = hasOwnProperty$4.call(value, symToStringTag$1), + tag = value[symToStringTag$1]; + + try { + value[symToStringTag$1] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString$1.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag$1] = tag; + } else { + delete value[symToStringTag$1]; + } + } + return result; + } + + var _getRawTag = getRawTag; + + /** Used for built-in method references. */ + var objectProto$4 = Object.prototype; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto$4.toString; + + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString(value) { + return nativeObjectToString.call(value); + } + + var _objectToString = objectToString; + + /** `Object#toString` result references. */ + var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + + /** Built-in value references. */ + var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined; + + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? _getRawTag(value) + : _objectToString(value); + } + + var _baseGetTag = baseGetTag; + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == 'object'; + } + + var isObjectLike_1 = isObjectLike; + + /** `Object#toString` result references. */ + var symbolTag = '[object Symbol]'; + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike_1(value) && _baseGetTag(value) == symbolTag); + } + + var isSymbol_1 = isSymbol; + + /** Used as references for various `Number` constants. */ + var NAN = 0 / 0; + + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + + /** Built-in method references without a dependency on `root`. */ + var freeParseInt = parseInt; + + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol_1(value)) { + return NAN; + } + if (isObject_1(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject_1(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = _baseTrim(value); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); + } + + var toNumber_1 = toNumber; + + /** Error message constants. */ + var FUNC_ERROR_TEXT$1 = 'Expected a function'; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeMax = Math.max, + nativeMin = Math.min; + + /** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ + function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT$1); + } + wait = toNumber_1(wait) || 0; + if (isObject_1(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber_1(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now_1(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now_1()); + } + + function debounced() { + var time = now_1(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + + var debounce_1 = debounce; + + var performance = _window ? _window.performance : null; + var pnow = performance && performance.now ? function () { + return performance.now(); + } : function () { + return Date.now(); + }; + + var raf = function () { + if (_window) { + if (_window.requestAnimationFrame) { + return function (fn) { + _window.requestAnimationFrame(fn); + }; + } else if (_window.mozRequestAnimationFrame) { + return function (fn) { + _window.mozRequestAnimationFrame(fn); + }; + } else if (_window.webkitRequestAnimationFrame) { + return function (fn) { + _window.webkitRequestAnimationFrame(fn); + }; + } else if (_window.msRequestAnimationFrame) { + return function (fn) { + _window.msRequestAnimationFrame(fn); + }; + } + } + + return function (fn) { + if (fn) { + setTimeout(function () { + fn(pnow()); + }, 1000 / 60); + } + }; + }(); + + var requestAnimationFrame = function requestAnimationFrame(fn) { + return raf(fn); + }; + var performanceNow = pnow; + + var DEFAULT_HASH_SEED = 9261; + var K = 65599; // 37 also works pretty well + + var DEFAULT_HASH_SEED_ALT = 5381; + var hashIterableInts = function hashIterableInts(iterator) { + var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED; + // sdbm/string-hash + var hash = seed; + var entry; + + for (;;) { + entry = iterator.next(); + + if (entry.done) { + break; + } + + hash = hash * K + entry.value | 0; + } + + return hash; + }; + var hashInt = function hashInt(num) { + var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED; + // sdbm/string-hash + return seed * K + num | 0; + }; + var hashIntAlt = function hashIntAlt(num) { + var seed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_HASH_SEED_ALT; + // djb2/string-hash + return (seed << 5) + seed + num | 0; + }; + var combineHashes = function combineHashes(hash1, hash2) { + return hash1 * 0x200000 + hash2; + }; + var combineHashesArray = function combineHashesArray(hashes) { + return hashes[0] * 0x200000 + hashes[1]; + }; + var hashArrays = function hashArrays(hashes1, hashes2) { + return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])]; + }; + var hashIntsArray = function hashIntsArray(ints, seed) { + var entry = { + value: 0, + done: false + }; + var i = 0; + var length = ints.length; + var iterator = { + next: function next() { + if (i < length) { + entry.value = ints[i++]; + } else { + entry.done = true; + } + + return entry; + } + }; + return hashIterableInts(iterator, seed); + }; + var hashString = function hashString(str, seed) { + var entry = { + value: 0, + done: false + }; + var i = 0; + var length = str.length; + var iterator = { + next: function next() { + if (i < length) { + entry.value = str.charCodeAt(i++); + } else { + entry.done = true; + } + + return entry; + } + }; + return hashIterableInts(iterator, seed); + }; + var hashStrings = function hashStrings() { + return hashStringsArray(arguments); + }; + var hashStringsArray = function hashStringsArray(strs) { + var hash; + + for (var i = 0; i < strs.length; i++) { + var str = strs[i]; + + if (i === 0) { + hash = hashString(str); + } else { + hash = hashString(str, hash); + } + } + + return hash; + }; + + /*global console */ + var warningsEnabled = true; + var warnSupported = console.warn != null; // eslint-disable-line no-console + + var traceSupported = console.trace != null; // eslint-disable-line no-console + + var MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991; + var trueify = function trueify() { + return true; + }; + var falsify = function falsify() { + return false; + }; + var zeroify = function zeroify() { + return 0; + }; + var noop$1 = function noop() {}; + var error = function error(msg) { + throw new Error(msg); + }; + var warnings = function warnings(enabled) { + if (enabled !== undefined) { + warningsEnabled = !!enabled; + } else { + return warningsEnabled; + } + }; + var warn = function warn(msg) { + /* eslint-disable no-console */ + if (!warnings()) { + return; + } + + if (warnSupported) { + console.warn(msg); + } else { + console.log(msg); + + if (traceSupported) { + console.trace(); + } + } + }; + /* eslint-enable */ + + var clone = function clone(obj) { + return extend({}, obj); + }; // gets a shallow copy of the argument + + var copy = function copy(obj) { + if (obj == null) { + return obj; + } + + if (array(obj)) { + return obj.slice(); + } else if (plainObject(obj)) { + return clone(obj); + } else { + return obj; + } + }; + var copyArray$1 = function copyArray(arr) { + return arr.slice(); + }; + var uuid = function uuid(a, b + /* placeholders */ + ) { + for ( // loop :) + b = a = ''; // b - result , a - numeric letiable + a++ < 36; // + b += a * 51 & 52 // if "a" is not 9 or 14 or 19 or 24 + ? // return a random number or 4 + (a ^ 15 // if "a" is not 15 + ? // generate a random number from 0 to 15 + 8 ^ Math.random() * (a ^ 20 ? 16 : 4) // unless "a" is 20, in which case a random number from 8 to 11 + : 4 // otherwise 4 + ).toString(16) : '-' // in other cases (if "a" is 9,14,19,24) insert "-" + ) { + } + + return b; + }; + var _staticEmptyObject = {}; + var staticEmptyObject = function staticEmptyObject() { + return _staticEmptyObject; + }; + var defaults$g = function defaults(_defaults) { + var keys = Object.keys(_defaults); + return function (opts) { + var filledOpts = {}; + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var optVal = opts == null ? undefined : opts[key]; + filledOpts[key] = optVal === undefined ? _defaults[key] : optVal; + } + + return filledOpts; + }; + }; + var removeFromArray = function removeFromArray(arr, ele, oneCopy) { + for (var i = arr.length - 1; i >= 0; i--) { + if (arr[i] === ele) { + arr.splice(i, 1); + + if (oneCopy) { + break; + } + } + } + }; + var clearArray = function clearArray(arr) { + arr.splice(0, arr.length); + }; + var push = function push(arr, otherArr) { + for (var i = 0; i < otherArr.length; i++) { + var el = otherArr[i]; + arr.push(el); + } + }; + var getPrefixedProperty = function getPrefixedProperty(obj, propName, prefix) { + if (prefix) { + propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth + } + + return obj[propName]; + }; + var setPrefixedProperty = function setPrefixedProperty(obj, propName, prefix, value) { + if (prefix) { + propName = prependCamel(prefix, propName); // e.g. (labelWidth, source) => sourceLabelWidth + } + + obj[propName] = value; + }; + + /* global Map */ + var ObjectMap = /*#__PURE__*/function () { + function ObjectMap() { + _classCallCheck(this, ObjectMap); + + this._obj = {}; + } + + _createClass(ObjectMap, [{ + key: "set", + value: function set(key, val) { + this._obj[key] = val; + return this; + } + }, { + key: "delete", + value: function _delete(key) { + this._obj[key] = undefined; + return this; + } + }, { + key: "clear", + value: function clear() { + this._obj = {}; + } + }, { + key: "has", + value: function has(key) { + return this._obj[key] !== undefined; + } + }, { + key: "get", + value: function get(key) { + return this._obj[key]; + } + }]); + + return ObjectMap; + }(); + + var Map$2 = typeof Map !== 'undefined' ? Map : ObjectMap; + + /* global Set */ + var undef = "undefined" ; + + var ObjectSet = /*#__PURE__*/function () { + function ObjectSet(arrayOrObjectSet) { + _classCallCheck(this, ObjectSet); + + this._obj = Object.create(null); + this.size = 0; + + if (arrayOrObjectSet != null) { + var arr; + + if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) { + arr = arrayOrObjectSet.toArray(); + } else { + arr = arrayOrObjectSet; + } + + for (var i = 0; i < arr.length; i++) { + this.add(arr[i]); + } + } + } + + _createClass(ObjectSet, [{ + key: "instanceString", + value: function instanceString() { + return 'set'; + } + }, { + key: "add", + value: function add(val) { + var o = this._obj; + + if (o[val] !== 1) { + o[val] = 1; + this.size++; + } + } + }, { + key: "delete", + value: function _delete(val) { + var o = this._obj; + + if (o[val] === 1) { + o[val] = 0; + this.size--; + } + } + }, { + key: "clear", + value: function clear() { + this._obj = Object.create(null); + } + }, { + key: "has", + value: function has(val) { + return this._obj[val] === 1; + } + }, { + key: "toArray", + value: function toArray() { + var _this = this; + + return Object.keys(this._obj).filter(function (key) { + return _this.has(key); + }); + } + }, { + key: "forEach", + value: function forEach(callback, thisArg) { + return this.toArray().forEach(callback, thisArg); + } + }]); + + return ObjectSet; + }(); + + var Set$1 = (typeof Set === "undefined" ? "undefined" : _typeof(Set)) !== undef ? Set : ObjectSet; + + var Element = function Element(cy, params) { + var restore = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + + if (cy === undefined || params === undefined || !core(cy)) { + error('An element must have a core reference and parameters set'); + return; + } + + var group = params.group; // try to automatically infer the group if unspecified + + if (group == null) { + if (params.data && params.data.source != null && params.data.target != null) { + group = 'edges'; + } else { + group = 'nodes'; + } + } // validate group + + + if (group !== 'nodes' && group !== 'edges') { + error('An element must be of type `nodes` or `edges`; you specified `' + group + '`'); + return; + } // make the element array-like, just like a collection + + + this.length = 1; + this[0] = this; // NOTE: when something is added here, add also to ele.json() + + var _p = this._private = { + cy: cy, + single: true, + // indicates this is an element + data: params.data || {}, + // data object + position: params.position || { + x: 0, + y: 0 + }, + // (x, y) position pair + autoWidth: undefined, + // width and height of nodes calculated by the renderer when set to special 'auto' value + autoHeight: undefined, + autoPadding: undefined, + compoundBoundsClean: false, + // whether the compound dimensions need to be recalculated the next time dimensions are read + listeners: [], + // array of bound listeners + group: group, + // string; 'nodes' or 'edges' + style: {}, + // properties as set by the style + rstyle: {}, + // properties for style sent from the renderer to the core + styleCxts: [], + // applied style contexts from the styler + styleKeys: {}, + // per-group keys of style property values + removed: true, + // whether it's inside the vis; true if removed (set true here since we call restore) + selected: params.selected ? true : false, + // whether it's selected + selectable: params.selectable === undefined ? true : params.selectable ? true : false, + // whether it's selectable + locked: params.locked ? true : false, + // whether the element is locked (cannot be moved) + grabbed: false, + // whether the element is grabbed by the mouse; renderer sets this privately + grabbable: params.grabbable === undefined ? true : params.grabbable ? true : false, + // whether the element can be grabbed + pannable: params.pannable === undefined ? group === 'edges' ? true : false : params.pannable ? true : false, + // whether the element has passthrough panning enabled + active: false, + // whether the element is active from user interaction + classes: new Set$1(), + // map ( className => true ) + animation: { + // object for currently-running animations + current: [], + queue: [] + }, + rscratch: {}, + // object in which the renderer can store information + scratch: params.scratch || {}, + // scratch objects + edges: [], + // array of connected edges + children: [], + // array of children + parent: params.parent && params.parent.isNode() ? params.parent : null, + // parent ref + traversalCache: {}, + // cache of output of traversal functions + backgrounding: false, + // whether background images are loading + bbCache: null, + // cache of the current bounding box + bbCacheShift: { + x: 0, + y: 0 + }, + // shift applied to cached bb to be applied on next get + bodyBounds: null, + // bounds cache of element body, w/o overlay + overlayBounds: null, + // bounds cache of element body, including overlay + labelBounds: { + // bounds cache of labels + all: null, + source: null, + target: null, + main: null + }, + arrowBounds: { + // bounds cache of edge arrows + source: null, + target: null, + 'mid-source': null, + 'mid-target': null + } + }; + + if (_p.position.x == null) { + _p.position.x = 0; + } + + if (_p.position.y == null) { + _p.position.y = 0; + } // renderedPosition overrides if specified + + + if (params.renderedPosition) { + var rpos = params.renderedPosition; + var pan = cy.pan(); + var zoom = cy.zoom(); + _p.position = { + x: (rpos.x - pan.x) / zoom, + y: (rpos.y - pan.y) / zoom + }; + } + + var classes = []; + + if (array(params.classes)) { + classes = params.classes; + } else if (string(params.classes)) { + classes = params.classes.split(/\s+/); + } + + for (var i = 0, l = classes.length; i < l; i++) { + var cls = classes[i]; + + if (!cls || cls === '') { + continue; + } + + _p.classes.add(cls); + } + + this.createEmitter(); + var bypass = params.style || params.css; + + if (bypass) { + warn('Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead.'); + this.style(bypass); + } + + if (restore === undefined || restore) { + this.restore(); + } + }; + + var defineSearch = function defineSearch(params) { + params = { + bfs: params.bfs || !params.dfs, + dfs: params.dfs || !params.bfs + }; // from pseudocode on wikipedia + + return function searchFn(roots, fn, directed) { + var options; + + if (plainObject(roots) && !elementOrCollection(roots)) { + options = roots; + roots = options.roots || options.root; + fn = options.visit; + directed = options.directed; + } + + directed = arguments.length === 2 && !fn$6(fn) ? fn : directed; + fn = fn$6(fn) ? fn : function () {}; + var cy = this._private.cy; + var v = roots = string(roots) ? this.filter(roots) : roots; + var Q = []; + var connectedNodes = []; + var connectedBy = {}; + var id2depth = {}; + var V = {}; + var j = 0; + var found; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; // enqueue v + + + for (var i = 0; i < v.length; i++) { + var vi = v[i]; + var viId = vi.id(); + + if (vi.isNode()) { + Q.unshift(vi); + + if (params.bfs) { + V[viId] = true; + connectedNodes.push(vi); + } + + id2depth[viId] = 0; + } + } + + var _loop = function _loop() { + var v = params.bfs ? Q.shift() : Q.pop(); + var vId = v.id(); + + if (params.dfs) { + if (V[vId]) { + return "continue"; + } + + V[vId] = true; + connectedNodes.push(v); + } + + var depth = id2depth[vId]; + var prevEdge = connectedBy[vId]; + var src = prevEdge != null ? prevEdge.source() : null; + var tgt = prevEdge != null ? prevEdge.target() : null; + var prevNode = prevEdge == null ? undefined : v.same(src) ? tgt[0] : src[0]; + var ret = void 0; + ret = fn(v, prevEdge, prevNode, j++, depth); + + if (ret === true) { + found = v; + return "break"; + } + + if (ret === false) { + return "break"; + } + + var vwEdges = v.connectedEdges().filter(function (e) { + return (!directed || e.source().same(v)) && edges.has(e); + }); + + for (var _i2 = 0; _i2 < vwEdges.length; _i2++) { + var e = vwEdges[_i2]; + var w = e.connectedNodes().filter(function (n) { + return !n.same(v) && nodes.has(n); + }); + var wId = w.id(); + + if (w.length !== 0 && !V[wId]) { + w = w[0]; + Q.push(w); + + if (params.bfs) { + V[wId] = true; + connectedNodes.push(w); + } + + connectedBy[wId] = e; + id2depth[wId] = id2depth[vId] + 1; + } + } + }; + + while (Q.length !== 0) { + var _ret = _loop(); + + if (_ret === "continue") continue; + if (_ret === "break") break; + } + + var connectedEles = cy.collection(); + + for (var _i = 0; _i < connectedNodes.length; _i++) { + var node = connectedNodes[_i]; + var edge = connectedBy[node.id()]; + + if (edge != null) { + connectedEles.push(edge); + } + + connectedEles.push(node); + } + + return { + path: cy.collection(connectedEles), + found: cy.collection(found) + }; + }; + }; // search, spanning trees, etc + + + var elesfn$v = { + breadthFirstSearch: defineSearch({ + bfs: true + }), + depthFirstSearch: defineSearch({ + dfs: true + }) + }; // nice, short mathematical alias + + elesfn$v.bfs = elesfn$v.breadthFirstSearch; + elesfn$v.dfs = elesfn$v.depthFirstSearch; + + var heap$1 = createCommonjsModule(function (module, exports) { + // Generated by CoffeeScript 1.8.0 + (function() { + var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min, nlargest, nsmallest, updateItem, _siftdown, _siftup; + + floor = Math.floor, min = Math.min; + + + /* + Default comparison function to be used + */ + + defaultCmp = function(x, y) { + if (x < y) { + return -1; + } + if (x > y) { + return 1; + } + return 0; + }; + + + /* + Insert item x in list a, and keep it sorted assuming a is sorted. + + If x is already in a, insert it to the right of the rightmost x. + + Optional args lo (default 0) and hi (default a.length) bound the slice + of a to be searched. + */ + + insort = function(a, x, lo, hi, cmp) { + var mid; + if (lo == null) { + lo = 0; + } + if (cmp == null) { + cmp = defaultCmp; + } + if (lo < 0) { + throw new Error('lo must be non-negative'); + } + if (hi == null) { + hi = a.length; + } + while (lo < hi) { + mid = floor((lo + hi) / 2); + if (cmp(x, a[mid]) < 0) { + hi = mid; + } else { + lo = mid + 1; + } + } + return ([].splice.apply(a, [lo, lo - lo].concat(x)), x); + }; + + + /* + Push item onto heap, maintaining the heap invariant. + */ + + heappush = function(array, item, cmp) { + if (cmp == null) { + cmp = defaultCmp; + } + array.push(item); + return _siftdown(array, 0, array.length - 1, cmp); + }; + + + /* + Pop the smallest item off the heap, maintaining the heap invariant. + */ + + heappop = function(array, cmp) { + var lastelt, returnitem; + if (cmp == null) { + cmp = defaultCmp; + } + lastelt = array.pop(); + if (array.length) { + returnitem = array[0]; + array[0] = lastelt; + _siftup(array, 0, cmp); + } else { + returnitem = lastelt; + } + return returnitem; + }; + + + /* + Pop and return the current smallest value, and add the new item. + + This is more efficient than heappop() followed by heappush(), and can be + more appropriate when using a fixed size heap. Note that the value + returned may be larger than item! That constrains reasonable use of + this routine unless written as part of a conditional replacement: + if item > array[0] + item = heapreplace(array, item) + */ + + heapreplace = function(array, item, cmp) { + var returnitem; + if (cmp == null) { + cmp = defaultCmp; + } + returnitem = array[0]; + array[0] = item; + _siftup(array, 0, cmp); + return returnitem; + }; + + + /* + Fast version of a heappush followed by a heappop. + */ + + heappushpop = function(array, item, cmp) { + var _ref; + if (cmp == null) { + cmp = defaultCmp; + } + if (array.length && cmp(array[0], item) < 0) { + _ref = [array[0], item], item = _ref[0], array[0] = _ref[1]; + _siftup(array, 0, cmp); + } + return item; + }; + + + /* + Transform list into a heap, in-place, in O(array.length) time. + */ + + heapify = function(array, cmp) { + var i, _i, _len, _ref1, _results, _results1; + if (cmp == null) { + cmp = defaultCmp; + } + _ref1 = (function() { + _results1 = []; + for (var _j = 0, _ref = floor(array.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--){ _results1.push(_j); } + return _results1; + }).apply(this).reverse(); + _results = []; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + i = _ref1[_i]; + _results.push(_siftup(array, i, cmp)); + } + return _results; + }; + + + /* + Update the position of the given item in the heap. + This function should be called every time the item is being modified. + */ + + updateItem = function(array, item, cmp) { + var pos; + if (cmp == null) { + cmp = defaultCmp; + } + pos = array.indexOf(item); + if (pos === -1) { + return; + } + _siftdown(array, 0, pos, cmp); + return _siftup(array, pos, cmp); + }; + + + /* + Find the n largest elements in a dataset. + */ + + nlargest = function(array, n, cmp) { + var elem, result, _i, _len, _ref; + if (cmp == null) { + cmp = defaultCmp; + } + result = array.slice(0, n); + if (!result.length) { + return result; + } + heapify(result, cmp); + _ref = array.slice(n); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elem = _ref[_i]; + heappushpop(result, elem, cmp); + } + return result.sort(cmp).reverse(); + }; + + + /* + Find the n smallest elements in a dataset. + */ + + nsmallest = function(array, n, cmp) { + var elem, los, result, _i, _j, _len, _ref, _ref1, _results; + if (cmp == null) { + cmp = defaultCmp; + } + if (n * 10 <= array.length) { + result = array.slice(0, n).sort(cmp); + if (!result.length) { + return result; + } + los = result[result.length - 1]; + _ref = array.slice(n); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + elem = _ref[_i]; + if (cmp(elem, los) < 0) { + insort(result, elem, 0, null, cmp); + result.pop(); + los = result[result.length - 1]; + } + } + return result; + } + heapify(array, cmp); + _results = []; + for (_j = 0, _ref1 = min(n, array.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) { + _results.push(heappop(array, cmp)); + } + return _results; + }; + + _siftdown = function(array, startpos, pos, cmp) { + var newitem, parent, parentpos; + if (cmp == null) { + cmp = defaultCmp; + } + newitem = array[pos]; + while (pos > startpos) { + parentpos = (pos - 1) >> 1; + parent = array[parentpos]; + if (cmp(newitem, parent) < 0) { + array[pos] = parent; + pos = parentpos; + continue; + } + break; + } + return array[pos] = newitem; + }; + + _siftup = function(array, pos, cmp) { + var childpos, endpos, newitem, rightpos, startpos; + if (cmp == null) { + cmp = defaultCmp; + } + endpos = array.length; + startpos = pos; + newitem = array[pos]; + childpos = 2 * pos + 1; + while (childpos < endpos) { + rightpos = childpos + 1; + if (rightpos < endpos && !(cmp(array[childpos], array[rightpos]) < 0)) { + childpos = rightpos; + } + array[pos] = array[childpos]; + pos = childpos; + childpos = 2 * pos + 1; + } + array[pos] = newitem; + return _siftdown(array, startpos, pos, cmp); + }; + + Heap = (function() { + Heap.push = heappush; + + Heap.pop = heappop; + + Heap.replace = heapreplace; + + Heap.pushpop = heappushpop; + + Heap.heapify = heapify; + + Heap.updateItem = updateItem; + + Heap.nlargest = nlargest; + + Heap.nsmallest = nsmallest; + + function Heap(cmp) { + this.cmp = cmp != null ? cmp : defaultCmp; + this.nodes = []; + } + + Heap.prototype.push = function(x) { + return heappush(this.nodes, x, this.cmp); + }; + + Heap.prototype.pop = function() { + return heappop(this.nodes, this.cmp); + }; + + Heap.prototype.peek = function() { + return this.nodes[0]; + }; + + Heap.prototype.contains = function(x) { + return this.nodes.indexOf(x) !== -1; + }; + + Heap.prototype.replace = function(x) { + return heapreplace(this.nodes, x, this.cmp); + }; + + Heap.prototype.pushpop = function(x) { + return heappushpop(this.nodes, x, this.cmp); + }; + + Heap.prototype.heapify = function() { + return heapify(this.nodes, this.cmp); + }; + + Heap.prototype.updateItem = function(x) { + return updateItem(this.nodes, x, this.cmp); + }; + + Heap.prototype.clear = function() { + return this.nodes = []; + }; + + Heap.prototype.empty = function() { + return this.nodes.length === 0; + }; + + Heap.prototype.size = function() { + return this.nodes.length; + }; + + Heap.prototype.clone = function() { + var heap; + heap = new Heap(); + heap.nodes = this.nodes.slice(0); + return heap; + }; + + Heap.prototype.toArray = function() { + return this.nodes.slice(0); + }; + + Heap.prototype.insert = Heap.prototype.push; + + Heap.prototype.top = Heap.prototype.peek; + + Heap.prototype.front = Heap.prototype.peek; + + Heap.prototype.has = Heap.prototype.contains; + + Heap.prototype.copy = Heap.prototype.clone; + + return Heap; + + })(); + + (function(root, factory) { + { + return module.exports = factory(); + } + })(this, function() { + return Heap; + }); + + }).call(commonjsGlobal); + }); + + var heap = heap$1; + + var dijkstraDefaults = defaults$g({ + root: null, + weight: function weight(edge) { + return 1; + }, + directed: false + }); + var elesfn$u = { + dijkstra: function dijkstra(options) { + if (!plainObject(options)) { + var args = arguments; + options = { + root: args[0], + weight: args[1], + directed: args[2] + }; + } + + var _dijkstraDefaults = dijkstraDefaults(options), + root = _dijkstraDefaults.root, + weight = _dijkstraDefaults.weight, + directed = _dijkstraDefaults.directed; + + var eles = this; + var weightFn = weight; + var source = string(root) ? this.filter(root)[0] : root[0]; + var dist = {}; + var prev = {}; + var knownDist = {}; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; + + edges.unmergeBy(function (ele) { + return ele.isLoop(); + }); + + var getDist = function getDist(node) { + return dist[node.id()]; + }; + + var setDist = function setDist(node, d) { + dist[node.id()] = d; + Q.updateItem(node); + }; + + var Q = new heap(function (a, b) { + return getDist(a) - getDist(b); + }); + + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + dist[node.id()] = node.same(source) ? 0 : Infinity; + Q.push(node); + } + + var distBetween = function distBetween(u, v) { + var uvs = (directed ? u.edgesTo(v) : u.edgesWith(v)).intersect(edges); + var smallestDistance = Infinity; + var smallestEdge; + + for (var _i = 0; _i < uvs.length; _i++) { + var edge = uvs[_i]; + + var _weight = weightFn(edge); + + if (_weight < smallestDistance || !smallestEdge) { + smallestDistance = _weight; + smallestEdge = edge; + } + } + + return { + edge: smallestEdge, + dist: smallestDistance + }; + }; + + while (Q.size() > 0) { + var u = Q.pop(); + var smalletsDist = getDist(u); + var uid = u.id(); + knownDist[uid] = smalletsDist; + + if (smalletsDist === Infinity) { + continue; + } + + var neighbors = u.neighborhood().intersect(nodes); + + for (var _i2 = 0; _i2 < neighbors.length; _i2++) { + var v = neighbors[_i2]; + var vid = v.id(); + var vDist = distBetween(u, v); + var alt = smalletsDist + vDist.dist; + + if (alt < getDist(v)) { + setDist(v, alt); + prev[vid] = { + node: u, + edge: vDist.edge + }; + } + } // for + + } // while + + + return { + distanceTo: function distanceTo(node) { + var target = string(node) ? nodes.filter(node)[0] : node[0]; + return knownDist[target.id()]; + }, + pathTo: function pathTo(node) { + var target = string(node) ? nodes.filter(node)[0] : node[0]; + var S = []; + var u = target; + var uid = u.id(); + + if (target.length > 0) { + S.unshift(target); + + while (prev[uid]) { + var p = prev[uid]; + S.unshift(p.edge); + S.unshift(p.node); + u = p.node; + uid = u.id(); + } + } + + return eles.spawn(S); + } + }; + } + }; + + var elesfn$t = { + // kruskal's algorithm (finds min spanning tree, assuming undirected graph) + // implemented from pseudocode from wikipedia + kruskal: function kruskal(weightFn) { + weightFn = weightFn || function (edge) { + return 1; + }; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; + + var numNodes = nodes.length; + var forest = new Array(numNodes); + var A = nodes; // assumes byGroup() creates new collections that can be safely mutated + + var findSetIndex = function findSetIndex(ele) { + for (var i = 0; i < forest.length; i++) { + var eles = forest[i]; + + if (eles.has(ele)) { + return i; + } + } + }; // start with one forest per node + + + for (var i = 0; i < numNodes; i++) { + forest[i] = this.spawn(nodes[i]); + } + + var S = edges.sort(function (a, b) { + return weightFn(a) - weightFn(b); + }); + + for (var _i = 0; _i < S.length; _i++) { + var edge = S[_i]; + var u = edge.source()[0]; + var v = edge.target()[0]; + var setUIndex = findSetIndex(u); + var setVIndex = findSetIndex(v); + var setU = forest[setUIndex]; + var setV = forest[setVIndex]; + + if (setUIndex !== setVIndex) { + A.merge(edge); // combine forests for u and v + + setU.merge(setV); + forest.splice(setVIndex, 1); + } + } + + return A; + } + }; + + var aStarDefaults = defaults$g({ + root: null, + goal: null, + weight: function weight(edge) { + return 1; + }, + heuristic: function heuristic(edge) { + return 0; + }, + directed: false + }); + var elesfn$s = { + // Implemented from pseudocode from wikipedia + aStar: function aStar(options) { + var cy = this.cy(); + + var _aStarDefaults = aStarDefaults(options), + root = _aStarDefaults.root, + goal = _aStarDefaults.goal, + heuristic = _aStarDefaults.heuristic, + directed = _aStarDefaults.directed, + weight = _aStarDefaults.weight; + + root = cy.collection(root)[0]; + goal = cy.collection(goal)[0]; + var sid = root.id(); + var tid = goal.id(); + var gScore = {}; + var fScore = {}; + var closedSetIds = {}; + var openSet = new heap(function (a, b) { + return fScore[a.id()] - fScore[b.id()]; + }); + var openSetIds = new Set$1(); + var cameFrom = {}; + var cameFromEdge = {}; + + var addToOpenSet = function addToOpenSet(ele, id) { + openSet.push(ele); + openSetIds.add(id); + }; + + var cMin, cMinId; + + var popFromOpenSet = function popFromOpenSet() { + cMin = openSet.pop(); + cMinId = cMin.id(); + openSetIds["delete"](cMinId); + }; + + var isInOpenSet = function isInOpenSet(id) { + return openSetIds.has(id); + }; + + addToOpenSet(root, sid); + gScore[sid] = 0; + fScore[sid] = heuristic(root); // Counter + + var steps = 0; // Main loop + + while (openSet.size() > 0) { + popFromOpenSet(); + steps++; // If we've found our goal, then we are done + + if (cMinId === tid) { + var path = []; + var pathNode = goal; + var pathNodeId = tid; + var pathEdge = cameFromEdge[pathNodeId]; + + for (;;) { + path.unshift(pathNode); + + if (pathEdge != null) { + path.unshift(pathEdge); + } + + pathNode = cameFrom[pathNodeId]; + + if (pathNode == null) { + break; + } + + pathNodeId = pathNode.id(); + pathEdge = cameFromEdge[pathNodeId]; + } + + return { + found: true, + distance: gScore[cMinId], + path: this.spawn(path), + steps: steps + }; + } // Add cMin to processed nodes + + + closedSetIds[cMinId] = true; // Update scores for neighbors of cMin + // Take into account if graph is directed or not + + var vwEdges = cMin._private.edges; + + for (var i = 0; i < vwEdges.length; i++) { + var e = vwEdges[i]; // edge must be in set of calling eles + + if (!this.hasElementWithId(e.id())) { + continue; + } // cMin must be the source of edge if directed + + + if (directed && e.data('source') !== cMinId) { + continue; + } + + var wSrc = e.source(); + var wTgt = e.target(); + var w = wSrc.id() !== cMinId ? wSrc : wTgt; + var wid = w.id(); // node must be in set of calling eles + + if (!this.hasElementWithId(wid)) { + continue; + } // if node is in closedSet, ignore it + + + if (closedSetIds[wid]) { + continue; + } // New tentative score for node w + + + var tempScore = gScore[cMinId] + weight(e); // Update gScore for node w if: + // w not present in openSet + // OR + // tentative gScore is less than previous value + // w not in openSet + + if (!isInOpenSet(wid)) { + gScore[wid] = tempScore; + fScore[wid] = tempScore + heuristic(w); + addToOpenSet(w, wid); + cameFrom[wid] = cMin; + cameFromEdge[wid] = e; + continue; + } // w already in openSet, but with greater gScore + + + if (tempScore < gScore[wid]) { + gScore[wid] = tempScore; + fScore[wid] = tempScore + heuristic(w); + cameFrom[wid] = cMin; + cameFromEdge[wid] = e; + } + } // End of neighbors update + + } // End of main loop + // If we've reached here, then we've not reached our goal + + + return { + found: false, + distance: undefined, + path: undefined, + steps: steps + }; + } + }; // elesfn + + var floydWarshallDefaults = defaults$g({ + weight: function weight(edge) { + return 1; + }, + directed: false + }); + var elesfn$r = { + // Implemented from pseudocode from wikipedia + floydWarshall: function floydWarshall(options) { + var cy = this.cy(); + + var _floydWarshallDefault = floydWarshallDefaults(options), + weight = _floydWarshallDefault.weight, + directed = _floydWarshallDefault.directed; + + var weightFn = weight; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; + + var N = nodes.length; + var Nsq = N * N; + + var indexOf = function indexOf(node) { + return nodes.indexOf(node); + }; + + var atIndex = function atIndex(i) { + return nodes[i]; + }; // Initialize distance matrix + + + var dist = new Array(Nsq); + + for (var n = 0; n < Nsq; n++) { + var j = n % N; + var i = (n - j) / N; + + if (i === j) { + dist[n] = 0; + } else { + dist[n] = Infinity; + } + } // Initialize matrix used for path reconstruction + // Initialize distance matrix + + + var next = new Array(Nsq); + var edgeNext = new Array(Nsq); // Process edges + + for (var _i = 0; _i < edges.length; _i++) { + var edge = edges[_i]; + var src = edge.source()[0]; + var tgt = edge.target()[0]; + + if (src === tgt) { + continue; + } // exclude loops + + + var s = indexOf(src); + var t = indexOf(tgt); + var st = s * N + t; // source to target index + + var _weight = weightFn(edge); // Check if already process another edge between same 2 nodes + + + if (dist[st] > _weight) { + dist[st] = _weight; + next[st] = t; + edgeNext[st] = edge; + } // If undirected graph, process 'reversed' edge + + + if (!directed) { + var ts = t * N + s; // target to source index + + if (!directed && dist[ts] > _weight) { + dist[ts] = _weight; + next[ts] = s; + edgeNext[ts] = edge; + } + } + } // Main loop + + + for (var k = 0; k < N; k++) { + for (var _i2 = 0; _i2 < N; _i2++) { + var ik = _i2 * N + k; + + for (var _j = 0; _j < N; _j++) { + var ij = _i2 * N + _j; + var kj = k * N + _j; + + if (dist[ik] + dist[kj] < dist[ij]) { + dist[ij] = dist[ik] + dist[kj]; + next[ij] = next[ik]; + } + } + } + } + + var getArgEle = function getArgEle(ele) { + return (string(ele) ? cy.filter(ele) : ele)[0]; + }; + + var indexOfArgEle = function indexOfArgEle(ele) { + return indexOf(getArgEle(ele)); + }; + + var res = { + distance: function distance(from, to) { + var i = indexOfArgEle(from); + var j = indexOfArgEle(to); + return dist[i * N + j]; + }, + path: function path(from, to) { + var i = indexOfArgEle(from); + var j = indexOfArgEle(to); + var fromNode = atIndex(i); + + if (i === j) { + return fromNode.collection(); + } + + if (next[i * N + j] == null) { + return cy.collection(); + } + + var path = cy.collection(); + var prev = i; + var edge; + path.merge(fromNode); + + while (i !== j) { + prev = i; + i = next[i * N + j]; + edge = edgeNext[prev * N + i]; + path.merge(edge); + path.merge(atIndex(i)); + } + + return path; + } + }; + return res; + } // floydWarshall + + }; // elesfn + + var bellmanFordDefaults = defaults$g({ + weight: function weight(edge) { + return 1; + }, + directed: false, + root: null + }); + var elesfn$q = { + // Implemented from pseudocode from wikipedia + bellmanFord: function bellmanFord(options) { + var _this = this; + + var _bellmanFordDefaults = bellmanFordDefaults(options), + weight = _bellmanFordDefaults.weight, + directed = _bellmanFordDefaults.directed, + root = _bellmanFordDefaults.root; + + var weightFn = weight; + var eles = this; + var cy = this.cy(); + + var _this$byGroup = this.byGroup(), + edges = _this$byGroup.edges, + nodes = _this$byGroup.nodes; + + var numNodes = nodes.length; + var infoMap = new Map$2(); + var hasNegativeWeightCycle = false; + var negativeWeightCycles = []; + root = cy.collection(root)[0]; // in case selector passed + + edges.unmergeBy(function (edge) { + return edge.isLoop(); + }); + var numEdges = edges.length; + + var getInfo = function getInfo(node) { + var obj = infoMap.get(node.id()); + + if (!obj) { + obj = {}; + infoMap.set(node.id(), obj); + } + + return obj; + }; + + var getNodeFromTo = function getNodeFromTo(to) { + return (string(to) ? cy.$(to) : to)[0]; + }; + + var distanceTo = function distanceTo(to) { + return getInfo(getNodeFromTo(to)).dist; + }; + + var pathTo = function pathTo(to) { + var thisStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : root; + var end = getNodeFromTo(to); + var path = []; + var node = end; + + for (;;) { + if (node == null) { + return _this.spawn(); + } + + var _getInfo = getInfo(node), + edge = _getInfo.edge, + pred = _getInfo.pred; + + path.unshift(node[0]); + + if (node.same(thisStart) && path.length > 0) { + break; + } + + if (edge != null) { + path.unshift(edge); + } + + node = pred; + } + + return eles.spawn(path); + }; // Initializations { dist, pred, edge } + + + for (var i = 0; i < numNodes; i++) { + var node = nodes[i]; + var info = getInfo(node); + + if (node.same(root)) { + info.dist = 0; + } else { + info.dist = Infinity; + } + + info.pred = null; + info.edge = null; + } // Edges relaxation + + + var replacedEdge = false; + + var checkForEdgeReplacement = function checkForEdgeReplacement(node1, node2, edge, info1, info2, weight) { + var dist = info1.dist + weight; + + if (dist < info2.dist && !edge.same(info1.edge)) { + info2.dist = dist; + info2.pred = node1; + info2.edge = edge; + replacedEdge = true; + } + }; + + for (var _i = 1; _i < numNodes; _i++) { + replacedEdge = false; + + for (var e = 0; e < numEdges; e++) { + var edge = edges[e]; + var src = edge.source(); + var tgt = edge.target(); + + var _weight = weightFn(edge); + + var srcInfo = getInfo(src); + var tgtInfo = getInfo(tgt); + checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight); // If undirected graph, we need to take into account the 'reverse' edge + + if (!directed) { + checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight); + } + } + + if (!replacedEdge) { + break; + } + } + + if (replacedEdge) { + // Check for negative weight cycles + var negativeWeightCycleIds = []; + + for (var _e = 0; _e < numEdges; _e++) { + var _edge = edges[_e]; + + var _src = _edge.source(); + + var _tgt = _edge.target(); + + var _weight2 = weightFn(_edge); + + var srcDist = getInfo(_src).dist; + var tgtDist = getInfo(_tgt).dist; + + if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) { + if (!hasNegativeWeightCycle) { + warn('Graph contains a negative weight cycle for Bellman-Ford'); + hasNegativeWeightCycle = true; + } + + if (options.findNegativeWeightCycles !== false) { + var negativeNodes = []; + + if (srcDist + _weight2 < tgtDist) { + negativeNodes.push(_src); + } + + if (!directed && tgtDist + _weight2 < srcDist) { + negativeNodes.push(_tgt); + } + + var numNegativeNodes = negativeNodes.length; + + for (var n = 0; n < numNegativeNodes; n++) { + var start = negativeNodes[n]; + var cycle = [start]; + cycle.push(getInfo(start).edge); + var _node = getInfo(start).pred; + + while (cycle.indexOf(_node) === -1) { + cycle.push(_node); + cycle.push(getInfo(_node).edge); + _node = getInfo(_node).pred; + } + + cycle = cycle.slice(cycle.indexOf(_node)); + var smallestId = cycle[0].id(); + var smallestIndex = 0; + + for (var c = 2; c < cycle.length; c += 2) { + if (cycle[c].id() < smallestId) { + smallestId = cycle[c].id(); + smallestIndex = c; + } + } + + cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex)); + cycle.push(cycle[0]); + var cycleId = cycle.map(function (el) { + return el.id(); + }).join(","); + + if (negativeWeightCycleIds.indexOf(cycleId) === -1) { + negativeWeightCycles.push(eles.spawn(cycle)); + negativeWeightCycleIds.push(cycleId); + } + } + } else { + break; + } + } + } + } + + return { + distanceTo: distanceTo, + pathTo: pathTo, + hasNegativeWeightCycle: hasNegativeWeightCycle, + negativeWeightCycles: negativeWeightCycles + }; + } // bellmanFord + + }; // elesfn + + var sqrt2 = Math.sqrt(2); // Function which colapses 2 (meta) nodes into one + // Updates the remaining edge lists + // Receives as a paramater the edge which causes the collapse + + var collapse = function collapse(edgeIndex, nodeMap, remainingEdges) { + if (remainingEdges.length === 0) { + error("Karger-Stein must be run on a connected (sub)graph"); + } + + var edgeInfo = remainingEdges[edgeIndex]; + var sourceIn = edgeInfo[1]; + var targetIn = edgeInfo[2]; + var partition1 = nodeMap[sourceIn]; + var partition2 = nodeMap[targetIn]; + var newEdges = remainingEdges; // re-use array + // Delete all edges between partition1 and partition2 + + for (var i = newEdges.length - 1; i >= 0; i--) { + var edge = newEdges[i]; + var src = edge[1]; + var tgt = edge[2]; + + if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) { + newEdges.splice(i, 1); + } + } // All edges pointing to partition2 should now point to partition1 + + + for (var _i = 0; _i < newEdges.length; _i++) { + var _edge = newEdges[_i]; + + if (_edge[1] === partition2) { + // Check source + newEdges[_i] = _edge.slice(); // copy + + newEdges[_i][1] = partition1; + } else if (_edge[2] === partition2) { + // Check target + newEdges[_i] = _edge.slice(); // copy + + newEdges[_i][2] = partition1; + } + } // Move all nodes from partition2 to partition1 + + + for (var _i2 = 0; _i2 < nodeMap.length; _i2++) { + if (nodeMap[_i2] === partition2) { + nodeMap[_i2] = partition1; + } + } + + return newEdges; + }; // Contracts a graph until we reach a certain number of meta nodes + + + var contractUntil = function contractUntil(metaNodeMap, remainingEdges, size, sizeLimit) { + while (size > sizeLimit) { + // Choose an edge randomly + var edgeIndex = Math.floor(Math.random() * remainingEdges.length); // Collapse graph based on edge + + remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges); + size--; + } + + return remainingEdges; + }; + + var elesfn$p = { + // Computes the minimum cut of an undirected graph + // Returns the correct answer with high probability + kargerStein: function kargerStein() { + var _this = this; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; + + edges.unmergeBy(function (edge) { + return edge.isLoop(); + }); + var numNodes = nodes.length; + var numEdges = edges.length; + var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2)); + var stopSize = Math.floor(numNodes / sqrt2); + + if (numNodes < 2) { + error('At least 2 nodes are required for Karger-Stein algorithm'); + return undefined; + } // Now store edge destination as indexes + // Format for each edge (edge index, source node index, target node index) + + + var edgeIndexes = []; + + for (var i = 0; i < numEdges; i++) { + var e = edges[i]; + edgeIndexes.push([i, nodes.indexOf(e.source()), nodes.indexOf(e.target())]); + } // We will store the best cut found here + + + var minCutSize = Infinity; + var minCutEdgeIndexes = []; + var minCutNodeMap = new Array(numNodes); // Initial meta node partition + + var metaNodeMap = new Array(numNodes); + var metaNodeMap2 = new Array(numNodes); + + var copyNodesMap = function copyNodesMap(from, to) { + for (var _i3 = 0; _i3 < numNodes; _i3++) { + to[_i3] = from[_i3]; + } + }; // Main loop + + + for (var iter = 0; iter <= numIter; iter++) { + // Reset meta node partition + for (var _i4 = 0; _i4 < numNodes; _i4++) { + metaNodeMap[_i4] = _i4; + } // Contract until stop point (stopSize nodes) + + + var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize); + var edgesState2 = edgesState.slice(); // copy + // Create a copy of the colapsed nodes state + + copyNodesMap(metaNodeMap, metaNodeMap2); // Run 2 iterations starting in the stop state + + var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2); + var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2); // Is any of the 2 results the best cut so far? + + if (res1.length <= res2.length && res1.length < minCutSize) { + minCutSize = res1.length; + minCutEdgeIndexes = res1; + copyNodesMap(metaNodeMap, minCutNodeMap); + } else if (res2.length <= res1.length && res2.length < minCutSize) { + minCutSize = res2.length; + minCutEdgeIndexes = res2; + copyNodesMap(metaNodeMap2, minCutNodeMap); + } + } // end of main loop + // Construct result + + + var cut = this.spawn(minCutEdgeIndexes.map(function (e) { + return edges[e[0]]; + })); + var partition1 = this.spawn(); + var partition2 = this.spawn(); // traverse metaNodeMap for best cut + + var witnessNodePartition = minCutNodeMap[0]; + + for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) { + var partitionId = minCutNodeMap[_i5]; + var node = nodes[_i5]; + + if (partitionId === witnessNodePartition) { + partition1.merge(node); + } else { + partition2.merge(node); + } + } // construct components corresponding to each disjoint subset of nodes + + + var constructComponent = function constructComponent(subset) { + var component = _this.spawn(); + + subset.forEach(function (node) { + component.merge(node); + node.connectedEdges().forEach(function (edge) { + // ensure edge is within calling collection and edge is not in cut + if (_this.contains(edge) && !cut.contains(edge)) { + component.merge(edge); + } + }); + }); + return component; + }; + + var components = [constructComponent(partition1), constructComponent(partition2)]; + var ret = { + cut: cut, + components: components, + // n.b. partitions are included to be compatible with the old api spec + // (could be removed in a future major version) + partition1: partition1, + partition2: partition2 + }; + return ret; + } + }; // elesfn + + var copyPosition = function copyPosition(p) { + return { + x: p.x, + y: p.y + }; + }; + var modelToRenderedPosition = function modelToRenderedPosition(p, zoom, pan) { + return { + x: p.x * zoom + pan.x, + y: p.y * zoom + pan.y + }; + }; + var renderedToModelPosition = function renderedToModelPosition(p, zoom, pan) { + return { + x: (p.x - pan.x) / zoom, + y: (p.y - pan.y) / zoom + }; + }; + var array2point = function array2point(arr) { + return { + x: arr[0], + y: arr[1] + }; + }; + var min = function min(arr) { + var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length; + var min = Infinity; + + for (var i = begin; i < end; i++) { + var val = arr[i]; + + if (isFinite(val)) { + min = Math.min(val, min); + } + } + + return min; + }; + var max = function max(arr) { + var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length; + var max = -Infinity; + + for (var i = begin; i < end; i++) { + var val = arr[i]; + + if (isFinite(val)) { + max = Math.max(val, max); + } + } + + return max; + }; + var mean = function mean(arr) { + var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length; + var total = 0; + var n = 0; + + for (var i = begin; i < end; i++) { + var val = arr[i]; + + if (isFinite(val)) { + total += val; + n++; + } + } + + return total / n; + }; + var median = function median(arr) { + var begin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : arr.length; + var copy = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var sort = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var includeHoles = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true; + + if (copy) { + arr = arr.slice(begin, end); + } else { + if (end < arr.length) { + arr.splice(end, arr.length - end); + } + + if (begin > 0) { + arr.splice(0, begin); + } + } // all non finite (e.g. Infinity, NaN) elements must be -Infinity so they go to the start + + + var off = 0; // offset from non-finite values + + for (var i = arr.length - 1; i >= 0; i--) { + var v = arr[i]; + + if (includeHoles) { + if (!isFinite(v)) { + arr[i] = -Infinity; + off++; + } + } else { + // just remove it if we don't want to consider holes + arr.splice(i, 1); + } + } + + if (sort) { + arr.sort(function (a, b) { + return a - b; + }); // requires copy = true if you don't want to change the orig + } + + var len = arr.length; + var mid = Math.floor(len / 2); + + if (len % 2 !== 0) { + return arr[mid + 1 + off]; + } else { + return (arr[mid - 1 + off] + arr[mid + off]) / 2; + } + }; + var deg2rad = function deg2rad(deg) { + return Math.PI * deg / 180; + }; + var getAngleFromDisp = function getAngleFromDisp(dispX, dispY) { + return Math.atan2(dispY, dispX) - Math.PI / 2; + }; + var log2 = Math.log2 || function (n) { + return Math.log(n) / Math.log(2); + }; + var signum = function signum(x) { + if (x > 0) { + return 1; + } else if (x < 0) { + return -1; + } else { + return 0; + } + }; + var dist = function dist(p1, p2) { + return Math.sqrt(sqdist(p1, p2)); + }; + var sqdist = function sqdist(p1, p2) { + var dx = p2.x - p1.x; + var dy = p2.y - p1.y; + return dx * dx + dy * dy; + }; + var inPlaceSumNormalize = function inPlaceSumNormalize(v) { + var length = v.length; // First, get sum of all elements + + var total = 0; + + for (var i = 0; i < length; i++) { + total += v[i]; + } // Now, divide each by the sum of all elements + + + for (var _i = 0; _i < length; _i++) { + v[_i] = v[_i] / total; + } + + return v; + }; + + var qbezierAt = function qbezierAt(p0, p1, p2, t) { + return (1 - t) * (1 - t) * p0 + 2 * (1 - t) * t * p1 + t * t * p2; + }; + var qbezierPtAt = function qbezierPtAt(p0, p1, p2, t) { + return { + x: qbezierAt(p0.x, p1.x, p2.x, t), + y: qbezierAt(p0.y, p1.y, p2.y, t) + }; + }; + var lineAt = function lineAt(p0, p1, t, d) { + var vec = { + x: p1.x - p0.x, + y: p1.y - p0.y + }; + var vecDist = dist(p0, p1); + var normVec = { + x: vec.x / vecDist, + y: vec.y / vecDist + }; + t = t == null ? 0 : t; + d = d != null ? d : t * vecDist; + return { + x: p0.x + normVec.x * d, + y: p0.y + normVec.y * d + }; + }; + var bound = function bound(min, val, max) { + return Math.max(min, Math.min(max, val)); + }; // makes a full bb (x1, y1, x2, y2, w, h) from implicit params + + var makeBoundingBox = function makeBoundingBox(bb) { + if (bb == null) { + return { + x1: Infinity, + y1: Infinity, + x2: -Infinity, + y2: -Infinity, + w: 0, + h: 0 + }; + } else if (bb.x1 != null && bb.y1 != null) { + if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) { + return { + x1: bb.x1, + y1: bb.y1, + x2: bb.x2, + y2: bb.y2, + w: bb.x2 - bb.x1, + h: bb.y2 - bb.y1 + }; + } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) { + return { + x1: bb.x1, + y1: bb.y1, + x2: bb.x1 + bb.w, + y2: bb.y1 + bb.h, + w: bb.w, + h: bb.h + }; + } + } + }; + var copyBoundingBox = function copyBoundingBox(bb) { + return { + x1: bb.x1, + x2: bb.x2, + w: bb.w, + y1: bb.y1, + y2: bb.y2, + h: bb.h + }; + }; + var clearBoundingBox = function clearBoundingBox(bb) { + bb.x1 = Infinity; + bb.y1 = Infinity; + bb.x2 = -Infinity; + bb.y2 = -Infinity; + bb.w = 0; + bb.h = 0; + }; + var updateBoundingBox = function updateBoundingBox(bb1, bb2) { + // update bb1 with bb2 bounds + bb1.x1 = Math.min(bb1.x1, bb2.x1); + bb1.x2 = Math.max(bb1.x2, bb2.x2); + bb1.w = bb1.x2 - bb1.x1; + bb1.y1 = Math.min(bb1.y1, bb2.y1); + bb1.y2 = Math.max(bb1.y2, bb2.y2); + bb1.h = bb1.y2 - bb1.y1; + }; + var expandBoundingBoxByPoint = function expandBoundingBoxByPoint(bb, x, y) { + bb.x1 = Math.min(bb.x1, x); + bb.x2 = Math.max(bb.x2, x); + bb.w = bb.x2 - bb.x1; + bb.y1 = Math.min(bb.y1, y); + bb.y2 = Math.max(bb.y2, y); + bb.h = bb.y2 - bb.y1; + }; + var expandBoundingBox = function expandBoundingBox(bb) { + var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + bb.x1 -= padding; + bb.x2 += padding; + bb.y1 -= padding; + bb.y2 += padding; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + return bb; + }; + var expandBoundingBoxSides = function expandBoundingBoxSides(bb) { + var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0]; + var top, right, bottom, left; + + if (padding.length === 1) { + top = right = bottom = left = padding[0]; + } else if (padding.length === 2) { + top = bottom = padding[0]; + left = right = padding[1]; + } else if (padding.length === 4) { + var _padding = _slicedToArray(padding, 4); + + top = _padding[0]; + right = _padding[1]; + bottom = _padding[2]; + left = _padding[3]; + } + + bb.x1 -= left; + bb.x2 += right; + bb.y1 -= top; + bb.y2 += bottom; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + return bb; + }; + + var assignBoundingBox = function assignBoundingBox(bb1, bb2) { + bb1.x1 = bb2.x1; + bb1.y1 = bb2.y1; + bb1.x2 = bb2.x2; + bb1.y2 = bb2.y2; + bb1.w = bb1.x2 - bb1.x1; + bb1.h = bb1.y2 - bb1.y1; + }; + var boundingBoxesIntersect = function boundingBoxesIntersect(bb1, bb2) { + // case: one bb to right of other + if (bb1.x1 > bb2.x2) { + return false; + } + + if (bb2.x1 > bb1.x2) { + return false; + } // case: one bb to left of other + + + if (bb1.x2 < bb2.x1) { + return false; + } + + if (bb2.x2 < bb1.x1) { + return false; + } // case: one bb above other + + + if (bb1.y2 < bb2.y1) { + return false; + } + + if (bb2.y2 < bb1.y1) { + return false; + } // case: one bb below other + + + if (bb1.y1 > bb2.y2) { + return false; + } + + if (bb2.y1 > bb1.y2) { + return false; + } // otherwise, must have some overlap + + + return true; + }; + var inBoundingBox = function inBoundingBox(bb, x, y) { + return bb.x1 <= x && x <= bb.x2 && bb.y1 <= y && y <= bb.y2; + }; + var pointInBoundingBox = function pointInBoundingBox(bb, pt) { + return inBoundingBox(bb, pt.x, pt.y); + }; + var boundingBoxInBoundingBox = function boundingBoxInBoundingBox(bb1, bb2) { + return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2); + }; + var roundRectangleIntersectLine = function roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding) { + var cornerRadius = getRoundRectangleRadius(width, height); + var halfWidth = width / 2; + var halfHeight = height / 2; // Check intersections with straight line segments + + var straightLineIntersections; // Top segment, left to right + + { + var topStartX = nodeX - halfWidth + cornerRadius - padding; + var topStartY = nodeY - halfHeight - padding; + var topEndX = nodeX + halfWidth - cornerRadius + padding; + var topEndY = topStartY; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false); + + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } // Right segment, top to bottom + + { + var rightStartX = nodeX + halfWidth + padding; + var rightStartY = nodeY - halfHeight + cornerRadius - padding; + var rightEndX = rightStartX; + var rightEndY = nodeY + halfHeight - cornerRadius + padding; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false); + + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } // Bottom segment, left to right + + { + var bottomStartX = nodeX - halfWidth + cornerRadius - padding; + var bottomStartY = nodeY + halfHeight + padding; + var bottomEndX = nodeX + halfWidth - cornerRadius + padding; + var bottomEndY = bottomStartY; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false); + + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } // Left segment, top to bottom + + { + var leftStartX = nodeX - halfWidth - padding; + var leftStartY = nodeY - halfHeight + cornerRadius - padding; + var leftEndX = leftStartX; + var leftEndY = nodeY + halfHeight - cornerRadius + padding; + straightLineIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false); + + if (straightLineIntersections.length > 0) { + return straightLineIntersections; + } + } // Check intersections with arc segments + + var arcIntersections; // Top Left + + { + var topLeftCenterX = nodeX - halfWidth + cornerRadius; + var topLeftCenterY = nodeY - halfHeight + cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding); // Ensure the intersection is on the desired quarter of the circle + + if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } // Top Right + + { + var topRightCenterX = nodeX + halfWidth - cornerRadius; + var topRightCenterY = nodeY - halfHeight + cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding); // Ensure the intersection is on the desired quarter of the circle + + if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } // Bottom Right + + { + var bottomRightCenterX = nodeX + halfWidth - cornerRadius; + var bottomRightCenterY = nodeY + halfHeight - cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding); // Ensure the intersection is on the desired quarter of the circle + + if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } // Bottom Left + + { + var bottomLeftCenterX = nodeX - halfWidth + cornerRadius; + var bottomLeftCenterY = nodeY + halfHeight - cornerRadius; + arcIntersections = intersectLineCircle(x, y, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding); // Ensure the intersection is on the desired quarter of the circle + + if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) { + return [arcIntersections[0], arcIntersections[1]]; + } + } + return []; // if nothing + }; + var inLineVicinity = function inLineVicinity(x, y, lx1, ly1, lx2, ly2, tolerance) { + var t = tolerance; + var x1 = Math.min(lx1, lx2); + var x2 = Math.max(lx1, lx2); + var y1 = Math.min(ly1, ly2); + var y2 = Math.max(ly1, ly2); + return x1 - t <= x && x <= x2 + t && y1 - t <= y && y <= y2 + t; + }; + var inBezierVicinity = function inBezierVicinity(x, y, x1, y1, x2, y2, x3, y3, tolerance) { + var bb = { + x1: Math.min(x1, x3, x2) - tolerance, + x2: Math.max(x1, x3, x2) + tolerance, + y1: Math.min(y1, y3, y2) - tolerance, + y2: Math.max(y1, y3, y2) + tolerance + }; // if outside the rough bounding box for the bezier, then it can't be a hit + + if (x < bb.x1 || x > bb.x2 || y < bb.y1 || y > bb.y2) { + // console.log('bezier out of rough bb') + return false; + } else { + // console.log('do more expensive check'); + return true; + } + }; + var solveQuadratic = function solveQuadratic(a, b, c, val) { + c -= val; + var r = b * b - 4 * a * c; + + if (r < 0) { + return []; + } + + var sqrtR = Math.sqrt(r); + var denom = 2 * a; + var root1 = (-b + sqrtR) / denom; + var root2 = (-b - sqrtR) / denom; + return [root1, root2]; + }; + var solveCubic = function solveCubic(a, b, c, d, result) { + // Solves a cubic function, returns root in form [r1, i1, r2, i2, r3, i3], where + // r is the real component, i is the imaginary component + // An implementation of the Cardano method from the year 1545 + // http://en.wikipedia.org/wiki/Cubic_function#The_nature_of_the_roots + var epsilon = 0.00001; // avoid division by zero while keeping the overall expression close in value + + if (a === 0) { + a = epsilon; + } + + b /= a; + c /= a; + d /= a; + var discriminant, q, r, dum1, s, t, term1, r13; + q = (3.0 * c - b * b) / 9.0; + r = -(27.0 * d) + b * (9.0 * c - 2.0 * (b * b)); + r /= 54.0; + discriminant = q * q * q + r * r; + result[1] = 0; + term1 = b / 3.0; + + if (discriminant > 0) { + s = r + Math.sqrt(discriminant); + s = s < 0 ? -Math.pow(-s, 1.0 / 3.0) : Math.pow(s, 1.0 / 3.0); + t = r - Math.sqrt(discriminant); + t = t < 0 ? -Math.pow(-t, 1.0 / 3.0) : Math.pow(t, 1.0 / 3.0); + result[0] = -term1 + s + t; + term1 += (s + t) / 2.0; + result[4] = result[2] = -term1; + term1 = Math.sqrt(3.0) * (-t + s) / 2; + result[3] = term1; + result[5] = -term1; + return; + } + + result[5] = result[3] = 0; + + if (discriminant === 0) { + r13 = r < 0 ? -Math.pow(-r, 1.0 / 3.0) : Math.pow(r, 1.0 / 3.0); + result[0] = -term1 + 2.0 * r13; + result[4] = result[2] = -(r13 + term1); + return; + } + + q = -q; + dum1 = q * q * q; + dum1 = Math.acos(r / Math.sqrt(dum1)); + r13 = 2.0 * Math.sqrt(q); + result[0] = -term1 + r13 * Math.cos(dum1 / 3.0); + result[2] = -term1 + r13 * Math.cos((dum1 + 2.0 * Math.PI) / 3.0); + result[4] = -term1 + r13 * Math.cos((dum1 + 4.0 * Math.PI) / 3.0); + return; + }; + var sqdistToQuadraticBezier = function sqdistToQuadraticBezier(x, y, x1, y1, x2, y2, x3, y3) { + // Find minimum distance by using the minimum of the distance + // function between the given point and the curve + // This gives the coefficients of the resulting cubic equation + // whose roots tell us where a possible minimum is + // (Coefficients are divided by 4) + var a = 1.0 * x1 * x1 - 4 * x1 * x2 + 2 * x1 * x3 + 4 * x2 * x2 - 4 * x2 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y2 + 2 * y1 * y3 + 4 * y2 * y2 - 4 * y2 * y3 + y3 * y3; + var b = 1.0 * 9 * x1 * x2 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x2 * x2 + 3 * x2 * x3 + 9 * y1 * y2 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y2 * y2 + 3 * y2 * y3; + var c = 1.0 * 3 * x1 * x1 - 6 * x1 * x2 + x1 * x3 - x1 * x + 2 * x2 * x2 + 2 * x2 * x - x3 * x + 3 * y1 * y1 - 6 * y1 * y2 + y1 * y3 - y1 * y + 2 * y2 * y2 + 2 * y2 * y - y3 * y; + var d = 1.0 * x1 * x2 - x1 * x1 + x1 * x - x2 * x + y1 * y2 - y1 * y1 + y1 * y - y2 * y; // debug("coefficients: " + a / a + ", " + b / a + ", " + c / a + ", " + d / a); + + var roots = []; // Use the cubic solving algorithm + + solveCubic(a, b, c, d, roots); + var zeroThreshold = 0.0000001; + var params = []; + + for (var index = 0; index < 6; index += 2) { + if (Math.abs(roots[index + 1]) < zeroThreshold && roots[index] >= 0 && roots[index] <= 1.0) { + params.push(roots[index]); + } + } + + params.push(1.0); + params.push(0.0); + var minDistanceSquared = -1; + var curX, curY, distSquared; + + for (var i = 0; i < params.length; i++) { + curX = Math.pow(1.0 - params[i], 2.0) * x1 + 2.0 * (1 - params[i]) * params[i] * x2 + params[i] * params[i] * x3; + curY = Math.pow(1 - params[i], 2.0) * y1 + 2 * (1.0 - params[i]) * params[i] * y2 + params[i] * params[i] * y3; + distSquared = Math.pow(curX - x, 2) + Math.pow(curY - y, 2); // debug('distance for param ' + params[i] + ": " + Math.sqrt(distSquared)); + + if (minDistanceSquared >= 0) { + if (distSquared < minDistanceSquared) { + minDistanceSquared = distSquared; + } + } else { + minDistanceSquared = distSquared; + } + } + + return minDistanceSquared; + }; + var sqdistToFiniteLine = function sqdistToFiniteLine(x, y, x1, y1, x2, y2) { + var offset = [x - x1, y - y1]; + var line = [x2 - x1, y2 - y1]; + var lineSq = line[0] * line[0] + line[1] * line[1]; + var hypSq = offset[0] * offset[0] + offset[1] * offset[1]; + var dotProduct = offset[0] * line[0] + offset[1] * line[1]; + var adjSq = dotProduct * dotProduct / lineSq; + + if (dotProduct < 0) { + return hypSq; + } + + if (adjSq > lineSq) { + return (x - x2) * (x - x2) + (y - y2) * (y - y2); + } + + return hypSq - adjSq; + }; + var pointInsidePolygonPoints = function pointInsidePolygonPoints(x, y, points) { + var x1, y1, x2, y2; + var y3; // Intersect with vertical line through (x, y) + + var up = 0; // let down = 0; + + for (var i = 0; i < points.length / 2; i++) { + x1 = points[i * 2]; + y1 = points[i * 2 + 1]; + + if (i + 1 < points.length / 2) { + x2 = points[(i + 1) * 2]; + y2 = points[(i + 1) * 2 + 1]; + } else { + x2 = points[(i + 1 - points.length / 2) * 2]; + y2 = points[(i + 1 - points.length / 2) * 2 + 1]; + } + + if (x1 == x && x2 == x) ; else if (x1 >= x && x >= x2 || x1 <= x && x <= x2) { + y3 = (x - x1) / (x2 - x1) * (y2 - y1) + y1; + + if (y3 > y) { + up++; + } // if( y3 < y ){ + // down++; + // } + + } else { + continue; + } + } + + if (up % 2 === 0) { + return false; + } else { + return true; + } + }; + var pointInsidePolygon = function pointInsidePolygon(x, y, basePoints, centerX, centerY, width, height, direction, padding) { + var transformedPoints = new Array(basePoints.length); // Gives negative angle + + var angle; + + if (direction[0] != null) { + angle = Math.atan(direction[1] / direction[0]); + + if (direction[0] < 0) { + angle = angle + Math.PI / 2; + } else { + angle = -angle - Math.PI / 2; + } + } else { + angle = direction; + } + + var cos = Math.cos(-angle); + var sin = Math.sin(-angle); // console.log("base: " + basePoints); + + for (var i = 0; i < transformedPoints.length / 2; i++) { + transformedPoints[i * 2] = width / 2 * (basePoints[i * 2] * cos - basePoints[i * 2 + 1] * sin); + transformedPoints[i * 2 + 1] = height / 2 * (basePoints[i * 2 + 1] * cos + basePoints[i * 2] * sin); + transformedPoints[i * 2] += centerX; + transformedPoints[i * 2 + 1] += centerY; + } + + var points; + + if (padding > 0) { + var expandedLineSet = expandPolygon(transformedPoints, -padding); + points = joinLines(expandedLineSet); + } else { + points = transformedPoints; + } + + return pointInsidePolygonPoints(x, y, points); + }; + var pointInsideRoundPolygon = function pointInsideRoundPolygon(x, y, basePoints, centerX, centerY, width, height) { + var cutPolygonPoints = new Array(basePoints.length); + var halfW = width / 2; + var halfH = height / 2; + var cornerRadius = getRoundPolygonRadius(width, height); + var squaredCornerRadius = cornerRadius * cornerRadius; + + for (var i = 0; i < basePoints.length / 4; i++) { + var sourceUv = void 0, + destUv = void 0; + + if (i === 0) { + sourceUv = basePoints.length - 2; + } else { + sourceUv = i * 4 - 2; + } + + destUv = i * 4 + 2; + var px = centerX + halfW * basePoints[i * 4]; + var py = centerY + halfH * basePoints[i * 4 + 1]; + var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1]; + var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); + var cp0x = px - offset * basePoints[sourceUv]; + var cp0y = py - offset * basePoints[sourceUv + 1]; + var cp1x = px + offset * basePoints[destUv]; + var cp1y = py + offset * basePoints[destUv + 1]; + cutPolygonPoints[i * 4] = cp0x; + cutPolygonPoints[i * 4 + 1] = cp0y; + cutPolygonPoints[i * 4 + 2] = cp1x; + cutPolygonPoints[i * 4 + 3] = cp1y; + var orthx = basePoints[sourceUv + 1]; + var orthy = -basePoints[sourceUv]; + var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1]; + + if (cosAlpha < 0) { + orthx *= -1; + orthy *= -1; + } + + var cx = cp0x + orthx * cornerRadius; + var cy = cp0y + orthy * cornerRadius; + var squaredDistance = Math.pow(cx - x, 2) + Math.pow(cy - y, 2); + + if (squaredDistance <= squaredCornerRadius) { + return true; + } + } + + return pointInsidePolygonPoints(x, y, cutPolygonPoints); + }; + var joinLines = function joinLines(lineSet) { + var vertices = new Array(lineSet.length / 2); + var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY; + var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY; + + for (var i = 0; i < lineSet.length / 4; i++) { + currentLineStartX = lineSet[i * 4]; + currentLineStartY = lineSet[i * 4 + 1]; + currentLineEndX = lineSet[i * 4 + 2]; + currentLineEndY = lineSet[i * 4 + 3]; + + if (i < lineSet.length / 4 - 1) { + nextLineStartX = lineSet[(i + 1) * 4]; + nextLineStartY = lineSet[(i + 1) * 4 + 1]; + nextLineEndX = lineSet[(i + 1) * 4 + 2]; + nextLineEndY = lineSet[(i + 1) * 4 + 3]; + } else { + nextLineStartX = lineSet[0]; + nextLineStartY = lineSet[1]; + nextLineEndX = lineSet[2]; + nextLineEndY = lineSet[3]; + } + + var intersection = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true); + vertices[i * 2] = intersection[0]; + vertices[i * 2 + 1] = intersection[1]; + } + + return vertices; + }; + var expandPolygon = function expandPolygon(points, pad) { + var expandedLineSet = new Array(points.length * 2); + var currentPointX, currentPointY, nextPointX, nextPointY; + + for (var i = 0; i < points.length / 2; i++) { + currentPointX = points[i * 2]; + currentPointY = points[i * 2 + 1]; + + if (i < points.length / 2 - 1) { + nextPointX = points[(i + 1) * 2]; + nextPointY = points[(i + 1) * 2 + 1]; + } else { + nextPointX = points[0]; + nextPointY = points[1]; + } // Current line: [currentPointX, currentPointY] to [nextPointX, nextPointY] + // Assume CCW polygon winding + + + var offsetX = nextPointY - currentPointY; + var offsetY = -(nextPointX - currentPointX); // Normalize + + var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY); + var normalizedOffsetX = offsetX / offsetLength; + var normalizedOffsetY = offsetY / offsetLength; + expandedLineSet[i * 4] = currentPointX + normalizedOffsetX * pad; + expandedLineSet[i * 4 + 1] = currentPointY + normalizedOffsetY * pad; + expandedLineSet[i * 4 + 2] = nextPointX + normalizedOffsetX * pad; + expandedLineSet[i * 4 + 3] = nextPointY + normalizedOffsetY * pad; + } + + return expandedLineSet; + }; + var intersectLineEllipse = function intersectLineEllipse(x, y, centerX, centerY, ellipseWradius, ellipseHradius) { + var dispX = centerX - x; + var dispY = centerY - y; + dispX /= ellipseWradius; + dispY /= ellipseHradius; + var len = Math.sqrt(dispX * dispX + dispY * dispY); + var newLength = len - 1; + + if (newLength < 0) { + return []; + } + + var lenProportion = newLength / len; + return [(centerX - x) * lenProportion + x, (centerY - y) * lenProportion + y]; + }; + var checkInEllipse = function checkInEllipse(x, y, width, height, centerX, centerY, padding) { + x -= centerX; + y -= centerY; + x /= width / 2 + padding; + y /= height / 2 + padding; + return x * x + y * y <= 1; + }; // Returns intersections of increasing distance from line's start point + + var intersectLineCircle = function intersectLineCircle(x1, y1, x2, y2, centerX, centerY, radius) { + // Calculate d, direction vector of line + var d = [x2 - x1, y2 - y1]; // Direction vector of line + + var f = [x1 - centerX, y1 - centerY]; + var a = d[0] * d[0] + d[1] * d[1]; + var b = 2 * (f[0] * d[0] + f[1] * d[1]); + var c = f[0] * f[0] + f[1] * f[1] - radius * radius; + var discriminant = b * b - 4 * a * c; + + if (discriminant < 0) { + return []; + } + + var t1 = (-b + Math.sqrt(discriminant)) / (2 * a); + var t2 = (-b - Math.sqrt(discriminant)) / (2 * a); + var tMin = Math.min(t1, t2); + var tMax = Math.max(t1, t2); + var inRangeParams = []; + + if (tMin >= 0 && tMin <= 1) { + inRangeParams.push(tMin); + } + + if (tMax >= 0 && tMax <= 1) { + inRangeParams.push(tMax); + } + + if (inRangeParams.length === 0) { + return []; + } + + var nearIntersectionX = inRangeParams[0] * d[0] + x1; + var nearIntersectionY = inRangeParams[0] * d[1] + y1; + + if (inRangeParams.length > 1) { + if (inRangeParams[0] == inRangeParams[1]) { + return [nearIntersectionX, nearIntersectionY]; + } else { + var farIntersectionX = inRangeParams[1] * d[0] + x1; + var farIntersectionY = inRangeParams[1] * d[1] + y1; + return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY]; + } + } else { + return [nearIntersectionX, nearIntersectionY]; + } + }; + var midOfThree = function midOfThree(a, b, c) { + if (b <= a && a <= c || c <= a && a <= b) { + return a; + } else if (a <= b && b <= c || c <= b && b <= a) { + return b; + } else { + return c; + } + }; // (x1,y1)=>(x2,y2) intersect with (x3,y3)=>(x4,y4) + + var finiteLinesIntersect = function finiteLinesIntersect(x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) { + var dx13 = x1 - x3; + var dx21 = x2 - x1; + var dx43 = x4 - x3; + var dy13 = y1 - y3; + var dy21 = y2 - y1; + var dy43 = y4 - y3; + var ua_t = dx43 * dy13 - dy43 * dx13; + var ub_t = dx21 * dy13 - dy21 * dx13; + var u_b = dy43 * dx21 - dx43 * dy21; + + if (u_b !== 0) { + var ua = ua_t / u_b; + var ub = ub_t / u_b; + var flptThreshold = 0.001; + + var _min = 0 - flptThreshold; + + var _max = 1 + flptThreshold; + + if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) { + return [x1 + ua * dx21, y1 + ua * dy21]; + } else { + if (!infiniteLines) { + return []; + } else { + return [x1 + ua * dx21, y1 + ua * dy21]; + } + } + } else { + if (ua_t === 0 || ub_t === 0) { + // Parallel, coincident lines. Check if overlap + // Check endpoint of second line + if (midOfThree(x1, x2, x4) === x4) { + return [x4, y4]; + } // Check start point of second line + + + if (midOfThree(x1, x2, x3) === x3) { + return [x3, y3]; + } // Endpoint of first line + + + if (midOfThree(x3, x4, x2) === x2) { + return [x2, y2]; + } + + return []; + } else { + // Parallel, non-coincident + return []; + } + } + }; // math.polygonIntersectLine( x, y, basePoints, centerX, centerY, width, height, padding ) + // intersect a node polygon (pts transformed) + // + // math.polygonIntersectLine( x, y, basePoints, centerX, centerY ) + // intersect the points (no transform) + + var polygonIntersectLine = function polygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding) { + var intersections = []; + var intersection; + var transformedPoints = new Array(basePoints.length); + var doTransform = true; + + if (width == null) { + doTransform = false; + } + + var points; + + if (doTransform) { + for (var i = 0; i < transformedPoints.length / 2; i++) { + transformedPoints[i * 2] = basePoints[i * 2] * width + centerX; + transformedPoints[i * 2 + 1] = basePoints[i * 2 + 1] * height + centerY; + } + + if (padding > 0) { + var expandedLineSet = expandPolygon(transformedPoints, -padding); + points = joinLines(expandedLineSet); + } else { + points = transformedPoints; + } + } else { + points = basePoints; + } + + var currentX, currentY, nextX, nextY; + + for (var _i2 = 0; _i2 < points.length / 2; _i2++) { + currentX = points[_i2 * 2]; + currentY = points[_i2 * 2 + 1]; + + if (_i2 < points.length / 2 - 1) { + nextX = points[(_i2 + 1) * 2]; + nextY = points[(_i2 + 1) * 2 + 1]; + } else { + nextX = points[0]; + nextY = points[1]; + } + + intersection = finiteLinesIntersect(x, y, centerX, centerY, currentX, currentY, nextX, nextY); + + if (intersection.length !== 0) { + intersections.push(intersection[0], intersection[1]); + } + } + + return intersections; + }; + var roundPolygonIntersectLine = function roundPolygonIntersectLine(x, y, basePoints, centerX, centerY, width, height, padding) { + var intersections = []; + var intersection; + var lines = new Array(basePoints.length); + var halfW = width / 2; + var halfH = height / 2; + var cornerRadius = getRoundPolygonRadius(width, height); + + for (var i = 0; i < basePoints.length / 4; i++) { + var sourceUv = void 0, + destUv = void 0; + + if (i === 0) { + sourceUv = basePoints.length - 2; + } else { + sourceUv = i * 4 - 2; + } + + destUv = i * 4 + 2; + var px = centerX + halfW * basePoints[i * 4]; + var py = centerY + halfH * basePoints[i * 4 + 1]; + var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1]; + var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); + var cp0x = px - offset * basePoints[sourceUv]; + var cp0y = py - offset * basePoints[sourceUv + 1]; + var cp1x = px + offset * basePoints[destUv]; + var cp1y = py + offset * basePoints[destUv + 1]; + + if (i === 0) { + lines[basePoints.length - 2] = cp0x; + lines[basePoints.length - 1] = cp0y; + } else { + lines[i * 4 - 2] = cp0x; + lines[i * 4 - 1] = cp0y; + } + + lines[i * 4] = cp1x; + lines[i * 4 + 1] = cp1y; + var orthx = basePoints[sourceUv + 1]; + var orthy = -basePoints[sourceUv]; + var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1]; + + if (cosAlpha < 0) { + orthx *= -1; + orthy *= -1; + } + + var cx = cp0x + orthx * cornerRadius; + var cy = cp0y + orthy * cornerRadius; + intersection = intersectLineCircle(x, y, centerX, centerY, cx, cy, cornerRadius); + + if (intersection.length !== 0) { + intersections.push(intersection[0], intersection[1]); + } + } + + for (var _i3 = 0; _i3 < lines.length / 4; _i3++) { + intersection = finiteLinesIntersect(x, y, centerX, centerY, lines[_i3 * 4], lines[_i3 * 4 + 1], lines[_i3 * 4 + 2], lines[_i3 * 4 + 3], false); + + if (intersection.length !== 0) { + intersections.push(intersection[0], intersection[1]); + } + } + + if (intersections.length > 2) { + var lowestIntersection = [intersections[0], intersections[1]]; + var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x, 2) + Math.pow(lowestIntersection[1] - y, 2); + + for (var _i4 = 1; _i4 < intersections.length / 2; _i4++) { + var squaredDistance = Math.pow(intersections[_i4 * 2] - x, 2) + Math.pow(intersections[_i4 * 2 + 1] - y, 2); + + if (squaredDistance <= lowestSquaredDistance) { + lowestIntersection[0] = intersections[_i4 * 2]; + lowestIntersection[1] = intersections[_i4 * 2 + 1]; + lowestSquaredDistance = squaredDistance; + } + } + + return lowestIntersection; + } + + return intersections; + }; + var shortenIntersection = function shortenIntersection(intersection, offset, amount) { + var disp = [intersection[0] - offset[0], intersection[1] - offset[1]]; + var length = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]); + var lenRatio = (length - amount) / length; + + if (lenRatio < 0) { + lenRatio = 0.00001; + } + + return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]]; + }; + var generateUnitNgonPointsFitToSquare = function generateUnitNgonPointsFitToSquare(sides, rotationRadians) { + var points = generateUnitNgonPoints(sides, rotationRadians); + points = fitPolygonToSquare(points); + return points; + }; + var fitPolygonToSquare = function fitPolygonToSquare(points) { + var x, y; + var sides = points.length / 2; + var minX = Infinity, + minY = Infinity, + maxX = -Infinity, + maxY = -Infinity; + + for (var i = 0; i < sides; i++) { + x = points[2 * i]; + y = points[2 * i + 1]; + minX = Math.min(minX, x); + maxX = Math.max(maxX, x); + minY = Math.min(minY, y); + maxY = Math.max(maxY, y); + } // stretch factors + + + var sx = 2 / (maxX - minX); + var sy = 2 / (maxY - minY); + + for (var _i5 = 0; _i5 < sides; _i5++) { + x = points[2 * _i5] = points[2 * _i5] * sx; + y = points[2 * _i5 + 1] = points[2 * _i5 + 1] * sy; + minX = Math.min(minX, x); + maxX = Math.max(maxX, x); + minY = Math.min(minY, y); + maxY = Math.max(maxY, y); + } + + if (minY < -1) { + for (var _i6 = 0; _i6 < sides; _i6++) { + y = points[2 * _i6 + 1] = points[2 * _i6 + 1] + (-1 - minY); + } + } + + return points; + }; + var generateUnitNgonPoints = function generateUnitNgonPoints(sides, rotationRadians) { + var increment = 1.0 / sides * 2 * Math.PI; + var startAngle = sides % 2 === 0 ? Math.PI / 2.0 + increment / 2.0 : Math.PI / 2.0; + startAngle += rotationRadians; + var points = new Array(sides * 2); + var currentAngle; + + for (var i = 0; i < sides; i++) { + currentAngle = i * increment + startAngle; + points[2 * i] = Math.cos(currentAngle); // x + + points[2 * i + 1] = Math.sin(-currentAngle); // y + } + + return points; + }; // Set the default radius, unless half of width or height is smaller than default + + var getRoundRectangleRadius = function getRoundRectangleRadius(width, height) { + return Math.min(width / 4, height / 4, 8); + }; // Set the default radius + + var getRoundPolygonRadius = function getRoundPolygonRadius(width, height) { + return Math.min(width / 10, height / 10, 8); + }; + var getCutRectangleCornerLength = function getCutRectangleCornerLength() { + return 8; + }; + var bezierPtsToQuadCoeff = function bezierPtsToQuadCoeff(p0, p1, p2) { + return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0]; + }; // get curve width, height, and control point position offsets as a percentage of node height / width + + var getBarrelCurveConstants = function getBarrelCurveConstants(width, height) { + return { + heightOffset: Math.min(15, 0.05 * height), + widthOffset: Math.min(100, 0.25 * width), + ctrlPtOffsetPct: 0.05 + }; + }; + + var pageRankDefaults = defaults$g({ + dampingFactor: 0.8, + precision: 0.000001, + iterations: 200, + weight: function weight(edge) { + return 1; + } + }); + var elesfn$o = { + pageRank: function pageRank(options) { + var _pageRankDefaults = pageRankDefaults(options), + dampingFactor = _pageRankDefaults.dampingFactor, + precision = _pageRankDefaults.precision, + iterations = _pageRankDefaults.iterations, + weight = _pageRankDefaults.weight; + + var cy = this._private.cy; + + var _this$byGroup = this.byGroup(), + nodes = _this$byGroup.nodes, + edges = _this$byGroup.edges; + + var numNodes = nodes.length; + var numNodesSqd = numNodes * numNodes; + var numEdges = edges.length; // Construct transposed adjacency matrix + // First lets have a zeroed matrix of the right size + // We'll also keep track of the sum of each column + + var matrix = new Array(numNodesSqd); + var columnSum = new Array(numNodes); + var additionalProb = (1 - dampingFactor) / numNodes; // Create null matrix + + for (var i = 0; i < numNodes; i++) { + for (var j = 0; j < numNodes; j++) { + var n = i * numNodes + j; + matrix[n] = 0; + } + + columnSum[i] = 0; + } // Now, process edges + + + for (var _i = 0; _i < numEdges; _i++) { + var edge = edges[_i]; + var srcId = edge.data('source'); + var tgtId = edge.data('target'); // Don't include loops in the matrix + + if (srcId === tgtId) { + continue; + } + + var s = nodes.indexOfId(srcId); + var t = nodes.indexOfId(tgtId); + var w = weight(edge); + + var _n = t * numNodes + s; // Update matrix + + + matrix[_n] += w; // Update column sum + + columnSum[s] += w; + } // Add additional probability based on damping factor + // Also, take into account columns that have sum = 0 + + + var p = 1.0 / numNodes + additionalProb; // Shorthand + // Traverse matrix, column by column + + for (var _j = 0; _j < numNodes; _j++) { + if (columnSum[_j] === 0) { + // No 'links' out from node jth, assume equal probability for each possible node + for (var _i2 = 0; _i2 < numNodes; _i2++) { + var _n2 = _i2 * numNodes + _j; + + matrix[_n2] = p; + } + } else { + // Node jth has outgoing link, compute normalized probabilities + for (var _i3 = 0; _i3 < numNodes; _i3++) { + var _n3 = _i3 * numNodes + _j; + + matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb; + } + } + } // Compute dominant eigenvector using power method + + + var eigenvector = new Array(numNodes); + var temp = new Array(numNodes); + var previous; // Start with a vector of all 1's + // Also, initialize a null vector which will be used as shorthand + + for (var _i4 = 0; _i4 < numNodes; _i4++) { + eigenvector[_i4] = 1; + } + + for (var iter = 0; iter < iterations; iter++) { + // Temp array with all 0's + for (var _i5 = 0; _i5 < numNodes; _i5++) { + temp[_i5] = 0; + } // Multiply matrix with previous result + + + for (var _i6 = 0; _i6 < numNodes; _i6++) { + for (var _j2 = 0; _j2 < numNodes; _j2++) { + var _n4 = _i6 * numNodes + _j2; + + temp[_i6] += matrix[_n4] * eigenvector[_j2]; + } + } + + inPlaceSumNormalize(temp); + previous = eigenvector; + eigenvector = temp; + temp = previous; + var diff = 0; // Compute difference (squared module) of both vectors + + for (var _i7 = 0; _i7 < numNodes; _i7++) { + var delta = previous[_i7] - eigenvector[_i7]; + diff += delta * delta; + } // If difference is less than the desired threshold, stop iterating + + + if (diff < precision) { + break; + } + } // Construct result + + + var res = { + rank: function rank(node) { + node = cy.collection(node)[0]; + return eigenvector[nodes.indexOf(node)]; + } + }; + return res; + } // pageRank + + }; // elesfn + + var defaults$f = defaults$g({ + root: null, + weight: function weight(edge) { + return 1; + }, + directed: false, + alpha: 0 + }); + var elesfn$n = { + degreeCentralityNormalized: function degreeCentralityNormalized(options) { + options = defaults$f(options); + var cy = this.cy(); + var nodes = this.nodes(); + var numNodes = nodes.length; + + if (!options.directed) { + var degrees = {}; + var maxDegree = 0; + + for (var i = 0; i < numNodes; i++) { + var node = nodes[i]; // add current node to the current options object and call degreeCentrality + + options.root = node; + var currDegree = this.degreeCentrality(options); + + if (maxDegree < currDegree.degree) { + maxDegree = currDegree.degree; + } + + degrees[node.id()] = currDegree.degree; + } + + return { + degree: function degree(node) { + if (maxDegree === 0) { + return 0; + } + + if (string(node)) { + // from is a selector string + node = cy.filter(node); + } + + return degrees[node.id()] / maxDegree; + } + }; + } else { + var indegrees = {}; + var outdegrees = {}; + var maxIndegree = 0; + var maxOutdegree = 0; + + for (var _i = 0; _i < numNodes; _i++) { + var _node = nodes[_i]; + + var id = _node.id(); // add current node to the current options object and call degreeCentrality + + + options.root = _node; + + var _currDegree = this.degreeCentrality(options); + + if (maxIndegree < _currDegree.indegree) maxIndegree = _currDegree.indegree; + if (maxOutdegree < _currDegree.outdegree) maxOutdegree = _currDegree.outdegree; + indegrees[id] = _currDegree.indegree; + outdegrees[id] = _currDegree.outdegree; + } + + return { + indegree: function indegree(node) { + if (maxIndegree == 0) { + return 0; + } + + if (string(node)) { + // from is a selector string + node = cy.filter(node); + } + + return indegrees[node.id()] / maxIndegree; + }, + outdegree: function outdegree(node) { + if (maxOutdegree === 0) { + return 0; + } + + if (string(node)) { + // from is a selector string + node = cy.filter(node); + } + + return outdegrees[node.id()] / maxOutdegree; + } + }; + } + }, + // degreeCentralityNormalized + // Implemented from the algorithm in Opsahl's paper + // "Node centrality in weighted networks: Generalizing degree and shortest paths" + // check the heading 2 "Degree" + degreeCentrality: function degreeCentrality(options) { + options = defaults$f(options); + var cy = this.cy(); + var callingEles = this; + var _options = options, + root = _options.root, + weight = _options.weight, + directed = _options.directed, + alpha = _options.alpha; + root = cy.collection(root)[0]; + + if (!directed) { + var connEdges = root.connectedEdges().intersection(callingEles); + var k = connEdges.length; + var s = 0; // Now, sum edge weights + + for (var i = 0; i < connEdges.length; i++) { + s += weight(connEdges[i]); + } + + return { + degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha) + }; + } else { + var edges = root.connectedEdges(); + var incoming = edges.filter(function (edge) { + return edge.target().same(root) && callingEles.has(edge); + }); + var outgoing = edges.filter(function (edge) { + return edge.source().same(root) && callingEles.has(edge); + }); + var k_in = incoming.length; + var k_out = outgoing.length; + var s_in = 0; + var s_out = 0; // Now, sum incoming edge weights + + for (var _i2 = 0; _i2 < incoming.length; _i2++) { + s_in += weight(incoming[_i2]); + } // Now, sum outgoing edge weights + + + for (var _i3 = 0; _i3 < outgoing.length; _i3++) { + s_out += weight(outgoing[_i3]); + } + + return { + indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha), + outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha) + }; + } + } // degreeCentrality + + }; // elesfn + // nice, short mathematical alias + + elesfn$n.dc = elesfn$n.degreeCentrality; + elesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized; + + var defaults$e = defaults$g({ + harmonic: true, + weight: function weight() { + return 1; + }, + directed: false, + root: null + }); + var elesfn$m = { + closenessCentralityNormalized: function closenessCentralityNormalized(options) { + var _defaults = defaults$e(options), + harmonic = _defaults.harmonic, + weight = _defaults.weight, + directed = _defaults.directed; + + var cy = this.cy(); + var closenesses = {}; + var maxCloseness = 0; + var nodes = this.nodes(); + var fw = this.floydWarshall({ + weight: weight, + directed: directed + }); // Compute closeness for every node and find the maximum closeness + + for (var i = 0; i < nodes.length; i++) { + var currCloseness = 0; + var node_i = nodes[i]; + + for (var j = 0; j < nodes.length; j++) { + if (i !== j) { + var d = fw.distance(node_i, nodes[j]); + + if (harmonic) { + currCloseness += 1 / d; + } else { + currCloseness += d; + } + } + } + + if (!harmonic) { + currCloseness = 1 / currCloseness; + } + + if (maxCloseness < currCloseness) { + maxCloseness = currCloseness; + } + + closenesses[node_i.id()] = currCloseness; + } + + return { + closeness: function closeness(node) { + if (maxCloseness == 0) { + return 0; + } + + if (string(node)) { + // from is a selector string + node = cy.filter(node)[0].id(); + } else { + // from is a node + node = node.id(); + } + + return closenesses[node] / maxCloseness; + } + }; + }, + // Implemented from pseudocode from wikipedia + closenessCentrality: function closenessCentrality(options) { + var _defaults2 = defaults$e(options), + root = _defaults2.root, + weight = _defaults2.weight, + directed = _defaults2.directed, + harmonic = _defaults2.harmonic; + + root = this.filter(root)[0]; // we need distance from this node to every other node + + var dijkstra = this.dijkstra({ + root: root, + weight: weight, + directed: directed + }); + var totalDistance = 0; + var nodes = this.nodes(); + + for (var i = 0; i < nodes.length; i++) { + var n = nodes[i]; + + if (!n.same(root)) { + var d = dijkstra.distanceTo(n); + + if (harmonic) { + totalDistance += 1 / d; + } else { + totalDistance += d; + } + } + } + + return harmonic ? totalDistance : 1 / totalDistance; + } // closenessCentrality + + }; // elesfn + // nice, short mathematical alias + + elesfn$m.cc = elesfn$m.closenessCentrality; + elesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized; + + var defaults$d = defaults$g({ + weight: null, + directed: false + }); + var elesfn$l = { + // Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes + betweennessCentrality: function betweennessCentrality(options) { + var _defaults = defaults$d(options), + directed = _defaults.directed, + weight = _defaults.weight; + + var weighted = weight != null; + var cy = this.cy(); // starting + + var V = this.nodes(); + var A = {}; + var _C = {}; + var max = 0; + var C = { + set: function set(key, val) { + _C[key] = val; + + if (val > max) { + max = val; + } + }, + get: function get(key) { + return _C[key]; + } + }; // A contains the neighborhoods of every node + + for (var i = 0; i < V.length; i++) { + var v = V[i]; + var vid = v.id(); + + if (directed) { + A[vid] = v.outgoers().nodes(); // get outgoers of every node + } else { + A[vid] = v.openNeighborhood().nodes(); // get neighbors of every node + } + + C.set(vid, 0); + } + + var _loop = function _loop(s) { + var sid = V[s].id(); + var S = []; // stack + + var P = {}; + var g = {}; + var d = {}; + var Q = new heap(function (a, b) { + return d[a] - d[b]; + }); // queue + // init dictionaries + + for (var _i = 0; _i < V.length; _i++) { + var _vid = V[_i].id(); + + P[_vid] = []; + g[_vid] = 0; + d[_vid] = Infinity; + } + + g[sid] = 1; // sigma + + d[sid] = 0; // distance to s + + Q.push(sid); + + while (!Q.empty()) { + var _v = Q.pop(); + + S.push(_v); + + if (weighted) { + for (var j = 0; j < A[_v].length; j++) { + var w = A[_v][j]; + var vEle = cy.getElementById(_v); + var edge = void 0; + + if (vEle.edgesTo(w).length > 0) { + edge = vEle.edgesTo(w)[0]; + } else { + edge = w.edgesTo(vEle)[0]; + } + + var edgeWeight = weight(edge); + w = w.id(); + + if (d[w] > d[_v] + edgeWeight) { + d[w] = d[_v] + edgeWeight; + + if (Q.nodes.indexOf(w) < 0) { + //if w is not in Q + Q.push(w); + } else { + // update position if w is in Q + Q.updateItem(w); + } + + g[w] = 0; + P[w] = []; + } + + if (d[w] == d[_v] + edgeWeight) { + g[w] = g[w] + g[_v]; + P[w].push(_v); + } + } + } else { + for (var _j = 0; _j < A[_v].length; _j++) { + var _w = A[_v][_j].id(); + + if (d[_w] == Infinity) { + Q.push(_w); + d[_w] = d[_v] + 1; + } + + if (d[_w] == d[_v] + 1) { + g[_w] = g[_w] + g[_v]; + + P[_w].push(_v); + } + } + } + } + + var e = {}; + + for (var _i2 = 0; _i2 < V.length; _i2++) { + e[V[_i2].id()] = 0; + } + + while (S.length > 0) { + var _w2 = S.pop(); + + for (var _j2 = 0; _j2 < P[_w2].length; _j2++) { + var _v2 = P[_w2][_j2]; + e[_v2] = e[_v2] + g[_v2] / g[_w2] * (1 + e[_w2]); + } + + if (_w2 != V[s].id()) { + C.set(_w2, C.get(_w2) + e[_w2]); + } + } + }; + + for (var s = 0; s < V.length; s++) { + _loop(s); + } + + var ret = { + betweenness: function betweenness(node) { + var id = cy.collection(node).id(); + return C.get(id); + }, + betweennessNormalized: function betweennessNormalized(node) { + if (max == 0) { + return 0; + } + + var id = cy.collection(node).id(); + return C.get(id) / max; + } + }; // alias + + ret.betweennessNormalised = ret.betweennessNormalized; + return ret; + } // betweennessCentrality + + }; // elesfn + // nice, short mathematical alias + + elesfn$l.bc = elesfn$l.betweennessCentrality; + + // Implemented by Zoe Xi @zoexi for GSOC 2016 + /* eslint-disable no-unused-vars */ + + var defaults$c = defaults$g({ + expandFactor: 2, + // affects time of computation and cluster granularity to some extent: M * M + inflateFactor: 2, + // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j) + multFactor: 1, + // optional self loops for each node. Use a neutral value to improve cluster computations. + maxIterations: 20, + // maximum number of iterations of the MCL algorithm in a single run + attributes: [// attributes/features used to group nodes, ie. similarity values between nodes + function (edge) { + return 1; + }] + }); + /* eslint-enable */ + + var setOptions$3 = function setOptions(options) { + return defaults$c(options); + }; + /* eslint-enable */ + + + var getSimilarity$1 = function getSimilarity(edge, attributes) { + var total = 0; + + for (var i = 0; i < attributes.length; i++) { + total += attributes[i](edge); + } + + return total; + }; + + var addLoops = function addLoops(M, n, val) { + for (var i = 0; i < n; i++) { + M[i * n + i] = val; + } + }; + + var normalize = function normalize(M, n) { + var sum; + + for (var col = 0; col < n; col++) { + sum = 0; + + for (var row = 0; row < n; row++) { + sum += M[row * n + col]; + } + + for (var _row = 0; _row < n; _row++) { + M[_row * n + col] = M[_row * n + col] / sum; + } + } + }; // TODO: blocked matrix multiplication? + + + var mmult = function mmult(A, B, n) { + var C = new Array(n * n); + + for (var i = 0; i < n; i++) { + for (var j = 0; j < n; j++) { + C[i * n + j] = 0; + } + + for (var k = 0; k < n; k++) { + for (var _j = 0; _j < n; _j++) { + C[i * n + _j] += A[i * n + k] * B[k * n + _j]; + } + } + } + + return C; + }; + + var expand = function expand(M, n, expandFactor + /** power **/ + ) { + var _M = M.slice(0); + + for (var p = 1; p < expandFactor; p++) { + M = mmult(M, _M, n); + } + + return M; + }; + + var inflate = function inflate(M, n, inflateFactor + /** r **/ + ) { + var _M = new Array(n * n); // M(i,j) ^ inflatePower + + + for (var i = 0; i < n * n; i++) { + _M[i] = Math.pow(M[i], inflateFactor); + } + + normalize(_M, n); + return _M; + }; + + var hasConverged = function hasConverged(M, _M, n2, roundFactor) { + // Check that both matrices have the same elements (i,j) + for (var i = 0; i < n2; i++) { + var v1 = Math.round(M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); // truncate to 'roundFactor' decimal places + + var v2 = Math.round(_M[i] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor); + + if (v1 !== v2) { + return false; + } + } + + return true; + }; + + var assign$2 = function assign(M, n, nodes, cy) { + var clusters = []; + + for (var i = 0; i < n; i++) { + var cluster = []; + + for (var j = 0; j < n; j++) { + // Row-wise attractors and elements that they attract belong in same cluster + if (Math.round(M[i * n + j] * 1000) / 1000 > 0) { + cluster.push(nodes[j]); + } + } + + if (cluster.length !== 0) { + clusters.push(cy.collection(cluster)); + } + } + + return clusters; + }; + + var isDuplicate = function isDuplicate(c1, c2) { + for (var i = 0; i < c1.length; i++) { + if (!c2[i] || c1[i].id() !== c2[i].id()) { + return false; + } + } + + return true; + }; + + var removeDuplicates = function removeDuplicates(clusters) { + for (var i = 0; i < clusters.length; i++) { + for (var j = 0; j < clusters.length; j++) { + if (i != j && isDuplicate(clusters[i], clusters[j])) { + clusters.splice(j, 1); + } + } + } + + return clusters; + }; + + var markovClustering = function markovClustering(options) { + var nodes = this.nodes(); + var edges = this.edges(); + var cy = this.cy(); // Set parameters of algorithm: + + var opts = setOptions$3(options); // Map each node to its position in node array + + var id2position = {}; + + for (var i = 0; i < nodes.length; i++) { + id2position[nodes[i].id()] = i; + } // Generate stochastic matrix M from input graph G (should be symmetric/undirected) + + + var n = nodes.length, + n2 = n * n; + + var M = new Array(n2), + _M; + + for (var _i = 0; _i < n2; _i++) { + M[_i] = 0; + } + + for (var e = 0; e < edges.length; e++) { + var edge = edges[e]; + var _i2 = id2position[edge.source().id()]; + var j = id2position[edge.target().id()]; + var sim = getSimilarity$1(edge, opts.attributes); + M[_i2 * n + j] += sim; // G should be symmetric and undirected + + M[j * n + _i2] += sim; + } // Begin Markov cluster algorithm + // Step 1: Add self loops to each node, ie. add multFactor to matrix diagonal + + + addLoops(M, n, opts.multFactor); // Step 2: M = normalize( M ); + + normalize(M, n); + var isStillMoving = true; + var iterations = 0; + + while (isStillMoving && iterations < opts.maxIterations) { + isStillMoving = false; // Step 3: + + _M = expand(M, n, opts.expandFactor); // Step 4: + + M = inflate(_M, n, opts.inflateFactor); // Step 5: check to see if ~steady state has been reached + + if (!hasConverged(M, _M, n2, 4)) { + isStillMoving = true; + } + + iterations++; + } // Build clusters from matrix + + + var clusters = assign$2(M, n, nodes, cy); // Remove duplicate clusters due to symmetry of graph and M matrix + + clusters = removeDuplicates(clusters); + return clusters; + }; + + var markovClustering$1 = { + markovClustering: markovClustering, + mcl: markovClustering + }; + + // Common distance metrics for clustering algorithms + + var identity = function identity(x) { + return x; + }; + + var absDiff = function absDiff(p, q) { + return Math.abs(q - p); + }; + + var addAbsDiff = function addAbsDiff(total, p, q) { + return total + absDiff(p, q); + }; + + var addSquaredDiff = function addSquaredDiff(total, p, q) { + return total + Math.pow(q - p, 2); + }; + + var sqrt = function sqrt(x) { + return Math.sqrt(x); + }; + + var maxAbsDiff = function maxAbsDiff(currentMax, p, q) { + return Math.max(currentMax, absDiff(p, q)); + }; + + var getDistance = function getDistance(length, getP, getQ, init, visit) { + var post = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : identity; + var ret = init; + var p, q; + + for (var dim = 0; dim < length; dim++) { + p = getP(dim); + q = getQ(dim); + ret = visit(ret, p, q); + } + + return post(ret); + }; + + var distances = { + euclidean: function euclidean(length, getP, getQ) { + if (length >= 2) { + return getDistance(length, getP, getQ, 0, addSquaredDiff, sqrt); + } else { + // for single attr case, more efficient to avoid sqrt + return getDistance(length, getP, getQ, 0, addAbsDiff); + } + }, + squaredEuclidean: function squaredEuclidean(length, getP, getQ) { + return getDistance(length, getP, getQ, 0, addSquaredDiff); + }, + manhattan: function manhattan(length, getP, getQ) { + return getDistance(length, getP, getQ, 0, addAbsDiff); + }, + max: function max(length, getP, getQ) { + return getDistance(length, getP, getQ, -Infinity, maxAbsDiff); + } + }; // in case the user accidentally doesn't use camel case + + distances['squared-euclidean'] = distances['squaredEuclidean']; + distances['squaredeuclidean'] = distances['squaredEuclidean']; + function clusteringDistance (method, length, getP, getQ, nodeP, nodeQ) { + var impl; + + if (fn$6(method)) { + impl = method; + } else { + impl = distances[method] || distances.euclidean; + } + + if (length === 0 && fn$6(method)) { + return impl(nodeP, nodeQ); + } else { + return impl(length, getP, getQ, nodeP, nodeQ); + } + } + + var defaults$b = defaults$g({ + k: 2, + m: 2, + sensitivityThreshold: 0.0001, + distance: 'euclidean', + maxIterations: 10, + attributes: [], + testMode: false, + testCentroids: null + }); + + var setOptions$2 = function setOptions(options) { + return defaults$b(options); + }; + /* eslint-enable */ + + + var getDist = function getDist(type, node, centroid, attributes, mode) { + var noNodeP = mode !== 'kMedoids'; + var getP = noNodeP ? function (i) { + return centroid[i]; + } : function (i) { + return attributes[i](centroid); + }; + + var getQ = function getQ(i) { + return attributes[i](node); + }; + + var nodeP = centroid; + var nodeQ = node; + return clusteringDistance(type, attributes.length, getP, getQ, nodeP, nodeQ); + }; + + var randomCentroids = function randomCentroids(nodes, k, attributes) { + var ndim = attributes.length; + var min = new Array(ndim); + var max = new Array(ndim); + var centroids = new Array(k); + var centroid = null; // Find min, max values for each attribute dimension + + for (var i = 0; i < ndim; i++) { + min[i] = nodes.min(attributes[i]).value; + max[i] = nodes.max(attributes[i]).value; + } // Build k centroids, each represented as an n-dim feature vector + + + for (var c = 0; c < k; c++) { + centroid = []; + + for (var _i = 0; _i < ndim; _i++) { + centroid[_i] = Math.random() * (max[_i] - min[_i]) + min[_i]; // random initial value + } + + centroids[c] = centroid; + } + + return centroids; + }; + + var classify = function classify(node, centroids, distance, attributes, type) { + var min = Infinity; + var index = 0; + + for (var i = 0; i < centroids.length; i++) { + var dist = getDist(distance, node, centroids[i], attributes, type); + + if (dist < min) { + min = dist; + index = i; + } + } + + return index; + }; + + var buildCluster = function buildCluster(centroid, nodes, assignment) { + var cluster = []; + var node = null; + + for (var n = 0; n < nodes.length; n++) { + node = nodes[n]; + + if (assignment[node.id()] === centroid) { + //console.log("Node " + node.id() + " is associated with medoid #: " + m); + cluster.push(node); + } + } + + return cluster; + }; + + var haveValuesConverged = function haveValuesConverged(v1, v2, sensitivityThreshold) { + return Math.abs(v2 - v1) <= sensitivityThreshold; + }; + + var haveMatricesConverged = function haveMatricesConverged(v1, v2, sensitivityThreshold) { + for (var i = 0; i < v1.length; i++) { + for (var j = 0; j < v1[i].length; j++) { + var diff = Math.abs(v1[i][j] - v2[i][j]); + + if (diff > sensitivityThreshold) { + return false; + } + } + } + + return true; + }; + + var seenBefore = function seenBefore(node, medoids, n) { + for (var i = 0; i < n; i++) { + if (node === medoids[i]) return true; + } + + return false; + }; + + var randomMedoids = function randomMedoids(nodes, k) { + var medoids = new Array(k); // For small data sets, the probability of medoid conflict is greater, + // so we need to check to see if we've already seen or chose this node before. + + if (nodes.length < 50) { + // Randomly select k medoids from the n nodes + for (var i = 0; i < k; i++) { + var node = nodes[Math.floor(Math.random() * nodes.length)]; // If we've already chosen this node to be a medoid, don't choose it again (for small data sets). + // Instead choose a different random node. + + while (seenBefore(node, medoids, i)) { + node = nodes[Math.floor(Math.random() * nodes.length)]; + } + + medoids[i] = node; + } + } else { + // Relatively large data set, so pretty safe to not check and just select random nodes + for (var _i2 = 0; _i2 < k; _i2++) { + medoids[_i2] = nodes[Math.floor(Math.random() * nodes.length)]; + } + } + + return medoids; + }; + + var findCost = function findCost(potentialNewMedoid, cluster, attributes) { + var cost = 0; + + for (var n = 0; n < cluster.length; n++) { + cost += getDist('manhattan', cluster[n], potentialNewMedoid, attributes, 'kMedoids'); + } + + return cost; + }; + + var kMeans = function kMeans(options) { + var cy = this.cy(); + var nodes = this.nodes(); + var node = null; // Set parameters of algorithm: # of clusters, distance metric, etc. + + var opts = setOptions$2(options); // Begin k-means algorithm + + var clusters = new Array(opts.k); + var assignment = {}; + var centroids; // Step 1: Initialize centroid positions + + if (opts.testMode) { + if (typeof opts.testCentroids === 'number') { + // TODO: implement a seeded random number generator. + opts.testCentroids; + centroids = randomCentroids(nodes, opts.k, opts.attributes); + } else if (_typeof(opts.testCentroids) === 'object') { + centroids = opts.testCentroids; + } else { + centroids = randomCentroids(nodes, opts.k, opts.attributes); + } + } else { + centroids = randomCentroids(nodes, opts.k, opts.attributes); + } + + var isStillMoving = true; + var iterations = 0; + + while (isStillMoving && iterations < opts.maxIterations) { + // Step 2: Assign nodes to the nearest centroid + for (var n = 0; n < nodes.length; n++) { + node = nodes[n]; // Determine which cluster this node belongs to: node id => cluster # + + assignment[node.id()] = classify(node, centroids, opts.distance, opts.attributes, 'kMeans'); + } // Step 3: For each of the k clusters, update its centroid + + + isStillMoving = false; + + for (var c = 0; c < opts.k; c++) { + // Get all nodes that belong to this cluster + var cluster = buildCluster(c, nodes, assignment); + + if (cluster.length === 0) { + // If cluster is empty, break out early & move to next cluster + continue; + } // Update centroids by calculating avg of all nodes within the cluster. + + + var ndim = opts.attributes.length; + var centroid = centroids[c]; // [ dim_1, dim_2, dim_3, ... , dim_n ] + + var newCentroid = new Array(ndim); + var sum = new Array(ndim); + + for (var d = 0; d < ndim; d++) { + sum[d] = 0.0; + + for (var i = 0; i < cluster.length; i++) { + node = cluster[i]; + sum[d] += opts.attributes[d](node); + } + + newCentroid[d] = sum[d] / cluster.length; // Check to see if algorithm has converged, i.e. when centroids no longer change + + if (!haveValuesConverged(newCentroid[d], centroid[d], opts.sensitivityThreshold)) { + isStillMoving = true; + } + } + + centroids[c] = newCentroid; + clusters[c] = cy.collection(cluster); + } + + iterations++; + } + + return clusters; + }; + + var kMedoids = function kMedoids(options) { + var cy = this.cy(); + var nodes = this.nodes(); + var node = null; + var opts = setOptions$2(options); // Begin k-medoids algorithm + + var clusters = new Array(opts.k); + var medoids; + var assignment = {}; + var curCost; + var minCosts = new Array(opts.k); // minimum cost configuration for each cluster + // Step 1: Initialize k medoids + + if (opts.testMode) { + if (typeof opts.testCentroids === 'number') ; else if (_typeof(opts.testCentroids) === 'object') { + medoids = opts.testCentroids; + } else { + medoids = randomMedoids(nodes, opts.k); + } + } else { + medoids = randomMedoids(nodes, opts.k); + } + + var isStillMoving = true; + var iterations = 0; + + while (isStillMoving && iterations < opts.maxIterations) { + // Step 2: Assign nodes to the nearest medoid + for (var n = 0; n < nodes.length; n++) { + node = nodes[n]; // Determine which cluster this node belongs to: node id => cluster # + + assignment[node.id()] = classify(node, medoids, opts.distance, opts.attributes, 'kMedoids'); + } + + isStillMoving = false; // Step 3: For each medoid m, and for each node associated with mediod m, + // select the node with the lowest configuration cost as new medoid. + + for (var m = 0; m < medoids.length; m++) { + // Get all nodes that belong to this medoid + var cluster = buildCluster(m, nodes, assignment); + + if (cluster.length === 0) { + // If cluster is empty, break out early & move to next cluster + continue; + } + + minCosts[m] = findCost(medoids[m], cluster, opts.attributes); // original cost + // Select different medoid if its configuration has the lowest cost + + for (var _n = 0; _n < cluster.length; _n++) { + curCost = findCost(cluster[_n], cluster, opts.attributes); + + if (curCost < minCosts[m]) { + minCosts[m] = curCost; + medoids[m] = cluster[_n]; + isStillMoving = true; + } + } + + clusters[m] = cy.collection(cluster); + } + + iterations++; + } + + return clusters; + }; + + var updateCentroids = function updateCentroids(centroids, nodes, U, weight, opts) { + var numerator, denominator; + + for (var n = 0; n < nodes.length; n++) { + for (var c = 0; c < centroids.length; c++) { + weight[n][c] = Math.pow(U[n][c], opts.m); + } + } + + for (var _c = 0; _c < centroids.length; _c++) { + for (var dim = 0; dim < opts.attributes.length; dim++) { + numerator = 0; + denominator = 0; + + for (var _n2 = 0; _n2 < nodes.length; _n2++) { + numerator += weight[_n2][_c] * opts.attributes[dim](nodes[_n2]); + denominator += weight[_n2][_c]; + } + + centroids[_c][dim] = numerator / denominator; + } + } + }; + + var updateMembership = function updateMembership(U, _U, centroids, nodes, opts) { + // Save previous step + for (var i = 0; i < U.length; i++) { + _U[i] = U[i].slice(); + } + + var sum, numerator, denominator; + var pow = 2 / (opts.m - 1); + + for (var c = 0; c < centroids.length; c++) { + for (var n = 0; n < nodes.length; n++) { + sum = 0; + + for (var k = 0; k < centroids.length; k++) { + // against all other centroids + numerator = getDist(opts.distance, nodes[n], centroids[c], opts.attributes, 'cmeans'); + denominator = getDist(opts.distance, nodes[n], centroids[k], opts.attributes, 'cmeans'); + sum += Math.pow(numerator / denominator, pow); + } + + U[n][c] = 1 / sum; + } + } + }; + + var assign$1 = function assign(nodes, U, opts, cy) { + var clusters = new Array(opts.k); + + for (var c = 0; c < clusters.length; c++) { + clusters[c] = []; + } + + var max; + var index; + + for (var n = 0; n < U.length; n++) { + // for each node (U is N x C matrix) + max = -Infinity; + index = -1; // Determine which cluster the node is most likely to belong in + + for (var _c2 = 0; _c2 < U[0].length; _c2++) { + if (U[n][_c2] > max) { + max = U[n][_c2]; + index = _c2; + } + } + + clusters[index].push(nodes[n]); + } // Turn every array into a collection of nodes + + + for (var _c3 = 0; _c3 < clusters.length; _c3++) { + clusters[_c3] = cy.collection(clusters[_c3]); + } + + return clusters; + }; + + var fuzzyCMeans = function fuzzyCMeans(options) { + var cy = this.cy(); + var nodes = this.nodes(); + var opts = setOptions$2(options); // Begin fuzzy c-means algorithm + + var clusters; + var centroids; + var U; + + var _U; + + var weight; // Step 1: Initialize letiables. + + _U = new Array(nodes.length); + + for (var i = 0; i < nodes.length; i++) { + // N x C matrix + _U[i] = new Array(opts.k); + } + + U = new Array(nodes.length); + + for (var _i3 = 0; _i3 < nodes.length; _i3++) { + // N x C matrix + U[_i3] = new Array(opts.k); + } + + for (var _i4 = 0; _i4 < nodes.length; _i4++) { + var total = 0; + + for (var j = 0; j < opts.k; j++) { + U[_i4][j] = Math.random(); + total += U[_i4][j]; + } + + for (var _j = 0; _j < opts.k; _j++) { + U[_i4][_j] = U[_i4][_j] / total; + } + } + + centroids = new Array(opts.k); + + for (var _i5 = 0; _i5 < opts.k; _i5++) { + centroids[_i5] = new Array(opts.attributes.length); + } + + weight = new Array(nodes.length); + + for (var _i6 = 0; _i6 < nodes.length; _i6++) { + // N x C matrix + weight[_i6] = new Array(opts.k); + } // end init FCM + + + var isStillMoving = true; + var iterations = 0; + + while (isStillMoving && iterations < opts.maxIterations) { + isStillMoving = false; // Step 2: Calculate the centroids for each step. + + updateCentroids(centroids, nodes, U, weight, opts); // Step 3: Update the partition matrix U. + + updateMembership(U, _U, centroids, nodes, opts); // Step 4: Check for convergence. + + if (!haveMatricesConverged(U, _U, opts.sensitivityThreshold)) { + isStillMoving = true; + } + + iterations++; + } // Assign nodes to clusters with highest probability. + + + clusters = assign$1(nodes, U, opts, cy); + return { + clusters: clusters, + degreeOfMembership: U + }; + }; + + var kClustering = { + kMeans: kMeans, + kMedoids: kMedoids, + fuzzyCMeans: fuzzyCMeans, + fcm: fuzzyCMeans + }; + + // Implemented by Zoe Xi @zoexi for GSOC 2016 + var defaults$a = defaults$g({ + distance: 'euclidean', + // distance metric to compare nodes + linkage: 'min', + // linkage criterion : how to determine the distance between clusters of nodes + mode: 'threshold', + // mode:'threshold' => clusters must be threshold distance apart + threshold: Infinity, + // the distance threshold + // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters + addDendrogram: false, + // whether to add the dendrogram to the graph for viz + dendrogramDepth: 0, + // depth at which dendrogram branches are merged into the returned clusters + attributes: [] // array of attr functions + + }); + var linkageAliases = { + 'single': 'min', + 'complete': 'max' + }; + + var setOptions$1 = function setOptions(options) { + var opts = defaults$a(options); + var preferredAlias = linkageAliases[opts.linkage]; + + if (preferredAlias != null) { + opts.linkage = preferredAlias; + } + + return opts; + }; + + var mergeClosest = function mergeClosest(clusters, index, dists, mins, opts) { + // Find two closest clusters from cached mins + var minKey = 0; + var min = Infinity; + var dist; + var attrs = opts.attributes; + + var getDist = function getDist(n1, n2) { + return clusteringDistance(opts.distance, attrs.length, function (i) { + return attrs[i](n1); + }, function (i) { + return attrs[i](n2); + }, n1, n2); + }; + + for (var i = 0; i < clusters.length; i++) { + var key = clusters[i].key; + var _dist = dists[key][mins[key]]; + + if (_dist < min) { + minKey = key; + min = _dist; + } + } + + if (opts.mode === 'threshold' && min >= opts.threshold || opts.mode === 'dendrogram' && clusters.length === 1) { + return false; + } + + var c1 = index[minKey]; + var c2 = index[mins[minKey]]; + var merged; // Merge two closest clusters + + if (opts.mode === 'dendrogram') { + merged = { + left: c1, + right: c2, + key: c1.key + }; + } else { + merged = { + value: c1.value.concat(c2.value), + key: c1.key + }; + } + + clusters[c1.index] = merged; + clusters.splice(c2.index, 1); + index[c1.key] = merged; // Update distances with new merged cluster + + for (var _i = 0; _i < clusters.length; _i++) { + var cur = clusters[_i]; + + if (c1.key === cur.key) { + dist = Infinity; + } else if (opts.linkage === 'min') { + dist = dists[c1.key][cur.key]; + + if (dists[c1.key][cur.key] > dists[c2.key][cur.key]) { + dist = dists[c2.key][cur.key]; + } + } else if (opts.linkage === 'max') { + dist = dists[c1.key][cur.key]; + + if (dists[c1.key][cur.key] < dists[c2.key][cur.key]) { + dist = dists[c2.key][cur.key]; + } + } else if (opts.linkage === 'mean') { + dist = (dists[c1.key][cur.key] * c1.size + dists[c2.key][cur.key] * c2.size) / (c1.size + c2.size); + } else { + if (opts.mode === 'dendrogram') dist = getDist(cur.value, c1.value);else dist = getDist(cur.value[0], c1.value[0]); + } + + dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist; // distance matrix is symmetric + } // Update cached mins + + + for (var _i2 = 0; _i2 < clusters.length; _i2++) { + var key1 = clusters[_i2].key; + + if (mins[key1] === c1.key || mins[key1] === c2.key) { + var _min = key1; + + for (var j = 0; j < clusters.length; j++) { + var key2 = clusters[j].key; + + if (dists[key1][key2] < dists[key1][_min]) { + _min = key2; + } + } + + mins[key1] = _min; + } + + clusters[_i2].index = _i2; + } // Clean up meta data used for clustering + + + c1.key = c2.key = c1.index = c2.index = null; + return true; + }; + + var getAllChildren = function getAllChildren(root, arr, cy) { + if (!root) return; + + if (root.value) { + arr.push(root.value); + } else { + if (root.left) getAllChildren(root.left, arr); + if (root.right) getAllChildren(root.right, arr); + } + }; + + var buildDendrogram = function buildDendrogram(root, cy) { + if (!root) return ''; + + if (root.left && root.right) { + var leftStr = buildDendrogram(root.left, cy); + var rightStr = buildDendrogram(root.right, cy); + var node = cy.add({ + group: 'nodes', + data: { + id: leftStr + ',' + rightStr + } + }); + cy.add({ + group: 'edges', + data: { + source: leftStr, + target: node.id() + } + }); + cy.add({ + group: 'edges', + data: { + source: rightStr, + target: node.id() + } + }); + return node.id(); + } else if (root.value) { + return root.value.id(); + } + }; + + var buildClustersFromTree = function buildClustersFromTree(root, k, cy) { + if (!root) return []; + var left = [], + right = [], + leaves = []; + + if (k === 0) { + // don't cut tree, simply return all nodes as 1 single cluster + if (root.left) getAllChildren(root.left, left); + if (root.right) getAllChildren(root.right, right); + leaves = left.concat(right); + return [cy.collection(leaves)]; + } else if (k === 1) { + // cut at root + if (root.value) { + // leaf node + return [cy.collection(root.value)]; + } else { + if (root.left) getAllChildren(root.left, left); + if (root.right) getAllChildren(root.right, right); + return [cy.collection(left), cy.collection(right)]; + } + } else { + if (root.value) { + return [cy.collection(root.value)]; + } else { + if (root.left) left = buildClustersFromTree(root.left, k - 1, cy); + if (root.right) right = buildClustersFromTree(root.right, k - 1, cy); + return left.concat(right); + } + } + }; + /* eslint-enable */ + + + var hierarchicalClustering = function hierarchicalClustering(options) { + var cy = this.cy(); + var nodes = this.nodes(); // Set parameters of algorithm: linkage type, distance metric, etc. + + var opts = setOptions$1(options); + var attrs = opts.attributes; + + var getDist = function getDist(n1, n2) { + return clusteringDistance(opts.distance, attrs.length, function (i) { + return attrs[i](n1); + }, function (i) { + return attrs[i](n2); + }, n1, n2); + }; // Begin hierarchical algorithm + + + var clusters = []; + var dists = []; // distances between each pair of clusters + + var mins = []; // closest cluster for each cluster + + var index = []; // hash of all clusters by key + // In agglomerative (bottom-up) clustering, each node starts as its own cluster + + for (var n = 0; n < nodes.length; n++) { + var cluster = { + value: opts.mode === 'dendrogram' ? nodes[n] : [nodes[n]], + key: n, + index: n + }; + clusters[n] = cluster; + index[n] = cluster; + dists[n] = []; + mins[n] = 0; + } // Calculate the distance between each pair of clusters + + + for (var i = 0; i < clusters.length; i++) { + for (var j = 0; j <= i; j++) { + var dist = void 0; + + if (opts.mode === 'dendrogram') { + // modes store cluster values differently + dist = i === j ? Infinity : getDist(clusters[i].value, clusters[j].value); + } else { + dist = i === j ? Infinity : getDist(clusters[i].value[0], clusters[j].value[0]); + } + + dists[i][j] = dist; + dists[j][i] = dist; + + if (dist < dists[i][mins[i]]) { + mins[i] = j; // Cache mins: closest cluster to cluster i is cluster j + } + } + } // Find the closest pair of clusters and merge them into a single cluster. + // Update distances between new cluster and each of the old clusters, and loop until threshold reached. + + + var merged = mergeClosest(clusters, index, dists, mins, opts); + + while (merged) { + merged = mergeClosest(clusters, index, dists, mins, opts); + } + + var retClusters; // Dendrogram mode builds the hierarchy and adds intermediary nodes + edges + // in addition to returning the clusters. + + if (opts.mode === 'dendrogram') { + retClusters = buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy); + if (opts.addDendrogram) buildDendrogram(clusters[0], cy); + } else { + // Regular mode simply returns the clusters + retClusters = new Array(clusters.length); + clusters.forEach(function (cluster, i) { + // Clean up meta data used for clustering + cluster.key = cluster.index = null; + retClusters[i] = cy.collection(cluster.value); + }); + } + + return retClusters; + }; + + var hierarchicalClustering$1 = { + hierarchicalClustering: hierarchicalClustering, + hca: hierarchicalClustering + }; + + // Implemented by Zoe Xi @zoexi for GSOC 2016 + var defaults$9 = defaults$g({ + distance: 'euclidean', + // distance metric to compare attributes between two nodes + preference: 'median', + // suitability of a data point to serve as an exemplar + damping: 0.8, + // damping factor between [0.5, 1) + maxIterations: 1000, + // max number of iterations to run + minIterations: 100, + // min number of iterations to run in order for clustering to stop + attributes: [// functions to quantify the similarity between any two points + // e.g. node => node.data('weight') + ] + }); + + var setOptions = function setOptions(options) { + var dmp = options.damping; + var pref = options.preference; + + if (!(0.5 <= dmp && dmp < 1)) { + error("Damping must range on [0.5, 1). Got: ".concat(dmp)); + } + + var validPrefs = ['median', 'mean', 'min', 'max']; + + if (!(validPrefs.some(function (v) { + return v === pref; + }) || number$1(pref))) { + error("Preference must be one of [".concat(validPrefs.map(function (p) { + return "'".concat(p, "'"); + }).join(', '), "] or a number. Got: ").concat(pref)); + } + + return defaults$9(options); + }; + /* eslint-enable */ + + + var getSimilarity = function getSimilarity(type, n1, n2, attributes) { + var attr = function attr(n, i) { + return attributes[i](n); + }; // nb negative because similarity should have an inverse relationship to distance + + + return -clusteringDistance(type, attributes.length, function (i) { + return attr(n1, i); + }, function (i) { + return attr(n2, i); + }, n1, n2); + }; + + var getPreference = function getPreference(S, preference) { + // larger preference = greater # of clusters + var p = null; + + if (preference === 'median') { + p = median(S); + } else if (preference === 'mean') { + p = mean(S); + } else if (preference === 'min') { + p = min(S); + } else if (preference === 'max') { + p = max(S); + } else { + // Custom preference number, as set by user + p = preference; + } + + return p; + }; + + var findExemplars = function findExemplars(n, R, A) { + var indices = []; + + for (var i = 0; i < n; i++) { + if (R[i * n + i] + A[i * n + i] > 0) { + indices.push(i); + } + } + + return indices; + }; + + var assignClusters = function assignClusters(n, S, exemplars) { + var clusters = []; + + for (var i = 0; i < n; i++) { + var index = -1; + var max = -Infinity; + + for (var ei = 0; ei < exemplars.length; ei++) { + var e = exemplars[ei]; + + if (S[i * n + e] > max) { + index = e; + max = S[i * n + e]; + } + } + + if (index > 0) { + clusters.push(index); + } + } + + for (var _ei = 0; _ei < exemplars.length; _ei++) { + clusters[exemplars[_ei]] = exemplars[_ei]; + } + + return clusters; + }; + + var assign = function assign(n, S, exemplars) { + var clusters = assignClusters(n, S, exemplars); + + for (var ei = 0; ei < exemplars.length; ei++) { + var ii = []; + + for (var c = 0; c < clusters.length; c++) { + if (clusters[c] === exemplars[ei]) { + ii.push(c); + } + } + + var maxI = -1; + var maxSum = -Infinity; + + for (var i = 0; i < ii.length; i++) { + var sum = 0; + + for (var j = 0; j < ii.length; j++) { + sum += S[ii[j] * n + ii[i]]; + } + + if (sum > maxSum) { + maxI = i; + maxSum = sum; + } + } + + exemplars[ei] = ii[maxI]; + } + + clusters = assignClusters(n, S, exemplars); + return clusters; + }; + + var affinityPropagation = function affinityPropagation(options) { + var cy = this.cy(); + var nodes = this.nodes(); + var opts = setOptions(options); // Map each node to its position in node array + + var id2position = {}; + + for (var i = 0; i < nodes.length; i++) { + id2position[nodes[i].id()] = i; + } // Begin affinity propagation algorithm + + + var n; // number of data points + + var n2; // size of matrices + + var S; // similarity matrix (1D array) + + var p; // preference/suitability of a data point to serve as an exemplar + + var R; // responsibility matrix (1D array) + + var A; // availability matrix (1D array) + + n = nodes.length; + n2 = n * n; // Initialize and build S similarity matrix + + S = new Array(n2); + + for (var _i = 0; _i < n2; _i++) { + S[_i] = -Infinity; // for cases where two data points shouldn't be linked together + } + + for (var _i2 = 0; _i2 < n; _i2++) { + for (var j = 0; j < n; j++) { + if (_i2 !== j) { + S[_i2 * n + j] = getSimilarity(opts.distance, nodes[_i2], nodes[j], opts.attributes); + } + } + } // Place preferences on the diagonal of S + + + p = getPreference(S, opts.preference); + + for (var _i3 = 0; _i3 < n; _i3++) { + S[_i3 * n + _i3] = p; + } // Initialize R responsibility matrix + + + R = new Array(n2); + + for (var _i4 = 0; _i4 < n2; _i4++) { + R[_i4] = 0.0; + } // Initialize A availability matrix + + + A = new Array(n2); + + for (var _i5 = 0; _i5 < n2; _i5++) { + A[_i5] = 0.0; + } + + var old = new Array(n); + var Rp = new Array(n); + var se = new Array(n); + + for (var _i6 = 0; _i6 < n; _i6++) { + old[_i6] = 0.0; + Rp[_i6] = 0.0; + se[_i6] = 0; + } + + var e = new Array(n * opts.minIterations); + + for (var _i7 = 0; _i7 < e.length; _i7++) { + e[_i7] = 0; + } + + var iter; + + for (iter = 0; iter < opts.maxIterations; iter++) { + // main algorithmic loop + // Update R responsibility matrix + for (var _i8 = 0; _i8 < n; _i8++) { + var max = -Infinity, + max2 = -Infinity, + maxI = -1, + AS = 0.0; + + for (var _j = 0; _j < n; _j++) { + old[_j] = R[_i8 * n + _j]; + AS = A[_i8 * n + _j] + S[_i8 * n + _j]; + + if (AS >= max) { + max2 = max; + max = AS; + maxI = _j; + } else if (AS > max2) { + max2 = AS; + } + } + + for (var _j2 = 0; _j2 < n; _j2++) { + R[_i8 * n + _j2] = (1 - opts.damping) * (S[_i8 * n + _j2] - max) + opts.damping * old[_j2]; + } + + R[_i8 * n + maxI] = (1 - opts.damping) * (S[_i8 * n + maxI] - max2) + opts.damping * old[maxI]; + } // Update A availability matrix + + + for (var _i9 = 0; _i9 < n; _i9++) { + var sum = 0; + + for (var _j3 = 0; _j3 < n; _j3++) { + old[_j3] = A[_j3 * n + _i9]; + Rp[_j3] = Math.max(0, R[_j3 * n + _i9]); + sum += Rp[_j3]; + } + + sum -= Rp[_i9]; + Rp[_i9] = R[_i9 * n + _i9]; + sum += Rp[_i9]; + + for (var _j4 = 0; _j4 < n; _j4++) { + A[_j4 * n + _i9] = (1 - opts.damping) * Math.min(0, sum - Rp[_j4]) + opts.damping * old[_j4]; + } + + A[_i9 * n + _i9] = (1 - opts.damping) * (sum - Rp[_i9]) + opts.damping * old[_i9]; + } // Check for convergence + + + var K = 0; + + for (var _i10 = 0; _i10 < n; _i10++) { + var E = A[_i10 * n + _i10] + R[_i10 * n + _i10] > 0 ? 1 : 0; + e[iter % opts.minIterations * n + _i10] = E; + K += E; + } + + if (K > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) { + var _sum = 0; + + for (var _i11 = 0; _i11 < n; _i11++) { + se[_i11] = 0; + + for (var _j5 = 0; _j5 < opts.minIterations; _j5++) { + se[_i11] += e[_j5 * n + _i11]; + } + + if (se[_i11] === 0 || se[_i11] === opts.minIterations) { + _sum++; + } + } + + if (_sum === n) { + // then we have convergence + break; + } + } + } // Identify exemplars (cluster centers) + + + var exemplarsIndices = findExemplars(n, R, A); // Assign nodes to clusters + + var clusterIndices = assign(n, S, exemplarsIndices); + var clusters = {}; + + for (var c = 0; c < exemplarsIndices.length; c++) { + clusters[exemplarsIndices[c]] = []; + } + + for (var _i12 = 0; _i12 < nodes.length; _i12++) { + var pos = id2position[nodes[_i12].id()]; + + var clusterIndex = clusterIndices[pos]; + + if (clusterIndex != null) { + // the node may have not been assigned a cluster if no valid attributes were specified + clusters[clusterIndex].push(nodes[_i12]); + } + } + + var retClusters = new Array(exemplarsIndices.length); + + for (var _c = 0; _c < exemplarsIndices.length; _c++) { + retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]); + } + + return retClusters; + }; + + var affinityPropagation$1 = { + affinityPropagation: affinityPropagation, + ap: affinityPropagation + }; + + var hierholzerDefaults = defaults$g({ + root: undefined, + directed: false + }); + var elesfn$k = { + hierholzer: function hierholzer(options) { + if (!plainObject(options)) { + var args = arguments; + options = { + root: args[0], + directed: args[1] + }; + } + + var _hierholzerDefaults = hierholzerDefaults(options), + root = _hierholzerDefaults.root, + directed = _hierholzerDefaults.directed; + + var eles = this; + var dflag = false; + var oddIn; + var oddOut; + var startVertex; + if (root) startVertex = string(root) ? this.filter(root)[0].id() : root[0].id(); + var nodes = {}; + var edges = {}; + + if (directed) { + eles.forEach(function (ele) { + var id = ele.id(); + + if (ele.isNode()) { + var ind = ele.indegree(true); + var outd = ele.outdegree(true); + var d1 = ind - outd; + var d2 = outd - ind; + + if (d1 == 1) { + if (oddIn) dflag = true;else oddIn = id; + } else if (d2 == 1) { + if (oddOut) dflag = true;else oddOut = id; + } else if (d2 > 1 || d1 > 1) { + dflag = true; + } + + nodes[id] = []; + ele.outgoers().forEach(function (e) { + if (e.isEdge()) nodes[id].push(e.id()); + }); + } else { + edges[id] = [undefined, ele.target().id()]; + } + }); + } else { + eles.forEach(function (ele) { + var id = ele.id(); + + if (ele.isNode()) { + var d = ele.degree(true); + + if (d % 2) { + if (!oddIn) oddIn = id;else if (!oddOut) oddOut = id;else dflag = true; + } + + nodes[id] = []; + ele.connectedEdges().forEach(function (e) { + return nodes[id].push(e.id()); + }); + } else { + edges[id] = [ele.source().id(), ele.target().id()]; + } + }); + } + + var result = { + found: false, + trail: undefined + }; + if (dflag) return result;else if (oddOut && oddIn) { + if (directed) { + if (startVertex && oddOut != startVertex) { + return result; + } + + startVertex = oddOut; + } else { + if (startVertex && oddOut != startVertex && oddIn != startVertex) { + return result; + } else if (!startVertex) { + startVertex = oddOut; + } + } + } else { + if (!startVertex) startVertex = eles[0].id(); + } + + var walk = function walk(v) { + var currentNode = v; + var subtour = [v]; + var adj, adjTail, adjHead; + + while (nodes[currentNode].length) { + adj = nodes[currentNode].shift(); + adjTail = edges[adj][0]; + adjHead = edges[adj][1]; + + if (currentNode != adjHead) { + nodes[adjHead] = nodes[adjHead].filter(function (e) { + return e != adj; + }); + currentNode = adjHead; + } else if (!directed && currentNode != adjTail) { + nodes[adjTail] = nodes[adjTail].filter(function (e) { + return e != adj; + }); + currentNode = adjTail; + } + + subtour.unshift(adj); + subtour.unshift(currentNode); + } + + return subtour; + }; + + var trail = []; + var subtour = []; + subtour = walk(startVertex); + + while (subtour.length != 1) { + if (nodes[subtour[0]].length == 0) { + trail.unshift(eles.getElementById(subtour.shift())); + trail.unshift(eles.getElementById(subtour.shift())); + } else { + subtour = walk(subtour.shift()).concat(subtour); + } + } + + trail.unshift(eles.getElementById(subtour.shift())); // final node + + for (var d in nodes) { + if (nodes[d].length) { + return result; + } + } + + result.found = true; + result.trail = this.spawn(trail, true); + return result; + } + }; + + var hopcroftTarjanBiconnected = function hopcroftTarjanBiconnected() { + var eles = this; + var nodes = {}; + var id = 0; + var edgeCount = 0; + var components = []; + var stack = []; + var visitedEdges = {}; + + var buildComponent = function buildComponent(x, y) { + var i = stack.length - 1; + var cutset = []; + var component = eles.spawn(); + + while (stack[i].x != x || stack[i].y != y) { + cutset.push(stack.pop().edge); + i--; + } + + cutset.push(stack.pop().edge); + cutset.forEach(function (edge) { + var connectedNodes = edge.connectedNodes().intersection(eles); + component.merge(edge); + connectedNodes.forEach(function (node) { + var nodeId = node.id(); + var connectedEdges = node.connectedEdges().intersection(eles); + component.merge(node); + + if (!nodes[nodeId].cutVertex) { + component.merge(connectedEdges); + } else { + component.merge(connectedEdges.filter(function (edge) { + return edge.isLoop(); + })); + } + }); + }); + components.push(component); + }; + + var biconnectedSearch = function biconnectedSearch(root, currentNode, parent) { + if (root === parent) edgeCount += 1; + nodes[currentNode] = { + id: id, + low: id++, + cutVertex: false + }; + var edges = eles.getElementById(currentNode).connectedEdges().intersection(eles); + + if (edges.size() === 0) { + components.push(eles.spawn(eles.getElementById(currentNode))); + } else { + var sourceId, targetId, otherNodeId, edgeId; + edges.forEach(function (edge) { + sourceId = edge.source().id(); + targetId = edge.target().id(); + otherNodeId = sourceId === currentNode ? targetId : sourceId; + + if (otherNodeId !== parent) { + edgeId = edge.id(); + + if (!visitedEdges[edgeId]) { + visitedEdges[edgeId] = true; + stack.push({ + x: currentNode, + y: otherNodeId, + edge: edge + }); + } + + if (!(otherNodeId in nodes)) { + biconnectedSearch(root, otherNodeId, currentNode); + nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].low); + + if (nodes[currentNode].id <= nodes[otherNodeId].low) { + nodes[currentNode].cutVertex = true; + buildComponent(currentNode, otherNodeId); + } + } else { + nodes[currentNode].low = Math.min(nodes[currentNode].low, nodes[otherNodeId].id); + } + } + }); + } + }; + + eles.forEach(function (ele) { + if (ele.isNode()) { + var nodeId = ele.id(); + + if (!(nodeId in nodes)) { + edgeCount = 0; + biconnectedSearch(nodeId, nodeId); + nodes[nodeId].cutVertex = edgeCount > 1; + } + } + }); + var cutVertices = Object.keys(nodes).filter(function (id) { + return nodes[id].cutVertex; + }).map(function (id) { + return eles.getElementById(id); + }); + return { + cut: eles.spawn(cutVertices), + components: components + }; + }; + + var hopcroftTarjanBiconnected$1 = { + hopcroftTarjanBiconnected: hopcroftTarjanBiconnected, + htbc: hopcroftTarjanBiconnected, + htb: hopcroftTarjanBiconnected, + hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected + }; + + var tarjanStronglyConnected = function tarjanStronglyConnected() { + var eles = this; + var nodes = {}; + var index = 0; + var components = []; + var stack = []; + var cut = eles.spawn(eles); + + var stronglyConnectedSearch = function stronglyConnectedSearch(sourceNodeId) { + stack.push(sourceNodeId); + nodes[sourceNodeId] = { + index: index, + low: index++, + explored: false + }; + var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles); + connectedEdges.forEach(function (edge) { + var targetNodeId = edge.target().id(); + + if (targetNodeId !== sourceNodeId) { + if (!(targetNodeId in nodes)) { + stronglyConnectedSearch(targetNodeId); + } + + if (!nodes[targetNodeId].explored) { + nodes[sourceNodeId].low = Math.min(nodes[sourceNodeId].low, nodes[targetNodeId].low); + } + } + }); + + if (nodes[sourceNodeId].index === nodes[sourceNodeId].low) { + var componentNodes = eles.spawn(); + + for (;;) { + var nodeId = stack.pop(); + componentNodes.merge(eles.getElementById(nodeId)); + nodes[nodeId].low = nodes[sourceNodeId].index; + nodes[nodeId].explored = true; + + if (nodeId === sourceNodeId) { + break; + } + } + + var componentEdges = componentNodes.edgesWith(componentNodes); + var component = componentNodes.merge(componentEdges); + components.push(component); + cut = cut.difference(component); + } + }; + + eles.forEach(function (ele) { + if (ele.isNode()) { + var nodeId = ele.id(); + + if (!(nodeId in nodes)) { + stronglyConnectedSearch(nodeId); + } + } + }); + return { + cut: cut, + components: components + }; + }; + + var tarjanStronglyConnected$1 = { + tarjanStronglyConnected: tarjanStronglyConnected, + tsc: tarjanStronglyConnected, + tscc: tarjanStronglyConnected, + tarjanStronglyConnectedComponents: tarjanStronglyConnected + }; + + var elesfn$j = {}; + [elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function (props) { + extend(elesfn$j, props); + }); + + /*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + */ + + /* promise states [Promises/A+ 2.1] */ + var STATE_PENDING = 0; + /* [Promises/A+ 2.1.1] */ + + var STATE_FULFILLED = 1; + /* [Promises/A+ 2.1.2] */ + + var STATE_REJECTED = 2; + /* [Promises/A+ 2.1.3] */ + + /* promise object constructor */ + + var api = function api(executor) { + /* optionally support non-constructor/plain-function call */ + if (!(this instanceof api)) return new api(executor); + /* initialize object */ + + this.id = 'Thenable/1.0.7'; + this.state = STATE_PENDING; + /* initial state */ + + this.fulfillValue = undefined; + /* initial value */ + + /* [Promises/A+ 1.3, 2.1.2.2] */ + + this.rejectReason = undefined; + /* initial reason */ + + /* [Promises/A+ 1.5, 2.1.3.2] */ + + this.onFulfilled = []; + /* initial handlers */ + + this.onRejected = []; + /* initial handlers */ + + /* provide optional information-hiding proxy */ + + this.proxy = { + then: this.then.bind(this) + }; + /* support optional executor function */ + + if (typeof executor === 'function') executor.call(this, this.fulfill.bind(this), this.reject.bind(this)); + }; + /* promise API methods */ + + + api.prototype = { + /* promise resolving methods */ + fulfill: function fulfill(value) { + return deliver(this, STATE_FULFILLED, 'fulfillValue', value); + }, + reject: function reject(value) { + return deliver(this, STATE_REJECTED, 'rejectReason', value); + }, + + /* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */ + then: function then(onFulfilled, onRejected) { + var curr = this; + var next = new api(); + /* [Promises/A+ 2.2.7] */ + + curr.onFulfilled.push(resolver(onFulfilled, next, 'fulfill')); + /* [Promises/A+ 2.2.2/2.2.6] */ + + curr.onRejected.push(resolver(onRejected, next, 'reject')); + /* [Promises/A+ 2.2.3/2.2.6] */ + + execute(curr); + return next.proxy; + /* [Promises/A+ 2.2.7, 3.3] */ + } + }; + /* deliver an action */ + + var deliver = function deliver(curr, state, name, value) { + if (curr.state === STATE_PENDING) { + curr.state = state; + /* [Promises/A+ 2.1.2.1, 2.1.3.1] */ + + curr[name] = value; + /* [Promises/A+ 2.1.2.2, 2.1.3.2] */ + + execute(curr); + } + + return curr; + }; + /* execute all handlers */ + + + var execute = function execute(curr) { + if (curr.state === STATE_FULFILLED) execute_handlers(curr, 'onFulfilled', curr.fulfillValue);else if (curr.state === STATE_REJECTED) execute_handlers(curr, 'onRejected', curr.rejectReason); + }; + /* execute particular set of handlers */ + + + var execute_handlers = function execute_handlers(curr, name, value) { + /* global setImmediate: true */ + + /* global setTimeout: true */ + + /* short-circuit processing */ + if (curr[name].length === 0) return; + /* iterate over all handlers, exactly once */ + + var handlers = curr[name]; + curr[name] = []; + /* [Promises/A+ 2.2.2.3, 2.2.3.3] */ + + var func = function func() { + for (var i = 0; i < handlers.length; i++) { + handlers[i](value); + } + /* [Promises/A+ 2.2.5] */ + + }; + /* execute procedure asynchronously */ + + /* [Promises/A+ 2.2.4, 3.1] */ + + + if (typeof setImmediate === 'function') setImmediate(func);else setTimeout(func, 0); + }; + /* generate a resolver function */ + + + var resolver = function resolver(cb, next, method) { + return function (value) { + if (typeof cb !== 'function') + /* [Promises/A+ 2.2.1, 2.2.7.3, 2.2.7.4] */ + next[method].call(next, value); + /* [Promises/A+ 2.2.7.3, 2.2.7.4] */ + else { + var result; + + try { + result = cb(value); + } + /* [Promises/A+ 2.2.2.1, 2.2.3.1, 2.2.5, 3.2] */ + catch (e) { + next.reject(e); + /* [Promises/A+ 2.2.7.2] */ + + return; + } + + resolve(next, result); + /* [Promises/A+ 2.2.7.1] */ + } + }; + }; + /* "Promise Resolution Procedure" */ + + /* [Promises/A+ 2.3] */ + + + var resolve = function resolve(promise, x) { + /* sanity check arguments */ + + /* [Promises/A+ 2.3.1] */ + if (promise === x || promise.proxy === x) { + promise.reject(new TypeError('cannot resolve promise with itself')); + return; + } + /* surgically check for a "then" method + (mainly to just call the "getter" of "then" only once) */ + + + var then; + + if (_typeof(x) === 'object' && x !== null || typeof x === 'function') { + try { + then = x.then; + } + /* [Promises/A+ 2.3.3.1, 3.5] */ + catch (e) { + promise.reject(e); + /* [Promises/A+ 2.3.3.2] */ + + return; + } + } + /* handle own Thenables [Promises/A+ 2.3.2] + and similar "thenables" [Promises/A+ 2.3.3] */ + + + if (typeof then === 'function') { + var resolved = false; + + try { + /* call retrieved "then" method */ + + /* [Promises/A+ 2.3.3.3] */ + then.call(x, + /* resolvePromise */ + + /* [Promises/A+ 2.3.3.3.1] */ + function (y) { + if (resolved) return; + resolved = true; + /* [Promises/A+ 2.3.3.3.3] */ + + if (y === x) + /* [Promises/A+ 3.6] */ + promise.reject(new TypeError('circular thenable chain'));else resolve(promise, y); + }, + /* rejectPromise */ + + /* [Promises/A+ 2.3.3.3.2] */ + function (r) { + if (resolved) return; + resolved = true; + /* [Promises/A+ 2.3.3.3.3] */ + + promise.reject(r); + }); + } catch (e) { + if (!resolved) + /* [Promises/A+ 2.3.3.3.3] */ + promise.reject(e); + /* [Promises/A+ 2.3.3.3.4] */ + } + + return; + } + /* handle other values */ + + + promise.fulfill(x); + /* [Promises/A+ 2.3.4, 2.3.3.4] */ + }; // so we always have Promise.all() + + + api.all = function (ps) { + return new api(function (resolveAll, rejectAll) { + var vals = new Array(ps.length); + var doneCount = 0; + + var fulfill = function fulfill(i, val) { + vals[i] = val; + doneCount++; + + if (doneCount === ps.length) { + resolveAll(vals); + } + }; + + for (var i = 0; i < ps.length; i++) { + (function (i) { + var p = ps[i]; + var isPromise = p != null && p.then != null; + + if (isPromise) { + p.then(function (val) { + fulfill(i, val); + }, function (err) { + rejectAll(err); + }); + } else { + var val = p; + fulfill(i, val); + } + })(i); + } + }); + }; + + api.resolve = function (val) { + return new api(function (resolve, reject) { + resolve(val); + }); + }; + + api.reject = function (val) { + return new api(function (resolve, reject) { + reject(val); + }); + }; + + var Promise$1 = typeof Promise !== 'undefined' ? Promise : api; // eslint-disable-line no-undef + + var Animation = function Animation(target, opts, opts2) { + var isCore = core(target); + var isEle = !isCore; + + var _p = this._private = extend({ + duration: 1000 + }, opts, opts2); + + _p.target = target; + _p.style = _p.style || _p.css; + _p.started = false; + _p.playing = false; + _p.hooked = false; + _p.applying = false; + _p.progress = 0; + _p.completes = []; + _p.frames = []; + + if (_p.complete && fn$6(_p.complete)) { + _p.completes.push(_p.complete); + } + + if (isEle) { + var pos = target.position(); + _p.startPosition = _p.startPosition || { + x: pos.x, + y: pos.y + }; + _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style); + } + + if (isCore) { + var pan = target.pan(); + _p.startPan = { + x: pan.x, + y: pan.y + }; + _p.startZoom = target.zoom(); + } // for future timeline/animations impl + + + this.length = 1; + this[0] = this; + }; + + var anifn = Animation.prototype; + extend(anifn, { + instanceString: function instanceString() { + return 'animation'; + }, + hook: function hook() { + var _p = this._private; + + if (!_p.hooked) { + // add to target's animation queue + var q; + var tAni = _p.target._private.animation; + + if (_p.queue) { + q = tAni.queue; + } else { + q = tAni.current; + } + + q.push(this); // add to the animation loop pool + + if (elementOrCollection(_p.target)) { + _p.target.cy().addToAnimationPool(_p.target); + } + + _p.hooked = true; + } + + return this; + }, + play: function play() { + var _p = this._private; // autorewind + + if (_p.progress === 1) { + _p.progress = 0; + } + + _p.playing = true; + _p.started = false; // needs to be started by animation loop + + _p.stopped = false; + this.hook(); // the animation loop will start the animation... + + return this; + }, + playing: function playing() { + return this._private.playing; + }, + apply: function apply() { + var _p = this._private; + _p.applying = true; + _p.started = false; // needs to be started by animation loop + + _p.stopped = false; + this.hook(); // the animation loop will apply the animation at this progress + + return this; + }, + applying: function applying() { + return this._private.applying; + }, + pause: function pause() { + var _p = this._private; + _p.playing = false; + _p.started = false; + return this; + }, + stop: function stop() { + var _p = this._private; + _p.playing = false; + _p.started = false; + _p.stopped = true; // to be removed from animation queues + + return this; + }, + rewind: function rewind() { + return this.progress(0); + }, + fastforward: function fastforward() { + return this.progress(1); + }, + time: function time(t) { + var _p = this._private; + + if (t === undefined) { + return _p.progress * _p.duration; + } else { + return this.progress(t / _p.duration); + } + }, + progress: function progress(p) { + var _p = this._private; + var wasPlaying = _p.playing; + + if (p === undefined) { + return _p.progress; + } else { + if (wasPlaying) { + this.pause(); + } + + _p.progress = p; + _p.started = false; + + if (wasPlaying) { + this.play(); + } + } + + return this; + }, + completed: function completed() { + return this._private.progress === 1; + }, + reverse: function reverse() { + var _p = this._private; + var wasPlaying = _p.playing; + + if (wasPlaying) { + this.pause(); + } + + _p.progress = 1 - _p.progress; + _p.started = false; + + var swap = function swap(a, b) { + var _pa = _p[a]; + + if (_pa == null) { + return; + } + + _p[a] = _p[b]; + _p[b] = _pa; + }; + + swap('zoom', 'startZoom'); + swap('pan', 'startPan'); + swap('position', 'startPosition'); // swap styles + + if (_p.style) { + for (var i = 0; i < _p.style.length; i++) { + var prop = _p.style[i]; + var name = prop.name; + var startStyleProp = _p.startStyle[name]; + _p.startStyle[name] = prop; + _p.style[i] = startStyleProp; + } + } + + if (wasPlaying) { + this.play(); + } + + return this; + }, + promise: function promise(type) { + var _p = this._private; + var arr; + + switch (type) { + case 'frame': + arr = _p.frames; + break; + + default: + case 'complete': + case 'completed': + arr = _p.completes; + } + + return new Promise$1(function (resolve, reject) { + arr.push(function () { + resolve(); + }); + }); + } + }); + anifn.complete = anifn.completed; + anifn.run = anifn.play; + anifn.running = anifn.playing; + + var define$3 = { + animated: function animated() { + return function animatedImpl() { + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return false; + } + + var ele = all[0]; + + if (ele) { + return ele._private.animation.current.length > 0; + } + }; + }, + // animated + clearQueue: function clearQueue() { + return function clearQueueImpl() { + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return this; + } + + for (var i = 0; i < all.length; i++) { + var ele = all[i]; + ele._private.animation.queue = []; + } + + return this; + }; + }, + // clearQueue + delay: function delay() { + return function delayImpl(time, complete) { + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return this; + } + + return this.animate({ + delay: time, + duration: time, + complete: complete + }); + }; + }, + // delay + delayAnimation: function delayAnimation() { + return function delayAnimationImpl(time, complete) { + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return this; + } + + return this.animation({ + delay: time, + duration: time, + complete: complete + }); + }; + }, + // delay + animation: function animation() { + return function animationImpl(properties, params) { + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var cy = this._private.cy || this; + var isCore = !selfIsArrayLike; + var isEles = !isCore; + + if (!cy.styleEnabled()) { + return this; + } + + var style = cy.style(); + properties = extend({}, properties, params); + var propertiesEmpty = Object.keys(properties).length === 0; + + if (propertiesEmpty) { + return new Animation(all[0], properties); // nothing to animate + } + + if (properties.duration === undefined) { + properties.duration = 400; + } + + switch (properties.duration) { + case 'slow': + properties.duration = 600; + break; + + case 'fast': + properties.duration = 200; + break; + } + + if (isEles) { + properties.style = style.getPropsList(properties.style || properties.css); + properties.css = undefined; + } + + if (isEles && properties.renderedPosition != null) { + var rpos = properties.renderedPosition; + var pan = cy.pan(); + var zoom = cy.zoom(); + properties.position = renderedToModelPosition(rpos, zoom, pan); + } // override pan w/ panBy if set + + + if (isCore && properties.panBy != null) { + var panBy = properties.panBy; + var cyPan = cy.pan(); + properties.pan = { + x: cyPan.x + panBy.x, + y: cyPan.y + panBy.y + }; + } // override pan w/ center if set + + + var center = properties.center || properties.centre; + + if (isCore && center != null) { + var centerPan = cy.getCenterPan(center.eles, properties.zoom); + + if (centerPan != null) { + properties.pan = centerPan; + } + } // override pan & zoom w/ fit if set + + + if (isCore && properties.fit != null) { + var fit = properties.fit; + var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding); + + if (fitVp != null) { + properties.pan = fitVp.pan; + properties.zoom = fitVp.zoom; + } + } // override zoom (& potentially pan) w/ zoom obj if set + + + if (isCore && plainObject(properties.zoom)) { + var vp = cy.getZoomedViewport(properties.zoom); + + if (vp != null) { + if (vp.zoomed) { + properties.zoom = vp.zoom; + } + + if (vp.panned) { + properties.pan = vp.pan; + } + } else { + properties.zoom = null; // an inavalid zoom (e.g. no delta) gets automatically destroyed + } + } + + return new Animation(all[0], properties); + }; + }, + // animate + animate: function animate() { + return function animateImpl(properties, params) { + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return this; + } + + if (params) { + properties = extend({}, properties, params); + } // manually hook and run the animation + + + for (var i = 0; i < all.length; i++) { + var ele = all[i]; + var queue = ele.animated() && (properties.queue === undefined || properties.queue); + var ani = ele.animation(properties, queue ? { + queue: true + } : undefined); + ani.play(); + } + + return this; // chaining + }; + }, + // animate + stop: function stop() { + return function stopImpl(clearQueue, jumpToEnd) { + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var cy = this._private.cy || this; + + if (!cy.styleEnabled()) { + return this; + } + + for (var i = 0; i < all.length; i++) { + var ele = all[i]; + var _p = ele._private; + var anis = _p.animation.current; + + for (var j = 0; j < anis.length; j++) { + var ani = anis[j]; + var ani_p = ani._private; + + if (jumpToEnd) { + // next iteration of the animation loop, the animation + // will go straight to the end and be removed + ani_p.duration = 0; + } + } // clear the queue of future animations + + + if (clearQueue) { + _p.animation.queue = []; + } + + if (!jumpToEnd) { + _p.animation.current = []; + } + } // we have to notify (the animation loop doesn't do it for us on `stop`) + + + cy.notify('draw'); + return this; + }; + } // stop + + }; // define + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + + var isArray_1 = isArray; + + /** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + + /** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ + function isKey(value, object) { + if (isArray_1(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol_1(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); + } + + var _isKey = isKey; + + /** `Object#toString` result references. */ + var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + if (!isObject_1(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = _baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; + } + + var isFunction_1 = isFunction; + + /** Used to detect overreaching core-js shims. */ + var coreJsData = _root['__core-js_shared__']; + + var _coreJsData = coreJsData; + + /** Used to detect methods masquerading as native. */ + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; + }()); + + /** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ + function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); + } + + var _isMasked = isMasked; + + /** Used for built-in method references. */ + var funcProto$1 = Function.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString$1 = funcProto$1.toString; + + /** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ + function toSource(func) { + if (func != null) { + try { + return funcToString$1.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; + } + + var _toSource = toSource; + + /** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** Used for built-in method references. */ + var funcProto = Function.prototype, + objectProto$3 = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty$3 = objectProto$3.hasOwnProperty; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty$3).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ + function baseIsNative(value) { + if (!isObject_1(value) || _isMasked(value)) { + return false; + } + var pattern = isFunction_1(value) ? reIsNative : reIsHostCtor; + return pattern.test(_toSource(value)); + } + + var _baseIsNative = baseIsNative; + + /** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function getValue$1(object, key) { + return object == null ? undefined : object[key]; + } + + var _getValue = getValue$1; + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = _getValue(object, key); + return _baseIsNative(value) ? value : undefined; + } + + var _getNative = getNative; + + /* Built-in method references that are verified to be native. */ + var nativeCreate = _getNative(Object, 'create'); + + var _nativeCreate = nativeCreate; + + /** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ + function hashClear() { + this.__data__ = _nativeCreate ? _nativeCreate(null) : {}; + this.size = 0; + } + + var _hashClear = hashClear; + + /** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; + } + + var _hashDelete = hashDelete; + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED$1 = '__lodash_hash_undefined__'; + + /** Used for built-in method references. */ + var objectProto$2 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$2 = objectProto$2.hasOwnProperty; + + /** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function hashGet(key) { + var data = this.__data__; + if (_nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED$1 ? undefined : result; + } + return hasOwnProperty$2.call(data, key) ? data[key] : undefined; + } + + var _hashGet = hashGet; + + /** Used for built-in method references. */ + var objectProto$1 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$1 = objectProto$1.hasOwnProperty; + + /** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function hashHas(key) { + var data = this.__data__; + return _nativeCreate ? (data[key] !== undefined) : hasOwnProperty$1.call(data, key); + } + + var _hashHas = hashHas; + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = '__lodash_hash_undefined__'; + + /** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (_nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; + } + + var _hashSet = hashSet; + + /** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `Hash`. + Hash.prototype.clear = _hashClear; + Hash.prototype['delete'] = _hashDelete; + Hash.prototype.get = _hashGet; + Hash.prototype.has = _hashHas; + Hash.prototype.set = _hashSet; + + var _Hash = Hash; + + /** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + + var _listCacheClear = listCacheClear; + + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || (value !== value && other !== other); + } + + var eq_1 = eq; + + /** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq_1(array[length][0], key)) { + return length; + } + } + return -1; + } + + var _assocIndexOf = assocIndexOf; + + /** Used for built-in method references. */ + var arrayProto = Array.prototype; + + /** Built-in value references. */ + var splice = arrayProto.splice; + + /** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function listCacheDelete(key) { + var data = this.__data__, + index = _assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + + var _listCacheDelete = listCacheDelete; + + /** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function listCacheGet(key) { + var data = this.__data__, + index = _assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; + } + + var _listCacheGet = listCacheGet; + + /** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function listCacheHas(key) { + return _assocIndexOf(this.__data__, key) > -1; + } + + var _listCacheHas = listCacheHas; + + /** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ + function listCacheSet(key, value) { + var data = this.__data__, + index = _assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + + var _listCacheSet = listCacheSet; + + /** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `ListCache`. + ListCache.prototype.clear = _listCacheClear; + ListCache.prototype['delete'] = _listCacheDelete; + ListCache.prototype.get = _listCacheGet; + ListCache.prototype.has = _listCacheHas; + ListCache.prototype.set = _listCacheSet; + + var _ListCache = ListCache; + + /* Built-in method references that are verified to be native. */ + var Map$1 = _getNative(_root, 'Map'); + + var _Map = Map$1; + + /** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ + function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new _Hash, + 'map': new (_Map || _ListCache), + 'string': new _Hash + }; + } + + var _mapCacheClear = mapCacheClear; + + /** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ + function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); + } + + var _isKeyable = isKeyable; + + /** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ + function getMapData(map, key) { + var data = map.__data__; + return _isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; + } + + var _getMapData = getMapData; + + /** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function mapCacheDelete(key) { + var result = _getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; + } + + var _mapCacheDelete = mapCacheDelete; + + /** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function mapCacheGet(key) { + return _getMapData(this, key).get(key); + } + + var _mapCacheGet = mapCacheGet; + + /** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function mapCacheHas(key) { + return _getMapData(this, key).has(key); + } + + var _mapCacheHas = mapCacheHas; + + /** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ + function mapCacheSet(key, value) { + var data = _getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; + } + + var _mapCacheSet = mapCacheSet; + + /** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `MapCache`. + MapCache.prototype.clear = _mapCacheClear; + MapCache.prototype['delete'] = _mapCacheDelete; + MapCache.prototype.get = _mapCacheGet; + MapCache.prototype.has = _mapCacheHas; + MapCache.prototype.set = _mapCacheSet; + + var _MapCache = MapCache; + + /** Error message constants. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ + function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || _MapCache); + return memoized; + } + + // Expose `MapCache`. + memoize.Cache = _MapCache; + + var memoize_1 = memoize; + + /** Used as the maximum memoize cache size. */ + var MAX_MEMOIZE_SIZE = 500; + + /** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ + function memoizeCapped(func) { + var result = memoize_1(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; + } + + var _memoizeCapped = memoizeCapped; + + /** Used to match property names within property paths. */ + var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; + + /** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ + var stringToPath = _memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; + }); + + var _stringToPath = stringToPath; + + /** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + + var _arrayMap = arrayMap; + + /** Used as references for various `Number` constants. */ + var INFINITY$1 = 1 / 0; + + /** Used to convert symbols to primitives and strings. */ + var symbolProto = _Symbol ? _Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + + /** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray_1(value)) { + // Recursively convert values (susceptible to call stack limits). + return _arrayMap(value, baseToString) + ''; + } + if (isSymbol_1(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result; + } + + var _baseToString = baseToString; + + /** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString$1(value) { + return value == null ? '' : _baseToString(value); + } + + var toString_1 = toString$1; + + /** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ + function castPath(value, object) { + if (isArray_1(value)) { + return value; + } + return _isKey(value, object) ? [value] : _stringToPath(toString_1(value)); + } + + var _castPath = castPath; + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0; + + /** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ + function toKey(value) { + if (typeof value == 'string' || isSymbol_1(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; + } + + var _toKey = toKey; + + /** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ + function baseGet(object, path) { + path = _castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[_toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; + } + + var _baseGet = baseGet; + + /** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ + function get(object, path, defaultValue) { + var result = object == null ? undefined : _baseGet(object, path); + return result === undefined ? defaultValue : result; + } + + var get_1 = get; + + var defineProperty = (function() { + try { + var func = _getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} + }()); + + var _defineProperty = defineProperty; + + /** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + if (key == '__proto__' && _defineProperty) { + _defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } + } + + var _baseAssignValue = baseAssignValue; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq_1(objValue, value)) || + (value === undefined && !(key in object))) { + _baseAssignValue(object, key, value); + } + } + + var _assignValue = assignValue; + + /** Used as references for various `Number` constants. */ + var MAX_SAFE_INTEGER = 9007199254740991; + + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); + } + + var _isIndex = isIndex; + + /** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ + function baseSet(object, path, value, customizer) { + if (!isObject_1(object)) { + return object; + } + path = _castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = _toKey(path[index]), + newValue = value; + + if (key === '__proto__' || key === 'constructor' || key === 'prototype') { + return object; + } + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject_1(objValue) + ? objValue + : (_isIndex(path[index + 1]) ? [] : {}); + } + } + _assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + + var _baseSet = baseSet; + + /** + * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, + * it's created. Arrays are created for missing index properties while objects + * are created for all other missing properties. Use `_.setWith` to customize + * `path` creation. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.set(object, 'a[0].b.c', 4); + * console.log(object.a[0].b.c); + * // => 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */ + function set(object, path, value) { + return object == null ? object : _baseSet(object, path, value); + } + + var set_1 = set; + + /** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; + } + + var _copyArray = copyArray; + + /** + * Converts `value` to a property path array. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Util + * @param {*} value The value to convert. + * @returns {Array} Returns the new property path array. + * @example + * + * _.toPath('a.b.c'); + * // => ['a', 'b', 'c'] + * + * _.toPath('a[0].b.c'); + * // => ['a', '0', 'b', 'c'] + */ + function toPath(value) { + if (isArray_1(value)) { + return _arrayMap(value, _toKey); + } + return isSymbol_1(value) ? [value] : _copyArray(_stringToPath(toString_1(value))); + } + + var toPath_1 = toPath; + + var define$2 = { + // access data field + data: function data(params) { + var defaults = { + field: 'data', + bindingEvent: 'data', + allowBinding: false, + allowSetting: false, + allowGetting: false, + settingEvent: 'data', + settingTriggersEvent: false, + triggerFnName: 'trigger', + immutableKeys: {}, + // key => true if immutable + updateStyle: false, + beforeGet: function beforeGet(self) {}, + beforeSet: function beforeSet(self, obj) {}, + onSet: function onSet(self) {}, + canSet: function canSet(self) { + return true; + } + }; + params = extend({}, defaults, params); + return function dataImpl(name, value) { + var p = params; + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + + var single = selfIsArrayLike ? self[0] : self; // .data('foo', ...) + + if (string(name)) { + // set or get property + var isPathLike = name.indexOf('.') !== -1; // there might be a normal field with a dot + + var path = isPathLike && toPath_1(name); // .data('foo') + + if (p.allowGetting && value === undefined) { + // get + var ret; + + if (single) { + p.beforeGet(single); // check if it's path and a field with the same name doesn't exist + + if (path && single._private[p.field][name] === undefined) { + ret = get_1(single._private[p.field], path); + } else { + ret = single._private[p.field][name]; + } + } + + return ret; // .data('foo', 'bar') + } else if (p.allowSetting && value !== undefined) { + // set + var valid = !p.immutableKeys[name]; + + if (valid) { + var change = _defineProperty$1({}, name, value); + + p.beforeSet(self, change); + + for (var i = 0, l = all.length; i < l; i++) { + var ele = all[i]; + + if (p.canSet(ele)) { + if (path && single._private[p.field][name] === undefined) { + set_1(ele._private[p.field], path, value); + } else { + ele._private[p.field][name] = value; + } + } + } // update mappers if asked + + + if (p.updateStyle) { + self.updateStyle(); + } // call onSet callback + + + p.onSet(self); + + if (p.settingTriggersEvent) { + self[p.triggerFnName](p.settingEvent); + } + } + } // .data({ 'foo': 'bar' }) + + } else if (p.allowSetting && plainObject(name)) { + // extend + var obj = name; + var k, v; + var keys = Object.keys(obj); + p.beforeSet(self, obj); + + for (var _i = 0; _i < keys.length; _i++) { + k = keys[_i]; + v = obj[k]; + + var _valid = !p.immutableKeys[k]; + + if (_valid) { + for (var j = 0; j < all.length; j++) { + var _ele = all[j]; + + if (p.canSet(_ele)) { + _ele._private[p.field][k] = v; + } + } + } + } // update mappers if asked + + + if (p.updateStyle) { + self.updateStyle(); + } // call onSet callback + + + p.onSet(self); + + if (p.settingTriggersEvent) { + self[p.triggerFnName](p.settingEvent); + } // .data(function(){ ... }) + + } else if (p.allowBinding && fn$6(name)) { + // bind to event + var fn = name; + self.on(p.bindingEvent, fn); // .data() + } else if (p.allowGetting && name === undefined) { + // get whole object + var _ret; + + if (single) { + p.beforeGet(single); + _ret = single._private[p.field]; + } + + return _ret; + } + + return self; // maintain chainability + }; // function + }, + // data + // remove data field + removeData: function removeData(params) { + var defaults = { + field: 'data', + event: 'data', + triggerFnName: 'trigger', + triggerEvent: false, + immutableKeys: {} // key => true if immutable + + }; + params = extend({}, defaults, params); + return function removeDataImpl(names) { + var p = params; + var self = this; + var selfIsArrayLike = self.length !== undefined; + var all = selfIsArrayLike ? self : [self]; // put in array if not array-like + // .removeData('foo bar') + + if (string(names)) { + // then get the list of keys, and delete them + var keys = names.split(/\s+/); + var l = keys.length; + + for (var i = 0; i < l; i++) { + // delete each non-empty key + var key = keys[i]; + + if (emptyString(key)) { + continue; + } + + var valid = !p.immutableKeys[key]; // not valid if immutable + + if (valid) { + for (var i_a = 0, l_a = all.length; i_a < l_a; i_a++) { + all[i_a]._private[p.field][key] = undefined; + } + } + } + + if (p.triggerEvent) { + self[p.triggerFnName](p.event); + } // .removeData() + + } else if (names === undefined) { + // then delete all keys + for (var _i_a = 0, _l_a = all.length; _i_a < _l_a; _i_a++) { + var _privateFields = all[_i_a]._private[p.field]; + + var _keys = Object.keys(_privateFields); + + for (var _i2 = 0; _i2 < _keys.length; _i2++) { + var _key = _keys[_i2]; + var validKeyToDelete = !p.immutableKeys[_key]; + + if (validKeyToDelete) { + _privateFields[_key] = undefined; + } + } + } + + if (p.triggerEvent) { + self[p.triggerFnName](p.event); + } + } + + return self; // maintain chaining + }; // function + } // removeData + + }; // define + + var define$1 = { + eventAliasesOn: function eventAliasesOn(proto) { + var p = proto; + p.addListener = p.listen = p.bind = p.on; + p.unlisten = p.unbind = p.off = p.removeListener; + p.trigger = p.emit; // this is just a wrapper alias of .on() + + p.pon = p.promiseOn = function (events, selector) { + var self = this; + var args = Array.prototype.slice.call(arguments, 0); + return new Promise$1(function (resolve, reject) { + var callback = function callback(e) { + self.off.apply(self, offArgs); + resolve(e); + }; + + var onArgs = args.concat([callback]); + var offArgs = onArgs.concat([]); + self.on.apply(self, onArgs); + }); + }; + } + }; // define + + // use this module to cherry pick functions into your prototype + var define = {}; + [define$3, define$2, define$1].forEach(function (m) { + extend(define, m); + }); + + var elesfn$i = { + animate: define.animate(), + animation: define.animation(), + animated: define.animated(), + clearQueue: define.clearQueue(), + delay: define.delay(), + delayAnimation: define.delayAnimation(), + stop: define.stop() + }; + + var elesfn$h = { + classes: function classes(_classes) { + var self = this; + + if (_classes === undefined) { + var ret = []; + + self[0]._private.classes.forEach(function (cls) { + return ret.push(cls); + }); + + return ret; + } else if (!array(_classes)) { + // extract classes from string + _classes = (_classes || '').match(/\S+/g) || []; + } + + var changed = []; + var classesSet = new Set$1(_classes); // check and update each ele + + for (var j = 0; j < self.length; j++) { + var ele = self[j]; + var _p = ele._private; + var eleClasses = _p.classes; + var changedEle = false; // check if ele has all of the passed classes + + for (var i = 0; i < _classes.length; i++) { + var cls = _classes[i]; + var eleHasClass = eleClasses.has(cls); + + if (!eleHasClass) { + changedEle = true; + break; + } + } // check if ele has classes outside of those passed + + + if (!changedEle) { + changedEle = eleClasses.size !== _classes.length; + } + + if (changedEle) { + _p.classes = classesSet; + changed.push(ele); + } + } // trigger update style on those eles that had class changes + + + if (changed.length > 0) { + this.spawn(changed).updateStyle().emit('class'); + } + + return self; + }, + addClass: function addClass(classes) { + return this.toggleClass(classes, true); + }, + hasClass: function hasClass(className) { + var ele = this[0]; + return ele != null && ele._private.classes.has(className); + }, + toggleClass: function toggleClass(classes, toggle) { + if (!array(classes)) { + // extract classes from string + classes = classes.match(/\S+/g) || []; + } + + var self = this; + var toggleUndefd = toggle === undefined; + var changed = []; // eles who had classes changed + + for (var i = 0, il = self.length; i < il; i++) { + var ele = self[i]; + var eleClasses = ele._private.classes; + var changedEle = false; + + for (var j = 0; j < classes.length; j++) { + var cls = classes[j]; + var hasClass = eleClasses.has(cls); + var changedNow = false; + + if (toggle || toggleUndefd && !hasClass) { + eleClasses.add(cls); + changedNow = true; + } else if (!toggle || toggleUndefd && hasClass) { + eleClasses["delete"](cls); + changedNow = true; + } + + if (!changedEle && changedNow) { + changed.push(ele); + changedEle = true; + } + } // for j classes + + } // for i eles + // trigger update style on those eles that had class changes + + + if (changed.length > 0) { + this.spawn(changed).updateStyle().emit('class'); + } + + return self; + }, + removeClass: function removeClass(classes) { + return this.toggleClass(classes, false); + }, + flashClass: function flashClass(classes, duration) { + var self = this; + + if (duration == null) { + duration = 250; + } else if (duration === 0) { + return self; // nothing to do really + } + + self.addClass(classes); + setTimeout(function () { + self.removeClass(classes); + }, duration); + return self; + } + }; + elesfn$h.className = elesfn$h.classNames = elesfn$h.classes; + + var tokens = { + metaChar: '[\\!\\"\\#\\$\\%\\&\\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]', + // chars we need to escape in let names, etc + comparatorOp: '=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=', + // binary comparison op (used in data selectors) + boolOp: '\\?|\\!|\\^', + // boolean (unary) operators (used in data selectors) + string: '"(?:\\\\"|[^"])*"' + '|' + "'(?:\\\\'|[^'])*'", + // string literals (used in data selectors) -- doublequotes | singlequotes + number: number, + // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123 + meta: 'degree|indegree|outdegree', + // allowed metadata fields (i.e. allowed functions to use from Collection) + separator: '\\s*,\\s*', + // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass + descendant: '\\s+', + child: '\\s+>\\s+', + subject: '\\$', + group: 'node|edge|\\*', + directedEdge: '\\s+->\\s+', + undirectedEdge: '\\s+<->\\s+' + }; + tokens.variable = '(?:[\\w-.]|(?:\\\\' + tokens.metaChar + '))+'; // a variable name can have letters, numbers, dashes, and periods + + tokens.className = '(?:[\\w-]|(?:\\\\' + tokens.metaChar + '))+'; // a class name has the same rules as a variable except it can't have a '.' in the name + + tokens.value = tokens.string + '|' + tokens.number; // a value literal, either a string or number + + tokens.id = tokens.variable; // an element id (follows variable conventions) + + (function () { + var ops, op, i; // add @ variants to comparatorOp + + ops = tokens.comparatorOp.split('|'); + + for (i = 0; i < ops.length; i++) { + op = ops[i]; + tokens.comparatorOp += '|@' + op; + } // add ! variants to comparatorOp + + + ops = tokens.comparatorOp.split('|'); + + for (i = 0; i < ops.length; i++) { + op = ops[i]; + + if (op.indexOf('!') >= 0) { + continue; + } // skip ops that explicitly contain ! + + + if (op === '=') { + continue; + } // skip = b/c != is explicitly defined + + + tokens.comparatorOp += '|\\!' + op; + } + })(); + + /** + * Make a new query object + * + * @prop type {Type} The type enum (int) of the query + * @prop checks List of checks to make against an ele to test for a match + */ + var newQuery = function newQuery() { + return { + checks: [] + }; + }; + + /** + * A check type enum-like object. Uses integer values for fast match() lookup. + * The ordering does not matter as long as the ints are unique. + */ + var Type = { + /** E.g. node */ + GROUP: 0, + + /** A collection of elements */ + COLLECTION: 1, + + /** A filter(ele) function */ + FILTER: 2, + + /** E.g. [foo > 1] */ + DATA_COMPARE: 3, + + /** E.g. [foo] */ + DATA_EXIST: 4, + + /** E.g. [?foo] */ + DATA_BOOL: 5, + + /** E.g. [[degree > 2]] */ + META_COMPARE: 6, + + /** E.g. :selected */ + STATE: 7, + + /** E.g. #foo */ + ID: 8, + + /** E.g. .foo */ + CLASS: 9, + + /** E.g. #foo <-> #bar */ + UNDIRECTED_EDGE: 10, + + /** E.g. #foo -> #bar */ + DIRECTED_EDGE: 11, + + /** E.g. $#foo -> #bar */ + NODE_SOURCE: 12, + + /** E.g. #foo -> $#bar */ + NODE_TARGET: 13, + + /** E.g. $#foo <-> #bar */ + NODE_NEIGHBOR: 14, + + /** E.g. #foo > #bar */ + CHILD: 15, + + /** E.g. #foo #bar */ + DESCENDANT: 16, + + /** E.g. $#foo > #bar */ + PARENT: 17, + + /** E.g. $#foo #bar */ + ANCESTOR: 18, + + /** E.g. #foo > $bar > #baz */ + COMPOUND_SPLIT: 19, + + /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */ + TRUE: 20 + }; + + var stateSelectors = [{ + selector: ':selected', + matches: function matches(ele) { + return ele.selected(); + } + }, { + selector: ':unselected', + matches: function matches(ele) { + return !ele.selected(); + } + }, { + selector: ':selectable', + matches: function matches(ele) { + return ele.selectable(); + } + }, { + selector: ':unselectable', + matches: function matches(ele) { + return !ele.selectable(); + } + }, { + selector: ':locked', + matches: function matches(ele) { + return ele.locked(); + } + }, { + selector: ':unlocked', + matches: function matches(ele) { + return !ele.locked(); + } + }, { + selector: ':visible', + matches: function matches(ele) { + return ele.visible(); + } + }, { + selector: ':hidden', + matches: function matches(ele) { + return !ele.visible(); + } + }, { + selector: ':transparent', + matches: function matches(ele) { + return ele.transparent(); + } + }, { + selector: ':grabbed', + matches: function matches(ele) { + return ele.grabbed(); + } + }, { + selector: ':free', + matches: function matches(ele) { + return !ele.grabbed(); + } + }, { + selector: ':removed', + matches: function matches(ele) { + return ele.removed(); + } + }, { + selector: ':inside', + matches: function matches(ele) { + return !ele.removed(); + } + }, { + selector: ':grabbable', + matches: function matches(ele) { + return ele.grabbable(); + } + }, { + selector: ':ungrabbable', + matches: function matches(ele) { + return !ele.grabbable(); + } + }, { + selector: ':animated', + matches: function matches(ele) { + return ele.animated(); + } + }, { + selector: ':unanimated', + matches: function matches(ele) { + return !ele.animated(); + } + }, { + selector: ':parent', + matches: function matches(ele) { + return ele.isParent(); + } + }, { + selector: ':childless', + matches: function matches(ele) { + return ele.isChildless(); + } + }, { + selector: ':child', + matches: function matches(ele) { + return ele.isChild(); + } + }, { + selector: ':orphan', + matches: function matches(ele) { + return ele.isOrphan(); + } + }, { + selector: ':nonorphan', + matches: function matches(ele) { + return ele.isChild(); + } + }, { + selector: ':compound', + matches: function matches(ele) { + if (ele.isNode()) { + return ele.isParent(); + } else { + return ele.source().isParent() || ele.target().isParent(); + } + } + }, { + selector: ':loop', + matches: function matches(ele) { + return ele.isLoop(); + } + }, { + selector: ':simple', + matches: function matches(ele) { + return ele.isSimple(); + } + }, { + selector: ':active', + matches: function matches(ele) { + return ele.active(); + } + }, { + selector: ':inactive', + matches: function matches(ele) { + return !ele.active(); + } + }, { + selector: ':backgrounding', + matches: function matches(ele) { + return ele.backgrounding(); + } + }, { + selector: ':nonbackgrounding', + matches: function matches(ele) { + return !ele.backgrounding(); + } + }].sort(function (a, b) { + // n.b. selectors that are starting substrings of others must have the longer ones first + return descending(a.selector, b.selector); + }); + + var lookup = function () { + var selToFn = {}; + var s; + + for (var i = 0; i < stateSelectors.length; i++) { + s = stateSelectors[i]; + selToFn[s.selector] = s.matches; + } + + return selToFn; + }(); + + var stateSelectorMatches = function stateSelectorMatches(sel, ele) { + return lookup[sel](ele); + }; + var stateSelectorRegex = '(' + stateSelectors.map(function (s) { + return s.selector; + }).join('|') + ')'; + + // so that values get compared properly in Selector.filter() + + var cleanMetaChars = function cleanMetaChars(str) { + return str.replace(new RegExp('\\\\(' + tokens.metaChar + ')', 'g'), function (match, $1) { + return $1; + }); + }; + + var replaceLastQuery = function replaceLastQuery(selector, examiningQuery, replacementQuery) { + selector[selector.length - 1] = replacementQuery; + }; // NOTE: add new expression syntax here to have it recognised by the parser; + // - a query contains all adjacent (i.e. no separator in between) expressions; + // - the current query is stored in selector[i] + // - you need to check the query objects in match() for it actually filter properly, but that's pretty straight forward + + + var exprs = [{ + name: 'group', + // just used for identifying when debugging + query: true, + regex: '(' + tokens.group + ')', + populate: function populate(selector, query, _ref) { + var _ref2 = _slicedToArray(_ref, 1), + group = _ref2[0]; + + query.checks.push({ + type: Type.GROUP, + value: group === '*' ? group : group + 's' + }); + } + }, { + name: 'state', + query: true, + regex: stateSelectorRegex, + populate: function populate(selector, query, _ref3) { + var _ref4 = _slicedToArray(_ref3, 1), + state = _ref4[0]; + + query.checks.push({ + type: Type.STATE, + value: state + }); + } + }, { + name: 'id', + query: true, + regex: '\\#(' + tokens.id + ')', + populate: function populate(selector, query, _ref5) { + var _ref6 = _slicedToArray(_ref5, 1), + id = _ref6[0]; + + query.checks.push({ + type: Type.ID, + value: cleanMetaChars(id) + }); + } + }, { + name: 'className', + query: true, + regex: '\\.(' + tokens.className + ')', + populate: function populate(selector, query, _ref7) { + var _ref8 = _slicedToArray(_ref7, 1), + className = _ref8[0]; + + query.checks.push({ + type: Type.CLASS, + value: cleanMetaChars(className) + }); + } + }, { + name: 'dataExists', + query: true, + regex: '\\[\\s*(' + tokens.variable + ')\\s*\\]', + populate: function populate(selector, query, _ref9) { + var _ref10 = _slicedToArray(_ref9, 1), + variable = _ref10[0]; + + query.checks.push({ + type: Type.DATA_EXIST, + field: cleanMetaChars(variable) + }); + } + }, { + name: 'dataCompare', + query: true, + regex: '\\[\\s*(' + tokens.variable + ')\\s*(' + tokens.comparatorOp + ')\\s*(' + tokens.value + ')\\s*\\]', + populate: function populate(selector, query, _ref11) { + var _ref12 = _slicedToArray(_ref11, 3), + variable = _ref12[0], + comparatorOp = _ref12[1], + value = _ref12[2]; + + var valueIsString = new RegExp('^' + tokens.string + '$').exec(value) != null; + + if (valueIsString) { + value = value.substring(1, value.length - 1); + } else { + value = parseFloat(value); + } + + query.checks.push({ + type: Type.DATA_COMPARE, + field: cleanMetaChars(variable), + operator: comparatorOp, + value: value + }); + } + }, { + name: 'dataBool', + query: true, + regex: '\\[\\s*(' + tokens.boolOp + ')\\s*(' + tokens.variable + ')\\s*\\]', + populate: function populate(selector, query, _ref13) { + var _ref14 = _slicedToArray(_ref13, 2), + boolOp = _ref14[0], + variable = _ref14[1]; + + query.checks.push({ + type: Type.DATA_BOOL, + field: cleanMetaChars(variable), + operator: boolOp + }); + } + }, { + name: 'metaCompare', + query: true, + regex: '\\[\\[\\s*(' + tokens.meta + ')\\s*(' + tokens.comparatorOp + ')\\s*(' + tokens.number + ')\\s*\\]\\]', + populate: function populate(selector, query, _ref15) { + var _ref16 = _slicedToArray(_ref15, 3), + meta = _ref16[0], + comparatorOp = _ref16[1], + number = _ref16[2]; + + query.checks.push({ + type: Type.META_COMPARE, + field: cleanMetaChars(meta), + operator: comparatorOp, + value: parseFloat(number) + }); + } + }, { + name: 'nextQuery', + separator: true, + regex: tokens.separator, + populate: function populate(selector, query) { + var currentSubject = selector.currentSubject; + var edgeCount = selector.edgeCount; + var compoundCount = selector.compoundCount; + var lastQ = selector[selector.length - 1]; + + if (currentSubject != null) { + lastQ.subject = currentSubject; + selector.currentSubject = null; + } + + lastQ.edgeCount = edgeCount; + lastQ.compoundCount = compoundCount; + selector.edgeCount = 0; + selector.compoundCount = 0; // go on to next query + + var nextQuery = selector[selector.length++] = newQuery(); + return nextQuery; // this is the new query to be filled by the following exprs + } + }, { + name: 'directedEdge', + separator: true, + regex: tokens.directedEdge, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + // undirected edge + var edgeQuery = newQuery(); + var source = query; + var target = newQuery(); + edgeQuery.checks.push({ + type: Type.DIRECTED_EDGE, + source: source, + target: target + }); // the query in the selector should be the edge rather than the source + + replaceLastQuery(selector, query, edgeQuery); + selector.edgeCount++; // we're now populating the target query with expressions that follow + + return target; + } else { + // source/target + var srcTgtQ = newQuery(); + var _source = query; + + var _target = newQuery(); + + srcTgtQ.checks.push({ + type: Type.NODE_SOURCE, + source: _source, + target: _target + }); // the query in the selector should be the neighbourhood rather than the node + + replaceLastQuery(selector, query, srcTgtQ); + selector.edgeCount++; + return _target; // now populating the target with the following expressions + } + } + }, { + name: 'undirectedEdge', + separator: true, + regex: tokens.undirectedEdge, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + // undirected edge + var edgeQuery = newQuery(); + var source = query; + var target = newQuery(); + edgeQuery.checks.push({ + type: Type.UNDIRECTED_EDGE, + nodes: [source, target] + }); // the query in the selector should be the edge rather than the source + + replaceLastQuery(selector, query, edgeQuery); + selector.edgeCount++; // we're now populating the target query with expressions that follow + + return target; + } else { + // neighbourhood + var nhoodQ = newQuery(); + var node = query; + var neighbor = newQuery(); + nhoodQ.checks.push({ + type: Type.NODE_NEIGHBOR, + node: node, + neighbor: neighbor + }); // the query in the selector should be the neighbourhood rather than the node + + replaceLastQuery(selector, query, nhoodQ); + return neighbor; // now populating the neighbor with following expressions + } + } + }, { + name: 'child', + separator: true, + regex: tokens.child, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + // default: child query + var parentChildQuery = newQuery(); + var child = newQuery(); + var parent = selector[selector.length - 1]; + parentChildQuery.checks.push({ + type: Type.CHILD, + parent: parent, + child: child + }); // the query in the selector should be the '>' itself + + replaceLastQuery(selector, query, parentChildQuery); + selector.compoundCount++; // we're now populating the child query with expressions that follow + + return child; + } else if (selector.currentSubject === query) { + // compound split query + var compound = newQuery(); + var left = selector[selector.length - 1]; + var right = newQuery(); + var subject = newQuery(); + + var _child = newQuery(); + + var _parent = newQuery(); // set up the root compound q + + + compound.checks.push({ + type: Type.COMPOUND_SPLIT, + left: left, + right: right, + subject: subject + }); // populate the subject and replace the q at the old spot (within left) with TRUE + + subject.checks = query.checks; // take the checks from the left + + query.checks = [{ + type: Type.TRUE + }]; // checks under left refs the subject implicitly + // set up the right q + + _parent.checks.push({ + type: Type.TRUE + }); // parent implicitly refs the subject + + + right.checks.push({ + type: Type.PARENT, + // type is swapped on right side queries + parent: _parent, + child: _child // empty for now + + }); + replaceLastQuery(selector, left, compound); // update the ref since we moved things around for `query` + + selector.currentSubject = subject; + selector.compoundCount++; + return _child; // now populating the right side's child + } else { + // parent query + // info for parent query + var _parent2 = newQuery(); + + var _child2 = newQuery(); + + var pcQChecks = [{ + type: Type.PARENT, + parent: _parent2, + child: _child2 + }]; // the parent-child query takes the place of the query previously being populated + + _parent2.checks = query.checks; // the previous query contains the checks for the parent + + query.checks = pcQChecks; // pc query takes over + + selector.compoundCount++; + return _child2; // we're now populating the child + } + } + }, { + name: 'descendant', + separator: true, + regex: tokens.descendant, + populate: function populate(selector, query) { + if (selector.currentSubject == null) { + // default: descendant query + var ancChQuery = newQuery(); + var descendant = newQuery(); + var ancestor = selector[selector.length - 1]; + ancChQuery.checks.push({ + type: Type.DESCENDANT, + ancestor: ancestor, + descendant: descendant + }); // the query in the selector should be the '>' itself + + replaceLastQuery(selector, query, ancChQuery); + selector.compoundCount++; // we're now populating the descendant query with expressions that follow + + return descendant; + } else if (selector.currentSubject === query) { + // compound split query + var compound = newQuery(); + var left = selector[selector.length - 1]; + var right = newQuery(); + var subject = newQuery(); + + var _descendant = newQuery(); + + var _ancestor = newQuery(); // set up the root compound q + + + compound.checks.push({ + type: Type.COMPOUND_SPLIT, + left: left, + right: right, + subject: subject + }); // populate the subject and replace the q at the old spot (within left) with TRUE + + subject.checks = query.checks; // take the checks from the left + + query.checks = [{ + type: Type.TRUE + }]; // checks under left refs the subject implicitly + // set up the right q + + _ancestor.checks.push({ + type: Type.TRUE + }); // ancestor implicitly refs the subject + + + right.checks.push({ + type: Type.ANCESTOR, + // type is swapped on right side queries + ancestor: _ancestor, + descendant: _descendant // empty for now + + }); + replaceLastQuery(selector, left, compound); // update the ref since we moved things around for `query` + + selector.currentSubject = subject; + selector.compoundCount++; + return _descendant; // now populating the right side's descendant + } else { + // ancestor query + // info for parent query + var _ancestor2 = newQuery(); + + var _descendant2 = newQuery(); + + var adQChecks = [{ + type: Type.ANCESTOR, + ancestor: _ancestor2, + descendant: _descendant2 + }]; // the parent-child query takes the place of the query previously being populated + + _ancestor2.checks = query.checks; // the previous query contains the checks for the parent + + query.checks = adQChecks; // pc query takes over + + selector.compoundCount++; + return _descendant2; // we're now populating the child + } + } + }, { + name: 'subject', + modifier: true, + regex: tokens.subject, + populate: function populate(selector, query) { + if (selector.currentSubject != null && selector.currentSubject !== query) { + warn('Redefinition of subject in selector `' + selector.toString() + '`'); + return false; + } + + selector.currentSubject = query; + var topQ = selector[selector.length - 1]; + var topChk = topQ.checks[0]; + var topType = topChk == null ? null : topChk.type; + + if (topType === Type.DIRECTED_EDGE) { + // directed edge with subject on the target + // change to target node check + topChk.type = Type.NODE_TARGET; + } else if (topType === Type.UNDIRECTED_EDGE) { + // undirected edge with subject on the second node + // change to neighbor check + topChk.type = Type.NODE_NEIGHBOR; + topChk.node = topChk.nodes[1]; // second node is subject + + topChk.neighbor = topChk.nodes[0]; // clean up unused fields for new type + + topChk.nodes = null; + } + } + }]; + exprs.forEach(function (e) { + return e.regexObj = new RegExp('^' + e.regex); + }); + + /** + * Of all the expressions, find the first match in the remaining text. + * @param {string} remaining The remaining text to parse + * @returns The matched expression and the newly remaining text `{ expr, match, name, remaining }` + */ + + var consumeExpr = function consumeExpr(remaining) { + var expr; + var match; + var name; + + for (var j = 0; j < exprs.length; j++) { + var e = exprs[j]; + var n = e.name; + var m = remaining.match(e.regexObj); + + if (m != null) { + match = m; + expr = e; + name = n; + var consumed = m[0]; + remaining = remaining.substring(consumed.length); + break; // we've consumed one expr, so we can return now + } + } + + return { + expr: expr, + match: match, + name: name, + remaining: remaining + }; + }; + /** + * Consume all the leading whitespace + * @param {string} remaining The text to consume + * @returns The text with the leading whitespace removed + */ + + + var consumeWhitespace = function consumeWhitespace(remaining) { + var match = remaining.match(/^\s+/); + + if (match) { + var consumed = match[0]; + remaining = remaining.substring(consumed.length); + } + + return remaining; + }; + /** + * Parse the string and store the parsed representation in the Selector. + * @param {string} selector The selector string + * @returns `true` if the selector was successfully parsed, `false` otherwise + */ + + + var parse = function parse(selector) { + var self = this; + var remaining = self.inputText = selector; + var currentQuery = self[0] = newQuery(); + self.length = 1; + remaining = consumeWhitespace(remaining); // get rid of leading whitespace + + for (;;) { + var exprInfo = consumeExpr(remaining); + + if (exprInfo.expr == null) { + warn('The selector `' + selector + '`is invalid'); + return false; + } else { + var args = exprInfo.match.slice(1); // let the token populate the selector object in currentQuery + + var ret = exprInfo.expr.populate(self, currentQuery, args); + + if (ret === false) { + return false; // exit if population failed + } else if (ret != null) { + currentQuery = ret; // change the current query to be filled if the expr specifies + } + } + + remaining = exprInfo.remaining; // we're done when there's nothing left to parse + + if (remaining.match(/^\s*$/)) { + break; + } + } + + var lastQ = self[self.length - 1]; + + if (self.currentSubject != null) { + lastQ.subject = self.currentSubject; + } + + lastQ.edgeCount = self.edgeCount; + lastQ.compoundCount = self.compoundCount; + + for (var i = 0; i < self.length; i++) { + var q = self[i]; // in future, this could potentially be allowed if there were operator precedence and detection of invalid combinations + + if (q.compoundCount > 0 && q.edgeCount > 0) { + warn('The selector `' + selector + '` is invalid because it uses both a compound selector and an edge selector'); + return false; + } + + if (q.edgeCount > 1) { + warn('The selector `' + selector + '` is invalid because it uses multiple edge selectors'); + return false; + } else if (q.edgeCount === 1) { + warn('The selector `' + selector + '` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.'); + } + } + + return true; // success + }; + /** + * Get the selector represented as a string. This value uses default formatting, + * so things like spacing may differ from the input text passed to the constructor. + * @returns {string} The selector string + */ + + + var toString = function toString() { + if (this.toStringCache != null) { + return this.toStringCache; + } + + var clean = function clean(obj) { + if (obj == null) { + return ''; + } else { + return obj; + } + }; + + var cleanVal = function cleanVal(val) { + if (string(val)) { + return '"' + val + '"'; + } else { + return clean(val); + } + }; + + var space = function space(val) { + return ' ' + val + ' '; + }; + + var checkToString = function checkToString(check, subject) { + var type = check.type, + value = check.value; + + switch (type) { + case Type.GROUP: + { + var group = clean(value); + return group.substring(0, group.length - 1); + } + + case Type.DATA_COMPARE: + { + var field = check.field, + operator = check.operator; + return '[' + field + space(clean(operator)) + cleanVal(value) + ']'; + } + + case Type.DATA_BOOL: + { + var _operator = check.operator, + _field = check.field; + return '[' + clean(_operator) + _field + ']'; + } + + case Type.DATA_EXIST: + { + var _field2 = check.field; + return '[' + _field2 + ']'; + } + + case Type.META_COMPARE: + { + var _operator2 = check.operator, + _field3 = check.field; + return '[[' + _field3 + space(clean(_operator2)) + cleanVal(value) + ']]'; + } + + case Type.STATE: + { + return value; + } + + case Type.ID: + { + return '#' + value; + } + + case Type.CLASS: + { + return '.' + value; + } + + case Type.PARENT: + case Type.CHILD: + { + return queryToString(check.parent, subject) + space('>') + queryToString(check.child, subject); + } + + case Type.ANCESTOR: + case Type.DESCENDANT: + { + return queryToString(check.ancestor, subject) + ' ' + queryToString(check.descendant, subject); + } + + case Type.COMPOUND_SPLIT: + { + var lhs = queryToString(check.left, subject); + var sub = queryToString(check.subject, subject); + var rhs = queryToString(check.right, subject); + return lhs + (lhs.length > 0 ? ' ' : '') + sub + rhs; + } + + case Type.TRUE: + { + return ''; + } + } + }; + + var queryToString = function queryToString(query, subject) { + return query.checks.reduce(function (str, chk, i) { + return str + (subject === query && i === 0 ? '$' : '') + checkToString(chk, subject); + }, ''); + }; + + var str = ''; + + for (var i = 0; i < this.length; i++) { + var query = this[i]; + str += queryToString(query, query.subject); + + if (this.length > 1 && i < this.length - 1) { + str += ', '; + } + } + + this.toStringCache = str; + return str; + }; + var parse$1 = { + parse: parse, + toString: toString + }; + + var valCmp = function valCmp(fieldVal, operator, value) { + var matches; + var isFieldStr = string(fieldVal); + var isFieldNum = number$1(fieldVal); + var isValStr = string(value); + var fieldStr, valStr; + var caseInsensitive = false; + var notExpr = false; + var isIneqCmp = false; + + if (operator.indexOf('!') >= 0) { + operator = operator.replace('!', ''); + notExpr = true; + } + + if (operator.indexOf('@') >= 0) { + operator = operator.replace('@', ''); + caseInsensitive = true; + } + + if (isFieldStr || isValStr || caseInsensitive) { + fieldStr = !isFieldStr && !isFieldNum ? '' : '' + fieldVal; + valStr = '' + value; + } // if we're doing a case insensitive comparison, then we're using a STRING comparison + // even if we're comparing numbers + + + if (caseInsensitive) { + fieldVal = fieldStr = fieldStr.toLowerCase(); + value = valStr = valStr.toLowerCase(); + } + + switch (operator) { + case '*=': + matches = fieldStr.indexOf(valStr) >= 0; + break; + + case '$=': + matches = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0; + break; + + case '^=': + matches = fieldStr.indexOf(valStr) === 0; + break; + + case '=': + matches = fieldVal === value; + break; + + case '>': + isIneqCmp = true; + matches = fieldVal > value; + break; + + case '>=': + isIneqCmp = true; + matches = fieldVal >= value; + break; + + case '<': + isIneqCmp = true; + matches = fieldVal < value; + break; + + case '<=': + isIneqCmp = true; + matches = fieldVal <= value; + break; + + default: + matches = false; + break; + } // apply the not op, but null vals for inequalities should always stay non-matching + + + if (notExpr && (fieldVal != null || !isIneqCmp)) { + matches = !matches; + } + + return matches; + }; + var boolCmp = function boolCmp(fieldVal, operator) { + switch (operator) { + case '?': + return fieldVal ? true : false; + + case '!': + return fieldVal ? false : true; + + case '^': + return fieldVal === undefined; + } + }; + var existCmp = function existCmp(fieldVal) { + return fieldVal !== undefined; + }; + var data$1 = function data(ele, field) { + return ele.data(field); + }; + var meta = function meta(ele, field) { + return ele[field](); + }; + + /** A lookup of `match(check, ele)` functions by `Type` int */ + + var match = []; + /** + * Returns whether the query matches for the element + * @param query The `{ type, value, ... }` query object + * @param ele The element to compare against + */ + + var matches$1 = function matches(query, ele) { + return query.checks.every(function (chk) { + return match[chk.type](chk, ele); + }); + }; + + match[Type.GROUP] = function (check, ele) { + var group = check.value; + return group === '*' || group === ele.group(); + }; + + match[Type.STATE] = function (check, ele) { + var stateSelector = check.value; + return stateSelectorMatches(stateSelector, ele); + }; + + match[Type.ID] = function (check, ele) { + var id = check.value; + return ele.id() === id; + }; + + match[Type.CLASS] = function (check, ele) { + var cls = check.value; + return ele.hasClass(cls); + }; + + match[Type.META_COMPARE] = function (check, ele) { + var field = check.field, + operator = check.operator, + value = check.value; + return valCmp(meta(ele, field), operator, value); + }; + + match[Type.DATA_COMPARE] = function (check, ele) { + var field = check.field, + operator = check.operator, + value = check.value; + return valCmp(data$1(ele, field), operator, value); + }; + + match[Type.DATA_BOOL] = function (check, ele) { + var field = check.field, + operator = check.operator; + return boolCmp(data$1(ele, field), operator); + }; + + match[Type.DATA_EXIST] = function (check, ele) { + var field = check.field; + check.operator; + return existCmp(data$1(ele, field)); + }; + + match[Type.UNDIRECTED_EDGE] = function (check, ele) { + var qA = check.nodes[0]; + var qB = check.nodes[1]; + var src = ele.source(); + var tgt = ele.target(); + return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt); + }; + + match[Type.NODE_NEIGHBOR] = function (check, ele) { + return matches$1(check.node, ele) && ele.neighborhood().some(function (n) { + return n.isNode() && matches$1(check.neighbor, n); + }); + }; + + match[Type.DIRECTED_EDGE] = function (check, ele) { + return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target()); + }; + + match[Type.NODE_SOURCE] = function (check, ele) { + return matches$1(check.source, ele) && ele.outgoers().some(function (n) { + return n.isNode() && matches$1(check.target, n); + }); + }; + + match[Type.NODE_TARGET] = function (check, ele) { + return matches$1(check.target, ele) && ele.incomers().some(function (n) { + return n.isNode() && matches$1(check.source, n); + }); + }; + + match[Type.CHILD] = function (check, ele) { + return matches$1(check.child, ele) && matches$1(check.parent, ele.parent()); + }; + + match[Type.PARENT] = function (check, ele) { + return matches$1(check.parent, ele) && ele.children().some(function (c) { + return matches$1(check.child, c); + }); + }; + + match[Type.DESCENDANT] = function (check, ele) { + return matches$1(check.descendant, ele) && ele.ancestors().some(function (a) { + return matches$1(check.ancestor, a); + }); + }; + + match[Type.ANCESTOR] = function (check, ele) { + return matches$1(check.ancestor, ele) && ele.descendants().some(function (d) { + return matches$1(check.descendant, d); + }); + }; + + match[Type.COMPOUND_SPLIT] = function (check, ele) { + return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele); + }; + + match[Type.TRUE] = function () { + return true; + }; + + match[Type.COLLECTION] = function (check, ele) { + var collection = check.value; + return collection.has(ele); + }; + + match[Type.FILTER] = function (check, ele) { + var filter = check.value; + return filter(ele); + }; + + var filter = function filter(collection) { + var self = this; // for 1 id #foo queries, just get the element + + if (self.length === 1 && self[0].checks.length === 1 && self[0].checks[0].type === Type.ID) { + return collection.getElementById(self[0].checks[0].value).collection(); + } + + var selectorFunction = function selectorFunction(element) { + for (var j = 0; j < self.length; j++) { + var query = self[j]; + + if (matches$1(query, element)) { + return true; + } + } + + return false; + }; + + if (self.text() == null) { + selectorFunction = function selectorFunction() { + return true; + }; + } + + return collection.filter(selectorFunction); + }; // filter + // does selector match a single element? + + + var matches = function matches(ele) { + var self = this; + + for (var j = 0; j < self.length; j++) { + var query = self[j]; + + if (matches$1(query, ele)) { + return true; + } + } + + return false; + }; // matches + + + var matching = { + matches: matches, + filter: filter + }; + + var Selector = function Selector(selector) { + this.inputText = selector; + this.currentSubject = null; + this.compoundCount = 0; + this.edgeCount = 0; + this.length = 0; + + if (selector == null || string(selector) && selector.match(/^\s*$/)) ; else if (elementOrCollection(selector)) { + this.addQuery({ + checks: [{ + type: Type.COLLECTION, + value: selector.collection() + }] + }); + } else if (fn$6(selector)) { + this.addQuery({ + checks: [{ + type: Type.FILTER, + value: selector + }] + }); + } else if (string(selector)) { + if (!this.parse(selector)) { + this.invalid = true; + } + } else { + error('A selector must be created from a string; found '); + } + }; + + var selfn = Selector.prototype; + [parse$1, matching].forEach(function (p) { + return extend(selfn, p); + }); + + selfn.text = function () { + return this.inputText; + }; + + selfn.size = function () { + return this.length; + }; + + selfn.eq = function (i) { + return this[i]; + }; + + selfn.sameText = function (otherSel) { + return !this.invalid && !otherSel.invalid && this.text() === otherSel.text(); + }; + + selfn.addQuery = function (q) { + this[this.length++] = q; + }; + + selfn.selector = selfn.toString; + + var elesfn$g = { + allAre: function allAre(selector) { + var selObj = new Selector(selector); + return this.every(function (ele) { + return selObj.matches(ele); + }); + }, + is: function is(selector) { + var selObj = new Selector(selector); + return this.some(function (ele) { + return selObj.matches(ele); + }); + }, + some: function some(fn, thisArg) { + for (var i = 0; i < this.length; i++) { + var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]); + + if (ret) { + return true; + } + } + + return false; + }, + every: function every(fn, thisArg) { + for (var i = 0; i < this.length; i++) { + var ret = !thisArg ? fn(this[i], i, this) : fn.apply(thisArg, [this[i], i, this]); + + if (!ret) { + return false; + } + } + + return true; + }, + same: function same(collection) { + // cheap collection ref check + if (this === collection) { + return true; + } + + collection = this.cy().collection(collection); + var thisLength = this.length; + var collectionLength = collection.length; // cheap length check + + if (thisLength !== collectionLength) { + return false; + } // cheap element ref check + + + if (thisLength === 1) { + return this[0] === collection[0]; + } + + return this.every(function (ele) { + return collection.hasElementWithId(ele.id()); + }); + }, + anySame: function anySame(collection) { + collection = this.cy().collection(collection); + return this.some(function (ele) { + return collection.hasElementWithId(ele.id()); + }); + }, + allAreNeighbors: function allAreNeighbors(collection) { + collection = this.cy().collection(collection); + var nhood = this.neighborhood(); + return collection.every(function (ele) { + return nhood.hasElementWithId(ele.id()); + }); + }, + contains: function contains(collection) { + collection = this.cy().collection(collection); + var self = this; + return collection.every(function (ele) { + return self.hasElementWithId(ele.id()); + }); + } + }; + elesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors; + elesfn$g.has = elesfn$g.contains; + elesfn$g.equal = elesfn$g.equals = elesfn$g.same; + + var cache = function cache(fn, name) { + return function traversalCache(arg1, arg2, arg3, arg4) { + var selectorOrEles = arg1; + var eles = this; + var key; + + if (selectorOrEles == null) { + key = ''; + } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) { + key = selectorOrEles.id(); + } + + if (eles.length === 1 && key) { + var _p = eles[0]._private; + var tch = _p.traversalCache = _p.traversalCache || {}; + var ch = tch[name] = tch[name] || []; + var hash = hashString(key); + var cacheHit = ch[hash]; + + if (cacheHit) { + return cacheHit; + } else { + return ch[hash] = fn.call(eles, arg1, arg2, arg3, arg4); + } + } else { + return fn.call(eles, arg1, arg2, arg3, arg4); + } + }; + }; + + var elesfn$f = { + parent: function parent(selector) { + var parents = []; // optimisation for single ele call + + if (this.length === 1) { + var parent = this[0]._private.parent; + + if (parent) { + return parent; + } + } + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var _parent = ele._private.parent; + + if (_parent) { + parents.push(_parent); + } + } + + return this.spawn(parents, true).filter(selector); + }, + parents: function parents(selector) { + var parents = []; + var eles = this.parent(); + + while (eles.nonempty()) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + parents.push(ele); + } + + eles = eles.parent(); + } + + return this.spawn(parents, true).filter(selector); + }, + commonAncestors: function commonAncestors(selector) { + var ancestors; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var parents = ele.parents(); + ancestors = ancestors || parents; + ancestors = ancestors.intersect(parents); // current list must be common with current ele parents set + } + + return ancestors.filter(selector); + }, + orphans: function orphans(selector) { + return this.stdFilter(function (ele) { + return ele.isOrphan(); + }).filter(selector); + }, + nonorphans: function nonorphans(selector) { + return this.stdFilter(function (ele) { + return ele.isChild(); + }).filter(selector); + }, + children: cache(function (selector) { + var children = []; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var eleChildren = ele._private.children; + + for (var j = 0; j < eleChildren.length; j++) { + children.push(eleChildren[j]); + } + } + + return this.spawn(children, true).filter(selector); + }, 'children'), + siblings: function siblings(selector) { + return this.parent().children().not(this).filter(selector); + }, + isParent: function isParent() { + var ele = this[0]; + + if (ele) { + return ele.isNode() && ele._private.children.length !== 0; + } + }, + isChildless: function isChildless() { + var ele = this[0]; + + if (ele) { + return ele.isNode() && ele._private.children.length === 0; + } + }, + isChild: function isChild() { + var ele = this[0]; + + if (ele) { + return ele.isNode() && ele._private.parent != null; + } + }, + isOrphan: function isOrphan() { + var ele = this[0]; + + if (ele) { + return ele.isNode() && ele._private.parent == null; + } + }, + descendants: function descendants(selector) { + var elements = []; + + function add(eles) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + elements.push(ele); + + if (ele.children().nonempty()) { + add(ele.children()); + } + } + } + + add(this.children()); + return this.spawn(elements, true).filter(selector); + } + }; + + function forEachCompound(eles, fn, includeSelf, recursiveStep) { + var q = []; + var did = new Set$1(); + var cy = eles.cy(); + var hasCompounds = cy.hasCompoundNodes(); + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + + if (includeSelf) { + q.push(ele); + } else if (hasCompounds) { + recursiveStep(q, did, ele); + } + } + + while (q.length > 0) { + var _ele = q.shift(); + + fn(_ele); + did.add(_ele.id()); + + if (hasCompounds) { + recursiveStep(q, did, _ele); + } + } + + return eles; + } + + function addChildren(q, did, ele) { + if (ele.isParent()) { + var children = ele._private.children; + + for (var i = 0; i < children.length; i++) { + var child = children[i]; + + if (!did.has(child.id())) { + q.push(child); + } + } + } + } // very efficient version of eles.add( eles.descendants() ).forEach() + // for internal use + + + elesfn$f.forEachDown = function (fn) { + var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + return forEachCompound(this, fn, includeSelf, addChildren); + }; + + function addParent(q, did, ele) { + if (ele.isChild()) { + var parent = ele._private.parent; + + if (!did.has(parent.id())) { + q.push(parent); + } + } + } + + elesfn$f.forEachUp = function (fn) { + var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + return forEachCompound(this, fn, includeSelf, addParent); + }; + + function addParentAndChildren(q, did, ele) { + addParent(q, did, ele); + addChildren(q, did, ele); + } + + elesfn$f.forEachUpAndDown = function (fn) { + var includeSelf = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + return forEachCompound(this, fn, includeSelf, addParentAndChildren); + }; // aliases + + + elesfn$f.ancestors = elesfn$f.parents; + + var fn$5, elesfn$e; + fn$5 = elesfn$e = { + data: define.data({ + field: 'data', + bindingEvent: 'data', + allowBinding: true, + allowSetting: true, + settingEvent: 'data', + settingTriggersEvent: true, + triggerFnName: 'trigger', + allowGetting: true, + immutableKeys: { + 'id': true, + 'source': true, + 'target': true, + 'parent': true + }, + updateStyle: true + }), + removeData: define.removeData({ + field: 'data', + event: 'data', + triggerFnName: 'trigger', + triggerEvent: true, + immutableKeys: { + 'id': true, + 'source': true, + 'target': true, + 'parent': true + }, + updateStyle: true + }), + scratch: define.data({ + field: 'scratch', + bindingEvent: 'scratch', + allowBinding: true, + allowSetting: true, + settingEvent: 'scratch', + settingTriggersEvent: true, + triggerFnName: 'trigger', + allowGetting: true, + updateStyle: true + }), + removeScratch: define.removeData({ + field: 'scratch', + event: 'scratch', + triggerFnName: 'trigger', + triggerEvent: true, + updateStyle: true + }), + rscratch: define.data({ + field: 'rscratch', + allowBinding: false, + allowSetting: true, + settingTriggersEvent: false, + allowGetting: true + }), + removeRscratch: define.removeData({ + field: 'rscratch', + triggerEvent: false + }), + id: function id() { + var ele = this[0]; + + if (ele) { + return ele._private.data.id; + } + } + }; // aliases + + fn$5.attr = fn$5.data; + fn$5.removeAttr = fn$5.removeData; + var data = elesfn$e; + + var elesfn$d = {}; + + function defineDegreeFunction(callback) { + return function (includeLoops) { + var self = this; + + if (includeLoops === undefined) { + includeLoops = true; + } + + if (self.length === 0) { + return; + } + + if (self.isNode() && !self.removed()) { + var degree = 0; + var node = self[0]; + var connectedEdges = node._private.edges; + + for (var i = 0; i < connectedEdges.length; i++) { + var edge = connectedEdges[i]; + + if (!includeLoops && edge.isLoop()) { + continue; + } + + degree += callback(node, edge); + } + + return degree; + } else { + return; + } + }; + } + + extend(elesfn$d, { + degree: defineDegreeFunction(function (node, edge) { + if (edge.source().same(edge.target())) { + return 2; + } else { + return 1; + } + }), + indegree: defineDegreeFunction(function (node, edge) { + if (edge.target().same(node)) { + return 1; + } else { + return 0; + } + }), + outdegree: defineDegreeFunction(function (node, edge) { + if (edge.source().same(node)) { + return 1; + } else { + return 0; + } + }) + }); + + function defineDegreeBoundsFunction(degreeFn, callback) { + return function (includeLoops) { + var ret; + var nodes = this.nodes(); + + for (var i = 0; i < nodes.length; i++) { + var ele = nodes[i]; + var degree = ele[degreeFn](includeLoops); + + if (degree !== undefined && (ret === undefined || callback(degree, ret))) { + ret = degree; + } + } + + return ret; + }; + } + + extend(elesfn$d, { + minDegree: defineDegreeBoundsFunction('degree', function (degree, min) { + return degree < min; + }), + maxDegree: defineDegreeBoundsFunction('degree', function (degree, max) { + return degree > max; + }), + minIndegree: defineDegreeBoundsFunction('indegree', function (degree, min) { + return degree < min; + }), + maxIndegree: defineDegreeBoundsFunction('indegree', function (degree, max) { + return degree > max; + }), + minOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, min) { + return degree < min; + }), + maxOutdegree: defineDegreeBoundsFunction('outdegree', function (degree, max) { + return degree > max; + }) + }); + extend(elesfn$d, { + totalDegree: function totalDegree(includeLoops) { + var total = 0; + var nodes = this.nodes(); + + for (var i = 0; i < nodes.length; i++) { + total += nodes[i].degree(includeLoops); + } + + return total; + } + }); + + var fn$4, elesfn$c; + + var beforePositionSet = function beforePositionSet(eles, newPos, silent) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + + if (!ele.locked()) { + var oldPos = ele._private.position; + var delta = { + x: newPos.x != null ? newPos.x - oldPos.x : 0, + y: newPos.y != null ? newPos.y - oldPos.y : 0 + }; + + if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) { + ele.children().shift(delta, silent); + } + + ele.dirtyBoundingBoxCache(); + } + } + }; + + var positionDef = { + field: 'position', + bindingEvent: 'position', + allowBinding: true, + allowSetting: true, + settingEvent: 'position', + settingTriggersEvent: true, + triggerFnName: 'emitAndNotify', + allowGetting: true, + validKeys: ['x', 'y'], + beforeGet: function beforeGet(ele) { + ele.updateCompoundBounds(); + }, + beforeSet: function beforeSet(eles, newPos) { + beforePositionSet(eles, newPos, false); + }, + onSet: function onSet(eles) { + eles.dirtyCompoundBoundsCache(); + }, + canSet: function canSet(ele) { + return !ele.locked(); + } + }; + fn$4 = elesfn$c = { + position: define.data(positionDef), + // position but no notification to renderer + silentPosition: define.data(extend({}, positionDef, { + allowBinding: false, + allowSetting: true, + settingTriggersEvent: false, + allowGetting: false, + beforeSet: function beforeSet(eles, newPos) { + beforePositionSet(eles, newPos, true); + }, + onSet: function onSet(eles) { + eles.dirtyCompoundBoundsCache(); + } + })), + positions: function positions(pos, silent) { + if (plainObject(pos)) { + if (silent) { + this.silentPosition(pos); + } else { + this.position(pos); + } + } else if (fn$6(pos)) { + var _fn = pos; + var cy = this.cy(); + cy.startBatch(); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + + var _pos = void 0; + + if (_pos = _fn(ele, i)) { + if (silent) { + ele.silentPosition(_pos); + } else { + ele.position(_pos); + } + } + } + + cy.endBatch(); + } + + return this; // chaining + }, + silentPositions: function silentPositions(pos) { + return this.positions(pos, true); + }, + shift: function shift(dim, val, silent) { + var delta; + + if (plainObject(dim)) { + delta = { + x: number$1(dim.x) ? dim.x : 0, + y: number$1(dim.y) ? dim.y : 0 + }; + silent = val; + } else if (string(dim) && number$1(val)) { + delta = { + x: 0, + y: 0 + }; + delta[dim] = val; + } + + if (delta != null) { + var cy = this.cy(); + cy.startBatch(); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; // exclude any node that is a descendant of the calling collection + + if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) { + continue; + } + + var pos = ele.position(); + var newPos = { + x: pos.x + delta.x, + y: pos.y + delta.y + }; + + if (silent) { + ele.silentPosition(newPos); + } else { + ele.position(newPos); + } + } + + cy.endBatch(); + } + + return this; + }, + silentShift: function silentShift(dim, val) { + if (plainObject(dim)) { + this.shift(dim, true); + } else if (string(dim) && number$1(val)) { + this.shift(dim, val, true); + } + + return this; + }, + // get/set the rendered (i.e. on screen) positon of the element + renderedPosition: function renderedPosition(dim, val) { + var ele = this[0]; + var cy = this.cy(); + var zoom = cy.zoom(); + var pan = cy.pan(); + var rpos = plainObject(dim) ? dim : undefined; + var setting = rpos !== undefined || val !== undefined && string(dim); + + if (ele && ele.isNode()) { + // must have an element and must be a node to return position + if (setting) { + for (var i = 0; i < this.length; i++) { + var _ele = this[i]; + + if (val !== undefined) { + // set one dimension + _ele.position(dim, (val - pan[dim]) / zoom); + } else if (rpos !== undefined) { + // set whole position + _ele.position(renderedToModelPosition(rpos, zoom, pan)); + } + } + } else { + // getting + var pos = ele.position(); + rpos = modelToRenderedPosition(pos, zoom, pan); + + if (dim === undefined) { + // then return the whole rendered position + return rpos; + } else { + // then return the specified dimension + return rpos[dim]; + } + } + } else if (!setting) { + return undefined; // for empty collection case + } + + return this; // chaining + }, + // get/set the position relative to the parent + relativePosition: function relativePosition(dim, val) { + var ele = this[0]; + var cy = this.cy(); + var ppos = plainObject(dim) ? dim : undefined; + var setting = ppos !== undefined || val !== undefined && string(dim); + var hasCompoundNodes = cy.hasCompoundNodes(); + + if (ele && ele.isNode()) { + // must have an element and must be a node to return position + if (setting) { + for (var i = 0; i < this.length; i++) { + var _ele2 = this[i]; + var parent = hasCompoundNodes ? _ele2.parent() : null; + var hasParent = parent && parent.length > 0; + var relativeToParent = hasParent; + + if (hasParent) { + parent = parent[0]; + } + + var origin = relativeToParent ? parent.position() : { + x: 0, + y: 0 + }; + + if (val !== undefined) { + // set one dimension + _ele2.position(dim, val + origin[dim]); + } else if (ppos !== undefined) { + // set whole position + _ele2.position({ + x: ppos.x + origin.x, + y: ppos.y + origin.y + }); + } + } + } else { + // getting + var pos = ele.position(); + + var _parent = hasCompoundNodes ? ele.parent() : null; + + var _hasParent = _parent && _parent.length > 0; + + var _relativeToParent = _hasParent; + + if (_hasParent) { + _parent = _parent[0]; + } + + var _origin = _relativeToParent ? _parent.position() : { + x: 0, + y: 0 + }; + + ppos = { + x: pos.x - _origin.x, + y: pos.y - _origin.y + }; + + if (dim === undefined) { + // then return the whole rendered position + return ppos; + } else { + // then return the specified dimension + return ppos[dim]; + } + } + } else if (!setting) { + return undefined; // for empty collection case + } + + return this; // chaining + } + }; // aliases + + fn$4.modelPosition = fn$4.point = fn$4.position; + fn$4.modelPositions = fn$4.points = fn$4.positions; + fn$4.renderedPoint = fn$4.renderedPosition; + fn$4.relativePoint = fn$4.relativePosition; + var position = elesfn$c; + + var fn$3, elesfn$b; + fn$3 = elesfn$b = {}; + + elesfn$b.renderedBoundingBox = function (options) { + var bb = this.boundingBox(options); + var cy = this.cy(); + var zoom = cy.zoom(); + var pan = cy.pan(); + var x1 = bb.x1 * zoom + pan.x; + var x2 = bb.x2 * zoom + pan.x; + var y1 = bb.y1 * zoom + pan.y; + var y2 = bb.y2 * zoom + pan.y; + return { + x1: x1, + x2: x2, + y1: y1, + y2: y2, + w: x2 - x1, + h: y2 - y1 + }; + }; + + elesfn$b.dirtyCompoundBoundsCache = function () { + var silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var cy = this.cy(); + + if (!cy.styleEnabled() || !cy.hasCompoundNodes()) { + return this; + } + + this.forEachUp(function (ele) { + if (ele.isParent()) { + var _p = ele._private; + _p.compoundBoundsClean = false; + _p.bbCache = null; + + if (!silent) { + ele.emitAndNotify('bounds'); + } + } + }); + return this; + }; + + elesfn$b.updateCompoundBounds = function () { + var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var cy = this.cy(); // not possible to do on non-compound graphs or with the style disabled + + if (!cy.styleEnabled() || !cy.hasCompoundNodes()) { + return this; + } // save cycles when batching -- but bounds will be stale (or not exist yet) + + + if (!force && cy.batching()) { + return this; + } + + function update(parent) { + if (!parent.isParent()) { + return; + } + + var _p = parent._private; + var children = parent.children(); + var includeLabels = parent.pstyle('compound-sizing-wrt-labels').value === 'include'; + var min = { + width: { + val: parent.pstyle('min-width').pfValue, + left: parent.pstyle('min-width-bias-left'), + right: parent.pstyle('min-width-bias-right') + }, + height: { + val: parent.pstyle('min-height').pfValue, + top: parent.pstyle('min-height-bias-top'), + bottom: parent.pstyle('min-height-bias-bottom') + } + }; + var bb = children.boundingBox({ + includeLabels: includeLabels, + includeOverlays: false, + // updating the compound bounds happens outside of the regular + // cache cycle (i.e. before fired events) + useCache: false + }); + var pos = _p.position; // if children take up zero area then keep position and fall back on stylesheet w/h + + if (bb.w === 0 || bb.h === 0) { + bb = { + w: parent.pstyle('width').pfValue, + h: parent.pstyle('height').pfValue + }; + bb.x1 = pos.x - bb.w / 2; + bb.x2 = pos.x + bb.w / 2; + bb.y1 = pos.y - bb.h / 2; + bb.y2 = pos.y + bb.h / 2; + } + + function computeBiasValues(propDiff, propBias, propBiasComplement) { + var biasDiff = 0; + var biasComplementDiff = 0; + var biasTotal = propBias + propBiasComplement; + + if (propDiff > 0 && biasTotal > 0) { + biasDiff = propBias / biasTotal * propDiff; + biasComplementDiff = propBiasComplement / biasTotal * propDiff; + } + + return { + biasDiff: biasDiff, + biasComplementDiff: biasComplementDiff + }; + } + + function computePaddingValues(width, height, paddingObject, relativeTo) { + // Assuming percentage is number from 0 to 1 + if (paddingObject.units === '%') { + switch (relativeTo) { + case 'width': + return width > 0 ? paddingObject.pfValue * width : 0; + + case 'height': + return height > 0 ? paddingObject.pfValue * height : 0; + + case 'average': + return width > 0 && height > 0 ? paddingObject.pfValue * (width + height) / 2 : 0; + + case 'min': + return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * height : paddingObject.pfValue * width : 0; + + case 'max': + return width > 0 && height > 0 ? width > height ? paddingObject.pfValue * width : paddingObject.pfValue * height : 0; + + default: + return 0; + } + } else if (paddingObject.units === 'px') { + return paddingObject.pfValue; + } else { + return 0; + } + } + + var leftVal = min.width.left.value; + + if (min.width.left.units === 'px' && min.width.val > 0) { + leftVal = leftVal * 100 / min.width.val; + } + + var rightVal = min.width.right.value; + + if (min.width.right.units === 'px' && min.width.val > 0) { + rightVal = rightVal * 100 / min.width.val; + } + + var topVal = min.height.top.value; + + if (min.height.top.units === 'px' && min.height.val > 0) { + topVal = topVal * 100 / min.height.val; + } + + var bottomVal = min.height.bottom.value; + + if (min.height.bottom.units === 'px' && min.height.val > 0) { + bottomVal = bottomVal * 100 / min.height.val; + } + + var widthBiasDiffs = computeBiasValues(min.width.val - bb.w, leftVal, rightVal); + var diffLeft = widthBiasDiffs.biasDiff; + var diffRight = widthBiasDiffs.biasComplementDiff; + var heightBiasDiffs = computeBiasValues(min.height.val - bb.h, topVal, bottomVal); + var diffTop = heightBiasDiffs.biasDiff; + var diffBottom = heightBiasDiffs.biasComplementDiff; + _p.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle('padding'), parent.pstyle('padding-relative-to').value); + _p.autoWidth = Math.max(bb.w, min.width.val); + pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2; + _p.autoHeight = Math.max(bb.h, min.height.val); + pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2; + } + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var _p = ele._private; + + if (!_p.compoundBoundsClean || force) { + update(ele); + + if (!cy.batching()) { + _p.compoundBoundsClean = true; + } + } + } + + return this; + }; + + var noninf = function noninf(x) { + if (x === Infinity || x === -Infinity) { + return 0; + } + + return x; + }; + + var updateBounds = function updateBounds(b, x1, y1, x2, y2) { + // don't update with zero area boxes + if (x2 - x1 === 0 || y2 - y1 === 0) { + return; + } // don't update with null dim + + + if (x1 == null || y1 == null || x2 == null || y2 == null) { + return; + } + + b.x1 = x1 < b.x1 ? x1 : b.x1; + b.x2 = x2 > b.x2 ? x2 : b.x2; + b.y1 = y1 < b.y1 ? y1 : b.y1; + b.y2 = y2 > b.y2 ? y2 : b.y2; + b.w = b.x2 - b.x1; + b.h = b.y2 - b.y1; + }; + + var updateBoundsFromBox = function updateBoundsFromBox(b, b2) { + if (b2 == null) { + return b; + } + + return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2); + }; + + var prefixedProperty = function prefixedProperty(obj, field, prefix) { + return getPrefixedProperty(obj, field, prefix); + }; + + var updateBoundsFromArrow = function updateBoundsFromArrow(bounds, ele, prefix) { + if (ele.cy().headless()) { + return; + } + + var _p = ele._private; + var rstyle = _p.rstyle; + var halfArW = rstyle.arrowWidth / 2; + var arrowType = ele.pstyle(prefix + '-arrow-shape').value; + var x; + var y; + + if (arrowType !== 'none') { + if (prefix === 'source') { + x = rstyle.srcX; + y = rstyle.srcY; + } else if (prefix === 'target') { + x = rstyle.tgtX; + y = rstyle.tgtY; + } else { + x = rstyle.midX; + y = rstyle.midY; + } // always store the individual arrow bounds + + + var bbs = _p.arrowBounds = _p.arrowBounds || {}; + var bb = bbs[prefix] = bbs[prefix] || {}; + bb.x1 = x - halfArW; + bb.y1 = y - halfArW; + bb.x2 = x + halfArW; + bb.y2 = y + halfArW; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + expandBoundingBox(bb, 1); + updateBounds(bounds, bb.x1, bb.y1, bb.x2, bb.y2); + } + }; + + var updateBoundsFromLabel = function updateBoundsFromLabel(bounds, ele, prefix) { + if (ele.cy().headless()) { + return; + } + + var prefixDash; + + if (prefix) { + prefixDash = prefix + '-'; + } else { + prefixDash = ''; + } + + var _p = ele._private; + var rstyle = _p.rstyle; + var label = ele.pstyle(prefixDash + 'label').strValue; + + if (label) { + var halign = ele.pstyle('text-halign'); + var valign = ele.pstyle('text-valign'); + var labelWidth = prefixedProperty(rstyle, 'labelWidth', prefix); + var labelHeight = prefixedProperty(rstyle, 'labelHeight', prefix); + var labelX = prefixedProperty(rstyle, 'labelX', prefix); + var labelY = prefixedProperty(rstyle, 'labelY', prefix); + var marginX = ele.pstyle(prefixDash + 'text-margin-x').pfValue; + var marginY = ele.pstyle(prefixDash + 'text-margin-y').pfValue; + var isEdge = ele.isEdge(); + var rotation = ele.pstyle(prefixDash + 'text-rotation'); + var outlineWidth = ele.pstyle('text-outline-width').pfValue; + var borderWidth = ele.pstyle('text-border-width').pfValue; + var halfBorderWidth = borderWidth / 2; + var padding = ele.pstyle('text-background-padding').pfValue; + var marginOfError = 2; // expand to work around browser dimension inaccuracies + + var lh = labelHeight; + var lw = labelWidth; + var lw_2 = lw / 2; + var lh_2 = lh / 2; + var lx1, lx2, ly1, ly2; + + if (isEdge) { + lx1 = labelX - lw_2; + lx2 = labelX + lw_2; + ly1 = labelY - lh_2; + ly2 = labelY + lh_2; + } else { + switch (halign.value) { + case 'left': + lx1 = labelX - lw; + lx2 = labelX; + break; + + case 'center': + lx1 = labelX - lw_2; + lx2 = labelX + lw_2; + break; + + case 'right': + lx1 = labelX; + lx2 = labelX + lw; + break; + } + + switch (valign.value) { + case 'top': + ly1 = labelY - lh; + ly2 = labelY; + break; + + case 'center': + ly1 = labelY - lh_2; + ly2 = labelY + lh_2; + break; + + case 'bottom': + ly1 = labelY; + ly2 = labelY + lh; + break; + } + } // shift by margin and expand by outline and border + + + lx1 += marginX - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError; + lx2 += marginX + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError; + ly1 += marginY - Math.max(outlineWidth, halfBorderWidth) - padding - marginOfError; + ly2 += marginY + Math.max(outlineWidth, halfBorderWidth) + padding + marginOfError; // always store the unrotated label bounds separately + + var bbPrefix = prefix || 'main'; + var bbs = _p.labelBounds; + var bb = bbs[bbPrefix] = bbs[bbPrefix] || {}; + bb.x1 = lx1; + bb.y1 = ly1; + bb.x2 = lx2; + bb.y2 = ly2; + bb.w = lx2 - lx1; + bb.h = ly2 - ly1; + var isAutorotate = isEdge && rotation.strValue === 'autorotate'; + var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0; + + if (isAutorotate || isPfValue) { + var theta = isAutorotate ? prefixedProperty(_p.rstyle, 'labelAngle', prefix) : rotation.pfValue; + var cos = Math.cos(theta); + var sin = Math.sin(theta); // rotation point (default value for center-center) + + var xo = (lx1 + lx2) / 2; + var yo = (ly1 + ly2) / 2; + + if (!isEdge) { + switch (halign.value) { + case 'left': + xo = lx2; + break; + + case 'right': + xo = lx1; + break; + } + + switch (valign.value) { + case 'top': + yo = ly2; + break; + + case 'bottom': + yo = ly1; + break; + } + } + + var rotate = function rotate(x, y) { + x = x - xo; + y = y - yo; + return { + x: x * cos - y * sin + xo, + y: x * sin + y * cos + yo + }; + }; + + var px1y1 = rotate(lx1, ly1); + var px1y2 = rotate(lx1, ly2); + var px2y1 = rotate(lx2, ly1); + var px2y2 = rotate(lx2, ly2); + lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x); + lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x); + ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y); + ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y); + } + + var bbPrefixRot = bbPrefix + 'Rot'; + var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {}; + bbRot.x1 = lx1; + bbRot.y1 = ly1; + bbRot.x2 = lx2; + bbRot.y2 = ly2; + bbRot.w = lx2 - lx1; + bbRot.h = ly2 - ly1; + updateBounds(bounds, lx1, ly1, lx2, ly2); + updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2); + } + + return bounds; + }; // get the bounding box of the elements (in raw model position) + + + var boundingBoxImpl = function boundingBoxImpl(ele, options) { + var cy = ele._private.cy; + var styleEnabled = cy.styleEnabled(); + var headless = cy.headless(); + var bounds = makeBoundingBox(); + var _p = ele._private; + var isNode = ele.isNode(); + var isEdge = ele.isEdge(); + var ex1, ex2, ey1, ey2; // extrema of body / lines + + var x, y; // node pos + + var rstyle = _p.rstyle; + var manualExpansion = isNode && styleEnabled ? ele.pstyle('bounds-expansion').pfValue : [0]; // must use `display` prop only, as reading `compound.width()` causes recursion + // (other factors like width values will be considered later in this function anyway) + + var isDisplayed = function isDisplayed(ele) { + return ele.pstyle('display').value !== 'none'; + }; + + var displayed = !styleEnabled || isDisplayed(ele) // must take into account connected nodes b/c of implicit edge hiding on display:none node + && (!isEdge || isDisplayed(ele.source()) && isDisplayed(ele.target())); + + if (displayed) { + // displayed suffices, since we will find zero area eles anyway + var overlayOpacity = 0; + var overlayPadding = 0; + + if (styleEnabled && options.includeOverlays) { + overlayOpacity = ele.pstyle('overlay-opacity').value; + + if (overlayOpacity !== 0) { + overlayPadding = ele.pstyle('overlay-padding').value; + } + } + + var underlayOpacity = 0; + var underlayPadding = 0; + + if (styleEnabled && options.includeUnderlays) { + underlayOpacity = ele.pstyle('underlay-opacity').value; + + if (underlayOpacity !== 0) { + underlayPadding = ele.pstyle('underlay-padding').value; + } + } + + var padding = Math.max(overlayPadding, underlayPadding); + var w = 0; + var wHalf = 0; + + if (styleEnabled) { + w = ele.pstyle('width').pfValue; + wHalf = w / 2; + } + + if (isNode && options.includeNodes) { + var pos = ele.position(); + x = pos.x; + y = pos.y; + + var _w = ele.outerWidth(); + + var halfW = _w / 2; + var h = ele.outerHeight(); + var halfH = h / 2; // handle node dimensions + ///////////////////////// + + ex1 = x - halfW; + ex2 = x + halfW; + ey1 = y - halfH; + ey2 = y + halfH; + updateBounds(bounds, ex1, ey1, ex2, ey2); + } else if (isEdge && options.includeEdges) { + if (styleEnabled && !headless) { + var curveStyle = ele.pstyle('curve-style').strValue; // handle edge dimensions (rough box estimate) + ////////////////////////////////////////////// + + ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX); + ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX); + ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY); + ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY); // take into account edge width + + ex1 -= wHalf; + ex2 += wHalf; + ey1 -= wHalf; + ey2 += wHalf; + updateBounds(bounds, ex1, ey1, ex2, ey2); // precise edges + //////////////// + + if (curveStyle === 'haystack') { + var hpts = rstyle.haystackPts; + + if (hpts && hpts.length === 2) { + ex1 = hpts[0].x; + ey1 = hpts[0].y; + ex2 = hpts[1].x; + ey2 = hpts[1].y; + + if (ex1 > ex2) { + var temp = ex1; + ex1 = ex2; + ex2 = temp; + } + + if (ey1 > ey2) { + var _temp = ey1; + ey1 = ey2; + ey2 = _temp; + } + + updateBounds(bounds, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf); + } + } else if (curveStyle === 'bezier' || curveStyle === 'unbundled-bezier' || curveStyle === 'segments' || curveStyle === 'taxi') { + var pts; + + switch (curveStyle) { + case 'bezier': + case 'unbundled-bezier': + pts = rstyle.bezierPts; + break; + + case 'segments': + case 'taxi': + pts = rstyle.linePts; + break; + } + + if (pts != null) { + for (var j = 0; j < pts.length; j++) { + var pt = pts[j]; + ex1 = pt.x - wHalf; + ex2 = pt.x + wHalf; + ey1 = pt.y - wHalf; + ey2 = pt.y + wHalf; + updateBounds(bounds, ex1, ey1, ex2, ey2); + } + } + } // bezier-like or segment-like edge + + } else { + // headless or style disabled + // fallback on source and target positions + ////////////////////////////////////////// + var n1 = ele.source(); + var n1pos = n1.position(); + var n2 = ele.target(); + var n2pos = n2.position(); + ex1 = n1pos.x; + ex2 = n2pos.x; + ey1 = n1pos.y; + ey2 = n2pos.y; + + if (ex1 > ex2) { + var _temp2 = ex1; + ex1 = ex2; + ex2 = _temp2; + } + + if (ey1 > ey2) { + var _temp3 = ey1; + ey1 = ey2; + ey2 = _temp3; + } // take into account edge width + + + ex1 -= wHalf; + ex2 += wHalf; + ey1 -= wHalf; + ey2 += wHalf; + updateBounds(bounds, ex1, ey1, ex2, ey2); + } // headless or style disabled + + } // edges + // handle edge arrow size + ///////////////////////// + + + if (styleEnabled && options.includeEdges && isEdge) { + updateBoundsFromArrow(bounds, ele, 'mid-source'); + updateBoundsFromArrow(bounds, ele, 'mid-target'); + updateBoundsFromArrow(bounds, ele, 'source'); + updateBoundsFromArrow(bounds, ele, 'target'); + } // ghost + //////// + + + if (styleEnabled) { + var ghost = ele.pstyle('ghost').value === 'yes'; + + if (ghost) { + var gx = ele.pstyle('ghost-offset-x').pfValue; + var gy = ele.pstyle('ghost-offset-y').pfValue; + updateBounds(bounds, bounds.x1 + gx, bounds.y1 + gy, bounds.x2 + gx, bounds.y2 + gy); + } + } // always store the body bounds separately from the labels + + + var bbBody = _p.bodyBounds = _p.bodyBounds || {}; + assignBoundingBox(bbBody, bounds); + expandBoundingBoxSides(bbBody, manualExpansion); + expandBoundingBox(bbBody, 1); // expand to work around browser dimension inaccuracies + // overlay + ////////// + + if (styleEnabled) { + ex1 = bounds.x1; + ex2 = bounds.x2; + ey1 = bounds.y1; + ey2 = bounds.y2; + updateBounds(bounds, ex1 - padding, ey1 - padding, ex2 + padding, ey2 + padding); + } // always store the body bounds separately from the labels + + + var bbOverlay = _p.overlayBounds = _p.overlayBounds || {}; + assignBoundingBox(bbOverlay, bounds); + expandBoundingBoxSides(bbOverlay, manualExpansion); + expandBoundingBox(bbOverlay, 1); // expand to work around browser dimension inaccuracies + // handle label dimensions + ////////////////////////// + + var bbLabels = _p.labelBounds = _p.labelBounds || {}; + + if (bbLabels.all != null) { + clearBoundingBox(bbLabels.all); + } else { + bbLabels.all = makeBoundingBox(); + } + + if (styleEnabled && options.includeLabels) { + if (options.includeMainLabels) { + updateBoundsFromLabel(bounds, ele, null); + } + + if (isEdge) { + if (options.includeSourceLabels) { + updateBoundsFromLabel(bounds, ele, 'source'); + } + + if (options.includeTargetLabels) { + updateBoundsFromLabel(bounds, ele, 'target'); + } + } + } // style enabled for labels + + } // if displayed + + + bounds.x1 = noninf(bounds.x1); + bounds.y1 = noninf(bounds.y1); + bounds.x2 = noninf(bounds.x2); + bounds.y2 = noninf(bounds.y2); + bounds.w = noninf(bounds.x2 - bounds.x1); + bounds.h = noninf(bounds.y2 - bounds.y1); + + if (bounds.w > 0 && bounds.h > 0 && displayed) { + expandBoundingBoxSides(bounds, manualExpansion); // expand bounds by 1 because antialiasing can increase the visual/effective size by 1 on all sides + + expandBoundingBox(bounds, 1); + } + + return bounds; + }; + + var getKey = function getKey(opts) { + var i = 0; + + var tf = function tf(val) { + return (val ? 1 : 0) << i++; + }; + + var key = 0; + key += tf(opts.incudeNodes); + key += tf(opts.includeEdges); + key += tf(opts.includeLabels); + key += tf(opts.includeMainLabels); + key += tf(opts.includeSourceLabels); + key += tf(opts.includeTargetLabels); + key += tf(opts.includeOverlays); + return key; + }; + + var getBoundingBoxPosKey = function getBoundingBoxPosKey(ele) { + if (ele.isEdge()) { + var p1 = ele.source().position(); + var p2 = ele.target().position(); + + var r = function r(x) { + return Math.round(x); + }; + + return hashIntsArray([r(p1.x), r(p1.y), r(p2.x), r(p2.y)]); + } else { + return 0; + } + }; + + var cachedBoundingBoxImpl = function cachedBoundingBoxImpl(ele, opts) { + var _p = ele._private; + var bb; + var isEdge = ele.isEdge(); + var key = opts == null ? defBbOptsKey : getKey(opts); + var usingDefOpts = key === defBbOptsKey; + var currPosKey = getBoundingBoxPosKey(ele); + var isPosKeySame = _p.bbCachePosKey === currPosKey; + var useCache = opts.useCache && isPosKeySame; + + var isDirty = function isDirty(ele) { + return ele._private.bbCache == null || ele._private.styleDirty; + }; + + var needRecalc = !useCache || isDirty(ele) || isEdge && isDirty(ele.source()) || isDirty(ele.target()); + + if (needRecalc) { + if (!isPosKeySame) { + ele.recalculateRenderedStyle(useCache); + } + + bb = boundingBoxImpl(ele, defBbOpts); + _p.bbCache = bb; + _p.bbCachePosKey = currPosKey; + } else { + bb = _p.bbCache; + } // not using def opts => need to build up bb from combination of sub bbs + + + if (!usingDefOpts) { + var isNode = ele.isNode(); + bb = makeBoundingBox(); + + if (opts.includeNodes && isNode || opts.includeEdges && !isNode) { + if (opts.includeOverlays) { + updateBoundsFromBox(bb, _p.overlayBounds); + } else { + updateBoundsFromBox(bb, _p.bodyBounds); + } + } + + if (opts.includeLabels) { + if (opts.includeMainLabels && (!isEdge || opts.includeSourceLabels && opts.includeTargetLabels)) { + updateBoundsFromBox(bb, _p.labelBounds.all); + } else { + if (opts.includeMainLabels) { + updateBoundsFromBox(bb, _p.labelBounds.mainRot); + } + + if (opts.includeSourceLabels) { + updateBoundsFromBox(bb, _p.labelBounds.sourceRot); + } + + if (opts.includeTargetLabels) { + updateBoundsFromBox(bb, _p.labelBounds.targetRot); + } + } + } + + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + } + + return bb; + }; + + var defBbOpts = { + includeNodes: true, + includeEdges: true, + includeLabels: true, + includeMainLabels: true, + includeSourceLabels: true, + includeTargetLabels: true, + includeOverlays: true, + includeUnderlays: true, + useCache: true + }; + var defBbOptsKey = getKey(defBbOpts); + var filledBbOpts = defaults$g(defBbOpts); + + elesfn$b.boundingBox = function (options) { + var bounds; // the main usecase is ele.boundingBox() for a single element with no/def options + // specified s.t. the cache is used, so check for this case to make it faster by + // avoiding the overhead of the rest of the function + + if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (options === undefined || options.useCache === undefined || options.useCache === true)) { + if (options === undefined) { + options = defBbOpts; + } else { + options = filledBbOpts(options); + } + + bounds = cachedBoundingBoxImpl(this[0], options); + } else { + bounds = makeBoundingBox(); + options = options || defBbOpts; + var opts = filledBbOpts(options); + var eles = this; + var cy = eles.cy(); + var styleEnabled = cy.styleEnabled(); + + if (styleEnabled) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var _p = ele._private; + var currPosKey = getBoundingBoxPosKey(ele); + var isPosKeySame = _p.bbCachePosKey === currPosKey; + var useCache = opts.useCache && isPosKeySame && !_p.styleDirty; + ele.recalculateRenderedStyle(useCache); + } + } + + this.updateCompoundBounds(!options.useCache); + + for (var _i = 0; _i < eles.length; _i++) { + var _ele = eles[_i]; + updateBoundsFromBox(bounds, cachedBoundingBoxImpl(_ele, opts)); + } + } + + bounds.x1 = noninf(bounds.x1); + bounds.y1 = noninf(bounds.y1); + bounds.x2 = noninf(bounds.x2); + bounds.y2 = noninf(bounds.y2); + bounds.w = noninf(bounds.x2 - bounds.x1); + bounds.h = noninf(bounds.y2 - bounds.y1); + return bounds; + }; + + elesfn$b.dirtyBoundingBoxCache = function () { + for (var i = 0; i < this.length; i++) { + var _p = this[i]._private; + _p.bbCache = null; + _p.bbCachePosKey = null; + _p.bodyBounds = null; + _p.overlayBounds = null; + _p.labelBounds.all = null; + _p.labelBounds.source = null; + _p.labelBounds.target = null; + _p.labelBounds.main = null; + _p.labelBounds.sourceRot = null; + _p.labelBounds.targetRot = null; + _p.labelBounds.mainRot = null; + _p.arrowBounds.source = null; + _p.arrowBounds.target = null; + _p.arrowBounds['mid-source'] = null; + _p.arrowBounds['mid-target'] = null; + } + + this.emitAndNotify('bounds'); + return this; + }; // private helper to get bounding box for custom node positions + // - good for perf in certain cases but currently requires dirtying the rendered style + // - would be better to not modify the nodes but the nodes are read directly everywhere in the renderer... + // - try to use for only things like discrete layouts where the node position would change anyway + + + elesfn$b.boundingBoxAt = function (fn) { + var nodes = this.nodes(); + var cy = this.cy(); + var hasCompoundNodes = cy.hasCompoundNodes(); + var parents = cy.collection(); + + if (hasCompoundNodes) { + parents = nodes.filter(function (node) { + return node.isParent(); + }); + nodes = nodes.not(parents); + } + + if (plainObject(fn)) { + var obj = fn; + + fn = function fn() { + return obj; + }; + } + + var storeOldPos = function storeOldPos(node, i) { + return node._private.bbAtOldPos = fn(node, i); + }; + + var getOldPos = function getOldPos(node) { + return node._private.bbAtOldPos; + }; + + cy.startBatch(); + nodes.forEach(storeOldPos).silentPositions(fn); + + if (hasCompoundNodes) { + parents.dirtyCompoundBoundsCache(); + parents.dirtyBoundingBoxCache(); + parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle + } + + var bb = copyBoundingBox(this.boundingBox({ + useCache: false + })); + nodes.silentPositions(getOldPos); + + if (hasCompoundNodes) { + parents.dirtyCompoundBoundsCache(); + parents.dirtyBoundingBoxCache(); + parents.updateCompoundBounds(true); // force update b/c we're inside a batch cycle + } + + cy.endBatch(); + return bb; + }; + + fn$3.boundingbox = fn$3.bb = fn$3.boundingBox; + fn$3.renderedBoundingbox = fn$3.renderedBoundingBox; + var bounds = elesfn$b; + + var fn$2, elesfn$a; + fn$2 = elesfn$a = {}; + + var defineDimFns = function defineDimFns(opts) { + opts.uppercaseName = capitalize(opts.name); + opts.autoName = 'auto' + opts.uppercaseName; + opts.labelName = 'label' + opts.uppercaseName; + opts.outerName = 'outer' + opts.uppercaseName; + opts.uppercaseOuterName = capitalize(opts.outerName); + + fn$2[opts.name] = function dimImpl() { + var ele = this[0]; + var _p = ele._private; + var cy = _p.cy; + var styleEnabled = cy._private.styleEnabled; + + if (ele) { + if (styleEnabled) { + if (ele.isParent()) { + ele.updateCompoundBounds(); + return _p[opts.autoName] || 0; + } + + var d = ele.pstyle(opts.name); + + switch (d.strValue) { + case 'label': + ele.recalculateRenderedStyle(); + return _p.rstyle[opts.labelName] || 0; + + default: + return d.pfValue; + } + } else { + return 1; + } + } + }; + + fn$2['outer' + opts.uppercaseName] = function outerDimImpl() { + var ele = this[0]; + var _p = ele._private; + var cy = _p.cy; + var styleEnabled = cy._private.styleEnabled; + + if (ele) { + if (styleEnabled) { + var dim = ele[opts.name](); + var border = ele.pstyle('border-width').pfValue; // n.b. 1/2 each side + + var padding = 2 * ele.padding(); + return dim + border + padding; + } else { + return 1; + } + } + }; + + fn$2['rendered' + opts.uppercaseName] = function renderedDimImpl() { + var ele = this[0]; + + if (ele) { + var d = ele[opts.name](); + return d * this.cy().zoom(); + } + }; + + fn$2['rendered' + opts.uppercaseOuterName] = function renderedOuterDimImpl() { + var ele = this[0]; + + if (ele) { + var od = ele[opts.outerName](); + return od * this.cy().zoom(); + } + }; + }; + + defineDimFns({ + name: 'width' + }); + defineDimFns({ + name: 'height' + }); + + elesfn$a.padding = function () { + var ele = this[0]; + var _p = ele._private; + + if (ele.isParent()) { + ele.updateCompoundBounds(); + + if (_p.autoPadding !== undefined) { + return _p.autoPadding; + } else { + return ele.pstyle('padding').pfValue; + } + } else { + return ele.pstyle('padding').pfValue; + } + }; + + elesfn$a.paddedHeight = function () { + var ele = this[0]; + return ele.height() + 2 * ele.padding(); + }; + + elesfn$a.paddedWidth = function () { + var ele = this[0]; + return ele.width() + 2 * ele.padding(); + }; + + var widthHeight = elesfn$a; + + var ifEdge = function ifEdge(ele, getValue) { + if (ele.isEdge()) { + return getValue(ele); + } + }; + + var ifEdgeRenderedPosition = function ifEdgeRenderedPosition(ele, getPoint) { + if (ele.isEdge()) { + var cy = ele.cy(); + return modelToRenderedPosition(getPoint(ele), cy.zoom(), cy.pan()); + } + }; + + var ifEdgeRenderedPositions = function ifEdgeRenderedPositions(ele, getPoints) { + if (ele.isEdge()) { + var cy = ele.cy(); + var pan = cy.pan(); + var zoom = cy.zoom(); + return getPoints(ele).map(function (p) { + return modelToRenderedPosition(p, zoom, pan); + }); + } + }; + + var controlPoints = function controlPoints(ele) { + return ele.renderer().getControlPoints(ele); + }; + + var segmentPoints = function segmentPoints(ele) { + return ele.renderer().getSegmentPoints(ele); + }; + + var sourceEndpoint = function sourceEndpoint(ele) { + return ele.renderer().getSourceEndpoint(ele); + }; + + var targetEndpoint = function targetEndpoint(ele) { + return ele.renderer().getTargetEndpoint(ele); + }; + + var midpoint = function midpoint(ele) { + return ele.renderer().getEdgeMidpoint(ele); + }; + + var pts = { + controlPoints: { + get: controlPoints, + mult: true + }, + segmentPoints: { + get: segmentPoints, + mult: true + }, + sourceEndpoint: { + get: sourceEndpoint + }, + targetEndpoint: { + get: targetEndpoint + }, + midpoint: { + get: midpoint + } + }; + + var renderedName = function renderedName(name) { + return 'rendered' + name[0].toUpperCase() + name.substr(1); + }; + + var edgePoints = Object.keys(pts).reduce(function (obj, name) { + var spec = pts[name]; + var rName = renderedName(name); + + obj[name] = function () { + return ifEdge(this, spec.get); + }; + + if (spec.mult) { + obj[rName] = function () { + return ifEdgeRenderedPositions(this, spec.get); + }; + } else { + obj[rName] = function () { + return ifEdgeRenderedPosition(this, spec.get); + }; + } + + return obj; + }, {}); + + var dimensions = extend({}, position, bounds, widthHeight, edgePoints); + + /*! + Event object based on jQuery events, MIT license + + https://jquery.org/license/ + https://tldrlegal.com/license/mit-license + https://github.com/jquery/jquery/blob/master/src/event.js + */ + var Event = function Event(src, props) { + this.recycle(src, props); + }; + + function returnFalse() { + return false; + } + + function returnTrue() { + return true; + } // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html + + + Event.prototype = { + instanceString: function instanceString() { + return 'event'; + }, + recycle: function recycle(src, props) { + this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse; + + if (src != null && src.preventDefault) { + // Browser Event object + this.type = src.type; // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + + this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse; + } else if (src != null && src.type) { + // Plain object containing all event details + props = src; + } else { + // Event string + this.type = src; + } // Put explicitly provided properties onto the event object + + + if (props != null) { + // more efficient to manually copy fields we use + this.originalEvent = props.originalEvent; + this.type = props.type != null ? props.type : this.type; + this.cy = props.cy; + this.target = props.target; + this.position = props.position; + this.renderedPosition = props.renderedPosition; + this.namespace = props.namespace; + this.layout = props.layout; + } + + if (this.cy != null && this.position != null && this.renderedPosition == null) { + // create a rendered position based on the passed position + var pos = this.position; + var zoom = this.cy.zoom(); + var pan = this.cy.pan(); + this.renderedPosition = { + x: pos.x * zoom + pan.x, + y: pos.y * zoom + pan.y + }; + } // Create a timestamp if incoming event doesn't have one + + + this.timeStamp = src && src.timeStamp || Date.now(); + }, + preventDefault: function preventDefault() { + this.isDefaultPrevented = returnTrue; + var e = this.originalEvent; + + if (!e) { + return; + } // if preventDefault exists run it on the original event + + + if (e.preventDefault) { + e.preventDefault(); + } + }, + stopPropagation: function stopPropagation() { + this.isPropagationStopped = returnTrue; + var e = this.originalEvent; + + if (!e) { + return; + } // if stopPropagation exists run it on the original event + + + if (e.stopPropagation) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function stopImmediatePropagation() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + }, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse + }; + + var eventRegex = /^([^.]+)(\.(?:[^.]+))?$/; // regex for matching event strings (e.g. "click.namespace") + + var universalNamespace = '.*'; // matches as if no namespace specified and prevents users from unbinding accidentally + + var defaults$8 = { + qualifierCompare: function qualifierCompare(q1, q2) { + return q1 === q2; + }, + eventMatches: function + /*context, listener, eventObj*/ + eventMatches() { + return true; + }, + addEventFields: function + /*context, evt*/ + addEventFields() {}, + callbackContext: function callbackContext(context + /*, listener, eventObj*/ + ) { + return context; + }, + beforeEmit: function + /* context, listener, eventObj */ + beforeEmit() {}, + afterEmit: function + /* context, listener, eventObj */ + afterEmit() {}, + bubble: function + /*context*/ + bubble() { + return false; + }, + parent: function + /*context*/ + parent() { + return null; + }, + context: null + }; + var defaultsKeys = Object.keys(defaults$8); + var emptyOpts = {}; + + function Emitter() { + var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : emptyOpts; + var context = arguments.length > 1 ? arguments[1] : undefined; + + // micro-optimisation vs Object.assign() -- reduces Element instantiation time + for (var i = 0; i < defaultsKeys.length; i++) { + var key = defaultsKeys[i]; + this[key] = opts[key] || defaults$8[key]; + } + + this.context = context || this.context; + this.listeners = []; + this.emitting = 0; + } + + var p = Emitter.prototype; + + var forEachEvent = function forEachEvent(self, handler, events, qualifier, callback, conf, confOverrides) { + if (fn$6(qualifier)) { + callback = qualifier; + qualifier = null; + } + + if (confOverrides) { + if (conf == null) { + conf = confOverrides; + } else { + conf = extend({}, conf, confOverrides); + } + } + + var eventList = array(events) ? events : events.split(/\s+/); + + for (var i = 0; i < eventList.length; i++) { + var evt = eventList[i]; + + if (emptyString(evt)) { + continue; + } + + var match = evt.match(eventRegex); // type[.namespace] + + if (match) { + var type = match[1]; + var namespace = match[2] ? match[2] : null; + var ret = handler(self, evt, type, namespace, qualifier, callback, conf); + + if (ret === false) { + break; + } // allow exiting early + + } + } + }; + + var makeEventObj = function makeEventObj(self, obj) { + self.addEventFields(self.context, obj); + return new Event(obj.type, obj); + }; + + var forEachEventObj = function forEachEventObj(self, handler, events) { + if (event(events)) { + handler(self, events); + return; + } else if (plainObject(events)) { + handler(self, makeEventObj(self, events)); + return; + } + + var eventList = array(events) ? events : events.split(/\s+/); + + for (var i = 0; i < eventList.length; i++) { + var evt = eventList[i]; + + if (emptyString(evt)) { + continue; + } + + var match = evt.match(eventRegex); // type[.namespace] + + if (match) { + var type = match[1]; + var namespace = match[2] ? match[2] : null; + var eventObj = makeEventObj(self, { + type: type, + namespace: namespace, + target: self.context + }); + handler(self, eventObj); + } + } + }; + + p.on = p.addListener = function (events, qualifier, callback, conf, confOverrides) { + forEachEvent(this, function (self, event, type, namespace, qualifier, callback, conf) { + if (fn$6(callback)) { + self.listeners.push({ + event: event, + // full event string + callback: callback, + // callback to run + type: type, + // the event type (e.g. 'click') + namespace: namespace, + // the event namespace (e.g. ".foo") + qualifier: qualifier, + // a restriction on whether to match this emitter + conf: conf // additional configuration + + }); + } + }, events, qualifier, callback, conf, confOverrides); + return this; + }; + + p.one = function (events, qualifier, callback, conf) { + return this.on(events, qualifier, callback, conf, { + one: true + }); + }; + + p.removeListener = p.off = function (events, qualifier, callback, conf) { + var _this = this; + + if (this.emitting !== 0) { + this.listeners = copyArray$1(this.listeners); + } + + var listeners = this.listeners; + + var _loop = function _loop(i) { + var listener = listeners[i]; + forEachEvent(_this, function (self, event, type, namespace, qualifier, callback + /*, conf*/ + ) { + if ((listener.type === type || events === '*') && (!namespace && listener.namespace !== '.*' || listener.namespace === namespace) && (!qualifier || self.qualifierCompare(listener.qualifier, qualifier)) && (!callback || listener.callback === callback)) { + listeners.splice(i, 1); + return false; + } + }, events, qualifier, callback, conf); + }; + + for (var i = listeners.length - 1; i >= 0; i--) { + _loop(i); + } + + return this; + }; + + p.removeAllListeners = function () { + return this.removeListener('*'); + }; + + p.emit = p.trigger = function (events, extraParams, manualCallback) { + var listeners = this.listeners; + var numListenersBeforeEmit = listeners.length; + this.emitting++; + + if (!array(extraParams)) { + extraParams = [extraParams]; + } + + forEachEventObj(this, function (self, eventObj) { + if (manualCallback != null) { + listeners = [{ + event: eventObj.event, + type: eventObj.type, + namespace: eventObj.namespace, + callback: manualCallback + }]; + numListenersBeforeEmit = listeners.length; + } + + var _loop2 = function _loop2(i) { + var listener = listeners[i]; + + if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self.eventMatches(self.context, listener, eventObj)) { + var args = [eventObj]; + + if (extraParams != null) { + push(args, extraParams); + } + + self.beforeEmit(self.context, listener, eventObj); + + if (listener.conf && listener.conf.one) { + self.listeners = self.listeners.filter(function (l) { + return l !== listener; + }); + } + + var context = self.callbackContext(self.context, listener, eventObj); + var ret = listener.callback.apply(context, args); + self.afterEmit(self.context, listener, eventObj); + + if (ret === false) { + eventObj.stopPropagation(); + eventObj.preventDefault(); + } + } // if listener matches + + }; + + for (var i = 0; i < numListenersBeforeEmit; i++) { + _loop2(i); + } // for listener + + + if (self.bubble(self.context) && !eventObj.isPropagationStopped()) { + self.parent(self.context).emit(eventObj, extraParams); + } + }, events); + this.emitting--; + return this; + }; + + var emitterOptions$1 = { + qualifierCompare: function qualifierCompare(selector1, selector2) { + if (selector1 == null || selector2 == null) { + return selector1 == null && selector2 == null; + } else { + return selector1.sameText(selector2); + } + }, + eventMatches: function eventMatches(ele, listener, eventObj) { + var selector = listener.qualifier; + + if (selector != null) { + return ele !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target); + } + + return true; + }, + addEventFields: function addEventFields(ele, evt) { + evt.cy = ele.cy(); + evt.target = ele; + }, + callbackContext: function callbackContext(ele, listener, eventObj) { + return listener.qualifier != null ? eventObj.target : ele; + }, + beforeEmit: function beforeEmit(context, listener + /*, eventObj*/ + ) { + if (listener.conf && listener.conf.once) { + listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback); + } + }, + bubble: function bubble() { + return true; + }, + parent: function parent(ele) { + return ele.isChild() ? ele.parent() : ele.cy(); + } + }; + + var argSelector$1 = function argSelector(arg) { + if (string(arg)) { + return new Selector(arg); + } else { + return arg; + } + }; + + var elesfn$9 = { + createEmitter: function createEmitter() { + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var _p = ele._private; + + if (!_p.emitter) { + _p.emitter = new Emitter(emitterOptions$1, ele); + } + } + + return this; + }, + emitter: function emitter() { + return this._private.emitter; + }, + on: function on(events, selector, callback) { + var argSel = argSelector$1(selector); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().on(events, argSel, callback); + } + + return this; + }, + removeListener: function removeListener(events, selector, callback) { + var argSel = argSelector$1(selector); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().removeListener(events, argSel, callback); + } + + return this; + }, + removeAllListeners: function removeAllListeners() { + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().removeAllListeners(); + } + + return this; + }, + one: function one(events, selector, callback) { + var argSel = argSelector$1(selector); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().one(events, argSel, callback); + } + + return this; + }, + once: function once(events, selector, callback) { + var argSel = argSelector$1(selector); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().on(events, argSel, callback, { + once: true, + onceCollection: this + }); + } + }, + emit: function emit(events, extraParams) { + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + ele.emitter().emit(events, extraParams); + } + + return this; + }, + emitAndNotify: function emitAndNotify(event, extraParams) { + // for internal use only + if (this.length === 0) { + return; + } // empty collections don't need to notify anything + // notify renderer + + + this.cy().notify(event, this); + this.emit(event, extraParams); + return this; + } + }; + define.eventAliasesOn(elesfn$9); + + var elesfn$8 = { + nodes: function nodes(selector) { + return this.filter(function (ele) { + return ele.isNode(); + }).filter(selector); + }, + edges: function edges(selector) { + return this.filter(function (ele) { + return ele.isEdge(); + }).filter(selector); + }, + // internal helper to get nodes and edges as separate collections with single iteration over elements + byGroup: function byGroup() { + var nodes = this.spawn(); + var edges = this.spawn(); + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + + if (ele.isNode()) { + nodes.push(ele); + } else { + edges.push(ele); + } + } + + return { + nodes: nodes, + edges: edges + }; + }, + filter: function filter(_filter, thisArg) { + if (_filter === undefined) { + // check this first b/c it's the most common/performant case + return this; + } else if (string(_filter) || elementOrCollection(_filter)) { + return new Selector(_filter).filter(this); + } else if (fn$6(_filter)) { + var filterEles = this.spawn(); + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var include = thisArg ? _filter.apply(thisArg, [ele, i, eles]) : _filter(ele, i, eles); + + if (include) { + filterEles.push(ele); + } + } + + return filterEles; + } + + return this.spawn(); // if not handled by above, give 'em an empty collection + }, + not: function not(toRemove) { + if (!toRemove) { + return this; + } else { + if (string(toRemove)) { + toRemove = this.filter(toRemove); + } + + var elements = this.spawn(); + + for (var i = 0; i < this.length; i++) { + var element = this[i]; + var remove = toRemove.has(element); + + if (!remove) { + elements.push(element); + } + } + + return elements; + } + }, + absoluteComplement: function absoluteComplement() { + var cy = this.cy(); + return cy.mutableElements().not(this); + }, + intersect: function intersect(other) { + // if a selector is specified, then filter by it instead + if (string(other)) { + var selector = other; + return this.filter(selector); + } + + var elements = this.spawn(); + var col1 = this; + var col2 = other; + var col1Smaller = this.length < other.length; + var colS = col1Smaller ? col1 : col2; + var colL = col1Smaller ? col2 : col1; + + for (var i = 0; i < colS.length; i++) { + var ele = colS[i]; + + if (colL.has(ele)) { + elements.push(ele); + } + } + + return elements; + }, + xor: function xor(other) { + var cy = this._private.cy; + + if (string(other)) { + other = cy.$(other); + } + + var elements = this.spawn(); + var col1 = this; + var col2 = other; + + var add = function add(col, other) { + for (var i = 0; i < col.length; i++) { + var ele = col[i]; + var id = ele._private.data.id; + var inOther = other.hasElementWithId(id); + + if (!inOther) { + elements.push(ele); + } + } + }; + + add(col1, col2); + add(col2, col1); + return elements; + }, + diff: function diff(other) { + var cy = this._private.cy; + + if (string(other)) { + other = cy.$(other); + } + + var left = this.spawn(); + var right = this.spawn(); + var both = this.spawn(); + var col1 = this; + var col2 = other; + + var add = function add(col, other, retEles) { + for (var i = 0; i < col.length; i++) { + var ele = col[i]; + var id = ele._private.data.id; + var inOther = other.hasElementWithId(id); + + if (inOther) { + both.merge(ele); + } else { + retEles.push(ele); + } + } + }; + + add(col1, col2, left); + add(col2, col1, right); + return { + left: left, + right: right, + both: both + }; + }, + add: function add(toAdd) { + var cy = this._private.cy; + + if (!toAdd) { + return this; + } + + if (string(toAdd)) { + var selector = toAdd; + toAdd = cy.mutableElements().filter(selector); + } + + var elements = this.spawnSelf(); + + for (var i = 0; i < toAdd.length; i++) { + var ele = toAdd[i]; + var add = !this.has(ele); + + if (add) { + elements.push(ele); + } + } + + return elements; + }, + // in place merge on calling collection + merge: function merge(toAdd) { + var _p = this._private; + var cy = _p.cy; + + if (!toAdd) { + return this; + } + + if (toAdd && string(toAdd)) { + var selector = toAdd; + toAdd = cy.mutableElements().filter(selector); + } + + var map = _p.map; + + for (var i = 0; i < toAdd.length; i++) { + var toAddEle = toAdd[i]; + var id = toAddEle._private.data.id; + var add = !map.has(id); + + if (add) { + var index = this.length++; + this[index] = toAddEle; + map.set(id, { + ele: toAddEle, + index: index + }); + } + } + + return this; // chaining + }, + unmergeAt: function unmergeAt(i) { + var ele = this[i]; + var id = ele.id(); + var _p = this._private; + var map = _p.map; // remove ele + + this[i] = undefined; + map["delete"](id); + var unmergedLastEle = i === this.length - 1; // replace empty spot with last ele in collection + + if (this.length > 1 && !unmergedLastEle) { + var lastEleI = this.length - 1; + var lastEle = this[lastEleI]; + var lastEleId = lastEle._private.data.id; + this[lastEleI] = undefined; + this[i] = lastEle; + map.set(lastEleId, { + ele: lastEle, + index: i + }); + } // the collection is now 1 ele smaller + + + this.length--; + return this; + }, + // remove single ele in place in calling collection + unmergeOne: function unmergeOne(ele) { + ele = ele[0]; + var _p = this._private; + var id = ele._private.data.id; + var map = _p.map; + var entry = map.get(id); + + if (!entry) { + return this; // no need to remove + } + + var i = entry.index; + this.unmergeAt(i); + return this; + }, + // remove eles in place on calling collection + unmerge: function unmerge(toRemove) { + var cy = this._private.cy; + + if (!toRemove) { + return this; + } + + if (toRemove && string(toRemove)) { + var selector = toRemove; + toRemove = cy.mutableElements().filter(selector); + } + + for (var i = 0; i < toRemove.length; i++) { + this.unmergeOne(toRemove[i]); + } + + return this; // chaining + }, + unmergeBy: function unmergeBy(toRmFn) { + for (var i = this.length - 1; i >= 0; i--) { + var ele = this[i]; + + if (toRmFn(ele)) { + this.unmergeAt(i); + } + } + + return this; + }, + map: function map(mapFn, thisArg) { + var arr = []; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var ret = thisArg ? mapFn.apply(thisArg, [ele, i, eles]) : mapFn(ele, i, eles); + arr.push(ret); + } + + return arr; + }, + reduce: function reduce(fn, initialValue) { + var val = initialValue; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + val = fn(val, eles[i], i, eles); + } + + return val; + }, + max: function max(valFn, thisArg) { + var max = -Infinity; + var maxEle; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles); + + if (val > max) { + max = val; + maxEle = ele; + } + } + + return { + value: max, + ele: maxEle + }; + }, + min: function min(valFn, thisArg) { + var min = Infinity; + var minEle; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var val = thisArg ? valFn.apply(thisArg, [ele, i, eles]) : valFn(ele, i, eles); + + if (val < min) { + min = val; + minEle = ele; + } + } + + return { + value: min, + ele: minEle + }; + } + }; // aliases + + var fn$1 = elesfn$8; + fn$1['u'] = fn$1['|'] = fn$1['+'] = fn$1.union = fn$1.or = fn$1.add; + fn$1['\\'] = fn$1['!'] = fn$1['-'] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not; + fn$1['n'] = fn$1['&'] = fn$1['.'] = fn$1.and = fn$1.intersection = fn$1.intersect; + fn$1['^'] = fn$1['(+)'] = fn$1['(-)'] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor; + fn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter; + fn$1.complement = fn$1.abscomp = fn$1.absoluteComplement; + + var elesfn$7 = { + isNode: function isNode() { + return this.group() === 'nodes'; + }, + isEdge: function isEdge() { + return this.group() === 'edges'; + }, + isLoop: function isLoop() { + return this.isEdge() && this.source()[0] === this.target()[0]; + }, + isSimple: function isSimple() { + return this.isEdge() && this.source()[0] !== this.target()[0]; + }, + group: function group() { + var ele = this[0]; + + if (ele) { + return ele._private.group; + } + } + }; + + /** + * Elements are drawn in a specific order based on compound depth (low to high), the element type (nodes above edges), + * and z-index (low to high). These styles affect how this applies: + * + * z-compound-depth: May be `bottom | orphan | auto | top`. The first drawn is `bottom`, then `orphan` which is the + * same depth as the root of the compound graph, followed by the default value `auto` which draws in order from + * root to leaves of the compound graph. The last drawn is `top`. + * z-index-compare: May be `auto | manual`. The default value is `auto` which always draws edges under nodes. + * `manual` ignores this convention and draws based on the `z-index` value setting. + * z-index: An integer value that affects the relative draw order of elements. In general, an element with a higher + * `z-index` will be drawn on top of an element with a lower `z-index`. + */ + + var zIndexSort = function zIndexSort(a, b) { + var cy = a.cy(); + var hasCompoundNodes = cy.hasCompoundNodes(); + + function getDepth(ele) { + var style = ele.pstyle('z-compound-depth'); + + if (style.value === 'auto') { + return hasCompoundNodes ? ele.zDepth() : 0; + } else if (style.value === 'bottom') { + return -1; + } else if (style.value === 'top') { + return MAX_INT$1; + } // 'orphan' + + + return 0; + } + + var depthDiff = getDepth(a) - getDepth(b); + + if (depthDiff !== 0) { + return depthDiff; + } + + function getEleDepth(ele) { + var style = ele.pstyle('z-index-compare'); + + if (style.value === 'auto') { + return ele.isNode() ? 1 : 0; + } // 'manual' + + + return 0; + } + + var eleDiff = getEleDepth(a) - getEleDepth(b); + + if (eleDiff !== 0) { + return eleDiff; + } + + var zDiff = a.pstyle('z-index').value - b.pstyle('z-index').value; + + if (zDiff !== 0) { + return zDiff; + } // compare indices in the core (order added to graph w/ last on top) + + + return a.poolIndex() - b.poolIndex(); + }; + + var elesfn$6 = { + forEach: function forEach(fn, thisArg) { + if (fn$6(fn)) { + var N = this.length; + + for (var i = 0; i < N; i++) { + var ele = this[i]; + var ret = thisArg ? fn.apply(thisArg, [ele, i, this]) : fn(ele, i, this); + + if (ret === false) { + break; + } // exit each early on return false + + } + } + + return this; + }, + toArray: function toArray() { + var array = []; + + for (var i = 0; i < this.length; i++) { + array.push(this[i]); + } + + return array; + }, + slice: function slice(start, end) { + var array = []; + var thisSize = this.length; + + if (end == null) { + end = thisSize; + } + + if (start == null) { + start = 0; + } + + if (start < 0) { + start = thisSize + start; + } + + if (end < 0) { + end = thisSize + end; + } + + for (var i = start; i >= 0 && i < end && i < thisSize; i++) { + array.push(this[i]); + } + + return this.spawn(array); + }, + size: function size() { + return this.length; + }, + eq: function eq(i) { + return this[i] || this.spawn(); + }, + first: function first() { + return this[0] || this.spawn(); + }, + last: function last() { + return this[this.length - 1] || this.spawn(); + }, + empty: function empty() { + return this.length === 0; + }, + nonempty: function nonempty() { + return !this.empty(); + }, + sort: function sort(sortFn) { + if (!fn$6(sortFn)) { + return this; + } + + var sorted = this.toArray().sort(sortFn); + return this.spawn(sorted); + }, + sortByZIndex: function sortByZIndex() { + return this.sort(zIndexSort); + }, + zDepth: function zDepth() { + var ele = this[0]; + + if (!ele) { + return undefined; + } // let cy = ele.cy(); + + + var _p = ele._private; + var group = _p.group; + + if (group === 'nodes') { + var depth = _p.data.parent ? ele.parents().size() : 0; + + if (!ele.isParent()) { + return MAX_INT$1 - 1; // childless nodes always on top + } + + return depth; + } else { + var src = _p.source; + var tgt = _p.target; + var srcDepth = src.zDepth(); + var tgtDepth = tgt.zDepth(); + return Math.max(srcDepth, tgtDepth, 0); // depth of deepest parent + } + } + }; + elesfn$6.each = elesfn$6.forEach; + + var defineSymbolIterator = function defineSymbolIterator() { + var typeofUndef = "undefined" ; + var isIteratorSupported = (typeof Symbol === "undefined" ? "undefined" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef; // eslint-disable-line no-undef + + if (isIteratorSupported) { + elesfn$6[Symbol.iterator] = function () { + var _this = this; + + // eslint-disable-line no-undef + var entry = { + value: undefined, + done: false + }; + var i = 0; + var length = this.length; + return _defineProperty$1({ + next: function next() { + if (i < length) { + entry.value = _this[i++]; + } else { + entry.value = undefined; + entry.done = true; + } + + return entry; + } + }, Symbol.iterator, function () { + // eslint-disable-line no-undef + return this; + }); + }; + } + }; + + defineSymbolIterator(); + + var getLayoutDimensionOptions = defaults$g({ + nodeDimensionsIncludeLabels: false + }); + var elesfn$5 = { + // Calculates and returns node dimensions { x, y } based on options given + layoutDimensions: function layoutDimensions(options) { + options = getLayoutDimensionOptions(options); + var dims; + + if (!this.takesUpSpace()) { + dims = { + w: 0, + h: 0 + }; + } else if (options.nodeDimensionsIncludeLabels) { + var bbDim = this.boundingBox(); + dims = { + w: bbDim.w, + h: bbDim.h + }; + } else { + dims = { + w: this.outerWidth(), + h: this.outerHeight() + }; + } // sanitise the dimensions for external layouts (avoid division by zero) + + + if (dims.w === 0 || dims.h === 0) { + dims.w = dims.h = 1; + } + + return dims; + }, + // using standard layout options, apply position function (w/ or w/o animation) + layoutPositions: function layoutPositions(layout, options, fn) { + var nodes = this.nodes().filter(function (n) { + return !n.isParent(); + }); + var cy = this.cy(); + var layoutEles = options.eles; // nodes & edges + + var getMemoizeKey = function getMemoizeKey(node) { + return node.id(); + }; + + var fnMem = memoize$1(fn, getMemoizeKey); // memoized version of position function + + layout.emit({ + type: 'layoutstart', + layout: layout + }); + layout.animations = []; + + var calculateSpacing = function calculateSpacing(spacing, nodesBb, pos) { + var center = { + x: nodesBb.x1 + nodesBb.w / 2, + y: nodesBb.y1 + nodesBb.h / 2 + }; + var spacingVector = { + // scale from center of bounding box (not necessarily 0,0) + x: (pos.x - center.x) * spacing, + y: (pos.y - center.y) * spacing + }; + return { + x: center.x + spacingVector.x, + y: center.y + spacingVector.y + }; + }; + + var useSpacingFactor = options.spacingFactor && options.spacingFactor !== 1; + + var spacingBb = function spacingBb() { + if (!useSpacingFactor) { + return null; + } + + var bb = makeBoundingBox(); + + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + var pos = fnMem(node, i); + expandBoundingBoxByPoint(bb, pos.x, pos.y); + } + + return bb; + }; + + var bb = spacingBb(); + var getFinalPos = memoize$1(function (node, i) { + var newPos = fnMem(node, i); + + if (useSpacingFactor) { + var spacing = Math.abs(options.spacingFactor); + newPos = calculateSpacing(spacing, bb, newPos); + } + + if (options.transform != null) { + newPos = options.transform(node, newPos); + } + + return newPos; + }, getMemoizeKey); + + if (options.animate) { + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + var newPos = getFinalPos(node, i); + var animateNode = options.animateFilter == null || options.animateFilter(node, i); + + if (animateNode) { + var ani = node.animation({ + position: newPos, + duration: options.animationDuration, + easing: options.animationEasing + }); + layout.animations.push(ani); + } else { + node.position(newPos); + } + } + + if (options.fit) { + var fitAni = cy.animation({ + fit: { + boundingBox: layoutEles.boundingBoxAt(getFinalPos), + padding: options.padding + }, + duration: options.animationDuration, + easing: options.animationEasing + }); + layout.animations.push(fitAni); + } else if (options.zoom !== undefined && options.pan !== undefined) { + var zoomPanAni = cy.animation({ + zoom: options.zoom, + pan: options.pan, + duration: options.animationDuration, + easing: options.animationEasing + }); + layout.animations.push(zoomPanAni); + } + + layout.animations.forEach(function (ani) { + return ani.play(); + }); + layout.one('layoutready', options.ready); + layout.emit({ + type: 'layoutready', + layout: layout + }); + Promise$1.all(layout.animations.map(function (ani) { + return ani.promise(); + })).then(function () { + layout.one('layoutstop', options.stop); + layout.emit({ + type: 'layoutstop', + layout: layout + }); + }); + } else { + nodes.positions(getFinalPos); + + if (options.fit) { + cy.fit(options.eles, options.padding); + } + + if (options.zoom != null) { + cy.zoom(options.zoom); + } + + if (options.pan) { + cy.pan(options.pan); + } + + layout.one('layoutready', options.ready); + layout.emit({ + type: 'layoutready', + layout: layout + }); + layout.one('layoutstop', options.stop); + layout.emit({ + type: 'layoutstop', + layout: layout + }); + } + + return this; // chaining + }, + layout: function layout(options) { + var cy = this.cy(); + return cy.makeLayout(extend({}, options, { + eles: this + })); + } + }; // aliases: + + elesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout; + + function styleCache(key, fn, ele) { + var _p = ele._private; + var cache = _p.styleCache = _p.styleCache || []; + var val; + + if ((val = cache[key]) != null) { + return val; + } else { + val = cache[key] = fn(ele); + return val; + } + } + + function cacheStyleFunction(key, fn) { + key = hashString(key); + return function cachedStyleFunction(ele) { + return styleCache(key, fn, ele); + }; + } + + function cachePrototypeStyleFunction(key, fn) { + key = hashString(key); + + var selfFn = function selfFn(ele) { + return fn.call(ele); + }; + + return function cachedPrototypeStyleFunction() { + var ele = this[0]; + + if (ele) { + return styleCache(key, selfFn, ele); + } + }; + } + + var elesfn$4 = { + recalculateRenderedStyle: function recalculateRenderedStyle(useCache) { + var cy = this.cy(); + var renderer = cy.renderer(); + var styleEnabled = cy.styleEnabled(); + + if (renderer && styleEnabled) { + renderer.recalculateRenderedStyle(this, useCache); + } + + return this; + }, + dirtyStyleCache: function dirtyStyleCache() { + var cy = this.cy(); + + var dirty = function dirty(ele) { + return ele._private.styleCache = null; + }; + + if (cy.hasCompoundNodes()) { + var eles; + eles = this.spawnSelf().merge(this.descendants()).merge(this.parents()); + eles.merge(eles.connectedEdges()); + eles.forEach(dirty); + } else { + this.forEach(function (ele) { + dirty(ele); + ele.connectedEdges().forEach(dirty); + }); + } + + return this; + }, + // fully updates (recalculates) the style for the elements + updateStyle: function updateStyle(notifyRenderer) { + var cy = this._private.cy; + + if (!cy.styleEnabled()) { + return this; + } + + if (cy.batching()) { + var bEles = cy._private.batchStyleEles; + bEles.merge(this); + return this; // chaining and exit early when batching + } + + var hasCompounds = cy.hasCompoundNodes(); + var updatedEles = this; + notifyRenderer = notifyRenderer || notifyRenderer === undefined ? true : false; + + if (hasCompounds) { + // then add everything up and down for compound selector checks + updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents()); + } // let changedEles = style.apply( updatedEles ); + + + var changedEles = updatedEles; + + if (notifyRenderer) { + changedEles.emitAndNotify('style'); // let renderer know we changed style + } else { + changedEles.emit('style'); // just fire the event + } + + updatedEles.forEach(function (ele) { + return ele._private.styleDirty = true; + }); + return this; // chaining + }, + // private: clears dirty flag and recalculates style + cleanStyle: function cleanStyle() { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return; + } + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + + if (ele._private.styleDirty) { + // n.b. this flag should be set before apply() to avoid potential infinite recursion + ele._private.styleDirty = false; + cy.style().apply(ele); + } + } + }, + // get the internal parsed style object for the specified property + parsedStyle: function parsedStyle(property) { + var includeNonDefault = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var ele = this[0]; + var cy = ele.cy(); + + if (!cy.styleEnabled()) { + return; + } + + if (ele) { + this.cleanStyle(); + var overriddenStyle = ele._private.style[property]; + + if (overriddenStyle != null) { + return overriddenStyle; + } else if (includeNonDefault) { + return cy.style().getDefaultProperty(property); + } else { + return null; + } + } + }, + numericStyle: function numericStyle(property) { + var ele = this[0]; + + if (!ele.cy().styleEnabled()) { + return; + } + + if (ele) { + var pstyle = ele.pstyle(property); + return pstyle.pfValue !== undefined ? pstyle.pfValue : pstyle.value; + } + }, + numericStyleUnits: function numericStyleUnits(property) { + var ele = this[0]; + + if (!ele.cy().styleEnabled()) { + return; + } + + if (ele) { + return ele.pstyle(property).units; + } + }, + // get the specified css property as a rendered value (i.e. on-screen value) + // or get the whole rendered style if no property specified (NB doesn't allow setting) + renderedStyle: function renderedStyle(property) { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return this; + } + + var ele = this[0]; + + if (ele) { + return cy.style().getRenderedStyle(ele, property); + } + }, + // read the calculated css style of the element or override the style (via a bypass) + style: function style(name, value) { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return this; + } + + var updateTransitions = false; + var style = cy.style(); + + if (plainObject(name)) { + // then extend the bypass + var props = name; + style.applyBypass(this, props, updateTransitions); + this.emitAndNotify('style'); // let the renderer know we've updated style + } else if (string(name)) { + if (value === undefined) { + // then get the property from the style + var ele = this[0]; + + if (ele) { + return style.getStylePropertyValue(ele, name); + } else { + // empty collection => can't get any value + return; + } + } else { + // then set the bypass with the property value + style.applyBypass(this, name, value, updateTransitions); + this.emitAndNotify('style'); // let the renderer know we've updated style + } + } else if (name === undefined) { + var _ele = this[0]; + + if (_ele) { + return style.getRawStyle(_ele); + } else { + // empty collection => can't get any value + return; + } + } + + return this; // chaining + }, + removeStyle: function removeStyle(names) { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return this; + } + + var updateTransitions = false; + var style = cy.style(); + var eles = this; + + if (names === undefined) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + style.removeAllBypasses(ele, updateTransitions); + } + } else { + names = names.split(/\s+/); + + for (var _i = 0; _i < eles.length; _i++) { + var _ele2 = eles[_i]; + style.removeBypasses(_ele2, names, updateTransitions); + } + } + + this.emitAndNotify('style'); // let the renderer know we've updated style + + return this; // chaining + }, + show: function show() { + this.css('display', 'element'); + return this; // chaining + }, + hide: function hide() { + this.css('display', 'none'); + return this; // chaining + }, + effectiveOpacity: function effectiveOpacity() { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return 1; + } + + var hasCompoundNodes = cy.hasCompoundNodes(); + var ele = this[0]; + + if (ele) { + var _p = ele._private; + var parentOpacity = ele.pstyle('opacity').value; + + if (!hasCompoundNodes) { + return parentOpacity; + } + + var parents = !_p.data.parent ? null : ele.parents(); + + if (parents) { + for (var i = 0; i < parents.length; i++) { + var parent = parents[i]; + var opacity = parent.pstyle('opacity').value; + parentOpacity = opacity * parentOpacity; + } + } + + return parentOpacity; + } + }, + transparent: function transparent() { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return false; + } + + var ele = this[0]; + var hasCompoundNodes = ele.cy().hasCompoundNodes(); + + if (ele) { + if (!hasCompoundNodes) { + return ele.pstyle('opacity').value === 0; + } else { + return ele.effectiveOpacity() === 0; + } + } + }, + backgrounding: function backgrounding() { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return false; + } + + var ele = this[0]; + return ele._private.backgrounding ? true : false; + } + }; + + function checkCompound(ele, parentOk) { + var _p = ele._private; + var parents = _p.data.parent ? ele.parents() : null; + + if (parents) { + for (var i = 0; i < parents.length; i++) { + var parent = parents[i]; + + if (!parentOk(parent)) { + return false; + } + } + } + + return true; + } + + function defineDerivedStateFunction(specs) { + var ok = specs.ok; + var edgeOkViaNode = specs.edgeOkViaNode || specs.ok; + var parentOk = specs.parentOk || specs.ok; + return function () { + var cy = this.cy(); + + if (!cy.styleEnabled()) { + return true; + } + + var ele = this[0]; + var hasCompoundNodes = cy.hasCompoundNodes(); + + if (ele) { + var _p = ele._private; + + if (!ok(ele)) { + return false; + } + + if (ele.isNode()) { + return !hasCompoundNodes || checkCompound(ele, parentOk); + } else { + var src = _p.source; + var tgt = _p.target; + return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode))); + } + } + }; + } + + var eleTakesUpSpace = cacheStyleFunction('eleTakesUpSpace', function (ele) { + return ele.pstyle('display').value === 'element' && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true); + }); + elesfn$4.takesUpSpace = cachePrototypeStyleFunction('takesUpSpace', defineDerivedStateFunction({ + ok: eleTakesUpSpace + })); + var eleInteractive = cacheStyleFunction('eleInteractive', function (ele) { + return ele.pstyle('events').value === 'yes' && ele.pstyle('visibility').value === 'visible' && eleTakesUpSpace(ele); + }); + var parentInteractive = cacheStyleFunction('parentInteractive', function (parent) { + return parent.pstyle('visibility').value === 'visible' && eleTakesUpSpace(parent); + }); + elesfn$4.interactive = cachePrototypeStyleFunction('interactive', defineDerivedStateFunction({ + ok: eleInteractive, + parentOk: parentInteractive, + edgeOkViaNode: eleTakesUpSpace + })); + + elesfn$4.noninteractive = function () { + var ele = this[0]; + + if (ele) { + return !ele.interactive(); + } + }; + + var eleVisible = cacheStyleFunction('eleVisible', function (ele) { + return ele.pstyle('visibility').value === 'visible' && ele.pstyle('opacity').pfValue !== 0 && eleTakesUpSpace(ele); + }); + var edgeVisibleViaNode = eleTakesUpSpace; + elesfn$4.visible = cachePrototypeStyleFunction('visible', defineDerivedStateFunction({ + ok: eleVisible, + edgeOkViaNode: edgeVisibleViaNode + })); + + elesfn$4.hidden = function () { + var ele = this[0]; + + if (ele) { + return !ele.visible(); + } + }; + + elesfn$4.isBundledBezier = cachePrototypeStyleFunction('isBundledBezier', function () { + if (!this.cy().styleEnabled()) { + return false; + } + + return !this.removed() && this.pstyle('curve-style').value === 'bezier' && this.takesUpSpace(); + }); + elesfn$4.bypass = elesfn$4.css = elesfn$4.style; + elesfn$4.renderedCss = elesfn$4.renderedStyle; + elesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle; + elesfn$4.pstyle = elesfn$4.parsedStyle; + + var elesfn$3 = {}; + + function defineSwitchFunction(params) { + return function () { + var args = arguments; + var changedEles = []; // e.g. cy.nodes().select( data, handler ) + + if (args.length === 2) { + var data = args[0]; + var handler = args[1]; + this.on(params.event, data, handler); + } // e.g. cy.nodes().select( handler ) + else if (args.length === 1 && fn$6(args[0])) { + var _handler = args[0]; + this.on(params.event, _handler); + } // e.g. cy.nodes().select() + // e.g. (private) cy.nodes().select(['tapselect']) + else if (args.length === 0 || args.length === 1 && array(args[0])) { + var addlEvents = args.length === 1 ? args[0] : null; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var able = !params.ableField || ele._private[params.ableField]; + var changed = ele._private[params.field] != params.value; + + if (params.overrideAble) { + var overrideAble = params.overrideAble(ele); + + if (overrideAble !== undefined) { + able = overrideAble; + + if (!overrideAble) { + return this; + } // to save cycles assume not able for all on override + + } + } + + if (able) { + ele._private[params.field] = params.value; + + if (changed) { + changedEles.push(ele); + } + } + } + + var changedColl = this.spawn(changedEles); + changedColl.updateStyle(); // change of state => possible change of style + + changedColl.emit(params.event); + + if (addlEvents) { + changedColl.emit(addlEvents); + } + } + + return this; + }; + } + + function defineSwitchSet(params) { + elesfn$3[params.field] = function () { + var ele = this[0]; + + if (ele) { + if (params.overrideField) { + var val = params.overrideField(ele); + + if (val !== undefined) { + return val; + } + } + + return ele._private[params.field]; + } + }; + + elesfn$3[params.on] = defineSwitchFunction({ + event: params.on, + field: params.field, + ableField: params.ableField, + overrideAble: params.overrideAble, + value: true + }); + elesfn$3[params.off] = defineSwitchFunction({ + event: params.off, + field: params.field, + ableField: params.ableField, + overrideAble: params.overrideAble, + value: false + }); + } + + defineSwitchSet({ + field: 'locked', + overrideField: function overrideField(ele) { + return ele.cy().autolock() ? true : undefined; + }, + on: 'lock', + off: 'unlock' + }); + defineSwitchSet({ + field: 'grabbable', + overrideField: function overrideField(ele) { + return ele.cy().autoungrabify() || ele.pannable() ? false : undefined; + }, + on: 'grabify', + off: 'ungrabify' + }); + defineSwitchSet({ + field: 'selected', + ableField: 'selectable', + overrideAble: function overrideAble(ele) { + return ele.cy().autounselectify() ? false : undefined; + }, + on: 'select', + off: 'unselect' + }); + defineSwitchSet({ + field: 'selectable', + overrideField: function overrideField(ele) { + return ele.cy().autounselectify() ? false : undefined; + }, + on: 'selectify', + off: 'unselectify' + }); + elesfn$3.deselect = elesfn$3.unselect; + + elesfn$3.grabbed = function () { + var ele = this[0]; + + if (ele) { + return ele._private.grabbed; + } + }; + + defineSwitchSet({ + field: 'active', + on: 'activate', + off: 'unactivate' + }); + defineSwitchSet({ + field: 'pannable', + on: 'panify', + off: 'unpanify' + }); + + elesfn$3.inactive = function () { + var ele = this[0]; + + if (ele) { + return !ele._private.active; + } + }; + + var elesfn$2 = {}; // DAG functions + //////////////// + + var defineDagExtremity = function defineDagExtremity(params) { + return function dagExtremityImpl(selector) { + var eles = this; + var ret = []; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + + if (!ele.isNode()) { + continue; + } + + var disqualified = false; + var edges = ele.connectedEdges(); + + for (var j = 0; j < edges.length; j++) { + var edge = edges[j]; + var src = edge.source(); + var tgt = edge.target(); + + if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) { + disqualified = true; + break; + } + } + + if (!disqualified) { + ret.push(ele); + } + } + + return this.spawn(ret, true).filter(selector); + }; + }; + + var defineDagOneHop = function defineDagOneHop(params) { + return function (selector) { + var eles = this; + var oEles = []; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + + if (!ele.isNode()) { + continue; + } + + var edges = ele.connectedEdges(); + + for (var j = 0; j < edges.length; j++) { + var edge = edges[j]; + var src = edge.source(); + var tgt = edge.target(); + + if (params.outgoing && src === ele) { + oEles.push(edge); + oEles.push(tgt); + } else if (params.incoming && tgt === ele) { + oEles.push(edge); + oEles.push(src); + } + } + } + + return this.spawn(oEles, true).filter(selector); + }; + }; + + var defineDagAllHops = function defineDagAllHops(params) { + return function (selector) { + var eles = this; + var sEles = []; + var sElesIds = {}; + + for (;;) { + var next = params.outgoing ? eles.outgoers() : eles.incomers(); + + if (next.length === 0) { + break; + } // done if none left + + + var newNext = false; + + for (var i = 0; i < next.length; i++) { + var n = next[i]; + var nid = n.id(); + + if (!sElesIds[nid]) { + sElesIds[nid] = true; + sEles.push(n); + newNext = true; + } + } + + if (!newNext) { + break; + } // done if touched all outgoers already + + + eles = next; + } + + return this.spawn(sEles, true).filter(selector); + }; + }; + + elesfn$2.clearTraversalCache = function () { + for (var i = 0; i < this.length; i++) { + this[i]._private.traversalCache = null; + } + }; + + extend(elesfn$2, { + // get the root nodes in the DAG + roots: defineDagExtremity({ + noIncomingEdges: true + }), + // get the leaf nodes in the DAG + leaves: defineDagExtremity({ + noOutgoingEdges: true + }), + // normally called children in graph theory + // these nodes =edges=> outgoing nodes + outgoers: cache(defineDagOneHop({ + outgoing: true + }), 'outgoers'), + // aka DAG descendants + successors: defineDagAllHops({ + outgoing: true + }), + // normally called parents in graph theory + // these nodes <=edges= incoming nodes + incomers: cache(defineDagOneHop({ + incoming: true + }), 'incomers'), + // aka DAG ancestors + predecessors: defineDagAllHops({ + incoming: true + }) + }); // Neighbourhood functions + ////////////////////////// + + extend(elesfn$2, { + neighborhood: cache(function (selector) { + var elements = []; + var nodes = this.nodes(); + + for (var i = 0; i < nodes.length; i++) { + // for all nodes + var node = nodes[i]; + var connectedEdges = node.connectedEdges(); // for each connected edge, add the edge and the other node + + for (var j = 0; j < connectedEdges.length; j++) { + var edge = connectedEdges[j]; + var src = edge.source(); + var tgt = edge.target(); + var otherNode = node === src ? tgt : src; // need check in case of loop + + if (otherNode.length > 0) { + elements.push(otherNode[0]); // add node 1 hop away + } // add connected edge + + + elements.push(edge[0]); + } + } + + return this.spawn(elements, true).filter(selector); + }, 'neighborhood'), + closedNeighborhood: function closedNeighborhood(selector) { + return this.neighborhood().add(this).filter(selector); + }, + openNeighborhood: function openNeighborhood(selector) { + return this.neighborhood(selector); + } + }); // aliases + + elesfn$2.neighbourhood = elesfn$2.neighborhood; + elesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood; + elesfn$2.openNeighbourhood = elesfn$2.openNeighborhood; // Edge functions + ///////////////// + + extend(elesfn$2, { + source: cache(function sourceImpl(selector) { + var ele = this[0]; + var src; + + if (ele) { + src = ele._private.source || ele.cy().collection(); + } + + return src && selector ? src.filter(selector) : src; + }, 'source'), + target: cache(function targetImpl(selector) { + var ele = this[0]; + var tgt; + + if (ele) { + tgt = ele._private.target || ele.cy().collection(); + } + + return tgt && selector ? tgt.filter(selector) : tgt; + }, 'target'), + sources: defineSourceFunction({ + attr: 'source' + }), + targets: defineSourceFunction({ + attr: 'target' + }) + }); + + function defineSourceFunction(params) { + return function sourceImpl(selector) { + var sources = []; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var src = ele._private[params.attr]; + + if (src) { + sources.push(src); + } + } + + return this.spawn(sources, true).filter(selector); + }; + } + + extend(elesfn$2, { + edgesWith: cache(defineEdgesWithFunction(), 'edgesWith'), + edgesTo: cache(defineEdgesWithFunction({ + thisIsSrc: true + }), 'edgesTo') + }); + + function defineEdgesWithFunction(params) { + return function edgesWithImpl(otherNodes) { + var elements = []; + var cy = this._private.cy; + var p = params || {}; // get elements if a selector is specified + + if (string(otherNodes)) { + otherNodes = cy.$(otherNodes); + } + + for (var h = 0; h < otherNodes.length; h++) { + var edges = otherNodes[h]._private.edges; + + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + var edgeData = edge._private.data; + var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target); + var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target); + var edgeConnectsThisAndOther = thisToOther || otherToThis; + + if (!edgeConnectsThisAndOther) { + continue; + } + + if (p.thisIsSrc || p.thisIsTgt) { + if (p.thisIsSrc && !thisToOther) { + continue; + } + + if (p.thisIsTgt && !otherToThis) { + continue; + } + } + + elements.push(edge); + } + } + + return this.spawn(elements, true); + }; + } + + extend(elesfn$2, { + connectedEdges: cache(function (selector) { + var retEles = []; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var node = eles[i]; + + if (!node.isNode()) { + continue; + } + + var edges = node._private.edges; + + for (var j = 0; j < edges.length; j++) { + var edge = edges[j]; + retEles.push(edge); + } + } + + return this.spawn(retEles, true).filter(selector); + }, 'connectedEdges'), + connectedNodes: cache(function (selector) { + var retEles = []; + var eles = this; + + for (var i = 0; i < eles.length; i++) { + var edge = eles[i]; + + if (!edge.isEdge()) { + continue; + } + + retEles.push(edge.source()[0]); + retEles.push(edge.target()[0]); + } + + return this.spawn(retEles, true).filter(selector); + }, 'connectedNodes'), + parallelEdges: cache(defineParallelEdgesFunction(), 'parallelEdges'), + codirectedEdges: cache(defineParallelEdgesFunction({ + codirected: true + }), 'codirectedEdges') + }); + + function defineParallelEdgesFunction(params) { + var defaults = { + codirected: false + }; + params = extend({}, defaults, params); + return function parallelEdgesImpl(selector) { + // micro-optimised for renderer + var elements = []; + var edges = this.edges(); + var p = params; // look at all the edges in the collection + + for (var i = 0; i < edges.length; i++) { + var edge1 = edges[i]; + var edge1_p = edge1._private; + var src1 = edge1_p.source; + var srcid1 = src1._private.data.id; + var tgtid1 = edge1_p.data.target; + var srcEdges1 = src1._private.edges; // look at edges connected to the src node of this edge + + for (var j = 0; j < srcEdges1.length; j++) { + var edge2 = srcEdges1[j]; + var edge2data = edge2._private.data; + var tgtid2 = edge2data.target; + var srcid2 = edge2data.source; + var codirected = tgtid2 === tgtid1 && srcid2 === srcid1; + var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2; + + if (p.codirected && codirected || !p.codirected && (codirected || oppdirected)) { + elements.push(edge2); + } + } + } + + return this.spawn(elements, true).filter(selector); + }; + } // Misc functions + ///////////////// + + + extend(elesfn$2, { + components: function components(root) { + var self = this; + var cy = self.cy(); + var visited = cy.collection(); + var unvisited = root == null ? self.nodes() : root.nodes(); + var components = []; + + if (root != null && unvisited.empty()) { + // root may contain only edges + unvisited = root.sources(); // doesn't matter which node to use (undirected), so just use the source sides + } + + var visitInComponent = function visitInComponent(node, component) { + visited.merge(node); + unvisited.unmerge(node); + component.merge(node); + }; + + if (unvisited.empty()) { + return self.spawn(); + } + + var _loop = function _loop() { + // each iteration yields a component + var cmpt = cy.collection(); + components.push(cmpt); + var root = unvisited[0]; + visitInComponent(root, cmpt); + self.bfs({ + directed: false, + roots: root, + visit: function visit(v) { + return visitInComponent(v, cmpt); + } + }); + cmpt.forEach(function (node) { + node.connectedEdges().forEach(function (e) { + // connectedEdges() usually cached + if (self.has(e) && cmpt.has(e.source()) && cmpt.has(e.target())) { + // has() is cheap + cmpt.merge(e); // forEach() only considers nodes -- sets N at call time + } + }); + }); + }; + + do { + _loop(); + } while (unvisited.length > 0); + + return components; + }, + component: function component() { + var ele = this[0]; + return ele.cy().mutableElements().components(ele)[0]; + } + }); + elesfn$2.componentsOf = elesfn$2.components; + + var Collection = function Collection(cy, elements) { + var unique = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var removed = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; + + if (cy === undefined) { + error('A collection must have a reference to the core'); + return; + } + + var map = new Map$2(); + var createdElements = false; + + if (!elements) { + elements = []; + } else if (elements.length > 0 && plainObject(elements[0]) && !element(elements[0])) { + createdElements = true; // make elements from json and restore all at once later + + var eles = []; + var elesIds = new Set$1(); + + for (var i = 0, l = elements.length; i < l; i++) { + var json = elements[i]; + + if (json.data == null) { + json.data = {}; + } + + var _data = json.data; // make sure newly created elements have valid ids + + if (_data.id == null) { + _data.id = uuid(); + } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) { + continue; // can't create element if prior id already exists + } + + var ele = new Element(cy, json, false); + eles.push(ele); + elesIds.add(_data.id); + } + + elements = eles; + } + + this.length = 0; + + for (var _i = 0, _l = elements.length; _i < _l; _i++) { + var element$1 = elements[_i][0]; // [0] in case elements is an array of collections, rather than array of elements + + if (element$1 == null) { + continue; + } + + var id = element$1._private.data.id; + + if (!unique || !map.has(id)) { + if (unique) { + map.set(id, { + index: this.length, + ele: element$1 + }); + } + + this[this.length] = element$1; + this.length++; + } + } + + this._private = { + eles: this, + cy: cy, + + get map() { + if (this.lazyMap == null) { + this.rebuildMap(); + } + + return this.lazyMap; + }, + + set map(m) { + this.lazyMap = m; + }, + + rebuildMap: function rebuildMap() { + var m = this.lazyMap = new Map$2(); + var eles = this.eles; + + for (var _i2 = 0; _i2 < eles.length; _i2++) { + var _ele = eles[_i2]; + m.set(_ele.id(), { + index: _i2, + ele: _ele + }); + } + } + }; + + if (unique) { + this._private.map = map; + } // restore the elements if we created them from json + + + if (createdElements && !removed) { + this.restore(); + } + }; // Functions + //////////////////////////////////////////////////////////////////////////////////////////////////// + // keep the prototypes in sync (an element has the same functions as a collection) + // and use elefn and elesfn as shorthands to the prototypes + + + var elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype); + + elesfn$1.instanceString = function () { + return 'collection'; + }; + + elesfn$1.spawn = function (eles, unique) { + return new Collection(this.cy(), eles, unique); + }; + + elesfn$1.spawnSelf = function () { + return this.spawn(this); + }; + + elesfn$1.cy = function () { + return this._private.cy; + }; + + elesfn$1.renderer = function () { + return this._private.cy.renderer(); + }; + + elesfn$1.element = function () { + return this[0]; + }; + + elesfn$1.collection = function () { + if (collection(this)) { + return this; + } else { + // an element + return new Collection(this._private.cy, [this]); + } + }; + + elesfn$1.unique = function () { + return new Collection(this._private.cy, this, true); + }; + + elesfn$1.hasElementWithId = function (id) { + id = '' + id; // id must be string + + return this._private.map.has(id); + }; + + elesfn$1.getElementById = function (id) { + id = '' + id; // id must be string + + var cy = this._private.cy; + + var entry = this._private.map.get(id); + + return entry ? entry.ele : new Collection(cy); // get ele or empty collection + }; + + elesfn$1.$id = elesfn$1.getElementById; + + elesfn$1.poolIndex = function () { + var cy = this._private.cy; + var eles = cy._private.elements; + var id = this[0]._private.data.id; + return eles._private.map.get(id).index; + }; + + elesfn$1.indexOf = function (ele) { + var id = ele[0]._private.data.id; + return this._private.map.get(id).index; + }; + + elesfn$1.indexOfId = function (id) { + id = '' + id; // id must be string + + return this._private.map.get(id).index; + }; + + elesfn$1.json = function (obj) { + var ele = this.element(); + var cy = this.cy(); + + if (ele == null && obj) { + return this; + } // can't set to no eles + + + if (ele == null) { + return undefined; + } // can't get from no eles + + + var p = ele._private; + + if (plainObject(obj)) { + // set + cy.startBatch(); + + if (obj.data) { + ele.data(obj.data); + var _data2 = p.data; + + if (ele.isEdge()) { + // source and target are immutable via data() + var move = false; + var spec = {}; + var src = obj.data.source; + var tgt = obj.data.target; + + if (src != null && src != _data2.source) { + spec.source = '' + src; // id must be string + + move = true; + } + + if (tgt != null && tgt != _data2.target) { + spec.target = '' + tgt; // id must be string + + move = true; + } + + if (move) { + ele = ele.move(spec); + } + } else { + // parent is immutable via data() + var newParentValSpecd = ('parent' in obj.data); + var parent = obj.data.parent; + + if (newParentValSpecd && (parent != null || _data2.parent != null) && parent != _data2.parent) { + if (parent === undefined) { + // can't set undefined imperatively, so use null + parent = null; + } + + if (parent != null) { + parent = '' + parent; // id must be string + } + + ele = ele.move({ + parent: parent + }); + } + } + } + + if (obj.position) { + ele.position(obj.position); + } // ignore group -- immutable + + + var checkSwitch = function checkSwitch(k, trueFnName, falseFnName) { + var obj_k = obj[k]; + + if (obj_k != null && obj_k !== p[k]) { + if (obj_k) { + ele[trueFnName](); + } else { + ele[falseFnName](); + } + } + }; + + checkSwitch('removed', 'remove', 'restore'); + checkSwitch('selected', 'select', 'unselect'); + checkSwitch('selectable', 'selectify', 'unselectify'); + checkSwitch('locked', 'lock', 'unlock'); + checkSwitch('grabbable', 'grabify', 'ungrabify'); + checkSwitch('pannable', 'panify', 'unpanify'); + + if (obj.classes != null) { + ele.classes(obj.classes); + } + + cy.endBatch(); + return this; + } else if (obj === undefined) { + // get + var json = { + data: copy(p.data), + position: copy(p.position), + group: p.group, + removed: p.removed, + selected: p.selected, + selectable: p.selectable, + locked: p.locked, + grabbable: p.grabbable, + pannable: p.pannable, + classes: null + }; + json.classes = ''; + var i = 0; + p.classes.forEach(function (cls) { + return json.classes += i++ === 0 ? cls : ' ' + cls; + }); + return json; + } + }; + + elesfn$1.jsons = function () { + var jsons = []; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var json = ele.json(); + jsons.push(json); + } + + return jsons; + }; + + elesfn$1.clone = function () { + var cy = this.cy(); + var elesArr = []; + + for (var i = 0; i < this.length; i++) { + var ele = this[i]; + var json = ele.json(); + var clone = new Element(cy, json, false); // NB no restore + + elesArr.push(clone); + } + + return new Collection(cy, elesArr); + }; + + elesfn$1.copy = elesfn$1.clone; + + elesfn$1.restore = function () { + var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var addToPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var self = this; + var cy = self.cy(); + var cy_p = cy._private; // create arrays of nodes and edges, since we need to + // restore the nodes first + + var nodes = []; + var edges = []; + var elements; + + for (var _i3 = 0, l = self.length; _i3 < l; _i3++) { + var ele = self[_i3]; + + if (addToPool && !ele.removed()) { + // don't need to handle this ele + continue; + } // keep nodes first in the array and edges after + + + if (ele.isNode()) { + // put to front of array if node + nodes.push(ele); + } else { + // put to end of array if edge + edges.push(ele); + } + } + + elements = nodes.concat(edges); + var i; + + var removeFromElements = function removeFromElements() { + elements.splice(i, 1); + i--; + }; // now, restore each element + + + for (i = 0; i < elements.length; i++) { + var _ele2 = elements[i]; + var _private = _ele2._private; + var _data3 = _private.data; // the traversal cache should start fresh when ele is added + + _ele2.clearTraversalCache(); // set id and validate + + + if (!addToPool && !_private.removed) ; else if (_data3.id === undefined) { + _data3.id = uuid(); + } else if (number$1(_data3.id)) { + _data3.id = '' + _data3.id; // now it's a string + } else if (emptyString(_data3.id) || !string(_data3.id)) { + error('Can not create element with invalid string ID `' + _data3.id + '`'); // can't create element if it has empty string as id or non-string id + + removeFromElements(); + continue; + } else if (cy.hasElementWithId(_data3.id)) { + error('Can not create second element with ID `' + _data3.id + '`'); // can't create element if one already has that id + + removeFromElements(); + continue; + } + + var id = _data3.id; // id is finalised, now let's keep a ref + + if (_ele2.isNode()) { + // extra checks for nodes + var pos = _private.position; // make sure the nodes have a defined position + + if (pos.x == null) { + pos.x = 0; + } + + if (pos.y == null) { + pos.y = 0; + } + } + + if (_ele2.isEdge()) { + // extra checks for edges + var edge = _ele2; + var fields = ['source', 'target']; + var fieldsLength = fields.length; + var badSourceOrTarget = false; + + for (var j = 0; j < fieldsLength; j++) { + var field = fields[j]; + var val = _data3[field]; + + if (number$1(val)) { + val = _data3[field] = '' + _data3[field]; // now string + } + + if (val == null || val === '') { + // can't create if source or target is not defined properly + error('Can not create edge `' + id + '` with unspecified ' + field); + badSourceOrTarget = true; + } else if (!cy.hasElementWithId(val)) { + // can't create edge if one of its nodes doesn't exist + error('Can not create edge `' + id + '` with nonexistant ' + field + ' `' + val + '`'); + badSourceOrTarget = true; + } + } + + if (badSourceOrTarget) { + removeFromElements(); + continue; + } // can't create this + + + var src = cy.getElementById(_data3.source); + var tgt = cy.getElementById(_data3.target); // only one edge in node if loop + + if (src.same(tgt)) { + src._private.edges.push(edge); + } else { + src._private.edges.push(edge); + + tgt._private.edges.push(edge); + } + + edge._private.source = src; + edge._private.target = tgt; + } // if is edge + // create mock ids / indexes maps for element so it can be used like collections + + + _private.map = new Map$2(); + + _private.map.set(id, { + ele: _ele2, + index: 0 + }); + + _private.removed = false; + + if (addToPool) { + cy.addToPool(_ele2); + } + } // for each element + // do compound node sanity checks + + + for (var _i4 = 0; _i4 < nodes.length; _i4++) { + // each node + var node = nodes[_i4]; + var _data4 = node._private.data; + + if (number$1(_data4.parent)) { + // then automake string + _data4.parent = '' + _data4.parent; + } + + var parentId = _data4.parent; + var specifiedParent = parentId != null; + + if (specifiedParent || node._private.parent) { + var parent = node._private.parent ? cy.collection().merge(node._private.parent) : cy.getElementById(parentId); + + if (parent.empty()) { + // non-existant parent; just remove it + _data4.parent = undefined; + } else if (parent[0].removed()) { + warn('Node added with missing parent, reference to parent removed'); + _data4.parent = undefined; + node._private.parent = null; + } else { + var selfAsParent = false; + var ancestor = parent; + + while (!ancestor.empty()) { + if (node.same(ancestor)) { + // mark self as parent and remove from data + selfAsParent = true; + _data4.parent = undefined; // remove parent reference + // exit or we loop forever + + break; + } + + ancestor = ancestor.parent(); + } + + if (!selfAsParent) { + // connect with children + parent[0]._private.children.push(node); + + node._private.parent = parent[0]; // let the core know we have a compound graph + + cy_p.hasCompoundNodes = true; + } + } // else + + } // if specified parent + + } // for each node + + + if (elements.length > 0) { + var restored = elements.length === self.length ? self : new Collection(cy, elements); + + for (var _i5 = 0; _i5 < restored.length; _i5++) { + var _ele3 = restored[_i5]; + + if (_ele3.isNode()) { + continue; + } // adding an edge invalidates the traversal caches for the parallel edges + + + _ele3.parallelEdges().clearTraversalCache(); // adding an edge invalidates the traversal cache for the connected nodes + + + _ele3.source().clearTraversalCache(); + + _ele3.target().clearTraversalCache(); + } + + var toUpdateStyle; + + if (cy_p.hasCompoundNodes) { + toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent()); + } else { + toUpdateStyle = restored; + } + + toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer); + + if (notifyRenderer) { + restored.emitAndNotify('add'); + } else if (addToPool) { + restored.emit('add'); + } + } + + return self; // chainability + }; + + elesfn$1.removed = function () { + var ele = this[0]; + return ele && ele._private.removed; + }; + + elesfn$1.inside = function () { + var ele = this[0]; + return ele && !ele._private.removed; + }; + + elesfn$1.remove = function () { + var notifyRenderer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var removeFromPool = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var self = this; + var elesToRemove = []; + var elesToRemoveIds = {}; + var cy = self._private.cy; // add connected edges + + function addConnectedEdges(node) { + var edges = node._private.edges; + + for (var i = 0; i < edges.length; i++) { + add(edges[i]); + } + } // add descendant nodes + + + function addChildren(node) { + var children = node._private.children; + + for (var i = 0; i < children.length; i++) { + add(children[i]); + } + } + + function add(ele) { + var alreadyAdded = elesToRemoveIds[ele.id()]; + + if (removeFromPool && ele.removed() || alreadyAdded) { + return; + } else { + elesToRemoveIds[ele.id()] = true; + } + + if (ele.isNode()) { + elesToRemove.push(ele); // nodes are removed last + + addConnectedEdges(ele); + addChildren(ele); + } else { + elesToRemove.unshift(ele); // edges are removed first + } + } // make the list of elements to remove + // (may be removing more than specified due to connected edges etc) + + + for (var i = 0, l = self.length; i < l; i++) { + var ele = self[i]; + add(ele); + } + + function removeEdgeRef(node, edge) { + var connectedEdges = node._private.edges; + removeFromArray(connectedEdges, edge); // removing an edges invalidates the traversal cache for its nodes + + node.clearTraversalCache(); + } + + function removeParallelRef(pllEdge) { + // removing an edge invalidates the traversal caches for the parallel edges + pllEdge.clearTraversalCache(); + } + + var alteredParents = []; + alteredParents.ids = {}; + + function removeChildRef(parent, ele) { + ele = ele[0]; + parent = parent[0]; + var children = parent._private.children; + var pid = parent.id(); + removeFromArray(children, ele); // remove parent => child ref + + ele._private.parent = null; // remove child => parent ref + + if (!alteredParents.ids[pid]) { + alteredParents.ids[pid] = true; + alteredParents.push(parent); + } + } + + self.dirtyCompoundBoundsCache(); + + if (removeFromPool) { + cy.removeFromPool(elesToRemove); // remove from core pool + } + + for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) { + var _ele4 = elesToRemove[_i6]; + + if (_ele4.isEdge()) { + // remove references to this edge in its connected nodes + var src = _ele4.source()[0]; + + var tgt = _ele4.target()[0]; + + removeEdgeRef(src, _ele4); + removeEdgeRef(tgt, _ele4); + + var pllEdges = _ele4.parallelEdges(); + + for (var j = 0; j < pllEdges.length; j++) { + var pllEdge = pllEdges[j]; + removeParallelRef(pllEdge); + + if (pllEdge.isBundledBezier()) { + pllEdge.dirtyBoundingBoxCache(); + } + } + } else { + // remove reference to parent + var parent = _ele4.parent(); + + if (parent.length !== 0) { + removeChildRef(parent, _ele4); + } + } + + if (removeFromPool) { + // mark as removed + _ele4._private.removed = true; + } + } // check to see if we have a compound graph or not + + + var elesStillInside = cy._private.elements; + cy._private.hasCompoundNodes = false; + + for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) { + var _ele5 = elesStillInside[_i7]; + + if (_ele5.isParent()) { + cy._private.hasCompoundNodes = true; + break; + } + } + + var removedElements = new Collection(this.cy(), elesToRemove); + + if (removedElements.size() > 0) { + // must manually notify since trigger won't do this automatically once removed + if (notifyRenderer) { + removedElements.emitAndNotify('remove'); + } else if (removeFromPool) { + removedElements.emit('remove'); + } + } // the parents who were modified by the removal need their style updated + + + for (var _i8 = 0; _i8 < alteredParents.length; _i8++) { + var _ele6 = alteredParents[_i8]; + + if (!removeFromPool || !_ele6.removed()) { + _ele6.updateStyle(); + } + } + + return removedElements; + }; + + elesfn$1.move = function (struct) { + var cy = this._private.cy; + var eles = this; // just clean up refs, caches, etc. in the same way as when removing and then restoring + // (our calls to remove/restore do not remove from the graph or make events) + + var notifyRenderer = false; + var modifyPool = false; + + var toString = function toString(id) { + return id == null ? id : '' + id; + }; // id must be string + + + if (struct.source !== undefined || struct.target !== undefined) { + var srcId = toString(struct.source); + var tgtId = toString(struct.target); + var srcExists = srcId != null && cy.hasElementWithId(srcId); + var tgtExists = tgtId != null && cy.hasElementWithId(tgtId); + + if (srcExists || tgtExists) { + cy.batch(function () { + // avoid duplicate style updates + eles.remove(notifyRenderer, modifyPool); // clean up refs etc. + + eles.emitAndNotify('moveout'); + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var _data5 = ele._private.data; + + if (ele.isEdge()) { + if (srcExists) { + _data5.source = srcId; + } + + if (tgtExists) { + _data5.target = tgtId; + } + } + } + + eles.restore(notifyRenderer, modifyPool); // make new refs, style, etc. + }); + eles.emitAndNotify('move'); + } + } else if (struct.parent !== undefined) { + // move node to new parent + var parentId = toString(struct.parent); + var parentExists = parentId === null || cy.hasElementWithId(parentId); + + if (parentExists) { + var pidToAssign = parentId === null ? undefined : parentId; + cy.batch(function () { + // avoid duplicate style updates + var updated = eles.remove(notifyRenderer, modifyPool); // clean up refs etc. + + updated.emitAndNotify('moveout'); + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var _data6 = ele._private.data; + + if (ele.isNode()) { + _data6.parent = pidToAssign; + } + } + + updated.restore(notifyRenderer, modifyPool); // make new refs, style, etc. + }); + eles.emitAndNotify('move'); + } + } + + return this; + }; + + [elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function (props) { + extend(elesfn$1, props); + }); + + var corefn$9 = { + add: function add(opts) { + var elements; + var cy = this; // add the elements + + if (elementOrCollection(opts)) { + var eles = opts; + + if (eles._private.cy === cy) { + // same instance => just restore + elements = eles.restore(); + } else { + // otherwise, copy from json + var jsons = []; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + jsons.push(ele.json()); + } + + elements = new Collection(cy, jsons); + } + } // specify an array of options + else if (array(opts)) { + var _jsons = opts; + elements = new Collection(cy, _jsons); + } // specify via opts.nodes and opts.edges + else if (plainObject(opts) && (array(opts.nodes) || array(opts.edges))) { + var elesByGroup = opts; + var _jsons2 = []; + var grs = ['nodes', 'edges']; + + for (var _i = 0, il = grs.length; _i < il; _i++) { + var group = grs[_i]; + var elesArray = elesByGroup[group]; + + if (array(elesArray)) { + for (var j = 0, jl = elesArray.length; j < jl; j++) { + var json = extend({ + group: group + }, elesArray[j]); + + _jsons2.push(json); + } + } + } + + elements = new Collection(cy, _jsons2); + } // specify options for one element + else { + var _json = opts; + elements = new Element(cy, _json).collection(); + } + + return elements; + }, + remove: function remove(collection) { + if (elementOrCollection(collection)) ; else if (string(collection)) { + var selector = collection; + collection = this.$(selector); + } + + return collection.remove(); + } + }; + + /* global Float32Array */ + + /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + function generateCubicBezier(mX1, mY1, mX2, mY2) { + var NEWTON_ITERATIONS = 4, + NEWTON_MIN_SLOPE = 0.001, + SUBDIVISION_PRECISION = 0.0000001, + SUBDIVISION_MAX_ITERATIONS = 10, + kSplineTableSize = 11, + kSampleStepSize = 1.0 / (kSplineTableSize - 1.0), + float32ArraySupported = typeof Float32Array !== 'undefined'; + /* Must contain four arguments. */ + + if (arguments.length !== 4) { + return false; + } + /* Arguments must be numbers. */ + + + for (var i = 0; i < 4; ++i) { + if (typeof arguments[i] !== "number" || isNaN(arguments[i]) || !isFinite(arguments[i])) { + return false; + } + } + /* X values must be in the [0, 1] range. */ + + + mX1 = Math.min(mX1, 1); + mX2 = Math.min(mX2, 1); + mX1 = Math.max(mX1, 0); + mX2 = Math.max(mX2, 0); + var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); + + function A(aA1, aA2) { + return 1.0 - 3.0 * aA2 + 3.0 * aA1; + } + + function B(aA1, aA2) { + return 3.0 * aA2 - 6.0 * aA1; + } + + function C(aA1) { + return 3.0 * aA1; + } + + function calcBezier(aT, aA1, aA2) { + return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; + } + + function getSlope(aT, aA1, aA2) { + return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); + } + + function newtonRaphsonIterate(aX, aGuessT) { + for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) { + var currentSlope = getSlope(aGuessT, mX1, mX2); + + if (currentSlope === 0.0) { + return aGuessT; + } + + var currentX = calcBezier(aGuessT, mX1, mX2) - aX; + aGuessT -= currentX / currentSlope; + } + + return aGuessT; + } + + function calcSampleValues() { + for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) { + mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2); + } + } + + function binarySubdivide(aX, aA, aB) { + var currentX, + currentT, + i = 0; + + do { + currentT = aA + (aB - aA) / 2.0; + currentX = calcBezier(currentT, mX1, mX2) - aX; + + if (currentX > 0.0) { + aB = currentT; + } else { + aA = currentT; + } + } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); + + return currentT; + } + + function getTForX(aX) { + var intervalStart = 0.0, + currentSample = 1, + lastSample = kSplineTableSize - 1; + + for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) { + intervalStart += kSampleStepSize; + } + + --currentSample; + var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]), + guessForT = intervalStart + dist * kSampleStepSize, + initialSlope = getSlope(guessForT, mX1, mX2); + + if (initialSlope >= NEWTON_MIN_SLOPE) { + return newtonRaphsonIterate(aX, guessForT); + } else if (initialSlope === 0.0) { + return guessForT; + } else { + return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize); + } + } + + var _precomputed = false; + + function precompute() { + _precomputed = true; + + if (mX1 !== mY1 || mX2 !== mY2) { + calcSampleValues(); + } + } + + var f = function f(aX) { + if (!_precomputed) { + precompute(); + } + + if (mX1 === mY1 && mX2 === mY2) { + return aX; + } + + if (aX === 0) { + return 0; + } + + if (aX === 1) { + return 1; + } + + return calcBezier(getTForX(aX), mY1, mY2); + }; + + f.getControlPoints = function () { + return [{ + x: mX1, + y: mY1 + }, { + x: mX2, + y: mY2 + }]; + }; + + var str = "generateBezier(" + [mX1, mY1, mX2, mY2] + ")"; + + f.toString = function () { + return str; + }; + + return f; + } + + /*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + + /* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass + then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */ + var generateSpringRK4 = function () { + function springAccelerationForState(state) { + return -state.tension * state.x - state.friction * state.v; + } + + function springEvaluateStateWithDerivative(initialState, dt, derivative) { + var state = { + x: initialState.x + derivative.dx * dt, + v: initialState.v + derivative.dv * dt, + tension: initialState.tension, + friction: initialState.friction + }; + return { + dx: state.v, + dv: springAccelerationForState(state) + }; + } + + function springIntegrateState(state, dt) { + var a = { + dx: state.v, + dv: springAccelerationForState(state) + }, + b = springEvaluateStateWithDerivative(state, dt * 0.5, a), + c = springEvaluateStateWithDerivative(state, dt * 0.5, b), + d = springEvaluateStateWithDerivative(state, dt, c), + dxdt = 1.0 / 6.0 * (a.dx + 2.0 * (b.dx + c.dx) + d.dx), + dvdt = 1.0 / 6.0 * (a.dv + 2.0 * (b.dv + c.dv) + d.dv); + state.x = state.x + dxdt * dt; + state.v = state.v + dvdt * dt; + return state; + } + + return function springRK4Factory(tension, friction, duration) { + var initState = { + x: -1, + v: 0, + tension: null, + friction: null + }, + path = [0], + time_lapsed = 0, + tolerance = 1 / 10000, + DT = 16 / 1000, + have_duration, + dt, + last_state; + tension = parseFloat(tension) || 500; + friction = parseFloat(friction) || 20; + duration = duration || null; + initState.tension = tension; + initState.friction = friction; + have_duration = duration !== null; + /* Calculate the actual time it takes for this animation to complete with the provided conditions. */ + + if (have_duration) { + /* Run the simulation without a duration. */ + time_lapsed = springRK4Factory(tension, friction); + /* Compute the adjusted time delta. */ + + dt = time_lapsed / duration * DT; + } else { + dt = DT; + } + + for (;;) { + /* Next/step function .*/ + last_state = springIntegrateState(last_state || initState, dt); + /* Store the position. */ + + path.push(1 + last_state.x); + time_lapsed += 16; + /* If the change threshold is reached, break. */ + + if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) { + break; + } + } + /* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the + computed path and returns a snapshot of the position according to a given percentComplete. */ + + + return !have_duration ? time_lapsed : function (percentComplete) { + return path[percentComplete * (path.length - 1) | 0]; + }; + }; + }(); + + var cubicBezier = function cubicBezier(t1, p1, t2, p2) { + var bezier = generateCubicBezier(t1, p1, t2, p2); + return function (start, end, percent) { + return start + (end - start) * bezier(percent); + }; + }; + + var easings = { + 'linear': function linear(start, end, percent) { + return start + (end - start) * percent; + }, + // default easings + 'ease': cubicBezier(0.25, 0.1, 0.25, 1), + 'ease-in': cubicBezier(0.42, 0, 1, 1), + 'ease-out': cubicBezier(0, 0, 0.58, 1), + 'ease-in-out': cubicBezier(0.42, 0, 0.58, 1), + // sine + 'ease-in-sine': cubicBezier(0.47, 0, 0.745, 0.715), + 'ease-out-sine': cubicBezier(0.39, 0.575, 0.565, 1), + 'ease-in-out-sine': cubicBezier(0.445, 0.05, 0.55, 0.95), + // quad + 'ease-in-quad': cubicBezier(0.55, 0.085, 0.68, 0.53), + 'ease-out-quad': cubicBezier(0.25, 0.46, 0.45, 0.94), + 'ease-in-out-quad': cubicBezier(0.455, 0.03, 0.515, 0.955), + // cubic + 'ease-in-cubic': cubicBezier(0.55, 0.055, 0.675, 0.19), + 'ease-out-cubic': cubicBezier(0.215, 0.61, 0.355, 1), + 'ease-in-out-cubic': cubicBezier(0.645, 0.045, 0.355, 1), + // quart + 'ease-in-quart': cubicBezier(0.895, 0.03, 0.685, 0.22), + 'ease-out-quart': cubicBezier(0.165, 0.84, 0.44, 1), + 'ease-in-out-quart': cubicBezier(0.77, 0, 0.175, 1), + // quint + 'ease-in-quint': cubicBezier(0.755, 0.05, 0.855, 0.06), + 'ease-out-quint': cubicBezier(0.23, 1, 0.32, 1), + 'ease-in-out-quint': cubicBezier(0.86, 0, 0.07, 1), + // expo + 'ease-in-expo': cubicBezier(0.95, 0.05, 0.795, 0.035), + 'ease-out-expo': cubicBezier(0.19, 1, 0.22, 1), + 'ease-in-out-expo': cubicBezier(1, 0, 0, 1), + // circ + 'ease-in-circ': cubicBezier(0.6, 0.04, 0.98, 0.335), + 'ease-out-circ': cubicBezier(0.075, 0.82, 0.165, 1), + 'ease-in-out-circ': cubicBezier(0.785, 0.135, 0.15, 0.86), + // user param easings... + 'spring': function spring(tension, friction, duration) { + if (duration === 0) { + // can't get a spring w/ duration 0 + return easings.linear; // duration 0 => jump to end so impl doesn't matter + } + + var spring = generateSpringRK4(tension, friction, duration); + return function (start, end, percent) { + return start + (end - start) * spring(percent); + }; + }, + 'cubic-bezier': cubicBezier + }; + + function getEasedValue(type, start, end, percent, easingFn) { + if (percent === 1) { + return end; + } + + if (start === end) { + return end; + } + + var val = easingFn(start, end, percent); + + if (type == null) { + return val; + } + + if (type.roundValue || type.color) { + val = Math.round(val); + } + + if (type.min !== undefined) { + val = Math.max(val, type.min); + } + + if (type.max !== undefined) { + val = Math.min(val, type.max); + } + + return val; + } + + function getValue(prop, spec) { + if (prop.pfValue != null || prop.value != null) { + if (prop.pfValue != null && (spec == null || spec.type.units !== '%')) { + return prop.pfValue; + } else { + return prop.value; + } + } else { + return prop; + } + } + + function ease(startProp, endProp, percent, easingFn, propSpec) { + var type = propSpec != null ? propSpec.type : null; + + if (percent < 0) { + percent = 0; + } else if (percent > 1) { + percent = 1; + } + + var start = getValue(startProp, propSpec); + var end = getValue(endProp, propSpec); + + if (number$1(start) && number$1(end)) { + return getEasedValue(type, start, end, percent, easingFn); + } else if (array(start) && array(end)) { + var easedArr = []; + + for (var i = 0; i < end.length; i++) { + var si = start[i]; + var ei = end[i]; + + if (si != null && ei != null) { + var val = getEasedValue(type, si, ei, percent, easingFn); + easedArr.push(val); + } else { + easedArr.push(ei); + } + } + + return easedArr; + } + + return undefined; + } + + function step$1(self, ani, now, isCore) { + var isEles = !isCore; + var _p = self._private; + var ani_p = ani._private; + var pEasing = ani_p.easing; + var startTime = ani_p.startTime; + var cy = isCore ? self : self.cy(); + var style = cy.style(); + + if (!ani_p.easingImpl) { + if (pEasing == null) { + // use default + ani_p.easingImpl = easings['linear']; + } else { + // then define w/ name + var easingVals; + + if (string(pEasing)) { + var easingProp = style.parse('transition-timing-function', pEasing); + easingVals = easingProp.value; + } else { + // then assume preparsed array + easingVals = pEasing; + } + + var name, args; + + if (string(easingVals)) { + name = easingVals; + args = []; + } else { + name = easingVals[1]; + args = easingVals.slice(2).map(function (n) { + return +n; + }); + } + + if (args.length > 0) { + // create with args + if (name === 'spring') { + args.push(ani_p.duration); // need duration to generate spring + } + + ani_p.easingImpl = easings[name].apply(null, args); + } else { + // static impl by name + ani_p.easingImpl = easings[name]; + } + } + } + + var easing = ani_p.easingImpl; + var percent; + + if (ani_p.duration === 0) { + percent = 1; + } else { + percent = (now - startTime) / ani_p.duration; + } + + if (ani_p.applying) { + percent = ani_p.progress; + } + + if (percent < 0) { + percent = 0; + } else if (percent > 1) { + percent = 1; + } + + if (ani_p.delay == null) { + // then update + var startPos = ani_p.startPosition; + var endPos = ani_p.position; + + if (endPos && isEles && !self.locked()) { + var newPos = {}; + + if (valid(startPos.x, endPos.x)) { + newPos.x = ease(startPos.x, endPos.x, percent, easing); + } + + if (valid(startPos.y, endPos.y)) { + newPos.y = ease(startPos.y, endPos.y, percent, easing); + } + + self.position(newPos); + } + + var startPan = ani_p.startPan; + var endPan = ani_p.pan; + var pan = _p.pan; + var animatingPan = endPan != null && isCore; + + if (animatingPan) { + if (valid(startPan.x, endPan.x)) { + pan.x = ease(startPan.x, endPan.x, percent, easing); + } + + if (valid(startPan.y, endPan.y)) { + pan.y = ease(startPan.y, endPan.y, percent, easing); + } + + self.emit('pan'); + } + + var startZoom = ani_p.startZoom; + var endZoom = ani_p.zoom; + var animatingZoom = endZoom != null && isCore; + + if (animatingZoom) { + if (valid(startZoom, endZoom)) { + _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom); + } + + self.emit('zoom'); + } + + if (animatingPan || animatingZoom) { + self.emit('viewport'); + } + + var props = ani_p.style; + + if (props && props.length > 0 && isEles) { + for (var i = 0; i < props.length; i++) { + var prop = props[i]; + var _name = prop.name; + var end = prop; + var start = ani_p.startStyle[_name]; + var propSpec = style.properties[start.name]; + var easedVal = ease(start, end, percent, easing, propSpec); + style.overrideBypass(self, _name, easedVal); + } // for props + + + self.emit('style'); + } // if + + } + + ani_p.progress = percent; + return percent; + } + + function valid(start, end) { + if (start == null || end == null) { + return false; + } + + if (number$1(start) && number$1(end)) { + return true; + } else if (start && end) { + return true; + } + + return false; + } + + function startAnimation(self, ani, now, isCore) { + var ani_p = ani._private; + ani_p.started = true; + ani_p.startTime = now - ani_p.progress * ani_p.duration; + } + + function stepAll(now, cy) { + var eles = cy._private.aniEles; + var doneEles = []; + + function stepOne(ele, isCore) { + var _p = ele._private; + var current = _p.animation.current; + var queue = _p.animation.queue; + var ranAnis = false; // if nothing currently animating, get something from the queue + + if (current.length === 0) { + var next = queue.shift(); + + if (next) { + current.push(next); + } + } + + var callbacks = function callbacks(_callbacks) { + for (var j = _callbacks.length - 1; j >= 0; j--) { + var cb = _callbacks[j]; + cb(); + } + + _callbacks.splice(0, _callbacks.length); + }; // step and remove if done + + + for (var i = current.length - 1; i >= 0; i--) { + var ani = current[i]; + var ani_p = ani._private; + + if (ani_p.stopped) { + current.splice(i, 1); + ani_p.hooked = false; + ani_p.playing = false; + ani_p.started = false; + callbacks(ani_p.frames); + continue; + } + + if (!ani_p.playing && !ani_p.applying) { + continue; + } // an apply() while playing shouldn't do anything + + + if (ani_p.playing && ani_p.applying) { + ani_p.applying = false; + } + + if (!ani_p.started) { + startAnimation(ele, ani, now); + } + + step$1(ele, ani, now, isCore); + + if (ani_p.applying) { + ani_p.applying = false; + } + + callbacks(ani_p.frames); + + if (ani_p.step != null) { + ani_p.step(now); + } + + if (ani.completed()) { + current.splice(i, 1); + ani_p.hooked = false; + ani_p.playing = false; + ani_p.started = false; + callbacks(ani_p.completes); + } + + ranAnis = true; + } + + if (!isCore && current.length === 0 && queue.length === 0) { + doneEles.push(ele); + } + + return ranAnis; + } // stepElement + // handle all eles + + + var ranEleAni = false; + + for (var e = 0; e < eles.length; e++) { + var ele = eles[e]; + var handledThisEle = stepOne(ele); + ranEleAni = ranEleAni || handledThisEle; + } // each element + + + var ranCoreAni = stepOne(cy, true); // notify renderer + + if (ranEleAni || ranCoreAni) { + if (eles.length > 0) { + cy.notify('draw', eles); + } else { + cy.notify('draw'); + } + } // remove elements from list of currently animating if its queues are empty + + + eles.unmerge(doneEles); + cy.emit('step'); + } // stepAll + + var corefn$8 = { + // pull in animation functions + animate: define.animate(), + animation: define.animation(), + animated: define.animated(), + clearQueue: define.clearQueue(), + delay: define.delay(), + delayAnimation: define.delayAnimation(), + stop: define.stop(), + addToAnimationPool: function addToAnimationPool(eles) { + var cy = this; + + if (!cy.styleEnabled()) { + return; + } // save cycles when no style used + + + cy._private.aniEles.merge(eles); + }, + stopAnimationLoop: function stopAnimationLoop() { + this._private.animationsRunning = false; + }, + startAnimationLoop: function startAnimationLoop() { + var cy = this; + cy._private.animationsRunning = true; + + if (!cy.styleEnabled()) { + return; + } // save cycles when no style used + // NB the animation loop will exec in headless environments if style enabled + // and explicit cy.destroy() is necessary to stop the loop + + + function headlessStep() { + if (!cy._private.animationsRunning) { + return; + } + + requestAnimationFrame(function animationStep(now) { + stepAll(now, cy); + headlessStep(); + }); + } + + var renderer = cy.renderer(); + + if (renderer && renderer.beforeRender) { + // let the renderer schedule animations + renderer.beforeRender(function rendererAnimationStep(willDraw, now) { + stepAll(now, cy); + }, renderer.beforeRenderPriorities.animations); + } else { + // manage the animation loop ourselves + headlessStep(); // first call + } + } + }; + + var emitterOptions = { + qualifierCompare: function qualifierCompare(selector1, selector2) { + if (selector1 == null || selector2 == null) { + return selector1 == null && selector2 == null; + } else { + return selector1.sameText(selector2); + } + }, + eventMatches: function eventMatches(cy, listener, eventObj) { + var selector = listener.qualifier; + + if (selector != null) { + return cy !== eventObj.target && element(eventObj.target) && selector.matches(eventObj.target); + } + + return true; + }, + addEventFields: function addEventFields(cy, evt) { + evt.cy = cy; + evt.target = cy; + }, + callbackContext: function callbackContext(cy, listener, eventObj) { + return listener.qualifier != null ? eventObj.target : cy; + } + }; + + var argSelector = function argSelector(arg) { + if (string(arg)) { + return new Selector(arg); + } else { + return arg; + } + }; + + var elesfn = { + createEmitter: function createEmitter() { + var _p = this._private; + + if (!_p.emitter) { + _p.emitter = new Emitter(emitterOptions, this); + } + + return this; + }, + emitter: function emitter() { + return this._private.emitter; + }, + on: function on(events, selector, callback) { + this.emitter().on(events, argSelector(selector), callback); + return this; + }, + removeListener: function removeListener(events, selector, callback) { + this.emitter().removeListener(events, argSelector(selector), callback); + return this; + }, + removeAllListeners: function removeAllListeners() { + this.emitter().removeAllListeners(); + return this; + }, + one: function one(events, selector, callback) { + this.emitter().one(events, argSelector(selector), callback); + return this; + }, + once: function once(events, selector, callback) { + this.emitter().one(events, argSelector(selector), callback); + return this; + }, + emit: function emit(events, extraParams) { + this.emitter().emit(events, extraParams); + return this; + }, + emitAndNotify: function emitAndNotify(event, eles) { + this.emit(event); + this.notify(event, eles); + return this; + } + }; + define.eventAliasesOn(elesfn); + + var corefn$7 = { + png: function png(options) { + var renderer = this._private.renderer; + options = options || {}; + return renderer.png(options); + }, + jpg: function jpg(options) { + var renderer = this._private.renderer; + options = options || {}; + options.bg = options.bg || '#fff'; + return renderer.jpg(options); + } + }; + corefn$7.jpeg = corefn$7.jpg; + + var corefn$6 = { + layout: function layout(options) { + var cy = this; + + if (options == null) { + error('Layout options must be specified to make a layout'); + return; + } + + if (options.name == null) { + error('A `name` must be specified to make a layout'); + return; + } + + var name = options.name; + var Layout = cy.extension('layout', name); + + if (Layout == null) { + error('No such layout `' + name + '` found. Did you forget to import it and `cytoscape.use()` it?'); + return; + } + + var eles; + + if (string(options.eles)) { + eles = cy.$(options.eles); + } else { + eles = options.eles != null ? options.eles : cy.$(); + } + + var layout = new Layout(extend({}, options, { + cy: cy, + eles: eles + })); + return layout; + } + }; + corefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout; + + var corefn$5 = { + notify: function notify(eventName, eventEles) { + var _p = this._private; + + if (this.batching()) { + _p.batchNotifications = _p.batchNotifications || {}; + var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection(); + + if (eventEles != null) { + eles.merge(eventEles); + } + + return; // notifications are disabled during batching + } + + if (!_p.notificationsEnabled) { + return; + } // exit on disabled + + + var renderer = this.renderer(); // exit if destroy() called on core or renderer in between frames #1499 #1528 + + if (this.destroyed() || !renderer) { + return; + } + + renderer.notify(eventName, eventEles); + }, + notifications: function notifications(bool) { + var p = this._private; + + if (bool === undefined) { + return p.notificationsEnabled; + } else { + p.notificationsEnabled = bool ? true : false; + } + + return this; + }, + noNotifications: function noNotifications(callback) { + this.notifications(false); + callback(); + this.notifications(true); + }, + batching: function batching() { + return this._private.batchCount > 0; + }, + startBatch: function startBatch() { + var _p = this._private; + + if (_p.batchCount == null) { + _p.batchCount = 0; + } + + if (_p.batchCount === 0) { + _p.batchStyleEles = this.collection(); + _p.batchNotifications = {}; + } + + _p.batchCount++; + return this; + }, + endBatch: function endBatch() { + var _p = this._private; + + if (_p.batchCount === 0) { + return this; + } + + _p.batchCount--; + + if (_p.batchCount === 0) { + // update style for dirty eles + _p.batchStyleEles.updateStyle(); + + var renderer = this.renderer(); // notify the renderer of queued eles and event types + + Object.keys(_p.batchNotifications).forEach(function (eventName) { + var eles = _p.batchNotifications[eventName]; + + if (eles.empty()) { + renderer.notify(eventName); + } else { + renderer.notify(eventName, eles); + } + }); + } + + return this; + }, + batch: function batch(callback) { + this.startBatch(); + callback(); + this.endBatch(); + return this; + }, + // for backwards compatibility + batchData: function batchData(map) { + var cy = this; + return this.batch(function () { + var ids = Object.keys(map); + + for (var i = 0; i < ids.length; i++) { + var id = ids[i]; + var data = map[id]; + var ele = cy.getElementById(id); + ele.data(data); + } + }); + } + }; + + var rendererDefaults = defaults$g({ + hideEdgesOnViewport: false, + textureOnViewport: false, + motionBlur: false, + motionBlurOpacity: 0.05, + pixelRatio: undefined, + desktopTapThreshold: 4, + touchTapThreshold: 8, + wheelSensitivity: 1, + debug: false, + showFps: false + }); + var corefn$4 = { + renderTo: function renderTo(context, zoom, pan, pxRatio) { + var r = this._private.renderer; + r.renderTo(context, zoom, pan, pxRatio); + return this; + }, + renderer: function renderer() { + return this._private.renderer; + }, + forceRender: function forceRender() { + this.notify('draw'); + return this; + }, + resize: function resize() { + this.invalidateSize(); + this.emitAndNotify('resize'); + return this; + }, + initRenderer: function initRenderer(options) { + var cy = this; + var RendererProto = cy.extension('renderer', options.name); + + if (RendererProto == null) { + error("Can not initialise: No such renderer `".concat(options.name, "` found. Did you forget to import it and `cytoscape.use()` it?")); + return; + } + + if (options.wheelSensitivity !== undefined) { + warn("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine."); + } + + var rOpts = rendererDefaults(options); + rOpts.cy = cy; + cy._private.renderer = new RendererProto(rOpts); + this.notify('init'); + }, + destroyRenderer: function destroyRenderer() { + var cy = this; + cy.notify('destroy'); // destroy the renderer + + var domEle = cy.container(); + + if (domEle) { + domEle._cyreg = null; + + while (domEle.childNodes.length > 0) { + domEle.removeChild(domEle.childNodes[0]); + } + } + + cy._private.renderer = null; // to be extra safe, remove the ref + + cy.mutableElements().forEach(function (ele) { + var _p = ele._private; + _p.rscratch = {}; + _p.rstyle = {}; + _p.animation.current = []; + _p.animation.queue = []; + }); + }, + onRender: function onRender(fn) { + return this.on('render', fn); + }, + offRender: function offRender(fn) { + return this.off('render', fn); + } + }; + corefn$4.invalidateDimensions = corefn$4.resize; + + var corefn$3 = { + // get a collection + // - empty collection on no args + // - collection of elements in the graph on selector arg + // - guarantee a returned collection when elements or collection specified + collection: function collection(eles, opts) { + if (string(eles)) { + return this.$(eles); + } else if (elementOrCollection(eles)) { + return eles.collection(); + } else if (array(eles)) { + if (!opts) { + opts = {}; + } + + return new Collection(this, eles, opts.unique, opts.removed); + } + + return new Collection(this); + }, + nodes: function nodes(selector) { + var nodes = this.$(function (ele) { + return ele.isNode(); + }); + + if (selector) { + return nodes.filter(selector); + } + + return nodes; + }, + edges: function edges(selector) { + var edges = this.$(function (ele) { + return ele.isEdge(); + }); + + if (selector) { + return edges.filter(selector); + } + + return edges; + }, + // search the graph like jQuery + $: function $(selector) { + var eles = this._private.elements; + + if (selector) { + return eles.filter(selector); + } else { + return eles.spawnSelf(); + } + }, + mutableElements: function mutableElements() { + return this._private.elements; + } + }; // aliases + + corefn$3.elements = corefn$3.filter = corefn$3.$; + + var styfn$8 = {}; // keys for style blocks, e.g. ttfftt + + var TRUE = 't'; + var FALSE = 'f'; // (potentially expensive calculation) + // apply the style to the element based on + // - its bypass + // - what selectors match it + + styfn$8.apply = function (eles) { + var self = this; + var _p = self._private; + var cy = _p.cy; + var updatedEles = cy.collection(); + + for (var ie = 0; ie < eles.length; ie++) { + var ele = eles[ie]; + var cxtMeta = self.getContextMeta(ele); + + if (cxtMeta.empty) { + continue; + } + + var cxtStyle = self.getContextStyle(cxtMeta); + var app = self.applyContextStyle(cxtMeta, cxtStyle, ele); + + if (ele._private.appliedInitStyle) { + self.updateTransitions(ele, app.diffProps); + } else { + ele._private.appliedInitStyle = true; + } + + var hintsDiff = self.updateStyleHints(ele); + + if (hintsDiff) { + updatedEles.push(ele); + } + } // for elements + + + return updatedEles; + }; + + styfn$8.getPropertiesDiff = function (oldCxtKey, newCxtKey) { + var self = this; + var cache = self._private.propDiffs = self._private.propDiffs || {}; + var dualCxtKey = oldCxtKey + '-' + newCxtKey; + var cachedVal = cache[dualCxtKey]; + + if (cachedVal) { + return cachedVal; + } + + var diffProps = []; + var addedProp = {}; + + for (var i = 0; i < self.length; i++) { + var cxt = self[i]; + var oldHasCxt = oldCxtKey[i] === TRUE; + var newHasCxt = newCxtKey[i] === TRUE; + var cxtHasDiffed = oldHasCxt !== newHasCxt; + var cxtHasMappedProps = cxt.mappedProperties.length > 0; + + if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) { + var props = void 0; + + if (cxtHasDiffed && cxtHasMappedProps) { + props = cxt.properties; // suffices b/c mappedProperties is a subset of properties + } else if (cxtHasDiffed) { + props = cxt.properties; // need to check them all + } else if (cxtHasMappedProps) { + props = cxt.mappedProperties; // only need to check mapped + } + + for (var j = 0; j < props.length; j++) { + var prop = props[j]; + var name = prop.name; // if a later context overrides this property, then the fact that this context has switched/diffed doesn't matter + // (semi expensive check since it makes this function O(n^2) on context length, but worth it since overall result + // is cached) + + var laterCxtOverrides = false; + + for (var k = i + 1; k < self.length; k++) { + var laterCxt = self[k]; + var hasLaterCxt = newCxtKey[k] === TRUE; + + if (!hasLaterCxt) { + continue; + } // can't override unless the context is active + + + laterCxtOverrides = laterCxt.properties[prop.name] != null; + + if (laterCxtOverrides) { + break; + } // exit early as long as one later context overrides + + } + + if (!addedProp[name] && !laterCxtOverrides) { + addedProp[name] = true; + diffProps.push(name); + } + } // for props + + } // if + + } // for contexts + + + cache[dualCxtKey] = diffProps; + return diffProps; + }; + + styfn$8.getContextMeta = function (ele) { + var self = this; + var cxtKey = ''; + var diffProps; + var prevKey = ele._private.styleCxtKey || ''; // get the cxt key + + for (var i = 0; i < self.length; i++) { + var context = self[i]; + var contextSelectorMatches = context.selector && context.selector.matches(ele); // NB: context.selector may be null for 'core' + + if (contextSelectorMatches) { + cxtKey += TRUE; + } else { + cxtKey += FALSE; + } + } // for context + + + diffProps = self.getPropertiesDiff(prevKey, cxtKey); + ele._private.styleCxtKey = cxtKey; + return { + key: cxtKey, + diffPropNames: diffProps, + empty: diffProps.length === 0 + }; + }; // gets a computed ele style object based on matched contexts + + + styfn$8.getContextStyle = function (cxtMeta) { + var cxtKey = cxtMeta.key; + var self = this; + var cxtStyles = this._private.contextStyles = this._private.contextStyles || {}; // if already computed style, returned cached copy + + if (cxtStyles[cxtKey]) { + return cxtStyles[cxtKey]; + } + + var style = { + _private: { + key: cxtKey + } + }; + + for (var i = 0; i < self.length; i++) { + var cxt = self[i]; + var hasCxt = cxtKey[i] === TRUE; + + if (!hasCxt) { + continue; + } + + for (var j = 0; j < cxt.properties.length; j++) { + var prop = cxt.properties[j]; + style[prop.name] = prop; + } + } + + cxtStyles[cxtKey] = style; + return style; + }; + + styfn$8.applyContextStyle = function (cxtMeta, cxtStyle, ele) { + var self = this; + var diffProps = cxtMeta.diffPropNames; + var retDiffProps = {}; + var types = self.types; + + for (var i = 0; i < diffProps.length; i++) { + var diffPropName = diffProps[i]; + var cxtProp = cxtStyle[diffPropName]; + var eleProp = ele.pstyle(diffPropName); + + if (!cxtProp) { + // no context prop means delete + if (!eleProp) { + continue; // no existing prop means nothing needs to be removed + // nb affects initial application on mapped values like control-point-distances + } else if (eleProp.bypass) { + cxtProp = { + name: diffPropName, + deleteBypassed: true + }; + } else { + cxtProp = { + name: diffPropName, + "delete": true + }; + } + } // save cycles when the context prop doesn't need to be applied + + + if (eleProp === cxtProp) { + continue; + } // save cycles when a mapped context prop doesn't need to be applied + + + if (cxtProp.mapped === types.fn // context prop is function mapper + && eleProp != null // some props can be null even by default (e.g. a prop that overrides another one) + && eleProp.mapping != null // ele prop is a concrete value from from a mapper + && eleProp.mapping.value === cxtProp.value // the current prop on the ele is a flat prop value for the function mapper + ) { + // NB don't write to cxtProp, as it's shared among eles (stored in stylesheet) + var mapping = eleProp.mapping; // can write to mapping, as it's a per-ele copy + + var fnValue = mapping.fnValue = cxtProp.value(ele); // temporarily cache the value in case of a miss + + if (fnValue === mapping.prevFnValue) { + continue; + } + } + + var retDiffProp = retDiffProps[diffPropName] = { + prev: eleProp + }; + self.applyParsedProperty(ele, cxtProp); + retDiffProp.next = ele.pstyle(diffPropName); + + if (retDiffProp.next && retDiffProp.next.bypass) { + retDiffProp.next = retDiffProp.next.bypassed; + } + } + + return { + diffProps: retDiffProps + }; + }; + + styfn$8.updateStyleHints = function (ele) { + var _p = ele._private; + var self = this; + var propNames = self.propertyGroupNames; + var propGrKeys = self.propertyGroupKeys; + + var propHash = function propHash(ele, propNames, seedKey) { + return self.getPropertiesHash(ele, propNames, seedKey); + }; + + var oldStyleKey = _p.styleKey; + + if (ele.removed()) { + return false; + } + + var isNode = _p.group === 'nodes'; // get the style key hashes per prop group + // but lazily -- only use non-default prop values to reduce the number of hashes + // + + var overriddenStyles = ele._private.style; + propNames = Object.keys(overriddenStyles); + + for (var i = 0; i < propGrKeys.length; i++) { + var grKey = propGrKeys[i]; + _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]; + } + + var updateGrKey1 = function updateGrKey1(val, grKey) { + return _p.styleKeys[grKey][0] = hashInt(val, _p.styleKeys[grKey][0]); + }; + + var updateGrKey2 = function updateGrKey2(val, grKey) { + return _p.styleKeys[grKey][1] = hashIntAlt(val, _p.styleKeys[grKey][1]); + }; + + var updateGrKey = function updateGrKey(val, grKey) { + updateGrKey1(val, grKey); + updateGrKey2(val, grKey); + }; + + var updateGrKeyWStr = function updateGrKeyWStr(strVal, grKey) { + for (var j = 0; j < strVal.length; j++) { + var ch = strVal.charCodeAt(j); + updateGrKey1(ch, grKey); + updateGrKey2(ch, grKey); + } + }; // - hashing works on 32 bit ints b/c we use bitwise ops + // - small numbers get cut off (e.g. 0.123 is seen as 0 by the hashing function) + // - raise up small numbers so more significant digits are seen by hashing + // - make small numbers larger than a normal value to avoid collisions + // - works in practice and it's relatively cheap + + + var N = 2000000000; + + var cleanNum = function cleanNum(val) { + return -128 < val && val < 128 && Math.floor(val) !== val ? N - (val * 1024 | 0) : val; + }; + + for (var _i = 0; _i < propNames.length; _i++) { + var name = propNames[_i]; + var parsedProp = overriddenStyles[name]; + + if (parsedProp == null) { + continue; + } + + var propInfo = this.properties[name]; + var type = propInfo.type; + var _grKey = propInfo.groupKey; + var normalizedNumberVal = void 0; + + if (propInfo.hashOverride != null) { + normalizedNumberVal = propInfo.hashOverride(ele, parsedProp); + } else if (parsedProp.pfValue != null) { + normalizedNumberVal = parsedProp.pfValue; + } // might not be a number if it allows enums + + + var numberVal = propInfo.enums == null ? parsedProp.value : null; + var haveNormNum = normalizedNumberVal != null; + var haveUnitedNum = numberVal != null; + var haveNum = haveNormNum || haveUnitedNum; + var units = parsedProp.units; // numbers are cheaper to hash than strings + // 1 hash op vs n hash ops (for length n string) + + if (type.number && haveNum && !type.multiple) { + var v = haveNormNum ? normalizedNumberVal : numberVal; + updateGrKey(cleanNum(v), _grKey); + + if (!haveNormNum && units != null) { + updateGrKeyWStr(units, _grKey); + } + } else { + updateGrKeyWStr(parsedProp.strValue, _grKey); + } + } // overall style key + // + + + var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]; + + for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) { + var _grKey2 = propGrKeys[_i2]; + var grHash = _p.styleKeys[_grKey2]; + hash[0] = hashInt(grHash[0], hash[0]); + hash[1] = hashIntAlt(grHash[1], hash[1]); + } + + _p.styleKey = combineHashes(hash[0], hash[1]); // label dims + // + + var sk = _p.styleKeys; + _p.labelDimsKey = combineHashesArray(sk.labelDimensions); + var labelKeys = propHash(ele, ['label'], sk.labelDimensions); + _p.labelKey = combineHashesArray(labelKeys); + _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys)); + + if (!isNode) { + var sourceLabelKeys = propHash(ele, ['source-label'], sk.labelDimensions); + _p.sourceLabelKey = combineHashesArray(sourceLabelKeys); + _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys)); + var targetLabelKeys = propHash(ele, ['target-label'], sk.labelDimensions); + _p.targetLabelKey = combineHashesArray(targetLabelKeys); + _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys)); + } // node + // + + + if (isNode) { + var _p$styleKeys = _p.styleKeys, + nodeBody = _p$styleKeys.nodeBody, + nodeBorder = _p$styleKeys.nodeBorder, + backgroundImage = _p$styleKeys.backgroundImage, + compound = _p$styleKeys.compound, + pie = _p$styleKeys.pie; + var nodeKeys = [nodeBody, nodeBorder, backgroundImage, compound, pie].filter(function (k) { + return k != null; + }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]); + _p.nodeKey = combineHashesArray(nodeKeys); + _p.hasPie = pie != null && pie[0] !== DEFAULT_HASH_SEED && pie[1] !== DEFAULT_HASH_SEED_ALT; + } + + return oldStyleKey !== _p.styleKey; + }; + + styfn$8.clearStyleHints = function (ele) { + var _p = ele._private; + _p.styleCxtKey = ''; + _p.styleKeys = {}; + _p.styleKey = null; + _p.labelKey = null; + _p.labelStyleKey = null; + _p.sourceLabelKey = null; + _p.sourceLabelStyleKey = null; + _p.targetLabelKey = null; + _p.targetLabelStyleKey = null; + _p.nodeKey = null; + _p.hasPie = null; + }; // apply a property to the style (for internal use) + // returns whether application was successful + // + // now, this function flattens the property, and here's how: + // + // for parsedProp:{ bypass: true, deleteBypass: true } + // no property is generated, instead the bypass property in the + // element's style is replaced by what's pointed to by the `bypassed` + // field in the bypass property (i.e. restoring the property the + // bypass was overriding) + // + // for parsedProp:{ mapped: truthy } + // the generated flattenedProp:{ mapping: prop } + // + // for parsedProp:{ bypass: true } + // the generated flattenedProp:{ bypassed: parsedProp } + + + styfn$8.applyParsedProperty = function (ele, parsedProp) { + var self = this; + var prop = parsedProp; + var style = ele._private.style; + var flatProp; + var types = self.types; + var type = self.properties[prop.name].type; + var propIsBypass = prop.bypass; + var origProp = style[prop.name]; + var origPropIsBypass = origProp && origProp.bypass; + var _p = ele._private; + var flatPropMapping = 'mapping'; + + var getVal = function getVal(p) { + if (p == null) { + return null; + } else if (p.pfValue != null) { + return p.pfValue; + } else { + return p.value; + } + }; + + var checkTriggers = function checkTriggers() { + var fromVal = getVal(origProp); + var toVal = getVal(prop); + self.checkTriggers(ele, prop.name, fromVal, toVal); + }; + + if (prop && prop.name.substr(0, 3) === 'pie') { + warn('The pie style properties are deprecated. Create charts using background images instead.'); + } // edge sanity checks to prevent the client from making serious mistakes + + + if (parsedProp.name === 'curve-style' && ele.isEdge() && ( // loops must be bundled beziers + parsedProp.value !== 'bezier' && ele.isLoop() || // edges connected to compound nodes can not be haystacks + parsedProp.value === 'haystack' && (ele.source().isParent() || ele.target().isParent()))) { + prop = parsedProp = this.parse(parsedProp.name, 'bezier', propIsBypass); + } + + if (prop["delete"]) { + // delete the property and use the default value on falsey value + style[prop.name] = undefined; + checkTriggers(); + return true; + } + + if (prop.deleteBypassed) { + // delete the property that the + if (!origProp) { + checkTriggers(); + return true; // can't delete if no prop + } else if (origProp.bypass) { + // delete bypassed + origProp.bypassed = undefined; + checkTriggers(); + return true; + } else { + return false; // we're unsuccessful deleting the bypassed + } + } // check if we need to delete the current bypass + + + if (prop.deleteBypass) { + // then this property is just here to indicate we need to delete + if (!origProp) { + checkTriggers(); + return true; // property is already not defined + } else if (origProp.bypass) { + // then replace the bypass property with the original + // because the bypassed property was already applied (and therefore parsed), we can just replace it (no reapplying necessary) + style[prop.name] = origProp.bypassed; + checkTriggers(); + return true; + } else { + return false; // we're unsuccessful deleting the bypass + } + } + + var printMappingErr = function printMappingErr() { + warn('Do not assign mappings to elements without corresponding data (i.e. ele `' + ele.id() + '` has no mapping for property `' + prop.name + '` with data field `' + prop.field + '`); try a `[' + prop.field + ']` selector to limit scope to elements with `' + prop.field + '` defined'); + }; // put the property in the style objects + + + switch (prop.mapped) { + // flatten the property if mapped + case types.mapData: + { + // flatten the field (e.g. data.foo.bar) + var fields = prop.field.split('.'); + var fieldVal = _p.data; + + for (var i = 0; i < fields.length && fieldVal; i++) { + var field = fields[i]; + fieldVal = fieldVal[field]; + } + + if (fieldVal == null) { + printMappingErr(); + return false; + } + + var percent; + + if (!number$1(fieldVal)) { + // then don't apply and fall back on the existing style + warn('Do not use continuous mappers without specifying numeric data (i.e. `' + prop.field + ': ' + fieldVal + '` for `' + ele.id() + '` is non-numeric)'); + return false; + } else { + var fieldWidth = prop.fieldMax - prop.fieldMin; + + if (fieldWidth === 0) { + // safety check -- not strictly necessary as no props of zero range should be passed here + percent = 0; + } else { + percent = (fieldVal - prop.fieldMin) / fieldWidth; + } + } // make sure to bound percent value + + + if (percent < 0) { + percent = 0; + } else if (percent > 1) { + percent = 1; + } + + if (type.color) { + var r1 = prop.valueMin[0]; + var r2 = prop.valueMax[0]; + var g1 = prop.valueMin[1]; + var g2 = prop.valueMax[1]; + var b1 = prop.valueMin[2]; + var b2 = prop.valueMax[2]; + var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3]; + var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3]; + var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)]; + flatProp = { + // colours are simple, so just create the flat property instead of expensive string parsing + bypass: prop.bypass, + // we're a bypass if the mapping property is a bypass + name: prop.name, + value: clr, + strValue: 'rgb(' + clr[0] + ', ' + clr[1] + ', ' + clr[2] + ')' + }; + } else if (type.number) { + var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent; + flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping); + } else { + return false; // can only map to colours and numbers + } + + if (!flatProp) { + // if we can't flatten the property, then don't apply the property and fall back on the existing style + printMappingErr(); + return false; + } + + flatProp.mapping = prop; // keep a reference to the mapping + + prop = flatProp; // the flattened (mapped) property is the one we want + + break; + } + // direct mapping + + case types.data: + { + // flatten the field (e.g. data.foo.bar) + var _fields = prop.field.split('.'); + + var _fieldVal = _p.data; + + for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) { + var _field = _fields[_i3]; + _fieldVal = _fieldVal[_field]; + } + + if (_fieldVal != null) { + flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping); + } + + if (!flatProp) { + // if we can't flatten the property, then don't apply and fall back on the existing style + printMappingErr(); + return false; + } + + flatProp.mapping = prop; // keep a reference to the mapping + + prop = flatProp; // the flattened (mapped) property is the one we want + + break; + } + + case types.fn: + { + var fn = prop.value; + var fnRetVal = prop.fnValue != null ? prop.fnValue : fn(ele); // check for cached value before calling function + + prop.prevFnValue = fnRetVal; + + if (fnRetVal == null) { + warn('Custom function mappers may not return null (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is null)'); + return false; + } + + flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping); + + if (!flatProp) { + warn('Custom function mappers may not return invalid values for the property type (i.e. `' + prop.name + '` for ele `' + ele.id() + '` is invalid)'); + return false; + } + + flatProp.mapping = copy(prop); // keep a reference to the mapping + + prop = flatProp; // the flattened (mapped) property is the one we want + + break; + } + + case undefined: + break; + // just set the property + + default: + return false; + // not a valid mapping + } // if the property is a bypass property, then link the resultant property to the original one + + + if (propIsBypass) { + if (origPropIsBypass) { + // then this bypass overrides the existing one + prop.bypassed = origProp.bypassed; // steal bypassed prop from old bypass + } else { + // then link the orig prop to the new bypass + prop.bypassed = origProp; + } + + style[prop.name] = prop; // and set + } else { + // prop is not bypass + if (origPropIsBypass) { + // then keep the orig prop (since it's a bypass) and link to the new prop + origProp.bypassed = prop; + } else { + // then just replace the old prop with the new one + style[prop.name] = prop; + } + } + + checkTriggers(); + return true; + }; + + styfn$8.cleanElements = function (eles, keepBypasses) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + this.clearStyleHints(ele); + ele.dirtyCompoundBoundsCache(); + ele.dirtyBoundingBoxCache(); + + if (!keepBypasses) { + ele._private.style = {}; + } else { + var style = ele._private.style; + var propNames = Object.keys(style); + + for (var j = 0; j < propNames.length; j++) { + var propName = propNames[j]; + var eleProp = style[propName]; + + if (eleProp != null) { + if (eleProp.bypass) { + eleProp.bypassed = null; + } else { + style[propName] = null; + } + } + } + } + } + }; // updates the visual style for all elements (useful for manual style modification after init) + + + styfn$8.update = function () { + var cy = this._private.cy; + var eles = cy.mutableElements(); + eles.updateStyle(); + }; // diffProps : { name => { prev, next } } + + + styfn$8.updateTransitions = function (ele, diffProps) { + var self = this; + var _p = ele._private; + var props = ele.pstyle('transition-property').value; + var duration = ele.pstyle('transition-duration').pfValue; + var delay = ele.pstyle('transition-delay').pfValue; + + if (props.length > 0 && duration > 0) { + var style = {}; // build up the style to animate towards + + var anyPrev = false; + + for (var i = 0; i < props.length; i++) { + var prop = props[i]; + var styProp = ele.pstyle(prop); + var diffProp = diffProps[prop]; + + if (!diffProp) { + continue; + } + + var prevProp = diffProp.prev; + var fromProp = prevProp; + var toProp = diffProp.next != null ? diffProp.next : styProp; + var diff = false; + var initVal = void 0; + var initDt = 0.000001; // delta time % value for initVal (allows animating out of init zero opacity) + + if (!fromProp) { + continue; + } // consider px values + + + if (number$1(fromProp.pfValue) && number$1(toProp.pfValue)) { + diff = toProp.pfValue - fromProp.pfValue; // nonzero is truthy + + initVal = fromProp.pfValue + initDt * diff; // consider numerical values + } else if (number$1(fromProp.value) && number$1(toProp.value)) { + diff = toProp.value - fromProp.value; // nonzero is truthy + + initVal = fromProp.value + initDt * diff; // consider colour values + } else if (array(fromProp.value) && array(toProp.value)) { + diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2]; + initVal = fromProp.strValue; + } // the previous value is good for an animation only if it's different + + + if (diff) { + style[prop] = toProp.strValue; // to val + + this.applyBypass(ele, prop, initVal); // from val + + anyPrev = true; + } + } // end if props allow ani + // can't transition if there's nothing previous to transition from + + + if (!anyPrev) { + return; + } + + _p.transitioning = true; + new Promise$1(function (resolve) { + if (delay > 0) { + ele.delayAnimation(delay).play().promise().then(resolve); + } else { + resolve(); + } + }).then(function () { + return ele.animation({ + style: style, + duration: duration, + easing: ele.pstyle('transition-timing-function').value, + queue: false + }).play().promise(); + }).then(function () { + // if( !isBypass ){ + self.removeBypasses(ele, props); + ele.emitAndNotify('style'); // } + + _p.transitioning = false; + }); + } else if (_p.transitioning) { + this.removeBypasses(ele, props); + ele.emitAndNotify('style'); + _p.transitioning = false; + } + }; + + styfn$8.checkTrigger = function (ele, name, fromValue, toValue, getTrigger, onTrigger) { + var prop = this.properties[name]; + var triggerCheck = getTrigger(prop); + + if (triggerCheck != null && triggerCheck(fromValue, toValue)) { + onTrigger(prop); + } + }; + + styfn$8.checkZOrderTrigger = function (ele, name, fromValue, toValue) { + var _this = this; + + this.checkTrigger(ele, name, fromValue, toValue, function (prop) { + return prop.triggersZOrder; + }, function () { + _this._private.cy.notify('zorder', ele); + }); + }; + + styfn$8.checkBoundsTrigger = function (ele, name, fromValue, toValue) { + this.checkTrigger(ele, name, fromValue, toValue, function (prop) { + return prop.triggersBounds; + }, function (prop) { + ele.dirtyCompoundBoundsCache(); + ele.dirtyBoundingBoxCache(); // if the prop change makes the bb of pll bezier edges invalid, + // then dirty the pll edge bb cache as well + + if ( // only for beziers -- so performance of other edges isn't affected + prop.triggersBoundsOfParallelBeziers && (name === 'curve-style' && (fromValue === 'bezier' || toValue === 'bezier') || name === 'display' && (fromValue === 'none' || toValue === 'none'))) { + ele.parallelEdges().forEach(function (pllEdge) { + if (pllEdge.isBundledBezier()) { + pllEdge.dirtyBoundingBoxCache(); + } + }); + } + }); + }; + + styfn$8.checkTriggers = function (ele, name, fromValue, toValue) { + ele.dirtyStyleCache(); + this.checkZOrderTrigger(ele, name, fromValue, toValue); + this.checkBoundsTrigger(ele, name, fromValue, toValue); + }; + + var styfn$7 = {}; // bypasses are applied to an existing style on an element, and just tacked on temporarily + // returns true iff application was successful for at least 1 specified property + + styfn$7.applyBypass = function (eles, name, value, updateTransitions) { + var self = this; + var props = []; + var isBypass = true; // put all the properties (can specify one or many) in an array after parsing them + + if (name === '*' || name === '**') { + // apply to all property names + if (value !== undefined) { + for (var i = 0; i < self.properties.length; i++) { + var prop = self.properties[i]; + var _name = prop.name; + var parsedProp = this.parse(_name, value, true); + + if (parsedProp) { + props.push(parsedProp); + } + } + } + } else if (string(name)) { + // then parse the single property + var _parsedProp = this.parse(name, value, true); + + if (_parsedProp) { + props.push(_parsedProp); + } + } else if (plainObject(name)) { + // then parse each property + var specifiedProps = name; + updateTransitions = value; + var names = Object.keys(specifiedProps); + + for (var _i = 0; _i < names.length; _i++) { + var _name2 = names[_i]; + var _value = specifiedProps[_name2]; + + if (_value === undefined) { + // try camel case name too + _value = specifiedProps[dash2camel(_name2)]; + } + + if (_value !== undefined) { + var _parsedProp2 = this.parse(_name2, _value, true); + + if (_parsedProp2) { + props.push(_parsedProp2); + } + } + } + } else { + // can't do anything without well defined properties + return false; + } // we've failed if there are no valid properties + + + if (props.length === 0) { + return false; + } // now, apply the bypass properties on the elements + + + var ret = false; // return true if at least one succesful bypass applied + + for (var _i2 = 0; _i2 < eles.length; _i2++) { + // for each ele + var ele = eles[_i2]; + var diffProps = {}; + var diffProp = void 0; + + for (var j = 0; j < props.length; j++) { + // for each prop + var _prop = props[j]; + + if (updateTransitions) { + var prevProp = ele.pstyle(_prop.name); + diffProp = diffProps[_prop.name] = { + prev: prevProp + }; + } + + ret = this.applyParsedProperty(ele, copy(_prop)) || ret; + + if (updateTransitions) { + diffProp.next = ele.pstyle(_prop.name); + } + } // for props + + + if (ret) { + this.updateStyleHints(ele); + } + + if (updateTransitions) { + this.updateTransitions(ele, diffProps, isBypass); + } + } // for eles + + + return ret; + }; // only useful in specific cases like animation + + + styfn$7.overrideBypass = function (eles, name, value) { + name = camel2dash(name); + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var prop = ele._private.style[name]; + var type = this.properties[name].type; + var isColor = type.color; + var isMulti = type.mutiple; + var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value; + + if (!prop || !prop.bypass) { + // need a bypass if one doesn't exist + this.applyBypass(ele, name, value); + } else { + prop.value = value; + + if (prop.pfValue != null) { + prop.pfValue = value; + } + + if (isColor) { + prop.strValue = 'rgb(' + value.join(',') + ')'; + } else if (isMulti) { + prop.strValue = value.join(' '); + } else { + prop.strValue = '' + value; + } + + this.updateStyleHints(ele); + } + + this.checkTriggers(ele, name, oldValue, value); + } + }; + + styfn$7.removeAllBypasses = function (eles, updateTransitions) { + return this.removeBypasses(eles, this.propertyNames, updateTransitions); + }; + + styfn$7.removeBypasses = function (eles, props, updateTransitions) { + var isBypass = true; + + for (var j = 0; j < eles.length; j++) { + var ele = eles[j]; + var diffProps = {}; + + for (var i = 0; i < props.length; i++) { + var name = props[i]; + var prop = this.properties[name]; + var prevProp = ele.pstyle(prop.name); + + if (!prevProp || !prevProp.bypass) { + // if a bypass doesn't exist for the prop, nothing needs to be removed + continue; + } + + var value = ''; // empty => remove bypass + + var parsedProp = this.parse(name, value, true); + var diffProp = diffProps[prop.name] = { + prev: prevProp + }; + this.applyParsedProperty(ele, parsedProp); + diffProp.next = ele.pstyle(prop.name); + } // for props + + + this.updateStyleHints(ele); + + if (updateTransitions) { + this.updateTransitions(ele, diffProps, isBypass); + } + } // for eles + + }; + + var styfn$6 = {}; // gets what an em size corresponds to in pixels relative to a dom element + + styfn$6.getEmSizeInPixels = function () { + var px = this.containerCss('font-size'); + + if (px != null) { + return parseFloat(px); + } else { + return 1; // for headless + } + }; // gets css property from the core container + + + styfn$6.containerCss = function (propName) { + var cy = this._private.cy; + var domElement = cy.container(); + var containerWindow = cy.window(); + + if (containerWindow && domElement && containerWindow.getComputedStyle) { + return containerWindow.getComputedStyle(domElement).getPropertyValue(propName); + } + }; + + var styfn$5 = {}; // gets the rendered style for an element + + styfn$5.getRenderedStyle = function (ele, prop) { + if (prop) { + return this.getStylePropertyValue(ele, prop, true); + } else { + return this.getRawStyle(ele, true); + } + }; // gets the raw style for an element + + + styfn$5.getRawStyle = function (ele, isRenderedVal) { + var self = this; + ele = ele[0]; // insure it's an element + + if (ele) { + var rstyle = {}; + + for (var i = 0; i < self.properties.length; i++) { + var prop = self.properties[i]; + var val = self.getStylePropertyValue(ele, prop.name, isRenderedVal); + + if (val != null) { + rstyle[prop.name] = val; + rstyle[dash2camel(prop.name)] = val; + } + } + + return rstyle; + } + }; + + styfn$5.getIndexedStyle = function (ele, property, subproperty, index) { + var pstyle = ele.pstyle(property)[subproperty][index]; + return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property)[subproperty][0]; + }; + + styfn$5.getStylePropertyValue = function (ele, propName, isRenderedVal) { + var self = this; + ele = ele[0]; // insure it's an element + + if (ele) { + var prop = self.properties[propName]; + + if (prop.alias) { + prop = prop.pointsTo; + } + + var type = prop.type; + var styleProp = ele.pstyle(prop.name); + + if (styleProp) { + var value = styleProp.value, + units = styleProp.units, + strValue = styleProp.strValue; + + if (isRenderedVal && type.number && value != null && number$1(value)) { + var zoom = ele.cy().zoom(); + + var getRenderedValue = function getRenderedValue(val) { + return val * zoom; + }; + + var getValueStringWithUnits = function getValueStringWithUnits(val, units) { + return getRenderedValue(val) + units; + }; + + var isArrayValue = array(value); + var haveUnits = isArrayValue ? units.every(function (u) { + return u != null; + }) : units != null; + + if (haveUnits) { + if (isArrayValue) { + return value.map(function (v, i) { + return getValueStringWithUnits(v, units[i]); + }).join(' '); + } else { + return getValueStringWithUnits(value, units); + } + } else { + if (isArrayValue) { + return value.map(function (v) { + return string(v) ? v : '' + getRenderedValue(v); + }).join(' '); + } else { + return '' + getRenderedValue(value); + } + } + } else if (strValue != null) { + return strValue; + } + } + + return null; + } + }; + + styfn$5.getAnimationStartStyle = function (ele, aniProps) { + var rstyle = {}; + + for (var i = 0; i < aniProps.length; i++) { + var aniProp = aniProps[i]; + var name = aniProp.name; + var styleProp = ele.pstyle(name); + + if (styleProp !== undefined) { + // then make a prop of it + if (plainObject(styleProp)) { + styleProp = this.parse(name, styleProp.strValue); + } else { + styleProp = this.parse(name, styleProp); + } + } + + if (styleProp) { + rstyle[name] = styleProp; + } + } + + return rstyle; + }; + + styfn$5.getPropsList = function (propsObj) { + var self = this; + var rstyle = []; + var style = propsObj; + var props = self.properties; + + if (style) { + var names = Object.keys(style); + + for (var i = 0; i < names.length; i++) { + var name = names[i]; + var val = style[name]; + var prop = props[name] || props[camel2dash(name)]; + var styleProp = this.parse(prop.name, val); + + if (styleProp) { + rstyle.push(styleProp); + } + } + } + + return rstyle; + }; + + styfn$5.getNonDefaultPropertiesHash = function (ele, propNames, seed) { + var hash = seed.slice(); + var name, val, strVal, chVal; + var i, j; + + for (i = 0; i < propNames.length; i++) { + name = propNames[i]; + val = ele.pstyle(name, false); + + if (val == null) { + continue; + } else if (val.pfValue != null) { + hash[0] = hashInt(chVal, hash[0]); + hash[1] = hashIntAlt(chVal, hash[1]); + } else { + strVal = val.strValue; + + for (j = 0; j < strVal.length; j++) { + chVal = strVal.charCodeAt(j); + hash[0] = hashInt(chVal, hash[0]); + hash[1] = hashIntAlt(chVal, hash[1]); + } + } + } + + return hash; + }; + + styfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash; + + var styfn$4 = {}; + + styfn$4.appendFromJson = function (json) { + var style = this; + + for (var i = 0; i < json.length; i++) { + var context = json[i]; + var selector = context.selector; + var props = context.style || context.css; + var names = Object.keys(props); + style.selector(selector); // apply selector + + for (var j = 0; j < names.length; j++) { + var name = names[j]; + var value = props[name]; + style.css(name, value); // apply property + } + } + + return style; + }; // accessible cy.style() function + + + styfn$4.fromJson = function (json) { + var style = this; + style.resetToDefault(); + style.appendFromJson(json); + return style; + }; // get json from cy.style() api + + + styfn$4.json = function () { + var json = []; + + for (var i = this.defaultLength; i < this.length; i++) { + var cxt = this[i]; + var selector = cxt.selector; + var props = cxt.properties; + var css = {}; + + for (var j = 0; j < props.length; j++) { + var prop = props[j]; + css[prop.name] = prop.strValue; + } + + json.push({ + selector: !selector ? 'core' : selector.toString(), + style: css + }); + } + + return json; + }; + + var styfn$3 = {}; + + styfn$3.appendFromString = function (string) { + var self = this; + var style = this; + var remaining = '' + string; + var selAndBlockStr; + var blockRem; + var propAndValStr; // remove comments from the style string + + remaining = remaining.replace(/[/][*](\s|.)+?[*][/]/g, ''); + + function removeSelAndBlockFromRemaining() { + // remove the parsed selector and block from the remaining text to parse + if (remaining.length > selAndBlockStr.length) { + remaining = remaining.substr(selAndBlockStr.length); + } else { + remaining = ''; + } + } + + function removePropAndValFromRem() { + // remove the parsed property and value from the remaining block text to parse + if (blockRem.length > propAndValStr.length) { + blockRem = blockRem.substr(propAndValStr.length); + } else { + blockRem = ''; + } + } + + for (;;) { + var nothingLeftToParse = remaining.match(/^\s*$/); + + if (nothingLeftToParse) { + break; + } + + var selAndBlock = remaining.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/); + + if (!selAndBlock) { + warn('Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: ' + remaining); + break; + } + + selAndBlockStr = selAndBlock[0]; // parse the selector + + var selectorStr = selAndBlock[1]; + + if (selectorStr !== 'core') { + var selector = new Selector(selectorStr); + + if (selector.invalid) { + warn('Skipping parsing of block: Invalid selector found in string stylesheet: ' + selectorStr); // skip this selector and block + + removeSelAndBlockFromRemaining(); + continue; + } + } // parse the block of properties and values + + + var blockStr = selAndBlock[2]; + var invalidBlock = false; + blockRem = blockStr; + var props = []; + + for (;;) { + var _nothingLeftToParse = blockRem.match(/^\s*$/); + + if (_nothingLeftToParse) { + break; + } + + var propAndVal = blockRem.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/); + + if (!propAndVal) { + warn('Skipping parsing of block: Invalid formatting of style property and value definitions found in:' + blockStr); + invalidBlock = true; + break; + } + + propAndValStr = propAndVal[0]; + var propStr = propAndVal[1]; + var valStr = propAndVal[2]; + var prop = self.properties[propStr]; + + if (!prop) { + warn('Skipping property: Invalid property name in: ' + propAndValStr); // skip this property in the block + + removePropAndValFromRem(); + continue; + } + + var parsedProp = style.parse(propStr, valStr); + + if (!parsedProp) { + warn('Skipping property: Invalid property definition in: ' + propAndValStr); // skip this property in the block + + removePropAndValFromRem(); + continue; + } + + props.push({ + name: propStr, + val: valStr + }); + removePropAndValFromRem(); + } + + if (invalidBlock) { + removeSelAndBlockFromRemaining(); + break; + } // put the parsed block in the style + + + style.selector(selectorStr); + + for (var i = 0; i < props.length; i++) { + var _prop = props[i]; + style.css(_prop.name, _prop.val); + } + + removeSelAndBlockFromRemaining(); + } + + return style; + }; + + styfn$3.fromString = function (string) { + var style = this; + style.resetToDefault(); + style.appendFromString(string); + return style; + }; + + var styfn$2 = {}; + + (function () { + var number$1 = number; + var rgba = rgbaNoBackRefs; + var hsla = hslaNoBackRefs; + var hex3$1 = hex3; + var hex6$1 = hex6; + + var data = function data(prefix) { + return '^' + prefix + '\\s*\\(\\s*([\\w\\.]+)\\s*\\)$'; + }; + + var mapData = function mapData(prefix) { + var mapArg = number$1 + '|\\w+|' + rgba + '|' + hsla + '|' + hex3$1 + '|' + hex6$1; + return '^' + prefix + '\\s*\\(([\\w\\.]+)\\s*\\,\\s*(' + number$1 + ')\\s*\\,\\s*(' + number$1 + ')\\s*,\\s*(' + mapArg + ')\\s*\\,\\s*(' + mapArg + ')\\)$'; + }; + + var urlRegexes = ['^url\\s*\\(\\s*[\'"]?(.+?)[\'"]?\\s*\\)$', '^(none)$', '^(.+)$']; // each visual style property has a type and needs to be validated according to it + + styfn$2.types = { + time: { + number: true, + min: 0, + units: 's|ms', + implicitUnits: 'ms' + }, + percent: { + number: true, + min: 0, + max: 100, + units: '%', + implicitUnits: '%' + }, + percentages: { + number: true, + min: 0, + max: 100, + units: '%', + implicitUnits: '%', + multiple: true + }, + zeroOneNumber: { + number: true, + min: 0, + max: 1, + unitless: true + }, + zeroOneNumbers: { + number: true, + min: 0, + max: 1, + unitless: true, + multiple: true + }, + nOneOneNumber: { + number: true, + min: -1, + max: 1, + unitless: true + }, + nonNegativeInt: { + number: true, + min: 0, + integer: true, + unitless: true + }, + position: { + enums: ['parent', 'origin'] + }, + nodeSize: { + number: true, + min: 0, + enums: ['label'] + }, + number: { + number: true, + unitless: true + }, + numbers: { + number: true, + unitless: true, + multiple: true + }, + positiveNumber: { + number: true, + unitless: true, + min: 0, + strictMin: true + }, + size: { + number: true, + min: 0 + }, + bidirectionalSize: { + number: true + }, + // allows negative + bidirectionalSizeMaybePercent: { + number: true, + allowPercent: true + }, + // allows negative + bidirectionalSizes: { + number: true, + multiple: true + }, + // allows negative + sizeMaybePercent: { + number: true, + min: 0, + allowPercent: true + }, + axisDirection: { + enums: ['horizontal', 'leftward', 'rightward', 'vertical', 'upward', 'downward', 'auto'] + }, + paddingRelativeTo: { + enums: ['width', 'height', 'average', 'min', 'max'] + }, + bgWH: { + number: true, + min: 0, + allowPercent: true, + enums: ['auto'], + multiple: true + }, + bgPos: { + number: true, + allowPercent: true, + multiple: true + }, + bgRelativeTo: { + enums: ['inner', 'include-padding'], + multiple: true + }, + bgRepeat: { + enums: ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'], + multiple: true + }, + bgFit: { + enums: ['none', 'contain', 'cover'], + multiple: true + }, + bgCrossOrigin: { + enums: ['anonymous', 'use-credentials', 'null'], + multiple: true + }, + bgClip: { + enums: ['none', 'node'], + multiple: true + }, + bgContainment: { + enums: ['inside', 'over'], + multiple: true + }, + color: { + color: true + }, + colors: { + color: true, + multiple: true + }, + fill: { + enums: ['solid', 'linear-gradient', 'radial-gradient'] + }, + bool: { + enums: ['yes', 'no'] + }, + bools: { + enums: ['yes', 'no'], + multiple: true + }, + lineStyle: { + enums: ['solid', 'dotted', 'dashed'] + }, + lineCap: { + enums: ['butt', 'round', 'square'] + }, + borderStyle: { + enums: ['solid', 'dotted', 'dashed', 'double'] + }, + curveStyle: { + enums: ['bezier', 'unbundled-bezier', 'haystack', 'segments', 'straight', 'straight-triangle', 'taxi'] + }, + fontFamily: { + regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$' + }, + fontStyle: { + enums: ['italic', 'normal', 'oblique'] + }, + fontWeight: { + enums: ['normal', 'bold', 'bolder', 'lighter', '100', '200', '300', '400', '500', '600', '800', '900', 100, 200, 300, 400, 500, 600, 700, 800, 900] + }, + textDecoration: { + enums: ['none', 'underline', 'overline', 'line-through'] + }, + textTransform: { + enums: ['none', 'uppercase', 'lowercase'] + }, + textWrap: { + enums: ['none', 'wrap', 'ellipsis'] + }, + textOverflowWrap: { + enums: ['whitespace', 'anywhere'] + }, + textBackgroundShape: { + enums: ['rectangle', 'roundrectangle', 'round-rectangle'] + }, + nodeShape: { + enums: ['rectangle', 'roundrectangle', 'round-rectangle', 'cutrectangle', 'cut-rectangle', 'bottomroundrectangle', 'bottom-round-rectangle', 'barrel', 'ellipse', 'triangle', 'round-triangle', 'square', 'pentagon', 'round-pentagon', 'hexagon', 'round-hexagon', 'concavehexagon', 'concave-hexagon', 'heptagon', 'round-heptagon', 'octagon', 'round-octagon', 'tag', 'round-tag', 'star', 'diamond', 'round-diamond', 'vee', 'rhomboid', 'right-rhomboid', 'polygon'] + }, + overlayShape: { + enums: ['roundrectangle', 'round-rectangle', 'ellipse'] + }, + compoundIncludeLabels: { + enums: ['include', 'exclude'] + }, + arrowShape: { + enums: ['tee', 'triangle', 'triangle-tee', 'circle-triangle', 'triangle-cross', 'triangle-backcurve', 'vee', 'square', 'circle', 'diamond', 'chevron', 'none'] + }, + arrowFill: { + enums: ['filled', 'hollow'] + }, + display: { + enums: ['element', 'none'] + }, + visibility: { + enums: ['hidden', 'visible'] + }, + zCompoundDepth: { + enums: ['bottom', 'orphan', 'auto', 'top'] + }, + zIndexCompare: { + enums: ['auto', 'manual'] + }, + valign: { + enums: ['top', 'center', 'bottom'] + }, + halign: { + enums: ['left', 'center', 'right'] + }, + justification: { + enums: ['left', 'center', 'right', 'auto'] + }, + text: { + string: true + }, + data: { + mapping: true, + regex: data('data') + }, + layoutData: { + mapping: true, + regex: data('layoutData') + }, + scratch: { + mapping: true, + regex: data('scratch') + }, + mapData: { + mapping: true, + regex: mapData('mapData') + }, + mapLayoutData: { + mapping: true, + regex: mapData('mapLayoutData') + }, + mapScratch: { + mapping: true, + regex: mapData('mapScratch') + }, + fn: { + mapping: true, + fn: true + }, + url: { + regexes: urlRegexes, + singleRegexMatchValue: true + }, + urls: { + regexes: urlRegexes, + singleRegexMatchValue: true, + multiple: true + }, + propList: { + propList: true + }, + angle: { + number: true, + units: 'deg|rad', + implicitUnits: 'rad' + }, + textRotation: { + number: true, + units: 'deg|rad', + implicitUnits: 'rad', + enums: ['none', 'autorotate'] + }, + polygonPointList: { + number: true, + multiple: true, + evenMultiple: true, + min: -1, + max: 1, + unitless: true + }, + edgeDistances: { + enums: ['intersection', 'node-position'] + }, + edgeEndpoint: { + number: true, + multiple: true, + units: '%|px|em|deg|rad', + implicitUnits: 'px', + enums: ['inside-to-node', 'outside-to-node', 'outside-to-node-or-label', 'outside-to-line', 'outside-to-line-or-label'], + singleEnum: true, + validate: function validate(valArr, unitsArr) { + switch (valArr.length) { + case 2: + // can be % or px only + return unitsArr[0] !== 'deg' && unitsArr[0] !== 'rad' && unitsArr[1] !== 'deg' && unitsArr[1] !== 'rad'; + + case 1: + // can be enum, deg, or rad only + return string(valArr[0]) || unitsArr[0] === 'deg' || unitsArr[0] === 'rad'; + + default: + return false; + } + } + }, + easing: { + regexes: ['^(spring)\\s*\\(\\s*(' + number$1 + ')\\s*,\\s*(' + number$1 + ')\\s*\\)$', '^(cubic-bezier)\\s*\\(\\s*(' + number$1 + ')\\s*,\\s*(' + number$1 + ')\\s*,\\s*(' + number$1 + ')\\s*,\\s*(' + number$1 + ')\\s*\\)$'], + enums: ['linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out', 'ease-in-sine', 'ease-out-sine', 'ease-in-out-sine', 'ease-in-quad', 'ease-out-quad', 'ease-in-out-quad', 'ease-in-cubic', 'ease-out-cubic', 'ease-in-out-cubic', 'ease-in-quart', 'ease-out-quart', 'ease-in-out-quart', 'ease-in-quint', 'ease-out-quint', 'ease-in-out-quint', 'ease-in-expo', 'ease-out-expo', 'ease-in-out-expo', 'ease-in-circ', 'ease-out-circ', 'ease-in-out-circ'] + }, + gradientDirection: { + enums: ['to-bottom', 'to-top', 'to-left', 'to-right', 'to-bottom-right', 'to-bottom-left', 'to-top-right', 'to-top-left', 'to-right-bottom', 'to-left-bottom', 'to-right-top', 'to-left-top' // different order + ] + }, + boundsExpansion: { + number: true, + multiple: true, + min: 0, + validate: function validate(valArr) { + var length = valArr.length; + return length === 1 || length === 2 || length === 4; + } + } + }; + var diff = { + zeroNonZero: function zeroNonZero(val1, val2) { + if ((val1 == null || val2 == null) && val1 !== val2) { + return true; // null cases could represent any value + } + + if (val1 == 0 && val2 != 0) { + return true; + } else if (val1 != 0 && val2 == 0) { + return true; + } else { + return false; + } + }, + any: function any(val1, val2) { + return val1 != val2; + }, + emptyNonEmpty: function emptyNonEmpty(str1, str2) { + var empty1 = emptyString(str1); + var empty2 = emptyString(str2); + return empty1 && !empty2 || !empty1 && empty2; + } + }; // define visual style properties + // + // - n.b. adding a new group of props may require updates to updateStyleHints() + // - adding new props to an existing group gets handled automatically + + var t = styfn$2.types; + var mainLabel = [{ + name: 'label', + type: t.text, + triggersBounds: diff.any, + triggersZOrder: diff.emptyNonEmpty + }, { + name: 'text-rotation', + type: t.textRotation, + triggersBounds: diff.any + }, { + name: 'text-margin-x', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'text-margin-y', + type: t.bidirectionalSize, + triggersBounds: diff.any + }]; + var sourceLabel = [{ + name: 'source-label', + type: t.text, + triggersBounds: diff.any + }, { + name: 'source-text-rotation', + type: t.textRotation, + triggersBounds: diff.any + }, { + name: 'source-text-margin-x', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'source-text-margin-y', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'source-text-offset', + type: t.size, + triggersBounds: diff.any + }]; + var targetLabel = [{ + name: 'target-label', + type: t.text, + triggersBounds: diff.any + }, { + name: 'target-text-rotation', + type: t.textRotation, + triggersBounds: diff.any + }, { + name: 'target-text-margin-x', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'target-text-margin-y', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'target-text-offset', + type: t.size, + triggersBounds: diff.any + }]; + var labelDimensions = [{ + name: 'font-family', + type: t.fontFamily, + triggersBounds: diff.any + }, { + name: 'font-style', + type: t.fontStyle, + triggersBounds: diff.any + }, { + name: 'font-weight', + type: t.fontWeight, + triggersBounds: diff.any + }, { + name: 'font-size', + type: t.size, + triggersBounds: diff.any + }, { + name: 'text-transform', + type: t.textTransform, + triggersBounds: diff.any + }, { + name: 'text-wrap', + type: t.textWrap, + triggersBounds: diff.any + }, { + name: 'text-overflow-wrap', + type: t.textOverflowWrap, + triggersBounds: diff.any + }, { + name: 'text-max-width', + type: t.size, + triggersBounds: diff.any + }, { + name: 'text-outline-width', + type: t.size, + triggersBounds: diff.any + }, { + name: 'line-height', + type: t.positiveNumber, + triggersBounds: diff.any + }]; + var commonLabel = [{ + name: 'text-valign', + type: t.valign, + triggersBounds: diff.any + }, { + name: 'text-halign', + type: t.halign, + triggersBounds: diff.any + }, { + name: 'color', + type: t.color + }, { + name: 'text-outline-color', + type: t.color + }, { + name: 'text-outline-opacity', + type: t.zeroOneNumber + }, { + name: 'text-background-color', + type: t.color + }, { + name: 'text-background-opacity', + type: t.zeroOneNumber + }, { + name: 'text-background-padding', + type: t.size, + triggersBounds: diff.any + }, { + name: 'text-border-opacity', + type: t.zeroOneNumber + }, { + name: 'text-border-color', + type: t.color + }, { + name: 'text-border-width', + type: t.size, + triggersBounds: diff.any + }, { + name: 'text-border-style', + type: t.borderStyle, + triggersBounds: diff.any + }, { + name: 'text-background-shape', + type: t.textBackgroundShape, + triggersBounds: diff.any + }, { + name: 'text-justification', + type: t.justification + }]; + var behavior = [{ + name: 'events', + type: t.bool + }, { + name: 'text-events', + type: t.bool + }]; + var visibility = [{ + name: 'display', + type: t.display, + triggersZOrder: diff.any, + triggersBounds: diff.any, + triggersBoundsOfParallelBeziers: true + }, { + name: 'visibility', + type: t.visibility, + triggersZOrder: diff.any + }, { + name: 'opacity', + type: t.zeroOneNumber, + triggersZOrder: diff.zeroNonZero + }, { + name: 'text-opacity', + type: t.zeroOneNumber + }, { + name: 'min-zoomed-font-size', + type: t.size + }, { + name: 'z-compound-depth', + type: t.zCompoundDepth, + triggersZOrder: diff.any + }, { + name: 'z-index-compare', + type: t.zIndexCompare, + triggersZOrder: diff.any + }, { + name: 'z-index', + type: t.nonNegativeInt, + triggersZOrder: diff.any + }]; + var overlay = [{ + name: 'overlay-padding', + type: t.size, + triggersBounds: diff.any + }, { + name: 'overlay-color', + type: t.color + }, { + name: 'overlay-opacity', + type: t.zeroOneNumber, + triggersBounds: diff.zeroNonZero + }, { + name: 'overlay-shape', + type: t.overlayShape, + triggersBounds: diff.any + }]; + var underlay = [{ + name: 'underlay-padding', + type: t.size, + triggersBounds: diff.any + }, { + name: 'underlay-color', + type: t.color + }, { + name: 'underlay-opacity', + type: t.zeroOneNumber, + triggersBounds: diff.zeroNonZero + }, { + name: 'underlay-shape', + type: t.overlayShape, + triggersBounds: diff.any + }]; + var transition = [{ + name: 'transition-property', + type: t.propList + }, { + name: 'transition-duration', + type: t.time + }, { + name: 'transition-delay', + type: t.time + }, { + name: 'transition-timing-function', + type: t.easing + }]; + + var nodeSizeHashOverride = function nodeSizeHashOverride(ele, parsedProp) { + if (parsedProp.value === 'label') { + return -ele.poolIndex(); // no hash key hits is using label size (hitrate for perf probably low anyway) + } else { + return parsedProp.pfValue; + } + }; + + var nodeBody = [{ + name: 'height', + type: t.nodeSize, + triggersBounds: diff.any, + hashOverride: nodeSizeHashOverride + }, { + name: 'width', + type: t.nodeSize, + triggersBounds: diff.any, + hashOverride: nodeSizeHashOverride + }, { + name: 'shape', + type: t.nodeShape, + triggersBounds: diff.any + }, { + name: 'shape-polygon-points', + type: t.polygonPointList, + triggersBounds: diff.any + }, { + name: 'background-color', + type: t.color + }, { + name: 'background-fill', + type: t.fill + }, { + name: 'background-opacity', + type: t.zeroOneNumber + }, { + name: 'background-blacken', + type: t.nOneOneNumber + }, { + name: 'background-gradient-stop-colors', + type: t.colors + }, { + name: 'background-gradient-stop-positions', + type: t.percentages + }, { + name: 'background-gradient-direction', + type: t.gradientDirection + }, { + name: 'padding', + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: 'padding-relative-to', + type: t.paddingRelativeTo, + triggersBounds: diff.any + }, { + name: 'bounds-expansion', + type: t.boundsExpansion, + triggersBounds: diff.any + }]; + var nodeBorder = [{ + name: 'border-color', + type: t.color + }, { + name: 'border-opacity', + type: t.zeroOneNumber + }, { + name: 'border-width', + type: t.size, + triggersBounds: diff.any + }, { + name: 'border-style', + type: t.borderStyle + }]; + var backgroundImage = [{ + name: 'background-image', + type: t.urls + }, { + name: 'background-image-crossorigin', + type: t.bgCrossOrigin + }, { + name: 'background-image-opacity', + type: t.zeroOneNumbers + }, { + name: 'background-image-containment', + type: t.bgContainment + }, { + name: 'background-image-smoothing', + type: t.bools + }, { + name: 'background-position-x', + type: t.bgPos + }, { + name: 'background-position-y', + type: t.bgPos + }, { + name: 'background-width-relative-to', + type: t.bgRelativeTo + }, { + name: 'background-height-relative-to', + type: t.bgRelativeTo + }, { + name: 'background-repeat', + type: t.bgRepeat + }, { + name: 'background-fit', + type: t.bgFit + }, { + name: 'background-clip', + type: t.bgClip + }, { + name: 'background-width', + type: t.bgWH + }, { + name: 'background-height', + type: t.bgWH + }, { + name: 'background-offset-x', + type: t.bgPos + }, { + name: 'background-offset-y', + type: t.bgPos + }]; + var compound = [{ + name: 'position', + type: t.position, + triggersBounds: diff.any + }, { + name: 'compound-sizing-wrt-labels', + type: t.compoundIncludeLabels, + triggersBounds: diff.any + }, { + name: 'min-width', + type: t.size, + triggersBounds: diff.any + }, { + name: 'min-width-bias-left', + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: 'min-width-bias-right', + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: 'min-height', + type: t.size, + triggersBounds: diff.any + }, { + name: 'min-height-bias-top', + type: t.sizeMaybePercent, + triggersBounds: diff.any + }, { + name: 'min-height-bias-bottom', + type: t.sizeMaybePercent, + triggersBounds: diff.any + }]; + var edgeLine = [{ + name: 'line-style', + type: t.lineStyle + }, { + name: 'line-color', + type: t.color + }, { + name: 'line-fill', + type: t.fill + }, { + name: 'line-cap', + type: t.lineCap + }, { + name: 'line-opacity', + type: t.zeroOneNumber + }, { + name: 'line-dash-pattern', + type: t.numbers + }, { + name: 'line-dash-offset', + type: t.number + }, { + name: 'line-gradient-stop-colors', + type: t.colors + }, { + name: 'line-gradient-stop-positions', + type: t.percentages + }, { + name: 'curve-style', + type: t.curveStyle, + triggersBounds: diff.any, + triggersBoundsOfParallelBeziers: true + }, { + name: 'haystack-radius', + type: t.zeroOneNumber, + triggersBounds: diff.any + }, { + name: 'source-endpoint', + type: t.edgeEndpoint, + triggersBounds: diff.any + }, { + name: 'target-endpoint', + type: t.edgeEndpoint, + triggersBounds: diff.any + }, { + name: 'control-point-step-size', + type: t.size, + triggersBounds: diff.any + }, { + name: 'control-point-distances', + type: t.bidirectionalSizes, + triggersBounds: diff.any + }, { + name: 'control-point-weights', + type: t.numbers, + triggersBounds: diff.any + }, { + name: 'segment-distances', + type: t.bidirectionalSizes, + triggersBounds: diff.any + }, { + name: 'segment-weights', + type: t.numbers, + triggersBounds: diff.any + }, { + name: 'taxi-turn', + type: t.bidirectionalSizeMaybePercent, + triggersBounds: diff.any + }, { + name: 'taxi-turn-min-distance', + type: t.size, + triggersBounds: diff.any + }, { + name: 'taxi-direction', + type: t.axisDirection, + triggersBounds: diff.any + }, { + name: 'edge-distances', + type: t.edgeDistances, + triggersBounds: diff.any + }, { + name: 'arrow-scale', + type: t.positiveNumber, + triggersBounds: diff.any + }, { + name: 'loop-direction', + type: t.angle, + triggersBounds: diff.any + }, { + name: 'loop-sweep', + type: t.angle, + triggersBounds: diff.any + }, { + name: 'source-distance-from-node', + type: t.size, + triggersBounds: diff.any + }, { + name: 'target-distance-from-node', + type: t.size, + triggersBounds: diff.any + }]; + var ghost = [{ + name: 'ghost', + type: t.bool, + triggersBounds: diff.any + }, { + name: 'ghost-offset-x', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'ghost-offset-y', + type: t.bidirectionalSize, + triggersBounds: diff.any + }, { + name: 'ghost-opacity', + type: t.zeroOneNumber + }]; + var core = [{ + name: 'selection-box-color', + type: t.color + }, { + name: 'selection-box-opacity', + type: t.zeroOneNumber + }, { + name: 'selection-box-border-color', + type: t.color + }, { + name: 'selection-box-border-width', + type: t.size + }, { + name: 'active-bg-color', + type: t.color + }, { + name: 'active-bg-opacity', + type: t.zeroOneNumber + }, { + name: 'active-bg-size', + type: t.size + }, { + name: 'outside-texture-bg-color', + type: t.color + }, { + name: 'outside-texture-bg-opacity', + type: t.zeroOneNumber + }]; // pie backgrounds for nodes + + var pie = []; + styfn$2.pieBackgroundN = 16; // because the pie properties are numbered, give access to a constant N (for renderer use) + + pie.push({ + name: 'pie-size', + type: t.sizeMaybePercent + }); + + for (var i = 1; i <= styfn$2.pieBackgroundN; i++) { + pie.push({ + name: 'pie-' + i + '-background-color', + type: t.color + }); + pie.push({ + name: 'pie-' + i + '-background-size', + type: t.percent + }); + pie.push({ + name: 'pie-' + i + '-background-opacity', + type: t.zeroOneNumber + }); + } // edge arrows + + + var edgeArrow = []; + var arrowPrefixes = styfn$2.arrowPrefixes = ['source', 'mid-source', 'target', 'mid-target']; + [{ + name: 'arrow-shape', + type: t.arrowShape, + triggersBounds: diff.any + }, { + name: 'arrow-color', + type: t.color + }, { + name: 'arrow-fill', + type: t.arrowFill + }].forEach(function (prop) { + arrowPrefixes.forEach(function (prefix) { + var name = prefix + '-' + prop.name; + var type = prop.type, + triggersBounds = prop.triggersBounds; + edgeArrow.push({ + name: name, + type: type, + triggersBounds: triggersBounds + }); + }); + }, {}); + var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, backgroundImage, pie, compound, edgeLine, edgeArrow, core); + var propGroups = styfn$2.propertyGroups = { + // common to all eles + behavior: behavior, + transition: transition, + visibility: visibility, + overlay: overlay, + underlay: underlay, + ghost: ghost, + // labels + commonLabel: commonLabel, + labelDimensions: labelDimensions, + mainLabel: mainLabel, + sourceLabel: sourceLabel, + targetLabel: targetLabel, + // node props + nodeBody: nodeBody, + nodeBorder: nodeBorder, + backgroundImage: backgroundImage, + pie: pie, + compound: compound, + // edge props + edgeLine: edgeLine, + edgeArrow: edgeArrow, + core: core + }; + var propGroupNames = styfn$2.propertyGroupNames = {}; + var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups); + propGroupKeys.forEach(function (key) { + propGroupNames[key] = propGroups[key].map(function (prop) { + return prop.name; + }); + propGroups[key].forEach(function (prop) { + return prop.groupKey = key; + }); + }); // define aliases + + var aliases = styfn$2.aliases = [{ + name: 'content', + pointsTo: 'label' + }, { + name: 'control-point-distance', + pointsTo: 'control-point-distances' + }, { + name: 'control-point-weight', + pointsTo: 'control-point-weights' + }, { + name: 'edge-text-rotation', + pointsTo: 'text-rotation' + }, { + name: 'padding-left', + pointsTo: 'padding' + }, { + name: 'padding-right', + pointsTo: 'padding' + }, { + name: 'padding-top', + pointsTo: 'padding' + }, { + name: 'padding-bottom', + pointsTo: 'padding' + }]; // list of property names + + styfn$2.propertyNames = props.map(function (p) { + return p.name; + }); // allow access of properties by name ( e.g. style.properties.height ) + + for (var _i = 0; _i < props.length; _i++) { + var prop = props[_i]; + props[prop.name] = prop; // allow lookup by name + } // map aliases + + + for (var _i2 = 0; _i2 < aliases.length; _i2++) { + var alias = aliases[_i2]; + var pointsToProp = props[alias.pointsTo]; + var aliasProp = { + name: alias.name, + alias: true, + pointsTo: pointsToProp + }; // add alias prop for parsing + + props.push(aliasProp); + props[alias.name] = aliasProp; // allow lookup by name + } + })(); + + styfn$2.getDefaultProperty = function (name) { + return this.getDefaultProperties()[name]; + }; + + styfn$2.getDefaultProperties = function () { + var _p = this._private; + + if (_p.defaultProperties != null) { + return _p.defaultProperties; + } + + var rawProps = extend({ + // core props + 'selection-box-color': '#ddd', + 'selection-box-opacity': 0.65, + 'selection-box-border-color': '#aaa', + 'selection-box-border-width': 1, + 'active-bg-color': 'black', + 'active-bg-opacity': 0.15, + 'active-bg-size': 30, + 'outside-texture-bg-color': '#000', + 'outside-texture-bg-opacity': 0.125, + // common node/edge props + 'events': 'yes', + 'text-events': 'no', + 'text-valign': 'top', + 'text-halign': 'center', + 'text-justification': 'auto', + 'line-height': 1, + 'color': '#000', + 'text-outline-color': '#000', + 'text-outline-width': 0, + 'text-outline-opacity': 1, + 'text-opacity': 1, + 'text-decoration': 'none', + 'text-transform': 'none', + 'text-wrap': 'none', + 'text-overflow-wrap': 'whitespace', + 'text-max-width': 9999, + 'text-background-color': '#000', + 'text-background-opacity': 0, + 'text-background-shape': 'rectangle', + 'text-background-padding': 0, + 'text-border-opacity': 0, + 'text-border-width': 0, + 'text-border-style': 'solid', + 'text-border-color': '#000', + 'font-family': 'Helvetica Neue, Helvetica, sans-serif', + 'font-style': 'normal', + 'font-weight': 'normal', + 'font-size': 16, + 'min-zoomed-font-size': 0, + 'text-rotation': 'none', + 'source-text-rotation': 'none', + 'target-text-rotation': 'none', + 'visibility': 'visible', + 'display': 'element', + 'opacity': 1, + 'z-compound-depth': 'auto', + 'z-index-compare': 'auto', + 'z-index': 0, + 'label': '', + 'text-margin-x': 0, + 'text-margin-y': 0, + 'source-label': '', + 'source-text-offset': 0, + 'source-text-margin-x': 0, + 'source-text-margin-y': 0, + 'target-label': '', + 'target-text-offset': 0, + 'target-text-margin-x': 0, + 'target-text-margin-y': 0, + 'overlay-opacity': 0, + 'overlay-color': '#000', + 'overlay-padding': 10, + 'overlay-shape': 'round-rectangle', + 'underlay-opacity': 0, + 'underlay-color': '#000', + 'underlay-padding': 10, + 'underlay-shape': 'round-rectangle', + 'transition-property': 'none', + 'transition-duration': 0, + 'transition-delay': 0, + 'transition-timing-function': 'linear', + // node props + 'background-blacken': 0, + 'background-color': '#999', + 'background-fill': 'solid', + 'background-opacity': 1, + 'background-image': 'none', + 'background-image-crossorigin': 'anonymous', + 'background-image-opacity': 1, + 'background-image-containment': 'inside', + 'background-image-smoothing': 'yes', + 'background-position-x': '50%', + 'background-position-y': '50%', + 'background-offset-x': 0, + 'background-offset-y': 0, + 'background-width-relative-to': 'include-padding', + 'background-height-relative-to': 'include-padding', + 'background-repeat': 'no-repeat', + 'background-fit': 'none', + 'background-clip': 'node', + 'background-width': 'auto', + 'background-height': 'auto', + 'border-color': '#000', + 'border-opacity': 1, + 'border-width': 0, + 'border-style': 'solid', + 'height': 30, + 'width': 30, + 'shape': 'ellipse', + 'shape-polygon-points': '-1, -1, 1, -1, 1, 1, -1, 1', + 'bounds-expansion': 0, + // node gradient + 'background-gradient-direction': 'to-bottom', + 'background-gradient-stop-colors': '#999', + 'background-gradient-stop-positions': '0%', + // ghost props + 'ghost': 'no', + 'ghost-offset-y': 0, + 'ghost-offset-x': 0, + 'ghost-opacity': 0, + // compound props + 'padding': 0, + 'padding-relative-to': 'width', + 'position': 'origin', + 'compound-sizing-wrt-labels': 'include', + 'min-width': 0, + 'min-width-bias-left': 0, + 'min-width-bias-right': 0, + 'min-height': 0, + 'min-height-bias-top': 0, + 'min-height-bias-bottom': 0 + }, { + // node pie bg + 'pie-size': '100%' + }, [{ + name: 'pie-{{i}}-background-color', + value: 'black' + }, { + name: 'pie-{{i}}-background-size', + value: '0%' + }, { + name: 'pie-{{i}}-background-opacity', + value: 1 + }].reduce(function (css, prop) { + for (var i = 1; i <= styfn$2.pieBackgroundN; i++) { + var name = prop.name.replace('{{i}}', i); + var val = prop.value; + css[name] = val; + } + + return css; + }, {}), { + // edge props + 'line-style': 'solid', + 'line-color': '#999', + 'line-fill': 'solid', + 'line-cap': 'butt', + 'line-opacity': 1, + 'line-gradient-stop-colors': '#999', + 'line-gradient-stop-positions': '0%', + 'control-point-step-size': 40, + 'control-point-weights': 0.5, + 'segment-weights': 0.5, + 'segment-distances': 20, + 'taxi-turn': '50%', + 'taxi-turn-min-distance': 10, + 'taxi-direction': 'auto', + 'edge-distances': 'intersection', + 'curve-style': 'haystack', + 'haystack-radius': 0, + 'arrow-scale': 1, + 'loop-direction': '-45deg', + 'loop-sweep': '-90deg', + 'source-distance-from-node': 0, + 'target-distance-from-node': 0, + 'source-endpoint': 'outside-to-node', + 'target-endpoint': 'outside-to-node', + 'line-dash-pattern': [6, 3], + 'line-dash-offset': 0 + }, [{ + name: 'arrow-shape', + value: 'none' + }, { + name: 'arrow-color', + value: '#999' + }, { + name: 'arrow-fill', + value: 'filled' + }].reduce(function (css, prop) { + styfn$2.arrowPrefixes.forEach(function (prefix) { + var name = prefix + '-' + prop.name; + var val = prop.value; + css[name] = val; + }); + return css; + }, {})); + var parsedProps = {}; + + for (var i = 0; i < this.properties.length; i++) { + var prop = this.properties[i]; + + if (prop.pointsTo) { + continue; + } + + var name = prop.name; + var val = rawProps[name]; + var parsedProp = this.parse(name, val); + parsedProps[name] = parsedProp; + } + + _p.defaultProperties = parsedProps; + return _p.defaultProperties; + }; + + styfn$2.addDefaultStylesheet = function () { + this.selector(':parent').css({ + 'shape': 'rectangle', + 'padding': 10, + 'background-color': '#eee', + 'border-color': '#ccc', + 'border-width': 1 + }).selector('edge').css({ + 'width': 3 + }).selector(':loop').css({ + 'curve-style': 'bezier' + }).selector('edge:compound').css({ + 'curve-style': 'bezier', + 'source-endpoint': 'outside-to-line', + 'target-endpoint': 'outside-to-line' + }).selector(':selected').css({ + 'background-color': '#0169D9', + 'line-color': '#0169D9', + 'source-arrow-color': '#0169D9', + 'target-arrow-color': '#0169D9', + 'mid-source-arrow-color': '#0169D9', + 'mid-target-arrow-color': '#0169D9' + }).selector(':parent:selected').css({ + 'background-color': '#CCE1F9', + 'border-color': '#aec8e5' + }).selector(':active').css({ + 'overlay-color': 'black', + 'overlay-padding': 10, + 'overlay-opacity': 0.25 + }); + this.defaultLength = this.length; + }; + + var styfn$1 = {}; // a caching layer for property parsing + + styfn$1.parse = function (name, value, propIsBypass, propIsFlat) { + var self = this; // function values can't be cached in all cases, and there isn't much benefit of caching them anyway + + if (fn$6(value)) { + return self.parseImplWarn(name, value, propIsBypass, propIsFlat); + } + + var flatKey = propIsFlat === 'mapping' || propIsFlat === true || propIsFlat === false || propIsFlat == null ? 'dontcare' : propIsFlat; + var bypassKey = propIsBypass ? 't' : 'f'; + var valueKey = '' + value; + var argHash = hashStrings(name, valueKey, bypassKey, flatKey); + var propCache = self.propCache = self.propCache || []; + var ret; + + if (!(ret = propCache[argHash])) { + ret = propCache[argHash] = self.parseImplWarn(name, value, propIsBypass, propIsFlat); + } // - bypasses can't be shared b/c the value can be changed by animations or otherwise overridden + // - mappings can't be shared b/c mappings are per-element + + + if (propIsBypass || propIsFlat === 'mapping') { + // need a copy since props are mutated later in their lifecycles + ret = copy(ret); + + if (ret) { + ret.value = copy(ret.value); // because it could be an array, e.g. colour + } + } + + return ret; + }; + + styfn$1.parseImplWarn = function (name, value, propIsBypass, propIsFlat) { + var prop = this.parseImpl(name, value, propIsBypass, propIsFlat); + + if (!prop && value != null) { + warn("The style property `".concat(name, ": ").concat(value, "` is invalid")); + } + + if (prop && (prop.name === 'width' || prop.name === 'height') && value === 'label') { + warn('The style value of `label` is deprecated for `' + prop.name + '`'); + } + + return prop; + }; // parse a property; return null on invalid; return parsed property otherwise + // fields : + // - name : the name of the property + // - value : the parsed, native-typed value of the property + // - strValue : a string value that represents the property value in valid css + // - bypass : true iff the property is a bypass property + + + styfn$1.parseImpl = function (name, value, propIsBypass, propIsFlat) { + var self = this; + name = camel2dash(name); // make sure the property name is in dash form (e.g. 'property-name' not 'propertyName') + + var property = self.properties[name]; + var passedValue = value; + var types = self.types; + + if (!property) { + return null; + } // return null on property of unknown name + + + if (value === undefined) { + return null; + } // can't assign undefined + // the property may be an alias + + + if (property.alias) { + property = property.pointsTo; + name = property.name; + } + + var valueIsString = string(value); + + if (valueIsString) { + // trim the value to make parsing easier + value = value.trim(); + } + + var type = property.type; + + if (!type) { + return null; + } // no type, no luck + // check if bypass is null or empty string (i.e. indication to delete bypass property) + + + if (propIsBypass && (value === '' || value === null)) { + return { + name: name, + value: value, + bypass: true, + deleteBypass: true + }; + } // check if value is a function used as a mapper + + + if (fn$6(value)) { + return { + name: name, + value: value, + strValue: 'fn', + mapped: types.fn, + bypass: propIsBypass + }; + } // check if value is mapped + + + var data, mapData; + + if (!valueIsString || propIsFlat || value.length < 7 || value[1] !== 'a') ; else if (value.length >= 7 && value[0] === 'd' && (data = new RegExp(types.data.regex).exec(value))) { + if (propIsBypass) { + return false; + } // mappers not allowed in bypass + + + var mapped = types.data; + return { + name: name, + value: data, + strValue: '' + value, + mapped: mapped, + field: data[1], + bypass: propIsBypass + }; + } else if (value.length >= 10 && value[0] === 'm' && (mapData = new RegExp(types.mapData.regex).exec(value))) { + if (propIsBypass) { + return false; + } // mappers not allowed in bypass + + + if (type.multiple) { + return false; + } // impossible to map to num + + + var _mapped = types.mapData; // we can map only if the type is a colour or a number + + if (!(type.color || type.number)) { + return false; + } + + var valueMin = this.parse(name, mapData[4]); // parse to validate + + if (!valueMin || valueMin.mapped) { + return false; + } // can't be invalid or mapped + + + var valueMax = this.parse(name, mapData[5]); // parse to validate + + if (!valueMax || valueMax.mapped) { + return false; + } // can't be invalid or mapped + // check if valueMin and valueMax are the same + + + if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) { + warn('`' + name + ': ' + value + '` is not a valid mapper because the output range is zero; converting to `' + name + ': ' + valueMin.strValue + '`'); + return this.parse(name, valueMin.strValue); // can't make much of a mapper without a range + } else if (type.color) { + var c1 = valueMin.value; + var c2 = valueMax.value; + var same = c1[0] === c2[0] // red + && c1[1] === c2[1] // green + && c1[2] === c2[2] // blue + && ( // optional alpha + c1[3] === c2[3] // same alpha outright + || (c1[3] == null || c1[3] === 1 // full opacity for colour 1? + ) && (c2[3] == null || c2[3] === 1) // full opacity for colour 2? + ); + + if (same) { + return false; + } // can't make a mapper without a range + + } + + return { + name: name, + value: mapData, + strValue: '' + value, + mapped: _mapped, + field: mapData[1], + fieldMin: parseFloat(mapData[2]), + // min & max are numeric + fieldMax: parseFloat(mapData[3]), + valueMin: valueMin.value, + valueMax: valueMax.value, + bypass: propIsBypass + }; + } + + if (type.multiple && propIsFlat !== 'multiple') { + var vals; + + if (valueIsString) { + vals = value.split(/\s+/); + } else if (array(value)) { + vals = value; + } else { + vals = [value]; + } + + if (type.evenMultiple && vals.length % 2 !== 0) { + return null; + } + + var valArr = []; + var unitsArr = []; + var pfValArr = []; + var strVal = ''; + var hasEnum = false; + + for (var i = 0; i < vals.length; i++) { + var p = self.parse(name, vals[i], propIsBypass, 'multiple'); + hasEnum = hasEnum || string(p.value); + valArr.push(p.value); + pfValArr.push(p.pfValue != null ? p.pfValue : p.value); + unitsArr.push(p.units); + strVal += (i > 0 ? ' ' : '') + p.strValue; + } + + if (type.validate && !type.validate(valArr, unitsArr)) { + return null; + } + + if (type.singleEnum && hasEnum) { + if (valArr.length === 1 && string(valArr[0])) { + return { + name: name, + value: valArr[0], + strValue: valArr[0], + bypass: propIsBypass + }; + } else { + return null; + } + } + + return { + name: name, + value: valArr, + pfValue: pfValArr, + strValue: strVal, + bypass: propIsBypass, + units: unitsArr + }; + } // several types also allow enums + + + var checkEnums = function checkEnums() { + for (var _i = 0; _i < type.enums.length; _i++) { + var en = type.enums[_i]; + + if (en === value) { + return { + name: name, + value: value, + strValue: '' + value, + bypass: propIsBypass + }; + } + } + + return null; + }; // check the type and return the appropriate object + + + if (type.number) { + var units; + var implicitUnits = 'px'; // not set => px + + if (type.units) { + // use specified units if set + units = type.units; + } + + if (type.implicitUnits) { + implicitUnits = type.implicitUnits; + } + + if (!type.unitless) { + if (valueIsString) { + var unitsRegex = 'px|em' + (type.allowPercent ? '|\\%' : ''); + + if (units) { + unitsRegex = units; + } // only allow explicit units if so set + + + var match = value.match('^(' + number + ')(' + unitsRegex + ')?' + '$'); + + if (match) { + value = match[1]; + units = match[2] || implicitUnits; + } + } else if (!units || type.implicitUnits) { + units = implicitUnits; // implicitly px if unspecified + } + } + + value = parseFloat(value); // if not a number and enums not allowed, then the value is invalid + + if (isNaN(value) && type.enums === undefined) { + return null; + } // check if this number type also accepts special keywords in place of numbers + // (i.e. `left`, `auto`, etc) + + + if (isNaN(value) && type.enums !== undefined) { + value = passedValue; + return checkEnums(); + } // check if value must be an integer + + + if (type.integer && !integer(value)) { + return null; + } // check value is within range + + + if (type.min !== undefined && (value < type.min || type.strictMin && value === type.min) || type.max !== undefined && (value > type.max || type.strictMax && value === type.max)) { + return null; + } + + var ret = { + name: name, + value: value, + strValue: '' + value + (units ? units : ''), + units: units, + bypass: propIsBypass + }; // normalise value in pixels + + if (type.unitless || units !== 'px' && units !== 'em') { + ret.pfValue = value; + } else { + ret.pfValue = units === 'px' || !units ? value : this.getEmSizeInPixels() * value; + } // normalise value in ms + + + if (units === 'ms' || units === 's') { + ret.pfValue = units === 'ms' ? value : 1000 * value; + } // normalise value in rad + + + if (units === 'deg' || units === 'rad') { + ret.pfValue = units === 'rad' ? value : deg2rad(value); + } // normalize value in % + + + if (units === '%') { + ret.pfValue = value / 100; + } + + return ret; + } else if (type.propList) { + var props = []; + var propsStr = '' + value; + + if (propsStr === 'none') ; else { + // go over each prop + var propsSplit = propsStr.split(/\s*,\s*|\s+/); + + for (var _i2 = 0; _i2 < propsSplit.length; _i2++) { + var propName = propsSplit[_i2].trim(); + + if (self.properties[propName]) { + props.push(propName); + } else { + warn('`' + propName + '` is not a valid property name'); + } + } + + if (props.length === 0) { + return null; + } + } + + return { + name: name, + value: props, + strValue: props.length === 0 ? 'none' : props.join(' '), + bypass: propIsBypass + }; + } else if (type.color) { + var tuple = color2tuple(value); + + if (!tuple) { + return null; + } + + return { + name: name, + value: tuple, + pfValue: tuple, + strValue: 'rgb(' + tuple[0] + ',' + tuple[1] + ',' + tuple[2] + ')', + // n.b. no spaces b/c of multiple support + bypass: propIsBypass + }; + } else if (type.regex || type.regexes) { + // first check enums + if (type.enums) { + var enumProp = checkEnums(); + + if (enumProp) { + return enumProp; + } + } + + var regexes = type.regexes ? type.regexes : [type.regex]; + + for (var _i3 = 0; _i3 < regexes.length; _i3++) { + var regex = new RegExp(regexes[_i3]); // make a regex from the type string + + var m = regex.exec(value); + + if (m) { + // regex matches + return { + name: name, + value: type.singleRegexMatchValue ? m[1] : m, + strValue: '' + value, + bypass: propIsBypass + }; + } + } + + return null; // didn't match any + } else if (type.string) { + // just return + return { + name: name, + value: '' + value, + strValue: '' + value, + bypass: propIsBypass + }; + } else if (type.enums) { + // check enums last because it's a combo type in others + return checkEnums(); + } else { + return null; // not a type we can handle + } + }; + + var Style = function Style(cy) { + if (!(this instanceof Style)) { + return new Style(cy); + } + + if (!core(cy)) { + error('A style must have a core reference'); + return; + } + + this._private = { + cy: cy, + coreStyle: {} + }; + this.length = 0; + this.resetToDefault(); + }; + + var styfn = Style.prototype; + + styfn.instanceString = function () { + return 'style'; + }; // remove all contexts + + + styfn.clear = function () { + var _p = this._private; + var cy = _p.cy; + var eles = cy.elements(); + + for (var i = 0; i < this.length; i++) { + this[i] = undefined; + } + + this.length = 0; + _p.contextStyles = {}; + _p.propDiffs = {}; + this.cleanElements(eles, true); + eles.forEach(function (ele) { + var ele_p = ele[0]._private; + ele_p.styleDirty = true; + ele_p.appliedInitStyle = false; + }); + return this; // chaining + }; + + styfn.resetToDefault = function () { + this.clear(); + this.addDefaultStylesheet(); + return this; + }; // builds a style object for the 'core' selector + + + styfn.core = function (propName) { + return this._private.coreStyle[propName] || this.getDefaultProperty(propName); + }; // create a new context from the specified selector string and switch to that context + + + styfn.selector = function (selectorStr) { + // 'core' is a special case and does not need a selector + var selector = selectorStr === 'core' ? null : new Selector(selectorStr); + var i = this.length++; // new context means new index + + this[i] = { + selector: selector, + properties: [], + mappedProperties: [], + index: i + }; + return this; // chaining + }; // add one or many css rules to the current context + + + styfn.css = function () { + var self = this; + var args = arguments; + + if (args.length === 1) { + var map = args[0]; + + for (var i = 0; i < self.properties.length; i++) { + var prop = self.properties[i]; + var mapVal = map[prop.name]; + + if (mapVal === undefined) { + mapVal = map[dash2camel(prop.name)]; + } + + if (mapVal !== undefined) { + this.cssRule(prop.name, mapVal); + } + } + } else if (args.length === 2) { + this.cssRule(args[0], args[1]); + } // do nothing if args are invalid + + + return this; // chaining + }; + + styfn.style = styfn.css; // add a single css rule to the current context + + styfn.cssRule = function (name, value) { + // name-value pair + var property = this.parse(name, value); // add property to current context if valid + + if (property) { + var i = this.length - 1; + this[i].properties.push(property); + this[i].properties[property.name] = property; // allow access by name as well + + if (property.name.match(/pie-(\d+)-background-size/) && property.value) { + this._private.hasPie = true; + } + + if (property.mapped) { + this[i].mappedProperties.push(property); + } // add to core style if necessary + + + var currentSelectorIsCore = !this[i].selector; + + if (currentSelectorIsCore) { + this._private.coreStyle[property.name] = property; + } + } + + return this; // chaining + }; + + styfn.append = function (style) { + if (stylesheet(style)) { + style.appendToStyle(this); + } else if (array(style)) { + this.appendFromJson(style); + } else if (string(style)) { + this.appendFromString(style); + } // you probably wouldn't want to append a Style, since you'd duplicate the default parts + + + return this; + }; // static function + + + Style.fromJson = function (cy, json) { + var style = new Style(cy); + style.fromJson(json); + return style; + }; + + Style.fromString = function (cy, string) { + return new Style(cy).fromString(string); + }; + + [styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function (props) { + extend(styfn, props); + }); + Style.types = styfn.types; + Style.properties = styfn.properties; + Style.propertyGroups = styfn.propertyGroups; + Style.propertyGroupNames = styfn.propertyGroupNames; + Style.propertyGroupKeys = styfn.propertyGroupKeys; + + var corefn$2 = { + style: function style(newStyle) { + if (newStyle) { + var s = this.setStyle(newStyle); + s.update(); + } + + return this._private.style; + }, + setStyle: function setStyle(style) { + var _p = this._private; + + if (stylesheet(style)) { + _p.style = style.generateStyle(this); + } else if (array(style)) { + _p.style = Style.fromJson(this, style); + } else if (string(style)) { + _p.style = Style.fromString(this, style); + } else { + _p.style = Style(this); + } + + return _p.style; + }, + // e.g. cy.data() changed => recalc ele mappers + updateStyle: function updateStyle() { + this.mutableElements().updateStyle(); // just send to all eles + } + }; + + var defaultSelectionType = 'single'; + var corefn$1 = { + autolock: function autolock(bool) { + if (bool !== undefined) { + this._private.autolock = bool ? true : false; + } else { + return this._private.autolock; + } + + return this; // chaining + }, + autoungrabify: function autoungrabify(bool) { + if (bool !== undefined) { + this._private.autoungrabify = bool ? true : false; + } else { + return this._private.autoungrabify; + } + + return this; // chaining + }, + autounselectify: function autounselectify(bool) { + if (bool !== undefined) { + this._private.autounselectify = bool ? true : false; + } else { + return this._private.autounselectify; + } + + return this; // chaining + }, + selectionType: function selectionType(selType) { + var _p = this._private; + + if (_p.selectionType == null) { + _p.selectionType = defaultSelectionType; + } + + if (selType !== undefined) { + if (selType === 'additive' || selType === 'single') { + _p.selectionType = selType; + } + } else { + return _p.selectionType; + } + + return this; + }, + panningEnabled: function panningEnabled(bool) { + if (bool !== undefined) { + this._private.panningEnabled = bool ? true : false; + } else { + return this._private.panningEnabled; + } + + return this; // chaining + }, + userPanningEnabled: function userPanningEnabled(bool) { + if (bool !== undefined) { + this._private.userPanningEnabled = bool ? true : false; + } else { + return this._private.userPanningEnabled; + } + + return this; // chaining + }, + zoomingEnabled: function zoomingEnabled(bool) { + if (bool !== undefined) { + this._private.zoomingEnabled = bool ? true : false; + } else { + return this._private.zoomingEnabled; + } + + return this; // chaining + }, + userZoomingEnabled: function userZoomingEnabled(bool) { + if (bool !== undefined) { + this._private.userZoomingEnabled = bool ? true : false; + } else { + return this._private.userZoomingEnabled; + } + + return this; // chaining + }, + boxSelectionEnabled: function boxSelectionEnabled(bool) { + if (bool !== undefined) { + this._private.boxSelectionEnabled = bool ? true : false; + } else { + return this._private.boxSelectionEnabled; + } + + return this; // chaining + }, + pan: function pan() { + var args = arguments; + var pan = this._private.pan; + var dim, val, dims, x, y; + + switch (args.length) { + case 0: + // .pan() + return pan; + + case 1: + if (string(args[0])) { + // .pan('x') + dim = args[0]; + return pan[dim]; + } else if (plainObject(args[0])) { + // .pan({ x: 0, y: 100 }) + if (!this._private.panningEnabled) { + return this; + } + + dims = args[0]; + x = dims.x; + y = dims.y; + + if (number$1(x)) { + pan.x = x; + } + + if (number$1(y)) { + pan.y = y; + } + + this.emit('pan viewport'); + } + + break; + + case 2: + // .pan('x', 100) + if (!this._private.panningEnabled) { + return this; + } + + dim = args[0]; + val = args[1]; + + if ((dim === 'x' || dim === 'y') && number$1(val)) { + pan[dim] = val; + } + + this.emit('pan viewport'); + break; + // invalid + } + + this.notify('viewport'); + return this; // chaining + }, + panBy: function panBy(arg0, arg1) { + var args = arguments; + var pan = this._private.pan; + var dim, val, dims, x, y; + + if (!this._private.panningEnabled) { + return this; + } + + switch (args.length) { + case 1: + if (plainObject(arg0)) { + // .panBy({ x: 0, y: 100 }) + dims = args[0]; + x = dims.x; + y = dims.y; + + if (number$1(x)) { + pan.x += x; + } + + if (number$1(y)) { + pan.y += y; + } + + this.emit('pan viewport'); + } + + break; + + case 2: + // .panBy('x', 100) + dim = arg0; + val = arg1; + + if ((dim === 'x' || dim === 'y') && number$1(val)) { + pan[dim] += val; + } + + this.emit('pan viewport'); + break; + // invalid + } + + this.notify('viewport'); + return this; // chaining + }, + fit: function fit(elements, padding) { + var viewportState = this.getFitViewport(elements, padding); + + if (viewportState) { + var _p = this._private; + _p.zoom = viewportState.zoom; + _p.pan = viewportState.pan; + this.emit('pan zoom viewport'); + this.notify('viewport'); + } + + return this; // chaining + }, + getFitViewport: function getFitViewport(elements, padding) { + if (number$1(elements) && padding === undefined) { + // elements is optional + padding = elements; + elements = undefined; + } + + if (!this._private.panningEnabled || !this._private.zoomingEnabled) { + return; + } + + var bb; + + if (string(elements)) { + var sel = elements; + elements = this.$(sel); + } else if (boundingBox(elements)) { + // assume bb + var bbe = elements; + bb = { + x1: bbe.x1, + y1: bbe.y1, + x2: bbe.x2, + y2: bbe.y2 + }; + bb.w = bb.x2 - bb.x1; + bb.h = bb.y2 - bb.y1; + } else if (!elementOrCollection(elements)) { + elements = this.mutableElements(); + } + + if (elementOrCollection(elements) && elements.empty()) { + return; + } // can't fit to nothing + + + bb = bb || elements.boundingBox(); + var w = this.width(); + var h = this.height(); + var zoom; + padding = number$1(padding) ? padding : 0; + + if (!isNaN(w) && !isNaN(h) && w > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) { + zoom = Math.min((w - 2 * padding) / bb.w, (h - 2 * padding) / bb.h); // crop zoom + + zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom; + zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom; + var pan = { + // now pan to middle + x: (w - zoom * (bb.x1 + bb.x2)) / 2, + y: (h - zoom * (bb.y1 + bb.y2)) / 2 + }; + return { + zoom: zoom, + pan: pan + }; + } + + return; + }, + zoomRange: function zoomRange(min, max) { + var _p = this._private; + + if (max == null) { + var opts = min; + min = opts.min; + max = opts.max; + } + + if (number$1(min) && number$1(max) && min <= max) { + _p.minZoom = min; + _p.maxZoom = max; + } else if (number$1(min) && max === undefined && min <= _p.maxZoom) { + _p.minZoom = min; + } else if (number$1(max) && min === undefined && max >= _p.minZoom) { + _p.maxZoom = max; + } + + return this; + }, + minZoom: function minZoom(zoom) { + if (zoom === undefined) { + return this._private.minZoom; + } else { + return this.zoomRange({ + min: zoom + }); + } + }, + maxZoom: function maxZoom(zoom) { + if (zoom === undefined) { + return this._private.maxZoom; + } else { + return this.zoomRange({ + max: zoom + }); + } + }, + getZoomedViewport: function getZoomedViewport(params) { + var _p = this._private; + var currentPan = _p.pan; + var currentZoom = _p.zoom; + var pos; // in rendered px + + var zoom; + var bail = false; + + if (!_p.zoomingEnabled) { + // zooming disabled + bail = true; + } + + if (number$1(params)) { + // then set the zoom + zoom = params; + } else if (plainObject(params)) { + // then zoom about a point + zoom = params.level; + + if (params.position != null) { + pos = modelToRenderedPosition(params.position, currentZoom, currentPan); + } else if (params.renderedPosition != null) { + pos = params.renderedPosition; + } + + if (pos != null && !_p.panningEnabled) { + // panning disabled + bail = true; + } + } // crop zoom + + + zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom; + zoom = zoom < _p.minZoom ? _p.minZoom : zoom; // can't zoom with invalid params + + if (bail || !number$1(zoom) || zoom === currentZoom || pos != null && (!number$1(pos.x) || !number$1(pos.y))) { + return null; + } + + if (pos != null) { + // set zoom about position + var pan1 = currentPan; + var zoom1 = currentZoom; + var zoom2 = zoom; + var pan2 = { + x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x, + y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y + }; + return { + zoomed: true, + panned: true, + zoom: zoom2, + pan: pan2 + }; + } else { + // just set the zoom + return { + zoomed: true, + panned: false, + zoom: zoom, + pan: currentPan + }; + } + }, + zoom: function zoom(params) { + if (params === undefined) { + // get + return this._private.zoom; + } else { + // set + var vp = this.getZoomedViewport(params); + var _p = this._private; + + if (vp == null || !vp.zoomed) { + return this; + } + + _p.zoom = vp.zoom; + + if (vp.panned) { + _p.pan.x = vp.pan.x; + _p.pan.y = vp.pan.y; + } + + this.emit('zoom' + (vp.panned ? ' pan' : '') + ' viewport'); + this.notify('viewport'); + return this; // chaining + } + }, + viewport: function viewport(opts) { + var _p = this._private; + var zoomDefd = true; + var panDefd = true; + var events = []; // to trigger + + var zoomFailed = false; + var panFailed = false; + + if (!opts) { + return this; + } + + if (!number$1(opts.zoom)) { + zoomDefd = false; + } + + if (!plainObject(opts.pan)) { + panDefd = false; + } + + if (!zoomDefd && !panDefd) { + return this; + } + + if (zoomDefd) { + var z = opts.zoom; + + if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) { + zoomFailed = true; + } else { + _p.zoom = z; + events.push('zoom'); + } + } + + if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) { + var p = opts.pan; + + if (number$1(p.x)) { + _p.pan.x = p.x; + panFailed = false; + } + + if (number$1(p.y)) { + _p.pan.y = p.y; + panFailed = false; + } + + if (!panFailed) { + events.push('pan'); + } + } + + if (events.length > 0) { + events.push('viewport'); + this.emit(events.join(' ')); + this.notify('viewport'); + } + + return this; // chaining + }, + center: function center(elements) { + var pan = this.getCenterPan(elements); + + if (pan) { + this._private.pan = pan; + this.emit('pan viewport'); + this.notify('viewport'); + } + + return this; // chaining + }, + getCenterPan: function getCenterPan(elements, zoom) { + if (!this._private.panningEnabled) { + return; + } + + if (string(elements)) { + var selector = elements; + elements = this.mutableElements().filter(selector); + } else if (!elementOrCollection(elements)) { + elements = this.mutableElements(); + } + + if (elements.length === 0) { + return; + } // can't centre pan to nothing + + + var bb = elements.boundingBox(); + var w = this.width(); + var h = this.height(); + zoom = zoom === undefined ? this._private.zoom : zoom; + var pan = { + // middle + x: (w - zoom * (bb.x1 + bb.x2)) / 2, + y: (h - zoom * (bb.y1 + bb.y2)) / 2 + }; + return pan; + }, + reset: function reset() { + if (!this._private.panningEnabled || !this._private.zoomingEnabled) { + return this; + } + + this.viewport({ + pan: { + x: 0, + y: 0 + }, + zoom: 1 + }); + return this; // chaining + }, + invalidateSize: function invalidateSize() { + this._private.sizeCache = null; + }, + size: function size() { + var _p = this._private; + var container = _p.container; + var cy = this; + return _p.sizeCache = _p.sizeCache || (container ? function () { + var style = cy.window().getComputedStyle(container); + + var val = function val(name) { + return parseFloat(style.getPropertyValue(name)); + }; + + return { + width: container.clientWidth - val('padding-left') - val('padding-right'), + height: container.clientHeight - val('padding-top') - val('padding-bottom') + }; + }() : { + // fallback if no container (not 0 b/c can be used for dividing etc) + width: 1, + height: 1 + }); + }, + width: function width() { + return this.size().width; + }, + height: function height() { + return this.size().height; + }, + extent: function extent() { + var pan = this._private.pan; + var zoom = this._private.zoom; + var rb = this.renderedExtent(); + var b = { + x1: (rb.x1 - pan.x) / zoom, + x2: (rb.x2 - pan.x) / zoom, + y1: (rb.y1 - pan.y) / zoom, + y2: (rb.y2 - pan.y) / zoom + }; + b.w = b.x2 - b.x1; + b.h = b.y2 - b.y1; + return b; + }, + renderedExtent: function renderedExtent() { + var width = this.width(); + var height = this.height(); + return { + x1: 0, + y1: 0, + x2: width, + y2: height, + w: width, + h: height + }; + }, + multiClickDebounceTime: function multiClickDebounceTime(_int) { + if (_int) this._private.multiClickDebounceTime = _int;else return this._private.multiClickDebounceTime; + return this; // chaining + } + }; // aliases + + corefn$1.centre = corefn$1.center; // backwards compatibility + + corefn$1.autolockNodes = corefn$1.autolock; + corefn$1.autoungrabifyNodes = corefn$1.autoungrabify; + + var fn = { + data: define.data({ + field: 'data', + bindingEvent: 'data', + allowBinding: true, + allowSetting: true, + settingEvent: 'data', + settingTriggersEvent: true, + triggerFnName: 'trigger', + allowGetting: true, + updateStyle: true + }), + removeData: define.removeData({ + field: 'data', + event: 'data', + triggerFnName: 'trigger', + triggerEvent: true, + updateStyle: true + }), + scratch: define.data({ + field: 'scratch', + bindingEvent: 'scratch', + allowBinding: true, + allowSetting: true, + settingEvent: 'scratch', + settingTriggersEvent: true, + triggerFnName: 'trigger', + allowGetting: true, + updateStyle: true + }), + removeScratch: define.removeData({ + field: 'scratch', + event: 'scratch', + triggerFnName: 'trigger', + triggerEvent: true, + updateStyle: true + }) + }; // aliases + + fn.attr = fn.data; + fn.removeAttr = fn.removeData; + + var Core = function Core(opts) { + var cy = this; + opts = extend({}, opts); + var container = opts.container; // allow for passing a wrapped jquery object + // e.g. cytoscape({ container: $('#cy') }) + + if (container && !htmlElement(container) && htmlElement(container[0])) { + container = container[0]; + } + + var reg = container ? container._cyreg : null; // e.g. already registered some info (e.g. readies) via jquery + + reg = reg || {}; + + if (reg && reg.cy) { + reg.cy.destroy(); + reg = {}; // old instance => replace reg completely + } + + var readies = reg.readies = reg.readies || []; + + if (container) { + container._cyreg = reg; + } // make sure container assoc'd reg points to this cy + + + reg.cy = cy; + var head = _window !== undefined && container !== undefined && !opts.headless; + var options = opts; + options.layout = extend({ + name: head ? 'grid' : 'null' + }, options.layout); + options.renderer = extend({ + name: head ? 'canvas' : 'null' + }, options.renderer); + + var defVal = function defVal(def, val, altVal) { + if (val !== undefined) { + return val; + } else if (altVal !== undefined) { + return altVal; + } else { + return def; + } + }; + + var _p = this._private = { + container: container, + // html dom ele container + ready: false, + // whether ready has been triggered + options: options, + // cached options + elements: new Collection(this), + // elements in the graph + listeners: [], + // list of listeners + aniEles: new Collection(this), + // elements being animated + data: options.data || {}, + // data for the core + scratch: {}, + // scratch object for core + layout: null, + renderer: null, + destroyed: false, + // whether destroy was called + notificationsEnabled: true, + // whether notifications are sent to the renderer + minZoom: 1e-50, + maxZoom: 1e50, + zoomingEnabled: defVal(true, options.zoomingEnabled), + userZoomingEnabled: defVal(true, options.userZoomingEnabled), + panningEnabled: defVal(true, options.panningEnabled), + userPanningEnabled: defVal(true, options.userPanningEnabled), + boxSelectionEnabled: defVal(true, options.boxSelectionEnabled), + autolock: defVal(false, options.autolock, options.autolockNodes), + autoungrabify: defVal(false, options.autoungrabify, options.autoungrabifyNodes), + autounselectify: defVal(false, options.autounselectify), + styleEnabled: options.styleEnabled === undefined ? head : options.styleEnabled, + zoom: number$1(options.zoom) ? options.zoom : 1, + pan: { + x: plainObject(options.pan) && number$1(options.pan.x) ? options.pan.x : 0, + y: plainObject(options.pan) && number$1(options.pan.y) ? options.pan.y : 0 + }, + animation: { + // object for currently-running animations + current: [], + queue: [] + }, + hasCompoundNodes: false, + multiClickDebounceTime: defVal(250, options.multiClickDebounceTime) + }; + + this.createEmitter(); // set selection type + + this.selectionType(options.selectionType); // init zoom bounds + + this.zoomRange({ + min: options.minZoom, + max: options.maxZoom + }); + + var loadExtData = function loadExtData(extData, next) { + var anyIsPromise = extData.some(promise); + + if (anyIsPromise) { + return Promise$1.all(extData).then(next); // load all data asynchronously, then exec rest of init + } else { + next(extData); // exec synchronously for convenience + } + }; // start with the default stylesheet so we have something before loading an external stylesheet + + + if (_p.styleEnabled) { + cy.setStyle([]); + } // create the renderer + + + var rendererOptions = extend({}, options, options.renderer); // allow rendering hints in top level options + + cy.initRenderer(rendererOptions); + + var setElesAndLayout = function setElesAndLayout(elements, onload, ondone) { + cy.notifications(false); // remove old elements + + var oldEles = cy.mutableElements(); + + if (oldEles.length > 0) { + oldEles.remove(); + } + + if (elements != null) { + if (plainObject(elements) || array(elements)) { + cy.add(elements); + } + } + + cy.one('layoutready', function (e) { + cy.notifications(true); + cy.emit(e); // we missed this event by turning notifications off, so pass it on + + cy.one('load', onload); + cy.emitAndNotify('load'); + }).one('layoutstop', function () { + cy.one('done', ondone); + cy.emit('done'); + }); + var layoutOpts = extend({}, cy._private.options.layout); + layoutOpts.eles = cy.elements(); + cy.layout(layoutOpts).run(); + }; + + loadExtData([options.style, options.elements], function (thens) { + var initStyle = thens[0]; + var initEles = thens[1]; // init style + + if (_p.styleEnabled) { + cy.style().append(initStyle); + } // initial load + + + setElesAndLayout(initEles, function () { + // onready + cy.startAnimationLoop(); + _p.ready = true; // if a ready callback is specified as an option, the bind it + + if (fn$6(options.ready)) { + cy.on('ready', options.ready); + } // bind all the ready handlers registered before creating this instance + + + for (var i = 0; i < readies.length; i++) { + var fn = readies[i]; + cy.on('ready', fn); + } + + if (reg) { + reg.readies = []; + } // clear b/c we've bound them all and don't want to keep it around in case a new core uses the same div etc + + + cy.emit('ready'); + }, options.done); + }); + }; + + var corefn = Core.prototype; // short alias + + extend(corefn, { + instanceString: function instanceString() { + return 'core'; + }, + isReady: function isReady() { + return this._private.ready; + }, + destroyed: function destroyed() { + return this._private.destroyed; + }, + ready: function ready(fn) { + if (this.isReady()) { + this.emitter().emit('ready', [], fn); // just calls fn as though triggered via ready event + } else { + this.on('ready', fn); + } + + return this; + }, + destroy: function destroy() { + var cy = this; + if (cy.destroyed()) return; + cy.stopAnimationLoop(); + cy.destroyRenderer(); + this.emit('destroy'); + cy._private.destroyed = true; + return cy; + }, + hasElementWithId: function hasElementWithId(id) { + return this._private.elements.hasElementWithId(id); + }, + getElementById: function getElementById(id) { + return this._private.elements.getElementById(id); + }, + hasCompoundNodes: function hasCompoundNodes() { + return this._private.hasCompoundNodes; + }, + headless: function headless() { + return this._private.renderer.isHeadless(); + }, + styleEnabled: function styleEnabled() { + return this._private.styleEnabled; + }, + addToPool: function addToPool(eles) { + this._private.elements.merge(eles); + + return this; // chaining + }, + removeFromPool: function removeFromPool(eles) { + this._private.elements.unmerge(eles); + + return this; + }, + container: function container() { + return this._private.container || null; + }, + window: function window() { + var container = this._private.container; + if (container == null) return _window; + var ownerDocument = this._private.container.ownerDocument; + + if (ownerDocument === undefined || ownerDocument == null) { + return _window; + } + + return ownerDocument.defaultView || _window; + }, + mount: function mount(container) { + if (container == null) { + return; + } + + var cy = this; + var _p = cy._private; + var options = _p.options; + + if (!htmlElement(container) && htmlElement(container[0])) { + container = container[0]; + } + + cy.stopAnimationLoop(); + cy.destroyRenderer(); + _p.container = container; + _p.styleEnabled = true; + cy.invalidateSize(); + cy.initRenderer(extend({}, options, options.renderer, { + // allow custom renderer name to be re-used, otherwise use canvas + name: options.renderer.name === 'null' ? 'canvas' : options.renderer.name + })); + cy.startAnimationLoop(); + cy.style(options.style); + cy.emit('mount'); + return cy; + }, + unmount: function unmount() { + var cy = this; + cy.stopAnimationLoop(); + cy.destroyRenderer(); + cy.initRenderer({ + name: 'null' + }); + cy.emit('unmount'); + return cy; + }, + options: function options() { + return copy(this._private.options); + }, + json: function json(obj) { + var cy = this; + var _p = cy._private; + var eles = cy.mutableElements(); + + var getFreshRef = function getFreshRef(ele) { + return cy.getElementById(ele.id()); + }; + + if (plainObject(obj)) { + // set + cy.startBatch(); + + if (obj.elements) { + var idInJson = {}; + + var updateEles = function updateEles(jsons, gr) { + var toAdd = []; + var toMod = []; + + for (var i = 0; i < jsons.length; i++) { + var json = jsons[i]; + + if (!json.data.id) { + warn('cy.json() cannot handle elements without an ID attribute'); + continue; + } + + var id = '' + json.data.id; // id must be string + + var ele = cy.getElementById(id); + idInJson[id] = true; + + if (ele.length !== 0) { + // existing element should be updated + toMod.push({ + ele: ele, + json: json + }); + } else { + // otherwise should be added + if (gr) { + json.group = gr; + toAdd.push(json); + } else { + toAdd.push(json); + } + } + } + + cy.add(toAdd); + + for (var _i = 0; _i < toMod.length; _i++) { + var _toMod$_i = toMod[_i], + _ele = _toMod$_i.ele, + _json = _toMod$_i.json; + + _ele.json(_json); + } + }; + + if (array(obj.elements)) { + // elements: [] + updateEles(obj.elements); + } else { + // elements: { nodes: [], edges: [] } + var grs = ['nodes', 'edges']; + + for (var i = 0; i < grs.length; i++) { + var gr = grs[i]; + var elements = obj.elements[gr]; + + if (array(elements)) { + updateEles(elements, gr); + } + } + } + + var parentsToRemove = cy.collection(); + eles.filter(function (ele) { + return !idInJson[ele.id()]; + }).forEach(function (ele) { + if (ele.isParent()) { + parentsToRemove.merge(ele); + } else { + ele.remove(); + } + }); // so that children are not removed w/parent + + parentsToRemove.forEach(function (ele) { + return ele.children().move({ + parent: null + }); + }); // intermediate parents may be moved by prior line, so make sure we remove by fresh refs + + parentsToRemove.forEach(function (ele) { + return getFreshRef(ele).remove(); + }); + } + + if (obj.style) { + cy.style(obj.style); + } + + if (obj.zoom != null && obj.zoom !== _p.zoom) { + cy.zoom(obj.zoom); + } + + if (obj.pan) { + if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) { + cy.pan(obj.pan); + } + } + + if (obj.data) { + cy.data(obj.data); + } + + var fields = ['minZoom', 'maxZoom', 'zoomingEnabled', 'userZoomingEnabled', 'panningEnabled', 'userPanningEnabled', 'boxSelectionEnabled', 'autolock', 'autoungrabify', 'autounselectify', 'multiClickDebounceTime']; + + for (var _i2 = 0; _i2 < fields.length; _i2++) { + var f = fields[_i2]; + + if (obj[f] != null) { + cy[f](obj[f]); + } + } + + cy.endBatch(); + return this; // chaining + } else { + // get + var flat = !!obj; + var json = {}; + + if (flat) { + json.elements = this.elements().map(function (ele) { + return ele.json(); + }); + } else { + json.elements = {}; + eles.forEach(function (ele) { + var group = ele.group(); + + if (!json.elements[group]) { + json.elements[group] = []; + } + + json.elements[group].push(ele.json()); + }); + } + + if (this._private.styleEnabled) { + json.style = cy.style().json(); + } + + json.data = copy(cy.data()); + var options = _p.options; + json.zoomingEnabled = _p.zoomingEnabled; + json.userZoomingEnabled = _p.userZoomingEnabled; + json.zoom = _p.zoom; + json.minZoom = _p.minZoom; + json.maxZoom = _p.maxZoom; + json.panningEnabled = _p.panningEnabled; + json.userPanningEnabled = _p.userPanningEnabled; + json.pan = copy(_p.pan); + json.boxSelectionEnabled = _p.boxSelectionEnabled; + json.renderer = copy(options.renderer); + json.hideEdgesOnViewport = options.hideEdgesOnViewport; + json.textureOnViewport = options.textureOnViewport; + json.wheelSensitivity = options.wheelSensitivity; + json.motionBlur = options.motionBlur; + json.multiClickDebounceTime = options.multiClickDebounceTime; + return json; + } + } + }); + corefn.$id = corefn.getElementById; + [corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn].forEach(function (props) { + extend(corefn, props); + }); + + /* eslint-disable no-unused-vars */ + + var defaults$7 = { + fit: true, + // whether to fit the viewport to the graph + directed: false, + // whether the tree is directed downwards (or edges can point in any direction if false) + padding: 30, + // padding on fit + circle: false, + // put depths in concentric circles if true, put depths top down if false + grid: false, + // whether to create an even grid into which the DAG is placed (circle:false only) + spacingFactor: 1.75, + // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap) + boundingBox: undefined, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox if not enough space + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + roots: undefined, + // the roots of the trees + depthSort: undefined, + // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled, + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + var deprecatedOptionDefaults = { + maximal: false, + // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only); setting acyclic to true sets maximal to true also + acyclic: false // whether the tree is acyclic and thus a node could be shifted (due to the maximal option) multiple times without causing an infinite loop; setting to true sets maximal to true also; if you are uncertain whether a tree is acyclic, set to false to avoid potential infinite loops + + }; + /* eslint-enable */ + + var getInfo = function getInfo(ele) { + return ele.scratch('breadthfirst'); + }; + + var setInfo = function setInfo(ele, obj) { + return ele.scratch('breadthfirst', obj); + }; + + function BreadthFirstLayout(options) { + this.options = extend({}, defaults$7, deprecatedOptionDefaults, options); + } + + BreadthFirstLayout.prototype.run = function () { + var params = this.options; + var options = params; + var cy = params.cy; + var eles = options.eles; + var nodes = eles.nodes().filter(function (n) { + return !n.isParent(); + }); + var graph = eles; + var directed = options.directed; + var maximal = options.acyclic || options.maximal || options.maximalAdjustments > 0; // maximalAdjustments for compat. w/ old code; also, setting acyclic to true sets maximal to true + + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var roots; + + if (elementOrCollection(options.roots)) { + roots = options.roots; + } else if (array(options.roots)) { + var rootsArray = []; + + for (var i = 0; i < options.roots.length; i++) { + var id = options.roots[i]; + var ele = cy.getElementById(id); + rootsArray.push(ele); + } + + roots = cy.collection(rootsArray); + } else if (string(options.roots)) { + roots = cy.$(options.roots); + } else { + if (directed) { + roots = nodes.roots(); + } else { + var components = eles.components(); + roots = cy.collection(); + + var _loop = function _loop(_i) { + var comp = components[_i]; + var maxDegree = comp.maxDegree(false); + var compRoots = comp.filter(function (ele) { + return ele.degree(false) === maxDegree; + }); + roots = roots.add(compRoots); + }; + + for (var _i = 0; _i < components.length; _i++) { + _loop(_i); + } + } + } + + var depths = []; + var foundByBfs = {}; + + var addToDepth = function addToDepth(ele, d) { + if (depths[d] == null) { + depths[d] = []; + } + + var i = depths[d].length; + depths[d].push(ele); + setInfo(ele, { + index: i, + depth: d + }); + }; + + var changeDepth = function changeDepth(ele, newDepth) { + var _getInfo = getInfo(ele), + depth = _getInfo.depth, + index = _getInfo.index; + + depths[depth][index] = null; + addToDepth(ele, newDepth); + }; // find the depths of the nodes + + + graph.bfs({ + roots: roots, + directed: options.directed, + visit: function visit(node, edge, pNode, i, depth) { + var ele = node[0]; + var id = ele.id(); + addToDepth(ele, depth); + foundByBfs[id] = true; + } + }); // check for nodes not found by bfs + + var orphanNodes = []; + + for (var _i2 = 0; _i2 < nodes.length; _i2++) { + var _ele = nodes[_i2]; + + if (foundByBfs[_ele.id()]) { + continue; + } else { + orphanNodes.push(_ele); + } + } // assign the nodes a depth and index + + + var assignDepthsAt = function assignDepthsAt(i) { + var eles = depths[i]; + + for (var j = 0; j < eles.length; j++) { + var _ele2 = eles[j]; + + if (_ele2 == null) { + eles.splice(j, 1); + j--; + continue; + } + + setInfo(_ele2, { + depth: i, + index: j + }); + } + }; + + var assignDepths = function assignDepths() { + for (var _i3 = 0; _i3 < depths.length; _i3++) { + assignDepthsAt(_i3); + } + }; + + var adjustMaximally = function adjustMaximally(ele, shifted) { + var eInfo = getInfo(ele); + var incomers = ele.incomers().filter(function (el) { + return el.isNode() && eles.has(el); + }); + var maxDepth = -1; + var id = ele.id(); + + for (var k = 0; k < incomers.length; k++) { + var incmr = incomers[k]; + var iInfo = getInfo(incmr); + maxDepth = Math.max(maxDepth, iInfo.depth); + } + + if (eInfo.depth <= maxDepth) { + if (!options.acyclic && shifted[id]) { + return null; + } + + var newDepth = maxDepth + 1; + changeDepth(ele, newDepth); + shifted[id] = newDepth; + return true; + } + + return false; + }; // for the directed case, try to make the edges all go down (i.e. depth i => depth i + 1) + + + if (directed && maximal) { + var Q = []; + var shifted = {}; + + var enqueue = function enqueue(n) { + return Q.push(n); + }; + + var dequeue = function dequeue() { + return Q.shift(); + }; + + nodes.forEach(function (n) { + return Q.push(n); + }); + + while (Q.length > 0) { + var _ele3 = dequeue(); + + var didShift = adjustMaximally(_ele3, shifted); + + if (didShift) { + _ele3.outgoers().filter(function (el) { + return el.isNode() && eles.has(el); + }).forEach(enqueue); + } else if (didShift === null) { + warn('Detected double maximal shift for node `' + _ele3.id() + '`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.'); + break; // exit on failure + } + } + } + + assignDepths(); // clear holes + // find min distance we need to leave between nodes + + var minDistance = 0; + + if (options.avoidOverlap) { + for (var _i4 = 0; _i4 < nodes.length; _i4++) { + var n = nodes[_i4]; + var nbb = n.layoutDimensions(options); + var w = nbb.w; + var h = nbb.h; + minDistance = Math.max(minDistance, w, h); + } + } // get the weighted percent for an element based on its connectivity to other levels + + + var cachedWeightedPercent = {}; + + var getWeightedPercent = function getWeightedPercent(ele) { + if (cachedWeightedPercent[ele.id()]) { + return cachedWeightedPercent[ele.id()]; + } + + var eleDepth = getInfo(ele).depth; + var neighbors = ele.neighborhood(); + var percent = 0; + var samples = 0; + + for (var _i5 = 0; _i5 < neighbors.length; _i5++) { + var neighbor = neighbors[_i5]; + + if (neighbor.isEdge() || neighbor.isParent() || !nodes.has(neighbor)) { + continue; + } + + var bf = getInfo(neighbor); + + if (bf == null) { + continue; + } + + var index = bf.index; + var depth = bf.depth; // unassigned neighbours shouldn't affect the ordering + + if (index == null || depth == null) { + continue; + } + + var nDepth = depths[depth].length; + + if (depth < eleDepth) { + // only get influenced by elements above + percent += index / nDepth; + samples++; + } + } + + samples = Math.max(1, samples); + percent = percent / samples; + + if (samples === 0) { + // put lone nodes at the start + percent = 0; + } + + cachedWeightedPercent[ele.id()] = percent; + return percent; + }; // rearrange the indices in each depth level based on connectivity + + + var sortFn = function sortFn(a, b) { + var apct = getWeightedPercent(a); + var bpct = getWeightedPercent(b); + var diff = apct - bpct; + + if (diff === 0) { + return ascending(a.id(), b.id()); // make sure sort doesn't have don't-care comparisons + } else { + return diff; + } + }; + + if (options.depthSort !== undefined) { + sortFn = options.depthSort; + } // sort each level to make connected nodes closer + + + for (var _i6 = 0; _i6 < depths.length; _i6++) { + depths[_i6].sort(sortFn); + + assignDepthsAt(_i6); + } // assign orphan nodes to a new top-level depth + + + var orphanDepth = []; + + for (var _i7 = 0; _i7 < orphanNodes.length; _i7++) { + orphanDepth.push(orphanNodes[_i7]); + } + + depths.unshift(orphanDepth); + assignDepths(); + var biggestDepthSize = 0; + + for (var _i8 = 0; _i8 < depths.length; _i8++) { + biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize); + } + + var center = { + x: bb.x1 + bb.w / 2, + y: bb.x1 + bb.h / 2 + }; + var maxDepthSize = depths.reduce(function (max, eles) { + return Math.max(max, eles.length); + }, 0); + + var getPosition = function getPosition(ele) { + var _getInfo2 = getInfo(ele), + depth = _getInfo2.depth, + index = _getInfo2.index; + + var depthSize = depths[depth].length; + var distanceX = Math.max(bb.w / ((options.grid ? maxDepthSize : depthSize) + 1), minDistance); + var distanceY = Math.max(bb.h / (depths.length + 1), minDistance); + var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length); + radiusStepSize = Math.max(radiusStepSize, minDistance); + + if (!options.circle) { + var epos = { + x: center.x + (index + 1 - (depthSize + 1) / 2) * distanceX, + y: (depth + 1) * distanceY + }; + return epos; + } else { + var radius = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0); + var theta = 2 * Math.PI / depths[depth].length * index; + + if (depth === 0 && depths[0].length === 1) { + radius = 1; + } + + return { + x: center.x + radius * Math.cos(theta), + y: center.y + radius * Math.sin(theta) + }; + } + }; + + eles.nodes().layoutPositions(this, options, getPosition); + return this; // chaining + }; + + var defaults$6 = { + fit: true, + // whether to fit the viewport to the graph + padding: 30, + // the padding on fit + boundingBox: undefined, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox and radius if not enough space + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + spacingFactor: undefined, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + radius: undefined, + // the radius of the circle + startAngle: 3 / 2 * Math.PI, + // where nodes start in radians + sweep: undefined, + // how many radians should be between the first and last node (defaults to full circle) + clockwise: true, + // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) + sort: undefined, + // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + + function CircleLayout(options) { + this.options = extend({}, defaults$6, options); + } + + CircleLayout.prototype.run = function () { + var params = this.options; + var options = params; + var cy = params.cy; + var eles = options.eles; + var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise; + var nodes = eles.nodes().not(':parent'); + + if (options.sort) { + nodes = nodes.sort(options.sort); + } + + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var center = { + x: bb.x1 + bb.w / 2, + y: bb.y1 + bb.h / 2 + }; + var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / nodes.length : options.sweep; + var dTheta = sweep / Math.max(1, nodes.length - 1); + var r; + var minDistance = 0; + + for (var i = 0; i < nodes.length; i++) { + var n = nodes[i]; + var nbb = n.layoutDimensions(options); + var w = nbb.w; + var h = nbb.h; + minDistance = Math.max(minDistance, w, h); + } + + if (number$1(options.radius)) { + r = options.radius; + } else if (nodes.length <= 1) { + r = 0; + } else { + r = Math.min(bb.h, bb.w) / 2 - minDistance; + } // calculate the radius + + + if (nodes.length > 1 && options.avoidOverlap) { + // but only if more than one node (can't overlap) + minDistance *= 1.75; // just to have some nice spacing + + var dcos = Math.cos(dTheta) - Math.cos(0); + var dsin = Math.sin(dTheta) - Math.sin(0); + var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping + + r = Math.max(rMin, r); + } + + var getPos = function getPos(ele, i) { + var theta = options.startAngle + i * dTheta * (clockwise ? 1 : -1); + var rx = r * Math.cos(theta); + var ry = r * Math.sin(theta); + var pos = { + x: center.x + rx, + y: center.y + ry + }; + return pos; + }; + + eles.nodes().layoutPositions(this, options, getPos); + return this; // chaining + }; + + var defaults$5 = { + fit: true, + // whether to fit the viewport to the graph + padding: 30, + // the padding on fit + startAngle: 3 / 2 * Math.PI, + // where nodes start in radians + sweep: undefined, + // how many radians should be between the first and last node (defaults to full circle) + clockwise: true, + // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false) + equidistant: false, + // whether levels have an equal radial distance betwen them, may cause bounding box overflow + minNodeSpacing: 10, + // min spacing between outside of nodes (used for radius adjustment) + boundingBox: undefined, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox if not enough space + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + height: undefined, + // height of layout area (overrides container height) + width: undefined, + // width of layout area (overrides container width) + spacingFactor: undefined, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + concentric: function concentric(node) { + // returns numeric value for each node, placing higher nodes in levels towards the centre + return node.degree(); + }, + levelWidth: function levelWidth(nodes) { + // the variation of concentric values in each level + return nodes.maxDegree() / 4; + }, + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + + function ConcentricLayout(options) { + this.options = extend({}, defaults$5, options); + } + + ConcentricLayout.prototype.run = function () { + var params = this.options; + var options = params; + var clockwise = options.counterclockwise !== undefined ? !options.counterclockwise : options.clockwise; + var cy = params.cy; + var eles = options.eles; + var nodes = eles.nodes().not(':parent'); + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var center = { + x: bb.x1 + bb.w / 2, + y: bb.y1 + bb.h / 2 + }; + var nodeValues = []; // { node, value } + + var maxNodeSize = 0; + + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + var value = void 0; // calculate the node value + + value = options.concentric(node); + nodeValues.push({ + value: value, + node: node + }); // for style mapping + + node._private.scratch.concentric = value; + } // in case we used the `concentric` in style + + + nodes.updateStyle(); // calculate max size now based on potentially updated mappers + + for (var _i = 0; _i < nodes.length; _i++) { + var _node = nodes[_i]; + + var nbb = _node.layoutDimensions(options); + + maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h); + } // sort node values in descreasing order + + + nodeValues.sort(function (a, b) { + return b.value - a.value; + }); + var levelWidth = options.levelWidth(nodes); // put the values into levels + + var levels = [[]]; + var currentLevel = levels[0]; + + for (var _i2 = 0; _i2 < nodeValues.length; _i2++) { + var val = nodeValues[_i2]; + + if (currentLevel.length > 0) { + var diff = Math.abs(currentLevel[0].value - val.value); + + if (diff >= levelWidth) { + currentLevel = []; + levels.push(currentLevel); + } + } + + currentLevel.push(val); + } // create positions from levels + + + var minDist = maxNodeSize + options.minNodeSpacing; // min dist between nodes + + if (!options.avoidOverlap) { + // then strictly constrain to bb + var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1; + var maxR = Math.min(bb.w, bb.h) / 2 - minDist; + var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0); + minDist = Math.min(minDist, rStep); + } // find the metrics for each level + + + var r = 0; + + for (var _i3 = 0; _i3 < levels.length; _i3++) { + var level = levels[_i3]; + var sweep = options.sweep === undefined ? 2 * Math.PI - 2 * Math.PI / level.length : options.sweep; + var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1); // calculate the radius + + if (level.length > 1 && options.avoidOverlap) { + // but only if more than one node (can't overlap) + var dcos = Math.cos(dTheta) - Math.cos(0); + var dsin = Math.sin(dTheta) - Math.sin(0); + var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin)); // s.t. no nodes overlapping + + r = Math.max(rMin, r); + } + + level.r = r; + r += minDist; + } + + if (options.equidistant) { + var rDeltaMax = 0; + var _r = 0; + + for (var _i4 = 0; _i4 < levels.length; _i4++) { + var _level = levels[_i4]; + var rDelta = _level.r - _r; + rDeltaMax = Math.max(rDeltaMax, rDelta); + } + + _r = 0; + + for (var _i5 = 0; _i5 < levels.length; _i5++) { + var _level2 = levels[_i5]; + + if (_i5 === 0) { + _r = _level2.r; + } + + _level2.r = _r; + _r += rDeltaMax; + } + } // calculate the node positions + + + var pos = {}; // id => position + + for (var _i6 = 0; _i6 < levels.length; _i6++) { + var _level3 = levels[_i6]; + var _dTheta = _level3.dTheta; + var _r2 = _level3.r; + + for (var j = 0; j < _level3.length; j++) { + var _val = _level3[j]; + var theta = options.startAngle + (clockwise ? 1 : -1) * _dTheta * j; + var p = { + x: center.x + _r2 * Math.cos(theta), + y: center.y + _r2 * Math.sin(theta) + }; + pos[_val.node.id()] = p; + } + } // position the nodes + + + eles.nodes().layoutPositions(this, options, function (ele) { + var id = ele.id(); + return pos[id]; + }); + return this; // chaining + }; + + /* + The CoSE layout was written by Gerardo Huck. + https://www.linkedin.com/in/gerardohuck/ + + Based on the following article: + http://dl.acm.org/citation.cfm?id=1498047 + + Modifications tracked on Github. + */ + var DEBUG; + /** + * @brief : default layout options + */ + + var defaults$4 = { + // Called on `layoutready` + ready: function ready() {}, + // Called on `layoutstop` + stop: function stop() {}, + // Whether to animate while running the layout + // true : Animate continuously as the layout is running + // false : Just show the end result + // 'end' : Animate with the end result, from the initial positions to the end positions + animate: true, + // Easing of the animation for animate:'end' + animationEasing: undefined, + // The duration of the animation for animate:'end' + animationDuration: undefined, + // A function that determines whether the node should be animated + // All nodes animated by default on animate enabled + // Non-animated nodes are positioned immediately when the layout starts + animateFilter: function animateFilter(node, i) { + return true; + }, + // The layout animates only after this many milliseconds for animate:true + // (prevents flashing on fast runs) + animationThreshold: 250, + // Number of iterations between consecutive screen positions update + refresh: 20, + // Whether to fit the network view after when done + fit: true, + // Padding on fit + padding: 30, + // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + boundingBox: undefined, + // Excludes the label when calculating node bounding boxes for the layout algorithm + nodeDimensionsIncludeLabels: false, + // Randomize the initial positions of the nodes (true) or use existing positions (false) + randomize: false, + // Extra spacing between components in non-compound graphs + componentSpacing: 40, + // Node repulsion (non overlapping) multiplier + nodeRepulsion: function nodeRepulsion(node) { + return 2048; + }, + // Node repulsion (overlapping) multiplier + nodeOverlap: 4, + // Ideal edge (non nested) length + idealEdgeLength: function idealEdgeLength(edge) { + return 32; + }, + // Divisor to compute edge forces + edgeElasticity: function edgeElasticity(edge) { + return 32; + }, + // Nesting factor (multiplier) to compute ideal edge length for nested edges + nestingFactor: 1.2, + // Gravity force (constant) + gravity: 1, + // Maximum number of iterations to perform + numIter: 1000, + // Initial temperature (maximum node displacement) + initialTemp: 1000, + // Cooling factor (how the temperature is reduced between consecutive iterations + coolingFactor: 0.99, + // Lower temperature threshold (below this point the layout will end) + minTemp: 1.0 + }; + /** + * @brief : constructor + * @arg options : object containing layout options + */ + + function CoseLayout(options) { + this.options = extend({}, defaults$4, options); + this.options.layout = this; + } + /** + * @brief : runs the layout + */ + + + CoseLayout.prototype.run = function () { + var options = this.options; + var cy = options.cy; + var layout = this; + layout.stopped = false; + + if (options.animate === true || options.animate === false) { + layout.emit({ + type: 'layoutstart', + layout: layout + }); + } // Set DEBUG - Global variable + + + if (true === options.debug) { + DEBUG = true; + } else { + DEBUG = false; + } // Initialize layout info + + + var layoutInfo = createLayoutInfo(cy, layout, options); // Show LayoutInfo contents if debugging + + if (DEBUG) { + printLayoutInfo(layoutInfo); + } // If required, randomize node positions + + + if (options.randomize) { + randomizePositions(layoutInfo); + } + + var startTime = performanceNow(); + + var refresh = function refresh() { + refreshPositions(layoutInfo, cy, options); // Fit the graph if necessary + + if (true === options.fit) { + cy.fit(options.padding); + } + }; + + var mainLoop = function mainLoop(i) { + if (layout.stopped || i >= options.numIter) { + // logDebug("Layout manually stopped. Stopping computation in step " + i); + return false; + } // Do one step in the phisical simulation + + + step(layoutInfo, options); // Update temperature + + layoutInfo.temperature = layoutInfo.temperature * options.coolingFactor; // logDebug("New temperature: " + layoutInfo.temperature); + + if (layoutInfo.temperature < options.minTemp) { + // logDebug("Temperature drop below minimum threshold. Stopping computation in step " + i); + return false; + } + + return true; + }; + + var done = function done() { + if (options.animate === true || options.animate === false) { + refresh(); // Layout has finished + + layout.one('layoutstop', options.stop); + layout.emit({ + type: 'layoutstop', + layout: layout + }); + } else { + var nodes = options.eles.nodes(); + var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes); + nodes.layoutPositions(layout, options, getScaledPos); + } + }; + + var i = 0; + var loopRet = true; + + if (options.animate === true) { + var frame = function frame() { + var f = 0; + + while (loopRet && f < options.refresh) { + loopRet = mainLoop(i); + i++; + f++; + } + + if (!loopRet) { + // it's done + separateComponents(layoutInfo, options); + done(); + } else { + var now = performanceNow(); + + if (now - startTime >= options.animationThreshold) { + refresh(); + } + + requestAnimationFrame(frame); + } + }; + + frame(); + } else { + while (loopRet) { + loopRet = mainLoop(i); + i++; + } + + separateComponents(layoutInfo, options); + done(); + } + + return this; // chaining + }; + /** + * @brief : called on continuous layouts to stop them before they finish + */ + + + CoseLayout.prototype.stop = function () { + this.stopped = true; + + if (this.thread) { + this.thread.stop(); + } + + this.emit('layoutstop'); + return this; // chaining + }; + + CoseLayout.prototype.destroy = function () { + if (this.thread) { + this.thread.stop(); + } + + return this; // chaining + }; + /** + * @brief : Creates an object which is contains all the data + * used in the layout process + * @arg cy : cytoscape.js object + * @return : layoutInfo object initialized + */ + + + var createLayoutInfo = function createLayoutInfo(cy, layout, options) { + // Shortcut + var edges = options.eles.edges(); + var nodes = options.eles.nodes(); + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + var layoutInfo = { + isCompound: cy.hasCompoundNodes(), + layoutNodes: [], + idToIndex: {}, + nodeSize: nodes.size(), + graphSet: [], + indexToGraph: [], + layoutEdges: [], + edgeSize: edges.size(), + temperature: options.initialTemp, + clientWidth: bb.w, + clientHeight: bb.h, + boundingBox: bb + }; + var components = options.eles.components(); + var id2cmptId = {}; + + for (var i = 0; i < components.length; i++) { + var component = components[i]; + + for (var j = 0; j < component.length; j++) { + var node = component[j]; + id2cmptId[node.id()] = i; + } + } // Iterate over all nodes, creating layout nodes + + + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = nodes[i]; + var nbb = n.layoutDimensions(options); + var tempNode = {}; + tempNode.isLocked = n.locked(); + tempNode.id = n.data('id'); + tempNode.parentId = n.data('parent'); + tempNode.cmptId = id2cmptId[n.id()]; + tempNode.children = []; + tempNode.positionX = n.position('x'); + tempNode.positionY = n.position('y'); + tempNode.offsetX = 0; + tempNode.offsetY = 0; + tempNode.height = nbb.w; + tempNode.width = nbb.h; + tempNode.maxX = tempNode.positionX + tempNode.width / 2; + tempNode.minX = tempNode.positionX - tempNode.width / 2; + tempNode.maxY = tempNode.positionY + tempNode.height / 2; + tempNode.minY = tempNode.positionY - tempNode.height / 2; + tempNode.padLeft = parseFloat(n.style('padding')); + tempNode.padRight = parseFloat(n.style('padding')); + tempNode.padTop = parseFloat(n.style('padding')); + tempNode.padBottom = parseFloat(n.style('padding')); // forces + + tempNode.nodeRepulsion = fn$6(options.nodeRepulsion) ? options.nodeRepulsion(n) : options.nodeRepulsion; // Add new node + + layoutInfo.layoutNodes.push(tempNode); // Add entry to id-index map + + layoutInfo.idToIndex[tempNode.id] = i; + } // Inline implementation of a queue, used for traversing the graph in BFS order + + + var queue = []; + var start = 0; // Points to the start the queue + + var end = -1; // Points to the end of the queue + + var tempGraph = []; // Second pass to add child information and + // initialize queue for hierarchical traversal + + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = layoutInfo.layoutNodes[i]; + var p_id = n.parentId; // Check if node n has a parent node + + if (null != p_id) { + // Add node Id to parent's list of children + layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id); + } else { + // If a node doesn't have a parent, then it's in the root graph + queue[++end] = n.id; + tempGraph.push(n.id); + } + } // Add root graph to graphSet + + + layoutInfo.graphSet.push(tempGraph); // Traverse the graph, level by level, + + while (start <= end) { + // Get the node to visit and remove it from queue + var node_id = queue[start++]; + var node_ix = layoutInfo.idToIndex[node_id]; + var node = layoutInfo.layoutNodes[node_ix]; + var children = node.children; + + if (children.length > 0) { + // Add children nodes as a new graph to graph set + layoutInfo.graphSet.push(children); // Add children to que queue to be visited + + for (var i = 0; i < children.length; i++) { + queue[++end] = children[i]; + } + } + } // Create indexToGraph map + + + for (var i = 0; i < layoutInfo.graphSet.length; i++) { + var graph = layoutInfo.graphSet[i]; + + for (var j = 0; j < graph.length; j++) { + var index = layoutInfo.idToIndex[graph[j]]; + layoutInfo.indexToGraph[index] = i; + } + } // Iterate over all edges, creating Layout Edges + + + for (var i = 0; i < layoutInfo.edgeSize; i++) { + var e = edges[i]; + var tempEdge = {}; + tempEdge.id = e.data('id'); + tempEdge.sourceId = e.data('source'); + tempEdge.targetId = e.data('target'); // Compute ideal length + + var idealLength = fn$6(options.idealEdgeLength) ? options.idealEdgeLength(e) : options.idealEdgeLength; + var elasticity = fn$6(options.edgeElasticity) ? options.edgeElasticity(e) : options.edgeElasticity; // Check if it's an inter graph edge + + var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId]; + var targetIx = layoutInfo.idToIndex[tempEdge.targetId]; + var sourceGraph = layoutInfo.indexToGraph[sourceIx]; + var targetGraph = layoutInfo.indexToGraph[targetIx]; + + if (sourceGraph != targetGraph) { + // Find lowest common graph ancestor + var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo); // Compute sum of node depths, relative to lca graph + + var lcaGraph = layoutInfo.graphSet[lca]; + var depth = 0; // Source depth + + var tempNode = layoutInfo.layoutNodes[sourceIx]; + + while (-1 === lcaGraph.indexOf(tempNode.id)) { + tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]]; + depth++; + } // Target depth + + + tempNode = layoutInfo.layoutNodes[targetIx]; + + while (-1 === lcaGraph.indexOf(tempNode.id)) { + tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]]; + depth++; + } // logDebug('LCA of nodes ' + tempEdge.sourceId + ' and ' + tempEdge.targetId + + // ". Index: " + lca + " Contents: " + lcaGraph.toString() + + // ". Depth: " + depth); + // Update idealLength + + + idealLength *= depth * options.nestingFactor; + } + + tempEdge.idealLength = idealLength; + tempEdge.elasticity = elasticity; + layoutInfo.layoutEdges.push(tempEdge); + } // Finally, return layoutInfo object + + + return layoutInfo; + }; + /** + * @brief : This function finds the index of the lowest common + * graph ancestor between 2 nodes in the subtree + * (from the graph hierarchy induced tree) whose + * root is graphIx + * + * @arg node1: node1's ID + * @arg node2: node2's ID + * @arg layoutInfo: layoutInfo object + * + */ + + + var findLCA = function findLCA(node1, node2, layoutInfo) { + // Find their common ancester, starting from the root graph + var res = findLCA_aux(node1, node2, 0, layoutInfo); + + if (2 > res.count) { + // If aux function couldn't find the common ancester, + // then it is the root graph + return 0; + } else { + return res.graph; + } + }; + /** + * @brief : Auxiliary function used for LCA computation + * + * @arg node1 : node1's ID + * @arg node2 : node2's ID + * @arg graphIx : subgraph index + * @arg layoutInfo : layoutInfo object + * + * @return : object of the form {count: X, graph: Y}, where: + * X is the number of ancestors (max: 2) found in + * graphIx (and it's subgraphs), + * Y is the graph index of the lowest graph containing + * all X nodes + */ + + + var findLCA_aux = function findLCA_aux(node1, node2, graphIx, layoutInfo) { + var graph = layoutInfo.graphSet[graphIx]; // If both nodes belongs to graphIx + + if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) { + return { + count: 2, + graph: graphIx + }; + } // Make recursive calls for all subgraphs + + + var c = 0; + + for (var i = 0; i < graph.length; i++) { + var nodeId = graph[i]; + var nodeIx = layoutInfo.idToIndex[nodeId]; + var children = layoutInfo.layoutNodes[nodeIx].children; // If the node has no child, skip it + + if (0 === children.length) { + continue; + } + + var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children[0]]]; + var result = findLCA_aux(node1, node2, childGraphIx, layoutInfo); + + if (0 === result.count) { + // Neither node1 nor node2 are present in this subgraph + continue; + } else if (1 === result.count) { + // One of (node1, node2) is present in this subgraph + c++; + + if (2 === c) { + // We've already found both nodes, no need to keep searching + break; + } + } else { + // Both nodes are present in this subgraph + return result; + } + } + + return { + count: c, + graph: graphIx + }; + }; + /** + * @brief: printsLayoutInfo into js console + * Only used for debbuging + */ + + +var printLayoutInfo; + /** + * @brief : Randomizes the position of all nodes + */ + + + var randomizePositions = function randomizePositions(layoutInfo, cy) { + var width = layoutInfo.clientWidth; + var height = layoutInfo.clientHeight; + + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = layoutInfo.layoutNodes[i]; // No need to randomize compound nodes or locked nodes + + if (0 === n.children.length && !n.isLocked) { + n.positionX = Math.random() * width; + n.positionY = Math.random() * height; + } + } + }; + + var getScaleInBoundsFn = function getScaleInBoundsFn(layoutInfo, options, nodes) { + var bb = layoutInfo.boundingBox; + var coseBB = { + x1: Infinity, + x2: -Infinity, + y1: Infinity, + y2: -Infinity + }; + + if (options.boundingBox) { + nodes.forEach(function (node) { + var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node.data('id')]]; + coseBB.x1 = Math.min(coseBB.x1, lnode.positionX); + coseBB.x2 = Math.max(coseBB.x2, lnode.positionX); + coseBB.y1 = Math.min(coseBB.y1, lnode.positionY); + coseBB.y2 = Math.max(coseBB.y2, lnode.positionY); + }); + coseBB.w = coseBB.x2 - coseBB.x1; + coseBB.h = coseBB.y2 - coseBB.y1; + } + + return function (ele, i) { + var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data('id')]]; + + if (options.boundingBox) { + // then add extra bounding box constraint + var pctX = (lnode.positionX - coseBB.x1) / coseBB.w; + var pctY = (lnode.positionY - coseBB.y1) / coseBB.h; + return { + x: bb.x1 + pctX * bb.w, + y: bb.y1 + pctY * bb.h + }; + } else { + return { + x: lnode.positionX, + y: lnode.positionY + }; + } + }; + }; + /** + * @brief : Updates the positions of nodes in the network + * @arg layoutInfo : LayoutInfo object + * @arg cy : Cytoscape object + * @arg options : Layout options + */ + + + var refreshPositions = function refreshPositions(layoutInfo, cy, options) { + // var s = 'Refreshing positions'; + // logDebug(s); + var layout = options.layout; + var nodes = options.eles.nodes(); + var getScaledPos = getScaleInBoundsFn(layoutInfo, options, nodes); + nodes.positions(getScaledPos); // Trigger layoutReady only on first call + + if (true !== layoutInfo.ready) { + // s = 'Triggering layoutready'; + // logDebug(s); + layoutInfo.ready = true; + layout.one('layoutready', options.ready); + layout.emit({ + type: 'layoutready', + layout: this + }); + } + }; + /** + * @brief : Logs a debug message in JS console, if DEBUG is ON + */ + // var logDebug = function(text) { + // if (DEBUG) { + // console.debug(text); + // } + // }; + + /** + * @brief : Performs one iteration of the physical simulation + * @arg layoutInfo : LayoutInfo object already initialized + * @arg cy : Cytoscape object + * @arg options : Layout options + */ + + + var step = function step(layoutInfo, options, _step) { + // var s = "\n\n###############################"; + // s += "\nSTEP: " + step; + // s += "\n###############################\n"; + // logDebug(s); + // Calculate node repulsions + calculateNodeForces(layoutInfo, options); // Calculate edge forces + + calculateEdgeForces(layoutInfo); // Calculate gravity forces + + calculateGravityForces(layoutInfo, options); // Propagate forces from parent to child + + propagateForces(layoutInfo); // Update positions based on calculated forces + + updatePositions(layoutInfo); + }; + /** + * @brief : Computes the node repulsion forces + */ + + + var calculateNodeForces = function calculateNodeForces(layoutInfo, options) { + // Go through each of the graphs in graphSet + // Nodes only repel each other if they belong to the same graph + // var s = 'calculateNodeForces'; + // logDebug(s); + for (var i = 0; i < layoutInfo.graphSet.length; i++) { + var graph = layoutInfo.graphSet[i]; + var numNodes = graph.length; // s = "Set: " + graph.toString(); + // logDebug(s); + // Now get all the pairs of nodes + // Only get each pair once, (A, B) = (B, A) + + for (var j = 0; j < numNodes; j++) { + var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]]; + + for (var k = j + 1; k < numNodes; k++) { + var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]]; + nodeRepulsion(node1, node2, layoutInfo, options); + } + } + } + }; + + var randomDistance = function randomDistance(max) { + return -max + 2 * max * Math.random(); + }; + /** + * @brief : Compute the node repulsion forces between a pair of nodes + */ + + + var nodeRepulsion = function nodeRepulsion(node1, node2, layoutInfo, options) { + // var s = "Node repulsion. Node1: " + node1.id + " Node2: " + node2.id; + var cmptId1 = node1.cmptId; + var cmptId2 = node2.cmptId; + + if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) { + return; + } // Get direction of line connecting both node centers + + + var directionX = node2.positionX - node1.positionX; + var directionY = node2.positionY - node1.positionY; + var maxRandDist = 1; // s += "\ndirectionX: " + directionX + ", directionY: " + directionY; + // If both centers are the same, apply a random force + + if (0 === directionX && 0 === directionY) { + directionX = randomDistance(maxRandDist); + directionY = randomDistance(maxRandDist); + } + + var overlap = nodesOverlap(node1, node2, directionX, directionY); + + if (overlap > 0) { + // s += "\nNodes DO overlap."; + // s += "\nOverlap: " + overlap; + // If nodes overlap, repulsion force is proportional + // to the overlap + var force = options.nodeOverlap * overlap; // Compute the module and components of the force vector + + var distance = Math.sqrt(directionX * directionX + directionY * directionY); // s += "\nDistance: " + distance; + + var forceX = force * directionX / distance; + var forceY = force * directionY / distance; + } else { + // s += "\nNodes do NOT overlap."; + // If there's no overlap, force is inversely proportional + // to squared distance + // Get clipping points for both nodes + var point1 = findClippingPoint(node1, directionX, directionY); + var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY); // Use clipping points to compute distance + + var distanceX = point2.x - point1.x; + var distanceY = point2.y - point1.y; + var distanceSqr = distanceX * distanceX + distanceY * distanceY; + var distance = Math.sqrt(distanceSqr); // s += "\nDistance: " + distance; + // Compute the module and components of the force vector + + var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr; + var forceX = force * distanceX / distance; + var forceY = force * distanceY / distance; + } // Apply force + + + if (!node1.isLocked) { + node1.offsetX -= forceX; + node1.offsetY -= forceY; + } + + if (!node2.isLocked) { + node2.offsetX += forceX; + node2.offsetY += forceY; + } // s += "\nForceX: " + forceX + " ForceY: " + forceY; + // logDebug(s); + + + return; + }; + /** + * @brief : Determines whether two nodes overlap or not + * @return : Amount of overlapping (0 => no overlap) + */ + + + var nodesOverlap = function nodesOverlap(node1, node2, dX, dY) { + if (dX > 0) { + var overlapX = node1.maxX - node2.minX; + } else { + var overlapX = node2.maxX - node1.minX; + } + + if (dY > 0) { + var overlapY = node1.maxY - node2.minY; + } else { + var overlapY = node2.maxY - node1.minY; + } + + if (overlapX >= 0 && overlapY >= 0) { + return Math.sqrt(overlapX * overlapX + overlapY * overlapY); + } else { + return 0; + } + }; + /** + * @brief : Finds the point in which an edge (direction dX, dY) intersects + * the rectangular bounding box of it's source/target node + */ + + + var findClippingPoint = function findClippingPoint(node, dX, dY) { + // Shorcuts + var X = node.positionX; + var Y = node.positionY; + var H = node.height || 1; + var W = node.width || 1; + var dirSlope = dY / dX; + var nodeSlope = H / W; // var s = 'Computing clipping point of node ' + node.id + + // " . Height: " + H + ", Width: " + W + + // "\nDirection " + dX + ", " + dY; + // + // Compute intersection + + var res = {}; // Case: Vertical direction (up) + + if (0 === dX && 0 < dY) { + res.x = X; // s += "\nUp direction"; + + res.y = Y + H / 2; + return res; + } // Case: Vertical direction (down) + + + if (0 === dX && 0 > dY) { + res.x = X; + res.y = Y + H / 2; // s += "\nDown direction"; + + return res; + } // Case: Intersects the right border + + + if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) { + res.x = X + W / 2; + res.y = Y + W * dY / 2 / dX; // s += "\nRightborder"; + + return res; + } // Case: Intersects the left border + + + if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) { + res.x = X - W / 2; + res.y = Y - W * dY / 2 / dX; // s += "\nLeftborder"; + + return res; + } // Case: Intersects the top border + + + if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) { + res.x = X + H * dX / 2 / dY; + res.y = Y + H / 2; // s += "\nTop border"; + + return res; + } // Case: Intersects the bottom border + + + if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) { + res.x = X - H * dX / 2 / dY; + res.y = Y - H / 2; // s += "\nBottom border"; + + return res; + } // s += "\nClipping point found at " + res.x + ", " + res.y; + // logDebug(s); + + + return res; + }; + /** + * @brief : Calculates all edge forces + */ + + + var calculateEdgeForces = function calculateEdgeForces(layoutInfo, options) { + // Iterate over all edges + for (var i = 0; i < layoutInfo.edgeSize; i++) { + // Get edge, source & target nodes + var edge = layoutInfo.layoutEdges[i]; + var sourceIx = layoutInfo.idToIndex[edge.sourceId]; + var source = layoutInfo.layoutNodes[sourceIx]; + var targetIx = layoutInfo.idToIndex[edge.targetId]; + var target = layoutInfo.layoutNodes[targetIx]; // Get direction of line connecting both node centers + + var directionX = target.positionX - source.positionX; + var directionY = target.positionY - source.positionY; // If both centers are the same, do nothing. + // A random force has already been applied as node repulsion + + if (0 === directionX && 0 === directionY) { + continue; + } // Get clipping points for both nodes + + + var point1 = findClippingPoint(source, directionX, directionY); + var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY); + var lx = point2.x - point1.x; + var ly = point2.y - point1.y; + var l = Math.sqrt(lx * lx + ly * ly); + var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity; + + if (0 !== l) { + var forceX = force * lx / l; + var forceY = force * ly / l; + } else { + var forceX = 0; + var forceY = 0; + } // Add this force to target and source nodes + + + if (!source.isLocked) { + source.offsetX += forceX; + source.offsetY += forceY; + } + + if (!target.isLocked) { + target.offsetX -= forceX; + target.offsetY -= forceY; + } // var s = 'Edge force between nodes ' + source.id + ' and ' + target.id; + // s += "\nDistance: " + l + " Force: (" + forceX + ", " + forceY + ")"; + // logDebug(s); + + } + }; + /** + * @brief : Computes gravity forces for all nodes + */ + + + var calculateGravityForces = function calculateGravityForces(layoutInfo, options) { + if (options.gravity === 0) { + return; + } + + var distThreshold = 1; // var s = 'calculateGravityForces'; + // logDebug(s); + + for (var i = 0; i < layoutInfo.graphSet.length; i++) { + var graph = layoutInfo.graphSet[i]; + var numNodes = graph.length; // s = "Set: " + graph.toString(); + // logDebug(s); + // Compute graph center + + if (0 === i) { + var centerX = layoutInfo.clientHeight / 2; + var centerY = layoutInfo.clientWidth / 2; + } else { + // Get Parent node for this graph, and use its position as center + var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]]; + var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]]; + var centerX = parent.positionX; + var centerY = parent.positionY; + } // s = "Center found at: " + centerX + ", " + centerY; + // logDebug(s); + // Apply force to all nodes in graph + + + for (var j = 0; j < numNodes; j++) { + var node = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]]; // s = "Node: " + node.id; + + if (node.isLocked) { + continue; + } + + var dx = centerX - node.positionX; + var dy = centerY - node.positionY; + var d = Math.sqrt(dx * dx + dy * dy); + + if (d > distThreshold) { + var fx = options.gravity * dx / d; + var fy = options.gravity * dy / d; + node.offsetX += fx; + node.offsetY += fy; // s += ": Applied force: " + fx + ", " + fy; + } // logDebug(s); + + } + } + }; + /** + * @brief : This function propagates the existing offsets from + * parent nodes to its descendents. + * @arg layoutInfo : layoutInfo Object + * @arg cy : cytoscape Object + * @arg options : Layout options + */ + + + var propagateForces = function propagateForces(layoutInfo, options) { + // Inline implementation of a queue, used for traversing the graph in BFS order + var queue = []; + var start = 0; // Points to the start the queue + + var end = -1; // Points to the end of the queue + // logDebug('propagateForces'); + // Start by visiting the nodes in the root graph + + queue.push.apply(queue, layoutInfo.graphSet[0]); + end += layoutInfo.graphSet[0].length; // Traverse the graph, level by level, + + while (start <= end) { + // Get the node to visit and remove it from queue + var nodeId = queue[start++]; + var nodeIndex = layoutInfo.idToIndex[nodeId]; + var node = layoutInfo.layoutNodes[nodeIndex]; + var children = node.children; // We only need to process the node if it's compound + + if (0 < children.length && !node.isLocked) { + var offX = node.offsetX; + var offY = node.offsetY; // var s = "Propagating offset from parent node : " + node.id + + // ". OffsetX: " + offX + ". OffsetY: " + offY; + // s += "\n Children: " + children.toString(); + // logDebug(s); + + for (var i = 0; i < children.length; i++) { + var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children[i]]]; // Propagate offset + + childNode.offsetX += offX; + childNode.offsetY += offY; // Add children to queue to be visited + + queue[++end] = children[i]; + } // Reset parent offsets + + + node.offsetX = 0; + node.offsetY = 0; + } + } + }; + /** + * @brief : Updates the layout model positions, based on + * the accumulated forces + */ + + + var updatePositions = function updatePositions(layoutInfo, options) { + // var s = 'Updating positions'; + // logDebug(s); + // Reset boundaries for compound nodes + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = layoutInfo.layoutNodes[i]; + + if (0 < n.children.length) { + // logDebug("Resetting boundaries of compound node: " + n.id); + n.maxX = undefined; + n.minX = undefined; + n.maxY = undefined; + n.minY = undefined; + } + } + + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = layoutInfo.layoutNodes[i]; + + if (0 < n.children.length || n.isLocked) { + // No need to set compound or locked node position + // logDebug("Skipping position update of node: " + n.id); + continue; + } // s = "Node: " + n.id + " Previous position: (" + + // n.positionX + ", " + n.positionY + ")."; + // Limit displacement in order to improve stability + + + var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature); + n.positionX += tempForce.x; + n.positionY += tempForce.y; + n.offsetX = 0; + n.offsetY = 0; + n.minX = n.positionX - n.width; + n.maxX = n.positionX + n.width; + n.minY = n.positionY - n.height; + n.maxY = n.positionY + n.height; // s += " New Position: (" + n.positionX + ", " + n.positionY + ")."; + // logDebug(s); + // Update ancestry boudaries + + updateAncestryBoundaries(n, layoutInfo); + } // Update size, position of compund nodes + + + for (var i = 0; i < layoutInfo.nodeSize; i++) { + var n = layoutInfo.layoutNodes[i]; + + if (0 < n.children.length && !n.isLocked) { + n.positionX = (n.maxX + n.minX) / 2; + n.positionY = (n.maxY + n.minY) / 2; + n.width = n.maxX - n.minX; + n.height = n.maxY - n.minY; // s = "Updating position, size of compound node " + n.id; + // s += "\nPositionX: " + n.positionX + ", PositionY: " + n.positionY; + // s += "\nWidth: " + n.width + ", Height: " + n.height; + // logDebug(s); + } + } + }; + /** + * @brief : Limits a force (forceX, forceY) to be not + * greater (in modulo) than max. + 8 Preserves force direction. + */ + + + var limitForce = function limitForce(forceX, forceY, max) { + // var s = "Limiting force: (" + forceX + ", " + forceY + "). Max: " + max; + var force = Math.sqrt(forceX * forceX + forceY * forceY); + + if (force > max) { + var res = { + x: max * forceX / force, + y: max * forceY / force + }; + } else { + var res = { + x: forceX, + y: forceY + }; + } // s += ".\nResult: (" + res.x + ", " + res.y + ")"; + // logDebug(s); + + + return res; + }; + /** + * @brief : Function used for keeping track of compound node + * sizes, since they should bound all their subnodes. + */ + + + var updateAncestryBoundaries = function updateAncestryBoundaries(node, layoutInfo) { + // var s = "Propagating new position/size of node " + node.id; + var parentId = node.parentId; + + if (null == parentId) { + // If there's no parent, we are done + // s += ". No parent node."; + // logDebug(s); + return; + } // Get Parent Node + + + var p = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]]; + var flag = false; // MaxX + + if (null == p.maxX || node.maxX + p.padRight > p.maxX) { + p.maxX = node.maxX + p.padRight; + flag = true; // s += "\nNew maxX for parent node " + p.id + ": " + p.maxX; + } // MinX + + + if (null == p.minX || node.minX - p.padLeft < p.minX) { + p.minX = node.minX - p.padLeft; + flag = true; // s += "\nNew minX for parent node " + p.id + ": " + p.minX; + } // MaxY + + + if (null == p.maxY || node.maxY + p.padBottom > p.maxY) { + p.maxY = node.maxY + p.padBottom; + flag = true; // s += "\nNew maxY for parent node " + p.id + ": " + p.maxY; + } // MinY + + + if (null == p.minY || node.minY - p.padTop < p.minY) { + p.minY = node.minY - p.padTop; + flag = true; // s += "\nNew minY for parent node " + p.id + ": " + p.minY; + } // If updated boundaries, propagate changes upward + + + if (flag) { + // logDebug(s); + return updateAncestryBoundaries(p, layoutInfo); + } // s += ". No changes in boundaries/position of parent node " + p.id; + // logDebug(s); + + + return; + }; + + var separateComponents = function separateComponents(layoutInfo, options) { + var nodes = layoutInfo.layoutNodes; + var components = []; + + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + var cid = node.cmptId; + var component = components[cid] = components[cid] || []; + component.push(node); + } + + var totalA = 0; + + for (var i = 0; i < components.length; i++) { + var c = components[i]; + + if (!c) { + continue; + } + + c.x1 = Infinity; + c.x2 = -Infinity; + c.y1 = Infinity; + c.y2 = -Infinity; + + for (var j = 0; j < c.length; j++) { + var n = c[j]; + c.x1 = Math.min(c.x1, n.positionX - n.width / 2); + c.x2 = Math.max(c.x2, n.positionX + n.width / 2); + c.y1 = Math.min(c.y1, n.positionY - n.height / 2); + c.y2 = Math.max(c.y2, n.positionY + n.height / 2); + } + + c.w = c.x2 - c.x1; + c.h = c.y2 - c.y1; + totalA += c.w * c.h; + } + + components.sort(function (c1, c2) { + return c2.w * c2.h - c1.w * c1.h; + }); + var x = 0; + var y = 0; + var usedW = 0; + var rowH = 0; + var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight; + + for (var i = 0; i < components.length; i++) { + var c = components[i]; + + if (!c) { + continue; + } + + for (var j = 0; j < c.length; j++) { + var n = c[j]; + + if (!n.isLocked) { + n.positionX += x - c.x1; + n.positionY += y - c.y1; + } + } + + x += c.w + options.componentSpacing; + usedW += c.w + options.componentSpacing; + rowH = Math.max(rowH, c.h); + + if (usedW > maxRowW) { + y += rowH + options.componentSpacing; + x = 0; + usedW = 0; + rowH = 0; + } + } + }; + + var defaults$3 = { + fit: true, + // whether to fit the viewport to the graph + padding: 30, + // padding used on fit + boundingBox: undefined, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + avoidOverlap: true, + // prevents node overlap, may overflow boundingBox if not enough space + avoidOverlapPadding: 10, + // extra spacing around nodes when avoidOverlap: true + nodeDimensionsIncludeLabels: false, + // Excludes the label when calculating node bounding boxes for the layout algorithm + spacingFactor: undefined, + // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up + condense: false, + // uses all available space on false, uses minimal space on true + rows: undefined, + // force num of rows in the grid + cols: undefined, + // force num of columns in the grid + position: function position(node) {}, + // returns { row, col } for element + sort: undefined, + // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + + function GridLayout(options) { + this.options = extend({}, defaults$3, options); + } + + GridLayout.prototype.run = function () { + var params = this.options; + var options = params; + var cy = params.cy; + var eles = options.eles; + var nodes = eles.nodes().not(':parent'); + + if (options.sort) { + nodes = nodes.sort(options.sort); + } + + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + + if (bb.h === 0 || bb.w === 0) { + eles.nodes().layoutPositions(this, options, function (ele) { + return { + x: bb.x1, + y: bb.y1 + }; + }); + } else { + // width/height * splits^2 = cells where splits is number of times to split width + var cells = nodes.size(); + var splits = Math.sqrt(cells * bb.h / bb.w); + var rows = Math.round(splits); + var cols = Math.round(bb.w / bb.h * splits); + + var small = function small(val) { + if (val == null) { + return Math.min(rows, cols); + } else { + var min = Math.min(rows, cols); + + if (min == rows) { + rows = val; + } else { + cols = val; + } + } + }; + + var large = function large(val) { + if (val == null) { + return Math.max(rows, cols); + } else { + var max = Math.max(rows, cols); + + if (max == rows) { + rows = val; + } else { + cols = val; + } + } + }; + + var oRows = options.rows; + var oCols = options.cols != null ? options.cols : options.columns; // if rows or columns were set in options, use those values + + if (oRows != null && oCols != null) { + rows = oRows; + cols = oCols; + } else if (oRows != null && oCols == null) { + rows = oRows; + cols = Math.ceil(cells / rows); + } else if (oRows == null && oCols != null) { + cols = oCols; + rows = Math.ceil(cells / cols); + } // otherwise use the automatic values and adjust accordingly + // if rounding was up, see if we can reduce rows or columns + else if (cols * rows > cells) { + var sm = small(); + var lg = large(); // reducing the small side takes away the most cells, so try it first + + if ((sm - 1) * lg >= cells) { + small(sm - 1); + } else if ((lg - 1) * sm >= cells) { + large(lg - 1); + } + } else { + // if rounding was too low, add rows or columns + while (cols * rows < cells) { + var _sm = small(); + + var _lg = large(); // try to add to larger side first (adds less in multiplication) + + + if ((_lg + 1) * _sm >= cells) { + large(_lg + 1); + } else { + small(_sm + 1); + } + } + } + + var cellWidth = bb.w / cols; + var cellHeight = bb.h / rows; + + if (options.condense) { + cellWidth = 0; + cellHeight = 0; + } + + if (options.avoidOverlap) { + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + var pos = node._private.position; + + if (pos.x == null || pos.y == null) { + // for bb + pos.x = 0; + pos.y = 0; + } + + var nbb = node.layoutDimensions(options); + var p = options.avoidOverlapPadding; + var w = nbb.w + p; + var h = nbb.h + p; + cellWidth = Math.max(cellWidth, w); + cellHeight = Math.max(cellHeight, h); + } + } + + var cellUsed = {}; // e.g. 'c-0-2' => true + + var used = function used(row, col) { + return cellUsed['c-' + row + '-' + col] ? true : false; + }; + + var use = function use(row, col) { + cellUsed['c-' + row + '-' + col] = true; + }; // to keep track of current cell position + + + var row = 0; + var col = 0; + + var moveToNextCell = function moveToNextCell() { + col++; + + if (col >= cols) { + col = 0; + row++; + } + }; // get a cache of all the manual positions + + + var id2manPos = {}; + + for (var _i = 0; _i < nodes.length; _i++) { + var _node = nodes[_i]; + var rcPos = options.position(_node); + + if (rcPos && (rcPos.row !== undefined || rcPos.col !== undefined)) { + // must have at least row or col def'd + var _pos = { + row: rcPos.row, + col: rcPos.col + }; + + if (_pos.col === undefined) { + // find unused col + _pos.col = 0; + + while (used(_pos.row, _pos.col)) { + _pos.col++; + } + } else if (_pos.row === undefined) { + // find unused row + _pos.row = 0; + + while (used(_pos.row, _pos.col)) { + _pos.row++; + } + } + + id2manPos[_node.id()] = _pos; + use(_pos.row, _pos.col); + } + } + + var getPos = function getPos(element, i) { + var x, y; + + if (element.locked() || element.isParent()) { + return false; + } // see if we have a manual position set + + + var rcPos = id2manPos[element.id()]; + + if (rcPos) { + x = rcPos.col * cellWidth + cellWidth / 2 + bb.x1; + y = rcPos.row * cellHeight + cellHeight / 2 + bb.y1; + } else { + // otherwise set automatically + while (used(row, col)) { + moveToNextCell(); + } + + x = col * cellWidth + cellWidth / 2 + bb.x1; + y = row * cellHeight + cellHeight / 2 + bb.y1; + use(row, col); + moveToNextCell(); + } + + return { + x: x, + y: y + }; + }; + + nodes.layoutPositions(this, options, getPos); + } + + return this; // chaining + }; + + var defaults$2 = { + ready: function ready() {}, + // on layoutready + stop: function stop() {} // on layoutstop + + }; // constructor + // options : object containing layout options + + function NullLayout(options) { + this.options = extend({}, defaults$2, options); + } // runs the layout + + + NullLayout.prototype.run = function () { + var options = this.options; + var eles = options.eles; // elements to consider in the layout + + var layout = this; // cy is automatically populated for us in the constructor + // (disable eslint for next line as this serves as example layout code to external developers) + // eslint-disable-next-line no-unused-vars + + options.cy; + layout.emit('layoutstart'); // puts all nodes at (0, 0) + // n.b. most layouts would use layoutPositions(), instead of positions() and manual events + + eles.nodes().positions(function () { + return { + x: 0, + y: 0 + }; + }); // trigger layoutready when each node has had its position set at least once + + layout.one('layoutready', options.ready); + layout.emit('layoutready'); // trigger layoutstop when the layout stops (e.g. finishes) + + layout.one('layoutstop', options.stop); + layout.emit('layoutstop'); + return this; // chaining + }; // called on continuous layouts to stop them before they finish + + + NullLayout.prototype.stop = function () { + return this; // chaining + }; + + var defaults$1 = { + positions: undefined, + // map of (node id) => (position obj); or function(node){ return somPos; } + zoom: undefined, + // the zoom level to set (prob want fit = false if set) + pan: undefined, + // the pan level to set (prob want fit = false if set) + fit: true, + // whether to fit to viewport + padding: 30, + // padding on fit + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + + function PresetLayout(options) { + this.options = extend({}, defaults$1, options); + } + + PresetLayout.prototype.run = function () { + var options = this.options; + var eles = options.eles; + var nodes = eles.nodes(); + var posIsFn = fn$6(options.positions); + + function getPosition(node) { + if (options.positions == null) { + return copyPosition(node.position()); + } + + if (posIsFn) { + return options.positions(node); + } + + var pos = options.positions[node._private.data.id]; + + if (pos == null) { + return null; + } + + return pos; + } + + nodes.layoutPositions(this, options, function (node, i) { + var position = getPosition(node); + + if (node.locked() || position == null) { + return false; + } + + return position; + }); + return this; // chaining + }; + + var defaults = { + fit: true, + // whether to fit to viewport + padding: 30, + // fit padding + boundingBox: undefined, + // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h } + animate: false, + // whether to transition the node positions + animationDuration: 500, + // duration of animation in ms if enabled + animationEasing: undefined, + // easing of animation if enabled + animateFilter: function animateFilter(node, i) { + return true; + }, + // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts + ready: undefined, + // callback on layoutready + stop: undefined, + // callback on layoutstop + transform: function transform(node, position) { + return position; + } // transform a given node position. Useful for changing flow direction in discrete layouts + + }; + + function RandomLayout(options) { + this.options = extend({}, defaults, options); + } + + RandomLayout.prototype.run = function () { + var options = this.options; + var cy = options.cy; + var eles = options.eles; + var bb = makeBoundingBox(options.boundingBox ? options.boundingBox : { + x1: 0, + y1: 0, + w: cy.width(), + h: cy.height() + }); + + var getPos = function getPos(node, i) { + return { + x: bb.x1 + Math.round(Math.random() * bb.w), + y: bb.y1 + Math.round(Math.random() * bb.h) + }; + }; + + eles.nodes().layoutPositions(this, options, getPos); + return this; // chaining + }; + + var layout = [{ + name: 'breadthfirst', + impl: BreadthFirstLayout + }, { + name: 'circle', + impl: CircleLayout + }, { + name: 'concentric', + impl: ConcentricLayout + }, { + name: 'cose', + impl: CoseLayout + }, { + name: 'grid', + impl: GridLayout + }, { + name: 'null', + impl: NullLayout + }, { + name: 'preset', + impl: PresetLayout + }, { + name: 'random', + impl: RandomLayout + }]; + + function NullRenderer(options) { + this.options = options; + this.notifications = 0; // for testing + } + + var noop = function noop() {}; + + var throwImgErr = function throwImgErr() { + throw new Error('A headless instance can not render images'); + }; + + NullRenderer.prototype = { + recalculateRenderedStyle: noop, + notify: function notify() { + this.notifications++; + }, + init: noop, + isHeadless: function isHeadless() { + return true; + }, + png: throwImgErr, + jpg: throwImgErr + }; + + var BRp$f = {}; + BRp$f.arrowShapeWidth = 0.3; + + BRp$f.registerArrowShapes = function () { + var arrowShapes = this.arrowShapes = {}; + var renderer = this; // Contract for arrow shapes: + // 0, 0 is arrow tip + // (0, 1) is direction towards node + // (1, 0) is right + // + // functional api: + // collide: check x, y in shape + // roughCollide: called before collide, no false negatives + // draw: draw + // spacing: dist(arrowTip, nodeBoundary) + // gap: dist(edgeTip, nodeBoundary), edgeTip may != arrowTip + + var bbCollide = function bbCollide(x, y, size, angle, translation, edgeWidth, padding) { + var x1 = translation.x - size / 2 - padding; + var x2 = translation.x + size / 2 + padding; + var y1 = translation.y - size / 2 - padding; + var y2 = translation.y + size / 2 + padding; + var inside = x1 <= x && x <= x2 && y1 <= y && y <= y2; + return inside; + }; + + var transform = function transform(x, y, size, angle, translation) { + var xRotated = x * Math.cos(angle) - y * Math.sin(angle); + var yRotated = x * Math.sin(angle) + y * Math.cos(angle); + var xScaled = xRotated * size; + var yScaled = yRotated * size; + var xTranslated = xScaled + translation.x; + var yTranslated = yScaled + translation.y; + return { + x: xTranslated, + y: yTranslated + }; + }; + + var transformPoints = function transformPoints(pts, size, angle, translation) { + var retPts = []; + + for (var i = 0; i < pts.length; i += 2) { + var x = pts[i]; + var y = pts[i + 1]; + retPts.push(transform(x, y, size, angle, translation)); + } + + return retPts; + }; + + var pointsToArr = function pointsToArr(pts) { + var ret = []; + + for (var i = 0; i < pts.length; i++) { + var p = pts[i]; + ret.push(p.x, p.y); + } + + return ret; + }; + + var standardGap = function standardGap(edge) { + return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').pfValue * 2; + }; + + var defineArrowShape = function defineArrowShape(name, defn) { + if (string(defn)) { + defn = arrowShapes[defn]; + } + + arrowShapes[name] = extend({ + name: name, + points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3], + collide: function collide(x, y, size, angle, translation, padding) { + var points = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + var inside = pointInsidePolygonPoints(x, y, points); + return inside; + }, + roughCollide: bbCollide, + draw: function draw(context, size, angle, translation) { + var points = transformPoints(this.points, size, angle, translation); + renderer.arrowShapeImpl('polygon')(context, points); + }, + spacing: function spacing(edge) { + return 0; + }, + gap: standardGap + }, defn); + }; + + defineArrowShape('none', { + collide: falsify, + roughCollide: falsify, + draw: noop$1, + spacing: zeroify, + gap: zeroify + }); + defineArrowShape('triangle', { + points: [-0.15, -0.3, 0, 0, 0.15, -0.3] + }); + defineArrowShape('arrow', 'triangle'); + defineArrowShape('triangle-backcurve', { + points: arrowShapes['triangle'].points, + controlPoint: [0, -0.15], + roughCollide: bbCollide, + draw: function draw(context, size, angle, translation, edgeWidth) { + var ptsTrans = transformPoints(this.points, size, angle, translation); + var ctrlPt = this.controlPoint; + var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size, angle, translation); + renderer.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans); + }, + gap: function gap(edge) { + return standardGap(edge) * 0.8; + } + }); + defineArrowShape('triangle-tee', { + points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0], + pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4], + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + var teePts = pointsToArr(transformPoints(this.pointsTee, size + 2 * padding, angle, translation)); + var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts); + return inside; + }, + draw: function draw(context, size, angle, translation, edgeWidth) { + var triPts = transformPoints(this.points, size, angle, translation); + var teePts = transformPoints(this.pointsTee, size, angle, translation); + renderer.arrowShapeImpl(this.name)(context, triPts, teePts); + } + }); + defineArrowShape('circle-triangle', { + radius: 0.15, + pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15], + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var t = translation; + var circleInside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2); + var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + return pointInsidePolygonPoints(x, y, triPts) || circleInside; + }, + draw: function draw(context, size, angle, translation, edgeWidth) { + var triPts = transformPoints(this.pointsTr, size, angle, translation); + renderer.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size); + }, + spacing: function spacing(edge) { + return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius; + } + }); + defineArrowShape('triangle-cross', { + points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0], + baseCrossLinePts: [-0.15, -0.4, // first half of the rectangle + -0.15, -0.4, 0.15, -0.4, // second half of the rectangle + 0.15, -0.4], + crossLinePts: function crossLinePts(size, edgeWidth) { + // shift points so that the distance between the cross points matches edge width + var p = this.baseCrossLinePts.slice(); + var shiftFactor = edgeWidth / size; + var y0 = 3; + var y1 = 5; + p[y0] = p[y0] - shiftFactor; + p[y1] = p[y1] - shiftFactor; + return p; + }, + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var triPts = pointsToArr(transformPoints(this.points, size + 2 * padding, angle, translation)); + var teePts = pointsToArr(transformPoints(this.crossLinePts(size, edgeWidth), size + 2 * padding, angle, translation)); + var inside = pointInsidePolygonPoints(x, y, triPts) || pointInsidePolygonPoints(x, y, teePts); + return inside; + }, + draw: function draw(context, size, angle, translation, edgeWidth) { + var triPts = transformPoints(this.points, size, angle, translation); + var crossLinePts = transformPoints(this.crossLinePts(size, edgeWidth), size, angle, translation); + renderer.arrowShapeImpl(this.name)(context, triPts, crossLinePts); + } + }); + defineArrowShape('vee', { + points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15], + gap: function gap(edge) { + return standardGap(edge) * 0.525; + } + }); + defineArrowShape('circle', { + radius: 0.15, + collide: function collide(x, y, size, angle, translation, edgeWidth, padding) { + var t = translation; + var inside = Math.pow(t.x - x, 2) + Math.pow(t.y - y, 2) <= Math.pow((size + 2 * padding) * this.radius, 2); + return inside; + }, + draw: function draw(context, size, angle, translation, edgeWidth) { + renderer.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size); + }, + spacing: function spacing(edge) { + return renderer.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.radius; + } + }); + defineArrowShape('tee', { + points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0], + spacing: function spacing(edge) { + return 1; + }, + gap: function gap(edge) { + return 1; + } + }); + defineArrowShape('square', { + points: [-0.15, 0.00, 0.15, 0.00, 0.15, -0.3, -0.15, -0.3] + }); + defineArrowShape('diamond', { + points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0], + gap: function gap(edge) { + return edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value; + } + }); + defineArrowShape('chevron', { + points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15], + gap: function gap(edge) { + return 0.95 * edge.pstyle('width').pfValue * edge.pstyle('arrow-scale').value; + } + }); + }; + + var BRp$e = {}; // Project mouse + + BRp$e.projectIntoViewport = function (clientX, clientY) { + var cy = this.cy; + var offsets = this.findContainerClientCoords(); + var offsetLeft = offsets[0]; + var offsetTop = offsets[1]; + var scale = offsets[4]; + var pan = cy.pan(); + var zoom = cy.zoom(); + var x = ((clientX - offsetLeft) / scale - pan.x) / zoom; + var y = ((clientY - offsetTop) / scale - pan.y) / zoom; + return [x, y]; + }; + + BRp$e.findContainerClientCoords = function () { + if (this.containerBB) { + return this.containerBB; + } + + var container = this.container; + var rect = container.getBoundingClientRect(); + var style = this.cy.window().getComputedStyle(container); + + var styleValue = function styleValue(name) { + return parseFloat(style.getPropertyValue(name)); + }; + + var padding = { + left: styleValue('padding-left'), + right: styleValue('padding-right'), + top: styleValue('padding-top'), + bottom: styleValue('padding-bottom') + }; + var border = { + left: styleValue('border-left-width'), + right: styleValue('border-right-width'), + top: styleValue('border-top-width'), + bottom: styleValue('border-bottom-width') + }; + var clientWidth = container.clientWidth; + var clientHeight = container.clientHeight; + var paddingHor = padding.left + padding.right; + var paddingVer = padding.top + padding.bottom; + var borderHor = border.left + border.right; + var scale = rect.width / (clientWidth + borderHor); + var unscaledW = clientWidth - paddingHor; + var unscaledH = clientHeight - paddingVer; + var left = rect.left + padding.left + border.left; + var top = rect.top + padding.top + border.top; + return this.containerBB = [left, top, unscaledW, unscaledH, scale]; + }; + + BRp$e.invalidateContainerClientCoordsCache = function () { + this.containerBB = null; + }; + + BRp$e.findNearestElement = function (x, y, interactiveElementsOnly, isTouch) { + return this.findNearestElements(x, y, interactiveElementsOnly, isTouch)[0]; + }; + + BRp$e.findNearestElements = function (x, y, interactiveElementsOnly, isTouch) { + var self = this; + var r = this; + var eles = r.getCachedZSortedEles(); + var near = []; // 1 node max, 1 edge max + + var zoom = r.cy.zoom(); + var hasCompounds = r.cy.hasCompoundNodes(); + var edgeThreshold = (isTouch ? 24 : 8) / zoom; + var nodeThreshold = (isTouch ? 8 : 2) / zoom; + var labelThreshold = (isTouch ? 8 : 2) / zoom; + var minSqDist = Infinity; + var nearEdge; + var nearNode; + + if (interactiveElementsOnly) { + eles = eles.interactive; + } + + function addEle(ele, sqDist) { + if (ele.isNode()) { + if (nearNode) { + return; // can't replace node + } else { + nearNode = ele; + near.push(ele); + } + } + + if (ele.isEdge() && (sqDist == null || sqDist < minSqDist)) { + if (nearEdge) { + // then replace existing edge + // can replace only if same z-index + if (nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value && nearEdge.pstyle('z-compound-depth').value === ele.pstyle('z-compound-depth').value) { + for (var i = 0; i < near.length; i++) { + if (near[i].isEdge()) { + near[i] = ele; + nearEdge = ele; + minSqDist = sqDist != null ? sqDist : minSqDist; + break; + } + } + } + } else { + near.push(ele); + nearEdge = ele; + minSqDist = sqDist != null ? sqDist : minSqDist; + } + } + } + + function checkNode(node) { + var width = node.outerWidth() + 2 * nodeThreshold; + var height = node.outerHeight() + 2 * nodeThreshold; + var hw = width / 2; + var hh = height / 2; + var pos = node.position(); + + if (pos.x - hw <= x && x <= pos.x + hw // bb check x + && pos.y - hh <= y && y <= pos.y + hh // bb check y + ) { + var shape = r.nodeShapes[self.getNodeShape(node)]; + + if (shape.checkPoint(x, y, 0, width, height, pos.x, pos.y)) { + addEle(node, 0); + return true; + } + } + } + + function checkEdge(edge) { + var _p = edge._private; + var rs = _p.rscratch; + var styleWidth = edge.pstyle('width').pfValue; + var scale = edge.pstyle('arrow-scale').value; + var width = styleWidth / 2 + edgeThreshold; // more like a distance radius from centre + + var widthSq = width * width; + var width2 = width * 2; + var src = _p.source; + var tgt = _p.target; + var sqDist; + + if (rs.edgeType === 'segments' || rs.edgeType === 'straight' || rs.edgeType === 'haystack') { + var pts = rs.allpts; + + for (var i = 0; i + 3 < pts.length; i += 2) { + if (inLineVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], width2) && widthSq > (sqDist = sqdistToFiniteLine(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3]))) { + addEle(edge, sqDist); + return true; + } + } + } else if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') { + var pts = rs.allpts; + + for (var i = 0; i + 5 < rs.allpts.length; i += 4) { + if (inBezierVicinity(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5], width2) && widthSq > (sqDist = sqdistToQuadraticBezier(x, y, pts[i], pts[i + 1], pts[i + 2], pts[i + 3], pts[i + 4], pts[i + 5]))) { + addEle(edge, sqDist); + return true; + } + } + } // if we're close to the edge but didn't hit it, maybe we hit its arrows + + + var src = src || _p.source; + var tgt = tgt || _p.target; + var arSize = self.getArrowWidth(styleWidth, scale); + var arrows = [{ + name: 'source', + x: rs.arrowStartX, + y: rs.arrowStartY, + angle: rs.srcArrowAngle + }, { + name: 'target', + x: rs.arrowEndX, + y: rs.arrowEndY, + angle: rs.tgtArrowAngle + }, { + name: 'mid-source', + x: rs.midX, + y: rs.midY, + angle: rs.midsrcArrowAngle + }, { + name: 'mid-target', + x: rs.midX, + y: rs.midY, + angle: rs.midtgtArrowAngle + }]; + + for (var i = 0; i < arrows.length; i++) { + var ar = arrows[i]; + var shape = r.arrowShapes[edge.pstyle(ar.name + '-arrow-shape').value]; + var edgeWidth = edge.pstyle('width').pfValue; + + if (shape.roughCollide(x, y, arSize, ar.angle, { + x: ar.x, + y: ar.y + }, edgeWidth, edgeThreshold) && shape.collide(x, y, arSize, ar.angle, { + x: ar.x, + y: ar.y + }, edgeWidth, edgeThreshold)) { + addEle(edge); + return true; + } + } // for compound graphs, hitting edge may actually want a connected node instead (b/c edge may have greater z-index precedence) + + + if (hasCompounds && near.length > 0) { + checkNode(src); + checkNode(tgt); + } + } + + function preprop(obj, name, pre) { + return getPrefixedProperty(obj, name, pre); + } + + function checkLabel(ele, prefix) { + var _p = ele._private; + var th = labelThreshold; + var prefixDash; + + if (prefix) { + prefixDash = prefix + '-'; + } else { + prefixDash = ''; + } + + ele.boundingBox(); + var bb = _p.labelBounds[prefix || 'main']; + var text = ele.pstyle(prefixDash + 'label').value; + var eventsEnabled = ele.pstyle('text-events').strValue === 'yes'; + + if (!eventsEnabled || !text) { + return; + } + + var lx = preprop(_p.rscratch, 'labelX', prefix); + var ly = preprop(_p.rscratch, 'labelY', prefix); + var theta = preprop(_p.rscratch, 'labelAngle', prefix); + var ox = ele.pstyle(prefixDash + 'text-margin-x').pfValue; + var oy = ele.pstyle(prefixDash + 'text-margin-y').pfValue; + var lx1 = bb.x1 - th - ox; // (-ox, -oy) as bb already includes margin + + var lx2 = bb.x2 + th - ox; // and rotation is about (lx, ly) + + var ly1 = bb.y1 - th - oy; + var ly2 = bb.y2 + th - oy; + + if (theta) { + var cos = Math.cos(theta); + var sin = Math.sin(theta); + + var rotate = function rotate(x, y) { + x = x - lx; + y = y - ly; + return { + x: x * cos - y * sin + lx, + y: x * sin + y * cos + ly + }; + }; + + var px1y1 = rotate(lx1, ly1); + var px1y2 = rotate(lx1, ly2); + var px2y1 = rotate(lx2, ly1); + var px2y2 = rotate(lx2, ly2); + var points = [// with the margin added after the rotation is applied + px1y1.x + ox, px1y1.y + oy, px2y1.x + ox, px2y1.y + oy, px2y2.x + ox, px2y2.y + oy, px1y2.x + ox, px1y2.y + oy]; + + if (pointInsidePolygonPoints(x, y, points)) { + addEle(ele); + return true; + } + } else { + // do a cheaper bb check + if (inBoundingBox(bb, x, y)) { + addEle(ele); + return true; + } + } + } + + for (var i = eles.length - 1; i >= 0; i--) { + // reverse order for precedence + var ele = eles[i]; + + if (ele.isNode()) { + checkNode(ele) || checkLabel(ele); + } else { + // then edge + checkEdge(ele) || checkLabel(ele) || checkLabel(ele, 'source') || checkLabel(ele, 'target'); + } + } + + return near; + }; // 'Give me everything from this box' + + + BRp$e.getAllInBox = function (x1, y1, x2, y2) { + var eles = this.getCachedZSortedEles().interactive; + var box = []; + var x1c = Math.min(x1, x2); + var x2c = Math.max(x1, x2); + var y1c = Math.min(y1, y2); + var y2c = Math.max(y1, y2); + x1 = x1c; + x2 = x2c; + y1 = y1c; + y2 = y2c; + var boxBb = makeBoundingBox({ + x1: x1, + y1: y1, + x2: x2, + y2: y2 + }); + + for (var e = 0; e < eles.length; e++) { + var ele = eles[e]; + + if (ele.isNode()) { + var node = ele; + var nodeBb = node.boundingBox({ + includeNodes: true, + includeEdges: false, + includeLabels: false + }); + + if (boundingBoxesIntersect(boxBb, nodeBb) && !boundingBoxInBoundingBox(nodeBb, boxBb)) { + box.push(node); + } + } else { + var edge = ele; + var _p = edge._private; + var rs = _p.rscratch; + + if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) { + continue; + } + + if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) { + continue; + } + + if (rs.edgeType === 'bezier' || rs.edgeType === 'multibezier' || rs.edgeType === 'self' || rs.edgeType === 'compound' || rs.edgeType === 'segments' || rs.edgeType === 'haystack') { + var pts = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts; + var allInside = true; + + for (var i = 0; i < pts.length; i++) { + if (!pointInBoundingBox(boxBb, pts[i])) { + allInside = false; + break; + } + } + + if (allInside) { + box.push(edge); + } + } else if (rs.edgeType === 'haystack' || rs.edgeType === 'straight') { + box.push(edge); + } + } + } + + return box; + }; + + var BRp$d = {}; + + BRp$d.calculateArrowAngles = function (edge) { + var rs = edge._private.rscratch; + var isHaystack = rs.edgeType === 'haystack'; + var isBezier = rs.edgeType === 'bezier'; + var isMultibezier = rs.edgeType === 'multibezier'; + var isSegments = rs.edgeType === 'segments'; + var isCompound = rs.edgeType === 'compound'; + var isSelf = rs.edgeType === 'self'; // Displacement gives direction for arrowhead orientation + + var dispX, dispY; + var startX, startY, endX, endY, midX, midY; + + if (isHaystack) { + startX = rs.haystackPts[0]; + startY = rs.haystackPts[1]; + endX = rs.haystackPts[2]; + endY = rs.haystackPts[3]; + } else { + startX = rs.arrowStartX; + startY = rs.arrowStartY; + endX = rs.arrowEndX; + endY = rs.arrowEndY; + } + + midX = rs.midX; + midY = rs.midY; // source + // + + if (isSegments) { + dispX = startX - rs.segpts[0]; + dispY = startY - rs.segpts[1]; + } else if (isMultibezier || isCompound || isSelf || isBezier) { + var pts = rs.allpts; + var bX = qbezierAt(pts[0], pts[2], pts[4], 0.1); + var bY = qbezierAt(pts[1], pts[3], pts[5], 0.1); + dispX = startX - bX; + dispY = startY - bY; + } else { + dispX = startX - midX; + dispY = startY - midY; + } + + rs.srcArrowAngle = getAngleFromDisp(dispX, dispY); // mid target + // + + var midX = rs.midX; + var midY = rs.midY; + + if (isHaystack) { + midX = (startX + endX) / 2; + midY = (startY + endY) / 2; + } + + dispX = endX - startX; + dispY = endY - startY; + + if (isSegments) { + var pts = rs.allpts; + + if (pts.length / 2 % 2 === 0) { + var i2 = pts.length / 2; + var i1 = i2 - 2; + dispX = pts[i2] - pts[i1]; + dispY = pts[i2 + 1] - pts[i1 + 1]; + } else { + var i2 = pts.length / 2 - 1; + var i1 = i2 - 2; + var i3 = i2 + 2; + dispX = pts[i2] - pts[i1]; + dispY = pts[i2 + 1] - pts[i1 + 1]; + } + } else if (isMultibezier || isCompound || isSelf) { + var pts = rs.allpts; + var cpts = rs.ctrlpts; + var bp0x, bp0y; + var bp1x, bp1y; + + if (cpts.length / 2 % 2 === 0) { + var p0 = pts.length / 2 - 1; // startpt + + var ic = p0 + 2; + var p1 = ic + 2; + bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0); + bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0); + bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.0001); + bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.0001); + } else { + var ic = pts.length / 2 - 1; // ctrpt + + var p0 = ic - 2; // startpt + + var p1 = ic + 2; // endpt + + bp0x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.4999); + bp0y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.4999); + bp1x = qbezierAt(pts[p0], pts[ic], pts[p1], 0.5); + bp1y = qbezierAt(pts[p0 + 1], pts[ic + 1], pts[p1 + 1], 0.5); + } + + dispX = bp1x - bp0x; + dispY = bp1y - bp0y; + } + + rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY); + rs.midDispX = dispX; + rs.midDispY = dispY; // mid source + // + + dispX *= -1; + dispY *= -1; + + if (isSegments) { + var pts = rs.allpts; + + if (pts.length / 2 % 2 === 0) ; else { + var i2 = pts.length / 2 - 1; + var i3 = i2 + 2; + dispX = -(pts[i3] - pts[i2]); + dispY = -(pts[i3 + 1] - pts[i2 + 1]); + } + } + + rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY); // target + // + + if (isSegments) { + dispX = endX - rs.segpts[rs.segpts.length - 2]; + dispY = endY - rs.segpts[rs.segpts.length - 1]; + } else if (isMultibezier || isCompound || isSelf || isBezier) { + var pts = rs.allpts; + var l = pts.length; + var bX = qbezierAt(pts[l - 6], pts[l - 4], pts[l - 2], 0.9); + var bY = qbezierAt(pts[l - 5], pts[l - 3], pts[l - 1], 0.9); + dispX = endX - bX; + dispY = endY - bY; + } else { + dispX = endX - midX; + dispY = endY - midY; + } + + rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY); + }; + + BRp$d.getArrowWidth = BRp$d.getArrowHeight = function (edgeWidth, scale) { + var cache = this.arrowWidthCache = this.arrowWidthCache || {}; + var cachedVal = cache[edgeWidth + ', ' + scale]; + + if (cachedVal) { + return cachedVal; + } + + cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale; + cache[edgeWidth + ', ' + scale] = cachedVal; + return cachedVal; + }; + + var BRp$c = {}; + + BRp$c.findHaystackPoints = function (edges) { + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + var _p = edge._private; + var rs = _p.rscratch; + + if (!rs.haystack) { + var angle = Math.random() * 2 * Math.PI; + rs.source = { + x: Math.cos(angle), + y: Math.sin(angle) + }; + angle = Math.random() * 2 * Math.PI; + rs.target = { + x: Math.cos(angle), + y: Math.sin(angle) + }; + } + + var src = _p.source; + var tgt = _p.target; + var srcPos = src.position(); + var tgtPos = tgt.position(); + var srcW = src.width(); + var tgtW = tgt.width(); + var srcH = src.height(); + var tgtH = tgt.height(); + var radius = edge.pstyle('haystack-radius').value; + var halfRadius = radius / 2; // b/c have to half width/height + + rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y]; + rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2; + rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2; // always override as haystack in case set to different type previously + + rs.edgeType = 'haystack'; + rs.haystack = true; + this.storeEdgeProjections(edge); + this.calculateArrowAngles(edge); + this.recalculateEdgeLabelProjections(edge); + this.calculateLabelAngles(edge); + } + }; + + BRp$c.findSegmentsPoints = function (edge, pairInfo) { + // Segments (multiple straight lines) + var rs = edge._private.rscratch; + var posPts = pairInfo.posPts, + intersectionPts = pairInfo.intersectionPts, + vectorNormInverse = pairInfo.vectorNormInverse; + var edgeDistances = edge.pstyle('edge-distances').value; + var segmentWs = edge.pstyle('segment-weights'); + var segmentDs = edge.pstyle('segment-distances'); + var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length); + rs.edgeType = 'segments'; + rs.segpts = []; + + for (var s = 0; s < segmentsN; s++) { + var w = segmentWs.pfValue[s]; + var d = segmentDs.pfValue[s]; + var w1 = 1 - w; + var w2 = w; + var midptPts = edgeDistances === 'node-position' ? posPts : intersectionPts; + var adjustedMidpt = { + x: midptPts.x1 * w1 + midptPts.x2 * w2, + y: midptPts.y1 * w1 + midptPts.y2 * w2 + }; + rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d); + } + }; + + BRp$c.findLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) { + // Self-edge + var rs = edge._private.rscratch; + var dirCounts = pairInfo.dirCounts, + srcPos = pairInfo.srcPos; + var ctrlptDists = edge.pstyle('control-point-distances'); + var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined; + var loopDir = edge.pstyle('loop-direction').pfValue; + var loopSwp = edge.pstyle('loop-sweep').pfValue; + var stepSize = edge.pstyle('control-point-step-size').pfValue; + rs.edgeType = 'self'; + var j = i; + var loopDist = stepSize; + + if (edgeIsUnbundled) { + j = 0; + loopDist = ctrlptDist; + } + + var loopAngle = loopDir - Math.PI / 2; + var outAngle = loopAngle - loopSwp / 2; + var inAngle = loopAngle + loopSwp / 2; // increase by step size for overlapping loops, keyed on direction and sweep values + + var dc = String(loopDir + '_' + loopSwp); + j = dirCounts[dc] === undefined ? dirCounts[dc] = 0 : ++dirCounts[dc]; + rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)]; + }; + + BRp$c.findCompoundLoopPoints = function (edge, pairInfo, i, edgeIsUnbundled) { + // Compound edge + var rs = edge._private.rscratch; + rs.edgeType = 'compound'; + var srcPos = pairInfo.srcPos, + tgtPos = pairInfo.tgtPos, + srcW = pairInfo.srcW, + srcH = pairInfo.srcH, + tgtW = pairInfo.tgtW, + tgtH = pairInfo.tgtH; + var stepSize = edge.pstyle('control-point-step-size').pfValue; + var ctrlptDists = edge.pstyle('control-point-distances'); + var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined; + var j = i; + var loopDist = stepSize; + + if (edgeIsUnbundled) { + j = 0; + loopDist = ctrlptDist; + } + + var loopW = 50; + var loopaPos = { + x: srcPos.x - srcW / 2, + y: srcPos.y - srcH / 2 + }; + var loopbPos = { + x: tgtPos.x - tgtW / 2, + y: tgtPos.y - tgtH / 2 + }; + var loopPos = { + x: Math.min(loopaPos.x, loopbPos.x), + y: Math.min(loopaPos.y, loopbPos.y) + }; // avoids cases with impossible beziers + + var minCompoundStretch = 0.5; + var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01)); + var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01)); + rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y]; + }; + + BRp$c.findStraightEdgePoints = function (edge) { + // Straight edge within bundle + edge._private.rscratch.edgeType = 'straight'; + }; + + BRp$c.findBezierPoints = function (edge, pairInfo, i, edgeIsUnbundled, edgeIsSwapped) { + var rs = edge._private.rscratch; + var vectorNormInverse = pairInfo.vectorNormInverse, + posPts = pairInfo.posPts, + intersectionPts = pairInfo.intersectionPts; + var edgeDistances = edge.pstyle('edge-distances').value; + var stepSize = edge.pstyle('control-point-step-size').pfValue; + var ctrlptDists = edge.pstyle('control-point-distances'); + var ctrlptWs = edge.pstyle('control-point-weights'); + var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1; + var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : undefined; + var ctrlptWeight = ctrlptWs.value[0]; // (Multi)bezier + + var multi = edgeIsUnbundled; + rs.edgeType = multi ? 'multibezier' : 'bezier'; + rs.ctrlpts = []; + + for (var b = 0; b < bezierN; b++) { + var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i) * stepSize * (edgeIsSwapped ? -1 : 1); + var manctrlptDist = void 0; + var sign = signum(normctrlptDist); + + if (multi) { + ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize; // fall back on step size + + ctrlptWeight = ctrlptWs.value[b]; + } + + if (edgeIsUnbundled) { + // multi or single unbundled + manctrlptDist = ctrlptDist; + } else { + manctrlptDist = ctrlptDist !== undefined ? sign * ctrlptDist : undefined; + } + + var distanceFromMidpoint = manctrlptDist !== undefined ? manctrlptDist : normctrlptDist; + var w1 = 1 - ctrlptWeight; + var w2 = ctrlptWeight; + var midptPts = edgeDistances === 'node-position' ? posPts : intersectionPts; + var adjustedMidpt = { + x: midptPts.x1 * w1 + midptPts.x2 * w2, + y: midptPts.y1 * w1 + midptPts.y2 * w2 + }; + rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint); + } + }; + + BRp$c.findTaxiPoints = function (edge, pairInfo) { + // Taxicab geometry with two turns maximum + var rs = edge._private.rscratch; + rs.edgeType = 'segments'; + var VERTICAL = 'vertical'; + var HORIZONTAL = 'horizontal'; + var LEFTWARD = 'leftward'; + var RIGHTWARD = 'rightward'; + var DOWNWARD = 'downward'; + var UPWARD = 'upward'; + var AUTO = 'auto'; + var posPts = pairInfo.posPts, + srcW = pairInfo.srcW, + srcH = pairInfo.srcH, + tgtW = pairInfo.tgtW, + tgtH = pairInfo.tgtH; + var edgeDistances = edge.pstyle('edge-distances').value; + var dIncludesNodeBody = edgeDistances !== 'node-position'; + var taxiDir = edge.pstyle('taxi-direction').value; + var rawTaxiDir = taxiDir; // unprocessed value + + var taxiTurn = edge.pstyle('taxi-turn'); + var turnIsPercent = taxiTurn.units === '%'; + var taxiTurnPfVal = taxiTurn.pfValue; + var turnIsNegative = taxiTurnPfVal < 0; // i.e. from target side + + var minD = edge.pstyle('taxi-turn-min-distance').pfValue; + var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0; + var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0; + var pdx = posPts.x2 - posPts.x1; + var pdy = posPts.y2 - posPts.y1; // take away the effective w/h from the magnitude of the delta value + + var subDWH = function subDWH(dxy, dwh) { + if (dxy > 0) { + return Math.max(dxy - dwh, 0); + } else { + return Math.min(dxy + dwh, 0); + } + }; + + var dx = subDWH(pdx, dw); + var dy = subDWH(pdy, dh); + var isExplicitDir = false; + + if (rawTaxiDir === AUTO) { + taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL; + } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) { + taxiDir = VERTICAL; + isExplicitDir = true; + } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) { + taxiDir = HORIZONTAL; + isExplicitDir = true; + } + + var isVert = taxiDir === VERTICAL; + var l = isVert ? dy : dx; + var pl = isVert ? pdy : pdx; + var sgnL = signum(pl); + var forcedDir = false; + + if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) // forcing in this case would cause weird growing in the opposite direction + && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) { + sgnL *= -1; + l = sgnL * Math.abs(l); + forcedDir = true; + } + + var d; + + if (turnIsPercent) { + var p = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal; + d = p * l; + } else { + var k = taxiTurnPfVal < 0 ? l : 0; + d = k + taxiTurnPfVal * sgnL; + } + + var getIsTooClose = function getIsTooClose(d) { + return Math.abs(d) < minD || Math.abs(d) >= Math.abs(l); + }; + + var isTooCloseSrc = getIsTooClose(d); + var isTooCloseTgt = getIsTooClose(Math.abs(l) - Math.abs(d)); + var isTooClose = isTooCloseSrc || isTooCloseTgt; + + if (isTooClose && !forcedDir) { + // non-ideal routing + if (isVert) { + // vertical fallbacks + var lShapeInsideSrc = Math.abs(pl) <= srcH / 2; + var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2; + + if (lShapeInsideSrc) { + // horizontal Z-shape (direction not respected) + var x = (posPts.x1 + posPts.x2) / 2; + var y1 = posPts.y1, + y2 = posPts.y2; + rs.segpts = [x, y1, x, y2]; + } else if (lShapeInsideTgt) { + // vertical Z-shape (distance not respected) + var y = (posPts.y1 + posPts.y2) / 2; + var x1 = posPts.x1, + x2 = posPts.x2; + rs.segpts = [x1, y, x2, y]; + } else { + // L-shape fallback (turn distance not respected, but works well with tree siblings) + rs.segpts = [posPts.x1, posPts.y2]; + } + } else { + // horizontal fallbacks + var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2; + + var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2; + + if (_lShapeInsideSrc) { + // vertical Z-shape (direction not respected) + var _y = (posPts.y1 + posPts.y2) / 2; + + var _x = posPts.x1, + _x2 = posPts.x2; + rs.segpts = [_x, _y, _x2, _y]; + } else if (_lShapeInsideTgt) { + // horizontal Z-shape (turn distance not respected) + var _x3 = (posPts.x1 + posPts.x2) / 2; + + var _y2 = posPts.y1, + _y3 = posPts.y2; + rs.segpts = [_x3, _y2, _x3, _y3]; + } else { + // L-shape (turn distance not respected, but works well for tree siblings) + rs.segpts = [posPts.x2, posPts.y1]; + } + } + } else { + // ideal routing + if (isVert) { + var _y4 = posPts.y1 + d + (dIncludesNodeBody ? srcH / 2 * sgnL : 0); + + var _x4 = posPts.x1, + _x5 = posPts.x2; + rs.segpts = [_x4, _y4, _x5, _y4]; + } else { + // horizontal + var _x6 = posPts.x1 + d + (dIncludesNodeBody ? srcW / 2 * sgnL : 0); + + var _y5 = posPts.y1, + _y6 = posPts.y2; + rs.segpts = [_x6, _y5, _x6, _y6]; + } + } + }; + + BRp$c.tryToCorrectInvalidPoints = function (edge, pairInfo) { + var rs = edge._private.rscratch; // can only correct beziers for now... + + if (rs.edgeType === 'bezier') { + var srcPos = pairInfo.srcPos, + tgtPos = pairInfo.tgtPos, + srcW = pairInfo.srcW, + srcH = pairInfo.srcH, + tgtW = pairInfo.tgtW, + tgtH = pairInfo.tgtH, + srcShape = pairInfo.srcShape, + tgtShape = pairInfo.tgtShape; + var badStart = !number$1(rs.startX) || !number$1(rs.startY); + var badAStart = !number$1(rs.arrowStartX) || !number$1(rs.arrowStartY); + var badEnd = !number$1(rs.endX) || !number$1(rs.endY); + var badAEnd = !number$1(rs.arrowEndX) || !number$1(rs.arrowEndY); + var minCpADistFactor = 3; + var arrowW = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth; + var minCpADist = minCpADistFactor * arrowW; + var startACpDist = dist({ + x: rs.ctrlpts[0], + y: rs.ctrlpts[1] + }, { + x: rs.startX, + y: rs.startY + }); + var closeStartACp = startACpDist < minCpADist; + var endACpDist = dist({ + x: rs.ctrlpts[0], + y: rs.ctrlpts[1] + }, { + x: rs.endX, + y: rs.endY + }); + var closeEndACp = endACpDist < minCpADist; + var overlapping = false; + + if (badStart || badAStart || closeStartACp) { + overlapping = true; // project control point along line from src centre to outside the src shape + // (otherwise intersection will yield nothing) + + var cpD = { + // delta + x: rs.ctrlpts[0] - srcPos.x, + y: rs.ctrlpts[1] - srcPos.y + }; + var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y); // length of line + + var cpM = { + // normalised delta + x: cpD.x / cpL, + y: cpD.y / cpL + }; + var radius = Math.max(srcW, srcH); + var cpProj = { + // *2 radius guarantees outside shape + x: rs.ctrlpts[0] + cpM.x * 2 * radius, + y: rs.ctrlpts[1] + cpM.y * 2 * radius + }; + var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0); + + if (closeStartACp) { + rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist); + rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist); + } else { + rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist; + rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist; + } + } + + if (badEnd || badAEnd || closeEndACp) { + overlapping = true; // project control point along line from tgt centre to outside the tgt shape + // (otherwise intersection will yield nothing) + + var _cpD = { + // delta + x: rs.ctrlpts[0] - tgtPos.x, + y: rs.ctrlpts[1] - tgtPos.y + }; + + var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y); // length of line + + + var _cpM = { + // normalised delta + x: _cpD.x / _cpL, + y: _cpD.y / _cpL + }; + + var _radius = Math.max(srcW, srcH); + + var _cpProj = { + // *2 radius guarantees outside shape + x: rs.ctrlpts[0] + _cpM.x * 2 * _radius, + y: rs.ctrlpts[1] + _cpM.y * 2 * _radius + }; + var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0); + + if (closeEndACp) { + rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist); + rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist); + } else { + rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist; + rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist; + } + } + + if (overlapping) { + // recalc endpts + this.findEndpoints(edge); + } + } + }; + + BRp$c.storeAllpts = function (edge) { + var rs = edge._private.rscratch; + + if (rs.edgeType === 'multibezier' || rs.edgeType === 'bezier' || rs.edgeType === 'self' || rs.edgeType === 'compound') { + rs.allpts = []; + rs.allpts.push(rs.startX, rs.startY); + + for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) { + // ctrl pt itself + rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]); // the midpt between ctrlpts as intermediate destination pts + + if (b + 3 < rs.ctrlpts.length) { + rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2); + } + } + + rs.allpts.push(rs.endX, rs.endY); + var m, mt; + + if (rs.ctrlpts.length / 2 % 2 === 0) { + m = rs.allpts.length / 2 - 1; + rs.midX = rs.allpts[m]; + rs.midY = rs.allpts[m + 1]; + } else { + m = rs.allpts.length / 2 - 3; + mt = 0.5; + rs.midX = qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt); + rs.midY = qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt); + } + } else if (rs.edgeType === 'straight') { + // need to calc these after endpts + rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY]; // default midpt for labels etc + + rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4; + rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4; + } else if (rs.edgeType === 'segments') { + rs.allpts = []; + rs.allpts.push(rs.startX, rs.startY); + rs.allpts.push.apply(rs.allpts, rs.segpts); + rs.allpts.push(rs.endX, rs.endY); + + if (rs.segpts.length % 4 === 0) { + var i2 = rs.segpts.length / 2; + var i1 = i2 - 2; + rs.midX = (rs.segpts[i1] + rs.segpts[i2]) / 2; + rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i2 + 1]) / 2; + } else { + var _i = rs.segpts.length / 2 - 1; + + rs.midX = rs.segpts[_i]; + rs.midY = rs.segpts[_i + 1]; + } + } + }; + + BRp$c.checkForInvalidEdgeWarning = function (edge) { + var rs = edge[0]._private.rscratch; + + if (rs.nodesOverlap || number$1(rs.startX) && number$1(rs.startY) && number$1(rs.endX) && number$1(rs.endY)) { + rs.loggedErr = false; + } else { + if (!rs.loggedErr) { + rs.loggedErr = true; + warn('Edge `' + edge.id() + '` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.'); + } + } + }; + + BRp$c.findEdgeControlPoints = function (edges) { + var _this = this; + + if (!edges || edges.length === 0) { + return; + } + + var r = this; + var cy = r.cy; + var hasCompounds = cy.hasCompoundNodes(); + var hashTable = { + map: new Map$2(), + get: function get(pairId) { + var map2 = this.map.get(pairId[0]); + + if (map2 != null) { + return map2.get(pairId[1]); + } else { + return null; + } + }, + set: function set(pairId, val) { + var map2 = this.map.get(pairId[0]); + + if (map2 == null) { + map2 = new Map$2(); + this.map.set(pairId[0], map2); + } + + map2.set(pairId[1], val); + } + }; + var pairIds = []; + var haystackEdges = []; // create a table of edge (src, tgt) => list of edges between them + + for (var i = 0; i < edges.length; i++) { + var edge = edges[i]; + var _p = edge._private; + var curveStyle = edge.pstyle('curve-style').value; // ignore edges who are not to be displayed + // they shouldn't take up space + + if (edge.removed() || !edge.takesUpSpace()) { + continue; + } + + if (curveStyle === 'haystack') { + haystackEdges.push(edge); + continue; + } + + var edgeIsUnbundled = curveStyle === 'unbundled-bezier' || curveStyle === 'segments' || curveStyle === 'straight' || curveStyle === 'straight-triangle' || curveStyle === 'taxi'; + var edgeIsBezier = curveStyle === 'unbundled-bezier' || curveStyle === 'bezier'; + var src = _p.source; + var tgt = _p.target; + var srcIndex = src.poolIndex(); + var tgtIndex = tgt.poolIndex(); + var pairId = [srcIndex, tgtIndex].sort(); + var tableEntry = hashTable.get(pairId); + + if (tableEntry == null) { + tableEntry = { + eles: [] + }; + hashTable.set(pairId, tableEntry); + pairIds.push(pairId); + } + + tableEntry.eles.push(edge); + + if (edgeIsUnbundled) { + tableEntry.hasUnbundled = true; + } + + if (edgeIsBezier) { + tableEntry.hasBezier = true; + } + } // for each pair (src, tgt), create the ctrl pts + // Nested for loop is OK; total number of iterations for both loops = edgeCount + + + var _loop = function _loop(p) { + var pairId = pairIds[p]; + var pairInfo = hashTable.get(pairId); + var swappedpairInfo = void 0; + + if (!pairInfo.hasUnbundled) { + var pllEdges = pairInfo.eles[0].parallelEdges().filter(function (e) { + return e.isBundledBezier(); + }); + clearArray(pairInfo.eles); + pllEdges.forEach(function (edge) { + return pairInfo.eles.push(edge); + }); // for each pair id, the edges should be sorted by index + + pairInfo.eles.sort(function (edge1, edge2) { + return edge1.poolIndex() - edge2.poolIndex(); + }); + } + + var firstEdge = pairInfo.eles[0]; + var src = firstEdge.source(); + var tgt = firstEdge.target(); // make sure src/tgt distinction is consistent w.r.t. pairId + + if (src.poolIndex() > tgt.poolIndex()) { + var temp = src; + src = tgt; + tgt = temp; + } + + var srcPos = pairInfo.srcPos = src.position(); + var tgtPos = pairInfo.tgtPos = tgt.position(); + var srcW = pairInfo.srcW = src.outerWidth(); + var srcH = pairInfo.srcH = src.outerHeight(); + var tgtW = pairInfo.tgtW = tgt.outerWidth(); + var tgtH = pairInfo.tgtH = tgt.outerHeight(); + + var srcShape = pairInfo.srcShape = r.nodeShapes[_this.getNodeShape(src)]; + + var tgtShape = pairInfo.tgtShape = r.nodeShapes[_this.getNodeShape(tgt)]; + + pairInfo.dirCounts = { + 'north': 0, + 'west': 0, + 'south': 0, + 'east': 0, + 'northwest': 0, + 'southwest': 0, + 'northeast': 0, + 'southeast': 0 + }; + + for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) { + var _edge = pairInfo.eles[_i2]; + var rs = _edge[0]._private.rscratch; + + var _curveStyle = _edge.pstyle('curve-style').value; + + var _edgeIsUnbundled = _curveStyle === 'unbundled-bezier' || _curveStyle === 'segments' || _curveStyle === 'taxi'; // whether the normalised pair order is the reverse of the edge's src-tgt order + + + var edgeIsSwapped = !src.same(_edge.source()); + + if (!pairInfo.calculatedIntersection && src !== tgt && (pairInfo.hasBezier || pairInfo.hasUnbundled)) { + pairInfo.calculatedIntersection = true; // pt outside src shape to calc distance/displacement from src to tgt + + var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0); + var srcIntn = pairInfo.srcIntn = srcOutside; // pt outside tgt shape to calc distance/displacement from src to tgt + + var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0); + var tgtIntn = pairInfo.tgtIntn = tgtOutside; + var intersectionPts = pairInfo.intersectionPts = { + x1: srcOutside[0], + x2: tgtOutside[0], + y1: srcOutside[1], + y2: tgtOutside[1] + }; + var posPts = pairInfo.posPts = { + x1: srcPos.x, + x2: tgtPos.x, + y1: srcPos.y, + y2: tgtPos.y + }; + var dy = tgtOutside[1] - srcOutside[1]; + var dx = tgtOutside[0] - srcOutside[0]; + var l = Math.sqrt(dx * dx + dy * dy); + var vector = pairInfo.vector = { + x: dx, + y: dy + }; + var vectorNorm = pairInfo.vectorNorm = { + x: vector.x / l, + y: vector.y / l + }; + var vectorNormInverse = { + x: -vectorNorm.y, + y: vectorNorm.x + }; // if node shapes overlap, then no ctrl pts to draw + + pairInfo.nodesOverlap = !number$1(l) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y); + pairInfo.vectorNormInverse = vectorNormInverse; + swappedpairInfo = { + nodesOverlap: pairInfo.nodesOverlap, + dirCounts: pairInfo.dirCounts, + calculatedIntersection: true, + hasBezier: pairInfo.hasBezier, + hasUnbundled: pairInfo.hasUnbundled, + eles: pairInfo.eles, + srcPos: tgtPos, + tgtPos: srcPos, + srcW: tgtW, + srcH: tgtH, + tgtW: srcW, + tgtH: srcH, + srcIntn: tgtIntn, + tgtIntn: srcIntn, + srcShape: tgtShape, + tgtShape: srcShape, + posPts: { + x1: posPts.x2, + y1: posPts.y2, + x2: posPts.x1, + y2: posPts.y1 + }, + intersectionPts: { + x1: intersectionPts.x2, + y1: intersectionPts.y2, + x2: intersectionPts.x1, + y2: intersectionPts.y1 + }, + vector: { + x: -vector.x, + y: -vector.y + }, + vectorNorm: { + x: -vectorNorm.x, + y: -vectorNorm.y + }, + vectorNormInverse: { + x: -vectorNormInverse.x, + y: -vectorNormInverse.y + } + }; + } + + var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo; + rs.nodesOverlap = passedPairInfo.nodesOverlap; + rs.srcIntn = passedPairInfo.srcIntn; + rs.tgtIntn = passedPairInfo.tgtIntn; + + if (hasCompounds && (src.isParent() || src.isChild() || tgt.isParent() || tgt.isChild()) && (src.parents().anySame(tgt) || tgt.parents().anySame(src) || src.same(tgt) && src.isParent())) { + _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled); + } else if (src === tgt) { + _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled); + } else if (_curveStyle === 'segments') { + _this.findSegmentsPoints(_edge, passedPairInfo); + } else if (_curveStyle === 'taxi') { + _this.findTaxiPoints(_edge, passedPairInfo); + } else if (_curveStyle === 'straight' || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) { + _this.findStraightEdgePoints(_edge); + } else { + _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped); + } + + _this.findEndpoints(_edge); + + _this.tryToCorrectInvalidPoints(_edge, passedPairInfo); + + _this.checkForInvalidEdgeWarning(_edge); + + _this.storeAllpts(_edge); + + _this.storeEdgeProjections(_edge); + + _this.calculateArrowAngles(_edge); + + _this.recalculateEdgeLabelProjections(_edge); + + _this.calculateLabelAngles(_edge); + } // for pair edges + + }; + + for (var p = 0; p < pairIds.length; p++) { + _loop(p); + } // for pair ids + // haystacks avoid the expense of pairInfo stuff (intersections etc.) + + + this.findHaystackPoints(haystackEdges); + }; + + function getPts(pts) { + var retPts = []; + + if (pts == null) { + return; + } + + for (var i = 0; i < pts.length; i += 2) { + var x = pts[i]; + var y = pts[i + 1]; + retPts.push({ + x: x, + y: y + }); + } + + return retPts; + } + + BRp$c.getSegmentPoints = function (edge) { + var rs = edge[0]._private.rscratch; + var type = rs.edgeType; + + if (type === 'segments') { + this.recalculateRenderedStyle(edge); + return getPts(rs.segpts); + } + }; + + BRp$c.getControlPoints = function (edge) { + var rs = edge[0]._private.rscratch; + var type = rs.edgeType; + + if (type === 'bezier' || type === 'multibezier' || type === 'self' || type === 'compound') { + this.recalculateRenderedStyle(edge); + return getPts(rs.ctrlpts); + } + }; + + BRp$c.getEdgeMidpoint = function (edge) { + var rs = edge[0]._private.rscratch; + this.recalculateRenderedStyle(edge); + return { + x: rs.midX, + y: rs.midY + }; + }; + + var BRp$b = {}; + + BRp$b.manualEndptToPx = function (node, prop) { + var r = this; + var npos = node.position(); + var w = node.outerWidth(); + var h = node.outerHeight(); + + if (prop.value.length === 2) { + var p = [prop.pfValue[0], prop.pfValue[1]]; + + if (prop.units[0] === '%') { + p[0] = p[0] * w; + } + + if (prop.units[1] === '%') { + p[1] = p[1] * h; + } + + p[0] += npos.x; + p[1] += npos.y; + return p; + } else { + var angle = prop.pfValue[0]; + angle = -Math.PI / 2 + angle; // start at 12 o'clock + + var l = 2 * Math.max(w, h); + var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l]; + return r.nodeShapes[this.getNodeShape(node)].intersectLine(npos.x, npos.y, w, h, _p[0], _p[1], 0); + } + }; + + BRp$b.findEndpoints = function (edge) { + var r = this; + var intersect; + var source = edge.source()[0]; + var target = edge.target()[0]; + var srcPos = source.position(); + var tgtPos = target.position(); + var tgtArShape = edge.pstyle('target-arrow-shape').value; + var srcArShape = edge.pstyle('source-arrow-shape').value; + var tgtDist = edge.pstyle('target-distance-from-node').pfValue; + var srcDist = edge.pstyle('source-distance-from-node').pfValue; + var curveStyle = edge.pstyle('curve-style').value; + var rs = edge._private.rscratch; + var et = rs.edgeType; + var taxi = curveStyle === 'taxi'; + var self = et === 'self' || et === 'compound'; + var bezier = et === 'bezier' || et === 'multibezier' || self; + var multi = et !== 'bezier'; + var lines = et === 'straight' || et === 'segments'; + var segments = et === 'segments'; + var hasEndpts = bezier || multi || lines; + var overrideEndpts = self || taxi; + var srcManEndpt = edge.pstyle('source-endpoint'); + var srcManEndptVal = overrideEndpts ? 'outside-to-node' : srcManEndpt.value; + var tgtManEndpt = edge.pstyle('target-endpoint'); + var tgtManEndptVal = overrideEndpts ? 'outside-to-node' : tgtManEndpt.value; + rs.srcManEndpt = srcManEndpt; + rs.tgtManEndpt = tgtManEndpt; + var p1; // last known point of edge on target side + + var p2; // last known point of edge on source side + + var p1_i; // point to intersect with target shape + + var p2_i; // point to intersect with source shape + + if (bezier) { + var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]]; + var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart; + p1 = cpEnd; + p2 = cpStart; + } else if (lines) { + var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2); + var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2); + p1 = tgtArrowFromPt; + p2 = srcArrowFromPt; + } + + if (tgtManEndptVal === 'inside-to-node') { + intersect = [tgtPos.x, tgtPos.y]; + } else if (tgtManEndpt.units) { + intersect = this.manualEndptToPx(target, tgtManEndpt); + } else if (tgtManEndptVal === 'outside-to-line') { + intersect = rs.tgtIntn; // use cached value from ctrlpt calc + } else { + if (tgtManEndptVal === 'outside-to-node' || tgtManEndptVal === 'outside-to-node-or-label') { + p1_i = p1; + } else if (tgtManEndptVal === 'outside-to-line' || tgtManEndptVal === 'outside-to-line-or-label') { + p1_i = [srcPos.x, srcPos.y]; + } + + intersect = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0); + + if (tgtManEndptVal === 'outside-to-node-or-label' || tgtManEndptVal === 'outside-to-line-or-label') { + var trs = target._private.rscratch; + var lw = trs.labelWidth; + var lh = trs.labelHeight; + var lx = trs.labelX; + var ly = trs.labelY; + var lw2 = lw / 2; + var lh2 = lh / 2; + var va = target.pstyle('text-valign').value; + + if (va === 'top') { + ly -= lh2; + } else if (va === 'bottom') { + ly += lh2; + } + + var ha = target.pstyle('text-halign').value; + + if (ha === 'left') { + lx -= lw2; + } else if (ha === 'right') { + lx += lw2; + } + + var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y); + + if (labelIntersect.length > 0) { + var refPt = srcPos; + var intSqdist = sqdist(refPt, array2point(intersect)); + var labIntSqdist = sqdist(refPt, array2point(labelIntersect)); + var minSqDist = intSqdist; + + if (labIntSqdist < intSqdist) { + intersect = labelIntersect; + minSqDist = labIntSqdist; + } + + if (labelIntersect.length > 2) { + var labInt2SqDist = sqdist(refPt, { + x: labelIntersect[2], + y: labelIntersect[3] + }); + + if (labInt2SqDist < minSqDist) { + intersect = [labelIntersect[2], labelIntersect[3]]; + } + } + } + } + } + + var arrowEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist); + var edgeEnd = shortenIntersection(intersect, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist); + rs.endX = edgeEnd[0]; + rs.endY = edgeEnd[1]; + rs.arrowEndX = arrowEnd[0]; + rs.arrowEndY = arrowEnd[1]; + + if (srcManEndptVal === 'inside-to-node') { + intersect = [srcPos.x, srcPos.y]; + } else if (srcManEndpt.units) { + intersect = this.manualEndptToPx(source, srcManEndpt); + } else if (srcManEndptVal === 'outside-to-line') { + intersect = rs.srcIntn; // use cached value from ctrlpt calc + } else { + if (srcManEndptVal === 'outside-to-node' || srcManEndptVal === 'outside-to-node-or-label') { + p2_i = p2; + } else if (srcManEndptVal === 'outside-to-line' || srcManEndptVal === 'outside-to-line-or-label') { + p2_i = [tgtPos.x, tgtPos.y]; + } + + intersect = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0); + + if (srcManEndptVal === 'outside-to-node-or-label' || srcManEndptVal === 'outside-to-line-or-label') { + var srs = source._private.rscratch; + var _lw = srs.labelWidth; + var _lh = srs.labelHeight; + var _lx = srs.labelX; + var _ly = srs.labelY; + + var _lw2 = _lw / 2; + + var _lh2 = _lh / 2; + + var _va = source.pstyle('text-valign').value; + + if (_va === 'top') { + _ly -= _lh2; + } else if (_va === 'bottom') { + _ly += _lh2; + } + + var _ha = source.pstyle('text-halign').value; + + if (_ha === 'left') { + _lx -= _lw2; + } else if (_ha === 'right') { + _lx += _lw2; + } + + var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y); + + if (_labelIntersect.length > 0) { + var _refPt = tgtPos; + + var _intSqdist = sqdist(_refPt, array2point(intersect)); + + var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect)); + + var _minSqDist = _intSqdist; + + if (_labIntSqdist < _intSqdist) { + intersect = [_labelIntersect[0], _labelIntersect[1]]; + _minSqDist = _labIntSqdist; + } + + if (_labelIntersect.length > 2) { + var _labInt2SqDist = sqdist(_refPt, { + x: _labelIntersect[2], + y: _labelIntersect[3] + }); + + if (_labInt2SqDist < _minSqDist) { + intersect = [_labelIntersect[2], _labelIntersect[3]]; + } + } + } + } + } + + var arrowStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist); + var edgeStart = shortenIntersection(intersect, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist); + rs.startX = edgeStart[0]; + rs.startY = edgeStart[1]; + rs.arrowStartX = arrowStart[0]; + rs.arrowStartY = arrowStart[1]; + + if (hasEndpts) { + if (!number$1(rs.startX) || !number$1(rs.startY) || !number$1(rs.endX) || !number$1(rs.endY)) { + rs.badLine = true; + } else { + rs.badLine = false; + } + } + }; + + BRp$b.getSourceEndpoint = function (edge) { + var rs = edge[0]._private.rscratch; + this.recalculateRenderedStyle(edge); + + switch (rs.edgeType) { + case 'haystack': + return { + x: rs.haystackPts[0], + y: rs.haystackPts[1] + }; + + default: + return { + x: rs.arrowStartX, + y: rs.arrowStartY + }; + } + }; + + BRp$b.getTargetEndpoint = function (edge) { + var rs = edge[0]._private.rscratch; + this.recalculateRenderedStyle(edge); + + switch (rs.edgeType) { + case 'haystack': + return { + x: rs.haystackPts[2], + y: rs.haystackPts[3] + }; + + default: + return { + x: rs.arrowEndX, + y: rs.arrowEndY + }; + } + }; + + var BRp$a = {}; + + function pushBezierPts(r, edge, pts) { + var qbezierAt$1 = function qbezierAt$1(p1, p2, p3, t) { + return qbezierAt(p1, p2, p3, t); + }; + + var _p = edge._private; + var bpts = _p.rstyle.bezierPts; + + for (var i = 0; i < r.bezierProjPcts.length; i++) { + var p = r.bezierProjPcts[i]; + bpts.push({ + x: qbezierAt$1(pts[0], pts[2], pts[4], p), + y: qbezierAt$1(pts[1], pts[3], pts[5], p) + }); + } + } + + BRp$a.storeEdgeProjections = function (edge) { + var _p = edge._private; + var rs = _p.rscratch; + var et = rs.edgeType; // clear the cached points state + + _p.rstyle.bezierPts = null; + _p.rstyle.linePts = null; + _p.rstyle.haystackPts = null; + + if (et === 'multibezier' || et === 'bezier' || et === 'self' || et === 'compound') { + _p.rstyle.bezierPts = []; + + for (var i = 0; i + 5 < rs.allpts.length; i += 4) { + pushBezierPts(this, edge, rs.allpts.slice(i, i + 6)); + } + } else if (et === 'segments') { + var lpts = _p.rstyle.linePts = []; + + for (var i = 0; i + 1 < rs.allpts.length; i += 2) { + lpts.push({ + x: rs.allpts[i], + y: rs.allpts[i + 1] + }); + } + } else if (et === 'haystack') { + var hpts = rs.haystackPts; + _p.rstyle.haystackPts = [{ + x: hpts[0], + y: hpts[1] + }, { + x: hpts[2], + y: hpts[3] + }]; + } + + _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle('width').pfValue, edge.pstyle('arrow-scale').value) * this.arrowShapeWidth; + }; + + BRp$a.recalculateEdgeProjections = function (edges) { + this.findEdgeControlPoints(edges); + }; + + /* global document */ + + var BRp$9 = {}; + + BRp$9.recalculateNodeLabelProjection = function (node) { + var content = node.pstyle('label').strValue; + + if (emptyString(content)) { + return; + } + + var textX, textY; + var _p = node._private; + var nodeWidth = node.width(); + var nodeHeight = node.height(); + var padding = node.padding(); + var nodePos = node.position(); + var textHalign = node.pstyle('text-halign').strValue; + var textValign = node.pstyle('text-valign').strValue; + var rs = _p.rscratch; + var rstyle = _p.rstyle; + + switch (textHalign) { + case 'left': + textX = nodePos.x - nodeWidth / 2 - padding; + break; + + case 'right': + textX = nodePos.x + nodeWidth / 2 + padding; + break; + + default: + // e.g. center + textX = nodePos.x; + } + + switch (textValign) { + case 'top': + textY = nodePos.y - nodeHeight / 2 - padding; + break; + + case 'bottom': + textY = nodePos.y + nodeHeight / 2 + padding; + break; + + default: + // e.g. middle + textY = nodePos.y; + } + + rs.labelX = textX; + rs.labelY = textY; + rstyle.labelX = textX; + rstyle.labelY = textY; + this.calculateLabelAngles(node); + this.applyLabelDimensions(node); + }; + + var lineAngleFromDelta = function lineAngleFromDelta(dx, dy) { + var angle = Math.atan(dy / dx); + + if (dx === 0 && angle < 0) { + angle = angle * -1; + } + + return angle; + }; + + var lineAngle = function lineAngle(p0, p1) { + var dx = p1.x - p0.x; + var dy = p1.y - p0.y; + return lineAngleFromDelta(dx, dy); + }; + + var bezierAngle = function bezierAngle(p0, p1, p2, t) { + var t0 = bound(0, t - 0.001, 1); + var t1 = bound(0, t + 0.001, 1); + var lp0 = qbezierPtAt(p0, p1, p2, t0); + var lp1 = qbezierPtAt(p0, p1, p2, t1); + return lineAngle(lp0, lp1); + }; + + BRp$9.recalculateEdgeLabelProjections = function (edge) { + var p; + var _p = edge._private; + var rs = _p.rscratch; + var r = this; + var content = { + mid: edge.pstyle('label').strValue, + source: edge.pstyle('source-label').strValue, + target: edge.pstyle('target-label').strValue + }; + + if (content.mid || content.source || content.target) ; else { + return; // no labels => no calcs + } // add center point to style so bounding box calculations can use it + // + + + p = { + x: rs.midX, + y: rs.midY + }; + + var setRs = function setRs(propName, prefix, value) { + setPrefixedProperty(_p.rscratch, propName, prefix, value); + setPrefixedProperty(_p.rstyle, propName, prefix, value); + }; + + setRs('labelX', null, p.x); + setRs('labelY', null, p.y); + var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY); + setRs('labelAutoAngle', null, midAngle); + + var createControlPointInfo = function createControlPointInfo() { + if (createControlPointInfo.cache) { + return createControlPointInfo.cache; + } // use cache so only 1x per edge + + + var ctrlpts = []; // store each ctrlpt info init + + for (var i = 0; i + 5 < rs.allpts.length; i += 4) { + var p0 = { + x: rs.allpts[i], + y: rs.allpts[i + 1] + }; + var p1 = { + x: rs.allpts[i + 2], + y: rs.allpts[i + 3] + }; // ctrlpt + + var p2 = { + x: rs.allpts[i + 4], + y: rs.allpts[i + 5] + }; + ctrlpts.push({ + p0: p0, + p1: p1, + p2: p2, + startDist: 0, + length: 0, + segments: [] + }); + } + + var bpts = _p.rstyle.bezierPts; + var nProjs = r.bezierProjPcts.length; + + function addSegment(cp, p0, p1, t0, t1) { + var length = dist(p0, p1); + var prevSegment = cp.segments[cp.segments.length - 1]; + var segment = { + p0: p0, + p1: p1, + t0: t0, + t1: t1, + startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0, + length: length + }; + cp.segments.push(segment); + cp.length += length; + } // update each ctrlpt with segment info + + + for (var _i = 0; _i < ctrlpts.length; _i++) { + var cp = ctrlpts[_i]; + var prevCp = ctrlpts[_i - 1]; + + if (prevCp) { + cp.startDist = prevCp.startDist + prevCp.length; + } + + addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r.bezierProjPcts[0]); // first + + for (var j = 0; j < nProjs - 1; j++) { + addSegment(cp, bpts[_i * nProjs + j], bpts[_i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]); + } + + addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1); // last + } + + return createControlPointInfo.cache = ctrlpts; + }; + + var calculateEndProjection = function calculateEndProjection(prefix) { + var angle; + var isSrc = prefix === 'source'; + + if (!content[prefix]) { + return; + } + + var offset = edge.pstyle(prefix + '-text-offset').pfValue; + + switch (rs.edgeType) { + case 'self': + case 'compound': + case 'bezier': + case 'multibezier': + { + var cps = createControlPointInfo(); + var selected; + var startDist = 0; + var totalDist = 0; // find the segment we're on + + for (var i = 0; i < cps.length; i++) { + var _cp = cps[isSrc ? i : cps.length - 1 - i]; + + for (var j = 0; j < _cp.segments.length; j++) { + var _seg = _cp.segments[isSrc ? j : _cp.segments.length - 1 - j]; + var lastSeg = i === cps.length - 1 && j === _cp.segments.length - 1; + startDist = totalDist; + totalDist += _seg.length; + + if (totalDist >= offset || lastSeg) { + selected = { + cp: _cp, + segment: _seg + }; + break; + } + } + + if (selected) { + break; + } + } + + var cp = selected.cp; + var seg = selected.segment; + var tSegment = (offset - startDist) / seg.length; + var segDt = seg.t1 - seg.t0; + var t = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment; + t = bound(0, t, 1); + p = qbezierPtAt(cp.p0, cp.p1, cp.p2, t); + angle = bezierAngle(cp.p0, cp.p1, cp.p2, t); + break; + } + + case 'straight': + case 'segments': + case 'haystack': + { + var d = 0, + di, + d0; + var p0, p1; + var l = rs.allpts.length; + + for (var _i2 = 0; _i2 + 3 < l; _i2 += 2) { + if (isSrc) { + p0 = { + x: rs.allpts[_i2], + y: rs.allpts[_i2 + 1] + }; + p1 = { + x: rs.allpts[_i2 + 2], + y: rs.allpts[_i2 + 3] + }; + } else { + p0 = { + x: rs.allpts[l - 2 - _i2], + y: rs.allpts[l - 1 - _i2] + }; + p1 = { + x: rs.allpts[l - 4 - _i2], + y: rs.allpts[l - 3 - _i2] + }; + } + + di = dist(p0, p1); + d0 = d; + d += di; + + if (d >= offset) { + break; + } + } + + var pD = offset - d0; + + var _t = pD / di; + + _t = bound(0, _t, 1); + p = lineAt(p0, p1, _t); + angle = lineAngle(p0, p1); + break; + } + } + + setRs('labelX', prefix, p.x); + setRs('labelY', prefix, p.y); + setRs('labelAutoAngle', prefix, angle); + }; + + calculateEndProjection('source'); + calculateEndProjection('target'); + this.applyLabelDimensions(edge); + }; + + BRp$9.applyLabelDimensions = function (ele) { + this.applyPrefixedLabelDimensions(ele); + + if (ele.isEdge()) { + this.applyPrefixedLabelDimensions(ele, 'source'); + this.applyPrefixedLabelDimensions(ele, 'target'); + } + }; + + BRp$9.applyPrefixedLabelDimensions = function (ele, prefix) { + var _p = ele._private; + var text = this.getLabelText(ele, prefix); + var labelDims = this.calculateLabelDimensions(ele, text); + var lineHeight = ele.pstyle('line-height').pfValue; + var textWrap = ele.pstyle('text-wrap').strValue; + var lines = getPrefixedProperty(_p.rscratch, 'labelWrapCachedLines', prefix) || []; + var numLines = textWrap !== 'wrap' ? 1 : Math.max(lines.length, 1); + var normPerLineHeight = labelDims.height / numLines; + var labelLineHeight = normPerLineHeight * lineHeight; + var width = labelDims.width; + var height = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight; + setPrefixedProperty(_p.rstyle, 'labelWidth', prefix, width); + setPrefixedProperty(_p.rscratch, 'labelWidth', prefix, width); + setPrefixedProperty(_p.rstyle, 'labelHeight', prefix, height); + setPrefixedProperty(_p.rscratch, 'labelHeight', prefix, height); + setPrefixedProperty(_p.rscratch, 'labelLineHeight', prefix, labelLineHeight); + }; + + BRp$9.getLabelText = function (ele, prefix) { + var _p = ele._private; + var pfd = prefix ? prefix + '-' : ''; + var text = ele.pstyle(pfd + 'label').strValue; + var textTransform = ele.pstyle('text-transform').value; + + var rscratch = function rscratch(propName, value) { + if (value) { + setPrefixedProperty(_p.rscratch, propName, prefix, value); + return value; + } else { + return getPrefixedProperty(_p.rscratch, propName, prefix); + } + }; // for empty text, skip all processing + + + if (!text) { + return ''; + } + + if (textTransform == 'none') ; else if (textTransform == 'uppercase') { + text = text.toUpperCase(); + } else if (textTransform == 'lowercase') { + text = text.toLowerCase(); + } + + var wrapStyle = ele.pstyle('text-wrap').value; + + if (wrapStyle === 'wrap') { + var labelKey = rscratch('labelKey'); // save recalc if the label is the same as before + + if (labelKey != null && rscratch('labelWrapKey') === labelKey) { + return rscratch('labelWrapCachedText'); + } + + var zwsp = "\u200B"; + var lines = text.split('\n'); + var maxW = ele.pstyle('text-max-width').pfValue; + var overflow = ele.pstyle('text-overflow-wrap').value; + var overflowAny = overflow === 'anywhere'; + var wrappedLines = []; + var wordsRegex = /[\s\u200b]+/; + var wordSeparator = overflowAny ? '' : ' '; + + for (var l = 0; l < lines.length; l++) { + var line = lines[l]; + var lineDims = this.calculateLabelDimensions(ele, line); + var lineW = lineDims.width; + + if (overflowAny) { + var processedLine = line.split('').join(zwsp); + line = processedLine; + } + + if (lineW > maxW) { + // line is too long + var words = line.split(wordsRegex); + var subline = ''; + + for (var w = 0; w < words.length; w++) { + var word = words[w]; + var testLine = subline.length === 0 ? word : subline + wordSeparator + word; + var testDims = this.calculateLabelDimensions(ele, testLine); + var testW = testDims.width; + + if (testW <= maxW) { + // word fits on current line + subline += word + wordSeparator; + } else { + // word starts new line + if (subline) { + wrappedLines.push(subline); + } + + subline = word + wordSeparator; + } + } // if there's remaining text, put it in a wrapped line + + + if (!subline.match(/^[\s\u200b]+$/)) { + wrappedLines.push(subline); + } + } else { + // line is already short enough + wrappedLines.push(line); + } + } // for + + + rscratch('labelWrapCachedLines', wrappedLines); + text = rscratch('labelWrapCachedText', wrappedLines.join('\n')); + rscratch('labelWrapKey', labelKey); + } else if (wrapStyle === 'ellipsis') { + var _maxW = ele.pstyle('text-max-width').pfValue; + var ellipsized = ''; + var ellipsis = "\u2026"; + var incLastCh = false; + + if (this.calculateLabelDimensions(ele, text).width < _maxW) { + // the label already fits + return text; + } + + for (var i = 0; i < text.length; i++) { + var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text[i] + ellipsis).width; + + if (widthWithNextCh > _maxW) { + break; + } + + ellipsized += text[i]; + + if (i === text.length - 1) { + incLastCh = true; + } + } + + if (!incLastCh) { + ellipsized += ellipsis; + } + + return ellipsized; + } // if ellipsize + + + return text; + }; + + BRp$9.getLabelJustification = function (ele) { + var justification = ele.pstyle('text-justification').strValue; + var textHalign = ele.pstyle('text-halign').strValue; + + if (justification === 'auto') { + if (ele.isNode()) { + switch (textHalign) { + case 'left': + return 'right'; + + case 'right': + return 'left'; + + default: + return 'center'; + } + } else { + return 'center'; + } + } else { + return justification; + } + }; + + BRp$9.calculateLabelDimensions = function (ele, text) { + var r = this; + var cacheKey = hashString(text, ele._private.labelDimsKey); + var cache = r.labelDimCache || (r.labelDimCache = []); + var existingVal = cache[cacheKey]; + + if (existingVal != null) { + return existingVal; + } + + var padding = 0; // add padding around text dims, as the measurement isn't that accurate + + var fStyle = ele.pstyle('font-style').strValue; + var size = ele.pstyle('font-size').pfValue; + var family = ele.pstyle('font-family').strValue; + var weight = ele.pstyle('font-weight').strValue; + var canvas = this.labelCalcCanvas; + var c2d = this.labelCalcCanvasContext; + + if (!canvas) { + canvas = this.labelCalcCanvas = document.createElement('canvas'); + c2d = this.labelCalcCanvasContext = canvas.getContext('2d'); + var ds = canvas.style; + ds.position = 'absolute'; + ds.left = '-9999px'; + ds.top = '-9999px'; + ds.zIndex = '-1'; + ds.visibility = 'hidden'; + ds.pointerEvents = 'none'; + } + + c2d.font = "".concat(fStyle, " ").concat(weight, " ").concat(size, "px ").concat(family); + var width = 0; + var height = 0; + var lines = text.split('\n'); + + for (var i = 0; i < lines.length; i++) { + var line = lines[i]; + var metrics = c2d.measureText(line); + var w = Math.ceil(metrics.width); + var h = size; + width = Math.max(w, width); + height += h; + } + + width += padding; + height += padding; + return cache[cacheKey] = { + width: width, + height: height + }; + }; + + BRp$9.calculateLabelAngle = function (ele, prefix) { + var _p = ele._private; + var rs = _p.rscratch; + var isEdge = ele.isEdge(); + var prefixDash = prefix ? prefix + '-' : ''; + var rot = ele.pstyle(prefixDash + 'text-rotation'); + var rotStr = rot.strValue; + + if (rotStr === 'none') { + return 0; + } else if (isEdge && rotStr === 'autorotate') { + return rs.labelAutoAngle; + } else if (rotStr === 'autorotate') { + return 0; + } else { + return rot.pfValue; + } + }; + + BRp$9.calculateLabelAngles = function (ele) { + var r = this; + var isEdge = ele.isEdge(); + var _p = ele._private; + var rs = _p.rscratch; + rs.labelAngle = r.calculateLabelAngle(ele); + + if (isEdge) { + rs.sourceLabelAngle = r.calculateLabelAngle(ele, 'source'); + rs.targetLabelAngle = r.calculateLabelAngle(ele, 'target'); + } + }; + + var BRp$8 = {}; + var TOO_SMALL_CUT_RECT = 28; + var warnedCutRect = false; + + BRp$8.getNodeShape = function (node) { + var r = this; + var shape = node.pstyle('shape').value; + + if (shape === 'cutrectangle' && (node.width() < TOO_SMALL_CUT_RECT || node.height() < TOO_SMALL_CUT_RECT)) { + if (!warnedCutRect) { + warn('The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead'); + warnedCutRect = true; + } + + return 'rectangle'; + } + + if (node.isParent()) { + if (shape === 'rectangle' || shape === 'roundrectangle' || shape === 'round-rectangle' || shape === 'cutrectangle' || shape === 'cut-rectangle' || shape === 'barrel') { + return shape; + } else { + return 'rectangle'; + } + } + + if (shape === 'polygon') { + var points = node.pstyle('shape-polygon-points').value; + return r.nodeShapes.makePolygon(points).name; + } + + return shape; + }; + + var BRp$7 = {}; + + BRp$7.registerCalculationListeners = function () { + var cy = this.cy; + var elesToUpdate = cy.collection(); + var r = this; + + var enqueue = function enqueue(eles) { + var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + elesToUpdate.merge(eles); + + if (dirtyStyleCaches) { + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var _p = ele._private; + var rstyle = _p.rstyle; + rstyle.clean = false; + rstyle.cleanConnected = false; + } + } + }; + + r.binder(cy).on('bounds.* dirty.*', function onDirtyBounds(e) { + var ele = e.target; + enqueue(ele); + }).on('style.* background.*', function onDirtyStyle(e) { + var ele = e.target; + enqueue(ele, false); + }); + + var updateEleCalcs = function updateEleCalcs(willDraw) { + if (willDraw) { + var fns = r.onUpdateEleCalcsFns; // because we need to have up-to-date style (e.g. stylesheet mappers) + // before calculating rendered style (and pstyle might not be called yet) + + elesToUpdate.cleanStyle(); + + for (var i = 0; i < elesToUpdate.length; i++) { + var ele = elesToUpdate[i]; + var rstyle = ele._private.rstyle; + + if (ele.isNode() && !rstyle.cleanConnected) { + enqueue(ele.connectedEdges()); + rstyle.cleanConnected = true; + } + } + + if (fns) { + for (var _i = 0; _i < fns.length; _i++) { + var fn = fns[_i]; + fn(willDraw, elesToUpdate); + } + } + + r.recalculateRenderedStyle(elesToUpdate); + elesToUpdate = cy.collection(); + } + }; + + r.flushRenderedStyleQueue = function () { + updateEleCalcs(true); + }; + + r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs); + }; + + BRp$7.onUpdateEleCalcs = function (fn) { + var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || []; + fns.push(fn); + }; + + BRp$7.recalculateRenderedStyle = function (eles, useCache) { + var isCleanConnected = function isCleanConnected(ele) { + return ele._private.rstyle.cleanConnected; + }; + + var edges = []; + var nodes = []; // the renderer can't be used for calcs when destroyed, e.g. ele.boundingBox() + + if (this.destroyed) { + return; + } // use cache by default for perf + + + if (useCache === undefined) { + useCache = true; + } + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var _p = ele._private; + var rstyle = _p.rstyle; // an edge may be implicitly dirty b/c of one of its connected nodes + // (and a request for recalc may come in between frames) + + if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) { + rstyle.clean = false; + } // only update if dirty and in graph + + + if (useCache && rstyle.clean || ele.removed()) { + continue; + } // only update if not display: none + + + if (ele.pstyle('display').value === 'none') { + continue; + } + + if (_p.group === 'nodes') { + nodes.push(ele); + } else { + // edges + edges.push(ele); + } + + rstyle.clean = true; + } // update node data from projections + + + for (var _i2 = 0; _i2 < nodes.length; _i2++) { + var _ele = nodes[_i2]; + var _p2 = _ele._private; + var _rstyle = _p2.rstyle; + + var pos = _ele.position(); + + this.recalculateNodeLabelProjection(_ele); + _rstyle.nodeX = pos.x; + _rstyle.nodeY = pos.y; + _rstyle.nodeW = _ele.pstyle('width').pfValue; + _rstyle.nodeH = _ele.pstyle('height').pfValue; + } + + this.recalculateEdgeProjections(edges); // update edge data from projections + + for (var _i3 = 0; _i3 < edges.length; _i3++) { + var _ele2 = edges[_i3]; + var _p3 = _ele2._private; + var _rstyle2 = _p3.rstyle; + var rs = _p3.rscratch; // update rstyle positions + + _rstyle2.srcX = rs.arrowStartX; + _rstyle2.srcY = rs.arrowStartY; + _rstyle2.tgtX = rs.arrowEndX; + _rstyle2.tgtY = rs.arrowEndY; + _rstyle2.midX = rs.midX; + _rstyle2.midY = rs.midY; + _rstyle2.labelAngle = rs.labelAngle; + _rstyle2.sourceLabelAngle = rs.sourceLabelAngle; + _rstyle2.targetLabelAngle = rs.targetLabelAngle; + } + }; + + var BRp$6 = {}; + + BRp$6.updateCachedGrabbedEles = function () { + var eles = this.cachedZSortedEles; + + if (!eles) { + // just let this be recalculated on the next z sort tick + return; + } + + eles.drag = []; + eles.nondrag = []; + var grabTargets = []; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var rs = ele._private.rscratch; + + if (ele.grabbed() && !ele.isParent()) { + grabTargets.push(ele); + } else if (rs.inDragLayer) { + eles.drag.push(ele); + } else { + eles.nondrag.push(ele); + } + } // put the grab target nodes last so it's on top of its neighbourhood + + + for (var i = 0; i < grabTargets.length; i++) { + var ele = grabTargets[i]; + eles.drag.push(ele); + } + }; + + BRp$6.invalidateCachedZSortedEles = function () { + this.cachedZSortedEles = null; + }; + + BRp$6.getCachedZSortedEles = function (forceRecalc) { + if (forceRecalc || !this.cachedZSortedEles) { + var eles = this.cy.mutableElements().toArray(); + eles.sort(zIndexSort); + eles.interactive = eles.filter(function (ele) { + return ele.interactive(); + }); + this.cachedZSortedEles = eles; + this.updateCachedGrabbedEles(); + } else { + eles = this.cachedZSortedEles; + } + + return eles; + }; + + var BRp$5 = {}; + [BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function (props) { + extend(BRp$5, props); + }); + + var BRp$4 = {}; + + BRp$4.getCachedImage = function (url, crossOrigin, onLoad) { + var r = this; + var imageCache = r.imageCache = r.imageCache || {}; + var cache = imageCache[url]; + + if (cache) { + if (!cache.image.complete) { + cache.image.addEventListener('load', onLoad); + } + + return cache.image; + } else { + cache = imageCache[url] = imageCache[url] || {}; + var image = cache.image = new Image(); // eslint-disable-line no-undef + + image.addEventListener('load', onLoad); + image.addEventListener('error', function () { + image.error = true; + }); // #1582 safari doesn't load data uris with crossOrigin properly + // https://bugs.webkit.org/show_bug.cgi?id=123978 + + var dataUriPrefix = 'data:'; + var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix; + + if (!isDataUri) { + // if crossorigin is 'null'(stringified), then manually set it to null + crossOrigin = crossOrigin === 'null' ? null : crossOrigin; + image.crossOrigin = crossOrigin; // prevent tainted canvas + } + + image.src = url; + return image; + } + }; + + var BRp$3 = {}; + /* global document, window, ResizeObserver, MutationObserver */ + + BRp$3.registerBinding = function (target, event, handler, useCapture) { + // eslint-disable-line no-unused-vars + var args = Array.prototype.slice.apply(arguments, [1]); // copy + + var b = this.binder(target); + return b.on.apply(b, args); + }; + + BRp$3.binder = function (tgt) { + var r = this; + var containerWindow = r.cy.window(); + var tgtIsDom = tgt === containerWindow || tgt === containerWindow.document || tgt === containerWindow.document.body || domElement(tgt); + + if (r.supportsPassiveEvents == null) { + // from https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection + var supportsPassive = false; + + try { + var opts = Object.defineProperty({}, 'passive', { + get: function get() { + supportsPassive = true; + return true; + } + }); + containerWindow.addEventListener('test', null, opts); + } catch (err) {// not supported + } + + r.supportsPassiveEvents = supportsPassive; + } + + var on = function on(event, handler, useCapture) { + var args = Array.prototype.slice.call(arguments); + + if (tgtIsDom && r.supportsPassiveEvents) { + // replace useCapture w/ opts obj + args[2] = { + capture: useCapture != null ? useCapture : false, + passive: false, + once: false + }; + } + + r.bindings.push({ + target: tgt, + args: args + }); + (tgt.addEventListener || tgt.on).apply(tgt, args); + return this; + }; + + return { + on: on, + addEventListener: on, + addListener: on, + bind: on + }; + }; + + BRp$3.nodeIsDraggable = function (node) { + return node && node.isNode() && !node.locked() && node.grabbable(); + }; + + BRp$3.nodeIsGrabbable = function (node) { + return this.nodeIsDraggable(node) && node.interactive(); + }; + + BRp$3.load = function () { + var r = this; + var containerWindow = r.cy.window(); + + var isSelected = function isSelected(ele) { + return ele.selected(); + }; + + var triggerEvents = function triggerEvents(target, names, e, position) { + if (target == null) { + target = r.cy; + } + + for (var i = 0; i < names.length; i++) { + var name = names[i]; + target.emit({ + originalEvent: e, + type: name, + position: position + }); + } + }; + + var isMultSelKeyDown = function isMultSelKeyDown(e) { + return e.shiftKey || e.metaKey || e.ctrlKey; // maybe e.altKey + }; + + var allowPanningPassthrough = function allowPanningPassthrough(down, downs) { + var allowPassthrough = true; + + if (r.cy.hasCompoundNodes() && down && down.pannable()) { + // a grabbable compound node below the ele => no passthrough panning + for (var i = 0; downs && i < downs.length; i++) { + var down = downs[i]; //if any parent node in event hierarchy isn't pannable, reject passthrough + + if (down.isNode() && down.isParent() && !down.pannable()) { + allowPassthrough = false; + break; + } + } + } else { + allowPassthrough = true; + } + + return allowPassthrough; + }; + + var setGrabbed = function setGrabbed(ele) { + ele[0]._private.grabbed = true; + }; + + var setFreed = function setFreed(ele) { + ele[0]._private.grabbed = false; + }; + + var setInDragLayer = function setInDragLayer(ele) { + ele[0]._private.rscratch.inDragLayer = true; + }; + + var setOutDragLayer = function setOutDragLayer(ele) { + ele[0]._private.rscratch.inDragLayer = false; + }; + + var setGrabTarget = function setGrabTarget(ele) { + ele[0]._private.rscratch.isGrabTarget = true; + }; + + var removeGrabTarget = function removeGrabTarget(ele) { + ele[0]._private.rscratch.isGrabTarget = false; + }; + + var addToDragList = function addToDragList(ele, opts) { + var list = opts.addToList; + var listHasEle = list.has(ele); + + if (!listHasEle && ele.grabbable() && !ele.locked()) { + list.merge(ele); + setGrabbed(ele); + } + }; // helper function to determine which child nodes and inner edges + // of a compound node to be dragged as well as the grabbed and selected nodes + + + var addDescendantsToDrag = function addDescendantsToDrag(node, opts) { + if (!node.cy().hasCompoundNodes()) { + return; + } + + if (opts.inDragLayer == null && opts.addToList == null) { + return; + } // nothing to do + + + var innerNodes = node.descendants(); + + if (opts.inDragLayer) { + innerNodes.forEach(setInDragLayer); + innerNodes.connectedEdges().forEach(setInDragLayer); + } + + if (opts.addToList) { + addToDragList(innerNodes, opts); + } + }; // adds the given nodes and its neighbourhood to the drag layer + + + var addNodesToDrag = function addNodesToDrag(nodes, opts) { + opts = opts || {}; + var hasCompoundNodes = nodes.cy().hasCompoundNodes(); + + if (opts.inDragLayer) { + nodes.forEach(setInDragLayer); + nodes.neighborhood().stdFilter(function (ele) { + return !hasCompoundNodes || ele.isEdge(); + }).forEach(setInDragLayer); + } + + if (opts.addToList) { + nodes.forEach(function (ele) { + addToDragList(ele, opts); + }); + } + + addDescendantsToDrag(nodes, opts); // always add to drag + // also add nodes and edges related to the topmost ancestor + + updateAncestorsInDragLayer(nodes, { + inDragLayer: opts.inDragLayer + }); + r.updateCachedGrabbedEles(); + }; + + var addNodeToDrag = addNodesToDrag; + + var freeDraggedElements = function freeDraggedElements(grabbedEles) { + if (!grabbedEles) { + return; + } // just go over all elements rather than doing a bunch of (possibly expensive) traversals + + + r.getCachedZSortedEles().forEach(function (ele) { + setFreed(ele); + setOutDragLayer(ele); + removeGrabTarget(ele); + }); + r.updateCachedGrabbedEles(); + }; // helper function to determine which ancestor nodes and edges should go + // to the drag layer (or should be removed from drag layer). + + + var updateAncestorsInDragLayer = function updateAncestorsInDragLayer(node, opts) { + if (opts.inDragLayer == null && opts.addToList == null) { + return; + } // nothing to do + + + if (!node.cy().hasCompoundNodes()) { + return; + } // find top-level parent + + + var parent = node.ancestors().orphans(); // no parent node: no nodes to add to the drag layer + + if (parent.same(node)) { + return; + } + + var nodes = parent.descendants().spawnSelf().merge(parent).unmerge(node).unmerge(node.descendants()); + var edges = nodes.connectedEdges(); + + if (opts.inDragLayer) { + edges.forEach(setInDragLayer); + nodes.forEach(setInDragLayer); + } + + if (opts.addToList) { + nodes.forEach(function (ele) { + addToDragList(ele, opts); + }); + } + }; + + var blurActiveDomElement = function blurActiveDomElement() { + if (document.activeElement != null && document.activeElement.blur != null) { + document.activeElement.blur(); + } + }; + + var haveMutationsApi = typeof MutationObserver !== 'undefined'; + var haveResizeObserverApi = typeof ResizeObserver !== 'undefined'; // watch for when the cy container is removed from the dom + + if (haveMutationsApi) { + r.removeObserver = new MutationObserver(function (mutns) { + // eslint-disable-line no-undef + for (var i = 0; i < mutns.length; i++) { + var mutn = mutns[i]; + var rNodes = mutn.removedNodes; + + if (rNodes) { + for (var j = 0; j < rNodes.length; j++) { + var rNode = rNodes[j]; + + if (rNode === r.container) { + r.destroy(); + break; + } + } + } + } + }); + + if (r.container.parentNode) { + r.removeObserver.observe(r.container.parentNode, { + childList: true + }); + } + } else { + r.registerBinding(r.container, 'DOMNodeRemoved', function (e) { + // eslint-disable-line no-unused-vars + r.destroy(); + }); + } + + var onResize = debounce_1(function () { + r.cy.resize(); + }, 100); + + if (haveMutationsApi) { + r.styleObserver = new MutationObserver(onResize); // eslint-disable-line no-undef + + r.styleObserver.observe(r.container, { + attributes: true + }); + } // auto resize + + + r.registerBinding(containerWindow, 'resize', onResize); // eslint-disable-line no-undef + + if (haveResizeObserverApi) { + r.resizeObserver = new ResizeObserver(onResize); // eslint-disable-line no-undef + + r.resizeObserver.observe(r.container); + } + + var forEachUp = function forEachUp(domEle, fn) { + while (domEle != null) { + fn(domEle); + domEle = domEle.parentNode; + } + }; + + var invalidateCoords = function invalidateCoords() { + r.invalidateContainerClientCoordsCache(); + }; + + forEachUp(r.container, function (domEle) { + r.registerBinding(domEle, 'transitionend', invalidateCoords); + r.registerBinding(domEle, 'animationend', invalidateCoords); + r.registerBinding(domEle, 'scroll', invalidateCoords); + }); // stop right click menu from appearing on cy + + r.registerBinding(r.container, 'contextmenu', function (e) { + e.preventDefault(); + }); + + var inBoxSelection = function inBoxSelection() { + return r.selection[4] !== 0; + }; + + var eventInContainer = function eventInContainer(e) { + // save cycles if mouse events aren't to be captured + var containerPageCoords = r.findContainerClientCoords(); + var x = containerPageCoords[0]; + var y = containerPageCoords[1]; + var width = containerPageCoords[2]; + var height = containerPageCoords[3]; + var positions = e.touches ? e.touches : [e]; + var atLeastOnePosInside = false; + + for (var i = 0; i < positions.length; i++) { + var p = positions[i]; + + if (x <= p.clientX && p.clientX <= x + width && y <= p.clientY && p.clientY <= y + height) { + atLeastOnePosInside = true; + break; + } + } + + if (!atLeastOnePosInside) { + return false; + } + + var container = r.container; + var target = e.target; + var tParent = target.parentNode; + var containerIsTarget = false; + + while (tParent) { + if (tParent === container) { + containerIsTarget = true; + break; + } + + tParent = tParent.parentNode; + } + + if (!containerIsTarget) { + return false; + } // if target is outisde cy container, then this event is not for us + + + return true; + }; // Primary key + + + r.registerBinding(r.container, 'mousedown', function mousedownHandler(e) { + if (!eventInContainer(e)) { + return; + } + + e.preventDefault(); + blurActiveDomElement(); + r.hoverData.capture = true; + r.hoverData.which = e.which; + var cy = r.cy; + var gpos = [e.clientX, e.clientY]; + var pos = r.projectIntoViewport(gpos[0], gpos[1]); + var select = r.selection; + var nears = r.findNearestElements(pos[0], pos[1], true, false); + var near = nears[0]; + var draggedElements = r.dragData.possibleDragElements; + r.hoverData.mdownPos = pos; + r.hoverData.mdownGPos = gpos; + + var checkForTaphold = function checkForTaphold() { + r.hoverData.tapholdCancelled = false; + clearTimeout(r.hoverData.tapholdTimeout); + r.hoverData.tapholdTimeout = setTimeout(function () { + if (r.hoverData.tapholdCancelled) { + return; + } else { + var ele = r.hoverData.down; + + if (ele) { + ele.emit({ + originalEvent: e, + type: 'taphold', + position: { + x: pos[0], + y: pos[1] + } + }); + } else { + cy.emit({ + originalEvent: e, + type: 'taphold', + position: { + x: pos[0], + y: pos[1] + } + }); + } + } + }, r.tapholdDuration); + }; // Right click button + + + if (e.which == 3) { + r.hoverData.cxtStarted = true; + var cxtEvt = { + originalEvent: e, + type: 'cxttapstart', + position: { + x: pos[0], + y: pos[1] + } + }; + + if (near) { + near.activate(); + near.emit(cxtEvt); + r.hoverData.down = near; + } else { + cy.emit(cxtEvt); + } + + r.hoverData.downTime = new Date().getTime(); + r.hoverData.cxtDragged = false; // Primary button + } else if (e.which == 1) { + if (near) { + near.activate(); + } // Element dragging + + + { + // If something is under the cursor and it is draggable, prepare to grab it + if (near != null) { + if (r.nodeIsGrabbable(near)) { + var makeEvent = function makeEvent(type) { + return { + originalEvent: e, + type: type, + position: { + x: pos[0], + y: pos[1] + } + }; + }; + + var triggerGrab = function triggerGrab(ele) { + ele.emit(makeEvent('grab')); + }; + + setGrabTarget(near); + + if (!near.selected()) { + draggedElements = r.dragData.possibleDragElements = cy.collection(); + addNodeToDrag(near, { + addToList: draggedElements + }); + near.emit(makeEvent('grabon')).emit(makeEvent('grab')); + } else { + draggedElements = r.dragData.possibleDragElements = cy.collection(); + var selectedNodes = cy.$(function (ele) { + return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele); + }); + addNodesToDrag(selectedNodes, { + addToList: draggedElements + }); + near.emit(makeEvent('grabon')); + selectedNodes.forEach(triggerGrab); + } + + r.redrawHint('eles', true); + r.redrawHint('drag', true); + } + } + + r.hoverData.down = near; + r.hoverData.downs = nears; + r.hoverData.downTime = new Date().getTime(); + } + triggerEvents(near, ['mousedown', 'tapstart', 'vmousedown'], e, { + x: pos[0], + y: pos[1] + }); + + if (near == null) { + select[4] = 1; + r.data.bgActivePosistion = { + x: pos[0], + y: pos[1] + }; + r.redrawHint('select', true); + r.redraw(); + } else if (near.pannable()) { + select[4] = 1; // for future pan + } + + checkForTaphold(); + } // Initialize selection box coordinates + + + select[0] = select[2] = pos[0]; + select[1] = select[3] = pos[1]; + }, false); + r.registerBinding(containerWindow, 'mousemove', function mousemoveHandler(e) { + // eslint-disable-line no-undef + var capture = r.hoverData.capture; + + if (!capture && !eventInContainer(e)) { + return; + } + + var preventDefault = false; + var cy = r.cy; + var zoom = cy.zoom(); + var gpos = [e.clientX, e.clientY]; + var pos = r.projectIntoViewport(gpos[0], gpos[1]); + var mdownPos = r.hoverData.mdownPos; + var mdownGPos = r.hoverData.mdownGPos; + var select = r.selection; + var near = null; + + if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) { + near = r.findNearestElement(pos[0], pos[1], true, false); + } + + var last = r.hoverData.last; + var down = r.hoverData.down; + var disp = [pos[0] - select[2], pos[1] - select[3]]; + var draggedElements = r.dragData.possibleDragElements; + var isOverThresholdDrag; + + if (mdownGPos) { + var dx = gpos[0] - mdownGPos[0]; + var dx2 = dx * dx; + var dy = gpos[1] - mdownGPos[1]; + var dy2 = dy * dy; + var dist2 = dx2 + dy2; + r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist2 >= r.desktopTapThreshold2; + } + + var multSelKeyDown = isMultSelKeyDown(e); + + if (isOverThresholdDrag) { + r.hoverData.tapholdCancelled = true; + } + + var updateDragDelta = function updateDragDelta() { + var dragDelta = r.hoverData.dragDelta = r.hoverData.dragDelta || []; + + if (dragDelta.length === 0) { + dragDelta.push(disp[0]); + dragDelta.push(disp[1]); + } else { + dragDelta[0] += disp[0]; + dragDelta[1] += disp[1]; + } + }; + + preventDefault = true; + triggerEvents(near, ['mousemove', 'vmousemove', 'tapdrag'], e, { + x: pos[0], + y: pos[1] + }); + + var goIntoBoxMode = function goIntoBoxMode() { + r.data.bgActivePosistion = undefined; + + if (!r.hoverData.selecting) { + cy.emit({ + originalEvent: e, + type: 'boxstart', + position: { + x: pos[0], + y: pos[1] + } + }); + } + + select[4] = 1; + r.hoverData.selecting = true; + r.redrawHint('select', true); + r.redraw(); + }; // trigger context drag if rmouse down + + + if (r.hoverData.which === 3) { + // but only if over threshold + if (isOverThresholdDrag) { + var cxtEvt = { + originalEvent: e, + type: 'cxtdrag', + position: { + x: pos[0], + y: pos[1] + } + }; + + if (down) { + down.emit(cxtEvt); + } else { + cy.emit(cxtEvt); + } + + r.hoverData.cxtDragged = true; + + if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) { + if (r.hoverData.cxtOver) { + r.hoverData.cxtOver.emit({ + originalEvent: e, + type: 'cxtdragout', + position: { + x: pos[0], + y: pos[1] + } + }); + } + + r.hoverData.cxtOver = near; + + if (near) { + near.emit({ + originalEvent: e, + type: 'cxtdragover', + position: { + x: pos[0], + y: pos[1] + } + }); + } + } + } // Check if we are drag panning the entire graph + + } else if (r.hoverData.dragging) { + preventDefault = true; + + if (cy.panningEnabled() && cy.userPanningEnabled()) { + var deltaP; + + if (r.hoverData.justStartedPan) { + var mdPos = r.hoverData.mdownPos; + deltaP = { + x: (pos[0] - mdPos[0]) * zoom, + y: (pos[1] - mdPos[1]) * zoom + }; + r.hoverData.justStartedPan = false; + } else { + deltaP = { + x: disp[0] * zoom, + y: disp[1] * zoom + }; + } + + cy.panBy(deltaP); + cy.emit('dragpan'); + r.hoverData.dragged = true; + } // Needs reproject due to pan changing viewport + + + pos = r.projectIntoViewport(e.clientX, e.clientY); // Checks primary button down & out of time & mouse not moved much + } else if (select[4] == 1 && (down == null || down.pannable())) { + if (isOverThresholdDrag) { + if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) { + goIntoBoxMode(); + } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) { + var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs); + + if (allowPassthrough) { + r.hoverData.dragging = true; + r.hoverData.justStartedPan = true; + select[4] = 0; + r.data.bgActivePosistion = array2point(mdownPos); + r.redrawHint('select', true); + r.redraw(); + } + } + + if (down && down.pannable() && down.active()) { + down.unactivate(); + } + } + } else { + if (down && down.pannable() && down.active()) { + down.unactivate(); + } + + if ((!down || !down.grabbed()) && near != last) { + if (last) { + triggerEvents(last, ['mouseout', 'tapdragout'], e, { + x: pos[0], + y: pos[1] + }); + } + + if (near) { + triggerEvents(near, ['mouseover', 'tapdragover'], e, { + x: pos[0], + y: pos[1] + }); + } + + r.hoverData.last = near; + } + + if (down) { + if (isOverThresholdDrag) { + // then we can take action + if (cy.boxSelectionEnabled() && multSelKeyDown) { + // then selection overrides + if (down && down.grabbed()) { + freeDraggedElements(draggedElements); + down.emit('freeon'); + draggedElements.emit('free'); + + if (r.dragData.didDrag) { + down.emit('dragfreeon'); + draggedElements.emit('dragfree'); + } + } + + goIntoBoxMode(); + } else if (down && down.grabbed() && r.nodeIsDraggable(down)) { + // drag node + var justStartedDrag = !r.dragData.didDrag; + + if (justStartedDrag) { + r.redrawHint('eles', true); + } + + r.dragData.didDrag = true; // indicate that we actually did drag the node + // now, add the elements to the drag layer if not done already + + if (!r.hoverData.draggingEles) { + addNodesToDrag(draggedElements, { + inDragLayer: true + }); + } + + var totalShift = { + x: 0, + y: 0 + }; + + if (number$1(disp[0]) && number$1(disp[1])) { + totalShift.x += disp[0]; + totalShift.y += disp[1]; + + if (justStartedDrag) { + var dragDelta = r.hoverData.dragDelta; + + if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) { + totalShift.x += dragDelta[0]; + totalShift.y += dragDelta[1]; + } + } + } + + r.hoverData.draggingEles = true; + draggedElements.silentShift(totalShift).emit('position drag'); + r.redrawHint('drag', true); + r.redraw(); + } + } else { + // otherwise save drag delta for when we actually start dragging so the relative grab pos is constant + updateDragDelta(); + } + } // prevent the dragging from triggering text selection on the page + + + preventDefault = true; + } + + select[2] = pos[0]; + select[3] = pos[1]; + + if (preventDefault) { + if (e.stopPropagation) e.stopPropagation(); + if (e.preventDefault) e.preventDefault(); + return false; + } + }, false); + var clickTimeout, didDoubleClick, prevClickTimeStamp; + r.registerBinding(containerWindow, 'mouseup', function mouseupHandler(e) { + // eslint-disable-line no-undef + var capture = r.hoverData.capture; + + if (!capture) { + return; + } + + r.hoverData.capture = false; + var cy = r.cy; + var pos = r.projectIntoViewport(e.clientX, e.clientY); + var select = r.selection; + var near = r.findNearestElement(pos[0], pos[1], true, false); + var draggedElements = r.dragData.possibleDragElements; + var down = r.hoverData.down; + var multSelKeyDown = isMultSelKeyDown(e); + + if (r.data.bgActivePosistion) { + r.redrawHint('select', true); + r.redraw(); + } + + r.hoverData.tapholdCancelled = true; + r.data.bgActivePosistion = undefined; // not active bg now + + if (down) { + down.unactivate(); + } + + if (r.hoverData.which === 3) { + var cxtEvt = { + originalEvent: e, + type: 'cxttapend', + position: { + x: pos[0], + y: pos[1] + } + }; + + if (down) { + down.emit(cxtEvt); + } else { + cy.emit(cxtEvt); + } + + if (!r.hoverData.cxtDragged) { + var cxtTap = { + originalEvent: e, + type: 'cxttap', + position: { + x: pos[0], + y: pos[1] + } + }; + + if (down) { + down.emit(cxtTap); + } else { + cy.emit(cxtTap); + } + } + + r.hoverData.cxtDragged = false; + r.hoverData.which = null; + } else if (r.hoverData.which === 1) { + triggerEvents(near, ['mouseup', 'tapend', 'vmouseup'], e, { + x: pos[0], + y: pos[1] + }); + + if (!r.dragData.didDrag && // didn't move a node around + !r.hoverData.dragged && // didn't pan + !r.hoverData.selecting && // not box selection + !r.hoverData.isOverThresholdDrag // didn't move too much + ) { + triggerEvents(down, ["click", "tap", "vclick"], e, { + x: pos[0], + y: pos[1] + }); + didDoubleClick = false; + + if (e.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) { + clickTimeout && clearTimeout(clickTimeout); + didDoubleClick = true; + prevClickTimeStamp = null; + triggerEvents(down, ["dblclick", "dbltap", "vdblclick"], e, { + x: pos[0], + y: pos[1] + }); + } else { + clickTimeout = setTimeout(function () { + if (didDoubleClick) return; + triggerEvents(down, ["oneclick", "onetap", "voneclick"], e, { + x: pos[0], + y: pos[1] + }); + }, cy.multiClickDebounceTime()); + prevClickTimeStamp = e.timeStamp; + } + } // Deselect all elements if nothing is currently under the mouse cursor and we aren't dragging something + + + if (down == null // not mousedown on node + && !r.dragData.didDrag // didn't move the node around + && !r.hoverData.selecting // not box selection + && !r.hoverData.dragged // didn't pan + && !isMultSelKeyDown(e)) { + cy.$(isSelected).unselect(['tapunselect']); + + if (draggedElements.length > 0) { + r.redrawHint('eles', true); + } + + r.dragData.possibleDragElements = draggedElements = cy.collection(); + } // Single selection + + + if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) { + if (near != null && near._private.selectable) { + if (r.hoverData.dragging) ; else if (cy.selectionType() === 'additive' || multSelKeyDown) { + if (near.selected()) { + near.unselect(['tapunselect']); + } else { + near.select(['tapselect']); + } + } else { + if (!multSelKeyDown) { + cy.$(isSelected).unmerge(near).unselect(['tapunselect']); + near.select(['tapselect']); + } + } + + r.redrawHint('eles', true); + } + } + + if (r.hoverData.selecting) { + var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3])); + r.redrawHint('select', true); + + if (box.length > 0) { + r.redrawHint('eles', true); + } + + cy.emit({ + type: 'boxend', + originalEvent: e, + position: { + x: pos[0], + y: pos[1] + } + }); + + var eleWouldBeSelected = function eleWouldBeSelected(ele) { + return ele.selectable() && !ele.selected(); + }; + + if (cy.selectionType() === 'additive') { + box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect'); + } else { + if (!multSelKeyDown) { + cy.$(isSelected).unmerge(box).unselect(); + } + + box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect'); + } // always need redraw in case eles unselectable + + + r.redraw(); + } // Cancel drag pan + + + if (r.hoverData.dragging) { + r.hoverData.dragging = false; + r.redrawHint('select', true); + r.redrawHint('eles', true); + r.redraw(); + } + + if (!select[4]) { + r.redrawHint('drag', true); + r.redrawHint('eles', true); + var downWasGrabbed = down && down.grabbed(); + freeDraggedElements(draggedElements); + + if (downWasGrabbed) { + down.emit('freeon'); + draggedElements.emit('free'); + + if (r.dragData.didDrag) { + down.emit('dragfreeon'); + draggedElements.emit('dragfree'); + } + } + } + } // else not right mouse + + + select[4] = 0; + r.hoverData.down = null; + r.hoverData.cxtStarted = false; + r.hoverData.draggingEles = false; + r.hoverData.selecting = false; + r.hoverData.isOverThresholdDrag = false; + r.dragData.didDrag = false; + r.hoverData.dragged = false; + r.hoverData.dragDelta = []; + r.hoverData.mdownPos = null; + r.hoverData.mdownGPos = null; + }, false); + + var wheelHandler = function wheelHandler(e) { + if (r.scrollingPage) { + return; + } // while scrolling, ignore wheel-to-zoom + + + var cy = r.cy; + var zoom = cy.zoom(); + var pan = cy.pan(); + var pos = r.projectIntoViewport(e.clientX, e.clientY); + var rpos = [pos[0] * zoom + pan.x, pos[1] * zoom + pan.y]; + + if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) { + // if pan dragging or cxt dragging, wheel movements make no zoom + e.preventDefault(); + return; + } + + if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) { + e.preventDefault(); + r.data.wheelZooming = true; + clearTimeout(r.data.wheelTimeout); + r.data.wheelTimeout = setTimeout(function () { + r.data.wheelZooming = false; + r.redrawHint('eles', true); + r.redraw(); + }, 150); + var diff; + + if (e.deltaY != null) { + diff = e.deltaY / -250; + } else if (e.wheelDeltaY != null) { + diff = e.wheelDeltaY / 1000; + } else { + diff = e.wheelDelta / 1000; + } + + diff = diff * r.wheelSensitivity; + var needsWheelFix = e.deltaMode === 1; + + if (needsWheelFix) { + // fixes slow wheel events on ff/linux and ff/windows + diff *= 33; + } + + var newZoom = cy.zoom() * Math.pow(10, diff); + + if (e.type === 'gesturechange') { + newZoom = r.gestureStartZoom * e.scale; + } + + cy.zoom({ + level: newZoom, + renderedPosition: { + x: rpos[0], + y: rpos[1] + } + }); + cy.emit(e.type === 'gesturechange' ? 'pinchzoom' : 'scrollzoom'); + } + }; // Functions to help with whether mouse wheel should trigger zooming + // -- + + + r.registerBinding(r.container, 'wheel', wheelHandler, true); // disable nonstandard wheel events + // r.registerBinding(r.container, 'mousewheel', wheelHandler, true); + // r.registerBinding(r.container, 'DOMMouseScroll', wheelHandler, true); + // r.registerBinding(r.container, 'MozMousePixelScroll', wheelHandler, true); // older firefox + + r.registerBinding(containerWindow, 'scroll', function scrollHandler(e) { + // eslint-disable-line no-unused-vars + r.scrollingPage = true; + clearTimeout(r.scrollingPageTimeout); + r.scrollingPageTimeout = setTimeout(function () { + r.scrollingPage = false; + }, 250); + }, true); // desktop safari pinch to zoom start + + r.registerBinding(r.container, 'gesturestart', function gestureStartHandler(e) { + r.gestureStartZoom = r.cy.zoom(); + + if (!r.hasTouchStarted) { + // don't affect touch devices like iphone + e.preventDefault(); + } + }, true); + r.registerBinding(r.container, 'gesturechange', function (e) { + if (!r.hasTouchStarted) { + // don't affect touch devices like iphone + wheelHandler(e); + } + }, true); // Functions to help with handling mouseout/mouseover on the Cytoscape container + // Handle mouseout on Cytoscape container + + r.registerBinding(r.container, 'mouseout', function mouseOutHandler(e) { + var pos = r.projectIntoViewport(e.clientX, e.clientY); + r.cy.emit({ + originalEvent: e, + type: 'mouseout', + position: { + x: pos[0], + y: pos[1] + } + }); + }, false); + r.registerBinding(r.container, 'mouseover', function mouseOverHandler(e) { + var pos = r.projectIntoViewport(e.clientX, e.clientY); + r.cy.emit({ + originalEvent: e, + type: 'mouseover', + position: { + x: pos[0], + y: pos[1] + } + }); + }, false); + var f1x1, f1y1, f2x1, f2y1; // starting points for pinch-to-zoom + + var distance1, distance1Sq; // initial distance between finger 1 and finger 2 for pinch-to-zoom + + var center1, modelCenter1; // center point on start pinch to zoom + + var offsetLeft, offsetTop; + var containerWidth, containerHeight; + var twoFingersStartInside; + + var distance = function distance(x1, y1, x2, y2) { + return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); + }; + + var distanceSq = function distanceSq(x1, y1, x2, y2) { + return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); + }; + + var touchstartHandler; + r.registerBinding(r.container, 'touchstart', touchstartHandler = function touchstartHandler(e) { + r.hasTouchStarted = true; + + if (!eventInContainer(e)) { + return; + } + + blurActiveDomElement(); + r.touchData.capture = true; + r.data.bgActivePosistion = undefined; + var cy = r.cy; + var now = r.touchData.now; + var earlier = r.touchData.earlier; + + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now[0] = pos[0]; + now[1] = pos[1]; + } + + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now[2] = pos[0]; + now[3] = pos[1]; + } + + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now[4] = pos[0]; + now[5] = pos[1]; + } // record starting points for pinch-to-zoom + + + if (e.touches[1]) { + r.touchData.singleTouchMoved = true; + freeDraggedElements(r.dragData.touchDragEles); + var offsets = r.findContainerClientCoords(); + offsetLeft = offsets[0]; + offsetTop = offsets[1]; + containerWidth = offsets[2]; + containerHeight = offsets[3]; + f1x1 = e.touches[0].clientX - offsetLeft; + f1y1 = e.touches[0].clientY - offsetTop; + f2x1 = e.touches[1].clientX - offsetLeft; + f2y1 = e.touches[1].clientY - offsetTop; + twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight; + var pan = cy.pan(); + var zoom = cy.zoom(); + distance1 = distance(f1x1, f1y1, f2x1, f2y1); + distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1); + center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2]; + modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom]; // consider context tap + + var cxtDistThreshold = 200; + var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold; + + if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) { + var near1 = r.findNearestElement(now[0], now[1], true, true); + var near2 = r.findNearestElement(now[2], now[3], true, true); + + if (near1 && near1.isNode()) { + near1.activate().emit({ + originalEvent: e, + type: 'cxttapstart', + position: { + x: now[0], + y: now[1] + } + }); + r.touchData.start = near1; + } else if (near2 && near2.isNode()) { + near2.activate().emit({ + originalEvent: e, + type: 'cxttapstart', + position: { + x: now[0], + y: now[1] + } + }); + r.touchData.start = near2; + } else { + cy.emit({ + originalEvent: e, + type: 'cxttapstart', + position: { + x: now[0], + y: now[1] + } + }); + } + + if (r.touchData.start) { + r.touchData.start._private.grabbed = false; + } + + r.touchData.cxt = true; + r.touchData.cxtDragged = false; + r.data.bgActivePosistion = undefined; + r.redraw(); + return; + } + } + + if (e.touches[2]) { + // ignore + // safari on ios pans the page otherwise (normally you should be able to preventdefault on touchmove...) + if (cy.boxSelectionEnabled()) { + e.preventDefault(); + } + } else if (e.touches[1]) ; else if (e.touches[0]) { + var nears = r.findNearestElements(now[0], now[1], true, true); + var near = nears[0]; + + if (near != null) { + near.activate(); + r.touchData.start = near; + r.touchData.starts = nears; + + if (r.nodeIsGrabbable(near)) { + var draggedEles = r.dragData.touchDragEles = cy.collection(); + var selectedNodes = null; + r.redrawHint('eles', true); + r.redrawHint('drag', true); + + if (near.selected()) { + // reset drag elements, since near will be added again + selectedNodes = cy.$(function (ele) { + return ele.selected() && r.nodeIsGrabbable(ele); + }); + addNodesToDrag(selectedNodes, { + addToList: draggedEles + }); + } else { + addNodeToDrag(near, { + addToList: draggedEles + }); + } + + setGrabTarget(near); + + var makeEvent = function makeEvent(type) { + return { + originalEvent: e, + type: type, + position: { + x: now[0], + y: now[1] + } + }; + }; + + near.emit(makeEvent('grabon')); + + if (selectedNodes) { + selectedNodes.forEach(function (n) { + n.emit(makeEvent('grab')); + }); + } else { + near.emit(makeEvent('grab')); + } + } + } + + triggerEvents(near, ['touchstart', 'tapstart', 'vmousedown'], e, { + x: now[0], + y: now[1] + }); + + if (near == null) { + r.data.bgActivePosistion = { + x: pos[0], + y: pos[1] + }; + r.redrawHint('select', true); + r.redraw(); + } // Tap, taphold + // ----- + + + r.touchData.singleTouchMoved = false; + r.touchData.singleTouchStartTime = +new Date(); + clearTimeout(r.touchData.tapholdTimeout); + r.touchData.tapholdTimeout = setTimeout(function () { + if (r.touchData.singleTouchMoved === false && !r.pinching // if pinching, then taphold unselect shouldn't take effect + && !r.touchData.selecting // box selection shouldn't allow taphold through + ) { + triggerEvents(r.touchData.start, ['taphold'], e, { + x: now[0], + y: now[1] + }); + } + }, r.tapholdDuration); + } + + if (e.touches.length >= 1) { + var sPos = r.touchData.startPosition = [null, null, null, null, null, null]; + + for (var i = 0; i < now.length; i++) { + sPos[i] = earlier[i] = now[i]; + } + + var touch0 = e.touches[0]; + r.touchData.startGPosition = [touch0.clientX, touch0.clientY]; + } + }, false); + var touchmoveHandler; + r.registerBinding(window, 'touchmove', touchmoveHandler = function touchmoveHandler(e) { + // eslint-disable-line no-undef + var capture = r.touchData.capture; + + if (!capture && !eventInContainer(e)) { + return; + } + + var select = r.selection; + var cy = r.cy; + var now = r.touchData.now; + var earlier = r.touchData.earlier; + var zoom = cy.zoom(); + + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now[0] = pos[0]; + now[1] = pos[1]; + } + + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now[2] = pos[0]; + now[3] = pos[1]; + } + + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now[4] = pos[0]; + now[5] = pos[1]; + } + + var startGPos = r.touchData.startGPosition; + var isOverThresholdDrag; + + if (capture && e.touches[0] && startGPos) { + var disp = []; + + for (var j = 0; j < now.length; j++) { + disp[j] = now[j] - earlier[j]; + } + + var dx = e.touches[0].clientX - startGPos[0]; + var dx2 = dx * dx; + var dy = e.touches[0].clientY - startGPos[1]; + var dy2 = dy * dy; + var dist2 = dx2 + dy2; + isOverThresholdDrag = dist2 >= r.touchTapThreshold2; + } // context swipe cancelling + + + if (capture && r.touchData.cxt) { + e.preventDefault(); + var f1x2 = e.touches[0].clientX - offsetLeft, + f1y2 = e.touches[0].clientY - offsetTop; + var f2x2 = e.touches[1].clientX - offsetLeft, + f2y2 = e.touches[1].clientY - offsetTop; // var distance2 = distance( f1x2, f1y2, f2x2, f2y2 ); + + var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2); + var factorSq = distance2Sq / distance1Sq; + var distThreshold = 150; + var distThresholdSq = distThreshold * distThreshold; + var factorThreshold = 1.5; + var factorThresholdSq = factorThreshold * factorThreshold; // cancel ctx gestures if the distance b/t the fingers increases + + if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) { + r.touchData.cxt = false; + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + var cxtEvt = { + originalEvent: e, + type: 'cxttapend', + position: { + x: now[0], + y: now[1] + } + }; + + if (r.touchData.start) { + r.touchData.start.unactivate().emit(cxtEvt); + r.touchData.start = null; + } else { + cy.emit(cxtEvt); + } + } + } // context swipe + + + if (capture && r.touchData.cxt) { + var cxtEvt = { + originalEvent: e, + type: 'cxtdrag', + position: { + x: now[0], + y: now[1] + } + }; + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + + if (r.touchData.start) { + r.touchData.start.emit(cxtEvt); + } else { + cy.emit(cxtEvt); + } + + if (r.touchData.start) { + r.touchData.start._private.grabbed = false; + } + + r.touchData.cxtDragged = true; + var near = r.findNearestElement(now[0], now[1], true, true); + + if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) { + if (r.touchData.cxtOver) { + r.touchData.cxtOver.emit({ + originalEvent: e, + type: 'cxtdragout', + position: { + x: now[0], + y: now[1] + } + }); + } + + r.touchData.cxtOver = near; + + if (near) { + near.emit({ + originalEvent: e, + type: 'cxtdragover', + position: { + x: now[0], + y: now[1] + } + }); + } + } // box selection + + } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) { + e.preventDefault(); + r.data.bgActivePosistion = undefined; + this.lastThreeTouch = +new Date(); + + if (!r.touchData.selecting) { + cy.emit({ + originalEvent: e, + type: 'boxstart', + position: { + x: now[0], + y: now[1] + } + }); + } + + r.touchData.selecting = true; + r.touchData.didSelect = true; + select[4] = 1; + + if (!select || select.length === 0 || select[0] === undefined) { + select[0] = (now[0] + now[2] + now[4]) / 3; + select[1] = (now[1] + now[3] + now[5]) / 3; + select[2] = (now[0] + now[2] + now[4]) / 3 + 1; + select[3] = (now[1] + now[3] + now[5]) / 3 + 1; + } else { + select[2] = (now[0] + now[2] + now[4]) / 3; + select[3] = (now[1] + now[3] + now[5]) / 3; + } + + r.redrawHint('select', true); + r.redraw(); // pinch to zoom + } else if (capture && e.touches[1] && !r.touchData.didSelect // don't allow box selection to degrade to pinch-to-zoom + && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) { + // two fingers => pinch to zoom + e.preventDefault(); + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + var draggedEles = r.dragData.touchDragEles; + + if (draggedEles) { + r.redrawHint('drag', true); + + for (var i = 0; i < draggedEles.length; i++) { + var de_p = draggedEles[i]._private; + de_p.grabbed = false; + de_p.rscratch.inDragLayer = false; + } + } + + var _start = r.touchData.start; // (x2, y2) for fingers 1 and 2 + + var f1x2 = e.touches[0].clientX - offsetLeft, + f1y2 = e.touches[0].clientY - offsetTop; + var f2x2 = e.touches[1].clientX - offsetLeft, + f2y2 = e.touches[1].clientY - offsetTop; + var distance2 = distance(f1x2, f1y2, f2x2, f2y2); // var distance2Sq = distanceSq( f1x2, f1y2, f2x2, f2y2 ); + // var factor = Math.sqrt( distance2Sq ) / Math.sqrt( distance1Sq ); + + var factor = distance2 / distance1; + + if (twoFingersStartInside) { + // delta finger1 + var df1x = f1x2 - f1x1; + var df1y = f1y2 - f1y1; // delta finger 2 + + var df2x = f2x2 - f2x1; + var df2y = f2y2 - f2y1; // translation is the normalised vector of the two fingers movement + // i.e. so pinching cancels out and moving together pans + + var tx = (df1x + df2x) / 2; + var ty = (df1y + df2y) / 2; // now calculate the zoom + + var zoom1 = cy.zoom(); + var zoom2 = zoom1 * factor; + var pan1 = cy.pan(); // the model center point converted to the current rendered pos + + var ctrx = modelCenter1[0] * zoom1 + pan1.x; + var ctry = modelCenter1[1] * zoom1 + pan1.y; + var pan2 = { + x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx, + y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry + }; // remove dragged eles + + if (_start && _start.active()) { + var draggedEles = r.dragData.touchDragEles; + freeDraggedElements(draggedEles); + r.redrawHint('drag', true); + r.redrawHint('eles', true); + + _start.unactivate().emit('freeon'); + + draggedEles.emit('free'); + + if (r.dragData.didDrag) { + _start.emit('dragfreeon'); + + draggedEles.emit('dragfree'); + } + } + + cy.viewport({ + zoom: zoom2, + pan: pan2, + cancelOnFailedZoom: true + }); + cy.emit('pinchzoom'); + distance1 = distance2; + f1x1 = f1x2; + f1y1 = f1y2; + f2x1 = f2x2; + f2y1 = f2y2; + r.pinching = true; + } // Re-project + + + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now[0] = pos[0]; + now[1] = pos[1]; + } + + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now[2] = pos[0]; + now[3] = pos[1]; + } + + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now[4] = pos[0]; + now[5] = pos[1]; + } + } else if (e.touches[0] && !r.touchData.didSelect // don't allow box selection to degrade to single finger events like panning + ) { + var start = r.touchData.start; + var last = r.touchData.last; + var near; + + if (!r.hoverData.draggingEles && !r.swipePanning) { + near = r.findNearestElement(now[0], now[1], true, true); + } + + if (capture && start != null) { + e.preventDefault(); + } // dragging nodes + + + if (capture && start != null && r.nodeIsDraggable(start)) { + if (isOverThresholdDrag) { + // then dragging can happen + var draggedEles = r.dragData.touchDragEles; + var justStartedDrag = !r.dragData.didDrag; + + if (justStartedDrag) { + addNodesToDrag(draggedEles, { + inDragLayer: true + }); + } + + r.dragData.didDrag = true; + var totalShift = { + x: 0, + y: 0 + }; + + if (number$1(disp[0]) && number$1(disp[1])) { + totalShift.x += disp[0]; + totalShift.y += disp[1]; + + if (justStartedDrag) { + r.redrawHint('eles', true); + var dragDelta = r.touchData.dragDelta; + + if (dragDelta && number$1(dragDelta[0]) && number$1(dragDelta[1])) { + totalShift.x += dragDelta[0]; + totalShift.y += dragDelta[1]; + } + } + } + + r.hoverData.draggingEles = true; + draggedEles.silentShift(totalShift).emit('position drag'); + r.redrawHint('drag', true); + + if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) { + r.redrawHint('eles', true); + } + + r.redraw(); + } else { + // otherwise keep track of drag delta for later + var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || []; + + if (dragDelta.length === 0) { + dragDelta.push(disp[0]); + dragDelta.push(disp[1]); + } else { + dragDelta[0] += disp[0]; + dragDelta[1] += disp[1]; + } + } + } // touchmove + + + { + triggerEvents(start || near, ['touchmove', 'tapdrag', 'vmousemove'], e, { + x: now[0], + y: now[1] + }); + + if ((!start || !start.grabbed()) && near != last) { + if (last) { + last.emit({ + originalEvent: e, + type: 'tapdragout', + position: { + x: now[0], + y: now[1] + } + }); + } + + if (near) { + near.emit({ + originalEvent: e, + type: 'tapdragover', + position: { + x: now[0], + y: now[1] + } + }); + } + } + + r.touchData.last = near; + } // check to cancel taphold + + if (capture) { + for (var i = 0; i < now.length; i++) { + if (now[i] && r.touchData.startPosition[i] && isOverThresholdDrag) { + r.touchData.singleTouchMoved = true; + } + } + } // panning + + + if (capture && (start == null || start.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) { + var allowPassthrough = allowPanningPassthrough(start, r.touchData.starts); + + if (allowPassthrough) { + e.preventDefault(); + + if (!r.data.bgActivePosistion) { + r.data.bgActivePosistion = array2point(r.touchData.startPosition); + } + + if (r.swipePanning) { + cy.panBy({ + x: disp[0] * zoom, + y: disp[1] * zoom + }); + cy.emit('dragpan'); + } else if (isOverThresholdDrag) { + r.swipePanning = true; + cy.panBy({ + x: dx * zoom, + y: dy * zoom + }); + cy.emit('dragpan'); + + if (start) { + start.unactivate(); + r.redrawHint('select', true); + r.touchData.start = null; + } + } + } // Re-project + + + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now[0] = pos[0]; + now[1] = pos[1]; + } + } + + for (var j = 0; j < now.length; j++) { + earlier[j] = now[j]; + } // the active bg indicator should be removed when making a swipe that is neither for dragging nodes or panning + + + if (capture && e.touches.length > 0 && !r.hoverData.draggingEles && !r.swipePanning && r.data.bgActivePosistion != null) { + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + r.redraw(); + } + }, false); + var touchcancelHandler; + r.registerBinding(containerWindow, 'touchcancel', touchcancelHandler = function touchcancelHandler(e) { + // eslint-disable-line no-unused-vars + var start = r.touchData.start; + r.touchData.capture = false; + + if (start) { + start.unactivate(); + } + }); + var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp; + r.registerBinding(containerWindow, 'touchend', touchendHandler = function touchendHandler(e) { + // eslint-disable-line no-unused-vars + var start = r.touchData.start; + var capture = r.touchData.capture; + + if (capture) { + if (e.touches.length === 0) { + r.touchData.capture = false; + } + + e.preventDefault(); + } else { + return; + } + + var select = r.selection; + r.swipePanning = false; + r.hoverData.draggingEles = false; + var cy = r.cy; + var zoom = cy.zoom(); + var now = r.touchData.now; + var earlier = r.touchData.earlier; + + if (e.touches[0]) { + var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY); + now[0] = pos[0]; + now[1] = pos[1]; + } + + if (e.touches[1]) { + var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY); + now[2] = pos[0]; + now[3] = pos[1]; + } + + if (e.touches[2]) { + var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY); + now[4] = pos[0]; + now[5] = pos[1]; + } + + if (start) { + start.unactivate(); + } + + var ctxTapend; + + if (r.touchData.cxt) { + ctxTapend = { + originalEvent: e, + type: 'cxttapend', + position: { + x: now[0], + y: now[1] + } + }; + + if (start) { + start.emit(ctxTapend); + } else { + cy.emit(ctxTapend); + } + + if (!r.touchData.cxtDragged) { + var ctxTap = { + originalEvent: e, + type: 'cxttap', + position: { + x: now[0], + y: now[1] + } + }; + + if (start) { + start.emit(ctxTap); + } else { + cy.emit(ctxTap); + } + } + + if (r.touchData.start) { + r.touchData.start._private.grabbed = false; + } + + r.touchData.cxt = false; + r.touchData.start = null; + r.redraw(); + return; + } // no more box selection if we don't have three fingers + + + if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) { + r.touchData.selecting = false; + var box = cy.collection(r.getAllInBox(select[0], select[1], select[2], select[3])); + select[0] = undefined; + select[1] = undefined; + select[2] = undefined; + select[3] = undefined; + select[4] = 0; + r.redrawHint('select', true); + cy.emit({ + type: 'boxend', + originalEvent: e, + position: { + x: now[0], + y: now[1] + } + }); + + var eleWouldBeSelected = function eleWouldBeSelected(ele) { + return ele.selectable() && !ele.selected(); + }; + + box.emit('box').stdFilter(eleWouldBeSelected).select().emit('boxselect'); + + if (box.nonempty()) { + r.redrawHint('eles', true); + } + + r.redraw(); + } + + if (start != null) { + start.unactivate(); + } + + if (e.touches[2]) { + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + } else if (e.touches[1]) ; else if (e.touches[0]) ; else if (!e.touches[0]) { + r.data.bgActivePosistion = undefined; + r.redrawHint('select', true); + var draggedEles = r.dragData.touchDragEles; + + if (start != null) { + var startWasGrabbed = start._private.grabbed; + freeDraggedElements(draggedEles); + r.redrawHint('drag', true); + r.redrawHint('eles', true); + + if (startWasGrabbed) { + start.emit('freeon'); + draggedEles.emit('free'); + + if (r.dragData.didDrag) { + start.emit('dragfreeon'); + draggedEles.emit('dragfree'); + } + } + + triggerEvents(start, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, { + x: now[0], + y: now[1] + }); + start.unactivate(); + r.touchData.start = null; + } else { + var near = r.findNearestElement(now[0], now[1], true, true); + triggerEvents(near, ['touchend', 'tapend', 'vmouseup', 'tapdragout'], e, { + x: now[0], + y: now[1] + }); + } + + var dx = r.touchData.startPosition[0] - now[0]; + var dx2 = dx * dx; + var dy = r.touchData.startPosition[1] - now[1]; + var dy2 = dy * dy; + var dist2 = dx2 + dy2; + var rdist2 = dist2 * zoom * zoom; // Tap event, roughly same as mouse click event for touch + + if (!r.touchData.singleTouchMoved) { + if (!start) { + cy.$(':selected').unselect(['tapunselect']); + } + + triggerEvents(start, ['tap', 'vclick'], e, { + x: now[0], + y: now[1] + }); + didDoubleTouch = false; + + if (e.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) { + touchTimeout && clearTimeout(touchTimeout); + didDoubleTouch = true; + prevTouchTimeStamp = null; + triggerEvents(start, ['dbltap', 'vdblclick'], e, { + x: now[0], + y: now[1] + }); + } else { + touchTimeout = setTimeout(function () { + if (didDoubleTouch) return; + triggerEvents(start, ['onetap', 'voneclick'], e, { + x: now[0], + y: now[1] + }); + }, cy.multiClickDebounceTime()); + prevTouchTimeStamp = e.timeStamp; + } + } // Prepare to select the currently touched node, only if it hasn't been dragged past a certain distance + + + if (start != null && !r.dragData.didDrag // didn't drag nodes around + && start._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching // pinch to zoom should not affect selection + ) { + if (cy.selectionType() === 'single') { + cy.$(isSelected).unmerge(start).unselect(['tapunselect']); + start.select(['tapselect']); + } else { + if (start.selected()) { + start.unselect(['tapunselect']); + } else { + start.select(['tapselect']); + } + } + + r.redrawHint('eles', true); + } + + r.touchData.singleTouchMoved = true; + } + + for (var j = 0; j < now.length; j++) { + earlier[j] = now[j]; + } + + r.dragData.didDrag = false; // reset for next touchstart + + if (e.touches.length === 0) { + r.touchData.dragDelta = []; + r.touchData.startPosition = [null, null, null, null, null, null]; + r.touchData.startGPosition = null; + r.touchData.didSelect = false; + } + + if (e.touches.length < 2) { + if (e.touches.length === 1) { + // the old start global pos'n may not be the same finger that remains + r.touchData.startGPosition = [e.touches[0].clientX, e.touches[0].clientY]; + } + + r.pinching = false; + r.redrawHint('eles', true); + r.redraw(); + } //r.redraw(); + + }, false); // fallback compatibility layer for ms pointer events + + if (typeof TouchEvent === 'undefined') { + var pointers = []; + + var makeTouch = function makeTouch(e) { + return { + clientX: e.clientX, + clientY: e.clientY, + force: 1, + identifier: e.pointerId, + pageX: e.pageX, + pageY: e.pageY, + radiusX: e.width / 2, + radiusY: e.height / 2, + screenX: e.screenX, + screenY: e.screenY, + target: e.target + }; + }; + + var makePointer = function makePointer(e) { + return { + event: e, + touch: makeTouch(e) + }; + }; + + var addPointer = function addPointer(e) { + pointers.push(makePointer(e)); + }; + + var removePointer = function removePointer(e) { + for (var i = 0; i < pointers.length; i++) { + var p = pointers[i]; + + if (p.event.pointerId === e.pointerId) { + pointers.splice(i, 1); + return; + } + } + }; + + var updatePointer = function updatePointer(e) { + var p = pointers.filter(function (p) { + return p.event.pointerId === e.pointerId; + })[0]; + p.event = e; + p.touch = makeTouch(e); + }; + + var addTouchesToEvent = function addTouchesToEvent(e) { + e.touches = pointers.map(function (p) { + return p.touch; + }); + }; + + var pointerIsMouse = function pointerIsMouse(e) { + return e.pointerType === 'mouse' || e.pointerType === 4; + }; + + r.registerBinding(r.container, 'pointerdown', function (e) { + if (pointerIsMouse(e)) { + return; + } // mouse already handled + + + e.preventDefault(); + addPointer(e); + addTouchesToEvent(e); + touchstartHandler(e); + }); + r.registerBinding(r.container, 'pointerup', function (e) { + if (pointerIsMouse(e)) { + return; + } // mouse already handled + + + removePointer(e); + addTouchesToEvent(e); + touchendHandler(e); + }); + r.registerBinding(r.container, 'pointercancel', function (e) { + if (pointerIsMouse(e)) { + return; + } // mouse already handled + + + removePointer(e); + addTouchesToEvent(e); + touchcancelHandler(e); + }); + r.registerBinding(r.container, 'pointermove', function (e) { + if (pointerIsMouse(e)) { + return; + } // mouse already handled + + + e.preventDefault(); + updatePointer(e); + addTouchesToEvent(e); + touchmoveHandler(e); + }); + } + }; + + var BRp$2 = {}; + + BRp$2.generatePolygon = function (name, points) { + return this.nodeShapes[name] = { + renderer: this, + name: name, + points: points, + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl('polygon', context, centerX, centerY, width, height, this.points); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return polygonIntersectLine(x, y, this.points, nodeX, nodeY, width / 2, height / 2, padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + return pointInsidePolygon(x, y, this.points, centerX, centerY, width, height, [0, -1], padding); + } + }; + }; + + BRp$2.generateEllipse = function () { + return this.nodeShapes['ellipse'] = { + renderer: this, + name: 'ellipse', + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return intersectLineEllipse(x, y, nodeX, nodeY, width / 2 + padding, height / 2 + padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + return checkInEllipse(x, y, width, height, centerX, centerY, padding); + } + }; + }; + + BRp$2.generateRoundPolygon = function (name, points) { + // Pre-compute control points + // Since these points depend on the radius length (which in turns depend on the width/height of the node) we will only pre-compute + // the unit vectors. + // For simplicity the layout will be: + // [ p0, UnitVectorP0P1, p1, UniVectorP1P2, ..., pn, UnitVectorPnP0 ] + var allPoints = new Array(points.length * 2); + + for (var i = 0; i < points.length / 2; i++) { + var sourceIndex = i * 2; + var destIndex = void 0; + + if (i < points.length / 2 - 1) { + destIndex = (i + 1) * 2; + } else { + destIndex = 0; + } + + allPoints[i * 4] = points[sourceIndex]; + allPoints[i * 4 + 1] = points[sourceIndex + 1]; + var xDest = points[destIndex] - points[sourceIndex]; + var yDest = points[destIndex + 1] - points[sourceIndex + 1]; + var norm = Math.sqrt(xDest * xDest + yDest * yDest); + allPoints[i * 4 + 2] = xDest / norm; + allPoints[i * 4 + 3] = yDest / norm; + } + + return this.nodeShapes[name] = { + renderer: this, + name: name, + points: allPoints, + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl('round-polygon', context, centerX, centerY, width, height, this.points); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return roundPolygonIntersectLine(x, y, this.points, nodeX, nodeY, width, height); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + return pointInsideRoundPolygon(x, y, this.points, centerX, centerY, width, height); + } + }; + }; + + BRp$2.generateRoundRectangle = function () { + return this.nodeShapes['round-rectangle'] = this.nodeShapes['roundrectangle'] = { + renderer: this, + name: 'round-rectangle', + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + var cornerRadius = getRoundRectangleRadius(width, height); + var diam = cornerRadius * 2; // Check hBox + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) { + return true; + } // Check vBox + + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) { + return true; + } // Check top left quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY - height / 2 + cornerRadius, padding)) { + return true; + } // Check top right quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY - height / 2 + cornerRadius, padding)) { + return true; + } // Check bottom right quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } // Check bottom left quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } + + return false; + } + }; + }; + + BRp$2.generateCutRectangle = function () { + return this.nodeShapes['cut-rectangle'] = this.nodeShapes['cutrectangle'] = { + renderer: this, + name: 'cut-rectangle', + cornerLength: getCutRectangleCornerLength(), + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + generateCutTrianglePts: function generateCutTrianglePts(width, height, centerX, centerY) { + var cl = this.cornerLength; + var hh = height / 2; + var hw = width / 2; + var xBegin = centerX - hw; + var xEnd = centerX + hw; + var yBegin = centerY - hh; + var yEnd = centerY + hh; // points are in clockwise order, inner (imaginary) triangle pt on [4, 5] + + return { + topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl], + topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl], + bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl], + bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl] + }; + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + var cPts = this.generateCutTrianglePts(width + 2 * padding, height + 2 * padding, nodeX, nodeY); + var pts = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]); + return polygonIntersectLine(x, y, pts, nodeX, nodeY); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + // Check hBox + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * this.cornerLength, [0, -1], padding)) { + return true; + } // Check vBox + + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * this.cornerLength, height, [0, -1], padding)) { + return true; + } + + var cutTrianglePts = this.generateCutTrianglePts(width, height, centerX, centerY); + return pointInsidePolygonPoints(x, y, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x, y, cutTrianglePts.topRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x, y, cutTrianglePts.bottomLeft); + } + }; + }; + + BRp$2.generateBarrel = function () { + return this.nodeShapes['barrel'] = { + renderer: this, + name: 'barrel', + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + // use two fixed t values for the bezier curve approximation + var t0 = 0.15; + var t1 = 0.5; + var t2 = 0.85; + var bPts = this.generateBarrelBezierPts(width + 2 * padding, height + 2 * padding, nodeX, nodeY); + + var approximateBarrelCurvePts = function approximateBarrelCurvePts(pts) { + // approximate curve pts based on the two t values + var m0 = qbezierPtAt({ + x: pts[0], + y: pts[1] + }, { + x: pts[2], + y: pts[3] + }, { + x: pts[4], + y: pts[5] + }, t0); + var m1 = qbezierPtAt({ + x: pts[0], + y: pts[1] + }, { + x: pts[2], + y: pts[3] + }, { + x: pts[4], + y: pts[5] + }, t1); + var m2 = qbezierPtAt({ + x: pts[0], + y: pts[1] + }, { + x: pts[2], + y: pts[3] + }, { + x: pts[4], + y: pts[5] + }, t2); + return [pts[0], pts[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts[4], pts[5]]; + }; + + var pts = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft)); + return polygonIntersectLine(x, y, pts, nodeX, nodeY); + }, + generateBarrelBezierPts: function generateBarrelBezierPts(width, height, centerX, centerY) { + var hh = height / 2; + var hw = width / 2; + var xBegin = centerX - hw; + var xEnd = centerX + hw; + var yBegin = centerY - hh; + var yEnd = centerY + hh; + var curveConstants = getBarrelCurveConstants(width, height); + var hOffset = curveConstants.heightOffset; + var wOffset = curveConstants.widthOffset; + var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width; // points are in clockwise order, inner (imaginary) control pt on [4, 5] + + var pts = { + topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin], + topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset], + bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd], + bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset] + }; + pts.topLeft.isTop = true; + pts.topRight.isTop = true; + pts.bottomLeft.isBottom = true; + pts.bottomRight.isBottom = true; + return pts; + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + var curveConstants = getBarrelCurveConstants(width, height); + var hOffset = curveConstants.heightOffset; + var wOffset = curveConstants.widthOffset; // Check hBox + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - 2 * hOffset, [0, -1], padding)) { + return true; + } // Check vBox + + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - 2 * wOffset, height, [0, -1], padding)) { + return true; + } + + var barrelCurvePts = this.generateBarrelBezierPts(width, height, centerX, centerY); + + var getCurveT = function getCurveT(x, y, curvePts) { + var x0 = curvePts[4]; + var x1 = curvePts[2]; + var x2 = curvePts[0]; + var y0 = curvePts[5]; // var y1 = curvePts[ 3 ]; + + var y2 = curvePts[1]; + var xMin = Math.min(x0, x2); + var xMax = Math.max(x0, x2); + var yMin = Math.min(y0, y2); + var yMax = Math.max(y0, y2); + + if (xMin <= x && x <= xMax && yMin <= y && y <= yMax) { + var coeff = bezierPtsToQuadCoeff(x0, x1, x2); + var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x); + var validRoots = roots.filter(function (r) { + return 0 <= r && r <= 1; + }); + + if (validRoots.length > 0) { + return validRoots[0]; + } + } + + return null; + }; + + var curveRegions = Object.keys(barrelCurvePts); + + for (var i = 0; i < curveRegions.length; i++) { + var corner = curveRegions[i]; + var cornerPts = barrelCurvePts[corner]; + var t = getCurveT(x, y, cornerPts); + + if (t == null) { + continue; + } + + var y0 = cornerPts[5]; + var y1 = cornerPts[3]; + var y2 = cornerPts[1]; + var bezY = qbezierAt(y0, y1, y2, t); + + if (cornerPts.isTop && bezY <= y) { + return true; + } + + if (cornerPts.isBottom && y <= bezY) { + return true; + } + } + + return false; + } + }; + }; + + BRp$2.generateBottomRoundrectangle = function () { + return this.nodeShapes['bottom-round-rectangle'] = this.nodeShapes['bottomroundrectangle'] = { + renderer: this, + name: 'bottom-round-rectangle', + points: generateUnitNgonPointsFitToSquare(4, 0), + draw: function draw(context, centerX, centerY, width, height) { + this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width, height); + }, + intersectLine: function intersectLine(nodeX, nodeY, width, height, x, y, padding) { + var topStartX = nodeX - (width / 2 + padding); + var topStartY = nodeY - (height / 2 + padding); + var topEndY = topStartY; + var topEndX = nodeX + (width / 2 + padding); + var topIntersections = finiteLinesIntersect(x, y, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false); + + if (topIntersections.length > 0) { + return topIntersections; + } + + return roundRectangleIntersectLine(x, y, nodeX, nodeY, width, height, padding); + }, + checkPoint: function checkPoint(x, y, padding, width, height, centerX, centerY) { + var cornerRadius = getRoundRectangleRadius(width, height); + var diam = 2 * cornerRadius; // Check hBox + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width, height - diam, [0, -1], padding)) { + return true; + } // Check vBox + + + if (pointInsidePolygon(x, y, this.points, centerX, centerY, width - diam, height, [0, -1], padding)) { + return true; + } // check non-rounded top side + + + var outerWidth = width / 2 + 2 * padding; + var outerHeight = height / 2 + 2 * padding; + var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight]; + + if (pointInsidePolygonPoints(x, y, points)) { + return true; + } // Check bottom right quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX + width / 2 - cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } // Check bottom left quarter circle + + + if (checkInEllipse(x, y, diam, diam, centerX - width / 2 + cornerRadius, centerY + height / 2 - cornerRadius, padding)) { + return true; + } + + return false; + } + }; + }; + + BRp$2.registerNodeShapes = function () { + var nodeShapes = this.nodeShapes = {}; + var renderer = this; + this.generateEllipse(); + this.generatePolygon('triangle', generateUnitNgonPointsFitToSquare(3, 0)); + this.generateRoundPolygon('round-triangle', generateUnitNgonPointsFitToSquare(3, 0)); + this.generatePolygon('rectangle', generateUnitNgonPointsFitToSquare(4, 0)); + nodeShapes['square'] = nodeShapes['rectangle']; + this.generateRoundRectangle(); + this.generateCutRectangle(); + this.generateBarrel(); + this.generateBottomRoundrectangle(); + { + var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0]; + this.generatePolygon('diamond', diamondPoints); + this.generateRoundPolygon('round-diamond', diamondPoints); + } + this.generatePolygon('pentagon', generateUnitNgonPointsFitToSquare(5, 0)); + this.generateRoundPolygon('round-pentagon', generateUnitNgonPointsFitToSquare(5, 0)); + this.generatePolygon('hexagon', generateUnitNgonPointsFitToSquare(6, 0)); + this.generateRoundPolygon('round-hexagon', generateUnitNgonPointsFitToSquare(6, 0)); + this.generatePolygon('heptagon', generateUnitNgonPointsFitToSquare(7, 0)); + this.generateRoundPolygon('round-heptagon', generateUnitNgonPointsFitToSquare(7, 0)); + this.generatePolygon('octagon', generateUnitNgonPointsFitToSquare(8, 0)); + this.generateRoundPolygon('round-octagon', generateUnitNgonPointsFitToSquare(8, 0)); + var star5Points = new Array(20); + { + var outerPoints = generateUnitNgonPoints(5, 0); + var innerPoints = generateUnitNgonPoints(5, Math.PI / 5); // Outer radius is 1; inner radius of star is smaller + + var innerRadius = 0.5 * (3 - Math.sqrt(5)); + innerRadius *= 1.57; + + for (var i = 0; i < innerPoints.length / 2; i++) { + innerPoints[i * 2] *= innerRadius; + innerPoints[i * 2 + 1] *= innerRadius; + } + + for (var i = 0; i < 20 / 4; i++) { + star5Points[i * 4] = outerPoints[i * 2]; + star5Points[i * 4 + 1] = outerPoints[i * 2 + 1]; + star5Points[i * 4 + 2] = innerPoints[i * 2]; + star5Points[i * 4 + 3] = innerPoints[i * 2 + 1]; + } + } + star5Points = fitPolygonToSquare(star5Points); + this.generatePolygon('star', star5Points); + this.generatePolygon('vee', [-1, -1, 0, -0.333, 1, -1, 0, 1]); + this.generatePolygon('rhomboid', [-1, -1, 0.333, -1, 1, 1, -0.333, 1]); + this.generatePolygon('right-rhomboid', [-0.333, -1, 1, -1, 0.333, 1, -1, 1]); + this.nodeShapes['concavehexagon'] = this.generatePolygon('concave-hexagon', [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]); + { + var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1]; + this.generatePolygon('tag', tagPoints); + this.generateRoundPolygon('round-tag', tagPoints); + } + + nodeShapes.makePolygon = function (points) { + // use caching on user-specified polygons so they are as fast as native shapes + var key = points.join('$'); + var name = 'polygon-' + key; + var shape; + + if (shape = this[name]) { + // got cached shape + return shape; + } // create and cache new shape + + + return renderer.generatePolygon(name, points); + }; + }; + + var BRp$1 = {}; + + BRp$1.timeToRender = function () { + return this.redrawTotalTime / this.redrawCount; + }; + + BRp$1.redraw = function (options) { + options = options || staticEmptyObject(); + var r = this; + + if (r.averageRedrawTime === undefined) { + r.averageRedrawTime = 0; + } + + if (r.lastRedrawTime === undefined) { + r.lastRedrawTime = 0; + } + + if (r.lastDrawTime === undefined) { + r.lastDrawTime = 0; + } + + r.requestedFrame = true; + r.renderOptions = options; + }; + + BRp$1.beforeRender = function (fn, priority) { + // the renderer can't add tick callbacks when destroyed + if (this.destroyed) { + return; + } + + if (priority == null) { + error('Priority is not optional for beforeRender'); + } + + var cbs = this.beforeRenderCallbacks; + cbs.push({ + fn: fn, + priority: priority + }); // higher priority callbacks executed first + + cbs.sort(function (a, b) { + return b.priority - a.priority; + }); + }; + + var beforeRenderCallbacks = function beforeRenderCallbacks(r, willDraw, startTime) { + var cbs = r.beforeRenderCallbacks; + + for (var i = 0; i < cbs.length; i++) { + cbs[i].fn(willDraw, startTime); + } + }; + + BRp$1.startRenderLoop = function () { + var r = this; + var cy = r.cy; + + if (r.renderLoopStarted) { + return; + } else { + r.renderLoopStarted = true; + } + + var renderFn = function renderFn(requestTime) { + if (r.destroyed) { + return; + } + + if (cy.batching()) ; else if (r.requestedFrame && !r.skipFrame) { + beforeRenderCallbacks(r, true, requestTime); + var startTime = performanceNow(); + r.render(r.renderOptions); + var endTime = r.lastDrawTime = performanceNow(); + + if (r.averageRedrawTime === undefined) { + r.averageRedrawTime = endTime - startTime; + } + + if (r.redrawCount === undefined) { + r.redrawCount = 0; + } + + r.redrawCount++; + + if (r.redrawTotalTime === undefined) { + r.redrawTotalTime = 0; + } + + var duration = endTime - startTime; + r.redrawTotalTime += duration; + r.lastRedrawTime = duration; // use a weighted average with a bias from the previous average so we don't spike so easily + + r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2; + r.requestedFrame = false; + } else { + beforeRenderCallbacks(r, false, requestTime); + } + + r.skipFrame = false; + requestAnimationFrame(renderFn); + }; + + requestAnimationFrame(renderFn); + }; + + var BaseRenderer = function BaseRenderer(options) { + this.init(options); + }; + + var BR = BaseRenderer; + var BRp = BR.prototype; + BRp.clientFunctions = ['redrawHint', 'render', 'renderTo', 'matchCanvasSize', 'nodeShapeImpl', 'arrowShapeImpl']; + + BRp.init = function (options) { + var r = this; + r.options = options; + r.cy = options.cy; + var ctr = r.container = options.cy.container(); + var containerWindow = r.cy.window(); // prepend a stylesheet in the head such that + + if (containerWindow) { + var document = containerWindow.document; + var head = document.head; + var stylesheetId = '__________cytoscape_stylesheet'; + var className = '__________cytoscape_container'; + var stylesheetAlreadyExists = document.getElementById(stylesheetId) != null; + + if (ctr.className.indexOf(className) < 0) { + ctr.className = (ctr.className || '') + ' ' + className; + } + + if (!stylesheetAlreadyExists) { + var stylesheet = document.createElement('style'); + stylesheet.id = stylesheetId; + stylesheet.textContent = '.' + className + ' { position: relative; }'; + head.insertBefore(stylesheet, head.children[0]); // first so lowest priority + } + + var computedStyle = containerWindow.getComputedStyle(ctr); + var position = computedStyle.getPropertyValue('position'); + + if (position === 'static') { + warn('A Cytoscape container has style position:static and so can not use UI extensions properly'); + } + } + + r.selection = [undefined, undefined, undefined, undefined, 0]; // Coordinates for selection box, plus enabled flag + + r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95]; //--Pointer-related data + + r.hoverData = { + down: null, + last: null, + downTime: null, + triggerMode: null, + dragging: false, + initialPan: [null, null], + capture: false + }; + r.dragData = { + possibleDragElements: [] + }; + r.touchData = { + start: null, + capture: false, + // These 3 fields related to tap, taphold events + startPosition: [null, null, null, null, null, null], + singleTouchStartTime: null, + singleTouchMoved: true, + now: [null, null, null, null, null, null], + earlier: [null, null, null, null, null, null] + }; + r.redraws = 0; + r.showFps = options.showFps; + r.debug = options.debug; + r.hideEdgesOnViewport = options.hideEdgesOnViewport; + r.textureOnViewport = options.textureOnViewport; + r.wheelSensitivity = options.wheelSensitivity; + r.motionBlurEnabled = options.motionBlur; // on by default + + r.forcedPixelRatio = number$1(options.pixelRatio) ? options.pixelRatio : null; + r.motionBlur = options.motionBlur; // for initial kick off + + r.motionBlurOpacity = options.motionBlurOpacity; + r.motionBlurTransparency = 1 - r.motionBlurOpacity; + r.motionBlurPxRatio = 1; + r.mbPxRBlurry = 1; //0.8; + + r.minMbLowQualFrames = 4; + r.fullQualityMb = false; + r.clearedForMotionBlur = []; + r.desktopTapThreshold = options.desktopTapThreshold; + r.desktopTapThreshold2 = options.desktopTapThreshold * options.desktopTapThreshold; + r.touchTapThreshold = options.touchTapThreshold; + r.touchTapThreshold2 = options.touchTapThreshold * options.touchTapThreshold; + r.tapholdDuration = 500; + r.bindings = []; + r.beforeRenderCallbacks = []; + r.beforeRenderPriorities = { + // higher priority execs before lower one + animations: 400, + eleCalcs: 300, + eleTxrDeq: 200, + lyrTxrDeq: 150, + lyrTxrSkip: 100 + }; + r.registerNodeShapes(); + r.registerArrowShapes(); + r.registerCalculationListeners(); + }; + + BRp.notify = function (eventName, eles) { + var r = this; + var cy = r.cy; // the renderer can't be notified after it's destroyed + + if (this.destroyed) { + return; + } + + if (eventName === 'init') { + r.load(); + return; + } + + if (eventName === 'destroy') { + r.destroy(); + return; + } + + if (eventName === 'add' || eventName === 'remove' || eventName === 'move' && cy.hasCompoundNodes() || eventName === 'load' || eventName === 'zorder' || eventName === 'mount') { + r.invalidateCachedZSortedEles(); + } + + if (eventName === 'viewport') { + r.redrawHint('select', true); + } + + if (eventName === 'load' || eventName === 'resize' || eventName === 'mount') { + r.invalidateContainerClientCoordsCache(); + r.matchCanvasSize(r.container); + } + + r.redrawHint('eles', true); + r.redrawHint('drag', true); + this.startRenderLoop(); + this.redraw(); + }; + + BRp.destroy = function () { + var r = this; + r.destroyed = true; + r.cy.stopAnimationLoop(); + + for (var i = 0; i < r.bindings.length; i++) { + var binding = r.bindings[i]; + var b = binding; + var tgt = b.target; + (tgt.off || tgt.removeEventListener).apply(tgt, b.args); + } + + r.bindings = []; + r.beforeRenderCallbacks = []; + r.onUpdateEleCalcsFns = []; + + if (r.removeObserver) { + r.removeObserver.disconnect(); + } + + if (r.styleObserver) { + r.styleObserver.disconnect(); + } + + if (r.resizeObserver) { + r.resizeObserver.disconnect(); + } + + if (r.labelCalcDiv) { + try { + document.body.removeChild(r.labelCalcDiv); // eslint-disable-line no-undef + } catch (e) {// ie10 issue #1014 + } + } + }; + + BRp.isHeadless = function () { + return false; + }; + + [BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function (props) { + extend(BRp, props); + }); + + var fullFpsTime = 1000 / 60; // assume 60 frames per second + + var defs = { + setupDequeueing: function setupDequeueing(opts) { + return function setupDequeueingImpl() { + var self = this; + var r = this.renderer; + + if (self.dequeueingSetup) { + return; + } else { + self.dequeueingSetup = true; + } + + var queueRedraw = debounce_1(function () { + r.redrawHint('eles', true); + r.redrawHint('drag', true); + r.redraw(); + }, opts.deqRedrawThreshold); + + var dequeue = function dequeue(willDraw, frameStartTime) { + var startTime = performanceNow(); + var avgRenderTime = r.averageRedrawTime; + var renderTime = r.lastRedrawTime; + var deqd = []; + var extent = r.cy.extent(); + var pixelRatio = r.getPixelRatio(); // if we aren't in a tick that causes a draw, then the rendered style + // queue won't automatically be flushed before dequeueing starts + + if (!willDraw) { + r.flushRenderedStyleQueue(); + } + + while (true) { + // eslint-disable-line no-constant-condition + var now = performanceNow(); + var duration = now - startTime; + var frameDuration = now - frameStartTime; + + if (renderTime < fullFpsTime) { + // if we're rendering faster than the ideal fps, then do dequeueing + // during all of the remaining frame time + var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0); + + if (frameDuration >= opts.deqFastCost * timeAvailable) { + break; + } + } else { + if (willDraw) { + if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) { + break; + } + } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) { + break; + } + } + + var thisDeqd = opts.deq(self, pixelRatio, extent); + + if (thisDeqd.length > 0) { + for (var i = 0; i < thisDeqd.length; i++) { + deqd.push(thisDeqd[i]); + } + } else { + break; + } + } // callbacks on dequeue + + + if (deqd.length > 0) { + opts.onDeqd(self, deqd); + + if (!willDraw && opts.shouldRedraw(self, deqd, pixelRatio, extent)) { + queueRedraw(); + } + } + }; + + var priority = opts.priority || noop$1; + r.beforeRender(dequeue, priority(self)); + }; + } + }; + + // Uses keys so elements may share the same cache. + + var ElementTextureCacheLookup = /*#__PURE__*/function () { + function ElementTextureCacheLookup(getKey) { + var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : falsify; + + _classCallCheck(this, ElementTextureCacheLookup); + + this.idsByKey = new Map$2(); + this.keyForId = new Map$2(); + this.cachesByLvl = new Map$2(); + this.lvls = []; + this.getKey = getKey; + this.doesEleInvalidateKey = doesEleInvalidateKey; + } + + _createClass(ElementTextureCacheLookup, [{ + key: "getIdsFor", + value: function getIdsFor(key) { + if (key == null) { + error("Can not get id list for null key"); + } + + var idsByKey = this.idsByKey; + var ids = this.idsByKey.get(key); + + if (!ids) { + ids = new Set$1(); + idsByKey.set(key, ids); + } + + return ids; + } + }, { + key: "addIdForKey", + value: function addIdForKey(key, id) { + if (key != null) { + this.getIdsFor(key).add(id); + } + } + }, { + key: "deleteIdForKey", + value: function deleteIdForKey(key, id) { + if (key != null) { + this.getIdsFor(key)["delete"](id); + } + } + }, { + key: "getNumberOfIdsForKey", + value: function getNumberOfIdsForKey(key) { + if (key == null) { + return 0; + } else { + return this.getIdsFor(key).size; + } + } + }, { + key: "updateKeyMappingFor", + value: function updateKeyMappingFor(ele) { + var id = ele.id(); + var prevKey = this.keyForId.get(id); + var currKey = this.getKey(ele); + this.deleteIdForKey(prevKey, id); + this.addIdForKey(currKey, id); + this.keyForId.set(id, currKey); + } + }, { + key: "deleteKeyMappingFor", + value: function deleteKeyMappingFor(ele) { + var id = ele.id(); + var prevKey = this.keyForId.get(id); + this.deleteIdForKey(prevKey, id); + this.keyForId["delete"](id); + } + }, { + key: "keyHasChangedFor", + value: function keyHasChangedFor(ele) { + var id = ele.id(); + var prevKey = this.keyForId.get(id); + var newKey = this.getKey(ele); + return prevKey !== newKey; + } + }, { + key: "isInvalid", + value: function isInvalid(ele) { + return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele); + } + }, { + key: "getCachesAt", + value: function getCachesAt(lvl) { + var cachesByLvl = this.cachesByLvl, + lvls = this.lvls; + var caches = cachesByLvl.get(lvl); + + if (!caches) { + caches = new Map$2(); + cachesByLvl.set(lvl, caches); + lvls.push(lvl); + } + + return caches; + } + }, { + key: "getCache", + value: function getCache(key, lvl) { + return this.getCachesAt(lvl).get(key); + } + }, { + key: "get", + value: function get(ele, lvl) { + var key = this.getKey(ele); + var cache = this.getCache(key, lvl); // getting for an element may need to add to the id list b/c eles can share keys + + if (cache != null) { + this.updateKeyMappingFor(ele); + } + + return cache; + } + }, { + key: "getForCachedKey", + value: function getForCachedKey(ele, lvl) { + var key = this.keyForId.get(ele.id()); // n.b. use cached key, not newly computed key + + var cache = this.getCache(key, lvl); + return cache; + } + }, { + key: "hasCache", + value: function hasCache(key, lvl) { + return this.getCachesAt(lvl).has(key); + } + }, { + key: "has", + value: function has(ele, lvl) { + var key = this.getKey(ele); + return this.hasCache(key, lvl); + } + }, { + key: "setCache", + value: function setCache(key, lvl, cache) { + cache.key = key; + this.getCachesAt(lvl).set(key, cache); + } + }, { + key: "set", + value: function set(ele, lvl, cache) { + var key = this.getKey(ele); + this.setCache(key, lvl, cache); + this.updateKeyMappingFor(ele); + } + }, { + key: "deleteCache", + value: function deleteCache(key, lvl) { + this.getCachesAt(lvl)["delete"](key); + } + }, { + key: "delete", + value: function _delete(ele, lvl) { + var key = this.getKey(ele); + this.deleteCache(key, lvl); + } + }, { + key: "invalidateKey", + value: function invalidateKey(key) { + var _this = this; + + this.lvls.forEach(function (lvl) { + return _this.deleteCache(key, lvl); + }); + } // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key) + + }, { + key: "invalidate", + value: function invalidate(ele) { + var id = ele.id(); + var key = this.keyForId.get(id); // n.b. use stored key rather than current (potential key) + + this.deleteKeyMappingFor(ele); + var entireKeyInvalidated = this.doesEleInvalidateKey(ele); + + if (entireKeyInvalidated) { + // clear mapping for current key + this.invalidateKey(key); + } + + return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0; + } + }]); + + return ElementTextureCacheLookup; + }(); + + var minTxrH = 25; // the size of the texture cache for small height eles (special case) + + var txrStepH = 50; // the min size of the regular cache, and the size it increases with each step up + + var minLvl$1 = -4; // when scaling smaller than that we don't need to re-render + + var maxLvl$1 = 3; // when larger than this scale just render directly (caching is not helpful) + + var maxZoom$1 = 7.99; // beyond this zoom level, layered textures are not used + + var eleTxrSpacing = 8; // spacing between elements on textures to avoid blitting overlaps + + var defTxrWidth = 1024; // default/minimum texture width + + var maxTxrW = 1024; // the maximum width of a texture + + var maxTxrH = 1024; // the maximum height of a texture + + var minUtility = 0.2; // if usage of texture is less than this, it is retired + + var maxFullness = 0.8; // fullness of texture after which queue removal is checked + + var maxFullnessChecks = 10; // dequeued after this many checks + + var deqCost$1 = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame + + var deqAvgCost$1 = 0.1; // % of add'l rendering cost compared to average overall redraw time + + var deqNoDrawCost$1 = 0.9; // % of avg frame time that can be used for dequeueing when not drawing + + var deqFastCost$1 = 0.9; // % of frame time to be used when >60fps + + var deqRedrawThreshold$1 = 100; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile + + var maxDeqSize$1 = 1; // number of eles to dequeue and render at higher texture in each batch + + var getTxrReasons = { + dequeue: 'dequeue', + downscale: 'downscale', + highQuality: 'highQuality' + }; + var initDefaults = defaults$g({ + getKey: null, + doesEleInvalidateKey: falsify, + drawElement: null, + getBoundingBox: null, + getRotationPoint: null, + getRotationOffset: null, + isVisible: trueify, + allowEdgeTxrCaching: true, + allowParentTxrCaching: true + }); + + var ElementTextureCache = function ElementTextureCache(renderer, initOptions) { + var self = this; + self.renderer = renderer; + self.onDequeues = []; + var opts = initDefaults(initOptions); + extend(self, opts); + self.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey); + self.setupDequeueing(); + }; + + var ETCp = ElementTextureCache.prototype; + ETCp.reasons = getTxrReasons; // the list of textures in which new subtextures for elements can be placed + + ETCp.getTextureQueue = function (txrH) { + var self = this; + self.eleImgCaches = self.eleImgCaches || {}; + return self.eleImgCaches[txrH] = self.eleImgCaches[txrH] || []; + }; // the list of usused textures which can be recycled (in use in texture queue) + + + ETCp.getRetiredTextureQueue = function (txrH) { + var self = this; + var rtxtrQs = self.eleImgCaches.retired = self.eleImgCaches.retired || {}; + var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || []; + return rtxtrQ; + }; // queue of element draw requests at different scale levels + + + ETCp.getElementQueue = function () { + var self = this; + var q = self.eleCacheQueue = self.eleCacheQueue || new heap(function (a, b) { + return b.reqs - a.reqs; + }); + return q; + }; // queue of element draw requests at different scale levels (element id lookup) + + + ETCp.getElementKeyToQueue = function () { + var self = this; + var k2q = self.eleKeyToCacheQueue = self.eleKeyToCacheQueue || {}; + return k2q; + }; + + ETCp.getElement = function (ele, bb, pxRatio, lvl, reason) { + var self = this; + var r = this.renderer; + var zoom = r.cy.zoom(); + var lookup = this.lookup; + + if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) { + return null; + } + + if (!self.allowEdgeTxrCaching && ele.isEdge() || !self.allowParentTxrCaching && ele.isParent()) { + return null; + } + + if (lvl == null) { + lvl = Math.ceil(log2(zoom * pxRatio)); + } + + if (lvl < minLvl$1) { + lvl = minLvl$1; + } else if (zoom >= maxZoom$1 || lvl > maxLvl$1) { + return null; + } + + var scale = Math.pow(2, lvl); + var eleScaledH = bb.h * scale; + var eleScaledW = bb.w * scale; + var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale); + + if (!this.isVisible(ele, scaledLabelShown)) { + return null; + } + + var eleCache = lookup.get(ele, lvl); // if this get was on an unused/invalidated cache, then restore the texture usage metric + + if (eleCache && eleCache.invalidated) { + eleCache.invalidated = false; + eleCache.texture.invalidatedWidth -= eleCache.width; + } + + if (eleCache) { + return eleCache; + } + + var txrH; // which texture height this ele belongs to + + if (eleScaledH <= minTxrH) { + txrH = minTxrH; + } else if (eleScaledH <= txrStepH) { + txrH = txrStepH; + } else { + txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH; + } + + if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) { + return null; // caching large elements is not efficient + } + + var txrQ = self.getTextureQueue(txrH); // first try the second last one in case it has space at the end + + var txr = txrQ[txrQ.length - 2]; + + var addNewTxr = function addNewTxr() { + return self.recycleTexture(txrH, eleScaledW) || self.addTexture(txrH, eleScaledW); + }; // try the last one if there is no second last one + + + if (!txr) { + txr = txrQ[txrQ.length - 1]; + } // if the last one doesn't exist, we need a first one + + + if (!txr) { + txr = addNewTxr(); + } // if there's no room in the current texture, we need a new one + + + if (txr.width - txr.usedWidth < eleScaledW) { + txr = addNewTxr(); + } + + var scalableFrom = function scalableFrom(otherCache) { + return otherCache && otherCache.scaledLabelShown === scaledLabelShown; + }; + + var deqing = reason && reason === getTxrReasons.dequeue; + var highQualityReq = reason && reason === getTxrReasons.highQuality; + var downscaleReq = reason && reason === getTxrReasons.downscale; + var higherCache; // the nearest cache with a higher level + + for (var l = lvl + 1; l <= maxLvl$1; l++) { + var c = lookup.get(ele, l); + + if (c) { + higherCache = c; + break; + } + } + + var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null; + + var downscale = function downscale() { + txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH); + }; // reset ele area in texture + + + txr.context.setTransform(1, 0, 0, 1, 0, 0); + txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH); + + if (scalableFrom(oneUpCache)) { + // then we can relatively cheaply rescale the existing image w/o rerendering + downscale(); + } else if (scalableFrom(higherCache)) { + // then use the higher cache for now and queue the next level down + // to cheaply scale towards the smaller level + if (highQualityReq) { + for (var _l = higherCache.level; _l > lvl; _l--) { + oneUpCache = self.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale); + } + + downscale(); + } else { + self.queueElement(ele, higherCache.level - 1); + return higherCache; + } + } else { + var lowerCache; // the nearest cache with a lower level + + if (!deqing && !highQualityReq && !downscaleReq) { + for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) { + var _c = lookup.get(ele, _l2); + + if (_c) { + lowerCache = _c; + break; + } + } + } + + if (scalableFrom(lowerCache)) { + // then use the lower quality cache for now and queue the better one for later + self.queueElement(ele, lvl); + return lowerCache; + } + + txr.context.translate(txr.usedWidth, 0); + txr.context.scale(scale, scale); + this.drawElement(txr.context, ele, bb, scaledLabelShown, false); + txr.context.scale(1 / scale, 1 / scale); + txr.context.translate(-txr.usedWidth, 0); + } + + eleCache = { + x: txr.usedWidth, + texture: txr, + level: lvl, + scale: scale, + width: eleScaledW, + height: eleScaledH, + scaledLabelShown: scaledLabelShown + }; + txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing); + txr.eleCaches.push(eleCache); + lookup.set(ele, lvl, eleCache); + self.checkTextureFullness(txr); + return eleCache; + }; + + ETCp.invalidateElements = function (eles) { + for (var i = 0; i < eles.length; i++) { + this.invalidateElement(eles[i]); + } + }; + + ETCp.invalidateElement = function (ele) { + var self = this; + var lookup = self.lookup; + var caches = []; + var invalid = lookup.isInvalid(ele); + + if (!invalid) { + return; // override the invalidation request if the element key has not changed + } + + for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) { + var cache = lookup.getForCachedKey(ele, lvl); + + if (cache) { + caches.push(cache); + } + } + + var noOtherElesUseCache = lookup.invalidate(ele); + + if (noOtherElesUseCache) { + for (var i = 0; i < caches.length; i++) { + var _cache = caches[i]; + var txr = _cache.texture; // remove space from the texture it belongs to + + txr.invalidatedWidth += _cache.width; // mark the cache as invalidated + + _cache.invalidated = true; // retire the texture if its utility is low + + self.checkTextureUtility(txr); + } + } // remove from queue since the old req was for the old state + + + self.removeFromQueue(ele); + }; + + ETCp.checkTextureUtility = function (txr) { + // invalidate all entries in the cache if the cache size is small + if (txr.invalidatedWidth >= minUtility * txr.width) { + this.retireTexture(txr); + } + }; + + ETCp.checkTextureFullness = function (txr) { + // if texture has been mostly filled and passed over several times, remove + // it from the queue so we don't need to waste time looking at it to put new things + var self = this; + var txrQ = self.getTextureQueue(txr.height); + + if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) { + removeFromArray(txrQ, txr); + } else { + txr.fullnessChecks++; + } + }; + + ETCp.retireTexture = function (txr) { + var self = this; + var txrH = txr.height; + var txrQ = self.getTextureQueue(txrH); + var lookup = this.lookup; // retire the texture from the active / searchable queue: + + removeFromArray(txrQ, txr); + txr.retired = true; // remove the refs from the eles to the caches: + + var eleCaches = txr.eleCaches; + + for (var i = 0; i < eleCaches.length; i++) { + var eleCache = eleCaches[i]; + lookup.deleteCache(eleCache.key, eleCache.level); + } + + clearArray(eleCaches); // add the texture to a retired queue so it can be recycled in future: + + var rtxtrQ = self.getRetiredTextureQueue(txrH); + rtxtrQ.push(txr); + }; + + ETCp.addTexture = function (txrH, minW) { + var self = this; + var txrQ = self.getTextureQueue(txrH); + var txr = {}; + txrQ.push(txr); + txr.eleCaches = []; + txr.height = txrH; + txr.width = Math.max(defTxrWidth, minW); + txr.usedWidth = 0; + txr.invalidatedWidth = 0; + txr.fullnessChecks = 0; + txr.canvas = self.renderer.makeOffscreenCanvas(txr.width, txr.height); + txr.context = txr.canvas.getContext('2d'); + return txr; + }; + + ETCp.recycleTexture = function (txrH, minW) { + var self = this; + var txrQ = self.getTextureQueue(txrH); + var rtxtrQ = self.getRetiredTextureQueue(txrH); + + for (var i = 0; i < rtxtrQ.length; i++) { + var txr = rtxtrQ[i]; + + if (txr.width >= minW) { + txr.retired = false; + txr.usedWidth = 0; + txr.invalidatedWidth = 0; + txr.fullnessChecks = 0; + clearArray(txr.eleCaches); + txr.context.setTransform(1, 0, 0, 1, 0, 0); + txr.context.clearRect(0, 0, txr.width, txr.height); + removeFromArray(rtxtrQ, txr); + txrQ.push(txr); + return txr; + } + } + }; + + ETCp.queueElement = function (ele, lvl) { + var self = this; + var q = self.getElementQueue(); + var k2q = self.getElementKeyToQueue(); + var key = this.getKey(ele); + var existingReq = k2q[key]; + + if (existingReq) { + // use the max lvl b/c in between lvls are cheap to make + existingReq.level = Math.max(existingReq.level, lvl); + existingReq.eles.merge(ele); + existingReq.reqs++; + q.updateItem(existingReq); + } else { + var req = { + eles: ele.spawn().merge(ele), + level: lvl, + reqs: 1, + key: key + }; + q.push(req); + k2q[key] = req; + } + }; + + ETCp.dequeue = function (pxRatio + /*, extent*/ + ) { + var self = this; + var q = self.getElementQueue(); + var k2q = self.getElementKeyToQueue(); + var dequeued = []; + var lookup = self.lookup; + + for (var i = 0; i < maxDeqSize$1; i++) { + if (q.size() > 0) { + var req = q.pop(); + var key = req.key; + var ele = req.eles[0]; // all eles have the same key + + var cacheExists = lookup.hasCache(ele, req.level); // clear out the key to req lookup + + k2q[key] = null; // dequeueing isn't necessary with an existing cache + + if (cacheExists) { + continue; + } + + dequeued.push(req); + var bb = self.getBoundingBox(ele); + self.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue); + } else { + break; + } + } + + return dequeued; + }; + + ETCp.removeFromQueue = function (ele) { + var self = this; + var q = self.getElementQueue(); + var k2q = self.getElementKeyToQueue(); + var key = this.getKey(ele); + var req = k2q[key]; + + if (req != null) { + if (req.eles.length === 1) { + // remove if last ele in the req + // bring to front of queue + req.reqs = MAX_INT$1; + q.updateItem(req); + q.pop(); // remove from queue + + k2q[key] = null; // remove from lookup map + } else { + // otherwise just remove ele from req + req.eles.unmerge(ele); + } + } + }; + + ETCp.onDequeue = function (fn) { + this.onDequeues.push(fn); + }; + + ETCp.offDequeue = function (fn) { + removeFromArray(this.onDequeues, fn); + }; + + ETCp.setupDequeueing = defs.setupDequeueing({ + deqRedrawThreshold: deqRedrawThreshold$1, + deqCost: deqCost$1, + deqAvgCost: deqAvgCost$1, + deqNoDrawCost: deqNoDrawCost$1, + deqFastCost: deqFastCost$1, + deq: function deq(self, pxRatio, extent) { + return self.dequeue(pxRatio, extent); + }, + onDeqd: function onDeqd(self, deqd) { + for (var i = 0; i < self.onDequeues.length; i++) { + var fn = self.onDequeues[i]; + fn(deqd); + } + }, + shouldRedraw: function shouldRedraw(self, deqd, pxRatio, extent) { + for (var i = 0; i < deqd.length; i++) { + var eles = deqd[i].eles; + + for (var j = 0; j < eles.length; j++) { + var bb = eles[j].boundingBox(); + + if (boundingBoxesIntersect(bb, extent)) { + return true; + } + } + } + + return false; + }, + priority: function priority(self) { + return self.renderer.beforeRenderPriorities.eleTxrDeq; + } + }); + + var defNumLayers = 1; // default number of layers to use + + var minLvl = -4; // when scaling smaller than that we don't need to re-render + + var maxLvl = 2; // when larger than this scale just render directly (caching is not helpful) + + var maxZoom = 3.99; // beyond this zoom level, layered textures are not used + + var deqRedrawThreshold = 50; // time to batch redraws together from dequeueing to allow more dequeueing calcs to happen in the meanwhile + + var refineEleDebounceTime = 50; // time to debounce sharper ele texture updates + + var deqCost = 0.15; // % of add'l rendering cost allowed for dequeuing ele caches each frame + + var deqAvgCost = 0.1; // % of add'l rendering cost compared to average overall redraw time + + var deqNoDrawCost = 0.9; // % of avg frame time that can be used for dequeueing when not drawing + + var deqFastCost = 0.9; // % of frame time to be used when >60fps + + var maxDeqSize = 1; // number of eles to dequeue and render at higher texture in each batch + + var invalidThreshold = 250; // time threshold for disabling b/c of invalidations + + var maxLayerArea = 4000 * 4000; // layers can't be bigger than this + + var useHighQualityEleTxrReqs = true; // whether to use high quality ele txr requests (generally faster and cheaper in the longterm) + // var log = function(){ console.log.apply( console, arguments ); }; + + var LayeredTextureCache = function LayeredTextureCache(renderer) { + var self = this; + var r = self.renderer = renderer; + var cy = r.cy; + self.layersByLevel = {}; // e.g. 2 => [ layer1, layer2, ..., layerN ] + + self.firstGet = true; + self.lastInvalidationTime = performanceNow() - 2 * invalidThreshold; + self.skipping = false; + self.eleTxrDeqs = cy.collection(); + self.scheduleElementRefinement = debounce_1(function () { + self.refineElementTextures(self.eleTxrDeqs); + self.eleTxrDeqs.unmerge(self.eleTxrDeqs); + }, refineEleDebounceTime); + r.beforeRender(function (willDraw, now) { + if (now - self.lastInvalidationTime <= invalidThreshold) { + self.skipping = true; + } else { + self.skipping = false; + } + }, r.beforeRenderPriorities.lyrTxrSkip); + + var qSort = function qSort(a, b) { + return b.reqs - a.reqs; + }; + + self.layersQueue = new heap(qSort); + self.setupDequeueing(); + }; + + var LTCp = LayeredTextureCache.prototype; + var layerIdPool = 0; + var MAX_INT = Math.pow(2, 53) - 1; + + LTCp.makeLayer = function (bb, lvl) { + var scale = Math.pow(2, lvl); + var w = Math.ceil(bb.w * scale); + var h = Math.ceil(bb.h * scale); + var canvas = this.renderer.makeOffscreenCanvas(w, h); + var layer = { + id: layerIdPool = ++layerIdPool % MAX_INT, + bb: bb, + level: lvl, + width: w, + height: h, + canvas: canvas, + context: canvas.getContext('2d'), + eles: [], + elesQueue: [], + reqs: 0 + }; // log('make layer %s with w %s and h %s and lvl %s', layer.id, layer.width, layer.height, layer.level); + + var cxt = layer.context; + var dx = -layer.bb.x1; + var dy = -layer.bb.y1; // do the transform on creation to save cycles (it's the same for all eles) + + cxt.scale(scale, scale); + cxt.translate(dx, dy); + return layer; + }; + + LTCp.getLayers = function (eles, pxRatio, lvl) { + var self = this; + var r = self.renderer; + var cy = r.cy; + var zoom = cy.zoom(); + var firstGet = self.firstGet; + self.firstGet = false; // log('--\nget layers with %s eles', eles.length); + //log eles.map(function(ele){ return ele.id() }) ); + + if (lvl == null) { + lvl = Math.ceil(log2(zoom * pxRatio)); + + if (lvl < minLvl) { + lvl = minLvl; + } else if (zoom >= maxZoom || lvl > maxLvl) { + return null; + } + } + + self.validateLayersElesOrdering(lvl, eles); + var layersByLvl = self.layersByLevel; + var scale = Math.pow(2, lvl); + var layers = layersByLvl[lvl] = layersByLvl[lvl] || []; + var bb; + var lvlComplete = self.levelIsComplete(lvl, eles); + var tmpLayers; + + var checkTempLevels = function checkTempLevels() { + var canUseAsTmpLvl = function canUseAsTmpLvl(l) { + self.validateLayersElesOrdering(l, eles); + + if (self.levelIsComplete(l, eles)) { + tmpLayers = layersByLvl[l]; + return true; + } + }; + + var checkLvls = function checkLvls(dir) { + if (tmpLayers) { + return; + } + + for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) { + if (canUseAsTmpLvl(l)) { + break; + } + } + }; + + checkLvls(+1); + checkLvls(-1); // remove the invalid layers; they will be replaced as needed later in this function + + for (var i = layers.length - 1; i >= 0; i--) { + var layer = layers[i]; + + if (layer.invalid) { + removeFromArray(layers, layer); + } + } + }; + + if (!lvlComplete) { + // if the current level is incomplete, then use the closest, best quality layerset temporarily + // and later queue the current layerset so we can get the proper quality level soon + checkTempLevels(); + } else { + // log('level complete, using existing layers\n--'); + return layers; + } + + var getBb = function getBb() { + if (!bb) { + bb = makeBoundingBox(); + + for (var i = 0; i < eles.length; i++) { + updateBoundingBox(bb, eles[i].boundingBox()); + } + } + + return bb; + }; + + var makeLayer = function makeLayer(opts) { + opts = opts || {}; + var after = opts.after; + getBb(); + var area = bb.w * scale * (bb.h * scale); + + if (area > maxLayerArea) { + return null; + } + + var layer = self.makeLayer(bb, lvl); + + if (after != null) { + var index = layers.indexOf(after) + 1; + layers.splice(index, 0, layer); + } else if (opts.insert === undefined || opts.insert) { + // no after specified => first layer made so put at start + layers.unshift(layer); + } // if( tmpLayers ){ + //self.queueLayer( layer ); + // } + + + return layer; + }; + + if (self.skipping && !firstGet) { + // log('skip layers'); + return null; + } // log('do layers'); + + + var layer = null; + var maxElesPerLayer = eles.length / defNumLayers; + var allowLazyQueueing = !firstGet; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + var rs = ele._private.rscratch; + var caches = rs.imgLayerCaches = rs.imgLayerCaches || {}; // log('look at ele', ele.id()); + + var existingLayer = caches[lvl]; + + if (existingLayer) { + // reuse layer for later eles + // log('reuse layer for', ele.id()); + layer = existingLayer; + continue; + } + + if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) { + // log('make new layer for ele %s', ele.id()); + layer = makeLayer({ + insert: true, + after: layer + }); // if now layer can be built then we can't use layers at this level + + if (!layer) { + return null; + } // log('new layer with id %s', layer.id); + + } + + if (tmpLayers || allowLazyQueueing) { + // log('queue ele %s in layer %s', ele.id(), layer.id); + self.queueLayer(layer, ele); + } else { + // log('draw ele %s in layer %s', ele.id(), layer.id); + self.drawEleInLayer(layer, ele, lvl, pxRatio); + } + + layer.eles.push(ele); + caches[lvl] = layer; + } // log('--'); + + + if (tmpLayers) { + // then we only queued the current layerset and can't draw it yet + return tmpLayers; + } + + if (allowLazyQueueing) { + // log('lazy queue level', lvl); + return null; + } + + return layers; + }; // a layer may want to use an ele cache of a higher level to avoid blurriness + // so the layer level might not equal the ele level + + + LTCp.getEleLevelForLayerLevel = function (lvl, pxRatio) { + return lvl; + }; + + LTCp.drawEleInLayer = function (layer, ele, lvl, pxRatio) { + var self = this; + var r = this.renderer; + var context = layer.context; + var bb = ele.boundingBox(); + + if (bb.w === 0 || bb.h === 0 || !ele.visible()) { + return; + } + + lvl = self.getEleLevelForLayerLevel(lvl, pxRatio); + + { + r.setImgSmoothing(context, false); + } + + { + r.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs); + } + + { + r.setImgSmoothing(context, true); + } + }; + + LTCp.levelIsComplete = function (lvl, eles) { + var self = this; + var layers = self.layersByLevel[lvl]; + + if (!layers || layers.length === 0) { + return false; + } + + var numElesInLayers = 0; + + for (var i = 0; i < layers.length; i++) { + var layer = layers[i]; // if there are any eles needed to be drawn yet, the level is not complete + + if (layer.reqs > 0) { + return false; + } // if the layer is invalid, the level is not complete + + + if (layer.invalid) { + return false; + } + + numElesInLayers += layer.eles.length; + } // we should have exactly the number of eles passed in to be complete + + + if (numElesInLayers !== eles.length) { + return false; + } + + return true; + }; + + LTCp.validateLayersElesOrdering = function (lvl, eles) { + var layers = this.layersByLevel[lvl]; + + if (!layers) { + return; + } // if in a layer the eles are not in the same order, then the layer is invalid + // (i.e. there is an ele in between the eles in the layer) + + + for (var i = 0; i < layers.length; i++) { + var layer = layers[i]; + var offset = -1; // find the offset + + for (var j = 0; j < eles.length; j++) { + if (layer.eles[0] === eles[j]) { + offset = j; + break; + } + } + + if (offset < 0) { + // then the layer has nonexistent elements and is invalid + this.invalidateLayer(layer); + continue; + } // the eles in the layer must be in the same continuous order, else the layer is invalid + + + var o = offset; + + for (var j = 0; j < layer.eles.length; j++) { + if (layer.eles[j] !== eles[o + j]) { + // log('invalidate based on ordering', layer.id); + this.invalidateLayer(layer); + break; + } + } + } + }; + + LTCp.updateElementsInLayers = function (eles, update) { + var self = this; + var isEles = element(eles[0]); // collect udpated elements (cascaded from the layers) and update each + // layer itself along the way + + for (var i = 0; i < eles.length; i++) { + var req = isEles ? null : eles[i]; + var ele = isEles ? eles[i] : eles[i].ele; + var rs = ele._private.rscratch; + var caches = rs.imgLayerCaches = rs.imgLayerCaches || {}; + + for (var l = minLvl; l <= maxLvl; l++) { + var layer = caches[l]; + + if (!layer) { + continue; + } // if update is a request from the ele cache, then it affects only + // the matching level + + + if (req && self.getEleLevelForLayerLevel(layer.level) !== req.level) { + continue; + } + + update(layer, ele, req); + } + } + }; + + LTCp.haveLayers = function () { + var self = this; + var haveLayers = false; + + for (var l = minLvl; l <= maxLvl; l++) { + var layers = self.layersByLevel[l]; + + if (layers && layers.length > 0) { + haveLayers = true; + break; + } + } + + return haveLayers; + }; + + LTCp.invalidateElements = function (eles) { + var self = this; + + if (eles.length === 0) { + return; + } + + self.lastInvalidationTime = performanceNow(); // log('update invalidate layer time from eles'); + + if (eles.length === 0 || !self.haveLayers()) { + return; + } + + self.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) { + self.invalidateLayer(layer); + }); + }; + + LTCp.invalidateLayer = function (layer) { + // log('update invalidate layer time'); + this.lastInvalidationTime = performanceNow(); + + if (layer.invalid) { + return; + } // save cycles + + + var lvl = layer.level; + var eles = layer.eles; + var layers = this.layersByLevel[lvl]; // log('invalidate layer', layer.id ); + + removeFromArray(layers, layer); // layer.eles = []; + + layer.elesQueue = []; + layer.invalid = true; + + if (layer.replacement) { + layer.replacement.invalid = true; + } + + for (var i = 0; i < eles.length; i++) { + var caches = eles[i]._private.rscratch.imgLayerCaches; + + if (caches) { + caches[lvl] = null; + } + } + }; + + LTCp.refineElementTextures = function (eles) { + var self = this; // log('refine', eles.length); + + self.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) { + var rLyr = layer.replacement; + + if (!rLyr) { + rLyr = layer.replacement = self.makeLayer(layer.bb, layer.level); + rLyr.replaces = layer; + rLyr.eles = layer.eles; // log('make replacement layer %s for %s with level %s', rLyr.id, layer.id, rLyr.level); + } + + if (!rLyr.reqs) { + for (var i = 0; i < rLyr.eles.length; i++) { + self.queueLayer(rLyr, rLyr.eles[i]); + } // log('queue replacement layer refinement', rLyr.id); + + } + }); + }; + + LTCp.enqueueElementRefinement = function (ele) { + + this.eleTxrDeqs.merge(ele); + this.scheduleElementRefinement(); + }; + + LTCp.queueLayer = function (layer, ele) { + var self = this; + var q = self.layersQueue; + var elesQ = layer.elesQueue; + var hasId = elesQ.hasId = elesQ.hasId || {}; // if a layer is going to be replaced, queuing is a waste of time + + if (layer.replacement) { + return; + } + + if (ele) { + if (hasId[ele.id()]) { + return; + } + + elesQ.push(ele); + hasId[ele.id()] = true; + } + + if (layer.reqs) { + layer.reqs++; + q.updateItem(layer); + } else { + layer.reqs = 1; + q.push(layer); + } + }; + + LTCp.dequeue = function (pxRatio) { + var self = this; + var q = self.layersQueue; + var deqd = []; + var eleDeqs = 0; + + while (eleDeqs < maxDeqSize) { + if (q.size() === 0) { + break; + } + + var layer = q.peek(); // if a layer has been or will be replaced, then don't waste time with it + + if (layer.replacement) { + // log('layer %s in queue skipped b/c it already has a replacement', layer.id); + q.pop(); + continue; + } // if this is a replacement layer that has been superceded, then forget it + + + if (layer.replaces && layer !== layer.replaces.replacement) { + // log('layer is no longer the most uptodate replacement; dequeued', layer.id) + q.pop(); + continue; + } + + if (layer.invalid) { + // log('replacement layer %s is invalid; dequeued', layer.id); + q.pop(); + continue; + } + + var ele = layer.elesQueue.shift(); + + if (ele) { + // log('dequeue layer %s', layer.id); + self.drawEleInLayer(layer, ele, layer.level, pxRatio); + eleDeqs++; + } + + if (deqd.length === 0) { + // we need only one entry in deqd to queue redrawing etc + deqd.push(true); + } // if the layer has all its eles done, then remove from the queue + + + if (layer.elesQueue.length === 0) { + q.pop(); + layer.reqs = 0; // log('dequeue of layer %s complete', layer.id); + // when a replacement layer is dequeued, it replaces the old layer in the level + + if (layer.replaces) { + self.applyLayerReplacement(layer); + } + + self.requestRedraw(); + } + } + + return deqd; + }; + + LTCp.applyLayerReplacement = function (layer) { + var self = this; + var layersInLevel = self.layersByLevel[layer.level]; + var replaced = layer.replaces; + var index = layersInLevel.indexOf(replaced); // if the replaced layer is not in the active list for the level, then replacing + // refs would be a mistake (i.e. overwriting the true active layer) + + if (index < 0 || replaced.invalid) { + // log('replacement layer would have no effect', layer.id); + return; + } + + layersInLevel[index] = layer; // replace level ref + // replace refs in eles + + for (var i = 0; i < layer.eles.length; i++) { + var _p = layer.eles[i]._private; + var cache = _p.imgLayerCaches = _p.imgLayerCaches || {}; + + if (cache) { + cache[layer.level] = layer; + } + } // log('apply replacement layer %s over %s', layer.id, replaced.id); + + + self.requestRedraw(); + }; + + LTCp.requestRedraw = debounce_1(function () { + var r = this.renderer; + r.redrawHint('eles', true); + r.redrawHint('drag', true); + r.redraw(); + }, 100); + LTCp.setupDequeueing = defs.setupDequeueing({ + deqRedrawThreshold: deqRedrawThreshold, + deqCost: deqCost, + deqAvgCost: deqAvgCost, + deqNoDrawCost: deqNoDrawCost, + deqFastCost: deqFastCost, + deq: function deq(self, pxRatio) { + return self.dequeue(pxRatio); + }, + onDeqd: noop$1, + shouldRedraw: trueify, + priority: function priority(self) { + return self.renderer.beforeRenderPriorities.lyrTxrDeq; + } + }); + + var CRp$a = {}; + var impl; + + function polygon(context, points) { + for (var i = 0; i < points.length; i++) { + var pt = points[i]; + context.lineTo(pt.x, pt.y); + } + } + + function triangleBackcurve(context, points, controlPoint) { + var firstPt; + + for (var i = 0; i < points.length; i++) { + var pt = points[i]; + + if (i === 0) { + firstPt = pt; + } + + context.lineTo(pt.x, pt.y); + } + + context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y); + } + + function triangleTee(context, trianglePoints, teePoints) { + if (context.beginPath) { + context.beginPath(); + } + + var triPts = trianglePoints; + + for (var i = 0; i < triPts.length; i++) { + var pt = triPts[i]; + context.lineTo(pt.x, pt.y); + } + + var teePts = teePoints; + var firstTeePt = teePoints[0]; + context.moveTo(firstTeePt.x, firstTeePt.y); + + for (var i = 1; i < teePts.length; i++) { + var pt = teePts[i]; + context.lineTo(pt.x, pt.y); + } + + if (context.closePath) { + context.closePath(); + } + } + + function circleTriangle(context, trianglePoints, rx, ry, r) { + if (context.beginPath) { + context.beginPath(); + } + + context.arc(rx, ry, r, 0, Math.PI * 2, false); + var triPts = trianglePoints; + var firstTrPt = triPts[0]; + context.moveTo(firstTrPt.x, firstTrPt.y); + + for (var i = 0; i < triPts.length; i++) { + var pt = triPts[i]; + context.lineTo(pt.x, pt.y); + } + + if (context.closePath) { + context.closePath(); + } + } + + function circle(context, rx, ry, r) { + context.arc(rx, ry, r, 0, Math.PI * 2, false); + } + + CRp$a.arrowShapeImpl = function (name) { + return (impl || (impl = { + 'polygon': polygon, + 'triangle-backcurve': triangleBackcurve, + 'triangle-tee': triangleTee, + 'circle-triangle': circleTriangle, + 'triangle-cross': triangleTee, + 'circle': circle + }))[name]; + }; + + var CRp$9 = {}; + + CRp$9.drawElement = function (context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) { + var r = this; + + if (ele.isNode()) { + r.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity); + } else { + r.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity); + } + }; + + CRp$9.drawElementOverlay = function (context, ele) { + var r = this; + + if (ele.isNode()) { + r.drawNodeOverlay(context, ele); + } else { + r.drawEdgeOverlay(context, ele); + } + }; + + CRp$9.drawElementUnderlay = function (context, ele) { + var r = this; + + if (ele.isNode()) { + r.drawNodeUnderlay(context, ele); + } else { + r.drawEdgeUnderlay(context, ele); + } + }; + + CRp$9.drawCachedElementPortion = function (context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity) { + var r = this; + var bb = eleTxrCache.getBoundingBox(ele); + + if (bb.w === 0 || bb.h === 0) { + return; + } // ignore zero size case + + + var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason); + + if (eleCache != null) { + var opacity = getOpacity(r, ele); + + if (opacity === 0) { + return; + } + + var theta = getRotation(r, ele); + var x1 = bb.x1, + y1 = bb.y1, + w = bb.w, + h = bb.h; + var x, y, sx, sy, smooth; + + if (theta !== 0) { + var rotPt = eleTxrCache.getRotationPoint(ele); + sx = rotPt.x; + sy = rotPt.y; + context.translate(sx, sy); + context.rotate(theta); + smooth = r.getImgSmoothing(context); + + if (!smooth) { + r.setImgSmoothing(context, true); + } + + var off = eleTxrCache.getRotationOffset(ele); + x = off.x; + y = off.y; + } else { + x = x1; + y = y1; + } + + var oldGlobalAlpha; + + if (opacity !== 1) { + oldGlobalAlpha = context.globalAlpha; + context.globalAlpha = oldGlobalAlpha * opacity; + } + + context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x, y, w, h); + + if (opacity !== 1) { + context.globalAlpha = oldGlobalAlpha; + } + + if (theta !== 0) { + context.rotate(-theta); + context.translate(-sx, -sy); + + if (!smooth) { + r.setImgSmoothing(context, false); + } + } + } else { + eleTxrCache.drawElement(context, ele); // direct draw fallback + } + }; + + var getZeroRotation = function getZeroRotation() { + return 0; + }; + + var getLabelRotation = function getLabelRotation(r, ele) { + return r.getTextAngle(ele, null); + }; + + var getSourceLabelRotation = function getSourceLabelRotation(r, ele) { + return r.getTextAngle(ele, 'source'); + }; + + var getTargetLabelRotation = function getTargetLabelRotation(r, ele) { + return r.getTextAngle(ele, 'target'); + }; + + var getOpacity = function getOpacity(r, ele) { + return ele.effectiveOpacity(); + }; + + var getTextOpacity = function getTextOpacity(e, ele) { + return ele.pstyle('text-opacity').pfValue * ele.effectiveOpacity(); + }; + + CRp$9.drawCachedElement = function (context, ele, pxRatio, extent, lvl, requestHighQuality) { + var r = this; + var _r$data = r.data, + eleTxrCache = _r$data.eleTxrCache, + lblTxrCache = _r$data.lblTxrCache, + slbTxrCache = _r$data.slbTxrCache, + tlbTxrCache = _r$data.tlbTxrCache; + var bb = ele.boundingBox(); + var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null; + + if (bb.w === 0 || bb.h === 0 || !ele.visible()) { + return; + } + + if (!extent || boundingBoxesIntersect(bb, extent)) { + var isEdge = ele.isEdge(); + + var badLine = ele.element()._private.rscratch.badLine; + + r.drawElementUnderlay(context, ele); + r.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity); + + if (!isEdge || !badLine) { + r.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity); + } + + if (isEdge && !badLine) { + r.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity); + r.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity); + } + + r.drawElementOverlay(context, ele); + } + }; + + CRp$9.drawElements = function (context, eles) { + var r = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + r.drawElement(context, ele); + } + }; + + CRp$9.drawCachedElements = function (context, eles, pxRatio, extent) { + var r = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + r.drawCachedElement(context, ele, pxRatio, extent); + } + }; + + CRp$9.drawCachedNodes = function (context, eles, pxRatio, extent) { + var r = this; + + for (var i = 0; i < eles.length; i++) { + var ele = eles[i]; + + if (!ele.isNode()) { + continue; + } + + r.drawCachedElement(context, ele, pxRatio, extent); + } + }; + + CRp$9.drawLayeredElements = function (context, eles, pxRatio, extent) { + var r = this; + var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio); + + if (layers) { + for (var i = 0; i < layers.length; i++) { + var layer = layers[i]; + var bb = layer.bb; + + if (bb.w === 0 || bb.h === 0) { + continue; + } + + context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h); + } + } else { + // fall back on plain caching if no layers + r.drawCachedElements(context, eles, pxRatio, extent); + } + }; + + /* global Path2D */ + var CRp$8 = {}; + + CRp$8.drawEdge = function (context, edge, shiftToOriginWithBb) { + var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true; + var r = this; + var rs = edge._private.rscratch; + + if (shouldDrawOpacity && !edge.visible()) { + return; + } // if bezier ctrl pts can not be calculated, then die + + + if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) { + // isNaN in case edge is impossible and browser bugs (e.g. safari) + return; + } + + var bb; + + if (shiftToOriginWithBb) { + bb = shiftToOriginWithBb; + context.translate(-bb.x1, -bb.y1); + } + + var opacity = shouldDrawOpacity ? edge.pstyle('opacity').value : 1; + var lineOpacity = shouldDrawOpacity ? edge.pstyle('line-opacity').value : 1; + var curveStyle = edge.pstyle('curve-style').value; + var lineStyle = edge.pstyle('line-style').value; + var edgeWidth = edge.pstyle('width').pfValue; + var lineCap = edge.pstyle('line-cap').value; + var effectiveLineOpacity = opacity * lineOpacity; // separate arrow opacity would require arrow-opacity property + + var effectiveArrowOpacity = opacity * lineOpacity; + + var drawLine = function drawLine() { + var strokeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveLineOpacity; + + if (curveStyle === 'straight-triangle') { + r.eleStrokeStyle(context, edge, strokeOpacity); + r.drawEdgeTrianglePath(edge, context, rs.allpts); + } else { + context.lineWidth = edgeWidth; + context.lineCap = lineCap; + r.eleStrokeStyle(context, edge, strokeOpacity); + r.drawEdgePath(edge, context, rs.allpts, lineStyle); + context.lineCap = 'butt'; // reset for other drawing functions + } + }; + + var drawOverlay = function drawOverlay() { + if (!shouldDrawOverlay) { + return; + } + + r.drawEdgeOverlay(context, edge); + }; + + var drawUnderlay = function drawUnderlay() { + if (!shouldDrawOverlay) { + return; + } + + r.drawEdgeUnderlay(context, edge); + }; + + var drawArrows = function drawArrows() { + var arrowOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : effectiveArrowOpacity; + r.drawArrowheads(context, edge, arrowOpacity); + }; + + var drawText = function drawText() { + r.drawElementText(context, edge, null, drawLabel); + }; + + context.lineJoin = 'round'; + var ghost = edge.pstyle('ghost').value === 'yes'; + + if (ghost) { + var gx = edge.pstyle('ghost-offset-x').pfValue; + var gy = edge.pstyle('ghost-offset-y').pfValue; + var ghostOpacity = edge.pstyle('ghost-opacity').value; + var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity; + context.translate(gx, gy); + drawLine(effectiveGhostOpacity); + drawArrows(effectiveGhostOpacity); + context.translate(-gx, -gy); + } + + drawUnderlay(); + drawLine(); + drawArrows(); + drawOverlay(); + drawText(); + + if (shiftToOriginWithBb) { + context.translate(bb.x1, bb.y1); + } + }; + + var drawEdgeOverlayUnderlay = function drawEdgeOverlayUnderlay(overlayOrUnderlay) { + if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) { + throw new Error('Invalid state'); + } + + return function (context, edge) { + if (!edge.visible()) { + return; + } + + var opacity = edge.pstyle("".concat(overlayOrUnderlay, "-opacity")).value; + + if (opacity === 0) { + return; + } + + var r = this; + var usePaths = r.usePaths(); + var rs = edge._private.rscratch; + var padding = edge.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue; + var width = 2 * padding; + var color = edge.pstyle("".concat(overlayOrUnderlay, "-color")).value; + context.lineWidth = width; + + if (rs.edgeType === 'self' && !usePaths) { + context.lineCap = 'butt'; + } else { + context.lineCap = 'round'; + } + + r.colorStrokeStyle(context, color[0], color[1], color[2], opacity); + r.drawEdgePath(edge, context, rs.allpts, 'solid'); + }; + }; + + CRp$8.drawEdgeOverlay = drawEdgeOverlayUnderlay('overlay'); + CRp$8.drawEdgeUnderlay = drawEdgeOverlayUnderlay('underlay'); + + CRp$8.drawEdgePath = function (edge, context, pts, type) { + var rs = edge._private.rscratch; + var canvasCxt = context; + var path; + var pathCacheHit = false; + var usePaths = this.usePaths(); + var lineDashPattern = edge.pstyle('line-dash-pattern').pfValue; + var lineDashOffset = edge.pstyle('line-dash-offset').pfValue; + + if (usePaths) { + var pathCacheKey = pts.join('$'); + var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey; + + if (keyMatches) { + path = context = rs.pathCache; + pathCacheHit = true; + } else { + path = context = new Path2D(); + rs.pathCacheKey = pathCacheKey; + rs.pathCache = path; + } + } + + if (canvasCxt.setLineDash) { + // for very outofdate browsers + switch (type) { + case 'dotted': + canvasCxt.setLineDash([1, 1]); + break; + + case 'dashed': + canvasCxt.setLineDash(lineDashPattern); + canvasCxt.lineDashOffset = lineDashOffset; + break; + + case 'solid': + canvasCxt.setLineDash([]); + break; + } + } + + if (!pathCacheHit && !rs.badLine) { + if (context.beginPath) { + context.beginPath(); + } + + context.moveTo(pts[0], pts[1]); + + switch (rs.edgeType) { + case 'bezier': + case 'self': + case 'compound': + case 'multibezier': + for (var i = 2; i + 3 < pts.length; i += 4) { + context.quadraticCurveTo(pts[i], pts[i + 1], pts[i + 2], pts[i + 3]); + } + + break; + + case 'straight': + case 'segments': + case 'haystack': + for (var _i = 2; _i + 1 < pts.length; _i += 2) { + context.lineTo(pts[_i], pts[_i + 1]); + } + + break; + } + } + + context = canvasCxt; + + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } // reset any line dashes + + + if (context.setLineDash) { + // for very outofdate browsers + context.setLineDash([]); + } + }; + + CRp$8.drawEdgeTrianglePath = function (edge, context, pts) { + // use line stroke style for triangle fill style + context.fillStyle = context.strokeStyle; + var edgeWidth = edge.pstyle('width').pfValue; + + for (var i = 0; i + 1 < pts.length; i += 2) { + var vector = [pts[i + 2] - pts[i], pts[i + 3] - pts[i + 1]]; + var length = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]); + var normal = [vector[1] / length, -vector[0] / length]; + var triangleHead = [normal[0] * edgeWidth / 2, normal[1] * edgeWidth / 2]; + context.beginPath(); + context.moveTo(pts[i] - triangleHead[0], pts[i + 1] - triangleHead[1]); + context.lineTo(pts[i] + triangleHead[0], pts[i + 1] + triangleHead[1]); + context.lineTo(pts[i + 2], pts[i + 3]); + context.closePath(); + context.fill(); + } + }; + + CRp$8.drawArrowheads = function (context, edge, opacity) { + var rs = edge._private.rscratch; + var isHaystack = rs.edgeType === 'haystack'; + + if (!isHaystack) { + this.drawArrowhead(context, edge, 'source', rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity); + } + + this.drawArrowhead(context, edge, 'mid-target', rs.midX, rs.midY, rs.midtgtArrowAngle, opacity); + this.drawArrowhead(context, edge, 'mid-source', rs.midX, rs.midY, rs.midsrcArrowAngle, opacity); + + if (!isHaystack) { + this.drawArrowhead(context, edge, 'target', rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity); + } + }; + + CRp$8.drawArrowhead = function (context, edge, prefix, x, y, angle, opacity) { + if (isNaN(x) || x == null || isNaN(y) || y == null || isNaN(angle) || angle == null) { + return; + } + + var self = this; + var arrowShape = edge.pstyle(prefix + '-arrow-shape').value; + + if (arrowShape === 'none') { + return; + } + + var arrowClearFill = edge.pstyle(prefix + '-arrow-fill').value === 'hollow' ? 'both' : 'filled'; + var arrowFill = edge.pstyle(prefix + '-arrow-fill').value; + var edgeWidth = edge.pstyle('width').pfValue; + var edgeOpacity = edge.pstyle('opacity').value; + + if (opacity === undefined) { + opacity = edgeOpacity; + } + + var gco = context.globalCompositeOperation; + + if (opacity !== 1 || arrowFill === 'hollow') { + // then extra clear is needed + context.globalCompositeOperation = 'destination-out'; + self.colorFillStyle(context, 255, 255, 255, 1); + self.colorStrokeStyle(context, 255, 255, 255, 1); + self.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, x, y, angle); + context.globalCompositeOperation = gco; + } // otherwise, the opaque arrow clears it for free :) + + + var color = edge.pstyle(prefix + '-arrow-color').value; + self.colorFillStyle(context, color[0], color[1], color[2], opacity); + self.colorStrokeStyle(context, color[0], color[1], color[2], opacity); + self.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, x, y, angle); + }; + + CRp$8.drawArrowShape = function (edge, context, fill, edgeWidth, shape, x, y, angle) { + var r = this; + var usePaths = this.usePaths() && shape !== 'triangle-cross'; + var pathCacheHit = false; + var path; + var canvasContext = context; + var translation = { + x: x, + y: y + }; + var scale = edge.pstyle('arrow-scale').value; + var size = this.getArrowWidth(edgeWidth, scale); + var shapeImpl = r.arrowShapes[shape]; + + if (usePaths) { + var cache = r.arrowPathCache = r.arrowPathCache || []; + var key = hashString(shape); + var cachedPath = cache[key]; + + if (cachedPath != null) { + path = context = cachedPath; + pathCacheHit = true; + } else { + path = context = new Path2D(); + cache[key] = path; + } + } + + if (!pathCacheHit) { + if (context.beginPath) { + context.beginPath(); + } + + if (usePaths) { + // store in the path cache with values easily manipulated later + shapeImpl.draw(context, 1, 0, { + x: 0, + y: 0 + }, 1); + } else { + shapeImpl.draw(context, size, angle, translation, edgeWidth); + } + + if (context.closePath) { + context.closePath(); + } + } + + context = canvasContext; + + if (usePaths) { + // set transform to arrow position/orientation + context.translate(x, y); + context.rotate(angle); + context.scale(size, size); + } + + if (fill === 'filled' || fill === 'both') { + if (usePaths) { + context.fill(path); + } else { + context.fill(); + } + } + + if (fill === 'hollow' || fill === 'both') { + context.lineWidth = (shapeImpl.matchEdgeWidth ? edgeWidth : 1) / (usePaths ? size : 1); + context.lineJoin = 'miter'; + + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } + } + + if (usePaths) { + // reset transform by applying inverse + context.scale(1 / size, 1 / size); + context.rotate(-angle); + context.translate(-x, -y); + } + }; + + var CRp$7 = {}; + + CRp$7.safeDrawImage = function (context, img, ix, iy, iw, ih, x, y, w, h) { + // detect problematic cases for old browsers with bad images (cheaper than try-catch) + if (iw <= 0 || ih <= 0 || w <= 0 || h <= 0) { + return; + } + + try { + context.drawImage(img, ix, iy, iw, ih, x, y, w, h); + } catch (e) { + warn(e); + } + }; + + CRp$7.drawInscribedImage = function (context, img, node, index, nodeOpacity) { + var r = this; + var pos = node.position(); + var nodeX = pos.x; + var nodeY = pos.y; + var styleObj = node.cy().style(); + var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj); + var fit = getIndexedStyle(node, 'background-fit', 'value', index); + var repeat = getIndexedStyle(node, 'background-repeat', 'value', index); + var nodeW = node.width(); + var nodeH = node.height(); + var paddingX2 = node.padding() * 2; + var nodeTW = nodeW + (getIndexedStyle(node, 'background-width-relative-to', 'value', index) === 'inner' ? 0 : paddingX2); + var nodeTH = nodeH + (getIndexedStyle(node, 'background-height-relative-to', 'value', index) === 'inner' ? 0 : paddingX2); + var rs = node._private.rscratch; + var clip = getIndexedStyle(node, 'background-clip', 'value', index); + var shouldClip = clip === 'node'; + var imgOpacity = getIndexedStyle(node, 'background-image-opacity', 'value', index) * nodeOpacity; + var smooth = getIndexedStyle(node, 'background-image-smoothing', 'value', index); + var imgW = img.width || img.cachedW; + var imgH = img.height || img.cachedH; // workaround for broken browsers like ie + + if (null == imgW || null == imgH) { + document.body.appendChild(img); // eslint-disable-line no-undef + + imgW = img.cachedW = img.width || img.offsetWidth; + imgH = img.cachedH = img.height || img.offsetHeight; + document.body.removeChild(img); // eslint-disable-line no-undef + } + + var w = imgW; + var h = imgH; + + if (getIndexedStyle(node, 'background-width', 'value', index) !== 'auto') { + if (getIndexedStyle(node, 'background-width', 'units', index) === '%') { + w = getIndexedStyle(node, 'background-width', 'pfValue', index) * nodeTW; + } else { + w = getIndexedStyle(node, 'background-width', 'pfValue', index); + } + } + + if (getIndexedStyle(node, 'background-height', 'value', index) !== 'auto') { + if (getIndexedStyle(node, 'background-height', 'units', index) === '%') { + h = getIndexedStyle(node, 'background-height', 'pfValue', index) * nodeTH; + } else { + h = getIndexedStyle(node, 'background-height', 'pfValue', index); + } + } + + if (w === 0 || h === 0) { + return; // no point in drawing empty image (and chrome is broken in this case) + } + + if (fit === 'contain') { + var scale = Math.min(nodeTW / w, nodeTH / h); + w *= scale; + h *= scale; + } else if (fit === 'cover') { + var scale = Math.max(nodeTW / w, nodeTH / h); + w *= scale; + h *= scale; + } + + var x = nodeX - nodeTW / 2; // left + + var posXUnits = getIndexedStyle(node, 'background-position-x', 'units', index); + var posXPfVal = getIndexedStyle(node, 'background-position-x', 'pfValue', index); + + if (posXUnits === '%') { + x += (nodeTW - w) * posXPfVal; + } else { + x += posXPfVal; + } + + var offXUnits = getIndexedStyle(node, 'background-offset-x', 'units', index); + var offXPfVal = getIndexedStyle(node, 'background-offset-x', 'pfValue', index); + + if (offXUnits === '%') { + x += (nodeTW - w) * offXPfVal; + } else { + x += offXPfVal; + } + + var y = nodeY - nodeTH / 2; // top + + var posYUnits = getIndexedStyle(node, 'background-position-y', 'units', index); + var posYPfVal = getIndexedStyle(node, 'background-position-y', 'pfValue', index); + + if (posYUnits === '%') { + y += (nodeTH - h) * posYPfVal; + } else { + y += posYPfVal; + } + + var offYUnits = getIndexedStyle(node, 'background-offset-y', 'units', index); + var offYPfVal = getIndexedStyle(node, 'background-offset-y', 'pfValue', index); + + if (offYUnits === '%') { + y += (nodeTH - h) * offYPfVal; + } else { + y += offYPfVal; + } + + if (rs.pathCache) { + x -= nodeX; + y -= nodeY; + nodeX = 0; + nodeY = 0; + } + + var gAlpha = context.globalAlpha; + context.globalAlpha = imgOpacity; + var smoothingEnabled = r.getImgSmoothing(context); + var isSmoothingSwitched = false; + + if (smooth === 'no' && smoothingEnabled) { + r.setImgSmoothing(context, false); + isSmoothingSwitched = true; + } else if (smooth === 'yes' && !smoothingEnabled) { + r.setImgSmoothing(context, true); + isSmoothingSwitched = true; + } + + if (repeat === 'no-repeat') { + if (shouldClip) { + context.save(); + + if (rs.pathCache) { + context.clip(rs.pathCache); + } else { + r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH); + context.clip(); + } + } + + r.safeDrawImage(context, img, 0, 0, imgW, imgH, x, y, w, h); + + if (shouldClip) { + context.restore(); + } + } else { + var pattern = context.createPattern(img, repeat); + context.fillStyle = pattern; + r.nodeShapes[r.getNodeShape(node)].draw(context, nodeX, nodeY, nodeTW, nodeTH); + context.translate(x, y); + context.fill(); + context.translate(-x, -y); + } + + context.globalAlpha = gAlpha; + + if (isSmoothingSwitched) { + r.setImgSmoothing(context, smoothingEnabled); + } + }; + + var CRp$6 = {}; + + CRp$6.eleTextBiggerThanMin = function (ele, scale) { + if (!scale) { + var zoom = ele.cy().zoom(); + var pxRatio = this.getPixelRatio(); + var lvl = Math.ceil(log2(zoom * pxRatio)); // the effective texture level + + scale = Math.pow(2, lvl); + } + + var computedSize = ele.pstyle('font-size').pfValue * scale; + var minSize = ele.pstyle('min-zoomed-font-size').pfValue; + + if (computedSize < minSize) { + return false; + } + + return true; + }; + + CRp$6.drawElementText = function (context, ele, shiftToOriginWithBb, force, prefix) { + var useEleOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true; + var r = this; + + if (force == null) { + if (useEleOpacity && !r.eleTextBiggerThanMin(ele)) { + return; + } + } else if (force === false) { + return; + } + + if (ele.isNode()) { + var label = ele.pstyle('label'); + + if (!label || !label.value) { + return; + } + + var justification = r.getLabelJustification(ele); + context.textAlign = justification; + context.textBaseline = 'bottom'; + } else { + var badLine = ele.element()._private.rscratch.badLine; + + var _label = ele.pstyle('label'); + + var srcLabel = ele.pstyle('source-label'); + var tgtLabel = ele.pstyle('target-label'); + + if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) { + return; + } + + context.textAlign = 'center'; + context.textBaseline = 'bottom'; + } + + var applyRotation = !shiftToOriginWithBb; + var bb; + + if (shiftToOriginWithBb) { + bb = shiftToOriginWithBb; + context.translate(-bb.x1, -bb.y1); + } + + if (prefix == null) { + r.drawText(context, ele, null, applyRotation, useEleOpacity); + + if (ele.isEdge()) { + r.drawText(context, ele, 'source', applyRotation, useEleOpacity); + r.drawText(context, ele, 'target', applyRotation, useEleOpacity); + } + } else { + r.drawText(context, ele, prefix, applyRotation, useEleOpacity); + } + + if (shiftToOriginWithBb) { + context.translate(bb.x1, bb.y1); + } + }; + + CRp$6.getFontCache = function (context) { + var cache; + this.fontCaches = this.fontCaches || []; + + for (var i = 0; i < this.fontCaches.length; i++) { + cache = this.fontCaches[i]; + + if (cache.context === context) { + return cache; + } + } + + cache = { + context: context + }; + this.fontCaches.push(cache); + return cache; + }; // set up canvas context with font + // returns transformed text string + + + CRp$6.setupTextStyle = function (context, ele) { + var useEleOpacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; + // Font style + var labelStyle = ele.pstyle('font-style').strValue; + var labelSize = ele.pstyle('font-size').pfValue + 'px'; + var labelFamily = ele.pstyle('font-family').strValue; + var labelWeight = ele.pstyle('font-weight').strValue; + var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle('text-opacity').value : 1; + var outlineOpacity = ele.pstyle('text-outline-opacity').value * opacity; + var color = ele.pstyle('color').value; + var outlineColor = ele.pstyle('text-outline-color').value; + context.font = labelStyle + ' ' + labelWeight + ' ' + labelSize + ' ' + labelFamily; + context.lineJoin = 'round'; // so text outlines aren't jagged + + this.colorFillStyle(context, color[0], color[1], color[2], opacity); + this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity); + }; // TODO ensure re-used + + + function roundRect(ctx, x, y, width, height) { + var radius = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 5; + ctx.beginPath(); + ctx.moveTo(x + radius, y); + ctx.lineTo(x + width - radius, y); + ctx.quadraticCurveTo(x + width, y, x + width, y + radius); + ctx.lineTo(x + width, y + height - radius); + ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height); + ctx.lineTo(x + radius, y + height); + ctx.quadraticCurveTo(x, y + height, x, y + height - radius); + ctx.lineTo(x, y + radius); + ctx.quadraticCurveTo(x, y, x + radius, y); + ctx.closePath(); + ctx.fill(); + } + + CRp$6.getTextAngle = function (ele, prefix) { + var theta; + var _p = ele._private; + var rscratch = _p.rscratch; + var pdash = prefix ? prefix + '-' : ''; + var rotation = ele.pstyle(pdash + 'text-rotation'); + var textAngle = getPrefixedProperty(rscratch, 'labelAngle', prefix); + + if (rotation.strValue === 'autorotate') { + theta = ele.isEdge() ? textAngle : 0; + } else if (rotation.strValue === 'none') { + theta = 0; + } else { + theta = rotation.pfValue; + } + + return theta; + }; + + CRp$6.drawText = function (context, ele, prefix) { + var applyRotation = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var useEleOpacity = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var _p = ele._private; + var rscratch = _p.rscratch; + var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1; + + if (useEleOpacity && (parentOpacity === 0 || ele.pstyle('text-opacity').value === 0)) { + return; + } // use 'main' as an alias for the main label (i.e. null prefix) + + + if (prefix === 'main') { + prefix = null; + } + + var textX = getPrefixedProperty(rscratch, 'labelX', prefix); + var textY = getPrefixedProperty(rscratch, 'labelY', prefix); + var orgTextX, orgTextY; // used for rotation + + var text = this.getLabelText(ele, prefix); + + if (text != null && text !== '' && !isNaN(textX) && !isNaN(textY)) { + this.setupTextStyle(context, ele, useEleOpacity); + var pdash = prefix ? prefix + '-' : ''; + var textW = getPrefixedProperty(rscratch, 'labelWidth', prefix); + var textH = getPrefixedProperty(rscratch, 'labelHeight', prefix); + var marginX = ele.pstyle(pdash + 'text-margin-x').pfValue; + var marginY = ele.pstyle(pdash + 'text-margin-y').pfValue; + var isEdge = ele.isEdge(); + var halign = ele.pstyle('text-halign').value; + var valign = ele.pstyle('text-valign').value; + + if (isEdge) { + halign = 'center'; + valign = 'center'; + } + + textX += marginX; + textY += marginY; + var theta; + + if (!applyRotation) { + theta = 0; + } else { + theta = this.getTextAngle(ele, prefix); + } + + if (theta !== 0) { + orgTextX = textX; + orgTextY = textY; + context.translate(orgTextX, orgTextY); + context.rotate(theta); + textX = 0; + textY = 0; + } + + switch (valign) { + case 'top': + break; + + case 'center': + textY += textH / 2; + break; + + case 'bottom': + textY += textH; + break; + } + + var backgroundOpacity = ele.pstyle('text-background-opacity').value; + var borderOpacity = ele.pstyle('text-border-opacity').value; + var textBorderWidth = ele.pstyle('text-border-width').pfValue; + var backgroundPadding = ele.pstyle('text-background-padding').pfValue; + + if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) { + var bgX = textX - backgroundPadding; + + switch (halign) { + case 'left': + bgX -= textW; + break; + + case 'center': + bgX -= textW / 2; + break; + } + + var bgY = textY - textH - backgroundPadding; + var bgW = textW + 2 * backgroundPadding; + var bgH = textH + 2 * backgroundPadding; + + if (backgroundOpacity > 0) { + var textFill = context.fillStyle; + var textBackgroundColor = ele.pstyle('text-background-color').value; + context.fillStyle = 'rgba(' + textBackgroundColor[0] + ',' + textBackgroundColor[1] + ',' + textBackgroundColor[2] + ',' + backgroundOpacity * parentOpacity + ')'; + var styleShape = ele.pstyle('text-background-shape').strValue; + + if (styleShape.indexOf('round') === 0) { + roundRect(context, bgX, bgY, bgW, bgH, 2); + } else { + context.fillRect(bgX, bgY, bgW, bgH); + } + + context.fillStyle = textFill; + } + + if (textBorderWidth > 0 && borderOpacity > 0) { + var textStroke = context.strokeStyle; + var textLineWidth = context.lineWidth; + var textBorderColor = ele.pstyle('text-border-color').value; + var textBorderStyle = ele.pstyle('text-border-style').value; + context.strokeStyle = 'rgba(' + textBorderColor[0] + ',' + textBorderColor[1] + ',' + textBorderColor[2] + ',' + borderOpacity * parentOpacity + ')'; + context.lineWidth = textBorderWidth; + + if (context.setLineDash) { + // for very outofdate browsers + switch (textBorderStyle) { + case 'dotted': + context.setLineDash([1, 1]); + break; + + case 'dashed': + context.setLineDash([4, 2]); + break; + + case 'double': + context.lineWidth = textBorderWidth / 4; // 50% reserved for white between the two borders + + context.setLineDash([]); + break; + + case 'solid': + context.setLineDash([]); + break; + } + } + + context.strokeRect(bgX, bgY, bgW, bgH); + + if (textBorderStyle === 'double') { + var whiteWidth = textBorderWidth / 2; + context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2); + } + + if (context.setLineDash) { + // for very outofdate browsers + context.setLineDash([]); + } + + context.lineWidth = textLineWidth; + context.strokeStyle = textStroke; + } + } + + var lineWidth = 2 * ele.pstyle('text-outline-width').pfValue; // *2 b/c the stroke is drawn centred on the middle + + if (lineWidth > 0) { + context.lineWidth = lineWidth; + } + + if (ele.pstyle('text-wrap').value === 'wrap') { + var lines = getPrefixedProperty(rscratch, 'labelWrapCachedLines', prefix); + var lineHeight = getPrefixedProperty(rscratch, 'labelLineHeight', prefix); + var halfTextW = textW / 2; + var justification = this.getLabelJustification(ele); + + if (justification === 'auto') ; else if (halign === 'left') { + // auto justification : right + if (justification === 'left') { + textX += -textW; + } else if (justification === 'center') { + textX += -halfTextW; + } // else same as auto + + } else if (halign === 'center') { + // auto justfication : center + if (justification === 'left') { + textX += -halfTextW; + } else if (justification === 'right') { + textX += halfTextW; + } // else same as auto + + } else if (halign === 'right') { + // auto justification : left + if (justification === 'center') { + textX += halfTextW; + } else if (justification === 'right') { + textX += textW; + } // else same as auto + + } + + switch (valign) { + case 'top': + textY -= (lines.length - 1) * lineHeight; + break; + + case 'center': + case 'bottom': + textY -= (lines.length - 1) * lineHeight; + break; + } + + for (var l = 0; l < lines.length; l++) { + if (lineWidth > 0) { + context.strokeText(lines[l], textX, textY); + } + + context.fillText(lines[l], textX, textY); + textY += lineHeight; + } + } else { + if (lineWidth > 0) { + context.strokeText(text, textX, textY); + } + + context.fillText(text, textX, textY); + } + + if (theta !== 0) { + context.rotate(-theta); + context.translate(-orgTextX, -orgTextY); + } + } + }; + + /* global Path2D */ + var CRp$5 = {}; + + CRp$5.drawNode = function (context, node, shiftToOriginWithBb) { + var drawLabel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true; + var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true; + var r = this; + var nodeWidth, nodeHeight; + var _p = node._private; + var rs = _p.rscratch; + var pos = node.position(); + + if (!number$1(pos.x) || !number$1(pos.y)) { + return; // can't draw node with undefined position + } + + if (shouldDrawOpacity && !node.visible()) { + return; + } + + var eleOpacity = shouldDrawOpacity ? node.effectiveOpacity() : 1; + var usePaths = r.usePaths(); + var path; + var pathCacheHit = false; + var padding = node.padding(); + nodeWidth = node.width() + 2 * padding; + nodeHeight = node.height() + 2 * padding; // + // setup shift + + var bb; + + if (shiftToOriginWithBb) { + bb = shiftToOriginWithBb; + context.translate(-bb.x1, -bb.y1); + } // + // load bg image + + + var bgImgProp = node.pstyle('background-image'); + var urls = bgImgProp.value; + var urlDefined = new Array(urls.length); + var image = new Array(urls.length); + var numImages = 0; + + for (var i = 0; i < urls.length; i++) { + var url = urls[i]; + var defd = urlDefined[i] = url != null && url !== 'none'; + + if (defd) { + var bgImgCrossOrigin = node.cy().style().getIndexedStyle(node, 'background-image-crossorigin', 'value', i); + numImages++; // get image, and if not loaded then ask to redraw when later loaded + + image[i] = r.getCachedImage(url, bgImgCrossOrigin, function () { + _p.backgroundTimestamp = Date.now(); + node.emitAndNotify('background'); + }); + } + } // + // setup styles + + + var darkness = node.pstyle('background-blacken').value; + var borderWidth = node.pstyle('border-width').pfValue; + var bgOpacity = node.pstyle('background-opacity').value * eleOpacity; + var borderColor = node.pstyle('border-color').value; + var borderStyle = node.pstyle('border-style').value; + var borderOpacity = node.pstyle('border-opacity').value * eleOpacity; + context.lineJoin = 'miter'; // so borders are square with the node shape + + var setupShapeColor = function setupShapeColor() { + var bgOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : bgOpacity; + r.eleFillStyle(context, node, bgOpy); + }; + + var setupBorderColor = function setupBorderColor() { + var bdrOpy = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : borderOpacity; + r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy); + }; // + // setup shape + + + var styleShape = node.pstyle('shape').strValue; + var shapePts = node.pstyle('shape-polygon-points').pfValue; + + if (usePaths) { + context.translate(pos.x, pos.y); + var pathCache = r.nodePathCache = r.nodePathCache || []; + var key = hashStrings(styleShape === 'polygon' ? styleShape + ',' + shapePts.join(',') : styleShape, '' + nodeHeight, '' + nodeWidth); + var cachedPath = pathCache[key]; + + if (cachedPath != null) { + path = cachedPath; + pathCacheHit = true; + rs.pathCache = path; + } else { + path = new Path2D(); + pathCache[key] = rs.pathCache = path; + } + } + + var drawShape = function drawShape() { + if (!pathCacheHit) { + var npos = pos; + + if (usePaths) { + npos = { + x: 0, + y: 0 + }; + } + + r.nodeShapes[r.getNodeShape(node)].draw(path || context, npos.x, npos.y, nodeWidth, nodeHeight); + } + + if (usePaths) { + context.fill(path); + } else { + context.fill(); + } + }; + + var drawImages = function drawImages() { + var nodeOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity; + var inside = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var prevBging = _p.backgrounding; + var totalCompleted = 0; + + for (var _i = 0; _i < image.length; _i++) { + var bgContainment = node.cy().style().getIndexedStyle(node, 'background-image-containment', 'value', _i); + + if (inside && bgContainment === 'over' || !inside && bgContainment === 'inside') { + totalCompleted++; + continue; + } + + if (urlDefined[_i] && image[_i].complete && !image[_i].error) { + totalCompleted++; + r.drawInscribedImage(context, image[_i], node, _i, nodeOpacity); + } + } + + _p.backgrounding = !(totalCompleted === numImages); + + if (prevBging !== _p.backgrounding) { + // update style b/c :backgrounding state changed + node.updateStyle(false); + } + }; + + var drawPie = function drawPie() { + var redrawShape = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + var pieOpacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : eleOpacity; + + if (r.hasPie(node)) { + r.drawPie(context, node, pieOpacity); // redraw/restore path if steps after pie need it + + if (redrawShape) { + if (!usePaths) { + r.nodeShapes[r.getNodeShape(node)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight); + } + } + } + }; + + var darken = function darken() { + var darkenOpacity = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : eleOpacity; + var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity; + var c = darkness > 0 ? 0 : 255; + + if (darkness !== 0) { + r.colorFillStyle(context, c, c, c, opacity); + + if (usePaths) { + context.fill(path); + } else { + context.fill(); + } + } + }; + + var drawBorder = function drawBorder() { + if (borderWidth > 0) { + context.lineWidth = borderWidth; + context.lineCap = 'butt'; + + if (context.setLineDash) { + // for very outofdate browsers + switch (borderStyle) { + case 'dotted': + context.setLineDash([1, 1]); + break; + + case 'dashed': + context.setLineDash([4, 2]); + break; + + case 'solid': + case 'double': + context.setLineDash([]); + break; + } + } + + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } + + if (borderStyle === 'double') { + context.lineWidth = borderWidth / 3; + var gco = context.globalCompositeOperation; + context.globalCompositeOperation = 'destination-out'; + + if (usePaths) { + context.stroke(path); + } else { + context.stroke(); + } + + context.globalCompositeOperation = gco; + } // reset in case we changed the border style + + + if (context.setLineDash) { + // for very outofdate browsers + context.setLineDash([]); + } + } + }; + + var drawOverlay = function drawOverlay() { + if (shouldDrawOverlay) { + r.drawNodeOverlay(context, node, pos, nodeWidth, nodeHeight); + } + }; + + var drawUnderlay = function drawUnderlay() { + if (shouldDrawOverlay) { + r.drawNodeUnderlay(context, node, pos, nodeWidth, nodeHeight); + } + }; + + var drawText = function drawText() { + r.drawElementText(context, node, null, drawLabel); + }; + + var ghost = node.pstyle('ghost').value === 'yes'; + + if (ghost) { + var gx = node.pstyle('ghost-offset-x').pfValue; + var gy = node.pstyle('ghost-offset-y').pfValue; + var ghostOpacity = node.pstyle('ghost-opacity').value; + var effGhostOpacity = ghostOpacity * eleOpacity; + context.translate(gx, gy); + setupShapeColor(ghostOpacity * bgOpacity); + drawShape(); + drawImages(effGhostOpacity, true); + setupBorderColor(ghostOpacity * borderOpacity); + drawBorder(); + drawPie(darkness !== 0 || borderWidth !== 0); + drawImages(effGhostOpacity, false); + darken(effGhostOpacity); + context.translate(-gx, -gy); + } + + if (usePaths) { + context.translate(-pos.x, -pos.y); + } + + drawUnderlay(); + + if (usePaths) { + context.translate(pos.x, pos.y); + } + + setupShapeColor(); + drawShape(); + drawImages(eleOpacity, true); + setupBorderColor(); + drawBorder(); + drawPie(darkness !== 0 || borderWidth !== 0); + drawImages(eleOpacity, false); + darken(); + + if (usePaths) { + context.translate(-pos.x, -pos.y); + } + + drawText(); + drawOverlay(); // + // clean up shift + + if (shiftToOriginWithBb) { + context.translate(bb.x1, bb.y1); + } + }; + + var drawNodeOverlayUnderlay = function drawNodeOverlayUnderlay(overlayOrUnderlay) { + if (!['overlay', 'underlay'].includes(overlayOrUnderlay)) { + throw new Error('Invalid state'); + } + + return function (context, node, pos, nodeWidth, nodeHeight) { + var r = this; + + if (!node.visible()) { + return; + } + + var padding = node.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue; + var opacity = node.pstyle("".concat(overlayOrUnderlay, "-opacity")).value; + var color = node.pstyle("".concat(overlayOrUnderlay, "-color")).value; + var shape = node.pstyle("".concat(overlayOrUnderlay, "-shape")).value; + + if (opacity > 0) { + pos = pos || node.position(); + + if (nodeWidth == null || nodeHeight == null) { + var _padding = node.padding(); + + nodeWidth = node.width() + 2 * _padding; + nodeHeight = node.height() + 2 * _padding; + } + + r.colorFillStyle(context, color[0], color[1], color[2], opacity); + r.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding * 2, nodeHeight + padding * 2); + context.fill(); + } + }; + }; + + CRp$5.drawNodeOverlay = drawNodeOverlayUnderlay('overlay'); + CRp$5.drawNodeUnderlay = drawNodeOverlayUnderlay('underlay'); // does the node have at least one pie piece? + + CRp$5.hasPie = function (node) { + node = node[0]; // ensure ele ref + + return node._private.hasPie; + }; + + CRp$5.drawPie = function (context, node, nodeOpacity, pos) { + node = node[0]; // ensure ele ref + + pos = pos || node.position(); + var cyStyle = node.cy().style(); + var pieSize = node.pstyle('pie-size'); + var x = pos.x; + var y = pos.y; + var nodeW = node.width(); + var nodeH = node.height(); + var radius = Math.min(nodeW, nodeH) / 2; // must fit in node + + var lastPercent = 0; // what % to continue drawing pie slices from on [0, 1] + + var usePaths = this.usePaths(); + + if (usePaths) { + x = 0; + y = 0; + } + + if (pieSize.units === '%') { + radius = radius * pieSize.pfValue; + } else if (pieSize.pfValue !== undefined) { + radius = pieSize.pfValue / 2; + } + + for (var i = 1; i <= cyStyle.pieBackgroundN; i++) { + // 1..N + var size = node.pstyle('pie-' + i + '-background-size').value; + var color = node.pstyle('pie-' + i + '-background-color').value; + var opacity = node.pstyle('pie-' + i + '-background-opacity').value * nodeOpacity; + var percent = size / 100; // map integer range [0, 100] to [0, 1] + // percent can't push beyond 1 + + if (percent + lastPercent > 1) { + percent = 1 - lastPercent; + } + + var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent; // start at 12 o'clock and go clockwise + + var angleDelta = 2 * Math.PI * percent; + var angleEnd = angleStart + angleDelta; // ignore if + // - zero size + // - we're already beyond the full circle + // - adding the current slice would go beyond the full circle + + if (size === 0 || lastPercent >= 1 || lastPercent + percent > 1) { + continue; + } + + context.beginPath(); + context.moveTo(x, y); + context.arc(x, y, radius, angleStart, angleEnd); + context.closePath(); + this.colorFillStyle(context, color[0], color[1], color[2], opacity); + context.fill(); + lastPercent += percent; + } + }; + + var CRp$4 = {}; + var motionBlurDelay = 100; // var isFirefox = typeof InstallTrigger !== 'undefined'; + + CRp$4.getPixelRatio = function () { + var context = this.data.contexts[0]; + + if (this.forcedPixelRatio != null) { + return this.forcedPixelRatio; + } + + var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1; + return (window.devicePixelRatio || 1) / backingStore; // eslint-disable-line no-undef + }; + + CRp$4.paintCache = function (context) { + var caches = this.paintCaches = this.paintCaches || []; + var needToCreateCache = true; + var cache; + + for (var i = 0; i < caches.length; i++) { + cache = caches[i]; + + if (cache.context === context) { + needToCreateCache = false; + break; + } + } + + if (needToCreateCache) { + cache = { + context: context + }; + caches.push(cache); + } + + return cache; + }; + + CRp$4.createGradientStyleFor = function (context, shapeStyleName, ele, fill, opacity) { + var gradientStyle; + var usePaths = this.usePaths(); + var colors = ele.pstyle(shapeStyleName + '-gradient-stop-colors').value, + positions = ele.pstyle(shapeStyleName + '-gradient-stop-positions').pfValue; + + if (fill === 'radial-gradient') { + if (ele.isEdge()) { + var start = ele.sourceEndpoint(), + end = ele.targetEndpoint(), + mid = ele.midpoint(); + var d1 = dist(start, mid); + var d2 = dist(end, mid); + gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2)); + } else { + var pos = usePaths ? { + x: 0, + y: 0 + } : ele.position(), + width = ele.paddedWidth(), + height = ele.paddedHeight(); + gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width, height)); + } + } else { + if (ele.isEdge()) { + var _start = ele.sourceEndpoint(), + _end = ele.targetEndpoint(); + + gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y); + } else { + var _pos = usePaths ? { + x: 0, + y: 0 + } : ele.position(), + _width = ele.paddedWidth(), + _height = ele.paddedHeight(), + halfWidth = _width / 2, + halfHeight = _height / 2; + + var direction = ele.pstyle('background-gradient-direction').value; + + switch (direction) { + case 'to-bottom': + gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight); + break; + + case 'to-top': + gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight); + break; + + case 'to-left': + gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y); + break; + + case 'to-right': + gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y); + break; + + case 'to-bottom-right': + case 'to-right-bottom': + gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight); + break; + + case 'to-top-right': + case 'to-right-top': + gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight); + break; + + case 'to-bottom-left': + case 'to-left-bottom': + gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight); + break; + + case 'to-top-left': + case 'to-left-top': + gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight); + break; + } + } + } + + if (!gradientStyle) return null; // invalid gradient style + + var hasPositions = positions.length === colors.length; + var length = colors.length; + + for (var i = 0; i < length; i++) { + gradientStyle.addColorStop(hasPositions ? positions[i] : i / (length - 1), 'rgba(' + colors[i][0] + ',' + colors[i][1] + ',' + colors[i][2] + ',' + opacity + ')'); + } + + return gradientStyle; + }; + + CRp$4.gradientFillStyle = function (context, ele, fill, opacity) { + var gradientStyle = this.createGradientStyleFor(context, 'background', ele, fill, opacity); + if (!gradientStyle) return null; // error + + context.fillStyle = gradientStyle; + }; + + CRp$4.colorFillStyle = function (context, r, g, b, a) { + context.fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; // turn off for now, seems context does its own caching + // var cache = this.paintCache(context); + // var fillStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; + // if( cache.fillStyle !== fillStyle ){ + // context.fillStyle = cache.fillStyle = fillStyle; + // } + }; + + CRp$4.eleFillStyle = function (context, ele, opacity) { + var backgroundFill = ele.pstyle('background-fill').value; + + if (backgroundFill === 'linear-gradient' || backgroundFill === 'radial-gradient') { + this.gradientFillStyle(context, ele, backgroundFill, opacity); + } else { + var backgroundColor = ele.pstyle('background-color').value; + this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity); + } + }; + + CRp$4.gradientStrokeStyle = function (context, ele, fill, opacity) { + var gradientStyle = this.createGradientStyleFor(context, 'line', ele, fill, opacity); + if (!gradientStyle) return null; // error + + context.strokeStyle = gradientStyle; + }; + + CRp$4.colorStrokeStyle = function (context, r, g, b, a) { + context.strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; // turn off for now, seems context does its own caching + // var cache = this.paintCache(context); + // var strokeStyle = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; + // if( cache.strokeStyle !== strokeStyle ){ + // context.strokeStyle = cache.strokeStyle = strokeStyle; + // } + }; + + CRp$4.eleStrokeStyle = function (context, ele, opacity) { + var lineFill = ele.pstyle('line-fill').value; + + if (lineFill === 'linear-gradient' || lineFill === 'radial-gradient') { + this.gradientStrokeStyle(context, ele, lineFill, opacity); + } else { + var lineColor = ele.pstyle('line-color').value; + this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity); + } + }; // Resize canvas + + + CRp$4.matchCanvasSize = function (container) { + var r = this; + var data = r.data; + var bb = r.findContainerClientCoords(); + var width = bb[2]; + var height = bb[3]; + var pixelRatio = r.getPixelRatio(); + var mbPxRatio = r.motionBlurPxRatio; + + if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) { + pixelRatio = mbPxRatio; + } + + var canvasWidth = width * pixelRatio; + var canvasHeight = height * pixelRatio; + var canvas; + + if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) { + return; // save cycles if same + } + + r.fontCaches = null; // resizing resets the style + + var canvasContainer = data.canvasContainer; + canvasContainer.style.width = width + 'px'; + canvasContainer.style.height = height + 'px'; + + for (var i = 0; i < r.CANVAS_LAYERS; i++) { + canvas = data.canvases[i]; + canvas.width = canvasWidth; + canvas.height = canvasHeight; + canvas.style.width = width + 'px'; + canvas.style.height = height + 'px'; + } + + for (var i = 0; i < r.BUFFER_COUNT; i++) { + canvas = data.bufferCanvases[i]; + canvas.width = canvasWidth; + canvas.height = canvasHeight; + canvas.style.width = width + 'px'; + canvas.style.height = height + 'px'; + } + + r.textureMult = 1; + + if (pixelRatio <= 1) { + canvas = data.bufferCanvases[r.TEXTURE_BUFFER]; + r.textureMult = 2; + canvas.width = canvasWidth * r.textureMult; + canvas.height = canvasHeight * r.textureMult; + } + + r.canvasWidth = canvasWidth; + r.canvasHeight = canvasHeight; + }; + + CRp$4.renderTo = function (cxt, zoom, pan, pxRatio) { + this.render({ + forcedContext: cxt, + forcedZoom: zoom, + forcedPan: pan, + drawAllLayers: true, + forcedPxRatio: pxRatio + }); + }; + + CRp$4.render = function (options) { + options = options || staticEmptyObject(); + var forcedContext = options.forcedContext; + var drawAllLayers = options.drawAllLayers; + var drawOnlyNodeLayer = options.drawOnlyNodeLayer; + var forcedZoom = options.forcedZoom; + var forcedPan = options.forcedPan; + var r = this; + var pixelRatio = options.forcedPxRatio === undefined ? this.getPixelRatio() : options.forcedPxRatio; + var cy = r.cy; + var data = r.data; + var needDraw = data.canvasNeedsRedraw; + var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming); + var motionBlur = options.motionBlur !== undefined ? options.motionBlur : r.motionBlur; + var mbPxRatio = r.motionBlurPxRatio; + var hasCompoundNodes = cy.hasCompoundNodes(); + var inNodeDragGesture = r.hoverData.draggingEles; + var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false; + motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection; + var motionBlurFadeEffect = motionBlur; + + if (!forcedContext) { + if (r.prevPxRatio !== pixelRatio) { + r.invalidateContainerClientCoordsCache(); + r.matchCanvasSize(r.container); + r.redrawHint('eles', true); + r.redrawHint('drag', true); + } + + r.prevPxRatio = pixelRatio; + } + + if (!forcedContext && r.motionBlurTimeout) { + clearTimeout(r.motionBlurTimeout); + } + + if (motionBlur) { + if (r.mbFrames == null) { + r.mbFrames = 0; + } + + r.mbFrames++; + + if (r.mbFrames < 3) { + // need several frames before even high quality motionblur + motionBlurFadeEffect = false; + } // go to lower quality blurry frames when several m/b frames have been rendered (avoids flashing) + + + if (r.mbFrames > r.minMbLowQualFrames) { + //r.fullQualityMb = false; + r.motionBlurPxRatio = r.mbPxRBlurry; + } + } + + if (r.clearingMotionBlur) { + r.motionBlurPxRatio = 1; + } // b/c drawToContext() may be async w.r.t. redraw(), keep track of last texture frame + // because a rogue async texture frame would clear needDraw + + + if (r.textureDrawLastFrame && !textureDraw) { + needDraw[r.NODE] = true; + needDraw[r.SELECT_BOX] = true; + } + + var style = cy.style(); + var zoom = cy.zoom(); + var effectiveZoom = forcedZoom !== undefined ? forcedZoom : zoom; + var pan = cy.pan(); + var effectivePan = { + x: pan.x, + y: pan.y + }; + var vp = { + zoom: zoom, + pan: { + x: pan.x, + y: pan.y + } + }; + var prevVp = r.prevViewport; + var viewportIsDiff = prevVp === undefined || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y; // we want the low quality motionblur only when the viewport is being manipulated etc (where it's not noticed) + + if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) { + r.motionBlurPxRatio = 1; + } + + if (forcedPan) { + effectivePan = forcedPan; + } // apply pixel ratio + + + effectiveZoom *= pixelRatio; + effectivePan.x *= pixelRatio; + effectivePan.y *= pixelRatio; + var eles = r.getCachedZSortedEles(); + + function mbclear(context, x, y, w, h) { + var gco = context.globalCompositeOperation; + context.globalCompositeOperation = 'destination-out'; + r.colorFillStyle(context, 255, 255, 255, r.motionBlurTransparency); + context.fillRect(x, y, w, h); + context.globalCompositeOperation = gco; + } + + function setContextTransform(context, clear) { + var ePan, eZoom, w, h; + + if (!r.clearingMotionBlur && (context === data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context === data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) { + ePan = { + x: pan.x * mbPxRatio, + y: pan.y * mbPxRatio + }; + eZoom = zoom * mbPxRatio; + w = r.canvasWidth * mbPxRatio; + h = r.canvasHeight * mbPxRatio; + } else { + ePan = effectivePan; + eZoom = effectiveZoom; + w = r.canvasWidth; + h = r.canvasHeight; + } + + context.setTransform(1, 0, 0, 1, 0, 0); + + if (clear === 'motionBlur') { + mbclear(context, 0, 0, w, h); + } else if (!forcedContext && (clear === undefined || clear)) { + context.clearRect(0, 0, w, h); + } + + if (!drawAllLayers) { + context.translate(ePan.x, ePan.y); + context.scale(eZoom, eZoom); + } + + if (forcedPan) { + context.translate(forcedPan.x, forcedPan.y); + } + + if (forcedZoom) { + context.scale(forcedZoom, forcedZoom); + } + } + + if (!textureDraw) { + r.textureDrawLastFrame = false; + } + + if (textureDraw) { + r.textureDrawLastFrame = true; + + if (!r.textureCache) { + r.textureCache = {}; + r.textureCache.bb = cy.mutableElements().boundingBox(); + r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER]; + var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER]; + cxt.setTransform(1, 0, 0, 1, 0, 0); + cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult); + r.render({ + forcedContext: cxt, + drawOnlyNodeLayer: true, + forcedPxRatio: pixelRatio * r.textureMult + }); + var vp = r.textureCache.viewport = { + zoom: cy.zoom(), + pan: cy.pan(), + width: r.canvasWidth, + height: r.canvasHeight + }; + vp.mpan = { + x: (0 - vp.pan.x) / vp.zoom, + y: (0 - vp.pan.y) / vp.zoom + }; + } + + needDraw[r.DRAG] = false; + needDraw[r.NODE] = false; + var context = data.contexts[r.NODE]; + var texture = r.textureCache.texture; + var vp = r.textureCache.viewport; + context.setTransform(1, 0, 0, 1, 0, 0); + + if (motionBlur) { + mbclear(context, 0, 0, vp.width, vp.height); + } else { + context.clearRect(0, 0, vp.width, vp.height); + } + + var outsideBgColor = style.core('outside-texture-bg-color').value; + var outsideBgOpacity = style.core('outside-texture-bg-opacity').value; + r.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity); + context.fillRect(0, 0, vp.width, vp.height); + var zoom = cy.zoom(); + setContextTransform(context, false); + context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio); + context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio); + } else if (r.textureOnViewport && !forcedContext) { + // clear the cache since we don't need it + r.textureCache = null; + } + + var extent = cy.extent(); + var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles || r.cy.animated(); + var hideEdges = r.hideEdgesOnViewport && vpManip; + var needMbClear = []; + needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur; + + if (needMbClear[r.NODE]) { + r.clearedForMotionBlur[r.NODE] = true; + } + + needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur; + + if (needMbClear[r.DRAG]) { + r.clearedForMotionBlur[r.DRAG] = true; + } + + if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) { + var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1; + var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data.contexts[r.NODE]); + var clear = motionBlur && !useBuffer ? 'motionBlur' : undefined; + setContextTransform(context, clear); + + if (hideEdges) { + r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent); + } else { + r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent); + } + + if (r.debug) { + r.drawDebugPoints(context, eles.nondrag); + } + + if (!drawAllLayers && !motionBlur) { + needDraw[r.NODE] = false; + } + } + + if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) { + var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1; + var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data.contexts[r.DRAG]); + setContextTransform(context, motionBlur && !useBuffer ? 'motionBlur' : undefined); + + if (hideEdges) { + r.drawCachedNodes(context, eles.drag, pixelRatio, extent); + } else { + r.drawCachedElements(context, eles.drag, pixelRatio, extent); + } + + if (r.debug) { + r.drawDebugPoints(context, eles.drag); + } + + if (!drawAllLayers && !motionBlur) { + needDraw[r.DRAG] = false; + } + } + + if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) { + var context = forcedContext || data.contexts[r.SELECT_BOX]; + setContextTransform(context); + + if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) { + var zoom = r.cy.zoom(); + var borderWidth = style.core('selection-box-border-width').value / zoom; + context.lineWidth = borderWidth; + context.fillStyle = 'rgba(' + style.core('selection-box-color').value[0] + ',' + style.core('selection-box-color').value[1] + ',' + style.core('selection-box-color').value[2] + ',' + style.core('selection-box-opacity').value + ')'; + context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]); + + if (borderWidth > 0) { + context.strokeStyle = 'rgba(' + style.core('selection-box-border-color').value[0] + ',' + style.core('selection-box-border-color').value[1] + ',' + style.core('selection-box-border-color').value[2] + ',' + style.core('selection-box-opacity').value + ')'; + context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]); + } + } + + if (data.bgActivePosistion && !r.hoverData.selecting) { + var zoom = r.cy.zoom(); + var pos = data.bgActivePosistion; + context.fillStyle = 'rgba(' + style.core('active-bg-color').value[0] + ',' + style.core('active-bg-color').value[1] + ',' + style.core('active-bg-color').value[2] + ',' + style.core('active-bg-opacity').value + ')'; + context.beginPath(); + context.arc(pos.x, pos.y, style.core('active-bg-size').pfValue / zoom, 0, 2 * Math.PI); + context.fill(); + } + + var timeToRender = r.lastRedrawTime; + + if (r.showFps && timeToRender) { + timeToRender = Math.round(timeToRender); + var fps = Math.round(1000 / timeToRender); + context.setTransform(1, 0, 0, 1, 0, 0); + context.fillStyle = 'rgba(255, 0, 0, 0.75)'; + context.strokeStyle = 'rgba(255, 0, 0, 0.75)'; + context.lineWidth = 1; + context.fillText('1 frame = ' + timeToRender + ' ms = ' + fps + ' fps', 0, 20); + var maxFps = 60; + context.strokeRect(0, 30, 250, 20); + context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20); + } + + if (!drawAllLayers) { + needDraw[r.SELECT_BOX] = false; + } + } // motionblur: blit rendered blurry frames + + + if (motionBlur && mbPxRatio !== 1) { + var cxtNode = data.contexts[r.NODE]; + var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE]; + var cxtDrag = data.contexts[r.DRAG]; + var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]; + + var drawMotionBlur = function drawMotionBlur(cxt, txt, needClear) { + cxt.setTransform(1, 0, 0, 1, 0, 0); + + if (needClear || !motionBlurFadeEffect) { + cxt.clearRect(0, 0, r.canvasWidth, r.canvasHeight); + } else { + mbclear(cxt, 0, 0, r.canvasWidth, r.canvasHeight); + } + + var pxr = mbPxRatio; + cxt.drawImage(txt, // img + 0, 0, // sx, sy + r.canvasWidth * pxr, r.canvasHeight * pxr, // sw, sh + 0, 0, // x, y + r.canvasWidth, r.canvasHeight // w, h + ); + }; + + if (needDraw[r.NODE] || needMbClear[r.NODE]) { + drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]); + needDraw[r.NODE] = false; + } + + if (needDraw[r.DRAG] || needMbClear[r.DRAG]) { + drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]); + needDraw[r.DRAG] = false; + } + } + + r.prevViewport = vp; + + if (r.clearingMotionBlur) { + r.clearingMotionBlur = false; + r.motionBlurCleared = true; + r.motionBlur = true; + } + + if (motionBlur) { + r.motionBlurTimeout = setTimeout(function () { + r.motionBlurTimeout = null; + r.clearedForMotionBlur[r.NODE] = false; + r.clearedForMotionBlur[r.DRAG] = false; + r.motionBlur = false; + r.clearingMotionBlur = !textureDraw; + r.mbFrames = 0; + needDraw[r.NODE] = true; + needDraw[r.DRAG] = true; + r.redraw(); + }, motionBlurDelay); + } + + if (!forcedContext) { + cy.emit('render'); + } + }; + + var CRp$3 = {}; // @O Polygon drawing + + CRp$3.drawPolygonPath = function (context, x, y, width, height, points) { + var halfW = width / 2; + var halfH = height / 2; + + if (context.beginPath) { + context.beginPath(); + } + + context.moveTo(x + halfW * points[0], y + halfH * points[1]); + + for (var i = 1; i < points.length / 2; i++) { + context.lineTo(x + halfW * points[i * 2], y + halfH * points[i * 2 + 1]); + } + + context.closePath(); + }; + + CRp$3.drawRoundPolygonPath = function (context, x, y, width, height, points) { + var halfW = width / 2; + var halfH = height / 2; + var cornerRadius = getRoundPolygonRadius(width, height); + + if (context.beginPath) { + context.beginPath(); + } + + for (var _i = 0; _i < points.length / 4; _i++) { + var sourceUv = void 0, + destUv = void 0; + + if (_i === 0) { + sourceUv = points.length - 2; + } else { + sourceUv = _i * 4 - 2; + } + + destUv = _i * 4 + 2; + var px = x + halfW * points[_i * 4]; + var py = y + halfH * points[_i * 4 + 1]; + var cosTheta = -points[sourceUv] * points[destUv] - points[sourceUv + 1] * points[destUv + 1]; + var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2); + var cp0x = px - offset * points[sourceUv]; + var cp0y = py - offset * points[sourceUv + 1]; + var cp1x = px + offset * points[destUv]; + var cp1y = py + offset * points[destUv + 1]; + + if (_i === 0) { + context.moveTo(cp0x, cp0y); + } else { + context.lineTo(cp0x, cp0y); + } + + context.arcTo(px, py, cp1x, cp1y, cornerRadius); + } + + context.closePath(); + }; // Round rectangle drawing + + + CRp$3.drawRoundRectanglePath = function (context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var cornerRadius = getRoundRectangleRadius(width, height); + + if (context.beginPath) { + context.beginPath(); + } // Start at top middle + + + context.moveTo(x, y - halfHeight); // Arc from middle top to right side + + context.arcTo(x + halfWidth, y - halfHeight, x + halfWidth, y, cornerRadius); // Arc from right side to bottom + + context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius); // Arc from bottom to left side + + context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius); // Arc from left side to topBorder + + context.arcTo(x - halfWidth, y - halfHeight, x, y - halfHeight, cornerRadius); // Join line + + context.lineTo(x, y - halfHeight); + context.closePath(); + }; + + CRp$3.drawBottomRoundRectanglePath = function (context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var cornerRadius = getRoundRectangleRadius(width, height); + + if (context.beginPath) { + context.beginPath(); + } // Start at top middle + + + context.moveTo(x, y - halfHeight); + context.lineTo(x + halfWidth, y - halfHeight); + context.lineTo(x + halfWidth, y); + context.arcTo(x + halfWidth, y + halfHeight, x, y + halfHeight, cornerRadius); + context.arcTo(x - halfWidth, y + halfHeight, x - halfWidth, y, cornerRadius); + context.lineTo(x - halfWidth, y - halfHeight); + context.lineTo(x, y - halfHeight); + context.closePath(); + }; + + CRp$3.drawCutRectanglePath = function (context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var cornerLength = getCutRectangleCornerLength(); + + if (context.beginPath) { + context.beginPath(); + } + + context.moveTo(x - halfWidth + cornerLength, y - halfHeight); + context.lineTo(x + halfWidth - cornerLength, y - halfHeight); + context.lineTo(x + halfWidth, y - halfHeight + cornerLength); + context.lineTo(x + halfWidth, y + halfHeight - cornerLength); + context.lineTo(x + halfWidth - cornerLength, y + halfHeight); + context.lineTo(x - halfWidth + cornerLength, y + halfHeight); + context.lineTo(x - halfWidth, y + halfHeight - cornerLength); + context.lineTo(x - halfWidth, y - halfHeight + cornerLength); + context.closePath(); + }; + + CRp$3.drawBarrelPath = function (context, x, y, width, height) { + var halfWidth = width / 2; + var halfHeight = height / 2; + var xBegin = x - halfWidth; + var xEnd = x + halfWidth; + var yBegin = y - halfHeight; + var yEnd = y + halfHeight; + var barrelCurveConstants = getBarrelCurveConstants(width, height); + var wOffset = barrelCurveConstants.widthOffset; + var hOffset = barrelCurveConstants.heightOffset; + var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset; + + if (context.beginPath) { + context.beginPath(); + } + + context.moveTo(xBegin, yBegin + hOffset); + context.lineTo(xBegin, yEnd - hOffset); + context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd); + context.lineTo(xEnd - wOffset, yEnd); + context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset); + context.lineTo(xEnd, yBegin + hOffset); + context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin); + context.lineTo(xBegin + wOffset, yBegin); + context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset); + context.closePath(); + }; + + var sin0 = Math.sin(0); + var cos0 = Math.cos(0); + var sin = {}; + var cos = {}; + var ellipseStepSize = Math.PI / 40; + + for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) { + sin[i] = Math.sin(i); + cos[i] = Math.cos(i); + } + + CRp$3.drawEllipsePath = function (context, centerX, centerY, width, height) { + if (context.beginPath) { + context.beginPath(); + } + + if (context.ellipse) { + context.ellipse(centerX, centerY, width / 2, height / 2, 0, 0, 2 * Math.PI); + } else { + var xPos, yPos; + var rw = width / 2; + var rh = height / 2; + + for (var i = 0 * Math.PI; i < 2 * Math.PI; i += ellipseStepSize) { + xPos = centerX - rw * sin[i] * sin0 + rw * cos[i] * cos0; + yPos = centerY + rh * cos[i] * sin0 + rh * sin[i] * cos0; + + if (i === 0) { + context.moveTo(xPos, yPos); + } else { + context.lineTo(xPos, yPos); + } + } + } + + context.closePath(); + }; + + /* global atob, ArrayBuffer, Uint8Array, Blob */ + var CRp$2 = {}; + + CRp$2.createBuffer = function (w, h) { + var buffer = document.createElement('canvas'); // eslint-disable-line no-undef + + buffer.width = w; + buffer.height = h; + return [buffer, buffer.getContext('2d')]; + }; + + CRp$2.bufferCanvasImage = function (options) { + var cy = this.cy; + var eles = cy.mutableElements(); + var bb = eles.boundingBox(); + var ctrRect = this.findContainerClientCoords(); + var width = options.full ? Math.ceil(bb.w) : ctrRect[2]; + var height = options.full ? Math.ceil(bb.h) : ctrRect[3]; + var specdMaxDims = number$1(options.maxWidth) || number$1(options.maxHeight); + var pxRatio = this.getPixelRatio(); + var scale = 1; + + if (options.scale !== undefined) { + width *= options.scale; + height *= options.scale; + scale = options.scale; + } else if (specdMaxDims) { + var maxScaleW = Infinity; + var maxScaleH = Infinity; + + if (number$1(options.maxWidth)) { + maxScaleW = scale * options.maxWidth / width; + } + + if (number$1(options.maxHeight)) { + maxScaleH = scale * options.maxHeight / height; + } + + scale = Math.min(maxScaleW, maxScaleH); + width *= scale; + height *= scale; + } + + if (!specdMaxDims) { + width *= pxRatio; + height *= pxRatio; + scale *= pxRatio; + } + + var buffCanvas = document.createElement('canvas'); // eslint-disable-line no-undef + + buffCanvas.width = width; + buffCanvas.height = height; + buffCanvas.style.width = width + 'px'; + buffCanvas.style.height = height + 'px'; + var buffCxt = buffCanvas.getContext('2d'); // Rasterize the layers, but only if container has nonzero size + + if (width > 0 && height > 0) { + buffCxt.clearRect(0, 0, width, height); + buffCxt.globalCompositeOperation = 'source-over'; + var zsortedEles = this.getCachedZSortedEles(); + + if (options.full) { + // draw the full bounds of the graph + buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale); + buffCxt.scale(scale, scale); + this.drawElements(buffCxt, zsortedEles); + buffCxt.scale(1 / scale, 1 / scale); + buffCxt.translate(bb.x1 * scale, bb.y1 * scale); + } else { + // draw the current view + var pan = cy.pan(); + var translation = { + x: pan.x * scale, + y: pan.y * scale + }; + scale *= cy.zoom(); + buffCxt.translate(translation.x, translation.y); + buffCxt.scale(scale, scale); + this.drawElements(buffCxt, zsortedEles); + buffCxt.scale(1 / scale, 1 / scale); + buffCxt.translate(-translation.x, -translation.y); + } // need to fill bg at end like this in order to fill cleared transparent pixels in jpgs + + + if (options.bg) { + buffCxt.globalCompositeOperation = 'destination-over'; + buffCxt.fillStyle = options.bg; + buffCxt.rect(0, 0, width, height); + buffCxt.fill(); + } + } + + return buffCanvas; + }; + + function b64ToBlob(b64, mimeType) { + var bytes = atob(b64); + var buff = new ArrayBuffer(bytes.length); + var buffUint8 = new Uint8Array(buff); + + for (var i = 0; i < bytes.length; i++) { + buffUint8[i] = bytes.charCodeAt(i); + } + + return new Blob([buff], { + type: mimeType + }); + } + + function b64UriToB64(b64uri) { + var i = b64uri.indexOf(','); + return b64uri.substr(i + 1); + } + + function output(options, canvas, mimeType) { + var getB64Uri = function getB64Uri() { + return canvas.toDataURL(mimeType, options.quality); + }; + + switch (options.output) { + case 'blob-promise': + return new Promise$1(function (resolve, reject) { + try { + canvas.toBlob(function (blob) { + if (blob != null) { + resolve(blob); + } else { + reject(new Error('`canvas.toBlob()` sent a null value in its callback')); + } + }, mimeType, options.quality); + } catch (err) { + reject(err); + } + }); + + case 'blob': + return b64ToBlob(b64UriToB64(getB64Uri()), mimeType); + + case 'base64': + return b64UriToB64(getB64Uri()); + + case 'base64uri': + default: + return getB64Uri(); + } + } + + CRp$2.png = function (options) { + return output(options, this.bufferCanvasImage(options), 'image/png'); + }; + + CRp$2.jpg = function (options) { + return output(options, this.bufferCanvasImage(options), 'image/jpeg'); + }; + + var CRp$1 = {}; + + CRp$1.nodeShapeImpl = function (name, context, centerX, centerY, width, height, points) { + switch (name) { + case 'ellipse': + return this.drawEllipsePath(context, centerX, centerY, width, height); + + case 'polygon': + return this.drawPolygonPath(context, centerX, centerY, width, height, points); + + case 'round-polygon': + return this.drawRoundPolygonPath(context, centerX, centerY, width, height, points); + + case 'roundrectangle': + case 'round-rectangle': + return this.drawRoundRectanglePath(context, centerX, centerY, width, height); + + case 'cutrectangle': + case 'cut-rectangle': + return this.drawCutRectanglePath(context, centerX, centerY, width, height); + + case 'bottomroundrectangle': + case 'bottom-round-rectangle': + return this.drawBottomRoundRectanglePath(context, centerX, centerY, width, height); + + case 'barrel': + return this.drawBarrelPath(context, centerX, centerY, width, height); + } + }; + + var CR = CanvasRenderer; + var CRp = CanvasRenderer.prototype; + CRp.CANVAS_LAYERS = 3; // + + CRp.SELECT_BOX = 0; + CRp.DRAG = 1; + CRp.NODE = 2; + CRp.BUFFER_COUNT = 3; // + + CRp.TEXTURE_BUFFER = 0; + CRp.MOTIONBLUR_BUFFER_NODE = 1; + CRp.MOTIONBLUR_BUFFER_DRAG = 2; + + function CanvasRenderer(options) { + var r = this; + r.data = { + canvases: new Array(CRp.CANVAS_LAYERS), + contexts: new Array(CRp.CANVAS_LAYERS), + canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS), + bufferCanvases: new Array(CRp.BUFFER_COUNT), + bufferContexts: new Array(CRp.CANVAS_LAYERS) + }; + var tapHlOffAttr = '-webkit-tap-highlight-color'; + var tapHlOffStyle = 'rgba(0,0,0,0)'; + r.data.canvasContainer = document.createElement('div'); // eslint-disable-line no-undef + + var containerStyle = r.data.canvasContainer.style; + r.data.canvasContainer.style[tapHlOffAttr] = tapHlOffStyle; + containerStyle.position = 'relative'; + containerStyle.zIndex = '0'; + containerStyle.overflow = 'hidden'; + var container = options.cy.container(); + container.appendChild(r.data.canvasContainer); + container.style[tapHlOffAttr] = tapHlOffStyle; + var styleMap = { + '-webkit-user-select': 'none', + '-moz-user-select': '-moz-none', + 'user-select': 'none', + '-webkit-tap-highlight-color': 'rgba(0,0,0,0)', + 'outline-style': 'none' + }; + + if (ms()) { + styleMap['-ms-touch-action'] = 'none'; + styleMap['touch-action'] = 'none'; + } + + for (var i = 0; i < CRp.CANVAS_LAYERS; i++) { + var canvas = r.data.canvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef + + r.data.contexts[i] = canvas.getContext('2d'); + Object.keys(styleMap).forEach(function (k) { + canvas.style[k] = styleMap[k]; + }); + canvas.style.position = 'absolute'; + canvas.setAttribute('data-id', 'layer' + i); + canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i); + r.data.canvasContainer.appendChild(canvas); + r.data.canvasNeedsRedraw[i] = false; + } + + r.data.topCanvas = r.data.canvases[0]; + r.data.canvases[CRp.NODE].setAttribute('data-id', 'layer' + CRp.NODE + '-node'); + r.data.canvases[CRp.SELECT_BOX].setAttribute('data-id', 'layer' + CRp.SELECT_BOX + '-selectbox'); + r.data.canvases[CRp.DRAG].setAttribute('data-id', 'layer' + CRp.DRAG + '-drag'); + + for (var i = 0; i < CRp.BUFFER_COUNT; i++) { + r.data.bufferCanvases[i] = document.createElement('canvas'); // eslint-disable-line no-undef + + r.data.bufferContexts[i] = r.data.bufferCanvases[i].getContext('2d'); + r.data.bufferCanvases[i].style.position = 'absolute'; + r.data.bufferCanvases[i].setAttribute('data-id', 'buffer' + i); + r.data.bufferCanvases[i].style.zIndex = String(-i - 1); + r.data.bufferCanvases[i].style.visibility = 'hidden'; //r.data.canvasContainer.appendChild(r.data.bufferCanvases[i]); + } + + r.pathsEnabled = true; + var emptyBb = makeBoundingBox(); + + var getBoxCenter = function getBoxCenter(bb) { + return { + x: (bb.x1 + bb.x2) / 2, + y: (bb.y1 + bb.y2) / 2 + }; + }; + + var getCenterOffset = function getCenterOffset(bb) { + return { + x: -bb.w / 2, + y: -bb.h / 2 + }; + }; + + var backgroundTimestampHasChanged = function backgroundTimestampHasChanged(ele) { + var _p = ele[0]._private; + var same = _p.oldBackgroundTimestamp === _p.backgroundTimestamp; + return !same; + }; + + var getStyleKey = function getStyleKey(ele) { + return ele[0]._private.nodeKey; + }; + + var getLabelKey = function getLabelKey(ele) { + return ele[0]._private.labelStyleKey; + }; + + var getSourceLabelKey = function getSourceLabelKey(ele) { + return ele[0]._private.sourceLabelStyleKey; + }; + + var getTargetLabelKey = function getTargetLabelKey(ele) { + return ele[0]._private.targetLabelStyleKey; + }; + + var drawElement = function drawElement(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElement(context, ele, bb, false, false, useEleOpacity); + }; + + var drawLabel = function drawLabel(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElementText(context, ele, bb, scaledLabelShown, 'main', useEleOpacity); + }; + + var drawSourceLabel = function drawSourceLabel(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElementText(context, ele, bb, scaledLabelShown, 'source', useEleOpacity); + }; + + var drawTargetLabel = function drawTargetLabel(context, ele, bb, scaledLabelShown, useEleOpacity) { + return r.drawElementText(context, ele, bb, scaledLabelShown, 'target', useEleOpacity); + }; + + var getElementBox = function getElementBox(ele) { + ele.boundingBox(); + return ele[0]._private.bodyBounds; + }; + + var getLabelBox = function getLabelBox(ele) { + ele.boundingBox(); + return ele[0]._private.labelBounds.main || emptyBb; + }; + + var getSourceLabelBox = function getSourceLabelBox(ele) { + ele.boundingBox(); + return ele[0]._private.labelBounds.source || emptyBb; + }; + + var getTargetLabelBox = function getTargetLabelBox(ele) { + ele.boundingBox(); + return ele[0]._private.labelBounds.target || emptyBb; + }; + + var isLabelVisibleAtScale = function isLabelVisibleAtScale(ele, scaledLabelShown) { + return scaledLabelShown; + }; + + var getElementRotationPoint = function getElementRotationPoint(ele) { + return getBoxCenter(getElementBox(ele)); + }; + + var addTextMargin = function addTextMargin(prefix, pt, ele) { + var pre = prefix ? prefix + '-' : ''; + return { + x: pt.x + ele.pstyle(pre + 'text-margin-x').pfValue, + y: pt.y + ele.pstyle(pre + 'text-margin-y').pfValue + }; + }; + + var getRsPt = function getRsPt(ele, x, y) { + var rs = ele[0]._private.rscratch; + return { + x: rs[x], + y: rs[y] + }; + }; + + var getLabelRotationPoint = function getLabelRotationPoint(ele) { + return addTextMargin('', getRsPt(ele, 'labelX', 'labelY'), ele); + }; + + var getSourceLabelRotationPoint = function getSourceLabelRotationPoint(ele) { + return addTextMargin('source', getRsPt(ele, 'sourceLabelX', 'sourceLabelY'), ele); + }; + + var getTargetLabelRotationPoint = function getTargetLabelRotationPoint(ele) { + return addTextMargin('target', getRsPt(ele, 'targetLabelX', 'targetLabelY'), ele); + }; + + var getElementRotationOffset = function getElementRotationOffset(ele) { + return getCenterOffset(getElementBox(ele)); + }; + + var getSourceLabelRotationOffset = function getSourceLabelRotationOffset(ele) { + return getCenterOffset(getSourceLabelBox(ele)); + }; + + var getTargetLabelRotationOffset = function getTargetLabelRotationOffset(ele) { + return getCenterOffset(getTargetLabelBox(ele)); + }; + + var getLabelRotationOffset = function getLabelRotationOffset(ele) { + var bb = getLabelBox(ele); + var p = getCenterOffset(getLabelBox(ele)); + + if (ele.isNode()) { + switch (ele.pstyle('text-halign').value) { + case 'left': + p.x = -bb.w; + break; + + case 'right': + p.x = 0; + break; + } + + switch (ele.pstyle('text-valign').value) { + case 'top': + p.y = -bb.h; + break; + + case 'bottom': + p.y = 0; + break; + } + } + + return p; + }; + + var eleTxrCache = r.data.eleTxrCache = new ElementTextureCache(r, { + getKey: getStyleKey, + doesEleInvalidateKey: backgroundTimestampHasChanged, + drawElement: drawElement, + getBoundingBox: getElementBox, + getRotationPoint: getElementRotationPoint, + getRotationOffset: getElementRotationOffset, + allowEdgeTxrCaching: false, + allowParentTxrCaching: false + }); + var lblTxrCache = r.data.lblTxrCache = new ElementTextureCache(r, { + getKey: getLabelKey, + drawElement: drawLabel, + getBoundingBox: getLabelBox, + getRotationPoint: getLabelRotationPoint, + getRotationOffset: getLabelRotationOffset, + isVisible: isLabelVisibleAtScale + }); + var slbTxrCache = r.data.slbTxrCache = new ElementTextureCache(r, { + getKey: getSourceLabelKey, + drawElement: drawSourceLabel, + getBoundingBox: getSourceLabelBox, + getRotationPoint: getSourceLabelRotationPoint, + getRotationOffset: getSourceLabelRotationOffset, + isVisible: isLabelVisibleAtScale + }); + var tlbTxrCache = r.data.tlbTxrCache = new ElementTextureCache(r, { + getKey: getTargetLabelKey, + drawElement: drawTargetLabel, + getBoundingBox: getTargetLabelBox, + getRotationPoint: getTargetLabelRotationPoint, + getRotationOffset: getTargetLabelRotationOffset, + isVisible: isLabelVisibleAtScale + }); + var lyrTxrCache = r.data.lyrTxrCache = new LayeredTextureCache(r); + r.onUpdateEleCalcs(function invalidateTextureCaches(willDraw, eles) { + // each cache should check for sub-key diff to see that the update affects that cache particularly + eleTxrCache.invalidateElements(eles); + lblTxrCache.invalidateElements(eles); + slbTxrCache.invalidateElements(eles); + tlbTxrCache.invalidateElements(eles); // any change invalidates the layers + + lyrTxrCache.invalidateElements(eles); // update the old bg timestamp so diffs can be done in the ele txr caches + + for (var _i = 0; _i < eles.length; _i++) { + var _p = eles[_i]._private; + _p.oldBackgroundTimestamp = _p.backgroundTimestamp; + } + }); + + var refineInLayers = function refineInLayers(reqs) { + for (var i = 0; i < reqs.length; i++) { + lyrTxrCache.enqueueElementRefinement(reqs[i].ele); + } + }; + + eleTxrCache.onDequeue(refineInLayers); + lblTxrCache.onDequeue(refineInLayers); + slbTxrCache.onDequeue(refineInLayers); + tlbTxrCache.onDequeue(refineInLayers); + } + + CRp.redrawHint = function (group, bool) { + var r = this; + + switch (group) { + case 'eles': + r.data.canvasNeedsRedraw[CRp.NODE] = bool; + break; + + case 'drag': + r.data.canvasNeedsRedraw[CRp.DRAG] = bool; + break; + + case 'select': + r.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool; + break; + } + }; // whether to use Path2D caching for drawing + + + var pathsImpld = typeof Path2D !== 'undefined'; + + CRp.path2dEnabled = function (on) { + if (on === undefined) { + return this.pathsEnabled; + } + + this.pathsEnabled = on ? true : false; + }; + + CRp.usePaths = function () { + return pathsImpld && this.pathsEnabled; + }; + + CRp.setImgSmoothing = function (context, bool) { + if (context.imageSmoothingEnabled != null) { + context.imageSmoothingEnabled = bool; + } else { + context.webkitImageSmoothingEnabled = bool; + context.mozImageSmoothingEnabled = bool; + context.msImageSmoothingEnabled = bool; + } + }; + + CRp.getImgSmoothing = function (context) { + if (context.imageSmoothingEnabled != null) { + return context.imageSmoothingEnabled; + } else { + return context.webkitImageSmoothingEnabled || context.mozImageSmoothingEnabled || context.msImageSmoothingEnabled; + } + }; + + CRp.makeOffscreenCanvas = function (width, height) { + var canvas; + + if ((typeof OffscreenCanvas === "undefined" ? "undefined" : _typeof(OffscreenCanvas)) !== ("undefined" )) { + canvas = new OffscreenCanvas(width, height); + } else { + canvas = document.createElement('canvas'); // eslint-disable-line no-undef + + canvas.width = width; + canvas.height = height; + } + + return canvas; + }; + + [CRp$a, CRp$9, CRp$8, CRp$7, CRp$6, CRp$5, CRp$4, CRp$3, CRp$2, CRp$1].forEach(function (props) { + extend(CRp, props); + }); + + var renderer = [{ + name: 'null', + impl: NullRenderer + }, { + name: 'base', + impl: BR + }, { + name: 'canvas', + impl: CR + }]; + + var incExts = [{ + type: 'layout', + extensions: layout + }, { + type: 'renderer', + extensions: renderer + }]; + + var extensions = {}; // registered modules for extensions, indexed by name + + var modules = {}; + + function setExtension(type, name, registrant) { + var ext = registrant; + + var overrideErr = function overrideErr(field) { + warn('Can not register `' + name + '` for `' + type + '` since `' + field + '` already exists in the prototype and can not be overridden'); + }; + + if (type === 'core') { + if (Core.prototype[name]) { + return overrideErr(name); + } else { + Core.prototype[name] = registrant; + } + } else if (type === 'collection') { + if (Collection.prototype[name]) { + return overrideErr(name); + } else { + Collection.prototype[name] = registrant; + } + } else if (type === 'layout') { + // fill in missing layout functions in the prototype + var Layout = function Layout(options) { + this.options = options; + registrant.call(this, options); // make sure layout has _private for use w/ std apis like .on() + + if (!plainObject(this._private)) { + this._private = {}; + } + + this._private.cy = options.cy; + this._private.listeners = []; + this.createEmitter(); + }; + + var layoutProto = Layout.prototype = Object.create(registrant.prototype); + var optLayoutFns = []; + + for (var i = 0; i < optLayoutFns.length; i++) { + var fnName = optLayoutFns[i]; + + layoutProto[fnName] = layoutProto[fnName] || function () { + return this; + }; + } // either .start() or .run() is defined, so autogen the other + + + if (layoutProto.start && !layoutProto.run) { + layoutProto.run = function () { + this.start(); + return this; + }; + } else if (!layoutProto.start && layoutProto.run) { + layoutProto.start = function () { + this.run(); + return this; + }; + } + + var regStop = registrant.prototype.stop; + + layoutProto.stop = function () { + var opts = this.options; + + if (opts && opts.animate) { + var anis = this.animations; + + if (anis) { + for (var _i = 0; _i < anis.length; _i++) { + anis[_i].stop(); + } + } + } + + if (regStop) { + regStop.call(this); + } else { + this.emit('layoutstop'); + } + + return this; + }; + + if (!layoutProto.destroy) { + layoutProto.destroy = function () { + return this; + }; + } + + layoutProto.cy = function () { + return this._private.cy; + }; + + var getCy = function getCy(layout) { + return layout._private.cy; + }; + + var emitterOpts = { + addEventFields: function addEventFields(layout, evt) { + evt.layout = layout; + evt.cy = getCy(layout); + evt.target = layout; + }, + bubble: function bubble() { + return true; + }, + parent: function parent(layout) { + return getCy(layout); + } + }; + extend(layoutProto, { + createEmitter: function createEmitter() { + this._private.emitter = new Emitter(emitterOpts, this); + return this; + }, + emitter: function emitter() { + return this._private.emitter; + }, + on: function on(evt, cb) { + this.emitter().on(evt, cb); + return this; + }, + one: function one(evt, cb) { + this.emitter().one(evt, cb); + return this; + }, + once: function once(evt, cb) { + this.emitter().one(evt, cb); + return this; + }, + removeListener: function removeListener(evt, cb) { + this.emitter().removeListener(evt, cb); + return this; + }, + removeAllListeners: function removeAllListeners() { + this.emitter().removeAllListeners(); + return this; + }, + emit: function emit(evt, params) { + this.emitter().emit(evt, params); + return this; + } + }); + define.eventAliasesOn(layoutProto); + ext = Layout; // replace with our wrapped layout + } else if (type === 'renderer' && name !== 'null' && name !== 'base') { + // user registered renderers inherit from base + var BaseRenderer = getExtension('renderer', 'base'); + var bProto = BaseRenderer.prototype; + var RegistrantRenderer = registrant; + var rProto = registrant.prototype; + + var Renderer = function Renderer() { + BaseRenderer.apply(this, arguments); + RegistrantRenderer.apply(this, arguments); + }; + + var proto = Renderer.prototype; + + for (var pName in bProto) { + var pVal = bProto[pName]; + var existsInR = rProto[pName] != null; + + if (existsInR) { + return overrideErr(pName); + } + + proto[pName] = pVal; // take impl from base + } + + for (var _pName in rProto) { + proto[_pName] = rProto[_pName]; // take impl from registrant + } + + bProto.clientFunctions.forEach(function (name) { + proto[name] = proto[name] || function () { + error('Renderer does not implement `renderer.' + name + '()` on its prototype'); + }; + }); + ext = Renderer; + } else if (type === '__proto__' || type === 'constructor' || type === 'prototype') { + // to avoid potential prototype pollution + return error(type + ' is an illegal type to be registered, possibly lead to prototype pollutions'); + } + + return setMap({ + map: extensions, + keys: [type, name], + value: ext + }); + } + + function getExtension(type, name) { + return getMap({ + map: extensions, + keys: [type, name] + }); + } + + function setModule(type, name, moduleType, moduleName, registrant) { + return setMap({ + map: modules, + keys: [type, name, moduleType, moduleName], + value: registrant + }); + } + + function getModule(type, name, moduleType, moduleName) { + return getMap({ + map: modules, + keys: [type, name, moduleType, moduleName] + }); + } + + var extension = function extension() { + // e.g. extension('renderer', 'svg') + if (arguments.length === 2) { + return getExtension.apply(null, arguments); + } // e.g. extension('renderer', 'svg', { ... }) + else if (arguments.length === 3) { + return setExtension.apply(null, arguments); + } // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse') + else if (arguments.length === 4) { + return getModule.apply(null, arguments); + } // e.g. extension('renderer', 'svg', 'nodeShape', 'ellipse', { ... }) + else if (arguments.length === 5) { + return setModule.apply(null, arguments); + } else { + error('Invalid extension access syntax'); + } + }; // allows a core instance to access extensions internally + + + Core.prototype.extension = extension; // included extensions + + incExts.forEach(function (group) { + group.extensions.forEach(function (ext) { + setExtension(group.type, ext.name, ext.impl); + }); + }); + + // (useful for init) + + var Stylesheet = function Stylesheet() { + if (!(this instanceof Stylesheet)) { + return new Stylesheet(); + } + + this.length = 0; + }; + + var sheetfn = Stylesheet.prototype; + + sheetfn.instanceString = function () { + return 'stylesheet'; + }; // just store the selector to be parsed later + + + sheetfn.selector = function (selector) { + var i = this.length++; + this[i] = { + selector: selector, + properties: [] + }; + return this; // chaining + }; // just store the property to be parsed later + + + sheetfn.css = function (name, value) { + var i = this.length - 1; + + if (string(name)) { + this[i].properties.push({ + name: name, + value: value + }); + } else if (plainObject(name)) { + var map = name; + var propNames = Object.keys(map); + + for (var j = 0; j < propNames.length; j++) { + var key = propNames[j]; + var mapVal = map[key]; + + if (mapVal == null) { + continue; + } + + var prop = Style.properties[key] || Style.properties[dash2camel(key)]; + + if (prop == null) { + continue; + } + + var _name = prop.name; + var _value = mapVal; + this[i].properties.push({ + name: _name, + value: _value + }); + } + } + + return this; // chaining + }; + + sheetfn.style = sheetfn.css; // generate a real style object from the dummy stylesheet + + sheetfn.generateStyle = function (cy) { + var style = new Style(cy); + return this.appendToStyle(style); + }; // append a dummy stylesheet object on a real style object + + + sheetfn.appendToStyle = function (style) { + for (var i = 0; i < this.length; i++) { + var context = this[i]; + var selector = context.selector; + var props = context.properties; + style.selector(selector); // apply selector + + for (var j = 0; j < props.length; j++) { + var prop = props[j]; + style.css(prop.name, prop.value); // apply property + } + } + + return style; + }; + + var version = "3.26.0"; + + var cytoscape = function cytoscape(options) { + // if no options specified, use default + if (options === undefined) { + options = {}; + } // create instance + + + if (plainObject(options)) { + return new Core(options); + } // allow for registration of extensions + else if (string(options)) { + return extension.apply(extension, arguments); + } + }; // e.g. cytoscape.use( require('cytoscape-foo'), bar ) + + + cytoscape.use = function (ext) { + var args = Array.prototype.slice.call(arguments, 1); // args to pass to ext + + args.unshift(cytoscape); // cytoscape is first arg to ext + + ext.apply(null, args); + return this; + }; + + cytoscape.warnings = function (bool) { + return warnings(bool); + }; // replaced by build system + + + cytoscape.version = version; // expose public apis (mostly for extensions) + + cytoscape.stylesheet = cytoscape.Stylesheet = Stylesheet; + + return cytoscape; + +})); + + +/***/ }), + +/***/ 82241: +/***/ (function(module) { + +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(); + else {} +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __nested_webpack_require_543__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __nested_webpack_require_543__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __nested_webpack_require_543__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __nested_webpack_require_543__.c = installedModules; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __nested_webpack_require_543__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __nested_webpack_require_543__.d = function(exports, name, getter) { +/******/ if(!__nested_webpack_require_543__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __nested_webpack_require_543__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __nested_webpack_require_543__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __nested_webpack_require_543__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __nested_webpack_require_543__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __nested_webpack_require_543__(__nested_webpack_require_543__.s = 26); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function LayoutConstants() {} + +/** + * Layout Quality: 0:draft, 1:default, 2:proof + */ +LayoutConstants.QUALITY = 1; + +/** + * Default parameters + */ +LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false; +LayoutConstants.DEFAULT_INCREMENTAL = false; +LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true; +LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false; +LayoutConstants.DEFAULT_ANIMATION_PERIOD = 50; +LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false; + +// ----------------------------------------------------------------------------- +// Section: General other constants +// ----------------------------------------------------------------------------- +/* + * Margins of a graph to be applied on bouding rectangle of its contents. We + * assume margins on all four sides to be uniform. + */ +LayoutConstants.DEFAULT_GRAPH_MARGIN = 15; + +/* + * Whether to consider labels in node dimensions or not + */ +LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false; + +/* + * Default dimension of a non-compound node. + */ +LayoutConstants.SIMPLE_NODE_SIZE = 40; + +/* + * Default dimension of a non-compound node. + */ +LayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2; + +/* + * Empty compound node size. When a compound node is empty, its both + * dimensions should be of this value. + */ +LayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40; + +/* + * Minimum length that an edge should take during layout + */ +LayoutConstants.MIN_EDGE_LENGTH = 1; + +/* + * World boundaries that layout operates on + */ +LayoutConstants.WORLD_BOUNDARY = 1000000; + +/* + * World boundaries that random positioning can be performed with + */ +LayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1000; + +/* + * Coordinates of the world center + */ +LayoutConstants.WORLD_CENTER_X = 1200; +LayoutConstants.WORLD_CENTER_Y = 900; + +module.exports = LayoutConstants; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __nested_webpack_require_4947__) { + +"use strict"; + + +var LGraphObject = __nested_webpack_require_4947__(2); +var IGeometry = __nested_webpack_require_4947__(8); +var IMath = __nested_webpack_require_4947__(9); + +function LEdge(source, target, vEdge) { + LGraphObject.call(this, vEdge); + + this.isOverlapingSourceAndTarget = false; + this.vGraphObject = vEdge; + this.bendpoints = []; + this.source = source; + this.target = target; +} + +LEdge.prototype = Object.create(LGraphObject.prototype); + +for (var prop in LGraphObject) { + LEdge[prop] = LGraphObject[prop]; +} + +LEdge.prototype.getSource = function () { + return this.source; +}; + +LEdge.prototype.getTarget = function () { + return this.target; +}; + +LEdge.prototype.isInterGraph = function () { + return this.isInterGraph; +}; + +LEdge.prototype.getLength = function () { + return this.length; +}; + +LEdge.prototype.isOverlapingSourceAndTarget = function () { + return this.isOverlapingSourceAndTarget; +}; + +LEdge.prototype.getBendpoints = function () { + return this.bendpoints; +}; + +LEdge.prototype.getLca = function () { + return this.lca; +}; + +LEdge.prototype.getSourceInLca = function () { + return this.sourceInLca; +}; + +LEdge.prototype.getTargetInLca = function () { + return this.targetInLca; +}; + +LEdge.prototype.getOtherEnd = function (node) { + if (this.source === node) { + return this.target; + } else if (this.target === node) { + return this.source; + } else { + throw "Node is not incident with this edge"; + } +}; + +LEdge.prototype.getOtherEndInGraph = function (node, graph) { + var otherEnd = this.getOtherEnd(node); + var root = graph.getGraphManager().getRoot(); + + while (true) { + if (otherEnd.getOwner() == graph) { + return otherEnd; + } + + if (otherEnd.getOwner() == root) { + break; + } + + otherEnd = otherEnd.getOwner().getParent(); + } + + return null; +}; + +LEdge.prototype.updateLength = function () { + var clipPointCoordinates = new Array(4); + + this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates); + + if (!this.isOverlapingSourceAndTarget) { + this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2]; + this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3]; + + if (Math.abs(this.lengthX) < 1.0) { + this.lengthX = IMath.sign(this.lengthX); + } + + if (Math.abs(this.lengthY) < 1.0) { + this.lengthY = IMath.sign(this.lengthY); + } + + this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY); + } +}; + +LEdge.prototype.updateLengthSimple = function () { + this.lengthX = this.target.getCenterX() - this.source.getCenterX(); + this.lengthY = this.target.getCenterY() - this.source.getCenterY(); + + if (Math.abs(this.lengthX) < 1.0) { + this.lengthX = IMath.sign(this.lengthX); + } + + if (Math.abs(this.lengthY) < 1.0) { + this.lengthY = IMath.sign(this.lengthY); + } + + this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY); +}; + +module.exports = LEdge; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function LGraphObject(vGraphObject) { + this.vGraphObject = vGraphObject; +} + +module.exports = LGraphObject; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __nested_webpack_require_8167__) { + +"use strict"; + + +var LGraphObject = __nested_webpack_require_8167__(2); +var Integer = __nested_webpack_require_8167__(10); +var RectangleD = __nested_webpack_require_8167__(13); +var LayoutConstants = __nested_webpack_require_8167__(0); +var RandomSeed = __nested_webpack_require_8167__(16); +var PointD = __nested_webpack_require_8167__(4); + +function LNode(gm, loc, size, vNode) { + //Alternative constructor 1 : LNode(LGraphManager gm, Point loc, Dimension size, Object vNode) + if (size == null && vNode == null) { + vNode = loc; + } + + LGraphObject.call(this, vNode); + + //Alternative constructor 2 : LNode(Layout layout, Object vNode) + if (gm.graphManager != null) gm = gm.graphManager; + + this.estimatedSize = Integer.MIN_VALUE; + this.inclusionTreeDepth = Integer.MAX_VALUE; + this.vGraphObject = vNode; + this.edges = []; + this.graphManager = gm; + + if (size != null && loc != null) this.rect = new RectangleD(loc.x, loc.y, size.width, size.height);else this.rect = new RectangleD(); +} + +LNode.prototype = Object.create(LGraphObject.prototype); +for (var prop in LGraphObject) { + LNode[prop] = LGraphObject[prop]; +} + +LNode.prototype.getEdges = function () { + return this.edges; +}; + +LNode.prototype.getChild = function () { + return this.child; +}; + +LNode.prototype.getOwner = function () { + // if (this.owner != null) { + // if (!(this.owner == null || this.owner.getNodes().indexOf(this) > -1)) { + // throw "assert failed"; + // } + // } + + return this.owner; +}; + +LNode.prototype.getWidth = function () { + return this.rect.width; +}; + +LNode.prototype.setWidth = function (width) { + this.rect.width = width; +}; + +LNode.prototype.getHeight = function () { + return this.rect.height; +}; + +LNode.prototype.setHeight = function (height) { + this.rect.height = height; +}; + +LNode.prototype.getCenterX = function () { + return this.rect.x + this.rect.width / 2; +}; + +LNode.prototype.getCenterY = function () { + return this.rect.y + this.rect.height / 2; +}; + +LNode.prototype.getCenter = function () { + return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2); +}; + +LNode.prototype.getLocation = function () { + return new PointD(this.rect.x, this.rect.y); +}; + +LNode.prototype.getRect = function () { + return this.rect; +}; + +LNode.prototype.getDiagonal = function () { + return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height); +}; + +/** + * This method returns half the diagonal length of this node. + */ +LNode.prototype.getHalfTheDiagonal = function () { + return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2; +}; + +LNode.prototype.setRect = function (upperLeft, dimension) { + this.rect.x = upperLeft.x; + this.rect.y = upperLeft.y; + this.rect.width = dimension.width; + this.rect.height = dimension.height; +}; + +LNode.prototype.setCenter = function (cx, cy) { + this.rect.x = cx - this.rect.width / 2; + this.rect.y = cy - this.rect.height / 2; +}; + +LNode.prototype.setLocation = function (x, y) { + this.rect.x = x; + this.rect.y = y; +}; + +LNode.prototype.moveBy = function (dx, dy) { + this.rect.x += dx; + this.rect.y += dy; +}; + +LNode.prototype.getEdgeListToNode = function (to) { + var edgeList = []; + var edge; + var self = this; + + self.edges.forEach(function (edge) { + + if (edge.target == to) { + if (edge.source != self) throw "Incorrect edge source!"; + + edgeList.push(edge); + } + }); + + return edgeList; +}; + +LNode.prototype.getEdgesBetween = function (other) { + var edgeList = []; + var edge; + + var self = this; + self.edges.forEach(function (edge) { + + if (!(edge.source == self || edge.target == self)) throw "Incorrect edge source and/or target"; + + if (edge.target == other || edge.source == other) { + edgeList.push(edge); + } + }); + + return edgeList; +}; + +LNode.prototype.getNeighborsList = function () { + var neighbors = new Set(); + + var self = this; + self.edges.forEach(function (edge) { + + if (edge.source == self) { + neighbors.add(edge.target); + } else { + if (edge.target != self) { + throw "Incorrect incidency!"; + } + + neighbors.add(edge.source); + } + }); + + return neighbors; +}; + +LNode.prototype.withChildren = function () { + var withNeighborsList = new Set(); + var childNode; + var children; + + withNeighborsList.add(this); + + if (this.child != null) { + var nodes = this.child.getNodes(); + for (var i = 0; i < nodes.length; i++) { + childNode = nodes[i]; + children = childNode.withChildren(); + children.forEach(function (node) { + withNeighborsList.add(node); + }); + } + } + + return withNeighborsList; +}; + +LNode.prototype.getNoOfChildren = function () { + var noOfChildren = 0; + var childNode; + + if (this.child == null) { + noOfChildren = 1; + } else { + var nodes = this.child.getNodes(); + for (var i = 0; i < nodes.length; i++) { + childNode = nodes[i]; + + noOfChildren += childNode.getNoOfChildren(); + } + } + + if (noOfChildren == 0) { + noOfChildren = 1; + } + return noOfChildren; +}; + +LNode.prototype.getEstimatedSize = function () { + if (this.estimatedSize == Integer.MIN_VALUE) { + throw "assert failed"; + } + return this.estimatedSize; +}; + +LNode.prototype.calcEstimatedSize = function () { + if (this.child == null) { + return this.estimatedSize = (this.rect.width + this.rect.height) / 2; + } else { + this.estimatedSize = this.child.calcEstimatedSize(); + this.rect.width = this.estimatedSize; + this.rect.height = this.estimatedSize; + + return this.estimatedSize; + } +}; + +LNode.prototype.scatter = function () { + var randomCenterX; + var randomCenterY; + + var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY; + var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY; + randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX; + + var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY; + var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY; + randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY; + + this.rect.x = randomCenterX; + this.rect.y = randomCenterY; +}; + +LNode.prototype.updateBounds = function () { + if (this.getChild() == null) { + throw "assert failed"; + } + if (this.getChild().getNodes().length != 0) { + // wrap the children nodes by re-arranging the boundaries + var childGraph = this.getChild(); + childGraph.updateBounds(true); + + this.rect.x = childGraph.getLeft(); + this.rect.y = childGraph.getTop(); + + this.setWidth(childGraph.getRight() - childGraph.getLeft()); + this.setHeight(childGraph.getBottom() - childGraph.getTop()); + + // Update compound bounds considering its label properties + if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) { + + var width = childGraph.getRight() - childGraph.getLeft(); + var height = childGraph.getBottom() - childGraph.getTop(); + + if (this.labelWidth > width) { + this.rect.x -= (this.labelWidth - width) / 2; + this.setWidth(this.labelWidth); + } + + if (this.labelHeight > height) { + if (this.labelPos == "center") { + this.rect.y -= (this.labelHeight - height) / 2; + } else if (this.labelPos == "top") { + this.rect.y -= this.labelHeight - height; + } + this.setHeight(this.labelHeight); + } + } + } +}; + +LNode.prototype.getInclusionTreeDepth = function () { + if (this.inclusionTreeDepth == Integer.MAX_VALUE) { + throw "assert failed"; + } + return this.inclusionTreeDepth; +}; + +LNode.prototype.transform = function (trans) { + var left = this.rect.x; + + if (left > LayoutConstants.WORLD_BOUNDARY) { + left = LayoutConstants.WORLD_BOUNDARY; + } else if (left < -LayoutConstants.WORLD_BOUNDARY) { + left = -LayoutConstants.WORLD_BOUNDARY; + } + + var top = this.rect.y; + + if (top > LayoutConstants.WORLD_BOUNDARY) { + top = LayoutConstants.WORLD_BOUNDARY; + } else if (top < -LayoutConstants.WORLD_BOUNDARY) { + top = -LayoutConstants.WORLD_BOUNDARY; + } + + var leftTop = new PointD(left, top); + var vLeftTop = trans.inverseTransformPoint(leftTop); + + this.setLocation(vLeftTop.x, vLeftTop.y); +}; + +LNode.prototype.getLeft = function () { + return this.rect.x; +}; + +LNode.prototype.getRight = function () { + return this.rect.x + this.rect.width; +}; + +LNode.prototype.getTop = function () { + return this.rect.y; +}; + +LNode.prototype.getBottom = function () { + return this.rect.y + this.rect.height; +}; + +LNode.prototype.getParent = function () { + if (this.owner == null) { + return null; + } + + return this.owner.getParent(); +}; + +module.exports = LNode; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function PointD(x, y) { + if (x == null && y == null) { + this.x = 0; + this.y = 0; + } else { + this.x = x; + this.y = y; + } +} + +PointD.prototype.getX = function () { + return this.x; +}; + +PointD.prototype.getY = function () { + return this.y; +}; + +PointD.prototype.setX = function (x) { + this.x = x; +}; + +PointD.prototype.setY = function (y) { + this.y = y; +}; + +PointD.prototype.getDifference = function (pt) { + return new DimensionD(this.x - pt.x, this.y - pt.y); +}; + +PointD.prototype.getCopy = function () { + return new PointD(this.x, this.y); +}; + +PointD.prototype.translate = function (dim) { + this.x += dim.width; + this.y += dim.height; + return this; +}; + +module.exports = PointD; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __nested_webpack_require_17549__) { + +"use strict"; + + +var LGraphObject = __nested_webpack_require_17549__(2); +var Integer = __nested_webpack_require_17549__(10); +var LayoutConstants = __nested_webpack_require_17549__(0); +var LGraphManager = __nested_webpack_require_17549__(6); +var LNode = __nested_webpack_require_17549__(3); +var LEdge = __nested_webpack_require_17549__(1); +var RectangleD = __nested_webpack_require_17549__(13); +var Point = __nested_webpack_require_17549__(12); +var LinkedList = __nested_webpack_require_17549__(11); + +function LGraph(parent, obj2, vGraph) { + LGraphObject.call(this, vGraph); + this.estimatedSize = Integer.MIN_VALUE; + this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN; + this.edges = []; + this.nodes = []; + this.isConnected = false; + this.parent = parent; + + if (obj2 != null && obj2 instanceof LGraphManager) { + this.graphManager = obj2; + } else if (obj2 != null && obj2 instanceof Layout) { + this.graphManager = obj2.graphManager; + } +} + +LGraph.prototype = Object.create(LGraphObject.prototype); +for (var prop in LGraphObject) { + LGraph[prop] = LGraphObject[prop]; +} + +LGraph.prototype.getNodes = function () { + return this.nodes; +}; + +LGraph.prototype.getEdges = function () { + return this.edges; +}; + +LGraph.prototype.getGraphManager = function () { + return this.graphManager; +}; + +LGraph.prototype.getParent = function () { + return this.parent; +}; + +LGraph.prototype.getLeft = function () { + return this.left; +}; + +LGraph.prototype.getRight = function () { + return this.right; +}; + +LGraph.prototype.getTop = function () { + return this.top; +}; + +LGraph.prototype.getBottom = function () { + return this.bottom; +}; + +LGraph.prototype.isConnected = function () { + return this.isConnected; +}; + +LGraph.prototype.add = function (obj1, sourceNode, targetNode) { + if (sourceNode == null && targetNode == null) { + var newNode = obj1; + if (this.graphManager == null) { + throw "Graph has no graph mgr!"; + } + if (this.getNodes().indexOf(newNode) > -1) { + throw "Node already in graph!"; + } + newNode.owner = this; + this.getNodes().push(newNode); + + return newNode; + } else { + var newEdge = obj1; + if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) { + throw "Source or target not in graph!"; + } + + if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) { + throw "Both owners must be this graph!"; + } + + if (sourceNode.owner != targetNode.owner) { + return null; + } + + // set source and target + newEdge.source = sourceNode; + newEdge.target = targetNode; + + // set as intra-graph edge + newEdge.isInterGraph = false; + + // add to graph edge list + this.getEdges().push(newEdge); + + // add to incidency lists + sourceNode.edges.push(newEdge); + + if (targetNode != sourceNode) { + targetNode.edges.push(newEdge); + } + + return newEdge; + } +}; + +LGraph.prototype.remove = function (obj) { + var node = obj; + if (obj instanceof LNode) { + if (node == null) { + throw "Node is null!"; + } + if (!(node.owner != null && node.owner == this)) { + throw "Owner graph is invalid!"; + } + if (this.graphManager == null) { + throw "Owner graph manager is invalid!"; + } + // remove incident edges first (make a copy to do it safely) + var edgesToBeRemoved = node.edges.slice(); + var edge; + var s = edgesToBeRemoved.length; + for (var i = 0; i < s; i++) { + edge = edgesToBeRemoved[i]; + + if (edge.isInterGraph) { + this.graphManager.remove(edge); + } else { + edge.source.owner.remove(edge); + } + } + + // now the node itself + var index = this.nodes.indexOf(node); + if (index == -1) { + throw "Node not in owner node list!"; + } + + this.nodes.splice(index, 1); + } else if (obj instanceof LEdge) { + var edge = obj; + if (edge == null) { + throw "Edge is null!"; + } + if (!(edge.source != null && edge.target != null)) { + throw "Source and/or target is null!"; + } + if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) { + throw "Source and/or target owner is invalid!"; + } + + var sourceIndex = edge.source.edges.indexOf(edge); + var targetIndex = edge.target.edges.indexOf(edge); + if (!(sourceIndex > -1 && targetIndex > -1)) { + throw "Source and/or target doesn't know this edge!"; + } + + edge.source.edges.splice(sourceIndex, 1); + + if (edge.target != edge.source) { + edge.target.edges.splice(targetIndex, 1); + } + + var index = edge.source.owner.getEdges().indexOf(edge); + if (index == -1) { + throw "Not in owner's edge list!"; + } + + edge.source.owner.getEdges().splice(index, 1); + } +}; + +LGraph.prototype.updateLeftTop = function () { + var top = Integer.MAX_VALUE; + var left = Integer.MAX_VALUE; + var nodeTop; + var nodeLeft; + var margin; + + var nodes = this.getNodes(); + var s = nodes.length; + + for (var i = 0; i < s; i++) { + var lNode = nodes[i]; + nodeTop = lNode.getTop(); + nodeLeft = lNode.getLeft(); + + if (top > nodeTop) { + top = nodeTop; + } + + if (left > nodeLeft) { + left = nodeLeft; + } + } + + // Do we have any nodes in this graph? + if (top == Integer.MAX_VALUE) { + return null; + } + + if (nodes[0].getParent().paddingLeft != undefined) { + margin = nodes[0].getParent().paddingLeft; + } else { + margin = this.margin; + } + + this.left = left - margin; + this.top = top - margin; + + // Apply the margins and return the result + return new Point(this.left, this.top); +}; + +LGraph.prototype.updateBounds = function (recursive) { + // calculate bounds + var left = Integer.MAX_VALUE; + var right = -Integer.MAX_VALUE; + var top = Integer.MAX_VALUE; + var bottom = -Integer.MAX_VALUE; + var nodeLeft; + var nodeRight; + var nodeTop; + var nodeBottom; + var margin; + + var nodes = this.nodes; + var s = nodes.length; + for (var i = 0; i < s; i++) { + var lNode = nodes[i]; + + if (recursive && lNode.child != null) { + lNode.updateBounds(); + } + nodeLeft = lNode.getLeft(); + nodeRight = lNode.getRight(); + nodeTop = lNode.getTop(); + nodeBottom = lNode.getBottom(); + + if (left > nodeLeft) { + left = nodeLeft; + } + + if (right < nodeRight) { + right = nodeRight; + } + + if (top > nodeTop) { + top = nodeTop; + } + + if (bottom < nodeBottom) { + bottom = nodeBottom; + } + } + + var boundingRect = new RectangleD(left, top, right - left, bottom - top); + if (left == Integer.MAX_VALUE) { + this.left = this.parent.getLeft(); + this.right = this.parent.getRight(); + this.top = this.parent.getTop(); + this.bottom = this.parent.getBottom(); + } + + if (nodes[0].getParent().paddingLeft != undefined) { + margin = nodes[0].getParent().paddingLeft; + } else { + margin = this.margin; + } + + this.left = boundingRect.x - margin; + this.right = boundingRect.x + boundingRect.width + margin; + this.top = boundingRect.y - margin; + this.bottom = boundingRect.y + boundingRect.height + margin; +}; + +LGraph.calculateBounds = function (nodes) { + var left = Integer.MAX_VALUE; + var right = -Integer.MAX_VALUE; + var top = Integer.MAX_VALUE; + var bottom = -Integer.MAX_VALUE; + var nodeLeft; + var nodeRight; + var nodeTop; + var nodeBottom; + + var s = nodes.length; + + for (var i = 0; i < s; i++) { + var lNode = nodes[i]; + nodeLeft = lNode.getLeft(); + nodeRight = lNode.getRight(); + nodeTop = lNode.getTop(); + nodeBottom = lNode.getBottom(); + + if (left > nodeLeft) { + left = nodeLeft; + } + + if (right < nodeRight) { + right = nodeRight; + } + + if (top > nodeTop) { + top = nodeTop; + } + + if (bottom < nodeBottom) { + bottom = nodeBottom; + } + } + + var boundingRect = new RectangleD(left, top, right - left, bottom - top); + + return boundingRect; +}; + +LGraph.prototype.getInclusionTreeDepth = function () { + if (this == this.graphManager.getRoot()) { + return 1; + } else { + return this.parent.getInclusionTreeDepth(); + } +}; + +LGraph.prototype.getEstimatedSize = function () { + if (this.estimatedSize == Integer.MIN_VALUE) { + throw "assert failed"; + } + return this.estimatedSize; +}; + +LGraph.prototype.calcEstimatedSize = function () { + var size = 0; + var nodes = this.nodes; + var s = nodes.length; + + for (var i = 0; i < s; i++) { + var lNode = nodes[i]; + size += lNode.calcEstimatedSize(); + } + + if (size == 0) { + this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE; + } else { + this.estimatedSize = size / Math.sqrt(this.nodes.length); + } + + return this.estimatedSize; +}; + +LGraph.prototype.updateConnected = function () { + var self = this; + if (this.nodes.length == 0) { + this.isConnected = true; + return; + } + + var queue = new LinkedList(); + var visited = new Set(); + var currentNode = this.nodes[0]; + var neighborEdges; + var currentNeighbor; + var childrenOfNode = currentNode.withChildren(); + childrenOfNode.forEach(function (node) { + queue.push(node); + visited.add(node); + }); + + while (queue.length !== 0) { + currentNode = queue.shift(); + + // Traverse all neighbors of this node + neighborEdges = currentNode.getEdges(); + var size = neighborEdges.length; + for (var i = 0; i < size; i++) { + var neighborEdge = neighborEdges[i]; + currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this); + + // Add unvisited neighbors to the list to visit + if (currentNeighbor != null && !visited.has(currentNeighbor)) { + var childrenOfNeighbor = currentNeighbor.withChildren(); + + childrenOfNeighbor.forEach(function (node) { + queue.push(node); + visited.add(node); + }); + } + } + } + + this.isConnected = false; + + if (visited.size >= this.nodes.length) { + var noOfVisitedInThisGraph = 0; + + visited.forEach(function (visitedNode) { + if (visitedNode.owner == self) { + noOfVisitedInThisGraph++; + } + }); + + if (noOfVisitedInThisGraph == this.nodes.length) { + this.isConnected = true; + } + } +}; + +module.exports = LGraph; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __nested_webpack_require_27617__) { + +"use strict"; + + +var LGraph; +var LEdge = __nested_webpack_require_27617__(1); + +function LGraphManager(layout) { + LGraph = __nested_webpack_require_27617__(5); // It may be better to initilize this out of this function but it gives an error (Right-hand side of 'instanceof' is not callable) now. + this.layout = layout; + + this.graphs = []; + this.edges = []; +} + +LGraphManager.prototype.addRoot = function () { + var ngraph = this.layout.newGraph(); + var nnode = this.layout.newNode(null); + var root = this.add(ngraph, nnode); + this.setRootGraph(root); + return this.rootGraph; +}; + +LGraphManager.prototype.add = function (newGraph, parentNode, newEdge, sourceNode, targetNode) { + //there are just 2 parameters are passed then it adds an LGraph else it adds an LEdge + if (newEdge == null && sourceNode == null && targetNode == null) { + if (newGraph == null) { + throw "Graph is null!"; + } + if (parentNode == null) { + throw "Parent node is null!"; + } + if (this.graphs.indexOf(newGraph) > -1) { + throw "Graph already in this graph mgr!"; + } + + this.graphs.push(newGraph); + + if (newGraph.parent != null) { + throw "Already has a parent!"; + } + if (parentNode.child != null) { + throw "Already has a child!"; + } + + newGraph.parent = parentNode; + parentNode.child = newGraph; + + return newGraph; + } else { + //change the order of the parameters + targetNode = newEdge; + sourceNode = parentNode; + newEdge = newGraph; + var sourceGraph = sourceNode.getOwner(); + var targetGraph = targetNode.getOwner(); + + if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) { + throw "Source not in this graph mgr!"; + } + if (!(targetGraph != null && targetGraph.getGraphManager() == this)) { + throw "Target not in this graph mgr!"; + } + + if (sourceGraph == targetGraph) { + newEdge.isInterGraph = false; + return sourceGraph.add(newEdge, sourceNode, targetNode); + } else { + newEdge.isInterGraph = true; + + // set source and target + newEdge.source = sourceNode; + newEdge.target = targetNode; + + // add edge to inter-graph edge list + if (this.edges.indexOf(newEdge) > -1) { + throw "Edge already in inter-graph edge list!"; + } + + this.edges.push(newEdge); + + // add edge to source and target incidency lists + if (!(newEdge.source != null && newEdge.target != null)) { + throw "Edge source and/or target is null!"; + } + + if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) { + throw "Edge already in source and/or target incidency list!"; + } + + newEdge.source.edges.push(newEdge); + newEdge.target.edges.push(newEdge); + + return newEdge; + } + } +}; + +LGraphManager.prototype.remove = function (lObj) { + if (lObj instanceof LGraph) { + var graph = lObj; + if (graph.getGraphManager() != this) { + throw "Graph not in this graph mgr"; + } + if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) { + throw "Invalid parent node!"; + } + + // first the edges (make a copy to do it safely) + var edgesToBeRemoved = []; + + edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges()); + + var edge; + var s = edgesToBeRemoved.length; + for (var i = 0; i < s; i++) { + edge = edgesToBeRemoved[i]; + graph.remove(edge); + } + + // then the nodes (make a copy to do it safely) + var nodesToBeRemoved = []; + + nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes()); + + var node; + s = nodesToBeRemoved.length; + for (var i = 0; i < s; i++) { + node = nodesToBeRemoved[i]; + graph.remove(node); + } + + // check if graph is the root + if (graph == this.rootGraph) { + this.setRootGraph(null); + } + + // now remove the graph itself + var index = this.graphs.indexOf(graph); + this.graphs.splice(index, 1); + + // also reset the parent of the graph + graph.parent = null; + } else if (lObj instanceof LEdge) { + edge = lObj; + if (edge == null) { + throw "Edge is null!"; + } + if (!edge.isInterGraph) { + throw "Not an inter-graph edge!"; + } + if (!(edge.source != null && edge.target != null)) { + throw "Source and/or target is null!"; + } + + // remove edge from source and target nodes' incidency lists + + if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) { + throw "Source and/or target doesn't know this edge!"; + } + + var index = edge.source.edges.indexOf(edge); + edge.source.edges.splice(index, 1); + index = edge.target.edges.indexOf(edge); + edge.target.edges.splice(index, 1); + + // remove edge from owner graph manager's inter-graph edge list + + if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) { + throw "Edge owner graph or owner graph manager is null!"; + } + if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) { + throw "Not in owner graph manager's edge list!"; + } + + var index = edge.source.owner.getGraphManager().edges.indexOf(edge); + edge.source.owner.getGraphManager().edges.splice(index, 1); + } +}; + +LGraphManager.prototype.updateBounds = function () { + this.rootGraph.updateBounds(true); +}; + +LGraphManager.prototype.getGraphs = function () { + return this.graphs; +}; + +LGraphManager.prototype.getAllNodes = function () { + if (this.allNodes == null) { + var nodeList = []; + var graphs = this.getGraphs(); + var s = graphs.length; + for (var i = 0; i < s; i++) { + nodeList = nodeList.concat(graphs[i].getNodes()); + } + this.allNodes = nodeList; + } + return this.allNodes; +}; + +LGraphManager.prototype.resetAllNodes = function () { + this.allNodes = null; +}; + +LGraphManager.prototype.resetAllEdges = function () { + this.allEdges = null; +}; + +LGraphManager.prototype.resetAllNodesToApplyGravitation = function () { + this.allNodesToApplyGravitation = null; +}; + +LGraphManager.prototype.getAllEdges = function () { + if (this.allEdges == null) { + var edgeList = []; + var graphs = this.getGraphs(); + var s = graphs.length; + for (var i = 0; i < graphs.length; i++) { + edgeList = edgeList.concat(graphs[i].getEdges()); + } + + edgeList = edgeList.concat(this.edges); + + this.allEdges = edgeList; + } + return this.allEdges; +}; + +LGraphManager.prototype.getAllNodesToApplyGravitation = function () { + return this.allNodesToApplyGravitation; +}; + +LGraphManager.prototype.setAllNodesToApplyGravitation = function (nodeList) { + if (this.allNodesToApplyGravitation != null) { + throw "assert failed"; + } + + this.allNodesToApplyGravitation = nodeList; +}; + +LGraphManager.prototype.getRoot = function () { + return this.rootGraph; +}; + +LGraphManager.prototype.setRootGraph = function (graph) { + if (graph.getGraphManager() != this) { + throw "Root not in this graph mgr!"; + } + + this.rootGraph = graph; + // root graph must have a root node associated with it for convenience + if (graph.parent == null) { + graph.parent = this.layout.newNode("Root node"); + } +}; + +LGraphManager.prototype.getLayout = function () { + return this.layout; +}; + +LGraphManager.prototype.isOneAncestorOfOther = function (firstNode, secondNode) { + if (!(firstNode != null && secondNode != null)) { + throw "assert failed"; + } + + if (firstNode == secondNode) { + return true; + } + // Is second node an ancestor of the first one? + var ownerGraph = firstNode.getOwner(); + var parentNode; + + do { + parentNode = ownerGraph.getParent(); + + if (parentNode == null) { + break; + } + + if (parentNode == secondNode) { + return true; + } + + ownerGraph = parentNode.getOwner(); + if (ownerGraph == null) { + break; + } + } while (true); + // Is first node an ancestor of the second one? + ownerGraph = secondNode.getOwner(); + + do { + parentNode = ownerGraph.getParent(); + + if (parentNode == null) { + break; + } + + if (parentNode == firstNode) { + return true; + } + + ownerGraph = parentNode.getOwner(); + if (ownerGraph == null) { + break; + } + } while (true); + + return false; +}; + +LGraphManager.prototype.calcLowestCommonAncestors = function () { + var edge; + var sourceNode; + var targetNode; + var sourceAncestorGraph; + var targetAncestorGraph; + + var edges = this.getAllEdges(); + var s = edges.length; + for (var i = 0; i < s; i++) { + edge = edges[i]; + + sourceNode = edge.source; + targetNode = edge.target; + edge.lca = null; + edge.sourceInLca = sourceNode; + edge.targetInLca = targetNode; + + if (sourceNode == targetNode) { + edge.lca = sourceNode.getOwner(); + continue; + } + + sourceAncestorGraph = sourceNode.getOwner(); + + while (edge.lca == null) { + edge.targetInLca = targetNode; + targetAncestorGraph = targetNode.getOwner(); + + while (edge.lca == null) { + if (targetAncestorGraph == sourceAncestorGraph) { + edge.lca = targetAncestorGraph; + break; + } + + if (targetAncestorGraph == this.rootGraph) { + break; + } + + if (edge.lca != null) { + throw "assert failed"; + } + edge.targetInLca = targetAncestorGraph.getParent(); + targetAncestorGraph = edge.targetInLca.getOwner(); + } + + if (sourceAncestorGraph == this.rootGraph) { + break; + } + + if (edge.lca == null) { + edge.sourceInLca = sourceAncestorGraph.getParent(); + sourceAncestorGraph = edge.sourceInLca.getOwner(); + } + } + + if (edge.lca == null) { + throw "assert failed"; + } + } +}; + +LGraphManager.prototype.calcLowestCommonAncestor = function (firstNode, secondNode) { + if (firstNode == secondNode) { + return firstNode.getOwner(); + } + var firstOwnerGraph = firstNode.getOwner(); + + do { + if (firstOwnerGraph == null) { + break; + } + var secondOwnerGraph = secondNode.getOwner(); + + do { + if (secondOwnerGraph == null) { + break; + } + + if (secondOwnerGraph == firstOwnerGraph) { + return secondOwnerGraph; + } + secondOwnerGraph = secondOwnerGraph.getParent().getOwner(); + } while (true); + + firstOwnerGraph = firstOwnerGraph.getParent().getOwner(); + } while (true); + + return firstOwnerGraph; +}; + +LGraphManager.prototype.calcInclusionTreeDepths = function (graph, depth) { + if (graph == null && depth == null) { + graph = this.rootGraph; + depth = 1; + } + var node; + + var nodes = graph.getNodes(); + var s = nodes.length; + for (var i = 0; i < s; i++) { + node = nodes[i]; + node.inclusionTreeDepth = depth; + + if (node.child != null) { + this.calcInclusionTreeDepths(node.child, depth + 1); + } + } +}; + +LGraphManager.prototype.includesInvalidEdge = function () { + var edge; + + var s = this.edges.length; + for (var i = 0; i < s; i++) { + edge = this.edges[i]; + + if (this.isOneAncestorOfOther(edge.source, edge.target)) { + return true; + } + } + return false; +}; + +module.exports = LGraphManager; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __nested_webpack_require_38707__) { + +"use strict"; + + +var LayoutConstants = __nested_webpack_require_38707__(0); + +function FDLayoutConstants() {} + +//FDLayoutConstants inherits static props in LayoutConstants +for (var prop in LayoutConstants) { + FDLayoutConstants[prop] = LayoutConstants[prop]; +} + +FDLayoutConstants.MAX_ITERATIONS = 2500; + +FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50; +FDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45; +FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500.0; +FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4; +FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1.0; +FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8; +FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5; +FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true; +FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true; +FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3; +FDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33; +FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1000; +FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5000; +FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100.0; +FDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3; +FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10.0; +FDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100; +FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1; +FDLayoutConstants.MIN_EDGE_LENGTH = 1; +FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10; + +module.exports = FDLayoutConstants; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __nested_webpack_require_40298__) { + +"use strict"; + + +/** + * This class maintains a list of static geometry related utility methods. + * + * + * Copyright: i-Vis Research Group, Bilkent University, 2007 - present + */ + +var Point = __nested_webpack_require_40298__(12); + +function IGeometry() {} + +/** + * This method calculates *half* the amount in x and y directions of the two + * input rectangles needed to separate them keeping their respective + * positioning, and returns the result in the input array. An input + * separation buffer added to the amount in both directions. We assume that + * the two rectangles do intersect. + */ +IGeometry.calcSeparationAmount = function (rectA, rectB, overlapAmount, separationBuffer) { + if (!rectA.intersects(rectB)) { + throw "assert failed"; + } + + var directions = new Array(2); + + this.decideDirectionsForOverlappingNodes(rectA, rectB, directions); + + overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x); + overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y); + + // update the overlapping amounts for the following cases: + if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) { + /* Case x.1: + * + * rectA + * | | + * | _________ | + * | | | | + * |________|_______|______| + * | | + * | | + * rectB + */ + overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight()); + } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) { + /* Case x.2: + * + * rectB + * | | + * | _________ | + * | | | | + * |________|_______|______| + * | | + * | | + * rectA + */ + overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight()); + } + if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) { + /* Case y.1: + * ________ rectA + * | + * | + * ______|____ rectB + * | | + * | | + * ______|____| + * | + * | + * |________ + * + */ + overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom()); + } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) { + /* Case y.2: + * ________ rectB + * | + * | + * ______|____ rectA + * | | + * | | + * ______|____| + * | + * | + * |________ + * + */ + overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom()); + } + + // find slope of the line passes two centers + var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX())); + // if centers are overlapped + if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) { + // assume the slope is 1 (45 degree) + slope = 1.0; + } + + var moveByY = slope * overlapAmount[0]; + var moveByX = overlapAmount[1] / slope; + if (overlapAmount[0] < moveByX) { + moveByX = overlapAmount[0]; + } else { + moveByY = overlapAmount[1]; + } + // return half the amount so that if each rectangle is moved by these + // amounts in opposite directions, overlap will be resolved + overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer); + overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer); +}; + +/** + * This method decides the separation direction of overlapping nodes + * + * if directions[0] = -1, then rectA goes left + * if directions[0] = 1, then rectA goes right + * if directions[1] = -1, then rectA goes up + * if directions[1] = 1, then rectA goes down + */ +IGeometry.decideDirectionsForOverlappingNodes = function (rectA, rectB, directions) { + if (rectA.getCenterX() < rectB.getCenterX()) { + directions[0] = -1; + } else { + directions[0] = 1; + } + + if (rectA.getCenterY() < rectB.getCenterY()) { + directions[1] = -1; + } else { + directions[1] = 1; + } +}; + +/** + * This method calculates the intersection (clipping) points of the two + * input rectangles with line segment defined by the centers of these two + * rectangles. The clipping points are saved in the input double array and + * whether or not the two rectangles overlap is returned. + */ +IGeometry.getIntersection2 = function (rectA, rectB, result) { + //result[0-1] will contain clipPoint of rectA, result[2-3] will contain clipPoint of rectB + var p1x = rectA.getCenterX(); + var p1y = rectA.getCenterY(); + var p2x = rectB.getCenterX(); + var p2y = rectB.getCenterY(); + + //if two rectangles intersect, then clipping points are centers + if (rectA.intersects(rectB)) { + result[0] = p1x; + result[1] = p1y; + result[2] = p2x; + result[3] = p2y; + return true; + } + //variables for rectA + var topLeftAx = rectA.getX(); + var topLeftAy = rectA.getY(); + var topRightAx = rectA.getRight(); + var bottomLeftAx = rectA.getX(); + var bottomLeftAy = rectA.getBottom(); + var bottomRightAx = rectA.getRight(); + var halfWidthA = rectA.getWidthHalf(); + var halfHeightA = rectA.getHeightHalf(); + //variables for rectB + var topLeftBx = rectB.getX(); + var topLeftBy = rectB.getY(); + var topRightBx = rectB.getRight(); + var bottomLeftBx = rectB.getX(); + var bottomLeftBy = rectB.getBottom(); + var bottomRightBx = rectB.getRight(); + var halfWidthB = rectB.getWidthHalf(); + var halfHeightB = rectB.getHeightHalf(); + + //flag whether clipping points are found + var clipPointAFound = false; + var clipPointBFound = false; + + // line is vertical + if (p1x === p2x) { + if (p1y > p2y) { + result[0] = p1x; + result[1] = topLeftAy; + result[2] = p2x; + result[3] = bottomLeftBy; + return false; + } else if (p1y < p2y) { + result[0] = p1x; + result[1] = bottomLeftAy; + result[2] = p2x; + result[3] = topLeftBy; + return false; + } else { + //not line, return null; + } + } + // line is horizontal + else if (p1y === p2y) { + if (p1x > p2x) { + result[0] = topLeftAx; + result[1] = p1y; + result[2] = topRightBx; + result[3] = p2y; + return false; + } else if (p1x < p2x) { + result[0] = topRightAx; + result[1] = p1y; + result[2] = topLeftBx; + result[3] = p2y; + return false; + } else { + //not valid line, return null; + } + } else { + //slopes of rectA's and rectB's diagonals + var slopeA = rectA.height / rectA.width; + var slopeB = rectB.height / rectB.width; + + //slope of line between center of rectA and center of rectB + var slopePrime = (p2y - p1y) / (p2x - p1x); + var cardinalDirectionA = void 0; + var cardinalDirectionB = void 0; + var tempPointAx = void 0; + var tempPointAy = void 0; + var tempPointBx = void 0; + var tempPointBy = void 0; + + //determine whether clipping point is the corner of nodeA + if (-slopeA === slopePrime) { + if (p1x > p2x) { + result[0] = bottomLeftAx; + result[1] = bottomLeftAy; + clipPointAFound = true; + } else { + result[0] = topRightAx; + result[1] = topLeftAy; + clipPointAFound = true; + } + } else if (slopeA === slopePrime) { + if (p1x > p2x) { + result[0] = topLeftAx; + result[1] = topLeftAy; + clipPointAFound = true; + } else { + result[0] = bottomRightAx; + result[1] = bottomLeftAy; + clipPointAFound = true; + } + } + + //determine whether clipping point is the corner of nodeB + if (-slopeB === slopePrime) { + if (p2x > p1x) { + result[2] = bottomLeftBx; + result[3] = bottomLeftBy; + clipPointBFound = true; + } else { + result[2] = topRightBx; + result[3] = topLeftBy; + clipPointBFound = true; + } + } else if (slopeB === slopePrime) { + if (p2x > p1x) { + result[2] = topLeftBx; + result[3] = topLeftBy; + clipPointBFound = true; + } else { + result[2] = bottomRightBx; + result[3] = bottomLeftBy; + clipPointBFound = true; + } + } + + //if both clipping points are corners + if (clipPointAFound && clipPointBFound) { + return false; + } + + //determine Cardinal Direction of rectangles + if (p1x > p2x) { + if (p1y > p2y) { + cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4); + cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2); + } else { + cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3); + cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1); + } + } else { + if (p1y > p2y) { + cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1); + cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3); + } else { + cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2); + cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4); + } + } + //calculate clipping Point if it is not found before + if (!clipPointAFound) { + switch (cardinalDirectionA) { + case 1: + tempPointAy = topLeftAy; + tempPointAx = p1x + -halfHeightA / slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + case 2: + tempPointAx = bottomRightAx; + tempPointAy = p1y + halfWidthA * slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + case 3: + tempPointAy = bottomLeftAy; + tempPointAx = p1x + halfHeightA / slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + case 4: + tempPointAx = bottomLeftAx; + tempPointAy = p1y + -halfWidthA * slopePrime; + result[0] = tempPointAx; + result[1] = tempPointAy; + break; + } + } + if (!clipPointBFound) { + switch (cardinalDirectionB) { + case 1: + tempPointBy = topLeftBy; + tempPointBx = p2x + -halfHeightB / slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + case 2: + tempPointBx = bottomRightBx; + tempPointBy = p2y + halfWidthB * slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + case 3: + tempPointBy = bottomLeftBy; + tempPointBx = p2x + halfHeightB / slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + case 4: + tempPointBx = bottomLeftBx; + tempPointBy = p2y + -halfWidthB * slopePrime; + result[2] = tempPointBx; + result[3] = tempPointBy; + break; + } + } + } + return false; +}; + +/** + * This method returns in which cardinal direction does input point stays + * 1: North + * 2: East + * 3: South + * 4: West + */ +IGeometry.getCardinalDirection = function (slope, slopePrime, line) { + if (slope > slopePrime) { + return line; + } else { + return 1 + line % 4; + } +}; + +/** + * This method calculates the intersection of the two lines defined by + * point pairs (s1,s2) and (f1,f2). + */ +IGeometry.getIntersection = function (s1, s2, f1, f2) { + if (f2 == null) { + return this.getIntersection2(s1, s2, f1); + } + + var x1 = s1.x; + var y1 = s1.y; + var x2 = s2.x; + var y2 = s2.y; + var x3 = f1.x; + var y3 = f1.y; + var x4 = f2.x; + var y4 = f2.y; + var x = void 0, + y = void 0; // intersection point + var a1 = void 0, + a2 = void 0, + b1 = void 0, + b2 = void 0, + c1 = void 0, + c2 = void 0; // coefficients of line eqns. + var denom = void 0; + + a1 = y2 - y1; + b1 = x1 - x2; + c1 = x2 * y1 - x1 * y2; // { a1*x + b1*y + c1 = 0 is line 1 } + + a2 = y4 - y3; + b2 = x3 - x4; + c2 = x4 * y3 - x3 * y4; // { a2*x + b2*y + c2 = 0 is line 2 } + + denom = a1 * b2 - a2 * b1; + + if (denom === 0) { + return null; + } + + x = (b1 * c2 - b2 * c1) / denom; + y = (a2 * c1 - a1 * c2) / denom; + + return new Point(x, y); +}; + +/** + * This method finds and returns the angle of the vector from the + x-axis + * in clockwise direction (compatible w/ Java coordinate system!). + */ +IGeometry.angleOfVector = function (Cx, Cy, Nx, Ny) { + var C_angle = void 0; + + if (Cx !== Nx) { + C_angle = Math.atan((Ny - Cy) / (Nx - Cx)); + + if (Nx < Cx) { + C_angle += Math.PI; + } else if (Ny < Cy) { + C_angle += this.TWO_PI; + } + } else if (Ny < Cy) { + C_angle = this.ONE_AND_HALF_PI; // 270 degrees + } else { + C_angle = this.HALF_PI; // 90 degrees + } + + return C_angle; +}; + +/** + * This method checks whether the given two line segments (one with point + * p1 and p2, the other with point p3 and p4) intersect at a point other + * than these points. + */ +IGeometry.doIntersect = function (p1, p2, p3, p4) { + var a = p1.x; + var b = p1.y; + var c = p2.x; + var d = p2.y; + var p = p3.x; + var q = p3.y; + var r = p4.x; + var s = p4.y; + var det = (c - a) * (s - q) - (r - p) * (d - b); + + if (det === 0) { + return false; + } else { + var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det; + var gamma = ((b - d) * (r - a) + (c - a) * (s - b)) / det; + return 0 < lambda && lambda < 1 && 0 < gamma && gamma < 1; + } +}; + +// ----------------------------------------------------------------------------- +// Section: Class Constants +// ----------------------------------------------------------------------------- +/** + * Some useful pre-calculated constants + */ +IGeometry.HALF_PI = 0.5 * Math.PI; +IGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI; +IGeometry.TWO_PI = 2.0 * Math.PI; +IGeometry.THREE_PI = 3.0 * Math.PI; + +module.exports = IGeometry; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function IMath() {} + +/** + * This method returns the sign of the input value. + */ +IMath.sign = function (value) { + if (value > 0) { + return 1; + } else if (value < 0) { + return -1; + } else { + return 0; + } +}; + +IMath.floor = function (value) { + return value < 0 ? Math.ceil(value) : Math.floor(value); +}; + +IMath.ceil = function (value) { + return value < 0 ? Math.floor(value) : Math.ceil(value); +}; + +module.exports = IMath; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function Integer() {} + +Integer.MAX_VALUE = 2147483647; +Integer.MIN_VALUE = -2147483648; + +module.exports = Integer; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var nodeFrom = function nodeFrom(value) { + return { value: value, next: null, prev: null }; +}; + +var add = function add(prev, node, next, list) { + if (prev !== null) { + prev.next = node; + } else { + list.head = node; + } + + if (next !== null) { + next.prev = node; + } else { + list.tail = node; + } + + node.prev = prev; + node.next = next; + + list.length++; + + return node; +}; + +var _remove = function _remove(node, list) { + var prev = node.prev, + next = node.next; + + + if (prev !== null) { + prev.next = next; + } else { + list.head = next; + } + + if (next !== null) { + next.prev = prev; + } else { + list.tail = prev; + } + + node.prev = node.next = null; + + list.length--; + + return node; +}; + +var LinkedList = function () { + function LinkedList(vals) { + var _this = this; + + _classCallCheck(this, LinkedList); + + this.length = 0; + this.head = null; + this.tail = null; + + if (vals != null) { + vals.forEach(function (v) { + return _this.push(v); + }); + } + } + + _createClass(LinkedList, [{ + key: "size", + value: function size() { + return this.length; + } + }, { + key: "insertBefore", + value: function insertBefore(val, otherNode) { + return add(otherNode.prev, nodeFrom(val), otherNode, this); + } + }, { + key: "insertAfter", + value: function insertAfter(val, otherNode) { + return add(otherNode, nodeFrom(val), otherNode.next, this); + } + }, { + key: "insertNodeBefore", + value: function insertNodeBefore(newNode, otherNode) { + return add(otherNode.prev, newNode, otherNode, this); + } + }, { + key: "insertNodeAfter", + value: function insertNodeAfter(newNode, otherNode) { + return add(otherNode, newNode, otherNode.next, this); + } + }, { + key: "push", + value: function push(val) { + return add(this.tail, nodeFrom(val), null, this); + } + }, { + key: "unshift", + value: function unshift(val) { + return add(null, nodeFrom(val), this.head, this); + } + }, { + key: "remove", + value: function remove(node) { + return _remove(node, this); + } + }, { + key: "pop", + value: function pop() { + return _remove(this.tail, this).value; + } + }, { + key: "popNode", + value: function popNode() { + return _remove(this.tail, this); + } + }, { + key: "shift", + value: function shift() { + return _remove(this.head, this).value; + } + }, { + key: "shiftNode", + value: function shiftNode() { + return _remove(this.head, this); + } + }, { + key: "get_object_at", + value: function get_object_at(index) { + if (index <= this.length()) { + var i = 1; + var current = this.head; + while (i < index) { + current = current.next; + i++; + } + return current.value; + } + } + }, { + key: "set_object_at", + value: function set_object_at(index, value) { + if (index <= this.length()) { + var i = 1; + var current = this.head; + while (i < index) { + current = current.next; + i++; + } + current.value = value; + } + } + }]); + + return LinkedList; +}(); + +module.exports = LinkedList; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/* + *This class is the javascript implementation of the Point.java class in jdk + */ +function Point(x, y, p) { + this.x = null; + this.y = null; + if (x == null && y == null && p == null) { + this.x = 0; + this.y = 0; + } else if (typeof x == 'number' && typeof y == 'number' && p == null) { + this.x = x; + this.y = y; + } else if (x.constructor.name == 'Point' && y == null && p == null) { + p = x; + this.x = p.x; + this.y = p.y; + } +} + +Point.prototype.getX = function () { + return this.x; +}; + +Point.prototype.getY = function () { + return this.y; +}; + +Point.prototype.getLocation = function () { + return new Point(this.x, this.y); +}; + +Point.prototype.setLocation = function (x, y, p) { + if (x.constructor.name == 'Point' && y == null && p == null) { + p = x; + this.setLocation(p.x, p.y); + } else if (typeof x == 'number' && typeof y == 'number' && p == null) { + //if both parameters are integer just move (x,y) location + if (parseInt(x) == x && parseInt(y) == y) { + this.move(x, y); + } else { + this.x = Math.floor(x + 0.5); + this.y = Math.floor(y + 0.5); + } + } +}; + +Point.prototype.move = function (x, y) { + this.x = x; + this.y = y; +}; + +Point.prototype.translate = function (dx, dy) { + this.x += dx; + this.y += dy; +}; + +Point.prototype.equals = function (obj) { + if (obj.constructor.name == "Point") { + var pt = obj; + return this.x == pt.x && this.y == pt.y; + } + return this == obj; +}; + +Point.prototype.toString = function () { + return new Point().constructor.name + "[x=" + this.x + ",y=" + this.y + "]"; +}; + +module.exports = Point; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function RectangleD(x, y, width, height) { + this.x = 0; + this.y = 0; + this.width = 0; + this.height = 0; + + if (x != null && y != null && width != null && height != null) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } +} + +RectangleD.prototype.getX = function () { + return this.x; +}; + +RectangleD.prototype.setX = function (x) { + this.x = x; +}; + +RectangleD.prototype.getY = function () { + return this.y; +}; + +RectangleD.prototype.setY = function (y) { + this.y = y; +}; + +RectangleD.prototype.getWidth = function () { + return this.width; +}; + +RectangleD.prototype.setWidth = function (width) { + this.width = width; +}; + +RectangleD.prototype.getHeight = function () { + return this.height; +}; + +RectangleD.prototype.setHeight = function (height) { + this.height = height; +}; + +RectangleD.prototype.getRight = function () { + return this.x + this.width; +}; + +RectangleD.prototype.getBottom = function () { + return this.y + this.height; +}; + +RectangleD.prototype.intersects = function (a) { + if (this.getRight() < a.x) { + return false; + } + + if (this.getBottom() < a.y) { + return false; + } + + if (a.getRight() < this.x) { + return false; + } + + if (a.getBottom() < this.y) { + return false; + } + + return true; +}; + +RectangleD.prototype.getCenterX = function () { + return this.x + this.width / 2; +}; + +RectangleD.prototype.getMinX = function () { + return this.getX(); +}; + +RectangleD.prototype.getMaxX = function () { + return this.getX() + this.width; +}; + +RectangleD.prototype.getCenterY = function () { + return this.y + this.height / 2; +}; + +RectangleD.prototype.getMinY = function () { + return this.getY(); +}; + +RectangleD.prototype.getMaxY = function () { + return this.getY() + this.height; +}; + +RectangleD.prototype.getWidthHalf = function () { + return this.width / 2; +}; + +RectangleD.prototype.getHeightHalf = function () { + return this.height / 2; +}; + +module.exports = RectangleD; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +function UniqueIDGeneretor() {} + +UniqueIDGeneretor.lastID = 0; + +UniqueIDGeneretor.createID = function (obj) { + if (UniqueIDGeneretor.isPrimitive(obj)) { + return obj; + } + if (obj.uniqueID != null) { + return obj.uniqueID; + } + obj.uniqueID = UniqueIDGeneretor.getString(); + UniqueIDGeneretor.lastID++; + return obj.uniqueID; +}; + +UniqueIDGeneretor.getString = function (id) { + if (id == null) id = UniqueIDGeneretor.lastID; + return "Object#" + id + ""; +}; + +UniqueIDGeneretor.isPrimitive = function (arg) { + var type = typeof arg === "undefined" ? "undefined" : _typeof(arg); + return arg == null || type != "object" && type != "function"; +}; + +module.exports = UniqueIDGeneretor; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __nested_webpack_require_64072__) { + +"use strict"; + + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +var LayoutConstants = __nested_webpack_require_64072__(0); +var LGraphManager = __nested_webpack_require_64072__(6); +var LNode = __nested_webpack_require_64072__(3); +var LEdge = __nested_webpack_require_64072__(1); +var LGraph = __nested_webpack_require_64072__(5); +var PointD = __nested_webpack_require_64072__(4); +var Transform = __nested_webpack_require_64072__(17); +var Emitter = __nested_webpack_require_64072__(27); + +function Layout(isRemoteUse) { + Emitter.call(this); + + //Layout Quality: 0:draft, 1:default, 2:proof + this.layoutQuality = LayoutConstants.QUALITY; + //Whether layout should create bendpoints as needed or not + this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; + //Whether layout should be incremental or not + this.incremental = LayoutConstants.DEFAULT_INCREMENTAL; + //Whether we animate from before to after layout node positions + this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT; + //Whether we animate the layout process or not + this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT; + //Number iterations that should be done between two successive animations + this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD; + /** + * Whether or not leaf nodes (non-compound nodes) are of uniform sizes. When + * they are, both spring and repulsion forces between two leaf nodes can be + * calculated without the expensive clipping point calculations, resulting + * in major speed-up. + */ + this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES; + /** + * This is used for creation of bendpoints by using dummy nodes and edges. + * Maps an LEdge to its dummy bendpoint path. + */ + this.edgeToDummyNodes = new Map(); + this.graphManager = new LGraphManager(this); + this.isLayoutFinished = false; + this.isSubLayout = false; + this.isRemoteUse = false; + + if (isRemoteUse != null) { + this.isRemoteUse = isRemoteUse; + } +} + +Layout.RANDOM_SEED = 1; + +Layout.prototype = Object.create(Emitter.prototype); + +Layout.prototype.getGraphManager = function () { + return this.graphManager; +}; + +Layout.prototype.getAllNodes = function () { + return this.graphManager.getAllNodes(); +}; + +Layout.prototype.getAllEdges = function () { + return this.graphManager.getAllEdges(); +}; + +Layout.prototype.getAllNodesToApplyGravitation = function () { + return this.graphManager.getAllNodesToApplyGravitation(); +}; + +Layout.prototype.newGraphManager = function () { + var gm = new LGraphManager(this); + this.graphManager = gm; + return gm; +}; + +Layout.prototype.newGraph = function (vGraph) { + return new LGraph(null, this.graphManager, vGraph); +}; + +Layout.prototype.newNode = function (vNode) { + return new LNode(this.graphManager, vNode); +}; + +Layout.prototype.newEdge = function (vEdge) { + return new LEdge(null, null, vEdge); +}; + +Layout.prototype.checkLayoutSuccess = function () { + return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge(); +}; + +Layout.prototype.runLayout = function () { + this.isLayoutFinished = false; + + if (this.tilingPreLayout) { + this.tilingPreLayout(); + } + + this.initParameters(); + var isLayoutSuccessfull; + + if (this.checkLayoutSuccess()) { + isLayoutSuccessfull = false; + } else { + isLayoutSuccessfull = this.layout(); + } + + if (LayoutConstants.ANIMATE === 'during') { + // If this is a 'during' layout animation. Layout is not finished yet. + // We need to perform these in index.js when layout is really finished. + return false; + } + + if (isLayoutSuccessfull) { + if (!this.isSubLayout) { + this.doPostLayout(); + } + } + + if (this.tilingPostLayout) { + this.tilingPostLayout(); + } + + this.isLayoutFinished = true; + + return isLayoutSuccessfull; +}; + +/** + * This method performs the operations required after layout. + */ +Layout.prototype.doPostLayout = function () { + //assert !isSubLayout : "Should not be called on sub-layout!"; + // Propagate geometric changes to v-level objects + if (!this.incremental) { + this.transform(); + } + this.update(); +}; + +/** + * This method updates the geometry of the target graph according to + * calculated layout. + */ +Layout.prototype.update2 = function () { + // update bend points + if (this.createBendsAsNeeded) { + this.createBendpointsFromDummyNodes(); + + // reset all edges, since the topology has changed + this.graphManager.resetAllEdges(); + } + + // perform edge, node and root updates if layout is not called + // remotely + if (!this.isRemoteUse) { + // update all edges + var edge; + var allEdges = this.graphManager.getAllEdges(); + for (var i = 0; i < allEdges.length; i++) { + edge = allEdges[i]; + // this.update(edge); + } + + // recursively update nodes + var node; + var nodes = this.graphManager.getRoot().getNodes(); + for (var i = 0; i < nodes.length; i++) { + node = nodes[i]; + // this.update(node); + } + + // update root graph + this.update(this.graphManager.getRoot()); + } +}; + +Layout.prototype.update = function (obj) { + if (obj == null) { + this.update2(); + } else if (obj instanceof LNode) { + var node = obj; + if (node.getChild() != null) { + // since node is compound, recursively update child nodes + var nodes = node.getChild().getNodes(); + for (var i = 0; i < nodes.length; i++) { + update(nodes[i]); + } + } + + // if the l-level node is associated with a v-level graph object, + // then it is assumed that the v-level node implements the + // interface Updatable. + if (node.vGraphObject != null) { + // cast to Updatable without any type check + var vNode = node.vGraphObject; + + // call the update method of the interface + vNode.update(node); + } + } else if (obj instanceof LEdge) { + var edge = obj; + // if the l-level edge is associated with a v-level graph object, + // then it is assumed that the v-level edge implements the + // interface Updatable. + + if (edge.vGraphObject != null) { + // cast to Updatable without any type check + var vEdge = edge.vGraphObject; + + // call the update method of the interface + vEdge.update(edge); + } + } else if (obj instanceof LGraph) { + var graph = obj; + // if the l-level graph is associated with a v-level graph object, + // then it is assumed that the v-level object implements the + // interface Updatable. + + if (graph.vGraphObject != null) { + // cast to Updatable without any type check + var vGraph = graph.vGraphObject; + + // call the update method of the interface + vGraph.update(graph); + } + } +}; + +/** + * This method is used to set all layout parameters to default values + * determined at compile time. + */ +Layout.prototype.initParameters = function () { + if (!this.isSubLayout) { + this.layoutQuality = LayoutConstants.QUALITY; + this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT; + this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD; + this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT; + this.incremental = LayoutConstants.DEFAULT_INCREMENTAL; + this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED; + this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES; + } + + if (this.animationDuringLayout) { + this.animationOnLayout = false; + } +}; + +Layout.prototype.transform = function (newLeftTop) { + if (newLeftTop == undefined) { + this.transform(new PointD(0, 0)); + } else { + // create a transformation object (from Eclipse to layout). When an + // inverse transform is applied, we get upper-left coordinate of the + // drawing or the root graph at given input coordinate (some margins + // already included in calculation of left-top). + + var trans = new Transform(); + var leftTop = this.graphManager.getRoot().updateLeftTop(); + + if (leftTop != null) { + trans.setWorldOrgX(newLeftTop.x); + trans.setWorldOrgY(newLeftTop.y); + + trans.setDeviceOrgX(leftTop.x); + trans.setDeviceOrgY(leftTop.y); + + var nodes = this.getAllNodes(); + var node; + + for (var i = 0; i < nodes.length; i++) { + node = nodes[i]; + node.transform(trans); + } + } + } +}; + +Layout.prototype.positionNodesRandomly = function (graph) { + + if (graph == undefined) { + //assert !this.incremental; + this.positionNodesRandomly(this.getGraphManager().getRoot()); + this.getGraphManager().getRoot().updateBounds(true); + } else { + var lNode; + var childGraph; + + var nodes = graph.getNodes(); + for (var i = 0; i < nodes.length; i++) { + lNode = nodes[i]; + childGraph = lNode.getChild(); + + if (childGraph == null) { + lNode.scatter(); + } else if (childGraph.getNodes().length == 0) { + lNode.scatter(); + } else { + this.positionNodesRandomly(childGraph); + lNode.updateBounds(); + } + } + } +}; + +/** + * This method returns a list of trees where each tree is represented as a + * list of l-nodes. The method returns a list of size 0 when: + * - The graph is not flat or + * - One of the component(s) of the graph is not a tree. + */ +Layout.prototype.getFlatForest = function () { + var flatForest = []; + var isForest = true; + + // Quick reference for all nodes in the graph manager associated with + // this layout. The list should not be changed. + var allNodes = this.graphManager.getRoot().getNodes(); + + // First be sure that the graph is flat + var isFlat = true; + + for (var i = 0; i < allNodes.length; i++) { + if (allNodes[i].getChild() != null) { + isFlat = false; + } + } + + // Return empty forest if the graph is not flat. + if (!isFlat) { + return flatForest; + } + + // Run BFS for each component of the graph. + + var visited = new Set(); + var toBeVisited = []; + var parents = new Map(); + var unProcessedNodes = []; + + unProcessedNodes = unProcessedNodes.concat(allNodes); + + // Each iteration of this loop finds a component of the graph and + // decides whether it is a tree or not. If it is a tree, adds it to the + // forest and continued with the next component. + + while (unProcessedNodes.length > 0 && isForest) { + toBeVisited.push(unProcessedNodes[0]); + + // Start the BFS. Each iteration of this loop visits a node in a + // BFS manner. + while (toBeVisited.length > 0 && isForest) { + //pool operation + var currentNode = toBeVisited[0]; + toBeVisited.splice(0, 1); + visited.add(currentNode); + + // Traverse all neighbors of this node + var neighborEdges = currentNode.getEdges(); + + for (var i = 0; i < neighborEdges.length; i++) { + var currentNeighbor = neighborEdges[i].getOtherEnd(currentNode); + + // If BFS is not growing from this neighbor. + if (parents.get(currentNode) != currentNeighbor) { + // We haven't previously visited this neighbor. + if (!visited.has(currentNeighbor)) { + toBeVisited.push(currentNeighbor); + parents.set(currentNeighbor, currentNode); + } + // Since we have previously visited this neighbor and + // this neighbor is not parent of currentNode, given + // graph contains a component that is not tree, hence + // it is not a forest. + else { + isForest = false; + break; + } + } + } + } + + // The graph contains a component that is not a tree. Empty + // previously found trees. The method will end. + if (!isForest) { + flatForest = []; + } + // Save currently visited nodes as a tree in our forest. Reset + // visited and parents lists. Continue with the next component of + // the graph, if any. + else { + var temp = [].concat(_toConsumableArray(visited)); + flatForest.push(temp); + //flatForest = flatForest.concat(temp); + //unProcessedNodes.removeAll(visited); + for (var i = 0; i < temp.length; i++) { + var value = temp[i]; + var index = unProcessedNodes.indexOf(value); + if (index > -1) { + unProcessedNodes.splice(index, 1); + } + } + visited = new Set(); + parents = new Map(); + } + } + + return flatForest; +}; + +/** + * This method creates dummy nodes (an l-level node with minimal dimensions) + * for the given edge (one per bendpoint). The existing l-level structure + * is updated accordingly. + */ +Layout.prototype.createDummyNodesForBendpoints = function (edge) { + var dummyNodes = []; + var prev = edge.source; + + var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target); + + for (var i = 0; i < edge.bendpoints.length; i++) { + // create new dummy node + var dummyNode = this.newNode(null); + dummyNode.setRect(new Point(0, 0), new Dimension(1, 1)); + + graph.add(dummyNode); + + // create new dummy edge between prev and dummy node + var dummyEdge = this.newEdge(null); + this.graphManager.add(dummyEdge, prev, dummyNode); + + dummyNodes.add(dummyNode); + prev = dummyNode; + } + + var dummyEdge = this.newEdge(null); + this.graphManager.add(dummyEdge, prev, edge.target); + + this.edgeToDummyNodes.set(edge, dummyNodes); + + // remove real edge from graph manager if it is inter-graph + if (edge.isInterGraph()) { + this.graphManager.remove(edge); + } + // else, remove the edge from the current graph + else { + graph.remove(edge); + } + + return dummyNodes; +}; + +/** + * This method creates bendpoints for edges from the dummy nodes + * at l-level. + */ +Layout.prototype.createBendpointsFromDummyNodes = function () { + var edges = []; + edges = edges.concat(this.graphManager.getAllEdges()); + edges = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges); + + for (var k = 0; k < edges.length; k++) { + var lEdge = edges[k]; + + if (lEdge.bendpoints.length > 0) { + var path = this.edgeToDummyNodes.get(lEdge); + + for (var i = 0; i < path.length; i++) { + var dummyNode = path[i]; + var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY()); + + // update bendpoint's location according to dummy node + var ebp = lEdge.bendpoints.get(i); + ebp.x = p.x; + ebp.y = p.y; + + // remove the dummy node, dummy edges incident with this + // dummy node is also removed (within the remove method) + dummyNode.getOwner().remove(dummyNode); + } + + // add the real edge to graph + this.graphManager.add(lEdge, lEdge.source, lEdge.target); + } + } +}; + +Layout.transform = function (sliderValue, defaultValue, minDiv, maxMul) { + if (minDiv != undefined && maxMul != undefined) { + var value = defaultValue; + + if (sliderValue <= 50) { + var minValue = defaultValue / minDiv; + value -= (defaultValue - minValue) / 50 * (50 - sliderValue); + } else { + var maxValue = defaultValue * maxMul; + value += (maxValue - defaultValue) / 50 * (sliderValue - 50); + } + + return value; + } else { + var a, b; + + if (sliderValue <= 50) { + a = 9.0 * defaultValue / 500.0; + b = defaultValue / 10.0; + } else { + a = 9.0 * defaultValue / 50.0; + b = -8 * defaultValue; + } + + return a * sliderValue + b; + } +}; + +/** + * This method finds and returns the center of the given nodes, assuming + * that the given nodes form a tree in themselves. + */ +Layout.findCenterOfTree = function (nodes) { + var list = []; + list = list.concat(nodes); + + var removedNodes = []; + var remainingDegrees = new Map(); + var foundCenter = false; + var centerNode = null; + + if (list.length == 1 || list.length == 2) { + foundCenter = true; + centerNode = list[0]; + } + + for (var i = 0; i < list.length; i++) { + var node = list[i]; + var degree = node.getNeighborsList().size; + remainingDegrees.set(node, node.getNeighborsList().size); + + if (degree == 1) { + removedNodes.push(node); + } + } + + var tempList = []; + tempList = tempList.concat(removedNodes); + + while (!foundCenter) { + var tempList2 = []; + tempList2 = tempList2.concat(tempList); + tempList = []; + + for (var i = 0; i < list.length; i++) { + var node = list[i]; + + var index = list.indexOf(node); + if (index >= 0) { + list.splice(index, 1); + } + + var neighbours = node.getNeighborsList(); + + neighbours.forEach(function (neighbour) { + if (removedNodes.indexOf(neighbour) < 0) { + var otherDegree = remainingDegrees.get(neighbour); + var newDegree = otherDegree - 1; + + if (newDegree == 1) { + tempList.push(neighbour); + } + + remainingDegrees.set(neighbour, newDegree); + } + }); + } + + removedNodes = removedNodes.concat(tempList); + + if (list.length == 1 || list.length == 2) { + foundCenter = true; + centerNode = list[0]; + } + } + + return centerNode; +}; + +/** + * During the coarsening process, this layout may be referenced by two graph managers + * this setter function grants access to change the currently being used graph manager + */ +Layout.prototype.setGraphManager = function (gm) { + this.graphManager = gm; +}; + +module.exports = Layout; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function RandomSeed() {} +// adapted from: https://stackoverflow.com/a/19303725 +RandomSeed.seed = 1; +RandomSeed.x = 0; + +RandomSeed.nextDouble = function () { + RandomSeed.x = Math.sin(RandomSeed.seed++) * 10000; + return RandomSeed.x - Math.floor(RandomSeed.x); +}; + +module.exports = RandomSeed; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __nested_webpack_require_81860__) { + +"use strict"; + + +var PointD = __nested_webpack_require_81860__(4); + +function Transform(x, y) { + this.lworldOrgX = 0.0; + this.lworldOrgY = 0.0; + this.ldeviceOrgX = 0.0; + this.ldeviceOrgY = 0.0; + this.lworldExtX = 1.0; + this.lworldExtY = 1.0; + this.ldeviceExtX = 1.0; + this.ldeviceExtY = 1.0; +} + +Transform.prototype.getWorldOrgX = function () { + return this.lworldOrgX; +}; + +Transform.prototype.setWorldOrgX = function (wox) { + this.lworldOrgX = wox; +}; + +Transform.prototype.getWorldOrgY = function () { + return this.lworldOrgY; +}; + +Transform.prototype.setWorldOrgY = function (woy) { + this.lworldOrgY = woy; +}; + +Transform.prototype.getWorldExtX = function () { + return this.lworldExtX; +}; + +Transform.prototype.setWorldExtX = function (wex) { + this.lworldExtX = wex; +}; + +Transform.prototype.getWorldExtY = function () { + return this.lworldExtY; +}; + +Transform.prototype.setWorldExtY = function (wey) { + this.lworldExtY = wey; +}; + +/* Device related */ + +Transform.prototype.getDeviceOrgX = function () { + return this.ldeviceOrgX; +}; + +Transform.prototype.setDeviceOrgX = function (dox) { + this.ldeviceOrgX = dox; +}; + +Transform.prototype.getDeviceOrgY = function () { + return this.ldeviceOrgY; +}; + +Transform.prototype.setDeviceOrgY = function (doy) { + this.ldeviceOrgY = doy; +}; + +Transform.prototype.getDeviceExtX = function () { + return this.ldeviceExtX; +}; + +Transform.prototype.setDeviceExtX = function (dex) { + this.ldeviceExtX = dex; +}; + +Transform.prototype.getDeviceExtY = function () { + return this.ldeviceExtY; +}; + +Transform.prototype.setDeviceExtY = function (dey) { + this.ldeviceExtY = dey; +}; + +Transform.prototype.transformX = function (x) { + var xDevice = 0.0; + var worldExtX = this.lworldExtX; + if (worldExtX != 0.0) { + xDevice = this.ldeviceOrgX + (x - this.lworldOrgX) * this.ldeviceExtX / worldExtX; + } + + return xDevice; +}; + +Transform.prototype.transformY = function (y) { + var yDevice = 0.0; + var worldExtY = this.lworldExtY; + if (worldExtY != 0.0) { + yDevice = this.ldeviceOrgY + (y - this.lworldOrgY) * this.ldeviceExtY / worldExtY; + } + + return yDevice; +}; + +Transform.prototype.inverseTransformX = function (x) { + var xWorld = 0.0; + var deviceExtX = this.ldeviceExtX; + if (deviceExtX != 0.0) { + xWorld = this.lworldOrgX + (x - this.ldeviceOrgX) * this.lworldExtX / deviceExtX; + } + + return xWorld; +}; + +Transform.prototype.inverseTransformY = function (y) { + var yWorld = 0.0; + var deviceExtY = this.ldeviceExtY; + if (deviceExtY != 0.0) { + yWorld = this.lworldOrgY + (y - this.ldeviceOrgY) * this.lworldExtY / deviceExtY; + } + return yWorld; +}; + +Transform.prototype.inverseTransformPoint = function (inPoint) { + var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y)); + return outPoint; +}; + +module.exports = Transform; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __nested_webpack_require_84747__) { + +"use strict"; + + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +var Layout = __nested_webpack_require_84747__(15); +var FDLayoutConstants = __nested_webpack_require_84747__(7); +var LayoutConstants = __nested_webpack_require_84747__(0); +var IGeometry = __nested_webpack_require_84747__(8); +var IMath = __nested_webpack_require_84747__(9); + +function FDLayout() { + Layout.call(this); + + this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION; + this.idealEdgeLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH; + this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH; + this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH; + this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH; + this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH; + this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR; + this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR; + this.displacementThresholdPerNode = 3.0 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100; + this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; + this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL; + this.totalDisplacement = 0.0; + this.oldTotalDisplacement = 0.0; + this.maxIterations = FDLayoutConstants.MAX_ITERATIONS; +} + +FDLayout.prototype = Object.create(Layout.prototype); + +for (var prop in Layout) { + FDLayout[prop] = Layout[prop]; +} + +FDLayout.prototype.initParameters = function () { + Layout.prototype.initParameters.call(this, arguments); + + this.totalIterations = 0; + this.notAnimatedIterations = 0; + + this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION; + + this.grid = []; +}; + +FDLayout.prototype.calcIdealEdgeLengths = function () { + var edge; + var lcaDepth; + var source; + var target; + var sizeOfSourceInLca; + var sizeOfTargetInLca; + + var allEdges = this.getGraphManager().getAllEdges(); + for (var i = 0; i < allEdges.length; i++) { + edge = allEdges[i]; + + edge.idealLength = this.idealEdgeLength; + + if (edge.isInterGraph) { + source = edge.getSource(); + target = edge.getTarget(); + + sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize(); + sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize(); + + if (this.useSmartIdealEdgeLengthCalculation) { + edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE; + } + + lcaDepth = edge.getLca().getInclusionTreeDepth(); + + edge.idealLength += FDLayoutConstants.DEFAULT_EDGE_LENGTH * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth); + } + } +}; + +FDLayout.prototype.initSpringEmbedder = function () { + + var s = this.getAllNodes().length; + if (this.incremental) { + if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) { + this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR)); + } + this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL; + } else { + if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) { + this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1.0 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR)); + } else { + this.coolingFactor = 1.0; + } + this.initialCoolingFactor = this.coolingFactor; + this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT; + } + + this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations); + + this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length; + + this.repulsionRange = this.calcRepulsionRange(); +}; + +FDLayout.prototype.calcSpringForces = function () { + var lEdges = this.getAllEdges(); + var edge; + + for (var i = 0; i < lEdges.length; i++) { + edge = lEdges[i]; + + this.calcSpringForce(edge, edge.idealLength); + } +}; + +FDLayout.prototype.calcRepulsionForces = function () { + var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; + var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var i, j; + var nodeA, nodeB; + var lNodes = this.getAllNodes(); + var processedNodeSet; + + if (this.useFRGridVariant) { + if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) { + this.updateGrid(); + } + + processedNodeSet = new Set(); + + // calculate repulsion forces between each nodes and its surrounding + for (i = 0; i < lNodes.length; i++) { + nodeA = lNodes[i]; + this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate); + processedNodeSet.add(nodeA); + } + } else { + for (i = 0; i < lNodes.length; i++) { + nodeA = lNodes[i]; + + for (j = i + 1; j < lNodes.length; j++) { + nodeB = lNodes[j]; + + // If both nodes are not members of the same graph, skip. + if (nodeA.getOwner() != nodeB.getOwner()) { + continue; + } + + this.calcRepulsionForce(nodeA, nodeB); + } + } + } +}; + +FDLayout.prototype.calcGravitationalForces = function () { + var node; + var lNodes = this.getAllNodesToApplyGravitation(); + + for (var i = 0; i < lNodes.length; i++) { + node = lNodes[i]; + this.calcGravitationalForce(node); + } +}; + +FDLayout.prototype.moveNodes = function () { + var lNodes = this.getAllNodes(); + var node; + + for (var i = 0; i < lNodes.length; i++) { + node = lNodes[i]; + node.move(); + } +}; + +FDLayout.prototype.calcSpringForce = function (edge, idealLength) { + var sourceNode = edge.getSource(); + var targetNode = edge.getTarget(); + + var length; + var springForce; + var springForceX; + var springForceY; + + // Update edge length + if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) { + edge.updateLengthSimple(); + } else { + edge.updateLength(); + + if (edge.isOverlapingSourceAndTarget) { + return; + } + } + + length = edge.getLength(); + + if (length == 0) return; + + // Calculate spring forces + springForce = this.springConstant * (length - idealLength); + + // Project force onto x and y axes + springForceX = springForce * (edge.lengthX / length); + springForceY = springForce * (edge.lengthY / length); + + // Apply forces on the end nodes + sourceNode.springForceX += springForceX; + sourceNode.springForceY += springForceY; + targetNode.springForceX -= springForceX; + targetNode.springForceY -= springForceY; +}; + +FDLayout.prototype.calcRepulsionForce = function (nodeA, nodeB) { + var rectA = nodeA.getRect(); + var rectB = nodeB.getRect(); + var overlapAmount = new Array(2); + var clipPoints = new Array(4); + var distanceX; + var distanceY; + var distanceSquared; + var distance; + var repulsionForce; + var repulsionForceX; + var repulsionForceY; + + if (rectA.intersects(rectB)) // two nodes overlap + { + // calculate separation amount in x and y directions + IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2.0); + + repulsionForceX = 2 * overlapAmount[0]; + repulsionForceY = 2 * overlapAmount[1]; + + var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren); + + // Apply forces on the two nodes + nodeA.repulsionForceX -= childrenConstant * repulsionForceX; + nodeA.repulsionForceY -= childrenConstant * repulsionForceY; + nodeB.repulsionForceX += childrenConstant * repulsionForceX; + nodeB.repulsionForceY += childrenConstant * repulsionForceY; + } else // no overlap + { + // calculate distance + + if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) // simply base repulsion on distance of node centers + { + distanceX = rectB.getCenterX() - rectA.getCenterX(); + distanceY = rectB.getCenterY() - rectA.getCenterY(); + } else // use clipping points + { + IGeometry.getIntersection(rectA, rectB, clipPoints); + + distanceX = clipPoints[2] - clipPoints[0]; + distanceY = clipPoints[3] - clipPoints[1]; + } + + // No repulsion range. FR grid variant should take care of this. + if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) { + distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST; + } + + if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) { + distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST; + } + + distanceSquared = distanceX * distanceX + distanceY * distanceY; + distance = Math.sqrt(distanceSquared); + + repulsionForce = this.repulsionConstant * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared; + + // Project force onto x and y axes + repulsionForceX = repulsionForce * distanceX / distance; + repulsionForceY = repulsionForce * distanceY / distance; + + // Apply forces on the two nodes + nodeA.repulsionForceX -= repulsionForceX; + nodeA.repulsionForceY -= repulsionForceY; + nodeB.repulsionForceX += repulsionForceX; + nodeB.repulsionForceY += repulsionForceY; + } +}; + +FDLayout.prototype.calcGravitationalForce = function (node) { + var ownerGraph; + var ownerCenterX; + var ownerCenterY; + var distanceX; + var distanceY; + var absDistanceX; + var absDistanceY; + var estimatedSize; + ownerGraph = node.getOwner(); + + ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2; + ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2; + distanceX = node.getCenterX() - ownerCenterX; + distanceY = node.getCenterY() - ownerCenterY; + absDistanceX = Math.abs(distanceX) + node.getWidth() / 2; + absDistanceY = Math.abs(distanceY) + node.getHeight() / 2; + + if (node.getOwner() == this.graphManager.getRoot()) // in the root graph + { + estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor; + + if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) { + node.gravitationForceX = -this.gravityConstant * distanceX; + node.gravitationForceY = -this.gravityConstant * distanceY; + } + } else // inside a compound + { + estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor; + + if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) { + node.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant; + node.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant; + } + } +}; + +FDLayout.prototype.isConverged = function () { + var converged; + var oscilating = false; + + if (this.totalIterations > this.maxIterations / 3) { + oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2; + } + + converged = this.totalDisplacement < this.totalDisplacementThreshold; + + this.oldTotalDisplacement = this.totalDisplacement; + + return converged || oscilating; +}; + +FDLayout.prototype.animate = function () { + if (this.animationDuringLayout && !this.isSubLayout) { + if (this.notAnimatedIterations == this.animationPeriod) { + this.update(); + this.notAnimatedIterations = 0; + } else { + this.notAnimatedIterations++; + } + } +}; + +//This method calculates the number of children (weight) for all nodes +FDLayout.prototype.calcNoOfChildrenForAllNodes = function () { + var node; + var allNodes = this.graphManager.getAllNodes(); + + for (var i = 0; i < allNodes.length; i++) { + node = allNodes[i]; + node.noOfChildren = node.getNoOfChildren(); + } +}; + +// ----------------------------------------------------------------------------- +// Section: FR-Grid Variant Repulsion Force Calculation +// ----------------------------------------------------------------------------- + +FDLayout.prototype.calcGrid = function (graph) { + + var sizeX = 0; + var sizeY = 0; + + sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange)); + sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange)); + + var grid = new Array(sizeX); + + for (var i = 0; i < sizeX; i++) { + grid[i] = new Array(sizeY); + } + + for (var i = 0; i < sizeX; i++) { + for (var j = 0; j < sizeY; j++) { + grid[i][j] = new Array(); + } + } + + return grid; +}; + +FDLayout.prototype.addNodeToGrid = function (v, left, top) { + + var startX = 0; + var finishX = 0; + var startY = 0; + var finishY = 0; + + startX = parseInt(Math.floor((v.getRect().x - left) / this.repulsionRange)); + finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left) / this.repulsionRange)); + startY = parseInt(Math.floor((v.getRect().y - top) / this.repulsionRange)); + finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top) / this.repulsionRange)); + + for (var i = startX; i <= finishX; i++) { + for (var j = startY; j <= finishY; j++) { + this.grid[i][j].push(v); + v.setGridCoordinates(startX, finishX, startY, finishY); + } + } +}; + +FDLayout.prototype.updateGrid = function () { + var i; + var nodeA; + var lNodes = this.getAllNodes(); + + this.grid = this.calcGrid(this.graphManager.getRoot()); + + // put all nodes to proper grid cells + for (i = 0; i < lNodes.length; i++) { + nodeA = lNodes[i]; + this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop()); + } +}; + +FDLayout.prototype.calculateRepulsionForceOfANode = function (nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) { + + if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) { + var surrounding = new Set(); + nodeA.surrounding = new Array(); + var nodeB; + var grid = this.grid; + + for (var i = nodeA.startX - 1; i < nodeA.finishX + 2; i++) { + for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) { + if (!(i < 0 || j < 0 || i >= grid.length || j >= grid[0].length)) { + for (var k = 0; k < grid[i][j].length; k++) { + nodeB = grid[i][j][k]; + + // If both nodes are not members of the same graph, + // or both nodes are the same, skip. + if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) { + continue; + } + + // check if the repulsion force between + // nodeA and nodeB has already been calculated + if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) { + var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2); + var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2); + + // if the distance between nodeA and nodeB + // is less then calculation range + if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) { + //then add nodeB to surrounding of nodeA + surrounding.add(nodeB); + } + } + } + } + } + } + + nodeA.surrounding = [].concat(_toConsumableArray(surrounding)); + } + for (i = 0; i < nodeA.surrounding.length; i++) { + this.calcRepulsionForce(nodeA, nodeA.surrounding[i]); + } +}; + +FDLayout.prototype.calcRepulsionRange = function () { + return 0.0; +}; + +module.exports = FDLayout; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __nested_webpack_require_100902__) { + +"use strict"; + + +var LEdge = __nested_webpack_require_100902__(1); +var FDLayoutConstants = __nested_webpack_require_100902__(7); + +function FDLayoutEdge(source, target, vEdge) { + LEdge.call(this, source, target, vEdge); + this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH; +} + +FDLayoutEdge.prototype = Object.create(LEdge.prototype); + +for (var prop in LEdge) { + FDLayoutEdge[prop] = LEdge[prop]; +} + +module.exports = FDLayoutEdge; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __nested_webpack_require_101387__) { + +"use strict"; + + +var LNode = __nested_webpack_require_101387__(3); + +function FDLayoutNode(gm, loc, size, vNode) { + // alternative constructor is handled inside LNode + LNode.call(this, gm, loc, size, vNode); + //Spring, repulsion and gravitational forces acting on this node + this.springForceX = 0; + this.springForceY = 0; + this.repulsionForceX = 0; + this.repulsionForceY = 0; + this.gravitationForceX = 0; + this.gravitationForceY = 0; + //Amount by which this node is to be moved in this iteration + this.displacementX = 0; + this.displacementY = 0; + + //Start and finish grid coordinates that this node is fallen into + this.startX = 0; + this.finishX = 0; + this.startY = 0; + this.finishY = 0; + + //Geometric neighbors of this node + this.surrounding = []; +} + +FDLayoutNode.prototype = Object.create(LNode.prototype); + +for (var prop in LNode) { + FDLayoutNode[prop] = LNode[prop]; +} + +FDLayoutNode.prototype.setGridCoordinates = function (_startX, _finishX, _startY, _finishY) { + this.startX = _startX; + this.finishX = _finishX; + this.startY = _startY; + this.finishY = _finishY; +}; + +module.exports = FDLayoutNode; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function DimensionD(width, height) { + this.width = 0; + this.height = 0; + if (width !== null && height !== null) { + this.height = height; + this.width = width; + } +} + +DimensionD.prototype.getWidth = function () { + return this.width; +}; + +DimensionD.prototype.setWidth = function (width) { + this.width = width; +}; + +DimensionD.prototype.getHeight = function () { + return this.height; +}; + +DimensionD.prototype.setHeight = function (height) { + this.height = height; +}; + +module.exports = DimensionD; + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __nested_webpack_require_103173__) { + +"use strict"; + + +var UniqueIDGeneretor = __nested_webpack_require_103173__(14); + +function HashMap() { + this.map = {}; + this.keys = []; +} + +HashMap.prototype.put = function (key, value) { + var theId = UniqueIDGeneretor.createID(key); + if (!this.contains(theId)) { + this.map[theId] = value; + this.keys.push(key); + } +}; + +HashMap.prototype.contains = function (key) { + var theId = UniqueIDGeneretor.createID(key); + return this.map[key] != null; +}; + +HashMap.prototype.get = function (key) { + var theId = UniqueIDGeneretor.createID(key); + return this.map[theId]; +}; + +HashMap.prototype.keySet = function () { + return this.keys; +}; + +module.exports = HashMap; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __nested_webpack_require_103901__) { + +"use strict"; + + +var UniqueIDGeneretor = __nested_webpack_require_103901__(14); + +function HashSet() { + this.set = {}; +} +; + +HashSet.prototype.add = function (obj) { + var theId = UniqueIDGeneretor.createID(obj); + if (!this.contains(theId)) this.set[theId] = obj; +}; + +HashSet.prototype.remove = function (obj) { + delete this.set[UniqueIDGeneretor.createID(obj)]; +}; + +HashSet.prototype.clear = function () { + this.set = {}; +}; + +HashSet.prototype.contains = function (obj) { + return this.set[UniqueIDGeneretor.createID(obj)] == obj; +}; + +HashSet.prototype.isEmpty = function () { + return this.size() === 0; +}; + +HashSet.prototype.size = function () { + return Object.keys(this.set).length; +}; + +//concats this.set to the given list +HashSet.prototype.addAllTo = function (list) { + var keys = Object.keys(this.set); + var length = keys.length; + for (var i = 0; i < length; i++) { + list.push(this.set[keys[i]]); + } +}; + +HashSet.prototype.size = function () { + return Object.keys(this.set).length; +}; + +HashSet.prototype.addAll = function (list) { + var s = list.length; + for (var i = 0; i < s; i++) { + var v = list[i]; + this.add(v); + } +}; + +module.exports = HashSet; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __nested_webpack_require_105138__) { + +"use strict"; + + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * A classic Quicksort algorithm with Hoare's partition + * - Works also on LinkedList objects + * + * Copyright: i-Vis Research Group, Bilkent University, 2007 - present + */ + +var LinkedList = __nested_webpack_require_105138__(11); + +var Quicksort = function () { + function Quicksort(A, compareFunction) { + _classCallCheck(this, Quicksort); + + if (compareFunction !== null || compareFunction !== undefined) this.compareFunction = this._defaultCompareFunction; + + var length = void 0; + if (A instanceof LinkedList) length = A.size();else length = A.length; + + this._quicksort(A, 0, length - 1); + } + + _createClass(Quicksort, [{ + key: '_quicksort', + value: function _quicksort(A, p, r) { + if (p < r) { + var q = this._partition(A, p, r); + this._quicksort(A, p, q); + this._quicksort(A, q + 1, r); + } + } + }, { + key: '_partition', + value: function _partition(A, p, r) { + var x = this._get(A, p); + var i = p; + var j = r; + while (true) { + while (this.compareFunction(x, this._get(A, j))) { + j--; + }while (this.compareFunction(this._get(A, i), x)) { + i++; + }if (i < j) { + this._swap(A, i, j); + i++; + j--; + } else return j; + } + } + }, { + key: '_get', + value: function _get(object, index) { + if (object instanceof LinkedList) return object.get_object_at(index);else return object[index]; + } + }, { + key: '_set', + value: function _set(object, index, value) { + if (object instanceof LinkedList) object.set_object_at(index, value);else object[index] = value; + } + }, { + key: '_swap', + value: function _swap(A, i, j) { + var temp = this._get(A, i); + this._set(A, i, this._get(A, j)); + this._set(A, j, temp); + } + }, { + key: '_defaultCompareFunction', + value: function _defaultCompareFunction(a, b) { + return b > a; + } + }]); + + return Quicksort; +}(); + +module.exports = Quicksort; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Needleman-Wunsch algorithm is an procedure to compute the optimal global alignment of two string + * sequences by S.B.Needleman and C.D.Wunsch (1970). + * + * Aside from the inputs, you can assign the scores for, + * - Match: The two characters at the current index are same. + * - Mismatch: The two characters at the current index are different. + * - Insertion/Deletion(gaps): The best alignment involves one letter aligning to a gap in the other string. + */ + +var NeedlemanWunsch = function () { + function NeedlemanWunsch(sequence1, sequence2) { + var match_score = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + var mismatch_penalty = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1; + var gap_penalty = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : -1; + + _classCallCheck(this, NeedlemanWunsch); + + this.sequence1 = sequence1; + this.sequence2 = sequence2; + this.match_score = match_score; + this.mismatch_penalty = mismatch_penalty; + this.gap_penalty = gap_penalty; + + // Just the remove redundancy + this.iMax = sequence1.length + 1; + this.jMax = sequence2.length + 1; + + // Grid matrix of scores + this.grid = new Array(this.iMax); + for (var i = 0; i < this.iMax; i++) { + this.grid[i] = new Array(this.jMax); + + for (var j = 0; j < this.jMax; j++) { + this.grid[i][j] = 0; + } + } + + // Traceback matrix (2D array, each cell is an array of boolean values for [`Diag`, `Up`, `Left`] positions) + this.tracebackGrid = new Array(this.iMax); + for (var _i = 0; _i < this.iMax; _i++) { + this.tracebackGrid[_i] = new Array(this.jMax); + + for (var _j = 0; _j < this.jMax; _j++) { + this.tracebackGrid[_i][_j] = [null, null, null]; + } + } + + // The aligned sequences (return multiple possibilities) + this.alignments = []; + + // Final alignment score + this.score = -1; + + // Calculate scores and tracebacks + this.computeGrids(); + } + + _createClass(NeedlemanWunsch, [{ + key: "getScore", + value: function getScore() { + return this.score; + } + }, { + key: "getAlignments", + value: function getAlignments() { + return this.alignments; + } + + // Main dynamic programming procedure + + }, { + key: "computeGrids", + value: function computeGrids() { + // Fill in the first row + for (var j = 1; j < this.jMax; j++) { + this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty; + this.tracebackGrid[0][j] = [false, false, true]; + } + + // Fill in the first column + for (var i = 1; i < this.iMax; i++) { + this.grid[i][0] = this.grid[i - 1][0] + this.gap_penalty; + this.tracebackGrid[i][0] = [false, true, false]; + } + + // Fill the rest of the grid + for (var _i2 = 1; _i2 < this.iMax; _i2++) { + for (var _j2 = 1; _j2 < this.jMax; _j2++) { + // Find the max score(s) among [`Diag`, `Up`, `Left`] + var diag = void 0; + if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1]) diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;else diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty; + + var up = this.grid[_i2 - 1][_j2] + this.gap_penalty; + var left = this.grid[_i2][_j2 - 1] + this.gap_penalty; + + // If there exists multiple max values, capture them for multiple paths + var maxOf = [diag, up, left]; + var indices = this.arrayAllMaxIndexes(maxOf); + + // Update Grids + this.grid[_i2][_j2] = maxOf[indices[0]]; + this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)]; + } + } + + // Update alignment score + this.score = this.grid[this.iMax - 1][this.jMax - 1]; + } + + // Gets all possible valid sequence combinations + + }, { + key: "alignmentTraceback", + value: function alignmentTraceback() { + var inProcessAlignments = []; + + inProcessAlignments.push({ pos: [this.sequence1.length, this.sequence2.length], + seq1: "", + seq2: "" + }); + + while (inProcessAlignments[0]) { + var current = inProcessAlignments[0]; + var directions = this.tracebackGrid[current.pos[0]][current.pos[1]]; + + if (directions[0]) { + inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1] - 1], + seq1: this.sequence1[current.pos[0] - 1] + current.seq1, + seq2: this.sequence2[current.pos[1] - 1] + current.seq2 + }); + } + if (directions[1]) { + inProcessAlignments.push({ pos: [current.pos[0] - 1, current.pos[1]], + seq1: this.sequence1[current.pos[0] - 1] + current.seq1, + seq2: '-' + current.seq2 + }); + } + if (directions[2]) { + inProcessAlignments.push({ pos: [current.pos[0], current.pos[1] - 1], + seq1: '-' + current.seq1, + seq2: this.sequence2[current.pos[1] - 1] + current.seq2 + }); + } + + if (current.pos[0] === 0 && current.pos[1] === 0) this.alignments.push({ sequence1: current.seq1, + sequence2: current.seq2 + }); + + inProcessAlignments.shift(); + } + + return this.alignments; + } + + // Helper Functions + + }, { + key: "getAllIndexes", + value: function getAllIndexes(arr, val) { + var indexes = [], + i = -1; + while ((i = arr.indexOf(val, i + 1)) !== -1) { + indexes.push(i); + } + return indexes; + } + }, { + key: "arrayAllMaxIndexes", + value: function arrayAllMaxIndexes(array) { + return this.getAllIndexes(array, Math.max.apply(null, array)); + } + }]); + + return NeedlemanWunsch; +}(); + +module.exports = NeedlemanWunsch; + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __nested_webpack_require_115611__) { + +"use strict"; + + +var layoutBase = function layoutBase() { + return; +}; + +layoutBase.FDLayout = __nested_webpack_require_115611__(18); +layoutBase.FDLayoutConstants = __nested_webpack_require_115611__(7); +layoutBase.FDLayoutEdge = __nested_webpack_require_115611__(19); +layoutBase.FDLayoutNode = __nested_webpack_require_115611__(20); +layoutBase.DimensionD = __nested_webpack_require_115611__(21); +layoutBase.HashMap = __nested_webpack_require_115611__(22); +layoutBase.HashSet = __nested_webpack_require_115611__(23); +layoutBase.IGeometry = __nested_webpack_require_115611__(8); +layoutBase.IMath = __nested_webpack_require_115611__(9); +layoutBase.Integer = __nested_webpack_require_115611__(10); +layoutBase.Point = __nested_webpack_require_115611__(12); +layoutBase.PointD = __nested_webpack_require_115611__(4); +layoutBase.RandomSeed = __nested_webpack_require_115611__(16); +layoutBase.RectangleD = __nested_webpack_require_115611__(13); +layoutBase.Transform = __nested_webpack_require_115611__(17); +layoutBase.UniqueIDGeneretor = __nested_webpack_require_115611__(14); +layoutBase.Quicksort = __nested_webpack_require_115611__(24); +layoutBase.LinkedList = __nested_webpack_require_115611__(11); +layoutBase.LGraphObject = __nested_webpack_require_115611__(2); +layoutBase.LGraph = __nested_webpack_require_115611__(5); +layoutBase.LEdge = __nested_webpack_require_115611__(1); +layoutBase.LGraphManager = __nested_webpack_require_115611__(6); +layoutBase.LNode = __nested_webpack_require_115611__(3); +layoutBase.Layout = __nested_webpack_require_115611__(15); +layoutBase.LayoutConstants = __nested_webpack_require_115611__(0); +layoutBase.NeedlemanWunsch = __nested_webpack_require_115611__(25); + +module.exports = layoutBase; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function Emitter() { + this.listeners = []; +} + +var p = Emitter.prototype; + +p.addListener = function (event, callback) { + this.listeners.push({ + event: event, + callback: callback + }); +}; + +p.removeListener = function (event, callback) { + for (var i = this.listeners.length; i >= 0; i--) { + var l = this.listeners[i]; + + if (l.event === event && l.callback === callback) { + this.listeners.splice(i, 1); + } + } +}; + +p.emit = function (event, data) { + for (var i = 0; i < this.listeners.length; i++) { + var l = this.listeners[i]; + + if (event === l.event) { + l.callback(data); + } + } +}; + +module.exports = Emitter; + +/***/ }) +/******/ ]); +}); + +/***/ }), + +/***/ 47724: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "diagram": () => (/* binding */ diagram) +/* harmony export */ }); +/* harmony import */ var _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(87115); +/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59373); +/* harmony import */ var cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71377); +/* harmony import */ var cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var cytoscape_cose_bilkent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14607); +/* harmony import */ var cytoscape_cose_bilkent__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(cytoscape_cose_bilkent__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(91619); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(12281); +/* harmony import */ var khroma__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(7201); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(27484); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17967); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20683); +/* harmony import */ var dagre_d3_es_src_dagre_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(70277); +/* harmony import */ var dagre_d3_es_src_graphlib_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(45625); +/* harmony import */ var dagre_d3_es_src_graphlib_json_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(39354); +/* harmony import */ var dagre_d3_es__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(91518); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(59542); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_10__); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(10285); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_11__); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(28734); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_12__); + + + + + + + + + + + + + + + + + + + + + + + + +var parser = function() { + var o = function(k, v, o2, l) { + for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) + ; + return o2; + }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22]; + var parser2 = { + trace: function trace() { + }, + yy: {}, + symbols_: { "error": 2, "start": 3, "mindMap": 4, "spaceLines": 5, "SPACELINE": 6, "NL": 7, "MINDMAP": 8, "document": 9, "stop": 10, "EOF": 11, "statement": 12, "SPACELIST": 13, "node": 14, "ICON": 15, "CLASS": 16, "nodeWithId": 17, "nodeWithoutId": 18, "NODE_DSTART": 19, "NODE_DESCR": 20, "NODE_DEND": 21, "NODE_ID": 22, "$accept": 0, "$end": 1 }, + terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" }, + productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) { + var $0 = $$.length - 1; + switch (yystate) { + case 6: + case 7: + return yy; + case 8: + yy.getLogger().trace("Stop NL "); + break; + case 9: + yy.getLogger().trace("Stop EOF "); + break; + case 11: + yy.getLogger().trace("Stop NL2 "); + break; + case 12: + yy.getLogger().trace("Stop EOF2 "); + break; + case 15: + yy.getLogger().info("Node: ", $$[$0].id); + yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type); + break; + case 16: + yy.getLogger().trace("Icon: ", $$[$0]); + yy.decorateNode({ icon: $$[$0] }); + break; + case 17: + case 21: + yy.decorateNode({ class: $$[$0] }); + break; + case 18: + yy.getLogger().trace("SPACELIST"); + break; + case 19: + yy.getLogger().trace("Node: ", $$[$0].id); + yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type); + break; + case 20: + yy.decorateNode({ icon: $$[$0] }); + break; + case 25: + yy.getLogger().trace("node found ..", $$[$0 - 2]); + this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) }; + break; + case 26: + this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT }; + break; + case 27: + yy.getLogger().trace("node found ..", $$[$0 - 3]); + this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) }; + break; + } + }, + table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])], + defaultActions: { 2: [2, 1], 6: [2, 2] }, + parseError: function parseError2(str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } + }, + parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer2 = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer2.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer2; + sharedState.yy.parser = this; + if (typeof lexer2.yylloc == "undefined") { + lexer2.yylloc = {}; + } + var yyloc = lexer2.yylloc; + lstack.push(yyloc); + var ranges = lexer2.options && lexer2.options.ranges; + if (typeof sharedState.yy.parseError === "function") { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function lex() { + var token; + token = tstack.pop() || lexer2.lex() || EOF; + if (typeof token !== "number") { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, state, action, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == "undefined") { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === "undefined" || !action.length || !action[0]) { + var errStr = ""; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'" + this.terminals_[p] + "'"); + } + } + if (lexer2.showPosition) { + errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'"; + } else { + errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'"); + } + this.parseError(errStr, { + text: lexer2.match, + token: this.terminals_[symbol] || symbol, + line: lexer2.yylineno, + loc: yyloc, + expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer2.yytext); + lstack.push(lexer2.yylloc); + stack.push(action[1]); + symbol = null; + { + yyleng = lexer2.yyleng; + yytext = lexer2.yytext; + yylineno = lexer2.yylineno; + yyloc = lexer2.yylloc; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== "undefined") { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; + } + }; + var lexer = function() { + var lexer2 = { + EOF: 1, + parseError: function parseError2(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + // resets the lexer, sets new input + setInput: function(input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ""; + this.conditionStack = ["INITIAL"]; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0, 0]; + } + this.offset = 0; + return this; + }, + // consumes and returns one char from the input + input: function() { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + this._input = this._input.slice(1); + return ch; + }, + // unshifts one char (or a string) into the input + unput: function(ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len + }; + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + // When called from action, caches matched text and appends it on next action + more: function() { + this._more = true; + return this; + }, + // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. + reject: function() { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + return this; + }, + // retain first n characters of the match + less: function(n) { + this.unput(this.match.slice(n)); + }, + // displays already matched input, i.e. for error messages + pastInput: function() { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, ""); + }, + // displays upcoming input, i.e. for error messages + upcomingInput: function() { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20 - next.length); + } + return (next.substr(0, 20) + (next.length > 20 ? "..." : "")).replace(/\n/g, ""); + }, + // displays the character position where the lexing error occurred, i.e. for error messages + showPosition: function() { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + // test the lexed token: return FALSE when not a match, otherwise return token + test_match: function(match, indexed_rule) { + var token, lines, backup; + if (this.options.backtrack_lexer) { + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + for (var k in backup) { + this[k] = backup[k]; + } + return false; + } + return false; + }, + // return next match in input + next: function() { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + var token, match, tempMatch, index; + if (!this._more) { + this.yytext = ""; + this.match = ""; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; + } else { + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + // return next match that has a token + lex: function lex() { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) + begin: function begin(condition) { + this.conditionStack.push(condition); + }, + // pop the previously active lexer condition state off the condition stack + popState: function popState() { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + // produce the lexer rule set which is active for the currently active lexer condition state + _currentRules: function _currentRules() { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available + topState: function topState(n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + // alias for begin(condition) + pushState: function pushState(condition) { + this.begin(condition); + }, + // return the number of states currently on the stack + stateStackSize: function stateStackSize() { + return this.conditionStack.length; + }, + options: { "case-insensitive": true }, + performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) { + switch ($avoiding_name_collisions) { + case 0: + yy.getLogger().trace("Found comment", yy_.yytext); + break; + case 1: + return 8; + case 2: + this.begin("CLASS"); + break; + case 3: + this.popState(); + return 16; + case 4: + this.popState(); + break; + case 5: + yy.getLogger().trace("Begin icon"); + this.begin("ICON"); + break; + case 6: + yy.getLogger().trace("SPACELINE"); + return 6; + case 7: + return 7; + case 8: + return 15; + case 9: + yy.getLogger().trace("end icon"); + this.popState(); + break; + case 10: + yy.getLogger().trace("Exploding node"); + this.begin("NODE"); + return 19; + case 11: + yy.getLogger().trace("Cloud"); + this.begin("NODE"); + return 19; + case 12: + yy.getLogger().trace("Explosion Bang"); + this.begin("NODE"); + return 19; + case 13: + yy.getLogger().trace("Cloud Bang"); + this.begin("NODE"); + return 19; + case 14: + this.begin("NODE"); + return 19; + case 15: + this.begin("NODE"); + return 19; + case 16: + this.begin("NODE"); + return 19; + case 17: + this.begin("NODE"); + return 19; + case 18: + return 13; + case 19: + return 22; + case 20: + return 11; + case 21: + yy.getLogger().trace("Starting NSTR"); + this.begin("NSTR"); + break; + case 22: + yy.getLogger().trace("description:", yy_.yytext); + return "NODE_DESCR"; + case 23: + this.popState(); + break; + case 24: + this.popState(); + yy.getLogger().trace("node end ))"); + return "NODE_DEND"; + case 25: + this.popState(); + yy.getLogger().trace("node end )"); + return "NODE_DEND"; + case 26: + this.popState(); + yy.getLogger().trace("node end ...", yy_.yytext); + return "NODE_DEND"; + case 27: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 28: + this.popState(); + yy.getLogger().trace("node end (-"); + return "NODE_DEND"; + case 29: + this.popState(); + yy.getLogger().trace("node end (-"); + return "NODE_DEND"; + case 30: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 31: + this.popState(); + yy.getLogger().trace("node end (("); + return "NODE_DEND"; + case 32: + yy.getLogger().trace("Long description:", yy_.yytext); + return 20; + case 33: + yy.getLogger().trace("Long description:", yy_.yytext); + return 20; + } + }, + rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\-\)\{\}]+)/i, /^(?:$)/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i], + conditions: { "CLASS": { "rules": [3, 4], "inclusive": false }, "ICON": { "rules": [8, 9], "inclusive": false }, "NSTR": { "rules": [22, 23], "inclusive": false }, "NODE": { "rules": [21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "inclusive": true } } + }; + return lexer2; + }(); + parser2.lexer = lexer; + function Parser() { + this.yy = {}; + } + Parser.prototype = parser2; + parser2.Parser = Parser; + return new Parser(); +}(); +parser.parser = parser; +const mindmapParser = parser; +const sanitizeText = (text) => (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.n)(text, (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.g)()); +let nodes = []; +let cnt = 0; +let elements = {}; +const clear = () => { + nodes = []; + cnt = 0; + elements = {}; +}; +const getParent = function(level) { + for (let i = nodes.length - 1; i >= 0; i--) { + if (nodes[i].level < level) { + return nodes[i]; + } + } + return null; +}; +const getMindmap = () => { + return nodes.length > 0 ? nodes[0] : null; +}; +const addNode = (level, id, descr, type) => { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.info("addNode", level, id, descr, type); + const conf = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.g)(); + const node = { + id: cnt++, + nodeId: sanitizeText(id), + level, + descr: sanitizeText(descr), + type, + children: [], + width: (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.g)().mindmap.maxNodeWidth + }; + switch (node.type) { + case nodeType.ROUNDED_RECT: + node.padding = 2 * conf.mindmap.padding; + break; + case nodeType.RECT: + node.padding = 2 * conf.mindmap.padding; + break; + case nodeType.HEXAGON: + node.padding = 2 * conf.mindmap.padding; + break; + default: + node.padding = conf.mindmap.padding; + } + const parent = getParent(level); + if (parent) { + parent.children.push(node); + nodes.push(node); + } else { + if (nodes.length === 0) { + nodes.push(node); + } else { + let error = new Error( + 'There can be only one root. No parent could be found for ("' + node.descr + '")' + ); + error.hash = { + text: "branch " + name, + token: "branch " + name, + line: "1", + loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 }, + expected: ['"checkout ' + name + '"'] + }; + throw error; + } + } +}; +const nodeType = { + DEFAULT: 0, + NO_BORDER: 0, + ROUNDED_RECT: 1, + RECT: 2, + CIRCLE: 3, + CLOUD: 4, + BANG: 5, + HEXAGON: 6 +}; +const getType = (startStr, endStr) => { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.debug("In get type", startStr, endStr); + switch (startStr) { + case "[": + return nodeType.RECT; + case "(": + return endStr === ")" ? nodeType.ROUNDED_RECT : nodeType.CLOUD; + case "((": + return nodeType.CIRCLE; + case ")": + return nodeType.CLOUD; + case "))": + return nodeType.BANG; + case "{{": + return nodeType.HEXAGON; + default: + return nodeType.DEFAULT; + } +}; +const setElementForId = (id, element) => { + elements[id] = element; +}; +const decorateNode = (decoration) => { + const node = nodes[nodes.length - 1]; + if (decoration && decoration.icon) { + node.icon = sanitizeText(decoration.icon); + } + if (decoration && decoration.class) { + node.class = sanitizeText(decoration.class); + } +}; +const type2Str = (type) => { + switch (type) { + case nodeType.DEFAULT: + return "no-border"; + case nodeType.RECT: + return "rect"; + case nodeType.ROUNDED_RECT: + return "rounded-rect"; + case nodeType.CIRCLE: + return "circle"; + case nodeType.CLOUD: + return "cloud"; + case nodeType.BANG: + return "bang"; + case nodeType.HEXAGON: + return "hexgon"; + default: + return "no-border"; + } +}; +let parseError; +const setErrorHandler = (handler) => { + parseError = handler; +}; +const getLogger = () => _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l; +const getNodeById = (id) => nodes[id]; +const getElementById = (id) => elements[id]; +const mindmapDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + addNode, + clear, + decorateNode, + getElementById, + getLogger, + getMindmap, + getNodeById, + getType, + nodeType, + get parseError() { + return parseError; + }, + sanitizeText, + setElementForId, + setErrorHandler, + type2Str +}, Symbol.toStringTag, { value: "Module" })); +const MAX_SECTIONS = 12; +function wrap(text, width) { + text.each(function() { + var text2 = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(this), words = text2.text().split(/(\s+|<br>)/).reverse(), word, line = [], lineHeight = 1.1, y = text2.attr("y"), dy = parseFloat(text2.attr("dy")), tspan = text2.text(null).append("tspan").attr("x", 0).attr("y", y).attr("dy", dy + "em"); + for (let j = 0; j < words.length; j++) { + word = words[words.length - 1 - j]; + line.push(word); + tspan.text(line.join(" ").trim()); + if (tspan.node().getComputedTextLength() > width || word === "<br>") { + line.pop(); + tspan.text(line.join(" ").trim()); + if (word === "<br>") { + line = [""]; + } else { + line = [word]; + } + tspan = text2.append("tspan").attr("x", 0).attr("y", y).attr("dy", lineHeight + "em").text(word); + } + } + }); +} +const defaultBkg = function(elem, node, section) { + const rd = 5; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr( + "d", + `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z` + ); + elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height); +}; +const rectBkg = function(elem, node) { + elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("width", node.width); +}; +const cloudBkg = function(elem, node) { + const w = node.width; + const h = node.height; + const r1 = 0.15 * w; + const r2 = 0.25 * w; + const r3 = 0.35 * w; + const r4 = 0.2 * w; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr( + "d", + `M0 0 a${r1},${r1} 0 0,1 ${w * 0.25},${-1 * w * 0.1} + a${r3},${r3} 1 0,1 ${w * 0.4},${-1 * w * 0.1} + a${r2},${r2} 1 0,1 ${w * 0.35},${1 * w * 0.2} + + a${r1},${r1} 1 0,1 ${w * 0.15},${1 * h * 0.35} + a${r4},${r4} 1 0,1 ${-1 * w * 0.15},${1 * h * 0.65} + + a${r2},${r1} 1 0,1 ${-1 * w * 0.25},${w * 0.15} + a${r3},${r3} 1 0,1 ${-1 * w * 0.5},${0} + a${r1},${r1} 1 0,1 ${-1 * w * 0.25},${-1 * w * 0.15} + + a${r1},${r1} 1 0,1 ${-1 * w * 0.1},${-1 * h * 0.35} + a${r4},${r4} 1 0,1 ${w * 0.1},${-1 * h * 0.65} + + H0 V0 Z` + ); +}; +const bangBkg = function(elem, node) { + const w = node.width; + const h = node.height; + const r = 0.15 * w; + elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr( + "d", + `M0 0 a${r},${r} 1 0,0 ${w * 0.25},${-1 * h * 0.1} + a${r},${r} 1 0,0 ${w * 0.25},${0} + a${r},${r} 1 0,0 ${w * 0.25},${0} + a${r},${r} 1 0,0 ${w * 0.25},${1 * h * 0.1} + + a${r},${r} 1 0,0 ${w * 0.15},${1 * h * 0.33} + a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34} + a${r},${r} 1 0,0 ${-1 * w * 0.15},${1 * h * 0.33} + + a${r},${r} 1 0,0 ${-1 * w * 0.25},${h * 0.15} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${0} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${0} + a${r},${r} 1 0,0 ${-1 * w * 0.25},${-1 * h * 0.15} + + a${r},${r} 1 0,0 ${-1 * w * 0.1},${-1 * h * 0.33} + a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34} + a${r},${r} 1 0,0 ${w * 0.1},${-1 * h * 0.33} + + H0 V0 Z` + ); +}; +const circleBkg = function(elem, node) { + elem.append("circle").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("r", node.width / 2); +}; +function insertPolygonShape(parent, w, h, points, node) { + return parent.insert("polygon", ":first-child").attr( + "points", + points.map(function(d) { + return d.x + "," + d.y; + }).join(" ") + ).attr("transform", "translate(" + (node.width - w) / 2 + ", " + h + ")"); +} +const hexagonBkg = function(elem, node) { + const h = node.height; + const f = 4; + const m = h / f; + const w = node.width - node.padding + 2 * m; + const points = [ + { x: m, y: 0 }, + { x: w - m, y: 0 }, + { x: w, y: -h / 2 }, + { x: w - m, y: -h }, + { x: m, y: -h }, + { x: 0, y: -h / 2 } + ]; + insertPolygonShape(elem, w, h, points, node); +}; +const roundedRectBkg = function(elem, node) { + elem.append("rect").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + type2Str(node.type)).attr("height", node.height).attr("rx", node.padding).attr("ry", node.padding).attr("width", node.width); +}; +const drawNode = function(elem, node, fullSection, conf) { + const section = fullSection % (MAX_SECTIONS - 1); + const nodeElem = elem.append("g"); + node.section = section; + let sectionClass = "section-" + section; + if (section < 0) { + sectionClass += " section-root"; + } + nodeElem.attr("class", (node.class ? node.class + " " : "") + "mindmap-node " + sectionClass); + const bkgElem = nodeElem.append("g"); + const textElem = nodeElem.append("g"); + const txt = textElem.append("text").text(node.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node.width); + const bbox = txt.node().getBBox(); + const fontSize = conf.fontSize.replace ? conf.fontSize.replace("px", "") : conf.fontSize; + node.height = bbox.height + fontSize * 1.1 * 0.5 + node.padding; + node.width = bbox.width + 2 * node.padding; + if (node.icon) { + if (node.type === nodeType.CIRCLE) { + node.height += 50; + node.width += 50; + const icon = nodeElem.append("foreignObject").attr("height", "50px").attr("width", node.width).attr("style", "text-align: center;"); + icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon); + textElem.attr( + "transform", + "translate(" + node.width / 2 + ", " + (node.height / 2 - 1.5 * node.padding) + ")" + ); + } else { + node.width += 50; + const orgHeight = node.height; + node.height = Math.max(orgHeight, 60); + const heightDiff = Math.abs(node.height - orgHeight); + const icon = nodeElem.append("foreignObject").attr("width", "60px").attr("height", node.height).attr("style", "text-align: center;margin-top:" + heightDiff / 2 + "px;"); + icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node.icon); + textElem.attr( + "transform", + "translate(" + (25 + node.width / 2) + ", " + (heightDiff / 2 + node.padding / 2) + ")" + ); + } + } else { + textElem.attr("transform", "translate(" + node.width / 2 + ", " + node.padding / 2 + ")"); + } + switch (node.type) { + case nodeType.DEFAULT: + defaultBkg(bkgElem, node, section); + break; + case nodeType.ROUNDED_RECT: + roundedRectBkg(bkgElem, node); + break; + case nodeType.RECT: + rectBkg(bkgElem, node); + break; + case nodeType.CIRCLE: + bkgElem.attr("transform", "translate(" + node.width / 2 + ", " + +node.height / 2 + ")"); + circleBkg(bkgElem, node); + break; + case nodeType.CLOUD: + cloudBkg(bkgElem, node); + break; + case nodeType.BANG: + bangBkg(bkgElem, node); + break; + case nodeType.HEXAGON: + hexagonBkg(bkgElem, node); + break; + } + setElementForId(node.id, nodeElem); + return node.height; +}; +const drawEdge = function drawEdge2(edgesElem, mindmap, parent, depth, fullSection) { + const section = fullSection % (MAX_SECTIONS - 1); + const sx = parent.x + parent.width / 2; + const sy = parent.y + parent.height / 2; + const ex = mindmap.x + mindmap.width / 2; + const ey = mindmap.y + mindmap.height / 2; + const mx = ex > sx ? sx + Math.abs(sx - ex) / 2 : sx - Math.abs(sx - ex) / 2; + const my = ey > sy ? sy + Math.abs(sy - ey) / 2 : sy - Math.abs(sy - ey) / 2; + const qx = ex > sx ? Math.abs(sx - mx) / 2 + sx : -Math.abs(sx - mx) / 2 + sx; + const qy = ey > sy ? Math.abs(sy - my) / 2 + sy : -Math.abs(sy - my) / 2 + sy; + edgesElem.append("path").attr( + "d", + parent.direction === "TB" || parent.direction === "BT" ? `M${sx},${sy} Q${sx},${qy} ${mx},${my} T${ex},${ey}` : `M${sx},${sy} Q${qx},${sy} ${mx},${my} T${ex},${ey}` + ).attr("class", "edge section-edge-" + section + " edge-depth-" + depth); +}; +const positionNode = function(node) { + const nodeElem = getElementById(node.id); + const x = node.x || 0; + const y = node.y || 0; + nodeElem.attr("transform", "translate(" + x + "," + y + ")"); +}; +const svgDraw = { drawNode, positionNode, drawEdge }; +cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1___default().use((cytoscape_cose_bilkent__WEBPACK_IMPORTED_MODULE_2___default())); +function drawNodes(svg, mindmap, section, conf) { + svgDraw.drawNode(svg, mindmap, section, conf); + if (mindmap.children) { + mindmap.children.forEach((child, index) => { + drawNodes(svg, child, section < 0 ? index : section, conf); + }); + } +} +function drawEdges(edgesEl, cy) { + cy.edges().map((edge, id) => { + const data = edge.data(); + if (edge[0]._private.bodyBounds) { + const bounds = edge[0]._private.rscratch; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.trace("Edge: ", id, data); + edgesEl.insert("path").attr( + "d", + `M ${bounds.startX},${bounds.startY} L ${bounds.midX},${bounds.midY} L${bounds.endX},${bounds.endY} ` + ).attr("class", "edge section-edge-" + data.section + " edge-depth-" + data.depth); + } + }); +} +function addNodes(mindmap, cy, conf, level) { + cy.add({ + group: "nodes", + data: { + id: mindmap.id, + labelText: mindmap.descr, + height: mindmap.height, + width: mindmap.width, + level, + nodeId: mindmap.id, + padding: mindmap.padding, + type: mindmap.type + }, + position: { + x: mindmap.x, + y: mindmap.y + } + }); + if (mindmap.children) { + mindmap.children.forEach((child) => { + addNodes(child, cy, conf, level + 1); + cy.add({ + group: "edges", + data: { + id: `${mindmap.id}_${child.id}`, + source: mindmap.id, + target: child.id, + depth: level, + section: child.section + } + }); + }); + } +} +function layoutMindmap(node, conf) { + return new Promise((resolve) => { + const renderEl = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body").append("div").attr("id", "cy").attr("style", "display:none"); + const cy = cytoscape_dist_cytoscape_umd_js__WEBPACK_IMPORTED_MODULE_1___default()({ + container: document.getElementById("cy"), + // container to render in + style: [ + { + selector: "edge", + style: { + "curve-style": "bezier" + } + } + ] + }); + renderEl.remove(); + addNodes(node, cy, conf, 0); + cy.nodes().forEach(function(n) { + n.layoutDimensions = () => { + const data = n.data(); + return { w: data.width, h: data.height }; + }; + }); + cy.layout({ + name: "cose-bilkent", + quality: "proof", + // headless: true, + styleEnabled: false, + animate: false + }).run(); + cy.ready((e) => { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.info("Ready", e); + resolve(cy); + }); + }); +} +function positionNodes(cy) { + cy.nodes().map((node, id) => { + const data = node.data(); + data.x = node.position().x; + data.y = node.position().y; + svgDraw.positionNode(data); + const el = getElementById(data.nodeId); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.info("Id:", id, "Position: (", node.position().x, ", ", node.position().y, ")", data); + el.attr( + "transform", + `translate(${node.position().x - data.width / 2}, ${node.position().y - data.height / 2})` + ); + el.attr("attr", `apa-${id})`); + }); +} +const draw = async (text, id, version, diagObj) => { + const conf = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.g)(); + diagObj.db.clear(); + diagObj.parser.parse(text); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.l.debug("Renering info diagram\n" + text); + const securityLevel = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.g)().securityLevel; + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("#i" + id); + } + const root = securityLevel === "sandbox" ? (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body"); + const svg = root.select("#" + id); + svg.append("g"); + const mm = diagObj.db.getMindmap(); + const edgesElem = svg.append("g"); + edgesElem.attr("class", "mindmap-edges"); + const nodesElem = svg.append("g"); + nodesElem.attr("class", "mindmap-nodes"); + drawNodes(nodesElem, mm, -1, conf); + const cy = await layoutMindmap(mm, conf); + drawEdges(edgesElem, cy); + positionNodes(cy); + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_13__.s)(void 0, svg, conf.mindmap.padding, conf.mindmap.useMaxWidth); +}; +const mindmapRenderer = { + draw +}; +const genSections = (options) => { + let sections = ""; + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + options["lineColor" + i] = options["lineColor" + i] || options["cScaleInv" + i]; + if ((0,khroma__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z)(options["lineColor" + i])) { + options["lineColor" + i] = (0,khroma__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z)(options["lineColor" + i], 20); + } else { + options["lineColor" + i] = (0,khroma__WEBPACK_IMPORTED_MODULE_16__/* ["default"] */ .Z)(options["lineColor" + i], 20); + } + } + for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) { + const sw = "" + (17 - 3 * i); + sections += ` + .section-${i - 1} rect, .section-${i - 1} path, .section-${i - 1} circle, .section-${i - 1} polygon, .section-${i - 1} path { + fill: ${options["cScale" + i]}; + } + .section-${i - 1} text { + fill: ${options["cScaleLabel" + i]}; + } + .node-icon-${i - 1} { + font-size: 40px; + color: ${options["cScaleLabel" + i]}; + } + .section-edge-${i - 1}{ + stroke: ${options["cScale" + i]}; + } + .edge-depth-${i - 1}{ + stroke-width: ${sw}; + } + .section-${i - 1} line { + stroke: ${options["cScaleInv" + i]} ; + stroke-width: 3; + } + + .disabled, .disabled circle, .disabled text { + fill: lightgray; + } + .disabled text { + fill: #efefef; + } + `; + } + return sections; +}; +const getStyles = (options) => ` + .edge { + stroke-width: 3; + } + ${genSections(options)} + .section-root rect, .section-root path, .section-root circle, .section-root polygon { + fill: ${options.git0}; + } + .section-root text { + fill: ${options.gitBranchLabel0}; + } + .icon-container { + height:100%; + display: flex; + justify-content: center; + align-items: center; + } + .edge { + fill: none; + } +`; +const mindmapStyles = getStyles; +const diagram = { + db: mindmapDb, + renderer: mindmapRenderer, + parser: mindmapParser, + styles: mindmapStyles +}; + +//# sourceMappingURL=mindmap-definition-44684416.js.map + + +/***/ }), + +/***/ 91619: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Z": () => (/* binding */ is_dark) +}); + +// EXTERNAL MODULE: ./node_modules/khroma/dist/utils/index.js + 3 modules +var utils = __webpack_require__(61691); +// EXTERNAL MODULE: ./node_modules/khroma/dist/color/index.js + 4 modules +var dist_color = __webpack_require__(71610); +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/luminance.js +/* IMPORT */ + + +/* MAIN */ +//SOURCE: https://planetcalc.com/7779 +const luminance = (color) => { + const { r, g, b } = dist_color/* default.parse */.Z.parse(color); + const luminance = .2126 * utils/* default.channel.toLinear */.Z.channel.toLinear(r) + .7152 * utils/* default.channel.toLinear */.Z.channel.toLinear(g) + .0722 * utils/* default.channel.toLinear */.Z.channel.toLinear(b); + return utils/* default.lang.round */.Z.lang.round(luminance); +}; +/* EXPORT */ +/* harmony default export */ const methods_luminance = (luminance); + +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/is_light.js +/* IMPORT */ + +/* MAIN */ +const isLight = (color) => { + return methods_luminance(color) >= .5; +}; +/* EXPORT */ +/* harmony default export */ const is_light = (isLight); + +;// CONCATENATED MODULE: ./node_modules/khroma/dist/methods/is_dark.js +/* IMPORT */ + +/* MAIN */ +const isDark = (color) => { + return !is_light(color); +}; +/* EXPORT */ +/* harmony default export */ const is_dark = (isDark); + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7724.ccc7d3de.js b/assets/js/7724.ccc7d3de.js new file mode 100644 index 00000000000..fb34221062e --- /dev/null +++ b/assets/js/7724.ccc7d3de.js @@ -0,0 +1,2 @@ +/*! For license information please see 7724.ccc7d3de.js.LICENSE.txt */ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7724],{84182:function(e,t,n){var r;r=function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=7)}([function(t,n){t.exports=e},function(e,t,n){"use strict";var r=n(0).FDLayoutConstants;function i(){}for(var a in r)i[a]=r[a];i.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,i.DEFAULT_RADIAL_SEPARATION=r.DEFAULT_EDGE_LENGTH,i.DEFAULT_COMPONENT_SEPERATION=60,i.TILE=!0,i.TILING_PADDING_VERTICAL=10,i.TILING_PADDING_HORIZONTAL=10,i.TREE_REDUCTION_ON_INCREMENTAL=!1,e.exports=i},function(e,t,n){"use strict";var r=n(0).FDLayoutEdge;function i(e,t,n){r.call(this,e,t,n)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i},function(e,t,n){"use strict";var r=n(0).LGraph;function i(e,t,n){r.call(this,e,t,n)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i},function(e,t,n){"use strict";var r=n(0).LGraphManager;function i(e){r.call(this,e)}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];e.exports=i},function(e,t,n){"use strict";var r=n(0).FDLayoutNode,i=n(0).IMath;function a(e,t,n,i){r.call(this,e,t,n,i)}for(var o in a.prototype=Object.create(r.prototype),r)a[o]=r[o];a.prototype.move=function(){var e=this.graphManager.getLayout();this.displacementX=e.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY=e.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren,Math.abs(this.displacementX)>e.coolingFactor*e.maxNodeDisplacement&&(this.displacementX=e.coolingFactor*e.maxNodeDisplacement*i.sign(this.displacementX)),Math.abs(this.displacementY)>e.coolingFactor*e.maxNodeDisplacement&&(this.displacementY=e.coolingFactor*e.maxNodeDisplacement*i.sign(this.displacementY)),null==this.child||0==this.child.getNodes().length?this.moveBy(this.displacementX,this.displacementY):this.propogateDisplacementToChildren(this.displacementX,this.displacementY),e.totalDisplacement+=Math.abs(this.displacementX)+Math.abs(this.displacementY),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0},a.prototype.propogateDisplacementToChildren=function(e,t){for(var n,r=this.getChild().getNodes(),i=0;i<r.length;i++)null==(n=r[i]).getChild()?(n.moveBy(e,t),n.displacementX+=e,n.displacementY+=t):n.propogateDisplacementToChildren(e,t)},a.prototype.setPred1=function(e){this.pred1=e},a.prototype.getPred1=function(){return pred1},a.prototype.getPred2=function(){return pred2},a.prototype.setNext=function(e){this.next=e},a.prototype.getNext=function(){return next},a.prototype.setProcessed=function(e){this.processed=e},a.prototype.isProcessed=function(){return processed},e.exports=a},function(e,t,n){"use strict";var r=n(0).FDLayout,i=n(4),a=n(3),o=n(5),s=n(2),l=n(1),u=n(0).FDLayoutConstants,c=n(0).LayoutConstants,h=n(0).Point,d=n(0).PointD,p=n(0).Layout,g=n(0).Integer,f=n(0).IGeometry,v=n(0).LGraph,y=n(0).Transform;function m(){r.call(this),this.toBeTiled={}}for(var b in m.prototype=Object.create(r.prototype),r)m[b]=r[b];m.prototype.newGraphManager=function(){var e=new i(this);return this.graphManager=e,e},m.prototype.newGraph=function(e){return new a(null,this.graphManager,e)},m.prototype.newNode=function(e){return new o(this.graphManager,e)},m.prototype.newEdge=function(e){return new s(null,null,e)},m.prototype.initParameters=function(){r.prototype.initParameters.call(this,arguments),this.isSubLayout||(l.DEFAULT_EDGE_LENGTH<10?this.idealEdgeLength=10:this.idealEdgeLength=l.DEFAULT_EDGE_LENGTH,this.useSmartIdealEdgeLengthCalculation=l.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.springConstant=u.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=u.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=u.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=u.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=u.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=u.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1,this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/u.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=u.CONVERGENCE_CHECK_PERIOD/this.maxIterations,this.coolingAdjuster=1)},m.prototype.layout=function(){return c.DEFAULT_CREATE_BENDS_AS_NEEDED&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},m.prototype.classicLayout=function(){if(this.nodesWithGravity=this.calculateNodesToApplyGravitationTo(),this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity),this.calcNoOfChildrenForAllNodes(),this.graphManager.calcLowestCommonAncestors(),this.graphManager.calcInclusionTreeDepths(),this.graphManager.getRoot().calcEstimatedSize(),this.calcIdealEdgeLengths(),this.incremental)l.TREE_REDUCTION_ON_INCREMENTAL&&(this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation(),t=new Set(this.getAllNodes()),n=this.nodesWithGravity.filter((function(e){return t.has(e)})),this.graphManager.setAllNodesToApplyGravitation(n));else{var e=this.getFlatForest();if(e.length>0)this.positionNodesRadially(e);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var t=new Set(this.getAllNodes()),n=this.nodesWithGravity.filter((function(e){return t.has(e)}));this.graphManager.setAllNodesToApplyGravitation(n),this.positionNodesRandomly()}}return this.initSpringEmbedder(),this.runSpringEmbedder(),!0},m.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}if(this.totalIterations%u.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged()){if(!(this.prunedNodesAll.length>0))return!0;this.isTreeGrowing=!0}this.coolingCycle++,0==this.layoutQuality?this.coolingAdjuster=this.coolingCycle:1==this.layoutQuality&&(this.coolingAdjuster=this.coolingCycle/3),this.coolingFactor=Math.max(this.initialCoolingFactor-Math.pow(this.coolingCycle,Math.log(100*(this.initialCoolingFactor-this.finalTemperature))/Math.log(this.maxCoolingCycle))/100*this.coolingAdjuster,this.finalTemperature),this.animationPeriod=Math.ceil(this.initialAnimationPeriod*Math.sqrt(this.coolingFactor))}if(this.isTreeGrowing){if(this.growTreeIterations%10==0)if(this.prunedNodesAll.length>0){this.graphManager.updateBounds(),this.updateGrid(),this.growTree(this.prunedNodesAll),this.graphManager.resetAllNodesToApplyGravitation();var e=new Set(this.getAllNodes()),t=this.nodesWithGravity.filter((function(t){return e.has(t)}));this.graphManager.setAllNodesToApplyGravitation(t),this.graphManager.updateBounds(),this.updateGrid(),this.coolingFactor=u.DEFAULT_COOLING_FACTOR_INCREMENTAL}else this.isTreeGrowing=!1,this.isGrowthFinished=!0;this.growTreeIterations++}if(this.isGrowthFinished){if(this.isConverged())return!0;this.afterGrowthIterations%10==0&&(this.graphManager.updateBounds(),this.updateGrid()),this.coolingFactor=u.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var n=!this.isTreeGrowing&&!this.isGrowthFinished,r=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(n,r),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},m.prototype.getPositionsData=function(){for(var e=this.graphManager.getAllNodes(),t={},n=0;n<e.length;n++){var r=e[n].rect,i=e[n].id;t[i]={id:i,x:r.getCenterX(),y:r.getCenterY(),w:r.width,h:r.height}}return t},m.prototype.runSpringEmbedder=function(){this.initialAnimationPeriod=25,this.animationPeriod=this.initialAnimationPeriod;var e=!1;if("during"===u.ANIMATE)this.emit("layoutstarted");else{for(;!e;)e=this.tick();this.graphManager.updateBounds()}},m.prototype.calculateNodesToApplyGravitationTo=function(){var e,t,n=[],r=this.graphManager.getGraphs(),i=r.length;for(t=0;t<i;t++)(e=r[t]).updateConnected(),e.isConnected||(n=n.concat(e.getNodes()));return n},m.prototype.createBendpoints=function(){var e=[];e=e.concat(this.graphManager.getAllEdges());var t,n=new Set;for(t=0;t<e.length;t++){var r=e[t];if(!n.has(r)){var i=r.getSource(),a=r.getTarget();if(i==a)r.getBendpoints().push(new d),r.getBendpoints().push(new d),this.createDummyNodesForBendpoints(r),n.add(r);else{var o=[];if(o=(o=o.concat(i.getEdgeListToNode(a))).concat(a.getEdgeListToNode(i)),!n.has(o[0])){var s;if(o.length>1)for(s=0;s<o.length;s++){var l=o[s];l.getBendpoints().push(new d),this.createDummyNodesForBendpoints(l)}o.forEach((function(e){n.add(e)}))}}}if(n.size==e.length)break}},m.prototype.positionNodesRadially=function(e){for(var t=new h(0,0),n=Math.ceil(Math.sqrt(e.length)),r=0,i=0,a=0,o=new d(0,0),s=0;s<e.length;s++){s%n==0&&(a=0,i=r,0!=s&&(i+=l.DEFAULT_COMPONENT_SEPERATION),r=0);var u=e[s],g=p.findCenterOfTree(u);t.x=a,t.y=i,(o=m.radialLayout(u,g,t)).y>r&&(r=Math.floor(o.y)),a=Math.floor(o.x+l.DEFAULT_COMPONENT_SEPERATION)}this.transform(new d(c.WORLD_CENTER_X-o.x/2,c.WORLD_CENTER_Y-o.y/2))},m.radialLayout=function(e,t,n){var r=Math.max(this.maxDiagonalInTree(e),l.DEFAULT_RADIAL_SEPARATION);m.branchRadialLayout(t,null,0,359,0,r);var i=v.calculateBounds(e),a=new y;a.setDeviceOrgX(i.getMinX()),a.setDeviceOrgY(i.getMinY()),a.setWorldOrgX(n.x),a.setWorldOrgY(n.y);for(var o=0;o<e.length;o++)e[o].transform(a);var s=new d(i.getMaxX(),i.getMaxY());return a.inverseTransformPoint(s)},m.branchRadialLayout=function(e,t,n,r,i,a){var o=(r-n+1)/2;o<0&&(o+=180);var s=(o+n)%360*f.TWO_PI/360,l=(Math.cos(s),i*Math.cos(s)),u=i*Math.sin(s);e.setCenter(l,u);var c=[],h=(c=c.concat(e.getEdges())).length;null!=t&&h--;for(var d,p=0,g=c.length,v=e.getEdgesBetween(t);v.length>1;){var y=v[0];v.splice(0,1);var b=c.indexOf(y);b>=0&&c.splice(b,1),g--,h--}d=null!=t?(c.indexOf(v[0])+1)%g:0;for(var x=Math.abs(r-n)/h,w=d;p!=h;w=++w%g){var E=c[w].getOtherEnd(e);if(E!=t){var T=(n+p*x)%360,_=(T+x)%360;m.branchRadialLayout(E,e,T,_,i+a,a),p++}}},m.maxDiagonalInTree=function(e){for(var t=g.MIN_VALUE,n=0;n<e.length;n++){var r=e[n].getDiagonal();r>t&&(t=r)}return t},m.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},m.prototype.groupZeroDegreeMembers=function(){var e=this,t={};this.memberGroups={},this.idToDummyNode={};for(var n=[],r=this.graphManager.getAllNodes(),i=0;i<r.length;i++){var a=(s=r[i]).getParent();0!==this.getNodeDegreeWithChildren(s)||null!=a.id&&this.getToBeTiled(a)||n.push(s)}for(i=0;i<n.length;i++){var s,l=(s=n[i]).getParent().id;void 0===t[l]&&(t[l]=[]),t[l]=t[l].concat(s)}Object.keys(t).forEach((function(n){if(t[n].length>1){var r="DummyCompound_"+n;e.memberGroups[r]=t[n];var i=t[n][0].getParent(),a=new o(e.graphManager);a.id=r,a.paddingLeft=i.paddingLeft||0,a.paddingRight=i.paddingRight||0,a.paddingBottom=i.paddingBottom||0,a.paddingTop=i.paddingTop||0,e.idToDummyNode[r]=a;var s=e.getGraphManager().add(e.newGraph(),a),l=i.getChild();l.add(a);for(var u=0;u<t[n].length;u++){var c=t[n][u];l.remove(c),s.add(c)}}}))},m.prototype.clearCompounds=function(){var e={},t={};this.performDFSOnCompounds();for(var n=0;n<this.compoundOrder.length;n++)t[this.compoundOrder[n].id]=this.compoundOrder[n],e[this.compoundOrder[n].id]=[].concat(this.compoundOrder[n].getChild().getNodes()),this.graphManager.remove(this.compoundOrder[n].getChild()),this.compoundOrder[n].child=null;this.graphManager.resetAllNodes(),this.tileCompoundMembers(e,t)},m.prototype.clearZeroDegreeMembers=function(){var e=this,t=this.tiledZeroDegreePack=[];Object.keys(this.memberGroups).forEach((function(n){var r=e.idToDummyNode[n];t[n]=e.tileNodes(e.memberGroups[n],r.paddingLeft+r.paddingRight),r.rect.width=t[n].width,r.rect.height=t[n].height}))},m.prototype.repopulateCompounds=function(){for(var e=this.compoundOrder.length-1;e>=0;e--){var t=this.compoundOrder[e],n=t.id,r=t.paddingLeft,i=t.paddingTop;this.adjustLocations(this.tiledMemberPack[n],t.rect.x,t.rect.y,r,i)}},m.prototype.repopulateZeroDegreeMembers=function(){var e=this,t=this.tiledZeroDegreePack;Object.keys(t).forEach((function(n){var r=e.idToDummyNode[n],i=r.paddingLeft,a=r.paddingTop;e.adjustLocations(t[n],r.rect.x,r.rect.y,i,a)}))},m.prototype.getToBeTiled=function(e){var t=e.id;if(null!=this.toBeTiled[t])return this.toBeTiled[t];var n=e.getChild();if(null==n)return this.toBeTiled[t]=!1,!1;for(var r=n.getNodes(),i=0;i<r.length;i++){var a=r[i];if(this.getNodeDegree(a)>0)return this.toBeTiled[t]=!1,!1;if(null!=a.getChild()){if(!this.getToBeTiled(a))return this.toBeTiled[t]=!1,!1}else this.toBeTiled[a.id]=!1}return this.toBeTiled[t]=!0,!0},m.prototype.getNodeDegree=function(e){e.id;for(var t=e.getEdges(),n=0,r=0;r<t.length;r++){var i=t[r];i.getSource().id!==i.getTarget().id&&(n+=1)}return n},m.prototype.getNodeDegreeWithChildren=function(e){var t=this.getNodeDegree(e);if(null==e.getChild())return t;for(var n=e.getChild().getNodes(),r=0;r<n.length;r++){var i=n[r];t+=this.getNodeDegreeWithChildren(i)}return t},m.prototype.performDFSOnCompounds=function(){this.compoundOrder=[],this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes())},m.prototype.fillCompexOrderByDFS=function(e){for(var t=0;t<e.length;t++){var n=e[t];null!=n.getChild()&&this.fillCompexOrderByDFS(n.getChild().getNodes()),this.getToBeTiled(n)&&this.compoundOrder.push(n)}},m.prototype.adjustLocations=function(e,t,n,r,i){n+=i;for(var a=t+=r,o=0;o<e.rows.length;o++){var s=e.rows[o];t=a;for(var l=0,u=0;u<s.length;u++){var c=s[u];c.rect.x=t,c.rect.y=n,t+=c.rect.width+e.horizontalPadding,c.rect.height>l&&(l=c.rect.height)}n+=l+e.verticalPadding}},m.prototype.tileCompoundMembers=function(e,t){var n=this;this.tiledMemberPack=[],Object.keys(e).forEach((function(r){var i=t[r];n.tiledMemberPack[r]=n.tileNodes(e[r],i.paddingLeft+i.paddingRight),i.rect.width=n.tiledMemberPack[r].width,i.rect.height=n.tiledMemberPack[r].height}))},m.prototype.tileNodes=function(e,t){var n={rows:[],rowWidth:[],rowHeight:[],width:0,height:t,verticalPadding:l.TILING_PADDING_VERTICAL,horizontalPadding:l.TILING_PADDING_HORIZONTAL};e.sort((function(e,t){return e.rect.width*e.rect.height>t.rect.width*t.rect.height?-1:e.rect.width*e.rect.height<t.rect.width*t.rect.height?1:0}));for(var r=0;r<e.length;r++){var i=e[r];0==n.rows.length?this.insertNodeToRow(n,i,0,t):this.canAddHorizontal(n,i.rect.width,i.rect.height)?this.insertNodeToRow(n,i,this.getShortestRowIndex(n),t):this.insertNodeToRow(n,i,n.rows.length,t),this.shiftToLastRow(n)}return n},m.prototype.insertNodeToRow=function(e,t,n,r){var i=r;n==e.rows.length&&(e.rows.push([]),e.rowWidth.push(i),e.rowHeight.push(0));var a=e.rowWidth[n]+t.rect.width;e.rows[n].length>0&&(a+=e.horizontalPadding),e.rowWidth[n]=a,e.width<a&&(e.width=a);var o=t.rect.height;n>0&&(o+=e.verticalPadding);var s=0;o>e.rowHeight[n]&&(s=e.rowHeight[n],e.rowHeight[n]=o,s=e.rowHeight[n]-s),e.height+=s,e.rows[n].push(t)},m.prototype.getShortestRowIndex=function(e){for(var t=-1,n=Number.MAX_VALUE,r=0;r<e.rows.length;r++)e.rowWidth[r]<n&&(t=r,n=e.rowWidth[r]);return t},m.prototype.getLongestRowIndex=function(e){for(var t=-1,n=Number.MIN_VALUE,r=0;r<e.rows.length;r++)e.rowWidth[r]>n&&(t=r,n=e.rowWidth[r]);return t},m.prototype.canAddHorizontal=function(e,t,n){var r=this.getShortestRowIndex(e);if(r<0)return!0;var i=e.rowWidth[r];if(i+e.horizontalPadding+t<=e.width)return!0;var a,o,s=0;return e.rowHeight[r]<n&&r>0&&(s=n+e.verticalPadding-e.rowHeight[r]),a=e.width-i>=t+e.horizontalPadding?(e.height+s)/(i+t+e.horizontalPadding):(e.height+s)/e.width,s=n+e.verticalPadding,(o=e.width<t?(e.height+s)/t:(e.height+s)/e.width)<1&&(o=1/o),a<1&&(a=1/a),a<o},m.prototype.shiftToLastRow=function(e){var t=this.getLongestRowIndex(e),n=e.rowWidth.length-1,r=e.rows[t],i=r[r.length-1],a=i.width+e.horizontalPadding;if(e.width-e.rowWidth[n]>a&&t!=n){r.splice(-1,1),e.rows[n].push(i),e.rowWidth[t]=e.rowWidth[t]-a,e.rowWidth[n]=e.rowWidth[n]+a,e.width=e.rowWidth[instance.getLongestRowIndex(e)];for(var o=Number.MIN_VALUE,s=0;s<r.length;s++)r[s].height>o&&(o=r[s].height);t>0&&(o+=e.verticalPadding);var l=e.rowHeight[t]+e.rowHeight[n];e.rowHeight[t]=o,e.rowHeight[n]<i.height+e.verticalPadding&&(e.rowHeight[n]=i.height+e.verticalPadding);var u=e.rowHeight[t]+e.rowHeight[n];e.height+=u-l,this.shiftToLastRow(e)}},m.prototype.tilingPreLayout=function(){l.TILE&&(this.groupZeroDegreeMembers(),this.clearCompounds(),this.clearZeroDegreeMembers())},m.prototype.tilingPostLayout=function(){l.TILE&&(this.repopulateZeroDegreeMembers(),this.repopulateCompounds())},m.prototype.reduceTrees=function(){for(var e,t=[],n=!0;n;){var r=this.graphManager.getAllNodes(),i=[];n=!1;for(var a=0;a<r.length;a++)1!=(e=r[a]).getEdges().length||e.getEdges()[0].isInterGraph||null!=e.getChild()||(i.push([e,e.getEdges()[0],e.getOwner()]),n=!0);if(1==n){for(var o=[],s=0;s<i.length;s++)1==i[s][0].getEdges().length&&(o.push(i[s]),i[s][0].getOwner().remove(i[s][0]));t.push(o),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()}}this.prunedNodesAll=t},m.prototype.growTree=function(e){for(var t,n=e[e.length-1],r=0;r<n.length;r++)t=n[r],this.findPlaceforPrunedNode(t),t[2].add(t[0]),t[2].add(t[1],t[1].source,t[1].target);e.splice(e.length-1,1),this.graphManager.resetAllNodes(),this.graphManager.resetAllEdges()},m.prototype.findPlaceforPrunedNode=function(e){var t,n,r=e[0],i=(n=r==e[1].source?e[1].target:e[1].source).startX,a=n.finishX,o=n.startY,s=n.finishY,l=[0,0,0,0];if(o>0)for(var c=i;c<=a;c++)l[0]+=this.grid[c][o-1].length+this.grid[c][o].length-1;if(a<this.grid.length-1)for(c=o;c<=s;c++)l[1]+=this.grid[a+1][c].length+this.grid[a][c].length-1;if(s<this.grid[0].length-1)for(c=i;c<=a;c++)l[2]+=this.grid[c][s+1].length+this.grid[c][s].length-1;if(i>0)for(c=o;c<=s;c++)l[3]+=this.grid[i-1][c].length+this.grid[i][c].length-1;for(var h,d,p=g.MAX_VALUE,f=0;f<l.length;f++)l[f]<p?(p=l[f],h=1,d=f):l[f]==p&&h++;if(3==h&&0==p)0==l[0]&&0==l[1]&&0==l[2]?t=1:0==l[0]&&0==l[1]&&0==l[3]?t=0:0==l[0]&&0==l[2]&&0==l[3]?t=3:0==l[1]&&0==l[2]&&0==l[3]&&(t=2);else if(2==h&&0==p){var v=Math.floor(2*Math.random());t=0==l[0]&&0==l[1]?0==v?0:1:0==l[0]&&0==l[2]?0==v?0:2:0==l[0]&&0==l[3]?0==v?0:3:0==l[1]&&0==l[2]?0==v?1:2:0==l[1]&&0==l[3]?0==v?1:3:0==v?2:3}else t=4==h&&0==p?v=Math.floor(4*Math.random()):d;0==t?r.setCenter(n.getCenterX(),n.getCenterY()-n.getHeight()/2-u.DEFAULT_EDGE_LENGTH-r.getHeight()/2):1==t?r.setCenter(n.getCenterX()+n.getWidth()/2+u.DEFAULT_EDGE_LENGTH+r.getWidth()/2,n.getCenterY()):2==t?r.setCenter(n.getCenterX(),n.getCenterY()+n.getHeight()/2+u.DEFAULT_EDGE_LENGTH+r.getHeight()/2):r.setCenter(n.getCenterX()-n.getWidth()/2-u.DEFAULT_EDGE_LENGTH-r.getWidth()/2,n.getCenterY())},e.exports=m},function(e,t,n){"use strict";var r={};r.layoutBase=n(0),r.CoSEConstants=n(1),r.CoSEEdge=n(2),r.CoSEGraph=n(3),r.CoSEGraphManager=n(4),r.CoSELayout=n(6),r.CoSENode=n(5),e.exports=r}])},e.exports=r(n(82241))},14607:function(e,t,n){var r;r=function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(t,n){t.exports=e},function(e,t,n){"use strict";var r=n(0).layoutBase.LayoutConstants,i=n(0).layoutBase.FDLayoutConstants,a=n(0).CoSEConstants,o=n(0).CoSELayout,s=n(0).CoSENode,l=n(0).layoutBase.PointD,u=n(0).layoutBase.DimensionD,c={ready:function(){},stop:function(){},quality:"default",nodeDimensionsIncludeLabels:!1,refresh:30,fit:!0,padding:10,randomize:!0,nodeRepulsion:4500,idealEdgeLength:50,edgeElasticity:.45,nestingFactor:.1,gravity:.25,numIter:2500,tile:!0,animate:"end",animationDuration:500,tilingPaddingVertical:10,tilingPaddingHorizontal:10,gravityRangeCompound:1.5,gravityCompound:1,gravityRange:3.8,initialEnergyOnIncremental:.5};function h(e){this.options=function(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n}(c,e),d(this.options)}var d=function(e){null!=e.nodeRepulsion&&(a.DEFAULT_REPULSION_STRENGTH=i.DEFAULT_REPULSION_STRENGTH=e.nodeRepulsion),null!=e.idealEdgeLength&&(a.DEFAULT_EDGE_LENGTH=i.DEFAULT_EDGE_LENGTH=e.idealEdgeLength),null!=e.edgeElasticity&&(a.DEFAULT_SPRING_STRENGTH=i.DEFAULT_SPRING_STRENGTH=e.edgeElasticity),null!=e.nestingFactor&&(a.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=e.nestingFactor),null!=e.gravity&&(a.DEFAULT_GRAVITY_STRENGTH=i.DEFAULT_GRAVITY_STRENGTH=e.gravity),null!=e.numIter&&(a.MAX_ITERATIONS=i.MAX_ITERATIONS=e.numIter),null!=e.gravityRange&&(a.DEFAULT_GRAVITY_RANGE_FACTOR=i.DEFAULT_GRAVITY_RANGE_FACTOR=e.gravityRange),null!=e.gravityCompound&&(a.DEFAULT_COMPOUND_GRAVITY_STRENGTH=i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=e.gravityCompound),null!=e.gravityRangeCompound&&(a.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=e.gravityRangeCompound),null!=e.initialEnergyOnIncremental&&(a.DEFAULT_COOLING_FACTOR_INCREMENTAL=i.DEFAULT_COOLING_FACTOR_INCREMENTAL=e.initialEnergyOnIncremental),"draft"==e.quality?r.QUALITY=0:"proof"==e.quality?r.QUALITY=2:r.QUALITY=1,a.NODE_DIMENSIONS_INCLUDE_LABELS=i.NODE_DIMENSIONS_INCLUDE_LABELS=r.NODE_DIMENSIONS_INCLUDE_LABELS=e.nodeDimensionsIncludeLabels,a.DEFAULT_INCREMENTAL=i.DEFAULT_INCREMENTAL=r.DEFAULT_INCREMENTAL=!e.randomize,a.ANIMATE=i.ANIMATE=r.ANIMATE=e.animate,a.TILE=e.tile,a.TILING_PADDING_VERTICAL="function"==typeof e.tilingPaddingVertical?e.tilingPaddingVertical.call():e.tilingPaddingVertical,a.TILING_PADDING_HORIZONTAL="function"==typeof e.tilingPaddingHorizontal?e.tilingPaddingHorizontal.call():e.tilingPaddingHorizontal};h.prototype.run=function(){var e,t,n=this.options,r=(this.idToLNode={},this.layout=new o),i=this;i.stopped=!1,this.cy=this.options.cy,this.cy.trigger({type:"layoutstart",layout:this});var a=r.newGraphManager();this.gm=a;var s=this.options.eles.nodes(),l=this.options.eles.edges();this.root=a.addRoot(),this.processChildrenList(this.root,this.getTopMostNodes(s),r);for(var u=0;u<l.length;u++){var c=l[u],h=this.idToLNode[c.data("source")],d=this.idToLNode[c.data("target")];h!==d&&0==h.getEdgesBetween(d).length&&(a.add(r.newEdge(),h,d).id=c.id())}var p=function(e,t){"number"==typeof e&&(e=t);var n=e.data("id"),r=i.idToLNode[n];return{x:r.getRect().getCenterX(),y:r.getRect().getCenterY()}},g=function a(){for(var o,s=function(){n.fit&&n.cy.fit(n.eles,n.padding),e||(e=!0,i.cy.one("layoutready",n.ready),i.cy.trigger({type:"layoutready",layout:i}))},l=i.options.refresh,u=0;u<l&&!o;u++)o=i.stopped||i.layout.tick();if(o)return r.checkLayoutSuccess()&&!r.isSubLayout&&r.doPostLayout(),r.tilingPostLayout&&r.tilingPostLayout(),r.isLayoutFinished=!0,i.options.eles.nodes().positions(p),s(),i.cy.one("layoutstop",i.options.stop),i.cy.trigger({type:"layoutstop",layout:i}),t&&cancelAnimationFrame(t),void(e=!1);var c=i.layout.getPositionsData();n.eles.nodes().positions((function(e,t){if("number"==typeof e&&(e=t),!e.isParent()){for(var n=e.id(),r=c[n],i=e;null==r&&(r=c[i.data("parent")]||c["DummyCompound_"+i.data("parent")],c[n]=r,null!=(i=i.parent()[0])););return null!=r?{x:r.x,y:r.y}:{x:e.position("x"),y:e.position("y")}}})),s(),t=requestAnimationFrame(a)};return r.addListener("layoutstarted",(function(){"during"===i.options.animate&&(t=requestAnimationFrame(g))})),r.runLayout(),"during"!==this.options.animate&&(i.options.eles.nodes().not(":parent").layoutPositions(i,i.options,p),e=!1),this},h.prototype.getTopMostNodes=function(e){for(var t={},n=0;n<e.length;n++)t[e[n].id()]=!0;var r=e.filter((function(e,n){"number"==typeof e&&(e=n);for(var r=e.parent()[0];null!=r;){if(t[r.id()])return!1;r=r.parent()[0]}return!0}));return r},h.prototype.processChildrenList=function(e,t,n){for(var r=t.length,i=0;i<r;i++){var a,o,c=t[i],h=c.children(),d=c.layoutDimensions({nodeDimensionsIncludeLabels:this.options.nodeDimensionsIncludeLabels});if((a=null!=c.outerWidth()&&null!=c.outerHeight()?e.add(new s(n.graphManager,new l(c.position("x")-d.w/2,c.position("y")-d.h/2),new u(parseFloat(d.w),parseFloat(d.h)))):e.add(new s(this.graphManager))).id=c.data("id"),a.paddingLeft=parseInt(c.css("padding")),a.paddingTop=parseInt(c.css("padding")),a.paddingRight=parseInt(c.css("padding")),a.paddingBottom=parseInt(c.css("padding")),this.options.nodeDimensionsIncludeLabels&&c.isParent()){var p=c.boundingBox({includeLabels:!0,includeNodes:!1}).w,g=c.boundingBox({includeLabels:!0,includeNodes:!1}).h,f=c.css("text-halign");a.labelWidth=p,a.labelHeight=g,a.labelPos=f}this.idToLNode[c.data("id")]=a,isNaN(a.rect.x)&&(a.rect.x=0),isNaN(a.rect.y)&&(a.rect.y=0),null!=h&&h.length>0&&(o=n.getGraphManager().add(n.newGraph(),a),this.processChildrenList(o,h,n))}},h.prototype.stop=function(){return this.stopped=!0,this};var p=function(e){e("layout","cose-bilkent",h)};"undefined"!=typeof cytoscape&&p(cytoscape),e.exports=p}])},e.exports=r(n(84182))},71377:function(e,t,n){e.exports=function(){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){return s(e)||l(e,t)||u(e,t)||h()}function s(e){if(Array.isArray(e))return e}function l(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a=[],o=!0,s=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(l){s=!0,i=l}finally{try{o||null==n.return||n.return()}finally{if(s)throw i}}return a}}function u(e,t){if(e){if("string"==typeof e)return c(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function h(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var d="undefined"==typeof window?null:window,p=d?d.navigator:null;d&&d.document;var g=e(""),f=e({}),v=e((function(){})),y="undefined"==typeof HTMLElement?"undefined":e(HTMLElement),m=function(e){return e&&e.instanceString&&x(e.instanceString)?e.instanceString():null},b=function(t){return null!=t&&e(t)==g},x=function(t){return null!=t&&e(t)===v},w=function(e){return!N(e)&&(Array.isArray?Array.isArray(e):null!=e&&e instanceof Array)},E=function(t){return null!=t&&e(t)===f&&!w(t)&&t.constructor===Object},T=function(t){return null!=t&&e(t)===f},_=function(t){return null!=t&&e(t)===e(1)&&!isNaN(t)},D=function(e){return _(e)&&Math.floor(e)===e},C=function(e){return"undefined"===y?void 0:null!=e&&e instanceof HTMLElement},N=function(e){return A(e)||L(e)},A=function(e){return"collection"===m(e)&&e._private.single},L=function(e){return"collection"===m(e)&&!e._private.single},S=function(e){return"core"===m(e)},O=function(e){return"stylesheet"===m(e)},I=function(e){return"event"===m(e)},k=function(e){return null==e||!(""!==e&&!e.match(/^\s+$/))},M=function(e){return"undefined"!=typeof HTMLElement&&e instanceof HTMLElement},P=function(e){return E(e)&&_(e.x1)&&_(e.x2)&&_(e.y1)&&_(e.y2)},R=function(e){return T(e)&&x(e.then)},B=function(){return p&&p.userAgent.match(/msie|trident|edge/i)},F=function(e,t){t||(t=function(){if(1===arguments.length)return arguments[0];if(0===arguments.length)return"undefined";for(var e=[],t=0;t<arguments.length;t++)e.push(arguments[t]);return e.join("$")});var n=function n(){var r,i=this,a=arguments,o=t.apply(i,a),s=n.cache;return(r=s[o])||(r=s[o]=e.apply(i,a)),r};return n.cache={},n},z=F((function(e){return e.replace(/([A-Z])/g,(function(e){return"-"+e.toLowerCase()}))})),G=F((function(e){return e.replace(/(-\w)/g,(function(e){return e[1].toUpperCase()}))})),Y=F((function(e,t){return e+t[0].toUpperCase()+t.substring(1)}),(function(e,t){return e+"$"+t})),X=function(e){return k(e)?e:e.charAt(0).toUpperCase()+e.substring(1)},V="(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))",U="rgb[a]?\\(("+V+"[%]?)\\s*,\\s*("+V+"[%]?)\\s*,\\s*("+V+"[%]?)(?:\\s*,\\s*("+V+"))?\\)",j="rgb[a]?\\((?:"+V+"[%]?)\\s*,\\s*(?:"+V+"[%]?)\\s*,\\s*(?:"+V+"[%]?)(?:\\s*,\\s*(?:"+V+"))?\\)",H="hsl[a]?\\(("+V+")\\s*,\\s*("+V+"[%])\\s*,\\s*("+V+"[%])(?:\\s*,\\s*("+V+"))?\\)",q="hsl[a]?\\((?:"+V+")\\s*,\\s*(?:"+V+"[%])\\s*,\\s*(?:"+V+"[%])(?:\\s*,\\s*(?:"+V+"))?\\)",W="\\#[0-9a-fA-F]{3}",$="\\#[0-9a-fA-F]{6}",K=function(e,t){return e<t?-1:e>t?1:0},Z=function(e,t){return-1*K(e,t)},Q=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n<t.length;n++){var r=t[n];if(null!=r)for(var i=Object.keys(r),a=0;a<i.length;a++){var o=i[a];e[o]=r[o]}}return e},J=function(e){if((4===e.length||7===e.length)&&"#"===e[0]){var t,n,r,i=16;return 4===e.length?(t=parseInt(e[1]+e[1],i),n=parseInt(e[2]+e[2],i),r=parseInt(e[3]+e[3],i)):(t=parseInt(e[1]+e[2],i),n=parseInt(e[3]+e[4],i),r=parseInt(e[5]+e[6],i)),[t,n,r]}},ee=function(e){var t,n,r,i,a,o,s,l;function u(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var c=new RegExp("^"+H+"$").exec(e);if(c){if((n=parseInt(c[1]))<0?n=(360- -1*n%360)%360:n>360&&(n%=360),n/=360,(r=parseFloat(c[2]))<0||r>100)return;if(r/=100,(i=parseFloat(c[3]))<0||i>100)return;if(i/=100,void 0!==(a=c[4])&&((a=parseFloat(a))<0||a>1))return;if(0===r)o=s=l=Math.round(255*i);else{var h=i<.5?i*(1+r):i+r-i*r,d=2*i-h;o=Math.round(255*u(d,h,n+1/3)),s=Math.round(255*u(d,h,n)),l=Math.round(255*u(d,h,n-1/3))}t=[o,s,l,a]}return t},te=function(e){var t,n=new RegExp("^"+U+"$").exec(e);if(n){t=[];for(var r=[],i=1;i<=3;i++){var a=n[i];if("%"===a[a.length-1]&&(r[i]=!0),a=parseFloat(a),r[i]&&(a=a/100*255),a<0||a>255)return;t.push(Math.floor(a))}var o=r[1]||r[2]||r[3],s=r[1]&&r[2]&&r[3];if(o&&!s)return;var l=n[4];if(void 0!==l){if((l=parseFloat(l))<0||l>1)return;t.push(l)}}return t},ne=function(e){return ie[e.toLowerCase()]},re=function(e){return(w(e)?e:null)||ne(e)||J(e)||te(e)||ee(e)},ie={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},ae=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i<r;i++){var a=n[i];if(E(a))throw Error("Tried to set map with object key");i<n.length-1?(null==t[a]&&(t[a]={}),t=t[a]):t[a]=e.value}},oe=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i<r;i++){var a=n[i];if(E(a))throw Error("Tried to get map with object key");if(null==(t=t[a]))return t}return t};function se(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var le=se,ue="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{};function ce(e,t){return e(t={exports:{}},t.exports),t.exports}var he="object"==typeof ue&&ue&&ue.Object===Object&&ue,de="object"==typeof self&&self&&self.Object===Object&&self,pe=he||de||Function("return this")(),ge=function(){return pe.Date.now()},fe=/\s/;function ve(e){for(var t=e.length;t--&&fe.test(e.charAt(t)););return t}var ye=ve,me=/^\s+/;function be(e){return e?e.slice(0,ye(e)+1).replace(me,""):e}var xe=be,we=pe.Symbol,Ee=Object.prototype,Te=Ee.hasOwnProperty,_e=Ee.toString,De=we?we.toStringTag:void 0;function Ce(e){var t=Te.call(e,De),n=e[De];try{e[De]=void 0;var r=!0}catch(a){}var i=_e.call(e);return r&&(t?e[De]=n:delete e[De]),i}var Ne=Ce,Ae=Object.prototype.toString;function Le(e){return Ae.call(e)}var Se=Le,Oe="[object Null]",Ie="[object Undefined]",ke=we?we.toStringTag:void 0;function Me(e){return null==e?void 0===e?Ie:Oe:ke&&ke in Object(e)?Ne(e):Se(e)}var Pe=Me;function Re(e){return null!=e&&"object"==typeof e}var Be=Re,Fe="[object Symbol]";function ze(e){return"symbol"==typeof e||Be(e)&&Pe(e)==Fe}var Ge=ze,Ye=NaN,Xe=/^[-+]0x[0-9a-f]+$/i,Ve=/^0b[01]+$/i,Ue=/^0o[0-7]+$/i,je=parseInt;function He(e){if("number"==typeof e)return e;if(Ge(e))return Ye;if(le(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=le(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=xe(e);var n=Ve.test(e);return n||Ue.test(e)?je(e.slice(2),n?2:8):Xe.test(e)?Ye:+e}var qe=He,We="Expected a function",$e=Math.max,Ke=Math.min;function Ze(e,t,n){var r,i,a,o,s,l,u=0,c=!1,h=!1,d=!0;if("function"!=typeof e)throw new TypeError(We);function p(t){var n=r,a=i;return r=i=void 0,u=t,o=e.apply(a,n)}function g(e){return u=e,s=setTimeout(y,t),c?p(e):o}function f(e){var n=t-(e-l);return h?Ke(n,a-(e-u)):n}function v(e){var n=e-l;return void 0===l||n>=t||n<0||h&&e-u>=a}function y(){var e=ge();if(v(e))return m(e);s=setTimeout(y,f(e))}function m(e){return s=void 0,d&&r?p(e):(r=i=void 0,o)}function b(){void 0!==s&&clearTimeout(s),u=0,r=l=i=s=void 0}function x(){return void 0===s?o:m(ge())}function w(){var e=ge(),n=v(e);if(r=arguments,i=this,l=e,n){if(void 0===s)return g(l);if(h)return clearTimeout(s),s=setTimeout(y,t),p(l)}return void 0===s&&(s=setTimeout(y,t)),o}return t=qe(t)||0,le(n)&&(c=!!n.leading,a=(h="maxWait"in n)?$e(qe(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),w.cancel=b,w.flush=x,w}var Qe=Ze,Je=d?d.performance:null,et=Je&&Je.now?function(){return Je.now()}:function(){return Date.now()},tt=function(){if(d){if(d.requestAnimationFrame)return function(e){d.requestAnimationFrame(e)};if(d.mozRequestAnimationFrame)return function(e){d.mozRequestAnimationFrame(e)};if(d.webkitRequestAnimationFrame)return function(e){d.webkitRequestAnimationFrame(e)};if(d.msRequestAnimationFrame)return function(e){d.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout((function(){e(et())}),1e3/60)}}(),nt=function(e){return tt(e)},rt=et,it=9261,at=65599,ot=5381,st=function(e){for(var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:it;!(t=e.next()).done;)n=n*at+t.value|0;return n},lt=function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:it)*at+e|0},ut=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ot;return(t<<5)+t+e|0},ct=function(e,t){return 2097152*e+t},ht=function(e){return 2097152*e[0]+e[1]},dt=function(e,t){return[lt(e[0],t[0]),ut(e[1],t[1])]},pt=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return st({next:function(){return r<i?n.value=e[r++]:n.done=!0,n}},t)},gt=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return st({next:function(){return r<i?n.value=e.charCodeAt(r++):n.done=!0,n}},t)},ft=function(){return vt(arguments)},vt=function(e){for(var t,n=0;n<e.length;n++){var r=e[n];t=0===n?gt(r):gt(r,t)}return t},yt=!0,mt=null!=console.warn,bt=null!=console.trace,xt=Number.MAX_SAFE_INTEGER||9007199254740991,wt=function(){return!0},Et=function(){return!1},Tt=function(){return 0},_t=function(){},Dt=function(e){throw new Error(e)},Ct=function(e){if(void 0===e)return yt;yt=!!e},Nt=function(e){Ct()&&(mt?console.warn(e):(console.log(e),bt&&console.trace()))},At=function(e){return Q({},e)},Lt=function(e){return null==e?e:w(e)?e.slice():E(e)?At(e):e},St=function(e){return e.slice()},Ot=function(e,t){for(t=e="";e++<36;t+=51*e&52?(15^e?8^Math.random()*(20^e?16:4):4).toString(16):"-");return t},It={},kt=function(){return It},Mt=function(e){var t=Object.keys(e);return function(n){for(var r={},i=0;i<t.length;i++){var a=t[i],o=null==n?void 0:n[a];r[a]=void 0===o?e[a]:o}return r}},Pt=function(e,t,n){for(var r=e.length-1;r>=0&&(e[r]!==t||(e.splice(r,1),!n));r--);},Rt=function(e){e.splice(0,e.length)},Bt=function(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.push(r)}},Ft=function(e,t,n){return n&&(t=Y(n,t)),e[t]},zt=function(e,t,n,r){n&&(t=Y(n,t)),e[t]=r},Gt=function(){function e(){t(this,e),this._obj={}}return i(e,[{key:"set",value:function(e,t){return this._obj[e]=t,this}},{key:"delete",value:function(e){return this._obj[e]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(e){return void 0!==this._obj[e]}},{key:"get",value:function(e){return this._obj[e]}}]),e}(),Yt="undefined"!=typeof Map?Map:Gt,Xt="undefined",Vt=function(){function e(n){if(t(this,e),this._obj=Object.create(null),this.size=0,null!=n){var r;r=null!=n.instanceString&&n.instanceString()===this.instanceString()?n.toArray():n;for(var i=0;i<r.length;i++)this.add(r[i])}}return i(e,[{key:"instanceString",value:function(){return"set"}},{key:"add",value:function(e){var t=this._obj;1!==t[e]&&(t[e]=1,this.size++)}},{key:"delete",value:function(e){var t=this._obj;1===t[e]&&(t[e]=0,this.size--)}},{key:"clear",value:function(){this._obj=Object.create(null)}},{key:"has",value:function(e){return 1===this._obj[e]}},{key:"toArray",value:function(){var e=this;return Object.keys(this._obj).filter((function(t){return e.has(t)}))}},{key:"forEach",value:function(e,t){return this.toArray().forEach(e,t)}}]),e}(),Ut=("undefined"==typeof Set?"undefined":e(Set))!==Xt?Set:Vt,jt=function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0!==e&&void 0!==t&&S(e)){var r=t.group;if(null==r&&(r=t.data&&null!=t.data.source&&null!=t.data.target?"edges":"nodes"),"nodes"===r||"edges"===r){this.length=1,this[0]=this;var i=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:r,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:void 0===t.selectable||!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:void 0===t.grabbable||!!t.grabbable,pannable:void 0===t.pannable?"edges"===r:!!t.pannable,active:!1,classes:new Ut,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(null==i.position.x&&(i.position.x=0),null==i.position.y&&(i.position.y=0),t.renderedPosition){var a=t.renderedPosition,o=e.pan(),s=e.zoom();i.position={x:(a.x-o.x)/s,y:(a.y-o.y)/s}}var l=[];w(t.classes)?l=t.classes:b(t.classes)&&(l=t.classes.split(/\s+/));for(var u=0,c=l.length;u<c;u++){var h=l[u];h&&""!==h&&i.classes.add(h)}this.createEmitter();var d=t.style||t.css;d&&(Nt("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead."),this.style(d)),(void 0===n||n)&&this.restore()}else Dt("An element must be of type `nodes` or `edges`; you specified `"+r+"`")}else Dt("An element must have a core reference and parameters set")},Ht=function(e){return e={bfs:e.bfs||!e.dfs,dfs:e.dfs||!e.bfs},function(t,n,r){var i;E(t)&&!N(t)&&(t=(i=t).roots||i.root,n=i.visit,r=i.directed),r=2!==arguments.length||x(n)?r:n,n=x(n)?n:function(){};for(var a,o=this._private.cy,s=t=b(t)?this.filter(t):t,l=[],u=[],c={},h={},d={},p=0,g=this.byGroup(),f=g.nodes,v=g.edges,y=0;y<s.length;y++){var m=s[y],w=m.id();m.isNode()&&(l.unshift(m),e.bfs&&(d[w]=!0,u.push(m)),h[w]=0)}for(var T=function(){var t=e.bfs?l.shift():l.pop(),i=t.id();if(e.dfs){if(d[i])return"continue";d[i]=!0,u.push(t)}var o=h[i],s=c[i],g=null!=s?s.source():null,y=null!=s?s.target():null,m=null==s?void 0:t.same(g)?y[0]:g[0],b=void 0;if(!0===(b=n(t,s,m,p++,o)))return a=t,"break";if(!1===b)return"break";for(var x=t.connectedEdges().filter((function(e){return(!r||e.source().same(t))&&v.has(e)})),w=0;w<x.length;w++){var E=x[w],T=E.connectedNodes().filter((function(e){return!e.same(t)&&f.has(e)})),_=T.id();0===T.length||d[_]||(T=T[0],l.push(T),e.bfs&&(d[_]=!0,u.push(T)),c[_]=E,h[_]=h[i]+1)}};0!==l.length;){var _=T();if("continue"!==_&&"break"===_)break}for(var D=o.collection(),C=0;C<u.length;C++){var A=u[C],L=c[A.id()];null!=L&&D.push(L),D.push(A)}return{path:o.collection(D),found:o.collection(a)}}},qt={breadthFirstSearch:Ht({bfs:!0}),depthFirstSearch:Ht({dfs:!0})};qt.bfs=qt.breadthFirstSearch,qt.dfs=qt.depthFirstSearch;var Wt=ce((function(e,t){(function(){var t,n,r,i,a,o,s,l,u,c,h,d,p,g,f;r=Math.floor,c=Math.min,n=function(e,t){return e<t?-1:e>t?1:0},u=function(e,t,i,a,o){var s;if(null==i&&(i=0),null==o&&(o=n),i<0)throw new Error("lo must be non-negative");for(null==a&&(a=e.length);i<a;)o(t,e[s=r((i+a)/2)])<0?a=s:i=s+1;return[].splice.apply(e,[i,i-i].concat(t)),t},o=function(e,t,r){return null==r&&(r=n),e.push(t),g(e,0,e.length-1,r)},a=function(e,t){var r,i;return null==t&&(t=n),r=e.pop(),e.length?(i=e[0],e[0]=r,f(e,0,t)):i=r,i},l=function(e,t,r){var i;return null==r&&(r=n),i=e[0],e[0]=t,f(e,0,r),i},s=function(e,t,r){var i;return null==r&&(r=n),e.length&&r(e[0],t)<0&&(t=(i=[e[0],t])[0],e[0]=i[1],f(e,0,r)),t},i=function(e,t){var i,a,o,s,l,u;for(null==t&&(t=n),l=[],a=0,o=(s=function(){u=[];for(var t=0,n=r(e.length/2);0<=n?t<n:t>n;0<=n?t++:t--)u.push(t);return u}.apply(this).reverse()).length;a<o;a++)i=s[a],l.push(f(e,i,t));return l},p=function(e,t,r){var i;if(null==r&&(r=n),-1!==(i=e.indexOf(t)))return g(e,0,i,r),f(e,i,r)},h=function(e,t,r){var a,o,l,u,c;if(null==r&&(r=n),!(o=e.slice(0,t)).length)return o;for(i(o,r),l=0,u=(c=e.slice(t)).length;l<u;l++)a=c[l],s(o,a,r);return o.sort(r).reverse()},d=function(e,t,r){var o,s,l,h,d,p,g,f,v;if(null==r&&(r=n),10*t<=e.length){if(!(l=e.slice(0,t).sort(r)).length)return l;for(s=l[l.length-1],h=0,p=(g=e.slice(t)).length;h<p;h++)r(o=g[h],s)<0&&(u(l,o,0,null,r),l.pop(),s=l[l.length-1]);return l}for(i(e,r),v=[],d=0,f=c(t,e.length);0<=f?d<f:d>f;0<=f?++d:--d)v.push(a(e,r));return v},g=function(e,t,r,i){var a,o,s;for(null==i&&(i=n),a=e[r];r>t&&i(a,o=e[s=r-1>>1])<0;)e[r]=o,r=s;return e[r]=a},f=function(e,t,r){var i,a,o,s,l;for(null==r&&(r=n),a=e.length,l=t,o=e[t],i=2*t+1;i<a;)(s=i+1)<a&&!(r(e[i],e[s])<0)&&(i=s),e[t]=e[i],i=2*(t=i)+1;return e[t]=o,g(e,l,t,r)},t=function(){function e(e){this.cmp=null!=e?e:n,this.nodes=[]}return e.push=o,e.pop=a,e.replace=l,e.pushpop=s,e.heapify=i,e.updateItem=p,e.nlargest=h,e.nsmallest=d,e.prototype.push=function(e){return o(this.nodes,e,this.cmp)},e.prototype.pop=function(){return a(this.nodes,this.cmp)},e.prototype.peek=function(){return this.nodes[0]},e.prototype.contains=function(e){return-1!==this.nodes.indexOf(e)},e.prototype.replace=function(e){return l(this.nodes,e,this.cmp)},e.prototype.pushpop=function(e){return s(this.nodes,e,this.cmp)},e.prototype.heapify=function(){return i(this.nodes,this.cmp)},e.prototype.updateItem=function(e){return p(this.nodes,e,this.cmp)},e.prototype.clear=function(){return this.nodes=[]},e.prototype.empty=function(){return 0===this.nodes.length},e.prototype.size=function(){return this.nodes.length},e.prototype.clone=function(){var t;return(t=new e).nodes=this.nodes.slice(0),t},e.prototype.toArray=function(){return this.nodes.slice(0)},e.prototype.insert=e.prototype.push,e.prototype.top=e.prototype.peek,e.prototype.front=e.prototype.peek,e.prototype.has=e.prototype.contains,e.prototype.copy=e.prototype.clone,e}(),function(t,n){e.exports=n()}(0,(function(){return t}))}).call(ue)})),$t=Wt,Kt=Mt({root:null,weight:function(e){return 1},directed:!1}),Zt={dijkstra:function(e){if(!E(e)){var t=arguments;e={root:t[0],weight:t[1],directed:t[2]}}var n=Kt(e),r=n.root,i=n.weight,a=n.directed,o=this,s=i,l=b(r)?this.filter(r)[0]:r[0],u={},c={},h={},d=this.byGroup(),p=d.nodes,g=d.edges;g.unmergeBy((function(e){return e.isLoop()}));for(var f=function(e){return u[e.id()]},v=function(e,t){u[e.id()]=t,y.updateItem(e)},y=new $t((function(e,t){return f(e)-f(t)})),m=0;m<p.length;m++){var x=p[m];u[x.id()]=x.same(l)?0:1/0,y.push(x)}for(var w=function(e,t){for(var n,r=(a?e.edgesTo(t):e.edgesWith(t)).intersect(g),i=1/0,o=0;o<r.length;o++){var l=r[o],u=s(l);(u<i||!n)&&(i=u,n=l)}return{edge:n,dist:i}};y.size()>0;){var T=y.pop(),_=f(T),D=T.id();if(h[D]=_,_!==1/0)for(var C=T.neighborhood().intersect(p),N=0;N<C.length;N++){var A=C[N],L=A.id(),S=w(T,A),O=_+S.dist;O<f(A)&&(v(A,O),c[L]={node:T,edge:S.edge})}}return{distanceTo:function(e){var t=b(e)?p.filter(e)[0]:e[0];return h[t.id()]},pathTo:function(e){var t=b(e)?p.filter(e)[0]:e[0],n=[],r=t,i=r.id();if(t.length>0)for(n.unshift(t);c[i];){var a=c[i];n.unshift(a.edge),n.unshift(a.node),i=(r=a.node).id()}return o.spawn(n)}}}},Qt={kruskal:function(e){e=e||function(e){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,i=n.length,a=new Array(i),o=n,s=function(e){for(var t=0;t<a.length;t++)if(a[t].has(e))return t},l=0;l<i;l++)a[l]=this.spawn(n[l]);for(var u=r.sort((function(t,n){return e(t)-e(n)})),c=0;c<u.length;c++){var h=u[c],d=h.source()[0],p=h.target()[0],g=s(d),f=s(p),v=a[g],y=a[f];g!==f&&(o.merge(h),v.merge(y),a.splice(f,1))}return o}},Jt=Mt({root:null,goal:null,weight:function(e){return 1},heuristic:function(e){return 0},directed:!1}),en={aStar:function(e){var t=this.cy(),n=Jt(e),r=n.root,i=n.goal,a=n.heuristic,o=n.directed,s=n.weight;r=t.collection(r)[0],i=t.collection(i)[0];var l,u,c=r.id(),h=i.id(),d={},p={},g={},f=new $t((function(e,t){return p[e.id()]-p[t.id()]})),v=new Ut,y={},m={},b=function(e,t){f.push(e),v.add(t)},x=function(){l=f.pop(),u=l.id(),v.delete(u)},w=function(e){return v.has(e)};b(r,c),d[c]=0,p[c]=a(r);for(var E=0;f.size()>0;){if(x(),E++,u===h){for(var T=[],_=i,D=h,C=m[D];T.unshift(_),null!=C&&T.unshift(C),null!=(_=y[D]);)C=m[D=_.id()];return{found:!0,distance:d[u],path:this.spawn(T),steps:E}}g[u]=!0;for(var N=l._private.edges,A=0;A<N.length;A++){var L=N[A];if(this.hasElementWithId(L.id())&&(!o||L.data("source")===u)){var S=L.source(),O=L.target(),I=S.id()!==u?S:O,k=I.id();if(this.hasElementWithId(k)&&!g[k]){var M=d[u]+s(L);w(k)?M<d[k]&&(d[k]=M,p[k]=M+a(I),y[k]=l,m[k]=L):(d[k]=M,p[k]=M+a(I),b(I,k),y[k]=l,m[k]=L)}}}}return{found:!1,distance:void 0,path:void 0,steps:E}}},tn=Mt({weight:function(e){return 1},directed:!1}),nn={floydWarshall:function(e){for(var t=this.cy(),n=tn(e),r=n.weight,i=n.directed,a=r,o=this.byGroup(),s=o.nodes,l=o.edges,u=s.length,c=u*u,h=function(e){return s.indexOf(e)},d=function(e){return s[e]},p=new Array(c),g=0;g<c;g++){var f=g%u,v=(g-f)/u;p[g]=v===f?0:1/0}for(var y=new Array(c),m=new Array(c),x=0;x<l.length;x++){var w=l[x],E=w.source()[0],T=w.target()[0];if(E!==T){var _=h(E),D=h(T),C=_*u+D,N=a(w);if(p[C]>N&&(p[C]=N,y[C]=D,m[C]=w),!i){var A=D*u+_;!i&&p[A]>N&&(p[A]=N,y[A]=_,m[A]=w)}}}for(var L=0;L<u;L++)for(var S=0;S<u;S++)for(var O=S*u+L,I=0;I<u;I++){var k=S*u+I,M=L*u+I;p[O]+p[M]<p[k]&&(p[k]=p[O]+p[M],y[k]=y[O])}var P=function(e){return(b(e)?t.filter(e):e)[0]},R=function(e){return h(P(e))},B={distance:function(e,t){var n=R(e),r=R(t);return p[n*u+r]},path:function(e,n){var r=R(e),i=R(n),a=d(r);if(r===i)return a.collection();if(null==y[r*u+i])return t.collection();var o,s=t.collection(),l=r;for(s.merge(a);r!==i;)l=r,r=y[r*u+i],o=m[l*u+r],s.merge(o),s.merge(d(r));return s}};return B}},rn=Mt({weight:function(e){return 1},directed:!1,root:null}),an={bellmanFord:function(e){var t=this,n=rn(e),r=n.weight,i=n.directed,a=n.root,o=r,s=this,l=this.cy(),u=this.byGroup(),c=u.edges,h=u.nodes,d=h.length,p=new Yt,g=!1,f=[];a=l.collection(a)[0],c.unmergeBy((function(e){return e.isLoop()}));for(var v=c.length,y=function(e){var t=p.get(e.id());return t||(t={},p.set(e.id(),t)),t},m=function(e){return(b(e)?l.$(e):e)[0]},x=function(e){return y(m(e)).dist},w=function(e){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a,r=[],i=m(e);;){if(null==i)return t.spawn();var o=y(i),l=o.edge,u=o.pred;if(r.unshift(i[0]),i.same(n)&&r.length>0)break;null!=l&&r.unshift(l),i=u}return s.spawn(r)},E=0;E<d;E++){var T=h[E],_=y(T);T.same(a)?_.dist=0:_.dist=1/0,_.pred=null,_.edge=null}for(var D=!1,C=function(e,t,n,r,i,a){var o=r.dist+a;o<i.dist&&!n.same(r.edge)&&(i.dist=o,i.pred=e,i.edge=n,D=!0)},N=1;N<d;N++){D=!1;for(var A=0;A<v;A++){var L=c[A],S=L.source(),O=L.target(),I=o(L),k=y(S),M=y(O);C(S,O,L,k,M,I),i||C(O,S,L,M,k,I)}if(!D)break}if(D)for(var P=[],R=0;R<v;R++){var B=c[R],F=B.source(),z=B.target(),G=o(B),Y=y(F).dist,X=y(z).dist;if(Y+G<X||!i&&X+G<Y){if(g||(Nt("Graph contains a negative weight cycle for Bellman-Ford"),g=!0),!1===e.findNegativeWeightCycles)break;var V=[];Y+G<X&&V.push(F),!i&&X+G<Y&&V.push(z);for(var U=V.length,j=0;j<U;j++){var H=V[j],q=[H];q.push(y(H).edge);for(var W=y(H).pred;-1===q.indexOf(W);)q.push(W),q.push(y(W).edge),W=y(W).pred;for(var $=(q=q.slice(q.indexOf(W)))[0].id(),K=0,Z=2;Z<q.length;Z+=2)q[Z].id()<$&&($=q[Z].id(),K=Z);(q=q.slice(K).concat(q.slice(0,K))).push(q[0]);var Q=q.map((function(e){return e.id()})).join(",");-1===P.indexOf(Q)&&(f.push(s.spawn(q)),P.push(Q))}}}return{distanceTo:x,pathTo:w,hasNegativeWeightCycle:g,negativeWeightCycles:f}}},on=Math.sqrt(2),sn=function(e,t,n){0===n.length&&Dt("Karger-Stein must be run on a connected (sub)graph");for(var r=n[e],i=r[1],a=r[2],o=t[i],s=t[a],l=n,u=l.length-1;u>=0;u--){var c=l[u],h=c[1],d=c[2];(t[h]===o&&t[d]===s||t[h]===s&&t[d]===o)&&l.splice(u,1)}for(var p=0;p<l.length;p++){var g=l[p];g[1]===s?(l[p]=g.slice(),l[p][1]=o):g[2]===s&&(l[p]=g.slice(),l[p][2]=o)}for(var f=0;f<t.length;f++)t[f]===s&&(t[f]=o);return l},ln=function(e,t,n,r){for(;n>r;){var i=Math.floor(Math.random()*t.length);t=sn(i,e,t),n--}return t},un={kargerStein:function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy((function(e){return e.isLoop()}));var i=n.length,a=r.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),s=Math.floor(i/on);if(!(i<2)){for(var l=[],u=0;u<a;u++){var c=r[u];l.push([u,n.indexOf(c.source()),n.indexOf(c.target())])}for(var h=1/0,d=[],p=new Array(i),g=new Array(i),f=new Array(i),v=function(e,t){for(var n=0;n<i;n++)t[n]=e[n]},y=0;y<=o;y++){for(var m=0;m<i;m++)g[m]=m;var b=ln(g,l.slice(),i,s),x=b.slice();v(g,f);var w=ln(g,b,s,2),E=ln(f,x,s,2);w.length<=E.length&&w.length<h?(h=w.length,d=w,v(g,p)):E.length<=w.length&&E.length<h&&(h=E.length,d=E,v(f,p))}for(var T=this.spawn(d.map((function(e){return r[e[0]]}))),_=this.spawn(),D=this.spawn(),C=p[0],N=0;N<p.length;N++){var A=p[N],L=n[N];A===C?_.merge(L):D.merge(L)}var S=function(t){var n=e.spawn();return t.forEach((function(t){n.merge(t),t.connectedEdges().forEach((function(t){e.contains(t)&&!T.contains(t)&&n.merge(t)}))})),n},O=[S(_),S(D)];return{cut:T,components:O,partition1:_,partition2:D}}Dt("At least 2 nodes are required for Karger-Stein algorithm")}},cn=function(e){return{x:e.x,y:e.y}},hn=function(e,t,n){return{x:e.x*t+n.x,y:e.y*t+n.y}},dn=function(e,t,n){return{x:(e.x-n.x)/t,y:(e.y-n.y)/t}},pn=function(e){return{x:e[0],y:e[1]}},gn=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=1/0,i=t;i<n;i++){var a=e[i];isFinite(a)&&(r=Math.min(a,r))}return r},fn=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=-1/0,i=t;i<n;i++){var a=e[i];isFinite(a)&&(r=Math.max(a,r))}return r},vn=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=0,i=0,a=t;a<n;a++){var o=e[a];isFinite(o)&&(r+=o,i++)}return r/i},yn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];arguments.length>3&&void 0!==arguments[3]&&!arguments[3]?(n<e.length&&e.splice(n,e.length-n),t>0&&e.splice(0,t)):e=e.slice(t,n);for(var a=0,o=e.length-1;o>=0;o--){var s=e[o];i?isFinite(s)||(e[o]=-1/0,a++):e.splice(o,1)}r&&e.sort((function(e,t){return e-t}));var l=e.length,u=Math.floor(l/2);return l%2!=0?e[u+1+a]:(e[u-1+a]+e[u+a])/2},mn=function(e){return Math.PI*e/180},bn=function(e,t){return Math.atan2(t,e)-Math.PI/2},xn=Math.log2||function(e){return Math.log(e)/Math.log(2)},wn=function(e){return e>0?1:e<0?-1:0},En=function(e,t){return Math.sqrt(Tn(e,t))},Tn=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},_n=function(e){for(var t=e.length,n=0,r=0;r<t;r++)n+=e[r];for(var i=0;i<t;i++)e[i]=e[i]/n;return e},Dn=function(e,t,n,r){return(1-r)*(1-r)*e+2*(1-r)*r*t+r*r*n},Cn=function(e,t,n,r){return{x:Dn(e.x,t.x,n.x,r),y:Dn(e.y,t.y,n.y,r)}},Nn=function(e,t,n,r){var i={x:t.x-e.x,y:t.y-e.y},a=En(e,t),o={x:i.x/a,y:i.y/a};return n=null==n?0:n,r=null!=r?r:n*a,{x:e.x+o.x*r,y:e.y+o.y*r}},An=function(e,t,n){return Math.max(e,Math.min(n,t))},Ln=function(e){if(null==e)return{x1:1/0,y1:1/0,x2:-1/0,y2:-1/0,w:0,h:0};if(null!=e.x1&&null!=e.y1){if(null!=e.x2&&null!=e.y2&&e.x2>=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(null!=e.w&&null!=e.h&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},Sn=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},On=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},In=function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},kn=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},Mn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Pn=function(e){var t,n,r,i,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===a.length)t=n=r=i=a[0];else if(2===a.length)t=r=a[0],i=n=a[1];else if(4===a.length){var s=o(a,4);t=s[0],n=s[1],r=s[2],i=s[3]}return e.x1-=i,e.x2+=n,e.y1-=t,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},Rn=function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},Bn=function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2<t.x1||t.x2<e.x1||e.y2<t.y1||t.y2<e.y1||e.y1>t.y2||t.y1>e.y2)},Fn=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},zn=function(e,t){return Fn(e,t.x,t.y)},Gn=function(e,t){return Fn(e,t.x1,t.y1)&&Fn(e,t.x2,t.y2)},Yn=function(e,t,n,r,i,a,o){var s,l=cr(i,a),u=i/2,c=a/2,h=r-c-o;if((s=rr(e,t,n,r,n-u+l-o,h,n+u-l+o,h,!1)).length>0)return s;var d=n+u+o;if((s=rr(e,t,n,r,d,r-c+l-o,d,r+c-l+o,!1)).length>0)return s;var p=r+c+o;if((s=rr(e,t,n,r,n-u+l-o,p,n+u-l+o,p,!1)).length>0)return s;var g,f=n-u-o;if((s=rr(e,t,n,r,f,r-c+l-o,f,r+c-l+o,!1)).length>0)return s;var v=n-u+l,y=r-c+l;if((g=tr(e,t,n,r,v,y,l+o)).length>0&&g[0]<=v&&g[1]<=y)return[g[0],g[1]];var m=n+u-l,b=r-c+l;if((g=tr(e,t,n,r,m,b,l+o)).length>0&&g[0]>=m&&g[1]<=b)return[g[0],g[1]];var x=n+u-l,w=r+c-l;if((g=tr(e,t,n,r,x,w,l+o)).length>0&&g[0]>=x&&g[1]>=w)return[g[0],g[1]];var E=n-u+l,T=r+c-l;return(g=tr(e,t,n,r,E,T,l+o)).length>0&&g[0]<=E&&g[1]>=T?[g[0],g[1]]:[]},Xn=function(e,t,n,r,i,a,o){var s=o,l=Math.min(n,i),u=Math.max(n,i),c=Math.min(r,a),h=Math.max(r,a);return l-s<=e&&e<=u+s&&c-s<=t&&t<=h+s},Vn=function(e,t,n,r,i,a,o,s,l){var u={x1:Math.min(n,o,i)-l,x2:Math.max(n,o,i)+l,y1:Math.min(r,s,a)-l,y2:Math.max(r,s,a)+l};return!(e<u.x1||e>u.x2||t<u.y1||t>u.y2)},Un=function(e,t,n,r){var i=t*t-4*e*(n-=r);if(i<0)return[];var a=Math.sqrt(i),o=2*e;return[(-t+a)/o,(-t-a)/o]},jn=function(e,t,n,r,i){var a,o,s,l,u,c,h,d;return 0===e&&(e=1e-5),s=-27*(r/=e)+(t/=e)*(9*(n/=e)-t*t*2),a=(o=(3*n-t*t)/9)*o*o+(s/=54)*s,i[1]=0,h=t/3,a>0?(u=(u=s+Math.sqrt(a))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),c=(c=s-Math.sqrt(a))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-h+u+c,h+=(u+c)/2,i[4]=i[2]=-h,h=Math.sqrt(3)*(-c+u)/2,i[3]=h,void(i[5]=-h)):(i[5]=i[3]=0,0===a?(d=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),i[0]=2*d-h,void(i[4]=i[2]=-(d+h))):(l=(o=-o)*o*o,l=Math.acos(s/Math.sqrt(l)),d=2*Math.sqrt(o),i[0]=-h+d*Math.cos(l/3),i[2]=-h+d*Math.cos((l+2*Math.PI)/3),void(i[4]=-h+d*Math.cos((l+4*Math.PI)/3))))},Hn=function(e,t,n,r,i,a,o,s){var l=[];jn(1*n*n-4*n*i+2*n*o+4*i*i-4*i*o+o*o+r*r-4*r*a+2*r*s+4*a*a-4*a*s+s*s,9*n*i-3*n*n-3*n*o-6*i*i+3*i*o+9*r*a-3*r*r-3*r*s-6*a*a+3*a*s,3*n*n-6*n*i+n*o-n*e+2*i*i+2*i*e-o*e+3*r*r-6*r*a+r*s-r*t+2*a*a+2*a*t-s*t,1*n*i-n*n+n*e-i*e+r*a-r*r+r*t-a*t,l);for(var u=1e-7,c=[],h=0;h<6;h+=2)Math.abs(l[h+1])<u&&l[h]>=0&&l[h]<=1&&c.push(l[h]);c.push(1),c.push(0);for(var d,p,g,f=-1,v=0;v<c.length;v++)d=Math.pow(1-c[v],2)*n+2*(1-c[v])*c[v]*i+c[v]*c[v]*o,p=Math.pow(1-c[v],2)*r+2*(1-c[v])*c[v]*a+c[v]*c[v]*s,g=Math.pow(d-e,2)+Math.pow(p-t,2),f>=0?g<f&&(f=g):f=g;return f},qn=function(e,t,n,r,i,a){var o=[e-n,t-r],s=[i-n,a-r],l=s[0]*s[0]+s[1]*s[1],u=o[0]*o[0]+o[1]*o[1],c=o[0]*s[0]+o[1]*s[1],h=c*c/l;return c<0?u:h>l?(e-i)*(e-i)+(t-a)*(t-a):u-h},Wn=function(e,t,n){for(var r,i,a,o,s=0,l=0;l<n.length/2;l++)if(r=n[2*l],i=n[2*l+1],l+1<n.length/2?(a=n[2*(l+1)],o=n[2*(l+1)+1]):(a=n[2*(l+1-n.length/2)],o=n[2*(l+1-n.length/2)+1]),r==e&&a==e);else{if(!(r>=e&&e>=a||r<=e&&e<=a))continue;(e-r)/(a-r)*(o-i)+i>t&&s++}return s%2!=0},$n=function(e,t,n,r,i,a,o,s,l){var u,c=new Array(n.length);null!=s[0]?(u=Math.atan(s[1]/s[0]),s[0]<0?u+=Math.PI/2:u=-u-Math.PI/2):u=s;for(var h,d=Math.cos(-u),p=Math.sin(-u),g=0;g<c.length/2;g++)c[2*g]=a/2*(n[2*g]*d-n[2*g+1]*p),c[2*g+1]=o/2*(n[2*g+1]*d+n[2*g]*p),c[2*g]+=r,c[2*g+1]+=i;if(l>0){var f=Qn(c,-l);h=Zn(f)}else h=c;return Wn(e,t,h)},Kn=function(e,t,n,r,i,a,o){for(var s=new Array(n.length),l=a/2,u=o/2,c=hr(a,o),h=c*c,d=0;d<n.length/4;d++){var p=void 0,g=void 0;p=0===d?n.length-2:4*d-2,g=4*d+2;var f=r+l*n[4*d],v=i+u*n[4*d+1],y=-n[p]*n[g]-n[p+1]*n[g+1],m=c/Math.tan(Math.acos(y)/2),b=f-m*n[p],x=v-m*n[p+1],w=f+m*n[g],E=v+m*n[g+1];s[4*d]=b,s[4*d+1]=x,s[4*d+2]=w,s[4*d+3]=E;var T=n[p+1],_=-n[p];T*n[g]+_*n[g+1]<0&&(T*=-1,_*=-1);var D=b+T*c,C=x+_*c;if(Math.pow(D-e,2)+Math.pow(C-t,2)<=h)return!0}return Wn(e,t,s)},Zn=function(e){for(var t,n,r,i,a,o,s,l,u=new Array(e.length/2),c=0;c<e.length/4;c++){t=e[4*c],n=e[4*c+1],r=e[4*c+2],i=e[4*c+3],c<e.length/4-1?(a=e[4*(c+1)],o=e[4*(c+1)+1],s=e[4*(c+1)+2],l=e[4*(c+1)+3]):(a=e[0],o=e[1],s=e[2],l=e[3]);var h=rr(t,n,r,i,a,o,s,l,!0);u[2*c]=h[0],u[2*c+1]=h[1]}return u},Qn=function(e,t){for(var n,r,i,a,o=new Array(2*e.length),s=0;s<e.length/2;s++){n=e[2*s],r=e[2*s+1],s<e.length/2-1?(i=e[2*(s+1)],a=e[2*(s+1)+1]):(i=e[0],a=e[1]);var l=a-r,u=-(i-n),c=Math.sqrt(l*l+u*u),h=l/c,d=u/c;o[4*s]=n+h*t,o[4*s+1]=r+d*t,o[4*s+2]=i+h*t,o[4*s+3]=a+d*t}return o},Jn=function(e,t,n,r,i,a){var o=n-e,s=r-t;o/=i,s/=a;var l=Math.sqrt(o*o+s*s),u=l-1;if(u<0)return[];var c=u/l;return[(n-e)*c+e,(r-t)*c+t]},er=function(e,t,n,r,i,a,o){return e-=i,t-=a,(e/=n/2+o)*e+(t/=r/2+o)*t<=1},tr=function(e,t,n,r,i,a,o){var s=[n-e,r-t],l=[e-i,t-a],u=s[0]*s[0]+s[1]*s[1],c=2*(l[0]*s[0]+l[1]*s[1]),h=c*c-4*u*(l[0]*l[0]+l[1]*l[1]-o*o);if(h<0)return[];var d=(-c+Math.sqrt(h))/(2*u),p=(-c-Math.sqrt(h))/(2*u),g=Math.min(d,p),f=Math.max(d,p),v=[];if(g>=0&&g<=1&&v.push(g),f>=0&&f<=1&&v.push(f),0===v.length)return[];var y=v[0]*s[0]+e,m=v[0]*s[1]+t;return v.length>1?v[0]==v[1]?[y,m]:[y,m,v[1]*s[0]+e,v[1]*s[1]+t]:[y,m]},nr=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},rr=function(e,t,n,r,i,a,o,s,l){var u=e-i,c=n-e,h=o-i,d=t-a,p=r-t,g=s-a,f=h*d-g*u,v=c*d-p*u,y=g*c-h*p;if(0!==y){var m=f/y,b=v/y,x=.001,w=0-x,E=1+x;return w<=m&&m<=E&&w<=b&&b<=E||l?[e+m*c,t+m*p]:[]}return 0===f||0===v?nr(e,n,o)===o?[o,s]:nr(e,n,i)===i?[i,a]:nr(i,o,n)===n?[n,r]:[]:[]},ir=function(e,t,n,r,i,a,o,s){var l,u,c,h,d,p,g=[],f=new Array(n.length),v=!0;if(null==a&&(v=!1),v){for(var y=0;y<f.length/2;y++)f[2*y]=n[2*y]*a+r,f[2*y+1]=n[2*y+1]*o+i;if(s>0){var m=Qn(f,-s);u=Zn(m)}else u=f}else u=n;for(var b=0;b<u.length/2;b++)c=u[2*b],h=u[2*b+1],b<u.length/2-1?(d=u[2*(b+1)],p=u[2*(b+1)+1]):(d=u[0],p=u[1]),0!==(l=rr(e,t,r,i,c,h,d,p)).length&&g.push(l[0],l[1]);return g},ar=function(e,t,n,r,i,a,o,s){for(var l,u=[],c=new Array(n.length),h=a/2,d=o/2,p=hr(a,o),g=0;g<n.length/4;g++){var f=void 0,v=void 0;f=0===g?n.length-2:4*g-2,v=4*g+2;var y=r+h*n[4*g],m=i+d*n[4*g+1],b=-n[f]*n[v]-n[f+1]*n[v+1],x=p/Math.tan(Math.acos(b)/2),w=y-x*n[f],E=m-x*n[f+1],T=y+x*n[v],_=m+x*n[v+1];0===g?(c[n.length-2]=w,c[n.length-1]=E):(c[4*g-2]=w,c[4*g-1]=E),c[4*g]=T,c[4*g+1]=_;var D=n[f+1],C=-n[f];D*n[v]+C*n[v+1]<0&&(D*=-1,C*=-1),0!==(l=tr(e,t,r,i,w+D*p,E+C*p,p)).length&&u.push(l[0],l[1])}for(var N=0;N<c.length/4;N++)0!==(l=rr(e,t,r,i,c[4*N],c[4*N+1],c[4*N+2],c[4*N+3],!1)).length&&u.push(l[0],l[1]);if(u.length>2){for(var A=[u[0],u[1]],L=Math.pow(A[0]-e,2)+Math.pow(A[1]-t,2),S=1;S<u.length/2;S++){var O=Math.pow(u[2*S]-e,2)+Math.pow(u[2*S+1]-t,2);O<=L&&(A[0]=u[2*S],A[1]=u[2*S+1],L=O)}return A}return u},or=function(e,t,n){var r=[e[0]-t[0],e[1]-t[1]],i=Math.sqrt(r[0]*r[0]+r[1]*r[1]),a=(i-n)/i;return a<0&&(a=1e-5),[t[0]+a*r[0],t[1]+a*r[1]]},sr=function(e,t){var n=ur(e,t);return n=lr(n)},lr=function(e){for(var t,n,r=e.length/2,i=1/0,a=1/0,o=-1/0,s=-1/0,l=0;l<r;l++)t=e[2*l],n=e[2*l+1],i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,n),s=Math.max(s,n);for(var u=2/(o-i),c=2/(s-a),h=0;h<r;h++)t=e[2*h]=e[2*h]*u,n=e[2*h+1]=e[2*h+1]*c,i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,n),s=Math.max(s,n);if(a<-1)for(var d=0;d<r;d++)n=e[2*d+1]=e[2*d+1]+(-1-a);return e},ur=function(e,t){var n=1/e*2*Math.PI,r=e%2==0?Math.PI/2+n/2:Math.PI/2;r+=t;for(var i,a=new Array(2*e),o=0;o<e;o++)i=o*n+r,a[2*o]=Math.cos(i),a[2*o+1]=Math.sin(-i);return a},cr=function(e,t){return Math.min(e/4,t/4,8)},hr=function(e,t){return Math.min(e/10,t/10,8)},dr=function(){return 8},pr=function(e,t,n){return[e-2*t+n,2*(t-e),e]},gr=function(e,t){return{heightOffset:Math.min(15,.05*t),widthOffset:Math.min(100,.25*e),ctrlPtOffsetPct:.05}},fr=Mt({dampingFactor:.8,precision:1e-6,iterations:200,weight:function(e){return 1}}),vr={pageRank:function(e){for(var t=fr(e),n=t.dampingFactor,r=t.precision,i=t.iterations,a=t.weight,o=this._private.cy,s=this.byGroup(),l=s.nodes,u=s.edges,c=l.length,h=c*c,d=u.length,p=new Array(h),g=new Array(c),f=(1-n)/c,v=0;v<c;v++){for(var y=0;y<c;y++)p[v*c+y]=0;g[v]=0}for(var m=0;m<d;m++){var b=u[m],x=b.data("source"),w=b.data("target");if(x!==w){var E=l.indexOfId(x),T=l.indexOfId(w),_=a(b);p[T*c+E]+=_,g[E]+=_}}for(var D=1/c+f,C=0;C<c;C++)if(0===g[C])for(var N=0;N<c;N++)p[N*c+C]=D;else for(var A=0;A<c;A++){var L=A*c+C;p[L]=p[L]/g[C]+f}for(var S,O=new Array(c),I=new Array(c),k=0;k<c;k++)O[k]=1;for(var M=0;M<i;M++){for(var P=0;P<c;P++)I[P]=0;for(var R=0;R<c;R++)for(var B=0;B<c;B++){var F=R*c+B;I[R]+=p[F]*O[B]}_n(I),S=O,O=I,I=S;for(var z=0,G=0;G<c;G++){var Y=S[G]-O[G];z+=Y*Y}if(z<r)break}return{rank:function(e){return e=o.collection(e)[0],O[l.indexOf(e)]}}}},yr=Mt({root:null,weight:function(e){return 1},directed:!1,alpha:0}),mr={degreeCentralityNormalized:function(e){e=yr(e);var t=this.cy(),n=this.nodes(),r=n.length;if(e.directed){for(var i={},a={},o=0,s=0,l=0;l<r;l++){var u=n[l],c=u.id();e.root=u;var h=this.degreeCentrality(e);o<h.indegree&&(o=h.indegree),s<h.outdegree&&(s=h.outdegree),i[c]=h.indegree,a[c]=h.outdegree}return{indegree:function(e){return 0==o?0:(b(e)&&(e=t.filter(e)),i[e.id()]/o)},outdegree:function(e){return 0===s?0:(b(e)&&(e=t.filter(e)),a[e.id()]/s)}}}for(var d={},p=0,g=0;g<r;g++){var f=n[g];e.root=f;var v=this.degreeCentrality(e);p<v.degree&&(p=v.degree),d[f.id()]=v.degree}return{degree:function(e){return 0===p?0:(b(e)&&(e=t.filter(e)),d[e.id()]/p)}}},degreeCentrality:function(e){e=yr(e);var t=this.cy(),n=this,r=e,i=r.root,a=r.weight,o=r.directed,s=r.alpha;if(i=t.collection(i)[0],o){for(var l=i.connectedEdges(),u=l.filter((function(e){return e.target().same(i)&&n.has(e)})),c=l.filter((function(e){return e.source().same(i)&&n.has(e)})),h=u.length,d=c.length,p=0,g=0,f=0;f<u.length;f++)p+=a(u[f]);for(var v=0;v<c.length;v++)g+=a(c[v]);return{indegree:Math.pow(h,1-s)*Math.pow(p,s),outdegree:Math.pow(d,1-s)*Math.pow(g,s)}}for(var y=i.connectedEdges().intersection(n),m=y.length,b=0,x=0;x<y.length;x++)b+=a(y[x]);return{degree:Math.pow(m,1-s)*Math.pow(b,s)}}};mr.dc=mr.degreeCentrality,mr.dcn=mr.degreeCentralityNormalised=mr.degreeCentralityNormalized;var br=Mt({harmonic:!0,weight:function(){return 1},directed:!1,root:null}),xr={closenessCentralityNormalized:function(e){for(var t=br(e),n=t.harmonic,r=t.weight,i=t.directed,a=this.cy(),o={},s=0,l=this.nodes(),u=this.floydWarshall({weight:r,directed:i}),c=0;c<l.length;c++){for(var h=0,d=l[c],p=0;p<l.length;p++)if(c!==p){var g=u.distance(d,l[p]);h+=n?1/g:g}n||(h=1/h),s<h&&(s=h),o[d.id()]=h}return{closeness:function(e){return 0==s?0:(e=b(e)?a.filter(e)[0].id():e.id(),o[e]/s)}}},closenessCentrality:function(e){var t=br(e),n=t.root,r=t.weight,i=t.directed,a=t.harmonic;n=this.filter(n)[0];for(var o=this.dijkstra({root:n,weight:r,directed:i}),s=0,l=this.nodes(),u=0;u<l.length;u++){var c=l[u];if(!c.same(n)){var h=o.distanceTo(c);s+=a?1/h:h}}return a?s:1/s}};xr.cc=xr.closenessCentrality,xr.ccn=xr.closenessCentralityNormalised=xr.closenessCentralityNormalized;var wr=Mt({weight:null,directed:!1}),Er={betweennessCentrality:function(e){for(var t=wr(e),n=t.directed,r=t.weight,i=null!=r,a=this.cy(),o=this.nodes(),s={},l={},u=0,c={set:function(e,t){l[e]=t,t>u&&(u=t)},get:function(e){return l[e]}},h=0;h<o.length;h++){var d=o[h],p=d.id();s[p]=n?d.outgoers().nodes():d.openNeighborhood().nodes(),c.set(p,0)}for(var g=function(e){for(var t=o[e].id(),n=[],l={},u={},h={},d=new $t((function(e,t){return h[e]-h[t]})),p=0;p<o.length;p++){var g=o[p].id();l[g]=[],u[g]=0,h[g]=1/0}for(u[t]=1,h[t]=0,d.push(t);!d.empty();){var f=d.pop();if(n.push(f),i)for(var v=0;v<s[f].length;v++){var y=s[f][v],m=a.getElementById(f),b=void 0;b=m.edgesTo(y).length>0?m.edgesTo(y)[0]:y.edgesTo(m)[0];var x=r(b);y=y.id(),h[y]>h[f]+x&&(h[y]=h[f]+x,d.nodes.indexOf(y)<0?d.push(y):d.updateItem(y),u[y]=0,l[y]=[]),h[y]==h[f]+x&&(u[y]=u[y]+u[f],l[y].push(f))}else for(var w=0;w<s[f].length;w++){var E=s[f][w].id();h[E]==1/0&&(d.push(E),h[E]=h[f]+1),h[E]==h[f]+1&&(u[E]=u[E]+u[f],l[E].push(f))}}for(var T={},_=0;_<o.length;_++)T[o[_].id()]=0;for(;n.length>0;){for(var D=n.pop(),C=0;C<l[D].length;C++){var N=l[D][C];T[N]=T[N]+u[N]/u[D]*(1+T[D])}D!=o[e].id()&&c.set(D,c.get(D)+T[D])}},f=0;f<o.length;f++)g(f);var v={betweenness:function(e){var t=a.collection(e).id();return c.get(t)},betweennessNormalized:function(e){if(0==u)return 0;var t=a.collection(e).id();return c.get(t)/u}};return v.betweennessNormalised=v.betweennessNormalized,v}};Er.bc=Er.betweennessCentrality;var Tr=Mt({expandFactor:2,inflateFactor:2,multFactor:1,maxIterations:20,attributes:[function(e){return 1}]}),_r=function(e){return Tr(e)},Dr=function(e,t){for(var n=0,r=0;r<t.length;r++)n+=t[r](e);return n},Cr=function(e,t,n){for(var r=0;r<t;r++)e[r*t+r]=n},Nr=function(e,t){for(var n,r=0;r<t;r++){n=0;for(var i=0;i<t;i++)n+=e[i*t+r];for(var a=0;a<t;a++)e[a*t+r]=e[a*t+r]/n}},Ar=function(e,t,n){for(var r=new Array(n*n),i=0;i<n;i++){for(var a=0;a<n;a++)r[i*n+a]=0;for(var o=0;o<n;o++)for(var s=0;s<n;s++)r[i*n+s]+=e[i*n+o]*t[o*n+s]}return r},Lr=function(e,t,n){for(var r=e.slice(0),i=1;i<n;i++)e=Ar(e,r,t);return e},Sr=function(e,t,n){for(var r=new Array(t*t),i=0;i<t*t;i++)r[i]=Math.pow(e[i],n);return Nr(r,t),r},Or=function(e,t,n,r){for(var i=0;i<n;i++)if(Math.round(e[i]*Math.pow(10,r))/Math.pow(10,r)!=Math.round(t[i]*Math.pow(10,r))/Math.pow(10,r))return!1;return!0},Ir=function(e,t,n,r){for(var i=[],a=0;a<t;a++){for(var o=[],s=0;s<t;s++)Math.round(1e3*e[a*t+s])/1e3>0&&o.push(n[s]);0!==o.length&&i.push(r.collection(o))}return i},kr=function(e,t){for(var n=0;n<e.length;n++)if(!t[n]||e[n].id()!==t[n].id())return!1;return!0},Mr=function(e){for(var t=0;t<e.length;t++)for(var n=0;n<e.length;n++)t!=n&&kr(e[t],e[n])&&e.splice(n,1);return e},Pr=function(e){for(var t=this.nodes(),n=this.edges(),r=this.cy(),i=_r(e),a={},o=0;o<t.length;o++)a[t[o].id()]=o;for(var s,l=t.length,u=l*l,c=new Array(u),h=0;h<u;h++)c[h]=0;for(var d=0;d<n.length;d++){var p=n[d],g=a[p.source().id()],f=a[p.target().id()],v=Dr(p,i.attributes);c[g*l+f]+=v,c[f*l+g]+=v}Cr(c,l,i.multFactor),Nr(c,l);for(var y=!0,m=0;y&&m<i.maxIterations;)y=!1,s=Lr(c,l,i.expandFactor),c=Sr(s,l,i.inflateFactor),Or(c,s,u,4)||(y=!0),m++;var b=Ir(c,l,t,r);return b=Mr(b)},Rr={markovClustering:Pr,mcl:Pr},Br=function(e){return e},Fr=function(e,t){return Math.abs(t-e)},zr=function(e,t,n){return e+Fr(t,n)},Gr=function(e,t,n){return e+Math.pow(n-t,2)},Yr=function(e){return Math.sqrt(e)},Xr=function(e,t,n){return Math.max(e,Fr(t,n))},Vr=function(e,t,n,r,i){for(var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:Br,o=r,s=0;s<e;s++)o=i(o,t(s),n(s));return a(o)},Ur={euclidean:function(e,t,n){return e>=2?Vr(e,t,n,0,Gr,Yr):Vr(e,t,n,0,zr)},squaredEuclidean:function(e,t,n){return Vr(e,t,n,0,Gr)},manhattan:function(e,t,n){return Vr(e,t,n,0,zr)},max:function(e,t,n){return Vr(e,t,n,-1/0,Xr)}};function jr(e,t,n,r,i,a){var o;return o=x(e)?e:Ur[e]||Ur.euclidean,0===t&&x(e)?o(i,a):o(t,n,r,i,a)}Ur["squared-euclidean"]=Ur.squaredEuclidean,Ur.squaredeuclidean=Ur.squaredEuclidean;var Hr=Mt({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),qr=function(e){return Hr(e)},Wr=function(e,t,n,r,i){var a="kMedoids"!==i?function(e){return n[e]}:function(e){return r[e](n)},o=function(e){return r[e](t)},s=n,l=t;return jr(e,r.length,a,o,s,l)},$r=function(e,t,n){for(var r=n.length,i=new Array(r),a=new Array(r),o=new Array(t),s=null,l=0;l<r;l++)i[l]=e.min(n[l]).value,a[l]=e.max(n[l]).value;for(var u=0;u<t;u++){s=[];for(var c=0;c<r;c++)s[c]=Math.random()*(a[c]-i[c])+i[c];o[u]=s}return o},Kr=function(e,t,n,r,i){for(var a=1/0,o=0,s=0;s<t.length;s++){var l=Wr(n,e,t[s],r,i);l<a&&(a=l,o=s)}return o},Zr=function(e,t,n){for(var r=[],i=null,a=0;a<t.length;a++)n[(i=t[a]).id()]===e&&r.push(i);return r},Qr=function(e,t,n){return Math.abs(t-e)<=n},Jr=function(e,t,n){for(var r=0;r<e.length;r++)for(var i=0;i<e[r].length;i++)if(Math.abs(e[r][i]-t[r][i])>n)return!1;return!0},ei=function(e,t,n){for(var r=0;r<n;r++)if(e===t[r])return!0;return!1},ti=function(e,t){var n=new Array(t);if(e.length<50)for(var r=0;r<t;r++){for(var i=e[Math.floor(Math.random()*e.length)];ei(i,n,r);)i=e[Math.floor(Math.random()*e.length)];n[r]=i}else for(var a=0;a<t;a++)n[a]=e[Math.floor(Math.random()*e.length)];return n},ni=function(e,t,n){for(var r=0,i=0;i<t.length;i++)r+=Wr("manhattan",t[i],e,n,"kMedoids");return r},ri=function(t){var n,r=this.cy(),i=this.nodes(),a=null,o=qr(t),s=new Array(o.k),l={};o.testMode?"number"==typeof o.testCentroids?(o.testCentroids,n=$r(i,o.k,o.attributes)):n="object"===e(o.testCentroids)?o.testCentroids:$r(i,o.k,o.attributes):n=$r(i,o.k,o.attributes);for(var u=!0,c=0;u&&c<o.maxIterations;){for(var h=0;h<i.length;h++)l[(a=i[h]).id()]=Kr(a,n,o.distance,o.attributes,"kMeans");u=!1;for(var d=0;d<o.k;d++){var p=Zr(d,i,l);if(0!==p.length){for(var g=o.attributes.length,f=n[d],v=new Array(g),y=new Array(g),m=0;m<g;m++){y[m]=0;for(var b=0;b<p.length;b++)a=p[b],y[m]+=o.attributes[m](a);v[m]=y[m]/p.length,Qr(v[m],f[m],o.sensitivityThreshold)||(u=!0)}n[d]=v,s[d]=r.collection(p)}}c++}return s},ii=function(e,t,n,r,i){for(var a,o,s=0;s<t.length;s++)for(var l=0;l<e.length;l++)r[s][l]=Math.pow(n[s][l],i.m);for(var u=0;u<e.length;u++)for(var c=0;c<i.attributes.length;c++){a=0,o=0;for(var h=0;h<t.length;h++)a+=r[h][u]*i.attributes[c](t[h]),o+=r[h][u];e[u][c]=a/o}},ai=function(e,t,n,r,i){for(var a=0;a<e.length;a++)t[a]=e[a].slice();for(var o,s,l,u=2/(i.m-1),c=0;c<n.length;c++)for(var h=0;h<r.length;h++){o=0;for(var d=0;d<n.length;d++)s=Wr(i.distance,r[h],n[c],i.attributes,"cmeans"),l=Wr(i.distance,r[h],n[d],i.attributes,"cmeans"),o+=Math.pow(s/l,u);e[h][c]=1/o}},oi=function(e,t,n,r){for(var i,a,o=new Array(n.k),s=0;s<o.length;s++)o[s]=[];for(var l=0;l<t.length;l++){i=-1/0,a=-1;for(var u=0;u<t[0].length;u++)t[l][u]>i&&(i=t[l][u],a=u);o[a].push(e[l])}for(var c=0;c<o.length;c++)o[c]=r.collection(o[c]);return o},si=function(e){var t,n,r,i,a=this.cy(),o=this.nodes(),s=qr(e);r=new Array(o.length);for(var l=0;l<o.length;l++)r[l]=new Array(s.k);n=new Array(o.length);for(var u=0;u<o.length;u++)n[u]=new Array(s.k);for(var c=0;c<o.length;c++){for(var h=0,d=0;d<s.k;d++)n[c][d]=Math.random(),h+=n[c][d];for(var p=0;p<s.k;p++)n[c][p]=n[c][p]/h}t=new Array(s.k);for(var g=0;g<s.k;g++)t[g]=new Array(s.attributes.length);i=new Array(o.length);for(var f=0;f<o.length;f++)i[f]=new Array(s.k);for(var v=!0,y=0;v&&y<s.maxIterations;)v=!1,ii(t,o,n,i,s),ai(n,r,t,o,s),Jr(n,r,s.sensitivityThreshold)||(v=!0),y++;return{clusters:oi(o,n,s,a),degreeOfMembership:n}},li={kMeans:ri,kMedoids:function(t){var n,r,i=this.cy(),a=this.nodes(),o=null,s=qr(t),l=new Array(s.k),u={},c=new Array(s.k);s.testMode?"number"==typeof s.testCentroids||(n="object"===e(s.testCentroids)?s.testCentroids:ti(a,s.k)):n=ti(a,s.k);for(var h=!0,d=0;h&&d<s.maxIterations;){for(var p=0;p<a.length;p++)u[(o=a[p]).id()]=Kr(o,n,s.distance,s.attributes,"kMedoids");h=!1;for(var g=0;g<n.length;g++){var f=Zr(g,a,u);if(0!==f.length){c[g]=ni(n[g],f,s.attributes);for(var v=0;v<f.length;v++)(r=ni(f[v],f,s.attributes))<c[g]&&(c[g]=r,n[g]=f[v],h=!0);l[g]=i.collection(f)}}d++}return l},fuzzyCMeans:si,fcm:si},ui=Mt({distance:"euclidean",linkage:"min",mode:"threshold",threshold:1/0,addDendrogram:!1,dendrogramDepth:0,attributes:[]}),ci={single:"min",complete:"max"},hi=function(e){var t=ui(e),n=ci[t.linkage];return null!=n&&(t.linkage=n),t},di=function(e,t,n,r,i){for(var a,o=0,s=1/0,l=i.attributes,u=function(e,t){return jr(i.distance,l.length,(function(t){return l[t](e)}),(function(e){return l[e](t)}),e,t)},c=0;c<e.length;c++){var h=e[c].key,d=n[h][r[h]];d<s&&(o=h,s=d)}if("threshold"===i.mode&&s>=i.threshold||"dendrogram"===i.mode&&1===e.length)return!1;var p,g=t[o],f=t[r[o]];p="dendrogram"===i.mode?{left:g,right:f,key:g.key}:{value:g.value.concat(f.value),key:g.key},e[g.index]=p,e.splice(f.index,1),t[g.key]=p;for(var v=0;v<e.length;v++){var y=e[v];g.key===y.key?a=1/0:"min"===i.linkage?(a=n[g.key][y.key],n[g.key][y.key]>n[f.key][y.key]&&(a=n[f.key][y.key])):"max"===i.linkage?(a=n[g.key][y.key],n[g.key][y.key]<n[f.key][y.key]&&(a=n[f.key][y.key])):a="mean"===i.linkage?(n[g.key][y.key]*g.size+n[f.key][y.key]*f.size)/(g.size+f.size):"dendrogram"===i.mode?u(y.value,g.value):u(y.value[0],g.value[0]),n[g.key][y.key]=n[y.key][g.key]=a}for(var m=0;m<e.length;m++){var b=e[m].key;if(r[b]===g.key||r[b]===f.key){for(var x=b,w=0;w<e.length;w++){var E=e[w].key;n[b][E]<n[b][x]&&(x=E)}r[b]=x}e[m].index=m}return g.key=f.key=g.index=f.index=null,!0},pi=function e(t,n,r){t&&(t.value?n.push(t.value):(t.left&&e(t.left,n),t.right&&e(t.right,n)))},gi=function e(t,n){if(!t)return"";if(t.left&&t.right){var r=e(t.left,n),i=e(t.right,n),a=n.add({group:"nodes",data:{id:r+","+i}});return n.add({group:"edges",data:{source:r,target:a.id()}}),n.add({group:"edges",data:{source:i,target:a.id()}}),a.id()}return t.value?t.value.id():void 0},fi=function e(t,n,r){if(!t)return[];var i=[],a=[],o=[];return 0===n?(t.left&&pi(t.left,i),t.right&&pi(t.right,a),o=i.concat(a),[r.collection(o)]):1===n?t.value?[r.collection(t.value)]:(t.left&&pi(t.left,i),t.right&&pi(t.right,a),[r.collection(i),r.collection(a)]):t.value?[r.collection(t.value)]:(t.left&&(i=e(t.left,n-1,r)),t.right&&(a=e(t.right,n-1,r)),i.concat(a))},vi=function(e){for(var t=this.cy(),n=this.nodes(),r=hi(e),i=r.attributes,a=function(e,t){return jr(r.distance,i.length,(function(t){return i[t](e)}),(function(e){return i[e](t)}),e,t)},o=[],s=[],l=[],u=[],c=0;c<n.length;c++){var h={value:"dendrogram"===r.mode?n[c]:[n[c]],key:c,index:c};o[c]=h,u[c]=h,s[c]=[],l[c]=0}for(var d=0;d<o.length;d++)for(var p=0;p<=d;p++){var g=void 0;g="dendrogram"===r.mode?d===p?1/0:a(o[d].value,o[p].value):d===p?1/0:a(o[d].value[0],o[p].value[0]),s[d][p]=g,s[p][d]=g,g<s[d][l[d]]&&(l[d]=p)}for(var f,v=di(o,u,s,l,r);v;)v=di(o,u,s,l,r);return"dendrogram"===r.mode?(f=fi(o[0],r.dendrogramDepth,t),r.addDendrogram&&gi(o[0],t)):(f=new Array(o.length),o.forEach((function(e,n){e.key=e.index=null,f[n]=t.collection(e.value)}))),f},yi={hierarchicalClustering:vi,hca:vi},mi=Mt({distance:"euclidean",preference:"median",damping:.8,maxIterations:1e3,minIterations:100,attributes:[]}),bi=function(e){var t=e.damping,n=e.preference;.5<=t&&t<1||Dt("Damping must range on [0.5, 1). Got: ".concat(t));var r=["median","mean","min","max"];return r.some((function(e){return e===n}))||_(n)||Dt("Preference must be one of [".concat(r.map((function(e){return"'".concat(e,"'")})).join(", "),"] or a number. Got: ").concat(n)),mi(e)},xi=function(e,t,n,r){var i=function(e,t){return r[t](e)};return-jr(e,r.length,(function(e){return i(t,e)}),(function(e){return i(n,e)}),t,n)},wi=function(e,t){return"median"===t?yn(e):"mean"===t?vn(e):"min"===t?gn(e):"max"===t?fn(e):t},Ei=function(e,t,n){for(var r=[],i=0;i<e;i++)t[i*e+i]+n[i*e+i]>0&&r.push(i);return r},Ti=function(e,t,n){for(var r=[],i=0;i<e;i++){for(var a=-1,o=-1/0,s=0;s<n.length;s++){var l=n[s];t[i*e+l]>o&&(a=l,o=t[i*e+l])}a>0&&r.push(a)}for(var u=0;u<n.length;u++)r[n[u]]=n[u];return r},_i=function(e,t,n){for(var r=Ti(e,t,n),i=0;i<n.length;i++){for(var a=[],o=0;o<r.length;o++)r[o]===n[i]&&a.push(o);for(var s=-1,l=-1/0,u=0;u<a.length;u++){for(var c=0,h=0;h<a.length;h++)c+=t[a[h]*e+a[u]];c>l&&(s=u,l=c)}n[i]=a[s]}return r=Ti(e,t,n)},Di=function(e){for(var t,n,r,i,a,o,s=this.cy(),l=this.nodes(),u=bi(e),c={},h=0;h<l.length;h++)c[l[h].id()]=h;n=(t=l.length)*t,r=new Array(n);for(var d=0;d<n;d++)r[d]=-1/0;for(var p=0;p<t;p++)for(var g=0;g<t;g++)p!==g&&(r[p*t+g]=xi(u.distance,l[p],l[g],u.attributes));i=wi(r,u.preference);for(var f=0;f<t;f++)r[f*t+f]=i;a=new Array(n);for(var v=0;v<n;v++)a[v]=0;o=new Array(n);for(var y=0;y<n;y++)o[y]=0;for(var m=new Array(t),b=new Array(t),x=new Array(t),w=0;w<t;w++)m[w]=0,b[w]=0,x[w]=0;for(var E,T=new Array(t*u.minIterations),_=0;_<T.length;_++)T[_]=0;for(E=0;E<u.maxIterations;E++){for(var D=0;D<t;D++){for(var C=-1/0,N=-1/0,A=-1,L=0,S=0;S<t;S++)m[S]=a[D*t+S],(L=o[D*t+S]+r[D*t+S])>=C?(N=C,C=L,A=S):L>N&&(N=L);for(var O=0;O<t;O++)a[D*t+O]=(1-u.damping)*(r[D*t+O]-C)+u.damping*m[O];a[D*t+A]=(1-u.damping)*(r[D*t+A]-N)+u.damping*m[A]}for(var I=0;I<t;I++){for(var k=0,M=0;M<t;M++)m[M]=o[M*t+I],b[M]=Math.max(0,a[M*t+I]),k+=b[M];k-=b[I],b[I]=a[I*t+I],k+=b[I];for(var P=0;P<t;P++)o[P*t+I]=(1-u.damping)*Math.min(0,k-b[P])+u.damping*m[P];o[I*t+I]=(1-u.damping)*(k-b[I])+u.damping*m[I]}for(var R=0,B=0;B<t;B++){var F=o[B*t+B]+a[B*t+B]>0?1:0;T[E%u.minIterations*t+B]=F,R+=F}if(R>0&&(E>=u.minIterations-1||E==u.maxIterations-1)){for(var z=0,G=0;G<t;G++){x[G]=0;for(var Y=0;Y<u.minIterations;Y++)x[G]+=T[Y*t+G];0!==x[G]&&x[G]!==u.minIterations||z++}if(z===t)break}}for(var X=Ei(t,a,o),V=_i(t,r,X),U={},j=0;j<X.length;j++)U[X[j]]=[];for(var H=0;H<l.length;H++){var q=V[c[l[H].id()]];null!=q&&U[q].push(l[H])}for(var W=new Array(X.length),$=0;$<X.length;$++)W[$]=s.collection(U[X[$]]);return W},Ci={affinityPropagation:Di,ap:Di},Ni=Mt({root:void 0,directed:!1}),Ai={hierholzer:function(e){if(!E(e)){var t=arguments;e={root:t[0],directed:t[1]}}var n,r,i,a=Ni(e),o=a.root,s=a.directed,l=this,u=!1;o&&(i=b(o)?this.filter(o)[0].id():o[0].id());var c={},h={};s?l.forEach((function(e){var t=e.id();if(e.isNode()){var i=e.indegree(!0),a=e.outdegree(!0),o=i-a,s=a-i;1==o?n?u=!0:n=t:1==s?r?u=!0:r=t:(s>1||o>1)&&(u=!0),c[t]=[],e.outgoers().forEach((function(e){e.isEdge()&&c[t].push(e.id())}))}else h[t]=[void 0,e.target().id()]})):l.forEach((function(e){var t=e.id();e.isNode()?(e.degree(!0)%2&&(n?r?u=!0:r=t:n=t),c[t]=[],e.connectedEdges().forEach((function(e){return c[t].push(e.id())}))):h[t]=[e.source().id(),e.target().id()]}));var d={found:!1,trail:void 0};if(u)return d;if(r&&n)if(s){if(i&&r!=i)return d;i=r}else{if(i&&r!=i&&n!=i)return d;i||(i=r)}else i||(i=l[0].id());var p=function(e){for(var t,n,r,i=e,a=[e];c[i].length;)t=c[i].shift(),n=h[t][0],i!=(r=h[t][1])?(c[r]=c[r].filter((function(e){return e!=t})),i=r):s||i==n||(c[n]=c[n].filter((function(e){return e!=t})),i=n),a.unshift(t),a.unshift(i);return a},g=[],f=[];for(f=p(i);1!=f.length;)0==c[f[0]].length?(g.unshift(l.getElementById(f.shift())),g.unshift(l.getElementById(f.shift()))):f=p(f.shift()).concat(f);for(var v in g.unshift(l.getElementById(f.shift())),c)if(c[v].length)return d;return d.found=!0,d.trail=this.spawn(g,!0),d}},Li=function(){var e=this,t={},n=0,r=0,i=[],a=[],o={},s=function(n,r){for(var o=a.length-1,s=[],l=e.spawn();a[o].x!=n||a[o].y!=r;)s.push(a.pop().edge),o--;s.push(a.pop().edge),s.forEach((function(n){var r=n.connectedNodes().intersection(e);l.merge(n),r.forEach((function(n){var r=n.id(),i=n.connectedEdges().intersection(e);l.merge(n),t[r].cutVertex?l.merge(i.filter((function(e){return e.isLoop()}))):l.merge(i)}))})),i.push(l)},l=function l(u,c,h){u===h&&(r+=1),t[c]={id:n,low:n++,cutVertex:!1};var d,p,g,f,v=e.getElementById(c).connectedEdges().intersection(e);0===v.size()?i.push(e.spawn(e.getElementById(c))):v.forEach((function(e){d=e.source().id(),p=e.target().id(),(g=d===c?p:d)!==h&&(f=e.id(),o[f]||(o[f]=!0,a.push({x:c,y:g,edge:e})),g in t?t[c].low=Math.min(t[c].low,t[g].id):(l(u,g,c),t[c].low=Math.min(t[c].low,t[g].low),t[c].id<=t[g].low&&(t[c].cutVertex=!0,s(c,g))))}))};e.forEach((function(e){if(e.isNode()){var n=e.id();n in t||(r=0,l(n,n),t[n].cutVertex=r>1)}}));var u=Object.keys(t).filter((function(e){return t[e].cutVertex})).map((function(t){return e.getElementById(t)}));return{cut:e.spawn(u),components:i}},Si=function(){var e=this,t={},n=0,r=[],i=[],a=e.spawn(e),o=function o(s){if(i.push(s),t[s]={index:n,low:n++,explored:!1},e.getElementById(s).connectedEdges().intersection(e).forEach((function(e){var n=e.target().id();n!==s&&(n in t||o(n),t[n].explored||(t[s].low=Math.min(t[s].low,t[n].low)))})),t[s].index===t[s].low){for(var l=e.spawn();;){var u=i.pop();if(l.merge(e.getElementById(u)),t[u].low=t[s].index,t[u].explored=!0,u===s)break}var c=l.edgesWith(l),h=l.merge(c);r.push(h),a=a.difference(h)}};return e.forEach((function(e){if(e.isNode()){var n=e.id();n in t||o(n)}})),{cut:a,components:r}},Oi={};[qt,Zt,Qt,en,nn,an,un,vr,mr,xr,Er,Rr,li,yi,Ci,Ai,{hopcroftTarjanBiconnected:Li,htbc:Li,htb:Li,hopcroftTarjanBiconnectedComponents:Li},{tarjanStronglyConnected:Si,tsc:Si,tscc:Si,tarjanStronglyConnectedComponents:Si}].forEach((function(e){Q(Oi,e)}));var Ii=0,ki=1,Mi=2,Pi=function e(t){if(!(this instanceof e))return new e(t);this.id="Thenable/1.0.7",this.state=Ii,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof t&&t.call(this,this.fulfill.bind(this),this.reject.bind(this))};Pi.prototype={fulfill:function(e){return Ri(this,ki,"fulfillValue",e)},reject:function(e){return Ri(this,Mi,"rejectReason",e)},then:function(e,t){var n=this,r=new Pi;return n.onFulfilled.push(zi(e,r,"fulfill")),n.onRejected.push(zi(t,r,"reject")),Bi(n),r.proxy}};var Ri=function(e,t,n,r){return e.state===Ii&&(e.state=t,e[n]=r,Bi(e)),e},Bi=function(e){e.state===ki?Fi(e,"onFulfilled",e.fulfillValue):e.state===Mi&&Fi(e,"onRejected",e.rejectReason)},Fi=function(e,t,n){if(0!==e[t].length){var r=e[t];e[t]=[];var i=function(){for(var e=0;e<r.length;e++)r[e](n)};"function"==typeof setImmediate?setImmediate(i):setTimeout(i,0)}},zi=function(e,t,n){return function(r){if("function"!=typeof e)t[n].call(t,r);else{var i;try{i=e(r)}catch(a){return void t.reject(a)}Gi(t,i)}}},Gi=function t(n,r){if(n!==r&&n.proxy!==r){var i;if("object"===e(r)&&null!==r||"function"==typeof r)try{i=r.then}catch(o){return void n.reject(o)}if("function"!=typeof i)n.fulfill(r);else{var a=!1;try{i.call(r,(function(e){a||(a=!0,e===r?n.reject(new TypeError("circular thenable chain")):t(n,e))}),(function(e){a||(a=!0,n.reject(e))}))}catch(o){a||n.reject(o)}}}else n.reject(new TypeError("cannot resolve promise with itself"))};Pi.all=function(e){return new Pi((function(t,n){for(var r=new Array(e.length),i=0,a=function(n,a){r[n]=a,++i===e.length&&t(r)},o=0;o<e.length;o++)!function(t){var r=e[t];null!=r&&null!=r.then?r.then((function(e){a(t,e)}),(function(e){n(e)})):a(t,r)}(o)}))},Pi.resolve=function(e){return new Pi((function(t,n){t(e)}))},Pi.reject=function(e){return new Pi((function(t,n){n(e)}))};var Yi="undefined"!=typeof Promise?Promise:Pi,Xi=function(e,t,n){var r=S(e),i=!r,a=this._private=Q({duration:1e3},t,n);if(a.target=e,a.style=a.style||a.css,a.started=!1,a.playing=!1,a.hooked=!1,a.applying=!1,a.progress=0,a.completes=[],a.frames=[],a.complete&&x(a.complete)&&a.completes.push(a.complete),i){var o=e.position();a.startPosition=a.startPosition||{x:o.x,y:o.y},a.startStyle=a.startStyle||e.cy().style().getAnimationStartStyle(e,a.style)}if(r){var s=e.pan();a.startPan={x:s.x,y:s.y},a.startZoom=e.zoom()}this.length=1,this[0]=this},Vi=Xi.prototype;Q(Vi,{instanceString:function(){return"animation"},hook:function(){var e=this._private;if(!e.hooked){var t=e.target._private.animation;(e.queue?t.queue:t.current).push(this),N(e.target)&&e.target.cy().addToAnimationPool(e.target),e.hooked=!0}return this},play:function(){var e=this._private;return 1===e.progress&&(e.progress=0),e.playing=!0,e.started=!1,e.stopped=!1,this.hook(),this},playing:function(){return this._private.playing},apply:function(){var e=this._private;return e.applying=!0,e.started=!1,e.stopped=!1,this.hook(),this},applying:function(){return this._private.applying},pause:function(){var e=this._private;return e.playing=!1,e.started=!1,this},stop:function(){var e=this._private;return e.playing=!1,e.started=!1,e.stopped=!0,this},rewind:function(){return this.progress(0)},fastforward:function(){return this.progress(1)},time:function(e){var t=this._private;return void 0===e?t.progress*t.duration:this.progress(e/t.duration)},progress:function(e){var t=this._private,n=t.playing;return void 0===e?t.progress:(n&&this.pause(),t.progress=e,t.started=!1,n&&this.play(),this)},completed:function(){return 1===this._private.progress},reverse:function(){var e=this._private,t=e.playing;t&&this.pause(),e.progress=1-e.progress,e.started=!1;var n=function(t,n){var r=e[t];null!=r&&(e[t]=e[n],e[n]=r)};if(n("zoom","startZoom"),n("pan","startPan"),n("position","startPosition"),e.style)for(var r=0;r<e.style.length;r++){var i=e.style[r],a=i.name,o=e.startStyle[a];e.startStyle[a]=i,e.style[r]=o}return t&&this.play(),this},promise:function(e){var t,n=this._private;return t="frame"===e?n.frames:n.completes,new Yi((function(e,n){t.push((function(){e()}))}))}}),Vi.complete=Vi.completed,Vi.run=Vi.play,Vi.running=Vi.playing;var Ui={animated:function(){return function(){var e=this,t=void 0!==e.length?e:[e];if(!(this._private.cy||this).styleEnabled())return!1;var n=t[0];return n?n._private.animation.current.length>0:void 0}},clearQueue:function(){return function(){var e=this,t=void 0!==e.length?e:[e];if(!(this._private.cy||this).styleEnabled())return this;for(var n=0;n<t.length;n++)t[n]._private.animation.queue=[];return this}},delay:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animate({delay:e,duration:e,complete:t}):this}},delayAnimation:function(){return function(e,t){return(this._private.cy||this).styleEnabled()?this.animation({delay:e,duration:e,complete:t}):this}},animation:function(){return function(e,t){var n=this,r=void 0!==n.length,i=r?n:[n],a=this._private.cy||this,o=!r,s=!o;if(!a.styleEnabled())return this;var l=a.style();if(e=Q({},e,t),0===Object.keys(e).length)return new Xi(i[0],e);switch(void 0===e.duration&&(e.duration=400),e.duration){case"slow":e.duration=600;break;case"fast":e.duration=200}if(s&&(e.style=l.getPropsList(e.style||e.css),e.css=void 0),s&&null!=e.renderedPosition){var u=e.renderedPosition,c=a.pan(),h=a.zoom();e.position=dn(u,h,c)}if(o&&null!=e.panBy){var d=e.panBy,p=a.pan();e.pan={x:p.x+d.x,y:p.y+d.y}}var g=e.center||e.centre;if(o&&null!=g){var f=a.getCenterPan(g.eles,e.zoom);null!=f&&(e.pan=f)}if(o&&null!=e.fit){var v=e.fit,y=a.getFitViewport(v.eles||v.boundingBox,v.padding);null!=y&&(e.pan=y.pan,e.zoom=y.zoom)}if(o&&E(e.zoom)){var m=a.getZoomedViewport(e.zoom);null!=m?(m.zoomed&&(e.zoom=m.zoom),m.panned&&(e.pan=m.pan)):e.zoom=null}return new Xi(i[0],e)}},animate:function(){return function(e,t){var n=this,r=void 0!==n.length?n:[n];if(!(this._private.cy||this).styleEnabled())return this;t&&(e=Q({},e,t));for(var i=0;i<r.length;i++){var a=r[i],o=a.animated()&&(void 0===e.queue||e.queue);a.animation(e,o?{queue:!0}:void 0).play()}return this}},stop:function(){return function(e,t){var n=this,r=void 0!==n.length?n:[n],i=this._private.cy||this;if(!i.styleEnabled())return this;for(var a=0;a<r.length;a++){for(var o=r[a]._private,s=o.animation.current,l=0;l<s.length;l++){var u=s[l]._private;t&&(u.duration=0)}e&&(o.animation.queue=[]),t||(o.animation.current=[])}return i.notify("draw"),this}}},ji=Array.isArray,Hi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qi=/^\w*$/;function Wi(e,t){if(ji(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Ge(e))||qi.test(e)||!Hi.test(e)||null!=t&&e in Object(t)}var $i=Wi,Ki="[object AsyncFunction]",Zi="[object Function]",Qi="[object GeneratorFunction]",Ji="[object Proxy]";function ea(e){if(!le(e))return!1;var t=Pe(e);return t==Zi||t==Qi||t==Ki||t==Ji}var ta,na=ea,ra=pe["__core-js_shared__"],ia=(ta=/[^.]+$/.exec(ra&&ra.keys&&ra.keys.IE_PROTO||""))?"Symbol(src)_1."+ta:"";function aa(e){return!!ia&&ia in e}var oa=aa,sa=Function.prototype.toString;function la(e){if(null!=e){try{return sa.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var ua=la,ca=/[\\^$.*+?()[\]{}|]/g,ha=/^\[object .+?Constructor\]$/,da=Function.prototype,pa=Object.prototype,ga=da.toString,fa=pa.hasOwnProperty,va=RegExp("^"+ga.call(fa).replace(ca,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ya(e){return!(!le(e)||oa(e))&&(na(e)?va:ha).test(ua(e))}var ma=ya;function ba(e,t){return null==e?void 0:e[t]}var xa=ba;function wa(e,t){var n=xa(e,t);return ma(n)?n:void 0}var Ea=wa,Ta=Ea(Object,"create");function _a(){this.__data__=Ta?Ta(null):{},this.size=0}var Da=_a;function Ca(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Na=Ca,Aa="__lodash_hash_undefined__",La=Object.prototype.hasOwnProperty;function Sa(e){var t=this.__data__;if(Ta){var n=t[e];return n===Aa?void 0:n}return La.call(t,e)?t[e]:void 0}var Oa=Sa,Ia=Object.prototype.hasOwnProperty;function ka(e){var t=this.__data__;return Ta?void 0!==t[e]:Ia.call(t,e)}var Ma=ka,Pa="__lodash_hash_undefined__";function Ra(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Ta&&void 0===t?Pa:t,this}var Ba=Ra;function Fa(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Fa.prototype.clear=Da,Fa.prototype.delete=Na,Fa.prototype.get=Oa,Fa.prototype.has=Ma,Fa.prototype.set=Ba;var za=Fa;function Ga(){this.__data__=[],this.size=0}var Ya=Ga;function Xa(e,t){return e===t||e!=e&&t!=t}var Va=Xa;function Ua(e,t){for(var n=e.length;n--;)if(Va(e[n][0],t))return n;return-1}var ja=Ua,Ha=Array.prototype.splice;function qa(e){var t=this.__data__,n=ja(t,e);return!(n<0||(n==t.length-1?t.pop():Ha.call(t,n,1),--this.size,0))}var Wa=qa;function $a(e){var t=this.__data__,n=ja(t,e);return n<0?void 0:t[n][1]}var Ka=$a;function Za(e){return ja(this.__data__,e)>-1}var Qa=Za;function Ja(e,t){var n=this.__data__,r=ja(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var eo=Ja;function to(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}to.prototype.clear=Ya,to.prototype.delete=Wa,to.prototype.get=Ka,to.prototype.has=Qa,to.prototype.set=eo;var no=to,ro=Ea(pe,"Map");function io(){this.size=0,this.__data__={hash:new za,map:new(ro||no),string:new za}}var ao=io;function oo(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}var so=oo;function lo(e,t){var n=e.__data__;return so(t)?n["string"==typeof t?"string":"hash"]:n.map}var uo=lo;function co(e){var t=uo(this,e).delete(e);return this.size-=t?1:0,t}var ho=co;function po(e){return uo(this,e).get(e)}var go=po;function fo(e){return uo(this,e).has(e)}var vo=fo;function yo(e,t){var n=uo(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var mo=yo;function bo(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}bo.prototype.clear=ao,bo.prototype.delete=ho,bo.prototype.get=go,bo.prototype.has=vo,bo.prototype.set=mo;var xo=bo,wo="Expected a function";function Eo(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(wo);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(Eo.Cache||xo),n}Eo.Cache=xo;var To=Eo,_o=500;function Do(e){var t=To(e,(function(e){return n.size===_o&&n.clear(),e})),n=t.cache;return t}var Co=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,No=/\\(\\)?/g,Ao=Do((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Co,(function(e,n,r,i){t.push(r?i.replace(No,"$1"):n||e)})),t})),Lo=Ao;function So(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var Oo=So,Io=1/0,ko=we?we.prototype:void 0,Mo=ko?ko.toString:void 0;function Po(e){if("string"==typeof e)return e;if(ji(e))return Oo(e,Po)+"";if(Ge(e))return Mo?Mo.call(e):"";var t=e+"";return"0"==t&&1/e==-Io?"-0":t}var Ro=Po;function Bo(e){return null==e?"":Ro(e)}var Fo=Bo;function zo(e,t){return ji(e)?e:$i(e,t)?[e]:Lo(Fo(e))}var Go=zo,Yo=1/0;function Xo(e){if("string"==typeof e||Ge(e))return e;var t=e+"";return"0"==t&&1/e==-Yo?"-0":t}var Vo=Xo;function Uo(e,t){for(var n=0,r=(t=Go(t,e)).length;null!=e&&n<r;)e=e[Vo(t[n++])];return n&&n==r?e:void 0}var jo=Uo;function Ho(e,t,n){var r=null==e?void 0:jo(e,t);return void 0===r?n:r}var qo=Ho,Wo=function(){try{var e=Ea(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();function $o(e,t,n){"__proto__"==t&&Wo?Wo(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var Ko=$o,Zo=Object.prototype.hasOwnProperty;function Qo(e,t,n){var r=e[t];Zo.call(e,t)&&Va(r,n)&&(void 0!==n||t in e)||Ko(e,t,n)}var Jo=Qo,es=9007199254740991,ts=/^(?:0|[1-9]\d*)$/;function ns(e,t){var n=typeof e;return!!(t=null==t?es:t)&&("number"==n||"symbol"!=n&&ts.test(e))&&e>-1&&e%1==0&&e<t}var rs=ns;function is(e,t,n,r){if(!le(e))return e;for(var i=-1,a=(t=Go(t,e)).length,o=a-1,s=e;null!=s&&++i<a;){var l=Vo(t[i]),u=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return e;if(i!=o){var c=s[l];void 0===(u=r?r(c,l,s):void 0)&&(u=le(c)?c:rs(t[i+1])?[]:{})}Jo(s,l,u),s=s[l]}return e}var as=is;function os(e,t,n){return null==e?e:as(e,t,n)}var ss=os;function ls(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}var us=ls;function cs(e){return ji(e)?Oo(e,Vo):Ge(e)?[e]:us(Lo(Fo(e)))}var hs=cs,ds={data:function(e){return e=Q({},{field:"data",bindingEvent:"data",allowBinding:!1,allowSetting:!1,allowGetting:!1,settingEvent:"data",settingTriggersEvent:!1,triggerFnName:"trigger",immutableKeys:{},updateStyle:!1,beforeGet:function(e){},beforeSet:function(e,t){},onSet:function(e){},canSet:function(e){return!0}},e),function(t,n){var r=e,i=this,o=void 0!==i.length,s=o?i:[i],l=o?i[0]:i;if(b(t)){var u,c=-1!==t.indexOf(".")&&hs(t);if(r.allowGetting&&void 0===n)return l&&(r.beforeGet(l),u=c&&void 0===l._private[r.field][t]?qo(l._private[r.field],c):l._private[r.field][t]),u;if(r.allowSetting&&void 0!==n&&!r.immutableKeys[t]){var h=a({},t,n);r.beforeSet(i,h);for(var d=0,p=s.length;d<p;d++){var g=s[d];r.canSet(g)&&(c&&void 0===l._private[r.field][t]?ss(g._private[r.field],c,n):g._private[r.field][t]=n)}r.updateStyle&&i.updateStyle(),r.onSet(i),r.settingTriggersEvent&&i[r.triggerFnName](r.settingEvent)}}else if(r.allowSetting&&E(t)){var f,v,y=t,m=Object.keys(y);r.beforeSet(i,y);for(var w=0;w<m.length;w++)if(v=y[f=m[w]],!r.immutableKeys[f])for(var T=0;T<s.length;T++){var _=s[T];r.canSet(_)&&(_._private[r.field][f]=v)}r.updateStyle&&i.updateStyle(),r.onSet(i),r.settingTriggersEvent&&i[r.triggerFnName](r.settingEvent)}else if(r.allowBinding&&x(t)){var D=t;i.on(r.bindingEvent,D)}else if(r.allowGetting&&void 0===t){var C;return l&&(r.beforeGet(l),C=l._private[r.field]),C}return i}},removeData:function(e){return e=Q({},{field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!1,immutableKeys:{}},e),function(t){var n=e,r=this,i=void 0!==r.length?r:[r];if(b(t)){for(var a=t.split(/\s+/),o=a.length,s=0;s<o;s++){var l=a[s];if(!k(l)&&!n.immutableKeys[l])for(var u=0,c=i.length;u<c;u++)i[u]._private[n.field][l]=void 0}n.triggerEvent&&r[n.triggerFnName](n.event)}else if(void 0===t){for(var h=0,d=i.length;h<d;h++)for(var p=i[h]._private[n.field],g=Object.keys(p),f=0;f<g.length;f++){var v=g[f];!n.immutableKeys[v]&&(p[v]=void 0)}n.triggerEvent&&r[n.triggerFnName](n.event)}return r}}},ps={eventAliasesOn:function(e){var t=e;t.addListener=t.listen=t.bind=t.on,t.unlisten=t.unbind=t.off=t.removeListener,t.trigger=t.emit,t.pon=t.promiseOn=function(e,t){var n=this,r=Array.prototype.slice.call(arguments,0);return new Yi((function(e,t){var i=function(t){n.off.apply(n,o),e(t)},a=r.concat([i]),o=a.concat([]);n.on.apply(n,a)}))}}},gs={};[Ui,ds,ps].forEach((function(e){Q(gs,e)}));var fs={animate:gs.animate(),animation:gs.animation(),animated:gs.animated(),clearQueue:gs.clearQueue(),delay:gs.delay(),delayAnimation:gs.delayAnimation(),stop:gs.stop()},vs={classes:function(e){var t=this;if(void 0===e){var n=[];return t[0]._private.classes.forEach((function(e){return n.push(e)})),n}w(e)||(e=(e||"").match(/\S+/g)||[]);for(var r=[],i=new Ut(e),a=0;a<t.length;a++){for(var o=t[a],s=o._private,l=s.classes,u=!1,c=0;c<e.length;c++){var h=e[c];if(!l.has(h)){u=!0;break}}u||(u=l.size!==e.length),u&&(s.classes=i,r.push(o))}return r.length>0&&this.spawn(r).updateStyle().emit("class"),t},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){w(e)||(e=e.match(/\S+/g)||[]);for(var n=this,r=void 0===t,i=[],a=0,o=n.length;a<o;a++)for(var s=n[a],l=s._private.classes,u=!1,c=0;c<e.length;c++){var h=e[c],d=l.has(h),p=!1;t||r&&!d?(l.add(h),p=!0):(!t||r&&d)&&(l.delete(h),p=!0),!u&&p&&(i.push(s),u=!0)}return i.length>0&&this.spawn(i).updateStyle().emit("class"),n},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(null==t)t=250;else if(0===t)return n;return n.addClass(e),setTimeout((function(){n.removeClass(e)}),t),n}};vs.className=vs.classNames=vs.classes;var ys={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:V,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};ys.variable="(?:[\\w-.]|(?:\\\\"+ys.metaChar+"))+",ys.className="(?:[\\w-]|(?:\\\\"+ys.metaChar+"))+",ys.value=ys.string+"|"+ys.number,ys.id=ys.variable,function(){var e,t,n;for(e=ys.comparatorOp.split("|"),n=0;n<e.length;n++)t=e[n],ys.comparatorOp+="|@"+t;for(e=ys.comparatorOp.split("|"),n=0;n<e.length;n++)(t=e[n]).indexOf("!")>=0||"="!==t&&(ys.comparatorOp+="|\\!"+t)}();var ms=function(){return{checks:[]}},bs={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},xs=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort((function(e,t){return Z(e.selector,t.selector)})),ws=function(){for(var e,t={},n=0;n<xs.length;n++)t[(e=xs[n]).selector]=e.matches;return t}(),Es=function(e,t){return ws[e](t)},Ts="("+xs.map((function(e){return e.selector})).join("|")+")",_s=function(e){return e.replace(new RegExp("\\\\("+ys.metaChar+")","g"),(function(e,t){return t}))},Ds=function(e,t,n){e[e.length-1]=n},Cs=[{name:"group",query:!0,regex:"("+ys.group+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:bs.GROUP,value:"*"===r?r:r+"s"})}},{name:"state",query:!0,regex:Ts,populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:bs.STATE,value:r})}},{name:"id",query:!0,regex:"\\#("+ys.id+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:bs.ID,value:_s(r)})}},{name:"className",query:!0,regex:"\\.("+ys.className+")",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:bs.CLASS,value:_s(r)})}},{name:"dataExists",query:!0,regex:"\\[\\s*("+ys.variable+")\\s*\\]",populate:function(e,t,n){var r=o(n,1)[0];t.checks.push({type:bs.DATA_EXIST,field:_s(r)})}},{name:"dataCompare",query:!0,regex:"\\[\\s*("+ys.variable+")\\s*("+ys.comparatorOp+")\\s*("+ys.value+")\\s*\\]",populate:function(e,t,n){var r=o(n,3),i=r[0],a=r[1],s=r[2];s=null!=new RegExp("^"+ys.string+"$").exec(s)?s.substring(1,s.length-1):parseFloat(s),t.checks.push({type:bs.DATA_COMPARE,field:_s(i),operator:a,value:s})}},{name:"dataBool",query:!0,regex:"\\[\\s*("+ys.boolOp+")\\s*("+ys.variable+")\\s*\\]",populate:function(e,t,n){var r=o(n,2),i=r[0],a=r[1];t.checks.push({type:bs.DATA_BOOL,field:_s(a),operator:i})}},{name:"metaCompare",query:!0,regex:"\\[\\[\\s*("+ys.meta+")\\s*("+ys.comparatorOp+")\\s*("+ys.number+")\\s*\\]\\]",populate:function(e,t,n){var r=o(n,3),i=r[0],a=r[1],s=r[2];t.checks.push({type:bs.META_COMPARE,field:_s(i),operator:a,value:parseFloat(s)})}},{name:"nextQuery",separator:!0,regex:ys.separator,populate:function(e,t){var n=e.currentSubject,r=e.edgeCount,i=e.compoundCount,a=e[e.length-1];return null!=n&&(a.subject=n,e.currentSubject=null),a.edgeCount=r,a.compoundCount=i,e.edgeCount=0,e.compoundCount=0,e[e.length++]=ms()}},{name:"directedEdge",separator:!0,regex:ys.directedEdge,populate:function(e,t){if(null==e.currentSubject){var n=ms(),r=t,i=ms();return n.checks.push({type:bs.DIRECTED_EDGE,source:r,target:i}),Ds(e,t,n),e.edgeCount++,i}var a=ms(),o=t,s=ms();return a.checks.push({type:bs.NODE_SOURCE,source:o,target:s}),Ds(e,t,a),e.edgeCount++,s}},{name:"undirectedEdge",separator:!0,regex:ys.undirectedEdge,populate:function(e,t){if(null==e.currentSubject){var n=ms(),r=t,i=ms();return n.checks.push({type:bs.UNDIRECTED_EDGE,nodes:[r,i]}),Ds(e,t,n),e.edgeCount++,i}var a=ms(),o=t,s=ms();return a.checks.push({type:bs.NODE_NEIGHBOR,node:o,neighbor:s}),Ds(e,t,a),s}},{name:"child",separator:!0,regex:ys.child,populate:function(e,t){if(null==e.currentSubject){var n=ms(),r=ms(),i=e[e.length-1];return n.checks.push({type:bs.CHILD,parent:i,child:r}),Ds(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=ms(),o=e[e.length-1],s=ms(),l=ms(),u=ms(),c=ms();return a.checks.push({type:bs.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:bs.TRUE}],c.checks.push({type:bs.TRUE}),s.checks.push({type:bs.PARENT,parent:c,child:u}),Ds(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=ms(),d=ms(),p=[{type:bs.PARENT,parent:h,child:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"descendant",separator:!0,regex:ys.descendant,populate:function(e,t){if(null==e.currentSubject){var n=ms(),r=ms(),i=e[e.length-1];return n.checks.push({type:bs.DESCENDANT,ancestor:i,descendant:r}),Ds(e,t,n),e.compoundCount++,r}if(e.currentSubject===t){var a=ms(),o=e[e.length-1],s=ms(),l=ms(),u=ms(),c=ms();return a.checks.push({type:bs.COMPOUND_SPLIT,left:o,right:s,subject:l}),l.checks=t.checks,t.checks=[{type:bs.TRUE}],c.checks.push({type:bs.TRUE}),s.checks.push({type:bs.ANCESTOR,ancestor:c,descendant:u}),Ds(e,o,a),e.currentSubject=l,e.compoundCount++,u}var h=ms(),d=ms(),p=[{type:bs.ANCESTOR,ancestor:h,descendant:d}];return h.checks=t.checks,t.checks=p,e.compoundCount++,d}},{name:"subject",modifier:!0,regex:ys.subject,populate:function(e,t){if(null!=e.currentSubject&&e.currentSubject!==t)return Nt("Redefinition of subject in selector `"+e.toString()+"`"),!1;e.currentSubject=t;var n=e[e.length-1].checks[0],r=null==n?null:n.type;r===bs.DIRECTED_EDGE?n.type=bs.NODE_TARGET:r===bs.UNDIRECTED_EDGE&&(n.type=bs.NODE_NEIGHBOR,n.node=n.nodes[1],n.neighbor=n.nodes[0],n.nodes=null)}}];Cs.forEach((function(e){return e.regexObj=new RegExp("^"+e.regex)}));var Ns=function(e){for(var t,n,r,i=0;i<Cs.length;i++){var a=Cs[i],o=a.name,s=e.match(a.regexObj);if(null!=s){n=s,t=a,r=o;var l=s[0];e=e.substring(l.length);break}}return{expr:t,match:n,name:r,remaining:e}},As=function(e){var t=e.match(/^\s+/);if(t){var n=t[0];e=e.substring(n.length)}return e},Ls=function(e){var t=this,n=t.inputText=e,r=t[0]=ms();for(t.length=1,n=As(n);;){var i=Ns(n);if(null==i.expr)return Nt("The selector `"+e+"`is invalid"),!1;var a=i.match.slice(1),o=i.expr.populate(t,r,a);if(!1===o)return!1;if(null!=o&&(r=o),(n=i.remaining).match(/^\s*$/))break}var s=t[t.length-1];null!=t.currentSubject&&(s.subject=t.currentSubject),s.edgeCount=t.edgeCount,s.compoundCount=t.compoundCount;for(var l=0;l<t.length;l++){var u=t[l];if(u.compoundCount>0&&u.edgeCount>0)return Nt("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(u.edgeCount>1)return Nt("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===u.edgeCount&&Nt("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},Ss=function(){if(null!=this.toStringCache)return this.toStringCache;for(var e=function(e){return null==e?"":e},t=function(t){return b(t)?'"'+t+'"':e(t)},n=function(e){return" "+e+" "},r=function(r,a){var o=r.type,s=r.value;switch(o){case bs.GROUP:var l=e(s);return l.substring(0,l.length-1);case bs.DATA_COMPARE:var u=r.field,c=r.operator;return"["+u+n(e(c))+t(s)+"]";case bs.DATA_BOOL:var h=r.operator,d=r.field;return"["+e(h)+d+"]";case bs.DATA_EXIST:return"["+r.field+"]";case bs.META_COMPARE:var p=r.operator;return"[["+r.field+n(e(p))+t(s)+"]]";case bs.STATE:return s;case bs.ID:return"#"+s;case bs.CLASS:return"."+s;case bs.PARENT:case bs.CHILD:return i(r.parent,a)+n(">")+i(r.child,a);case bs.ANCESTOR:case bs.DESCENDANT:return i(r.ancestor,a)+" "+i(r.descendant,a);case bs.COMPOUND_SPLIT:var g=i(r.left,a),f=i(r.subject,a),v=i(r.right,a);return g+(g.length>0?" ":"")+f+v;case bs.TRUE:return""}},i=function(e,t){return e.checks.reduce((function(n,i,a){return n+(t===e&&0===a?"$":"")+r(i,t)}),"")},a="",o=0;o<this.length;o++){var s=this[o];a+=i(s,s.subject),this.length>1&&o<this.length-1&&(a+=", ")}return this.toStringCache=a,a},Os={parse:Ls,toString:Ss},Is=function(e,t,n){var r,i,a,o=b(e),s=_(e),l=b(n),u=!1,c=!1,h=!1;switch(t.indexOf("!")>=0&&(t=t.replace("!",""),c=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),u=!0),(o||l||u)&&(i=o||s?""+e:"",a=""+n),u&&(e=i=i.toLowerCase(),n=a=a.toLowerCase()),t){case"*=":r=i.indexOf(a)>=0;break;case"$=":r=i.indexOf(a,i.length-a.length)>=0;break;case"^=":r=0===i.indexOf(a);break;case"=":r=e===n;break;case">":h=!0,r=e>n;break;case">=":h=!0,r=e>=n;break;case"<":h=!0,r=e<n;break;case"<=":h=!0,r=e<=n;break;default:r=!1}return!c||null==e&&h||(r=!r),r},ks=function(e,t){switch(t){case"?":return!!e;case"!":return!e;case"^":return void 0===e}},Ms=function(e){return void 0!==e},Ps=function(e,t){return e.data(t)},Rs=function(e,t){return e[t]()},Bs=[],Fs=function(e,t){return e.checks.every((function(e){return Bs[e.type](e,t)}))};Bs[bs.GROUP]=function(e,t){var n=e.value;return"*"===n||n===t.group()},Bs[bs.STATE]=function(e,t){var n=e.value;return Es(n,t)},Bs[bs.ID]=function(e,t){var n=e.value;return t.id()===n},Bs[bs.CLASS]=function(e,t){var n=e.value;return t.hasClass(n)},Bs[bs.META_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return Is(Rs(t,n),r,i)},Bs[bs.DATA_COMPARE]=function(e,t){var n=e.field,r=e.operator,i=e.value;return Is(Ps(t,n),r,i)},Bs[bs.DATA_BOOL]=function(e,t){var n=e.field,r=e.operator;return ks(Ps(t,n),r)},Bs[bs.DATA_EXIST]=function(e,t){var n=e.field;return e.operator,Ms(Ps(t,n))},Bs[bs.UNDIRECTED_EDGE]=function(e,t){var n=e.nodes[0],r=e.nodes[1],i=t.source(),a=t.target();return Fs(n,i)&&Fs(r,a)||Fs(r,i)&&Fs(n,a)},Bs[bs.NODE_NEIGHBOR]=function(e,t){return Fs(e.node,t)&&t.neighborhood().some((function(t){return t.isNode()&&Fs(e.neighbor,t)}))},Bs[bs.DIRECTED_EDGE]=function(e,t){return Fs(e.source,t.source())&&Fs(e.target,t.target())},Bs[bs.NODE_SOURCE]=function(e,t){return Fs(e.source,t)&&t.outgoers().some((function(t){return t.isNode()&&Fs(e.target,t)}))},Bs[bs.NODE_TARGET]=function(e,t){return Fs(e.target,t)&&t.incomers().some((function(t){return t.isNode()&&Fs(e.source,t)}))},Bs[bs.CHILD]=function(e,t){return Fs(e.child,t)&&Fs(e.parent,t.parent())},Bs[bs.PARENT]=function(e,t){return Fs(e.parent,t)&&t.children().some((function(t){return Fs(e.child,t)}))},Bs[bs.DESCENDANT]=function(e,t){return Fs(e.descendant,t)&&t.ancestors().some((function(t){return Fs(e.ancestor,t)}))},Bs[bs.ANCESTOR]=function(e,t){return Fs(e.ancestor,t)&&t.descendants().some((function(t){return Fs(e.descendant,t)}))},Bs[bs.COMPOUND_SPLIT]=function(e,t){return Fs(e.subject,t)&&Fs(e.left,t)&&Fs(e.right,t)},Bs[bs.TRUE]=function(){return!0},Bs[bs.COLLECTION]=function(e,t){return e.value.has(t)},Bs[bs.FILTER]=function(e,t){return(0,e.value)(t)};var zs=function(e){var t=this;if(1===t.length&&1===t[0].checks.length&&t[0].checks[0].type===bs.ID)return e.getElementById(t[0].checks[0].value).collection();var n=function(e){for(var n=0;n<t.length;n++){var r=t[n];if(Fs(r,e))return!0}return!1};return null==t.text()&&(n=function(){return!0}),e.filter(n)},Gs={matches:function(e){for(var t=this,n=0;n<t.length;n++){var r=t[n];if(Fs(r,e))return!0}return!1},filter:zs},Ys=function(e){this.inputText=e,this.currentSubject=null,this.compoundCount=0,this.edgeCount=0,this.length=0,null==e||b(e)&&e.match(/^\s*$/)||(N(e)?this.addQuery({checks:[{type:bs.COLLECTION,value:e.collection()}]}):x(e)?this.addQuery({checks:[{type:bs.FILTER,value:e}]}):b(e)?this.parse(e)||(this.invalid=!0):Dt("A selector must be created from a string; found "))},Xs=Ys.prototype;[Os,Gs].forEach((function(e){return Q(Xs,e)})),Xs.text=function(){return this.inputText},Xs.size=function(){return this.length},Xs.eq=function(e){return this[e]},Xs.sameText=function(e){return!this.invalid&&!e.invalid&&this.text()===e.text()},Xs.addQuery=function(e){this[this.length++]=e},Xs.selector=Xs.toString;var Vs={allAre:function(e){var t=new Ys(e);return this.every((function(e){return t.matches(e)}))},is:function(e){var t=new Ys(e);return this.some((function(e){return t.matches(e)}))},some:function(e,t){for(var n=0;n<this.length;n++)if(t?e.apply(t,[this[n],n,this]):e(this[n],n,this))return!0;return!1},every:function(e,t){for(var n=0;n<this.length;n++)if(!(t?e.apply(t,[this[n],n,this]):e(this[n],n,this)))return!1;return!0},same:function(e){if(this===e)return!0;e=this.cy().collection(e);var t=this.length;return t===e.length&&(1===t?this[0]===e[0]:this.every((function(t){return e.hasElementWithId(t.id())})))},anySame:function(e){return e=this.cy().collection(e),this.some((function(t){return e.hasElementWithId(t.id())}))},allAreNeighbors:function(e){e=this.cy().collection(e);var t=this.neighborhood();return e.every((function(e){return t.hasElementWithId(e.id())}))},contains:function(e){e=this.cy().collection(e);var t=this;return e.every((function(e){return t.hasElementWithId(e.id())}))}};Vs.allAreNeighbours=Vs.allAreNeighbors,Vs.has=Vs.contains,Vs.equal=Vs.equals=Vs.same;var Us,js,Hs=function(e,t){return function(n,r,i,a){var o,s=n,l=this;if(null==s?o="":N(s)&&1===s.length&&(o=s.id()),1===l.length&&o){var u=l[0]._private,c=u.traversalCache=u.traversalCache||{},h=c[t]=c[t]||[],d=gt(o),p=h[d];return p||(h[d]=e.call(l,n,r,i,a))}return e.call(l,n,r,i,a)}},qs={parent:function(e){var t=[];if(1===this.length){var n=this[0]._private.parent;if(n)return n}for(var r=0;r<this.length;r++){var i=this[r]._private.parent;i&&t.push(i)}return this.spawn(t,!0).filter(e)},parents:function(e){for(var t=[],n=this.parent();n.nonempty();){for(var r=0;r<n.length;r++){var i=n[r];t.push(i)}n=n.parent()}return this.spawn(t,!0).filter(e)},commonAncestors:function(e){for(var t,n=0;n<this.length;n++){var r=this[n].parents();t=(t=t||r).intersect(r)}return t.filter(e)},orphans:function(e){return this.stdFilter((function(e){return e.isOrphan()})).filter(e)},nonorphans:function(e){return this.stdFilter((function(e){return e.isChild()})).filter(e)},children:Hs((function(e){for(var t=[],n=0;n<this.length;n++)for(var r=this[n]._private.children,i=0;i<r.length;i++)t.push(r[i]);return this.spawn(t,!0).filter(e)}),"children"),siblings:function(e){return this.parent().children().not(this).filter(e)},isParent:function(){var e=this[0];if(e)return e.isNode()&&0!==e._private.children.length},isChildless:function(){var e=this[0];if(e)return e.isNode()&&0===e._private.children.length},isChild:function(){var e=this[0];if(e)return e.isNode()&&null!=e._private.parent},isOrphan:function(){var e=this[0];if(e)return e.isNode()&&null==e._private.parent},descendants:function(e){var t=[];function n(e){for(var r=0;r<e.length;r++){var i=e[r];t.push(i),i.children().nonempty()&&n(i.children())}}return n(this.children()),this.spawn(t,!0).filter(e)}};function Ws(e,t,n,r){for(var i=[],a=new Ut,o=e.cy().hasCompoundNodes(),s=0;s<e.length;s++){var l=e[s];n?i.push(l):o&&r(i,a,l)}for(;i.length>0;){var u=i.shift();t(u),a.add(u.id()),o&&r(i,a,u)}return e}function $s(e,t,n){if(n.isParent())for(var r=n._private.children,i=0;i<r.length;i++){var a=r[i];t.has(a.id())||e.push(a)}}function Ks(e,t,n){if(n.isChild()){var r=n._private.parent;t.has(r.id())||e.push(r)}}function Zs(e,t,n){Ks(e,t,n),$s(e,t,n)}qs.forEachDown=function(e){return Ws(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],$s)},qs.forEachUp=function(e){return Ws(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Ks)},qs.forEachUpAndDown=function(e){return Ws(this,e,!(arguments.length>1&&void 0!==arguments[1])||arguments[1],Zs)},qs.ancestors=qs.parents,(Us=js={data:gs.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:gs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:gs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:gs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:gs.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:gs.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=Us.data,Us.removeAttr=Us.removeData;var Qs,Js,el=js,tl={};function nl(e){return function(t){var n=this;if(void 0===t&&(t=!0),0!==n.length&&n.isNode()&&!n.removed()){for(var r=0,i=n[0],a=i._private.edges,o=0;o<a.length;o++){var s=a[o];!t&&s.isLoop()||(r+=e(i,s))}return r}}}function rl(e,t){return function(n){for(var r,i=this.nodes(),a=0;a<i.length;a++){var o=i[a][e](n);void 0===o||void 0!==r&&!t(o,r)||(r=o)}return r}}Q(tl,{degree:nl((function(e,t){return t.source().same(t.target())?2:1})),indegree:nl((function(e,t){return t.target().same(e)?1:0})),outdegree:nl((function(e,t){return t.source().same(e)?1:0}))}),Q(tl,{minDegree:rl("degree",(function(e,t){return e<t})),maxDegree:rl("degree",(function(e,t){return e>t})),minIndegree:rl("indegree",(function(e,t){return e<t})),maxIndegree:rl("indegree",(function(e,t){return e>t})),minOutdegree:rl("outdegree",(function(e,t){return e<t})),maxOutdegree:rl("outdegree",(function(e,t){return e>t}))}),Q(tl,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r<n.length;r++)t+=n[r].degree(e);return t}});var il=function(e,t,n){for(var r=0;r<e.length;r++){var i=e[r];if(!i.locked()){var a=i._private.position,o={x:null!=t.x?t.x-a.x:0,y:null!=t.y?t.y-a.y:0};!i.isParent()||0===o.x&&0===o.y||i.children().shift(o,n),i.dirtyBoundingBoxCache()}}},al={field:"position",bindingEvent:"position",allowBinding:!0,allowSetting:!0,settingEvent:"position",settingTriggersEvent:!0,triggerFnName:"emitAndNotify",allowGetting:!0,validKeys:["x","y"],beforeGet:function(e){e.updateCompoundBounds()},beforeSet:function(e,t){il(e,t,!1)},onSet:function(e){e.dirtyCompoundBoundsCache()},canSet:function(e){return!e.locked()}};Qs=Js={position:gs.data(al),silentPosition:gs.data(Q({},al,{allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!1,beforeSet:function(e,t){il(e,t,!0)},onSet:function(e){e.dirtyCompoundBoundsCache()}})),positions:function(e,t){if(E(e))t?this.silentPosition(e):this.position(e);else if(x(e)){var n=e,r=this.cy();r.startBatch();for(var i=0;i<this.length;i++){var a=this[i],o=void 0;(o=n(a,i))&&(t?a.silentPosition(o):a.position(o))}r.endBatch()}return this},silentPositions:function(e){return this.positions(e,!0)},shift:function(e,t,n){var r;if(E(e)?(r={x:_(e.x)?e.x:0,y:_(e.y)?e.y:0},n=t):b(e)&&_(t)&&((r={x:0,y:0})[e]=t),null!=r){var i=this.cy();i.startBatch();for(var a=0;a<this.length;a++){var o=this[a];if(!(i.hasCompoundNodes()&&o.isChild()&&o.ancestors().anySame(this))){var s=o.position(),l={x:s.x+r.x,y:s.y+r.y};n?o.silentPosition(l):o.position(l)}}i.endBatch()}return this},silentShift:function(e,t){return E(e)?this.shift(e,!0):b(e)&&_(t)&&this.shift(e,t,!0),this},renderedPosition:function(e,t){var n=this[0],r=this.cy(),i=r.zoom(),a=r.pan(),o=E(e)?e:void 0,s=void 0!==o||void 0!==t&&b(e);if(n&&n.isNode()){if(!s){var l=n.position();return o=hn(l,i,a),void 0===e?o:o[e]}for(var u=0;u<this.length;u++){var c=this[u];void 0!==t?c.position(e,(t-a[e])/i):void 0!==o&&c.position(dn(o,i,a))}}else if(!s)return;return this},relativePosition:function(e,t){var n=this[0],r=this.cy(),i=E(e)?e:void 0,a=void 0!==i||void 0!==t&&b(e),o=r.hasCompoundNodes();if(n&&n.isNode()){if(!a){var s=n.position(),l=o?n.parent():null,u=l&&l.length>0,c=u;u&&(l=l[0]);var h=c?l.position():{x:0,y:0};return i={x:s.x-h.x,y:s.y-h.y},void 0===e?i:i[e]}for(var d=0;d<this.length;d++){var p=this[d],g=o?p.parent():null,f=g&&g.length>0,v=f;f&&(g=g[0]);var y=v?g.position():{x:0,y:0};void 0!==t?p.position(e,t+y[e]):void 0!==i&&p.position({x:i.x+y.x,y:i.y+y.y})}}else if(!a)return;return this}},Qs.modelPosition=Qs.point=Qs.position,Qs.modelPositions=Qs.points=Qs.positions,Qs.renderedPoint=Qs.renderedPosition,Qs.relativePoint=Qs.relativePosition;var ol,sl,ll=Js;ol=sl={},sl.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),i=n.pan(),a=t.x1*r+i.x,o=t.x2*r+i.x,s=t.y1*r+i.y,l=t.y2*r+i.y;return{x1:a,x2:o,y1:s,y2:l,w:o-a,h:l-s}},sl.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();return t.styleEnabled()&&t.hasCompoundNodes()?(this.forEachUp((function(t){if(t.isParent()){var n=t._private;n.compoundBoundsClean=!1,n.bbCache=null,e||t.emitAndNotify("bounds")}})),this):this},sl.updateCompoundBounds=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes())return this;if(!e&&t.batching())return this;function n(e){if(e.isParent()){var t=e._private,n=e.children(),r="include"===e.pstyle("compound-sizing-wrt-labels").value,i={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}},a=n.boundingBox({includeLabels:r,includeOverlays:!1,useCache:!1}),o=t.position;0!==a.w&&0!==a.h||((a={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue}).x1=o.x-a.w/2,a.x2=o.x+a.w/2,a.y1=o.y-a.h/2,a.y2=o.y+a.h/2);var s=i.width.left.value;"px"===i.width.left.units&&i.width.val>0&&(s=100*s/i.width.val);var l=i.width.right.value;"px"===i.width.right.units&&i.width.val>0&&(l=100*l/i.width.val);var u=i.height.top.value;"px"===i.height.top.units&&i.height.val>0&&(u=100*u/i.height.val);var c=i.height.bottom.value;"px"===i.height.bottom.units&&i.height.val>0&&(c=100*c/i.height.val);var h=y(i.width.val-a.w,s,l),d=h.biasDiff,p=h.biasComplementDiff,g=y(i.height.val-a.h,u,c),f=g.biasDiff,v=g.biasComplementDiff;t.autoPadding=m(a.w,a.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),t.autoWidth=Math.max(a.w,i.width.val),o.x=(-d+a.x1+a.x2+p)/2,t.autoHeight=Math.max(a.h,i.height.val),o.y=(-f+a.y1+a.y2+v)/2}function y(e,t,n){var r=0,i=0,a=t+n;return e>0&&a>0&&(r=t/a*e,i=n/a*e),{biasDiff:r,biasComplementDiff:i}}function m(e,t,n,r){if("%"!==n.units)return"px"===n.units?n.pfValue:0;switch(r){case"width":return e>0?n.pfValue*e:0;case"height":return t>0?n.pfValue*t:0;case"average":return e>0&&t>0?n.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case"max":return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}}}for(var r=0;r<this.length;r++){var i=this[r],a=i._private;a.compoundBoundsClean&&!e||(n(i),t.batching()||(a.compoundBoundsClean=!0))}return this};var ul=function(e){return e===1/0||e===-1/0?0:e},cl=function(e,t,n,r,i){r-t!=0&&i-n!=0&&null!=t&&null!=n&&null!=r&&null!=i&&(e.x1=t<e.x1?t:e.x1,e.x2=r>e.x2?r:e.x2,e.y1=n<e.y1?n:e.y1,e.y2=i>e.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},hl=function(e,t){return null==t?e:cl(e,t.x1,t.y1,t.x2,t.y2)},dl=function(e,t,n){return Ft(e,t,n)},pl=function(e,t,n){if(!t.cy().headless()){var r,i,a=t._private,o=a.rstyle,s=o.arrowWidth/2;if("none"!==t.pstyle(n+"-arrow-shape").value){"source"===n?(r=o.srcX,i=o.srcY):"target"===n?(r=o.tgtX,i=o.tgtY):(r=o.midX,i=o.midY);var l=a.arrowBounds=a.arrowBounds||{},u=l[n]=l[n]||{};u.x1=r-s,u.y1=i-s,u.x2=r+s,u.y2=i+s,u.w=u.x2-u.x1,u.h=u.y2-u.y1,Mn(u,1),cl(e,u.x1,u.y1,u.x2,u.y2)}}},gl=function(e,t,n){if(!t.cy().headless()){var r;r=n?n+"-":"";var i=t._private,a=i.rstyle;if(t.pstyle(r+"label").strValue){var o,s,l,u,c=t.pstyle("text-halign"),h=t.pstyle("text-valign"),d=dl(a,"labelWidth",n),p=dl(a,"labelHeight",n),g=dl(a,"labelX",n),f=dl(a,"labelY",n),v=t.pstyle(r+"text-margin-x").pfValue,y=t.pstyle(r+"text-margin-y").pfValue,m=t.isEdge(),b=t.pstyle(r+"text-rotation"),x=t.pstyle("text-outline-width").pfValue,w=t.pstyle("text-border-width").pfValue/2,E=t.pstyle("text-background-padding").pfValue,T=2,_=p,D=d,C=D/2,N=_/2;if(m)o=g-C,s=g+C,l=f-N,u=f+N;else{switch(c.value){case"left":o=g-D,s=g;break;case"center":o=g-C,s=g+C;break;case"right":o=g,s=g+D}switch(h.value){case"top":l=f-_,u=f;break;case"center":l=f-N,u=f+N;break;case"bottom":l=f,u=f+_}}o+=v-Math.max(x,w)-E-T,s+=v+Math.max(x,w)+E+T,l+=y-Math.max(x,w)-E-T,u+=y+Math.max(x,w)+E+T;var A=n||"main",L=i.labelBounds,S=L[A]=L[A]||{};S.x1=o,S.y1=l,S.x2=s,S.y2=u,S.w=s-o,S.h=u-l;var O=m&&"autorotate"===b.strValue,I=null!=b.pfValue&&0!==b.pfValue;if(O||I){var k=O?dl(i.rstyle,"labelAngle",n):b.pfValue,M=Math.cos(k),P=Math.sin(k),R=(o+s)/2,B=(l+u)/2;if(!m){switch(c.value){case"left":R=s;break;case"right":R=o}switch(h.value){case"top":B=u;break;case"bottom":B=l}}var F=function(e,t){return{x:(e-=R)*M-(t-=B)*P+R,y:e*P+t*M+B}},z=F(o,l),G=F(o,u),Y=F(s,l),X=F(s,u);o=Math.min(z.x,G.x,Y.x,X.x),s=Math.max(z.x,G.x,Y.x,X.x),l=Math.min(z.y,G.y,Y.y,X.y),u=Math.max(z.y,G.y,Y.y,X.y)}var V=A+"Rot",U=L[V]=L[V]||{};U.x1=o,U.y1=l,U.x2=s,U.y2=u,U.w=s-o,U.h=u-l,cl(e,o,l,s,u),cl(i.labelBounds.all,o,l,s,u)}return e}},fl=function(e,t){var n,r,i,a,o,s,l=e._private.cy,u=l.styleEnabled(),c=l.headless(),h=Ln(),d=e._private,p=e.isNode(),g=e.isEdge(),f=d.rstyle,v=p&&u?e.pstyle("bounds-expansion").pfValue:[0],y=function(e){return"none"!==e.pstyle("display").value},m=!u||y(e)&&(!g||y(e.source())&&y(e.target()));if(m){var b=0;u&&t.includeOverlays&&0!==e.pstyle("overlay-opacity").value&&(b=e.pstyle("overlay-padding").value);var x=0;u&&t.includeUnderlays&&0!==e.pstyle("underlay-opacity").value&&(x=e.pstyle("underlay-padding").value);var w=Math.max(b,x),E=0;if(u&&(E=e.pstyle("width").pfValue/2),p&&t.includeNodes){var T=e.position();o=T.x,s=T.y;var _=e.outerWidth()/2,D=e.outerHeight()/2;cl(h,n=o-_,i=s-D,r=o+_,a=s+D)}else if(g&&t.includeEdges)if(u&&!c){var C=e.pstyle("curve-style").strValue;if(n=Math.min(f.srcX,f.midX,f.tgtX),r=Math.max(f.srcX,f.midX,f.tgtX),i=Math.min(f.srcY,f.midY,f.tgtY),a=Math.max(f.srcY,f.midY,f.tgtY),cl(h,n-=E,i-=E,r+=E,a+=E),"haystack"===C){var N=f.haystackPts;if(N&&2===N.length){if(n=N[0].x,i=N[0].y,n>(r=N[1].x)){var A=n;n=r,r=A}if(i>(a=N[1].y)){var L=i;i=a,a=L}cl(h,n-E,i-E,r+E,a+E)}}else if("bezier"===C||"unbundled-bezier"===C||"segments"===C||"taxi"===C){var S;switch(C){case"bezier":case"unbundled-bezier":S=f.bezierPts;break;case"segments":case"taxi":S=f.linePts}if(null!=S)for(var O=0;O<S.length;O++){var I=S[O];n=I.x-E,r=I.x+E,i=I.y-E,a=I.y+E,cl(h,n,i,r,a)}}}else{var k=e.source().position(),M=e.target().position();if((n=k.x)>(r=M.x)){var P=n;n=r,r=P}if((i=k.y)>(a=M.y)){var R=i;i=a,a=R}cl(h,n-=E,i-=E,r+=E,a+=E)}if(u&&t.includeEdges&&g&&(pl(h,e,"mid-source"),pl(h,e,"mid-target"),pl(h,e,"source"),pl(h,e,"target")),u&&"yes"===e.pstyle("ghost").value){var B=e.pstyle("ghost-offset-x").pfValue,F=e.pstyle("ghost-offset-y").pfValue;cl(h,h.x1+B,h.y1+F,h.x2+B,h.y2+F)}var z=d.bodyBounds=d.bodyBounds||{};Rn(z,h),Pn(z,v),Mn(z,1),u&&(n=h.x1,r=h.x2,i=h.y1,a=h.y2,cl(h,n-w,i-w,r+w,a+w));var G=d.overlayBounds=d.overlayBounds||{};Rn(G,h),Pn(G,v),Mn(G,1);var Y=d.labelBounds=d.labelBounds||{};null!=Y.all?On(Y.all):Y.all=Ln(),u&&t.includeLabels&&(t.includeMainLabels&&gl(h,e,null),g&&(t.includeSourceLabels&&gl(h,e,"source"),t.includeTargetLabels&&gl(h,e,"target")))}return h.x1=ul(h.x1),h.y1=ul(h.y1),h.x2=ul(h.x2),h.y2=ul(h.y2),h.w=ul(h.x2-h.x1),h.h=ul(h.y2-h.y1),h.w>0&&h.h>0&&m&&(Pn(h,v),Mn(h,1)),h},vl=function(e){var t=0,n=function(e){return(e?1:0)<<t++},r=0;return r+=n(e.incudeNodes),r+=n(e.includeEdges),r+=n(e.includeLabels),r+=n(e.includeMainLabels),r+=n(e.includeSourceLabels),r+=n(e.includeTargetLabels),r+=n(e.includeOverlays)},yl=function(e){if(e.isEdge()){var t=e.source().position(),n=e.target().position(),r=function(e){return Math.round(e)};return pt([r(t.x),r(t.y),r(n.x),r(n.y)])}return 0},ml=function(e,t){var n,r=e._private,i=e.isEdge(),a=(null==t?xl:vl(t))===xl,o=yl(e),s=r.bbCachePosKey===o,l=t.useCache&&s,u=function(e){return null==e._private.bbCache||e._private.styleDirty};if(!l||u(e)||i&&u(e.source())||u(e.target())?(s||e.recalculateRenderedStyle(l),n=fl(e,bl),r.bbCache=n,r.bbCachePosKey=o):n=r.bbCache,!a){var c=e.isNode();n=Ln(),(t.includeNodes&&c||t.includeEdges&&!c)&&(t.includeOverlays?hl(n,r.overlayBounds):hl(n,r.bodyBounds)),t.includeLabels&&(t.includeMainLabels&&(!i||t.includeSourceLabels&&t.includeTargetLabels)?hl(n,r.labelBounds.all):(t.includeMainLabels&&hl(n,r.labelBounds.mainRot),t.includeSourceLabels&&hl(n,r.labelBounds.sourceRot),t.includeTargetLabels&&hl(n,r.labelBounds.targetRot))),n.w=n.x2-n.x1,n.h=n.y2-n.y1}return n},bl={includeNodes:!0,includeEdges:!0,includeLabels:!0,includeMainLabels:!0,includeSourceLabels:!0,includeTargetLabels:!0,includeOverlays:!0,includeUnderlays:!0,useCache:!0},xl=vl(bl),wl=Mt(bl);sl.boundingBox=function(e){var t;if(1!==this.length||null==this[0]._private.bbCache||this[0]._private.styleDirty||void 0!==e&&void 0!==e.useCache&&!0!==e.useCache){t=Ln();var n=wl(e=e||bl),r=this;if(r.cy().styleEnabled())for(var i=0;i<r.length;i++){var a=r[i],o=a._private,s=yl(a),l=o.bbCachePosKey===s,u=n.useCache&&l&&!o.styleDirty;a.recalculateRenderedStyle(u)}this.updateCompoundBounds(!e.useCache);for(var c=0;c<r.length;c++){var h=r[c];hl(t,ml(h,n))}}else e=void 0===e?bl:wl(e),t=ml(this[0],e);return t.x1=ul(t.x1),t.y1=ul(t.y1),t.x2=ul(t.x2),t.y2=ul(t.y2),t.w=ul(t.x2-t.x1),t.h=ul(t.y2-t.y1),t},sl.dirtyBoundingBoxCache=function(){for(var e=0;e<this.length;e++){var t=this[e]._private;t.bbCache=null,t.bbCachePosKey=null,t.bodyBounds=null,t.overlayBounds=null,t.labelBounds.all=null,t.labelBounds.source=null,t.labelBounds.target=null,t.labelBounds.main=null,t.labelBounds.sourceRot=null,t.labelBounds.targetRot=null,t.labelBounds.mainRot=null,t.arrowBounds.source=null,t.arrowBounds.target=null,t.arrowBounds["mid-source"]=null,t.arrowBounds["mid-target"]=null}return this.emitAndNotify("bounds"),this},sl.boundingBoxAt=function(e){var t=this.nodes(),n=this.cy(),r=n.hasCompoundNodes(),i=n.collection();if(r&&(i=t.filter((function(e){return e.isParent()})),t=t.not(i)),E(e)){var a=e;e=function(){return a}}var o=function(t,n){return t._private.bbAtOldPos=e(t,n)},s=function(e){return e._private.bbAtOldPos};n.startBatch(),t.forEach(o).silentPositions(e),r&&(i.dirtyCompoundBoundsCache(),i.dirtyBoundingBoxCache(),i.updateCompoundBounds(!0));var l=Sn(this.boundingBox({useCache:!1}));return t.silentPositions(s),r&&(i.dirtyCompoundBoundsCache(),i.dirtyBoundingBoxCache(),i.updateCompoundBounds(!0)),n.endBatch(),l},ol.boundingbox=ol.bb=ol.boundingBox,ol.renderedBoundingbox=ol.renderedBoundingBox;var El,Tl,_l=sl;El=Tl={};var Dl=function(e){e.uppercaseName=X(e.name),e.autoName="auto"+e.uppercaseName,e.labelName="label"+e.uppercaseName,e.outerName="outer"+e.uppercaseName,e.uppercaseOuterName=X(e.outerName),El[e.name]=function(){var t=this[0],n=t._private,r=n.cy._private.styleEnabled;if(t){if(r){if(t.isParent())return t.updateCompoundBounds(),n[e.autoName]||0;var i=t.pstyle(e.name);return"label"===i.strValue?(t.recalculateRenderedStyle(),n.rstyle[e.labelName]||0):i.pfValue}return 1}},El["outer"+e.uppercaseName]=function(){var t=this[0],n=t._private.cy._private.styleEnabled;if(t)return n?t[e.name]()+t.pstyle("border-width").pfValue+2*t.padding():1},El["rendered"+e.uppercaseName]=function(){var t=this[0];if(t)return t[e.name]()*this.cy().zoom()},El["rendered"+e.uppercaseOuterName]=function(){var t=this[0];if(t)return t[e.outerName]()*this.cy().zoom()}};Dl({name:"width"}),Dl({name:"height"}),Tl.padding=function(){var e=this[0],t=e._private;return e.isParent()?(e.updateCompoundBounds(),void 0!==t.autoPadding?t.autoPadding:e.pstyle("padding").pfValue):e.pstyle("padding").pfValue},Tl.paddedHeight=function(){var e=this[0];return e.height()+2*e.padding()},Tl.paddedWidth=function(){var e=this[0];return e.width()+2*e.padding()};var Cl=Tl,Nl=function(e,t){if(e.isEdge())return t(e)},Al=function(e,t){if(e.isEdge()){var n=e.cy();return hn(t(e),n.zoom(),n.pan())}},Ll=function(e,t){if(e.isEdge()){var n=e.cy(),r=n.pan(),i=n.zoom();return t(e).map((function(e){return hn(e,i,r)}))}},Sl={controlPoints:{get:function(e){return e.renderer().getControlPoints(e)},mult:!0},segmentPoints:{get:function(e){return e.renderer().getSegmentPoints(e)},mult:!0},sourceEndpoint:{get:function(e){return e.renderer().getSourceEndpoint(e)}},targetEndpoint:{get:function(e){return e.renderer().getTargetEndpoint(e)}},midpoint:{get:function(e){return e.renderer().getEdgeMidpoint(e)}}},Ol=function(e){return"rendered"+e[0].toUpperCase()+e.substr(1)},Il=Object.keys(Sl).reduce((function(e,t){var n=Sl[t],r=Ol(t);return e[t]=function(){return Nl(this,n.get)},n.mult?e[r]=function(){return Ll(this,n.get)}:e[r]=function(){return Al(this,n.get)},e}),{}),kl=Q({},ll,_l,Cl,Il),Ml=function(e,t){this.recycle(e,t)};function Pl(){return!1}function Rl(){return!0}Ml.prototype={instanceString:function(){return"event"},recycle:function(e,t){if(this.isImmediatePropagationStopped=this.isPropagationStopped=this.isDefaultPrevented=Pl,null!=e&&e.preventDefault?(this.type=e.type,this.isDefaultPrevented=e.defaultPrevented?Rl:Pl):null!=e&&e.type?t=e:this.type=e,null!=t&&(this.originalEvent=t.originalEvent,this.type=null!=t.type?t.type:this.type,this.cy=t.cy,this.target=t.target,this.position=t.position,this.renderedPosition=t.renderedPosition,this.namespace=t.namespace,this.layout=t.layout),null!=this.cy&&null!=this.position&&null==this.renderedPosition){var n=this.position,r=this.cy.zoom(),i=this.cy.pan();this.renderedPosition={x:n.x*r+i.x,y:n.y*r+i.y}}this.timeStamp=e&&e.timeStamp||Date.now()},preventDefault:function(){this.isDefaultPrevented=Rl;var e=this.originalEvent;e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){this.isPropagationStopped=Rl;var e=this.originalEvent;e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Rl,this.stopPropagation()},isDefaultPrevented:Pl,isPropagationStopped:Pl,isImmediatePropagationStopped:Pl};var Bl=/^([^.]+)(\.(?:[^.]+))?$/,Fl=".*",zl={qualifierCompare:function(e,t){return e===t},eventMatches:function(){return!0},addEventFields:function(){},callbackContext:function(e){return e},beforeEmit:function(){},afterEmit:function(){},bubble:function(){return!1},parent:function(){return null},context:null},Gl=Object.keys(zl),Yl={};function Xl(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Yl,t=arguments.length>1?arguments[1]:void 0,n=0;n<Gl.length;n++){var r=Gl[n];this[r]=e[r]||zl[r]}this.context=t||this.context,this.listeners=[],this.emitting=0}var Vl=Xl.prototype,Ul=function(e,t,n,r,i,a,o){x(r)&&(i=r,r=null),o&&(a=null==a?o:Q({},a,o));for(var s=w(n)?n:n.split(/\s+/),l=0;l<s.length;l++){var u=s[l];if(!k(u)){var c=u.match(Bl);if(c&&!1===t(e,u,c[1],c[2]?c[2]:null,r,i,a))break}}},jl=function(e,t){return e.addEventFields(e.context,t),new Ml(t.type,t)},Hl=function(e,t,n){if(I(n))t(e,n);else if(E(n))t(e,jl(e,n));else for(var r=w(n)?n:n.split(/\s+/),i=0;i<r.length;i++){var a=r[i];if(!k(a)){var o=a.match(Bl);if(o){var s=o[1],l=o[2]?o[2]:null;t(e,jl(e,{type:s,namespace:l,target:e.context}))}}}};Vl.on=Vl.addListener=function(e,t,n,r,i){return Ul(this,(function(e,t,n,r,i,a,o){x(a)&&e.listeners.push({event:t,callback:a,type:n,namespace:r,qualifier:i,conf:o})}),e,t,n,r,i),this},Vl.one=function(e,t,n,r){return this.on(e,t,n,r,{one:!0})},Vl.removeListener=Vl.off=function(e,t,n,r){var i=this;0!==this.emitting&&(this.listeners=St(this.listeners));for(var a=this.listeners,o=function(o){var s=a[o];Ul(i,(function(t,n,r,i,l,u){if((s.type===r||"*"===e)&&(!i&&".*"!==s.namespace||s.namespace===i)&&(!l||t.qualifierCompare(s.qualifier,l))&&(!u||s.callback===u))return a.splice(o,1),!1}),e,t,n,r)},s=a.length-1;s>=0;s--)o(s);return this},Vl.removeAllListeners=function(){return this.removeListener("*")},Vl.emit=Vl.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,w(t)||(t=[t]),Hl(this,(function(e,a){null!=n&&(r=[{event:a.event,type:a.type,namespace:a.namespace,callback:n}],i=r.length);for(var o=function(n){var i=r[n];if(i.type===a.type&&(!i.namespace||i.namespace===a.namespace||i.namespace===Fl)&&e.eventMatches(e.context,i,a)){var o=[a];null!=t&&Bt(o,t),e.beforeEmit(e.context,i,a),i.conf&&i.conf.one&&(e.listeners=e.listeners.filter((function(e){return e!==i})));var s=e.callbackContext(e.context,i,a),l=i.callback.apply(s,o);e.afterEmit(e.context,i,a),!1===l&&(a.stopPropagation(),a.preventDefault())}},s=0;s<i;s++)o(s);e.bubble(e.context)&&!a.isPropagationStopped()&&e.parent(e.context).emit(a,t)}),e),this.emitting--,this};var ql={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&A(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e.cy(),t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e},beforeEmit:function(e,t){t.conf&&t.conf.once&&t.conf.onceCollection.removeListener(t.event,t.qualifier,t.callback)},bubble:function(){return!0},parent:function(e){return e.isChild()?e.parent():e.cy()}},Wl=function(e){return b(e)?new Ys(e):e},$l={createEmitter:function(){for(var e=0;e<this.length;e++){var t=this[e],n=t._private;n.emitter||(n.emitter=new Xl(ql,t))}return this},emitter:function(){return this._private.emitter},on:function(e,t,n){for(var r=Wl(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n);return this},removeListener:function(e,t,n){for(var r=Wl(t),i=0;i<this.length;i++)this[i].emitter().removeListener(e,r,n);return this},removeAllListeners:function(){for(var e=0;e<this.length;e++)this[e].emitter().removeAllListeners();return this},one:function(e,t,n){for(var r=Wl(t),i=0;i<this.length;i++)this[i].emitter().one(e,r,n);return this},once:function(e,t,n){for(var r=Wl(t),i=0;i<this.length;i++)this[i].emitter().on(e,r,n,{once:!0,onceCollection:this})},emit:function(e,t){for(var n=0;n<this.length;n++)this[n].emitter().emit(e,t);return this},emitAndNotify:function(e,t){if(0!==this.length)return this.cy().notify(e,this),this.emit(e,t),this}};gs.eventAliasesOn($l);var Kl={nodes:function(e){return this.filter((function(e){return e.isNode()})).filter(e)},edges:function(e){return this.filter((function(e){return e.isEdge()})).filter(e)},byGroup:function(){for(var e=this.spawn(),t=this.spawn(),n=0;n<this.length;n++){var r=this[n];r.isNode()?e.push(r):t.push(r)}return{nodes:e,edges:t}},filter:function(e,t){if(void 0===e)return this;if(b(e)||N(e))return new Ys(e).filter(this);if(x(e)){for(var n=this.spawn(),r=this,i=0;i<r.length;i++){var a=r[i];(t?e.apply(t,[a,i,r]):e(a,i,r))&&n.push(a)}return n}return this.spawn()},not:function(e){if(e){b(e)&&(e=this.filter(e));for(var t=this.spawn(),n=0;n<this.length;n++){var r=this[n];e.has(r)||t.push(r)}return t}return this},absoluteComplement:function(){return this.cy().mutableElements().not(this)},intersect:function(e){if(b(e)){var t=e;return this.filter(t)}for(var n=this.spawn(),r=this,i=e,a=this.length<e.length,o=a?r:i,s=a?i:r,l=0;l<o.length;l++){var u=o[l];s.has(u)&&n.push(u)}return n},xor:function(e){var t=this._private.cy;b(e)&&(e=t.$(e));var n=this.spawn(),r=this,i=e,a=function(e,t){for(var r=0;r<e.length;r++){var i=e[r],a=i._private.data.id;t.hasElementWithId(a)||n.push(i)}};return a(r,i),a(i,r),n},diff:function(e){var t=this._private.cy;b(e)&&(e=t.$(e));var n=this.spawn(),r=this.spawn(),i=this.spawn(),a=this,o=e,s=function(e,t,n){for(var r=0;r<e.length;r++){var a=e[r],o=a._private.data.id;t.hasElementWithId(o)?i.merge(a):n.push(a)}};return s(a,o,n),s(o,a,r),{left:n,right:r,both:i}},add:function(e){var t=this._private.cy;if(!e)return this;if(b(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=this.spawnSelf(),i=0;i<e.length;i++){var a=e[i],o=!this.has(a);o&&r.push(a)}return r},merge:function(e){var t=this._private,n=t.cy;if(!e)return this;if(e&&b(e)){var r=e;e=n.mutableElements().filter(r)}for(var i=t.map,a=0;a<e.length;a++){var o=e[a],s=o._private.data.id;if(!i.has(s)){var l=this.length++;this[l]=o,i.set(s,{ele:o,index:l})}}return this},unmergeAt:function(e){var t=this[e].id(),n=this._private.map;this[e]=void 0,n.delete(t);var r=e===this.length-1;if(this.length>1&&!r){var i=this.length-1,a=this[i],o=a._private.data.id;this[i]=void 0,this[e]=a,n.set(o,{ele:a,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map.get(n);if(!r)return this;var i=r.index;return this.unmergeAt(i),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&b(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r<e.length;r++)this.unmergeOne(e[r]);return this},unmergeBy:function(e){for(var t=this.length-1;t>=0;t--)e(this[t])&&this.unmergeAt(t);return this},map:function(e,t){for(var n=[],r=this,i=0;i<r.length;i++){var a=r[i],o=t?e.apply(t,[a,i,r]):e(a,i,r);n.push(o)}return n},reduce:function(e,t){for(var n=t,r=this,i=0;i<r.length;i++)n=e(n,r[i],i,r);return n},max:function(e,t){for(var n,r=-1/0,i=this,a=0;a<i.length;a++){var o=i[a],s=t?e.apply(t,[o,a,i]):e(o,a,i);s>r&&(r=s,n=o)}return{value:r,ele:n}},min:function(e,t){for(var n,r=1/0,i=this,a=0;a<i.length;a++){var o=i[a],s=t?e.apply(t,[o,a,i]):e(o,a,i);s<r&&(r=s,n=o)}return{value:r,ele:n}}},Zl=Kl;Zl.u=Zl["|"]=Zl["+"]=Zl.union=Zl.or=Zl.add,Zl["\\"]=Zl["!"]=Zl["-"]=Zl.difference=Zl.relativeComplement=Zl.subtract=Zl.not,Zl.n=Zl["&"]=Zl["."]=Zl.and=Zl.intersection=Zl.intersect,Zl["^"]=Zl["(+)"]=Zl["(-)"]=Zl.symmetricDifference=Zl.symdiff=Zl.xor,Zl.fnFilter=Zl.filterFn=Zl.stdFilter=Zl.filter,Zl.complement=Zl.abscomp=Zl.absoluteComplement;var Ql={isNode:function(){return"nodes"===this.group()},isEdge:function(){return"edges"===this.group()},isLoop:function(){return this.isEdge()&&this.source()[0]===this.target()[0]},isSimple:function(){return this.isEdge()&&this.source()[0]!==this.target()[0]},group:function(){var e=this[0];if(e)return e._private.group}},Jl=function(e,t){var n=e.cy().hasCompoundNodes();function r(e){var t=e.pstyle("z-compound-depth");return"auto"===t.value?n?e.zDepth():0:"bottom"===t.value?-1:"top"===t.value?xt:0}var i=r(e)-r(t);if(0!==i)return i;function a(e){return"auto"===e.pstyle("z-index-compare").value&&e.isNode()?1:0}var o=a(e)-a(t);if(0!==o)return o;var s=e.pstyle("z-index").value-t.pstyle("z-index").value;return 0!==s?s:e.poolIndex()-t.poolIndex()},eu={forEach:function(e,t){if(x(e))for(var n=this.length,r=0;r<n;r++){var i=this[r];if(!1===(t?e.apply(t,[i,r,this]):e(i,r,this)))break}return this},toArray:function(){for(var e=[],t=0;t<this.length;t++)e.push(this[t]);return e},slice:function(e,t){var n=[],r=this.length;null==t&&(t=r),null==e&&(e=0),e<0&&(e=r+e),t<0&&(t=r+t);for(var i=e;i>=0&&i<t&&i<r;i++)n.push(this[i]);return this.spawn(n)},size:function(){return this.length},eq:function(e){return this[e]||this.spawn()},first:function(){return this[0]||this.spawn()},last:function(){return this[this.length-1]||this.spawn()},empty:function(){return 0===this.length},nonempty:function(){return!this.empty()},sort:function(e){if(!x(e))return this;var t=this.toArray().sort(e);return this.spawn(t)},sortByZIndex:function(){return this.sort(Jl)},zDepth:function(){var e=this[0];if(e){var t=e._private;if("nodes"===t.group){var n=t.data.parent?e.parents().size():0;return e.isParent()?n:xt-1}var r=t.source,i=t.target,a=r.zDepth(),o=i.zDepth();return Math.max(a,o,0)}}};eu.each=eu.forEach;var tu=function(){var t="undefined";("undefined"==typeof Symbol?"undefined":e(Symbol))!=t&&e(Symbol.iterator)!=t&&(eu[Symbol.iterator]=function(){var e=this,t={value:void 0,done:!1},n=0,r=this.length;return a({next:function(){return n<r?t.value=e[n++]:(t.value=void 0,t.done=!0),t}},Symbol.iterator,(function(){return this}))})};tu();var nu=Mt({nodeDimensionsIncludeLabels:!1}),ru={layoutDimensions:function(e){var t;if(e=nu(e),this.takesUpSpace())if(e.nodeDimensionsIncludeLabels){var n=this.boundingBox();t={w:n.w,h:n.h}}else t={w:this.outerWidth(),h:this.outerHeight()};else t={w:0,h:0};return 0!==t.w&&0!==t.h||(t.w=t.h=1),t},layoutPositions:function(e,t,n){var r=this.nodes().filter((function(e){return!e.isParent()})),i=this.cy(),a=t.eles,o=function(e){return e.id()},s=F(n,o);e.emit({type:"layoutstart",layout:e}),e.animations=[];var l=function(e,t,n){var r={x:t.x1+t.w/2,y:t.y1+t.h/2},i={x:(n.x-r.x)*e,y:(n.y-r.y)*e};return{x:r.x+i.x,y:r.y+i.y}},u=t.spacingFactor&&1!==t.spacingFactor,c=function(){if(!u)return null;for(var e=Ln(),t=0;t<r.length;t++){var n=r[t],i=s(n,t);kn(e,i.x,i.y)}return e},h=c(),d=F((function(e,n){var r=s(e,n);if(u){var i=Math.abs(t.spacingFactor);r=l(i,h,r)}return null!=t.transform&&(r=t.transform(e,r)),r}),o);if(t.animate){for(var p=0;p<r.length;p++){var g=r[p],f=d(g,p);if(null==t.animateFilter||t.animateFilter(g,p)){var v=g.animation({position:f,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(v)}else g.position(f)}if(t.fit){var y=i.animation({fit:{boundingBox:a.boundingBoxAt(d),padding:t.padding},duration:t.animationDuration,easing:t.animationEasing});e.animations.push(y)}else if(void 0!==t.zoom&&void 0!==t.pan){var m=i.animation({zoom:t.zoom,pan:t.pan,duration:t.animationDuration,easing:t.animationEasing});e.animations.push(m)}e.animations.forEach((function(e){return e.play()})),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),Yi.all(e.animations.map((function(e){return e.promise()}))).then((function(){e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e})}))}else r.positions(d),t.fit&&i.fit(t.eles,t.padding),null!=t.zoom&&i.zoom(t.zoom),t.pan&&i.pan(t.pan),e.one("layoutready",t.ready),e.emit({type:"layoutready",layout:e}),e.one("layoutstop",t.stop),e.emit({type:"layoutstop",layout:e});return this},layout:function(e){return this.cy().makeLayout(Q({},e,{eles:this}))}};function iu(e,t,n){var r,i=n._private,a=i.styleCache=i.styleCache||[];return null!=(r=a[e])?r:r=a[e]=t(n)}function au(e,t){return e=gt(e),function(n){return iu(e,t,n)}}function ou(e,t){e=gt(e);var n=function(e){return t.call(e)};return function(){var t=this[0];if(t)return iu(e,n,t)}}ru.createLayout=ru.makeLayout=ru.layout;var su={recalculateRenderedStyle:function(e){var t=this.cy(),n=t.renderer(),r=t.styleEnabled();return n&&r&&n.recalculateRenderedStyle(this,e),this},dirtyStyleCache:function(){var e,t=this.cy(),n=function(e){return e._private.styleCache=null};return t.hasCompoundNodes()?((e=this.spawnSelf().merge(this.descendants()).merge(this.parents())).merge(e.connectedEdges()),e.forEach(n)):this.forEach((function(e){n(e),e.connectedEdges().forEach(n)})),this},updateStyle:function(e){var t=this._private.cy;if(!t.styleEnabled())return this;if(t.batching())return t._private.batchStyleEles.merge(this),this;var n=this;e=!(!e&&void 0!==e),t.hasCompoundNodes()&&(n=this.spawnSelf().merge(this.descendants()).merge(this.parents()));var r=n;return e?r.emitAndNotify("style"):r.emit("style"),n.forEach((function(e){return e._private.styleDirty=!0})),this},cleanStyle:function(){var e=this.cy();if(e.styleEnabled())for(var t=0;t<this.length;t++){var n=this[t];n._private.styleDirty&&(n._private.styleDirty=!1,e.style().apply(n))}},parsedStyle:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this[0],r=n.cy();if(r.styleEnabled()&&n){this.cleanStyle();var i=n._private.style[e];return null!=i?i:t?r.style().getDefaultProperty(e):null}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled())return t?t.pstyle(e).units:void 0},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];return n?t.style().getRenderedStyle(n,e):void 0},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=!1,i=n.style();if(E(e)){var a=e;i.applyBypass(this,a,r),this.emitAndNotify("style")}else if(b(e)){if(void 0===t){var o=this[0];return o?i.getStylePropertyValue(o,e):void 0}i.applyBypass(this,e,t,r),this.emitAndNotify("style")}else if(void 0===e){var s=this[0];return s?i.getRawStyle(s):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=!1,r=t.style(),i=this;if(void 0===e)for(var a=0;a<i.length;a++){var o=i[a];r.removeAllBypasses(o,n)}else{e=e.split(/\s+/);for(var s=0;s<i.length;s++){var l=i[s];r.removeBypasses(l,e,n)}}return this.emitAndNotify("style"),this},show:function(){return this.css("display","element"),this},hide:function(){return this.css("display","none"),this},effectiveOpacity:function(){var e=this.cy();if(!e.styleEnabled())return 1;var t=e.hasCompoundNodes(),n=this[0];if(n){var r=n._private,i=n.pstyle("opacity").value;if(!t)return i;var a=r.data.parent?n.parents():null;if(a)for(var o=0;o<a.length;o++)i*=a[o].pstyle("opacity").value;return i}},transparent:function(){if(!this.cy().styleEnabled())return!1;var e=this[0],t=e.cy().hasCompoundNodes();return e?t?0===e.effectiveOpacity():0===e.pstyle("opacity").value:void 0},backgrounding:function(){return!!this.cy().styleEnabled()&&!!this[0]._private.backgrounding}};function lu(e,t){var n=e._private.data.parent?e.parents():null;if(n)for(var r=0;r<n.length;r++)if(!t(n[r]))return!1;return!0}function uu(e){var t=e.ok,n=e.edgeOkViaNode||e.ok,r=e.parentOk||e.ok;return function(){var e=this.cy();if(!e.styleEnabled())return!0;var i=this[0],a=e.hasCompoundNodes();if(i){var o=i._private;if(!t(i))return!1;if(i.isNode())return!a||lu(i,r);var s=o.source,l=o.target;return n(s)&&(!a||lu(s,n))&&(s===l||n(l)&&(!a||lu(l,n)))}}}var cu=au("eleTakesUpSpace",(function(e){return"element"===e.pstyle("display").value&&0!==e.width()&&(!e.isNode()||0!==e.height())}));su.takesUpSpace=ou("takesUpSpace",uu({ok:cu}));var hu=au("eleInteractive",(function(e){return"yes"===e.pstyle("events").value&&"visible"===e.pstyle("visibility").value&&cu(e)})),du=au("parentInteractive",(function(e){return"visible"===e.pstyle("visibility").value&&cu(e)}));su.interactive=ou("interactive",uu({ok:hu,parentOk:du,edgeOkViaNode:cu})),su.noninteractive=function(){var e=this[0];if(e)return!e.interactive()};var pu=au("eleVisible",(function(e){return"visible"===e.pstyle("visibility").value&&0!==e.pstyle("opacity").pfValue&&cu(e)})),gu=cu;su.visible=ou("visible",uu({ok:pu,edgeOkViaNode:gu})),su.hidden=function(){var e=this[0];if(e)return!e.visible()},su.isBundledBezier=ou("isBundledBezier",(function(){return!!this.cy().styleEnabled()&&!this.removed()&&"bezier"===this.pstyle("curve-style").value&&this.takesUpSpace()})),su.bypass=su.css=su.style,su.renderedCss=su.renderedStyle,su.removeBypass=su.removeCss=su.removeStyle,su.pstyle=su.parsedStyle;var fu={};function vu(e){return function(){var t=arguments,n=[];if(2===t.length){var r=t[0],i=t[1];this.on(e.event,r,i)}else if(1===t.length&&x(t[0])){var a=t[0];this.on(e.event,a)}else if(0===t.length||1===t.length&&w(t[0])){for(var o=1===t.length?t[0]:null,s=0;s<this.length;s++){var l=this[s],u=!e.ableField||l._private[e.ableField],c=l._private[e.field]!=e.value;if(e.overrideAble){var h=e.overrideAble(l);if(void 0!==h&&(u=h,!h))return this}u&&(l._private[e.field]=e.value,c&&n.push(l))}var d=this.spawn(n);d.updateStyle(),d.emit(e.event),o&&d.emit(o)}return this}}function yu(e){fu[e.field]=function(){var t=this[0];if(t){if(e.overrideField){var n=e.overrideField(t);if(void 0!==n)return n}return t._private[e.field]}},fu[e.on]=vu({event:e.on,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!0}),fu[e.off]=vu({event:e.off,field:e.field,ableField:e.ableField,overrideAble:e.overrideAble,value:!1})}yu({field:"locked",overrideField:function(e){return!!e.cy().autolock()||void 0},on:"lock",off:"unlock"}),yu({field:"grabbable",overrideField:function(e){return!e.cy().autoungrabify()&&!e.pannable()&&void 0},on:"grabify",off:"ungrabify"}),yu({field:"selected",ableField:"selectable",overrideAble:function(e){return!e.cy().autounselectify()&&void 0},on:"select",off:"unselect"}),yu({field:"selectable",overrideField:function(e){return!e.cy().autounselectify()&&void 0},on:"selectify",off:"unselectify"}),fu.deselect=fu.unselect,fu.grabbed=function(){var e=this[0];if(e)return e._private.grabbed},yu({field:"active",on:"activate",off:"unactivate"}),yu({field:"pannable",on:"panify",off:"unpanify"}),fu.inactive=function(){var e=this[0];if(e)return!e._private.active};var mu={},bu=function(e){return function(t){for(var n=this,r=[],i=0;i<n.length;i++){var a=n[i];if(a.isNode()){for(var o=!1,s=a.connectedEdges(),l=0;l<s.length;l++){var u=s[l],c=u.source(),h=u.target();if(e.noIncomingEdges&&h===a&&c!==a||e.noOutgoingEdges&&c===a&&h!==a){o=!0;break}}o||r.push(a)}}return this.spawn(r,!0).filter(t)}},xu=function(e){return function(t){for(var n=this,r=[],i=0;i<n.length;i++){var a=n[i];if(a.isNode())for(var o=a.connectedEdges(),s=0;s<o.length;s++){var l=o[s],u=l.source(),c=l.target();e.outgoing&&u===a?(r.push(l),r.push(c)):e.incoming&&c===a&&(r.push(l),r.push(u))}}return this.spawn(r,!0).filter(t)}},wu=function(e){return function(t){for(var n=this,r=[],i={};;){var a=e.outgoing?n.outgoers():n.incomers();if(0===a.length)break;for(var o=!1,s=0;s<a.length;s++){var l=a[s],u=l.id();i[u]||(i[u]=!0,r.push(l),o=!0)}if(!o)break;n=a}return this.spawn(r,!0).filter(t)}};function Eu(e){return function(t){for(var n=[],r=0;r<this.length;r++){var i=this[r]._private[e.attr];i&&n.push(i)}return this.spawn(n,!0).filter(t)}}function Tu(e){return function(t){var n=[],r=this._private.cy,i=e||{};b(t)&&(t=r.$(t));for(var a=0;a<t.length;a++)for(var o=t[a]._private.edges,s=0;s<o.length;s++){var l=o[s],u=l._private.data,c=this.hasElementWithId(u.source)&&t.hasElementWithId(u.target),h=t.hasElementWithId(u.source)&&this.hasElementWithId(u.target);if(c||h){if(i.thisIsSrc||i.thisIsTgt){if(i.thisIsSrc&&!c)continue;if(i.thisIsTgt&&!h)continue}n.push(l)}}return this.spawn(n,!0)}}function _u(e){return e=Q({},{codirected:!1},e),function(t){for(var n=[],r=this.edges(),i=e,a=0;a<r.length;a++)for(var o=r[a]._private,s=o.source,l=s._private.data.id,u=o.data.target,c=s._private.edges,h=0;h<c.length;h++){var d=c[h],p=d._private.data,g=p.target,f=p.source,v=g===u&&f===l,y=l===g&&u===f;(i.codirected&&v||!i.codirected&&(v||y))&&n.push(d)}return this.spawn(n,!0).filter(t)}}mu.clearTraversalCache=function(){for(var e=0;e<this.length;e++)this[e]._private.traversalCache=null},Q(mu,{roots:bu({noIncomingEdges:!0}),leaves:bu({noOutgoingEdges:!0}),outgoers:Hs(xu({outgoing:!0}),"outgoers"),successors:wu({outgoing:!0}),incomers:Hs(xu({incoming:!0}),"incomers"),predecessors:wu({incoming:!0})}),Q(mu,{neighborhood:Hs((function(e){for(var t=[],n=this.nodes(),r=0;r<n.length;r++)for(var i=n[r],a=i.connectedEdges(),o=0;o<a.length;o++){var s=a[o],l=s.source(),u=s.target(),c=i===l?u:l;c.length>0&&t.push(c[0]),t.push(s[0])}return this.spawn(t,!0).filter(e)}),"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),mu.neighbourhood=mu.neighborhood,mu.closedNeighbourhood=mu.closedNeighborhood,mu.openNeighbourhood=mu.openNeighborhood,Q(mu,{source:Hs((function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t}),"source"),target:Hs((function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t}),"target"),sources:Eu({attr:"source"}),targets:Eu({attr:"target"})}),Q(mu,{edgesWith:Hs(Tu(),"edgesWith"),edgesTo:Hs(Tu({thisIsSrc:!0}),"edgesTo")}),Q(mu,{connectedEdges:Hs((function(e){for(var t=[],n=this,r=0;r<n.length;r++){var i=n[r];if(i.isNode())for(var a=i._private.edges,o=0;o<a.length;o++){var s=a[o];t.push(s)}}return this.spawn(t,!0).filter(e)}),"connectedEdges"),connectedNodes:Hs((function(e){for(var t=[],n=this,r=0;r<n.length;r++){var i=n[r];i.isEdge()&&(t.push(i.source()[0]),t.push(i.target()[0]))}return this.spawn(t,!0).filter(e)}),"connectedNodes"),parallelEdges:Hs(_u(),"parallelEdges"),codirectedEdges:Hs(_u({codirected:!0}),"codirectedEdges")}),Q(mu,{components:function(e){var t=this,n=t.cy(),r=n.collection(),i=null==e?t.nodes():e.nodes(),a=[];null!=e&&i.empty()&&(i=e.sources());var o=function(e,t){r.merge(e),i.unmerge(e),t.merge(e)};if(i.empty())return t.spawn();var s=function(){var e=n.collection();a.push(e);var r=i[0];o(r,e),t.bfs({directed:!1,roots:r,visit:function(t){return o(t,e)}}),e.forEach((function(n){n.connectedEdges().forEach((function(n){t.has(n)&&e.has(n.source())&&e.has(n.target())&&e.merge(n)}))}))};do{s()}while(i.length>0);return a},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),mu.componentsOf=mu.components;var Du=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==e){var i=new Yt,a=!1;if(t){if(t.length>0&&E(t[0])&&!A(t[0])){a=!0;for(var o=[],s=new Ut,l=0,u=t.length;l<u;l++){var c=t[l];null==c.data&&(c.data={});var h=c.data;if(null==h.id)h.id=Ot();else if(e.hasElementWithId(h.id)||s.has(h.id))continue;var d=new jt(e,c,!1);o.push(d),s.add(h.id)}t=o}}else t=[];this.length=0;for(var p=0,g=t.length;p<g;p++){var f=t[p][0];if(null!=f){var v=f._private.data.id;n&&i.has(v)||(n&&i.set(v,{index:this.length,ele:f}),this[this.length]=f,this.length++)}}this._private={eles:this,cy:e,get map(){return null==this.lazyMap&&this.rebuildMap(),this.lazyMap},set map(e){this.lazyMap=e},rebuildMap:function(){for(var e=this.lazyMap=new Yt,t=this.eles,n=0;n<t.length;n++){var r=t[n];e.set(r.id(),{index:n,ele:r})}}},n&&(this._private.map=i),a&&!r&&this.restore()}else Dt("A collection must have a reference to the core")},Cu=jt.prototype=Du.prototype=Object.create(Array.prototype);Cu.instanceString=function(){return"collection"},Cu.spawn=function(e,t){return new Du(this.cy(),e,t)},Cu.spawnSelf=function(){return this.spawn(this)},Cu.cy=function(){return this._private.cy},Cu.renderer=function(){return this._private.cy.renderer()},Cu.element=function(){return this[0]},Cu.collection=function(){return L(this)?this:new Du(this._private.cy,[this])},Cu.unique=function(){return new Du(this._private.cy,this,!0)},Cu.hasElementWithId=function(e){return e=""+e,this._private.map.has(e)},Cu.getElementById=function(e){e=""+e;var t=this._private.cy,n=this._private.map.get(e);return n?n.ele:new Du(t)},Cu.$id=Cu.getElementById,Cu.poolIndex=function(){var e=this._private.cy._private.elements,t=this[0]._private.data.id;return e._private.map.get(t).index},Cu.indexOf=function(e){var t=e[0]._private.data.id;return this._private.map.get(t).index},Cu.indexOfId=function(e){return e=""+e,this._private.map.get(e).index},Cu.json=function(e){var t=this.element(),n=this.cy();if(null==t&&e)return this;if(null!=t){var r=t._private;if(E(e)){if(n.startBatch(),e.data){t.data(e.data);var i=r.data;if(t.isEdge()){var a=!1,o={},s=e.data.source,l=e.data.target;null!=s&&s!=i.source&&(o.source=""+s,a=!0),null!=l&&l!=i.target&&(o.target=""+l,a=!0),a&&(t=t.move(o))}else{var u="parent"in e.data,c=e.data.parent;!u||null==c&&null==i.parent||c==i.parent||(void 0===c&&(c=null),null!=c&&(c=""+c),t=t.move({parent:c}))}}e.position&&t.position(e.position);var h=function(n,i,a){var o=e[n];null!=o&&o!==r[n]&&(o?t[i]():t[a]())};return h("removed","remove","restore"),h("selected","select","unselect"),h("selectable","selectify","unselectify"),h("locked","lock","unlock"),h("grabbable","grabify","ungrabify"),h("pannable","panify","unpanify"),null!=e.classes&&t.classes(e.classes),n.endBatch(),this}if(void 0===e){var d={data:Lt(r.data),position:Lt(r.position),group:r.group,removed:r.removed,selected:r.selected,selectable:r.selectable,locked:r.locked,grabbable:r.grabbable,pannable:r.pannable,classes:null};d.classes="";var p=0;return r.classes.forEach((function(e){return d.classes+=0==p++?e:" "+e})),d}}},Cu.jsons=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t].json();e.push(n)}return e},Cu.clone=function(){for(var e=this.cy(),t=[],n=0;n<this.length;n++){var r=this[n].json(),i=new jt(e,r,!1);t.push(i)}return new Du(e,t)},Cu.copy=Cu.clone,Cu.restore=function(){for(var e,t,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this,a=i.cy(),o=a._private,s=[],l=[],u=0,c=i.length;u<c;u++){var h=i[u];r&&!h.removed()||(h.isNode()?s.push(h):l.push(h))}e=s.concat(l);var d=function(){e.splice(t,1),t--};for(t=0;t<e.length;t++){var p=e[t],g=p._private,f=g.data;if(p.clearTraversalCache(),r||g.removed)if(void 0===f.id)f.id=Ot();else if(_(f.id))f.id=""+f.id;else{if(k(f.id)||!b(f.id)){Dt("Can not create element with invalid string ID `"+f.id+"`"),d();continue}if(a.hasElementWithId(f.id)){Dt("Can not create second element with ID `"+f.id+"`"),d();continue}}var v=f.id;if(p.isNode()){var y=g.position;null==y.x&&(y.x=0),null==y.y&&(y.y=0)}if(p.isEdge()){for(var m=p,x=["source","target"],w=x.length,E=!1,T=0;T<w;T++){var D=x[T],C=f[D];_(C)&&(C=f[D]=""+f[D]),null==C||""===C?(Dt("Can not create edge `"+v+"` with unspecified "+D),E=!0):a.hasElementWithId(C)||(Dt("Can not create edge `"+v+"` with nonexistant "+D+" `"+C+"`"),E=!0)}if(E){d();continue}var N=a.getElementById(f.source),A=a.getElementById(f.target);N.same(A)?N._private.edges.push(m):(N._private.edges.push(m),A._private.edges.push(m)),m._private.source=N,m._private.target=A}g.map=new Yt,g.map.set(v,{ele:p,index:0}),g.removed=!1,r&&a.addToPool(p)}for(var L=0;L<s.length;L++){var S=s[L],O=S._private.data;_(O.parent)&&(O.parent=""+O.parent);var I=O.parent;if(null!=I||S._private.parent){var M=S._private.parent?a.collection().merge(S._private.parent):a.getElementById(I);if(M.empty())O.parent=void 0;else if(M[0].removed())Nt("Node added with missing parent, reference to parent removed"),O.parent=void 0,S._private.parent=null;else{for(var P=!1,R=M;!R.empty();){if(S.same(R)){P=!0,O.parent=void 0;break}R=R.parent()}P||(M[0]._private.children.push(S),S._private.parent=M[0],o.hasCompoundNodes=!0)}}}if(e.length>0){for(var B=e.length===i.length?i:new Du(a,e),F=0;F<B.length;F++){var z=B[F];z.isNode()||(z.parallelEdges().clearTraversalCache(),z.source().clearTraversalCache(),z.target().clearTraversalCache())}(o.hasCompoundNodes?a.collection().merge(B).merge(B.connectedNodes()).merge(B.parent()):B).dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(n),n?B.emitAndNotify("add"):r&&B.emit("add")}return i},Cu.removed=function(){var e=this[0];return e&&e._private.removed},Cu.inside=function(){var e=this[0];return e&&!e._private.removed},Cu.remove=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this,r=[],i={},a=n._private.cy;function o(e){for(var t=e._private.edges,n=0;n<t.length;n++)l(t[n])}function s(e){for(var t=e._private.children,n=0;n<t.length;n++)l(t[n])}function l(e){var n=i[e.id()];t&&e.removed()||n||(i[e.id()]=!0,e.isNode()?(r.push(e),o(e),s(e)):r.unshift(e))}for(var u=0,c=n.length;u<c;u++)l(n[u]);function h(e,t){var n=e._private.edges;Pt(n,t),e.clearTraversalCache()}function d(e){e.clearTraversalCache()}var p=[];function g(e,t){t=t[0];var n=(e=e[0])._private.children,r=e.id();Pt(n,t),t._private.parent=null,p.ids[r]||(p.ids[r]=!0,p.push(e))}p.ids={},n.dirtyCompoundBoundsCache(),t&&a.removeFromPool(r);for(var f=0;f<r.length;f++){var v=r[f];if(v.isEdge()){var y=v.source()[0],m=v.target()[0];h(y,v),h(m,v);for(var b=v.parallelEdges(),x=0;x<b.length;x++){var w=b[x];d(w),w.isBundledBezier()&&w.dirtyBoundingBoxCache()}}else{var E=v.parent();0!==E.length&&g(E,v)}t&&(v._private.removed=!0)}var T=a._private.elements;a._private.hasCompoundNodes=!1;for(var _=0;_<T.length;_++)if(T[_].isParent()){a._private.hasCompoundNodes=!0;break}var D=new Du(this.cy(),r);D.size()>0&&(e?D.emitAndNotify("remove"):t&&D.emit("remove"));for(var C=0;C<p.length;C++){var N=p[C];t&&N.removed()||N.updateStyle()}return D},Cu.move=function(e){var t=this._private.cy,n=this,r=!1,i=!1,a=function(e){return null==e?e:""+e};if(void 0!==e.source||void 0!==e.target){var o=a(e.source),s=a(e.target),l=null!=o&&t.hasElementWithId(o),u=null!=s&&t.hasElementWithId(s);(l||u)&&(t.batch((function(){n.remove(r,i),n.emitAndNotify("moveout");for(var e=0;e<n.length;e++){var t=n[e],a=t._private.data;t.isEdge()&&(l&&(a.source=o),u&&(a.target=s))}n.restore(r,i)})),n.emitAndNotify("move"))}else if(void 0!==e.parent){var c=a(e.parent);if(null===c||t.hasElementWithId(c)){var h=null===c?void 0:c;t.batch((function(){var e=n.remove(r,i);e.emitAndNotify("moveout");for(var t=0;t<n.length;t++){var a=n[t],o=a._private.data;a.isNode()&&(o.parent=h)}e.restore(r,i)})),n.emitAndNotify("move")}}return this},[Oi,fs,vs,Vs,qs,el,tl,kl,$l,Kl,Ql,eu,ru,su,fu,mu].forEach((function(e){Q(Cu,e)}));var Nu={add:function(e){var t,n=this;if(N(e)){var r=e;if(r._private.cy===n)t=r.restore();else{for(var i=[],a=0;a<r.length;a++){var o=r[a];i.push(o.json())}t=new Du(n,i)}}else if(w(e))t=new Du(n,e);else if(E(e)&&(w(e.nodes)||w(e.edges))){for(var s=e,l=[],u=["nodes","edges"],c=0,h=u.length;c<h;c++){var d=u[c],p=s[d];if(w(p))for(var g=0,f=p.length;g<f;g++){var v=Q({group:d},p[g]);l.push(v)}}t=new Du(n,l)}else t=new jt(n,e).collection();return t},remove:function(e){if(N(e));else if(b(e)){var t=e;e=this.$(t)}return e.remove()}};function Au(e,t,n,r){var i=4,a=.001,o=1e-7,s=10,l=11,u=1/(l-1),c="undefined"!=typeof Float32Array;if(4!==arguments.length)return!1;for(var h=0;h<4;++h)if("number"!=typeof arguments[h]||isNaN(arguments[h])||!isFinite(arguments[h]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var d=c?new Float32Array(l):new Array(l);function p(e,t){return 1-3*t+3*e}function g(e,t){return 3*t-6*e}function f(e){return 3*e}function v(e,t,n){return((p(t,n)*e+g(t,n))*e+f(t))*e}function y(e,t,n){return 3*p(t,n)*e*e+2*g(t,n)*e+f(t)}function m(t,r){for(var a=0;a<i;++a){var o=y(r,e,n);if(0===o)return r;r-=(v(r,e,n)-t)/o}return r}function b(){for(var t=0;t<l;++t)d[t]=v(t*u,e,n)}function x(t,r,i){var a,l,u=0;do{(a=v(l=r+(i-r)/2,e,n)-t)>0?i=l:r=l}while(Math.abs(a)>o&&++u<s);return l}function w(t){for(var r=0,i=1,o=l-1;i!==o&&d[i]<=t;++i)r+=u;--i;var s=r+(t-d[i])/(d[i+1]-d[i])*u,c=y(s,e,n);return c>=a?m(t,s):0===c?s:x(t,r,r+u)}var E=!1;function T(){E=!0,e===t&&n===r||b()}var _=function(i){return E||T(),e===t&&n===r?i:0===i?0:1===i?1:v(w(i),t,r)};_.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var D="generateBezier("+[e,t,n,r]+")";return _.toString=function(){return D},_}var Lu=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,n,r){var i={x:t.x+r.dx*n,v:t.v+r.dv*n,tension:t.tension,friction:t.friction};return{dx:i.v,dv:e(i)}}function n(n,r){var i={dx:n.v,dv:e(n)},a=t(n,.5*r,i),o=t(n,.5*r,a),s=t(n,r,o),l=1/6*(i.dx+2*(a.dx+o.dx)+s.dx),u=1/6*(i.dv+2*(a.dv+o.dv)+s.dv);return n.x=n.x+l*r,n.v=n.v+u*r,n}return function e(t,r,i){var a,o,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0,h=1e-4,d=.016;for(t=parseFloat(t)||500,r=parseFloat(r)||20,i=i||null,l.tension=t,l.friction=r,o=(a=null!==i)?(c=e(t,r))/i*d:d;s=n(s||l,o),u.push(1+s.x),c+=16,Math.abs(s.x)>h&&Math.abs(s.v)>h;);return a?function(e){return u[e*(u.length-1)|0]}:c}}(),Su=function(e,t,n,r){var i=Au(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},Ou={linear:function(e,t,n){return e+(t-e)*n},ease:Su(.25,.1,.25,1),"ease-in":Su(.42,0,1,1),"ease-out":Su(0,0,.58,1),"ease-in-out":Su(.42,0,.58,1),"ease-in-sine":Su(.47,0,.745,.715),"ease-out-sine":Su(.39,.575,.565,1),"ease-in-out-sine":Su(.445,.05,.55,.95),"ease-in-quad":Su(.55,.085,.68,.53),"ease-out-quad":Su(.25,.46,.45,.94),"ease-in-out-quad":Su(.455,.03,.515,.955),"ease-in-cubic":Su(.55,.055,.675,.19),"ease-out-cubic":Su(.215,.61,.355,1),"ease-in-out-cubic":Su(.645,.045,.355,1),"ease-in-quart":Su(.895,.03,.685,.22),"ease-out-quart":Su(.165,.84,.44,1),"ease-in-out-quart":Su(.77,0,.175,1),"ease-in-quint":Su(.755,.05,.855,.06),"ease-out-quint":Su(.23,1,.32,1),"ease-in-out-quint":Su(.86,0,.07,1),"ease-in-expo":Su(.95,.05,.795,.035),"ease-out-expo":Su(.19,1,.22,1),"ease-in-out-expo":Su(1,0,0,1),"ease-in-circ":Su(.6,.04,.98,.335),"ease-out-circ":Su(.075,.82,.165,1),"ease-in-out-circ":Su(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return Ou.linear;var r=Lu(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":Su};function Iu(e,t,n,r,i){if(1===r)return n;if(t===n)return n;var a=i(t,n,r);return null==e||((e.roundValue||e.color)&&(a=Math.round(a)),void 0!==e.min&&(a=Math.max(a,e.min)),void 0!==e.max&&(a=Math.min(a,e.max))),a}function ku(e,t){return null!=e.pfValue||null!=e.value?null==e.pfValue||null!=t&&"%"===t.type.units?e.value:e.pfValue:e}function Mu(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=ku(e,i),s=ku(t,i);if(_(o)&&_(s))return Iu(a,o,s,n,r);if(w(o)&&w(s)){for(var l=[],u=0;u<s.length;u++){var c=o[u],h=s[u];if(null!=c&&null!=h){var d=Iu(a,c,h,n,r);l.push(d)}else l.push(h)}return l}}function Pu(e,t,n,r){var i=!r,a=e._private,o=t._private,s=o.easing,l=o.startTime,u=(r?e:e.cy()).style();if(!o.easingImpl)if(null==s)o.easingImpl=Ou.linear;else{var c,h,d;c=b(s)?u.parse("transition-timing-function",s).value:s,b(c)?(h=c,d=[]):(h=c[1],d=c.slice(2).map((function(e){return+e}))),d.length>0?("spring"===h&&d.push(o.duration),o.easingImpl=Ou[h].apply(null,d)):o.easingImpl=Ou[h]}var p,g=o.easingImpl;if(p=0===o.duration?1:(n-l)/o.duration,o.applying&&(p=o.progress),p<0?p=0:p>1&&(p=1),null==o.delay){var f=o.startPosition,v=o.position;if(v&&i&&!e.locked()){var y={};Ru(f.x,v.x)&&(y.x=Mu(f.x,v.x,p,g)),Ru(f.y,v.y)&&(y.y=Mu(f.y,v.y,p,g)),e.position(y)}var m=o.startPan,x=o.pan,w=a.pan,E=null!=x&&r;E&&(Ru(m.x,x.x)&&(w.x=Mu(m.x,x.x,p,g)),Ru(m.y,x.y)&&(w.y=Mu(m.y,x.y,p,g)),e.emit("pan"));var T=o.startZoom,_=o.zoom,D=null!=_&&r;D&&(Ru(T,_)&&(a.zoom=An(a.minZoom,Mu(T,_,p,g),a.maxZoom)),e.emit("zoom")),(E||D)&&e.emit("viewport");var C=o.style;if(C&&C.length>0&&i){for(var N=0;N<C.length;N++){var A=C[N],L=A.name,S=A,O=o.startStyle[L],I=Mu(O,S,p,g,u.properties[O.name]);u.overrideBypass(e,L,I)}e.emit("style")}}return o.progress=p,p}function Ru(e,t){return!!(null!=e&&null!=t&&(_(e)&&_(t)||e&&t))}function Bu(e,t,n,r){var i=t._private;i.started=!0,i.startTime=n-i.progress*i.duration}function Fu(e,t){var n=t._private.aniEles,r=[];function i(t,n){var i=t._private,a=i.animation.current,o=i.animation.queue,s=!1;if(0===a.length){var l=o.shift();l&&a.push(l)}for(var u=function(e){for(var t=e.length-1;t>=0;t--)(0,e[t])();e.splice(0,e.length)},c=a.length-1;c>=0;c--){var h=a[c],d=h._private;d.stopped?(a.splice(c,1),d.hooked=!1,d.playing=!1,d.started=!1,u(d.frames)):(d.playing||d.applying)&&(d.playing&&d.applying&&(d.applying=!1),d.started||Bu(t,h,e),Pu(t,h,e,n),d.applying&&(d.applying=!1),u(d.frames),null!=d.step&&d.step(e),h.completed()&&(a.splice(c,1),d.hooked=!1,d.playing=!1,d.started=!1,u(d.completes)),s=!0)}return n||0!==a.length||0!==o.length||r.push(t),s}for(var a=!1,o=0;o<n.length;o++){var s=i(n[o]);a=a||s}var l=i(t,!0);(a||l)&&(n.length>0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var zu={animate:gs.animate(),animation:gs.animation(),animated:gs.animated(),clearQueue:gs.clearQueue(),delay:gs.delay(),delayAnimation:gs.delayAnimation(),stop:gs.stop(),addToAnimationPool:function(e){var t=this;t.styleEnabled()&&t._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var t=e.renderer();t&&t.beforeRender?t.beforeRender((function(t,n){Fu(n,e)}),t.beforeRenderPriorities.animations):n()}function n(){e._private.animationsRunning&&nt((function(t){Fu(t,e),n()}))}}},Gu={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&A(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},Yu=function(e){return b(e)?new Ys(e):e},Xu={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new Xl(Gu,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,Yu(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,Yu(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,Yu(t),n),this},once:function(e,t,n){return this.emitter().one(e,Yu(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};gs.eventAliasesOn(Xu);var Vu={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};Vu.jpeg=Vu.jpg;var Uu={layout:function(e){var t=this;if(null!=e)if(null!=e.name){var n=e.name,r=t.extension("layout",n);if(null!=r){var i;i=b(e.eles)?t.$(e.eles):null!=e.eles?e.eles:t.$();var a=new r(Q({},e,{cy:t,eles:i}));return a}Dt("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?")}else Dt("A `name` must be specified to make a layout");else Dt("Layout options must be specified to make a layout")}};Uu.createLayout=Uu.makeLayout=Uu.layout;var ju={notify:function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();null!=t&&r.merge(t)}else if(n.notificationsEnabled){var i=this.renderer();!this.destroyed()&&i&&i.notify(e,t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach((function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)}))}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch((function(){for(var n=Object.keys(e),r=0;r<n.length;r++){var i=n[r],a=e[i];t.getElementById(i).data(a)}}))}},Hu=Mt({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1}),qu={renderTo:function(e,t,n,r){return this._private.renderer.renderTo(e,t,n,r),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify("draw"),this},resize:function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},initRenderer:function(e){var t=this,n=t.extension("renderer",e.name);if(null!=n){void 0!==e.wheelSensitivity&&Nt("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var r=Hu(e);r.cy=t,t._private.renderer=new n(r),this.notify("init")}else Dt("Can not initialise: No such renderer `".concat(e.name,"` found. Did you forget to import it and `cytoscape.use()` it?"))},destroyRenderer:function(){var e=this;e.notify("destroy");var t=e.container();if(t)for(t._cyreg=null;t.childNodes.length>0;)t.removeChild(t.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach((function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]}))},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};qu.invalidateDimensions=qu.resize;var Wu={collection:function(e,t){return b(e)?this.$(e):N(e)?e.collection():w(e)?(t||(t={}),new Du(this,e,t.unique,t.removed)):new Du(this)},nodes:function(e){var t=this.$((function(e){return e.isNode()}));return e?t.filter(e):t},edges:function(e){var t=this.$((function(e){return e.isEdge()}));return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};Wu.elements=Wu.filter=Wu.$;var $u={},Ku="t",Zu="f";$u.apply=function(e){for(var t=this,n=t._private.cy.collection(),r=0;r<e.length;r++){var i=e[r],a=t.getContextMeta(i);if(!a.empty){var o=t.getContextStyle(a),s=t.applyContextStyle(a,o,i);i._private.appliedInitStyle?t.updateTransitions(i,s.diffProps):i._private.appliedInitStyle=!0,t.updateStyleHints(i)&&n.push(i)}}return n},$u.getPropertiesDiff=function(e,t){var n=this,r=n._private.propDiffs=n._private.propDiffs||{},i=e+"-"+t,a=r[i];if(a)return a;for(var o=[],s={},l=0;l<n.length;l++){var u=n[l],c=e[l]===Ku,h=t[l]===Ku,d=c!==h,p=u.mappedProperties.length>0;if(d||h&&p){var g=void 0;d&&p||d?g=u.properties:p&&(g=u.mappedProperties);for(var f=0;f<g.length;f++){for(var v=g[f],y=v.name,m=!1,b=l+1;b<n.length;b++){var x=n[b];if(t[b]===Ku&&(m=null!=x.properties[v.name]))break}s[y]||m||(s[y]=!0,o.push(y))}}}return r[i]=o,o},$u.getContextMeta=function(e){for(var t,n=this,r="",i=e._private.styleCxtKey||"",a=0;a<n.length;a++){var o=n[a];r+=o.selector&&o.selector.matches(e)?Ku:Zu}return t=n.getPropertiesDiff(i,r),e._private.styleCxtKey=r,{key:r,diffPropNames:t,empty:0===t.length}},$u.getContextStyle=function(e){var t=e.key,n=this,r=this._private.contextStyles=this._private.contextStyles||{};if(r[t])return r[t];for(var i={_private:{key:t}},a=0;a<n.length;a++){var o=n[a];if(t[a]===Ku)for(var s=0;s<o.properties.length;s++){var l=o.properties[s];i[l.name]=l}}return r[t]=i,i},$u.applyContextStyle=function(e,t,n){for(var r=this,i=e.diffPropNames,a={},o=r.types,s=0;s<i.length;s++){var l=i[s],u=t[l],c=n.pstyle(l);if(!u){if(!c)continue;u=c.bypass?{name:l,deleteBypassed:!0}:{name:l,delete:!0}}if(c!==u){if(u.mapped===o.fn&&null!=c&&null!=c.mapping&&c.mapping.value===u.value){var h=c.mapping;if((h.fnValue=u.value(n))===h.prevFnValue)continue}var d=a[l]={prev:c};r.applyParsedProperty(n,u),d.next=n.pstyle(l),d.next&&d.next.bypass&&(d.next=d.next.bypassed)}}return{diffProps:a}},$u.updateStyleHints=function(e){var t=e._private,n=this,r=n.propertyGroupNames,i=n.propertyGroupKeys,a=function(e,t,r){return n.getPropertiesHash(e,t,r)},o=t.styleKey;if(e.removed())return!1;var s="nodes"===t.group,l=e._private.style;r=Object.keys(l);for(var u=0;u<i.length;u++){var c=i[u];t.styleKeys[c]=[it,ot]}for(var h=function(e,n){return t.styleKeys[n][0]=lt(e,t.styleKeys[n][0])},d=function(e,n){return t.styleKeys[n][1]=ut(e,t.styleKeys[n][1])},p=function(e,t){h(e,t),d(e,t)},g=function(e,t){for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);h(r,t),d(r,t)}},f=2e9,v=function(e){return-128<e&&e<128&&Math.floor(e)!==e?f-(1024*e|0):e},y=0;y<r.length;y++){var m=r[y],b=l[m];if(null!=b){var x=this.properties[m],w=x.type,E=x.groupKey,T=void 0;null!=x.hashOverride?T=x.hashOverride(e,b):null!=b.pfValue&&(T=b.pfValue);var _=null==x.enums?b.value:null,D=null!=T,C=D||null!=_,N=b.units;w.number&&C&&!w.multiple?(p(v(D?T:_),E),D||null==N||g(N,E)):g(b.strValue,E)}}for(var A=[it,ot],L=0;L<i.length;L++){var S=i[L],O=t.styleKeys[S];A[0]=lt(O[0],A[0]),A[1]=ut(O[1],A[1])}t.styleKey=ct(A[0],A[1]);var I=t.styleKeys;t.labelDimsKey=ht(I.labelDimensions);var k=a(e,["label"],I.labelDimensions);if(t.labelKey=ht(k),t.labelStyleKey=ht(dt(I.commonLabel,k)),!s){var M=a(e,["source-label"],I.labelDimensions);t.sourceLabelKey=ht(M),t.sourceLabelStyleKey=ht(dt(I.commonLabel,M));var P=a(e,["target-label"],I.labelDimensions);t.targetLabelKey=ht(P),t.targetLabelStyleKey=ht(dt(I.commonLabel,P))}if(s){var R=t.styleKeys,B=R.nodeBody,F=R.nodeBorder,z=R.backgroundImage,G=R.compound,Y=R.pie,X=[B,F,z,G,Y].filter((function(e){return null!=e})).reduce(dt,[it,ot]);t.nodeKey=ht(X),t.hasPie=null!=Y&&Y[0]!==it&&Y[1]!==ot}return o!==t.styleKey},$u.clearStyleHints=function(e){var t=e._private;t.styleCxtKey="",t.styleKeys={},t.styleKey=null,t.labelKey=null,t.labelStyleKey=null,t.sourceLabelKey=null,t.sourceLabelStyleKey=null,t.targetLabelKey=null,t.targetLabelStyleKey=null,t.nodeKey=null,t.hasPie=null},$u.applyParsedProperty=function(e,t){var n,r=this,i=t,a=e._private.style,o=r.types,s=r.properties[i.name].type,l=i.bypass,u=a[i.name],c=u&&u.bypass,h=e._private,d="mapping",p=function(e){return null==e?null:null!=e.pfValue?e.pfValue:e.value},g=function(){var t=p(u),n=p(i);r.checkTriggers(e,i.name,t,n)};if(i&&"pie"===i.name.substr(0,3)&&Nt("The pie style properties are deprecated. Create charts using background images instead."),"curve-style"===t.name&&e.isEdge()&&("bezier"!==t.value&&e.isLoop()||"haystack"===t.value&&(e.source().isParent()||e.target().isParent()))&&(i=t=this.parse(t.name,"bezier",l)),i.delete)return a[i.name]=void 0,g(),!0;if(i.deleteBypassed)return u?!!u.bypass&&(u.bypassed=void 0,g(),!0):(g(),!0);if(i.deleteBypass)return u?!!u.bypass&&(a[i.name]=u.bypassed,g(),!0):(g(),!0);var f=function(){Nt("Do not assign mappings to elements without corresponding data (i.e. ele `"+e.id()+"` has no mapping for property `"+i.name+"` with data field `"+i.field+"`); try a `["+i.field+"]` selector to limit scope to elements with `"+i.field+"` defined")};switch(i.mapped){case o.mapData:for(var v,y=i.field.split("."),m=h.data,b=0;b<y.length&&m;b++)m=m[y[b]];if(null==m)return f(),!1;if(!_(m))return Nt("Do not use continuous mappers without specifying numeric data (i.e. `"+i.field+": "+m+"` for `"+e.id()+"` is non-numeric)"),!1;var x=i.fieldMax-i.fieldMin;if((v=0===x?0:(m-i.fieldMin)/x)<0?v=0:v>1&&(v=1),s.color){var w=i.valueMin[0],E=i.valueMax[0],T=i.valueMin[1],D=i.valueMax[1],C=i.valueMin[2],N=i.valueMax[2],A=null==i.valueMin[3]?1:i.valueMin[3],L=null==i.valueMax[3]?1:i.valueMax[3],S=[Math.round(w+(E-w)*v),Math.round(T+(D-T)*v),Math.round(C+(N-C)*v),Math.round(A+(L-A)*v)];n={bypass:i.bypass,name:i.name,value:S,strValue:"rgb("+S[0]+", "+S[1]+", "+S[2]+")"}}else{if(!s.number)return!1;var O=i.valueMin+(i.valueMax-i.valueMin)*v;n=this.parse(i.name,O,i.bypass,d)}if(!n)return f(),!1;n.mapping=i,i=n;break;case o.data:for(var I=i.field.split("."),k=h.data,M=0;M<I.length&&k;M++)k=k[I[M]];if(null!=k&&(n=this.parse(i.name,k,i.bypass,d)),!n)return f(),!1;n.mapping=i,i=n;break;case o.fn:var P=i.value,R=null!=i.fnValue?i.fnValue:P(e);if(i.prevFnValue=R,null==R)return Nt("Custom function mappers may not return null (i.e. `"+i.name+"` for ele `"+e.id()+"` is null)"),!1;if(!(n=this.parse(i.name,R,i.bypass,d)))return Nt("Custom function mappers may not return invalid values for the property type (i.e. `"+i.name+"` for ele `"+e.id()+"` is invalid)"),!1;n.mapping=Lt(i),i=n;break;case void 0:break;default:return!1}return l?(i.bypassed=c?u.bypassed:u,a[i.name]=i):c?u.bypassed=i:a[i.name]=i,g(),!0},$u.cleanElements=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(this.clearStyleHints(r),r.dirtyCompoundBoundsCache(),r.dirtyBoundingBoxCache(),t)for(var i=r._private.style,a=Object.keys(i),o=0;o<a.length;o++){var s=a[o],l=i[s];null!=l&&(l.bypass?l.bypassed=null:i[s]=null)}else r._private.style={}}},$u.update=function(){this._private.cy.mutableElements().updateStyle()},$u.updateTransitions=function(e,t){var n=this,r=e._private,i=e.pstyle("transition-property").value,a=e.pstyle("transition-duration").pfValue,o=e.pstyle("transition-delay").pfValue;if(i.length>0&&a>0){for(var s={},l=!1,u=0;u<i.length;u++){var c=i[u],h=e.pstyle(c),d=t[c];if(d){var p=d.prev,g=null!=d.next?d.next:h,f=!1,v=void 0,y=1e-6;p&&(_(p.pfValue)&&_(g.pfValue)?(f=g.pfValue-p.pfValue,v=p.pfValue+y*f):_(p.value)&&_(g.value)?(f=g.value-p.value,v=p.value+y*f):w(p.value)&&w(g.value)&&(f=p.value[0]!==g.value[0]||p.value[1]!==g.value[1]||p.value[2]!==g.value[2],v=p.strValue),f&&(s[c]=g.strValue,this.applyBypass(e,c,v),l=!0))}}if(!l)return;r.transitioning=!0,new Yi((function(t){o>0?e.delayAnimation(o).play().promise().then(t):t()})).then((function(){return e.animation({style:s,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()})).then((function(){n.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1}))}else r.transitioning&&(this.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1)},$u.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);null!=s&&s(n,r)&&a(o)},$u.checkZOrderTrigger=function(e,t,n,r){var i=this;this.checkTrigger(e,t,n,r,(function(e){return e.triggersZOrder}),(function(){i._private.cy.notify("zorder",e)}))},$u.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,(function(e){return e.triggersBounds}),(function(i){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache(),!i.triggersBoundsOfParallelBeziers||("curve-style"!==t||"bezier"!==n&&"bezier"!==r)&&("display"!==t||"none"!==n&&"none"!==r)||e.parallelEdges().forEach((function(e){e.isBundledBezier()&&e.dirtyBoundingBoxCache()}))}))},$u.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r)};var Qu={applyBypass:function(e,t,n,r){var i=this,a=[],o=!0;if("*"===t||"**"===t){if(void 0!==n)for(var s=0;s<i.properties.length;s++){var l=i.properties[s].name,u=this.parse(l,n,!0);u&&a.push(u)}}else if(b(t)){var c=this.parse(t,n,!0);c&&a.push(c)}else{if(!E(t))return!1;var h=t;r=n;for(var d=Object.keys(h),p=0;p<d.length;p++){var g=d[p],f=h[g];if(void 0===f&&(f=h[G(g)]),void 0!==f){var v=this.parse(g,f,!0);v&&a.push(v)}}}if(0===a.length)return!1;for(var y=!1,m=0;m<e.length;m++){for(var x=e[m],w={},T=void 0,_=0;_<a.length;_++){var D=a[_];if(r){var C=x.pstyle(D.name);T=w[D.name]={prev:C}}y=this.applyParsedProperty(x,Lt(D))||y,r&&(T.next=x.pstyle(D.name))}y&&this.updateStyleHints(x),r&&this.updateTransitions(x,w,o)}return y},overrideBypass:function(e,t,n){t=z(t);for(var r=0;r<e.length;r++){var i=e[r],a=i._private.style[t],o=this.properties[t].type,s=o.color,l=o.mutiple,u=a?null!=a.pfValue?a.pfValue:a.value:null;a&&a.bypass?(a.value=n,null!=a.pfValue&&(a.pfValue=n),a.strValue=s?"rgb("+n.join(",")+")":l?n.join(" "):""+n,this.updateStyleHints(i)):this.applyBypass(i,t,n),this.checkTriggers(i,t,u,n)}},removeAllBypasses:function(e,t){return this.removeBypasses(e,this.propertyNames,t)},removeBypasses:function(e,t,n){for(var r=!0,i=0;i<e.length;i++){for(var a=e[i],o={},s=0;s<t.length;s++){var l=t[s],u=this.properties[l],c=a.pstyle(u.name);if(c&&c.bypass){var h="",d=this.parse(l,h,!0),p=o[u.name]={prev:c};this.applyParsedProperty(a,d),p.next=a.pstyle(u.name)}}this.updateStyleHints(a),n&&this.updateTransitions(a,o,r)}}},Ju={getEmSizeInPixels:function(){var e=this.containerCss("font-size");return null!=e?parseFloat(e):1},containerCss:function(e){var t=this._private.cy,n=t.container(),r=t.window();if(r&&n&&r.getComputedStyle)return r.getComputedStyle(n).getPropertyValue(e)}},ec={getRenderedStyle:function(e,t){return t?this.getStylePropertyValue(e,t,!0):this.getRawStyle(e,!0)},getRawStyle:function(e,t){var n=this;if(e=e[0]){for(var r={},i=0;i<n.properties.length;i++){var a=n.properties[i],o=n.getStylePropertyValue(e,a.name,t);null!=o&&(r[a.name]=o,r[G(a.name)]=o)}return r}},getIndexedStyle:function(e,t,n,r){var i=e.pstyle(t)[n][r];return null!=i?i:e.cy().style().getDefaultProperty(t)[n][0]},getStylePropertyValue:function(e,t,n){var r=this;if(e=e[0]){var i=r.properties[t];i.alias&&(i=i.pointsTo);var a=i.type,o=e.pstyle(i.name);if(o){var s=o.value,l=o.units,u=o.strValue;if(n&&a.number&&null!=s&&_(s)){var c=e.cy().zoom(),h=function(e){return e*c},d=function(e,t){return h(e)+t},p=w(s);return(p?l.every((function(e){return null!=e})):null!=l)?p?s.map((function(e,t){return d(e,l[t])})).join(" "):d(s,l):p?s.map((function(e){return b(e)?e:""+h(e)})).join(" "):""+h(s)}if(null!=u)return u}return null}},getAnimationStartStyle:function(e,t){for(var n={},r=0;r<t.length;r++){var i=t[r].name,a=e.pstyle(i);void 0!==a&&(a=E(a)?this.parse(i,a.strValue):this.parse(i,a)),a&&(n[i]=a)}return n},getPropsList:function(e){var t=[],n=e,r=this.properties;if(n)for(var i=Object.keys(n),a=0;a<i.length;a++){var o=i[a],s=n[o],l=r[o]||r[z(o)],u=this.parse(l.name,s);u&&t.push(u)}return t},getNonDefaultPropertiesHash:function(e,t,n){var r,i,a,o,s,l,u=n.slice();for(s=0;s<t.length;s++)if(r=t[s],null!=(i=e.pstyle(r,!1)))if(null!=i.pfValue)u[0]=lt(o,u[0]),u[1]=ut(o,u[1]);else for(a=i.strValue,l=0;l<a.length;l++)o=a.charCodeAt(l),u[0]=lt(o,u[0]),u[1]=ut(o,u[1]);return u}};ec.getPropertiesHash=ec.getNonDefaultPropertiesHash;var tc={appendFromJson:function(e){for(var t=this,n=0;n<e.length;n++){var r=e[n],i=r.selector,a=r.style||r.css,o=Object.keys(a);t.selector(i);for(var s=0;s<o.length;s++){var l=o[s],u=a[l];t.css(l,u)}}return t},fromJson:function(e){var t=this;return t.resetToDefault(),t.appendFromJson(e),t},json:function(){for(var e=[],t=this.defaultLength;t<this.length;t++){for(var n=this[t],r=n.selector,i=n.properties,a={},o=0;o<i.length;o++){var s=i[o];a[s.name]=s.strValue}e.push({selector:r?r.toString():"core",style:a})}return e}},nc={appendFromString:function(e){var t,n,r,i=this,a=this,o=""+e;function s(){o=o.length>t.length?o.substr(t.length):""}function l(){n=n.length>r.length?n.substr(r.length):""}for(o=o.replace(/[/][*](\s|.)+?[*][/]/g,"");!o.match(/^\s*$/);){var u=o.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!u){Nt("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+o);break}t=u[0];var c=u[1];if("core"!==c&&new Ys(c).invalid)Nt("Skipping parsing of block: Invalid selector found in string stylesheet: "+c),s();else{var h=u[2],d=!1;n=h;for(var p=[];!n.match(/^\s*$/);){var g=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!g){Nt("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+h),d=!0;break}r=g[0];var f=g[1],v=g[2];i.properties[f]?a.parse(f,v)?(p.push({name:f,val:v}),l()):(Nt("Skipping property: Invalid property definition in: "+r),l()):(Nt("Skipping property: Invalid property name in: "+r),l())}if(d){s();break}a.selector(c);for(var y=0;y<p.length;y++){var m=p[y];a.css(m.name,m.val)}s()}}return a},fromString:function(e){var t=this;return t.resetToDefault(),t.appendFromString(e),t}},rc={};(function(){var e=V,t=j,n=q,r=W,i=$,a=function(e){return"^"+e+"\\s*\\(\\s*([\\w\\.]+)\\s*\\)$"},o=function(a){var o=e+"|\\w+|"+t+"|"+n+"|"+r+"|"+i;return"^"+a+"\\s*\\(([\\w\\.]+)\\s*\\,\\s*("+e+")\\s*\\,\\s*("+e+")\\s*,\\s*("+o+")\\s*\\,\\s*("+o+")\\)$"},s=["^url\\s*\\(\\s*['\"]?(.+?)['\"]?\\s*\\)$","^(none)$","^(.+)$"];rc.types={time:{number:!0,min:0,units:"s|ms",implicitUnits:"ms"},percent:{number:!0,min:0,max:100,units:"%",implicitUnits:"%"},percentages:{number:!0,min:0,max:100,units:"%",implicitUnits:"%",multiple:!0},zeroOneNumber:{number:!0,min:0,max:1,unitless:!0},zeroOneNumbers:{number:!0,min:0,max:1,unitless:!0,multiple:!0},nOneOneNumber:{number:!0,min:-1,max:1,unitless:!0},nonNegativeInt:{number:!0,min:0,integer:!0,unitless:!0},position:{enums:["parent","origin"]},nodeSize:{number:!0,min:0,enums:["label"]},number:{number:!0,unitless:!0},numbers:{number:!0,unitless:!0,multiple:!0},positiveNumber:{number:!0,unitless:!0,min:0,strictMin:!0},size:{number:!0,min:0},bidirectionalSize:{number:!0},bidirectionalSizeMaybePercent:{number:!0,allowPercent:!0},bidirectionalSizes:{number:!0,multiple:!0},sizeMaybePercent:{number:!0,min:0,allowPercent:!0},axisDirection:{enums:["horizontal","leftward","rightward","vertical","upward","downward","auto"]},paddingRelativeTo:{enums:["width","height","average","min","max"]},bgWH:{number:!0,min:0,allowPercent:!0,enums:["auto"],multiple:!0},bgPos:{number:!0,allowPercent:!0,multiple:!0},bgRelativeTo:{enums:["inner","include-padding"],multiple:!0},bgRepeat:{enums:["repeat","repeat-x","repeat-y","no-repeat"],multiple:!0},bgFit:{enums:["none","contain","cover"],multiple:!0},bgCrossOrigin:{enums:["anonymous","use-credentials","null"],multiple:!0},bgClip:{enums:["none","node"],multiple:!0},bgContainment:{enums:["inside","over"],multiple:!0},color:{color:!0},colors:{color:!0,multiple:!0},fill:{enums:["solid","linear-gradient","radial-gradient"]},bool:{enums:["yes","no"]},bools:{enums:["yes","no"],multiple:!0},lineStyle:{enums:["solid","dotted","dashed"]},lineCap:{enums:["butt","round","square"]},borderStyle:{enums:["solid","dotted","dashed","double"]},curveStyle:{enums:["bezier","unbundled-bezier","haystack","segments","straight","straight-triangle","taxi"]},fontFamily:{regex:'^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'},fontStyle:{enums:["italic","normal","oblique"]},fontWeight:{enums:["normal","bold","bolder","lighter","100","200","300","400","500","600","800","900",100,200,300,400,500,600,700,800,900]},textDecoration:{enums:["none","underline","overline","line-through"]},textTransform:{enums:["none","uppercase","lowercase"]},textWrap:{enums:["none","wrap","ellipsis"]},textOverflowWrap:{enums:["whitespace","anywhere"]},textBackgroundShape:{enums:["rectangle","roundrectangle","round-rectangle"]},nodeShape:{enums:["rectangle","roundrectangle","round-rectangle","cutrectangle","cut-rectangle","bottomroundrectangle","bottom-round-rectangle","barrel","ellipse","triangle","round-triangle","square","pentagon","round-pentagon","hexagon","round-hexagon","concavehexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","tag","round-tag","star","diamond","round-diamond","vee","rhomboid","right-rhomboid","polygon"]},overlayShape:{enums:["roundrectangle","round-rectangle","ellipse"]},compoundIncludeLabels:{enums:["include","exclude"]},arrowShape:{enums:["tee","triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","square","circle","diamond","chevron","none"]},arrowFill:{enums:["filled","hollow"]},display:{enums:["element","none"]},visibility:{enums:["hidden","visible"]},zCompoundDepth:{enums:["bottom","orphan","auto","top"]},zIndexCompare:{enums:["auto","manual"]},valign:{enums:["top","center","bottom"]},halign:{enums:["left","center","right"]},justification:{enums:["left","center","right","auto"]},text:{string:!0},data:{mapping:!0,regex:a("data")},layoutData:{mapping:!0,regex:a("layoutData")},scratch:{mapping:!0,regex:a("scratch")},mapData:{mapping:!0,regex:o("mapData")},mapLayoutData:{mapping:!0,regex:o("mapLayoutData")},mapScratch:{mapping:!0,regex:o("mapScratch")},fn:{mapping:!0,fn:!0},url:{regexes:s,singleRegexMatchValue:!0},urls:{regexes:s,singleRegexMatchValue:!0,multiple:!0},propList:{propList:!0},angle:{number:!0,units:"deg|rad",implicitUnits:"rad"},textRotation:{number:!0,units:"deg|rad",implicitUnits:"rad",enums:["none","autorotate"]},polygonPointList:{number:!0,multiple:!0,evenMultiple:!0,min:-1,max:1,unitless:!0},edgeDistances:{enums:["intersection","node-position"]},edgeEndpoint:{number:!0,multiple:!0,units:"%|px|em|deg|rad",implicitUnits:"px",enums:["inside-to-node","outside-to-node","outside-to-node-or-label","outside-to-line","outside-to-line-or-label"],singleEnum:!0,validate:function(e,t){switch(e.length){case 2:return"deg"!==t[0]&&"rad"!==t[0]&&"deg"!==t[1]&&"rad"!==t[1];case 1:return b(e[0])||"deg"===t[0]||"rad"===t[0];default:return!1}}},easing:{regexes:["^(spring)\\s*\\(\\s*("+e+")\\s*,\\s*("+e+")\\s*\\)$","^(cubic-bezier)\\s*\\(\\s*("+e+")\\s*,\\s*("+e+")\\s*,\\s*("+e+")\\s*,\\s*("+e+")\\s*\\)$"],enums:["linear","ease","ease-in","ease-out","ease-in-out","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-in-circ","ease-out-circ","ease-in-out-circ"]},gradientDirection:{enums:["to-bottom","to-top","to-left","to-right","to-bottom-right","to-bottom-left","to-top-right","to-top-left","to-right-bottom","to-left-bottom","to-right-top","to-left-top"]},boundsExpansion:{number:!0,multiple:!0,min:0,validate:function(e){var t=e.length;return 1===t||2===t||4===t}}};var l={zeroNonZero:function(e,t){return(null==e||null==t)&&e!==t||0==e&&0!=t||0!=e&&0==t},any:function(e,t){return e!=t},emptyNonEmpty:function(e,t){var n=k(e),r=k(t);return n&&!r||!n&&r}},u=rc.types,c=[{name:"label",type:u.text,triggersBounds:l.any,triggersZOrder:l.emptyNonEmpty},{name:"text-rotation",type:u.textRotation,triggersBounds:l.any},{name:"text-margin-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"text-margin-y",type:u.bidirectionalSize,triggersBounds:l.any}],h=[{name:"source-label",type:u.text,triggersBounds:l.any},{name:"source-text-rotation",type:u.textRotation,triggersBounds:l.any},{name:"source-text-margin-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"source-text-margin-y",type:u.bidirectionalSize,triggersBounds:l.any},{name:"source-text-offset",type:u.size,triggersBounds:l.any}],d=[{name:"target-label",type:u.text,triggersBounds:l.any},{name:"target-text-rotation",type:u.textRotation,triggersBounds:l.any},{name:"target-text-margin-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"target-text-margin-y",type:u.bidirectionalSize,triggersBounds:l.any},{name:"target-text-offset",type:u.size,triggersBounds:l.any}],p=[{name:"font-family",type:u.fontFamily,triggersBounds:l.any},{name:"font-style",type:u.fontStyle,triggersBounds:l.any},{name:"font-weight",type:u.fontWeight,triggersBounds:l.any},{name:"font-size",type:u.size,triggersBounds:l.any},{name:"text-transform",type:u.textTransform,triggersBounds:l.any},{name:"text-wrap",type:u.textWrap,triggersBounds:l.any},{name:"text-overflow-wrap",type:u.textOverflowWrap,triggersBounds:l.any},{name:"text-max-width",type:u.size,triggersBounds:l.any},{name:"text-outline-width",type:u.size,triggersBounds:l.any},{name:"line-height",type:u.positiveNumber,triggersBounds:l.any}],g=[{name:"text-valign",type:u.valign,triggersBounds:l.any},{name:"text-halign",type:u.halign,triggersBounds:l.any},{name:"color",type:u.color},{name:"text-outline-color",type:u.color},{name:"text-outline-opacity",type:u.zeroOneNumber},{name:"text-background-color",type:u.color},{name:"text-background-opacity",type:u.zeroOneNumber},{name:"text-background-padding",type:u.size,triggersBounds:l.any},{name:"text-border-opacity",type:u.zeroOneNumber},{name:"text-border-color",type:u.color},{name:"text-border-width",type:u.size,triggersBounds:l.any},{name:"text-border-style",type:u.borderStyle,triggersBounds:l.any},{name:"text-background-shape",type:u.textBackgroundShape,triggersBounds:l.any},{name:"text-justification",type:u.justification}],f=[{name:"events",type:u.bool},{name:"text-events",type:u.bool}],v=[{name:"display",type:u.display,triggersZOrder:l.any,triggersBounds:l.any,triggersBoundsOfParallelBeziers:!0},{name:"visibility",type:u.visibility,triggersZOrder:l.any},{name:"opacity",type:u.zeroOneNumber,triggersZOrder:l.zeroNonZero},{name:"text-opacity",type:u.zeroOneNumber},{name:"min-zoomed-font-size",type:u.size},{name:"z-compound-depth",type:u.zCompoundDepth,triggersZOrder:l.any},{name:"z-index-compare",type:u.zIndexCompare,triggersZOrder:l.any},{name:"z-index",type:u.nonNegativeInt,triggersZOrder:l.any}],y=[{name:"overlay-padding",type:u.size,triggersBounds:l.any},{name:"overlay-color",type:u.color},{name:"overlay-opacity",type:u.zeroOneNumber,triggersBounds:l.zeroNonZero},{name:"overlay-shape",type:u.overlayShape,triggersBounds:l.any}],m=[{name:"underlay-padding",type:u.size,triggersBounds:l.any},{name:"underlay-color",type:u.color},{name:"underlay-opacity",type:u.zeroOneNumber,triggersBounds:l.zeroNonZero},{name:"underlay-shape",type:u.overlayShape,triggersBounds:l.any}],x=[{name:"transition-property",type:u.propList},{name:"transition-duration",type:u.time},{name:"transition-delay",type:u.time},{name:"transition-timing-function",type:u.easing}],w=function(e,t){return"label"===t.value?-e.poolIndex():t.pfValue},E=[{name:"height",type:u.nodeSize,triggersBounds:l.any,hashOverride:w},{name:"width",type:u.nodeSize,triggersBounds:l.any,hashOverride:w},{name:"shape",type:u.nodeShape,triggersBounds:l.any},{name:"shape-polygon-points",type:u.polygonPointList,triggersBounds:l.any},{name:"background-color",type:u.color},{name:"background-fill",type:u.fill},{name:"background-opacity",type:u.zeroOneNumber},{name:"background-blacken",type:u.nOneOneNumber},{name:"background-gradient-stop-colors",type:u.colors},{name:"background-gradient-stop-positions",type:u.percentages},{name:"background-gradient-direction",type:u.gradientDirection},{name:"padding",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"padding-relative-to",type:u.paddingRelativeTo,triggersBounds:l.any},{name:"bounds-expansion",type:u.boundsExpansion,triggersBounds:l.any}],T=[{name:"border-color",type:u.color},{name:"border-opacity",type:u.zeroOneNumber},{name:"border-width",type:u.size,triggersBounds:l.any},{name:"border-style",type:u.borderStyle}],_=[{name:"background-image",type:u.urls},{name:"background-image-crossorigin",type:u.bgCrossOrigin},{name:"background-image-opacity",type:u.zeroOneNumbers},{name:"background-image-containment",type:u.bgContainment},{name:"background-image-smoothing",type:u.bools},{name:"background-position-x",type:u.bgPos},{name:"background-position-y",type:u.bgPos},{name:"background-width-relative-to",type:u.bgRelativeTo},{name:"background-height-relative-to",type:u.bgRelativeTo},{name:"background-repeat",type:u.bgRepeat},{name:"background-fit",type:u.bgFit},{name:"background-clip",type:u.bgClip},{name:"background-width",type:u.bgWH},{name:"background-height",type:u.bgWH},{name:"background-offset-x",type:u.bgPos},{name:"background-offset-y",type:u.bgPos}],D=[{name:"position",type:u.position,triggersBounds:l.any},{name:"compound-sizing-wrt-labels",type:u.compoundIncludeLabels,triggersBounds:l.any},{name:"min-width",type:u.size,triggersBounds:l.any},{name:"min-width-bias-left",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"min-width-bias-right",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"min-height",type:u.size,triggersBounds:l.any},{name:"min-height-bias-top",type:u.sizeMaybePercent,triggersBounds:l.any},{name:"min-height-bias-bottom",type:u.sizeMaybePercent,triggersBounds:l.any}],C=[{name:"line-style",type:u.lineStyle},{name:"line-color",type:u.color},{name:"line-fill",type:u.fill},{name:"line-cap",type:u.lineCap},{name:"line-opacity",type:u.zeroOneNumber},{name:"line-dash-pattern",type:u.numbers},{name:"line-dash-offset",type:u.number},{name:"line-gradient-stop-colors",type:u.colors},{name:"line-gradient-stop-positions",type:u.percentages},{name:"curve-style",type:u.curveStyle,triggersBounds:l.any,triggersBoundsOfParallelBeziers:!0},{name:"haystack-radius",type:u.zeroOneNumber,triggersBounds:l.any},{name:"source-endpoint",type:u.edgeEndpoint,triggersBounds:l.any},{name:"target-endpoint",type:u.edgeEndpoint,triggersBounds:l.any},{name:"control-point-step-size",type:u.size,triggersBounds:l.any},{name:"control-point-distances",type:u.bidirectionalSizes,triggersBounds:l.any},{name:"control-point-weights",type:u.numbers,triggersBounds:l.any},{name:"segment-distances",type:u.bidirectionalSizes,triggersBounds:l.any},{name:"segment-weights",type:u.numbers,triggersBounds:l.any},{name:"taxi-turn",type:u.bidirectionalSizeMaybePercent,triggersBounds:l.any},{name:"taxi-turn-min-distance",type:u.size,triggersBounds:l.any},{name:"taxi-direction",type:u.axisDirection,triggersBounds:l.any},{name:"edge-distances",type:u.edgeDistances,triggersBounds:l.any},{name:"arrow-scale",type:u.positiveNumber,triggersBounds:l.any},{name:"loop-direction",type:u.angle,triggersBounds:l.any},{name:"loop-sweep",type:u.angle,triggersBounds:l.any},{name:"source-distance-from-node",type:u.size,triggersBounds:l.any},{name:"target-distance-from-node",type:u.size,triggersBounds:l.any}],N=[{name:"ghost",type:u.bool,triggersBounds:l.any},{name:"ghost-offset-x",type:u.bidirectionalSize,triggersBounds:l.any},{name:"ghost-offset-y",type:u.bidirectionalSize,triggersBounds:l.any},{name:"ghost-opacity",type:u.zeroOneNumber}],A=[{name:"selection-box-color",type:u.color},{name:"selection-box-opacity",type:u.zeroOneNumber},{name:"selection-box-border-color",type:u.color},{name:"selection-box-border-width",type:u.size},{name:"active-bg-color",type:u.color},{name:"active-bg-opacity",type:u.zeroOneNumber},{name:"active-bg-size",type:u.size},{name:"outside-texture-bg-color",type:u.color},{name:"outside-texture-bg-opacity",type:u.zeroOneNumber}],L=[];rc.pieBackgroundN=16,L.push({name:"pie-size",type:u.sizeMaybePercent});for(var S=1;S<=rc.pieBackgroundN;S++)L.push({name:"pie-"+S+"-background-color",type:u.color}),L.push({name:"pie-"+S+"-background-size",type:u.percent}),L.push({name:"pie-"+S+"-background-opacity",type:u.zeroOneNumber});var O=[],I=rc.arrowPrefixes=["source","mid-source","target","mid-target"];[{name:"arrow-shape",type:u.arrowShape,triggersBounds:l.any},{name:"arrow-color",type:u.color},{name:"arrow-fill",type:u.arrowFill}].forEach((function(e){I.forEach((function(t){var n=t+"-"+e.name,r=e.type,i=e.triggersBounds;O.push({name:n,type:r,triggersBounds:i})}))}),{});var M=rc.properties=[].concat(f,x,v,y,m,N,g,p,c,h,d,E,T,_,L,D,C,O,A),P=rc.propertyGroups={behavior:f,transition:x,visibility:v,overlay:y,underlay:m,ghost:N,commonLabel:g,labelDimensions:p,mainLabel:c,sourceLabel:h,targetLabel:d,nodeBody:E,nodeBorder:T,backgroundImage:_,pie:L,compound:D,edgeLine:C,edgeArrow:O,core:A},R=rc.propertyGroupNames={};(rc.propertyGroupKeys=Object.keys(P)).forEach((function(e){R[e]=P[e].map((function(e){return e.name})),P[e].forEach((function(t){return t.groupKey=e}))}));var B=rc.aliases=[{name:"content",pointsTo:"label"},{name:"control-point-distance",pointsTo:"control-point-distances"},{name:"control-point-weight",pointsTo:"control-point-weights"},{name:"edge-text-rotation",pointsTo:"text-rotation"},{name:"padding-left",pointsTo:"padding"},{name:"padding-right",pointsTo:"padding"},{name:"padding-top",pointsTo:"padding"},{name:"padding-bottom",pointsTo:"padding"}];rc.propertyNames=M.map((function(e){return e.name}));for(var F=0;F<M.length;F++){var z=M[F];M[z.name]=z}for(var G=0;G<B.length;G++){var Y=B[G],X=M[Y.pointsTo],U={name:Y.name,alias:!0,pointsTo:X};M.push(U),M[Y.name]=U}})(),rc.getDefaultProperty=function(e){return this.getDefaultProperties()[e]},rc.getDefaultProperties=function(){var e=this._private;if(null!=e.defaultProperties)return e.defaultProperties;for(var t=Q({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":30,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125,events:"yes","text-events":"no","text-valign":"top","text-halign":"center","text-justification":"auto","line-height":1,color:"#000","text-outline-color":"#000","text-outline-width":0,"text-outline-opacity":1,"text-opacity":1,"text-decoration":"none","text-transform":"none","text-wrap":"none","text-overflow-wrap":"whitespace","text-max-width":9999,"text-background-color":"#000","text-background-opacity":0,"text-background-shape":"rectangle","text-background-padding":0,"text-border-opacity":0,"text-border-width":0,"text-border-style":"solid","text-border-color":"#000","font-family":"Helvetica Neue, Helvetica, sans-serif","font-style":"normal","font-weight":"normal","font-size":16,"min-zoomed-font-size":0,"text-rotation":"none","source-text-rotation":"none","target-text-rotation":"none",visibility:"visible",display:"element",opacity:1,"z-compound-depth":"auto","z-index-compare":"auto","z-index":0,label:"","text-margin-x":0,"text-margin-y":0,"source-label":"","source-text-offset":0,"source-text-margin-x":0,"source-text-margin-y":0,"target-label":"","target-text-offset":0,"target-text-margin-x":0,"target-text-margin-y":0,"overlay-opacity":0,"overlay-color":"#000","overlay-padding":10,"overlay-shape":"round-rectangle","underlay-opacity":0,"underlay-color":"#000","underlay-padding":10,"underlay-shape":"round-rectangle","transition-property":"none","transition-duration":0,"transition-delay":0,"transition-timing-function":"linear","background-blacken":0,"background-color":"#999","background-fill":"solid","background-opacity":1,"background-image":"none","background-image-crossorigin":"anonymous","background-image-opacity":1,"background-image-containment":"inside","background-image-smoothing":"yes","background-position-x":"50%","background-position-y":"50%","background-offset-x":0,"background-offset-y":0,"background-width-relative-to":"include-padding","background-height-relative-to":"include-padding","background-repeat":"no-repeat","background-fit":"none","background-clip":"node","background-width":"auto","background-height":"auto","border-color":"#000","border-opacity":1,"border-width":0,"border-style":"solid",height:30,width:30,shape:"ellipse","shape-polygon-points":"-1, -1, 1, -1, 1, 1, -1, 1","bounds-expansion":0,"background-gradient-direction":"to-bottom","background-gradient-stop-colors":"#999","background-gradient-stop-positions":"0%",ghost:"no","ghost-offset-y":0,"ghost-offset-x":0,"ghost-opacity":0,padding:0,"padding-relative-to":"width",position:"origin","compound-sizing-wrt-labels":"include","min-width":0,"min-width-bias-left":0,"min-width-bias-right":0,"min-height":0,"min-height-bias-top":0,"min-height-bias-bottom":0},{"pie-size":"100%"},[{name:"pie-{{i}}-background-color",value:"black"},{name:"pie-{{i}}-background-size",value:"0%"},{name:"pie-{{i}}-background-opacity",value:1}].reduce((function(e,t){for(var n=1;n<=rc.pieBackgroundN;n++){var r=t.name.replace("{{i}}",n),i=t.value;e[r]=i}return e}),{}),{"line-style":"solid","line-color":"#999","line-fill":"solid","line-cap":"butt","line-opacity":1,"line-gradient-stop-colors":"#999","line-gradient-stop-positions":"0%","control-point-step-size":40,"control-point-weights":.5,"segment-weights":.5,"segment-distances":20,"taxi-turn":"50%","taxi-turn-min-distance":10,"taxi-direction":"auto","edge-distances":"intersection","curve-style":"haystack","haystack-radius":0,"arrow-scale":1,"loop-direction":"-45deg","loop-sweep":"-90deg","source-distance-from-node":0,"target-distance-from-node":0,"source-endpoint":"outside-to-node","target-endpoint":"outside-to-node","line-dash-pattern":[6,3],"line-dash-offset":0},[{name:"arrow-shape",value:"none"},{name:"arrow-color",value:"#999"},{name:"arrow-fill",value:"filled"}].reduce((function(e,t){return rc.arrowPrefixes.forEach((function(n){var r=n+"-"+t.name,i=t.value;e[r]=i})),e}),{})),n={},r=0;r<this.properties.length;r++){var i=this.properties[r];if(!i.pointsTo){var a=i.name,o=t[a],s=this.parse(a,o);n[a]=s}}return e.defaultProperties=n,e.defaultProperties},rc.addDefaultStylesheet=function(){this.selector(":parent").css({shape:"rectangle",padding:10,"background-color":"#eee","border-color":"#ccc","border-width":1}).selector("edge").css({width:3}).selector(":loop").css({"curve-style":"bezier"}).selector("edge:compound").css({"curve-style":"bezier","source-endpoint":"outside-to-line","target-endpoint":"outside-to-line"}).selector(":selected").css({"background-color":"#0169D9","line-color":"#0169D9","source-arrow-color":"#0169D9","target-arrow-color":"#0169D9","mid-source-arrow-color":"#0169D9","mid-target-arrow-color":"#0169D9"}).selector(":parent:selected").css({"background-color":"#CCE1F9","border-color":"#aec8e5"}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}),this.defaultLength=this.length};var ic={parse:function(e,t,n,r){var i=this;if(x(t))return i.parseImplWarn(e,t,n,r);var a,o=ft(e,""+t,n?"t":"f","mapping"===r||!0===r||!1===r||null==r?"dontcare":r),s=i.propCache=i.propCache||[];return(a=s[o])||(a=s[o]=i.parseImplWarn(e,t,n,r)),(n||"mapping"===r)&&(a=Lt(a))&&(a.value=Lt(a.value)),a},parseImplWarn:function(e,t,n,r){var i=this.parseImpl(e,t,n,r);return i||null==t||Nt("The style property `".concat(e,": ").concat(t,"` is invalid")),!i||"width"!==i.name&&"height"!==i.name||"label"!==t||Nt("The style value of `label` is deprecated for `"+i.name+"`"),i},parseImpl:function(e,t,n,r){var i=this;e=z(e);var a=i.properties[e],o=t,s=i.types;if(!a)return null;if(void 0===t)return null;a.alias&&(a=a.pointsTo,e=a.name);var l=b(t);l&&(t=t.trim());var u,c,h=a.type;if(!h)return null;if(n&&(""===t||null===t))return{name:e,value:t,bypass:!0,deleteBypass:!0};if(x(t))return{name:e,value:t,strValue:"fn",mapped:s.fn,bypass:n};if(!l||r||t.length<7||"a"!==t[1]);else{if(t.length>=7&&"d"===t[0]&&(u=new RegExp(s.data.regex).exec(t))){if(n)return!1;var d=s.data;return{name:e,value:u,strValue:""+t,mapped:d,field:u[1],bypass:n}}if(t.length>=10&&"m"===t[0]&&(c=new RegExp(s.mapData.regex).exec(t))){if(n)return!1;if(h.multiple)return!1;var p=s.mapData;if(!h.color&&!h.number)return!1;var g=this.parse(e,c[4]);if(!g||g.mapped)return!1;var f=this.parse(e,c[5]);if(!f||f.mapped)return!1;if(g.pfValue===f.pfValue||g.strValue===f.strValue)return Nt("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+g.strValue+"`"),this.parse(e,g.strValue);if(h.color){var v=g.value,y=f.value;if(!(v[0]!==y[0]||v[1]!==y[1]||v[2]!==y[2]||v[3]!==y[3]&&(null!=v[3]&&1!==v[3]||null!=y[3]&&1!==y[3])))return!1}return{name:e,value:c,strValue:""+t,mapped:p,field:c[1],fieldMin:parseFloat(c[2]),fieldMax:parseFloat(c[3]),valueMin:g.value,valueMax:f.value,bypass:n}}}if(h.multiple&&"multiple"!==r){var m;if(m=l?t.split(/\s+/):w(t)?t:[t],h.evenMultiple&&m.length%2!=0)return null;for(var E=[],T=[],_=[],C="",N=!1,A=0;A<m.length;A++){var L=i.parse(e,m[A],n,"multiple");N=N||b(L.value),E.push(L.value),_.push(null!=L.pfValue?L.pfValue:L.value),T.push(L.units),C+=(A>0?" ":"")+L.strValue}return h.validate&&!h.validate(E,T)?null:h.singleEnum&&N?1===E.length&&b(E[0])?{name:e,value:E[0],strValue:E[0],bypass:n}:null:{name:e,value:E,pfValue:_,strValue:C,bypass:n,units:T}}var S=function(){for(var r=0;r<h.enums.length;r++)if(h.enums[r]===t)return{name:e,value:t,strValue:""+t,bypass:n};return null};if(h.number){var O,I="px";if(h.units&&(O=h.units),h.implicitUnits&&(I=h.implicitUnits),!h.unitless)if(l){var k="px|em"+(h.allowPercent?"|\\%":"");O&&(k=O);var M=t.match("^("+V+")("+k+")?$");M&&(t=M[1],O=M[2]||I)}else O&&!h.implicitUnits||(O=I);if(t=parseFloat(t),isNaN(t)&&void 0===h.enums)return null;if(isNaN(t)&&void 0!==h.enums)return t=o,S();if(h.integer&&!D(t))return null;if(void 0!==h.min&&(t<h.min||h.strictMin&&t===h.min)||void 0!==h.max&&(t>h.max||h.strictMax&&t===h.max))return null;var P={name:e,value:t,strValue:""+t+(O||""),units:O,bypass:n};return h.unitless||"px"!==O&&"em"!==O?P.pfValue=t:P.pfValue="px"!==O&&O?this.getEmSizeInPixels()*t:t,"ms"!==O&&"s"!==O||(P.pfValue="ms"===O?t:1e3*t),"deg"!==O&&"rad"!==O||(P.pfValue="rad"===O?t:mn(t)),"%"===O&&(P.pfValue=t/100),P}if(h.propList){var R=[],B=""+t;if("none"===B);else{for(var F=B.split(/\s*,\s*|\s+/),G=0;G<F.length;G++){var Y=F[G].trim();i.properties[Y]?R.push(Y):Nt("`"+Y+"` is not a valid property name")}if(0===R.length)return null}return{name:e,value:R,strValue:0===R.length?"none":R.join(" "),bypass:n}}if(h.color){var X=re(t);return X?{name:e,value:X,pfValue:X,strValue:"rgb("+X[0]+","+X[1]+","+X[2]+")",bypass:n}:null}if(h.regex||h.regexes){if(h.enums){var U=S();if(U)return U}for(var j=h.regexes?h.regexes:[h.regex],H=0;H<j.length;H++){var q=new RegExp(j[H]).exec(t);if(q)return{name:e,value:h.singleRegexMatchValue?q[1]:q,strValue:""+t,bypass:n}}return null}return h.string?{name:e,value:""+t,strValue:""+t,bypass:n}:h.enums?S():null}},ac=function e(t){if(!(this instanceof e))return new e(t);S(t)?(this._private={cy:t,coreStyle:{}},this.length=0,this.resetToDefault()):Dt("A style must have a core reference")},oc=ac.prototype;oc.instanceString=function(){return"style"},oc.clear=function(){for(var e=this._private,t=e.cy.elements(),n=0;n<this.length;n++)this[n]=void 0;return this.length=0,e.contextStyles={},e.propDiffs={},this.cleanElements(t,!0),t.forEach((function(e){var t=e[0]._private;t.styleDirty=!0,t.appliedInitStyle=!1})),this},oc.resetToDefault=function(){return this.clear(),this.addDefaultStylesheet(),this},oc.core=function(e){return this._private.coreStyle[e]||this.getDefaultProperty(e)},oc.selector=function(e){var t="core"===e?null:new Ys(e),n=this.length++;return this[n]={selector:t,properties:[],mappedProperties:[],index:n},this},oc.css=function(){var e=this,t=arguments;if(1===t.length)for(var n=t[0],r=0;r<e.properties.length;r++){var i=e.properties[r],a=n[i.name];void 0===a&&(a=n[G(i.name)]),void 0!==a&&this.cssRule(i.name,a)}else 2===t.length&&this.cssRule(t[0],t[1]);return this},oc.style=oc.css,oc.cssRule=function(e,t){var n=this.parse(e,t);if(n){var r=this.length-1;this[r].properties.push(n),this[r].properties[n.name]=n,n.name.match(/pie-(\d+)-background-size/)&&n.value&&(this._private.hasPie=!0),n.mapped&&this[r].mappedProperties.push(n),!this[r].selector&&(this._private.coreStyle[n.name]=n)}return this},oc.append=function(e){return O(e)?e.appendToStyle(this):w(e)?this.appendFromJson(e):b(e)&&this.appendFromString(e),this},ac.fromJson=function(e,t){var n=new ac(e);return n.fromJson(t),n},ac.fromString=function(e,t){return new ac(e).fromString(t)},[$u,Qu,Ju,ec,tc,nc,rc,ic].forEach((function(e){Q(oc,e)})),ac.types=oc.types,ac.properties=oc.properties,ac.propertyGroups=oc.propertyGroups,ac.propertyGroupNames=oc.propertyGroupNames,ac.propertyGroupKeys=oc.propertyGroupKeys;var sc={style:function(e){return e&&this.setStyle(e).update(),this._private.style},setStyle:function(e){var t=this._private;return O(e)?t.style=e.generateStyle(this):w(e)?t.style=ac.fromJson(this,e):b(e)?t.style=ac.fromString(this,e):t.style=ac(this),t.style},updateStyle:function(){this.mutableElements().updateStyle()}},lc="single",uc={autolock:function(e){return void 0===e?this._private.autolock:(this._private.autolock=!!e,this)},autoungrabify:function(e){return void 0===e?this._private.autoungrabify:(this._private.autoungrabify=!!e,this)},autounselectify:function(e){return void 0===e?this._private.autounselectify:(this._private.autounselectify=!!e,this)},selectionType:function(e){var t=this._private;return null==t.selectionType&&(t.selectionType=lc),void 0===e?t.selectionType:("additive"!==e&&"single"!==e||(t.selectionType=e),this)},panningEnabled:function(e){return void 0===e?this._private.panningEnabled:(this._private.panningEnabled=!!e,this)},userPanningEnabled:function(e){return void 0===e?this._private.userPanningEnabled:(this._private.userPanningEnabled=!!e,this)},zoomingEnabled:function(e){return void 0===e?this._private.zoomingEnabled:(this._private.zoomingEnabled=!!e,this)},userZoomingEnabled:function(e){return void 0===e?this._private.userZoomingEnabled:(this._private.userZoomingEnabled=!!e,this)},boxSelectionEnabled:function(e){return void 0===e?this._private.boxSelectionEnabled:(this._private.boxSelectionEnabled=!!e,this)},pan:function(){var e,t,n,r,i,a=arguments,o=this._private.pan;switch(a.length){case 0:return o;case 1:if(b(a[0]))return o[e=a[0]];if(E(a[0])){if(!this._private.panningEnabled)return this;r=(n=a[0]).x,i=n.y,_(r)&&(o.x=r),_(i)&&(o.y=i),this.emit("pan viewport")}break;case 2:if(!this._private.panningEnabled)return this;e=a[0],t=a[1],"x"!==e&&"y"!==e||!_(t)||(o[e]=t),this.emit("pan viewport")}return this.notify("viewport"),this},panBy:function(e,t){var n,r,i,a,o,s=arguments,l=this._private.pan;if(!this._private.panningEnabled)return this;switch(s.length){case 1:E(e)&&(a=(i=s[0]).x,o=i.y,_(a)&&(l.x+=a),_(o)&&(l.y+=o),this.emit("pan viewport"));break;case 2:r=t,"x"!==(n=e)&&"y"!==n||!_(r)||(l[n]+=r),this.emit("pan viewport")}return this.notify("viewport"),this},fit:function(e,t){var n=this.getFitViewport(e,t);if(n){var r=this._private;r.zoom=n.zoom,r.pan=n.pan,this.emit("pan zoom viewport"),this.notify("viewport")}return this},getFitViewport:function(e,t){if(_(e)&&void 0===t&&(t=e,e=void 0),this._private.panningEnabled&&this._private.zoomingEnabled){var n;if(b(e)){var r=e;e=this.$(r)}else if(P(e)){var i=e;(n={x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2}).w=n.x2-n.x1,n.h=n.y2-n.y1}else N(e)||(e=this.mutableElements());if(!N(e)||!e.empty()){n=n||e.boundingBox();var a,o=this.width(),s=this.height();if(t=_(t)?t:0,!isNaN(o)&&!isNaN(s)&&o>0&&s>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0)return{zoom:a=(a=(a=Math.min((o-2*t)/n.w,(s-2*t)/n.h))>this._private.maxZoom?this._private.maxZoom:a)<this._private.minZoom?this._private.minZoom:a,pan:{x:(o-a*(n.x1+n.x2))/2,y:(s-a*(n.y1+n.y2))/2}}}}},zoomRange:function(e,t){var n=this._private;if(null==t){var r=e;e=r.min,t=r.max}return _(e)&&_(t)&&e<=t?(n.minZoom=e,n.maxZoom=t):_(e)&&void 0===t&&e<=n.maxZoom?n.minZoom=e:_(t)&&void 0===e&&t>=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t,n,r=this._private,i=r.pan,a=r.zoom,o=!1;if(r.zoomingEnabled||(o=!0),_(e)?n=e:E(e)&&(n=e.level,null!=e.position?t=hn(e.position,a,i):null!=e.renderedPosition&&(t=e.renderedPosition),null==t||r.panningEnabled||(o=!0)),n=(n=n>r.maxZoom?r.maxZoom:n)<r.minZoom?r.minZoom:n,o||!_(n)||n===a||null!=t&&(!_(t.x)||!_(t.y)))return null;if(null!=t){var s=i,l=a,u=n;return{zoomed:!0,panned:!0,zoom:u,pan:{x:-u/l*(t.x-s.x)+t.x,y:-u/l*(t.y-s.y)+t.y}}}return{zoomed:!0,panned:!1,zoom:n,pan:i}},zoom:function(e){if(void 0===e)return this._private.zoom;var t=this.getZoomedViewport(e),n=this._private;return null!=t&&t.zoomed?(n.zoom=t.zoom,t.panned&&(n.pan.x=t.pan.x,n.pan.y=t.pan.y),this.emit("zoom"+(t.panned?" pan":"")+" viewport"),this.notify("viewport"),this):this},viewport:function(e){var t=this._private,n=!0,r=!0,i=[],a=!1,o=!1;if(!e)return this;if(_(e.zoom)||(n=!1),E(e.pan)||(r=!1),!n&&!r)return this;if(n){var s=e.zoom;s<t.minZoom||s>t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=s,i.push("zoom"))}if(r&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;_(l.x)&&(t.pan.x=l.x,o=!1),_(l.y)&&(t.pan.y=l.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(b(e)){var n=e;e=this.mutableElements().filter(n)}else N(e)||(e=this.mutableElements());if(0!==e.length){var r=e.boundingBox(),i=this.width(),a=this.height();return{x:(i-(t=void 0===t?this._private.zoom:t)*(r.x1+r.x2))/2,y:(a-t*(r.y1+r.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container,i=this;return n.sizeCache=n.sizeCache||(r?(e=i.window().getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};uc.centre=uc.center,uc.autolockNodes=uc.autolock,uc.autoungrabifyNodes=uc.autoungrabify;var cc={data:gs.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:gs.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:gs.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:gs.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};cc.attr=cc.data,cc.removeAttr=cc.removeData;var hc=function(e){var t=this,n=(e=Q({},e)).container;n&&!C(n)&&C(n[0])&&(n=n[0]);var r=n?n._cyreg:null;(r=r||{})&&r.cy&&(r.cy.destroy(),r={});var i=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var a=void 0!==d&&void 0!==n&&!e.headless,o=e;o.layout=Q({name:a?"grid":"null"},o.layout),o.renderer=Q({name:a?"canvas":"null"},o.renderer);var s=function(e,t,n){return void 0!==t?t:void 0!==n?n:e},l=this._private={container:n,ready:!1,options:o,elements:new Du(this),listeners:[],aniEles:new Du(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?a:o.styleEnabled,zoom:_(o.zoom)?o.zoom:1,pan:{x:E(o.pan)&&_(o.pan.x)?o.pan.x:0,y:E(o.pan)&&_(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var u=function(e,t){if(e.some(R))return Yi.all(e).then(t);t(e)};l.styleEnabled&&t.setStyle([]);var c=Q({},o,o.renderer);t.initRenderer(c);var h=function(e,n,r){t.notifications(!1);var i=t.mutableElements();i.length>0&&i.remove(),null!=e&&(E(e)||w(e))&&t.add(e),t.one("layoutready",(function(e){t.notifications(!0),t.emit(e),t.one("load",n),t.emitAndNotify("load")})).one("layoutstop",(function(){t.one("done",r),t.emit("done")}));var a=Q({},t._private.options.layout);a.eles=t.elements(),t.layout(a).run()};u([o.style,o.elements],(function(e){var n=e[0],a=e[1];l.styleEnabled&&t.style().append(n),h(a,(function(){t.startAnimationLoop(),l.ready=!0,x(o.ready)&&t.on("ready",o.ready);for(var e=0;e<i.length;e++){var n=i[e];t.on("ready",n)}r&&(r.readies=[]),t.emit("ready")}),o.done)}))},dc=hc.prototype;Q(dc,{instanceString:function(){return"core"},isReady:function(){return this._private.ready},destroyed:function(){return this._private.destroyed},ready:function(e){return this.isReady()?this.emitter().emit("ready",[],e):this.on("ready",e),this},destroy:function(){var e=this;if(!e.destroyed())return e.stopAnimationLoop(),e.destroyRenderer(),this.emit("destroy"),e._private.destroyed=!0,e},hasElementWithId:function(e){return this._private.elements.hasElementWithId(e)},getElementById:function(e){return this._private.elements.getElementById(e)},hasCompoundNodes:function(){return this._private.hasCompoundNodes},headless:function(){return this._private.renderer.isHeadless()},styleEnabled:function(){return this._private.styleEnabled},addToPool:function(e){return this._private.elements.merge(e),this},removeFromPool:function(e){return this._private.elements.unmerge(e),this},container:function(){return this._private.container||null},window:function(){if(null==this._private.container)return d;var e=this._private.container.ownerDocument;return void 0===e||null==e?d:e.defaultView||d},mount:function(e){if(null!=e){var t=this,n=t._private,r=n.options;return!C(e)&&C(e[0])&&(e=e[0]),t.stopAnimationLoop(),t.destroyRenderer(),n.container=e,n.styleEnabled=!0,t.invalidateSize(),t.initRenderer(Q({},r,r.renderer,{name:"null"===r.renderer.name?"canvas":r.renderer.name})),t.startAnimationLoop(),t.style(r.style),t.emit("mount"),t}},unmount:function(){var e=this;return e.stopAnimationLoop(),e.destroyRenderer(),e.initRenderer({name:"null"}),e.emit("unmount"),e},options:function(){return Lt(this._private.options)},json:function(e){var t=this,n=t._private,r=t.mutableElements(),i=function(e){return t.getElementById(e.id())};if(E(e)){if(t.startBatch(),e.elements){var a={},o=function(e,n){for(var r=[],i=[],o=0;o<e.length;o++){var s=e[o];if(s.data.id){var l=""+s.data.id,u=t.getElementById(l);a[l]=!0,0!==u.length?i.push({ele:u,json:s}):n?(s.group=n,r.push(s)):r.push(s)}else Nt("cy.json() cannot handle elements without an ID attribute")}t.add(r);for(var c=0;c<i.length;c++){var h=i[c],d=h.ele,p=h.json;d.json(p)}};if(w(e.elements))o(e.elements);else for(var s=["nodes","edges"],l=0;l<s.length;l++){var u=s[l],c=e.elements[u];w(c)&&o(c,u)}var h=t.collection();r.filter((function(e){return!a[e.id()]})).forEach((function(e){e.isParent()?h.merge(e):e.remove()})),h.forEach((function(e){return e.children().move({parent:null})})),h.forEach((function(e){return i(e).remove()}))}e.style&&t.style(e.style),null!=e.zoom&&e.zoom!==n.zoom&&t.zoom(e.zoom),e.pan&&(e.pan.x===n.pan.x&&e.pan.y===n.pan.y||t.pan(e.pan)),e.data&&t.data(e.data);for(var d=["minZoom","maxZoom","zoomingEnabled","userZoomingEnabled","panningEnabled","userPanningEnabled","boxSelectionEnabled","autolock","autoungrabify","autounselectify","multiClickDebounceTime"],p=0;p<d.length;p++){var g=d[p];null!=e[g]&&t[g](e[g])}return t.endBatch(),this}var f={};e?f.elements=this.elements().map((function(e){return e.json()})):(f.elements={},r.forEach((function(e){var t=e.group();f.elements[t]||(f.elements[t]=[]),f.elements[t].push(e.json())}))),this._private.styleEnabled&&(f.style=t.style().json()),f.data=Lt(t.data());var v=n.options;return f.zoomingEnabled=n.zoomingEnabled,f.userZoomingEnabled=n.userZoomingEnabled,f.zoom=n.zoom,f.minZoom=n.minZoom,f.maxZoom=n.maxZoom,f.panningEnabled=n.panningEnabled,f.userPanningEnabled=n.userPanningEnabled,f.pan=Lt(n.pan),f.boxSelectionEnabled=n.boxSelectionEnabled,f.renderer=Lt(v.renderer),f.hideEdgesOnViewport=v.hideEdgesOnViewport,f.textureOnViewport=v.textureOnViewport,f.wheelSensitivity=v.wheelSensitivity,f.motionBlur=v.motionBlur,f.multiClickDebounceTime=v.multiClickDebounceTime,f}}),dc.$id=dc.getElementById,[Nu,zu,Xu,Vu,Uu,ju,qu,Wu,sc,uc,cc].forEach((function(e){Q(dc,e)}));var pc={fit:!0,directed:!1,padding:30,circle:!1,grid:!1,spacingFactor:1.75,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,roots:void 0,depthSort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}},gc={maximal:!1,acyclic:!1},fc=function(e){return e.scratch("breadthfirst")},vc=function(e,t){return e.scratch("breadthfirst",t)};function yc(e){this.options=Q({},pc,gc,e)}yc.prototype.run=function(){var e,t=this.options,n=t,r=t.cy,i=n.eles,a=i.nodes().filter((function(e){return!e.isParent()})),o=i,s=n.directed,l=n.acyclic||n.maximal||n.maximalAdjustments>0,u=Ln(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(N(n.roots))e=n.roots;else if(w(n.roots)){for(var c=[],h=0;h<n.roots.length;h++){var d=n.roots[h],p=r.getElementById(d);c.push(p)}e=r.collection(c)}else if(b(n.roots))e=r.$(n.roots);else if(s)e=a.roots();else{var g=i.components();e=r.collection();for(var f=function(t){var n=g[t],r=n.maxDegree(!1),i=n.filter((function(e){return e.degree(!1)===r}));e=e.add(i)},v=0;v<g.length;v++)f(v)}var y=[],m={},x=function(e,t){null==y[t]&&(y[t]=[]);var n=y[t].length;y[t].push(e),vc(e,{index:n,depth:t})},E=function(e,t){var n=fc(e),r=n.depth,i=n.index;y[r][i]=null,x(e,t)};o.bfs({roots:e,directed:n.directed,visit:function(e,t,n,r,i){var a=e[0],o=a.id();x(a,i),m[o]=!0}});for(var T=[],_=0;_<a.length;_++){var D=a[_];m[D.id()]||T.push(D)}var C=function(e){for(var t=y[e],n=0;n<t.length;n++){var r=t[n];null!=r?vc(r,{depth:e,index:n}):(t.splice(n,1),n--)}},A=function(){for(var e=0;e<y.length;e++)C(e)},L=function(e,t){for(var r=fc(e),a=e.incomers().filter((function(e){return e.isNode()&&i.has(e)})),o=-1,s=e.id(),l=0;l<a.length;l++){var u=a[l],c=fc(u);o=Math.max(o,c.depth)}if(r.depth<=o){if(!n.acyclic&&t[s])return null;var h=o+1;return E(e,h),t[s]=h,!0}return!1};if(s&&l){var S=[],O={},I=function(e){return S.push(e)},k=function(){return S.shift()};for(a.forEach((function(e){return S.push(e)}));S.length>0;){var M=k(),P=L(M,O);if(P)M.outgoers().filter((function(e){return e.isNode()&&i.has(e)})).forEach(I);else if(null===P){Nt("Detected double maximal shift for node `"+M.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}A();var R=0;if(n.avoidOverlap)for(var B=0;B<a.length;B++){var F=a[B].layoutDimensions(n),z=F.w,G=F.h;R=Math.max(R,z,G)}var Y={},X=function(e){if(Y[e.id()])return Y[e.id()];for(var t=fc(e).depth,n=e.neighborhood(),r=0,i=0,o=0;o<n.length;o++){var s=n[o];if(!s.isEdge()&&!s.isParent()&&a.has(s)){var l=fc(s);if(null!=l){var u=l.index,c=l.depth;if(null!=u&&null!=c){var h=y[c].length;c<t&&(r+=u/h,i++)}}}}return r/=i=Math.max(1,i),0===i&&(r=0),Y[e.id()]=r,r},V=function(e,t){var n=X(e)-X(t);return 0===n?K(e.id(),t.id()):n};void 0!==n.depthSort&&(V=n.depthSort);for(var U=0;U<y.length;U++)y[U].sort(V),C(U);for(var j=[],H=0;H<T.length;H++)j.push(T[H]);y.unshift(j),A();for(var q=0,W=0;W<y.length;W++)q=Math.max(y[W].length,q);var $={x:u.x1+u.w/2,y:u.x1+u.h/2},Z=y.reduce((function(e,t){return Math.max(e,t.length)}),0),Q=function(e){var t=fc(e),r=t.depth,i=t.index,a=y[r].length,o=Math.max(u.w/((n.grid?Z:a)+1),R),s=Math.max(u.h/(y.length+1),R),l=Math.min(u.w/2/y.length,u.h/2/y.length);if(l=Math.max(l,R),n.circle){var c=l*r+l-(y.length>0&&y[0].length<=3?l/2:0),h=2*Math.PI/y[r].length*i;return 0===r&&1===y[0].length&&(c=1),{x:$.x+c*Math.cos(h),y:$.y+c*Math.sin(h)}}return{x:$.x+(i+1-(a+1)/2)*o,y:(r+1)*s}};return i.nodes().layoutPositions(this,n,Q),this};var mc={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function bc(e){this.options=Q({},mc,e)}bc.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var o,s=Ln(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),l={x:s.x1+s.w/2,y:s.y1+s.h/2},u=(void 0===t.sweep?2*Math.PI-2*Math.PI/a.length:t.sweep)/Math.max(1,a.length-1),c=0,h=0;h<a.length;h++){var d=a[h].layoutDimensions(t),p=d.w,g=d.h;c=Math.max(c,p,g)}if(o=_(t.radius)?t.radius:a.length<=1?0:Math.min(s.h,s.w)/2-c,a.length>1&&t.avoidOverlap){c*=1.75;var f=Math.cos(u)-Math.cos(0),v=Math.sin(u)-Math.sin(0),y=Math.sqrt(c*c/(f*f+v*v));o=Math.max(y,o)}var m=function(e,n){var r=t.startAngle+n*u*(i?1:-1),a=o*Math.cos(r),s=o*Math.sin(r);return{x:l.x+a,y:l.y+s}};return r.nodes().layoutPositions(this,t,m),this};var xc,wc={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Ec(e){this.options=Q({},wc,e)}Ec.prototype.run=function(){for(var e=this.options,t=e,n=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,r=e.cy,i=t.eles,a=i.nodes().not(":parent"),o=Ln(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),s={x:o.x1+o.w/2,y:o.y1+o.h/2},l=[],u=0,c=0;c<a.length;c++){var h=a[c],d=void 0;d=t.concentric(h),l.push({value:d,node:h}),h._private.scratch.concentric=d}a.updateStyle();for(var p=0;p<a.length;p++){var g=a[p].layoutDimensions(t);u=Math.max(u,g.w,g.h)}l.sort((function(e,t){return t.value-e.value}));for(var f=t.levelWidth(a),v=[[]],y=v[0],m=0;m<l.length;m++){var b=l[m];y.length>0&&Math.abs(y[0].value-b.value)>=f&&(y=[],v.push(y)),y.push(b)}var x=u+t.minNodeSpacing;if(!t.avoidOverlap){var w=v.length>0&&v[0].length>1,E=(Math.min(o.w,o.h)/2-x)/(v.length+w?1:0);x=Math.min(x,E)}for(var T=0,_=0;_<v.length;_++){var D=v[_],C=void 0===t.sweep?2*Math.PI-2*Math.PI/D.length:t.sweep,N=D.dTheta=C/Math.max(1,D.length-1);if(D.length>1&&t.avoidOverlap){var A=Math.cos(N)-Math.cos(0),L=Math.sin(N)-Math.sin(0),S=Math.sqrt(x*x/(A*A+L*L));T=Math.max(S,T)}D.r=T,T+=x}if(t.equidistant){for(var O=0,I=0,k=0;k<v.length;k++){var M=v[k].r-I;O=Math.max(O,M)}I=0;for(var P=0;P<v.length;P++){var R=v[P];0===P&&(I=R.r),R.r=I,I+=O}}for(var B={},F=0;F<v.length;F++)for(var z=v[F],G=z.dTheta,Y=z.r,X=0;X<z.length;X++){var V=z[X],U=t.startAngle+(n?1:-1)*G*X,j={x:s.x+Y*Math.cos(U),y:s.y+Y*Math.sin(U)};B[V.node.id()]=j}return i.nodes().layoutPositions(this,t,(function(e){var t=e.id();return B[t]})),this};var Tc={ready:function(){},stop:function(){},animate:!0,animationEasing:void 0,animationDuration:void 0,animateFilter:function(e,t){return!0},animationThreshold:250,refresh:20,fit:!0,padding:30,boundingBox:void 0,nodeDimensionsIncludeLabels:!1,randomize:!1,componentSpacing:40,nodeRepulsion:function(e){return 2048},nodeOverlap:4,idealEdgeLength:function(e){return 32},edgeElasticity:function(e){return 32},nestingFactor:1.2,gravity:1,numIter:1e3,initialTemp:1e3,coolingFactor:.99,minTemp:1};function _c(e){this.options=Q({},Tc,e),this.options.layout=this}_c.prototype.run=function(){var e=this.options,t=e.cy,n=this;n.stopped=!1,!0!==e.animate&&!1!==e.animate||n.emit({type:"layoutstart",layout:n}),xc=!0===e.debug;var r=Cc(t,n,e);xc&&Dc(r),e.randomize&&Lc(r);var i=rt(),a=function(){Oc(r,t,e),!0===e.fit&&t.fit(e.padding)},o=function(t){return!(n.stopped||t>=e.numIter||(Ic(r,e),r.temperature=r.temperature*e.coolingFactor,r.temperature<e.minTemp))},s=function(){if(!0===e.animate||!1===e.animate)a(),n.one("layoutstop",e.stop),n.emit({type:"layoutstop",layout:n});else{var t=e.eles.nodes(),i=Sc(r,e,t);t.layoutPositions(n,e,i)}},l=0,u=!0;if(!0===e.animate)!function t(){for(var n=0;u&&n<e.refresh;)u=o(l),l++,n++;u?(rt()-i>=e.animationThreshold&&a(),nt(t)):(Uc(r,e),s())}();else{for(;u;)u=o(l),l++;Uc(r,e),s()}return this},_c.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},_c.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Dc,Cc=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),a=Ln(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},s=n.eles.components(),l={},u=0;u<s.length;u++)for(var c=s[u],h=0;h<c.length;h++)l[c[h].id()]=u;for(u=0;u<o.nodeSize;u++){var d=(y=i[u]).layoutDimensions(n);(M={}).isLocked=y.locked(),M.id=y.data("id"),M.parentId=y.data("parent"),M.cmptId=l[y.id()],M.children=[],M.positionX=y.position("x"),M.positionY=y.position("y"),M.offsetX=0,M.offsetY=0,M.height=d.w,M.width=d.h,M.maxX=M.positionX+M.width/2,M.minX=M.positionX-M.width/2,M.maxY=M.positionY+M.height/2,M.minY=M.positionY-M.height/2,M.padLeft=parseFloat(y.style("padding")),M.padRight=parseFloat(y.style("padding")),M.padTop=parseFloat(y.style("padding")),M.padBottom=parseFloat(y.style("padding")),M.nodeRepulsion=x(n.nodeRepulsion)?n.nodeRepulsion(y):n.nodeRepulsion,o.layoutNodes.push(M),o.idToIndex[M.id]=u}var p=[],g=0,f=-1,v=[];for(u=0;u<o.nodeSize;u++){var y,m=(y=o.layoutNodes[u]).parentId;null!=m?o.layoutNodes[o.idToIndex[m]].children.push(y.id):(p[++f]=y.id,v.push(y.id))}for(o.graphSet.push(v);g<=f;){var b=p[g++],w=o.idToIndex[b],E=o.layoutNodes[w].children;if(E.length>0)for(o.graphSet.push(E),u=0;u<E.length;u++)p[++f]=E[u]}for(u=0;u<o.graphSet.length;u++){var T=o.graphSet[u];for(h=0;h<T.length;h++){var _=o.idToIndex[T[h]];o.indexToGraph[_]=u}}for(u=0;u<o.edgeSize;u++){var D=r[u],C={};C.id=D.data("id"),C.sourceId=D.data("source"),C.targetId=D.data("target");var N=x(n.idealEdgeLength)?n.idealEdgeLength(D):n.idealEdgeLength,A=x(n.edgeElasticity)?n.edgeElasticity(D):n.edgeElasticity,L=o.idToIndex[C.sourceId],S=o.idToIndex[C.targetId];if(o.indexToGraph[L]!=o.indexToGraph[S]){for(var O=Nc(C.sourceId,C.targetId,o),I=o.graphSet[O],k=0,M=o.layoutNodes[L];-1===I.indexOf(M.id);)M=o.layoutNodes[o.idToIndex[M.parentId]],k++;for(M=o.layoutNodes[S];-1===I.indexOf(M.id);)M=o.layoutNodes[o.idToIndex[M.parentId]],k++;N*=k*n.nestingFactor}C.idealLength=N,C.elasticity=A,o.layoutEdges.push(C)}return o},Nc=function(e,t,n){var r=Ac(e,t,0,n);return 2>r.count?0:r.graph},Ac=function e(t,n,r,i){var a=i.graphSet[r];if(-1<a.indexOf(t)&&-1<a.indexOf(n))return{count:2,graph:r};for(var o=0,s=0;s<a.length;s++){var l=a[s],u=i.idToIndex[l],c=i.layoutNodes[u].children;if(0!==c.length){var h=e(t,n,i.indexToGraph[i.idToIndex[c[0]]],i);if(0!==h.count){if(1!==h.count)return h;if(2==++o)break}}}return{count:o,graph:r}},Lc=function(e,t){for(var n=e.clientWidth,r=e.clientHeight,i=0;i<e.nodeSize;i++){var a=e.layoutNodes[i];0!==a.children.length||a.isLocked||(a.positionX=Math.random()*n,a.positionY=Math.random()*r)}},Sc=function(e,t,n){var r=e.boundingBox,i={x1:1/0,x2:-1/0,y1:1/0,y2:-1/0};return t.boundingBox&&(n.forEach((function(t){var n=e.layoutNodes[e.idToIndex[t.data("id")]];i.x1=Math.min(i.x1,n.positionX),i.x2=Math.max(i.x2,n.positionX),i.y1=Math.min(i.y1,n.positionY),i.y2=Math.max(i.y2,n.positionY)})),i.w=i.x2-i.x1,i.h=i.y2-i.y1),function(n,a){var o=e.layoutNodes[e.idToIndex[n.data("id")]];if(t.boundingBox){var s=(o.positionX-i.x1)/i.w,l=(o.positionY-i.y1)/i.h;return{x:r.x1+s*r.w,y:r.y1+l*r.h}}return{x:o.positionX,y:o.positionY}}},Oc=function(e,t,n){var r=n.layout,i=n.eles.nodes(),a=Sc(e,n,i);i.positions(a),!0!==e.ready&&(e.ready=!0,r.one("layoutready",n.ready),r.emit({type:"layoutready",layout:this}))},Ic=function(e,t,n){kc(e,t),Fc(e),zc(e,t),Gc(e),Yc(e)},kc=function(e,t){for(var n=0;n<e.graphSet.length;n++)for(var r=e.graphSet[n],i=r.length,a=0;a<i;a++)for(var o=e.layoutNodes[e.idToIndex[r[a]]],s=a+1;s<i;s++){var l=e.layoutNodes[e.idToIndex[r[s]]];Pc(o,l,e,t)}},Mc=function(e){return-e+2*e*Math.random()},Pc=function(e,t,n,r){if(e.cmptId===t.cmptId||n.isCompound){var i=t.positionX-e.positionX,a=t.positionY-e.positionY,o=1;0===i&&0===a&&(i=Mc(o),a=Mc(o));var s=Rc(e,t,i,a);if(s>0)var l=(c=r.nodeOverlap*s)*i/(v=Math.sqrt(i*i+a*a)),u=c*a/v;else{var c,h=Bc(e,i,a),d=Bc(t,-1*i,-1*a),p=d.x-h.x,g=d.y-h.y,f=p*p+g*g,v=Math.sqrt(f);l=(c=(e.nodeRepulsion+t.nodeRepulsion)/f)*p/v,u=c*g/v}e.isLocked||(e.offsetX-=l,e.offsetY-=u),t.isLocked||(t.offsetX+=l,t.offsetY+=u)}},Rc=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else i=t.maxX-e.minX;if(r>0)var a=e.maxY-t.minY;else a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},Bc=function(e,t,n){var r=e.positionX,i=e.positionY,a=e.height||1,o=e.width||1,s=n/t,l=a/o,u={};return 0===t&&0<n||0===t&&0>n?(u.x=r,u.y=i+a/2,u):0<t&&-1*l<=s&&s<=l?(u.x=r+o/2,u.y=i+o*n/2/t,u):0>t&&-1*l<=s&&s<=l?(u.x=r-o/2,u.y=i-o*n/2/t,u):0<n&&(s<=-1*l||s>=l)?(u.x=r+a*t/2/n,u.y=i+a/2,u):0>n&&(s<=-1*l||s>=l)?(u.x=r-a*t/2/n,u.y=i-a/2,u):u},Fc=function(e,t){for(var n=0;n<e.edgeSize;n++){var r=e.layoutEdges[n],i=e.idToIndex[r.sourceId],a=e.layoutNodes[i],o=e.idToIndex[r.targetId],s=e.layoutNodes[o],l=s.positionX-a.positionX,u=s.positionY-a.positionY;if(0!==l||0!==u){var c=Bc(a,l,u),h=Bc(s,-1*l,-1*u),d=h.x-c.x,p=h.y-c.y,g=Math.sqrt(d*d+p*p),f=Math.pow(r.idealLength-g,2)/r.elasticity;if(0!==g)var v=f*d/g,y=f*p/g;else v=0,y=0;a.isLocked||(a.offsetX+=v,a.offsetY+=y),s.isLocked||(s.offsetX-=v,s.offsetY-=y)}}},zc=function(e,t){if(0!==t.gravity)for(var n=1,r=0;r<e.graphSet.length;r++){var i=e.graphSet[r],a=i.length;if(0===r)var o=e.clientHeight/2,s=e.clientWidth/2;else{var l=e.layoutNodes[e.idToIndex[i[0]]],u=e.layoutNodes[e.idToIndex[l.parentId]];o=u.positionX,s=u.positionY}for(var c=0;c<a;c++){var h=e.layoutNodes[e.idToIndex[i[c]]];if(!h.isLocked){var d=o-h.positionX,p=s-h.positionY,g=Math.sqrt(d*d+p*p);if(g>n){var f=t.gravity*d/g,v=t.gravity*p/g;h.offsetX+=f,h.offsetY+=v}}}}},Gc=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var a=n[r++],o=e.idToIndex[a],s=e.layoutNodes[o],l=s.children;if(0<l.length&&!s.isLocked){for(var u=s.offsetX,c=s.offsetY,h=0;h<l.length;h++){var d=e.layoutNodes[e.idToIndex[l[h]]];d.offsetX+=u,d.offsetY+=c,n[++i]=l[h]}s.offsetX=0,s.offsetY=0}}},Yc=function(e,t){for(var n=0;n<e.nodeSize;n++)0<(i=e.layoutNodes[n]).children.length&&(i.maxX=void 0,i.minX=void 0,i.maxY=void 0,i.minY=void 0);for(n=0;n<e.nodeSize;n++)if(!(0<(i=e.layoutNodes[n]).children.length||i.isLocked)){var r=Xc(i.offsetX,i.offsetY,e.temperature);i.positionX+=r.x,i.positionY+=r.y,i.offsetX=0,i.offsetY=0,i.minX=i.positionX-i.width,i.maxX=i.positionX+i.width,i.minY=i.positionY-i.height,i.maxY=i.positionY+i.height,Vc(i,e)}for(n=0;n<e.nodeSize;n++){var i;0<(i=e.layoutNodes[n]).children.length&&!i.isLocked&&(i.positionX=(i.maxX+i.minX)/2,i.positionY=(i.maxY+i.minY)/2,i.width=i.maxX-i.minX,i.height=i.maxY-i.minY)}},Xc=function(e,t,n){var r=Math.sqrt(e*e+t*t);if(r>n)var i={x:n*e/r,y:n*t/r};else i={x:e,y:t};return i},Vc=function e(t,n){var r=t.parentId;if(null!=r){var i=n.layoutNodes[n.idToIndex[r]],a=!1;return(null==i.maxX||t.maxX+i.padRight>i.maxX)&&(i.maxX=t.maxX+i.padRight,a=!0),(null==i.minX||t.minX-i.padLeft<i.minX)&&(i.minX=t.minX-i.padLeft,a=!0),(null==i.maxY||t.maxY+i.padBottom>i.maxY)&&(i.maxY=t.maxY+i.padBottom,a=!0),(null==i.minY||t.minY-i.padTop<i.minY)&&(i.minY=t.minY-i.padTop,a=!0),a?e(i,n):void 0}},Uc=function(e,t){for(var n=e.layoutNodes,r=[],i=0;i<n.length;i++){var a=n[i],o=a.cmptId;(r[o]=r[o]||[]).push(a)}var s=0;for(i=0;i<r.length;i++)if(f=r[i]){f.x1=1/0,f.x2=-1/0,f.y1=1/0,f.y2=-1/0;for(var l=0;l<f.length;l++){var u=f[l];f.x1=Math.min(f.x1,u.positionX-u.width/2),f.x2=Math.max(f.x2,u.positionX+u.width/2),f.y1=Math.min(f.y1,u.positionY-u.height/2),f.y2=Math.max(f.y2,u.positionY+u.height/2)}f.w=f.x2-f.x1,f.h=f.y2-f.y1,s+=f.w*f.h}r.sort((function(e,t){return t.w*t.h-e.w*e.h}));var c=0,h=0,d=0,p=0,g=Math.sqrt(s)*e.clientWidth/e.clientHeight;for(i=0;i<r.length;i++){var f;if(f=r[i]){for(l=0;l<f.length;l++)(u=f[l]).isLocked||(u.positionX+=c-f.x1,u.positionY+=h-f.y1);c+=f.w+t.componentSpacing,d+=f.w+t.componentSpacing,p=Math.max(p,f.h),d>g&&(h+=p+t.componentSpacing,c=0,d=0,p=0)}}},jc={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Hc(e){this.options=Q({},jc,e)}Hc.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,i=r.nodes().not(":parent");t.sort&&(i=i.sort(t.sort));var a=Ln(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(0===a.h||0===a.w)r.nodes().layoutPositions(this,t,(function(e){return{x:a.x1,y:a.y1}}));else{var o=i.size(),s=Math.sqrt(o*a.h/a.w),l=Math.round(s),u=Math.round(a.w/a.h*s),c=function(e){if(null==e)return Math.min(l,u);Math.min(l,u)==l?l=e:u=e},h=function(e){if(null==e)return Math.max(l,u);Math.max(l,u)==l?l=e:u=e},d=t.rows,p=null!=t.cols?t.cols:t.columns;if(null!=d&&null!=p)l=d,u=p;else if(null!=d&&null==p)l=d,u=Math.ceil(o/l);else if(null==d&&null!=p)u=p,l=Math.ceil(o/u);else if(u*l>o){var g=c(),f=h();(g-1)*f>=o?c(g-1):(f-1)*g>=o&&h(f-1)}else for(;u*l<o;){var v=c(),y=h();(y+1)*v>=o?h(y+1):c(v+1)}var m=a.w/u,b=a.h/l;if(t.condense&&(m=0,b=0),t.avoidOverlap)for(var x=0;x<i.length;x++){var w=i[x],E=w._private.position;null!=E.x&&null!=E.y||(E.x=0,E.y=0);var T=w.layoutDimensions(t),_=t.avoidOverlapPadding,D=T.w+_,C=T.h+_;m=Math.max(m,D),b=Math.max(b,C)}for(var N={},A=function(e,t){return!!N["c-"+e+"-"+t]},L=function(e,t){N["c-"+e+"-"+t]=!0},S=0,O=0,I=function(){++O>=u&&(O=0,S++)},k={},M=0;M<i.length;M++){var P=i[M],R=t.position(P);if(R&&(void 0!==R.row||void 0!==R.col)){var B={row:R.row,col:R.col};if(void 0===B.col)for(B.col=0;A(B.row,B.col);)B.col++;else if(void 0===B.row)for(B.row=0;A(B.row,B.col);)B.row++;k[P.id()]=B,L(B.row,B.col)}}var F=function(e,t){var n,r;if(e.locked()||e.isParent())return!1;var i=k[e.id()];if(i)n=i.col*m+m/2+a.x1,r=i.row*b+b/2+a.y1;else{for(;A(S,O);)I();n=O*m+m/2+a.x1,r=S*b+b/2+a.y1,L(S,O),I()}return{x:n,y:r}};i.layoutPositions(this,t,F)}return this};var qc={ready:function(){},stop:function(){}};function Wc(e){this.options=Q({},qc,e)}Wc.prototype.run=function(){var e=this.options,t=e.eles,n=this;return e.cy,n.emit("layoutstart"),t.nodes().positions((function(){return{x:0,y:0}})),n.one("layoutready",e.ready),n.emit("layoutready"),n.one("layoutstop",e.stop),n.emit("layoutstop"),this},Wc.prototype.stop=function(){return this};var $c={positions:void 0,zoom:void 0,pan:void 0,fit:!0,padding:30,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Kc(e){this.options=Q({},$c,e)}Kc.prototype.run=function(){var e=this.options,t=e.eles.nodes(),n=x(e.positions);function r(t){if(null==e.positions)return cn(t.position());if(n)return e.positions(t);var r=e.positions[t._private.data.id];return null==r?null:r}return t.layoutPositions(this,e,(function(e,t){var n=r(e);return!e.locked()&&null!=n&&n})),this};var Zc={fit:!0,padding:30,boundingBox:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function Qc(e){this.options=Q({},Zc,e)}Qc.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles,r=Ln(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()}),i=function(e,t){return{x:r.x1+Math.round(Math.random()*r.w),y:r.y1+Math.round(Math.random()*r.h)}};return n.nodes().layoutPositions(this,e,i),this};var Jc=[{name:"breadthfirst",impl:yc},{name:"circle",impl:bc},{name:"concentric",impl:Ec},{name:"cose",impl:_c},{name:"grid",impl:Hc},{name:"null",impl:Wc},{name:"preset",impl:Kc},{name:"random",impl:Qc}];function eh(e){this.options=e,this.notifications=0}var th=function(){},nh=function(){throw new Error("A headless instance can not render images")};eh.prototype={recalculateRenderedStyle:th,notify:function(){this.notifications++},init:th,isHeadless:function(){return!0},png:nh,jpg:nh};var rh={arrowShapeWidth:.3,registerArrowShapes:function(){var e=this.arrowShapes={},t=this,n=function(e,t,n,r,i,a,o){var s=i.x-n/2-o,l=i.x+n/2+o,u=i.y-n/2-o,c=i.y+n/2+o;return s<=e&&e<=l&&u<=t&&t<=c},r=function(e,t,n,r,i){var a=e*Math.cos(r)-t*Math.sin(r),o=(e*Math.sin(r)+t*Math.cos(r))*n;return{x:a*n+i.x,y:o+i.y}},i=function(e,t,n,i){for(var a=[],o=0;o<e.length;o+=2){var s=e[o],l=e[o+1];a.push(r(s,l,t,n,i))}return a},a=function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(r.x,r.y)}return t},o=function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").pfValue*2},s=function(r,s){b(s)&&(s=e[s]),e[r]=Q({name:r,points:[-.15,-.3,.15,-.3,.15,.3,-.15,.3],collide:function(e,t,n,r,o,s){var l=a(i(this.points,n+2*s,r,o));return Wn(e,t,l)},roughCollide:n,draw:function(e,n,r,a){var o=i(this.points,n,r,a);t.arrowShapeImpl("polygon")(e,o)},spacing:function(e){return 0},gap:o},s)};s("none",{collide:Et,roughCollide:Et,draw:_t,spacing:Tt,gap:Tt}),s("triangle",{points:[-.15,-.3,0,0,.15,-.3]}),s("arrow","triangle"),s("triangle-backcurve",{points:e.triangle.points,controlPoint:[0,-.15],roughCollide:n,draw:function(e,n,a,o,s){var l=i(this.points,n,a,o),u=this.controlPoint,c=r(u[0],u[1],n,a,o);t.arrowShapeImpl(this.name)(e,l,c)},gap:function(e){return.8*o(e)}}),s("triangle-tee",{points:[0,0,.15,-.3,-.15,-.3,0,0],pointsTee:[-.15,-.4,-.15,-.5,.15,-.5,.15,-.4],collide:function(e,t,n,r,o,s,l){var u=a(i(this.points,n+2*l,r,o)),c=a(i(this.pointsTee,n+2*l,r,o));return Wn(e,t,u)||Wn(e,t,c)},draw:function(e,n,r,a,o){var s=i(this.points,n,r,a),l=i(this.pointsTee,n,r,a);t.arrowShapeImpl(this.name)(e,s,l)}}),s("circle-triangle",{radius:.15,pointsTr:[0,-.15,.15,-.45,-.15,-.45,0,-.15],collide:function(e,t,n,r,o,s,l){var u=o,c=Math.pow(u.x-e,2)+Math.pow(u.y-t,2)<=Math.pow((n+2*l)*this.radius,2),h=a(i(this.points,n+2*l,r,o));return Wn(e,t,h)||c},draw:function(e,n,r,a,o){var s=i(this.pointsTr,n,r,a);t.arrowShapeImpl(this.name)(e,s,a.x,a.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),s("triangle-cross",{points:[0,0,.15,-.3,-.15,-.3,0,0],baseCrossLinePts:[-.15,-.4,-.15,-.4,.15,-.4,.15,-.4],crossLinePts:function(e,t){var n=this.baseCrossLinePts.slice(),r=t/e,i=3,a=5;return n[i]=n[i]-r,n[a]=n[a]-r,n},collide:function(e,t,n,r,o,s,l){var u=a(i(this.points,n+2*l,r,o)),c=a(i(this.crossLinePts(n,s),n+2*l,r,o));return Wn(e,t,u)||Wn(e,t,c)},draw:function(e,n,r,a,o){var s=i(this.points,n,r,a),l=i(this.crossLinePts(n,o),n,r,a);t.arrowShapeImpl(this.name)(e,s,l)}}),s("vee",{points:[-.15,-.3,0,0,.15,-.3,0,-.15],gap:function(e){return.525*o(e)}}),s("circle",{radius:.15,collide:function(e,t,n,r,i,a,o){var s=i;return Math.pow(s.x-e,2)+Math.pow(s.y-t,2)<=Math.pow((n+2*o)*this.radius,2)},draw:function(e,n,r,i,a){t.arrowShapeImpl(this.name)(e,i.x,i.y,this.radius*n)},spacing:function(e){return t.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.radius}}),s("tee",{points:[-.15,0,-.15,-.1,.15,-.1,.15,0],spacing:function(e){return 1},gap:function(e){return 1}}),s("square",{points:[-.15,0,.15,0,.15,-.3,-.15,-.3]}),s("diamond",{points:[-.15,-.15,0,-.3,.15,-.15,0,0],gap:function(e){return e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}}),s("chevron",{points:[0,0,-.15,-.15,-.1,-.2,0,-.1,.1,-.2,.15,-.15],gap:function(e){return.95*e.pstyle("width").pfValue*e.pstyle("arrow-scale").value}})}},ih={projectIntoViewport:function(e,t){var n=this.cy,r=this.findContainerClientCoords(),i=r[0],a=r[1],o=r[4],s=n.pan(),l=n.zoom();return[((e-i)/o-s.x)/l,((t-a)/o-s.y)/l]},findContainerClientCoords:function(){if(this.containerBB)return this.containerBB;var e=this.container,t=e.getBoundingClientRect(),n=this.cy.window().getComputedStyle(e),r=function(e){return parseFloat(n.getPropertyValue(e))},i={left:r("padding-left"),right:r("padding-right"),top:r("padding-top"),bottom:r("padding-bottom")},a={left:r("border-left-width"),right:r("border-right-width"),top:r("border-top-width"),bottom:r("border-bottom-width")},o=e.clientWidth,s=e.clientHeight,l=i.left+i.right,u=i.top+i.bottom,c=a.left+a.right,h=t.width/(o+c),d=o-l,p=s-u,g=t.left+i.left+a.left,f=t.top+i.top+a.top;return this.containerBB=[g,f,d,p,h]},invalidateContainerClientCoordsCache:function(){this.containerBB=null},findNearestElement:function(e,t,n,r){return this.findNearestElements(e,t,n,r)[0]},findNearestElements:function(e,t,n,r){var i,a,o=this,s=this,l=s.getCachedZSortedEles(),u=[],c=s.cy.zoom(),h=s.cy.hasCompoundNodes(),d=(r?24:8)/c,p=(r?8:2)/c,g=(r?8:2)/c,f=1/0;function v(e,t){if(e.isNode()){if(a)return;a=e,u.push(e)}if(e.isEdge()&&(null==t||t<f))if(i){if(i.pstyle("z-compound-depth").value===e.pstyle("z-compound-depth").value&&i.pstyle("z-compound-depth").value===e.pstyle("z-compound-depth").value)for(var n=0;n<u.length;n++)if(u[n].isEdge()){u[n]=e,i=e,f=null!=t?t:f;break}}else u.push(e),i=e,f=null!=t?t:f}function y(n){var r=n.outerWidth()+2*p,i=n.outerHeight()+2*p,a=r/2,l=i/2,u=n.position();if(u.x-a<=e&&e<=u.x+a&&u.y-l<=t&&t<=u.y+l&&s.nodeShapes[o.getNodeShape(n)].checkPoint(e,t,0,r,i,u.x,u.y))return v(n,0),!0}function m(n){var r,i=n._private,a=i.rscratch,l=n.pstyle("width").pfValue,c=n.pstyle("arrow-scale").value,p=l/2+d,g=p*p,f=2*p,m=i.source,b=i.target;if("segments"===a.edgeType||"straight"===a.edgeType||"haystack"===a.edgeType){for(var x=a.allpts,w=0;w+3<x.length;w+=2)if(Xn(e,t,x[w],x[w+1],x[w+2],x[w+3],f)&&g>(r=qn(e,t,x[w],x[w+1],x[w+2],x[w+3])))return v(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType)for(x=a.allpts,w=0;w+5<a.allpts.length;w+=4)if(Vn(e,t,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5],f)&&g>(r=Hn(e,t,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5])))return v(n,r),!0;m=m||i.source,b=b||i.target;var E=o.getArrowWidth(l,c),T=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}];for(w=0;w<T.length;w++){var _=T[w],D=s.arrowShapes[n.pstyle(_.name+"-arrow-shape").value],C=n.pstyle("width").pfValue;if(D.roughCollide(e,t,E,_.angle,{x:_.x,y:_.y},C,d)&&D.collide(e,t,E,_.angle,{x:_.x,y:_.y},C,d))return v(n),!0}h&&u.length>0&&(y(m),y(b))}function b(e,t,n){return Ft(e,t,n)}function x(n,r){var i,a=n._private,o=g;i=r?r+"-":"",n.boundingBox();var s=a.labelBounds[r||"main"],l=n.pstyle(i+"label").value;if("yes"===n.pstyle("text-events").strValue&&l){var u=b(a.rscratch,"labelX",r),c=b(a.rscratch,"labelY",r),h=b(a.rscratch,"labelAngle",r),d=n.pstyle(i+"text-margin-x").pfValue,p=n.pstyle(i+"text-margin-y").pfValue,f=s.x1-o-d,y=s.x2+o-d,m=s.y1-o-p,x=s.y2+o-p;if(h){var w=Math.cos(h),E=Math.sin(h),T=function(e,t){return{x:(e-=u)*w-(t-=c)*E+u,y:e*E+t*w+c}},_=T(f,m),D=T(f,x),C=T(y,m),N=T(y,x),A=[_.x+d,_.y+p,C.x+d,C.y+p,N.x+d,N.y+p,D.x+d,D.y+p];if(Wn(e,t,A))return v(n),!0}else if(Fn(s,e,t))return v(n),!0}}n&&(l=l.interactive);for(var w=l.length-1;w>=0;w--){var E=l[w];E.isNode()?y(E)||x(E):m(E)||x(E)||x(E,"source")||x(E,"target")}return u},getAllInBox:function(e,t,n,r){for(var i=this.getCachedZSortedEles().interactive,a=[],o=Math.min(e,n),s=Math.max(e,n),l=Math.min(t,r),u=Math.max(t,r),c=Ln({x1:e=o,y1:t=l,x2:n=s,y2:r=u}),h=0;h<i.length;h++){var d=i[h];if(d.isNode()){var p=d,g=p.boundingBox({includeNodes:!0,includeEdges:!1,includeLabels:!1});Bn(c,g)&&!Gn(g,c)&&a.push(p)}else{var f=d,v=f._private,y=v.rscratch;if(null!=y.startX&&null!=y.startY&&!Fn(c,y.startX,y.startY))continue;if(null!=y.endX&&null!=y.endY&&!Fn(c,y.endX,y.endY))continue;if("bezier"===y.edgeType||"multibezier"===y.edgeType||"self"===y.edgeType||"compound"===y.edgeType||"segments"===y.edgeType||"haystack"===y.edgeType){for(var m=v.rstyle.bezierPts||v.rstyle.linePts||v.rstyle.haystackPts,b=!0,x=0;x<m.length;x++)if(!zn(c,m[x])){b=!1;break}b&&a.push(f)}else"haystack"!==y.edgeType&&"straight"!==y.edgeType||a.push(f)}}return a}},ah={calculateArrowAngles:function(e){var t,n,r,i,a,o,s=e._private.rscratch,l="haystack"===s.edgeType,u="bezier"===s.edgeType,c="multibezier"===s.edgeType,h="segments"===s.edgeType,d="compound"===s.edgeType,p="self"===s.edgeType;if(l?(r=s.haystackPts[0],i=s.haystackPts[1],a=s.haystackPts[2],o=s.haystackPts[3]):(r=s.arrowStartX,i=s.arrowStartY,a=s.arrowEndX,o=s.arrowEndY),f=s.midX,v=s.midY,h)t=r-s.segpts[0],n=i-s.segpts[1];else if(c||d||p||u){var g=s.allpts;t=r-Dn(g[0],g[2],g[4],.1),n=i-Dn(g[1],g[3],g[5],.1)}else t=r-f,n=i-v;s.srcArrowAngle=bn(t,n);var f=s.midX,v=s.midY;if(l&&(f=(r+a)/2,v=(i+o)/2),t=a-r,n=o-i,h)if((g=s.allpts).length/2%2==0){var y=(m=g.length/2)-2;t=g[m]-g[y],n=g[m+1]-g[y+1]}else{y=(m=g.length/2-1)-2;var m,b=m+2;t=g[m]-g[y],n=g[m+1]-g[y+1]}else if(c||d||p){var x,w,E,T,g=s.allpts;if(s.ctrlpts.length/2%2==0){var _=2+(D=2+(C=g.length/2-1));x=Dn(g[C],g[D],g[_],0),w=Dn(g[C+1],g[D+1],g[_+1],0),E=Dn(g[C],g[D],g[_],1e-4),T=Dn(g[C+1],g[D+1],g[_+1],1e-4)}else{var D,C;_=2+(D=g.length/2-1),x=Dn(g[C=D-2],g[D],g[_],.4999),w=Dn(g[C+1],g[D+1],g[_+1],.4999),E=Dn(g[C],g[D],g[_],.5),T=Dn(g[C+1],g[D+1],g[_+1],.5)}t=E-x,n=T-w}if(s.midtgtArrowAngle=bn(t,n),s.midDispX=t,s.midDispY=n,t*=-1,n*=-1,h&&((g=s.allpts).length/2%2==0||(t=-(g[b=2+(m=g.length/2-1)]-g[m]),n=-(g[b+1]-g[m+1]))),s.midsrcArrowAngle=bn(t,n),h)t=a-s.segpts[s.segpts.length-2],n=o-s.segpts[s.segpts.length-1];else if(c||d||p||u){var N=(g=s.allpts).length;t=a-Dn(g[N-6],g[N-4],g[N-2],.9),n=o-Dn(g[N-5],g[N-3],g[N-1],.9)}else t=a-f,n=o-v;s.tgtArrowAngle=bn(t,n)}};ah.getArrowWidth=ah.getArrowHeight=function(e,t){var n=this.arrowWidthCache=this.arrowWidthCache||{},r=n[e+", "+t];return r||(r=Math.max(Math.pow(13.37*e,.9),29)*t,n[e+", "+t]=r,r)};var oh={};function sh(e){var t=[];if(null!=e){for(var n=0;n<e.length;n+=2){var r=e[n],i=e[n+1];t.push({x:r,y:i})}return t}}oh.findHaystackPoints=function(e){for(var t=0;t<e.length;t++){var n=e[t],r=n._private,i=r.rscratch;if(!i.haystack){var a=2*Math.random()*Math.PI;i.source={x:Math.cos(a),y:Math.sin(a)},a=2*Math.random()*Math.PI,i.target={x:Math.cos(a),y:Math.sin(a)}}var o=r.source,s=r.target,l=o.position(),u=s.position(),c=o.width(),h=s.width(),d=o.height(),p=s.height(),g=n.pstyle("haystack-radius").value/2;i.haystackPts=i.allpts=[i.source.x*c*g+l.x,i.source.y*d*g+l.y,i.target.x*h*g+u.x,i.target.y*p*g+u.y],i.midX=(i.allpts[0]+i.allpts[2])/2,i.midY=(i.allpts[1]+i.allpts[3])/2,i.edgeType="haystack",i.haystack=!0,this.storeEdgeProjections(n),this.calculateArrowAngles(n),this.recalculateEdgeLabelProjections(n),this.calculateLabelAngles(n)}},oh.findSegmentsPoints=function(e,t){var n=e._private.rscratch,r=t.posPts,i=t.intersectionPts,a=t.vectorNormInverse,o=e.pstyle("edge-distances").value,s=e.pstyle("segment-weights"),l=e.pstyle("segment-distances"),u=Math.min(s.pfValue.length,l.pfValue.length);n.edgeType="segments",n.segpts=[];for(var c=0;c<u;c++){var h=s.pfValue[c],d=l.pfValue[c],p=1-h,g=h,f="node-position"===o?r:i,v={x:f.x1*p+f.x2*g,y:f.y1*p+f.y2*g};n.segpts.push(v.x+a.x*d,v.y+a.y*d)}},oh.findLoopPoints=function(e,t,n,r){var i=e._private.rscratch,a=t.dirCounts,o=t.srcPos,s=e.pstyle("control-point-distances"),l=s?s.pfValue[0]:void 0,u=e.pstyle("loop-direction").pfValue,c=e.pstyle("loop-sweep").pfValue,h=e.pstyle("control-point-step-size").pfValue;i.edgeType="self";var d=n,p=h;r&&(d=0,p=l);var g=u-Math.PI/2,f=g-c/2,v=g+c/2,y=String(u+"_"+c);d=void 0===a[y]?a[y]=0:++a[y],i.ctrlpts=[o.x+1.4*Math.cos(f)*p*(d/3+1),o.y+1.4*Math.sin(f)*p*(d/3+1),o.x+1.4*Math.cos(v)*p*(d/3+1),o.y+1.4*Math.sin(v)*p*(d/3+1)]},oh.findCompoundLoopPoints=function(e,t,n,r){var i=e._private.rscratch;i.edgeType="compound";var a=t.srcPos,o=t.tgtPos,s=t.srcW,l=t.srcH,u=t.tgtW,c=t.tgtH,h=e.pstyle("control-point-step-size").pfValue,d=e.pstyle("control-point-distances"),p=d?d.pfValue[0]:void 0,g=n,f=h;r&&(g=0,f=p);var v=50,y={x:a.x-s/2,y:a.y-l/2},m={x:o.x-u/2,y:o.y-c/2},b={x:Math.min(y.x,m.x),y:Math.min(y.y,m.y)},x=.5,w=Math.max(x,Math.log(.01*s)),E=Math.max(x,Math.log(.01*u));i.ctrlpts=[b.x,b.y-(1+Math.pow(v,1.12)/100)*f*(g/3+1)*w,b.x-(1+Math.pow(v,1.12)/100)*f*(g/3+1)*E,b.y]},oh.findStraightEdgePoints=function(e){e._private.rscratch.edgeType="straight"},oh.findBezierPoints=function(e,t,n,r,i){var a=e._private.rscratch,o=t.vectorNormInverse,s=t.posPts,l=t.intersectionPts,u=e.pstyle("edge-distances").value,c=e.pstyle("control-point-step-size").pfValue,h=e.pstyle("control-point-distances"),d=e.pstyle("control-point-weights"),p=h&&d?Math.min(h.value.length,d.value.length):1,g=h?h.pfValue[0]:void 0,f=d.value[0],v=r;a.edgeType=v?"multibezier":"bezier",a.ctrlpts=[];for(var y=0;y<p;y++){var m=(.5-t.eles.length/2+n)*c*(i?-1:1),b=void 0,x=wn(m);v&&(g=h?h.pfValue[y]:c,f=d.value[y]);var w=void 0!==(b=r?g:void 0!==g?x*g:void 0)?b:m,E=1-f,T=f,_="node-position"===u?s:l,D={x:_.x1*E+_.x2*T,y:_.y1*E+_.y2*T};a.ctrlpts.push(D.x+o.x*w,D.y+o.y*w)}},oh.findTaxiPoints=function(e,t){var n=e._private.rscratch;n.edgeType="segments";var r="vertical",i="horizontal",a="leftward",o="rightward",s="downward",l="upward",u="auto",c=t.posPts,h=t.srcW,d=t.srcH,p=t.tgtW,g=t.tgtH,f="node-position"!==e.pstyle("edge-distances").value,v=e.pstyle("taxi-direction").value,y=v,m=e.pstyle("taxi-turn"),b="%"===m.units,x=m.pfValue,w=x<0,E=e.pstyle("taxi-turn-min-distance").pfValue,T=f?(h+p)/2:0,_=f?(d+g)/2:0,D=c.x2-c.x1,C=c.y2-c.y1,N=function(e,t){return e>0?Math.max(e-t,0):Math.min(e+t,0)},A=N(D,T),L=N(C,_),S=!1;y===u?v=Math.abs(A)>Math.abs(L)?i:r:y===l||y===s?(v=r,S=!0):y!==a&&y!==o||(v=i,S=!0);var O,I=v===r,k=I?L:A,M=I?C:D,P=wn(M),R=!1;S&&(b||w)||!(y===s&&M<0||y===l&&M>0||y===a&&M>0||y===o&&M<0)||(k=(P*=-1)*Math.abs(k),R=!0);var B=function(e){return Math.abs(e)<E||Math.abs(e)>=Math.abs(k)},F=B(O=b?(x<0?1+x:x)*k:(x<0?k:0)+x*P),z=B(Math.abs(k)-Math.abs(O));if(!F&&!z||R)if(I){var G=c.y1+O+(f?d/2*P:0),Y=c.x1,X=c.x2;n.segpts=[Y,G,X,G]}else{var V=c.x1+O+(f?h/2*P:0),U=c.y1,j=c.y2;n.segpts=[V,U,V,j]}else if(I){var H=Math.abs(M)<=d/2,q=Math.abs(D)<=p/2;if(H){var W=(c.x1+c.x2)/2,$=c.y1,K=c.y2;n.segpts=[W,$,W,K]}else if(q){var Z=(c.y1+c.y2)/2,Q=c.x1,J=c.x2;n.segpts=[Q,Z,J,Z]}else n.segpts=[c.x1,c.y2]}else{var ee=Math.abs(M)<=h/2,te=Math.abs(C)<=g/2;if(ee){var ne=(c.y1+c.y2)/2,re=c.x1,ie=c.x2;n.segpts=[re,ne,ie,ne]}else if(te){var ae=(c.x1+c.x2)/2,oe=c.y1,se=c.y2;n.segpts=[ae,oe,ae,se]}else n.segpts=[c.x2,c.y1]}},oh.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if("bezier"===n.edgeType){var r=t.srcPos,i=t.tgtPos,a=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,c=t.tgtShape,h=!_(n.startX)||!_(n.startY),d=!_(n.arrowStartX)||!_(n.arrowStartY),p=!_(n.endX)||!_(n.endY),g=!_(n.arrowEndX)||!_(n.arrowEndY),f=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth*3,v=En({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),y=v<f,m=En({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.endX,y:n.endY}),b=m<f,x=!1;if(h||d||y){x=!0;var w={x:n.ctrlpts[0]-r.x,y:n.ctrlpts[1]-r.y},E=Math.sqrt(w.x*w.x+w.y*w.y),T={x:w.x/E,y:w.y/E},D=Math.max(a,o),C={x:n.ctrlpts[0]+2*T.x*D,y:n.ctrlpts[1]+2*T.y*D},N=u.intersectLine(r.x,r.y,a,o,C.x,C.y,0);y?(n.ctrlpts[0]=n.ctrlpts[0]+T.x*(f-v),n.ctrlpts[1]=n.ctrlpts[1]+T.y*(f-v)):(n.ctrlpts[0]=N[0]+T.x*f,n.ctrlpts[1]=N[1]+T.y*f)}if(p||g||b){x=!0;var A={x:n.ctrlpts[0]-i.x,y:n.ctrlpts[1]-i.y},L=Math.sqrt(A.x*A.x+A.y*A.y),S={x:A.x/L,y:A.y/L},O=Math.max(a,o),I={x:n.ctrlpts[0]+2*S.x*O,y:n.ctrlpts[1]+2*S.y*O},k=c.intersectLine(i.x,i.y,s,l,I.x,I.y,0);b?(n.ctrlpts[0]=n.ctrlpts[0]+S.x*(f-m),n.ctrlpts[1]=n.ctrlpts[1]+S.y*(f-m)):(n.ctrlpts[0]=k[0]+S.x*f,n.ctrlpts[1]=k[1]+S.y*f)}x&&this.findEndpoints(e)}},oh.storeAllpts=function(e){var t=e._private.rscratch;if("multibezier"===t.edgeType||"bezier"===t.edgeType||"self"===t.edgeType||"compound"===t.edgeType){t.allpts=[],t.allpts.push(t.startX,t.startY);for(var n=0;n+1<t.ctrlpts.length;n+=2)t.allpts.push(t.ctrlpts[n],t.ctrlpts[n+1]),n+3<t.ctrlpts.length&&t.allpts.push((t.ctrlpts[n]+t.ctrlpts[n+2])/2,(t.ctrlpts[n+1]+t.ctrlpts[n+3])/2);var r,i;t.allpts.push(t.endX,t.endY),t.ctrlpts.length/2%2==0?(r=t.allpts.length/2-1,t.midX=t.allpts[r],t.midY=t.allpts[r+1]):(r=t.allpts.length/2-3,i=.5,t.midX=Dn(t.allpts[r],t.allpts[r+2],t.allpts[r+4],i),t.midY=Dn(t.allpts[r+1],t.allpts[r+3],t.allpts[r+5],i))}else if("straight"===t.edgeType)t.allpts=[t.startX,t.startY,t.endX,t.endY],t.midX=(t.startX+t.endX+t.arrowStartX+t.arrowEndX)/4,t.midY=(t.startY+t.endY+t.arrowStartY+t.arrowEndY)/4;else if("segments"===t.edgeType)if(t.allpts=[],t.allpts.push(t.startX,t.startY),t.allpts.push.apply(t.allpts,t.segpts),t.allpts.push(t.endX,t.endY),t.segpts.length%4==0){var a=t.segpts.length/2,o=a-2;t.midX=(t.segpts[o]+t.segpts[a])/2,t.midY=(t.segpts[o+1]+t.segpts[a+1])/2}else{var s=t.segpts.length/2-1;t.midX=t.segpts[s],t.midY=t.segpts[s+1]}},oh.checkForInvalidEdgeWarning=function(e){var t=e[0]._private.rscratch;t.nodesOverlap||_(t.startX)&&_(t.startY)&&_(t.endX)&&_(t.endY)?t.loggedErr=!1:t.loggedErr||(t.loggedErr=!0,Nt("Edge `"+e.id()+"` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap."))},oh.findEdgeControlPoints=function(e){var t=this;if(e&&0!==e.length){for(var n=this,r=n.cy.hasCompoundNodes(),i={map:new Yt,get:function(e){var t=this.map.get(e[0]);return null!=t?t.get(e[1]):null},set:function(e,t){var n=this.map.get(e[0]);null==n&&(n=new Yt,this.map.set(e[0],n)),n.set(e[1],t)}},a=[],o=[],s=0;s<e.length;s++){var l=e[s],u=l._private,c=l.pstyle("curve-style").value;if(!l.removed()&&l.takesUpSpace())if("haystack"!==c){var h="unbundled-bezier"===c||"segments"===c||"straight"===c||"straight-triangle"===c||"taxi"===c,d="unbundled-bezier"===c||"bezier"===c,p=u.source,g=u.target,f=[p.poolIndex(),g.poolIndex()].sort(),v=i.get(f);null==v&&(v={eles:[]},i.set(f,v),a.push(f)),v.eles.push(l),h&&(v.hasUnbundled=!0),d&&(v.hasBezier=!0)}else o.push(l)}for(var y=function(e){var o=a[e],s=i.get(o),l=void 0;if(!s.hasUnbundled){var u=s.eles[0].parallelEdges().filter((function(e){return e.isBundledBezier()}));Rt(s.eles),u.forEach((function(e){return s.eles.push(e)})),s.eles.sort((function(e,t){return e.poolIndex()-t.poolIndex()}))}var c=s.eles[0],h=c.source(),d=c.target();if(h.poolIndex()>d.poolIndex()){var p=h;h=d,d=p}var g=s.srcPos=h.position(),f=s.tgtPos=d.position(),v=s.srcW=h.outerWidth(),y=s.srcH=h.outerHeight(),m=s.tgtW=d.outerWidth(),b=s.tgtH=d.outerHeight(),x=s.srcShape=n.nodeShapes[t.getNodeShape(h)],w=s.tgtShape=n.nodeShapes[t.getNodeShape(d)];s.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var E=0;E<s.eles.length;E++){var T=s.eles[E],D=T[0]._private.rscratch,C=T.pstyle("curve-style").value,N="unbundled-bezier"===C||"segments"===C||"taxi"===C,A=!h.same(T.source());if(!s.calculatedIntersection&&h!==d&&(s.hasBezier||s.hasUnbundled)){s.calculatedIntersection=!0;var L=x.intersectLine(g.x,g.y,v,y,f.x,f.y,0),S=s.srcIntn=L,O=w.intersectLine(f.x,f.y,m,b,g.x,g.y,0),I=s.tgtIntn=O,k=s.intersectionPts={x1:L[0],x2:O[0],y1:L[1],y2:O[1]},M=s.posPts={x1:g.x,x2:f.x,y1:g.y,y2:f.y},P=O[1]-L[1],R=O[0]-L[0],B=Math.sqrt(R*R+P*P),F=s.vector={x:R,y:P},z=s.vectorNorm={x:F.x/B,y:F.y/B},G={x:-z.y,y:z.x};s.nodesOverlap=!_(B)||w.checkPoint(L[0],L[1],0,m,b,f.x,f.y)||x.checkPoint(O[0],O[1],0,v,y,g.x,g.y),s.vectorNormInverse=G,l={nodesOverlap:s.nodesOverlap,dirCounts:s.dirCounts,calculatedIntersection:!0,hasBezier:s.hasBezier,hasUnbundled:s.hasUnbundled,eles:s.eles,srcPos:f,tgtPos:g,srcW:m,srcH:b,tgtW:v,tgtH:y,srcIntn:I,tgtIntn:S,srcShape:w,tgtShape:x,posPts:{x1:M.x2,y1:M.y2,x2:M.x1,y2:M.y1},intersectionPts:{x1:k.x2,y1:k.y2,x2:k.x1,y2:k.y1},vector:{x:-F.x,y:-F.y},vectorNorm:{x:-z.x,y:-z.y},vectorNormInverse:{x:-G.x,y:-G.y}}}var Y=A?l:s;D.nodesOverlap=Y.nodesOverlap,D.srcIntn=Y.srcIntn,D.tgtIntn=Y.tgtIntn,r&&(h.isParent()||h.isChild()||d.isParent()||d.isChild())&&(h.parents().anySame(d)||d.parents().anySame(h)||h.same(d)&&h.isParent())?t.findCompoundLoopPoints(T,Y,E,N):h===d?t.findLoopPoints(T,Y,E,N):"segments"===C?t.findSegmentsPoints(T,Y):"taxi"===C?t.findTaxiPoints(T,Y):"straight"===C||!N&&s.eles.length%2==1&&E===Math.floor(s.eles.length/2)?t.findStraightEdgePoints(T):t.findBezierPoints(T,Y,E,N,A),t.findEndpoints(T),t.tryToCorrectInvalidPoints(T,Y),t.checkForInvalidEdgeWarning(T),t.storeAllpts(T),t.storeEdgeProjections(T),t.calculateArrowAngles(T),t.recalculateEdgeLabelProjections(T),t.calculateLabelAngles(T)}},m=0;m<a.length;m++)y(m);this.findHaystackPoints(o)}},oh.getSegmentPoints=function(e){var t=e[0]._private.rscratch;if("segments"===t.edgeType)return this.recalculateRenderedStyle(e),sh(t.segpts)},oh.getControlPoints=function(e){var t=e[0]._private.rscratch,n=t.edgeType;if("bezier"===n||"multibezier"===n||"self"===n||"compound"===n)return this.recalculateRenderedStyle(e),sh(t.ctrlpts)},oh.getEdgeMidpoint=function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),{x:t.midX,y:t.midY}};var lh={manualEndptToPx:function(e,t){var n=this,r=e.position(),i=e.outerWidth(),a=e.outerHeight();if(2===t.value.length){var o=[t.pfValue[0],t.pfValue[1]];return"%"===t.units[0]&&(o[0]=o[0]*i),"%"===t.units[1]&&(o[1]=o[1]*a),o[0]+=r.x,o[1]+=r.y,o}var s=t.pfValue[0];s=-Math.PI/2+s;var l=2*Math.max(i,a),u=[r.x+Math.cos(s)*l,r.y+Math.sin(s)*l];return n.nodeShapes[this.getNodeShape(e)].intersectLine(r.x,r.y,i,a,u[0],u[1],0)},findEndpoints:function(e){var t,n,r,i,a,o=this,s=e.source()[0],l=e.target()[0],u=s.position(),c=l.position(),h=e.pstyle("target-arrow-shape").value,d=e.pstyle("source-arrow-shape").value,p=e.pstyle("target-distance-from-node").pfValue,g=e.pstyle("source-distance-from-node").pfValue,f=e.pstyle("curve-style").value,v=e._private.rscratch,y=v.edgeType,m="self"===y||"compound"===y,b="bezier"===y||"multibezier"===y||m,x="bezier"!==y,w="straight"===y||"segments"===y,E="segments"===y,T=b||x||w,D=m||"taxi"===f,C=e.pstyle("source-endpoint"),N=D?"outside-to-node":C.value,A=e.pstyle("target-endpoint"),L=D?"outside-to-node":A.value;if(v.srcManEndpt=C,v.tgtManEndpt=A,b){var S=[v.ctrlpts[0],v.ctrlpts[1]];n=x?[v.ctrlpts[v.ctrlpts.length-2],v.ctrlpts[v.ctrlpts.length-1]]:S,r=S}else if(w){var O=E?v.segpts.slice(0,2):[c.x,c.y];n=E?v.segpts.slice(v.segpts.length-2):[u.x,u.y],r=O}if("inside-to-node"===L)t=[c.x,c.y];else if(A.units)t=this.manualEndptToPx(l,A);else if("outside-to-line"===L)t=v.tgtIntn;else if("outside-to-node"===L||"outside-to-node-or-label"===L?i=n:"outside-to-line"!==L&&"outside-to-line-or-label"!==L||(i=[u.x,u.y]),t=o.nodeShapes[this.getNodeShape(l)].intersectLine(c.x,c.y,l.outerWidth(),l.outerHeight(),i[0],i[1],0),"outside-to-node-or-label"===L||"outside-to-line-or-label"===L){var I=l._private.rscratch,k=I.labelWidth,M=I.labelHeight,P=I.labelX,R=I.labelY,B=k/2,F=M/2,z=l.pstyle("text-valign").value;"top"===z?R-=F:"bottom"===z&&(R+=F);var G=l.pstyle("text-halign").value;"left"===G?P-=B:"right"===G&&(P+=B);var Y=ir(i[0],i[1],[P-B,R-F,P+B,R-F,P+B,R+F,P-B,R+F],c.x,c.y);if(Y.length>0){var X=u,V=Tn(X,pn(t)),U=Tn(X,pn(Y)),j=V;U<V&&(t=Y,j=U),Y.length>2&&Tn(X,{x:Y[2],y:Y[3]})<j&&(t=[Y[2],Y[3]])}}var H=or(t,n,o.arrowShapes[h].spacing(e)+p),q=or(t,n,o.arrowShapes[h].gap(e)+p);if(v.endX=q[0],v.endY=q[1],v.arrowEndX=H[0],v.arrowEndY=H[1],"inside-to-node"===N)t=[u.x,u.y];else if(C.units)t=this.manualEndptToPx(s,C);else if("outside-to-line"===N)t=v.srcIntn;else if("outside-to-node"===N||"outside-to-node-or-label"===N?a=r:"outside-to-line"!==N&&"outside-to-line-or-label"!==N||(a=[c.x,c.y]),t=o.nodeShapes[this.getNodeShape(s)].intersectLine(u.x,u.y,s.outerWidth(),s.outerHeight(),a[0],a[1],0),"outside-to-node-or-label"===N||"outside-to-line-or-label"===N){var W=s._private.rscratch,$=W.labelWidth,K=W.labelHeight,Z=W.labelX,Q=W.labelY,J=$/2,ee=K/2,te=s.pstyle("text-valign").value;"top"===te?Q-=ee:"bottom"===te&&(Q+=ee);var ne=s.pstyle("text-halign").value;"left"===ne?Z-=J:"right"===ne&&(Z+=J);var re=ir(a[0],a[1],[Z-J,Q-ee,Z+J,Q-ee,Z+J,Q+ee,Z-J,Q+ee],u.x,u.y);if(re.length>0){var ie=c,ae=Tn(ie,pn(t)),oe=Tn(ie,pn(re)),se=ae;oe<ae&&(t=[re[0],re[1]],se=oe),re.length>2&&Tn(ie,{x:re[2],y:re[3]})<se&&(t=[re[2],re[3]])}}var le=or(t,r,o.arrowShapes[d].spacing(e)+g),ue=or(t,r,o.arrowShapes[d].gap(e)+g);v.startX=ue[0],v.startY=ue[1],v.arrowStartX=le[0],v.arrowStartY=le[1],T&&(_(v.startX)&&_(v.startY)&&_(v.endX)&&_(v.endY)?v.badLine=!1:v.badLine=!0)},getSourceEndpoint:function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),"haystack"===t.edgeType?{x:t.haystackPts[0],y:t.haystackPts[1]}:{x:t.arrowStartX,y:t.arrowStartY}},getTargetEndpoint:function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),"haystack"===t.edgeType?{x:t.haystackPts[2],y:t.haystackPts[3]}:{x:t.arrowEndX,y:t.arrowEndY}}},uh={};function ch(e,t,n){for(var r=function(e,t,n,r){return Dn(e,t,n,r)},i=t._private.rstyle.bezierPts,a=0;a<e.bezierProjPcts.length;a++){var o=e.bezierProjPcts[a];i.push({x:r(n[0],n[2],n[4],o),y:r(n[1],n[3],n[5],o)})}}uh.storeEdgeProjections=function(e){var t=e._private,n=t.rscratch,r=n.edgeType;if(t.rstyle.bezierPts=null,t.rstyle.linePts=null,t.rstyle.haystackPts=null,"multibezier"===r||"bezier"===r||"self"===r||"compound"===r){t.rstyle.bezierPts=[];for(var i=0;i+5<n.allpts.length;i+=4)ch(this,e,n.allpts.slice(i,i+6))}else if("segments"===r){var a=t.rstyle.linePts=[];for(i=0;i+1<n.allpts.length;i+=2)a.push({x:n.allpts[i],y:n.allpts[i+1]})}else if("haystack"===r){var o=n.haystackPts;t.rstyle.haystackPts=[{x:o[0],y:o[1]},{x:o[2],y:o[3]}]}t.rstyle.arrowWidth=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth},uh.recalculateEdgeProjections=function(e){this.findEdgeControlPoints(e)};var hh={recalculateNodeLabelProjection:function(e){var t=e.pstyle("label").strValue;if(!k(t)){var n,r,i=e._private,a=e.width(),o=e.height(),s=e.padding(),l=e.position(),u=e.pstyle("text-halign").strValue,c=e.pstyle("text-valign").strValue,h=i.rscratch,d=i.rstyle;switch(u){case"left":n=l.x-a/2-s;break;case"right":n=l.x+a/2+s;break;default:n=l.x}switch(c){case"top":r=l.y-o/2-s;break;case"bottom":r=l.y+o/2+s;break;default:r=l.y}h.labelX=n,h.labelY=r,d.labelX=n,d.labelY=r,this.calculateLabelAngles(e),this.applyLabelDimensions(e)}}},dh=function(e,t){var n=Math.atan(t/e);return 0===e&&n<0&&(n*=-1),n},ph=function(e,t){var n=t.x-e.x,r=t.y-e.y;return dh(n,r)},gh=function(e,t,n,r){var i=An(0,r-.001,1),a=An(0,r+.001,1),o=Cn(e,t,n,i),s=Cn(e,t,n,a);return ph(o,s)};hh.recalculateEdgeLabelProjections=function(e){var t,n=e._private,r=n.rscratch,i=this,a={mid:e.pstyle("label").strValue,source:e.pstyle("source-label").strValue,target:e.pstyle("target-label").strValue};if(a.mid||a.source||a.target){t={x:r.midX,y:r.midY};var o=function(e,t,r){zt(n.rscratch,e,t,r),zt(n.rstyle,e,t,r)};o("labelX",null,t.x),o("labelY",null,t.y);var s=dh(r.midDispX,r.midDispY);o("labelAutoAngle",null,s);var l=function e(){if(e.cache)return e.cache;for(var t=[],a=0;a+5<r.allpts.length;a+=4){var o={x:r.allpts[a],y:r.allpts[a+1]},s={x:r.allpts[a+2],y:r.allpts[a+3]},l={x:r.allpts[a+4],y:r.allpts[a+5]};t.push({p0:o,p1:s,p2:l,startDist:0,length:0,segments:[]})}var u=n.rstyle.bezierPts,c=i.bezierProjPcts.length;function h(e,t,n,r,i){var a=En(t,n),o=e.segments[e.segments.length-1],s={p0:t,p1:n,t0:r,t1:i,startDist:o?o.startDist+o.length:0,length:a};e.segments.push(s),e.length+=a}for(var d=0;d<t.length;d++){var p=t[d],g=t[d-1];g&&(p.startDist=g.startDist+g.length),h(p,p.p0,u[d*c],0,i.bezierProjPcts[0]);for(var f=0;f<c-1;f++)h(p,u[d*c+f],u[d*c+f+1],i.bezierProjPcts[f],i.bezierProjPcts[f+1]);h(p,u[d*c+c-1],p.p2,i.bezierProjPcts[c-1],1)}return e.cache=t},u=function(n){var i,s="source"===n;if(a[n]){var u=e.pstyle(n+"-text-offset").pfValue;switch(r.edgeType){case"self":case"compound":case"bezier":case"multibezier":for(var c,h=l(),d=0,p=0,g=0;g<h.length;g++){for(var f=h[s?g:h.length-1-g],v=0;v<f.segments.length;v++){var y=f.segments[s?v:f.segments.length-1-v],m=g===h.length-1&&v===f.segments.length-1;if(d=p,(p+=y.length)>=u||m){c={cp:f,segment:y};break}}if(c)break}var b=c.cp,x=c.segment,w=(u-d)/x.length,E=x.t1-x.t0,T=s?x.t0+E*w:x.t1-E*w;T=An(0,T,1),t=Cn(b.p0,b.p1,b.p2,T),i=gh(b.p0,b.p1,b.p2,T);break;case"straight":case"segments":case"haystack":for(var _,D,C,N,A=0,L=r.allpts.length,S=0;S+3<L&&(s?(C={x:r.allpts[S],y:r.allpts[S+1]},N={x:r.allpts[S+2],y:r.allpts[S+3]}):(C={x:r.allpts[L-2-S],y:r.allpts[L-1-S]},N={x:r.allpts[L-4-S],y:r.allpts[L-3-S]}),D=A,!((A+=_=En(C,N))>=u));S+=2);var O=(u-D)/_;O=An(0,O,1),t=Nn(C,N,O),i=ph(C,N)}o("labelX",n,t.x),o("labelY",n,t.y),o("labelAutoAngle",n,i)}};u("source"),u("target"),this.applyLabelDimensions(e)}},hh.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},hh.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),i=this.calculateLabelDimensions(e,r),a=e.pstyle("line-height").pfValue,o=e.pstyle("text-wrap").strValue,s=Ft(n.rscratch,"labelWrapCachedLines",t)||[],l="wrap"!==o?1:Math.max(s.length,1),u=i.height/l,c=u*a,h=i.width,d=i.height+(l-1)*(a-1)*u;zt(n.rstyle,"labelWidth",t,h),zt(n.rscratch,"labelWidth",t,h),zt(n.rstyle,"labelHeight",t,d),zt(n.rscratch,"labelHeight",t,d),zt(n.rscratch,"labelLineHeight",t,c)},hh.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,o=function(e,r){return r?(zt(n.rscratch,e,t,r),r):Ft(n.rscratch,e,t)};if(!i)return"";"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var s=e.pstyle("text-wrap").value;if("wrap"===s){var l=o("labelKey");if(null!=l&&o("labelWrapKey")===l)return o("labelWrapCachedText");for(var u="\u200b",c=i.split("\n"),h=e.pstyle("text-max-width").pfValue,d="anywhere"===e.pstyle("text-overflow-wrap").value,p=[],g=/[\s\u200b]+/,f=d?"":" ",v=0;v<c.length;v++){var y=c[v],m=this.calculateLabelDimensions(e,y).width;if(d){var b=y.split("").join(u);y=b}if(m>h){for(var x=y.split(g),w="",E=0;E<x.length;E++){var T=x[E],_=0===w.length?T:w+f+T;this.calculateLabelDimensions(e,_).width<=h?w+=T+f:(w&&p.push(w),w=T+f)}w.match(/^[\s\u200b]+$/)||p.push(w)}else p.push(y)}o("labelWrapCachedLines",p),i=o("labelWrapCachedText",p.join("\n")),o("labelWrapKey",l)}else if("ellipsis"===s){var D=e.pstyle("text-max-width").pfValue,C="",N="\u2026",A=!1;if(this.calculateLabelDimensions(e,i).width<D)return i;for(var L=0;L<i.length&&!(this.calculateLabelDimensions(e,C+i[L]+N).width>D);L++)C+=i[L],L===i.length-1&&(A=!0);return A||(C+=N),C}return i},hh.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},hh.calculateLabelDimensions=function(e,t){var n=this,r=gt(t,e._private.labelDimsKey),i=n.labelDimCache||(n.labelDimCache=[]),a=i[r];if(null!=a)return a;var o=0,s=e.pstyle("font-style").strValue,l=e.pstyle("font-size").pfValue,u=e.pstyle("font-family").strValue,c=e.pstyle("font-weight").strValue,h=this.labelCalcCanvas,d=this.labelCalcCanvasContext;if(!h){h=this.labelCalcCanvas=document.createElement("canvas"),d=this.labelCalcCanvasContext=h.getContext("2d");var p=h.style;p.position="absolute",p.left="-9999px",p.top="-9999px",p.zIndex="-1",p.visibility="hidden",p.pointerEvents="none"}d.font="".concat(s," ").concat(c," ").concat(l,"px ").concat(u);for(var g=0,f=0,v=t.split("\n"),y=0;y<v.length;y++){var m=v[y],b=d.measureText(m),x=Math.ceil(b.width),w=l;g=Math.max(x,g),f+=w}return g+=o,f+=o,i[r]={width:g,height:f}},hh.calculateLabelAngle=function(e,t){var n=e._private.rscratch,r=e.isEdge(),i=t?t+"-":"",a=e.pstyle(i+"text-rotation"),o=a.strValue;return"none"===o?0:r&&"autorotate"===o?n.labelAutoAngle:"autorotate"===o?0:a.pfValue},hh.calculateLabelAngles=function(e){var t=this,n=e.isEdge(),r=e._private.rscratch;r.labelAngle=t.calculateLabelAngle(e),n&&(r.sourceLabelAngle=t.calculateLabelAngle(e,"source"),r.targetLabelAngle=t.calculateLabelAngle(e,"target"))};var fh={},vh=28,yh=!1;fh.getNodeShape=function(e){var t=this,n=e.pstyle("shape").value;if("cutrectangle"===n&&(e.width()<vh||e.height()<vh))return yh||(Nt("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),yh=!0),"rectangle";if(e.isParent())return"rectangle"===n||"roundrectangle"===n||"round-rectangle"===n||"cutrectangle"===n||"cut-rectangle"===n||"barrel"===n?n:"rectangle";if("polygon"===n){var r=e.pstyle("shape-polygon-points").value;return t.nodeShapes.makePolygon(r).name}return n};var mh={registerCalculationListeners:function(){var e=this.cy,t=e.collection(),n=this,r=function(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(t.merge(e),n)for(var r=0;r<e.length;r++){var i=e[r]._private.rstyle;i.clean=!1,i.cleanConnected=!1}};n.binder(e).on("bounds.* dirty.*",(function(e){var t=e.target;r(t)})).on("style.* background.*",(function(e){var t=e.target;r(t,!1)}));var i=function(i){if(i){var a=n.onUpdateEleCalcsFns;t.cleanStyle();for(var o=0;o<t.length;o++){var s=t[o],l=s._private.rstyle;s.isNode()&&!l.cleanConnected&&(r(s.connectedEdges()),l.cleanConnected=!0)}if(a)for(var u=0;u<a.length;u++)(0,a[u])(i,t);n.recalculateRenderedStyle(t),t=e.collection()}};n.flushRenderedStyleQueue=function(){i(!0)},n.beforeRender(i,n.beforeRenderPriorities.eleCalcs)},onUpdateEleCalcs:function(e){(this.onUpdateEleCalcsFns=this.onUpdateEleCalcsFns||[]).push(e)},recalculateRenderedStyle:function(e,t){var n=function(e){return e._private.rstyle.cleanConnected},r=[],i=[];if(!this.destroyed){void 0===t&&(t=!0);for(var a=0;a<e.length;a++){var o=e[a],s=o._private,l=s.rstyle;!o.isEdge()||n(o.source())&&n(o.target())||(l.clean=!1),t&&l.clean||o.removed()||"none"!==o.pstyle("display").value&&("nodes"===s.group?i.push(o):r.push(o),l.clean=!0)}for(var u=0;u<i.length;u++){var c=i[u],h=c._private.rstyle,d=c.position();this.recalculateNodeLabelProjection(c),h.nodeX=d.x,h.nodeY=d.y,h.nodeW=c.pstyle("width").pfValue,h.nodeH=c.pstyle("height").pfValue}this.recalculateEdgeProjections(r);for(var p=0;p<r.length;p++){var g=r[p]._private,f=g.rstyle,v=g.rscratch;f.srcX=v.arrowStartX,f.srcY=v.arrowStartY,f.tgtX=v.arrowEndX,f.tgtY=v.arrowEndY,f.midX=v.midX,f.midY=v.midY,f.labelAngle=v.labelAngle,f.sourceLabelAngle=v.sourceLabelAngle,f.targetLabelAngle=v.targetLabelAngle}}}},bh={updateCachedGrabbedEles:function(){var e=this.cachedZSortedEles;if(e){e.drag=[],e.nondrag=[];for(var t=[],n=0;n<e.length;n++){var r=(i=e[n])._private.rscratch;i.grabbed()&&!i.isParent()?t.push(i):r.inDragLayer?e.drag.push(i):e.nondrag.push(i)}for(n=0;n<t.length;n++){var i=t[n];e.drag.push(i)}}},invalidateCachedZSortedEles:function(){this.cachedZSortedEles=null},getCachedZSortedEles:function(e){if(e||!this.cachedZSortedEles){var t=this.cy.mutableElements().toArray();t.sort(Jl),t.interactive=t.filter((function(e){return e.interactive()})),this.cachedZSortedEles=t,this.updateCachedGrabbedEles()}else t=this.cachedZSortedEles;return t}},xh={};[ih,ah,oh,lh,uh,hh,fh,mh,bh].forEach((function(e){Q(xh,e)}));var wh={getCachedImage:function(e,t,n){var r=this,i=r.imageCache=r.imageCache||{},a=i[e];if(a)return a.image.complete||a.image.addEventListener("load",n),a.image;var o=(a=i[e]=i[e]||{}).image=new Image;o.addEventListener("load",n),o.addEventListener("error",(function(){o.error=!0}));var s="data:";return e.substring(0,s.length).toLowerCase()===s||(t="null"===t?null:t,o.crossOrigin=t),o.src=e,o}},Eh={registerBinding:function(e,t,n,r){var i=Array.prototype.slice.apply(arguments,[1]),a=this.binder(e);return a.on.apply(a,i)},binder:function(e){var t=this,n=t.cy.window(),r=e===n||e===n.document||e===n.document.body||M(e);if(null==t.supportsPassiveEvents){var i=!1;try{var a=Object.defineProperty({},"passive",{get:function(){return i=!0,!0}});n.addEventListener("test",null,a)}catch(s){}t.supportsPassiveEvents=i}var o=function(n,i,a){var o=Array.prototype.slice.call(arguments);return r&&t.supportsPassiveEvents&&(o[2]={capture:null!=a&&a,passive:!1,once:!1}),t.bindings.push({target:e,args:o}),(e.addEventListener||e.on).apply(e,o),this};return{on:o,addEventListener:o,addListener:o,bind:o}},nodeIsDraggable:function(e){return e&&e.isNode()&&!e.locked()&&e.grabbable()},nodeIsGrabbable:function(e){return this.nodeIsDraggable(e)&&e.interactive()},load:function(){var e=this,t=e.cy.window(),n=function(e){return e.selected()},r=function(t,n,r,i){null==t&&(t=e.cy);for(var a=0;a<n.length;a++){var o=n[a];t.emit({originalEvent:r,type:o,position:i})}},i=function(e){return e.shiftKey||e.metaKey||e.ctrlKey},a=function(t,n){var r=!0;if(e.cy.hasCompoundNodes()&&t&&t.pannable()){for(var i=0;n&&i<n.length;i++)if((t=n[i]).isNode()&&t.isParent()&&!t.pannable()){r=!1;break}}else r=!0;return r},o=function(e){e[0]._private.grabbed=!0},s=function(e){e[0]._private.grabbed=!1},l=function(e){e[0]._private.rscratch.inDragLayer=!0},u=function(e){e[0]._private.rscratch.inDragLayer=!1},c=function(e){e[0]._private.rscratch.isGrabTarget=!0},h=function(e){e[0]._private.rscratch.isGrabTarget=!1},d=function(e,t){var n=t.addToList;n.has(e)||!e.grabbable()||e.locked()||(n.merge(e),o(e))},p=function(e,t){if(e.cy().hasCompoundNodes()&&(null!=t.inDragLayer||null!=t.addToList)){var n=e.descendants();t.inDragLayer&&(n.forEach(l),n.connectedEdges().forEach(l)),t.addToList&&d(n,t)}},g=function(t,n){n=n||{};var r=t.cy().hasCompoundNodes();n.inDragLayer&&(t.forEach(l),t.neighborhood().stdFilter((function(e){return!r||e.isEdge()})).forEach(l)),n.addToList&&t.forEach((function(e){d(e,n)})),p(t,n),y(t,{inDragLayer:n.inDragLayer}),e.updateCachedGrabbedEles()},f=g,v=function(t){t&&(e.getCachedZSortedEles().forEach((function(e){s(e),u(e),h(e)})),e.updateCachedGrabbedEles())},y=function(e,t){if((null!=t.inDragLayer||null!=t.addToList)&&e.cy().hasCompoundNodes()){var n=e.ancestors().orphans();if(!n.same(e)){var r=n.descendants().spawnSelf().merge(n).unmerge(e).unmerge(e.descendants()),i=r.connectedEdges();t.inDragLayer&&(i.forEach(l),r.forEach(l)),t.addToList&&r.forEach((function(e){d(e,t)}))}}},m=function(){null!=document.activeElement&&null!=document.activeElement.blur&&document.activeElement.blur()},b="undefined"!=typeof MutationObserver,x="undefined"!=typeof ResizeObserver;b?(e.removeObserver=new MutationObserver((function(t){for(var n=0;n<t.length;n++){var r=t[n].removedNodes;if(r)for(var i=0;i<r.length;i++)if(r[i]===e.container){e.destroy();break}}})),e.container.parentNode&&e.removeObserver.observe(e.container.parentNode,{childList:!0})):e.registerBinding(e.container,"DOMNodeRemoved",(function(t){e.destroy()}));var w=Qe((function(){e.cy.resize()}),100);b&&(e.styleObserver=new MutationObserver(w),e.styleObserver.observe(e.container,{attributes:!0})),e.registerBinding(t,"resize",w),x&&(e.resizeObserver=new ResizeObserver(w),e.resizeObserver.observe(e.container));var E=function(e,t){for(;null!=e;)t(e),e=e.parentNode},T=function(){e.invalidateContainerClientCoordsCache()};E(e.container,(function(t){e.registerBinding(t,"transitionend",T),e.registerBinding(t,"animationend",T),e.registerBinding(t,"scroll",T)})),e.registerBinding(e.container,"contextmenu",(function(e){e.preventDefault()}));var D,C,N,A=function(){return 0!==e.selection[4]},L=function(t){for(var n=e.findContainerClientCoords(),r=n[0],i=n[1],a=n[2],o=n[3],s=t.touches?t.touches:[t],l=!1,u=0;u<s.length;u++){var c=s[u];if(r<=c.clientX&&c.clientX<=r+a&&i<=c.clientY&&c.clientY<=i+o){l=!0;break}}if(!l)return!1;for(var h=e.container,d=t.target.parentNode,p=!1;d;){if(d===h){p=!0;break}d=d.parentNode}return!!p};e.registerBinding(e.container,"mousedown",(function(t){if(L(t)){t.preventDefault(),m(),e.hoverData.capture=!0,e.hoverData.which=t.which;var n=e.cy,i=[t.clientX,t.clientY],a=e.projectIntoViewport(i[0],i[1]),o=e.selection,s=e.findNearestElements(a[0],a[1],!0,!1),l=s[0],u=e.dragData.possibleDragElements;e.hoverData.mdownPos=a,e.hoverData.mdownGPos=i;var h=function(){e.hoverData.tapholdCancelled=!1,clearTimeout(e.hoverData.tapholdTimeout),e.hoverData.tapholdTimeout=setTimeout((function(){if(!e.hoverData.tapholdCancelled){var r=e.hoverData.down;r?r.emit({originalEvent:t,type:"taphold",position:{x:a[0],y:a[1]}}):n.emit({originalEvent:t,type:"taphold",position:{x:a[0],y:a[1]}})}}),e.tapholdDuration)};if(3==t.which){e.hoverData.cxtStarted=!0;var d={originalEvent:t,type:"cxttapstart",position:{x:a[0],y:a[1]}};l?(l.activate(),l.emit(d),e.hoverData.down=l):n.emit(d),e.hoverData.downTime=(new Date).getTime(),e.hoverData.cxtDragged=!1}else if(1==t.which){if(l&&l.activate(),null!=l&&e.nodeIsGrabbable(l)){var p=function(e){return{originalEvent:t,type:e,position:{x:a[0],y:a[1]}}},v=function(e){e.emit(p("grab"))};if(c(l),l.selected()){u=e.dragData.possibleDragElements=n.collection();var y=n.$((function(t){return t.isNode()&&t.selected()&&e.nodeIsGrabbable(t)}));g(y,{addToList:u}),l.emit(p("grabon")),y.forEach(v)}else u=e.dragData.possibleDragElements=n.collection(),f(l,{addToList:u}),l.emit(p("grabon")).emit(p("grab"));e.redrawHint("eles",!0),e.redrawHint("drag",!0)}e.hoverData.down=l,e.hoverData.downs=s,e.hoverData.downTime=(new Date).getTime(),r(l,["mousedown","tapstart","vmousedown"],t,{x:a[0],y:a[1]}),null==l?(o[4]=1,e.data.bgActivePosistion={x:a[0],y:a[1]},e.redrawHint("select",!0),e.redraw()):l.pannable()&&(o[4]=1),h()}o[0]=o[2]=a[0],o[1]=o[3]=a[1]}}),!1),e.registerBinding(t,"mousemove",(function(t){if(e.hoverData.capture||L(t)){var n=!1,o=e.cy,s=o.zoom(),l=[t.clientX,t.clientY],u=e.projectIntoViewport(l[0],l[1]),c=e.hoverData.mdownPos,h=e.hoverData.mdownGPos,d=e.selection,p=null;e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.selecting||(p=e.findNearestElement(u[0],u[1],!0,!1));var f,y=e.hoverData.last,m=e.hoverData.down,b=[u[0]-d[2],u[1]-d[3]],x=e.dragData.possibleDragElements;if(h){var w=l[0]-h[0],E=w*w,T=l[1]-h[1],D=E+T*T;e.hoverData.isOverThresholdDrag=f=D>=e.desktopTapThreshold2}var C=i(t);f&&(e.hoverData.tapholdCancelled=!0);var N=function(){var t=e.hoverData.dragDelta=e.hoverData.dragDelta||[];0===t.length?(t.push(b[0]),t.push(b[1])):(t[0]+=b[0],t[1]+=b[1])};n=!0,r(p,["mousemove","vmousemove","tapdrag"],t,{x:u[0],y:u[1]});var A=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:u[0],y:u[1]}}),d[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()};if(3===e.hoverData.which){if(f){var S={originalEvent:t,type:"cxtdrag",position:{x:u[0],y:u[1]}};m?m.emit(S):o.emit(S),e.hoverData.cxtDragged=!0,e.hoverData.cxtOver&&p===e.hoverData.cxtOver||(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:u[0],y:u[1]}}),e.hoverData.cxtOver=p,p&&p.emit({originalEvent:t,type:"cxtdragover",position:{x:u[0],y:u[1]}}))}}else if(e.hoverData.dragging){if(n=!0,o.panningEnabled()&&o.userPanningEnabled()){var O;if(e.hoverData.justStartedPan){var I=e.hoverData.mdownPos;O={x:(u[0]-I[0])*s,y:(u[1]-I[1])*s},e.hoverData.justStartedPan=!1}else O={x:b[0]*s,y:b[1]*s};o.panBy(O),o.emit("dragpan"),e.hoverData.dragged=!0}u=e.projectIntoViewport(t.clientX,t.clientY)}else if(1!=d[4]||null!=m&&!m.pannable()){if(m&&m.pannable()&&m.active()&&m.unactivate(),m&&m.grabbed()||p==y||(y&&r(y,["mouseout","tapdragout"],t,{x:u[0],y:u[1]}),p&&r(p,["mouseover","tapdragover"],t,{x:u[0],y:u[1]}),e.hoverData.last=p),m)if(f){if(o.boxSelectionEnabled()&&C)m&&m.grabbed()&&(v(x),m.emit("freeon"),x.emit("free"),e.dragData.didDrag&&(m.emit("dragfreeon"),x.emit("dragfree"))),A();else if(m&&m.grabbed()&&e.nodeIsDraggable(m)){var k=!e.dragData.didDrag;k&&e.redrawHint("eles",!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||g(x,{inDragLayer:!0});var M={x:0,y:0};if(_(b[0])&&_(b[1])&&(M.x+=b[0],M.y+=b[1],k)){var P=e.hoverData.dragDelta;P&&_(P[0])&&_(P[1])&&(M.x+=P[0],M.y+=P[1])}e.hoverData.draggingEles=!0,x.silentShift(M).emit("position drag"),e.redrawHint("drag",!0),e.redraw()}}else N();n=!0}else f&&(e.hoverData.dragging||!o.boxSelectionEnabled()||!C&&o.panningEnabled()&&o.userPanningEnabled()?!e.hoverData.selecting&&o.panningEnabled()&&o.userPanningEnabled()&&a(m,e.hoverData.downs)&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,d[4]=0,e.data.bgActivePosistion=pn(c),e.redrawHint("select",!0),e.redraw()):A(),m&&m.pannable()&&m.active()&&m.unactivate());return d[2]=u[0],d[3]=u[1],n?(t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),!1):void 0}}),!1),e.registerBinding(t,"mouseup",(function(t){if(e.hoverData.capture){e.hoverData.capture=!1;var a=e.cy,o=e.projectIntoViewport(t.clientX,t.clientY),s=e.selection,l=e.findNearestElement(o[0],o[1],!0,!1),u=e.dragData.possibleDragElements,c=e.hoverData.down,h=i(t);if(e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,c&&c.unactivate(),3===e.hoverData.which){var d={originalEvent:t,type:"cxttapend",position:{x:o[0],y:o[1]}};if(c?c.emit(d):a.emit(d),!e.hoverData.cxtDragged){var p={originalEvent:t,type:"cxttap",position:{x:o[0],y:o[1]}};c?c.emit(p):a.emit(p)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(1===e.hoverData.which){if(r(l,["mouseup","tapend","vmouseup"],t,{x:o[0],y:o[1]}),e.dragData.didDrag||e.hoverData.dragged||e.hoverData.selecting||e.hoverData.isOverThresholdDrag||(r(c,["click","tap","vclick"],t,{x:o[0],y:o[1]}),C=!1,t.timeStamp-N<=a.multiClickDebounceTime()?(D&&clearTimeout(D),C=!0,N=null,r(c,["dblclick","dbltap","vdblclick"],t,{x:o[0],y:o[1]})):(D=setTimeout((function(){C||r(c,["oneclick","onetap","voneclick"],t,{x:o[0],y:o[1]})}),a.multiClickDebounceTime()),N=t.timeStamp)),null!=c||e.dragData.didDrag||e.hoverData.selecting||e.hoverData.dragged||i(t)||(a.$(n).unselect(["tapunselect"]),u.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=u=a.collection()),l!=c||e.dragData.didDrag||e.hoverData.selecting||null!=l&&l._private.selectable&&(e.hoverData.dragging||("additive"===a.selectionType()||h?l.selected()?l.unselect(["tapunselect"]):l.select(["tapselect"]):h||(a.$(n).unmerge(l).unselect(["tapunselect"]),l.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var g=a.collection(e.getAllInBox(s[0],s[1],s[2],s[3]));e.redrawHint("select",!0),g.length>0&&e.redrawHint("eles",!0),a.emit({type:"boxend",originalEvent:t,position:{x:o[0],y:o[1]}});var f=function(e){return e.selectable()&&!e.selected()};"additive"===a.selectionType()||h||a.$(n).unmerge(g).unselect(),g.emit("box").stdFilter(f).select().emit("boxselect"),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!s[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var y=c&&c.grabbed();v(u),y&&(c.emit("freeon"),u.emit("free"),e.dragData.didDrag&&(c.emit("dragfreeon"),u.emit("dragfree")))}}s[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null}}),!1);var S,O,I,k,M,P,R,B,F,z,G,Y,X,V=function(t){if(!e.scrollingPage){var n=e.cy,r=n.zoom(),i=n.pan(),a=e.projectIntoViewport(t.clientX,t.clientY),o=[a[0]*r+i.x,a[1]*r+i.y];if(e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||A())t.preventDefault();else if(n.panningEnabled()&&n.userPanningEnabled()&&n.zoomingEnabled()&&n.userZoomingEnabled()){var s;t.preventDefault(),e.data.wheelZooming=!0,clearTimeout(e.data.wheelTimeout),e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=!1,e.redrawHint("eles",!0),e.redraw()}),150),s=null!=t.deltaY?t.deltaY/-250:null!=t.wheelDeltaY?t.wheelDeltaY/1e3:t.wheelDelta/1e3,s*=e.wheelSensitivity,1===t.deltaMode&&(s*=33);var l=n.zoom()*Math.pow(10,s);"gesturechange"===t.type&&(l=e.gestureStartZoom*t.scale),n.zoom({level:l,renderedPosition:{x:o[0],y:o[1]}}),n.emit("gesturechange"===t.type?"pinchzoom":"scrollzoom")}}};e.registerBinding(e.container,"wheel",V,!0),e.registerBinding(t,"scroll",(function(t){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=!1}),250)}),!0),e.registerBinding(e.container,"gesturestart",(function(t){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||t.preventDefault()}),!0),e.registerBinding(e.container,"gesturechange",(function(t){e.hasTouchStarted||V(t)}),!0),e.registerBinding(e.container,"mouseout",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseout",position:{x:n[0],y:n[1]}})}),!1),e.registerBinding(e.container,"mouseover",(function(t){var n=e.projectIntoViewport(t.clientX,t.clientY);e.cy.emit({originalEvent:t,type:"mouseover",position:{x:n[0],y:n[1]}})}),!1);var U,j,H,q,W,$,K,Z=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},Q=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(e.registerBinding(e.container,"touchstart",U=function(t){if(e.hasTouchStarted=!0,L(t)){m(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var n=e.cy,i=e.touchData.now,a=e.touchData.earlier;if(t.touches[0]){var o=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);i[0]=o[0],i[1]=o[1]}if(t.touches[1]&&(o=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY),i[2]=o[0],i[3]=o[1]),t.touches[2]&&(o=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY),i[4]=o[0],i[5]=o[1]),t.touches[1]){e.touchData.singleTouchMoved=!0,v(e.dragData.touchDragEles);var s=e.findContainerClientCoords();F=s[0],z=s[1],G=s[2],Y=s[3],S=t.touches[0].clientX-F,O=t.touches[0].clientY-z,I=t.touches[1].clientX-F,k=t.touches[1].clientY-z,X=0<=S&&S<=G&&0<=I&&I<=G&&0<=O&&O<=Y&&0<=k&&k<=Y;var l=n.pan(),u=n.zoom();M=Z(S,O,I,k),P=Q(S,O,I,k),B=[((R=[(S+I)/2,(O+k)/2])[0]-l.x)/u,(R[1]-l.y)/u];var h=200;if(P<h*h&&!t.touches[2]){var d=e.findNearestElement(i[0],i[1],!0,!0),p=e.findNearestElement(i[2],i[3],!0,!0);return d&&d.isNode()?(d.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=d):p&&p.isNode()?(p.activate().emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start=p):n.emit({originalEvent:t,type:"cxttapstart",position:{x:i[0],y:i[1]}}),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!0,e.touchData.cxtDragged=!1,e.data.bgActivePosistion=void 0,void e.redraw()}}if(t.touches[2])n.boxSelectionEnabled()&&t.preventDefault();else if(t.touches[1]);else if(t.touches[0]){var y=e.findNearestElements(i[0],i[1],!0,!0),b=y[0];if(null!=b&&(b.activate(),e.touchData.start=b,e.touchData.starts=y,e.nodeIsGrabbable(b))){var x=e.dragData.touchDragEles=n.collection(),w=null;e.redrawHint("eles",!0),e.redrawHint("drag",!0),b.selected()?(w=n.$((function(t){return t.selected()&&e.nodeIsGrabbable(t)})),g(w,{addToList:x})):f(b,{addToList:x}),c(b);var E=function(e){return{originalEvent:t,type:e,position:{x:i[0],y:i[1]}}};b.emit(E("grabon")),w?w.forEach((function(e){e.emit(E("grab"))})):b.emit(E("grab"))}r(b,["touchstart","tapstart","vmousedown"],t,{x:i[0],y:i[1]}),null==b&&(e.data.bgActivePosistion={x:o[0],y:o[1]},e.redrawHint("select",!0),e.redraw()),e.touchData.singleTouchMoved=!1,e.touchData.singleTouchStartTime=+new Date,clearTimeout(e.touchData.tapholdTimeout),e.touchData.tapholdTimeout=setTimeout((function(){!1!==e.touchData.singleTouchMoved||e.pinching||e.touchData.selecting||r(e.touchData.start,["taphold"],t,{x:i[0],y:i[1]})}),e.tapholdDuration)}if(t.touches.length>=1){for(var T=e.touchData.startPosition=[null,null,null,null,null,null],_=0;_<i.length;_++)T[_]=a[_]=i[_];var D=t.touches[0];e.touchData.startGPosition=[D.clientX,D.clientY]}}},!1),e.registerBinding(window,"touchmove",j=function(t){var n=e.touchData.capture;if(n||L(t)){var i=e.selection,o=e.cy,s=e.touchData.now,l=e.touchData.earlier,u=o.zoom();if(t.touches[0]){var c=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);s[0]=c[0],s[1]=c[1]}t.touches[1]&&(c=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY),s[2]=c[0],s[3]=c[1]),t.touches[2]&&(c=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY),s[4]=c[0],s[5]=c[1]);var h,d=e.touchData.startGPosition;if(n&&t.touches[0]&&d){for(var p=[],f=0;f<s.length;f++)p[f]=s[f]-l[f];var y=t.touches[0].clientX-d[0],m=y*y,b=t.touches[0].clientY-d[1];h=m+b*b>=e.touchTapThreshold2}if(n&&e.touchData.cxt){t.preventDefault();var x=t.touches[0].clientX-F,w=t.touches[0].clientY-z,E=t.touches[1].clientX-F,T=t.touches[1].clientY-z,D=Q(x,w,E,T),C=150,N=1.5;if(D/P>=N*N||D>=C*C){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var A={originalEvent:t,type:"cxttapend",position:{x:s[0],y:s[1]}};e.touchData.start?(e.touchData.start.unactivate().emit(A),e.touchData.start=null):o.emit(A)}}if(n&&e.touchData.cxt){A={originalEvent:t,type:"cxtdrag",position:{x:s[0],y:s[1]}},e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(A):o.emit(A),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var R=e.findNearestElement(s[0],s[1],!0,!0);e.touchData.cxtOver&&R===e.touchData.cxtOver||(e.touchData.cxtOver&&e.touchData.cxtOver.emit({originalEvent:t,type:"cxtdragout",position:{x:s[0],y:s[1]}}),e.touchData.cxtOver=R,R&&R.emit({originalEvent:t,type:"cxtdragover",position:{x:s[0],y:s[1]}}))}else if(n&&t.touches[2]&&o.boxSelectionEnabled())t.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||o.emit({originalEvent:t,type:"boxstart",position:{x:s[0],y:s[1]}}),e.touchData.selecting=!0,e.touchData.didSelect=!0,i[4]=1,i&&0!==i.length&&void 0!==i[0]?(i[2]=(s[0]+s[2]+s[4])/3,i[3]=(s[1]+s[3]+s[5])/3):(i[0]=(s[0]+s[2]+s[4])/3,i[1]=(s[1]+s[3]+s[5])/3,i[2]=(s[0]+s[2]+s[4])/3+1,i[3]=(s[1]+s[3]+s[5])/3+1),e.redrawHint("select",!0),e.redraw();else if(n&&t.touches[1]&&!e.touchData.didSelect&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){if(t.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),ne=e.dragData.touchDragEles){e.redrawHint("drag",!0);for(var G=0;G<ne.length;G++){var Y=ne[G]._private;Y.grabbed=!1,Y.rscratch.inDragLayer=!1}}var V=e.touchData.start,U=(x=t.touches[0].clientX-F,w=t.touches[0].clientY-z,E=t.touches[1].clientX-F,T=t.touches[1].clientY-z,Z(x,w,E,T)),j=U/M;if(X){var H=(x-S+(E-I))/2,q=(w-O+(T-k))/2,W=o.zoom(),$=W*j,K=o.pan(),J=B[0]*W+K.x,ee=B[1]*W+K.y,te={x:-$/W*(J-K.x-H)+J,y:-$/W*(ee-K.y-q)+ee};if(V&&V.active()){var ne=e.dragData.touchDragEles;v(ne),e.redrawHint("drag",!0),e.redrawHint("eles",!0),V.unactivate().emit("freeon"),ne.emit("free"),e.dragData.didDrag&&(V.emit("dragfreeon"),ne.emit("dragfree"))}o.viewport({zoom:$,pan:te,cancelOnFailedZoom:!0}),o.emit("pinchzoom"),M=U,S=x,O=w,I=E,k=T,e.pinching=!0}t.touches[0]&&(c=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY),s[0]=c[0],s[1]=c[1]),t.touches[1]&&(c=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY),s[2]=c[0],s[3]=c[1]),t.touches[2]&&(c=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY),s[4]=c[0],s[5]=c[1])}else if(t.touches[0]&&!e.touchData.didSelect){var re=e.touchData.start,ie=e.touchData.last;if(e.hoverData.draggingEles||e.swipePanning||(R=e.findNearestElement(s[0],s[1],!0,!0)),n&&null!=re&&t.preventDefault(),n&&null!=re&&e.nodeIsDraggable(re))if(h){ne=e.dragData.touchDragEles;var ae=!e.dragData.didDrag;ae&&g(ne,{inDragLayer:!0}),e.dragData.didDrag=!0;var oe={x:0,y:0};_(p[0])&&_(p[1])&&(oe.x+=p[0],oe.y+=p[1],ae&&(e.redrawHint("eles",!0),(se=e.touchData.dragDelta)&&_(se[0])&&_(se[1])&&(oe.x+=se[0],oe.y+=se[1]))),e.hoverData.draggingEles=!0,ne.silentShift(oe).emit("position drag"),e.redrawHint("drag",!0),e.touchData.startPosition[0]==l[0]&&e.touchData.startPosition[1]==l[1]&&e.redrawHint("eles",!0),e.redraw()}else{var se;0===(se=e.touchData.dragDelta=e.touchData.dragDelta||[]).length?(se.push(p[0]),se.push(p[1])):(se[0]+=p[0],se[1]+=p[1])}if(r(re||R,["touchmove","tapdrag","vmousemove"],t,{x:s[0],y:s[1]}),re&&re.grabbed()||R==ie||(ie&&ie.emit({originalEvent:t,type:"tapdragout",position:{x:s[0],y:s[1]}}),R&&R.emit({originalEvent:t,type:"tapdragover",position:{x:s[0],y:s[1]}})),e.touchData.last=R,n)for(G=0;G<s.length;G++)s[G]&&e.touchData.startPosition[G]&&h&&(e.touchData.singleTouchMoved=!0);n&&(null==re||re.pannable())&&o.panningEnabled()&&o.userPanningEnabled()&&(a(re,e.touchData.starts)&&(t.preventDefault(),e.data.bgActivePosistion||(e.data.bgActivePosistion=pn(e.touchData.startPosition)),e.swipePanning?(o.panBy({x:p[0]*u,y:p[1]*u}),o.emit("dragpan")):h&&(e.swipePanning=!0,o.panBy({x:y*u,y:b*u}),o.emit("dragpan"),re&&(re.unactivate(),e.redrawHint("select",!0),e.touchData.start=null))),c=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY),s[0]=c[0],s[1]=c[1])}for(f=0;f<s.length;f++)l[f]=s[f];n&&t.touches.length>0&&!e.hoverData.draggingEles&&!e.swipePanning&&null!=e.data.bgActivePosistion&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},!1),e.registerBinding(t,"touchcancel",H=function(t){var n=e.touchData.start;e.touchData.capture=!1,n&&n.unactivate()}),e.registerBinding(t,"touchend",q=function(t){var i=e.touchData.start;if(e.touchData.capture){0===t.touches.length&&(e.touchData.capture=!1),t.preventDefault();var a=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var o,s=e.cy,l=s.zoom(),u=e.touchData.now,c=e.touchData.earlier;if(t.touches[0]){var h=e.projectIntoViewport(t.touches[0].clientX,t.touches[0].clientY);u[0]=h[0],u[1]=h[1]}if(t.touches[1]&&(h=e.projectIntoViewport(t.touches[1].clientX,t.touches[1].clientY),u[2]=h[0],u[3]=h[1]),t.touches[2]&&(h=e.projectIntoViewport(t.touches[2].clientX,t.touches[2].clientY),u[4]=h[0],u[5]=h[1]),i&&i.unactivate(),e.touchData.cxt){if(o={originalEvent:t,type:"cxttapend",position:{x:u[0],y:u[1]}},i?i.emit(o):s.emit(o),!e.touchData.cxtDragged){var d={originalEvent:t,type:"cxttap",position:{x:u[0],y:u[1]}};i?i.emit(d):s.emit(d)}return e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,void e.redraw()}if(!t.touches[2]&&s.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var p=s.collection(e.getAllInBox(a[0],a[1],a[2],a[3]));a[0]=void 0,a[1]=void 0,a[2]=void 0,a[3]=void 0,a[4]=0,e.redrawHint("select",!0),s.emit({type:"boxend",originalEvent:t,position:{x:u[0],y:u[1]}});var g=function(e){return e.selectable()&&!e.selected()};p.emit("box").stdFilter(g).select().emit("boxselect"),p.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(null!=i&&i.unactivate(),t.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(t.touches[1]);else if(t.touches[0]);else if(!t.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var f=e.dragData.touchDragEles;if(null!=i){var y=i._private.grabbed;v(f),e.redrawHint("drag",!0),e.redrawHint("eles",!0),y&&(i.emit("freeon"),f.emit("free"),e.dragData.didDrag&&(i.emit("dragfreeon"),f.emit("dragfree"))),r(i,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]}),i.unactivate(),e.touchData.start=null}else{var m=e.findNearestElement(u[0],u[1],!0,!0);r(m,["touchend","tapend","vmouseup","tapdragout"],t,{x:u[0],y:u[1]})}var b=e.touchData.startPosition[0]-u[0],x=b*b,w=e.touchData.startPosition[1]-u[1],E=(x+w*w)*l*l;e.touchData.singleTouchMoved||(i||s.$(":selected").unselect(["tapunselect"]),r(i,["tap","vclick"],t,{x:u[0],y:u[1]}),W=!1,t.timeStamp-K<=s.multiClickDebounceTime()?($&&clearTimeout($),W=!0,K=null,r(i,["dbltap","vdblclick"],t,{x:u[0],y:u[1]})):($=setTimeout((function(){W||r(i,["onetap","voneclick"],t,{x:u[0],y:u[1]})}),s.multiClickDebounceTime()),K=t.timeStamp)),null!=i&&!e.dragData.didDrag&&i._private.selectable&&E<e.touchTapThreshold2&&!e.pinching&&("single"===s.selectionType()?(s.$(n).unmerge(i).unselect(["tapunselect"]),i.select(["tapselect"])):i.selected()?i.unselect(["tapunselect"]):i.select(["tapselect"]),e.redrawHint("eles",!0)),e.touchData.singleTouchMoved=!0}for(var T=0;T<u.length;T++)c[T]=u[T];e.dragData.didDrag=!1,0===t.touches.length&&(e.touchData.dragDelta=[],e.touchData.startPosition=[null,null,null,null,null,null],e.touchData.startGPosition=null,e.touchData.didSelect=!1),t.touches.length<2&&(1===t.touches.length&&(e.touchData.startGPosition=[t.touches[0].clientX,t.touches[0].clientY]),e.pinching=!1,e.redrawHint("eles",!0),e.redraw())}},!1),"undefined"==typeof TouchEvent){var J=[],ee=function(e){return{clientX:e.clientX,clientY:e.clientY,force:1,identifier:e.pointerId,pageX:e.pageX,pageY:e.pageY,radiusX:e.width/2,radiusY:e.height/2,screenX:e.screenX,screenY:e.screenY,target:e.target}},te=function(e){return{event:e,touch:ee(e)}},ne=function(e){J.push(te(e))},re=function(e){for(var t=0;t<J.length;t++)if(J[t].event.pointerId===e.pointerId)return void J.splice(t,1)},ie=function(e){var t=J.filter((function(t){return t.event.pointerId===e.pointerId}))[0];t.event=e,t.touch=ee(e)},ae=function(e){e.touches=J.map((function(e){return e.touch}))},oe=function(e){return"mouse"===e.pointerType||4===e.pointerType};e.registerBinding(e.container,"pointerdown",(function(e){oe(e)||(e.preventDefault(),ne(e),ae(e),U(e))})),e.registerBinding(e.container,"pointerup",(function(e){oe(e)||(re(e),ae(e),q(e))})),e.registerBinding(e.container,"pointercancel",(function(e){oe(e)||(re(e),ae(e),H(e))})),e.registerBinding(e.container,"pointermove",(function(e){oe(e)||(e.preventDefault(),ie(e),ae(e),j(e))}))}}},Th={generatePolygon:function(e,t){return this.nodeShapes[e]={renderer:this,name:e,points:t,draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl("polygon",e,t,n,r,i,this.points)},intersectLine:function(e,t,n,r,i,a,o){return ir(i,a,this.points,e,t,n/2,r/2,o)},checkPoint:function(e,t,n,r,i,a,o){return $n(e,t,this.points,a,o,r,i,[0,-1],n)}}},generateEllipse:function(){return this.nodeShapes.ellipse={renderer:this,name:"ellipse",draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){return Jn(i,a,e,t,n/2+o,r/2+o)},checkPoint:function(e,t,n,r,i,a,o){return er(e,t,r,i,a,o,n)}}},generateRoundPolygon:function(e,t){for(var n=new Array(2*t.length),r=0;r<t.length/2;r++){var i=2*r,a=void 0;a=r<t.length/2-1?2*(r+1):0,n[4*r]=t[i],n[4*r+1]=t[i+1];var o=t[a]-t[i],s=t[a+1]-t[i+1],l=Math.sqrt(o*o+s*s);n[4*r+2]=o/l,n[4*r+3]=s/l}return this.nodeShapes[e]={renderer:this,name:e,points:n,draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl("round-polygon",e,t,n,r,i,this.points)},intersectLine:function(e,t,n,r,i,a,o){return ar(i,a,this.points,e,t,n,r)},checkPoint:function(e,t,n,r,i,a,o){return Kn(e,t,this.points,a,o,r,i)}}},generateRoundRectangle:function(){return this.nodeShapes["round-rectangle"]=this.nodeShapes.roundrectangle={renderer:this,name:"round-rectangle",points:sr(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){return Yn(i,a,e,t,n,r,o)},checkPoint:function(e,t,n,r,i,a,o){var s=cr(r,i),l=2*s;return!!($n(e,t,this.points,a,o,r,i-l,[0,-1],n)||$n(e,t,this.points,a,o,r-l,i,[0,-1],n)||er(e,t,l,l,a-r/2+s,o-i/2+s,n)||er(e,t,l,l,a+r/2-s,o-i/2+s,n)||er(e,t,l,l,a+r/2-s,o+i/2-s,n)||er(e,t,l,l,a-r/2+s,o+i/2-s,n))}}},generateCutRectangle:function(){return this.nodeShapes["cut-rectangle"]=this.nodeShapes.cutrectangle={renderer:this,name:"cut-rectangle",cornerLength:dr(),points:sr(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},generateCutTrianglePts:function(e,t,n,r){var i=this.cornerLength,a=t/2,o=e/2,s=n-o,l=n+o,u=r-a,c=r+a;return{topLeft:[s,u+i,s+i,u,s+i,u+i],topRight:[l-i,u,l,u+i,l-i,u+i],bottomRight:[l,c-i,l-i,c,l-i,c-i],bottomLeft:[s+i,c,s,c-i,s+i,c-i]}},intersectLine:function(e,t,n,r,i,a,o){var s=this.generateCutTrianglePts(n+2*o,r+2*o,e,t),l=[].concat.apply([],[s.topLeft.splice(0,4),s.topRight.splice(0,4),s.bottomRight.splice(0,4),s.bottomLeft.splice(0,4)]);return ir(i,a,l,e,t)},checkPoint:function(e,t,n,r,i,a,o){if($n(e,t,this.points,a,o,r,i-2*this.cornerLength,[0,-1],n))return!0;if($n(e,t,this.points,a,o,r-2*this.cornerLength,i,[0,-1],n))return!0;var s=this.generateCutTrianglePts(r,i,a,o);return Wn(e,t,s.topLeft)||Wn(e,t,s.topRight)||Wn(e,t,s.bottomRight)||Wn(e,t,s.bottomLeft)}}},generateBarrel:function(){return this.nodeShapes.barrel={renderer:this,name:"barrel",points:sr(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){var s=.15,l=.5,u=.85,c=this.generateBarrelBezierPts(n+2*o,r+2*o,e,t),h=function(e){var t=Cn({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},s),n=Cn({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},l),r=Cn({x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},u);return[e[0],e[1],t.x,t.y,n.x,n.y,r.x,r.y,e[4],e[5]]},d=[].concat(h(c.topLeft),h(c.topRight),h(c.bottomRight),h(c.bottomLeft));return ir(i,a,d,e,t)},generateBarrelBezierPts:function(e,t,n,r){var i=t/2,a=e/2,o=n-a,s=n+a,l=r-i,u=r+i,c=gr(e,t),h=c.heightOffset,d=c.widthOffset,p=c.ctrlPtOffsetPct*e,g={topLeft:[o,l+h,o+p,l,o+d,l],topRight:[s-d,l,s-p,l,s,l+h],bottomRight:[s,u-h,s-p,u,s-d,u],bottomLeft:[o+d,u,o+p,u,o,u-h]};return g.topLeft.isTop=!0,g.topRight.isTop=!0,g.bottomLeft.isBottom=!0,g.bottomRight.isBottom=!0,g},checkPoint:function(e,t,n,r,i,a,o){var s=gr(r,i),l=s.heightOffset,u=s.widthOffset;if($n(e,t,this.points,a,o,r,i-2*l,[0,-1],n))return!0;if($n(e,t,this.points,a,o,r-2*u,i,[0,-1],n))return!0;for(var c=this.generateBarrelBezierPts(r,i,a,o),h=function(e,t,n){var r=n[4],i=n[2],a=n[0],o=n[5],s=n[1],l=Math.min(r,a),u=Math.max(r,a),c=Math.min(o,s),h=Math.max(o,s);if(l<=e&&e<=u&&c<=t&&t<=h){var d=pr(r,i,a),p=Un(d[0],d[1],d[2],e).filter((function(e){return 0<=e&&e<=1}));if(p.length>0)return p[0]}return null},d=Object.keys(c),p=0;p<d.length;p++){var g=c[d[p]],f=h(e,t,g);if(null!=f){var v=g[5],y=g[3],m=g[1],b=Dn(v,y,m,f);if(g.isTop&&b<=t)return!0;if(g.isBottom&&t<=b)return!0}}return!1}}},generateBottomRoundrectangle:function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:sr(4,0),draw:function(e,t,n,r,i){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i)},intersectLine:function(e,t,n,r,i,a,o){var s=t-(r/2+o),l=rr(i,a,e,t,e-(n/2+o),s,e+(n/2+o),s,!1);return l.length>0?l:Yn(i,a,e,t,n,r,o)},checkPoint:function(e,t,n,r,i,a,o){var s=cr(r,i),l=2*s;if($n(e,t,this.points,a,o,r,i-l,[0,-1],n))return!0;if($n(e,t,this.points,a,o,r-l,i,[0,-1],n))return!0;var u=r/2+2*n,c=i/2+2*n;return!!Wn(e,t,[a-u,o-c,a-u,o,a+u,o,a+u,o-c])||!!er(e,t,l,l,a+r/2-s,o+i/2-s,n)||!!er(e,t,l,l,a-r/2+s,o+i/2-s,n)}}},registerNodeShapes:function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",sr(3,0)),this.generateRoundPolygon("round-triangle",sr(3,0)),this.generatePolygon("rectangle",sr(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",sr(5,0)),this.generateRoundPolygon("round-pentagon",sr(5,0)),this.generatePolygon("hexagon",sr(6,0)),this.generateRoundPolygon("round-hexagon",sr(6,0)),this.generatePolygon("heptagon",sr(7,0)),this.generateRoundPolygon("round-heptagon",sr(7,0)),this.generatePolygon("octagon",sr(8,0)),this.generateRoundPolygon("round-octagon",sr(8,0));var r=new Array(20),i=ur(5,0),a=ur(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s<a.length/2;s++)a[2*s]*=o,a[2*s+1]*=o;for(s=0;s<5;s++)r[4*s]=i[2*s],r[4*s+1]=i[2*s+1],r[4*s+2]=a[2*s],r[4*s+3]=a[2*s+1];r=lr(r),this.generatePolygon("star",r),this.generatePolygon("vee",[-1,-1,0,-.333,1,-1,0,1]),this.generatePolygon("rhomboid",[-1,-1,.333,-1,1,1,-.333,1]),this.generatePolygon("right-rhomboid",[-.333,-1,1,-1,.333,1,-1,1]),this.nodeShapes.concavehexagon=this.generatePolygon("concave-hexagon",[-1,-.95,-.75,0,-1,.95,1,.95,.75,0,1,-.95]);var l=[-1,-1,.25,-1,1,0,.25,1,-1,1];this.generatePolygon("tag",l),this.generateRoundPolygon("round-tag",l),e.makePolygon=function(e){var n,r="polygon-"+e.join("$");return(n=this[r])?n:t.generatePolygon(r,e)}}},_h={timeToRender:function(){return this.redrawTotalTime/this.redrawCount},redraw:function(e){e=e||kt();var t=this;void 0===t.averageRedrawTime&&(t.averageRedrawTime=0),void 0===t.lastRedrawTime&&(t.lastRedrawTime=0),void 0===t.lastDrawTime&&(t.lastDrawTime=0),t.requestedFrame=!0,t.renderOptions=e},beforeRender:function(e,t){if(!this.destroyed){null==t&&Dt("Priority is not optional for beforeRender");var n=this.beforeRenderCallbacks;n.push({fn:e,priority:t}),n.sort((function(e,t){return t.priority-e.priority}))}}},Dh=function(e,t,n){for(var r=e.beforeRenderCallbacks,i=0;i<r.length;i++)r[i].fn(t,n)};_h.startRenderLoop=function(){var e=this,t=e.cy;if(!e.renderLoopStarted){e.renderLoopStarted=!0;var n=function n(r){if(!e.destroyed){if(t.batching());else if(e.requestedFrame&&!e.skipFrame){Dh(e,!0,r);var i=rt();e.render(e.renderOptions);var a=e.lastDrawTime=rt();void 0===e.averageRedrawTime&&(e.averageRedrawTime=a-i),void 0===e.redrawCount&&(e.redrawCount=0),e.redrawCount++,void 0===e.redrawTotalTime&&(e.redrawTotalTime=0);var o=a-i;e.redrawTotalTime+=o,e.lastRedrawTime=o,e.averageRedrawTime=e.averageRedrawTime/2+o/2,e.requestedFrame=!1}else Dh(e,!1,r);e.skipFrame=!1,nt(n)}};nt(n)}};var Ch=function(e){this.init(e)},Nh=Ch.prototype;Nh.clientFunctions=["redrawHint","render","renderTo","matchCanvasSize","nodeShapeImpl","arrowShapeImpl"],Nh.init=function(e){var t=this;t.options=e,t.cy=e.cy;var n=t.container=e.cy.container(),r=t.cy.window();if(r){var i=r.document,a=i.head,o="__________cytoscape_stylesheet",s="__________cytoscape_container",l=null!=i.getElementById(o);if(n.className.indexOf(s)<0&&(n.className=(n.className||"")+" "+s),!l){var u=i.createElement("style");u.id=o,u.textContent="."+s+" { position: relative; }",a.insertBefore(u,a.children[0])}"static"===r.getComputedStyle(n).getPropertyValue("position")&&Nt("A Cytoscape container has style position:static and so can not use UI extensions properly")}t.selection=[void 0,void 0,void 0,void 0,0],t.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],t.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},t.dragData={possibleDragElements:[]},t.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},t.redraws=0,t.showFps=e.showFps,t.debug=e.debug,t.hideEdgesOnViewport=e.hideEdgesOnViewport,t.textureOnViewport=e.textureOnViewport,t.wheelSensitivity=e.wheelSensitivity,t.motionBlurEnabled=e.motionBlur,t.forcedPixelRatio=_(e.pixelRatio)?e.pixelRatio:null,t.motionBlur=e.motionBlur,t.motionBlurOpacity=e.motionBlurOpacity,t.motionBlurTransparency=1-t.motionBlurOpacity,t.motionBlurPxRatio=1,t.mbPxRBlurry=1,t.minMbLowQualFrames=4,t.fullQualityMb=!1,t.clearedForMotionBlur=[],t.desktopTapThreshold=e.desktopTapThreshold,t.desktopTapThreshold2=e.desktopTapThreshold*e.desktopTapThreshold,t.touchTapThreshold=e.touchTapThreshold,t.touchTapThreshold2=e.touchTapThreshold*e.touchTapThreshold,t.tapholdDuration=500,t.bindings=[],t.beforeRenderCallbacks=[],t.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},t.registerNodeShapes(),t.registerArrowShapes(),t.registerCalculationListeners()},Nh.notify=function(e,t){var n=this,r=n.cy;this.destroyed||("init"!==e?"destroy"!==e?(("add"===e||"remove"===e||"move"===e&&r.hasCompoundNodes()||"load"===e||"zorder"===e||"mount"===e)&&n.invalidateCachedZSortedEles(),"viewport"===e&&n.redrawHint("select",!0),"load"!==e&&"resize"!==e&&"mount"!==e||(n.invalidateContainerClientCoordsCache(),n.matchCanvasSize(n.container)),n.redrawHint("eles",!0),n.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()):n.destroy():n.load())},Nh.destroy=function(){var e=this;e.destroyed=!0,e.cy.stopAnimationLoop();for(var t=0;t<e.bindings.length;t++){var n=e.bindings[t],r=n.target;(r.off||r.removeEventListener).apply(r,n.args)}if(e.bindings=[],e.beforeRenderCallbacks=[],e.onUpdateEleCalcsFns=[],e.removeObserver&&e.removeObserver.disconnect(),e.styleObserver&&e.styleObserver.disconnect(),e.resizeObserver&&e.resizeObserver.disconnect(),e.labelCalcDiv)try{document.body.removeChild(e.labelCalcDiv)}catch(i){}},Nh.isHeadless=function(){return!1},[rh,xh,wh,Eh,Th,_h].forEach((function(e){Q(Nh,e)}));var Ah=1e3/60,Lh={setupDequeueing:function(e){return function(){var t=this,n=this.renderer;if(!t.dequeueingSetup){t.dequeueingSetup=!0;var r=Qe((function(){n.redrawHint("eles",!0),n.redrawHint("drag",!0),n.redraw()}),e.deqRedrawThreshold),i=function(i,a){var o=rt(),s=n.averageRedrawTime,l=n.lastRedrawTime,u=[],c=n.cy.extent(),h=n.getPixelRatio();for(i||n.flushRenderedStyleQueue();;){var d=rt(),p=d-o,g=d-a;if(l<Ah){var f=Ah-(i?s:0);if(g>=e.deqFastCost*f)break}else if(i){if(p>=e.deqCost*l||p>=e.deqAvgCost*s)break}else if(g>=e.deqNoDrawCost*Ah)break;var v=e.deq(t,h,c);if(!(v.length>0))break;for(var y=0;y<v.length;y++)u.push(v[y])}u.length>0&&(e.onDeqd(t,u),!i&&e.shouldRedraw(t,u,h,c)&&r())},a=e.priority||_t;n.beforeRender(i,a(t))}}}},Sh=function(){function e(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Et;t(this,e),this.idsByKey=new Yt,this.keyForId=new Yt,this.cachesByLvl=new Yt,this.lvls=[],this.getKey=n,this.doesEleInvalidateKey=r}return i(e,[{key:"getIdsFor",value:function(e){null==e&&Dt("Can not get id list for null key");var t=this.idsByKey,n=this.idsByKey.get(e);return n||(n=new Ut,t.set(e,n)),n}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return r||(r=new Yt,t.set(e,r),n.push(e)),r}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return null!=r&&this.updateKeyMappingFor(e),r}},{key:"getForCachedKey",value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:"setCache",value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:"set",value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach((function(n){return t.deleteCache(e,n)}))}},{key:"invalidate",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||0===this.getNumberOfIdsForKey(n)}}]),e}(),Oh=25,Ih=50,kh=-4,Mh=3,Ph=7.99,Rh=8,Bh=1024,Fh=1024,zh=1024,Gh=.2,Yh=.8,Xh=10,Vh=.15,Uh=.1,jh=.9,Hh=.9,qh=100,Wh=1,$h={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},Kh=Mt({getKey:null,doesEleInvalidateKey:Et,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:wt,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Zh=function(e,t){var n=this;n.renderer=e,n.onDequeues=[];var r=Kh(t);Q(n,r),n.lookup=new Sh(r.getKey,r.doesEleInvalidateKey),n.setupDequeueing()},Qh=Zh.prototype;Qh.reasons=$h,Qh.getTextureQueue=function(e){var t=this;return t.eleImgCaches=t.eleImgCaches||{},t.eleImgCaches[e]=t.eleImgCaches[e]||[]},Qh.getRetiredTextureQueue=function(e){var t=this,n=t.eleImgCaches.retired=t.eleImgCaches.retired||{};return n[e]=n[e]||[]},Qh.getElementQueue=function(){var e=this;return e.eleCacheQueue=e.eleCacheQueue||new $t((function(e,t){return t.reqs-e.reqs}))},Qh.getElementKeyToQueue=function(){var e=this;return e.eleKeyToCacheQueue=e.eleKeyToCacheQueue||{}},Qh.getElement=function(e,t,n,r,i){var a=this,o=this.renderer,s=o.cy.zoom(),l=this.lookup;if(!t||0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed())return null;if(!a.allowEdgeTxrCaching&&e.isEdge()||!a.allowParentTxrCaching&&e.isParent())return null;if(null==r&&(r=Math.ceil(xn(s*n))),r<kh)r=kh;else if(s>=Ph||r>Mh)return null;var u=Math.pow(2,r),c=t.h*u,h=t.w*u,d=o.eleTextBiggerThanMin(e,u);if(!this.isVisible(e,d))return null;var p,g=l.get(e,r);if(g&&g.invalidated&&(g.invalidated=!1,g.texture.invalidatedWidth-=g.width),g)return g;if(p=c<=Oh?Oh:c<=Ih?Ih:Math.ceil(c/Ih)*Ih,c>zh||h>Fh)return null;var f=a.getTextureQueue(p),v=f[f.length-2],y=function(){return a.recycleTexture(p,h)||a.addTexture(p,h)};v||(v=f[f.length-1]),v||(v=y()),v.width-v.usedWidth<h&&(v=y());for(var m,b=function(e){return e&&e.scaledLabelShown===d},x=i&&i===$h.dequeue,w=i&&i===$h.highQuality,E=i&&i===$h.downscale,T=r+1;T<=Mh;T++){var _=l.get(e,T);if(_){m=_;break}}var D=m&&m.level===r+1?m:null,C=function(){v.context.drawImage(D.texture.canvas,D.x,0,D.width,D.height,v.usedWidth,0,h,c)};if(v.context.setTransform(1,0,0,1,0,0),v.context.clearRect(v.usedWidth,0,h,p),b(D))C();else if(b(m)){if(!w)return a.queueElement(e,m.level-1),m;for(var N=m.level;N>r;N--)D=a.getElement(e,t,n,N,$h.downscale);C()}else{var A;if(!x&&!w&&!E)for(var L=r-1;L>=kh;L--){var S=l.get(e,L);if(S){A=S;break}}if(b(A))return a.queueElement(e,r),A;v.context.translate(v.usedWidth,0),v.context.scale(u,u),this.drawElement(v.context,e,t,d,!1),v.context.scale(1/u,1/u),v.context.translate(-v.usedWidth,0)}return g={x:v.usedWidth,texture:v,level:r,scale:u,width:h,height:c,scaledLabelShown:d},v.usedWidth+=Math.ceil(h+Rh),v.eleCaches.push(g),l.set(e,r,g),a.checkTextureFullness(v),g},Qh.invalidateElements=function(e){for(var t=0;t<e.length;t++)this.invalidateElement(e[t])},Qh.invalidateElement=function(e){var t=this,n=t.lookup,r=[];if(n.isInvalid(e)){for(var i=kh;i<=Mh;i++){var a=n.getForCachedKey(e,i);a&&r.push(a)}if(n.invalidate(e))for(var o=0;o<r.length;o++){var s=r[o],l=s.texture;l.invalidatedWidth+=s.width,s.invalidated=!0,t.checkTextureUtility(l)}t.removeFromQueue(e)}},Qh.checkTextureUtility=function(e){e.invalidatedWidth>=Gh*e.width&&this.retireTexture(e)},Qh.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>Yh&&e.fullnessChecks>=Xh?Pt(t,e):e.fullnessChecks++},Qh.retireTexture=function(e){var t=this,n=e.height,r=t.getTextureQueue(n),i=this.lookup;Pt(r,e),e.retired=!0;for(var a=e.eleCaches,o=0;o<a.length;o++){var s=a[o];i.deleteCache(s.key,s.level)}Rt(a),t.getRetiredTextureQueue(n).push(e)},Qh.addTexture=function(e,t){var n=this,r={};return n.getTextureQueue(e).push(r),r.eleCaches=[],r.height=e,r.width=Math.max(Bh,t),r.usedWidth=0,r.invalidatedWidth=0,r.fullnessChecks=0,r.canvas=n.renderer.makeOffscreenCanvas(r.width,r.height),r.context=r.canvas.getContext("2d"),r},Qh.recycleTexture=function(e,t){for(var n=this,r=n.getTextureQueue(e),i=n.getRetiredTextureQueue(e),a=0;a<i.length;a++){var o=i[a];if(o.width>=t)return o.retired=!1,o.usedWidth=0,o.invalidatedWidth=0,o.fullnessChecks=0,Rt(o.eleCaches),o.context.setTransform(1,0,0,1,0,0),o.context.clearRect(0,0,o.width,o.height),Pt(i,o),r.push(o),o}},Qh.queueElement=function(e,t){var n=this,r=n.getElementQueue(),i=n.getElementKeyToQueue(),a=this.getKey(e),o=i[a];if(o)o.level=Math.max(o.level,t),o.eles.merge(e),o.reqs++,r.updateItem(o);else{var s={eles:e.spawn().merge(e),level:t,reqs:1,key:a};r.push(s),i[a]=s}},Qh.dequeue=function(e){for(var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),i=[],a=t.lookup,o=0;o<Wh&&n.size()>0;o++){var s=n.pop(),l=s.key,u=s.eles[0],c=a.hasCache(u,s.level);if(r[l]=null,!c){i.push(s);var h=t.getBoundingBox(u);t.getElement(u,h,e,s.level,$h.dequeue)}}return i},Qh.removeFromQueue=function(e){var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),i=this.getKey(e),a=r[i];null!=a&&(1===a.eles.length?(a.reqs=xt,n.updateItem(a),n.pop(),r[i]=null):a.eles.unmerge(e))},Qh.onDequeue=function(e){this.onDequeues.push(e)},Qh.offDequeue=function(e){Pt(this.onDequeues,e)},Qh.setupDequeueing=Lh.setupDequeueing({deqRedrawThreshold:qh,deqCost:Vh,deqAvgCost:Uh,deqNoDrawCost:jh,deqFastCost:Hh,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n<e.onDequeues.length;n++)(0,e.onDequeues[n])(t)},shouldRedraw:function(e,t,n,r){for(var i=0;i<t.length;i++)for(var a=t[i].eles,o=0;o<a.length;o++){var s=a[o].boundingBox();if(Bn(s,r))return!0}return!1},priority:function(e){return e.renderer.beforeRenderPriorities.eleTxrDeq}});var Jh=1,ed=-4,td=2,nd=3.99,rd=50,id=50,ad=.15,od=.1,sd=.9,ld=.9,ud=1,cd=250,hd=16e6,dd=!0,pd=function(e){var t=this,n=t.renderer=e,r=n.cy;t.layersByLevel={},t.firstGet=!0,t.lastInvalidationTime=rt()-2*cd,t.skipping=!1,t.eleTxrDeqs=r.collection(),t.scheduleElementRefinement=Qe((function(){t.refineElementTextures(t.eleTxrDeqs),t.eleTxrDeqs.unmerge(t.eleTxrDeqs)}),id),n.beforeRender((function(e,n){n-t.lastInvalidationTime<=cd?t.skipping=!0:t.skipping=!1}),n.beforeRenderPriorities.lyrTxrSkip);var i=function(e,t){return t.reqs-e.reqs};t.layersQueue=new $t(i),t.setupDequeueing()},gd=pd.prototype,fd=0,vd=Math.pow(2,53)-1;gd.makeLayer=function(e,t){var n=Math.pow(2,t),r=Math.ceil(e.w*n),i=Math.ceil(e.h*n),a=this.renderer.makeOffscreenCanvas(r,i),o={id:fd=++fd%vd,bb:e,level:t,width:r,height:i,canvas:a,context:a.getContext("2d"),eles:[],elesQueue:[],reqs:0},s=o.context,l=-o.bb.x1,u=-o.bb.y1;return s.scale(n,n),s.translate(l,u),o},gd.getLayers=function(e,t,n){var r=this,i=r.renderer.cy.zoom(),a=r.firstGet;if(r.firstGet=!1,null==n)if((n=Math.ceil(xn(i*t)))<ed)n=ed;else if(i>=nd||n>td)return null;r.validateLayersElesOrdering(n,e);var o,s,l=r.layersByLevel,u=Math.pow(2,n),c=l[n]=l[n]||[],h=function(){var t=function(t){if(r.validateLayersElesOrdering(t,e),r.levelIsComplete(t,e))return s=l[t],!0},i=function(e){if(!s)for(var r=n+e;ed<=r&&r<=td&&!t(r);r+=e);};i(1),i(-1);for(var a=c.length-1;a>=0;a--){var o=c[a];o.invalid&&Pt(c,o)}};if(r.levelIsComplete(n,e))return c;h();var d=function(){if(!o){o=Ln();for(var t=0;t<e.length;t++)In(o,e[t].boundingBox())}return o},p=function(e){var t=(e=e||{}).after;if(d(),o.w*u*(o.h*u)>hd)return null;var i=r.makeLayer(o,n);if(null!=t){var a=c.indexOf(t)+1;c.splice(a,0,i)}else(void 0===e.insert||e.insert)&&c.unshift(i);return i};if(r.skipping&&!a)return null;for(var g=null,f=e.length/Jh,v=!a,y=0;y<e.length;y++){var m=e[y],b=m._private.rscratch,x=b.imgLayerCaches=b.imgLayerCaches||{},w=x[n];if(w)g=w;else{if((!g||g.eles.length>=f||!Gn(g.bb,m.boundingBox()))&&!(g=p({insert:!0,after:g})))return null;s||v?r.queueLayer(g,m):r.drawEleInLayer(g,m,n,t),g.eles.push(m),x[n]=g}}return s||(v?null:c)},gd.getEleLevelForLayerLevel=function(e,t){return e},gd.drawEleInLayer=function(e,t,n,r){var i=this,a=this.renderer,o=e.context,s=t.boundingBox();0!==s.w&&0!==s.h&&t.visible()&&(n=i.getEleLevelForLayerLevel(n,r),a.setImgSmoothing(o,!1),a.drawCachedElement(o,t,null,null,n,dd),a.setImgSmoothing(o,!0))},gd.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i<n.length;i++){var a=n[i];if(a.reqs>0)return!1;if(a.invalid)return!1;r+=a.eles.length}return r===t.length},gd.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r<n.length;r++){for(var i=n[r],a=-1,o=0;o<t.length;o++)if(i.eles[0]===t[o]){a=o;break}if(a<0)this.invalidateLayer(i);else{var s=a;for(o=0;o<i.eles.length;o++)if(i.eles[o]!==t[s+o]){this.invalidateLayer(i);break}}}},gd.updateElementsInLayers=function(e,t){for(var n=this,r=A(e[0]),i=0;i<e.length;i++)for(var a=r?null:e[i],o=r?e[i]:e[i].ele,s=o._private.rscratch,l=s.imgLayerCaches=s.imgLayerCaches||{},u=ed;u<=td;u++){var c=l[u];c&&(a&&n.getEleLevelForLayerLevel(c.level)!==a.level||t(c,o,a))}},gd.haveLayers=function(){for(var e=this,t=!1,n=ed;n<=td;n++){var r=e.layersByLevel[n];if(r&&r.length>0){t=!0;break}}return t},gd.invalidateElements=function(e){var t=this;0!==e.length&&(t.lastInvalidationTime=rt(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,(function(e,n,r){t.invalidateLayer(e)})))},gd.invalidateLayer=function(e){if(this.lastInvalidationTime=rt(),!e.invalid){var t=e.level,n=e.eles,r=this.layersByLevel[t];Pt(r,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var i=0;i<n.length;i++){var a=n[i]._private.rscratch.imgLayerCaches;a&&(a[t]=null)}}},gd.refineElementTextures=function(e){var t=this;t.updateElementsInLayers(e,(function(e,n,r){var i=e.replacement;if(i||((i=e.replacement=t.makeLayer(e.bb,e.level)).replaces=e,i.eles=e.eles),!i.reqs)for(var a=0;a<i.eles.length;a++)t.queueLayer(i,i.eles[a])}))},gd.enqueueElementRefinement=function(e){this.eleTxrDeqs.merge(e),this.scheduleElementRefinement()},gd.queueLayer=function(e,t){var n=this.layersQueue,r=e.elesQueue,i=r.hasId=r.hasId||{};if(!e.replacement){if(t){if(i[t.id()])return;r.push(t),i[t.id()]=!0}e.reqs?(e.reqs++,n.updateItem(e)):(e.reqs=1,n.push(e))}},gd.dequeue=function(e){for(var t=this,n=t.layersQueue,r=[],i=0;i<ud&&0!==n.size();){var a=n.peek();if(a.replacement)n.pop();else if(a.replaces&&a!==a.replaces.replacement)n.pop();else if(a.invalid)n.pop();else{var o=a.elesQueue.shift();o&&(t.drawEleInLayer(a,o,a.level,e),i++),0===r.length&&r.push(!0),0===a.elesQueue.length&&(n.pop(),a.reqs=0,a.replaces&&t.applyLayerReplacement(a),t.requestRedraw())}}return r},gd.applyLayerReplacement=function(e){var t=this,n=t.layersByLevel[e.level],r=e.replaces,i=n.indexOf(r);if(!(i<0||r.invalid)){n[i]=e;for(var a=0;a<e.eles.length;a++){var o=e.eles[a]._private,s=o.imgLayerCaches=o.imgLayerCaches||{};s&&(s[e.level]=e)}t.requestRedraw()}},gd.requestRedraw=Qe((function(){var e=this.renderer;e.redrawHint("eles",!0),e.redrawHint("drag",!0),e.redraw()}),100),gd.setupDequeueing=Lh.setupDequeueing({deqRedrawThreshold:rd,deqCost:ad,deqAvgCost:od,deqNoDrawCost:sd,deqFastCost:ld,deq:function(e,t){return e.dequeue(t)},onDeqd:_t,shouldRedraw:wt,priority:function(e){return e.renderer.beforeRenderPriorities.lyrTxrDeq}});var yd,md={};function bd(e,t){for(var n=0;n<t.length;n++){var r=t[n];e.lineTo(r.x,r.y)}}function xd(e,t,n){for(var r,i=0;i<t.length;i++){var a=t[i];0===i&&(r=a),e.lineTo(a.x,a.y)}e.quadraticCurveTo(n.x,n.y,r.x,r.y)}function wd(e,t,n){e.beginPath&&e.beginPath();for(var r=t,i=0;i<r.length;i++){var a=r[i];e.lineTo(a.x,a.y)}var o=n,s=n[0];for(e.moveTo(s.x,s.y),i=1;i<o.length;i++)a=o[i],e.lineTo(a.x,a.y);e.closePath&&e.closePath()}function Ed(e,t,n,r,i){e.beginPath&&e.beginPath(),e.arc(n,r,i,0,2*Math.PI,!1);var a=t,o=a[0];e.moveTo(o.x,o.y);for(var s=0;s<a.length;s++){var l=a[s];e.lineTo(l.x,l.y)}e.closePath&&e.closePath()}function Td(e,t,n,r){e.arc(t,n,r,0,2*Math.PI,!1)}md.arrowShapeImpl=function(e){return(yd||(yd={polygon:bd,"triangle-backcurve":xd,"triangle-tee":wd,"circle-triangle":Ed,"triangle-cross":wd,circle:Td}))[e]};var _d={drawElement:function(e,t,n,r,i,a){var o=this;t.isNode()?o.drawNode(e,t,n,r,i,a):o.drawEdge(e,t,n,r,i,a)},drawElementOverlay:function(e,t){var n=this;t.isNode()?n.drawNodeOverlay(e,t):n.drawEdgeOverlay(e,t)},drawElementUnderlay:function(e,t){var n=this;t.isNode()?n.drawNodeUnderlay(e,t):n.drawEdgeUnderlay(e,t)},drawCachedElementPortion:function(e,t,n,r,i,a,o,s){var l=this,u=n.getBoundingBox(t);if(0!==u.w&&0!==u.h){var c=n.getElement(t,u,r,i,a);if(null!=c){var h=s(l,t);if(0===h)return;var d,p,g,f,v,y,m=o(l,t),b=u.x1,x=u.y1,w=u.w,E=u.h;if(0!==m){var T=n.getRotationPoint(t);g=T.x,f=T.y,e.translate(g,f),e.rotate(m),(v=l.getImgSmoothing(e))||l.setImgSmoothing(e,!0);var _=n.getRotationOffset(t);d=_.x,p=_.y}else d=b,p=x;1!==h&&(y=e.globalAlpha,e.globalAlpha=y*h),e.drawImage(c.texture.canvas,c.x,0,c.width,c.height,d,p,w,E),1!==h&&(e.globalAlpha=y),0!==m&&(e.rotate(-m),e.translate(-g,-f),v||l.setImgSmoothing(e,!1))}else n.drawElement(e,t)}}},Dd=function(){return 0},Cd=function(e,t){return e.getTextAngle(t,null)},Nd=function(e,t){return e.getTextAngle(t,"source")},Ad=function(e,t){return e.getTextAngle(t,"target")},Ld=function(e,t){return t.effectiveOpacity()},Sd=function(e,t){return t.pstyle("text-opacity").pfValue*t.effectiveOpacity()};_d.drawCachedElement=function(e,t,n,r,i,a){var o=this,s=o.data,l=s.eleTxrCache,u=s.lblTxrCache,c=s.slbTxrCache,h=s.tlbTxrCache,d=t.boundingBox(),p=!0===a?l.reasons.highQuality:null;if(0!==d.w&&0!==d.h&&t.visible()&&(!r||Bn(d,r))){var g=t.isEdge(),f=t.element()._private.rscratch.badLine;o.drawElementUnderlay(e,t),o.drawCachedElementPortion(e,t,l,n,i,p,Dd,Ld),g&&f||o.drawCachedElementPortion(e,t,u,n,i,p,Cd,Sd),g&&!f&&(o.drawCachedElementPortion(e,t,c,n,i,p,Nd,Sd),o.drawCachedElementPortion(e,t,h,n,i,p,Ad,Sd)),o.drawElementOverlay(e,t)}},_d.drawElements=function(e,t){for(var n=this,r=0;r<t.length;r++){var i=t[r];n.drawElement(e,i)}},_d.drawCachedElements=function(e,t,n,r){for(var i=this,a=0;a<t.length;a++){var o=t[a];i.drawCachedElement(e,o,n,r)}},_d.drawCachedNodes=function(e,t,n,r){for(var i=this,a=0;a<t.length;a++){var o=t[a];o.isNode()&&i.drawCachedElement(e,o,n,r)}},_d.drawLayeredElements=function(e,t,n,r){var i=this,a=i.data.lyrTxrCache.getLayers(t,n);if(a)for(var o=0;o<a.length;o++){var s=a[o],l=s.bb;0!==l.w&&0!==l.h&&e.drawImage(s.canvas,l.x1,l.y1,l.w,l.h)}else i.drawCachedElements(e,t,n,r)};var Od={drawEdge:function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this,s=t._private.rscratch;if((!a||t.visible())&&!s.badLine&&null!=s.allpts&&!isNaN(s.allpts[0])){var l;n&&(l=n,e.translate(-l.x1,-l.y1));var u=a?t.pstyle("opacity").value:1,c=a?t.pstyle("line-opacity").value:1,h=t.pstyle("curve-style").value,d=t.pstyle("line-style").value,p=t.pstyle("width").pfValue,g=t.pstyle("line-cap").value,f=u*c,v=u*c,y=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:f;"straight-triangle"===h?(o.eleStrokeStyle(e,t,n),o.drawEdgeTrianglePath(t,e,s.allpts)):(e.lineWidth=p,e.lineCap=g,o.eleStrokeStyle(e,t,n),o.drawEdgePath(t,e,s.allpts,d),e.lineCap="butt")},m=function(){i&&o.drawEdgeOverlay(e,t)},b=function(){i&&o.drawEdgeUnderlay(e,t)},x=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:v;o.drawArrowheads(e,t,n)},w=function(){o.drawElementText(e,t,null,r)};if(e.lineJoin="round","yes"===t.pstyle("ghost").value){var E=t.pstyle("ghost-offset-x").pfValue,T=t.pstyle("ghost-offset-y").pfValue,_=t.pstyle("ghost-opacity").value,D=f*_;e.translate(E,T),y(D),x(D),e.translate(-E,-T)}b(),y(),x(),m(),w(),n&&e.translate(l.x1,l.y1)}}},Id=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,n){if(n.visible()){var r=n.pstyle("".concat(e,"-opacity")).value;if(0!==r){var i=this,a=i.usePaths(),o=n._private.rscratch,s=2*n.pstyle("".concat(e,"-padding")).pfValue,l=n.pstyle("".concat(e,"-color")).value;t.lineWidth=s,"self"!==o.edgeType||a?t.lineCap="round":t.lineCap="butt",i.colorStrokeStyle(t,l[0],l[1],l[2],r),i.drawEdgePath(n,t,o.allpts,"solid")}}}};Od.drawEdgeOverlay=Id("overlay"),Od.drawEdgeUnderlay=Id("underlay"),Od.drawEdgePath=function(e,t,n,r){var i,a=e._private.rscratch,o=t,s=!1,l=this.usePaths(),u=e.pstyle("line-dash-pattern").pfValue,c=e.pstyle("line-dash-offset").pfValue;if(l){var h=n.join("$");a.pathCacheKey&&a.pathCacheKey===h?(i=t=a.pathCache,s=!0):(i=t=new Path2D,a.pathCacheKey=h,a.pathCache=i)}if(o.setLineDash)switch(r){case"dotted":o.setLineDash([1,1]);break;case"dashed":o.setLineDash(u),o.lineDashOffset=c;break;case"solid":o.setLineDash([])}if(!s&&!a.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),a.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var d=2;d+3<n.length;d+=4)t.quadraticCurveTo(n[d],n[d+1],n[d+2],n[d+3]);break;case"straight":case"segments":case"haystack":for(var p=2;p+1<n.length;p+=2)t.lineTo(n[p],n[p+1])}t=o,l?t.stroke(i):t.stroke(),t.setLineDash&&t.setLineDash([])},Od.drawEdgeTrianglePath=function(e,t,n){t.fillStyle=t.strokeStyle;for(var r=e.pstyle("width").pfValue,i=0;i+1<n.length;i+=2){var a=[n[i+2]-n[i],n[i+3]-n[i+1]],o=Math.sqrt(a[0]*a[0]+a[1]*a[1]),s=[a[1]/o,-a[0]/o],l=[s[0]*r/2,s[1]*r/2];t.beginPath(),t.moveTo(n[i]-l[0],n[i+1]-l[1]),t.lineTo(n[i]+l[0],n[i+1]+l[1]),t.lineTo(n[i+2],n[i+3]),t.closePath(),t.fill()}},Od.drawArrowheads=function(e,t,n){var r=t._private.rscratch,i="haystack"===r.edgeType;i||this.drawArrowhead(e,t,"source",r.arrowStartX,r.arrowStartY,r.srcArrowAngle,n),this.drawArrowhead(e,t,"mid-target",r.midX,r.midY,r.midtgtArrowAngle,n),this.drawArrowhead(e,t,"mid-source",r.midX,r.midY,r.midsrcArrowAngle,n),i||this.drawArrowhead(e,t,"target",r.arrowEndX,r.arrowEndY,r.tgtArrowAngle,n)},Od.drawArrowhead=function(e,t,n,r,i,a,o){if(!(isNaN(r)||null==r||isNaN(i)||null==i||isNaN(a)||null==a)){var s=this,l=t.pstyle(n+"-arrow-shape").value;if("none"!==l){var u="hollow"===t.pstyle(n+"-arrow-fill").value?"both":"filled",c=t.pstyle(n+"-arrow-fill").value,h=t.pstyle("width").pfValue,d=t.pstyle("opacity").value;void 0===o&&(o=d);var p=e.globalCompositeOperation;1===o&&"hollow"!==c||(e.globalCompositeOperation="destination-out",s.colorFillStyle(e,255,255,255,1),s.colorStrokeStyle(e,255,255,255,1),s.drawArrowShape(t,e,u,h,l,r,i,a),e.globalCompositeOperation=p);var g=t.pstyle(n+"-arrow-color").value;s.colorFillStyle(e,g[0],g[1],g[2],o),s.colorStrokeStyle(e,g[0],g[1],g[2],o),s.drawArrowShape(t,e,c,h,l,r,i,a)}}},Od.drawArrowShape=function(e,t,n,r,i,a,o,s){var l,u=this,c=this.usePaths()&&"triangle-cross"!==i,h=!1,d=t,p={x:a,y:o},g=e.pstyle("arrow-scale").value,f=this.getArrowWidth(r,g),v=u.arrowShapes[i];if(c){var y=u.arrowPathCache=u.arrowPathCache||[],m=gt(i),b=y[m];null!=b?(l=t=b,h=!0):(l=t=new Path2D,y[m]=l)}h||(t.beginPath&&t.beginPath(),c?v.draw(t,1,0,{x:0,y:0},1):v.draw(t,f,s,p,r),t.closePath&&t.closePath()),t=d,c&&(t.translate(a,o),t.rotate(s),t.scale(f,f)),"filled"!==n&&"both"!==n||(c?t.fill(l):t.fill()),"hollow"!==n&&"both"!==n||(t.lineWidth=(v.matchEdgeWidth?r:1)/(c?f:1),t.lineJoin="miter",c?t.stroke(l):t.stroke()),c&&(t.scale(1/f,1/f),t.rotate(-s),t.translate(-a,-o))};var kd={safeDrawImage:function(e,t,n,r,i,a,o,s,l,u){if(!(i<=0||a<=0||l<=0||u<=0))try{e.drawImage(t,n,r,i,a,o,s,l,u)}catch(c){Nt(c)}},drawInscribedImage:function(e,t,n,r,i){var a=this,o=n.position(),s=o.x,l=o.y,u=n.cy().style(),c=u.getIndexedStyle.bind(u),h=c(n,"background-fit","value",r),d=c(n,"background-repeat","value",r),p=n.width(),g=n.height(),f=2*n.padding(),v=p+("inner"===c(n,"background-width-relative-to","value",r)?0:f),y=g+("inner"===c(n,"background-height-relative-to","value",r)?0:f),m=n._private.rscratch,b="node"===c(n,"background-clip","value",r),x=c(n,"background-image-opacity","value",r)*i,w=c(n,"background-image-smoothing","value",r),E=t.width||t.cachedW,T=t.height||t.cachedH;null!=E&&null!=T||(document.body.appendChild(t),E=t.cachedW=t.width||t.offsetWidth,T=t.cachedH=t.height||t.offsetHeight,document.body.removeChild(t));var _=E,D=T;if("auto"!==c(n,"background-width","value",r)&&(_="%"===c(n,"background-width","units",r)?c(n,"background-width","pfValue",r)*v:c(n,"background-width","pfValue",r)),"auto"!==c(n,"background-height","value",r)&&(D="%"===c(n,"background-height","units",r)?c(n,"background-height","pfValue",r)*y:c(n,"background-height","pfValue",r)),0!==_&&0!==D){if("contain"===h)_*=C=Math.min(v/_,y/D),D*=C;else if("cover"===h){var C;_*=C=Math.max(v/_,y/D),D*=C}var N=s-v/2,A=c(n,"background-position-x","units",r),L=c(n,"background-position-x","pfValue",r);N+="%"===A?(v-_)*L:L;var S=c(n,"background-offset-x","units",r),O=c(n,"background-offset-x","pfValue",r);N+="%"===S?(v-_)*O:O;var I=l-y/2,k=c(n,"background-position-y","units",r),M=c(n,"background-position-y","pfValue",r);I+="%"===k?(y-D)*M:M;var P=c(n,"background-offset-y","units",r),R=c(n,"background-offset-y","pfValue",r);I+="%"===P?(y-D)*R:R,m.pathCache&&(N-=s,I-=l,s=0,l=0);var B=e.globalAlpha;e.globalAlpha=x;var F=a.getImgSmoothing(e),z=!1;if("no"===w&&F?(a.setImgSmoothing(e,!1),z=!0):"yes"!==w||F||(a.setImgSmoothing(e,!0),z=!0),"no-repeat"===d)b&&(e.save(),m.pathCache?e.clip(m.pathCache):(a.nodeShapes[a.getNodeShape(n)].draw(e,s,l,v,y),e.clip())),a.safeDrawImage(e,t,0,0,E,T,N,I,_,D),b&&e.restore();else{var G=e.createPattern(t,d);e.fillStyle=G,a.nodeShapes[a.getNodeShape(n)].draw(e,s,l,v,y),e.translate(N,I),e.fill(),e.translate(-N,-I)}e.globalAlpha=B,z&&a.setImgSmoothing(e,F)}}},Md={};function Pd(e,t,n,r,i){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:5;e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath(),e.fill()}Md.eleTextBiggerThanMin=function(e,t){if(!t){var n=e.cy().zoom(),r=this.getPixelRatio(),i=Math.ceil(xn(n*r));t=Math.pow(2,i)}return!(e.pstyle("font-size").pfValue*t<e.pstyle("min-zoomed-font-size").pfValue)},Md.drawElementText=function(e,t,n,r,i){var a=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],o=this;if(null==r){if(a&&!o.eleTextBiggerThanMin(t))return}else if(!1===r)return;if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value)return;var l=o.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine,c=t.pstyle("label"),h=t.pstyle("source-label"),d=t.pstyle("target-label");if(u||(!c||!c.value)&&(!h||!h.value)&&(!d||!d.value))return;e.textAlign="center",e.textBaseline="bottom"}var p,g=!n;n&&(p=n,e.translate(-p.x1,-p.y1)),null==i?(o.drawText(e,t,null,g,a),t.isEdge()&&(o.drawText(e,t,"source",g,a),o.drawText(e,t,"target",g,a))):o.drawText(e,t,i,g,a),n&&e.translate(p.x1,p.y1)},Md.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n<this.fontCaches.length;n++)if((t=this.fontCaches[n]).context===e)return t;return t={context:e},this.fontCaches.push(t),t},Md.setupTextStyle=function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,s=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*s,u=t.pstyle("color").value,c=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+i+" "+a,e.lineJoin="round",this.colorFillStyle(e,u[0],u[1],u[2],s),this.colorStrokeStyle(e,c[0],c[1],c[2],l)},Md.getTextAngle=function(e,t){var n=e._private.rscratch,r=t?t+"-":"",i=e.pstyle(r+"text-rotation"),a=Ft(n,"labelAngle",t);return"autorotate"===i.strValue?e.isEdge()?a:0:"none"===i.strValue?0:i.pfValue},Md.drawText=function(e,t,n){var r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],a=t._private.rscratch,o=i?t.effectiveOpacity():1;if(!i||0!==o&&0!==t.pstyle("text-opacity").value){"main"===n&&(n=null);var s,l,u=Ft(a,"labelX",n),c=Ft(a,"labelY",n),h=this.getLabelText(t,n);if(null!=h&&""!==h&&!isNaN(u)&&!isNaN(c)){this.setupTextStyle(e,t,i);var d,p=n?n+"-":"",g=Ft(a,"labelWidth",n),f=Ft(a,"labelHeight",n),v=t.pstyle(p+"text-margin-x").pfValue,y=t.pstyle(p+"text-margin-y").pfValue,m=t.isEdge(),b=t.pstyle("text-halign").value,x=t.pstyle("text-valign").value;switch(m&&(b="center",x="center"),u+=v,c+=y,0!==(d=r?this.getTextAngle(t,n):0)&&(s=u,l=c,e.translate(s,l),e.rotate(d),u=0,c=0),x){case"top":break;case"center":c+=f/2;break;case"bottom":c+=f}var w=t.pstyle("text-background-opacity").value,E=t.pstyle("text-border-opacity").value,T=t.pstyle("text-border-width").pfValue,_=t.pstyle("text-background-padding").pfValue;if(w>0||T>0&&E>0){var D=u-_;switch(b){case"left":D-=g;break;case"center":D-=g/2}var C=c-f-_,N=g+2*_,A=f+2*_;if(w>0){var L=e.fillStyle,S=t.pstyle("text-background-color").value;e.fillStyle="rgba("+S[0]+","+S[1]+","+S[2]+","+w*o+")",0===t.pstyle("text-background-shape").strValue.indexOf("round")?Pd(e,D,C,N,A,2):e.fillRect(D,C,N,A),e.fillStyle=L}if(T>0&&E>0){var O=e.strokeStyle,I=e.lineWidth,k=t.pstyle("text-border-color").value,M=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+k[0]+","+k[1]+","+k[2]+","+E*o+")",e.lineWidth=T,e.setLineDash)switch(M){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=T/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(e.strokeRect(D,C,N,A),"double"===M){var P=T/2;e.strokeRect(D+P,C+P,N-2*P,A-2*P)}e.setLineDash&&e.setLineDash([]),e.lineWidth=I,e.strokeStyle=O}}var R=2*t.pstyle("text-outline-width").pfValue;if(R>0&&(e.lineWidth=R),"wrap"===t.pstyle("text-wrap").value){var B=Ft(a,"labelWrapCachedLines",n),F=Ft(a,"labelLineHeight",n),z=g/2,G=this.getLabelJustification(t);switch("auto"===G||("left"===b?"left"===G?u+=-g:"center"===G&&(u+=-z):"center"===b?"left"===G?u+=-z:"right"===G&&(u+=z):"right"===b&&("center"===G?u+=z:"right"===G&&(u+=g))),x){case"top":case"center":case"bottom":c-=(B.length-1)*F}for(var Y=0;Y<B.length;Y++)R>0&&e.strokeText(B[Y],u,c),e.fillText(B[Y],u,c),c+=F}else R>0&&e.strokeText(h,u,c),e.fillText(h,u,c);0!==d&&(e.rotate(-d),e.translate(-s,-l))}}};var Rd={drawNode:function(e,t,n){var r,i,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],l=this,u=t._private,c=u.rscratch,h=t.position();if(_(h.x)&&_(h.y)&&(!s||t.visible())){var d,p,g=s?t.effectiveOpacity():1,f=l.usePaths(),v=!1,y=t.padding();r=t.width()+2*y,i=t.height()+2*y,n&&(p=n,e.translate(-p.x1,-p.y1));for(var m=t.pstyle("background-image").value,b=new Array(m.length),x=new Array(m.length),w=0,E=0;E<m.length;E++){var T=m[E];if(b[E]=null!=T&&"none"!==T){var D=t.cy().style().getIndexedStyle(t,"background-image-crossorigin","value",E);w++,x[E]=l.getCachedImage(T,D,(function(){u.backgroundTimestamp=Date.now(),t.emitAndNotify("background")}))}}var C=t.pstyle("background-blacken").value,N=t.pstyle("border-width").pfValue,A=t.pstyle("background-opacity").value*g,L=t.pstyle("border-color").value,S=t.pstyle("border-style").value,O=t.pstyle("border-opacity").value*g;e.lineJoin="miter";var I=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A;l.eleFillStyle(e,t,n)},k=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:O;l.colorStrokeStyle(e,L[0],L[1],L[2],t)},M=t.pstyle("shape").strValue,P=t.pstyle("shape-polygon-points").pfValue;if(f){e.translate(h.x,h.y);var R=l.nodePathCache=l.nodePathCache||[],B=ft("polygon"===M?M+","+P.join(","):M,""+i,""+r),F=R[B];null!=F?(d=F,v=!0,c.pathCache=d):(d=new Path2D,R[B]=c.pathCache=d)}var z=function(){if(!v){var n=h;f&&(n={x:0,y:0}),l.nodeShapes[l.getNodeShape(t)].draw(d||e,n.x,n.y,r,i)}f?e.fill(d):e.fill()},G=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:g,r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=u.backgrounding,a=0,o=0;o<x.length;o++){var s=t.cy().style().getIndexedStyle(t,"background-image-containment","value",o);r&&"over"===s||!r&&"inside"===s?a++:b[o]&&x[o].complete&&!x[o].error&&(a++,l.drawInscribedImage(e,x[o],t,o,n))}u.backgrounding=!(a===w),i!==u.backgrounding&&t.updateStyle(!1)},Y=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:g;l.hasPie(t)&&(l.drawPie(e,t,a),n&&(f||l.nodeShapes[l.getNodeShape(t)].draw(e,h.x,h.y,r,i)))},X=function(){var t=(C>0?C:-C)*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:g),n=C>0?0:255;0!==C&&(l.colorFillStyle(e,n,n,n,t),f?e.fill(d):e.fill())},V=function(){if(N>0){if(e.lineWidth=N,e.lineCap="butt",e.setLineDash)switch(S){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}if(f?e.stroke(d):e.stroke(),"double"===S){e.lineWidth=N/3;var t=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",f?e.stroke(d):e.stroke(),e.globalCompositeOperation=t}e.setLineDash&&e.setLineDash([])}},U=function(){o&&l.drawNodeOverlay(e,t,h,r,i)},j=function(){o&&l.drawNodeUnderlay(e,t,h,r,i)},H=function(){l.drawElementText(e,t,null,a)};if("yes"===t.pstyle("ghost").value){var q=t.pstyle("ghost-offset-x").pfValue,W=t.pstyle("ghost-offset-y").pfValue,$=t.pstyle("ghost-opacity").value,K=$*g;e.translate(q,W),I($*A),z(),G(K,!0),k($*O),V(),Y(0!==C||0!==N),G(K,!1),X(K),e.translate(-q,-W)}f&&e.translate(-h.x,-h.y),j(),f&&e.translate(h.x,h.y),I(),z(),G(g,!0),k(),V(),Y(0!==C||0!==N),G(g,!1),X(),f&&e.translate(-h.x,-h.y),H(),U(),n&&e.translate(p.x1,p.y1)}}},Bd=function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,n,r,i,a){var o=this;if(n.visible()){var s=n.pstyle("".concat(e,"-padding")).pfValue,l=n.pstyle("".concat(e,"-opacity")).value,u=n.pstyle("".concat(e,"-color")).value,c=n.pstyle("".concat(e,"-shape")).value;if(l>0){if(r=r||n.position(),null==i||null==a){var h=n.padding();i=n.width()+2*h,a=n.height()+2*h}o.colorFillStyle(t,u[0],u[1],u[2],l),o.nodeShapes[c].draw(t,r.x,r.y,i+2*s,a+2*s),t.fill()}}}};Rd.drawNodeOverlay=Bd("overlay"),Rd.drawNodeUnderlay=Bd("underlay"),Rd.hasPie=function(e){return(e=e[0])._private.hasPie},Rd.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),a=t.pstyle("pie-size"),o=r.x,s=r.y,l=t.width(),u=t.height(),c=Math.min(l,u)/2,h=0;this.usePaths()&&(o=0,s=0),"%"===a.units?c*=a.pfValue:void 0!==a.pfValue&&(c=a.pfValue/2);for(var d=1;d<=i.pieBackgroundN;d++){var p=t.pstyle("pie-"+d+"-background-size").value,g=t.pstyle("pie-"+d+"-background-color").value,f=t.pstyle("pie-"+d+"-background-opacity").value*n,v=p/100;v+h>1&&(v=1-h);var y=1.5*Math.PI+2*Math.PI*h,m=y+2*Math.PI*v;0===p||h>=1||h+v>1||(e.beginPath(),e.moveTo(o,s),e.arc(o,s,c,y,m),e.closePath(),this.colorFillStyle(e,g[0],g[1],g[2],f),e.fill(),h+=v)}};var Fd={},zd=100;Fd.getPixelRatio=function(){var e=this.data.contexts[0];if(null!=this.forcedPixelRatio)return this.forcedPixelRatio;var t=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/t},Fd.paintCache=function(e){for(var t,n=this.paintCaches=this.paintCaches||[],r=!0,i=0;i<n.length;i++)if((t=n[i]).context===e){r=!1;break}return r&&(t={context:e},n.push(t)),t},Fd.createGradientStyleFor=function(e,t,n,r,i){var a,o=this.usePaths(),s=n.pstyle(t+"-gradient-stop-colors").value,l=n.pstyle(t+"-gradient-stop-positions").pfValue;if("radial-gradient"===r)if(n.isEdge()){var u=n.sourceEndpoint(),c=n.targetEndpoint(),h=n.midpoint(),d=En(u,h),p=En(c,h);a=e.createRadialGradient(h.x,h.y,0,h.x,h.y,Math.max(d,p))}else{var g=o?{x:0,y:0}:n.position(),f=n.paddedWidth(),v=n.paddedHeight();a=e.createRadialGradient(g.x,g.y,0,g.x,g.y,Math.max(f,v))}else if(n.isEdge()){var y=n.sourceEndpoint(),m=n.targetEndpoint();a=e.createLinearGradient(y.x,y.y,m.x,m.y)}else{var b=o?{x:0,y:0}:n.position(),x=n.paddedWidth()/2,w=n.paddedHeight()/2;switch(n.pstyle("background-gradient-direction").value){case"to-bottom":a=e.createLinearGradient(b.x,b.y-w,b.x,b.y+w);break;case"to-top":a=e.createLinearGradient(b.x,b.y+w,b.x,b.y-w);break;case"to-left":a=e.createLinearGradient(b.x+x,b.y,b.x-x,b.y);break;case"to-right":a=e.createLinearGradient(b.x-x,b.y,b.x+x,b.y);break;case"to-bottom-right":case"to-right-bottom":a=e.createLinearGradient(b.x-x,b.y-w,b.x+x,b.y+w);break;case"to-top-right":case"to-right-top":a=e.createLinearGradient(b.x-x,b.y+w,b.x+x,b.y-w);break;case"to-bottom-left":case"to-left-bottom":a=e.createLinearGradient(b.x+x,b.y-w,b.x-x,b.y+w);break;case"to-top-left":case"to-left-top":a=e.createLinearGradient(b.x+x,b.y+w,b.x-x,b.y-w)}}if(!a)return null;for(var E=l.length===s.length,T=s.length,_=0;_<T;_++)a.addColorStop(E?l[_]:_/(T-1),"rgba("+s[_][0]+","+s[_][1]+","+s[_][2]+","+i+")");return a},Fd.gradientFillStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"background",t,n,r);if(!i)return null;e.fillStyle=i},Fd.colorFillStyle=function(e,t,n,r,i){e.fillStyle="rgba("+t+","+n+","+r+","+i+")"},Fd.eleFillStyle=function(e,t,n){var r=t.pstyle("background-fill").value;if("linear-gradient"===r||"radial-gradient"===r)this.gradientFillStyle(e,t,r,n);else{var i=t.pstyle("background-color").value;this.colorFillStyle(e,i[0],i[1],i[2],n)}},Fd.gradientStrokeStyle=function(e,t,n,r){var i=this.createGradientStyleFor(e,"line",t,n,r);if(!i)return null;e.strokeStyle=i},Fd.colorStrokeStyle=function(e,t,n,r,i){e.strokeStyle="rgba("+t+","+n+","+r+","+i+")"},Fd.eleStrokeStyle=function(e,t,n){var r=t.pstyle("line-fill").value;if("linear-gradient"===r||"radial-gradient"===r)this.gradientStrokeStyle(e,t,r,n);else{var i=t.pstyle("line-color").value;this.colorStrokeStyle(e,i[0],i[1],i[2],n)}},Fd.matchCanvasSize=function(e){var t=this,n=t.data,r=t.findContainerClientCoords(),i=r[2],a=r[3],o=t.getPixelRatio(),s=t.motionBlurPxRatio;e!==t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_NODE]&&e!==t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_DRAG]||(o=s);var l,u=i*o,c=a*o;if(u!==t.canvasWidth||c!==t.canvasHeight){t.fontCaches=null;var h=n.canvasContainer;h.style.width=i+"px",h.style.height=a+"px";for(var d=0;d<t.CANVAS_LAYERS;d++)(l=n.canvases[d]).width=u,l.height=c,l.style.width=i+"px",l.style.height=a+"px";for(d=0;d<t.BUFFER_COUNT;d++)(l=n.bufferCanvases[d]).width=u,l.height=c,l.style.width=i+"px",l.style.height=a+"px";t.textureMult=1,o<=1&&(l=n.bufferCanvases[t.TEXTURE_BUFFER],t.textureMult=2,l.width=u*t.textureMult,l.height=c*t.textureMult),t.canvasWidth=u,t.canvasHeight=c}},Fd.renderTo=function(e,t,n,r){this.render({forcedContext:e,forcedZoom:t,forcedPan:n,drawAllLayers:!0,forcedPxRatio:r})},Fd.render=function(e){var t=(e=e||kt()).forcedContext,n=e.drawAllLayers,r=e.drawOnlyNodeLayer,i=e.forcedZoom,a=e.forcedPan,o=this,s=void 0===e.forcedPxRatio?this.getPixelRatio():e.forcedPxRatio,l=o.cy,u=o.data,c=u.canvasNeedsRedraw,h=o.textureOnViewport&&!t&&(o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming),d=void 0!==e.motionBlur?e.motionBlur:o.motionBlur,p=o.motionBlurPxRatio,g=l.hasCompoundNodes(),f=o.hoverData.draggingEles,v=!(!o.hoverData.selecting&&!o.touchData.selecting),y=d=d&&!t&&o.motionBlurEnabled&&!v;t||(o.prevPxRatio!==s&&(o.invalidateContainerClientCoordsCache(),o.matchCanvasSize(o.container),o.redrawHint("eles",!0),o.redrawHint("drag",!0)),o.prevPxRatio=s),!t&&o.motionBlurTimeout&&clearTimeout(o.motionBlurTimeout),d&&(null==o.mbFrames&&(o.mbFrames=0),o.mbFrames++,o.mbFrames<3&&(y=!1),o.mbFrames>o.minMbLowQualFrames&&(o.motionBlurPxRatio=o.mbPxRBlurry)),o.clearingMotionBlur&&(o.motionBlurPxRatio=1),o.textureDrawLastFrame&&!h&&(c[o.NODE]=!0,c[o.SELECT_BOX]=!0);var m=l.style(),b=l.zoom(),x=void 0!==i?i:b,w=l.pan(),E={x:w.x,y:w.y},T={zoom:b,pan:{x:w.x,y:w.y}},_=o.prevViewport;void 0===_||T.zoom!==_.zoom||T.pan.x!==_.pan.x||T.pan.y!==_.pan.y||f&&!g||(o.motionBlurPxRatio=1),a&&(E=a),x*=s,E.x*=s,E.y*=s;var D=o.getCachedZSortedEles();function C(e,t,n,r,i){var a=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",o.colorFillStyle(e,255,255,255,o.motionBlurTransparency),e.fillRect(t,n,r,i),e.globalCompositeOperation=a}function N(e,r){var s,l,c,h;o.clearingMotionBlur||e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]?(s=E,l=x,c=o.canvasWidth,h=o.canvasHeight):(s={x:w.x*p,y:w.y*p},l=b*p,c=o.canvasWidth*p,h=o.canvasHeight*p),e.setTransform(1,0,0,1,0,0),"motionBlur"===r?C(e,0,0,c,h):t||void 0!==r&&!r||e.clearRect(0,0,c,h),n||(e.translate(s.x,s.y),e.scale(l,l)),a&&e.translate(a.x,a.y),i&&e.scale(i,i)}if(h||(o.textureDrawLastFrame=!1),h){if(o.textureDrawLastFrame=!0,!o.textureCache){o.textureCache={},o.textureCache.bb=l.mutableElements().boundingBox(),o.textureCache.texture=o.data.bufferCanvases[o.TEXTURE_BUFFER];var A=o.data.bufferContexts[o.TEXTURE_BUFFER];A.setTransform(1,0,0,1,0,0),A.clearRect(0,0,o.canvasWidth*o.textureMult,o.canvasHeight*o.textureMult),o.render({forcedContext:A,drawOnlyNodeLayer:!0,forcedPxRatio:s*o.textureMult}),(T=o.textureCache.viewport={zoom:l.zoom(),pan:l.pan(),width:o.canvasWidth,height:o.canvasHeight}).mpan={x:(0-T.pan.x)/T.zoom,y:(0-T.pan.y)/T.zoom}}c[o.DRAG]=!1,c[o.NODE]=!1;var L=u.contexts[o.NODE],S=o.textureCache.texture;T=o.textureCache.viewport,L.setTransform(1,0,0,1,0,0),d?C(L,0,0,T.width,T.height):L.clearRect(0,0,T.width,T.height);var O=m.core("outside-texture-bg-color").value,I=m.core("outside-texture-bg-opacity").value;o.colorFillStyle(L,O[0],O[1],O[2],I),L.fillRect(0,0,T.width,T.height),b=l.zoom(),N(L,!1),L.clearRect(T.mpan.x,T.mpan.y,T.width/T.zoom/s,T.height/T.zoom/s),L.drawImage(S,T.mpan.x,T.mpan.y,T.width/T.zoom/s,T.height/T.zoom/s)}else o.textureOnViewport&&!t&&(o.textureCache=null);var k=l.extent(),M=o.pinching||o.hoverData.dragging||o.swipePanning||o.data.wheelZooming||o.hoverData.draggingEles||o.cy.animated(),P=o.hideEdgesOnViewport&&M,R=[];if(R[o.NODE]=!c[o.NODE]&&d&&!o.clearedForMotionBlur[o.NODE]||o.clearingMotionBlur,R[o.NODE]&&(o.clearedForMotionBlur[o.NODE]=!0),R[o.DRAG]=!c[o.DRAG]&&d&&!o.clearedForMotionBlur[o.DRAG]||o.clearingMotionBlur,R[o.DRAG]&&(o.clearedForMotionBlur[o.DRAG]=!0),c[o.NODE]||n||r||R[o.NODE]){var B=d&&!R[o.NODE]&&1!==p;N(L=t||(B?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_NODE]:u.contexts[o.NODE]),d&&!B?"motionBlur":void 0),P?o.drawCachedNodes(L,D.nondrag,s,k):o.drawLayeredElements(L,D.nondrag,s,k),o.debug&&o.drawDebugPoints(L,D.nondrag),n||d||(c[o.NODE]=!1)}if(!r&&(c[o.DRAG]||n||R[o.DRAG])&&(B=d&&!R[o.DRAG]&&1!==p,N(L=t||(B?o.data.bufferContexts[o.MOTIONBLUR_BUFFER_DRAG]:u.contexts[o.DRAG]),d&&!B?"motionBlur":void 0),P?o.drawCachedNodes(L,D.drag,s,k):o.drawCachedElements(L,D.drag,s,k),o.debug&&o.drawDebugPoints(L,D.drag),n||d||(c[o.DRAG]=!1)),o.showFps||!r&&c[o.SELECT_BOX]&&!n){if(N(L=t||u.contexts[o.SELECT_BOX]),1==o.selection[4]&&(o.hoverData.selecting||o.touchData.selecting)){b=o.cy.zoom();var F=m.core("selection-box-border-width").value/b;L.lineWidth=F,L.fillStyle="rgba("+m.core("selection-box-color").value[0]+","+m.core("selection-box-color").value[1]+","+m.core("selection-box-color").value[2]+","+m.core("selection-box-opacity").value+")",L.fillRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]),F>0&&(L.strokeStyle="rgba("+m.core("selection-box-border-color").value[0]+","+m.core("selection-box-border-color").value[1]+","+m.core("selection-box-border-color").value[2]+","+m.core("selection-box-opacity").value+")",L.strokeRect(o.selection[0],o.selection[1],o.selection[2]-o.selection[0],o.selection[3]-o.selection[1]))}if(u.bgActivePosistion&&!o.hoverData.selecting){b=o.cy.zoom();var z=u.bgActivePosistion;L.fillStyle="rgba("+m.core("active-bg-color").value[0]+","+m.core("active-bg-color").value[1]+","+m.core("active-bg-color").value[2]+","+m.core("active-bg-opacity").value+")",L.beginPath(),L.arc(z.x,z.y,m.core("active-bg-size").pfValue/b,0,2*Math.PI),L.fill()}var G=o.lastRedrawTime;if(o.showFps&&G){G=Math.round(G);var Y=Math.round(1e3/G);L.setTransform(1,0,0,1,0,0),L.fillStyle="rgba(255, 0, 0, 0.75)",L.strokeStyle="rgba(255, 0, 0, 0.75)",L.lineWidth=1,L.fillText("1 frame = "+G+" ms = "+Y+" fps",0,20);var X=60;L.strokeRect(0,30,250,20),L.fillRect(0,30,250*Math.min(Y/X,1),20)}n||(c[o.SELECT_BOX]=!1)}if(d&&1!==p){var V=u.contexts[o.NODE],U=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_NODE],j=u.contexts[o.DRAG],H=o.data.bufferCanvases[o.MOTIONBLUR_BUFFER_DRAG],q=function(e,t,n){e.setTransform(1,0,0,1,0,0),n||!y?e.clearRect(0,0,o.canvasWidth,o.canvasHeight):C(e,0,0,o.canvasWidth,o.canvasHeight);var r=p;e.drawImage(t,0,0,o.canvasWidth*r,o.canvasHeight*r,0,0,o.canvasWidth,o.canvasHeight)};(c[o.NODE]||R[o.NODE])&&(q(V,U,R[o.NODE]),c[o.NODE]=!1),(c[o.DRAG]||R[o.DRAG])&&(q(j,H,R[o.DRAG]),c[o.DRAG]=!1)}o.prevViewport=T,o.clearingMotionBlur&&(o.clearingMotionBlur=!1,o.motionBlurCleared=!0,o.motionBlur=!0),d&&(o.motionBlurTimeout=setTimeout((function(){o.motionBlurTimeout=null,o.clearedForMotionBlur[o.NODE]=!1,o.clearedForMotionBlur[o.DRAG]=!1,o.motionBlur=!1,o.clearingMotionBlur=!h,o.mbFrames=0,c[o.NODE]=!0,c[o.DRAG]=!0,o.redraw()}),zd)),t||l.emit("render")};for(var Gd={drawPolygonPath:function(e,t,n,r,i,a){var o=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*a[0],n+s*a[1]);for(var l=1;l<a.length/2;l++)e.lineTo(t+o*a[2*l],n+s*a[2*l+1]);e.closePath()},drawRoundPolygonPath:function(e,t,n,r,i,a){var o=r/2,s=i/2,l=hr(r,i);e.beginPath&&e.beginPath();for(var u=0;u<a.length/4;u++){var c=void 0,h=void 0;c=0===u?a.length-2:4*u-2,h=4*u+2;var d=t+o*a[4*u],p=n+s*a[4*u+1],g=-a[c]*a[h]-a[c+1]*a[h+1],f=l/Math.tan(Math.acos(g)/2),v=d-f*a[c],y=p-f*a[c+1],m=d+f*a[h],b=p+f*a[h+1];0===u?e.moveTo(v,y):e.lineTo(v,y),e.arcTo(d,p,m,b,l)}e.closePath()},drawRoundRectanglePath:function(e,t,n,r,i){var a=r/2,o=i/2,s=cr(r,i);e.beginPath&&e.beginPath(),e.moveTo(t,n-o),e.arcTo(t+a,n-o,t+a,n,s),e.arcTo(t+a,n+o,t,n+o,s),e.arcTo(t-a,n+o,t-a,n,s),e.arcTo(t-a,n-o,t,n-o,s),e.lineTo(t,n-o),e.closePath()},drawBottomRoundRectanglePath:function(e,t,n,r,i){var a=r/2,o=i/2,s=cr(r,i);e.beginPath&&e.beginPath(),e.moveTo(t,n-o),e.lineTo(t+a,n-o),e.lineTo(t+a,n),e.arcTo(t+a,n+o,t,n+o,s),e.arcTo(t-a,n+o,t-a,n,s),e.lineTo(t-a,n-o),e.lineTo(t,n-o),e.closePath()},drawCutRectanglePath:function(e,t,n,r,i){var a=r/2,o=i/2,s=dr();e.beginPath&&e.beginPath(),e.moveTo(t-a+s,n-o),e.lineTo(t+a-s,n-o),e.lineTo(t+a,n-o+s),e.lineTo(t+a,n+o-s),e.lineTo(t+a-s,n+o),e.lineTo(t-a+s,n+o),e.lineTo(t-a,n+o-s),e.lineTo(t-a,n-o+s),e.closePath()},drawBarrelPath:function(e,t,n,r,i){var a=r/2,o=i/2,s=t-a,l=t+a,u=n-o,c=n+o,h=gr(r,i),d=h.widthOffset,p=h.heightOffset,g=h.ctrlPtOffsetPct*d;e.beginPath&&e.beginPath(),e.moveTo(s,u+p),e.lineTo(s,c-p),e.quadraticCurveTo(s+g,c,s+d,c),e.lineTo(l-d,c),e.quadraticCurveTo(l-g,c,l,c-p),e.lineTo(l,u+p),e.quadraticCurveTo(l-g,u,l-d,u),e.lineTo(s+d,u),e.quadraticCurveTo(s+g,u,s,u+p),e.closePath()}},Yd=Math.sin(0),Xd=Math.cos(0),Vd={},Ud={},jd=Math.PI/40,Hd=0*Math.PI;Hd<2*Math.PI;Hd+=jd)Vd[Hd]=Math.sin(Hd),Ud[Hd]=Math.cos(Hd);Gd.drawEllipsePath=function(e,t,n,r,i){if(e.beginPath&&e.beginPath(),e.ellipse)e.ellipse(t,n,r/2,i/2,0,0,2*Math.PI);else for(var a,o,s=r/2,l=i/2,u=0*Math.PI;u<2*Math.PI;u+=jd)a=t-s*Vd[u]*Yd+s*Ud[u]*Xd,o=n+l*Ud[u]*Yd+l*Vd[u]*Xd,0===u?e.moveTo(a,o):e.lineTo(a,o);e.closePath()};var qd={};function Wd(e,t){for(var n=atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return new Blob([r],{type:t})}function $d(e){var t=e.indexOf(",");return e.substr(t+1)}function Kd(e,t,n){var r=function(){return t.toDataURL(n,e.quality)};switch(e.output){case"blob-promise":return new Yi((function(r,i){try{t.toBlob((function(e){null!=e?r(e):i(new Error("`canvas.toBlob()` sent a null value in its callback"))}),n,e.quality)}catch(a){i(a)}}));case"blob":return Wd($d(r()),n);case"base64":return $d(r());default:return r()}}qd.createBuffer=function(e,t){var n=document.createElement("canvas");return n.width=e,n.height=t,[n,n.getContext("2d")]},qd.bufferCanvasImage=function(e){var t=this.cy,n=t.mutableElements().boundingBox(),r=this.findContainerClientCoords(),i=e.full?Math.ceil(n.w):r[2],a=e.full?Math.ceil(n.h):r[3],o=_(e.maxWidth)||_(e.maxHeight),s=this.getPixelRatio(),l=1;if(void 0!==e.scale)i*=e.scale,a*=e.scale,l=e.scale;else if(o){var u=1/0,c=1/0;_(e.maxWidth)&&(u=l*e.maxWidth/i),_(e.maxHeight)&&(c=l*e.maxHeight/a),i*=l=Math.min(u,c),a*=l}o||(i*=s,a*=s,l*=s);var h=document.createElement("canvas");h.width=i,h.height=a,h.style.width=i+"px",h.style.height=a+"px";var d=h.getContext("2d");if(i>0&&a>0){d.clearRect(0,0,i,a),d.globalCompositeOperation="source-over";var p=this.getCachedZSortedEles();if(e.full)d.translate(-n.x1*l,-n.y1*l),d.scale(l,l),this.drawElements(d,p),d.scale(1/l,1/l),d.translate(n.x1*l,n.y1*l);else{var g=t.pan(),f={x:g.x*l,y:g.y*l};l*=t.zoom(),d.translate(f.x,f.y),d.scale(l,l),this.drawElements(d,p),d.scale(1/l,1/l),d.translate(-f.x,-f.y)}e.bg&&(d.globalCompositeOperation="destination-over",d.fillStyle=e.bg,d.rect(0,0,i,a),d.fill())}return h},qd.png=function(e){return Kd(e,this.bufferCanvasImage(e),"image/png")},qd.jpg=function(e){return Kd(e,this.bufferCanvasImage(e),"image/jpeg")};var Zd={nodeShapeImpl:function(e,t,n,r,i,a,o){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,a);case"polygon":return this.drawPolygonPath(t,n,r,i,a,o);case"round-polygon":return this.drawRoundPolygonPath(t,n,r,i,a,o);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,n,r,i,a);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,n,r,i,a);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,a);case"barrel":return this.drawBarrelPath(t,n,r,i,a)}}},Qd=ep,Jd=ep.prototype;function ep(e){var t=this;t.data={canvases:new Array(Jd.CANVAS_LAYERS),contexts:new Array(Jd.CANVAS_LAYERS),canvasNeedsRedraw:new Array(Jd.CANVAS_LAYERS),bufferCanvases:new Array(Jd.BUFFER_COUNT),bufferContexts:new Array(Jd.CANVAS_LAYERS)};var n="-webkit-tap-highlight-color",r="rgba(0,0,0,0)";t.data.canvasContainer=document.createElement("div");var i=t.data.canvasContainer.style;t.data.canvasContainer.style[n]=r,i.position="relative",i.zIndex="0",i.overflow="hidden";var a=e.cy.container();a.appendChild(t.data.canvasContainer),a.style[n]=r;var o={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};B()&&(o["-ms-touch-action"]="none",o["touch-action"]="none");for(var s=0;s<Jd.CANVAS_LAYERS;s++){var l=t.data.canvases[s]=document.createElement("canvas");t.data.contexts[s]=l.getContext("2d"),Object.keys(o).forEach((function(e){l.style[e]=o[e]})),l.style.position="absolute",l.setAttribute("data-id","layer"+s),l.style.zIndex=String(Jd.CANVAS_LAYERS-s),t.data.canvasContainer.appendChild(l),t.data.canvasNeedsRedraw[s]=!1}for(t.data.topCanvas=t.data.canvases[0],t.data.canvases[Jd.NODE].setAttribute("data-id","layer"+Jd.NODE+"-node"),t.data.canvases[Jd.SELECT_BOX].setAttribute("data-id","layer"+Jd.SELECT_BOX+"-selectbox"),t.data.canvases[Jd.DRAG].setAttribute("data-id","layer"+Jd.DRAG+"-drag"),s=0;s<Jd.BUFFER_COUNT;s++)t.data.bufferCanvases[s]=document.createElement("canvas"),t.data.bufferContexts[s]=t.data.bufferCanvases[s].getContext("2d"),t.data.bufferCanvases[s].style.position="absolute",t.data.bufferCanvases[s].setAttribute("data-id","buffer"+s),t.data.bufferCanvases[s].style.zIndex=String(-s-1),t.data.bufferCanvases[s].style.visibility="hidden";t.pathsEnabled=!0;var u=Ln(),c=function(e){return{x:(e.x1+e.x2)/2,y:(e.y1+e.y2)/2}},h=function(e){return{x:-e.w/2,y:-e.h/2}},d=function(e){var t=e[0]._private;return!(t.oldBackgroundTimestamp===t.backgroundTimestamp)},p=function(e){return e[0]._private.nodeKey},g=function(e){return e[0]._private.labelStyleKey},f=function(e){return e[0]._private.sourceLabelStyleKey},v=function(e){return e[0]._private.targetLabelStyleKey},y=function(e,n,r,i,a){return t.drawElement(e,n,r,!1,!1,a)},m=function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"main",a)},b=function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"source",a)},x=function(e,n,r,i,a){return t.drawElementText(e,n,r,i,"target",a)},w=function(e){return e.boundingBox(),e[0]._private.bodyBounds},E=function(e){return e.boundingBox(),e[0]._private.labelBounds.main||u},T=function(e){return e.boundingBox(),e[0]._private.labelBounds.source||u},_=function(e){return e.boundingBox(),e[0]._private.labelBounds.target||u},D=function(e,t){return t},C=function(e){return c(w(e))},N=function(e,t,n){var r=e?e+"-":"";return{x:t.x+n.pstyle(r+"text-margin-x").pfValue,y:t.y+n.pstyle(r+"text-margin-y").pfValue}},A=function(e,t,n){var r=e[0]._private.rscratch;return{x:r[t],y:r[n]}},L=function(e){return N("",A(e,"labelX","labelY"),e)},S=function(e){return N("source",A(e,"sourceLabelX","sourceLabelY"),e)},O=function(e){return N("target",A(e,"targetLabelX","targetLabelY"),e)},I=function(e){return h(w(e))},k=function(e){return h(T(e))},M=function(e){return h(_(e))},P=function(e){var t=E(e),n=h(E(e));if(e.isNode()){switch(e.pstyle("text-halign").value){case"left":n.x=-t.w;break;case"right":n.x=0}switch(e.pstyle("text-valign").value){case"top":n.y=-t.h;break;case"bottom":n.y=0}}return n},R=t.data.eleTxrCache=new Zh(t,{getKey:p,doesEleInvalidateKey:d,drawElement:y,getBoundingBox:w,getRotationPoint:C,getRotationOffset:I,allowEdgeTxrCaching:!1,allowParentTxrCaching:!1}),F=t.data.lblTxrCache=new Zh(t,{getKey:g,drawElement:m,getBoundingBox:E,getRotationPoint:L,getRotationOffset:P,isVisible:D}),z=t.data.slbTxrCache=new Zh(t,{getKey:f,drawElement:b,getBoundingBox:T,getRotationPoint:S,getRotationOffset:k,isVisible:D}),G=t.data.tlbTxrCache=new Zh(t,{getKey:v,drawElement:x,getBoundingBox:_,getRotationPoint:O,getRotationOffset:M,isVisible:D}),Y=t.data.lyrTxrCache=new pd(t);t.onUpdateEleCalcs((function(e,t){R.invalidateElements(t),F.invalidateElements(t),z.invalidateElements(t),G.invalidateElements(t),Y.invalidateElements(t);for(var n=0;n<t.length;n++){var r=t[n]._private;r.oldBackgroundTimestamp=r.backgroundTimestamp}}));var X=function(e){for(var t=0;t<e.length;t++)Y.enqueueElementRefinement(e[t].ele)};R.onDequeue(X),F.onDequeue(X),z.onDequeue(X),G.onDequeue(X)}Jd.CANVAS_LAYERS=3,Jd.SELECT_BOX=0,Jd.DRAG=1,Jd.NODE=2,Jd.BUFFER_COUNT=3,Jd.TEXTURE_BUFFER=0,Jd.MOTIONBLUR_BUFFER_NODE=1,Jd.MOTIONBLUR_BUFFER_DRAG=2,Jd.redrawHint=function(e,t){var n=this;switch(e){case"eles":n.data.canvasNeedsRedraw[Jd.NODE]=t;break;case"drag":n.data.canvasNeedsRedraw[Jd.DRAG]=t;break;case"select":n.data.canvasNeedsRedraw[Jd.SELECT_BOX]=t}};var tp="undefined"!=typeof Path2D;Jd.path2dEnabled=function(e){if(void 0===e)return this.pathsEnabled;this.pathsEnabled=!!e},Jd.usePaths=function(){return tp&&this.pathsEnabled},Jd.setImgSmoothing=function(e,t){null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled=t:(e.webkitImageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t)},Jd.getImgSmoothing=function(e){return null!=e.imageSmoothingEnabled?e.imageSmoothingEnabled:e.webkitImageSmoothingEnabled||e.mozImageSmoothingEnabled||e.msImageSmoothingEnabled},Jd.makeOffscreenCanvas=function(t,n){var r;return"undefined"!==("undefined"==typeof OffscreenCanvas?"undefined":e(OffscreenCanvas))?r=new OffscreenCanvas(t,n):((r=document.createElement("canvas")).width=t,r.height=n),r},[md,_d,Od,kd,Md,Rd,Fd,Gd,qd,Zd].forEach((function(e){Q(Jd,e)}));var np=[{type:"layout",extensions:Jc},{type:"renderer",extensions:[{name:"null",impl:eh},{name:"base",impl:Ch},{name:"canvas",impl:Qd}]}],rp={},ip={};function ap(e,t,n){var r=n,i=function(n){Nt("Can not register `"+t+"` for `"+e+"` since `"+n+"` already exists in the prototype and can not be overridden")};if("core"===e){if(hc.prototype[t])return i(t);hc.prototype[t]=n}else if("collection"===e){if(Du.prototype[t])return i(t);Du.prototype[t]=n}else if("layout"===e){for(var a=function(e){this.options=e,n.call(this,e),E(this._private)||(this._private={}),this._private.cy=e.cy,this._private.listeners=[],this.createEmitter()},o=a.prototype=Object.create(n.prototype),s=[],l=0;l<s.length;l++){var u=s[l];o[u]=o[u]||function(){return this}}o.start&&!o.run?o.run=function(){return this.start(),this}:!o.start&&o.run&&(o.start=function(){return this.run(),this});var c=n.prototype.stop;o.stop=function(){var e=this.options;if(e&&e.animate){var t=this.animations;if(t)for(var n=0;n<t.length;n++)t[n].stop()}return c?c.call(this):this.emit("layoutstop"),this},o.destroy||(o.destroy=function(){return this}),o.cy=function(){return this._private.cy};var h=function(e){return e._private.cy},d={addEventFields:function(e,t){t.layout=e,t.cy=h(e),t.target=e},bubble:function(){return!0},parent:function(e){return h(e)}};Q(o,{createEmitter:function(){return this._private.emitter=new Xl(d,this),this},emitter:function(){return this._private.emitter},on:function(e,t){return this.emitter().on(e,t),this},one:function(e,t){return this.emitter().one(e,t),this},once:function(e,t){return this.emitter().one(e,t),this},removeListener:function(e,t){return this.emitter().removeListener(e,t),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},emit:function(e,t){return this.emitter().emit(e,t),this}}),gs.eventAliasesOn(o),r=a}else if("renderer"===e&&"null"!==t&&"base"!==t){var p=op("renderer","base"),g=p.prototype,f=n,v=n.prototype,y=function(){p.apply(this,arguments),f.apply(this,arguments)},m=y.prototype;for(var b in g){var x=g[b];if(null!=v[b])return i(b);m[b]=x}for(var w in v)m[w]=v[w];g.clientFunctions.forEach((function(e){m[e]=m[e]||function(){Dt("Renderer does not implement `renderer."+e+"()` on its prototype")}})),r=y}else if("__proto__"===e||"constructor"===e||"prototype"===e)return Dt(e+" is an illegal type to be registered, possibly lead to prototype pollutions");return ae({map:rp,keys:[e,t],value:r})}function op(e,t){return oe({map:rp,keys:[e,t]})}function sp(e,t,n,r,i){return ae({map:ip,keys:[e,t,n,r],value:i})}function lp(e,t,n,r){return oe({map:ip,keys:[e,t,n,r]})}var up=function(){return 2===arguments.length?op.apply(null,arguments):3===arguments.length?ap.apply(null,arguments):4===arguments.length?lp.apply(null,arguments):5===arguments.length?sp.apply(null,arguments):void Dt("Invalid extension access syntax")};hc.prototype.extension=up,np.forEach((function(e){e.extensions.forEach((function(t){ap(e.type,t.name,t.impl)}))}));var cp=function e(){if(!(this instanceof e))return new e;this.length=0},hp=cp.prototype;hp.instanceString=function(){return"stylesheet"},hp.selector=function(e){return this[this.length++]={selector:e,properties:[]},this},hp.css=function(e,t){var n=this.length-1;if(b(e))this[n].properties.push({name:e,value:t});else if(E(e))for(var r=e,i=Object.keys(r),a=0;a<i.length;a++){var o=i[a],s=r[o];if(null!=s){var l=ac.properties[o]||ac.properties[G(o)];if(null!=l){var u=l.name,c=s;this[n].properties.push({name:u,value:c})}}}return this},hp.style=hp.css,hp.generateStyle=function(e){var t=new ac(e);return this.appendToStyle(t)},hp.appendToStyle=function(e){for(var t=0;t<this.length;t++){var n=this[t],r=n.selector,i=n.properties;e.selector(r);for(var a=0;a<i.length;a++){var o=i[a];e.css(o.name,o.value)}}return e};var dp="3.26.0",pp=function(e){return void 0===e&&(e={}),E(e)?new hc(e):b(e)?up.apply(up,arguments):void 0};return pp.use=function(e){var t=Array.prototype.slice.call(arguments,1);return t.unshift(pp),e.apply(null,t),this},pp.warnings=function(e){return Ct(e)},pp.version=dp,pp.stylesheet=pp.Stylesheet=cp,pp}()},82241:function(e){var t;t=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=26)}([function(e,t,n){"use strict";function r(){}r.QUALITY=1,r.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,r.DEFAULT_INCREMENTAL=!1,r.DEFAULT_ANIMATION_ON_LAYOUT=!0,r.DEFAULT_ANIMATION_DURING_LAYOUT=!1,r.DEFAULT_ANIMATION_PERIOD=50,r.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,r.DEFAULT_GRAPH_MARGIN=15,r.NODE_DIMENSIONS_INCLUDE_LABELS=!1,r.SIMPLE_NODE_SIZE=40,r.SIMPLE_NODE_HALF_SIZE=r.SIMPLE_NODE_SIZE/2,r.EMPTY_COMPOUND_NODE_SIZE=40,r.MIN_EDGE_LENGTH=1,r.WORLD_BOUNDARY=1e6,r.INITIAL_WORLD_BOUNDARY=r.WORLD_BOUNDARY/1e3,r.WORLD_CENTER_X=1200,r.WORLD_CENTER_Y=900,e.exports=r},function(e,t,n){"use strict";var r=n(2),i=n(8),a=n(9);function o(e,t,n){r.call(this,n),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=n,this.bendpoints=[],this.source=e,this.target=t}for(var s in o.prototype=Object.create(r.prototype),r)o[s]=r[s];o.prototype.getSource=function(){return this.source},o.prototype.getTarget=function(){return this.target},o.prototype.isInterGraph=function(){return this.isInterGraph},o.prototype.getLength=function(){return this.length},o.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},o.prototype.getBendpoints=function(){return this.bendpoints},o.prototype.getLca=function(){return this.lca},o.prototype.getSourceInLca=function(){return this.sourceInLca},o.prototype.getTargetInLca=function(){return this.targetInLca},o.prototype.getOtherEnd=function(e){if(this.source===e)return this.target;if(this.target===e)return this.source;throw"Node is not incident with this edge"},o.prototype.getOtherEndInGraph=function(e,t){for(var n=this.getOtherEnd(e),r=t.getGraphManager().getRoot();;){if(n.getOwner()==t)return n;if(n.getOwner()==r)break;n=n.getOwner().getParent()}return null},o.prototype.updateLength=function(){var e=new Array(4);this.isOverlapingSourceAndTarget=i.getIntersection(this.target.getRect(),this.source.getRect(),e),this.isOverlapingSourceAndTarget||(this.lengthX=e[0]-e[2],this.lengthY=e[1]-e[3],Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},o.prototype.updateLengthSimple=function(){this.lengthX=this.target.getCenterX()-this.source.getCenterX(),this.lengthY=this.target.getCenterY()-this.source.getCenterY(),Math.abs(this.lengthX)<1&&(this.lengthX=a.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=a.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},e.exports=o},function(e,t,n){"use strict";e.exports=function(e){this.vGraphObject=e}},function(e,t,n){"use strict";var r=n(2),i=n(10),a=n(13),o=n(0),s=n(16),l=n(4);function u(e,t,n,o){null==n&&null==o&&(o=t),r.call(this,o),null!=e.graphManager&&(e=e.graphManager),this.estimatedSize=i.MIN_VALUE,this.inclusionTreeDepth=i.MAX_VALUE,this.vGraphObject=o,this.edges=[],this.graphManager=e,this.rect=null!=n&&null!=t?new a(t.x,t.y,n.width,n.height):new a}for(var c in u.prototype=Object.create(r.prototype),r)u[c]=r[c];u.prototype.getEdges=function(){return this.edges},u.prototype.getChild=function(){return this.child},u.prototype.getOwner=function(){return this.owner},u.prototype.getWidth=function(){return this.rect.width},u.prototype.setWidth=function(e){this.rect.width=e},u.prototype.getHeight=function(){return this.rect.height},u.prototype.setHeight=function(e){this.rect.height=e},u.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},u.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},u.prototype.getCenter=function(){return new l(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},u.prototype.getLocation=function(){return new l(this.rect.x,this.rect.y)},u.prototype.getRect=function(){return this.rect},u.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},u.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},u.prototype.setRect=function(e,t){this.rect.x=e.x,this.rect.y=e.y,this.rect.width=t.width,this.rect.height=t.height},u.prototype.setCenter=function(e,t){this.rect.x=e-this.rect.width/2,this.rect.y=t-this.rect.height/2},u.prototype.setLocation=function(e,t){this.rect.x=e,this.rect.y=t},u.prototype.moveBy=function(e,t){this.rect.x+=e,this.rect.y+=t},u.prototype.getEdgeListToNode=function(e){var t=[],n=this;return n.edges.forEach((function(r){if(r.target==e){if(r.source!=n)throw"Incorrect edge source!";t.push(r)}})),t},u.prototype.getEdgesBetween=function(e){var t=[],n=this;return n.edges.forEach((function(r){if(r.source!=n&&r.target!=n)throw"Incorrect edge source and/or target";r.target!=e&&r.source!=e||t.push(r)})),t},u.prototype.getNeighborsList=function(){var e=new Set,t=this;return t.edges.forEach((function(n){if(n.source==t)e.add(n.target);else{if(n.target!=t)throw"Incorrect incidency!";e.add(n.source)}})),e},u.prototype.withChildren=function(){var e=new Set;if(e.add(this),null!=this.child)for(var t=this.child.getNodes(),n=0;n<t.length;n++)t[n].withChildren().forEach((function(t){e.add(t)}));return e},u.prototype.getNoOfChildren=function(){var e=0;if(null==this.child)e=1;else for(var t=this.child.getNodes(),n=0;n<t.length;n++)e+=t[n].getNoOfChildren();return 0==e&&(e=1),e},u.prototype.getEstimatedSize=function(){if(this.estimatedSize==i.MIN_VALUE)throw"assert failed";return this.estimatedSize},u.prototype.calcEstimatedSize=function(){return null==this.child?this.estimatedSize=(this.rect.width+this.rect.height)/2:(this.estimatedSize=this.child.calcEstimatedSize(),this.rect.width=this.estimatedSize,this.rect.height=this.estimatedSize,this.estimatedSize)},u.prototype.scatter=function(){var e,t,n=-o.INITIAL_WORLD_BOUNDARY,r=o.INITIAL_WORLD_BOUNDARY;e=o.WORLD_CENTER_X+s.nextDouble()*(r-n)+n;var i=-o.INITIAL_WORLD_BOUNDARY,a=o.INITIAL_WORLD_BOUNDARY;t=o.WORLD_CENTER_Y+s.nextDouble()*(a-i)+i,this.rect.x=e,this.rect.y=t},u.prototype.updateBounds=function(){if(null==this.getChild())throw"assert failed";if(0!=this.getChild().getNodes().length){var e=this.getChild();if(e.updateBounds(!0),this.rect.x=e.getLeft(),this.rect.y=e.getTop(),this.setWidth(e.getRight()-e.getLeft()),this.setHeight(e.getBottom()-e.getTop()),o.NODE_DIMENSIONS_INCLUDE_LABELS){var t=e.getRight()-e.getLeft(),n=e.getBottom()-e.getTop();this.labelWidth>t&&(this.rect.x-=(this.labelWidth-t)/2,this.setWidth(this.labelWidth)),this.labelHeight>n&&("center"==this.labelPos?this.rect.y-=(this.labelHeight-n)/2:"top"==this.labelPos&&(this.rect.y-=this.labelHeight-n),this.setHeight(this.labelHeight))}}},u.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==i.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},u.prototype.transform=function(e){var t=this.rect.x;t>o.WORLD_BOUNDARY?t=o.WORLD_BOUNDARY:t<-o.WORLD_BOUNDARY&&(t=-o.WORLD_BOUNDARY);var n=this.rect.y;n>o.WORLD_BOUNDARY?n=o.WORLD_BOUNDARY:n<-o.WORLD_BOUNDARY&&(n=-o.WORLD_BOUNDARY);var r=new l(t,n),i=e.inverseTransformPoint(r);this.setLocation(i.x,i.y)},u.prototype.getLeft=function(){return this.rect.x},u.prototype.getRight=function(){return this.rect.x+this.rect.width},u.prototype.getTop=function(){return this.rect.y},u.prototype.getBottom=function(){return this.rect.y+this.rect.height},u.prototype.getParent=function(){return null==this.owner?null:this.owner.getParent()},e.exports=u},function(e,t,n){"use strict";function r(e,t){null==e&&null==t?(this.x=0,this.y=0):(this.x=e,this.y=t)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.setX=function(e){this.x=e},r.prototype.setY=function(e){this.y=e},r.prototype.getDifference=function(e){return new DimensionD(this.x-e.x,this.y-e.y)},r.prototype.getCopy=function(){return new r(this.x,this.y)},r.prototype.translate=function(e){return this.x+=e.width,this.y+=e.height,this},e.exports=r},function(e,t,n){"use strict";var r=n(2),i=n(10),a=n(0),o=n(6),s=n(3),l=n(1),u=n(13),c=n(12),h=n(11);function d(e,t,n){r.call(this,n),this.estimatedSize=i.MIN_VALUE,this.margin=a.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=e,null!=t&&t instanceof o?this.graphManager=t:null!=t&&t instanceof Layout&&(this.graphManager=t.graphManager)}for(var p in d.prototype=Object.create(r.prototype),r)d[p]=r[p];d.prototype.getNodes=function(){return this.nodes},d.prototype.getEdges=function(){return this.edges},d.prototype.getGraphManager=function(){return this.graphManager},d.prototype.getParent=function(){return this.parent},d.prototype.getLeft=function(){return this.left},d.prototype.getRight=function(){return this.right},d.prototype.getTop=function(){return this.top},d.prototype.getBottom=function(){return this.bottom},d.prototype.isConnected=function(){return this.isConnected},d.prototype.add=function(e,t,n){if(null==t&&null==n){var r=e;if(null==this.graphManager)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(r)>-1)throw"Node already in graph!";return r.owner=this,this.getNodes().push(r),r}var i=e;if(!(this.getNodes().indexOf(t)>-1&&this.getNodes().indexOf(n)>-1))throw"Source or target not in graph!";if(t.owner!=n.owner||t.owner!=this)throw"Both owners must be this graph!";return t.owner!=n.owner?null:(i.source=t,i.target=n,i.isInterGraph=!1,this.getEdges().push(i),t.edges.push(i),n!=t&&n.edges.push(i),i)},d.prototype.remove=function(e){var t=e;if(e instanceof s){if(null==t)throw"Node is null!";if(null==t.owner||t.owner!=this)throw"Owner graph is invalid!";if(null==this.graphManager)throw"Owner graph manager is invalid!";for(var n=t.edges.slice(),r=n.length,i=0;i<r;i++)(a=n[i]).isInterGraph?this.graphManager.remove(a):a.source.owner.remove(a);if(-1==(o=this.nodes.indexOf(t)))throw"Node not in owner node list!";this.nodes.splice(o,1)}else if(e instanceof l){var a;if(null==(a=e))throw"Edge is null!";if(null==a.source||null==a.target)throw"Source and/or target is null!";if(null==a.source.owner||null==a.target.owner||a.source.owner!=this||a.target.owner!=this)throw"Source and/or target owner is invalid!";var o,u=a.source.edges.indexOf(a),c=a.target.edges.indexOf(a);if(!(u>-1&&c>-1))throw"Source and/or target doesn't know this edge!";if(a.source.edges.splice(u,1),a.target!=a.source&&a.target.edges.splice(c,1),-1==(o=a.source.owner.getEdges().indexOf(a)))throw"Not in owner's edge list!";a.source.owner.getEdges().splice(o,1)}},d.prototype.updateLeftTop=function(){for(var e,t,n,r=i.MAX_VALUE,a=i.MAX_VALUE,o=this.getNodes(),s=o.length,l=0;l<s;l++){var u=o[l];r>(e=u.getTop())&&(r=e),a>(t=u.getLeft())&&(a=t)}return r==i.MAX_VALUE?null:(n=null!=o[0].getParent().paddingLeft?o[0].getParent().paddingLeft:this.margin,this.left=a-n,this.top=r-n,new c(this.left,this.top))},d.prototype.updateBounds=function(e){for(var t,n,r,a,o,s=i.MAX_VALUE,l=-i.MAX_VALUE,c=i.MAX_VALUE,h=-i.MAX_VALUE,d=this.nodes,p=d.length,g=0;g<p;g++){var f=d[g];e&&null!=f.child&&f.updateBounds(),s>(t=f.getLeft())&&(s=t),l<(n=f.getRight())&&(l=n),c>(r=f.getTop())&&(c=r),h<(a=f.getBottom())&&(h=a)}var v=new u(s,c,l-s,h-c);s==i.MAX_VALUE&&(this.left=this.parent.getLeft(),this.right=this.parent.getRight(),this.top=this.parent.getTop(),this.bottom=this.parent.getBottom()),o=null!=d[0].getParent().paddingLeft?d[0].getParent().paddingLeft:this.margin,this.left=v.x-o,this.right=v.x+v.width+o,this.top=v.y-o,this.bottom=v.y+v.height+o},d.calculateBounds=function(e){for(var t,n,r,a,o=i.MAX_VALUE,s=-i.MAX_VALUE,l=i.MAX_VALUE,c=-i.MAX_VALUE,h=e.length,d=0;d<h;d++){var p=e[d];o>(t=p.getLeft())&&(o=t),s<(n=p.getRight())&&(s=n),l>(r=p.getTop())&&(l=r),c<(a=p.getBottom())&&(c=a)}return new u(o,l,s-o,c-l)},d.prototype.getInclusionTreeDepth=function(){return this==this.graphManager.getRoot()?1:this.parent.getInclusionTreeDepth()},d.prototype.getEstimatedSize=function(){if(this.estimatedSize==i.MIN_VALUE)throw"assert failed";return this.estimatedSize},d.prototype.calcEstimatedSize=function(){for(var e=0,t=this.nodes,n=t.length,r=0;r<n;r++)e+=t[r].calcEstimatedSize();return this.estimatedSize=0==e?a.EMPTY_COMPOUND_NODE_SIZE:e/Math.sqrt(this.nodes.length),this.estimatedSize},d.prototype.updateConnected=function(){var e=this;if(0!=this.nodes.length){var t,n,r=new h,i=new Set,a=this.nodes[0];for(a.withChildren().forEach((function(e){r.push(e),i.add(e)}));0!==r.length;)for(var o=(t=(a=r.shift()).getEdges()).length,s=0;s<o;s++)null==(n=t[s].getOtherEndInGraph(a,this))||i.has(n)||n.withChildren().forEach((function(e){r.push(e),i.add(e)}));if(this.isConnected=!1,i.size>=this.nodes.length){var l=0;i.forEach((function(t){t.owner==e&&l++})),l==this.nodes.length&&(this.isConnected=!0)}}else this.isConnected=!0},e.exports=d},function(e,t,n){"use strict";var r,i=n(1);function a(e){r=n(5),this.layout=e,this.graphs=[],this.edges=[]}a.prototype.addRoot=function(){var e=this.layout.newGraph(),t=this.layout.newNode(null),n=this.add(e,t);return this.setRootGraph(n),this.rootGraph},a.prototype.add=function(e,t,n,r,i){if(null==n&&null==r&&null==i){if(null==e)throw"Graph is null!";if(null==t)throw"Parent node is null!";if(this.graphs.indexOf(e)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(e),null!=e.parent)throw"Already has a parent!";if(null!=t.child)throw"Already has a child!";return e.parent=t,t.child=e,e}i=n,n=e;var a=(r=t).getOwner(),o=i.getOwner();if(null==a||a.getGraphManager()!=this)throw"Source not in this graph mgr!";if(null==o||o.getGraphManager()!=this)throw"Target not in this graph mgr!";if(a==o)return n.isInterGraph=!1,a.add(n,r,i);if(n.isInterGraph=!0,n.source=r,n.target=i,this.edges.indexOf(n)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(n),null==n.source||null==n.target)throw"Edge source and/or target is null!";if(-1!=n.source.edges.indexOf(n)||-1!=n.target.edges.indexOf(n))throw"Edge already in source and/or target incidency list!";return n.source.edges.push(n),n.target.edges.push(n),n},a.prototype.remove=function(e){if(e instanceof r){var t=e;if(t.getGraphManager()!=this)throw"Graph not in this graph mgr";if(t!=this.rootGraph&&(null==t.parent||t.parent.graphManager!=this))throw"Invalid parent node!";for(var n,a=[],o=(a=a.concat(t.getEdges())).length,s=0;s<o;s++)n=a[s],t.remove(n);var l,u=[];for(o=(u=u.concat(t.getNodes())).length,s=0;s<o;s++)l=u[s],t.remove(l);t==this.rootGraph&&this.setRootGraph(null);var c=this.graphs.indexOf(t);this.graphs.splice(c,1),t.parent=null}else if(e instanceof i){if(null==(n=e))throw"Edge is null!";if(!n.isInterGraph)throw"Not an inter-graph edge!";if(null==n.source||null==n.target)throw"Source and/or target is null!";if(-1==n.source.edges.indexOf(n)||-1==n.target.edges.indexOf(n))throw"Source and/or target doesn't know this edge!";if(c=n.source.edges.indexOf(n),n.source.edges.splice(c,1),c=n.target.edges.indexOf(n),n.target.edges.splice(c,1),null==n.source.owner||null==n.source.owner.getGraphManager())throw"Edge owner graph or owner graph manager is null!";if(-1==n.source.owner.getGraphManager().edges.indexOf(n))throw"Not in owner graph manager's edge list!";c=n.source.owner.getGraphManager().edges.indexOf(n),n.source.owner.getGraphManager().edges.splice(c,1)}},a.prototype.updateBounds=function(){this.rootGraph.updateBounds(!0)},a.prototype.getGraphs=function(){return this.graphs},a.prototype.getAllNodes=function(){if(null==this.allNodes){for(var e=[],t=this.getGraphs(),n=t.length,r=0;r<n;r++)e=e.concat(t[r].getNodes());this.allNodes=e}return this.allNodes},a.prototype.resetAllNodes=function(){this.allNodes=null},a.prototype.resetAllEdges=function(){this.allEdges=null},a.prototype.resetAllNodesToApplyGravitation=function(){this.allNodesToApplyGravitation=null},a.prototype.getAllEdges=function(){if(null==this.allEdges){for(var e=[],t=this.getGraphs(),n=(t.length,0);n<t.length;n++)e=e.concat(t[n].getEdges());e=e.concat(this.edges),this.allEdges=e}return this.allEdges},a.prototype.getAllNodesToApplyGravitation=function(){return this.allNodesToApplyGravitation},a.prototype.setAllNodesToApplyGravitation=function(e){if(null!=this.allNodesToApplyGravitation)throw"assert failed";this.allNodesToApplyGravitation=e},a.prototype.getRoot=function(){return this.rootGraph},a.prototype.setRootGraph=function(e){if(e.getGraphManager()!=this)throw"Root not in this graph mgr!";this.rootGraph=e,null==e.parent&&(e.parent=this.layout.newNode("Root node"))},a.prototype.getLayout=function(){return this.layout},a.prototype.isOneAncestorOfOther=function(e,t){if(null==e||null==t)throw"assert failed";if(e==t)return!0;for(var n,r=e.getOwner();null!=(n=r.getParent());){if(n==t)return!0;if(null==(r=n.getOwner()))break}for(r=t.getOwner();null!=(n=r.getParent());){if(n==e)return!0;if(null==(r=n.getOwner()))break}return!1},a.prototype.calcLowestCommonAncestors=function(){for(var e,t,n,r,i,a=this.getAllEdges(),o=a.length,s=0;s<o;s++)if(t=(e=a[s]).source,n=e.target,e.lca=null,e.sourceInLca=t,e.targetInLca=n,t!=n){for(r=t.getOwner();null==e.lca;){for(e.targetInLca=n,i=n.getOwner();null==e.lca;){if(i==r){e.lca=i;break}if(i==this.rootGraph)break;if(null!=e.lca)throw"assert failed";e.targetInLca=i.getParent(),i=e.targetInLca.getOwner()}if(r==this.rootGraph)break;null==e.lca&&(e.sourceInLca=r.getParent(),r=e.sourceInLca.getOwner())}if(null==e.lca)throw"assert failed"}else e.lca=t.getOwner()},a.prototype.calcLowestCommonAncestor=function(e,t){if(e==t)return e.getOwner();for(var n=e.getOwner();null!=n;){for(var r=t.getOwner();null!=r;){if(r==n)return r;r=r.getParent().getOwner()}n=n.getParent().getOwner()}return n},a.prototype.calcInclusionTreeDepths=function(e,t){var n;null==e&&null==t&&(e=this.rootGraph,t=1);for(var r=e.getNodes(),i=r.length,a=0;a<i;a++)(n=r[a]).inclusionTreeDepth=t,null!=n.child&&this.calcInclusionTreeDepths(n.child,t+1)},a.prototype.includesInvalidEdge=function(){for(var e,t=this.edges.length,n=0;n<t;n++)if(e=this.edges[n],this.isOneAncestorOfOther(e.source,e.target))return!0;return!1},e.exports=a},function(e,t,n){"use strict";var r=n(0);function i(){}for(var a in r)i[a]=r[a];i.MAX_ITERATIONS=2500,i.DEFAULT_EDGE_LENGTH=50,i.DEFAULT_SPRING_STRENGTH=.45,i.DEFAULT_REPULSION_STRENGTH=4500,i.DEFAULT_GRAVITY_STRENGTH=.4,i.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,i.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,i.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,i.COOLING_ADAPTATION_FACTOR=.33,i.ADAPTATION_LOWER_NODE_LIMIT=1e3,i.ADAPTATION_UPPER_NODE_LIMIT=5e3,i.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,i.MAX_NODE_DISPLACEMENT=3*i.MAX_NODE_DISPLACEMENT_INCREMENTAL,i.MIN_REPULSION_DIST=i.DEFAULT_EDGE_LENGTH/10,i.CONVERGENCE_CHECK_PERIOD=100,i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,i.MIN_EDGE_LENGTH=1,i.GRID_CALCULATION_CHECK_PERIOD=10,e.exports=i},function(e,t,n){"use strict";var r=n(12);function i(){}i.calcSeparationAmount=function(e,t,n,r){if(!e.intersects(t))throw"assert failed";var i=new Array(2);this.decideDirectionsForOverlappingNodes(e,t,i),n[0]=Math.min(e.getRight(),t.getRight())-Math.max(e.x,t.x),n[1]=Math.min(e.getBottom(),t.getBottom())-Math.max(e.y,t.y),e.getX()<=t.getX()&&e.getRight()>=t.getRight()?n[0]+=Math.min(t.getX()-e.getX(),e.getRight()-t.getRight()):t.getX()<=e.getX()&&t.getRight()>=e.getRight()&&(n[0]+=Math.min(e.getX()-t.getX(),t.getRight()-e.getRight())),e.getY()<=t.getY()&&e.getBottom()>=t.getBottom()?n[1]+=Math.min(t.getY()-e.getY(),e.getBottom()-t.getBottom()):t.getY()<=e.getY()&&t.getBottom()>=e.getBottom()&&(n[1]+=Math.min(e.getY()-t.getY(),t.getBottom()-e.getBottom()));var a=Math.abs((t.getCenterY()-e.getCenterY())/(t.getCenterX()-e.getCenterX()));t.getCenterY()===e.getCenterY()&&t.getCenterX()===e.getCenterX()&&(a=1);var o=a*n[0],s=n[1]/a;n[0]<s?s=n[0]:o=n[1],n[0]=-1*i[0]*(s/2+r),n[1]=-1*i[1]*(o/2+r)},i.decideDirectionsForOverlappingNodes=function(e,t,n){e.getCenterX()<t.getCenterX()?n[0]=-1:n[0]=1,e.getCenterY()<t.getCenterY()?n[1]=-1:n[1]=1},i.getIntersection2=function(e,t,n){var r=e.getCenterX(),i=e.getCenterY(),a=t.getCenterX(),o=t.getCenterY();if(e.intersects(t))return n[0]=r,n[1]=i,n[2]=a,n[3]=o,!0;var s=e.getX(),l=e.getY(),u=e.getRight(),c=e.getX(),h=e.getBottom(),d=e.getRight(),p=e.getWidthHalf(),g=e.getHeightHalf(),f=t.getX(),v=t.getY(),y=t.getRight(),m=t.getX(),b=t.getBottom(),x=t.getRight(),w=t.getWidthHalf(),E=t.getHeightHalf(),T=!1,_=!1;if(r===a){if(i>o)return n[0]=r,n[1]=l,n[2]=a,n[3]=b,!1;if(i<o)return n[0]=r,n[1]=h,n[2]=a,n[3]=v,!1}else if(i===o){if(r>a)return n[0]=s,n[1]=i,n[2]=y,n[3]=o,!1;if(r<a)return n[0]=u,n[1]=i,n[2]=f,n[3]=o,!1}else{var D=e.height/e.width,C=t.height/t.width,N=(o-i)/(a-r),A=void 0,L=void 0,S=void 0,O=void 0,I=void 0,k=void 0;if(-D===N?r>a?(n[0]=c,n[1]=h,T=!0):(n[0]=u,n[1]=l,T=!0):D===N&&(r>a?(n[0]=s,n[1]=l,T=!0):(n[0]=d,n[1]=h,T=!0)),-C===N?a>r?(n[2]=m,n[3]=b,_=!0):(n[2]=y,n[3]=v,_=!0):C===N&&(a>r?(n[2]=f,n[3]=v,_=!0):(n[2]=x,n[3]=b,_=!0)),T&&_)return!1;if(r>a?i>o?(A=this.getCardinalDirection(D,N,4),L=this.getCardinalDirection(C,N,2)):(A=this.getCardinalDirection(-D,N,3),L=this.getCardinalDirection(-C,N,1)):i>o?(A=this.getCardinalDirection(-D,N,1),L=this.getCardinalDirection(-C,N,3)):(A=this.getCardinalDirection(D,N,2),L=this.getCardinalDirection(C,N,4)),!T)switch(A){case 1:O=l,S=r+-g/N,n[0]=S,n[1]=O;break;case 2:S=d,O=i+p*N,n[0]=S,n[1]=O;break;case 3:O=h,S=r+g/N,n[0]=S,n[1]=O;break;case 4:S=c,O=i+-p*N,n[0]=S,n[1]=O}if(!_)switch(L){case 1:k=v,I=a+-E/N,n[2]=I,n[3]=k;break;case 2:I=x,k=o+w*N,n[2]=I,n[3]=k;break;case 3:k=b,I=a+E/N,n[2]=I,n[3]=k;break;case 4:I=m,k=o+-w*N,n[2]=I,n[3]=k}}return!1},i.getCardinalDirection=function(e,t,n){return e>t?n:1+n%4},i.getIntersection=function(e,t,n,i){if(null==i)return this.getIntersection2(e,t,n);var a,o,s,l,u,c,h,d=e.x,p=e.y,g=t.x,f=t.y,v=n.x,y=n.y,m=i.x,b=i.y;return 0==(h=(a=f-p)*(l=v-m)-(o=b-y)*(s=d-g))?null:new r((s*(c=m*y-v*b)-l*(u=g*p-d*f))/h,(o*u-a*c)/h)},i.angleOfVector=function(e,t,n,r){var i=void 0;return e!==n?(i=Math.atan((r-t)/(n-e)),n<e?i+=Math.PI:r<t&&(i+=this.TWO_PI)):i=r<t?this.ONE_AND_HALF_PI:this.HALF_PI,i},i.doIntersect=function(e,t,n,r){var i=e.x,a=e.y,o=t.x,s=t.y,l=n.x,u=n.y,c=r.x,h=r.y,d=(o-i)*(h-u)-(c-l)*(s-a);if(0===d)return!1;var p=((h-u)*(c-i)+(l-c)*(h-a))/d,g=((a-s)*(c-i)+(o-i)*(h-a))/d;return 0<p&&p<1&&0<g&&g<1},i.HALF_PI=.5*Math.PI,i.ONE_AND_HALF_PI=1.5*Math.PI,i.TWO_PI=2*Math.PI,i.THREE_PI=3*Math.PI,e.exports=i},function(e,t,n){"use strict";function r(){}r.sign=function(e){return e>0?1:e<0?-1:0},r.floor=function(e){return e<0?Math.ceil(e):Math.floor(e)},r.ceil=function(e){return e<0?Math.floor(e):Math.ceil(e)},e.exports=r},function(e,t,n){"use strict";function r(){}r.MAX_VALUE=2147483647,r.MIN_VALUE=-2147483648,e.exports=r},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=function(e){return{value:e,next:null,prev:null}},a=function(e,t,n,r){return null!==e?e.next=t:r.head=t,null!==n?n.prev=t:r.tail=t,t.prev=e,t.next=n,r.length++,t},o=function(e,t){var n=e.prev,r=e.next;return null!==n?n.next=r:t.head=r,null!==r?r.prev=n:t.tail=n,e.prev=e.next=null,t.length--,e},s=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.length=0,this.head=null,this.tail=null,null!=t&&t.forEach((function(e){return n.push(e)}))}return r(e,[{key:"size",value:function(){return this.length}},{key:"insertBefore",value:function(e,t){return a(t.prev,i(e),t,this)}},{key:"insertAfter",value:function(e,t){return a(t,i(e),t.next,this)}},{key:"insertNodeBefore",value:function(e,t){return a(t.prev,e,t,this)}},{key:"insertNodeAfter",value:function(e,t){return a(t,e,t.next,this)}},{key:"push",value:function(e){return a(this.tail,i(e),null,this)}},{key:"unshift",value:function(e){return a(null,i(e),this.head,this)}},{key:"remove",value:function(e){return o(e,this)}},{key:"pop",value:function(){return o(this.tail,this).value}},{key:"popNode",value:function(){return o(this.tail,this)}},{key:"shift",value:function(){return o(this.head,this).value}},{key:"shiftNode",value:function(){return o(this.head,this)}},{key:"get_object_at",value:function(e){if(e<=this.length()){for(var t=1,n=this.head;t<e;)n=n.next,t++;return n.value}}},{key:"set_object_at",value:function(e,t){if(e<=this.length()){for(var n=1,r=this.head;n<e;)r=r.next,n++;r.value=t}}}]),e}();e.exports=s},function(e,t,n){"use strict";function r(e,t,n){this.x=null,this.y=null,null==e&&null==t&&null==n?(this.x=0,this.y=0):"number"==typeof e&&"number"==typeof t&&null==n?(this.x=e,this.y=t):"Point"==e.constructor.name&&null==t&&null==n&&(n=e,this.x=n.x,this.y=n.y)}r.prototype.getX=function(){return this.x},r.prototype.getY=function(){return this.y},r.prototype.getLocation=function(){return new r(this.x,this.y)},r.prototype.setLocation=function(e,t,n){"Point"==e.constructor.name&&null==t&&null==n?(n=e,this.setLocation(n.x,n.y)):"number"==typeof e&&"number"==typeof t&&null==n&&(parseInt(e)==e&&parseInt(t)==t?this.move(e,t):(this.x=Math.floor(e+.5),this.y=Math.floor(t+.5)))},r.prototype.move=function(e,t){this.x=e,this.y=t},r.prototype.translate=function(e,t){this.x+=e,this.y+=t},r.prototype.equals=function(e){if("Point"==e.constructor.name){var t=e;return this.x==t.x&&this.y==t.y}return this==e},r.prototype.toString=function(){return(new r).constructor.name+"[x="+this.x+",y="+this.y+"]"},e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){this.x=0,this.y=0,this.width=0,this.height=0,null!=e&&null!=t&&null!=n&&null!=r&&(this.x=e,this.y=t,this.width=n,this.height=r)}r.prototype.getX=function(){return this.x},r.prototype.setX=function(e){this.x=e},r.prototype.getY=function(){return this.y},r.prototype.setY=function(e){this.y=e},r.prototype.getWidth=function(){return this.width},r.prototype.setWidth=function(e){this.width=e},r.prototype.getHeight=function(){return this.height},r.prototype.setHeight=function(e){this.height=e},r.prototype.getRight=function(){return this.x+this.width},r.prototype.getBottom=function(){return this.y+this.height},r.prototype.intersects=function(e){return!(this.getRight()<e.x||this.getBottom()<e.y||e.getRight()<this.x||e.getBottom()<this.y)},r.prototype.getCenterX=function(){return this.x+this.width/2},r.prototype.getMinX=function(){return this.getX()},r.prototype.getMaxX=function(){return this.getX()+this.width},r.prototype.getCenterY=function(){return this.y+this.height/2},r.prototype.getMinY=function(){return this.getY()},r.prototype.getMaxY=function(){return this.getY()+this.height},r.prototype.getWidthHalf=function(){return this.width/2},r.prototype.getHeightHalf=function(){return this.height/2},e.exports=r},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function i(){}i.lastID=0,i.createID=function(e){return i.isPrimitive(e)?e:(null!=e.uniqueID||(e.uniqueID=i.getString(),i.lastID++),e.uniqueID)},i.getString=function(e){return null==e&&(e=i.lastID),"Object#"+e},i.isPrimitive=function(e){var t=void 0===e?"undefined":r(e);return null==e||"object"!=t&&"function"!=t},e.exports=i},function(e,t,n){"use strict";function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var i=n(0),a=n(6),o=n(3),s=n(1),l=n(5),u=n(4),c=n(17),h=n(27);function d(e){h.call(this),this.layoutQuality=i.QUALITY,this.createBendsAsNeeded=i.DEFAULT_CREATE_BENDS_AS_NEEDED,this.incremental=i.DEFAULT_INCREMENTAL,this.animationOnLayout=i.DEFAULT_ANIMATION_ON_LAYOUT,this.animationDuringLayout=i.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=i.DEFAULT_ANIMATION_PERIOD,this.uniformLeafNodeSizes=i.DEFAULT_UNIFORM_LEAF_NODE_SIZES,this.edgeToDummyNodes=new Map,this.graphManager=new a(this),this.isLayoutFinished=!1,this.isSubLayout=!1,this.isRemoteUse=!1,null!=e&&(this.isRemoteUse=e)}d.RANDOM_SEED=1,d.prototype=Object.create(h.prototype),d.prototype.getGraphManager=function(){return this.graphManager},d.prototype.getAllNodes=function(){return this.graphManager.getAllNodes()},d.prototype.getAllEdges=function(){return this.graphManager.getAllEdges()},d.prototype.getAllNodesToApplyGravitation=function(){return this.graphManager.getAllNodesToApplyGravitation()},d.prototype.newGraphManager=function(){var e=new a(this);return this.graphManager=e,e},d.prototype.newGraph=function(e){return new l(null,this.graphManager,e)},d.prototype.newNode=function(e){return new o(this.graphManager,e)},d.prototype.newEdge=function(e){return new s(null,null,e)},d.prototype.checkLayoutSuccess=function(){return null==this.graphManager.getRoot()||0==this.graphManager.getRoot().getNodes().length||this.graphManager.includesInvalidEdge()},d.prototype.runLayout=function(){var e;return this.isLayoutFinished=!1,this.tilingPreLayout&&this.tilingPreLayout(),this.initParameters(),e=!this.checkLayoutSuccess()&&this.layout(),"during"!==i.ANIMATE&&(e&&(this.isSubLayout||this.doPostLayout()),this.tilingPostLayout&&this.tilingPostLayout(),this.isLayoutFinished=!0,e)},d.prototype.doPostLayout=function(){this.incremental||this.transform(),this.update()},d.prototype.update2=function(){if(this.createBendsAsNeeded&&(this.createBendpointsFromDummyNodes(),this.graphManager.resetAllEdges()),!this.isRemoteUse){for(var e=this.graphManager.getAllEdges(),t=0;t<e.length;t++)e[t];var n=this.graphManager.getRoot().getNodes();for(t=0;t<n.length;t++)n[t];this.update(this.graphManager.getRoot())}},d.prototype.update=function(e){if(null==e)this.update2();else if(e instanceof o){var t=e;if(null!=t.getChild())for(var n=t.getChild().getNodes(),r=0;r<n.length;r++)update(n[r]);null!=t.vGraphObject&&t.vGraphObject.update(t)}else if(e instanceof s){var i=e;null!=i.vGraphObject&&i.vGraphObject.update(i)}else if(e instanceof l){var a=e;null!=a.vGraphObject&&a.vGraphObject.update(a)}},d.prototype.initParameters=function(){this.isSubLayout||(this.layoutQuality=i.QUALITY,this.animationDuringLayout=i.DEFAULT_ANIMATION_DURING_LAYOUT,this.animationPeriod=i.DEFAULT_ANIMATION_PERIOD,this.animationOnLayout=i.DEFAULT_ANIMATION_ON_LAYOUT,this.incremental=i.DEFAULT_INCREMENTAL,this.createBendsAsNeeded=i.DEFAULT_CREATE_BENDS_AS_NEEDED,this.uniformLeafNodeSizes=i.DEFAULT_UNIFORM_LEAF_NODE_SIZES),this.animationDuringLayout&&(this.animationOnLayout=!1)},d.prototype.transform=function(e){if(null==e)this.transform(new u(0,0));else{var t=new c,n=this.graphManager.getRoot().updateLeftTop();if(null!=n){t.setWorldOrgX(e.x),t.setWorldOrgY(e.y),t.setDeviceOrgX(n.x),t.setDeviceOrgY(n.y);for(var r=this.getAllNodes(),i=0;i<r.length;i++)r[i].transform(t)}}},d.prototype.positionNodesRandomly=function(e){if(null==e)this.positionNodesRandomly(this.getGraphManager().getRoot()),this.getGraphManager().getRoot().updateBounds(!0);else for(var t,n,r=e.getNodes(),i=0;i<r.length;i++)null==(n=(t=r[i]).getChild())||0==n.getNodes().length?t.scatter():(this.positionNodesRandomly(n),t.updateBounds())},d.prototype.getFlatForest=function(){for(var e=[],t=!0,n=this.graphManager.getRoot().getNodes(),i=!0,a=0;a<n.length;a++)null!=n[a].getChild()&&(i=!1);if(!i)return e;var o=new Set,s=[],l=new Map,u=[];for(u=u.concat(n);u.length>0&&t;){for(s.push(u[0]);s.length>0&&t;){var c=s[0];s.splice(0,1),o.add(c);var h=c.getEdges();for(a=0;a<h.length;a++){var d=h[a].getOtherEnd(c);if(l.get(c)!=d){if(o.has(d)){t=!1;break}s.push(d),l.set(d,c)}}}if(t){var p=[].concat(r(o));for(e.push(p),a=0;a<p.length;a++){var g=p[a],f=u.indexOf(g);f>-1&&u.splice(f,1)}o=new Set,l=new Map}else e=[]}return e},d.prototype.createDummyNodesForBendpoints=function(e){for(var t=[],n=e.source,r=this.graphManager.calcLowestCommonAncestor(e.source,e.target),i=0;i<e.bendpoints.length;i++){var a=this.newNode(null);a.setRect(new Point(0,0),new Dimension(1,1)),r.add(a);var o=this.newEdge(null);this.graphManager.add(o,n,a),t.add(a),n=a}return o=this.newEdge(null),this.graphManager.add(o,n,e.target),this.edgeToDummyNodes.set(e,t),e.isInterGraph()?this.graphManager.remove(e):r.remove(e),t},d.prototype.createBendpointsFromDummyNodes=function(){var e=[];e=e.concat(this.graphManager.getAllEdges()),e=[].concat(r(this.edgeToDummyNodes.keys())).concat(e);for(var t=0;t<e.length;t++){var n=e[t];if(n.bendpoints.length>0){for(var i=this.edgeToDummyNodes.get(n),a=0;a<i.length;a++){var o=i[a],s=new u(o.getCenterX(),o.getCenterY()),l=n.bendpoints.get(a);l.x=s.x,l.y=s.y,o.getOwner().remove(o)}this.graphManager.add(n,n.source,n.target)}}},d.transform=function(e,t,n,r){if(null!=n&&null!=r){var i=t;return e<=50?i-=(t-t/n)/50*(50-e):i+=(t*r-t)/50*(e-50),i}var a,o;return e<=50?(a=9*t/500,o=t/10):(a=9*t/50,o=-8*t),a*e+o},d.findCenterOfTree=function(e){var t=[];t=t.concat(e);var n=[],r=new Map,i=!1,a=null;1!=t.length&&2!=t.length||(i=!0,a=t[0]);for(var o=0;o<t.length;o++){var s=(c=t[o]).getNeighborsList().size;r.set(c,c.getNeighborsList().size),1==s&&n.push(c)}var l=[];for(l=l.concat(n);!i;){var u=[];for(u=u.concat(l),l=[],o=0;o<t.length;o++){var c=t[o],h=t.indexOf(c);h>=0&&t.splice(h,1),c.getNeighborsList().forEach((function(e){if(n.indexOf(e)<0){var t=r.get(e)-1;1==t&&l.push(e),r.set(e,t)}}))}n=n.concat(l),1!=t.length&&2!=t.length||(i=!0,a=t[0])}return a},d.prototype.setGraphManager=function(e){this.graphManager=e},e.exports=d},function(e,t,n){"use strict";function r(){}r.seed=1,r.x=0,r.nextDouble=function(){return r.x=1e4*Math.sin(r.seed++),r.x-Math.floor(r.x)},e.exports=r},function(e,t,n){"use strict";var r=n(4);function i(e,t){this.lworldOrgX=0,this.lworldOrgY=0,this.ldeviceOrgX=0,this.ldeviceOrgY=0,this.lworldExtX=1,this.lworldExtY=1,this.ldeviceExtX=1,this.ldeviceExtY=1}i.prototype.getWorldOrgX=function(){return this.lworldOrgX},i.prototype.setWorldOrgX=function(e){this.lworldOrgX=e},i.prototype.getWorldOrgY=function(){return this.lworldOrgY},i.prototype.setWorldOrgY=function(e){this.lworldOrgY=e},i.prototype.getWorldExtX=function(){return this.lworldExtX},i.prototype.setWorldExtX=function(e){this.lworldExtX=e},i.prototype.getWorldExtY=function(){return this.lworldExtY},i.prototype.setWorldExtY=function(e){this.lworldExtY=e},i.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},i.prototype.setDeviceOrgX=function(e){this.ldeviceOrgX=e},i.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},i.prototype.setDeviceOrgY=function(e){this.ldeviceOrgY=e},i.prototype.getDeviceExtX=function(){return this.ldeviceExtX},i.prototype.setDeviceExtX=function(e){this.ldeviceExtX=e},i.prototype.getDeviceExtY=function(){return this.ldeviceExtY},i.prototype.setDeviceExtY=function(e){this.ldeviceExtY=e},i.prototype.transformX=function(e){var t=0,n=this.lworldExtX;return 0!=n&&(t=this.ldeviceOrgX+(e-this.lworldOrgX)*this.ldeviceExtX/n),t},i.prototype.transformY=function(e){var t=0,n=this.lworldExtY;return 0!=n&&(t=this.ldeviceOrgY+(e-this.lworldOrgY)*this.ldeviceExtY/n),t},i.prototype.inverseTransformX=function(e){var t=0,n=this.ldeviceExtX;return 0!=n&&(t=this.lworldOrgX+(e-this.ldeviceOrgX)*this.lworldExtX/n),t},i.prototype.inverseTransformY=function(e){var t=0,n=this.ldeviceExtY;return 0!=n&&(t=this.lworldOrgY+(e-this.ldeviceOrgY)*this.lworldExtY/n),t},i.prototype.inverseTransformPoint=function(e){return new r(this.inverseTransformX(e.x),this.inverseTransformY(e.y))},e.exports=i},function(e,t,n){"use strict";var r=n(15),i=n(7),a=n(0),o=n(8),s=n(9);function l(){r.call(this),this.useSmartIdealEdgeLengthCalculation=i.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION,this.idealEdgeLength=i.DEFAULT_EDGE_LENGTH,this.springConstant=i.DEFAULT_SPRING_STRENGTH,this.repulsionConstant=i.DEFAULT_REPULSION_STRENGTH,this.gravityConstant=i.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=i.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=i.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=i.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.displacementThresholdPerNode=3*i.DEFAULT_EDGE_LENGTH/100,this.coolingFactor=i.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.initialCoolingFactor=i.DEFAULT_COOLING_FACTOR_INCREMENTAL,this.totalDisplacement=0,this.oldTotalDisplacement=0,this.maxIterations=i.MAX_ITERATIONS}for(var u in l.prototype=Object.create(r.prototype),r)l[u]=r[u];l.prototype.initParameters=function(){r.prototype.initParameters.call(this,arguments),this.totalIterations=0,this.notAnimatedIterations=0,this.useFRGridVariant=i.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION,this.grid=[]},l.prototype.calcIdealEdgeLengths=function(){for(var e,t,n,r,o,s,l=this.getGraphManager().getAllEdges(),u=0;u<l.length;u++)(e=l[u]).idealLength=this.idealEdgeLength,e.isInterGraph&&(n=e.getSource(),r=e.getTarget(),o=e.getSourceInLca().getEstimatedSize(),s=e.getTargetInLca().getEstimatedSize(),this.useSmartIdealEdgeLengthCalculation&&(e.idealLength+=o+s-2*a.SIMPLE_NODE_SIZE),t=e.getLca().getInclusionTreeDepth(),e.idealLength+=i.DEFAULT_EDGE_LENGTH*i.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR*(n.getInclusionTreeDepth()+r.getInclusionTreeDepth()-2*t))},l.prototype.initSpringEmbedder=function(){var e=this.getAllNodes().length;this.incremental?(e>i.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*i.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(e-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-i.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT_INCREMENTAL):(e>i.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(i.COOLING_ADAPTATION_FACTOR,1-(e-i.ADAPTATION_LOWER_NODE_LIMIT)/(i.ADAPTATION_UPPER_NODE_LIMIT-i.ADAPTATION_LOWER_NODE_LIMIT)*(1-i.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=i.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(5*this.getAllNodes().length,this.maxIterations),this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},l.prototype.calcSpringForces=function(){for(var e,t=this.getAllEdges(),n=0;n<t.length;n++)e=t[n],this.calcSpringForce(e,e.idealLength)},l.prototype.calcRepulsionForces=function(){var e,t,n,r,a,o=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],s=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.getAllNodes();if(this.useFRGridVariant)for(this.totalIterations%i.GRID_CALCULATION_CHECK_PERIOD==1&&o&&this.updateGrid(),a=new Set,e=0;e<l.length;e++)n=l[e],this.calculateRepulsionForceOfANode(n,a,o,s),a.add(n);else for(e=0;e<l.length;e++)for(n=l[e],t=e+1;t<l.length;t++)r=l[t],n.getOwner()==r.getOwner()&&this.calcRepulsionForce(n,r)},l.prototype.calcGravitationalForces=function(){for(var e,t=this.getAllNodesToApplyGravitation(),n=0;n<t.length;n++)e=t[n],this.calcGravitationalForce(e)},l.prototype.moveNodes=function(){for(var e=this.getAllNodes(),t=0;t<e.length;t++)e[t].move()},l.prototype.calcSpringForce=function(e,t){var n,r,i,a,o=e.getSource(),s=e.getTarget();if(this.uniformLeafNodeSizes&&null==o.getChild()&&null==s.getChild())e.updateLengthSimple();else if(e.updateLength(),e.isOverlapingSourceAndTarget)return;0!=(n=e.getLength())&&(i=(r=this.springConstant*(n-t))*(e.lengthX/n),a=r*(e.lengthY/n),o.springForceX+=i,o.springForceY+=a,s.springForceX-=i,s.springForceY-=a)},l.prototype.calcRepulsionForce=function(e,t){var n,r,a,l,u,c,h,d=e.getRect(),p=t.getRect(),g=new Array(2),f=new Array(4);if(d.intersects(p)){o.calcSeparationAmount(d,p,g,i.DEFAULT_EDGE_LENGTH/2),c=2*g[0],h=2*g[1];var v=e.noOfChildren*t.noOfChildren/(e.noOfChildren+t.noOfChildren);e.repulsionForceX-=v*c,e.repulsionForceY-=v*h,t.repulsionForceX+=v*c,t.repulsionForceY+=v*h}else this.uniformLeafNodeSizes&&null==e.getChild()&&null==t.getChild()?(n=p.getCenterX()-d.getCenterX(),r=p.getCenterY()-d.getCenterY()):(o.getIntersection(d,p,f),n=f[2]-f[0],r=f[3]-f[1]),Math.abs(n)<i.MIN_REPULSION_DIST&&(n=s.sign(n)*i.MIN_REPULSION_DIST),Math.abs(r)<i.MIN_REPULSION_DIST&&(r=s.sign(r)*i.MIN_REPULSION_DIST),a=n*n+r*r,l=Math.sqrt(a),c=(u=this.repulsionConstant*e.noOfChildren*t.noOfChildren/a)*n/l,h=u*r/l,e.repulsionForceX-=c,e.repulsionForceY-=h,t.repulsionForceX+=c,t.repulsionForceY+=h},l.prototype.calcGravitationalForce=function(e){var t,n,r,i,a,o,s,l;n=((t=e.getOwner()).getRight()+t.getLeft())/2,r=(t.getTop()+t.getBottom())/2,i=e.getCenterX()-n,a=e.getCenterY()-r,o=Math.abs(i)+e.getWidth()/2,s=Math.abs(a)+e.getHeight()/2,e.getOwner()==this.graphManager.getRoot()?(o>(l=t.getEstimatedSize()*this.gravityRangeFactor)||s>l)&&(e.gravitationForceX=-this.gravityConstant*i,e.gravitationForceY=-this.gravityConstant*a):(o>(l=t.getEstimatedSize()*this.compoundGravityRangeFactor)||s>l)&&(e.gravitationForceX=-this.gravityConstant*i*this.compoundGravityConstant,e.gravitationForceY=-this.gravityConstant*a*this.compoundGravityConstant)},l.prototype.isConverged=function(){var e,t=!1;return this.totalIterations>this.maxIterations/3&&(t=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),e=this.totalDisplacement<this.totalDisplacementThreshold,this.oldTotalDisplacement=this.totalDisplacement,e||t},l.prototype.animate=function(){this.animationDuringLayout&&!this.isSubLayout&&(this.notAnimatedIterations==this.animationPeriod?(this.update(),this.notAnimatedIterations=0):this.notAnimatedIterations++)},l.prototype.calcNoOfChildrenForAllNodes=function(){for(var e,t=this.graphManager.getAllNodes(),n=0;n<t.length;n++)(e=t[n]).noOfChildren=e.getNoOfChildren()},l.prototype.calcGrid=function(e){var t,n;t=parseInt(Math.ceil((e.getRight()-e.getLeft())/this.repulsionRange)),n=parseInt(Math.ceil((e.getBottom()-e.getTop())/this.repulsionRange));for(var r=new Array(t),i=0;i<t;i++)r[i]=new Array(n);for(i=0;i<t;i++)for(var a=0;a<n;a++)r[i][a]=new Array;return r},l.prototype.addNodeToGrid=function(e,t,n){var r,i,a,o;r=parseInt(Math.floor((e.getRect().x-t)/this.repulsionRange)),i=parseInt(Math.floor((e.getRect().width+e.getRect().x-t)/this.repulsionRange)),a=parseInt(Math.floor((e.getRect().y-n)/this.repulsionRange)),o=parseInt(Math.floor((e.getRect().height+e.getRect().y-n)/this.repulsionRange));for(var s=r;s<=i;s++)for(var l=a;l<=o;l++)this.grid[s][l].push(e),e.setGridCoordinates(r,i,a,o)},l.prototype.updateGrid=function(){var e,t,n=this.getAllNodes();for(this.grid=this.calcGrid(this.graphManager.getRoot()),e=0;e<n.length;e++)t=n[e],this.addNodeToGrid(t,this.graphManager.getRoot().getLeft(),this.graphManager.getRoot().getTop())},l.prototype.calculateRepulsionForceOfANode=function(e,t,n,r){if(this.totalIterations%i.GRID_CALCULATION_CHECK_PERIOD==1&&n||r){var a,o=new Set;e.surrounding=new Array;for(var s=this.grid,l=e.startX-1;l<e.finishX+2;l++)for(var u=e.startY-1;u<e.finishY+2;u++)if(!(l<0||u<0||l>=s.length||u>=s[0].length))for(var c=0;c<s[l][u].length;c++)if(a=s[l][u][c],e.getOwner()==a.getOwner()&&e!=a&&!t.has(a)&&!o.has(a)){var h=Math.abs(e.getCenterX()-a.getCenterX())-(e.getWidth()/2+a.getWidth()/2),d=Math.abs(e.getCenterY()-a.getCenterY())-(e.getHeight()/2+a.getHeight()/2);h<=this.repulsionRange&&d<=this.repulsionRange&&o.add(a)}e.surrounding=[].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(o))}for(l=0;l<e.surrounding.length;l++)this.calcRepulsionForce(e,e.surrounding[l])},l.prototype.calcRepulsionRange=function(){return 0},e.exports=l},function(e,t,n){"use strict";var r=n(1),i=n(7);function a(e,t,n){r.call(this,e,t,n),this.idealLength=i.DEFAULT_EDGE_LENGTH}for(var o in a.prototype=Object.create(r.prototype),r)a[o]=r[o];e.exports=a},function(e,t,n){"use strict";var r=n(3);function i(e,t,n,i){r.call(this,e,t,n,i),this.springForceX=0,this.springForceY=0,this.repulsionForceX=0,this.repulsionForceY=0,this.gravitationForceX=0,this.gravitationForceY=0,this.displacementX=0,this.displacementY=0,this.startX=0,this.finishX=0,this.startY=0,this.finishY=0,this.surrounding=[]}for(var a in i.prototype=Object.create(r.prototype),r)i[a]=r[a];i.prototype.setGridCoordinates=function(e,t,n,r){this.startX=e,this.finishX=t,this.startY=n,this.finishY=r},e.exports=i},function(e,t,n){"use strict";function r(e,t){this.width=0,this.height=0,null!==e&&null!==t&&(this.height=t,this.width=e)}r.prototype.getWidth=function(){return this.width},r.prototype.setWidth=function(e){this.width=e},r.prototype.getHeight=function(){return this.height},r.prototype.setHeight=function(e){this.height=e},e.exports=r},function(e,t,n){"use strict";var r=n(14);function i(){this.map={},this.keys=[]}i.prototype.put=function(e,t){var n=r.createID(e);this.contains(n)||(this.map[n]=t,this.keys.push(e))},i.prototype.contains=function(e){return r.createID(e),null!=this.map[e]},i.prototype.get=function(e){var t=r.createID(e);return this.map[t]},i.prototype.keySet=function(){return this.keys},e.exports=i},function(e,t,n){"use strict";var r=n(14);function i(){this.set={}}i.prototype.add=function(e){var t=r.createID(e);this.contains(t)||(this.set[t]=e)},i.prototype.remove=function(e){delete this.set[r.createID(e)]},i.prototype.clear=function(){this.set={}},i.prototype.contains=function(e){return this.set[r.createID(e)]==e},i.prototype.isEmpty=function(){return 0===this.size()},i.prototype.size=function(){return Object.keys(this.set).length},i.prototype.addAllTo=function(e){for(var t=Object.keys(this.set),n=t.length,r=0;r<n;r++)e.push(this.set[t[r]])},i.prototype.size=function(){return Object.keys(this.set).length},i.prototype.addAll=function(e){for(var t=e.length,n=0;n<t;n++){var r=e[n];this.add(r)}},e.exports=i},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(11),a=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),null===n&&void 0===n||(this.compareFunction=this._defaultCompareFunction);var r=void 0;r=t instanceof i?t.size():t.length,this._quicksort(t,0,r-1)}return r(e,[{key:"_quicksort",value:function(e,t,n){if(t<n){var r=this._partition(e,t,n);this._quicksort(e,t,r),this._quicksort(e,r+1,n)}}},{key:"_partition",value:function(e,t,n){for(var r=this._get(e,t),i=t,a=n;;){for(;this.compareFunction(r,this._get(e,a));)a--;for(;this.compareFunction(this._get(e,i),r);)i++;if(!(i<a))return a;this._swap(e,i,a),i++,a--}}},{key:"_get",value:function(e,t){return e instanceof i?e.get_object_at(t):e[t]}},{key:"_set",value:function(e,t,n){e instanceof i?e.set_object_at(t,n):e[t]=n}},{key:"_swap",value:function(e,t,n){var r=this._get(e,t);this._set(e,t,this._get(e,n)),this._set(e,n,r)}},{key:"_defaultCompareFunction",value:function(e,t){return t>e}}]),e}();e.exports=a},function(e,t,n){"use strict";var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var a=function(){function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;i(this,e),this.sequence1=t,this.sequence2=n,this.match_score=r,this.mismatch_penalty=a,this.gap_penalty=o,this.iMax=t.length+1,this.jMax=n.length+1,this.grid=new Array(this.iMax);for(var s=0;s<this.iMax;s++){this.grid[s]=new Array(this.jMax);for(var l=0;l<this.jMax;l++)this.grid[s][l]=0}this.tracebackGrid=new Array(this.iMax);for(var u=0;u<this.iMax;u++){this.tracebackGrid[u]=new Array(this.jMax);for(var c=0;c<this.jMax;c++)this.tracebackGrid[u][c]=[null,null,null]}this.alignments=[],this.score=-1,this.computeGrids()}return r(e,[{key:"getScore",value:function(){return this.score}},{key:"getAlignments",value:function(){return this.alignments}},{key:"computeGrids",value:function(){for(var e=1;e<this.jMax;e++)this.grid[0][e]=this.grid[0][e-1]+this.gap_penalty,this.tracebackGrid[0][e]=[!1,!1,!0];for(var t=1;t<this.iMax;t++)this.grid[t][0]=this.grid[t-1][0]+this.gap_penalty,this.tracebackGrid[t][0]=[!1,!0,!1];for(var n=1;n<this.iMax;n++)for(var r=1;r<this.jMax;r++){var i=[this.sequence1[n-1]===this.sequence2[r-1]?this.grid[n-1][r-1]+this.match_score:this.grid[n-1][r-1]+this.mismatch_penalty,this.grid[n-1][r]+this.gap_penalty,this.grid[n][r-1]+this.gap_penalty],a=this.arrayAllMaxIndexes(i);this.grid[n][r]=i[a[0]],this.tracebackGrid[n][r]=[a.includes(0),a.includes(1),a.includes(2)]}this.score=this.grid[this.iMax-1][this.jMax-1]}},{key:"alignmentTraceback",value:function(){var e=[];for(e.push({pos:[this.sequence1.length,this.sequence2.length],seq1:"",seq2:""});e[0];){var t=e[0],n=this.tracebackGrid[t.pos[0]][t.pos[1]];n[0]&&e.push({pos:[t.pos[0]-1,t.pos[1]-1],seq1:this.sequence1[t.pos[0]-1]+t.seq1,seq2:this.sequence2[t.pos[1]-1]+t.seq2}),n[1]&&e.push({pos:[t.pos[0]-1,t.pos[1]],seq1:this.sequence1[t.pos[0]-1]+t.seq1,seq2:"-"+t.seq2}),n[2]&&e.push({pos:[t.pos[0],t.pos[1]-1],seq1:"-"+t.seq1,seq2:this.sequence2[t.pos[1]-1]+t.seq2}),0===t.pos[0]&&0===t.pos[1]&&this.alignments.push({sequence1:t.seq1,sequence2:t.seq2}),e.shift()}return this.alignments}},{key:"getAllIndexes",value:function(e,t){for(var n=[],r=-1;-1!==(r=e.indexOf(t,r+1));)n.push(r);return n}},{key:"arrayAllMaxIndexes",value:function(e){return this.getAllIndexes(e,Math.max.apply(null,e))}}]),e}();e.exports=a},function(e,t,n){"use strict";var r=function(){};r.FDLayout=n(18),r.FDLayoutConstants=n(7),r.FDLayoutEdge=n(19),r.FDLayoutNode=n(20),r.DimensionD=n(21),r.HashMap=n(22),r.HashSet=n(23),r.IGeometry=n(8),r.IMath=n(9),r.Integer=n(10),r.Point=n(12),r.PointD=n(4),r.RandomSeed=n(16),r.RectangleD=n(13),r.Transform=n(17),r.UniqueIDGeneretor=n(14),r.Quicksort=n(24),r.LinkedList=n(11),r.LGraphObject=n(2),r.LGraph=n(5),r.LEdge=n(1),r.LGraphManager=n(6),r.LNode=n(3),r.Layout=n(15),r.LayoutConstants=n(0),r.NeedlemanWunsch=n(25),e.exports=r},function(e,t,n){"use strict";function r(){this.listeners=[]}var i=r.prototype;i.addListener=function(e,t){this.listeners.push({event:e,callback:t})},i.removeListener=function(e,t){for(var n=this.listeners.length;n>=0;n--){var r=this.listeners[n];r.event===e&&r.callback===t&&this.listeners.splice(n,1)}},i.emit=function(e,t){for(var n=0;n<this.listeners.length;n++){var r=this.listeners[n];e===r.event&&r.callback(t)}},e.exports=r}])},e.exports=t()},47724:(e,t,n)=>{"use strict";n.r(t),n.d(t,{diagram:()=>S});var r=n(16432),i=n(59373),a=n(71377),o=n.n(a),s=n(14607),l=n.n(s),u=n(91619),c=n(12281),h=n(7201),d=(n(27484),n(17967),n(27856),n(70277),n(45625),n(39354),n(91518),n(59542),n(10285),n(28734),function(){var e=function(e,t,n,r){for(n=n||{},r=e.length;r--;n[e[r]]=t);return n},t=[1,4],n=[1,13],r=[1,12],i=[1,15],a=[1,16],o=[1,20],s=[1,19],l=[6,7,8],u=[1,26],c=[1,24],h=[1,25],d=[6,7,11],p=[1,6,13,15,16,19,22],g=[1,33],f=[1,34],v=[1,6,7,11,13,15,16,19,22],y={trace:function(){},yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 6:case 7:return r;case 8:r.getLogger().trace("Stop NL ");break;case 9:r.getLogger().trace("Stop EOF ");break;case 11:r.getLogger().trace("Stop NL2 ");break;case 12:r.getLogger().trace("Stop EOF2 ");break;case 15:r.getLogger().info("Node: ",a[s].id),r.addNode(a[s-1].length,a[s].id,a[s].descr,a[s].type);break;case 16:r.getLogger().trace("Icon: ",a[s]),r.decorateNode({icon:a[s]});break;case 17:case 21:r.decorateNode({class:a[s]});break;case 18:r.getLogger().trace("SPACELIST");break;case 19:r.getLogger().trace("Node: ",a[s].id),r.addNode(0,a[s].id,a[s].descr,a[s].type);break;case 20:r.decorateNode({icon:a[s]});break;case 25:r.getLogger().trace("node found ..",a[s-2]),this.$={id:a[s-1],descr:a[s-1],type:r.getType(a[s-2],a[s])};break;case 26:this.$={id:a[s],descr:a[s],type:r.nodeType.DEFAULT};break;case 27:r.getLogger().trace("node found ..",a[s-3]),this.$={id:a[s-3],descr:a[s-1],type:r.getType(a[s-2],a[s])}}},table:[{3:1,4:2,5:3,6:[1,5],8:t},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:t},{6:n,7:[1,10],9:9,12:11,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},e(l,[2,3]),{1:[2,2]},e(l,[2,4]),e(l,[2,5]),{1:[2,6],6:n,12:21,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},{6:n,9:22,12:11,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},{6:u,7:c,10:23,11:h},e(d,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:o,22:s}),e(d,[2,18]),e(d,[2,19]),e(d,[2,20]),e(d,[2,21]),e(d,[2,23]),e(d,[2,24]),e(d,[2,26],{19:[1,30]}),{20:[1,31]},{6:u,7:c,10:32,11:h},{1:[2,7],6:n,12:21,13:r,14:14,15:i,16:a,17:17,18:18,19:o,22:s},e(p,[2,14],{7:g,11:f}),e(v,[2,8]),e(v,[2,9]),e(v,[2,10]),e(d,[2,15]),e(d,[2,16]),e(d,[2,17]),{20:[1,35]},{21:[1,36]},e(p,[2,13],{7:g,11:f}),e(v,[2,11]),e(v,[2,12]),{21:[1,37]},e(d,[2,25]),e(d,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:function(e,t){if(!t.recoverable){var n=new Error(e);throw n.hash=t,n}this.trace(e)},parse:function(e){var t=this,n=[0],r=[],i=[null],a=[],o=this.table,s="",l=0,u=0,c=2,h=1,d=a.slice.call(arguments,1),p=Object.create(this.lexer),g={yy:{}};for(var f in this.yy)Object.prototype.hasOwnProperty.call(this.yy,f)&&(g.yy[f]=this.yy[f]);p.setInput(e,g.yy),g.yy.lexer=p,g.yy.parser=this,void 0===p.yylloc&&(p.yylloc={});var v=p.yylloc;a.push(v);var y=p.options&&p.options.ranges;function m(){var e;return"number"!=typeof(e=r.pop()||p.lex()||h)&&(e instanceof Array&&(e=(r=e).pop()),e=t.symbols_[e]||e),e}"function"==typeof g.yy.parseError?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var b,x,w,E,T,_,D,C,N={};;){if(x=n[n.length-1],this.defaultActions[x]?w=this.defaultActions[x]:(null==b&&(b=m()),w=o[x]&&o[x][b]),void 0===w||!w.length||!w[0]){var A="";for(T in C=[],o[x])this.terminals_[T]&&T>c&&C.push("'"+this.terminals_[T]+"'");A=p.showPosition?"Parse error on line "+(l+1)+":\n"+p.showPosition()+"\nExpecting "+C.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(l+1)+": Unexpected "+(b==h?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(A,{text:p.match,token:this.terminals_[b]||b,line:p.yylineno,loc:v,expected:C})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+x+", token: "+b);switch(w[0]){case 1:n.push(b),i.push(p.yytext),a.push(p.yylloc),n.push(w[1]),b=null,u=p.yyleng,s=p.yytext,l=p.yylineno,v=p.yylloc;break;case 2:if(_=this.productions_[w[1]][1],N.$=i[i.length-_],N._$={first_line:a[a.length-(_||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(_||1)].first_column,last_column:a[a.length-1].last_column},y&&(N._$.range=[a[a.length-(_||1)].range[0],a[a.length-1].range[1]]),void 0!==(E=this.performAction.apply(N,[s,u,l,g.yy,w[1],i,a].concat(d))))return E;_&&(n=n.slice(0,-1*_*2),i=i.slice(0,-1*_),a=a.slice(0,-1*_)),n.push(this.productions_[w[1]][0]),i.push(N.$),a.push(N._$),D=o[n[n.length-2]][n[n.length-1]],n.push(D);break;case 3:return!0}}return!0}},m={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},test_match:function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),(r=e[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;var e,t,n,r;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var i=this._currentRules(),a=0;a<i.length;a++)if((n=this._input.match(this.rules[i[a]]))&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(!1!==(e=this.test_match(n,i[a])))return e;if(this._backtrack){t=!1;continue}return!1}if(!this.options.flex)break}return t?!1!==(e=this.test_match(t,i[r]))&&e:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return e||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return(e=this.conditionStack.length-1-Math.abs(e||0))>=0?this.conditionStack[e]:"INITIAL"},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(e,t,n,r){switch(n){case 0:e.getLogger().trace("Found comment",t.yytext);break;case 1:return 8;case 2:this.begin("CLASS");break;case 3:return this.popState(),16;case 4:case 23:this.popState();break;case 5:e.getLogger().trace("Begin icon"),this.begin("ICON");break;case 6:return e.getLogger().trace("SPACELINE"),6;case 7:return 7;case 8:return 15;case 9:e.getLogger().trace("end icon"),this.popState();break;case 10:return e.getLogger().trace("Exploding node"),this.begin("NODE"),19;case 11:return e.getLogger().trace("Cloud"),this.begin("NODE"),19;case 12:return e.getLogger().trace("Explosion Bang"),this.begin("NODE"),19;case 13:return e.getLogger().trace("Cloud Bang"),this.begin("NODE"),19;case 14:case 15:case 16:case 17:return this.begin("NODE"),19;case 18:return 13;case 19:return 22;case 20:return 11;case 21:e.getLogger().trace("Starting NSTR"),this.begin("NSTR");break;case 22:return e.getLogger().trace("description:",t.yytext),"NODE_DESCR";case 24:return this.popState(),e.getLogger().trace("node end ))"),"NODE_DEND";case 25:return this.popState(),e.getLogger().trace("node end )"),"NODE_DEND";case 26:return this.popState(),e.getLogger().trace("node end ...",t.yytext),"NODE_DEND";case 27:case 30:case 31:return this.popState(),e.getLogger().trace("node end (("),"NODE_DEND";case 28:case 29:return this.popState(),e.getLogger().trace("node end (-"),"NODE_DEND";case 32:case 33:return e.getLogger().trace("Long description:",t.yytext),20}},rules:[/^(?:\s*%%.*)/i,/^(?:mindmap\b)/i,/^(?::::)/i,/^(?:.+)/i,/^(?:\n)/i,/^(?:::icon\()/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[^\)]+)/i,/^(?:\))/i,/^(?:-\))/i,/^(?:\(-)/i,/^(?:\)\))/i,/^(?:\))/i,/^(?:\(\()/i,/^(?:\{\{)/i,/^(?:\()/i,/^(?:\[)/i,/^(?:[\s]+)/i,/^(?:[^\(\[\n\-\)\{\}]+)/i,/^(?:$)/i,/^(?:["])/i,/^(?:[^"]+)/i,/^(?:["])/i,/^(?:[\)]\))/i,/^(?:[\)])/i,/^(?:[\]])/i,/^(?:\}\})/i,/^(?:\(-)/i,/^(?:-\))/i,/^(?:\(\()/i,/^(?:\()/i,/^(?:[^\)\]\(\}]+)/i,/^(?:.+(?!\(\())/i],conditions:{CLASS:{rules:[3,4],inclusive:!1},ICON:{rules:[8,9],inclusive:!1},NSTR:{rules:[22,23],inclusive:!1},NODE:{rules:[21,24,25,26,27,28,29,30,31,32,33],inclusive:!1},INITIAL:{rules:[0,1,2,5,6,7,10,11,12,13,14,15,16,17,18,19,20],inclusive:!0}}};function b(){this.yy={}}return y.lexer=m,b.prototype=y,y.Parser=b,new b}());d.parser=d;const p=d,g=e=>(0,r.n)(e,(0,r.g)());let f=[],v=0,y={};const m={DEFAULT:0,NO_BORDER:0,ROUNDED_RECT:1,RECT:2,CIRCLE:3,CLOUD:4,BANG:5,HEXAGON:6},b=(e,t)=>{y[e]=t},x=e=>{switch(e){case m.DEFAULT:return"no-border";case m.RECT:return"rect";case m.ROUNDED_RECT:return"rounded-rect";case m.CIRCLE:return"circle";case m.CLOUD:return"cloud";case m.BANG:return"bang";case m.HEXAGON:return"hexgon";default:return"no-border"}};let w;const E=e=>y[e],T=Object.freeze(Object.defineProperty({__proto__:null,addNode:(e,t,n,i)=>{r.l.info("addNode",e,t,n,i);const a=(0,r.g)(),o={id:v++,nodeId:g(t),level:e,descr:g(n),type:i,children:[],width:(0,r.g)().mindmap.maxNodeWidth};switch(o.type){case m.ROUNDED_RECT:case m.RECT:case m.HEXAGON:o.padding=2*a.mindmap.padding;break;default:o.padding=a.mindmap.padding}const s=function(e){for(let t=f.length-1;t>=0;t--)if(f[t].level<e)return f[t];return null}(e);if(s)s.children.push(o),f.push(o);else{if(0!==f.length){let e=new Error('There can be only one root. No parent could be found for ("'+o.descr+'")');throw e.hash={text:"branch "+name,token:"branch "+name,line:"1",loc:{first_line:1,last_line:1,first_column:1,last_column:1},expected:['"checkout '+name+'"']},e}f.push(o)}},clear:()=>{f=[],v=0,y={}},decorateNode:e=>{const t=f[f.length-1];e&&e.icon&&(t.icon=g(e.icon)),e&&e.class&&(t.class=g(e.class))},getElementById:E,getLogger:()=>r.l,getMindmap:()=>f.length>0?f[0]:null,getNodeById:e=>f[e],getType:(e,t)=>{switch(r.l.debug("In get type",e,t),e){case"[":return m.RECT;case"(":return")"===t?m.ROUNDED_RECT:m.CLOUD;case"((":return m.CIRCLE;case")":return m.CLOUD;case"))":return m.BANG;case"{{":return m.HEXAGON;default:return m.DEFAULT}},nodeType:m,get parseError(){return w},sanitizeText:g,setElementForId:b,setErrorHandler:e=>{w=e},type2Str:x},Symbol.toStringTag,{value:"Module"}));function _(e,t){e.each((function(){var e,n=(0,i.Ys)(this),r=n.text().split(/(\s+|<br>)/).reverse(),a=[],o=n.attr("y"),s=parseFloat(n.attr("dy")),l=n.text(null).append("tspan").attr("x",0).attr("y",o).attr("dy",s+"em");for(let i=0;i<r.length;i++)e=r[r.length-1-i],a.push(e),l.text(a.join(" ").trim()),(l.node().getComputedTextLength()>t||"<br>"===e)&&(a.pop(),l.text(a.join(" ").trim()),a="<br>"===e?[""]:[e],l=n.append("tspan").attr("x",0).attr("y",o).attr("dy","1.1em").text(e))}))}const D=function(e,t,n,r){const i=n%11,a=e.append("g");t.section=i;let o="section-"+i;i<0&&(o+=" section-root"),a.attr("class",(t.class?t.class+" ":"")+"mindmap-node "+o);const s=a.append("g"),l=a.append("g"),u=l.append("text").text(t.descr).attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle").call(_,t.width).node().getBBox(),c=r.fontSize.replace?r.fontSize.replace("px",""):r.fontSize;if(t.height=u.height+1.1*c*.5+t.padding,t.width=u.width+2*t.padding,t.icon)if(t.type===m.CIRCLE){t.height+=50,t.width+=50;a.append("foreignObject").attr("height","50px").attr("width",t.width).attr("style","text-align: center;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+i+" "+t.icon),l.attr("transform","translate("+t.width/2+", "+(t.height/2-1.5*t.padding)+")")}else{t.width+=50;const e=t.height;t.height=Math.max(e,60);const n=Math.abs(t.height-e);a.append("foreignObject").attr("width","60px").attr("height",t.height).attr("style","text-align: center;margin-top:"+n/2+"px;").append("div").attr("class","icon-container").append("i").attr("class","node-icon-"+i+" "+t.icon),l.attr("transform","translate("+(25+t.width/2)+", "+(n/2+t.padding/2)+")")}else l.attr("transform","translate("+t.width/2+", "+t.padding/2+")");switch(t.type){case m.DEFAULT:!function(e,t,n){e.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("d",`M0 ${t.height-5} v${10-t.height} q0,-5 5,-5 h${t.width-10} q5,0 5,5 v${t.height-5} H0 Z`),e.append("line").attr("class","node-line-"+n).attr("x1",0).attr("y1",t.height).attr("x2",t.width).attr("y2",t.height)}(s,t,i);break;case m.ROUNDED_RECT:!function(e,t){e.append("rect").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("height",t.height).attr("rx",t.padding).attr("ry",t.padding).attr("width",t.width)}(s,t);break;case m.RECT:!function(e,t){e.append("rect").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("height",t.height).attr("width",t.width)}(s,t);break;case m.CIRCLE:s.attr("transform","translate("+t.width/2+", "+ +t.height/2+")"),function(e,t){e.append("circle").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("r",t.width/2)}(s,t);break;case m.CLOUD:!function(e,t){const n=t.width,r=t.height,i=.15*n,a=.25*n,o=.35*n,s=.2*n;e.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("d",`M0 0 a${i},${i} 0 0,1 ${.25*n},${-1*n*.1}\n a${o},${o} 1 0,1 ${.4*n},${-1*n*.1}\n a${a},${a} 1 0,1 ${.35*n},${1*n*.2}\n\n a${i},${i} 1 0,1 ${.15*n},${1*r*.35}\n a${s},${s} 1 0,1 ${-1*n*.15},${1*r*.65}\n\n a${a},${i} 1 0,1 ${-1*n*.25},${.15*n}\n a${o},${o} 1 0,1 ${-1*n*.5},0\n a${i},${i} 1 0,1 ${-1*n*.25},${-1*n*.15}\n\n a${i},${i} 1 0,1 ${-1*n*.1},${-1*r*.35}\n a${s},${s} 1 0,1 ${.1*n},${-1*r*.65}\n\n H0 V0 Z`)}(s,t);break;case m.BANG:!function(e,t){const n=t.width,r=t.height,i=.15*n;e.append("path").attr("id","node-"+t.id).attr("class","node-bkg node-"+x(t.type)).attr("d",`M0 0 a${i},${i} 1 0,0 ${.25*n},${-1*r*.1}\n a${i},${i} 1 0,0 ${.25*n},0\n a${i},${i} 1 0,0 ${.25*n},0\n a${i},${i} 1 0,0 ${.25*n},${1*r*.1}\n\n a${i},${i} 1 0,0 ${.15*n},${1*r*.33}\n a${.8*i},${.8*i} 1 0,0 0,${1*r*.34}\n a${i},${i} 1 0,0 ${-1*n*.15},${1*r*.33}\n\n a${i},${i} 1 0,0 ${-1*n*.25},${.15*r}\n a${i},${i} 1 0,0 ${-1*n*.25},0\n a${i},${i} 1 0,0 ${-1*n*.25},0\n a${i},${i} 1 0,0 ${-1*n*.25},${-1*r*.15}\n\n a${i},${i} 1 0,0 ${-1*n*.1},${-1*r*.33}\n a${.8*i},${.8*i} 1 0,0 0,${-1*r*.34}\n a${i},${i} 1 0,0 ${.1*n},${-1*r*.33}\n\n H0 V0 Z`)}(s,t);break;case m.HEXAGON:!function(e,t){const n=t.height,r=n/4,i=t.width-t.padding+2*r;!function(e,t,n,r,i){e.insert("polygon",":first-child").attr("points",r.map((function(e){return e.x+","+e.y})).join(" ")).attr("transform","translate("+(i.width-t)/2+", "+n+")")}(e,i,n,[{x:r,y:0},{x:i-r,y:0},{x:i,y:-n/2},{x:i-r,y:-n},{x:r,y:-n},{x:0,y:-n/2}],t)}(s,t)}return b(t.id,a),t.height},C=function(e){const t=E(e.id),n=e.x||0,r=e.y||0;t.attr("transform","translate("+n+","+r+")")};function N(e,t,n,r){D(e,t,n,r),t.children&&t.children.forEach(((t,i)=>{N(e,t,n<0?i:n,r)}))}function A(e,t,n,r){t.add({group:"nodes",data:{id:e.id,labelText:e.descr,height:e.height,width:e.width,level:r,nodeId:e.id,padding:e.padding,type:e.type},position:{x:e.x,y:e.y}}),e.children&&e.children.forEach((i=>{A(i,t,n,r+1),t.add({group:"edges",data:{id:`${e.id}_${i.id}`,source:e.id,target:i.id,depth:r,section:i.section}})}))}function L(e,t){return new Promise((n=>{const a=(0,i.Ys)("body").append("div").attr("id","cy").attr("style","display:none"),s=o()({container:document.getElementById("cy"),style:[{selector:"edge",style:{"curve-style":"bezier"}}]});a.remove(),A(e,s,t,0),s.nodes().forEach((function(e){e.layoutDimensions=()=>{const t=e.data();return{w:t.width,h:t.height}}})),s.layout({name:"cose-bilkent",quality:"proof",styleEnabled:!1,animate:!1}).run(),s.ready((e=>{r.l.info("Ready",e),n(s)}))}))}o().use(l());const S={db:T,renderer:{draw:async(e,t,n,a)=>{const o=(0,r.g)();a.db.clear(),a.parser.parse(e),r.l.debug("Renering info diagram\n"+e);const s=(0,r.g)().securityLevel;let l;"sandbox"===s&&(l=(0,i.Ys)("#i"+t));const u=("sandbox"===s?(0,i.Ys)(l.nodes()[0].contentDocument.body):(0,i.Ys)("body")).select("#"+t);u.append("g");const c=a.db.getMindmap(),h=u.append("g");h.attr("class","mindmap-edges");const d=u.append("g");d.attr("class","mindmap-nodes"),N(d,c,-1,o);const p=await L(c,o);!function(e,t){t.edges().map(((t,n)=>{const i=t.data();if(t[0]._private.bodyBounds){const a=t[0]._private.rscratch;r.l.trace("Edge: ",n,i),e.insert("path").attr("d",`M ${a.startX},${a.startY} L ${a.midX},${a.midY} L${a.endX},${a.endY} `).attr("class","edge section-edge-"+i.section+" edge-depth-"+i.depth)}}))}(h,p),function(e){e.nodes().map(((e,t)=>{const n=e.data();n.x=e.position().x,n.y=e.position().y,C(n);const i=E(n.nodeId);r.l.info("Id:",t,"Position: (",e.position().x,", ",e.position().y,")",n),i.attr("transform",`translate(${e.position().x-n.width/2}, ${e.position().y-n.height/2})`),i.attr("attr",`apa-${t})`)}))}(p),(0,r.s)(void 0,u,o.mindmap.padding,o.mindmap.useMaxWidth)}},parser:p,styles:e=>`\n .edge {\n stroke-width: 3;\n }\n ${(e=>{let t="";for(let n=0;n<e.THEME_COLOR_LIMIT;n++)e["lineColor"+n]=e["lineColor"+n]||e["cScaleInv"+n],(0,u.Z)(e["lineColor"+n])?e["lineColor"+n]=(0,c.Z)(e["lineColor"+n],20):e["lineColor"+n]=(0,h.Z)(e["lineColor"+n],20);for(let n=0;n<e.THEME_COLOR_LIMIT;n++){const r=""+(17-3*n);t+=`\n .section-${n-1} rect, .section-${n-1} path, .section-${n-1} circle, .section-${n-1} polygon, .section-${n-1} path {\n fill: ${e["cScale"+n]};\n }\n .section-${n-1} text {\n fill: ${e["cScaleLabel"+n]};\n }\n .node-icon-${n-1} {\n font-size: 40px;\n color: ${e["cScaleLabel"+n]};\n }\n .section-edge-${n-1}{\n stroke: ${e["cScale"+n]};\n }\n .edge-depth-${n-1}{\n stroke-width: ${r};\n }\n .section-${n-1} line {\n stroke: ${e["cScaleInv"+n]} ;\n stroke-width: 3;\n }\n\n .disabled, .disabled circle, .disabled text {\n fill: lightgray;\n }\n .disabled text {\n fill: #efefef;\n }\n `}return t})(e)}\n .section-root rect, .section-root path, .section-root circle, .section-root polygon {\n fill: ${e.git0};\n }\n .section-root text {\n fill: ${e.gitBranchLabel0};\n }\n .icon-container {\n height:100%;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .edge {\n fill: none;\n }\n`}},91619:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(61691),i=n(71610);const a=e=>{const{r:t,g:n,b:a}=i.Z.parse(e),o=.2126*r.Z.channel.toLinear(t)+.7152*r.Z.channel.toLinear(n)+.0722*r.Z.channel.toLinear(a);return r.Z.lang.round(o)},o=e=>a(e)>=.5,s=e=>!o(e)}}]); \ No newline at end of file diff --git a/assets/js/7724.ccc7d3de.js.LICENSE.txt b/assets/js/7724.ccc7d3de.js.LICENSE.txt new file mode 100644 index 00000000000..a58daed496d --- /dev/null +++ b/assets/js/7724.ccc7d3de.js.LICENSE.txt @@ -0,0 +1,9 @@ +/*! + Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable + Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com) + Licensed under The MIT License (http://opensource.org/licenses/MIT) + */ + +/*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */ + +/*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */ diff --git a/assets/js/7758.dda2fbc1.js b/assets/js/7758.dda2fbc1.js new file mode 100644 index 00000000000..5e0df3dc04f --- /dev/null +++ b/assets/js/7758.dda2fbc1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7758],{57758:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>m});var n=o(87462),r=(o(67294),o(3905));o(45475);const s={title:"flow-remove-types",slug:"/tools/flow-remove-types"},l=void 0,a={unversionedId:"tools/flow-remove-types",id:"tools/flow-remove-types",title:"flow-remove-types",description:"flow-remove-types is a small",source:"@site/docs/tools/flow-remove-types.md",sourceDirName:"tools",slug:"/tools/flow-remove-types",permalink:"/en/docs/tools/flow-remove-types",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/tools/flow-remove-types.md",tags:[],version:"current",frontMatter:{title:"flow-remove-types",slug:"/tools/flow-remove-types"},sidebar:"docsSidebar",previous:{title:"ESLint",permalink:"/en/docs/tools/eslint"},next:{title:"Editors",permalink:"/en/docs/editors"}},p={},m=[],i={toc:m};function d(e){let{components:t,...o}=e;return(0,r.mdx)("wrapper",(0,n.Z)({},i,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,(0,r.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/tree/master/packages/flow-remove-types"},(0,r.mdx)("inlineCode",{parentName:"a"},"flow-remove-types"))," is a small\nCLI tool for stripping Flow type annotations from files. It's a lighter-weight\nalternative to Babel for projects that don't need everything Babel provides."),(0,r.mdx)("p",null,"First install ",(0,r.mdx)("inlineCode",{parentName:"p"},"flow-remove-types")," with either\n",(0,r.mdx)("a",{parentName:"p",href:"https://yarnpkg.com/"},"Yarn")," or ",(0,r.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npm"),"."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"yarn add --dev flow-remove-types\n# or\nnpm install --save-dev flow-remove-types\n")),(0,r.mdx)("p",null,"If you then put all your source files in a ",(0,r.mdx)("inlineCode",{parentName:"p"},"src")," directory you can compile them\nto another directory by running:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"yarn run flow-remove-types src/ -d lib/\n")),(0,r.mdx)("p",null,"You can add this to your ",(0,r.mdx)("inlineCode",{parentName:"p"},"package.json")," scripts easily."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-json"},'{\n "name": "my-project",\n "main": "lib/index.js",\n "scripts": {\n "build": "flow-remove-types src/ -d lib/",\n "prepublish": "yarn run build"\n }\n}\n')),(0,r.mdx)("blockquote",null,(0,r.mdx)("p",{parentName:"blockquote"},(0,r.mdx)("strong",{parentName:"p"},"Note:")," You'll probably want to add a ",(0,r.mdx)("inlineCode",{parentName:"p"},"prepublish")," script that runs this\ntransform as well, so that it runs before you publish your code to the npm\nregistry.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/776.52166cee.js b/assets/js/776.52166cee.js new file mode 100644 index 00000000000..6773fe8b5cc --- /dev/null +++ b/assets/js/776.52166cee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[776],{10776:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>p});var i=o(87462),n=(o(67294),o(3905));const r={title:"Flow's Improved Handling of Generic Types","short-title":"Generic Types Improvements",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/flows-improved-handling-of-generic-types-b5909cc5e3c5"},s=void 0,l={permalink:"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types",source:"@site/blog/2020-11-16-Flows-Improved-Handling-of-Generic-Types.md",title:"Flow's Improved Handling of Generic Types",description:"Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages.",date:"2020-11-16T00:00:00.000Z",formattedDate:"November 16, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Michael Vitousek"}],frontMatter:{title:"Flow's Improved Handling of Generic Types","short-title":"Generic Types Improvements",author:"Michael Vitousek","medium-link":"https://medium.com/flow-type/flows-improved-handling-of-generic-types-b5909cc5e3c5"},prevItem:{title:"Types-First the only supported mode in Flow (Jan 2021)",permalink:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow"},nextItem:{title:"Types-First: A Scalable New Architecture for Flow",permalink:"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow"}},a={authorsImageUrls:[void 0]},p=[],m={toc:p};function c(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,i.Z)({},m,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7778.70985237.js b/assets/js/7778.70985237.js new file mode 100644 index 00000000000..0eae1466524 --- /dev/null +++ b/assets/js/7778.70985237.js @@ -0,0 +1,2 @@ +/*! For license information please see 7778.70985237.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7778],{27778:(E,T,R)=>{R.r(T),R.d(T,{conf:()=>A,language:()=>I});var A={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},I={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ABORT","ABSOLUTE","ACTION","ADA","ADD","AFTER","ALL","ALLOCATE","ALTER","ALWAYS","ANALYZE","AND","ANY","ARE","AS","ASC","ASSERTION","AT","ATTACH","AUTHORIZATION","AUTOINCREMENT","AVG","BACKUP","BEFORE","BEGIN","BETWEEN","BIT","BIT_LENGTH","BOTH","BREAK","BROWSE","BULK","BY","CASCADE","CASCADED","CASE","CAST","CATALOG","CHAR","CHARACTER","CHARACTER_LENGTH","CHAR_LENGTH","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLLATION","COLUMN","COMMIT","COMPUTE","CONFLICT","CONNECT","CONNECTION","CONSTRAINT","CONSTRAINTS","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CORRESPONDING","COUNT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATE","DAY","DBCC","DEALLOCATE","DEC","DECIMAL","DECLARE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DETACH","DIAGNOSTICS","DISCONNECT","DISK","DISTINCT","DISTRIBUTED","DO","DOMAIN","DOUBLE","DROP","DUMP","EACH","ELSE","END","END-EXEC","ERRLVL","ESCAPE","EXCEPT","EXCEPTION","EXCLUDE","EXCLUSIVE","EXEC","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTERNAL","EXTRACT","FAIL","FALSE","FETCH","FILE","FILLFACTOR","FILTER","FIRST","FLOAT","FOLLOWING","FOR","FOREIGN","FORTRAN","FOUND","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GENERATED","GET","GLOB","GLOBAL","GO","GOTO","GRANT","GROUP","GROUPS","HAVING","HOLDLOCK","HOUR","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IGNORE","IMMEDIATE","IN","INCLUDE","INDEX","INDEXED","INDICATOR","INITIALLY","INNER","INPUT","INSENSITIVE","INSERT","INSTEAD","INT","INTEGER","INTERSECT","INTERVAL","INTO","IS","ISNULL","ISOLATION","JOIN","KEY","KILL","LANGUAGE","LAST","LEADING","LEFT","LEVEL","LIKE","LIMIT","LINENO","LOAD","LOCAL","LOWER","MATCH","MATERIALIZED","MAX","MERGE","MIN","MINUTE","MODULE","MONTH","NAMES","NATIONAL","NATURAL","NCHAR","NEXT","NO","NOCHECK","NONCLUSTERED","NONE","NOT","NOTHING","NOTNULL","NULL","NULLIF","NULLS","NUMERIC","OCTET_LENGTH","OF","OFF","OFFSET","OFFSETS","ON","ONLY","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OTHERS","OUTER","OUTPUT","OVER","OVERLAPS","PAD","PARTIAL","PARTITION","PASCAL","PERCENT","PIVOT","PLAN","POSITION","PRAGMA","PRECEDING","PRECISION","PREPARE","PRESERVE","PRIMARY","PRINT","PRIOR","PRIVILEGES","PROC","PROCEDURE","PUBLIC","QUERY","RAISE","RAISERROR","RANGE","READ","READTEXT","REAL","RECONFIGURE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELATIVE","RELEASE","RENAME","REPLACE","REPLICATION","RESTORE","RESTRICT","RETURN","RETURNING","REVERT","REVOKE","RIGHT","ROLLBACK","ROW","ROWCOUNT","ROWGUIDCOL","ROWS","RULE","SAVE","SAVEPOINT","SCHEMA","SCROLL","SECOND","SECTION","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION","SESSION_USER","SET","SETUSER","SHUTDOWN","SIZE","SMALLINT","SOME","SPACE","SQL","SQLCA","SQLCODE","SQLERROR","SQLSTATE","SQLWARNING","STATISTICS","SUBSTRING","SUM","SYSTEM_USER","TABLE","TABLESAMPLE","TEMP","TEMPORARY","TEXTSIZE","THEN","TIES","TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TOP","TRAILING","TRAN","TRANSACTION","TRANSLATE","TRANSLATION","TRIGGER","TRIM","TRUE","TRUNCATE","TRY_CONVERT","TSEQUAL","UNBOUNDED","UNION","UNIQUE","UNKNOWN","UNPIVOT","UPDATE","UPDATETEXT","UPPER","USAGE","USE","USER","USING","VACUUM","VALUE","VALUES","VARCHAR","VARYING","VIEW","VIRTUAL","WAITFOR","WHEN","WHENEVER","WHERE","WHILE","WINDOW","WITH","WITHIN GROUP","WITHOUT","WORK","WRITE","WRITETEXT","YEAR","ZONE"],operators:["ALL","AND","ANY","BETWEEN","EXISTS","IN","LIKE","NOT","OR","SOME","EXCEPT","INTERSECT","UNION","APPLY","CROSS","FULL","INNER","JOIN","LEFT","OUTER","RIGHT","CONTAINS","FREETEXT","IS","NULL","PIVOT","UNPIVOT","MATCHED"],builtinFunctions:["AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","SUM","STDEV","STDEVP","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","COLLATE","COLLATIONPROPERTY","TERTIARY_WEIGHTS","FEDERATION_FILTERING_VALUE","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","CURRENT_TIMESTAMP","DATEADD","DATEDIFF","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","CHOOSE","COALESCE","IIF","NULLIF","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASE_PRINCIPAL_ID","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STUFF","SUBSTRING","UNICODE","UPPER","BINARY_CHECKSUM","CHECKSUM","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","ERROR_LINE","ERROR_NUMBER","ERROR_MESSAGE","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GETANSINULL","GET_FILESTREAM_TRANSACTION_CONTEXT","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","XACT_STATE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","CHANGETABLE","CHANGE_TRACKING_CONTEXT","CHANGE_TRACKING_CURRENT_VERSION","CHANGE_TRACKING_IS_COLUMN_IN_MASK","CHANGE_TRACKING_MIN_VALID_VERSION","CONTAINSTABLE","FREETEXTTABLE","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","FILETABLEROOTPATH","GETFILENAMESPACEPATH","GETPATHLOCATOR","PATHNAME","GET_TRANSMISSION_STATUS"],builtinVariables:["@@DATEFIRST","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","@@CURSOR_ROWS","@@FETCH_STATUS","@@DATEFIRST","@@PROCID","@@ERROR","@@IDENTITY","@@ROWCOUNT","@@TRANCOUNT","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACKET_ERRORS","@@PACK_RECEIVED","@@PACK_SENT","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE"],pseudoColumns:["$ACTION","$IDENTITY","$ROWGUID","$PARTITION"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N'/,{token:"string",next:"@string"}],[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[[/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i,"keyword"],[/BEGIN\s+TRY\b/i,{token:"keyword.try"}],[/END\s+TRY\b/i,{token:"keyword.try"}],[/BEGIN\s+CATCH\b/i,{token:"keyword.catch"}],[/END\s+CATCH\b/i,{token:"keyword.catch"}],[/(BEGIN|CASE)\b/i,{token:"keyword.block"}],[/END\b/i,{token:"keyword.block"}],[/WHEN\b/i,{token:"keyword.choice"}],[/THEN\b/i,{token:"keyword.choice"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/7778.70985237.js.LICENSE.txt b/assets/js/7778.70985237.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7778.70985237.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7778.ba66a016.js b/assets/js/7778.ba66a016.js new file mode 100644 index 00000000000..c90c7558bb3 --- /dev/null +++ b/assets/js/7778.ba66a016.js @@ -0,0 +1,837 @@ +"use strict"; +exports.id = 7778; +exports.ids = [7778]; +exports.modules = { + +/***/ 27778: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/sql/sql.ts +var conf = { + comments: { + lineComment: "--", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".sql", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "ABORT", + "ABSOLUTE", + "ACTION", + "ADA", + "ADD", + "AFTER", + "ALL", + "ALLOCATE", + "ALTER", + "ALWAYS", + "ANALYZE", + "AND", + "ANY", + "ARE", + "AS", + "ASC", + "ASSERTION", + "AT", + "ATTACH", + "AUTHORIZATION", + "AUTOINCREMENT", + "AVG", + "BACKUP", + "BEFORE", + "BEGIN", + "BETWEEN", + "BIT", + "BIT_LENGTH", + "BOTH", + "BREAK", + "BROWSE", + "BULK", + "BY", + "CASCADE", + "CASCADED", + "CASE", + "CAST", + "CATALOG", + "CHAR", + "CHARACTER", + "CHARACTER_LENGTH", + "CHAR_LENGTH", + "CHECK", + "CHECKPOINT", + "CLOSE", + "CLUSTERED", + "COALESCE", + "COLLATE", + "COLLATION", + "COLUMN", + "COMMIT", + "COMPUTE", + "CONFLICT", + "CONNECT", + "CONNECTION", + "CONSTRAINT", + "CONSTRAINTS", + "CONTAINS", + "CONTAINSTABLE", + "CONTINUE", + "CONVERT", + "CORRESPONDING", + "COUNT", + "CREATE", + "CROSS", + "CURRENT", + "CURRENT_DATE", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "CURSOR", + "DATABASE", + "DATE", + "DAY", + "DBCC", + "DEALLOCATE", + "DEC", + "DECIMAL", + "DECLARE", + "DEFAULT", + "DEFERRABLE", + "DEFERRED", + "DELETE", + "DENY", + "DESC", + "DESCRIBE", + "DESCRIPTOR", + "DETACH", + "DIAGNOSTICS", + "DISCONNECT", + "DISK", + "DISTINCT", + "DISTRIBUTED", + "DO", + "DOMAIN", + "DOUBLE", + "DROP", + "DUMP", + "EACH", + "ELSE", + "END", + "END-EXEC", + "ERRLVL", + "ESCAPE", + "EXCEPT", + "EXCEPTION", + "EXCLUDE", + "EXCLUSIVE", + "EXEC", + "EXECUTE", + "EXISTS", + "EXIT", + "EXPLAIN", + "EXTERNAL", + "EXTRACT", + "FAIL", + "FALSE", + "FETCH", + "FILE", + "FILLFACTOR", + "FILTER", + "FIRST", + "FLOAT", + "FOLLOWING", + "FOR", + "FOREIGN", + "FORTRAN", + "FOUND", + "FREETEXT", + "FREETEXTTABLE", + "FROM", + "FULL", + "FUNCTION", + "GENERATED", + "GET", + "GLOB", + "GLOBAL", + "GO", + "GOTO", + "GRANT", + "GROUP", + "GROUPS", + "HAVING", + "HOLDLOCK", + "HOUR", + "IDENTITY", + "IDENTITYCOL", + "IDENTITY_INSERT", + "IF", + "IGNORE", + "IMMEDIATE", + "IN", + "INCLUDE", + "INDEX", + "INDEXED", + "INDICATOR", + "INITIALLY", + "INNER", + "INPUT", + "INSENSITIVE", + "INSERT", + "INSTEAD", + "INT", + "INTEGER", + "INTERSECT", + "INTERVAL", + "INTO", + "IS", + "ISNULL", + "ISOLATION", + "JOIN", + "KEY", + "KILL", + "LANGUAGE", + "LAST", + "LEADING", + "LEFT", + "LEVEL", + "LIKE", + "LIMIT", + "LINENO", + "LOAD", + "LOCAL", + "LOWER", + "MATCH", + "MATERIALIZED", + "MAX", + "MERGE", + "MIN", + "MINUTE", + "MODULE", + "MONTH", + "NAMES", + "NATIONAL", + "NATURAL", + "NCHAR", + "NEXT", + "NO", + "NOCHECK", + "NONCLUSTERED", + "NONE", + "NOT", + "NOTHING", + "NOTNULL", + "NULL", + "NULLIF", + "NULLS", + "NUMERIC", + "OCTET_LENGTH", + "OF", + "OFF", + "OFFSET", + "OFFSETS", + "ON", + "ONLY", + "OPEN", + "OPENDATASOURCE", + "OPENQUERY", + "OPENROWSET", + "OPENXML", + "OPTION", + "OR", + "ORDER", + "OTHERS", + "OUTER", + "OUTPUT", + "OVER", + "OVERLAPS", + "PAD", + "PARTIAL", + "PARTITION", + "PASCAL", + "PERCENT", + "PIVOT", + "PLAN", + "POSITION", + "PRAGMA", + "PRECEDING", + "PRECISION", + "PREPARE", + "PRESERVE", + "PRIMARY", + "PRINT", + "PRIOR", + "PRIVILEGES", + "PROC", + "PROCEDURE", + "PUBLIC", + "QUERY", + "RAISE", + "RAISERROR", + "RANGE", + "READ", + "READTEXT", + "REAL", + "RECONFIGURE", + "RECURSIVE", + "REFERENCES", + "REGEXP", + "REINDEX", + "RELATIVE", + "RELEASE", + "RENAME", + "REPLACE", + "REPLICATION", + "RESTORE", + "RESTRICT", + "RETURN", + "RETURNING", + "REVERT", + "REVOKE", + "RIGHT", + "ROLLBACK", + "ROW", + "ROWCOUNT", + "ROWGUIDCOL", + "ROWS", + "RULE", + "SAVE", + "SAVEPOINT", + "SCHEMA", + "SCROLL", + "SECOND", + "SECTION", + "SECURITYAUDIT", + "SELECT", + "SEMANTICKEYPHRASETABLE", + "SEMANTICSIMILARITYDETAILSTABLE", + "SEMANTICSIMILARITYTABLE", + "SESSION", + "SESSION_USER", + "SET", + "SETUSER", + "SHUTDOWN", + "SIZE", + "SMALLINT", + "SOME", + "SPACE", + "SQL", + "SQLCA", + "SQLCODE", + "SQLERROR", + "SQLSTATE", + "SQLWARNING", + "STATISTICS", + "SUBSTRING", + "SUM", + "SYSTEM_USER", + "TABLE", + "TABLESAMPLE", + "TEMP", + "TEMPORARY", + "TEXTSIZE", + "THEN", + "TIES", + "TIME", + "TIMESTAMP", + "TIMEZONE_HOUR", + "TIMEZONE_MINUTE", + "TO", + "TOP", + "TRAILING", + "TRAN", + "TRANSACTION", + "TRANSLATE", + "TRANSLATION", + "TRIGGER", + "TRIM", + "TRUE", + "TRUNCATE", + "TRY_CONVERT", + "TSEQUAL", + "UNBOUNDED", + "UNION", + "UNIQUE", + "UNKNOWN", + "UNPIVOT", + "UPDATE", + "UPDATETEXT", + "UPPER", + "USAGE", + "USE", + "USER", + "USING", + "VACUUM", + "VALUE", + "VALUES", + "VARCHAR", + "VARYING", + "VIEW", + "VIRTUAL", + "WAITFOR", + "WHEN", + "WHENEVER", + "WHERE", + "WHILE", + "WINDOW", + "WITH", + "WITHIN GROUP", + "WITHOUT", + "WORK", + "WRITE", + "WRITETEXT", + "YEAR", + "ZONE" + ], + operators: [ + "ALL", + "AND", + "ANY", + "BETWEEN", + "EXISTS", + "IN", + "LIKE", + "NOT", + "OR", + "SOME", + "EXCEPT", + "INTERSECT", + "UNION", + "APPLY", + "CROSS", + "FULL", + "INNER", + "JOIN", + "LEFT", + "OUTER", + "RIGHT", + "CONTAINS", + "FREETEXT", + "IS", + "NULL", + "PIVOT", + "UNPIVOT", + "MATCHED" + ], + builtinFunctions: [ + "AVG", + "CHECKSUM_AGG", + "COUNT", + "COUNT_BIG", + "GROUPING", + "GROUPING_ID", + "MAX", + "MIN", + "SUM", + "STDEV", + "STDEVP", + "VAR", + "VARP", + "CUME_DIST", + "FIRST_VALUE", + "LAG", + "LAST_VALUE", + "LEAD", + "PERCENTILE_CONT", + "PERCENTILE_DISC", + "PERCENT_RANK", + "COLLATE", + "COLLATIONPROPERTY", + "TERTIARY_WEIGHTS", + "FEDERATION_FILTERING_VALUE", + "CAST", + "CONVERT", + "PARSE", + "TRY_CAST", + "TRY_CONVERT", + "TRY_PARSE", + "ASYMKEY_ID", + "ASYMKEYPROPERTY", + "CERTPROPERTY", + "CERT_ID", + "CRYPT_GEN_RANDOM", + "DECRYPTBYASYMKEY", + "DECRYPTBYCERT", + "DECRYPTBYKEY", + "DECRYPTBYKEYAUTOASYMKEY", + "DECRYPTBYKEYAUTOCERT", + "DECRYPTBYPASSPHRASE", + "ENCRYPTBYASYMKEY", + "ENCRYPTBYCERT", + "ENCRYPTBYKEY", + "ENCRYPTBYPASSPHRASE", + "HASHBYTES", + "IS_OBJECTSIGNED", + "KEY_GUID", + "KEY_ID", + "KEY_NAME", + "SIGNBYASYMKEY", + "SIGNBYCERT", + "SYMKEYPROPERTY", + "VERIFYSIGNEDBYCERT", + "VERIFYSIGNEDBYASYMKEY", + "CURSOR_STATUS", + "DATALENGTH", + "IDENT_CURRENT", + "IDENT_INCR", + "IDENT_SEED", + "IDENTITY", + "SQL_VARIANT_PROPERTY", + "CURRENT_TIMESTAMP", + "DATEADD", + "DATEDIFF", + "DATEFROMPARTS", + "DATENAME", + "DATEPART", + "DATETIME2FROMPARTS", + "DATETIMEFROMPARTS", + "DATETIMEOFFSETFROMPARTS", + "DAY", + "EOMONTH", + "GETDATE", + "GETUTCDATE", + "ISDATE", + "MONTH", + "SMALLDATETIMEFROMPARTS", + "SWITCHOFFSET", + "SYSDATETIME", + "SYSDATETIMEOFFSET", + "SYSUTCDATETIME", + "TIMEFROMPARTS", + "TODATETIMEOFFSET", + "YEAR", + "CHOOSE", + "COALESCE", + "IIF", + "NULLIF", + "ABS", + "ACOS", + "ASIN", + "ATAN", + "ATN2", + "CEILING", + "COS", + "COT", + "DEGREES", + "EXP", + "FLOOR", + "LOG", + "LOG10", + "PI", + "POWER", + "RADIANS", + "RAND", + "ROUND", + "SIGN", + "SIN", + "SQRT", + "SQUARE", + "TAN", + "APP_NAME", + "APPLOCK_MODE", + "APPLOCK_TEST", + "ASSEMBLYPROPERTY", + "COL_LENGTH", + "COL_NAME", + "COLUMNPROPERTY", + "DATABASE_PRINCIPAL_ID", + "DATABASEPROPERTYEX", + "DB_ID", + "DB_NAME", + "FILE_ID", + "FILE_IDEX", + "FILE_NAME", + "FILEGROUP_ID", + "FILEGROUP_NAME", + "FILEGROUPPROPERTY", + "FILEPROPERTY", + "FULLTEXTCATALOGPROPERTY", + "FULLTEXTSERVICEPROPERTY", + "INDEX_COL", + "INDEXKEY_PROPERTY", + "INDEXPROPERTY", + "OBJECT_DEFINITION", + "OBJECT_ID", + "OBJECT_NAME", + "OBJECT_SCHEMA_NAME", + "OBJECTPROPERTY", + "OBJECTPROPERTYEX", + "ORIGINAL_DB_NAME", + "PARSENAME", + "SCHEMA_ID", + "SCHEMA_NAME", + "SCOPE_IDENTITY", + "SERVERPROPERTY", + "STATS_DATE", + "TYPE_ID", + "TYPE_NAME", + "TYPEPROPERTY", + "DENSE_RANK", + "NTILE", + "RANK", + "ROW_NUMBER", + "PUBLISHINGSERVERNAME", + "OPENDATASOURCE", + "OPENQUERY", + "OPENROWSET", + "OPENXML", + "CERTENCODED", + "CERTPRIVATEKEY", + "CURRENT_USER", + "HAS_DBACCESS", + "HAS_PERMS_BY_NAME", + "IS_MEMBER", + "IS_ROLEMEMBER", + "IS_SRVROLEMEMBER", + "LOGINPROPERTY", + "ORIGINAL_LOGIN", + "PERMISSIONS", + "PWDENCRYPT", + "PWDCOMPARE", + "SESSION_USER", + "SESSIONPROPERTY", + "SUSER_ID", + "SUSER_NAME", + "SUSER_SID", + "SUSER_SNAME", + "SYSTEM_USER", + "USER", + "USER_ID", + "USER_NAME", + "ASCII", + "CHAR", + "CHARINDEX", + "CONCAT", + "DIFFERENCE", + "FORMAT", + "LEFT", + "LEN", + "LOWER", + "LTRIM", + "NCHAR", + "PATINDEX", + "QUOTENAME", + "REPLACE", + "REPLICATE", + "REVERSE", + "RIGHT", + "RTRIM", + "SOUNDEX", + "SPACE", + "STR", + "STUFF", + "SUBSTRING", + "UNICODE", + "UPPER", + "BINARY_CHECKSUM", + "CHECKSUM", + "CONNECTIONPROPERTY", + "CONTEXT_INFO", + "CURRENT_REQUEST_ID", + "ERROR_LINE", + "ERROR_NUMBER", + "ERROR_MESSAGE", + "ERROR_PROCEDURE", + "ERROR_SEVERITY", + "ERROR_STATE", + "FORMATMESSAGE", + "GETANSINULL", + "GET_FILESTREAM_TRANSACTION_CONTEXT", + "HOST_ID", + "HOST_NAME", + "ISNULL", + "ISNUMERIC", + "MIN_ACTIVE_ROWVERSION", + "NEWID", + "NEWSEQUENTIALID", + "ROWCOUNT_BIG", + "XACT_STATE", + "TEXTPTR", + "TEXTVALID", + "COLUMNS_UPDATED", + "EVENTDATA", + "TRIGGER_NESTLEVEL", + "UPDATE", + "CHANGETABLE", + "CHANGE_TRACKING_CONTEXT", + "CHANGE_TRACKING_CURRENT_VERSION", + "CHANGE_TRACKING_IS_COLUMN_IN_MASK", + "CHANGE_TRACKING_MIN_VALID_VERSION", + "CONTAINSTABLE", + "FREETEXTTABLE", + "SEMANTICKEYPHRASETABLE", + "SEMANTICSIMILARITYDETAILSTABLE", + "SEMANTICSIMILARITYTABLE", + "FILETABLEROOTPATH", + "GETFILENAMESPACEPATH", + "GETPATHLOCATOR", + "PATHNAME", + "GET_TRANSMISSION_STATUS" + ], + builtinVariables: [ + "@@DATEFIRST", + "@@DBTS", + "@@LANGID", + "@@LANGUAGE", + "@@LOCK_TIMEOUT", + "@@MAX_CONNECTIONS", + "@@MAX_PRECISION", + "@@NESTLEVEL", + "@@OPTIONS", + "@@REMSERVER", + "@@SERVERNAME", + "@@SERVICENAME", + "@@SPID", + "@@TEXTSIZE", + "@@VERSION", + "@@CURSOR_ROWS", + "@@FETCH_STATUS", + "@@DATEFIRST", + "@@PROCID", + "@@ERROR", + "@@IDENTITY", + "@@ROWCOUNT", + "@@TRANCOUNT", + "@@CONNECTIONS", + "@@CPU_BUSY", + "@@IDLE", + "@@IO_BUSY", + "@@PACKET_ERRORS", + "@@PACK_RECEIVED", + "@@PACK_SENT", + "@@TIMETICKS", + "@@TOTAL_ERRORS", + "@@TOTAL_READ", + "@@TOTAL_WRITE" + ], + pseudoColumns: ["$ACTION", "$IDENTITY", "$ROWGUID", "$PARTITION"], + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@pseudoColumns" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@complexIdentifiers" }, + { include: "@scopes" }, + [/[;,.]/, "delimiter"], + [/[()]/, "@brackets"], + [ + /[\w@#$]+/, + { + cases: { + "@operators": "operator", + "@builtinVariables": "predefined", + "@builtinFunctions": "predefined", + "@keywords": "keyword", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + [/--+.*/, "comment"], + [/\/\*/, { token: "comment.quote", next: "@comment" }] + ], + comment: [ + [/[^*/]+/, "comment"], + [/\*\//, { token: "comment.quote", next: "@pop" }], + [/./, "comment"] + ], + pseudoColumns: [ + [ + /[$][A-Za-z_][\w@#$]*/, + { + cases: { + "@pseudoColumns": "predefined", + "@default": "identifier" + } + } + ] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [ + [/N'/, { token: "string", next: "@string" }], + [/'/, { token: "string", next: "@string" }] + ], + string: [ + [/[^']+/, "string"], + [/''/, "string"], + [/'/, { token: "string", next: "@pop" }] + ], + complexIdentifiers: [ + [/\[/, { token: "identifier.quote", next: "@bracketedIdentifier" }], + [/"/, { token: "identifier.quote", next: "@quotedIdentifier" }] + ], + bracketedIdentifier: [ + [/[^\]]+/, "identifier"], + [/]]/, "identifier"], + [/]/, { token: "identifier.quote", next: "@pop" }] + ], + quotedIdentifier: [ + [/[^"]+/, "identifier"], + [/""/, "identifier"], + [/"/, { token: "identifier.quote", next: "@pop" }] + ], + scopes: [ + [/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i, "keyword"], + [/BEGIN\s+TRY\b/i, { token: "keyword.try" }], + [/END\s+TRY\b/i, { token: "keyword.try" }], + [/BEGIN\s+CATCH\b/i, { token: "keyword.catch" }], + [/END\s+CATCH\b/i, { token: "keyword.catch" }], + [/(BEGIN|CASE)\b/i, { token: "keyword.block" }], + [/END\b/i, { token: "keyword.block" }], + [/WHEN\b/i, { token: "keyword.choice" }], + [/THEN\b/i, { token: "keyword.choice" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7835.3b3c09d8.js b/assets/js/7835.3b3c09d8.js new file mode 100644 index 00000000000..4d97d0568ad --- /dev/null +++ b/assets/js/7835.3b3c09d8.js @@ -0,0 +1,490 @@ +"use strict"; +exports.id = 7835; +exports.ids = [7835]; +exports.modules = { + +/***/ 47835: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/php/php.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}", notIn: ["string"] }, + { open: "[", close: "]", notIn: ["string"] }, + { open: "(", close: ")", notIn: ["string"] }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "'", close: "'", notIn: ["string", "comment"] } + ], + folding: { + markers: { + start: new RegExp("^\\s*(#|//)region\\b"), + end: new RegExp("^\\s*(#|//)endregion\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: "", + tokenizer: { + root: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.root" }], + [/<!DOCTYPE/, "metatag.html", "@doctype"], + [/<!--/, "comment.html", "@comment"], + [/(<)(\w+)(\/>)/, ["delimiter.html", "tag.html", "delimiter.html"]], + [/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]], + [/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]], + [/(<)([:\w]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/(<\/)(\w+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/</, "delimiter.html"], + [/[^<]+/] + ], + doctype: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.comment" }], + [/[^>]+/, "metatag.content.html"], + [/>/, "metatag.html", "@pop"] + ], + comment: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.comment" }], + [/-->/, "comment.html", "@pop"], + [/[^-]+/, "comment.content.html"], + [/./, "comment.content.html"] + ], + otherTag: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.otherTag" }], + [/\/?>/, "delimiter.html", "@pop"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/] + ], + script: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.script" }], + [/type/, "attribute.name", "@scriptAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(script\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + scriptAfterType: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.scriptAfterType" + } + ], + [/=/, "delimiter", "@scriptAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptAfterTypeEquals: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.scriptAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.text/javascript", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptWithCustomType: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.scriptWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptEmbedded: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInEmbeddedState.scriptEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + style: [ + [/<\?((php)|=)?/, { token: "@rematch", switchTo: "@phpInSimpleState.style" }], + [/type/, "attribute.name", "@styleAfterType"], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(style\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + styleAfterType: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.styleAfterType" + } + ], + [/=/, "delimiter", "@styleAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleAfterTypeEquals: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.styleAfterTypeEquals" + } + ], + [ + /"([^"]*)"/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.text/css", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleWithCustomType: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInSimpleState.styleWithCustomType.$S2" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value"], + [/'([^']*)'/, "attribute.value"], + [/[\w\-]+/, "attribute.name"], + [/=/, "delimiter"], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleEmbedded: [ + [ + /<\?((php)|=)?/, + { + token: "@rematch", + switchTo: "@phpInEmbeddedState.styleEmbedded.$S2", + nextEmbedded: "@pop" + } + ], + [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }] + ], + phpInSimpleState: [ + [/<\?((php)|=)?/, "metatag.php"], + [/\?>/, { token: "metatag.php", switchTo: "@$S2.$S3" }], + { include: "phpRoot" } + ], + phpInEmbeddedState: [ + [/<\?((php)|=)?/, "metatag.php"], + [ + /\?>/, + { + token: "metatag.php", + switchTo: "@$S2.$S3", + nextEmbedded: "$S3" + } + ], + { include: "phpRoot" } + ], + phpRoot: [ + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@phpKeywords": { token: "keyword.php" }, + "@phpCompileTimeConstants": { token: "constant.php" }, + "@default": "identifier.php" + } + } + ], + [ + /[$a-zA-Z_]\w*/, + { + cases: { + "@phpPreDefinedVariables": { + token: "variable.predefined.php" + }, + "@default": "variable.php" + } + } + ], + [/[{}]/, "delimiter.bracket.php"], + [/[\[\]]/, "delimiter.array.php"], + [/[()]/, "delimiter.parenthesis.php"], + [/[ \t\r\n]+/], + [/(#|\/\/)$/, "comment.php"], + [/(#|\/\/)/, "comment.php", "@phpLineComment"], + [/\/\*/, "comment.php", "@phpComment"], + [/"/, "string.php", "@phpDoubleQuoteString"], + [/'/, "string.php", "@phpSingleQuoteString"], + [/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/, "delimiter.php"], + [/\d*\d+[eE]([\-+]?\d+)?/, "number.float.php"], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float.php"], + [/0[xX][0-9a-fA-F']*[0-9a-fA-F]/, "number.hex.php"], + [/0[0-7']*[0-7]/, "number.octal.php"], + [/0[bB][0-1']*[0-1]/, "number.binary.php"], + [/\d[\d']*/, "number.php"], + [/\d/, "number.php"] + ], + phpComment: [ + [/\*\//, "comment.php", "@pop"], + [/[^*]+/, "comment.php"], + [/./, "comment.php"] + ], + phpLineComment: [ + [/\?>/, { token: "@rematch", next: "@pop" }], + [/.$/, "comment.php", "@pop"], + [/[^?]+$/, "comment.php", "@pop"], + [/[^?]+/, "comment.php"], + [/./, "comment.php"] + ], + phpDoubleQuoteString: [ + [/[^\\"]+/, "string.php"], + [/@escapes/, "string.escape.php"], + [/\\./, "string.escape.invalid.php"], + [/"/, "string.php", "@pop"] + ], + phpSingleQuoteString: [ + [/[^\\']+/, "string.php"], + [/@escapes/, "string.escape.php"], + [/\\./, "string.escape.invalid.php"], + [/'/, "string.php", "@pop"] + ] + }, + phpKeywords: [ + "abstract", + "and", + "array", + "as", + "break", + "callable", + "case", + "catch", + "cfunction", + "class", + "clone", + "const", + "continue", + "declare", + "default", + "do", + "else", + "elseif", + "enddeclare", + "endfor", + "endforeach", + "endif", + "endswitch", + "endwhile", + "extends", + "false", + "final", + "for", + "foreach", + "function", + "global", + "goto", + "if", + "implements", + "interface", + "instanceof", + "insteadof", + "namespace", + "new", + "null", + "object", + "old_function", + "or", + "private", + "protected", + "public", + "resource", + "static", + "switch", + "throw", + "trait", + "try", + "true", + "use", + "var", + "while", + "xor", + "die", + "echo", + "empty", + "exit", + "eval", + "include", + "include_once", + "isset", + "list", + "require", + "require_once", + "return", + "print", + "unset", + "yield", + "__construct" + ], + phpCompileTimeConstants: [ + "__CLASS__", + "__DIR__", + "__FILE__", + "__LINE__", + "__NAMESPACE__", + "__METHOD__", + "__FUNCTION__", + "__TRAIT__" + ], + phpPreDefinedVariables: [ + "$GLOBALS", + "$_SERVER", + "$_GET", + "$_POST", + "$_FILES", + "$_REQUEST", + "$_SESSION", + "$_ENV", + "$_COOKIE", + "$php_errormsg", + "$HTTP_RAW_POST_DATA", + "$http_response_header", + "$argc", + "$argv" + ], + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/ +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/7835.fed695f5.js b/assets/js/7835.fed695f5.js new file mode 100644 index 00000000000..498c1a79cef --- /dev/null +++ b/assets/js/7835.fed695f5.js @@ -0,0 +1,2 @@ +/*! For license information please see 7835.fed695f5.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7835],{47835:(e,t,p)=>{p.r(t),p.d(t,{conf:()=>n,language:()=>i});var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*(#|//)region\\b"),end:new RegExp("^\\s*(#|//)endregion\\b")}}},i={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.root"}],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@comment"],[/(<)(\w+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/[^<]+/]],doctype:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.comment"}],[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],phpInSimpleState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3"}],{include:"phpRoot"}],phpInEmbeddedState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"phpRoot"}],phpRoot:[[/[a-zA-Z_]\w*/,{cases:{"@phpKeywords":{token:"keyword.php"},"@phpCompileTimeConstants":{token:"constant.php"},"@default":"identifier.php"}}],[/[$a-zA-Z_]\w*/,{cases:{"@phpPreDefinedVariables":{token:"variable.predefined.php"},"@default":"variable.php"}}],[/[{}]/,"delimiter.bracket.php"],[/[\[\]]/,"delimiter.array.php"],[/[()]/,"delimiter.parenthesis.php"],[/[ \t\r\n]+/],[/(#|\/\/)$/,"comment.php"],[/(#|\/\/)/,"comment.php","@phpLineComment"],[/\/\*/,"comment.php","@phpComment"],[/"/,"string.php","@phpDoubleQuoteString"],[/'/,"string.php","@phpSingleQuoteString"],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/,"delimiter.php"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.php"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.php"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.php"],[/0[0-7']*[0-7]/,"number.octal.php"],[/0[bB][0-1']*[0-1]/,"number.binary.php"],[/\d[\d']*/,"number.php"],[/\d/,"number.php"]],phpComment:[[/\*\//,"comment.php","@pop"],[/[^*]+/,"comment.php"],[/./,"comment.php"]],phpLineComment:[[/\?>/,{token:"@rematch",next:"@pop"}],[/.$/,"comment.php","@pop"],[/[^?]+$/,"comment.php","@pop"],[/[^?]+/,"comment.php"],[/./,"comment.php"]],phpDoubleQuoteString:[[/[^\\"]+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/"/,"string.php","@pop"]],phpSingleQuoteString:[[/[^\\']+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/'/,"string.php","@pop"]]},phpKeywords:["abstract","and","array","as","break","callable","case","catch","cfunction","class","clone","const","continue","declare","default","do","else","elseif","enddeclare","endfor","endforeach","endif","endswitch","endwhile","extends","false","final","for","foreach","function","global","goto","if","implements","interface","instanceof","insteadof","namespace","new","null","object","old_function","or","private","protected","public","resource","static","switch","throw","trait","try","true","use","var","while","xor","die","echo","empty","exit","eval","include","include_once","isset","list","require","require_once","return","print","unset","yield","__construct"],phpCompileTimeConstants:["__CLASS__","__DIR__","__FILE__","__LINE__","__NAMESPACE__","__METHOD__","__FUNCTION__","__TRAIT__"],phpPreDefinedVariables:["$GLOBALS","$_SERVER","$_GET","$_POST","$_FILES","$_REQUEST","$_SESSION","$_ENV","$_COOKIE","$php_errormsg","$HTTP_RAW_POST_DATA","$http_response_header","$argc","$argv"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/}}}]); \ No newline at end of file diff --git a/assets/js/7835.fed695f5.js.LICENSE.txt b/assets/js/7835.fed695f5.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/7835.fed695f5.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/7966.b4ef84f5.js b/assets/js/7966.b4ef84f5.js new file mode 100644 index 00000000000..61a187bf839 --- /dev/null +++ b/assets/js/7966.b4ef84f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7966],{87966:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>n,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=o(87462),i=(o(67294),o(3905));const a={title:"Even Better Support for React in Flow","short-title":"Even Better React Support",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/even-better-support-for-react-in-flow-25b0a3485627"},n=void 0,l={permalink:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow",source:"@site/blog/2017-08-16-Even-Better-Support-for-React-in-Flow.md",title:"Even Better Support for React in Flow",description:"The first version of Flow support for React was a magical implementation of",date:"2017-08-16T00:00:00.000Z",formattedDate:"August 16, 2017",tags:[],hasTruncateMarker:!1,authors:[{name:"Caleb Meredith"}],frontMatter:{title:"Even Better Support for React in Flow","short-title":"Even Better React Support",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/even-better-support-for-react-in-flow-25b0a3485627"},prevItem:{title:"Private Object Properties Using Flow\u2019s Opaque Type Aliases",permalink:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases"},nextItem:{title:"Linting in Flow",permalink:"/blog/2017/08/04/Linting-in-Flow"}},s={authorsImageUrls:[void 0]},p=[],c={toc:p};function m(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,r.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"The first version of Flow support for React was a magical implementation of\n",(0,i.mdx)("inlineCode",{parentName:"p"},"React.createClass()"),". Since then, React has evolved significantly. It is time\nto rethink how Flow models React."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7997.402d61b8.js b/assets/js/7997.402d61b8.js new file mode 100644 index 00000000000..e066f390c9e --- /dev/null +++ b/assets/js/7997.402d61b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[7997],{97997:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var n=o(87462),r=(o(67294),o(3905));o(45475);const i={title:"Flow CLI",slug:"/cli",description:"How to use Flow from the command line. Including how to manage the Flow background process."},s=void 0,a={unversionedId:"cli/index",id:"cli/index",title:"Flow CLI",description:"How to use Flow from the command line. Including how to manage the Flow background process.",source:"@site/docs/cli/index.md",sourceDirName:"cli",slug:"/cli",permalink:"/en/docs/cli",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/cli/index.md",tags:[],version:"current",frontMatter:{title:"Flow CLI",slug:"/cli",description:"How to use Flow from the command line. Including how to manage the Flow background process."},sidebar:"docsSidebar",previous:{title:"Flow Strict",permalink:"/en/docs/strict"},next:{title:"Flow Coverage",permalink:"/en/docs/cli/coverage"}},l={},c=[],d={toc:c};function u(e){let{components:t,...o}=e;return(0,r.mdx)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"The flow command line tool is made to be easy-to-use for simple cases."),(0,r.mdx)("p",null,"Using the command ",(0,r.mdx)("inlineCode",{parentName:"p"},"flow")," will type-check your current directory if the\n",(0,r.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file is present. A flow server will automatically be started if\nneeded."),(0,r.mdx)("p",null,"The CLI tool also provides several other options and commands that allow you to\ncontrol the server and build tools that integrate with Flow. For example, this\nis how the ",(0,r.mdx)("a",{parentName:"p",href:"https://nuclide.io/"},"Nuclide")," editor integrates with Flow to\nprovide autocompletion, type errors, etc. in its UI."),(0,r.mdx)("p",null,"To find out more about the CLI just type:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"flow --help\n")),(0,r.mdx)("p",null,"This will give you information about everything that flow can do. Running this\ncommand should print something like this:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"Usage: flow [COMMAND] [PROJECT_ROOT]\n\nValid values for COMMAND:\n ast Print the AST\n autocomplete Queries autocompletion information\n batch-coverage Shows aggregate coverage information for a group of files or directories\n check Does a full Flow check and prints the results\n check-contents Run typechecker on contents from stdin\n config Read or write the .flowconfig file\n coverage Shows coverage information for a given file\n cycle Output .dot file for cycle containing the given file\n find-module Resolves a module reference to a file\n find-refs Gets the reference locations of a variable or property\n force-recheck Forces the server to recheck a given list of files\n get-def Gets the definition location of a variable or property\n graph Outputs dependency graphs of flow repositories\n init Initializes a directory to be used as a flow root directory\n ls Lists files visible to Flow\n lsp Acts as a server for the Language Server Protocol over stdin/stdout [experimental]\n print-signature Prints the type signature of a file as extracted in types-first mode\n server Runs a Flow server in the foreground\n start Starts a Flow server\n status (default) Shows current Flow errors by asking the Flow server\n stop Stops a Flow server\n type-at-pos Shows the type at a given file and position\n version Print version information\n\nDefault values if unspecified:\n COMMAND status\n PROJECT_ROOT current folder\n\nStatus command options:\n --color Display terminal output in color. never, always, auto (default: auto)\n --from Specify client (for use by editor plugins)\n --help This list of options\n --json Output results in JSON format\n --no-auto-start If the server is not running, do not start it; just exit\n --old-output-format Use old output format (absolute file names, line and column numbers)\n --one-line Escapes newlines so that each error prints on one line\n --quiet Suppresses the server-status information that would have been printed to stderr\n --retries Set the number of retries. (default: 3)\n --show-all-errors Print all errors (the default is to truncate after 50 errors)\n --strip-root Print paths without the root\n --temp-dir Directory in which to store temp files (default: /tmp/flow/)\n --timeout Maximum time to wait, in seconds\n --version Print version number and exit\n")),(0,r.mdx)("p",null,"Example with custom project root:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"mydir\n\u251c\u2500\u2500 frontend\n\u2502 \u251c\u2500\u2500 .flowconfig\n\u2502 \u2514\u2500\u2500 app.js\n\u2514\u2500\u2500 backend\n")),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"flow check frontend\n")),(0,r.mdx)("p",null,"You can then, further dig into particular COMMANDs by adding the ",(0,r.mdx)("inlineCode",{parentName:"p"},"--help")," flag."),(0,r.mdx)("p",null,"So, for example, if you want to know more about how the autocomplete works, you\ncan use this command:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-sh"},"flow autocomplete --help\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8017.5a10ad1f.js b/assets/js/8017.5a10ad1f.js new file mode 100644 index 00000000000..f6f341168da --- /dev/null +++ b/assets/js/8017.5a10ad1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8017],{28017:e=>{e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":50,"totalPages":2,"totalCount":54,"nextPage":"/blog/page/2","blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/8027.0a3be280.js b/assets/js/8027.0a3be280.js new file mode 100644 index 00000000000..3cf3826f5da --- /dev/null +++ b/assets/js/8027.0a3be280.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8027],{38027:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>n,default:()=>c,frontMatter:()=>i,metadata:()=>m,toc:()=>d});var o=s(87462),r=(s(67294),s(3905));s(45475);const i={title:"WebStorm",slug:"/editors/webstorm"},n=void 0,m={unversionedId:"editors/webstorm",id:"editors/webstorm",title:"WebStorm",description:"Webstorm installation instructions can be found here:",source:"@site/docs/editors/webstorm.md",sourceDirName:"editors",slug:"/editors/webstorm",permalink:"/en/docs/editors/webstorm",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/webstorm.md",tags:[],version:"current",frontMatter:{title:"WebStorm",slug:"/editors/webstorm"},sidebar:"docsSidebar",previous:{title:"Emacs",permalink:"/en/docs/editors/emacs"}},a={},d=[],l={toc:d};function c(e){let{components:t,...s}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},l,s,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Webstorm installation instructions can be found here:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("a",{parentName:"li",href:"https://www.jetbrains.com/help/webstorm/2016.3/using-the-flow-type-checker.html"},"WebStorm 2016.3")),(0,r.mdx)("li",{parentName:"ul"},(0,r.mdx)("a",{parentName:"li",href:"https://www.jetbrains.com/help/webstorm/2017.1/flow-type-checker.html"},"WebStorm 2017.1"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8063.96e4bd2b.js b/assets/js/8063.96e4bd2b.js new file mode 100644 index 00000000000..1c860a9c30b --- /dev/null +++ b/assets/js/8063.96e4bd2b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8063],{78063:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>a,contentTitle:()=>s,default:()=>f,frontMatter:()=>l,metadata:()=>r,toc:()=>c});var n=t(87462),o=(t(67294),t(3905));t(45475);const l={title:".flowconfig [libs]",slug:"/config/libs"},s=void 0,r={unversionedId:"config/libs",id:"config/libs",title:".flowconfig [libs]",description:"The [libs] section in a .flowconfig file tells Flow to include the",source:"@site/docs/config/libs.md",sourceDirName:"config",slug:"/config/libs",permalink:"/en/docs/config/libs",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/libs.md",tags:[],version:"current",frontMatter:{title:".flowconfig [libs]",slug:"/config/libs"},sidebar:"docsSidebar",previous:{title:".flowconfig [declarations]",permalink:"/en/docs/config/declarations"},next:{title:".flowconfig [lints]",permalink:"/en/docs/config/lints"}},a={},c=[],d={toc:c};function f(e){let{components:i,...t}=e;return(0,o.mdx)("wrapper",(0,n.Z)({},d,t,{components:i,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"The ",(0,o.mdx)("inlineCode",{parentName:"p"},"[libs]")," section in a ",(0,o.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file tells Flow to include the\nspecified ",(0,o.mdx)("a",{parentName:"p",href:"../../libdefs/"},"library definitions")," when type\nchecking your code. Multiple libraries can be specified. By default, the\n",(0,o.mdx)("inlineCode",{parentName:"p"},"flow-typed")," folder in your project root directory is included as a library\ndirectory. This default allows you to use\n",(0,o.mdx)("a",{parentName:"p",href:"https://github.com/flowtype/flow-typed"},(0,o.mdx)("inlineCode",{parentName:"a"},"flow-typed"))," to install library\ndefinitions without additional configuration."),(0,o.mdx)("p",null,"Each line in the ",(0,o.mdx)("inlineCode",{parentName:"p"},"[libs]")," section is a path to the library file or directory\nwhich you would like to include. These paths can be relative to the project\nroot directory or absolute. Including a directory recursively includes all the\nfiles under that directory as library files."))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8070.b2932ef2.js b/assets/js/8070.b2932ef2.js new file mode 100644 index 00000000000..37591fd4f68 --- /dev/null +++ b/assets/js/8070.b2932ef2.js @@ -0,0 +1,2 @@ +/*! For license information please see 8070.b2932ef2.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8070],{8070:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>n,language:()=>r});var n={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},r={defaultToken:"",tokenPostfix:".perl",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["__DATA__","else","lock","__END__","elsif","lt","__FILE__","eq","__LINE__","exp","ne","sub","__PACKAGE__","for","no","and","foreach","or","unless","cmp","ge","package","until","continue","gt","while","CORE","if","xor","do","le","__DIE__","__WARN__"],builtinFunctions:["-A","END","length","setpgrp","-B","endgrent","link","setpriority","-b","endhostent","listen","setprotoent","-C","endnetent","local","setpwent","-c","endprotoent","localtime","setservent","-d","endpwent","log","setsockopt","-e","endservent","lstat","shift","-f","eof","map","shmctl","-g","eval","mkdir","shmget","-k","exec","msgctl","shmread","-l","exists","msgget","shmwrite","-M","exit","msgrcv","shutdown","-O","fcntl","msgsnd","sin","-o","fileno","my","sleep","-p","flock","next","socket","-r","fork","not","socketpair","-R","format","oct","sort","-S","formline","open","splice","-s","getc","opendir","split","-T","getgrent","ord","sprintf","-t","getgrgid","our","sqrt","-u","getgrnam","pack","srand","-w","gethostbyaddr","pipe","stat","-W","gethostbyname","pop","state","-X","gethostent","pos","study","-x","getlogin","print","substr","-z","getnetbyaddr","printf","symlink","abs","getnetbyname","prototype","syscall","accept","getnetent","push","sysopen","alarm","getpeername","quotemeta","sysread","atan2","getpgrp","rand","sysseek","AUTOLOAD","getppid","read","system","BEGIN","getpriority","readdir","syswrite","bind","getprotobyname","readline","tell","binmode","getprotobynumber","readlink","telldir","bless","getprotoent","readpipe","tie","break","getpwent","recv","tied","caller","getpwnam","redo","time","chdir","getpwuid","ref","times","CHECK","getservbyname","rename","truncate","chmod","getservbyport","require","uc","chomp","getservent","reset","ucfirst","chop","getsockname","return","umask","chown","getsockopt","reverse","undef","chr","glob","rewinddir","UNITCHECK","chroot","gmtime","rindex","unlink","close","goto","rmdir","unpack","closedir","grep","say","unshift","connect","hex","scalar","untie","cos","index","seek","use","crypt","INIT","seekdir","utime","dbmclose","int","select","values","dbmopen","ioctl","semctl","vec","defined","join","semget","wait","delete","keys","semop","waitpid","DESTROY","kill","send","wantarray","die","last","setgrent","warn","dump","lc","sethostent","write","each","lcfirst","setnetent"],builtinFileHandlers:["ARGV","STDERR","STDOUT","ARGVOUT","STDIN","ENV"],builtinVariables:["$!","$^RE_TRIE_MAXBUF","$LAST_REGEXP_CODE_RESULT",'$"',"$^S","$LIST_SEPARATOR","$#","$^T","$MATCH","$$","$^TAINT","$MULTILINE_MATCHING","$%","$^UNICODE","$NR","$&","$^UTF8LOCALE","$OFMT","$'","$^V","$OFS","$(","$^W","$ORS","$)","$^WARNING_BITS","$OS_ERROR","$*","$^WIDE_SYSTEM_CALLS","$OSNAME","$+","$^X","$OUTPUT_AUTO_FLUSH","$,","$_","$OUTPUT_FIELD_SEPARATOR","$-","$`","$OUTPUT_RECORD_SEPARATOR","$.","$a","$PERL_VERSION","$/","$ACCUMULATOR","$PERLDB","$0","$ARG","$PID","$:","$ARGV","$POSTMATCH","$;","$b","$PREMATCH","$<","$BASETIME","$PROCESS_ID","$=","$CHILD_ERROR","$PROGRAM_NAME","$>","$COMPILING","$REAL_GROUP_ID","$?","$DEBUGGING","$REAL_USER_ID","$@","$EFFECTIVE_GROUP_ID","$RS","$[","$EFFECTIVE_USER_ID","$SUBSCRIPT_SEPARATOR","$\\","$EGID","$SUBSEP","$]","$ERRNO","$SYSTEM_FD_MAX","$^","$EUID","$UID","$^A","$EVAL_ERROR","$WARNING","$^C","$EXCEPTIONS_BEING_CAUGHT","$|","$^CHILD_ERROR_NATIVE","$EXECUTABLE_NAME","$~","$^D","$EXTENDED_OS_ERROR","%!","$^E","$FORMAT_FORMFEED","%^H","$^ENCODING","$FORMAT_LINE_BREAK_CHARACTERS","%ENV","$^F","$FORMAT_LINES_LEFT","%INC","$^H","$FORMAT_LINES_PER_PAGE","%OVERLOAD","$^I","$FORMAT_NAME","%SIG","$^L","$FORMAT_PAGE_NUMBER","@+","$^M","$FORMAT_TOP_NAME","@-","$^N","$GID","@_","$^O","$INPLACE_EDIT","@ARGV","$^OPEN","$INPUT_LINE_NUMBER","@INC","$^P","$INPUT_RECORD_SEPARATOR","@LAST_MATCH_START","$^R","$LAST_MATCH_END","$^RE_DEBUG_FLAGS","$LAST_PAREN_MATCH"],symbols:/[:+\-\^*$&%@=<>!?|\/~\.]/,quoteLikeOps:["qr","m","s","q","qq","qx","qw","tr","y"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},[/[a-zA-Z\-_][\w\-_]*/,{cases:{"@keywords":"keyword","@builtinFunctions":"type.identifier","@builtinFileHandlers":"variable.predefined","@quoteLikeOps":{token:"@rematch",next:"quotedConstructs"},"@default":""}}],[/[\$@%][*@#?\+\-\$!\w\\\^><~:;\.]+/,{cases:{"@builtinVariables":"variable.predefined","@default":"variable"}}],{include:"@strings"},{include:"@dblStrings"},{include:"@perldoc"},{include:"@heredoc"},[/[{}\[\]()]/,"@brackets"],[/[\/](?:(?:\[(?:\\]|[^\]])+\])|(?:\\\/|[^\]\/]))*[\/]\w*\s*(?=[).,;]|$)/,"regexp"],[/@symbols/,"operators"],{include:"@numbers"},[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"],[/(^#!.*$)/,"metatag"],[/(^#.*$)/,"comment"]],numbers:[[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"]],strings:[[/'/,"string","@stringBody"]],stringBody:[[/'/,"string","@popall"],[/\\'/,"string.escape"],[/./,"string"]],dblStrings:[[/"/,"string","@dblStringBody"]],dblStringBody:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],{include:"@variables"},[/./,"string"]],quotedConstructs:[[/(q|qw|tr|y)\s*\(/,{token:"string.delim",switchTo:"@qstring.(.)"}],[/(q|qw|tr|y)\s*\[/,{token:"string.delim",switchTo:"@qstring.[.]"}],[/(q|qw|tr|y)\s*\{/,{token:"string.delim",switchTo:"@qstring.{.}"}],[/(q|qw|tr|y)\s*</,{token:"string.delim",switchTo:"@qstring.<.>"}],[/(q|qw|tr|y)#/,{token:"string.delim",switchTo:"@qstring.#.#"}],[/(q|qw|tr|y)\s*([^A-Za-z0-9#\s])/,{token:"string.delim",switchTo:"@qstring.$2.$2"}],[/(q|qw|tr|y)\s+(\w)/,{token:"string.delim",switchTo:"@qstring.$2.$2"}],[/(qr|m|s)\s*\(/,{token:"regexp.delim",switchTo:"@qregexp.(.)"}],[/(qr|m|s)\s*\[/,{token:"regexp.delim",switchTo:"@qregexp.[.]"}],[/(qr|m|s)\s*\{/,{token:"regexp.delim",switchTo:"@qregexp.{.}"}],[/(qr|m|s)\s*</,{token:"regexp.delim",switchTo:"@qregexp.<.>"}],[/(qr|m|s)#/,{token:"regexp.delim",switchTo:"@qregexp.#.#"}],[/(qr|m|s)\s*([^A-Za-z0-9_#\s])/,{token:"regexp.delim",switchTo:"@qregexp.$2.$2"}],[/(qr|m|s)\s+(\w)/,{token:"regexp.delim",switchTo:"@qregexp.$2.$2"}],[/(qq|qx)\s*\(/,{token:"string.delim",switchTo:"@qqstring.(.)"}],[/(qq|qx)\s*\[/,{token:"string.delim",switchTo:"@qqstring.[.]"}],[/(qq|qx)\s*\{/,{token:"string.delim",switchTo:"@qqstring.{.}"}],[/(qq|qx)\s*</,{token:"string.delim",switchTo:"@qqstring.<.>"}],[/(qq|qx)#/,{token:"string.delim",switchTo:"@qqstring.#.#"}],[/(qq|qx)\s*([^A-Za-z0-9#\s])/,{token:"string.delim",switchTo:"@qqstring.$2.$2"}],[/(qq|qx)\s+(\w)/,{token:"string.delim",switchTo:"@qqstring.$2.$2"}]],qstring:[[/\\./,"string.escape"],[/./,{cases:{"$#==$S3":{token:"string.delim",next:"@pop"},"$#==$S2":{token:"string.delim",next:"@push"},"@default":"string"}}]],qregexp:[{include:"@variables"},[/\\./,"regexp.escape"],[/./,{cases:{"$#==$S3":{token:"regexp.delim",next:"@regexpModifiers"},"$#==$S2":{token:"regexp.delim",next:"@push"},"@default":"regexp"}}]],regexpModifiers:[[/[msixpodualngcer]+/,{token:"regexp.modifier",next:"@popall"}]],qqstring:[{include:"@variables"},{include:"@qstring"}],heredoc:[[/<<\s*['"`]?([\w\-]+)['"`]?/,{token:"string.heredoc.delimiter",next:"@heredocBody.$1"}]],heredocBody:[[/^([\w\-]+)$/,{cases:{"$1==$S2":[{token:"string.heredoc.delimiter",next:"@popall"}],"@default":"string.heredoc"}}],[/./,"string.heredoc"]],perldoc:[[/^=\w/,"comment.doc","@perldocBody"]],perldocBody:[[/^=cut\b/,"type.identifier","@popall"],[/./,"comment.doc"]],variables:[[/\$\w+/,"variable"],[/@\w+/,"variable"],[/%\w+/,"variable"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8070.b2932ef2.js.LICENSE.txt b/assets/js/8070.b2932ef2.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8070.b2932ef2.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8070.e9befa07.js b/assets/js/8070.e9befa07.js new file mode 100644 index 00000000000..c04b2dab540 --- /dev/null +++ b/assets/js/8070.e9befa07.js @@ -0,0 +1,618 @@ +"use strict"; +exports.id = 8070; +exports.ids = [8070]; +exports.modules = { + +/***/ 8070: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/perl/perl.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".perl", + brackets: [ + { token: "delimiter.bracket", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" } + ], + keywords: [ + "__DATA__", + "else", + "lock", + "__END__", + "elsif", + "lt", + "__FILE__", + "eq", + "__LINE__", + "exp", + "ne", + "sub", + "__PACKAGE__", + "for", + "no", + "and", + "foreach", + "or", + "unless", + "cmp", + "ge", + "package", + "until", + "continue", + "gt", + "while", + "CORE", + "if", + "xor", + "do", + "le", + "__DIE__", + "__WARN__" + ], + builtinFunctions: [ + "-A", + "END", + "length", + "setpgrp", + "-B", + "endgrent", + "link", + "setpriority", + "-b", + "endhostent", + "listen", + "setprotoent", + "-C", + "endnetent", + "local", + "setpwent", + "-c", + "endprotoent", + "localtime", + "setservent", + "-d", + "endpwent", + "log", + "setsockopt", + "-e", + "endservent", + "lstat", + "shift", + "-f", + "eof", + "map", + "shmctl", + "-g", + "eval", + "mkdir", + "shmget", + "-k", + "exec", + "msgctl", + "shmread", + "-l", + "exists", + "msgget", + "shmwrite", + "-M", + "exit", + "msgrcv", + "shutdown", + "-O", + "fcntl", + "msgsnd", + "sin", + "-o", + "fileno", + "my", + "sleep", + "-p", + "flock", + "next", + "socket", + "-r", + "fork", + "not", + "socketpair", + "-R", + "format", + "oct", + "sort", + "-S", + "formline", + "open", + "splice", + "-s", + "getc", + "opendir", + "split", + "-T", + "getgrent", + "ord", + "sprintf", + "-t", + "getgrgid", + "our", + "sqrt", + "-u", + "getgrnam", + "pack", + "srand", + "-w", + "gethostbyaddr", + "pipe", + "stat", + "-W", + "gethostbyname", + "pop", + "state", + "-X", + "gethostent", + "pos", + "study", + "-x", + "getlogin", + "print", + "substr", + "-z", + "getnetbyaddr", + "printf", + "symlink", + "abs", + "getnetbyname", + "prototype", + "syscall", + "accept", + "getnetent", + "push", + "sysopen", + "alarm", + "getpeername", + "quotemeta", + "sysread", + "atan2", + "getpgrp", + "rand", + "sysseek", + "AUTOLOAD", + "getppid", + "read", + "system", + "BEGIN", + "getpriority", + "readdir", + "syswrite", + "bind", + "getprotobyname", + "readline", + "tell", + "binmode", + "getprotobynumber", + "readlink", + "telldir", + "bless", + "getprotoent", + "readpipe", + "tie", + "break", + "getpwent", + "recv", + "tied", + "caller", + "getpwnam", + "redo", + "time", + "chdir", + "getpwuid", + "ref", + "times", + "CHECK", + "getservbyname", + "rename", + "truncate", + "chmod", + "getservbyport", + "require", + "uc", + "chomp", + "getservent", + "reset", + "ucfirst", + "chop", + "getsockname", + "return", + "umask", + "chown", + "getsockopt", + "reverse", + "undef", + "chr", + "glob", + "rewinddir", + "UNITCHECK", + "chroot", + "gmtime", + "rindex", + "unlink", + "close", + "goto", + "rmdir", + "unpack", + "closedir", + "grep", + "say", + "unshift", + "connect", + "hex", + "scalar", + "untie", + "cos", + "index", + "seek", + "use", + "crypt", + "INIT", + "seekdir", + "utime", + "dbmclose", + "int", + "select", + "values", + "dbmopen", + "ioctl", + "semctl", + "vec", + "defined", + "join", + "semget", + "wait", + "delete", + "keys", + "semop", + "waitpid", + "DESTROY", + "kill", + "send", + "wantarray", + "die", + "last", + "setgrent", + "warn", + "dump", + "lc", + "sethostent", + "write", + "each", + "lcfirst", + "setnetent" + ], + builtinFileHandlers: ["ARGV", "STDERR", "STDOUT", "ARGVOUT", "STDIN", "ENV"], + builtinVariables: [ + "$!", + "$^RE_TRIE_MAXBUF", + "$LAST_REGEXP_CODE_RESULT", + '$"', + "$^S", + "$LIST_SEPARATOR", + "$#", + "$^T", + "$MATCH", + "$$", + "$^TAINT", + "$MULTILINE_MATCHING", + "$%", + "$^UNICODE", + "$NR", + "$&", + "$^UTF8LOCALE", + "$OFMT", + "$'", + "$^V", + "$OFS", + "$(", + "$^W", + "$ORS", + "$)", + "$^WARNING_BITS", + "$OS_ERROR", + "$*", + "$^WIDE_SYSTEM_CALLS", + "$OSNAME", + "$+", + "$^X", + "$OUTPUT_AUTO_FLUSH", + "$,", + "$_", + "$OUTPUT_FIELD_SEPARATOR", + "$-", + "$`", + "$OUTPUT_RECORD_SEPARATOR", + "$.", + "$a", + "$PERL_VERSION", + "$/", + "$ACCUMULATOR", + "$PERLDB", + "$0", + "$ARG", + "$PID", + "$:", + "$ARGV", + "$POSTMATCH", + "$;", + "$b", + "$PREMATCH", + "$<", + "$BASETIME", + "$PROCESS_ID", + "$=", + "$CHILD_ERROR", + "$PROGRAM_NAME", + "$>", + "$COMPILING", + "$REAL_GROUP_ID", + "$?", + "$DEBUGGING", + "$REAL_USER_ID", + "$@", + "$EFFECTIVE_GROUP_ID", + "$RS", + "$[", + "$EFFECTIVE_USER_ID", + "$SUBSCRIPT_SEPARATOR", + "$\\", + "$EGID", + "$SUBSEP", + "$]", + "$ERRNO", + "$SYSTEM_FD_MAX", + "$^", + "$EUID", + "$UID", + "$^A", + "$EVAL_ERROR", + "$WARNING", + "$^C", + "$EXCEPTIONS_BEING_CAUGHT", + "$|", + "$^CHILD_ERROR_NATIVE", + "$EXECUTABLE_NAME", + "$~", + "$^D", + "$EXTENDED_OS_ERROR", + "%!", + "$^E", + "$FORMAT_FORMFEED", + "%^H", + "$^ENCODING", + "$FORMAT_LINE_BREAK_CHARACTERS", + "%ENV", + "$^F", + "$FORMAT_LINES_LEFT", + "%INC", + "$^H", + "$FORMAT_LINES_PER_PAGE", + "%OVERLOAD", + "$^I", + "$FORMAT_NAME", + "%SIG", + "$^L", + "$FORMAT_PAGE_NUMBER", + "@+", + "$^M", + "$FORMAT_TOP_NAME", + "@-", + "$^N", + "$GID", + "@_", + "$^O", + "$INPLACE_EDIT", + "@ARGV", + "$^OPEN", + "$INPUT_LINE_NUMBER", + "@INC", + "$^P", + "$INPUT_RECORD_SEPARATOR", + "@LAST_MATCH_START", + "$^R", + "$LAST_MATCH_END", + "$^RE_DEBUG_FLAGS", + "$LAST_PAREN_MATCH" + ], + symbols: /[:+\-\^*$&%@=<>!?|\/~\.]/, + quoteLikeOps: ["qr", "m", "s", "q", "qq", "qx", "qw", "tr", "y"], + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + { include: "@whitespace" }, + [ + /[a-zA-Z\-_][\w\-_]*/, + { + cases: { + "@keywords": "keyword", + "@builtinFunctions": "type.identifier", + "@builtinFileHandlers": "variable.predefined", + "@quoteLikeOps": { + token: "@rematch", + next: "quotedConstructs" + }, + "@default": "" + } + } + ], + [ + /[\$@%][*@#?\+\-\$!\w\\\^><~:;\.]+/, + { + cases: { + "@builtinVariables": "variable.predefined", + "@default": "variable" + } + } + ], + { include: "@strings" }, + { include: "@dblStrings" }, + { include: "@perldoc" }, + { include: "@heredoc" }, + [/[{}\[\]()]/, "@brackets"], + [/[\/](?:(?:\[(?:\\]|[^\]])+\])|(?:\\\/|[^\]\/]))*[\/]\w*\s*(?=[).,;]|$)/, "regexp"], + [/@symbols/, "operators"], + { include: "@numbers" }, + [/[,;]/, "delimiter"] + ], + whitespace: [ + [/\s+/, "white"], + [/(^#!.*$)/, "metatag"], + [/(^#.*$)/, "comment"] + ], + numbers: [ + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"], + [/\d+/, "number"] + ], + strings: [[/'/, "string", "@stringBody"]], + stringBody: [ + [/'/, "string", "@popall"], + [/\\'/, "string.escape"], + [/./, "string"] + ], + dblStrings: [[/"/, "string", "@dblStringBody"]], + dblStringBody: [ + [/"/, "string", "@popall"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + { include: "@variables" }, + [/./, "string"] + ], + quotedConstructs: [ + [/(q|qw|tr|y)\s*\(/, { token: "string.delim", switchTo: "@qstring.(.)" }], + [/(q|qw|tr|y)\s*\[/, { token: "string.delim", switchTo: "@qstring.[.]" }], + [/(q|qw|tr|y)\s*\{/, { token: "string.delim", switchTo: "@qstring.{.}" }], + [/(q|qw|tr|y)\s*</, { token: "string.delim", switchTo: "@qstring.<.>" }], + [/(q|qw|tr|y)#/, { token: "string.delim", switchTo: "@qstring.#.#" }], + [/(q|qw|tr|y)\s*([^A-Za-z0-9#\s])/, { token: "string.delim", switchTo: "@qstring.$2.$2" }], + [/(q|qw|tr|y)\s+(\w)/, { token: "string.delim", switchTo: "@qstring.$2.$2" }], + [/(qr|m|s)\s*\(/, { token: "regexp.delim", switchTo: "@qregexp.(.)" }], + [/(qr|m|s)\s*\[/, { token: "regexp.delim", switchTo: "@qregexp.[.]" }], + [/(qr|m|s)\s*\{/, { token: "regexp.delim", switchTo: "@qregexp.{.}" }], + [/(qr|m|s)\s*</, { token: "regexp.delim", switchTo: "@qregexp.<.>" }], + [/(qr|m|s)#/, { token: "regexp.delim", switchTo: "@qregexp.#.#" }], + [/(qr|m|s)\s*([^A-Za-z0-9_#\s])/, { token: "regexp.delim", switchTo: "@qregexp.$2.$2" }], + [/(qr|m|s)\s+(\w)/, { token: "regexp.delim", switchTo: "@qregexp.$2.$2" }], + [/(qq|qx)\s*\(/, { token: "string.delim", switchTo: "@qqstring.(.)" }], + [/(qq|qx)\s*\[/, { token: "string.delim", switchTo: "@qqstring.[.]" }], + [/(qq|qx)\s*\{/, { token: "string.delim", switchTo: "@qqstring.{.}" }], + [/(qq|qx)\s*</, { token: "string.delim", switchTo: "@qqstring.<.>" }], + [/(qq|qx)#/, { token: "string.delim", switchTo: "@qqstring.#.#" }], + [/(qq|qx)\s*([^A-Za-z0-9#\s])/, { token: "string.delim", switchTo: "@qqstring.$2.$2" }], + [/(qq|qx)\s+(\w)/, { token: "string.delim", switchTo: "@qqstring.$2.$2" }] + ], + qstring: [ + [/\\./, "string.escape"], + [ + /./, + { + cases: { + "$#==$S3": { token: "string.delim", next: "@pop" }, + "$#==$S2": { token: "string.delim", next: "@push" }, + "@default": "string" + } + } + ] + ], + qregexp: [ + { include: "@variables" }, + [/\\./, "regexp.escape"], + [ + /./, + { + cases: { + "$#==$S3": { + token: "regexp.delim", + next: "@regexpModifiers" + }, + "$#==$S2": { token: "regexp.delim", next: "@push" }, + "@default": "regexp" + } + } + ] + ], + regexpModifiers: [[/[msixpodualngcer]+/, { token: "regexp.modifier", next: "@popall" }]], + qqstring: [{ include: "@variables" }, { include: "@qstring" }], + heredoc: [ + [/<<\s*['"`]?([\w\-]+)['"`]?/, { token: "string.heredoc.delimiter", next: "@heredocBody.$1" }] + ], + heredocBody: [ + [ + /^([\w\-]+)$/, + { + cases: { + "$1==$S2": [ + { + token: "string.heredoc.delimiter", + next: "@popall" + } + ], + "@default": "string.heredoc" + } + } + ], + [/./, "string.heredoc"] + ], + perldoc: [[/^=\w/, "comment.doc", "@perldocBody"]], + perldocBody: [ + [/^=cut\b/, "type.identifier", "@popall"], + [/./, "comment.doc"] + ], + variables: [ + [/\$\w+/, "variable"], + [/@\w+/, "variable"], + [/%\w+/, "variable"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8071.e0b453f4.js b/assets/js/8071.e0b453f4.js new file mode 100644 index 00000000000..db26ff26d29 --- /dev/null +++ b/assets/js/8071.e0b453f4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8071],{68071:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>m});var o=n(87462),a=(n(67294),n(3905));const i={title:"New Implementation of Unions and Intersections","short-title":"New Unions and Intersections",author:"Sam Goldman",hide_table_of_contents:!0},s=void 0,r={permalink:"/blog/2016/07/01/New-Unions-Intersections",source:"@site/blog/2016-07-01-New-Unions-Intersections.md",title:"New Implementation of Unions and Intersections",description:"Summary",date:"2016-07-01T00:00:00.000Z",formattedDate:"July 1, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"New Implementation of Unions and Intersections","short-title":"New Unions and Intersections",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Windows Support is Here!",permalink:"/blog/2016/08/01/Windows-Support"},nextItem:{title:"Version 0.21.0",permalink:"/blog/2016/02/02/Version-0.21.0"}},l={authorsImageUrls:[void 0]},m=[{value:"Summary",id:"summary",level:3},{value:"New Error Messages",id:"new-error-messages",level:3},{value:"Actions Needed",id:"actions-needed",level:3},{value:"Problem",id:"problem",level:3},{value:"Solution",id:"solution",level:3}],d={toc:m};function h(e){let{components:t,...n}=e;return(0,a.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.mdx)("h3",{id:"summary"},"Summary"),(0,a.mdx)("p",null,"Before Flow 0.28, the implementation of union/intersection types had serious\nbugs and was ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1759"},"the")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1664"},"root")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1663"},"cause")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1462"},"of"),"\n",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1455"},"a")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1371"},"lot")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/1349"},"of")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/824"},"weird")," ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/815"},"behaviors")," you\nmay have run into with Flow in the past. These bugs have now been addressed in\n",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/commit/2df7671e7bda770b95e6b1eaede96d7a8ab1f2ac"},"a diff landing in 0.28"),"."),(0,a.mdx)("p",null,"As you might expect after a major rewrite of a tricky part of the type system\nimplementation, there will be a short period of adjustment: you may run into\nkinks that we will try to iron out promptly, and you may run into some\nunfamiliar error messages."),(0,a.mdx)("h3",{id:"new-error-messages"},"New Error Messages"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"<error location> Could not decide which case to select\n<location of union/intersection type>\n\n Case 1 may work:\n <location of 1st case of union/intersection type>\n\n But if it doesn't, case 2 looks promising too:\n <location of 2nd case of union/intersection type>\n\n Please provide additional annotation(s) to determine whether case 1 works\n (or consider merging it with case 2):\n <location to annotate>\n <location to annotate>\n ...\n")),(0,a.mdx)("p",null,"What this means is that at ",(0,a.mdx)("inlineCode",{parentName:"p"},"<error location>"),", Flow needs to make a choice: one\nof the members of the union/intersection type at\n",(0,a.mdx)("inlineCode",{parentName:"p"},"<location of union/intersection type>")," must be applied, but Flow can't choose\nsafely based on available information. In particular, it cannot decide between\ncase ",(0,a.mdx)("inlineCode",{parentName:"p"},"1")," and ",(0,a.mdx)("inlineCode",{parentName:"p"},"2"),", so Flow lists a bunch of annotations that can help it\ndisambiguate the two cases."),(0,a.mdx)("h3",{id:"actions-needed"},"Actions Needed"),(0,a.mdx)("p",null,"You can fix the errors in two ways:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"Actually go and annotate the listed locations. This should be by far the most\ncommon fix."),(0,a.mdx)("li",{parentName:"ul"},"Discover that there is real, unintentional ambiguity between case 1 and 2,\nand rewrite the two cases in the union type to remove the ambiguity. When\nthis happens, typically it will fix a large number of errors.")),(0,a.mdx)("p",null,"There are two more possibilities, however:"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"There's no real ambiguity and Flow is being too conservative / dumb. In this\ncase, go ahead and do the annotations anyway and file an issue on GitHub. We\nplan to do a lot of short-term follow-up work to disambiguate more cases\nautomatically, so over time you should see less of (3)."),(0,a.mdx)("li",{parentName:"ul"},"You have no idea what's going on. The cases being pointed to don't make sense.\nThey don't correspond to what you have at ",(0,a.mdx)("inlineCode",{parentName:"li"},"<error location>"),". Hopefully you\nwon't run into (4) too often, but if you do ",(0,a.mdx)("strong",{parentName:"li"},"please file an issue"),", since\nthis means there are still latent bugs in the implementation.")),(0,a.mdx)("p",null,"If you file an issue on GitHub, please include code to reproduce the issue. You\ncan use ",(0,a.mdx)("a",{parentName:"p",href:"https://flowtype.org/try/"},"Try Flow")," to share your repro case easily."),(0,a.mdx)("p",null,"If you're curious about the whys and hows of these new error messages, here's\nan excerpt from the commit message of the \"fate of the union\" diff:"),(0,a.mdx)("h3",{id:"problem"},"Problem"),(0,a.mdx)("p",null,"Flow's inference engine is designed to find more errors over time as\nconstraints are added...but it is not designed to backtrack. Unfortunately,\nchecking the type of an expression against a union type does need backtracking:\nif some branch of the union doesn't work out, the next branch must be tried,\nand so on. (The same is true for checks that involve intersection types.)"),(0,a.mdx)("p",null,"The situation is further complicated by the fact that the type of the\nexpression may not be completely known at the point of checking, so that a\nbranch that looks promising now might turn out to be incorrect later."),(0,a.mdx)("h3",{id:"solution"},"Solution"),(0,a.mdx)("p",null,"The basic idea is to delay trying a branch until a point where we can decide\nwhether the branch will definitely fail or succeed, without further\ninformation. If trying a branch results in failure, we can move on to the next\nbranch without needing to backtrack. If a branch succeeds, we are done. The\nfinal case is where the branch looks promising, but we cannot be sure without\nadding constraints: in this case we try other branches, and ",(0,a.mdx)("em",{parentName:"p"},"bail")," when we run\ninto ambiguities...requesting additional annotations to decide which branch to\nselect. Overall, this means that (1) we never commit to a branch that might\nturn out to be incorrect and (2) can always select a correct branch (if such\nexists) given enough annotations."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8073.856ade5f.js b/assets/js/8073.856ade5f.js new file mode 100644 index 00000000000..33f83e5e44b --- /dev/null +++ b/assets/js/8073.856ade5f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8073],{88073:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>m});var a=t(87462),s=(t(67294),t(3905));t(45475);const l={title:"Enabling enums in your project",slug:"/enums/enabling-enums"},i=void 0,o={unversionedId:"enums/enabling-enums",id:"enums/enabling-enums",title:"Enabling enums in your project",description:"Upgrade tooling",source:"@site/docs/enums/enabling-enums.md",sourceDirName:"enums",slug:"/enums/enabling-enums",permalink:"/en/docs/enums/enabling-enums",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/enums/enabling-enums.md",tags:[],version:"current",frontMatter:{title:"Enabling enums in your project",slug:"/enums/enabling-enums"},sidebar:"docsSidebar",previous:{title:"Flow Enums",permalink:"/en/docs/enums"},next:{title:"Defining enums",permalink:"/en/docs/enums/defining-enums"}},r={},m=[{value:"Upgrade tooling",id:"toc-upgrade-tooling",level:2},{value:"Enable enums",id:"toc-enable-enums",level:2},{value:"Enable suggested ESLint rules",id:"toc-enable-suggested-eslint-rules",level:2}],u={toc:m};function d(e){let{components:n,...t}=e;return(0,s.mdx)("wrapper",(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,s.mdx)("h2",{id:"toc-upgrade-tooling"},"Upgrade tooling"),(0,s.mdx)("p",null,"To enable Flow Enums in your repo, you must first update the following packages:"),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},"Upgrade to at least Flow 0.159",(0,s.mdx)("ul",{parentName:"li"},(0,s.mdx)("li",{parentName:"ul"},"Flow needs to have some configuration set to enable enums - see below."))),(0,s.mdx)("li",{parentName:"ul"},"Upgrade ",(0,s.mdx)("a",{parentName:"li",href:"https://prettier.io/"},"Prettier")," to at least version 2.2",(0,s.mdx)("ul",{parentName:"li"},(0,s.mdx)("li",{parentName:"ul"},"As of that version, Prettier can handle parsing and pretty printing Flow Enums out of the box."),(0,s.mdx)("li",{parentName:"ul"},"You must use the ",(0,s.mdx)("inlineCode",{parentName:"li"},"flow")," ",(0,s.mdx)("a",{parentName:"li",href:"https://prettier.io/docs/en/options.html#parser"},"parser option")," for JavaScript files to be able to format Flow Enums."))),(0,s.mdx)("li",{parentName:"ul"},"Upgrade ",(0,s.mdx)("a",{parentName:"li",href:"https://babeljs.io/"},"Babel")," to at least version 7.13.0",(0,s.mdx)("ul",{parentName:"li"},(0,s.mdx)("li",{parentName:"ul"},"As of that version, Babel can parse Flow Enums. However, to enable this parsing some configuration needs to be supplied,\nand additionally it does not include the transform required - see below."))),(0,s.mdx)("li",{parentName:"ul"},"Upgrade ",(0,s.mdx)("a",{parentName:"li",href:"https://github.com/facebook/jscodeshift"},"jscodeshift")," to at least version 0.11.0"),(0,s.mdx)("li",{parentName:"ul"},"Upgrade ",(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/hermes-parser"},"hermes-parser")," to at least version 0.4.8"),(0,s.mdx)("li",{parentName:"ul"},"For ESLint, either:",(0,s.mdx)("ul",{parentName:"li"},(0,s.mdx)("li",{parentName:"ul"},"Use ",(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/hermes-eslint"},"hermes-eslint")," as your ESLint parser, at least version 0.4.8"),(0,s.mdx)("li",{parentName:"ul"},"Or upgrade ",(0,s.mdx)("a",{parentName:"li",href:"https://github.com/babel/babel-eslint"},"babel-eslint")," to version 10.1.0",(0,s.mdx)("ul",{parentName:"li"},(0,s.mdx)("li",{parentName:"ul"},"As of that version, ",(0,s.mdx)("inlineCode",{parentName:"li"},"babel-eslint")," can handle Flow Enums out of the box."),(0,s.mdx)("li",{parentName:"ul"},"Do not upgrade to 11.x, this branch does not support Flow Enums."))),(0,s.mdx)("li",{parentName:"ul"},"Or use another solution using Babel 7.13.0 or later, with Flow enabled - this may also work")))),(0,s.mdx)("p",null,"If you have any other tool which examines your code, you need to update it as well. If it uses ",(0,s.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/flow-parser"},"flow-parser"),",\n",(0,s.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/hermes-parser"},"hermes-parser")," or ",(0,s.mdx)("inlineCode",{parentName:"p"},"@babel/parser"),", upgrade those as per the instructions above.\nIf it uses some other parser, you will need to implement parsing Flow Enums in that parser. You can look at the existing code in Babel, Flow, and Hermes parsers to guide your work."),(0,s.mdx)("h2",{id:"toc-enable-enums"},"Enable enums"),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},"In your ",(0,s.mdx)("inlineCode",{parentName:"li"},".flowconfig"),", under the ",(0,s.mdx)("inlineCode",{parentName:"li"},"[options]")," heading, add ",(0,s.mdx)("inlineCode",{parentName:"li"},"enums=true")),(0,s.mdx)("li",{parentName:"ul"},"Add the Flow Enums Babel transform. It turns enum declaration AST nodes into calls to the runtime:\n",(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/babel-plugin-transform-flow-enums"},"babel-plugin-transform-flow-enums"),".\nAdd it to your development dependencies and adjust your Babel configuration to use the transform.\nThe transform by default requires the runtime package directly (below), but you can configure this."),(0,s.mdx)("li",{parentName:"ul"},"Add the Flow Enum runtime package to your production dependencies.\nThis will be required and used at runtime to create Flow Enums: ",(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/flow-enums-runtime"},"flow-enums-runtime"))),(0,s.mdx)("h2",{id:"toc-enable-suggested-eslint-rules"},"Enable suggested ESLint rules"),(0,s.mdx)("p",null,"Enums can be exhaustively checked in ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statements, so may increase the use of ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statements compared to before.\nTo prevent common issues with ",(0,s.mdx)("inlineCode",{parentName:"p"},"switch")," statements, we suggest you enable these ESLint rules (at least as warnings):"),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},(0,s.mdx)("a",{parentName:"li",href:"https://eslint.org/docs/rules/no-fallthrough"},"no-fallthrough"),":\nThis prevents the user from accidentally forgetting a ",(0,s.mdx)("inlineCode",{parentName:"li"},"break")," statement at the end of their switch case, while supporting common use-cases."),(0,s.mdx)("li",{parentName:"ul"},(0,s.mdx)("a",{parentName:"li",href:"https://eslint.org/docs/rules/no-case-declarations"},"no-case-declarations"),":\nThis prevents lexicaly scoped declarations (",(0,s.mdx)("inlineCode",{parentName:"li"},"let"),", ",(0,s.mdx)("inlineCode",{parentName:"li"},"const"),") from being introduced in a switch case, without wrapping that case in a new block.\nOtherwise, declarations in different cases could conflict.")),(0,s.mdx)("p",null,"We also have some Flow Enums specific rules as part of ",(0,s.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/eslint-plugin-fb-flow"},"eslint-plugin-fb-flow"),":"),(0,s.mdx)("ul",null,(0,s.mdx)("li",{parentName:"ul"},(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-fb-flow#use-flow-enums"},"use-flow-enums"),":\nSuggests that enum-like ",(0,s.mdx)("inlineCode",{parentName:"li"},"Object.freeze")," and ",(0,s.mdx)("inlineCode",{parentName:"li"},"keyMirror")," usage be turned into Flow Enums instead."),(0,s.mdx)("li",{parentName:"ul"},(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-fb-flow#flow-enums-default-if-possible"},"flow-enums-default-if-possible"),":\nAuto-fixes string enums with specified values identical to the member names to defaulted enums."),(0,s.mdx)("li",{parentName:"ul"},(0,s.mdx)("a",{parentName:"li",href:"https://www.npmjs.com/package/eslint-plugin-fb-flow#no-flow-enums-object-mapping"},"no-flow-enums-object-mapping"),":\nSuggests using a function with a switch to map enum values to other values, instead of an object literal.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8084.1629b62c.js b/assets/js/8084.1629b62c.js new file mode 100644 index 00000000000..092731053d4 --- /dev/null +++ b/assets/js/8084.1629b62c.js @@ -0,0 +1,2 @@ +/*! For license information please see 8084.1629b62c.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8084],{98084:(e,o,n)=>{n.r(o),n.d(o,{conf:()=>t,language:()=>s});var t={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"}]},s={defaultToken:"",tokenPostfix:".pascaligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["begin","block","case","const","else","end","fail","for","from","function","if","is","nil","of","remove","return","skip","then","type","var","while","with","option","None","transaction"],typeKeywords:["bool","int","list","map","nat","record","string","unit","address","map","mtz","xtz"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8084.1629b62c.js.LICENSE.txt b/assets/js/8084.1629b62c.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8084.1629b62c.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8084.1c54978e.js b/assets/js/8084.1c54978e.js new file mode 100644 index 00000000000..e916281f22a --- /dev/null +++ b/assets/js/8084.1c54978e.js @@ -0,0 +1,177 @@ +"use strict"; +exports.id = 8084; +exports.ids = [8084]; +exports.modules = { + +/***/ 98084: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/pascaligo/pascaligo.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".pascaligo", + ignoreCase: true, + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + keywords: [ + "begin", + "block", + "case", + "const", + "else", + "end", + "fail", + "for", + "from", + "function", + "if", + "is", + "nil", + "of", + "remove", + "return", + "skip", + "then", + "type", + "var", + "while", + "with", + "option", + "None", + "transaction" + ], + typeKeywords: [ + "bool", + "int", + "list", + "map", + "nat", + "record", + "string", + "unit", + "address", + "map", + "mtz", + "xtz" + ], + operators: [ + "=", + ">", + "<", + "<=", + ">=", + "<>", + ":", + ":=", + "and", + "mod", + "or", + "+", + "-", + "*", + "/", + "@", + "&", + "^", + "%" + ], + symbols: /[=><:@\^&|+\-*\/\^%]+/, + tokenizer: { + root: [ + [ + /[a-zA-Z_][\w]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/\$[0-9a-fA-F]{1,16}/, "number.hex"], + [/\d+/, "number"], + [/[;,.]/, "delimiter"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/'/, "string", "@string"], + [/'[^\\']'/, "string"], + [/'/, "string.invalid"], + [/\#\d+/, "string"] + ], + comment: [ + [/[^\(\*]+/, "comment"], + [/\*\)/, "comment", "@pop"], + [/\(\*/, "comment"] + ], + string: [ + [/[^\\']+/, "string"], + [/\\./, "string.escape.invalid"], + [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\(\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8118.3febc31b.js b/assets/js/8118.3febc31b.js new file mode 100644 index 00000000000..140811e1dcd --- /dev/null +++ b/assets/js/8118.3febc31b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8118],{48118:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>l,contentTitle:()=>d,default:()=>u,frontMatter:()=>n,metadata:()=>s,toc:()=>p});var a=o(87462),r=(o(67294),o(3905));const n={title:"How to upgrade to exact-by-default object type syntax","short-title":"Upgrade to exact-by-default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/how-to-upgrade-to-exact-by-default-object-type-syntax-7aa44b4d08ab"},d=void 0,s={permalink:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax",source:"@site/blog/2020-01-29-How-to-Upgrade-to-exact-by-default-object-type-syntax.md",title:"How to upgrade to exact-by-default object type syntax",description:"Object types will become exact-by-default. Read this post to learn how to get your code ready!",date:"2020-01-29T00:00:00.000Z",formattedDate:"January 29, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"How to upgrade to exact-by-default object type syntax","short-title":"Upgrade to exact-by-default",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/how-to-upgrade-to-exact-by-default-object-type-syntax-7aa44b4d08ab"},prevItem:{title:"Improvements to Flow in 2019",permalink:"/blog/2020/02/19/Improvements-to-Flow-in-2019"},nextItem:{title:"Spreads: Common Errors & Fixes",permalink:"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes"}},l={authorsImageUrls:[void 0]},p=[],c={toc:p};function u(t){let{components:e,...o}=t;return(0,r.mdx)("wrapper",(0,a.Z)({},c,o,{components:e,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Object types will become exact-by-default. Read this post to learn how to get your code ready!"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/813.efa2999f.js b/assets/js/813.efa2999f.js new file mode 100644 index 00000000000..2ed54b476be --- /dev/null +++ b/assets/js/813.efa2999f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[813],{10813:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>r,toc:()=>m});var i=t(87462),a=(t(67294),t(3905));t(45475);const l={title:"Vim",slug:"/editors/vim"},o=void 0,r={unversionedId:"editors/vim",id:"editors/vim",title:"Vim",description:"Flow's editor integration is primarily via the Language Server Protocol. There are many vim LSP clients to choose from, such as ALE.",source:"@site/docs/editors/vim.md",sourceDirName:"editors",slug:"/editors/vim",permalink:"/en/docs/editors/vim",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/vim.md",tags:[],version:"current",frontMatter:{title:"Vim",slug:"/editors/vim"},sidebar:"docsSidebar",previous:{title:"Sublime Text",permalink:"/en/docs/editors/sublime-text"},next:{title:"Emacs",permalink:"/en/docs/editors/emacs"}},s={},m=[{value:"ALE",id:"toc-ale",level:2},{value:"Installation",id:"toc-installation",level:3},{value:"coc.nvim-neovim",id:"toc-coc-nvim-neovim",level:2},{value:"Setup",id:"toc-setup",level:3},{value:"LanguageClient-neovim",id:"toc-languageclient-neovim",level:2},{value:"Requirements",id:"toc-requirements",level:3},{value:"Pathogen",id:"toc-pathogen",level:3},{value:"NeoBundle",id:"toc-neobundle",level:3},{value:"VimPlug",id:"toc-vimplug",level:3},{value:"Setup",id:"toc-setup",level:3}],u={toc:m};function d(e){let{components:n,...t}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow's editor integration is primarily via the ",(0,a.mdx)("a",{parentName:"p",href:"https://microsoft.github.io/language-server-protocol/"},"Language Server Protocol"),". There are ",(0,a.mdx)("a",{parentName:"p",href:"https://microsoft.github.io/language-server-protocol/implementors/tools/"},"many vim LSP clients")," to choose from, such as ",(0,a.mdx)("a",{parentName:"p",href:"#toc-ale"},"ALE"),"."),(0,a.mdx)("h2",{id:"toc-ale"},"ALE"),(0,a.mdx)("p",null,"The Asynchronous Lint Engine (ALE) plugin for Vim 8+ and NeoVim, ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/w0rp/ale"},"vim-ale"),", is a generalized linting engine with support for Flow and many other tools."),(0,a.mdx)("h3",{id:"toc-installation"},"Installation"),(0,a.mdx)("p",null,"Follow the ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/w0rp/ale#3-installation"},"instructions")," in the ALE README."),(0,a.mdx)("p",null,"Configure ALE to use the ",(0,a.mdx)("inlineCode",{parentName:"p"},"flow-language-server")," linter for JavaScript files:"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"},"\" In ~/.vim/ftplugin/javascript.vim, or somewhere similar.\n\n\" Enables only Flow for JavaScript. See :ALEInfo for a list of other available\n\" linters. NOTE: the `flow` linter uses an old API; prefer `flow-language-server`.\nlet b:ale_linters = ['flow-language-server']\n\n\" Or in ~/.vim/vimrc:\nlet g:ale_linters = {\n\\ 'javascript': ['flow-language-server'],\n\\}\n")),(0,a.mdx)("h2",{id:"toc-coc-nvim-neovim"},"coc.nvim-neovim"),(0,a.mdx)("p",null,(0,a.mdx)("a",{parentName:"p",href:"https://github.com/neoclide/coc.nvim"},"Coc")," is an intellisense engine for vim8 & neovim."),(0,a.mdx)("h3",{id:"toc-setup"},"Setup"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"},"set nocompatible\nfiletype off\n\n\" install coc.nvim using Plug or preffered plugin manager\ncall plug#begin('~/.vim/plugged')\nPlug 'neoclide/coc.nvim', {'branch': 'release'}\ncall plug#end()\n\nfiletype plugin indent on\n\n\" ======= coc settings\nset updatetime=300\nset shortmess+=c\n\n\" Use leader T to show documentation in preview window\nnnoremap <leader>t :call <SID>show_documentation()<CR>\n\n\nfunction! s:show_documentation()\n if (index(['vim','help'], &filetype) >= 0)\n execute 'h '.expand('<cword>')\n else\n call CocAction('doHover')\n endif\nendfunction\n\n\" instead of having ~/.vim/coc-settings.json\nlet s:LSP_CONFIG = {\n\\ 'flow': {\n\\ 'command': exepath('flow'),\n\\ 'args': ['lsp'],\n\\ 'filetypes': ['javascript', 'javascriptreact'],\n\\ 'initializationOptions': {},\n\\ 'requireRootPattern': 1,\n\\ 'settings': {},\n\\ 'rootPatterns': ['.flowconfig']\n\\ }\n\\}\n\nlet s:languageservers = {}\nfor [lsp, config] in items(s:LSP_CONFIG)\n let s:not_empty_cmd = !empty(get(config, 'command'))\n if s:not_empty_cmd | let s:languageservers[lsp] = config | endif\nendfor\n\nif !empty(s:languageservers)\n call coc#config('languageserver', s:languageservers)\n endif\n")),(0,a.mdx)("h2",{id:"toc-languageclient-neovim"},"LanguageClient-neovim"),(0,a.mdx)("p",null,"Another way to add support for Flow in Vim is to use ",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/autozimu/LanguageClient-neovim"},"LanguageClient-neovim"),"."),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"Suports vim 8 and neovim"),(0,a.mdx)("li",{parentName:"ul"},"Adds completions to omnifunc"),(0,a.mdx)("li",{parentName:"ul"},"Checks JavaScript files for type errors on save"),(0,a.mdx)("li",{parentName:"ul"},"Look up types under cursor")),(0,a.mdx)("h3",{id:"toc-requirements"},"Requirements"),(0,a.mdx)("ul",null,(0,a.mdx)("li",{parentName:"ul"},"Requires Flow to be installed and available on your path."),(0,a.mdx)("li",{parentName:"ul"},"Requires projects containing JavaScript files to be initialised with flow init."),(0,a.mdx)("li",{parentName:"ul"},"Requires JavaScript files to be marked with /",(0,a.mdx)("em",{parentName:"li"}," @flow "),"/ at the top.")),(0,a.mdx)("h3",{id:"toc-pathogen"},"Pathogen"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-sh"},"cd ~/.vim/bundle\ngit clone git://github.com/autozimu/LanguageClient-neovim.git\n")),(0,a.mdx)("h3",{id:"toc-neobundle"},"NeoBundle"),(0,a.mdx)("p",null,"Add this to your ~/.vimrc"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"}," NeoBundleLazy 'autozimu/LanguageClient-neovim', {\n \\ 'autoload': {\n \\ 'filetypes': 'javascript'\n \\ }}\n")),(0,a.mdx)("p",null,"With Flow build step, using flow-bin"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"}," NeoBundleLazy 'autozimu/LanguageClient-neovim', {\n \\ 'autoload': {\n \\ 'filetypes': 'javascript'\n \\ },\n \\ 'build': {\n \\ 'mac': 'npm install -g flow-bin',\n \\ 'unix': 'npm install -g flow-bin'\n \\ }}\n")),(0,a.mdx)("h3",{id:"toc-vimplug"},"VimPlug"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"}," Plug 'autozimu/LanguageClient-neovim', {\n \\ 'branch': 'next',\n \\ 'do': 'bash install.sh && npm install -g flow-bin',\n \\ }\n")),(0,a.mdx)("h3",{id:"toc-setup"},"Setup"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-vim"},"let g:LanguageClient_rootMarkers = {\n\\ 'javascript': ['.flowconfig', 'package.json']\n\\ }\nlet g:LanguageClient_serverCommands={\n\\ 'javascript': ['flow', 'lsp'],\n\\ 'javascript.jsx': ['flow', 'lsp']\n\\}\n\n\" check the type under cursor w/ leader T\nnnoremap <leader>t :call LanguageClient_textDocument_hover()<CR>\nnnoremap <leader>y :call LanguageClient_textDocument_definition()<CR>\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8180.71c4e4e9.js b/assets/js/8180.71c4e4e9.js new file mode 100644 index 00000000000..bd2846f5c5b --- /dev/null +++ b/assets/js/8180.71c4e4e9.js @@ -0,0 +1,563 @@ +"use strict"; +exports.id = 8180; +exports.ids = [8180]; +exports.modules = { + +/***/ 48180: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/postiats/postiats.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "{", close: "}", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] } + ] +}; +var language = { + tokenPostfix: ".pats", + defaultToken: "invalid", + keywords: [ + "abstype", + "abst0ype", + "absprop", + "absview", + "absvtype", + "absviewtype", + "absvt0ype", + "absviewt0ype", + "as", + "and", + "assume", + "begin", + "classdec", + "datasort", + "datatype", + "dataprop", + "dataview", + "datavtype", + "dataviewtype", + "do", + "end", + "extern", + "extype", + "extvar", + "exception", + "fn", + "fnx", + "fun", + "prfn", + "prfun", + "praxi", + "castfn", + "if", + "then", + "else", + "ifcase", + "in", + "infix", + "infixl", + "infixr", + "prefix", + "postfix", + "implmnt", + "implement", + "primplmnt", + "primplement", + "import", + "let", + "local", + "macdef", + "macrodef", + "nonfix", + "symelim", + "symintr", + "overload", + "of", + "op", + "rec", + "sif", + "scase", + "sortdef", + "sta", + "stacst", + "stadef", + "static", + "staload", + "dynload", + "try", + "tkindef", + "typedef", + "propdef", + "viewdef", + "vtypedef", + "viewtypedef", + "prval", + "var", + "prvar", + "when", + "where", + "with", + "withtype", + "withprop", + "withview", + "withvtype", + "withviewtype" + ], + keywords_dlr: [ + "$delay", + "$ldelay", + "$arrpsz", + "$arrptrsize", + "$d2ctype", + "$effmask", + "$effmask_ntm", + "$effmask_exn", + "$effmask_ref", + "$effmask_wrt", + "$effmask_all", + "$extern", + "$extkind", + "$extype", + "$extype_struct", + "$extval", + "$extfcall", + "$extmcall", + "$literal", + "$myfilename", + "$mylocation", + "$myfunction", + "$lst", + "$lst_t", + "$lst_vt", + "$list", + "$list_t", + "$list_vt", + "$rec", + "$rec_t", + "$rec_vt", + "$record", + "$record_t", + "$record_vt", + "$tup", + "$tup_t", + "$tup_vt", + "$tuple", + "$tuple_t", + "$tuple_vt", + "$break", + "$continue", + "$raise", + "$showtype", + "$vcopyenv_v", + "$vcopyenv_vt", + "$tempenver", + "$solver_assert", + "$solver_verify" + ], + keywords_srp: [ + "#if", + "#ifdef", + "#ifndef", + "#then", + "#elif", + "#elifdef", + "#elifndef", + "#else", + "#endif", + "#error", + "#prerr", + "#print", + "#assert", + "#undef", + "#define", + "#include", + "#require", + "#pragma", + "#codegen2", + "#codegen3" + ], + irregular_keyword_list: [ + "val+", + "val-", + "val", + "case+", + "case-", + "case", + "addr@", + "addr", + "fold@", + "free@", + "fix@", + "fix", + "lam@", + "lam", + "llam@", + "llam", + "viewt@ype+", + "viewt@ype-", + "viewt@ype", + "viewtype+", + "viewtype-", + "viewtype", + "view+", + "view-", + "view@", + "view", + "type+", + "type-", + "type", + "vtype+", + "vtype-", + "vtype", + "vt@ype+", + "vt@ype-", + "vt@ype", + "viewt@ype+", + "viewt@ype-", + "viewt@ype", + "viewtype+", + "viewtype-", + "viewtype", + "prop+", + "prop-", + "prop", + "type+", + "type-", + "type", + "t@ype", + "t@ype+", + "t@ype-", + "abst@ype", + "abstype", + "absviewt@ype", + "absvt@ype", + "for*", + "for", + "while*", + "while" + ], + keywords_types: [ + "bool", + "double", + "byte", + "int", + "short", + "char", + "void", + "unit", + "long", + "float", + "string", + "strptr" + ], + keywords_effects: [ + "0", + "fun", + "clo", + "prf", + "funclo", + "cloptr", + "cloref", + "ref", + "ntm", + "1" + ], + operators: [ + "@", + "!", + "|", + "`", + ":", + "$", + ".", + "=", + "#", + "~", + "..", + "...", + "=>", + "=<>", + "=/=>", + "=>>", + "=/=>>", + "<", + ">", + "><", + ".<", + ">.", + ".<>.", + "->", + "-<>" + ], + brackets: [ + { open: ",(", close: ")", token: "delimiter.parenthesis" }, + { open: "`(", close: ")", token: "delimiter.parenthesis" }, + { open: "%(", close: ")", token: "delimiter.parenthesis" }, + { open: "'(", close: ")", token: "delimiter.parenthesis" }, + { open: "'{", close: "}", token: "delimiter.parenthesis" }, + { open: "@(", close: ")", token: "delimiter.parenthesis" }, + { open: "@{", close: "}", token: "delimiter.brace" }, + { open: "@[", close: "]", token: "delimiter.square" }, + { open: "#[", close: "]", token: "delimiter.square" }, + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + IDENTFST: /[a-zA-Z_]/, + IDENTRST: /[a-zA-Z0-9_'$]/, + symbolic: /[%&+-./:=@~`^|*!$#?<>]/, + digit: /[0-9]/, + digitseq0: /@digit*/, + xdigit: /[0-9A-Za-z]/, + xdigitseq0: /@xdigit*/, + INTSP: /[lLuU]/, + FLOATSP: /[fFlL]/, + fexponent: /[eE][+-]?[0-9]+/, + fexponent_bin: /[pP][+-]?[0-9]+/, + deciexp: /\.[0-9]*@fexponent?/, + hexiexp: /\.[0-9a-zA-Z]*@fexponent_bin?/, + irregular_keywords: /val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/, + ESCHAR: /[ntvbrfa\\\?'"\(\[\{]/, + start: "root", + tokenizer: { + root: [ + { regex: /[ \t\r\n]+/, action: { token: "" } }, + { regex: /\(\*\)/, action: { token: "invalid" } }, + { + regex: /\(\*/, + action: { token: "comment", next: "lexing_COMMENT_block_ml" } + }, + { + regex: /\(/, + action: "@brackets" + }, + { + regex: /\)/, + action: "@brackets" + }, + { + regex: /\[/, + action: "@brackets" + }, + { + regex: /\]/, + action: "@brackets" + }, + { + regex: /\{/, + action: "@brackets" + }, + { + regex: /\}/, + action: "@brackets" + }, + { + regex: /,\(/, + action: "@brackets" + }, + { regex: /,/, action: { token: "delimiter.comma" } }, + { regex: /;/, action: { token: "delimiter.semicolon" } }, + { + regex: /@\(/, + action: "@brackets" + }, + { + regex: /@\[/, + action: "@brackets" + }, + { + regex: /@\{/, + action: "@brackets" + }, + { + regex: /:</, + action: { token: "keyword", next: "@lexing_EFFECT_commaseq0" } + }, + { regex: /\.@symbolic+/, action: { token: "identifier.sym" } }, + { + regex: /\.@digit*@fexponent@FLOATSP*/, + action: { token: "number.float" } + }, + { regex: /\.@digit+/, action: { token: "number.float" } }, + { + regex: /\$@IDENTFST@IDENTRST*/, + action: { + cases: { + "@keywords_dlr": { token: "keyword.dlr" }, + "@default": { token: "namespace" } + } + } + }, + { + regex: /\#@IDENTFST@IDENTRST*/, + action: { + cases: { + "@keywords_srp": { token: "keyword.srp" }, + "@default": { token: "identifier" } + } + } + }, + { regex: /%\(/, action: { token: "delimiter.parenthesis" } }, + { + regex: /^%{(#|\^|\$)?/, + action: { + token: "keyword", + next: "@lexing_EXTCODE", + nextEmbedded: "text/javascript" + } + }, + { regex: /^%}/, action: { token: "keyword" } }, + { regex: /'\(/, action: { token: "delimiter.parenthesis" } }, + { regex: /'\[/, action: { token: "delimiter.bracket" } }, + { regex: /'\{/, action: { token: "delimiter.brace" } }, + [/(')(\\@ESCHAR|\\[xX]@xdigit+|\\@digit+)(')/, ["string", "string.escape", "string"]], + [/'[^\\']'/, "string"], + [/"/, "string.quote", "@lexing_DQUOTE"], + { + regex: /`\(/, + action: "@brackets" + }, + { regex: /\\/, action: { token: "punctuation" } }, + { + regex: /@irregular_keywords(?!@IDENTRST)/, + action: { token: "keyword" } + }, + { + regex: /@IDENTFST@IDENTRST*[<!\[]?/, + action: { + cases: { + "@keywords": { token: "keyword" }, + "@keywords_types": { token: "type" }, + "@default": { token: "identifier" } + } + } + }, + { + regex: /\/\/\/\//, + action: { token: "comment", next: "@lexing_COMMENT_rest" } + }, + { regex: /\/\/.*$/, action: { token: "comment" } }, + { + regex: /\/\*/, + action: { token: "comment", next: "@lexing_COMMENT_block_c" } + }, + { + regex: /-<|=</, + action: { token: "keyword", next: "@lexing_EFFECT_commaseq0" } + }, + { + regex: /@symbolic+/, + action: { + cases: { + "@operators": "keyword", + "@default": "operator" + } + } + }, + { + regex: /0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/, + action: { token: "number.float" } + }, + { regex: /0[xX]@xdigit+@INTSP*/, action: { token: "number.hex" } }, + { + regex: /0[0-7]+(?![0-9])@INTSP*/, + action: { token: "number.octal" } + }, + { + regex: /@digit+(@fexponent|@deciexp)@FLOATSP*/, + action: { token: "number.float" } + }, + { + regex: /@digit@digitseq0@INTSP*/, + action: { token: "number.decimal" } + }, + { regex: /@digit+@INTSP*/, action: { token: "number" } } + ], + lexing_COMMENT_block_ml: [ + [/[^\(\*]+/, "comment"], + [/\(\*/, "comment", "@push"], + [/\(\*/, "comment.invalid"], + [/\*\)/, "comment", "@pop"], + [/\*/, "comment"] + ], + lexing_COMMENT_block_c: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + lexing_COMMENT_rest: [ + [/$/, "comment", "@pop"], + [/.*/, "comment"] + ], + lexing_EFFECT_commaseq0: [ + { + regex: /@IDENTFST@IDENTRST+|@digit+/, + action: { + cases: { + "@keywords_effects": { token: "type.effect" }, + "@default": { token: "identifier" } + } + } + }, + { regex: /,/, action: { token: "punctuation" } }, + { regex: />/, action: { token: "@rematch", next: "@pop" } } + ], + lexing_EXTCODE: [ + { + regex: /^%}/, + action: { + token: "@rematch", + next: "@pop", + nextEmbedded: "@pop" + } + }, + { regex: /[^%]+/, action: "" } + ], + lexing_DQUOTE: [ + { regex: /"/, action: { token: "string.quote", next: "@pop" } }, + { + regex: /(\{\$)(@IDENTFST@IDENTRST*)(\})/, + action: [{ token: "string.escape" }, { token: "identifier" }, { token: "string.escape" }] + }, + { regex: /\\$/, action: { token: "string.escape" } }, + { + regex: /\\(@ESCHAR|[xX]@xdigit+|@digit+)/, + action: { token: "string.escape" } + }, + { regex: /[^\\"]+/, action: { token: "string" } } + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8180.b2381f36.js b/assets/js/8180.b2381f36.js new file mode 100644 index 00000000000..146f46fc168 --- /dev/null +++ b/assets/js/8180.b2381f36.js @@ -0,0 +1,2 @@ +/*! For license information please see 8180.b2381f36.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8180],{48180:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>o});var i={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},o={tokenPostfix:".pats",defaultToken:"invalid",keywords:["abstype","abst0ype","absprop","absview","absvtype","absviewtype","absvt0ype","absviewt0ype","as","and","assume","begin","classdec","datasort","datatype","dataprop","dataview","datavtype","dataviewtype","do","end","extern","extype","extvar","exception","fn","fnx","fun","prfn","prfun","praxi","castfn","if","then","else","ifcase","in","infix","infixl","infixr","prefix","postfix","implmnt","implement","primplmnt","primplement","import","let","local","macdef","macrodef","nonfix","symelim","symintr","overload","of","op","rec","sif","scase","sortdef","sta","stacst","stadef","static","staload","dynload","try","tkindef","typedef","propdef","viewdef","vtypedef","viewtypedef","prval","var","prvar","when","where","with","withtype","withprop","withview","withvtype","withviewtype"],keywords_dlr:["$delay","$ldelay","$arrpsz","$arrptrsize","$d2ctype","$effmask","$effmask_ntm","$effmask_exn","$effmask_ref","$effmask_wrt","$effmask_all","$extern","$extkind","$extype","$extype_struct","$extval","$extfcall","$extmcall","$literal","$myfilename","$mylocation","$myfunction","$lst","$lst_t","$lst_vt","$list","$list_t","$list_vt","$rec","$rec_t","$rec_vt","$record","$record_t","$record_vt","$tup","$tup_t","$tup_vt","$tuple","$tuple_t","$tuple_vt","$break","$continue","$raise","$showtype","$vcopyenv_v","$vcopyenv_vt","$tempenver","$solver_assert","$solver_verify"],keywords_srp:["#if","#ifdef","#ifndef","#then","#elif","#elifdef","#elifndef","#else","#endif","#error","#prerr","#print","#assert","#undef","#define","#include","#require","#pragma","#codegen2","#codegen3"],irregular_keyword_list:["val+","val-","val","case+","case-","case","addr@","addr","fold@","free@","fix@","fix","lam@","lam","llam@","llam","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","view+","view-","view@","view","type+","type-","type","vtype+","vtype-","vtype","vt@ype+","vt@ype-","vt@ype","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","prop+","prop-","prop","type+","type-","type","t@ype","t@ype+","t@ype-","abst@ype","abstype","absviewt@ype","absvt@ype","for*","for","while*","while"],keywords_types:["bool","double","byte","int","short","char","void","unit","long","float","string","strptr"],keywords_effects:["0","fun","clo","prf","funclo","cloptr","cloref","ref","ntm","1"],operators:["@","!","|","`",":","$",".","=","#","~","..","...","=>","=<>","=/=>","=>>","=/=>>","<",">","><",".<",">.",".<>.","->","-<>"],brackets:[{open:",(",close:")",token:"delimiter.parenthesis"},{open:"`(",close:")",token:"delimiter.parenthesis"},{open:"%(",close:")",token:"delimiter.parenthesis"},{open:"'(",close:")",token:"delimiter.parenthesis"},{open:"'{",close:"}",token:"delimiter.parenthesis"},{open:"@(",close:")",token:"delimiter.parenthesis"},{open:"@{",close:"}",token:"delimiter.brace"},{open:"@[",close:"]",token:"delimiter.square"},{open:"#[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=><!~?:&|+\-*\/\^%]+/,IDENTFST:/[a-zA-Z_]/,IDENTRST:/[a-zA-Z0-9_'$]/,symbolic:/[%&+-./:=@~`^|*!$#?<>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\.[0-9]*@fexponent?/,hexiexp:/\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/,ESCHAR:/[ntvbrfa\\\?'"\(\[\{]/,start:"root",tokenizer:{root:[{regex:/[ \t\r\n]+/,action:{token:""}},{regex:/\(\*\)/,action:{token:"invalid"}},{regex:/\(\*/,action:{token:"comment",next:"lexing_COMMENT_block_ml"}},{regex:/\(/,action:"@brackets"},{regex:/\)/,action:"@brackets"},{regex:/\[/,action:"@brackets"},{regex:/\]/,action:"@brackets"},{regex:/\{/,action:"@brackets"},{regex:/\}/,action:"@brackets"},{regex:/,\(/,action:"@brackets"},{regex:/,/,action:{token:"delimiter.comma"}},{regex:/;/,action:{token:"delimiter.semicolon"}},{regex:/@\(/,action:"@brackets"},{regex:/@\[/,action:"@brackets"},{regex:/@\{/,action:"@brackets"},{regex:/:</,action:{token:"keyword",next:"@lexing_EFFECT_commaseq0"}},{regex:/\.@symbolic+/,action:{token:"identifier.sym"}},{regex:/\.@digit*@fexponent@FLOATSP*/,action:{token:"number.float"}},{regex:/\.@digit+/,action:{token:"number.float"}},{regex:/\$@IDENTFST@IDENTRST*/,action:{cases:{"@keywords_dlr":{token:"keyword.dlr"},"@default":{token:"namespace"}}}},{regex:/\#@IDENTFST@IDENTRST*/,action:{cases:{"@keywords_srp":{token:"keyword.srp"},"@default":{token:"identifier"}}}},{regex:/%\(/,action:{token:"delimiter.parenthesis"}},{regex:/^%{(#|\^|\$)?/,action:{token:"keyword",next:"@lexing_EXTCODE",nextEmbedded:"text/javascript"}},{regex:/^%}/,action:{token:"keyword"}},{regex:/'\(/,action:{token:"delimiter.parenthesis"}},{regex:/'\[/,action:{token:"delimiter.bracket"}},{regex:/'\{/,action:{token:"delimiter.brace"}},[/(')(\\@ESCHAR|\\[xX]@xdigit+|\\@digit+)(')/,["string","string.escape","string"]],[/'[^\\']'/,"string"],[/"/,"string.quote","@lexing_DQUOTE"],{regex:/`\(/,action:"@brackets"},{regex:/\\/,action:{token:"punctuation"}},{regex:/@irregular_keywords(?!@IDENTRST)/,action:{token:"keyword"}},{regex:/@IDENTFST@IDENTRST*[<!\[]?/,action:{cases:{"@keywords":{token:"keyword"},"@keywords_types":{token:"type"},"@default":{token:"identifier"}}}},{regex:/\/\/\/\//,action:{token:"comment",next:"@lexing_COMMENT_rest"}},{regex:/\/\/.*$/,action:{token:"comment"}},{regex:/\/\*/,action:{token:"comment",next:"@lexing_COMMENT_block_c"}},{regex:/-<|=</,action:{token:"keyword",next:"@lexing_EFFECT_commaseq0"}},{regex:/@symbolic+/,action:{cases:{"@operators":"keyword","@default":"operator"}}},{regex:/0[xX]@xdigit+(@hexiexp|@fexponent_bin)@FLOATSP*/,action:{token:"number.float"}},{regex:/0[xX]@xdigit+@INTSP*/,action:{token:"number.hex"}},{regex:/0[0-7]+(?![0-9])@INTSP*/,action:{token:"number.octal"}},{regex:/@digit+(@fexponent|@deciexp)@FLOATSP*/,action:{token:"number.float"}},{regex:/@digit@digitseq0@INTSP*/,action:{token:"number.decimal"}},{regex:/@digit+@INTSP*/,action:{token:"number"}}],lexing_COMMENT_block_ml:[[/[^\(\*]+/,"comment"],[/\(\*/,"comment","@push"],[/\(\*/,"comment.invalid"],[/\*\)/,"comment","@pop"],[/\*/,"comment"]],lexing_COMMENT_block_c:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],lexing_COMMENT_rest:[[/$/,"comment","@pop"],[/.*/,"comment"]],lexing_EFFECT_commaseq0:[{regex:/@IDENTFST@IDENTRST+|@digit+/,action:{cases:{"@keywords_effects":{token:"type.effect"},"@default":{token:"identifier"}}}},{regex:/,/,action:{token:"punctuation"}},{regex:/>/,action:{token:"@rematch",next:"@pop"}}],lexing_EXTCODE:[{regex:/^%}/,action:{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}},{regex:/[^%]+/,action:""}],lexing_DQUOTE:[{regex:/"/,action:{token:"string.quote",next:"@pop"}},{regex:/(\{\$)(@IDENTFST@IDENTRST*)(\})/,action:[{token:"string.escape"},{token:"identifier"},{token:"string.escape"}]},{regex:/\\$/,action:{token:"string.escape"}},{regex:/\\(@ESCHAR|[xX]@xdigit+|@digit+)/,action:{token:"string.escape"}},{regex:/[^\\"]+/,action:{token:"string"}}]}}}}]); \ No newline at end of file diff --git a/assets/js/8180.b2381f36.js.LICENSE.txt b/assets/js/8180.b2381f36.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8180.b2381f36.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/836.b690b489.js b/assets/js/836.b690b489.js new file mode 100644 index 00000000000..142106a9ac7 --- /dev/null +++ b/assets/js/836.b690b489.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[836],{80836:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>r,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>a});var n=o(87462),i=(o(67294),o(3905));const s={title:"Types-First the only supported mode in Flow (Jan 2021)","short-title":"Types-First only supported mode",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-the-only-supported-mode-in-flow-jan-2021-3c4cb14d7b6c"},r=void 0,l={permalink:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow",source:"@site/blog/2020-12-01-Types-first-the-only-supported-mode-in-flow.md",title:"Types-First the only supported mode in Flow (Jan 2021)",description:"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021).",date:"2020-12-01T00:00:00.000Z",formattedDate:"December 1, 2020",tags:[],hasTruncateMarker:!1,authors:[{name:"Panagiotis Vekris"}],frontMatter:{title:"Types-First the only supported mode in Flow (Jan 2021)","short-title":"Types-First only supported mode",author:"Panagiotis Vekris","medium-link":"https://medium.com/flow-type/types-first-the-only-supported-mode-in-flow-jan-2021-3c4cb14d7b6c"},prevItem:{title:"Clarity on Flow's Direction and Open Source Engagement",permalink:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement"},nextItem:{title:"Flow's Improved Handling of Generic Types",permalink:"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types"}},p={authorsImageUrls:[void 0]},a=[],d={toc:a};function m(e){let{components:t,...o}=e;return(0,i.mdx)("wrapper",(0,n.Z)({},d,o,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Types-First will become the only mode in Flow in v0.143 (mid Jan 2021)."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8396.b75cac9d.js b/assets/js/8396.b75cac9d.js new file mode 100644 index 00000000000..abafc69e9be --- /dev/null +++ b/assets/js/8396.b75cac9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8396],{88396:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>m});var a=t(87462),i=(t(67294),t(3905));t(45475);const r={title:"Generics",slug:"/types/generics"},o=void 0,s={unversionedId:"types/generics",id:"types/generics",title:"Generics",description:"Generics (sometimes referred to as polymorphic types) are a way of abstracting",source:"@site/docs/types/generics.md",sourceDirName:"types",slug:"/types/generics",permalink:"/en/docs/types/generics",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/generics.md",tags:[],version:"current",frontMatter:{title:"Generics",slug:"/types/generics"},sidebar:"docsSidebar",previous:{title:"Interfaces",permalink:"/en/docs/types/interfaces"},next:{title:"Unions",permalink:"/en/docs/types/unions"}},l={},m=[{value:"Syntax of generics",id:"toc-syntax-of-generics",level:3},{value:"Functions with generics",id:"toc-functions-with-generics",level:3},{value:"Function types with generics",id:"toc-function-types-with-generics",level:3},{value:"Classes with generics",id:"toc-classes-with-generics",level:3},{value:"Type aliases with generics",id:"toc-type-aliases-with-generics",level:3},{value:"Interfaces with generics",id:"toc-interfaces-with-generics",level:3},{value:"Supplying Type Arguments to Callables",id:"toc-supplying-type-arguments-to-callables",level:3},{value:"Behavior of generics",id:"toc-behavior-of-generics",level:2},{value:"Generics act like variables",id:"toc-generics-act-like-variables",level:3},{value:"Create as many generics as you need",id:"toc-create-as-many-generics-as-you-need",level:3},{value:"Generics track values around",id:"toc-generics-track-values-around",level:3},{value:"Adding types to generics",id:"toc-adding-types-to-generics",level:3},{value:"Generic types act as bounds",id:"toc-generic-types-act-as-bounds",level:3},{value:"Parameterized generics",id:"toc-parameterized-generics",level:3},{value:"Adding defaults to parameterized generics",id:"toc-adding-defaults-to-parameterized-generics",level:3},{value:"Variance Sigils",id:"toc-variance-sigils",level:3}],c={toc:m};function p(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Generics (sometimes referred to as polymorphic types) are a way of abstracting\na type away."),(0,i.mdx)("p",null,"Imagine writing the following ",(0,i.mdx)("inlineCode",{parentName:"p"},"identity")," function which returns whatever value\nwas passed."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"function identity(value) {\n return value;\n}\n")),(0,i.mdx)("p",null,"We would have a lot of trouble trying to write specific types for this function\nsince it could be anything."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity(value: string): string {\n return value;\n}\n")),(0,i.mdx)("p",null,"Instead we can create a generic (or polymorphic type) in our function and use\nit in place of other types."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity<T>(value: T): T {\n return value;\n}\n")),(0,i.mdx)("p",null,"Generics can be used within functions, function types, classes, type aliases,\nand interfaces."),(0,i.mdx)("blockquote",null,(0,i.mdx)("p",{parentName:"blockquote"},(0,i.mdx)("strong",{parentName:"p"},"Warning:")," Flow does not infer generic types. If you want something to have a\ngeneric type, ",(0,i.mdx)("strong",{parentName:"p"},"annotate it"),". Otherwise, Flow may infer a type that is less\npolymorphic than you expect.")),(0,i.mdx)("h3",{id:"toc-syntax-of-generics"},"Syntax of generics"),(0,i.mdx)("p",null,"There are a number of different places where generic types appear in syntax."),(0,i.mdx)("h3",{id:"toc-functions-with-generics"},"Functions with generics"),(0,i.mdx)("p",null,"Functions can create generics by adding the type parameter list ",(0,i.mdx)("inlineCode",{parentName:"p"},"<T>")," before\nthe function parameter list."),(0,i.mdx)("p",null,"You can use generics in the same places you'd add any other type in a function\n(parameter or return types)."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function method<T>(param: T): T {\n return param;\n}\n\nconst f = function<T>(param: T): T {\n return param;\n}\n")),(0,i.mdx)("h3",{id:"toc-function-types-with-generics"},"Function types with generics"),(0,i.mdx)("p",null,"Function types can create generics in the same way as normal functions, by\nadding the type parameter list ",(0,i.mdx)("inlineCode",{parentName:"p"},"<T>")," before the function type parameter list."),(0,i.mdx)("p",null,"You can use generics in the same places you'd add any other type in a function\ntype (parameter or return types)."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"<T>(param: T) => T\n")),(0,i.mdx)("p",null,"Which then gets used as its own type."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function method(func: <T>(param: T) => T) {\n // ...\n}\n")),(0,i.mdx)("h3",{id:"toc-classes-with-generics"},"Classes with generics"),(0,i.mdx)("p",null,"Classes can create generics by placing the type parameter list before the body\nof the class."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Item<T> {\n // ...\n}\n")),(0,i.mdx)("p",null,"You can use generics in the same places you'd add any other type in a class\n(property types and method parameter/return types)."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Item<T> {\n prop: T;\n\n constructor(param: T) {\n this.prop = param;\n }\n\n method(): T {\n return this.prop;\n }\n}\n")),(0,i.mdx)("h3",{id:"toc-type-aliases-with-generics"},"Type aliases with generics"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Item<T> = {\n foo: T,\n bar: T,\n};\n")),(0,i.mdx)("h3",{id:"toc-interfaces-with-generics"},"Interfaces with generics"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"interface Item<T> {\n foo: T,\n bar: T,\n}\n")),(0,i.mdx)("h3",{id:"toc-supplying-type-arguments-to-callables"},"Supplying Type Arguments to Callables"),(0,i.mdx)("p",null,"You can give callable entities type arguments for their generics directly in the call:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function doSomething<T>(param: T): T {\n // ...\n return param;\n}\n\ndoSomething<number>(3);\n")),(0,i.mdx)("p",null,"You can also give generic classes type arguments directly in the ",(0,i.mdx)("inlineCode",{parentName:"p"},"new")," expression:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class GenericClass<T> {}\nconst c = new GenericClass<number>();\n")),(0,i.mdx)("p",null,"If you only want to specify some of the type arguments, you can use ",(0,i.mdx)("inlineCode",{parentName:"p"},"_")," to let flow infer a type for you:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class GenericClass<T, U=string, V=number>{}\nconst c = new GenericClass<boolean, _, string>();\n")),(0,i.mdx)("blockquote",null,(0,i.mdx)("p",{parentName:"blockquote"},(0,i.mdx)("strong",{parentName:"p"},"Warning:")," For performance purposes, we always recommend you annotate with\nconcrete arguments when you can. ",(0,i.mdx)("inlineCode",{parentName:"p"},"_")," is not unsafe, but it is slower than explicitly\nspecifying the type arguments.")),(0,i.mdx)("h2",{id:"toc-behavior-of-generics"},"Behavior of generics"),(0,i.mdx)("h3",{id:"toc-generics-act-like-variables"},"Generics act like variables"),(0,i.mdx)("p",null,"Generic types work a lot like variables or function parameters except that they\nare used for types. You can use them whenever they are in scope."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function constant<T>(value: T): () => T {\n return function(): T {\n return value;\n };\n}\n")),(0,i.mdx)("h3",{id:"toc-create-as-many-generics-as-you-need"},"Create as many generics as you need"),(0,i.mdx)("p",null,"You can have as many of these generics as you need in the type parameter list,\nnaming them whatever you want:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity<One, Two, Three>(one: One, two: Two, three: Three) {\n // ...\n}\n")),(0,i.mdx)("h3",{id:"toc-generics-track-values-around"},"Generics track values around"),(0,i.mdx)("p",null,"When using a generic type for a value, Flow will track the value and make sure\nthat you aren't replacing it with something else."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":14,"description":"Cannot return `\\"foo\\"` because string [1] is incompatible with `T` [2]. [incompatible-return]"},{"startLine":5,"startColumn":10,"endLine":5,"endColumn":17,"description":"Cannot declare `identity` [1] because the name is already bound. [name-already-bound]"},{"startLine":6,"startColumn":11,"endLine":6,"endColumn":15,"description":"Cannot assign `\\"foo\\"` to `value` because string [1] is incompatible with `T` [2]. [incompatible-type]"},{"startLine":7,"startColumn":10,"endLine":7,"endColumn":14,"description":"Cannot return `value` because string [1] is incompatible with `T` [2]. [incompatible-return]"}]','[{"startLine":2,"startColumn":10,"endLine":2,"endColumn":14,"description":"Cannot':!0,return:!0,'`\\"foo\\"`':!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`T`":!0,"[2].":!0,'[incompatible-return]"},{"startLine":5,"startColumn":10,"endLine":5,"endColumn":17,"description":"Cannot':!0,declare:!0,"`identity`":!0,the:!0,name:!0,already:!0,"bound.":!0,'[name-already-bound]"},{"startLine":6,"startColumn":11,"endLine":6,"endColumn":15,"description":"Cannot':!0,assign:!0,to:!0,"`value`":!0,'[incompatible-type]"},{"startLine":7,"startColumn":10,"endLine":7,"endColumn":14,"description":"Cannot':!0,'[incompatible-return]"}]':!0},'function identity<T>(value: T): T {\n return "foo"; // Error!\n}\n\nfunction identity<T>(value: T): T {\n value = "foo"; // Error!\n return value; // Error!\n}\n')),(0,i.mdx)("p",null,"Flow tracks the specific type of the value you pass through a generic, letting\nyou use it later."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":16,"endLine":7,"endColumn":27,"description":"Cannot assign `identity(...)` to `three` because number [1] is incompatible with number literal `3` [2]. [incompatible-type]"}]','[{"startLine":7,"startColumn":16,"endLine":7,"endColumn":27,"description":"Cannot':!0,assign:!0,"`identity(...)`":!0,to:!0,"`three`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,literal:!0,"`3`":!0,"[2].":!0,'[incompatible-type]"}]':!0},"function identity<T>(value: T): T {\n return value;\n}\n\nlet one: 1 = identity(1);\nlet two: 2 = identity(2);\nlet three: 3 = identity(42); // Error\n")),(0,i.mdx)("h3",{id:"toc-adding-types-to-generics"},"Adding types to generics"),(0,i.mdx)("p",null,"Similar to ",(0,i.mdx)("inlineCode",{parentName:"p"},"mixed"),', generics have an "unknown" type. You\'re not allowed to use\na generic as if it were a specific type.'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":19,"endLine":2,"endColumn":21,"description":"Cannot get `obj.foo` because property `foo` is missing in mixed [1]. [incompatible-use]"}]','[{"startLine":2,"startColumn":19,"endLine":2,"endColumn":21,"description":"Cannot':!0,get:!0,"`obj.foo`":!0,because:!0,property:!0,"`foo`":!0,is:!0,missing:!0,in:!0,mixed:!0,"[1].":!0,'[incompatible-use]"}]':!0},"function logFoo<T>(obj: T): T {\n console.log(obj.foo); // Error!\n return obj;\n}\n")),(0,i.mdx)("p",null,"You could refine the type, but the generic will still allow any type to be\npassed in."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function logFoo<T>(obj: T): T {\n if (obj && obj.foo) {\n console.log(obj.foo); // Works.\n }\n return obj;\n}\n\nlogFoo({ foo: 'foo', bar: 'bar' }); // Works.\nlogFoo({ bar: 'bar' }); // Works. :(\n")),(0,i.mdx)("p",null,"Instead, you could add a type to your generic like you would with a function\nparameter."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":8,"endLine":7,"endColumn":21,"description":"Cannot call `logFoo` because property `foo` is missing in object literal [1] but exists in object type [2] in type argument `T`. [prop-missing]"}]','[{"startLine":7,"startColumn":8,"endLine":7,"endColumn":21,"description":"Cannot':!0,call:!0,"`logFoo`":!0,because:!0,property:!0,"`foo`":!0,is:!0,missing:!0,in:!0,object:!0,literal:!0,"[1]":!0,but:!0,exists:!0,type:!0,"[2]":!0,argument:!0,"`T`.":!0,'[prop-missing]"}]':!0},"function logFoo<T: {foo: string, ...}>(obj: T): T {\n console.log(obj.foo); // Works!\n return obj;\n}\n\nlogFoo({ foo: 'foo', bar: 'bar' }); // Works!\nlogFoo({ bar: 'bar' }); // Error!\n")),(0,i.mdx)("p",null,"This way you can keep the behavior of generics while only allowing certain\ntypes to be used."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":31,"endLine":8,"endColumn":37,"description":"Cannot call `identity` because string [1] is incompatible with number [2] in type argument `T`. [incompatible-call]"}]','[{"startLine":8,"startColumn":31,"endLine":8,"endColumn":37,"description":"Cannot':!0,call:!0,"`identity`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2]":!0,in:!0,type:!0,argument:!0,"`T`.":!0,'[incompatible-call]"}]':!0},'function identity<T: number>(value: T): T {\n return value;\n}\n\nlet one: 1 = identity(1);\nlet two: 2 = identity(2);\n// $ExpectError\nlet three: "three" = identity("three");\n')),(0,i.mdx)("h3",{id:"toc-generic-types-act-as-bounds"},"Generic types act as bounds"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity<T>(val: T): T {\n return val;\n}\n\nlet foo: 'foo' = 'foo'; // Works!\nlet bar: 'bar' = identity('bar'); // Works!\n")),(0,i.mdx)("p",null,'In Flow, most of the time when you pass one type into another you lose the\noriginal type. So that when you pass a specific type into a less specific one\nFlow "forgets" it was once something more specific.'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":18,"endLine":7,"endColumn":32,"description":"Cannot assign `identity(...)` to `bar` because string [1] is incompatible with string literal `bar` [2]. [incompatible-type]"}]','[{"startLine":7,"startColumn":18,"endLine":7,"endColumn":32,"description":"Cannot':!0,assign:!0,"`identity(...)`":!0,to:!0,"`bar`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,literal:!0,"[2].":!0,'[incompatible-type]"}]':!0},"function identity(val: string): string {\n return val;\n}\n\nlet foo: 'foo' = 'foo'; // Works!\n// $ExpectError\nlet bar: 'bar' = identity('bar'); // Error!\n")),(0,i.mdx)("p",null,'Generics allow you to hold onto the more specific type while adding a\nconstraint. In this way types on generics act as "bounds".'),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function identity<T: string>(val: T): T {\n return val;\n}\n\nlet foo: 'foo' = 'foo'; // Works!\nlet bar: 'bar' = identity('bar'); // Works!\n")),(0,i.mdx)("p",null,"Note that when you have a value with a bound generic type, you can't use it as\nif it were a more specific type."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":21,"endLine":3,"endColumn":23,"description":"Cannot assign `val` to `bar` because string [1] is incompatible with string literal `bar` [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":21,"endLine":3,"endColumn":23,"description":"Cannot':!0,assign:!0,"`val`":!0,to:!0,"`bar`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,literal:!0,"[2].":!0,'[incompatible-type]"}]':!0},"function identity<T: string>(val: T): T {\n let str: string = val; // Works!\n let bar: 'bar' = val; // Error!\n return val;\n}\n\nidentity('bar');\n")),(0,i.mdx)("h3",{id:"toc-parameterized-generics"},"Parameterized generics"),(0,i.mdx)("p",null,"Generics sometimes allow you to pass types in like arguments to a function.\nThese are known as parameterized generics (or parametric polymorphism)."),(0,i.mdx)("p",null,"For example, a type alias with a generic is parameterized. When you go to use\nit you will have to provide a type argument."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type Item<T> = {\n prop: T,\n}\n\nlet item: Item<string> = {\n prop: "value"\n};\n')),(0,i.mdx)("p",null,"You can think of this like passing arguments to a function, only the return\nvalue is a type that you can use."),(0,i.mdx)("p",null,"Classes (when being used as a type), type aliases, and interfaces all require\nthat you pass type arguments. Functions and function types do not have\nparameterized generics."),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("em",{parentName:"strong"},"Classes"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",1:!0,className:"language-flow",metastring:'[{"startLine":9,"startColumn":12,"endLine":9,"endColumn":15,"description":"Cannot use `Item` [1] without 1 type argument. [missing-type-arg]"}]','[{"startLine":9,"startColumn":12,"endLine":9,"endColumn":15,"description":"Cannot':!0,use:!0,"`Item`":!0,"[1]":!0,without:!0,type:!0,"argument.":!0,'[missing-type-arg]"}]':!0},"class Item<T> {\n prop: T;\n constructor(param: T) {\n this.prop = param;\n }\n}\n\nlet item1: Item<number> = new Item(42); // Works!\nlet item2: Item = new Item(42); // Error!\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("em",{parentName:"strong"},"Type Aliases"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",1:!0,className:"language-flow",metastring:'[{"startLine":6,"startColumn":12,"endLine":6,"endColumn":15,"description":"Cannot use `Item` [1] without 1 type argument. [missing-type-arg]"}]','[{"startLine":6,"startColumn":12,"endLine":6,"endColumn":15,"description":"Cannot':!0,use:!0,"`Item`":!0,"[1]":!0,without:!0,type:!0,"argument.":!0,'[missing-type-arg]"}]':!0},"type Item<T> = {\n prop: T,\n};\n\nlet item1: Item<number> = { prop: 42 }; // Works!\nlet item2: Item = { prop: 42 }; // Error!\n")),(0,i.mdx)("p",null,(0,i.mdx)("strong",{parentName:"p"},(0,i.mdx)("em",{parentName:"strong"},"Interfaces"))),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",1:!0,className:"language-flow",metastring:'[{"startLine":10,"startColumn":18,"endLine":10,"endColumn":24,"description":"Cannot use `HasProp` [1] without 1 type argument. [missing-type-arg]"}]','[{"startLine":10,"startColumn":18,"endLine":10,"endColumn":24,"description":"Cannot':!0,use:!0,"`HasProp`":!0,"[1]":!0,without:!0,type:!0,"argument.":!0,'[missing-type-arg]"}]':!0},"interface HasProp<T> {\n prop: T,\n}\n\nclass Item {\n prop: string;\n}\n\n(Item.prototype: HasProp<string>); // Works!\n(Item.prototype: HasProp); // Error!\n")),(0,i.mdx)("h3",{id:"toc-adding-defaults-to-parameterized-generics"},"Adding defaults to parameterized generics"),(0,i.mdx)("p",null,"You can also provide defaults for parameterized generics just like parameters\nof a function."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Item<T: number = 1> = {\n prop: T,\n};\n\nlet foo: Item<> = { prop: 1 };\nlet bar: Item<2> = { prop: 2 };\n")),(0,i.mdx)("p",null,"You must always include the brackets ",(0,i.mdx)("inlineCode",{parentName:"p"},"<>")," when using the type (just like\nparentheses for a function call)."),(0,i.mdx)("h3",{id:"toc-variance-sigils"},"Variance Sigils"),(0,i.mdx)("p",null,"You can also specify the subtyping behavior of a generic via variance sigils.\nBy default, generics behave invariantly, but you may add a ",(0,i.mdx)("inlineCode",{parentName:"p"},"+")," to their\ndeclaration to make them behave covariantly, or a ",(0,i.mdx)("inlineCode",{parentName:"p"},"-")," to their declaration to\nmake them behave contravariantly. See ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/variance"},"our docs on variance"),"\nfor a more information on variance in Flow."),(0,i.mdx)("p",null,"Variance sigils allow you to be more specific about how you intend to\nuse your generics, giving Flow the power to do more precise type checking.\nFor example, you may want this relationship to hold:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type GenericBox<+T> = T;\n\nvar x: GenericBox<number> = 3;\n(x: GenericBox<number| string>);\n")),(0,i.mdx)("p",null,"The example above could not be accomplished without the ",(0,i.mdx)("inlineCode",{parentName:"p"},"+")," variance sigil:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":2,"endLine":4,"endColumn":2,"description":"Cannot cast `x` to `GenericBoxError` because string [1] is incompatible with number [2] in type argument `T` [3]. [incompatible-cast]"}]','[{"startLine":4,"startColumn":2,"endLine":4,"endColumn":2,"description":"Cannot':!0,cast:!0,"`x`":!0,to:!0,"`GenericBoxError`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2]":!0,in:!0,type:!0,argument:!0,"`T`":!0,"[3].":!0,'[incompatible-cast]"}]':!0},"type GenericBoxError<T> = T;\n\nvar x: GenericBoxError<number> = 3;\n(x: GenericBoxError<number| string>); // number | string is not compatible with number.\n")),(0,i.mdx)("p",null,"Note that if you annotate your generic with variance sigils then Flow will\ncheck to make sure those types only appear in positions that make sense for\nthat variance sigil. For example, you cannot declare a generic type parameter\nto behave covariantly and use it in a contravariant position:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":1,"startColumn":34,"endLine":1,"endColumn":34,"description":"Cannot use `T` [1] in an input position because `T` [1] is expected to occur only in output positions. [incompatible-variance]"}]','[{"startLine":1,"startColumn":34,"endLine":1,"endColumn":34,"description":"Cannot':!0,use:!0,"`T`":!0,"[1]":!0,in:!0,an:!0,input:!0,position:!0,because:!0,is:!0,expected:!0,to:!0,occur:!0,only:!0,output:!0,"positions.":!0,'[incompatible-variance]"}]':!0},"type NotActuallyCovariant<+T> = (T) => void;\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8401.334d8112.js b/assets/js/8401.334d8112.js new file mode 100644 index 00000000000..69bedf962d7 --- /dev/null +++ b/assets/js/8401.334d8112.js @@ -0,0 +1,1130 @@ +"use strict"; +exports.id = 8401; +exports.ids = [8401]; +exports.modules = { + +/***/ 78401: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Adapter": () => (/* binding */ Adapter), +/* harmony export */ "CodeActionAdaptor": () => (/* binding */ CodeActionAdaptor), +/* harmony export */ "DefinitionAdapter": () => (/* binding */ DefinitionAdapter), +/* harmony export */ "DiagnosticsAdapter": () => (/* binding */ DiagnosticsAdapter), +/* harmony export */ "FormatAdapter": () => (/* binding */ FormatAdapter), +/* harmony export */ "FormatHelper": () => (/* binding */ FormatHelper), +/* harmony export */ "FormatOnTypeAdapter": () => (/* binding */ FormatOnTypeAdapter), +/* harmony export */ "InlayHintsAdapter": () => (/* binding */ InlayHintsAdapter), +/* harmony export */ "Kind": () => (/* binding */ Kind), +/* harmony export */ "LibFiles": () => (/* binding */ LibFiles), +/* harmony export */ "OccurrencesAdapter": () => (/* binding */ OccurrencesAdapter), +/* harmony export */ "OutlineAdapter": () => (/* binding */ OutlineAdapter), +/* harmony export */ "QuickInfoAdapter": () => (/* binding */ QuickInfoAdapter), +/* harmony export */ "ReferenceAdapter": () => (/* binding */ ReferenceAdapter), +/* harmony export */ "RenameAdapter": () => (/* binding */ RenameAdapter), +/* harmony export */ "SignatureHelpAdapter": () => (/* binding */ SignatureHelpAdapter), +/* harmony export */ "SuggestAdapter": () => (/* binding */ SuggestAdapter), +/* harmony export */ "WorkerManager": () => (/* binding */ WorkerManager), +/* harmony export */ "flattenDiagnosticMessageText": () => (/* binding */ flattenDiagnosticMessageText), +/* harmony export */ "getJavaScriptWorker": () => (/* binding */ getJavaScriptWorker), +/* harmony export */ "getTypeScriptWorker": () => (/* binding */ getTypeScriptWorker), +/* harmony export */ "setupJavaScript": () => (/* binding */ setupJavaScript), +/* harmony export */ "setupTypeScript": () => (/* binding */ setupTypeScript) +/* harmony export */ }); +/* harmony import */ var _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15030); +/* harmony import */ var _monaco_contribution_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39585); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default")); +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; + +// src/fillers/monaco-editor-core.ts +var monaco_editor_core_exports = {}; +__reExport(monaco_editor_core_exports, _editor_editor_api_js__WEBPACK_IMPORTED_MODULE_0__); + + +// src/language/typescript/workerManager.ts +var WorkerManager = class { + constructor(_modeId, _defaults) { + this._modeId = _modeId; + this._defaults = _defaults; + this._worker = null; + this._client = null; + this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker()); + this._updateExtraLibsToken = 0; + this._extraLibsChangeListener = this._defaults.onDidExtraLibsChange(() => this._updateExtraLibs()); + } + _configChangeListener; + _updateExtraLibsToken; + _extraLibsChangeListener; + _worker; + _client; + dispose() { + this._configChangeListener.dispose(); + this._extraLibsChangeListener.dispose(); + this._stopWorker(); + } + _stopWorker() { + if (this._worker) { + this._worker.dispose(); + this._worker = null; + } + this._client = null; + } + async _updateExtraLibs() { + if (!this._worker) { + return; + } + const myToken = ++this._updateExtraLibsToken; + const proxy = await this._worker.getProxy(); + if (this._updateExtraLibsToken !== myToken) { + return; + } + proxy.updateExtraLibs(this._defaults.getExtraLibs()); + } + _getClient() { + if (!this._client) { + this._client = (async () => { + this._worker = monaco_editor_core_exports.editor.createWebWorker({ + moduleId: "vs/language/typescript/tsWorker", + label: this._modeId, + keepIdleModels: true, + createData: { + compilerOptions: this._defaults.getCompilerOptions(), + extraLibs: this._defaults.getExtraLibs(), + customWorkerPath: this._defaults.workerOptions.customWorkerPath, + inlayHintsOptions: this._defaults.inlayHintsOptions + } + }); + if (this._defaults.getEagerModelSync()) { + return await this._worker.withSyncedResources(monaco_editor_core_exports.editor.getModels().filter((model) => model.getLanguageId() === this._modeId).map((model) => model.uri)); + } + return await this._worker.getProxy(); + })(); + } + return this._client; + } + async getLanguageServiceWorker(...resources) { + const client = await this._getClient(); + if (this._worker) { + await this._worker.withSyncedResources(resources); + } + return client; + } +}; + +// src/language/typescript/languageFeatures.ts + + +// src/language/typescript/lib/lib.index.ts +var libFileSet = {}; +libFileSet["lib.d.ts"] = true; +libFileSet["lib.dom.d.ts"] = true; +libFileSet["lib.dom.iterable.d.ts"] = true; +libFileSet["lib.es2015.collection.d.ts"] = true; +libFileSet["lib.es2015.core.d.ts"] = true; +libFileSet["lib.es2015.d.ts"] = true; +libFileSet["lib.es2015.generator.d.ts"] = true; +libFileSet["lib.es2015.iterable.d.ts"] = true; +libFileSet["lib.es2015.promise.d.ts"] = true; +libFileSet["lib.es2015.proxy.d.ts"] = true; +libFileSet["lib.es2015.reflect.d.ts"] = true; +libFileSet["lib.es2015.symbol.d.ts"] = true; +libFileSet["lib.es2015.symbol.wellknown.d.ts"] = true; +libFileSet["lib.es2016.array.include.d.ts"] = true; +libFileSet["lib.es2016.d.ts"] = true; +libFileSet["lib.es2016.full.d.ts"] = true; +libFileSet["lib.es2017.d.ts"] = true; +libFileSet["lib.es2017.full.d.ts"] = true; +libFileSet["lib.es2017.intl.d.ts"] = true; +libFileSet["lib.es2017.object.d.ts"] = true; +libFileSet["lib.es2017.sharedmemory.d.ts"] = true; +libFileSet["lib.es2017.string.d.ts"] = true; +libFileSet["lib.es2017.typedarrays.d.ts"] = true; +libFileSet["lib.es2018.asyncgenerator.d.ts"] = true; +libFileSet["lib.es2018.asynciterable.d.ts"] = true; +libFileSet["lib.es2018.d.ts"] = true; +libFileSet["lib.es2018.full.d.ts"] = true; +libFileSet["lib.es2018.intl.d.ts"] = true; +libFileSet["lib.es2018.promise.d.ts"] = true; +libFileSet["lib.es2018.regexp.d.ts"] = true; +libFileSet["lib.es2019.array.d.ts"] = true; +libFileSet["lib.es2019.d.ts"] = true; +libFileSet["lib.es2019.full.d.ts"] = true; +libFileSet["lib.es2019.object.d.ts"] = true; +libFileSet["lib.es2019.string.d.ts"] = true; +libFileSet["lib.es2019.symbol.d.ts"] = true; +libFileSet["lib.es2020.bigint.d.ts"] = true; +libFileSet["lib.es2020.d.ts"] = true; +libFileSet["lib.es2020.full.d.ts"] = true; +libFileSet["lib.es2020.intl.d.ts"] = true; +libFileSet["lib.es2020.promise.d.ts"] = true; +libFileSet["lib.es2020.sharedmemory.d.ts"] = true; +libFileSet["lib.es2020.string.d.ts"] = true; +libFileSet["lib.es2020.symbol.wellknown.d.ts"] = true; +libFileSet["lib.es2021.d.ts"] = true; +libFileSet["lib.es2021.full.d.ts"] = true; +libFileSet["lib.es2021.intl.d.ts"] = true; +libFileSet["lib.es2021.promise.d.ts"] = true; +libFileSet["lib.es2021.string.d.ts"] = true; +libFileSet["lib.es2021.weakref.d.ts"] = true; +libFileSet["lib.es5.d.ts"] = true; +libFileSet["lib.es6.d.ts"] = true; +libFileSet["lib.esnext.d.ts"] = true; +libFileSet["lib.esnext.full.d.ts"] = true; +libFileSet["lib.esnext.intl.d.ts"] = true; +libFileSet["lib.esnext.promise.d.ts"] = true; +libFileSet["lib.esnext.string.d.ts"] = true; +libFileSet["lib.esnext.weakref.d.ts"] = true; +libFileSet["lib.scripthost.d.ts"] = true; +libFileSet["lib.webworker.d.ts"] = true; +libFileSet["lib.webworker.importscripts.d.ts"] = true; +libFileSet["lib.webworker.iterable.d.ts"] = true; + +// src/language/typescript/languageFeatures.ts +function flattenDiagnosticMessageText(diag, newLine, indent = 0) { + if (typeof diag === "string") { + return diag; + } else if (diag === void 0) { + return ""; + } + let result = ""; + if (indent) { + result += newLine; + for (let i = 0; i < indent; i++) { + result += " "; + } + } + result += diag.messageText; + indent++; + if (diag.next) { + for (const kid of diag.next) { + result += flattenDiagnosticMessageText(kid, newLine, indent); + } + } + return result; +} +function displayPartsToString(displayParts) { + if (displayParts) { + return displayParts.map((displayPart) => displayPart.text).join(""); + } + return ""; +} +var Adapter = class { + constructor(_worker) { + this._worker = _worker; + } + _textSpanToRange(model, span) { + let p1 = model.getPositionAt(span.start); + let p2 = model.getPositionAt(span.start + span.length); + let { lineNumber: startLineNumber, column: startColumn } = p1; + let { lineNumber: endLineNumber, column: endColumn } = p2; + return { startLineNumber, startColumn, endLineNumber, endColumn }; + } +}; +var LibFiles = class { + constructor(_worker) { + this._worker = _worker; + this._libFiles = {}; + this._hasFetchedLibFiles = false; + this._fetchLibFilesPromise = null; + } + _libFiles; + _hasFetchedLibFiles; + _fetchLibFilesPromise; + isLibFile(uri) { + if (!uri) { + return false; + } + if (uri.path.indexOf("/lib.") === 0) { + return !!libFileSet[uri.path.slice(1)]; + } + return false; + } + getOrCreateModel(fileName) { + const uri = monaco_editor_core_exports.Uri.parse(fileName); + const model = monaco_editor_core_exports.editor.getModel(uri); + if (model) { + return model; + } + if (this.isLibFile(uri) && this._hasFetchedLibFiles) { + return monaco_editor_core_exports.editor.createModel(this._libFiles[uri.path.slice(1)], "typescript", uri); + } + const matchedLibFile = _monaco_contribution_js__WEBPACK_IMPORTED_MODULE_1__/* .typescriptDefaults.getExtraLibs */ .TG.getExtraLibs()[fileName]; + if (matchedLibFile) { + return monaco_editor_core_exports.editor.createModel(matchedLibFile.content, "typescript", uri); + } + return null; + } + _containsLibFile(uris) { + for (let uri of uris) { + if (this.isLibFile(uri)) { + return true; + } + } + return false; + } + async fetchLibFilesIfNecessary(uris) { + if (!this._containsLibFile(uris)) { + return; + } + await this._fetchLibFiles(); + } + _fetchLibFiles() { + if (!this._fetchLibFilesPromise) { + this._fetchLibFilesPromise = this._worker().then((w) => w.getLibFiles()).then((libFiles) => { + this._hasFetchedLibFiles = true; + this._libFiles = libFiles; + }); + } + return this._fetchLibFilesPromise; + } +}; +var DiagnosticsAdapter = class extends Adapter { + constructor(_libFiles, _defaults, _selector, worker) { + super(worker); + this._libFiles = _libFiles; + this._defaults = _defaults; + this._selector = _selector; + const onModelAdd = (model) => { + if (model.getLanguageId() !== _selector) { + return; + } + const maybeValidate = () => { + const { onlyVisible } = this._defaults.getDiagnosticsOptions(); + if (onlyVisible) { + if (model.isAttachedToEditor()) { + this._doValidate(model); + } + } else { + this._doValidate(model); + } + }; + let handle; + const changeSubscription = model.onDidChangeContent(() => { + clearTimeout(handle); + handle = window.setTimeout(maybeValidate, 500); + }); + const visibleSubscription = model.onDidChangeAttached(() => { + const { onlyVisible } = this._defaults.getDiagnosticsOptions(); + if (onlyVisible) { + if (model.isAttachedToEditor()) { + maybeValidate(); + } else { + monaco_editor_core_exports.editor.setModelMarkers(model, this._selector, []); + } + } + }); + this._listener[model.uri.toString()] = { + dispose() { + changeSubscription.dispose(); + visibleSubscription.dispose(); + clearTimeout(handle); + } + }; + maybeValidate(); + }; + const onModelRemoved = (model) => { + monaco_editor_core_exports.editor.setModelMarkers(model, this._selector, []); + const key = model.uri.toString(); + if (this._listener[key]) { + this._listener[key].dispose(); + delete this._listener[key]; + } + }; + this._disposables.push(monaco_editor_core_exports.editor.onDidCreateModel((model) => onModelAdd(model))); + this._disposables.push(monaco_editor_core_exports.editor.onWillDisposeModel(onModelRemoved)); + this._disposables.push(monaco_editor_core_exports.editor.onDidChangeModelLanguage((event) => { + onModelRemoved(event.model); + onModelAdd(event.model); + })); + this._disposables.push({ + dispose() { + for (const model of monaco_editor_core_exports.editor.getModels()) { + onModelRemoved(model); + } + } + }); + const recomputeDiagostics = () => { + for (const model of monaco_editor_core_exports.editor.getModels()) { + onModelRemoved(model); + onModelAdd(model); + } + }; + this._disposables.push(this._defaults.onDidChange(recomputeDiagostics)); + this._disposables.push(this._defaults.onDidExtraLibsChange(recomputeDiagostics)); + monaco_editor_core_exports.editor.getModels().forEach((model) => onModelAdd(model)); + } + _disposables = []; + _listener = /* @__PURE__ */ Object.create(null); + dispose() { + this._disposables.forEach((d) => d && d.dispose()); + this._disposables = []; + } + async _doValidate(model) { + const worker = await this._worker(model.uri); + if (model.isDisposed()) { + return; + } + const promises = []; + const { noSyntaxValidation, noSemanticValidation, noSuggestionDiagnostics } = this._defaults.getDiagnosticsOptions(); + if (!noSyntaxValidation) { + promises.push(worker.getSyntacticDiagnostics(model.uri.toString())); + } + if (!noSemanticValidation) { + promises.push(worker.getSemanticDiagnostics(model.uri.toString())); + } + if (!noSuggestionDiagnostics) { + promises.push(worker.getSuggestionDiagnostics(model.uri.toString())); + } + const allDiagnostics = await Promise.all(promises); + if (!allDiagnostics || model.isDisposed()) { + return; + } + const diagnostics = allDiagnostics.reduce((p, c) => c.concat(p), []).filter((d) => (this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore || []).indexOf(d.code) === -1); + const relatedUris = diagnostics.map((d) => d.relatedInformation || []).reduce((p, c) => c.concat(p), []).map((relatedInformation) => relatedInformation.file ? monaco_editor_core_exports.Uri.parse(relatedInformation.file.fileName) : null); + await this._libFiles.fetchLibFilesIfNecessary(relatedUris); + if (model.isDisposed()) { + return; + } + monaco_editor_core_exports.editor.setModelMarkers(model, this._selector, diagnostics.map((d) => this._convertDiagnostics(model, d))); + } + _convertDiagnostics(model, diag) { + const diagStart = diag.start || 0; + const diagLength = diag.length || 1; + const { lineNumber: startLineNumber, column: startColumn } = model.getPositionAt(diagStart); + const { lineNumber: endLineNumber, column: endColumn } = model.getPositionAt(diagStart + diagLength); + const tags = []; + if (diag.reportsUnnecessary) { + tags.push(monaco_editor_core_exports.MarkerTag.Unnecessary); + } + if (diag.reportsDeprecated) { + tags.push(monaco_editor_core_exports.MarkerTag.Deprecated); + } + return { + severity: this._tsDiagnosticCategoryToMarkerSeverity(diag.category), + startLineNumber, + startColumn, + endLineNumber, + endColumn, + message: flattenDiagnosticMessageText(diag.messageText, "\n"), + code: diag.code.toString(), + tags, + relatedInformation: this._convertRelatedInformation(model, diag.relatedInformation) + }; + } + _convertRelatedInformation(model, relatedInformation) { + if (!relatedInformation) { + return []; + } + const result = []; + relatedInformation.forEach((info) => { + let relatedResource = model; + if (info.file) { + relatedResource = this._libFiles.getOrCreateModel(info.file.fileName); + } + if (!relatedResource) { + return; + } + const infoStart = info.start || 0; + const infoLength = info.length || 1; + const { lineNumber: startLineNumber, column: startColumn } = relatedResource.getPositionAt(infoStart); + const { lineNumber: endLineNumber, column: endColumn } = relatedResource.getPositionAt(infoStart + infoLength); + result.push({ + resource: relatedResource.uri, + startLineNumber, + startColumn, + endLineNumber, + endColumn, + message: flattenDiagnosticMessageText(info.messageText, "\n") + }); + }); + return result; + } + _tsDiagnosticCategoryToMarkerSeverity(category) { + switch (category) { + case 1 /* Error */: + return monaco_editor_core_exports.MarkerSeverity.Error; + case 3 /* Message */: + return monaco_editor_core_exports.MarkerSeverity.Info; + case 0 /* Warning */: + return monaco_editor_core_exports.MarkerSeverity.Warning; + case 2 /* Suggestion */: + return monaco_editor_core_exports.MarkerSeverity.Hint; + } + return monaco_editor_core_exports.MarkerSeverity.Info; + } +}; +var SuggestAdapter = class extends Adapter { + get triggerCharacters() { + return ["."]; + } + async provideCompletionItems(model, position, _context, token) { + const wordInfo = model.getWordUntilPosition(position); + const wordRange = new monaco_editor_core_exports.Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn); + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const info = await worker.getCompletionsAtPosition(resource.toString(), offset); + if (!info || model.isDisposed()) { + return; + } + const suggestions = info.entries.map((entry) => { + let range = wordRange; + if (entry.replacementSpan) { + const p1 = model.getPositionAt(entry.replacementSpan.start); + const p2 = model.getPositionAt(entry.replacementSpan.start + entry.replacementSpan.length); + range = new monaco_editor_core_exports.Range(p1.lineNumber, p1.column, p2.lineNumber, p2.column); + } + const tags = []; + if (entry.kindModifiers?.indexOf("deprecated") !== -1) { + tags.push(monaco_editor_core_exports.languages.CompletionItemTag.Deprecated); + } + return { + uri: resource, + position, + offset, + range, + label: entry.name, + insertText: entry.name, + sortText: entry.sortText, + kind: SuggestAdapter.convertKind(entry.kind), + tags + }; + }); + return { + suggestions + }; + } + async resolveCompletionItem(item, token) { + const myItem = item; + const resource = myItem.uri; + const position = myItem.position; + const offset = myItem.offset; + const worker = await this._worker(resource); + const details = await worker.getCompletionEntryDetails(resource.toString(), offset, myItem.label); + if (!details) { + return myItem; + } + return { + uri: resource, + position, + label: details.name, + kind: SuggestAdapter.convertKind(details.kind), + detail: displayPartsToString(details.displayParts), + documentation: { + value: SuggestAdapter.createDocumentationString(details) + } + }; + } + static convertKind(kind) { + switch (kind) { + case Kind.primitiveType: + case Kind.keyword: + return monaco_editor_core_exports.languages.CompletionItemKind.Keyword; + case Kind.variable: + case Kind.localVariable: + return monaco_editor_core_exports.languages.CompletionItemKind.Variable; + case Kind.memberVariable: + case Kind.memberGetAccessor: + case Kind.memberSetAccessor: + return monaco_editor_core_exports.languages.CompletionItemKind.Field; + case Kind.function: + case Kind.memberFunction: + case Kind.constructSignature: + case Kind.callSignature: + case Kind.indexSignature: + return monaco_editor_core_exports.languages.CompletionItemKind.Function; + case Kind.enum: + return monaco_editor_core_exports.languages.CompletionItemKind.Enum; + case Kind.module: + return monaco_editor_core_exports.languages.CompletionItemKind.Module; + case Kind.class: + return monaco_editor_core_exports.languages.CompletionItemKind.Class; + case Kind.interface: + return monaco_editor_core_exports.languages.CompletionItemKind.Interface; + case Kind.warning: + return monaco_editor_core_exports.languages.CompletionItemKind.File; + } + return monaco_editor_core_exports.languages.CompletionItemKind.Property; + } + static createDocumentationString(details) { + let documentationString = displayPartsToString(details.documentation); + if (details.tags) { + for (const tag of details.tags) { + documentationString += ` + +${tagToString(tag)}`; + } + } + return documentationString; + } +}; +function tagToString(tag) { + let tagLabel = `*@${tag.name}*`; + if (tag.name === "param" && tag.text) { + const [paramName, ...rest] = tag.text; + tagLabel += `\`${paramName.text}\``; + if (rest.length > 0) + tagLabel += ` \u2014 ${rest.map((r) => r.text).join(" ")}`; + } else if (Array.isArray(tag.text)) { + tagLabel += ` \u2014 ${tag.text.map((r) => r.text).join(" ")}`; + } else if (tag.text) { + tagLabel += ` \u2014 ${tag.text}`; + } + return tagLabel; +} +var SignatureHelpAdapter = class extends Adapter { + signatureHelpTriggerCharacters = ["(", ","]; + static _toSignatureHelpTriggerReason(context) { + switch (context.triggerKind) { + case monaco_editor_core_exports.languages.SignatureHelpTriggerKind.TriggerCharacter: + if (context.triggerCharacter) { + if (context.isRetrigger) { + return { kind: "retrigger", triggerCharacter: context.triggerCharacter }; + } else { + return { kind: "characterTyped", triggerCharacter: context.triggerCharacter }; + } + } else { + return { kind: "invoked" }; + } + case monaco_editor_core_exports.languages.SignatureHelpTriggerKind.ContentChange: + return context.isRetrigger ? { kind: "retrigger" } : { kind: "invoked" }; + case monaco_editor_core_exports.languages.SignatureHelpTriggerKind.Invoke: + default: + return { kind: "invoked" }; + } + } + async provideSignatureHelp(model, position, token, context) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const info = await worker.getSignatureHelpItems(resource.toString(), offset, { + triggerReason: SignatureHelpAdapter._toSignatureHelpTriggerReason(context) + }); + if (!info || model.isDisposed()) { + return; + } + const ret = { + activeSignature: info.selectedItemIndex, + activeParameter: info.argumentIndex, + signatures: [] + }; + info.items.forEach((item) => { + const signature = { + label: "", + parameters: [] + }; + signature.documentation = { + value: displayPartsToString(item.documentation) + }; + signature.label += displayPartsToString(item.prefixDisplayParts); + item.parameters.forEach((p, i, a) => { + const label = displayPartsToString(p.displayParts); + const parameter = { + label, + documentation: { + value: displayPartsToString(p.documentation) + } + }; + signature.label += label; + signature.parameters.push(parameter); + if (i < a.length - 1) { + signature.label += displayPartsToString(item.separatorDisplayParts); + } + }); + signature.label += displayPartsToString(item.suffixDisplayParts); + ret.signatures.push(signature); + }); + return { + value: ret, + dispose() { + } + }; + } +}; +var QuickInfoAdapter = class extends Adapter { + async provideHover(model, position, token) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const info = await worker.getQuickInfoAtPosition(resource.toString(), offset); + if (!info || model.isDisposed()) { + return; + } + const documentation = displayPartsToString(info.documentation); + const tags = info.tags ? info.tags.map((tag) => tagToString(tag)).join(" \n\n") : ""; + const contents = displayPartsToString(info.displayParts); + return { + range: this._textSpanToRange(model, info.textSpan), + contents: [ + { + value: "```typescript\n" + contents + "\n```\n" + }, + { + value: documentation + (tags ? "\n\n" + tags : "") + } + ] + }; + } +}; +var OccurrencesAdapter = class extends Adapter { + async provideDocumentHighlights(model, position, token) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const entries = await worker.getOccurrencesAtPosition(resource.toString(), offset); + if (!entries || model.isDisposed()) { + return; + } + return entries.map((entry) => { + return { + range: this._textSpanToRange(model, entry.textSpan), + kind: entry.isWriteAccess ? monaco_editor_core_exports.languages.DocumentHighlightKind.Write : monaco_editor_core_exports.languages.DocumentHighlightKind.Text + }; + }); + } +}; +var DefinitionAdapter = class extends Adapter { + constructor(_libFiles, worker) { + super(worker); + this._libFiles = _libFiles; + } + async provideDefinition(model, position, token) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const entries = await worker.getDefinitionAtPosition(resource.toString(), offset); + if (!entries || model.isDisposed()) { + return; + } + await this._libFiles.fetchLibFilesIfNecessary(entries.map((entry) => monaco_editor_core_exports.Uri.parse(entry.fileName))); + if (model.isDisposed()) { + return; + } + const result = []; + for (let entry of entries) { + const refModel = this._libFiles.getOrCreateModel(entry.fileName); + if (refModel) { + result.push({ + uri: refModel.uri, + range: this._textSpanToRange(refModel, entry.textSpan) + }); + } + } + return result; + } +}; +var ReferenceAdapter = class extends Adapter { + constructor(_libFiles, worker) { + super(worker); + this._libFiles = _libFiles; + } + async provideReferences(model, position, context, token) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const entries = await worker.getReferencesAtPosition(resource.toString(), offset); + if (!entries || model.isDisposed()) { + return; + } + await this._libFiles.fetchLibFilesIfNecessary(entries.map((entry) => monaco_editor_core_exports.Uri.parse(entry.fileName))); + if (model.isDisposed()) { + return; + } + const result = []; + for (let entry of entries) { + const refModel = this._libFiles.getOrCreateModel(entry.fileName); + if (refModel) { + result.push({ + uri: refModel.uri, + range: this._textSpanToRange(refModel, entry.textSpan) + }); + } + } + return result; + } +}; +var OutlineAdapter = class extends Adapter { + async provideDocumentSymbols(model, token) { + const resource = model.uri; + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const items = await worker.getNavigationBarItems(resource.toString()); + if (!items || model.isDisposed()) { + return; + } + const convert = (bucket, item, containerLabel) => { + let result2 = { + name: item.text, + detail: "", + kind: outlineTypeTable[item.kind] || monaco_editor_core_exports.languages.SymbolKind.Variable, + range: this._textSpanToRange(model, item.spans[0]), + selectionRange: this._textSpanToRange(model, item.spans[0]), + tags: [] + }; + if (containerLabel) + result2.containerName = containerLabel; + if (item.childItems && item.childItems.length > 0) { + for (let child of item.childItems) { + convert(bucket, child, result2.name); + } + } + bucket.push(result2); + }; + let result = []; + items.forEach((item) => convert(result, item)); + return result; + } +}; +var Kind = class { +}; +__publicField(Kind, "unknown", ""); +__publicField(Kind, "keyword", "keyword"); +__publicField(Kind, "script", "script"); +__publicField(Kind, "module", "module"); +__publicField(Kind, "class", "class"); +__publicField(Kind, "interface", "interface"); +__publicField(Kind, "type", "type"); +__publicField(Kind, "enum", "enum"); +__publicField(Kind, "variable", "var"); +__publicField(Kind, "localVariable", "local var"); +__publicField(Kind, "function", "function"); +__publicField(Kind, "localFunction", "local function"); +__publicField(Kind, "memberFunction", "method"); +__publicField(Kind, "memberGetAccessor", "getter"); +__publicField(Kind, "memberSetAccessor", "setter"); +__publicField(Kind, "memberVariable", "property"); +__publicField(Kind, "constructorImplementation", "constructor"); +__publicField(Kind, "callSignature", "call"); +__publicField(Kind, "indexSignature", "index"); +__publicField(Kind, "constructSignature", "construct"); +__publicField(Kind, "parameter", "parameter"); +__publicField(Kind, "typeParameter", "type parameter"); +__publicField(Kind, "primitiveType", "primitive type"); +__publicField(Kind, "label", "label"); +__publicField(Kind, "alias", "alias"); +__publicField(Kind, "const", "const"); +__publicField(Kind, "let", "let"); +__publicField(Kind, "warning", "warning"); +var outlineTypeTable = /* @__PURE__ */ Object.create(null); +outlineTypeTable[Kind.module] = monaco_editor_core_exports.languages.SymbolKind.Module; +outlineTypeTable[Kind.class] = monaco_editor_core_exports.languages.SymbolKind.Class; +outlineTypeTable[Kind.enum] = monaco_editor_core_exports.languages.SymbolKind.Enum; +outlineTypeTable[Kind.interface] = monaco_editor_core_exports.languages.SymbolKind.Interface; +outlineTypeTable[Kind.memberFunction] = monaco_editor_core_exports.languages.SymbolKind.Method; +outlineTypeTable[Kind.memberVariable] = monaco_editor_core_exports.languages.SymbolKind.Property; +outlineTypeTable[Kind.memberGetAccessor] = monaco_editor_core_exports.languages.SymbolKind.Property; +outlineTypeTable[Kind.memberSetAccessor] = monaco_editor_core_exports.languages.SymbolKind.Property; +outlineTypeTable[Kind.variable] = monaco_editor_core_exports.languages.SymbolKind.Variable; +outlineTypeTable[Kind.const] = monaco_editor_core_exports.languages.SymbolKind.Variable; +outlineTypeTable[Kind.localVariable] = monaco_editor_core_exports.languages.SymbolKind.Variable; +outlineTypeTable[Kind.variable] = monaco_editor_core_exports.languages.SymbolKind.Variable; +outlineTypeTable[Kind.function] = monaco_editor_core_exports.languages.SymbolKind.Function; +outlineTypeTable[Kind.localFunction] = monaco_editor_core_exports.languages.SymbolKind.Function; +var FormatHelper = class extends Adapter { + static _convertOptions(options) { + return { + ConvertTabsToSpaces: options.insertSpaces, + TabSize: options.tabSize, + IndentSize: options.tabSize, + IndentStyle: 2 /* Smart */, + NewLineCharacter: "\n", + InsertSpaceAfterCommaDelimiter: true, + InsertSpaceAfterSemicolonInForStatements: true, + InsertSpaceBeforeAndAfterBinaryOperators: true, + InsertSpaceAfterKeywordsInControlFlowStatements: true, + InsertSpaceAfterFunctionKeywordForAnonymousFunctions: true, + InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false, + InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false, + InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false, + PlaceOpenBraceOnNewLineForControlBlocks: false, + PlaceOpenBraceOnNewLineForFunctions: false + }; + } + _convertTextChanges(model, change) { + return { + text: change.newText, + range: this._textSpanToRange(model, change.span) + }; + } +}; +var FormatAdapter = class extends FormatHelper { + async provideDocumentRangeFormattingEdits(model, range, options, token) { + const resource = model.uri; + const startOffset = model.getOffsetAt({ + lineNumber: range.startLineNumber, + column: range.startColumn + }); + const endOffset = model.getOffsetAt({ + lineNumber: range.endLineNumber, + column: range.endColumn + }); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const edits = await worker.getFormattingEditsForRange(resource.toString(), startOffset, endOffset, FormatHelper._convertOptions(options)); + if (!edits || model.isDisposed()) { + return; + } + return edits.map((edit) => this._convertTextChanges(model, edit)); + } +}; +var FormatOnTypeAdapter = class extends FormatHelper { + get autoFormatTriggerCharacters() { + return [";", "}", "\n"]; + } + async provideOnTypeFormattingEdits(model, position, ch, options, token) { + const resource = model.uri; + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const edits = await worker.getFormattingEditsAfterKeystroke(resource.toString(), offset, ch, FormatHelper._convertOptions(options)); + if (!edits || model.isDisposed()) { + return; + } + return edits.map((edit) => this._convertTextChanges(model, edit)); + } +}; +var CodeActionAdaptor = class extends FormatHelper { + async provideCodeActions(model, range, context, token) { + const resource = model.uri; + const start = model.getOffsetAt({ + lineNumber: range.startLineNumber, + column: range.startColumn + }); + const end = model.getOffsetAt({ + lineNumber: range.endLineNumber, + column: range.endColumn + }); + const formatOptions = FormatHelper._convertOptions(model.getOptions()); + const errorCodes = context.markers.filter((m) => m.code).map((m) => m.code).map(Number); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const codeFixes = await worker.getCodeFixesAtPosition(resource.toString(), start, end, errorCodes, formatOptions); + if (!codeFixes || model.isDisposed()) { + return { actions: [], dispose: () => { + } }; + } + const actions = codeFixes.filter((fix) => { + return fix.changes.filter((change) => change.isNewFile).length === 0; + }).map((fix) => { + return this._tsCodeFixActionToMonacoCodeAction(model, context, fix); + }); + return { + actions, + dispose: () => { + } + }; + } + _tsCodeFixActionToMonacoCodeAction(model, context, codeFix) { + const edits = []; + for (const change of codeFix.changes) { + for (const textChange of change.textChanges) { + edits.push({ + resource: model.uri, + versionId: void 0, + textEdit: { + range: this._textSpanToRange(model, textChange.span), + text: textChange.newText + } + }); + } + } + const action = { + title: codeFix.description, + edit: { edits }, + diagnostics: context.markers, + kind: "quickfix" + }; + return action; + } +}; +var RenameAdapter = class extends Adapter { + constructor(_libFiles, worker) { + super(worker); + this._libFiles = _libFiles; + } + async provideRenameEdits(model, position, newName, token) { + const resource = model.uri; + const fileName = resource.toString(); + const offset = model.getOffsetAt(position); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return; + } + const renameInfo = await worker.getRenameInfo(fileName, offset, { + allowRenameOfImportPath: false + }); + if (renameInfo.canRename === false) { + return { + edits: [], + rejectReason: renameInfo.localizedErrorMessage + }; + } + if (renameInfo.fileToRename !== void 0) { + throw new Error("Renaming files is not supported."); + } + const renameLocations = await worker.findRenameLocations(fileName, offset, false, false, false); + if (!renameLocations || model.isDisposed()) { + return; + } + const edits = []; + for (const renameLocation of renameLocations) { + const model2 = this._libFiles.getOrCreateModel(renameLocation.fileName); + if (model2) { + edits.push({ + resource: model2.uri, + versionId: void 0, + textEdit: { + range: this._textSpanToRange(model2, renameLocation.textSpan), + text: newName + } + }); + } else { + throw new Error(`Unknown file ${renameLocation.fileName}.`); + } + } + return { edits }; + } +}; +var InlayHintsAdapter = class extends Adapter { + async provideInlayHints(model, range, token) { + const resource = model.uri; + const fileName = resource.toString(); + const start = model.getOffsetAt({ + lineNumber: range.startLineNumber, + column: range.startColumn + }); + const end = model.getOffsetAt({ + lineNumber: range.endLineNumber, + column: range.endColumn + }); + const worker = await this._worker(resource); + if (model.isDisposed()) { + return null; + } + const tsHints = await worker.provideInlayHints(fileName, start, end); + const hints = tsHints.map((hint) => { + return { + ...hint, + label: hint.text, + position: model.getPositionAt(hint.position), + kind: this._convertHintKind(hint.kind) + }; + }); + return { hints, dispose: () => { + } }; + } + _convertHintKind(kind) { + switch (kind) { + case "Parameter": + return monaco_editor_core_exports.languages.InlayHintKind.Parameter; + case "Type": + return monaco_editor_core_exports.languages.InlayHintKind.Type; + default: + return monaco_editor_core_exports.languages.InlayHintKind.Type; + } + } +}; + +// src/language/typescript/tsMode.ts +var javaScriptWorker; +var typeScriptWorker; +function setupTypeScript(defaults) { + typeScriptWorker = setupMode(defaults, "typescript"); +} +function setupJavaScript(defaults) { + javaScriptWorker = setupMode(defaults, "javascript"); +} +function getJavaScriptWorker() { + return new Promise((resolve, reject) => { + if (!javaScriptWorker) { + return reject("JavaScript not registered!"); + } + resolve(javaScriptWorker); + }); +} +function getTypeScriptWorker() { + return new Promise((resolve, reject) => { + if (!typeScriptWorker) { + return reject("TypeScript not registered!"); + } + resolve(typeScriptWorker); + }); +} +function setupMode(defaults, modeId) { + const client = new WorkerManager(modeId, defaults); + const worker = (...uris) => { + return client.getLanguageServiceWorker(...uris); + }; + const libFiles = new LibFiles(worker); + monaco_editor_core_exports.languages.registerCompletionItemProvider(modeId, new SuggestAdapter(worker)); + monaco_editor_core_exports.languages.registerSignatureHelpProvider(modeId, new SignatureHelpAdapter(worker)); + monaco_editor_core_exports.languages.registerHoverProvider(modeId, new QuickInfoAdapter(worker)); + monaco_editor_core_exports.languages.registerDocumentHighlightProvider(modeId, new OccurrencesAdapter(worker)); + monaco_editor_core_exports.languages.registerDefinitionProvider(modeId, new DefinitionAdapter(libFiles, worker)); + monaco_editor_core_exports.languages.registerReferenceProvider(modeId, new ReferenceAdapter(libFiles, worker)); + monaco_editor_core_exports.languages.registerDocumentSymbolProvider(modeId, new OutlineAdapter(worker)); + monaco_editor_core_exports.languages.registerDocumentRangeFormattingEditProvider(modeId, new FormatAdapter(worker)); + monaco_editor_core_exports.languages.registerOnTypeFormattingEditProvider(modeId, new FormatOnTypeAdapter(worker)); + monaco_editor_core_exports.languages.registerCodeActionProvider(modeId, new CodeActionAdaptor(worker)); + monaco_editor_core_exports.languages.registerRenameProvider(modeId, new RenameAdapter(libFiles, worker)); + monaco_editor_core_exports.languages.registerInlayHintsProvider(modeId, new InlayHintsAdapter(worker)); + new DiagnosticsAdapter(libFiles, defaults, modeId, worker); + return worker; +} + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8401.a31483a7.js b/assets/js/8401.a31483a7.js new file mode 100644 index 00000000000..bc2f85cedd8 --- /dev/null +++ b/assets/js/8401.a31483a7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8401],{78401:(e,t,i)=>{i.r(t),i.d(t,{Adapter:()=>_,CodeActionAdaptor:()=>M,DefinitionAdapter:()=>A,DiagnosticsAdapter:()=>y,FormatAdapter:()=>N,FormatHelper:()=>O,FormatOnTypeAdapter:()=>K,InlayHintsAdapter:()=>E,Kind:()=>I,LibFiles:()=>w,OccurrencesAdapter:()=>C,OutlineAdapter:()=>F,QuickInfoAdapter:()=>v,ReferenceAdapter:()=>D,RenameAdapter:()=>R,SignatureHelpAdapter:()=>x,SuggestAdapter:()=>S,WorkerManager:()=>m,flattenDiagnosticMessageText:()=>h,getJavaScriptWorker:()=>W,getTypeScriptWorker:()=>j,setupJavaScript:()=>V,setupTypeScript:()=>H});var s,r,n=i(15030),a=i(39585),o=Object.defineProperty,l=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,d=Object.prototype.hasOwnProperty,u=(e,t,i,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of c(t))d.call(e,r)||r===i||o(e,r,{get:()=>t[r],enumerable:!(s=l(t,r))||s.enumerable});return e},g=(e,t,i)=>(((e,t,i)=>{t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i})(e,"symbol"!=typeof t?t+"":t,i),i),p={};u(p,s=n,"default"),r&&u(r,s,"default");var m=class{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange((()=>this._stopWorker())),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange((()=>this._updateExtraLibs()))}_configChangeListener;_updateExtraLibsToken;_extraLibsChangeListener;_worker;_client;dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=p.editor.createWebWorker({moduleId:"vs/language/typescript/tsWorker",label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(p.editor.getModels().filter((e=>e.getLanguageId()===this._modeId)).map((e=>e.uri))):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(...e){const t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}},b={};function h(e,t,i=0){if("string"==typeof e)return e;if(void 0===e)return"";let s="";if(i){s+=t;for(let e=0;e<i;e++)s+=" "}if(s+=e.messageText,i++,e.next)for(const r of e.next)s+=h(r,t,i);return s}function f(e){return e?e.map((e=>e.text)).join(""):""}b["lib.d.ts"]=!0,b["lib.dom.d.ts"]=!0,b["lib.dom.iterable.d.ts"]=!0,b["lib.es2015.collection.d.ts"]=!0,b["lib.es2015.core.d.ts"]=!0,b["lib.es2015.d.ts"]=!0,b["lib.es2015.generator.d.ts"]=!0,b["lib.es2015.iterable.d.ts"]=!0,b["lib.es2015.promise.d.ts"]=!0,b["lib.es2015.proxy.d.ts"]=!0,b["lib.es2015.reflect.d.ts"]=!0,b["lib.es2015.symbol.d.ts"]=!0,b["lib.es2015.symbol.wellknown.d.ts"]=!0,b["lib.es2016.array.include.d.ts"]=!0,b["lib.es2016.d.ts"]=!0,b["lib.es2016.full.d.ts"]=!0,b["lib.es2017.d.ts"]=!0,b["lib.es2017.full.d.ts"]=!0,b["lib.es2017.intl.d.ts"]=!0,b["lib.es2017.object.d.ts"]=!0,b["lib.es2017.sharedmemory.d.ts"]=!0,b["lib.es2017.string.d.ts"]=!0,b["lib.es2017.typedarrays.d.ts"]=!0,b["lib.es2018.asyncgenerator.d.ts"]=!0,b["lib.es2018.asynciterable.d.ts"]=!0,b["lib.es2018.d.ts"]=!0,b["lib.es2018.full.d.ts"]=!0,b["lib.es2018.intl.d.ts"]=!0,b["lib.es2018.promise.d.ts"]=!0,b["lib.es2018.regexp.d.ts"]=!0,b["lib.es2019.array.d.ts"]=!0,b["lib.es2019.d.ts"]=!0,b["lib.es2019.full.d.ts"]=!0,b["lib.es2019.object.d.ts"]=!0,b["lib.es2019.string.d.ts"]=!0,b["lib.es2019.symbol.d.ts"]=!0,b["lib.es2020.bigint.d.ts"]=!0,b["lib.es2020.d.ts"]=!0,b["lib.es2020.full.d.ts"]=!0,b["lib.es2020.intl.d.ts"]=!0,b["lib.es2020.promise.d.ts"]=!0,b["lib.es2020.sharedmemory.d.ts"]=!0,b["lib.es2020.string.d.ts"]=!0,b["lib.es2020.symbol.wellknown.d.ts"]=!0,b["lib.es2021.d.ts"]=!0,b["lib.es2021.full.d.ts"]=!0,b["lib.es2021.intl.d.ts"]=!0,b["lib.es2021.promise.d.ts"]=!0,b["lib.es2021.string.d.ts"]=!0,b["lib.es2021.weakref.d.ts"]=!0,b["lib.es5.d.ts"]=!0,b["lib.es6.d.ts"]=!0,b["lib.esnext.d.ts"]=!0,b["lib.esnext.full.d.ts"]=!0,b["lib.esnext.intl.d.ts"]=!0,b["lib.esnext.promise.d.ts"]=!0,b["lib.esnext.string.d.ts"]=!0,b["lib.esnext.weakref.d.ts"]=!0,b["lib.scripthost.d.ts"]=!0,b["lib.webworker.d.ts"]=!0,b["lib.webworker.importscripts.d.ts"]=!0,b["lib.webworker.iterable.d.ts"]=!0;var _=class{constructor(e){this._worker=e}_textSpanToRange(e,t){let i=e.getPositionAt(t.start),s=e.getPositionAt(t.start+t.length),{lineNumber:r,column:n}=i,{lineNumber:a,column:o}=s;return{startLineNumber:r,startColumn:n,endLineNumber:a,endColumn:o}}},w=class{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}_libFiles;_hasFetchedLibFiles;_fetchLibFilesPromise;isLibFile(e){return!!e&&(0===e.path.indexOf("/lib.")&&!!b[e.path.slice(1)])}getOrCreateModel(e){const t=p.Uri.parse(e),i=p.editor.getModel(t);if(i)return i;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return p.editor.createModel(this._libFiles[t.path.slice(1)],"typescript",t);const s=a.TG.getExtraLibs()[e];return s?p.editor.createModel(s.content,"typescript",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then((e=>e.getLibFiles())).then((e=>{this._hasFetchedLibFiles=!0,this._libFiles=e}))),this._fetchLibFilesPromise}},y=class extends _{constructor(e,t,i,s){super(s),this._libFiles=e,this._defaults=t,this._selector=i;const r=e=>{if(e.getLanguageId()!==i)return;const t=()=>{const{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)};let s;const r=e.onDidChangeContent((()=>{clearTimeout(s),s=window.setTimeout(t,500)})),n=e.onDidChangeAttached((()=>{const{onlyVisible:i}=this._defaults.getDiagnosticsOptions();i&&(e.isAttachedToEditor()?t():p.editor.setModelMarkers(e,this._selector,[]))}));this._listener[e.uri.toString()]={dispose(){r.dispose(),n.dispose(),clearTimeout(s)}},t()},n=e=>{p.editor.setModelMarkers(e,this._selector,[]);const t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(p.editor.onDidCreateModel((e=>r(e)))),this._disposables.push(p.editor.onWillDisposeModel(n)),this._disposables.push(p.editor.onDidChangeModelLanguage((e=>{n(e.model),r(e.model)}))),this._disposables.push({dispose(){for(const e of p.editor.getModels())n(e)}});const a=()=>{for(const e of p.editor.getModels())n(e),r(e)};this._disposables.push(this._defaults.onDidChange(a)),this._disposables.push(this._defaults.onDidExtraLibsChange(a)),p.editor.getModels().forEach((e=>r(e)))}_disposables=[];_listener=Object.create(null);dispose(){this._disposables.forEach((e=>e&&e.dispose())),this._disposables=[]}async _doValidate(e){const t=await this._worker(e.uri);if(e.isDisposed())return;const i=[],{noSyntaxValidation:s,noSemanticValidation:r,noSuggestionDiagnostics:n}=this._defaults.getDiagnosticsOptions();s||i.push(t.getSyntacticDiagnostics(e.uri.toString())),r||i.push(t.getSemanticDiagnostics(e.uri.toString())),n||i.push(t.getSuggestionDiagnostics(e.uri.toString()));const a=await Promise.all(i);if(!a||e.isDisposed())return;const o=a.reduce(((e,t)=>t.concat(e)),[]).filter((e=>-1===(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(e.code))),l=o.map((e=>e.relatedInformation||[])).reduce(((e,t)=>t.concat(e)),[]).map((e=>e.file?p.Uri.parse(e.file.fileName):null));await this._libFiles.fetchLibFilesIfNecessary(l),e.isDisposed()||p.editor.setModelMarkers(e,this._selector,o.map((t=>this._convertDiagnostics(e,t))))}_convertDiagnostics(e,t){const i=t.start||0,s=t.length||1,{lineNumber:r,column:n}=e.getPositionAt(i),{lineNumber:a,column:o}=e.getPositionAt(i+s),l=[];return t.reportsUnnecessary&&l.push(p.MarkerTag.Unnecessary),t.reportsDeprecated&&l.push(p.MarkerTag.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:r,startColumn:n,endLineNumber:a,endColumn:o,message:h(t.messageText,"\n"),code:t.code.toString(),tags:l,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];const i=[];return t.forEach((t=>{let s=e;if(t.file&&(s=this._libFiles.getOrCreateModel(t.file.fileName)),!s)return;const r=t.start||0,n=t.length||1,{lineNumber:a,column:o}=s.getPositionAt(r),{lineNumber:l,column:c}=s.getPositionAt(r+n);i.push({resource:s.uri,startLineNumber:a,startColumn:o,endLineNumber:l,endColumn:c,message:h(t.messageText,"\n")})})),i}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return p.MarkerSeverity.Error;case 3:return p.MarkerSeverity.Info;case 0:return p.MarkerSeverity.Warning;case 2:return p.MarkerSeverity.Hint}return p.MarkerSeverity.Info}},S=class extends _{get triggerCharacters(){return["."]}async provideCompletionItems(e,t,i,s){const r=e.getWordUntilPosition(t),n=new p.Range(t.lineNumber,r.startColumn,t.lineNumber,r.endColumn),a=e.uri,o=e.getOffsetAt(t),l=await this._worker(a);if(e.isDisposed())return;const c=await l.getCompletionsAtPosition(a.toString(),o);if(!c||e.isDisposed())return;return{suggestions:c.entries.map((i=>{let s=n;if(i.replacementSpan){const t=e.getPositionAt(i.replacementSpan.start),r=e.getPositionAt(i.replacementSpan.start+i.replacementSpan.length);s=new p.Range(t.lineNumber,t.column,r.lineNumber,r.column)}const r=[];return-1!==i.kindModifiers?.indexOf("deprecated")&&r.push(p.languages.CompletionItemTag.Deprecated),{uri:a,position:t,offset:o,range:s,label:i.name,insertText:i.name,sortText:i.sortText,kind:S.convertKind(i.kind),tags:r}}))}}async resolveCompletionItem(e,t){const i=e,s=i.uri,r=i.position,n=i.offset,a=await this._worker(s),o=await a.getCompletionEntryDetails(s.toString(),n,i.label);return o?{uri:s,position:r,label:o.name,kind:S.convertKind(o.kind),detail:f(o.displayParts),documentation:{value:S.createDocumentationString(o)}}:i}static convertKind(e){switch(e){case I.primitiveType:case I.keyword:return p.languages.CompletionItemKind.Keyword;case I.variable:case I.localVariable:return p.languages.CompletionItemKind.Variable;case I.memberVariable:case I.memberGetAccessor:case I.memberSetAccessor:return p.languages.CompletionItemKind.Field;case I.function:case I.memberFunction:case I.constructSignature:case I.callSignature:case I.indexSignature:return p.languages.CompletionItemKind.Function;case I.enum:return p.languages.CompletionItemKind.Enum;case I.module:return p.languages.CompletionItemKind.Module;case I.class:return p.languages.CompletionItemKind.Class;case I.interface:return p.languages.CompletionItemKind.Interface;case I.warning:return p.languages.CompletionItemKind.File}return p.languages.CompletionItemKind.Property}static createDocumentationString(e){let t=f(e.documentation);if(e.tags)for(const i of e.tags)t+=`\n\n${k(i)}`;return t}};function k(e){let t=`*@${e.name}*`;if("param"===e.name&&e.text){const[i,...s]=e.text;t+=`\`${i.text}\``,s.length>0&&(t+=` \u2014 ${s.map((e=>e.text)).join(" ")}`)}else Array.isArray(e.text)?t+=` \u2014 ${e.text.map((e=>e.text)).join(" ")}`:e.text&&(t+=` \u2014 ${e.text}`);return t}var x=class extends _{signatureHelpTriggerCharacters=["(",","];static _toSignatureHelpTriggerReason(e){switch(e.triggerKind){case p.languages.SignatureHelpTriggerKind.TriggerCharacter:return e.triggerCharacter?e.isRetrigger?{kind:"retrigger",triggerCharacter:e.triggerCharacter}:{kind:"characterTyped",triggerCharacter:e.triggerCharacter}:{kind:"invoked"};case p.languages.SignatureHelpTriggerKind.ContentChange:return e.isRetrigger?{kind:"retrigger"}:{kind:"invoked"};case p.languages.SignatureHelpTriggerKind.Invoke:default:return{kind:"invoked"}}}async provideSignatureHelp(e,t,i,s){const r=e.uri,n=e.getOffsetAt(t),a=await this._worker(r);if(e.isDisposed())return;const o=await a.getSignatureHelpItems(r.toString(),n,{triggerReason:x._toSignatureHelpTriggerReason(s)});if(!o||e.isDisposed())return;const l={activeSignature:o.selectedItemIndex,activeParameter:o.argumentIndex,signatures:[]};return o.items.forEach((e=>{const t={label:"",parameters:[]};t.documentation={value:f(e.documentation)},t.label+=f(e.prefixDisplayParts),e.parameters.forEach(((i,s,r)=>{const n=f(i.displayParts),a={label:n,documentation:{value:f(i.documentation)}};t.label+=n,t.parameters.push(a),s<r.length-1&&(t.label+=f(e.separatorDisplayParts))})),t.label+=f(e.suffixDisplayParts),l.signatures.push(t)})),{value:l,dispose(){}}}},v=class extends _{async provideHover(e,t,i){const s=e.uri,r=e.getOffsetAt(t),n=await this._worker(s);if(e.isDisposed())return;const a=await n.getQuickInfoAtPosition(s.toString(),r);if(!a||e.isDisposed())return;const o=f(a.documentation),l=a.tags?a.tags.map((e=>k(e))).join(" \n\n"):"",c=f(a.displayParts);return{range:this._textSpanToRange(e,a.textSpan),contents:[{value:"```typescript\n"+c+"\n```\n"},{value:o+(l?"\n\n"+l:"")}]}}},C=class extends _{async provideDocumentHighlights(e,t,i){const s=e.uri,r=e.getOffsetAt(t),n=await this._worker(s);if(e.isDisposed())return;const a=await n.getOccurrencesAtPosition(s.toString(),r);return a&&!e.isDisposed()?a.map((t=>({range:this._textSpanToRange(e,t.textSpan),kind:t.isWriteAccess?p.languages.DocumentHighlightKind.Write:p.languages.DocumentHighlightKind.Text}))):void 0}},A=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideDefinition(e,t,i){const s=e.uri,r=e.getOffsetAt(t),n=await this._worker(s);if(e.isDisposed())return;const a=await n.getDefinitionAtPosition(s.toString(),r);if(!a||e.isDisposed())return;if(await this._libFiles.fetchLibFilesIfNecessary(a.map((e=>p.Uri.parse(e.fileName)))),e.isDisposed())return;const o=[];for(let l of a){const e=this._libFiles.getOrCreateModel(l.fileName);e&&o.push({uri:e.uri,range:this._textSpanToRange(e,l.textSpan)})}return o}},D=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideReferences(e,t,i,s){const r=e.uri,n=e.getOffsetAt(t),a=await this._worker(r);if(e.isDisposed())return;const o=await a.getReferencesAtPosition(r.toString(),n);if(!o||e.isDisposed())return;if(await this._libFiles.fetchLibFilesIfNecessary(o.map((e=>p.Uri.parse(e.fileName)))),e.isDisposed())return;const l=[];for(let c of o){const e=this._libFiles.getOrCreateModel(c.fileName);e&&l.push({uri:e.uri,range:this._textSpanToRange(e,c.textSpan)})}return l}},F=class extends _{async provideDocumentSymbols(e,t){const i=e.uri,s=await this._worker(i);if(e.isDisposed())return;const r=await s.getNavigationBarItems(i.toString());if(!r||e.isDisposed())return;const n=(t,i,s)=>{let r={name:i.text,detail:"",kind:L[i.kind]||p.languages.SymbolKind.Variable,range:this._textSpanToRange(e,i.spans[0]),selectionRange:this._textSpanToRange(e,i.spans[0]),tags:[]};if(s&&(r.containerName=s),i.childItems&&i.childItems.length>0)for(let e of i.childItems)n(t,e,r.name);t.push(r)};let a=[];return r.forEach((e=>n(a,e))),a}},I=class{};g(I,"unknown",""),g(I,"keyword","keyword"),g(I,"script","script"),g(I,"module","module"),g(I,"class","class"),g(I,"interface","interface"),g(I,"type","type"),g(I,"enum","enum"),g(I,"variable","var"),g(I,"localVariable","local var"),g(I,"function","function"),g(I,"localFunction","local function"),g(I,"memberFunction","method"),g(I,"memberGetAccessor","getter"),g(I,"memberSetAccessor","setter"),g(I,"memberVariable","property"),g(I,"constructorImplementation","constructor"),g(I,"callSignature","call"),g(I,"indexSignature","index"),g(I,"constructSignature","construct"),g(I,"parameter","parameter"),g(I,"typeParameter","type parameter"),g(I,"primitiveType","primitive type"),g(I,"label","label"),g(I,"alias","alias"),g(I,"const","const"),g(I,"let","let"),g(I,"warning","warning");var L=Object.create(null);L[I.module]=p.languages.SymbolKind.Module,L[I.class]=p.languages.SymbolKind.Class,L[I.enum]=p.languages.SymbolKind.Enum,L[I.interface]=p.languages.SymbolKind.Interface,L[I.memberFunction]=p.languages.SymbolKind.Method,L[I.memberVariable]=p.languages.SymbolKind.Property,L[I.memberGetAccessor]=p.languages.SymbolKind.Property,L[I.memberSetAccessor]=p.languages.SymbolKind.Property,L[I.variable]=p.languages.SymbolKind.Variable,L[I.const]=p.languages.SymbolKind.Variable,L[I.localVariable]=p.languages.SymbolKind.Variable,L[I.variable]=p.languages.SymbolKind.Variable,L[I.function]=p.languages.SymbolKind.Function,L[I.localFunction]=p.languages.SymbolKind.Function;var T,P,O=class extends _{static _convertOptions(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:2,NewLineCharacter:"\n",InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}}},N=class extends O{async provideDocumentRangeFormattingEdits(e,t,i,s){const r=e.uri,n=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),o=await this._worker(r);if(e.isDisposed())return;const l=await o.getFormattingEditsForRange(r.toString(),n,a,O._convertOptions(i));return l&&!e.isDisposed()?l.map((t=>this._convertTextChanges(e,t))):void 0}},K=class extends O{get autoFormatTriggerCharacters(){return[";","}","\n"]}async provideOnTypeFormattingEdits(e,t,i,s,r){const n=e.uri,a=e.getOffsetAt(t),o=await this._worker(n);if(e.isDisposed())return;const l=await o.getFormattingEditsAfterKeystroke(n.toString(),a,i,O._convertOptions(s));return l&&!e.isDisposed()?l.map((t=>this._convertTextChanges(e,t))):void 0}},M=class extends O{async provideCodeActions(e,t,i,s){const r=e.uri,n=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),o=O._convertOptions(e.getOptions()),l=i.markers.filter((e=>e.code)).map((e=>e.code)).map(Number),c=await this._worker(r);if(e.isDisposed())return;const d=await c.getCodeFixesAtPosition(r.toString(),n,a,l,o);if(!d||e.isDisposed())return{actions:[],dispose:()=>{}};return{actions:d.filter((e=>0===e.changes.filter((e=>e.isNewFile)).length)).map((t=>this._tsCodeFixActionToMonacoCodeAction(e,i,t))),dispose:()=>{}}}_tsCodeFixActionToMonacoCodeAction(e,t,i){const s=[];for(const r of i.changes)for(const t of r.textChanges)s.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,t.span),text:t.newText}});return{title:i.description,edit:{edits:s},diagnostics:t.markers,kind:"quickfix"}}},R=class extends _{constructor(e,t){super(t),this._libFiles=e}async provideRenameEdits(e,t,i,s){const r=e.uri,n=r.toString(),a=e.getOffsetAt(t),o=await this._worker(r);if(e.isDisposed())return;const l=await o.getRenameInfo(n,a,{allowRenameOfImportPath:!1});if(!1===l.canRename)return{edits:[],rejectReason:l.localizedErrorMessage};if(void 0!==l.fileToRename)throw new Error("Renaming files is not supported.");const c=await o.findRenameLocations(n,a,!1,!1,!1);if(!c||e.isDisposed())return;const d=[];for(const u of c){const e=this._libFiles.getOrCreateModel(u.fileName);if(!e)throw new Error(`Unknown file ${u.fileName}.`);d.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,u.textSpan),text:i}})}return{edits:d}}},E=class extends _{async provideInlayHints(e,t,i){const s=e.uri,r=s.toString(),n=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),o=await this._worker(s);if(e.isDisposed())return null;return{hints:(await o.provideInlayHints(r,n,a)).map((t=>({...t,label:t.text,position:e.getPositionAt(t.position),kind:this._convertHintKind(t.kind)}))),dispose:()=>{}}}_convertHintKind(e){return"Parameter"===e?p.languages.InlayHintKind.Parameter:p.languages.InlayHintKind.Type}};function H(e){P=B(e,"typescript")}function V(e){T=B(e,"javascript")}function W(){return new Promise(((e,t)=>{if(!T)return t("JavaScript not registered!");e(T)}))}function j(){return new Promise(((e,t)=>{if(!P)return t("TypeScript not registered!");e(P)}))}function B(e,t){const i=new m(t,e),s=(...e)=>i.getLanguageServiceWorker(...e),r=new w(s);return p.languages.registerCompletionItemProvider(t,new S(s)),p.languages.registerSignatureHelpProvider(t,new x(s)),p.languages.registerHoverProvider(t,new v(s)),p.languages.registerDocumentHighlightProvider(t,new C(s)),p.languages.registerDefinitionProvider(t,new A(r,s)),p.languages.registerReferenceProvider(t,new D(r,s)),p.languages.registerDocumentSymbolProvider(t,new F(s)),p.languages.registerDocumentRangeFormattingEditProvider(t,new N(s)),p.languages.registerOnTypeFormattingEditProvider(t,new K(s)),p.languages.registerCodeActionProvider(t,new M(s)),p.languages.registerRenameProvider(t,new R(r,s)),p.languages.registerInlayHintsProvider(t,new E(s)),new y(r,e,t,s),s}}}]); \ No newline at end of file diff --git a/assets/js/8424.591b7eae.js b/assets/js/8424.591b7eae.js new file mode 100644 index 00000000000..277ca98c7c3 --- /dev/null +++ b/assets/js/8424.591b7eae.js @@ -0,0 +1,342 @@ +"use strict"; +exports.id = 8424; +exports.ids = [8424]; +exports.modules = { + +/***/ 98424: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/twig/twig.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g, + comments: { + blockComment: ["{#", "#}"] + }, + brackets: [ + ["{#", "#}"], + ["{%", "%}"], + ["{{", "}}"], + ["(", ")"], + ["[", "]"], + ["<!--", "-->"], + ["<", ">"] + ], + autoClosingPairs: [ + { open: "{# ", close: " #}" }, + { open: "{% ", close: " %}" }, + { open: "{{ ", close: " }}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "<", close: ">" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: "", + ignoreCase: true, + keywords: [ + "apply", + "autoescape", + "block", + "deprecated", + "do", + "embed", + "extends", + "flush", + "for", + "from", + "if", + "import", + "include", + "macro", + "sandbox", + "set", + "use", + "verbatim", + "with", + "endapply", + "endautoescape", + "endblock", + "endembed", + "endfor", + "endif", + "endmacro", + "endsandbox", + "endset", + "endwith", + "true", + "false" + ], + tokenizer: { + root: [ + [/\s+/], + [/{#/, "comment.twig", "@commentState"], + [/{%[-~]?/, "delimiter.twig", "@blockState"], + [/{{[-~]?/, "delimiter.twig", "@variableState"], + [/<!DOCTYPE/, "metatag.html", "@doctype"], + [/<!--/, "comment.html", "@comment"], + [/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/, ["delimiter.html", "tag.html", "", "delimiter.html"]], + [/(<)(script)/, ["delimiter.html", { token: "tag.html", next: "@script" }]], + [/(<)(style)/, ["delimiter.html", { token: "tag.html", next: "@style" }]], + [/(<)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/(<\/)((?:[\w\-]+:)?[\w\-]+)/, ["delimiter.html", { token: "tag.html", next: "@otherTag" }]], + [/</, "delimiter.html"], + [/[^<]+/] + ], + commentState: [ + [/#}/, "comment.twig", "@pop"], + [/./, "comment.twig"] + ], + blockState: [ + [/[-~]?%}/, "delimiter.twig", "@pop"], + [/\s+/], + [ + /(verbatim)(\s*)([-~]?%})/, + ["keyword.twig", "", { token: "delimiter.twig", next: "@rawDataState" }] + ], + { include: "expression" } + ], + rawDataState: [ + [ + /({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/, + ["delimiter.twig", "", "keyword.twig", "", { token: "delimiter.twig", next: "@popall" }] + ], + [/./, "string.twig"] + ], + variableState: [[/[-~]?}}/, "delimiter.twig", "@pop"], { include: "expression" }], + stringState: [ + [/"/, "string.twig", "@pop"], + [/#{\s*/, "string.twig", "@interpolationState"], + [/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/, "string.twig"] + ], + interpolationState: [ + [/}/, "string.twig", "@pop"], + { include: "expression" } + ], + expression: [ + [/\s+/], + [/\+|-|\/{1,2}|%|\*{1,2}/, "operators.twig"], + [/(and|or|not|b-and|b-xor|b-or)(\s+)/, ["operators.twig", ""]], + [/==|!=|<|>|>=|<=/, "operators.twig"], + [/(starts with|ends with|matches)(\s+)/, ["operators.twig", ""]], + [/(in)(\s+)/, ["operators.twig", ""]], + [/(is)(\s+)/, ["operators.twig", ""]], + [/\||~|:|\.{1,2}|\?{1,2}/, "operators.twig"], + [ + /[^\W\d][\w]*/, + { + cases: { + "@keywords": "keyword.twig", + "@default": "variable.twig" + } + } + ], + [/\d+(\.\d+)?/, "number.twig"], + [/\(|\)|\[|\]|{|}|,/, "delimiter.twig"], + [/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/, "string.twig"], + [/"/, "string.twig", "@stringState"], + [/=>/, "operators.twig"], + [/=/, "operators.twig"] + ], + doctype: [ + [/[^>]+/, "metatag.content.html"], + [/>/, "metatag.html", "@pop"] + ], + comment: [ + [/-->/, "comment.html", "@pop"], + [/[^-]+/, "comment.content.html"], + [/./, "comment.content.html"] + ], + otherTag: [ + [/\/?>/, "delimiter.html", "@pop"], + [/"([^"]*)"/, "attribute.value.html"], + [/'([^']*)'/, "attribute.value.html"], + [/[\w\-]+/, "attribute.name.html"], + [/=/, "delimiter.html"], + [/[ \t\r\n]+/] + ], + script: [ + [/type/, "attribute.name.html", "@scriptAfterType"], + [/"([^"]*)"/, "attribute.value.html"], + [/'([^']*)'/, "attribute.value.html"], + [/[\w\-]+/, "attribute.name.html"], + [/=/, "delimiter.html"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(script\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + scriptAfterType: [ + [/=/, "delimiter.html", "@scriptAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptAfterTypeEquals: [ + [ + /"([^"]*)"/, + { + token: "attribute.value.html", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value.html", + switchTo: "@scriptWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded", + nextEmbedded: "text/javascript" + } + ], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptWithCustomType: [ + [ + />/, + { + token: "delimiter.html", + next: "@scriptEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value.html"], + [/'([^']*)'/, "attribute.value.html"], + [/[\w\-]+/, "attribute.name.html"], + [/=/, "delimiter.html"], + [/[ \t\r\n]+/], + [/<\/script\s*>/, { token: "@rematch", next: "@pop" }] + ], + scriptEmbedded: [ + [/<\/script/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }], + [/[^<]+/, ""] + ], + style: [ + [/type/, "attribute.name.html", "@styleAfterType"], + [/"([^"]*)"/, "attribute.value.html"], + [/'([^']*)'/, "attribute.value.html"], + [/[\w\-]+/, "attribute.name.html"], + [/=/, "delimiter.html"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [ + /(<\/)(style\s*)(>)/, + ["delimiter.html", "tag.html", { token: "delimiter.html", next: "@pop" }] + ] + ], + styleAfterType: [ + [/=/, "delimiter.html", "@styleAfterTypeEquals"], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleAfterTypeEquals: [ + [ + /"([^"]*)"/, + { + token: "attribute.value.html", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + /'([^']*)'/, + { + token: "attribute.value.html", + switchTo: "@styleWithCustomType.$1" + } + ], + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded", + nextEmbedded: "text/css" + } + ], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleWithCustomType: [ + [ + />/, + { + token: "delimiter.html", + next: "@styleEmbedded.$S2", + nextEmbedded: "$S2" + } + ], + [/"([^"]*)"/, "attribute.value.html"], + [/'([^']*)'/, "attribute.value.html"], + [/[\w\-]+/, "attribute.name.html"], + [/=/, "delimiter.html"], + [/[ \t\r\n]+/], + [/<\/style\s*>/, { token: "@rematch", next: "@pop" }] + ], + styleEmbedded: [ + [/<\/style/, { token: "@rematch", next: "@pop", nextEmbedded: "@pop" }], + [/[^<]+/, ""] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8424.b47120a1.js b/assets/js/8424.b47120a1.js new file mode 100644 index 00000000000..62823b5881f --- /dev/null +++ b/assets/js/8424.b47120a1.js @@ -0,0 +1,2 @@ +/*! For license information please see 8424.b47120a1.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8424],{98424:(t,e,i)=>{i.r(e),i.d(e,{conf:()=>r,language:()=>m});var r={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["(",")"],["[","]"],["\x3c!--","--\x3e"],["<",">"]],autoClosingPairs:[{open:"{# ",close:" #}"},{open:"{% ",close:" %}"},{open:"{{ ",close:" }}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},m={defaultToken:"",tokenPostfix:"",ignoreCase:!0,keywords:["apply","autoescape","block","deprecated","do","embed","extends","flush","for","from","if","import","include","macro","sandbox","set","use","verbatim","with","endapply","endautoescape","endblock","endembed","endfor","endif","endmacro","endsandbox","endset","endwith","true","false"],tokenizer:{root:[[/\s+/],[/{#/,"comment.twig","@commentState"],[/{%[-~]?/,"delimiter.twig","@blockState"],[/{{[-~]?/,"delimiter.twig","@variableState"],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@comment"],[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/,["delimiter.html","tag.html","","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/[^<]+/]],commentState:[[/#}/,"comment.twig","@pop"],[/./,"comment.twig"]],blockState:[[/[-~]?%}/,"delimiter.twig","@pop"],[/\s+/],[/(verbatim)(\s*)([-~]?%})/,["keyword.twig","",{token:"delimiter.twig",next:"@rawDataState"}]],{include:"expression"}],rawDataState:[[/({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/,["delimiter.twig","","keyword.twig","",{token:"delimiter.twig",next:"@popall"}]],[/./,"string.twig"]],variableState:[[/[-~]?}}/,"delimiter.twig","@pop"],{include:"expression"}],stringState:[[/"/,"string.twig","@pop"],[/#{\s*/,"string.twig","@interpolationState"],[/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/,"string.twig"]],interpolationState:[[/}/,"string.twig","@pop"],{include:"expression"}],expression:[[/\s+/],[/\+|-|\/{1,2}|%|\*{1,2}/,"operators.twig"],[/(and|or|not|b-and|b-xor|b-or)(\s+)/,["operators.twig",""]],[/==|!=|<|>|>=|<=/,"operators.twig"],[/(starts with|ends with|matches)(\s+)/,["operators.twig",""]],[/(in)(\s+)/,["operators.twig",""]],[/(is)(\s+)/,["operators.twig",""]],[/\||~|:|\.{1,2}|\?{1,2}/,"operators.twig"],[/[^\W\d][\w]*/,{cases:{"@keywords":"keyword.twig","@default":"variable.twig"}}],[/\d+(\.\d+)?/,"number.twig"],[/\(|\)|\[|\]|{|}|,/,"delimiter.twig"],[/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/,"string.twig"],[/"/,"string.twig","@stringState"],[/=>/,"operators.twig"],[/=/,"operators.twig"]],doctype:[[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name.html","@scriptAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter.html","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name.html","@styleAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter.html","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}}}}]); \ No newline at end of file diff --git a/assets/js/8424.b47120a1.js.LICENSE.txt b/assets/js/8424.b47120a1.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8424.b47120a1.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/848.6ccac2fb.js b/assets/js/848.6ccac2fb.js new file mode 100644 index 00000000000..6afe50aa33c --- /dev/null +++ b/assets/js/848.6ccac2fb.js @@ -0,0 +1,2 @@ +/*! For license information please see 848.6ccac2fb.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[848],{40848:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>i,language:()=>s});var i={comments:{lineComment:"*"},brackets:[["[","]"],["(",")"]]},s={defaultToken:"invalid",ignoreCase:!0,tokenPostfix:".abap",keywords:["abap-source","abbreviated","abstract","accept","accepting","according","activation","actual","add","add-corresponding","adjacent","after","alias","aliases","align","all","allocate","alpha","analysis","analyzer","and","append","appendage","appending","application","archive","area","arithmetic","as","ascending","aspect","assert","assign","assigned","assigning","association","asynchronous","at","attributes","authority","authority-check","avg","back","background","backup","backward","badi","base","before","begin","between","big","binary","bintohex","bit","black","blank","blanks","blob","block","blocks","blue","bound","boundaries","bounds","boxed","break-point","buffer","by","bypassing","byte","byte-order","call","calling","case","cast","casting","catch","center","centered","chain","chain-input","chain-request","change","changing","channels","character","char-to-hex","check","checkbox","ci_","circular","class","class-coding","class-data","class-events","class-methods","class-pool","cleanup","clear","client","clob","clock","close","coalesce","code","coding","col_background","col_group","col_heading","col_key","col_negative","col_normal","col_positive","col_total","collect","color","column","columns","comment","comments","commit","common","communication","comparing","component","components","compression","compute","concat","concat_with_space","concatenate","cond","condense","condition","connect","connection","constants","context","contexts","continue","control","controls","conv","conversion","convert","copies","copy","corresponding","country","cover","cpi","create","creating","critical","currency","currency_conversion","current","cursor","cursor-selection","customer","customer-function","dangerous","data","database","datainfo","dataset","date","dats_add_days","dats_add_months","dats_days_between","dats_is_valid","daylight","dd/mm/yy","dd/mm/yyyy","ddmmyy","deallocate","decimal_shift","decimals","declarations","deep","default","deferred","define","defining","definition","delete","deleting","demand","department","descending","describe","destination","detail","dialog","directory","disconnect","display","display-mode","distinct","divide","divide-corresponding","division","do","dummy","duplicate","duplicates","duration","during","dynamic","dynpro","edit","editor-call","else","elseif","empty","enabled","enabling","encoding","end","endat","endcase","endcatch","endchain","endclass","enddo","endenhancement","end-enhancement-section","endexec","endform","endfunction","endian","endif","ending","endinterface","end-lines","endloop","endmethod","endmodule","end-of-definition","end-of-editing","end-of-file","end-of-page","end-of-selection","endon","endprovide","endselect","end-test-injection","end-test-seam","endtry","endwhile","endwith","engineering","enhancement","enhancement-point","enhancements","enhancement-section","entries","entry","enum","environment","equiv","errormessage","errors","escaping","event","events","exact","except","exception","exceptions","exception-table","exclude","excluding","exec","execute","exists","exit","exit-command","expand","expanding","expiration","explicit","exponent","export","exporting","extend","extended","extension","extract","fail","fetch","field","field-groups","fields","field-symbol","field-symbols","file","filter","filters","filter-table","final","find","first","first-line","fixed-point","fkeq","fkge","flush","font","for","form","format","forward","found","frame","frames","free","friends","from","function","functionality","function-pool","further","gaps","generate","get","giving","gkeq","gkge","global","grant","green","group","groups","handle","handler","harmless","hashed","having","hdb","header","headers","heading","head-lines","help-id","help-request","hextobin","hide","high","hint","hold","hotspot","icon","id","identification","identifier","ids","if","ignore","ignoring","immediately","implementation","implementations","implemented","implicit","import","importing","in","inactive","incl","include","includes","including","increment","index","index-line","infotypes","inheriting","init","initial","initialization","inner","inout","input","insert","instance","instances","instr","intensified","interface","interface-pool","interfaces","internal","intervals","into","inverse","inverted-date","is","iso","job","join","keep","keeping","kernel","key","keys","keywords","kind","language","last","late","layout","leading","leave","left","left-justified","leftplus","leftspace","legacy","length","let","level","levels","like","line","lines","line-count","linefeed","line-selection","line-size","list","listbox","list-processing","little","llang","load","load-of-program","lob","local","locale","locator","logfile","logical","log-point","long","loop","low","lower","lpad","lpi","ltrim","mail","main","major-id","mapping","margin","mark","mask","match","matchcode","max","maximum","medium","members","memory","mesh","message","message-id","messages","messaging","method","methods","min","minimum","minor-id","mm/dd/yy","mm/dd/yyyy","mmddyy","mode","modif","modifier","modify","module","move","move-corresponding","multiply","multiply-corresponding","name","nametab","native","nested","nesting","new","new-line","new-page","new-section","next","no","no-display","no-extension","no-gap","no-gaps","no-grouping","no-heading","no-scrolling","no-sign","no-title","no-topofpage","no-zero","node","nodes","non-unicode","non-unique","not","null","number","object","objects","obligatory","occurrence","occurrences","occurs","of","off","offset","ole","on","only","open","option","optional","options","or","order","other","others","out","outer","output","output-length","overflow","overlay","pack","package","pad","padding","page","pages","parameter","parameters","parameter-table","part","partially","pattern","percentage","perform","performing","person","pf1","pf10","pf11","pf12","pf13","pf14","pf15","pf2","pf3","pf4","pf5","pf6","pf7","pf8","pf9","pf-status","pink","places","pool","pos_high","pos_low","position","pragmas","precompiled","preferred","preserving","primary","print","print-control","priority","private","procedure","process","program","property","protected","provide","public","push","pushbutton","put","queue-only","quickinfo","radiobutton","raise","raising","range","ranges","read","reader","read-only","receive","received","receiver","receiving","red","redefinition","reduce","reduced","ref","reference","refresh","regex","reject","remote","renaming","replace","replacement","replacing","report","request","requested","reserve","reset","resolution","respecting","responsible","result","results","resumable","resume","retry","return","returncode","returning","returns","right","right-justified","rightplus","rightspace","risk","rmc_communication_failure","rmc_invalid_status","rmc_system_failure","role","rollback","rows","rpad","rtrim","run","sap","sap-spool","saving","scale_preserving","scale_preserving_scientific","scan","scientific","scientific_with_leading_zero","scroll","scroll-boundary","scrolling","search","secondary","seconds","section","select","selection","selections","selection-screen","selection-set","selection-sets","selection-table","select-options","send","separate","separated","set","shared","shift","short","shortdump-id","sign_as_postfix","single","size","skip","skipping","smart","some","sort","sortable","sorted","source","specified","split","spool","spots","sql","sqlscript","stable","stamp","standard","starting","start-of-editing","start-of-selection","state","statement","statements","static","statics","statusinfo","step-loop","stop","structure","structures","style","subkey","submatches","submit","subroutine","subscreen","subtract","subtract-corresponding","suffix","sum","summary","summing","supplied","supply","suppress","switch","switchstates","symbol","syncpoints","syntax","syntax-check","syntax-trace","system-call","system-exceptions","system-exit","tab","tabbed","table","tables","tableview","tabstrip","target","task","tasks","test","testing","test-injection","test-seam","text","textpool","then","throw","time","times","timestamp","timezone","tims_is_valid","title","titlebar","title-lines","to","tokenization","tokens","top-lines","top-of-page","trace-file","trace-table","trailing","transaction","transfer","transformation","translate","transporting","trmac","truncate","truncation","try","tstmp_add_seconds","tstmp_current_utctimestamp","tstmp_is_valid","tstmp_seconds_between","type","type-pool","type-pools","types","uline","unassign","under","unicode","union","unique","unit_conversion","unix","unpack","until","unwind","up","update","upper","user","user-command","using","utf-8","valid","value","value-request","values","vary","varying","verification-message","version","via","view","visible","wait","warning","when","whenever","where","while","width","window","windows","with","with-heading","without","with-title","word","work","write","writer","xml","xsd","yellow","yes","yymmdd","zero","zone","abap_system_timezone","abap_user_timezone","access","action","adabas","adjust_numbers","allow_precision_loss","allowed","amdp","applicationuser","as_geo_json","as400","associations","balance","behavior","breakup","bulk","cds","cds_client","check_before_save","child","clients","corr","corr_spearman","cross","cycles","datn_add_days","datn_add_months","datn_days_between","dats_from_datn","dats_tims_to_tstmp","dats_to_datn","db2","db6","ddl","dense_rank","depth","deterministic","discarding","entities","entity","error","failed","finalize","first_value","fltp_to_dec","following","fractional","full","graph","grouping","hierarchy","hierarchy_ancestors","hierarchy_ancestors_aggregate","hierarchy_descendants","hierarchy_descendants_aggregate","hierarchy_siblings","incremental","indicators","lag","last_value","lead","leaves","like_regexpr","link","locale_sap","lock","locks","many","mapped","matched","measures","median","mssqlnt","multiple","nodetype","ntile","nulls","occurrences_regexpr","one","operations","oracle","orphans","over","parent","parents","partition","pcre","period","pfcg_mapping","preceding","privileged","product","projection","rank","redirected","replace_regexpr","reported","response","responses","root","row","row_number","sap_system_date","save","schema","session","sets","shortdump","siblings","spantree","start","stddev","string_agg","subtotal","sybase","tims_from_timn","tims_to_timn","to_blob","to_clob","total","trace-entry","tstmp_to_dats","tstmp_to_dst","tstmp_to_tims","tstmpl_from_utcl","tstmpl_to_utcl","unbounded","utcl_add_seconds","utcl_current","utcl_seconds_between","uuid","var","verbatim"],builtinFunctions:["abs","acos","asin","atan","bit-set","boolc","boolx","ceil","char_off","charlen","cmax","cmin","concat_lines_of","contains","contains_any_not_of","contains_any_of","cos","cosh","count","count_any_not_of","count_any_of","dbmaxlen","distance","escape","exp","find_any_not_of","find_any_of","find_end","floor","frac","from_mixed","ipow","line_exists","line_index","log","log10","matches","nmax","nmin","numofchar","repeat","rescale","reverse","round","segment","shift_left","shift_right","sign","sin","sinh","sqrt","strlen","substring","substring_after","substring_before","substring_from","substring_to","tan","tanh","to_lower","to_mixed","to_upper","trunc","utclong_add","utclong_current","utclong_diff","xsdbool","xstrlen"],typeKeywords:["b","c","d","decfloat16","decfloat34","f","i","int8","n","p","s","string","t","utclong","x","xstring","any","clike","csequence","decfloat","numeric","simple","xsequence","accp","char","clnt","cuky","curr","datn","dats","d16d","d16n","d16r","d34d","d34n","d34r","dec","df16_dec","df16_raw","df34_dec","df34_raw","fltp","geom_ewkb","int1","int2","int4","lang","lchr","lraw","numc","quan","raw","rawstring","sstring","timn","tims","unit","utcl","df16_scl","df34_scl","prec","varc","abap_bool","abap_false","abap_true","abap_undefined","me","screen","space","super","sy","syst","table_line","*sys*"],builtinMethods:["class_constructor","constructor"],derivedTypes:["%CID","%CID_REF","%CONTROL","%DATA","%ELEMENT","%FAIL","%KEY","%MSG","%PARAM","%PID","%PID_ASSOC","%PID_PARENT","%_HINTS"],cdsLanguage:["@AbapAnnotation","@AbapCatalog","@AccessControl","@API","@ClientDependent","@ClientHandling","@CompatibilityContract","@DataAging","@EndUserText","@Environment","@LanguageDependency","@MappingRole","@Metadata","@MetadataExtension","@ObjectModel","@Scope","@Semantics","$EXTENSION","$SELF"],selectors:["->","->*","=>","~","~*"],operators:[" +"," -","/","*","**","div","mod","=","#","@","+=","-=","*=","/=","**=","&&=","?=","&","&&","bit-and","bit-not","bit-or","bit-xor","m","o","z","<"," >","<=",">=","<>","><","=<","=>","bt","byte-ca","byte-cn","byte-co","byte-cs","byte-na","byte-ns","ca","cn","co","cp","cs","eq","ge","gt","le","lt","na","nb","ne","np","ns","*/","*:","--","/*","//"],symbols:/[=><!~?&+\-*\/\^%#@]+/,tokenizer:{root:[[/[a-z_\/$%@]([\w\/$%]|-(?!>))*/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@cdsLanguage":"annotation","@derivedTypes":"type","@builtinFunctions":"type","@builtinMethods":"type","@operators":"key","@default":"identifier"}}],[/<[\w]+>/,"identifier"],[/##[\w|_]+/,"comment"],{include:"@whitespace"},[/[:,.]/,"delimiter"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@selectors":"tag","@operators":"key","@default":""}}],[/'/,{token:"string",bracket:"@open",next:"@stringquote"}],[/`/,{token:"string",bracket:"@open",next:"@stringping"}],[/\|/,{token:"string",bracket:"@open",next:"@stringtemplate"}],[/\d+/,"number"]],stringtemplate:[[/[^\\\|]+/,"string"],[/\\\|/,"string"],[/\|/,{token:"string",bracket:"@close",next:"@pop"}]],stringping:[[/[^\\`]+/,"string"],[/`/,{token:"string",bracket:"@close",next:"@pop"}]],stringquote:[[/[^\\']+/,"string"],[/'/,{token:"string",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/^\*.*$/,"comment"],[/\".*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/848.6ccac2fb.js.LICENSE.txt b/assets/js/848.6ccac2fb.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/848.6ccac2fb.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/848.78fe8e26.js b/assets/js/848.78fe8e26.js new file mode 100644 index 00000000000..240414a70e1 --- /dev/null +++ b/assets/js/848.78fe8e26.js @@ -0,0 +1,1333 @@ +"use strict"; +exports.id = 848; +exports.ids = [848]; +exports.modules = { + +/***/ 40848: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/abap/abap.ts +var conf = { + comments: { + lineComment: "*" + }, + brackets: [ + ["[", "]"], + ["(", ")"] + ] +}; +var language = { + defaultToken: "invalid", + ignoreCase: true, + tokenPostfix: ".abap", + keywords: [ + "abap-source", + "abbreviated", + "abstract", + "accept", + "accepting", + "according", + "activation", + "actual", + "add", + "add-corresponding", + "adjacent", + "after", + "alias", + "aliases", + "align", + "all", + "allocate", + "alpha", + "analysis", + "analyzer", + "and", + "append", + "appendage", + "appending", + "application", + "archive", + "area", + "arithmetic", + "as", + "ascending", + "aspect", + "assert", + "assign", + "assigned", + "assigning", + "association", + "asynchronous", + "at", + "attributes", + "authority", + "authority-check", + "avg", + "back", + "background", + "backup", + "backward", + "badi", + "base", + "before", + "begin", + "between", + "big", + "binary", + "bintohex", + "bit", + "black", + "blank", + "blanks", + "blob", + "block", + "blocks", + "blue", + "bound", + "boundaries", + "bounds", + "boxed", + "break-point", + "buffer", + "by", + "bypassing", + "byte", + "byte-order", + "call", + "calling", + "case", + "cast", + "casting", + "catch", + "center", + "centered", + "chain", + "chain-input", + "chain-request", + "change", + "changing", + "channels", + "character", + "char-to-hex", + "check", + "checkbox", + "ci_", + "circular", + "class", + "class-coding", + "class-data", + "class-events", + "class-methods", + "class-pool", + "cleanup", + "clear", + "client", + "clob", + "clock", + "close", + "coalesce", + "code", + "coding", + "col_background", + "col_group", + "col_heading", + "col_key", + "col_negative", + "col_normal", + "col_positive", + "col_total", + "collect", + "color", + "column", + "columns", + "comment", + "comments", + "commit", + "common", + "communication", + "comparing", + "component", + "components", + "compression", + "compute", + "concat", + "concat_with_space", + "concatenate", + "cond", + "condense", + "condition", + "connect", + "connection", + "constants", + "context", + "contexts", + "continue", + "control", + "controls", + "conv", + "conversion", + "convert", + "copies", + "copy", + "corresponding", + "country", + "cover", + "cpi", + "create", + "creating", + "critical", + "currency", + "currency_conversion", + "current", + "cursor", + "cursor-selection", + "customer", + "customer-function", + "dangerous", + "data", + "database", + "datainfo", + "dataset", + "date", + "dats_add_days", + "dats_add_months", + "dats_days_between", + "dats_is_valid", + "daylight", + "dd/mm/yy", + "dd/mm/yyyy", + "ddmmyy", + "deallocate", + "decimal_shift", + "decimals", + "declarations", + "deep", + "default", + "deferred", + "define", + "defining", + "definition", + "delete", + "deleting", + "demand", + "department", + "descending", + "describe", + "destination", + "detail", + "dialog", + "directory", + "disconnect", + "display", + "display-mode", + "distinct", + "divide", + "divide-corresponding", + "division", + "do", + "dummy", + "duplicate", + "duplicates", + "duration", + "during", + "dynamic", + "dynpro", + "edit", + "editor-call", + "else", + "elseif", + "empty", + "enabled", + "enabling", + "encoding", + "end", + "endat", + "endcase", + "endcatch", + "endchain", + "endclass", + "enddo", + "endenhancement", + "end-enhancement-section", + "endexec", + "endform", + "endfunction", + "endian", + "endif", + "ending", + "endinterface", + "end-lines", + "endloop", + "endmethod", + "endmodule", + "end-of-definition", + "end-of-editing", + "end-of-file", + "end-of-page", + "end-of-selection", + "endon", + "endprovide", + "endselect", + "end-test-injection", + "end-test-seam", + "endtry", + "endwhile", + "endwith", + "engineering", + "enhancement", + "enhancement-point", + "enhancements", + "enhancement-section", + "entries", + "entry", + "enum", + "environment", + "equiv", + "errormessage", + "errors", + "escaping", + "event", + "events", + "exact", + "except", + "exception", + "exceptions", + "exception-table", + "exclude", + "excluding", + "exec", + "execute", + "exists", + "exit", + "exit-command", + "expand", + "expanding", + "expiration", + "explicit", + "exponent", + "export", + "exporting", + "extend", + "extended", + "extension", + "extract", + "fail", + "fetch", + "field", + "field-groups", + "fields", + "field-symbol", + "field-symbols", + "file", + "filter", + "filters", + "filter-table", + "final", + "find", + "first", + "first-line", + "fixed-point", + "fkeq", + "fkge", + "flush", + "font", + "for", + "form", + "format", + "forward", + "found", + "frame", + "frames", + "free", + "friends", + "from", + "function", + "functionality", + "function-pool", + "further", + "gaps", + "generate", + "get", + "giving", + "gkeq", + "gkge", + "global", + "grant", + "green", + "group", + "groups", + "handle", + "handler", + "harmless", + "hashed", + "having", + "hdb", + "header", + "headers", + "heading", + "head-lines", + "help-id", + "help-request", + "hextobin", + "hide", + "high", + "hint", + "hold", + "hotspot", + "icon", + "id", + "identification", + "identifier", + "ids", + "if", + "ignore", + "ignoring", + "immediately", + "implementation", + "implementations", + "implemented", + "implicit", + "import", + "importing", + "in", + "inactive", + "incl", + "include", + "includes", + "including", + "increment", + "index", + "index-line", + "infotypes", + "inheriting", + "init", + "initial", + "initialization", + "inner", + "inout", + "input", + "insert", + "instance", + "instances", + "instr", + "intensified", + "interface", + "interface-pool", + "interfaces", + "internal", + "intervals", + "into", + "inverse", + "inverted-date", + "is", + "iso", + "job", + "join", + "keep", + "keeping", + "kernel", + "key", + "keys", + "keywords", + "kind", + "language", + "last", + "late", + "layout", + "leading", + "leave", + "left", + "left-justified", + "leftplus", + "leftspace", + "legacy", + "length", + "let", + "level", + "levels", + "like", + "line", + "lines", + "line-count", + "linefeed", + "line-selection", + "line-size", + "list", + "listbox", + "list-processing", + "little", + "llang", + "load", + "load-of-program", + "lob", + "local", + "locale", + "locator", + "logfile", + "logical", + "log-point", + "long", + "loop", + "low", + "lower", + "lpad", + "lpi", + "ltrim", + "mail", + "main", + "major-id", + "mapping", + "margin", + "mark", + "mask", + "match", + "matchcode", + "max", + "maximum", + "medium", + "members", + "memory", + "mesh", + "message", + "message-id", + "messages", + "messaging", + "method", + "methods", + "min", + "minimum", + "minor-id", + "mm/dd/yy", + "mm/dd/yyyy", + "mmddyy", + "mode", + "modif", + "modifier", + "modify", + "module", + "move", + "move-corresponding", + "multiply", + "multiply-corresponding", + "name", + "nametab", + "native", + "nested", + "nesting", + "new", + "new-line", + "new-page", + "new-section", + "next", + "no", + "no-display", + "no-extension", + "no-gap", + "no-gaps", + "no-grouping", + "no-heading", + "no-scrolling", + "no-sign", + "no-title", + "no-topofpage", + "no-zero", + "node", + "nodes", + "non-unicode", + "non-unique", + "not", + "null", + "number", + "object", + "objects", + "obligatory", + "occurrence", + "occurrences", + "occurs", + "of", + "off", + "offset", + "ole", + "on", + "only", + "open", + "option", + "optional", + "options", + "or", + "order", + "other", + "others", + "out", + "outer", + "output", + "output-length", + "overflow", + "overlay", + "pack", + "package", + "pad", + "padding", + "page", + "pages", + "parameter", + "parameters", + "parameter-table", + "part", + "partially", + "pattern", + "percentage", + "perform", + "performing", + "person", + "pf1", + "pf10", + "pf11", + "pf12", + "pf13", + "pf14", + "pf15", + "pf2", + "pf3", + "pf4", + "pf5", + "pf6", + "pf7", + "pf8", + "pf9", + "pf-status", + "pink", + "places", + "pool", + "pos_high", + "pos_low", + "position", + "pragmas", + "precompiled", + "preferred", + "preserving", + "primary", + "print", + "print-control", + "priority", + "private", + "procedure", + "process", + "program", + "property", + "protected", + "provide", + "public", + "push", + "pushbutton", + "put", + "queue-only", + "quickinfo", + "radiobutton", + "raise", + "raising", + "range", + "ranges", + "read", + "reader", + "read-only", + "receive", + "received", + "receiver", + "receiving", + "red", + "redefinition", + "reduce", + "reduced", + "ref", + "reference", + "refresh", + "regex", + "reject", + "remote", + "renaming", + "replace", + "replacement", + "replacing", + "report", + "request", + "requested", + "reserve", + "reset", + "resolution", + "respecting", + "responsible", + "result", + "results", + "resumable", + "resume", + "retry", + "return", + "returncode", + "returning", + "returns", + "right", + "right-justified", + "rightplus", + "rightspace", + "risk", + "rmc_communication_failure", + "rmc_invalid_status", + "rmc_system_failure", + "role", + "rollback", + "rows", + "rpad", + "rtrim", + "run", + "sap", + "sap-spool", + "saving", + "scale_preserving", + "scale_preserving_scientific", + "scan", + "scientific", + "scientific_with_leading_zero", + "scroll", + "scroll-boundary", + "scrolling", + "search", + "secondary", + "seconds", + "section", + "select", + "selection", + "selections", + "selection-screen", + "selection-set", + "selection-sets", + "selection-table", + "select-options", + "send", + "separate", + "separated", + "set", + "shared", + "shift", + "short", + "shortdump-id", + "sign_as_postfix", + "single", + "size", + "skip", + "skipping", + "smart", + "some", + "sort", + "sortable", + "sorted", + "source", + "specified", + "split", + "spool", + "spots", + "sql", + "sqlscript", + "stable", + "stamp", + "standard", + "starting", + "start-of-editing", + "start-of-selection", + "state", + "statement", + "statements", + "static", + "statics", + "statusinfo", + "step-loop", + "stop", + "structure", + "structures", + "style", + "subkey", + "submatches", + "submit", + "subroutine", + "subscreen", + "subtract", + "subtract-corresponding", + "suffix", + "sum", + "summary", + "summing", + "supplied", + "supply", + "suppress", + "switch", + "switchstates", + "symbol", + "syncpoints", + "syntax", + "syntax-check", + "syntax-trace", + "system-call", + "system-exceptions", + "system-exit", + "tab", + "tabbed", + "table", + "tables", + "tableview", + "tabstrip", + "target", + "task", + "tasks", + "test", + "testing", + "test-injection", + "test-seam", + "text", + "textpool", + "then", + "throw", + "time", + "times", + "timestamp", + "timezone", + "tims_is_valid", + "title", + "titlebar", + "title-lines", + "to", + "tokenization", + "tokens", + "top-lines", + "top-of-page", + "trace-file", + "trace-table", + "trailing", + "transaction", + "transfer", + "transformation", + "translate", + "transporting", + "trmac", + "truncate", + "truncation", + "try", + "tstmp_add_seconds", + "tstmp_current_utctimestamp", + "tstmp_is_valid", + "tstmp_seconds_between", + "type", + "type-pool", + "type-pools", + "types", + "uline", + "unassign", + "under", + "unicode", + "union", + "unique", + "unit_conversion", + "unix", + "unpack", + "until", + "unwind", + "up", + "update", + "upper", + "user", + "user-command", + "using", + "utf-8", + "valid", + "value", + "value-request", + "values", + "vary", + "varying", + "verification-message", + "version", + "via", + "view", + "visible", + "wait", + "warning", + "when", + "whenever", + "where", + "while", + "width", + "window", + "windows", + "with", + "with-heading", + "without", + "with-title", + "word", + "work", + "write", + "writer", + "xml", + "xsd", + "yellow", + "yes", + "yymmdd", + "zero", + "zone", + "abap_system_timezone", + "abap_user_timezone", + "access", + "action", + "adabas", + "adjust_numbers", + "allow_precision_loss", + "allowed", + "amdp", + "applicationuser", + "as_geo_json", + "as400", + "associations", + "balance", + "behavior", + "breakup", + "bulk", + "cds", + "cds_client", + "check_before_save", + "child", + "clients", + "corr", + "corr_spearman", + "cross", + "cycles", + "datn_add_days", + "datn_add_months", + "datn_days_between", + "dats_from_datn", + "dats_tims_to_tstmp", + "dats_to_datn", + "db2", + "db6", + "ddl", + "dense_rank", + "depth", + "deterministic", + "discarding", + "entities", + "entity", + "error", + "failed", + "finalize", + "first_value", + "fltp_to_dec", + "following", + "fractional", + "full", + "graph", + "grouping", + "hierarchy", + "hierarchy_ancestors", + "hierarchy_ancestors_aggregate", + "hierarchy_descendants", + "hierarchy_descendants_aggregate", + "hierarchy_siblings", + "incremental", + "indicators", + "lag", + "last_value", + "lead", + "leaves", + "like_regexpr", + "link", + "locale_sap", + "lock", + "locks", + "many", + "mapped", + "matched", + "measures", + "median", + "mssqlnt", + "multiple", + "nodetype", + "ntile", + "nulls", + "occurrences_regexpr", + "one", + "operations", + "oracle", + "orphans", + "over", + "parent", + "parents", + "partition", + "pcre", + "period", + "pfcg_mapping", + "preceding", + "privileged", + "product", + "projection", + "rank", + "redirected", + "replace_regexpr", + "reported", + "response", + "responses", + "root", + "row", + "row_number", + "sap_system_date", + "save", + "schema", + "session", + "sets", + "shortdump", + "siblings", + "spantree", + "start", + "stddev", + "string_agg", + "subtotal", + "sybase", + "tims_from_timn", + "tims_to_timn", + "to_blob", + "to_clob", + "total", + "trace-entry", + "tstmp_to_dats", + "tstmp_to_dst", + "tstmp_to_tims", + "tstmpl_from_utcl", + "tstmpl_to_utcl", + "unbounded", + "utcl_add_seconds", + "utcl_current", + "utcl_seconds_between", + "uuid", + "var", + "verbatim" + ], + builtinFunctions: [ + "abs", + "acos", + "asin", + "atan", + "bit-set", + "boolc", + "boolx", + "ceil", + "char_off", + "charlen", + "cmax", + "cmin", + "concat_lines_of", + "contains", + "contains_any_not_of", + "contains_any_of", + "cos", + "cosh", + "count", + "count_any_not_of", + "count_any_of", + "dbmaxlen", + "distance", + "escape", + "exp", + "find_any_not_of", + "find_any_of", + "find_end", + "floor", + "frac", + "from_mixed", + "ipow", + "line_exists", + "line_index", + "log", + "log10", + "matches", + "nmax", + "nmin", + "numofchar", + "repeat", + "rescale", + "reverse", + "round", + "segment", + "shift_left", + "shift_right", + "sign", + "sin", + "sinh", + "sqrt", + "strlen", + "substring", + "substring_after", + "substring_before", + "substring_from", + "substring_to", + "tan", + "tanh", + "to_lower", + "to_mixed", + "to_upper", + "trunc", + "utclong_add", + "utclong_current", + "utclong_diff", + "xsdbool", + "xstrlen" + ], + typeKeywords: [ + "b", + "c", + "d", + "decfloat16", + "decfloat34", + "f", + "i", + "int8", + "n", + "p", + "s", + "string", + "t", + "utclong", + "x", + "xstring", + "any", + "clike", + "csequence", + "decfloat", + "numeric", + "simple", + "xsequence", + "accp", + "char", + "clnt", + "cuky", + "curr", + "datn", + "dats", + "d16d", + "d16n", + "d16r", + "d34d", + "d34n", + "d34r", + "dec", + "df16_dec", + "df16_raw", + "df34_dec", + "df34_raw", + "fltp", + "geom_ewkb", + "int1", + "int2", + "int4", + "lang", + "lchr", + "lraw", + "numc", + "quan", + "raw", + "rawstring", + "sstring", + "timn", + "tims", + "unit", + "utcl", + "df16_scl", + "df34_scl", + "prec", + "varc", + "abap_bool", + "abap_false", + "abap_true", + "abap_undefined", + "me", + "screen", + "space", + "super", + "sy", + "syst", + "table_line", + "*sys*" + ], + builtinMethods: ["class_constructor", "constructor"], + derivedTypes: [ + "%CID", + "%CID_REF", + "%CONTROL", + "%DATA", + "%ELEMENT", + "%FAIL", + "%KEY", + "%MSG", + "%PARAM", + "%PID", + "%PID_ASSOC", + "%PID_PARENT", + "%_HINTS" + ], + cdsLanguage: [ + "@AbapAnnotation", + "@AbapCatalog", + "@AccessControl", + "@API", + "@ClientDependent", + "@ClientHandling", + "@CompatibilityContract", + "@DataAging", + "@EndUserText", + "@Environment", + "@LanguageDependency", + "@MappingRole", + "@Metadata", + "@MetadataExtension", + "@ObjectModel", + "@Scope", + "@Semantics", + "$EXTENSION", + "$SELF" + ], + selectors: ["->", "->*", "=>", "~", "~*"], + operators: [ + " +", + " -", + "/", + "*", + "**", + "div", + "mod", + "=", + "#", + "@", + "+=", + "-=", + "*=", + "/=", + "**=", + "&&=", + "?=", + "&", + "&&", + "bit-and", + "bit-not", + "bit-or", + "bit-xor", + "m", + "o", + "z", + "<", + " >", + "<=", + ">=", + "<>", + "><", + "=<", + "=>", + "bt", + "byte-ca", + "byte-cn", + "byte-co", + "byte-cs", + "byte-na", + "byte-ns", + "ca", + "cn", + "co", + "cp", + "cs", + "eq", + "ge", + "gt", + "le", + "lt", + "na", + "nb", + "ne", + "np", + "ns", + "*/", + "*:", + "--", + "/*", + "//" + ], + symbols: /[=><!~?&+\-*\/\^%#@]+/, + tokenizer: { + root: [ + [ + /[a-z_\/$%@]([\w\/$%]|-(?!>))*/, + { + cases: { + "@typeKeywords": "type", + "@keywords": "keyword", + "@cdsLanguage": "annotation", + "@derivedTypes": "type", + "@builtinFunctions": "type", + "@builtinMethods": "type", + "@operators": "key", + "@default": "identifier" + } + } + ], + [/<[\w]+>/, "identifier"], + [/##[\w|_]+/, "comment"], + { include: "@whitespace" }, + [/[:,.]/, "delimiter"], + [/[{}()\[\]]/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@selectors": "tag", + "@operators": "key", + "@default": "" + } + } + ], + [/'/, { token: "string", bracket: "@open", next: "@stringquote" }], + [/`/, { token: "string", bracket: "@open", next: "@stringping" }], + [/\|/, { token: "string", bracket: "@open", next: "@stringtemplate" }], + [/\d+/, "number"] + ], + stringtemplate: [ + [/[^\\\|]+/, "string"], + [/\\\|/, "string"], + [/\|/, { token: "string", bracket: "@close", next: "@pop" }] + ], + stringping: [ + [/[^\\`]+/, "string"], + [/`/, { token: "string", bracket: "@close", next: "@pop" }] + ], + stringquote: [ + [/[^\\']+/, "string"], + [/'/, { token: "string", bracket: "@close", next: "@pop" }] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/^\*.*$/, "comment"], + [/\".*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8480.07b41f57.js b/assets/js/8480.07b41f57.js new file mode 100644 index 00000000000..a7675dac016 --- /dev/null +++ b/assets/js/8480.07b41f57.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8480],{78480:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>s,default:()=>d,frontMatter:()=>p,metadata:()=>i,toc:()=>r});var a=n(87462),o=(n(67294),n(3905));n(45475);const p={title:"Empty",slug:"/types/empty"},s=void 0,i={unversionedId:"types/empty",id:"types/empty",title:"Empty",description:"The empty type has no values. It is the subtype of all other types (i.e. the bottom type).",source:"@site/docs/types/empty.md",sourceDirName:"types",slug:"/types/empty",permalink:"/en/docs/types/empty",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/empty.md",tags:[],version:"current",frontMatter:{title:"Empty",slug:"/types/empty"},sidebar:"docsSidebar",previous:{title:"Mixed",permalink:"/en/docs/types/mixed"},next:{title:"Any",permalink:"/en/docs/types/any"}},m={},r=[],l={toc:r};function d(e){let{components:t,...n}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"The ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," type has no values. It is the ",(0,o.mdx)("a",{parentName:"p",href:"../../lang/type-hierarchy"},"subtype of all other types")," (i.e. the ",(0,o.mdx)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Bottom_type"},"bottom type"),").\nIn this way it is the opposite of ",(0,o.mdx)("a",{parentName:"p",href:"../mixed"},(0,o.mdx)("inlineCode",{parentName:"a"},"mixed")),", which is the supertype of all types."),(0,o.mdx)("p",null,"It is not common to annotate your code using ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty"),". However, there are a couple of situations that it might be useful:"),(0,o.mdx)("p",null,"If you have a function that always throws, you can annotate the return as ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty"),", as the function never returns:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function throwIt(msg: string): empty {\n throw new Error(msg);\n}\n")),(0,o.mdx)("p",null,"You can use a cast to ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," to assert that you have refined away all members of a union:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function f(x: 'a' | 'b'): number {\n switch (x) {\n case 'a':\n return 1;\n case 'b':\n return 2;\n default:\n return (x: empty);\n }\n}\n")),(0,o.mdx)("p",null,"If you had not checked for all members of the union (for example, changed ",(0,o.mdx)("inlineCode",{parentName:"p"},"x")," to be of type ",(0,o.mdx)("inlineCode",{parentName:"p"},"'a' | 'b' | 'c'"),"),\nthen ",(0,o.mdx)("inlineCode",{parentName:"p"},"x")," would no longer be ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," in the ",(0,o.mdx)("inlineCode",{parentName:"p"},"default"),", and Flow would error."),(0,o.mdx)("blockquote",null,(0,o.mdx)("p",{parentName:"blockquote"},"Note: If you want exhaustively checked enums by defualt, without having to cast to ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty"),",\nyou could enable and use ",(0,o.mdx)("a",{parentName:"p",href:"../../enums"},"Flow Enums")," in your project.")),(0,o.mdx)("p",null,"Since ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," is the subtype of all types, all operations are permitted on something that has the ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," type.\nHowever since no values can be ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty"),', this is "safe", unlike with ',(0,o.mdx)("a",{parentName:"p",href:"../any"},(0,o.mdx)("inlineCode",{parentName:"a"},"any")),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const str = "hello";\n\nif (typeof str === "string") {\n (str: string); // Yes it\'s a string\n} else {\n // Works! Since we will never enter this branch\n (str: empty);\n const n: number = str + 1;\n}\n')),(0,o.mdx)("p",null,'We put "safe" in quotes above, as due type safety holes in your code or bugs within Flow itself,\nit is possible to get values which are ',(0,o.mdx)("inlineCode",{parentName:"p"},"empty")," typed."),(0,o.mdx)("p",null,"You can use the ",(0,o.mdx)("a",{parentName:"p",href:"../../cli/coverage/"},"coverage")," command to identify code typed as ",(0,o.mdx)("inlineCode",{parentName:"p"},"empty"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8506.dc7fd971.js b/assets/js/8506.dc7fd971.js new file mode 100644 index 00000000000..bfe6119ba03 --- /dev/null +++ b/assets/js/8506.dc7fd971.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8506],{18506:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>m,contentTitle:()=>d,default:()=>c,frontMatter:()=>r,metadata:()=>s,toc:()=>i});var a=o(87462),n=(o(67294),o(3905));const r={title:"Supporting React.forwardRef and Beyond","short-title":"Supporting React.forwardRef",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/supporting-react-forwardref-and-beyond-f8dd88f35544"},d=void 0,s={permalink:"/blog/2018/12/13/React-Abstract-Component",source:"@site/blog/2018-12-13-React-Abstract-Component.md",title:"Supporting React.forwardRef and Beyond",description:"We made some major changes to our React model to better model new React components. Let's",date:"2018-12-13T00:00:00.000Z",formattedDate:"December 13, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Supporting React.forwardRef and Beyond","short-title":"Supporting React.forwardRef",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/supporting-react-forwardref-and-beyond-f8dd88f35544"},prevItem:{title:"What the Flow Team Has Been Up To",permalink:"/blog/2019/1/28/What-the-flow-team-has-been-up-to"},nextItem:{title:"Asking for Required Annotations",permalink:"/blog/2018/10/29/Asking-for-Required-Annotations"}},m={authorsImageUrls:[void 0]},i=[],p={toc:i};function c(e){let{components:t,...o}=e;return(0,n.mdx)("wrapper",(0,a.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We made some major changes to our React model to better model new React components. Let's\ntalk about React.AbstractComponent!"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8528.45e71d7f.js b/assets/js/8528.45e71d7f.js new file mode 100644 index 00000000000..ceabfa451e5 --- /dev/null +++ b/assets/js/8528.45e71d7f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8528],{98528:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>m});var i=o(87462),t=(o(67294),o(3905));o(45475);const a={title:".flowconfig",slug:"/config",description:"Flow tries to work out of the box as much as possible, but can be configured to work with any codebase."},l=void 0,r={unversionedId:"config/index",id:"config/index",title:".flowconfig",description:"Flow tries to work out of the box as much as possible, but can be configured to work with any codebase.",source:"@site/docs/config/index.md",sourceDirName:"config",slug:"/config",permalink:"/en/docs/config",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/config/index.md",tags:[],version:"current",frontMatter:{title:".flowconfig",slug:"/config",description:"Flow tries to work out of the box as much as possible, but can be configured to work with any codebase."},sidebar:"docsSidebar",previous:{title:"Flow Annotate-Exports",permalink:"/en/docs/cli/annotate-exports"},next:{title:".flowconfig [version]",permalink:"/en/docs/config/version"}},d={},m=[{value:"<code>.flowconfig</code> format",id:"toc-flowconfig-format",level:3},{value:"Comments",id:"toc-comments",level:3},{value:"Where to put the <code>.flowconfig</code>",id:"toc-where-to-put-the-flowconfig",level:3},{value:"Example",id:"toc-example",level:3}],c={toc:m};function p(e){let{components:n,...o}=e;return(0,t.mdx)("wrapper",(0,i.Z)({},c,o,{components:n,mdxType:"MDXLayout"}),(0,t.mdx)("p",null,"Every Flow project contains a ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," file. You can configure Flow by\nmodifying ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig"),". New projects or projects that are starting to use Flow\ncan generate a default ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," by running ",(0,t.mdx)("inlineCode",{parentName:"p"},"flow init"),"."),(0,t.mdx)("h3",{id:"toc-flowconfig-format"},(0,t.mdx)("inlineCode",{parentName:"h3"},".flowconfig")," format"),(0,t.mdx)("p",null,"The ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," uses a custom format that vaguely resembles INI files."),(0,t.mdx)("p",null,"The ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," consists of different sections:"),(0,t.mdx)("ul",null,(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./version"},(0,t.mdx)("inlineCode",{parentName:"a"},"[version]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./options"},(0,t.mdx)("inlineCode",{parentName:"a"},"[options]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./include"},(0,t.mdx)("inlineCode",{parentName:"a"},"[include]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./ignore"},(0,t.mdx)("inlineCode",{parentName:"a"},"[ignore]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./untyped"},(0,t.mdx)("inlineCode",{parentName:"a"},"[untyped]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./declarations"},(0,t.mdx)("inlineCode",{parentName:"a"},"[declarations]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./libs"},(0,t.mdx)("inlineCode",{parentName:"a"},"[libs]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"./lints"},(0,t.mdx)("inlineCode",{parentName:"a"},"[lints]"))),(0,t.mdx)("li",{parentName:"ul"},(0,t.mdx)("a",{parentName:"li",href:"../strict/#toc-enabling-flow-strict-in-a-flowconfig"},(0,t.mdx)("inlineCode",{parentName:"a"},"[strict]")))),(0,t.mdx)("h3",{id:"toc-comments"},"Comments"),(0,t.mdx)("p",null,"Lines beginning with zero or more spaces followed by an ",(0,t.mdx)("inlineCode",{parentName:"p"},"#")," or ",(0,t.mdx)("inlineCode",{parentName:"p"},";")," or ",(0,t.mdx)("inlineCode",{parentName:"p"},"\ud83d\udca9")," are\nignored. For example:"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre"},"# This is a comment\n # This is a comment\n; This is a comment\n ; This is a comment\n\ud83d\udca9 This is a comment\n \ud83d\udca9 This is a comment\n")),(0,t.mdx)("h3",{id:"toc-where-to-put-the-flowconfig"},"Where to put the ",(0,t.mdx)("inlineCode",{parentName:"h3"},".flowconfig")),(0,t.mdx)("p",null,"The location of the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," is significant. Flow treats the directory that\ncontains the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," as the ",(0,t.mdx)("em",{parentName:"p"},"project root"),". By default Flow includes all\nthe source code under the project root. The paths in the\n",(0,t.mdx)("a",{parentName:"p",href:"./include"},"[include] section")," are relative to the project root. Some other\nconfiguration also lets you reference the project root via the macro\n",(0,t.mdx)("inlineCode",{parentName:"p"},"<PROJECT_ROOT>"),"."),(0,t.mdx)("p",null,"Most people put the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," in the root of their project (i.e. next to the\n",(0,t.mdx)("inlineCode",{parentName:"p"},"package.json"),"). Some people put all their code in a ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/")," directory and\ntherefore put the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," at ",(0,t.mdx)("inlineCode",{parentName:"p"},"src/.flowconfig"),"."),(0,t.mdx)("h3",{id:"toc-example"},"Example"),(0,t.mdx)("p",null,"Say you have the following directory structure, with your ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," in\n",(0,t.mdx)("inlineCode",{parentName:"p"},"mydir"),":"),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-text"},"otherdir\n\u2514\u2500\u2500 src\n \u251c\u2500\u2500 othercode.js\nmydir\n\u251c\u2500\u2500 .flowconfig\n\u251c\u2500\u2500 build\n\u2502 \u251c\u2500\u2500 first.js\n\u2502 \u2514\u2500\u2500 shim.js\n\u251c\u2500\u2500 lib\n\u2502 \u2514\u2500\u2500 flow\n\u251c\u2500\u2500 node_modules\n\u2502 \u2514\u2500\u2500 es6-shim\n\u2514\u2500\u2500 src\n \u251c\u2500\u2500 first.js\n \u2514\u2500\u2500 shim.js\n")),(0,t.mdx)("p",null,"Here is an example of how you could use the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," directives."),(0,t.mdx)("pre",null,(0,t.mdx)("code",{parentName:"pre",className:"language-text"},"[include]\n../otherdir/src\n\n[ignore]\n.*/build/.*\n\n[libs]\n./lib\n")),(0,t.mdx)("p",null,"Now ",(0,t.mdx)("inlineCode",{parentName:"p"},"flow")," will include a directory outside the ",(0,t.mdx)("inlineCode",{parentName:"p"},".flowconfig")," path in its\ncheck, ignore the ",(0,t.mdx)("inlineCode",{parentName:"p"},"build")," directory and use the declarations in ",(0,t.mdx)("inlineCode",{parentName:"p"},"lib"),"."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/854.8e35156d.js b/assets/js/854.8e35156d.js new file mode 100644 index 00000000000..b51493f2349 --- /dev/null +++ b/assets/js/854.8e35156d.js @@ -0,0 +1,2 @@ +/*! For license information please see 854.8e35156d.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[854],{60854:(e,t,s)=>{s.r(t),s.d(t,{conf:()=>r,language:()=>n});var r={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},n={defaultToken:"",ignoreCase:!1,tokenPostfix:".mips",regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:[".data",".text","syscall","trap","add","addu","addi","addiu","and","andi","div","divu","mult","multu","nor","or","ori","sll","slv","sra","srav","srl","srlv","sub","subu","xor","xori","lhi","lho","lhi","llo","slt","slti","sltu","sltiu","beq","bgtz","blez","bne","j","jal","jalr","jr","lb","lbu","lh","lhu","lw","li","la","sb","sh","sw","mfhi","mflo","mthi","mtlo","move"],symbols:/[\.,\:]+/,escapes:/\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\$[a-zA-Z_]\w*/,"variable.predefined"],[/[.a-zA-Z_]\w*/,{cases:{this:"variable.predefined","@keywords":{token:"keyword.$0"},"@default":""}}],[/[ \t\r\n]+/,""],[/#.*$/,"comment"],["///",{token:"regexp",next:"@hereregexp"}],[/^(\s*)(@regEx)/,["","regexp"]],[/(\,)(\s*)(@regEx)/,["delimiter","","regexp"]],[/(\:)(\s*)(@regEx)/,["delimiter","","regexp"]],[/@symbols/,"delimiter"],[/\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/0[0-7]+(?!\d)/,"number.octal"],[/\d+/,"number"],[/[,.]/,"delimiter"],[/"""/,"string",'@herestring."""'],[/'''/,"string","@herestring.'''"],[/"/,{cases:{"@eos":"string","@default":{token:"string",next:'@string."'}}}],[/'/,{cases:{"@eos":"string","@default":{token:"string",next:"@string.'"}}}]],string:[[/[^"'\#\\]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/\./,"string.escape.invalid"],[/#{/,{cases:{'$S2=="':{token:"string",next:"root.interpolatedstring"},"@default":"string"}}],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/#/,"string"]],herestring:[[/("""|''')/,{cases:{"$1==$S2":{token:"string",next:"@pop"},"@default":"string"}}],[/[^#\\'"]+/,"string"],[/['"]+/,"string"],[/@escapes/,"string.escape"],[/\./,"string.escape.invalid"],[/#{/,{token:"string.quote",next:"root.interpolatedstring"}],[/#/,"string"]],comment:[[/[^#]+/,"comment"],[/#/,"comment"]],hereregexp:[[/[^\\\/#]+/,"regexp"],[/\\./,"regexp"],[/#.*$/,"comment"],["///[igm]*",{token:"regexp",next:"@pop"}],[/\//,"regexp"]]}}}}]); \ No newline at end of file diff --git a/assets/js/854.8e35156d.js.LICENSE.txt b/assets/js/854.8e35156d.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/854.8e35156d.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/854.9020f381.js b/assets/js/854.9020f381.js new file mode 100644 index 00000000000..bcc780766e7 --- /dev/null +++ b/assets/js/854.9020f381.js @@ -0,0 +1,213 @@ +"use strict"; +exports.id = 854; +exports.ids = [854]; +exports.modules = { + +/***/ 60854: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/mips/mips.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + blockComment: ["###", "###"], + lineComment: "#" + }, + folding: { + markers: { + start: new RegExp("^\\s*#region\\b"), + end: new RegExp("^\\s*#endregion\\b") + } + } +}; +var language = { + defaultToken: "", + ignoreCase: false, + tokenPostfix: ".mips", + regEx: /\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/, + keywords: [ + ".data", + ".text", + "syscall", + "trap", + "add", + "addu", + "addi", + "addiu", + "and", + "andi", + "div", + "divu", + "mult", + "multu", + "nor", + "or", + "ori", + "sll", + "slv", + "sra", + "srav", + "srl", + "srlv", + "sub", + "subu", + "xor", + "xori", + "lhi", + "lho", + "lhi", + "llo", + "slt", + "slti", + "sltu", + "sltiu", + "beq", + "bgtz", + "blez", + "bne", + "j", + "jal", + "jalr", + "jr", + "lb", + "lbu", + "lh", + "lhu", + "lw", + "li", + "la", + "sb", + "sh", + "sw", + "mfhi", + "mflo", + "mthi", + "mtlo", + "move" + ], + symbols: /[\.,\:]+/, + escapes: /\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [/\$[a-zA-Z_]\w*/, "variable.predefined"], + [ + /[.a-zA-Z_]\w*/, + { + cases: { + this: "variable.predefined", + "@keywords": { token: "keyword.$0" }, + "@default": "" + } + } + ], + [/[ \t\r\n]+/, ""], + [/#.*$/, "comment"], + ["///", { token: "regexp", next: "@hereregexp" }], + [/^(\s*)(@regEx)/, ["", "regexp"]], + [/(\,)(\s*)(@regEx)/, ["delimiter", "", "regexp"]], + [/(\:)(\s*)(@regEx)/, ["delimiter", "", "regexp"]], + [/@symbols/, "delimiter"], + [/\d+[eE]([\-+]?\d+)?/, "number.float"], + [/\d+\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F]+/, "number.hex"], + [/0[0-7]+(?!\d)/, "number.octal"], + [/\d+/, "number"], + [/[,.]/, "delimiter"], + [/"""/, "string", '@herestring."""'], + [/'''/, "string", "@herestring.'''"], + [ + /"/, + { + cases: { + "@eos": "string", + "@default": { token: "string", next: '@string."' } + } + } + ], + [ + /'/, + { + cases: { + "@eos": "string", + "@default": { token: "string", next: "@string.'" } + } + } + ] + ], + string: [ + [/[^"'\#\\]+/, "string"], + [/@escapes/, "string.escape"], + [/\./, "string.escape.invalid"], + [/\./, "string.escape.invalid"], + [ + /#{/, + { + cases: { + '$S2=="': { + token: "string", + next: "root.interpolatedstring" + }, + "@default": "string" + } + } + ], + [ + /["']/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ], + [/#/, "string"] + ], + herestring: [ + [ + /("""|''')/, + { + cases: { + "$1==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ], + [/[^#\\'"]+/, "string"], + [/['"]+/, "string"], + [/@escapes/, "string.escape"], + [/\./, "string.escape.invalid"], + [/#{/, { token: "string.quote", next: "root.interpolatedstring" }], + [/#/, "string"] + ], + comment: [ + [/[^#]+/, "comment"], + [/#/, "comment"] + ], + hereregexp: [ + [/[^\\\/#]+/, "regexp"], + [/\\./, "regexp"], + [/#.*$/, "comment"], + ["///[igm]*", { token: "regexp", next: "@pop" }], + [/\//, "regexp"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8641.3df11c4b.js b/assets/js/8641.3df11c4b.js new file mode 100644 index 00000000000..0d97c2e43bb --- /dev/null +++ b/assets/js/8641.3df11c4b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8641],{58641:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>u,contentTitle:()=>m,default:()=>l,frontMatter:()=>r,metadata:()=>i,toc:()=>a});var n=s(87462),o=(s(67294),s(3905));const r={title:"TypeScript Enums vs. Flow Enums","short-title":"TypeScript Enums vs. Flow Enums",author:"George Zahariev","medium-link":"https://medium.com/flow-type/typescript-enums-vs-flow-enums-83da2ca4a9b4"},m=void 0,i={permalink:"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums",source:"@site/blog/2021-09-13-TypeScript-Enums-vs-Flow-Enums.md",title:"TypeScript Enums vs. Flow Enums",description:"A comparison of the enums features of TypeScript and Flow.",date:"2021-09-13T00:00:00.000Z",formattedDate:"September 13, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"TypeScript Enums vs. Flow Enums","short-title":"TypeScript Enums vs. Flow Enums",author:"George Zahariev","medium-link":"https://medium.com/flow-type/typescript-enums-vs-flow-enums-83da2ca4a9b4"},prevItem:{title:"Introducing Flow Enums",permalink:"/blog/2021/09/13/Introducing-Flow-Enums"},nextItem:{title:"Introducing Flow Indexed Access Types",permalink:"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types"}},u={authorsImageUrls:[void 0]},a=[],p={toc:a};function l(e){let{components:t,...s}=e;return(0,o.mdx)("wrapper",(0,n.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"A comparison of the enums features of TypeScript and Flow."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8670.266e1bf4.js b/assets/js/8670.266e1bf4.js new file mode 100644 index 00000000000..8659c82091d --- /dev/null +++ b/assets/js/8670.266e1bf4.js @@ -0,0 +1,243 @@ +"use strict"; +exports.id = 8670; +exports.ids = [8670]; +exports.modules = { + +/***/ 88670: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/shell/shell.ts +var conf = { + comments: { + lineComment: "#" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" }, + { open: "`", close: "`" } + ] +}; +var language = { + defaultToken: "", + ignoreCase: true, + tokenPostfix: ".shell", + brackets: [ + { token: "delimiter.bracket", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" } + ], + keywords: [ + "if", + "then", + "do", + "else", + "elif", + "while", + "until", + "for", + "in", + "esac", + "fi", + "fin", + "fil", + "done", + "exit", + "set", + "unset", + "export", + "function" + ], + builtins: [ + "ab", + "awk", + "bash", + "beep", + "cat", + "cc", + "cd", + "chown", + "chmod", + "chroot", + "clear", + "cp", + "curl", + "cut", + "diff", + "echo", + "find", + "gawk", + "gcc", + "get", + "git", + "grep", + "hg", + "kill", + "killall", + "ln", + "ls", + "make", + "mkdir", + "openssl", + "mv", + "nc", + "node", + "npm", + "ping", + "ps", + "restart", + "rm", + "rmdir", + "sed", + "service", + "sh", + "shopt", + "shred", + "source", + "sort", + "sleep", + "ssh", + "start", + "stop", + "su", + "sudo", + "svn", + "tee", + "telnet", + "top", + "touch", + "vi", + "vim", + "wall", + "wc", + "wget", + "who", + "write", + "yes", + "zsh" + ], + startingWithDash: /\-+\w+/, + identifiersWithDashes: /[a-zA-Z]\w+(?:@startingWithDash)+/, + symbols: /[=><!~?&|+\-*\/\^;\.,]+/, + tokenizer: { + root: [ + [/@identifiersWithDashes/, ""], + [/(\s)((?:@startingWithDash)+)/, ["white", "attribute.name"]], + [ + /[a-zA-Z]\w*/, + { + cases: { + "@keywords": "keyword", + "@builtins": "type.identifier", + "@default": "" + } + } + ], + { include: "@whitespace" }, + { include: "@strings" }, + { include: "@parameters" }, + { include: "@heredoc" }, + [/[{}\[\]()]/, "@brackets"], + [/@symbols/, "delimiter"], + { include: "@numbers" }, + [/[,;]/, "delimiter"] + ], + whitespace: [ + [/\s+/, "white"], + [/(^#!.*$)/, "metatag"], + [/(^#.*$)/, "comment"] + ], + numbers: [ + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"], + [/\d+/, "number"] + ], + strings: [ + [/'/, "string", "@stringBody"], + [/"/, "string", "@dblStringBody"] + ], + stringBody: [ + [/'/, "string", "@popall"], + [/./, "string"] + ], + dblStringBody: [ + [/"/, "string", "@popall"], + [/./, "string"] + ], + heredoc: [ + [ + /(<<[-<]?)(\s*)(['"`]?)([\w\-]+)(['"`]?)/, + [ + "constants", + "white", + "string.heredoc.delimiter", + "string.heredoc", + "string.heredoc.delimiter" + ] + ] + ], + parameters: [ + [/\$\d+/, "variable.predefined"], + [/\$\w+/, "variable"], + [/\$[*@#?\-$!0_]/, "variable"], + [/\$'/, "variable", "@parameterBodyQuote"], + [/\$"/, "variable", "@parameterBodyDoubleQuote"], + [/\$\(/, "variable", "@parameterBodyParen"], + [/\$\{/, "variable", "@parameterBodyCurlyBrace"] + ], + parameterBodyQuote: [ + [/[^#:%*@\-!_']+/, "variable"], + [/[#:%*@\-!_]/, "delimiter"], + [/[']/, "variable", "@pop"] + ], + parameterBodyDoubleQuote: [ + [/[^#:%*@\-!_"]+/, "variable"], + [/[#:%*@\-!_]/, "delimiter"], + [/["]/, "variable", "@pop"] + ], + parameterBodyParen: [ + [/[^#:%*@\-!_)]+/, "variable"], + [/[#:%*@\-!_]/, "delimiter"], + [/[)]/, "variable", "@pop"] + ], + parameterBodyCurlyBrace: [ + [/[^#:%*@\-!_}]+/, "variable"], + [/[#:%*@\-!_]/, "delimiter"], + [/[}]/, "variable", "@pop"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8670.522cc23d.js b/assets/js/8670.522cc23d.js new file mode 100644 index 00000000000..ee38a73372f --- /dev/null +++ b/assets/js/8670.522cc23d.js @@ -0,0 +1,2 @@ +/*! For license information please see 8670.522cc23d.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8670],{88670:(e,r,i)=>{i.r(r),i.d(r,{conf:()=>t,language:()=>s});var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".shell",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","then","do","else","elif","while","until","for","in","esac","fi","fin","fil","done","exit","set","unset","export","function"],builtins:["ab","awk","bash","beep","cat","cc","cd","chown","chmod","chroot","clear","cp","curl","cut","diff","echo","find","gawk","gcc","get","git","grep","hg","kill","killall","ln","ls","make","mkdir","openssl","mv","nc","node","npm","ping","ps","restart","rm","rmdir","sed","service","sh","shopt","shred","source","sort","sleep","ssh","start","stop","su","sudo","svn","tee","telnet","top","touch","vi","vim","wall","wc","wget","who","write","yes","zsh"],startingWithDash:/\-+\w+/,identifiersWithDashes:/[a-zA-Z]\w+(?:@startingWithDash)+/,symbols:/[=><!~?&|+\-*\/\^;\.,]+/,tokenizer:{root:[[/@identifiersWithDashes/,""],[/(\s)((?:@startingWithDash)+)/,["white","attribute.name"]],[/[a-zA-Z]\w*/,{cases:{"@keywords":"keyword","@builtins":"type.identifier","@default":""}}],{include:"@whitespace"},{include:"@strings"},{include:"@parameters"},{include:"@heredoc"},[/[{}\[\]()]/,"@brackets"],[/@symbols/,"delimiter"],{include:"@numbers"},[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"],[/(^#!.*$)/,"metatag"],[/(^#.*$)/,"comment"]],numbers:[[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+/,"number"]],strings:[[/'/,"string","@stringBody"],[/"/,"string","@dblStringBody"]],stringBody:[[/'/,"string","@popall"],[/./,"string"]],dblStringBody:[[/"/,"string","@popall"],[/./,"string"]],heredoc:[[/(<<[-<]?)(\s*)(['"`]?)([\w\-]+)(['"`]?)/,["constants","white","string.heredoc.delimiter","string.heredoc","string.heredoc.delimiter"]]],parameters:[[/\$\d+/,"variable.predefined"],[/\$\w+/,"variable"],[/\$[*@#?\-$!0_]/,"variable"],[/\$'/,"variable","@parameterBodyQuote"],[/\$"/,"variable","@parameterBodyDoubleQuote"],[/\$\(/,"variable","@parameterBodyParen"],[/\$\{/,"variable","@parameterBodyCurlyBrace"]],parameterBodyQuote:[[/[^#:%*@\-!_']+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/[']/,"variable","@pop"]],parameterBodyDoubleQuote:[[/[^#:%*@\-!_"]+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/["]/,"variable","@pop"]],parameterBodyParen:[[/[^#:%*@\-!_)]+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/[)]/,"variable","@pop"]],parameterBodyCurlyBrace:[[/[^#:%*@\-!_}]+/,"variable"],[/[#:%*@\-!_]/,"delimiter"],[/[}]/,"variable","@pop"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8670.522cc23d.js.LICENSE.txt b/assets/js/8670.522cc23d.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8670.522cc23d.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8712.1d41ff09.js b/assets/js/8712.1d41ff09.js new file mode 100644 index 00000000000..fb950feeaf0 --- /dev/null +++ b/assets/js/8712.1d41ff09.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8712],{68712:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>n,contentTitle:()=>i,default:()=>w,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var s=t(87462),r=(t(67294),t(3905));const a={title:"A More Responsive Flow","short-title":"A More Responsive Flow",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/a-more-responsive-flow-1a8cb01aec11"},i=void 0,l={permalink:"/blog/2019/2/8/A-More-Responsive-Flow",source:"@site/blog/2019-2-8-A-More-Responsive-Flow.md",title:"A More Responsive Flow",description:"Flow 0.92 improves on the Flow developer experience.",date:"2019-02-08T00:00:00.000Z",formattedDate:"February 8, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Gabe Levi"}],frontMatter:{title:"A More Responsive Flow","short-title":"A More Responsive Flow",author:"Gabe Levi","medium-link":"https://medium.com/flow-type/a-more-responsive-flow-1a8cb01aec11"},prevItem:{title:"Upgrading Flow Codebases",permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases"},nextItem:{title:"What the Flow Team Has Been Up To",permalink:"/blog/2019/1/28/What-the-flow-team-has-been-up-to"}},n={authorsImageUrls:[void 0]},p=[],m={toc:p};function w(e){let{components:o,...t}=e;return(0,r.mdx)("wrapper",(0,s.Z)({},m,t,{components:o,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow 0.92 improves on the Flow developer experience."))}w.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8713.c204a0f9.js b/assets/js/8713.c204a0f9.js new file mode 100644 index 00000000000..817adf6641a --- /dev/null +++ b/assets/js/8713.c204a0f9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8713],{40974:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>c,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var o=n(87462),r=(n(67294),n(3905));const i={title:"Introducing Flow Enums","short-title":"Introducing Flow Enums",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-enums-16d4239b3180"},a=void 0,s={permalink:"/blog/2021/09/13/Introducing-Flow-Enums",source:"@site/blog/2021-09-13-Introducing-Flow-Enums.md",title:"Introducing Flow Enums",description:"Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.",date:"2021-09-13T00:00:00.000Z",formattedDate:"September 13, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Introducing Flow Enums","short-title":"Introducing Flow Enums",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-enums-16d4239b3180"},prevItem:{title:"Introducing: Local Type Inference for Flow",permalink:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow"},nextItem:{title:"TypeScript Enums vs. Flow Enums",permalink:"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums"}},u={authorsImageUrls:[void 0]},l=[],m={toc:l};function c(e){let{components:t,...n}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8715.172094c4.js b/assets/js/8715.172094c4.js new file mode 100644 index 00000000000..8c208275a04 --- /dev/null +++ b/assets/js/8715.172094c4.js @@ -0,0 +1,2 @@ +/*! For license information please see 8715.172094c4.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8715],{8715:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},s={tokenPostfix:".rust",defaultToken:"invalid",keywords:["as","async","await","box","break","const","continue","crate","dyn","else","enum","extern","false","fn","for","if","impl","in","let","loop","match","mod","move","mut","pub","ref","return","self","static","struct","super","trait","true","try","type","unsafe","use","where","while","catch","default","union","static","abstract","alignof","become","do","final","macro","offsetof","override","priv","proc","pure","sizeof","typeof","unsized","virtual","yield"],typeKeywords:["Self","m32","m64","m128","f80","f16","f128","int","uint","float","char","bool","u8","u16","u32","u64","f32","f64","i8","i16","i32","i64","str","Option","Either","c_float","c_double","c_void","FILE","fpos_t","DIR","dirent","c_char","c_schar","c_uchar","c_short","c_ushort","c_int","c_uint","c_long","c_ulong","size_t","ptrdiff_t","clock_t","time_t","c_longlong","c_ulonglong","intptr_t","uintptr_t","off_t","dev_t","ino_t","pid_t","mode_t","ssize_t"],constants:["true","false","Some","None","Left","Right","Ok","Err"],supportConstants:["EXIT_FAILURE","EXIT_SUCCESS","RAND_MAX","EOF","SEEK_SET","SEEK_CUR","SEEK_END","_IOFBF","_IONBF","_IOLBF","BUFSIZ","FOPEN_MAX","FILENAME_MAX","L_tmpnam","TMP_MAX","O_RDONLY","O_WRONLY","O_RDWR","O_APPEND","O_CREAT","O_EXCL","O_TRUNC","S_IFIFO","S_IFCHR","S_IFBLK","S_IFDIR","S_IFREG","S_IFMT","S_IEXEC","S_IWRITE","S_IREAD","S_IRWXU","S_IXUSR","S_IWUSR","S_IRUSR","F_OK","R_OK","W_OK","X_OK","STDIN_FILENO","STDOUT_FILENO","STDERR_FILENO"],supportMacros:["format!","print!","println!","panic!","format_args!","unreachable!","write!","writeln!"],operators:["!","!=","%","%=","&","&=","&&","*","*=","+","+=","-","-=","->",".","..","...","/","/=",":",";","<<","<<=","<","<=","=","==","=>",">",">=",">>",">>=","@","^","^=","|","|=","||","_","?","#"],escapes:/\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,delimiters:/[,]/,symbols:/[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/r(#*)"/,{token:"string.quote",bracket:"@open",next:"@stringraw.$1"}],[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{"@typeKeywords":"keyword.type","@keywords":"keyword","@supportConstants":"keyword","@supportMacros":"keyword","@constants":"keyword","@default":"identifier"}}],[/\$/,"identifier"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/,"identifier"],[/'(\S|@escapes)'/,"string.byteliteral"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],{include:"@numbers"},{include:"@whitespace"},[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}],[/[{}()\[\]<>]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringraw:[[/[^"#]+/,{token:"string"}],[/"(#*)/,{cases:{"$1==$S2":{token:"string.quote",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["#]/,{token:"string"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:"number"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/,{token:"number"}],[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/,{token:"number"}],[/(0x[\da-fA-F]+)_?(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(@intSuffixes?)?/,{token:"number"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/8715.172094c4.js.LICENSE.txt b/assets/js/8715.172094c4.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8715.172094c4.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8715.8b394ad8.js b/assets/js/8715.8b394ad8.js new file mode 100644 index 00000000000..d058a5e9d5d --- /dev/null +++ b/assets/js/8715.8b394ad8.js @@ -0,0 +1,356 @@ +"use strict"; +exports.id = 8715; +exports.ids = [8715]; +exports.modules = { + +/***/ 8715: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/rust/rust.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: "{", close: "}" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + folding: { + markers: { + start: new RegExp("^\\s*#pragma\\s+region\\b"), + end: new RegExp("^\\s*#pragma\\s+endregion\\b") + } + } +}; +var language = { + tokenPostfix: ".rust", + defaultToken: "invalid", + keywords: [ + "as", + "async", + "await", + "box", + "break", + "const", + "continue", + "crate", + "dyn", + "else", + "enum", + "extern", + "false", + "fn", + "for", + "if", + "impl", + "in", + "let", + "loop", + "match", + "mod", + "move", + "mut", + "pub", + "ref", + "return", + "self", + "static", + "struct", + "super", + "trait", + "true", + "try", + "type", + "unsafe", + "use", + "where", + "while", + "catch", + "default", + "union", + "static", + "abstract", + "alignof", + "become", + "do", + "final", + "macro", + "offsetof", + "override", + "priv", + "proc", + "pure", + "sizeof", + "typeof", + "unsized", + "virtual", + "yield" + ], + typeKeywords: [ + "Self", + "m32", + "m64", + "m128", + "f80", + "f16", + "f128", + "int", + "uint", + "float", + "char", + "bool", + "u8", + "u16", + "u32", + "u64", + "f32", + "f64", + "i8", + "i16", + "i32", + "i64", + "str", + "Option", + "Either", + "c_float", + "c_double", + "c_void", + "FILE", + "fpos_t", + "DIR", + "dirent", + "c_char", + "c_schar", + "c_uchar", + "c_short", + "c_ushort", + "c_int", + "c_uint", + "c_long", + "c_ulong", + "size_t", + "ptrdiff_t", + "clock_t", + "time_t", + "c_longlong", + "c_ulonglong", + "intptr_t", + "uintptr_t", + "off_t", + "dev_t", + "ino_t", + "pid_t", + "mode_t", + "ssize_t" + ], + constants: ["true", "false", "Some", "None", "Left", "Right", "Ok", "Err"], + supportConstants: [ + "EXIT_FAILURE", + "EXIT_SUCCESS", + "RAND_MAX", + "EOF", + "SEEK_SET", + "SEEK_CUR", + "SEEK_END", + "_IOFBF", + "_IONBF", + "_IOLBF", + "BUFSIZ", + "FOPEN_MAX", + "FILENAME_MAX", + "L_tmpnam", + "TMP_MAX", + "O_RDONLY", + "O_WRONLY", + "O_RDWR", + "O_APPEND", + "O_CREAT", + "O_EXCL", + "O_TRUNC", + "S_IFIFO", + "S_IFCHR", + "S_IFBLK", + "S_IFDIR", + "S_IFREG", + "S_IFMT", + "S_IEXEC", + "S_IWRITE", + "S_IREAD", + "S_IRWXU", + "S_IXUSR", + "S_IWUSR", + "S_IRUSR", + "F_OK", + "R_OK", + "W_OK", + "X_OK", + "STDIN_FILENO", + "STDOUT_FILENO", + "STDERR_FILENO" + ], + supportMacros: [ + "format!", + "print!", + "println!", + "panic!", + "format_args!", + "unreachable!", + "write!", + "writeln!" + ], + operators: [ + "!", + "!=", + "%", + "%=", + "&", + "&=", + "&&", + "*", + "*=", + "+", + "+=", + "-", + "-=", + "->", + ".", + "..", + "...", + "/", + "/=", + ":", + ";", + "<<", + "<<=", + "<", + "<=", + "=", + "==", + "=>", + ">", + ">=", + ">>", + ">>=", + "@", + "^", + "^=", + "|", + "|=", + "||", + "_", + "?", + "#" + ], + escapes: /\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/, + delimiters: /[,]/, + symbols: /[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/, + intSuffixes: /[iu](8|16|32|64|128|size)/, + floatSuffixes: /f(32|64)/, + tokenizer: { + root: [ + [/r(#*)"/, { token: "string.quote", bracket: "@open", next: "@stringraw.$1" }], + [ + /[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/, + { + cases: { + "@typeKeywords": "keyword.type", + "@keywords": "keyword", + "@supportConstants": "keyword", + "@supportMacros": "keyword", + "@constants": "keyword", + "@default": "identifier" + } + } + ], + [/\$/, "identifier"], + [/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/, "identifier"], + [/'(\S|@escapes)'/, "string.byteliteral"], + [/"/, { token: "string.quote", bracket: "@open", next: "@string" }], + { include: "@numbers" }, + { include: "@whitespace" }, + [ + /@delimiters/, + { + cases: { + "@keywords": "keyword", + "@default": "delimiter" + } + } + ], + [/[{}()\[\]<>]/, "@brackets"], + [/@symbols/, { cases: { "@operators": "operator", "@default": "" } }] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\/\*/, "comment", "@push"], + ["\\*/", "comment", "@pop"], + [/[\/*]/, "comment"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + stringraw: [ + [/[^"#]+/, { token: "string" }], + [ + /"(#*)/, + { + cases: { + "$1==$S2": { token: "string.quote", bracket: "@close", next: "@pop" }, + "@default": { token: "string" } + } + } + ], + [/["#]/, { token: "string" }] + ], + numbers: [ + [/(0o[0-7_]+)(@intSuffixes)?/, { token: "number" }], + [/(0b[0-1_]+)(@intSuffixes)?/, { token: "number" }], + [/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/, { token: "number" }], + [/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/, { token: "number" }], + [/(0x[\da-fA-F]+)_?(@intSuffixes)?/, { token: "number" }], + [/[\d][\d_]*(@intSuffixes?)?/, { token: "number" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8719.644b750e.js b/assets/js/8719.644b750e.js new file mode 100644 index 00000000000..6806b1777d7 --- /dev/null +++ b/assets/js/8719.644b750e.js @@ -0,0 +1,2 @@ +/*! For license information please see 8719.644b750e.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8719],{18719:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>s,language:()=>o});var s={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},o={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/\@?[a-zA-Z_]\w*/,{cases:{"@namespaceFollows":{token:"keyword.$0",next:"@namespace"},"@keywords":{token:"keyword.$0",next:"@qualified"},"@default":{token:"identifier",next:"@qualified"}}}],{include:"@whitespace"},[/}/,{cases:{"$S2==interpolatedstring":{token:"string.quote",next:"@pop"},"$S2==litinterpstring":{token:"string.quote",next:"@pop"},"@default":"@brackets"}}],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8719.644b750e.js.LICENSE.txt b/assets/js/8719.644b750e.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8719.644b750e.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8719.ec1724e6.js b/assets/js/8719.ec1724e6.js new file mode 100644 index 00000000000..e757e03d15c --- /dev/null +++ b/assets/js/8719.ec1724e6.js @@ -0,0 +1,339 @@ +"use strict"; +exports.id = 8719; +exports.ids = [8719]; +exports.modules = { + +/***/ 18719: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/csharp/csharp.ts +var conf = { + wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: '"', close: '"' } + ], + folding: { + markers: { + start: new RegExp("^\\s*#region\\b"), + end: new RegExp("^\\s*#endregion\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".cs", + brackets: [ + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "<", close: ">", token: "delimiter.angle" } + ], + keywords: [ + "extern", + "alias", + "using", + "bool", + "decimal", + "sbyte", + "byte", + "short", + "ushort", + "int", + "uint", + "long", + "ulong", + "char", + "float", + "double", + "object", + "dynamic", + "string", + "assembly", + "is", + "as", + "ref", + "out", + "this", + "base", + "new", + "typeof", + "void", + "checked", + "unchecked", + "default", + "delegate", + "var", + "const", + "if", + "else", + "switch", + "case", + "while", + "do", + "for", + "foreach", + "in", + "break", + "continue", + "goto", + "return", + "throw", + "try", + "catch", + "finally", + "lock", + "yield", + "from", + "let", + "where", + "join", + "on", + "equals", + "into", + "orderby", + "ascending", + "descending", + "select", + "group", + "by", + "namespace", + "partial", + "class", + "field", + "event", + "method", + "param", + "public", + "protected", + "internal", + "private", + "abstract", + "sealed", + "static", + "struct", + "readonly", + "volatile", + "virtual", + "override", + "params", + "get", + "set", + "add", + "remove", + "operator", + "true", + "false", + "implicit", + "explicit", + "interface", + "enum", + "null", + "async", + "await", + "fixed", + "sizeof", + "stackalloc", + "unsafe", + "nameof", + "when" + ], + namespaceFollows: ["namespace", "using"], + parenFollows: ["if", "for", "while", "switch", "foreach", "using", "catch", "when"], + operators: [ + "=", + "??", + "||", + "&&", + "|", + "^", + "&", + "==", + "!=", + "<=", + ">=", + "<<", + "+", + "-", + "*", + "/", + "%", + "!", + "~", + "++", + "--", + "+=", + "-=", + "*=", + "/=", + "%=", + "&=", + "|=", + "^=", + "<<=", + ">>=", + ">>", + "=>" + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [ + /\@?[a-zA-Z_]\w*/, + { + cases: { + "@namespaceFollows": { + token: "keyword.$0", + next: "@namespace" + }, + "@keywords": { + token: "keyword.$0", + next: "@qualified" + }, + "@default": { token: "identifier", next: "@qualified" } + } + } + ], + { include: "@whitespace" }, + [ + /}/, + { + cases: { + "$S2==interpolatedstring": { + token: "string.quote", + next: "@pop" + }, + "$S2==litinterpstring": { + token: "string.quote", + next: "@pop" + }, + "@default": "@brackets" + } + } + ], + [/[{}()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/, "number.float"], + [/0[xX][0-9a-fA-F_]+/, "number.hex"], + [/0[bB][01_]+/, "number.hex"], + [/[0-9_]+/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/"/, { token: "string.quote", next: "@string" }], + [/\$\@"/, { token: "string.quote", next: "@litinterpstring" }], + [/\@"/, { token: "string.quote", next: "@litstring" }], + [/\$"/, { token: "string.quote", next: "@interpolatedstring" }], + [/'[^\\']'/, "string"], + [/(')(@escapes)(')/, ["string", "string.escape", "string"]], + [/'/, "string.invalid"] + ], + qualified: [ + [ + /[a-zA-Z_][\w]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + [/\./, "delimiter"], + ["", "", "@pop"] + ], + namespace: [ + { include: "@whitespace" }, + [/[A-Z]\w*/, "namespace"], + [/[\.=]/, "delimiter"], + ["", "", "@pop"] + ], + comment: [ + [/[^\/*]+/, "comment"], + ["\\*/", "comment", "@pop"], + [/[\/*]/, "comment"] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, { token: "string.quote", next: "@pop" }] + ], + litstring: [ + [/[^"]+/, "string"], + [/""/, "string.escape"], + [/"/, { token: "string.quote", next: "@pop" }] + ], + litinterpstring: [ + [/[^"{]+/, "string"], + [/""/, "string.escape"], + [/{{/, "string.escape"], + [/}}/, "string.escape"], + [/{/, { token: "string.quote", next: "root.litinterpstring" }], + [/"/, { token: "string.quote", next: "@pop" }] + ], + interpolatedstring: [ + [/[^\\"{]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/{{/, "string.escape"], + [/}}/, "string.escape"], + [/{/, { token: "string.quote", next: "root.interpolatedstring" }], + [/"/, { token: "string.quote", next: "@pop" }] + ], + whitespace: [ + [/^[ \t\v\f]*#((r)|(load))(?=\s)/, "directive.csx"], + [/^[ \t\v\f]*#\w.*$/, "namespace.cpp"], + [/[ \t\v\f\r\n]+/, ""], + [/\/\*/, "comment", "@comment"], + [/\/\/.*$/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8748.af6aff9f.js b/assets/js/8748.af6aff9f.js new file mode 100644 index 00000000000..f39b5e3fcbe --- /dev/null +++ b/assets/js/8748.af6aff9f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8748],{28748:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var o=t(87462),i=(t(67294),t(3905));const s={title:"Version 0.21.0","short-title":"Version 0.21.0",author:"Gabe Levi",hide_table_of_contents:!0},a=void 0,r={permalink:"/blog/2016/02/02/Version-0.21.0",source:"@site/blog/2016-02-02-Version-0.21.0.md",title:"Version 0.21.0",description:"Yesterday we deployed Flow v0.21.0! As always, we've listed out the most",date:"2016-02-02T00:00:00.000Z",formattedDate:"February 2, 2016",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{title:"Version 0.21.0","short-title":"Version 0.21.0",author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"New Implementation of Unions and Intersections",permalink:"/blog/2016/07/01/New-Unions-Intersections"},nextItem:{title:"Version-0.19.0",permalink:"/blog/2015/12/01/Version-0.19.0"}},l={authorsImageUrls:[void 0]},d=[{value:"JSX Intrinsics",id:"jsx-intrinsics",level:3}],m={toc:d};function p(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,o.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Yesterday we deployed Flow v0.21.0! As always, we've listed out the most\ninteresting changes in the\n",(0,i.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0210"},"Changelog"),".\nHowever, since I'm on a plane and can't sleep, I thought it might be fun to\ndive into a couple of the changes! Hope this blog post turns out interesting\nand legible!"),(0,i.mdx)("h3",{id:"jsx-intrinsics"},"JSX Intrinsics"),(0,i.mdx)("p",null,"If you're writing JSX, it's probably a mix of your own React Components and\nsome intrinsics. For example, you might write"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},'render() {\n return <div><FluffyBunny name="Fifi" /></div>;\n}\n')),(0,i.mdx)("p",null,"In this example, ",(0,i.mdx)("inlineCode",{parentName:"p"},"FluffyBunny")," is a React Component you wrote and ",(0,i.mdx)("inlineCode",{parentName:"p"},"div")," is a\nJSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React\nand by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the\ntype ",(0,i.mdx)("inlineCode",{parentName:"p"},"any"),". This meant Flow let you set any property on JSX intrinsics. Flow\nv0.21.0 will, by default, do the same thing as v0.20.0, However now you can\nalso configure Flow to properly type your JSX intrinsics!"))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8757.e063498f.js b/assets/js/8757.e063498f.js new file mode 100644 index 00000000000..677723740e9 --- /dev/null +++ b/assets/js/8757.e063498f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8757],{28757:(n,t,e)=>{e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var o=e(87462),s=(e(67294),e(3905));const i={title:"Requiring More Annotations to Functions and Classes in Flow","short-title":"Functions and Classes Annotation Requirements",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/requiring-more-annotations-to-functions-and-classes-in-flow-e8aa9b1d76bd"},a=void 0,r={permalink:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes",source:"@site/blog/2022-09-30-Requiring-More-Annotations-on-Functions-and-Classes.md",title:"Requiring More Annotations to Functions and Classes in Flow",description:"Flow will now require more annotations to functions and classes.",date:"2022-09-30T00:00:00.000Z",formattedDate:"September 30, 2022",tags:[],hasTruncateMarker:!1,authors:[{name:"Sam Zhou"}],frontMatter:{title:"Requiring More Annotations to Functions and Classes in Flow","short-title":"Functions and Classes Annotation Requirements",author:"Sam Zhou","medium-link":"https://medium.com/flow-type/requiring-more-annotations-to-functions-and-classes-in-flow-e8aa9b1d76bd"},prevItem:{title:"Improved handling of the empty object in Flow",permalink:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow"},nextItem:{title:"New Flow Language Rule: Constrained Writes",permalink:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes"}},l={authorsImageUrls:[void 0]},u=[],m={toc:u};function d(n){let{components:t,...e}=n;return(0,s.mdx)("wrapper",(0,o.Z)({},m,e,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow will now require more annotations to functions and classes."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8819.8f01a10a.js b/assets/js/8819.8f01a10a.js new file mode 100644 index 00000000000..b6a2d147250 --- /dev/null +++ b/assets/js/8819.8f01a10a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8819],{98819:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>d,contentTitle:()=>t,default:()=>p,frontMatter:()=>l,metadata:()=>r,toc:()=>s});var i=n(87462),a=(n(67294),n(3905));const l={author:"Gabe Levi",hide_table_of_contents:!0},t=void 0,r={permalink:"/blog/2015/12/01/Version-0.19.0",source:"@site/blog/2015-12-01-Version-0.19.0.md",title:"Version-0.19.0",description:"Flow v0.19.0 was deployed today! It has a ton of changes, which the",date:"2015-12-01T00:00:00.000Z",formattedDate:"December 1, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Gabe Levi"}],frontMatter:{author:"Gabe Levi",hide_table_of_contents:!0},prevItem:{title:"Version 0.21.0",permalink:"/blog/2016/02/02/Version-0.21.0"},nextItem:{title:"Typing Generators with Flow",permalink:"/blog/2015/11/09/Generators"}},d={authorsImageUrls:[void 0]},s=[{value:"<code>@noflow</code>",id:"noflow",level:3},{value:"Declaration files",id:"declaration-files",level:3},{value:"Order of precedence for lib files",id:"order-of-precedence-for-lib-files",level:3},{value:"Deferred initialization",id:"deferred-initialization",level:3}],m={toc:s};function p(e){let{components:o,...n}=e;return(0,a.mdx)("wrapper",(0,i.Z)({},m,n,{components:o,mdxType:"MDXLayout"}),(0,a.mdx)("p",null,"Flow v0.19.0 was deployed today! It has a ton of changes, which the\n",(0,a.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/blob/master/Changelog.md#v0190"},"Changelog"),"\nsummarizes. The Changelog can be a little concise, though, so here are some\nlonger explanations for some of the changes. Hope this helps!"),(0,a.mdx)("h3",{id:"noflow"},(0,a.mdx)("inlineCode",{parentName:"h3"},"@noflow")),(0,a.mdx)("p",null,"Flow is opt-in by default (you add ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow")," to a file). However we noticed that\nsometimes people would add Flow annotations to files that were missing ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow"),".\nOften, these people didn't notice that the file was being ignored by Flow. So\nwe decided to stop allowing Flow syntax in non-Flow files. This is easily fixed\nby adding either ",(0,a.mdx)("inlineCode",{parentName:"p"},"@flow")," or ",(0,a.mdx)("inlineCode",{parentName:"p"},"@noflow")," to your file. The former will make the\nfile a Flow file. The latter will tell Flow to completely ignore the file."),(0,a.mdx)("h3",{id:"declaration-files"},"Declaration files"),(0,a.mdx)("p",null,"Files that end with ",(0,a.mdx)("inlineCode",{parentName:"p"},".flow")," are now treated specially. They are the preferred\nprovider of modules. That is if both ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js")," and ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js.flow")," exist, then\nwhen you write ",(0,a.mdx)("inlineCode",{parentName:"p"},"import Foo from './foo'"),", Flow will use the type exported from\n",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js.flow")," rather than ",(0,a.mdx)("inlineCode",{parentName:"p"},"foo.js"),"."),(0,a.mdx)("p",null,"We imagine two main ways people will use ",(0,a.mdx)("inlineCode",{parentName:"p"},".flow")," files."),(0,a.mdx)("ol",null,(0,a.mdx)("li",{parentName:"ol"},(0,a.mdx)("p",{parentName:"li"},"As interface files. Maybe you have some library ",(0,a.mdx)("inlineCode",{parentName:"p"},"coolLibrary.js")," that is\nreally hard to type with inline Flow types. You could put\n",(0,a.mdx)("inlineCode",{parentName:"p"},"coolLibrary.js.flow")," next to it and declare the types that ",(0,a.mdx)("inlineCode",{parentName:"p"},"coolLibrary.js"),"\nexports."),(0,a.mdx)("pre",{parentName:"li"},(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"// coolLibrary.js.flow\ndeclare export var coolVar: number;\ndeclare export function coolFunction(): void;\ndeclare export class coolClass {}\n"))),(0,a.mdx)("li",{parentName:"ol"},(0,a.mdx)("p",{parentName:"li"},"As the original source. Maybe you want to ship the minified, transformed\nversion of ",(0,a.mdx)("inlineCode",{parentName:"p"},"awesomeLibrary.js"),", but people who use ",(0,a.mdx)("inlineCode",{parentName:"p"},"awesomeLibrary.js")," also\nuse Flow. Well you could do something like"),(0,a.mdx)("pre",{parentName:"li"},(0,a.mdx)("code",{parentName:"pre",className:"language-bash"},"cp awesomeLibraryOriginalCode.js awesomeLibrary.js.flow\nbabel awesomeLibraryOriginalCode --out-file awesomeLibrary.js\n")))),(0,a.mdx)("h3",{id:"order-of-precedence-for-lib-files"},"Order of precedence for lib files"),(0,a.mdx)("p",null,"Now your local lib files will override the builtin lib files. Is one of the\nbuiltin flow libs wrong? Send a pull request! But then while you're waiting for\nthe next release, you can use your own definition! The order of precedence is\nas follows:"),(0,a.mdx)("ol",null,(0,a.mdx)("li",{parentName:"ol"},"Any paths supplied on the command line via --lib"),(0,a.mdx)("li",{parentName:"ol"},"The files found in the paths specified in the .flowconfig ",(0,a.mdx)("inlineCode",{parentName:"li"},"[libs]")," (in\nlisting order)"),(0,a.mdx)("li",{parentName:"ol"},"The Flow core library files")),(0,a.mdx)("p",null,"For example, if I want to override the builtin definition of Array and instead\nuse my own version, I could update my ",(0,a.mdx)("inlineCode",{parentName:"p"},".flowconfig")," to contain"),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre"},"// .flowconfig\n[libs]\nmyArray.js\n")),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},"// myArray.js\ndeclare class Array<T> {\n // Put whatever you like in here!\n}\n")),(0,a.mdx)("h3",{id:"deferred-initialization"},"Deferred initialization"),(0,a.mdx)("p",null,"Previously the following code was an error, because the initialization of\n",(0,a.mdx)("inlineCode",{parentName:"p"},"myString")," happens later. Now Flow is fine with it."),(0,a.mdx)("pre",null,(0,a.mdx)("code",{parentName:"pre",className:"language-js"},'function foo(someFlag: boolean): string {\n var myString:string;\n if (someFlag) {\n myString = "yup";\n } else {\n myString = "nope";\n }\n return myString;\n}\n')))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8880.0e52c112.js b/assets/js/8880.0e52c112.js new file mode 100644 index 00000000000..4857d03847a --- /dev/null +++ b/assets/js/8880.0e52c112.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8880],{18880:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=t(87462),l=(t(67294),t(3905));t(45475);const o={title:"Tuples",slug:"/types/tuples"},r=void 0,i={unversionedId:"types/tuples",id:"types/tuples",title:"Tuples",description:"Tuple types represent a fixed length list, where the elements can have different types.",source:"@site/docs/types/tuples.md",sourceDirName:"types",slug:"/types/tuples",permalink:"/en/docs/types/tuples",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/tuples.md",tags:[],version:"current",frontMatter:{title:"Tuples",slug:"/types/tuples"},sidebar:"docsSidebar",previous:{title:"Arrays",permalink:"/en/docs/types/arrays"},next:{title:"Classes",permalink:"/en/docs/types/classes"}},s={},p=[{value:"Tuple Basics",id:"tuple-basics",level:2},{value:"Strictly enforced tuple length (arity)",id:"toc-strictly-enforced-tuple-length-arity",level:2},{value:"Tuples don't match array types",id:"toc-tuples-don-t-match-array-types",level:2},{value:"Cannot use mutating array methods on tuples",id:"toc-cannot-use-mutating-array-methods-on-tuples",level:2},{value:"Length refinement",id:"length-refinement",level:2},{value:"Tuple element labels",id:"tuple-element-labels",level:2},{value:"Variance annotations and read-only tuples",id:"variance-annotations-and-read-only-tuples",level:2},{value:"Optional tuple elements",id:"optional-tuple-elements",level:2},{value:"Tuple spread",id:"tuple-spread",level:2},{value:"Adoption",id:"adoption",level:2}],u={toc:p};function m(e){let{components:n,...t}=e;return(0,l.mdx)("wrapper",(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,l.mdx)("p",null,"Tuple types represent a ",(0,l.mdx)("strong",{parentName:"p"},"fixed length")," list, where the elements can have ",(0,l.mdx)("strong",{parentName:"p"},"different types"),".\nThis is in contrast to ",(0,l.mdx)("a",{parentName:"p",href:"../arrays"},"array types"),", which have an unknown length and all elements have the same type."),(0,l.mdx)("h2",{id:"tuple-basics"},"Tuple Basics"),(0,l.mdx)("p",null,"JavaScript array literal values can be used to create both tuple and array types:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const arr: Array<number> = [1, 2, 3]; // As an array type\nconst tup: [number, number, number] = [1, 2, 3]; // As a tuple type\n")),(0,l.mdx)("p",null,"In Flow you can create tuple types using the ",(0,l.mdx)("inlineCode",{parentName:"p"},"[type1, type2, type3]")," syntax:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const tuple1: [number] = [1];\nconst tuple2: [number, boolean] = [1, true];\nconst tuple3: [number, boolean, string] = [1, true, "three"];\n')),(0,l.mdx)("p",null,"When you get a value from a tuple at a specific index, it will return the\ntype at that index:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const tuple: [number, boolean, string] = [1, true, "three"];\n\nconst num: number = tuple[0]; // Works!\nconst bool: boolean = tuple[1]; // Works!\nconst str: string = tuple[2]; // Works!\n')),(0,l.mdx)("p",null,"Trying to access an index that does not exist results in an index-out-of-bounds error:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",3:!0,className:"language-flow",metastring:'[{"startLine":3,"startColumn":14,"endLine":3,"endColumn":21,"description":"Cannot get `tuple[3]` because tuple type [1] only has 3 elements, so index 3 is out of bounds. [invalid-tuple-index]"}]','[{"startLine":3,"startColumn":14,"endLine":3,"endColumn":21,"description":"Cannot':!0,get:!0,"`tuple[3]`":!0,because:!0,tuple:!0,type:!0,"[1]":!0,only:!0,has:!0,"elements,":!0,so:!0,index:!0,is:!0,out:!0,of:!0,"bounds.":!0,'[invalid-tuple-index]"}]':!0},'const tuple: [number, boolean, string] = [1, true, "three"];\n\nconst none = tuple[3]; // Error!\n')),(0,l.mdx)("p",null,"If Flow doesn't know which index you are trying to access it will return all\npossible types:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'const tuple: [number, boolean, string] = [1, true, "three"];\n\nfunction getItem(n: number) {\n const val: number | boolean | string = tuple[n];\n // ...\n}\n')),(0,l.mdx)("p",null,"When setting a new value inside a tuple, the new value must match the type at\nthat index:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":12,"endLine":7,"endColumn":16,"description":"Cannot assign `\\"bar\\"` to `tuple[0]` because string [1] is incompatible with number [2]. [incompatible-type]"},{"startLine":8,"startColumn":12,"endLine":8,"endColumn":13,"description":"Cannot assign `42` to `tuple[1]` because number [1] is incompatible with boolean [2]. [incompatible-type]"},{"startLine":9,"startColumn":12,"endLine":9,"endColumn":16,"description":"Cannot assign `false` to `tuple[2]` because boolean [1] is incompatible with string [2]. [incompatible-type]"}]','[{"startLine":7,"startColumn":12,"endLine":7,"endColumn":16,"description":"Cannot':!0,assign:!0,'`\\"bar\\"`':!0,to:!0,"`tuple[0]`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,number:!0,"[2].":!0,'[incompatible-type]"},{"startLine":8,"startColumn":12,"endLine":8,"endColumn":13,"description":"Cannot':!0,"`42`":!0,"`tuple[1]`":!0,boolean:!0,'[incompatible-type]"},{"startLine":9,"startColumn":12,"endLine":9,"endColumn":16,"description":"Cannot':!0,"`false`":!0,"`tuple[2]`":!0,'[incompatible-type]"}]':!0},'const tuple: [number, boolean, string] = [1, true, "three"];\n\ntuple[0] = 2; // Works!\ntuple[1] = false; // Works!\ntuple[2] = "foo"; // Works!\n\ntuple[0] = "bar"; // Error!\ntuple[1] = 42; // Error!\ntuple[2] = false; // Error!\n')),(0,l.mdx)("h2",{id:"toc-strictly-enforced-tuple-length-arity"},"Strictly enforced tuple length (arity)"),(0,l.mdx)("p",null,'The length of the tuple is known as the "arity". The length of a tuple is\nstrictly enforced in Flow.'),(0,l.mdx)("p",null,"This means that a shorter tuple can't be used in place of a longer one:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",2:!0,3:!0,className:"language-flow",metastring:'[{"startLine":3,"startColumn":41,"endLine":3,"endColumn":46,"description":"Cannot assign `tuple1` to `tuple2` because tuple type [1] has 2 elements but tuple type [2] has 3 elements. [invalid-tuple-arity]"}]','[{"startLine":3,"startColumn":41,"endLine":3,"endColumn":46,"description":"Cannot':!0,assign:!0,"`tuple1`":!0,to:!0,"`tuple2`":!0,because:!0,tuple:!0,type:!0,"[1]":!0,has:!0,elements:!0,but:!0,"[2]":!0,"elements.":!0,'[invalid-tuple-arity]"}]':!0},"const tuple1: [number, boolean] = [1, true];\n\nconst tuple2: [number, boolean, void] = tuple1; // Error!\n")),(0,l.mdx)("p",null,"Also, a longer tuple can't be used in place of a shorter one:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",2:!0,3:!0,className:"language-flow",metastring:'[{"startLine":3,"startColumn":35,"endLine":3,"endColumn":40,"description":"Cannot assign `tuple1` to `tuple2` because tuple type [1] has 3 elements but tuple type [2] has 2 elements. [invalid-tuple-arity]"}]','[{"startLine":3,"startColumn":35,"endLine":3,"endColumn":40,"description":"Cannot':!0,assign:!0,"`tuple1`":!0,to:!0,"`tuple2`":!0,because:!0,tuple:!0,type:!0,"[1]":!0,has:!0,elements:!0,but:!0,"[2]":!0,"elements.":!0,'[invalid-tuple-arity]"}]':!0},"const tuple1: [number, boolean, void] = [1, true, undefined];\n\nconst tuple2: [number, boolean] = tuple1; // Error!\n")),(0,l.mdx)("p",null,(0,l.mdx)("a",{parentName:"p",href:"#optional-tuple-elements"},"Optional elements")," make the arity into a range."),(0,l.mdx)("h2",{id:"toc-tuples-don-t-match-array-types"},"Tuples don't match array types"),(0,l.mdx)("p",null,"Since Flow does not know the length of an array, an ",(0,l.mdx)("inlineCode",{parentName:"p"},"Array<T>")," type cannot be\npassed into a tuple:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":33,"endLine":3,"endColumn":37,"description":"Cannot assign `array` to `tuple` because array type [1] has an unknown number of elements, so is incompatible with tuple type [2]. [invalid-tuple-arity]"}]','[{"startLine":3,"startColumn":33,"endLine":3,"endColumn":37,"description":"Cannot':!0,assign:!0,"`array`":!0,to:!0,"`tuple`":!0,because:!0,array:!0,type:!0,"[1]":!0,has:!0,an:!0,unknown:!0,number:!0,of:!0,"elements,":!0,so:!0,is:!0,incompatible:!0,with:!0,tuple:!0,"[2].":!0,'[invalid-tuple-arity]"}]':!0},"const array: Array<number> = [1, 2];\n\nconst tuple: [number, number] = array; // Error!\n")),(0,l.mdx)("p",null,"Also a tuple type cannot be passed into to an ",(0,l.mdx)("inlineCode",{parentName:"p"},"Array<T>")," type, since then you\ncould mutate the tuple in an unsafe way (for example, ",(0,l.mdx)("inlineCode",{parentName:"p"},"push"),"ing a third item onto it):"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":30,"endLine":3,"endColumn":34,"description":"Cannot assign `tuple` to `array` because tuple type [1] is incompatible with array type [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":30,"endLine":3,"endColumn":34,"description":"Cannot':!0,assign:!0,"`tuple`":!0,to:!0,"`array`":!0,because:!0,tuple:!0,type:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,array:!0,"[2].":!0,'[incompatible-type]"}]':!0},"const tuple: [number, number] = [1, 2];\n\nconst array: Array<number> = tuple; // Error!\n")),(0,l.mdx)("p",null,"However, you can pass it to a ",(0,l.mdx)("a",{parentName:"p",href:"../arrays/#toc-readonlyarray"},(0,l.mdx)("inlineCode",{parentName:"a"},"$ReadOnlyArray"))," type, since mutation is disallowed:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const tuple: [number, number] = [1, 2];\n\nconst array: $ReadOnlyArray<number> = tuple; // Works!\n")),(0,l.mdx)("h2",{id:"toc-cannot-use-mutating-array-methods-on-tuples"},"Cannot use mutating array methods on tuples"),(0,l.mdx)("p",null,"You cannot use ",(0,l.mdx)("inlineCode",{parentName:"p"},"Array.prototype")," methods that mutate the tuple, only ones that do not:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":7,"endLine":4,"endColumn":10,"description":"Cannot call `tuple.push` because property `push` is missing in `$ReadOnlyArray` [1]. [prop-missing]"}]','[{"startLine":4,"startColumn":7,"endLine":4,"endColumn":10,"description":"Cannot':!0,call:!0,"`tuple.push`":!0,because:!0,property:!0,"`push`":!0,is:!0,missing:!0,in:!0,"`$ReadOnlyArray`":!0,"[1].":!0,'[prop-missing]"}]':!0},"const tuple: [number, number] = [1, 2];\ntuple.join(', '); // Works!\n\ntuple.push(3); // Error!\n")),(0,l.mdx)("h2",{id:"length-refinement"},"Length refinement"),(0,l.mdx)("p",null,"You can refine a ",(0,l.mdx)("a",{parentName:"p",href:"../unions"},"union")," of tuples by their length:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Union = [number, string] | [boolean];\nfunction f(x: Union) {\n if (x.length === 2) {\n // `x` is `[number, string]`\n const n: number = x[0]; // OK\n const s: string = x[1]; // OK\n } else {\n // `x` is `[boolean]`\n const b: boolean = x[0];\n }\n}\n")),(0,l.mdx)("h2",{id:"tuple-element-labels"},"Tuple element labels"),(0,l.mdx)("blockquote",null,(0,l.mdx)("p",{parentName:"blockquote"},'NOTE: This and the following sections require your tooling to be updated as described in the "Adoption" section at the end of this page.')),(0,l.mdx)("p",null,"You can add a label to tuple elements. This label does not affect the type of the tuple element,\nbut is useful in self-documenting the purpose of the tuple elements, especially when multiple elements have the same type."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type Range = [x: number, y: number];\n")),(0,l.mdx)("p",null,"The label is also necessary to add a variance annotation or optionality modifier to an element (as without the label we would have parsing ambiguities)."),(0,l.mdx)("h2",{id:"variance-annotations-and-read-only-tuples"},"Variance annotations and read-only tuples"),(0,l.mdx)("p",null,"You can add ",(0,l.mdx)("a",{parentName:"p",href:"../../lang/variance"},"variance")," annotations (to denote read-only/write-only) on labeled tuple elements, just like on object properties:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type T = [+foo: number, -bar: string];\n")),(0,l.mdx)("p",null,"This allows you to mark elements as read-only or write-only. For example:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":18,"description":"Cannot assign `1` to `readOnlyTuple[1]` because tuple element at index `1` [1] labeled `bar` is not writable. [cannot-write]"},{"startLine":3,"startColumn":22,"endLine":3,"endColumn":22,"description":"Cannot assign `1` to `readOnlyTuple[1]` because number [1] is incompatible with string [2]. [incompatible-type]"}]','[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":18,"description":"Cannot':!0,assign:!0,"`1`":!0,to:!0,"`readOnlyTuple[1]`":!0,because:!0,tuple:!0,element:!0,at:!0,index:!0,"[1]":!0,labeled:!0,"`bar`":!0,is:!0,not:!0,"writable.":!0,'[cannot-write]"},{"startLine":3,"startColumn":22,"endLine":3,"endColumn":22,"description":"Cannot':!0,number:!0,incompatible:!0,with:!0,string:!0,"[2].":!0,'[incompatible-type]"}]':!0},"function f(readOnlyTuple: [+foo: number, +bar: string]) {\n const n: number = readOnlyTuple[0]; // OK to read\n readOnlyTuple[1] = 1; // ERROR! Cannot write\n}\n")),(0,l.mdx)("p",null,"You can also use the ",(0,l.mdx)("a",{parentName:"p",href:"../utilities/#toc-readonly"},(0,l.mdx)("inlineCode",{parentName:"a"},"$ReadOnly"))," on tuple types as a shorthand for marking each property as read-only:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type T = $ReadOnly<[number, string]>; // Same as `[+a: number, +b: string]`\n")),(0,l.mdx)("h2",{id:"optional-tuple-elements"},"Optional tuple elements"),(0,l.mdx)("p",null,"You can mark tuple elements as optional with ",(0,l.mdx)("inlineCode",{parentName:"p"},"?")," after an element\u2019s label. This allows you to omit the optional elements.\nOptional elements must be at the end of the tuple type, after all required elements."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type T = [foo: number, bar?: string];\n([1, "s"]: T); // OK: has all elements\n([1]: T); // OK: skipping optional element\n')),(0,l.mdx)("p",null,"You cannot write ",(0,l.mdx)("inlineCode",{parentName:"p"},"undefined")," to the optional element - add ",(0,l.mdx)("inlineCode",{parentName:"p"},"| void")," to the element type if you want to do so:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":8,"endLine":3,"endColumn":16,"description":"Cannot assign `undefined` to `x[0]` because you cannot assign undefined [1] to optional tuple element [2] (to do so, add `| void` to the tuple element type). [incompatible-type]"},{"startLine":4,"startColumn":3,"endLine":4,"endColumn":11,"description":"Cannot cast array literal to `T` because you cannot assign undefined [1] to optional tuple element [2] (to do so, add `| void` to the tuple element type) in index 0. [incompatible-cast]"}]','[{"startLine":3,"startColumn":8,"endLine":3,"endColumn":16,"description":"Cannot':!0,assign:!0,"`undefined`":!0,to:!0,"`x[0]`":!0,because:!0,you:!0,cannot:!0,undefined:!0,"[1]":!0,optional:!0,tuple:!0,element:!0,"[2]":!0,"(to":!0,do:!0,"so,":!0,add:!0,"`|":!0,"void`":!0,the:!0,"type).":!0,'[incompatible-type]"},{"startLine":4,"startColumn":3,"endLine":4,"endColumn":11,"description":"Cannot':!0,cast:!0,array:!0,literal:!0,"`T`":!0,"type)":!0,in:!0,index:!0,"0.":!0,'[incompatible-cast]"}]':!0},"type T = [foo?: number, bar?: number | void];\ndeclare const x: T;\nx[0] = undefined; // ERROR\n([undefined]: T); // ERROR\n\nx[1] = undefined; // OK: we've added `| void` to the element type\n")),(0,l.mdx)("p",null,"You can also use the ",(0,l.mdx)("a",{parentName:"p",href:"../utilities/#toc-partial"},(0,l.mdx)("inlineCode",{parentName:"a"},"Partial"))," and ",(0,l.mdx)("a",{parentName:"p",href:"../utilities/#toc-required"},(0,l.mdx)("inlineCode",{parentName:"a"},"Required"))," utility types to make all elements optional or required respectively:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",0:!0,2:!0,className:"language-flow",metastring:'[{"startLine":5,"startColumn":2,"endLine":5,"endColumn":3,"description":"Cannot cast array literal to required of `AllOptional` because empty array literal [1] has 0 elements but `AllOptional` [2] has 2 elements. [invalid-tuple-arity]"}]','[{"startLine":5,"startColumn":2,"endLine":5,"endColumn":3,"description":"Cannot':!0,cast:!0,array:!0,literal:!0,to:!0,required:!0,of:!0,"`AllOptional`":!0,because:!0,empty:!0,"[1]":!0,has:!0,elements:!0,but:!0,"[2]":!0,"elements.":!0,'[invalid-tuple-arity]"}]':!0},"type AllRequired = [number, string];\n([]: Partial<AllRequired>); // OK: like `[a?: number, b?: string]` now\n\ntype AllOptional = [a?: number, b?: string];\n([]: Required<AllOptional>); // ERROR: like `[a: number, b: string]` now\n")),(0,l.mdx)("p",null,"Tuples with optional elements have an arity (length) that is a range rather than a single number. For example, ",(0,l.mdx)("inlineCode",{parentName:"p"},"[number, b?: string]")," has an length of 1-2."),(0,l.mdx)("h2",{id:"tuple-spread"},"Tuple spread"),(0,l.mdx)("p",null,"You can spread a tuple type into another tuple type to make a longer tuple type:"),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type A = [number, string];\ntype T = [...A, boolean]; // Same as `[number, string, boolean]`\n([1, "s", true]: T); // OK\n')),(0,l.mdx)("p",null,"Tuple spreads preserve labels, variance, and optionality. You cannot spread arrays into tuples, only other tuples."),(0,l.mdx)("p",null,"At the value level, if you spread a tuple with optional elements into an array literal, then you cannot have anything after that spread and retain the tuple view of the array value.\nThat is because a tuple with optional elements has a length that's a range, so we don't know at what index any subsequent values would be at.\nYou can still type this value as the appropriate ",(0,l.mdx)("inlineCode",{parentName:"p"},"Array<T>")," type - only the tuple view of the value is affected."),(0,l.mdx)("pre",null,(0,l.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":2,"endLine":3,"endColumn":2,"description":"Cannot cast `b` to tuple type because array literal [1] has an unknown number of elements, so is incompatible with tuple type [2]. [invalid-tuple-arity]"},{"startLine":9,"startColumn":2,"endLine":9,"endColumn":2,"description":"Cannot cast `e` to tuple type because array literal [1] has an unknown number of elements, so is incompatible with tuple type [2]. [invalid-tuple-arity]"}]','[{"startLine":3,"startColumn":2,"endLine":3,"endColumn":2,"description":"Cannot':!0,cast:!0,"`b`":!0,to:!0,tuple:!0,type:!0,because:!0,array:!0,literal:!0,"[1]":!0,has:!0,an:!0,unknown:!0,number:!0,of:!0,"elements,":!0,so:!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[invalid-tuple-arity]"},{"startLine":9,"startColumn":2,"endLine":9,"endColumn":2,"description":"Cannot':!0,"`e`":!0,'[invalid-tuple-arity]"}]':!0},"const a: [foo?: 1] = [];\nconst b = [0, ...a, 2]; // At runtime this is `[0, 2]`\n(b: [0, 1 | void, 2]); // ERROR\n(b: Array<number | void>); // OK\n\nconst c: [0, foo?: 1] = [0];\nconst d: [bar?: 2] = [2];\nconst e = [...c, ...d]; // At runtime this is `[0, 2]`\n(e: [0, foo?: 1, bar?: 2]); // ERROR\n(e: Array<number | void>); // OK\n")),(0,l.mdx)("h2",{id:"adoption"},"Adoption"),(0,l.mdx)("p",null,"To use labeled tuple elements (including optional elements and variance annotations on elements) and tuple spread elements,\nyou need to upgrade your infrastructure so that it supports the syntax:"),(0,l.mdx)("ul",null,(0,l.mdx)("li",{parentName:"ul"},(0,l.mdx)("inlineCode",{parentName:"li"},"flow")," and ",(0,l.mdx)("inlineCode",{parentName:"li"},"flow-parser"),": 0.212.0"),(0,l.mdx)("li",{parentName:"ul"},(0,l.mdx)("inlineCode",{parentName:"li"},"prettier"),": 3"),(0,l.mdx)("li",{parentName:"ul"},(0,l.mdx)("inlineCode",{parentName:"li"},"babel")," with ",(0,l.mdx)("inlineCode",{parentName:"li"},"babel-plugin-syntax-hermes-parser"),". See ",(0,l.mdx)("a",{parentName:"li",href:"../../tools/babel/"},"our Babel guide")," for setup instructions."),(0,l.mdx)("li",{parentName:"ul"},(0,l.mdx)("inlineCode",{parentName:"li"},"eslint")," with ",(0,l.mdx)("inlineCode",{parentName:"li"},"hermes-eslint"),". See ",(0,l.mdx)("a",{parentName:"li",href:"../../tools/eslint/"},"our ESLint guide")," for setup instructions.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8894.52aa9cfa.js b/assets/js/8894.52aa9cfa.js new file mode 100644 index 00000000000..7f5998153a3 --- /dev/null +++ b/assets/js/8894.52aa9cfa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8894],{18894:(e,s,w)=>{w.r(s)}}]); \ No newline at end of file diff --git a/assets/js/8899.b1fe8204.js b/assets/js/8899.b1fe8204.js new file mode 100644 index 00000000000..b4cbad836d8 --- /dev/null +++ b/assets/js/8899.b1fe8204.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8899],{68899:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var n=o(87462),s=(o(67294),o(3905));const r={title:"Introducing Flow Indexed Access Types","short-title":"Flow Indexed Access Types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-indexed-access-types-b27175251fd0"},a=void 0,i={permalink:"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types",source:"@site/blog/2021-07-21-Introducing-Flow-Indexed-Access-Types.md",title:"Introducing Flow Indexed Access Types",description:"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.",date:"2021-07-21T00:00:00.000Z",formattedDate:"July 21, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Introducing Flow Indexed Access Types","short-title":"Flow Indexed Access Types",author:"George Zahariev","medium-link":"https://medium.com/flow-type/introducing-flow-indexed-access-types-b27175251fd0"},prevItem:{title:"TypeScript Enums vs. Flow Enums",permalink:"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums"},nextItem:{title:"Sound Typing for 'this' in Flow",permalink:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"}},d={authorsImageUrls:[void 0]},c=[],l={toc:c};function p(e){let{components:t,...o}=e;return(0,s.mdx)("wrapper",(0,n.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Flow\u2019s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8906.90c5de7a.js b/assets/js/8906.90c5de7a.js new file mode 100644 index 00000000000..276cc06af87 --- /dev/null +++ b/assets/js/8906.90c5de7a.js @@ -0,0 +1,2 @@ +/*! For license information please see 8906.90c5de7a.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8906],{38906:(e,s,t)=>{t.r(s),t.d(s,{conf:()=>o,language:()=>E});var o={comments:{blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"(*",close:"*)"},{open:"<*",close:"*>"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}]},E={defaultToken:"",tokenPostfix:".m3",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["AND","ANY","ARRAY","AS","BEGIN","BITS","BRANDED","BY","CASE","CONST","DIV","DO","ELSE","ELSIF","END","EVAL","EXCEPT","EXCEPTION","EXIT","EXPORTS","FINALLY","FOR","FROM","GENERIC","IF","IMPORT","IN","INTERFACE","LOCK","LOOP","METHODS","MOD","MODULE","NOT","OBJECT","OF","OR","OVERRIDES","PROCEDURE","RAISE","RAISES","READONLY","RECORD","REF","REPEAT","RETURN","REVEAL","SET","THEN","TO","TRY","TYPE","TYPECASE","UNSAFE","UNTIL","UNTRACED","VALUE","VAR","WHILE","WITH"],reservedConstNames:["ABS","ADR","ADRSIZE","BITSIZE","BYTESIZE","CEILING","DEC","DISPOSE","FALSE","FIRST","FLOAT","FLOOR","INC","ISTYPE","LAST","LOOPHOLE","MAX","MIN","NARROW","NEW","NIL","NUMBER","ORD","ROUND","SUBARRAY","TRUE","TRUNC","TYPECODE","VAL"],reservedTypeNames:["ADDRESS","ANY","BOOLEAN","CARDINAL","CHAR","EXTENDED","INTEGER","LONGCARD","LONGINT","LONGREAL","MUTEX","NULL","REAL","REFANY","ROOT","TEXT"],operators:["+","-","*","/","&","^","."],relations:["=","#","<","<=",">",">=","<:",":"],delimiters:["|","..","=>",",",";",":="],symbols:/[>=<#.,:;+\-*/&^]+/,escapes:/\\(?:[\\fnrt"']|[0-7]{3})/,tokenizer:{root:[[/_\w*/,"invalid"],[/[a-zA-Z][a-zA-Z0-9_]*/,{cases:{"@keywords":{token:"keyword.$0"},"@reservedConstNames":{token:"constant.reserved.$0"},"@reservedTypeNames":{token:"type.reserved.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/,"number.float"],[/[0-9]+(?:\_[0-9a-fA-F]+)?L?/,"number"],[/@symbols/,{cases:{"@operators":"operators","@relations":"operators","@delimiters":"delimiter","@default":"invalid"}}],[/'[^\\']'/,"string.char"],[/(')(@escapes)(')/,["string.char","string.escape","string.char"]],[/'/,"invalid"],[/"([^"\\]|\\.)*$/,"invalid"],[/"/,"string.text","@text"]],text:[[/[^\\"]+/,"string.text"],[/@escapes/,"string.escape"],[/\\./,"invalid"],[/"/,"string.text","@pop"]],comment:[[/\(\*/,"comment","@push"],[/\*\)/,"comment","@pop"],[/./,"comment"]],pragma:[[/<\*/,"keyword.pragma","@push"],[/\*>/,"keyword.pragma","@pop"],[/./,"keyword.pragma"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/<\*/,"keyword.pragma","@pragma"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8906.90c5de7a.js.LICENSE.txt b/assets/js/8906.90c5de7a.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8906.90c5de7a.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8906.ef7cf848.js b/assets/js/8906.ef7cf848.js new file mode 100644 index 00000000000..48debf3aef7 --- /dev/null +++ b/assets/js/8906.ef7cf848.js @@ -0,0 +1,229 @@ +"use strict"; +exports.id = 8906; +exports.ids = [8906]; +exports.modules = { + +/***/ 43994: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/m3/m3.ts +var conf = { + comments: { + blockComment: ["(*", "*)"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "[", close: "]" }, + { open: "{", close: "}" }, + { open: "(", close: ")" }, + { open: "(*", close: "*)" }, + { open: "<*", close: "*>" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".m3", + brackets: [ + { token: "delimiter.curly", open: "{", close: "}" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.square", open: "[", close: "]" } + ], + keywords: [ + "AND", + "ANY", + "ARRAY", + "AS", + "BEGIN", + "BITS", + "BRANDED", + "BY", + "CASE", + "CONST", + "DIV", + "DO", + "ELSE", + "ELSIF", + "END", + "EVAL", + "EXCEPT", + "EXCEPTION", + "EXIT", + "EXPORTS", + "FINALLY", + "FOR", + "FROM", + "GENERIC", + "IF", + "IMPORT", + "IN", + "INTERFACE", + "LOCK", + "LOOP", + "METHODS", + "MOD", + "MODULE", + "NOT", + "OBJECT", + "OF", + "OR", + "OVERRIDES", + "PROCEDURE", + "RAISE", + "RAISES", + "READONLY", + "RECORD", + "REF", + "REPEAT", + "RETURN", + "REVEAL", + "SET", + "THEN", + "TO", + "TRY", + "TYPE", + "TYPECASE", + "UNSAFE", + "UNTIL", + "UNTRACED", + "VALUE", + "VAR", + "WHILE", + "WITH" + ], + reservedConstNames: [ + "ABS", + "ADR", + "ADRSIZE", + "BITSIZE", + "BYTESIZE", + "CEILING", + "DEC", + "DISPOSE", + "FALSE", + "FIRST", + "FLOAT", + "FLOOR", + "INC", + "ISTYPE", + "LAST", + "LOOPHOLE", + "MAX", + "MIN", + "NARROW", + "NEW", + "NIL", + "NUMBER", + "ORD", + "ROUND", + "SUBARRAY", + "TRUE", + "TRUNC", + "TYPECODE", + "VAL" + ], + reservedTypeNames: [ + "ADDRESS", + "ANY", + "BOOLEAN", + "CARDINAL", + "CHAR", + "EXTENDED", + "INTEGER", + "LONGCARD", + "LONGINT", + "LONGREAL", + "MUTEX", + "NULL", + "REAL", + "REFANY", + "ROOT", + "TEXT" + ], + operators: ["+", "-", "*", "/", "&", "^", "."], + relations: ["=", "#", "<", "<=", ">", ">=", "<:", ":"], + delimiters: ["|", "..", "=>", ",", ";", ":="], + symbols: /[>=<#.,:;+\-*/&^]+/, + escapes: /\\(?:[\\fnrt"']|[0-7]{3})/, + tokenizer: { + root: [ + [/_\w*/, "invalid"], + [ + /[a-zA-Z][a-zA-Z0-9_]*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@reservedConstNames": { token: "constant.reserved.$0" }, + "@reservedTypeNames": { token: "type.reserved.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/, "number.float"], + [/[0-9]+(?:\_[0-9a-fA-F]+)?L?/, "number"], + [ + /@symbols/, + { + cases: { + "@operators": "operators", + "@relations": "operators", + "@delimiters": "delimiter", + "@default": "invalid" + } + } + ], + [/'[^\\']'/, "string.char"], + [/(')(@escapes)(')/, ["string.char", "string.escape", "string.char"]], + [/'/, "invalid"], + [/"([^"\\]|\\.)*$/, "invalid"], + [/"/, "string.text", "@text"] + ], + text: [ + [/[^\\"]+/, "string.text"], + [/@escapes/, "string.escape"], + [/\\./, "invalid"], + [/"/, "string.text", "@pop"] + ], + comment: [ + [/\(\*/, "comment", "@push"], + [/\*\)/, "comment", "@pop"], + [/./, "comment"] + ], + pragma: [ + [/<\*/, "keyword.pragma", "@push"], + [/\*>/, "keyword.pragma", "@pop"], + [/./, "keyword.pragma"] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/\(\*/, "comment", "@comment"], + [/<\*/, "keyword.pragma", "@pragma"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8946.a7036c9d.js b/assets/js/8946.a7036c9d.js new file mode 100644 index 00000000000..e07ea282f95 --- /dev/null +++ b/assets/js/8946.a7036c9d.js @@ -0,0 +1,2 @@ +/*! For license information please see 8946.a7036c9d.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8946],{68946:(t,e,r)=>{r.r(e),r.d(e,{conf:()=>s,language:()=>n});var s={brackets:[],autoClosingPairs:[],surroundingPairs:[]},n={keywords:[],typeKeywords:[],tokenPostfix:".csp",operators:[],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/child-src/,"string.quote"],[/connect-src/,"string.quote"],[/default-src/,"string.quote"],[/font-src/,"string.quote"],[/frame-src/,"string.quote"],[/img-src/,"string.quote"],[/manifest-src/,"string.quote"],[/media-src/,"string.quote"],[/object-src/,"string.quote"],[/script-src/,"string.quote"],[/style-src/,"string.quote"],[/worker-src/,"string.quote"],[/base-uri/,"string.quote"],[/plugin-types/,"string.quote"],[/sandbox/,"string.quote"],[/disown-opener/,"string.quote"],[/form-action/,"string.quote"],[/frame-ancestors/,"string.quote"],[/report-uri/,"string.quote"],[/report-to/,"string.quote"],[/upgrade-insecure-requests/,"string.quote"],[/block-all-mixed-content/,"string.quote"],[/require-sri-for/,"string.quote"],[/reflected-xss/,"string.quote"],[/referrer/,"string.quote"],[/policy-uri/,"string.quote"],[/'self'/,"string.quote"],[/'unsafe-inline'/,"string.quote"],[/'unsafe-eval'/,"string.quote"],[/'strict-dynamic'/,"string.quote"],[/'unsafe-hashed-attributes'/,"string.quote"]]}}}}]); \ No newline at end of file diff --git a/assets/js/8946.a7036c9d.js.LICENSE.txt b/assets/js/8946.a7036c9d.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/8946.a7036c9d.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/8946.a960f7e2.js b/assets/js/8946.a960f7e2.js new file mode 100644 index 00000000000..0f50ccc43af --- /dev/null +++ b/assets/js/8946.a960f7e2.js @@ -0,0 +1,76 @@ +"use strict"; +exports.id = 8946; +exports.ids = [8946]; +exports.modules = { + +/***/ 68946: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/csp/csp.ts +var conf = { + brackets: [], + autoClosingPairs: [], + surroundingPairs: [] +}; +var language = { + keywords: [], + typeKeywords: [], + tokenPostfix: ".csp", + operators: [], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [/child-src/, "string.quote"], + [/connect-src/, "string.quote"], + [/default-src/, "string.quote"], + [/font-src/, "string.quote"], + [/frame-src/, "string.quote"], + [/img-src/, "string.quote"], + [/manifest-src/, "string.quote"], + [/media-src/, "string.quote"], + [/object-src/, "string.quote"], + [/script-src/, "string.quote"], + [/style-src/, "string.quote"], + [/worker-src/, "string.quote"], + [/base-uri/, "string.quote"], + [/plugin-types/, "string.quote"], + [/sandbox/, "string.quote"], + [/disown-opener/, "string.quote"], + [/form-action/, "string.quote"], + [/frame-ancestors/, "string.quote"], + [/report-uri/, "string.quote"], + [/report-to/, "string.quote"], + [/upgrade-insecure-requests/, "string.quote"], + [/block-all-mixed-content/, "string.quote"], + [/require-sri-for/, "string.quote"], + [/reflected-xss/, "string.quote"], + [/referrer/, "string.quote"], + [/policy-uri/, "string.quote"], + [/'self'/, "string.quote"], + [/'unsafe-inline'/, "string.quote"], + [/'unsafe-eval'/, "string.quote"], + [/'strict-dynamic'/, "string.quote"], + [/'unsafe-hashed-attributes'/, "string.quote"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/8985.e67ce2b4.js b/assets/js/8985.e67ce2b4.js new file mode 100644 index 00000000000..ac2849999f9 --- /dev/null +++ b/assets/js/8985.e67ce2b4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8985],{48985:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>p,toc:()=>l});var t=a(87462),i=(a(67294),a(3905));a(45475);const o={title:"Type Variance",slug:"/lang/variance"},r=void 0,p={unversionedId:"lang/variance",id:"lang/variance",title:"Type Variance",description:"Variance is a topic that comes up fairly often in type systems. It is used to determine",source:"@site/docs/lang/variance.md",sourceDirName:"lang",slug:"/lang/variance",permalink:"/en/docs/lang/variance",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/variance.md",tags:[],version:"current",frontMatter:{title:"Type Variance",slug:"/lang/variance"},sidebar:"docsSidebar",previous:{title:"Type Hierarchy",permalink:"/en/docs/lang/type-hierarchy"},next:{title:"Nominal & Structural Typing",permalink:"/en/docs/lang/nominal-structural"}},d={},l=[{value:"Covariance",id:"toc-covariance",level:2},{value:"Invariance",id:"toc-invariance",level:2},{value:"Contravariance",id:"toc-contravariance",level:2}],s={toc:l};function m(e){let{components:n,...a}=e;return(0,i.mdx)("wrapper",(0,t.Z)({},s,a,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Variance is a topic that comes up fairly often in type systems. It is used to determine\nhow type parameters behave with respect to subtyping."),(0,i.mdx)("p",null,"First we'll setup a couple of classes that extend one another."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"class Noun {}\nclass City extends Noun {}\nclass SanFrancisco extends City {}\n")),(0,i.mdx)("p",null,"We saw in the section on ",(0,i.mdx)("a",{parentName:"p",href:"../../types/generics/#toc-variance-sigils"},"generic types"),"\nthat it is possible to\nuse variance sigils to describe when a type parameter is used in an output position,\nwhen it is used in an input position, and when it is used in either one."),(0,i.mdx)("p",null,"Here we'll dive deeper into each one of these cases."),(0,i.mdx)("h2",{id:"toc-covariance"},"Covariance"),(0,i.mdx)("p",null,"Consider for example the type"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type CovariantOf<X> = {\n +prop: X;\n getter(): X;\n}\n")),(0,i.mdx)("p",null,"Here, ",(0,i.mdx)("inlineCode",{parentName:"p"},"X")," appears strictly in ",(0,i.mdx)("em",{parentName:"p"},"output")," positions: it is used to read out information\nfrom objects ",(0,i.mdx)("inlineCode",{parentName:"p"},"o")," of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<X>"),", either through property accesses ",(0,i.mdx)("inlineCode",{parentName:"p"},"o.prop"),",\nor through calls to ",(0,i.mdx)("inlineCode",{parentName:"p"},"o.getter()"),"."),(0,i.mdx)("p",null,"Notably, there is no way to input data through the reference to the object ",(0,i.mdx)("inlineCode",{parentName:"p"},"o"),",\ngiven that ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop")," is a readonly property."),(0,i.mdx)("p",null,"When these conditions hold, we can use the sigil ",(0,i.mdx)("inlineCode",{parentName:"p"},"+")," to annotate ",(0,i.mdx)("inlineCode",{parentName:"p"},"X")," in the definition\nof ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf"),":"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type CovariantOf<+X> = {\n +prop: X;\n getter(): X;\n}\n")),(0,i.mdx)("p",null,"These conditions have important implications on the way that we can treat an object\nof type ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<T>"),' with respect to subtyping. As a reminder, subtyping rules\nhelp us answer the question: "given some context that expects values of type\n',(0,i.mdx)("inlineCode",{parentName:"p"},"T"),", is it safe to pass in values of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"S"),'?" If this is the case, then ',(0,i.mdx)("inlineCode",{parentName:"p"},"S")," is a\nsubtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),"."),(0,i.mdx)("p",null,"Using our ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf")," definition, and given that ",(0,i.mdx)("inlineCode",{parentName:"p"},"City")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"Noun"),", it is\nalso the case that ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<City>")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<Noun>"),". Indeed"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},"it is safe to ",(0,i.mdx)("em",{parentName:"li"},"read")," a property ",(0,i.mdx)("inlineCode",{parentName:"li"},"prop")," of type ",(0,i.mdx)("inlineCode",{parentName:"li"},"City")," when a property\nof type ",(0,i.mdx)("inlineCode",{parentName:"li"},"Noun")," is expected, and"),(0,i.mdx)("li",{parentName:"ul"},"it is safe to ",(0,i.mdx)("em",{parentName:"li"},"return")," values of type ",(0,i.mdx)("inlineCode",{parentName:"li"},"City")," when calling ",(0,i.mdx)("inlineCode",{parentName:"li"},"getter()"),", when\nvalues of type ",(0,i.mdx)("inlineCode",{parentName:"li"},"Noun")," are expected.")),(0,i.mdx)("p",null,"Combining these two, it will always be safe to use ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<City>")," whenever a\n",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf<Noun>")," is expected."),(0,i.mdx)("p",null,"A commonly used example where covariance is used is ",(0,i.mdx)("a",{parentName:"p",href:"../../types/arrays/#toc-readonlyarray"},(0,i.mdx)("inlineCode",{parentName:"a"},"$ReadOnlyArray<T>")),".\nJust like with the ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop")," property, one cannot use a ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray")," reference to write data\nto an array. This allows more flexible subtyping rules: Flow only needs to prove that\n",(0,i.mdx)("inlineCode",{parentName:"p"},"S")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"T")," to determine that ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray<S>")," is also a subtype\nof ",(0,i.mdx)("inlineCode",{parentName:"p"},"$ReadOnlyArray<T>"),"."),(0,i.mdx)("h2",{id:"toc-invariance"},"Invariance"),(0,i.mdx)("p",null,"Let's see what happens if we try to relax the restrictions on the use of ",(0,i.mdx)("inlineCode",{parentName:"p"},"X")," and make,\nfor example, ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop")," be a read-write property. We arrive at the type definition"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type NonCovariantOf<X> = {\n prop: X;\n getter(): X;\n};\n")),(0,i.mdx)("p",null,"Let's also declare a variable ",(0,i.mdx)("inlineCode",{parentName:"p"},"nonCovariantCity")," of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"NonCovariantOf<City>")),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"declare var nonCovariantCity: NonCovariantOf<City>;\n")),(0,i.mdx)("p",null,"Now, it is not safe to consider ",(0,i.mdx)("inlineCode",{parentName:"p"},"nonCovariantCity")," as an object of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"NonCovariantOf<Noun>"),".\nWere we allowed to do this, we could have the following declaration:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"const nonCovariantNoun: NonCovariantOf<Noun> = nonCovariantCity;\n")),(0,i.mdx)("p",null,"This type permits the following assignment:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"nonCovariantNoun.prop = new Noun;\n")),(0,i.mdx)("p",null,"which would invalidate the original type for ",(0,i.mdx)("inlineCode",{parentName:"p"},"nonCovariantCity")," as it would now be storing\na ",(0,i.mdx)("inlineCode",{parentName:"p"},"Noun")," in its ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop")," field."),(0,i.mdx)("p",null,"What distinguishes ",(0,i.mdx)("inlineCode",{parentName:"p"},"NonCovariantOf")," from the ",(0,i.mdx)("inlineCode",{parentName:"p"},"CovariantOf")," definition is that type parameter ",(0,i.mdx)("inlineCode",{parentName:"p"},"X")," is used both\nin input and output positions, as it is being used to both read and write to\nproperty ",(0,i.mdx)("inlineCode",{parentName:"p"},"prop"),". Such a type parameter is called ",(0,i.mdx)("em",{parentName:"p"},"invariant")," and is the default case\nof variance, thus requiring no prepending sigil:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type InvariantOf<X> = {\n prop: X;\n getter(): X;\n setter(X): void;\n};\n")),(0,i.mdx)("p",null,"Assuming a variable"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"declare var invariantCity: InvariantOf<City>;\n")),(0,i.mdx)("p",null,"it is ",(0,i.mdx)("em",{parentName:"p"},"not")," safe to use ",(0,i.mdx)("inlineCode",{parentName:"p"},"invariantCity")," in a context where:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},"an ",(0,i.mdx)("inlineCode",{parentName:"li"},"InvariantOf<Noun>")," is needed, because we should not be able to write a ",(0,i.mdx)("inlineCode",{parentName:"li"},"Noun")," to property\n",(0,i.mdx)("inlineCode",{parentName:"li"},"prop"),"."),(0,i.mdx)("li",{parentName:"ul"},"an ",(0,i.mdx)("inlineCode",{parentName:"li"},"InvariantOf<SanFrancisco>")," is needed, because reading ",(0,i.mdx)("inlineCode",{parentName:"li"},"prop")," could return a ",(0,i.mdx)("inlineCode",{parentName:"li"},"City")," which\nmay not be ",(0,i.mdx)("inlineCode",{parentName:"li"},"SanFrancisco"),".")),(0,i.mdx)("p",null,"In orther words, ",(0,i.mdx)("inlineCode",{parentName:"p"},"InvariantOf<City>")," is neither a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"InvariantOf<Noun>")," nor\na subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"InvariantOf<SanFrancisco>"),"."),(0,i.mdx)("h2",{id:"toc-contravariance"},"Contravariance"),(0,i.mdx)("p",null,"When a type parameter is only used in ",(0,i.mdx)("em",{parentName:"p"},"input")," positions, we say that it is used in\na ",(0,i.mdx)("em",{parentName:"p"},"contravariant")," way. This means that it only appears in positions through which\nwe write data to the structure. We use the sigil ",(0,i.mdx)("inlineCode",{parentName:"p"},"-")," to describe this kind of type\nparameters:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-js"},"type ContravariantOf<-X> = {\n -prop: X;\n setter(X): void;\n};\n")),(0,i.mdx)("p",null,'Common contravariant positions are write-only properties and "setter" functions.'),(0,i.mdx)("p",null,"An object of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<City>")," can be used whenever an object of type\n",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<SanFrancisco>")," is expected, but not when a ",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<Noun>")," is.\nIn other words, ",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<City>")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<SanFrancisco>"),", but not\n",(0,i.mdx)("inlineCode",{parentName:"p"},"ContravariantOf<Noun>"),".\nThis is because it is fine to write ",(0,i.mdx)("inlineCode",{parentName:"p"},"SanFrancisco")," into a property that can have any ",(0,i.mdx)("inlineCode",{parentName:"p"},"City")," written\nto, but it is not safe to write just any ",(0,i.mdx)("inlineCode",{parentName:"p"},"Noun"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/908.7a4eb83a.js b/assets/js/908.7a4eb83a.js new file mode 100644 index 00000000000..8b16826ab3b --- /dev/null +++ b/assets/js/908.7a4eb83a.js @@ -0,0 +1 @@ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[908],{93269:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>d});var i=r(67294),s=r(86010),a=r(52263),n=r(10833),o=r(35281),c=r(62524),l=r(95999),p=r(32244);function _(e){const{metadata:t}=e,{previousPage:r,nextPage:s}=t;return i.createElement("nav",{className:"pagination-nav","aria-label":(0,l.translate)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},r&&i.createElement(p.Z,{permalink:r,title:i.createElement(l.default,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")}),s&&i.createElement(p.Z,{permalink:s,title:i.createElement(l.default,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries"),isNext:!0}))}var j=r(90197),S=r(9460),m=r(30677);function u(e){let{items:t,component:r=m.Z}=e;return i.createElement(i.Fragment,null,t.map((e=>{let{content:t}=e;return i.createElement(S.n,{key:t.metadata.permalink,content:t},i.createElement(r,null,i.createElement(t,null)))})))}function E(e){const{metadata:t}=e,{siteConfig:{title:r}}=(0,a.default)(),{blogDescription:s,blogTitle:o,permalink:c}=t,l="/"===c?r:o;return i.createElement(i.Fragment,null,i.createElement(n.d,{title:l,description:s}),i.createElement(j.Z,{tag:"blog_posts_list"}))}function g(e){const{metadata:t,items:r,sidebar:s}=e;return i.createElement(c.Z,{sidebar:s},i.createElement(u,{items:r}),i.createElement(_,{metadata:t}))}function d(e){return i.createElement(n.FG,{className:(0,s.default)(o.k.wrapper.blogPages,o.k.page.blogListPage)},i.createElement(E,e),i.createElement(g,e))}},30677:(e,t,r)=>{"use strict";r.d(t,{Z:()=>D});var i=r(67294),s=r(86010),a=r(9460),n=r(44996);function o(e){var t;let{children:r,className:s}=e;const{frontMatter:o,assets:c}=(0,a.C)(),{withBaseUrl:l}=(0,n.useBaseUrlUtils)(),p=null!=(t=c.image)?t:o.image;return i.createElement("article",{className:s,itemProp:"blogPost",itemScope:!0,itemType:"http://schema.org/BlogPosting"},p&&i.createElement("meta",{itemProp:"image",content:l(p,{absolute:!0})}),r)}var c=r(39960);const l="title_xvU1";function p(e){let{className:t}=e;const{metadata:r}=(0,a.C)(),{permalink:n,title:o,frontMatter:p}=r,_=p["medium-link"],j=null==_,S=j?"h1":"h2";return i.createElement(S,{className:(0,s.default)(l,t),itemProp:"headline"},j?o:i.createElement(c.default,{itemProp:"url",to:_},o))}var _=r(95999),j=r(88824);const S="container_mt6G";function m(e){let{readingTime:t}=e;const r=function(){const{selectMessage:e}=(0,j.c)();return t=>{const r=Math.ceil(t);return e(r,(0,_.translate)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:r}))}}();return i.createElement(i.Fragment,null,r(t))}function u(e){let{date:t,formattedDate:r}=e;return i.createElement("time",{dateTime:t,itemProp:"datePublished"},r)}function E(){return i.createElement(i.Fragment,null," \xb7 ")}function g(e){let{className:t}=e;const{metadata:r}=(0,a.C)(),{date:n,formattedDate:o,readingTime:c}=r;return i.createElement("div",{className:(0,s.default)(S,"margin-vert--md",t)},i.createElement(u,{date:n,formattedDate:o}),void 0!==c&&i.createElement(i.Fragment,null,i.createElement(E,null),i.createElement(m,{readingTime:c})))}function d(e){return e.href?i.createElement(c.default,e):i.createElement(i.Fragment,null,e.children)}function y(e){let{author:t,className:r}=e;const{name:a,title:n,url:o,imageURL:c,email:l}=t,p=o||l&&"mailto:"+l||void 0;return i.createElement("div",{className:(0,s.default)("avatar margin-bottom--sm",r)},c&&i.createElement(d,{href:p,className:"avatar__photo-link"},i.createElement("img",{className:"avatar__photo",src:c,alt:a})),a&&i.createElement("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},i.createElement("div",{className:"avatar__name"},i.createElement(d,{href:p,itemProp:"url"},i.createElement("span",{itemProp:"name"},a))),n&&i.createElement("small",{className:"avatar__subtitle",itemProp:"description"},n)))}const h="authorCol_Hf19",x="imageOnlyAuthorRow_pa_O",P="imageOnlyAuthorCol_G86a";function C(e){let{className:t}=e;const{metadata:{authors:r},assets:n}=(0,a.C)();if(0===r.length)return null;const o=r.every((e=>{let{name:t}=e;return!t}));return i.createElement("div",{className:(0,s.default)("margin-top--md margin-bottom--sm",o?x:"row",t)},r.map(((e,t)=>{var r;return i.createElement("div",{className:(0,s.default)(!o&&"col col--6",o?P:h),key:t},i.createElement(y,{author:{...e,imageURL:null!=(r=n.authorsImageUrls[t])?r:e.imageURL}}))})))}function f(){return i.createElement("header",null,i.createElement(p,null),i.createElement(g,null),i.createElement(C,null))}var B=r(18780),b=r(51788),v=r.n(b);function k(e){let{children:t,className:r}=e;const{isBlogPostPage:n}=(0,a.C)();return i.createElement("div",{id:n?B.blogPostContainerID:void 0,className:(0,s.default)("markdown",r),itemProp:"articleBody"},i.createElement(v(),null,t))}var M=r(86121),G=r.n(M),N=r(86233),T=r(87462);function O(){return i.createElement("b",null,i.createElement(_.default,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More"))}function L(e){const{blogPostTitle:t,...r}=e;return i.createElement(c.default,(0,T.Z)({"aria-label":(0,_.translate)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t})},r),i.createElement(O,null))}const w="blogPostFooterDetailsFull_mRVl";function A(){const{metadata:e,isBlogPostPage:t}=(0,a.C)(),{tags:r,title:n,editUrl:o,hasTruncateMarker:c}=e,l=!t&&c,p=r.length>0;return p||l||o?i.createElement("footer",{className:(0,s.default)("row docusaurus-mt-lg",t&&w)},p&&i.createElement("div",{className:(0,s.default)("col",{"col--9":l})},i.createElement(N.Z,{tags:r})),t&&o&&i.createElement("div",{className:"col margin-top--sm"},i.createElement(G(),{editUrl:o})),l&&i.createElement("div",{className:(0,s.default)("col text--right",{"col--3":p})},i.createElement(L,{blogPostTitle:n,to:e.permalink}))):null}function D(e){let{children:t,className:r}=e;const n=function(){const{isBlogPostPage:e}=(0,a.C)();return e?void 0:"margin-bottom--xl"}();return i.createElement(o,{className:(0,s.default)(n,r)},i.createElement(f,null),i.createElement(k,null,t),i.createElement(A,null))}},9460:(e,t,r)=>{"use strict";r.d(t,{C:()=>o,n:()=>n});var i=r(67294),s=r(902);const a=i.createContext(null);function n(e){let{children:t,content:r,isBlogPostPage:s=!1}=e;const n=function(e){let{content:t,isBlogPostPage:r}=e;return(0,i.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:r})),[t,r])}({content:r,isBlogPostPage:s});return i.createElement(a.Provider,{value:n},t)}function o(){const e=(0,i.useContext)(a);if(null===e)throw new s.i6("BlogPostProvider");return e}},62524:(e,t,r)=>{"use strict";r.d(t,{Z:()=>n});var i=r(67294),s=r(89007);r(39960),r(95999);var a=r(39407);const n=function(e){const{toc:t,children:r,...n}=e;return i.createElement(s.Z,n,i.createElement("div",{className:"container margin-vert--lg"},i.createElement("div",{className:"row"},i.createElement("main",{className:"col col--9 col--offset-1"},r),t&&i.createElement("div",{className:"col col--2"},i.createElement(a.Z,{toc:t})))))}},18573:(e,t,r)=>{"use strict";r.d(t,{Z:()=>c});var i=r(87462),s=r(67294),a=r(20625),n=r.n(a),o=r(45475);function c(e){return"language-flow"===e.className?s.createElement(o.Z,e):"language-js"===e.className||"language-jsx"===e.className?s.createElement(n(),(0,i.Z)({},e,{className:"language-tsx"})):s.createElement(n(),e)}},7771:(e,t,r)=>{var i={"./Binary_Property/ASCII.js":46962,"./Binary_Property/ASCII_Hex_Digit.js":60270,"./Binary_Property/Alphabetic.js":26969,"./Binary_Property/Any.js":22499,"./Binary_Property/Assigned.js":9213,"./Binary_Property/Bidi_Control.js":38838,"./Binary_Property/Bidi_Mirrored.js":5720,"./Binary_Property/Case_Ignorable.js":49965,"./Binary_Property/Cased.js":32948,"./Binary_Property/Changes_When_Casefolded.js":65314,"./Binary_Property/Changes_When_Casemapped.js":78562,"./Binary_Property/Changes_When_Lowercased.js":12104,"./Binary_Property/Changes_When_NFKC_Casefolded.js":41347,"./Binary_Property/Changes_When_Titlecased.js":50589,"./Binary_Property/Changes_When_Uppercased.js":50046,"./Binary_Property/Dash.js":77336,"./Binary_Property/Default_Ignorable_Code_Point.js":32016,"./Binary_Property/Deprecated.js":42339,"./Binary_Property/Diacritic.js":97707,"./Binary_Property/Emoji.js":23694,"./Binary_Property/Emoji_Component.js":94007,"./Binary_Property/Emoji_Modifier.js":13916,"./Binary_Property/Emoji_Modifier_Base.js":98053,"./Binary_Property/Emoji_Presentation.js":10906,"./Binary_Property/Extended_Pictographic.js":66359,"./Binary_Property/Extender.js":17743,"./Binary_Property/Grapheme_Base.js":75530,"./Binary_Property/Grapheme_Extend.js":38693,"./Binary_Property/Hex_Digit.js":91556,"./Binary_Property/IDS_Binary_Operator.js":2103,"./Binary_Property/IDS_Trinary_Operator.js":18502,"./Binary_Property/ID_Continue.js":19494,"./Binary_Property/ID_Start.js":20567,"./Binary_Property/Ideographic.js":19586,"./Binary_Property/Join_Control.js":36983,"./Binary_Property/Logical_Order_Exception.js":72947,"./Binary_Property/Lowercase.js":49111,"./Binary_Property/Math.js":65667,"./Binary_Property/Noncharacter_Code_Point.js":20052,"./Binary_Property/Pattern_Syntax.js":60514,"./Binary_Property/Pattern_White_Space.js":78588,"./Binary_Property/Quotation_Mark.js":1053,"./Binary_Property/Radical.js":25361,"./Binary_Property/Regional_Indicator.js":94375,"./Binary_Property/Sentence_Terminal.js":89697,"./Binary_Property/Soft_Dotted.js":35514,"./Binary_Property/Terminal_Punctuation.js":21043,"./Binary_Property/Unified_Ideograph.js":75771,"./Binary_Property/Uppercase.js":28368,"./Binary_Property/Variation_Selector.js":27186,"./Binary_Property/White_Space.js":61846,"./Binary_Property/XID_Continue.js":74003,"./Binary_Property/XID_Start.js":3468,"./General_Category/Cased_Letter.js":13090,"./General_Category/Close_Punctuation.js":8526,"./General_Category/Connector_Punctuation.js":26100,"./General_Category/Control.js":80282,"./General_Category/Currency_Symbol.js":15352,"./General_Category/Dash_Punctuation.js":45647,"./General_Category/Decimal_Number.js":98349,"./General_Category/Enclosing_Mark.js":18220,"./General_Category/Final_Punctuation.js":88482,"./General_Category/Format.js":87586,"./General_Category/Initial_Punctuation.js":88147,"./General_Category/Letter.js":65964,"./General_Category/Letter_Number.js":66793,"./General_Category/Line_Separator.js":63061,"./General_Category/Lowercase_Letter.js":19340,"./General_Category/Mark.js":93748,"./General_Category/Math_Symbol.js":32895,"./General_Category/Modifier_Letter.js":66710,"./General_Category/Modifier_Symbol.js":43026,"./General_Category/Nonspacing_Mark.js":95580,"./General_Category/Number.js":90055,"./General_Category/Open_Punctuation.js":25622,"./General_Category/Other.js":76288,"./General_Category/Other_Letter.js":61453,"./General_Category/Other_Number.js":88795,"./General_Category/Other_Punctuation.js":47221,"./General_Category/Other_Symbol.js":66733,"./General_Category/Paragraph_Separator.js":12600,"./General_Category/Private_Use.js":61704,"./General_Category/Punctuation.js":36290,"./General_Category/Separator.js":64661,"./General_Category/Space_Separator.js":54343,"./General_Category/Spacing_Mark.js":11276,"./General_Category/Surrogate.js":93474,"./General_Category/Symbol.js":54581,"./General_Category/Titlecase_Letter.js":8550,"./General_Category/Unassigned.js":22525,"./General_Category/Uppercase_Letter.js":28829,"./Script/Adlam.js":56129,"./Script/Ahom.js":50147,"./Script/Anatolian_Hieroglyphs.js":50926,"./Script/Arabic.js":56820,"./Script/Armenian.js":14899,"./Script/Avestan.js":69929,"./Script/Balinese.js":30706,"./Script/Bamum.js":15533,"./Script/Bassa_Vah.js":89979,"./Script/Batak.js":83765,"./Script/Bengali.js":72693,"./Script/Bhaiksuki.js":10236,"./Script/Bopomofo.js":30468,"./Script/Brahmi.js":45770,"./Script/Braille.js":65529,"./Script/Buginese.js":74206,"./Script/Buhid.js":96208,"./Script/Canadian_Aboriginal.js":66700,"./Script/Carian.js":93961,"./Script/Caucasian_Albanian.js":74121,"./Script/Chakma.js":12128,"./Script/Cham.js":52189,"./Script/Cherokee.js":75033,"./Script/Chorasmian.js":73507,"./Script/Common.js":85998,"./Script/Coptic.js":56036,"./Script/Cuneiform.js":13563,"./Script/Cypriot.js":49182,"./Script/Cypro_Minoan.js":80084,"./Script/Cyrillic.js":84087,"./Script/Deseret.js":48844,"./Script/Devanagari.js":35690,"./Script/Dives_Akuru.js":57201,"./Script/Dogra.js":71932,"./Script/Duployan.js":95187,"./Script/Egyptian_Hieroglyphs.js":49778,"./Script/Elbasan.js":42781,"./Script/Elymaic.js":83103,"./Script/Ethiopic.js":26672,"./Script/Georgian.js":73661,"./Script/Glagolitic.js":85857,"./Script/Gothic.js":32096,"./Script/Grantha.js":71742,"./Script/Greek.js":62199,"./Script/Gujarati.js":11931,"./Script/Gunjala_Gondi.js":27600,"./Script/Gurmukhi.js":76482,"./Script/Han.js":26294,"./Script/Hangul.js":38858,"./Script/Hanifi_Rohingya.js":50043,"./Script/Hanunoo.js":95307,"./Script/Hatran.js":20280,"./Script/Hebrew.js":12674,"./Script/Hiragana.js":54058,"./Script/Imperial_Aramaic.js":70521,"./Script/Inherited.js":21448,"./Script/Inscriptional_Pahlavi.js":64086,"./Script/Inscriptional_Parthian.js":35772,"./Script/Javanese.js":98272,"./Script/Kaithi.js":52764,"./Script/Kannada.js":98276,"./Script/Katakana.js":98285,"./Script/Kayah_Li.js":10821,"./Script/Kharoshthi.js":67559,"./Script/Khitan_Small_Script.js":48304,"./Script/Khmer.js":39834,"./Script/Khojki.js":42593,"./Script/Khudawadi.js":64415,"./Script/Lao.js":37740,"./Script/Latin.js":46818,"./Script/Lepcha.js":7647,"./Script/Limbu.js":92627,"./Script/Linear_A.js":16193,"./Script/Linear_B.js":71901,"./Script/Lisu.js":25734,"./Script/Lycian.js":6450,"./Script/Lydian.js":28293,"./Script/Mahajani.js":48193,"./Script/Makasar.js":50865,"./Script/Malayalam.js":24789,"./Script/Mandaic.js":9535,"./Script/Manichaean.js":83061,"./Script/Marchen.js":76528,"./Script/Masaram_Gondi.js":9921,"./Script/Medefaidrin.js":93378,"./Script/Meetei_Mayek.js":6940,"./Script/Mende_Kikakui.js":3897,"./Script/Meroitic_Cursive.js":65999,"./Script/Meroitic_Hieroglyphs.js":59758,"./Script/Miao.js":65484,"./Script/Modi.js":34575,"./Script/Mongolian.js":75392,"./Script/Mro.js":36388,"./Script/Multani.js":60556,"./Script/Myanmar.js":15837,"./Script/Nabataean.js":6820,"./Script/Nandinagari.js":51892,"./Script/New_Tai_Lue.js":32003,"./Script/Newa.js":15297,"./Script/Nko.js":17594,"./Script/Nushu.js":7493,"./Script/Nyiakeng_Puachue_Hmong.js":14406,"./Script/Ogham.js":75847,"./Script/Ol_Chiki.js":88416,"./Script/Old_Hungarian.js":40115,"./Script/Old_Italic.js":29109,"./Script/Old_North_Arabian.js":96840,"./Script/Old_Permic.js":39291,"./Script/Old_Persian.js":24678,"./Script/Old_Sogdian.js":78647,"./Script/Old_South_Arabian.js":70744,"./Script/Old_Turkic.js":59527,"./Script/Old_Uyghur.js":11791,"./Script/Oriya.js":23761,"./Script/Osage.js":39384,"./Script/Osmanya.js":90237,"./Script/Pahawh_Hmong.js":62976,"./Script/Palmyrene.js":60351,"./Script/Pau_Cin_Hau.js":19767,"./Script/Phags_Pa.js":25712,"./Script/Phoenician.js":86458,"./Script/Psalter_Pahlavi.js":74874,"./Script/Rejang.js":27603,"./Script/Runic.js":84788,"./Script/Samaritan.js":45810,"./Script/Saurashtra.js":37632,"./Script/Sharada.js":15058,"./Script/Shavian.js":76250,"./Script/Siddham.js":39573,"./Script/SignWriting.js":54039,"./Script/Sinhala.js":1611,"./Script/Sogdian.js":34250,"./Script/Sora_Sompeng.js":43065,"./Script/Soyombo.js":18135,"./Script/Sundanese.js":95849,"./Script/Syloti_Nagri.js":46566,"./Script/Syriac.js":7810,"./Script/Tagalog.js":67833,"./Script/Tagbanwa.js":58009,"./Script/Tai_Le.js":1187,"./Script/Tai_Tham.js":40377,"./Script/Tai_Viet.js":99e3,"./Script/Takri.js":72294,"./Script/Tamil.js":98682,"./Script/Tangsa.js":77808,"./Script/Tangut.js":75540,"./Script/Telugu.js":65084,"./Script/Thaana.js":6867,"./Script/Thai.js":49907,"./Script/Tibetan.js":29341,"./Script/Tifinagh.js":81261,"./Script/Tirhuta.js":57954,"./Script/Toto.js":68196,"./Script/Ugaritic.js":29097,"./Script/Vai.js":5767,"./Script/Vithkuqi.js":45785,"./Script/Wancho.js":27172,"./Script/Warang_Citi.js":17315,"./Script/Yezidi.js":34961,"./Script/Yi.js":90923,"./Script/Zanabazar_Square.js":92108,"./Script_Extensions/Adlam.js":99614,"./Script_Extensions/Ahom.js":24915,"./Script_Extensions/Anatolian_Hieroglyphs.js":8983,"./Script_Extensions/Arabic.js":75627,"./Script_Extensions/Armenian.js":13585,"./Script_Extensions/Avestan.js":79384,"./Script_Extensions/Balinese.js":47072,"./Script_Extensions/Bamum.js":31856,"./Script_Extensions/Bassa_Vah.js":24945,"./Script_Extensions/Batak.js":92147,"./Script_Extensions/Bengali.js":61530,"./Script_Extensions/Bhaiksuki.js":64063,"./Script_Extensions/Bopomofo.js":29962,"./Script_Extensions/Brahmi.js":61752,"./Script_Extensions/Braille.js":28434,"./Script_Extensions/Buginese.js":15148,"./Script_Extensions/Buhid.js":78881,"./Script_Extensions/Canadian_Aboriginal.js":55254,"./Script_Extensions/Carian.js":79110,"./Script_Extensions/Caucasian_Albanian.js":76550,"./Script_Extensions/Chakma.js":88753,"./Script_Extensions/Cham.js":98451,"./Script_Extensions/Cherokee.js":80196,"./Script_Extensions/Chorasmian.js":38676,"./Script_Extensions/Common.js":46921,"./Script_Extensions/Coptic.js":44141,"./Script_Extensions/Cuneiform.js":30286,"./Script_Extensions/Cypriot.js":73326,"./Script_Extensions/Cypro_Minoan.js":82300,"./Script_Extensions/Cyrillic.js":77115,"./Script_Extensions/Deseret.js":59108,"./Script_Extensions/Devanagari.js":59426,"./Script_Extensions/Dives_Akuru.js":44660,"./Script_Extensions/Dogra.js":41422,"./Script_Extensions/Duployan.js":66667,"./Script_Extensions/Egyptian_Hieroglyphs.js":20449,"./Script_Extensions/Elbasan.js":25810,"./Script_Extensions/Elymaic.js":83509,"./Script_Extensions/Ethiopic.js":37837,"./Script_Extensions/Georgian.js":77680,"./Script_Extensions/Glagolitic.js":97772,"./Script_Extensions/Gothic.js":60674,"./Script_Extensions/Grantha.js":52336,"./Script_Extensions/Greek.js":86310,"./Script_Extensions/Gujarati.js":92436,"./Script_Extensions/Gunjala_Gondi.js":20642,"./Script_Extensions/Gurmukhi.js":33831,"./Script_Extensions/Han.js":16613,"./Script_Extensions/Hangul.js":87001,"./Script_Extensions/Hanifi_Rohingya.js":88583,"./Script_Extensions/Hanunoo.js":82758,"./Script_Extensions/Hatran.js":66416,"./Script_Extensions/Hebrew.js":85222,"./Script_Extensions/Hiragana.js":60191,"./Script_Extensions/Imperial_Aramaic.js":57632,"./Script_Extensions/Inherited.js":96988,"./Script_Extensions/Inscriptional_Pahlavi.js":52121,"./Script_Extensions/Inscriptional_Parthian.js":82809,"./Script_Extensions/Javanese.js":55081,"./Script_Extensions/Kaithi.js":57574,"./Script_Extensions/Kannada.js":81868,"./Script_Extensions/Katakana.js":10774,"./Script_Extensions/Kayah_Li.js":76701,"./Script_Extensions/Kharoshthi.js":81466,"./Script_Extensions/Khitan_Small_Script.js":21325,"./Script_Extensions/Khmer.js":6068,"./Script_Extensions/Khojki.js":77706,"./Script_Extensions/Khudawadi.js":54258,"./Script_Extensions/Lao.js":77149,"./Script_Extensions/Latin.js":38334,"./Script_Extensions/Lepcha.js":12299,"./Script_Extensions/Limbu.js":25476,"./Script_Extensions/Linear_A.js":54625,"./Script_Extensions/Linear_B.js":38810,"./Script_Extensions/Lisu.js":90845,"./Script_Extensions/Lycian.js":68978,"./Script_Extensions/Lydian.js":67905,"./Script_Extensions/Mahajani.js":89576,"./Script_Extensions/Makasar.js":3405,"./Script_Extensions/Malayalam.js":974,"./Script_Extensions/Mandaic.js":28940,"./Script_Extensions/Manichaean.js":6677,"./Script_Extensions/Marchen.js":14740,"./Script_Extensions/Masaram_Gondi.js":82278,"./Script_Extensions/Medefaidrin.js":55949,"./Script_Extensions/Meetei_Mayek.js":13329,"./Script_Extensions/Mende_Kikakui.js":97146,"./Script_Extensions/Meroitic_Cursive.js":23715,"./Script_Extensions/Meroitic_Hieroglyphs.js":43199,"./Script_Extensions/Miao.js":26499,"./Script_Extensions/Modi.js":36995,"./Script_Extensions/Mongolian.js":98606,"./Script_Extensions/Mro.js":11462,"./Script_Extensions/Multani.js":45402,"./Script_Extensions/Myanmar.js":76318,"./Script_Extensions/Nabataean.js":34924,"./Script_Extensions/Nandinagari.js":8236,"./Script_Extensions/New_Tai_Lue.js":14575,"./Script_Extensions/Newa.js":71314,"./Script_Extensions/Nko.js":40577,"./Script_Extensions/Nushu.js":44432,"./Script_Extensions/Nyiakeng_Puachue_Hmong.js":53612,"./Script_Extensions/Ogham.js":19298,"./Script_Extensions/Ol_Chiki.js":55285,"./Script_Extensions/Old_Hungarian.js":16737,"./Script_Extensions/Old_Italic.js":73023,"./Script_Extensions/Old_North_Arabian.js":35723,"./Script_Extensions/Old_Permic.js":56370,"./Script_Extensions/Old_Persian.js":1402,"./Script_Extensions/Old_Sogdian.js":14718,"./Script_Extensions/Old_South_Arabian.js":40316,"./Script_Extensions/Old_Turkic.js":5462,"./Script_Extensions/Old_Uyghur.js":2280,"./Script_Extensions/Oriya.js":29434,"./Script_Extensions/Osage.js":77045,"./Script_Extensions/Osmanya.js":82301,"./Script_Extensions/Pahawh_Hmong.js":84766,"./Script_Extensions/Palmyrene.js":72685,"./Script_Extensions/Pau_Cin_Hau.js":34107,"./Script_Extensions/Phags_Pa.js":66506,"./Script_Extensions/Phoenician.js":42186,"./Script_Extensions/Psalter_Pahlavi.js":55507,"./Script_Extensions/Rejang.js":35435,"./Script_Extensions/Runic.js":76355,"./Script_Extensions/Samaritan.js":1509,"./Script_Extensions/Saurashtra.js":23386,"./Script_Extensions/Sharada.js":86116,"./Script_Extensions/Shavian.js":51826,"./Script_Extensions/Siddham.js":22026,"./Script_Extensions/SignWriting.js":96007,"./Script_Extensions/Sinhala.js":51104,"./Script_Extensions/Sogdian.js":82401,"./Script_Extensions/Sora_Sompeng.js":44399,"./Script_Extensions/Soyombo.js":37415,"./Script_Extensions/Sundanese.js":3894,"./Script_Extensions/Syloti_Nagri.js":5419,"./Script_Extensions/Syriac.js":21038,"./Script_Extensions/Tagalog.js":1744,"./Script_Extensions/Tagbanwa.js":54217,"./Script_Extensions/Tai_Le.js":63153,"./Script_Extensions/Tai_Tham.js":4926,"./Script_Extensions/Tai_Viet.js":39311,"./Script_Extensions/Takri.js":55970,"./Script_Extensions/Tamil.js":80882,"./Script_Extensions/Tangsa.js":92138,"./Script_Extensions/Tangut.js":46776,"./Script_Extensions/Telugu.js":40444,"./Script_Extensions/Thaana.js":23431,"./Script_Extensions/Thai.js":94846,"./Script_Extensions/Tibetan.js":137,"./Script_Extensions/Tifinagh.js":67065,"./Script_Extensions/Tirhuta.js":98082,"./Script_Extensions/Toto.js":6715,"./Script_Extensions/Ugaritic.js":29213,"./Script_Extensions/Vai.js":85388,"./Script_Extensions/Vithkuqi.js":97706,"./Script_Extensions/Wancho.js":68659,"./Script_Extensions/Warang_Citi.js":27900,"./Script_Extensions/Yezidi.js":8051,"./Script_Extensions/Yi.js":99799,"./Script_Extensions/Zanabazar_Square.js":25904,"./index.js":94274,"./unicode-version.js":47993};function s(e){var t=a(e);return r(t)}function a(e){if(!r.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}s.keys=function(){return Object.keys(i)},s.resolve=a,e.exports=s,s.id=7771}}]); \ No newline at end of file diff --git a/assets/js/911.8605976d.js b/assets/js/911.8605976d.js new file mode 100644 index 00000000000..d261d7001f2 --- /dev/null +++ b/assets/js/911.8605976d.js @@ -0,0 +1,176 @@ +"use strict"; +exports.id = 911; +exports.ids = [911]; +exports.modules = { + +/***/ 20911: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/lua/lua.ts +var conf = { + comments: { + lineComment: "--", + blockComment: ["--[[", "]]"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".lua", + keywords: [ + "and", + "break", + "do", + "else", + "elseif", + "end", + "false", + "for", + "function", + "goto", + "if", + "in", + "local", + "nil", + "not", + "or", + "repeat", + "return", + "then", + "true", + "until", + "while" + ], + brackets: [ + { token: "delimiter.bracket", open: "{", close: "}" }, + { token: "delimiter.array", open: "[", close: "]" }, + { token: "delimiter.parenthesis", open: "(", close: ")" } + ], + operators: [ + "+", + "-", + "*", + "/", + "%", + "^", + "#", + "==", + "~=", + "<=", + ">=", + "<", + ">", + "=", + ";", + ":", + ",", + ".", + "..", + "..." + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + tokenizer: { + root: [ + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/(,)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/, ["delimiter", "", "key", "", "delimiter"]], + [/({)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/, ["@brackets", "", "key", "", "delimiter"]], + [/[{}()\[\]]/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"], + [/\d+?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", '@string."'], + [/'/, "string", "@string.'"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/--\[([=]*)\[/, "comment", "@comment.$1"], + [/--.*$/, "comment"] + ], + comment: [ + [/[^\]]+/, "comment"], + [ + /\]([=]*)\]/, + { + cases: { + "$1==$S2": { token: "comment", next: "@pop" }, + "@default": "comment" + } + } + ], + [/./, "comment"] + ], + string: [ + [/[^\\"']+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [ + /["']/, + { + cases: { + "$#==$S2": { token: "string", next: "@pop" }, + "@default": "string" + } + } + ] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/911.cb5ea3c2.js b/assets/js/911.cb5ea3c2.js new file mode 100644 index 00000000000..4febeabbc63 --- /dev/null +++ b/assets/js/911.cb5ea3c2.js @@ -0,0 +1,2 @@ +/*! For license information please see 911.cb5ea3c2.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[911],{20911:(e,n,s)=>{s.r(n),s.d(n,{conf:()=>t,language:()=>o});var t={comments:{lineComment:"--",blockComment:["--[[","]]"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},o={defaultToken:"",tokenPostfix:".lua",keywords:["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"],brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],operators:["+","-","*","/","%","^","#","==","~=","<=",">=","<",">","=",";",":",",",".","..","..."],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/[a-zA-Z_]\w*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/(,)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/,["delimiter","","key","","delimiter"]],[/({)(\s*)([a-zA-Z_]\w*)(\s*)(:)(?!:)/,["@brackets","","key","","delimiter"]],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/,"number.hex"],[/\d+?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/--\[([=]*)\[/,"comment","@comment.$1"],[/--.*$/,"comment"]],comment:[[/[^\]]+/,"comment"],[/\]([=]*)\]/,{cases:{"$1==$S2":{token:"comment",next:"@pop"},"@default":"comment"}}],[/./,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); \ No newline at end of file diff --git a/assets/js/911.cb5ea3c2.js.LICENSE.txt b/assets/js/911.cb5ea3c2.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/911.cb5ea3c2.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9172.7f698d9b.js b/assets/js/9172.7f698d9b.js new file mode 100644 index 00000000000..3d4a766c3fc --- /dev/null +++ b/assets/js/9172.7f698d9b.js @@ -0,0 +1,2 @@ +/*! For license information please see 9172.7f698d9b.js.LICENSE.txt */ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9172],{17331:e=>{function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function n(e){return"object"==typeof e&&null!==e}function i(e){return void 0===e}e.exports=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,a,s,c,u,o;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var h=new Error('Uncaught, unspecified "error" event. ('+t+")");throw h.context=t,h}if(i(a=this._events[e]))return!1;if(r(a))switch(arguments.length){case 1:a.call(this);break;case 2:a.call(this,arguments[1]);break;case 3:a.call(this,arguments[1],arguments[2]);break;default:c=Array.prototype.slice.call(arguments,1),a.apply(this,c)}else if(n(a))for(c=Array.prototype.slice.call(arguments,1),s=(o=a.slice()).length,u=0;u<s;u++)o[u].apply(this,c);return!0},t.prototype.addListener=function(e,a){var s;if(!r(a))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,r(a.listener)?a.listener:a),this._events[e]?n(this._events[e])?this._events[e].push(a):this._events[e]=[this._events[e],a]:this._events[e]=a,n(this._events[e])&&!this._events[e].warned&&(s=i(this._maxListeners)?t.defaultMaxListeners:this._maxListeners)&&s>0&&this._events[e].length>s&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=!1;function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}return i.listener=t,this.on(e,i),this},t.prototype.removeListener=function(e,t){var i,a,s,c;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(s=(i=this._events[e]).length,a=-1,i===t||r(i.listener)&&i.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(i)){for(c=s;c-- >0;)if(i[c]===t||i[c].listener&&i[c].listener===t){a=c;break}if(a<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(a,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},8131:(e,t,r)=>{"use strict";var n=r(49374),i=r(17775),a=r(23076);function s(e,t,r){return new n(e,t,r)}s.version=r(24336),s.AlgoliaSearchHelper=n,s.SearchParameters=i,s.SearchResults=a,e.exports=s},68078:(e,t,r)=>{"use strict";var n=r(17331);function i(e,t){this.main=e,this.fn=t,this.lastResults=null}r(14853)(i,n),i.prototype.detach=function(){this.removeAllListeners(),this.main.detachDerivedHelper(this)},i.prototype.getModifiedState=function(e){return this.fn(e)},e.exports=i},82437:(e,t,r)=>{"use strict";var n=r(52344),i=r(49803),a=r(90116),s={addRefinement:function(e,t,r){if(s.isRefined(e,t,r))return e;var i=""+r,a=e[t]?e[t].concat(i):[i],c={};return c[t]=a,n({},c,e)},removeRefinement:function(e,t,r){if(void 0===r)return s.clearRefinement(e,(function(e,r){return t===r}));var n=""+r;return s.clearRefinement(e,(function(e,r){return t===r&&n===e}))},toggleRefinement:function(e,t,r){if(void 0===r)throw new Error("toggleRefinement should be used with a value");return s.isRefined(e,t,r)?s.removeRefinement(e,t,r):s.addRefinement(e,t,r)},clearRefinement:function(e,t,r){if(void 0===t)return a(e)?{}:e;if("string"==typeof t)return i(e,[t]);if("function"==typeof t){var n=!1,s=Object.keys(e).reduce((function(i,a){var s=e[a]||[],c=s.filter((function(e){return!t(e,a,r)}));return c.length!==s.length&&(n=!0),i[a]=c,i}),{});return n?s:e}},isRefined:function(e,t,r){var n=!!e[t]&&e[t].length>0;if(void 0===r||!n)return n;var i=""+r;return-1!==e[t].indexOf(i)}};e.exports=s},17775:(e,t,r)=>{"use strict";var n=r(60185),i=r(52344),a=r(22686),s=r(7888),c=r(28023),u=r(49803),o=r(90116),h=r(46801),f=r(82437);function l(e,t){return Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,r){return l(t[r],e)})):e===t}function m(e){var t=e?m._parseNumbers(e):{};void 0===t.userToken||h(t.userToken)||console.warn("[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\n - Format: [a-zA-Z0-9_-]{1,64}"),this.facets=t.facets||[],this.disjunctiveFacets=t.disjunctiveFacets||[],this.hierarchicalFacets=t.hierarchicalFacets||[],this.facetsRefinements=t.facetsRefinements||{},this.facetsExcludes=t.facetsExcludes||{},this.disjunctiveFacetsRefinements=t.disjunctiveFacetsRefinements||{},this.numericRefinements=t.numericRefinements||{},this.tagRefinements=t.tagRefinements||[],this.hierarchicalFacetsRefinements=t.hierarchicalFacetsRefinements||{};var r=this;Object.keys(t).forEach((function(e){var n=-1!==m.PARAMETERS.indexOf(e),i=void 0!==t[e];!n&&i&&(r[e]=t[e])}))}m.PARAMETERS=Object.keys(new m),m._parseNumbers=function(e){if(e instanceof m)return e;var t={};if(["aroundPrecision","aroundRadius","getRankingInfo","minWordSizefor2Typos","minWordSizefor1Typo","page","maxValuesPerFacet","distinct","minimumAroundRadius","hitsPerPage","minProximity"].forEach((function(r){var n=e[r];if("string"==typeof n){var i=parseFloat(n);t[r]=isNaN(i)?n:i}})),Array.isArray(e.insideBoundingBox)&&(t.insideBoundingBox=e.insideBoundingBox.map((function(e){return Array.isArray(e)?e.map((function(e){return parseFloat(e)})):e}))),e.numericRefinements){var r={};Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t]||{};r[t]={},Object.keys(n).forEach((function(e){var i=n[e].map((function(e){return Array.isArray(e)?e.map((function(e){return"string"==typeof e?parseFloat(e):e})):"string"==typeof e?parseFloat(e):e}));r[t][e]=i}))})),t.numericRefinements=r}return n({},e,t)},m.make=function(e){var t=new m(e);return(e.hierarchicalFacets||[]).forEach((function(e){if(e.rootPath){var r=t.getHierarchicalRefinement(e.name);r.length>0&&0!==r[0].indexOf(e.rootPath)&&(t=t.clearRefinements(e.name)),0===(r=t.getHierarchicalRefinement(e.name)).length&&(t=t.toggleHierarchicalFacetRefinement(e.name,e.rootPath))}})),t},m.validate=function(e,t){var r=t||{};return e.tagFilters&&r.tagRefinements&&r.tagRefinements.length>0?new Error("[Tags] Cannot switch from the managed tag API to the advanced API. It is probably an error, if it is really what you want, you should first clear the tags with clearTags method."):e.tagRefinements.length>0&&r.tagFilters?new Error("[Tags] Cannot switch from the advanced tag API to the managed API. It is probably an error, if it is not, you should first clear the tags with clearTags method."):e.numericFilters&&r.numericRefinements&&o(r.numericRefinements)?new Error("[Numeric filters] Can't switch from the advanced to the managed API. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):o(e.numericRefinements)&&r.numericFilters?new Error("[Numeric filters] Can't switch from the managed API to the advanced. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):null},m.prototype={constructor:m,clearRefinements:function(e){var t={numericRefinements:this._clearNumericRefinements(e),facetsRefinements:f.clearRefinement(this.facetsRefinements,e,"conjunctiveFacet"),facetsExcludes:f.clearRefinement(this.facetsExcludes,e,"exclude"),disjunctiveFacetsRefinements:f.clearRefinement(this.disjunctiveFacetsRefinements,e,"disjunctiveFacet"),hierarchicalFacetsRefinements:f.clearRefinement(this.hierarchicalFacetsRefinements,e,"hierarchicalFacet")};return t.numericRefinements===this.numericRefinements&&t.facetsRefinements===this.facetsRefinements&&t.facetsExcludes===this.facetsExcludes&&t.disjunctiveFacetsRefinements===this.disjunctiveFacetsRefinements&&t.hierarchicalFacetsRefinements===this.hierarchicalFacetsRefinements?this:this.setQueryParameters(t)},clearTags:function(){return void 0===this.tagFilters&&0===this.tagRefinements.length?this:this.setQueryParameters({tagFilters:void 0,tagRefinements:[]})},setIndex:function(e){return e===this.index?this:this.setQueryParameters({index:e})},setQuery:function(e){return e===this.query?this:this.setQueryParameters({query:e})},setPage:function(e){return e===this.page?this:this.setQueryParameters({page:e})},setFacets:function(e){return this.setQueryParameters({facets:e})},setDisjunctiveFacets:function(e){return this.setQueryParameters({disjunctiveFacets:e})},setHitsPerPage:function(e){return this.hitsPerPage===e?this:this.setQueryParameters({hitsPerPage:e})},setTypoTolerance:function(e){return this.typoTolerance===e?this:this.setQueryParameters({typoTolerance:e})},addNumericRefinement:function(e,t,r){var i=c(r);if(this.isNumericRefined(e,t,i))return this;var a=n({},this.numericRefinements);return a[e]=n({},a[e]),a[e][t]?(a[e][t]=a[e][t].slice(),a[e][t].push(i)):a[e][t]=[i],this.setQueryParameters({numericRefinements:a})},getConjunctiveRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsRefinements[e]||[]},getDisjunctiveRefinements:function(e){return this.isDisjunctiveFacet(e)&&this.disjunctiveFacetsRefinements[e]||[]},getHierarchicalRefinement:function(e){return this.hierarchicalFacetsRefinements[e]||[]},getExcludeRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsExcludes[e]||[]},removeNumericRefinement:function(e,t,r){return void 0!==r?this.isNumericRefined(e,t,r)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(n,i){return i===e&&n.op===t&&l(n.val,c(r))}))}):this:void 0!==t?this.isNumericRefined(e,t)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,n){return n===e&&r.op===t}))}):this:this.isNumericRefined(e)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(t,r){return r===e}))}):this},getNumericRefinements:function(e){return this.numericRefinements[e]||{}},getNumericRefinement:function(e,t){return this.numericRefinements[e]&&this.numericRefinements[e][t]},_clearNumericRefinements:function(e){if(void 0===e)return o(this.numericRefinements)?{}:this.numericRefinements;if("string"==typeof e)return u(this.numericRefinements,[e]);if("function"==typeof e){var t=!1,r=this.numericRefinements,n=Object.keys(r).reduce((function(n,i){var a=r[i],s={};return a=a||{},Object.keys(a).forEach((function(r){var n=a[r]||[],c=[];n.forEach((function(t){e({val:t,op:r},i,"numeric")||c.push(t)})),c.length!==n.length&&(t=!0),s[r]=c})),n[i]=s,n}),{});return t?n:this.numericRefinements}},addFacet:function(e){return this.isConjunctiveFacet(e)?this:this.setQueryParameters({facets:this.facets.concat([e])})},addDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this:this.setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.concat([e])})},addHierarchicalFacet:function(e){if(this.isHierarchicalFacet(e.name))throw new Error("Cannot declare two hierarchical facets with the same name: `"+e.name+"`");return this.setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.concat([e])})},addFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this:this.setQueryParameters({facetsRefinements:f.addRefinement(this.facetsRefinements,e,t)})},addExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this:this.setQueryParameters({facetsExcludes:f.addRefinement(this.facetsExcludes,e,t)})},addDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this:this.setQueryParameters({disjunctiveFacetsRefinements:f.addRefinement(this.disjunctiveFacetsRefinements,e,t)})},addTagRefinement:function(e){if(this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.concat(e)};return this.setQueryParameters(t)},removeFacet:function(e){return this.isConjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({facets:this.facets.filter((function(t){return t!==e}))}):this},removeDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.filter((function(t){return t!==e}))}):this},removeHierarchicalFacet:function(e){return this.isHierarchicalFacet(e)?this.clearRefinements(e).setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.filter((function(t){return t.name!==e}))}):this},removeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this.setQueryParameters({facetsRefinements:f.removeRefinement(this.facetsRefinements,e,t)}):this},removeExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this.setQueryParameters({facetsExcludes:f.removeRefinement(this.facetsExcludes,e,t)}):this},removeDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this.setQueryParameters({disjunctiveFacetsRefinements:f.removeRefinement(this.disjunctiveFacetsRefinements,e,t)}):this},removeTagRefinement:function(e){if(!this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.filter((function(t){return t!==e}))};return this.setQueryParameters(t)},toggleRefinement:function(e,t){return this.toggleFacetRefinement(e,t)},toggleFacetRefinement:function(e,t){if(this.isHierarchicalFacet(e))return this.toggleHierarchicalFacetRefinement(e,t);if(this.isConjunctiveFacet(e))return this.toggleConjunctiveFacetRefinement(e,t);if(this.isDisjunctiveFacet(e))return this.toggleDisjunctiveFacetRefinement(e,t);throw new Error("Cannot refine the undeclared facet "+e+"; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets")},toggleConjunctiveFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsRefinements:f.toggleRefinement(this.facetsRefinements,e,t)})},toggleExcludeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsExcludes:f.toggleRefinement(this.facetsExcludes,e,t)})},toggleDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.setQueryParameters({disjunctiveFacetsRefinements:f.toggleRefinement(this.disjunctiveFacetsRefinements,e,t)})},toggleHierarchicalFacetRefinement:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e)),n={};return void 0!==this.hierarchicalFacetsRefinements[e]&&this.hierarchicalFacetsRefinements[e].length>0&&(this.hierarchicalFacetsRefinements[e][0]===t||0===this.hierarchicalFacetsRefinements[e][0].indexOf(t+r))?-1===t.indexOf(r)?n[e]=[]:n[e]=[t.slice(0,t.lastIndexOf(r))]:n[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:i({},n,this.hierarchicalFacetsRefinements)})},addHierarchicalFacetRefinement:function(e,t){if(this.isHierarchicalFacetRefined(e))throw new Error(e+" is already refined.");if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration.");var r={};return r[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:i({},r,this.hierarchicalFacetsRefinements)})},removeHierarchicalFacetRefinement:function(e){if(!this.isHierarchicalFacetRefined(e))return this;var t={};return t[e]=[],this.setQueryParameters({hierarchicalFacetsRefinements:i({},t,this.hierarchicalFacetsRefinements)})},toggleTagRefinement:function(e){return this.isTagRefined(e)?this.removeTagRefinement(e):this.addTagRefinement(e)},isDisjunctiveFacet:function(e){return this.disjunctiveFacets.indexOf(e)>-1},isHierarchicalFacet:function(e){return void 0!==this.getHierarchicalFacetByName(e)},isConjunctiveFacet:function(e){return this.facets.indexOf(e)>-1},isFacetRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsRefinements,e,t)},isExcludeRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsExcludes,e,t)},isDisjunctiveFacetRefined:function(e,t){return!!this.isDisjunctiveFacet(e)&&f.isRefined(this.disjunctiveFacetsRefinements,e,t)},isHierarchicalFacetRefined:function(e,t){if(!this.isHierarchicalFacet(e))return!1;var r=this.getHierarchicalRefinement(e);return t?-1!==r.indexOf(t):r.length>0},isNumericRefined:function(e,t,r){if(void 0===r&&void 0===t)return!!this.numericRefinements[e];var n=this.numericRefinements[e]&&void 0!==this.numericRefinements[e][t];if(void 0===r||!n)return n;var i,a,u=c(r),o=void 0!==(i=this.numericRefinements[e][t],a=u,s(i,(function(e){return l(e,a)})));return n&&o},isTagRefined:function(e){return-1!==this.tagRefinements.indexOf(e)},getRefinedDisjunctiveFacets:function(){var e=this,t=a(Object.keys(this.numericRefinements).filter((function(t){return Object.keys(e.numericRefinements[t]).length>0})),this.disjunctiveFacets);return Object.keys(this.disjunctiveFacetsRefinements).filter((function(t){return e.disjunctiveFacetsRefinements[t].length>0})).concat(t).concat(this.getRefinedHierarchicalFacets())},getRefinedHierarchicalFacets:function(){var e=this;return a(this.hierarchicalFacets.map((function(e){return e.name})),Object.keys(this.hierarchicalFacetsRefinements).filter((function(t){return e.hierarchicalFacetsRefinements[t].length>0})))},getUnrefinedDisjunctiveFacets:function(){var e=this.getRefinedDisjunctiveFacets();return this.disjunctiveFacets.filter((function(t){return-1===e.indexOf(t)}))},managedParameters:["index","facets","disjunctiveFacets","facetsRefinements","hierarchicalFacets","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacetsRefinements"],getQueryParams:function(){var e=this.managedParameters,t={},r=this;return Object.keys(this).forEach((function(n){var i=r[n];-1===e.indexOf(n)&&void 0!==i&&(t[n]=i)})),t},setQueryParameter:function(e,t){if(this[e]===t)return this;var r={};return r[e]=t,this.setQueryParameters(r)},setQueryParameters:function(e){if(!e)return this;var t=m.validate(this,e);if(t)throw t;var r=this,n=m._parseNumbers(e),i=Object.keys(this).reduce((function(e,t){return e[t]=r[t],e}),{}),a=Object.keys(n).reduce((function(e,t){var r=void 0!==e[t],i=void 0!==n[t];return r&&!i?u(e,[t]):(i&&(e[t]=n[t]),e)}),i);return new this.constructor(a)},resetPage:function(){return void 0===this.page?this:this.setPage(0)},_getHierarchicalFacetSortBy:function(e){return e.sortBy||["isRefined:desc","name:asc"]},_getHierarchicalFacetSeparator:function(e){return e.separator||" > "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"!=typeof e.showParentLevel||e.showParentLevel},getHierarchicalFacetByName:function(e){return s(this.hierarchicalFacets,(function(t){return t.name===e}))},getHierarchicalFacetBreadcrumb:function(e){if(!this.isHierarchicalFacet(e))return[];var t=this.getHierarchicalRefinement(e)[0];if(!t)return[];var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e));return t.split(r).map((function(e){return e.trim()}))},toString:function(){return JSON.stringify(this,null,2)}},e.exports=m},10210:(e,t,r)=>{"use strict";e.exports=function(e){return function(t,r){var s=e.hierarchicalFacets[r],o=e.hierarchicalFacetsRefinements[s.name]&&e.hierarchicalFacetsRefinements[s.name][0]||"",h=e._getHierarchicalFacetSeparator(s),f=e._getHierarchicalRootPath(s),l=e._getHierarchicalShowParentLevel(s),m=a(e._getHierarchicalFacetSortBy(s)),d=t.every((function(e){return e.exhaustive})),p=function(e,t,r,a,s){return function(o,h,f){var l=o;if(f>0){var m=0;for(l=o;m<f;){var d=l&&Array.isArray(l.data)?l.data:[];l=i(d,(function(e){return e.isRefined})),m++}}if(l){var p=Object.keys(h.data).map((function(e){return[e,h.data[e]]})).filter((function(e){return function(e,t,r,n,i,a){if(i&&(0!==e.indexOf(i)||i===e))return!1;return!i&&-1===e.indexOf(n)||i&&e.split(n).length-i.split(n).length==1||-1===e.indexOf(n)&&-1===r.indexOf(n)||0===r.indexOf(e)||0===e.indexOf(t+n)&&(a||0===e.indexOf(r))}(e[0],l.path||r,s,t,r,a)}));l.data=n(p.map((function(e){var r=e[0];return function(e,t,r,n,i){var a=t.split(r);return{name:a[a.length-1].trim(),path:t,escapedValue:c(t),count:e,isRefined:n===t||0===n.indexOf(t+r),exhaustive:i,data:null}}(e[1],r,t,u(s),h.exhaustive)})),e[0],e[1])}return o}}(m,h,f,l,o),v=t;return f&&(v=t.slice(f.split(h).length)),v.reduce(p,{name:e.hierarchicalFacets[r].name,count:null,isRefined:!0,path:null,escapedValue:null,exhaustive:d,data:null})}};var n=r(42148),i=r(7888),a=r(82293),s=r(94039),c=s.escapeFacetValue,u=s.unescapeFacetValue},23076:(e,t,r)=>{"use strict";var n=r(60185),i=r(52344),a=r(42148),s=r(74587),c=r(7888),u=r(69725),o=r(82293),h=r(94039),f=h.escapeFacetValue,l=h.unescapeFacetValue,m=r(10210);function d(e){var t={};return e.forEach((function(e,r){t[e]=r})),t}function p(e,t,r){t&&t[r]&&(e.stats=t[r])}function v(e,t,r){var a=t[0];this._rawResults=t;var o=this;Object.keys(a).forEach((function(e){o[e]=a[e]})),Object.keys(r||{}).forEach((function(e){o[e]=r[e]})),this.processingTimeMS=t.reduce((function(e,t){return void 0===t.processingTimeMS?e:e+t.processingTimeMS}),0),this.disjunctiveFacets=[],this.hierarchicalFacets=e.hierarchicalFacets.map((function(){return[]})),this.facets=[];var h=e.getRefinedDisjunctiveFacets(),f=d(e.facets),v=d(e.disjunctiveFacets),g=1,y=a.facets||{};Object.keys(y).forEach((function(t){var r,n,i=y[t],s=(r=e.hierarchicalFacets,n=t,c(r,(function(e){return(e.attributes||[]).indexOf(n)>-1})));if(s){var h=s.attributes.indexOf(t),l=u(e.hierarchicalFacets,(function(e){return e.name===s.name}));o.hierarchicalFacets[l][h]={attribute:t,data:i,exhaustive:a.exhaustiveFacetsCount}}else{var m,d=-1!==e.disjunctiveFacets.indexOf(t),g=-1!==e.facets.indexOf(t);d&&(m=v[t],o.disjunctiveFacets[m]={name:t,data:i,exhaustive:a.exhaustiveFacetsCount},p(o.disjunctiveFacets[m],a.facets_stats,t)),g&&(m=f[t],o.facets[m]={name:t,data:i,exhaustive:a.exhaustiveFacetsCount},p(o.facets[m],a.facets_stats,t))}})),this.hierarchicalFacets=s(this.hierarchicalFacets),h.forEach((function(r){var s=t[g],c=s&&s.facets?s.facets:{},h=e.getHierarchicalFacetByName(r);Object.keys(c).forEach((function(t){var r,f=c[t];if(h){r=u(e.hierarchicalFacets,(function(e){return e.name===h.name}));var m=u(o.hierarchicalFacets[r],(function(e){return e.attribute===t}));if(-1===m)return;o.hierarchicalFacets[r][m].data=n({},o.hierarchicalFacets[r][m].data,f)}else{r=v[t];var d=a.facets&&a.facets[t]||{};o.disjunctiveFacets[r]={name:t,data:i({},f,d),exhaustive:s.exhaustiveFacetsCount},p(o.disjunctiveFacets[r],s.facets_stats,t),e.disjunctiveFacetsRefinements[t]&&e.disjunctiveFacetsRefinements[t].forEach((function(n){!o.disjunctiveFacets[r].data[n]&&e.disjunctiveFacetsRefinements[t].indexOf(l(n))>-1&&(o.disjunctiveFacets[r].data[n]=0)}))}})),g++})),e.getRefinedHierarchicalFacets().forEach((function(r){var n=e.getHierarchicalFacetByName(r),a=e._getHierarchicalFacetSeparator(n),s=e.getHierarchicalRefinement(r);0===s.length||s[0].split(a).length<2||t.slice(g).forEach((function(t){var r=t&&t.facets?t.facets:{};Object.keys(r).forEach((function(t){var c=r[t],h=u(e.hierarchicalFacets,(function(e){return e.name===n.name})),f=u(o.hierarchicalFacets[h],(function(e){return e.attribute===t}));if(-1!==f){var l={};if(s.length>0){var m=s[0].split(a)[0];l[m]=o.hierarchicalFacets[h][f].data[m]}o.hierarchicalFacets[h][f].data=i(l,c,o.hierarchicalFacets[h][f].data)}})),g++}))})),Object.keys(e.facetsExcludes).forEach((function(t){var r=e.facetsExcludes[t],n=f[t];o.facets[n]={name:t,data:a.facets[t],exhaustive:a.exhaustiveFacetsCount},r.forEach((function(e){o.facets[n]=o.facets[n]||{name:t},o.facets[n].data=o.facets[n].data||{},o.facets[n].data[e]=0}))})),this.hierarchicalFacets=this.hierarchicalFacets.map(m(e)),this.facets=s(this.facets),this.disjunctiveFacets=s(this.disjunctiveFacets),this._state=e}function g(e,t,r,n){if(n=n||0,Array.isArray(t))return e(t,r[n]);if(!t.data||0===t.data.length)return t;var a=t.data.map((function(t){return g(e,t,r,n+1)})),s=e(a,r[n]);return i({data:s},t)}function y(e,t){var r=c(e,(function(e){return e.name===t}));return r&&r.stats}function R(e,t,r,n,i){var a=c(i,(function(e){return e.name===r})),s=a&&a.data&&a.data[n]?a.data[n]:0,u=a&&a.exhaustive||!1;return{type:t,attributeName:r,name:n,count:s,exhaustive:u}}v.prototype.getFacetByName=function(e){function t(t){return t.name===e}return c(this.facets,t)||c(this.disjunctiveFacets,t)||c(this.hierarchicalFacets,t)},v.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],v.prototype.getFacetValues=function(e,t){var r=function(e,t){function r(e){return e.name===t}if(e._state.isConjunctiveFacet(t)){var n=c(e.facets,r);return n?Object.keys(n.data).map((function(r){var i=f(r);return{name:r,escapedValue:i,count:n.data[r],isRefined:e._state.isFacetRefined(t,i),isExcluded:e._state.isExcludeRefined(t,r)}})):[]}if(e._state.isDisjunctiveFacet(t)){var i=c(e.disjunctiveFacets,r);return i?Object.keys(i.data).map((function(r){var n=f(r);return{name:r,escapedValue:n,count:i.data[r],isRefined:e._state.isDisjunctiveFacetRefined(t,n)}})):[]}if(e._state.isHierarchicalFacet(t))return c(e.hierarchicalFacets,r)}(this,e);if(r){var n,s=i({},t,{sortBy:v.DEFAULT_SORT,facetOrdering:!(t&&t.sortBy)}),u=this;if(Array.isArray(r))n=[e];else n=u._state.getHierarchicalFacetByName(r.name).attributes;return g((function(e,t){if(s.facetOrdering){var r=function(e,t){return e.renderingContent&&e.renderingContent.facetOrdering&&e.renderingContent.facetOrdering.values&&e.renderingContent.facetOrdering.values[t]}(u,t);if(Boolean(r))return function(e,t){var r=[],n=[],i=(t.order||[]).reduce((function(e,t,r){return e[t]=r,e}),{});e.forEach((function(e){var t=e.path||e.name;void 0!==i[t]?r[i[t]]=e:n.push(e)})),r=r.filter((function(e){return e}));var s,c=t.sortRemainingBy;return"hidden"===c?r:(s="alpha"===c?[["path","name"],["asc","asc"]]:[["count"],["desc"]],r.concat(a(n,s[0],s[1])))}(e,r)}if(Array.isArray(s.sortBy)){var n=o(s.sortBy,v.DEFAULT_SORT);return a(e,n[0],n[1])}if("function"==typeof s.sortBy)return function(e,t){return t.sort(e)}(s.sortBy,e);throw new Error("options.sortBy is optional but if defined it must be either an array of string (predicates) or a sorting function")}),r,n)}},v.prototype.getFacetStats=function(e){return this._state.isConjunctiveFacet(e)?y(this.facets,e):this._state.isDisjunctiveFacet(e)?y(this.disjunctiveFacets,e):void 0},v.prototype.getRefinements=function(){var e=this._state,t=this,r=[];return Object.keys(e.facetsRefinements).forEach((function(n){e.facetsRefinements[n].forEach((function(i){r.push(R(e,"facet",n,i,t.facets))}))})),Object.keys(e.facetsExcludes).forEach((function(n){e.facetsExcludes[n].forEach((function(i){r.push(R(e,"exclude",n,i,t.facets))}))})),Object.keys(e.disjunctiveFacetsRefinements).forEach((function(n){e.disjunctiveFacetsRefinements[n].forEach((function(i){r.push(R(e,"disjunctive",n,i,t.disjunctiveFacets))}))})),Object.keys(e.hierarchicalFacetsRefinements).forEach((function(n){e.hierarchicalFacetsRefinements[n].forEach((function(i){r.push(function(e,t,r,n){var i=e.getHierarchicalFacetByName(t),a=e._getHierarchicalFacetSeparator(i),s=r.split(a),u=c(n,(function(e){return e.name===t})),o=s.reduce((function(e,t){var r=e&&c(e.data,(function(e){return e.name===t}));return void 0!==r?r:e}),u),h=o&&o.count||0,f=o&&o.exhaustive||!1,l=o&&o.path||"";return{type:"hierarchical",attributeName:t,name:l,count:h,exhaustive:f}}(e,n,i,t.hierarchicalFacets))}))})),Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t];Object.keys(n).forEach((function(e){n[e].forEach((function(n){r.push({type:"numeric",attributeName:t,name:n,numericValue:n,operator:e})}))}))})),e.tagRefinements.forEach((function(e){r.push({type:"tag",attributeName:"_tags",name:e})})),r},e.exports=v},49374:(e,t,r)=>{"use strict";var n=r(17775),i=r(23076),a=r(68078),s=r(96394),c=r(17331),u=r(14853),o=r(90116),h=r(49803),f=r(60185),l=r(24336),m=r(94039).escapeFacetValue;function d(e,t,r){"function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+l+")"),this.setClient(e);var i=r||{};i.index=t,this.state=n.make(i),this.lastResults=null,this._queryId=0,this._lastQueryIdReceived=-1,this.derivedHelpers=[],this._currentNbQueries=0}function p(e){if(e<0)throw new Error("Page requested below 0.");return this._change({state:this.state.setPage(e),isPageReset:!1}),this}function v(){return this.state.page}u(d,c),d.prototype.search=function(){return this._search({onlyWithDerivedHelpers:!1}),this},d.prototype.searchOnlyWithDerivedHelpers=function(){return this._search({onlyWithDerivedHelpers:!0}),this},d.prototype.getQuery=function(){var e=this.state;return s._getHitsSearchParams(e)},d.prototype.searchOnce=function(e,t){var r=e?this.state.setQueryParameters(e):this.state,n=s._getQueries(r.index,r),a=this;if(this._currentNbQueries++,this.emit("searchOnce",{state:r}),!t)return this.client.search(n).then((function(e){return a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),{content:new i(r,e.results),state:r,_originalResponse:e}}),(function(e){throw a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),e}));this.client.search(n).then((function(e){a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),t(null,new i(r,e.results),r)})).catch((function(e){a._currentNbQueries--,0===a._currentNbQueries&&a.emit("searchQueueEmpty"),t(e,null,r)}))},d.prototype.findAnswers=function(e){var t=this.state,r=this.derivedHelpers[0];if(!r)return Promise.resolve([]);var n=r.getModifiedState(t),i=f({attributesForPrediction:e.attributesForPrediction,nbHits:e.nbHits},{params:h(s._getHitsSearchParams(n),["attributesToSnippet","hitsPerPage","restrictSearchableAttributes","snippetEllipsisText"])}),a="search for answers was called, but this client does not have a function client.initIndex(index).findAnswers";if("function"!=typeof this.client.initIndex)throw new Error(a);var c=this.client.initIndex(n.index);if("function"!=typeof c.findAnswers)throw new Error(a);return c.findAnswers(n.query,e.queryLanguages,i)},d.prototype.searchForFacetValues=function(e,t,r,n){var i="function"==typeof this.client.searchForFacetValues,a="function"==typeof this.client.initIndex;if(!i&&!a&&"function"!=typeof this.client.search)throw new Error("search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues");var c=this.state.setQueryParameters(n||{}),u=c.isDisjunctiveFacet(e),o=s.getSearchForFacetQuery(e,t,r,c);this._currentNbQueries++;var h,f=this;return i?h=this.client.searchForFacetValues([{indexName:c.index,params:o}]):a?h=this.client.initIndex(c.index).searchForFacetValues(o):(delete o.facetName,h=this.client.search([{type:"facet",facet:e,indexName:c.index,params:o}]).then((function(e){return e.results[0]}))),this.emit("searchForFacetValues",{state:c,facet:e,query:t}),h.then((function(t){return f._currentNbQueries--,0===f._currentNbQueries&&f.emit("searchQueueEmpty"),(t=Array.isArray(t)?t[0]:t).facetHits.forEach((function(t){t.escapedValue=m(t.value),t.isRefined=u?c.isDisjunctiveFacetRefined(e,t.escapedValue):c.isFacetRefined(e,t.escapedValue)})),t}),(function(e){throw f._currentNbQueries--,0===f._currentNbQueries&&f.emit("searchQueueEmpty"),e}))},d.prototype.setQuery=function(e){return this._change({state:this.state.resetPage().setQuery(e),isPageReset:!0}),this},d.prototype.clearRefinements=function(e){return this._change({state:this.state.resetPage().clearRefinements(e),isPageReset:!0}),this},d.prototype.clearTags=function(){return this._change({state:this.state.resetPage().clearTags(),isPageReset:!0}),this},d.prototype.addDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addDisjunctiveRefine=function(){return this.addDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.addHierarchicalFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addHierarchicalFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().addNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.addFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addRefine=function(){return this.addFacetRefinement.apply(this,arguments)},d.prototype.addFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().addExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.addExclude=function(){return this.addFacetExclusion.apply(this,arguments)},d.prototype.addTag=function(e){return this._change({state:this.state.resetPage().addTagRefinement(e),isPageReset:!0}),this},d.prototype.removeNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().removeNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.removeDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeDisjunctiveRefine=function(){return this.removeDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.removeHierarchicalFacetRefinement=function(e){return this._change({state:this.state.resetPage().removeHierarchicalFacetRefinement(e),isPageReset:!0}),this},d.prototype.removeFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeRefine=function(){return this.removeFacetRefinement.apply(this,arguments)},d.prototype.removeFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().removeExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.removeExclude=function(){return this.removeFacetExclusion.apply(this,arguments)},d.prototype.removeTag=function(e){return this._change({state:this.state.resetPage().removeTagRefinement(e),isPageReset:!0}),this},d.prototype.toggleFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().toggleExcludeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleExclude=function(){return this.toggleFacetExclusion.apply(this,arguments)},d.prototype.toggleRefinement=function(e,t){return this.toggleFacetRefinement(e,t)},d.prototype.toggleFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().toggleFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleRefine=function(){return this.toggleFacetRefinement.apply(this,arguments)},d.prototype.toggleTag=function(e){return this._change({state:this.state.resetPage().toggleTagRefinement(e),isPageReset:!0}),this},d.prototype.nextPage=function(){var e=this.state.page||0;return this.setPage(e+1)},d.prototype.previousPage=function(){var e=this.state.page||0;return this.setPage(e-1)},d.prototype.setCurrentPage=p,d.prototype.setPage=p,d.prototype.setIndex=function(e){return this._change({state:this.state.resetPage().setIndex(e),isPageReset:!0}),this},d.prototype.setQueryParameter=function(e,t){return this._change({state:this.state.resetPage().setQueryParameter(e,t),isPageReset:!0}),this},d.prototype.setState=function(e){return this._change({state:n.make(e),isPageReset:!1}),this},d.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new n(e),this},d.prototype.hasRefinements=function(e){return!!o(this.state.getNumericRefinements(e))||(this.state.isConjunctiveFacet(e)?this.state.isFacetRefined(e):this.state.isDisjunctiveFacet(e)?this.state.isDisjunctiveFacetRefined(e):!!this.state.isHierarchicalFacet(e)&&this.state.isHierarchicalFacetRefined(e))},d.prototype.isExcluded=function(e,t){return this.state.isExcludeRefined(e,t)},d.prototype.isDisjunctiveRefined=function(e,t){return this.state.isDisjunctiveFacetRefined(e,t)},d.prototype.hasTag=function(e){return this.state.isTagRefined(e)},d.prototype.isTagRefined=function(){return this.hasTagRefinements.apply(this,arguments)},d.prototype.getIndex=function(){return this.state.index},d.prototype.getCurrentPage=v,d.prototype.getPage=v,d.prototype.getTags=function(){return this.state.tagRefinements},d.prototype.getRefinements=function(e){var t=[];if(this.state.isConjunctiveFacet(e))this.state.getConjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"conjunctive"})})),this.state.getExcludeRefinements(e).forEach((function(e){t.push({value:e,type:"exclude"})}));else if(this.state.isDisjunctiveFacet(e)){this.state.getDisjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"disjunctive"})}))}var r=this.state.getNumericRefinements(e);return Object.keys(r).forEach((function(e){var n=r[e];t.push({value:n,operator:e,type:"numeric"})})),t},d.prototype.getNumericRefinement=function(e,t){return this.state.getNumericRefinement(e,t)},d.prototype.getHierarchicalFacetBreadcrumb=function(e){return this.state.getHierarchicalFacetBreadcrumb(e)},d.prototype._search=function(e){var t=this.state,r=[],n=[];e.onlyWithDerivedHelpers||(n=s._getQueries(t.index,t),r.push({state:t,queriesCount:n.length,helper:this}),this.emit("search",{state:t,results:this.lastResults}));var i=this.derivedHelpers.map((function(e){var n=e.getModifiedState(t),i=s._getQueries(n.index,n);return r.push({state:n,queriesCount:i.length,helper:e}),e.emit("search",{state:n,results:e.lastResults}),i})),a=Array.prototype.concat.apply(n,i),c=this._queryId++;this._currentNbQueries++;try{this.client.search(a).then(this._dispatchAlgoliaResponse.bind(this,r,c)).catch(this._dispatchAlgoliaError.bind(this,c))}catch(u){this.emit("error",{error:u})}},d.prototype._dispatchAlgoliaResponse=function(e,t,r){if(!(t<this._lastQueryIdReceived)){this._currentNbQueries-=t-this._lastQueryIdReceived,this._lastQueryIdReceived=t,0===this._currentNbQueries&&this.emit("searchQueueEmpty");var n=r.results.slice();e.forEach((function(e){var t=e.state,r=e.queriesCount,a=e.helper,s=n.splice(0,r),c=a.lastResults=new i(t,s);a.emit("result",{results:c,state:t})}))}},d.prototype._dispatchAlgoliaError=function(e,t){e<this._lastQueryIdReceived||(this._currentNbQueries-=e-this._lastQueryIdReceived,this._lastQueryIdReceived=e,this.emit("error",{error:t}),0===this._currentNbQueries&&this.emit("searchQueueEmpty"))},d.prototype.containsRefinement=function(e,t,r,n){return e||0!==t.length||0!==r.length||0!==n.length},d.prototype._hasDisjunctiveRefinements=function(e){return this.state.disjunctiveRefinements[e]&&this.state.disjunctiveRefinements[e].length>0},d.prototype._change=function(e){var t=e.state,r=e.isPageReset;t!==this.state&&(this.state=t,this.emit("change",{state:this.state,results:this.lastResults,isPageReset:r}))},d.prototype.clearCache=function(){return this.client.clearCache&&this.client.clearCache(),this},d.prototype.setClient=function(e){return this.client===e||("function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+l+")"),this.client=e),this},d.prototype.getClient=function(){return this.client},d.prototype.derive=function(e){var t=new a(this,e);return this.derivedHelpers.push(t),t},d.prototype.detachDerivedHelper=function(e){var t=this.derivedHelpers.indexOf(e);if(-1===t)throw new Error("Derived helper already detached");this.derivedHelpers.splice(t,1)},d.prototype.hasPendingRequests=function(){return this._currentNbQueries>0},e.exports=d},74587:e=>{"use strict";e.exports=function(e){return Array.isArray(e)?e.filter(Boolean):[]}},52344:e=>{"use strict";e.exports=function(){var e=Array.prototype.slice.call(arguments);return e.reduceRight((function(e,t){return Object.keys(Object(t)).forEach((function(r){void 0!==t[r]&&(void 0!==e[r]&&delete e[r],e[r]=t[r])})),e}),{})}},94039:e=>{"use strict";e.exports={escapeFacetValue:function(e){return"string"!=typeof e?e:String(e).replace(/^-/,"\\-")},unescapeFacetValue:function(e){return"string"!=typeof e?e:e.replace(/^\\-/,"-")}}},7888:e=>{"use strict";e.exports=function(e,t){if(Array.isArray(e))for(var r=0;r<e.length;r++)if(t(e[r]))return e[r]}},69725:e=>{"use strict";e.exports=function(e,t){if(!Array.isArray(e))return-1;for(var r=0;r<e.length;r++)if(t(e[r]))return r;return-1}},82293:(e,t,r)=>{"use strict";var n=r(7888);e.exports=function(e,t){var r=(t||[]).map((function(e){return e.split(":")}));return e.reduce((function(e,t){var i=t.split(":"),a=n(r,(function(e){return e[0]===i[0]}));return i.length>1||!a?(e[0].push(i[0]),e[1].push(i[1]),e):(e[0].push(a[0]),e[1].push(a[1]),e)}),[[],[]])}},14853:e=>{"use strict";e.exports=function(e,t){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}},22686:e=>{"use strict";e.exports=function(e,t){return e.filter((function(r,n){return t.indexOf(r)>-1&&e.indexOf(r)===n}))}},60185:e=>{"use strict";function t(e){return"function"==typeof e||Array.isArray(e)||"[object Object]"===Object.prototype.toString.call(e)}function r(e,n){if(e===n)return e;for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&"__proto__"!==i){var a=n[i],s=e[i];void 0!==s&&void 0===a||(t(s)&&t(a)?e[i]=r(s,a):e[i]="object"==typeof(c=a)&&null!==c?r(Array.isArray(c)?[]:{},c):c)}var c;return e}e.exports=function(e){t(e)||(e={});for(var n=1,i=arguments.length;n<i;n++){var a=arguments[n];t(a)&&r(e,a)}return e}},90116:e=>{"use strict";e.exports=function(e){return e&&Object.keys(e).length>0}},49803:e=>{"use strict";e.exports=function(e,t){if(null===e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}},42148:e=>{"use strict";function t(e,t){if(e!==t){var r=void 0!==e,n=null===e,i=void 0!==t,a=null===t;if(!a&&e>t||n&&i||!r)return 1;if(!n&&e<t||a&&r||!i)return-1}return 0}e.exports=function(e,r,n){if(!Array.isArray(e))return[];Array.isArray(n)||(n=[]);var i=e.map((function(e,t){return{criteria:r.map((function(t){return e[t]})),index:t,value:e}}));return i.sort((function(e,r){for(var i=-1;++i<e.criteria.length;){var a=t(e.criteria[i],r.criteria[i]);if(a)return i>=n.length?a:"desc"===n[i]?-a:a}return e.index-r.index})),i.map((function(e){return e.value}))}},28023:e=>{"use strict";e.exports=function e(t){if("number"==typeof t)return t;if("string"==typeof t)return parseFloat(t);if(Array.isArray(t))return t.map(e);throw new Error("The value should be a number, a parsable string or an array of those.")}},96394:(e,t,r)=>{"use strict";var n=r(60185);function i(e){return Object.keys(e).sort((function(e,t){return e.localeCompare(t)})).reduce((function(t,r){return t[r]=e[r],t}),{})}var a={_getQueries:function(e,t){var r=[];return r.push({indexName:e,params:a._getHitsSearchParams(t)}),t.getRefinedDisjunctiveFacets().forEach((function(n){r.push({indexName:e,params:a._getDisjunctiveFacetSearchParams(t,n)})})),t.getRefinedHierarchicalFacets().forEach((function(n){var i=t.getHierarchicalFacetByName(n),s=t.getHierarchicalRefinement(n),c=t._getHierarchicalFacetSeparator(i);if(s.length>0&&s[0].split(c).length>1){var u=s[0].split(c).slice(0,-1).reduce((function(e,t,r){return e.concat({attribute:i.attributes[r],value:0===r?t:[e[e.length-1].value,t].join(c)})}),[]);u.forEach((function(n,i){var s=a._getDisjunctiveFacetSearchParams(t,n.attribute,0===i),c=u[i-1];s.facetFilters=i>0?[c.attribute+":"+c.value]:void 0,r.push({indexName:e,params:s})}))}})),r},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(a._getHitsHierarchicalFacetsAttributes(e)),r=a._getFacetFilters(e),s=a._getNumericFilters(e),c=a._getTagFilters(e),u={facets:t.indexOf("*")>-1?["*"]:t,tagFilters:c};return r.length>0&&(u.facetFilters=r),s.length>0&&(u.numericFilters=s),i(n({},e.getQueryParams(),u))},_getDisjunctiveFacetSearchParams:function(e,t,r){var s=a._getFacetFilters(e,t,r),c=a._getNumericFilters(e,t),u=a._getTagFilters(e),o={hitsPerPage:0,page:0,analytics:!1,clickAnalytics:!1};u.length>0&&(o.tagFilters=u);var h=e.getHierarchicalFacetByName(t);return o.facets=h?a._getDisjunctiveHierarchicalFacetAttribute(e,h,r):t,c.length>0&&(o.numericFilters=c),s.length>0&&(o.facetFilters=s),i(n({},e.getQueryParams(),o))},_getNumericFilters:function(e,t){if(e.numericFilters)return e.numericFilters;var r=[];return Object.keys(e.numericRefinements).forEach((function(n){var i=e.numericRefinements[n]||{};Object.keys(i).forEach((function(e){var a=i[e]||[];t!==n&&a.forEach((function(t){if(Array.isArray(t)){var i=t.map((function(t){return n+e+t}));r.push(i)}else r.push(n+e+t)}))}))})),r},_getTagFilters:function(e){return e.tagFilters?e.tagFilters:e.tagRefinements.join(",")},_getFacetFilters:function(e,t,r){var n=[],i=e.facetsRefinements||{};Object.keys(i).forEach((function(e){(i[e]||[]).forEach((function(t){n.push(e+":"+t)}))}));var a=e.facetsExcludes||{};Object.keys(a).forEach((function(e){(a[e]||[]).forEach((function(t){n.push(e+":-"+t)}))}));var s=e.disjunctiveFacetsRefinements||{};Object.keys(s).forEach((function(e){var r=s[e]||[];if(e!==t&&r&&0!==r.length){var i=[];r.forEach((function(t){i.push(e+":"+t)})),n.push(i)}}));var c=e.hierarchicalFacetsRefinements||{};return Object.keys(c).forEach((function(i){var a=(c[i]||[])[0];if(void 0!==a){var s,u,o=e.getHierarchicalFacetByName(i),h=e._getHierarchicalFacetSeparator(o),f=e._getHierarchicalRootPath(o);if(t===i){if(-1===a.indexOf(h)||!f&&!0===r||f&&f.split(h).length===a.split(h).length)return;f?(u=f.split(h).length-1,a=f):(u=a.split(h).length-2,a=a.slice(0,a.lastIndexOf(h))),s=o.attributes[u]}else u=a.split(h).length-1,s=o.attributes[u];s&&n.push([s+":"+a])}})),n},_getHitsHierarchicalFacetsAttributes:function(e){return e.hierarchicalFacets.reduce((function(t,r){var n=e.getHierarchicalRefinement(r.name)[0];if(!n)return t.push(r.attributes[0]),t;var i=e._getHierarchicalFacetSeparator(r),a=n.split(i).length,s=r.attributes.slice(0,a+1);return t.concat(s)}),[])},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,r){var n=e._getHierarchicalFacetSeparator(t);if(!0===r){var i=e._getHierarchicalRootPath(t),a=0;return i&&(a=i.split(n).length),[t.attributes[a]]}var s=(e.getHierarchicalRefinement(t.name)[0]||"").split(n).length-1;return t.attributes.slice(0,s+1)},getSearchForFacetQuery:function(e,t,r,s){var c=s.isDisjunctiveFacet(e)?s.clearRefinements(e):s,u={facetQuery:t,facetName:e};return"number"==typeof r&&(u.maxFacetHits=r),i(n({},a._getHitsSearchParams(c),u))}};e.exports=a},46801:e=>{"use strict";e.exports=function(e){return null!==e&&/^[a-zA-Z0-9_-]{1,64}$/.test(e)}},24336:e=>{"use strict";e.exports="3.11.0"},70290:function(e){e.exports=function(){"use strict";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n<arguments.length;n++){var i=null!=arguments[n]?arguments[n]:{};n%2?t(Object(i),!0).forEach((function(t){e(r,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(i)):t(Object(i)).forEach((function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(i,e))}))}return r}function n(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var r=[],n=!0,i=!1,a=void 0;try{for(var s,c=e[Symbol.iterator]();!(n=(s=c.next()).done)&&(r.push(s.value),!t||r.length!==t);n=!0);}catch(e){i=!0,a=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw a}}return r}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function a(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function s(e){var t,r="algoliasearch-client-js-".concat(e.key),n=function(){return void 0===t&&(t=e.localStorage||window.localStorage),t},a=function(){return JSON.parse(n().getItem(r)||"{}")};return{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var r=JSON.stringify(e),n=a()[r];return Promise.all([n||t(),void 0!==n])})).then((function(e){var t=i(e,2),n=t[0],a=t[1];return Promise.all([n,a||r.miss(n)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var i=a();return i[JSON.stringify(e)]=t,n().setItem(r,JSON.stringify(i)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=a();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function c(e){var t=a(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,i).catch((function(){return c({caches:t}).get(e,n,i)}))},set:function(e,n){return r.set(e,n).catch((function(){return c({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return c({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return c({caches:t}).clear()}))}}}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},a=JSON.stringify(r);if(a in t)return Promise.resolve(e.serializable?JSON.parse(t[a]):t[a]);var s=n(),c=i&&i.miss||function(){return Promise.resolve()};return s.then((function(e){return c(e)})).then((function(){return s}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function o(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function h(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function f(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var i=0;return e.replace(/%s/g,(function(){return encodeURIComponent(r[i++])}))}var l={WithinQueryParameters:0,WithinHeaders:1};function m(e,t){var r=e||{},n=r.data||{};return Object.keys(r).forEach((function(e){-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var d={Read:1,Write:2,Any:3},p=1,v=2,g=3;function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function R(e){return"string"==typeof e?{protocol:"https",url:e,accept:d.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||d.Any}}var F="GET",b="POST";function P(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(y(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===p||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===g&&Date.now()-e.lastUpdate<=12e4}(e)})),i=[].concat(a(r),a(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:i.length>0?i.map((function(e){return R(e)})):t}}))}function j(e,t,n,i){var s=[],c=function(e,t){if(e.method!==F&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}}(n,i),u=function(e,t){var n=r(r({},e.headers),t.headers),i={};return Object.keys(n).forEach((function(e){var t=n[e];i[e.toLowerCase()]=t})),i}(e,i),o=n.method,h=n.method!==F?{}:r(r({},n.data),i.data),f=r(r(r({"x-algolia-agent":e.userAgent.value},e.queryParameters),h),i.queryParameters),l=0,m=function t(r,a){var h=r.pop();if(void 0===h)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:w(s)};var m={data:c,headers:u,method:o,url:E(h,n.path,f),connectTimeout:a(l,e.timeouts.connect),responseTimeout:a(l,i.timeout)},d=function(e){var t={request:m,response:e,host:h,triesLeft:r.length};return s.push(t),t},p={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var i=d(n);return n.isTimedOut&&l++,Promise.all([e.logger.info("Retryable failure",O(i)),e.hostsCache.set(h,y(h,n.isTimedOut?g:v))]).then((function(){return t(r,a)}))},onFail:function(e){throw d(e),function(e,t){var r=e.content,n=e.status,i=r;try{i=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(i,n,t)}(e,w(s))}};return e.requester.send(m).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,p)}))};return P(e.hostsCache,t).then((function(e){return m(a(e.statelessHosts).reverse(),e.getTimeout)}))}function _(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}function E(e,t,r){var n=x(r),i="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(i+="?".concat(n)),i}function x(e){return Object.keys(e).map((function(t){return f("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function w(e){return e.map((function(e){return O(e)}))}function O(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var N=function(e){var t=e.appId,n=function(e,t,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:function(){return e===l.WithinHeaders?n:{}},queryParameters:function(){return e===l.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:l.WithinHeaders,t,e.apiKey),a=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,a=e.requestsCache,s=e.responsesCache,c=e.timeouts,u=e.userAgent,o=e.hosts,h=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:s,timeouts:c,userAgent:u,headers:e.headers,queryParameters:h,hosts:o.map((function(e){return R(e)})),read:function(e,t){var r=m(t,f.timeouts.read),n=function(){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var a={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(a,(function(){return f.requestsCache.get(a,(function(){return f.requestsCache.set(a,n()).then((function(e){return Promise.all([f.requestsCache.delete(a),e])}),(function(e){return Promise.all([f.requestsCache.delete(a),Promise.reject(e)])})).then((function(e){var t=i(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.responsesCache.set(a,e)}})},write:function(e,t){return j(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Write)})),e,m(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:d.Read},{url:"".concat(t,".algolia.net"),accept:d.Write}].concat(o([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return h({transporter:a,appId:t,addAlgoliaAgent:function(e,t){a.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},e.methods)},A=function(e){return function(t,r){return t.method===F?e.transporter.read(t,r):e.transporter.write(t,r)}},H=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return h({transporter:e.transporter,appId:e.appId,indexName:t},r.methods)}},S=function(e){return function(t,n){var i=t.map((function(e){return r(r({},e),{},{params:x(e.params||{})})}));return e.transporter.read({method:b,path:"1/indexes/*/queries",data:{requests:i},cacheable:!0},n)}},T=function(e){return function(t,i){return Promise.all(t.map((function(t){var a=t.params,s=a.facetName,c=a.facetQuery,u=n(a,["facetName","facetQuery"]);return H(e)(t.indexName,{methods:{searchForFacetValues:k}}).searchForFacetValues(s,c,r(r({},i),u))})))}},Q=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},C=function(e){return function(t,r){return e.transporter.read({method:b,path:f("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r)}},k=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},D=1,I=2,q=3;function V(e,t,n){var i,a={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,i=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},a=i(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(a),n=i(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(a),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(a),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(i=q,{debug:function(e,t){return D>=i&&console.debug(e,t),Promise.resolve()},info:function(e,t){return I>=i&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:u(),requestsCache:u({serializable:!1}),hostsCache:c({caches:[s({key:"".concat("4.14.2","-").concat(e)}),u()]}),userAgent:_("4.14.2").add({segment:"Browser",version:"lite"}),authMode:l.WithinQueryParameters};return N(r(r(r({},a),n),{},{methods:{search:S,searchForFacetValues:T,multipleQueries:S,multipleSearchForFacetValues:T,customRequest:A,initIndex:function(e){return function(t){return H(e)(t,{methods:{search:C,searchForFacetValues:k,findAnswers:Q}})}}}}))}return V.version="4.14.2",V}()},88824:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var n=r(67294),i=r(52263);const a=["zero","one","two","few","many","other"];function s(e){return a.filter((t=>e.includes(t)))}const c={locale:"en",pluralForms:s(["one","other"]),select:e=>1===e?"one":"other"};function u(){const{i18n:{currentLocale:e}}=(0,i.default)();return(0,n.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:s(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error('Failed to use Intl.PluralRules for locale "'+e+'".\nDocusaurus will fallback to the default (English) implementation.\nError: '+t.message+"\n"),c}}),[e])}function o(){const e=u();return{selectMessage:(t,r)=>function(e,t,r){const n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error("For locale="+r.locale+", a maximum of "+r.pluralForms.length+" plural forms are expected ("+r.pluralForms.join(",")+"), but the message contains "+n.length+": "+e);const i=r.select(t),a=r.pluralForms.indexOf(i);return n[Math.min(a,n.length-1)]}(r,t,e)}}},39172:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>q});var n=r(67294),i=r(86010),a=r(8131),s=r.n(a),c=r(70290),u=r.n(c),o=r(10412),h=r(35742),f=r(39960),l=r(94104),m=r(88824),d=r(66177),p=r(902),v=r(10833),g=r(82128),y=r(95999),R=r(52263),F=r(6278),b=r(239),P=r(89007);const j="searchQueryInput_u2C7",_="searchVersionInput_m0Ui",E="searchResultsColumn_JPFH",x="algoliaLogo_rT1R",w="algoliaLogoPathFill_WdUC",O="searchResultItem_Tv2o",N="searchResultItemHeading_KbCB",A="searchResultItemPath_lhe1",H="searchResultItemSummary_AEaO",S="searchQueryColumn_RTkw",T="searchVersionColumn_ypXd",Q="searchLogoColumn_rJIA",C="loadingSpinner_XVxU",k="loader_vvXV";function D(e){let{docsSearchVersionsHelpers:t}=e;const r=Object.entries(t.allDocsData).filter((e=>{let[,t]=e;return t.versions.length>1}));return n.createElement("div",{className:(0,i.default)("col","col--3","padding-left--none",T)},r.map((e=>{let[i,a]=e;const s=r.length>1?i+": ":"";return n.createElement("select",{key:i,onChange:e=>t.setSearchVersion(i,e.target.value),defaultValue:t.searchVersions[i],className:_},a.versions.map(((e,t)=>n.createElement("option",{key:t,label:""+s+e.label,value:e.name}))))})))}function I(){const{i18n:{currentLocale:e}}=(0,R.default)(),{algolia:{appId:t,apiKey:r,indexName:a}}=(0,F.L)(),c=(0,b.l)(),v=function(){const{selectMessage:e}=(0,m.c)();return t=>e(t,(0,y.translate)({id:"theme.SearchPage.documentsFound.plurals",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One document found|{count} documents found"},{count:t}))}(),_=function(){const e=(0,l._r)(),[t,r]=(0,n.useState)((()=>Object.entries(e).reduce(((e,t)=>{let[r,n]=t;return{...e,[r]:n.versions[0].name}}),{}))),i=Object.values(e).some((e=>e.versions.length>1));return{allDocsData:e,versioningEnabled:i,searchVersions:t,setSearchVersion:(e,t)=>r((r=>({...r,[e]:t})))}}(),[T,I]=(0,d.K)(),q={items:[],query:null,totalResults:null,totalPages:null,lastPage:null,hasMore:null,loading:null},[V,L]=(0,n.useReducer)(((e,t)=>{switch(t.type){case"reset":return q;case"loading":return{...e,loading:!0};case"update":return T!==t.value.query?e:{...t.value,items:0===t.value.lastPage?t.value.items:e.items.concat(t.value.items)};case"advance":{const t=e.totalPages>e.lastPage+1;return{...e,lastPage:t?e.lastPage+1:e.lastPage,hasMore:t}}default:return e}}),q),B=u()(t,r),z=s()(B,a,{hitsPerPage:15,advancedSyntax:!0,disjunctiveFacets:["language","docusaurus_tag"]});z.on("result",(e=>{let{results:{query:t,hits:r,page:n,nbHits:i,nbPages:a}}=e;if(""===t||!Array.isArray(r))return void L({type:"reset"});const s=e=>e.replace(/algolia-docsearch-suggestion--highlight/g,"search-result-match"),u=r.map((e=>{let{url:t,_highlightResult:{hierarchy:r},_snippetResult:n={}}=e;const i=Object.keys(r).map((e=>s(r[e].value)));return{title:i.pop(),url:c(t),summary:n.content?s(n.content.value)+"...":"",breadcrumbs:i}}));L({type:"update",value:{items:u,query:t,totalResults:i,totalPages:a,lastPage:n,hasMore:a>n+1,loading:!1}})}));const[M,J]=(0,n.useState)(null),W=(0,n.useRef)(0),U=(0,n.useRef)(o.default.canUseIntersectionObserver&&new IntersectionObserver((e=>{const{isIntersecting:t,boundingClientRect:{y:r}}=e[0];t&&W.current>r&&L({type:"advance"}),W.current=r}),{threshold:1})),K=()=>T?(0,y.translate)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:T}):(0,y.translate)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"}),X=(0,p.zX)((function(t){void 0===t&&(t=0),z.addDisjunctiveFacetRefinement("docusaurus_tag","default"),z.addDisjunctiveFacetRefinement("language",e),Object.entries(_.searchVersions).forEach((e=>{let[t,r]=e;z.addDisjunctiveFacetRefinement("docusaurus_tag","docs-"+t+"-"+r)})),z.setQuery(T).setPage(t).search()}));return(0,n.useEffect)((()=>{if(!M)return;const e=U.current;return e?(e.observe(M),()=>e.unobserve(M)):()=>!0}),[M]),(0,n.useEffect)((()=>{L({type:"reset"}),T&&(L({type:"loading"}),setTimeout((()=>{X()}),300))}),[T,_.searchVersions,X]),(0,n.useEffect)((()=>{V.lastPage&&0!==V.lastPage&&X(V.lastPage)}),[X,V.lastPage]),n.createElement(P.Z,null,n.createElement(h.Z,null,n.createElement("title",null,(0,g.p)(K())),n.createElement("meta",{property:"robots",content:"noindex, follow"})),n.createElement("div",{className:"container margin-vert--lg"},n.createElement("h1",null,K()),n.createElement("form",{className:"row",onSubmit:e=>e.preventDefault()},n.createElement("div",{className:(0,i.default)("col",S,{"col--9":_.versioningEnabled,"col--12":!_.versioningEnabled})},n.createElement("input",{type:"search",name:"q",className:j,placeholder:(0,y.translate)({id:"theme.SearchPage.inputPlaceholder",message:"Type your search here",description:"The placeholder for search page input"}),"aria-label":(0,y.translate)({id:"theme.SearchPage.inputLabel",message:"Search",description:"The ARIA label for search page input"}),onChange:e=>I(e.target.value),value:T,autoComplete:"off",autoFocus:!0})),_.versioningEnabled&&n.createElement(D,{docsSearchVersionsHelpers:_})),n.createElement("div",{className:"row"},n.createElement("div",{className:(0,i.default)("col","col--8",E)},!!V.totalResults&&v(V.totalResults)),n.createElement("div",{className:(0,i.default)("col","col--4","text--right",Q)},n.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.algolia.com/","aria-label":(0,y.translate)({id:"theme.SearchPage.algoliaLabel",message:"Search by Algolia",description:"The ARIA label for Algolia mention"})},n.createElement("svg",{viewBox:"0 0 168 24",className:x},n.createElement("g",{fill:"none"},n.createElement("path",{className:w,d:"M120.925 18.804c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17zM6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z"}),n.createElement("path",{fill:"#5468FF",d:"M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938z"}),n.createElement("path",{fill:"white",d:"M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36"})))))),V.items.length>0?n.createElement("main",null,V.items.map(((e,t)=>{let{title:r,url:a,summary:s,breadcrumbs:c}=e;return n.createElement("article",{key:t,className:O},n.createElement("h2",{className:N},n.createElement(f.default,{to:a,dangerouslySetInnerHTML:{__html:r}})),c.length>0&&n.createElement("nav",{"aria-label":"breadcrumbs"},n.createElement("ul",{className:(0,i.default)("breadcrumbs",A)},c.map(((e,t)=>n.createElement("li",{key:t,className:"breadcrumbs__item",dangerouslySetInnerHTML:{__html:e}}))))),s&&n.createElement("p",{className:H,dangerouslySetInnerHTML:{__html:s}}))}))):[T&&!V.loading&&n.createElement("p",{key:"no-results"},n.createElement(y.default,{id:"theme.SearchPage.noResultsText",description:"The paragraph for empty search result"},"No results were found")),!!V.loading&&n.createElement("div",{key:"spinner",className:C})],V.hasMore&&n.createElement("div",{className:k,ref:J},n.createElement(y.default,{id:"theme.SearchPage.fetchingNewResults",description:"The paragraph for fetching new search results"},"Fetching new results..."))))}function q(){return n.createElement(v.FG,{className:"search-page-wrapper"},n.createElement(I,null))}}}]); \ No newline at end of file diff --git a/assets/js/9172.7f698d9b.js.LICENSE.txt b/assets/js/9172.7f698d9b.js.LICENSE.txt new file mode 100644 index 00000000000..1d9697b998c --- /dev/null +++ b/assets/js/9172.7f698d9b.js.LICENSE.txt @@ -0,0 +1 @@ +/*! algoliasearch-lite.umd.js | 4.14.2 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */ diff --git a/assets/js/9206.16398572.js b/assets/js/9206.16398572.js new file mode 100644 index 00000000000..e2d6c40ab73 --- /dev/null +++ b/assets/js/9206.16398572.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9206],{89206:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var a=t(87462),o=(t(67294),t(3905));t(45475);const r={title:"Ref Functions",slug:"/react/refs"},s=void 0,i={unversionedId:"react/refs",id:"react/refs",title:"Ref Functions",description:"React allows you to grab the instance of an element or component with refs.",source:"@site/docs/react/refs.md",sourceDirName:"react",slug:"/react/refs",permalink:"/en/docs/react/refs",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/refs.md",tags:[],version:"current",frontMatter:{title:"Ref Functions",slug:"/react/refs"},sidebar:"docsSidebar",previous:{title:"Event Handling",permalink:"/en/docs/react/events"},next:{title:"Higher-order Components",permalink:"/en/docs/react/hoc"}},l={},c=[{value:"Refs in Functional Components",id:"toc-refs-in-functional-components",level:2},{value:"Refs in Class Components",id:"toc-refs-in-class-components",level:2}],m={toc:c};function u(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"React allows you to grab the instance of an element or component with ",(0,o.mdx)("a",{parentName:"p",href:"https://react.dev/learn/manipulating-the-dom-with-refs"},"refs"),"."),(0,o.mdx)("h2",{id:"toc-refs-in-functional-components"},"Refs in Functional Components"),(0,o.mdx)("p",null,"Inside a functional component, refs are accessed with the ",(0,o.mdx)("inlineCode",{parentName:"p"},"useRef")," hook:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import {useRef} from 'react';\nimport * as React from 'react';\n\nfunction MyComponent() {\n const buttonRef = useRef<null | HTMLButtonElement>(null);\n (buttonRef: {current: null | HTMLButtonElement}); // useRef wraps the ref value in an object\n return <button ref={buttonRef}>Toggle</button>;\n}\n")),(0,o.mdx)("p",null,"Note that ",(0,o.mdx)("inlineCode",{parentName:"p"},"useRef")," wraps the ref value in an object with a ",(0,o.mdx)("inlineCode",{parentName:"p"},"current")," property. This must be\nreflected in the type of anything accepting the ref value."),(0,o.mdx)("h2",{id:"toc-refs-in-class-components"},"Refs in Class Components"),(0,o.mdx)("p",null,"Refs in class components are similar to function components. To create one, add a\nproperty to your class and assign the result of ",(0,o.mdx)("inlineCode",{parentName:"p"},"React.createRef")," to it."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import * as React from 'react';\n\nclass MyComponent extends React.Component<{}> {\n // The `null` here is important because you may not always have the instance.\n buttonRef: {current: null | HTMLButtonElement};\n\n constructor() {\n super();\n this.buttonRef = React.createRef<HTMLButtonElement>();\n }\n\n render(): React.Node {\n return <button ref={this.buttonRef}>Toggle</button>;\n }\n}\n")),(0,o.mdx)("p",null,"One notable difference between ",(0,o.mdx)("inlineCode",{parentName:"p"},"useRef")," and ",(0,o.mdx)("inlineCode",{parentName:"p"},"createRef")," is that ",(0,o.mdx)("inlineCode",{parentName:"p"},"createRef")," does not accept\na default value. It will initialize the ref with the value ",(0,o.mdx)("inlineCode",{parentName:"p"},"null"),". This is because\nDOM elements will not exist until the first render of ",(0,o.mdx)("inlineCode",{parentName:"p"},"MyComponent")," and so a ",(0,o.mdx)("inlineCode",{parentName:"p"},"null")," value\nmust be used."),(0,o.mdx)("p",null,"Again, note that the ref value is wrapped in an object with a ",(0,o.mdx)("inlineCode",{parentName:"p"},"current")," property."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9225.872a1216.js b/assets/js/9225.872a1216.js new file mode 100644 index 00000000000..363dd95b471 --- /dev/null +++ b/assets/js/9225.872a1216.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9225],{79225:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>a,metadata:()=>r,toc:()=>p});var i=t(87462),o=(t(67294),t(3905));t(45475);const a={title:"Intersections",slug:"/types/intersections"},s=void 0,r={unversionedId:"types/intersections",id:"types/intersections",title:"Intersections",description:"Sometimes it is useful to create a type which is all of a set of other",source:"@site/docs/types/intersections.md",sourceDirName:"types",slug:"/types/intersections",permalink:"/en/docs/types/intersections",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/intersections.md",tags:[],version:"current",frontMatter:{title:"Intersections",slug:"/types/intersections"},sidebar:"docsSidebar",previous:{title:"Unions",permalink:"/en/docs/types/unions"},next:{title:"Indexed Access Types",permalink:"/en/docs/types/indexed-access"}},l={},p=[{value:"Intersection type syntax",id:"toc-intersection-type-syntax",level:2},{value:"Intersection types require all in, but one out",id:"intersection-types-require-all-in-but-one-out",level:2},{value:"Intersection of function types",id:"toc-intersection-of-function-types",level:2},{value:"Calling an overloaded function",id:"calling-an-overloaded-function",level:3},{value:"Declaring overloaded functions",id:"declaring-overloaded-functions",level:3},{value:"Intersections of object types",id:"toc-intersections-of-object-types",level:2},{value:"Impossible intersection types",id:"toc-impossible-intersection-types",level:2}],c={toc:p};function m(e){let{components:n,...t}=e;return(0,o.mdx)("wrapper",(0,i.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,o.mdx)("p",null,"Sometimes it is useful to create a type which is ",(0,o.mdx)("strong",{parentName:"p"},(0,o.mdx)("em",{parentName:"strong"},"all of"))," a set of other\ntypes. For example, you might want to write a function which accepts a value that\nimplements two different ",(0,o.mdx)("a",{parentName:"p",href:"../interfaces"},"interfaces"),":"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":20,"startColumn":6,"endLine":20,"endColumn":16,"description":"Cannot call `func` with object literal bound to `value` because property `serialize` is missing in object literal [1] but exists in `Serializable` [2]. [prop-missing]"}]','[{"startLine":20,"startColumn":6,"endLine":20,"endColumn":16,"description":"Cannot':!0,call:!0,"`func`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`value`":!0,because:!0,property:!0,"`serialize`":!0,is:!0,missing:!0,in:!0,"[1]":!0,but:!0,exists:!0,"`Serializable`":!0,"[2].":!0,'[prop-missing]"}]':!0},"interface Serializable {\n serialize(): string;\n}\n\ninterface HasLength {\n length: number;\n}\n\nfunction func(value: Serializable & HasLength) {\n // ...\n}\n\nfunc({\n length: 3,\n serialize() {\n return '3';\n },\n}); // Works\n\nfunc({length: 3}); // Error! Doesn't implement both interfaces\n")),(0,o.mdx)("h2",{id:"toc-intersection-type-syntax"},"Intersection type syntax"),(0,o.mdx)("p",null,"Intersection types are any number of types which are joined by an ampersand ",(0,o.mdx)("inlineCode",{parentName:"p"},"&"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"Type1 & Type2 & ... & TypeN\n")),(0,o.mdx)("p",null,"You may also add a leading ampersand which is useful when breaking intersection\ntypes onto multiple lines."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"type Foo =\n & Type1\n & Type2\n & ...\n & TypeN\n")),(0,o.mdx)("p",null,"Each of the members of a intersection type can be any type, even another\nintersection type."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-js"},"type Foo = Type1 & Type2;\ntype Bar = Type3 & Type4;\n\ntype Baz = Foo & Bar;\n")),(0,o.mdx)("h2",{id:"intersection-types-require-all-in-but-one-out"},"Intersection types require all in, but one out"),(0,o.mdx)("p",null,"Intersection types are the opposite of union types. When calling a function\nthat accepts an intersection type, we must pass in ",(0,o.mdx)("strong",{parentName:"p"},(0,o.mdx)("em",{parentName:"strong"},"all of those types")),". But\ninside of our function we only have to treat it as ",(0,o.mdx)("strong",{parentName:"p"},(0,o.mdx)("em",{parentName:"strong"},"any one of those\ntypes")),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type A = {a: number, ...};\ntype B = {b: boolean, ...};\ntype C = {c: string, ...};\n\nfunction func(value: A & B & C) {\n const a: A = value;\n const b: B = value;\n const c: C = value;\n}\n")),(0,o.mdx)("p",null,"Even as we treat our value as just one of the types, we do not get an error\nbecause it satisfies all of them."),(0,o.mdx)("h2",{id:"toc-intersection-of-function-types"},"Intersection of function types"),(0,o.mdx)("p",null,"A common use of intersection types is to express functions that return\ndifferent results based on the input we pass in. Suppose for example\nthat we want to write the type of a function that:"),(0,o.mdx)("ul",null,(0,o.mdx)("li",{parentName:"ul"},"returns a string, when we pass in the value ",(0,o.mdx)("inlineCode",{parentName:"li"},'"string"'),","),(0,o.mdx)("li",{parentName:"ul"},"returns a number, when we pass in the value ",(0,o.mdx)("inlineCode",{parentName:"li"},'"number"'),", and"),(0,o.mdx)("li",{parentName:"ul"},"returns any possible type (",(0,o.mdx)("inlineCode",{parentName:"li"},"mixed"),"), when we pass in any other string.")),(0,o.mdx)("p",null,"The type of this function will be"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type Fn =\n & ((x: "string") => string)\n & ((x: "number") => number)\n & ((x: string) => mixed);\n')),(0,o.mdx)("p",null,"Each line in the above definition is called an ",(0,o.mdx)("em",{parentName:"p"},"overload"),", and we say that functions\nof type ",(0,o.mdx)("inlineCode",{parentName:"p"},"Fn")," are ",(0,o.mdx)("em",{parentName:"p"},"overloaded"),"."),(0,o.mdx)("p",null,'Note the use of parentheses around the arrow types. These are necessary to override\nthe precedence of the "arrow" constructor over the intersection.'),(0,o.mdx)("h3",{id:"calling-an-overloaded-function"},"Calling an overloaded function"),(0,o.mdx)("p",null,"Using the above definition we can declare a function ",(0,o.mdx)("inlineCode",{parentName:"p"},"fn")," that has the following behavior:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":20,"endLine":8,"endColumn":32,"description":"Cannot assign `fn(...)` to `b` because mixed [1] is incompatible with boolean [2]. [incompatible-type]"}]','[{"startLine":8,"startColumn":20,"endLine":8,"endColumn":32,"description":"Cannot':!0,assign:!0,"`fn(...)`":!0,to:!0,"`b`":!0,because:!0,mixed:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-type]"}]':!0},'declare const fn:\n & ((x: "string") => string)\n & ((x: "number") => number)\n & ((x: string) => mixed);\n\nconst s: string = fn("string"); // Works\nconst n: number = fn("number"); // Works\nconst b: boolean = fn("boolean"); // Error!\n')),(0,o.mdx)("p",null,"Flow achieves this behavior by matching the type of the argument to the ",(0,o.mdx)("em",{parentName:"p"},"first"),"\noverload with a compatible parameter type. Notice for example that the argument\n",(0,o.mdx)("inlineCode",{parentName:"p"},'"string"')," matches both the first and the last overload. Flow will\njust pick the first one. If no overload matches, Flow will raise an error at the\ncall site."),(0,o.mdx)("h3",{id:"declaring-overloaded-functions"},"Declaring overloaded functions"),(0,o.mdx)("p",null,"An equivalent way to declare the same function ",(0,o.mdx)("inlineCode",{parentName:"p"},"fn"),' would be by using consecutive\n"declare function" statements'),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'declare function fn(x: "string"): string;\ndeclare function fn(x: "number"): number;\ndeclare function fn(x: string): mixed;\n')),(0,o.mdx)("p",null,"A limitation in Flow is that it can't ",(0,o.mdx)("em",{parentName:"p"},"check")," the body of a function against\nan intersection type. In other words, if we provided the following implementation\nfor ",(0,o.mdx)("inlineCode",{parentName:"p"},"fn")," right after the above declarations"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'function fn(x: mixed) {\n if (x === "string") { return ""; }\n else if (x === "number") { return 0; }\n else { return null; }\n}\n')),(0,o.mdx)("p",null,"Flow silently accepts it (and uses ",(0,o.mdx)("inlineCode",{parentName:"p"},"Fn")," as the inferred type), but does not check\nthe implementation against this signature. This makes this kind of declaration\na better suited candidate for ",(0,o.mdx)("a",{parentName:"p",href:"../../libdefs/"},"library definitions"),", where implementations are omitted."),(0,o.mdx)("h2",{id:"toc-intersections-of-object-types"},"Intersections of object types"),(0,o.mdx)("p",null,"When you create an intersection of ",(0,o.mdx)("a",{parentName:"p",href:"../objects/#exact-and-inexact-object-types"},"inexact object types"),",\nyou are saying that your object satisfies each member of the intersection."),(0,o.mdx)("p",null,"For example, when you create an intersection of two inexact objects with different sets\nof properties, it will result in an object with all of the properties."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type One = {foo: number, ...};\ntype Two = {bar: boolean, ...};\n\ntype Both = One & Two;\n\nconst value: Both = {\n foo: 1,\n bar: true\n};\n")),(0,o.mdx)("p",null,"When you have properties that overlap by having the same name, Flow follows the same\nstrategy as with overloaded functions: it will return the type of the first property\nthat matches this name."),(0,o.mdx)("p",null,"For example, if you merge two inexact objects with a property named ",(0,o.mdx)("inlineCode",{parentName:"p"},"prop"),", first with a\ntype of ",(0,o.mdx)("inlineCode",{parentName:"p"},"number")," and second with a type of ",(0,o.mdx)("inlineCode",{parentName:"p"},"boolean"),", accessing ",(0,o.mdx)("inlineCode",{parentName:"p"},"prop")," will return\n",(0,o.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":24,"endLine":7,"endColumn":32,"description":"Cannot assign `both.prop` to `prop2` because number [1] is incompatible with boolean [2]. [incompatible-type]"}]','[{"startLine":7,"startColumn":24,"endLine":7,"endColumn":32,"description":"Cannot':!0,assign:!0,"`both.prop`":!0,to:!0,"`prop2`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,boolean:!0,"[2].":!0,'[incompatible-type]"}]':!0},"type One = {prop: number, ...};\ntype Two = {prop: boolean, ...};\n\ndeclare const both: One & Two;\n\nconst prop1: number = both.prop; // Works\nconst prop2: boolean = both.prop; // Error!\n")),(0,o.mdx)("p",null,"To combine exact object types, you should use ",(0,o.mdx)("a",{parentName:"p",href:"../objects/#object-type-spread"},"object type spread")," instead:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type One = {foo: number};\ntype Two = {bar: boolean};\n\ntype Both = {\n ...One,\n ...Two,\n};\n\nconst value: Both = {\n foo: 1,\n bar: true\n};\n")),(0,o.mdx)("p",null,(0,o.mdx)("strong",{parentName:"p"},"Note:")," When it comes to objects, the order-specific way in which intersection\ntypes are implemented in Flow, may often seem counter-intuitive from a set theoretic\npoint of view. In sets, the operands of intersection can change order arbitrarily\n(commutative property). For this reason, it is a better practice to define this\nkind of operation over object types using object type spread where the ordering\nsemantics are better specified."),(0,o.mdx)("h2",{id:"toc-impossible-intersection-types"},"Impossible intersection types"),(0,o.mdx)("p",null,"Using intersection types, it is possible to create types which are impossible\nto create at runtime. Intersection types will allow you to combine any set of\ntypes, even ones that conflict with one another."),(0,o.mdx)("p",null,"For example, you can create an intersection of a number and a string."),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":6,"endLine":5,"endColumn":9,"description":"Cannot call `func` with `3.14` bound to `value` because number [1] is incompatible with string [2]. [incompatible-call]"},{"startLine":6,"startColumn":6,"endLine":6,"endColumn":9,"description":"Cannot call `func` with `\'hi\'` bound to `value` because string [1] is incompatible with number [2]. [incompatible-call]"}]','[{"startLine":5,"startColumn":6,"endLine":5,"endColumn":9,"description":"Cannot':!0,call:!0,"`func`":!0,with:!0,"`3.14`":!0,bound:!0,to:!0,"`value`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,string:!0,"[2].":!0,'[incompatible-call]"},{"startLine":6,"startColumn":6,"endLine":6,"endColumn":9,"description":"Cannot':!0,"`'hi'`":!0,'[incompatible-call]"}]':!0},"type NumberAndString = number & string;\n\nfunction func(value: NumberAndString) { /* ... */ }\n\nfunc(3.14); // Error!\nfunc('hi'); // Error!\n")),(0,o.mdx)("p",null,"But you can't possibly create a value which is both a ",(0,o.mdx)("em",{parentName:"p"},"number and a string"),",\nbut you can create a type for it. There's no practical use for creating types\nlike this, but it's a side effect of how intersection types work."),(0,o.mdx)("p",null,"An accidental way to create an impossible type is to create an intersection of\n",(0,o.mdx)("a",{parentName:"p",href:"../objects/#exact-and-inexact-object-types"},"exact object types"),". For example:"),(0,o.mdx)("pre",null,(0,o.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":6,"endLine":3,"endColumn":11,"description":"Cannot call `func` with object literal bound to `obj` because property `a` is missing in object type [1] but exists in object literal [2]. [prop-missing]"},{"startLine":3,"startColumn":6,"endLine":3,"endColumn":11,"description":"Cannot call `func` with object literal bound to `obj` because property `b` is missing in object literal [1] but exists in object type [2]. [prop-missing]"},{"startLine":4,"startColumn":6,"endLine":4,"endColumn":14,"description":"Cannot call `func` with object literal bound to `obj` because property `a` is missing in object literal [1] but exists in object type [2]. [prop-missing]"},{"startLine":4,"startColumn":6,"endLine":4,"endColumn":14,"description":"Cannot call `func` with object literal bound to `obj` because property `b` is missing in object type [1] but exists in object literal [2]. [prop-missing]"},{"startLine":5,"startColumn":6,"endLine":5,"endColumn":20,"description":"Cannot call `func` with object literal bound to `obj` because property `a` is missing in object type [1] but exists in object literal [2]. [prop-missing]"},{"startLine":5,"startColumn":6,"endLine":5,"endColumn":20,"description":"Cannot call `func` with object literal bound to `obj` because property `b` is missing in object type [1] but exists in object literal [2]. [prop-missing]"}]','[{"startLine":3,"startColumn":6,"endLine":3,"endColumn":11,"description":"Cannot':!0,call:!0,"`func`":!0,with:!0,object:!0,literal:!0,bound:!0,to:!0,"`obj`":!0,because:!0,property:!0,"`a`":!0,is:!0,missing:!0,in:!0,type:!0,"[1]":!0,but:!0,exists:!0,"[2].":!0,'[prop-missing]"},{"startLine":3,"startColumn":6,"endLine":3,"endColumn":11,"description":"Cannot':!0,"`b`":!0,'[prop-missing]"},{"startLine":4,"startColumn":6,"endLine":4,"endColumn":14,"description":"Cannot':!0,'[prop-missing]"},{"startLine":5,"startColumn":6,"endLine":5,"endColumn":20,"description":"Cannot':!0,'[prop-missing]"}]':!0},"function func(obj: {a: number} & {b: string}) { /* ... */ }\n\nfunc({a: 1}); // Error!\nfunc({b: 'hi'}); // Error!\nfunc({a: 1, b: 'hi'}); // Error!\n")),(0,o.mdx)("p",null,"It's not possible for an object to have exactly the property ",(0,o.mdx)("inlineCode",{parentName:"p"},"a")," and no other\nproperties, and simultaneously exactly the property ",(0,o.mdx)("inlineCode",{parentName:"p"},"b")," and no other properties."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9277.9908b298.js b/assets/js/9277.9908b298.js new file mode 100644 index 00000000000..df356f3ed7f --- /dev/null +++ b/assets/js/9277.9908b298.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9277],{69277:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>p,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var o=t(87462),r=(t(67294),t(3905));t(45475);const a={title:"Higher-order Components",slug:"/react/hoc"},p=void 0,i={unversionedId:"react/hoc",id:"react/hoc",title:"Higher-order Components",description:"A popular pattern in React is the higher-order component pattern, so it's",source:"@site/docs/react/hoc.md",sourceDirName:"react",slug:"/react/hoc",permalink:"/en/docs/react/hoc",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/react/hoc.md",tags:[],version:"current",frontMatter:{title:"Higher-order Components",slug:"/react/hoc"},sidebar:"docsSidebar",previous:{title:"Ref Functions",permalink:"/en/docs/react/refs"},next:{title:"Type Reference",permalink:"/en/docs/react/types"}},s={},c=[{value:"The Trivial HOC",id:"toc-the-trivial-hoc",level:3},{value:"Injecting Props",id:"toc-injecting-props",level:3},{value:"Preserving the Instance Type of a Component",id:"toc-preserving-the-instance-type-of-a-component",level:3},{value:"Exporting Wrapped Components",id:"toc-exporting-wrapped-components",level:3}],m={toc:c};function d(e){let{components:n,...t}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"A popular pattern in React is the ",(0,r.mdx)("a",{parentName:"p",href:"https://facebook.github.io/react/docs/higher-order-components.html"},"higher-order component pattern"),", so it's\nimportant that we can provide effective types for higher-order components in\nFlow. If you don't already know what a higher-order component is then make sure\nto read the ",(0,r.mdx)("a",{parentName:"p",href:"https://facebook.github.io/react/docs/higher-order-components.html"},"React documentation on higher-order components")," before\ncontinuing."),(0,r.mdx)("p",null,"You can make use of the ",(0,r.mdx)("a",{parentName:"p",href:"../types/#toc-react-abstractcomponent"},(0,r.mdx)("inlineCode",{parentName:"a"},"React.AbstractComponent"))," type to annotate your higher order components."),(0,r.mdx)("h3",{id:"toc-the-trivial-hoc"},"The Trivial HOC"),(0,r.mdx)("p",null,"Let's start with the simplest HOC:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import * as React from 'react';\n\nfunction trivialHOC<Config: {...}>(\n Component: React.AbstractComponent<Config>\n): React.AbstractComponent<Config> {\n return Component;\n}\n")),(0,r.mdx)("p",null,"This is a basic template for what your HOCs might look like. At runtime, this HOC doesn't\ndo anything at all. Let's take a look at some more complex examples."),(0,r.mdx)("h3",{id:"toc-injecting-props"},"Injecting Props"),(0,r.mdx)("p",null,"A common use case for higher-order components is to inject a prop.\nThe HOC automatically sets a prop and returns a component which no longer requires\nthat prop. For example, consider a navigation prop. How would one type this?"),(0,r.mdx)("p",null,"To remove a prop from the config, we can take a component that includes the\nprop and return a component that does not. It's best to construct these\ntypes using object type spread."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":27,"startColumn":2,"endLine":27,"endColumn":20,"description":"Cannot create `MyEnhancedComponent` element because property `b` is missing in props [1] but exists in object type [2]. [prop-missing]"}]','[{"startLine":27,"startColumn":2,"endLine":27,"endColumn":20,"description":"Cannot':!0,create:!0,"`MyEnhancedComponent`":!0,element:!0,because:!0,property:!0,"`b`":!0,is:!0,missing:!0,in:!0,props:!0,"[1]":!0,but:!0,exists:!0,object:!0,type:!0,"[2].":!0,'[prop-missing]"}]':!0},"import * as React from 'react';\n\ntype InjectedProps = {foo: number}\n\nfunction injectProp<Config>(\n Component: React.AbstractComponent<{...Config, ...InjectedProps}>\n): React.AbstractComponent<Config> {\n return function WrapperComponent(\n props: Config,\n ) {\n return <Component {...props} foo={42} />;\n };\n}\n\nfunction MyComponent(props: {\n a: number,\n b: number,\n ...InjectedProps,\n}): React.Node {}\n\nconst MyEnhancedComponent = injectProp(MyComponent);\n\n// We don't need to pass in `foo` even though `MyComponent` requires it:\n<MyEnhancedComponent a={1} b={2} />; // OK\n\n// We still require `a` and `b`:\n<MyEnhancedComponent a={1} />; // ERROR\n")),(0,r.mdx)("h3",{id:"toc-preserving-the-instance-type-of-a-component"},"Preserving the Instance Type of a Component"),(0,r.mdx)("p",null,"Recall that the instance type of a function component is ",(0,r.mdx)("inlineCode",{parentName:"p"},"void"),". Our example\nabove wraps a component in a function, so the returned component has the instance\ntype ",(0,r.mdx)("inlineCode",{parentName:"p"},"void"),"."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":29,"startColumn":27,"endLine":29,"endColumn":29,"description":"Cannot create `MyEnhancedComponent` element because in property `ref`: [incompatible-type] Either mixed [1] is incompatible with `MyComponent` [2] in property `current`. Or a call signature declaring the expected parameter / return type is missing in object type [3] but exists in function type [4]."}]','[{"startLine":29,"startColumn":27,"endLine":29,"endColumn":29,"description":"Cannot':!0,create:!0,"`MyEnhancedComponent`":!0,element:!0,because:!0,in:!0,property:!0,"`ref`:":!0,"[incompatible-type]":!0,Either:!0,mixed:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"`MyComponent`":!0,"[2]":!0,"`current`.":!0,Or:!0,a:!0,call:!0,signature:!0,declaring:!0,the:!0,expected:!0,parameter:!0,"/":!0,return:!0,type:!0,missing:!0,object:!0,"[3]":!0,but:!0,exists:!0,function:!0,'[4]."}]':!0},"import * as React from 'react';\n\ntype InjectedProps = {foo: number}\n\nfunction injectProp<Config>(\n Component: React.AbstractComponent<{...Config, ...InjectedProps}>\n): React.AbstractComponent<Config> {\n return function WrapperComponent(\n props: Config,\n ) {\n return <Component {...props} foo={42} />;\n };\n}\n\n// A class component in this example\nclass MyComponent extends React.Component<{\n a: number,\n b: number,\n ...InjectedProps,\n}> {}\n\nconst MyEnhancedComponent = injectProp(MyComponent);\n\n// If we create a ref object for the component, it will never be assigned\n// an instance of MyComponent!\nconst ref = React.createRef<MyComponent>();\n\n// Error, mixed is incompatible with MyComponent.\n<MyEnhancedComponent ref={ref} a={1} b={2} />;\n")),(0,r.mdx)("p",null,"We get this error message because ",(0,r.mdx)("inlineCode",{parentName:"p"},"React.AbstractComponent<Config>")," doesn't set the ",(0,r.mdx)("inlineCode",{parentName:"p"},"Instance")," type\nparameter, so it is automatically set to ",(0,r.mdx)("inlineCode",{parentName:"p"},"mixed"),". If we wanted to preserve the instance type\nof the component, we can use ",(0,r.mdx)("a",{parentName:"p",href:"https://reactjs.org/docs/forwarding-refs.html"},(0,r.mdx)("inlineCode",{parentName:"a"},"React.forwardRef")),":"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import * as React from 'react';\n\ntype InjectedProps = {foo: number}\n\nfunction injectAndPreserveInstance<Config, Instance>(\n Component: React.AbstractComponent<{...Config, ...InjectedProps}, Instance>\n): React.AbstractComponent<Config, Instance> {\n return React.forwardRef<Config, Instance>((props, ref) =>\n <Component ref={ref} foo={3} {...props} />\n );\n}\n\nclass MyComponent extends React.Component<{\n a: number,\n b: number,\n ...InjectedProps,\n}> {}\n\nconst MyEnhancedComponent = injectAndPreserveInstance(MyComponent);\n\nconst ref = React.createRef<MyComponent>();\n\n// All good! The ref is forwarded.\n<MyEnhancedComponent ref={ref} a={1} b={2} />;\n")),(0,r.mdx)("h3",{id:"toc-exporting-wrapped-components"},"Exporting Wrapped Components"),(0,r.mdx)("p",null,"If you try to export a wrapped component, chances are that you'll run into a missing annotation error:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":13,"startColumn":36,"endLine":13,"endColumn":58,"description":"Cannot build a typed interface for this module. You should annotate the exports of this module with types. Cannot determine the type of this call expression. Please provide an annotation, e.g., by adding a type cast around this expression. [signature-verification-failure]"}]','[{"startLine":13,"startColumn":36,"endLine":13,"endColumn":58,"description":"Cannot':!0,build:!0,a:!0,typed:!0,interface:!0,for:!0,this:!0,"module.":!0,You:!0,should:!0,annotate:!0,the:!0,exports:!0,of:!0,module:!0,with:!0,"types.":!0,Cannot:!0,determine:!0,type:!0,call:!0,"expression.":!0,Please:!0,provide:!0,an:!0,"annotation,":!0,"e.g.,":!0,by:!0,adding:!0,cast:!0,around:!0,'[signature-verification-failure]"}]':!0},"import * as React from 'react';\n\nfunction trivialHOC<Config: {...}>(\n Component: React.AbstractComponent<Config>,\n): React.AbstractComponent<Config> {\n return Component;\n}\n\ntype Props = $ReadOnly<{bar: number, foo?: number}>;\n\nfunction MyComponent({bar, foo = 3}: Props): React.Node {}\n\nexport const MyEnhancedComponent = trivialHOC(MyComponent); // ERROR\n")),(0,r.mdx)("p",null,"You can add an annotation to your exported component using ",(0,r.mdx)("inlineCode",{parentName:"p"},"React.AbstractComponent"),":"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"import * as React from 'react';\n\nfunction trivialHOC<Config: {...}>(\n Component: React.AbstractComponent<Config>,\n): React.AbstractComponent<Config> {\n return Component;\n}\n\ntype Props = $ReadOnly<{bar: number, foo?: number}>;\n\nfunction MyComponent({bar, foo = 3}: Props): React.Node {}\n\nexport const MyEnhancedComponent: React.AbstractComponent<Props> = trivialHOC(MyComponent); // OK\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9307.228f79a3.js b/assets/js/9307.228f79a3.js new file mode 100644 index 00000000000..2537b5396d8 --- /dev/null +++ b/assets/js/9307.228f79a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9307],{19307:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>r,contentTitle:()=>c,default:()=>d,frontMatter:()=>l,metadata:()=>u,toc:()=>i});var o=a(87462),n=(a(67294),a(3905));const l={title:"Exact object types by default, by default","short-title":"Exact object types by default, by default",author:"George Zahariev","medium-link":"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},c=void 0,u={permalink:"/blog/2023/02/16/Exact-object-types-by-default-by-default",source:"@site/blog/2023-02-16-Exact-object-types-by-default-by-default.md",title:"Exact object types by default, by default",description:"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.",date:"2023-02-16T00:00:00.000Z",formattedDate:"February 16, 2023",tags:[],hasTruncateMarker:!1,authors:[{name:"George Zahariev"}],frontMatter:{title:"Exact object types by default, by default","short-title":"Exact object types by default, by default",author:"George Zahariev","medium-link":"https://medium.com/flow-type/exact-object-types-by-default-by-default-cc559af6f69"},prevItem:{title:"Announcing Partial & Required Flow utility types + catch annotations",permalink:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations"},nextItem:{title:"Local Type Inference for Flow",permalink:"/blog/2023/01/17/Local-Type-Inference"}},r={authorsImageUrls:[void 0]},i=[],s={toc:i};function d(e){let{components:t,...a}=e;return(0,n.mdx)("wrapper",(0,o.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.mdx)("p",null,"We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/931.d69b8a0f.js b/assets/js/931.d69b8a0f.js new file mode 100644 index 00000000000..e694fdfcc51 --- /dev/null +++ b/assets/js/931.d69b8a0f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[931],{40931:(e,s,c)=>{c.r(s),c.d(s,{default:()=>f});const f=c.p+"cd3c4b260f85aac6f600f3c017046ef9.wasm"}}]); \ No newline at end of file diff --git a/assets/js/9337.6c20da2f.js b/assets/js/9337.6c20da2f.js new file mode 100644 index 00000000000..8308c014224 --- /dev/null +++ b/assets/js/9337.6c20da2f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9337],{89337:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>u,toc:()=>r});var a=t(87462),m=(t(67294),t(3905));t(45475);const s={title:"Defining enums",slug:"/enums/defining-enums"},i=void 0,u={unversionedId:"enums/defining-enums",id:"enums/defining-enums",title:"Defining enums",description:"Learn how to define a Flow Enum. Looking for a quick overview? Check out the Quickstart Guide.",source:"@site/docs/enums/defining-enums.md",sourceDirName:"enums",slug:"/enums/defining-enums",permalink:"/en/docs/enums/defining-enums",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/enums/defining-enums.md",tags:[],version:"current",frontMatter:{title:"Defining enums",slug:"/enums/defining-enums"},sidebar:"docsSidebar",previous:{title:"Enabling enums in your project",permalink:"/en/docs/enums/enabling-enums"},next:{title:"Using enums",permalink:"/en/docs/enums/using-enums"}},o={},r=[{value:"Consistent member type",id:"toc-consistent-member-type",level:4},{value:"Member name starting character",id:"toc-member-name-starting-character",level:4},{value:"Unique member names",id:"toc-unique-member-names",level:4},{value:"Literal member values",id:"toc-literal-member-values",level:4},{value:"Unique member values",id:"toc-unique-member-values",level:4},{value:"Fixed at declaration",id:"toc-fixed-at-declaration",level:4},{value:"String enums",id:"toc-string-enums",level:2},{value:"Number enums",id:"toc-number-enums",level:2},{value:"Boolean enums",id:"toc-boolean-enums",level:2},{value:"Symbol enums",id:"toc-symbol-enums",level:2},{value:"Flow Enums with Unknown Members",id:"toc-flow-enums-with-unknown-members",level:2},{value:"Enums at runtime",id:"toc-enums-at-runtime",level:2},{value:"Style guide",id:"toc-style-guide",level:2},{value:"Naming enums",id:"toc-naming-enums",level:4},{value:"Naming enum members",id:"toc-naming-enum-members",level:4},{value:"Don't create a separate type",id:"toc-don-t-create-a-separate-type",level:4},{value:"Use dot access for accessing members",id:"toc-use-dot-access-for-accessing-members",level:4}],l={toc:r};function d(e){let{components:n,...t}=e;return(0,m.mdx)("wrapper",(0,a.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,m.mdx)("p",null,"Learn how to define a Flow Enum. Looking for a quick overview? Check out the ",(0,m.mdx)("a",{parentName:"p",href:"../#toc-quickstart"},"Quickstart Guide"),"."),(0,m.mdx)("p",null,"An enum declaration is a statement. Its name defines both a value (from which to ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-accessing-enum-members"},"access its members"),",\nand call its ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-methods"},"methods"),"), and a type (which can be ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-using-as-a-type-annotation"},"used as an annotation")," for the type of its members)."),(0,m.mdx)("p",null,"Enum members must all be of the same type, and those members can be one of four types:\n",(0,m.mdx)("a",{parentName:"p",href:"#toc-string-enums"},"string"),", ",(0,m.mdx)("a",{parentName:"p",href:"#toc-number-enums"},"number"),", ",(0,m.mdx)("a",{parentName:"p",href:"#toc-boolean-enums"},"boolean"),", and ",(0,m.mdx)("a",{parentName:"p",href:"#toc-symbol-enums"},"symbol"),"."),(0,m.mdx)("p",null,"Every enum has some common properties:"),(0,m.mdx)("h4",{id:"toc-consistent-member-type"},"Consistent member type"),(0,m.mdx)("p",null,"The type of the enum members must be consistent. For example, you can\u2019t mix ",(0,m.mdx)("inlineCode",{parentName:"p"},"string")," and ",(0,m.mdx)("inlineCode",{parentName:"p"},"number")," members in one enum.\nThey must all be strings, numbers, or booleans (you do not provide values for ",(0,m.mdx)("inlineCode",{parentName:"p"},"symbol")," based enums)."),(0,m.mdx)("h4",{id:"toc-member-name-starting-character"},"Member name starting character"),(0,m.mdx)("p",null,"Member names must be valid identifiers (e.g. not start with numbers), and must not start with lowercase ",(0,m.mdx)("inlineCode",{parentName:"p"},"a")," through ",(0,m.mdx)("inlineCode",{parentName:"p"},"z"),".\nNames starting with those letters are reserved for enum ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-methods"},"methods")," (e.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"Status.cast(...)"),")."),(0,m.mdx)("p",null,"This is not allowed:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":3,"endLine":2,"endColumn":8,"description":"Enum member names cannot start with lowercase \'a\' through \'z\'. Instead of using `active`, consider using `Active`, in enum `Status`."}]','[{"startLine":2,"startColumn":3,"endLine":2,"endColumn":8,"description":"Enum':!0,member:!0,names:!0,cannot:!0,start:!0,with:!0,lowercase:!0,"'a'":!0,through:!0,"'z'.":!0,Instead:!0,of:!0,using:!0,"`active`,":!0,consider:!0,"`Active`,":!0,in:!0,enum:!0,'`Status`."}]':!0},"enum Status {\n active, // Error: names can't start with lowercase 'a' through 'z'\n}\n")),(0,m.mdx)("h4",{id:"toc-unique-member-names"},"Unique member names"),(0,m.mdx)("p",null,"Member names must be unique. This is not allowed:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":8,"description":"Enum member names need to be unique, but the name `Active` has already been used before in enum `Status`."}]','[{"startLine":3,"startColumn":3,"endLine":3,"endColumn":8,"description":"Enum':!0,member:!0,names:!0,need:!0,to:!0,be:!0,"unique,":!0,but:!0,the:!0,name:!0,"`Active`":!0,has:!0,already:!0,been:!0,used:!0,before:!0,in:!0,enum:!0,'`Status`."}]':!0},"enum Status {\n Active,\n Active, // Error: the name 'Active` was already used above\n}\n")),(0,m.mdx)("h4",{id:"toc-literal-member-values"},"Literal member values"),(0,m.mdx)("p",null,"If you specify a value for an enum member, it must be a literal (string, number, or boolean), not a computed value. This is not allowed:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":2,"startColumn":12,"endLine":2,"endColumn":12,"description":"The enum member initializer for `Active` needs to be a literal (either a boolean, number, or string) in enum `Status`."}]','[{"startLine":2,"startColumn":12,"endLine":2,"endColumn":12,"description":"The':!0,enum:!0,member:!0,initializer:!0,for:!0,"`Active`":!0,needs:!0,to:!0,be:!0,a:!0,literal:!0,"(either":!0,"boolean,":!0,"number,":!0,or:!0,"string)":!0,in:!0,'`Status`."}]':!0},"enum Status {\n Active = 1 + 2, // Error: the value must be a literal\n}\n")),(0,m.mdx)("h4",{id:"toc-unique-member-values"},"Unique member values"),(0,m.mdx)("p",null,"Member values must be unique. This is not allowed:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":3,"startColumn":12,"endLine":3,"endColumn":12,"description":"Invalid enum member initializer. Initializers need to be unique, but this one has already been used for a previous member [1] of enum `Status` [2]. [duplicate-enum-init]"}]','[{"startLine":3,"startColumn":12,"endLine":3,"endColumn":12,"description":"Invalid':!0,enum:!0,member:!0,"initializer.":!0,Initializers:!0,need:!0,to:!0,be:!0,"unique,":!0,but:!0,this:!0,one:!0,has:!0,already:!0,been:!0,used:!0,for:!0,a:!0,previous:!0,"[1]":!0,of:!0,"`Status`":!0,"[2].":!0,'[duplicate-enum-init]"}]':!0},"enum Status {\n Active = 1,\n Paused = 1, // Error: the value has already been used above\n}\n")),(0,m.mdx)("h4",{id:"toc-fixed-at-declaration"},"Fixed at declaration"),(0,m.mdx)("p",null,"An enum is not extendable, so you can\u2019t add new members after the fact while your code is running.\nAt runtime, enum member values can\u2019t change and the members can\u2019t be deleted. In this way they act like a frozen object."),(0,m.mdx)("h2",{id:"toc-string-enums"},"String enums"),(0,m.mdx)("p",null,"String enums are the default. If you don\u2019t specify an ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause (e.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"enum Status of number {}"),", ",(0,m.mdx)("inlineCode",{parentName:"p"},"enum Status of symbol {}"),", etc.),\nand do not specify any values (e.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"enum Status {Active = 1}"),") then the definition will default to be a string enum."),(0,m.mdx)("p",null,"Unlike the other types of enums (e.g. number enums), you can either specify values for the enum members, or not specify values and allow them to be defaulted."),(0,m.mdx)("p",null,"If you don\u2019t specify values for your enum members, they default to strings which are the same as the name of your members."),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {\n Active,\n Paused,\n Off,\n}\n")),(0,m.mdx)("p",null,"Is the same as:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {\n Active = 'Active',\n Paused = 'Paused',\n Off = 'Off',\n}\n")),(0,m.mdx)("p",null,"You must consistently either specify the value for all members, or none of the members. This is not allowed:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":3,"endLine":4,"endColumn":5,"description":"String enum members need to consistently either all use initializers, or use no initializers, in enum Status."}]','[{"startLine":4,"startColumn":3,"endLine":4,"endColumn":5,"description":"String':!0,enum:!0,members:!0,need:!0,to:!0,consistently:!0,either:!0,all:!0,use:!0,"initializers,":!0,or:!0,no:!0,in:!0,'Status."}]':!0},"enum Status {\n Active = 'active',\n Paused = 'paused',\n Off, // Error: you must specify a value for all members (or none of the members)\n}\n")),(0,m.mdx)("p",null,"Optionally, you can use an ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status of string {\n Active,\n Paused,\n Off,\n}\n")),(0,m.mdx)("p",null,"We infer the type of the enum based on its values if there is no ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause.\nUsing an ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause will ensure that if you use incorrect values, the error message will always interpret it as an enum of that type."),(0,m.mdx)("h2",{id:"toc-number-enums"},"Number enums"),(0,m.mdx)("p",null,"Number enums must have their values specified."),(0,m.mdx)("p",null,"You can specify a number enum like this:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\n")),(0,m.mdx)("p",null,"Optionally, you can use an ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause.\nThis does not affect the type-checking behavior of a valid Flow Enum,\nit just ensures that all enum members are ",(0,m.mdx)("inlineCode",{parentName:"p"},"number"),"s as the definition site."),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status of number {\n Active = 1,\n Paused = 2,\n Off = 3,\n}\n")),(0,m.mdx)("p",null,"We do not allow defaulting of number enums (unlike some other languages), because if a member from the middle of such an enum is added or removed,\nall subsequent member values would be changed. This can be unsafe (e.g. push safety, serialization, logging).\nRequiring the user to be explicit about the renumbering makes them think about the consequences of doing so."),(0,m.mdx)("p",null,"The value provided must be a number literal. (Note: there is no literal for negative numbers in JavaScript, they are the application of a unary ",(0,m.mdx)("inlineCode",{parentName:"p"},"-")," operation on a number literal.)\nWe could expand allowed values in the future to include certain non-literals, if requests to do so arise."),(0,m.mdx)("h2",{id:"toc-boolean-enums"},"Boolean enums"),(0,m.mdx)("p",null,"Boolean enums must have their values specified. Boolean enums can only have two members."),(0,m.mdx)("p",null,"You can specify a boolean enum like this:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status {\n Active = true,\n Off = false,\n}\n")),(0,m.mdx)("p",null,"Optionally, you can use an ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause.\nThis does not affect the type-checking behavior of a valid Flow Enum,\nit just ensures that all enum members are ",(0,m.mdx)("inlineCode",{parentName:"p"},"boolean"),"s as the definition site."),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status of boolean {\n Active = true,\n Off = false,\n}\n")),(0,m.mdx)("h2",{id:"toc-symbol-enums"},"Symbol enums"),(0,m.mdx)("p",null,"Symbol enums can\u2019t have their values specified. Each member is a new symbol, with the symbol description set to the name of the member.\nYou must use the ",(0,m.mdx)("inlineCode",{parentName:"p"},"of")," clause with symbol enums, to distinguish them from string enums, which are the default when omitting values."),(0,m.mdx)("p",null,"You can specify a symbol enum like this:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"enum Status of symbol {\n Active,\n Paused,\n Off,\n}\n")),(0,m.mdx)("h2",{id:"toc-flow-enums-with-unknown-members"},"Flow Enums with Unknown Members"),(0,m.mdx)("p",null,'You can specify that your enum contains "unknown members" by adding a ',(0,m.mdx)("inlineCode",{parentName:"p"},"...")," to the end of the declaration:"),(0,m.mdx)("pre",null,(0,m.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Missing `default` case in the check of `status`. `Status` [1] has unknown members (specified using `...`) so checking it requires the use of a `default` case to cover those members. [invalid-exhaustive-check]"}]','[{"startLine":9,"startColumn":9,"endLine":9,"endColumn":14,"description":"Missing':!0,"`default`":!0,case:!0,in:!0,the:!0,check:!0,of:!0,"`status`.":!0,"`Status`":!0,"[1]":!0,has:!0,unknown:!0,members:!0,"(specified":!0,using:!0,"`...`)":!0,so:!0,checking:!0,it:!0,requires:!0,use:!0,a:!0,to:!0,cover:!0,those:!0,"members.":!0,'[invalid-exhaustive-check]"}]':!0},"enum Status {\n Active,\n Paused,\n Off,\n ...\n}\nconst status: Status = Status.Active;\n\nswitch (status) {\n case Status.Active: break;\n case Status.Paused: break;\n case Status.Off: break;\n}\n")),(0,m.mdx)("p",null,"When this is used, Flow will always require a ",(0,m.mdx)("inlineCode",{parentName:"p"},"default")," when ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-exhaustive-checking-with-unknown-members"},"switching over the enum"),",\neven if all known enum members are checked. The ",(0,m.mdx)("inlineCode",{parentName:"p"},"default"),' checks for "unknown" members you haven\'t explicitly listed.'),(0,m.mdx)("p",null,"This feature is useful when an enum value crosses some boundary and the enum declaration on each side may have different memebers.\nFor example, an enum definition which is used on both the client and the server: an enum member could be added, which would be immediately seen by the server,\nbut could be sent to an outdated client which isn't yet aware of the new member."),(0,m.mdx)("p",null,"One use case for this would be the JS output of ",(0,m.mdx)("a",{parentName:"p",href:"https://graphql.org/learn/schema/#enumeration-types"},"GraphQL Enums"),":\nFlow Enums with unknown members could be used instead of the added ",(0,m.mdx)("inlineCode",{parentName:"p"},"'%future added value'")," member."),(0,m.mdx)("h2",{id:"toc-enums-at-runtime"},"Enums at runtime"),(0,m.mdx)("p",null,"Enums exist as values at runtime. We use a ",(0,m.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/babel-plugin-transform-flow-enums"},"Babel transform")," to transform\nFlow Enum declarations into calls to the ",(0,m.mdx)("a",{parentName:"p",href:"https://www.npmjs.com/package/flow-enums-runtime"},"enums runtime")," (read more in the ",(0,m.mdx)("a",{parentName:"p",href:"../enabling-enums/"},"enabling enums documentation"),").\nWe use a runtime so all enums can share an implementation of the enum ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-methods"},"methods"),"."),(0,m.mdx)("p",null,"We use ",(0,m.mdx)("inlineCode",{parentName:"p"},"Object.create(null)")," for enums' prototype (which has the enum methods), so properties in ",(0,m.mdx)("inlineCode",{parentName:"p"},"Object.prototype")," will not pollute enums.\nThe only own properties of the enum object are the enum members. The members are non-enumerable (use the ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-members"},(0,m.mdx)("inlineCode",{parentName:"a"},".members()")," method")," for that).\nThe entire enum object is frozen, so it cannot be modified."),(0,m.mdx)("h2",{id:"toc-style-guide"},"Style guide"),(0,m.mdx)("h4",{id:"toc-naming-enums"},"Naming enums"),(0,m.mdx)("p",null,"We encourage you to define enum names in ",(0,m.mdx)("inlineCode",{parentName:"p"},"PascalCase"),", following the naming conventions of other types. All caps names (e.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"STATUS"),") are harder to read and discouraged."),(0,m.mdx)("p",null,"We encourage you to name enums in the singular. E.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"Status"),", not ",(0,m.mdx)("inlineCode",{parentName:"p"},"Statuses"),". Just like the type of ",(0,m.mdx)("inlineCode",{parentName:"p"},"true")," and ",(0,m.mdx)("inlineCode",{parentName:"p"},"false")," is ",(0,m.mdx)("inlineCode",{parentName:"p"},"boolean"),", not ",(0,m.mdx)("inlineCode",{parentName:"p"},"booleans"),"."),(0,m.mdx)("p",null,"Don't append ",(0,m.mdx)("inlineCode",{parentName:"p"},"Enum")," to the name (e.g. don't name your enum ",(0,m.mdx)("inlineCode",{parentName:"p"},"StatusEnum"),"). This is unnecessary, just like we don't append ",(0,m.mdx)("inlineCode",{parentName:"p"},"Class")," to every class name, and ",(0,m.mdx)("inlineCode",{parentName:"p"},"Type")," to every type alias."),(0,m.mdx)("h4",{id:"toc-naming-enum-members"},"Naming enum members"),(0,m.mdx)("p",null,"We encourage you to define enum member names in ",(0,m.mdx)("inlineCode",{parentName:"p"},"PascalCase"),". All caps names (e.g. ",(0,m.mdx)("inlineCode",{parentName:"p"},"ACTIVE"),") are harder to read and discouraged.\nAdditionally, since Flow enforces that these are constants, you don't need to use the name to signal that intent to the programmer."),(0,m.mdx)("p",null,"See also: the rule about ",(0,m.mdx)("a",{parentName:"p",href:"#toc-member-name-starting-character"},"enum member name starting characters"),"."),(0,m.mdx)("h4",{id:"toc-don-t-create-a-separate-type"},"Don't create a separate type"),(0,m.mdx)("p",null,"A Flow Enum, like a class, is both a type and a value. You don't need to create a separate type alias, you can use the enum name."),(0,m.mdx)("h4",{id:"toc-use-dot-access-for-accessing-members"},"Use dot access for accessing members"),(0,m.mdx)("p",null,"Prefer ",(0,m.mdx)("inlineCode",{parentName:"p"},"Status.Active")," vs. ",(0,m.mdx)("inlineCode",{parentName:"p"},"const {Active} = Status;"),". This makes it easier find uses of the enum with text search, and makes it clearer to the reader what enum is involved.\nAdditionally, this is required for ",(0,m.mdx)("a",{parentName:"p",href:"../using-enums/#toc-exhaustively-checking-enums-with-a-switch"},"switch statements involving enums"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9343.60b6adf7.js b/assets/js/9343.60b6adf7.js new file mode 100644 index 00000000000..f79f7df7e51 --- /dev/null +++ b/assets/js/9343.60b6adf7.js @@ -0,0 +1,289 @@ +"use strict"; +exports.id = 9343; +exports.ids = [9343]; +exports.modules = { + +/***/ 39343: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/dart/dart.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string"] }, + { open: "`", close: "`", notIn: ["string", "comment"] }, + { open: "/**", close: " */", notIn: ["string"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: "<", close: ">" }, + { open: "'", close: "'" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "`", close: "`" } + ], + folding: { + markers: { + start: /^\s*\s*#?region\b/, + end: /^\s*\s*#?endregion\b/ + } + } +}; +var language = { + defaultToken: "invalid", + tokenPostfix: ".dart", + keywords: [ + "abstract", + "dynamic", + "implements", + "show", + "as", + "else", + "import", + "static", + "assert", + "enum", + "in", + "super", + "async", + "export", + "interface", + "switch", + "await", + "extends", + "is", + "sync", + "break", + "external", + "library", + "this", + "case", + "factory", + "mixin", + "throw", + "catch", + "false", + "new", + "true", + "class", + "final", + "null", + "try", + "const", + "finally", + "on", + "typedef", + "continue", + "for", + "operator", + "var", + "covariant", + "Function", + "part", + "void", + "default", + "get", + "rethrow", + "while", + "deferred", + "hide", + "return", + "with", + "do", + "if", + "set", + "yield" + ], + typeKeywords: ["int", "double", "String", "bool"], + operators: [ + "+", + "-", + "*", + "/", + "~/", + "%", + "++", + "--", + "==", + "!=", + ">", + "<", + ">=", + "<=", + "=", + "-=", + "/=", + "%=", + ">>=", + "^=", + "+=", + "*=", + "~/=", + "<<=", + "&=", + "!=", + "||", + "&&", + "&", + "|", + "^", + "~", + "<<", + ">>", + "!", + ">>>", + "??", + "?", + ":", + "|=" + ], + symbols: /[=><!~?:&|+\-*\/\^%]+/, + escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/, + digits: /\d+(_+\d+)*/, + octaldigits: /[0-7]+(_+[0-7]+)*/, + binarydigits: /[0-1]+(_+[0-1]+)*/, + hexdigits: /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/, + regexpctl: /[(){}\[\]\$\^|\-*+?\.]/, + regexpesc: /\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/, + tokenizer: { + root: [[/[{}]/, "delimiter.bracket"], { include: "common" }], + common: [ + [ + /[a-z_$][\w$]*/, + { + cases: { + "@typeKeywords": "type.identifier", + "@keywords": "keyword", + "@default": "identifier" + } + } + ], + [/[A-Z_$][\w\$]*/, "type.identifier"], + { include: "@whitespace" }, + [ + /\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/, + { token: "regexp", bracket: "@open", next: "@regexp" } + ], + [/@[a-zA-Z]+/, "annotation"], + [/[()\[\]]/, "@brackets"], + [/[<>](?!@symbols)/, "@brackets"], + [/!(?=([^=]|$))/, "delimiter"], + [ + /@symbols/, + { + cases: { + "@operators": "delimiter", + "@default": "" + } + } + ], + [/(@digits)[eE]([\-+]?(@digits))?/, "number.float"], + [/(@digits)\.(@digits)([eE][\-+]?(@digits))?/, "number.float"], + [/0[xX](@hexdigits)n?/, "number.hex"], + [/0[oO]?(@octaldigits)n?/, "number.octal"], + [/0[bB](@binarydigits)n?/, "number.binary"], + [/(@digits)n?/, "number"], + [/[;,.]/, "delimiter"], + [/"([^"\\]|\\.)*$/, "string.invalid"], + [/'([^'\\]|\\.)*$/, "string.invalid"], + [/"/, "string", "@string_double"], + [/'/, "string", "@string_single"] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/\/\*\*(?!\/)/, "comment.doc", "@jsdoc"], + [/\/\*/, "comment", "@comment"], + [/\/\/\/.*$/, "comment.doc"], + [/\/\/.*$/, "comment"] + ], + comment: [ + [/[^\/*]+/, "comment"], + [/\*\//, "comment", "@pop"], + [/[\/*]/, "comment"] + ], + jsdoc: [ + [/[^\/*]+/, "comment.doc"], + [/\*\//, "comment.doc", "@pop"], + [/[\/*]/, "comment.doc"] + ], + regexp: [ + [ + /(\{)(\d+(?:,\d*)?)(\})/, + ["regexp.escape.control", "regexp.escape.control", "regexp.escape.control"] + ], + [ + /(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/, + ["regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }] + ], + [/(\()(\?:|\?=|\?!)/, ["regexp.escape.control", "regexp.escape.control"]], + [/[()]/, "regexp.escape.control"], + [/@regexpctl/, "regexp.escape.control"], + [/[^\\\/]/, "regexp"], + [/@regexpesc/, "regexp.escape"], + [/\\\./, "regexp.invalid"], + [/(\/)([gimsuy]*)/, [{ token: "regexp", bracket: "@close", next: "@pop" }, "keyword.other"]] + ], + regexrange: [ + [/-/, "regexp.escape.control"], + [/\^/, "regexp.invalid"], + [/@regexpesc/, "regexp.escape"], + [/[^\]]/, "regexp"], + [ + /\]/, + { + token: "regexp.escape.control", + next: "@pop", + bracket: "@close" + } + ] + ], + string_double: [ + [/[^\\"\$]+/, "string"], + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/"/, "string", "@pop"], + [/\$\w+/, "identifier"] + ], + string_single: [ + [/[^\\'\$]+/, "string"], + [/@escapes/, "string.escape"], + [/\\./, "string.escape.invalid"], + [/'/, "string", "@pop"], + [/\$\w+/, "identifier"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9343.bdc8d465.js b/assets/js/9343.bdc8d465.js new file mode 100644 index 00000000000..5896d351f05 --- /dev/null +++ b/assets/js/9343.bdc8d465.js @@ -0,0 +1,2 @@ +/*! For license information please see 9343.bdc8d465.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9343],{39343:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>s});var o={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:"(",close:")"},{open:'"',close:'"'},{open:"`",close:"`"}],folding:{markers:{start:/^\s*\s*#?region\b/,end:/^\s*\s*#?endregion\b/}}},s={defaultToken:"invalid",tokenPostfix:".dart",keywords:["abstract","dynamic","implements","show","as","else","import","static","assert","enum","in","super","async","export","interface","switch","await","extends","is","sync","break","external","library","this","case","factory","mixin","throw","catch","false","new","true","class","final","null","try","const","finally","on","typedef","continue","for","operator","var","covariant","Function","part","void","default","get","rethrow","while","deferred","hide","return","with","do","if","set","yield"],typeKeywords:["int","double","String","bool"],operators:["+","-","*","/","~/","%","++","--","==","!=",">","<",">=","<=","=","-=","/=","%=",">>=","^=","+=","*=","~/=","<<=","&=","!=","||","&&","&","|","^","~","<<",">>","!",">>>","??","?",":","|="],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/[a-z_$][\w$]*/,{cases:{"@typeKeywords":"type.identifier","@keywords":"keyword","@default":"identifier"}}],[/[A-Z_$][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([gimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/@[a-zA-Z]+/,"annotation"],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/\/.*$/,"comment.doc"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"\$]+/,"string"],[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"],[/\$\w+/,"identifier"]],string_single:[[/[^\\'\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"],[/\$\w+/,"identifier"]]}}}}]); \ No newline at end of file diff --git a/assets/js/9343.bdc8d465.js.LICENSE.txt b/assets/js/9343.bdc8d465.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9343.bdc8d465.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9390.f01d7d65.js b/assets/js/9390.f01d7d65.js new file mode 100644 index 00000000000..83cdbb2509e --- /dev/null +++ b/assets/js/9390.f01d7d65.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9390],{99390:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var o=n(87462),r=(n(67294),n(3905));n(45475);const a={title:"Getting Started",slug:"/getting-started",description:"Never used a type system before or just new to Flow? Let's get you up and running in a few minutes."},s=void 0,i={unversionedId:"getting-started",id:"getting-started",title:"Getting Started",description:"Never used a type system before or just new to Flow? Let's get you up and running in a few minutes.",source:"@site/docs/getting-started.md",sourceDirName:".",slug:"/getting-started",permalink:"/en/docs/getting-started",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/getting-started.md",tags:[],version:"current",frontMatter:{title:"Getting Started",slug:"/getting-started",description:"Never used a type system before or just new to Flow? Let's get you up and running in a few minutes."},sidebar:"docsSidebar",next:{title:"Installation",permalink:"/en/docs/install"}},d={},l=[],u={toc:l};function c(e){let{components:t,...n}=e;return(0,r.mdx)("wrapper",(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow is a static type checker for your JavaScript code. It does a lot of work\nto make you more productive. Making you code faster, smarter, more confidently,\nand to a bigger scale."),(0,r.mdx)("p",null,"Flow checks your code for errors through ",(0,r.mdx)("strong",{parentName:"p"},"static type annotations"),". These\n",(0,r.mdx)("em",{parentName:"p"},"types")," allow you to tell Flow how you want your code to work, and Flow will\nmake sure it does work that way."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":8,"endLine":5,"endColumn":10,"description":"Cannot call `square` with `\\"2\\"` bound to `n` because string [1] is incompatible with number [2]. [incompatible-call]"}]','[{"startLine":5,"startColumn":8,"endLine":5,"endColumn":10,"description":"Cannot':!0,call:!0,"`square`":!0,with:!0,'`\\"2\\"`':!0,bound:!0,to:!0,"`n`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,number:!0,"[2].":!0,'[incompatible-call]"}]':!0},'function square(n: number): number {\n return n * n;\n}\n\nsquare("2"); // Error!\n')),(0,r.mdx)("p",null,"First step: ",(0,r.mdx)("a",{parentName:"p",href:"../install"},"install Flow"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9398.016daacb.js b/assets/js/9398.016daacb.js new file mode 100644 index 00000000000..9d2472a4c17 --- /dev/null +++ b/assets/js/9398.016daacb.js @@ -0,0 +1,396 @@ +"use strict"; +exports.id = 9398; +exports.ids = [9398]; +exports.modules = { + +/***/ 79398: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/msdax/msdax.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["[", "]"], + ["(", ")"], + ["{", "}"] + ], + autoClosingPairs: [ + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "'", close: "'", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] }, + { open: "{", close: "}", notIn: ["string", "comment"] } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".msdax", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "{", close: "}", token: "delimiter.brackets" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "VAR", + "RETURN", + "NOT", + "EVALUATE", + "DATATABLE", + "ORDER", + "BY", + "START", + "AT", + "DEFINE", + "MEASURE", + "ASC", + "DESC", + "IN", + "BOOLEAN", + "DOUBLE", + "INTEGER", + "DATETIME", + "CURRENCY", + "STRING" + ], + functions: [ + "CLOSINGBALANCEMONTH", + "CLOSINGBALANCEQUARTER", + "CLOSINGBALANCEYEAR", + "DATEADD", + "DATESBETWEEN", + "DATESINPERIOD", + "DATESMTD", + "DATESQTD", + "DATESYTD", + "ENDOFMONTH", + "ENDOFQUARTER", + "ENDOFYEAR", + "FIRSTDATE", + "FIRSTNONBLANK", + "LASTDATE", + "LASTNONBLANK", + "NEXTDAY", + "NEXTMONTH", + "NEXTQUARTER", + "NEXTYEAR", + "OPENINGBALANCEMONTH", + "OPENINGBALANCEQUARTER", + "OPENINGBALANCEYEAR", + "PARALLELPERIOD", + "PREVIOUSDAY", + "PREVIOUSMONTH", + "PREVIOUSQUARTER", + "PREVIOUSYEAR", + "SAMEPERIODLASTYEAR", + "STARTOFMONTH", + "STARTOFQUARTER", + "STARTOFYEAR", + "TOTALMTD", + "TOTALQTD", + "TOTALYTD", + "ADDCOLUMNS", + "ADDMISSINGITEMS", + "ALL", + "ALLEXCEPT", + "ALLNOBLANKROW", + "ALLSELECTED", + "CALCULATE", + "CALCULATETABLE", + "CALENDAR", + "CALENDARAUTO", + "CROSSFILTER", + "CROSSJOIN", + "CURRENTGROUP", + "DATATABLE", + "DETAILROWS", + "DISTINCT", + "EARLIER", + "EARLIEST", + "EXCEPT", + "FILTER", + "FILTERS", + "GENERATE", + "GENERATEALL", + "GROUPBY", + "IGNORE", + "INTERSECT", + "ISONORAFTER", + "KEEPFILTERS", + "LOOKUPVALUE", + "NATURALINNERJOIN", + "NATURALLEFTOUTERJOIN", + "RELATED", + "RELATEDTABLE", + "ROLLUP", + "ROLLUPADDISSUBTOTAL", + "ROLLUPGROUP", + "ROLLUPISSUBTOTAL", + "ROW", + "SAMPLE", + "SELECTCOLUMNS", + "SUBSTITUTEWITHINDEX", + "SUMMARIZE", + "SUMMARIZECOLUMNS", + "TOPN", + "TREATAS", + "UNION", + "USERELATIONSHIP", + "VALUES", + "SUM", + "SUMX", + "PATH", + "PATHCONTAINS", + "PATHITEM", + "PATHITEMREVERSE", + "PATHLENGTH", + "AVERAGE", + "AVERAGEA", + "AVERAGEX", + "COUNT", + "COUNTA", + "COUNTAX", + "COUNTBLANK", + "COUNTROWS", + "COUNTX", + "DISTINCTCOUNT", + "DIVIDE", + "GEOMEAN", + "GEOMEANX", + "MAX", + "MAXA", + "MAXX", + "MEDIAN", + "MEDIANX", + "MIN", + "MINA", + "MINX", + "PERCENTILE.EXC", + "PERCENTILE.INC", + "PERCENTILEX.EXC", + "PERCENTILEX.INC", + "PRODUCT", + "PRODUCTX", + "RANK.EQ", + "RANKX", + "STDEV.P", + "STDEV.S", + "STDEVX.P", + "STDEVX.S", + "VAR.P", + "VAR.S", + "VARX.P", + "VARX.S", + "XIRR", + "XNPV", + "DATE", + "DATEDIFF", + "DATEVALUE", + "DAY", + "EDATE", + "EOMONTH", + "HOUR", + "MINUTE", + "MONTH", + "NOW", + "SECOND", + "TIME", + "TIMEVALUE", + "TODAY", + "WEEKDAY", + "WEEKNUM", + "YEAR", + "YEARFRAC", + "CONTAINS", + "CONTAINSROW", + "CUSTOMDATA", + "ERROR", + "HASONEFILTER", + "HASONEVALUE", + "ISBLANK", + "ISCROSSFILTERED", + "ISEMPTY", + "ISERROR", + "ISEVEN", + "ISFILTERED", + "ISLOGICAL", + "ISNONTEXT", + "ISNUMBER", + "ISODD", + "ISSUBTOTAL", + "ISTEXT", + "USERNAME", + "USERPRINCIPALNAME", + "AND", + "FALSE", + "IF", + "IFERROR", + "NOT", + "OR", + "SWITCH", + "TRUE", + "ABS", + "ACOS", + "ACOSH", + "ACOT", + "ACOTH", + "ASIN", + "ASINH", + "ATAN", + "ATANH", + "BETA.DIST", + "BETA.INV", + "CEILING", + "CHISQ.DIST", + "CHISQ.DIST.RT", + "CHISQ.INV", + "CHISQ.INV.RT", + "COMBIN", + "COMBINA", + "CONFIDENCE.NORM", + "CONFIDENCE.T", + "COS", + "COSH", + "COT", + "COTH", + "CURRENCY", + "DEGREES", + "EVEN", + "EXP", + "EXPON.DIST", + "FACT", + "FLOOR", + "GCD", + "INT", + "ISO.CEILING", + "LCM", + "LN", + "LOG", + "LOG10", + "MOD", + "MROUND", + "ODD", + "PERMUT", + "PI", + "POISSON.DIST", + "POWER", + "QUOTIENT", + "RADIANS", + "RAND", + "RANDBETWEEN", + "ROUND", + "ROUNDDOWN", + "ROUNDUP", + "SIGN", + "SIN", + "SINH", + "SQRT", + "SQRTPI", + "TAN", + "TANH", + "TRUNC", + "BLANK", + "CONCATENATE", + "CONCATENATEX", + "EXACT", + "FIND", + "FIXED", + "FORMAT", + "LEFT", + "LEN", + "LOWER", + "MID", + "REPLACE", + "REPT", + "RIGHT", + "SEARCH", + "SUBSTITUTE", + "TRIM", + "UNICHAR", + "UNICODE", + "UPPER", + "VALUE" + ], + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@complexIdentifiers" }, + [/[;,.]/, "delimiter"], + [/[({})]/, "@brackets"], + [ + /[a-z_][a-zA-Z0-9_]*/, + { + cases: { + "@keywords": "keyword", + "@functions": "keyword", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + [/\/\/+.*/, "comment"], + [/\/\*/, { token: "comment.quote", next: "@comment" }] + ], + comment: [ + [/[^*/]+/, "comment"], + [/\*\//, { token: "comment.quote", next: "@pop" }], + [/./, "comment"] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [ + [/N"/, { token: "string", next: "@string" }], + [/"/, { token: "string", next: "@string" }] + ], + string: [ + [/[^"]+/, "string"], + [/""/, "string"], + [/"/, { token: "string", next: "@pop" }] + ], + complexIdentifiers: [ + [/\[/, { token: "identifier.quote", next: "@bracketedIdentifier" }], + [/'/, { token: "identifier.quote", next: "@quotedIdentifier" }] + ], + bracketedIdentifier: [ + [/[^\]]+/, "identifier"], + [/]]/, "identifier"], + [/]/, { token: "identifier.quote", next: "@pop" }] + ], + quotedIdentifier: [ + [/[^']+/, "identifier"], + [/''/, "identifier"], + [/'/, { token: "identifier.quote", next: "@pop" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9398.a4b8a2d7.js b/assets/js/9398.a4b8a2d7.js new file mode 100644 index 00000000000..04000cac0fe --- /dev/null +++ b/assets/js/9398.a4b8a2d7.js @@ -0,0 +1,2 @@ +/*! For license information please see 9398.a4b8a2d7.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9398],{79398:(E,T,A)=>{A.r(T),A.d(T,{conf:()=>N,language:()=>e});var N={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]}]},e={defaultToken:"",tokenPostfix:".msdax",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["VAR","RETURN","NOT","EVALUATE","DATATABLE","ORDER","BY","START","AT","DEFINE","MEASURE","ASC","DESC","IN","BOOLEAN","DOUBLE","INTEGER","DATETIME","CURRENCY","STRING"],functions:["CLOSINGBALANCEMONTH","CLOSINGBALANCEQUARTER","CLOSINGBALANCEYEAR","DATEADD","DATESBETWEEN","DATESINPERIOD","DATESMTD","DATESQTD","DATESYTD","ENDOFMONTH","ENDOFQUARTER","ENDOFYEAR","FIRSTDATE","FIRSTNONBLANK","LASTDATE","LASTNONBLANK","NEXTDAY","NEXTMONTH","NEXTQUARTER","NEXTYEAR","OPENINGBALANCEMONTH","OPENINGBALANCEQUARTER","OPENINGBALANCEYEAR","PARALLELPERIOD","PREVIOUSDAY","PREVIOUSMONTH","PREVIOUSQUARTER","PREVIOUSYEAR","SAMEPERIODLASTYEAR","STARTOFMONTH","STARTOFQUARTER","STARTOFYEAR","TOTALMTD","TOTALQTD","TOTALYTD","ADDCOLUMNS","ADDMISSINGITEMS","ALL","ALLEXCEPT","ALLNOBLANKROW","ALLSELECTED","CALCULATE","CALCULATETABLE","CALENDAR","CALENDARAUTO","CROSSFILTER","CROSSJOIN","CURRENTGROUP","DATATABLE","DETAILROWS","DISTINCT","EARLIER","EARLIEST","EXCEPT","FILTER","FILTERS","GENERATE","GENERATEALL","GROUPBY","IGNORE","INTERSECT","ISONORAFTER","KEEPFILTERS","LOOKUPVALUE","NATURALINNERJOIN","NATURALLEFTOUTERJOIN","RELATED","RELATEDTABLE","ROLLUP","ROLLUPADDISSUBTOTAL","ROLLUPGROUP","ROLLUPISSUBTOTAL","ROW","SAMPLE","SELECTCOLUMNS","SUBSTITUTEWITHINDEX","SUMMARIZE","SUMMARIZECOLUMNS","TOPN","TREATAS","UNION","USERELATIONSHIP","VALUES","SUM","SUMX","PATH","PATHCONTAINS","PATHITEM","PATHITEMREVERSE","PATHLENGTH","AVERAGE","AVERAGEA","AVERAGEX","COUNT","COUNTA","COUNTAX","COUNTBLANK","COUNTROWS","COUNTX","DISTINCTCOUNT","DIVIDE","GEOMEAN","GEOMEANX","MAX","MAXA","MAXX","MEDIAN","MEDIANX","MIN","MINA","MINX","PERCENTILE.EXC","PERCENTILE.INC","PERCENTILEX.EXC","PERCENTILEX.INC","PRODUCT","PRODUCTX","RANK.EQ","RANKX","STDEV.P","STDEV.S","STDEVX.P","STDEVX.S","VAR.P","VAR.S","VARX.P","VARX.S","XIRR","XNPV","DATE","DATEDIFF","DATEVALUE","DAY","EDATE","EOMONTH","HOUR","MINUTE","MONTH","NOW","SECOND","TIME","TIMEVALUE","TODAY","WEEKDAY","WEEKNUM","YEAR","YEARFRAC","CONTAINS","CONTAINSROW","CUSTOMDATA","ERROR","HASONEFILTER","HASONEVALUE","ISBLANK","ISCROSSFILTERED","ISEMPTY","ISERROR","ISEVEN","ISFILTERED","ISLOGICAL","ISNONTEXT","ISNUMBER","ISODD","ISSUBTOTAL","ISTEXT","USERNAME","USERPRINCIPALNAME","AND","FALSE","IF","IFERROR","NOT","OR","SWITCH","TRUE","ABS","ACOS","ACOSH","ACOT","ACOTH","ASIN","ASINH","ATAN","ATANH","BETA.DIST","BETA.INV","CEILING","CHISQ.DIST","CHISQ.DIST.RT","CHISQ.INV","CHISQ.INV.RT","COMBIN","COMBINA","CONFIDENCE.NORM","CONFIDENCE.T","COS","COSH","COT","COTH","CURRENCY","DEGREES","EVEN","EXP","EXPON.DIST","FACT","FLOOR","GCD","INT","ISO.CEILING","LCM","LN","LOG","LOG10","MOD","MROUND","ODD","PERMUT","PI","POISSON.DIST","POWER","QUOTIENT","RADIANS","RAND","RANDBETWEEN","ROUND","ROUNDDOWN","ROUNDUP","SIGN","SIN","SINH","SQRT","SQRTPI","TAN","TANH","TRUNC","BLANK","CONCATENATE","CONCATENATEX","EXACT","FIND","FIXED","FORMAT","LEFT","LEN","LOWER","MID","REPLACE","REPT","RIGHT","SEARCH","SUBSTITUTE","TRIM","UNICHAR","UNICODE","UPPER","VALUE"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},[/[;,.]/,"delimiter"],[/[({})]/,"@brackets"],[/[a-z_][a-zA-Z0-9_]*/,{cases:{"@keywords":"keyword","@functions":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/\/\/+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N"/,{token:"string",next:"@string"}],[/"/,{token:"string",next:"@string"}]],string:[[/[^"]+/,"string"],[/""/,"string"],[/"/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/'/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^']+/,"identifier"],[/''/,"identifier"],[/'/,{token:"identifier.quote",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/9398.a4b8a2d7.js.LICENSE.txt b/assets/js/9398.a4b8a2d7.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9398.a4b8a2d7.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9400.16453223.js b/assets/js/9400.16453223.js new file mode 100644 index 00000000000..f0c215d8c21 --- /dev/null +++ b/assets/js/9400.16453223.js @@ -0,0 +1,301 @@ +"use strict"; +exports.id = 9400; +exports.ids = [9400]; +exports.modules = { + +/***/ 69400: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/qsharp/qsharp.ts +var conf = { + comments: { + lineComment: "//" + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"', notIn: ["string", "comment"] } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' } + ] +}; +var language = { + keywords: [ + "namespace", + "open", + "as", + "operation", + "function", + "body", + "adjoint", + "newtype", + "controlled", + "if", + "elif", + "else", + "repeat", + "until", + "fixup", + "for", + "in", + "while", + "return", + "fail", + "within", + "apply", + "Adjoint", + "Controlled", + "Adj", + "Ctl", + "is", + "self", + "auto", + "distribute", + "invert", + "intrinsic", + "let", + "set", + "w/", + "new", + "not", + "and", + "or", + "use", + "borrow", + "using", + "borrowing", + "mutable", + "internal" + ], + typeKeywords: [ + "Unit", + "Int", + "BigInt", + "Double", + "Bool", + "String", + "Qubit", + "Result", + "Pauli", + "Range" + ], + invalidKeywords: [ + "abstract", + "base", + "bool", + "break", + "byte", + "case", + "catch", + "char", + "checked", + "class", + "const", + "continue", + "decimal", + "default", + "delegate", + "do", + "double", + "enum", + "event", + "explicit", + "extern", + "finally", + "fixed", + "float", + "foreach", + "goto", + "implicit", + "int", + "interface", + "lock", + "long", + "null", + "object", + "operator", + "out", + "override", + "params", + "private", + "protected", + "public", + "readonly", + "ref", + "sbyte", + "sealed", + "short", + "sizeof", + "stackalloc", + "static", + "string", + "struct", + "switch", + "this", + "throw", + "try", + "typeof", + "unit", + "ulong", + "unchecked", + "unsafe", + "ushort", + "virtual", + "void", + "volatile" + ], + constants: ["true", "false", "PauliI", "PauliX", "PauliY", "PauliZ", "One", "Zero"], + builtin: [ + "X", + "Y", + "Z", + "H", + "HY", + "S", + "T", + "SWAP", + "CNOT", + "CCNOT", + "MultiX", + "R", + "RFrac", + "Rx", + "Ry", + "Rz", + "R1", + "R1Frac", + "Exp", + "ExpFrac", + "Measure", + "M", + "MultiM", + "Message", + "Length", + "Assert", + "AssertProb", + "AssertEqual" + ], + operators: [ + "and=", + "<-", + "->", + "*", + "*=", + "@", + "!", + "^", + "^=", + ":", + "::", + "..", + "==", + "...", + "=", + "=>", + ">", + ">=", + "<", + "<=", + "-", + "-=", + "!=", + "or=", + "%", + "%=", + "|", + "+", + "+=", + "?", + "/", + "/=", + "&&&", + "&&&=", + "^^^", + "^^^=", + ">>>", + ">>>=", + "<<<", + "<<<=", + "|||", + "|||=", + "~~~", + "_", + "w/", + "w/=" + ], + namespaceFollows: ["namespace", "open"], + symbols: /[=><!~?:&|+\-*\/\^%@._]+/, + escapes: /\\[\s\S]/, + tokenizer: { + root: [ + [ + /[a-zA-Z_$][\w$]*/, + { + cases: { + "@namespaceFollows": { + token: "keyword.$0", + next: "@namespace" + }, + "@typeKeywords": "type", + "@keywords": "keyword", + "@constants": "constant", + "@builtin": "keyword", + "@invalidKeywords": "invalid", + "@default": "identifier" + } + } + ], + { include: "@whitespace" }, + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, { cases: { "@operators": "operator", "@default": "" } }], + [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"], + [/\d+/, "number"], + [/[;,.]/, "delimiter"], + [/"/, { token: "string.quote", bracket: "@open", next: "@string" }] + ], + string: [ + [/[^\\"]+/, "string"], + [/@escapes/, "string.escape"], + [/"/, { token: "string.quote", bracket: "@close", next: "@pop" }] + ], + namespace: [ + { include: "@whitespace" }, + [/[A-Za-z]\w*/, "namespace"], + [/[\.=]/, "delimiter"], + ["", "", "@pop"] + ], + whitespace: [ + [/[ \t\r\n]+/, "white"], + [/(\/\/).*/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9400.1d5fbae2.js b/assets/js/9400.1d5fbae2.js new file mode 100644 index 00000000000..b40aadd2a96 --- /dev/null +++ b/assets/js/9400.1d5fbae2.js @@ -0,0 +1,2 @@ +/*! For license information please see 9400.1d5fbae2.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9400],{69400:(e,t,o)=>{o.r(t),o.d(t,{conf:()=>n,language:()=>s});var n={comments:{lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},s={keywords:["namespace","open","as","operation","function","body","adjoint","newtype","controlled","if","elif","else","repeat","until","fixup","for","in","while","return","fail","within","apply","Adjoint","Controlled","Adj","Ctl","is","self","auto","distribute","invert","intrinsic","let","set","w/","new","not","and","or","use","borrow","using","borrowing","mutable","internal"],typeKeywords:["Unit","Int","BigInt","Double","Bool","String","Qubit","Result","Pauli","Range"],invalidKeywords:["abstract","base","bool","break","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","enum","event","explicit","extern","finally","fixed","float","foreach","goto","implicit","int","interface","lock","long","null","object","operator","out","override","params","private","protected","public","readonly","ref","sbyte","sealed","short","sizeof","stackalloc","static","string","struct","switch","this","throw","try","typeof","unit","ulong","unchecked","unsafe","ushort","virtual","void","volatile"],constants:["true","false","PauliI","PauliX","PauliY","PauliZ","One","Zero"],builtin:["X","Y","Z","H","HY","S","T","SWAP","CNOT","CCNOT","MultiX","R","RFrac","Rx","Ry","Rz","R1","R1Frac","Exp","ExpFrac","Measure","M","MultiM","Message","Length","Assert","AssertProb","AssertEqual"],operators:["and=","<-","->","*","*=","@","!","^","^=",":","::","..","==","...","=","=>",">",">=","<","<=","-","-=","!=","or=","%","%=","|","+","+=","?","/","/=","&&&","&&&=","^^^","^^^=",">>>",">>>=","<<<","<<<=","|||","|||=","~~~","_","w/","w/="],namespaceFollows:["namespace","open"],symbols:/[=><!~?:&|+\-*\/\^%@._]+/,escapes:/\\[\s\S]/,tokenizer:{root:[[/[a-zA-Z_$][\w$]*/,{cases:{"@namespaceFollows":{token:"keyword.$0",next:"@namespace"},"@typeKeywords":"type","@keywords":"keyword","@constants":"constant","@builtin":"keyword","@invalidKeywords":"invalid","@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],namespace:[{include:"@whitespace"},[/[A-Za-z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],whitespace:[[/[ \t\r\n]+/,"white"],[/(\/\/).*/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/9400.1d5fbae2.js.LICENSE.txt b/assets/js/9400.1d5fbae2.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9400.1d5fbae2.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9466.2e6a88ec.js b/assets/js/9466.2e6a88ec.js new file mode 100644 index 00000000000..e253f4a9c8c --- /dev/null +++ b/assets/js/9466.2e6a88ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9466],{29466:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>p,default:()=>i,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var o=n(87462),s=(n(67294),n(3905));n(45475);const r={title:"Module Types",slug:"/types/modules"},p=void 0,a={unversionedId:"types/modules",id:"types/modules",title:"Module Types",description:"Importing and exporting types",source:"@site/docs/types/modules.md",sourceDirName:"types",slug:"/types/modules",permalink:"/en/docs/types/modules",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/modules.md",tags:[],version:"current",frontMatter:{title:"Module Types",slug:"/types/modules"},sidebar:"docsSidebar",previous:{title:"Utility Types",permalink:"/en/docs/types/utilities"},next:{title:"Comment Types",permalink:"/en/docs/types/comments"}},m={},l=[{value:"Importing and exporting types",id:"toc-importing-and-exporting-types",level:2},{value:"Importing and exporting values as types",id:"toc-importing-and-exporting-values",level:2}],d={toc:l};function i(e){let{components:t,...n}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("h2",{id:"toc-importing-and-exporting-types"},"Importing and exporting types"),(0,s.mdx)("p",null,"It is often useful to share types between modules (files).\nIn Flow, you can export type aliases, interfaces, and classes from one file and import them in another."),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},(0,s.mdx)("inlineCode",{parentName:"strong"},"exports.js"))),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"export default class MyClass {};\nexport type MyObject = { /* ... */ };\nexport interface MyInterface { /* ... */ };\n")),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},(0,s.mdx)("inlineCode",{parentName:"strong"},"imports.js"))),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"import type MyClass, {MyObject, MyInterface} from './exports';\n")),(0,s.mdx)("blockquote",null,(0,s.mdx)("p",{parentName:"blockquote"},(0,s.mdx)("strong",{parentName:"p"},(0,s.mdx)("em",{parentName:"strong"},"Don't forget to add ",(0,s.mdx)("inlineCode",{parentName:"em"},"@flow")," at the top of your file, otherwise Flow won't report errors")),".")),(0,s.mdx)("h2",{id:"toc-importing-and-exporting-values"},"Importing and exporting values as types"),(0,s.mdx)("p",null,"Flow also supports importing the type of values exported by other modules using ",(0,s.mdx)("a",{parentName:"p",href:"../typeof/"},(0,s.mdx)("inlineCode",{parentName:"a"},"typeof")),"."),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},(0,s.mdx)("inlineCode",{parentName:"strong"},"exports.js"))),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"const myNumber = 42;\nexport default myNumber;\nexport class MyClass { /* ... */ };\n")),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},(0,s.mdx)("inlineCode",{parentName:"strong"},"imports.js"))),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"import typeof MyNumber from './exports';\nimport typeof {MyClass} from './exports';\n\nconst x: MyNumber = 1; // Works: like using `number`\n")),(0,s.mdx)("p",null,"Just like other type imports, this code can be stripped away by a compiler so\nthat it does not add a runtime dependency on the other module."))}i.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9487.c37004d9.js b/assets/js/9487.c37004d9.js new file mode 100644 index 00000000000..5b545e10678 --- /dev/null +++ b/assets/js/9487.c37004d9.js @@ -0,0 +1,7371 @@ +exports.id = 9487; +exports.ids = [9487]; +exports.modules = { + +/***/ 17295: +/***/ ((module) => { + +(function(f){if(true){module.exports=f()}else { var g; }})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=undefined;if(!f&&c)return require(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=undefined,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/******************************************************************************* + * Copyright (c) 2017 Kiel University and others. + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = function () { + function ELK() { + var _this = this; + + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, + defaultLayoutOptions = _ref$defaultLayoutOpt === undefined ? {} : _ref$defaultLayoutOpt, + _ref$algorithms = _ref.algorithms, + algorithms = _ref$algorithms === undefined ? ['layered', 'stress', 'mrtree', 'radial', 'force', 'disco', 'sporeOverlap', 'sporeCompaction', 'rectpacking'] : _ref$algorithms, + workerFactory = _ref.workerFactory, + workerUrl = _ref.workerUrl; + + _classCallCheck(this, ELK); + + this.defaultLayoutOptions = defaultLayoutOptions; + this.initialized = false; + + // check valid worker construction possible + if (typeof workerUrl === 'undefined' && typeof workerFactory === 'undefined') { + throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'."); + } + var factory = workerFactory; + if (typeof workerUrl !== 'undefined' && typeof workerFactory === 'undefined') { + // use default Web Worker + factory = function factory(url) { + return new Worker(url); + }; + } + + // create the worker + var worker = factory(workerUrl); + if (typeof worker.postMessage !== 'function') { + throw new TypeError("Created worker does not provide" + " the required 'postMessage' function."); + } + + // wrap the worker to return promises + this.worker = new PromisedWorker(worker); + + // initially register algorithms + this.worker.postMessage({ + cmd: 'register', + algorithms: algorithms + }).then(function (r) { + return _this.initialized = true; + }).catch(console.err); + } + + _createClass(ELK, [{ + key: 'layout', + value: function layout(graph) { + var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref2$layoutOptions = _ref2.layoutOptions, + layoutOptions = _ref2$layoutOptions === undefined ? this.defaultLayoutOptions : _ref2$layoutOptions, + _ref2$logging = _ref2.logging, + logging = _ref2$logging === undefined ? false : _ref2$logging, + _ref2$measureExecutio = _ref2.measureExecutionTime, + measureExecutionTime = _ref2$measureExecutio === undefined ? false : _ref2$measureExecutio; + + if (!graph) { + return Promise.reject(new Error("Missing mandatory parameter 'graph'.")); + } + return this.worker.postMessage({ + cmd: 'layout', + graph: graph, + layoutOptions: layoutOptions, + options: { + logging: logging, + measureExecutionTime: measureExecutionTime + } + }); + } + }, { + key: 'knownLayoutAlgorithms', + value: function knownLayoutAlgorithms() { + return this.worker.postMessage({ cmd: 'algorithms' }); + } + }, { + key: 'knownLayoutOptions', + value: function knownLayoutOptions() { + return this.worker.postMessage({ cmd: 'options' }); + } + }, { + key: 'knownLayoutCategories', + value: function knownLayoutCategories() { + return this.worker.postMessage({ cmd: 'categories' }); + } + }, { + key: 'terminateWorker', + value: function terminateWorker() { + this.worker.terminate(); + } + }]); + + return ELK; +}(); + +exports.default = ELK; + +var PromisedWorker = function () { + function PromisedWorker(worker) { + var _this2 = this; + + _classCallCheck(this, PromisedWorker); + + if (worker === undefined) { + throw new Error("Missing mandatory parameter 'worker'."); + } + this.resolvers = {}; + this.worker = worker; + this.worker.onmessage = function (answer) { + // why is this necessary? + setTimeout(function () { + _this2.receive(_this2, answer); + }, 0); + }; + } + + _createClass(PromisedWorker, [{ + key: 'postMessage', + value: function postMessage(msg) { + var id = this.id || 0; + this.id = id + 1; + msg.id = id; + var self = this; + return new Promise(function (resolve, reject) { + // prepare the resolver + self.resolvers[id] = function (err, res) { + if (err) { + self.convertGwtStyleError(err); + reject(err); + } else { + resolve(res); + } + }; + // post the message + self.worker.postMessage(msg); + }); + } + }, { + key: 'receive', + value: function receive(self, answer) { + var json = answer.data; + var resolver = self.resolvers[json.id]; + if (resolver) { + delete self.resolvers[json.id]; + if (json.error) { + resolver(json.error); + } else { + resolver(null, json.data); + } + } + } + }, { + key: 'terminate', + value: function terminate() { + if (this.worker.terminate) { + this.worker.terminate(); + } + } + }, { + key: 'convertGwtStyleError', + value: function convertGwtStyleError(err) { + if (!err) { + return; + } + // Somewhat flatten the way GWT stores nested exception(s) + var javaException = err['__java$exception']; + if (javaException) { + // Note that the property name of the nested exception is different + // in the non-minified ('cause') and the minified (not deterministic) version. + // Hence, the version below only works for the non-minified version. + // However, as the minified stack trace is not of much use anyway, one + // should switch the used version for debugging in such a case. + if (javaException.cause && javaException.cause.backingJsObject) { + err.cause = javaException.cause.backingJsObject; + this.convertGwtStyleError(err.cause); + } + delete err['__java$exception']; + } + } + }]); + + return PromisedWorker; +}(); +},{}],2:[function(require,module,exports){ +(function (global){(function (){ +'use strict'; + +// -------------- FAKE ELEMENTS GWT ASSUMES EXIST -------------- +var $wnd; +if (typeof window !== 'undefined') + $wnd = window +else if (typeof global !== 'undefined') + $wnd = global // nodejs +else if (typeof self !== 'undefined') + $wnd = self // web worker + +var $moduleName, + $moduleBase; + +// -------------- WORKAROUND STRICT MODE, SEE #127 -------------- +var g, i, o; + +// -------------- GENERATED CODE -------------- +function nb(){} +function xb(){} +function Fd(){} +function $g(){} +function _p(){} +function yq(){} +function Sq(){} +function Es(){} +function Jw(){} +function Vw(){} +function VA(){} +function dA(){} +function MA(){} +function PA(){} +function PB(){} +function bx(){} +function cx(){} +function vy(){} +function Nz(){} +function Yz(){} +function Ylb(){} +function Ymb(){} +function xmb(){} +function Fmb(){} +function Qmb(){} +function gcb(){} +function ccb(){} +function jcb(){} +function jtb(){} +function otb(){} +function qtb(){} +function _fb(){} +function bpb(){} +function kpb(){} +function ppb(){} +function Gpb(){} +function drb(){} +function dzb(){} +function fzb(){} +function fxb(){} +function Vxb(){} +function Ovb(){} +function byb(){} +function zyb(){} +function Zyb(){} +function _yb(){} +function hzb(){} +function jzb(){} +function lzb(){} +function nzb(){} +function rzb(){} +function zzb(){} +function Czb(){} +function Ezb(){} +function Gzb(){} +function Izb(){} +function Mzb(){} +function bBb(){} +function NBb(){} +function PBb(){} +function RBb(){} +function iCb(){} +function OCb(){} +function SCb(){} +function GDb(){} +function JDb(){} +function fEb(){} +function xEb(){} +function CEb(){} +function GEb(){} +function yFb(){} +function KGb(){} +function tIb(){} +function vIb(){} +function xIb(){} +function zIb(){} +function OIb(){} +function SIb(){} +function TJb(){} +function VJb(){} +function XJb(){} +function XKb(){} +function fKb(){} +function VKb(){} +function VLb(){} +function jLb(){} +function nLb(){} +function GLb(){} +function KLb(){} +function MLb(){} +function OLb(){} +function RLb(){} +function YLb(){} +function bMb(){} +function gMb(){} +function lMb(){} +function pMb(){} +function wMb(){} +function zMb(){} +function CMb(){} +function FMb(){} +function LMb(){} +function zNb(){} +function PNb(){} +function kOb(){} +function pOb(){} +function tOb(){} +function yOb(){} +function FOb(){} +function GPb(){} +function aQb(){} +function cQb(){} +function eQb(){} +function gQb(){} +function iQb(){} +function CQb(){} +function MQb(){} +function OQb(){} +function ASb(){} +function fTb(){} +function kTb(){} +function STb(){} +function fUb(){} +function DUb(){} +function VUb(){} +function YUb(){} +function _Ub(){} +function _Wb(){} +function QWb(){} +function XWb(){} +function jVb(){} +function DVb(){} +function VVb(){} +function $Vb(){} +function dXb(){} +function hXb(){} +function lXb(){} +function gYb(){} +function HYb(){} +function SYb(){} +function VYb(){} +function dZb(){} +function P$b(){} +function T$b(){} +function h1b(){} +function m1b(){} +function q1b(){} +function u1b(){} +function y1b(){} +function C1b(){} +function e2b(){} +function g2b(){} +function m2b(){} +function q2b(){} +function u2b(){} +function S2b(){} +function U2b(){} +function W2b(){} +function _2b(){} +function e3b(){} +function h3b(){} +function p3b(){} +function t3b(){} +function w3b(){} +function y3b(){} +function A3b(){} +function M3b(){} +function Q3b(){} +function U3b(){} +function Y3b(){} +function l4b(){} +function q4b(){} +function s4b(){} +function u4b(){} +function w4b(){} +function y4b(){} +function L4b(){} +function N4b(){} +function P4b(){} +function R4b(){} +function T4b(){} +function X4b(){} +function I5b(){} +function Q5b(){} +function T5b(){} +function Z5b(){} +function l6b(){} +function o6b(){} +function t6b(){} +function z6b(){} +function L6b(){} +function M6b(){} +function P6b(){} +function X6b(){} +function $6b(){} +function a7b(){} +function c7b(){} +function g7b(){} +function j7b(){} +function m7b(){} +function r7b(){} +function x7b(){} +function D7b(){} +function D9b(){} +function b9b(){} +function h9b(){} +function j9b(){} +function l9b(){} +function w9b(){} +function F9b(){} +function hac(){} +function jac(){} +function pac(){} +function uac(){} +function Iac(){} +function Kac(){} +function Sac(){} +function obc(){} +function rbc(){} +function vbc(){} +function Fbc(){} +function Jbc(){} +function Xbc(){} +function ccc(){} +function fcc(){} +function lcc(){} +function occ(){} +function tcc(){} +function ycc(){} +function Acc(){} +function Ccc(){} +function Ecc(){} +function Gcc(){} +function Zcc(){} +function _cc(){} +function bdc(){} +function fdc(){} +function jdc(){} +function pdc(){} +function sdc(){} +function ydc(){} +function Adc(){} +function Cdc(){} +function Edc(){} +function Idc(){} +function Ndc(){} +function Qdc(){} +function Sdc(){} +function Udc(){} +function Wdc(){} +function Ydc(){} +function aec(){} +function hec(){} +function jec(){} +function lec(){} +function nec(){} +function uec(){} +function wec(){} +function yec(){} +function Aec(){} +function Fec(){} +function Jec(){} +function Lec(){} +function Nec(){} +function Rec(){} +function Uec(){} +function Zec(){} +function Zfc(){} +function lfc(){} +function tfc(){} +function xfc(){} +function zfc(){} +function Ffc(){} +function Jfc(){} +function Nfc(){} +function Pfc(){} +function Vfc(){} +function _fc(){} +function fgc(){} +function jgc(){} +function lgc(){} +function Bgc(){} +function ehc(){} +function ghc(){} +function ihc(){} +function khc(){} +function mhc(){} +function ohc(){} +function qhc(){} +function yhc(){} +function Ahc(){} +function Ghc(){} +function Ihc(){} +function Khc(){} +function Mhc(){} +function Shc(){} +function Uhc(){} +function Whc(){} +function dic(){} +function dlc(){} +function blc(){} +function flc(){} +function hlc(){} +function jlc(){} +function Glc(){} +function Ilc(){} +function Klc(){} +function Mlc(){} +function Mjc(){} +function Qjc(){} +function Qlc(){} +function Ulc(){} +function Ylc(){} +function Lkc(){} +function Nkc(){} +function Pkc(){} +function Rkc(){} +function Xkc(){} +function _kc(){} +function gmc(){} +function kmc(){} +function zmc(){} +function Fmc(){} +function Wmc(){} +function $mc(){} +function anc(){} +function mnc(){} +function wnc(){} +function Hnc(){} +function Jnc(){} +function Lnc(){} +function Nnc(){} +function Pnc(){} +function Ync(){} +function eoc(){} +function Aoc(){} +function Coc(){} +function Eoc(){} +function Joc(){} +function Loc(){} +function Zoc(){} +function _oc(){} +function bpc(){} +function hpc(){} +function kpc(){} +function ppc(){} +function pFc(){} +function Ryc(){} +function QCc(){} +function PDc(){} +function xGc(){} +function HGc(){} +function JGc(){} +function NGc(){} +function GIc(){} +function iKc(){} +function mKc(){} +function wKc(){} +function yKc(){} +function AKc(){} +function EKc(){} +function KKc(){} +function OKc(){} +function QKc(){} +function SKc(){} +function UKc(){} +function YKc(){} +function aLc(){} +function fLc(){} +function hLc(){} +function nLc(){} +function pLc(){} +function tLc(){} +function vLc(){} +function zLc(){} +function BLc(){} +function DLc(){} +function FLc(){} +function sMc(){} +function JMc(){} +function hNc(){} +function RNc(){} +function ZNc(){} +function _Nc(){} +function bOc(){} +function dOc(){} +function fOc(){} +function hOc(){} +function hRc(){} +function jRc(){} +function KRc(){} +function NRc(){} +function NQc(){} +function LQc(){} +function _Qc(){} +function cPc(){} +function iPc(){} +function kPc(){} +function mPc(){} +function xPc(){} +function zPc(){} +function zSc(){} +function BSc(){} +function GSc(){} +function ISc(){} +function NSc(){} +function TSc(){} +function NTc(){} +function NVc(){} +function oVc(){} +function SVc(){} +function VVc(){} +function XVc(){} +function ZVc(){} +function bWc(){} +function bXc(){} +function CXc(){} +function FXc(){} +function IXc(){} +function MXc(){} +function UXc(){} +function bYc(){} +function fYc(){} +function oYc(){} +function qYc(){} +function uYc(){} +function pZc(){} +function G$c(){} +function h0c(){} +function N0c(){} +function k1c(){} +function I1c(){} +function Q1c(){} +function f2c(){} +function i2c(){} +function k2c(){} +function w2c(){} +function O2c(){} +function S2c(){} +function Z2c(){} +function v3c(){} +function x3c(){} +function R3c(){} +function U3c(){} +function e4c(){} +function w4c(){} +function x4c(){} +function z4c(){} +function B4c(){} +function D4c(){} +function F4c(){} +function H4c(){} +function J4c(){} +function L4c(){} +function N4c(){} +function P4c(){} +function R4c(){} +function T4c(){} +function V4c(){} +function X4c(){} +function Z4c(){} +function _4c(){} +function _7c(){} +function b5c(){} +function d5c(){} +function f5c(){} +function h5c(){} +function H5c(){} +function Hfd(){} +function Zfd(){} +function Zed(){} +function ged(){} +function Jed(){} +function Ned(){} +function Red(){} +function Ved(){} +function bbd(){} +function mdd(){} +function _fd(){} +function fgd(){} +function kgd(){} +function Mgd(){} +function Ahd(){} +function Ald(){} +function Tld(){} +function xkd(){} +function rmd(){} +function knd(){} +function Jod(){} +function JCd(){} +function Bpd(){} +function BFd(){} +function oFd(){} +function bqd(){} +function bvd(){} +function jvd(){} +function yud(){} +function Hxd(){} +function EBd(){} +function aDd(){} +function MGd(){} +function vHd(){} +function RHd(){} +function wNd(){} +function zNd(){} +function CNd(){} +function KNd(){} +function XNd(){} +function $Nd(){} +function HPd(){} +function lUd(){} +function XUd(){} +function DWd(){} +function GWd(){} +function JWd(){} +function MWd(){} +function PWd(){} +function SWd(){} +function VWd(){} +function YWd(){} +function _Wd(){} +function xYd(){} +function BYd(){} +function mZd(){} +function EZd(){} +function GZd(){} +function JZd(){} +function MZd(){} +function PZd(){} +function SZd(){} +function VZd(){} +function YZd(){} +function _Zd(){} +function c$d(){} +function f$d(){} +function i$d(){} +function l$d(){} +function o$d(){} +function r$d(){} +function u$d(){} +function x$d(){} +function A$d(){} +function D$d(){} +function G$d(){} +function J$d(){} +function M$d(){} +function P$d(){} +function S$d(){} +function V$d(){} +function Y$d(){} +function _$d(){} +function c_d(){} +function f_d(){} +function i_d(){} +function l_d(){} +function o_d(){} +function r_d(){} +function u_d(){} +function x_d(){} +function A_d(){} +function D_d(){} +function G_d(){} +function J_d(){} +function M_d(){} +function P_d(){} +function S_d(){} +function V_d(){} +function Y_d(){} +function h5d(){} +function U6d(){} +function U9d(){} +function _8d(){} +function fae(){} +function hae(){} +function kae(){} +function nae(){} +function qae(){} +function tae(){} +function wae(){} +function zae(){} +function Cae(){} +function Fae(){} +function Iae(){} +function Lae(){} +function Oae(){} +function Rae(){} +function Uae(){} +function Xae(){} +function $ae(){} +function bbe(){} +function ebe(){} +function hbe(){} +function kbe(){} +function nbe(){} +function qbe(){} +function tbe(){} +function wbe(){} +function zbe(){} +function Cbe(){} +function Fbe(){} +function Ibe(){} +function Lbe(){} +function Obe(){} +function Rbe(){} +function Ube(){} +function Xbe(){} +function $be(){} +function bce(){} +function ece(){} +function hce(){} +function kce(){} +function nce(){} +function qce(){} +function tce(){} +function wce(){} +function zce(){} +function Cce(){} +function Fce(){} +function Ice(){} +function Lce(){} +function Oce(){} +function Rce(){} +function Uce(){} +function Xce(){} +function ude(){} +function Vge(){} +function dhe(){} +function s_b(a){} +function jSd(a){} +function ol(){wb()} +function oPb(){nPb()} +function EPb(){CPb()} +function gFb(){fFb()} +function TRb(){SRb()} +function ySb(){wSb()} +function PSb(){OSb()} +function dTb(){bTb()} +function i4b(){b4b()} +function D2b(){x2b()} +function J6b(){D6b()} +function u9b(){q9b()} +function $9b(){I9b()} +function Umc(){Imc()} +function abc(){Vac()} +function ZCc(){VCc()} +function kCc(){hCc()} +function rCc(){oCc()} +function Tcc(){Occ()} +function xkc(){gkc()} +function xDc(){rDc()} +function iDc(){cDc()} +function kwc(){jwc()} +function tJc(){jJc()} +function dJc(){aJc()} +function Pyc(){Nyc()} +function VBc(){SBc()} +function CFc(){yFc()} +function CUc(){wUc()} +function lUc(){fUc()} +function sUc(){pUc()} +function IUc(){GUc()} +function IWc(){HWc()} +function _Wc(){ZWc()} +function fHc(){dHc()} +function f0c(){d0c()} +function B0c(){A0c()} +function L0c(){J0c()} +function LTc(){JTc()} +function sTc(){rTc()} +function KLc(){ILc()} +function wNc(){tNc()} +function PYc(){OYc()} +function nZc(){lZc()} +function q3c(){p3c()} +function Z7c(){X7c()} +function Z9c(){Y9c()} +function _ad(){Zad()} +function kdd(){idd()} +function $md(){Smd()} +function HGd(){tGd()} +function hLd(){NKd()} +function J6d(){Uge()} +function Mvb(a){uCb(a)} +function Yb(a){this.a=a} +function cc(a){this.a=a} +function cj(a){this.a=a} +function ij(a){this.a=a} +function Dj(a){this.a=a} +function df(a){this.a=a} +function kf(a){this.a=a} +function ah(a){this.a=a} +function lh(a){this.a=a} +function th(a){this.a=a} +function Ph(a){this.a=a} +function vi(a){this.a=a} +function Ci(a){this.a=a} +function Fk(a){this.a=a} +function Ln(a){this.a=a} +function ap(a){this.a=a} +function zp(a){this.a=a} +function Yp(a){this.a=a} +function qq(a){this.a=a} +function Dq(a){this.a=a} +function wr(a){this.a=a} +function Ir(a){this.b=a} +function sj(a){this.c=a} +function sw(a){this.a=a} +function fw(a){this.a=a} +function xw(a){this.a=a} +function Cw(a){this.a=a} +function Qw(a){this.a=a} +function Rw(a){this.a=a} +function Xw(a){this.a=a} +function Xv(a){this.a=a} +function Sv(a){this.a=a} +function eu(a){this.a=a} +function Zx(a){this.a=a} +function _x(a){this.a=a} +function xy(a){this.a=a} +function xB(a){this.a=a} +function HB(a){this.a=a} +function TB(a){this.a=a} +function fC(a){this.a=a} +function wB(){this.a=[]} +function MBb(a,b){a.a=b} +function w_b(a,b){a.a=b} +function x_b(a,b){a.b=b} +function YOb(a,b){a.b=b} +function $Ob(a,b){a.b=b} +function ZGb(a,b){a.j=b} +function qNb(a,b){a.g=b} +function rNb(a,b){a.i=b} +function dRb(a,b){a.c=b} +function eRb(a,b){a.d=b} +function z_b(a,b){a.d=b} +function y_b(a,b){a.c=b} +function __b(a,b){a.k=b} +function E0b(a,b){a.c=b} +function njc(a,b){a.c=b} +function mjc(a,b){a.a=b} +function dFc(a,b){a.a=b} +function eFc(a,b){a.f=b} +function nOc(a,b){a.a=b} +function oOc(a,b){a.b=b} +function pOc(a,b){a.d=b} +function qOc(a,b){a.i=b} +function rOc(a,b){a.o=b} +function sOc(a,b){a.r=b} +function $Pc(a,b){a.a=b} +function _Pc(a,b){a.b=b} +function DVc(a,b){a.e=b} +function EVc(a,b){a.f=b} +function FVc(a,b){a.g=b} +function SZc(a,b){a.e=b} +function TZc(a,b){a.f=b} +function c$c(a,b){a.f=b} +function bJd(a,b){a.n=b} +function A1d(a,b){a.a=b} +function J1d(a,b){a.a=b} +function B1d(a,b){a.c=b} +function K1d(a,b){a.c=b} +function L1d(a,b){a.d=b} +function M1d(a,b){a.e=b} +function N1d(a,b){a.g=b} +function d2d(a,b){a.a=b} +function e2d(a,b){a.c=b} +function f2d(a,b){a.d=b} +function g2d(a,b){a.e=b} +function h2d(a,b){a.f=b} +function i2d(a,b){a.j=b} +function Z8d(a,b){a.a=b} +function $8d(a,b){a.b=b} +function g9d(a,b){a.a=b} +function Cic(a){a.b=a.a} +function Dg(a){a.c=a.d.d} +function vib(a){this.d=a} +function eib(a){this.a=a} +function Pib(a){this.a=a} +function Vib(a){this.a=a} +function $ib(a){this.a=a} +function mcb(a){this.a=a} +function Mcb(a){this.a=a} +function Xcb(a){this.a=a} +function Ndb(a){this.a=a} +function _db(a){this.a=a} +function teb(a){this.a=a} +function Qeb(a){this.a=a} +function djb(a){this.a=a} +function Gjb(a){this.a=a} +function Njb(a){this.a=a} +function Bjb(a){this.b=a} +function lnb(a){this.b=a} +function Dnb(a){this.b=a} +function anb(a){this.a=a} +function Mob(a){this.a=a} +function Rob(a){this.a=a} +function iob(a){this.c=a} +function olb(a){this.c=a} +function qub(a){this.c=a} +function Tub(a){this.a=a} +function Vub(a){this.a=a} +function Xub(a){this.a=a} +function Zub(a){this.a=a} +function tpb(a){this.a=a} +function _pb(a){this.a=a} +function Wqb(a){this.a=a} +function nsb(a){this.a=a} +function Rxb(a){this.a=a} +function Txb(a){this.a=a} +function Xxb(a){this.a=a} +function bzb(a){this.a=a} +function tzb(a){this.a=a} +function vzb(a){this.a=a} +function xzb(a){this.a=a} +function Kzb(a){this.a=a} +function Ozb(a){this.a=a} +function iAb(a){this.a=a} +function kAb(a){this.a=a} +function mAb(a){this.a=a} +function BAb(a){this.a=a} +function hBb(a){this.a=a} +function jBb(a){this.a=a} +function nBb(a){this.a=a} +function TBb(a){this.a=a} +function XBb(a){this.a=a} +function QCb(a){this.a=a} +function WCb(a){this.a=a} +function _Cb(a){this.a=a} +function dEb(a){this.a=a} +function QGb(a){this.a=a} +function YGb(a){this.a=a} +function tKb(a){this.a=a} +function CLb(a){this.a=a} +function JMb(a){this.a=a} +function RNb(a){this.a=a} +function kQb(a){this.a=a} +function mQb(a){this.a=a} +function FQb(a){this.a=a} +function ETb(a){this.a=a} +function UTb(a){this.a=a} +function dUb(a){this.a=a} +function hUb(a){this.a=a} +function EZb(a){this.a=a} +function j$b(a){this.a=a} +function v$b(a){this.e=a} +function J0b(a){this.a=a} +function M0b(a){this.a=a} +function R0b(a){this.a=a} +function U0b(a){this.a=a} +function i2b(a){this.a=a} +function k2b(a){this.a=a} +function o2b(a){this.a=a} +function s2b(a){this.a=a} +function G2b(a){this.a=a} +function I2b(a){this.a=a} +function K2b(a){this.a=a} +function M2b(a){this.a=a} +function W3b(a){this.a=a} +function $3b(a){this.a=a} +function V4b(a){this.a=a} +function u5b(a){this.a=a} +function A7b(a){this.a=a} +function G7b(a){this.a=a} +function J7b(a){this.a=a} +function M7b(a){this.a=a} +function Mbc(a){this.a=a} +function Pbc(a){this.a=a} +function lac(a){this.a=a} +function nac(a){this.a=a} +function qcc(a){this.a=a} +function Gdc(a){this.a=a} +function $dc(a){this.a=a} +function cec(a){this.a=a} +function _ec(a){this.a=a} +function pfc(a){this.a=a} +function Bfc(a){this.a=a} +function Lfc(a){this.a=a} +function ygc(a){this.a=a} +function Dgc(a){this.a=a} +function shc(a){this.a=a} +function uhc(a){this.a=a} +function whc(a){this.a=a} +function Chc(a){this.a=a} +function Ehc(a){this.a=a} +function Ohc(a){this.a=a} +function Yhc(a){this.a=a} +function Tkc(a){this.a=a} +function Vkc(a){this.a=a} +function Olc(a){this.a=a} +function pnc(a){this.a=a} +function rnc(a){this.a=a} +function dpc(a){this.a=a} +function fpc(a){this.a=a} +function GCc(a){this.a=a} +function KCc(a){this.a=a} +function mDc(a){this.a=a} +function jEc(a){this.a=a} +function HEc(a){this.a=a} +function FEc(a){this.c=a} +function qoc(a){this.b=a} +function bFc(a){this.a=a} +function GFc(a){this.a=a} +function iGc(a){this.a=a} +function kGc(a){this.a=a} +function mGc(a){this.a=a} +function $Gc(a){this.a=a} +function hIc(a){this.a=a} +function lIc(a){this.a=a} +function pIc(a){this.a=a} +function tIc(a){this.a=a} +function xIc(a){this.a=a} +function zIc(a){this.a=a} +function CIc(a){this.a=a} +function LIc(a){this.a=a} +function CKc(a){this.a=a} +function IKc(a){this.a=a} +function MKc(a){this.a=a} +function $Kc(a){this.a=a} +function cLc(a){this.a=a} +function jLc(a){this.a=a} +function rLc(a){this.a=a} +function xLc(a){this.a=a} +function OMc(a){this.a=a} +function ZOc(a){this.a=a} +function ZRc(a){this.a=a} +function aSc(a){this.a=a} +function I$c(a){this.a=a} +function K$c(a){this.a=a} +function M$c(a){this.a=a} +function O$c(a){this.a=a} +function U$c(a){this.a=a} +function n1c(a){this.a=a} +function z1c(a){this.a=a} +function B1c(a){this.a=a} +function Q2c(a){this.a=a} +function U2c(a){this.a=a} +function z3c(a){this.a=a} +function med(a){this.a=a} +function Xed(a){this.a=a} +function _ed(a){this.a=a} +function Qfd(a){this.a=a} +function Bgd(a){this.a=a} +function $gd(a){this.a=a} +function lrd(a){this.a=a} +function urd(a){this.a=a} +function vrd(a){this.a=a} +function wrd(a){this.a=a} +function xrd(a){this.a=a} +function yrd(a){this.a=a} +function zrd(a){this.a=a} +function Ard(a){this.a=a} +function Brd(a){this.a=a} +function Crd(a){this.a=a} +function Ird(a){this.a=a} +function Krd(a){this.a=a} +function Lrd(a){this.a=a} +function Mrd(a){this.a=a} +function Nrd(a){this.a=a} +function Prd(a){this.a=a} +function Srd(a){this.a=a} +function Yrd(a){this.a=a} +function Zrd(a){this.a=a} +function _rd(a){this.a=a} +function asd(a){this.a=a} +function bsd(a){this.a=a} +function csd(a){this.a=a} +function dsd(a){this.a=a} +function msd(a){this.a=a} +function osd(a){this.a=a} +function qsd(a){this.a=a} +function ssd(a){this.a=a} +function Wsd(a){this.a=a} +function Lsd(a){this.b=a} +function thd(a){this.f=a} +function qtd(a){this.a=a} +function yBd(a){this.a=a} +function GBd(a){this.a=a} +function MBd(a){this.a=a} +function SBd(a){this.a=a} +function iCd(a){this.a=a} +function YMd(a){this.a=a} +function GNd(a){this.a=a} +function EPd(a){this.a=a} +function EQd(a){this.a=a} +function NTd(a){this.a=a} +function qOd(a){this.b=a} +function lVd(a){this.c=a} +function VVd(a){this.e=a} +function iYd(a){this.a=a} +function RYd(a){this.a=a} +function ZYd(a){this.a=a} +function z0d(a){this.a=a} +function O0d(a){this.a=a} +function s0d(a){this.d=a} +function W5d(a){this.a=a} +function cge(a){this.a=a} +function xfe(a){this.e=a} +function Tfd(){this.a=0} +function jkb(){Vjb(this)} +function Rkb(){Ckb(this)} +function Lqb(){Uhb(this)} +function lEb(){kEb(this)} +function A_b(){s_b(this)} +function UQd(){this.c=FQd} +function v6d(a,b){b.Wb(a)} +function moc(a,b){a.b+=b} +function yXb(a){a.b=new Ji} +function vbb(a){return a.e} +function DB(a){return a.a} +function LB(a){return a.a} +function ZB(a){return a.a} +function lC(a){return a.a} +function EC(a){return a.a} +function wC(){return null} +function SB(){return null} +function hcb(){mvd();ovd()} +function zJb(a){a.b.tf(a.e)} +function j5b(a,b){a.b=b-a.b} +function g5b(a,b){a.a=b-a.a} +function PXc(a,b){b.ad(a.a)} +function plc(a,b){G0b(b,a)} +function hp(a,b,c){a.Od(c,b)} +function As(a,b){a.e=b;b.b=a} +function Zl(a){Ql();this.a=a} +function jq(a){Ql();this.a=a} +function sq(a){Ql();this.a=a} +function Fq(a){im();this.a=a} +function Sz(a){Rz();Qz.be(a)} +function gz(){Xy.call(this)} +function xcb(){Xy.call(this)} +function pcb(){gz.call(this)} +function tcb(){gz.call(this)} +function Bdb(){gz.call(this)} +function Vdb(){gz.call(this)} +function Ydb(){gz.call(this)} +function Geb(){gz.call(this)} +function bgb(){gz.call(this)} +function Apb(){gz.call(this)} +function Jpb(){gz.call(this)} +function utb(){gz.call(this)} +function x2c(){gz.call(this)} +function rQd(){this.a=this} +function MPd(){this.Bb|=256} +function tTb(){this.b=new mt} +function fA(){fA=ccb;new Lqb} +function rcb(){pcb.call(this)} +function dCb(a,b){a.length=b} +function Tvb(a,b){Ekb(a.a,b)} +function sKb(a,b){UHb(a.c,b)} +function SMc(a,b){Qqb(a.b,b)} +function vBd(a,b){uAd(a.a,b)} +function wBd(a,b){vAd(a.a,b)} +function GLd(a,b){Uhd(a.e,b)} +function d7d(a){D2d(a.c,a.b)} +function mj(a,b){a.kc().Nb(b)} +function Odb(a){this.a=Tdb(a)} +function Tqb(){this.a=new Lqb} +function gyb(){this.a=new Lqb} +function Wvb(){this.a=new Rkb} +function KFb(){this.a=new Rkb} +function PFb(){this.a=new Rkb} +function FFb(){this.a=new yFb} +function pGb(){this.a=new MFb} +function ZQb(){this.a=new MQb} +function Gxb(){this.a=new Pwb} +function jUb(){this.a=new PTb} +function sDb(){this.a=new oDb} +function zDb(){this.a=new tDb} +function CWb(){this.a=new Rkb} +function HXb(){this.a=new Rkb} +function nYb(){this.a=new Rkb} +function BYb(){this.a=new Rkb} +function fLb(){this.d=new Rkb} +function vYb(){this.a=new Tqb} +function a2b(){this.a=new Lqb} +function wZb(){this.b=new Lqb} +function TCc(){this.b=new Rkb} +function zJc(){this.e=new Rkb} +function uMc(){this.d=new Rkb} +function wdc(){this.a=new xkc} +function vKc(){Rkb.call(this)} +function twb(){Wvb.call(this)} +function oHb(){$Gb.call(this)} +function LXb(){HXb.call(this)} +function L_b(){H_b.call(this)} +function H_b(){A_b.call(this)} +function p0b(){A_b.call(this)} +function s0b(){p0b.call(this)} +function WMc(){VMc.call(this)} +function bNc(){VMc.call(this)} +function EPc(){CPc.call(this)} +function JPc(){CPc.call(this)} +function OPc(){CPc.call(this)} +function w1c(){s1c.call(this)} +function s7c(){Psb.call(this)} +function apd(){Ald.call(this)} +function ppd(){Ald.call(this)} +function lDd(){YCd.call(this)} +function NDd(){YCd.call(this)} +function mFd(){Lqb.call(this)} +function vFd(){Lqb.call(this)} +function GFd(){Lqb.call(this)} +function KPd(){Tqb.call(this)} +function OJd(){hJd.call(this)} +function aQd(){MPd.call(this)} +function SSd(){FId.call(this)} +function rUd(){FId.call(this)} +function oUd(){Lqb.call(this)} +function NYd(){Lqb.call(this)} +function cZd(){Lqb.call(this)} +function R8d(){MGd.call(this)} +function o9d(){MGd.call(this)} +function i9d(){R8d.call(this)} +function hee(){ude.call(this)} +function Dd(a){yd.call(this,a)} +function Hd(a){yd.call(this,a)} +function ph(a){lh.call(this,a)} +function Sh(a){Wc.call(this,a)} +function oi(a){Sh.call(this,a)} +function Ii(a){Wc.call(this,a)} +function Zdd(){this.a=new Psb} +function CPc(){this.a=new Tqb} +function s1c(){this.a=new Lqb} +function QSc(){this.a=new Rkb} +function D2c(){this.j=new Rkb} +function QXc(){this.a=new UXc} +function e_c(){this.a=new d_c} +function YCd(){this.a=new aDd} +function _k(){_k=ccb;$k=new al} +function Lk(){Lk=ccb;Kk=new Mk} +function wb(){wb=ccb;vb=new xb} +function hs(){hs=ccb;gs=new is} +function rs(a){Sh.call(this,a)} +function Gp(a){Sh.call(this,a)} +function xp(a){Lo.call(this,a)} +function Ep(a){Lo.call(this,a)} +function Tp(a){Wn.call(this,a)} +function wx(a){un.call(this,a)} +function ov(a){dv.call(this,a)} +function Mv(a){Br.call(this,a)} +function Ov(a){Br.call(this,a)} +function Lw(a){Br.call(this,a)} +function hz(a){Yy.call(this,a)} +function MB(a){hz.call(this,a)} +function eC(){fC.call(this,{})} +function Ftb(a){Atb();this.a=a} +function zwb(a){a.b=null;a.c=0} +function Vy(a,b){a.e=b;Sy(a,b)} +function LVb(a,b){a.a=b;NVb(a)} +function lIb(a,b,c){a.a[b.g]=c} +function vfd(a,b,c){Dfd(c,a,b)} +function Odc(a,b){rjc(b.i,a.n)} +function Wyc(a,b){Xyc(a).td(b)} +function ERb(a,b){return a*a/b} +function Xr(a,b){return a.g-b.g} +function tC(a){return new TB(a)} +function vC(a){return new yC(a)} +function ocb(a){hz.call(this,a)} +function qcb(a){hz.call(this,a)} +function ucb(a){hz.call(this,a)} +function vcb(a){Yy.call(this,a)} +function fGc(a){LFc();this.a=a} +function c0d(a){kzd();this.a=a} +function bhd(a){Rgd();this.f=a} +function dhd(a){Rgd();this.f=a} +function Cdb(a){hz.call(this,a)} +function Wdb(a){hz.call(this,a)} +function Zdb(a){hz.call(this,a)} +function Feb(a){hz.call(this,a)} +function Heb(a){hz.call(this,a)} +function Ccb(a){return uCb(a),a} +function Edb(a){return uCb(a),a} +function Gdb(a){return uCb(a),a} +function jfb(a){return uCb(a),a} +function tfb(a){return uCb(a),a} +function akb(a){return a.b==a.c} +function Hwb(a){return !!a&&a.b} +function pIb(a){return !!a&&a.k} +function qIb(a){return !!a&&a.j} +function amb(a){uCb(a);this.a=a} +function wVb(a){qVb(a);return a} +function Blb(a){Glb(a,a.length)} +function cgb(a){hz.call(this,a)} +function cqd(a){hz.call(this,a)} +function n8d(a){hz.call(this,a)} +function y2c(a){hz.call(this,a)} +function z2c(a){hz.call(this,a)} +function mde(a){hz.call(this,a)} +function pc(a){qc.call(this,a,0)} +function Ji(){Ki.call(this,12,3)} +function Kz(){Kz=ccb;Jz=new Nz} +function jz(){jz=ccb;iz=new nb} +function KA(){KA=ccb;JA=new MA} +function OB(){OB=ccb;NB=new PB} +function jc(){throw vbb(new bgb)} +function zh(){throw vbb(new bgb)} +function Pi(){throw vbb(new bgb)} +function Pj(){throw vbb(new bgb)} +function Qj(){throw vbb(new bgb)} +function Ym(){throw vbb(new bgb)} +function Gb(){this.a=GD(Qb(She))} +function oy(a){Ql();this.a=Qb(a)} +function Bs(a,b){a.Td(b);b.Sd(a)} +function iw(a,b){a.a.ec().Mc(b)} +function CYb(a,b,c){a.c.lf(b,c)} +function scb(a){qcb.call(this,a)} +function Oeb(a){Wdb.call(this,a)} +function Hfb(){mcb.call(this,'')} +function Ifb(){mcb.call(this,'')} +function Ufb(){mcb.call(this,'')} +function Vfb(){mcb.call(this,'')} +function Xfb(a){qcb.call(this,a)} +function zob(a){lnb.call(this,a)} +function Yob(a){Inb.call(this,a)} +function Gob(a){zob.call(this,a)} +function Mk(){Fk.call(this,null)} +function al(){Fk.call(this,null)} +function Az(){Az=ccb;!!(Rz(),Qz)} +function wrb(){wrb=ccb;vrb=yrb()} +function Mtb(a){return a.a?a.b:0} +function Vtb(a){return a.a?a.b:0} +function Lcb(a,b){return a.a-b.a} +function Wcb(a,b){return a.a-b.a} +function Peb(a,b){return a.a-b.a} +function eCb(a,b){return PC(a,b)} +function GC(a,b){return rdb(a,b)} +function _B(b,a){return a in b.a} +function _Db(a,b){a.f=b;return a} +function ZDb(a,b){a.b=b;return a} +function $Db(a,b){a.c=b;return a} +function aEb(a,b){a.g=b;return a} +function HGb(a,b){a.a=b;return a} +function IGb(a,b){a.f=b;return a} +function JGb(a,b){a.k=b;return a} +function dLb(a,b){a.a=b;return a} +function eLb(a,b){a.e=b;return a} +function zVb(a,b){a.e=b;return a} +function AVb(a,b){a.f=b;return a} +function KOb(a,b){a.b=true;a.d=b} +function DHb(a,b){a.b=new g7c(b)} +function uvb(a,b,c){b.td(a.a[c])} +function zvb(a,b,c){b.we(a.a[c])} +function wJc(a,b){return a.b-b.b} +function kOc(a,b){return a.g-b.g} +function WQc(a,b){return a.s-b.s} +function Lic(a,b){return a?0:b-1} +function SFc(a,b){return a?0:b-1} +function RFc(a,b){return a?b-1:0} +function M2c(a,b){return b.Yf(a)} +function M3c(a,b){a.b=b;return a} +function L3c(a,b){a.a=b;return a} +function N3c(a,b){a.c=b;return a} +function O3c(a,b){a.d=b;return a} +function P3c(a,b){a.e=b;return a} +function Q3c(a,b){a.f=b;return a} +function b4c(a,b){a.a=b;return a} +function c4c(a,b){a.b=b;return a} +function d4c(a,b){a.c=b;return a} +function z5c(a,b){a.c=b;return a} +function y5c(a,b){a.b=b;return a} +function A5c(a,b){a.d=b;return a} +function B5c(a,b){a.e=b;return a} +function C5c(a,b){a.f=b;return a} +function D5c(a,b){a.g=b;return a} +function E5c(a,b){a.a=b;return a} +function F5c(a,b){a.i=b;return a} +function G5c(a,b){a.j=b;return a} +function Vdd(a,b){a.k=b;return a} +function Wdd(a,b){a.j=b;return a} +function ykc(a,b){gkc();F0b(b,a)} +function T$c(a,b,c){R$c(a.a,b,c)} +function RGc(a){cEc.call(this,a)} +function iHc(a){cEc.call(this,a)} +function t7c(a){Qsb.call(this,a)} +function aPb(a){_Ob.call(this,a)} +function Ixd(a){zud.call(this,a)} +function dCd(a){ZBd.call(this,a)} +function fCd(a){ZBd.call(this,a)} +function p_b(){q_b.call(this,'')} +function d7c(){this.a=0;this.b=0} +function aPc(){this.b=0;this.a=0} +function NJd(a,b){a.b=0;DId(a,b)} +function X1d(a,b){a.c=b;a.b=true} +function Oc(a,b){return a.c._b(b)} +function gdb(a){return a.e&&a.e()} +function Vd(a){return !a?null:a.d} +function sn(a,b){return Gv(a.b,b)} +function Fv(a){return !a?null:a.g} +function Kv(a){return !a?null:a.i} +function hdb(a){fdb(a);return a.o} +function Fhd(){Fhd=ccb;Ehd=ond()} +function Hhd(){Hhd=ccb;Ghd=Cod()} +function LFd(){LFd=ccb;KFd=qZd()} +function p8d(){p8d=ccb;o8d=Y9d()} +function r8d(){r8d=ccb;q8d=dae()} +function mvd(){mvd=ccb;lvd=n4c()} +function Srb(){throw vbb(new bgb)} +function enb(){throw vbb(new bgb)} +function fnb(){throw vbb(new bgb)} +function gnb(){throw vbb(new bgb)} +function jnb(){throw vbb(new bgb)} +function Cnb(){throw vbb(new bgb)} +function Uqb(a){this.a=new Mqb(a)} +function tgb(a){lgb();ngb(this,a)} +function Hxb(a){this.a=new Qwb(a)} +function _ub(a,b){while(a.ye(b));} +function Sub(a,b){while(a.sd(b));} +function Bfb(a,b){a.a+=b;return a} +function Cfb(a,b){a.a+=b;return a} +function Ffb(a,b){a.a+=b;return a} +function Lfb(a,b){a.a+=b;return a} +function WAb(a){Tzb(a);return a.a} +function Wsb(a){return a.b!=a.d.c} +function pD(a){return a.l|a.m<<22} +function aIc(a,b){return a.d[b.p]} +function h2c(a,b){return c2c(a,b)} +function cCb(a,b,c){a.splice(b,c)} +function WHb(a){a.c?VHb(a):XHb(a)} +function jVc(a){this.a=0;this.b=a} +function ZUc(){this.a=new L2c(K$)} +function tRc(){this.b=new L2c(h$)} +function Q$c(){this.b=new L2c(J_)} +function d_c(){this.b=new L2c(J_)} +function OCd(){throw vbb(new bgb)} +function PCd(){throw vbb(new bgb)} +function QCd(){throw vbb(new bgb)} +function RCd(){throw vbb(new bgb)} +function SCd(){throw vbb(new bgb)} +function TCd(){throw vbb(new bgb)} +function UCd(){throw vbb(new bgb)} +function VCd(){throw vbb(new bgb)} +function WCd(){throw vbb(new bgb)} +function XCd(){throw vbb(new bgb)} +function ahe(){throw vbb(new utb)} +function bhe(){throw vbb(new utb)} +function Rge(a){this.a=new ege(a)} +function ege(a){dge(this,a,Vee())} +function Fhe(a){return !a||Ehe(a)} +function dde(a){return $ce[a]!=-1} +function Iz(){xz!=0&&(xz=0);zz=-1} +function Ybb(){Wbb==null&&(Wbb=[])} +function ONd(a,b){Rxd(ZKd(a.a),b)} +function TNd(a,b){Rxd(ZKd(a.a),b)} +function Yf(a,b){zf.call(this,a,b)} +function $f(a,b){Yf.call(this,a,b)} +function Hf(a,b){this.b=a;this.c=b} +function rk(a,b){this.b=a;this.a=b} +function ek(a,b){this.a=a;this.b=b} +function gk(a,b){this.a=a;this.b=b} +function pk(a,b){this.a=a;this.b=b} +function yk(a,b){this.a=a;this.b=b} +function Ak(a,b){this.a=a;this.b=b} +function Fj(a,b){this.a=a;this.b=b} +function _j(a,b){this.a=a;this.b=b} +function dr(a,b){this.a=a;this.b=b} +function zr(a,b){this.b=a;this.a=b} +function So(a,b){this.b=a;this.a=b} +function qp(a,b){this.b=a;this.a=b} +function $q(a,b){this.b=a;this.a=b} +function $r(a,b){this.f=a;this.g=b} +function ne(a,b){this.e=a;this.d=b} +function Wo(a,b){this.g=a;this.i=b} +function bu(a,b){this.a=a;this.b=b} +function qu(a,b){this.a=a;this.f=b} +function qv(a,b){this.b=a;this.c=b} +function ox(a,b){this.a=a;this.b=b} +function Px(a,b){this.a=a;this.b=b} +function mC(a,b){this.a=a;this.b=b} +function Wc(a){Lb(a.dc());this.c=a} +function rf(a){this.b=BD(Qb(a),83)} +function Zv(a){this.a=BD(Qb(a),83)} +function dv(a){this.a=BD(Qb(a),15)} +function $u(a){this.a=BD(Qb(a),15)} +function Br(a){this.b=BD(Qb(a),47)} +function eB(){this.q=new $wnd.Date} +function Zfb(){Zfb=ccb;Yfb=new jcb} +function Emb(){Emb=ccb;Dmb=new Fmb} +function Vhb(a){return a.f.c+a.g.c} +function hnb(a,b){return a.b.Hc(b)} +function inb(a,b){return a.b.Ic(b)} +function knb(a,b){return a.b.Qc(b)} +function Dob(a,b){return a.b.Hc(b)} +function dob(a,b){return a.c.uc(b)} +function Rqb(a,b){return a.a._b(b)} +function fob(a,b){return pb(a.c,b)} +function jt(a,b){return Mhb(a.b,b)} +function Lp(a,b){return a>b&&b<Iie} +function Ryb(a,b){return a.Gc(b),a} +function Syb(a,b){return ye(a,b),a} +function sC(a){return GB(),a?FB:EB} +function Mqb(a){Whb.call(this,a,0)} +function Pwb(){Qwb.call(this,null)} +function yAb(){Vzb.call(this,null)} +function Gqb(a){this.c=a;Dqb(this)} +function Psb(){Csb(this);Osb(this)} +function MAb(a,b){Tzb(a);a.a.Nb(b)} +function Myb(a,b){a.Gc(b);return a} +function qDb(a,b){a.a.f=b;return a} +function wDb(a,b){a.a.d=b;return a} +function xDb(a,b){a.a.g=b;return a} +function yDb(a,b){a.a.j=b;return a} +function BFb(a,b){a.a.a=b;return a} +function CFb(a,b){a.a.d=b;return a} +function DFb(a,b){a.a.e=b;return a} +function EFb(a,b){a.a.g=b;return a} +function oGb(a,b){a.a.f=b;return a} +function TGb(a){a.b=false;return a} +function Ltb(){Ltb=ccb;Ktb=new Otb} +function Utb(){Utb=ccb;Ttb=new Wtb} +function $xb(){$xb=ccb;Zxb=new byb} +function $Yb(){$Yb=ccb;ZYb=new dZb} +function cPb(){cPb=ccb;bPb=new dPb} +function EAb(){EAb=ccb;DAb=new PBb} +function a$b(){a$b=ccb;_Zb=new P$b} +function FDb(){FDb=ccb;EDb=new GDb} +function xUb(){xUb=ccb;wUb=new DUb} +function x2b(){x2b=ccb;w2b=new d7c} +function iVb(){iVb=ccb;hVb=new jVb} +function nVb(){nVb=ccb;mVb=new OVb} +function LWb(){LWb=ccb;KWb=new QWb} +function b4b(){b4b=ccb;a4b=new l4b} +function q9b(){q9b=ccb;p9b=new w9b} +function qgc(){qgc=ccb;pgc=new dic} +function Imc(){Imc=ccb;Hmc=new Wmc} +function GUc(){GUc=ccb;FUc=new j3c} +function i_c(){i_c=ccb;h_c=new k_c} +function s_c(){s_c=ccb;r_c=new t_c} +function R0c(){R0c=ccb;Q0c=new T0c} +function Vyc(){Vyc=ccb;Uyc=new Ved} +function DCc(){vCc();this.c=new Ji} +function k_c(){$r.call(this,Une,0)} +function r4c(a,b){Xrb(a.c.b,b.c,b)} +function s4c(a,b){Xrb(a.c.c,b.b,b)} +function B3c(a,b,c){Shb(a.d,b.f,c)} +function kKb(a,b,c,d){jKb(a,d,b,c)} +function E3b(a,b,c,d){J3b(d,a,b,c)} +function e9b(a,b,c,d){f9b(d,a,b,c)} +function g3c(a,b){a.a=b.g;return a} +function DQd(a,b){return qA(a.a,b)} +function nQd(a){return a.b?a.b:a.a} +function $Oc(a){return (a.c+a.a)/2} +function Pgd(){Pgd=ccb;Ogd=new Ahd} +function AFd(){AFd=ccb;zFd=new BFd} +function tFd(){tFd=ccb;sFd=new vFd} +function EFd(){EFd=ccb;DFd=new GFd} +function yFd(){yFd=ccb;xFd=new oUd} +function JFd(){JFd=ccb;IFd=new cZd} +function nRd(){nRd=ccb;mRd=new u4d} +function LRd(){LRd=ccb;KRd=new y4d} +function g5d(){g5d=ccb;f5d=new h5d} +function Q6d(){Q6d=ccb;P6d=new U6d} +function pEd(){pEd=ccb;oEd=new Lqb} +function tZd(){tZd=ccb;rZd=new Rkb} +function Xge(){Xge=ccb;Wge=new dhe} +function Hz(a){$wnd.clearTimeout(a)} +function jw(a){this.a=BD(Qb(a),224)} +function Lv(a){return BD(a,42).cd()} +function sib(a){return a.b<a.d.gc()} +function Lpb(a,b){return tqb(a.a,b)} +function Dbb(a,b){return ybb(a,b)>0} +function Gbb(a,b){return ybb(a,b)<0} +function Crb(a,b){return a.a.get(b)} +function icb(b,a){return a.split(b)} +function Vrb(a,b){return Mhb(a.e,b)} +function Nvb(a){return uCb(a),false} +function Rub(a){Kub.call(this,a,21)} +function wcb(a,b){Zy.call(this,a,b)} +function mxb(a,b){$r.call(this,a,b)} +function Gyb(a,b){$r.call(this,a,b)} +function zx(a){yx();Wn.call(this,a)} +function zlb(a,b){Dlb(a,a.length,b)} +function Alb(a,b){Flb(a,a.length,b)} +function ABb(a,b,c){b.ud(a.a.Ge(c))} +function uBb(a,b,c){b.we(a.a.Fe(c))} +function GBb(a,b,c){b.td(a.a.Kb(c))} +function Zq(a,b,c){a.Mb(c)&&b.td(c)} +function aCb(a,b,c){a.splice(b,0,c)} +function lDb(a,b){return uqb(a.e,b)} +function pjb(a,b){this.d=a;this.e=b} +function kqb(a,b){this.b=a;this.a=b} +function VBb(a,b){this.b=a;this.a=b} +function BEb(a,b){this.b=a;this.a=b} +function sBb(a,b){this.a=a;this.b=b} +function yBb(a,b){this.a=a;this.b=b} +function EBb(a,b){this.a=a;this.b=b} +function KBb(a,b){this.a=a;this.b=b} +function aDb(a,b){this.a=a;this.b=b} +function tMb(a,b){this.b=a;this.a=b} +function oOb(a,b){this.b=a;this.a=b} +function SOb(a,b){$r.call(this,a,b)} +function SMb(a,b){$r.call(this,a,b)} +function NEb(a,b){$r.call(this,a,b)} +function VEb(a,b){$r.call(this,a,b)} +function sFb(a,b){$r.call(this,a,b)} +function hHb(a,b){$r.call(this,a,b)} +function OHb(a,b){$r.call(this,a,b)} +function FIb(a,b){$r.call(this,a,b)} +function wLb(a,b){$r.call(this,a,b)} +function YRb(a,b){$r.call(this,a,b)} +function zTb(a,b){$r.call(this,a,b)} +function rUb(a,b){$r.call(this,a,b)} +function oWb(a,b){$r.call(this,a,b)} +function SXb(a,b){$r.call(this,a,b)} +function k0b(a,b){$r.call(this,a,b)} +function z5b(a,b){$r.call(this,a,b)} +function T8b(a,b){$r.call(this,a,b)} +function ibc(a,b){$r.call(this,a,b)} +function Cec(a,b){this.a=a;this.b=b} +function rfc(a,b){this.a=a;this.b=b} +function Rfc(a,b){this.a=a;this.b=b} +function Tfc(a,b){this.a=a;this.b=b} +function bgc(a,b){this.a=a;this.b=b} +function ngc(a,b){this.a=a;this.b=b} +function Qhc(a,b){this.a=a;this.b=b} +function $hc(a,b){this.a=a;this.b=b} +function Z0b(a,b){this.a=a;this.b=b} +function ZVb(a,b){this.b=a;this.a=b} +function Dfc(a,b){this.b=a;this.a=b} +function dgc(a,b){this.b=a;this.a=b} +function Bmc(a,b){this.b=a;this.a=b} +function cWb(a,b){this.c=a;this.d=b} +function I$b(a,b){this.e=a;this.d=b} +function Unc(a,b){this.a=a;this.b=b} +function Oic(a,b){this.b=b;this.c=a} +function Bjc(a,b){$r.call(this,a,b)} +function Yjc(a,b){$r.call(this,a,b)} +function Gkc(a,b){$r.call(this,a,b)} +function Bpc(a,b){$r.call(this,a,b)} +function Jpc(a,b){$r.call(this,a,b)} +function Tpc(a,b){$r.call(this,a,b)} +function cqc(a,b){$r.call(this,a,b)} +function oqc(a,b){$r.call(this,a,b)} +function yqc(a,b){$r.call(this,a,b)} +function Hqc(a,b){$r.call(this,a,b)} +function Uqc(a,b){$r.call(this,a,b)} +function arc(a,b){$r.call(this,a,b)} +function mrc(a,b){$r.call(this,a,b)} +function zrc(a,b){$r.call(this,a,b)} +function Prc(a,b){$r.call(this,a,b)} +function Yrc(a,b){$r.call(this,a,b)} +function fsc(a,b){$r.call(this,a,b)} +function nsc(a,b){$r.call(this,a,b)} +function nzc(a,b){$r.call(this,a,b)} +function zzc(a,b){$r.call(this,a,b)} +function Kzc(a,b){$r.call(this,a,b)} +function Xzc(a,b){$r.call(this,a,b)} +function Dtc(a,b){$r.call(this,a,b)} +function lAc(a,b){$r.call(this,a,b)} +function uAc(a,b){$r.call(this,a,b)} +function CAc(a,b){$r.call(this,a,b)} +function LAc(a,b){$r.call(this,a,b)} +function UAc(a,b){$r.call(this,a,b)} +function aBc(a,b){$r.call(this,a,b)} +function uBc(a,b){$r.call(this,a,b)} +function DBc(a,b){$r.call(this,a,b)} +function MBc(a,b){$r.call(this,a,b)} +function sGc(a,b){$r.call(this,a,b)} +function VIc(a,b){$r.call(this,a,b)} +function EIc(a,b){this.b=a;this.a=b} +function qKc(a,b){this.a=a;this.b=b} +function GKc(a,b){this.a=a;this.b=b} +function lLc(a,b){this.a=a;this.b=b} +function mMc(a,b){this.a=a;this.b=b} +function fMc(a,b){$r.call(this,a,b)} +function ZLc(a,b){$r.call(this,a,b)} +function ZMc(a,b){this.b=a;this.d=b} +function IOc(a,b){$r.call(this,a,b)} +function GQc(a,b){$r.call(this,a,b)} +function PQc(a,b){this.a=a;this.b=b} +function RQc(a,b){this.a=a;this.b=b} +function ARc(a,b){$r.call(this,a,b)} +function rSc(a,b){$r.call(this,a,b)} +function TTc(a,b){$r.call(this,a,b)} +function _Tc(a,b){$r.call(this,a,b)} +function RUc(a,b){$r.call(this,a,b)} +function uVc(a,b){$r.call(this,a,b)} +function hWc(a,b){$r.call(this,a,b)} +function rWc(a,b){$r.call(this,a,b)} +function kXc(a,b){$r.call(this,a,b)} +function uXc(a,b){$r.call(this,a,b)} +function AYc(a,b){$r.call(this,a,b)} +function l$c(a,b){$r.call(this,a,b)} +function Z$c(a,b){$r.call(this,a,b)} +function D_c(a,b){$r.call(this,a,b)} +function O_c(a,b){$r.call(this,a,b)} +function c1c(a,b){$r.call(this,a,b)} +function cVb(a,b){return uqb(a.c,b)} +function nnc(a,b){return uqb(b.b,a)} +function x1c(a,b){return -a.b.Je(b)} +function D3c(a,b){return uqb(a.g,b)} +function O5c(a,b){$r.call(this,a,b)} +function a6c(a,b){$r.call(this,a,b)} +function m2c(a,b){this.a=a;this.b=b} +function W2c(a,b){this.a=a;this.b=b} +function f7c(a,b){this.a=a;this.b=b} +function G7c(a,b){$r.call(this,a,b)} +function j8c(a,b){$r.call(this,a,b)} +function iad(a,b){$r.call(this,a,b)} +function rad(a,b){$r.call(this,a,b)} +function Bad(a,b){$r.call(this,a,b)} +function Nad(a,b){$r.call(this,a,b)} +function ibd(a,b){$r.call(this,a,b)} +function tbd(a,b){$r.call(this,a,b)} +function Ibd(a,b){$r.call(this,a,b)} +function Ubd(a,b){$r.call(this,a,b)} +function gcd(a,b){$r.call(this,a,b)} +function scd(a,b){$r.call(this,a,b)} +function Ycd(a,b){$r.call(this,a,b)} +function udd(a,b){$r.call(this,a,b)} +function Jdd(a,b){$r.call(this,a,b)} +function Eed(a,b){$r.call(this,a,b)} +function bfd(a,b){this.a=a;this.b=b} +function dfd(a,b){this.a=a;this.b=b} +function ffd(a,b){this.a=a;this.b=b} +function Kfd(a,b){this.a=a;this.b=b} +function Mfd(a,b){this.a=a;this.b=b} +function Ofd(a,b){this.a=a;this.b=b} +function vgd(a,b){this.a=a;this.b=b} +function qgd(a,b){$r.call(this,a,b)} +function jrd(a,b){this.a=a;this.b=b} +function krd(a,b){this.a=a;this.b=b} +function mrd(a,b){this.a=a;this.b=b} +function nrd(a,b){this.a=a;this.b=b} +function qrd(a,b){this.a=a;this.b=b} +function rrd(a,b){this.a=a;this.b=b} +function srd(a,b){this.b=a;this.a=b} +function trd(a,b){this.b=a;this.a=b} +function Drd(a,b){this.b=a;this.a=b} +function Frd(a,b){this.b=a;this.a=b} +function Hrd(a,b){this.a=a;this.b=b} +function Jrd(a,b){this.a=a;this.b=b} +function Ord(a,b){Xqd(a.a,BD(b,56))} +function BIc(a,b){gIc(a.a,BD(b,11))} +function fIc(a,b){FHc();return b!=a} +function Arb(){wrb();return new vrb} +function CMc(){wMc();this.b=new Tqb} +function NNc(){FNc();this.a=new Tqb} +function eCc(){ZBc();aCc.call(this)} +function Dsd(a,b){$r.call(this,a,b)} +function Urd(a,b){this.a=a;this.b=b} +function Wrd(a,b){this.a=a;this.b=b} +function kGd(a,b){this.a=a;this.b=b} +function nGd(a,b){this.a=a;this.b=b} +function bUd(a,b){this.a=a;this.b=b} +function zVd(a,b){this.a=a;this.b=b} +function C1d(a,b){this.d=a;this.b=b} +function MLd(a,b){this.d=a;this.e=b} +function Wud(a,b){this.f=a;this.c=b} +function f7d(a,b){this.b=a;this.c=b} +function _zd(a,b){this.i=a;this.g=b} +function Y1d(a,b){this.e=a;this.a=b} +function c8d(a,b){this.a=a;this.b=b} +function $Id(a,b){a.i=null;_Id(a,b)} +function ivd(a,b){!!a&&Rhb(cvd,a,b)} +function hCd(a,b){return qAd(a.a,b)} +function e7d(a){return R2d(a.c,a.b)} +function Wd(a){return !a?null:a.dd()} +function PD(a){return a==null?null:a} +function KD(a){return typeof a===Khe} +function LD(a){return typeof a===Lhe} +function ND(a){return typeof a===Mhe} +function Em(a,b){return a.Hd().Xb(b)} +function Kq(a,b){return hr(a.Kc(),b)} +function Bbb(a,b){return ybb(a,b)==0} +function Ebb(a,b){return ybb(a,b)>=0} +function Kbb(a,b){return ybb(a,b)!=0} +function Jdb(a){return ''+(uCb(a),a)} +function pfb(a,b){return a.substr(b)} +function cg(a){ag(a);return a.d.gc()} +function oVb(a){pVb(a,a.c);return a} +function RD(a){CCb(a==null);return a} +function Dfb(a,b){a.a+=''+b;return a} +function Efb(a,b){a.a+=''+b;return a} +function Nfb(a,b){a.a+=''+b;return a} +function Pfb(a,b){a.a+=''+b;return a} +function Qfb(a,b){a.a+=''+b;return a} +function Mfb(a,b){return a.a+=''+b,a} +function Esb(a,b){Gsb(a,b,a.a,a.a.a)} +function Fsb(a,b){Gsb(a,b,a.c.b,a.c)} +function Mqd(a,b,c){Rpd(b,kqd(a,c))} +function Nqd(a,b,c){Rpd(b,kqd(a,c))} +function Dhe(a,b){Hhe(new Fyd(a),b)} +function cB(a,b){a.q.setTime(Sbb(b))} +function fvb(a,b){bvb.call(this,a,b)} +function jvb(a,b){bvb.call(this,a,b)} +function nvb(a,b){bvb.call(this,a,b)} +function Nqb(a){Uhb(this);Ld(this,a)} +function wmb(a){tCb(a,0);return null} +function X6c(a){a.a=0;a.b=0;return a} +function f3c(a,b){a.a=b.g+1;return a} +function PJc(a,b){return a.j[b.p]==2} +function _Pb(a){return VPb(BD(a,79))} +function yJb(){yJb=ccb;xJb=as(wJb())} +function Y8b(){Y8b=ccb;X8b=as(W8b())} +function mt(){this.b=new Mqb(Cv(12))} +function Otb(){this.b=0;this.a=false} +function Wtb(){this.b=0;this.a=false} +function sl(a){this.a=a;ol.call(this)} +function vl(a){this.a=a;ol.call(this)} +function Nsd(a,b){Msd.call(this,a,b)} +function $zd(a,b){Cyd.call(this,a,b)} +function nNd(a,b){_zd.call(this,a,b)} +function s4d(a,b){p4d.call(this,a,b)} +function w4d(a,b){qRd.call(this,a,b)} +function rEd(a,b){pEd();Rhb(oEd,a,b)} +function lcb(a,b){return qfb(a.a,0,b)} +function ww(a,b){return a.a.a.a.cc(b)} +function mb(a,b){return PD(a)===PD(b)} +function Mdb(a,b){return Kdb(a.a,b.a)} +function $db(a,b){return beb(a.a,b.a)} +function seb(a,b){return ueb(a.a,b.a)} +function hfb(a,b){return a.indexOf(b)} +function Ny(a,b){return a==b?0:a?1:-1} +function kB(a){return a<10?'0'+a:''+a} +function Mq(a){return Qb(a),new sl(a)} +function SC(a){return TC(a.l,a.m,a.h)} +function Hdb(a){return QD((uCb(a),a))} +function Idb(a){return QD((uCb(a),a))} +function NIb(a,b){return beb(a.g,b.g)} +function Fbb(a){return typeof a===Lhe} +function mWb(a){return a==hWb||a==kWb} +function nWb(a){return a==hWb||a==iWb} +function G1b(a){return Jkb(a.b.b,a,0)} +function lrb(a){this.a=Arb();this.b=a} +function Frb(a){this.a=Arb();this.b=a} +function swb(a,b){Ekb(a.a,b);return b} +function Z1c(a,b){Ekb(a.c,b);return a} +function E2c(a,b){d3c(a.a,b);return a} +function _gc(a,b){Hgc();return b.a+=a} +function bhc(a,b){Hgc();return b.a+=a} +function ahc(a,b){Hgc();return b.c+=a} +function Nlb(a,b){Klb(a,0,a.length,b)} +function zsb(){Wqb.call(this,new $rb)} +function I_b(){B_b.call(this,0,0,0,0)} +function I6c(){J6c.call(this,0,0,0,0)} +function g7c(a){this.a=a.a;this.b=a.b} +function fad(a){return a==aad||a==bad} +function gad(a){return a==dad||a==_9c} +function Jzc(a){return a==Fzc||a==Ezc} +function fcd(a){return a!=bcd&&a!=ccd} +function oid(a){return a.Lg()&&a.Mg()} +function Gfd(a){return Kkd(BD(a,118))} +function k3c(a){return d3c(new j3c,a)} +function y2d(a,b){return new p4d(b,a)} +function z2d(a,b){return new p4d(b,a)} +function ukd(a,b,c){vkd(a,b);wkd(a,c)} +function _kd(a,b,c){cld(a,b);ald(a,c)} +function bld(a,b,c){dld(a,b);eld(a,c)} +function gmd(a,b,c){hmd(a,b);imd(a,c)} +function nmd(a,b,c){omd(a,b);pmd(a,c)} +function iKd(a,b){$Jd(a,b);_Jd(a,a.D)} +function _ud(a){Wud.call(this,a,true)} +function Xg(a,b,c){Vg.call(this,a,b,c)} +function Ygb(a){Hgb();Zgb.call(this,a)} +function rxb(){mxb.call(this,'Head',1)} +function wxb(){mxb.call(this,'Tail',3)} +function Ckb(a){a.c=KC(SI,Uhe,1,0,5,1)} +function Vjb(a){a.a=KC(SI,Uhe,1,8,5,1)} +function MGb(a){Hkb(a.xf(),new QGb(a))} +function xtb(a){return a!=null?tb(a):0} +function b2b(a,b){return ntd(b,mpd(a))} +function c2b(a,b){return ntd(b,mpd(a))} +function dAb(a,b){return a[a.length]=b} +function gAb(a,b){return a[a.length]=b} +function Vq(a){return lr(a.b.Kc(),a.a)} +function dqd(a,b){return _o(qo(a.d),b)} +function eqd(a,b){return _o(qo(a.g),b)} +function fqd(a,b){return _o(qo(a.j),b)} +function Osd(a,b){Msd.call(this,a.b,b)} +function q0b(a){B_b.call(this,a,a,a,a)} +function HOb(a){a.b&&LOb(a);return a.a} +function IOb(a){a.b&&LOb(a);return a.c} +function uyb(a,b){if(lyb){return}a.b=b} +function lzd(a,b,c){NC(a,b,c);return c} +function mBc(a,b,c){NC(a.c[b.g],b.g,c)} +function _Hd(a,b,c){BD(a.c,69).Xh(b,c)} +function wfd(a,b,c){bld(c,c.i+a,c.j+b)} +function UOd(a,b){wtd(VKd(a.a),XOd(b))} +function bTd(a,b){wtd(QSd(a.a),eTd(b))} +function Lge(a){wfe();xfe.call(this,a)} +function CAd(a){return a==null?0:tb(a)} +function fNc(){fNc=ccb;eNc=new Rpb(v1)} +function h0d(){h0d=ccb;new i0d;new Rkb} +function i0d(){new Lqb;new Lqb;new Lqb} +function GA(){GA=ccb;fA();FA=new Lqb} +function Iy(){Iy=ccb;$wnd.Math.log(2)} +function UVd(){UVd=ccb;TVd=(AFd(),zFd)} +function _ge(){throw vbb(new cgb(Cxe))} +function ohe(){throw vbb(new cgb(Cxe))} +function che(){throw vbb(new cgb(Dxe))} +function rhe(){throw vbb(new cgb(Dxe))} +function Mg(a){this.a=a;Gg.call(this,a)} +function up(a){this.a=a;rf.call(this,a)} +function Bp(a){this.a=a;rf.call(this,a)} +function Okb(a,b){Mlb(a.c,a.c.length,b)} +function llb(a){return a.a<a.c.c.length} +function Eqb(a){return a.a<a.c.a.length} +function Ntb(a,b){return a.a?a.b:b.De()} +function beb(a,b){return a<b?-1:a>b?1:0} +function Deb(a,b){return ybb(a,b)>0?a:b} +function TC(a,b,c){return {l:a,m:b,h:c}} +function Ctb(a,b){a.a!=null&&BIc(b,a.a)} +function Csb(a){a.a=new jtb;a.c=new jtb} +function hDb(a){this.b=a;this.a=new Rkb} +function dOb(a){this.b=new pOb;this.a=a} +function q_b(a){n_b.call(this);this.a=a} +function txb(){mxb.call(this,'Range',2)} +function bUb(){ZTb();this.a=new L2c(zP)} +function Bh(a,b){Qb(b);Ah(a).Jc(new Vw)} +function fKc(a,b){FJc();return b.n.b+=a} +function Tgc(a,b,c){return Rhb(a.g,c,b)} +function LJc(a,b,c){return Rhb(a.k,c,b)} +function r1c(a,b){return Rhb(a.a,b.a,b)} +function jBc(a,b,c){return hBc(b,c,a.c)} +function E6c(a){return new f7c(a.c,a.d)} +function F6c(a){return new f7c(a.c,a.d)} +function R6c(a){return new f7c(a.a,a.b)} +function CQd(a,b){return hA(a.a,b,null)} +function fec(a){QZb(a,null);RZb(a,null)} +function AOc(a){BOc(a,null);COc(a,null)} +function u4d(){qRd.call(this,null,null)} +function y4d(){RRd.call(this,null,null)} +function a7d(a){this.a=a;Lqb.call(this)} +function Pp(a){this.b=(mmb(),new iob(a))} +function Py(a){a.j=KC(VI,nie,310,0,0,1)} +function oAd(a,b,c){a.c.Vc(b,BD(c,133))} +function GAd(a,b,c){a.c.ji(b,BD(c,133))} +function JLd(a,b){Uxd(a);a.Gc(BD(b,15))} +function b7d(a,b){return t2d(a.c,a.b,b)} +function Bv(a,b){return new Qv(a.Kc(),b)} +function Lq(a,b){return rr(a.Kc(),b)!=-1} +function Sqb(a,b){return a.a.Bc(b)!=null} +function pr(a){return a.Ob()?a.Pb():null} +function yfb(a){return zfb(a,0,a.length)} +function JD(a,b){return a!=null&&AD(a,b)} +function $A(a,b){a.q.setHours(b);YA(a,b)} +function Yrb(a,b){if(a.c){jsb(b);isb(b)}} +function nk(a,b,c){BD(a.Kb(c),164).Nb(b)} +function RJc(a,b,c){SJc(a,b,c);return c} +function Eub(a,b,c){a.a=b^1502;a.b=c^kke} +function xHb(a,b,c){return a.a[b.g][c.g]} +function REc(a,b){return a.a[b.c.p][b.p]} +function aEc(a,b){return a.e[b.c.p][b.p]} +function tEc(a,b){return a.c[b.c.p][b.p]} +function OJc(a,b){return a.j[b.p]=aKc(b)} +function k5c(a,b){return cfb(a.f,b.tg())} +function Isd(a,b){return cfb(a.b,b.tg())} +function Sfd(a,b){return a.a<Kcb(b)?-1:1} +function ZDc(a,b,c){return c?b!=0:b!=a-1} +function _6c(a,b,c){a.a=b;a.b=c;return a} +function Y6c(a,b){a.a*=b;a.b*=b;return a} +function mud(a,b,c){NC(a.g,b,c);return c} +function CHb(a,b,c,d){NC(a.a[b.g],c.g,d)} +function EQb(a,b){O6c(b,a.a.a.a,a.a.a.b)} +function Ozd(a){a.a=BD(Ajd(a.b.a,4),126)} +function Wzd(a){a.a=BD(Ajd(a.b.a,4),126)} +function otd(a){ytb(a,hue);Rld(a,gtd(a))} +function Atb(){Atb=ccb;ztb=new Ftb(null)} +function Ivb(){Ivb=ccb;Ivb();Hvb=new Ovb} +function FId(){this.Bb|=256;this.Bb|=512} +function Fyd(a){this.i=a;this.f=this.i.j} +function xMd(a,b,c){pMd.call(this,a,b,c)} +function BMd(a,b,c){xMd.call(this,a,b,c)} +function K4d(a,b,c){xMd.call(this,a,b,c)} +function N4d(a,b,c){BMd.call(this,a,b,c)} +function X4d(a,b,c){pMd.call(this,a,b,c)} +function _4d(a,b,c){pMd.call(this,a,b,c)} +function C4d(a,b,c){k2d.call(this,a,b,c)} +function G4d(a,b,c){k2d.call(this,a,b,c)} +function I4d(a,b,c){C4d.call(this,a,b,c)} +function c5d(a,b,c){X4d.call(this,a,b,c)} +function zf(a,b){this.a=a;rf.call(this,b)} +function aj(a,b){this.a=a;pc.call(this,b)} +function kj(a,b){this.a=a;pc.call(this,b)} +function Jj(a,b){this.a=a;pc.call(this,b)} +function Rj(a){this.a=a;sj.call(this,a.d)} +function she(a){this.c=a;this.a=this.c.a} +function xl(a,b){this.a=b;pc.call(this,a)} +function Qo(a,b){this.a=b;Lo.call(this,a)} +function op(a,b){this.a=a;Lo.call(this,b)} +function rj(a,b){return Rl(Xm(a.c)).Xb(b)} +function Eb(a,b){return Db(a,new Ufb,b).a} +function ur(a,b){Qb(b);return new Gr(a,b)} +function Gr(a,b){this.a=b;Br.call(this,a)} +function Hs(a){this.b=a;this.a=this.b.a.e} +function Eg(a){a.b.Qb();--a.d.f.d;bg(a.d)} +function Uk(a){Fk.call(this,BD(Qb(a),35))} +function il(a){Fk.call(this,BD(Qb(a),35))} +function is(){$r.call(this,'INSTANCE',0)} +function Lb(a){if(!a){throw vbb(new Vdb)}} +function Ub(a){if(!a){throw vbb(new Ydb)}} +function ot(a){if(!a){throw vbb(new utb)}} +function I6d(){I6d=ccb;g5d();H6d=new J6d} +function Bcb(){Bcb=ccb;zcb=false;Acb=true} +function Jfb(a){mcb.call(this,(uCb(a),a))} +function Wfb(a){mcb.call(this,(uCb(a),a))} +function Inb(a){lnb.call(this,a);this.a=a} +function Xnb(a){Dnb.call(this,a);this.a=a} +function Zob(a){zob.call(this,a);this.a=a} +function Xy(){Py(this);Ry(this);this._d()} +function Qv(a,b){this.a=b;Br.call(this,a)} +function au(a,b){return new xu(a.a,a.b,b)} +function kfb(a,b){return a.lastIndexOf(b)} +function ifb(a,b,c){return a.indexOf(b,c)} +function xfb(a){return a==null?Xhe:fcb(a)} +function nz(a){return a==null?null:a.name} +function Etb(a){return a.a!=null?a.a:null} +function or(a){return Wsb(a.a)?nr(a):null} +function Fxb(a,b){return Jwb(a.a,b)!=null} +function uqb(a,b){return !!b&&a.b[b.g]==b} +function FCb(a){return a.$H||(a.$H=++ECb)} +function aD(a){return a.l+a.m*Hje+a.h*Ije} +function pDb(a,b){Ekb(b.a,a.a);return a.a} +function vDb(a,b){Ekb(b.b,a.a);return a.a} +function nGb(a,b){Ekb(b.a,a.a);return a.a} +function Btb(a){sCb(a.a!=null);return a.a} +function Asb(a){Wqb.call(this,new _rb(a))} +function GUb(a,b){HUb.call(this,a,b,null)} +function cxb(a){this.a=a;Bjb.call(this,a)} +function CKb(){CKb=ccb;BKb=new Msd(tle,0)} +function NFb(a,b){++a.b;return Ekb(a.a,b)} +function OFb(a,b){++a.b;return Lkb(a.a,b)} +function n6b(a,b){return Kdb(a.n.a,b.n.a)} +function WKb(a,b){return Kdb(a.c.d,b.c.d)} +function gLb(a,b){return Kdb(a.c.c,b.c.c)} +function zXb(a,b){return BD(Qc(a.b,b),15)} +function s7b(a,b){return a.n.b=(uCb(b),b)} +function t7b(a,b){return a.n.b=(uCb(b),b)} +function a1b(a){return llb(a.a)||llb(a.b)} +function fBc(a,b,c){return gBc(a,b,c,a.b)} +function iBc(a,b,c){return gBc(a,b,c,a.c)} +function i3c(a,b,c){BD(B2c(a,b),21).Fc(c)} +function xBd(a,b,c){vAd(a.a,c);uAd(a.a,b)} +function qRd(a,b){nRd();this.a=a;this.b=b} +function RRd(a,b){LRd();this.b=a;this.c=b} +function hhd(a,b){Rgd();this.f=b;this.d=a} +function qc(a,b){Sb(b,a);this.d=a;this.c=b} +function n5b(a){var b;b=a.a;a.a=a.b;a.b=b} +function chc(a){Hgc();return !!a&&!a.dc()} +function Afe(a){++vfe;return new lge(3,a)} +function jm(a,b){return new Vp(a,a.gc(),b)} +function ns(a){hs();return es((qs(),ps),a)} +function Oyd(a){this.d=a;Fyd.call(this,a)} +function $yd(a){this.c=a;Fyd.call(this,a)} +function bzd(a){this.c=a;Oyd.call(this,a)} +function sgc(){qgc();this.b=new ygc(this)} +function Pu(a){Xj(a,Jie);return new Skb(a)} +function Vz(a){Rz();return parseInt(a)||-1} +function qfb(a,b,c){return a.substr(b,c-b)} +function gfb(a,b,c){return ifb(a,wfb(b),c)} +function Pkb(a){return ZBb(a.c,a.c.length)} +function Yr(a){return a.f!=null?a.f:''+a.g} +function Zr(a){return a.f!=null?a.f:''+a.g} +function Hsb(a){sCb(a.b!=0);return a.a.a.c} +function Isb(a){sCb(a.b!=0);return a.c.b.c} +function Cmd(a){JD(a,150)&&BD(a,150).Gh()} +function Wwb(a){return a.b=BD(tib(a.a),42)} +function Ptb(a){Ltb();this.b=a;this.a=true} +function Xtb(a){Utb();this.b=a;this.a=true} +function Trb(a){a.d=new ksb(a);a.e=new Lqb} +function mkb(a){if(!a){throw vbb(new Apb)}} +function lCb(a){if(!a){throw vbb(new Vdb)}} +function yCb(a){if(!a){throw vbb(new Ydb)}} +function qCb(a){if(!a){throw vbb(new tcb)}} +function sCb(a){if(!a){throw vbb(new utb)}} +function ksb(a){lsb.call(this,a,null,null)} +function dPb(){$r.call(this,'POLYOMINO',0)} +function Cg(a,b,c,d){qg.call(this,a,b,c,d)} +function zkc(a,b){gkc();return Rc(a,b.e,b)} +function azc(a,b,c){Vyc();return c.qg(a,b)} +function wNb(a,b){return !!a.q&&Mhb(a.q,b)} +function JRb(a,b){return a>0?b*b/a:b*b*100} +function CRb(a,b){return a>0?b/(a*a):b*100} +function G2c(a,b,c){return Ekb(b,I2c(a,c))} +function t3c(a,b,c){p3c();a.Xe(b)&&c.td(a)} +function St(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function O6c(a,b,c){a.a+=b;a.b+=c;return a} +function Z6c(a,b,c){a.a*=b;a.b*=c;return a} +function b7c(a,b,c){a.a-=b;a.b-=c;return a} +function a7c(a,b){a.a=b.a;a.b=b.b;return a} +function V6c(a){a.a=-a.a;a.b=-a.b;return a} +function Dic(a){this.c=a;this.a=1;this.b=1} +function xed(a){this.c=a;dld(a,0);eld(a,0)} +function u7c(a){Psb.call(this);n7c(this,a)} +function AXb(a){xXb();yXb(this);this.mf(a)} +function GRd(a,b){nRd();qRd.call(this,a,b)} +function dSd(a,b){LRd();RRd.call(this,a,b)} +function hSd(a,b){LRd();RRd.call(this,a,b)} +function fSd(a,b){LRd();dSd.call(this,a,b)} +function sId(a,b,c){dId.call(this,a,b,c,2)} +function zXd(a,b){UVd();nXd.call(this,a,b)} +function BXd(a,b){UVd();zXd.call(this,a,b)} +function DXd(a,b){UVd();zXd.call(this,a,b)} +function FXd(a,b){UVd();DXd.call(this,a,b)} +function PXd(a,b){UVd();nXd.call(this,a,b)} +function RXd(a,b){UVd();PXd.call(this,a,b)} +function XXd(a,b){UVd();nXd.call(this,a,b)} +function pAd(a,b){return a.c.Fc(BD(b,133))} +function w1d(a,b,c){return V1d(p1d(a,b),c)} +function N2d(a,b,c){return b.Qk(a.e,a.c,c)} +function P2d(a,b,c){return b.Rk(a.e,a.c,c)} +function a3d(a,b){return xid(a.e,BD(b,49))} +function aTd(a,b,c){vtd(QSd(a.a),b,eTd(c))} +function TOd(a,b,c){vtd(VKd(a.a),b,XOd(c))} +function ypb(a,b){b.$modCount=a.$modCount} +function MUc(){MUc=ccb;LUc=new Lsd('root')} +function LCd(){LCd=ccb;KCd=new lDd;new NDd} +function KVc(){this.a=new Hp;this.b=new Hp} +function FUd(){hJd.call(this);this.Bb|=Tje} +function t_c(){$r.call(this,'GROW_TREE',0)} +function C9d(a){return a==null?null:cde(a)} +function G9d(a){return a==null?null:jde(a)} +function J9d(a){return a==null?null:fcb(a)} +function K9d(a){return a==null?null:fcb(a)} +function fdb(a){if(a.o!=null){return}vdb(a)} +function DD(a){CCb(a==null||KD(a));return a} +function ED(a){CCb(a==null||LD(a));return a} +function GD(a){CCb(a==null||ND(a));return a} +function gB(a){this.q=new $wnd.Date(Sbb(a))} +function Mf(a,b){this.c=a;ne.call(this,a,b)} +function Sf(a,b){this.a=a;Mf.call(this,a,b)} +function Hg(a,b){this.d=a;Dg(this);this.b=b} +function bAb(a,b){Vzb.call(this,a);this.a=b} +function vAb(a,b){Vzb.call(this,a);this.a=b} +function sNb(a){pNb.call(this,0,0);this.f=a} +function Vg(a,b,c){dg.call(this,a,b,c,null)} +function Yg(a,b,c){dg.call(this,a,b,c,null)} +function Pxb(a,b,c){return a.ue(b,c)<=0?c:b} +function Qxb(a,b,c){return a.ue(b,c)<=0?b:c} +function g4c(a,b){return BD(Wrb(a.b,b),149)} +function i4c(a,b){return BD(Wrb(a.c,b),229)} +function wic(a){return BD(Ikb(a.a,a.b),287)} +function B6c(a){return new f7c(a.c,a.d+a.a)} +function eLc(a){return FJc(),Jzc(BD(a,197))} +function $Jb(){$Jb=ccb;ZJb=pqb((tdd(),sdd))} +function fOb(a,b){b.a?gOb(a,b):Fxb(a.a,b.b)} +function qyb(a,b){if(lyb){return}Ekb(a.a,b)} +function F2b(a,b){x2b();return f_b(b.d.i,a)} +function _9b(a,b){I9b();return new gac(b,a)} +function _Hb(a,b){ytb(b,lle);a.f=b;return a} +function Kld(a,b,c){c=_hd(a,b,3,c);return c} +function bmd(a,b,c){c=_hd(a,b,6,c);return c} +function kpd(a,b,c){c=_hd(a,b,9,c);return c} +function Cvd(a,b,c){++a.j;a.Ki();Atd(a,b,c)} +function Avd(a,b,c){++a.j;a.Hi(b,a.oi(b,c))} +function bRd(a,b,c){var d;d=a.Zc(b);d.Rb(c)} +function c7d(a,b,c){return C2d(a.c,a.b,b,c)} +function DAd(a,b){return (b&Ohe)%a.d.length} +function Msd(a,b){Lsd.call(this,a);this.a=b} +function uVd(a,b){lVd.call(this,a);this.a=b} +function sYd(a,b){lVd.call(this,a);this.a=b} +function zyd(a,b){this.c=a;zud.call(this,b)} +function YOd(a,b){this.a=a;qOd.call(this,b)} +function fTd(a,b){this.a=a;qOd.call(this,b)} +function Xp(a){this.a=(Xj(a,Jie),new Skb(a))} +function cq(a){this.a=(Xj(a,Jie),new Skb(a))} +function LA(a){!a.a&&(a.a=new VA);return a.a} +function XMb(a){if(a>8){return 0}return a+1} +function Ecb(a,b){Bcb();return a==b?0:a?1:-1} +function Opb(a,b,c){return Npb(a,BD(b,22),c)} +function Bz(a,b,c){return a.apply(b,c);var d} +function Sfb(a,b,c){a.a+=zfb(b,0,c);return a} +function ijb(a,b){var c;c=a.e;a.e=b;return c} +function trb(a,b){var c;c=a[hke];c.call(a,b)} +function urb(a,b){var c;c=a[hke];c.call(a,b)} +function Aib(a,b){a.a.Vc(a.b,b);++a.b;a.c=-1} +function Urb(a){Uhb(a.e);a.d.b=a.d;a.d.a=a.d} +function _f(a){a.b?_f(a.b):a.f.c.zc(a.e,a.d)} +function _Ab(a,b,c){EAb();MBb(a,b.Ce(a.a,c))} +function Bxb(a,b){return Vd(Cwb(a.a,b,true))} +function Cxb(a,b){return Vd(Dwb(a.a,b,true))} +function _Bb(a,b){return eCb(new Array(b),a)} +function HD(a){return String.fromCharCode(a)} +function mz(a){return a==null?null:a.message} +function gRb(){this.a=new Rkb;this.b=new Rkb} +function iTb(){this.a=new MQb;this.b=new tTb} +function tDb(){this.b=new d7c;this.c=new Rkb} +function _Qb(){this.d=new d7c;this.e=new d7c} +function n_b(){this.n=new d7c;this.o=new d7c} +function $Gb(){this.n=new p0b;this.i=new I6c} +function sec(){this.a=new Umc;this.b=new mnc} +function NIc(){this.a=new Rkb;this.d=new Rkb} +function LDc(){this.b=new Tqb;this.a=new Tqb} +function hSc(){this.b=new Lqb;this.a=new Lqb} +function HRc(){this.b=new tRc;this.a=new hRc} +function aHb(){$Gb.call(this);this.a=new d7c} +function Ywb(a){Zwb.call(this,a,(lxb(),hxb))} +function J_b(a,b,c,d){B_b.call(this,a,b,c,d)} +function sqd(a,b,c){c!=null&&kmd(b,Wqd(a,c))} +function tqd(a,b,c){c!=null&&lmd(b,Wqd(a,c))} +function Tod(a,b,c){c=_hd(a,b,11,c);return c} +function P6c(a,b){a.a+=b.a;a.b+=b.b;return a} +function c7c(a,b){a.a-=b.a;a.b-=b.b;return a} +function u7b(a,b){return a.n.a=(uCb(b),b)+10} +function v7b(a,b){return a.n.a=(uCb(b),b)+10} +function dLd(a,b){return b==a||pud(UKd(b),a)} +function PYd(a,b){return Rhb(a.a,b,'')==null} +function E2b(a,b){x2b();return !f_b(b.d.i,a)} +function rjc(a,b){fad(a.f)?sjc(a,b):tjc(a,b)} +function h1d(a,b){var c;c=b.Hh(a.a);return c} +function Cyd(a,b){qcb.call(this,gve+a+mue+b)} +function gUd(a,b,c,d){cUd.call(this,a,b,c,d)} +function Q4d(a,b,c,d){cUd.call(this,a,b,c,d)} +function U4d(a,b,c,d){Q4d.call(this,a,b,c,d)} +function n5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function p5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function v5d(a,b,c,d){i5d.call(this,a,b,c,d)} +function t5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function A5d(a,b,c,d){p5d.call(this,a,b,c,d)} +function y5d(a,b,c,d){v5d.call(this,a,b,c,d)} +function D5d(a,b,c,d){A5d.call(this,a,b,c,d)} +function d6d(a,b,c,d){Y5d.call(this,a,b,c,d)} +function Vp(a,b,c){this.a=a;qc.call(this,b,c)} +function tk(a,b,c){this.c=b;this.b=c;this.a=a} +function ik(a,b,c){return a.d=BD(b.Kb(c),164)} +function j6d(a,b){return a.Aj().Nh().Kh(a,b)} +function h6d(a,b){return a.Aj().Nh().Ih(a,b)} +function Fdb(a,b){return uCb(a),PD(a)===PD(b)} +function dfb(a,b){return uCb(a),PD(a)===PD(b)} +function Dxb(a,b){return Vd(Cwb(a.a,b,false))} +function Exb(a,b){return Vd(Dwb(a.a,b,false))} +function vBb(a,b){return a.b.sd(new yBb(a,b))} +function BBb(a,b){return a.b.sd(new EBb(a,b))} +function HBb(a,b){return a.b.sd(new KBb(a,b))} +function lfb(a,b,c){return a.lastIndexOf(b,c)} +function uTb(a,b,c){return Kdb(a[b.b],a[c.b])} +function RTb(a,b){return yNb(b,(Nyc(),Cwc),a)} +function fmc(a,b){return beb(b.a.d.p,a.a.d.p)} +function emc(a,b){return beb(a.a.d.p,b.a.d.p)} +function _Oc(a,b){return Kdb(a.c-a.s,b.c-b.s)} +function S_b(a){return !a.c?-1:Jkb(a.c.a,a,0)} +function Vxd(a){return a<100?null:new Ixd(a)} +function ecd(a){return a==Zbd||a==_bd||a==$bd} +function zAd(a,b){return JD(b,15)&&Btd(a.c,b)} +function vyb(a,b){if(lyb){return}!!b&&(a.d=b)} +function ujb(a,b){var c;c=b;return !!Awb(a,c)} +function czd(a,b){this.c=a;Pyd.call(this,a,b)} +function fBb(a){this.c=a;nvb.call(this,rie,0)} +function Avb(a,b){Bvb.call(this,a,a.length,b)} +function aId(a,b,c){return BD(a.c,69).lk(b,c)} +function bId(a,b,c){return BD(a.c,69).mk(b,c)} +function O2d(a,b,c){return N2d(a,BD(b,332),c)} +function Q2d(a,b,c){return P2d(a,BD(b,332),c)} +function i3d(a,b,c){return h3d(a,BD(b,332),c)} +function k3d(a,b,c){return j3d(a,BD(b,332),c)} +function tn(a,b){return b==null?null:Hv(a.b,b)} +function Kcb(a){return LD(a)?(uCb(a),a):a.ke()} +function Ldb(a){return !isNaN(a)&&!isFinite(a)} +function Wn(a){Ql();this.a=(mmb(),new zob(a))} +function dIc(a){FHc();this.d=a;this.a=new jkb} +function xqb(a,b,c){this.a=a;this.b=b;this.c=c} +function Nrb(a,b,c){this.a=a;this.b=b;this.c=c} +function $sb(a,b,c){this.d=a;this.b=c;this.a=b} +function Qsb(a){Csb(this);Osb(this);ye(this,a)} +function Tkb(a){Ckb(this);bCb(this.c,0,a.Pc())} +function Xwb(a){uib(a.a);Kwb(a.c,a.b);a.b=null} +function iyb(a){this.a=a;Zfb();Cbb(Date.now())} +function JCb(){JCb=ccb;GCb=new nb;ICb=new nb} +function ntb(){ntb=ccb;ltb=new otb;mtb=new qtb} +function kzd(){kzd=ccb;jzd=KC(SI,Uhe,1,0,5,1)} +function tGd(){tGd=ccb;sGd=KC(SI,Uhe,1,0,5,1)} +function $Gd(){$Gd=ccb;ZGd=KC(SI,Uhe,1,0,5,1)} +function Ql(){Ql=ccb;new Zl((mmb(),mmb(),jmb))} +function pxb(a){lxb();return es((zxb(),yxb),a)} +function Hyb(a){Fyb();return es((Kyb(),Jyb),a)} +function OEb(a){MEb();return es((REb(),QEb),a)} +function WEb(a){UEb();return es((ZEb(),YEb),a)} +function tFb(a){rFb();return es((wFb(),vFb),a)} +function iHb(a){gHb();return es((lHb(),kHb),a)} +function PHb(a){NHb();return es((SHb(),RHb),a)} +function GIb(a){EIb();return es((JIb(),IIb),a)} +function vJb(a){qJb();return es((yJb(),xJb),a)} +function xLb(a){vLb();return es((ALb(),zLb),a)} +function TMb(a){RMb();return es((WMb(),VMb),a)} +function TOb(a){ROb();return es((WOb(),VOb),a)} +function ePb(a){cPb();return es((hPb(),gPb),a)} +function ZRb(a){XRb();return es((aSb(),_Rb),a)} +function ATb(a){yTb();return es((DTb(),CTb),a)} +function sUb(a){qUb();return es((vUb(),uUb),a)} +function rWb(a){lWb();return es((uWb(),tWb),a)} +function TXb(a){RXb();return es((WXb(),VXb),a)} +function Mb(a,b){if(!a){throw vbb(new Wdb(b))}} +function l0b(a){j0b();return es((o0b(),n0b),a)} +function r0b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function K_b(a){B_b.call(this,a.d,a.c,a.a,a.b)} +function mKb(a,b,c){this.b=a;this.c=b;this.a=c} +function BZb(a,b,c){this.b=a;this.a=b;this.c=c} +function TNb(a,b,c){this.a=a;this.b=b;this.c=c} +function uOb(a,b,c){this.a=a;this.b=b;this.c=c} +function S3b(a,b,c){this.a=a;this.b=b;this.c=c} +function Z6b(a,b,c){this.a=a;this.b=b;this.c=c} +function n9b(a,b,c){this.b=a;this.a=b;this.c=c} +function x$b(a,b,c){this.e=b;this.b=a;this.d=c} +function $Ab(a,b,c){EAb();a.a.Od(b,c);return b} +function LGb(a){var b;b=new KGb;b.e=a;return b} +function iLb(a){var b;b=new fLb;b.b=a;return b} +function D6b(){D6b=ccb;B6b=new M6b;C6b=new P6b} +function Hgc(){Hgc=ccb;Fgc=new ghc;Ggc=new ihc} +function jbc(a){gbc();return es((mbc(),lbc),a)} +function Cjc(a){Ajc();return es((Fjc(),Ejc),a)} +function Clc(a){Alc();return es((Flc(),Elc),a)} +function Cpc(a){Apc();return es((Fpc(),Epc),a)} +function Kpc(a){Ipc();return es((Npc(),Mpc),a)} +function Wpc(a){Rpc();return es((Zpc(),Ypc),a)} +function $jc(a){Xjc();return es((bkc(),akc),a)} +function Hkc(a){Fkc();return es((Kkc(),Jkc),a)} +function dqc(a){bqc();return es((gqc(),fqc),a)} +function rqc(a){mqc();return es((uqc(),tqc),a)} +function zqc(a){xqc();return es((Cqc(),Bqc),a)} +function Iqc(a){Gqc();return es((Lqc(),Kqc),a)} +function Vqc(a){Sqc();return es((Yqc(),Xqc),a)} +function brc(a){_qc();return es((erc(),drc),a)} +function nrc(a){lrc();return es((qrc(),prc),a)} +function Arc(a){yrc();return es((Drc(),Crc),a)} +function Qrc(a){Orc();return es((Trc(),Src),a)} +function Zrc(a){Xrc();return es((asc(),_rc),a)} +function gsc(a){esc();return es((jsc(),isc),a)} +function osc(a){msc();return es((rsc(),qsc),a)} +function Etc(a){Ctc();return es((Htc(),Gtc),a)} +function qzc(a){lzc();return es((tzc(),szc),a)} +function Azc(a){xzc();return es((Dzc(),Czc),a)} +function Mzc(a){Izc();return es((Pzc(),Ozc),a)} +function MAc(a){KAc();return es((PAc(),OAc),a)} +function mAc(a){kAc();return es((pAc(),oAc),a)} +function vAc(a){tAc();return es((yAc(),xAc),a)} +function DAc(a){BAc();return es((GAc(),FAc),a)} +function VAc(a){TAc();return es((YAc(),XAc),a)} +function $zc(a){Vzc();return es((bAc(),aAc),a)} +function bBc(a){_Ac();return es((eBc(),dBc),a)} +function vBc(a){tBc();return es((yBc(),xBc),a)} +function EBc(a){CBc();return es((HBc(),GBc),a)} +function NBc(a){LBc();return es((QBc(),PBc),a)} +function tGc(a){rGc();return es((wGc(),vGc),a)} +function WIc(a){UIc();return es((ZIc(),YIc),a)} +function $Lc(a){YLc();return es((bMc(),aMc),a)} +function gMc(a){eMc();return es((jMc(),iMc),a)} +function JOc(a){HOc();return es((MOc(),LOc),a)} +function HQc(a){FQc();return es((KQc(),JQc),a)} +function DRc(a){yRc();return es((GRc(),FRc),a)} +function tSc(a){qSc();return es((wSc(),vSc),a)} +function UTc(a){STc();return es((XTc(),WTc),a)} +function UUc(a){PUc();return es((XUc(),WUc),a)} +function aUc(a){$Tc();return es((dUc(),cUc),a)} +function wVc(a){tVc();return es((zVc(),yVc),a)} +function iWc(a){fWc();return es((lWc(),kWc),a)} +function sWc(a){pWc();return es((vWc(),uWc),a)} +function lXc(a){iXc();return es((oXc(),nXc),a)} +function vXc(a){sXc();return es((yXc(),xXc),a)} +function BYc(a){zYc();return es((EYc(),DYc),a)} +function m$c(a){k$c();return es((p$c(),o$c),a)} +function $$c(a){Y$c();return es((b_c(),a_c),a)} +function n_c(a){i_c();return es((q_c(),p_c),a)} +function w_c(a){s_c();return es((z_c(),y_c),a)} +function E_c(a){C_c();return es((H_c(),G_c),a)} +function P_c(a){N_c();return es((S_c(),R_c),a)} +function W0c(a){R0c();return es((Z0c(),Y0c),a)} +function f1c(a){a1c();return es((i1c(),h1c),a)} +function P5c(a){N5c();return es((S5c(),R5c),a)} +function b6c(a){_5c();return es((e6c(),d6c),a)} +function H7c(a){F7c();return es((K7c(),J7c),a)} +function k8c(a){i8c();return es((n8c(),m8c),a)} +function V8b(a){S8b();return es((Y8b(),X8b),a)} +function A5b(a){y5b();return es((D5b(),C5b),a)} +function jad(a){ead();return es((mad(),lad),a)} +function sad(a){qad();return es((vad(),uad),a)} +function Cad(a){Aad();return es((Fad(),Ead),a)} +function Oad(a){Mad();return es((Rad(),Qad),a)} +function jbd(a){hbd();return es((mbd(),lbd),a)} +function ubd(a){rbd();return es((xbd(),wbd),a)} +function Kbd(a){Hbd();return es((Nbd(),Mbd),a)} +function Vbd(a){Tbd();return es((Ybd(),Xbd),a)} +function hcd(a){dcd();return es((kcd(),jcd),a)} +function vcd(a){rcd();return es((ycd(),xcd),a)} +function vdd(a){tdd();return es((ydd(),xdd),a)} +function Kdd(a){Idd();return es((Ndd(),Mdd),a)} +function $cd(a){Ucd();return es((cdd(),bdd),a)} +function Fed(a){Ded();return es((Ied(),Hed),a)} +function rgd(a){pgd();return es((ugd(),tgd),a)} +function Esd(a){Csd();return es((Hsd(),Gsd),a)} +function Yoc(a,b){return (uCb(a),a)+(uCb(b),b)} +function NNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function SNd(a,b){Zfb();return wtd(ZKd(a.a),b)} +function bPc(a,b){this.c=a;this.a=b;this.b=b-a} +function nYc(a,b,c){this.a=a;this.b=b;this.c=c} +function L1c(a,b,c){this.a=a;this.b=b;this.c=c} +function T1c(a,b,c){this.a=a;this.b=b;this.c=c} +function Rrd(a,b,c){this.a=a;this.b=b;this.c=c} +function zCd(a,b,c){this.a=a;this.b=b;this.c=c} +function IVd(a,b,c){this.e=a;this.a=b;this.c=c} +function kWd(a,b,c){UVd();cWd.call(this,a,b,c)} +function HXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function TXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function ZXd(a,b,c){UVd();oXd.call(this,a,b,c)} +function JXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function LXd(a,b,c){UVd();HXd.call(this,a,b,c)} +function NXd(a,b,c){UVd();LXd.call(this,a,b,c)} +function VXd(a,b,c){UVd();TXd.call(this,a,b,c)} +function _Xd(a,b,c){UVd();ZXd.call(this,a,b,c)} +function $j(a,b){Qb(a);Qb(b);return new _j(a,b)} +function Nq(a,b){Qb(a);Qb(b);return new Wq(a,b)} +function Rq(a,b){Qb(a);Qb(b);return new ar(a,b)} +function lr(a,b){Qb(a);Qb(b);return new zr(a,b)} +function BD(a,b){CCb(a==null||AD(a,b));return a} +function Nu(a){var b;b=new Rkb;fr(b,a);return b} +function Ex(a){var b;b=new Tqb;fr(b,a);return b} +function Hx(a){var b;b=new Gxb;Jq(b,a);return b} +function Ru(a){var b;b=new Psb;Jq(b,a);return b} +function YEc(a){!a.e&&(a.e=new Rkb);return a.e} +function SMd(a){!a.c&&(a.c=new xYd);return a.c} +function Ekb(a,b){a.c[a.c.length]=b;return true} +function WA(a,b){this.c=a;this.b=b;this.a=false} +function Gg(a){this.d=a;Dg(this);this.b=ed(a.d)} +function pzb(){this.a=';,;';this.b='';this.c=''} +function Bvb(a,b,c){qvb.call(this,b,c);this.a=a} +function fAb(a,b,c){this.b=a;fvb.call(this,b,c)} +function lsb(a,b,c){this.c=a;pjb.call(this,b,c)} +function bCb(a,b,c){$Bb(c,0,a,b,c.length,false)} +function HVb(a,b,c,d,e){a.b=b;a.c=c;a.d=d;a.a=e} +function eBb(a,b){if(b){a.b=b;a.a=(Tzb(b),b.a)}} +function v_b(a,b,c,d,e){a.d=b;a.c=c;a.a=d;a.b=e} +function h5b(a){var b,c;b=a.b;c=a.c;a.b=c;a.c=b} +function k5b(a){var b,c;c=a.d;b=a.a;a.d=b;a.a=c} +function Lbb(a){return zbb(iD(Fbb(a)?Rbb(a):a))} +function rlc(a,b){return beb(D0b(a.d),D0b(b.d))} +function uic(a,b){return b==(Ucd(),Tcd)?a.c:a.d} +function FHc(){FHc=ccb;DHc=(Ucd(),Tcd);EHc=zcd} +function DRb(){this.b=Edb(ED(Ksd((wSb(),vSb))))} +function aBb(a){return EAb(),KC(SI,Uhe,1,a,5,1)} +function C6c(a){return new f7c(a.c+a.b,a.d+a.a)} +function Vmc(a,b){Imc();return beb(a.d.p,b.d.p)} +function Lsb(a){sCb(a.b!=0);return Nsb(a,a.a.a)} +function Msb(a){sCb(a.b!=0);return Nsb(a,a.c.b)} +function rCb(a,b){if(!a){throw vbb(new ucb(b))}} +function mCb(a,b){if(!a){throw vbb(new Wdb(b))}} +function dWb(a,b,c){cWb.call(this,a,b);this.b=c} +function pMd(a,b,c){MLd.call(this,a,b);this.c=c} +function Dnc(a,b,c){Cnc.call(this,b,c);this.d=a} +function _Gd(a){$Gd();MGd.call(this);this.th(a)} +function PNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function UNd(a,b,c){this.a=a;nNd.call(this,b,c)} +function k2d(a,b,c){MLd.call(this,a,b);this.c=c} +function y1d(){T0d();z1d.call(this,(yFd(),xFd))} +function gFd(a){return a!=null&&!OEd(a,CEd,DEd)} +function dFd(a,b){return (jFd(a)<<4|jFd(b))&aje} +function ln(a,b){return Vm(),Wj(a,b),new iy(a,b)} +function Sdd(a,b){var c;if(a.n){c=b;Ekb(a.f,c)}} +function Upd(a,b,c){var d;d=new yC(c);cC(a,b,d)} +function WUd(a,b){var c;c=a.c;VUd(a,b);return c} +function Ydd(a,b){b<0?(a.g=-1):(a.g=b);return a} +function $6c(a,b){W6c(a);a.a*=b;a.b*=b;return a} +function G6c(a,b,c,d,e){a.c=b;a.d=c;a.b=d;a.a=e} +function Dsb(a,b){Gsb(a,b,a.c.b,a.c);return true} +function jsb(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null} +function Aq(a){this.b=a;this.a=Wm(this.b.a).Ed()} +function Wq(a,b){this.b=a;this.a=b;ol.call(this)} +function ar(a,b){this.a=a;this.b=b;ol.call(this)} +function vvb(a,b){qvb.call(this,b,1040);this.a=a} +function Eeb(a){return a==0||isNaN(a)?a:a<0?-1:1} +function WPb(a){QPb();return jtd(a)==Xod(ltd(a))} +function XPb(a){QPb();return ltd(a)==Xod(jtd(a))} +function iYb(a,b){return hYb(a,new cWb(b.a,b.b))} +function NZb(a){return !OZb(a)&&a.c.i.c==a.d.i.c} +function _Gb(a){var b;b=a.n;return a.a.b+b.d+b.a} +function YHb(a){var b;b=a.n;return a.e.b+b.d+b.a} +function ZHb(a){var b;b=a.n;return a.e.a+b.b+b.c} +function zfe(a){wfe();++vfe;return new ige(0,a)} +function o_b(a){if(a.a){return a.a}return JZb(a)} +function CCb(a){if(!a){throw vbb(new Cdb(null))}} +function X6d(){X6d=ccb;W6d=(mmb(),new anb(Fwe))} +function ex(){ex=ccb;new gx((_k(),$k),(Lk(),Kk))} +function oeb(){oeb=ccb;neb=KC(JI,nie,19,256,0,1)} +function d$c(a,b,c,d){e$c.call(this,a,b,c,d,0,0)} +function sQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function tQc(a,b,c){return Rhb(a.b,BD(c.b,17),b)} +function xfd(a,b){return Ekb(a,new f7c(b.a,b.b))} +function Bic(a,b){return a.c<b.c?-1:a.c==b.c?0:1} +function B0b(a){return a.e.c.length+a.g.c.length} +function D0b(a){return a.e.c.length-a.g.c.length} +function Ojc(a){return a.b.c.length-a.e.c.length} +function dKc(a){FJc();return (Ucd(),Ecd).Hc(a.j)} +function lHd(a){$Gd();_Gd.call(this,a);this.a=-1} +function R7d(a,b){f7d.call(this,a,b);this.a=this} +function odb(a,b){var c;c=ldb(a,b);c.i=2;return c} +function Evd(a,b){var c;++a.j;c=a.Ti(b);return c} +function e3c(a,b,c){a.a=-1;i3c(a,b.g,c);return a} +function Qrd(a,b,c){Kqd(a.a,a.b,a.c,BD(b,202),c)} +function OHd(a,b){PHd(a,b==null?null:(uCb(b),b))} +function SUd(a,b){UUd(a,b==null?null:(uCb(b),b))} +function TUd(a,b){UUd(a,b==null?null:(uCb(b),b))} +function Zj(a,b,c){return new tk(oAb(a).Ie(),c,b)} +function IC(a,b,c,d,e,f){return JC(a,b,c,d,e,0,f)} +function Ucb(){Ucb=ccb;Tcb=KC(xI,nie,217,256,0,1)} +function Ceb(){Ceb=ccb;Beb=KC(MI,nie,162,256,0,1)} +function Yeb(){Yeb=ccb;Xeb=KC(UI,nie,184,256,0,1)} +function ddb(){ddb=ccb;cdb=KC(yI,nie,172,128,0,1)} +function IVb(){HVb(this,false,false,false,false)} +function my(a){im();this.a=(mmb(),new anb(Qb(a)))} +function ir(a){Qb(a);while(a.Ob()){a.Pb();a.Qb()}} +function Tw(a){a.a.cd();BD(a.a.dd(),14).gc();zh()} +function mf(a){this.c=a;this.b=this.c.d.vc().Kc()} +function fqb(a){this.c=a;this.a=new Gqb(this.c.a)} +function Vqb(a){this.a=new Mqb(a.gc());ye(this,a)} +function Bsb(a){Wqb.call(this,new $rb);ye(this,a)} +function Rfb(a,b){a.a+=zfb(b,0,b.length);return a} +function Ikb(a,b){tCb(b,a.c.length);return a.c[b]} +function $lb(a,b){tCb(b,a.a.length);return a.a[b]} +function YAb(a,b){EAb();Vzb.call(this,a);this.a=b} +function Qyb(a,b){return Aeb(wbb(Aeb(a.a).a,b.a))} +function jpb(a,b){return uCb(a),Fcb(a,(uCb(b),b))} +function opb(a,b){return uCb(b),Fcb(b,(uCb(a),a))} +function Oyb(a,b){return NC(b,0,Bzb(b[0],Aeb(1)))} +function Bzb(a,b){return Qyb(BD(a,162),BD(b,162))} +function vic(a){return a.c-BD(Ikb(a.a,a.b),287).b} +function uNb(a){return !a.q?(mmb(),mmb(),kmb):a.q} +function Xi(a){return a.e.Hd().gc()*a.c.Hd().gc()} +function onc(a,b,c){return beb(b.d[a.g],c.d[a.g])} +function YHc(a,b,c){return beb(a.d[b.p],a.d[c.p])} +function ZHc(a,b,c){return beb(a.d[b.p],a.d[c.p])} +function $Hc(a,b,c){return beb(a.d[b.p],a.d[c.p])} +function _Hc(a,b,c){return beb(a.d[b.p],a.d[c.p])} +function q$c(a,b,c){return $wnd.Math.min(c/a,1/b)} +function sEc(a,b){return a?0:$wnd.Math.max(0,b-1)} +function Elb(a,b){var c;for(c=0;c<b;++c){a[c]=-1}} +function bVc(a){var b;b=hVc(a);return !b?a:bVc(b)} +function Voc(a,b){a.a==null&&Toc(a);return a.a[b]} +function qed(a){if(a.c){return a.c.f}return a.e.b} +function red(a){if(a.c){return a.c.g}return a.e.a} +function pFd(a){zud.call(this,a.gc());ytd(this,a)} +function nXd(a,b){UVd();VVd.call(this,b);this.a=a} +function KYd(a,b,c){this.a=a;xMd.call(this,b,c,2)} +function B_b(a,b,c,d){s_b(this);v_b(this,a,b,c,d)} +function ige(a,b){wfe();xfe.call(this,a);this.a=b} +function jgd(a){this.b=new Psb;this.a=a;this.c=-1} +function MOb(){this.d=new f7c(0,0);this.e=new Tqb} +function Nr(a){qc.call(this,0,0);this.a=a;this.b=0} +function ejc(a){this.a=a;this.c=new Lqb;$ic(this)} +function ju(a){if(a.e.c!=a.b){throw vbb(new Apb)}} +function bt(a){if(a.c.e!=a.a){throw vbb(new Apb)}} +function Tbb(a){if(Fbb(a)){return a|0}return pD(a)} +function Bfe(a,b){wfe();++vfe;return new rge(a,b)} +function SEd(a,b){return a==null?b==null:dfb(a,b)} +function TEd(a,b){return a==null?b==null:efb(a,b)} +function Npb(a,b,c){rqb(a.a,b);return Qpb(a,b.g,c)} +function Mlb(a,b,c){oCb(0,b,a.length);Klb(a,0,b,c)} +function Dkb(a,b,c){wCb(b,a.c.length);aCb(a.c,b,c)} +function Dlb(a,b,c){var d;for(d=0;d<b;++d){a[d]=c}} +function qqb(a,b){var c;c=pqb(a);nmb(c,b);return c} +function Oz(a,b){!a&&(a=[]);a[a.length]=b;return a} +function Brb(a,b){return !(a.a.get(b)===undefined)} +function Wyb(a,b){return Nyb(new rzb,new bzb(a),b)} +function Itb(a){return a==null?ztb:new Ftb(uCb(a))} +function tqb(a,b){return JD(b,22)&&uqb(a,BD(b,22))} +function vqb(a,b){return JD(b,22)&&wqb(a,BD(b,22))} +function Aub(a){return Cub(a,26)*ike+Cub(a,27)*jke} +function MC(a){return Array.isArray(a)&&a.im===gcb} +function bg(a){a.b?bg(a.b):a.d.dc()&&a.f.c.Bc(a.e)} +function $Nb(a,b){P6c(a.c,b);a.b.c+=b.a;a.b.d+=b.b} +function ZNb(a,b){$Nb(a,c7c(new f7c(b.a,b.b),a.c))} +function BLb(a,b){this.b=new Psb;this.a=a;this.c=b} +function OVb(){this.b=new $Vb;this.c=new SVb(this)} +function oEb(){this.d=new CEb;this.e=new uEb(this)} +function aCc(){ZBc();this.f=new Psb;this.e=new Psb} +function $Jc(){FJc();this.k=new Lqb;this.d=new Tqb} +function Rgd(){Rgd=ccb;Qgd=new Osd((Y9c(),s9c),0)} +function Mr(){Mr=ccb;Lr=new Nr(KC(SI,Uhe,1,0,5,1))} +function gfc(a,b,c){bfc(c,a,1);Ekb(b,new Tfc(c,a))} +function hfc(a,b,c){cfc(c,a,1);Ekb(b,new dgc(c,a))} +function R$c(a,b,c){return Qqb(a,new aDb(b.a,c.a))} +function ACc(a,b,c){return -beb(a.f[b.p],a.f[c.p])} +function mHb(a,b,c){var d;if(a){d=a.i;d.c=b;d.b=c}} +function nHb(a,b,c){var d;if(a){d=a.i;d.d=b;d.a=c}} +function c3c(a,b,c){a.a=-1;i3c(a,b.g+1,c);return a} +function Dod(a,b,c){c=_hd(a,BD(b,49),7,c);return c} +function JHd(a,b,c){c=_hd(a,BD(b,49),3,c);return c} +function JMd(a,b,c){this.a=a;BMd.call(this,b,c,22)} +function UTd(a,b,c){this.a=a;BMd.call(this,b,c,14)} +function eXd(a,b,c,d){UVd();nWd.call(this,a,b,c,d)} +function lXd(a,b,c,d){UVd();nWd.call(this,a,b,c,d)} +function FNd(a,b){(b.Bb&ote)!=0&&!a.a.o&&(a.a.o=b)} +function MD(a){return a!=null&&OD(a)&&!(a.im===gcb)} +function ID(a){return !Array.isArray(a)&&a.im===gcb} +function ed(a){return JD(a,15)?BD(a,15).Yc():a.Kc()} +function De(a){return a.Qc(KC(SI,Uhe,1,a.gc(),5,1))} +function u1d(a,b){return W1d(p1d(a,b))?b.Qh():null} +function uvd(a){a?Ty(a,(Zfb(),Yfb),''):(Zfb(),Yfb)} +function Sr(a){this.a=(Mr(),Lr);this.d=BD(Qb(a),47)} +function qg(a,b,c,d){this.a=a;dg.call(this,a,b,c,d)} +function Yge(a){Xge();this.a=0;this.b=a-1;this.c=1} +function Yy(a){Py(this);this.g=a;Ry(this);this._d()} +function Wm(a){if(a.c){return a.c}return a.c=a.Id()} +function Xm(a){if(a.d){return a.d}return a.d=a.Jd()} +function Rl(a){var b;b=a.c;return !b?(a.c=a.Dd()):b} +function fe(a){var b;b=a.f;return !b?(a.f=a.Dc()):b} +function Ec(a){var b;b=a.i;return !b?(a.i=a.bc()):b} +function Ffe(a){wfe();++vfe;return new Hge(10,a,0)} +function Ubb(a){if(Fbb(a)){return ''+a}return qD(a)} +function a4d(a){if(a.e.j!=a.d){throw vbb(new Apb)}} +function Nbb(a,b){return zbb(kD(Fbb(a)?Rbb(a):a,b))} +function Obb(a,b){return zbb(lD(Fbb(a)?Rbb(a):a,b))} +function Pbb(a,b){return zbb(mD(Fbb(a)?Rbb(a):a,b))} +function Dcb(a,b){return Ecb((uCb(a),a),(uCb(b),b))} +function Ddb(a,b){return Kdb((uCb(a),a),(uCb(b),b))} +function fx(a,b){return Qb(b),a.a.Ad(b)&&!a.b.Ad(b)} +function dD(a,b){return TC(a.l&b.l,a.m&b.m,a.h&b.h)} +function jD(a,b){return TC(a.l|b.l,a.m|b.m,a.h|b.h)} +function rD(a,b){return TC(a.l^b.l,a.m^b.m,a.h^b.h)} +function QAb(a,b){return TAb(a,(uCb(b),new Rxb(b)))} +function RAb(a,b){return TAb(a,(uCb(b),new Txb(b)))} +function g1b(a){return z0b(),BD(a,11).e.c.length!=0} +function l1b(a){return z0b(),BD(a,11).g.c.length!=0} +function bac(a,b){I9b();return Kdb(b.a.o.a,a.a.o.a)} +function Rnc(a,b,c){return Snc(a,BD(b,11),BD(c,11))} +function koc(a){if(a.e){return poc(a.e)}return null} +function Iub(a){if(!a.d){a.d=a.b.Kc();a.c=a.b.gc()}} +function pBb(a,b,c){if(a.a.Mb(c)){a.b=true;b.td(c)}} +function _vb(a,b){if(a<0||a>=b){throw vbb(new rcb)}} +function Pyb(a,b,c){NC(b,0,Bzb(b[0],c[0]));return b} +function _yc(a,b,c){b.Ye(c,Edb(ED(Ohb(a.b,c)))*a.a)} +function n6c(a,b,c){i6c();return m6c(a,b)&&m6c(a,c)} +function tcd(a){rcd();return !a.Hc(ncd)&&!a.Hc(pcd)} +function D6c(a){return new f7c(a.c+a.b/2,a.d+a.a/2)} +function oOd(a,b){return b.kh()?xid(a.b,BD(b,49)):b} +function bvb(a,b){this.e=a;this.d=(b&64)!=0?b|oie:b} +function qvb(a,b){this.c=0;this.d=a;this.b=b|64|oie} +function gub(a){this.b=new Skb(11);this.a=(ipb(),a)} +function Qwb(a){this.b=null;this.a=(ipb(),!a?fpb:a)} +function nHc(a){this.a=lHc(a.a);this.b=new Tkb(a.b)} +function Pzd(a){this.b=a;Oyd.call(this,a);Ozd(this)} +function Xzd(a){this.b=a;bzd.call(this,a);Wzd(this)} +function jUd(a,b,c){this.a=a;gUd.call(this,b,c,5,6)} +function Y5d(a,b,c,d){this.b=a;xMd.call(this,b,c,d)} +function nSd(a,b,c,d,e){oSd.call(this,a,b,c,d,e,-1)} +function DSd(a,b,c,d,e){ESd.call(this,a,b,c,d,e,-1)} +function cUd(a,b,c,d){xMd.call(this,a,b,c);this.b=d} +function i5d(a,b,c,d){pMd.call(this,a,b,c);this.b=d} +function x0d(a){Wud.call(this,a,false);this.a=false} +function Lj(a,b){this.b=a;sj.call(this,a.b);this.a=b} +function px(a,b){im();ox.call(this,a,Dm(new amb(b)))} +function Cfe(a,b){wfe();++vfe;return new Dge(a,b,0)} +function Efe(a,b){wfe();++vfe;return new Dge(6,a,b)} +function nfb(a,b){return dfb(a.substr(0,b.length),b)} +function Mhb(a,b){return ND(b)?Qhb(a,b):!!irb(a.f,b)} +function Rrb(a,b){uCb(b);while(a.Ob()){b.td(a.Pb())}} +function Vgb(a,b,c){Hgb();this.e=a;this.d=b;this.a=c} +function amc(a,b,c,d){var e;e=a.i;e.i=b;e.a=c;e.b=d} +function xJc(a){var b;b=a;while(b.f){b=b.f}return b} +function fkb(a){var b;b=bkb(a);sCb(b!=null);return b} +function gkb(a){var b;b=ckb(a);sCb(b!=null);return b} +function cv(a,b){var c;c=a.a.gc();Sb(b,c);return c-b} +function Glb(a,b){var c;for(c=0;c<b;++c){a[c]=false}} +function Clb(a,b,c,d){var e;for(e=b;e<c;++e){a[e]=d}} +function ylb(a,b,c,d){oCb(b,c,a.length);Clb(a,b,c,d)} +function Vvb(a,b,c){_vb(c,a.a.c.length);Nkb(a.a,c,b)} +function Lyb(a,b,c){this.c=a;this.a=b;mmb();this.b=c} +function Qpb(a,b,c){var d;d=a.b[b];a.b[b]=c;return d} +function Qqb(a,b){var c;c=a.a.zc(b,a);return c==null} +function zjb(a){if(!a){throw vbb(new utb)}return a.d} +function vCb(a,b){if(a==null){throw vbb(new Heb(b))}} +function Goc(a,b){if(!b){return false}return ye(a,b)} +function K2c(a,b,c){C2c(a,b.g,c);rqb(a.c,b);return a} +function vVb(a){tVb(a,(ead(),aad));a.d=true;return a} +function c2d(a){!a.j&&i2d(a,d1d(a.g,a.b));return a.j} +function nlb(a){yCb(a.b!=-1);Kkb(a.c,a.a=a.b);a.b=-1} +function Uhb(a){a.f=new lrb(a);a.g=new Frb(a);zpb(a)} +function Plb(a){return new YAb(null,Olb(a,a.length))} +function ul(a){return new Sr(new xl(a.a.length,a.a))} +function iD(a){return TC(~a.l&Eje,~a.m&Eje,~a.h&Fje)} +function OD(a){return typeof a===Jhe||typeof a===Nhe} +function D9d(a){return a==Pje?Nwe:a==Qje?'-INF':''+a} +function F9d(a){return a==Pje?Nwe:a==Qje?'-INF':''+a} +function yRb(a,b){return a>0?$wnd.Math.log(a/b):-100} +function ueb(a,b){return ybb(a,b)<0?-1:ybb(a,b)>0?1:0} +function HMb(a,b,c){return IMb(a,BD(b,46),BD(c,167))} +function iq(a,b){return BD(Rl(Wm(a.a)).Xb(b),42).cd()} +function Olb(a,b){return avb(b,a.length),new vvb(a,b)} +function Pyd(a,b){this.d=a;Fyd.call(this,a);this.e=b} +function Lub(a){this.d=(uCb(a),a);this.a=0;this.c=rie} +function rge(a,b){xfe.call(this,1);this.a=a;this.b=b} +function Rzb(a,b){!a.c?Ekb(a.b,b):Rzb(a.c,b);return a} +function uB(a,b,c){var d;d=tB(a,b);vB(a,b,c);return d} +function ZBb(a,b){var c;c=a.slice(0,b);return PC(c,a)} +function Flb(a,b,c){var d;for(d=0;d<b;++d){NC(a,d,c)}} +function ffb(a,b,c,d,e){while(b<c){d[e++]=bfb(a,b++)}} +function hLb(a,b){return Kdb(a.c.c+a.c.b,b.c.c+b.c.b)} +function Axb(a,b){return Iwb(a.a,b,(Bcb(),zcb))==null} +function Vsb(a,b){Gsb(a.d,b,a.b.b,a.b);++a.a;a.c=null} +function d3d(a,b){JLd(a,JD(b,153)?b:BD(b,1937).gl())} +function hkc(a,b){MAb(NAb(a.Oc(),new Rkc),new Tkc(b))} +function kkc(a,b,c,d,e){jkc(a,BD(Qc(b.k,c),15),c,d,e)} +function lOc(a){a.s=NaN;a.c=NaN;mOc(a,a.e);mOc(a,a.j)} +function it(a){a.a=null;a.e=null;Uhb(a.b);a.d=0;++a.c} +function gKc(a){return $wnd.Math.abs(a.d.e-a.e.e)-a.a} +function MAd(a,b,c){return BD(a.c._c(b,BD(c,133)),42)} +function os(){hs();return OC(GC(yG,1),Kie,538,0,[gs])} +function VPb(a){QPb();return Xod(jtd(a))==Xod(ltd(a))} +function aRb(a){_Qb.call(this);this.a=a;Ekb(a.a,this)} +function tPc(a,b){this.d=DPc(a);this.c=b;this.a=0.5*b} +function A6d(){$rb.call(this);this.a=true;this.b=true} +function aLd(a){return (a.i==null&&TKd(a),a.i).length} +function oRd(a){return JD(a,99)&&(BD(a,18).Bb&ote)!=0} +function w2d(a,b){++a.j;t3d(a,a.i,b);v2d(a,BD(b,332))} +function vId(a,b){b=a.nk(null,b);return uId(a,null,b)} +function ytd(a,b){a.hi()&&(b=Dtd(a,b));return a.Wh(b)} +function mdb(a,b,c){var d;d=ldb(a,b);zdb(c,d);return d} +function ldb(a,b){var c;c=new jdb;c.j=a;c.d=b;return c} +function Qb(a){if(a==null){throw vbb(new Geb)}return a} +function Fc(a){var b;b=a.j;return !b?(a.j=new Cw(a)):b} +function Vi(a){var b;b=a.f;return !b?(a.f=new Rj(a)):b} +function ci(a){var b;return b=a.k,!b?(a.k=new th(a)):b} +function Uc(a){var b;return b=a.k,!b?(a.k=new th(a)):b} +function Pc(a){var b;return b=a.g,!b?(a.g=new lh(a)):b} +function Yi(a){var b;return b=a.i,!b?(a.i=new Ci(a)):b} +function qo(a){var b;b=a.d;return !b?(a.d=new ap(a)):b} +function Fb(a){Qb(a);return JD(a,475)?BD(a,475):fcb(a)} +function Ix(a){if(JD(a,607)){return a}return new by(a)} +function qj(a,b){Pb(b,a.c.b.c.gc());return new Fj(a,b)} +function Dfe(a,b,c){wfe();++vfe;return new zge(a,b,c)} +function NC(a,b,c){qCb(c==null||FC(a,c));return a[b]=c} +function bv(a,b){var c;c=a.a.gc();Pb(b,c);return c-1-b} +function Afb(a,b){a.a+=String.fromCharCode(b);return a} +function Kfb(a,b){a.a+=String.fromCharCode(b);return a} +function ovb(a,b){uCb(b);while(a.c<a.d){a.ze(b,a.c++)}} +function Ohb(a,b){return ND(b)?Phb(a,b):Wd(irb(a.f,b))} +function ZPb(a,b){QPb();return a==jtd(b)?ltd(b):jtd(b)} +function isd(a,b){Qpd(a,new yC(b.f!=null?b.f:''+b.g))} +function ksd(a,b){Qpd(a,new yC(b.f!=null?b.f:''+b.g))} +function dVb(a){this.b=new Rkb;this.a=new Rkb;this.c=a} +function H1b(a){this.c=new d7c;this.a=new Rkb;this.b=a} +function pRb(a){_Qb.call(this);this.a=new d7c;this.c=a} +function yC(a){if(a==null){throw vbb(new Geb)}this.a=a} +function HA(a){fA();this.b=new Rkb;this.a=a;sA(this,a)} +function v4c(a){this.c=a;this.a=new Psb;this.b=new Psb} +function GB(){GB=ccb;EB=new HB(false);FB=new HB(true)} +function im(){im=ccb;Ql();hm=new ux((mmb(),mmb(),jmb))} +function yx(){yx=ccb;Ql();xx=new zx((mmb(),mmb(),lmb))} +function NFd(){NFd=ccb;MFd=BZd();!!(jGd(),PFd)&&DZd()} +function aac(a,b){I9b();return BD(Mpb(a,b.d),15).Fc(b)} +function pTb(a,b,c,d){return c==0||(c-d)/c<a.e||b>=a.g} +function NHc(a,b,c){var d;d=THc(a,b,c);return MHc(a,d)} +function Qpd(a,b){var c;c=a.a.length;tB(a,c);vB(a,c,b)} +function gCb(a,b){var c;c=console[a];c.call(console,b)} +function Bvd(a,b){var c;++a.j;c=a.Vi();a.Ii(a.oi(c,b))} +function E1c(a,b,c){BD(b.b,65);Hkb(b.a,new L1c(a,c,b))} +function oXd(a,b,c){VVd.call(this,b);this.a=a;this.b=c} +function Dge(a,b,c){xfe.call(this,a);this.a=b;this.b=c} +function dYd(a,b,c){this.a=a;lVd.call(this,b);this.b=c} +function f0d(a,b,c){this.a=a;mxd.call(this,8,b,null,c)} +function z1d(a){this.a=(uCb(Rve),Rve);this.b=a;new oUd} +function ct(a){this.c=a;this.b=this.c.a;this.a=this.c.e} +function usb(a){this.c=a;this.b=a.a.d.a;ypb(a.a.e,this)} +function uib(a){yCb(a.c!=-1);a.d.$c(a.c);a.b=a.c;a.c=-1} +function U6c(a){return $wnd.Math.sqrt(a.a*a.a+a.b*a.b)} +function Uvb(a,b){return _vb(b,a.a.c.length),Ikb(a.a,b)} +function Hb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function oAb(a){if(0>=a){return new yAb}return pAb(a-1)} +function Nfe(a){if(!bfe)return false;return Qhb(bfe,a)} +function Ehe(a){if(a)return a.dc();return !a.Kc().Ob()} +function Q_b(a){if(!a.a&&!!a.c){return a.c.b}return a.a} +function LHd(a){!a.a&&(a.a=new xMd(m5,a,4));return a.a} +function LQd(a){!a.d&&(a.d=new xMd(j5,a,1));return a.d} +function uCb(a){if(a==null){throw vbb(new Geb)}return a} +function Qzb(a){if(!a.c){a.d=true;Szb(a)}else{a.c.He()}} +function Tzb(a){if(!a.c){Uzb(a);a.d=true}else{Tzb(a.c)}} +function Kpb(a){Ae(a.a);a.b=KC(SI,Uhe,1,a.b.length,5,1)} +function qlc(a,b){return beb(b.j.c.length,a.j.c.length)} +function igd(a,b){a.c<0||a.b.b<a.c?Fsb(a.b,b):a.a._e(b)} +function Did(a,b){var c;c=a.Yg(b);c>=0?a.Bh(c):vid(a,b)} +function WHc(a){var b,c;b=a.c.i.c;c=a.d.i.c;return b==c} +function Wwd(a){if(a.p!=4)throw vbb(new Ydb);return a.e} +function Vwd(a){if(a.p!=3)throw vbb(new Ydb);return a.e} +function Ywd(a){if(a.p!=6)throw vbb(new Ydb);return a.f} +function fxd(a){if(a.p!=6)throw vbb(new Ydb);return a.k} +function cxd(a){if(a.p!=3)throw vbb(new Ydb);return a.j} +function dxd(a){if(a.p!=4)throw vbb(new Ydb);return a.j} +function AYd(a){!a.b&&(a.b=new RYd(new NYd));return a.b} +function $1d(a){a.c==-2&&e2d(a,X0d(a.g,a.b));return a.c} +function pdb(a,b){var c;c=ldb('',a);c.n=b;c.i=1;return c} +function MNb(a,b){$Nb(BD(b.b,65),a);Hkb(b.a,new RNb(a))} +function Cnd(a,b){wtd((!a.a&&(a.a=new fTd(a,a)),a.a),b)} +function Qzd(a,b){this.b=a;Pyd.call(this,a,b);Ozd(this)} +function Yzd(a,b){this.b=a;czd.call(this,a,b);Wzd(this)} +function Ms(a,b,c,d){Wo.call(this,a,b);this.d=c;this.a=d} +function $o(a,b,c,d){Wo.call(this,a,c);this.a=b;this.f=d} +function iy(a,b){Pp.call(this,umb(Qb(a),Qb(b)));this.a=b} +function cae(){fod.call(this,Ewe,(p8d(),o8d));$9d(this)} +function AZd(){fod.call(this,_ve,(LFd(),KFd));uZd(this)} +function T0c(){$r.call(this,'DELAUNAY_TRIANGULATION',0)} +function vfb(a){return String.fromCharCode.apply(null,a)} +function Rhb(a,b,c){return ND(b)?Shb(a,b,c):jrb(a.f,b,c)} +function tmb(a){mmb();return !a?(ipb(),ipb(),hpb):a.ve()} +function d2c(a,b,c){Y1c();return c.pg(a,BD(b.cd(),146))} +function ix(a,b){ex();return new gx(new il(a),new Uk(b))} +function Iu(a){Xj(a,Mie);return Oy(wbb(wbb(5,a),a/10|0))} +function Vm(){Vm=ccb;Um=new wx(OC(GC(CK,1),zie,42,0,[]))} +function hob(a){!a.d&&(a.d=new lnb(a.c.Cc()));return a.d} +function eob(a){!a.a&&(a.a=new Gob(a.c.vc()));return a.a} +function gob(a){!a.b&&(a.b=new zob(a.c.ec()));return a.b} +function keb(a,b){while(b-->0){a=a<<1|(a<0?1:0)}return a} +function wtb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)} +function Gbc(a,b){return Bcb(),BD(b.b,19).a<a?true:false} +function Hbc(a,b){return Bcb(),BD(b.a,19).a<a?true:false} +function Mpb(a,b){return tqb(a.a,b)?a.b[BD(b,22).g]:null} +function kcb(a,b,c,d){a.a=qfb(a.a,0,b)+(''+d)+pfb(a.a,c)} +function OJb(a,b){a.u.Hc((rcd(),ncd))&&MJb(a,b);QJb(a,b)} +function bfb(a,b){BCb(b,a.length);return a.charCodeAt(b)} +function vtb(){hz.call(this,'There is no more element.')} +function xkb(a){this.d=a;this.a=this.d.b;this.b=this.d.c} +function kEb(a){a.b=false;a.c=false;a.d=false;a.a=false} +function Znd(a,b,c,d){Ynd(a,b,c,false);LPd(a,d);return a} +function h3c(a){a.j.c=KC(SI,Uhe,1,0,5,1);a.a=-1;return a} +function Old(a){!a.c&&(a.c=new y5d(z2,a,5,8));return a.c} +function Nld(a){!a.b&&(a.b=new y5d(z2,a,4,7));return a.b} +function Kkd(a){!a.n&&(a.n=new cUd(D2,a,1,7));return a.n} +function Yod(a){!a.c&&(a.c=new cUd(F2,a,9,9));return a.c} +function a2d(a){a.e==Gwe&&g2d(a,a1d(a.g,a.b));return a.e} +function b2d(a){a.f==Gwe&&h2d(a,b1d(a.g,a.b));return a.f} +function Ah(a){var b;b=a.b;!b&&(a.b=b=new Ph(a));return b} +function Ae(a){var b;for(b=a.Kc();b.Ob();){b.Pb();b.Qb()}} +function Fg(a){ag(a.d);if(a.d.d!=a.c){throw vbb(new Apb)}} +function Xx(a,b){this.b=a;this.c=b;this.a=new Gqb(this.b)} +function Zeb(a,b,c){this.a=Zie;this.d=a;this.b=b;this.c=c} +function Mub(a,b){this.d=(uCb(a),a);this.a=16449;this.c=b} +function nqd(a,b){ctd(a,Edb(Xpd(b,'x')),Edb(Xpd(b,'y')))} +function Aqd(a,b){ctd(a,Edb(Xpd(b,'x')),Edb(Xpd(b,'y')))} +function JAb(a,b){Uzb(a);return new YAb(a,new qBb(b,a.a))} +function NAb(a,b){Uzb(a);return new YAb(a,new IBb(b,a.a))} +function OAb(a,b){Uzb(a);return new bAb(a,new wBb(b,a.a))} +function PAb(a,b){Uzb(a);return new vAb(a,new CBb(b,a.a))} +function Cy(a,b){return new Ay(BD(Qb(a),62),BD(Qb(b),62))} +function PWb(a,b){LWb();return Kdb((uCb(a),a),(uCb(b),b))} +function fPb(){cPb();return OC(GC(GO,1),Kie,481,0,[bPb])} +function o_c(){i_c();return OC(GC(N_,1),Kie,482,0,[h_c])} +function x_c(){s_c();return OC(GC(O_,1),Kie,551,0,[r_c])} +function X0c(){R0c();return OC(GC(W_,1),Kie,530,0,[Q0c])} +function cEc(a){this.a=new Rkb;this.e=KC(WD,nie,48,a,0,2)} +function l$b(a,b,c,d){this.a=a;this.e=b;this.d=c;this.c=d} +function QIc(a,b,c,d){this.a=a;this.c=b;this.b=c;this.d=d} +function rKc(a,b,c,d){this.c=a;this.b=b;this.a=c;this.d=d} +function WKc(a,b,c,d){this.c=a;this.b=b;this.d=c;this.a=d} +function J6c(a,b,c,d){this.c=a;this.d=b;this.b=c;this.a=d} +function gPc(a,b,c,d){this.a=a;this.d=b;this.c=c;this.b=d} +function Blc(a,b,c,d){$r.call(this,a,b);this.a=c;this.b=d} +function Ggd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function pec(a,b,c){Pmc(a.a,c);dmc(c);enc(a.b,c);xmc(b,c)} +function Pid(a,b,c){var d,e;d=QEd(a);e=b.Kh(c,d);return e} +function KPb(a,b){var c,d;c=a/b;d=QD(c);c>d&&++d;return d} +function Nnd(a){var b,c;c=(b=new UQd,b);NQd(c,a);return c} +function Ond(a){var b,c;c=(b=new UQd,b);RQd(c,a);return c} +function hqd(a,b){var c;c=Ohb(a.f,b);Yqd(b,c);return null} +function JZb(a){var b;b=P2b(a);if(b){return b}return null} +function Wod(a){!a.b&&(a.b=new cUd(B2,a,12,3));return a.b} +function YEd(a){return a!=null&&hnb(GEd,a.toLowerCase())} +function ied(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function jed(a,b){return Kdb(red(a)*qed(a),red(b)*qed(b))} +function wEb(a,b){return Kdb(a.d.c+a.d.b/2,b.d.c+b.d.b/2)} +function UVb(a,b){return Kdb(a.g.c+a.g.b/2,b.g.c+b.g.b/2)} +function pQb(a,b,c){c.a?eld(a,b.b-a.f/2):dld(a,b.a-a.g/2)} +function prd(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function ord(a,b,c,d){this.a=a;this.b=b;this.c=c;this.d=d} +function JVd(a,b,c,d){this.e=a;this.a=b;this.c=c;this.d=d} +function ZVd(a,b,c,d){this.a=a;this.c=b;this.d=c;this.b=d} +function cXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function jXd(a,b,c,d){UVd();mWd.call(this,b,c,d);this.a=a} +function Ng(a,b){this.a=a;Hg.call(this,a,BD(a.d,15).Zc(b))} +function ZBd(a){this.f=a;this.c=this.f.e;a.f>0&&YBd(this)} +function lBb(a,b,c,d){this.b=a;this.c=d;nvb.call(this,b,c)} +function tib(a){sCb(a.b<a.d.gc());return a.d.Xb(a.c=a.b++)} +function Osb(a){a.a.a=a.c;a.c.b=a.a;a.a.b=a.c.a=null;a.b=0} +function u_b(a,b){a.b=b.b;a.c=b.c;a.d=b.d;a.a=b.a;return a} +function Ry(a){if(a.n){a.e!==Sie&&a._d();a.j=null}return a} +function FD(a){CCb(a==null||OD(a)&&!(a.im===gcb));return a} +function p4b(a){this.b=new Rkb;Gkb(this.b,this.b);this.a=a} +function QPb(){QPb=ccb;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb} +function mmb(){mmb=ccb;jmb=new xmb;kmb=new Qmb;lmb=new Ymb} +function ipb(){ipb=ccb;fpb=new kpb;gpb=new kpb;hpb=new ppb} +function ODb(){ODb=ccb;LDb=new JDb;NDb=new oEb;MDb=new fEb} +function MCb(){if(HCb==256){GCb=ICb;ICb=new nb;HCb=0}++HCb} +function nd(a){var b;return b=a.f,!b?(a.f=new ne(a,a.c)):b} +function d2b(a){return Qld(a)&&Ccb(DD(hkd(a,(Nyc(),gxc))))} +function mcc(a,b){return Rc(a,BD(vNb(b,(Nyc(),Nxc)),19),b)} +function POc(a,b){return vPc(a.j,b.s,b.c)+vPc(b.e,a.s,a.c)} +function ooc(a,b){if(!!a.e&&!a.e.a){moc(a.e,b);ooc(a.e,b)}} +function noc(a,b){if(!!a.d&&!a.d.a){moc(a.d,b);noc(a.d,b)}} +function hed(a,b){return -Kdb(red(a)*qed(a),red(b)*qed(b))} +function cgd(a){return BD(a.cd(),146).tg()+':'+fcb(a.dd())} +function Zgc(a){Hgc();var b;b=BD(a.g,10);b.n.a=a.d.c+b.d.b} +function wgc(a,b,c){qgc();return iEb(BD(Ohb(a.e,b),522),c)} +function Y2c(a,b){rb(a);rb(b);return Xr(BD(a,22),BD(b,22))} +function oic(a,b,c){a.i=0;a.e=0;if(b==c){return}kic(a,b,c)} +function pic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c)} +function Spd(a,b,c){var d,e;d=Kcb(c);e=new TB(d);cC(a,b,e)} +function FSd(a,b,c,d,e,f){ESd.call(this,a,b,c,d,e,f?-2:-1)} +function U5d(a,b,c,d){MLd.call(this,b,c);this.b=a;this.a=d} +function QRc(a,b){new Psb;this.a=new s7c;this.b=a;this.c=b} +function Hec(a,b){BD(vNb(a,(wtc(),Qsc)),15).Fc(b);return b} +function Rb(a,b){if(a==null){throw vbb(new Heb(b))}return a} +function WKd(a){!a.q&&(a.q=new cUd(n5,a,11,10));return a.q} +function ZKd(a){!a.s&&(a.s=new cUd(t5,a,21,17));return a.s} +function Vod(a){!a.a&&(a.a=new cUd(E2,a,10,11));return a.a} +function Dx(a){return JD(a,14)?new Vqb(BD(a,14)):Ex(a.Kc())} +function Ni(a){return new aj(a,a.e.Hd().gc()*a.c.Hd().gc())} +function Zi(a){return new kj(a,a.e.Hd().gc()*a.c.Hd().gc())} +function rz(a){return !!a&&!!a.hashCode?a.hashCode():FCb(a)} +function Qhb(a,b){return b==null?!!irb(a.f,null):Brb(a.g,b)} +function Oq(a){Qb(a);return mr(new Sr(ur(a.a.Kc(),new Sq)))} +function vmb(a){mmb();return JD(a,54)?new Yob(a):new Inb(a)} +function VDb(a,b,c){if(a.f){return a.f.Ne(b,c)}return false} +function Gfb(a,b){a.a=qfb(a.a,0,b)+''+pfb(a.a,b+1);return a} +function fVb(a,b){var c;c=Sqb(a.a,b);c&&(b.d=null);return c} +function zpb(a){var b,c;c=a;b=c.$modCount|0;c.$modCount=b+1} +function pu(a){this.b=a;this.c=a;a.e=null;a.c=null;this.a=1} +function hOb(a){this.b=a;this.a=new Hxb(BD(Qb(new kOb),62))} +function uEb(a){this.c=a;this.b=new Hxb(BD(Qb(new xEb),62))} +function SVb(a){this.c=a;this.b=new Hxb(BD(Qb(new VVb),62))} +function FYb(){this.a=new HXb;this.b=new LXb;this.d=new SYb} +function UZb(){this.a=new s7c;this.b=(Xj(3,Jie),new Skb(3))} +function VMc(){this.b=new Tqb;this.d=new Psb;this.e=new twb} +function K6c(a){this.c=a.c;this.d=a.d;this.b=a.b;this.a=a.a} +function Ay(a,b){oi.call(this,new Qwb(a));this.a=a;this.b=b} +function eod(){bod(this,new $md);this.wb=(NFd(),MFd);LFd()} +function eHc(a){Odd(a,'No crossing minimization',1);Qdd(a)} +function Gz(a){Az();$wnd.setTimeout(function(){throw a},0)} +function _Kd(a){if(!a.u){$Kd(a);a.u=new YOd(a,a)}return a.u} +function wjd(a){var b;b=BD(Ajd(a,16),26);return !b?a.zh():b} +function Jsd(a,b){return JD(b,146)&&dfb(a.b,BD(b,146).tg())} +function t0d(a,b){return a.a?b.Wg().Kc():BD(b.Wg(),69).Zh()} +function u3b(a){return a.k==(j0b(),h0b)&&wNb(a,(wtc(),Csc))} +function ux(a){this.a=(mmb(),JD(a,54)?new Yob(a):new Inb(a))} +function Rz(){Rz=ccb;var a,b;b=!Xz();a=new dA;Qz=b?new Yz:a} +function Wy(a,b){var c;c=hdb(a.gm);return b==null?c:c+': '+b} +function Eob(a,b){var c;c=a.b.Qc(b);Fob(c,a.b.gc());return c} +function ytb(a,b){if(a==null){throw vbb(new Heb(b))}return a} +function irb(a,b){return grb(a,b,hrb(a,b==null?0:a.b.se(b)))} +function ofb(a,b,c){return c>=0&&dfb(a.substr(c,b.length),b)} +function H2d(a,b,c,d,e,f,g){return new O7d(a.e,b,c,d,e,f,g)} +function Cxd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function vyd(a,b,c,d,e,f){this.a=a;nxd.call(this,b,c,d,e,f)} +function $Ec(a,b){this.g=a;this.d=OC(GC(OQ,1),kne,10,0,[b])} +function KVd(a,b){this.e=a;this.a=SI;this.b=R5d(b);this.c=b} +function cIb(a,b){$Gb.call(this);THb(this);this.a=a;this.c=b} +function kBc(a,b,c,d){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d)} +function nBc(a,b,c,d){NC(a.c[b.g],b.g,c);NC(a.b[b.g],b.g,d)} +function cBc(){_Ac();return OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])} +function crc(){_qc();return OC(GC(MW,1),Kie,479,0,[$qc,Zqc])} +function Aqc(){xqc();return OC(GC(JW,1),Kie,419,0,[vqc,wqc])} +function Lpc(){Ipc();return OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])} +function psc(){msc();return OC(GC(SW,1),Kie,420,0,[ksc,lsc])} +function EAc(){BAc();return OC(GC(cX,1),Kie,421,0,[zAc,AAc])} +function XIc(){UIc();return OC(GC(mY,1),Kie,523,0,[TIc,SIc])} +function KOc(){HOc();return OC(GC(DZ,1),Kie,520,0,[GOc,FOc])} +function _Lc(){YLc();return OC(GC(fZ,1),Kie,516,0,[XLc,WLc])} +function hMc(){eMc();return OC(GC(gZ,1),Kie,515,0,[cMc,dMc])} +function IQc(){FQc();return OC(GC(YZ,1),Kie,455,0,[DQc,EQc])} +function bUc(){$Tc();return OC(GC(F$,1),Kie,425,0,[ZTc,YTc])} +function VTc(){STc();return OC(GC(E$,1),Kie,480,0,[QTc,RTc])} +function VUc(){PUc();return OC(GC(K$,1),Kie,495,0,[NUc,OUc])} +function jWc(){fWc();return OC(GC(X$,1),Kie,426,0,[dWc,eWc])} +function g1c(){a1c();return OC(GC(X_,1),Kie,429,0,[_0c,$0c])} +function F_c(){C_c();return OC(GC(P_,1),Kie,430,0,[B_c,A_c])} +function PEb(){MEb();return OC(GC(aN,1),Kie,428,0,[LEb,KEb])} +function XEb(){UEb();return OC(GC(bN,1),Kie,427,0,[SEb,TEb])} +function $Rb(){XRb();return OC(GC(gP,1),Kie,424,0,[VRb,WRb])} +function B5b(){y5b();return OC(GC(ZR,1),Kie,511,0,[x5b,w5b])} +function lid(a,b,c,d){return c>=0?a.jh(b,c,d):a.Sg(null,c,d)} +function hgd(a){if(a.b.b==0){return a.a.$e()}return Lsb(a.b)} +function Xwd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.f)} +function exd(a){if(a.p!=5)throw vbb(new Ydb);return Tbb(a.k)} +function pNd(a){PD(a.a)===PD((NKd(),MKd))&&qNd(a);return a.a} +function by(a){this.a=BD(Qb(a),271);this.b=(mmb(),new Zob(a))} +function bQc(a,b){$Pc(this,new f7c(a.a,a.b));_Pc(this,Ru(b))} +function FQc(){FQc=ccb;DQc=new GQc(jle,0);EQc=new GQc(kle,1)} +function YLc(){YLc=ccb;XLc=new ZLc(kle,0);WLc=new ZLc(jle,1)} +function Hp(){Gp.call(this,new Mqb(Cv(12)));Lb(true);this.a=2} +function Hge(a,b,c){wfe();xfe.call(this,a);this.b=b;this.a=c} +function cWd(a,b,c){UVd();VVd.call(this,b);this.a=a;this.b=c} +function aIb(a){$Gb.call(this);THb(this);this.a=a;this.c=true} +function isb(a){var b;b=a.c.d.b;a.b=b;a.a=a.c.d;b.a=a.c.d.b=a} +function $Cb(a){var b;NGb(a.a);MGb(a.a);b=new YGb(a.a);UGb(b)} +function iKb(a,b){hKb(a,true);Hkb(a.e.wf(),new mKb(a,true,b))} +function tlb(a,b){pCb(b);return vlb(a,KC(WD,oje,25,b,15,1),b)} +function YPb(a,b){QPb();return a==Xod(jtd(b))||a==Xod(ltd(b))} +function Phb(a,b){return b==null?Wd(irb(a.f,null)):Crb(a.g,b)} +function Ksb(a){return a.b==0?null:(sCb(a.b!=0),Nsb(a,a.a.a))} +function QD(a){return Math.max(Math.min(a,Ohe),-2147483648)|0} +function uz(a,b){var c=tz[a.charCodeAt(0)];return c==null?a:c} +function Cx(a,b){Rb(a,'set1');Rb(b,'set2');return new Px(a,b)} +function QUb(a,b){var c;c=zUb(a.f,b);return P6c(V6c(c),a.f.d)} +function Jwb(a,b){var c,d;c=b;d=new fxb;Lwb(a,c,d);return d.d} +function NJb(a,b,c,d){var e;e=new aHb;b.a[c.g]=e;Npb(a.b,d,e)} +function zid(a,b,c){var d;d=a.Yg(b);d>=0?a.sh(d,c):uid(a,b,c)} +function hvd(a,b,c){evd();!!a&&Rhb(dvd,a,b);!!a&&Rhb(cvd,a,c)} +function g_c(a,b,c){this.i=new Rkb;this.b=a;this.g=b;this.a=c} +function VZc(a,b,c){this.c=new Rkb;this.e=a;this.f=b;this.b=c} +function b$c(a,b,c){this.a=new Rkb;this.e=a;this.f=b;this.c=c} +function Zy(a,b){Py(this);this.f=b;this.g=a;Ry(this);this._d()} +function ZA(a,b){var c;c=a.q.getHours();a.q.setDate(b);YA(a,c)} +function no(a,b){var c;Qb(b);for(c=a.a;c;c=c.c){b.Od(c.g,c.i)}} +function Fx(a){var b;b=new Uqb(Cv(a.length));nmb(b,a);return b} +function ecb(a){function b(){} +;b.prototype=a||{};return new b} +function dkb(a,b){if(Zjb(a,b)){wkb(a);return true}return false} +function aC(a,b){if(b==null){throw vbb(new Geb)}return bC(a,b)} +function tdb(a){if(a.qe()){return null}var b=a.n;return _bb[b]} +function Mld(a){if(a.Db>>16!=3)return null;return BD(a.Cb,33)} +function mpd(a){if(a.Db>>16!=9)return null;return BD(a.Cb,33)} +function fmd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,79)} +function Ind(a){if(a.Db>>16!=7)return null;return BD(a.Cb,235)} +function Fod(a){if(a.Db>>16!=7)return null;return BD(a.Cb,160)} +function Xod(a){if(a.Db>>16!=11)return null;return BD(a.Cb,33)} +function nid(a,b){var c;c=a.Yg(b);return c>=0?a.lh(c):tid(a,b)} +function Dtd(a,b){var c;c=new Bsb(b);Ve(c,a);return new Tkb(c)} +function Uud(a){var b;b=a.d;b=a.si(a.f);wtd(a,b);return b.Ob()} +function t_b(a,b){a.b+=b.b;a.c+=b.c;a.d+=b.d;a.a+=b.a;return a} +function A4b(a,b){return $wnd.Math.abs(a)<$wnd.Math.abs(b)?a:b} +function Zod(a){return !a.a&&(a.a=new cUd(E2,a,10,11)),a.a.i>0} +function oDb(){this.a=new zsb;this.e=new Tqb;this.g=0;this.i=0} +function BGc(a){this.a=a;this.b=KC(SX,nie,1944,a.e.length,0,2)} +function RHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length)} +function eMc(){eMc=ccb;cMc=new fMc(vle,0);dMc=new fMc('UP',1)} +function STc(){STc=ccb;QTc=new TTc(Yqe,0);RTc=new TTc('FAN',1)} +function evd(){evd=ccb;dvd=new Lqb;cvd=new Lqb;ivd(hK,new jvd)} +function Swd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.f,0)} +function _wd(a){if(a.p!=0)throw vbb(new Ydb);return Kbb(a.k,0)} +function MHd(a){if(a.Db>>16!=3)return null;return BD(a.Cb,147)} +function ZJd(a){if(a.Db>>16!=6)return null;return BD(a.Cb,235)} +function WId(a){if(a.Db>>16!=17)return null;return BD(a.Cb,26)} +function rdb(a,b){var c=a.a=a.a||[];return c[b]||(c[b]=a.le(b))} +function hrb(a,b){var c;c=a.a.get(b);return c==null?new Array:c} +function aB(a,b){var c;c=a.q.getHours();a.q.setMonth(b);YA(a,c)} +function Shb(a,b,c){return b==null?jrb(a.f,null,c):Drb(a.g,b,c)} +function FLd(a,b,c,d,e,f){return new pSd(a.e,b,a.aj(),c,d,e,f)} +function Tfb(a,b,c){a.a=qfb(a.a,0,b)+(''+c)+pfb(a.a,b);return a} +function bq(a,b,c){Ekb(a.a,(Vm(),Wj(b,c),new Wo(b,c)));return a} +function uu(a){ot(a.c);a.e=a.a=a.c;a.c=a.c.c;++a.d;return a.a.f} +function vu(a){ot(a.e);a.c=a.a=a.e;a.e=a.e.e;--a.d;return a.a.f} +function RZb(a,b){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Ekb(a.d.e,a)} +function QZb(a,b){!!a.c&&Lkb(a.c.g,a);a.c=b;!!a.c&&Ekb(a.c.g,a)} +function $_b(a,b){!!a.c&&Lkb(a.c.a,a);a.c=b;!!a.c&&Ekb(a.c.a,a)} +function F0b(a,b){!!a.i&&Lkb(a.i.j,a);a.i=b;!!a.i&&Ekb(a.i.j,a)} +function jDb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function qXb(a,b,c){this.a=b;this.c=a;this.b=(Qb(c),new Tkb(c))} +function aOb(a,b){this.a=a;this.c=R6c(this.a);this.b=new K6c(b)} +function IAb(a){var b;Uzb(a);b=new Tqb;return JAb(a,new jBb(b))} +function wCb(a,b){if(a<0||a>b){throw vbb(new qcb(Ake+a+Bke+b))}} +function Ppb(a,b){return vqb(a.a,b)?Qpb(a,BD(b,22).g,null):null} +function WUb(a){LUb();return Bcb(),BD(a.a,81).d.e!=0?true:false} +function qs(){qs=ccb;ps=as((hs(),OC(GC(yG,1),Kie,538,0,[gs])))} +function SBc(){SBc=ccb;RBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function ZBc(){ZBc=ccb;YBc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function oCc(){oCc=ccb;nCc=c3c(new j3c,(qUb(),pUb),(S8b(),J8b))} +function aJc(){aJc=ccb;_Ic=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function FJc(){FJc=ccb;EJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function ILc(){ILc=ccb;HLc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function wMc(){wMc=ccb;vMc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b))} +function fUc(){fUc=ccb;eUc=c3c(new j3c,(yRc(),xRc),(qSc(),kSc))} +function DOc(a,b,c,d){this.c=a;this.d=d;BOc(this,b);COc(this,c)} +function W3c(a){this.c=new Psb;this.b=a.b;this.d=a.c;this.a=a.a} +function e7c(a){this.a=$wnd.Math.cos(a);this.b=$wnd.Math.sin(a)} +function BOc(a,b){!!a.a&&Lkb(a.a.k,a);a.a=b;!!a.a&&Ekb(a.a.k,a)} +function COc(a,b){!!a.b&&Lkb(a.b.f,a);a.b=b;!!a.b&&Ekb(a.b.f,a)} +function D1c(a,b){E1c(a,a.b,a.c);BD(a.b.b,65);!!b&&BD(b.b,65).b} +function BUd(a,b){CUd(a,b);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2)} +function cJd(a,b){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,b)} +function lKd(a,b){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,b)} +function T2d(a,b){return Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)} +function jsd(a,b){var c,d;c=b.c;d=c!=null;d&&Qpd(a,new yC(b.c))} +function XOd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function eTd(a){var b,c;c=(LFd(),b=new UQd,b);NQd(c,a);return c} +function yCc(a,b){var c;c=new H1b(a);b.c[b.c.length]=c;return c} +function Aw(a,b){var c;c=BD(Hv(nd(a.a),b),14);return !c?0:c.gc()} +function UAb(a){var b;Uzb(a);b=(ipb(),ipb(),gpb);return VAb(a,b)} +function nr(a){var b;while(true){b=a.Pb();if(!a.Ob()){return b}}} +function Ki(a,b){Ii.call(this,new Mqb(Cv(a)));Xj(b,mie);this.a=b} +function Jib(a,b,c){xCb(b,c,a.gc());this.c=a;this.a=b;this.b=c-b} +function Mkb(a,b,c){var d;xCb(b,c,a.c.length);d=c-b;cCb(a.c,b,d)} +function Fub(a,b){Eub(a,Tbb(xbb(Obb(b,24),nke)),Tbb(xbb(b,nke)))} +function tCb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ake+a+Bke+b))}} +function BCb(a,b){if(a<0||a>=b){throw vbb(new Xfb(Ake+a+Bke+b))}} +function Kub(a,b){this.b=(uCb(a),a);this.a=(b&Rje)==0?b|64|oie:b} +function kkb(a){Vjb(this);dCb(this.a,geb($wnd.Math.max(8,a))<<1)} +function A0b(a){return l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a]))} +function Iyb(){Fyb();return OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])} +function jHb(){gHb();return OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])} +function QHb(){NHb();return OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])} +function HIb(){EIb();return OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])} +function UXb(){RXb();return OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])} +function BTb(){yTb();return OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])} +function Bzc(){xzc();return OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])} +function Xpc(){Rpc();return OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])} +function eqc(){bqc();return OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])} +function Jqc(){Gqc();return OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])} +function Ikc(){Fkc();return OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])} +function hsc(){esc();return OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])} +function $rc(){Xrc();return OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])} +function NAc(){KAc();return OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])} +function wAc(){tAc();return OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])} +function WAc(){TAc();return OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])} +function OBc(){LBc();return OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])} +function wBc(){tBc();return OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])} +function FBc(){CBc();return OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])} +function uGc(){rGc();return OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])} +function xVc(){tVc();return OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])} +function tWc(){pWc();return OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])} +function CYc(){zYc();return OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])} +function wXc(){sXc();return OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])} +function _$c(){Y$c();return OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])} +function kbd(){hbd();return OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])} +function tad(){qad();return OC(GC(u1,1),Kie,272,0,[nad,oad,pad])} +function o3d(a,b){return p3d(a,b,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function LZc(a,b,c){var d;d=MZc(a,b,false);return d.b<=b&&d.a<=c} +function tMc(a,b,c){var d;d=new sMc;d.b=b;d.a=c;++b.b;Ekb(a.d,d)} +function fs(a,b){var c;c=(uCb(a),a).g;lCb(!!c);uCb(b);return c(b)} +function av(a,b){var c,d;d=cv(a,b);c=a.a.Zc(d);return new qv(a,c)} +function cKd(a){if(a.Db>>16!=6)return null;return BD(aid(a),235)} +function Uwd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.f)&aje} +function bxd(a){if(a.p!=2)throw vbb(new Ydb);return Tbb(a.k)&aje} +function Z1d(a){a.a==(T0d(),S0d)&&d2d(a,U0d(a.g,a.b));return a.a} +function _1d(a){a.d==(T0d(),S0d)&&f2d(a,Y0d(a.g,a.b));return a.d} +function mlb(a){sCb(a.a<a.c.c.length);a.b=a.a++;return a.c.c[a.b]} +function hEb(a,b){a.b=a.b|b.b;a.c=a.c|b.c;a.d=a.d|b.d;a.a=a.a|b.a} +function xbb(a,b){return zbb(dD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function Mbb(a,b){return zbb(jD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function Vbb(a,b){return zbb(rD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function Dub(a){return wbb(Nbb(Cbb(Cub(a,32)),32),Cbb(Cub(a,32)))} +function Mu(a){Qb(a);return JD(a,14)?new Tkb(BD(a,14)):Nu(a.Kc())} +function EWb(a,b){AWb();return a.c==b.c?Kdb(b.d,a.d):Kdb(a.c,b.c)} +function FWb(a,b){AWb();return a.c==b.c?Kdb(a.d,b.d):Kdb(a.c,b.c)} +function HWb(a,b){AWb();return a.c==b.c?Kdb(a.d,b.d):Kdb(b.c,a.c)} +function GWb(a,b){AWb();return a.c==b.c?Kdb(b.d,a.d):Kdb(b.c,a.c)} +function WGb(a,b){var c;c=Edb(ED(a.a.We((Y9c(),Q9c))));XGb(a,b,c)} +function Rgc(a,b){var c;c=BD(Ohb(a.g,b),57);Hkb(b.d,new Qhc(a,c))} +function GYb(a,b){var c,d;c=d_b(a);d=d_b(b);return c<d?-1:c>d?1:0} +function bjc(a,b){var c,d;c=ajc(b);d=c;return BD(Ohb(a.c,d),19).a} +function iSc(a,b){var c;c=a+'';while(c.length<b){c='0'+c}return c} +function WRc(a){return a.c==null||a.c.length==0?'n_'+a.g:'n_'+a.c} +function oRb(a){return a.c==null||a.c.length==0?'n_'+a.b:'n_'+a.c} +function qz(a,b){return !!a&&!!a.equals?a.equals(b):PD(a)===PD(b)} +function dkd(a,b){if(b==0){return !!a.o&&a.o.f!=0}return mid(a,b)} +function Tdd(a,b,c){var d;if(a.n&&!!b&&!!c){d=new kgd;Ekb(a.e,d)}} +function cIc(a,b,c){var d;d=a.d[b.p];a.d[b.p]=a.d[c.p];a.d[c.p]=d} +function kxd(a,b,c){this.d=a;this.j=b;this.e=c;this.o=-1;this.p=3} +function lxd(a,b,c){this.d=a;this.k=b;this.f=c;this.o=-1;this.p=5} +function zge(a,b,c){xfe.call(this,25);this.b=a;this.a=b;this.c=c} +function $fe(a){wfe();xfe.call(this,a);this.c=false;this.a=false} +function sSd(a,b,c,d,e,f){rSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function uSd(a,b,c,d,e,f){tSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function wSd(a,b,c,d,e,f){vSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function ySd(a,b,c,d,e,f){xSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function ASd(a,b,c,d,e,f){zSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function CSd(a,b,c,d,e,f){BSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function HSd(a,b,c,d,e,f){GSd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function JSd(a,b,c,d,e,f){ISd.call(this,a,b,c,d,e);f&&(this.o=-2)} +function nWd(a,b,c,d){VVd.call(this,c);this.b=a;this.c=b;this.d=d} +function x$c(a,b){this.a=new Rkb;this.d=new Rkb;this.f=a;this.c=b} +function PTb(){this.c=new bUb;this.a=new FYb;this.b=new wZb;$Yb()} +function b2c(){Y1c();this.b=new Lqb;this.a=new Lqb;this.c=new Rkb} +function j2d(a,b){this.g=a;this.d=(T0d(),S0d);this.a=S0d;this.b=b} +function O1d(a,b){this.f=a;this.a=(T0d(),R0d);this.c=R0d;this.b=b} +function h9d(a,b){!a.c&&(a.c=new u3d(a,0));f3d(a.c,(Q8d(),I8d),b)} +function $Tc(){$Tc=ccb;ZTc=new _Tc('DFS',0);YTc=new _Tc('BFS',1)} +function Cc(a,b,c){var d;d=BD(a.Zb().xc(b),14);return !!d&&d.Hc(c)} +function Gc(a,b,c){var d;d=BD(a.Zb().xc(b),14);return !!d&&d.Mc(c)} +function Ofb(a,b,c,d){a.a+=''+qfb(b==null?Xhe:fcb(b),c,d);return a} +function Xnd(a,b,c,d,e,f){Ynd(a,b,c,f);eLd(a,d);fLd(a,e);return a} +function Ysb(a){sCb(a.b.b!=a.d.a);a.c=a.b=a.b.b;--a.a;return a.c.c} +function Jgb(a){while(a.d>0&&a.a[--a.d]==0);a.a[a.d++]==0&&(a.e=0)} +function wwb(a){return !a.a?a.c:a.e.length==0?a.a.a:a.a.a+(''+a.e)} +function RSd(a){return !!a.a&&QSd(a.a.a).i!=0&&!(!!a.b&&QTd(a.b))} +function cLd(a){return !!a.u&&VKd(a.u.a).i!=0&&!(!!a.n&&FMd(a.n))} +function $i(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),16,new ij(a))} +function XA(a,b){return ueb(Cbb(a.q.getTime()),Cbb(b.q.getTime()))} +function k_b(a){return BD(Qkb(a,KC(AQ,jne,17,a.c.length,0,1)),474)} +function l_b(a){return BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193)} +function cKc(a){FJc();return !OZb(a)&&!(!OZb(a)&&a.c.i.c==a.d.i.c)} +function kDb(a,b,c){var d;d=(Qb(a),new Tkb(a));iDb(new jDb(d,b,c))} +function rXb(a,b,c){var d;d=(Qb(a),new Tkb(a));pXb(new qXb(d,b,c))} +function Nwb(a,b){var c;c=1-b;a.a[c]=Owb(a.a[c],c);return Owb(a,b)} +function YXc(a,b){var c;a.e=new QXc;c=gVc(b);Okb(c,a.c);ZXc(a,c,0)} +function o4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.a,e)} +function p4c(a,b,c,d){var e;e=new w4c;e.a=b;e.b=c;e.c=d;Dsb(a.b,e)} +function i6d(a){var b,c,d;b=new A6d;c=s6d(b,a);z6d(b);d=c;return d} +function vZd(){var a,b,c;b=(c=(a=new UQd,a),c);Ekb(rZd,b);return b} +function H2c(a){a.j.c=KC(SI,Uhe,1,0,5,1);Ae(a.c);h3c(a.a);return a} +function tgc(a){qgc();if(JD(a.g,10)){return BD(a.g,10)}return null} +function Zw(a){if(Ah(a).dc()){return false}Bh(a,new bx);return true} +function _y(b){if(!('stack' in b)){try{throw b}catch(a){}}return b} +function Pb(a,b){if(a<0||a>=b){throw vbb(new qcb(Ib(a,b)))}return a} +function Tb(a,b,c){if(a<0||b<a||b>c){throw vbb(new qcb(Kb(a,b,c)))}} +function eVb(a,b){Qqb(a.a,b);if(b.d){throw vbb(new hz(Hke))}b.d=a} +function xpb(a,b){if(b.$modCount!=a.$modCount){throw vbb(new Apb)}} +function $pb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function dib(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function msb(a,b){if(JD(b,42)){return Jd(a.a,BD(b,42))}return false} +function qAb(a,b){if(a.a<=a.b){b.ud(a.a++);return true}return false} +function Sbb(a){var b;if(Fbb(a)){b=a;return b==-0.?0:b}return oD(a)} +function tAb(a){var b;Tzb(a);b=new drb;_ub(a.a,new BAb(b));return b} +function Yzb(a){var b;Tzb(a);b=new Gpb;_ub(a.a,new mAb(b));return b} +function Bib(a,b){this.a=a;vib.call(this,a);wCb(b,a.gc());this.b=b} +function orb(a){this.e=a;this.b=this.e.a.entries();this.a=new Array} +function Oi(a){return Zj(a.e.Hd().gc()*a.c.Hd().gc(),273,new cj(a))} +function Qu(a){return new Skb((Xj(a,Mie),Oy(wbb(wbb(5,a),a/10|0))))} +function m_b(a){return BD(Qkb(a,KC(aR,lne,11,a.c.length,0,1)),1943)} +function sMb(a,b,c){return c.f.c.length>0?HMb(a.a,b,c):HMb(a.b,b,c)} +function SZb(a,b,c){!!a.d&&Lkb(a.d.e,a);a.d=b;!!a.d&&Dkb(a.d.e,c,a)} +function a5b(a,b){i5b(b,a);k5b(a.d);k5b(BD(vNb(a,(Nyc(),wxc)),207))} +function _4b(a,b){f5b(b,a);h5b(a.d);h5b(BD(vNb(a,(Nyc(),wxc)),207))} +function Ypd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.fe());return d} +function Zpd(a,b){var c,d;c=tB(a,b);d=null;!!c&&(d=c.ie());return d} +function $pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=c.ie());return d} +function _pd(a,b){var c,d;c=aC(a,b);d=null;!!c&&(d=aqd(c));return d} +function Tqd(a,b,c){var d;d=Wpd(c);ro(a.g,d,b);ro(a.i,b,c);return b} +function Ez(a,b,c){var d;d=Cz();try{return Bz(a,b,c)}finally{Fz(d)}} +function C6d(a){var b;b=a.Wg();this.a=JD(b,69)?BD(b,69).Zh():b.Kc()} +function j3c(){D2c.call(this);this.j.c=KC(SI,Uhe,1,0,5,1);this.a=-1} +function mxd(a,b,c,d){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1} +function jk(a,b,c,d){this.e=d;this.d=null;this.c=a;this.a=b;this.b=c} +function uEc(a,b,c){this.d=new HEc(this);this.e=a;this.i=b;this.f=c} +function msc(){msc=ccb;ksc=new nsc(gle,0);lsc=new nsc('TOP_LEFT',1)} +function cDc(){cDc=ccb;bDc=ix(meb(1),meb(4));aDc=ix(meb(1),meb(2))} +function z_c(){z_c=ccb;y_c=as((s_c(),OC(GC(O_,1),Kie,551,0,[r_c])))} +function q_c(){q_c=ccb;p_c=as((i_c(),OC(GC(N_,1),Kie,482,0,[h_c])))} +function Z0c(){Z0c=ccb;Y0c=as((R0c(),OC(GC(W_,1),Kie,530,0,[Q0c])))} +function hPb(){hPb=ccb;gPb=as((cPb(),OC(GC(GO,1),Kie,481,0,[bPb])))} +function yLb(){vLb();return OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])} +function qxb(){lxb();return OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])} +function UOb(){ROb();return OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])} +function UMb(){RMb();return OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])} +function sWb(){lWb();return OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])} +function kbc(){gbc();return OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])} +function Vc(a,b,c,d){return JD(c,54)?new Cg(a,b,c,d):new qg(a,b,c,d)} +function Djc(){Ajc();return OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])} +function okc(a){var b;return a.j==(Ucd(),Rcd)&&(b=pkc(a),uqb(b,zcd))} +function Mdc(a,b){var c;c=b.a;QZb(c,b.c.d);RZb(c,b.d.d);q7c(c.a,a.n)} +function Smc(a,b){return BD(Btb(QAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function Tmc(a,b){return BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113)} +function _w(a){return new Kub(rmb(BD(a.a.dd(),14).gc(),a.a.cd()),16)} +function Qq(a){if(JD(a,14)){return BD(a,14).dc()}return !a.Kc().Ob()} +function ugc(a){qgc();if(JD(a.g,145)){return BD(a.g,145)}return null} +function Ko(a){if(a.e.g!=a.b){throw vbb(new Apb)}return !!a.c&&a.d>0} +function Xsb(a){sCb(a.b!=a.d.c);a.c=a.b;a.b=a.b.a;++a.a;return a.c.c} +function Xjb(a,b){uCb(b);NC(a.a,a.c,b);a.c=a.c+1&a.a.length-1;_jb(a)} +function Wjb(a,b){uCb(b);a.b=a.b-1&a.a.length-1;NC(a.a,a.b,b);_jb(a)} +function A2c(a,b){var c;for(c=a.j.c.length;c<b;c++){Ekb(a.j,a.rg())}} +function gBc(a,b,c,d){var e;e=d[b.g][c.g];return Edb(ED(vNb(a.a,e)))} +function goc(a,b,c,d,e){this.i=a;this.a=b;this.e=c;this.j=d;this.f=e} +function DZc(a,b,c,d,e){this.a=a;this.e=b;this.f=c;this.b=d;this.g=e} +function Fz(a){a&&Mz((Kz(),Jz));--xz;if(a){if(zz!=-1){Hz(zz);zz=-1}}} +function Nzc(){Izc();return OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])} +function ERc(){yRc();return OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])} +function mXc(){iXc();return OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])} +function wdd(){tdd();return OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])} +function vbd(){rbd();return OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])} +function Dad(){Aad();return OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])} +function Ged(){Ded();return OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])} +function sgd(){pgd();return OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])} +function gvd(a){evd();return Mhb(dvd,a)?BD(Ohb(dvd,a),331).ug():null} +function cid(a,b,c){return b<0?tid(a,c):BD(c,66).Nj().Sj(a,a.yh(),b)} +function Sqd(a,b,c){var d;d=Wpd(c);ro(a.d,d,b);Rhb(a.e,b,c);return b} +function Uqd(a,b,c){var d;d=Wpd(c);ro(a.j,d,b);Rhb(a.k,b,c);return b} +function dtd(a){var b,c;b=(Fhd(),c=new Tld,c);!!a&&Rld(b,a);return b} +function wud(a){var b;b=a.ri(a.i);a.i>0&&$fb(a.g,0,b,0,a.i);return b} +function qEd(a,b){pEd();var c;c=BD(Ohb(oEd,a),55);return !c||c.wj(b)} +function Twd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.f)<<24>>24} +function axd(a){if(a.p!=1)throw vbb(new Ydb);return Tbb(a.k)<<24>>24} +function gxd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.k)<<16>>16} +function Zwd(a){if(a.p!=7)throw vbb(new Ydb);return Tbb(a.f)<<16>>16} +function sr(a){var b;b=0;while(a.Ob()){a.Pb();b=wbb(b,1)}return Oy(b)} +function nx(a,b){var c;c=new Vfb;a.xd(c);c.a+='..';b.yd(c);return c.a} +function Sgc(a,b,c){var d;d=BD(Ohb(a.g,c),57);Ekb(a.a.c,new vgd(b,d))} +function VCb(a,b,c){return Ddb(ED(Wd(irb(a.f,b))),ED(Wd(irb(a.f,c))))} +function E2d(a,b,c){return F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function L2d(a,b,c){return M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function q3d(a,b,c){return r3d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)} +function JJc(a,b){return a==(j0b(),h0b)&&b==h0b?4:a==h0b||b==h0b?8:32} +function Nd(a,b){return PD(b)===PD(a)?'(this Map)':b==null?Xhe:fcb(b)} +function kFd(a,b){return BD(b==null?Wd(irb(a.f,null)):Crb(a.g,b),281)} +function Rqd(a,b,c){var d;d=Wpd(c);Rhb(a.b,d,b);Rhb(a.c,b,c);return b} +function Bfd(a,b){var c;c=b;while(c){O6c(a,c.i,c.j);c=Xod(c)}return a} +function kt(a,b){var c;c=vmb(Nu(new wu(a,b)));ir(new wu(a,b));return c} +function R6d(a,b){Q6d();var c;c=BD(a,66).Mj();kVd(c,b);return c.Ok(b)} +function TOc(a,b,c,d,e){var f;f=OOc(e,c,d);Ekb(b,tOc(e,f));XOc(a,e,b)} +function mic(a,b,c){a.i=0;a.e=0;if(b==c){return}lic(a,b,c);kic(a,b,c)} +function dB(a,b){var c;c=a.q.getHours();a.q.setFullYear(b+nje);YA(a,c)} +function dC(d,a,b){if(b){var c=b.ee();d.a[a]=c(b)}else{delete d.a[a]}} +function vB(d,a,b){if(b){var c=b.ee();b=c(b)}else{b=undefined}d.a[a]=b} +function pCb(a){if(a<0){throw vbb(new Feb('Negative array size: '+a))}} +function VKd(a){if(!a.n){$Kd(a);a.n=new JMd(a,j5,a);_Kd(a)}return a.n} +function Fqb(a){sCb(a.a<a.c.a.length);a.b=a.a;Dqb(a);return a.c.b[a.b]} +function Yjb(a){if(a.b==a.c){return}a.a=KC(SI,Uhe,1,8,5,1);a.b=0;a.c=0} +function AQb(a){this.b=new Lqb;this.c=new Lqb;this.d=new Lqb;this.a=a} +function lge(a,b){wfe();xfe.call(this,a);this.a=b;this.c=-1;this.b=-1} +function lSd(a,b,c,d){kxd.call(this,1,c,d);jSd(this);this.c=a;this.b=b} +function mSd(a,b,c,d){lxd.call(this,1,c,d);jSd(this);this.c=a;this.b=b} +function O7d(a,b,c,d,e,f,g){nxd.call(this,b,d,e,f,g);this.c=a;this.a=c} +function LVd(a,b,c){this.e=a;this.a=SI;this.b=R5d(b);this.c=b;this.d=c} +function Lo(a){this.e=a;this.c=this.e.a;this.b=this.e.g;this.d=this.e.i} +function nYd(a){this.c=a;this.a=BD(wId(a),148);this.b=this.a.Aj().Nh()} +function Irb(a){this.d=a;this.b=this.d.a.entries();this.a=this.b.next()} +function $rb(){Lqb.call(this);Trb(this);this.d.b=this.d;this.d.a=this.d} +function mRb(a,b){_Qb.call(this);this.a=a;this.b=b;Ekb(this.a.b,this)} +function uFd(a,b){var c;return c=b!=null?Phb(a,b):Wd(irb(a.f,b)),RD(c)} +function FFd(a,b){var c;return c=b!=null?Phb(a,b):Wd(irb(a.f,b)),RD(c)} +function Fob(a,b){var c;for(c=0;c<b;++c){NC(a,c,new Rob(BD(a[c],42)))}} +function Lgb(a,b){var c;for(c=a.d-1;c>=0&&a.a[c]===b[c];c--);return c<0} +function Ucc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return c}return 0} +function Dtb(a,b){uCb(b);if(a.a!=null){return Itb(b.Kb(a.a))}return ztb} +function Gx(a){var b;if(a){return new Bsb(a)}b=new zsb;Jq(b,a);return b} +function GAb(a,b){var c;return b.b.Kb(SAb(a,b.c.Ee(),(c=new TBb(b),c)))} +function Hub(a){zub();Eub(this,Tbb(xbb(Obb(a,24),nke)),Tbb(xbb(a,nke)))} +function REb(){REb=ccb;QEb=as((MEb(),OC(GC(aN,1),Kie,428,0,[LEb,KEb])))} +function ZEb(){ZEb=ccb;YEb=as((UEb(),OC(GC(bN,1),Kie,427,0,[SEb,TEb])))} +function aSb(){aSb=ccb;_Rb=as((XRb(),OC(GC(gP,1),Kie,424,0,[VRb,WRb])))} +function D5b(){D5b=ccb;C5b=as((y5b(),OC(GC(ZR,1),Kie,511,0,[x5b,w5b])))} +function Cqc(){Cqc=ccb;Bqc=as((xqc(),OC(GC(JW,1),Kie,419,0,[vqc,wqc])))} +function erc(){erc=ccb;drc=as((_qc(),OC(GC(MW,1),Kie,479,0,[$qc,Zqc])))} +function eBc(){eBc=ccb;dBc=as((_Ac(),OC(GC(fX,1),Kie,376,0,[$Ac,ZAc])))} +function GAc(){GAc=ccb;FAc=as((BAc(),OC(GC(cX,1),Kie,421,0,[zAc,AAc])))} +function Npc(){Npc=ccb;Mpc=as((Ipc(),OC(GC(FW,1),Kie,422,0,[Gpc,Hpc])))} +function rsc(){rsc=ccb;qsc=as((msc(),OC(GC(SW,1),Kie,420,0,[ksc,lsc])))} +function MOc(){MOc=ccb;LOc=as((HOc(),OC(GC(DZ,1),Kie,520,0,[GOc,FOc])))} +function ZIc(){ZIc=ccb;YIc=as((UIc(),OC(GC(mY,1),Kie,523,0,[TIc,SIc])))} +function bMc(){bMc=ccb;aMc=as((YLc(),OC(GC(fZ,1),Kie,516,0,[XLc,WLc])))} +function jMc(){jMc=ccb;iMc=as((eMc(),OC(GC(gZ,1),Kie,515,0,[cMc,dMc])))} +function KQc(){KQc=ccb;JQc=as((FQc(),OC(GC(YZ,1),Kie,455,0,[DQc,EQc])))} +function dUc(){dUc=ccb;cUc=as(($Tc(),OC(GC(F$,1),Kie,425,0,[ZTc,YTc])))} +function XUc(){XUc=ccb;WUc=as((PUc(),OC(GC(K$,1),Kie,495,0,[NUc,OUc])))} +function XTc(){XTc=ccb;WTc=as((STc(),OC(GC(E$,1),Kie,480,0,[QTc,RTc])))} +function lWc(){lWc=ccb;kWc=as((fWc(),OC(GC(X$,1),Kie,426,0,[dWc,eWc])))} +function i1c(){i1c=ccb;h1c=as((a1c(),OC(GC(X_,1),Kie,429,0,[_0c,$0c])))} +function H_c(){H_c=ccb;G_c=as((C_c(),OC(GC(P_,1),Kie,430,0,[B_c,A_c])))} +function UIc(){UIc=ccb;TIc=new VIc('UPPER',0);SIc=new VIc('LOWER',1)} +function Lqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Oqd(a,b){var c;c=new eC;Spd(c,'x',b.a);Spd(c,'y',b.b);Qpd(a,c)} +function Jic(a,b){var c,d;d=false;do{c=Mic(a,b);d=d|c}while(c);return d} +function zHc(a,b){var c,d;c=b;d=0;while(c>0){d+=a.a[c];c-=c&-c}return d} +function Cfd(a,b){var c;c=b;while(c){O6c(a,-c.i,-c.j);c=Xod(c)}return a} +function reb(a,b){var c,d;uCb(b);for(d=a.Kc();d.Ob();){c=d.Pb();b.td(c)}} +function me(a,b){var c;c=b.cd();return new Wo(c,a.e.pc(c,BD(b.dd(),14)))} +function Gsb(a,b,c,d){var e;e=new jtb;e.c=b;e.b=c;e.a=d;d.b=c.a=e;++a.b} +function Nkb(a,b,c){var d;d=(tCb(b,a.c.length),a.c[b]);a.c[b]=c;return d} +function lFd(a,b,c){return BD(b==null?jrb(a.f,null,c):Drb(a.g,b,c),281)} +function fRb(a){return !!a.c&&!!a.d?oRb(a.c)+'->'+oRb(a.d):'e_'+FCb(a)} +function FAb(a,b){return (Uzb(a),WAb(new YAb(a,new qBb(b,a.a)))).sd(DAb)} +function tUb(){qUb();return OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])} +function _cd(){Ucd();return OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])} +function Dz(b){Az();return function(){return Ez(b,this,arguments);var a}} +function sz(){if(Date.now){return Date.now()}return (new Date).getTime()} +function OZb(a){if(!a.c||!a.d){return false}return !!a.c.i&&a.c.i==a.d.i} +function pv(a){if(!a.c.Sb()){throw vbb(new utb)}a.a=true;return a.c.Ub()} +function ko(a){a.i=0;Alb(a.b,null);Alb(a.c,null);a.a=null;a.e=null;++a.g} +function ycb(a){wcb.call(this,a==null?Xhe:fcb(a),JD(a,78)?BD(a,78):null)} +function PYb(a){MYb();yXb(this);this.a=new Psb;NYb(this,a);Dsb(this.a,a)} +function jYb(){Ckb(this);this.b=new f7c(Pje,Pje);this.a=new f7c(Qje,Qje)} +function rAb(a,b){this.c=0;this.b=b;jvb.call(this,a,17493);this.a=this.c} +function wyb(a){oyb();if(lyb){return}this.c=a;this.e=true;this.a=new Rkb} +function oyb(){oyb=ccb;lyb=true;jyb=false;kyb=false;nyb=false;myb=false} +function C3c(a,b){if(JD(b,149)){return dfb(a.c,BD(b,149).c)}return false} +function zUc(a,b){var c;c=0;!!a&&(c+=a.f.a/2);!!b&&(c+=b.f.a/2);return c} +function j4c(a,b){var c;c=BD(Wrb(a.d,b),23);return c?c:BD(Wrb(a.e,b),23)} +function Lzd(a){this.b=a;Fyd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function Uzd(a){this.b=a;$yd.call(this,a);this.a=BD(Ajd(this.b.a,4),126)} +function $Kd(a){if(!a.t){a.t=new YMd(a);vtd(new c0d(a),0,a.t)}return a.t} +function kad(){ead();return OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])} +function Wbd(){Tbd();return OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])} +function Q5c(){N5c();return OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])} +function Q_c(){N_c();return OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])} +function _zc(){Vzc();return OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])} +function sqc(){mqc();return OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])} +function n$c(){k$c();return OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])} +function _jc(){Xjc();return OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])} +function Ftc(){Ctc();return OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])} +function T0d(){T0d=ccb;var a,b;R0d=(LFd(),b=new MPd,b);S0d=(a=new OJd,a)} +function yUd(a){var b;if(!a.c){b=a.r;JD(b,88)&&(a.c=BD(b,26))}return a.c} +function zc(a){a.e=3;a.d=a.Yb();if(a.e!=2){a.e=0;return true}return false} +function RC(a){var b,c,d;b=a&Eje;c=a>>22&Eje;d=a<0?Fje:0;return TC(b,c,d)} +function uy(a){var b,c,d,e;for(c=a,d=0,e=c.length;d<e;++d){b=c[d];Qzb(b)}} +function Tc(a,b){var c,d;c=BD(Iv(a.c,b),14);if(c){d=c.gc();c.$b();a.d-=d}} +function tjb(a,b){var c,d;c=b.cd();d=Awb(a,c);return !!d&&wtb(d.e,b.dd())} +function Qgb(a,b){if(b==0||a.e==0){return a}return b>0?ihb(a,b):lhb(a,-b)} +function Rgb(a,b){if(b==0||a.e==0){return a}return b>0?lhb(a,b):ihb(a,-b)} +function Rr(a){if(Qr(a)){a.c=a.a;return a.a.Pb()}else{throw vbb(new utb)}} +function Yac(a){var b,c;b=a.c.i;c=a.d.i;return b.k==(j0b(),e0b)&&c.k==e0b} +function kZb(a){var b;b=new UZb;tNb(b,a);yNb(b,(Nyc(),jxc),null);return b} +function hid(a,b,c){var d;return d=a.Yg(b),d>=0?a._g(d,c,true):sid(a,b,c)} +function uHb(a,b,c,d){var e;for(e=0;e<rHb;e++){nHb(a.a[b.g][e],c,d[b.g])}} +function vHb(a,b,c,d){var e;for(e=0;e<sHb;e++){mHb(a.a[e][b.g],c,d[b.g])}} +function vSd(a,b,c,d,e){kxd.call(this,b,d,e);jSd(this);this.c=a;this.a=c} +function zSd(a,b,c,d,e){lxd.call(this,b,d,e);jSd(this);this.c=a;this.a=c} +function ISd(a,b,c,d,e){oxd.call(this,b,d,e);jSd(this);this.c=a;this.a=c} +function qSd(a,b,c,d,e){oxd.call(this,b,d,e);jSd(this);this.c=a;this.b=c} +function mWd(a,b,c){VVd.call(this,c);this.b=a;this.c=b;this.d=(CWd(),AWd)} +function oxd(a,b,c){this.d=a;this.k=b?1:0;this.f=c?1:0;this.o=-1;this.p=0} +function _6d(a,b,c){var d;d=new a7d(a.a);Ld(d,a.a.a);jrb(d.f,b,c);a.a.a=d} +function lud(a,b){a.qi(a.i+1);mud(a,a.i,a.oi(a.i,b));a.bi(a.i++,b);a.ci()} +function oud(a){var b,c;++a.j;b=a.g;c=a.i;a.g=null;a.i=0;a.di(c,b);a.ci()} +function Ou(a){var b,c;Qb(a);b=Iu(a.length);c=new Skb(b);nmb(c,a);return c} +function km(a){var b;b=(Qb(a),a?new Tkb(a):Nu(a.Kc()));smb(b);return Dm(b)} +function Kkb(a,b){var c;c=(tCb(b,a.c.length),a.c[b]);cCb(a.c,b,1);return c} +function Qc(a,b){var c;c=BD(a.c.xc(b),14);!c&&(c=a.ic(b));return a.pc(b,c)} +function cfb(a,b){var c,d;c=(uCb(a),a);d=(uCb(b),b);return c==d?0:c<d?-1:1} +function Fpb(a){var b;b=a.e+a.f;if(isNaN(b)&&Ldb(a.d)){return a.d}return b} +function uwb(a,b){!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Nfb(a.a,b);return a} +function Sb(a,b){if(a<0||a>b){throw vbb(new qcb(Jb(a,b,'index')))}return a} +function zhb(a,b,c,d){var e;e=KC(WD,oje,25,b,15,1);Ahb(e,a,b,c,d);return e} +function _A(a,b){var c;c=a.q.getHours()+(b/60|0);a.q.setMinutes(b);YA(a,c)} +function A$c(a,b){return $wnd.Math.min(S6c(b.a,a.d.d.c),S6c(b.b,a.d.d.c))} +function Thb(a,b){return ND(b)?b==null?krb(a.f,null):Erb(a.g,b):krb(a.f,b)} +function b1b(a){this.c=a;this.a=new olb(this.c.a);this.b=new olb(this.c.b)} +function kRb(){this.e=new Rkb;this.c=new Rkb;this.d=new Rkb;this.b=new Rkb} +function MFb(){this.g=new PFb;this.b=new PFb;this.a=new Rkb;this.k=new Rkb} +function Gjc(a,b,c){this.a=a;this.c=b;this.d=c;Ekb(b.e,this);Ekb(c.b,this)} +function wBb(a,b){fvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function CBb(a,b){jvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function IBb(a,b){nvb.call(this,b.rd(),b.qd()&-6);uCb(a);this.a=a;this.b=b} +function BQc(a,b,c){this.a=a;this.b=b;this.c=c;Ekb(a.t,this);Ekb(b.i,this)} +function SRc(){this.b=new Psb;this.a=new Psb;this.b=new Psb;this.a=new Psb} +function g6c(){g6c=ccb;f6c=new Lsd('org.eclipse.elk.labels.labelManager')} +function Vac(){Vac=ccb;Uac=new Msd('separateLayerConnections',(gbc(),fbc))} +function HOc(){HOc=ccb;GOc=new IOc('REGULAR',0);FOc=new IOc('CRITICAL',1)} +function _Ac(){_Ac=ccb;$Ac=new aBc('STACKED',0);ZAc=new aBc('SEQUENCED',1)} +function C_c(){C_c=ccb;B_c=new D_c('FIXED',0);A_c=new D_c('CENTER_NODE',1)} +function PHc(a,b){var c;c=VHc(a,b);a.b=new BHc(c.c.length);return OHc(a,c)} +function KAd(a,b,c){var d;++a.e;--a.f;d=BD(a.d[b].$c(c),133);return d.dd()} +function JJd(a){var b;if(!a.a){b=a.r;JD(b,148)&&(a.a=BD(b,148))}return a.a} +function poc(a){if(a.a){if(a.e){return poc(a.e)}}else{return a}return null} +function ODc(a,b){if(a.p<b.p){return 1}else if(a.p>b.p){return -1}return 0} +function pvb(a,b){uCb(b);if(a.c<a.d){a.ze(b,a.c++);return true}return false} +function QYd(a,b){if(Mhb(a.a,b)){Thb(a.a,b);return true}else{return false}} +function fd(a){var b,c;b=a.cd();c=BD(a.dd(),14);return $j(c.Nc(),new ah(b))} +function sqb(a){var b;b=BD(ZBb(a.b,a.b.length),9);return new xqb(a.a,b,a.c)} +function _zb(a){var b;Uzb(a);b=new fAb(a,a.a.e,a.a.d|4);return new bAb(a,b)} +function HAb(a){var b;Tzb(a);b=0;while(a.a.sd(new RBb)){b=wbb(b,1)}return b} +function UDc(a,b,c){var d,e;d=0;for(e=0;e<b.length;e++){d+=a.$f(b[e],d,c)}} +function QJb(a,b){var c;if(a.C){c=BD(Mpb(a.b,b),124).n;c.d=a.C.d;c.a=a.C.a}} +function Mi(a,b,c){Pb(b,a.e.Hd().gc());Pb(c,a.c.Hd().gc());return a.a[b][c]} +function Ugb(a,b){Hgb();this.e=a;this.d=1;this.a=OC(GC(WD,1),oje,25,15,[b])} +function dg(a,b,c,d){this.f=a;this.e=b;this.d=c;this.b=d;this.c=!d?null:d.d} +function o5b(a){var b,c,d,e;e=a.d;b=a.a;c=a.b;d=a.c;a.d=c;a.a=d;a.b=e;a.c=b} +function Y2d(a,b,c,d){X2d(a,b,c,M2d(a,b,d,JD(b,99)&&(BD(b,18).Bb&Tje)!=0))} +function tac(a,b){Odd(b,'Label management',1);RD(vNb(a,(g6c(),f6c)));Qdd(b)} +function Skb(a){Ckb(this);mCb(a>=0,'Initial capacity must not be negative')} +function lHb(){lHb=ccb;kHb=as((gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])))} +function SHb(){SHb=ccb;RHb=as((NHb(),OC(GC(sN,1),Kie,461,0,[LHb,KHb,MHb])))} +function JIb(){JIb=ccb;IIb=as((EIb(),OC(GC(zN,1),Kie,462,0,[DIb,CIb,BIb])))} +function Kyb(){Kyb=ccb;Jyb=as((Fyb(),OC(GC(xL,1),Kie,132,0,[Cyb,Dyb,Eyb])))} +function DTb(){DTb=ccb;CTb=as((yTb(),OC(GC(oP,1),Kie,379,0,[wTb,vTb,xTb])))} +function WXb(){WXb=ccb;VXb=as((RXb(),OC(GC(hQ,1),Kie,423,0,[QXb,PXb,OXb])))} +function Zpc(){Zpc=ccb;Ypc=as((Rpc(),OC(GC(GW,1),Kie,314,0,[Ppc,Opc,Qpc])))} +function gqc(){gqc=ccb;fqc=as((bqc(),OC(GC(HW,1),Kie,337,0,[$pc,aqc,_pc])))} +function Lqc(){Lqc=ccb;Kqc=as((Gqc(),OC(GC(KW,1),Kie,450,0,[Eqc,Dqc,Fqc])))} +function Kkc(){Kkc=ccb;Jkc=as((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc])))} +function jsc(){jsc=ccb;isc=as((esc(),OC(GC(RW,1),Kie,303,0,[csc,dsc,bsc])))} +function asc(){asc=ccb;_rc=as((Xrc(),OC(GC(QW,1),Kie,292,0,[Vrc,Wrc,Urc])))} +function Dzc(){Dzc=ccb;Czc=as((xzc(),OC(GC(ZW,1),Kie,378,0,[uzc,vzc,wzc])))} +function YAc(){YAc=ccb;XAc=as((TAc(),OC(GC(eX,1),Kie,375,0,[QAc,RAc,SAc])))} +function yAc(){yAc=ccb;xAc=as((tAc(),OC(GC(bX,1),Kie,339,0,[rAc,qAc,sAc])))} +function PAc(){PAc=ccb;OAc=as((KAc(),OC(GC(dX,1),Kie,452,0,[JAc,HAc,IAc])))} +function QBc(){QBc=ccb;PBc=as((LBc(),OC(GC(jX,1),Kie,377,0,[JBc,KBc,IBc])))} +function yBc(){yBc=ccb;xBc=as((tBc(),OC(GC(hX,1),Kie,336,0,[qBc,rBc,sBc])))} +function HBc(){HBc=ccb;GBc=as((CBc(),OC(GC(iX,1),Kie,338,0,[BBc,zBc,ABc])))} +function wGc(){wGc=ccb;vGc=as((rGc(),OC(GC(PX,1),Kie,454,0,[oGc,pGc,qGc])))} +function zVc(){zVc=ccb;yVc=as((tVc(),OC(GC(O$,1),Kie,442,0,[sVc,qVc,rVc])))} +function vWc(){vWc=ccb;uWc=as((pWc(),OC(GC(Y$,1),Kie,380,0,[mWc,nWc,oWc])))} +function EYc(){EYc=ccb;DYc=as((zYc(),OC(GC(q_,1),Kie,381,0,[xYc,yYc,wYc])))} +function yXc(){yXc=ccb;xXc=as((sXc(),OC(GC(b_,1),Kie,293,0,[qXc,rXc,pXc])))} +function b_c(){b_c=ccb;a_c=as((Y$c(),OC(GC(J_,1),Kie,437,0,[V$c,W$c,X$c])))} +function mbd(){mbd=ccb;lbd=as((hbd(),OC(GC(z1,1),Kie,334,0,[fbd,ebd,gbd])))} +function vad(){vad=ccb;uad=as((qad(),OC(GC(u1,1),Kie,272,0,[nad,oad,pad])))} +function icd(){dcd();return OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])} +function ikd(a,b){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),qAd(a.o,b)} +function NAd(a){!a.g&&(a.g=new JCd);!a.g.d&&(a.g.d=new MBd(a));return a.g.d} +function yAd(a){!a.g&&(a.g=new JCd);!a.g.a&&(a.g.a=new SBd(a));return a.g.a} +function EAd(a){!a.g&&(a.g=new JCd);!a.g.b&&(a.g.b=new GBd(a));return a.g.b} +function FAd(a){!a.g&&(a.g=new JCd);!a.g.c&&(a.g.c=new iCd(a));return a.g.c} +function A2d(a,b,c){var d,e;e=new p4d(b,a);for(d=0;d<c;++d){d4d(e)}return e} +function Atd(a,b,c){var d,e;if(c!=null){for(d=0;d<b;++d){e=c[d];a.fi(d,e)}}} +function uhb(a,b,c,d){var e;e=KC(WD,oje,25,b+1,15,1);vhb(e,a,b,c,d);return e} +function KC(a,b,c,d,e,f){var g;g=LC(e,d);e!=10&&OC(GC(a,f),b,c,e,g);return g} +function bYd(a,b,c,d){!!c&&(d=c.gh(b,bLd(c.Tg(),a.c.Lj()),null,d));return d} +function cYd(a,b,c,d){!!c&&(d=c.ih(b,bLd(c.Tg(),a.c.Lj()),null,d));return d} +function KNb(a,b,c){BD(a.b,65);BD(a.b,65);BD(a.b,65);Hkb(a.a,new TNb(c,b,a))} +function ACb(a,b,c){if(a<0||b>c||b<a){throw vbb(new Xfb(xke+a+zke+b+oke+c))}} +function zCb(a){if(!a){throw vbb(new Zdb('Unable to add element to queue'))}} +function Vzb(a){if(!a){this.c=null;this.b=new Rkb}else{this.c=a;this.b=null}} +function exb(a,b){pjb.call(this,a,b);this.a=KC(dL,zie,436,2,0,1);this.b=true} +function _rb(a){Whb.call(this,a,0);Trb(this);this.d.b=this.d;this.d.a=this.d} +function VRc(a){var b;b=a.b;if(b.b==0){return null}return BD(Ut(b,0),188).b} +function Kwb(a,b){var c;c=new fxb;c.c=true;c.d=b.dd();return Lwb(a,b.cd(),c)} +function bB(a,b){var c;c=a.q.getHours()+(b/3600|0);a.q.setSeconds(b);YA(a,c)} +function zGc(a,b,c){var d;d=a.b[c.c.p][c.p];d.b+=b.b;d.c+=b.c;d.a+=b.a;++d.a} +function S6c(a,b){var c,d;c=a.a-b.a;d=a.b-b.b;return $wnd.Math.sqrt(c*c+d*d)} +function Ipc(){Ipc=ccb;Gpc=new Jpc('QUADRATIC',0);Hpc=new Jpc('SCANLINE',1)} +function hCc(){hCc=ccb;gCc=c3c(e3c(new j3c,(qUb(),lUb),(S8b(),n8b)),pUb,J8b)} +function l8c(){i8c();return OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])} +function I7c(){F7c();return OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])} +function Dpc(){Apc();return OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])} +function Brc(){yrc();return OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])} +function orc(){lrc();return OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])} +function rzc(){lzc();return OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])} +function Wqc(){Sqc();return OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])} +function uSc(){qSc();return OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])} +function wcd(){rcd();return OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])} +function Pad(){Mad();return OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])} +function m0b(){j0b();return OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])} +function mib(a){yCb(!!a.c);xpb(a.e,a);a.c.Qb();a.c=null;a.b=kib(a);ypb(a.e,a)} +function tsb(a){xpb(a.c.a.e,a);sCb(a.b!=a.c.a.d);a.a=a.b;a.b=a.b.a;return a.a} +function kSd(a){var b;if(!a.a&&a.b!=-1){b=a.c.Tg();a.a=XKd(b,a.b)}return a.a} +function wtd(a,b){if(a.hi()&&a.Hc(b)){return false}else{a.Yh(b);return true}} +function $Hb(a,b){ytb(b,'Horizontal alignment cannot be null');a.b=b;return a} +function Lfe(a,b,c){wfe();var d;d=Kfe(a,b);c&&!!d&&Nfe(a)&&(d=null);return d} +function vXb(a,b,c){var d,e;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);uXb(d,b,c)}} +function tXb(a,b){var c,d;for(d=b.Kc();d.Ob();){c=BD(d.Pb(),37);sXb(a,c,0,0)}} +function ojc(a,b,c){var d;a.d[b.g]=c;d=a.g.c;d[b.g]=$wnd.Math.max(d[b.g],c+1)} +function KZc(a,b){var c,d,e;e=a.r;d=a.d;c=MZc(a,b,true);return c.b!=e||c.a!=d} +function Jjc(a,b){Vrb(a.e,b)||Xrb(a.e,b,new Pjc(b));return BD(Wrb(a.e,b),113)} +function Byb(a,b,c,d){uCb(a);uCb(b);uCb(c);uCb(d);return new Lyb(a,b,new Vxb)} +function dId(a,b,c,d){this.rj();this.a=b;this.b=a;this.c=new Y5d(this,b,c,d)} +function oSd(a,b,c,d,e,f){mxd.call(this,b,d,e,f);jSd(this);this.c=a;this.b=c} +function ESd(a,b,c,d,e,f){mxd.call(this,b,d,e,f);jSd(this);this.c=a;this.a=c} +function Bqd(a,b,c){var d,e,f;d=aC(a,c);e=null;!!d&&(e=aqd(d));f=e;Vqd(b,c,f)} +function Cqd(a,b,c){var d,e,f;d=aC(a,c);e=null;!!d&&(e=aqd(d));f=e;Vqd(b,c,f)} +function v1d(a,b,c){var d,e;e=(d=nUd(a.b,b),d);return !e?null:V1d(p1d(a,e),c)} +function gid(a,b){var c;return c=a.Yg(b),c>=0?a._g(c,true,true):sid(a,b,true)} +function s6b(a,b){return Kdb(Edb(ED(vNb(a,(wtc(),htc)))),Edb(ED(vNb(b,htc))))} +function pUc(){pUc=ccb;oUc=b3c(b3c(g3c(new j3c,(yRc(),vRc)),(qSc(),pSc)),lSc)} +function IHc(a,b,c){var d;d=SHc(a,b,c);a.b=new BHc(d.c.length);return KHc(a,d)} +function qhe(a){if(a.b<=0)throw vbb(new utb);--a.b;a.a-=a.c.c;return meb(a.a)} +function ptd(a){var b;if(!a.a){throw vbb(new vtb)}b=a.a;a.a=Xod(a.a);return b} +function dBb(a){while(!a.a){if(!HBb(a.c,new hBb(a))){return false}}return true} +function vr(a){var b;Qb(a);if(JD(a,198)){b=BD(a,198);return b}return new wr(a)} +function r3c(a){p3c();BD(a.We((Y9c(),x9c)),174).Fc((rcd(),ocd));a.Ye(w9c,null)} +function p3c(){p3c=ccb;m3c=new v3c;o3c=new x3c;n3c=mn((Y9c(),w9c),m3c,b9c,o3c)} +function fWc(){fWc=ccb;dWc=new hWc('LEAF_NUMBER',0);eWc=new hWc('NODE_SIZE',1)} +function UMc(a,b,c){a.a=b;a.c=c;a.b.a.$b();Osb(a.d);a.e.a.c=KC(SI,Uhe,1,0,5,1)} +function yHc(a){a.a=KC(WD,oje,25,a.b+1,15,1);a.c=KC(WD,oje,25,a.b,15,1);a.d=0} +function MWb(a,b){if(a.a.ue(b.d,a.b)>0){Ekb(a.c,new dWb(b.c,b.d,a.d));a.b=b.d}} +function nud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.g[b]} +function pOd(a,b,c){Itd(a,c);if(c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function KLd(a){var b;if(a.Ek()){for(b=a.i-1;b>=0;--b){qud(a,b)}}return wud(a)} +function Bwb(a){var b,c;if(!a.b){return null}c=a.b;while(b=c.a[0]){c=b}return c} +function ulb(a,b){var c,d;pCb(b);return c=(d=a.slice(0,b),PC(d,a)),c.length=b,c} +function Klb(a,b,c,d){var e;d=(ipb(),!d?fpb:d);e=a.slice(b,c);Llb(e,a,b,c,-b,d)} +function bid(a,b,c,d,e){return b<0?sid(a,c,d):BD(c,66).Nj().Pj(a,a.yh(),b,d,e)} +function hZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function iZd(a){if(JD(a,172)){return ''+BD(a,172).a}return a==null?null:fcb(a)} +function nDb(a,b){if(b.a){throw vbb(new hz(Hke))}Qqb(a.a,b);b.a=a;!a.j&&(a.j=b)} +function qBb(a,b){nvb.call(this,b.rd(),b.qd()&-16449);uCb(a);this.a=a;this.c=b} +function Ti(a,b){var c,d;d=b/a.c.Hd().gc()|0;c=b%a.c.Hd().gc();return Mi(a,d,c)} +function NHb(){NHb=ccb;LHb=new OHb(jle,0);KHb=new OHb(gle,1);MHb=new OHb(kle,2)} +function lxb(){lxb=ccb;hxb=new mxb('All',0);ixb=new rxb;jxb=new txb;kxb=new wxb} +function zxb(){zxb=ccb;yxb=as((lxb(),OC(GC(iL,1),Kie,297,0,[hxb,ixb,jxb,kxb])))} +function uWb(){uWb=ccb;tWb=as((lWb(),OC(GC(SP,1),Kie,405,0,[hWb,kWb,iWb,jWb])))} +function ALb(){ALb=ccb;zLb=as((vLb(),OC(GC(PN,1),Kie,406,0,[uLb,rLb,sLb,tLb])))} +function WMb(){WMb=ccb;VMb=as((RMb(),OC(GC(jO,1),Kie,323,0,[OMb,NMb,PMb,QMb])))} +function WOb(){WOb=ccb;VOb=as((ROb(),OC(GC(CO,1),Kie,394,0,[OOb,NOb,POb,QOb])))} +function GRc(){GRc=ccb;FRc=as((yRc(),OC(GC(h$,1),Kie,393,0,[uRc,vRc,wRc,xRc])))} +function mbc(){mbc=ccb;lbc=as((gbc(),OC(GC(VS,1),Kie,360,0,[fbc,dbc,ebc,cbc])))} +function oXc(){oXc=ccb;nXc=as((iXc(),OC(GC(a_,1),Kie,340,0,[hXc,fXc,gXc,eXc])))} +function Fjc(){Fjc=ccb;Ejc=as((Ajc(),OC(GC(mV,1),Kie,411,0,[wjc,xjc,yjc,zjc])))} +function Pzc(){Pzc=ccb;Ozc=as((Izc(),OC(GC($W,1),Kie,197,0,[Gzc,Hzc,Fzc,Ezc])))} +function ugd(){ugd=ccb;tgd=as((pgd(),OC(GC(k2,1),Kie,396,0,[mgd,ngd,lgd,ogd])))} +function xbd(){xbd=ccb;wbd=as((rbd(),OC(GC(A1,1),Kie,285,0,[qbd,nbd,obd,pbd])))} +function Fad(){Fad=ccb;Ead=as((Aad(),OC(GC(v1,1),Kie,218,0,[zad,xad,wad,yad])))} +function Ied(){Ied=ccb;Hed=as((Ded(),OC(GC(O1,1),Kie,311,0,[Ced,zed,Bed,Aed])))} +function ydd(){ydd=ccb;xdd=as((tdd(),OC(GC(I1,1),Kie,374,0,[rdd,sdd,qdd,pdd])))} +function A9d(){A9d=ccb;Smd();x9d=Pje;w9d=Qje;z9d=new Ndb(Pje);y9d=new Ndb(Qje)} +function _qc(){_qc=ccb;$qc=new arc(ane,0);Zqc=new arc('IMPROVE_STRAIGHTNESS',1)} +function eIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function gIc(a,b){FHc();return Ekb(a,new vgd(b,meb(b.e.c.length+b.g.c.length)))} +function PC(a,b){HC(b)!=10&&OC(rb(b),b.hm,b.__elementTypeId$,HC(b),a);return a} +function Lkb(a,b){var c;c=Jkb(a,b,0);if(c==-1){return false}Kkb(a,c);return true} +function Zrb(a,b){var c;c=BD(Thb(a.e,b),387);if(c){jsb(c);return c.e}return null} +function Jbb(a){var b;if(Fbb(a)){b=0-a;if(!isNaN(b)){return b}}return zbb(hD(a))} +function Jkb(a,b,c){for(;c<a.c.length;++c){if(wtb(b,a.c[c])){return c}}return -1} +function SAb(a,b,c){var d;Tzb(a);d=new NBb;d.a=b;a.a.Nb(new VBb(d,c));return d.a} +function aAb(a){var b;Tzb(a);b=KC(UD,Vje,25,0,15,1);_ub(a.a,new kAb(b));return b} +function ajc(a){var b,c;c=BD(Ikb(a.j,0),11);b=BD(vNb(c,(wtc(),$sc)),11);return b} +function yc(a){var b;if(!xc(a)){throw vbb(new utb)}a.e=1;b=a.d;a.d=null;return b} +function wu(a,b){var c;this.f=a;this.b=b;c=BD(Ohb(a.b,b),283);this.c=!c?null:c.b} +function Ygc(){Hgc();this.b=new Lqb;this.f=new Lqb;this.g=new Lqb;this.e=new Lqb} +function Tnc(a,b){this.a=KC(OQ,kne,10,a.a.c.length,0,1);Qkb(a.a,this.a);this.b=b} +function zoc(a){var b;for(b=a.p+1;b<a.c.a.c.length;++b){--BD(Ikb(a.c.a,b),10).p}} +function Rwd(a){var b;b=a.Ai();b!=null&&a.d!=-1&&BD(b,92).Ng(a);!!a.i&&a.i.Fi()} +function rFd(a){Py(this);this.g=!a?null:Wy(a,a.$d());this.f=a;Ry(this);this._d()} +function pSd(a,b,c,d,e,f,g){nxd.call(this,b,d,e,f,g);jSd(this);this.c=a;this.b=c} +function Ayb(a,b,c,d,e){uCb(a);uCb(b);uCb(c);uCb(d);uCb(e);return new Lyb(a,b,d)} +function B2c(a,b){if(b<0){throw vbb(new qcb(ese+b))}A2c(a,b+1);return Ikb(a.j,b)} +function Ob(a,b,c,d){if(!a){throw vbb(new Wdb(hc(b,OC(GC(SI,1),Uhe,1,5,[c,d]))))}} +function dDb(a,b){return wtb(b,Ikb(a.f,0))||wtb(b,Ikb(a.f,1))||wtb(b,Ikb(a.f,2))} +function ghd(a,b){ecd(BD(BD(a.f,33).We((Y9c(),t9c)),98))&&NCd(Yod(BD(a.f,33)),b)} +function p1d(a,b){var c,d;c=BD(b,675);d=c.Oh();!d&&c.Rh(d=new Y1d(a,b));return d} +function q1d(a,b){var c,d;c=BD(b,677);d=c.pk();!d&&c.tk(d=new j2d(a,b));return d} +function QSd(a){if(!a.b){a.b=new UTd(a,j5,a);!a.a&&(a.a=new fTd(a,a))}return a.b} +function yTb(){yTb=ccb;wTb=new zTb('XY',0);vTb=new zTb('X',1);xTb=new zTb('Y',2)} +function EIb(){EIb=ccb;DIb=new FIb('TOP',0);CIb=new FIb(gle,1);BIb=new FIb(mle,2)} +function esc(){esc=ccb;csc=new fsc(ane,0);dsc=new fsc('TOP',1);bsc=new fsc(mle,2)} +function BAc(){BAc=ccb;zAc=new CAc('INPUT_ORDER',0);AAc=new CAc('PORT_DEGREE',1)} +function wD(){wD=ccb;sD=TC(Eje,Eje,524287);tD=TC(0,0,Gje);uD=RC(1);RC(2);vD=RC(0)} +function WDc(a,b,c){a.a.c=KC(SI,Uhe,1,0,5,1);$Dc(a,b,c);a.a.c.length==0||TDc(a,b)} +function rfb(a){var b,c;c=a.length;b=KC(TD,$ie,25,c,15,1);ffb(a,0,c,b,0);return b} +function Aid(a){var b;if(!a.dh()){b=aLd(a.Tg())-a.Ah();a.ph().bk(b)}return a.Pg()} +function xjd(a){var b;b=CD(Ajd(a,32));if(b==null){yjd(a);b=CD(Ajd(a,32))}return b} +function iid(a,b){var c;c=bLd(a.d,b);return c>=0?fid(a,c,true,true):sid(a,b,true)} +function vgc(a,b){qgc();var c,d;c=ugc(a);d=ugc(b);return !!c&&!!d&&!omb(c.k,d.k)} +function Gqd(a,b){dld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Hqd(a,b){eld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Iqd(a,b){cld(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function Jqd(a,b){ald(a,b==null||Ldb((uCb(b),b))||isNaN((uCb(b),b))?0:(uCb(b),b))} +function agd(a){(!this.q?(mmb(),mmb(),kmb):this.q).Ac(!a.q?(mmb(),mmb(),kmb):a.q)} +function S2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function U2d(a,b){return JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a)} +function INb(a,b){HNb=new tOb;FNb=b;GNb=a;BD(GNb.b,65);KNb(GNb,HNb,null);JNb(GNb)} +function uud(a,b,c){var d;d=a.g[b];mud(a,b,a.oi(b,c));a.gi(b,c,d);a.ci();return d} +function Ftd(a,b){var c;c=a.Xc(b);if(c>=0){a.$c(c);return true}else{return false}} +function YId(a){var b;if(a.d!=a.r){b=wId(a);a.e=!!b&&b.Cj()==Bve;a.d=b}return a.e} +function fr(a,b){var c;Qb(a);Qb(b);c=false;while(b.Ob()){c=c|a.Fc(b.Pb())}return c} +function Wrb(a,b){var c;c=BD(Ohb(a.e,b),387);if(c){Yrb(a,c);return c.e}return null} +function UA(a){var b,c;b=a/60|0;c=a%60;if(c==0){return ''+b}return ''+b+':'+(''+c)} +function LAb(a,b){var c,d;Uzb(a);d=new IBb(b,a.a);c=new fBb(d);return new YAb(a,c)} +function tB(d,a){var b=d.a[a];var c=(rC(),qC)[typeof b];return c?c(b):xC(typeof b)} +function yzc(a){switch(a.g){case 0:return Ohe;case 1:return -1;default:return 0;}} +function oD(a){if(eD(a,(wD(),vD))<0){return -aD(hD(a))}return a.l+a.m*Hje+a.h*Ije} +function HC(a){return a.__elementTypeCategory$==null?10:a.__elementTypeCategory$} +function dub(a){var b;b=a.b.c.length==0?null:Ikb(a.b,0);b!=null&&fub(a,0);return b} +function uA(a,b){while(b[0]<a.length&&hfb(' \t\r\n',wfb(bfb(a,b[0])))>=0){++b[0]}} +function sgb(a,b){this.e=b;this.a=vgb(a);this.a<54?(this.f=Sbb(a)):(this.c=ghb(a))} +function vge(a,b,c,d){wfe();xfe.call(this,26);this.c=a;this.a=b;this.d=c;this.b=d} +function EA(a,b,c){var d,e;d=10;for(e=0;e<c-1;e++){b<d&&(a.a+='0',a);d*=10}a.a+=b} +function Hhe(a,b){var c;c=0;while(a.e!=a.i.gc()){Qrd(b,Dyd(a),meb(c));c!=Ohe&&++c}} +function xHc(a,b){var c;++a.d;++a.c[b];c=b+1;while(c<a.a.length){++a.a[c];c+=c&-c}} +function Qgc(a,b){var c,d,e;e=b.c.i;c=BD(Ohb(a.f,e),57);d=c.d.c-c.e.c;p7c(b.a,d,0)} +function Scb(a){var b,c;b=a+128;c=(Ucb(),Tcb)[b];!c&&(c=Tcb[b]=new Mcb(a));return c} +function es(a,b){var c;uCb(b);c=a[':'+b];nCb(!!c,OC(GC(SI,1),Uhe,1,5,[b]));return c} +function Mz(a){var b,c;if(a.b){c=null;do{b=a.b;a.b=null;c=Pz(b,c)}while(a.b);a.b=c}} +function Lz(a){var b,c;if(a.a){c=null;do{b=a.a;a.a=null;c=Pz(b,c)}while(a.a);a.a=c}} +function Dqb(a){var b;++a.a;for(b=a.c.a.length;a.a<b;++a.a){if(a.c.b[a.a]){return}}} +function S9b(a,b){var c,d;d=b.c;for(c=d+1;c<=b.f;c++){a.a[c]>a.a[d]&&(d=c)}return d} +function fic(a,b){var c;c=Jy(a.e.c,b.e.c);if(c==0){return Kdb(a.e.d,b.e.d)}return c} +function Ogb(a,b){if(b.e==0){return Ggb}if(a.e==0){return Ggb}return Dhb(),Ehb(a,b)} +function nCb(a,b){if(!a){throw vbb(new Wdb(DCb('Enum constant undefined: %s',b)))}} +function AWb(){AWb=ccb;xWb=new XWb;yWb=new _Wb;vWb=new dXb;wWb=new hXb;zWb=new lXb} +function UEb(){UEb=ccb;SEb=new VEb('BY_SIZE',0);TEb=new VEb('BY_SIZE_AND_SHAPE',1)} +function XRb(){XRb=ccb;VRb=new YRb('EADES',0);WRb=new YRb('FRUCHTERMAN_REINGOLD',1)} +function xqc(){xqc=ccb;vqc=new yqc('READING_DIRECTION',0);wqc=new yqc('ROTATION',1)} +function uqc(){uqc=ccb;tqc=as((mqc(),OC(GC(IW,1),Kie,335,0,[iqc,hqc,kqc,lqc,jqc])))} +function bAc(){bAc=ccb;aAc=as((Vzc(),OC(GC(_W,1),Kie,315,0,[Uzc,Rzc,Szc,Qzc,Tzc])))} +function bkc(){bkc=ccb;akc=as((Xjc(),OC(GC(uV,1),Kie,363,0,[Tjc,Vjc,Wjc,Ujc,Sjc])))} +function Htc(){Htc=ccb;Gtc=as((Ctc(),OC(GC(TW,1),Kie,163,0,[Btc,xtc,ytc,ztc,Atc])))} +function S_c(){S_c=ccb;R_c=as((N_c(),OC(GC(Q_,1),Kie,316,0,[I_c,J_c,M_c,K_c,L_c])))} +function S5c(){S5c=ccb;R5c=as((N5c(),OC(GC(e1,1),Kie,175,0,[L5c,K5c,I5c,M5c,J5c])))} +function p$c(){p$c=ccb;o$c=as((k$c(),OC(GC(y_,1),Kie,355,0,[g$c,f$c,i$c,h$c,j$c])))} +function vUb(){vUb=ccb;uUb=as((qUb(),OC(GC(zP,1),Kie,356,0,[lUb,mUb,nUb,oUb,pUb])))} +function mad(){mad=ccb;lad=as((ead(),OC(GC(t1,1),Kie,103,0,[cad,bad,aad,_9c,dad])))} +function Ybd(){Ybd=ccb;Xbd=as((Tbd(),OC(GC(C1,1),Kie,249,0,[Qbd,Sbd,Obd,Pbd,Rbd])))} +function cdd(){cdd=ccb;bdd=as((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])))} +function _1c(a,b){var c;c=BD(Ohb(a.a,b),134);if(!c){c=new zNb;Rhb(a.a,b,c)}return c} +function hoc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.a==a}return false} +function ioc(a){var b;b=BD(vNb(a,(wtc(),usc)),305);if(b){return b.i==a}return false} +function Jub(a,b){uCb(b);Iub(a);if(a.d.Ob()){b.td(a.d.Pb());return true}return false} +function Oy(a){if(ybb(a,Ohe)>0){return Ohe}if(ybb(a,Rie)<0){return Rie}return Tbb(a)} +function Cv(a){if(a<3){Xj(a,Hie);return a+1}if(a<Iie){return QD(a/0.75+1)}return Ohe} +function XKd(a,b){var c;c=(a.i==null&&TKd(a),a.i);return b>=0&&b<c.length?c[b]:null} +function cC(a,b,c){var d;if(b==null){throw vbb(new Geb)}d=aC(a,b);dC(a,b,c);return d} +function Emc(a){a.a>=-0.01&&a.a<=ple&&(a.a=0);a.b>=-0.01&&a.b<=ple&&(a.b=0);return a} +function sfb(a,b){return b==(ntb(),ntb(),mtb)?a.toLocaleLowerCase():a.toLowerCase()} +function idb(a){return ((a.i&2)!=0?'interface ':(a.i&1)!=0?'':'class ')+(fdb(a),a.o)} +function Pnd(a){var b,c;c=(b=new SSd,b);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),c)} +function Pdd(a,b){var c;c=b>0?b-1:b;return Vdd(Wdd(Xdd(Ydd(new Zdd,c),a.n),a.j),a.k)} +function u2d(a,b,c,d){var e;a.j=-1;Qxd(a,I2d(a,b,c),(Q6d(),e=BD(b,66).Mj(),e.Ok(d)))} +function VWb(a){this.g=a;this.f=new Rkb;this.a=$wnd.Math.min(this.g.c.c,this.g.d.c)} +function mDb(a){this.b=new Rkb;this.a=new Rkb;this.c=new Rkb;this.d=new Rkb;this.e=a} +function Cnc(a,b){this.a=new Lqb;this.e=new Lqb;this.b=(xzc(),wzc);this.c=a;this.b=b} +function bIb(a,b,c){$Gb.call(this);THb(this);this.a=a;this.c=c;this.b=b.d;this.f=b.e} +function yd(a){this.d=a;this.c=a.c.vc().Kc();this.b=null;this.a=null;this.e=(hs(),gs)} +function zud(a){if(a<0){throw vbb(new Wdb('Illegal Capacity: '+a))}this.g=this.ri(a)} +function avb(a,b){if(0>a||a>b){throw vbb(new scb('fromIndex: 0, toIndex: '+a+oke+b))}} +function Gs(a){var b;if(a.a==a.b.a){throw vbb(new utb)}b=a.a;a.c=b;a.a=a.a.e;return b} +function Zsb(a){var b;yCb(!!a.c);b=a.c.a;Nsb(a.d,a.c);a.b==a.c?(a.b=b):--a.a;a.c=null} +function VAb(a,b){var c;Uzb(a);c=new lBb(a,a.a.rd(),a.a.qd()|4,b);return new YAb(a,c)} +function ke(a,b){var c,d;c=BD(Hv(a.d,b),14);if(!c){return null}d=b;return a.e.pc(d,c)} +function xac(a,b){var c,d;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),70);yNb(c,(wtc(),Ssc),b)}} +function t9b(a){var b;b=Edb(ED(vNb(a,(Nyc(),Zwc))));if(b<0){b=0;yNb(a,Zwc,b)}return b} +function ifc(a,b,c){var d;d=$wnd.Math.max(0,a.b/2-0.5);cfc(c,d,1);Ekb(b,new rfc(c,d))} +function NMc(a,b,c){var d;d=a.a.e[BD(b.a,10).p]-a.a.e[BD(c.a,10).p];return QD(Eeb(d))} +function iZb(a,b,c,d,e,f){var g;g=kZb(d);QZb(g,e);RZb(g,f);Rc(a.a,d,new BZb(g,b,c.f))} +function Bid(a,b){var c;c=YKd(a.Tg(),b);if(!c){throw vbb(new Wdb(ite+b+lte))}return c} +function ntd(a,b){var c;c=a;while(Xod(c)){c=Xod(c);if(c==b){return true}}return false} +function Uw(a,b){var c,d,e;d=b.a.cd();c=BD(b.a.dd(),14).gc();for(e=0;e<c;e++){a.td(d)}} +function Hkb(a,b){var c,d,e,f;uCb(b);for(d=a.c,e=0,f=d.length;e<f;++e){c=d[e];b.td(c)}} +function Nsb(a,b){var c;c=b.c;b.a.b=b.b;b.b.a=b.a;b.a=b.b=null;b.c=null;--a.b;return c} +function wqb(a,b){if(!!b&&a.b[b.g]==b){NC(a.b,b.g,null);--a.c;return true}return false} +function lo(a,b){return !!vo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15))))} +function w$b(a,b){ecd(BD(vNb(BD(a.e,10),(Nyc(),Vxc)),98))&&(mmb(),Okb(BD(a.e,10).j,b))} +function THb(a){a.b=(NHb(),KHb);a.f=(EIb(),CIb);a.d=(Xj(2,Jie),new Skb(2));a.e=new d7c} +function gHb(){gHb=ccb;dHb=new hHb('BEGIN',0);eHb=new hHb(gle,1);fHb=new hHb('END',2)} +function qad(){qad=ccb;nad=new rad(gle,0);oad=new rad('HEAD',1);pad=new rad('TAIL',2)} +function Fsd(){Csd();return OC(GC(O3,1),Kie,237,0,[Bsd,ysd,zsd,xsd,Asd,vsd,usd,wsd])} +function c6c(){_5c();return OC(GC(f1,1),Kie,277,0,[$5c,T5c,X5c,Z5c,U5c,V5c,W5c,Y5c])} +function Dlc(){Alc();return OC(GC(KV,1),Kie,270,0,[tlc,wlc,slc,zlc,vlc,ulc,ylc,xlc])} +function nAc(){kAc();return OC(GC(aX,1),Kie,260,0,[iAc,dAc,gAc,eAc,fAc,cAc,hAc,jAc])} +function kcd(){kcd=ccb;jcd=as((dcd(),OC(GC(D1,1),Kie,98,0,[ccd,bcd,acd,Zbd,_bd,$bd])))} +function tHb(){tHb=ccb;sHb=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])).length;rHb=sHb} +function wed(a){this.b=(Qb(a),new Tkb(a));this.a=new Rkb;this.d=new Rkb;this.e=new d7c} +function W6c(a){var b;b=$wnd.Math.sqrt(a.a*a.a+a.b*a.b);if(b>0){a.a/=b;a.b/=b}return a} +function bKd(a){var b;if(a.w){return a.w}else{b=cKd(a);!!b&&!b.kh()&&(a.w=b);return b}} +function gZd(a){var b;if(a==null){return null}else{b=BD(a,190);return Umd(b,b.length)}} +function qud(a,b){if(a.g==null||b>=a.i)throw vbb(new $zd(b,a.i));return a.li(b,a.g[b])} +function Mmc(a){var b,c;b=a.a.d.j;c=a.c.d.j;while(b!=c){rqb(a.b,b);b=Xcd(b)}rqb(a.b,b)} +function Jmc(a){var b;for(b=0;b<a.c.length;b++){(tCb(b,a.c.length),BD(a.c[b],11)).p=b}} +function bEc(a,b,c){var d,e,f;e=b[c];for(d=0;d<e.length;d++){f=e[d];a.e[f.c.p][f.p]=d}} +function ZEc(a,b){var c,d,e,f;for(d=a.d,e=0,f=d.length;e<f;++e){c=d[e];REc(a.g,c).a=b}} +function q7c(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);P6c(c,b)}return a} +function zUb(a,b){var c;c=c7c(R6c(BD(Ohb(a.g,b),8)),E6c(BD(Ohb(a.f,b),460).b));return c} +function lib(a){var b;xpb(a.e,a);sCb(a.b);a.c=a.a;b=BD(a.a.Pb(),42);a.b=kib(a);return b} +function CD(a){var b;CCb(a==null||Array.isArray(a)&&(b=HC(a),!(b>=14&&b<=16)));return a} +function dcb(a,b,c){var d=function(){return a.apply(d,arguments)};b.apply(d,c);return d} +function TLc(a,b,c){var d,e;d=b;do{e=Edb(a.p[d.p])+c;a.p[d.p]=e;d=a.a[d.p]}while(d!=b)} +function NQd(a,b){var c,d;d=a.a;c=OQd(a,b,null);d!=b&&!a.e&&(c=QQd(a,b,c));!!c&&c.Fi()} +function ADb(a,b){return Iy(),My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Ky(a,b){Iy();My(Qie);return $wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)} +function Akc(a,b){gkc();return beb(a.b.c.length-a.e.c.length,b.b.c.length-b.e.c.length)} +function oo(a,b){return Kv(uo(a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function o0b(){o0b=ccb;n0b=as((j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])))} +function n8c(){n8c=ccb;m8c=as((i8c(),OC(GC(r1,1),Kie,291,0,[h8c,g8c,f8c,d8c,c8c,e8c])))} +function K7c(){K7c=ccb;J7c=as((F7c(),OC(GC(o1,1),Kie,248,0,[z7c,C7c,D7c,E7c,A7c,B7c])))} +function Fpc(){Fpc=ccb;Epc=as((Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])))} +function Drc(){Drc=ccb;Crc=as((yrc(),OC(GC(OW,1),Kie,275,0,[wrc,trc,xrc,vrc,urc,rrc])))} +function qrc(){qrc=ccb;prc=as((lrc(),OC(GC(NW,1),Kie,274,0,[irc,hrc,krc,grc,jrc,frc])))} +function tzc(){tzc=ccb;szc=as((lzc(),OC(GC(YW,1),Kie,313,0,[jzc,hzc,fzc,gzc,kzc,izc])))} +function Yqc(){Yqc=ccb;Xqc=as((Sqc(),OC(GC(LW,1),Kie,276,0,[Nqc,Mqc,Pqc,Oqc,Rqc,Qqc])))} +function wSc(){wSc=ccb;vSc=as((qSc(),OC(GC(t$,1),Kie,327,0,[pSc,lSc,nSc,mSc,oSc,kSc])))} +function ycd(){ycd=ccb;xcd=as((rcd(),OC(GC(E1,1),Kie,273,0,[pcd,ncd,ocd,mcd,lcd,qcd])))} +function Rad(){Rad=ccb;Qad=as((Mad(),OC(GC(w1,1),Kie,312,0,[Kad,Iad,Lad,Gad,Jad,Had])))} +function Lbd(){Hbd();return OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])} +function vkd(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,0,c,a.a))} +function wkd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.b))} +function hmd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.b))} +function ald(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,3,c,a.f))} +function cld(a,b){var c;c=a.g;a.g=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.g))} +function dld(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,5,c,a.i))} +function eld(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,6,c,a.j))} +function omd(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,1,c,a.j))} +function imd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,4,c,a.c))} +function pmd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new lSd(a,2,c,a.k))} +function qQd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,2,c,a.d))} +function AId(a,b){var c;c=a.s;a.s=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,4,c,a.s))} +function DId(a,b){var c;c=a.t;a.t=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new mSd(a,5,c,a.t))} +function _Jd(a,b){var c;c=a.F;a.F=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,c,b))} +function izd(a,b){var c;c=BD(Ohb((pEd(),oEd),a),55);return c?c.xj(b):KC(SI,Uhe,1,b,5,1)} +function Xpd(a,b){var c,d;c=b in a.a;if(c){d=aC(a,b).he();if(d){return d.a}}return null} +function ftd(a,b){var c,d,e;c=(d=(Fhd(),e=new Jod,e),!!b&&God(d,b),d);Hod(c,a);return c} +function LLd(a,b,c){Itd(a,c);if(!a.Bk()&&c!=null&&!a.wj(c)){throw vbb(new tcb)}return c} +function Xdd(a,b){a.n=b;if(a.n){a.f=new Rkb;a.e=new Rkb}else{a.f=null;a.e=null}return a} +function ndb(a,b,c,d,e,f){var g;g=ldb(a,b);zdb(c,g);g.i=e?8:0;g.f=d;g.e=e;g.g=f;return g} +function rSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=1;this.c=a;this.a=c} +function tSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=2;this.c=a;this.a=c} +function BSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=6;this.c=a;this.a=c} +function GSd(a,b,c,d,e){this.d=b;this.k=d;this.f=e;this.o=-1;this.p=7;this.c=a;this.a=c} +function xSd(a,b,c,d,e){this.d=b;this.j=d;this.e=e;this.o=-1;this.p=4;this.c=a;this.a=c} +function rDb(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e<f;++e){c=d[e];nDb(a.a,c)}return a} +function pl(a){var b,c,d,e;for(c=a,d=0,e=c.length;d<e;++d){b=c[d];Qb(b)}return new vl(a)} +function Uz(a){var b=/function(?:\s+([\w$]+))?\s*\(/;var c=b.exec(a);return c&&c[1]||Xie} +function zdb(a,b){var c;if(!a){return}b.n=a;var d=tdb(b);if(!d){_bb[a]=[b];return}d.gm=b} +function vlb(a,b,c){var d,e;e=a.length;d=$wnd.Math.min(c,e);$Bb(a,0,b,0,d,true);return b} +function RPb(a,b,c){var d,e;for(e=b.Kc();e.Ob();){d=BD(e.Pb(),79);Qqb(a,BD(c.Kb(d),33))}} +function Xbb(){Ybb();var a=Wbb;for(var b=0;b<arguments.length;b++){a.push(arguments[b])}} +function n7c(a,b){var c,d,e,f;for(d=b,e=0,f=d.length;e<f;++e){c=d[e];Gsb(a,c,a.c.b,a.c)}} +function s$c(a,b){a.b=$wnd.Math.max(a.b,b.d);a.e+=b.r+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} +function wkb(a){yCb(a.c>=0);if(ekb(a.d,a.c)<0){a.a=a.a-1&a.d.a.length-1;a.b=a.d.c}a.c=-1} +function pgb(a){if(a.a<54){return a.f<0?-1:a.f>0?1:0}return (!a.c&&(a.c=fhb(a.f)),a.c).e} +function My(a){if(!(a>=0)){throw vbb(new Wdb('tolerance ('+a+') must be >= 0'))}return a} +function n4c(){if(!f4c){f4c=new m4c;l4c(f4c,OC(GC(C0,1),Uhe,130,0,[new Z9c]))}return f4c} +function KAc(){KAc=ccb;JAc=new LAc(ole,0);HAc=new LAc('INPUT',1);IAc=new LAc('OUTPUT',2)} +function bqc(){bqc=ccb;$pc=new cqc('ARD',0);aqc=new cqc('MSD',1);_pc=new cqc('MANUAL',2)} +function rGc(){rGc=ccb;oGc=new sGc('BARYCENTER',0);pGc=new sGc(Bne,1);qGc=new sGc(Cne,2)} +function ztd(a,b){var c;c=a.gc();if(b<0||b>c)throw vbb(new Cyd(b,c));return new czd(a,b)} +function JAd(a,b){var c;if(JD(b,42)){return a.c.Mc(b)}else{c=qAd(a,b);LAd(a,b);return c}} +function $nd(a,b,c){yId(a,b);pnd(a,c);AId(a,0);DId(a,1);CId(a,true);BId(a,true);return a} +function Xj(a,b){if(a<0){throw vbb(new Wdb(b+' cannot be negative but was: '+a))}return a} +function Bt(a,b){var c,d;for(c=0,d=a.gc();c<d;++c){if(wtb(b,a.Xb(c))){return c}}return -1} +function Nc(a){var b,c;for(c=a.c.Cc().Kc();c.Ob();){b=BD(c.Pb(),14);b.$b()}a.c.$b();a.d=0} +function Ri(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;d<e;++d){b=c[d];Flb(b,b.length,null)}} +function ieb(a){var b,c;if(a==0){return 32}else{c=0;for(b=1;(b&a)==0;b<<=1){++c}return c}} +function NGb(a){var b,c;for(c=new olb(ahd(a));c.a<c.c.c.length;){b=BD(mlb(c),680);b.Gf()}} +function CUb(a){xUb();this.g=new Lqb;this.f=new Lqb;this.b=new Lqb;this.c=new Hp;this.i=a} +function XZb(){this.f=new d7c;this.d=new s0b;this.c=new d7c;this.a=new Rkb;this.b=new Rkb} +function c6d(a,b,c,d){this.rj();this.a=b;this.b=a;this.c=null;this.c=new d6d(this,b,c,d)} +function nxd(a,b,c,d,e){this.d=a;this.n=b;this.g=c;this.o=d;this.p=-1;e||(this.o=-2-d-1)} +function hJd(){FId.call(this);this.n=-1;this.g=null;this.i=null;this.j=null;this.Bb|=zte} +function Ldd(){Idd();return OC(GC(J1,1),Kie,259,0,[Bdd,Ddd,Add,Edd,Fdd,Hdd,Gdd,Cdd,zdd])} +function uFb(){rFb();return OC(GC(dN,1),Kie,250,0,[qFb,lFb,mFb,kFb,oFb,pFb,nFb,jFb,iFb])} +function qeb(){qeb=ccb;peb=OC(GC(WD,1),oje,25,15,[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15])} +function vCc(){vCc=ccb;uCc=e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),Z7b)),mUb,w8b),nUb,v8b)} +function VCc(){VCc=ccb;UCc=e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),Z7b)),mUb,w8b),nUb,v8b)} +function rDc(){rDc=ccb;qDc=e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),Z7b)),mUb,w8b),nUb,v8b)} +function yFc(){yFc=ccb;xFc=c3c(e3c(e3c(new j3c,(qUb(),nUb),(S8b(),z8b)),oUb,p8b),pUb,y8b)} +function Rpc(){Rpc=ccb;Ppc=new Tpc('LAYER_SWEEP',0);Opc=new Tpc(Tne,1);Qpc=new Tpc(ane,2)} +function RLc(a,b){var c,d;c=a.c;d=b.e[a.p];if(d>0){return BD(Ikb(c.a,d-1),10)}return null} +function Lkd(a,b){var c;c=a.k;a.k=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.k))} +function kmd(a,b){var c;c=a.f;a.f=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.f))} +function lmd(a,b){var c;c=a.i;a.i=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,c,a.i))} +function Hod(a,b){var c;c=a.a;a.a=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,8,c,a.a))} +function zpd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function UUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,c,a.b))} +function VUd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function Apd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.c))} +function pQd(a,b){var c;c=a.c;a.c=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,c,a.c))} +function PHd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.d))} +function jKd(a,b){var c;c=a.D;a.D=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.D))} +function Rdd(a,b){if(a.r>0&&a.c<a.r){a.c+=b;!!a.i&&a.i.d>0&&a.g!=0&&Rdd(a.i,b/a.r*a.i.d)}} +function dge(a,b,c){var d;a.b=b;a.a=c;d=(a.a&512)==512?new hee:new ude;a.c=ode(d,a.b,a.a)} +function g3d(a,b){return T6d(a.e,b)?(Q6d(),YId(b)?new R7d(b,a):new f7d(b,a)):new c8d(b,a)} +function _o(a,b){return Fv(vo(a.a,b,Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)))))} +function Nyb(a,b,c){return Ayb(a,new Kzb(b),new Mzb,new Ozb(c),OC(GC(xL,1),Kie,132,0,[]))} +function pAb(a){var b,c;if(0>a){return new yAb}b=a+1;c=new rAb(b,a);return new vAb(null,c)} +function umb(a,b){mmb();var c;c=new Mqb(1);ND(a)?Shb(c,a,b):jrb(c.f,a,b);return new iob(c)} +function aMb(a,b){var c,d;c=a.o+a.p;d=b.o+b.p;if(c<d){return -1}if(c==d){return 0}return 1} +function P2b(a){var b;b=vNb(a,(wtc(),$sc));if(JD(b,160)){return O2b(BD(b,160))}return null} +function Kp(a){var b;a=$wnd.Math.max(a,2);b=geb(a);if(a>b){b<<=1;return b>0?b:Iie}return b} +function xc(a){Ub(a.e!=3);switch(a.e){case 2:return false;case 0:return true;}return zc(a)} +function T6c(a,b){var c;if(JD(b,8)){c=BD(b,8);return a.a==c.a&&a.b==c.b}else{return false}} +function _Mb(a,b,c){var d,e,f;f=b>>5;e=b&31;d=xbb(Pbb(a.n[c][f],Tbb(Nbb(e,1))),3);return d} +function IAd(a,b){var c,d;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);HAd(a,c.cd(),c.dd())}} +function N1c(a,b){var c;c=new tOb;BD(b.b,65);BD(b.b,65);BD(b.b,65);Hkb(b.a,new T1c(a,c,b))} +function DUd(a,b){var c;c=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,21,c,a.b))} +function jmd(a,b){var c;c=a.d;a.d=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,c,a.d))} +function _Id(a,b){var c;c=a.j;a.j=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,13,c,a.j))} +function $jb(a,b,c){var d,e,f;f=a.a.length-1;for(e=a.b,d=0;d<c;e=e+1&f,++d){NC(b,d,a.a[e])}} +function rqb(a,b){var c;uCb(b);c=b.g;if(!a.b[c]){NC(a.b,c,b);++a.c;return true}return false} +function eub(a,b){var c;c=b==null?-1:Jkb(a.b,b,0);if(c<0){return false}fub(a,c);return true} +function fub(a,b){var c;c=Kkb(a.b,a.b.c.length-1);if(b<a.b.c.length){Nkb(a.b,b,c);bub(a,b)}} +function eyb(a,b){((oyb(),lyb)?null:b.c).length==0&&qyb(b,new zyb);Shb(a.a,lyb?null:b.c,b)} +function M5b(a,b){Odd(b,'Hierarchical port constraint processing',1);N5b(a);P5b(a);Qdd(b)} +function GOb(a,b){var c,d;for(d=b.Kc();d.Ob();){c=BD(d.Pb(),266);a.b=true;Qqb(a.e,c);c.b=a}} +function Owb(a,b){var c,d;c=1-b;d=a.a[c];a.a[c]=d.a[b];d.a[b]=a;a.b=true;d.b=false;return d} +function Gec(a,b){var c,d;c=BD(vNb(a,(Nyc(),ayc)),8);d=BD(vNb(b,ayc),8);return Kdb(c.b,d.b)} +function jfc(a){oEb.call(this);this.b=Edb(ED(vNb(a,(Nyc(),lyc))));this.a=BD(vNb(a,Swc),218)} +function XGc(a,b,c){uEc.call(this,a,b,c);this.a=new Lqb;this.b=new Lqb;this.d=new $Gc(this)} +function ku(a){this.e=a;this.d=new Uqb(Cv(Ec(this.e).gc()));this.c=this.e.a;this.b=this.e.c} +function BHc(a){this.b=a;this.a=KC(WD,oje,25,a+1,15,1);this.c=KC(WD,oje,25,a,15,1);this.d=0} +function THc(a,b,c){var d;d=new Rkb;UHc(a,b,d,c,true,true);a.b=new BHc(d.c.length);return d} +function nMc(a,b){var c;c=BD(Ohb(a.c,b),458);if(!c){c=new uMc;c.c=b;Rhb(a.c,c.c,c)}return c} +function $B(e,a){var b=e.a;var c=0;for(var d in b){b.hasOwnProperty(d)&&(a[c++]=d)}return a} +function pRd(a){var b;if(a.b==null){return LRd(),LRd(),KRd}b=a.Lk()?a.Kk():a.Jk();return b} +function r$c(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),33);dld(b,0);eld(b,0)}} +function HSb(){HSb=ccb;FSb=new Lsd(Ime);GSb=new Lsd(Jme);ESb=new Lsd(Kme);DSb=new Lsd(Lme)} +function y5b(){y5b=ccb;x5b=new z5b('TO_INTERNAL_LTR',0);w5b=new z5b('TO_INPUT_DIRECTION',1)} +function PUc(){PUc=ccb;NUc=new RUc('P1_NODE_PLACEMENT',0);OUc=new RUc('P2_EDGE_ROUTING',1)} +function Fkc(){Fkc=ccb;Ekc=new Gkc('START',0);Dkc=new Gkc('MIDDLE',1);Ckc=new Gkc('END',2)} +function I9b(){I9b=ccb;H9b=new Msd('edgelabelcenterednessanalysis.includelabel',(Bcb(),zcb))} +function Zyc(a,b){MAb(JAb(new YAb(null,new Kub(new Pib(a.b),1)),new bfd(a,b)),new ffd(a,b))} +function $Xc(){this.c=new jVc(0);this.b=new jVc(Tqe);this.d=new jVc(Sqe);this.a=new jVc(cme)} +function $Fc(a){var b,c;for(c=a.c.a.ec().Kc();c.Ob();){b=BD(c.Pb(),214);eFc(b,new oHc(b.e))}} +function ZFc(a){var b,c;for(c=a.c.a.ec().Kc();c.Ob();){b=BD(c.Pb(),214);dFc(b,new nHc(b.f))}} +function pnd(a,b){var c;c=a.zb;a.zb=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,c,a.zb))} +function cod(a,b){var c;c=a.xb;a.xb=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,c,a.xb))} +function dod(a,b){var c;c=a.yb;a.yb=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,2,c,a.yb))} +function Knd(a,b){var c,d;c=(d=new OJd,d);c.n=b;wtd((!a.s&&(a.s=new cUd(t5,a,21,17)),a.s),c)} +function Qnd(a,b){var c,d;d=(c=new FUd,c);d.n=b;wtd((!a.s&&(a.s=new cUd(t5,a,21,17)),a.s),d)} +function ktb(a,b){var c,d;c=a.Pc();Klb(c,0,c.length,b);for(d=0;d<c.length;d++){a._c(d,c[d])}} +function ye(a,b){var c,d,e;uCb(b);c=false;for(e=b.Kc();e.Ob();){d=e.Pb();c=c|a.Fc(d)}return c} +function Bx(a){var b,c,d;b=0;for(d=a.Kc();d.Ob();){c=d.Pb();b+=c!=null?tb(c):0;b=~~b}return b} +function SA(a){var b;if(a==0){return 'UTC'}if(a<0){a=-a;b='UTC+'}else{b='UTC-'}return b+UA(a)} +function Jq(a,b){var c;if(JD(b,14)){c=BD(b,14);return a.Gc(c)}return fr(a,BD(Qb(b),20).Kc())} +function Bnc(a,b,c){Cnc.call(this,b,c);this.d=KC(OQ,kne,10,a.a.c.length,0,1);Qkb(a.a,this.d)} +function IMc(a){a.a=null;a.e=null;a.b.c=KC(SI,Uhe,1,0,5,1);a.f.c=KC(SI,Uhe,1,0,5,1);a.c=null} +function gKd(a,b){if(b){if(a.B==null){a.B=a.D;a.D=null}}else if(a.B!=null){a.D=a.B;a.B=null}} +function Poc(a,b){return Edb(ED(Btb(TAb(NAb(new YAb(null,new Kub(a.c.b,16)),new fpc(a)),b))))} +function Soc(a,b){return Edb(ED(Btb(TAb(NAb(new YAb(null,new Kub(a.c.b,16)),new dpc(a)),b))))} +function Q2b(a,b){Odd(b,zne,1);MAb(LAb(new YAb(null,new Kub(a.b,16)),new U2b),new W2b);Qdd(b)} +function SXc(a,b){var c,d;c=BD(hkd(a,(ZWc(),SWc)),19);d=BD(hkd(b,SWc),19);return beb(c.a,d.a)} +function p7c(a,b,c){var d,e;for(e=Jsb(a,0);e.b!=e.d.c;){d=BD(Xsb(e),8);d.a+=b;d.b+=c}return a} +function uo(a,b,c){var d;for(d=a.b[c&a.f];d;d=d.b){if(c==d.a&&Hb(b,d.g)){return d}}return null} +function vo(a,b,c){var d;for(d=a.c[c&a.f];d;d=d.d){if(c==d.f&&Hb(b,d.i)){return d}}return null} +function khb(a,b,c){var d,e,f;d=0;for(e=0;e<c;e++){f=b[e];a[e]=f<<1|d;d=f>>>31}d!=0&&(a[c]=d)} +function rmb(a,b){mmb();var c,d;d=new Rkb;for(c=0;c<a;++c){d.c[d.c.length]=b}return new Yob(d)} +function Zzb(a){var b;b=Yzb(a);if(Bbb(b.a,0)){return Ltb(),Ltb(),Ktb}return Ltb(),new Ptb(b.b)} +function $zb(a){var b;b=Yzb(a);if(Bbb(b.a,0)){return Ltb(),Ltb(),Ktb}return Ltb(),new Ptb(b.c)} +function uAb(a){var b;b=tAb(a);if(Bbb(b.a,0)){return Utb(),Utb(),Ttb}return Utb(),new Xtb(b.b)} +function zZb(a){if(a.b.c.i.k==(j0b(),e0b)){return BD(vNb(a.b.c.i,(wtc(),$sc)),11)}return a.b.c} +function AZb(a){if(a.b.d.i.k==(j0b(),e0b)){return BD(vNb(a.b.d.i,(wtc(),$sc)),11)}return a.b.d} +function Vnd(a,b,c,d,e,f,g,h,i,j,k,l,m){aod(a,b,c,d,e,f,g,h,i,j,k,l,m);MJd(a,false);return a} +function tJb(a,b,c,d,e,f,g){$r.call(this,a,b);this.d=c;this.e=d;this.c=e;this.b=f;this.a=Ou(g)} +function $bb(a,b){typeof window===Jhe&&typeof window['$gwt']===Jhe&&(window['$gwt'][a]=b)} +function pWb(a,b){lWb();return a==hWb&&b==kWb||a==kWb&&b==hWb||a==jWb&&b==iWb||a==iWb&&b==jWb} +function qWb(a,b){lWb();return a==hWb&&b==iWb||a==hWb&&b==jWb||a==kWb&&b==jWb||a==kWb&&b==iWb} +function IJb(a,b){return Iy(),My(ple),$wnd.Math.abs(0-b)<=ple||0==b||isNaN(0)&&isNaN(b)?0:a/b} +function Rrc(){Orc();return OC(GC(PW,1),Kie,256,0,[Frc,Hrc,Irc,Jrc,Krc,Lrc,Nrc,Erc,Grc,Mrc])} +function NKd(){NKd=ccb;KKd=new KPd;MKd=OC(GC(t5,1),Mve,170,0,[]);LKd=OC(GC(n5,1),Nve,59,0,[])} +function CBc(){CBc=ccb;BBc=new DBc('NO',0);zBc=new DBc('GREEDY',1);ABc=new DBc('LOOK_BACK',2)} +function z0b(){z0b=ccb;w0b=new m1b;u0b=new h1b;v0b=new q1b;t0b=new u1b;x0b=new y1b;y0b=new C1b} +function J9b(a){var b,c,d;d=0;for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),29);b.p=d;++d}} +function nfd(a,b){var c;c=sfd(a);return mfd(new f7c(c.c,c.d),new f7c(c.b,c.a),a.rf(),b,a.Hf())} +function Udd(a,b){var c;if(a.b){return null}else{c=Pdd(a,a.g);Dsb(a.a,c);c.i=a;a.d=b;return c}} +function kUc(a,b,c){Odd(c,'DFS Treeifying phase',1);jUc(a,b);hUc(a,b);a.a=null;a.b=null;Qdd(c)} +function zic(a,b,c){this.g=a;this.d=b;this.e=c;this.a=new Rkb;xic(this);mmb();Okb(this.a,null)} +function Aud(a){this.i=a.gc();if(this.i>0){this.g=this.ri(this.i+(this.i/8|0)+1);a.Qc(this.g)}} +function u3d(a,b){k2d.call(this,D9,a,b);this.b=this;this.a=S6d(a.Tg(),XKd(this.e.Tg(),this.c))} +function Ld(a,b){var c,d;uCb(b);for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);a.zc(c.cd(),c.dd())}} +function G2d(a,b,c){var d;for(d=c.Kc();d.Ob();){if(!E2d(a,b,d.Pb())){return false}}return true} +function sVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.gh(b,-1-(f==-1?d:f),null,e)}return e} +function tVd(a,b,c,d,e){var f;if(c){f=bLd(b.Tg(),a.c);e=c.ih(b,-1-(f==-1?d:f),null,e)}return e} +function Mgb(a){var b;if(a.b==-2){if(a.e==0){b=-1}else{for(b=0;a.a[b]==0;b++);}a.b=b}return a.b} +function Z4b(a){switch(a.g){case 2:return Ucd(),Tcd;case 4:return Ucd(),zcd;default:return a;}} +function $4b(a){switch(a.g){case 1:return Ucd(),Rcd;case 3:return Ucd(),Acd;default:return a;}} +function nkc(a){var b,c,d;return a.j==(Ucd(),Acd)&&(b=pkc(a),c=uqb(b,zcd),d=uqb(b,Tcd),d||d&&c)} +function oqb(a){var b,c;b=BD(a.e&&a.e(),9);c=BD(ZBb(b,b.length),9);return new xqb(b,c,b.length)} +function l7b(a,b){Odd(b,zne,1);UGb(TGb(new YGb((a$b(),new l$b(a,false,false,new T$b)))));Qdd(b)} +function Fcb(a,b){Bcb();return ND(a)?cfb(a,GD(b)):LD(a)?Ddb(a,ED(b)):KD(a)?Dcb(a,DD(b)):a.wd(b)} +function WZc(a,b){b.q=a;a.d=$wnd.Math.max(a.d,b.r);a.b+=b.d+(a.a.c.length==0?0:a.c);Ekb(a.a,b)} +function m6c(a,b){var c,d,e,f;e=a.c;c=a.c+a.b;f=a.d;d=a.d+a.a;return b.a>e&&b.a<c&&b.b>f&&b.b<d} +function Ynd(a,b,c,d){JD(a.Cb,179)&&(BD(a.Cb,179).tb=null);pnd(a,c);!!b&&hKd(a,b);d&&a.xk(true)} +function Yqd(a,b){var c;c=BD(b,183);Spd(c,'x',a.i);Spd(c,'y',a.j);Spd(c,Gte,a.g);Spd(c,Fte,a.f)} +function LFc(){LFc=ccb;KFc=b3c(f3c(e3c(e3c(new j3c,(qUb(),nUb),(S8b(),z8b)),oUb,p8b),pUb),y8b)} +function dHc(){dHc=ccb;cHc=b3c(f3c(e3c(e3c(new j3c,(qUb(),nUb),(S8b(),z8b)),oUb,p8b),pUb),y8b)} +function sXc(){sXc=ccb;qXc=new uXc(ane,0);rXc=new uXc('POLAR_COORDINATE',1);pXc=new uXc('ID',2)} +function TAc(){TAc=ccb;QAc=new UAc('EQUALLY',0);RAc=new UAc(xle,1);SAc=new UAc('NORTH_SOUTH',2)} +function pAc(){pAc=ccb;oAc=as((kAc(),OC(GC(aX,1),Kie,260,0,[iAc,dAc,gAc,eAc,fAc,cAc,hAc,jAc])))} +function Flc(){Flc=ccb;Elc=as((Alc(),OC(GC(KV,1),Kie,270,0,[tlc,wlc,slc,zlc,vlc,ulc,ylc,xlc])))} +function e6c(){e6c=ccb;d6c=as((_5c(),OC(GC(f1,1),Kie,277,0,[$5c,T5c,X5c,Z5c,U5c,V5c,W5c,Y5c])))} +function Hsd(){Hsd=ccb;Gsd=as((Csd(),OC(GC(O3,1),Kie,237,0,[Bsd,ysd,zsd,xsd,Asd,vsd,usd,wsd])))} +function XNb(){XNb=ccb;VNb=new Msd('debugSVG',(Bcb(),false));WNb=new Msd('overlapsExisted',true)} +function Xyb(a,b){return Ayb(new tzb(a),new vzb(b),new xzb(b),new zzb,OC(GC(xL,1),Kie,132,0,[]))} +function hyb(){var a;if(!dyb){dyb=new gyb;a=new wyb('');uyb(a,($xb(),Zxb));eyb(dyb,a)}return dyb} +function hr(a,b){var c;Qb(b);while(a.Ob()){c=a.Pb();if(!QNc(BD(c,10))){return false}}return true} +function T3c(a,b){var c;c=h4c(n4c(),a);if(c){jkd(b,(Y9c(),F9c),c);return true}else{return false}} +function d3c(a,b){var c;for(c=0;c<b.j.c.length;c++){BD(B2c(a,c),21).Gc(BD(B2c(b,c),14))}return a} +function M9b(a,b){var c,d;for(d=new olb(b.b);d.a<d.c.c.length;){c=BD(mlb(d),29);a.a[c.p]=_$b(c)}} +function stb(a,b){var c,d;uCb(b);for(d=a.vc().Kc();d.Ob();){c=BD(d.Pb(),42);b.Od(c.cd(),c.dd())}} +function cId(a,b){var c;if(JD(b,83)){BD(a.c,76).Xj();c=BD(b,83);IAd(a,c)}else{BD(a.c,76).Wb(b)}} +function Su(a){return JD(a,152)?km(BD(a,152)):JD(a,131)?BD(a,131).a:JD(a,54)?new ov(a):new dv(a)} +function fac(a,b){return b<a.b.gc()?BD(a.b.Xb(b),10):b==a.b.gc()?a.a:BD(Ikb(a.e,b-a.b.gc()-1),10)} +function crb(a,b){a.a=wbb(a.a,1);a.c=$wnd.Math.min(a.c,b);a.b=$wnd.Math.max(a.b,b);a.d=wbb(a.d,b)} +function n3b(a,b){var c;Odd(b,'Edge and layer constraint edge reversal',1);c=m3b(a);l3b(c);Qdd(b)} +function tAd(a){var b;if(a.d==null){++a.e;a.f=0;sAd(null)}else{++a.e;b=a.d;a.d=null;a.f=0;sAd(b)}} +function zbb(a){var b;b=a.h;if(b==0){return a.l+a.m*Hje}if(b==Fje){return a.l+a.m*Hje-Ije}return a} +function aKb(a){$Jb();if(a.A.Hc((tdd(),pdd))){if(!a.B.Hc((Idd(),Ddd))){return _Jb(a)}}return null} +function Zgb(a){uCb(a);if(a.length==0){throw vbb(new Oeb('Zero length BigInteger'))}dhb(this,a)} +function Vb(a){if(!a){throw vbb(new Zdb('no calls to next() since the last call to remove()'))}} +function Cbb(a){if(Kje<a&&a<Ije){return a<0?$wnd.Math.ceil(a):$wnd.Math.floor(a)}return zbb(fD(a))} +function Yyb(a,b){var c,d,e;c=a.c.Ee();for(e=b.Kc();e.Ob();){d=e.Pb();a.a.Od(c,d)}return a.b.Kb(c)} +function Uhd(a,b){var c,d,e;c=a.Jg();if(c!=null&&a.Mg()){for(d=0,e=c.length;d<e;++d){c[d].ui(b)}}} +function f_b(a,b){var c,d;c=a;d=Q_b(c).e;while(d){c=d;if(c==b){return true}d=Q_b(c).e}return false} +function lDc(a,b,c){var d,e;d=a.a.f[b.p];e=a.a.f[c.p];if(d<e){return -1}if(d==e){return 0}return 1} +function Si(a,b,c){var d,e;e=BD(tn(a.d,b),19);d=BD(tn(a.b,c),19);return !e||!d?null:Mi(a,e.a,d.a)} +function cYc(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),33);bld(c,c.i+b.b,c.j+b.d)}} +function qjc(a,b){var c,d;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),70);Ekb(a.d,c);ujc(a,c)}} +function pQc(a,b){var c,d;d=new Rkb;c=b;do{d.c[d.c.length]=c;c=BD(Ohb(a.k,c),17)}while(c);return d} +function Ajd(a,b){var c;if((a.Db&b)!=0){c=zjd(a,b);return c==-1?a.Eb:CD(a.Eb)[c]}else{return null}} +function Lnd(a,b){var c,d;c=(d=new hLd,d);c.G=b;!a.rb&&(a.rb=new jUd(a,d5,a));wtd(a.rb,c);return c} +function Mnd(a,b){var c,d;c=(d=new MPd,d);c.G=b;!a.rb&&(a.rb=new jUd(a,d5,a));wtd(a.rb,c);return c} +function Hkd(a,b){switch(b){case 1:return !!a.n&&a.n.i!=0;case 2:return a.k!=null;}return dkd(a,b)} +function gNc(a){switch(a.a.g){case 1:return new NNc;case 3:return new vQc;default:return new wNc;}} +function MRd(a){var b;if(a.g>1||a.Ob()){++a.a;a.g=0;b=a.i;a.Ob();return b}else{throw vbb(new utb)}} +function kNc(a){fNc();var b;if(!Lpb(eNc,a)){b=new hNc;b.a=a;Opb(eNc,a,b)}return BD(Mpb(eNc,a),635)} +function Rbb(a){var b,c,d,e;e=a;d=0;if(e<0){e+=Ije;d=Fje}c=QD(e/Hje);b=QD(e-c*Hje);return TC(b,c,d)} +function Ox(a){var b,c,d;d=0;for(c=new Gqb(a.a);c.a<c.c.a.length;){b=Fqb(c);a.b.Hc(b)&&++d}return d} +function Ku(a){var b,c,d;b=1;for(d=a.Kc();d.Ob();){c=d.Pb();b=31*b+(c==null?0:tb(c));b=~~b}return b} +function Zwb(a,b){var c;this.c=a;c=new Rkb;Ewb(a,c,b,a.b,null,false,null,false);this.a=new Bib(c,0)} +function p4d(a,b){this.b=a;this.e=b;this.d=b.j;this.f=(Q6d(),BD(a,66).Oj());this.k=S6d(b.e.Tg(),a)} +function xwb(a,b,c){this.b=(uCb(a),a);this.d=(uCb(b),b);this.e=(uCb(c),c);this.c=this.d+(''+this.e)} +function xRb(){this.a=BD(Ksd((wSb(),eSb)),19).a;this.c=Edb(ED(Ksd(uSb)));this.b=Edb(ED(Ksd(qSb)))} +function Nbd(){Nbd=ccb;Mbd=as((Hbd(),OC(GC(B1,1),Kie,93,0,[zbd,ybd,Bbd,Gbd,Fbd,Ebd,Cbd,Dbd,Abd])))} +function wFb(){wFb=ccb;vFb=as((rFb(),OC(GC(dN,1),Kie,250,0,[qFb,lFb,mFb,kFb,oFb,pFb,nFb,jFb,iFb])))} +function vLb(){vLb=ccb;uLb=new wLb('UP',0);rLb=new wLb(vle,1);sLb=new wLb(jle,2);tLb=new wLb(kle,3)} +function rTc(){rTc=ccb;qTc=(STc(),QTc);pTc=new Nsd(Zqe,qTc);oTc=($Tc(),ZTc);nTc=new Nsd($qe,oTc)} +function Xrc(){Xrc=ccb;Vrc=new Yrc('ONE_SIDED',0);Wrc=new Yrc('TWO_SIDED',1);Urc=new Yrc('OFF',2)} +function TQc(a){a.r=new Tqb;a.w=new Tqb;a.t=new Rkb;a.i=new Rkb;a.d=new Tqb;a.a=new I6c;a.c=new Lqb} +function uOc(a){this.n=new Rkb;this.e=new Psb;this.j=new Psb;this.k=new Rkb;this.f=new Rkb;this.p=a} +function PEc(a,b){if(a.c){QEc(a,b,true);MAb(new YAb(null,new Kub(b,16)),new bFc(a))}QEc(a,b,false)} +function wFc(a,b,c){return a==(rGc(),qGc)?new pFc:Cub(b,1)!=0?new iHc(c.length):new RGc(c.length)} +function tNb(a,b){var c;if(!b){return a}c=b.Ve();c.dc()||(!a.q?(a.q=new Nqb(c)):Ld(a.q,c));return a} +function Erb(a,b){var c;c=a.a.get(b);if(c===undefined){++a.d}else{urb(a.a,b);--a.c;zpb(a.b)}return c} +function UYb(a,b){var c,d,e;c=b.p-a.p;if(c==0){d=a.f.a*a.f.b;e=b.f.a*b.f.b;return Kdb(d,e)}return c} +function XLb(a,b){var c,d;c=a.f.c.length;d=b.f.c.length;if(c<d){return -1}if(c==d){return 0}return 1} +function KZb(a){if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}return JZb(a)} +function Pq(a){var b;if(a){b=a;if(b.dc()){throw vbb(new utb)}return b.Xb(b.gc()-1)}return nr(a.Kc())} +function vgb(a){var b;ybb(a,0)<0&&(a=Lbb(a));return b=Tbb(Obb(a,32)),64-(b!=0?heb(b):heb(Tbb(a))+32)} +function QNc(a){var b;b=BD(vNb(a,(wtc(),Hsc)),61);return a.k==(j0b(),e0b)&&(b==(Ucd(),Tcd)||b==zcd)} +function bZb(a,b,c){var d,e;e=BD(vNb(a,(Nyc(),jxc)),74);if(e){d=new s7c;o7c(d,0,e);q7c(d,c);ye(b,d)}} +function M_b(a,b,c){var d,e,f,g;g=Q_b(a);d=g.d;e=g.c;f=a.n;b&&(f.a=f.a-d.b-e.a);c&&(f.b=f.b-d.d-e.b)} +function dcc(a,b){var c,d;c=a.j;d=b.j;return c!=d?c.g-d.g:a.p==b.p?0:c==(Ucd(),Acd)?a.p-b.p:b.p-a.p} +function dmc(a){var b,c;bmc(a);for(c=new olb(a.d);c.a<c.c.c.length;){b=BD(mlb(c),101);!!b.i&&cmc(b)}} +function lBc(a,b,c,d,e){NC(a.c[b.g],c.g,d);NC(a.c[c.g],b.g,d);NC(a.b[b.g],c.g,e);NC(a.b[c.g],b.g,e)} +function G1c(a,b,c,d){BD(c.b,65);BD(c.b,65);BD(d.b,65);BD(d.b,65);BD(d.b,65);Hkb(d.a,new L1c(a,b,d))} +function WDb(a,b){a.d==(ead(),aad)||a.d==dad?BD(b.a,57).c.Fc(BD(b.b,57)):BD(b.b,57).c.Fc(BD(b.a,57))} +function Gkd(a,b,c,d){if(c==1){return !a.n&&(a.n=new cUd(D2,a,1,7)),Txd(a.n,b,d)}return ckd(a,b,c,d)} +function Gnd(a,b){var c,d;d=(c=new BYd,c);pnd(d,b);wtd((!a.A&&(a.A=new K4d(u5,a,7)),a.A),d);return d} +function Zqd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,Jte);d=new jrd(a,c);f=(lqd(d.a,d.b,e),e);return f} +function KJd(a){var b;if(!a.a||(a.Bb&1)==0&&a.a.kh()){b=wId(a);JD(b,148)&&(a.a=BD(b,148))}return a.a} +function Be(a,b){var c,d;uCb(b);for(d=b.Kc();d.Ob();){c=d.Pb();if(!a.Hc(c)){return false}}return true} +function cD(a,b){var c,d,e;c=a.l+b.l;d=a.m+b.m+(c>>22);e=a.h+b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function nD(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return TC(c&Eje,d&Eje,e&Fje)} +function bdb(a){var b;if(a<128){b=(ddb(),cdb)[a];!b&&(b=cdb[a]=new Xcb(a));return b}return new Xcb(a)} +function ubb(a){var b;if(JD(a,78)){return a}b=a&&a.__java$exception;if(!b){b=new lz(a);Sz(b)}return b} +function btd(a){if(JD(a,186)){return BD(a,118)}else if(!a){throw vbb(new Heb(gue))}else{return null}} +function Zjb(a,b){if(b==null){return false}while(a.a!=a.b){if(pb(b,vkb(a))){return true}}return false} +function kib(a){if(a.a.Ob()){return true}if(a.a!=a.d){return false}a.a=new orb(a.e.f);return a.a.Ob()} +function Gkb(a,b){var c,d;c=b.Pc();d=c.length;if(d==0){return false}bCb(a.c,a.c.length,c);return true} +function Vyb(a,b,c){var d,e;for(e=b.vc().Kc();e.Ob();){d=BD(e.Pb(),42);a.yc(d.cd(),d.dd(),c)}return a} +function yac(a,b){var c,d;for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),70);yNb(c,(wtc(),Ssc),b)}} +function FZc(a,b,c){var d,e;for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),33);bld(d,d.i+b,d.j+c)}} +function Nb(a,b){if(!a){throw vbb(new Wdb(hc('value already present: %s',OC(GC(SI,1),Uhe,1,5,[b]))))}} +function mEb(a,b){if(!a||!b||a==b){return false}return CDb(a.d.c,b.d.c+b.d.b)&&CDb(b.d.c,a.d.c+a.d.b)} +function xyb(){oyb();if(lyb){return new wyb(null)}return fyb(hyb(),'com.google.common.base.Strings')} +function J2c(a,b){var c;c=Pu(b.a.gc());MAb(VAb(new YAb(null,new Kub(b,1)),a.i),new W2c(a,c));return c} +function Hnd(a){var b,c;c=(b=new BYd,b);pnd(c,'T');wtd((!a.d&&(a.d=new K4d(u5,a,11)),a.d),c);return c} +function Etd(a){var b,c,d,e;b=1;for(c=0,e=a.gc();c<e;++c){d=a.ki(c);b=31*b+(d==null?0:tb(d))}return b} +function Wi(a,b,c,d){var e;Pb(b,a.e.Hd().gc());Pb(c,a.c.Hd().gc());e=a.a[b][c];NC(a.a[b],c,d);return e} +function OC(a,b,c,d,e){e.gm=a;e.hm=b;e.im=gcb;e.__elementTypeId$=c;e.__elementTypeCategory$=d;return e} +function p6c(a,b,c,d,e){i6c();return $wnd.Math.min(A6c(a,b,c,d,e),A6c(c,d,a,b,V6c(new f7c(e.a,e.b))))} +function gbc(){gbc=ccb;fbc=new ibc(ane,0);dbc=new ibc(Gne,1);ebc=new ibc(Hne,2);cbc=new ibc('BOTH',3)} +function Ajc(){Ajc=ccb;wjc=new Bjc(gle,0);xjc=new Bjc(jle,1);yjc=new Bjc(kle,2);zjc=new Bjc('TOP',3)} +function lWb(){lWb=ccb;hWb=new oWb('Q1',0);kWb=new oWb('Q4',1);iWb=new oWb('Q2',2);jWb=new oWb('Q3',3)} +function LBc(){LBc=ccb;JBc=new MBc('OFF',0);KBc=new MBc('SINGLE_EDGE',1);IBc=new MBc('MULTI_EDGE',2)} +function a1c(){a1c=ccb;_0c=new c1c('MINIMUM_SPANNING_TREE',0);$0c=new c1c('MAXIMUM_SPANNING_TREE',1)} +function Y1c(){Y1c=ccb;new Lsd('org.eclipse.elk.addLayoutConfig');W1c=new k2c;V1c=new f2c;X1c=new i2c} +function URc(a){var b,c,d;b=new Psb;for(d=Jsb(a.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);Dsb(b,c.c)}return b} +function dVc(a){var b,c,d,e;e=new Rkb;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),33);b=gVc(c);Gkb(e,b)}return e} +function xcc(a){var b;PZb(a,true);b=_ie;wNb(a,(Nyc(),cyc))&&(b+=BD(vNb(a,cyc),19).a);yNb(a,cyc,meb(b))} +function q1c(a,b,c){var d;Uhb(a.a);Hkb(c.i,new B1c(a));d=new hDb(BD(Ohb(a.a,b.b),65));p1c(a,d,b);c.f=d} +function QLc(a,b){var c,d;c=a.c;d=b.e[a.p];if(d<c.a.c.length-1){return BD(Ikb(c.a,d+1),10)}return null} +function rr(a,b){var c,d;Rb(b,'predicate');for(d=0;a.Ob();d++){c=a.Pb();if(b.Lb(c)){return d}}return -1} +function ZEd(a,b){var c,d;d=0;if(a<64&&a<=b){b=b<64?b:63;for(c=a;c<=b;c++){d=Mbb(d,Nbb(1,c))}}return d} +function pmb(a){mmb();var b,c,d;d=0;for(c=a.Kc();c.Ob();){b=c.Pb();d=d+(b!=null?tb(b):0);d=d|0}return d} +function etd(a){var b,c;c=(Fhd(),b=new rmd,b);!!a&&wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c);return c} +function TA(a){var b;b=new PA;b.a=a;b.b=RA(a);b.c=KC(ZI,nie,2,2,6,1);b.c[0]=SA(a);b.c[1]=SA(a);return b} +function fkd(a,b){switch(b){case 0:!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0));a.o.c.$b();return;}Cid(a,b)} +function jEb(a,b,c){switch(c.g){case 2:a.b=b;break;case 1:a.c=b;break;case 4:a.d=b;break;case 3:a.a=b;}} +function sbd(a){switch(a.g){case 1:return obd;case 2:return nbd;case 3:return pbd;default:return qbd;}} +function Zac(a){switch(BD(vNb(a,(Nyc(),mxc)),163).g){case 2:case 4:return true;default:return false;}} +function Trc(){Trc=ccb;Src=as((Orc(),OC(GC(PW,1),Kie,256,0,[Frc,Hrc,Irc,Jrc,Krc,Lrc,Nrc,Erc,Grc,Mrc])))} +function Ndd(){Ndd=ccb;Mdd=as((Idd(),OC(GC(J1,1),Kie,259,0,[Bdd,Ddd,Add,Edd,Fdd,Hdd,Gdd,Cdd,zdd])))} +function wUc(){wUc=ccb;vUc=e3c(b3c(b3c(g3c(e3c(new j3c,(yRc(),vRc),(qSc(),pSc)),wRc),mSc),nSc),xRc,oSc)} +function Gqc(){Gqc=ccb;Eqc=new Hqc(ane,0);Dqc=new Hqc('INCOMING_ONLY',1);Fqc=new Hqc('OUTGOING_ONLY',2)} +function rC(){rC=ccb;qC={'boolean':sC,'number':tC,'string':vC,'object':uC,'function':uC,'undefined':wC}} +function Whb(a,b){mCb(a>=0,'Negative initial capacity');mCb(b>=0,'Non-positive load factor');Uhb(this)} +function _Ed(a,b,c){if(a>=128)return false;return a<64?Kbb(xbb(Nbb(1,a),c),0):Kbb(xbb(Nbb(1,a-64),b),0)} +function bOb(a,b){if(!a||!b||a==b){return false}return Jy(a.b.c,b.b.c+b.b.b)<0&&Jy(b.b.c,a.b.c+a.b.b)<0} +function I4b(a){var b,c,d;c=a.n;d=a.o;b=a.d;return new J6c(c.a-b.b,c.b-b.d,d.a+(b.b+b.c),d.b+(b.d+b.a))} +function $ic(a){var b,c,d,e;for(c=a.a,d=0,e=c.length;d<e;++d){b=c[d];djc(a,b,(Ucd(),Rcd));djc(a,b,Acd)}} +function Uy(a){var b,c,d,e;for(b=(a.j==null&&(a.j=(Rz(),e=Qz.ce(a),Tz(e))),a.j),c=0,d=b.length;c<d;++c);} +function hD(a){var b,c,d;b=~a.l+1&Eje;c=~a.m+(b==0?1:0)&Eje;d=~a.h+(b==0&&c==0?1:0)&Fje;return TC(b,c,d)} +function C$c(a,b){var c,d;c=BD(BD(Ohb(a.g,b.a),46).a,65);d=BD(BD(Ohb(a.g,b.b),46).a,65);return _Nb(c,d)} +function xtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));a.hi()&&(c=Dtd(a,c));return a.Vh(b,c)} +function xNb(a,b,c){return c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a} +function yNb(a,b,c){c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c));return a} +function TQb(a){var b,c;c=new kRb;tNb(c,a);yNb(c,(HSb(),FSb),a);b=new Lqb;VQb(a,c,b);UQb(a,c,b);return c} +function j6c(a){i6c();var b,c,d;c=KC(m1,nie,8,2,0,1);d=0;for(b=0;b<2;b++){d+=0.5;c[b]=r6c(d,a)}return c} +function Mic(a,b){var c,d,e,f;c=false;d=a.a[b].length;for(f=0;f<d-1;f++){e=f+1;c=c|Nic(a,b,f,e)}return c} +function nNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){YMb(a,f,g)||aNb(a,f,g,true,false)}}} +function rNd(a,b){this.b=a;nNd.call(this,(BD(qud(ZKd((NFd(),MFd).o),10),18),b.i),b.g);this.a=(NKd(),MKd)} +function hj(a,b){this.c=a;this.d=b;this.b=this.d/this.c.c.Hd().gc()|0;this.a=this.d%this.c.c.Hd().gc()} +function jdb(){++edb;this.o=null;this.k=null;this.j=null;this.d=null;this.b=null;this.n=null;this.a=null} +function fB(a,b,c){this.q=new $wnd.Date;this.q.setFullYear(a+nje,b,c);this.q.setHours(0,0,0,0);YA(this,0)} +function tAc(){tAc=ccb;rAc=new uAc(ane,0);qAc=new uAc('NODES_AND_EDGES',1);sAc=new uAc('PREFER_EDGES',2)} +function RA(a){var b;if(a==0){return 'Etc/GMT'}if(a<0){a=-a;b='Etc/GMT-'}else{b='Etc/GMT+'}return b+UA(a)} +function geb(a){var b;if(a<0){return Rie}else if(a==0){return 0}else{for(b=Iie;(b&a)==0;b>>=1);return b}} +function $C(a){var b,c;c=heb(a.h);if(c==32){b=heb(a.m);return b==32?heb(a.l)+32:b+20-10}else{return c-12}} +function bkb(a){var b;b=a.a[a.b];if(b==null){return null}NC(a.a,a.b,null);a.b=a.b+1&a.a.length-1;return b} +function EDc(a){var b,c;b=a.t-a.k[a.o.p]*a.d+a.j[a.o.p]>a.f;c=a.u+a.e[a.o.p]*a.d>a.f*a.s*a.d;return b||c} +function Iwb(a,b,c){var d,e;d=new exb(b,c);e=new fxb;a.b=Gwb(a,a.b,d,e);e.b||++a.c;a.b.b=false;return e.d} +function djc(a,b,c){var d,e,f,g;g=CHc(b,c);f=0;for(e=g.Kc();e.Ob();){d=BD(e.Pb(),11);Rhb(a.c,d,meb(f++))}} +function xVb(a){var b,c;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);b.g.c=-b.g.c-b.g.b}sVb(a)} +function XDb(a){var b,c;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);b.d.c=-b.d.c-b.d.b}RDb(a)} +function AUd(a){var b;if(!a.c||(a.Bb&1)==0&&(a.c.Db&64)!=0){b=wId(a);JD(b,88)&&(a.c=BD(b,26))}return a.c} +function ZC(a){var b,c,d;b=~a.l+1&Eje;c=~a.m+(b==0?1:0)&Eje;d=~a.h+(b==0&&c==0?1:0)&Fje;a.l=b;a.m=c;a.h=d} +function l7c(a){var b,c,d,e,f;b=new d7c;for(d=a,e=0,f=d.length;e<f;++e){c=d[e];b.a+=c.a;b.b+=c.b}return b} +function nmb(a,b){mmb();var c,d,e,f,g;g=false;for(d=b,e=0,f=d.length;e<f;++e){c=d[e];g=g|a.Fc(c)}return g} +function w6c(a){i6c();var b,c;c=-1.7976931348623157E308;for(b=0;b<a.length;b++){a[b]>c&&(c=a[b])}return c} +function SHc(a,b,c){var d;d=new Rkb;UHc(a,b,d,(Ucd(),zcd),true,false);UHc(a,c,d,Tcd,false,false);return d} +function crd(a,b,c){var d,e,f,g;f=null;g=b;e=Ypd(g,'labels');d=new Hrd(a,c);f=(Dqd(d.a,d.b,e),e);return f} +function j1d(a,b,c,d){var e;e=r1d(a,b,c,d);if(!e){e=i1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function m1d(a,b,c,d){var e;e=s1d(a,b,c,d);if(!e){e=l1d(a,c,d);if(!!e&&!e1d(a,b,e)){return null}}return e} +function Xb(a,b){var c;for(c=0;c<a.a.a.length;c++){if(!BD($lb(a.a,c),169).Lb(b)){return false}}return true} +function Cb(a,b,c){Qb(b);if(c.Ob()){Mfb(b,Fb(c.Pb()));while(c.Ob()){Mfb(b,a.a);Mfb(b,Fb(c.Pb()))}}return b} +function qmb(a){mmb();var b,c,d;d=1;for(c=a.Kc();c.Ob();){b=c.Pb();d=31*d+(b!=null?tb(b):0);d=d|0}return d} +function WC(a,b,c,d,e){var f;f=lD(a,b);c&&ZC(f);if(e){a=YC(a,b);d?(QC=hD(a)):(QC=TC(a.l,a.m,a.h))}return f} +function Xzb(b,c){var d;try{c.Vd()}catch(a){a=ubb(a);if(JD(a,78)){d=a;b.c[b.c.length]=d}else throw vbb(a)}} +function jRb(a,b,c){var d,e;if(JD(b,144)&&!!c){d=BD(b,144);e=c;return a.a[d.b][e.b]+a.a[e.b][d.b]}return 0} +function xld(a,b){switch(b){case 7:return !!a.e&&a.e.i!=0;case 8:return !!a.d&&a.d.i!=0;}return Ykd(a,b)} +function YQb(a,b){switch(b.g){case 0:JD(a.b,631)||(a.b=new xRb);break;case 1:JD(a.b,632)||(a.b=new DRb);}} +function Ghe(a,b){while(a.g==null&&!a.c?Uud(a):a.g==null||a.i!=0&&BD(a.g[a.i-1],47).Ob()){Ord(b,Vud(a))}} +function kic(a,b,c){a.g=qic(a,b,(Ucd(),zcd),a.b);a.d=qic(a,c,zcd,a.b);if(a.g.c==0||a.d.c==0){return}nic(a)} +function lic(a,b,c){a.g=qic(a,b,(Ucd(),Tcd),a.j);a.d=qic(a,c,Tcd,a.j);if(a.g.c==0||a.d.c==0){return}nic(a)} +function $yc(a,b,c){return !WAb(JAb(new YAb(null,new Kub(a.c,16)),new Xxb(new dfd(b,c)))).sd((EAb(),DAb))} +function KAb(a){var b;Tzb(a);b=new NBb;if(a.a.sd(b)){return Atb(),new Ftb(uCb(b.a))}return Atb(),Atb(),ztb} +function nA(a){var b;if(a.b<=0){return false}b=hfb('MLydhHmsSDkK',wfb(bfb(a.c,0)));return b>1||b>=0&&a.b<3} +function w7c(a){var b,c,d;b=new s7c;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);St(b,0,new g7c(c))}return b} +function qVb(a){var b,c;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);b.f.$b()}LVb(a.b,a);rVb(a)} +function tb(a){return ND(a)?LCb(a):LD(a)?Hdb(a):KD(a)?(uCb(a),a)?1231:1237:ID(a)?a.Hb():MC(a)?FCb(a):rz(a)} +function rb(a){return ND(a)?ZI:LD(a)?BI:KD(a)?wI:ID(a)?a.gm:MC(a)?a.gm:a.gm||Array.isArray(a)&&GC(PH,1)||PH} +function j_c(a){switch(a.g){case 0:return new Q1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} +function S0c(a){switch(a.g){case 0:return new k1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} +function ekd(a,b,c){switch(b){case 0:!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0));cId(a.o,c);return;}yid(a,b,c)} +function XRc(a,b,c){this.g=a;this.e=new d7c;this.f=new d7c;this.d=new Psb;this.b=new Psb;this.a=b;this.c=c} +function PZc(a,b,c,d){this.b=new Rkb;this.n=new Rkb;this.i=d;this.j=c;this.s=a;this.t=b;this.r=0;this.d=0} +function nib(a){this.e=a;this.d=new Irb(this.e.g);this.a=this.d;this.b=kib(this);this.$modCount=a.$modCount} +function Pr(a){while(!a.d||!a.d.Ob()){if(!!a.b&&!akb(a.b)){a.d=BD(fkb(a.b),47)}else{return null}}return a.d} +function Xyc(a){Ekb(a.c,(Y1c(),W1c));if(Ky(a.a,Edb(ED(Ksd((dzc(),bzc)))))){return new Zed}return new _ed(a)} +function bRc(a){switch(a.g){case 1:return Sqe;default:case 2:return 0;case 3:return cme;case 4:return Tqe;}} +function Ife(){wfe();var a;if(dfe)return dfe;a=Afe(Kfe('M',true));a=Bfe(Kfe('M',false),a);dfe=a;return dfe} +function Awb(a,b){var c,d,e;e=a.b;while(e){c=a.a.ue(b,e.d);if(c==0){return e}d=c<0?0:1;e=e.a[d]}return null} +function Tyb(a,b,c){var d,e;d=(Bcb(),_Pb(c)?true:false);e=BD(b.xc(d),15);if(!e){e=new Rkb;b.zc(d,e)}e.Fc(c)} +function dYc(a,b){var c,d;c=BD(hkd(a,(lZc(),UYc)),19).a;d=BD(hkd(b,UYc),19).a;return c==d?-1:c<d?-1:c>d?1:0} +function NYb(a,b){if(OYb(a,b)){Rc(a.b,BD(vNb(b,(wtc(),Esc)),21),b);Dsb(a.a,b);return true}else{return false}} +function d3b(a){var b,c;b=BD(vNb(a,(wtc(),gtc)),10);if(b){c=b.c;Lkb(c.a,b);c.a.c.length==0&&Lkb(Q_b(b).b,c)}} +function syb(a){if(lyb){return KC(qL,tke,572,0,0,1)}return BD(Qkb(a.a,KC(qL,tke,572,a.a.c.length,0,1)),842)} +function mn(a,b,c,d){Vm();return new wx(OC(GC(CK,1),zie,42,0,[(Wj(a,b),new Wo(a,b)),(Wj(c,d),new Wo(c,d))]))} +function Dnd(a,b,c){var d,e;e=(d=new SSd,d);$nd(e,b,c);wtd((!a.q&&(a.q=new cUd(n5,a,11,10)),a.q),e);return e} +function Zmd(a){var b,c,d,e;e=icb(Rmd,a);c=e.length;d=KC(ZI,nie,2,c,6,1);for(b=0;b<c;++b){d[b]=e[b]}return d} +function l4c(a,b){var c,d,e,f,g;for(d=b,e=0,f=d.length;e<f;++e){c=d[e];g=new v4c(a);c.Qe(g);q4c(g)}Uhb(a.f)} +function hw(a,b){var c;if(b===a){return true}if(JD(b,224)){c=BD(b,224);return pb(a.Zb(),c.Zb())}return false} +function aub(a,b){var c;if(b*2+1>=a.b.c.length){return}aub(a,2*b+1);c=2*b+2;c<a.b.c.length&&aub(a,c);bub(a,b)} +function Ss(a,b,c){var d,e;this.g=a;this.c=b;this.a=this;this.d=this;e=Kp(c);d=KC(BG,Gie,330,e,0,1);this.b=d} +function whb(a,b,c){var d;for(d=c-1;d>=0&&a[d]===b[d];d--);return d<0?0:Gbb(xbb(a[d],Yje),xbb(b[d],Yje))?-1:1} +function UFc(a,b){var c,d;for(d=Jsb(a,0);d.b!=d.d.c;){c=BD(Xsb(d),214);if(c.e.length>0){b.td(c);c.i&&_Fc(c)}}} +function nzd(a,b){var c,d;d=BD(Ajd(a.a,4),126);c=KC($3,hve,415,b,0,1);d!=null&&$fb(d,0,c,0,d.length);return c} +function JEd(a,b){var c;c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,b);a.e!=null||(c.c=a);return c} +function Dc(a,b){var c,d;for(d=a.Zb().Cc().Kc();d.Ob();){c=BD(d.Pb(),14);if(c.Hc(b)){return true}}return false} +function oNb(a,b,c,d,e){var f,g;for(g=c;g<=e;g++){for(f=b;f<=d;f++){if(YMb(a,f,g)){return true}}}return false} +function Tt(a,b,c){var d,e,f,g;uCb(c);g=false;f=a.Zc(b);for(e=c.Kc();e.Ob();){d=e.Pb();f.Rb(d);g=true}return g} +function Dv(a,b){var c;if(a===b){return true}else if(JD(b,83)){c=BD(b,83);return Ax(Wm(a),c.vc())}return false} +function Nhb(a,b,c){var d,e;for(e=c.Kc();e.Ob();){d=BD(e.Pb(),42);if(a.re(b,d.dd())){return true}}return false} +function Hic(a,b,c){if(!a.d[b.p][c.p]){Gic(a,b,c);a.d[b.p][c.p]=true;a.d[c.p][b.p]=true}return a.a[b.p][c.p]} +function Itd(a,b){if(!a.ai()&&b==null){throw vbb(new Wdb("The 'no null' constraint is violated"))}return b} +function $Jd(a,b){if(a.D==null&&a.B!=null){a.D=a.B;a.B=null}jKd(a,b==null?null:(uCb(b),b));!!a.C&&a.yk(null)} +function XHc(a,b){var c;if(!a||a==b||!wNb(b,(wtc(),Psc))){return false}c=BD(vNb(b,(wtc(),Psc)),10);return c!=a} +function b4d(a){switch(a.i){case 2:{return true}case 1:{return false}case -1:{++a.c}default:{return a.pl()}}} +function c4d(a){switch(a.i){case -2:{return true}case -1:{return false}case 1:{--a.c}default:{return a.ql()}}} +function Xdb(a){Zy.call(this,'The given string does not match the expected format for individual spacings.',a)} +function pgd(){pgd=ccb;mgd=new qgd('ELK',0);ngd=new qgd('JSON',1);lgd=new qgd('DOT',2);ogd=new qgd('SVG',3)} +function pWc(){pWc=ccb;mWc=new rWc(ane,0);nWc=new rWc('RADIAL_COMPACTION',1);oWc=new rWc('WEDGE_COMPACTION',2)} +function Fyb(){Fyb=ccb;Cyb=new Gyb('CONCURRENT',0);Dyb=new Gyb('IDENTITY_FINISH',1);Eyb=new Gyb('UNORDERED',2)} +function nPb(){nPb=ccb;kPb=(cPb(),bPb);jPb=new Nsd(Tle,kPb);iPb=new Lsd(Ule);lPb=new Lsd(Vle);mPb=new Lsd(Wle)} +function Occ(){Occ=ccb;Mcc=new Zcc;Ncc=new _cc;Lcc=new bdc;Kcc=new fdc;Jcc=new jdc;Icc=(uCb(Jcc),new bpb)} +function tBc(){tBc=ccb;qBc=new uBc('CONSERVATIVE',0);rBc=new uBc('CONSERVATIVE_SOFT',1);sBc=new uBc('SLOPPY',2)} +function Zad(){Zad=ccb;Xad=new q0b(15);Wad=new Osd((Y9c(),f9c),Xad);Yad=C9c;Sad=s8c;Tad=Y8c;Vad=_8c;Uad=$8c} +function o7c(a,b,c){var d,e,f;d=new Psb;for(f=Jsb(c,0);f.b!=f.d.c;){e=BD(Xsb(f),8);Dsb(d,new g7c(e))}Tt(a,b,d)} +function r7c(a){var b,c,d;b=0;d=KC(m1,nie,8,a.b,0,1);c=Jsb(a,0);while(c.b!=c.d.c){d[b++]=BD(Xsb(c),8)}return d} +function $Pd(a){var b;b=(!a.a&&(a.a=new cUd(g5,a,9,5)),a.a);if(b.i!=0){return nQd(BD(qud(b,0),678))}return null} +function Ly(a,b){var c;c=wbb(a,b);if(Gbb(Vbb(a,b),0)|Ebb(Vbb(a,c),0)){return c}return wbb(rie,Vbb(Pbb(c,63),1))} +function Yyc(a,b){var c;c=Ksd((dzc(),bzc))!=null&&b.wg()!=null?Edb(ED(b.wg()))/Edb(ED(Ksd(bzc))):1;Rhb(a.b,b,c)} +function le(a,b){var c,d;c=BD(a.d.Bc(b),14);if(!c){return null}d=a.e.hc();d.Gc(c);a.e.d-=c.gc();c.$b();return d} +function AHc(a,b){var c,d;d=a.c[b];if(d==0){return}a.c[b]=0;a.d-=d;c=b+1;while(c<a.a.length){a.a[c]-=d;c+=c&-c}} +function rwb(a){var b;b=a.a.c.length;if(b>0){return _vb(b-1,a.a.c.length),Kkb(a.a,b-1)}else{throw vbb(new Jpb)}} +function C2c(a,b,c){if(b<0){throw vbb(new qcb(ese+b))}if(b<a.j.c.length){Nkb(a.j,b,c)}else{A2c(a,b);Ekb(a.j,c)}} +function oCb(a,b,c){if(a>b){throw vbb(new Wdb(xke+a+yke+b))}if(a<0||b>c){throw vbb(new scb(xke+a+zke+b+oke+c))}} +function j5c(a){if(!a.a||(a.a.i&8)==0){throw vbb(new Zdb('Enumeration class expected for layout option '+a.f))}} +function vud(a){var b;++a.j;if(a.i==0){a.g=null}else if(a.i<a.g.length){b=a.g;a.g=a.ri(a.i);$fb(b,0,a.g,0,a.i)}} +function hkb(a,b){var c,d;c=a.a.length-1;a.c=a.c-1&c;while(b!=a.c){d=b+1&c;NC(a.a,b,a.a[d]);b=d}NC(a.a,a.c,null)} +function ikb(a,b){var c,d;c=a.a.length-1;while(b!=a.b){d=b-1&c;NC(a.a,b,a.a[d]);b=d}NC(a.a,a.b,null);a.b=a.b+1&c} +function Fkb(a,b,c){var d,e;wCb(b,a.c.length);d=c.Pc();e=d.length;if(e==0){return false}bCb(a.c,b,d);return true} +function VEd(a){var b,c;if(a==null)return null;for(b=0,c=a.length;b<c;b++){if(!gFd(a[b]))return a[b]}return null} +function grb(a,b,c){var d,e,f,g;for(e=c,f=0,g=e.length;f<g;++f){d=e[f];if(a.b.re(b,d.cd())){return d}}return null} +function Hlb(a){var b,c,d,e,f;f=1;for(c=a,d=0,e=c.length;d<e;++d){b=c[d];f=31*f+(b!=null?tb(b):0);f=f|0}return f} +function as(a){var b,c,d,e,f;b={};for(d=a,e=0,f=d.length;e<f;++e){c=d[e];b[':'+(c.f!=null?c.f:''+c.g)]=c}return b} +function gr(a){var b;Qb(a);Mb(true,'numberToAdvance must be nonnegative');for(b=0;b<0&&Qr(a);b++){Rr(a)}return b} +function eDc(a){var b,c,d;d=0;for(c=new Sr(ur(a.a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);b.c.i==b.d.i||++d}return d} +function HZb(a,b){var c,d,e;c=a;e=0;do{if(c==b){return e}d=c.e;if(!d){throw vbb(new Vdb)}c=Q_b(d);++e}while(true)} +function w$c(a,b){var c,d,e;e=b-a.f;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),443);_Zc(c,c.e,c.f+e)}a.f=b} +function aRc(a,b,c){if($wnd.Math.abs(b-a)<Rqe||$wnd.Math.abs(c-a)<Rqe){return true}return b-a>Rqe?a-c>Rqe:c-a>Rqe} +function pHb(a,b){if(!a){return 0}if(b&&!a.j){return 0}if(JD(a,124)){if(BD(a,124).a.b==0){return 0}}return a.Re()} +function qHb(a,b){if(!a){return 0}if(b&&!a.k){return 0}if(JD(a,124)){if(BD(a,124).a.a==0){return 0}}return a.Se()} +function fhb(a){Hgb();if(a<0){if(a!=-1){return new Tgb(-1,-a)}return Bgb}else return a<=10?Dgb[QD(a)]:new Tgb(1,a)} +function xC(a){rC();throw vbb(new MB("Unexpected typeof result '"+a+"'; please report this bug to the GWT team"))} +function lz(a){jz();Py(this);Ry(this);this.e=a;Sy(this,a);this.g=a==null?Xhe:fcb(a);this.a='';this.b=a;this.a=''} +function F$c(){this.a=new G$c;this.f=new I$c(this);this.b=new K$c(this);this.i=new M$c(this);this.e=new O$c(this)} +function ss(){rs.call(this,new _rb(Cv(16)));Xj(2,mie);this.b=2;this.a=new Ms(null,null,0,null);As(this.a,this.a)} +function xzc(){xzc=ccb;uzc=new zzc('DUMMY_NODE_OVER',0);vzc=new zzc('DUMMY_NODE_UNDER',1);wzc=new zzc('EQUAL',2)} +function LUb(){LUb=ccb;JUb=Fx(OC(GC(t1,1),Kie,103,0,[(ead(),aad),bad]));KUb=Fx(OC(GC(t1,1),Kie,103,0,[dad,_9c]))} +function VQc(a){return (Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b} +function DOb(a){var b,c,d,e;d=a.b.a;for(c=d.a.ec().Kc();c.Ob();){b=BD(c.Pb(),561);e=new MPb(b,a.e,a.f);Ekb(a.g,e)}} +function yId(a,b){var c,d,e;d=a.nk(b,null);e=null;if(b){e=(LFd(),c=new UQd,c);NQd(e,a.r)}d=xId(a,e,d);!!d&&d.Fi()} +function VFc(a,b){var c,d;d=Cub(a.d,1)!=0;c=true;while(c){c=false;c=b.c.Tf(b.e,d);c=c|dGc(a,b,d,false);d=!d}$Fc(a)} +function wZc(a,b){var c,d,e;d=false;c=b.q.d;if(b.d<a.b){e=ZZc(b.q,a.b);if(b.q.d>e){$Zc(b.q,e);d=c!=b.q.d}}return d} +function PVc(a,b){var c,d,e,f,g,h,i,j;i=b.i;j=b.j;d=a.f;e=d.i;f=d.j;g=i-e;h=j-f;c=$wnd.Math.sqrt(g*g+h*h);return c} +function Rnd(a,b){var c,d;d=jid(a);if(!d){!And&&(And=new lUd);c=(IEd(),PEd(b));d=new s0d(c);wtd(d.Vk(),a)}return d} +function Sc(a,b){var c,d;c=BD(a.c.Bc(b),14);if(!c){return a.jc()}d=a.hc();d.Gc(c);a.d-=c.gc();c.$b();return a.mc(d)} +function j7c(a,b){var c;for(c=0;c<b.length;c++){if(a==(BCb(c,b.length),b.charCodeAt(c))){return true}}return false} +function E_b(a,b){var c;for(c=0;c<b.length;c++){if(a==(BCb(c,b.length),b.charCodeAt(c))){return true}}return false} +function hFd(a){var b,c;if(a==null)return false;for(b=0,c=a.length;b<c;b++){if(!gFd(a[b]))return false}return true} +function Ngb(a){var b;if(a.c!=0){return a.c}for(b=0;b<a.a.length;b++){a.c=a.c*33+(a.a[b]&-1)}a.c=a.c*a.e;return a.c} +function vkb(a){var b;sCb(a.a!=a.b);b=a.d.a[a.a];mkb(a.b==a.d.c&&b!=null);a.c=a.a;a.a=a.a+1&a.d.a.length-1;return b} +function phe(a){var b;if(!(a.c.c<0?a.a>=a.c.b:a.a<=a.c.b)){throw vbb(new utb)}b=a.a;a.a+=a.c.c;++a.b;return meb(b)} +function BWb(a){var b;b=new VWb(a);rXb(a.a,zWb,new amb(OC(GC(bQ,1),Uhe,369,0,[b])));!!b.d&&Ekb(b.f,b.d);return b.f} +function Z1b(a){var b;b=new q_b(a.a);tNb(b,a);yNb(b,(wtc(),$sc),a);b.o.a=a.g;b.o.b=a.f;b.n.a=a.i;b.n.b=a.j;return b} +function A9b(a,b,c,d){var e,f;for(f=a.Kc();f.Ob();){e=BD(f.Pb(),70);e.n.a=b.a+(d.a-e.o.a)/2;e.n.b=b.b;b.b+=e.o.b+c}} +function UDb(a,b,c){var d,e;for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);if(VDb(a,d,c)){return true}}return false} +function JDc(a){var b,c;for(c=new olb(a.r);c.a<c.c.c.length;){b=BD(mlb(c),10);if(a.n[b.p]<=0){return b}}return null} +function cVc(a){var b,c,d,e;e=new Tqb;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),33);b=fVc(c);ye(e,b)}return e} +function zFc(a){var b;b=k3c(xFc);BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Krc))&&e3c(b,(qUb(),nUb),(S8b(),H8b));return b} +function qKb(a,b,c){var d;d=new AJb(a,b);Rc(a.r,b.Hf(),d);if(c&&!tcd(a.u)){d.c=new aIb(a.d);Hkb(b.wf(),new tKb(d))}} +function ybb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(!isNaN(c)){return c}}return eD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b)} +function bFd(a,b){return b<a.length&&(BCb(b,a.length),a.charCodeAt(b)!=63)&&(BCb(b,a.length),a.charCodeAt(b)!=35)} +function Kic(a,b,c,d){var e,f;a.a=b;f=d?0:1;a.f=(e=new Iic(a.c,a.a,c,f),new jjc(c,a.a,e,a.e,a.b,a.c==(rGc(),pGc)))} +function Tmd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,1,e,b);!c?(c=d):c.Ei(d)}return c} +function GQd(a,b,c){var d,e;e=a.b;a.b=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,3,e,b);!c?(c=d):c.Ei(d)}return c} +function IQd(a,b,c){var d,e;e=a.f;a.f=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,0,e,b);!c?(c=d):c.Ei(d)}return c} +function xid(a,b){var c,d,e,f;f=(e=a?jid(a):null,q6d((d=b,e?e.Xk():null,d)));if(f==b){c=jid(a);!!c&&c.Xk()}return f} +function x6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function y6c(a,b){var c,d,e;e=1;c=a;d=b>=0?b:-b;while(d>0){if(d%2==0){c*=c;d=d/2|0}else{e*=c;d-=1}}return b<0?1/e:e} +function sAd(a){var b,c,d,e;if(a!=null){for(c=0;c<a.length;++c){b=a[c];if(b){BD(b.g,367);e=b.i;for(d=0;d<e;++d);}}}} +function YZc(a){var b,c,d;d=0;for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),187);d=$wnd.Math.max(d,b.g)}return d} +function eGc(a){var b,c,d;for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),214);b=c.c.Rf()?c.f:c.a;!!b&&mHc(b,c.j)}} +function hbd(){hbd=ccb;fbd=new ibd('INHERIT',0);ebd=new ibd('INCLUDE_CHILDREN',1);gbd=new ibd('SEPARATE_CHILDREN',2)} +function Jkd(a,b){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);return;case 2:Lkd(a,null);return;}fkd(a,b)} +function Dm(a){var b;switch(a.gc()){case 0:return hm;case 1:return new my(Qb(a.Xb(0)));default:b=a;return new ux(b);}} +function Vn(a){Ql();switch(a.gc()){case 0:return yx(),xx;case 1:return new oy(a.Kc().Pb());default:return new zx(a);}} +function Up(a){Ql();switch(a.c){case 0:return yx(),xx;case 1:return new oy(qr(new Gqb(a)));default:return new Tp(a);}} +function Hv(b,c){Qb(b);try{return b.xc(c)}catch(a){a=ubb(a);if(JD(a,205)||JD(a,173)){return null}else throw vbb(a)}} +function Iv(b,c){Qb(b);try{return b.Bc(c)}catch(a){a=ubb(a);if(JD(a,205)||JD(a,173)){return null}else throw vbb(a)}} +function Ck(b,c){Qb(b);try{return b.Hc(c)}catch(a){a=ubb(a);if(JD(a,205)||JD(a,173)){return false}else throw vbb(a)}} +function Dk(b,c){Qb(b);try{return b.Mc(c)}catch(a){a=ubb(a);if(JD(a,205)||JD(a,173)){return false}else throw vbb(a)}} +function Gv(b,c){Qb(b);try{return b._b(c)}catch(a){a=ubb(a);if(JD(a,205)||JD(a,173)){return false}else throw vbb(a)}} +function KXb(a,b){var c;if(a.a.c.length>0){c=BD(Ikb(a.a,a.a.c.length-1),570);if(NYb(c,b)){return}}Ekb(a.a,new PYb(b))} +function $gc(a){Hgc();var b,c;b=a.d.c-a.e.c;c=BD(a.g,145);Hkb(c.b,new shc(b));Hkb(c.c,new uhc(b));reb(c.i,new whc(b))} +function gic(a){var b;b=new Ufb;b.a+='VerticalSegment ';Pfb(b,a.e);b.a+=' ';Qfb(b,Eb(new Gb,new olb(a.k)));return b.a} +function u4c(a){var b;b=BD(Wrb(a.c.c,''),229);if(!b){b=new W3c(d4c(c4c(new e4c,''),'Other'));Xrb(a.c.c,'',b)}return b} +function qnd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (name: ';Efb(b,a.zb);b.a+=')';return b.a} +function Jnd(a,b,c){var d,e;e=a.sb;a.sb=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}return c} +function _ic(a,b){var c,d,e;c=0;for(e=V_b(a,b).Kc();e.Ob();){d=BD(e.Pb(),11);c+=vNb(d,(wtc(),gtc))!=null?1:0}return c} +function vPc(a,b,c){var d,e,f;d=0;for(f=Jsb(a,0);f.b!=f.d.c;){e=Edb(ED(Xsb(f)));if(e>c){break}else e>=b&&++d}return d} +function RTd(a,b,c){var d,e;d=new pSd(a.e,3,13,null,(e=b.c,e?e:(jGd(),YFd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function STd(a,b,c){var d,e;d=new pSd(a.e,4,13,(e=b.c,e?e:(jGd(),YFd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function zId(a,b,c){var d,e;e=a.r;a.r=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,8,e,a.r);!c?(c=d):c.Ei(d)}return c} +function o1d(a,b){var c,d;c=BD(b,676);d=c.vk();!d&&c.wk(d=JD(b,88)?new C1d(a,BD(b,26)):new O1d(a,BD(b,148)));return d} +function kud(a,b,c){var d;a.qi(a.i+1);d=a.oi(b,c);b!=a.i&&$fb(a.g,b,a.g,b+1,a.i-b);NC(a.g,b,d);++a.i;a.bi(b,c);a.ci()} +function vwb(a,b){var c;if(b.a){c=b.a.a.length;!a.a?(a.a=new Wfb(a.d)):Qfb(a.a,a.b);Ofb(a.a,b.a,b.d.length,c)}return a} +function __d(a,b){var c,d,e,f;b.vi(a.a);f=BD(Ajd(a.a,8),1936);if(f!=null){for(c=f,d=0,e=c.length;d<e;++d){null.jm()}}} +function TAb(a,b){var c;c=new NBb;if(!a.a.sd(c)){Tzb(a);return Atb(),Atb(),ztb}return Atb(),new Ftb(uCb(SAb(a,c.a,b)))} +function CHc(a,b){switch(b.g){case 2:case 1:return V_b(a,b);case 3:case 4:return Su(V_b(a,b));}return mmb(),mmb(),jmb} +function pb(a,b){return ND(a)?dfb(a,b):LD(a)?Fdb(a,b):KD(a)?(uCb(a),PD(a)===PD(b)):ID(a)?a.Fb(b):MC(a)?mb(a,b):qz(a,b)} +function r6d(a){return !a?null:(a.i&1)!=0?a==sbb?wI:a==WD?JI:a==VD?FI:a==UD?BI:a==XD?MI:a==rbb?UI:a==SD?xI:yI:a} +function Fhb(a,b,c,d,e){if(b==0||d==0){return}b==1?(e[d]=Hhb(e,c,d,a[0])):d==1?(e[b]=Hhb(e,a,b,c[0])):Ghb(a,c,e,b,d)} +function c6b(a,b){var c;if(a.c.length==0){return}c=BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193);Nlb(c,new o6b);_5b(c,b)} +function i6b(a,b){var c;if(a.c.length==0){return}c=BD(Qkb(a,KC(OQ,kne,10,a.c.length,0,1)),193);Nlb(c,new t6b);_5b(c,b)} +function Ekd(a,b,c,d){switch(b){case 1:return !a.n&&(a.n=new cUd(D2,a,1,7)),a.n;case 2:return a.k;}return bkd(a,b,c,d)} +function ead(){ead=ccb;cad=new iad(ole,0);bad=new iad(kle,1);aad=new iad(jle,2);_9c=new iad(vle,3);dad=new iad('UP',4)} +function RXb(){RXb=ccb;QXb=new SXb(ane,0);PXb=new SXb('INSIDE_PORT_SIDE_GROUPS',1);OXb=new SXb('FORCE_MODEL_ORDER',2)} +function xCb(a,b,c){if(a<0||b>c){throw vbb(new qcb(xke+a+zke+b+', size: '+c))}if(a>b){throw vbb(new Wdb(xke+a+yke+b))}} +function eid(a,b,c){if(b<0){vid(a,c)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Vj(a,a.yh(),b)}} +function Jlb(a,b,c,d,e,f,g,h){var i;i=c;while(f<g){i>=d||b<c&&h.ue(a[b],a[i])<=0?NC(e,f++,a[b++]):NC(e,f++,a[i++])}} +function yZb(a,b,c,d,e,f){this.e=new Rkb;this.f=(KAc(),JAc);Ekb(this.e,a);this.d=b;this.a=c;this.b=d;this.f=e;this.c=f} +function VOd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),26);if(PD(b)===PD(c)){return true}}return false} +function uJb(a){qJb();var b,c,d,e;for(c=wJb(),d=0,e=c.length;d<e;++d){b=c[d];if(Jkb(b.a,a,0)!=-1){return b}}return pJb} +function jFd(a){if(a>=65&&a<=70){return a-65+10}if(a>=97&&a<=102){return a-97+10}if(a>=48&&a<=57){return a-48}return 0} +function QHd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (source: ';Efb(b,a.d);b.a+=')';return b.a} +function OQd(a,b,c){var d,e;e=a.a;a.a=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,5,e,a.a);!c?(c=d):Qwd(c,d)}return c} +function BId(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,2,c,b))} +function eLd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function LPd(a,b){var c;c=(a.Bb&256)!=0;b?(a.Bb|=256):(a.Bb&=-257);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,8,c,b))} +function CId(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,3,c,b))} +function fLd(a,b){var c;c=(a.Bb&512)!=0;b?(a.Bb|=512):(a.Bb&=-513);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,9,c,b))} +function N7d(a,b){var c;if(a.b==-1&&!!a.a){c=a.a.Gj();a.b=!c?bLd(a.c.Tg(),a.a):a.c.Xg(a.a.aj(),c)}return a.c.Og(a.b,b)} +function meb(a){var b,c;if(a>-129&&a<128){b=a+128;c=(oeb(),neb)[b];!c&&(c=neb[b]=new _db(a));return c}return new _db(a)} +function Web(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Yeb(),Xeb)[b];!c&&(c=Xeb[b]=new Qeb(a));return c}return new Qeb(a)} +function L5b(a){var b,c;b=a.k;if(b==(j0b(),e0b)){c=BD(vNb(a,(wtc(),Hsc)),61);return c==(Ucd(),Acd)||c==Rcd}return false} +function i1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return r1d(a,d,b,c)}}return null} +function l1d(a,b,c){var d,e,f;f=(e=nUd(a.b,b),e);if(f){d=BD(V1d(p1d(a,f),''),26);if(d){return s1d(a,d,b,c)}}return null} +function cTd(a,b){var c,d;for(d=new Fyd(a);d.e!=d.i.gc();){c=BD(Dyd(d),138);if(PD(b)===PD(c)){return true}}return false} +function vtd(a,b,c){var d;d=a.gc();if(b>d)throw vbb(new Cyd(b,d));if(a.hi()&&a.Hc(c)){throw vbb(new Wdb(kue))}a.Xh(b,c)} +function iqd(a,b){var c;c=oo(a.i,b);if(c==null){throw vbb(new cqd('Node did not exist in input.'))}Yqd(b,c);return null} +function $hd(a,b){var c;c=YKd(a,b);if(JD(c,322)){return BD(c,34)}throw vbb(new Wdb(ite+b+"' is not a valid attribute"))} +function V2d(a,b,c){var d,e;e=JD(b,99)&&(BD(b,18).Bb&Tje)!=0?new s4d(b,a):new p4d(b,a);for(d=0;d<c;++d){d4d(e)}return e} +function ede(a){var b,c,d;d=0;c=a.length;for(b=0;b<c;b++){a[b]==32||a[b]==13||a[b]==10||a[b]==9||(a[d++]=a[b])}return d} +function lYb(a){var b,c,d;b=new Rkb;for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),594);Gkb(b,BD(c.jf(),14))}return b} +function SSc(a){var b,c,d;b=BD(vNb(a,(mTc(),gTc)),15);for(d=b.Kc();d.Ob();){c=BD(d.Pb(),188);Dsb(c.b.d,c);Dsb(c.c.b,c)}} +function b5b(a){switch(BD(vNb(a,(wtc(),Osc)),303).g){case 1:yNb(a,Osc,(esc(),bsc));break;case 2:yNb(a,Osc,(esc(),dsc));}} +function _Fc(a){var b;if(a.g){b=a.c.Rf()?a.f:a.a;bGc(b.a,a.o,true);bGc(b.a,a.o,false);yNb(a.o,(Nyc(),Vxc),(dcd(),Zbd))}} +function loc(a){var b;if(!a.a){throw vbb(new Zdb('Cannot offset an unassigned cut.'))}b=a.c-a.b;a.b+=b;noc(a,b);ooc(a,b)} +function ckb(a){var b;b=a.a[a.c-1&a.a.length-1];if(b==null){return null}a.c=a.c-1&a.a.length-1;NC(a.a,a.c,null);return b} +function zGb(a){var b,c;for(c=a.p.a.ec().Kc();c.Ob();){b=BD(c.Pb(),213);if(b.f&&a.b[b.c]<-1.0E-10){return b}}return null} +function bLb(a,b){switch(a.b.g){case 0:case 1:return b;case 2:case 3:return new J6c(b.d,0,b.a,b.b);default:return null;}} +function had(a){switch(a.g){case 2:return bad;case 1:return aad;case 4:return _9c;case 3:return dad;default:return cad;}} +function Vcd(a){switch(a.g){case 1:return Tcd;case 2:return Acd;case 3:return zcd;case 4:return Rcd;default:return Scd;}} +function Wcd(a){switch(a.g){case 1:return Rcd;case 2:return Tcd;case 3:return Acd;case 4:return zcd;default:return Scd;}} +function Xcd(a){switch(a.g){case 1:return zcd;case 2:return Rcd;case 3:return Tcd;case 4:return Acd;default:return Scd;}} +function DPc(a){switch(a){case 0:return new OPc;case 1:return new EPc;case 2:return new JPc;default:throw vbb(new Vdb);}} +function Kdb(a,b){if(a<b){return -1}if(a>b){return 1}if(a==b){return a==0?Kdb(1/a,1/b):0}return isNaN(a)?isNaN(b)?0:1:-1} +function f4b(a,b){Odd(b,'Sort end labels',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new q4b),new s4b),new u4b);Qdd(b)} +function Wxd(a,b,c){var d,e;if(a.ej()){e=a.fj();d=sud(a,b,c);a.$i(a.Zi(7,meb(c),d,b,e));return d}else{return sud(a,b,c)}} +function vAd(a,b){var c,d,e;if(a.d==null){++a.e;--a.f}else{e=b.cd();c=b.Sh();d=(c&Ohe)%a.d.length;KAd(a,d,xAd(a,d,c,e))}} +function ZId(a,b){var c;c=(a.Bb&zte)!=0;b?(a.Bb|=zte):(a.Bb&=-1025);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,10,c,b))} +function dJd(a,b){var c;c=(a.Bb&Rje)!=0;b?(a.Bb|=Rje):(a.Bb&=-4097);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,12,c,b))} +function eJd(a,b){var c;c=(a.Bb&Cve)!=0;b?(a.Bb|=Cve):(a.Bb&=-8193);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,15,c,b))} +function fJd(a,b){var c;c=(a.Bb&Dve)!=0;b?(a.Bb|=Dve):(a.Bb&=-2049);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,11,c,b))} +function jOb(a,b){var c;c=Kdb(a.b.c,b.b.c);if(c!=0){return c}c=Kdb(a.a.a,b.a.a);if(c!=0){return c}return Kdb(a.a.b,b.a.b)} +function jqd(a,b){var c;c=Ohb(a.k,b);if(c==null){throw vbb(new cqd('Port did not exist in input.'))}Yqd(b,c);return null} +function k6d(a){var b,c;for(c=l6d(bKd(a)).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b)){return uFd((tFd(),sFd),b)}}return null} +function n3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=0;c=BD(a.g,119);for(e=0;e<a.i;++e){d=c[e];g.rl(d.ak())&&++f}return f} +function Vsd(a,b,c){var d,e;d=BD(b.We(a.a),35);e=BD(c.We(a.a),35);return d!=null&&e!=null?Fcb(d,e):d!=null?-1:e!=null?1:0} +function ved(a,b,c){var d,e;if(a.c){Efd(a.c,b,c)}else{for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),157);ved(d,b,c)}}} +function RUb(a,b){var c,d;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),46);Lkb(a.b.b,c.b);fVb(BD(c.a,189),BD(c.b,81))}} +function tr(a){var b,c;c=Kfb(new Ufb,91);b=true;while(a.Ob()){b||(c.a+=She,c);b=false;Pfb(c,a.Pb())}return (c.a+=']',c).a} +function aJd(a,b){var c;c=(a.Bb&oie)!=0;b?(a.Bb|=oie):(a.Bb&=-16385);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,16,c,b))} +function MJd(a,b){var c;c=(a.Bb&ote)!=0;b?(a.Bb|=ote):(a.Bb&=-32769);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,18,c,b))} +function CUd(a,b){var c;c=(a.Bb&ote)!=0;b?(a.Bb|=ote):(a.Bb&=-32769);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,18,c,b))} +function EUd(a,b){var c;c=(a.Bb&Tje)!=0;b?(a.Bb|=Tje):(a.Bb&=-65537);(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new qSd(a,1,20,c,b))} +function Tee(a){var b;b=KC(TD,$ie,25,2,15,1);a-=Tje;b[0]=(a>>10)+Uje&aje;b[1]=(a&1023)+56320&aje;return zfb(b,0,b.length)} +function a_b(a){var b,c;c=BD(vNb(a,(Nyc(),Lwc)),103);if(c==(ead(),cad)){b=Edb(ED(vNb(a,owc)));return b>=1?bad:_9c}return c} +function rec(a){switch(BD(vNb(a,(Nyc(),Swc)),218).g){case 1:return new Fmc;case 3:return new wnc;default:return new zmc;}} +function Uzb(a){if(a.c){Uzb(a.c)}else if(a.d){throw vbb(new Zdb("Stream already terminated, can't be modified or used"))}} +function Mkd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (identifier: ';Efb(b,a.k);b.a+=')';return b.a} +function ctd(a,b,c){var d,e;d=(Fhd(),e=new xkd,e);vkd(d,b);wkd(d,c);!!a&&wtd((!a.a&&(a.a=new xMd(y2,a,5)),a.a),d);return d} +function ttb(a,b,c,d){var e,f;uCb(d);uCb(c);e=a.xc(b);f=e==null?c:Myb(BD(e,15),BD(c,14));f==null?a.Bc(b):a.zc(b,f);return f} +function pqb(a){var b,c,d,e;c=(b=BD(gdb((d=a.gm,e=d.f,e==CI?d:e)),9),new xqb(b,BD(_Bb(b,b.length),9),0));rqb(c,a);return c} +function hDc(a,b,c){var d,e;for(e=a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),10);if(Be(c,BD(Ikb(b,d.p),14))){return d}}return null} +function Db(b,c,d){var e;try{Cb(b,c,d)}catch(a){a=ubb(a);if(JD(a,597)){e=a;throw vbb(new ycb(e))}else throw vbb(a)}return c} +function Qbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a-b;if(Kje<c&&c<Ije){return c}}return zbb(nD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function wbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a+b;if(Kje<c&&c<Ije){return c}}return zbb(cD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function Ibb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a*b;if(Kje<c&&c<Ije){return c}}return zbb(gD(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b))} +function V_b(a,b){var c;a.i||N_b(a);c=BD(Mpb(a.g,b),46);return !c?(mmb(),mmb(),jmb):new Jib(a.j,BD(c.a,19).a,BD(c.b,19).a)} +function Drb(a,b,c){var d;d=a.a.get(b);a.a.set(b,c===undefined?null:c);if(d===undefined){++a.c;zpb(a.b)}else{++a.d}return d} +function kNb(a,b,c){a.n=IC(XD,[nie,Sje],[364,25],14,[c,QD($wnd.Math.ceil(b/32))],2);a.o=b;a.p=c;a.j=b-1>>1;a.k=c-1>>1} +function Gub(){zub();var a,b,c;c=yub+++Date.now();a=QD($wnd.Math.floor(c*lke))&nke;b=QD(c-a*mke);this.a=a^1502;this.b=b^kke} +function O_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a<d.c.c.length;){c=BD(mlb(d),11);Ekb(b,c.b)}return Qb(b),new sl(b)} +function R_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a<d.c.c.length;){c=BD(mlb(d),11);Ekb(b,c.e)}return Qb(b),new sl(b)} +function U_b(a){var b,c,d;b=new Rkb;for(d=new olb(a.j);d.a<d.c.c.length;){c=BD(mlb(d),11);Ekb(b,c.g)}return Qb(b),new sl(b)} +function n6d(a){var b,c;for(c=o6d(bKd(WId(a))).Kc();c.Ob();){b=GD(c.Pb());if(Dmd(a,b))return FFd((EFd(),DFd),b)}return null} +function wm(a){var b,c,d;for(c=0,d=a.length;c<d;c++){if(a[c]==null){throw vbb(new Heb('at index '+c))}}b=a;return new amb(b)} +function wid(a,b){var c;c=YKd(a.Tg(),b);if(JD(c,99)){return BD(c,18)}throw vbb(new Wdb(ite+b+"' is not a valid reference"))} +function Tdb(a){var b;b=Hcb(a);if(b>3.4028234663852886E38){return Pje}else if(b<-3.4028234663852886E38){return Qje}return b} +function aeb(a){a-=a>>1&1431655765;a=(a>>2&858993459)+(a&858993459);a=(a>>4)+a&252645135;a+=a>>8;a+=a>>16;return a&63} +function Ev(a){var b,c,d,e;b=new cq(a.Hd().gc());e=0;for(d=vr(a.Hd().Kc());d.Ob();){c=d.Pb();bq(b,c,meb(e++))}return fn(b.a)} +function Uyb(a,b){var c,d,e;e=new Lqb;for(d=b.vc().Kc();d.Ob();){c=BD(d.Pb(),42);Rhb(e,c.cd(),Yyb(a,BD(c.dd(),15)))}return e} +function EZc(a,b){a.n.c.length==0&&Ekb(a.n,new VZc(a.s,a.t,a.i));Ekb(a.b,b);QZc(BD(Ikb(a.n,a.n.c.length-1),211),b);GZc(a,b)} +function LFb(a){if(a.c!=a.b.b||a.i!=a.g.b){a.a.c=KC(SI,Uhe,1,0,5,1);Gkb(a.a,a.b);Gkb(a.a,a.g);a.c=a.b.b;a.i=a.g.b}return a.a} +function Ycc(a,b){var c,d,e;e=0;for(d=BD(b.Kb(a),20).Kc();d.Ob();){c=BD(d.Pb(),17);Ccb(DD(vNb(c,(wtc(),ltc))))||++e}return e} +function efc(a,b){var c,d,e;d=tgc(b);e=Edb(ED(pBc(d,(Nyc(),lyc))));c=$wnd.Math.max(0,e/2-0.5);cfc(b,c,1);Ekb(a,new Dfc(b,c))} +function Ctc(){Ctc=ccb;Btc=new Dtc(ane,0);xtc=new Dtc('FIRST',1);ytc=new Dtc(Gne,2);ztc=new Dtc('LAST',3);Atc=new Dtc(Hne,4)} +function Aad(){Aad=ccb;zad=new Bad(ole,0);xad=new Bad('POLYLINE',1);wad=new Bad('ORTHOGONAL',2);yad=new Bad('SPLINES',3)} +function zYc(){zYc=ccb;xYc=new AYc('ASPECT_RATIO_DRIVEN',0);yYc=new AYc('MAX_SCALE_DRIVEN',1);wYc=new AYc('AREA_DRIVEN',2)} +function Y$c(){Y$c=ccb;V$c=new Z$c('P1_STRUCTURE',0);W$c=new Z$c('P2_PROCESSING_ORDER',1);X$c=new Z$c('P3_EXECUTION',2)} +function tVc(){tVc=ccb;sVc=new uVc('OVERLAP_REMOVAL',0);qVc=new uVc('COMPACTION',1);rVc=new uVc('GRAPH_SIZE_CALCULATION',2)} +function Jy(a,b){Iy();return My(Qie),$wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:a<b?-1:a>b?1:Ny(isNaN(a),isNaN(b))} +function yOc(a,b){var c,d;c=Jsb(a,0);while(c.b!=c.d.c){d=Gdb(ED(Xsb(c)));if(d==b){return}else if(d>b){Ysb(c);break}}Vsb(c,b)} +function t4c(a,b){var c,d,e,f,g;c=b.f;Xrb(a.c.d,c,b);if(b.g!=null){for(e=b.g,f=0,g=e.length;f<g;++f){d=e[f];Xrb(a.c.e,d,b)}}} +function Ilb(a,b,c,d){var e,f,g;for(e=b+1;e<c;++e){for(f=e;f>b&&d.ue(a[f-1],a[f])>0;--f){g=a[f];NC(a,f,a[f-1]);NC(a,f-1,g)}}} +function did(a,b,c,d){if(b<0){uid(a,c,d)}else{if(!c.Ij()){throw vbb(new Wdb(ite+c.ne()+jte))}BD(c,66).Nj().Tj(a,a.yh(),b,d)}} +function xFb(a,b){if(b==a.d){return a.e}else if(b==a.e){return a.d}else{throw vbb(new Wdb('Node '+b+' not part of edge '+a))}} +function iEb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function GVb(a,b){switch(b.g){case 2:return a.b;case 1:return a.c;case 4:return a.d;case 3:return a.a;default:return false;}} +function Xkd(a,b,c,d){switch(b){case 3:return a.f;case 4:return a.g;case 5:return a.i;case 6:return a.j;}return Ekd(a,b,c,d)} +function Ljc(a){if(a.k!=(j0b(),h0b)){return false}return FAb(new YAb(null,new Lub(new Sr(ur(U_b(a).a.Kc(),new Sq)))),new Mjc)} +function MEd(a){if(a.e==null){return a}else !a.c&&(a.c=new NEd((a.f&256)!=0,a.i,a.a,a.d,(a.f&16)!=0,a.j,a.g,null));return a.c} +function VC(a,b){if(a.h==Gje&&a.m==0&&a.l==0){b&&(QC=TC(0,0,0));return SC((wD(),uD))}b&&(QC=TC(a.l,a.m,a.h));return TC(0,0,0)} +function fcb(a){var b;if(Array.isArray(a)&&a.im===gcb){return hdb(rb(a))+'@'+(b=tb(a)>>>0,b.toString(16))}return a.toString()} +function Rpb(a){var b;this.a=(b=BD(a.e&&a.e(),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.b=KC(SI,Uhe,1,this.a.a.length,5,1)} +function _Ob(a){var b,c,d;this.a=new zsb;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),14);b=new MOb;GOb(b,c);Qqb(this.a,b)}} +function cKb(a){$Jb();var b,c,d,e;b=a.o.b;for(d=BD(BD(Qc(a.r,(Ucd(),Rcd)),21),84).Kc();d.Ob();){c=BD(d.Pb(),111);e=c.e;e.b+=b}} +function ag(a){var b;if(a.b){ag(a.b);if(a.b.d!=a.c){throw vbb(new Apb)}}else if(a.d.dc()){b=BD(a.f.c.xc(a.e),14);!!b&&(a.d=b)}} +function fFd(a){var b;if(a==null)return true;b=a.length;return b>0&&(BCb(b-1,a.length),a.charCodeAt(b-1)==58)&&!OEd(a,CEd,DEd)} +function OEd(a,b,c){var d,e;for(d=0,e=a.length;d<e;d++){if(_Ed((BCb(d,a.length),a.charCodeAt(d)),b,c))return true}return false} +function JOb(a,b){var c,d;for(d=a.e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),266);if(t6c(b,c.d)||o6c(b,c.d)){return true}}return false} +function Q9b(a,b){var c,d,e;d=N9b(a,b);e=d[d.length-1]/2;for(c=0;c<d.length;c++){if(d[c]>=e){return b.c+c}}return b.c+b.b.gc()} +function NCd(a,b){LCd();var c,d,e,f;d=KLd(a);e=b;Klb(d,0,d.length,e);for(c=0;c<d.length;c++){f=MCd(a,d[c],c);c!=f&&Wxd(a,c,f)}} +function EHb(a,b){var c,d,e,f,g,h;d=0;c=0;for(f=b,g=0,h=f.length;g<h;++g){e=f[g];if(e>0){d+=e;++c}}c>1&&(d+=a.d*(c-1));return d} +function Htd(a){var b,c,d;d=new Hfb;d.a+='[';for(b=0,c=a.gc();b<c;){Efb(d,xfb(a.ki(b)));++b<c&&(d.a+=She,d)}d.a+=']';return d.a} +function fsd(a){var b,c,d,e,f;f=hsd(a);c=Fhe(a.c);d=!c;if(d){e=new wB;cC(f,'knownLayouters',e);b=new qsd(e);reb(a.c,b)}return f} +function Ce(a,b){var c,d,e;uCb(b);c=false;for(d=new olb(a);d.a<d.c.c.length;){e=mlb(d);if(ze(b,e,false)){nlb(d);c=true}}return c} +function UGb(a){var b,c,d;d=Edb(ED(a.a.We((Y9c(),Q9c))));for(c=new olb(a.a.xf());c.a<c.c.c.length;){b=BD(mlb(c),680);XGb(a,b,d)}} +function MUb(a,b){var c,d;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),46);Ekb(a.b.b,BD(c.b,81));eVb(BD(c.a,189),BD(c.b,81))}} +function XCc(a,b,c){var d,e;e=a.a.b;for(d=e.c.length;d<c;d++){Dkb(e,0,new H1b(a.a))}$_b(b,BD(Ikb(e,e.c.length-c),29));a.b[b.p]=c} +function JTb(a,b,c){var d;d=c;!d&&(d=Ydd(new Zdd,0));Odd(d,Vme,2);qZb(a.b,b,Udd(d,1));LTb(a,b,Udd(d,1));_Yb(b,Udd(d,1));Qdd(d)} +function eKc(a,b,c,d,e){FJc();AFb(DFb(CFb(BFb(EFb(new FFb,0),e.d.e-a),b),e.d));AFb(DFb(CFb(BFb(EFb(new FFb,0),c-e.a.e),e.a),d))} +function e$c(a,b,c,d,e,f){this.a=a;this.c=b;this.b=c;this.f=d;this.d=e;this.e=f;this.c>0&&this.b>0&&q$c(this.c,this.b,this.a)} +function ezc(a){dzc();this.c=Ou(OC(GC(h0,1),Uhe,831,0,[Uyc]));this.b=new Lqb;this.a=a;Rhb(this.b,bzc,1);Hkb(czc,new Xed(this))} +function I2c(a,b){var c;if(a.d){if(Mhb(a.b,b)){return BD(Ohb(a.b,b),51)}else{c=b.Kf();Rhb(a.b,b,c);return c}}else{return b.Kf()}} +function Kgb(a,b){var c;if(PD(a)===PD(b)){return true}if(JD(b,91)){c=BD(b,91);return a.e==c.e&&a.d==c.d&&Lgb(a,c.a)}return false} +function Zcd(a){Ucd();switch(a.g){case 4:return Acd;case 1:return zcd;case 3:return Rcd;case 2:return Tcd;default:return Scd;}} +function Ykd(a,b){switch(b){case 3:return a.f!=0;case 4:return a.g!=0;case 5:return a.i!=0;case 6:return a.j!=0;}return Hkd(a,b)} +function gWc(a){switch(a.g){case 0:return new FXc;case 1:return new IXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function QUc(a){switch(a.g){case 0:return new CXc;case 1:return new MXc;default:throw vbb(new Wdb(Dne+(a.f!=null?a.f:''+a.g)));}} +function b1c(a){switch(a.g){case 0:return new s1c;case 1:return new w1c;default:throw vbb(new Wdb(Mre+(a.f!=null?a.f:''+a.g)));}} +function qWc(a){switch(a.g){case 1:return new SVc;case 2:return new KVc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function ryb(a){var b,c;if(a.b){return a.b}c=lyb?null:a.d;while(c){b=lyb?null:c.b;if(b){return b}c=lyb?null:c.d}return $xb(),Zxb} +function hhb(a){var b,c,d;if(a.e==0){return 0}b=a.d<<5;c=a.a[a.d-1];if(a.e<0){d=Mgb(a);if(d==a.d-1){--c;c=c|0}}b-=heb(c);return b} +function bhb(a){var b,c,d;if(a<Fgb.length){return Fgb[a]}c=a>>5;b=a&31;d=KC(WD,oje,25,c+1,15,1);d[c]=1<<b;return new Vgb(1,c+1,d)} +function O2b(a){var b,c,d;c=a.zg();if(c){b=a.Ug();if(JD(b,160)){d=O2b(BD(b,160));if(d!=null){return d+'.'+c}}return c}return null} +function ze(a,b,c){var d,e;for(e=a.Kc();e.Ob();){d=e.Pb();if(PD(b)===PD(d)||b!=null&&pb(b,d)){c&&e.Qb();return true}}return false} +function zvd(a,b,c){var d,e;++a.j;if(c.dc()){return false}else{for(e=c.Kc();e.Ob();){d=e.Pb();a.Hi(b,a.oi(b,d));++b}return true}} +function yA(a,b,c,d){var e,f;f=c-b;if(f<3){while(f<3){a*=10;++f}}else{e=1;while(f>3){e*=10;--f}a=(a+(e>>1))/e|0}d.i=a;return true} +function XUb(a){LUb();return Bcb(),GVb(BD(a.a,81).j,BD(a.b,103))||BD(a.a,81).d.e!=0&&GVb(BD(a.a,81).j,BD(a.b,103))?true:false} +function s3c(a){p3c();if(BD(a.We((Y9c(),b9c)),174).Hc((Idd(),Gdd))){BD(a.We(x9c),174).Fc((rcd(),qcd));BD(a.We(b9c),174).Mc(Gdd)}} +function Gxd(a,b){var c,d;if(!b){return false}else{for(c=0;c<a.i;++c){d=BD(a.g[c],366);if(d.Di(b)){return false}}return wtd(a,b)}} +function pvd(a){var b,c,d,e;b=new wB;for(e=new Dnb(a.b.Kc());e.b.Ob();){d=BD(e.b.Pb(),686);c=lsd(d);uB(b,b.a.length,c)}return b.a} +function cLb(a){var b;!a.c&&(a.c=new VKb);Okb(a.d,new jLb);_Kb(a);b=UKb(a);MAb(new YAb(null,new Kub(a.d,16)),new CLb(a));return b} +function mKd(a){var b;if((a.Db&64)!=0)return qnd(a);b=new Jfb(qnd(a));b.a+=' (instanceClassName: ';Efb(b,a.D);b.a+=')';return b.a} +function Pqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new bsd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new csd(a);imd(d.a,(uCb(f),f))}} +function Eqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new Yrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new _rd(a);pmd(d.a,(uCb(f),f))}} +function bLd(a,b){var c,d,e;c=(a.i==null&&TKd(a),a.i);d=b.aj();if(d!=-1){for(e=c.length;d<e;++d){if(c[d]==b){return d}}}return -1} +function tNd(a){var b,c,d,e,f;c=BD(a.g,674);for(d=a.i-1;d>=0;--d){b=c[d];for(e=0;e<d;++e){f=c[e];if(uNd(a,b,f)){tud(a,d);break}}}} +function jCb(b){var c=b.e;function d(a){if(!a||a.length==0){return ''}return '\t'+a.join('\n\t')} +return c&&(c.stack||d(b[Yie]))} +function nm(a){im();var b;b=a.Pc();switch(b.length){case 0:return hm;case 1:return new my(Qb(b[0]));default:return new ux(wm(b));}} +function W_b(a,b){switch(b.g){case 1:return Nq(a.j,(z0b(),u0b));case 2:return Nq(a.j,(z0b(),w0b));default:return mmb(),mmb(),jmb;}} +function $kd(a,b){switch(b){case 3:ald(a,0);return;case 4:cld(a,0);return;case 5:dld(a,0);return;case 6:eld(a,0);return;}Jkd(a,b)} +function dzc(){dzc=ccb;Vyc();bzc=(Nyc(),vyc);czc=Ou(OC(GC(Q3,1),zqe,146,0,[kyc,lyc,nyc,oyc,ryc,syc,tyc,uyc,xyc,zyc,myc,pyc,wyc]))} +function Y9b(a){var b,c;b=a.d==(Apc(),vpc);c=U9b(a);b&&!c||!b&&c?yNb(a.a,(Nyc(),mwc),(F7c(),D7c)):yNb(a.a,(Nyc(),mwc),(F7c(),C7c))} +function XAb(a,b){var c;c=BD(GAb(a,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);return c.Qc(aBb(c.gc()))} +function Ded(){Ded=ccb;Ced=new Eed('SIMPLE',0);zed=new Eed('GROUP_DEC',1);Bed=new Eed('GROUP_MIXED',2);Aed=new Eed('GROUP_INC',3)} +function CWd(){CWd=ccb;AWd=new DWd;tWd=new GWd;uWd=new JWd;vWd=new MWd;wWd=new PWd;xWd=new SWd;yWd=new VWd;zWd=new YWd;BWd=new _Wd} +function FHb(a,b,c){tHb();oHb.call(this);this.a=IC(oN,[nie,ile],[595,212],0,[sHb,rHb],2);this.c=new I6c;this.g=a;this.f=b;this.d=c} +function pNb(a,b){this.n=IC(XD,[nie,Sje],[364,25],14,[b,QD($wnd.Math.ceil(a/32))],2);this.o=a;this.p=b;this.j=a-1>>1;this.k=b-1>>1} +function r3b(a,b){Odd(b,'End label post-processing',1);MAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new w3b),new y3b),new A3b);Qdd(b)} +function NLc(a,b,c){var d,e;d=Edb(a.p[b.i.p])+Edb(a.d[b.i.p])+b.n.b+b.a.b;e=Edb(a.p[c.i.p])+Edb(a.d[c.i.p])+c.n.b+c.a.b;return e-d} +function xhb(a,b,c){var d,e;d=xbb(c,Yje);for(e=0;ybb(d,0)!=0&&e<b;e++){d=wbb(d,xbb(a[e],Yje));a[e]=Tbb(d);d=Obb(d,32)}return Tbb(d)} +function $Ed(a){var b,c,d,e;e=0;for(c=0,d=a.length;c<d;c++){b=(BCb(c,a.length),a.charCodeAt(c));b<64&&(e=Mbb(e,Nbb(1,b)))}return e} +function S9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function T9d(a){var b;return a==null?null:new Ygb((b=Qge(a,true),b.length>0&&(BCb(0,b.length),b.charCodeAt(0)==43)?b.substr(1):b))} +function xud(a,b){var c;if(a.i>0){if(b.length<a.i){c=izd(rb(b).c,a.i);b=c}$fb(a.g,0,b,0,a.i)}b.length>a.i&&NC(b,a.i,null);return b} +function Sxd(a,b,c){var d,e,f;if(a.ej()){d=a.i;f=a.fj();kud(a,d,b);e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{kud(a,a.i,b)}return c} +function HMd(a,b,c){var d,e;d=new pSd(a.e,4,10,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),null,HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function GMd(a,b,c){var d,e;d=new pSd(a.e,3,10,null,(e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)),HLd(a,b),false);!c?(c=d):c.Ei(d);return c} +function _Jb(a){$Jb();var b;b=new g7c(BD(a.e.We((Y9c(),_8c)),8));if(a.B.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b} +function Lzc(a){Izc();var b;(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Cxc))?(b=BD(vNb(a,Cxc),197)):(b=BD(vNb(Q_b(a),Dxc),197));return b} +function pBc(a,b){var c,d;d=null;if(wNb(a,(Nyc(),qyc))){c=BD(vNb(a,qyc),94);c.Xe(b)&&(d=c.We(b))}d==null&&(d=vNb(Q_b(a),b));return d} +function Ze(a,b){var c,d,e;if(JD(b,42)){c=BD(b,42);d=c.cd();e=Hv(a.Rc(),d);return Hb(e,c.dd())&&(e!=null||a.Rc()._b(d))}return false} +function qAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=xAd(a,e,d,b);return c!=-1}else{return false}} +function AAd(a,b){var c,d,e;if(a.f>0){a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){return c.dd()}}return null} +function R2d(a,b){var c,d,e,f;f=S6d(a.e.Tg(),b);c=BD(a.g,119);for(e=0;e<a.i;++e){d=c[e];if(f.rl(d.ak())){return false}}return true} +function B6d(a){if(a.b==null){while(a.a.Ob()){a.b=a.a.Pb();if(!BD(a.b,49).Zg()){return true}}a.b=null;return false}else{return true}} +function Myd(b,c){b.mj();try{b.d.Vc(b.e++,c);b.f=b.d.j;b.g=-1}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}} +function IA(a,b){GA();var c,d;c=LA((KA(),KA(),JA));d=null;b==c&&(d=BD(Phb(FA,a),615));if(!d){d=new HA(a);b==c&&Shb(FA,a,d)}return d} +function Epb(a,b){var c,d;a.a=wbb(a.a,1);a.c=$wnd.Math.min(a.c,b);a.b=$wnd.Math.max(a.b,b);a.d+=b;c=b-a.f;d=a.e+c;a.f=d-a.e-c;a.e=d} +function ogb(a,b){var c;a.c=b;a.a=hhb(b);a.a<54&&(a.f=(c=b.d>1?Mbb(Nbb(b.a[1],32),xbb(b.a[0],Yje)):xbb(b.a[0],Yje),Sbb(Ibb(b.e,c))))} +function Hbb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a%b;if(Kje<c&&c<Ije){return c}}return zbb((UC(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b,true),QC))} +function p5b(a,b){var c;m5b(b);c=BD(vNb(a,(Nyc(),Rwc)),276);!!c&&yNb(a,Rwc,Tqc(c));n5b(a.c);n5b(a.f);o5b(a.d);o5b(BD(vNb(a,wxc),207))} +function rHc(a){this.e=KC(WD,oje,25,a.length,15,1);this.c=KC(sbb,dle,25,a.length,16,1);this.b=KC(sbb,dle,25,a.length,16,1);this.f=0} +function BDc(a){var b,c;a.j=KC(UD,Vje,25,a.p.c.length,15,1);for(c=new olb(a.p);c.a<c.c.c.length;){b=BD(mlb(c),10);a.j[b.p]=b.o.b/a.i}} +function yic(a){var b;if(a.c==0){return}b=BD(Ikb(a.a,a.b),287);b.b==1?(++a.b,a.b<a.a.c.length&&Cic(BD(Ikb(a.a,a.b),287))):--b.b;--a.c} +function eac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(U_b(b).a.Kc(),new Sq))),17).d.i;b.k==(j0b(),g0b)&&Ekb(a.e,b)}while(b.k==(j0b(),g0b))} +function idd(){idd=ccb;fdd=new q0b(15);edd=new Osd((Y9c(),f9c),fdd);hdd=new Osd(T9c,15);gdd=new Osd(E9c,meb(0));ddd=new Osd(r8c,tme)} +function tdd(){tdd=ccb;rdd=new udd('PORTS',0);sdd=new udd('PORT_LABELS',1);qdd=new udd('NODE_LABELS',2);pdd=new udd('MINIMUM_SIZE',3)} +function Ree(a,b){var c,d;d=b.length;for(c=0;c<d;c+=2)Ufe(a,(BCb(c,b.length),b.charCodeAt(c)),(BCb(c+1,b.length),b.charCodeAt(c+1)))} +function _Zc(a,b,c){var d,e,f,g;f=b-a.e;g=c-a.f;for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),187);OZc(d,d.s+f,d.t+g)}a.e=b;a.f=c} +function jUc(a,b){var c,d,e,f;f=b.b.b;a.a=new Psb;a.b=KC(WD,oje,25,f,15,1);c=0;for(e=Jsb(b.b,0);e.b!=e.d.c;){d=BD(Xsb(e),86);d.g=c++}} +function ihb(a,b){var c,d,e,f;c=b>>5;b&=31;e=a.d+c+(b==0?0:1);d=KC(WD,oje,25,e,15,1);jhb(d,a.a,c,b);f=new Vgb(a.e,e,d);Jgb(f);return f} +function Ofe(a,b,c){var d,e;d=BD(Phb(Zee,b),117);e=BD(Phb($ee,b),117);if(c){Shb(Zee,a,d);Shb($ee,a,e)}else{Shb($ee,a,d);Shb(Zee,a,e)}} +function Cwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d>=0){f=f.a[1]}else{e=f;f=f.a[0]}}return e} +function Dwb(a,b,c){var d,e,f;e=null;f=a.b;while(f){d=a.a.ue(b,f.d);if(c&&d==0){return f}if(d<=0){f=f.a[0]}else{e=f;f=f.a[1]}}return e} +function Nic(a,b,c,d){var e,f,g;e=false;if(fjc(a.f,c,d)){ijc(a.f,a.a[b][c],a.a[b][d]);f=a.a[b];g=f[d];f[d]=f[c];f[c]=g;e=true}return e} +function QHc(a,b,c,d,e){var f,g,h;g=e;while(b.b!=b.c){f=BD(fkb(b),10);h=BD(V_b(f,d).Xb(0),11);a.d[h.p]=g++;c.c[c.c.length]=h}return g} +function hBc(a,b,c){var d,e,f,g,h;g=a.k;h=b.k;d=c[g.g][h.g];e=ED(pBc(a,d));f=ED(pBc(b,d));return $wnd.Math.max((uCb(e),e),(uCb(f),f))} +function zZc(a,b,c){var d,e,f,g;d=c/a.c.length;e=0;for(g=new olb(a);g.a<g.c.c.length;){f=BD(mlb(g),200);w$c(f,f.f+d*e);t$c(f,b,d);++e}} +function hnc(a,b,c){var d,e,f,g;e=BD(Ohb(a.b,c),177);d=0;for(g=new olb(b.j);g.a<g.c.c.length;){f=BD(mlb(g),113);e[f.d.p]&&++d}return d} +function mzd(a){var b,c;b=BD(Ajd(a.a,4),126);if(b!=null){c=KC($3,hve,415,b.length,0,1);$fb(b,0,c,0,b.length);return c}else{return jzd}} +function Cz(){var a;if(xz!=0){a=sz();if(a-yz>2000){yz=a;zz=$wnd.setTimeout(Iz,10)}}if(xz++==0){Lz((Kz(),Jz));return true}return false} +function wCc(a,b){var c,d,e;for(d=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=c.d.i;if(e.c==b){return false}}return true} +function Ek(b,c){var d,e;if(JD(c,245)){e=BD(c,245);try{d=b.vd(e);return d==0}catch(a){a=ubb(a);if(!JD(a,205))throw vbb(a)}}return false} +function Xz(){if(Error.stackTraceLimit>0){$wnd.Error.stackTraceLimit=Error.stackTraceLimit=64;return true}return 'stack' in new Error} +function BDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:a<b?-1:a>b?1:Ny(isNaN(a),isNaN(b)))>0} +function DDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:a<b?-1:a>b?1:Ny(isNaN(a),isNaN(b)))<0} +function CDb(a,b){return Iy(),Iy(),My(Qie),($wnd.Math.abs(a-b)<=Qie||a==b||isNaN(a)&&isNaN(b)?0:a<b?-1:a>b?1:Ny(isNaN(a),isNaN(b)))<=0} +function ydb(a,b){var c=0;while(!b[c]||b[c]==''){c++}var d=b[c++];for(;c<b.length;c++){if(!b[c]||b[c]==''){continue}d+=a+b[c]}return d} +function zfb(a,b,c){var d,e,f,g;f=b+c;ACb(b,f,a.length);g='';for(e=b;e<f;){d=$wnd.Math.min(e+10000,f);g+=vfb(a.slice(e,d));e=d}return g} +function N9d(a){var b,c,d,e,f;if(a==null)return null;f=new Rkb;for(c=Zmd(a),d=0,e=c.length;d<e;++d){b=c[d];Ekb(f,Qge(b,true))}return f} +function Q9d(a){var b,c,d,e,f;if(a==null)return null;f=new Rkb;for(c=Zmd(a),d=0,e=c.length;d<e;++d){b=c[d];Ekb(f,Qge(b,true))}return f} +function R9d(a){var b,c,d,e,f;if(a==null)return null;f=new Rkb;for(c=Zmd(a),d=0,e=c.length;d<e;++d){b=c[d];Ekb(f,Qge(b,true))}return f} +function ted(a,b){var c,d,e;if(a.c){cld(a.c,b)}else{c=b-red(a);for(e=new olb(a.d);e.a<e.c.c.length;){d=BD(mlb(e),157);ted(d,red(d)+c)}}} +function sed(a,b){var c,d,e;if(a.c){ald(a.c,b)}else{c=b-qed(a);for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),157);sed(d,qed(d)+c)}}} +function t6d(a,b){var c,d,e,f;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=d.Pb();f=s6d(a,BD(c,56));!!f&&(e.c[e.c.length]=f,true)}return e} +function LAd(a,b){var c,d,e;a.qj();d=b==null?0:tb(b);e=(d&Ohe)%a.d.length;c=wAd(a,e,d,b);if(c){JAd(a,c);return c.dd()}else{return null}} +function rde(a){var b,c;c=sde(a);b=null;while(a.c==2){nde(a);if(!b){b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,c);c=b}c.$l(sde(a))}return c} +function Wpd(a){var b,c,d;d=null;b=Vte in a.a;c=!b;if(c){throw vbb(new cqd('Every element must have an id.'))}d=Vpd(aC(a,Vte));return d} +function jid(a){var b,c,d;d=a.Zg();if(!d){b=0;for(c=a.eh();c;c=c.eh()){if(++b>Wje){return c.fh()}d=c.Zg();if(!!d||c==a){break}}}return d} +function fvd(a){evd();if(JD(a,156)){return BD(Ohb(cvd,hK),288).vg(a)}if(Mhb(cvd,rb(a))){return BD(Ohb(cvd,rb(a)),288).vg(a)}return null} +function fZd(a){if(efb(kse,a)){return Bcb(),Acb}else if(efb(lse,a)){return Bcb(),zcb}else{throw vbb(new Wdb('Expecting true or false'))}} +function uDc(a,b){if(b.c==a){return b.d}else if(b.d==a){return b.c}throw vbb(new Wdb('Input edge is not connected to the input port.'))} +function Igb(a,b){if(a.e>b.e){return 1}if(a.e<b.e){return -1}if(a.d>b.d){return a.e}if(a.d<b.d){return -b.e}return a.e*whb(a.a,b.a,a.d)} +function Zcb(a){if(a>=48&&a<48+$wnd.Math.min(10,10)){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1} +function Ue(a,b){var c;if(PD(b)===PD(a)){return true}if(!JD(b,21)){return false}c=BD(b,21);if(c.gc()!=a.gc()){return false}return a.Ic(c)} +function ekb(a,b){var c,d,e,f;d=a.a.length-1;c=b-a.b&d;f=a.c-b&d;e=a.c-a.b&d;mkb(c<e);if(c>=f){hkb(a,b);return -1}else{ikb(a,b);return 1}} +function lA(a,b){var c,d;c=(BCb(b,a.length),a.charCodeAt(b));d=b+1;while(d<a.length&&(BCb(d,a.length),a.charCodeAt(d)==c)){++d}return d-b} +function sJb(a){switch(a.g){case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:return true;default:return false;}} +function bC(f,a){var b=f.a;var c;a=String(a);b.hasOwnProperty(a)&&(c=b[a]);var d=(rC(),qC)[typeof c];var e=d?d(c):xC(typeof c);return e} +function b3c(a,b){if(a.a<0){throw vbb(new Zdb('Did not call before(...) or after(...) before calling add(...).'))}i3c(a,a.a,b);return a} +function VOc(a,b,c,d){var e,f;if(b.c.length==0){return}e=ROc(c,d);f=QOc(b);MAb(VAb(new YAb(null,new Kub(f,1)),new cPc),new gPc(a,c,e,d))} +function Cjd(a,b,c){var d;if((a.Db&b)!=0){if(c==null){Bjd(a,b)}else{d=zjd(a,b);d==-1?(a.Eb=c):NC(CD(a.Eb),d,c)}}else c!=null&&vjd(a,b,c)} +function yjd(a){var b,c;if((a.Db&32)==0){c=(b=BD(Ajd(a,16),26),aLd(!b?a.zh():b)-aLd(a.zh()));c!=0&&Cjd(a,32,KC(SI,Uhe,1,c,5,1))}return a} +function W1d(a){var b;a.b||X1d(a,(b=h1d(a.e,a.a),!b||!dfb(lse,AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'qualified'))));return a.c} +function dTd(a,b,c){var d,e,f;d=BD(qud(QSd(a.a),b),87);f=(e=d.c,e?e:(jGd(),YFd));(f.kh()?xid(a.b,BD(f,49)):f)==c?KQd(d):NQd(d,c);return f} +function fCb(a,b){(!b&&console.groupCollapsed!=null?console.groupCollapsed:console.group!=null?console.group:console.log).call(console,a)} +function NNb(a,b,c,d){d==a?(BD(c.b,65),BD(c.b,65),BD(d.b,65),BD(d.b,65).c.b):(BD(c.b,65),BD(c.b,65),BD(d.b,65),BD(d.b,65).c.b);KNb(d,b,a)} +function EOb(a){var b,c,d;b=0;for(c=new olb(a.g);c.a<c.c.c.length;){BD(mlb(c),562);++b}d=new ENb(a.g,Edb(a.a),a.c);ELb(d);a.g=d.b;a.d=d.a} +function ymc(a,b,c){b.b=$wnd.Math.max(b.b,-c.a);b.c=$wnd.Math.max(b.c,c.a-a.a);b.d=$wnd.Math.max(b.d,-c.b);b.a=$wnd.Math.max(b.a,c.b-a.b)} +function MIc(a,b){if(a.e<b.e){return -1}else if(a.e>b.e){return 1}else if(a.f<b.f){return -1}else if(a.f>b.f){return 1}return tb(a)-tb(b)} +function efb(a,b){uCb(a);if(b==null){return false}if(dfb(a,b)){return true}return a.length==b.length&&dfb(a.toLowerCase(),b.toLowerCase())} +function x6d(a,b){var c,d,e,f;for(d=0,e=b.gc();d<e;++d){c=b.il(d);if(JD(c,99)&&(BD(c,18).Bb&ote)!=0){f=b.jl(d);f!=null&&s6d(a,BD(f,56))}}} +function p1c(a,b,c){var d,e,f;for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),221);d=new hDb(BD(Ohb(a.a,e.b),65));Ekb(b.a,d);p1c(a,d,e)}} +function Aeb(a){var b,c;if(ybb(a,-129)>0&&ybb(a,128)<0){b=Tbb(a)+128;c=(Ceb(),Beb)[b];!c&&(c=Beb[b]=new teb(a));return c}return new teb(a)} +function _0d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function a1d(a,b){var c,d;c=b.Hh(a.a);if(c){d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),fue));if(d!=null){return d}}return b.ne()} +function FMc(a,b){wMc();var c,d;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.d.i==b||c.c.i==b){return c}}return null} +function HUb(a,b,c){this.c=a;this.f=new Rkb;this.e=new d7c;this.j=new IVb;this.n=new IVb;this.b=b;this.g=new J6c(b.c,b.d,b.b,b.a);this.a=c} +function gVb(a){var b,c,d,e;this.a=new zsb;this.d=new Tqb;this.e=0;for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!this.f&&(this.f=b);eVb(this,b)}} +function Xgb(a){Hgb();if(a.length==0){this.e=0;this.d=1;this.a=OC(GC(WD,1),oje,25,15,[0])}else{this.e=1;this.d=a.length;this.a=a;Jgb(this)}} +function mIb(a,b,c){oHb.call(this);this.a=KC(oN,ile,212,(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])).length,0,1);this.b=a;this.d=b;this.c=c} +function Kjc(a){this.d=new Rkb;this.e=new $rb;this.c=KC(WD,oje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=a} +function Vbc(a){var b,c,d,e,f,g;g=BD(vNb(a,(wtc(),$sc)),11);yNb(g,qtc,a.i.n.b);b=k_b(a.e);for(d=b,e=0,f=d.length;e<f;++e){c=d[e];RZb(c,g)}} +function Wbc(a){var b,c,d,e,f,g;c=BD(vNb(a,(wtc(),$sc)),11);yNb(c,qtc,a.i.n.b);b=k_b(a.g);for(e=b,f=0,g=e.length;f<g;++f){d=e[f];QZb(d,c)}} +function vcc(a){var b,c;if(wNb(a.d.i,(Nyc(),Nxc))){b=BD(vNb(a.c.i,Nxc),19);c=BD(vNb(a.d.i,Nxc),19);return beb(b.a,c.a)>0}else{return false}} +function q2c(a){var b;if(PD(hkd(a,(Y9c(),J8c)))===PD((hbd(),fbd))){if(!Xod(a)){jkd(a,J8c,gbd)}else{b=BD(hkd(Xod(a),J8c),334);jkd(a,J8c,b)}}} +function ijc(a,b,c){var d,e;bIc(a.e,b,c,(Ucd(),Tcd));bIc(a.i,b,c,zcd);if(a.a){e=BD(vNb(b,(wtc(),$sc)),11);d=BD(vNb(c,$sc),11);cIc(a.g,e,d)}} +function OEc(a,b,c){var d,e,f;d=b.c.p;f=b.p;a.b[d][f]=new $Ec(a,b);if(c){a.a[d][f]=new FEc(b);e=BD(vNb(b,(wtc(),Psc)),10);!!e&&Rc(a.d,e,b)}} +function TPb(a,b){var c,d,e;Ekb(PPb,a);b.Fc(a);c=BD(Ohb(OPb,a),21);if(c){for(e=c.Kc();e.Ob();){d=BD(e.Pb(),33);Jkb(PPb,d,0)!=-1||TPb(d,b)}}} +function tyb(a,b,c){var d;(jyb?(ryb(a),true):kyb?($xb(),true):nyb?($xb(),true):myb&&($xb(),false))&&(d=new iyb(b),d.b=c,pyb(a,d),undefined)} +function xKb(a,b){var c;c=!a.A.Hc((tdd(),sdd))||a.q==(dcd(),$bd);a.u.Hc((rcd(),ncd))?c?vKb(a,b):zKb(a,b):a.u.Hc(pcd)&&(c?wKb(a,b):AKb(a,b))} +function b0d(a,b){var c,d;++a.j;if(b!=null){c=(d=a.a.Cb,JD(d,97)?BD(d,97).Jg():null);if(xlb(b,c)){Cjd(a.a,4,c);return}}Cjd(a.a,4,BD(b,126))} +function dYb(a,b,c){return new J6c($wnd.Math.min(a.a,b.a)-c/2,$wnd.Math.min(a.b,b.b)-c/2,$wnd.Math.abs(a.a-b.a)+c,$wnd.Math.abs(a.b-b.b)+c)} +function k4b(a,b){var c,d;c=beb(a.a.c.p,b.a.c.p);if(c!=0){return c}d=beb(a.a.d.i.p,b.a.d.i.p);if(d!=0){return d}return beb(b.a.d.p,a.a.d.p)} +function _Dc(a,b,c){var d,e,f,g;f=b.j;g=c.j;if(f!=g){return f.g-g.g}else{d=a.f[b.p];e=a.f[c.p];return d==0&&e==0?0:d==0?-1:e==0?1:Kdb(d,e)}} +function HFb(a,b,c){var d,e,f;if(c[b.d]){return}c[b.d]=true;for(e=new olb(LFb(b));e.a<e.c.c.length;){d=BD(mlb(e),213);f=xFb(d,b);HFb(a,f,c)}} +function umc(a,b,c){var d;d=c[a.g][b];switch(a.g){case 1:case 3:return new f7c(0,d);case 2:case 4:return new f7c(d,0);default:return null;}} +function r2c(b,c,d){var e,f;f=BD(hgd(c.f),209);try{f.Ze(b,d);igd(c.f,f)}catch(a){a=ubb(a);if(JD(a,102)){e=a;throw vbb(e)}else throw vbb(a)}} +function Vqd(a,b,c){var d,e,f,g,h,i;d=null;h=k4c(n4c(),b);f=null;if(h){e=null;i=o5c(h,c);g=null;i!=null&&(g=a.Ye(h,i));e=g;f=e}d=f;return d} +function TTd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,13,(g=b.c,g?g:(jGd(),YFd)),(f=c.c,f?f:(jGd(),YFd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} +function UEd(a,b,c,d){var e;e=a.length;if(b>=e)return e;for(b=b>0?b:0;b<e;b++){if(_Ed((BCb(b,a.length),a.charCodeAt(b)),c,d))break}return b} +function Qkb(a,b){var c,d;d=a.c.length;b.length<d&&(b=eCb(new Array(d),b));for(c=0;c<d;++c){NC(b,c,a.c[c])}b.length>d&&NC(b,d,null);return b} +function _lb(a,b){var c,d;d=a.a.length;b.length<d&&(b=eCb(new Array(d),b));for(c=0;c<d;++c){NC(b,c,a.a[c])}b.length>d&&NC(b,d,null);return b} +function Xrb(a,b,c){var d,e,f;e=BD(Ohb(a.e,b),387);if(!e){d=new lsb(a,b,c);Rhb(a.e,b,d);isb(d);return null}else{f=ijb(e,c);Yrb(a,e);return f}} +function P9d(a){var b;if(a==null)return null;b=ide(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid hexBinary value: '"+a+"'"))}return b} +function ghb(a){Hgb();if(ybb(a,0)<0){if(ybb(a,-1)!=0){return new Wgb(-1,Jbb(a))}return Bgb}else return ybb(a,10)<=0?Dgb[Tbb(a)]:new Wgb(1,a)} +function wJb(){qJb();return OC(GC(DN,1),Kie,159,0,[nJb,mJb,oJb,eJb,dJb,fJb,iJb,hJb,gJb,lJb,kJb,jJb,bJb,aJb,cJb,$Ib,ZIb,_Ib,XIb,WIb,YIb,pJb])} +function vjc(a){var b;this.d=new Rkb;this.j=new d7c;this.g=new d7c;b=a.g.b;this.f=BD(vNb(Q_b(b),(Nyc(),Lwc)),103);this.e=Edb(ED(c_b(b,ryc)))} +function Pjc(a){this.b=new Rkb;this.e=new Rkb;this.d=a;this.a=!WAb(JAb(new YAb(null,new Lub(new b1b(a.b))),new Xxb(new Qjc))).sd((EAb(),DAb))} +function N5c(){N5c=ccb;L5c=new O5c('PARENTS',0);K5c=new O5c('NODES',1);I5c=new O5c('EDGES',2);M5c=new O5c('PORTS',3);J5c=new O5c('LABELS',4)} +function Tbd(){Tbd=ccb;Qbd=new Ubd('DISTRIBUTED',0);Sbd=new Ubd('JUSTIFIED',1);Obd=new Ubd('BEGIN',2);Pbd=new Ubd(gle,3);Rbd=new Ubd('END',4)} +function UMd(a){var b;b=a.yi(null);switch(b){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4;}return -1} +function cYb(a){switch(a.g){case 1:return ead(),dad;case 4:return ead(),aad;case 2:return ead(),bad;case 3:return ead(),_9c;}return ead(),cad} +function kA(a,b,c){var d;d=c.q.getFullYear()-nje+nje;d<0&&(d=-d);switch(b){case 1:a.a+=d;break;case 2:EA(a,d%100,2);break;default:EA(a,d,b);}} +function Jsb(a,b){var c,d;wCb(b,a.b);if(b>=a.b>>1){d=a.c;for(c=a.b;c>b;--c){d=d.b}}else{d=a.a.a;for(c=0;c<b;++c){d=d.a}}return new $sb(a,b,d)} +function MEb(){MEb=ccb;LEb=new NEb('NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST',0);KEb=new NEb('CORNER_CASES_THAN_SINGLE_SIDE_LAST',1)} +function h4b(a){var b,c,d,e;d=c4b(a);Okb(d,a4b);e=a.d;e.c=KC(SI,Uhe,1,0,5,1);for(c=new olb(d);c.a<c.c.c.length;){b=BD(mlb(c),456);Gkb(e,b.b)}} +function gkd(a){var b,c,d;d=(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o);for(c=d.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),42);b.dd()}return FAd(d)} +function N5b(a){var b;if(!ecd(BD(vNb(a,(Nyc(),Vxc)),98))){return}b=a.b;O5b((tCb(0,b.c.length),BD(b.c[0],29)));O5b(BD(Ikb(b,b.c.length-1),29))} +function Roc(a,b){var c,d,e,f;c=0;for(e=new olb(b.a);e.a<e.c.c.length;){d=BD(mlb(e),10);f=d.o.a+d.d.c+d.d.b+a.j;c=$wnd.Math.max(c,f)}return c} +function XEd(a){var b,c,d,e;e=0;for(c=0,d=a.length;c<d;c++){b=(BCb(c,a.length),a.charCodeAt(c));b>=64&&b<128&&(e=Mbb(e,Nbb(1,b-64)))}return e} +function c_b(a,b){var c,d;d=null;if(wNb(a,(Y9c(),O9c))){c=BD(vNb(a,O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!Q_b(a)&&(d=vNb(Q_b(a),b));return d} +function oQc(a,b){var c,d,e;e=b.d.i;d=e.k;if(d==(j0b(),h0b)||d==d0b){return}c=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(c)&&Rhb(a.k,b,BD(Rr(c),17))} +function mid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();return c<0?(e=a.Yg(d),e>=0?a.lh(e):tid(a,d)):c<0?tid(a,d):BD(d,66).Nj().Sj(a,a.yh(),c)} +function Ksd(a){var b;if(JD(a.a,4)){b=fvd(a.a);if(b==null){throw vbb(new Zdb(mse+a.b+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return b}else{return a.a}} +function L9d(a){var b;if(a==null)return null;b=bde(Qge(a,true));if(b==null){throw vbb(new n8d("Invalid base64Binary value: '"+a+"'"))}return b} +function Dyd(b){var c;try{c=b.i.Xb(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function Zyd(b){var c;try{c=b.c.ki(b.e);b.mj();b.g=b.e++;return c}catch(a){a=ubb(a);if(JD(a,73)){b.mj();throw vbb(new utb)}else throw vbb(a)}} +function CPb(){CPb=ccb;BPb=(Y9c(),K9c);vPb=G8c;qPb=r8c;wPb=f9c;zPb=(fFb(),bFb);yPb=_Eb;APb=dFb;xPb=$Eb;sPb=(nPb(),jPb);rPb=iPb;tPb=lPb;uPb=mPb} +function NWb(a){LWb();this.c=new Rkb;this.d=a;switch(a.g){case 0:case 2:this.a=tmb(KWb);this.b=Pje;break;case 3:case 1:this.a=KWb;this.b=Qje;}} +function ued(a,b,c){var d,e;if(a.c){dld(a.c,a.c.i+b);eld(a.c,a.c.j+c)}else{for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),157);ued(d,b,c)}}} +function KEd(a,b){var c,d;if(a.j.length!=b.j.length)return false;for(c=0,d=a.j.length;c<d;c++){if(!dfb(a.j[c],b.j[c]))return false}return true} +function gA(a,b,c){var d;if(b.a.length>0){Ekb(a.b,new WA(b.a,c));d=b.a.length;0<d?(b.a=b.a.substr(0,0)):0>d&&(b.a+=yfb(KC(TD,$ie,25,-d,15,1)))}} +function JKb(a,b){var c,d,e;c=a.o;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.a=DKb(d,c.a);d.e.b=c.b*Edb(ED(d.b.We(BKb)))}} +function S5b(a,b){var c,d,e,f;e=a.k;c=Edb(ED(vNb(a,(wtc(),htc))));f=b.k;d=Edb(ED(vNb(b,htc)));return f!=(j0b(),e0b)?-1:e!=e0b?1:c==d?0:c<d?-1:1} +function B$c(a,b){var c,d;c=BD(BD(Ohb(a.g,b.a),46).a,65);d=BD(BD(Ohb(a.g,b.b),46).a,65);return S6c(b.a,b.b)-S6c(b.a,E6c(c.b))-S6c(b.b,E6c(d.b))} +function aZb(a,b){var c;c=BD(vNb(a,(Nyc(),jxc)),74);if(Lq(b,ZYb)){if(!c){c=new s7c;yNb(a,jxc,c)}else{Osb(c)}}else !!c&&yNb(a,jxc,null);return c} +function a0b(a){var b;b=new Ufb;b.a+='n';a.k!=(j0b(),h0b)&&Qfb(Qfb((b.a+='(',b),Zr(a.k).toLowerCase()),')');Qfb((b.a+='_',b),P_b(a));return b.a} +function Kdc(a,b){Odd(b,'Self-Loop post-processing',1);MAb(JAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new Qdc),new Sdc),new Udc),new Wdc);Qdd(b)} +function kid(a,b,c,d){var e;if(c>=0){return a.hh(b,c,d)}else{!!a.eh()&&(d=(e=a.Vg(),e>=0?a.Qg(d):a.eh().ih(a,-1-e,null,d)));return a.Sg(b,c,d)}} +function zld(a,b){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);return;}$kd(a,b)} +function Ut(b,c){var d;d=b.Zc(c);try{return d.Pb()}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't get element "+c))}else throw vbb(a)}} +function Tgb(a,b){this.e=a;if(b<Zje){this.d=1;this.a=OC(GC(WD,1),oje,25,15,[b|0])}else{this.d=2;this.a=OC(GC(WD,1),oje,25,15,[b%Zje|0,b/Zje|0])}} +function omb(a,b){mmb();var c,d,e,f;c=a;f=b;if(JD(a,21)&&!JD(b,21)){c=b;f=a}for(e=c.Kc();e.Ob();){d=e.Pb();if(f.Hc(d)){return false}}return true} +function Txd(a,b,c){var d,e,f,g;d=a.Xc(b);if(d!=-1){if(a.ej()){f=a.fj();g=tud(a,d);e=a.Zi(4,g,null,d,f);!c?(c=e):c.Ei(e)}else{tud(a,d)}}return c} +function uwd(a,b,c){var d,e,f,g;d=a.Xc(b);if(d!=-1){if(a.ej()){f=a.fj();g=Evd(a,d);e=a.Zi(4,g,null,d,f);!c?(c=e):c.Ei(e)}else{Evd(a,d)}}return c} +function PJb(a,b){var c;c=BD(Mpb(a.b,b),124).n;switch(b.g){case 1:a.t>=0&&(c.d=a.t);break;case 3:a.t>=0&&(c.a=a.t);}if(a.C){c.b=a.C.b;c.c=a.C.c}} +function RMb(){RMb=ccb;OMb=new SMb(xle,0);NMb=new SMb(yle,1);PMb=new SMb(zle,2);QMb=new SMb(Ale,3);OMb.a=false;NMb.a=true;PMb.a=false;QMb.a=true} +function ROb(){ROb=ccb;OOb=new SOb(xle,0);NOb=new SOb(yle,1);POb=new SOb(zle,2);QOb=new SOb(Ale,3);OOb.a=false;NOb.a=true;POb.a=false;QOb.a=true} +function dac(a){var b;b=a.a;do{b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i;b.k==(j0b(),g0b)&&a.b.Fc(b)}while(b.k==(j0b(),g0b));a.b=Su(a.b)} +function CDc(a){var b,c,d;d=a.c.a;a.p=(Qb(d),new Tkb(d));for(c=new olb(d);c.a<c.c.c.length;){b=BD(mlb(c),10);b.p=GDc(b).a}mmb();Okb(a.p,new PDc)} +function eVc(a){var b,c,d,e;d=0;e=gVc(a);if(e.c.length==0){return 1}else{for(c=new olb(e);c.a<c.c.c.length;){b=BD(mlb(c),33);d+=eVc(b)}}return d} +function JJb(a,b){var c,d,e;e=0;d=BD(BD(Qc(a.r,b),21),84).Kc();while(d.Ob()){c=BD(d.Pb(),111);e+=c.d.b+c.b.rf().a+c.d.c;d.Ob()&&(e+=a.w)}return e} +function RKb(a,b){var c,d,e;e=0;d=BD(BD(Qc(a.r,b),21),84).Kc();while(d.Ob()){c=BD(d.Pb(),111);e+=c.d.d+c.b.rf().b+c.d.a;d.Ob()&&(e+=a.w)}return e} +function SOc(a,b,c,d){if(b.a<d.a){return true}else if(b.a==d.a){if(b.b<d.b){return true}else if(b.b==d.b){if(a.b>c.b){return true}}}return false} +function AD(a,b){if(ND(a)){return !!zD[b]}else if(a.hm){return !!a.hm[b]}else if(LD(a)){return !!yD[b]}else if(KD(a)){return !!xD[b]}return false} +function jkd(a,b,c){c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c));return a} +function jKb(a,b,c,d){var e,f;f=b.Xe((Y9c(),W8c))?BD(b.We(W8c),21):a.j;e=uJb(f);if(e==(qJb(),pJb)){return}if(c&&!sJb(e)){return}UHb(lKb(a,e,d),b)} +function fid(a,b,c,d){var e,f,g;f=XKd(a.Tg(),b);e=b-a.Ah();return e<0?(g=a.Yg(f),g>=0?a._g(g,c,true):sid(a,f,c)):BD(f,66).Nj().Pj(a,a.yh(),e,c,d)} +function u6d(a,b,c,d){var e,f,g;if(c.mh(b)){Q6d();if(YId(b)){e=BD(c.ah(b),153);x6d(a,e)}else{f=(g=b,!g?null:BD(d,49).xh(g));!!f&&v6d(c.ah(b),f)}}} +function H3b(a){switch(a.g){case 1:return vLb(),uLb;case 3:return vLb(),rLb;case 2:return vLb(),tLb;case 4:return vLb(),sLb;default:return null;}} +function kCb(a){switch(typeof(a)){case Mhe:return LCb(a);case Lhe:return QD(a);case Khe:return Bcb(),a?1231:1237;default:return a==null?0:FCb(a);}} +function Gic(a,b,c){if(a.e){switch(a.b){case 1:oic(a.c,b,c);break;case 0:pic(a.c,b,c);}}else{mic(a.c,b,c)}a.a[b.p][c.p]=a.c.i;a.a[c.p][b.p]=a.c.e} +function lHc(a){var b,c;if(a==null){return null}c=KC(OQ,nie,193,a.length,0,2);for(b=0;b<c.length;b++){c[b]=BD(ulb(a[b],a[b].length),193)}return c} +function d4d(a){var b;if(b4d(a)){a4d(a);if(a.Lk()){b=b3d(a.e,a.b,a.c,a.a,a.j);a.j=b}a.g=a.a;++a.a;++a.c;a.i=0;return a.j}else{throw vbb(new utb)}} +function fMb(a,b){var c,d,e,f;f=a.o;c=a.p;f<c?(f*=f):(c*=c);d=f+c;f=b.o;c=b.p;f<c?(f*=f):(c*=c);e=f+c;if(d<e){return -1}if(d==e){return 0}return 1} +function HLd(a,b){var c,d,e;e=rud(a,b);if(e>=0)return e;if(a.Fk()){for(d=0;d<a.i;++d){c=a.Gk(BD(a.g[d],56));if(PD(c)===PD(b)){return d}}}return -1} +function Gtd(a,b,c){var d,e;e=a.gc();if(b>=e)throw vbb(new Cyd(b,e));if(a.hi()){d=a.Xc(c);if(d>=0&&d!=b){throw vbb(new Wdb(kue))}}return a.mi(b,c)} +function gx(a,b){this.a=BD(Qb(a),245);this.b=BD(Qb(b),245);if(a.vd(b)>0||a==(Lk(),Kk)||b==(_k(),$k)){throw vbb(new Wdb('Invalid range: '+nx(a,b)))}} +function mYb(a){var b,c;this.b=new Rkb;this.c=a;this.a=false;for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),10);this.a=this.a|b.k==(j0b(),h0b)}} +function GFb(a,b){var c,d,e;c=nGb(new pGb,a);for(e=new olb(b);e.a<e.c.c.length;){d=BD(mlb(e),121);AFb(DFb(CFb(EFb(BFb(new FFb,0),0),c),d))}return c} +function Nac(a,b,c){var d,e,f;for(e=new Sr(ur((b?R_b(a):U_b(a)).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);f=b?d.c.i:d.d.i;f.k==(j0b(),f0b)&&$_b(f,c)}} +function Izc(){Izc=ccb;Gzc=new Kzc(ane,0);Hzc=new Kzc('PORT_POSITION',1);Fzc=new Kzc('NODE_SIZE_WHERE_SPACE_PERMITS',2);Ezc=new Kzc('NODE_SIZE',3)} +function F7c(){F7c=ccb;z7c=new G7c('AUTOMATIC',0);C7c=new G7c(jle,1);D7c=new G7c(kle,2);E7c=new G7c('TOP',3);A7c=new G7c(mle,4);B7c=new G7c(gle,5)} +function Hhb(a,b,c,d){Dhb();var e,f;e=0;for(f=0;f<c;f++){e=wbb(Ibb(xbb(b[f],Yje),xbb(d,Yje)),xbb(Tbb(e),Yje));a[f]=Tbb(e);e=Pbb(e,32)}return Tbb(e)} +function zHb(a,b,c){var d,e;e=0;for(d=0;d<rHb;d++){e=$wnd.Math.max(e,pHb(a.a[b.g][d],c))}b==(gHb(),eHb)&&!!a.b&&(e=$wnd.Math.max(e,a.b.b));return e} +function Bub(a,b){var c,d;lCb(b>0);if((b&-b)==b){return QD(b*Cub(a,31)*4.6566128730773926E-10)}do{c=Cub(a,31);d=c%b}while(c-d+(b-1)<0);return QD(d)} +function LCb(a){JCb();var b,c,d;c=':'+a;d=ICb[c];if(d!=null){return QD((uCb(d),d))}d=GCb[c];b=d==null?KCb(a):QD((uCb(d),d));MCb();ICb[c]=b;return b} +function qZb(a,b,c){Odd(c,'Compound graph preprocessor',1);a.a=new Hp;vZb(a,b,null);pZb(a,b);uZb(a);yNb(b,(wtc(),zsc),a.a);a.a=null;Uhb(a.b);Qdd(c)} +function X$b(a,b,c){switch(c.g){case 1:a.a=b.a/2;a.b=0;break;case 2:a.a=b.a;a.b=b.b/2;break;case 3:a.a=b.a/2;a.b=b.b;break;case 4:a.a=0;a.b=b.b/2;}} +function tkc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Vjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function ukc(a){var b,c,d;for(d=BD(Qc(a.a,(Xjc(),Wjc)),15).Kc();d.Ob();){c=BD(d.Pb(),101);b=Bkc(c);kkc(a,c,b[0],(Fkc(),Ckc),0);kkc(a,c,b[1],Ekc,1)}} +function tXc(a){switch(a.g){case 0:return null;case 1:return new $Xc;case 2:return new QXc;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function OZc(a,b,c){var d,e;FZc(a,b-a.s,c-a.t);for(e=new olb(a.n);e.a<e.c.c.length;){d=BD(mlb(e),211);SZc(d,d.e+b-a.s);TZc(d,d.f+c-a.t)}a.s=b;a.t=c} +function JFb(a){var b,c,d,e,f;c=0;for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),121);d.d=c++}b=IFb(a);f=null;b.c.length>1&&(f=GFb(a,b));return f} +function dmd(a){var b;if(!!a.f&&a.f.kh()){b=BD(a.f,49);a.f=BD(xid(a,b),82);a.f!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.f))}return a.f} +function emd(a){var b;if(!!a.i&&a.i.kh()){b=BD(a.i,49);a.i=BD(xid(a,b),82);a.i!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,7,b,a.i))}return a.i} +function zUd(a){var b;if(!!a.b&&(a.b.Db&64)!=0){b=a.b;a.b=BD(xid(a,b),18);a.b!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,21,b,a.b))}return a.b} +function uAd(a,b){var c,d,e;if(a.d==null){++a.e;++a.f}else{d=b.Sh();BAd(a,a.f+1);e=(d&Ohe)%a.d.length;c=a.d[e];!c&&(c=a.d[e]=a.uj());c.Fc(b);++a.f}} +function m3d(a,b,c){var d;if(b.Kj()){return false}else if(b.Zj()!=-2){d=b.zj();return d==null?c==null:pb(d,c)}else return b.Hj()==a.e.Tg()&&c==null} +function wo(){var a;Xj(16,Hie);a=Kp(16);this.b=KC(GF,Gie,317,a,0,1);this.c=KC(GF,Gie,317,a,0,1);this.a=null;this.e=null;this.i=0;this.f=a-1;this.g=0} +function b0b(a){n_b.call(this);this.k=(j0b(),h0b);this.j=(Xj(6,Jie),new Skb(6));this.b=(Xj(2,Jie),new Skb(2));this.d=new L_b;this.f=new s0b;this.a=a} +function Scc(a){var b,c;if(a.c.length<=1){return}b=Pcc(a,(Ucd(),Rcd));Rcc(a,BD(b.a,19).a,BD(b.b,19).a);c=Pcc(a,Tcd);Rcc(a,BD(c.a,19).a,BD(c.b,19).a)} +function Vzc(){Vzc=ccb;Uzc=new Xzc('SIMPLE',0);Rzc=new Xzc(Tne,1);Szc=new Xzc('LINEAR_SEGMENTS',2);Qzc=new Xzc('BRANDES_KOEPF',3);Tzc=new Xzc(Aqe,4)} +function XDc(a,b,c){if(!ecd(BD(vNb(b,(Nyc(),Vxc)),98))){WDc(a,b,Y_b(b,c));WDc(a,b,Y_b(b,(Ucd(),Rcd)));WDc(a,b,Y_b(b,Acd));mmb();Okb(b.j,new jEc(a))}} +function HVc(a,b,c,d){var e,f,g;e=d?BD(Qc(a.a,b),21):BD(Qc(a.b,b),21);for(g=e.Kc();g.Ob();){f=BD(g.Pb(),33);if(BVc(a,c,f)){return true}}return false} +function FMd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function QTd(a){var b,c;for(c=new Fyd(a);c.e!=c.i.gc();){b=BD(Dyd(c),87);if(!!b.e||(!b.d&&(b.d=new xMd(j5,b,1)),b.d).i!=0){return true}}return false} +function FDc(a){var b,c,d;b=0;for(d=new olb(a.c.a);d.a<d.c.c.length;){c=BD(mlb(d),10);b+=sr(new Sr(ur(U_b(c).a.Kc(),new Sq)))}return b/a.c.a.c.length} +function UPc(a){var b,c;a.c||XPc(a);c=new s7c;b=new olb(a.a);mlb(b);while(b.a<b.c.c.length){Dsb(c,BD(mlb(b),407).a)}sCb(c.b!=0);Nsb(c,c.c.b);return c} +function J0c(){J0c=ccb;I0c=(A0c(),z0c);G0c=new q0b(8);new Osd((Y9c(),f9c),G0c);new Osd(T9c,8);H0c=x0c;E0c=n0c;F0c=o0c;D0c=new Osd(y8c,(Bcb(),false))} +function uld(a,b,c,d){switch(b){case 7:return !a.e&&(a.e=new y5d(B2,a,7,4)),a.e;case 8:return !a.d&&(a.d=new y5d(B2,a,8,5)),a.d;}return Xkd(a,b,c,d)} +function JQd(a){var b;if(!!a.a&&a.a.kh()){b=BD(a.a,49);a.a=BD(xid(a,b),138);a.a!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,5,b,a.a))}return a.a} +function yde(a){if(a<48)return -1;if(a>102)return -1;if(a<=57)return a-48;if(a<65)return -1;if(a<=70)return a-65+10;if(a<97)return -1;return a-97+10} +function Wj(a,b){if(a==null){throw vbb(new Heb('null key in entry: null='+b))}else if(b==null){throw vbb(new Heb('null value in entry: '+a+'=null'))}} +function kr(a,b){var c,d;while(a.Ob()){if(!b.Ob()){return false}c=a.Pb();d=b.Pb();if(!(PD(c)===PD(d)||c!=null&&pb(c,d))){return false}}return !b.Ob()} +function jIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[pHb(a.a[0],b),pHb(a.a[1],b),pHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function kIb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[qHb(a.a[0],b),qHb(a.a[1],b),qHb(a.a[2],b)]);if(a.d){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function mqc(){mqc=ccb;iqc=new oqc('GREEDY',0);hqc=new oqc(Une,1);kqc=new oqc(Tne,2);lqc=new oqc('MODEL_ORDER',3);jqc=new oqc('GREEDY_MODEL_ORDER',4)} +function iUc(a,b){var c,d,e;a.b[b.g]=1;for(d=Jsb(b.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);e=c.c;a.b[e.g]==1?Dsb(a.a,c):a.b[e.g]==2?(a.b[e.g]=1):iUc(a,e)}} +function V9b(a,b){var c,d,e;e=new Skb(b.gc());for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);c.c==c.f?K9b(a,c,c.c):L9b(a,c)||(e.c[e.c.length]=c,true)}return e} +function IZc(a,b,c){var d,e,f,g,h;h=a.r+b;a.r+=b;a.d+=c;d=c/a.n.c.length;e=0;for(g=new olb(a.n);g.a<g.c.c.length;){f=BD(mlb(g),211);RZc(f,h,d,e);++e}} +function tEb(a){var b,c,d;zwb(a.b.a);a.a=KC(PM,Uhe,57,a.c.c.a.b.c.length,0,1);b=0;for(d=new olb(a.c.c.a.b);d.a<d.c.c.length;){c=BD(mlb(d),57);c.f=b++}} +function RVb(a){var b,c,d;zwb(a.b.a);a.a=KC(IP,Uhe,81,a.c.a.a.b.c.length,0,1);b=0;for(d=new olb(a.c.a.a.b);d.a<d.c.c.length;){c=BD(mlb(d),81);c.i=b++}} +function P1c(a,b,c){var d;Odd(c,'Shrinking tree compaction',1);if(Ccb(DD(vNb(b,(XNb(),VNb))))){N1c(a,b.f);INb(b.f,(d=b.c,d))}else{INb(b.f,b.c)}Qdd(c)} +function mr(a){var b;b=gr(a);if(!Qr(a)){throw vbb(new qcb('position (0) must be less than the number of elements that remained ('+b+')'))}return Rr(a)} +function hNb(b,c,d){var e;try{return YMb(b,c+b.j,d+b.k)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function iNb(b,c,d){var e;try{return ZMb(b,c+b.j,d+b.k)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function jNb(b,c,d){var e;try{return $Mb(b,c+b.j,d+b.k)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function s5b(a){switch(a.g){case 1:return Ucd(),Tcd;case 4:return Ucd(),Acd;case 3:return Ucd(),zcd;case 2:return Ucd(),Rcd;default:return Ucd(),Scd;}} +function cjc(a,b,c){if(b.k==(j0b(),h0b)&&c.k==g0b){a.d=_ic(b,(Ucd(),Rcd));a.b=_ic(b,Acd)}if(c.k==h0b&&b.k==g0b){a.d=_ic(c,(Ucd(),Acd));a.b=_ic(c,Rcd)}} +function gjc(a,b){var c,d,e;e=V_b(a,b);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),11);if(vNb(c,(wtc(),gtc))!=null||a1b(new b1b(c.b))){return true}}return false} +function QZc(a,b){dld(b,a.e+a.d+(a.c.c.length==0?0:a.b));eld(b,a.f);a.a=$wnd.Math.max(a.a,b.f);a.d+=b.g+(a.c.c.length==0?0:a.b);Ekb(a.c,b);return true} +function XZc(a,b,c){var d,e,f,g;g=0;d=c/a.a.c.length;for(f=new olb(a.a);f.a<f.c.c.length;){e=BD(mlb(f),187);OZc(e,e.s,e.t+g*d);IZc(e,a.d-e.r+b,d);++g}} +function H4b(a){var b,c,d,e,f;for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);b=0;for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);e.p=b++}}} +function r6c(a,b){var c,d,e,f,g,h;e=b.length-1;g=0;h=0;for(d=0;d<=e;d++){f=b[d];c=k6c(e,d)*x6c(1-a,e-d)*x6c(a,d);g+=f.a*c;h+=f.b*c}return new f7c(g,h)} +function jud(a,b){var c,d,e,f,g;c=b.gc();a.qi(a.i+c);f=b.Kc();g=a.i;a.i+=c;for(d=g;d<a.i;++d){e=f.Pb();mud(a,d,a.oi(d,e));a.bi(d,e);a.ci()}return c!=0} +function twd(a,b,c){var d,e,f;if(a.ej()){d=a.Vi();f=a.fj();++a.j;a.Hi(d,a.oi(d,b));e=a.Zi(3,null,b,d,f);!c?(c=e):c.Ei(e)}else{Avd(a,a.Vi(),b)}return c} +function WOd(a,b,c){var d,e,f;d=BD(qud(VKd(a.a),b),87);f=(e=d.c,JD(e,88)?BD(e,26):(jGd(),_Fd));((f.Db&64)!=0?xid(a.b,f):f)==c?KQd(d):NQd(d,c);return f} +function Ewb(a,b,c,d,e,f,g,h){var i,j;if(!d){return}i=d.a[0];!!i&&Ewb(a,b,c,i,e,f,g,h);Fwb(a,c,d.d,e,f,g,h)&&b.Fc(d);j=d.a[1];!!j&&Ewb(a,b,c,j,e,f,g,h)} +function eAb(a,b){var c;if(!a.a){c=KC(UD,Vje,25,0,15,1);_ub(a.b.a,new iAb(c));c.sort(dcb(Ylb.prototype.te,Ylb,[]));a.a=new Avb(c,a.d)}return pvb(a.a,b)} +function YMb(b,c,d){try{return Bbb(_Mb(b,c,d),1)}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function ZMb(b,c,d){try{return Bbb(_Mb(b,c,d),0)}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function $Mb(b,c,d){try{return Bbb(_Mb(b,c,d),2)}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function Nyd(b,c){if(b.g==-1){throw vbb(new Ydb)}b.mj();try{b.d._c(b.g,c);b.f=b.d.j}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}} +function rJc(a,b,c){Odd(c,'Linear segments node placement',1);a.b=BD(vNb(b,(wtc(),otc)),304);sJc(a,b);nJc(a,b);kJc(a,b);qJc(a);a.a=null;a.b=null;Qdd(c)} +function Ee(a,b){var c,d,e,f;f=a.gc();b.length<f&&(b=eCb(new Array(f),b));e=b;d=a.Kc();for(c=0;c<f;++c){NC(e,c,d.Pb())}b.length>f&&NC(b,f,null);return b} +function Lu(a,b){var c,d;d=a.gc();if(b==null){for(c=0;c<d;c++){if(a.Xb(c)==null){return c}}}else{for(c=0;c<d;c++){if(pb(b,a.Xb(c))){return c}}}return -1} +function Jd(a,b){var c,d,e;c=b.cd();e=b.dd();d=a.xc(c);if(!(PD(e)===PD(d)||e!=null&&pb(e,d))){return false}if(d==null&&!a._b(c)){return false}return true} +function YC(a,b){var c,d,e;if(b<=22){c=a.l&(1<<b)-1;d=e=0}else if(b<=44){c=a.l;d=a.m&(1<<b-22)-1;e=0}else{c=a.l;d=a.m;e=a.h&(1<<b-44)-1}return TC(c,d,e)} +function yKb(a,b){switch(b.g){case 1:return a.f.n.d+a.t;case 3:return a.f.n.a+a.t;case 2:return a.f.n.c+a.s;case 4:return a.f.n.b+a.s;default:return 0;}} +function aLb(a,b){var c,d;d=b.c;c=b.a;switch(a.b.g){case 0:c.d=a.e-d.a-d.d;break;case 1:c.d+=a.e;break;case 2:c.c=a.e-d.a-d.d;break;case 3:c.c=a.e+d.d;}} +function ZOb(a,b,c,d){var e,f;this.a=b;this.c=d;e=a.a;YOb(this,new f7c(-e.c,-e.d));P6c(this.b,c);f=d/2;b.a?b7c(this.b,0,f):b7c(this.b,f,0);Ekb(a.c,this)} +function iXc(){iXc=ccb;hXc=new kXc(ane,0);fXc=new kXc(Vne,1);gXc=new kXc('EDGE_LENGTH_BY_POSITION',2);eXc=new kXc('CROSSING_MINIMIZATION_BY_POSITION',3)} +function Wqd(a,b){var c,d;c=BD(oo(a.g,b),33);if(c){return c}d=BD(oo(a.j,b),118);if(d){return d}throw vbb(new cqd('Referenced shape does not exist: '+b))} +function rTb(a,b){if(a.c==b){return a.d}else if(a.d==b){return a.c}else{throw vbb(new Wdb("Node 'one' must be either source or target of edge 'edge'."))}} +function TMc(a,b){if(a.c.i==b){return a.d.i}else if(a.d.i==b){return a.c.i}else{throw vbb(new Wdb('Node '+b+' is neither source nor target of edge '+a))}} +function _lc(a,b){var c;switch(b.g){case 2:case 4:c=a.a;a.c.d.n.b<c.d.n.b&&(c=a.c);amc(a,b,(Ajc(),zjc),c);break;case 1:case 3:amc(a,b,(Ajc(),wjc),null);}} +function smc(a,b,c,d,e,f){var g,h,i,j,k;g=qmc(b,c,f);h=c==(Ucd(),Acd)||c==Tcd?-1:1;j=a[c.g];for(k=0;k<j.length;k++){i=j[k];i>0&&(i+=e);j[k]=g;g+=h*(i+d)}} +function Uoc(a){var b,c,d;d=a.f;a.n=KC(UD,Vje,25,d,15,1);a.d=KC(UD,Vje,25,d,15,1);for(b=0;b<d;b++){c=BD(Ikb(a.c.b,b),29);a.n[b]=Roc(a,c);a.d[b]=Qoc(a,c)}} +function zjd(a,b){var c,d,e;e=0;for(d=2;d<b;d<<=1){(a.Db&d)!=0&&++e}if(e==0){for(c=b<<=1;c<=128;c<<=1){if((a.Db&c)!=0){return 0}}return -1}else{return e}} +function s3d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);f=null;c=BD(a.g,119);for(e=0;e<a.i;++e){d=c[e];if(g.rl(d.ak())){!f&&(f=new yud);wtd(f,d)}}!!f&&Yxd(a,f)} +function H9d(a){var b,c,d;if(!a)return null;if(a.dc())return '';d=new Hfb;for(c=a.Kc();c.Ob();){b=c.Pb();Efb(d,GD(b));d.a+=' '}return lcb(d,d.a.length-1)} +function Ty(a,b,c){var d,e,f,g,h;Uy(a);for(e=(a.k==null&&(a.k=KC(_I,nie,78,0,0,1)),a.k),f=0,g=e.length;f<g;++f){d=e[f];Ty(d,b,'\t'+c)}h=a.f;!!h&&Ty(h,b,c)} +function LC(a,b){var c=new Array(b);var d;switch(a){case 14:case 15:d=0;break;case 16:d=false;break;default:return c;}for(var e=0;e<b;++e){c[e]=d}return c} +function PDb(a){var b,c,d;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);b.c.$b()}fad(a.d)?(d=a.a.c):(d=a.a.d);Hkb(d,new dEb(a));a.c.Me(a);QDb(a)} +function sRb(a){var b,c,d,e;for(c=new olb(a.e.c);c.a<c.c.c.length;){b=BD(mlb(c),282);for(e=new olb(b.b);e.a<e.c.c.length;){d=BD(mlb(e),447);lRb(d)}cRb(b)}} +function a$c(a){var b,c,d,e,f;d=0;f=0;e=0;for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),187);f=$wnd.Math.max(f,b.r);d+=b.d+(e>0?a.c:0);++e}a.b=d;a.d=f} +function BZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b);g.a<g.c.c.length;){f=BD(mlb(g),200);d=$wnd.Math.max(d,f.e);e+=f.b+(c>0?a.g:0);++c}a.c=e;a.d=d} +function AHb(a,b){var c;c=OC(GC(UD,1),Vje,25,15,[zHb(a,(gHb(),dHb),b),zHb(a,eHb,b),zHb(a,fHb,b)]);if(a.f){c[0]=$wnd.Math.max(c[0],c[2]);c[2]=c[0]}return c} +function lNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,false,true)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function mNb(b,c,d){var e;try{aNb(b,c+b.j,d+b.k,true,false)}catch(a){a=ubb(a);if(JD(a,73)){e=a;throw vbb(new qcb(e.g+Gle+c+She+d+').'))}else throw vbb(a)}} +function d5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),zbd))){b.Mc(zbd);b.Fc(Bbd)}else if(b.Hc(Bbd)){b.Mc(Bbd);b.Fc(zbd)}} +function e5b(a){var b;if(!wNb(a,(Nyc(),xxc))){return}b=BD(vNb(a,xxc),21);if(b.Hc((Hbd(),Gbd))){b.Mc(Gbd);b.Fc(Ebd)}else if(b.Hc(Ebd)){b.Mc(Ebd);b.Fc(Gbd)}} +function udc(a,b,c){Odd(c,'Self-Loop ordering',1);MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new ydc),new Adc),new Cdc),new Edc),new Gdc(a));Qdd(c)} +function ikc(a,b,c,d){var e,f;for(e=b;e<a.c.length;e++){f=(tCb(e,a.c.length),BD(a.c[e],11));if(c.Mb(f)){d.c[d.c.length]=f}else{return e}}return a.c.length} +function Kmc(a,b,c,d){var e,f,g,h;a.a==null&&Nmc(a,b);g=b.b.j.c.length;f=c.d.p;h=d.d.p;e=h-1;e<0&&(e=g-1);return f<=e?a.a[e]-a.a[f]:a.a[g-1]-a.a[f]+a.a[e]} +function ehd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,33).Ag().i);for(c=new Fyd(BD(a.f,33).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} +function fhd(a){var b,c;if(!a.e){a.e=Qu(Yod(BD(a.f,33)).i);for(c=new Fyd(Yod(BD(a.f,33)));c.e!=c.i.gc();){b=BD(Dyd(c),118);Ekb(a.e,new thd(b))}}return a.e} +function ahd(a){var b,c;if(!a.a){a.a=Qu(Vod(BD(a.f,33)).i);for(c=new Fyd(Vod(BD(a.f,33)));c.e!=c.i.gc();){b=BD(Dyd(c),33);Ekb(a.a,new hhd(a,b))}}return a.a} +function dKd(b){var c;if(!b.C&&(b.D!=null||b.B!=null)){c=eKd(b);if(c){b.yk(c)}else{try{b.yk(null)}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}}return b.C} +function GJb(a){switch(a.q.g){case 5:DJb(a,(Ucd(),Acd));DJb(a,Rcd);break;case 4:EJb(a,(Ucd(),Acd));EJb(a,Rcd);break;default:FJb(a,(Ucd(),Acd));FJb(a,Rcd);}} +function PKb(a){switch(a.q.g){case 5:MKb(a,(Ucd(),zcd));MKb(a,Tcd);break;case 4:NKb(a,(Ucd(),zcd));NKb(a,Tcd);break;default:OKb(a,(Ucd(),zcd));OKb(a,Tcd);}} +function EXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,e.a,0);e.a+=c.f.a+b;e.b=$wnd.Math.max(e.b,c.f.b)}e.b>0&&(e.b+=b);return e} +function GXb(a,b){var c,d,e;e=new d7c;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),37);uXb(c,0,e.b);e.b+=c.f.b+b;e.a=$wnd.Math.max(e.a,c.f.a)}e.a>0&&(e.a+=b);return e} +function d_b(a){var b,c,d;d=Ohe;for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),10);wNb(b,(wtc(),Zsc))&&(d=$wnd.Math.min(d,BD(vNb(b,Zsc),19).a))}return d} +function pHc(a,b){var c,d;if(b.length==0){return 0}c=NHc(a.a,b[0],(Ucd(),Tcd));c+=NHc(a.a,b[b.length-1],zcd);for(d=0;d<b.length;d++){c+=qHc(a,d,b)}return c} +function vQc(){hQc();this.c=new Rkb;this.i=new Rkb;this.e=new zsb;this.f=new zsb;this.g=new zsb;this.j=new Rkb;this.a=new Rkb;this.b=new Lqb;this.k=new Lqb} +function aKd(a,b){var c,d;if(a.Db>>16==6){return a.Cb.ih(a,5,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Wz(a){Rz();var b=a.e;if(b&&b.stack){var c=b.stack;var d=b+'\n';c.substring(0,d.length)==d&&(c=c.substring(d.length));return c.split('\n')}return []} +function jeb(a){var b;b=(qeb(),peb);return b[a>>>28]|b[a>>24&15]<<4|b[a>>20&15]<<8|b[a>>16&15]<<12|b[a>>12&15]<<16|b[a>>8&15]<<20|b[a>>4&15]<<24|b[a&15]<<28} +function _jb(a){var b,c,d;if(a.b!=a.c){return}d=a.a.length;c=geb($wnd.Math.max(8,d))<<1;if(a.b!=0){b=_Bb(a.a,c);$jb(a,b,d);a.a=b;a.b=0}else{dCb(a.a,c)}a.c=d} +function DKb(a,b){var c;c=a.b;return c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Tcd)?-c.rf().a-Edb(ED(c.We(s9c))):b+Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Tcd)?-c.rf().a:b} +function P_b(a){var b;if(a.b.c.length!=0&&!!BD(Ikb(a.b,0),70).a){return BD(Ikb(a.b,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.c?-1:Jkb(a.c.a,a,0))} +function C0b(a){var b;if(a.f.c.length!=0&&!!BD(Ikb(a.f,0),70).a){return BD(Ikb(a.f,0),70).a}b=JZb(a);if(b!=null){return b}return ''+(!a.i?-1:Jkb(a.i.j,a,0))} +function Ogc(a,b){var c,d;if(b<0||b>=a.gc()){return null}for(c=b;c<a.gc();++c){d=BD(a.Xb(c),128);if(c==a.gc()-1||!d.o){return new vgd(meb(c),d)}}return null} +function uoc(a,b,c){var d,e,f,g,h;f=a.c;h=c?b:a;d=c?a:b;for(e=h.p+1;e<d.p;++e){g=BD(Ikb(f.a,e),10);if(!(g.k==(j0b(),d0b)||voc(g))){return false}}return true} +function u$c(a){var b,c,d,e,f;f=0;e=Qje;d=0;for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),187);f+=b.r+(d>0?a.c:0);e=$wnd.Math.max(e,b.d);++d}a.e=f;a.b=e} +function shd(a){var b,c;if(!a.b){a.b=Qu(BD(a.f,118).Ag().i);for(c=new Fyd(BD(a.f,118).Ag());c.e!=c.i.gc();){b=BD(Dyd(c),137);Ekb(a.b,new dhd(b))}}return a.b} +function Ctd(a,b){var c,d,e;if(b.dc()){return LCd(),LCd(),KCd}else{c=new zyd(a,b.gc());for(e=new Fyd(a);e.e!=e.i.gc();){d=Dyd(e);b.Hc(d)&&wtd(c,d)}return c}} +function bkd(a,b,c,d){if(b==0){return d?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),a.o):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),FAd(a.o))}return fid(a,b,c,d)} +function Tnd(a){var b,c;if(a.rb){for(b=0,c=a.rb.i;b<c;++b){Cmd(qud(a.rb,b))}}if(a.vb){for(b=0,c=a.vb.i;b<c;++b){Cmd(qud(a.vb,b))}}u1d((O6d(),M6d),a);a.Bb|=1} +function _nd(a,b,c,d,e,f,g,h,i,j,k,l,m,n){aod(a,b,d,null,e,f,g,h,i,j,m,true,n);CUd(a,k);JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),2);!!c&&DUd(a,c);EUd(a,l);return a} +function jZd(b){var c,d;if(b==null){return null}d=0;try{d=Icb(b,Rie,Ohe)&aje}catch(a){a=ubb(a);if(JD(a,127)){c=rfb(b);d=c[0]}else throw vbb(a)}return bdb(d)} +function kZd(b){var c,d;if(b==null){return null}d=0;try{d=Icb(b,Rie,Ohe)&aje}catch(a){a=ubb(a);if(JD(a,127)){c=rfb(b);d=c[0]}else throw vbb(a)}return bdb(d)} +function bD(a,b){var c,d,e;e=a.h-b.h;if(e<0){return false}c=a.l-b.l;d=a.m-b.m+(c>>22);e+=d>>22;if(e<0){return false}a.l=c&Eje;a.m=d&Eje;a.h=e&Fje;return true} +function Fwb(a,b,c,d,e,f,g){var h,i;if(b.Ae()&&(i=a.a.ue(c,d),i<0||!e&&i==0)){return false}if(b.Be()&&(h=a.a.ue(c,f),h>0||!g&&h==0)){return false}return true} +function Vcc(a,b){Occ();var c;c=a.j.g-b.j.g;if(c!=0){return 0}switch(a.j.g){case 2:return Ycc(b,Ncc)-Ycc(a,Ncc);case 4:return Ycc(a,Mcc)-Ycc(b,Mcc);}return 0} +function Tqc(a){switch(a.g){case 0:return Mqc;case 1:return Nqc;case 2:return Oqc;case 3:return Pqc;case 4:return Qqc;case 5:return Rqc;default:return null;}} +function End(a,b,c){var d,e;d=(e=new rUd,yId(e,b),pnd(e,c),wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),e),e);AId(d,0);DId(d,1);CId(d,true);BId(d,true);return d} +function tud(a,b){var c,d;if(b>=a.i)throw vbb(new $zd(b,a.i));++a.j;c=a.g[b];d=a.i-b-1;d>0&&$fb(a.g,b+1,a.g,b,d);NC(a.g,--a.i,null);a.fi(b,c);a.ci();return c} +function UId(a,b){var c,d;if(a.Db>>16==17){return a.Cb.ih(a,21,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?a.zh():c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function iDb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.a<e.c.c.length;){d=mlb(e);for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),679);b.Ke(d)}}} +function pXb(a){var b,c,d,e;mmb();Okb(a.c,a.a);for(e=new olb(a.c);e.a<e.c.c.length;){d=mlb(e);for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),369);b.Ke(d)}}} +function AGb(a){var b,c,d,e,f;e=Ohe;f=null;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),213);if(c.d.j^c.e.j){b=c.e.e-c.d.e-c.a;if(b<e){e=b;f=c}}}return f} +function OSb(){OSb=ccb;MSb=new Nsd(Mme,(Bcb(),false));ISb=new Nsd(Nme,100);KSb=(yTb(),wTb);JSb=new Nsd(Ome,KSb);LSb=new Nsd(Pme,qme);NSb=new Nsd(Qme,meb(Ohe))} +function ric(a,b,c){var d,e,f,g,h,i,j,k;j=0;for(e=a.a[b],f=0,g=e.length;f<g;++f){d=e[f];k=CHc(d,c);for(i=k.Kc();i.Ob();){h=BD(i.Pb(),11);Rhb(a.f,h,meb(j++))}}} +function uqd(a,b,c){var d,e,f,g;if(c){e=c.a.length;d=new Yge(e);for(g=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);g.Ob();){f=BD(g.Pb(),19);Rc(a,b,Vpd(tB(c,f.a)))}}} +function vqd(a,b,c){var d,e,f,g;if(c){e=c.a.length;d=new Yge(e);for(g=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);g.Ob();){f=BD(g.Pb(),19);Rc(a,b,Vpd(tB(c,f.a)))}}} +function Bkc(a){gkc();var b;b=BD(Ee(Ec(a.k),KC(F1,bne,61,2,0,1)),122);Klb(b,0,b.length,null);if(b[0]==(Ucd(),Acd)&&b[1]==Tcd){NC(b,0,Tcd);NC(b,1,Acd)}return b} +function JHc(a,b,c){var d,e,f;e=HHc(a,b,c);f=KHc(a,e);yHc(a.b);cIc(a,b,c);mmb();Okb(e,new hIc(a));d=KHc(a,e);yHc(a.b);cIc(a,c,b);return new vgd(meb(f),meb(d))} +function jJc(){jJc=ccb;gJc=e3c(new j3c,(qUb(),pUb),(S8b(),h8b));hJc=new Msd('linearSegments.inputPrio',meb(0));iJc=new Msd('linearSegments.outputPrio',meb(0))} +function yRc(){yRc=ccb;uRc=new ARc('P1_TREEIFICATION',0);vRc=new ARc('P2_NODE_ORDERING',1);wRc=new ARc('P3_NODE_PLACEMENT',2);xRc=new ARc('P4_EDGE_ROUTING',3)} +function ZWc(){ZWc=ccb;UWc=(Y9c(),C9c);XWc=T9c;NWc=Y8c;OWc=_8c;PWc=b9c;MWc=W8c;QWc=e9c;TWc=x9c;KWc=(HWc(),wWc);LWc=xWc;RWc=zWc;SWc=BWc;VWc=CWc;WWc=DWc;YWc=FWc} +function rbd(){rbd=ccb;qbd=new tbd('UNKNOWN',0);nbd=new tbd('ABOVE',1);obd=new tbd('BELOW',2);pbd=new tbd('INLINE',3);new Msd('org.eclipse.elk.labelSide',qbd)} +function rud(a,b){var c;if(a.ni()&&b!=null){for(c=0;c<a.i;++c){if(pb(b,a.g[c])){return c}}}else{for(c=0;c<a.i;++c){if(PD(a.g[c])===PD(b)){return c}}}return -1} +function DZb(a,b,c){var d,e;if(b.c==(KAc(),IAc)&&c.c==HAc){return -1}else if(b.c==HAc&&c.c==IAc){return 1}d=HZb(b.a,a.a);e=HZb(c.a,a.a);return b.c==IAc?e-d:d-e} +function Z_b(a,b,c){if(!!c&&(b<0||b>c.a.c.length)){throw vbb(new Wdb('index must be >= 0 and <= layer node count'))}!!a.c&&Lkb(a.c.a,a);a.c=c;!!c&&Dkb(c.a,b,a)} +function p7b(a,b){var c,d,e;for(d=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);e=BD(b.Kb(c),10);return new cc(Qb(e.n.b+e.o.b/2))}return wb(),wb(),vb} +function rMc(a,b){this.c=new Lqb;this.a=a;this.b=b;this.d=BD(vNb(a,(wtc(),otc)),304);PD(vNb(a,(Nyc(),yxc)))===PD((_qc(),Zqc))?(this.e=new bNc):(this.e=new WMc)} +function $dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),33);f+=$wnd.Math.pow(c.g*c.f-b,2)}e=$wnd.Math.sqrt(f/(a.c.length-1));return e} +function bgd(a,b){var c,d;d=null;if(a.Xe((Y9c(),O9c))){c=BD(a.We(O9c),94);c.Xe(b)&&(d=c.We(b))}d==null&&!!a.yf()&&(d=a.yf().We(b));d==null&&(d=Ksd(b));return d} +function Vt(b,c){var d,e;d=b.Zc(c);try{e=d.Pb();d.Qb();return e}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't remove element "+c))}else throw vbb(a)}} +function qA(a,b){var c,d,e;d=new eB;e=new fB(d.q.getFullYear()-nje,d.q.getMonth(),d.q.getDate());c=pA(a,b,e);if(c==0||c<b.length){throw vbb(new Wdb(b))}return e} +function _tb(a,b){var c,d,e;uCb(b);lCb(b!=a);e=a.b.c.length;for(d=b.Kc();d.Ob();){c=d.Pb();Ekb(a.b,uCb(c))}if(e!=a.b.c.length){aub(a,0);return true}return false} +function bTb(){bTb=ccb;VSb=(Y9c(),O8c);new Osd(B8c,(Bcb(),true));YSb=Y8c;ZSb=_8c;$Sb=b9c;XSb=W8c;_Sb=e9c;aTb=x9c;USb=(OSb(),MSb);SSb=JSb;TSb=LSb;WSb=NSb;RSb=ISb} +function MZb(a,b){if(b==a.c){return a.d}else if(b==a.d){return a.c}else{throw vbb(new Wdb("'port' must be either the source port or target port of the edge."))}} +function C3b(a,b,c){var d,e;e=a.o;d=a.d;switch(b.g){case 1:return -d.d-c;case 3:return e.b+d.a+c;case 2:return e.a+d.c+c;case 4:return -d.b-c;default:return 0;}} +function H6b(a,b,c,d){var e,f,g,h;$_b(b,BD(d.Xb(0),29));h=d.bd(1,d.gc());for(f=BD(c.Kb(b),20).Kc();f.Ob();){e=BD(f.Pb(),17);g=e.c.i==b?e.d.i:e.c.i;H6b(a,g,c,h)}} +function Xec(a){var b;b=new Lqb;if(wNb(a,(wtc(),ttc))){return BD(vNb(a,ttc),83)}MAb(JAb(new YAb(null,new Kub(a.j,16)),new Zec),new _ec(b));yNb(a,ttc,b);return b} +function cmd(a,b){var c,d;if(a.Db>>16==6){return a.Cb.ih(a,6,B2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Lhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Eod(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,1,C2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Nhd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function lpd(a,b){var c,d;if(a.Db>>16==9){return a.Cb.ih(a,9,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Phd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function mQd(a,b){var c,d;if(a.Db>>16==5){return a.Cb.ih(a,9,h5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),VFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function KHd(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,0,k5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),OFd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Snd(a,b){var c,d;if(a.Db>>16==7){return a.Cb.ih(a,6,o5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),cGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function ird(){this.a=new bqd;this.g=new wo;this.j=new wo;this.b=new Lqb;this.d=new wo;this.i=new wo;this.k=new Lqb;this.c=new Lqb;this.e=new Lqb;this.f=new Lqb} +function MCd(a,b,c){var d,e,f;c<0&&(c=0);f=a.i;for(e=c;e<f;e++){d=qud(a,e);if(b==null){if(d==null){return e}}else if(PD(b)===PD(d)||pb(b,d)){return e}}return -1} +function b1d(a,b){var c,d;c=b.Hh(a.a);if(!c){return null}else{d=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Awe));return dfb(Bwe,d)?u1d(a,bKd(b.Hj())):d}} +function p6d(a,b){var c,d;if(b){if(b==a){return true}c=0;for(d=BD(b,49).eh();!!d&&d!=b;d=d.eh()){if(++c>Wje){return p6d(a,d)}if(d==a){return true}}}return false} +function HKb(a){CKb();switch(a.q.g){case 5:EKb(a,(Ucd(),Acd));EKb(a,Rcd);break;case 4:FKb(a,(Ucd(),Acd));FKb(a,Rcd);break;default:GKb(a,(Ucd(),Acd));GKb(a,Rcd);}} +function LKb(a){CKb();switch(a.q.g){case 5:IKb(a,(Ucd(),zcd));IKb(a,Tcd);break;case 4:JKb(a,(Ucd(),zcd));JKb(a,Tcd);break;default:KKb(a,(Ucd(),zcd));KKb(a,Tcd);}} +function XQb(a){var b,c;b=BD(vNb(a,(wSb(),pSb)),19);if(b){c=b.a;c==0?yNb(a,(HSb(),GSb),new Gub):yNb(a,(HSb(),GSb),new Hub(c))}else{yNb(a,(HSb(),GSb),new Hub(1))}} +function V$b(a,b){var c;c=a.i;switch(b.g){case 1:return -(a.n.b+a.o.b);case 2:return a.n.a-c.o.a;case 3:return a.n.b-c.o.b;case 4:return -(a.n.a+a.o.a);}return 0} +function hbc(a,b){switch(a.g){case 0:return b==(Ctc(),ytc)?dbc:ebc;case 1:return b==(Ctc(),ytc)?dbc:cbc;case 2:return b==(Ctc(),ytc)?cbc:ebc;default:return cbc;}} +function v$c(a,b){var c,d,e;Lkb(a.a,b);a.e-=b.r+(a.a.c.length==0?0:a.c);e=ere;for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),187);e=$wnd.Math.max(e,c.d)}a.b=e} +function Lld(a,b){var c,d;if(a.Db>>16==3){return a.Cb.ih(a,12,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Khd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function Uod(a,b){var c,d;if(a.Db>>16==11){return a.Cb.ih(a,10,E2,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(Thd(),Ohd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function PSd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,11,c5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),aGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function qUd(a,b){var c,d;if(a.Db>>16==10){return a.Cb.ih(a,12,n5,b)}return d=zUd(BD(XKd((c=BD(Ajd(a,16),26),!c?(jGd(),dGd):c),a.Db>>16),18)),a.Cb.ih(a,d.n,d.f,b)} +function wId(a){var b;if((a.Bb&1)==0&&!!a.r&&a.r.kh()){b=BD(a.r,49);a.r=BD(xid(a,b),138);a.r!=b&&(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,8,b,a.r))}return a.r} +function yHb(a,b,c){var d;d=OC(GC(UD,1),Vje,25,15,[BHb(a,(gHb(),dHb),b,c),BHb(a,eHb,b,c),BHb(a,fHb,b,c)]);if(a.f){d[0]=$wnd.Math.max(d[0],d[2]);d[2]=d[0]}return d} +function O9b(a,b){var c,d,e;e=V9b(a,b);if(e.c.length==0){return}Okb(e,new pac);c=e.c.length;for(d=0;d<c;d++){K9b(a,(tCb(d,e.c.length),BD(e.c[d],286)),R9b(a,e,d))}} +function qkc(a){var b,c,d,e;for(e=BD(Qc(a.a,(Xjc(),Sjc)),15).Kc();e.Ob();){d=BD(e.Pb(),101);for(c=Ec(d.k).Kc();c.Ob();){b=BD(c.Pb(),61);kkc(a,d,b,(Fkc(),Dkc),1)}}} +function voc(a){var b,c;if(a.k==(j0b(),g0b)){for(c=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!OZb(b)&&a.c==LZb(b,a).c){return true}}}return false} +function JNc(a){var b,c;if(a.k==(j0b(),g0b)){for(c=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!OZb(b)&&b.c.i.c==b.d.i.c){return true}}}return false} +function HUc(a,b){var c,d,e,f;Odd(b,'Dull edge routing',1);for(f=Jsb(a.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);for(d=Jsb(e.d,0);d.b!=d.d.c;){c=BD(Xsb(d),188);Osb(c.a)}}} +function xqd(a,b){var c,d,e,f,g;if(b){e=b.a.length;c=new Yge(e);for(g=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);g.Ob();){f=BD(g.Pb(),19);d=Zpd(b,f.a);!!d&&ard(a,d)}}} +function DZd(){tZd();var a,b;xZd((NFd(),MFd));wZd(MFd);Tnd(MFd);FQd=(jGd(),YFd);for(b=new olb(rZd);b.a<b.c.c.length;){a=BD(mlb(b),241);QQd(a,YFd,null)}return true} +function eD(a,b){var c,d,e,f,g,h,i,j;i=a.h>>19;j=b.h>>19;if(i!=j){return j-i}e=a.h;h=b.h;if(e!=h){return e-h}d=a.m;g=b.m;if(d!=g){return d-g}c=a.l;f=b.l;return c-f} +function fFb(){fFb=ccb;eFb=(rFb(),oFb);dFb=new Nsd(Yke,eFb);cFb=(UEb(),TEb);bFb=new Nsd(Zke,cFb);aFb=(MEb(),LEb);_Eb=new Nsd($ke,aFb);$Eb=new Nsd(_ke,(Bcb(),true))} +function cfc(a,b,c){var d,e;d=b*c;if(JD(a.g,145)){e=ugc(a);if(e.f.d){e.f.a||(a.d.a+=d+ple)}else{a.d.d-=d+ple;a.d.a+=d+ple}}else if(JD(a.g,10)){a.d.d-=d;a.d.a+=2*d}} +function vmc(a,b,c){var d,e,f,g,h;e=a[c.g];for(h=new olb(b.d);h.a<h.c.c.length;){g=BD(mlb(h),101);f=g.i;if(!!f&&f.i==c){d=g.d[c.g];e[d]=$wnd.Math.max(e[d],f.j.b)}}} +function AZc(a,b){var c,d,e,f,g;d=0;e=0;c=0;for(g=new olb(b.d);g.a<g.c.c.length;){f=BD(mlb(g),443);a$c(f);d=$wnd.Math.max(d,f.b);e+=f.d+(c>0?a.g:0);++c}b.b=d;b.e=e} +function to(a){var b,c,d;d=a.b;if(Lp(a.i,d.length)){c=d.length*2;a.b=KC(GF,Gie,317,c,0,1);a.c=KC(GF,Gie,317,c,0,1);a.f=c-1;a.i=0;for(b=a.a;b;b=b.c){po(a,b,b)}++a.g}} +function cNb(a,b,c,d){var e,f,g,h;for(e=0;e<b.o;e++){f=e-b.j+c;for(g=0;g<b.p;g++){h=g-b.k+d;YMb(b,e,g)?jNb(a,f,h)||lNb(a,f,h):$Mb(b,e,g)&&(hNb(a,f,h)||mNb(a,f,h))}}} +function Ooc(a,b,c){var d;d=b.c.i;if(d.k==(j0b(),g0b)){yNb(a,(wtc(),Vsc),BD(vNb(d,Vsc),11));yNb(a,Wsc,BD(vNb(d,Wsc),11))}else{yNb(a,(wtc(),Vsc),b.c);yNb(a,Wsc,c.d)}} +function l6c(a,b,c){i6c();var d,e,f,g,h,i;g=b/2;f=c/2;d=$wnd.Math.abs(a.a);e=$wnd.Math.abs(a.b);h=1;i=1;d>g&&(h=g/d);e>f&&(i=f/e);Y6c(a,$wnd.Math.min(h,i));return a} +function ond(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),yte),2014);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new knd} +function Y9d(){A9d();var b,c;try{c=BD(mUd((yFd(),xFd),Ewe),2024);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new U9d} +function qZd(){Smd();var b,c;try{c=BD(mUd((yFd(),xFd),_ve),1941);if(c){return c}}catch(a){a=ubb(a);if(JD(a,102)){b=a;uvd((h0d(),b))}else throw vbb(a)}return new mZd} +function HQd(a,b,c){var d,e;e=a.e;a.e=b;if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,4,e,b);!c?(c=d):c.Ei(d)}e!=b&&(b?(c=QQd(a,MQd(a,b),c)):(c=QQd(a,a.a,c)));return c} +function nB(){eB.call(this);this.e=-1;this.a=false;this.p=Rie;this.k=-1;this.c=-1;this.b=-1;this.g=false;this.f=-1;this.j=-1;this.n=-1;this.i=-1;this.d=-1;this.o=Rie} +function qEb(a,b){var c,d,e;d=a.b.d.d;a.a||(d+=a.b.d.a);e=b.b.d.d;b.a||(e+=b.b.d.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function eOb(a,b){var c,d,e;d=a.b.b.d;a.a||(d+=a.b.b.a);e=b.b.b.d;b.a||(e+=b.b.b.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function PVb(a,b){var c,d,e;d=a.b.g.d;a.a||(d+=a.b.g.a);e=b.b.g.d;b.a||(e+=b.b.g.a);c=Kdb(d,e);if(c==0){if(!a.a&&b.a){return -1}else if(!b.a&&a.a){return 1}}return c} +function ZTb(){ZTb=ccb;WTb=c3c(e3c(e3c(e3c(new j3c,(qUb(),oUb),(S8b(),m8b)),oUb,q8b),pUb,x8b),pUb,a8b);YTb=e3c(e3c(new j3c,oUb,S7b),oUb,b8b);XTb=c3c(new j3c,pUb,d8b)} +function s3b(a){var b,c,d,e,f;b=BD(vNb(a,(wtc(),Csc)),83);f=a.n;for(d=b.Cc().Kc();d.Ob();){c=BD(d.Pb(),306);e=c.i;e.c+=f.a;e.d+=f.b;c.c?VHb(c):XHb(c)}yNb(a,Csc,null)} +function qmc(a,b,c){var d,e;e=a.b;d=e.d;switch(b.g){case 1:return -d.d-c;case 2:return e.o.a+d.c+c;case 3:return e.o.b+d.a+c;case 4:return -d.b-c;default:return -1;}} +function BXc(a){var b,c,d,e,f;d=0;e=dme;if(a.b){for(b=0;b<360;b++){c=b*0.017453292519943295;zXc(a,a.d,0,0,dre,c);f=a.b.ig(a.d);if(f<e){d=c;e=f}}}zXc(a,a.d,0,0,dre,d)} +function E$c(a,b){var c,d,e,f;f=new Lqb;b.e=null;b.f=null;for(d=new olb(b.i);d.a<d.c.c.length;){c=BD(mlb(d),65);e=BD(Ohb(a.g,c.a),46);c.a=D6c(c.b);Rhb(f,c.a,e)}a.g=f} +function t$c(a,b,c){var d,e,f,g,h,i;e=b-a.e;f=e/a.d.c.length;g=0;for(i=new olb(a.d);i.a<i.c.c.length;){h=BD(mlb(i),443);d=a.b-h.b+c;_Zc(h,h.e+g*f,h.f);XZc(h,f,d);++g}} +function YBd(a){var b;a.f.qj();if(a.b!=-1){++a.b;b=a.f.d[a.a];if(a.b<b.i){return}++a.a}for(;a.a<a.f.d.length;++a.a){b=a.f.d[a.a];if(!!b&&b.i!=0){a.b=0;return}}a.b=-1} +function j0d(a,b){var c,d,e;e=b.c.length;c=l0d(a,e==0?'':(tCb(0,b.c.length),GD(b.c[0])));for(d=1;d<e&&!!c;++d){c=BD(c,49).oh((tCb(d,b.c.length),GD(b.c[d])))}return c} +function rEc(a,b){var c,d;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),10);a.c[c.c.p][c.p].a=Aub(a.i);a.c[c.c.p][c.p].d=Edb(a.c[c.c.p][c.p].a);a.c[c.c.p][c.p].b=1}} +function _dd(a,b){var c,d,e,f;f=0;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),157);f+=$wnd.Math.pow(red(c)*qed(c)-b,2)}e=$wnd.Math.sqrt(f/(a.c.length-1));return e} +function LHc(a,b,c,d){var e,f,g;f=GHc(a,b,c,d);g=MHc(a,f);bIc(a,b,c,d);yHc(a.b);mmb();Okb(f,new lIc(a));e=MHc(a,f);bIc(a,c,b,d);yHc(a.b);return new vgd(meb(g),meb(e))} +function cJc(a,b,c){var d,e;Odd(c,'Interactive node placement',1);a.a=BD(vNb(b,(wtc(),otc)),304);for(e=new olb(b.b);e.a<e.c.c.length;){d=BD(mlb(e),29);bJc(a,d)}Qdd(c)} +function MVc(a,b){var c;Odd(b,'General Compactor',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));c=qWc(BD(hkd(a,(ZWc(),LWc)),380));c.hg(a);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} +function Dfd(a,b,c){var d,e;nmd(a,a.j+b,a.k+c);for(e=new Fyd((!a.a&&(a.a=new xMd(y2,a,5)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),469);ukd(d,d.a+b,d.b+c)}gmd(a,a.b+b,a.c+c)} +function vld(a,b,c,d){switch(c){case 7:return !a.e&&(a.e=new y5d(B2,a,7,4)),Sxd(a.e,b,d);case 8:return !a.d&&(a.d=new y5d(B2,a,8,5)),Sxd(a.d,b,d);}return Fkd(a,b,c,d)} +function wld(a,b,c,d){switch(c){case 7:return !a.e&&(a.e=new y5d(B2,a,7,4)),Txd(a.e,b,d);case 8:return !a.d&&(a.d=new y5d(B2,a,8,5)),Txd(a.d,b,d);}return Gkd(a,b,c,d)} +function lqd(a,b,c){var d,e,f,g,h;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&drd(a,e,b)}}} +function HAd(a,b,c){var d,e,f,g,h;a.qj();f=b==null?0:tb(b);if(a.f>0){g=(f&Ohe)%a.d.length;e=wAd(a,g,f,b);if(e){h=e.ed(c);return h}}d=a.tj(f,b,c);a.c.Fc(d);return null} +function t1d(a,b){var c,d,e,f;switch(o1d(a,b)._k()){case 3:case 2:{c=OKd(b);for(e=0,f=c.i;e<f;++e){d=BD(qud(c,e),34);if($1d(q1d(a,d))==5){return d}}break}}return null} +function Qs(a){var b,c,d,e,f;if(Lp(a.f,a.b.length)){d=KC(BG,Gie,330,a.b.length*2,0,1);a.b=d;e=d.length-1;for(c=a.a;c!=a;c=c.Rd()){f=BD(c,330);b=f.d&e;f.a=d[b];d[b]=f}}} +function DJb(a,b){var c,d,e,f;f=0;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);f=$wnd.Math.max(f,d.e.a+d.b.rf().a)}c=BD(Mpb(a.b,b),124);c.n.b=0;c.a.a=f} +function MKb(a,b){var c,d,e,f;c=0;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);c=$wnd.Math.max(c,e.e.b+e.b.rf().b)}d=BD(Mpb(a.b,b),124);d.n.d=0;d.a.b=c} +function INc(a){var b,c;c=BD(vNb(a,(wtc(),Ksc)),21);b=k3c(zNc);c.Hc((Orc(),Lrc))&&d3c(b,CNc);c.Hc(Nrc)&&d3c(b,ENc);c.Hc(Erc)&&d3c(b,ANc);c.Hc(Grc)&&d3c(b,BNc);return b} +function j1c(a,b){var c;Odd(b,'Delaunay triangulation',1);c=new Rkb;Hkb(a.i,new n1c(c));Ccb(DD(vNb(a,(XNb(),VNb))))&&'null10bw';!a.e?(a.e=NCb(c)):ye(a.e,NCb(c));Qdd(b)} +function q6c(a){if(a<0){throw vbb(new Wdb('The input must be positive'))}else return a<h6c.length?Sbb(h6c[a]):$wnd.Math.sqrt(dre*a)*(y6c(a,a)/x6c(2.718281828459045,a))} +function pud(a,b){var c;if(a.ni()&&b!=null){for(c=0;c<a.i;++c){if(pb(b,a.g[c])){return true}}}else{for(c=0;c<a.i;++c){if(PD(a.g[c])===PD(b)){return true}}}return false} +function jr(a,b){if(b==null){while(a.a.Ob()){if(BD(a.a.Pb(),42).dd()==null){return true}}}else{while(a.a.Ob()){if(pb(b,BD(a.a.Pb(),42).dd())){return true}}}return false} +function zy(a,b){var c,d,e;if(b===a){return true}else if(JD(b,664)){e=BD(b,1947);return Ue((d=a.g,!d?(a.g=new vi(a)):d),(c=e.g,!c?(e.g=new vi(e)):c))}else{return false}} +function Tz(a){var b,c,d,e;b='Sz';c='ez';e=$wnd.Math.min(a.length,5);for(d=e-1;d>=0;d--){if(dfb(a[d].d,b)||dfb(a[d].d,c)){a.length>=d+1&&a.splice(0,d+1);break}}return a} +function Abb(a,b){var c;if(Fbb(a)&&Fbb(b)){c=a/b;if(Kje<c&&c<Ije){return c<0?$wnd.Math.ceil(c):$wnd.Math.floor(c)}}return zbb(UC(Fbb(a)?Rbb(a):a,Fbb(b)?Rbb(b):b,false))} +function LZb(a,b){if(b==a.c.i){return a.d.i}else if(b==a.d.i){return a.c.i}else{throw vbb(new Wdb("'node' must either be the source node or target node of the edge."))}} +function C2b(a){var b,c,d,e;e=BD(vNb(a,(wtc(),xsc)),37);if(e){d=new d7c;b=Q_b(a.c.i);while(b!=e){c=b.e;b=Q_b(c);O6c(P6c(P6c(d,c.n),b.c),b.d.b,b.d.d)}return d}return w2b} +function Ldc(a){var b;b=BD(vNb(a,(wtc(),ntc)),403);MAb(LAb(new YAb(null,new Kub(b.d,16)),new Ydc),new $dc(a));MAb(JAb(new YAb(null,new Kub(b.d,16)),new aec),new cec(a))} +function woc(a,b){var c,d,e,f;e=b?U_b(a):R_b(a);for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);f=LZb(c,a);if(f.k==(j0b(),g0b)&&f.c!=a.c){return f}}return null} +function HDc(a){var b,c,d;for(c=new olb(a.p);c.a<c.c.c.length;){b=BD(mlb(c),10);if(b.k!=(j0b(),h0b)){continue}d=b.o.b;a.i=$wnd.Math.min(a.i,d);a.g=$wnd.Math.max(a.g,d)}} +function oEc(a,b,c){var d,e,f;for(f=new olb(b);f.a<f.c.c.length;){d=BD(mlb(f),10);a.c[d.c.p][d.p].e=false}for(e=new olb(b);e.a<e.c.c.length;){d=BD(mlb(e),10);nEc(a,d,c)}} +function WOc(a,b,c){var d,e;d=vPc(b.j,c.s,c.c)+vPc(c.e,b.s,b.c);e=vPc(c.j,b.s,b.c)+vPc(b.e,c.s,c.c);if(d==e){if(d>0){a.b+=2;a.a+=d}}else{a.b+=1;a.a+=$wnd.Math.min(d,e)}} +function Rpd(a,b){var c,d;d=false;if(ND(b)){d=true;Qpd(a,new yC(GD(b)))}if(!d){if(JD(b,236)){d=true;Qpd(a,(c=Kcb(BD(b,236)),new TB(c)))}}if(!d){throw vbb(new vcb(Ute))}} +function IMd(a,b,c,d){var e,f,g;e=new pSd(a.e,1,10,(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd)),(f=c.c,JD(f,88)?BD(f,26):(jGd(),_Fd)),HLd(a,b),false);!d?(d=e):d.Ei(e);return d} +function T_b(a){var b,c;switch(BD(vNb(Q_b(a),(Nyc(),ixc)),420).g){case 0:b=a.n;c=a.o;return new f7c(b.a+c.a/2,b.b+c.b/2);case 1:return new g7c(a.n);default:return null;}} +function lrc(){lrc=ccb;irc=new mrc(ane,0);hrc=new mrc('LEFTUP',1);krc=new mrc('RIGHTUP',2);grc=new mrc('LEFTDOWN',3);jrc=new mrc('RIGHTDOWN',4);frc=new mrc('BALANCED',5)} +function FFc(a,b,c){var d,e,f;d=Kdb(a.a[b.p],a.a[c.p]);if(d==0){e=BD(vNb(b,(wtc(),Qsc)),15);f=BD(vNb(c,Qsc),15);if(e.Hc(c)){return -1}else if(f.Hc(b)){return 1}}return d} +function jXc(a){switch(a.g){case 1:return new XVc;case 2:return new ZVc;case 3:return new VVc;case 0:return null;default:throw vbb(new Wdb(jre+(a.f!=null?a.f:''+a.g)));}} +function Ikd(a,b,c){switch(b){case 1:!a.n&&(a.n=new cUd(D2,a,1,7));Uxd(a.n);!a.n&&(a.n=new cUd(D2,a,1,7));ytd(a.n,BD(c,14));return;case 2:Lkd(a,GD(c));return;}ekd(a,b,c)} +function Zkd(a,b,c){switch(b){case 3:ald(a,Edb(ED(c)));return;case 4:cld(a,Edb(ED(c)));return;case 5:dld(a,Edb(ED(c)));return;case 6:eld(a,Edb(ED(c)));return;}Ikd(a,b,c)} +function Fnd(a,b,c){var d,e,f;f=(d=new rUd,d);e=xId(f,b,null);!!e&&e.Fi();pnd(f,c);wtd((!a.c&&(a.c=new cUd(p5,a,12,10)),a.c),f);AId(f,0);DId(f,1);CId(f,true);BId(f,true)} +function mUd(a,b){var c,d,e;c=Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e.Nh()}else if(JD(c,498)){d=BD(c,1938);e=d.b;return e}else{return null}} +function Ui(a,b,c,d){var e,f;Qb(b);Qb(c);f=BD(tn(a.d,b),19);Ob(!!f,'Row %s not in %s',b,a.e);e=BD(tn(a.b,c),19);Ob(!!e,'Column %s not in %s',c,a.c);return Wi(a,f.a,e.a,d)} +function JC(a,b,c,d,e,f,g){var h,i,j,k,l;k=e[f];j=f==g-1;h=j?d:0;l=LC(h,k);d!=10&&OC(GC(a,g-f),b[f],c[f],h,l);if(!j){++f;for(i=0;i<k;++i){l[i]=JC(a,b,c,d,e,f,g)}}return l} +function Eyd(b){if(b.g==-1){throw vbb(new Ydb)}b.mj();try{b.i.$c(b.g);b.f=b.i.j;b.g<b.e&&--b.e;b.g=-1}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}} +function hYb(a,b){a.b.a=$wnd.Math.min(a.b.a,b.c);a.b.b=$wnd.Math.min(a.b.b,b.d);a.a.a=$wnd.Math.max(a.a.a,b.c);a.a.b=$wnd.Math.max(a.a.b,b.d);return a.c[a.c.length]=b,true} +function nZb(a){var b,c,d,e;e=-1;d=0;for(c=new olb(a);c.a<c.c.c.length;){b=BD(mlb(c),243);if(b.c==(KAc(),HAc)){e=d==0?0:d-1;break}else d==a.c.length-1&&(e=d);d+=1}return e} +function UZc(a){var b,c,d,e;e=0;b=0;for(d=new olb(a.c);d.a<d.c.c.length;){c=BD(mlb(d),33);dld(c,a.e+e);eld(c,a.f);e+=c.g+a.b;b=$wnd.Math.max(b,c.f+a.b)}a.d=e-a.b;a.a=b-a.b} +function bEb(a){var b,c,d;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);d=b.d.c;b.d.c=b.d.d;b.d.d=d;d=b.d.b;b.d.b=b.d.a;b.d.a=d;d=b.b.a;b.b.a=b.b.b;b.b.b=d}RDb(a)} +function BVb(a){var b,c,d;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);d=b.g.c;b.g.c=b.g.d;b.g.d=d;d=b.g.b;b.g.b=b.g.a;b.g.a=d;d=b.e.a;b.e.a=b.e.b;b.e.b=d}sVb(a)} +function Lmc(a){var b,c,d,e,f;f=Ec(a.k);for(c=(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])),d=0,e=c.length;d<e;++d){b=c[d];if(b!=Scd&&!f.Hc(b)){return b}}return null} +function znc(a,b){var c,d;d=BD(Etb(KAb(JAb(new YAb(null,new Kub(b.j,16)),new Pnc))),11);if(d){c=BD(Ikb(d.e,0),17);if(c){return BD(vNb(c,(wtc(),Zsc)),19).a}}return yzc(a.b)} +function CCc(a,b){var c,d,e,f;for(f=new olb(b.a);f.a<f.c.c.length;){e=BD(mlb(f),10);Blb(a.d);for(d=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);zCc(a,e,c.d.i)}}} +function NZc(a,b){var c,d;Lkb(a.b,b);for(d=new olb(a.n);d.a<d.c.c.length;){c=BD(mlb(d),211);if(Jkb(c.c,b,0)!=-1){Lkb(c.c,b);UZc(c);c.c.c.length==0&&Lkb(a.n,c);break}}HZc(a)} +function $Zc(a,b){var c,d,e,f,g;g=a.f;e=0;f=0;for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),187);OZc(c,a.e,g);KZc(c,b);f=$wnd.Math.max(f,c.r);g+=c.d+a.c;e=g}a.d=f;a.b=e} +function hVc(a){var b,c;c=$sd(a);if(Qq(c)){return null}else{b=(Qb(c),BD(mr(new Sr(ur(c.a.Kc(),new Sq))),79));return atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82))}} +function XId(a){var b;if(!a.o){b=a.Lj();b?(a.o=new dYd(a,a,null)):a.rk()?(a.o=new uVd(a,null)):$1d(q1d((O6d(),M6d),a))==1?(a.o=new nYd(a)):(a.o=new sYd(a,null))}return a.o} +function w6d(a,b,c,d){var e,f,g,h,i;if(c.mh(b)){e=(g=b,!g?null:BD(d,49).xh(g));if(e){i=c.ah(b);h=b.t;if(h>1||h==-1){f=BD(i,15);e.Wb(t6d(a,f))}else{e.Wb(s6d(a,BD(i,56)))}}}} +function Zbb(b,c,d,e){Ybb();var f=Wbb;$moduleName=c;$moduleBase=d;tbb=e;function g(){for(var a=0;a<f.length;a++){f[a]()}} +if(b){try{Ihe(g)()}catch(a){b(c,a)}}else{Ihe(g)()}} +function Kgc(a){var b,c,d,e,f;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);b=BD(c.cd(),10);f=BD(BD(c.dd(),46).a,10);e=BD(BD(c.dd(),46).b,8);P6c(X6c(b.n),P6c(R6c(f.n),e))}} +function llc(a){switch(BD(vNb(a.b,(Nyc(),Vwc)),375).g){case 1:MAb(NAb(LAb(new YAb(null,new Kub(a.d,16)),new Glc),new Ilc),new Klc);break;case 2:nlc(a);break;case 0:mlc(a);}} +function KXc(a,b,c){var d;Odd(c,'Straight Line Edge Routing',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));d=BD(hkd(b,(MUc(),LUc)),33);LXc(a,d);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} +function i8c(){i8c=ccb;h8c=new j8c('V_TOP',0);g8c=new j8c('V_CENTER',1);f8c=new j8c('V_BOTTOM',2);d8c=new j8c('H_LEFT',3);c8c=new j8c('H_CENTER',4);e8c=new j8c('H_RIGHT',5)} +function gLd(a){var b;if((a.Db&64)!=0)return mKd(a);b=new Jfb(mKd(a));b.a+=' (abstract: ';Ffb(b,(a.Bb&256)!=0);b.a+=', interface: ';Ffb(b,(a.Bb&512)!=0);b.a+=')';return b.a} +function l3d(a,b,c,d){var e,f,g,h;if(oid(a.e)){e=b.ak();h=b.dd();f=c.dd();g=H2d(a,1,e,h,f,e.$j()?M2d(a,e,f,JD(e,99)&&(BD(e,18).Bb&Tje)!=0):-1,true);d?d.Ei(g):(d=g)}return d} +function kz(a){var b;if(a.c==null){b=PD(a.b)===PD(iz)?null:a.b;a.d=b==null?Xhe:MD(b)?nz(FD(b)):ND(b)?Vie:hdb(rb(b));a.a=a.a+': '+(MD(b)?mz(FD(b)):b+'');a.c='('+a.d+') '+a.a}} +function Wgb(a,b){this.e=a;if(Bbb(xbb(b,-4294967296),0)){this.d=1;this.a=OC(GC(WD,1),oje,25,15,[Tbb(b)])}else{this.d=2;this.a=OC(GC(WD,1),oje,25,15,[Tbb(b),Tbb(Obb(b,32))])}} +function yrb(){function b(){try{return (new Map).entries().next().done}catch(a){return false}} +if(typeof Map===Nhe&&Map.prototype.entries&&b()){return Map}else{return zrb()}} +function VPc(a,b){var c,d,e,f;f=new Bib(a.e,0);c=0;while(f.b<f.d.gc()){d=Edb((sCb(f.b<f.d.gc()),ED(f.d.Xb(f.c=f.b++))));e=d-b;if(e>Oqe){return c}else e>-1.0E-6&&++c}return c} +function PQd(a,b){var c;if(b!=a.b){c=null;!!a.b&&(c=lid(a.b,a,-4,c));!!b&&(c=kid(b,a,-4,c));c=GQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function SQd(a,b){var c;if(b!=a.f){c=null;!!a.f&&(c=lid(a.f,a,-1,c));!!b&&(c=kid(b,a,-1,c));c=IQd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,0,b,b))} +function E9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function I9d(a){var b,c,d;if(a==null)return null;c=BD(a,15);if(c.dc())return '';d=new Hfb;for(b=c.Kc();b.Ob();){Efb(d,(Q8d(),GD(b.Pb())));d.a+=' '}return lcb(d,d.a.length-1)} +function qEc(a,b,c){var d,e;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){return Ddb(d.a,e.a)}else if(d.a!=null){return -1}else if(e.a!=null){return 1}return 0} +function zqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new Crd(a);Aqd(d.a,e)}}} +function Qqd(a,b){var c,d,e,f,g,h;if(b){f=b.a.length;c=new Yge(f);for(h=(c.b-c.a)*c.c<0?(Xge(),Wge):new she(c);h.Ob();){g=BD(h.Pb(),19);e=Zpd(b,g.a);d=new lrd(a);nqd(d.a,e)}}} +function eFd(b){var c;if(b!=null&&b.length>0&&bfb(b,b.length-1)==33){try{c=PEd(qfb(b,0,b.length-1));return c.e==null}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}return false} +function h3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,3,d,null,f,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,1,d,d.zj(),f,-1,true);c?c.Ei(e):(c=e);return c} +function Vee(){var a,b,c;b=0;for(a=0;a<'X'.length;a++){c=Uee((BCb(a,'X'.length),'X'.charCodeAt(a)));if(c==0)throw vbb(new mde('Unknown Option: '+'X'.substr(a)));b|=c}return b} +function mZb(a,b,c){var d,e,f;d=Q_b(b);e=a_b(d);f=new H0b;F0b(f,b);switch(c.g){case 1:G0b(f,Wcd(Zcd(e)));break;case 2:G0b(f,Zcd(e));}yNb(f,(Nyc(),Uxc),ED(vNb(a,Uxc)));return f} +function U9b(a){var b,c;b=BD(Rr(new Sr(ur(R_b(a.a).a.Kc(),new Sq))),17);c=BD(Rr(new Sr(ur(U_b(a.a).a.Kc(),new Sq))),17);return Ccb(DD(vNb(b,(wtc(),ltc))))||Ccb(DD(vNb(c,ltc)))} +function Xjc(){Xjc=ccb;Tjc=new Yjc('ONE_SIDE',0);Vjc=new Yjc('TWO_SIDES_CORNER',1);Wjc=new Yjc('TWO_SIDES_OPPOSING',2);Ujc=new Yjc('THREE_SIDES',3);Sjc=new Yjc('FOUR_SIDES',4)} +function jkc(a,b,c,d,e){var f,g;f=BD(GAb(JAb(b.Oc(),new _kc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);g=BD(Si(a.b,c,d),15);e==0?g.Wc(0,f):g.Gc(f)} +function KDc(a,b){var c,d,e,f,g;for(f=new olb(b.a);f.a<f.c.c.length;){e=BD(mlb(f),10);for(d=new Sr(ur(R_b(e).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=c.c.i.p;a.n[g]=a.n[g]-1}}} +function cnc(a,b){var c,d,e,f,g;for(f=new olb(b.d);f.a<f.c.c.length;){e=BD(mlb(f),101);g=BD(Ohb(a.c,e),112).o;for(d=new Gqb(e.b);d.a<d.c.a.length;){c=BD(Fqb(d),61);ojc(e,c,g)}}} +function HJc(a){var b,c;for(c=new olb(a.e.b);c.a<c.c.c.length;){b=BD(mlb(c),29);YJc(a,b)}MAb(JAb(LAb(LAb(new YAb(null,new Kub(a.e.b,16)),new YKc),new tLc),new vLc),new xLc(a))} +function Qwd(a,b){if(!b){return false}else{if(a.Di(b)){return false}if(!a.i){if(JD(b,143)){a.i=BD(b,143);return true}else{a.i=new Hxd;return a.i.Ei(b)}}else{return a.i.Ei(b)}}} +function B9d(a){a=Qge(a,true);if(dfb(kse,a)||dfb('1',a)){return Bcb(),Acb}else if(dfb(lse,a)||dfb('0',a)){return Bcb(),zcb}throw vbb(new n8d("Invalid boolean value: '"+a+"'"))} +function Kd(a,b,c){var d,e,f;for(e=a.vc().Kc();e.Ob();){d=BD(e.Pb(),42);f=d.cd();if(PD(b)===PD(f)||b!=null&&pb(b,f)){if(c){d=new pjb(d.cd(),d.dd());e.Qb()}return d}}return null} +function dKb(a){$Jb();var b,c,d;if(!a.B.Hc((Idd(),Add))){return}d=a.f.i;b=new K6c(a.a.c);c=new p0b;c.b=b.c-d.c;c.d=b.d-d.d;c.c=d.c+d.b-(b.c+b.b);c.a=d.d+d.a-(b.d+b.a);a.e.Ff(c)} +function LNb(a,b,c,d){var e,f,g;g=$wnd.Math.min(c,ONb(BD(a.b,65),b,c,d));for(f=new olb(a.a);f.a<f.c.c.length;){e=BD(mlb(f),221);e!=b&&(g=$wnd.Math.min(g,LNb(e,b,g,d)))}return g} +function WZb(a){var b,c,d,e;e=KC(OQ,nie,193,a.b.c.length,0,2);d=new Bib(a.b,0);while(d.b<d.d.gc()){b=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),29));c=d.b-1;e[c]=l_b(b.a)}return e} +function K3b(a,b,c,d,e){var f,g,h,i;g=eLb(dLb(iLb(H3b(c)),d),C3b(a,c,e));for(i=Y_b(a,c).Kc();i.Ob();){h=BD(i.Pb(),11);if(b[h.p]){f=b[h.p].i;Ekb(g.d,new BLb(f,bLb(g,f)))}}cLb(g)} +function sic(a,b){this.f=new Lqb;this.b=new Lqb;this.j=new Lqb;this.a=a;this.c=b;this.c>0&&ric(this,this.c-1,(Ucd(),zcd));this.c<this.a.length-1&&ric(this,this.c+1,(Ucd(),Tcd))} +function SEc(a){a.length>0&&a[0].length>0&&(this.c=Ccb(DD(vNb(Q_b(a[0][0]),(wtc(),Rsc)))));this.a=KC(CX,nie,2018,a.length,0,2);this.b=KC(FX,nie,2019,a.length,0,2);this.d=new ss} +function tKc(a){if(a.c.length==0){return false}if((tCb(0,a.c.length),BD(a.c[0],17)).c.i.k==(j0b(),g0b)){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new wKc),new yKc)} +function rRc(a,b,c){Odd(c,'Tree layout',1);H2c(a.b);K2c(a.b,(yRc(),uRc),uRc);K2c(a.b,vRc,vRc);K2c(a.b,wRc,wRc);K2c(a.b,xRc,xRc);a.a=F2c(a.b,b);sRc(a,b,Udd(c,1));Qdd(c);return b} +function HXc(a,b){var c,d,e,f,g,h,i;h=gVc(b);f=b.f;i=b.g;g=$wnd.Math.sqrt(f*f+i*i);e=0;for(d=new olb(h);d.a<d.c.c.length;){c=BD(mlb(d),33);e+=HXc(a,c)}return $wnd.Math.max(e,g)} +function dcd(){dcd=ccb;ccd=new gcd(ole,0);bcd=new gcd('FREE',1);acd=new gcd('FIXED_SIDE',2);Zbd=new gcd('FIXED_ORDER',3);_bd=new gcd('FIXED_RATIO',4);$bd=new gcd('FIXED_POS',5)} +function c1d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Cwe));for(d=1;d<(O6d(),N6d).length;++d){if(dfb(N6d[d],e)){return d}}}return 0} +function Qlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];uwb(f,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function Wlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];uwb(f,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function Md(a){var b,c,d;d=new xwb(She,'{','}');for(c=a.vc().Kc();c.Ob();){b=BD(c.Pb(),42);uwb(d,Nd(a,b.cd())+'='+Nd(a,b.dd()))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function EGb(a){var b,c,d,e;while(!akb(a.o)){c=BD(fkb(a.o),46);d=BD(c.a,121);b=BD(c.b,213);e=xFb(b,d);if(b.e==d){NFb(e.g,b);d.e=e.e+b.a}else{NFb(e.b,b);d.e=e.e-b.a}Ekb(a.e.a,d)}} +function F6b(a,b){var c,d,e;c=null;for(e=BD(b.Kb(a),20).Kc();e.Ob();){d=BD(e.Pb(),17);if(!c){c=d.c.i==a?d.d.i:d.c.i}else{if((d.c.i==a?d.d.i:d.c.i)!=c){return false}}}return true} +function uPc(a,b){var c,d,e,f,g;c=WNc(a,false,b);for(e=new olb(c);e.a<e.c.c.length;){d=BD(mlb(e),129);d.d==0?(BOc(d,null),COc(d,null)):(f=d.a,g=d.b,BOc(d,g),COc(d,f),undefined)}} +function qQc(a){var b,c;b=new j3c;d3c(b,cQc);c=BD(vNb(a,(wtc(),Ksc)),21);c.Hc((Orc(),Nrc))&&d3c(b,gQc);c.Hc(Erc)&&d3c(b,dQc);c.Hc(Lrc)&&d3c(b,fQc);c.Hc(Grc)&&d3c(b,eQc);return b} +function Xac(a){var b,c,d,e;Wac(a);for(c=new Sr(ur(O_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);d=b.c.i==a;e=d?b.d:b.c;d?RZb(b,null):QZb(b,null);yNb(b,(wtc(),ctc),e);_ac(a,e.i)}} +function wmc(a,b,c,d){var e,f;f=b.i;e=c[f.g][a.d[f.g]];switch(f.g){case 1:e-=d+b.j.b;b.g.b=e;break;case 3:e+=d;b.g.b=e;break;case 4:e-=d+b.j.a;b.g.a=e;break;case 2:e+=d;b.g.a=e;}} +function aVc(a){var b,c,d;for(c=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));c.e!=c.i.gc();){b=BD(Dyd(c),33);d=$sd(b);if(!Qr(new Sr(ur(d.a.Kc(),new Sq)))){return b}}return null} +function Cod(){var a;if(yod)return BD(nUd((yFd(),xFd),yte),2016);a=BD(JD(Phb((yFd(),xFd),yte),555)?Phb(xFd,yte):new Bod,555);yod=true;zod(a);Aod(a);Tnd(a);Shb(xFd,yte,a);return a} +function t3d(a,b,c){var d,e;if(a.j==0)return c;e=BD(LLd(a,b,c),72);d=c.ak();if(!d.Ij()||!a.a.rl(d)){throw vbb(new hz("Invalid entry feature '"+d.Hj().zb+'.'+d.ne()+"'"))}return e} +function Qi(a,b){var c,d,e,f,g,h,i,j;for(h=a.a,i=0,j=h.length;i<j;++i){g=h[i];for(d=g,e=0,f=d.length;e<f;++e){c=d[e];if(PD(b)===PD(c)||b!=null&&pb(b,c)){return true}}}return false} +function qhb(a){var b,c,d;if(ybb(a,0)>=0){c=Abb(a,Jje);d=Hbb(a,Jje)}else{b=Pbb(a,1);c=Abb(b,500000000);d=Hbb(b,500000000);d=wbb(Nbb(d,1),xbb(a,1))}return Mbb(Nbb(d,32),xbb(c,Yje))} +function oQb(a,b,c){var d,e;d=(sCb(b.b!=0),BD(Nsb(b,b.a.a),8));switch(c.g){case 0:d.b=0;break;case 2:d.b=a.f;break;case 3:d.a=0;break;default:d.a=a.g;}e=Jsb(b,0);Vsb(e,d);return b} +function pmc(a,b,c,d){var e,f,g,h,i;i=a.b;f=b.d;g=f.j;h=umc(g,i.d[g.g],c);e=P6c(R6c(f.n),f.a);switch(f.j.g){case 1:case 3:h.a+=e.a;break;case 2:case 4:h.b+=e.b;}Gsb(d,h,d.c.b,d.c)} +function yJc(a,b,c){var d,e,f,g;g=Jkb(a.e,b,0);f=new zJc;f.b=c;d=new Bib(a.e,g);while(d.b<d.d.gc()){e=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),10));e.p=c;Ekb(f.e,e);uib(d)}return f} +function sYc(a,b,c,d){var e,f,g,h,i;e=null;f=0;for(h=new olb(b);h.a<h.c.c.length;){g=BD(mlb(h),33);i=g.i+g.g;if(a<g.j+g.f+d){!e?(e=g):c.i-i<c.i-f&&(e=g);f=e.i+e.g}}return !e?0:f+d} +function tYc(a,b,c,d){var e,f,g,h,i;f=null;e=0;for(h=new olb(b);h.a<h.c.c.length;){g=BD(mlb(h),33);i=g.j+g.f;if(a<g.i+g.g+d){!f?(f=g):c.j-i<c.j-e&&(f=g);e=f.j+f.f}}return !f?0:e+d} +function mA(a){var b,c,d;b=false;d=a.b.c.length;for(c=0;c<d;c++){if(nA(BD(Ikb(a.b,c),434))){if(!b&&c+1<d&&nA(BD(Ikb(a.b,c+1),434))){b=true;BD(Ikb(a.b,c),434).a=true}}else{b=false}}} +function Ahb(a,b,c,d,e){var f,g;f=0;for(g=0;g<e;g++){f=wbb(f,Qbb(xbb(b[g],Yje),xbb(d[g],Yje)));a[g]=Tbb(f);f=Obb(f,32)}for(;g<c;g++){f=wbb(f,xbb(b[g],Yje));a[g]=Tbb(f);f=Obb(f,32)}} +function Jhb(a,b){Dhb();var c,d;d=(Hgb(),Cgb);c=a;for(;b>1;b>>=1){(b&1)!=0&&(d=Ogb(d,c));c.d==1?(c=Ogb(c,c)):(c=new Xgb(Lhb(c.a,c.d,KC(WD,oje,25,c.d<<1,15,1))))}d=Ogb(d,c);return d} +function zub(){zub=ccb;var a,b,c,d;wub=KC(UD,Vje,25,25,15,1);xub=KC(UD,Vje,25,33,15,1);d=1.52587890625E-5;for(b=32;b>=0;b--){xub[b]=d;d*=0.5}c=1;for(a=24;a>=0;a--){wub[a]=c;c*=0.5}} +function S1b(a){var b,c;if(Ccb(DD(hkd(a,(Nyc(),fxc))))){for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);if(Qld(b)){if(Ccb(DD(hkd(b,gxc)))){return true}}}}return false} +function kjc(a,b){var c,d,e;if(Qqb(a.f,b)){b.b=a;d=b.c;Jkb(a.j,d,0)!=-1||Ekb(a.j,d);e=b.d;Jkb(a.j,e,0)!=-1||Ekb(a.j,e);c=b.a.b;if(c.c.length!=0){!a.i&&(a.i=new vjc(a));qjc(a.i,c)}}} +function rmc(a){var b,c,d,e,f;c=a.c.d;d=c.j;e=a.d.d;f=e.j;if(d==f){return c.p<e.p?0:1}else if(Xcd(d)==f){return 0}else if(Vcd(d)==f){return 1}else{b=a.b;return uqb(b.b,Xcd(d))?0:1}} +function lzc(){lzc=ccb;jzc=new nzc(Aqe,0);hzc=new nzc('LONGEST_PATH',1);fzc=new nzc('COFFMAN_GRAHAM',2);gzc=new nzc(Tne,3);kzc=new nzc('STRETCH_WIDTH',4);izc=new nzc('MIN_WIDTH',5)} +function E3c(a){var b;this.d=new Lqb;this.c=a.c;this.e=a.d;this.b=a.b;this.f=new jgd(a.e);this.a=a.a;!a.f?(this.g=(b=BD(gdb(O3),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.g=a.f)} +function grd(a,b){var c,d,e,f,g,h;e=a;g=$pd(e,'layoutOptions');!g&&(g=$pd(e,Dte));if(g){h=g;d=null;!!h&&(d=(f=$B(h,KC(ZI,nie,2,0,6,1)),new mC(h,f)));if(d){c=new Drd(h,b);reb(d,c)}}} +function atd(a){if(JD(a,239)){return BD(a,33)}else if(JD(a,186)){return mpd(BD(a,118))}else if(!a){throw vbb(new Heb(gue))}else{throw vbb(new cgb('Only support nodes and ports.'))}} +function CA(a,b,c,d){if(b>=0&&dfb(a.substr(b,'GMT'.length),'GMT')){c[0]=b+3;return tA(a,c,d)}if(b>=0&&dfb(a.substr(b,'UTC'.length),'UTC')){c[0]=b+3;return tA(a,c,d)}return tA(a,c,d)} +function tjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),70);e=c.n;e.a=f;a.i==(Ucd(),Acd)?(e.b=g+a.j.b-c.o.b):(e.b=g);P6c(e,b);f+=c.o.a+a.e}} +function Odd(a,b,c){if(a.b){throw vbb(new Zdb('The task is already done.'))}else if(a.p!=null){return false}else{a.p=b;a.r=c;a.k&&(a.o=(Zfb(),Ibb(Cbb(Date.now()),_ie)));return true}} +function hsd(a){var b,c,d,e,f,g,h;h=new eC;c=a.tg();e=c!=null;e&&Upd(h,Vte,a.tg());d=a.ne();f=d!=null;f&&Upd(h,fue,a.ne());b=a.sg();g=b!=null;g&&Upd(h,'description',a.sg());return h} +function uId(a,b,c){var d,e,f;f=a.q;a.q=b;if((a.Db&4)!=0&&(a.Db&1)==0){e=new nSd(a,1,9,f,b);!c?(c=e):c.Ei(e)}if(!b){!!a.r&&(c=a.nk(null,c))}else{d=b.c;d!=a.r&&(c=a.nk(d,c))}return c} +function IYd(a,b,c){var d,e,f,g,h;c=(h=b,kid(h,a.e,-1-a.c,c));g=AYd(a.a);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,a.a),c)}return c} +function JYd(a,b,c){var d,e,f,g,h;c=(h=b,lid(h,a.e,-1-a.c,c));g=AYd(a.a);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,a.a),c)}return c} +function jhb(a,b,c,d){var e,f,g;if(d==0){$fb(b,0,a,c,a.length-c)}else{g=32-d;a[a.length-1]=0;for(f=a.length-1;f>c;f--){a[f]|=b[f-c-1]>>>g;a[f-1]=b[f-c-1]<<d}}for(e=0;e<c;e++){a[e]=0}} +function LJb(a){var b,c,d,e,f;b=0;c=0;for(f=a.Kc();f.Ob();){d=BD(f.Pb(),111);b=$wnd.Math.max(b,d.d.b);c=$wnd.Math.max(c,d.d.c)}for(e=a.Kc();e.Ob();){d=BD(e.Pb(),111);d.d.b=b;d.d.c=c}} +function TKb(a){var b,c,d,e,f;c=0;b=0;for(f=a.Kc();f.Ob();){d=BD(f.Pb(),111);c=$wnd.Math.max(c,d.d.d);b=$wnd.Math.max(b,d.d.a)}for(e=a.Kc();e.Ob();){d=BD(e.Pb(),111);d.d.d=c;d.d.a=b}} +function rpc(a,b){var c,d,e,f;f=new Rkb;e=0;d=b.Kc();while(d.Ob()){c=meb(BD(d.Pb(),19).a+e);while(c.a<a.f&&!Voc(a,c.a)){c=meb(c.a+1);++e}if(c.a>=a.f){break}f.c[f.c.length]=c}return f} +function sfd(a){var b,c,d,e;b=null;for(e=new olb(a.wf());e.a<e.c.c.length;){d=BD(mlb(e),181);c=new J6c(d.qf().a,d.qf().b,d.rf().a,d.rf().b);!b?(b=c):H6c(b,c)}!b&&(b=new I6c);return b} +function Fkd(a,b,c,d){var e,f;if(c==1){return !a.n&&(a.n=new cUd(D2,a,1,7)),Sxd(a.n,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Qj(a,yjd(a),c-aLd(a.zh()),b,d)} +function iud(a,b,c){var d,e,f,g,h;d=c.gc();a.qi(a.i+d);h=a.i-b;h>0&&$fb(a.g,b,a.g,b+d,h);g=c.Kc();a.i+=d;for(e=0;e<d;++e){f=g.Pb();mud(a,b,a.oi(b,f));a.bi(b,f);a.ci();++b}return d!=0} +function xId(a,b,c){var d;if(b!=a.q){!!a.q&&(c=lid(a.q,a,-10,c));!!b&&(c=kid(b,a,-10,c));c=uId(a,b,c)}else if((a.Db&4)!=0&&(a.Db&1)==0){d=new nSd(a,1,9,b,b);!c?(c=d):c.Ei(d)}return c} +function Yj(a,b,c,d){Mb((c&oie)==0,'flatMap does not support SUBSIZED characteristic');Mb((c&4)==0,'flatMap does not support SORTED characteristic');Qb(a);Qb(b);return new jk(a,c,d,b)} +function Qy(a,b){vCb(b,'Cannot suppress a null exception.');mCb(b!=a,'Exception can not suppress itself.');if(a.i){return}a.k==null?(a.k=OC(GC(_I,1),nie,78,0,[b])):(a.k[a.k.length]=b)} +function oA(a,b,c,d){var e,f,g,h,i,j;g=c.length;f=0;e=-1;j=sfb(a.substr(b),(ntb(),ltb));for(h=0;h<g;++h){i=c[h].length;if(i>f&&nfb(j,sfb(c[h],ltb))){e=h;f=i}}e>=0&&(d[0]=b+f);return e} +function MIb(a,b){var c;c=NIb(a.b.Hf(),b.b.Hf());if(c!=0){return c}switch(a.b.Hf().g){case 1:case 2:return beb(a.b.sf(),b.b.sf());case 3:case 4:return beb(b.b.sf(),a.b.sf());}return 0} +function iRb(a){var b,c,d;d=a.e.c.length;a.a=IC(WD,[nie,oje],[48,25],15,[d,d],2);for(c=new olb(a.c);c.a<c.c.c.length;){b=BD(mlb(c),282);a.a[b.c.b][b.d.b]+=BD(vNb(b,(wSb(),oSb)),19).a}} +function H1c(a,b,c){Odd(c,'Grow Tree',1);a.b=b.f;if(Ccb(DD(vNb(b,(XNb(),VNb))))){a.c=new tOb;D1c(a,null)}else{a.c=new tOb}a.a=false;F1c(a,b.f);yNb(b,WNb,(Bcb(),a.a?true:false));Qdd(c)} +function Umd(a,b){var c,d,e,f,g;if(a==null){return null}else{g=KC(TD,$ie,25,2*b,15,1);for(d=0,e=0;d<b;++d){c=a[d]>>4&15;f=a[d]&15;g[e++]=Qmd[c];g[e++]=Qmd[f]}return zfb(g,0,g.length)}} +function j3d(a,b,c){var d,e,f;d=b.ak();f=b.dd();e=d.$j()?H2d(a,4,d,f,null,M2d(a,d,f,JD(d,99)&&(BD(d,18).Bb&Tje)!=0),true):H2d(a,d.Kj()?2:1,d,f,d.zj(),-1,true);c?c.Ei(e):(c=e);return c} +function wfb(a){var b,c;if(a>=Tje){b=Uje+(a-Tje>>10&1023)&aje;c=56320+(a-Tje&1023)&aje;return String.fromCharCode(b)+(''+String.fromCharCode(c))}else{return String.fromCharCode(a&aje)}} +function bKb(a,b){$Jb();var c,d,e,f;e=BD(BD(Qc(a.r,b),21),84);if(e.gc()>=2){d=BD(e.Kc().Pb(),111);c=a.u.Hc((rcd(),mcd));f=a.u.Hc(qcd);return !d.a&&!c&&(e.gc()==2||f)}else{return false}} +function IVc(a,b,c,d,e){var f,g,h;f=JVc(a,b,c,d,e);h=false;while(!f){AVc(a,e,true);h=true;f=JVc(a,b,c,d,e)}h&&AVc(a,e,false);g=dVc(e);if(g.c.length!=0){!!a.d&&a.d.lg(g);IVc(a,e,c,d,g)}} +function Mad(){Mad=ccb;Kad=new Nad(ane,0);Iad=new Nad('DIRECTED',1);Lad=new Nad('UNDIRECTED',2);Gad=new Nad('ASSOCIATION',3);Jad=new Nad('GENERALIZATION',4);Had=new Nad('DEPENDENCY',5)} +function kfd(a,b){var c;if(!mpd(a)){throw vbb(new Zdb(Sse))}c=mpd(a);switch(b.g){case 1:return -(a.j+a.f);case 2:return a.i-c.g;case 3:return a.j-c.f;case 4:return -(a.i+a.g);}return 0} +function cub(a,b){var c,d;uCb(b);d=a.b.c.length;Ekb(a.b,b);while(d>0){c=d;d=(d-1)/2|0;if(a.a.ue(Ikb(a.b,d),b)<=0){Nkb(a.b,c,b);return true}Nkb(a.b,c,Ikb(a.b,d))}Nkb(a.b,d,b);return true} +function BHb(a,b,c,d){var e,f;e=0;if(!c){for(f=0;f<sHb;f++){e=$wnd.Math.max(e,qHb(a.a[f][b.g],d))}}else{e=qHb(a.a[c.g][b.g],d)}b==(gHb(),eHb)&&!!a.b&&(e=$wnd.Math.max(e,a.b.a));return e} +function knc(a,b){var c,d,e,f,g,h;e=a.i;f=b.i;if(!e||!f){return false}if(e.i!=f.i||e.i==(Ucd(),zcd)||e.i==(Ucd(),Tcd)){return false}g=e.g.a;c=g+e.j.a;h=f.g.a;d=h+f.j.a;return g<=d&&c>=h} +function Tpd(a,b,c,d){var e;e=false;if(ND(d)){e=true;Upd(b,c,GD(d))}if(!e){if(KD(d)){e=true;Tpd(a,b,c,d)}}if(!e){if(JD(d,236)){e=true;Spd(b,c,BD(d,236))}}if(!e){throw vbb(new vcb(Ute))}} +function W0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),K6d).length;++d){if(dfb(K6d[d],e)){return d}}}}return 0} +function X0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Sve);if(e!=null){for(d=1;d<(O6d(),L6d).length;++d){if(dfb(L6d[d],e)){return d}}}}return 0} +function Ve(a,b){var c,d,e,f;uCb(b);f=a.a.gc();if(f<b.gc()){for(c=a.a.ec().Kc();c.Ob();){d=c.Pb();b.Hc(d)&&c.Qb()}}else{for(e=b.Kc();e.Ob();){d=e.Pb();a.a.Bc(d)!=null}}return f!=a.a.gc()} +function bYb(a){var b,c;c=R6c(l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])));b=a.i.d;switch(a.j.g){case 1:c.b-=b.d;break;case 2:c.a+=b.c;break;case 3:c.b+=b.a;break;case 4:c.a-=b.b;}return c} +function P9b(a){var b;b=(I9b(),BD(Rr(new Sr(ur(R_b(a).a.Kc(),new Sq))),17).c.i);while(b.k==(j0b(),g0b)){yNb(b,(wtc(),Tsc),(Bcb(),true));b=BD(Rr(new Sr(ur(R_b(b).a.Kc(),new Sq))),17).c.i}} +function bIc(a,b,c,d){var e,f,g,h;h=CHc(b,d);for(g=h.Kc();g.Ob();){e=BD(g.Pb(),11);a.d[e.p]=a.d[e.p]+a.c[c.p]}h=CHc(c,d);for(f=h.Kc();f.Ob();){e=BD(f.Pb(),11);a.d[e.p]=a.d[e.p]-a.c[b.p]}} +function Efd(a,b,c){var d,e;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);bld(d,d.i+b,d.j+c)}reb((!a.b&&(a.b=new cUd(B2,a,12,3)),a.b),new Kfd(b,c))} +function Mwb(a,b,c,d){var e,f;f=b;e=f.d==null||a.a.ue(c.d,f.d)>0?1:0;while(f.a[e]!=c){f=f.a[e];e=a.a.ue(c.d,f.d)>0?1:0}f.a[e]=d;d.b=c.b;d.a[0]=c.a[0];d.a[1]=c.a[1];c.a[0]=null;c.a[1]=null} +function ucd(a){rcd();var b,c;b=qqb(ncd,OC(GC(E1,1),Kie,273,0,[pcd]));if(Ox(Cx(b,a))>1){return false}c=qqb(mcd,OC(GC(E1,1),Kie,273,0,[lcd,qcd]));if(Ox(Cx(c,a))>1){return false}return true} +function fod(a,b){var c;c=Phb((yFd(),xFd),a);JD(c,498)?Shb(xFd,a,new bUd(this,b)):Shb(xFd,a,this);bod(this,b);if(b==(LFd(),KFd)){this.wb=BD(this,1939);BD(b,1941)}else{this.wb=(NFd(),MFd)}} +function lZd(b){var c,d,e;if(b==null){return null}c=null;for(d=0;d<Pmd.length;++d){try{return DQd(Pmd[d],b)}catch(a){a=ubb(a);if(JD(a,32)){e=a;c=e}else throw vbb(a)}}throw vbb(new rFd(c))} +function Dpb(){Dpb=ccb;Bpb=OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat']);Cpb=OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])} +function yyb(a){var b,c,d;b=dfb(typeof(b),uke)?null:new iCb;if(!b){return}$xb();c=(d=900,d>=_ie?'error':d>=900?'warn':d>=800?'info':'log');gCb(c,a.a);!!a.b&&hCb(b,c,a.b,'Exception: ',true)} +function vNb(a,b){var c,d;d=(!a.q&&(a.q=new Lqb),Ohb(a.q,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.q&&(a.q=new Lqb),Thb(a.q,b)):(!a.q&&(a.q=new Lqb),Rhb(a.q,b,c)),a);return c} +function qUb(){qUb=ccb;lUb=new rUb('P1_CYCLE_BREAKING',0);mUb=new rUb('P2_LAYERING',1);nUb=new rUb('P3_NODE_ORDERING',2);oUb=new rUb('P4_NODE_PLACEMENT',3);pUb=new rUb('P5_EDGE_ROUTING',4)} +function SUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Lkb(a.b.b,f.b);Lkb(a.b.a,BD(f.b,81).d)}}} +function IWb(a,b){AWb();var c;if(a.c==b.c){if(a.b==b.b||pWb(a.b,b.b)){c=mWb(a.b)?1:-1;if(a.a&&!b.a){return c}else if(!a.a&&b.a){return -c}}return beb(a.b.g,b.b.g)}else{return Kdb(a.c,b.c)}} +function y6b(a,b){var c;Odd(b,'Hierarchical port position processing',1);c=a.b;c.c.length>0&&x6b((tCb(0,c.c.length),BD(c.c[0],29)),a);c.c.length>1&&x6b(BD(Ikb(c,c.c.length-1),29),a);Qdd(b)} +function RVc(a,b){var c,d,e;if(CVc(a,b)){return true}for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),33);e=hVc(c);if(BVc(a,c,e)){return true}if(PVc(a,c)-a.g<=a.a){return true}}return false} +function d0c(){d0c=ccb;c0c=(A0c(),z0c);__c=v0c;$_c=t0c;Y_c=p0c;Z_c=r0c;X_c=new q0b(8);W_c=new Osd((Y9c(),f9c),X_c);a0c=new Osd(T9c,8);b0c=x0c;T_c=k0c;U_c=m0c;V_c=new Osd(y8c,(Bcb(),false))} +function X7c(){X7c=ccb;U7c=new q0b(15);T7c=new Osd((Y9c(),f9c),U7c);W7c=new Osd(T9c,15);V7c=new Osd(D9c,meb(0));O7c=I8c;Q7c=Y8c;S7c=b9c;L7c=new Osd(r8c,pse);P7c=O8c;R7c=_8c;M7c=t8c;N7c=w8c} +function jtd(a){if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i!=1||(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i!=1){throw vbb(new Wdb(iue))}return atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))} +function ktd(a){if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i!=1||(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i!=1){throw vbb(new Wdb(iue))}return btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))} +function mtd(a){if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i!=1||(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i!=1){throw vbb(new Wdb(iue))}return btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))} +function ltd(a){if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i!=1||(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i!=1){throw vbb(new Wdb(iue))}return atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))} +function Dvd(a,b,c){var d,e,f;++a.j;e=a.Vi();if(b>=e||b<0)throw vbb(new qcb(lue+b+mue+e));if(c>=e||c<0)throw vbb(new qcb(nue+c+mue+e));b!=c?(d=(f=a.Ti(c),a.Hi(b,f),f)):(d=a.Oi(c));return d} +function m6d(a){var b,c,d;d=a;if(a){b=0;for(c=a.Ug();c;c=c.Ug()){if(++b>Wje){return m6d(c)}d=c;if(c==a){throw vbb(new Zdb('There is a cycle in the containment hierarchy of '+a))}}}return d} +function Fe(a){var b,c,d;d=new xwb(She,'[',']');for(c=a.Kc();c.Ob();){b=c.Pb();uwb(d,PD(b)===PD(a)?'(this Collection)':b==null?Xhe:fcb(b))}return !d.a?d.c:d.e.length==0?d.a.a:d.a.a+(''+d.e)} +function CVc(a,b){var c,d;d=false;if(b.gc()<2){return false}for(c=0;c<b.gc();c++){c<b.gc()-1?(d=d|BVc(a,BD(b.Xb(c),33),BD(b.Xb(c+1),33))):(d=d|BVc(a,BD(b.Xb(c),33),BD(b.Xb(0),33)))}return d} +function Ymd(a,b){var c;if(b!=a.a){c=null;!!a.a&&(c=BD(a.a,49).ih(a,4,o5,c));!!b&&(c=BD(b,49).gh(a,4,o5,c));c=Tmd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,1,b,b))} +function RQd(a,b){var c;if(b!=a.e){!!a.e&&QYd(AYd(a.e),a);!!b&&(!b.b&&(b.b=new RYd(new NYd)),PYd(b.b,a));c=HQd(a,b,null);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} +function ufb(a){var b,c,d;c=a.length;d=0;while(d<c&&(BCb(d,a.length),a.charCodeAt(d)<=32)){++d}b=c;while(b>d&&(BCb(b-1,a.length),a.charCodeAt(b-1)<=32)){--b}return d>0||b<c?a.substr(d,b-d):a} +function ujc(a,b){var c;c=b.o;if(fad(a.f)){a.j.a=$wnd.Math.max(a.j.a,c.a);a.j.b+=c.b;a.d.c.length>1&&(a.j.b+=a.e)}else{a.j.a+=c.a;a.j.b=$wnd.Math.max(a.j.b,c.b);a.d.c.length>1&&(a.j.a+=a.e)}} +function gkc(){gkc=ccb;dkc=OC(GC(F1,1),bne,61,0,[(Ucd(),Acd),zcd,Rcd]);ckc=OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd]);ekc=OC(GC(F1,1),bne,61,0,[Rcd,Tcd,Acd]);fkc=OC(GC(F1,1),bne,61,0,[Tcd,Acd,zcd])} +function omc(a,b,c,d){var e,f,g,h,i,j,k;g=a.c.d;h=a.d.d;if(g.j==h.j){return}k=a.b;e=g.j;i=null;while(e!=h.j){i=b==0?Xcd(e):Vcd(e);f=umc(e,k.d[e.g],c);j=umc(i,k.d[i.g],c);Dsb(d,P6c(f,j));e=i}} +function oFc(a,b,c,d){var e,f,g,h,i;g=JHc(a.a,b,c);h=BD(g.a,19).a;f=BD(g.b,19).a;if(d){i=BD(vNb(b,(wtc(),gtc)),10);e=BD(vNb(c,gtc),10);if(!!i&&!!e){mic(a.b,i,e);h+=a.b.i;f+=a.b.e}}return h>f} +function oHc(a){var b,c,d,e,f,g,h,i,j;this.a=lHc(a);this.b=new Rkb;for(c=a,d=0,e=c.length;d<e;++d){b=c[d];f=new Rkb;Ekb(this.b,f);for(h=b,i=0,j=h.length;i<j;++i){g=h[i];Ekb(f,new Tkb(g.j))}}} +function qHc(a,b,c){var d,e,f;f=0;d=c[b];if(b<c.length-1){e=c[b+1];if(a.b[b]){f=KIc(a.d,d,e);f+=NHc(a.a,d,(Ucd(),zcd));f+=NHc(a.a,e,Tcd)}else{f=IHc(a.a,d,e)}}a.c[b]&&(f+=PHc(a.a,d));return f} +function jZb(a,b,c,d,e){var f,g,h,i;i=null;for(h=new olb(d);h.a<h.c.c.length;){g=BD(mlb(h),441);if(g!=c&&Jkb(g.e,e,0)!=-1){i=g;break}}f=kZb(e);QZb(f,c.b);RZb(f,i.b);Rc(a.a,e,new BZb(f,b,c.f))} +function nic(a){while(a.g.c!=0&&a.d.c!=0){if(wic(a.g).c>wic(a.d).c){a.i+=a.g.c;yic(a.d)}else if(wic(a.d).c>wic(a.g).c){a.e+=a.d.c;yic(a.g)}else{a.i+=vic(a.g);a.e+=vic(a.d);yic(a.g);yic(a.d)}}} +function XOc(a,b,c){var d,e,f,g;f=b.q;g=b.r;new DOc((HOc(),FOc),b,f,1);new DOc(FOc,f,g,1);for(e=new olb(c);e.a<e.c.c.length;){d=BD(mlb(e),112);if(d!=f&&d!=b&&d!=g){pPc(a.a,d,b);pPc(a.a,d,g)}}} +function XQc(a,b,c,d){a.a.d=$wnd.Math.min(b,c);a.a.a=$wnd.Math.max(b,d)-a.a.d;if(b<c){a.b=0.5*(b+c);a.g=Qqe*a.b+0.9*b;a.f=Qqe*a.b+0.9*c}else{a.b=0.5*(b+d);a.g=Qqe*a.b+0.9*d;a.f=Qqe*a.b+0.9*b}} +function acb(){_bb={};!Array.isArray&&(Array.isArray=function(a){return Object.prototype.toString.call(a)==='[object Array]'});function b(){return (new Date).getTime()} +!Date.now&&(Date.now=b)} +function $Tb(a,b){var c,d;d=BD(vNb(b,(Nyc(),Vxc)),98);yNb(b,(wtc(),dtc),d);c=b.e;!!c&&(MAb(new YAb(null,new Kub(c.a,16)),new dUb(a)),MAb(LAb(new YAb(null,new Kub(c.b,16)),new fUb),new hUb(a)))} +function _$b(a){var b,c,d,e;if(gad(BD(vNb(a.b,(Nyc(),Lwc)),103))){return 0}b=0;for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),10);if(c.k==(j0b(),h0b)){e=c.o.a;b=$wnd.Math.max(b,e)}}return b} +function c5b(a){switch(BD(vNb(a,(Nyc(),mxc)),163).g){case 1:yNb(a,mxc,(Ctc(),ztc));break;case 2:yNb(a,mxc,(Ctc(),Atc));break;case 3:yNb(a,mxc,(Ctc(),xtc));break;case 4:yNb(a,mxc,(Ctc(),ytc));}} +function yrc(){yrc=ccb;wrc=new zrc(ane,0);trc=new zrc(jle,1);xrc=new zrc(kle,2);vrc=new zrc('LEFT_RIGHT_CONSTRAINT_LOCKING',3);urc=new zrc('LEFT_RIGHT_CONNECTION_LOCKING',4);rrc=new zrc(Vne,5)} +function qRc(a,b,c){var d,e,f,g,h,i,j;h=c.a/2;f=c.b/2;d=$wnd.Math.abs(b.a-a.a);e=$wnd.Math.abs(b.b-a.b);i=1;j=1;d>h&&(i=h/d);e>f&&(j=f/e);g=$wnd.Math.min(i,j);a.a+=g*(b.a-a.a);a.b+=g*(b.b-a.b)} +function sZc(a,b,c,d,e){var f,g;g=false;f=BD(Ikb(c.b,0),33);while(yZc(a,b,f,d,e)){g=true;NZc(c,f);if(c.b.c.length==0){break}f=BD(Ikb(c.b,0),33)}c.b.c.length==0&&v$c(c.j,c);g&&a$c(b.q);return g} +function t6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(s6c(a,d,e)){return true}d=e}if(s6c(a,d,c)){return true}return false} +function ckd(a,b,c,d){var e,f;if(c==0){return !a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),bId(a.o,b,d)}return f=BD(XKd((e=BD(Ajd(a,16),26),!e?a.zh():e),c),66),f.Nj().Rj(a,yjd(a),c-aLd(a.zh()),b,d)} +function bod(a,b){var c;if(b!=a.sb){c=null;!!a.sb&&(c=BD(a.sb,49).ih(a,1,i5,c));!!b&&(c=BD(b,49).gh(a,1,i5,c));c=Jnd(a,b,c);!!c&&c.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,4,b,b))} +function yqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new zrd(a);hmd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new Ard(a);imd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need an end point.'))}} +function wqd(a,b){var c,d,e,f;if(b){e=Xpd(b,'x');c=new wrd(a);omd(c.a,(uCb(e),e));f=Xpd(b,'y');d=new xrd(a);pmd(d.a,(uCb(f),f))}else{throw vbb(new cqd('All edge sections need a start point.'))}} +function pyb(a,b){var c,d,e,f,g,h,i;for(d=syb(a),f=0,h=d.length;f<h;++f){yyb(b)}i=!lyb&&a.e?lyb?null:a.d:null;while(i){for(c=syb(i),e=0,g=c.length;e<g;++e){yyb(b)}i=!lyb&&i.e?lyb?null:i.d:null}} +function j0b(){j0b=ccb;h0b=new k0b('NORMAL',0);g0b=new k0b('LONG_EDGE',1);e0b=new k0b('EXTERNAL_PORT',2);i0b=new k0b('NORTH_SOUTH_PORT',3);f0b=new k0b('LABEL',4);d0b=new k0b('BREAKING_POINT',5)} +function g4b(a){var b,c,d,e;b=false;if(wNb(a,(wtc(),Csc))){c=BD(vNb(a,Csc),83);for(e=new olb(a.j);e.a<e.c.c.length;){d=BD(mlb(e),11);if(e4b(d)){if(!b){d4b(Q_b(a));b=true}h4b(BD(c.xc(d),306))}}}} +function qec(a,b,c){var d;Odd(c,'Self-Loop routing',1);d=rec(b);RD(vNb(b,(g6c(),f6c)));MAb(NAb(JAb(JAb(LAb(new YAb(null,new Kub(b.b,16)),new uec),new wec),new yec),new Aec),new Cec(a,d));Qdd(c)} +function gsd(a){var b,c,d,e,f,g,h,i,j;j=hsd(a);c=a.e;f=c!=null;f&&Upd(j,eue,a.e);h=a.k;g=!!h;g&&Upd(j,'type',Zr(a.k));d=Fhe(a.j);e=!d;if(e){i=new wB;cC(j,Mte,i);b=new ssd(i);reb(a.j,b)}return j} +function Jv(a){var b,c,d,e;e=Kfb((Xj(a.gc(),'size'),new Vfb),123);d=true;for(c=Wm(a).Kc();c.Ob();){b=BD(c.Pb(),42);d||(e.a+=She,e);d=false;Pfb(Kfb(Pfb(e,b.cd()),61),b.dd())}return (e.a+='}',e).a} +function kD(a,b){var c,d,e;b&=63;if(b<22){c=a.l<<b;d=a.m<<b|a.l>>22-b;e=a.h<<b|a.m>>22-b}else if(b<44){c=0;d=a.l<<b-22;e=a.m<<b-22|a.l>>44-b}else{c=0;d=0;e=a.l<<b-44}return TC(c&Eje,d&Eje,e&Fje)} +function Hcb(a){Gcb==null&&(Gcb=new RegExp('^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$'));if(!Gcb.test(a)){throw vbb(new Oeb(Oje+a+'"'))}return parseFloat(a)} +function IFb(a){var b,c,d,e;b=new Rkb;c=KC(sbb,dle,25,a.a.c.length,16,1);Glb(c,c.length);for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),121);if(!c[d.d]){b.c[b.c.length]=d;HFb(a,d,c)}}return b} +function Nmc(a,b){var c,d,e,f;f=b.b.j;a.a=KC(WD,oje,25,f.c.length,15,1);e=0;for(d=0;d<f.c.length;d++){c=(tCb(d,f.c.length),BD(f.c[d],11));c.e.c.length==0&&c.g.c.length==0?(e+=1):(e+=3);a.a[d]=e}} +function Sqc(){Sqc=ccb;Nqc=new Uqc('ALWAYS_UP',0);Mqc=new Uqc('ALWAYS_DOWN',1);Pqc=new Uqc('DIRECTION_UP',2);Oqc=new Uqc('DIRECTION_DOWN',3);Rqc=new Uqc('SMART_UP',4);Qqc=new Uqc('SMART_DOWN',5)} +function k6c(a,b){if(a<0||b<0){throw vbb(new Wdb('k and n must be positive'))}else if(b>a){throw vbb(new Wdb('k must be smaller than n'))}else return b==0||b==a?1:a==0?0:q6c(a)/(q6c(b)*q6c(a-b))} +function jfd(a,b){var c,d,e,f;c=new _ud(a);while(c.g==null&&!c.c?Uud(c):c.g==null||c.i!=0&&BD(c.g[c.i-1],47).Ob()){f=BD(Vud(c),56);if(JD(f,160)){d=BD(f,160);for(e=0;e<b.length;e++){b[e].og(d)}}}} +function fld(a){var b;if((a.Db&64)!=0)return Mkd(a);b=new Jfb(Mkd(a));b.a+=' (height: ';Bfb(b,a.f);b.a+=', width: ';Bfb(b,a.g);b.a+=', x: ';Bfb(b,a.i);b.a+=', y: ';Bfb(b,a.j);b.a+=')';return b.a} +function un(a){var b,c,d,e,f,g,h;b=new $rb;for(d=a,e=0,f=d.length;e<f;++e){c=d[e];g=Qb(c.cd());h=Xrb(b,g,Qb(c.dd()));if(h!=null){throw vbb(new Wdb('duplicate key: '+g))}}this.b=(mmb(),new iob(b))} +function Rlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];uwb(f,String.fromCharCode(b))}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function SRb(){SRb=ccb;MRb=(XRb(),WRb);LRb=new Nsd(mme,MRb);meb(1);KRb=new Nsd(nme,meb(300));meb(0);PRb=new Nsd(ome,meb(0));new Tfd;QRb=new Nsd(pme,qme);new Tfd;NRb=new Nsd(rme,5);RRb=WRb;ORb=VRb} +function NUb(a,b){var c,d,e,f,g;e=b==1?KUb:JUb;for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),103);for(g=BD(Qc(a.f.c,c),21).Kc();g.Ob();){f=BD(g.Pb(),46);Ekb(a.b.b,BD(f.b,81));Ekb(a.b.a,BD(f.b,81).d)}}} +function kVd(a,b){var c;if(b!=null&&!a.c.Yj().wj(b)){c=JD(b,56)?BD(b,56).Tg().zb:hdb(rb(b));throw vbb(new Cdb(ite+a.c.ne()+"'s type '"+a.c.Yj().ne()+"' does not permit a value of type '"+c+"'"))}} +function cZb(a,b,c){var d,e;e=new Bib(a.b,0);while(e.b<e.d.gc()){d=(sCb(e.b<e.d.gc()),BD(e.d.Xb(e.c=e.b++),70));if(PD(vNb(d,(wtc(),btc)))!==PD(b)){continue}Y$b(d.n,Q_b(a.c.i),c);uib(e);Ekb(b.b,d)}} +function vdc(a,b){if(b.a){switch(BD(vNb(b.b,(wtc(),dtc)),98).g){case 0:case 1:llc(b);case 2:MAb(new YAb(null,new Kub(b.d,16)),new Idc);wkc(a.a,b);}}else{MAb(new YAb(null,new Kub(b.d,16)),new Idc)}} +function Znc(a){var b,c;c=$wnd.Math.sqrt((a.k==null&&(a.k=Soc(a,new bpc)),Edb(a.k)/(a.b*(a.g==null&&(a.g=Poc(a,new _oc)),Edb(a.g)))));b=Tbb(Cbb($wnd.Math.round(c)));b=$wnd.Math.min(b,a.f);return b} +function H0b(){z0b();n_b.call(this);this.j=(Ucd(),Scd);this.a=new d7c;new L_b;this.f=(Xj(2,Jie),new Skb(2));this.e=(Xj(4,Jie),new Skb(4));this.g=(Xj(4,Jie),new Skb(4));this.b=new Z0b(this.e,this.g)} +function j3b(a,b){var c,d;if(Ccb(DD(vNb(b,(wtc(),ltc))))){return false}d=b.c.i;if(a==(Ctc(),xtc)){if(d.k==(j0b(),f0b)){return false}}c=BD(vNb(d,(Nyc(),mxc)),163);if(c==ytc){return false}return true} +function k3b(a,b){var c,d;if(Ccb(DD(vNb(b,(wtc(),ltc))))){return false}d=b.d.i;if(a==(Ctc(),ztc)){if(d.k==(j0b(),f0b)){return false}}c=BD(vNb(d,(Nyc(),mxc)),163);if(c==Atc){return false}return true} +function L3b(a,b){var c,d,e,f,g,h,i;g=a.d;i=a.o;h=new J6c(-g.b,-g.d,g.b+i.a+g.c,g.d+i.b+g.a);for(d=b,e=0,f=d.length;e<f;++e){c=d[e];!!c&&H6c(h,c.i)}g.b=-h.c;g.d=-h.d;g.c=h.b-g.b-i.a;g.a=h.a-g.d-i.b} +function N_c(){N_c=ccb;I_c=new O_c('CENTER_DISTANCE',0);J_c=new O_c('CIRCLE_UNDERLAP',1);M_c=new O_c('RECTANGLE_UNDERLAP',2);K_c=new O_c('INVERTED_OVERLAP',3);L_c=new O_c('MINIMUM_ROOT_DISTANCE',4)} +function jde(a){hde();var b,c,d,e,f;if(a==null)return null;d=a.length;e=d*2;b=KC(TD,$ie,25,e,15,1);for(c=0;c<d;c++){f=a[c];f<0&&(f+=256);b[c*2]=gde[f>>4];b[c*2+1]=gde[f&15]}return zfb(b,0,b.length)} +function fn(a){Vm();var b,c,d;d=a.c.length;switch(d){case 0:return Um;case 1:b=BD(qr(new olb(a)),42);return ln(b.cd(),b.dd());default:c=BD(Qkb(a,KC(CK,zie,42,a.c.length,0,1)),165);return new wx(c);}} +function ITb(a){var b,c,d,e,f,g;b=new jkb;c=new jkb;Wjb(b,a);Wjb(c,a);while(c.b!=c.c){e=BD(fkb(c),37);for(g=new olb(e.a);g.a<g.c.c.length;){f=BD(mlb(g),10);if(f.e){d=f.e;Wjb(b,d);Wjb(c,d)}}}return b} +function Y_b(a,b){switch(b.g){case 1:return Nq(a.j,(z0b(),v0b));case 2:return Nq(a.j,(z0b(),t0b));case 3:return Nq(a.j,(z0b(),x0b));case 4:return Nq(a.j,(z0b(),y0b));default:return mmb(),mmb(),jmb;}} +function tic(a,b){var c,d,e;c=uic(b,a.e);d=BD(Ohb(a.g.f,c),19).a;e=a.a.c.length-1;if(a.a.c.length!=0&&BD(Ikb(a.a,e),287).c==d){++BD(Ikb(a.a,e),287).a;++BD(Ikb(a.a,e),287).b}else{Ekb(a.a,new Dic(d))}} +function VGc(a,b,c){var d,e;d=UGc(a,b,c);if(d!=0){return d}if(wNb(b,(wtc(),Zsc))&&wNb(c,Zsc)){e=beb(BD(vNb(b,Zsc),19).a,BD(vNb(c,Zsc),19).a);e<0?WGc(a,b,c):e>0&&WGc(a,c,b);return e}return TGc(a,b,c)} +function MSc(a,b,c){var d,e,f,g;if(b.b!=0){d=new Psb;for(g=Jsb(b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);ye(d,URc(f));e=f.e;e.a=BD(vNb(f,(mTc(),kTc)),19).a;e.b=BD(vNb(f,lTc),19).a}MSc(a,d,Udd(c,d.b/a.a|0))}} +function JZc(a,b){var c,d,e,f,g;if(a.e<=b){return a.g}if(LZc(a,a.g,b)){return a.g}f=a.r;d=a.g;g=a.r;e=(f-d)/2+d;while(d+1<f){c=MZc(a,e,false);if(c.b<=e&&c.a<=b){g=e;f=e}else{d=e}e=(f-d)/2+d}return g} +function t2c(a,b,c){var d;d=o2c(a,b,true);Odd(c,'Recursive Graph Layout',d);jfd(b,OC(GC(g2,1),Uhe,527,0,[new q3c]));ikd(b,(Y9c(),F9c))||jfd(b,OC(GC(g2,1),Uhe,527,0,[new U3c]));u2c(a,b,null,c);Qdd(c)} +function Qdd(a){var b;if(a.p==null){throw vbb(new Zdb('The task has not begun yet.'))}if(!a.b){if(a.k){b=(Zfb(),Ibb(Cbb(Date.now()),_ie));a.q=Sbb(Qbb(b,a.o))*1.0E-9}a.c<a.r&&Rdd(a,a.r-a.c);a.b=true}} +function ofd(a){var b,c,d;d=new s7c;Dsb(d,new f7c(a.j,a.k));for(c=new Fyd((!a.a&&(a.a=new xMd(y2,a,5)),a.a));c.e!=c.i.gc();){b=BD(Dyd(c),469);Dsb(d,new f7c(b.a,b.b))}Dsb(d,new f7c(a.b,a.c));return d} +function qqd(a,b,c,d,e){var f,g,h,i,j,k;if(e){i=e.a.length;f=new Yge(i);for(k=(f.b-f.a)*f.c<0?(Xge(),Wge):new she(f);k.Ob();){j=BD(k.Pb(),19);h=Zpd(e,j.a);g=new prd(a,b,c,d);rqd(g.a,g.b,g.c,g.d,h)}}} +function Ax(b,c){var d;if(PD(b)===PD(c)){return true}if(JD(c,21)){d=BD(c,21);try{return b.gc()==d.gc()&&b.Ic(d)}catch(a){a=ubb(a);if(JD(a,173)||JD(a,205)){return false}else throw vbb(a)}}return false} +function UHb(a,b){var c;Ekb(a.d,b);c=b.rf();if(a.c){a.e.a=$wnd.Math.max(a.e.a,c.a);a.e.b+=c.b;a.d.c.length>1&&(a.e.b+=a.a)}else{a.e.a+=c.a;a.e.b=$wnd.Math.max(a.e.b,c.b);a.d.c.length>1&&(a.e.a+=a.a)}} +function cmc(a){var b,c,d,e;e=a.i;b=e.b;d=e.j;c=e.g;switch(e.a.g){case 0:c.a=(a.g.b.o.a-d.a)/2;break;case 1:c.a=b.d.n.a+b.d.a.a;break;case 2:c.a=b.d.n.a+b.d.a.a-d.a;break;case 3:c.b=b.d.n.b+b.d.a.b;}} +function Q6c(a,b,c,d,e){if(d<b||e<c){throw vbb(new Wdb('The highx must be bigger then lowx and the highy must be bigger then lowy'))}a.a<b?(a.a=b):a.a>d&&(a.a=d);a.b<c?(a.b=c):a.b>e&&(a.b=e);return a} +function lsd(a){if(JD(a,149)){return esd(BD(a,149))}else if(JD(a,229)){return fsd(BD(a,229))}else if(JD(a,23)){return gsd(BD(a,23))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[a])))))}} +function mhb(a,b,c,d,e){var f,g,h;f=true;for(g=0;g<d;g++){f=f&c[g]==0}if(e==0){$fb(c,d,a,0,b);g=b}else{h=32-e;f=f&c[g]<<h==0;for(g=0;g<b-1;g++){a[g]=c[g+d]>>>e|c[g+d+1]<<h}a[g]=c[g+d]>>>e;++g}return f} +function zMc(a,b,c,d){var e,f,g;if(b.k==(j0b(),g0b)){for(f=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);g=e.c.i.k;if(g==g0b&&a.c.a[e.c.i.c.p]==d&&a.c.a[b.c.p]==c){return true}}}return false} +function mD(a,b){var c,d,e,f;b&=63;c=a.h&Fje;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return TC(d&Eje,e&Eje,f&Fje)} +function Iic(a,b,c,d){var e;this.b=d;this.e=a==(rGc(),pGc);e=b[c];this.d=IC(sbb,[nie,dle],[177,25],16,[e.length,e.length],2);this.a=IC(WD,[nie,oje],[48,25],15,[e.length,e.length],2);this.c=new sic(b,c)} +function ljc(a){var b,c,d;a.k=new Ki((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,a.j.c.length);for(d=new olb(a.j);d.a<d.c.c.length;){c=BD(mlb(d),113);b=c.d.j;Rc(a.k,b,c)}a.e=Zjc(Ec(a.k))} +function UQc(a,b){var c,d,e;Qqb(a.d,b);c=new _Qc;Rhb(a.c,b,c);c.f=VQc(b.c);c.a=VQc(b.d);c.d=(hQc(),e=b.c.i.k,e==(j0b(),h0b)||e==d0b);c.e=(d=b.d.i.k,d==h0b||d==d0b);c.b=b.c.j==(Ucd(),Tcd);c.c=b.d.j==zcd} +function BGb(a){var b,c,d,e,f;f=Ohe;e=Ohe;for(d=new olb(LFb(a));d.a<d.c.c.length;){c=BD(mlb(d),213);b=c.e.e-c.d.e;c.e==a&&b<e?(e=b):b<f&&(f=b)}e==Ohe&&(e=-1);f==Ohe&&(f=-1);return new vgd(meb(e),meb(f))} +function zQb(a,b){var c,d,e;e=dme;d=(ROb(),OOb);e=$wnd.Math.abs(a.b);c=$wnd.Math.abs(b.f-a.b);if(c<e){e=c;d=POb}c=$wnd.Math.abs(a.a);if(c<e){e=c;d=QOb}c=$wnd.Math.abs(b.g-a.a);if(c<e){e=c;d=NOb}return d} +function L9b(a,b){var c,d,e,f;c=b.a.o.a;f=new Jib(Q_b(b.a).b,b.c,b.f+1);for(e=new vib(f);e.b<e.d.gc();){d=(sCb(e.b<e.d.gc()),BD(e.d.Xb(e.c=e.b++),29));if(d.c.a>=c){K9b(a,b,d.p);return true}}return false} +function Iod(a){var b;if((a.Db&64)!=0)return fld(a);b=new Wfb(dte);!a.a||Qfb(Qfb((b.a+=' "',b),a.a),'"');Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function Z2d(a,b,c){var d,e,f,g,h;h=S6d(a.e.Tg(),b);e=BD(a.g,119);d=0;for(g=0;g<a.i;++g){f=e[g];if(h.rl(f.ak())){if(d==c){Xxd(a,g);return Q6d(),BD(b,66).Oj()?f:f.dd()}++d}}throw vbb(new qcb(gve+c+mue+d))} +function sde(a){var b,c,d;b=a.c;if(b==2||b==7||b==1){return wfe(),wfe(),ffe}else{d=qde(a);c=null;while((b=a.c)!=2&&b!=7&&b!=1){if(!c){c=(wfe(),wfe(),++vfe,new Lge(1));Kge(c,d);d=c}Kge(c,qde(a))}return d}} +function Kb(a,b,c){if(a<0||a>c){return Jb(a,c,'start index')}if(b<0||b>c){return Jb(b,c,'end index')}return hc('end index (%s) must not be less than start index (%s)',OC(GC(SI,1),Uhe,1,5,[meb(b),meb(a)]))} +function Pz(b,c){var d,e,f,g;for(e=0,f=b.length;e<f;e++){g=b[e];try{g[1]?g[0].jm()&&(c=Oz(c,g)):g[0].jm()}catch(a){a=ubb(a);if(JD(a,78)){d=a;Az();Gz(JD(d,477)?BD(d,477).ae():d)}else throw vbb(a)}}return c} +function K9b(a,b,c){var d,e,f;c!=b.c+b.b.gc()&&Z9b(b.a,fac(b,c-b.c));f=b.a.c.p;a.a[f]=$wnd.Math.max(a.a[f],b.a.o.a);for(e=BD(vNb(b.a,(wtc(),ktc)),15).Kc();e.Ob();){d=BD(e.Pb(),70);yNb(d,H9b,(Bcb(),true))}} +function Wec(a,b){var c,d,e;e=Vec(b);yNb(b,(wtc(),Xsc),e);if(e){d=Ohe;!!irb(a.f,e)&&(d=BD(Wd(irb(a.f,e)),19).a);c=BD(Ikb(b.g,0),17);Ccb(DD(vNb(c,ltc)))||Rhb(a,e,meb($wnd.Math.min(BD(vNb(c,Zsc),19).a,d)))}} +function iCc(a,b,c){var d,e,f,g,h;b.p=-1;for(h=W_b(b,(KAc(),IAc)).Kc();h.Ob();){g=BD(h.Pb(),11);for(e=new olb(g.g);e.a<e.c.c.length;){d=BD(mlb(e),17);f=d.d.i;b!=f&&(f.p<0?c.Fc(d):f.p>0&&iCc(a,f,c))}}b.p=0} +function p5c(a){var b;this.c=new Psb;this.f=a.e;this.e=a.d;this.i=a.g;this.d=a.c;this.b=a.b;this.k=a.j;this.a=a.a;!a.i?(this.j=(b=BD(gdb(e1),9),new xqb(b,BD(_Bb(b,b.length),9),0))):(this.j=a.i);this.g=a.f} +function Wb(a){var b,c,d,e;b=Kfb(Qfb(new Wfb('Predicates.'),'and'),40);c=true;for(e=new vib(a);e.b<e.d.gc();){d=(sCb(e.b<e.d.gc()),e.d.Xb(e.c=e.b++));c||(b.a+=',',b);b.a+=''+d;c=false}return (b.a+=')',b).a} +function Rcc(a,b,c){var d,e,f;if(c<=b+2){return}e=(c-b)/2|0;for(d=0;d<e;++d){f=(tCb(b+d,a.c.length),BD(a.c[b+d],11));Nkb(a,b+d,(tCb(c-d-1,a.c.length),BD(a.c[c-d-1],11)));tCb(c-d-1,a.c.length);a.c[c-d-1]=f}} +function hjc(a,b,c){var d,e,f,g,h,i,j,k;f=a.d.p;h=f.e;i=f.r;a.g=new dIc(i);g=a.d.o.c.p;d=g>0?h[g-1]:KC(OQ,kne,10,0,0,1);e=h[g];j=g<h.length-1?h[g+1]:KC(OQ,kne,10,0,0,1);k=b==c-1;k?RHc(a.g,e,j):RHc(a.g,d,e)} +function pjc(a){var b;this.j=new Rkb;this.f=new Tqb;this.b=(b=BD(gdb(F1),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.d=KC(WD,oje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.g=a} +function QVc(a,b){var c,d,e;if(b.c.length!=0){c=RVc(a,b);e=false;while(!c){AVc(a,b,true);e=true;c=RVc(a,b)}e&&AVc(a,b,false);d=dVc(b);!!a.b&&a.b.lg(d);a.a=PVc(a,(tCb(0,b.c.length),BD(b.c[0],33)));QVc(a,d)}} +function Cid(a,b){var c,d,e;d=XKd(a.Tg(),b);c=b-a.Ah();if(c<0){if(!d){throw vbb(new Wdb(mte+b+nte))}else if(d.Ij()){e=a.Yg(d);e>=0?a.Bh(e):vid(a,d)}else{throw vbb(new Wdb(ite+d.ne()+jte))}}else{eid(a,c,d)}} +function aqd(a){var b,c;c=null;b=false;if(JD(a,204)){b=true;c=BD(a,204).a}if(!b){if(JD(a,258)){b=true;c=''+BD(a,258).a}}if(!b){if(JD(a,483)){b=true;c=''+BD(a,483).a}}if(!b){throw vbb(new vcb(Ute))}return c} +function ORd(a,b){var c,d;if(a.f){while(b.Ob()){c=BD(b.Pb(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Ub();return true}}return false}else{return b.Ob()}} +function QRd(a,b){var c,d;if(a.f){while(b.Sb()){c=BD(b.Ub(),72);d=c.ak();if(JD(d,99)&&(BD(d,18).Bb&ote)!=0&&(!a.e||d.Gj()!=x2||d.aj()!=0)&&c.dd()!=null){b.Pb();return true}}return false}else{return b.Sb()}} +function I2d(a,b,c){var d,e,f,g,h,i;i=S6d(a.e.Tg(),b);d=0;h=a.i;e=BD(a.g,119);for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())){if(c==d){return g}++d;h=g+1}}if(c==d){return h}else{throw vbb(new qcb(gve+c+mue+d))}} +function d9b(a,b){var c,d,e,f;if(a.f.c.length==0){return null}else{f=new I6c;for(d=new olb(a.f);d.a<d.c.c.length;){c=BD(mlb(d),70);e=c.o;f.b=$wnd.Math.max(f.b,e.a);f.a+=e.b}f.a+=(a.f.c.length-1)*b;return f}} +function QJc(a,b,c){var d,e,f;for(e=new Sr(ur(O_b(c).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(!(!OZb(d)&&!(!OZb(d)&&d.c.i.c==d.d.i.c))){continue}f=IJc(a,d,c,new vKc);f.c.length>1&&(b.c[b.c.length]=f,true)}} +function TJc(a){var b,c,d,e;c=new Psb;ye(c,a.o);d=new twb;while(c.b!=0){b=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),508);e=KJc(a,b,true);e&&Ekb(d.a,b)}while(d.a.c.length!=0){b=BD(rwb(d),508);KJc(a,b,false)}} +function _5c(){_5c=ccb;$5c=new a6c(ole,0);T5c=new a6c('BOOLEAN',1);X5c=new a6c('INT',2);Z5c=new a6c('STRING',3);U5c=new a6c('DOUBLE',4);V5c=new a6c('ENUM',5);W5c=new a6c('ENUMSET',6);Y5c=new a6c('OBJECT',7)} +function H6c(a,b){var c,d,e,f,g;d=$wnd.Math.min(a.c,b.c);f=$wnd.Math.min(a.d,b.d);e=$wnd.Math.max(a.c+a.b,b.c+b.b);g=$wnd.Math.max(a.d+a.a,b.d+b.a);if(e<d){c=d;d=e;e=c}if(g<f){c=f;f=g;g=c}G6c(a,d,f,e-d,g-f)} +function O6d(){O6d=ccb;L6d=OC(GC(ZI,1),nie,2,6,[swe,twe,uwe,vwe,wwe,xwe,eue]);K6d=OC(GC(ZI,1),nie,2,6,[swe,'empty',twe,Qve,'elementOnly']);N6d=OC(GC(ZI,1),nie,2,6,[swe,'preserve','replace',ywe]);M6d=new y1d} +function Y$b(a,b,c){var d,e,f;if(b==c){return}d=b;do{P6c(a,d.c);e=d.e;if(e){f=d.d;O6c(a,f.b,f.d);P6c(a,e.n);d=Q_b(e)}}while(e);d=c;do{c7c(a,d.c);e=d.e;if(e){f=d.d;b7c(a,f.b,f.d);c7c(a,e.n);d=Q_b(e)}}while(e)} +function qic(a,b,c,d){var e,f,g,h,i;if(d.f.c+d.g.c==0){for(g=a.a[a.c],h=0,i=g.length;h<i;++h){f=g[h];Rhb(d,f,new zic(a,f,c))}}e=BD(Wd(irb(d.f,b)),663);e.b=0;e.c=e.f;e.c==0||Cic(BD(Ikb(e.a,e.b),287));return e} +function Apc(){Apc=ccb;wpc=new Bpc('MEDIAN_LAYER',0);ypc=new Bpc('TAIL_LAYER',1);vpc=new Bpc('HEAD_LAYER',2);xpc=new Bpc('SPACE_EFFICIENT_LAYER',3);zpc=new Bpc('WIDEST_LAYER',4);upc=new Bpc('CENTER_LAYER',5)} +function rJb(a){switch(a.g){case 0:case 1:case 2:return Ucd(),Acd;case 3:case 4:case 5:return Ucd(),Rcd;case 6:case 7:case 8:return Ucd(),Tcd;case 9:case 10:case 11:return Ucd(),zcd;default:return Ucd(),Scd;}} +function sKc(a,b){var c;if(a.c.length==0){return false}c=Lzc((tCb(0,a.c.length),BD(a.c[0],17)).c.i);FJc();if(c==(Izc(),Fzc)||c==Ezc){return true}return FAb(NAb(new YAb(null,new Kub(a,16)),new AKc),new CKc(b))} +function cRc(a,b,c){var d,e,f;if(!a.b[b.g]){a.b[b.g]=true;d=c;!d&&(d=new SRc);Dsb(d.b,b);for(f=a.a[b.g].Kc();f.Ob();){e=BD(f.Pb(),188);e.b!=b&&cRc(a,e.b,d);e.c!=b&&cRc(a,e.c,d);Dsb(d.a,e)}return d}return null} +function qSc(){qSc=ccb;pSc=new rSc('ROOT_PROC',0);lSc=new rSc('FAN_PROC',1);nSc=new rSc('NEIGHBORS_PROC',2);mSc=new rSc('LEVEL_HEIGHT',3);oSc=new rSc('NODE_POSITION_PROC',4);kSc=new rSc('DETREEIFYING_PROC',5)} +function kqd(a,b){if(JD(b,239)){return eqd(a,BD(b,33))}else if(JD(b,186)){return fqd(a,BD(b,118))}else if(JD(b,439)){return dqd(a,BD(b,202))}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} +function xu(a,b,c){var d,e;this.f=a;d=BD(Ohb(a.b,b),283);e=!d?0:d.a;Sb(c,e);if(c>=(e/2|0)){this.e=!d?null:d.c;this.d=e;while(c++<e){vu(this)}}else{this.c=!d?null:d.b;while(c-->0){uu(this)}}this.b=b;this.a=null} +function rEb(a,b){var c,d;b.a?sEb(a,b):(c=BD(Exb(a.b,b.b),57),!!c&&c==a.a[b.b.f]&&!!c.a&&c.a!=b.b.a&&c.c.Fc(b.b),d=BD(Dxb(a.b,b.b),57),!!d&&a.a[d.f]==b.b&&!!d.a&&d.a!=b.b.a&&b.b.c.Fc(d),Fxb(a.b,b.b),undefined)} +function FJb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.b=0;c.n.c=0;return}c.n.b=a.C.b;c.n.c=a.C.c;a.A.Hc((tdd(),sdd))&&KJb(a,b);d=JJb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.a=d} +function OKb(a,b){var c,d;c=BD(Mpb(a.b,b),124);if(BD(BD(Qc(a.r,b),21),84).dc()){c.n.d=0;c.n.a=0;return}c.n.d=a.C.d;c.n.a=a.C.a;a.A.Hc((tdd(),sdd))&&SKb(a,b);d=RKb(a,b);KIb(a,b)==(Tbd(),Qbd)&&(d+=2*a.w);c.a.b=d} +function cOb(a,b){var c,d,e,f;f=new Rkb;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),65);Ekb(f,new oOb(c,true));Ekb(f,new oOb(c,false))}e=new hOb(a);zwb(e.a.a);kDb(f,a.b,new amb(OC(GC(JM,1),Uhe,679,0,[e])))} +function rQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;i=a.a;n=a.b;j=b.a;o=b.b;k=c.a;p=c.b;l=d.a;q=d.b;f=i*o-n*j;g=k*q-p*l;e=(i-j)*(p-q)-(n-o)*(k-l);h=(f*(k-l)-g*(i-j))/e;m=(f*(p-q)-g*(n-o))/e;return new f7c(h,m)} +function TBc(a,b){var c,d,e;if(a.d[b.p]){return}a.d[b.p]=true;a.a[b.p]=true;for(d=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(OZb(c)){continue}e=c.d.i;a.a[e.p]?Ekb(a.b,c):TBc(a,e)}a.a[b.p]=false} +function pCc(a,b,c){var d;d=0;switch(BD(vNb(b,(Nyc(),mxc)),163).g){case 2:d=2*-c+a.a;++a.a;break;case 1:d=-c;break;case 3:d=c;break;case 4:d=2*c+a.b;++a.b;}wNb(b,(wtc(),Zsc))&&(d+=BD(vNb(b,Zsc),19).a);return d} +function jOc(a,b,c){var d,e,f;c.zc(b,a);Ekb(a.n,b);f=a.p.eg(b);b.j==a.p.fg()?yOc(a.e,f):yOc(a.j,f);lOc(a);for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(b),new R0b(b)])));Qr(e);){d=BD(Rr(e),11);c._b(d)||jOc(a,d,c)}} +function rfd(a){var b,c,d;c=BD(hkd(a,(Y9c(),Y8c)),21);if(c.Hc((tdd(),pdd))){d=BD(hkd(a,b9c),21);b=new g7c(BD(hkd(a,_8c),8));if(d.Hc((Idd(),Bdd))){b.a<=0&&(b.a=20);b.b<=0&&(b.b=20)}return b}else{return new d7c}} +function PKd(a){var b,c,d;if(!a.b){d=new $Nd;for(c=new $yd(SKd(a));c.e!=c.i.gc();){b=BD(Zyd(c),18);(b.Bb&ote)!=0&&wtd(d,b)}vud(d);a.b=new nNd((BD(qud(ZKd((NFd(),MFd).o),8),18),d.i),d.g);$Kd(a).b&=-9}return a.b} +function Rmc(a,b){var c,d,e,f,g,h,i,j;i=BD(Ee(Ec(b.k),KC(F1,bne,61,2,0,1)),122);j=b.g;c=Tmc(b,i[0]);e=Smc(b,i[1]);d=Kmc(a,j,c,e);f=Tmc(b,i[1]);h=Smc(b,i[0]);g=Kmc(a,j,f,h);if(d<=g){b.a=c;b.c=e}else{b.a=f;b.c=h}} +function ESc(a,b,c){var d,e,f;Odd(c,'Processor set neighbors',1);a.a=b.b.b==0?1:b.b.b;e=null;d=Jsb(b.b,0);while(!e&&d.b!=d.d.c){f=BD(Xsb(d),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(e=f)}!!e&&FSc(a,new ZRc(e),c);Qdd(c)} +function PEd(a){IEd();var b,c,d,e;d=hfb(a,wfb(35));b=d==-1?a:a.substr(0,d);c=d==-1?null:a.substr(d+1);e=kFd(HEd,b);if(!e){e=aFd(b);lFd(HEd,b,e);c!=null&&(e=JEd(e,c))}else c!=null&&(e=JEd(e,(uCb(c),c)));return e} +function smb(a){var h;mmb();var b,c,d,e,f,g;if(JD(a,54)){for(e=0,d=a.gc()-1;e<d;++e,--d){h=a.Xb(e);a._c(e,a.Xb(d));a._c(d,h)}}else{b=a.Yc();f=a.Zc(a.gc());while(b.Tb()<f.Vb()){c=b.Pb();g=f.Ub();b.Wb(g);f.Wb(c)}}} +function I3b(a,b){var c,d,e;Odd(b,'End label pre-processing',1);c=Edb(ED(vNb(a,(Nyc(),nyc))));d=Edb(ED(vNb(a,ryc)));e=gad(BD(vNb(a,Lwc),103));MAb(LAb(new YAb(null,new Kub(a.b,16)),new Q3b),new S3b(c,d,e));Qdd(b)} +function NFc(a,b){var c,d,e,f,g,h;h=0;f=new jkb;Wjb(f,b);while(f.b!=f.c){g=BD(fkb(f),214);h+=pHc(g.d,g.e);for(e=new olb(g.b);e.a<e.c.c.length;){d=BD(mlb(e),37);c=BD(Ikb(a.b,d.p),214);c.s||(h+=NFc(a,c))}}return h} +function YQc(a,b,c){var d,e;TQc(this);b==(FQc(),DQc)?Qqb(this.r,a.c):Qqb(this.w,a.c);c==DQc?Qqb(this.r,a.d):Qqb(this.w,a.d);UQc(this,a);d=VQc(a.c);e=VQc(a.d);XQc(this,d,e,e);this.o=(hQc(),$wnd.Math.abs(d-e)<0.2)} +function a0d(a,b,c){var d,e,f,g,h,i;h=BD(Ajd(a.a,8),1936);if(h!=null){for(e=h,f=0,g=e.length;f<g;++f){null.jm()}}d=c;if((a.a.Db&1)==0){i=new f0d(a,c,b);d.ui(i)}JD(d,672)?BD(d,672).wi(a.a):d.ti()==a.a&&d.vi(null)} +function dae(){var a;if(Z9d)return BD(nUd((yFd(),xFd),Ewe),1945);eae();a=BD(JD(Phb((yFd(),xFd),Ewe),586)?Phb(xFd,Ewe):new cae,586);Z9d=true;aae(a);bae(a);Rhb((JFd(),IFd),a,new fae);Tnd(a);Shb(xFd,Ewe,a);return a} +function xA(a,b,c,d){var e;e=oA(a,c,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje]),b);e<0&&(e=oA(a,c,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat']),b));if(e<0){return false}d.d=e;return true} +function AA(a,b,c,d){var e;e=oA(a,c,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje]),b);e<0&&(e=oA(a,c,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat']),b));if(e<0){return false}d.d=e;return true} +function NVb(a){var b,c,d;KVb(a);d=new Rkb;for(c=new olb(a.a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);Ekb(d,new ZVb(b,true));Ekb(d,new ZVb(b,false))}RVb(a.c);rXb(d,a.b,new amb(OC(GC(bQ,1),Uhe,369,0,[a.c])));MVb(a)} +function c4b(a){var b,c,d,e;c=new Lqb;for(e=new olb(a.d);e.a<e.c.c.length;){d=BD(mlb(e),181);b=BD(d.We((wtc(),Dsc)),17);!!irb(c.f,b)||Rhb(c,b,new p4b(b));Ekb(BD(Wd(irb(c.f,b)),456).b,d)}return new Tkb(new $ib(c))} +function Gac(a,b){var c,d,e,f,g;d=new kkb(a.j.c.length);c=null;for(f=new olb(a.j);f.a<f.c.c.length;){e=BD(mlb(f),11);if(e.j!=c){d.b==d.c||Hac(d,c,b);Yjb(d);c=e.j}g=N3b(e);!!g&&(Xjb(d,g),true)}d.b==d.c||Hac(d,c,b)} +function wbc(a,b){var c,d,e;d=new Bib(a.b,0);while(d.b<d.d.gc()){c=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),70));e=BD(vNb(c,(Nyc(),Qwc)),272);if(e==(qad(),oad)){uib(d);Ekb(b.b,c);wNb(c,(wtc(),Dsc))||yNb(c,Dsc,a)}}} +function GDc(a){var b,c,d,e,f;b=sr(new Sr(ur(U_b(a).a.Kc(),new Sq)));for(e=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);c=d.c.i;f=sr(new Sr(ur(U_b(c).a.Kc(),new Sq)));b=$wnd.Math.max(b,f)}return meb(b)} +function rUc(a,b,c){var d,e,f,g;Odd(c,'Processor arrange node',1);e=null;f=new Psb;d=Jsb(b.b,0);while(!e&&d.b!=d.d.c){g=BD(Xsb(d),86);Ccb(DD(vNb(g,(mTc(),jTc))))&&(e=g)}Gsb(f,e,f.c.b,f.c);qUc(a,f,Udd(c,1));Qdd(c)} +function Ffd(a,b,c){var d,e,f;d=BD(hkd(a,(Y9c(),w8c)),21);e=0;f=0;b.a>c.a&&(d.Hc((i8c(),c8c))?(e=(b.a-c.a)/2):d.Hc(e8c)&&(e=b.a-c.a));b.b>c.b&&(d.Hc((i8c(),g8c))?(f=(b.b-c.b)/2):d.Hc(f8c)&&(f=b.b-c.b));Efd(a,e,f)} +function aod(a,b,c,d,e,f,g,h,i,j,k,l,m){JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=g;dJd(a,h);fJd(a,i);ZId(a,j);eJd(a,k);CId(a,l);aJd(a,m);BId(a,true);AId(a,e);a.ok(f);yId(a,b);d!=null&&(a.i=null,_Id(a,d))} +function PRd(a){var b,c;if(a.f){while(a.n>0){b=BD(a.k.Xb(a.n-1),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{--a.n}}return false}else{return a.n>0}} +function Jb(a,b,c){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,[c,meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must not be greater than size (%s)',OC(GC(SI,1),Uhe,1,5,[c,meb(a),meb(b)]))}} +function Llb(a,b,c,d,e,f){var g,h,i,j;g=d-c;if(g<7){Ilb(b,c,d,f);return}i=c+e;h=d+e;j=i+(h-i>>1);Llb(b,a,i,j,-e,f);Llb(b,a,j,h,-e,f);if(f.ue(a[j-1],a[j])<=0){while(c<d){NC(b,c++,a[i++])}return}Jlb(a,i,j,h,b,c,d,f)} +function nEb(a,b){var c,d,e;e=new Rkb;for(d=new olb(a.c.a.b);d.a<d.c.c.length;){c=BD(mlb(d),57);if(b.Lb(c)){Ekb(e,new BEb(c,true));Ekb(e,new BEb(c,false))}}tEb(a.e);kDb(e,a.d,new amb(OC(GC(JM,1),Uhe,679,0,[a.e])))} +function gnc(a,b){var c,d,e,f,g,h,i;i=b.d;e=b.b.j;for(h=new olb(i);h.a<h.c.c.length;){g=BD(mlb(h),101);f=KC(sbb,dle,25,e.c.length,16,1);Rhb(a.b,g,f);c=g.a.d.p-1;d=g.c.d.p;while(c!=d){c=(c+1)%e.c.length;f[c]=true}}} +function tOc(a,b){a.r=new uOc(a.p);sOc(a.r,a);ye(a.r.j,a.j);Osb(a.j);Dsb(a.j,b);Dsb(a.r.e,b);lOc(a);lOc(a.r);while(a.f.c.length!=0){AOc(BD(Ikb(a.f,0),129))}while(a.k.c.length!=0){AOc(BD(Ikb(a.k,0),129))}return a.r} +function yid(a,b,c){var d,e,f;e=XKd(a.Tg(),b);d=b-a.Ah();if(d<0){if(!e){throw vbb(new Wdb(mte+b+nte))}else if(e.Ij()){f=a.Yg(e);f>=0?a.sh(f,c):uid(a,e,c)}else{throw vbb(new Wdb(ite+e.ne()+jte))}}else{did(a,d,e,c)}} +function q6d(b){var c,d,e,f;d=BD(b,49).qh();if(d){try{e=null;c=nUd((yFd(),xFd),LEd(MEd(d)));if(c){f=c.rh();!!f&&(e=f.Wk(tfb(d.e)))}if(!!e&&e!=b){return q6d(e)}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}return b} +function jrb(a,b,c){var d,e,f,g;g=b==null?0:a.b.se(b);e=(d=a.a.get(g),d==null?new Array:d);if(e.length==0){a.a.set(g,e)}else{f=grb(a,b,e);if(f){return f.ed(c)}}NC(e,e.length,new pjb(b,c));++a.c;zpb(a.b);return null} +function YUc(a,b){var c,d;H2c(a.a);K2c(a.a,(PUc(),NUc),NUc);K2c(a.a,OUc,OUc);d=new j3c;e3c(d,OUc,(tVc(),sVc));PD(hkd(b,(ZWc(),LWc)))!==PD((pWc(),mWc))&&e3c(d,OUc,qVc);e3c(d,OUc,rVc);E2c(a.a,d);c=F2c(a.a,b);return c} +function uC(a){if(!a){return OB(),NB}var b=a.valueOf?a.valueOf():a;if(b!==a){var c=qC[typeof b];return c?c(b):xC(typeof b)}else if(a instanceof Array||a instanceof $wnd.Array){return new xB(a)}else{return new fC(a)}} +function RJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.b=$wnd.Math.max(e.b,f.a);e.b>f.a&&!b&&(e.b=f.a);e.c=-(e.b-f.a)/2;switch(c.g){case 1:e.d=-e.a;break;case 3:e.d=f.b;}hIb(d);iIb(d)} +function SJb(a,b,c){var d,e,f;f=a.o;d=BD(Mpb(a.p,c),244);e=d.i;e.b=gIb(d);e.a=fIb(d);e.a=$wnd.Math.max(e.a,f.b);e.a>f.b&&!b&&(e.a=f.b);e.d=-(e.a-f.b)/2;switch(c.g){case 4:e.c=-e.b;break;case 2:e.c=f.a;}hIb(d);iIb(d)} +function Jgc(a,b){var c,d,e,f,g;if(b.dc()){return}e=BD(b.Xb(0),128);if(b.gc()==1){Igc(a,e,e,1,0,b);return}c=1;while(c<b.gc()){if(e.j||!e.o){f=Ogc(b,c);if(f){d=BD(f.a,19).a;g=BD(f.b,128);Igc(a,e,g,c,d,b);c=d+1;e=g}}}} +function mlc(a){var b,c,d,e,f,g;g=new Tkb(a.d);Okb(g,new Qlc);b=(Alc(),OC(GC(KV,1),Kie,270,0,[tlc,wlc,slc,zlc,vlc,ulc,ylc,xlc]));c=0;for(f=new olb(g);f.a<f.c.c.length;){e=BD(mlb(f),101);d=b[c%b.length];olc(e,d);++c}} +function o6c(a,b){i6c();var c,d,e,f;if(b.b<2){return false}f=Jsb(b,0);c=BD(Xsb(f),8);d=c;while(f.b!=f.d.c){e=BD(Xsb(f),8);if(!(m6c(a,d)&&m6c(a,e))){return false}d=e}if(!(m6c(a,d)&&m6c(a,c))){return false}return true} +function hrd(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;l=a;g=Xpd(l,'x');c=new Krd(b);Gqd(c.a,g);h=Xpd(l,'y');d=new Lrd(b);Hqd(d.a,h);i=Xpd(l,Gte);e=new Mrd(b);Iqd(e.a,i);j=Xpd(l,Fte);f=new Nrd(b);k=(Jqd(f.a,j),j);return k} +function XMd(a,b){TMd(a,b);(a.b&1)!=0&&(a.a.a=null);(a.b&2)!=0&&(a.a.f=null);if((a.b&4)!=0){a.a.g=null;a.a.i=null}if((a.b&16)!=0){a.a.d=null;a.a.e=null}(a.b&8)!=0&&(a.a.b=null);if((a.b&32)!=0){a.a.j=null;a.a.c=null}} +function l0d(b,c){var d,e,f;f=0;if(c.length>0){try{f=Icb(c,Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){e=a;throw vbb(new rFd(e))}else throw vbb(a)}}d=(!b.a&&(b.a=new z0d(b)),b.a);return f<d.i&&f>=0?BD(qud(d,f),56):null} +function Ib(a,b){if(a<0){return hc(The,OC(GC(SI,1),Uhe,1,5,['index',meb(a)]))}else if(b<0){throw vbb(new Wdb(Vhe+b))}else{return hc('%s (%s) must be less than size (%s)',OC(GC(SI,1),Uhe,1,5,['index',meb(a),meb(b)]))}} +function Slb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!f.a?(f.a=new Wfb(f.d)):Qfb(f.a,f.b);Nfb(f.a,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function Tlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!f.a?(f.a=new Wfb(f.d)):Qfb(f.a,f.b);Nfb(f.a,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function Ulb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!f.a?(f.a=new Wfb(f.d)):Qfb(f.a,f.b);Nfb(f.a,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function Xlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!f.a?(f.a=new Wfb(f.d)):Qfb(f.a,f.b);Nfb(f.a,''+b)}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function bub(a,b){var c,d,e,f,g,h;c=a.b.c.length;e=Ikb(a.b,b);while(b*2+1<c){d=(f=2*b+1,g=f+1,h=f,g<c&&a.a.ue(Ikb(a.b,g),Ikb(a.b,f))<0&&(h=g),h);if(a.a.ue(e,Ikb(a.b,d))<0){break}Nkb(a.b,b,Ikb(a.b,d));b=d}Nkb(a.b,b,e)} +function $Bb(a,b,c,d,e,f){var g,h,i,j,k;if(PD(a)===PD(c)){a=a.slice(b,b+e);b=0}i=c;for(h=b,j=b+e;h<j;){g=$wnd.Math.min(h+10000,j);e=g-h;k=a.slice(h,g);k.splice(0,0,d,f?e:0);Array.prototype.splice.apply(i,k);h=g;d+=e}} +function xGb(a,b,c){var d,e;d=c.d;e=c.e;if(a.g[d.d]<=a.i[b.d]&&a.i[b.d]<=a.i[d.d]&&a.g[e.d]<=a.i[b.d]&&a.i[b.d]<=a.i[e.d]){if(a.i[d.d]<a.i[e.d]){return false}return true}if(a.i[d.d]<a.i[e.d]){return true}return false} +function cRb(a){var b,c,d,e,f,g,h;d=a.a.c.length;if(d>0){g=a.c.d;h=a.d.d;e=Y6c(c7c(new f7c(h.a,h.b),g),1/(d+1));f=new f7c(g.a,g.b);for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),559);b.d.a=f.a;b.d.b=f.b;P6c(f,e)}}} +function YNb(a,b,c){var d,e,f,g,h,i;i=Pje;for(f=new olb(wOb(a.b));f.a<f.c.c.length;){e=BD(mlb(f),168);for(h=new olb(wOb(b.b));h.a<h.c.c.length;){g=BD(mlb(h),168);d=p6c(e.a,e.b,g.a,g.b,c);i=$wnd.Math.min(i,d)}}return i} +function G0b(a,b){if(!b){throw vbb(new Geb)}a.j=b;if(!a.d){switch(a.j.g){case 1:a.a.a=a.o.a/2;a.a.b=0;break;case 2:a.a.a=a.o.a;a.a.b=a.o.b/2;break;case 3:a.a.a=a.o.a/2;a.a.b=a.o.b;break;case 4:a.a.a=0;a.a.b=a.o.b/2;}}} +function dfc(a,b){var c,d,e;if(JD(b.g,10)&&BD(b.g,10).k==(j0b(),e0b)){return Pje}e=ugc(b);if(e){return $wnd.Math.max(0,a.b/2-0.5)}c=tgc(b);if(c){d=Edb(ED(pBc(c,(Nyc(),vyc))));return $wnd.Math.max(0,d/2-0.5)}return Pje} +function ffc(a,b){var c,d,e;if(JD(b.g,10)&&BD(b.g,10).k==(j0b(),e0b)){return Pje}e=ugc(b);if(e){return $wnd.Math.max(0,a.b/2-0.5)}c=tgc(b);if(c){d=Edb(ED(pBc(c,(Nyc(),vyc))));return $wnd.Math.max(0,d/2-0.5)}return Pje} +function xic(a){var b,c,d,e,f,g;g=CHc(a.d,a.e);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);d=a.e==(Ucd(),Tcd)?e.e:e.g;for(c=new olb(d);c.a<c.c.c.length;){b=BD(mlb(c),17);if(!OZb(b)&&b.c.i.c!=b.d.i.c){tic(a,b);++a.f;++a.c}}}} +function tpc(a,b){var c,d;if(b.dc()){return mmb(),mmb(),jmb}d=new Rkb;Ekb(d,meb(Rie));for(c=1;c<a.f;++c){a.a==null&&Toc(a);a.a[c]&&Ekb(d,meb(c))}if(d.c.length==1){return mmb(),mmb(),jmb}Ekb(d,meb(Ohe));return spc(b,d)} +function MJc(a,b){var c,d,e,f,g,h,i;g=b.c.i.k!=(j0b(),h0b);i=g?b.d:b.c;c=MZb(b,i).i;e=BD(Ohb(a.k,i),121);d=a.i[c.p].a;if(S_b(i.i)<(!c.c?-1:Jkb(c.c.a,c,0))){f=e;h=d}else{f=d;h=e}AFb(DFb(CFb(EFb(BFb(new FFb,0),4),f),h))} +function oqd(a,b,c){var d,e,f,g,h,i;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);i=Wqd(a,Vpd(tB(c,g.a)));if(i){f=(!b.b&&(b.b=new y5d(z2,b,4,7)),b.b);wtd(f,i)}}}} +function pqd(a,b,c){var d,e,f,g,h,i;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);i=Wqd(a,Vpd(tB(c,g.a)));if(i){f=(!b.c&&(b.c=new y5d(z2,b,5,8)),b.c);wtd(f,i)}}}} +function po(a,b,c){var d,e;d=b.a&a.f;b.b=a.b[d];a.b[d]=b;e=b.f&a.f;b.d=a.c[e];a.c[e]=b;if(!c){b.e=a.e;b.c=null;!a.e?(a.a=b):(a.e.c=b);a.e=b}else{b.e=c.e;!b.e?(a.a=b):(b.e.c=b);b.c=c.c;!b.c?(a.e=b):(b.c.e=b)}++a.i;++a.g} +function qr(a){var b,c,d;b=a.Pb();if(!a.Ob()){return b}d=Pfb(Qfb(new Ufb,'expected one element but was: <'),b);for(c=0;c<4&&a.Ob();c++){Pfb((d.a+=She,d),a.Pb())}a.Ob()&&(d.a+=', ...',d);d.a+='>';throw vbb(new Wdb(d.a))} +function lt(a,b){var c;b.d?(b.d.b=b.b):(a.a=b.b);b.b?(b.b.d=b.d):(a.e=b.d);if(!b.e&&!b.c){c=BD(Thb(a.b,b.a),283);c.a=0;++a.c}else{c=BD(Ohb(a.b,b.a),283);--c.a;!b.e?(c.b=b.c):(b.e.c=b.c);!b.c?(c.c=b.e):(b.c.e=b.e)}--a.d} +function OA(a){var b,c;c=-a.a;b=OC(GC(TD,1),$ie,25,15,[43,48,48,48,48]);if(c<0){b[0]=45;c=-c}b[1]=b[1]+((c/60|0)/10|0)&aje;b[2]=b[2]+(c/60|0)%10&aje;b[3]=b[3]+(c%60/10|0)&aje;b[4]=b[4]+c%10&aje;return zfb(b,0,b.length)} +function uRb(a,b,c){var d,e;d=b.d;e=c.d;while(d.a-e.a==0&&d.b-e.b==0){d.a+=Cub(a,26)*ike+Cub(a,27)*jke-0.5;d.b+=Cub(a,26)*ike+Cub(a,27)*jke-0.5;e.a+=Cub(a,26)*ike+Cub(a,27)*jke-0.5;e.b+=Cub(a,26)*ike+Cub(a,27)*jke-0.5}} +function N_b(a){var b,c,d,e;a.g=new Rpb(BD(Qb(F1),290));d=0;c=(Ucd(),Acd);b=0;for(;b<a.j.c.length;b++){e=BD(Ikb(a.j,b),11);if(e.j!=c){d!=b&&Npb(a.g,c,new vgd(meb(d),meb(b)));c=e.j;d=b}}Npb(a.g,c,new vgd(meb(d),meb(b)))} +function d4b(a){var b,c,d,e,f,g,h;d=0;for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),29);for(f=new olb(b.a);f.a<f.c.c.length;){e=BD(mlb(f),10);e.p=d++;for(h=new olb(e.j);h.a<h.c.c.length;){g=BD(mlb(h),11);g.p=d++}}}} +function qPc(a,b,c,d,e){var f,g,h,i,j;if(b){for(h=b.Kc();h.Ob();){g=BD(h.Pb(),10);for(j=X_b(g,(KAc(),IAc),c).Kc();j.Ob();){i=BD(j.Pb(),11);f=BD(Wd(irb(e.f,i)),112);if(!f){f=new uOc(a.d);d.c[d.c.length]=f;jOc(f,i,e)}}}}} +function vid(a,b){var c,d,e;e=e1d((O6d(),M6d),a.Tg(),b);if(e){Q6d();BD(e,66).Oj()||(e=_1d(q1d(M6d,e)));d=(c=a.Yg(e),BD(c>=0?a._g(c,true,true):sid(a,e,true),153));BD(d,215).ol(b)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ugb(a){var b,c;if(a>-140737488355328&&a<140737488355328){if(a==0){return 0}b=a<0;b&&(a=-a);c=QD($wnd.Math.floor($wnd.Math.log(a)/0.6931471805599453));(!b||a!=$wnd.Math.pow(2,c))&&++c;return c}return vgb(Cbb(a))} +function QOc(a){var b,c,d,e,f,g,h;f=new zsb;for(c=new olb(a);c.a<c.c.c.length;){b=BD(mlb(c),129);g=b.a;h=b.b;if(f.a._b(g)||f.a._b(h)){continue}e=g;d=h;if(g.e.b+g.j.b>2&&h.e.b+h.j.b<=2){e=h;d=g}f.a.zc(e,f);e.q=d}return f} +function K5b(a,b){var c,d,e;d=new b0b(a);tNb(d,b);yNb(d,(wtc(),Gsc),b);yNb(d,(Nyc(),Vxc),(dcd(),$bd));yNb(d,mwc,(F7c(),B7c));__b(d,(j0b(),e0b));c=new H0b;F0b(c,d);G0b(c,(Ucd(),Tcd));e=new H0b;F0b(e,d);G0b(e,zcd);return d} +function Spc(a){switch(a.g){case 0:return new fGc((rGc(),oGc));case 1:return new CFc;case 2:return new fHc;default:throw vbb(new Wdb('No implementation is available for the crossing minimizer '+(a.f!=null?a.f:''+a.g)));}} +function tDc(a,b){var c,d,e,f,g;a.c[b.p]=true;Ekb(a.a,b);for(g=new olb(b.j);g.a<g.c.c.length;){f=BD(mlb(g),11);for(d=new b1b(f.b);llb(d.a)||llb(d.b);){c=BD(llb(d.a)?mlb(d.a):mlb(d.b),17);e=uDc(f,c).i;a.c[e.p]||tDc(a,e)}}} +function _Uc(a){var b,c,d,e,f,g,h;g=0;for(c=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));c.e!=c.i.gc();){b=BD(Dyd(c),33);h=b.g;e=b.f;d=$wnd.Math.sqrt(h*h+e*e);g=$wnd.Math.max(d,g);f=_Uc(b);g=$wnd.Math.max(f,g)}return g} +function rcd(){rcd=ccb;pcd=new scd('OUTSIDE',0);ncd=new scd('INSIDE',1);ocd=new scd('NEXT_TO_PORT_IF_POSSIBLE',2);mcd=new scd('ALWAYS_SAME_SIDE',3);lcd=new scd('ALWAYS_OTHER_SAME_SIDE',4);qcd=new scd('SPACE_EFFICIENT',5)} +function drd(a,b,c){var d,e,f,h,i,j;d=Tqd(a,(e=(Fhd(),f=new apd,f),!!c&&$od(e,c),e),b);Lkd(d,_pd(b,Vte));grd(b,d);brd(b,d);hrd(b,d);g=null;h=b;i=Ypd(h,'ports');j=new Jrd(a,d);Fqd(j.a,j.b,i);crd(a,b,d);Zqd(a,b,d);return d} +function NA(a){var b,c;c=-a.a;b=OC(GC(TD,1),$ie,25,15,[43,48,48,58,48,48]);if(c<0){b[0]=45;c=-c}b[1]=b[1]+((c/60|0)/10|0)&aje;b[2]=b[2]+(c/60|0)%10&aje;b[4]=b[4]+(c%60/10|0)&aje;b[5]=b[5]+c%10&aje;return zfb(b,0,b.length)} +function QA(a){var b;b=OC(GC(TD,1),$ie,25,15,[71,77,84,45,48,48,58,48,48]);if(a<=0){b[3]=43;a=-a}b[4]=b[4]+((a/60|0)/10|0)&aje;b[5]=b[5]+(a/60|0)%10&aje;b[7]=b[7]+(a%60/10|0)&aje;b[8]=b[8]+a%10&aje;return zfb(b,0,b.length)} +function Vlb(a){var b,c,d,e,f;if(a==null){return Xhe}f=new xwb(She,'[',']');for(c=a,d=0,e=c.length;d<e;++d){b=c[d];!f.a?(f.a=new Wfb(f.d)):Qfb(f.a,f.b);Nfb(f.a,''+Ubb(b))}return !f.a?f.c:f.e.length==0?f.a.a:f.a.a+(''+f.e)} +function DGb(a,b){var c,d,e;e=Ohe;for(d=new olb(LFb(b));d.a<d.c.c.length;){c=BD(mlb(d),213);if(c.f&&!a.c[c.c]){a.c[c.c]=true;e=$wnd.Math.min(e,DGb(a,xFb(c,b)))}}a.i[b.d]=a.j;a.g[b.d]=$wnd.Math.min(e,a.j++);return a.g[b.d]} +function EKb(a,b){var c,d,e;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);d.e.b=(c=d.b,c.Xe((Y9c(),s9c))?c.Hf()==(Ucd(),Acd)?-c.rf().b-Edb(ED(c.We(s9c))):Edb(ED(c.We(s9c))):c.Hf()==(Ucd(),Acd)?-c.rf().b:0)}} +function LPb(a){var b,c,d,e,f,g,h;c=IOb(a.e);f=Y6c(b7c(R6c(HOb(a.e)),a.d*a.a,a.c*a.b),-0.5);b=c.a-f.a;e=c.b-f.b;for(h=0;h<a.c;h++){d=b;for(g=0;g<a.d;g++){JOb(a.e,new J6c(d,e,a.a,a.b))&&aNb(a,g,h,false,true);d+=a.a}e+=a.b}} +function s2c(a){var b,c,d;if(Ccb(DD(hkd(a,(Y9c(),M8c))))){d=new Rkb;for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);Qld(b)&&Ccb(DD(hkd(b,N8c)))&&(d.c[d.c.length]=b,true)}return d}else{return mmb(),mmb(),jmb}} +function Vpd(a){var b,c;c=false;if(JD(a,204)){c=true;return BD(a,204).a}if(!c){if(JD(a,258)){b=BD(a,258).a%1==0;if(b){c=true;return meb(Idb(BD(a,258).a))}}}throw vbb(new cqd("Id must be a string or an integer: '"+a+"'."))} +function k0d(a,b){var c,d,e,f,g,h;f=null;for(e=new x0d((!a.a&&(a.a=new z0d(a)),a.a));u0d(e);){c=BD(Vud(e),56);d=(g=c.Tg(),h=(OKd(g),g.o),!h||!c.mh(h)?null:h6d(KJd(h),c.ah(h)));if(d!=null){if(dfb(d,b)){f=c;break}}}return f} +function Bw(a,b,c){var d,e,f,g,h;Xj(c,'occurrences');if(c==0){return h=BD(Hv(nd(a.a),b),14),!h?0:h.gc()}g=BD(Hv(nd(a.a),b),14);if(!g){return 0}f=g.gc();if(c>=f){g.$b()}else{e=g.Kc();for(d=0;d<c;d++){e.Pb();e.Qb()}}return f} +function ax(a,b,c){var d,e,f,g;Xj(c,'oldCount');Xj(0,'newCount');d=BD(Hv(nd(a.a),b),14);if((!d?0:d.gc())==c){Xj(0,'count');e=(f=BD(Hv(nd(a.a),b),14),!f?0:f.gc());g=-e;g>0?zh():g<0&&Bw(a,b,-g);return true}else{return false}} +function fIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){g=jIb(a,true);b=0;for(d=g,e=0,f=d.length;e<f;++e){c=d[e];if(c>0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}else{h=Mtb(Zzb(OAb(JAb(Plb(a.a),new xIb),new zIb)))}return h>0?h+a.n.d+a.n.a:0} +function gIb(a){var b,c,d,e,f,g,h;h=0;if(a.b==0){h=Mtb(Zzb(OAb(JAb(Plb(a.a),new tIb),new vIb)))}else{g=kIb(a,true);b=0;for(d=g,e=0,f=d.length;e<f;++e){c=d[e];if(c>0){h+=c;++b}}b>1&&(h+=a.c*(b-1))}return h>0?h+a.n.b+a.n.c:0} +function MJb(a,b){var c,d,e,f;f=BD(Mpb(a.b,b),124);c=f.a;for(e=BD(BD(Qc(a.r,b),21),84).Kc();e.Ob();){d=BD(e.Pb(),111);!!d.c&&(c.a=$wnd.Math.max(c.a,ZHb(d.c)))}if(c.a>0){switch(b.g){case 2:f.n.c=a.s;break;case 4:f.n.b=a.s;}}} +function NQb(a,b){var c,d,e;c=BD(vNb(b,(wSb(),oSb)),19).a-BD(vNb(a,oSb),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(HSb(),DSb)),8)),BD(vNb(a,ESb),8));e=c7c(R6c(BD(vNb(b,DSb),8)),BD(vNb(b,ESb),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function iRc(a,b){var c,d,e;c=BD(vNb(b,(JTc(),ETc)),19).a-BD(vNb(a,ETc),19).a;if(c==0){d=c7c(R6c(BD(vNb(a,(mTc(),VSc)),8)),BD(vNb(a,WSc),8));e=c7c(R6c(BD(vNb(b,VSc),8)),BD(vNb(b,WSc),8));return Kdb(d.a*d.b,e.a*e.b)}return c} +function TZb(a){var b,c;c=new Ufb;c.a+='e_';b=KZb(a);b!=null&&(c.a+=''+b,c);if(!!a.c&&!!a.d){Qfb((c.a+=' ',c),C0b(a.c));Qfb(Pfb((c.a+='[',c),a.c.i),']');Qfb((c.a+=gne,c),C0b(a.d));Qfb(Pfb((c.a+='[',c),a.d.i),']')}return c.a} +function zRc(a){switch(a.g){case 0:return new lUc;case 1:return new sUc;case 2:return new CUc;case 3:return new IUc;default:throw vbb(new Wdb('No implementation is available for the layout phase '+(a.f!=null?a.f:''+a.g)));}} +function mfd(a,b,c,d,e){var f;f=0;switch(e.g){case 1:f=$wnd.Math.max(0,b.b+a.b-(c.b+d));break;case 3:f=$wnd.Math.max(0,-a.b-d);break;case 2:f=$wnd.Math.max(0,-a.a-d);break;case 4:f=$wnd.Math.max(0,b.a+a.a-(c.a+d));}return f} +function mqd(a,b,c){var d,e,f,g,h;if(c){e=c.a.length;d=new Yge(e);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);f=Zpd(c,g.a);Lte in f.a||Mte in f.a?$qd(a,f,b):erd(a,f,b);otd(BD(Ohb(a.b,Wpd(f)),79))}}} +function LJd(a){var b,c;switch(a.b){case -1:{return true}case 0:{c=a.t;if(c>1||c==-1){a.b=-1;return true}else{b=wId(a);if(!!b&&(Q6d(),b.Cj()==Bve)){a.b=-1;return true}else{a.b=1;return false}}}default:case 1:{return false}}} +function k1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e<g;++e){c=BD(qud(d,e),170);switch($1d(q1d(a,c))){case 2:case 3:{!f&&(f=new Rkb);f.c[f.c.length]=c}}}return !f?(mmb(),mmb(),jmb):f} +function tde(a,b){var c,d,e,f;nde(a);if(a.c!=0||a.a!=123)throw vbb(new mde(tvd((h0d(),Fue))));f=b==112;d=a.d;c=gfb(a.i,125,d);if(c<0)throw vbb(new mde(tvd((h0d(),Gue))));e=qfb(a.i,d,c);a.d=c+1;return Lfe(e,f,(a.e&512)==512)} +function QTb(a){var b;b=BD(vNb(a,(Nyc(),Iwc)),314);if(b==(Rpc(),Ppc)){throw vbb(new z2c('The hierarchy aware processor '+b+' in child node '+a+' is only allowed if the root node specifies the same hierarchical processor.'))}} +function dhc(a,b){Hgc();var c,d,e,f,g,h;c=null;for(g=b.Kc();g.Ob();){f=BD(g.Pb(),128);if(f.o){continue}d=F6c(f.a);e=C6c(f.a);h=new hic(d,e,null,BD(f.d.a.ec().Kc().Pb(),17));Ekb(h.c,f.a);a.c[a.c.length]=h;!!c&&Ekb(c.d,h);c=h}} +function hKd(a,b){var c,d,e;if(!b){jKd(a,null);_Jd(a,null)}else if((b.i&4)!=0){d='[]';for(c=b.c;;c=c.c){if((c.i&4)==0){e=jfb((fdb(c),c.o+d));jKd(a,e);_Jd(a,e);break}d+='[]'}}else{e=jfb((fdb(b),b.o));jKd(a,e);_Jd(a,e)}a.yk(b)} +function b3d(a,b,c,d,e){var f,g,h,i;i=a3d(a,BD(e,56));if(PD(i)!==PD(e)){h=BD(a.g[c],72);f=R6d(b,i);mud(a,c,t3d(a,c,f));if(oid(a.e)){g=H2d(a,9,f.ak(),e,i,d,false);Qwd(g,new pSd(a.e,9,a.c,h,f,d,false));Rwd(g)}return i}return e} +function xCc(a,b,c){var d,e,f,g,h,i;d=BD(Qc(a.c,b),15);e=BD(Qc(a.c,c),15);f=d.Zc(d.gc());g=e.Zc(e.gc());while(f.Sb()&&g.Sb()){h=BD(f.Ub(),19);i=BD(g.Ub(),19);if(h!=i){return beb(h.a,i.a)}}return !f.Ob()&&!g.Ob()?0:f.Ob()?1:-1} +function m5c(c,d){var e,f,g;try{g=fs(c.a,d);return g}catch(b){b=ubb(b);if(JD(b,32)){try{f=Icb(d,Rie,Ohe);e=gdb(c.a);if(f>=0&&f<e.length){return e[f]}}catch(a){a=ubb(a);if(!JD(a,127))throw vbb(a)}return null}else throw vbb(b)}} +function tid(a,b){var c,d,e;e=e1d((O6d(),M6d),a.Tg(),b);if(e){Q6d();BD(e,66).Oj()||(e=_1d(q1d(M6d,e)));d=(c=a.Yg(e),BD(c>=0?a._g(c,true,true):sid(a,e,true),153));return BD(d,215).ll(b)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function BZd(){tZd();var a;if(sZd)return BD(nUd((yFd(),xFd),_ve),1939);rEd(CK,new J_d);CZd();a=BD(JD(Phb((yFd(),xFd),_ve),547)?Phb(xFd,_ve):new AZd,547);sZd=true;yZd(a);zZd(a);Rhb((JFd(),IFd),a,new EZd);Shb(xFd,_ve,a);return a} +function v2d(a,b){var c,d,e,f;a.j=-1;if(oid(a.e)){c=a.i;f=a.i!=0;lud(a,b);d=new pSd(a.e,3,a.c,null,b,c,f);e=b.Qk(a.e,a.c,null);e=h3d(a,b,e);if(!e){Uhd(a.e,d)}else{e.Ei(d);e.Fi()}}else{lud(a,b);e=b.Qk(a.e,a.c,null);!!e&&e.Fi()}} +function rA(a,b){var c,d,e;e=0;d=b[0];if(d>=a.length){return -1}c=(BCb(d,a.length),a.charCodeAt(d));while(c>=48&&c<=57){e=e*10+(c-48);++d;if(d>=a.length){break}c=(BCb(d,a.length),a.charCodeAt(d))}d>b[0]?(b[0]=d):(e=-1);return e} +function vMb(a){var b,c,d,e,f;e=BD(a.a,19).a;f=BD(a.b,19).a;c=e;d=f;b=$wnd.Math.max($wnd.Math.abs(e),$wnd.Math.abs(f));if(e<=0&&e==f){c=0;d=f-1}else{if(e==-b&&f!=b){c=f;d=e;f>=0&&++c}else{c=-f;d=e}}return new vgd(meb(c),meb(d))} +function fNb(a,b,c,d){var e,f,g,h,i,j;for(e=0;e<b.o;e++){f=e-b.j+c;for(g=0;g<b.p;g++){h=g-b.k+d;if((i=f,j=h,i+=a.j,j+=a.k,i>=0&&j>=0&&i<a.o&&j<a.p)&&(!ZMb(b,e,g)&&hNb(a,f,h)||YMb(b,e,g)&&!iNb(a,f,h))){return true}}}return false} +function LNc(a,b,c){var d,e,f,g,h;g=a.c;h=a.d;f=l7c(OC(GC(m1,1),nie,8,0,[g.i.n,g.n,g.a])).b;e=(f+l7c(OC(GC(m1,1),nie,8,0,[h.i.n,h.n,h.a])).b)/2;d=null;g.j==(Ucd(),zcd)?(d=new f7c(b+g.i.c.c.a+c,e)):(d=new f7c(b-c,e));St(a.a,0,d)} +function Qld(a){var b,c,d,e;b=null;for(d=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c)])));Qr(d);){c=BD(Rr(d),82);e=atd(c);if(!b){b=e}else if(b!=e){return false}}return true} +function sud(a,b,c){var d;++a.j;if(b>=a.i)throw vbb(new qcb(lue+b+mue+a.i));if(c>=a.i)throw vbb(new qcb(nue+c+mue+a.i));d=a.g[c];if(b!=c){b<c?$fb(a.g,b,a.g,b+1,c-b):$fb(a.g,c+1,a.g,c,b-c);NC(a.g,b,d);a.ei(b,d,c);a.ci()}return d} +function Rc(a,b,c){var d;d=BD(a.c.xc(b),14);if(!d){d=a.ic(b);if(d.Fc(c)){++a.d;a.c.zc(b,d);return true}else{throw vbb(new ycb('New Collection violated the Collection spec'))}}else if(d.Fc(c)){++a.d;return true}else{return false}} +function heb(a){var b,c,d;if(a<0){return 0}else if(a==0){return 32}else{d=-(a>>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-Rje;b=d>>16&4;c+=b;a<<=b;d=a-oie;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}} +function $Pb(a){QPb();var b,c,d,e;PPb=new Rkb;OPb=new Lqb;NPb=new Rkb;b=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);SPb(b);for(e=new Fyd(b);e.e!=e.i.gc();){d=BD(Dyd(e),33);if(Jkb(PPb,d,0)==-1){c=new Rkb;Ekb(NPb,c);TPb(d,c)}}return NPb} +function BQb(a,b,c){var d,e,f,g;a.a=c.b.d;if(JD(b,352)){e=itd(BD(b,79),false,false);f=ofd(e);d=new FQb(a);reb(f,d);ifd(f,e);b.We((Y9c(),Q8c))!=null&&reb(BD(b.We(Q8c),74),d)}else{g=BD(b,470);g.Hg(g.Dg()+a.a.a);g.Ig(g.Eg()+a.a.b)}} +function _5b(a,b){var c,d,e,f,g,h,i,j;j=Edb(ED(vNb(b,(Nyc(),zyc))));i=a[0].n.a+a[0].o.a+a[0].d.c+j;for(h=1;h<a.length;h++){d=a[h].n;e=a[h].o;c=a[h].d;f=d.a-c.b-i;f<0&&(d.a-=f);g=b.f;g.a=$wnd.Math.max(g.a,d.a+e.a);i=d.a+e.a+c.c+j}} +function D$c(a,b){var c,d,e,f,g,h;d=BD(BD(Ohb(a.g,b.a),46).a,65);e=BD(BD(Ohb(a.g,b.b),46).a,65);f=d.b;g=e.b;c=z6c(f,g);if(c>=0){return c}h=U6c(c7c(new f7c(g.c+g.b/2,g.d+g.a/2),new f7c(f.c+f.b/2,f.d+f.a/2)));return -(xOb(f,g)-1)*h} +function ufd(a,b,c){var d;MAb(new YAb(null,(!c.a&&(c.a=new cUd(A2,c,6,6)),new Kub(c.a,16))),new Mfd(a,b));MAb(new YAb(null,(!c.n&&(c.n=new cUd(D2,c,1,7)),new Kub(c.n,16))),new Ofd(a,b));d=BD(hkd(c,(Y9c(),Q8c)),74);!!d&&p7c(d,a,b)} +function sid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();BD(f,66).Oj()||(f=_1d(q1d(M6d,f)));e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));return BD(e,215).hl(b,c)}else{throw vbb(new Wdb(ite+b.ne()+lte))}} +function wAd(a,b,c,d){var e,f,g,h,i;e=a.d[b];if(e){f=e.g;i=e.i;if(d!=null){for(h=0;h<i;++h){g=BD(f[h],133);if(g.Sh()==c&&pb(d,g.cd())){return g}}}else{for(h=0;h<i;++h){g=BD(f[h],133);if(PD(g.cd())===PD(d)){return g}}}}return null} +function Pgb(a,b){var c;if(b<0){throw vbb(new ocb('Negative exponent'))}if(b==0){return Cgb}else if(b==1||Kgb(a,Cgb)||Kgb(a,Ggb)){return a}if(!Sgb(a,0)){c=1;while(!Sgb(a,c)){++c}return Ogb(bhb(c*b),Pgb(Rgb(a,c),b))}return Jhb(a,b)} +function xlb(a,b){var c,d,e;if(PD(a)===PD(b)){return true}if(a==null||b==null){return false}if(a.length!=b.length){return false}for(c=0;c<a.length;++c){d=a[c];e=b[c];if(!(PD(d)===PD(e)||d!=null&&pb(d,e))){return false}}return true} +function CVb(a){nVb();var b,c,d;this.b=mVb;this.c=(ead(),cad);this.f=(iVb(),hVb);this.a=a;zVb(this,new DVb);sVb(this);for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),81);if(!c.d){b=new gVb(OC(GC(IP,1),Uhe,81,0,[c]));Ekb(a.a,b)}}} +function D3b(a,b,c){var d,e,f,g,h,i;if(!a||a.c.length==0){return null}f=new cIb(b,!c);for(e=new olb(a);e.a<e.c.c.length;){d=BD(mlb(e),70);UHb(f,(a$b(),new v$b(d)))}g=f.i;g.a=(i=f.n,f.e.b+i.d+i.a);g.b=(h=f.n,f.e.a+h.b+h.c);return f} +function O5b(a){var b,c,d,e,f,g,h;h=l_b(a.a);Nlb(h,new T5b);c=null;for(e=h,f=0,g=e.length;f<g;++f){d=e[f];if(d.k!=(j0b(),e0b)){break}b=BD(vNb(d,(wtc(),Hsc)),61);if(b!=(Ucd(),Tcd)&&b!=zcd){continue}!!c&&BD(vNb(c,Qsc),15).Fc(d);c=d}} +function YOc(a,b,c){var d,e,f,g,h,i,j;i=(tCb(b,a.c.length),BD(a.c[b],329));Kkb(a,b);if(i.b/2>=c){d=b;j=(i.c+i.a)/2;g=j-c;if(i.c<=j-c){e=new bPc(i.c,g);Dkb(a,d++,e)}h=j+c;if(h<=i.a){f=new bPc(h,i.a);wCb(d,a.c.length);aCb(a.c,d,f)}}} +function u0d(a){var b;if(!a.c&&a.g==null){a.d=a.si(a.f);wtd(a,a.d);b=a.d}else{if(a.g==null){return true}else if(a.i==0){return false}else{b=BD(a.g[a.i-1],47)}}if(b==a.b&&null.km>=null.jm()){Vud(a);return u0d(a)}else{return b.Ob()}} +function KTb(a,b,c){var d,e,f,g,h;h=c;!h&&(h=Ydd(new Zdd,0));Odd(h,Vme,1);aUb(a.c,b);g=EYb(a.a,b);if(g.gc()==1){MTb(BD(g.Xb(0),37),h)}else{f=1/g.gc();for(e=g.Kc();e.Ob();){d=BD(e.Pb(),37);MTb(d,Udd(h,f))}}CYb(a.a,g,b);NTb(b);Qdd(h)} +function qYb(a){this.a=a;if(a.c.i.k==(j0b(),e0b)){this.c=a.c;this.d=BD(vNb(a.c.i,(wtc(),Hsc)),61)}else if(a.d.i.k==e0b){this.c=a.d;this.d=BD(vNb(a.d.i,(wtc(),Hsc)),61)}else{throw vbb(new Wdb('Edge '+a+' is not an external edge.'))}} +function oQd(a,b){var c,d,e;e=a.b;a.b=b;(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,e,a.b));if(!b){pnd(a,null);qQd(a,0);pQd(a,null)}else if(b!=a){pnd(a,b.zb);qQd(a,b.d);c=(d=b.c,d==null?b.zb:d);pQd(a,c==null||dfb(c,b.zb)?null:c)}} +function NRd(a){var b,c;if(a.f){while(a.n<a.o){b=BD(!a.j?a.k.Xb(a.n):a.j.pi(a.n),72);c=b.ak();if(JD(c,99)&&(BD(c,18).Bb&ote)!=0&&(!a.e||c.Gj()!=x2||c.aj()!=0)&&b.dd()!=null){return true}else{++a.n}}return false}else{return a.n<a.o}} +function _i(a,b){var c;this.e=(im(),Qb(a),im(),nm(a));this.c=(Qb(b),nm(b));Lb(this.e.Hd().dc()==this.c.Hd().dc());this.d=Ev(this.e);this.b=Ev(this.c);c=IC(SI,[nie,Uhe],[5,1],5,[this.e.Hd().gc(),this.c.Hd().gc()],2);this.a=c;Ri(this)} +function vz(b){var c=(!tz&&(tz=wz()),tz);var d=b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(a){return uz(a,c)});return '"'+d+'"'} +function cEb(a){ODb();var b,c;this.b=LDb;this.c=NDb;this.g=(FDb(),EDb);this.d=(ead(),cad);this.a=a;RDb(this);for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);!b.a&&pDb(rDb(new sDb,OC(GC(PM,1),Uhe,57,0,[b])),a);b.e=new K6c(b.d)}} +function HQb(a){var b,c,d,e,f,g;e=a.e.c.length;d=KC(yK,eme,15,e,0,1);for(g=new olb(a.e);g.a<g.c.c.length;){f=BD(mlb(g),144);d[f.b]=new Psb}for(c=new olb(a.c);c.a<c.c.c.length;){b=BD(mlb(c),282);d[b.c.b].Fc(b);d[b.d.b].Fc(b)}return d} +function fDc(a){var b,c,d,e,f,g,h;h=Pu(a.c.length);for(e=new olb(a);e.a<e.c.c.length;){d=BD(mlb(e),10);g=new Tqb;f=U_b(d);for(c=new Sr(ur(f.a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);b.c.i==b.d.i||Qqb(g,b.d.i)}h.c[h.c.length]=g}return h} +function ozd(a,b){var c,d,e,f,g;c=BD(Ajd(a.a,4),126);g=c==null?0:c.length;if(b>=g)throw vbb(new Cyd(b,g));e=c[b];if(g==1){d=null}else{d=KC($3,hve,415,g-1,0,1);$fb(c,0,d,0,b);f=g-b-1;f>0&&$fb(c,b+1,d,b,f)}b0d(a,d);a0d(a,b,e);return e} +function m8d(){m8d=ccb;k8d=BD(qud(ZKd((r8d(),q8d).qb),6),34);h8d=BD(qud(ZKd(q8d.qb),3),34);i8d=BD(qud(ZKd(q8d.qb),4),34);j8d=BD(qud(ZKd(q8d.qb),5),18);XId(k8d);XId(h8d);XId(i8d);XId(j8d);l8d=new amb(OC(GC(t5,1),Mve,170,0,[k8d,h8d]))} +function AJb(a,b){var c;this.d=new H_b;this.b=b;this.e=new g7c(b.qf());c=a.u.Hc((rcd(),ocd));a.u.Hc(ncd)?a.D?(this.a=c&&!b.If()):(this.a=true):a.u.Hc(pcd)?c?(this.a=!(b.zf().Kc().Ob()||b.Bf().Kc().Ob())):(this.a=false):(this.a=false)} +function IKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Tcd)?-d.rf().a-Edb(ED(d.We(s9c))):c+Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Tcd)?-d.rf().a:c)}} +function Q1b(a,b){var c,d,e,f;c=BD(vNb(a,(Nyc(),Lwc)),103);f=BD(hkd(b,$xc),61);e=BD(vNb(a,Vxc),98);if(e!=(dcd(),bcd)&&e!=ccd){if(f==(Ucd(),Scd)){f=lfd(b,c);f==Scd&&(f=Zcd(c))}}else{d=M1b(b);d>0?(f=Zcd(c)):(f=Wcd(Zcd(c)))}jkd(b,$xc,f)} +function olc(a,b){var c,d,e,f,g;g=a.j;b.a!=b.b&&Okb(g,new Ulc);e=g.c.length/2|0;for(d=0;d<e;d++){f=(tCb(d,g.c.length),BD(g.c[d],113));f.c&&G0b(f.d,b.a)}for(c=e;c<g.c.length;c++){f=(tCb(c,g.c.length),BD(g.c[c],113));f.c&&G0b(f.d,b.b)}} +function TGc(a,b,c){var d,e,f;d=a.c[b.c.p][b.p];e=a.c[c.c.p][c.p];if(d.a!=null&&e.a!=null){f=Ddb(d.a,e.a);f<0?WGc(a,b,c):f>0&&WGc(a,c,b);return f}else if(d.a!=null){WGc(a,b,c);return -1}else if(e.a!=null){WGc(a,c,b);return 1}return 0} +function swd(a,b){var c,d,e,f;if(a.ej()){c=a.Vi();f=a.fj();++a.j;a.Hi(c,a.oi(c,b));d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{Bvd(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} +function D2d(a,b){var c,d,e,f,g;g=S6d(a.e.Tg(),b);e=new yud;c=BD(a.g,119);for(f=a.i;--f>=0;){d=c[f];g.rl(d.ak())&&wtd(e,d)}!Yxd(a,e)&&oid(a.e)&&GLd(a,b.$j()?H2d(a,6,b,(mmb(),jmb),null,-1,false):H2d(a,b.Kj()?2:1,b,null,null,-1,false))} +function Dhb(){Dhb=ccb;var a,b;Bhb=KC(cJ,nie,91,32,0,1);Chb=KC(cJ,nie,91,32,0,1);a=1;for(b=0;b<=18;b++){Bhb[b]=ghb(a);Chb[b]=ghb(Nbb(a,b));a=Ibb(a,5)}for(;b<Chb.length;b++){Bhb[b]=Ogb(Bhb[b-1],Bhb[1]);Chb[b]=Ogb(Chb[b-1],(Hgb(),Egb))}} +function K4b(a,b){var c,d,e,f,g;if(a.a==(yrc(),wrc)){return true}f=b.a.c;c=b.a.c+b.a.b;if(b.j){d=b.A;g=d.c.c.a-d.o.a/2;e=f-(d.n.a+d.o.a);if(e>g){return false}}if(b.q){d=b.C;g=d.c.c.a-d.o.a/2;e=d.n.a-c;if(e>g){return false}}return true} +function wcc(a,b){var c;Odd(b,'Partition preprocessing',1);c=BD(GAb(JAb(LAb(JAb(new YAb(null,new Kub(a.a,16)),new Acc),new Ccc),new Ecc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);MAb(c.Oc(),new Gcc);Qdd(b)} +function DMc(a){wMc();var b,c,d,e,f,g,h;c=new $rb;for(e=new olb(a.e.b);e.a<e.c.c.length;){d=BD(mlb(e),29);for(g=new olb(d.a);g.a<g.c.c.length;){f=BD(mlb(g),10);h=a.g[f.p];b=BD(Wrb(c,h),15);if(!b){b=new Rkb;Xrb(c,h,b)}b.Fc(f)}}return c} +function dRc(a,b){var c,d,e,f,g;e=b.b.b;a.a=KC(yK,eme,15,e,0,1);a.b=KC(sbb,dle,25,e,16,1);for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);a.a[f.g]=new Psb}for(d=Jsb(b.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);a.a[c.b.g].Fc(c);a.a[c.c.g].Fc(c)}} +function qmd(a){var b;if((a.Db&64)!=0)return Eid(a);b=new Jfb(Eid(a));b.a+=' (startX: ';Bfb(b,a.j);b.a+=', startY: ';Bfb(b,a.k);b.a+=', endX: ';Bfb(b,a.b);b.a+=', endY: ';Bfb(b,a.c);b.a+=', identifier: ';Efb(b,a.d);b.a+=')';return b.a} +function EId(a){var b;if((a.Db&64)!=0)return qnd(a);b=new Jfb(qnd(a));b.a+=' (ordered: ';Ffb(b,(a.Bb&256)!=0);b.a+=', unique: ';Ffb(b,(a.Bb&512)!=0);b.a+=', lowerBound: ';Cfb(b,a.s);b.a+=', upperBound: ';Cfb(b,a.t);b.a+=')';return b.a} +function Wnd(a,b,c,d,e,f,g,h){var i;JD(a.Cb,88)&&XMd($Kd(BD(a.Cb,88)),4);pnd(a,c);a.f=d;dJd(a,e);fJd(a,f);ZId(a,g);eJd(a,false);CId(a,true);aJd(a,h);BId(a,true);AId(a,0);a.b=0;DId(a,1);i=xId(a,b,null);!!i&&i.Fi();MJd(a,false);return a} +function fyb(a,b){var c,d,e,f;c=BD(Phb(a.a,b),512);if(!c){d=new wyb(b);e=(oyb(),lyb)?null:d.c;f=qfb(e,0,$wnd.Math.max(0,kfb(e,wfb(46))));vyb(d,fyb(a,f));(lyb?null:d.c).length==0&&qyb(d,new zyb);Shb(a.a,lyb?null:d.c,d);return d}return c} +function BOb(a,b){var c;a.b=b;a.g=new Rkb;c=COb(a.b);a.e=c;a.f=c;a.c=Ccb(DD(vNb(a.b,(fFb(),$Eb))));a.a=ED(vNb(a.b,(Y9c(),r8c)));a.a==null&&(a.a=1);Edb(a.a)>1?(a.e*=Edb(a.a)):(a.f/=Edb(a.a));DOb(a);EOb(a);AOb(a);yNb(a.b,(CPb(),uPb),a.g)} +function Y5b(a,b,c){var d,e,f,g,h,i;d=0;i=c;if(!b){d=c*(a.c.length-1);i*=-1}for(f=new olb(a);f.a<f.c.c.length;){e=BD(mlb(f),10);yNb(e,(Nyc(),mwc),(F7c(),B7c));e.o.a=d;for(h=Y_b(e,(Ucd(),zcd)).Kc();h.Ob();){g=BD(h.Pb(),11);g.n.a=d}d+=i}} +function Qxd(a,b,c){var d,e,f;if(a.ej()){f=a.fj();kud(a,b,c);d=a.Zi(3,null,c,b,f);if(a.bj()){e=a.cj(c,null);a.ij()&&(e=a.jj(c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{kud(a,b,c);if(a.bj()){e=a.cj(c,null);!!e&&e.Fi()}}} +function ILd(a,b,c){var d,e,f,g,h,i;h=a.Gk(c);if(h!=c){g=a.g[b];i=h;mud(a,b,a.oi(b,i));f=g;a.gi(b,i,f);if(a.rk()){d=c;e=a.dj(d,null);!BD(h,49).eh()&&(e=a.cj(i,e));!!e&&e.Fi()}oid(a.e)&&GLd(a,a.Zi(9,c,h,b,false));return h}else{return c}} +function pVb(a,b){var c,d,e,f;for(d=new olb(a.a.a);d.a<d.c.c.length;){c=BD(mlb(d),189);c.g=true}for(f=new olb(a.a.b);f.a<f.c.c.length;){e=BD(mlb(f),81);e.k=Ccb(DD(a.e.Kb(new vgd(e,b))));e.d.g=e.d.g&Ccb(DD(a.e.Kb(new vgd(e,b))))}return a} +function pkc(a){var b,c,d,e,f;c=(b=BD(gdb(F1),9),new xqb(b,BD(_Bb(b,b.length),9),0));f=BD(vNb(a,(wtc(),gtc)),10);if(f){for(e=new olb(f.j);e.a<e.c.c.length;){d=BD(mlb(e),11);PD(vNb(d,$sc))===PD(a)&&a1b(new b1b(d.b))&&rqb(c,d.j)}}return c} +function zCc(a,b,c){var d,e,f,g,h;if(a.d[c.p]){return}for(e=new Sr(ur(U_b(c).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);h=d.d.i;for(g=new Sr(ur(R_b(h).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);f.c.i==b&&(a.a[f.p]=true)}zCc(a,b,h)}a.d[c.p]=true} +function Bjd(a,b){var c,d,e,f,g,h,i;d=aeb(a.Db&254);if(d==1){a.Eb=null}else{f=CD(a.Eb);if(d==2){e=zjd(a,b);a.Eb=f[e==0?1:0]}else{g=KC(SI,Uhe,1,d-1,5,1);for(c=2,h=0,i=0;c<=128;c<<=1){c==b?++h:(a.Db&c)!=0&&(g[i++]=f[h++])}a.Eb=g}}a.Db&=~b} +function n1d(a,b){var c,d,e,f,g;d=(!b.s&&(b.s=new cUd(t5,b,21,17)),b.s);f=null;for(e=0,g=d.i;e<g;++e){c=BD(qud(d,e),170);switch($1d(q1d(a,c))){case 4:case 5:case 6:{!f&&(f=new Rkb);f.c[f.c.length]=c;break}}}return !f?(mmb(),mmb(),jmb):f} +function Uee(a){var b;b=0;switch(a){case 105:b=2;break;case 109:b=8;break;case 115:b=4;break;case 120:b=16;break;case 117:b=32;break;case 119:b=64;break;case 70:b=256;break;case 72:b=128;break;case 88:b=512;break;case 44:b=zte;}return b} +function Ghb(a,b,c,d,e){var f,g,h,i;if(PD(a)===PD(b)&&d==e){Lhb(a,d,c);return}for(h=0;h<d;h++){g=0;f=a[h];for(i=0;i<e;i++){g=wbb(wbb(Ibb(xbb(f,Yje),xbb(b[i],Yje)),xbb(c[h+i],Yje)),xbb(Tbb(g),Yje));c[h+i]=Tbb(g);g=Pbb(g,32)}c[h+e]=Tbb(g)}} +function COb(a){var b,c,d,e,f,g,h,i,j,k,l;k=0;j=0;e=a.a;h=e.a.gc();for(d=e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),561);b=(c.b&&LOb(c),c.a);l=b.a;g=b.b;k+=l+g;j+=l*g}i=$wnd.Math.sqrt(400*h*j-4*j+k*k)+k;f=2*(100*h-1);if(f==0){return i}return i/f} +function mOc(a,b){if(b.b!=0){isNaN(a.s)?(a.s=Edb((sCb(b.b!=0),ED(b.a.a.c)))):(a.s=$wnd.Math.min(a.s,Edb((sCb(b.b!=0),ED(b.a.a.c)))));isNaN(a.c)?(a.c=Edb((sCb(b.b!=0),ED(b.c.b.c)))):(a.c=$wnd.Math.max(a.c,Edb((sCb(b.b!=0),ED(b.c.b.c)))))}} +function Pld(a){var b,c,d,e;b=null;for(d=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c)])));Qr(d);){c=BD(Rr(d),82);e=atd(c);if(!b){b=Xod(e)}else if(b!=Xod(e)){return true}}return false} +function Rxd(a,b){var c,d,e,f;if(a.ej()){c=a.i;f=a.fj();lud(a,b);d=a.Zi(3,null,b,c,f);if(a.bj()){e=a.cj(b,null);a.ij()&&(e=a.jj(b,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{lud(a,b);if(a.bj()){e=a.cj(b,null);!!e&&e.Fi()}}} +function rwd(a,b,c){var d,e,f;if(a.ej()){f=a.fj();++a.j;a.Hi(b,a.oi(b,c));d=a.Zi(3,null,c,b,f);if(a.bj()){e=a.cj(c,null);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.$i(d)}}else{++a.j;a.Hi(b,a.oi(b,c));if(a.bj()){e=a.cj(c,null);!!e&&e.Fi()}}} +function Wee(a){var b,c,d,e;e=a.length;b=null;for(d=0;d<e;d++){c=(BCb(d,a.length),a.charCodeAt(d));if(hfb('.*+?{[()|\\^$',wfb(c))>=0){if(!b){b=new Ifb;d>0&&Efb(b,a.substr(0,d))}b.a+='\\';Afb(b,c&aje)}else !!b&&Afb(b,c&aje)}return b?b.a:a} +function l5c(a){var b;if(!a.a){throw vbb(new Zdb('IDataType class expected for layout option '+a.f))}b=gvd(a.a);if(b==null){throw vbb(new Zdb("Couldn't create new instance of property '"+a.f+"'. "+ise+(fdb(Y3),Y3.k)+jse))}return BD(b,414)} +function aid(a){var b,c,d,e,f;f=a.eh();if(f){if(f.kh()){e=xid(a,f);if(e!=f){c=a.Vg();d=(b=a.Vg(),b>=0?a.Qg(null):a.eh().ih(a,-1-b,null,null));a.Rg(BD(e,49),c);!!d&&d.Fi();a.Lg()&&a.Mg()&&c>-1&&Uhd(a,new nSd(a,9,c,f,e));return e}}}return f} +function nTb(a){var b,c,d,e,f,g,h,i;g=0;f=a.f.e;for(d=0;d<f.c.length;++d){h=(tCb(d,f.c.length),BD(f.c[d],144));for(e=d+1;e<f.c.length;++e){i=(tCb(e,f.c.length),BD(f.c[e],144));c=S6c(h.d,i.d);b=c-a.a[h.b][i.b];g+=a.i[h.b][i.b]*b*b}}return g} +function _ac(a,b){var c;if(wNb(b,(Nyc(),mxc))){return}c=hbc(BD(vNb(b,Uac),360),BD(vNb(a,mxc),163));yNb(b,Uac,c);if(Qr(new Sr(ur(O_b(b).a.Kc(),new Sq)))){return}switch(c.g){case 1:yNb(b,mxc,(Ctc(),xtc));break;case 2:yNb(b,mxc,(Ctc(),ztc));}} +function wkc(a,b){var c;mkc(a);a.a=(c=new Ji,MAb(new YAb(null,new Kub(b.d,16)),new Vkc(c)),c);rkc(a,BD(vNb(b.b,(Nyc(),Wwc)),376));tkc(a);skc(a);qkc(a);ukc(a);vkc(a,b);MAb(LAb(new YAb(null,$i(Yi(a.b).a)),new Lkc),new Nkc);b.a=false;a.a=null} +function Bod(){fod.call(this,yte,(Fhd(),Ehd));this.p=null;this.a=null;this.f=null;this.n=null;this.g=null;this.c=null;this.i=null;this.j=null;this.d=null;this.b=null;this.e=null;this.k=null;this.o=null;this.s=null;this.q=false;this.r=false} +function Csd(){Csd=ccb;Bsd=new Dsd(Wne,0);ysd=new Dsd('INSIDE_SELF_LOOPS',1);zsd=new Dsd('MULTI_EDGES',2);xsd=new Dsd('EDGE_LABELS',3);Asd=new Dsd('PORTS',4);vsd=new Dsd('COMPOUND',5);usd=new Dsd('CLUSTERS',6);wsd=new Dsd('DISCONNECTED',7)} +function Sgb(a,b){var c,d,e;if(b==0){return (a.a[0]&1)!=0}if(b<0){throw vbb(new ocb('Negative bit address'))}e=b>>5;if(e>=a.d){return a.e<0}c=a.a[e];b=1<<(b&31);if(a.e<0){d=Mgb(a);if(e<d){return false}else d==e?(c=-c):(c=~c)}return (c&b)!=0} +function O1c(a,b,c,d){var e;BD(c.b,65);BD(c.b,65);BD(d.b,65);BD(d.b,65);e=c7c(R6c(BD(c.b,65).c),BD(d.b,65).c);$6c(e,YNb(BD(c.b,65),BD(d.b,65),e));BD(d.b,65);BD(d.b,65);BD(d.b,65).c.a+e.a;BD(d.b,65).c.b+e.b;BD(d.b,65);Hkb(d.a,new T1c(a,b,d))} +function vNd(a,b){var c,d,e,f,g,h,i;f=b.e;if(f){c=aid(f);d=BD(a.g,674);for(g=0;g<a.i;++g){i=d[g];if(JQd(i)==c){e=(!i.d&&(i.d=new xMd(j5,i,1)),i.d);h=BD(c.ah(Nid(f,f.Cb,f.Db>>16)),15).Xc(f);if(h<e.i){return vNd(a,BD(qud(e,h),87))}}}}return b} +function bcb(a,b,c){var d=_bb,h;var e=d[a];var f=e instanceof Array?e[0]:null;if(e&&!f){_=e}else{_=(h=b&&b.prototype,!h&&(h=_bb[b]),ecb(h));_.hm=c;!b&&(_.im=gcb);d[a]=_}for(var g=3;g<arguments.length;++g){arguments[g].prototype=_}f&&(_.gm=f)} +function Qr(a){var b;while(!BD(Qb(a.a),47).Ob()){a.d=Pr(a);if(!a.d){return false}a.a=BD(a.d.Pb(),47);if(JD(a.a,39)){b=BD(a.a,39);a.a=b.a;!a.b&&(a.b=new jkb);Wjb(a.b,a.d);if(b.b){while(!akb(b.b)){Wjb(a.b,BD(gkb(b.b),47))}}a.d=b.d}}return true} +function krb(a,b){var c,d,e,f,g;f=b==null?0:a.b.se(b);d=(c=a.a.get(f),c==null?new Array:c);for(g=0;g<d.length;g++){e=d[g];if(a.b.re(b,e.cd())){if(d.length==1){d.length=0;trb(a.a,f)}else{d.splice(g,1)}--a.c;zpb(a.b);return e.dd()}}return null} +function GGb(a,b){var c,d,e,f;e=1;b.j=true;f=null;for(d=new olb(LFb(b));d.a<d.c.c.length;){c=BD(mlb(d),213);if(!a.c[c.c]){a.c[c.c]=true;f=xFb(c,b);if(c.f){e+=GGb(a,f)}else if(!f.j&&c.a==c.e.e-c.d.e){c.f=true;Qqb(a.p,c);e+=GGb(a,f)}}}return e} +function MVb(a){var b,c,d;for(c=new olb(a.a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);d=(uCb(0),0);if(d>0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d+=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a-=d-1)}}} +function N3b(a){var b,c,d,e,f;e=new Rkb;f=O3b(a,e);b=BD(vNb(a,(wtc(),gtc)),10);if(b){for(d=new olb(b.j);d.a<d.c.c.length;){c=BD(mlb(d),11);PD(vNb(c,$sc))===PD(a)&&(f=$wnd.Math.max(f,O3b(c,e)))}}e.c.length==0||yNb(a,Ysc,f);return f!=-1?e:null} +function a9b(a,b,c){var d,e,f,g,h,i;f=BD(Ikb(b.e,0),17).c;d=f.i;e=d.k;i=BD(Ikb(c.g,0),17).d;g=i.i;h=g.k;e==(j0b(),g0b)?yNb(a,(wtc(),Vsc),BD(vNb(d,Vsc),11)):yNb(a,(wtc(),Vsc),f);h==g0b?yNb(a,(wtc(),Wsc),BD(vNb(g,Wsc),11)):yNb(a,(wtc(),Wsc),i)} +function Rs(a,b){var c,d,e,f;f=Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)));c=f&a.b.length-1;e=null;for(d=a.b[c];d;e=d,d=d.a){if(d.d==f&&Hb(d.i,b)){!e?(a.b[c]=d.a):(e.a=d.a);Bs(d.c,d.f);As(d.b,d.e);--a.f;++a.e;return true}}return false} +function lD(a,b){var c,d,e,f,g;b&=63;c=a.h;d=(c&Gje)!=0;d&&(c|=-1048576);if(b<22){g=c>>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?Fje:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?Fje:0;f=d?Eje:0;e=c>>b-44}return TC(e&Eje,f&Eje,g&Fje)} +function XOb(a){var b,c,d,e,f,g;this.c=new Rkb;this.d=a;d=Pje;e=Pje;b=Qje;c=Qje;for(g=Jsb(a,0);g.b!=g.d.c;){f=BD(Xsb(g),8);d=$wnd.Math.min(d,f.a);e=$wnd.Math.min(e,f.b);b=$wnd.Math.max(b,f.a);c=$wnd.Math.max(c,f.b)}this.a=new J6c(d,e,b-d,c-e)} +function Dac(a,b){var c,d,e,f,g,h;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);g.k==(j0b(),f0b)&&zac(g,b);for(d=new Sr(ur(U_b(g).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);yac(c,b)}}}} +function Xoc(a){var b,c,d;this.c=a;d=BD(vNb(a,(Nyc(),Lwc)),103);b=Edb(ED(vNb(a,owc)));c=Edb(ED(vNb(a,Dyc)));d==(ead(),aad)||d==bad||d==cad?(this.b=b*c):(this.b=1/(b*c));this.j=Edb(ED(vNb(a,wyc)));this.e=Edb(ED(vNb(a,vyc)));this.f=a.b.c.length} +function ADc(a){var b,c;a.e=KC(WD,oje,25,a.p.c.length,15,1);a.k=KC(WD,oje,25,a.p.c.length,15,1);for(c=new olb(a.p);c.a<c.c.c.length;){b=BD(mlb(c),10);a.e[b.p]=sr(new Sr(ur(R_b(b).a.Kc(),new Sq)));a.k[b.p]=sr(new Sr(ur(U_b(b).a.Kc(),new Sq)))}} +function DDc(a){var b,c,d,e,f,g;e=0;a.q=new Rkb;b=new Tqb;for(g=new olb(a.p);g.a<g.c.c.length;){f=BD(mlb(g),10);f.p=e;for(d=new Sr(ur(U_b(f).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);Qqb(b,c.d.i)}b.a.Bc(f)!=null;Ekb(a.q,new Vqb(b));b.a.$b();++e}} +function JTc(){JTc=ccb;CTc=new q0b(20);BTc=new Osd((Y9c(),f9c),CTc);HTc=new Osd(T9c,20);uTc=new Osd(r8c,tme);ETc=new Osd(D9c,meb(1));GTc=new Osd(H9c,(Bcb(),true));vTc=y8c;xTc=Y8c;yTc=_8c;zTc=b9c;wTc=W8c;ATc=e9c;DTc=x9c;ITc=(rTc(),pTc);FTc=nTc} +function RBd(a,b){var c,d,e,f,g,h,i,j,k;if(a.a.f>0&&JD(b,42)){a.a.qj();j=BD(b,42);i=j.cd();f=i==null?0:tb(i);g=DAd(a.a,f);c=a.a.d[g];if(c){d=BD(c.g,367);k=c.i;for(h=0;h<k;++h){e=d[h];if(e.Sh()==f&&e.Fb(j)){RBd(a,j);return true}}}}return false} +function skc(a){var b,c,d,e;for(e=BD(Qc(a.a,(Xjc(),Ujc)),15).Kc();e.Ob();){d=BD(e.Pb(),101);c=(b=Ec(d.k),b.Hc((Ucd(),Acd))?b.Hc(zcd)?b.Hc(Rcd)?b.Hc(Tcd)?null:dkc:fkc:ekc:ckc);kkc(a,d,c[0],(Fkc(),Ckc),0);kkc(a,d,c[1],Dkc,1);kkc(a,d,c[2],Ekc,1)}} +function enc(a,b){var c,d;c=fnc(b);inc(a,b,c);uPc(a.a,BD(vNb(Q_b(b.b),(wtc(),jtc)),230));dnc(a);cnc(a,b);d=KC(WD,oje,25,b.b.j.c.length,15,1);lnc(a,b,(Ucd(),Acd),d,c);lnc(a,b,zcd,d,c);lnc(a,b,Rcd,d,c);lnc(a,b,Tcd,d,c);a.a=null;a.c=null;a.b=null} +function OYc(){OYc=ccb;LYc=(zYc(),yYc);KYc=new Nsd(Bre,LYc);IYc=new Nsd(Cre,(Bcb(),true));meb(-1);FYc=new Nsd(Dre,meb(-1));meb(-1);GYc=new Nsd(Ere,meb(-1));JYc=new Nsd(Fre,false);MYc=new Nsd(Gre,true);HYc=new Nsd(Hre,false);NYc=new Nsd(Ire,-1)} +function yld(a,b,c){switch(b){case 7:!a.e&&(a.e=new y5d(B2,a,7,4));Uxd(a.e);!a.e&&(a.e=new y5d(B2,a,7,4));ytd(a.e,BD(c,14));return;case 8:!a.d&&(a.d=new y5d(B2,a,8,5));Uxd(a.d);!a.d&&(a.d=new y5d(B2,a,8,5));ytd(a.d,BD(c,14));return;}Zkd(a,b,c)} +function At(a,b){var c,d,e,f,g;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}g=BD(b,15);if(a.gc()!=g.gc()){return false}f=g.Kc();for(d=a.Kc();d.Ob();){c=d.Pb();e=f.Pb();if(!(PD(c)===PD(e)||c!=null&&pb(c,e))){return false}}return true} +function U6b(a,b){var c,d,e,f;f=BD(GAb(LAb(LAb(new YAb(null,new Kub(b.b,16)),new $6b),new a7b),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);f.Jc(new c7b);c=0;for(e=f.Kc();e.Ob();){d=BD(e.Pb(),11);d.p==-1&&T6b(a,d,c++)}} +function Wzc(a){switch(a.g){case 0:return new KLc;case 1:return new dJc;case 2:return new tJc;case 3:return new CMc;case 4:return new $Jc;default:throw vbb(new Wdb('No implementation is available for the node placer '+(a.f!=null?a.f:''+a.g)));}} +function nqc(a){switch(a.g){case 0:return new aCc;case 1:return new VBc;case 2:return new kCc;case 3:return new rCc;case 4:return new eCc;default:throw vbb(new Wdb('No implementation is available for the cycle breaker '+(a.f!=null?a.f:''+a.g)));}} +function HWc(){HWc=ccb;BWc=new Nsd(lre,meb(0));CWc=new Nsd(mre,0);yWc=(pWc(),mWc);xWc=new Nsd(nre,yWc);meb(0);wWc=new Nsd(ore,meb(1));EWc=(sXc(),qXc);DWc=new Nsd(pre,EWc);GWc=(fWc(),eWc);FWc=new Nsd(qre,GWc);AWc=(iXc(),hXc);zWc=new Nsd(rre,AWc)} +function XXb(a,b,c){var d;d=null;!!b&&(d=b.d);hYb(a,new cWb(b.n.a-d.b+c.a,b.n.b-d.d+c.b));hYb(a,new cWb(b.n.a-d.b+c.a,b.n.b+b.o.b+d.a+c.b));hYb(a,new cWb(b.n.a+b.o.a+d.c+c.a,b.n.b-d.d+c.b));hYb(a,new cWb(b.n.a+b.o.a+d.c+c.a,b.n.b+b.o.b+d.a+c.b))} +function T6b(a,b,c){var d,e,f;b.p=c;for(f=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(b),new R0b(b)])));Qr(f);){d=BD(Rr(f),11);d.p==-1&&T6b(a,d,c)}if(b.i.k==(j0b(),g0b)){for(e=new olb(b.i.j);e.a<e.c.c.length;){d=BD(mlb(e),11);d!=b&&d.p==-1&&T6b(a,d,c)}}} +function rPc(a){var b,c,d,e,f;e=BD(GAb(IAb(UAb(a)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=dme;if(e.gc()>=2){c=e.Kc();b=ED(c.Pb());while(c.Ob()){f=b;b=ED(c.Pb());d=$wnd.Math.min(d,(uCb(b),b)-(uCb(f),f))}}return d} +function gUc(a,b){var c,d,e,f,g;d=new Psb;Gsb(d,b,d.c.b,d.c);do{c=(sCb(d.b!=0),BD(Nsb(d,d.a.a),86));a.b[c.g]=1;for(f=Jsb(c.d,0);f.b!=f.d.c;){e=BD(Xsb(f),188);g=e.c;a.b[g.g]==1?Dsb(a.a,e):a.b[g.g]==2?(a.b[g.g]=1):Gsb(d,g,d.c.b,d.c)}}while(d.b!=0)} +function Ju(a,b){var c,d,e;if(PD(b)===PD(Qb(a))){return true}if(!JD(b,15)){return false}d=BD(b,15);e=a.gc();if(e!=d.gc()){return false}if(JD(d,54)){for(c=0;c<e;c++){if(!Hb(a.Xb(c),d.Xb(c))){return false}}return true}else{return kr(a.Kc(),d.Kc())}} +function Aac(a,b){var c,d;if(a.c.length!=0){if(a.c.length==2){zac((tCb(0,a.c.length),BD(a.c[0],10)),(rbd(),nbd));zac((tCb(1,a.c.length),BD(a.c[1],10)),obd)}else{for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),10);zac(c,b)}}a.c=KC(SI,Uhe,1,0,5,1)}} +function uKc(a){var b,c;if(a.c.length!=2){throw vbb(new Zdb('Order only allowed for two paths.'))}b=(tCb(0,a.c.length),BD(a.c[0],17));c=(tCb(1,a.c.length),BD(a.c[1],17));if(b.d.i!=c.c.i){a.c=KC(SI,Uhe,1,0,5,1);a.c[a.c.length]=c;a.c[a.c.length]=b}} +function EMc(a,b){var c,d,e,f,g,h;d=new $rb;g=Gx(new amb(a.g));for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),10);if(!e){Sdd(b,'There are no classes in a balanced layout.');break}h=a.j[e.p];c=BD(Wrb(d,h),15);if(!c){c=new Rkb;Xrb(d,h,c)}c.Fc(e)}return d} +function Dqd(a,b,c){var d,e,f,g,h,i,j;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);i=Zpd(c,g.a);if(i){j=ftd(_pd(i,Ite),b);Rhb(a.f,j,i);e=Vte in i.a;e&&Lkd(j,_pd(i,Vte));grd(i,j);hrd(i,j)}}}} +function ndc(a,b){var c,d,e,f,g;Odd(b,'Port side processing',1);for(g=new olb(a.a);g.a<g.c.c.length;){e=BD(mlb(g),10);odc(e)}for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);odc(e)}}Qdd(b)} +function bfc(a,b,c){var d,e,f,g,h;e=a.f;!e&&(e=BD(a.a.a.ec().Kc().Pb(),57));cfc(e,b,c);if(a.a.a.gc()==1){return}d=b*c;for(g=a.a.a.ec().Kc();g.Ob();){f=BD(g.Pb(),57);if(f!=e){h=ugc(f);if(h.f.d){f.d.d+=d+ple;f.d.a-=d+ple}else h.f.a&&(f.d.a-=d+ple)}}} +function tQb(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;g=c-a;h=d-b;f=$wnd.Math.atan2(g,h);i=f+cme;j=f-cme;k=e*$wnd.Math.sin(i)+a;m=e*$wnd.Math.cos(i)+b;l=e*$wnd.Math.sin(j)+a;n=e*$wnd.Math.cos(j)+b;return Ou(OC(GC(m1,1),nie,8,0,[new f7c(k,m),new f7c(l,n)]))} +function OLc(a,b,c,d){var e,f,g,h,i,j,k,l;e=c;k=b;f=k;do{f=a.a[f.p];h=(l=a.g[f.p],Edb(a.p[l.p])+Edb(a.d[f.p])-f.d.d);i=RLc(f,d);if(i){g=(j=a.g[i.p],Edb(a.p[j.p])+Edb(a.d[i.p])+i.o.b+i.d.a);e=$wnd.Math.min(e,h-(g+jBc(a.k,f,i)))}}while(k!=f);return e} +function PLc(a,b,c,d){var e,f,g,h,i,j,k,l;e=c;k=b;f=k;do{f=a.a[f.p];g=(l=a.g[f.p],Edb(a.p[l.p])+Edb(a.d[f.p])+f.o.b+f.d.a);i=QLc(f,d);if(i){h=(j=a.g[i.p],Edb(a.p[j.p])+Edb(a.d[i.p])-i.d.d);e=$wnd.Math.min(e,h-(g+jBc(a.k,f,i)))}}while(k!=f);return e} +function hkd(a,b){var c,d;d=(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),AAd(a.o,b));if(d!=null){return d}c=b.wg();JD(c,4)&&(c==null?(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),LAd(a.o,b)):(!a.o&&(a.o=new dId((Thd(),Qhd),S2,a,0)),HAd(a.o,b,c)),a);return c} +function Hbd(){Hbd=ccb;zbd=new Ibd('H_LEFT',0);ybd=new Ibd('H_CENTER',1);Bbd=new Ibd('H_RIGHT',2);Gbd=new Ibd('V_TOP',3);Fbd=new Ibd('V_CENTER',4);Ebd=new Ibd('V_BOTTOM',5);Cbd=new Ibd('INSIDE',6);Dbd=new Ibd('OUTSIDE',7);Abd=new Ibd('H_PRIORITY',8)} +function o6d(a){var b,c,d,e,f,g,h;b=a.Hh(_ve);if(b){h=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'settingDelegates'));if(h!=null){c=new Rkb;for(e=mfb(h,'\\w+'),f=0,g=e.length;f<g;++f){d=e[f];c.c[c.c.length]=d}return c}}return mmb(),mmb(),jmb} +function sGb(a,b){var c,d,e,f,g,h,i;if(!b.f){throw vbb(new Wdb('The input edge is not a tree edge.'))}f=null;e=Ohe;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),213);h=c.d;i=c.e;if(xGb(a,h,b)&&!xGb(a,i,b)){g=i.e-h.e-c.a;if(g<e){e=g;f=c}}}return f} +function qTb(a){var b,c,d,e,f,g;if(a.f.e.c.length<=1){return}b=0;e=nTb(a);c=Pje;do{b>0&&(e=c);for(g=new olb(a.f.e);g.a<g.c.c.length;){f=BD(mlb(g),144);if(Ccb(DD(vNb(f,(bTb(),USb))))){continue}d=mTb(a,f);P6c(X6c(f.d),d)}c=nTb(a)}while(!pTb(a,b++,e,c))} +function $ac(a,b){var c,d,e;Odd(b,'Layer constraint preprocessing',1);c=new Rkb;e=new Bib(a.a,0);while(e.b<e.d.gc()){d=(sCb(e.b<e.d.gc()),BD(e.d.Xb(e.c=e.b++),10));if(Zac(d)){Xac(d);c.c[c.c.length]=d;uib(e)}}c.c.length==0||yNb(a,(wtc(),Lsc),c);Qdd(b)} +function sjc(a,b){var c,d,e,f,g;f=a.g.a;g=a.g.b;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),70);e=c.n;a.a==(Ajc(),xjc)||a.i==(Ucd(),zcd)?(e.a=f):a.a==yjc||a.i==(Ucd(),Tcd)?(e.a=f+a.j.a-c.o.a):(e.a=f+(a.j.a-c.o.a)/2);e.b=g;P6c(e,b);g+=c.o.b+a.e}} +function LSc(a,b,c){var d,e,f,g;Odd(c,'Processor set coordinates',1);a.a=b.b.b==0?1:b.b.b;f=null;d=Jsb(b.b,0);while(!f&&d.b!=d.d.c){g=BD(Xsb(d),86);if(Ccb(DD(vNb(g,(mTc(),jTc))))){f=g;e=g.e;e.a=BD(vNb(g,kTc),19).a;e.b=0}}MSc(a,URc(f),Udd(c,1));Qdd(c)} +function xSc(a,b,c){var d,e,f;Odd(c,'Processor determine the height for each level',1);a.a=b.b.b==0?1:b.b.b;e=null;d=Jsb(b.b,0);while(!e&&d.b!=d.d.c){f=BD(Xsb(d),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(e=f)}!!e&&ySc(a,Ou(OC(GC(q$,1),fme,86,0,[e])),c);Qdd(c)} +function brd(a,b){var c,d,e,f,g,h,i,j,k,l;j=a;i=$pd(j,'individualSpacings');if(i){d=ikd(b,(Y9c(),O9c));g=!d;if(g){e=new _fd;jkd(b,O9c,e)}h=BD(hkd(b,O9c),373);l=i;f=null;!!l&&(f=(k=$B(l,KC(ZI,nie,2,0,6,1)),new mC(l,k)));if(f){c=new Frd(l,h);reb(f,c)}}} +function frd(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=null;l=a;k=null;if(cue in l.a||due in l.a||Ote in l.a){j=null;m=etd(b);g=$pd(l,cue);c=new Ird(m);Eqd(c.a,g);h=$pd(l,due);d=new asd(m);Pqd(d.a,h);f=Ypd(l,Ote);e=new dsd(m);j=(Qqd(e.a,f),f);k=j}i=k;return i} +function $w(a,b){var c,d,e;if(b===a){return true}if(JD(b,543)){e=BD(b,835);if(a.a.d!=e.a.d||Ah(a).gc()!=Ah(e).gc()){return false}for(d=Ah(e).Kc();d.Ob();){c=BD(d.Pb(),416);if(Aw(a,c.a.cd())!=BD(c.a.dd(),14).gc()){return false}}return true}return false} +function BMb(a){var b,c,d,e;d=BD(a.a,19).a;e=BD(a.b,19).a;b=d;c=e;if(d==0&&e==0){c-=1}else{if(d==-1&&e<=0){b=0;c-=2}else{if(d<=0&&e>0){b-=1;c-=1}else{if(d>=0&&e<0){b+=1;c+=1}else{if(d>0&&e>=0){b-=1;c+=1}else{b+=1;c-=1}}}}}return new vgd(meb(b),meb(c))} +function PIc(a,b){if(a.c<b.c){return -1}else if(a.c>b.c){return 1}else if(a.b<b.b){return -1}else if(a.b>b.b){return 1}else if(a.a!=b.a){return tb(a.a)-tb(b.a)}else if(a.d==(UIc(),TIc)&&b.d==SIc){return -1}else if(a.d==SIc&&b.d==TIc){return 1}return 0} +function aNc(a,b){var c,d,e,f,g;f=b.a;f.c.i==b.b?(g=f.d):(g=f.c);f.c.i==b.b?(d=f.c):(d=f.d);e=NLc(a.a,g,d);if(e>0&&e<dme){c=OLc(a.a,d.i,e,a.c);TLc(a.a,d.i,-c);return c>0}else if(e<0&&-e<dme){c=PLc(a.a,d.i,-e,a.c);TLc(a.a,d.i,c);return c>0}return false} +function RZc(a,b,c,d){var e,f,g,h,i,j,k,l;e=(b-a.d)/a.c.c.length;f=0;a.a+=c;a.d=b;for(l=new olb(a.c);l.a<l.c.c.length;){k=BD(mlb(l),33);j=k.g;i=k.f;dld(k,k.i+f*e);eld(k,k.j+d*c);cld(k,k.g+e);ald(k,a.a);++f;h=k.g;g=k.f;Ffd(k,new f7c(h,g),new f7c(j,i))}} +function Xmd(a){var b,c,d,e,f,g,h;if(a==null){return null}h=a.length;e=(h+1)/2|0;g=KC(SD,wte,25,e,15,1);h%2!=0&&(g[--e]=jnd((BCb(h-1,a.length),a.charCodeAt(h-1))));for(c=0,d=0;c<e;++c){b=jnd(bfb(a,d++));f=jnd(bfb(a,d++));g[c]=(b<<4|f)<<24>>24}return g} +function vdb(a){if(a.pe()){var b=a.c;b.qe()?(a.o='['+b.n):!b.pe()?(a.o='[L'+b.ne()+';'):(a.o='['+b.ne());a.b=b.me()+'[]';a.k=b.oe()+'[]';return}var c=a.j;var d=a.d;d=d.split('/');a.o=ydb('.',[c,ydb('$',d)]);a.b=ydb('.',[c,ydb('.',d)]);a.k=d[d.length-1]} +function qGb(a,b){var c,d,e,f,g;g=null;for(f=new olb(a.e.a);f.a<f.c.c.length;){e=BD(mlb(f),121);if(e.b.a.c.length==e.g.a.c.length){d=e.e;g=BGb(e);for(c=e.e-BD(g.a,19).a+1;c<e.e+BD(g.b,19).a;c++){b[c]<b[d]&&(d=c)}if(b[d]<b[e.e]){--b[e.e];++b[d];e.e=d}}}} +function SLc(a){var b,c,d,e,f,g,h,i;e=Pje;d=Qje;for(c=new olb(a.e.b);c.a<c.c.c.length;){b=BD(mlb(c),29);for(g=new olb(b.a);g.a<g.c.c.length;){f=BD(mlb(g),10);i=Edb(a.p[f.p]);h=i+Edb(a.b[a.g[f.p].p]);e=$wnd.Math.min(e,i);d=$wnd.Math.max(d,h)}}return d-e} +function r1d(a,b,c,d){var e,f,g,h,i,j;i=null;e=f1d(a,b);for(h=0,j=e.gc();h<j;++h){f=BD(e.Xb(h),170);if(dfb(d,a2d(q1d(a,f)))){g=b2d(q1d(a,f));if(c==null){if(g==null){return f}else !i&&(i=f)}else if(dfb(c,g)){return f}else g==null&&!i&&(i=f)}}return null} +function s1d(a,b,c,d){var e,f,g,h,i,j;i=null;e=g1d(a,b);for(h=0,j=e.gc();h<j;++h){f=BD(e.Xb(h),170);if(dfb(d,a2d(q1d(a,f)))){g=b2d(q1d(a,f));if(c==null){if(g==null){return f}else !i&&(i=f)}else if(dfb(c,g)){return f}else g==null&&!i&&(i=f)}}return null} +function p3d(a,b,c){var d,e,f,g,h,i;g=new yud;h=S6d(a.e.Tg(),b);d=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(f=0;f<a.i;++f){e=d[f];h.rl(e.ak())&&wtd(g,e)}}else{for(f=0;f<a.i;++f){e=d[f];if(h.rl(e.ak())){i=e.dd();wtd(g,c?b3d(a,b,f,g.i,i):i)}}}return wud(g)} +function T9b(a,b){var c,d,e,f,g;c=new Rpb(EW);for(e=(Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])),f=0,g=e.length;f<g;++f){d=e[f];Opb(c,d,new Rkb)}MAb(NAb(JAb(LAb(new YAb(null,new Kub(a.b,16)),new hac),new jac),new lac(b)),new nac(c));return c} +function AVc(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(f=b.Kc();f.Ob();){e=BD(f.Pb(),33);k=e.i+e.g/2;m=e.j+e.f/2;i=a.f;g=i.i+i.g/2;h=i.j+i.f/2;j=k-g;l=m-h;d=$wnd.Math.sqrt(j*j+l*l);j*=a.e/d;l*=a.e/d;if(c){k-=j;m-=l}else{k+=j;m+=l}dld(e,k-e.g/2);eld(e,m-e.f/2)}} +function Yfe(a){var b,c,d;if(a.c)return;if(a.b==null)return;for(b=a.b.length-4;b>=0;b-=2){for(c=0;c<=b;c+=2){if(a.b[c]>a.b[c+2]||a.b[c]===a.b[c+2]&&a.b[c+1]>a.b[c+3]){d=a.b[c+2];a.b[c+2]=a.b[c];a.b[c]=d;d=a.b[c+3];a.b[c+3]=a.b[c+1];a.b[c+1]=d}}}a.c=true} +function UUb(a,b){var c,d,e,f,g,h,i,j;g=b==1?KUb:JUb;for(f=g.a.ec().Kc();f.Ob();){e=BD(f.Pb(),103);for(i=BD(Qc(a.f.c,e),21).Kc();i.Ob();){h=BD(i.Pb(),46);d=BD(h.b,81);j=BD(h.a,189);c=j.c;switch(e.g){case 2:case 1:d.g.d+=c;break;case 4:case 3:d.g.c+=c;}}}} +function PFc(a,b){var c,d,e,f,g,h,i,j,k;j=-1;k=0;for(g=a,h=0,i=g.length;h<i;++h){f=g[h];c=new Dnc(j==-1?a[0]:a[j],b,(xzc(),wzc));for(d=0;d<f.length;d++){for(e=d+1;e<f.length;e++){wNb(f[d],(wtc(),Zsc))&&wNb(f[e],Zsc)&&ync(c,f[d],f[e])>0&&++k}}++j}return k} +function Eid(a){var b,c;c=new Wfb(hdb(a.gm));c.a+='@';Qfb(c,(b=tb(a)>>>0,b.toString(16)));if(a.kh()){c.a+=' (eProxyURI: ';Pfb(c,a.qh());if(a.$g()){c.a+=' eClass: ';Pfb(c,a.$g())}c.a+=')'}else if(a.$g()){c.a+=' (eClass: ';Pfb(c,a.$g());c.a+=')'}return c.a} +function TDb(a){var b,c,d,e;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}a.d==(ead(),cad)&&SDb(a,aad);for(c=new olb(a.a.a);c.a<c.c.c.length;){b=BD(mlb(c),307);b.g=b.i}for(e=new olb(a.a.b);e.a<e.c.c.length;){d=BD(mlb(e),57);d.i=Qje}a.b.Le(a);return a} +function TPc(a,b){var c,d,e,f,g;if(b<2*a.b){throw vbb(new Wdb('The knot vector must have at least two time the dimension elements.'))}a.f=1;for(e=0;e<a.b;e++){Ekb(a.e,0)}g=b+1-2*a.b;c=g;for(f=1;f<g;f++){Ekb(a.e,f/c)}if(a.d){for(d=0;d<a.b;d++){Ekb(a.e,1)}}} +function ard(a,b){var c,d,e,f,g,h,i,j,k;j=b;k=BD(_o(qo(a.i),j),33);if(!k){e=_pd(j,Vte);h="Unable to find elk node for json object '"+e;i=h+"' Panic!";throw vbb(new cqd(i))}f=Ypd(j,'edges');c=new krd(a,k);mqd(c.a,c.b,f);g=Ypd(j,Jte);d=new vrd(a);xqd(d.a,g)} +function xAd(a,b,c,d){var e,f,g,h,i;if(d!=null){e=a.d[b];if(e){f=e.g;i=e.i;for(h=0;h<i;++h){g=BD(f[h],133);if(g.Sh()==c&&pb(d,g.cd())){return h}}}}else{e=a.d[b];if(e){f=e.g;i=e.i;for(h=0;h<i;++h){g=BD(f[h],133);if(PD(g.cd())===PD(d)){return h}}}}return -1} +function nUd(a,b){var c,d,e;c=b==null?Wd(irb(a.f,null)):Crb(a.g,b);if(JD(c,235)){e=BD(c,235);e.Qh()==null&&undefined;return e}else if(JD(c,498)){d=BD(c,1938);e=d.a;!!e&&(e.yb==null?undefined:b==null?jrb(a.f,null,e):Drb(a.g,b,e));return e}else{return null}} +function ide(a){hde();var b,c,d,e,f,g,h;if(a==null)return null;e=a.length;if(e%2!=0)return null;b=rfb(a);f=e/2|0;c=KC(SD,wte,25,f,15,1);for(d=0;d<f;d++){g=fde[b[d*2]];if(g==-1)return null;h=fde[b[d*2+1]];if(h==-1)return null;c[d]=(g<<4|h)<<24>>24}return c} +function lKb(a,b,c){var d,e,f;e=BD(Mpb(a.i,b),306);if(!e){e=new bIb(a.d,b,c);Npb(a.i,b,e);if(sJb(b)){CHb(a.a,b.c,b.b,e)}else{f=rJb(b);d=BD(Mpb(a.p,f),244);switch(f.g){case 1:case 3:e.j=true;lIb(d,b.b,e);break;case 4:case 2:e.k=true;lIb(d,b.c,e);}}}return e} +function r3d(a,b,c,d){var e,f,g,h,i,j;h=new yud;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g<a.i;++g){f=e[g];i.rl(f.ak())&&wtd(h,f)}}else{for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())){j=f.dd();wtd(h,d?b3d(a,b,g,h.i,j):j)}}}return xud(h,c)} +function YCc(a,b){var c,d,e,f,g,h,i,j;e=a.b[b.p];if(e>=0){return e}else{f=1;for(h=new olb(b.j);h.a<h.c.c.length;){g=BD(mlb(h),11);for(d=new olb(g.g);d.a<d.c.c.length;){c=BD(mlb(d),17);j=c.d.i;if(b!=j){i=YCc(a,j);f=$wnd.Math.max(f,i+1)}}}XCc(a,b,f);return f}} +function YGc(a,b,c){var d,e,f;for(d=1;d<a.c.length;d++){f=(tCb(d,a.c.length),BD(a.c[d],10));e=d;while(e>0&&b.ue((tCb(e-1,a.c.length),BD(a.c[e-1],10)),f)>0){Nkb(a,e,(tCb(e-1,a.c.length),BD(a.c[e-1],10)));--e}tCb(e,a.c.length);a.c[e]=f}c.a=new Lqb;c.b=new Lqb} +function n5c(a,b,c){var d,e,f,g,h,i,j,k;k=(d=BD(b.e&&b.e(),9),new xqb(d,BD(_Bb(d,d.length),9),0));i=mfb(c,'[\\[\\]\\s,]+');for(f=i,g=0,h=f.length;g<h;++g){e=f[g];if(ufb(e).length==0){continue}j=m5c(a,e);if(j==null){return null}else{rqb(k,BD(j,22))}}return k} +function KVb(a){var b,c,d;for(c=new olb(a.a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);d=(uCb(0),0);if(d>0){!(fad(a.a.c)&&b.n.d)&&!(gad(a.a.c)&&b.n.b)&&(b.g.d-=$wnd.Math.max(0,d/2-0.5));!(fad(a.a.c)&&b.n.a)&&!(gad(a.a.c)&&b.n.c)&&(b.g.a+=$wnd.Math.max(0,d-1))}}} +function Hac(a,b,c){var d,e;if((a.c-a.b&a.a.length-1)==2){if(b==(Ucd(),Acd)||b==zcd){xac(BD(bkb(a),15),(rbd(),nbd));xac(BD(bkb(a),15),obd)}else{xac(BD(bkb(a),15),(rbd(),obd));xac(BD(bkb(a),15),nbd)}}else{for(e=new xkb(a);e.a!=e.b;){d=BD(vkb(e),15);xac(d,c)}}} +function htd(a,b){var c,d,e,f,g,h,i;e=Nu(new qtd(a));h=new Bib(e,e.c.length);f=Nu(new qtd(b));i=new Bib(f,f.c.length);g=null;while(h.b>0&&i.b>0){c=(sCb(h.b>0),BD(h.a.Xb(h.c=--h.b),33));d=(sCb(i.b>0),BD(i.a.Xb(i.c=--i.b),33));if(c==d){g=c}else{break}}return g} +function Cub(a,b){var c,d,e,f,g,h;f=a.a*kke+a.b*1502;h=a.b*kke+11;c=$wnd.Math.floor(h*lke);f+=c;h-=c*mke;f%=mke;a.a=f;a.b=h;if(b<=24){return $wnd.Math.floor(a.a*wub[b])}else{e=a.a*(1<<b-24);g=$wnd.Math.floor(a.b*xub[b]);d=e+g;d>=2147483648&&(d-=Zje);return d}} +function Zic(a,b,c){var d,e,f,g;if(bjc(a,b)>bjc(a,c)){d=V_b(c,(Ucd(),zcd));a.d=d.dc()?0:B0b(BD(d.Xb(0),11));g=V_b(b,Tcd);a.b=g.dc()?0:B0b(BD(g.Xb(0),11))}else{e=V_b(c,(Ucd(),Tcd));a.d=e.dc()?0:B0b(BD(e.Xb(0),11));f=V_b(b,zcd);a.b=f.dc()?0:B0b(BD(f.Xb(0),11))}} +function l6d(a){var b,c,d,e,f,g,h;if(a){b=a.Hh(_ve);if(b){g=GD(AAd((!b.b&&(b.b=new sId((jGd(),fGd),x6,b)),b.b),'conversionDelegates'));if(g!=null){h=new Rkb;for(d=mfb(g,'\\w+'),e=0,f=d.length;e<f;++e){c=d[e];h.c[h.c.length]=c}return h}}}return mmb(),mmb(),jmb} +function FKb(a,b){var c,d,e,f;c=a.o.a;for(f=BD(BD(Qc(a.r,b),21),84).Kc();f.Ob();){e=BD(f.Pb(),111);e.e.a=c*Edb(ED(e.b.We(BKb)));e.e.b=(d=e.b,d.Xe((Y9c(),s9c))?d.Hf()==(Ucd(),Acd)?-d.rf().b-Edb(ED(d.We(s9c))):Edb(ED(d.We(s9c))):d.Hf()==(Ucd(),Acd)?-d.rf().b:0)}} +function Woc(a){var b,c,d,e,f,g,h,i;b=true;e=null;f=null;j:for(i=new olb(a.a);i.a<i.c.c.length;){h=BD(mlb(i),10);for(d=new Sr(ur(R_b(h).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(!!e&&e!=h){b=false;break j}e=h;g=c.c.i;if(!!f&&f!=g){b=false;break j}f=g}}return b} +function OOc(a,b,c){var d,e,f,g,h,i;f=-1;h=-1;for(g=0;g<b.c.length;g++){e=(tCb(g,b.c.length),BD(b.c[g],329));if(e.c>a.c){break}else if(e.a>=a.s){f<0&&(f=g);h=g}}i=(a.s+a.c)/2;if(f>=0){d=NOc(a,b,f,h);i=$Oc((tCb(d,b.c.length),BD(b.c[d],329)));YOc(b,d,c)}return i} +function lZc(){lZc=ccb;RYc=new Osd((Y9c(),r8c),1.3);VYc=I8c;gZc=new q0b(15);fZc=new Osd(f9c,gZc);jZc=new Osd(T9c,15);SYc=w8c;_Yc=Y8c;aZc=_8c;bZc=b9c;$Yc=W8c;cZc=e9c;hZc=x9c;eZc=(OYc(),KYc);ZYc=IYc;dZc=JYc;iZc=MYc;WYc=HYc;XYc=O8c;YYc=P8c;UYc=GYc;TYc=FYc;kZc=NYc} +function Bnd(a,b,c){var d,e,f,g,h,i,j;g=(f=new RHd,f);PHd(g,(uCb(b),b));j=(!g.b&&(g.b=new sId((jGd(),fGd),x6,g)),g.b);for(i=1;i<c.length;i+=2){HAd(j,c[i-1],c[i])}d=(!a.Ab&&(a.Ab=new cUd(a5,a,0,3)),a.Ab);for(h=0;h<0;++h){e=LHd(BD(qud(d,d.i-1),590));d=e}wtd(d,g)} +function MPb(a,b,c){var d,e,f;sNb.call(this,new Rkb);this.a=b;this.b=c;this.e=a;d=(a.b&&LOb(a),a.a);this.d=KPb(d.a,this.a);this.c=KPb(d.b,this.b);kNb(this,this.d,this.c);LPb(this);for(f=this.e.e.a.ec().Kc();f.Ob();){e=BD(f.Pb(),266);e.c.c.length>0&&JPb(this,e)}} +function IQb(a,b,c,d,e,f){var g,h,i;if(!e[b.b]){e[b.b]=true;g=d;!g&&(g=new kRb);Ekb(g.e,b);for(i=f[b.b].Kc();i.Ob();){h=BD(i.Pb(),282);if(h.d==c||h.c==c){continue}h.c!=b&&IQb(a,h.c,b,g,e,f);h.d!=b&&IQb(a,h.d,b,g,e,f);Ekb(g.c,h);Gkb(g.d,h.b)}return g}return null} +function e4b(a){var b,c,d,e,f,g,h;b=0;for(e=new olb(a.e);e.a<e.c.c.length;){d=BD(mlb(e),17);c=FAb(new YAb(null,new Kub(d.b,16)),new w4b);c&&++b}for(g=new olb(a.g);g.a<g.c.c.length;){f=BD(mlb(g),17);h=FAb(new YAb(null,new Kub(f.b,16)),new y4b);h&&++b}return b>=2} +function gec(a,b){var c,d,e,f;Odd(b,'Self-Loop pre-processing',1);for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),10);if(Ljc(c)){e=(f=new Kjc(c),yNb(c,(wtc(),ntc),f),Hjc(f),f);MAb(NAb(LAb(new YAb(null,new Kub(e.d,16)),new jec),new lec),new nec);eec(e)}}Qdd(b)} +function vnc(a,b,c,d,e){var f,g,h,i,j,k;f=a.c.d.j;g=BD(Ut(c,0),8);for(k=1;k<c.b;k++){j=BD(Ut(c,k),8);Gsb(d,g,d.c.b,d.c);h=Y6c(P6c(new g7c(g),j),0.5);i=Y6c(new e7c(bRc(f)),e);P6c(h,i);Gsb(d,h,d.c.b,d.c);g=j;f=b==0?Xcd(f):Vcd(f)}Dsb(d,(sCb(c.b!=0),BD(c.c.b.c,8)))} +function Jbd(a){Hbd();var b,c,d;c=qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Dbd]));if(Ox(Cx(c,a))>1){return false}b=qqb(zbd,OC(GC(B1,1),Kie,93,0,[ybd,Bbd]));if(Ox(Cx(b,a))>1){return false}d=qqb(Gbd,OC(GC(B1,1),Kie,93,0,[Fbd,Ebd]));if(Ox(Cx(d,a))>1){return false}return true} +function U0d(a,b){var c,d,e;c=b.Hh(a.a);if(c){e=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'affiliation'));if(e!=null){d=kfb(e,wfb(35));return d==-1?l1d(a,u1d(a,bKd(b.Hj())),e):d==0?l1d(a,null,e.substr(1)):l1d(a,e.substr(0,d),e.substr(d+1))}}return null} +function ic(b){var c,d,e;try{return b==null?Xhe:fcb(b)}catch(a){a=ubb(a);if(JD(a,102)){c=a;e=hdb(rb(b))+'@'+(d=(Zfb(),kCb(b))>>>0,d.toString(16));tyb(xyb(),($xb(),'Exception during lenientFormat for '+e),c);return '<'+e+' threw '+hdb(c.gm)+'>'}else throw vbb(a)}} +function mzc(a){switch(a.g){case 0:return new xDc;case 1:return new ZCc;case 2:return new DCc;case 3:return new QCc;case 4:return new LDc;case 5:return new iDc;default:throw vbb(new Wdb('No implementation is available for the layerer '+(a.f!=null?a.f:''+a.g)));}} +function AQc(a,b,c){var d,e,f;for(f=new olb(a.t);f.a<f.c.c.length;){d=BD(mlb(f),268);if(d.b.s<0&&d.c>0){d.b.n-=d.c;d.b.n<=0&&d.b.u>0&&Dsb(b,d.b)}}for(e=new olb(a.i);e.a<e.c.c.length;){d=BD(mlb(e),268);if(d.a.s<0&&d.c>0){d.a.u-=d.c;d.a.u<=0&&d.a.n>0&&Dsb(c,d.a)}}} +function Vud(a){var b,c,d,e,f;if(a.g==null){a.d=a.si(a.f);wtd(a,a.d);if(a.c){f=a.f;return f}}b=BD(a.g[a.i-1],47);e=b.Pb();a.e=b;c=a.si(e);if(c.Ob()){a.d=c;wtd(a,c)}else{a.d=null;while(!b.Ob()){NC(a.g,--a.i,null);if(a.i==0){break}d=BD(a.g[a.i-1],47);b=d}}return e} +function r2d(a,b){var c,d,e,f,g,h;d=b;e=d.ak();if(T6d(a.e,e)){if(e.hi()&&E2d(a,e,d.dd())){return false}}else{h=S6d(a.e.Tg(),e);c=BD(a.g,119);for(f=0;f<a.i;++f){g=c[f];if(h.rl(g.ak())){if(pb(g,d)){return false}else{BD(Gtd(a,f,b),72);return true}}}}return wtd(a,b)} +function r9b(a,b,c,d){var e,f,g,h;e=new b0b(a);__b(e,(j0b(),f0b));yNb(e,(wtc(),$sc),b);yNb(e,ktc,d);yNb(e,(Nyc(),Vxc),(dcd(),$bd));yNb(e,Vsc,b.c);yNb(e,Wsc,b.d);zbc(b,e);h=$wnd.Math.floor(c/2);for(g=new olb(e.j);g.a<g.c.c.length;){f=BD(mlb(g),11);f.n.b=h}return e} +function wac(a,b){var c,d,e,f,g,h,i,j,k;i=Pu(a.c-a.b&a.a.length-1);j=null;k=null;for(f=new xkb(a);f.a!=f.b;){e=BD(vkb(f),10);c=(h=BD(vNb(e,(wtc(),Vsc)),11),!h?null:h.i);d=(g=BD(vNb(e,Wsc),11),!g?null:g.i);if(j!=c||k!=d){Aac(i,b);j=c;k=d}i.c[i.c.length]=e}Aac(i,b)} +function HNc(a){var b,c,d,e,f,g,h;b=0;for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),10);for(f=new Sr(ur(U_b(c).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a==e.d.i.c&&e.c.j==(Ucd(),Tcd)){g=A0b(e.c).b;h=A0b(e.d).b;b=$wnd.Math.max(b,$wnd.Math.abs(h-g))}}}return b} +function aWc(a,b,c){var d,e,f;Odd(c,'Remove overlaps',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));d=BD(hkd(b,(MUc(),LUc)),33);a.f=d;a.a=tXc(BD(hkd(b,(ZWc(),WWc)),293));e=ED(hkd(b,(Y9c(),T9c)));FVc(a,(uCb(e),e));f=gVc(d);_Vc(a,b,f,c);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} +function aYb(a,b,c){switch(c.g){case 1:return new f7c(b.a,$wnd.Math.min(a.d.b,b.b));case 2:return new f7c($wnd.Math.max(a.c.a,b.a),b.b);case 3:return new f7c(b.a,$wnd.Math.max(a.c.b,b.b));case 4:return new f7c($wnd.Math.min(b.a,a.d.a),b.b);}return new f7c(b.a,b.b)} +function mFc(a,b,c,d){var e,f,g,h,i,j,k,l,m;l=d?(Ucd(),Tcd):(Ucd(),zcd);e=false;for(i=b[c],j=0,k=i.length;j<k;++j){h=i[j];if(ecd(BD(vNb(h,(Nyc(),Vxc)),98))){continue}g=h.e;m=!V_b(h,l).dc()&&!!g;if(m){f=WZb(g);a.b=new sic(f,d?0:f.length-1)}e=e|nFc(a,h,l,m)}return e} +function $sd(a){var b,c,d;b=Pu(1+(!a.c&&(a.c=new cUd(F2,a,9,9)),a.c).i);Ekb(b,(!a.d&&(a.d=new y5d(B2,a,8,5)),a.d));for(d=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));d.e!=d.i.gc();){c=BD(Dyd(d),118);Ekb(b,(!c.d&&(c.d=new y5d(B2,c,8,5)),c.d))}return Qb(b),new sl(b)} +function _sd(a){var b,c,d;b=Pu(1+(!a.c&&(a.c=new cUd(F2,a,9,9)),a.c).i);Ekb(b,(!a.e&&(a.e=new y5d(B2,a,7,4)),a.e));for(d=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));d.e!=d.i.gc();){c=BD(Dyd(d),118);Ekb(b,(!c.e&&(c.e=new y5d(B2,c,7,4)),c.e))}return Qb(b),new sl(b)} +function M9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return x9d}else if(b==45){return w9d}}else if(c==3){return x9d}}return Hcb(d)}} +function aKc(a){var b,c,d,e;b=0;c=0;for(e=new olb(a.j);e.a<e.c.c.length;){d=BD(mlb(e),11);b=Tbb(wbb(b,HAb(JAb(new YAb(null,new Kub(d.e,16)),new nLc))));c=Tbb(wbb(c,HAb(JAb(new YAb(null,new Kub(d.g,16)),new pLc))));if(b>1||c>1){return 2}}if(b+c==1){return 2}return 0} +function WQb(a,b,c){var d,e,f,g,h;Odd(c,'ELK Force',1);Ccb(DD(hkd(b,(wSb(),jSb))))||$Cb((d=new _Cb((Pgd(),new bhd(b))),d));h=TQb(b);XQb(h);YQb(a,BD(vNb(h,fSb),424));g=LQb(a.a,h);for(f=g.Kc();f.Ob();){e=BD(f.Pb(),231);tRb(a.b,e,Udd(c,1/g.gc()))}h=KQb(g);SQb(h);Qdd(c)} +function yoc(a,b){var c,d,e,f,g;Odd(b,'Breaking Point Processor',1);xoc(a);if(Ccb(DD(vNb(a,(Nyc(),Jyc))))){for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);c=0;for(g=new olb(d.a);g.a<g.c.c.length;){f=BD(mlb(g),10);f.p=c++}}soc(a);toc(a,true);toc(a,false)}Qdd(b)} +function $1c(a,b,c){var d,e,f,g,h,i;h=a.c;for(g=(!c.q?(mmb(),mmb(),kmb):c.q).vc().Kc();g.Ob();){f=BD(g.Pb(),42);d=!WAb(JAb(new YAb(null,new Kub(h,16)),new Xxb(new m2c(b,f)))).sd((EAb(),DAb));if(d){i=f.dd();if(JD(i,4)){e=fvd(i);e!=null&&(i=e)}b.Ye(BD(f.cd(),146),i)}}} +function MQd(a,b){var c,d,e,f,g;if(!b){return null}else{f=JD(a.Cb,88)||JD(a.Cb,99);g=!f&&JD(a.Cb,322);for(d=new Fyd((!b.a&&(b.a=new KYd(b,j5,b)),b.a));d.e!=d.i.gc();){c=BD(Dyd(d),87);e=KQd(c);if(f?JD(e,88):g?JD(e,148):!!e){return e}}return f?(jGd(),_Fd):(jGd(),YFd)}} +function g3b(a,b){var c,d,e,f,g,h;Odd(b,'Constraints Postprocessor',1);g=0;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);h=0;for(d=new olb(e.a);d.a<d.c.c.length;){c=BD(mlb(d),10);if(c.k==(j0b(),h0b)){yNb(c,(Nyc(),nxc),meb(g));yNb(c,Gwc,meb(h));++h}}++g}Qdd(b)} +function eRc(a,b,c,d){var e,f,g,h,i,j,k;i=new f7c(c,d);c7c(i,BD(vNb(b,(mTc(),WSc)),8));for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);P6c(j.e,i);Dsb(a.b,j)}for(h=Jsb(b.a,0);h.b!=h.d.c;){g=BD(Xsb(h),188);for(f=Jsb(g.a,0);f.b!=f.d.c;){e=BD(Xsb(f),8);P6c(e,i)}Dsb(a.a,g)}} +function uid(a,b,c){var d,e,f;f=e1d((O6d(),M6d),a.Tg(),b);if(f){Q6d();if(!BD(f,66).Oj()){f=_1d(q1d(M6d,f));if(!f){throw vbb(new Wdb(ite+b.ne()+jte))}}e=(d=a.Yg(f),BD(d>=0?a._g(d,true,true):sid(a,f,true),153));BD(e,215).ml(b,c)}else{throw vbb(new Wdb(ite+b.ne()+jte))}} +function ROc(a,b){var c,d,e,f,g;c=new Rkb;e=LAb(new YAb(null,new Kub(a,16)),new iPc);f=LAb(new YAb(null,new Kub(a,16)),new kPc);g=aAb(_zb(OAb(ty(OC(GC(xM,1),Uhe,833,0,[e,f])),new mPc)));for(d=1;d<g.length;d++){g[d]-g[d-1]>=2*b&&Ekb(c,new bPc(g[d-1]+b,g[d]-b))}return c} +function AXc(a,b,c){Odd(c,'Eades radial',1);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd));a.d=BD(hkd(b,(MUc(),LUc)),33);a.c=Edb(ED(hkd(b,(ZWc(),VWc))));a.e=tXc(BD(hkd(b,WWc),293));a.a=gWc(BD(hkd(b,YWc),426));a.b=jXc(BD(hkd(b,RWc),340));BXc(a);c.n&&!!b&&Tdd(c,i6d(b),(pgd(),mgd))} +function Fqd(a,b,c){var d,e,f,g,h,j,k,l;if(c){f=c.a.length;d=new Yge(f);for(h=(d.b-d.a)*d.c<0?(Xge(),Wge):new she(d);h.Ob();){g=BD(h.Pb(),19);e=Zpd(c,g.a);!!e&&(i=null,j=Uqd(a,(k=(Fhd(),l=new ppd,l),!!b&&npd(k,b),k),e),Lkd(j,_pd(e,Vte)),grd(e,j),hrd(e,j),crd(a,e,j))}}} +function UKd(a){var b,c,d,e,f,g;if(!a.j){g=new HPd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);e=UKd(c);ytd(g,e);wtd(g,c)}b.a.Bc(a)!=null}vud(g);a.j=new nNd((BD(qud(ZKd((NFd(),MFd).o),11),18),g.i),g.g);$Kd(a).b&=-33}return a.j} +function O9d(a){var b,c,d,e;if(a==null){return null}else{d=Qge(a,true);e=Nwe.length;if(dfb(d.substr(d.length-e,e),Nwe)){c=d.length;if(c==4){b=(BCb(0,d.length),d.charCodeAt(0));if(b==43){return z9d}else if(b==45){return y9d}}else if(c==3){return z9d}}return new Odb(d)}} +function _C(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return ieb(c)}if(b==0&&d!=0&&c==0){return ieb(d)+22}if(b!=0&&d==0&&c==0){return ieb(b)+44}return -1} +function qbc(a,b){var c,d,e,f,g;Odd(b,'Edge joining',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);g=new Bib(d.a,0);while(g.b<g.d.gc()){f=(sCb(g.b<g.d.gc()),BD(g.d.Xb(g.c=g.b++),10));if(f.k==(j0b(),g0b)){sbc(f,c);uib(g)}}}Qdd(b)} +function c_c(a,b,c){var d,e;H2c(a.b);K2c(a.b,(Y$c(),V$c),(R0c(),Q0c));K2c(a.b,W$c,b.g);K2c(a.b,X$c,b.a);a.a=F2c(a.b,b);Odd(c,'Compaction by shrinking a tree',a.a.c.length);if(b.i.c.length>1){for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),51);d.pf(b,Udd(c,1))}}Qdd(c)} +function mo(a,b){var c,d,e,f,g;e=b.a&a.f;f=null;for(d=a.b[e];true;d=d.b){if(d==b){!f?(a.b[e]=b.b):(f.b=b.b);break}f=d}g=b.f&a.f;f=null;for(c=a.c[g];true;c=c.d){if(c==b){!f?(a.c[g]=b.d):(f.d=b.d);break}f=c}!b.e?(a.a=b.c):(b.e.c=b.c);!b.c?(a.e=b.e):(b.c.e=b.e);--a.i;++a.g} +function eNb(a){var b,c,d,e,f,g,h,i,j,k;c=a.o;b=a.p;g=Ohe;e=Rie;h=Ohe;f=Rie;for(j=0;j<c;++j){for(k=0;k<b;++k){if(YMb(a,j,k)){g=$wnd.Math.min(g,j);e=$wnd.Math.max(e,j);h=$wnd.Math.min(h,k);f=$wnd.Math.max(f,k)}}}i=e-g+1;d=f-h+1;return new Ggd(meb(g),meb(h),meb(i),meb(d))} +function DWb(a,b){var c,d,e,f;f=new Bib(a,0);c=(sCb(f.b<f.d.gc()),BD(f.d.Xb(f.c=f.b++),140));while(f.b<f.d.gc()){d=(sCb(f.b<f.d.gc()),BD(f.d.Xb(f.c=f.b++),140));e=new dWb(d.c,c.d,b);sCb(f.b>0);f.a.Xb(f.c=--f.b);Aib(f,e);sCb(f.b<f.d.gc());f.d.Xb(f.c=f.b++);e.a=false;c=d}} +function Y2b(a){var b,c,d,e,f,g;e=BD(vNb(a,(wtc(),vsc)),11);for(g=new olb(a.j);g.a<g.c.c.length;){f=BD(mlb(g),11);for(d=new olb(f.g);d.a<d.c.c.length;){b=BD(mlb(d),17);RZb(b,e);return f}for(c=new olb(f.e);c.a<c.c.c.length;){b=BD(mlb(c),17);QZb(b,e);return f}}return null} +function iA(a,b,c){var d,e;d=Cbb(c.q.getTime());if(ybb(d,0)<0){e=_ie-Tbb(Hbb(Jbb(d),_ie));e==_ie&&(e=0)}else{e=Tbb(Hbb(d,_ie))}if(b==1){e=$wnd.Math.min((e+50)/100|0,9);Kfb(a,48+e&aje)}else if(b==2){e=$wnd.Math.min((e+5)/10|0,99);EA(a,e,2)}else{EA(a,e,3);b>3&&EA(a,0,b-3)}} +function cUb(a){var b,c,d,e;if(PD(vNb(a,(Nyc(),axc)))===PD((hbd(),ebd))){return !a.e&&PD(vNb(a,Cwc))!==PD((Xrc(),Urc))}d=BD(vNb(a,Dwc),292);e=Ccb(DD(vNb(a,Hwc)))||PD(vNb(a,Iwc))===PD((Rpc(),Opc));b=BD(vNb(a,Bwc),19).a;c=a.a.c.length;return !e&&d!=(Xrc(),Urc)&&(b==0||b>c)} +function lkc(a){var b,c;c=0;for(;c<a.c.length;c++){if(Ojc((tCb(c,a.c.length),BD(a.c[c],113)))>0){break}}if(c>0&&c<a.c.length-1){return c}b=0;for(;b<a.c.length;b++){if(Ojc((tCb(b,a.c.length),BD(a.c[b],113)))>0){break}}if(b>0&&c<a.c.length-1){return b}return a.c.length/2|0} +function mmd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=6&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+qmd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?cmd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,6,d));d=bmd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,6,b,b))} +function npd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=9&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+opd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?lpd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,9,d));d=kpd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,9,b,b))} +function Rld(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Sld(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Lld(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,12,d));d=Kld(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function VId(b){var c,d,e,f,g;e=wId(b);g=b.j;if(g==null&&!!e){return b.$j()?null:e.zj()}else if(JD(e,148)){d=e.Aj();if(d){f=d.Nh();if(f!=b.i){c=BD(e,148);if(c.Ej()){try{b.g=f.Kh(c,g)}catch(a){a=ubb(a);if(JD(a,78)){b.g=null}else throw vbb(a)}}b.i=f}}return b.g}return null} +function wOb(a){var b;b=new Rkb;Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c,a.d),new f7c(a.c,a.d+a.a)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c+a.b,a.d)));Ekb(b,new aDb(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a)));return b} +function IJc(a,b,c,d){var e,f,g;g=LZb(b,c);d.c[d.c.length]=b;if(a.j[g.p]==-1||a.j[g.p]==2||a.a[b.p]){return d}a.j[g.p]=-1;for(f=new Sr(ur(O_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!(!OZb(e)&&!(!OZb(e)&&e.c.i.c==e.d.i.c))||e==b){continue}return IJc(a,e,g,d)}return d} +function vQb(a,b,c){var d,e,f;for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),79);d=BD(Ohb(a.b,e),266);!d&&(Xod(jtd(e))==Xod(ltd(e))?uQb(a,e,c):jtd(e)==Xod(ltd(e))?Ohb(a.c,e)==null&&Ohb(a.b,ltd(e))!=null&&xQb(a,e,c,false):Ohb(a.d,e)==null&&Ohb(a.b,jtd(e))!=null&&xQb(a,e,c,true))}} +function jcc(a,b){var c,d,e,f,g,h,i;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),10);h=new H0b;F0b(h,d);G0b(h,(Ucd(),zcd));yNb(h,(wtc(),ftc),(Bcb(),true));for(g=b.Kc();g.Ob();){f=BD(g.Pb(),10);i=new H0b;F0b(i,f);G0b(i,Tcd);yNb(i,ftc,true);c=new UZb;yNb(c,ftc,true);QZb(c,h);RZb(c,i)}}} +function jnc(a,b,c,d){var e,f,g,h;e=hnc(a,b,c);f=hnc(a,c,b);g=BD(Ohb(a.c,b),112);h=BD(Ohb(a.c,c),112);if(e<f){new DOc((HOc(),GOc),g,h,f-e)}else if(f<e){new DOc((HOc(),GOc),h,g,e-f)}else if(e!=0||!(!b.i||!c.i)&&d[b.i.c][c.i.c]){new DOc((HOc(),GOc),g,h,0);new DOc(GOc,h,g,0)}} +function Qoc(a,b){var c,d,e,f,g,h,i;e=0;for(g=new olb(b.a);g.a<g.c.c.length;){f=BD(mlb(g),10);e+=f.o.b+f.d.a+f.d.d+a.e;for(d=new Sr(ur(R_b(f).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(c.c.i.k==(j0b(),i0b)){i=c.c.i;h=BD(vNb(i,(wtc(),$sc)),10);e+=h.o.b+h.d.a+h.d.d}}}return e} +function WNc(a,b,c){var d,e,f,g,h,i,j;f=new Rkb;j=new Psb;g=new Psb;XNc(a,j,g,b);VNc(a,j,g,b,c);for(i=new olb(a);i.a<i.c.c.length;){h=BD(mlb(i),112);for(e=new olb(h.k);e.a<e.c.c.length;){d=BD(mlb(e),129);(!b||d.c==(HOc(),FOc))&&h.g>d.b.g&&(f.c[f.c.length]=d,true)}}return f} +function k$c(){k$c=ccb;g$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_RIGHT',0);f$c=new l$c('CANDIDATE_POSITION_LAST_PLACED_BELOW',1);i$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT',2);h$c=new l$c('CANDIDATE_POSITION_WHOLE_DRAWING_BELOW',3);j$c=new l$c('WHOLE_DRAWING',4)} +function Xqd(a,b){if(JD(b,239)){return iqd(a,BD(b,33))}else if(JD(b,186)){return jqd(a,BD(b,118))}else if(JD(b,354)){return hqd(a,BD(b,137))}else if(JD(b,352)){return gqd(a,BD(b,79))}else if(b){return null}else{throw vbb(new Wdb(Xte+Fe(new amb(OC(GC(SI,1),Uhe,1,5,[b])))))}} +function aic(a){var b,c,d,e,f,g,h;f=new Psb;for(e=new olb(a.d.a);e.a<e.c.c.length;){d=BD(mlb(e),121);d.b.a.c.length==0&&(Gsb(f,d,f.c.b,f.c),true)}if(f.b>1){b=nGb((c=new pGb,++a.b,c),a.d);for(h=Jsb(f,0);h.b!=h.d.c;){g=BD(Xsb(h),121);AFb(DFb(CFb(EFb(BFb(new FFb,1),0),b),g))}}} +function $od(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=11&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+_od(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Uod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=kid(b,a,10,d));d=Tod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,11,b,b))} +function uZb(a){var b,c,d,e;for(d=new nib((new eib(a.b)).a);d.b;){c=lib(d);e=BD(c.cd(),11);b=BD(c.dd(),10);yNb(b,(wtc(),$sc),e);yNb(e,gtc,b);yNb(e,Nsc,(Bcb(),true));G0b(e,BD(vNb(b,Hsc),61));vNb(b,Hsc);yNb(e.i,(Nyc(),Vxc),(dcd(),acd));BD(vNb(Q_b(e.i),Ksc),21).Fc((Orc(),Krc))}} +function G4b(a,b,c){var d,e,f,g,h,i;f=0;g=0;if(a.c){for(i=new olb(a.d.i.j);i.a<i.c.c.length;){h=BD(mlb(i),11);f+=h.e.c.length}}else{f=1}if(a.d){for(i=new olb(a.c.i.j);i.a<i.c.c.length;){h=BD(mlb(i),11);g+=h.g.c.length}}else{g=1}e=QD(Eeb(g-f));d=(c+b)/2+(c-b)*(0.4*e);return d} +function Zjc(a){Xjc();var b,c;if(a.Hc((Ucd(),Scd))){throw vbb(new Wdb('Port sides must not contain UNDEFINED'))}switch(a.gc()){case 1:return Tjc;case 2:b=a.Hc(zcd)&&a.Hc(Tcd);c=a.Hc(Acd)&&a.Hc(Rcd);return b||c?Wjc:Vjc;case 3:return Ujc;case 4:return Sjc;default:return null;}} +function Hoc(a,b,c){var d,e,f,g,h;Odd(c,'Breaking Point Removing',1);a.a=BD(vNb(b,(Nyc(),Swc)),218);for(f=new olb(b.b);f.a<f.c.c.length;){e=BD(mlb(f),29);for(h=new olb(Mu(e.a));h.a<h.c.c.length;){g=BD(mlb(h),10);if(hoc(g)){d=BD(vNb(g,(wtc(),usc)),305);!d.d&&Ioc(a,d)}}}Qdd(c)} +function s6c(a,b,c){i6c();if(m6c(a,b)&&m6c(a,c)){return false}return u6c(new f7c(a.c,a.d),new f7c(a.c+a.b,a.d),b,c)||u6c(new f7c(a.c+a.b,a.d),new f7c(a.c+a.b,a.d+a.a),b,c)||u6c(new f7c(a.c+a.b,a.d+a.a),new f7c(a.c,a.d+a.a),b,c)||u6c(new f7c(a.c,a.d+a.a),new f7c(a.c,a.d),b,c)} +function x1d(a,b){var c,d,e,f;if(!a.dc()){for(c=0,d=a.gc();c<d;++c){f=GD(a.Xb(c));if(f==null?b==null:dfb(f.substr(0,3),'!##')?b!=null&&(e=b.length,!dfb(f.substr(f.length-e,e),b)||f.length!=b.length+3)&&!dfb(Ewe,b):dfb(f,Fwe)&&!dfb(Ewe,b)||dfb(f,b)){return true}}}return false} +function J3b(a,b,c,d){var e,f,g,h,i,j;g=a.j.c.length;i=KC(tN,ile,306,g,0,1);for(h=0;h<g;h++){f=BD(Ikb(a.j,h),11);f.p=h;i[h]=D3b(N3b(f),c,d)}F3b(a,i,c,b,d);j=new Lqb;for(e=0;e<i.length;e++){!!i[e]&&Rhb(j,BD(Ikb(a.j,e),11),i[e])}if(j.f.c+j.g.c!=0){yNb(a,(wtc(),Csc),j);L3b(a,i)}} +function Lgc(a,b,c){var d,e,f;for(e=new olb(a.a.b);e.a<e.c.c.length;){d=BD(mlb(e),57);f=tgc(d);if(f){if(f.k==(j0b(),e0b)){switch(BD(vNb(f,(wtc(),Hsc)),61).g){case 4:f.n.a=b.a;break;case 2:f.n.a=c.a-(f.o.a+f.d.c);break;case 1:f.n.b=b.b;break;case 3:f.n.b=c.b-(f.o.b+f.d.a);}}}}} +function kAc(){kAc=ccb;iAc=new lAc(ane,0);dAc=new lAc('NIKOLOV',1);gAc=new lAc('NIKOLOV_PIXEL',2);eAc=new lAc('NIKOLOV_IMPROVED',3);fAc=new lAc('NIKOLOV_IMPROVED_PIXEL',4);cAc=new lAc('DUMMYNODE_PERCENTAGE',5);hAc=new lAc('NODECOUNT_PERCENTAGE',6);jAc=new lAc('NO_BOUNDARY',7)} +function led(a,b,c){var d,e,f,g,h;e=BD(hkd(b,(X7c(),V7c)),19);!e&&(e=meb(0));f=BD(hkd(c,V7c),19);!f&&(f=meb(0));if(e.a>f.a){return -1}else if(e.a<f.a){return 1}else{if(a.a){d=Kdb(b.j,c.j);if(d!=0){return d}d=Kdb(b.i,c.i);if(d!=0){return d}}g=b.g*b.f;h=c.g*c.f;return Kdb(g,h)}} +function BAd(a,b){var c,d,e,f,g,h,i,j,k,l;++a.e;i=a.d==null?0:a.d.length;if(b>i){k=a.d;a.d=KC(y4,jve,63,2*i+4,0,1);for(f=0;f<i;++f){j=k[f];if(j){d=j.g;l=j.i;for(h=0;h<l;++h){e=BD(d[h],133);g=DAd(a,e.Sh());c=a.d[g];!c&&(c=a.d[g]=a.uj());c.Fc(e)}}}return true}else{return false}} +function o2d(a,b,c){var d,e,f,g,h,i;e=c;f=e.ak();if(T6d(a.e,f)){if(f.hi()){d=BD(a.g,119);for(g=0;g<a.i;++g){h=d[g];if(pb(h,e)&&g!=b){throw vbb(new Wdb(kue))}}}}else{i=S6d(a.e.Tg(),f);d=BD(a.g,119);for(g=0;g<a.i;++g){h=d[g];if(i.rl(h.ak())){throw vbb(new Wdb(Hwe))}}}vtd(a,b,c)} +function OYb(a,b){var c,d,e,f,g,h;c=BD(vNb(b,(wtc(),Esc)),21);g=BD(Qc((xXb(),wXb),c),21);h=BD(Qc(LYb,c),21);for(f=g.Kc();f.Ob();){d=BD(f.Pb(),21);if(!BD(Qc(a.b,d),15).dc()){return false}}for(e=h.Kc();e.Ob();){d=BD(e.Pb(),21);if(!BD(Qc(a.b,d),15).dc()){return false}}return true} +function scc(a,b){var c,d,e,f,g,h;Odd(b,'Partition postprocessing',1);for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);h=new olb(e.j);while(h.a<h.c.c.length){g=BD(mlb(h),11);Ccb(DD(vNb(g,(wtc(),ftc))))&&nlb(h)}}}Qdd(b)} +function ZZc(a,b){var c,d,e,f,g,h,i,j,k;if(a.a.c.length==1){return JZc(BD(Ikb(a.a,0),187),b)}g=YZc(a);i=0;j=a.d;f=g;k=a.d;h=(j-f)/2+f;while(f+1<j){i=0;for(d=new olb(a.a);d.a<d.c.c.length;){c=BD(mlb(d),187);i+=(e=MZc(c,h,false),e.a)}if(i<b){k=h;j=h}else{f=h}h=(j-f)/2+f}return k} +function fD(a){var b,c,d,e,f;if(isNaN(a)){return wD(),vD}if(a<-9223372036854775808){return wD(),tD}if(a>=9223372036854775807){return wD(),sD}e=false;if(a<0){e=true;a=-a}d=0;if(a>=Ije){d=QD(a/Ije);a-=d*Ije}c=0;if(a>=Hje){c=QD(a/Hje);a-=c*Hje}b=QD(a);f=TC(b,c,d);e&&ZC(f);return f} +function rKb(a,b){var c,d,e,f;c=!b||!a.u.Hc((rcd(),ncd));f=0;for(e=new olb(a.e.Cf());e.a<e.c.c.length;){d=BD(mlb(e),838);if(d.Hf()==(Ucd(),Scd)){throw vbb(new Wdb('Label and node size calculator can only be used with ports that have port sides assigned.'))}d.vf(f++);qKb(a,d,c)}} +function V0d(a,b){var c,d,e,f,g;e=b.Hh(a.a);if(e){d=(!e.b&&(e.b=new sId((jGd(),fGd),x6,e)),e.b);c=GD(AAd(d,cwe));if(c!=null){f=c.lastIndexOf('#');g=f==-1?w1d(a,b.Aj(),c):f==0?v1d(a,null,c.substr(1)):v1d(a,c.substr(0,f),c.substr(f+1));if(JD(g,148)){return BD(g,148)}}}return null} +function Z0d(a,b){var c,d,e,f,g;d=b.Hh(a.a);if(d){c=(!d.b&&(d.b=new sId((jGd(),fGd),x6,d)),d.b);f=GD(AAd(c,zwe));if(f!=null){e=f.lastIndexOf('#');g=e==-1?w1d(a,b.Aj(),f):e==0?v1d(a,null,f.substr(1)):v1d(a,f.substr(0,e),f.substr(e+1));if(JD(g,148)){return BD(g,148)}}}return null} +function RDb(a){var b,c,d,e,f;for(c=new olb(a.a.a);c.a<c.c.c.length;){b=BD(mlb(c),307);b.j=null;for(f=b.a.a.ec().Kc();f.Ob();){d=BD(f.Pb(),57);X6c(d.b);(!b.j||d.d.c<b.j.d.c)&&(b.j=d)}for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),57);d.b.a=d.d.c-b.j.d.c;d.b.b=d.d.d-b.j.d.d}}return a} +function sVb(a){var b,c,d,e,f;for(c=new olb(a.a.a);c.a<c.c.c.length;){b=BD(mlb(c),189);b.f=null;for(f=b.a.a.ec().Kc();f.Ob();){d=BD(f.Pb(),81);X6c(d.e);(!b.f||d.g.c<b.f.g.c)&&(b.f=d)}for(e=b.a.a.ec().Kc();e.Ob();){d=BD(e.Pb(),81);d.e.a=d.g.c-b.f.g.c;d.e.b=d.g.d-b.f.g.d}}return a} +function EMb(a){var b,c,d;c=BD(a.a,19).a;d=BD(a.b,19).a;b=$wnd.Math.max($wnd.Math.abs(c),$wnd.Math.abs(d));if(c<b&&d==-b){return new vgd(meb(c+1),meb(d))}if(c==b&&d<b){return new vgd(meb(c),meb(d+1))}if(c>=-b&&d==b){return new vgd(meb(c-1),meb(d))}return new vgd(meb(c),meb(d-1))} +function W8b(){S8b();return OC(GC(AS,1),Kie,77,0,[Y7b,V7b,Z7b,n8b,G8b,r8b,M8b,w8b,E8b,i8b,A8b,v8b,F8b,e8b,O8b,P7b,z8b,I8b,o8b,H8b,Q8b,C8b,Q7b,D8b,R8b,K8b,P8b,p8b,b8b,q8b,m8b,N8b,T7b,_7b,t8b,S7b,u8b,k8b,f8b,x8b,h8b,W7b,U7b,l8b,g8b,y8b,L8b,R7b,B8b,j8b,s8b,c8b,a8b,J8b,$7b,d8b,X7b])} +function Yic(a,b,c){a.d=0;a.b=0;b.k==(j0b(),i0b)&&c.k==i0b&&BD(vNb(b,(wtc(),$sc)),10)==BD(vNb(c,$sc),10)&&(ajc(b).j==(Ucd(),Acd)?Zic(a,b,c):Zic(a,c,b));b.k==i0b&&c.k==g0b?ajc(b).j==(Ucd(),Acd)?(a.d=1):(a.b=1):c.k==i0b&&b.k==g0b&&(ajc(c).j==(Ucd(),Acd)?(a.b=1):(a.d=1));cjc(a,b,c)} +function esd(a){var b,c,d,e,f,g,h,i,j,k,l;l=hsd(a);b=a.a;i=b!=null;i&&Upd(l,'category',a.a);e=Fhe(new Pib(a.d));g=!e;if(g){j=new wB;cC(l,'knownOptions',j);c=new msd(j);reb(new Pib(a.d),c)}f=Fhe(a.g);h=!f;if(h){k=new wB;cC(l,'supportedFeatures',k);d=new osd(k);reb(a.g,d)}return l} +function ty(a){var b,c,d,e,f,g,h,i,j;d=false;b=336;c=0;f=new Xp(a.length);for(h=a,i=0,j=h.length;i<j;++i){g=h[i];d=d|(Uzb(g),false);e=(Tzb(g),g.a);Ekb(f.a,Qb(e));b&=e.qd();c=Ly(c,e.rd())}return BD(BD(Rzb(new YAb(null,Yj(new Kub((im(),nm(f.a)),16),new vy,b,c)),new xy(a)),670),833)} +function UWb(a,b){var c;if(!!a.d&&(b.c!=a.e.c||qWb(a.e.b,b.b))){Ekb(a.f,a.d);a.a=a.d.c+a.d.b;a.d=null;a.e=null}nWb(b.b)?(a.c=b):(a.b=b);if(b.b==(lWb(),hWb)&&!b.a||b.b==iWb&&b.a||b.b==jWb&&b.a||b.b==kWb&&!b.a){if(!!a.c&&!!a.b){c=new J6c(a.a,a.c.d,b.c-a.a,a.b.d-a.c.d);a.d=c;a.e=b}}} +function L2c(a){var b;D2c.call(this);this.i=new Z2c;this.g=a;this.f=BD(a.e&&a.e(),9).length;if(this.f==0){throw vbb(new Wdb('There must be at least one phase in the phase enumeration.'))}this.c=(b=BD(gdb(this.g),9),new xqb(b,BD(_Bb(b,b.length),9),0));this.a=new j3c;this.b=new Lqb} +function God(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=7&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+Iod(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?Eod(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,1,C2,d));d=Dod(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,7,b,b))} +function NHd(a,b){var c,d;if(b!=a.Cb||a.Db>>16!=3&&!!b){if(p6d(a,b))throw vbb(new Wdb(ste+QHd(a)));d=null;!!a.Cb&&(d=(c=a.Db>>16,c>=0?KHd(a,d):a.Cb.ih(a,-1-c,null,d)));!!b&&(d=BD(b,49).gh(a,0,k5,d));d=JHd(a,b,d);!!d&&d.Fi()}else (a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,3,b,b))} +function Ehb(a,b){Dhb();var c,d,e,f,g,h,i,j,k;if(b.d>a.d){h=a;a=b;b=h}if(b.d<63){return Ihb(a,b)}g=(a.d&-2)<<4;j=Rgb(a,g);k=Rgb(b,g);d=yhb(a,Qgb(j,g));e=yhb(b,Qgb(k,g));i=Ehb(j,k);c=Ehb(d,e);f=Ehb(yhb(j,d),yhb(e,k));f=thb(thb(f,i),c);f=Qgb(f,g);i=Qgb(i,g<<1);return thb(thb(i,f),c)} +function aGc(a,b,c){var d,e,f,g,h;g=CHc(a,c);h=KC(OQ,kne,10,b.length,0,1);d=0;for(f=g.Kc();f.Ob();){e=BD(f.Pb(),11);Ccb(DD(vNb(e,(wtc(),Nsc))))&&(h[d++]=BD(vNb(e,gtc),10))}if(d<b.length){throw vbb(new Zdb('Expected '+b.length+' hierarchical ports, but found only '+d+'.'))}return h} +function Und(a,b){var c,d,e,f,g,h;if(!a.tb){f=(!a.rb&&(a.rb=new jUd(a,d5,a)),a.rb);h=new Mqb(f.i);for(e=new Fyd(f);e.e!=e.i.gc();){d=BD(Dyd(e),138);g=d.ne();c=BD(g==null?jrb(h.f,null,d):Drb(h.g,g,d),138);!!c&&(g==null?jrb(h.f,null,c):Drb(h.g,g,c))}a.tb=h}return BD(Phb(a.tb,b),138)} +function YKd(a,b){var c,d,e,f,g;(a.i==null&&TKd(a),a.i).length;if(!a.p){g=new Mqb((3*a.g.i/2|0)+1);for(e=new $yd(a.g);e.e!=e.i.gc();){d=BD(Zyd(e),170);f=d.ne();c=BD(f==null?jrb(g.f,null,d):Drb(g.g,f,d),170);!!c&&(f==null?jrb(g.f,null,c):Drb(g.g,f,c))}a.p=g}return BD(Phb(a.p,b),170)} +function hCb(a,b,c,d,e){var f,g,h,i,j;fCb(d+Wy(c,c.$d()),e);gCb(b,jCb(c));f=c.f;!!f&&hCb(a,b,f,'Caused by: ',false);for(h=(c.k==null&&(c.k=KC(_I,nie,78,0,0,1)),c.k),i=0,j=h.length;i<j;++i){g=h[i];hCb(a,b,g,'Suppressed: ',false)}console.groupEnd!=null&&console.groupEnd.call(console)} +function dGc(a,b,c,d){var e,f,g,h,i;i=b.e;h=i.length;g=b.q._f(i,c?0:h-1,c);e=i[c?0:h-1];g=g|cGc(a,e,c,d);for(f=c?1:h-2;c?f<h:f>=0;f+=c?1:-1){g=g|b.c.Sf(i,f,c,d&&!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,(wtc(),mtc)))));g=g|b.q._f(i,f,c);g=g|cGc(a,i[f],c,d)}Qqb(a.c,b);return g} +function o3b(a,b,c){var d,e,f,g,h,i,j,k,l,m;for(k=m_b(a.j),l=0,m=k.length;l<m;++l){j=k[l];if(c==(KAc(),HAc)||c==JAc){i=k_b(j.g);for(e=i,f=0,g=e.length;f<g;++f){d=e[f];k3b(b,d)&&PZb(d,true)}}if(c==IAc||c==JAc){h=k_b(j.e);for(e=h,f=0,g=e.length;f<g;++f){d=e[f];j3b(b,d)&&PZb(d,true)}}}} +function Qmc(a){var b,c;b=null;c=null;switch(Lmc(a).g){case 1:b=(Ucd(),zcd);c=Tcd;break;case 2:b=(Ucd(),Rcd);c=Acd;break;case 3:b=(Ucd(),Tcd);c=zcd;break;case 4:b=(Ucd(),Acd);c=Rcd;}mjc(a,BD(Btb(RAb(BD(Qc(a.k,b),15).Oc(),Hmc)),113));njc(a,BD(Btb(QAb(BD(Qc(a.k,c),15).Oc(),Hmc)),113))} +function a6b(a){var b,c,d,e,f,g;e=BD(Ikb(a.j,0),11);if(e.e.c.length+e.g.c.length==0){a.n.a=0}else{g=0;for(d=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(e),new R0b(e)])));Qr(d);){c=BD(Rr(d),11);g+=c.i.n.a+c.n.a+c.a.a}b=BD(vNb(a,(Nyc(),Txc)),8);f=!b?0:b.a;a.n.a=g/(e.e.c.length+e.g.c.length)-f}} +function F1c(a,b){var c,d,e;for(d=new olb(b.a);d.a<d.c.c.length;){c=BD(mlb(d),221);$Nb(BD(c.b,65),c7c(R6c(BD(b.b,65).c),BD(b.b,65).a));e=xOb(BD(b.b,65).b,BD(c.b,65).b);e>1&&(a.a=true);ZNb(BD(c.b,65),P6c(R6c(BD(b.b,65).c),Y6c(c7c(R6c(BD(c.b,65).a),BD(b.b,65).a),e)));D1c(a,b);F1c(a,c)}} +function rVb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a<f.c.c.length;){d=BD(mlb(f),189);d.e=0;d.d.a.$b()}for(e=new olb(a.a.a);e.a<e.c.c.length;){d=BD(mlb(e),189);for(c=d.a.a.ec().Kc();c.Ob();){b=BD(c.Pb(),81);for(h=b.f.Kc();h.Ob();){g=BD(h.Pb(),81);if(g.d!=d){Qqb(d.d,g);++g.d.e}}}}} +function bcc(a){var b,c,d,e,f,g,h,i;i=a.j.c.length;c=0;b=i;e=2*i;for(h=new olb(a.j);h.a<h.c.c.length;){g=BD(mlb(h),11);switch(g.j.g){case 2:case 4:g.p=-1;break;case 1:case 3:d=g.e.c.length;f=g.g.c.length;d>0&&f>0?(g.p=b++):d>0?(g.p=c++):f>0?(g.p=e++):(g.p=c++);}}mmb();Okb(a.j,new fcc)} +function Vec(a){var b,c;c=null;b=BD(Ikb(a.g,0),17);do{c=b.d.i;if(wNb(c,(wtc(),Wsc))){return BD(vNb(c,Wsc),11).i}if(c.k!=(j0b(),h0b)&&Qr(new Sr(ur(U_b(c).a.Kc(),new Sq)))){b=BD(Rr(new Sr(ur(U_b(c).a.Kc(),new Sq))),17)}else if(c.k!=h0b){return null}}while(!!c&&c.k!=(j0b(),h0b));return c} +function Omc(a,b){var c,d,e,f,g,h,i,j,k;h=b.j;g=b.g;i=BD(Ikb(h,h.c.length-1),113);k=(tCb(0,h.c.length),BD(h.c[0],113));j=Kmc(a,g,i,k);for(f=1;f<h.c.length;f++){c=(tCb(f-1,h.c.length),BD(h.c[f-1],113));e=(tCb(f,h.c.length),BD(h.c[f],113));d=Kmc(a,g,c,e);if(d>j){i=c;k=e;j=d}}b.a=k;b.c=i} +function sEb(a,b){var c,d;d=Axb(a.b,b.b);if(!d){throw vbb(new Zdb('Invalid hitboxes for scanline constraint calculation.'))}(mEb(b.b,BD(Cxb(a.b,b.b),57))||mEb(b.b,BD(Bxb(a.b,b.b),57)))&&(Zfb(),b.b+' has overlap.');a.a[b.b.f]=BD(Exb(a.b,b.b),57);c=BD(Dxb(a.b,b.b),57);!!c&&(a.a[c.f]=b.b)} +function AFb(a){if(!a.a.d||!a.a.e){throw vbb(new Zdb((fdb(fN),fN.k+' must have a source and target '+(fdb(jN),jN.k)+' specified.')))}if(a.a.d==a.a.e){throw vbb(new Zdb('Network simplex does not support self-loops: '+a.a+' '+a.a.d+' '+a.a.e))}NFb(a.a.d.g,a.a);NFb(a.a.e.b,a.a);return a.a} +function HHc(a,b,c){var d,e,f,g,h,i,j;j=new Hxb(new tIc(a));for(g=OC(GC(aR,1),lne,11,0,[b,c]),h=0,i=g.length;h<i;++h){f=g[h];Iwb(j.a,f,(Bcb(),zcb))==null;for(e=new b1b(f.b);llb(e.a)||llb(e.b);){d=BD(llb(e.a)?mlb(e.a):mlb(e.b),17);d.c==d.d||Axb(j,f==d.c?d.d:d.c)}}return Qb(j),new Tkb(j)} +function oPc(a,b,c){var d,e,f,g,h,i;d=0;if(b.b!=0&&c.b!=0){f=Jsb(b,0);g=Jsb(c,0);h=Edb(ED(Xsb(f)));i=Edb(ED(Xsb(g)));e=true;do{if(h>i-a.b&&h<i+a.b){return -1}else h>i-a.a&&h<i+a.a&&++d;h<=i&&f.b!=f.d.c?(h=Edb(ED(Xsb(f)))):i<=h&&g.b!=g.d.c?(i=Edb(ED(Xsb(g)))):(e=false)}while(e)}return d} +function F3b(a,b,c,d,e){var f,g,h,i;i=(f=BD(gdb(F1),9),new xqb(f,BD(_Bb(f,f.length),9),0));for(h=new olb(a.j);h.a<h.c.c.length;){g=BD(mlb(h),11);if(b[g.p]){G3b(g,b[g.p],d);rqb(i,g.j)}}if(e){K3b(a,b,(Ucd(),zcd),2*c,d);K3b(a,b,Tcd,2*c,d)}else{K3b(a,b,(Ucd(),Acd),2*c,d);K3b(a,b,Rcd,2*c,d)}} +function Szb(a){var b,c,d,e,f;f=new Rkb;Hkb(a.b,new XBb(f));a.b.c=KC(SI,Uhe,1,0,5,1);if(f.c.length!=0){b=(tCb(0,f.c.length),BD(f.c[0],78));for(c=1,d=f.c.length;c<d;++c){e=(tCb(c,f.c.length),BD(f.c[c],78));e!=b&&Qy(b,e)}if(JD(b,60)){throw vbb(BD(b,60))}if(JD(b,289)){throw vbb(BD(b,289))}}} +function DCb(a,b){var c,d,e,f;a=a==null?Xhe:(uCb(a),a);c=new Vfb;f=0;d=0;while(d<b.length){e=a.indexOf('%s',f);if(e==-1){break}Qfb(c,a.substr(f,e-f));Pfb(c,b[d++]);f=e+2}Qfb(c,a.substr(f));if(d<b.length){c.a+=' [';Pfb(c,b[d++]);while(d<b.length){c.a+=She;Pfb(c,b[d++])}c.a+=']'}return c.a} +function KCb(a){var b,c,d,e;b=0;d=a.length;e=d-4;c=0;while(c<e){b=(BCb(c+3,a.length),a.charCodeAt(c+3)+(BCb(c+2,a.length),31*(a.charCodeAt(c+2)+(BCb(c+1,a.length),31*(a.charCodeAt(c+1)+(BCb(c,a.length),31*(a.charCodeAt(c)+31*b)))))));b=b|0;c+=4}while(c<d){b=b*31+bfb(a,c++)}b=b|0;return b} +function Rac(a){var b,c;for(c=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.d.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST, but has at least one outgoing edge that "+' does not go to a LAST_SEPARATE node. That must not happen.'))}}} +function jQc(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=0;for(k=new olb(a.a);k.a<k.c.c.length;){j=BD(mlb(k),10);h=0;for(f=new Sr(ur(R_b(j).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);l=A0b(e.c).b;m=A0b(e.d).b;h=$wnd.Math.max(h,$wnd.Math.abs(m-l))}i=$wnd.Math.max(i,h)}g=d*$wnd.Math.min(1,b/c)*i;return g} +function See(a){var b;b=new Ifb;(a&256)!=0&&(b.a+='F',b);(a&128)!=0&&(b.a+='H',b);(a&512)!=0&&(b.a+='X',b);(a&2)!=0&&(b.a+='i',b);(a&8)!=0&&(b.a+='m',b);(a&4)!=0&&(b.a+='s',b);(a&32)!=0&&(b.a+='u',b);(a&64)!=0&&(b.a+='w',b);(a&16)!=0&&(b.a+='x',b);(a&zte)!=0&&(b.a+=',',b);return jfb(b.a)} +function F5b(a,b){var c,d,e,f;Odd(b,'Resize child graph to fit parent.',1);for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);Gkb(a.a,c.a);c.a.c=KC(SI,Uhe,1,0,5,1)}for(f=new olb(a.a);f.a<f.c.c.length;){e=BD(mlb(f),10);$_b(e,null)}a.b.c=KC(SI,Uhe,1,0,5,1);G5b(a);!!a.e&&E5b(a.e,a);Qdd(b)} +function eec(a){var b,c,d,e,f,g,h,i,j;d=a.b;f=d.e;g=ecd(BD(vNb(d,(Nyc(),Vxc)),98));c=!!f&&BD(vNb(f,(wtc(),Ksc)),21).Hc((Orc(),Hrc));if(g||c){return}for(j=(h=(new $ib(a.e)).a.vc().Kc(),new djb(h));j.a.Ob();){i=(b=BD(j.a.Pb(),42),BD(b.dd(),113));if(i.a){e=i.d;F0b(e,null);i.c=true;a.a=true}}} +function QFc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;m=-1;n=0;for(j=a,k=0,l=j.length;k<l;++k){i=j[k];for(f=i,g=0,h=f.length;g<h;++g){e=f[g];b=new Unc(m==-1?a[0]:a[m],Xec(e));for(c=0;c<e.j.c.length;c++){for(d=c+1;d<e.j.c.length;d++){Rnc(b,BD(Ikb(e.j,c),11),BD(Ikb(e.j,d),11))>0&&++n}}}++m}return n} +function hUc(a,b){var c,d,e,f,g;g=BD(vNb(b,(JTc(),FTc)),425);for(f=Jsb(b.b,0);f.b!=f.d.c;){e=BD(Xsb(f),86);if(a.b[e.g]==0){switch(g.g){case 0:iUc(a,e);break;case 1:gUc(a,e);}a.b[e.g]=2}}for(d=Jsb(a.a,0);d.b!=d.d.c;){c=BD(Xsb(d),188);ze(c.b.d,c,true);ze(c.c.b,c,true)}yNb(b,(mTc(),gTc),a.a)} +function S6d(a,b){Q6d();var c,d,e,f;if(!b){return P6d}else if(b==(Q8d(),N8d)||(b==v8d||b==t8d||b==u8d)&&a!=s8d){return new Z6d(a,b)}else{d=BD(b,677);c=d.pk();if(!c){a2d(q1d((O6d(),M6d),b));c=d.pk()}f=(!c.i&&(c.i=new Lqb),c.i);e=BD(Wd(irb(f.f,a)),1942);!e&&Rhb(f,a,e=new Z6d(a,b));return e}} +function Tbc(a,b){var c,d,e,f,g,h,i,j,k;i=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;k=a.i.n.b;c=k_b(a.e);for(e=c,f=0,g=e.length;f<g;++f){d=e[f];RZb(d,i);Fsb(d.a,new f7c(j,k));if(b){h=BD(vNb(d,(Nyc(),jxc)),74);if(!h){h=new s7c;yNb(d,jxc,h)}Dsb(h,new f7c(j,k))}}} +function Ubc(a,b){var c,d,e,f,g,h,i,j,k;e=BD(vNb(a,(wtc(),$sc)),11);j=l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).a;k=a.i.n.b;c=k_b(a.g);for(g=c,h=0,i=g.length;h<i;++h){f=g[h];QZb(f,e);Esb(f.a,new f7c(j,k));if(b){d=BD(vNb(f,(Nyc(),jxc)),74);if(!d){d=new s7c;yNb(f,jxc,d)}Dsb(d,new f7c(j,k))}}} +function TFc(a,b){var c,d,e,f,g,h;a.b=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);a.e=Dub(a.d);f=new Psb;e=Ou(OC(GC(KQ,1),cne,37,0,[b]));g=0;while(g<e.c.length){d=(tCb(g,e.c.length),BD(e.c[g],37));d.p=g++;c=new fFc(d,a.a,a.b);Gkb(e,c.b);Ekb(a.b,c);c.s&&(h=Jsb(f,0),Vsb(h,c))}a.c=new Tqb;return f} +function HJb(a,b){var c,d,e,f,g,h;for(g=BD(BD(Qc(a.r,b),21),84).Kc();g.Ob();){f=BD(g.Pb(),111);c=f.c?ZHb(f.c):0;if(c>0){if(f.a){h=f.b.rf().a;if(c>h){e=(c-h)/2;f.d.b=e;f.d.c=e}}else{f.d.c=a.s+c}}else if(tcd(a.u)){d=sfd(f.b);d.c<0&&(f.d.b=-d.c);d.c+d.b>f.b.rf().a&&(f.d.c=d.c+d.b-f.b.rf().a)}}} +function Eec(a,b){var c,d,e,f;Odd(b,'Semi-Interactive Crossing Minimization Processor',1);c=false;for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);f=TAb(VAb(JAb(JAb(new YAb(null,new Kub(d.a,16)),new Jec),new Lec),new Nec),new Rec);c=c|f.a!=null}c&&yNb(a,(wtc(),Rsc),(Bcb(),true));Qdd(b)} +function sRc(a,b,c){var d,e,f,g,h;e=c;!e&&(e=new Zdd);Odd(e,'Layout',a.a.c.length);if(Ccb(DD(vNb(b,(JTc(),vTc))))){Zfb();for(d=0;d<a.a.c.length;d++){h=(d<10?'0':'')+d++;' Slot '+h+': '+hdb(rb(BD(Ikb(a.a,d),51)))}}for(g=new olb(a.a);g.a<g.c.c.length;){f=BD(mlb(g),51);f.pf(b,Udd(e,1))}Qdd(e)} +function yMb(a){var b,c;b=BD(a.a,19).a;c=BD(a.b,19).a;if(b>=0){if(b==c){return new vgd(meb(-b-1),meb(-b-1))}if(b==-c){return new vgd(meb(-b),meb(c+1))}}if($wnd.Math.abs(b)>$wnd.Math.abs(c)){if(b<0){return new vgd(meb(-b),meb(c))}return new vgd(meb(-b),meb(c+1))}return new vgd(meb(b+1),meb(c))} +function q5b(a){var b,c;c=BD(vNb(a,(Nyc(),mxc)),163);b=BD(vNb(a,(wtc(),Osc)),303);if(c==(Ctc(),ytc)){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),dsc))}else if(c==Atc){yNb(a,mxc,Btc);yNb(a,Osc,(esc(),bsc))}else if(b==(esc(),dsc)){yNb(a,mxc,ytc);yNb(a,Osc,csc)}else if(b==bsc){yNb(a,mxc,Atc);yNb(a,Osc,csc)}} +function FNc(){FNc=ccb;DNc=new RNc;zNc=e3c(new j3c,(qUb(),nUb),(S8b(),o8b));CNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);ENc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);ANc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);BNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function hQc(){hQc=ccb;cQc=e3c(c3c(new j3c,(qUb(),pUb),(S8b(),c8b)),nUb,o8b);gQc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);dQc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);fQc=e3c(e3c(new j3c,nUb,C8b),pUb,B8b);eQc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function GNc(a,b,c,d,e){var f,g;if((!OZb(b)&&b.c.i.c==b.d.i.c||!T6c(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])),c))&&!OZb(b)){b.c==e?St(b.a,0,new g7c(c)):Dsb(b.a,new g7c(c));if(d&&!Rqb(a.a,c)){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(c);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}}} +function Qac(a){var b,c;for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(b.c.i.k!=(j0b(),f0b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST, but has at least one incoming edge that "+' does not come from a FIRST_SEPARATE node. That must not happen.'))}}} +function vjd(a,b,c){var d,e,f,g,h,i,j;e=aeb(a.Db&254);if(e==0){a.Eb=c}else{if(e==1){h=KC(SI,Uhe,1,2,5,1);f=zjd(a,b);if(f==0){h[0]=c;h[1]=a.Eb}else{h[0]=a.Eb;h[1]=c}}else{h=KC(SI,Uhe,1,e+1,5,1);g=CD(a.Eb);for(d=2,i=0,j=0;d<=128;d<<=1){d==b?(h[j++]=c):(a.Db&d)!=0&&(h[j++]=g[i++])}}a.Eb=h}a.Db|=b} +function ENb(a,b,c){var d,e,f,g;this.b=new Rkb;e=0;d=0;for(g=new olb(a);g.a<g.c.c.length;){f=BD(mlb(g),167);c&&rMb(f);Ekb(this.b,f);e+=f.o;d+=f.p}if(this.b.c.length>0){f=BD(Ikb(this.b,0),167);e+=f.o;d+=f.p}e*=2;d*=2;b>1?(e=QD($wnd.Math.ceil(e*b))):(d=QD($wnd.Math.ceil(d/b)));this.a=new pNb(e,d)} +function Igc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;k=d;if(b.j&&b.o){n=BD(Ohb(a.f,b.A),57);p=n.d.c+n.d.b;--k}else{p=b.a.c+b.a.b}l=e;if(c.q&&c.o){n=BD(Ohb(a.f,c.C),57);j=n.d.c;++l}else{j=c.a.c}q=j-p;i=$wnd.Math.max(2,l-k);h=q/i;o=p+h;for(m=k;m<l;++m){g=BD(f.Xb(m),128);r=g.a.b;g.a.c=o-r/2;o+=h}} +function UHc(a,b,c,d,e,f){var g,h,i,j,k,l;j=c.c.length;f&&(a.c=KC(WD,oje,25,b.length,15,1));for(g=e?0:b.length-1;e?g<b.length:g>=0;g+=e?1:-1){h=b[g];i=d==(Ucd(),zcd)?e?V_b(h,d):Su(V_b(h,d)):e?Su(V_b(h,d)):V_b(h,d);f&&(a.c[h.p]=i.gc());for(l=i.Kc();l.Ob();){k=BD(l.Pb(),11);a.d[k.p]=j++}Gkb(c,i)}} +function aQc(a,b,c){var d,e,f,g,h,i,j,k;f=Edb(ED(a.b.Kc().Pb()));j=Edb(ED(Pq(b.b)));d=Y6c(R6c(a.a),j-c);e=Y6c(R6c(b.a),c-f);k=P6c(d,e);Y6c(k,1/(j-f));this.a=k;this.b=new Rkb;h=true;g=a.b.Kc();g.Pb();while(g.Ob()){i=Edb(ED(g.Pb()));if(h&&i-c>Oqe){this.b.Fc(c);h=false}this.b.Fc(i)}h&&this.b.Fc(c)} +function vGb(a){var b,c,d,e;yGb(a,a.n);if(a.d.c.length>0){Blb(a.c);while(GGb(a,BD(mlb(new olb(a.e.a)),121))<a.e.a.c.length){b=AGb(a);e=b.e.e-b.d.e-b.a;b.e.j&&(e=-e);for(d=new olb(a.e.a);d.a<d.c.c.length;){c=BD(mlb(d),121);c.j&&(c.e+=e)}Blb(a.c)}Blb(a.c);DGb(a,BD(mlb(new olb(a.e.a)),121));rGb(a)}} +function rkc(a,b){var c,d,e,f,g;for(e=BD(Qc(a.a,(Xjc(),Tjc)),15).Kc();e.Ob();){d=BD(e.Pb(),101);c=BD(Ikb(d.j,0),113).d.j;f=new Tkb(d.j);Okb(f,new Xkc);switch(b.g){case 1:jkc(a,f,c,(Fkc(),Dkc),1);break;case 0:g=lkc(f);jkc(a,new Jib(f,0,g),c,(Fkc(),Dkc),0);jkc(a,new Jib(f,g,f.c.length),c,Dkc,1);}}} +function c2c(a,b){Y1c();var c,d;c=j4c(n4c(),b.tg());if(c){d=c.j;if(JD(a,239)){return Zod(BD(a,33))?uqb(d,(N5c(),K5c))||uqb(d,L5c):uqb(d,(N5c(),K5c))}else if(JD(a,352)){return uqb(d,(N5c(),I5c))}else if(JD(a,186)){return uqb(d,(N5c(),M5c))}else if(JD(a,354)){return uqb(d,(N5c(),J5c))}}return true} +function c3d(a,b,c){var d,e,f,g,h,i;e=c;f=e.ak();if(T6d(a.e,f)){if(f.hi()){d=BD(a.g,119);for(g=0;g<a.i;++g){h=d[g];if(pb(h,e)&&g!=b){throw vbb(new Wdb(kue))}}}}else{i=S6d(a.e.Tg(),f);d=BD(a.g,119);for(g=0;g<a.i;++g){h=d[g];if(i.rl(h.ak())&&g!=b){throw vbb(new Wdb(Hwe))}}}return BD(Gtd(a,b,c),72)} +function Sy(d,b){if(b instanceof Object){try{b.__java$exception=d;if(navigator.userAgent.toLowerCase().indexOf('msie')!=-1&&$doc.documentMode<9){return}var c=d;Object.defineProperties(b,{cause:{get:function(){var a=c.Zd();return a&&a.Xd()}},suppressed:{get:function(){return c.Yd()}}})}catch(a){}}} +function lhb(a,b){var c,d,e,f,g;d=b>>5;b&=31;if(d>=a.d){return a.e<0?(Hgb(),Bgb):(Hgb(),Ggb)}f=a.d-d;e=KC(WD,oje,25,f+1,15,1);mhb(e,f,a.a,d,b);if(a.e<0){for(c=0;c<d&&a.a[c]==0;c++);if(c<d||b>0&&a.a[c]<<32-b!=0){for(c=0;c<f&&e[c]==-1;c++){e[c]=0}c==f&&++f;++e[c]}}g=new Vgb(a.e,f,e);Jgb(g);return g} +function UPb(a){var b,c,d,e;e=mpd(a);c=new kQb(e);d=new mQb(e);b=new Rkb;Gkb(b,(!a.d&&(a.d=new y5d(B2,a,8,5)),a.d));Gkb(b,(!a.e&&(a.e=new y5d(B2,a,7,4)),a.e));return BD(GAb(NAb(JAb(new YAb(null,new Kub(b,16)),c),d),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21)} +function p2d(a,b,c,d){var e,f,g,h,i;h=(Q6d(),BD(b,66).Oj());if(T6d(a.e,b)){if(b.hi()&&F2d(a,b,d,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)){throw vbb(new Wdb(kue))}}else{i=S6d(a.e.Tg(),b);e=BD(a.g,119);for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())){throw vbb(new Wdb(Hwe))}}}vtd(a,I2d(a,b,c),h?BD(d,72):R6d(b,d))} +function T6d(a,b){Q6d();var c,d,e;if(b.$j()){return true}else if(b.Zj()==-2){if(b==(m8d(),k8d)||b==h8d||b==i8d||b==j8d){return true}else{e=a.Tg();if(bLd(e,b)>=0){return false}else{c=e1d((O6d(),M6d),e,b);if(!c){return true}else{d=c.Zj();return (d>1||d==-1)&&$1d(q1d(M6d,c))!=3}}}}else{return false}} +function R1b(a,b,c,d){var e,f,g,h,i;h=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));i=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));if(Xod(h)==Xod(i)){return null}if(ntd(i,h)){return null}g=Mld(b);if(g==c){return d}else{f=BD(Ohb(a.a,g),10);if(f){e=f.e;if(e){return e}}}return null} +function Cac(a,b){var c;c=BD(vNb(a,(Nyc(),Rwc)),276);Odd(b,'Label side selection ('+c+')',1);switch(c.g){case 0:Dac(a,(rbd(),nbd));break;case 1:Dac(a,(rbd(),obd));break;case 2:Bac(a,(rbd(),nbd));break;case 3:Bac(a,(rbd(),obd));break;case 4:Eac(a,(rbd(),nbd));break;case 5:Eac(a,(rbd(),obd));}Qdd(b)} +function bGc(a,b,c){var d,e,f,g,h,i;d=RFc(c,a.length);g=a[d];if(g[0].k!=(j0b(),e0b)){return}f=SFc(c,g.length);i=b.j;for(e=0;e<i.c.length;e++){h=(tCb(e,i.c.length),BD(i.c[e],11));if((c?h.j==(Ucd(),zcd):h.j==(Ucd(),Tcd))&&Ccb(DD(vNb(h,(wtc(),Nsc))))){Nkb(i,e,BD(vNb(g[f],(wtc(),$sc)),11));f+=c?1:-1}}} +function rQc(a,b){var c,d,e,f,g;g=new Rkb;c=b;do{f=BD(Ohb(a.b,c),128);f.B=c.c;f.D=c.d;g.c[g.c.length]=f;c=BD(Ohb(a.k,c),17)}while(c);d=(tCb(0,g.c.length),BD(g.c[0],128));d.j=true;d.A=BD(d.d.a.ec().Kc().Pb(),17).c.i;e=BD(Ikb(g,g.c.length-1),128);e.q=true;e.C=BD(e.d.a.ec().Kc().Pb(),17).d.i;return g} +function $wd(a){if(a.g==null){switch(a.p){case 0:a.g=Swd(a)?(Bcb(),Acb):(Bcb(),zcb);break;case 1:a.g=Scb(Twd(a));break;case 2:a.g=bdb(Uwd(a));break;case 3:a.g=Vwd(a);break;case 4:a.g=new Ndb(Wwd(a));break;case 6:a.g=Aeb(Ywd(a));break;case 5:a.g=meb(Xwd(a));break;case 7:a.g=Web(Zwd(a));}}return a.g} +function hxd(a){if(a.n==null){switch(a.p){case 0:a.n=_wd(a)?(Bcb(),Acb):(Bcb(),zcb);break;case 1:a.n=Scb(axd(a));break;case 2:a.n=bdb(bxd(a));break;case 3:a.n=cxd(a);break;case 4:a.n=new Ndb(dxd(a));break;case 6:a.n=Aeb(fxd(a));break;case 5:a.n=meb(exd(a));break;case 7:a.n=Web(gxd(a));}}return a.n} +function QDb(a){var b,c,d,e,f,g,h;for(f=new olb(a.a.a);f.a<f.c.c.length;){d=BD(mlb(f),307);d.g=0;d.i=0;d.e.a.$b()}for(e=new olb(a.a.a);e.a<e.c.c.length;){d=BD(mlb(e),307);for(c=d.a.a.ec().Kc();c.Ob();){b=BD(c.Pb(),57);for(h=b.c.Kc();h.Ob();){g=BD(h.Pb(),57);if(g.a!=d){Qqb(d.e,g);++g.a.g;++g.a.i}}}}} +function gOb(a,b){var c,d,e,f,g,h;h=Axb(a.a,b.b);if(!h){throw vbb(new Zdb('Invalid hitboxes for scanline overlap calculation.'))}g=false;for(f=(d=new Ywb((new cxb((new Gjb(a.a.a)).a)).b),new Njb(d));sib(f.a.a);){e=(c=Wwb(f.a),BD(c.cd(),65));if(bOb(b.b,e)){T$c(a.b.a,b.b,e);g=true}else{if(g){break}}}} +function G5b(a){var b,c,d,e,f;e=BD(vNb(a,(Nyc(),Fxc)),21);f=BD(vNb(a,Ixc),21);c=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);b=new g7c(c);if(e.Hc((tdd(),pdd))){d=BD(vNb(a,Hxc),8);if(f.Hc((Idd(),Bdd))){d.a<=0&&(d.a=20);d.b<=0&&(d.b=20)}b.a=$wnd.Math.max(c.a,d.a);b.b=$wnd.Math.max(c.b,d.b)}H5b(a,c,b)} +function toc(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b?new Coc:new Eoc;f=false;do{f=false;j=b?Su(a.b):a.b;for(i=j.Kc();i.Ob();){h=BD(i.Pb(),29);m=Mu(h.a);b||new ov(m);for(l=new olb(m);l.a<l.c.c.length;){k=BD(mlb(l),10);if(e.Mb(k)){d=k;c=BD(vNb(k,(wtc(),usc)),305);g=b?c.b:c.k;f=roc(d,g,b,false)}}}}while(f)} +function WCc(a,b,c){var d,e,f,g,h;Odd(c,'Longest path layering',1);a.a=b;h=a.a.a;a.b=KC(WD,oje,25,h.c.length,15,1);d=0;for(g=new olb(h);g.a<g.c.c.length;){e=BD(mlb(g),10);e.p=d;a.b[d]=-1;++d}for(f=new olb(h);f.a<f.c.c.length;){e=BD(mlb(f),10);YCc(a,e)}h.c=KC(SI,Uhe,1,0,5,1);a.a=null;a.b=null;Qdd(c)} +function QVb(a,b){var c,d,e;b.a?(Axb(a.b,b.b),a.a[b.b.i]=BD(Exb(a.b,b.b),81),c=BD(Dxb(a.b,b.b),81),!!c&&(a.a[c.i]=b.b),undefined):(d=BD(Exb(a.b,b.b),81),!!d&&d==a.a[b.b.i]&&!!d.d&&d.d!=b.b.d&&d.f.Fc(b.b),e=BD(Dxb(a.b,b.b),81),!!e&&a.a[e.i]==b.b&&!!e.d&&e.d!=b.b.d&&b.b.f.Fc(e),Fxb(a.b,b.b),undefined)} +function zbc(a,b){var c,d,e,f,g,h;f=a.d;h=Edb(ED(vNb(a,(Nyc(),Zwc))));if(h<0){h=0;yNb(a,Zwc,h)}b.o.b=h;g=$wnd.Math.floor(h/2);d=new H0b;G0b(d,(Ucd(),Tcd));F0b(d,b);d.n.b=g;e=new H0b;G0b(e,zcd);F0b(e,b);e.n.b=g;RZb(a,d);c=new UZb;tNb(c,a);yNb(c,jxc,null);QZb(c,e);RZb(c,f);ybc(b,a,c);wbc(a,c);return c} +function uNc(a){var b,c;c=BD(vNb(a,(wtc(),Ksc)),21);b=new j3c;if(c.Hc((Orc(),Irc))){d3c(b,oNc);d3c(b,qNc)}if(c.Hc(Krc)||Ccb(DD(vNb(a,(Nyc(),$wc))))){d3c(b,qNc);c.Hc(Lrc)&&d3c(b,rNc)}c.Hc(Hrc)&&d3c(b,nNc);c.Hc(Nrc)&&d3c(b,sNc);c.Hc(Jrc)&&d3c(b,pNc);c.Hc(Erc)&&d3c(b,lNc);c.Hc(Grc)&&d3c(b,mNc);return b} +function Ihb(a,b){var c,d,e,f,g,h,i,j,k,l,m;d=a.d;f=b.d;h=d+f;i=a.e!=b.e?-1:1;if(h==2){k=Ibb(xbb(a.a[0],Yje),xbb(b.a[0],Yje));m=Tbb(k);l=Tbb(Pbb(k,32));return l==0?new Ugb(i,m):new Vgb(i,2,OC(GC(WD,1),oje,25,15,[m,l]))}c=a.a;e=b.a;g=KC(WD,oje,25,h,15,1);Fhb(c,d,e,f,g);j=new Vgb(i,h,g);Jgb(j);return j} +function Gwb(a,b,c,d){var e,f;if(!b){return c}else{e=a.a.ue(c.d,b.d);if(e==0){d.d=ijb(b,c.e);d.b=true;return b}f=e<0?0:1;b.a[f]=Gwb(a,b.a[f],c,d);if(Hwb(b.a[f])){if(Hwb(b.a[1-f])){b.b=true;b.a[0].b=false;b.a[1].b=false}else{Hwb(b.a[f].a[f])?(b=Owb(b,1-f)):Hwb(b.a[f].a[1-f])&&(b=Nwb(b,1-f))}}}return b} +function wHb(a,b,c){var d,e,f,g;e=a.i;d=a.n;vHb(a,(gHb(),dHb),e.c+d.b,c);vHb(a,fHb,e.c+e.b-d.c-c[2],c);g=e.b-d.b-d.c;if(c[0]>0){c[0]+=a.d;g-=c[0]}if(c[2]>0){c[2]+=a.d;g-=c[2]}f=$wnd.Math.max(0,g);c[1]=$wnd.Math.max(c[1],g);vHb(a,eHb,e.c+d.b+c[0]-(c[1]-g)/2,c);if(b==eHb){a.c.b=f;a.c.c=e.c+d.b+(f-g)/2}} +function AYb(){this.c=KC(UD,Vje,25,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,15,1);this.b=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);this.a=KC(UD,Vje,25,OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]).length,15,1);zlb(this.c,Pje);zlb(this.b,Qje);zlb(this.a,Qje)} +function Ufe(a,b,c){var d,e,f,g;if(b<=c){e=b;f=c}else{e=c;f=b}d=0;if(a.b==null){a.b=KC(WD,oje,25,2,15,1);a.b[0]=e;a.b[1]=f;a.c=true}else{d=a.b.length;if(a.b[d-1]+1==e){a.b[d-1]=f;return}g=KC(WD,oje,25,d+2,15,1);$fb(a.b,0,g,0,d);a.b=g;a.b[d-1]>=e&&(a.c=false,a.a=false);a.b[d++]=e;a.b[d]=f;a.c||Yfe(a)}} +function inc(a,b,c){var d,e,f,g,h,i,j;j=b.d;a.a=new Skb(j.c.length);a.c=new Lqb;for(h=new olb(j);h.a<h.c.c.length;){g=BD(mlb(h),101);f=new uOc(null);Ekb(a.a,f);Rhb(a.c,g,f)}a.b=new Lqb;gnc(a,b);for(d=0;d<j.c.length-1;d++){i=BD(Ikb(b.d,d),101);for(e=d+1;e<j.c.length;e++){jnc(a,i,BD(Ikb(b.d,e),101),c)}}} +function ySc(a,b,c){var d,e,f,g,h,i;if(!Qq(b)){i=Udd(c,(JD(b,14)?BD(b,14).gc():sr(b.Kc()))/a.a|0);Odd(i,Xqe,1);h=new BSc;g=0;for(f=b.Kc();f.Ob();){d=BD(f.Pb(),86);h=pl(OC(GC(KI,1),Uhe,20,0,[h,new ZRc(d)]));g<d.f.b&&(g=d.f.b)}for(e=b.Kc();e.Ob();){d=BD(e.Pb(),86);yNb(d,(mTc(),bTc),g)}Qdd(i);ySc(a,h,c)}} +function bJc(a,b){var c,d,e,f,g,h,i;c=Qje;h=(j0b(),h0b);for(e=new olb(b.a);e.a<e.c.c.length;){d=BD(mlb(e),10);f=d.k;if(f!=h0b){g=ED(vNb(d,(wtc(),atc)));if(g==null){c=$wnd.Math.max(c,0);d.n.b=c+iBc(a.a,f,h)}else{d.n.b=(uCb(g),g)}}i=iBc(a.a,f,h);d.n.b<c+i+d.d.d&&(d.n.b=c+i+d.d.d);c=d.n.b+d.o.b+d.d.a;h=f}} +function uQb(a,b,c){var d,e,f,g,h,i,j,k,l;f=itd(b,false,false);j=ofd(f);l=Edb(ED(hkd(b,(CPb(),vPb))));e=sQb(j,l+a.a);k=new XOb(e);tNb(k,b);Rhb(a.b,b,k);c.c[c.c.length]=k;i=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(h=new Fyd(i);h.e!=h.i.gc();){g=BD(Dyd(h),137);d=wQb(a,g,true,0,0);c.c[c.c.length]=d}return k} +function JVc(a,b,c,d,e){var f,g,h,i,j,k;!!a.d&&a.d.lg(e);f=BD(e.Xb(0),33);if(HVc(a,c,f,false)){return true}g=BD(e.Xb(e.gc()-1),33);if(HVc(a,d,g,true)){return true}if(CVc(a,e)){return true}for(k=e.Kc();k.Ob();){j=BD(k.Pb(),33);for(i=b.Kc();i.Ob();){h=BD(i.Pb(),33);if(BVc(a,j,h)){return true}}}return false} +function qid(a,b,c){var d,e,f,g,h,i,j,k,l,m;m=b.c.length;l=(j=a.Yg(c),BD(j>=0?a._g(j,false,true):sid(a,c,false),58));n:for(f=l.Kc();f.Ob();){e=BD(f.Pb(),56);for(k=0;k<m;++k){g=(tCb(k,b.c.length),BD(b.c[k],72));i=g.dd();h=g.ak();d=e.bh(h,false);if(i==null?d!=null:!pb(i,d)){continue n}}return e}return null} +function V6b(a,b,c,d){var e,f,g,h;e=BD(Y_b(b,(Ucd(),Tcd)).Kc().Pb(),11);f=BD(Y_b(b,zcd).Kc().Pb(),11);for(h=new olb(a.j);h.a<h.c.c.length;){g=BD(mlb(h),11);while(g.e.c.length!=0){RZb(BD(Ikb(g.e,0),17),e)}while(g.g.c.length!=0){QZb(BD(Ikb(g.g,0),17),f)}}c||yNb(b,(wtc(),Vsc),null);d||yNb(b,(wtc(),Wsc),null)} +function itd(a,b,c){var d,e;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){return etd(a)}else{d=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);if(b){Uxd((!d.a&&(d.a=new xMd(y2,d,5)),d.a));omd(d,0);pmd(d,0);hmd(d,0);imd(d,0)}if(c){e=(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a);while(e.i>1){Xxd(e,e.i-1)}}return d}} +function Z2b(a,b){var c,d,e,f,g,h,i;Odd(b,'Comment post-processing',1);for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);d=new Rkb;for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);i=BD(vNb(g,(wtc(),vtc)),15);c=BD(vNb(g,tsc),15);if(!!i||!!c){$2b(g,i,c);!!i&&Gkb(d,i);!!c&&Gkb(d,c)}}Gkb(e.a,d)}Qdd(b)} +function Eac(a,b){var c,d,e,f,g,h,i;c=new jkb;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);i=true;d=0;for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);switch(g.k.g){case 4:++d;case 1:Xjb(c,g);break;case 0:Gac(g,b);default:c.b==c.c||Fac(c,d,i,false,b);i=false;d=0;}}c.b==c.c||Fac(c,d,i,true,b)}} +function Ebc(a,b){var c,d,e,f,g,h,i;e=new Rkb;for(c=0;c<=a.i;c++){d=new H1b(b);d.p=a.i-c;e.c[e.c.length]=d}for(h=new olb(a.o);h.a<h.c.c.length;){g=BD(mlb(h),10);$_b(g,BD(Ikb(e,a.i-a.f[g.p]),29))}f=new olb(e);while(f.a<f.c.c.length){i=BD(mlb(f),29);i.a.c.length==0&&nlb(f)}b.b.c=KC(SI,Uhe,1,0,5,1);Gkb(b.b,e)} +function KHc(a,b){var c,d,e,f,g,h;c=0;for(h=new olb(b);h.a<h.c.c.length;){g=BD(mlb(h),11);AHc(a.b,a.d[g.p]);for(e=new b1b(g.b);llb(e.a)||llb(e.b);){d=BD(llb(e.a)?mlb(e.a):mlb(e.b),17);f=aIc(a,g==d.c?d.d:d.c);if(f>a.d[g.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function o2c(a,b,c){var d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i==0||(f+=o2c(a,d,false))}if(c){g=Xod(b);while(g){f+=(!g.a&&(g.a=new cUd(E2,g,10,11)),g.a).i;g=Xod(g)}}return f} +function Xxd(a,b){var c,d,e,f;if(a.ej()){d=null;e=a.fj();a.ij()&&(d=a.kj(a.pi(b),null));c=a.Zi(4,f=tud(a,b),null,b,e);if(a.bj()&&f!=null){d=a.dj(f,d);if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}else{if(!d){a.$i(c)}else{d.Ei(c);d.Fi()}}return f}else{f=tud(a,b);if(a.bj()&&f!=null){d=a.dj(f,null);!!d&&d.Fi()}return f}} +function UKb(a){var b,c,d,e,f,g,h,i,j,k;j=a.a;b=new Tqb;i=0;for(d=new olb(a.d);d.a<d.c.c.length;){c=BD(mlb(d),222);k=0;ktb(c.b,new XKb);for(g=Jsb(c.b,0);g.b!=g.d.c;){f=BD(Xsb(g),222);if(b.a._b(f)){e=c.c;h=f.c;k<h.d+h.a+j&&k+e.a+j>h.d&&(k=h.d+h.a+j)}}c.c.d=k;b.a.zc(c,b);i=$wnd.Math.max(i,c.c.d+c.c.a)}return i} +function Orc(){Orc=ccb;Frc=new Prc('COMMENTS',0);Hrc=new Prc('EXTERNAL_PORTS',1);Irc=new Prc('HYPEREDGES',2);Jrc=new Prc('HYPERNODES',3);Krc=new Prc('NON_FREE_PORTS',4);Lrc=new Prc('NORTH_SOUTH_PORTS',5);Nrc=new Prc(Wne,6);Erc=new Prc('CENTER_LABELS',7);Grc=new Prc('END_LABELS',8);Mrc=new Prc('PARTITIONS',9)} +function gVc(a){var b,c,d,e,f;e=new Rkb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(d=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){f=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));b.a._b(f)||(e.c[e.c.length]=f,true)}}return e} +function fVc(a){var b,c,d,e,f,g;f=new Tqb;b=new Vqb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));for(e=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!JD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),186)){g=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));b.a._b(g)||(c=f.a.zc(g,f),c==null)}}return f} +function zA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function BA(a,b,c,d,e){if(d<0){d=oA(a,e,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje]),b);d<0&&(d=oA(a,e,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec']),b));if(d<0){return false}c.k=d;return true}else if(d>0){c.k=d-1;return true}return false} +function DA(a,b,c,d,e,f){var g,h,i,j;h=32;if(d<0){if(b[0]>=a.length){return false}h=bfb(a,b[0]);if(h!=43&&h!=45){return false}++b[0];d=rA(a,b);if(d<0){return false}h==45&&(d=-d)}if(h==32&&b[0]-c==2&&e.b==2){i=new eB;j=i.q.getFullYear()-nje+nje-80;g=j%100;f.a=d==g;d+=(j/100|0)*100+(d<g?100:0)}f.p=d;return true} +function L1b(a,b){var c,d,e,f,g;if(!Xod(a)){return}g=BD(vNb(b,(Nyc(),Fxc)),174);PD(hkd(a,Vxc))===PD((dcd(),ccd))&&jkd(a,Vxc,bcd);d=(Pgd(),new bhd(Xod(a)));f=new hhd(!Xod(a)?null:new bhd(Xod(a)),a);e=PGb(d,f,false,true);rqb(g,(tdd(),pdd));c=BD(vNb(b,Hxc),8);c.a=$wnd.Math.max(e.a,c.a);c.b=$wnd.Math.max(e.b,c.b)} +function Pac(a,b,c){var d,e,f,g,h,i;for(g=BD(vNb(a,(wtc(),Lsc)),15).Kc();g.Ob();){f=BD(g.Pb(),10);switch(BD(vNb(f,(Nyc(),mxc)),163).g){case 2:$_b(f,b);break;case 4:$_b(f,c);}for(e=new Sr(ur(O_b(f).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(!!d.c&&!!d.d){continue}h=!d.d;i=BD(vNb(d,ctc),11);h?RZb(d,i):QZb(d,i)}}} +function Alc(){Alc=ccb;tlc=new Blc(xle,0,(Ucd(),Acd),Acd);wlc=new Blc(zle,1,Rcd,Rcd);slc=new Blc(yle,2,zcd,zcd);zlc=new Blc(Ale,3,Tcd,Tcd);vlc=new Blc('NORTH_WEST_CORNER',4,Tcd,Acd);ulc=new Blc('NORTH_EAST_CORNER',5,Acd,zcd);ylc=new Blc('SOUTH_WEST_CORNER',6,Rcd,Tcd);xlc=new Blc('SOUTH_EAST_CORNER',7,zcd,Rcd)} +function i6c(){i6c=ccb;h6c=OC(GC(XD,1),Sje,25,14,[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368000,{l:3506176,m:794077,h:1},{l:884736,m:916411,h:20},{l:3342336,m:3912489,h:363},{l:589824,m:3034138,h:6914},{l:3407872,m:1962506,h:138294}]);$wnd.Math.pow(2,-65)} +function Pcc(a,b){var c,d,e,f,g;if(a.c.length==0){return new vgd(meb(0),meb(0))}c=(tCb(0,a.c.length),BD(a.c[0],11)).j;g=0;f=b.g;d=b.g+1;while(g<a.c.length-1&&c.g<f){++g;c=(tCb(g,a.c.length),BD(a.c[g],11)).j}e=g;while(e<a.c.length-1&&c.g<d){++e;c=(tCb(g,a.c.length),BD(a.c[g],11)).j}return new vgd(meb(g),meb(e))} +function R9b(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=b.c.length;g=(tCb(c,b.c.length),BD(b.c[c],286));h=g.a.o.a;l=g.c;m=0;for(j=g.c;j<=g.f;j++){if(h<=a.a[j]){return j}k=a.a[j];i=null;for(e=c+1;e<f;e++){d=(tCb(e,b.c.length),BD(b.c[e],286));d.c<=j&&d.f>=j&&(i=d)}!!i&&(k=$wnd.Math.max(k,i.a.o.a));if(k>m){l=j;m=k}}return l} +function ode(a,b,c){var d,e,f;a.e=c;a.d=0;a.b=0;a.f=1;a.i=b;(a.e&16)==16&&(a.i=Xee(a.i));a.j=a.i.length;nde(a);f=rde(a);if(a.d!=a.j)throw vbb(new mde(tvd((h0d(),sue))));if(a.g){for(d=0;d<a.g.a.c.length;d++){e=BD(Uvb(a.g,d),584);if(a.f<=e.a)throw vbb(new mde(tvd((h0d(),tue))))}a.g.a.c=KC(SI,Uhe,1,0,5,1)}return f} +function _Pd(a,b){var c,d,e;if(b==null){for(d=(!a.a&&(a.a=new cUd(g5,a,9,5)),new Fyd(a.a));d.e!=d.i.gc();){c=BD(Dyd(d),678);e=c.c;if((e==null?c.zb:e)==null){return c}}}else{for(d=(!a.a&&(a.a=new cUd(g5,a,9,5)),new Fyd(a.a));d.e!=d.i.gc();){c=BD(Dyd(d),678);if(dfb(b,(e=c.c,e==null?c.zb:e))){return c}}}return null} +function KIb(a,b){var c;c=null;switch(b.g){case 1:a.e.Xe((Y9c(),o9c))&&(c=BD(a.e.We(o9c),249));break;case 3:a.e.Xe((Y9c(),p9c))&&(c=BD(a.e.We(p9c),249));break;case 2:a.e.Xe((Y9c(),n9c))&&(c=BD(a.e.We(n9c),249));break;case 4:a.e.Xe((Y9c(),q9c))&&(c=BD(a.e.We(q9c),249));}!c&&(c=BD(a.e.We((Y9c(),l9c)),249));return c} +function OCc(a,b,c){var d,e,f,g,h,i,j,k,l;b.p=1;f=b.c;for(l=W_b(b,(KAc(),IAc)).Kc();l.Ob();){k=BD(l.Pb(),11);for(e=new olb(k.g);e.a<e.c.c.length;){d=BD(mlb(e),17);j=d.d.i;if(b!=j){g=j.c;if(g.p<=f.p){h=f.p+1;if(h==c.b.c.length){i=new H1b(c);i.p=h;Ekb(c.b,i);$_b(j,i)}else{i=BD(Ikb(c.b,h),29);$_b(j,i)}OCc(a,j,c)}}}}} +function ZXc(a,b,c){var d,e,f,g,h,i;e=c;f=0;for(h=new olb(b);h.a<h.c.c.length;){g=BD(mlb(h),33);jkd(g,(ZWc(),SWc),meb(e++));i=gVc(g);d=$wnd.Math.atan2(g.j+g.f/2,g.i+g.g/2);d+=d<0?dre:0;d<0.7853981633974483||d>vre?Okb(i,a.b):d<=vre&&d>wre?Okb(i,a.d):d<=wre&&d>xre?Okb(i,a.c):d<=xre&&Okb(i,a.a);f=ZXc(a,i,f)}return e} +function Hgb(){Hgb=ccb;var a;Cgb=new Ugb(1,1);Egb=new Ugb(1,10);Ggb=new Ugb(0,0);Bgb=new Ugb(-1,1);Dgb=OC(GC(cJ,1),nie,91,0,[Ggb,Cgb,new Ugb(1,2),new Ugb(1,3),new Ugb(1,4),new Ugb(1,5),new Ugb(1,6),new Ugb(1,7),new Ugb(1,8),new Ugb(1,9),Egb]);Fgb=KC(cJ,nie,91,32,0,1);for(a=0;a<Fgb.length;a++){Fgb[a]=ghb(Nbb(1,a))}} +function B9b(a,b,c,d,e,f){var g,h,i,j;h=!WAb(JAb(a.Oc(),new Xxb(new F9b))).sd((EAb(),DAb));g=a;f==(ead(),dad)&&(g=JD(g,152)?km(BD(g,152)):JD(g,131)?BD(g,131).a:JD(g,54)?new ov(g):new dv(g));for(j=g.Kc();j.Ob();){i=BD(j.Pb(),70);i.n.a=b.a;h?(i.n.b=b.b+(d.b-i.o.b)/2):e?(i.n.b=b.b):(i.n.b=b.b+d.b-i.o.b);b.a+=i.o.a+c}} +function UOc(a,b,c,d){var e,f,g,h,i,j;e=(d.c+d.a)/2;Osb(b.j);Dsb(b.j,e);Osb(c.e);Dsb(c.e,e);j=new aPc;for(h=new olb(a.f);h.a<h.c.c.length;){f=BD(mlb(h),129);i=f.a;WOc(j,b,i);WOc(j,c,i)}for(g=new olb(a.k);g.a<g.c.c.length;){f=BD(mlb(g),129);i=f.b;WOc(j,b,i);WOc(j,c,i)}j.b+=2;j.a+=POc(b,a.q);j.a+=POc(a.q,c);return j} +function FSc(a,b,c){var d,e,f,g,h;if(!Qq(b)){h=Udd(c,(JD(b,14)?BD(b,14).gc():sr(b.Kc()))/a.a|0);Odd(h,Xqe,1);g=new ISc;f=null;for(e=b.Kc();e.Ob();){d=BD(e.Pb(),86);g=pl(OC(GC(KI,1),Uhe,20,0,[g,new ZRc(d)]));if(f){yNb(f,(mTc(),hTc),d);yNb(d,_Sc,f);if(VRc(d)==VRc(f)){yNb(f,iTc,d);yNb(d,aTc,f)}}f=d}Qdd(h);FSc(a,g,c)}} +function VHb(a){var b,c,d,e,f,g,h;c=a.i;b=a.n;h=c.d;a.f==(EIb(),CIb)?(h+=(c.a-a.e.b)/2):a.f==BIb&&(h+=c.a-a.e.b);for(e=new olb(a.d);e.a<e.c.c.length;){d=BD(mlb(e),181);g=d.rf();f=new d7c;f.b=h;h+=g.b+a.a;switch(a.b.g){case 0:f.a=c.c+b.b;break;case 1:f.a=c.c+b.b+(c.b-g.a)/2;break;case 2:f.a=c.c+c.b-b.c-g.a;}d.tf(f)}} +function XHb(a){var b,c,d,e,f,g,h;c=a.i;b=a.n;h=c.c;a.b==(NHb(),KHb)?(h+=(c.b-a.e.a)/2):a.b==MHb&&(h+=c.b-a.e.a);for(e=new olb(a.d);e.a<e.c.c.length;){d=BD(mlb(e),181);g=d.rf();f=new d7c;f.a=h;h+=g.a+a.a;switch(a.f.g){case 0:f.b=c.d+b.d;break;case 1:f.b=c.d+b.d+(c.a-g.b)/2;break;case 2:f.b=c.d+c.a-b.a-g.b;}d.tf(f)}} +function D4b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;k=c.a.c;g=c.a.c+c.a.b;f=BD(Ohb(c.c,b),459);n=f.f;o=f.a;i=new f7c(k,n);l=new f7c(g,o);e=k;c.p||(e+=a.c);e+=c.F+c.v*a.b;j=new f7c(e,n);m=new f7c(e,o);n7c(b.a,OC(GC(m1,1),nie,8,0,[i,j]));h=c.d.a.gc()>1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function jdd(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Rse),'ELK Randomizer'),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new mdd)));p4c(a,Rse,ame,fdd);p4c(a,Rse,wme,15);p4c(a,Rse,yme,meb(0));p4c(a,Rse,_le,tme)} +function hde(){hde=ccb;var a,b,c,d,e,f;fde=KC(SD,wte,25,255,15,1);gde=KC(TD,$ie,25,16,15,1);for(b=0;b<255;b++){fde[b]=-1}for(c=57;c>=48;c--){fde[c]=c-48<<24>>24}for(d=70;d>=65;d--){fde[d]=d-65+10<<24>>24}for(e=102;e>=97;e--){fde[e]=e-97+10<<24>>24}for(f=0;f<10;f++)gde[f]=48+f&aje;for(a=10;a<=15;a++)gde[a]=65+a-10&aje} +function BVc(a,b,c){var d,e,f,g,h,i,j,k;h=b.i-a.g/2;i=c.i-a.g/2;j=b.j-a.g/2;k=c.j-a.g/2;f=b.g+a.g/2;g=c.g+a.g/2;d=b.f+a.g/2;e=c.f+a.g/2;if(h<i+g&&i<h&&j<k+e&&k<j){return true}else if(i<h+f&&h<i&&k<j+d&&j<k){return true}else if(h<i+g&&i<h&&j<k&&k<j+d){return true}else if(i<h+f&&h<i&&j<k+e&&k<j){return true}return false} +function NTb(a){var b,c,d,e,f;e=BD(vNb(a,(Nyc(),Fxc)),21);f=BD(vNb(a,Ixc),21);c=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);b=new g7c(c);if(e.Hc((tdd(),pdd))){d=BD(vNb(a,Hxc),8);if(f.Hc((Idd(),Bdd))){d.a<=0&&(d.a=20);d.b<=0&&(d.b=20)}b.a=$wnd.Math.max(c.a,d.a);b.b=$wnd.Math.max(c.b,d.b)}Ccb(DD(vNb(a,Gxc)))||OTb(a,c,b)} +function NJc(a,b){var c,d,e,f;for(f=V_b(b,(Ucd(),Rcd)).Kc();f.Ob();){d=BD(f.Pb(),11);c=BD(vNb(d,(wtc(),gtc)),10);!!c&&AFb(DFb(CFb(EFb(BFb(new FFb,0),0.1),a.i[b.p].d),a.i[c.p].a))}for(e=V_b(b,Acd).Kc();e.Ob();){d=BD(e.Pb(),11);c=BD(vNb(d,(wtc(),gtc)),10);!!c&&AFb(DFb(CFb(EFb(BFb(new FFb,0),0.1),a.i[c.p].d),a.i[b.p].a))}} +function QKd(a){var b,c,d,e,f,g;if(!a.c){g=new wNd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(VKd(a));d.e!=d.i.gc();){c=BD(Dyd(d),87);e=KQd(c);JD(e,88)&&ytd(g,QKd(BD(e,26)));wtd(g,c)}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}tNd(g);vud(g);a.c=new nNd((BD(qud(ZKd((NFd(),MFd).o),15),18),g.i),g.g);$Kd(a).b&=-33}return a.c} +function eee(a){var b;if(a.c!=10)throw vbb(new mde(tvd((h0d(),uue))));b=a.a;switch(b){case 110:b=10;break;case 114:b=13;break;case 116:b=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw vbb(new mde(tvd((h0d(),Yue))));}return b} +function qD(a){var b,c,d,e,f;if(a.l==0&&a.m==0&&a.h==0){return '0'}if(a.h==Gje&&a.m==0&&a.l==0){return '-9223372036854775808'}if(a.h>>19!=0){return '-'+qD(hD(a))}c=a;d='';while(!(c.l==0&&c.m==0&&c.h==0)){e=RC(Jje);c=UC(c,e,true);b=''+pD(QC);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;f--){b='0'+b}}d=b+d}return d} +function xrb(){if(!Object.create||!Object.getOwnPropertyNames){return false}var a='__proto__';var b=Object.create(null);if(b[a]!==undefined){return false}var c=Object.getOwnPropertyNames(b);if(c.length!=0){return false}b[a]=42;if(b[a]!==42){return false}if(Object.getOwnPropertyNames(b).length==0){return false}return true} +function Pgc(a){var b,c,d,e,f,g,h;b=false;c=0;for(e=new olb(a.d.b);e.a<e.c.c.length;){d=BD(mlb(e),29);d.p=c++;for(g=new olb(d.a);g.a<g.c.c.length;){f=BD(mlb(g),10);!b&&!Qq(O_b(f))&&(b=true)}}h=qqb((ead(),cad),OC(GC(t1,1),Kie,103,0,[aad,bad]));if(!b){rqb(h,dad);rqb(h,_9c)}a.a=new mDb(h);Uhb(a.f);Uhb(a.b);Uhb(a.e);Uhb(a.g)} +function _Xb(a,b,c){var d,e,f,g,h,i,j,k,l;d=c.c;e=c.d;h=A0b(b.c);i=A0b(b.d);if(d==b.c){h=aYb(a,h,e);i=bYb(b.d)}else{h=bYb(b.c);i=aYb(a,i,e)}j=new t7c(b.a);Gsb(j,h,j.a,j.a.a);Gsb(j,i,j.c.b,j.c);g=b.c==d;l=new BYb;for(f=0;f<j.b-1;++f){k=new vgd(BD(Ut(j,f),8),BD(Ut(j,f+1),8));g&&f==0||!g&&f==j.b-2?(l.b=k):Ekb(l.a,k)}return l} +function O$b(a,b){var c,d,e,f;f=a.j.g-b.j.g;if(f!=0){return f}c=BD(vNb(a,(Nyc(),Wxc)),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} +function G6b(a,b,c,d){var e,f,g,h,i;if(sr((D6b(),new Sr(ur(O_b(b).a.Kc(),new Sq))))>=a.a){return -1}if(!F6b(b,c)){return -1}if(Qq(BD(d.Kb(b),20))){return 1}e=0;for(g=BD(d.Kb(b),20).Kc();g.Ob();){f=BD(g.Pb(),17);i=f.c.i==b?f.d.i:f.c.i;h=G6b(a,i,c,d);if(h==-1){return -1}e=$wnd.Math.max(e,h);if(e>a.c-1){return -1}}return e+1} +function Btd(a,b){var c,d,e,f,g,h;if(PD(b)===PD(a)){return true}if(!JD(b,15)){return false}d=BD(b,15);h=a.gc();if(d.gc()!=h){return false}g=d.Kc();if(a.ni()){for(c=0;c<h;++c){e=a.ki(c);f=g.Pb();if(e==null?f!=null:!pb(e,f)){return false}}}else{for(c=0;c<h;++c){e=a.ki(c);f=g.Pb();if(PD(e)!==PD(f)){return false}}}return true} +function rAd(a,b){var c,d,e,f,g,h;if(a.f>0){a.qj();if(b!=null){for(f=0;f<a.d.length;++f){c=a.d[f];if(c){d=BD(c.g,367);h=c.i;for(g=0;g<h;++g){e=d[g];if(pb(b,e.dd())){return true}}}}}else{for(f=0;f<a.d.length;++f){c=a.d[f];if(c){d=BD(c.g,367);h=c.i;for(g=0;g<h;++g){e=d[g];if(PD(b)===PD(e.dd())){return true}}}}}}return false} +function e6b(a,b,c){var d,e,f,g;Odd(c,'Orthogonally routing hierarchical port edges',1);a.a=0;d=h6b(b);k6b(b,d);j6b(a,b,d);f6b(b);e=BD(vNb(b,(Nyc(),Vxc)),98);f=b.b;d6b((tCb(0,f.c.length),BD(f.c[0],29)),e,b);d6b(BD(Ikb(f,f.c.length-1),29),e,b);g=b.b;b6b((tCb(0,g.c.length),BD(g.c[0],29)));b6b(BD(Ikb(g,g.c.length-1),29));Qdd(c)} +function jnd(a){switch(a){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:{return a-48<<24>>24}case 97:case 98:case 99:case 100:case 101:case 102:{return a-97+10<<24>>24}case 65:case 66:case 67:case 68:case 69:case 70:{return a-65+10<<24>>24}default:{throw vbb(new Oeb('Invalid hexadecimal'))}}} +function AUc(a,b,c){var d,e,f,g;Odd(c,'Processor order nodes',2);a.a=Edb(ED(vNb(b,(JTc(),HTc))));e=new Psb;for(g=Jsb(b.b,0);g.b!=g.d.c;){f=BD(Xsb(g),86);Ccb(DD(vNb(f,(mTc(),jTc))))&&(Gsb(e,f,e.c.b,e.c),true)}d=(sCb(e.b!=0),BD(e.a.a.c,86));yUc(a,d);!c.b&&Rdd(c,1);BUc(a,d,0-Edb(ED(vNb(d,(mTc(),bTc))))/2,0);!c.b&&Rdd(c,1);Qdd(c)} +function rFb(){rFb=ccb;qFb=new sFb('SPIRAL',0);lFb=new sFb('LINE_BY_LINE',1);mFb=new sFb('MANHATTAN',2);kFb=new sFb('JITTER',3);oFb=new sFb('QUADRANTS_LINE_BY_LINE',4);pFb=new sFb('QUADRANTS_MANHATTAN',5);nFb=new sFb('QUADRANTS_JITTER',6);jFb=new sFb('COMBINE_LINE_BY_LINE_MANHATTAN',7);iFb=new sFb('COMBINE_JITTER_MANHATTAN',8)} +function roc(a,b,c,d){var e,f,g,h,i,j;i=woc(a,c);j=woc(b,c);e=false;while(!!i&&!!j){if(d||uoc(i,j,c)){g=woc(i,c);h=woc(j,c);zoc(b);zoc(a);f=i.c;sbc(i,false);sbc(j,false);if(c){Z_b(b,j.p,f);b.p=j.p;Z_b(a,i.p+1,f);a.p=i.p}else{Z_b(a,i.p,f);a.p=i.p;Z_b(b,j.p+1,f);b.p=j.p}$_b(i,null);$_b(j,null);i=g;j=h;e=true}else{break}}return e} +function VDc(a,b,c,d){var e,f,g,h,i;e=false;f=false;for(h=new olb(d.j);h.a<h.c.c.length;){g=BD(mlb(h),11);PD(vNb(g,(wtc(),$sc)))===PD(c)&&(g.g.c.length==0?g.e.c.length==0||(e=true):(f=true))}i=0;e&&e^f?(i=c.j==(Ucd(),Acd)?-a.e[d.c.p][d.p]:b-a.e[d.c.p][d.p]):f&&e^f?(i=a.e[d.c.p][d.p]+1):e&&f&&(i=c.j==(Ucd(),Acd)?0:b/2);return i} +function NEd(a,b,c,d,e,f,g,h){var i,j,k;i=0;b!=null&&(i^=LCb(b.toLowerCase()));c!=null&&(i^=LCb(c));d!=null&&(i^=LCb(d));g!=null&&(i^=LCb(g));h!=null&&(i^=LCb(h));for(j=0,k=f.length;j<k;j++){i^=LCb(f[j])}a?(i|=256):(i&=-257);e?(i|=16):(i&=-17);this.f=i;this.i=b==null?null:(uCb(b),b);this.a=c;this.d=d;this.j=f;this.g=g;this.e=h} +function X_b(a,b,c){var d,e;e=null;switch(b.g){case 1:e=(z0b(),u0b);break;case 2:e=(z0b(),w0b);}d=null;switch(c.g){case 1:d=(z0b(),v0b);break;case 2:d=(z0b(),t0b);break;case 3:d=(z0b(),x0b);break;case 4:d=(z0b(),y0b);}return !!e&&!!d?Nq(a.j,new Yb(new amb(OC(GC(_D,1),Uhe,169,0,[BD(Qb(e),169),BD(Qb(d),169)])))):(mmb(),mmb(),jmb)} +function t5b(a){var b,c,d;b=BD(vNb(a,(Nyc(),Hxc)),8);yNb(a,Hxc,new f7c(b.b,b.a));switch(BD(vNb(a,mwc),248).g){case 1:yNb(a,mwc,(F7c(),E7c));break;case 2:yNb(a,mwc,(F7c(),A7c));break;case 3:yNb(a,mwc,(F7c(),C7c));break;case 4:yNb(a,mwc,(F7c(),D7c));}if((!a.q?(mmb(),mmb(),kmb):a.q)._b(ayc)){c=BD(vNb(a,ayc),8);d=c.a;c.a=c.b;c.b=d}} +function jjc(a,b,c,d,e,f){this.b=c;this.d=e;if(a>=b.length){throw vbb(new qcb('Greedy SwitchDecider: Free layer not in graph.'))}this.c=b[a];this.e=new dIc(d);THc(this.e,this.c,(Ucd(),Tcd));this.i=new dIc(d);THc(this.i,this.c,zcd);this.f=new ejc(this.c);this.a=!f&&e.i&&!e.s&&this.c[0].k==(j0b(),e0b);this.a&&hjc(this,a,b.length)} +function hKb(a,b){var c,d,e,f,g,h;f=!a.B.Hc((Idd(),zdd));g=a.B.Hc(Cdd);a.a=new FHb(g,f,a.c);!!a.n&&u_b(a.a.n,a.n);lIb(a.g,(gHb(),eHb),a.a);if(!b){d=new mIb(1,f,a.c);d.n.a=a.k;Npb(a.p,(Ucd(),Acd),d);e=new mIb(1,f,a.c);e.n.d=a.k;Npb(a.p,Rcd,e);h=new mIb(0,f,a.c);h.n.c=a.k;Npb(a.p,Tcd,h);c=new mIb(0,f,a.c);c.n.b=a.k;Npb(a.p,zcd,c)}} +function Vgc(a){var b,c,d;b=BD(vNb(a.d,(Nyc(),Swc)),218);switch(b.g){case 2:c=Ngc(a);break;case 3:c=(d=new Rkb,MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Shc),new Uhc),new Whc),new ehc),new Yhc(d)),d);break;default:throw vbb(new Zdb('Compaction not supported for '+b+' edges.'));}Ugc(a,c);reb(new Pib(a.g),new Ehc(a))} +function a2c(a,b){var c;c=new zNb;!!b&&tNb(c,BD(Ohb(a.a,C2),94));JD(b,470)&&tNb(c,BD(Ohb(a.a,G2),94));if(JD(b,354)){tNb(c,BD(Ohb(a.a,D2),94));return c}JD(b,82)&&tNb(c,BD(Ohb(a.a,z2),94));if(JD(b,239)){tNb(c,BD(Ohb(a.a,E2),94));return c}if(JD(b,186)){tNb(c,BD(Ohb(a.a,F2),94));return c}JD(b,352)&&tNb(c,BD(Ohb(a.a,B2),94));return c} +function wSb(){wSb=ccb;oSb=new Osd((Y9c(),D9c),meb(1));uSb=new Osd(T9c,80);tSb=new Osd(M9c,5);bSb=new Osd(r8c,tme);pSb=new Osd(E9c,meb(1));sSb=new Osd(H9c,(Bcb(),true));lSb=new q0b(50);kSb=new Osd(f9c,lSb);dSb=O8c;mSb=t9c;cSb=new Osd(B8c,false);jSb=e9c;iSb=b9c;hSb=Y8c;gSb=W8c;nSb=x9c;fSb=(SRb(),LRb);vSb=QRb;eSb=KRb;qSb=NRb;rSb=PRb} +function ZXb(a){var b,c,d,e,f,g,h,i;i=new jYb;for(h=new olb(a.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(g.k==(j0b(),e0b)){continue}XXb(i,g,new d7c);for(f=new Sr(ur(U_b(g).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(e.c.i.k==e0b||e.d.i.k==e0b){continue}for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);b=c;hYb(i,new cWb(b.a,b.b))}}}return i} +function A0c(){A0c=ccb;z0c=new Lsd(Qre);y0c=(R0c(),Q0c);x0c=new Nsd(Vre,y0c);w0c=(a1c(),_0c);v0c=new Nsd(Rre,w0c);u0c=(N_c(),J_c);t0c=new Nsd(Sre,u0c);p0c=new Nsd(Tre,null);s0c=(C_c(),A_c);r0c=new Nsd(Ure,s0c);l0c=(i_c(),h_c);k0c=new Nsd(Wre,l0c);m0c=new Nsd(Xre,(Bcb(),false));n0c=new Nsd(Yre,meb(64));o0c=new Nsd(Zre,true);q0c=B_c} +function Toc(a){var b,c,d,e,f,g;if(a.a!=null){return}a.a=KC(sbb,dle,25,a.c.b.c.length,16,1);a.a[0]=false;if(wNb(a.c,(Nyc(),Lyc))){d=BD(vNb(a.c,Lyc),15);for(c=d.Kc();c.Ob();){b=BD(c.Pb(),19).a;b>0&&b<a.a.length&&(a.a[b]=false)}}else{g=new olb(a.c.b);g.a<g.c.c.length&&mlb(g);e=1;while(g.a<g.c.c.length){f=BD(mlb(g),29);a.a[e++]=Woc(f)}}} +function TMd(a,b){var c,d,e,f;e=a.b;switch(b){case 1:{a.b|=1;a.b|=4;a.b|=8;break}case 2:{a.b|=2;a.b|=4;a.b|=8;break}case 4:{a.b|=1;a.b|=2;a.b|=4;a.b|=8;break}case 3:{a.b|=16;a.b|=8;break}case 0:{a.b|=32;a.b|=16;a.b|=8;a.b|=1;a.b|=2;a.b|=4;break}}if(a.b!=e&&!!a.c){for(d=new Fyd(a.c);d.e!=d.i.gc();){f=BD(Dyd(d),473);c=$Kd(f);XMd(c,b)}}} +function cGc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;e=false;for(g=b,h=0,i=g.length;h<i;++h){f=g[h];Ccb((Bcb(),f.e?true:false))&&!BD(Ikb(a.b,f.e.p),214).s&&(e=e|(j=f.e,k=BD(Ikb(a.b,j.p),214),l=k.e,m=SFc(c,l.length),n=l[m][0],n.k==(j0b(),e0b)?(l[m]=aGc(f,l[m],c?(Ucd(),Tcd):(Ucd(),zcd))):k.c.Tf(l,c),o=dGc(a,k,c,d),bGc(k.e,k.o,c),o))}return e} +function p2c(a,b){var c,d,e,f,g;f=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);if(PD(hkd(d,(Y9c(),J8c)))!==PD((hbd(),gbd))){g=BD(hkd(b,F9c),149);c=BD(hkd(d,F9c),149);(g==c||!!g&&C3c(g,c))&&(!d.a&&(d.a=new cUd(E2,d,10,11)),d.a).i!=0&&(f+=p2c(a,d))}}return f} +function nlc(a){var b,c,d,e,f,g,h;d=0;h=0;for(g=new olb(a.d);g.a<g.c.c.length;){f=BD(mlb(g),101);e=BD(GAb(JAb(new YAb(null,new Kub(f.j,16)),new Ylc),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);c=null;if(d<=h){c=(Ucd(),Acd);d+=e.gc()}else if(h<d){c=(Ucd(),Rcd);h+=e.gc()}b=c;MAb(NAb(e.Oc(),new Mlc),new Olc(b))}} +function mkc(a){var b,c,d,e,f,g,h,i;a.b=new _i(new amb((Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]))),new amb((Fkc(),OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc]))));for(g=OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]),h=0,i=g.length;h<i;++h){f=g[h];for(c=OC(GC(vV,1),Kie,361,0,[Ekc,Dkc,Ckc]),d=0,e=c.length;d<e;++d){b=c[d];Ui(a.b,f,b,new Rkb)}}} +function KJb(a,b){var c,d,e,f,g,h,i,j,k,l;g=BD(BD(Qc(a.r,b),21),84);h=a.u.Hc((rcd(),pcd));c=a.u.Hc(mcd);d=a.u.Hc(lcd);j=a.u.Hc(qcd);l=a.B.Hc((Idd(),Hdd));k=!c&&!d&&(j||g.gc()==2);HJb(a,b);e=null;i=null;if(h){f=g.Kc();e=BD(f.Pb(),111);i=e;while(f.Ob()){i=BD(f.Pb(),111)}e.d.b=0;i.d.c=0;k&&!e.a&&(e.d.c=0)}if(l){LJb(g);if(h){e.d.b=0;i.d.c=0}}} +function SKb(a,b){var c,d,e,f,g,h,i,j,k,l;g=BD(BD(Qc(a.r,b),21),84);h=a.u.Hc((rcd(),pcd));c=a.u.Hc(mcd);d=a.u.Hc(lcd);i=a.u.Hc(qcd);l=a.B.Hc((Idd(),Hdd));j=!c&&!d&&(i||g.gc()==2);QKb(a,b);k=null;e=null;if(h){f=g.Kc();k=BD(f.Pb(),111);e=k;while(f.Ob()){e=BD(f.Pb(),111)}k.d.d=0;e.d.a=0;j&&!k.a&&(k.d.a=0)}if(l){TKb(g);if(h){k.d.d=0;e.d.a=0}}} +function oJc(a,b,c){var d,e,f,g,h,i,j,k;e=b.k;if(b.p>=0){return false}else{b.p=c.b;Ekb(c.e,b)}if(e==(j0b(),g0b)||e==i0b){for(g=new olb(b.j);g.a<g.c.c.length;){f=BD(mlb(g),11);for(k=(d=new olb((new R0b(f)).a.g),new U0b(d));llb(k.a);){j=BD(mlb(k.a),17).d;h=j.i;i=h.k;if(b.c!=h.c){if(i==g0b||i==i0b){if(oJc(a,h,c)){return true}}}}}}return true} +function gJd(a){var b;if((a.Db&64)!=0)return EId(a);b=new Jfb(EId(a));b.a+=' (changeable: ';Ffb(b,(a.Bb&zte)!=0);b.a+=', volatile: ';Ffb(b,(a.Bb&Dve)!=0);b.a+=', transient: ';Ffb(b,(a.Bb&Rje)!=0);b.a+=', defaultValueLiteral: ';Efb(b,a.j);b.a+=', unsettable: ';Ffb(b,(a.Bb&Cve)!=0);b.a+=', derived: ';Ffb(b,(a.Bb&oie)!=0);b.a+=')';return b.a} +function AOb(a){var b,c,d,e,f,g,h,i,j,k,l,m;e=eNb(a.d);g=BD(vNb(a.b,(CPb(),wPb)),116);h=g.b+g.c;i=g.d+g.a;k=e.d.a*a.e+h;j=e.b.a*a.f+i;$Ob(a.b,new f7c(k,j));for(m=new olb(a.g);m.a<m.c.c.length;){l=BD(mlb(m),562);b=l.g-e.a.a;c=l.i-e.c.a;d=P6c(Z6c(new f7c(b,c),l.a,l.b),Y6c(b7c(R6c(HOb(l.e)),l.d*l.a,l.c*l.b),-0.5));f=IOb(l.e);KOb(l.e,c7c(d,f))}} +function tmc(a,b,c,d){var e,f,g,h,i;i=KC(UD,nie,104,(Ucd(),OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd])).length,0,2);for(f=OC(GC(F1,1),bne,61,0,[Scd,Acd,zcd,Rcd,Tcd]),g=0,h=f.length;g<h;++g){e=f[g];i[e.g]=KC(UD,Vje,25,a.c[e.g],15,1)}vmc(i,a,Acd);vmc(i,a,Rcd);smc(i,a,Acd,b,c,d);smc(i,a,zcd,b,c,d);smc(i,a,Rcd,b,c,d);smc(i,a,Tcd,b,c,d);return i} +function UGc(a,b,c){if(Mhb(a.a,b)){if(Rqb(BD(Ohb(a.a,b),53),c)){return 1}}else{Rhb(a.a,b,new Tqb)}if(Mhb(a.a,c)){if(Rqb(BD(Ohb(a.a,c),53),b)){return -1}}else{Rhb(a.a,c,new Tqb)}if(Mhb(a.b,b)){if(Rqb(BD(Ohb(a.b,b),53),c)){return -1}}else{Rhb(a.b,b,new Tqb)}if(Mhb(a.b,c)){if(Rqb(BD(Ohb(a.b,c),53),b)){return 1}}else{Rhb(a.b,c,new Tqb)}return 0} +function x2d(a,b,c,d){var e,f,g,h,i,j;if(c==null){e=BD(a.g,119);for(h=0;h<a.i;++h){g=e[h];if(g.ak()==b){return Txd(a,g,d)}}}f=(Q6d(),BD(b,66).Oj()?BD(c,72):R6d(b,c));if(oid(a.e)){j=!R2d(a,b);d=Sxd(a,f,d);i=b.$j()?H2d(a,3,b,null,c,M2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0),j):H2d(a,1,b,b.zj(),c,-1,j);d?d.Ei(i):(d=i)}else{d=Sxd(a,f,d)}return d} +function CJb(a){var b,c,d,e,f,g;if(a.q==(dcd(),_bd)||a.q==$bd){return}e=a.f.n.d+_Gb(BD(Mpb(a.b,(Ucd(),Acd)),124))+a.c;b=a.f.n.a+_Gb(BD(Mpb(a.b,Rcd),124))+a.c;d=BD(Mpb(a.b,zcd),124);g=BD(Mpb(a.b,Tcd),124);f=$wnd.Math.max(0,d.n.d-e);f=$wnd.Math.max(f,g.n.d-e);c=$wnd.Math.max(0,d.n.a-b);c=$wnd.Math.max(c,g.n.a-b);d.n.d=f;g.n.d=f;d.n.a=c;g.n.a=c} +function rdc(a,b){var c,d,e,f,g,h,i,j,k,l,m;Odd(b,'Restoring reversed edges',1);for(i=new olb(a.b);i.a<i.c.c.length;){h=BD(mlb(i),29);for(k=new olb(h.a);k.a<k.c.c.length;){j=BD(mlb(k),10);for(m=new olb(j.j);m.a<m.c.c.length;){l=BD(mlb(m),11);g=k_b(l.g);for(d=g,e=0,f=d.length;e<f;++e){c=d[e];Ccb(DD(vNb(c,(wtc(),ltc))))&&PZb(c,false)}}}}Qdd(b)} +function m4c(){this.b=new $rb;this.d=new $rb;this.e=new $rb;this.c=new $rb;this.a=new Lqb;this.f=new Lqb;hvd(m1,new x4c,new z4c);hvd(l1,new V4c,new X4c);hvd(i1,new Z4c,new _4c);hvd(j1,new b5c,new d5c);hvd(i2,new f5c,new h5c);hvd(DJ,new B4c,new D4c);hvd(xK,new F4c,new H4c);hvd(jK,new J4c,new L4c);hvd(uK,new N4c,new P4c);hvd(kL,new R4c,new T4c)} +function R5d(a){var b,c,d,e,f,g;f=0;b=wId(a);!!b.Bj()&&(f|=4);(a.Bb&Cve)!=0&&(f|=2);if(JD(a,99)){c=BD(a,18);e=zUd(c);(c.Bb&ote)!=0&&(f|=32);if(e){aLd(WId(e));f|=8;g=e.t;(g>1||g==-1)&&(f|=16);(e.Bb&ote)!=0&&(f|=64)}(c.Bb&Tje)!=0&&(f|=Dve);f|=zte}else{if(JD(b,457)){f|=512}else{d=b.Bj();!!d&&(d.i&1)!=0&&(f|=256)}}(a.Bb&512)!=0&&(f|=128);return f} +function hc(a,b){var c,d,e,f,g;a=a==null?Xhe:(uCb(a),a);for(e=0;e<b.length;e++){b[e]=ic(b[e])}c=new Vfb;g=0;d=0;while(d<b.length){f=a.indexOf('%s',g);if(f==-1){break}c.a+=''+qfb(a==null?Xhe:(uCb(a),a),g,f);Pfb(c,b[d++]);g=f+2}Ofb(c,a,g,a.length);if(d<b.length){c.a+=' [';Pfb(c,b[d++]);while(d<b.length){c.a+=She;Pfb(c,b[d++])}c.a+=']'}return c.a} +function m3b(a){var b,c,d,e,f;f=new Skb(a.a.c.length);for(e=new olb(a.a);e.a<e.c.c.length;){d=BD(mlb(e),10);c=BD(vNb(d,(Nyc(),mxc)),163);b=null;switch(c.g){case 1:case 2:b=(Gqc(),Fqc);break;case 3:case 4:b=(Gqc(),Dqc);}if(b){yNb(d,(wtc(),Bsc),(Gqc(),Fqc));b==Dqc?o3b(d,c,(KAc(),HAc)):b==Fqc&&o3b(d,c,(KAc(),IAc))}else{f.c[f.c.length]=d}}return f} +function MHc(a,b){var c,d,e,f,g,h,i;c=0;for(i=new olb(b);i.a<i.c.c.length;){h=BD(mlb(i),11);AHc(a.b,a.d[h.p]);g=0;for(e=new b1b(h.b);llb(e.a)||llb(e.b);){d=BD(llb(e.a)?mlb(e.a):mlb(e.b),17);if(WHc(d)){f=aIc(a,h==d.c?d.d:d.c);if(f>a.d[h.p]){c+=zHc(a.b,f);Wjb(a.a,meb(f))}}else{++g}}c+=a.b.d*g;while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function Y6d(a,b){var c;if(a.f==W6d){c=$1d(q1d((O6d(),M6d),b));return a.e?c==4&&b!=(m8d(),k8d)&&b!=(m8d(),h8d)&&b!=(m8d(),i8d)&&b!=(m8d(),j8d):c==2}if(!!a.d&&(a.d.Hc(b)||a.d.Hc(_1d(q1d((O6d(),M6d),b)))||a.d.Hc(e1d((O6d(),M6d),a.b,b)))){return true}if(a.f){if(x1d((O6d(),a.f),b2d(q1d(M6d,b)))){c=$1d(q1d(M6d,b));return a.e?c==4:c==2}}return false} +function iVc(a,b,c,d){var e,f,g,h,i,j,k,l;g=BD(hkd(c,(Y9c(),C9c)),8);i=g.a;k=g.b+a;e=$wnd.Math.atan2(k,i);e<0&&(e+=dre);e+=b;e>dre&&(e-=dre);h=BD(hkd(d,C9c),8);j=h.a;l=h.b+a;f=$wnd.Math.atan2(l,j);f<0&&(f+=dre);f+=b;f>dre&&(f-=dre);return Iy(),My(1.0E-10),$wnd.Math.abs(e-f)<=1.0E-10||e==f||isNaN(e)&&isNaN(f)?0:e<f?-1:e>f?1:Ny(isNaN(e),isNaN(f))} +function YDb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a<d.c.c.length;){b=BD(mlb(d),57);Rhb(h,b,new Rkb)}for(e=new olb(a.a.b);e.a<e.c.c.length;){b=BD(mlb(e),57);b.i=Qje;for(g=b.c.Kc();g.Ob();){f=BD(g.Pb(),57);BD(Wd(irb(h.f,f)),15).Fc(b)}}for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);b.c.$b();b.c=BD(Wd(irb(h.f,b)),15)}QDb(a)} +function yVb(a){var b,c,d,e,f,g,h;h=new Lqb;for(d=new olb(a.a.b);d.a<d.c.c.length;){b=BD(mlb(d),81);Rhb(h,b,new Rkb)}for(e=new olb(a.a.b);e.a<e.c.c.length;){b=BD(mlb(e),81);b.o=Qje;for(g=b.f.Kc();g.Ob();){f=BD(g.Pb(),81);BD(Wd(irb(h.f,f)),15).Fc(b)}}for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);b.f.$b();b.f=BD(Wd(irb(h.f,b)),15)}rVb(a)} +function dNb(a,b,c,d){var e,f;cNb(a,b,c,d);qNb(b,a.j-b.j+c);rNb(b,a.k-b.k+d);for(f=new olb(b.f);f.a<f.c.c.length;){e=BD(mlb(f),324);switch(e.a.g){case 0:nNb(a,b.g+e.b.a,0,b.g+e.c.a,b.i-1);break;case 1:nNb(a,b.g+b.o,b.i+e.b.a,a.o-1,b.i+e.c.a);break;case 2:nNb(a,b.g+e.b.a,b.i+b.p,b.g+e.c.a,a.p-1);break;default:nNb(a,0,b.i+e.b.a,b.g-1,b.i+e.c.a);}}} +function aNb(b,c,d,e,f){var g,h,i;try{if(c>=b.o){throw vbb(new rcb)}i=c>>5;h=c&31;g=Nbb(1,Tbb(Nbb(h,1)));f?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)));g=Nbb(g,1);e?(b.n[d][i]=Mbb(b.n[d][i],g)):(b.n[d][i]=xbb(b.n[d][i],Lbb(g)))}catch(a){a=ubb(a);if(JD(a,320)){throw vbb(new qcb(Dle+b.o+'*'+b.p+Ele+c+She+d+Fle))}else throw vbb(a)}} +function BUc(a,b,c,d){var e,f,g;if(b){f=Edb(ED(vNb(b,(mTc(),fTc))))+d;g=c+Edb(ED(vNb(b,bTc)))/2;yNb(b,kTc,meb(Tbb(Cbb($wnd.Math.round(f)))));yNb(b,lTc,meb(Tbb(Cbb($wnd.Math.round(g)))));b.d.b==0||BUc(a,BD(pr((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86),c+Edb(ED(vNb(b,bTc)))+a.a,d+Edb(ED(vNb(b,cTc))));vNb(b,iTc)!=null&&BUc(a,BD(vNb(b,iTc),86),c,d)}} +function N9b(a,b){var c,d,e,f,g,h,i,j,k,l,m;i=Q_b(b.a);e=Edb(ED(vNb(i,(Nyc(),pyc))))*2;k=Edb(ED(vNb(i,wyc)));j=$wnd.Math.max(e,k);f=KC(UD,Vje,25,b.f-b.c+1,15,1);d=-j;c=0;for(h=b.b.Kc();h.Ob();){g=BD(h.Pb(),10);d+=a.a[g.c.p]+j;f[c++]=d}d+=a.a[b.a.c.p]+j;f[c++]=d;for(m=new olb(b.e);m.a<m.c.c.length;){l=BD(mlb(m),10);d+=a.a[l.c.p]+j;f[c++]=d}return f} +function GHc(a,b,c,d){var e,f,g,h,i,j,k,l,m;m=new Hxb(new pIc(a));for(h=OC(GC(OQ,1),kne,10,0,[b,c]),i=0,j=h.length;i<j;++i){g=h[i];for(l=CHc(g,d).Kc();l.Ob();){k=BD(l.Pb(),11);for(f=new b1b(k.b);llb(f.a)||llb(f.b);){e=BD(llb(f.a)?mlb(f.a):mlb(f.b),17);if(!OZb(e)){Iwb(m.a,k,(Bcb(),zcb))==null;WHc(e)&&Axb(m,k==e.c?e.d:e.c)}}}}return Qb(m),new Tkb(m)} +function zhd(a,b){var c,d,e,f;f=BD(hkd(a,(Y9c(),A9c)),61).g-BD(hkd(b,A9c),61).g;if(f!=0){return f}c=BD(hkd(a,v9c),19);d=BD(hkd(b,v9c),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}switch(BD(hkd(a,A9c),61).g){case 1:return Kdb(a.i,b.i);case 2:return Kdb(a.j,b.j);case 3:return Kdb(b.i,a.i);case 4:return Kdb(b.j,a.j);default:throw vbb(new Zdb(ine));}} +function _od(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(ete);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function opd(a){var b,c,d;if((a.Db&64)!=0)return fld(a);b=new Wfb(fte);c=a.k;if(!c){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){d=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!d||Qfb(Qfb((b.a+=' "',b),d),'"')}}else{Qfb(Qfb((b.a+=' "',b),c),'"')}Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a+=' (',b),a.i),','),a.j),' | '),a.g),','),a.f),')');return b.a} +function h4c(a,b){var c,d,e,f,g,h,i;if(b==null||b.length==0){return null}e=BD(Phb(a.a,b),149);if(!e){for(d=(h=(new $ib(a.b)).a.vc().Kc(),new djb(h));d.a.Ob();){c=(f=BD(d.a.Pb(),42),BD(f.dd(),149));g=c.c;i=b.length;if(dfb(g.substr(g.length-i,i),b)&&(b.length==g.length||bfb(g,g.length-b.length-1)==46)){if(e){return null}e=c}}!!e&&Shb(a.a,b,e)}return e} +function QLb(a,b){var c,d,e,f;c=new VLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();if(e<f){return -1}if(e==f){return 0}return 1} +function r5b(a){var b,c,d;if(!wNb(a,(Nyc(),xxc))){return}d=BD(vNb(a,xxc),21);if(d.dc()){return}c=(b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));d.Hc((Hbd(),Cbd))?rqb(c,Cbd):rqb(c,Dbd);d.Hc(Abd)||rqb(c,Abd);d.Hc(zbd)?rqb(c,Gbd):d.Hc(ybd)?rqb(c,Fbd):d.Hc(Bbd)&&rqb(c,Ebd);d.Hc(Gbd)?rqb(c,zbd):d.Hc(Fbd)?rqb(c,ybd):d.Hc(Ebd)&&rqb(c,Bbd);yNb(a,xxc,c)} +function kHc(a){var b,c,d,e,f,g,h;e=BD(vNb(a,(wtc(),Psc)),10);d=a.j;c=(tCb(0,d.c.length),BD(d.c[0],11));for(g=new olb(e.j);g.a<g.c.c.length;){f=BD(mlb(g),11);if(PD(f)===PD(vNb(c,$sc))){if(f.j==(Ucd(),Acd)&&a.p>e.p){G0b(f,Rcd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=h-b}}else if(f.j==Rcd&&e.p>a.p){G0b(f,Acd);if(f.d){h=f.o.b;b=f.a.b;f.a.b=-(h-b)}}break}}return e} +function NOc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;f=c;if(c<d){m=(n=new uOc(a.p),o=new uOc(a.p),ye(n.e,a.e),n.q=a.q,n.r=o,lOc(n),ye(o.j,a.j),o.r=n,lOc(o),new vgd(n,o));l=BD(m.a,112);k=BD(m.b,112);e=(tCb(f,b.c.length),BD(b.c[f],329));g=UOc(a,l,k,e);for(j=c+1;j<=d;j++){h=(tCb(j,b.c.length),BD(b.c[j],329));i=UOc(a,l,k,h);if(SOc(h,i,e,g)){e=h;g=i}}}return f} +function wQb(a,b,c,d,e){var f,g,h,i,j,k,l;if(!(JD(b,239)||JD(b,354)||JD(b,186))){throw vbb(new Wdb('Method only works for ElkNode-, ElkLabel and ElkPort-objects.'))}g=a.a/2;i=b.i+d-g;k=b.j+e-g;j=i+b.g+a.a;l=k+b.f+a.a;f=new s7c;Dsb(f,new f7c(i,k));Dsb(f,new f7c(i,l));Dsb(f,new f7c(j,l));Dsb(f,new f7c(j,k));h=new XOb(f);tNb(h,b);c&&Rhb(a.b,b,h);return h} +function uXb(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=new f7c(b,c);for(k=new olb(a.a);k.a<k.c.c.length;){j=BD(mlb(k),10);P6c(j.n,f);for(m=new olb(j.j);m.a<m.c.c.length;){l=BD(mlb(m),11);for(e=new olb(l.g);e.a<e.c.c.length;){d=BD(mlb(e),17);q7c(d.a,f);g=BD(vNb(d,(Nyc(),jxc)),74);!!g&&q7c(g,f);for(i=new olb(d.b);i.a<i.c.c.length;){h=BD(mlb(i),70);P6c(h.n,f)}}}}} +function g_b(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=new f7c(b,c);for(k=new olb(a.a);k.a<k.c.c.length;){j=BD(mlb(k),10);P6c(j.n,f);for(m=new olb(j.j);m.a<m.c.c.length;){l=BD(mlb(m),11);for(e=new olb(l.g);e.a<e.c.c.length;){d=BD(mlb(e),17);q7c(d.a,f);g=BD(vNb(d,(Nyc(),jxc)),74);!!g&&q7c(g,f);for(i=new olb(d.b);i.a<i.c.c.length;){h=BD(mlb(i),70);P6c(h.n,f)}}}}} +function N1b(a){if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i==0){throw vbb(new z2c('Edges must have a source.'))}else if((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i==0){throw vbb(new z2c('Edges must have a target.'))}else{!a.b&&(a.b=new y5d(z2,a,4,7));if(!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1))){throw vbb(new z2c('Hyperedges are not supported.'))}}} +function OFc(a,b){var c,d,e,f,g,h,i,j,k,l;l=0;f=new jkb;Wjb(f,b);while(f.b!=f.c){i=BD(fkb(f),214);j=0;k=BD(vNb(b.j,(Nyc(),ywc)),339);g=Edb(ED(vNb(b.j,uwc)));h=Edb(ED(vNb(b.j,vwc)));if(k!=(tAc(),rAc)){j+=g*PFc(i.e,k);j+=h*QFc(i.e)}l+=pHc(i.d,i.e)+j;for(e=new olb(i.b);e.a<e.c.c.length;){d=BD(mlb(e),37);c=BD(Ikb(a.b,d.p),214);c.s||(l+=NFc(a,c))}}return l} +function dhb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;n=b.length;i=n;BCb(0,b.length);if(b.charCodeAt(0)==45){l=-1;m=1;--n}else{l=1;m=0}f=(phb(),ohb)[10];e=n/f|0;q=n%f;q!=0&&++e;h=KC(WD,oje,25,e,15,1);c=nhb[8];g=0;o=m+(q==0?f:q);for(p=m;p<i;p=o,o=p+f){d=Icb(b.substr(p,o-p),Rie,Ohe);j=(Dhb(),Hhb(h,h,g,c));j+=xhb(h,g,d);h[g++]=j}k=g;a.e=l;a.d=k;a.a=h;Jgb(a)} +function SGb(a,b,c,d,e,f,g){a.c=d.qf().a;a.d=d.qf().b;if(e){a.c+=e.qf().a;a.d+=e.qf().b}a.b=b.rf().a;a.a=b.rf().b;if(!e){c?(a.c-=g+b.rf().a):(a.c+=d.rf().a+g)}else{switch(e.Hf().g){case 0:case 2:a.c+=e.rf().a+g+f.a+g;break;case 4:a.c-=g+f.a+g+b.rf().a;break;case 1:a.c+=e.rf().a+g;a.d-=g+f.b+g+b.rf().b;break;case 3:a.c+=e.rf().a+g;a.d+=e.rf().b+g+f.b+g;}}} +function gac(a,b){var c,d;this.b=new Rkb;this.e=new Rkb;this.a=a;this.d=b;dac(this);eac(this);this.b.dc()?(this.c=a.c.p):(this.c=BD(this.b.Xb(0),10).c.p);this.e.c.length==0?(this.f=a.c.p):(this.f=BD(Ikb(this.e,this.e.c.length-1),10).c.p);for(d=BD(vNb(a,(wtc(),ktc)),15).Kc();d.Ob();){c=BD(d.Pb(),70);if(wNb(c,(Nyc(),Owc))){this.d=BD(vNb(c,Owc),227);break}}} +function Anc(a,b,c){var d,e,f,g,h,i,j,k;d=BD(Ohb(a.a,b),53);f=BD(Ohb(a.a,c),53);e=BD(Ohb(a.e,b),53);g=BD(Ohb(a.e,c),53);d.a.zc(c,d);g.a.zc(b,g);for(k=f.a.ec().Kc();k.Ob();){j=BD(k.Pb(),10);d.a.zc(j,d);Qqb(BD(Ohb(a.e,j),53),b);ye(BD(Ohb(a.e,j),53),e)}for(i=e.a.ec().Kc();i.Ob();){h=BD(i.Pb(),10);g.a.zc(h,g);Qqb(BD(Ohb(a.a,h),53),c);ye(BD(Ohb(a.a,h),53),f)}} +function WGc(a,b,c){var d,e,f,g,h,i,j,k;d=BD(Ohb(a.a,b),53);f=BD(Ohb(a.a,c),53);e=BD(Ohb(a.b,b),53);g=BD(Ohb(a.b,c),53);d.a.zc(c,d);g.a.zc(b,g);for(k=f.a.ec().Kc();k.Ob();){j=BD(k.Pb(),10);d.a.zc(j,d);Qqb(BD(Ohb(a.b,j),53),b);ye(BD(Ohb(a.b,j),53),e)}for(i=e.a.ec().Kc();i.Ob();){h=BD(i.Pb(),10);g.a.zc(h,g);Qqb(BD(Ohb(a.a,h),53),c);ye(BD(Ohb(a.a,h),53),f)}} +function doc(a,b){var c,d,e;Odd(b,'Breaking Point Insertion',1);d=new Xoc(a);switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:e=new hpc;case 0:e=new Ync;break;default:e=new kpc;}c=e.Vf(a,d);Ccb(DD(vNb(a,Iyc)))&&(c=coc(a,c));if(!e.Wf()&&wNb(a,Myc)){switch(BD(vNb(a,Myc),338).g){case 2:c=tpc(d,c);break;case 1:c=rpc(d,c);}}if(c.dc()){Qdd(b);return}aoc(a,c);Qdd(b)} +function $qd(a,b,c){var d,e,f,g,h,i,j,k,l,m;k=null;m=b;l=Rqd(a,dtd(c),m);Lkd(l,_pd(m,Vte));g=Ypd(m,Lte);d=new mrd(a,l);oqd(d.a,d.b,g);h=Ypd(m,Mte);e=new nrd(a,l);pqd(e.a,e.b,h);if((!l.b&&(l.b=new y5d(z2,l,4,7)),l.b).i==0||(!l.c&&(l.c=new y5d(z2,l,5,8)),l.c).i==0){f=_pd(m,Vte);i=Zte+f;j=i+$te;throw vbb(new cqd(j))}grd(m,l);_qd(a,m,l);k=crd(a,m,l);return k} +function yGb(a,b){var c,d,e,f,g,h,i;e=KC(WD,oje,25,a.e.a.c.length,15,1);for(g=new olb(a.e.a);g.a<g.c.c.length;){f=BD(mlb(g),121);e[f.d]+=f.b.a.c.length}h=Ru(b);while(h.b!=0){f=BD(h.b==0?null:(sCb(h.b!=0),Nsb(h,h.a.a)),121);for(d=vr(new olb(f.g.a));d.Ob();){c=BD(d.Pb(),213);i=c.e;i.e=$wnd.Math.max(i.e,f.e+c.a);--e[i.d];e[i.d]==0&&(Gsb(h,i,h.c.b,h.c),true)}}} +function CGb(a){var b,c,d,e,f,g,h,i,j,k,l;c=Rie;e=Ohe;for(h=new olb(a.e.a);h.a<h.c.c.length;){f=BD(mlb(h),121);e=$wnd.Math.min(e,f.e);c=$wnd.Math.max(c,f.e)}b=KC(WD,oje,25,c-e+1,15,1);for(g=new olb(a.e.a);g.a<g.c.c.length;){f=BD(mlb(g),121);f.e-=e;++b[f.e]}d=0;if(a.k!=null){for(j=a.k,k=0,l=j.length;k<l;++k){i=j[k];b[d++]+=i;if(b.length==d){break}}}return b} +function ixd(a){switch(a.d){case 9:case 8:{return true}case 3:case 5:case 4:case 6:{return false}case 7:{return BD(hxd(a),19).a==a.o}case 1:case 2:{if(a.o==-2){return false}else{switch(a.p){case 0:case 1:case 2:case 6:case 5:case 7:{return Bbb(a.k,a.f)}case 3:case 4:{return a.j==a.e}default:{return a.n==null?a.g==null:pb(a.n,a.g)}}}}default:{return false}}} +function $ad(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Qse),'ELK Fixed'),'Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points.'),new bbd)));p4c(a,Qse,ame,Xad);p4c(a,Qse,uqe,Ksd(Yad));p4c(a,Qse,use,Ksd(Sad));p4c(a,Qse,Fme,Ksd(Tad));p4c(a,Qse,Tme,Ksd(Vad));p4c(a,Qse,bqe,Ksd(Uad))} +function ro(a,b,c){var d,e,f,g,h;d=Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)));h=Tbb(Ibb(Eie,keb(Tbb(Ibb(c==null?0:tb(c),Fie)),15)));f=uo(a,b,d);if(!!f&&h==f.f&&Hb(c,f.i)){return c}g=vo(a,c,h);if(g){throw vbb(new Wdb('value already present: '+c))}e=new $o(b,d,c,h);if(f){mo(a,f);po(a,e,f);f.e=null;f.c=null;return f.i}else{po(a,e,null);to(a);return null}} +function E4b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;k=c.a.c;g=c.a.c+c.a.b;f=BD(Ohb(c.c,b),459);n=f.f;o=f.a;f.b?(i=new f7c(g,n)):(i=new f7c(k,n));f.c?(l=new f7c(k,o)):(l=new f7c(g,o));e=k;c.p||(e+=a.c);e+=c.F+c.v*a.b;j=new f7c(e,n);m=new f7c(e,o);n7c(b.a,OC(GC(m1,1),nie,8,0,[i,j]));h=c.d.a.gc()>1;if(h){d=new f7c(e,c.b);Dsb(b.a,d)}n7c(b.a,OC(GC(m1,1),nie,8,0,[m,l]))} +function Nid(a,b,c){var d,e,f,g,h,i;if(!b){return null}else{if(c<=-1){d=XKd(b.Tg(),-1-c);if(JD(d,99)){return BD(d,18)}else{g=BD(b.ah(d),153);for(h=0,i=g.gc();h<i;++h){if(PD(g.jl(h))===PD(a)){e=g.il(h);if(JD(e,99)){f=BD(e,18);if((f.Bb&ote)!=0){return f}}}}throw vbb(new Zdb('The containment feature could not be located'))}}else{return zUd(BD(XKd(a.Tg(),c),18))}}} +function Xee(a){var b,c,d,e,f;d=a.length;b=new Ifb;f=0;while(f<d){c=bfb(a,f++);if(c==9||c==10||c==12||c==13||c==32)continue;if(c==35){while(f<d){c=bfb(a,f++);if(c==13||c==10)break}continue}if(c==92&&f<d){if((e=(BCb(f,a.length),a.charCodeAt(f)))==35||e==9||e==10||e==12||e==13||e==32){Afb(b,e&aje);++f}else{b.a+='\\';Afb(b,e&aje);++f}}else Afb(b,c&aje)}return b.a} +function GVc(a,b){var c,d,e;for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),33);Rc(a.a,c,c);Rc(a.b,c,c);e=gVc(c);if(e.c.length!=0){!!a.d&&a.d.lg(e);Rc(a.a,c,(tCb(0,e.c.length),BD(e.c[0],33)));Rc(a.b,c,BD(Ikb(e,e.c.length-1),33));while(dVc(e).c.length!=0){e=dVc(e);!!a.d&&a.d.lg(e);Rc(a.a,c,(tCb(0,e.c.length),BD(e.c[0],33)));Rc(a.b,c,BD(Ikb(e,e.c.length-1),33))}}}} +function fnc(a){var b,c,d,e,f,g,h,i,j,k;c=0;for(h=new olb(a.d);h.a<h.c.c.length;){g=BD(mlb(h),101);!!g.i&&(g.i.c=c++)}b=IC(sbb,[nie,dle],[177,25],16,[c,c],2);k=a.d;for(e=0;e<k.c.length;e++){i=(tCb(e,k.c.length),BD(k.c[e],101));if(i.i){for(f=e+1;f<k.c.length;f++){j=(tCb(f,k.c.length),BD(k.c[f],101));if(j.i){d=knc(i,j);b[i.i.c][j.i.c]=d;b[j.i.c][i.i.c]=d}}}}return b} +function ht(a,b,c,d){var e,f,g;g=new qu(b,c);if(!a.a){a.a=a.e=g;Rhb(a.b,b,new pu(g));++a.c}else if(!d){a.e.b=g;g.d=a.e;a.e=g;e=BD(Ohb(a.b,b),283);if(!e){Rhb(a.b,b,e=new pu(g));++a.c}else{++e.a;f=e.c;f.c=g;g.e=f;e.c=g}}else{e=BD(Ohb(a.b,b),283);++e.a;g.d=d.d;g.e=d.e;g.b=d;g.c=d;!d.e?(BD(Ohb(a.b,b),283).b=g):(d.e.c=g);!d.d?(a.a=g):(d.d.b=g);d.d=g;d.e=g}++a.d;return g} +function mfb(a,b){var c,d,e,f,g,h,i,j;c=new RegExp(b,'g');i=KC(ZI,nie,2,0,6,1);d=0;j=a;f=null;while(true){h=c.exec(j);if(h==null||j==''){i[d]=j;break}else{g=h.index;i[d]=j.substr(0,g);j=qfb(j,g+h[0].length,j.length);c.lastIndex=0;if(f==j){i[d]=j.substr(0,1);j=j.substr(1)}f=j;++d}}if(a.length>0){e=i.length;while(e>0&&i[e-1]==''){--e}e<i.length&&(i.length=e)}return i} +function f1d(a,b){var c,d,e,f,g,h,i,j,k,l;l=_Kd(b);j=null;e=false;for(h=0,k=VKd(l.a).i;h<k;++h){g=BD(nOd(l,h,(f=BD(qud(VKd(l.a),h),87),i=f.c,JD(i,88)?BD(i,26):(jGd(),_Fd))),26);c=f1d(a,g);if(!c.dc()){if(!j){j=c}else{if(!e){e=true;j=new pFd(j)}j.Gc(c)}}}d=k1d(a,b);if(d.dc()){return !j?(mmb(),mmb(),jmb):j}else{if(!j){return d}else{e||(j=new pFd(j));j.Gc(d);return j}}} +function g1d(a,b){var c,d,e,f,g,h,i,j,k,l;l=_Kd(b);j=null;d=false;for(h=0,k=VKd(l.a).i;h<k;++h){f=BD(nOd(l,h,(e=BD(qud(VKd(l.a),h),87),i=e.c,JD(i,88)?BD(i,26):(jGd(),_Fd))),26);c=g1d(a,f);if(!c.dc()){if(!j){j=c}else{if(!d){d=true;j=new pFd(j)}j.Gc(c)}}}g=n1d(a,b);if(g.dc()){return !j?(mmb(),mmb(),jmb):j}else{if(!j){return g}else{d||(j=new pFd(j));j.Gc(g);return j}}} +function B2d(a,b,c){var d,e,f,g,h,i;if(JD(b,72)){return Txd(a,b,c)}else{h=null;f=null;d=BD(a.g,119);for(g=0;g<a.i;++g){e=d[g];if(pb(b,e.dd())){f=e.ak();if(JD(f,99)&&(BD(f,18).Bb&ote)!=0){h=e;break}}}if(h){if(oid(a.e)){i=f.$j()?H2d(a,4,f,b,null,M2d(a,f,b,JD(f,99)&&(BD(f,18).Bb&Tje)!=0),true):H2d(a,f.Kj()?2:1,f,b,f.zj(),-1,true);c?c.Ei(i):(c=i)}c=B2d(a,h,c)}return c}} +function pKb(a){var b,c,d,e;d=a.o;$Jb();if(a.A.dc()||pb(a.A,ZJb)){e=d.a}else{e=gIb(a.f);if(a.A.Hc((tdd(),qdd))&&!a.B.Hc((Idd(),Edd))){e=$wnd.Math.max(e,gIb(BD(Mpb(a.p,(Ucd(),Acd)),244)));e=$wnd.Math.max(e,gIb(BD(Mpb(a.p,Rcd),244)))}b=aKb(a);!!b&&(e=$wnd.Math.max(e,b.a))}Ccb(DD(a.e.yf().We((Y9c(),$8c))))?(d.a=$wnd.Math.max(d.a,e)):(d.a=e);c=a.f.i;c.c=0;c.b=e;hIb(a.f)} +function $0d(a,b){var c,d,e,f,g,h,i,j,k;c=b.Hh(a.a);if(c){i=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),'memberTypes'));if(i!=null){j=new Rkb;for(f=mfb(i,'\\w'),g=0,h=f.length;g<h;++g){e=f[g];d=e.lastIndexOf('#');k=d==-1?w1d(a,b.Aj(),e):d==0?v1d(a,null,e.substr(1)):v1d(a,e.substr(0,d),e.substr(d+1));JD(k,148)&&Ekb(j,BD(k,148))}return j}}return mmb(),mmb(),jmb} +function tRb(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,kme,1);a.bf(b);f=0;while(a.df(f)){for(k=new olb(b.e);k.a<k.c.c.length;){i=BD(mlb(k),144);for(h=ul(pl(OC(GC(KI,1),Uhe,20,0,[b.e,b.d,b.b])));Qr(h);){g=BD(Rr(h),357);if(g!=i){e=a.af(g,i);!!e&&P6c(i.a,e)}}}for(j=new olb(b.e);j.a<j.c.c.length;){i=BD(mlb(j),144);d=i.a;Q6c(d,-a.d,-a.d,a.d,a.d);P6c(i.d,d);X6c(d)}a.cf();++f}Qdd(c)} +function $2d(a,b,c){var d,e,f,g;g=S6d(a.e.Tg(),b);d=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(f=0;f<a.i;++f){e=d[f];if(g.rl(e.ak())){if(pb(e,c)){Xxd(a,f);return true}}}}else if(c!=null){for(f=0;f<a.i;++f){e=d[f];if(g.rl(e.ak())){if(pb(c,e.dd())){Xxd(a,f);return true}}}}else{for(f=0;f<a.i;++f){e=d[f];if(g.rl(e.ak())){if(e.dd()==null){Xxd(a,f);return true}}}}return false} +function sDc(a,b){var c,d,e,f,g;a.c==null||a.c.length<b.c.length?(a.c=KC(sbb,dle,25,b.c.length,16,1)):Blb(a.c);a.a=new Rkb;d=0;for(g=new olb(b);g.a<g.c.c.length;){e=BD(mlb(g),10);e.p=d++}c=new Psb;for(f=new olb(b);f.a<f.c.c.length;){e=BD(mlb(f),10);if(!a.c[e.p]){tDc(a,e);c.b==0||(sCb(c.b!=0),BD(c.a.a.c,15)).gc()<a.a.c.length?Esb(c,a.a):Fsb(c,a.a);a.a=new Rkb}}return c} +function jYc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;g=BD(qud(b,0),33);dld(g,0);eld(g,0);m=new Rkb;m.c[m.c.length]=g;h=g;f=new d$c(a.a,g.g,g.f,(k$c(),j$c));for(n=1;n<b.i;n++){o=BD(qud(b,n),33);i=kYc(a,g$c,o,h,f,m,c);j=kYc(a,f$c,o,h,f,m,c);k=kYc(a,i$c,o,h,f,m,c);l=kYc(a,h$c,o,h,f,m,c);e=mYc(a,i,j,k,l,o,h,d);dld(o,e.d);eld(o,e.e);c$c(e,j$c);f=e;h=o;m.c[m.c.length]=o}return f} +function K0c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,ase),'ELK SPOrE Overlap Removal'),'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'),new N0c)));p4c(a,ase,Qre,Ksd(I0c));p4c(a,ase,ame,G0c);p4c(a,ase,wme,8);p4c(a,ase,Vre,Ksd(H0c));p4c(a,ase,Yre,Ksd(E0c));p4c(a,ase,Zre,Ksd(F0c));p4c(a,ase,Zpe,(Bcb(),false))} +function sXb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;g=O6c(b.c,c,d);for(l=new olb(b.a);l.a<l.c.c.length;){k=BD(mlb(l),10);P6c(k.n,g);for(n=new olb(k.j);n.a<n.c.c.length;){m=BD(mlb(n),11);for(f=new olb(m.g);f.a<f.c.c.length;){e=BD(mlb(f),17);q7c(e.a,g);h=BD(vNb(e,(Nyc(),jxc)),74);!!h&&q7c(h,g);for(j=new olb(e.b);j.a<j.c.c.length;){i=BD(mlb(j),70);P6c(i.n,g)}}}Ekb(a.a,k);k.a=a}} +function g9b(a,b){var c,d,e,f,g;Odd(b,'Node and Port Label Placement and Node Sizing',1);MGb((a$b(),new l$b(a,true,true,new j9b)));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))){f=BD(vNb(a,(Nyc(),Yxc)),21);e=f.Hc((rcd(),ocd));g=Ccb(DD(vNb(a,Zxc)));for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);MAb(JAb(new YAb(null,new Kub(c.a,16)),new l9b),new n9b(f,e,g))}}Qdd(b)} +function Y0d(a,b){var c,d,e,f,g,h;c=b.Hh(a.a);if(c){h=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),eue));if(h!=null){e=kfb(h,wfb(35));d=b.Hj();if(e==-1){g=u1d(a,bKd(d));f=h}else if(e==0){g=null;f=h.substr(1)}else{g=h.substr(0,e);f=h.substr(e+1)}switch($1d(q1d(a,b))){case 2:case 3:{return j1d(a,d,g,f)}case 0:case 4:case 5:case 6:{return m1d(a,d,g,f)}}}}return null} +function q2d(a,b,c){var d,e,f,g,h;g=(Q6d(),BD(b,66).Oj());if(T6d(a.e,b)){if(b.hi()&&F2d(a,b,c,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)){return false}}else{h=S6d(a.e.Tg(),b);d=BD(a.g,119);for(f=0;f<a.i;++f){e=d[f];if(h.rl(e.ak())){if(g?pb(e,c):c==null?e.dd()==null:pb(c,e.dd())){return false}else{BD(Gtd(a,f,g?BD(c,72):R6d(b,c)),72);return true}}}}return wtd(a,g?BD(c,72):R6d(b,c))} +function uVb(a){var b,c,d,e,f,g,h,i;if(a.d){throw vbb(new Zdb((fdb(LP),Jke+LP.k+Kke)))}a.c==(ead(),cad)&&tVb(a,aad);for(c=new olb(a.a.a);c.a<c.c.c.length;){b=BD(mlb(c),189);b.e=0}for(g=new olb(a.a.b);g.a<g.c.c.length;){f=BD(mlb(g),81);f.o=Qje;for(e=f.f.Kc();e.Ob();){d=BD(e.Pb(),81);++d.d.e}}JVb(a);for(i=new olb(a.a.b);i.a<i.c.c.length;){h=BD(mlb(i),81);h.k=true}return a} +function Ijc(a,b){var c,d,e,f,g,h,i,j;h=new pjc(a);c=new Psb;Gsb(c,b,c.c.b,c.c);while(c.b!=0){d=BD(c.b==0?null:(sCb(c.b!=0),Nsb(c,c.a.a)),113);d.d.p=1;for(g=new olb(d.e);g.a<g.c.c.length;){e=BD(mlb(g),409);kjc(h,e);j=e.d;j.d.p==0&&(Gsb(c,j,c.c.b,c.c),true)}for(f=new olb(d.b);f.a<f.c.c.length;){e=BD(mlb(f),409);kjc(h,e);i=e.c;i.d.p==0&&(Gsb(c,i,c.c.b,c.c),true)}}return h} +function hfd(a){var b,c,d,e,f;d=Edb(ED(hkd(a,(Y9c(),G9c))));if(d==1){return}_kd(a,d*a.g,d*a.f);c=Mq(Rq((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c),new Hfd));for(f=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!a.n&&(a.n=new cUd(D2,a,1,7)),a.n),(!a.c&&(a.c=new cUd(F2,a,9,9)),a.c),c])));Qr(f);){e=BD(Rr(f),470);e.Gg(d*e.Dg(),d*e.Eg());e.Fg(d*e.Cg(),d*e.Bg());b=BD(e.We(r9c),8);if(b){b.a*=d;b.b*=d}}} +function Mac(a,b,c,d,e){var f,g,h,i,j,k,l,m;for(g=new olb(a.b);g.a<g.c.c.length;){f=BD(mlb(g),29);m=l_b(f.a);for(j=m,k=0,l=j.length;k<l;++k){i=j[k];switch(BD(vNb(i,(Nyc(),mxc)),163).g){case 1:Qac(i);$_b(i,b);Nac(i,true,d);break;case 3:Rac(i);$_b(i,c);Nac(i,false,e);}}}h=new Bib(a.b,0);while(h.b<h.d.gc()){(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),29)).a.c.length==0&&uib(h)}} +function d1d(a,b){var c,d,e,f,g,h,i;c=b.Hh(a.a);if(c){i=GD(AAd((!c.b&&(c.b=new sId((jGd(),fGd),x6,c)),c.b),Dwe));if(i!=null){d=new Rkb;for(f=mfb(i,'\\w'),g=0,h=f.length;g<h;++g){e=f[g];dfb(e,'##other')?Ekb(d,'!##'+u1d(a,bKd(b.Hj()))):dfb(e,'##local')?(d.c[d.c.length]=null,true):dfb(e,Bwe)?Ekb(d,u1d(a,bKd(b.Hj()))):(d.c[d.c.length]=e,true)}return d}}return mmb(),mmb(),jmb} +function kMb(a,b){var c,d,e,f;c=new pMb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();e=e==1?1:0;f=f==1?1:0;if(e<f){return -1}if(e==f){return 0}return 1} +function hZb(a){var b,c,d,e,f,g,h,i,j,k,l,m;h=a.i;e=Ccb(DD(vNb(h,(Nyc(),fxc))));k=0;d=0;for(j=new olb(a.g);j.a<j.c.c.length;){i=BD(mlb(j),17);g=OZb(i);f=g&&e&&Ccb(DD(vNb(i,gxc)));m=i.d.i;g&&f?++d:g&&!f?++k:Q_b(m).e==h?++d:++k}for(c=new olb(a.e);c.a<c.c.c.length;){b=BD(mlb(c),17);g=OZb(b);f=g&&e&&Ccb(DD(vNb(b,gxc)));l=b.c.i;g&&f?++k:g&&!f?++d:Q_b(l).e==h?++k:++d}return k-d} +function ULc(a,b,c,d){this.e=a;this.k=BD(vNb(a,(wtc(),otc)),304);this.g=KC(OQ,kne,10,b,0,1);this.b=KC(BI,nie,333,b,7,1);this.a=KC(OQ,kne,10,b,0,1);this.d=KC(BI,nie,333,b,7,1);this.j=KC(OQ,kne,10,b,0,1);this.i=KC(BI,nie,333,b,7,1);this.p=KC(BI,nie,333,b,7,1);this.n=KC(wI,nie,476,b,8,1);Alb(this.n,(Bcb(),false));this.f=KC(wI,nie,476,b,8,1);Alb(this.f,true);this.o=c;this.c=d} +function X9b(a,b){var c,d,e,f,g,h;if(b.dc()){return}if(BD(b.Xb(0),286).d==(Apc(),xpc)){O9b(a,b)}else{for(d=b.Kc();d.Ob();){c=BD(d.Pb(),286);switch(c.d.g){case 5:K9b(a,c,Q9b(a,c));break;case 0:K9b(a,c,(g=c.f-c.c+1,h=(g-1)/2|0,c.c+h));break;case 4:K9b(a,c,S9b(a,c));break;case 2:Y9b(c);K9b(a,c,(f=U9b(c),f?c.c:c.f));break;case 1:Y9b(c);K9b(a,c,(e=U9b(c),e?c.f:c.c));}P9b(c.a)}}} +function C4b(a,b){var c,d,e,f,g,h,i;if(b.e){return}b.e=true;for(d=b.d.a.ec().Kc();d.Ob();){c=BD(d.Pb(),17);if(b.o&&b.d.a.gc()<=1){g=b.a.c;h=b.a.c+b.a.b;i=new f7c(g+(h-g)/2,b.b);Dsb(BD(b.d.a.ec().Kc().Pb(),17).a,i);continue}e=BD(Ohb(b.c,c),459);if(e.b||e.c){E4b(a,c,b);continue}f=a.d==(tBc(),sBc)&&(e.d||e.e)&&K4b(a,b)&&b.d.a.gc()<=1;f?F4b(c,b):D4b(a,c,b)}b.k&&reb(b.d,new X4b)} +function zXc(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t;m=f;h=(d+e)/2+m;q=c*$wnd.Math.cos(h);r=c*$wnd.Math.sin(h);s=q-b.g/2;t=r-b.f/2;dld(b,s);eld(b,t);l=a.a.jg(b);p=2*$wnd.Math.acos(c/c+a.c);if(p<e-d){n=p/l;g=(d+e-p)/2}else{n=(e-d)/l;g=d}o=gVc(b);if(a.e){a.e.kg(a.d);a.e.lg(o)}for(j=new olb(o);j.a<j.c.c.length;){i=BD(mlb(j),33);k=a.a.jg(i);zXc(a,i,c+a.c,g,g+n*k,f);g+=n*k}} +function jA(a,b,c){var d;d=c.q.getMonth();switch(b){case 5:Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[d]);break;case 4:Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[d]);break;case 3:Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[d]);break;default:EA(a,d+1,b);}} +function uGb(a,b){var c,d,e,f,g;Odd(b,'Network simplex',1);if(a.e.a.c.length<1){Qdd(b);return}for(f=new olb(a.e.a);f.a<f.c.c.length;){e=BD(mlb(f),121);e.e=0}g=a.e.a.c.length>=40;g&&FGb(a);wGb(a);vGb(a);c=zGb(a);d=0;while(!!c&&d<a.f){tGb(a,c,sGb(a,c));c=zGb(a);++d}g&&EGb(a);a.a?qGb(a,CGb(a)):CGb(a);a.b=null;a.d=null;a.p=null;a.c=null;a.g=null;a.i=null;a.n=null;a.o=null;Qdd(b)} +function JQb(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=new f7c(c,d);c7c(i,BD(vNb(b,(HSb(),ESb)),8));for(m=new olb(b.e);m.a<m.c.c.length;){l=BD(mlb(m),144);P6c(l.d,i);Ekb(a.e,l)}for(h=new olb(b.c);h.a<h.c.c.length;){g=BD(mlb(h),282);for(f=new olb(g.a);f.a<f.c.c.length;){e=BD(mlb(f),559);P6c(e.d,i)}Ekb(a.c,g)}for(k=new olb(b.d);k.a<k.c.c.length;){j=BD(mlb(k),447);P6c(j.d,i);Ekb(a.d,j)}} +function _Bc(a,b){var c,d,e,f,g,h,i,j;for(i=new olb(b.j);i.a<i.c.c.length;){h=BD(mlb(i),11);for(e=new b1b(h.b);llb(e.a)||llb(e.b);){d=BD(llb(e.a)?mlb(e.a):mlb(e.b),17);c=d.c==h?d.d:d.c;f=c.i;if(b==f){continue}j=BD(vNb(d,(Nyc(),cyc)),19).a;j<0&&(j=0);g=f.p;if(a.b[g]==0){if(d.d==c){a.a[g]-=j+1;a.a[g]<=0&&a.c[g]>0&&Dsb(a.f,f)}else{a.c[g]-=j+1;a.c[g]<=0&&a.a[g]>0&&Dsb(a.e,f)}}}}} +function _Kb(a){var b,c,d,e,f,g,h,i,j;h=new Hxb(BD(Qb(new nLb),62));j=Qje;for(c=new olb(a.d);c.a<c.c.c.length;){b=BD(mlb(c),222);j=b.c.c;while(h.a.c!=0){i=BD(zjb(Bwb(h.a)),222);if(i.c.c+i.c.b<j){Jwb(h.a,i)!=null}else{break}}for(g=(e=new Ywb((new cxb((new Gjb(h.a)).a)).b),new Njb(e));sib(g.a.a);){f=(d=Wwb(g.a),BD(d.cd(),222));Dsb(f.b,b);Dsb(b.b,f)}Iwb(h.a,b,(Bcb(),zcb))==null}} +function QEc(a,b,c){var d,e,f,g,h,i,j,k,l;f=new Skb(b.c.length);for(j=new olb(b);j.a<j.c.c.length;){g=BD(mlb(j),10);Ekb(f,a.b[g.c.p][g.p])}LEc(a,f,c);l=null;while(l=MEc(f)){NEc(a,BD(l.a,233),BD(l.b,233),f)}b.c=KC(SI,Uhe,1,0,5,1);for(e=new olb(f);e.a<e.c.c.length;){d=BD(mlb(e),233);for(h=d.d,i=0,k=h.length;i<k;++i){g=h[i];b.c[b.c.length]=g;a.a[g.c.p][g.p].a=REc(d.g,d.d[0]).a}}} +function JRc(a,b){var c,d,e,f;if(0<(JD(a,14)?BD(a,14).gc():sr(a.Kc()))){e=b;if(1<e){--e;f=new KRc;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),86);f=pl(OC(GC(KI,1),Uhe,20,0,[f,new ZRc(c)]))}return JRc(f,e)}if(e<0){f=new NRc;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),86);f=pl(OC(GC(KI,1),Uhe,20,0,[f,new ZRc(c)]))}if(0<(JD(f,14)?BD(f,14).gc():sr(f.Kc()))){return JRc(f,e)}}}return BD(pr(a.Kc()),86)} +function Idd(){Idd=ccb;Bdd=new Jdd('DEFAULT_MINIMUM_SIZE',0);Ddd=new Jdd('MINIMUM_SIZE_ACCOUNTS_FOR_PADDING',1);Add=new Jdd('COMPUTE_PADDING',2);Edd=new Jdd('OUTSIDE_NODE_LABELS_OVERHANG',3);Fdd=new Jdd('PORTS_OVERHANG',4);Hdd=new Jdd('UNIFORM_PORT_SPACING',5);Gdd=new Jdd('SPACE_EFFICIENT_PORT_LABELS',6);Cdd=new Jdd('FORCE_TABULAR_NODE_LABELS',7);zdd=new Jdd('ASYMMETRICAL',8)} +function s6d(a,b){var c,d,e,f,g,h,i,j;if(!b){return null}else{c=(f=b.Tg(),!f?null:bKd(f).Nh().Jh(f));if(c){Xrb(a,b,c);e=b.Tg();for(i=0,j=(e.i==null&&TKd(e),e.i).length;i<j;++i){h=(d=(e.i==null&&TKd(e),e.i),i>=0&&i<d.length?d[i]:null);if(h.Ij()&&!h.Jj()){if(JD(h,322)){u6d(a,BD(h,34),b,c)}else{g=BD(h,18);(g.Bb&ote)!=0&&w6d(a,g,b,c)}}}b.kh()&&BD(c,49).vh(BD(b,49).qh())}return c}} +function tGb(a,b,c){var d,e,f;if(!b.f){throw vbb(new Wdb('Given leave edge is no tree edge.'))}if(c.f){throw vbb(new Wdb('Given enter edge is a tree edge already.'))}b.f=false;Sqb(a.p,b);c.f=true;Qqb(a.p,c);d=c.e.e-c.d.e-c.a;xGb(a,c.e,b)||(d=-d);for(f=new olb(a.e.a);f.a<f.c.c.length;){e=BD(mlb(f),121);xGb(a,e,b)||(e.e+=d)}a.j=1;Blb(a.c);DGb(a,BD(mlb(new olb(a.e.a)),121));rGb(a)} +function x6b(a,b){var c,d,e,f,g,h;h=BD(vNb(b,(Nyc(),Vxc)),98);if(!(h==(dcd(),_bd)||h==$bd)){return}e=(new f7c(b.f.a+b.d.b+b.d.c,b.f.b+b.d.d+b.d.a)).b;for(g=new olb(a.a);g.a<g.c.c.length;){f=BD(mlb(g),10);if(f.k!=(j0b(),e0b)){continue}c=BD(vNb(f,(wtc(),Hsc)),61);if(c!=(Ucd(),zcd)&&c!=Tcd){continue}d=Edb(ED(vNb(f,htc)));h==_bd&&(d*=e);f.n.b=d-BD(vNb(f,Txc),8).b;M_b(f,false,true)}} +function YDc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;bEc(a,b,c);f=b[c];n=d?(Ucd(),Tcd):(Ucd(),zcd);if(ZDc(b.length,c,d)){e=b[d?c-1:c+1];UDc(a,e,d?(KAc(),IAc):(KAc(),HAc));for(i=f,k=0,m=i.length;k<m;++k){g=i[k];XDc(a,g,n)}UDc(a,f,d?(KAc(),HAc):(KAc(),IAc));for(h=e,j=0,l=h.length;j<l;++j){g=h[j];!!g.e||XDc(a,g,Wcd(n))}}else{for(h=f,j=0,l=h.length;j<l;++j){g=h[j];XDc(a,g,n)}}return false} +function nFc(a,b,c,d){var e,f,g,h,i,j,k;i=V_b(b,c);(c==(Ucd(),Rcd)||c==Tcd)&&(i=JD(i,152)?km(BD(i,152)):JD(i,131)?BD(i,131).a:JD(i,54)?new ov(i):new dv(i));g=false;do{e=false;for(f=0;f<i.gc()-1;f++){j=BD(i.Xb(f),11);h=BD(i.Xb(f+1),11);if(oFc(a,j,h,d)){g=true;cIc(a.a,BD(i.Xb(f),11),BD(i.Xb(f+1),11));k=BD(i.Xb(f+1),11);i._c(f+1,BD(i.Xb(f),11));i._c(f,k);e=true}}}while(e);return g} +function W2d(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(oid(a.e)){if(b!=c){e=BD(a.g,119);n=e[c];g=n.ak();if(T6d(a.e,g)){o=S6d(a.e.Tg(),g);i=-1;h=-1;d=0;for(j=0,l=b>c?b:c;j<=l;++j){if(j==c){h=d++}else{f=e[j];k=o.rl(f.ak());j==b&&(i=j==l&&!k?d-1:d);k&&++d}}m=BD(Wxd(a,b,c),72);h!=i&&GLd(a,new ESd(a.e,7,g,meb(h),n.dd(),i));return m}}}else{return BD(sud(a,b,c),72)}return BD(Wxd(a,b,c),72)} +function Qcc(a,b){var c,d,e,f,g,h,i;Odd(b,'Port order processing',1);i=BD(vNb(a,(Nyc(),_xc)),421);for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);g=BD(vNb(e,Vxc),98);h=e.j;if(g==(dcd(),Zbd)||g==_bd||g==$bd){mmb();Okb(h,Icc)}else if(g!=bcd&&g!=ccd){mmb();Okb(h,Lcc);Scc(h);i==(BAc(),AAc)&&Okb(h,Kcc)}e.i=true;N_b(e)}}Qdd(b)} +function vDc(a){var b,c,d,e,f,g,h,i;i=new Lqb;b=new KFb;for(g=a.Kc();g.Ob();){e=BD(g.Pb(),10);h=nGb(oGb(new pGb,e),b);jrb(i.f,e,h)}for(f=a.Kc();f.Ob();){e=BD(f.Pb(),10);for(d=new Sr(ur(U_b(e).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(OZb(c)){continue}AFb(DFb(CFb(BFb(EFb(new FFb,$wnd.Math.max(1,BD(vNb(c,(Nyc(),dyc)),19).a)),1),BD(Ohb(i,c.c.i),121)),BD(Ohb(i,c.d.i),121)))}}return b} +function tNc(){tNc=ccb;oNc=e3c(new j3c,(qUb(),oUb),(S8b(),k8b));qNc=e3c(new j3c,nUb,o8b);rNc=c3c(e3c(new j3c,nUb,C8b),pUb,B8b);nNc=c3c(e3c(e3c(new j3c,nUb,e8b),oUb,f8b),pUb,g8b);sNc=b3c(b3c(g3c(c3c(e3c(new j3c,lUb,M8b),pUb,L8b),oUb),K8b),N8b);pNc=c3c(new j3c,pUb,l8b);lNc=c3c(e3c(e3c(e3c(new j3c,mUb,r8b),oUb,t8b),oUb,u8b),pUb,s8b);mNc=c3c(e3c(e3c(new j3c,oUb,u8b),oUb,_7b),pUb,$7b)} +function XC(a,b,c,d,e,f){var g,h,i,j,k,l,m;j=$C(b)-$C(a);g=kD(b,j);i=TC(0,0,0);while(j>=0){h=bD(a,g);if(h){j<22?(i.l|=1<<j,undefined):j<44?(i.m|=1<<j-22,undefined):(i.h|=1<<j-44,undefined);if(a.l==0&&a.m==0&&a.h==0){break}}k=g.m;l=g.h;m=g.l;g.h=l>>>1;g.m=k>>>1|(l&1)<<21;g.l=m>>>1|(k&1)<<21;--j}c&&ZC(i);if(f){if(d){QC=hD(a);e&&(QC=nD(QC,(wD(),uD)))}else{QC=TC(a.l,a.m,a.h)}}return i} +function TDc(a,b){var c,d,e,f,g,h,i,j,k,l;j=a.e[b.c.p][b.p]+1;i=b.c.a.c.length+1;for(h=new olb(a.a);h.a<h.c.c.length;){g=BD(mlb(h),11);l=0;f=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(g),new R0b(g)])));Qr(e);){d=BD(Rr(e),11);if(d.i.c==b.c){l+=aEc(a,d.i)+1;++f}}c=l/f;k=g.j;k==(Ucd(),zcd)?c<j?(a.f[g.p]=a.c-c):(a.f[g.p]=a.b+(i-c)):k==Tcd&&(c<j?(a.f[g.p]=a.b+c):(a.f[g.p]=a.c-(i-c)))}} +function Icb(a,b,c){var d,e,f,g,h;if(a==null){throw vbb(new Oeb(Xhe))}f=a.length;g=f>0&&(BCb(0,a.length),a.charCodeAt(0)==45||(BCb(0,a.length),a.charCodeAt(0)==43))?1:0;for(d=g;d<f;d++){if(Zcb((BCb(d,a.length),a.charCodeAt(d)))==-1){throw vbb(new Oeb(Oje+a+'"'))}}h=parseInt(a,10);e=h<b;if(isNaN(h)){throw vbb(new Oeb(Oje+a+'"'))}else if(e||h>c){throw vbb(new Oeb(Oje+a+'"'))}return h} +function dnc(a){var b,c,d,e,f,g,h;g=new Psb;for(f=new olb(a.a);f.a<f.c.c.length;){e=BD(mlb(f),112);pOc(e,e.f.c.length);qOc(e,e.k.c.length);if(e.i==0){e.o=0;Gsb(g,e,g.c.b,g.c)}}while(g.b!=0){e=BD(g.b==0?null:(sCb(g.b!=0),Nsb(g,g.a.a)),112);d=e.o+1;for(c=new olb(e.f);c.a<c.c.c.length;){b=BD(mlb(c),129);h=b.a;rOc(h,$wnd.Math.max(h.o,d));qOc(h,h.i-1);h.i==0&&(Gsb(g,h,g.c.b,g.c),true)}}} +function v2c(a){var b,c,d,e,f,g,h,i;for(g=new olb(a);g.a<g.c.c.length;){f=BD(mlb(g),79);d=atd(BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));h=d.i;i=d.j;e=BD(qud((!f.a&&(f.a=new cUd(A2,f,6,6)),f.a),0),202);nmd(e,e.j+h,e.k+i);gmd(e,e.b+h,e.c+i);for(c=new Fyd((!e.a&&(e.a=new xMd(y2,e,5)),e.a));c.e!=c.i.gc();){b=BD(Dyd(c),469);ukd(b,b.a+h,b.b+i)}p7c(BD(hkd(f,(Y9c(),Q8c)),74),h,i)}} +function fee(a){var b;switch(a){case 100:return kee(nxe,true);case 68:return kee(nxe,false);case 119:return kee(oxe,true);case 87:return kee(oxe,false);case 115:return kee(pxe,true);case 83:return kee(pxe,false);case 99:return kee(qxe,true);case 67:return kee(qxe,false);case 105:return kee(rxe,true);case 73:return kee(rxe,false);default:throw vbb(new hz((b=a,mxe+b.toString(16))));}} +function $Xb(a){var b,c,d,e,f;e=BD(Ikb(a.a,0),10);b=new b0b(a);Ekb(a.a,b);b.o.a=$wnd.Math.max(1,e.o.a);b.o.b=$wnd.Math.max(1,e.o.b);b.n.a=e.n.a;b.n.b=e.n.b;switch(BD(vNb(e,(wtc(),Hsc)),61).g){case 4:b.n.a+=2;break;case 1:b.n.b+=2;break;case 2:b.n.a-=2;break;case 3:b.n.b-=2;}d=new H0b;F0b(d,b);c=new UZb;f=BD(Ikb(e.j,0),11);QZb(c,f);RZb(c,d);P6c(X6c(d.n),f.n);P6c(X6c(d.a),f.a);return b} +function Fac(a,b,c,d,e){if(c&&(!d||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.b],10).k==(j0b(),f0b)){zac(BD(a.a[a.b],10),(rbd(),nbd))}else if(d&&(!c||(a.c-a.b&a.a.length-1)>1)&&b==1&&BD(a.a[a.c-1&a.a.length-1],10).k==(j0b(),f0b)){zac(BD(a.a[a.c-1&a.a.length-1],10),(rbd(),obd))}else if((a.c-a.b&a.a.length-1)==2){zac(BD(bkb(a),10),(rbd(),nbd));zac(BD(bkb(a),10),obd)}else{wac(a,e)}Yjb(a)} +function pRc(a,b,c){var d,e,f,g,h;f=0;for(e=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);g='';(!d.n&&(d.n=new cUd(D2,d,1,7)),d.n).i==0||(g=BD(qud((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n),0),137).a);h=new XRc(f++,b,g);tNb(h,d);yNb(h,(mTc(),dTc),d);h.e.b=d.j+d.f/2;h.f.a=$wnd.Math.max(d.g,1);h.e.a=d.i+d.g/2;h.f.b=$wnd.Math.max(d.f,1);Dsb(b.b,h);jrb(c.f,d,h)}} +function B2b(a){var b,c,d,e,f;d=BD(vNb(a,(wtc(),$sc)),33);f=BD(hkd(d,(Nyc(),Fxc)),174).Hc((tdd(),sdd));if(!a.e){e=BD(vNb(a,Ksc),21);b=new f7c(a.f.a+a.d.b+a.d.c,a.f.b+a.d.d+a.d.a);if(e.Hc((Orc(),Hrc))){jkd(d,Vxc,(dcd(),$bd));Afd(d,b.a,b.b,false,true)}else{Ccb(DD(hkd(d,Gxc)))||Afd(d,b.a,b.b,true,true)}}f?jkd(d,Fxc,pqb(sdd)):jkd(d,Fxc,(c=BD(gdb(I1),9),new xqb(c,BD(_Bb(c,c.length),9),0)))} +function tA(a,b,c){var d,e,f,g;if(b[0]>=a.length){c.o=0;return true}switch(bfb(a,b[0])){case 43:e=1;break;case 45:e=-1;break;default:c.o=0;return true;}++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}if(b[0]<a.length&&bfb(a,b[0])==58){d=g*60;++b[0];f=b[0];g=rA(a,b);if(g==0&&b[0]==f){return false}d+=g}else{d=g;d<24&&b[0]-f<=2?(d*=60):(d=d%100+(d/100|0)*60)}d*=e;c.o=-d;return true} +function Hjc(a){var b,c,d,e,f,g,h,i,j;g=new Rkb;for(d=new Sr(ur(U_b(a.b).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);OZb(c)&&Ekb(g,new Gjc(c,Jjc(a,c.c),Jjc(a,c.d)))}for(j=(f=(new $ib(a.e)).a.vc().Kc(),new djb(f));j.a.Ob();){h=(b=BD(j.a.Pb(),42),BD(b.dd(),113));h.d.p=0}for(i=(e=(new $ib(a.e)).a.vc().Kc(),new djb(e));i.a.Ob();){h=(b=BD(i.a.Pb(),42),BD(b.dd(),113));h.d.p==0&&Ekb(a.d,Ijc(a,h))}} +function W1b(a){var b,c,d,e,f,g,h;f=mpd(a);for(e=new Fyd((!a.e&&(a.e=new y5d(B2,a,7,4)),a.e));e.e!=e.i.gc();){d=BD(Dyd(e),79);h=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82));if(!ntd(h,f)){return true}}for(c=new Fyd((!a.d&&(a.d=new y5d(B2,a,8,5)),a.d));c.e!=c.i.gc();){b=BD(Dyd(c),79);g=atd(BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82));if(!ntd(g,f)){return true}}return false} +function Dmc(a){var b,c,d,e,f,g,h,i;i=new s7c;b=Jsb(a,0);h=null;c=BD(Xsb(b),8);e=BD(Xsb(b),8);while(b.b!=b.d.c){h=c;c=e;e=BD(Xsb(b),8);f=Emc(c7c(new f7c(h.a,h.b),c));g=Emc(c7c(new f7c(e.a,e.b),c));d=10;d=$wnd.Math.min(d,$wnd.Math.abs(f.a+f.b)/2);d=$wnd.Math.min(d,$wnd.Math.abs(g.a+g.b)/2);f.a=Eeb(f.a)*d;f.b=Eeb(f.b)*d;g.a=Eeb(g.a)*d;g.b=Eeb(g.b)*d;Dsb(i,P6c(f,c));Dsb(i,P6c(g,c))}return i} +function _hd(a,b,c,d){var e,f,g,h,i;g=a.eh();i=a.Zg();e=null;if(i){if(!!b&&(Nid(a,b,c).Bb&Tje)==0){d=Txd(i.Vk(),a,d);a.uh(null);e=b.fh()}else{i=null}}else{!!g&&(i=g.fh());!!b&&(e=b.fh())}i!=e&&!!i&&i.Zk(a);h=a.Vg();a.Rg(b,c);i!=e&&!!e&&e.Yk(a);if(a.Lg()&&a.Mg()){if(!!g&&h>=0&&h!=c){f=new nSd(a,1,h,g,null);!d?(d=f):d.Ei(f)}if(c>=0){f=new nSd(a,1,c,h==c?g:null,b);!d?(d=f):d.Ei(f)}}return d} +function LEd(a){var b,c,d;if(a.b==null){d=new Hfb;if(a.i!=null){Efb(d,a.i);d.a+=':'}if((a.f&256)!=0){if((a.f&256)!=0&&a.a!=null){YEd(a.i)||(d.a+='//',d);Efb(d,a.a)}if(a.d!=null){d.a+='/';Efb(d,a.d)}(a.f&16)!=0&&(d.a+='/',d);for(b=0,c=a.j.length;b<c;b++){b!=0&&(d.a+='/',d);Efb(d,a.j[b])}if(a.g!=null){d.a+='?';Efb(d,a.g)}}else{Efb(d,a.a)}if(a.e!=null){d.a+='#';Efb(d,a.e)}a.b=d.a}return a.b} +function E5b(a,b){var c,d,e,f,g,h;for(e=new olb(b.a);e.a<e.c.c.length;){d=BD(mlb(e),10);f=vNb(d,(wtc(),$sc));if(JD(f,11)){g=BD(f,11);h=b_b(b,d,g.o.a,g.o.b);g.n.a=h.a;g.n.b=h.b;G0b(g,BD(vNb(d,Hsc),61))}}c=new f7c(b.f.a+b.d.b+b.d.c,b.f.b+b.d.d+b.d.a);if(BD(vNb(b,(wtc(),Ksc)),21).Hc((Orc(),Hrc))){yNb(a,(Nyc(),Vxc),(dcd(),$bd));BD(vNb(Q_b(a),Ksc),21).Fc(Krc);j_b(a,c,false)}else{j_b(a,c,true)}} +function YFc(a,b,c){var d,e,f,g,h,i;Odd(c,'Minimize Crossings '+a.a,1);d=b.b.c.length==0||!WAb(JAb(new YAb(null,new Kub(b.b,16)),new Xxb(new xGc))).sd((EAb(),DAb));i=b.b.c.length==1&&BD(Ikb(b.b,0),29).a.c.length==1;f=PD(vNb(b,(Nyc(),axc)))===PD((hbd(),ebd));if(d||i&&!f){Qdd(c);return}e=TFc(a,b);g=(h=BD(Ut(e,0),214),h.c.Rf()?h.c.Lf()?new kGc(a):new mGc(a):new iGc(a));UFc(e,g);eGc(a);Qdd(c)} +function so(a,b,c,d){var e,f,g,h,i;i=Tbb(Ibb(Eie,keb(Tbb(Ibb(b==null?0:tb(b),Fie)),15)));e=Tbb(Ibb(Eie,keb(Tbb(Ibb(c==null?0:tb(c),Fie)),15)));h=vo(a,b,i);g=uo(a,c,e);if(!!h&&e==h.a&&Hb(c,h.g)){return c}else if(!!g&&!d){throw vbb(new Wdb('key already present: '+c))}!!h&&mo(a,h);!!g&&mo(a,g);f=new $o(c,e,b,i);po(a,f,g);if(g){g.e=null;g.c=null}if(h){h.e=null;h.c=null}to(a);return !h?null:h.g} +function Lhb(a,b,c){var d,e,f,g,h;for(f=0;f<b;f++){d=0;for(h=f+1;h<b;h++){d=wbb(wbb(Ibb(xbb(a[f],Yje),xbb(a[h],Yje)),xbb(c[f+h],Yje)),xbb(Tbb(d),Yje));c[f+h]=Tbb(d);d=Pbb(d,32)}c[f+b]=Tbb(d)}khb(c,c,b<<1);d=0;for(e=0,g=0;e<b;++e,g++){d=wbb(wbb(Ibb(xbb(a[e],Yje),xbb(a[e],Yje)),xbb(c[g],Yje)),xbb(Tbb(d),Yje));c[g]=Tbb(d);d=Pbb(d,32);++g;d=wbb(d,xbb(c[g],Yje));c[g]=Tbb(d);d=Pbb(d,32)}return c} +function ZJc(a,b,c){var d,e,f,g,h,i,j,k;if(Qq(b)){return}i=Edb(ED(pBc(c.c,(Nyc(),zyc))));j=BD(pBc(c.c,yyc),142);!j&&(j=new H_b);d=c.a;e=null;for(h=b.Kc();h.Ob();){g=BD(h.Pb(),11);k=0;if(!e){k=j.d}else{k=i;k+=e.o.b}f=nGb(oGb(new pGb,g),a.f);Rhb(a.k,g,f);AFb(DFb(CFb(BFb(EFb(new FFb,0),QD($wnd.Math.ceil(k))),d),f));e=g;d=f}AFb(DFb(CFb(BFb(EFb(new FFb,0),QD($wnd.Math.ceil(j.a+e.o.b))),d),c.d))} +function uZc(a,b,c,d,e,f,g,h){var i,j,k,l,m,n;n=false;m=f-c.s;k=c.t-b.f+(j=MZc(c,m,false),j.a);if(d.g+h>m){return false}l=(i=MZc(d,m,false),i.a);if(k+h+l<=b.b){KZc(c,f-c.s);c.c=true;KZc(d,f-c.s);OZc(d,c.s,c.t+c.d+h);d.k=true;WZc(c.q,d);n=true;if(e){s$c(b,d);d.j=b;if(a.c.length>g){v$c((tCb(g,a.c.length),BD(a.c[g],200)),d);(tCb(g,a.c.length),BD(a.c[g],200)).a.c.length==0&&Kkb(a,g)}}}return n} +function kcc(a,b){var c,d,e,f,g,h;Odd(b,'Partition midprocessing',1);e=new Hp;MAb(JAb(new YAb(null,new Kub(a.a,16)),new occ),new qcc(e));if(e.d==0){return}h=BD(GAb(UAb((f=e.i,new YAb(null,(!f?(e.i=new zf(e,e.c)):f).Nc()))),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);d=h.Kc();c=BD(d.Pb(),19);while(d.Ob()){g=BD(d.Pb(),19);jcc(BD(Qc(e,c),21),BD(Qc(e,g),21));c=g}Qdd(b)} +function DYb(a,b,c){var d,e,f,g,h,i,j,k;if(b.p==0){b.p=1;g=c;if(!g){e=new Rkb;f=(d=BD(gdb(F1),9),new xqb(d,BD(_Bb(d,d.length),9),0));g=new vgd(e,f)}BD(g.a,15).Fc(b);b.k==(j0b(),e0b)&&BD(g.b,21).Fc(BD(vNb(b,(wtc(),Hsc)),61));for(i=new olb(b.j);i.a<i.c.c.length;){h=BD(mlb(i),11);for(k=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(h),new R0b(h)])));Qr(k);){j=BD(Rr(k),11);DYb(a,j.i,g)}}return g}return null} +function Dmd(a,b){var c,d,e,f,g;if(a.Ab){if(a.Ab){g=a.Ab.i;if(g>0){e=BD(a.Ab.g,1934);if(b==null){for(f=0;f<g;++f){c=e[f];if(c.d==null){return c}}}else{for(f=0;f<g;++f){c=e[f];if(dfb(b,c.d)){return c}}}}}else{if(b==null){for(d=new Fyd(a.Ab);d.e!=d.i.gc();){c=BD(Dyd(d),590);if(c.d==null){return c}}}else{for(d=new Fyd(a.Ab);d.e!=d.i.gc();){c=BD(Dyd(d),590);if(dfb(b,c.d)){return c}}}}}return null} +function gRc(a,b){var c,d,e,f,g,h,i,j;j=DD(vNb(b,(JTc(),GTc)));if(j==null||(uCb(j),j)){dRc(a,b);e=new Rkb;for(i=Jsb(b.b,0);i.b!=i.d.c;){g=BD(Xsb(i),86);c=cRc(a,g,null);if(c){tNb(c,b);e.c[e.c.length]=c}}a.a=null;a.b=null;if(e.c.length>1){for(d=new olb(e);d.a<d.c.c.length;){c=BD(mlb(d),135);f=0;for(h=Jsb(c.b,0);h.b!=h.d.c;){g=BD(Xsb(h),86);g.g=f++}}}return e}return Ou(OC(GC(n$,1),fme,135,0,[b]))} +function rqd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,p,q,r,s,t,u,v;n=Sqd(a,etd(b),e);jmd(n,_pd(e,Vte));o=null;p=e;q=$pd(p,Yte);r=new urd(n);wqd(r.a,q);s=$pd(p,'endPoint');t=new yrd(n);yqd(t.a,s);u=Ypd(p,Ote);v=new Brd(n);zqd(v.a,u);l=_pd(e,Qte);f=new qrd(a,n);sqd(f.a,f.b,l);m=_pd(e,Pte);g=new rrd(a,n);tqd(g.a,g.b,m);j=Ypd(e,Ste);h=new srd(c,n);uqd(h.b,h.a,j);k=Ypd(e,Rte);i=new trd(d,n);vqd(i.b,i.a,k)} +function i_b(a,b,c){var d,e,f,g,h;h=null;switch(b.g){case 1:for(e=new olb(a.j);e.a<e.c.c.length;){d=BD(mlb(e),11);if(Ccb(DD(vNb(d,(wtc(),Msc))))){return d}}h=new H0b;yNb(h,(wtc(),Msc),(Bcb(),true));break;case 2:for(g=new olb(a.j);g.a<g.c.c.length;){f=BD(mlb(g),11);if(Ccb(DD(vNb(f,(wtc(),etc))))){return f}}h=new H0b;yNb(h,(wtc(),etc),(Bcb(),true));}if(h){F0b(h,a);G0b(h,c);X$b(h.n,a.o,c)}return h} +function O3b(a,b){var c,d,e,f,g,h;h=-1;g=new Psb;for(d=new b1b(a.b);llb(d.a)||llb(d.b);){c=BD(llb(d.a)?mlb(d.a):mlb(d.b),17);h=$wnd.Math.max(h,Edb(ED(vNb(c,(Nyc(),Zwc)))));c.c==a?MAb(JAb(new YAb(null,new Kub(c.b,16)),new U3b),new W3b(g)):MAb(JAb(new YAb(null,new Kub(c.b,16)),new Y3b),new $3b(g));for(f=Jsb(g,0);f.b!=f.d.c;){e=BD(Xsb(f),70);wNb(e,(wtc(),Dsc))||yNb(e,Dsc,c)}Gkb(b,g);Osb(g)}return h} +function _bc(a,b,c,d,e){var f,g,h,i;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));yNb(f,(wtc(),$sc),b.c.i);g=new H0b;yNb(g,$sc,b.c);G0b(g,e);F0b(g,f);yNb(b.c,gtc,f);h=new b0b(a);__b(h,i0b);yNb(h,Vxc,$bd);yNb(h,$sc,b.d.i);i=new H0b;yNb(i,$sc,b.d);G0b(i,e);F0b(i,h);yNb(b.d,gtc,h);QZb(b,g);RZb(b,i);wCb(0,c.c.length);aCb(c.c,0,f);d.c[d.c.length]=h;yNb(f,ysc,meb(1));yNb(h,ysc,meb(1))} +function BPc(a,b,c,d,e){var f,g,h,i,j;h=e?d.b:d.a;if(Rqb(a.a,d)){return}j=h>c.s&&h<c.c;i=false;if(c.e.b!=0&&c.j.b!=0){i=i|($wnd.Math.abs(h-Edb(ED(Hsb(c.e))))<qme&&$wnd.Math.abs(h-Edb(ED(Hsb(c.j))))<qme);i=i|($wnd.Math.abs(h-Edb(ED(Isb(c.e))))<qme&&$wnd.Math.abs(h-Edb(ED(Isb(c.j))))<qme)}if(j||i){g=BD(vNb(b,(Nyc(),jxc)),74);if(!g){g=new s7c;yNb(b,jxc,g)}f=new g7c(d);Gsb(g,f,g.c.b,g.c);Qqb(a.a,f)}} +function gNb(a,b,c,d){var e,f,g,h,i,j,k;if(fNb(a,b,c,d)){return true}else{for(g=new olb(b.f);g.a<g.c.c.length;){f=BD(mlb(g),324);h=false;i=a.j-b.j+c;j=i+b.o;k=a.k-b.k+d;e=k+b.p;switch(f.a.g){case 0:h=oNb(a,i+f.b.a,0,i+f.c.a,k-1);break;case 1:h=oNb(a,j,k+f.b.a,a.o-1,k+f.c.a);break;case 2:h=oNb(a,i+f.b.a,e,i+f.c.a,a.p-1);break;default:h=oNb(a,0,k+f.b.a,i-1,k+f.c.a);}if(h){return true}}}return false} +function LMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.a<g.c.c.length;){f=BD(mlb(g),29);for(j=new olb(f.a);j.a<j.c.c.length;){i=BD(mlb(j),10);k=new Rkb;h=0;for(d=new Sr(ur(R_b(i).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(OZb(c)||!OZb(c)&&c.c.i.c==c.d.i.c){continue}e=BD(vNb(c,(Nyc(),eyc)),19).a;if(e>h){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.c.i,c))}mmb();Okb(k,a.c);Dkb(a.b,i.p,k)}}} +function MMc(a,b){var c,d,e,f,g,h,i,j,k;for(g=new olb(b.b);g.a<g.c.c.length;){f=BD(mlb(g),29);for(j=new olb(f.a);j.a<j.c.c.length;){i=BD(mlb(j),10);k=new Rkb;h=0;for(d=new Sr(ur(U_b(i).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);if(OZb(c)||!OZb(c)&&c.c.i.c==c.d.i.c){continue}e=BD(vNb(c,(Nyc(),eyc)),19).a;if(e>h){h=e;k.c=KC(SI,Uhe,1,0,5,1)}e==h&&Ekb(k,new vgd(c.d.i,c))}mmb();Okb(k,a.c);Dkb(a.f,i.p,k)}}} +function Y7c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,qse),'ELK Box'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges.'),new _7c)));p4c(a,qse,ame,U7c);p4c(a,qse,wme,15);p4c(a,qse,vme,meb(0));p4c(a,qse,Jre,Ksd(O7c));p4c(a,qse,Fme,Ksd(Q7c));p4c(a,qse,Eme,Ksd(S7c));p4c(a,qse,_le,pse);p4c(a,qse,Ame,Ksd(P7c));p4c(a,qse,Tme,Ksd(R7c));p4c(a,qse,rse,Ksd(M7c));p4c(a,qse,lqe,Ksd(N7c))} +function W$b(a,b){var c,d,e,f,g,h,i,j,k;e=a.i;g=e.o.a;f=e.o.b;if(g<=0&&f<=0){return Ucd(),Scd}j=a.n.a;k=a.n.b;h=a.o.a;c=a.o.b;switch(b.g){case 2:case 1:if(j<0){return Ucd(),Tcd}else if(j+h>g){return Ucd(),zcd}break;case 4:case 3:if(k<0){return Ucd(),Acd}else if(k+c>f){return Ucd(),Rcd}}i=(j+h/2)/g;d=(k+c/2)/f;return i+d<=1&&i-d<=0?(Ucd(),Tcd):i+d>=1&&i-d>=0?(Ucd(),zcd):d<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function pJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=false;k=Edb(ED(vNb(b,(Nyc(),vyc))));o=Qie*k;for(e=new olb(b.b);e.a<e.c.c.length;){d=BD(mlb(e),29);j=new olb(d.a);f=BD(mlb(j),10);l=xJc(a.a[f.p]);while(j.a<j.c.c.length){h=BD(mlb(j),10);m=xJc(a.a[h.p]);if(l!=m){n=jBc(a.b,f,h);g=f.n.b+f.o.b+f.d.a+l.a+n;i=h.n.b-h.d.d+m.a;if(g>i+o){p=l.g+m.g;m.a=(m.g*m.a+l.g*l.a)/p;m.g=p;l.f=m;c=true}}f=h;l=m}}return c} +function VGb(a,b,c,d,e,f,g){var h,i,j,k,l,m;m=new I6c;for(j=b.Kc();j.Ob();){h=BD(j.Pb(),839);for(l=new olb(h.wf());l.a<l.c.c.length;){k=BD(mlb(l),181);if(PD(k.We((Y9c(),C8c)))===PD((qad(),pad))){SGb(m,k,false,d,e,f,g);H6c(a,m)}}}for(i=c.Kc();i.Ob();){h=BD(i.Pb(),839);for(l=new olb(h.wf());l.a<l.c.c.length;){k=BD(mlb(l),181);if(PD(k.We((Y9c(),C8c)))===PD((qad(),oad))){SGb(m,k,true,d,e,f,g);H6c(a,m)}}}} +function oRc(a,b,c){var d,e,f,g,h,i,j;for(g=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);for(e=new Sr(ur(_sd(f).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);if(!Pld(d)&&!Pld(d)&&!Qld(d)){i=BD(Wd(irb(c.f,f)),86);j=BD(Ohb(c,atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))),86);if(!!i&&!!j){h=new QRc(i,j);yNb(h,(mTc(),dTc),d);tNb(h,d);Dsb(i.d,h);Dsb(j.b,h);Dsb(b.a,h)}}}}} +function QKb(a,b){var c,d,e,f,g,h,i,j;for(i=BD(BD(Qc(a.r,b),21),84).Kc();i.Ob();){h=BD(i.Pb(),111);e=h.c?YHb(h.c):0;if(e>0){if(h.a){j=h.b.rf().b;if(e>j){if(a.v||h.c.d.c.length==1){g=(e-j)/2;h.d.d=g;h.d.a=g}else{c=BD(Ikb(h.c.d,0),181).rf().b;d=(c-j)/2;h.d.d=$wnd.Math.max(0,d);h.d.a=e-d-j}}}else{h.d.a=a.t+e}}else if(tcd(a.u)){f=sfd(h.b);f.d<0&&(h.d.d=-f.d);f.d+f.a>h.b.rf().b&&(h.d.a=f.d+f.a-h.b.rf().b)}}} +function FC(a,b){var c;switch(HC(a)){case 6:return ND(b);case 7:return LD(b);case 8:return KD(b);case 3:return Array.isArray(b)&&(c=HC(b),!(c>=14&&c<=16));case 11:return b!=null&&typeof b===Nhe;case 12:return b!=null&&(typeof b===Jhe||typeof b==Nhe);case 0:return AD(b,a.__elementTypeId$);case 2:return OD(b)&&!(b.im===gcb);case 1:return OD(b)&&!(b.im===gcb)||AD(b,a.__elementTypeId$);default:return true;}} +function xOb(a,b){var c,d,e,f;d=$wnd.Math.min($wnd.Math.abs(a.c-(b.c+b.b)),$wnd.Math.abs(a.c+a.b-b.c));f=$wnd.Math.min($wnd.Math.abs(a.d-(b.d+b.a)),$wnd.Math.abs(a.d+a.a-b.d));c=$wnd.Math.abs(a.c+a.b/2-(b.c+b.b/2));if(c>a.b/2+b.b/2){return 1}e=$wnd.Math.abs(a.d+a.a/2-(b.d+b.a/2));if(e>a.a/2+b.a/2){return 1}if(c==0&&e==0){return 0}if(c==0){return f/e+1}if(e==0){return d/c+1}return $wnd.Math.min(d/c,f/e)+1} +function mgb(a,b){var c,d,e,f,g,h;e=pgb(a);h=pgb(b);if(e==h){if(a.e==b.e&&a.a<54&&b.a<54){return a.f<b.f?-1:a.f>b.f?1:0}d=a.e-b.e;c=(a.d>0?a.d:$wnd.Math.floor((a.a-1)*Xje)+1)-(b.d>0?b.d:$wnd.Math.floor((b.a-1)*Xje)+1);if(c>d+1){return e}else if(c<d-1){return -e}else{f=(!a.c&&(a.c=fhb(a.f)),a.c);g=(!b.c&&(b.c=fhb(b.f)),b.c);d<0?(f=Ogb(f,Khb(-d))):d>0&&(g=Ogb(g,Khb(d)));return Igb(f,g)}}else return e<h?-1:1} +function mTb(a,b){var c,d,e,f,g,h,i;f=0;h=0;i=0;for(e=new olb(a.f.e);e.a<e.c.c.length;){d=BD(mlb(e),144);if(b==d){continue}g=a.i[b.b][d.b];f+=g;c=S6c(b.d,d.d);c>0&&a.d!=(yTb(),xTb)&&(h+=g*(d.d.a+a.a[b.b][d.b]*(b.d.a-d.d.a)/c));c>0&&a.d!=(yTb(),vTb)&&(i+=g*(d.d.b+a.a[b.b][d.b]*(b.d.b-d.d.b)/c))}switch(a.d.g){case 1:return new f7c(h/f,b.d.b);case 2:return new f7c(b.d.a,i/f);default:return new f7c(h/f,i/f);}} +function Wcc(a,b){Occ();var c,d,e,f,g;g=BD(vNb(a.i,(Nyc(),Vxc)),98);f=a.j.g-b.j.g;if(f!=0||!(g==(dcd(),Zbd)||g==_bd||g==$bd)){return 0}if(g==(dcd(),Zbd)){c=BD(vNb(a,Wxc),19);d=BD(vNb(b,Wxc),19);if(!!c&&!!d){e=c.a-d.a;if(e!=0){return e}}}switch(a.j.g){case 1:return Kdb(a.n.a,b.n.a);case 2:return Kdb(a.n.b,b.n.b);case 3:return Kdb(b.n.a,a.n.a);case 4:return Kdb(b.n.b,a.n.b);default:throw vbb(new Zdb(ine));}} +function tfd(a){var b,c,d,e,f,g;c=(!a.a&&(a.a=new xMd(y2,a,5)),a.a).i+2;g=new Skb(c);Ekb(g,new f7c(a.j,a.k));MAb(new YAb(null,(!a.a&&(a.a=new xMd(y2,a,5)),new Kub(a.a,16))),new Qfd(g));Ekb(g,new f7c(a.b,a.c));b=1;while(b<g.c.length-1){d=(tCb(b-1,g.c.length),BD(g.c[b-1],8));e=(tCb(b,g.c.length),BD(g.c[b],8));f=(tCb(b+1,g.c.length),BD(g.c[b+1],8));d.a==e.a&&e.a==f.a||d.b==e.b&&e.b==f.b?Kkb(g,b):++b}return g} +function Xgc(a,b){var c,d,e,f,g,h,i;c=vDb(yDb(wDb(xDb(new zDb,b),new K6c(b.e)),Ggc),a.a);b.j.c.length==0||nDb(BD(Ikb(b.j,0),57).a,c);i=new lEb;Rhb(a.e,c,i);g=new Tqb;h=new Tqb;for(f=new olb(b.k);f.a<f.c.c.length;){e=BD(mlb(f),17);Qqb(g,e.c);Qqb(h,e.d)}d=g.a.gc()-h.a.gc();if(d<0){jEb(i,true,(ead(),aad));jEb(i,false,bad)}else if(d>0){jEb(i,false,(ead(),aad));jEb(i,true,bad)}Hkb(b.g,new $hc(a,c));Rhb(a.g,b,c)} +function Neb(){Neb=ccb;var a;Jeb=OC(GC(WD,1),oje,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]);Keb=KC(WD,oje,25,37,15,1);Leb=OC(GC(WD,1),oje,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]);Meb=KC(XD,Sje,25,37,14,1);for(a=2;a<=36;a++){Keb[a]=QD($wnd.Math.pow(a,Jeb[a]));Meb[a]=Abb(rie,Keb[a])}} +function pfd(a){var b;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}b=new s7c;!!btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)),false));!!btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))&&ye(b,qfd(a,btd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)),true));return b} +function _Mc(a,b){var c,d,e,f,g;b.d?(e=a.a.c==(YLc(),XLc)?R_b(b.b):U_b(b.b)):(e=a.a.c==(YLc(),WLc)?R_b(b.b):U_b(b.b));f=false;for(d=new Sr(ur(e.a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);g=Ccb(a.a.f[a.a.g[b.b.p].p]);if(!g&&!OZb(c)&&c.c.i.c==c.d.i.c){continue}if(Ccb(a.a.n[a.a.g[b.b.p].p])||Ccb(a.a.n[a.a.g[b.b.p].p])){continue}f=true;if(Rqb(a.b,a.a.g[TMc(c,b.b).p])){b.c=true;b.a=c;return b}}b.c=f;b.a=null;return b} +function bed(a,b,c,d,e){var f,g,h,i,j,k,l;mmb();Okb(a,new Red);h=new Bib(a,0);l=new Rkb;f=0;while(h.b<h.d.gc()){g=(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),157));if(l.c.length!=0&&red(g)*qed(g)>f*2){k=new wed(l);j=red(g)/qed(g);i=fed(k,b,new p0b,c,d,e,j);P6c(X6c(k.e),i);l.c=KC(SI,Uhe,1,0,5,1);f=0;l.c[l.c.length]=k;l.c[l.c.length]=g;f=red(k)*qed(k)+red(g)*qed(g)}else{l.c[l.c.length]=g;f+=red(g)*qed(g)}}return l} +function qwd(a,b,c){var d,e,f,g,h,i,j;d=c.gc();if(d==0){return false}else{if(a.ej()){i=a.fj();zvd(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,i):a.Zi(5,null,c,b,i);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e<f;++e){j=a.Oi(e);h=a.cj(j,h);h=h}if(!h){a.$i(g)}else{h.Ei(g);h.Fi()}}else{a.$i(g)}}else{zvd(a,b,c);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e<f;++e){h=a.cj(a.Oi(e),h)}!!h&&h.Fi()}}return true}} +function wwd(a,b,c){var d,e,f,g,h;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,h=(g=a.Ui(b,a.oi(b,c)),g),c,b,f);if(a.bj()&&!(a.ni()&&!!h?pb(h,c):PD(h)===PD(c))){!!h&&(e=a.dj(h,e));e=a.cj(c,e);if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return h}else{h=(g=a.Ui(b,a.oi(b,c)),g);if(a.bj()&&!(a.ni()&&!!h?pb(h,c):PD(h)===PD(c))){e=null;!!h&&(e=a.dj(h,null));e=a.cj(c,e);!!e&&e.Fi()}return h}} +function rRb(a,b){var c,d,e,f,g,h,i,j,k;a.e=b;a.f=BD(vNb(b,(HSb(),GSb)),230);iRb(b);a.d=$wnd.Math.max(b.e.c.length*16+b.c.c.length,256);if(!Ccb(DD(vNb(b,(wSb(),dSb))))){k=a.e.e.c.length;for(i=new olb(b.e);i.a<i.c.c.length;){h=BD(mlb(i),144);j=h.d;j.a=Aub(a.f)*k;j.b=Aub(a.f)*k}}c=b.b;for(f=new olb(b.c);f.a<f.c.c.length;){e=BD(mlb(f),282);d=BD(vNb(e,rSb),19).a;if(d>0){for(g=0;g<d;g++){Ekb(c,new aRb(e))}cRb(e)}}} +function zac(a,b){var c,d,e,f,g,h;if(a.k==(j0b(),f0b)){c=WAb(JAb(BD(vNb(a,(wtc(),ktc)),15).Oc(),new Xxb(new Kac))).sd((EAb(),DAb))?b:(rbd(),pbd);yNb(a,Ssc,c);if(c!=(rbd(),obd)){d=BD(vNb(a,$sc),17);h=Edb(ED(vNb(d,(Nyc(),Zwc))));g=0;if(c==nbd){g=a.o.b-$wnd.Math.ceil(h/2)}else if(c==pbd){a.o.b-=Edb(ED(vNb(Q_b(a),nyc)));g=(a.o.b-$wnd.Math.ceil(h))/2}for(f=new olb(a.j);f.a<f.c.c.length;){e=BD(mlb(f),11);e.n.b=g}}}} +function Uge(){Uge=ccb;g5d();Tge=new Vge;OC(GC(w5,2),nie,368,0,[OC(GC(w5,1),Axe,592,0,[new Rge(Xwe)])]);OC(GC(w5,2),nie,368,0,[OC(GC(w5,1),Axe,592,0,[new Rge(Ywe)])]);OC(GC(w5,2),nie,368,0,[OC(GC(w5,1),Axe,592,0,[new Rge(Zwe)]),OC(GC(w5,1),Axe,592,0,[new Rge(Ywe)])]);new Ygb('-1');OC(GC(w5,2),nie,368,0,[OC(GC(w5,1),Axe,592,0,[new Rge('\\c+')])]);new Ygb('0');new Ygb('0');new Ygb('1');new Ygb('0');new Ygb(hxe)} +function KQd(a){var b,c;if(!!a.c&&a.c.kh()){c=BD(a.c,49);a.c=BD(xid(a,c),138);if(a.c!=c){(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,9,2,c,a.c));if(JD(a.Cb,399)){a.Db>>16==-15&&a.Cb.nh()&&Rwd(new oSd(a.Cb,9,13,c,a.c,HLd(QSd(BD(a.Cb,59)),a)))}else if(JD(a.Cb,88)){if(a.Db>>16==-23&&a.Cb.nh()){b=a.c;JD(b,88)||(b=(jGd(),_Fd));JD(c,88)||(c=(jGd(),_Fd));Rwd(new oSd(a.Cb,9,10,c,b,HLd(VKd(BD(a.Cb,26)),a)))}}}}return a.c} +function f7b(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Hypernodes processing',1);for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);for(h=new olb(d.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(Ccb(DD(vNb(g,(Nyc(),exc))))&&g.j.c.length<=2){l=0;k=0;c=0;f=0;for(j=new olb(g.j);j.a<j.c.c.length;){i=BD(mlb(j),11);switch(i.j.g){case 1:++l;break;case 2:++k;break;case 3:++c;break;case 4:++f;}}l==0&&c==0&&e7b(a,g,f<=k)}}}Qdd(b)} +function i7b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Layer constraint edge reversal',1);for(g=new olb(a.b);g.a<g.c.c.length;){f=BD(mlb(g),29);k=-1;c=new Rkb;j=l_b(f.a);for(e=0;e<j.length;e++){d=BD(vNb(j[e],(wtc(),Osc)),303);if(k==-1){d!=(esc(),dsc)&&(k=e)}else{if(d==(esc(),dsc)){$_b(j[e],null);Z_b(j[e],k++,f)}}d==(esc(),bsc)&&Ekb(c,j[e])}for(i=new olb(c);i.a<i.c.c.length;){h=BD(mlb(i),10);$_b(h,null);$_b(h,f)}}Qdd(b)} +function W6b(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Hyperedge merging',1);U6b(a,b);i=new Bib(b.b,0);while(i.b<i.d.gc()){h=(sCb(i.b<i.d.gc()),BD(i.d.Xb(i.c=i.b++),29));k=h.a;if(k.c.length==0){continue}d=null;e=null;f=null;g=null;for(j=0;j<k.c.length;j++){d=(tCb(j,k.c.length),BD(k.c[j],10));e=d.k;if(e==(j0b(),g0b)&&g==g0b){l=S6b(d,f);if(l.a){V6b(d,f,l.b,l.c);tCb(j,k.c.length);cCb(k.c,j,1);--j;d=f;e=g}}f=d;g=e}}Qdd(c)} +function WFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=OFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=OFc(a,b)}while(e>c);return e} +function XFc(a,b){var c,d,e;d=Cub(a.d,1)!=0;!Ccb(DD(vNb(b.j,(wtc(),Jsc))))&&!Ccb(DD(vNb(b.j,mtc)))||PD(vNb(b.j,(Nyc(),ywc)))===PD((tAc(),rAc))?b.c.Tf(b.e,d):(d=Ccb(DD(vNb(b.j,Jsc))));dGc(a,b,d,true);Ccb(DD(vNb(b.j,mtc)))&&yNb(b.j,mtc,(Bcb(),false));if(Ccb(DD(vNb(b.j,Jsc)))){yNb(b.j,Jsc,(Bcb(),false));yNb(b.j,mtc,true)}c=NFc(a,b);do{$Fc(a);if(c==0){return 0}d=!d;e=c;dGc(a,b,d,false);c=NFc(a,b)}while(e>c);return e} +function uNd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;if(b==c){return true}else{b=vNd(a,b);c=vNd(a,c);d=JQd(b);if(d){k=JQd(c);if(k!=d){if(!k){return false}else{i=d.Dj();o=k.Dj();return i==o&&i!=null}}else{g=(!b.d&&(b.d=new xMd(j5,b,1)),b.d);f=g.i;m=(!c.d&&(c.d=new xMd(j5,c,1)),c.d);if(f==m.i){for(j=0;j<f;++j){e=BD(qud(g,j),87);l=BD(qud(m,j),87);if(!uNd(a,e,l)){return false}}}return true}}else{h=b.e;n=c.e;return h==n}}} +function X2d(a,b,c,d){var e,f,g,h,i,j,k,l;if(T6d(a.e,b)){l=S6d(a.e.Tg(),b);f=BD(a.g,119);k=null;i=-1;h=-1;e=0;for(j=0;j<a.i;++j){g=f[j];if(l.rl(g.ak())){e==c&&(i=j);if(e==d){h=j;k=g.dd()}++e}}if(i==-1){throw vbb(new qcb(lue+c+mue+e))}if(h==-1){throw vbb(new qcb(nue+d+mue+e))}Wxd(a,i,h);oid(a.e)&&GLd(a,H2d(a,7,b,meb(d),k,c,true));return k}else{throw vbb(new Wdb('The feature must be many-valued to support move'))}} +function b_b(a,b,c,d){var e,f,g,h,i;i=new g7c(b.n);i.a+=b.o.a/2;i.b+=b.o.b/2;h=Edb(ED(vNb(b,(Nyc(),Uxc))));f=a.f;g=a.d;e=a.c;switch(BD(vNb(b,(wtc(),Hsc)),61).g){case 1:i.a+=g.b+e.a-c/2;i.b=-d-h;b.n.b=-(g.d+h+e.b);break;case 2:i.a=f.a+g.b+g.c+h;i.b+=g.d+e.b-d/2;b.n.a=f.a+g.c+h-e.a;break;case 3:i.a+=g.b+e.a-c/2;i.b=f.b+g.d+g.a+h;b.n.b=f.b+g.a+h-e.b;break;case 4:i.a=-c-h;i.b+=g.d+e.b-d/2;b.n.a=-(g.b+h+e.a);}return i} +function P1b(a){var b,c,d,e,f,g;d=new XZb;tNb(d,a);PD(vNb(d,(Nyc(),Lwc)))===PD((ead(),cad))&&yNb(d,Lwc,a_b(d));if(vNb(d,(g6c(),f6c))==null){g=BD(m6d(a),160);yNb(d,f6c,RD(g.We(f6c)))}yNb(d,(wtc(),$sc),a);yNb(d,Ksc,(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));e=OGb((!Xod(a)?null:(Pgd(),new bhd(Xod(a))),Pgd(),new hhd(!Xod(a)?null:new bhd(Xod(a)),a)),bad);f=BD(vNb(d,Kxc),116);c=d.d;t_b(c,f);t_b(c,e);return d} +function ybc(a,b,c){var d,e;d=b.c.i;e=c.d.i;if(d.k==(j0b(),g0b)){yNb(a,(wtc(),Vsc),BD(vNb(d,Vsc),11));yNb(a,Wsc,BD(vNb(d,Wsc),11));yNb(a,Usc,DD(vNb(d,Usc)))}else if(d.k==f0b){yNb(a,(wtc(),Vsc),BD(vNb(d,Vsc),11));yNb(a,Wsc,BD(vNb(d,Wsc),11));yNb(a,Usc,(Bcb(),true))}else if(e.k==f0b){yNb(a,(wtc(),Vsc),BD(vNb(e,Vsc),11));yNb(a,Wsc,BD(vNb(e,Wsc),11));yNb(a,Usc,(Bcb(),true))}else{yNb(a,(wtc(),Vsc),b.c);yNb(a,Wsc,c.d)}} +function FGb(a){var b,c,d,e,f,g,h;a.o=new jkb;d=new Psb;for(g=new olb(a.e.a);g.a<g.c.c.length;){f=BD(mlb(g),121);LFb(f).c.length==1&&(Gsb(d,f,d.c.b,d.c),true)}while(d.b!=0){f=BD(d.b==0?null:(sCb(d.b!=0),Nsb(d,d.a.a)),121);if(LFb(f).c.length==0){continue}b=BD(Ikb(LFb(f),0),213);c=f.g.a.c.length>0;h=xFb(b,f);c?OFb(h.b,b):OFb(h.g,b);LFb(h).c.length==1&&(Gsb(d,h,d.c.b,d.c),true);e=new vgd(f,b);Wjb(a.o,e);Lkb(a.e.a,f)}} +function _Nb(a,b){var c,d,e,f,g,h,i;d=$wnd.Math.abs(D6c(a.b).a-D6c(b.b).a);h=$wnd.Math.abs(D6c(a.b).b-D6c(b.b).b);e=0;i=0;c=1;g=1;if(d>a.b.b/2+b.b.b/2){e=$wnd.Math.min($wnd.Math.abs(a.b.c-(b.b.c+b.b.b)),$wnd.Math.abs(a.b.c+a.b.b-b.b.c));c=1-e/d}if(h>a.b.a/2+b.b.a/2){i=$wnd.Math.min($wnd.Math.abs(a.b.d-(b.b.d+b.b.a)),$wnd.Math.abs(a.b.d+a.b.a-b.b.d));g=1-i/h}f=$wnd.Math.min(c,g);return (1-f)*$wnd.Math.sqrt(d*d+h*h)} +function lQc(a){var b,c,d,e;nQc(a,a.e,a.f,(FQc(),DQc),true,a.c,a.i);nQc(a,a.e,a.f,DQc,false,a.c,a.i);nQc(a,a.e,a.f,EQc,true,a.c,a.i);nQc(a,a.e,a.f,EQc,false,a.c,a.i);mQc(a,a.c,a.e,a.f,a.i);d=new Bib(a.i,0);while(d.b<d.d.gc()){b=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),128));e=new Bib(a.i,d.b);while(e.b<e.d.gc()){c=(sCb(e.b<e.d.gc()),BD(e.d.Xb(e.c=e.b++),128));kQc(b,c)}}wQc(a.i,BD(vNb(a.d,(wtc(),jtc)),230));zQc(a.i)} +function fKd(a,b){var c,d;if(b!=null){d=dKd(a);if(d){if((d.i&1)!=0){if(d==sbb){return KD(b)}else if(d==WD){return JD(b,19)}else if(d==VD){return JD(b,155)}else if(d==SD){return JD(b,217)}else if(d==TD){return JD(b,172)}else if(d==UD){return LD(b)}else if(d==rbb){return JD(b,184)}else if(d==XD){return JD(b,162)}}else{return pEd(),c=BD(Ohb(oEd,d),55),!c||c.wj(b)}}else if(JD(b,56)){return a.uk(BD(b,56))}}return false} +function ade(){ade=ccb;var a,b,c,d,e,f,g,h,i;$ce=KC(SD,wte,25,255,15,1);_ce=KC(TD,$ie,25,64,15,1);for(b=0;b<255;b++){$ce[b]=-1}for(c=90;c>=65;c--){$ce[c]=c-65<<24>>24}for(d=122;d>=97;d--){$ce[d]=d-97+26<<24>>24}for(e=57;e>=48;e--){$ce[e]=e-48+52<<24>>24}$ce[43]=62;$ce[47]=63;for(f=0;f<=25;f++)_ce[f]=65+f&aje;for(g=26,i=0;g<=51;++g,i++)_ce[g]=97+i&aje;for(a=52,h=0;a<=61;++a,h++)_ce[a]=48+h&aje;_ce[62]=43;_ce[63]=47} +function FXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.dc()){return new d7c}j=0;l=0;for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);f=d.f;j=$wnd.Math.max(j,f.a);l+=f.a*f.b}j=$wnd.Math.max(j,$wnd.Math.sqrt(l)*Edb(ED(vNb(BD(a.Kc().Pb(),37),(Nyc(),owc)))));m=0;n=0;i=0;c=b;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);k=g.f;if(m+k.a>j){m=0;n+=i+b;i=0}uXb(g,m,n);c=$wnd.Math.max(c,m+k.a);i=$wnd.Math.max(i,k.b);m+=k.a+b}return new f7c(c+b,n+i+b)} +function mQc(a,b,c,d,e){var f,g,h,i,j,k,l;for(g=new olb(b);g.a<g.c.c.length;){f=BD(mlb(g),17);i=f.c;if(c.a._b(i)){j=(FQc(),DQc)}else if(d.a._b(i)){j=(FQc(),EQc)}else{throw vbb(new Wdb('Source port must be in one of the port sets.'))}k=f.d;if(c.a._b(k)){l=(FQc(),DQc)}else if(d.a._b(k)){l=(FQc(),EQc)}else{throw vbb(new Wdb('Target port must be in one of the port sets.'))}h=new YQc(f,j,l);Rhb(a.b,f,h);e.c[e.c.length]=h}} +function lfd(a,b){var c,d,e,f,g,h,i;if(!mpd(a)){throw vbb(new Zdb(Sse))}d=mpd(a);f=d.g;e=d.f;if(f<=0&&e<=0){return Ucd(),Scd}h=a.i;i=a.j;switch(b.g){case 2:case 1:if(h<0){return Ucd(),Tcd}else if(h+a.g>f){return Ucd(),zcd}break;case 4:case 3:if(i<0){return Ucd(),Acd}else if(i+a.f>e){return Ucd(),Rcd}}g=(h+a.g/2)/f;c=(i+a.f/2)/e;return g+c<=1&&g-c<=0?(Ucd(),Tcd):g+c>=1&&g-c>=0?(Ucd(),zcd):c<0.5?(Ucd(),Acd):(Ucd(),Rcd)} +function vhb(a,b,c,d,e){var f,g;f=wbb(xbb(b[0],Yje),xbb(d[0],Yje));a[0]=Tbb(f);f=Obb(f,32);if(c>=e){for(g=1;g<e;g++){f=wbb(f,wbb(xbb(b[g],Yje),xbb(d[g],Yje)));a[g]=Tbb(f);f=Obb(f,32)}for(;g<c;g++){f=wbb(f,xbb(b[g],Yje));a[g]=Tbb(f);f=Obb(f,32)}}else{for(g=1;g<c;g++){f=wbb(f,wbb(xbb(b[g],Yje),xbb(d[g],Yje)));a[g]=Tbb(f);f=Obb(f,32)}for(;g<e;g++){f=wbb(f,xbb(d[g],Yje));a[g]=Tbb(f);f=Obb(f,32)}}ybb(f,0)!=0&&(a[g]=Tbb(f))} +function _fe(a){wfe();var b,c,d,e,f,g;if(a.e!=4&&a.e!=5)throw vbb(new Wdb('Token#complementRanges(): must be RANGE: '+a.e));f=a;Yfe(f);Vfe(f);d=f.b.length+2;f.b[0]==0&&(d-=2);c=f.b[f.b.length-1];c==lxe&&(d-=2);e=(++vfe,new $fe(4));e.b=KC(WD,oje,25,d,15,1);g=0;if(f.b[0]>0){e.b[g++]=0;e.b[g++]=f.b[0]-1}for(b=1;b<f.b.length-2;b+=2){e.b[g++]=f.b[b]+1;e.b[g++]=f.b[b+1]-1}if(c!=lxe){e.b[g++]=c+1;e.b[g]=lxe}e.a=true;return e} +function Pxd(a,b,c){var d,e,f,g,h,i,j,k;d=c.gc();if(d==0){return false}else{if(a.ej()){j=a.fj();iud(a,b,c);g=d==1?a.Zi(3,null,c.Kc().Pb(),b,j):a.Zi(5,null,c,b,j);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e<f;++e){k=a.g[e];h=a.cj(k,h);h=a.jj(k,h)}if(!h){a.$i(g)}else{h.Ei(g);h.Fi()}}else{a.$i(g)}}else{iud(a,b,c);if(a.bj()){h=d<100?null:new Ixd(d);f=b+d;for(e=b;e<f;++e){i=a.g[e];h=a.cj(i,h)}!!h&&h.Fi()}}return true}} +function YNc(a,b,c,d){var e,f,g,h,i;for(g=new olb(a.k);g.a<g.c.c.length;){e=BD(mlb(g),129);if(!d||e.c==(HOc(),FOc)){i=e.b;if(i.g<0&&e.d>0){pOc(i,i.d-e.d);e.c==(HOc(),FOc)&&nOc(i,i.a-e.d);i.d<=0&&i.i>0&&(Gsb(b,i,b.c.b,b.c),true)}}}for(f=new olb(a.f);f.a<f.c.c.length;){e=BD(mlb(f),129);if(!d||e.c==(HOc(),FOc)){h=e.a;if(h.g<0&&e.d>0){qOc(h,h.i-e.d);e.c==(HOc(),FOc)&&oOc(h,h.b-e.d);h.i<=0&&h.d>0&&(Gsb(c,h,c.c.b,c.c),true)}}}} +function gSc(a,b,c){var d,e,f,g,h,i,j,k;Odd(c,'Processor compute fanout',1);Uhb(a.b);Uhb(a.a);h=null;f=Jsb(b.b,0);while(!h&&f.b!=f.d.c){j=BD(Xsb(f),86);Ccb(DD(vNb(j,(mTc(),jTc))))&&(h=j)}i=new Psb;Gsb(i,h,i.c.b,i.c);fSc(a,i);for(k=Jsb(b.b,0);k.b!=k.d.c;){j=BD(Xsb(k),86);g=GD(vNb(j,(mTc(),$Sc)));e=Phb(a.b,g)!=null?BD(Phb(a.b,g),19).a:0;yNb(j,ZSc,meb(e));d=1+(Phb(a.a,g)!=null?BD(Phb(a.a,g),19).a:0);yNb(j,XSc,meb(d))}Qdd(c)} +function WPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o;m=VPc(a,c);for(i=0;i<b;i++){Aib(e,c);n=new Rkb;o=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),407));for(k=m+i;k<a.b;k++){h=o;o=(sCb(d.b<d.d.gc()),BD(d.d.Xb(d.c=d.b++),407));Ekb(n,new aQc(h,o,c))}for(l=m+i;l<a.b;l++){sCb(d.b>0);d.a.Xb(d.c=--d.b);l>m+i&&uib(d)}for(g=new olb(n);g.a<g.c.c.length;){f=BD(mlb(g),407);Aib(d,f)}if(i<b-1){for(j=m+i;j<a.b;j++){sCb(d.b>0);d.a.Xb(d.c=--d.b)}}}} +function Jfe(){wfe();var a,b,c,d,e,f;if(gfe)return gfe;a=(++vfe,new $fe(4));Xfe(a,Kfe(vxe,true));Zfe(a,Kfe('M',true));Zfe(a,Kfe('C',true));f=(++vfe,new $fe(4));for(d=0;d<11;d++){Ufe(f,d,d)}b=(++vfe,new $fe(4));Xfe(b,Kfe('M',true));Ufe(b,4448,4607);Ufe(b,65438,65439);e=(++vfe,new Lge(2));Kge(e,a);Kge(e,ffe);c=(++vfe,new Lge(2));c.$l(Bfe(f,Kfe('L',true)));c.$l(b);c=(++vfe,new lge(3,c));c=(++vfe,new rge(e,c));gfe=c;return gfe} +function S3c(a){var b,c;b=GD(hkd(a,(Y9c(),o8c)));if(T3c(b,a)){return}if(!ikd(a,F9c)&&((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i!=0||Ccb(DD(hkd(a,M8c))))){if(b==null||ufb(b).length==0){if(!T3c(sne,a)){c=Qfb(Qfb(new Wfb('Unable to load default layout algorithm '),sne),' for unconfigured node ');yfd(a,c);throw vbb(new y2c(c.a))}}else{c=Qfb(Qfb(new Wfb("Layout algorithm '"),b),"' not found for ");yfd(a,c);throw vbb(new y2c(c.a))}}} +function hIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;c=a.i;b=a.n;if(a.b==0){n=c.c+b.b;m=c.b-b.b-b.c;for(g=a.a,i=0,k=g.length;i<k;++i){e=g[i];mHb(e,n,m)}}else{d=kIb(a,false);mHb(a.a[0],c.c+b.b,d[0]);mHb(a.a[2],c.c+c.b-b.c-d[2],d[2]);l=c.b-b.b-b.c;if(d[0]>0){l-=d[0]+a.c;d[0]+=a.c}d[2]>0&&(l-=d[2]+a.c);d[1]=$wnd.Math.max(d[1],l);mHb(a.a[1],c.c+b.b+d[0]-(d[1]-l)/2,d[1])}for(f=a.a,h=0,j=f.length;h<j;++h){e=f[h];JD(e,326)&&BD(e,326).Te()}} +function KMc(a){var b,c,d,e,f,g,h,i,j,k,l;l=new JMc;l.d=0;for(g=new olb(a.b);g.a<g.c.c.length;){f=BD(mlb(g),29);l.d+=f.a.c.length}d=0;e=0;l.a=KC(WD,oje,25,a.b.c.length,15,1);j=0;k=0;l.e=KC(WD,oje,25,l.d,15,1);for(c=new olb(a.b);c.a<c.c.c.length;){b=BD(mlb(c),29);b.p=d++;l.a[b.p]=e++;k=0;for(i=new olb(b.a);i.a<i.c.c.length;){h=BD(mlb(i),10);h.p=j++;l.e[h.p]=k++}}l.c=new OMc(l);l.b=Pu(l.d);LMc(l,a);l.f=Pu(l.d);MMc(l,a);return l} +function GZc(a,b){var c,d,e,f;f=BD(Ikb(a.n,a.n.c.length-1),211).d;a.p=$wnd.Math.min(a.p,b.g);a.r=$wnd.Math.max(a.r,f);a.g=$wnd.Math.max(a.g,b.g+(a.b.c.length==1?0:a.i));a.o=$wnd.Math.min(a.o,b.f);a.e+=b.f+(a.b.c.length==1?0:a.i);a.f=$wnd.Math.max(a.f,b.f);e=a.n.c.length>0?(a.n.c.length-1)*a.i:0;for(d=new olb(a.n);d.a<d.c.c.length;){c=BD(mlb(d),211);e+=c.a}a.d=e;a.a=a.e/a.b.c.length-a.i*((a.b.c.length-1)/a.b.c.length);u$c(a.j)} +function LQb(a,b){var c,d,e,f,g,h,i,j,k,l;k=DD(vNb(b,(wSb(),sSb)));if(k==null||(uCb(k),k)){l=KC(sbb,dle,25,b.e.c.length,16,1);g=HQb(b);e=new Psb;for(j=new olb(b.e);j.a<j.c.c.length;){h=BD(mlb(j),144);c=IQb(a,h,null,null,l,g);if(c){tNb(c,b);Gsb(e,c,e.c.b,e.c)}}if(e.b>1){for(d=Jsb(e,0);d.b!=d.d.c;){c=BD(Xsb(d),231);f=0;for(i=new olb(c.e);i.a<i.c.c.length;){h=BD(mlb(i),144);h.b=f++}}}return e}return Ou(OC(GC($O,1),fme,231,0,[b]))} +function TKd(a){var b,c,d,e,f,g,h;if(!a.g){h=new zNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);ytd(h,TKd(c))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}e=h.i;for(f=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));f.e!=f.i.gc();++e){bJd(BD(Dyd(f),449),e)}ytd(h,(!a.s&&(a.s=new cUd(t5,a,21,17)),a.s));vud(h);a.g=new rNd(a,h);a.i=BD(h.g,247);a.i==null&&(a.i=MKd);a.p=null;$Kd(a).b&=-5}return a.g} +function iIb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;d=a.i;c=a.n;if(a.b==0){b=jIb(a,false);nHb(a.a[0],d.d+c.d,b[0]);nHb(a.a[2],d.d+d.a-c.a-b[2],b[2]);m=d.a-c.d-c.a;l=m;if(b[0]>0){b[0]+=a.c;l-=b[0]}b[2]>0&&(l-=b[2]+a.c);b[1]=$wnd.Math.max(b[1],l);nHb(a.a[1],d.d+c.d+b[0]-(b[1]-l)/2,b[1])}else{o=d.d+c.d;n=d.a-c.d-c.a;for(g=a.a,i=0,k=g.length;i<k;++i){e=g[i];nHb(e,o,n)}}for(f=a.a,h=0,j=f.length;h<j;++h){e=f[h];JD(e,326)&&BD(e,326).Ue()}} +function boc(a){var b,c,d,e,f,g,h,i,j,k;k=KC(WD,oje,25,a.b.c.length+1,15,1);j=new Tqb;d=0;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);k[d++]=j.a.gc();for(i=new olb(e.a);i.a<i.c.c.length;){g=BD(mlb(i),10);for(c=new Sr(ur(U_b(g).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);j.a.zc(b,j)}}for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);for(c=new Sr(ur(R_b(g).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);j.a.Bc(b)!=null}}}return k} +function F2d(a,b,c,d){var e,f,g,h,i;i=S6d(a.e.Tg(),b);e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())&&pb(f,c)){return true}}}else if(c!=null){for(h=0;h<a.i;++h){f=e[h];if(i.rl(f.ak())&&pb(c,f.dd())){return true}}if(d){for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())&&PD(c)===PD(a3d(a,BD(f.dd(),56)))){return true}}}}else{for(g=0;g<a.i;++g){f=e[g];if(i.rl(f.ak())&&f.dd()==null){return false}}}return false} +function e3d(a,b,c,d){var e,f,g,h,i,j;j=S6d(a.e.Tg(),b);g=BD(a.g,119);if(T6d(a.e,b)){if(b.hi()){f=M2d(a,b,d,JD(b,99)&&(BD(b,18).Bb&Tje)!=0);if(f>=0&&f!=c){throw vbb(new Wdb(kue))}}e=0;for(i=0;i<a.i;++i){h=g[i];if(j.rl(h.ak())){if(e==c){return BD(Gtd(a,i,(Q6d(),BD(b,66).Oj()?BD(d,72):R6d(b,d))),72)}++e}}throw vbb(new qcb(gve+c+mue+e))}else{for(i=0;i<a.i;++i){h=g[i];if(j.rl(h.ak())){return Q6d(),BD(b,66).Oj()?h:h.dd()}}return null}} +function ONb(a,b,c,d){var e,f,g,h;h=c;for(g=new olb(b.a);g.a<g.c.c.length;){f=BD(mlb(g),221);e=BD(f.b,65);if(Jy(a.b.c,e.b.c+e.b.b)<=0&&Jy(e.b.c,a.b.c+a.b.b)<=0&&Jy(a.b.d,e.b.d+e.b.a)<=0&&Jy(e.b.d,a.b.d+a.b.a)<=0){if(Jy(e.b.c,a.b.c+a.b.b)==0&&d.a<0||Jy(e.b.c+e.b.b,a.b.c)==0&&d.a>0||Jy(e.b.d,a.b.d+a.b.a)==0&&d.b<0||Jy(e.b.d+e.b.a,a.b.d)==0&&d.b>0){h=0;break}}else{h=$wnd.Math.min(h,YNb(a,e,d))}h=$wnd.Math.min(h,ONb(a,f,h,d))}return h} +function ifd(a,b){var c,d,e,f,g,h,i;if(a.b<2){throw vbb(new Wdb('The vector chain must contain at least a source and a target point.'))}e=(sCb(a.b!=0),BD(a.a.a.c,8));nmd(b,e.a,e.b);i=new Oyd((!b.a&&(b.a=new xMd(y2,b,5)),b.a));g=Jsb(a,1);while(g.a<a.b-1){h=BD(Xsb(g),8);if(i.e!=i.i.gc()){c=BD(Dyd(i),469)}else{c=(Fhd(),d=new xkd,d);Myd(i,c)}ukd(c,h.a,h.b)}while(i.e!=i.i.gc()){Dyd(i);Eyd(i)}f=(sCb(a.b!=0),BD(a.c.b.c,8));gmd(b,f.a,f.b)} +function $lc(a,b){var c,d,e,f,g,h,i,j,k;c=0;for(e=new olb((tCb(0,a.c.length),BD(a.c[0],101)).g.b.j);e.a<e.c.c.length;){d=BD(mlb(e),11);d.p=c++}b==(Ucd(),Acd)?Okb(a,new gmc):Okb(a,new kmc);h=0;k=a.c.length-1;while(h<k){g=(tCb(h,a.c.length),BD(a.c[h],101));j=(tCb(k,a.c.length),BD(a.c[k],101));f=b==Acd?g.c:g.a;i=b==Acd?j.a:j.c;amc(g,b,(Ajc(),yjc),f);amc(j,b,xjc,i);++h;--k}h==k&&amc((tCb(h,a.c.length),BD(a.c[h],101)),b,(Ajc(),wjc),null)} +function UVc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;l=a.a.i+a.a.g/2;m=a.a.i+a.a.g/2;o=b.i+b.g/2;q=b.j+b.f/2;h=new f7c(o,q);j=BD(hkd(b,(Y9c(),C9c)),8);j.a=j.a+l;j.b=j.b+m;f=(h.b-j.b)/(h.a-j.a);d=h.b-f*h.a;p=c.i+c.g/2;r=c.j+c.f/2;i=new f7c(p,r);k=BD(hkd(c,C9c),8);k.a=k.a+l;k.b=k.b+m;g=(i.b-k.b)/(i.a-k.a);e=i.b-g*i.a;n=(d-e)/(g-f);if(j.a<n&&h.a<n||n<j.a&&n<h.a){return false}else if(k.a<n&&i.a<n||n<k.a&&n<i.a){return false}return true} +function gqd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;m=BD(Ohb(a.c,b),183);if(!m){throw vbb(new cqd('Edge did not exist in input.'))}j=Wpd(m);f=Fhe((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a));h=!f;if(h){n=new wB;c=new Rrd(a,j,n);Dhe((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),c);cC(m,Nte,n)}e=ikd(b,(Y9c(),Q8c));if(e){k=BD(hkd(b,Q8c),74);g=!k||Ehe(k);i=!g;if(i){l=new wB;d=new Zrd(l);reb(k,d);cC(m,'junctionPoints',l)}}Upd(m,'container',Mld(b).k);return null} +function eDb(a,b,c){var d,e,f,g,h,i,j,k;this.a=a;this.b=b;this.c=c;this.e=Ou(OC(GC(GM,1),Uhe,168,0,[new aDb(a,b),new aDb(b,c),new aDb(c,a)]));this.f=Ou(OC(GC(m1,1),nie,8,0,[a,b,c]));this.d=(d=c7c(R6c(this.b),this.a),e=c7c(R6c(this.c),this.a),f=c7c(R6c(this.c),this.b),g=d.a*(this.a.a+this.b.a)+d.b*(this.a.b+this.b.b),h=e.a*(this.a.a+this.c.a)+e.b*(this.a.b+this.c.b),i=2*(d.a*f.b-d.b*f.a),j=(e.b*g-d.b*h)/i,k=(d.a*h-e.a*g)/i,new f7c(j,k))} +function nvd(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;m=new yC(a.p);cC(b,fue,m);if(c&&!(!a.f?null:vmb(a.f)).a.dc()){k=new wB;cC(b,'logs',k);h=0;for(o=new Dnb((!a.f?null:vmb(a.f)).b.Kc());o.b.Ob();){n=GD(o.b.Pb());l=new yC(n);tB(k,h);vB(k,h,l);++h}}if(d){j=new TB(a.q);cC(b,'executionTime',j)}if(!vmb(a.a).a.dc()){g=new wB;cC(b,Jte,g);h=0;for(f=new Dnb(vmb(a.a).b.Kc());f.b.Ob();){e=BD(f.b.Pb(),1949);i=new eC;tB(g,h);vB(g,h,i);nvd(e,i,c,d);++h}}} +function PZb(a,b){var c,d,e,f,g,h;f=a.c;g=a.d;QZb(a,null);RZb(a,null);b&&Ccb(DD(vNb(g,(wtc(),Msc))))?QZb(a,i_b(g.i,(KAc(),IAc),(Ucd(),zcd))):QZb(a,g);b&&Ccb(DD(vNb(f,(wtc(),etc))))?RZb(a,i_b(f.i,(KAc(),HAc),(Ucd(),Tcd))):RZb(a,f);for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),70);e=BD(vNb(c,(Nyc(),Qwc)),272);e==(qad(),pad)?yNb(c,Qwc,oad):e==oad&&yNb(c,Qwc,pad)}h=Ccb(DD(vNb(a,(wtc(),ltc))));yNb(a,ltc,(Bcb(),h?false:true));a.a=w7c(a.a)} +function VQb(a,b,c){var d,e,f,g,h,i;d=0;for(f=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));f.e!=f.i.gc();){e=BD(Dyd(f),33);g='';(!e.n&&(e.n=new cUd(D2,e,1,7)),e.n).i==0||(g=BD(qud((!e.n&&(e.n=new cUd(D2,e,1,7)),e.n),0),137).a);h=new pRb(g);tNb(h,e);yNb(h,(HSb(),FSb),e);h.b=d++;h.d.a=e.i+e.g/2;h.d.b=e.j+e.f/2;h.e.a=$wnd.Math.max(e.g,1);h.e.b=$wnd.Math.max(e.f,1);Ekb(b.e,h);jrb(c.f,e,h);i=BD(hkd(e,(wSb(),mSb)),98);i==(dcd(),ccd)&&(i=bcd)}} +function XJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;c=nGb(new pGb,a.f);j=a.i[b.c.i.p];n=a.i[b.d.i.p];i=b.c;m=b.d;h=i.a.b;l=m.a.b;j.b||(h+=i.n.b);n.b||(l+=m.n.b);k=QD($wnd.Math.max(0,h-l));g=QD($wnd.Math.max(0,l-h));o=(p=$wnd.Math.max(1,BD(vNb(b,(Nyc(),eyc)),19).a),q=JJc(b.c.i.k,b.d.i.k),p*q);e=AFb(DFb(CFb(BFb(EFb(new FFb,o),g),c),BD(Ohb(a.k,b.c),121)));f=AFb(DFb(CFb(BFb(EFb(new FFb,o),k),c),BD(Ohb(a.k,b.d),121)));d=new qKc(e,f);a.c[b.p]=d} +function NEc(a,b,c,d){var e,f,g,h,i,j;g=new _Ec(a,b,c);i=new Bib(d,0);e=false;while(i.b<i.d.gc()){h=(sCb(i.b<i.d.gc()),BD(i.d.Xb(i.c=i.b++),233));if(h==b||h==c){uib(i)}else if(!e&&Edb(REc(h.g,h.d[0]).a)>Edb(REc(g.g,g.d[0]).a)){sCb(i.b>0);i.a.Xb(i.c=--i.b);Aib(i,g);e=true}else if(!!h.e&&h.e.gc()>0){f=(!h.e&&(h.e=new Rkb),h.e).Mc(b);j=(!h.e&&(h.e=new Rkb),h.e).Mc(c);if(f||j){(!h.e&&(h.e=new Rkb),h.e).Fc(g);++g.c}}}e||(d.c[d.c.length]=g,true)} +function odc(a){var b,c,d;if(fcd(BD(vNb(a,(Nyc(),Vxc)),98))){for(c=new olb(a.j);c.a<c.c.c.length;){b=BD(mlb(c),11);b.j==(Ucd(),Scd)&&(d=BD(vNb(b,(wtc(),gtc)),10),d?G0b(b,BD(vNb(d,Hsc),61)):b.e.c.length-b.g.c.length<0?G0b(b,zcd):G0b(b,Tcd))}}else{for(c=new olb(a.j);c.a<c.c.c.length;){b=BD(mlb(c),11);d=BD(vNb(b,(wtc(),gtc)),10);d?G0b(b,BD(vNb(d,Hsc),61)):b.e.c.length-b.g.c.length<0?G0b(b,(Ucd(),zcd)):G0b(b,(Ucd(),Tcd))}yNb(a,Vxc,(dcd(),acd))}} +function age(a){var b,c,d;switch(a){case 91:case 93:case 45:case 94:case 44:case 92:d='\\'+String.fromCharCode(a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(a<32){c=(b=a>>>0,'0'+b.toString(16));d='\\x'+qfb(c,c.length-2,c.length)}else if(a>=Tje){c=(b=a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+String.fromCharCode(a&aje);}return d} +function yhb(a,b){var c,d,e,f,g,h,i,j,k,l;g=a.e;i=b.e;if(i==0){return a}if(g==0){return b.e==0?b:new Vgb(-b.e,b.d,b.a)}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);g<0&&(c=Jbb(c));i<0&&(d=Jbb(d));return ghb(Qbb(c,d))}e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==-1){l=-i;k=g==i?zhb(b.a,h,a.a,f):uhb(b.a,h,a.a,f)}else{l=g;if(g==i){if(e==0){return Hgb(),Ggb}k=zhb(a.a,f,b.a,h)}else{k=uhb(a.a,f,b.a,h)}}j=new Vgb(l,k.length,k);Jgb(j);return j} +function YPc(a){var b,c,d,e,f,g;this.e=new Rkb;this.a=new Rkb;for(c=a.b-1;c<3;c++){St(a,0,BD(Ut(a,0),8))}if(a.b<4){throw vbb(new Wdb('At (least dimension + 1) control points are necessary!'))}else{this.b=3;this.d=true;this.c=false;TPc(this,a.b+this.b-1);g=new Rkb;f=new olb(this.e);for(b=0;b<this.b-1;b++){Ekb(g,ED(mlb(f)))}for(e=Jsb(a,0);e.b!=e.d.c;){d=BD(Xsb(e),8);Ekb(g,ED(mlb(f)));Ekb(this.a,new bQc(d,g));tCb(0,g.c.length);g.c.splice(0,1)}}} +function Bac(a,b){var c,d,e,f,g,h,i,j,k;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(g.k==(j0b(),f0b)){i=(j=BD(Rr(new Sr(ur(R_b(g).a.Kc(),new Sq))),17),k=BD(Rr(new Sr(ur(U_b(g).a.Kc(),new Sq))),17),!Ccb(DD(vNb(j,(wtc(),ltc))))||!Ccb(DD(vNb(k,ltc))))?b:sbd(b);zac(g,i)}for(d=new Sr(ur(U_b(g).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);i=Ccb(DD(vNb(c,(wtc(),ltc))))?sbd(b):b;yac(c,i)}}}} +function yZc(a,b,c,d,e){var f,g,h;if(c.f>=b.o&&c.f<=b.f||b.a*0.5<=c.f&&b.a*1.5>=c.f){g=BD(Ikb(b.n,b.n.c.length-1),211);if(g.e+g.d+c.g+e<=d&&(f=BD(Ikb(b.n,b.n.c.length-1),211),f.f-a.f+c.f<=a.b||a.a.c.length==1)){EZc(b,c);return true}else if(b.s+c.g<=d&&(b.t+b.d+c.f+e<=a.b||a.a.c.length==1)){Ekb(b.b,c);h=BD(Ikb(b.n,b.n.c.length-1),211);Ekb(b.n,new VZc(b.s,h.f+h.a+b.i,b.i));QZc(BD(Ikb(b.n,b.n.c.length-1),211),c);GZc(b,c);return true}}return false} +function Zxd(a,b,c){var d,e,f,g;if(a.ej()){e=null;f=a.fj();d=a.Zi(1,g=uud(a,b,c),c,b,f);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){g!=null&&(e=a.dj(g,e));e=a.cj(c,e);a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}else{a.ij()&&(e=a.lj(g,c,e));if(!e){a.$i(d)}else{e.Ei(d);e.Fi()}}return g}else{g=uud(a,b,c);if(a.bj()&&!(a.ni()&&g!=null?pb(g,c):PD(g)===PD(c))){e=null;g!=null&&(e=a.dj(g,null));e=a.cj(c,e);!!e&&e.Fi()}return g}} +function YA(a,b){var c,d,e,f,g,h,i,j;b%=24;if(a.q.getHours()!=b){d=new $wnd.Date(a.q.getTime());d.setDate(d.getDate()+1);h=a.q.getTimezoneOffset()-d.getTimezoneOffset();if(h>0){i=h/60|0;j=h%60;e=a.q.getDate();c=a.q.getHours();c+i>=24&&++e;f=new $wnd.Date(a.q.getFullYear(),a.q.getMonth(),e,b+i,a.q.getMinutes()+j,a.q.getSeconds(),a.q.getMilliseconds());a.q.setTime(f.getTime())}}g=a.q.getTime();a.q.setTime(g+3600000);a.q.getHours()!=b&&a.q.setTime(g)} +function opc(a,b){var c,d,e,f,g;Odd(b,'Path-Like Graph Wrapping',1);if(a.b.c.length==0){Qdd(b);return}e=new Xoc(a);g=(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i)*e.f);c=g/(e.i==null&&(e.i=Soc(e,new Zoc)),Edb(e.i));if(e.b>c){Qdd(b);return}switch(BD(vNb(a,(Nyc(),Gyc)),337).g){case 2:f=new hpc;break;case 0:f=new Ync;break;default:f=new kpc;}d=f.Vf(a,e);if(!f.Wf()){switch(BD(vNb(a,Myc),338).g){case 2:d=tpc(e,d);break;case 1:d=rpc(e,d);}}npc(a,e,d);Qdd(b)} +function MFc(a,b){var c,d,e,f;Fub(a.d,a.e);a.c.a.$b();if(Edb(ED(vNb(b.j,(Nyc(),uwc))))!=0||Edb(ED(vNb(b.j,uwc)))!=0){c=dme;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;e<f;e++){d=WFc(a,b);if(d<c){c=d;ZFc(a);if(c==0){break}}}}else{c=Ohe;PD(vNb(b.j,ywc))!==PD((tAc(),rAc))&&yNb(b.j,(wtc(),Jsc),(Bcb(),true));f=BD(vNb(b.j,Ayc),19).a;for(e=0;e<f;e++){d=XFc(a,b);if(d<c){c=d;ZFc(a);if(c==0){break}}}}} +function spc(a,b){var c,d,e,f,g,h,i,j;g=new Rkb;h=0;c=0;i=0;while(h<b.c.length-1&&c<a.gc()){d=BD(a.Xb(c),19).a+i;while((tCb(h+1,b.c.length),BD(b.c[h+1],19)).a<d){++h}j=0;f=d-(tCb(h,b.c.length),BD(b.c[h],19)).a;e=(tCb(h+1,b.c.length),BD(b.c[h+1],19)).a-d;f>e&&++j;Ekb(g,(tCb(h+j,b.c.length),BD(b.c[h+j],19)));i+=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a-d;++c;while(c<a.gc()&&BD(a.Xb(c),19).a+i<=(tCb(h+j,b.c.length),BD(b.c[h+j],19)).a){++c}h+=1+j}return g} +function RKd(a){var b,c,d,e,f,g,h;if(!a.d){h=new XNd;b=KKd;f=b.a.zc(a,b);if(f==null){for(d=new Fyd(_Kd(a));d.e!=d.i.gc();){c=BD(Dyd(d),26);ytd(h,RKd(c))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}g=h.i;for(e=(!a.q&&(a.q=new cUd(n5,a,11,10)),new Fyd(a.q));e.e!=e.i.gc();++g){BD(Dyd(e),399)}ytd(h,(!a.q&&(a.q=new cUd(n5,a,11,10)),a.q));vud(h);a.d=new nNd((BD(qud(ZKd((NFd(),MFd).o),9),18),h.i),h.g);a.e=BD(h.g,673);a.e==null&&(a.e=LKd);$Kd(a).b&=-17}return a.d} +function M2d(a,b,c,d){var e,f,g,h,i,j;j=S6d(a.e.Tg(),b);i=0;e=BD(a.g,119);Q6d();if(BD(b,66).Oj()){for(g=0;g<a.i;++g){f=e[g];if(j.rl(f.ak())){if(pb(f,c)){return i}++i}}}else if(c!=null){for(h=0;h<a.i;++h){f=e[h];if(j.rl(f.ak())){if(pb(c,f.dd())){return i}++i}}if(d){i=0;for(g=0;g<a.i;++g){f=e[g];if(j.rl(f.ak())){if(PD(c)===PD(a3d(a,BD(f.dd(),56)))){return i}++i}}}}else{for(g=0;g<a.i;++g){f=e[g];if(j.rl(f.ak())){if(f.dd()==null){return i}++i}}}return -1} +function aed(a,b,c,d,e){var f,g,h,i,j,k,l,m,n;mmb();Okb(a,new Jed);g=Ru(a);n=new Rkb;m=new Rkb;h=null;i=0;while(g.b!=0){f=BD(g.b==0?null:(sCb(g.b!=0),Nsb(g,g.a.a)),157);if(!h||red(h)*qed(h)/2<red(f)*qed(f)){h=f;n.c[n.c.length]=f}else{i+=red(f)*qed(f);m.c[m.c.length]=f;if(m.c.length>1&&(i>red(h)*qed(h)/2||g.b==0)){l=new wed(m);k=red(h)/qed(h);j=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),j);h=l;n.c[n.c.length]=l;i=0;m.c=KC(SI,Uhe,1,0,5,1)}}}Gkb(n,m);return n} +function y6d(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;if(c.mh(b)){k=(n=b,!n?null:BD(d,49).xh(n));if(k){p=c.bh(b,a.a);o=b.t;if(o>1||o==-1){l=BD(p,69);m=BD(k,69);if(l.dc()){m.$b()}else{g=!!zUd(b);f=0;for(h=a.a?l.Kc():l.Zh();h.Ob();){j=BD(h.Pb(),56);e=BD(Wrb(a,j),56);if(!e){if(a.b&&!g){m.Xh(f,j);++f}}else{if(g){i=m.Xc(e);i==-1?m.Xh(f,e):f!=i&&m.ji(f,e)}else{m.Xh(f,e)}++f}}}}else{if(p==null){k.Wb(null)}else{e=Wrb(a,p);e==null?a.b&&!zUd(b)&&k.Wb(p):k.Wb(e)}}}}} +function E6b(a,b){var c,d,e,f,g,h,i,j;c=new L6b;for(e=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(OZb(d)){continue}h=d.c.i;if(F6b(h,C6b)){j=G6b(a,h,C6b,B6b);if(j==-1){continue}c.b=$wnd.Math.max(c.b,j);!c.a&&(c.a=new Rkb);Ekb(c.a,h)}}for(g=new Sr(ur(U_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);if(OZb(f)){continue}i=f.d.i;if(F6b(i,B6b)){j=G6b(a,i,B6b,C6b);if(j==-1){continue}c.d=$wnd.Math.max(c.d,j);!c.c&&(c.c=new Rkb);Ekb(c.c,i)}}return c} +function Khb(a){Dhb();var b,c,d,e;b=QD(a);if(a<Chb.length){return Chb[b]}else if(a<=50){return Pgb((Hgb(),Egb),b)}else if(a<=_ie){return Qgb(Pgb(Bhb[1],b),b)}if(a>1000000){throw vbb(new ocb('power of ten too big'))}if(a<=Ohe){return Qgb(Pgb(Bhb[1],b),b)}d=Pgb(Bhb[1],Ohe);e=d;c=Cbb(a-Ohe);b=QD(a%Ohe);while(ybb(c,Ohe)>0){e=Ogb(e,d);c=Qbb(c,Ohe)}e=Ogb(e,Pgb(Bhb[1],b));e=Qgb(e,Ohe);c=Cbb(a-Ohe);while(ybb(c,Ohe)>0){e=Qgb(e,Ohe);c=Qbb(c,Ohe)}e=Qgb(e,b);return e} +function X5b(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Hierarchical port dummy size processing',1);i=new Rkb;k=new Rkb;d=Edb(ED(vNb(a,(Nyc(),myc))));c=d*2;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);i.c=KC(SI,Uhe,1,0,5,1);k.c=KC(SI,Uhe,1,0,5,1);for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(g.k==(j0b(),e0b)){j=BD(vNb(g,(wtc(),Hsc)),61);j==(Ucd(),Acd)?(i.c[i.c.length]=g,true):j==Rcd&&(k.c[k.c.length]=g,true)}}Y5b(i,true,c);Y5b(k,false,c)}Qdd(b)} +function Oac(a,b){var c,d,e,f,g,h,i;Odd(b,'Layer constraint postprocessing',1);i=a.b;if(i.c.length!=0){d=(tCb(0,i.c.length),BD(i.c[0],29));g=BD(Ikb(i,i.c.length-1),29);c=new H1b(a);f=new H1b(a);Mac(a,d,g,c,f);c.a.c.length==0||(wCb(0,i.c.length),aCb(i.c,0,c));f.a.c.length==0||(i.c[i.c.length]=f,true)}if(wNb(a,(wtc(),Lsc))){e=new H1b(a);h=new H1b(a);Pac(a,e,h);e.a.c.length==0||(wCb(0,i.c.length),aCb(i.c,0,e));h.a.c.length==0||(i.c[i.c.length]=h,true)}Qdd(b)} +function b6b(a){var b,c,d,e,f,g,h,i,j,k;for(i=new olb(a.a);i.a<i.c.c.length;){h=BD(mlb(i),10);if(h.k!=(j0b(),e0b)){continue}e=BD(vNb(h,(wtc(),Hsc)),61);if(e==(Ucd(),zcd)||e==Tcd){for(d=new Sr(ur(O_b(h).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);b=c.a;if(b.b==0){continue}j=c.c;if(j.i==h){f=(sCb(b.b!=0),BD(b.a.a.c,8));f.b=l7c(OC(GC(m1,1),nie,8,0,[j.i.n,j.n,j.a])).b}k=c.d;if(k.i==h){g=(sCb(b.b!=0),BD(b.c.b.c,8));g.b=l7c(OC(GC(m1,1),nie,8,0,[k.i.n,k.n,k.a])).b}}}}} +function Tec(a,b){var c,d,e,f,g,h,i;Odd(b,'Sort By Input Model '+vNb(a,(Nyc(),ywc)),1);e=0;for(d=new olb(a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);i=e==0?0:e-1;h=BD(Ikb(a.b,i),29);for(g=new olb(c.a);g.a<g.c.c.length;){f=BD(mlb(g),10);if(PD(vNb(f,Vxc))!==PD((dcd(),Zbd))&&PD(vNb(f,Vxc))!==PD($bd)){mmb();Okb(f.j,new Tnc(h,Xec(f)));Sdd(b,'Node '+f+' ports: '+f.j)}}mmb();Okb(c.a,new Bnc(h,BD(vNb(a,ywc),339),BD(vNb(a,wwc),378)));Sdd(b,'Layer '+e+': '+c);++e}Qdd(b)} +function U1b(a,b){var c,d,e,f;f=P1b(b);MAb(new YAb(null,(!b.c&&(b.c=new cUd(F2,b,9,9)),new Kub(b.c,16))),new i2b(f));e=BD(vNb(f,(wtc(),Ksc)),21);O1b(b,e);if(e.Hc((Orc(),Hrc))){for(d=new Fyd((!b.c&&(b.c=new cUd(F2,b,9,9)),b.c));d.e!=d.i.gc();){c=BD(Dyd(d),118);Y1b(a,b,f,c)}}BD(hkd(b,(Nyc(),Fxc)),174).gc()!=0&&L1b(b,f);Ccb(DD(vNb(f,Mxc)))&&e.Fc(Mrc);wNb(f,hyc)&&Wyc(new ezc(Edb(ED(vNb(f,hyc)))),f);PD(hkd(b,axc))===PD((hbd(),ebd))?V1b(a,b,f):T1b(a,b,f);return f} +function hic(a,b,c,d){var e,f,g;this.j=new Rkb;this.k=new Rkb;this.b=new Rkb;this.c=new Rkb;this.e=new I6c;this.i=new s7c;this.f=new lEb;this.d=new Rkb;this.g=new Rkb;Ekb(this.b,a);Ekb(this.b,b);this.e.c=$wnd.Math.min(a.a,b.a);this.e.d=$wnd.Math.min(a.b,b.b);this.e.b=$wnd.Math.abs(a.a-b.a);this.e.a=$wnd.Math.abs(a.b-b.b);e=BD(vNb(d,(Nyc(),jxc)),74);if(e){for(g=Jsb(e,0);g.b!=g.d.c;){f=BD(Xsb(g),8);ADb(f.a,a.a)&&Dsb(this.i,f)}}!!c&&Ekb(this.j,c);Ekb(this.k,d)} +function oTb(a,b,c){var d,e,f,g,h,i,j,k,l,m;k=new gub(new ETb(c));h=KC(sbb,dle,25,a.f.e.c.length,16,1);Glb(h,h.length);c[b.b]=0;for(j=new olb(a.f.e);j.a<j.c.c.length;){i=BD(mlb(j),144);i.b!=b.b&&(c[i.b]=Ohe);zCb(cub(k,i))}while(k.b.c.length!=0){l=BD(dub(k),144);h[l.b]=true;for(f=au(new bu(a.b,l),0);f.c;){e=BD(uu(f),282);m=rTb(e,l);if(h[m.b]){continue}wNb(e,(bTb(),RSb))?(g=Edb(ED(vNb(e,RSb)))):(g=a.c);d=c[l.b]+g;if(d<c[m.b]){c[m.b]=d;eub(k,m);zCb(cub(k,m))}}}} +function xMc(a,b,c){var d,e,f,g,h,i,j,k,l;e=true;for(g=new olb(a.b);g.a<g.c.c.length;){f=BD(mlb(g),29);j=Qje;k=null;for(i=new olb(f.a);i.a<i.c.c.length;){h=BD(mlb(i),10);l=Edb(b.p[h.p])+Edb(b.d[h.p])-h.d.d;d=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a;if(l>j&&d>j){k=h;j=Edb(b.p[h.p])+Edb(b.d[h.p])+h.o.b+h.d.a}else{e=false;c.n&&Sdd(c,'bk node placement breaks on '+h+' which should have been after '+k);break}}if(!e){break}}c.n&&Sdd(c,b+' is feasible: '+e);return e} +function XNc(a,b,c,d){var e,f,g,h,i,j,k;h=-1;for(k=new olb(a);k.a<k.c.c.length;){j=BD(mlb(k),112);j.g=h--;e=Tbb(tAb(PAb(JAb(new YAb(null,new Kub(j.f,16)),new ZNc),new _Nc)).d);f=Tbb(tAb(PAb(JAb(new YAb(null,new Kub(j.k,16)),new bOc),new dOc)).d);g=e;i=f;if(!d){g=Tbb(tAb(PAb(new YAb(null,new Kub(j.f,16)),new fOc)).d);i=Tbb(tAb(PAb(new YAb(null,new Kub(j.k,16)),new hOc)).d)}j.d=g;j.a=e;j.i=i;j.b=f;i==0?(Gsb(c,j,c.c.b,c.c),true):g==0&&(Gsb(b,j,b.c.b,b.c),true)}} +function $8b(a,b,c,d){var e,f,g,h,i,j,k;if(c.d.i==b.i){return}e=new b0b(a);__b(e,(j0b(),g0b));yNb(e,(wtc(),$sc),c);yNb(e,(Nyc(),Vxc),(dcd(),$bd));d.c[d.c.length]=e;g=new H0b;F0b(g,e);G0b(g,(Ucd(),Tcd));h=new H0b;F0b(h,e);G0b(h,zcd);k=c.d;RZb(c,g);f=new UZb;tNb(f,c);yNb(f,jxc,null);QZb(f,h);RZb(f,k);j=new Bib(c.b,0);while(j.b<j.d.gc()){i=(sCb(j.b<j.d.gc()),BD(j.d.Xb(j.c=j.b++),70));if(PD(vNb(i,Qwc))===PD((qad(),oad))){yNb(i,Dsc,c);uib(j);Ekb(f.b,i)}}a9b(e,g,h)} +function Z8b(a,b,c,d){var e,f,g,h,i,j,k;if(c.c.i==b.i){return}e=new b0b(a);__b(e,(j0b(),g0b));yNb(e,(wtc(),$sc),c);yNb(e,(Nyc(),Vxc),(dcd(),$bd));d.c[d.c.length]=e;g=new H0b;F0b(g,e);G0b(g,(Ucd(),Tcd));h=new H0b;F0b(h,e);G0b(h,zcd);RZb(c,g);f=new UZb;tNb(f,c);yNb(f,jxc,null);QZb(f,h);RZb(f,b);a9b(e,g,h);j=new Bib(c.b,0);while(j.b<j.d.gc()){i=(sCb(j.b<j.d.gc()),BD(j.d.Xb(j.c=j.b++),70));k=BD(vNb(i,Qwc),272);if(k==(qad(),oad)){wNb(i,Dsc)||yNb(i,Dsc,c);uib(j);Ekb(f.b,i)}}} +function dDc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;m=new Rkb;r=Gx(d);q=b*a.a;l=0;o=0;f=new Tqb;g=new Tqb;h=new Rkb;s=0;t=0;n=0;p=0;j=0;k=0;while(r.a.gc()!=0){i=hDc(r,e,g);if(i){r.a.Bc(i)!=null;h.c[h.c.length]=i;f.a.zc(i,f);o=a.f[i.p];s+=a.e[i.p]-o*a.b;l=a.c[i.p];t+=l*a.b;k+=o*a.b;p+=a.e[i.p]}if(!i||r.a.gc()==0||s>=q&&a.e[i.p]>o*a.b||t>=c*q){m.c[m.c.length]=h;h=new Rkb;ye(g,f);f.a.$b();j-=k;n=$wnd.Math.max(n,j*a.b+p);j+=t;s=t;t=0;k=0;p=0}}return new vgd(n,m)} +function q4c(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;for(c=(j=(new $ib(a.c.b)).a.vc().Kc(),new djb(j));c.a.Ob();){b=(h=BD(c.a.Pb(),42),BD(h.dd(),149));e=b.a;e==null&&(e='');d=i4c(a.c,e);!d&&e.length==0&&(d=u4c(a));!!d&&!ze(d.c,b,false)&&Dsb(d.c,b)}for(g=Jsb(a.a,0);g.b!=g.d.c;){f=BD(Xsb(g),478);k=j4c(a.c,f.a);n=j4c(a.c,f.b);!!k&&!!n&&Dsb(k.c,new vgd(n,f.c))}Osb(a.a);for(m=Jsb(a.b,0);m.b!=m.d.c;){l=BD(Xsb(m),478);b=g4c(a.c,l.a);i=j4c(a.c,l.b);!!b&&!!i&&B3c(b,i,l.c)}Osb(a.b)} +function qvd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=new fC(a);g=new ird;e=(ko(g.g),ko(g.j),Uhb(g.b),ko(g.d),ko(g.i),Uhb(g.k),Uhb(g.c),Uhb(g.e),n=drd(g,f,null),ard(g,f),n);if(b){j=new fC(b);h=rvd(j);jfd(e,OC(GC(g2,1),Uhe,527,0,[h]))}m=false;l=false;if(c){j=new fC(c);que in j.a&&(m=aC(j,que).ge().a);rue in j.a&&(l=aC(j,rue).ge().a)}k=Vdd(Xdd(new Zdd,m),l);t2c(new w2c,e,k);que in f.a&&cC(f,que,null);if(m||l){i=new eC;nvd(k,i,m,l);cC(f,que,i)}d=new Prd(g);Ghe(new _ud(e),d)} +function pA(a,b,c){var d,e,f,g,h,i,j,k,l;g=new nB;j=OC(GC(WD,1),oje,25,15,[0]);e=-1;f=0;d=0;for(i=0;i<a.b.c.length;++i){k=BD(Ikb(a.b,i),434);if(k.b>0){if(e<0&&k.a){e=i;f=j[0];d=0}if(e>=0){h=k.b;if(i==e){h-=d++;if(h==0){return 0}}if(!wA(b,j,k,h,g)){i=e-1;j[0]=f;continue}}else{e=-1;if(!wA(b,j,k,0,g)){return 0}}}else{e=-1;if(bfb(k.c,0)==32){l=j[0];uA(b,j);if(j[0]>l){continue}}else if(ofb(b,k.c,j[0])){j[0]+=k.c.length;continue}return 0}}if(!mB(g,c)){return 0}return j[0]} +function SKd(a){var b,c,d,e,f,g,h,i;if(!a.f){i=new CNd;h=new CNd;b=KKd;g=b.a.zc(a,b);if(g==null){for(f=new Fyd(_Kd(a));f.e!=f.i.gc();){e=BD(Dyd(f),26);ytd(i,SKd(e))}b.a.Bc(a)!=null;b.a.gc()==0&&undefined}for(d=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));d.e!=d.i.gc();){c=BD(Dyd(d),170);JD(c,99)&&wtd(h,BD(c,18))}vud(h);a.r=new UNd(a,(BD(qud(ZKd((NFd(),MFd).o),6),18),h.i),h.g);ytd(i,a.r);vud(i);a.f=new nNd((BD(qud(ZKd(MFd.o),5),18),i.i),i.g);$Kd(a).b&=-3}return a.f} +function rMb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.o;d=KC(WD,oje,25,g,15,1);e=KC(WD,oje,25,g,15,1);c=a.p;b=KC(WD,oje,25,c,15,1);f=KC(WD,oje,25,c,15,1);for(j=0;j<g;j++){l=0;while(l<c&&!YMb(a,j,l)){++l}d[j]=l}for(k=0;k<g;k++){l=c-1;while(l>=0&&!YMb(a,k,l)){--l}e[k]=l}for(n=0;n<c;n++){h=0;while(h<g&&!YMb(a,h,n)){++h}b[n]=h}for(o=0;o<c;o++){h=g-1;while(h>=0&&!YMb(a,h,o)){--h}f[o]=h}for(i=0;i<g;i++){for(m=0;m<c;m++){i<f[m]&&i>b[m]&&m<e[i]&&m>d[i]&&aNb(a,i,m,false,true)}}} +function lRb(a){var b,c,d,e,f,g,h,i;c=Ccb(DD(vNb(a,(wSb(),cSb))));f=a.a.c.d;h=a.a.d.d;if(c){g=Y6c(c7c(new f7c(h.a,h.b),f),0.5);i=Y6c(R6c(a.e),0.5);b=c7c(P6c(new f7c(f.a,f.b),g),i);a7c(a.d,b)}else{e=Edb(ED(vNb(a.a,tSb)));d=a.d;if(f.a>=h.a){if(f.b>=h.b){d.a=h.a+(f.a-h.a)/2+e;d.b=h.b+(f.b-h.b)/2-e-a.e.b}else{d.a=h.a+(f.a-h.a)/2+e;d.b=f.b+(h.b-f.b)/2+e}}else{if(f.b>=h.b){d.a=f.a+(h.a-f.a)/2+e;d.b=h.b+(f.b-h.b)/2+e}else{d.a=f.a+(h.a-f.a)/2+e;d.b=f.b+(h.b-f.b)/2-e-a.e.b}}}} +function Qge(a,b){var c,d,e,f,g,h,i;if(a==null){return null}f=a.length;if(f==0){return ''}i=KC(TD,$ie,25,f,15,1);ACb(0,f,a.length);ACb(0,f,i.length);ffb(a,0,f,i,0);c=null;h=b;for(e=0,g=0;e<f;e++){d=i[e];lde();if(d<=32&&(kde[d]&2)!=0){if(h){!c&&(c=new Jfb(a));Gfb(c,e-g++)}else{h=b;if(d!=32){!c&&(c=new Jfb(a));kcb(c,e-g,e-g+1,String.fromCharCode(32))}}}else{h=false}}if(h){if(!c){return a.substr(0,f-1)}else{f=c.a.length;return f>0?qfb(c.a,0,f-1):''}}else{return !c?a:c.a}} +function DPb(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Yle),'ELK DisCo'),'Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out.'),new GPb)));p4c(a,Yle,Zle,Ksd(BPb));p4c(a,Yle,$le,Ksd(vPb));p4c(a,Yle,_le,Ksd(qPb));p4c(a,Yle,ame,Ksd(wPb));p4c(a,Yle,Zke,Ksd(zPb));p4c(a,Yle,$ke,Ksd(yPb));p4c(a,Yle,Yke,Ksd(APb));p4c(a,Yle,_ke,Ksd(xPb));p4c(a,Yle,Tle,Ksd(sPb));p4c(a,Yle,Ule,Ksd(rPb));p4c(a,Yle,Vle,Ksd(tPb));p4c(a,Yle,Wle,Ksd(uPb))} +function Zbc(a,b,c,d){var e,f,g,h,i,j,k,l,m;f=new b0b(a);__b(f,(j0b(),i0b));yNb(f,(Nyc(),Vxc),(dcd(),$bd));e=0;if(b){g=new H0b;yNb(g,(wtc(),$sc),b);yNb(f,$sc,b.i);G0b(g,(Ucd(),Tcd));F0b(g,f);m=k_b(b.e);for(j=m,k=0,l=j.length;k<l;++k){i=j[k];RZb(i,g)}yNb(b,gtc,f);++e}if(c){h=new H0b;yNb(f,(wtc(),$sc),c.i);yNb(h,$sc,c);G0b(h,(Ucd(),zcd));F0b(h,f);m=k_b(c.g);for(j=m,k=0,l=j.length;k<l;++k){i=j[k];QZb(i,h)}yNb(c,gtc,f);++e}yNb(f,(wtc(),ysc),meb(e));d.c[d.c.length]=f;return f} +function Smd(){Smd=ccb;Qmd=OC(GC(TD,1),$ie,25,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]);Rmd=new RegExp('[ \t\n\r\f]+');try{Pmd=OC(GC(c6,1),Uhe,2015,0,[new EQd((GA(),IA("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",LA((KA(),KA(),JA))))),new EQd(IA("yyyy-MM-dd'T'HH:mm:ss'.'SSS",LA((null,JA)))),new EQd(IA("yyyy-MM-dd'T'HH:mm:ss",LA((null,JA)))),new EQd(IA("yyyy-MM-dd'T'HH:mm",LA((null,JA)))),new EQd(IA('yyyy-MM-dd',LA((null,JA))))])}catch(a){a=ubb(a);if(!JD(a,78))throw vbb(a)}} +function qgb(a){var b,c,d,e;d=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0||a.a==0&&a.f!=-1&&a.e<0){return d}b=pgb(a)<0?1:0;c=a.e;e=(d.length+1+$wnd.Math.abs(QD(a.e)),new Vfb);b==1&&(e.a+='-',e);if(a.e>0){c-=d.length-b;if(c>=0){e.a+='0.';for(;c>egb.length;c-=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(c));Qfb(e,d.substr(b))}else{c=b-c;Qfb(e,qfb(d,b,QD(c)));e.a+='.';Qfb(e,pfb(d,QD(c)))}}else{Qfb(e,d.substr(b));for(;c<-egb.length;c+=egb.length){Rfb(e,egb)}Sfb(e,egb,QD(-c))}return e.a} +function v6c(a,b,c,d){var e,f,g,h,i,j,k,l,m;i=c7c(new f7c(c.a,c.b),a);j=i.a*b.b-i.b*b.a;k=b.a*d.b-b.b*d.a;l=(i.a*d.b-i.b*d.a)/k;m=j/k;if(k==0){if(j==0){e=P6c(new f7c(c.a,c.b),Y6c(new f7c(d.a,d.b),0.5));f=S6c(a,e);g=S6c(P6c(new f7c(a.a,a.b),b),e);h=$wnd.Math.sqrt(d.a*d.a+d.b*d.b)*0.5;if(f<g&&f<=h){return new f7c(a.a,a.b)}if(g<=h){return P6c(new f7c(a.a,a.b),b)}return null}else{return null}}else{return l>=0&&l<=1&&m>=0&&m<=1?P6c(new f7c(a.a,a.b),Y6c(new f7c(b.a,b.b),l)):null}} +function OTb(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(h=new olb(a.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(g.k==(j0b(),e0b)){e=BD(vNb(g,Hsc),61);e==(Ucd(),zcd)?(g.n.a+=c.a-b.a):e==Rcd&&(g.n.b+=c.b-b.b)}}}f=a.d;a.f.a=c.a-f.b-f.c;a.f.b=c.b-f.d-f.a} +function H5b(a,b,c){var d,e,f,g,h;d=BD(vNb(a,(Nyc(),zwc)),21);c.a>b.a&&(d.Hc((i8c(),c8c))?(a.c.a+=(c.a-b.a)/2):d.Hc(e8c)&&(a.c.a+=c.a-b.a));c.b>b.b&&(d.Hc((i8c(),g8c))?(a.c.b+=(c.b-b.b)/2):d.Hc(f8c)&&(a.c.b+=c.b-b.b));if(BD(vNb(a,(wtc(),Ksc)),21).Hc((Orc(),Hrc))&&(c.a>b.a||c.b>b.b)){for(g=new olb(a.a);g.a<g.c.c.length;){f=BD(mlb(g),10);if(f.k==(j0b(),e0b)){e=BD(vNb(f,Hsc),61);e==(Ucd(),zcd)?(f.n.a+=c.a-b.a):e==Rcd&&(f.n.b+=c.b-b.b)}}}h=a.d;a.f.a=c.a-h.b-h.c;a.f.b=c.b-h.d-h.a} +function kMc(a){var b,c,d,e,f,g,h,i,j,k,l,m;b=DMc(a);for(k=(h=(new Pib(b)).a.vc().Kc(),new Vib(h));k.a.Ob();){j=(e=BD(k.a.Pb(),42),BD(e.cd(),10));l=0;m=0;l=j.d.d;m=j.o.b+j.d.a;a.d[j.p]=0;c=j;while((f=a.a[c.p])!=j){d=FMc(c,f);i=0;a.c==(YLc(),WLc)?(i=d.d.n.b+d.d.a.b-d.c.n.b-d.c.a.b):(i=d.c.n.b+d.c.a.b-d.d.n.b-d.d.a.b);g=Edb(a.d[c.p])+i;a.d[f.p]=g;l=$wnd.Math.max(l,f.d.d-g);m=$wnd.Math.max(m,g+f.o.b+f.d.a);c=f}c=j;do{a.d[c.p]=Edb(a.d[c.p])+l;c=a.a[c.p]}while(c!=j);a.b[j.p]=l+m}} +function LOb(a){var b,c,d,e,f,g,h,i,j,k,l,m;a.b=false;l=Pje;i=Qje;m=Pje;j=Qje;for(d=a.e.a.ec().Kc();d.Ob();){c=BD(d.Pb(),266);e=c.a;l=$wnd.Math.min(l,e.c);i=$wnd.Math.max(i,e.c+e.b);m=$wnd.Math.min(m,e.d);j=$wnd.Math.max(j,e.d+e.a);for(g=new olb(c.c);g.a<g.c.c.length;){f=BD(mlb(g),395);b=f.a;if(b.a){k=e.d+f.b.b;h=k+f.c;m=$wnd.Math.min(m,k);j=$wnd.Math.max(j,h)}else{k=e.c+f.b.a;h=k+f.c;l=$wnd.Math.min(l,k);i=$wnd.Math.max(i,h)}}}a.a=new f7c(i-l,j-m);a.c=new f7c(l+a.d.a,m+a.d.b)} +function xZc(a,b,c){var d,e,f,g,h,i,j,k,l;l=new Rkb;k=new x$c(0,c);f=0;s$c(k,new PZc(0,0,k,c));e=0;for(j=new Fyd(a);j.e!=j.i.gc();){i=BD(Dyd(j),33);d=BD(Ikb(k.a,k.a.c.length-1),187);h=e+i.g+(BD(Ikb(k.a,0),187).b.c.length==0?0:c);if(h>b){e=0;f+=k.b+c;l.c[l.c.length]=k;k=new x$c(f,c);d=new PZc(0,k.f,k,c);s$c(k,d);e=0}if(d.b.c.length==0||i.f>=d.o&&i.f<=d.f||d.a*0.5<=i.f&&d.a*1.5>=i.f){EZc(d,i)}else{g=new PZc(d.s+d.r+c,k.f,k,c);s$c(k,g);EZc(g,i)}e=i.i+i.g}l.c[l.c.length]=k;return l} +function OKd(a){var b,c,d,e,f,g,h,i;if(!a.a){a.o=null;i=new GNd(a);b=new KNd;c=KKd;h=c.a.zc(a,c);if(h==null){for(g=new Fyd(_Kd(a));g.e!=g.i.gc();){f=BD(Dyd(g),26);ytd(i,OKd(f))}c.a.Bc(a)!=null;c.a.gc()==0&&undefined}for(e=(!a.s&&(a.s=new cUd(t5,a,21,17)),new Fyd(a.s));e.e!=e.i.gc();){d=BD(Dyd(e),170);JD(d,322)&&wtd(b,BD(d,34))}vud(b);a.k=new PNd(a,(BD(qud(ZKd((NFd(),MFd).o),7),18),b.i),b.g);ytd(i,a.k);vud(i);a.a=new nNd((BD(qud(ZKd(MFd.o),4),18),i.i),i.g);$Kd(a).b&=-2}return a.a} +function vZc(a,b,c,d,e,f,g){var h,i,j,k,l,m;l=false;i=ZZc(c.q,b.f+b.b-c.q.f);m=e-(c.q.e+i-g);if(m<d.g){return false}j=f==a.c.length-1&&m>=(tCb(f,a.c.length),BD(a.c[f],200)).e;k=(h=MZc(d,m,false),h.a);if(k>b.b&&!j){return false}if(j||k<=b.b){if(j&&k>b.b){c.d=k;KZc(c,JZc(c,k))}else{$Zc(c.q,i);c.c=true}KZc(d,e-(c.s+c.r));OZc(d,c.q.e+c.q.d,b.f);s$c(b,d);if(a.c.length>f){v$c((tCb(f,a.c.length),BD(a.c[f],200)),d);(tCb(f,a.c.length),BD(a.c[f],200)).a.c.length==0&&Kkb(a,f)}l=true}return l} +function C2d(a,b,c,d){var e,f,g,h,i,j,k;k=S6d(a.e.Tg(),b);e=0;f=BD(a.g,119);i=null;Q6d();if(BD(b,66).Oj()){for(h=0;h<a.i;++h){g=f[h];if(k.rl(g.ak())){if(pb(g,c)){i=g;break}++e}}}else if(c!=null){for(h=0;h<a.i;++h){g=f[h];if(k.rl(g.ak())){if(pb(c,g.dd())){i=g;break}++e}}}else{for(h=0;h<a.i;++h){g=f[h];if(k.rl(g.ak())){if(g.dd()==null){i=g;break}++e}}}if(i){if(oid(a.e)){j=b.$j()?new O7d(a.e,4,b,c,null,e,true):H2d(a,b.Kj()?2:1,b,c,b.zj(),-1,true);d?d.Ei(j):(d=j)}d=B2d(a,i,d)}return d} +function kYc(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p;o=0;p=0;i=e.c;h=e.b;k=c.f;n=c.g;switch(b.g){case 0:o=d.i+d.g+g;a.c?(p=tYc(o,f,d,g)):(p=d.j);m=$wnd.Math.max(i,o+n);j=$wnd.Math.max(h,p+k);break;case 1:p=d.j+d.f+g;a.c?(o=sYc(p,f,d,g)):(o=d.i);m=$wnd.Math.max(i,o+n);j=$wnd.Math.max(h,p+k);break;case 2:o=i+g;p=0;m=i+g+n;j=$wnd.Math.max(h,k);break;case 3:o=0;p=h+g;m=$wnd.Math.max(i,n);j=h+g+k;break;default:throw vbb(new Wdb('IllegalPlacementOption.'));}l=new e$c(a.a,m,j,b,o,p);return l} +function R2b(a){var b,c,d,e,f,g,h,i,j,k,l,m;h=a.d;l=BD(vNb(a,(wtc(),vtc)),15);b=BD(vNb(a,tsc),15);if(!l&&!b){return}f=Edb(ED(pBc(a,(Nyc(),iyc))));g=Edb(ED(pBc(a,jyc)));m=0;if(l){j=0;for(e=l.Kc();e.Ob();){d=BD(e.Pb(),10);j=$wnd.Math.max(j,d.o.b);m+=d.o.a}m+=f*(l.gc()-1);h.d+=j+g}c=0;if(b){j=0;for(e=b.Kc();e.Ob();){d=BD(e.Pb(),10);j=$wnd.Math.max(j,d.o.b);c+=d.o.a}c+=f*(b.gc()-1);h.a+=j+g}i=$wnd.Math.max(m,c);if(i>a.o.a){k=(i-a.o.a)/2;h.b=$wnd.Math.max(h.b,k);h.c=$wnd.Math.max(h.c,k)}} +function rvd(a){var b,c,d,e,f,g,h,i;f=new b2c;Z1c(f,(Y1c(),V1c));for(d=(e=$B(a,KC(ZI,nie,2,0,6,1)),new vib(new amb((new mC(a,e)).b)));d.b<d.d.gc();){c=(sCb(d.b<d.d.gc()),GD(d.d.Xb(d.c=d.b++)));g=k4c(lvd,c);if(g){b=aC(a,c);b.je()?(h=b.je().a):b.ge()?(h=''+b.ge().a):b.he()?(h=''+b.he().a):(h=b.Ib());i=o5c(g,h);if(i!=null){(uqb(g.j,(N5c(),K5c))||uqb(g.j,L5c))&&xNb(_1c(f,E2),g,i);uqb(g.j,I5c)&&xNb(_1c(f,B2),g,i);uqb(g.j,M5c)&&xNb(_1c(f,F2),g,i);uqb(g.j,J5c)&&xNb(_1c(f,D2),g,i)}}}return f} +function J2d(a,b,c,d){var e,f,g,h,i,j;i=S6d(a.e.Tg(),b);f=BD(a.g,119);if(T6d(a.e,b)){e=0;for(h=0;h<a.i;++h){g=f[h];if(i.rl(g.ak())){if(e==c){Q6d();if(BD(b,66).Oj()){return g}else{j=g.dd();j!=null&&d&&JD(b,99)&&(BD(b,18).Bb&Tje)!=0&&(j=b3d(a,b,h,e,j));return j}}++e}}throw vbb(new qcb(gve+c+mue+e))}else{e=0;for(h=0;h<a.i;++h){g=f[h];if(i.rl(g.ak())){Q6d();if(BD(b,66).Oj()){return g}else{j=g.dd();j!=null&&d&&JD(b,99)&&(BD(b,18).Bb&Tje)!=0&&(j=b3d(a,b,h,e,j));return j}}++e}return b.zj()}} +function K2d(a,b,c){var d,e,f,g,h,i,j,k;e=BD(a.g,119);if(T6d(a.e,b)){return Q6d(),BD(b,66).Oj()?new R7d(b,a):new f7d(b,a)}else{j=S6d(a.e.Tg(),b);d=0;for(h=0;h<a.i;++h){f=e[h];g=f.ak();if(j.rl(g)){Q6d();if(BD(b,66).Oj()){return f}else if(g==(m8d(),k8d)||g==h8d){i=new Wfb(fcb(f.dd()));while(++h<a.i){f=e[h];g=f.ak();(g==k8d||g==h8d)&&Qfb(i,fcb(f.dd()))}return j6d(BD(b.Yj(),148),i.a)}else{k=f.dd();k!=null&&c&&JD(b,99)&&(BD(b,18).Bb&Tje)!=0&&(k=b3d(a,b,h,d,k));return k}}++d}return b.zj()}} +function MZc(a,b,c){var d,e,f,g,h,i,j,k,l,m;f=0;g=a.t;e=0;d=0;i=0;m=0;l=0;if(c){a.n.c=KC(SI,Uhe,1,0,5,1);Ekb(a.n,new VZc(a.s,a.t,a.i))}h=0;for(k=new olb(a.b);k.a<k.c.c.length;){j=BD(mlb(k),33);if(f+j.g+(h>0?a.i:0)>b&&i>0){f=0;g+=i+a.i;e=$wnd.Math.max(e,m);d+=i+a.i;i=0;m=0;if(c){++l;Ekb(a.n,new VZc(a.s,g,a.i))}h=0}m+=j.g+(h>0?a.i:0);i=$wnd.Math.max(i,j.f);c&&QZc(BD(Ikb(a.n,l),211),j);f+=j.g+(h>0?a.i:0);++h}e=$wnd.Math.max(e,m);d+=i;if(c){a.r=e;a.d=d;u$c(a.j)}return new J6c(a.s,a.t,e,d)} +function $fb(a,b,c,d,e){Zfb();var f,g,h,i,j,k,l,m,n;vCb(a,'src');vCb(c,'dest');m=rb(a);i=rb(c);rCb((m.i&4)!=0,'srcType is not an array');rCb((i.i&4)!=0,'destType is not an array');l=m.c;g=i.c;rCb((l.i&1)!=0?l==g:(g.i&1)==0,"Array types don't match");n=a.length;j=c.length;if(b<0||d<0||e<0||b+e>n||d+e>j){throw vbb(new pcb)}if((l.i&1)==0&&m!=i){k=CD(a);f=CD(c);if(PD(a)===PD(c)&&b<d){b+=e;for(h=d+e;h-->d;){NC(f,h,k[--b])}}else{for(h=d+e;d<h;){NC(f,d++,k[b++])}}}else e>0&&$Bb(a,b,c,d,e,true)} +function phb(){phb=ccb;nhb=OC(GC(WD,1),oje,25,15,[Rie,1162261467,Iie,1220703125,362797056,1977326743,Iie,387420489,Jje,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,1280000000,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729000000,887503681,Iie,1291467969,1544804416,1838265625,60466176]);ohb=OC(GC(WD,1),oje,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])} +function soc(a){var b,c,d,e,f,g,h,i;for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);for(g=new olb(Mu(d.a));g.a<g.c.c.length;){f=BD(mlb(g),10);if(ioc(f)){c=BD(vNb(f,(wtc(),usc)),305);if(!c.g&&!!c.d){b=c;i=c.d;while(i){roc(i.i,i.k,false,true);zoc(b.a);zoc(i.i);zoc(i.k);zoc(i.b);RZb(i.c,b.c.d);RZb(b.c,null);$_b(b.a,null);$_b(i.i,null);$_b(i.k,null);$_b(i.b,null);h=new goc(b.i,i.a,b.e,i.j,i.f);h.k=b.k;h.n=b.n;h.b=b.b;h.c=i.c;h.g=b.g;h.d=i.d;yNb(b.i,usc,h);yNb(i.a,usc,h);i=i.d;b=h}}}}}} +function Xfe(a,b){var c,d,e,f,g;g=BD(b,136);Yfe(a);Yfe(g);if(g.b==null)return;a.c=true;if(a.b==null){a.b=KC(WD,oje,25,g.b.length,15,1);$fb(g.b,0,a.b,0,g.b.length);return}f=KC(WD,oje,25,a.b.length+g.b.length,15,1);for(c=0,d=0,e=0;c<a.b.length||d<g.b.length;){if(c>=a.b.length){f[e++]=g.b[d++];f[e++]=g.b[d++]}else if(d>=g.b.length){f[e++]=a.b[c++];f[e++]=a.b[c++]}else if(g.b[d]<a.b[c]||g.b[d]===a.b[c]&&g.b[d+1]<a.b[c+1]){f[e++]=g.b[d++];f[e++]=g.b[d++]}else{f[e++]=a.b[c++];f[e++]=a.b[c++]}}a.b=f} +function S6b(a,b){var c,d,e,f,g,h,i,j,k,l;c=Ccb(DD(vNb(a,(wtc(),Usc))));h=Ccb(DD(vNb(b,Usc)));d=BD(vNb(a,Vsc),11);i=BD(vNb(b,Vsc),11);e=BD(vNb(a,Wsc),11);j=BD(vNb(b,Wsc),11);k=!!d&&d==i;l=!!e&&e==j;if(!c&&!h){return new Z6b(BD(mlb(new olb(a.j)),11).p==BD(mlb(new olb(b.j)),11).p,k,l)}f=(!Ccb(DD(vNb(a,Usc)))||Ccb(DD(vNb(a,Tsc))))&&(!Ccb(DD(vNb(b,Usc)))||Ccb(DD(vNb(b,Tsc))));g=(!Ccb(DD(vNb(a,Usc)))||!Ccb(DD(vNb(a,Tsc))))&&(!Ccb(DD(vNb(b,Usc)))||!Ccb(DD(vNb(b,Tsc))));return new Z6b(k&&f||l&&g,k,l)} +function HZc(a){var b,c,d,e,f,g,h,i;d=0;c=0;i=new Psb;b=0;for(h=new olb(a.n);h.a<h.c.c.length;){g=BD(mlb(h),211);if(g.c.c.length==0){Gsb(i,g,i.c.b,i.c)}else{d=$wnd.Math.max(d,g.d);c+=g.a+(b>0?a.i:0)}++b}Ce(a.n,i);a.d=c;a.r=d;a.g=0;a.f=0;a.e=0;a.o=Pje;a.p=Pje;for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),33);a.p=$wnd.Math.min(a.p,e.g);a.g=$wnd.Math.max(a.g,e.g);a.f=$wnd.Math.max(a.f,e.f);a.o=$wnd.Math.min(a.o,e.f);a.e+=e.f+a.i}a.a=a.e/a.b.c.length-a.i*((a.b.c.length-1)/a.b.c.length);u$c(a.j)} +function Sld(a){var b,c,d,e;if((a.Db&64)!=0)return Mkd(a);b=new Wfb(_se);d=a.k;if(!d){!a.n&&(a.n=new cUd(D2,a,1,7));if(a.n.i>0){e=(!a.n&&(a.n=new cUd(D2,a,1,7)),BD(qud(a.n,0),137)).a;!e||Qfb(Qfb((b.a+=' "',b),e),'"')}}else{Qfb(Qfb((b.a+=' "',b),d),'"')}c=(!a.b&&(a.b=new y5d(z2,a,4,7)),!(a.b.i<=1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c.i<=1)));c?(b.a+=' [',b):(b.a+=' ',b);Qfb(b,Eb(new Gb,new Fyd(a.b)));c&&(b.a+=']',b);b.a+=gne;c&&(b.a+='[',b);Qfb(b,Eb(new Gb,new Fyd(a.c)));c&&(b.a+=']',b);return b.a} +function TQd(a,b){var c,d,e,f,g,h,i;if(a.a){h=a.a.ne();i=null;if(h!=null){b.a+=''+h}else{g=a.a.Dj();if(g!=null){f=hfb(g,wfb(91));if(f!=-1){i=g.substr(f);b.a+=''+qfb(g==null?Xhe:(uCb(g),g),0,f)}else{b.a+=''+g}}}if(!!a.d&&a.d.i!=0){e=true;b.a+='<';for(d=new Fyd(a.d);d.e!=d.i.gc();){c=BD(Dyd(d),87);e?(e=false):(b.a+=She,b);TQd(c,b)}b.a+='>'}i!=null&&(b.a+=''+i,b)}else if(a.e){h=a.e.zb;h!=null&&(b.a+=''+h,b)}else{b.a+='?';if(a.b){b.a+=' super ';TQd(a.b,b)}else{if(a.f){b.a+=' extends ';TQd(a.f,b)}}}} +function Z9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;v=a.c;w=b.c;c=Jkb(v.a,a,0);d=Jkb(w.a,b,0);t=BD(W_b(a,(KAc(),HAc)).Kc().Pb(),11);C=BD(W_b(a,IAc).Kc().Pb(),11);u=BD(W_b(b,HAc).Kc().Pb(),11);D=BD(W_b(b,IAc).Kc().Pb(),11);r=k_b(t.e);A=k_b(C.g);s=k_b(u.e);B=k_b(D.g);Z_b(a,d,w);for(g=s,k=0,o=g.length;k<o;++k){e=g[k];RZb(e,t)}for(h=B,l=0,p=h.length;l<p;++l){e=h[l];QZb(e,C)}Z_b(b,c,v);for(i=r,m=0,q=i.length;m<q;++m){e=i[m];RZb(e,u)}for(f=A,j=0,n=f.length;j<n;++j){e=f[j];QZb(e,D)}} +function $$b(a,b,c,d){var e,f,g,h,i,j,k;f=a_b(d);h=Ccb(DD(vNb(d,(Nyc(),uxc))));if((h||Ccb(DD(vNb(a,exc))))&&!fcd(BD(vNb(a,Vxc),98))){e=Zcd(f);i=i_b(a,c,c==(KAc(),IAc)?e:Wcd(e))}else{i=new H0b;F0b(i,a);if(b){k=i.n;k.a=b.a-a.n.a;k.b=b.b-a.n.b;Q6c(k,0,0,a.o.a,a.o.b);G0b(i,W$b(i,f))}else{e=Zcd(f);G0b(i,c==(KAc(),IAc)?e:Wcd(e))}g=BD(vNb(d,(wtc(),Ksc)),21);j=i.j;switch(f.g){case 2:case 1:(j==(Ucd(),Acd)||j==Rcd)&&g.Fc((Orc(),Lrc));break;case 4:case 3:(j==(Ucd(),zcd)||j==Tcd)&&g.Fc((Orc(),Lrc));}}return i} +function pPc(a,b,c){var d,e,f,g,h,i,j,k;if($wnd.Math.abs(b.s-b.c)<qme||$wnd.Math.abs(c.s-c.c)<qme){return 0}d=oPc(a,b.j,c.e);e=oPc(a,c.j,b.e);f=d==-1||e==-1;g=0;if(f){if(d==-1){new DOc((HOc(),FOc),c,b,1);++g}if(e==-1){new DOc((HOc(),FOc),b,c,1);++g}}else{h=vPc(b.j,c.s,c.c);h+=vPc(c.e,b.s,b.c);i=vPc(c.j,b.s,b.c);i+=vPc(b.e,c.s,c.c);j=d+16*h;k=e+16*i;if(j<k){new DOc((HOc(),GOc),b,c,k-j)}else if(j>k){new DOc((HOc(),GOc),c,b,j-k)}else if(j>0&&k>0){new DOc((HOc(),GOc),b,c,0);new DOc(GOc,c,b,0)}}return g} +function TUb(a,b){var c,d,e,f,g,h;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);e=BD(f.cd(),594);if(b==1){if(e.gf()!=(ead(),dad)&&e.gf()!=_9c){continue}}else{if(e.gf()!=(ead(),aad)&&e.gf()!=bad){continue}}d=BD(BD(f.dd(),46).b,81);h=BD(BD(f.dd(),46).a,189);c=h.c;switch(e.gf().g){case 2:d.g.c=a.e.a;d.g.b=$wnd.Math.max(1,d.g.b+c);break;case 1:d.g.c=d.g.c+c;d.g.b=$wnd.Math.max(1,d.g.b-c);break;case 4:d.g.d=a.e.b;d.g.a=$wnd.Math.max(1,d.g.a+c);break;case 3:d.g.d=d.g.d+c;d.g.a=$wnd.Math.max(1,d.g.a-c);}}} +function nJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;h=KC(WD,oje,25,b.b.c.length,15,1);j=KC(NQ,Kie,267,b.b.c.length,0,1);i=KC(OQ,kne,10,b.b.c.length,0,1);for(l=a.a,m=0,n=l.length;m<n;++m){k=l[m];p=0;for(g=new olb(k.e);g.a<g.c.c.length;){e=BD(mlb(g),10);d=G1b(e.c);++h[d];o=Edb(ED(vNb(b,(Nyc(),lyc))));h[d]>0&&!!i[d]&&(o=jBc(a.b,i[d],e));p=$wnd.Math.max(p,e.c.c.b+o)}for(f=new olb(k.e);f.a<f.c.c.length;){e=BD(mlb(f),10);e.n.b=p+e.d.d;c=e.c;c.c.b=p+e.d.d+e.o.b+e.d.a;j[Jkb(c.b.b,c,0)]=e.k;i[Jkb(c.b.b,c,0)]=e}}} +function LXc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(d=new Sr(ur(_sd(b).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(!JD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),186)){i=atd(BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82));if(!Pld(c)){g=b.i+b.g/2;h=b.j+b.f/2;k=i.i+i.g/2;l=i.j+i.f/2;m=new d7c;m.a=k-g;m.b=l-h;f=new f7c(m.a,m.b);l6c(f,b.g,b.f);m.a-=f.a;m.b-=f.b;g=k-m.a;h=l-m.b;j=new f7c(m.a,m.b);l6c(j,i.g,i.f);m.a-=j.a;m.b-=j.b;k=g+m.a;l=h+m.b;e=itd(c,true,true);omd(e,g);pmd(e,h);hmd(e,k);imd(e,l);LXc(a,i)}}}} +function e0c(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Pre),'ELK SPOrE Compaction'),'ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree.'),new h0c)));p4c(a,Pre,Qre,Ksd(c0c));p4c(a,Pre,Rre,Ksd(__c));p4c(a,Pre,Sre,Ksd($_c));p4c(a,Pre,Tre,Ksd(Y_c));p4c(a,Pre,Ure,Ksd(Z_c));p4c(a,Pre,ame,X_c);p4c(a,Pre,wme,8);p4c(a,Pre,Vre,Ksd(b0c));p4c(a,Pre,Wre,Ksd(T_c));p4c(a,Pre,Xre,Ksd(U_c));p4c(a,Pre,Zpe,(Bcb(),false))} +function JLc(a,b){var c,d,e,f,g,h,i,j,k,l;Odd(b,'Simple node placement',1);l=BD(vNb(a,(wtc(),otc)),304);h=0;for(f=new olb(a.b);f.a<f.c.c.length;){d=BD(mlb(f),29);g=d.c;g.b=0;c=null;for(j=new olb(d.a);j.a<j.c.c.length;){i=BD(mlb(j),10);!!c&&(g.b+=hBc(i,c,l.c));g.b+=i.d.d+i.o.b+i.d.a;c=i}h=$wnd.Math.max(h,g.b)}for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);g=d.c;k=(h-g.b)/2;c=null;for(j=new olb(d.a);j.a<j.c.c.length;){i=BD(mlb(j),10);!!c&&(k+=hBc(i,c,l.c));k+=i.d.d;i.n.b=k;k+=i.o.b+i.d.a;c=i}}Qdd(b)} +function s2d(a,b,c,d){var e,f,g,h,i,j,k,l;if(d.gc()==0){return false}i=(Q6d(),BD(b,66).Oj());g=i?d:new zud(d.gc());if(T6d(a.e,b)){if(b.hi()){for(k=d.Kc();k.Ob();){j=k.Pb();if(!F2d(a,b,j,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)){f=R6d(b,j);g.Fc(f)}}}else if(!i){for(k=d.Kc();k.Ob();){j=k.Pb();f=R6d(b,j);g.Fc(f)}}}else{l=S6d(a.e.Tg(),b);e=BD(a.g,119);for(h=0;h<a.i;++h){f=e[h];if(l.rl(f.ak())){throw vbb(new Wdb(Hwe))}}if(d.gc()>1){throw vbb(new Wdb(Hwe))}if(!i){f=R6d(b,d.Kc().Pb());g.Fc(f)}}return xtd(a,I2d(a,b,c),g)} +function Pmc(a,b){var c,d,e,f;Jmc(b.b.j);MAb(NAb(new YAb(null,new Kub(b.d,16)),new $mc),new anc);for(f=new olb(b.d);f.a<f.c.c.length;){e=BD(mlb(f),101);switch(e.e.g){case 0:c=BD(Ikb(e.j,0),113).d.j;mjc(e,BD(Btb(RAb(BD(Qc(e.k,c),15).Oc(),Hmc)),113));njc(e,BD(Btb(QAb(BD(Qc(e.k,c),15).Oc(),Hmc)),113));break;case 1:d=Bkc(e);mjc(e,BD(Btb(RAb(BD(Qc(e.k,d[0]),15).Oc(),Hmc)),113));njc(e,BD(Btb(QAb(BD(Qc(e.k,d[1]),15).Oc(),Hmc)),113));break;case 2:Rmc(a,e);break;case 3:Qmc(e);break;case 4:Omc(a,e);}Mmc(e)}a.a=null} +function $Mc(a,b,c){var d,e,f,g,h,i,j,k;d=a.a.o==(eMc(),dMc)?Pje:Qje;h=_Mc(a,new ZMc(b,c));if(!h.a&&h.c){Dsb(a.d,h);return d}else if(h.a){e=h.a.c;i=h.a.d;if(c){j=a.a.c==(YLc(),XLc)?i:e;f=a.a.c==XLc?e:i;g=a.a.g[f.i.p];k=Edb(a.a.p[g.p])+Edb(a.a.d[f.i.p])+f.n.b+f.a.b-Edb(a.a.d[j.i.p])-j.n.b-j.a.b}else{j=a.a.c==(YLc(),WLc)?i:e;f=a.a.c==WLc?e:i;k=Edb(a.a.p[a.a.g[f.i.p].p])+Edb(a.a.d[f.i.p])+f.n.b+f.a.b-Edb(a.a.d[j.i.p])-j.n.b-j.a.b}a.a.n[a.a.g[e.i.p].p]=(Bcb(),true);a.a.n[a.a.g[i.i.p].p]=true;return k}return d} +function f3d(a,b,c){var d,e,f,g,h,i,j,k;if(T6d(a.e,b)){i=(Q6d(),BD(b,66).Oj()?new R7d(b,a):new f7d(b,a));D2d(i.c,i.b);b7d(i,BD(c,14))}else{k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g<a.i;++g){e=d[g];f=e.ak();if(k.rl(f)){if(f==(m8d(),k8d)||f==h8d){j=m3d(a,b,c);h=g;j?Xxd(a,g):++g;while(g<a.i){e=d[g];f=e.ak();f==k8d||f==h8d?Xxd(a,g):++g}j||BD(Gtd(a,h,R6d(b,c)),72)}else m3d(a,b,c)?Xxd(a,g):BD(Gtd(a,g,(Q6d(),BD(b,66).Oj()?BD(c,72):R6d(b,c))),72);return}}m3d(a,b,c)||wtd(a,(Q6d(),BD(b,66).Oj()?BD(c,72):R6d(b,c)))}} +function IMb(a,b,c){var d,e,f,g,h,i,j,k;if(!pb(c,a.b)){a.b=c;f=new LMb;g=BD(GAb(NAb(new YAb(null,new Kub(c.f,16)),f),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);a.e=true;a.f=true;a.c=true;a.d=true;e=g.Hc((RMb(),OMb));d=g.Hc(PMb);e&&!d&&(a.f=false);!e&&d&&(a.d=false);e=g.Hc(NMb);d=g.Hc(QMb);e&&!d&&(a.c=false);!e&&d&&(a.e=false)}k=BD(a.a.Ce(b,c),46);i=BD(k.a,19).a;j=BD(k.b,19).a;h=false;i<0?a.c||(h=true):a.e||(h=true);j<0?a.d||(h=true):a.f||(h=true);return h?IMb(a,k,c):k} +function oKb(a){var b,c,d,e;e=a.o;$Jb();if(a.A.dc()||pb(a.A,ZJb)){b=e.b}else{b=fIb(a.f);if(a.A.Hc((tdd(),qdd))&&!a.B.Hc((Idd(),Edd))){b=$wnd.Math.max(b,fIb(BD(Mpb(a.p,(Ucd(),zcd)),244)));b=$wnd.Math.max(b,fIb(BD(Mpb(a.p,Tcd),244)))}c=aKb(a);!!c&&(b=$wnd.Math.max(b,c.b));if(a.A.Hc(rdd)){if(a.q==(dcd(),_bd)||a.q==$bd){b=$wnd.Math.max(b,_Gb(BD(Mpb(a.b,(Ucd(),zcd)),124)));b=$wnd.Math.max(b,_Gb(BD(Mpb(a.b,Tcd),124)))}}}Ccb(DD(a.e.yf().We((Y9c(),$8c))))?(e.b=$wnd.Math.max(e.b,b)):(e.b=b);d=a.f.i;d.d=0;d.a=b;iIb(a.f)} +function $Ic(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;for(l=0;l<b.length;l++){for(h=a.Kc();h.Ob();){f=BD(h.Pb(),225);f.Of(l,b)}for(m=0;m<b[l].length;m++){for(i=a.Kc();i.Ob();){f=BD(i.Pb(),225);f.Pf(l,m,b)}p=b[l][m].j;for(n=0;n<p.c.length;n++){for(j=a.Kc();j.Ob();){f=BD(j.Pb(),225);f.Qf(l,m,n,b)}o=(tCb(n,p.c.length),BD(p.c[n],11));c=0;for(e=new b1b(o.b);llb(e.a)||llb(e.b);){d=BD(llb(e.a)?mlb(e.a):mlb(e.b),17);for(k=a.Kc();k.Ob();){f=BD(k.Pb(),225);f.Nf(l,m,n,c++,d,b)}}}}}for(g=a.Kc();g.Ob();){f=BD(g.Pb(),225);f.Mf()}} +function J4b(a,b){var c,d,e,f,g,h,i;a.b=Edb(ED(vNb(b,(Nyc(),myc))));a.c=Edb(ED(vNb(b,pyc)));a.d=BD(vNb(b,Xwc),336);a.a=BD(vNb(b,swc),275);H4b(b);h=BD(GAb(JAb(JAb(LAb(LAb(new YAb(null,new Kub(b.b,16)),new N4b),new P4b),new R4b),new T4b),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);for(e=h.Kc();e.Ob();){c=BD(e.Pb(),17);g=BD(vNb(c,(wtc(),rtc)),15);g.Jc(new V4b(a));yNb(c,rtc,null)}for(d=h.Kc();d.Ob();){c=BD(d.Pb(),17);i=BD(vNb(c,(wtc(),stc)),17);f=BD(vNb(c,ptc),15);B4b(a,f,i);yNb(c,ptc,null)}} +function uZd(a){a.b=null;a.a=null;a.o=null;a.q=null;a.v=null;a.w=null;a.B=null;a.p=null;a.Q=null;a.R=null;a.S=null;a.T=null;a.U=null;a.V=null;a.W=null;a.bb=null;a.eb=null;a.ab=null;a.H=null;a.db=null;a.c=null;a.d=null;a.f=null;a.n=null;a.r=null;a.s=null;a.u=null;a.G=null;a.J=null;a.e=null;a.j=null;a.i=null;a.g=null;a.k=null;a.t=null;a.F=null;a.I=null;a.L=null;a.M=null;a.O=null;a.P=null;a.$=null;a.N=null;a.Z=null;a.cb=null;a.K=null;a.D=null;a.A=null;a.C=null;a._=null;a.fb=null;a.X=null;a.Y=null;a.gb=false;a.hb=false} +function bKc(a){var b,c,d,e,f,g,h,i,j;if(a.k!=(j0b(),h0b)){return false}if(a.j.c.length<=1){return false}f=BD(vNb(a,(Nyc(),Vxc)),98);if(f==(dcd(),$bd)){return false}e=(Izc(),(!a.q?(mmb(),mmb(),kmb):a.q)._b(Cxc)?(d=BD(vNb(a,Cxc),197)):(d=BD(vNb(Q_b(a),Dxc),197)),d);if(e==Gzc){return false}if(!(e==Fzc||e==Ezc)){g=Edb(ED(pBc(a,zyc)));b=BD(vNb(a,yyc),142);!b&&(b=new J_b(g,g,g,g));j=V_b(a,(Ucd(),Tcd));i=b.d+b.a+(j.gc()-1)*g;if(i>a.o.b){return false}c=V_b(a,zcd);h=b.d+b.a+(c.gc()-1)*g;if(h>a.o.b){return false}}return true} +function thb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;g=a.e;i=b.e;if(g==0){return b}if(i==0){return a}f=a.d;h=b.d;if(f+h==2){c=xbb(a.a[0],Yje);d=xbb(b.a[0],Yje);if(g==i){k=wbb(c,d);o=Tbb(k);n=Tbb(Pbb(k,32));return n==0?new Ugb(g,o):new Vgb(g,2,OC(GC(WD,1),oje,25,15,[o,n]))}return ghb(g<0?Qbb(d,c):Qbb(c,d))}else if(g==i){m=g;l=f>=h?uhb(a.a,f,b.a,h):uhb(b.a,h,a.a,f)}else{e=f!=h?f>h?1:-1:whb(a.a,b.a,f);if(e==0){return Hgb(),Ggb}if(e==1){m=g;l=zhb(a.a,f,b.a,h)}else{m=i;l=zhb(b.a,h,a.a,f)}}j=new Vgb(m,l.length,l);Jgb(j);return j} +function oZb(a,b,c,d,e,f,g){var h,i,j,k,l,m,n;l=Ccb(DD(vNb(b,(Nyc(),vxc))));m=null;f==(KAc(),HAc)&&d.c.i==c?(m=d.c):f==IAc&&d.d.i==c&&(m=d.d);j=g;if(!j||!l||!!m){k=(Ucd(),Scd);m?(k=m.j):fcd(BD(vNb(c,Vxc),98))&&(k=f==HAc?Tcd:zcd);i=lZb(a,b,c,f,k,d);h=kZb((Q_b(c),d));if(f==HAc){QZb(h,BD(Ikb(i.j,0),11));RZb(h,e)}else{QZb(h,e);RZb(h,BD(Ikb(i.j,0),11))}j=new yZb(d,h,i,BD(vNb(i,(wtc(),$sc)),11),f,!m)}else{Ekb(j.e,d);n=$wnd.Math.max(Edb(ED(vNb(j.d,Zwc))),Edb(ED(vNb(d,Zwc))));yNb(j.d,Zwc,n)}Rc(a.a,d,new BZb(j.d,b,f));return j} +function V1d(a,b){var c,d,e,f,g,h,i,j,k,l;k=null;!!a.d&&(k=BD(Phb(a.d,b),138));if(!k){f=a.a.Mh();l=f.i;if(!a.d||Vhb(a.d)!=l){i=new Lqb;!!a.d&&Ld(i,a.d);j=i.f.c+i.g.c;for(h=j;h<l;++h){d=BD(qud(f,h),138);e=o1d(a.e,d).ne();c=BD(e==null?jrb(i.f,null,d):Drb(i.g,e,d),138);!!c&&c!=d&&(e==null?jrb(i.f,null,c):Drb(i.g,e,c))}if(i.f.c+i.g.c!=l){for(g=0;g<j;++g){d=BD(qud(f,g),138);e=o1d(a.e,d).ne();c=BD(e==null?jrb(i.f,null,d):Drb(i.g,e,d),138);!!c&&c!=d&&(e==null?jrb(i.f,null,c):Drb(i.g,e,c))}}a.d=i}k=BD(Phb(a.d,b),138)}return k} +function lZb(a,b,c,d,e,f){var g,h,i,j,k,l;g=null;j=d==(KAc(),HAc)?f.c:f.d;i=a_b(b);if(j.i==c){g=BD(Ohb(a.b,j),10);if(!g){g=Z$b(j,BD(vNb(c,(Nyc(),Vxc)),98),e,hZb(j),null,j.n,j.o,i,b);yNb(g,(wtc(),$sc),j);Rhb(a.b,j,g)}}else{g=Z$b((k=new zNb,l=Edb(ED(vNb(b,(Nyc(),lyc))))/2,xNb(k,Uxc,l),k),BD(vNb(c,Vxc),98),e,d==HAc?-1:1,null,new d7c,new f7c(0,0),i,b);h=mZb(g,c,d);yNb(g,(wtc(),$sc),h);Rhb(a.b,h,g)}BD(vNb(b,(wtc(),Ksc)),21).Fc((Orc(),Hrc));fcd(BD(vNb(b,(Nyc(),Vxc)),98))?yNb(b,Vxc,(dcd(),acd)):yNb(b,Vxc,(dcd(),bcd));return g} +function vNc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;Odd(b,'Orthogonal edge routing',1);j=Edb(ED(vNb(a,(Nyc(),wyc))));c=Edb(ED(vNb(a,myc)));d=Edb(ED(vNb(a,pyc)));m=new tPc(0,c);q=0;g=new Bib(a.b,0);h=null;k=null;i=null;l=null;do{k=g.b<g.d.gc()?(sCb(g.b<g.d.gc()),BD(g.d.Xb(g.c=g.b++),29)):null;l=!k?null:k.a;if(h){h_b(h,q);q+=h.c.a}p=!h?q:q+d;o=sPc(m,a,i,l,p);e=!h||Kq(i,(FNc(),DNc));f=!k||Kq(l,(FNc(),DNc));if(o>0){n=(o-1)*c;!!h&&(n+=d);!!k&&(n+=d);n<j&&!e&&!f&&(n=j);q+=n}else !e&&!f&&(q+=j);h=k;i=l}while(k);a.f.a=q;Qdd(b)} +function IEd(){IEd=ccb;var a;HEd=new mFd;BEd=KC(ZI,nie,2,0,6,1);uEd=Mbb(ZEd(33,58),ZEd(1,26));vEd=Mbb(ZEd(97,122),ZEd(65,90));wEd=ZEd(48,57);sEd=Mbb(uEd,0);tEd=Mbb(vEd,wEd);xEd=Mbb(Mbb(0,ZEd(1,6)),ZEd(33,38));yEd=Mbb(Mbb(wEd,ZEd(65,70)),ZEd(97,102));EEd=Mbb(sEd,XEd("-_.!~*'()"));FEd=Mbb(tEd,$Ed("-_.!~*'()"));XEd(lve);$Ed(lve);Mbb(EEd,XEd(';:@&=+$,'));Mbb(FEd,$Ed(';:@&=+$,'));zEd=XEd(':/?#');AEd=$Ed(':/?#');CEd=XEd('/?#');DEd=$Ed('/?#');a=new Tqb;a.a.zc('jar',a);a.a.zc('zip',a);a.a.zc('archive',a);GEd=(mmb(),new zob(a))} +function yUc(a,b){var c,d,e,f,g,h,i,j,k,l;yNb(b,(mTc(),cTc),0);i=BD(vNb(b,aTc),86);if(b.d.b==0){if(i){k=Edb(ED(vNb(i,fTc)))+a.a+zUc(i,b);yNb(b,fTc,k)}else{yNb(b,fTc,0)}}else{for(d=(f=Jsb((new ZRc(b)).a.d,0),new aSc(f));Wsb(d.a);){c=BD(Xsb(d.a),188).c;yUc(a,c)}h=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);l=BD(or((e=Jsb((new ZRc(b)).a.d,0),new aSc(e))),86);j=(Edb(ED(vNb(l,fTc)))+Edb(ED(vNb(h,fTc))))/2;if(i){k=Edb(ED(vNb(i,fTc)))+a.a+zUc(i,b);yNb(b,fTc,k);yNb(b,cTc,Edb(ED(vNb(b,fTc)))-j);xUc(a,b)}else{yNb(b,fTc,j)}}} +function Dbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;h=0;o=0;i=tlb(a.f,a.f.length);f=a.d;g=a.i;d=a.a;e=a.b;do{n=0;for(k=new olb(a.p);k.a<k.c.c.length;){j=BD(mlb(k),10);m=Cbc(a,j);c=true;(a.q==(kAc(),dAc)||a.q==gAc)&&(c=Ccb(DD(m.b)));if(BD(m.a,19).a<0&&c){++n;i=tlb(a.f,a.f.length);a.d=a.d+BD(m.a,19).a;o+=f-a.d;f=a.d+BD(m.a,19).a;g=a.i;d=Mu(a.a);e=Mu(a.b)}else{a.f=tlb(i,i.length);a.d=f;a.a=(Qb(d),d?new Tkb(d):Nu(new olb(d)));a.b=(Qb(e),e?new Tkb(e):Nu(new olb(e)));a.i=g}}++h;l=n!=0&&Ccb(DD(b.Kb(new vgd(meb(o),meb(h)))))}while(l)} +function lYc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;g=a.f;m=b.f;h=g==(k$c(),f$c)||g==h$c;n=m==f$c||m==h$c;i=g==g$c||g==i$c;o=m==g$c||m==i$c;j=g==g$c||g==f$c;p=m==g$c||m==f$c;if(h&&n){return a.f==h$c?a:b}else if(i&&o){return a.f==i$c?a:b}else if(j&&p){if(g==g$c){l=a;k=b}else{l=b;k=a}f=(q=c.j+c.f,r=l.e+d.f,s=$wnd.Math.max(q,r),t=s-$wnd.Math.min(c.j,l.e),u=l.d+d.g-c.i,u*t);e=(v=c.i+c.g,w=k.d+d.g,A=$wnd.Math.max(v,w),B=A-$wnd.Math.min(c.i,k.d),C=k.e+d.f-c.j,B*C);return f<=e?a.f==g$c?a:b:a.f==f$c?a:b}return a} +function wGb(a){var b,c,d,e,f,g,h,i,j,k,l;k=a.e.a.c.length;for(g=new olb(a.e.a);g.a<g.c.c.length;){f=BD(mlb(g),121);f.j=false}a.i=KC(WD,oje,25,k,15,1);a.g=KC(WD,oje,25,k,15,1);a.n=new Rkb;e=0;l=new Rkb;for(i=new olb(a.e.a);i.a<i.c.c.length;){h=BD(mlb(i),121);h.d=e++;h.b.a.c.length==0&&Ekb(a.n,h);Gkb(l,h.g)}b=0;for(d=new olb(l);d.a<d.c.c.length;){c=BD(mlb(d),213);c.c=b++;c.f=false}j=l.c.length;if(a.b==null||a.b.length<j){a.b=KC(UD,Vje,25,j,15,1);a.c=KC(sbb,dle,25,j,16,1)}else{Blb(a.c)}a.d=l;a.p=new Asb(Cv(a.d.c.length));a.j=1} +function sTb(a,b){var c,d,e,f,g,h,i,j,k;if(b.e.c.length<=1){return}a.f=b;a.d=BD(vNb(a.f,(bTb(),SSb)),379);a.g=BD(vNb(a.f,WSb),19).a;a.e=Edb(ED(vNb(a.f,TSb)));a.c=Edb(ED(vNb(a.f,RSb)));it(a.b);for(e=new olb(a.f.c);e.a<e.c.c.length;){d=BD(mlb(e),282);ht(a.b,d.c,d,null);ht(a.b,d.d,d,null)}h=a.f.e.c.length;a.a=IC(UD,[nie,Vje],[104,25],15,[h,h],2);for(j=new olb(a.f.e);j.a<j.c.c.length;){i=BD(mlb(j),144);oTb(a,i,a.a[i.b])}a.i=IC(UD,[nie,Vje],[104,25],15,[h,h],2);for(f=0;f<h;++f){for(g=0;g<h;++g){c=a.a[f][g];k=1/(c*c);a.i[f][g]=k}}} +function Vfe(a){var b,c,d,e;if(a.b==null||a.b.length<=2)return;if(a.a)return;b=0;e=0;while(e<a.b.length){if(b!=e){a.b[b]=a.b[e++];a.b[b+1]=a.b[e++]}else e+=2;c=a.b[b+1];while(e<a.b.length){if(c+1<a.b[e])break;if(c+1==a.b[e]){a.b[b+1]=a.b[e+1];c=a.b[b+1];e+=2}else if(c>=a.b[e+1]){e+=2}else if(c<a.b[e+1]){a.b[b+1]=a.b[e+1];c=a.b[b+1];e+=2}else{throw vbb(new hz('Token#compactRanges(): Internel Error: ['+a.b[b]+','+a.b[b+1]+'] ['+a.b[e]+','+a.b[e+1]+']'))}}b+=2}if(b!=a.b.length){d=KC(WD,oje,25,b,15,1);$fb(a.b,0,d,0,b);a.b=d}a.a=true} +function pZb(a,b){var c,d,e,f,g,h,i;for(g=Ec(a.a).Kc();g.Ob();){f=BD(g.Pb(),17);if(f.b.c.length>0){d=new Tkb(BD(Qc(a.a,f),21));mmb();Okb(d,new EZb(b));e=new Bib(f.b,0);while(e.b<e.d.gc()){c=(sCb(e.b<e.d.gc()),BD(e.d.Xb(e.c=e.b++),70));h=-1;switch(BD(vNb(c,(Nyc(),Qwc)),272).g){case 1:h=d.c.length-1;break;case 0:h=nZb(d);break;case 2:h=0;}if(h!=-1){i=(tCb(h,d.c.length),BD(d.c[h],243));Ekb(i.b.b,c);BD(vNb(Q_b(i.b.c.i),(wtc(),Ksc)),21).Fc((Orc(),Grc));BD(vNb(Q_b(i.b.c.i),Ksc),21).Fc(Erc);uib(e);yNb(c,btc,f)}}}QZb(f,null);RZb(f,null)}} +function FLb(a,b){var c,d,e,f;c=new KLb;d=BD(GAb(NAb(new YAb(null,new Kub(a.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Eyb),Dyb]))),21);e=d.gc();e=e==2?1:0;e==1&&Bbb(Hbb(BD(GAb(JAb(d.Lc(),new MLb),Xyb(Aeb(0),new Czb)),162).a,2),0)&&(e=0);d=BD(GAb(NAb(new YAb(null,new Kub(b.f,16)),c),Ayb(new hzb,new jzb,new Gzb,new Izb,OC(GC(xL,1),Kie,132,0,[Eyb,Dyb]))),21);f=d.gc();f=f==2?1:0;f==1&&Bbb(Hbb(BD(GAb(JAb(d.Lc(),new OLb),Xyb(Aeb(0),new Czb)),162).a,2),0)&&(f=0);if(e<f){return -1}if(e==f){return 0}return 1} +function h6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;j=new Rkb;if(!wNb(a,(wtc(),Fsc))){return j}for(d=BD(vNb(a,Fsc),15).Kc();d.Ob();){b=BD(d.Pb(),10);g6b(b,a);j.c[j.c.length]=b}for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);for(h=new olb(e.a);h.a<h.c.c.length;){g=BD(mlb(h),10);if(g.k!=(j0b(),e0b)){continue}i=BD(vNb(g,Gsc),10);!!i&&(k=new H0b,F0b(k,g),l=BD(vNb(g,Hsc),61),G0b(k,l),m=BD(Ikb(i.j,0),11),n=new UZb,QZb(n,k),RZb(n,m),undefined)}}for(c=new olb(j);c.a<c.c.c.length;){b=BD(mlb(c),10);$_b(b,BD(Ikb(a.b,a.b.c.length-1),29))}return j} +function M1b(a){var b,c,d,e,f,g,h,i,j,k,l,m;b=mpd(a);f=Ccb(DD(hkd(b,(Nyc(),fxc))));k=0;e=0;for(j=new Fyd((!a.e&&(a.e=new y5d(B2,a,7,4)),a.e));j.e!=j.i.gc();){i=BD(Dyd(j),79);h=Qld(i);g=h&&f&&Ccb(DD(hkd(i,gxc)));m=atd(BD(qud((!i.c&&(i.c=new y5d(z2,i,5,8)),i.c),0),82));h&&g?++e:h&&!g?++k:Xod(m)==b||m==b?++e:++k}for(d=new Fyd((!a.d&&(a.d=new y5d(B2,a,8,5)),a.d));d.e!=d.i.gc();){c=BD(Dyd(d),79);h=Qld(c);g=h&&f&&Ccb(DD(hkd(c,gxc)));l=atd(BD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),82));h&&g?++k:h&&!g?++e:Xod(l)==b||l==b?++k:++e}return k-e} +function ubc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;Odd(b,'Edge splitting',1);if(a.b.c.length<=2){Qdd(b);return}f=new Bib(a.b,0);g=(sCb(f.b<f.d.gc()),BD(f.d.Xb(f.c=f.b++),29));while(f.b<f.d.gc()){e=g;g=(sCb(f.b<f.d.gc()),BD(f.d.Xb(f.c=f.b++),29));for(i=new olb(e.a);i.a<i.c.c.length;){h=BD(mlb(i),10);for(k=new olb(h.j);k.a<k.c.c.length;){j=BD(mlb(k),11);for(d=new olb(j.g);d.a<d.c.c.length;){c=BD(mlb(d),17);m=c.d;l=m.i.c;l!=e&&l!=g&&zbc(c,(n=new b0b(a),__b(n,(j0b(),g0b)),yNb(n,(wtc(),$sc),c),yNb(n,(Nyc(),Vxc),(dcd(),$bd)),$_b(n,g),n))}}}}Qdd(b)} +function MTb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;h=b.p!=null&&!b.b;h||Odd(b,kme,1);c=BD(vNb(a,(wtc(),itc)),15);g=1/c.gc();if(b.n){Sdd(b,'ELK Layered uses the following '+c.gc()+' modules:');n=0;for(m=c.Kc();m.Ob();){k=BD(m.Pb(),51);d=(n<10?'0':'')+n++;Sdd(b,' Slot '+d+': '+hdb(rb(k)))}}o=0;for(l=c.Kc();l.Ob();){k=BD(l.Pb(),51);k.pf(a,Udd(b,g));++o}for(f=new olb(a.b);f.a<f.c.c.length;){e=BD(mlb(f),29);Gkb(a.a,e.a);e.a.c=KC(SI,Uhe,1,0,5,1)}for(j=new olb(a.a);j.a<j.c.c.length;){i=BD(mlb(j),10);$_b(i,null)}a.b.c=KC(SI,Uhe,1,0,5,1);h||Qdd(b)} +function kJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;d=Edb(ED(vNb(b,(Nyc(),Bxc))));v=BD(vNb(b,Ayc),19).a;m=4;e=3;w=20/v;n=false;i=0;g=Ohe;do{f=i!=1;l=i!=0;A=0;for(q=a.a,s=0,u=q.length;s<u;++s){o=q[s];o.f=null;lJc(a,o,f,l,d);A+=$wnd.Math.abs(o.a)}do{h=pJc(a,b)}while(h);for(p=a.a,r=0,t=p.length;r<t;++r){o=p[r];c=xJc(o).a;if(c!=0){for(k=new olb(o.e);k.a<k.c.c.length;){j=BD(mlb(k),10);j.n.b+=c}}}if(i==0||i==1){--m;if(m<=0&&(A<g||-m>v)){i=2;g=Ohe}else if(i==0){i=1;g=A}else{i=0;g=A}}else{n=A>=g||g-A<w;g=A;n&&--e}}while(!(n&&e<=0))} +function UCb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;o=new Lqb;for(f=a.a.ec().Kc();f.Ob();){d=BD(f.Pb(),168);Rhb(o,d,c.Je(d))}g=(Qb(a),a?new Tkb(a):Nu(a.a.ec().Kc()));Okb(g,new WCb(o));h=Gx(g);i=new hDb(b);n=new Lqb;jrb(n.f,b,i);while(h.a.gc()!=0){j=null;k=null;l=null;for(e=h.a.ec().Kc();e.Ob();){d=BD(e.Pb(),168);if(Edb(ED(Wd(irb(o.f,d))))<=Pje){if(Mhb(n,d.a)&&!Mhb(n,d.b)){k=d.b;l=d.a;j=d;break}if(Mhb(n,d.b)){if(!Mhb(n,d.a)){k=d.a;l=d.b;j=d;break}}}}if(!j){break}m=new hDb(k);Ekb(BD(Wd(irb(n.f,l)),221).a,m);jrb(n.f,k,m);h.a.Bc(j)!=null}return i} +function UBc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;Odd(c,'Depth-first cycle removal',1);l=b.a;k=l.c.length;a.c=new Rkb;a.d=KC(sbb,dle,25,k,16,1);a.a=KC(sbb,dle,25,k,16,1);a.b=new Rkb;g=0;for(j=new olb(l);j.a<j.c.c.length;){i=BD(mlb(j),10);i.p=g;Qq(R_b(i))&&Ekb(a.c,i);++g}for(n=new olb(a.c);n.a<n.c.c.length;){m=BD(mlb(n),10);TBc(a,m)}for(f=0;f<k;f++){if(!a.d[f]){h=(tCb(f,l.c.length),BD(l.c[f],10));TBc(a,h)}}for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),17);PZb(d,true);yNb(b,(wtc(),Asc),(Bcb(),true))}a.c=null;a.d=null;a.a=null;a.b=null;Qdd(c)} +function PSc(a,b){var c,d,e,f,g,h,i;a.a.c=KC(SI,Uhe,1,0,5,1);for(d=Jsb(b.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);if(c.b.b==0){yNb(c,(mTc(),jTc),(Bcb(),true));Ekb(a.a,c)}}switch(a.a.c.length){case 0:e=new XRc(0,b,'DUMMY_ROOT');yNb(e,(mTc(),jTc),(Bcb(),true));yNb(e,YSc,true);Dsb(b.b,e);break;case 1:break;default:f=new XRc(0,b,'SUPER_ROOT');for(h=new olb(a.a);h.a<h.c.c.length;){g=BD(mlb(h),86);i=new QRc(f,g);yNb(i,(mTc(),YSc),(Bcb(),true));Dsb(f.a.a,i);Dsb(f.d,i);Dsb(g.b,i);yNb(g,jTc,false)}yNb(f,(mTc(),jTc),(Bcb(),true));yNb(f,YSc,true);Dsb(b.b,f);}} +function z6c(a,b){i6c();var c,d,e,f,g,h;f=b.c-(a.c+a.b);e=a.c-(b.c+b.b);g=a.d-(b.d+b.a);c=b.d-(a.d+a.a);d=$wnd.Math.max(e,f);h=$wnd.Math.max(g,c);Iy();My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>=0^(null,My(Jqe),($wnd.Math.abs(h)<=Jqe||h==0||isNaN(h)&&isNaN(0)?0:h<0?-1:h>0?1:Ny(isNaN(h),isNaN(0)))>=0)){return $wnd.Math.max(h,d)}My(Jqe);if(($wnd.Math.abs(d)<=Jqe||d==0||isNaN(d)&&isNaN(0)?0:d<0?-1:d>0?1:Ny(isNaN(d),isNaN(0)))>0){return $wnd.Math.sqrt(h*h+d*d)}return -$wnd.Math.sqrt(h*h+d*d)} +function Kge(a,b){var c,d,e,f,g,h;if(!b)return;!a.a&&(a.a=new Wvb);if(a.e==2){Tvb(a.a,b);return}if(b.e==1){for(e=0;e<b.em();e++)Kge(a,b.am(e));return}h=a.a.a.c.length;if(h==0){Tvb(a.a,b);return}g=BD(Uvb(a.a,h-1),117);if(!((g.e==0||g.e==10)&&(b.e==0||b.e==10))){Tvb(a.a,b);return}f=b.e==0?2:b.bm().length;if(g.e==0){c=new Ifb;d=g._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje);g=(++vfe,new Hge(10,null,0));Vvb(a.a,g,h-1)}else{c=(g.bm().length+f,new Ifb);Efb(c,g.bm())}if(b.e==0){d=b._l();d>=Tje?Efb(c,Tee(d)):Afb(c,d&aje)}else{Efb(c,b.bm())}BD(g,521).b=c.a} +function rgb(a){var b,c,d,e,f;if(a.g!=null){return a.g}if(a.a<32){a.g=rhb(Cbb(a.f),QD(a.e));return a.g}e=shb((!a.c&&(a.c=fhb(a.f)),a.c),0);if(a.e==0){return e}b=(!a.c&&(a.c=fhb(a.f)),a.c).e<0?2:1;c=e.length;d=-a.e+c-b;f=new Ufb;f.a+=''+e;if(a.e>0&&d>=-6){if(d>=0){Tfb(f,c-QD(a.e),String.fromCharCode(46))}else{f.a=qfb(f.a,0,b-1)+'0.'+pfb(f.a,b-1);Tfb(f,b+1,zfb(egb,0,-QD(d)-1))}}else{if(c-b>=1){Tfb(f,b,String.fromCharCode(46));++c}Tfb(f,c,String.fromCharCode(69));d>0&&Tfb(f,++c,String.fromCharCode(43));Tfb(f,++c,''+Ubb(Cbb(d)))}a.g=f.a;return a.g} +function npc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(c.dc()){return}h=0;m=0;d=c.Kc();o=BD(d.Pb(),19).a;while(h<b.f){if(h==o){m=0;d.Ob()?(o=BD(d.Pb(),19).a):(o=b.f+1)}if(h!=m){q=BD(Ikb(a.b,h),29);n=BD(Ikb(a.b,m),29);p=Mu(q.a);for(l=new olb(p);l.a<l.c.c.length;){k=BD(mlb(l),10);Z_b(k,n.a.c.length,n);if(m==0){g=Mu(R_b(k));for(f=new olb(g);f.a<f.c.c.length;){e=BD(mlb(f),17);PZb(e,true);yNb(a,(wtc(),Asc),(Bcb(),true));Noc(a,e,1)}}}}++m;++h}i=new Bib(a.b,0);while(i.b<i.d.gc()){j=(sCb(i.b<i.d.gc()),BD(i.d.Xb(i.c=i.b++),29));j.a.c.length==0&&uib(i)}} +function xmc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;g=b.b;k=g.o;i=g.d;d=Edb(ED(c_b(g,(Nyc(),lyc))));e=Edb(ED(c_b(g,nyc)));j=Edb(ED(c_b(g,xyc)));h=new L_b;v_b(h,i.d,i.c,i.a,i.b);m=tmc(b,d,e,j);for(r=new olb(b.d);r.a<r.c.c.length;){q=BD(mlb(r),101);for(o=q.f.a.ec().Kc();o.Ob();){n=BD(o.Pb(),409);f=n.a;l=rmc(n);c=(s=new s7c,pmc(n,n.c,m,s),omc(n,l,m,s),pmc(n,n.d,m,s),s);c=a.Uf(n,l,c);Osb(f.a);ye(f.a,c);MAb(new YAb(null,new Kub(c,16)),new Bmc(k,h))}p=q.i;if(p){wmc(q,p,m,e);t=new g7c(p.g);ymc(k,h,t);P6c(t,p.j);ymc(k,h,t)}}v_b(i,h.d,h.c,h.a,h.b)} +function rgc(a,b,c){var d,e,f;e=BD(vNb(b,(Nyc(),swc)),275);if(e==(yrc(),wrc)){return}Odd(c,'Horizontal Compaction',1);a.a=b;f=new Ygc;d=new cEb((f.d=b,f.c=BD(vNb(f.d,Swc),218),Pgc(f),Wgc(f),Vgc(f),f.a));aEb(d,a.b);switch(BD(vNb(b,rwc),422).g){case 1:$Db(d,new jfc(a.a));break;default:$Db(d,(ODb(),MDb));}switch(e.g){case 1:TDb(d);break;case 2:TDb(SDb(d,(ead(),bad)));break;case 3:TDb(_Db(SDb(TDb(d),(ead(),bad)),new Bgc));break;case 4:TDb(_Db(SDb(TDb(d),(ead(),bad)),new Dgc(f)));break;case 5:TDb(ZDb(d,pgc));}SDb(d,(ead(),aad));d.e=true;Mgc(f);Qdd(c)} +function mYc(a,b,c,d,e,f,g,h){var i,j,k,l;i=Ou(OC(GC(z_,1),Uhe,220,0,[b,c,d,e]));l=null;switch(a.b.g){case 1:l=Ou(OC(GC(o_,1),Uhe,526,0,[new uYc,new oYc,new qYc]));break;case 0:l=Ou(OC(GC(o_,1),Uhe,526,0,[new qYc,new oYc,new uYc]));break;case 2:l=Ou(OC(GC(o_,1),Uhe,526,0,[new oYc,new uYc,new qYc]));}for(k=new olb(l);k.a<k.c.c.length;){j=BD(mlb(k),526);i.c.length>1&&(i=j.mg(i,a.a,h))}if(i.c.length==1){return BD(Ikb(i,i.c.length-1),220)}if(i.c.length==2){return lYc((tCb(0,i.c.length),BD(i.c[0],220)),(tCb(1,i.c.length),BD(i.c[1],220)),g,f)}return null} +function JNb(a){var b,c,d,e,f,g;Hkb(a.a,new PNb);for(c=new olb(a.a);c.a<c.c.c.length;){b=BD(mlb(c),221);d=c7c(R6c(BD(a.b,65).c),BD(b.b,65).c);if(FNb){g=BD(a.b,65).b;f=BD(b.b,65).b;if($wnd.Math.abs(d.a)>=$wnd.Math.abs(d.b)){d.b=0;f.d+f.a>g.d&&f.d<g.d+g.a&&$6c(d,$wnd.Math.max(g.c-(f.c+f.b),f.c-(g.c+g.b)))}else{d.a=0;f.c+f.b>g.c&&f.c<g.c+g.b&&$6c(d,$wnd.Math.max(g.d-(f.d+f.a),f.d-(g.d+g.a)))}}else{$6c(d,_Nb(BD(a.b,65),BD(b.b,65)))}e=$wnd.Math.sqrt(d.a*d.a+d.b*d.b);e=LNb(GNb,b,e,d);$6c(d,e);$Nb(BD(b.b,65),d);Hkb(b.a,new RNb(d));BD(GNb.b,65);KNb(GNb,HNb,b)}} +function VJc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;a.f=new KFb;j=0;e=0;for(g=new olb(a.e.b);g.a<g.c.c.length;){f=BD(mlb(g),29);for(i=new olb(f.a);i.a<i.c.c.length;){h=BD(mlb(i),10);h.p=j++;for(d=new Sr(ur(U_b(h).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),17);c.p=e++}b=bKc(h);for(m=new olb(h.j);m.a<m.c.c.length;){l=BD(mlb(m),11);if(b){o=l.a.b;if(o!=$wnd.Math.floor(o)){k=o-Sbb(Cbb($wnd.Math.round(o)));l.a.b-=k}}n=l.n.b+l.a.b;if(n!=$wnd.Math.floor(n)){k=n-Sbb(Cbb($wnd.Math.round(n)));l.n.b-=k}}}}a.g=j;a.b=e;a.i=KC(xY,Uhe,401,j,0,1);a.c=KC(wY,Uhe,649,e,0,1);a.d.a.$b()} +function Uxd(a){var b,c,d,e,f,g,h,i,j;if(a.ej()){i=a.fj();if(a.i>0){b=new _zd(a.i,a.g);c=a.i;f=c<100?null:new Ixd(c);if(a.ij()){for(d=0;d<a.i;++d){g=a.g[d];f=a.kj(g,f)}}oud(a);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new $yd(b);d.e!=d.i.gc();){f=a.dj(Zyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{oud(a);a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){if(a.i>0){h=a.g;j=a.i;oud(a);f=j<100?null:new Ixd(j);for(d=0;d<j;++d){g=h[d];f=a.dj(g,f)}!!f&&f.Fi()}else{oud(a)}}else{oud(a)}} +function ZQc(a,b,c){var d,e,f,g,h,i,j,k,l,m;TQc(this);c==(FQc(),DQc)?Qqb(this.r,a):Qqb(this.w,a);k=Pje;j=Qje;for(g=b.a.ec().Kc();g.Ob();){e=BD(g.Pb(),46);h=BD(e.a,455);d=BD(e.b,17);i=d.c;i==a&&(i=d.d);h==DQc?Qqb(this.r,i):Qqb(this.w,i);m=(Ucd(),Lcd).Hc(i.j)?Edb(ED(vNb(i,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).b;k=$wnd.Math.min(k,m);j=$wnd.Math.max(j,m)}l=(Ucd(),Lcd).Hc(a.j)?Edb(ED(vNb(a,(wtc(),qtc)))):l7c(OC(GC(m1,1),nie,8,0,[a.i.n,a.n,a.a])).b;XQc(this,l,k,j);for(f=b.a.ec().Kc();f.Ob();){e=BD(f.Pb(),46);UQc(this,BD(e.b,17))}this.o=false} +function gD(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;c=a.l&8191;d=a.l>>13|(a.m&15)<<9;e=a.m>>4&8191;f=a.m>>17|(a.h&255)<<5;g=(a.h&1048320)>>8;h=b.l&8191;i=b.l>>13|(b.m&15)<<9;j=b.m>>4&8191;k=b.m>>17|(b.h&255)<<5;l=(b.h&1048320)>>8;B=c*h;C=d*h;D=e*h;F=f*h;G=g*h;if(i!=0){C+=c*i;D+=d*i;F+=e*i;G+=f*i}if(j!=0){D+=c*j;F+=d*j;G+=e*j}if(k!=0){F+=c*k;G+=d*k}l!=0&&(G+=c*l);n=B&Eje;o=(C&511)<<13;m=n+o;q=B>>22;r=C>>9;s=(D&262143)<<4;t=(F&31)<<17;p=q+r+s+t;v=D>>18;w=F>>5;A=(G&4095)<<8;u=v+w+A;p+=m>>22;m&=Eje;u+=p>>22;p&=Eje;u&=Fje;return TC(m,p,u)} +function o7b(a){var b,c,d,e,f,g,h;h=BD(Ikb(a.j,0),11);if(h.g.c.length!=0&&h.e.c.length!=0){throw vbb(new Zdb('Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges.'))}if(h.g.c.length!=0){f=Pje;for(c=new olb(h.g);c.a<c.c.c.length;){b=BD(mlb(c),17);g=b.d.i;d=BD(vNb(g,(Nyc(),txc)),142);f=$wnd.Math.min(f,g.n.a-d.b)}return new cc(Qb(f))}if(h.e.c.length!=0){e=Qje;for(c=new olb(h.e);c.a<c.c.c.length;){b=BD(mlb(c),17);g=b.c.i;d=BD(vNb(g,(Nyc(),txc)),142);e=$wnd.Math.max(e,g.n.a+g.o.a+d.c)}return new cc(Qb(e))}return wb(),wb(),vb} +function ELd(a,b){var c,d,e,f,g,h,i;if(a.Fk()){if(a.i>4){if(a.wj(b)){if(a.rk()){e=BD(b,49);d=e.Ug();i=d==a.e&&(a.Dk()?e.Og(e.Vg(),a.zk())==a.Ak():-1-e.Vg()==a.aj());if(a.Ek()&&!i&&!d&&!!e.Zg()){for(f=0;f<a.i;++f){c=a.Gk(BD(a.g[f],56));if(PD(c)===PD(b)){return true}}}return i}else if(a.Dk()&&!a.Ck()){g=BD(b,56).ah(zUd(BD(a.ak(),18)));if(PD(g)===PD(a.e)){return true}else if(g==null||!BD(g,56).kh()){return false}}}else{return false}}h=pud(a,b);if(a.Ek()&&!h){for(f=0;f<a.i;++f){e=a.Gk(BD(a.g[f],56));if(PD(e)===PD(b)){return true}}}return h}else{return pud(a,b)}} +function mHc(a,b){var c,d,e,f,g,h,i,j,k,l,m;k=new Rkb;m=new Tqb;g=b.b;for(e=0;e<g.c.length;e++){j=(tCb(e,g.c.length),BD(g.c[e],29)).a;k.c=KC(SI,Uhe,1,0,5,1);for(f=0;f<j.c.length;f++){h=a.a[e][f];h.p=f;h.k==(j0b(),i0b)&&(k.c[k.c.length]=h,true);Nkb(BD(Ikb(b.b,e),29).a,f,h);h.j.c=KC(SI,Uhe,1,0,5,1);Gkb(h.j,BD(BD(Ikb(a.b,e),15).Xb(f),14));ecd(BD(vNb(h,(Nyc(),Vxc)),98))||yNb(h,Vxc,(dcd(),Zbd))}for(d=new olb(k);d.a<d.c.c.length;){c=BD(mlb(d),10);l=kHc(c);m.a.zc(l,m);m.a.zc(c,m)}}for(i=m.a.ec().Kc();i.Ob();){h=BD(i.Pb(),10);mmb();Okb(h.j,(Occ(),Icc));h.i=true;N_b(h)}} +function g6b(a,b){var c,d,e,f,g,h,i,j,k,l;k=BD(vNb(a,(wtc(),Hsc)),61);d=BD(Ikb(a.j,0),11);k==(Ucd(),Acd)?G0b(d,Rcd):k==Rcd&&G0b(d,Acd);if(BD(vNb(b,(Nyc(),Fxc)),174).Hc((tdd(),sdd))){i=Edb(ED(vNb(a,tyc)));j=Edb(ED(vNb(a,uyc)));g=Edb(ED(vNb(a,ryc)));h=BD(vNb(b,Yxc),21);if(h.Hc((rcd(),ncd))){c=j;l=a.o.a/2-d.n.a;for(f=new olb(d.f);f.a<f.c.c.length;){e=BD(mlb(f),70);e.n.b=c;e.n.a=l-e.o.a/2;c+=e.o.b+g}}else if(h.Hc(pcd)){for(f=new olb(d.f);f.a<f.c.c.length;){e=BD(mlb(f),70);e.n.a=i+a.o.a-d.n.a}}WGb(new YGb((a$b(),new l$b(b,false,false,new T$b))),new x$b(null,a,false))}} +function Ugc(a,b){var c,d,e,f,g,h,i,j,k;if(b.c.length==0){return}mmb();Mlb(b.c,b.c.length,null);e=new olb(b);d=BD(mlb(e),145);while(e.a<e.c.c.length){c=BD(mlb(e),145);if(ADb(d.e.c,c.e.c)&&!(DDb(B6c(d.e).b,c.e.d)||DDb(B6c(c.e).b,d.e.d))){d=(Gkb(d.k,c.k),Gkb(d.b,c.b),Gkb(d.c,c.c),ye(d.i,c.i),Gkb(d.d,c.d),Gkb(d.j,c.j),f=$wnd.Math.min(d.e.c,c.e.c),g=$wnd.Math.min(d.e.d,c.e.d),h=$wnd.Math.max(d.e.c+d.e.b,c.e.c+c.e.b),i=h-f,j=$wnd.Math.max(d.e.d+d.e.a,c.e.d+c.e.a),k=j-g,G6c(d.e,f,g,i,k),hEb(d.f,c.f),!d.a&&(d.a=c.a),Gkb(d.g,c.g),Ekb(d.g,c),d)}else{Xgc(a,d);d=c}}Xgc(a,d)} +function e_b(a,b,c,d){var e,f,g,h,i,j;h=a.j;if(h==(Ucd(),Scd)&&b!=(dcd(),bcd)&&b!=(dcd(),ccd)){h=W$b(a,c);G0b(a,h);!(!a.q?(mmb(),mmb(),kmb):a.q)._b((Nyc(),Uxc))&&h!=Scd&&(a.n.a!=0||a.n.b!=0)&&yNb(a,Uxc,V$b(a,h))}if(b==(dcd(),_bd)){j=0;switch(h.g){case 1:case 3:f=a.i.o.a;f>0&&(j=a.n.a/f);break;case 2:case 4:e=a.i.o.b;e>0&&(j=a.n.b/e);}yNb(a,(wtc(),htc),j)}i=a.o;g=a.a;if(d){g.a=d.a;g.b=d.b;a.d=true}else if(b!=bcd&&b!=ccd&&h!=Scd){switch(h.g){case 1:g.a=i.a/2;break;case 2:g.a=i.a;g.b=i.b/2;break;case 3:g.a=i.a/2;g.b=i.b;break;case 4:g.b=i.b/2;}}else{g.a=i.a/2;g.b=i.b/2}} +function vwd(a){var b,c,d,e,f,g,h,i,j,k;if(a.ej()){k=a.Vi();i=a.fj();if(k>0){b=new Aud(a.Gi());c=k;f=c<100?null:new Ixd(c);Cvd(a,c,b.g);e=c==1?a.Zi(4,qud(b,0),null,0,i):a.Zi(6,b,null,-1,i);if(a.bj()){for(d=new Fyd(b);d.e!=d.i.gc();){f=a.dj(Dyd(d),f)}if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}else{if(!f){a.$i(e)}else{f.Ei(e);f.Fi()}}}else{Cvd(a,a.Vi(),a.Wi());a.$i(a.Zi(6,(mmb(),jmb),null,-1,i))}}else if(a.bj()){k=a.Vi();if(k>0){h=a.Wi();j=k;Cvd(a,k,h);f=j<100?null:new Ixd(j);for(d=0;d<j;++d){g=h[d];f=a.dj(g,f)}!!f&&f.Fi()}else{Cvd(a,a.Vi(),a.Wi())}}else{Cvd(a,a.Vi(),a.Wi())}} +function LEc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;for(h=new olb(b);h.a<h.c.c.length;){f=BD(mlb(h),233);f.e=null;f.c=0}i=null;for(g=new olb(b);g.a<g.c.c.length;){f=BD(mlb(g),233);l=f.d[0];if(c&&l.k!=(j0b(),h0b)){continue}for(n=BD(vNb(l,(wtc(),Qsc)),15).Kc();n.Ob();){m=BD(n.Pb(),10);if(!c||m.k==(j0b(),h0b)){(!f.e&&(f.e=new Rkb),f.e).Fc(a.b[m.c.p][m.p]);++a.b[m.c.p][m.p].c}}if(!c&&l.k==(j0b(),h0b)){if(i){for(k=BD(Qc(a.d,i),21).Kc();k.Ob();){j=BD(k.Pb(),10);for(e=BD(Qc(a.d,l),21).Kc();e.Ob();){d=BD(e.Pb(),10);YEc(a.b[j.c.p][j.p]).Fc(a.b[d.c.p][d.p]);++a.b[d.c.p][d.p].c}}}i=l}}} +function OHc(a,b){var c,d,e,f,g,h,i,j,k;c=0;k=new Rkb;for(h=new olb(b);h.a<h.c.c.length;){g=BD(mlb(h),11);AHc(a.b,a.d[g.p]);k.c=KC(SI,Uhe,1,0,5,1);switch(g.i.k.g){case 0:d=BD(vNb(g,(wtc(),gtc)),10);Hkb(d.j,new xIc(k));break;case 1:Ctb(KAb(JAb(new YAb(null,new Kub(g.i.j,16)),new zIc(g))),new CIc(k));break;case 3:e=BD(vNb(g,(wtc(),$sc)),11);Ekb(k,new vgd(e,meb(g.e.c.length+g.g.c.length)));}for(j=new olb(k);j.a<j.c.c.length;){i=BD(mlb(j),46);f=aIc(a,BD(i.a,11));if(f>a.d[g.p]){c+=zHc(a.b,f)*BD(i.b,19).a;Wjb(a.a,meb(f))}}while(!akb(a.a)){xHc(a.b,BD(fkb(a.a),19).a)}}return c} +function eed(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;l=new g7c(BD(hkd(a,(X7c(),R7c)),8));l.a=$wnd.Math.max(l.a-c.b-c.c,0);l.b=$wnd.Math.max(l.b-c.d-c.a,0);e=ED(hkd(a,L7c));(e==null||(uCb(e),e)<=0)&&(e=1.3);h=new Rkb;for(o=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));o.e!=o.i.gc();){n=BD(Dyd(o),33);g=new xed(n);h.c[h.c.length]=g}m=BD(hkd(a,M7c),311);switch(m.g){case 3:q=bed(h,b,l.a,l.b,(j=d,uCb(e),e,j));break;case 1:q=aed(h,b,l.a,l.b,(k=d,uCb(e),e,k));break;default:q=ced(h,b,l.a,l.b,(i=d,uCb(e),e,i));}f=new wed(q);p=fed(f,b,c,l.a,l.b,d,(uCb(e),e));Afd(a,p.a,p.b,false,true)} +function vkc(a,b){var c,d,e,f;c=b.b;f=new Tkb(c.j);e=0;d=c.j;d.c=KC(SI,Uhe,1,0,5,1);hkc(BD(Si(a.b,(Ucd(),Acd),(Fkc(),Ekc)),15),c);e=ikc(f,e,new blc,d);hkc(BD(Si(a.b,Acd,Dkc),15),c);e=ikc(f,e,new dlc,d);hkc(BD(Si(a.b,Acd,Ckc),15),c);hkc(BD(Si(a.b,zcd,Ekc),15),c);hkc(BD(Si(a.b,zcd,Dkc),15),c);e=ikc(f,e,new flc,d);hkc(BD(Si(a.b,zcd,Ckc),15),c);hkc(BD(Si(a.b,Rcd,Ekc),15),c);e=ikc(f,e,new hlc,d);hkc(BD(Si(a.b,Rcd,Dkc),15),c);e=ikc(f,e,new jlc,d);hkc(BD(Si(a.b,Rcd,Ckc),15),c);hkc(BD(Si(a.b,Tcd,Ekc),15),c);e=ikc(f,e,new Pkc,d);hkc(BD(Si(a.b,Tcd,Dkc),15),c);hkc(BD(Si(a.b,Tcd,Ckc),15),c)} +function nbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Layer size calculation',1);k=Pje;j=Qje;e=false;for(h=new olb(a.b);h.a<h.c.c.length;){g=BD(mlb(h),29);i=g.c;i.a=0;i.b=0;if(g.a.c.length==0){continue}e=true;for(m=new olb(g.a);m.a<m.c.c.length;){l=BD(mlb(m),10);o=l.o;n=l.d;i.a=$wnd.Math.max(i.a,o.a+n.b+n.c)}d=BD(Ikb(g.a,0),10);p=d.n.b-d.d.d;d.k==(j0b(),e0b)&&(p-=BD(vNb(a,(Nyc(),yyc)),142).d);f=BD(Ikb(g.a,g.a.c.length-1),10);c=f.n.b+f.o.b+f.d.a;f.k==e0b&&(c+=BD(vNb(a,(Nyc(),yyc)),142).a);i.b=c-p;k=$wnd.Math.min(k,p);j=$wnd.Math.max(j,c)}if(!e){k=0;j=0}a.f.b=j-k;a.c.b-=k;Qdd(b)} +function h_b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;f=0;g=0;for(j=new olb(a.a);j.a<j.c.c.length;){h=BD(mlb(j),10);f=$wnd.Math.max(f,h.d.b);g=$wnd.Math.max(g,h.d.c)}for(i=new olb(a.a);i.a<i.c.c.length;){h=BD(mlb(i),10);c=BD(vNb(h,(Nyc(),mwc)),248);switch(c.g){case 1:o=0;break;case 2:o=1;break;case 5:o=0.5;break;default:d=0;l=0;for(n=new olb(h.j);n.a<n.c.c.length;){m=BD(mlb(n),11);m.e.c.length==0||++d;m.g.c.length==0||++l}d+l==0?(o=0.5):(o=l/(d+l));}q=a.c;k=h.o.a;r=(q.a-k)*o;o>0.5?(r-=g*2*(o-0.5)):o<0.5&&(r+=f*2*(0.5-o));e=h.d.b;r<e&&(r=e);p=h.d.c;r>q.a-p-k&&(r=q.a-p-k);h.n.a=b+r}} +function ced(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;h=KC(UD,Vje,25,a.c.length,15,1);m=new gub(new Ned);_tb(m,a);j=0;p=new Rkb;while(m.b.c.length!=0){g=BD(m.b.c.length==0?null:Ikb(m.b,0),157);if(j>1&&red(g)*qed(g)/2>h[0]){f=0;while(f<p.c.length-1&&red(g)*qed(g)/2>h[f]){++f}o=new Jib(p,0,f+1);l=new wed(o);k=red(g)/qed(g);i=fed(l,b,new p0b,c,d,e,k);P6c(X6c(l.e),i);zCb(cub(m,l));n=new Jib(p,f+1,p.c.length);_tb(m,n);p.c=KC(SI,Uhe,1,0,5,1);j=0;Dlb(h,h.length,0)}else{q=m.b.c.length==0?null:Ikb(m.b,0);q!=null&&fub(m,0);j>0&&(h[j]=h[j-1]);h[j]+=red(g)*qed(g);++j;p.c[p.c.length]=g}}return p} +function Wac(a){var b,c,d,e,f;d=BD(vNb(a,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){for(c=new Sr(ur(R_b(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),17);if(!Yac(b)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. "+'FIRST_SEPARATE nodes must not have incoming edges.'))}}}else if(d==Atc){for(f=new Sr(ur(U_b(a).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(!Yac(e)){throw vbb(new y2c(Fne+P_b(a)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. "+'LAST_SEPARATE nodes must not have outgoing edges.'))}}}} +function C9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;Odd(b,'Label dummy removal',1);d=Edb(ED(vNb(a,(Nyc(),nyc))));e=Edb(ED(vNb(a,ryc)));j=BD(vNb(a,Lwc),103);for(i=new olb(a.b);i.a<i.c.c.length;){h=BD(mlb(i),29);l=new Bib(h.a,0);while(l.b<l.d.gc()){k=(sCb(l.b<l.d.gc()),BD(l.d.Xb(l.c=l.b++),10));if(k.k==(j0b(),f0b)){m=BD(vNb(k,(wtc(),$sc)),17);o=Edb(ED(vNb(m,Zwc)));g=PD(vNb(k,Ssc))===PD((rbd(),obd));c=new g7c(k.n);g&&(c.b+=o+d);f=new f7c(k.o.a,k.o.b-o-d);n=BD(vNb(k,ktc),15);j==(ead(),dad)||j==_9c?B9b(n,c,e,f,g,j):A9b(n,c,e,f);Gkb(m.b,n);sbc(k,PD(vNb(a,Swc))===PD((Aad(),xad)));uib(l)}}}Qdd(b)} +function tZb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;i=new Rkb;for(f=new olb(b.a);f.a<f.c.c.length;){e=BD(mlb(f),10);for(h=new olb(e.j);h.a<h.c.c.length;){g=BD(mlb(h),11);k=null;for(t=k_b(g.g),u=0,v=t.length;u<v;++u){s=t[u];if(!f_b(s.d.i,c)){r=oZb(a,b,c,s,s.c,(KAc(),IAc),k);r!=k&&(i.c[i.c.length]=r,true);r.c&&(k=r)}}j=null;for(o=k_b(g.e),p=0,q=o.length;p<q;++p){n=o[p];if(!f_b(n.c.i,c)){r=oZb(a,b,c,n,n.d,(KAc(),HAc),j);r!=j&&(i.c[i.c.length]=r,true);r.c&&(j=r)}}}}for(m=new olb(i);m.a<m.c.c.length;){l=BD(mlb(m),441);Jkb(b.a,l.a,0)!=-1||Ekb(b.a,l.a);l.c&&(d.c[d.c.length]=l,true)}} +function jCc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;Odd(c,'Interactive cycle breaking',1);l=new Rkb;for(n=new olb(b.a);n.a<n.c.c.length;){m=BD(mlb(n),10);m.p=1;o=T_b(m).a;for(k=W_b(m,(KAc(),IAc)).Kc();k.Ob();){j=BD(k.Pb(),11);for(f=new olb(j.g);f.a<f.c.c.length;){d=BD(mlb(f),17);p=d.d.i;if(p!=m){q=T_b(p).a;q<o&&(l.c[l.c.length]=d,true)}}}}for(g=new olb(l);g.a<g.c.c.length;){d=BD(mlb(g),17);PZb(d,true)}l.c=KC(SI,Uhe,1,0,5,1);for(i=new olb(b.a);i.a<i.c.c.length;){h=BD(mlb(i),10);h.p>0&&iCc(a,h,l)}for(e=new olb(l);e.a<e.c.c.length;){d=BD(mlb(e),17);PZb(d,true)}l.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function _z(a,b){var c,d,e,f,g,h,i,j,k;j='';if(b.length==0){return a.de(Zie,Xie,-1,-1)}k=ufb(b);dfb(k.substr(0,3),'at ')&&(k=k.substr(3));k=k.replace(/\[.*?\]/g,'');g=k.indexOf('(');if(g==-1){g=k.indexOf('@');if(g==-1){j=k;k=''}else{j=ufb(k.substr(g+1));k=ufb(k.substr(0,g))}}else{c=k.indexOf(')',g);j=k.substr(g+1,c-(g+1));k=ufb(k.substr(0,g))}g=hfb(k,wfb(46));g!=-1&&(k=k.substr(g+1));(k.length==0||dfb(k,'Anonymous function'))&&(k=Xie);h=kfb(j,wfb(58));e=lfb(j,wfb(58),h-1);i=-1;d=-1;f=Zie;if(h!=-1&&e!=-1){f=j.substr(0,e);i=Vz(j.substr(e+1,h-(e+1)));d=Vz(j.substr(h+1))}return a.de(f,k,i,d)} +function UC(a,b,c){var d,e,f,g,h,i;if(b.l==0&&b.m==0&&b.h==0){throw vbb(new ocb('divide by zero'))}if(a.l==0&&a.m==0&&a.h==0){c&&(QC=TC(0,0,0));return TC(0,0,0)}if(b.h==Gje&&b.m==0&&b.l==0){return VC(a,c)}i=false;if(b.h>>19!=0){b=hD(b);i=!i}g=_C(b);f=false;e=false;d=false;if(a.h==Gje&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=SC((wD(),sD));d=true;i=!i}else{h=lD(a,g);i&&ZC(h);c&&(QC=TC(0,0,0));return h}}else if(a.h>>19!=0){f=true;a=hD(a);d=true;i=!i}if(g!=-1){return WC(a,g,i,f,c)}if(eD(a,b)<0){c&&(f?(QC=hD(a)):(QC=TC(a.l,a.m,a.h)));return TC(0,0,0)}return XC(d?a:TC(a.l,a.m,a.h),b,i,f,e,c)} +function F2c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(a.e&&a.c.c<a.f){throw vbb(new Zdb('Expected '+a.f+' phases to be configured; '+'only found '+a.c.c))}k=BD(gdb(a.g),9);n=Pu(a.f);for(f=k,h=0,j=f.length;h<j;++h){d=f[h];l=BD(B2c(a,d.g),246);l?Ekb(n,BD(I2c(a,l),123)):(n.c[n.c.length]=null,true)}o=new j3c;MAb(JAb(NAb(JAb(new YAb(null,new Kub(n,16)),new O2c),new Q2c(b)),new S2c),new U2c(o));d3c(o,a.a);c=new Rkb;for(e=k,g=0,i=e.length;g<i;++g){d=e[g];Gkb(c,J2c(a,Dx(BD(B2c(o,d.g),20))));m=BD(Ikb(n,d.g),123);!!m&&(c.c[c.c.length]=m,true)}Gkb(c,J2c(a,Dx(BD(B2c(o,k[k.length-1].g+1),20))));return c} +function qCc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;Odd(c,'Model order cycle breaking',1);a.a=0;a.b=0;n=new Rkb;k=b.a.c.length;for(j=new olb(b.a);j.a<j.c.c.length;){i=BD(mlb(j),10);wNb(i,(wtc(),Zsc))&&(k=$wnd.Math.max(k,BD(vNb(i,Zsc),19).a+1))}for(p=new olb(b.a);p.a<p.c.c.length;){o=BD(mlb(p),10);g=pCc(a,o,k);for(m=W_b(o,(KAc(),IAc)).Kc();m.Ob();){l=BD(m.Pb(),11);for(f=new olb(l.g);f.a<f.c.c.length;){d=BD(mlb(f),17);q=d.d.i;h=pCc(a,q,k);h<g&&(n.c[n.c.length]=d,true)}}}for(e=new olb(n);e.a<e.c.c.length;){d=BD(mlb(e),17);PZb(d,true);yNb(b,(wtc(),Asc),(Bcb(),true))}n.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function kQc(a,b){var c,d,e,f,g,h,i;if(a.g>b.f||b.g>a.f){return}c=0;d=0;for(g=a.w.a.ec().Kc();g.Ob();){e=BD(g.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&++c}for(h=a.r.a.ec().Kc();h.Ob();){e=BD(h.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,b.g,b.f)&&--c}for(i=b.w.a.ec().Kc();i.Ob();){e=BD(i.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&++d}for(f=b.r.a.ec().Kc();f.Ob();){e=BD(f.Pb(),11);aRc(l7c(OC(GC(m1,1),nie,8,0,[e.i.n,e.n,e.a])).b,a.g,a.f)&&--d}if(c<d){new BQc(a,b,d-c)}else if(d<c){new BQc(b,a,c-d)}else{new BQc(b,a,0);new BQc(a,b,0)}} +function JPb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;j=b.c;e=IOb(a.e);l=Y6c(b7c(R6c(HOb(a.e)),a.d*a.a,a.c*a.b),-0.5);c=e.a-l.a;d=e.b-l.b;g=b.a;c=g.c-c;d=g.d-d;for(i=new olb(j);i.a<i.c.c.length;){h=BD(mlb(i),395);m=h.b;n=c+m.a;q=d+m.b;o=QD(n/a.a);r=QD(q/a.b);f=h.a;switch(f.g){case 0:k=(RMb(),OMb);break;case 1:k=(RMb(),NMb);break;case 2:k=(RMb(),PMb);break;default:k=(RMb(),QMb);}if(f.a){s=QD((q+h.c)/a.b);Ekb(a.f,new uOb(k,meb(r),meb(s)));f==(ROb(),QOb)?nNb(a,0,r,o,s):nNb(a,o,r,a.d-1,s)}else{p=QD((n+h.c)/a.a);Ekb(a.f,new uOb(k,meb(o),meb(p)));f==(ROb(),OOb)?nNb(a,o,0,p,r):nNb(a,o,r,p,a.c-1)}}} +function coc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;m=new Rkb;e=new Rkb;p=null;for(h=b.Kc();h.Ob();){g=BD(h.Pb(),19);f=new qoc(g.a);e.c[e.c.length]=f;if(p){f.d=p;p.e=f}p=f}t=boc(a);for(k=0;k<e.c.length;++k){n=null;q=poc((tCb(0,e.c.length),BD(e.c[0],652)));c=null;d=Pje;for(l=1;l<a.b.c.length;++l){r=q?$wnd.Math.abs(q.b-l):$wnd.Math.abs(l-n.b)+1;o=n?$wnd.Math.abs(l-n.b):r+1;if(o<r){j=n;i=o}else{j=q;i=r}s=(u=Edb(ED(vNb(a,(Nyc(),Hyc)))),t[l]+$wnd.Math.pow(i,u));if(s<d){d=s;c=j;c.c=l}if(!!q&&l==q.b){n=q;q=koc(q)}}if(c){Ekb(m,meb(c.c));c.a=true;loc(c)}}mmb();Mlb(m.c,m.c.length,null);return m} +function qNd(a){var b,c,d,e,f,g,h,i,j,k;b=new zNd;c=new zNd;j=dfb(Qve,(e=Dmd(a.b,Rve),!e?null:GD(AAd((!e.b&&(e.b=new sId((jGd(),fGd),x6,e)),e.b),Sve))));for(i=0;i<a.i;++i){h=BD(a.g[i],170);if(JD(h,99)){g=BD(h,18);(g.Bb&ote)!=0?((g.Bb&oie)==0||!j&&(f=Dmd(g,Rve),(!f?null:GD(AAd((!f.b&&(f.b=new sId((jGd(),fGd),x6,f)),f.b),eue)))==null))&&wtd(b,g):(k=zUd(g),!!k&&(k.Bb&ote)!=0||((g.Bb&oie)==0||!j&&(d=Dmd(g,Rve),(!d?null:GD(AAd((!d.b&&(d.b=new sId((jGd(),fGd),x6,d)),d.b),eue)))==null))&&wtd(c,g))}else{Q6d();if(BD(h,66).Oj()){if(!h.Jj()){wtd(b,h);wtd(c,h)}}}}vud(b);vud(c);a.a=BD(b.g,247);BD(c.g,247)} +function LTb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;j=ITb(b);q=BD(vNb(b,(Nyc(),Iwc)),314);q!=(Rpc(),Ppc)&&reb(j,new STb);r=BD(vNb(b,Cwc),292);reb(j,new UTb(r));p=0;k=new Rkb;for(f=new xkb(j);f.a!=f.b;){e=BD(vkb(f),37);aUb(a.c,e);m=BD(vNb(e,(wtc(),itc)),15);p+=m.gc();d=m.Kc();Ekb(k,new vgd(e,d))}Odd(c,'Recursive hierarchical layout',p);o=0;n=BD(BD(Ikb(k,k.c.length-1),46).b,47);while(n.Ob()){for(i=new olb(k);i.a<i.c.c.length;){h=BD(mlb(i),46);m=BD(h.b,47);g=BD(h.a,37);while(m.Ob()){l=BD(m.Pb(),51);if(JD(l,507)){if(!g.e){l.pf(g,Udd(c,1));++o;break}else{break}}else{l.pf(g,Udd(c,1));++o}}}}Qdd(c)} +function rid(b,c){var d,e,f,g,h,i,j,k,l,m;j=c.length-1;i=(BCb(j,c.length),c.charCodeAt(j));if(i==93){h=hfb(c,wfb(91));if(h>=0){f=wid(b,c.substr(1,h-1));l=c.substr(h+1,j-(h+1));return pid(b,l,f)}}else{d=-1;Vcb==null&&(Vcb=new RegExp('\\d'));if(Vcb.test(String.fromCharCode(i))){d=lfb(c,wfb(46),j-1);if(d>=0){e=BD(hid(b,Bid(b,c.substr(1,d-1)),false),58);k=0;try{k=Icb(c.substr(d+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){g=a;throw vbb(new rFd(g))}else throw vbb(a)}if(k<e.gc()){m=e.Xb(k);JD(m,72)&&(m=BD(m,72).dd());return BD(m,56)}}}if(d<0){return BD(hid(b,Bid(b,c.substr(1)),false),56)}}return null} +function e1d(a,b,c){var d,e,f,g,h,i,j,k,l;if(bLd(b,c)>=0){return c}switch($1d(q1d(a,c))){case 2:{if(dfb('',o1d(a,c.Hj()).ne())){i=b2d(q1d(a,c));h=a2d(q1d(a,c));k=r1d(a,b,i,h);if(k){return k}e=f1d(a,b);for(g=0,l=e.gc();g<l;++g){k=BD(e.Xb(g),170);if(x1d(c2d(q1d(a,k)),i)){return k}}}return null}case 4:{if(dfb('',o1d(a,c.Hj()).ne())){for(d=c;d;d=Z1d(q1d(a,d))){j=b2d(q1d(a,d));h=a2d(q1d(a,d));k=s1d(a,b,j,h);if(k){return k}}i=b2d(q1d(a,c));if(dfb(Ewe,i)){return t1d(a,b)}else{f=g1d(a,b);for(g=0,l=f.gc();g<l;++g){k=BD(f.Xb(g),170);if(x1d(c2d(q1d(a,k)),i)){return k}}}}return null}default:{return null}}} +function t2d(a,b,c){var d,e,f,g,h,i,j,k;if(c.gc()==0){return false}h=(Q6d(),BD(b,66).Oj());f=h?c:new zud(c.gc());if(T6d(a.e,b)){if(b.hi()){for(j=c.Kc();j.Ob();){i=j.Pb();if(!F2d(a,b,i,JD(b,99)&&(BD(b,18).Bb&Tje)!=0)){e=R6d(b,i);f.Hc(e)||f.Fc(e)}}}else if(!h){for(j=c.Kc();j.Ob();){i=j.Pb();e=R6d(b,i);f.Fc(e)}}}else{if(c.gc()>1){throw vbb(new Wdb(Hwe))}k=S6d(a.e.Tg(),b);d=BD(a.g,119);for(g=0;g<a.i;++g){e=d[g];if(k.rl(e.ak())){if(c.Hc(h?e:e.dd())){return false}else{for(j=c.Kc();j.Ob();){i=j.Pb();BD(Gtd(a,g,h?BD(i,72):R6d(b,i)),72)}return true}}}if(!h){e=R6d(b,c.Kc().Pb());f.Fc(e)}}return ytd(a,f)} +function qMc(a,b){var c,d,e,f,g,h,i,j,k;k=new Psb;for(h=(j=(new $ib(a.c)).a.vc().Kc(),new djb(j));h.a.Ob();){f=(e=BD(h.a.Pb(),42),BD(e.dd(),458));f.b==0&&(Gsb(k,f,k.c.b,k.c),true)}while(k.b!=0){f=BD(k.b==0?null:(sCb(k.b!=0),Nsb(k,k.a.a)),458);f.a==null&&(f.a=0);for(d=new olb(f.d);d.a<d.c.c.length;){c=BD(mlb(d),654);c.b.a==null?(c.b.a=Edb(f.a)+c.a):b.o==(eMc(),cMc)?(c.b.a=$wnd.Math.min(Edb(c.b.a),Edb(f.a)+c.a)):(c.b.a=$wnd.Math.max(Edb(c.b.a),Edb(f.a)+c.a));--c.b.b;c.b.b==0&&Dsb(k,c.b)}}for(g=(i=(new $ib(a.c)).a.vc().Kc(),new djb(i));g.a.Ob();){f=(e=BD(g.a.Pb(),42),BD(e.dd(),458));b.i[f.c.p]=f.a}} +function mTc(){mTc=ccb;dTc=new Lsd(Ime);new Lsd(Jme);new Msd('DEPTH',meb(0));ZSc=new Msd('FAN',meb(0));XSc=new Msd(Yqe,meb(0));jTc=new Msd('ROOT',(Bcb(),false));_Sc=new Msd('LEFTNEIGHBOR',null);hTc=new Msd('RIGHTNEIGHBOR',null);aTc=new Msd('LEFTSIBLING',null);iTc=new Msd('RIGHTSIBLING',null);YSc=new Msd('DUMMY',false);new Msd('LEVEL',meb(0));gTc=new Msd('REMOVABLE_EDGES',new Psb);kTc=new Msd('XCOOR',meb(0));lTc=new Msd('YCOOR',meb(0));bTc=new Msd('LEVELHEIGHT',0);$Sc=new Msd('ID','');eTc=new Msd('POSITION',meb(0));fTc=new Msd('PRELIM',0);cTc=new Msd('MODIFIER',0);WSc=new Lsd(Kme);VSc=new Lsd(Lme)} +function MNc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;k=c+b.c.c.a;for(n=new olb(b.j);n.a<n.c.c.length;){m=BD(mlb(n),11);e=l7c(OC(GC(m1,1),nie,8,0,[m.i.n,m.n,m.a]));if(b.k==(j0b(),i0b)){h=BD(vNb(m,(wtc(),$sc)),11);e.a=l7c(OC(GC(m1,1),nie,8,0,[h.i.n,h.n,h.a])).a;b.n.a=e.a}g=new f7c(0,e.b);if(m.j==(Ucd(),zcd)){g.a=k}else if(m.j==Tcd){g.a=c}else{continue}o=$wnd.Math.abs(e.a-g.a);if(o<=d&&!JNc(b)){continue}f=m.g.c.length+m.e.c.length>1;for(j=new b1b(m.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);l=i.c==m?i.d:i.c;$wnd.Math.abs(l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a])).b-g.b)>1&&GNc(a,i,g,f,m)}}} +function XPc(a){var b,c,d,e,f,g;e=new Bib(a.e,0);d=new Bib(a.a,0);if(a.d){for(c=0;c<a.b;c++){sCb(e.b<e.d.gc());e.d.Xb(e.c=e.b++)}}else{for(c=0;c<a.b-1;c++){sCb(e.b<e.d.gc());e.d.Xb(e.c=e.b++);uib(e)}}b=Edb((sCb(e.b<e.d.gc()),ED(e.d.Xb(e.c=e.b++))));while(a.f-b>Oqe){f=b;g=0;while($wnd.Math.abs(b-f)<Oqe){++g;b=Edb((sCb(e.b<e.d.gc()),ED(e.d.Xb(e.c=e.b++))));sCb(d.b<d.d.gc());d.d.Xb(d.c=d.b++)}if(g<a.b){sCb(e.b>0);e.a.Xb(e.c=--e.b);WPc(a,a.b-g,f,d,e);sCb(e.b<e.d.gc());e.d.Xb(e.c=e.b++)}sCb(d.b>0);d.a.Xb(d.c=--d.b)}if(!a.d){for(c=0;c<a.b-1;c++){sCb(e.b<e.d.gc());e.d.Xb(e.c=e.b++);uib(e)}}a.d=true;a.c=true} +function Q8d(){Q8d=ccb;s8d=(r8d(),q8d).b;v8d=BD(qud(ZKd(q8d.b),0),34);t8d=BD(qud(ZKd(q8d.b),1),34);u8d=BD(qud(ZKd(q8d.b),2),34);F8d=q8d.bb;BD(qud(ZKd(q8d.bb),0),34);BD(qud(ZKd(q8d.bb),1),34);H8d=q8d.fb;I8d=BD(qud(ZKd(q8d.fb),0),34);BD(qud(ZKd(q8d.fb),1),34);BD(qud(ZKd(q8d.fb),2),18);K8d=q8d.qb;N8d=BD(qud(ZKd(q8d.qb),0),34);BD(qud(ZKd(q8d.qb),1),18);BD(qud(ZKd(q8d.qb),2),18);L8d=BD(qud(ZKd(q8d.qb),3),34);M8d=BD(qud(ZKd(q8d.qb),4),34);P8d=BD(qud(ZKd(q8d.qb),6),34);O8d=BD(qud(ZKd(q8d.qb),5),18);w8d=q8d.j;x8d=q8d.k;y8d=q8d.q;z8d=q8d.w;A8d=q8d.B;B8d=q8d.A;C8d=q8d.C;D8d=q8d.D;E8d=q8d._;G8d=q8d.cb;J8d=q8d.hb} +function $Dc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.c=0;a.b=0;d=2*b.c.a.c.length+1;o:for(l=c.Kc();l.Ob();){k=BD(l.Pb(),11);h=k.j==(Ucd(),Acd)||k.j==Rcd;n=0;if(h){m=BD(vNb(k,(wtc(),gtc)),10);if(!m){continue}n+=VDc(a,d,k,m)}else{for(j=new olb(k.g);j.a<j.c.c.length;){i=BD(mlb(j),17);e=i.d;if(e.i.c==b.c){Ekb(a.a,k);continue o}else{n+=a.g[e.p]}}for(g=new olb(k.e);g.a<g.c.c.length;){f=BD(mlb(g),17);e=f.c;if(e.i.c==b.c){Ekb(a.a,k);continue o}else{n-=a.g[e.p]}}}if(k.e.c.length+k.g.c.length>0){a.f[k.p]=n/(k.e.c.length+k.g.c.length);a.c=$wnd.Math.min(a.c,a.f[k.p]);a.b=$wnd.Math.max(a.b,a.f[k.p])}else h&&(a.f[k.p]=n)}} +function $9d(a){a.b=null;a.bb=null;a.fb=null;a.qb=null;a.a=null;a.c=null;a.d=null;a.e=null;a.f=null;a.n=null;a.M=null;a.L=null;a.Q=null;a.R=null;a.K=null;a.db=null;a.eb=null;a.g=null;a.i=null;a.j=null;a.k=null;a.gb=null;a.o=null;a.p=null;a.q=null;a.r=null;a.$=null;a.ib=null;a.S=null;a.T=null;a.t=null;a.s=null;a.u=null;a.v=null;a.w=null;a.B=null;a.A=null;a.C=null;a.D=null;a.F=null;a.G=null;a.H=null;a.I=null;a.J=null;a.P=null;a.Z=null;a.U=null;a.V=null;a.W=null;a.X=null;a.Y=null;a._=null;a.ab=null;a.cb=null;a.hb=null;a.nb=null;a.lb=null;a.mb=null;a.ob=null;a.pb=null;a.jb=null;a.kb=null;a.N=false;a.O=false} +function l5b(a,b,c){var d,e,f,g;Odd(c,'Graph transformation ('+a.a+')',1);g=Mu(b.a);for(f=new olb(b.b);f.a<f.c.c.length;){e=BD(mlb(f),29);Gkb(g,e.a)}d=BD(vNb(b,(Nyc(),Mwc)),419);if(d==(xqc(),vqc)){switch(BD(vNb(b,Lwc),103).g){case 2:_4b(b,g);break;case 3:p5b(b,g);break;case 4:if(a.a==(y5b(),x5b)){p5b(b,g);a5b(b,g)}else{a5b(b,g);p5b(b,g)}}}else{if(a.a==(y5b(),x5b)){switch(BD(vNb(b,Lwc),103).g){case 2:_4b(b,g);a5b(b,g);break;case 3:p5b(b,g);_4b(b,g);break;case 4:_4b(b,g);p5b(b,g);}}else{switch(BD(vNb(b,Lwc),103).g){case 2:_4b(b,g);a5b(b,g);break;case 3:_4b(b,g);p5b(b,g);break;case 4:p5b(b,g);_4b(b,g);}}}Qdd(c)} +function j6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;j=new zsb;k=new zsb;o=new zsb;p=new zsb;i=Edb(ED(vNb(b,(Nyc(),vyc))));f=Edb(ED(vNb(b,lyc)));for(h=new olb(c);h.a<h.c.c.length;){g=BD(mlb(h),10);l=BD(vNb(g,(wtc(),Hsc)),61);if(l==(Ucd(),Acd)){k.a.zc(g,k);for(e=new Sr(ur(R_b(g).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);Qqb(j,d.c.i)}}else if(l==Rcd){p.a.zc(g,p);for(e=new Sr(ur(R_b(g).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);Qqb(o,d.c.i)}}}if(j.a.gc()!=0){m=new tPc(2,f);n=sPc(m,b,j,k,-i-b.c.b);if(n>0){a.a=i+(n-1)*f;b.c.b+=a.a;b.f.b+=a.a}}if(o.a.gc()!=0){m=new tPc(1,f);n=sPc(m,b,o,p,b.f.b+i-b.c.b);n>0&&(b.f.b+=i+(n-1)*f)}} +function kKd(a,b){var c,d,e,f;f=a.F;if(b==null){a.F=null;$Jd(a,null)}else{a.F=(uCb(b),b);d=hfb(b,wfb(60));if(d!=-1){e=b.substr(0,d);hfb(b,wfb(46))==-1&&!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)&&(e=Lve);c=kfb(b,wfb(62));c!=-1&&(e+=''+b.substr(c+1));$Jd(a,e)}else{e=b;if(hfb(b,wfb(46))==-1){d=hfb(b,wfb(91));d!=-1&&(e=b.substr(0,d));if(!dfb(e,Khe)&&!dfb(e,Eve)&&!dfb(e,Fve)&&!dfb(e,Gve)&&!dfb(e,Hve)&&!dfb(e,Ive)&&!dfb(e,Jve)&&!dfb(e,Kve)){e=Lve;d!=-1&&(e+=''+b.substr(d))}else{e=b}}$Jd(a,e);e==b&&(a.F=a.D)}}(a.Db&4)!=0&&(a.Db&1)==0&&Uhd(a,new nSd(a,1,5,f,b))} +function AMc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;p=b.b.c.length;if(p<3){return}n=KC(WD,oje,25,p,15,1);l=0;for(k=new olb(b.b);k.a<k.c.c.length;){j=BD(mlb(k),29);n[l++]=j.a.c.length}m=new Bib(b.b,2);for(d=1;d<p-1;d++){c=(sCb(m.b<m.d.gc()),BD(m.d.Xb(m.c=m.b++),29));o=new olb(c.a);f=0;h=0;for(i=0;i<n[d+1];i++){t=BD(mlb(o),10);if(i==n[d+1]-1||zMc(a,t,d+1,d)){g=n[d]-1;zMc(a,t,d+1,d)&&(g=a.c.e[BD(BD(BD(Ikb(a.c.b,t.p),15).Xb(0),46).a,10).p]);while(h<=i){s=BD(Ikb(c.a,h),10);if(!zMc(a,s,d+1,d)){for(r=BD(Ikb(a.c.b,s.p),15).Kc();r.Ob();){q=BD(r.Pb(),46);e=a.c.e[BD(q.a,10).p];(e<f||e>g)&&Qqb(a.b,BD(q.b,17))}}++h}f=g}}}} +function o5c(b,c){var d;if(c==null||dfb(c,Xhe)){return null}if(c.length==0&&b.k!=(_5c(),W5c)){return null}switch(b.k.g){case 1:return efb(c,kse)?(Bcb(),Acb):efb(c,lse)?(Bcb(),zcb):null;case 2:try{return meb(Icb(c,Rie,Ohe))}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 4:try{return Hcb(c)}catch(a){a=ubb(a);if(JD(a,127)){return null}else throw vbb(a)}case 3:return c;case 5:j5c(b);return m5c(b,c);case 6:j5c(b);return n5c(b,b.a,c);case 7:try{d=l5c(b);d.Jf(c);return d}catch(a){a=ubb(a);if(JD(a,32)){return null}else throw vbb(a)}default:throw vbb(new Zdb('Invalid type set for this layout option.'));}} +function JWb(a){AWb();var b,c,d,e,f,g,h;h=new CWb;for(c=new olb(a);c.a<c.c.c.length;){b=BD(mlb(c),140);(!h.b||b.c>=h.b.c)&&(h.b=b);if(!h.c||b.c<=h.c.c){h.d=h.c;h.c=b}(!h.e||b.d>=h.e.d)&&(h.e=b);(!h.f||b.d<=h.f.d)&&(h.f=b)}d=new NWb((lWb(),hWb));rXb(a,yWb,new amb(OC(GC(bQ,1),Uhe,369,0,[d])));g=new NWb(kWb);rXb(a,xWb,new amb(OC(GC(bQ,1),Uhe,369,0,[g])));e=new NWb(iWb);rXb(a,wWb,new amb(OC(GC(bQ,1),Uhe,369,0,[e])));f=new NWb(jWb);rXb(a,vWb,new amb(OC(GC(bQ,1),Uhe,369,0,[f])));DWb(d.c,hWb);DWb(e.c,iWb);DWb(f.c,jWb);DWb(g.c,kWb);h.a.c=KC(SI,Uhe,1,0,5,1);Gkb(h.a,d.c);Gkb(h.a,Su(e.c));Gkb(h.a,f.c);Gkb(h.a,Su(g.c));return h} +function jxd(a){var b;switch(a.d){case 1:{if(a.hj()){return a.o!=-2}break}case 2:{if(a.hj()){return a.o==-2}break}case 3:case 5:case 4:case 6:case 7:{return a.o>-2}default:{return false}}b=a.gj();switch(a.p){case 0:return b!=null&&Ccb(DD(b))!=Kbb(a.k,0);case 1:return b!=null&&BD(b,217).a!=Tbb(a.k)<<24>>24;case 2:return b!=null&&BD(b,172).a!=(Tbb(a.k)&aje);case 6:return b!=null&&Kbb(BD(b,162).a,a.k);case 5:return b!=null&&BD(b,19).a!=Tbb(a.k);case 7:return b!=null&&BD(b,184).a!=Tbb(a.k)<<16>>16;case 3:return b!=null&&Edb(ED(b))!=a.j;case 4:return b!=null&&BD(b,155).a!=a.j;default:return b==null?a.n!=null:!pb(b,a.n);}} +function nOd(a,b,c){var d,e,f,g;if(a.Fk()&&a.Ek()){g=oOd(a,BD(c,56));if(PD(g)!==PD(c)){a.Oi(b);a.Ui(b,pOd(a,b,g));if(a.rk()){f=(e=BD(c,49),a.Dk()?a.Bk()?e.ih(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),null):e.ih(a.b,bLd(e.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,null):e.ih(a.b,-1-a.aj(),null,null));!BD(g,49).eh()&&(f=(d=BD(g,49),a.Dk()?a.Bk()?d.gh(a.b,zUd(BD(XKd(wjd(a.b),a.aj()),18)).n,BD(XKd(wjd(a.b),a.aj()).Yj(),26).Bj(),f):d.gh(a.b,bLd(d.Tg(),zUd(BD(XKd(wjd(a.b),a.aj()),18))),null,f):d.gh(a.b,-1-a.aj(),null,f)));!!f&&f.Fi()}oid(a.b)&&a.$i(a.Zi(9,c,g,b,false));return g}}return c} +function Noc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;k=Edb(ED(vNb(a,(Nyc(),oyc))));d=Edb(ED(vNb(a,Cyc)));m=new _fd;yNb(m,oyc,k+d);j=b;r=j.d;p=j.c.i;s=j.d.i;q=G1b(p.c);t=G1b(s.c);e=new Rkb;for(l=q;l<=t;l++){h=new b0b(a);__b(h,(j0b(),g0b));yNb(h,(wtc(),$sc),j);yNb(h,Vxc,(dcd(),$bd));yNb(h,qyc,m);n=BD(Ikb(a.b,l),29);l==q?Z_b(h,n.a.c.length-c,n):$_b(h,n);u=Edb(ED(vNb(j,Zwc)));if(u<0){u=0;yNb(j,Zwc,u)}h.o.b=u;o=$wnd.Math.floor(u/2);g=new H0b;G0b(g,(Ucd(),Tcd));F0b(g,h);g.n.b=o;i=new H0b;G0b(i,zcd);F0b(i,h);i.n.b=o;RZb(j,g);f=new UZb;tNb(f,j);yNb(f,jxc,null);QZb(f,i);RZb(f,r);Ooc(h,j,f);e.c[e.c.length]=f;j=f}return e} +function sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=BD(Y_b(a,(Ucd(),Tcd)).Kc().Pb(),11).e;n=BD(Y_b(a,zcd).Kc().Pb(),11).g;h=i.c.length;t=A0b(BD(Ikb(a.j,0),11));while(h-->0){p=(tCb(0,i.c.length),BD(i.c[0],17));e=(tCb(0,n.c.length),BD(n.c[0],17));s=e.d.e;f=Jkb(s,e,0);SZb(p,e.d,f);QZb(e,null);RZb(e,null);o=p.a;b&&Dsb(o,new g7c(t));for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);Dsb(o,new g7c(c))}r=p.b;for(m=new olb(e.b);m.a<m.c.c.length;){l=BD(mlb(m),70);r.c[r.c.length]=l}q=BD(vNb(p,(Nyc(),jxc)),74);g=BD(vNb(e,jxc),74);if(g){if(!q){q=new s7c;yNb(p,jxc,q)}for(k=Jsb(g,0);k.b!=k.d.c;){j=BD(Xsb(k),8);Dsb(q,new g7c(j))}}}} +function EJb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.b=0;c.n.c=0;return}j=a.u.Hc((rcd(),ncd));g=0;h=i.Kc();k=null;l=0;m=0;while(h.Ob()){d=BD(h.Pb(),111);e=Edb(ED(d.b.We((CKb(),BKb))));f=d.b.rf().a;a.A.Hc((tdd(),sdd))&&KJb(a,b);if(!k){!!a.C&&a.C.b>0&&(g=$wnd.Math.max(g,IJb(a.C.b+d.d.b,e)))}else{n=m+k.d.c+a.w+d.d.b;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-e)<=ple||l==e||isNaN(l)&&isNaN(e)?0:n/(e-l)))}k=d;l=e;m=f}if(!!a.C&&a.C.c>0){n=m+a.C.c;j&&(n+=k.d.c);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(l-1)<=ple||l==1||isNaN(l)&&isNaN(1)?0:n/(1-l)))}c.n.b=0;c.a.a=g} +function NKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=BD(Mpb(a.b,b),124);i=BD(BD(Qc(a.r,b),21),84);if(i.dc()){c.n.d=0;c.n.a=0;return}j=a.u.Hc((rcd(),ncd));g=0;a.A.Hc((tdd(),sdd))&&SKb(a,b);h=i.Kc();k=null;m=0;l=0;while(h.Ob()){d=BD(h.Pb(),111);f=Edb(ED(d.b.We((CKb(),BKb))));e=d.b.rf().b;if(!k){!!a.C&&a.C.d>0&&(g=$wnd.Math.max(g,IJb(a.C.d+d.d.d,f)))}else{n=l+k.d.a+a.w+d.d.d;g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-f)<=ple||m==f||isNaN(m)&&isNaN(f)?0:n/(f-m)))}k=d;m=f;l=e}if(!!a.C&&a.C.a>0){n=l+a.C.a;j&&(n+=k.d.a);g=$wnd.Math.max(g,(Iy(),My(ple),$wnd.Math.abs(m-1)<=ple||m==1||isNaN(m)&&isNaN(1)?0:n/(1-m)))}c.n.d=0;c.a.b=g} +function _Ec(a,b,c){var d,e,f,g,h,i;this.g=a;h=b.d.length;i=c.d.length;this.d=KC(OQ,kne,10,h+i,0,1);for(g=0;g<h;g++){this.d[g]=b.d[g]}for(f=0;f<i;f++){this.d[h+f]=c.d[f]}if(b.e){this.e=Ru(b.e);this.e.Mc(c);if(c.e){for(e=c.e.Kc();e.Ob();){d=BD(e.Pb(),233);if(d==b){continue}else this.e.Hc(d)?--d.c:this.e.Fc(d)}}}else if(c.e){this.e=Ru(c.e);this.e.Mc(b)}this.f=b.f+c.f;this.a=b.a+c.a;this.a>0?ZEc(this,this.f/this.a):REc(b.g,b.d[0]).a!=null&&REc(c.g,c.d[0]).a!=null?ZEc(this,(Edb(REc(b.g,b.d[0]).a)+Edb(REc(c.g,c.d[0]).a))/2):REc(b.g,b.d[0]).a!=null?ZEc(this,REc(b.g,b.d[0]).a):REc(c.g,c.d[0]).a!=null&&ZEc(this,REc(c.g,c.d[0]).a)} +function BUb(a,b){var c,d,e,f,g,h,i,j,k,l;a.a=new dVb(oqb(t1));for(d=new olb(b.a);d.a<d.c.c.length;){c=BD(mlb(d),841);h=new gVb(OC(GC(IP,1),Uhe,81,0,[]));Ekb(a.a.a,h);for(j=new olb(c.d);j.a<j.c.c.length;){i=BD(mlb(j),110);k=new GUb(a,i);AUb(k,BD(vNb(c.c,(wtc(),Esc)),21));if(!Mhb(a.g,c)){Rhb(a.g,c,new f7c(i.c,i.d));Rhb(a.f,c,k)}Ekb(a.a.b,k);eVb(h,k)}for(g=new olb(c.b);g.a<g.c.c.length;){f=BD(mlb(g),594);k=new GUb(a,f.kf());Rhb(a.b,f,new vgd(h,k));AUb(k,BD(vNb(c.c,(wtc(),Esc)),21));if(f.hf()){l=new HUb(a,f.hf(),1);AUb(l,BD(vNb(c.c,Esc),21));e=new gVb(OC(GC(IP,1),Uhe,81,0,[]));eVb(e,l);Rc(a.c,f.gf(),new vgd(h,l))}}}return a.a} +function oBc(a){var b;this.a=a;b=(j0b(),OC(GC(NQ,1),Kie,267,0,[h0b,g0b,e0b,i0b,f0b,d0b])).length;this.b=IC(Q3,[nie,zqe],[593,146],0,[b,b],2);this.c=IC(Q3,[nie,zqe],[593,146],0,[b,b],2);nBc(this,h0b,(Nyc(),vyc),wyc);lBc(this,h0b,g0b,oyc,pyc);kBc(this,h0b,i0b,oyc);kBc(this,h0b,e0b,oyc);lBc(this,h0b,f0b,vyc,wyc);nBc(this,g0b,lyc,myc);kBc(this,g0b,i0b,lyc);kBc(this,g0b,e0b,lyc);lBc(this,g0b,f0b,oyc,pyc);mBc(this,i0b,lyc);kBc(this,i0b,e0b,lyc);kBc(this,i0b,f0b,syc);mBc(this,e0b,zyc);lBc(this,e0b,f0b,uyc,tyc);nBc(this,f0b,lyc,lyc);nBc(this,d0b,lyc,myc);lBc(this,d0b,h0b,oyc,pyc);lBc(this,d0b,f0b,oyc,pyc);lBc(this,d0b,g0b,oyc,pyc)} +function _2d(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;g=c.ak();if(JD(g,99)&&(BD(g,18).Bb&Tje)!=0){m=BD(c.dd(),49);p=xid(a.e,m);if(p!=m){k=R6d(g,p);mud(a,b,t3d(a,b,k));l=null;if(oid(a.e)){d=e1d((O6d(),M6d),a.e.Tg(),g);if(d!=XKd(a.e.Tg(),a.c)){q=S6d(a.e.Tg(),g);h=0;f=BD(a.g,119);for(i=0;i<b;++i){e=f[i];q.rl(e.ak())&&++h}l=new O7d(a.e,9,d,m,p,h,false);l.Ei(new pSd(a.e,9,a.c,c,k,b,false))}}o=BD(g,18);n=zUd(o);if(n){l=m.ih(a.e,bLd(m.Tg(),n),null,l);l=BD(p,49).gh(a.e,bLd(p.Tg(),n),null,l)}else if((o.Bb&ote)!=0){j=-1-bLd(a.e.Tg(),o);l=m.ih(a.e,j,null,null);!BD(p,49).eh()&&(l=BD(p,49).gh(a.e,j,null,l))}!!l&&l.Fi();return k}}return c} +function yUb(a){var b,c,d,e,f,g,h,i;for(f=new olb(a.a.b);f.a<f.c.c.length;){e=BD(mlb(f),81);e.b.c=e.g.c;e.b.d=e.g.d}i=new f7c(Pje,Pje);b=new f7c(Qje,Qje);for(d=new olb(a.a.b);d.a<d.c.c.length;){c=BD(mlb(d),81);i.a=$wnd.Math.min(i.a,c.g.c);i.b=$wnd.Math.min(i.b,c.g.d);b.a=$wnd.Math.max(b.a,c.g.c+c.g.b);b.b=$wnd.Math.max(b.b,c.g.d+c.g.a)}for(h=Uc(a.c).a.nc();h.Ob();){g=BD(h.Pb(),46);c=BD(g.b,81);i.a=$wnd.Math.min(i.a,c.g.c);i.b=$wnd.Math.min(i.b,c.g.d);b.a=$wnd.Math.max(b.a,c.g.c+c.g.b);b.b=$wnd.Math.max(b.b,c.g.d+c.g.a)}a.d=V6c(new f7c(i.a,i.b));a.e=c7c(new f7c(b.a,b.b),i);a.a.a.c=KC(SI,Uhe,1,0,5,1);a.a.b.c=KC(SI,Uhe,1,0,5,1)} +function svd(a){var b,c,d;l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new Z9c]));c=new xB(a);for(d=0;d<c.a.length;++d){b=tB(c,d).je().a;dfb(b,'layered')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new kwc])):dfb(b,'force')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new TRb])):dfb(b,'stress')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new PSb])):dfb(b,'mrtree')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new sTc])):dfb(b,'radial')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new IWc])):dfb(b,'disco')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new gFb,new oPb])):dfb(b,'sporeOverlap')||dfb(b,'sporeCompaction')?l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new B0c])):dfb(b,'rectpacking')&&l4c(lvd,OC(GC(C0,1),Uhe,130,0,[new PYc]))}} +function j_b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;m=new g7c(a.o);r=b.a/m.a;h=b.b/m.b;p=b.a-m.a;f=b.b-m.b;if(c){e=PD(vNb(a,(Nyc(),Vxc)))===PD((dcd(),$bd));for(o=new olb(a.j);o.a<o.c.c.length;){n=BD(mlb(o),11);switch(n.j.g){case 1:e||(n.n.a*=r);break;case 2:n.n.a+=p;e||(n.n.b*=h);break;case 3:e||(n.n.a*=r);n.n.b+=f;break;case 4:e||(n.n.b*=h);}}}for(j=new olb(a.b);j.a<j.c.c.length;){i=BD(mlb(j),70);k=i.n.a+i.o.a/2;l=i.n.b+i.o.b/2;q=k/m.a;g=l/m.b;if(q+g>=1){if(q-g>0&&l>=0){i.n.a+=p;i.n.b+=f*g}else if(q-g<0&&k>=0){i.n.a+=p*q;i.n.b+=f}}}a.o.a=b.a;a.o.b=b.b;yNb(a,(Nyc(),Fxc),(tdd(),d=BD(gdb(I1),9),new xqb(d,BD(_Bb(d,d.length),9),0)))} +function iFd(a,b,c,d,e,f){var g;if(!(b==null||!OEd(b,zEd,AEd))){throw vbb(new Wdb('invalid scheme: '+b))}if(!a&&!(c!=null&&hfb(c,wfb(35))==-1&&c.length>0&&(BCb(0,c.length),c.charCodeAt(0)!=47))){throw vbb(new Wdb('invalid opaquePart: '+c))}if(a&&!(b!=null&&hnb(GEd,b.toLowerCase()))&&!(c==null||!OEd(c,CEd,DEd))){throw vbb(new Wdb(mve+c))}if(a&&b!=null&&hnb(GEd,b.toLowerCase())&&!eFd(c)){throw vbb(new Wdb(mve+c))}if(!fFd(d)){throw vbb(new Wdb('invalid device: '+d))}if(!hFd(e)){g=e==null?'invalid segments: null':'invalid segment: '+VEd(e);throw vbb(new Wdb(g))}if(!(f==null||hfb(f,wfb(35))==-1)){throw vbb(new Wdb('invalid query: '+f))}} +function nVc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Calculate Graph Size',1);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));h=dme;i=dme;f=ere;g=ere;for(l=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));l.e!=l.i.gc();){j=BD(Dyd(l),33);o=j.i;p=j.j;r=j.g;d=j.f;e=BD(hkd(j,(Y9c(),S8c)),142);h=$wnd.Math.min(h,o-e.b);i=$wnd.Math.min(i,p-e.d);f=$wnd.Math.max(f,o+r+e.c);g=$wnd.Math.max(g,p+d+e.a)}n=BD(hkd(a,(Y9c(),f9c)),116);m=new f7c(h-n.b,i-n.d);for(k=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));k.e!=k.i.gc();){j=BD(Dyd(k),33);dld(j,j.i-m.a);eld(j,j.j-m.b)}q=f-h+(n.b+n.c);c=g-i+(n.d+n.a);cld(a,q);ald(a,c);b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))} +function rGb(a){var b,c,d,e,f,g,h,i,j,k;d=new Rkb;for(g=new olb(a.e.a);g.a<g.c.c.length;){e=BD(mlb(g),121);k=0;e.k.c=KC(SI,Uhe,1,0,5,1);for(c=new olb(LFb(e));c.a<c.c.c.length;){b=BD(mlb(c),213);if(b.f){Ekb(e.k,b);++k}}k==1&&(d.c[d.c.length]=e,true)}for(f=new olb(d);f.a<f.c.c.length;){e=BD(mlb(f),121);while(e.k.c.length==1){j=BD(mlb(new olb(e.k)),213);a.b[j.c]=j.g;h=j.d;i=j.e;for(c=new olb(LFb(e));c.a<c.c.c.length;){b=BD(mlb(c),213);pb(b,j)||(b.f?h==b.d||i==b.e?(a.b[j.c]-=a.b[b.c]-b.g):(a.b[j.c]+=a.b[b.c]-b.g):e==h?b.d==e?(a.b[j.c]+=b.g):(a.b[j.c]-=b.g):b.d==e?(a.b[j.c]-=b.g):(a.b[j.c]+=b.g))}Lkb(h.k,j);Lkb(i.k,j);h==e?(e=j.e):(e=j.d)}}} +function k4c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(b==null||b.length==0){return null}f=BD(Phb(a.f,b),23);if(!f){for(e=(n=(new $ib(a.d)).a.vc().Kc(),new djb(n));e.a.Ob();){c=(g=BD(e.a.Pb(),42),BD(g.dd(),23));h=c.f;o=b.length;if(dfb(h.substr(h.length-o,o),b)&&(b.length==h.length||bfb(h,h.length-b.length-1)==46)){if(f){return null}f=c}}if(!f){for(d=(m=(new $ib(a.d)).a.vc().Kc(),new djb(m));d.a.Ob();){c=(g=BD(d.a.Pb(),42),BD(g.dd(),23));l=c.g;if(l!=null){for(i=l,j=0,k=i.length;j<k;++j){h=i[j];o=b.length;if(dfb(h.substr(h.length-o,o),b)&&(b.length==h.length||bfb(h,h.length-b.length-1)==46)){if(f){return null}f=c}}}}}!!f&&Shb(a.f,b,f)}return f} +function sA(a,b){var c,d,e,f,g;c=new Vfb;g=false;for(f=0;f<b.length;f++){d=(BCb(f,b.length),b.charCodeAt(f));if(d==32){gA(a,c,0);c.a+=' ';gA(a,c,0);while(f+1<b.length&&(BCb(f+1,b.length),b.charCodeAt(f+1)==32)){++f}continue}if(g){if(d==39){if(f+1<b.length&&(BCb(f+1,b.length),b.charCodeAt(f+1)==39)){c.a+=String.fromCharCode(d);++f}else{g=false}}else{c.a+=String.fromCharCode(d)}continue}if(hfb('GyMLdkHmsSEcDahKzZv',wfb(d))>0){gA(a,c,0);c.a+=String.fromCharCode(d);e=lA(b,f);gA(a,c,e);f+=e-1;continue}if(d==39){if(f+1<b.length&&(BCb(f+1,b.length),b.charCodeAt(f+1)==39)){c.a+="'";++f}else{g=true}}else{c.a+=String.fromCharCode(d)}}gA(a,c,0);mA(a)} +function wDc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(c,'Network simplex layering',1);a.b=b;r=BD(vNb(b,(Nyc(),Ayc)),19).a*4;q=a.b.a;if(q.c.length<1){Qdd(c);return}f=sDc(a,q);p=null;for(e=Jsb(f,0);e.b!=e.d.c;){d=BD(Xsb(e),15);h=r*QD($wnd.Math.sqrt(d.gc()));g=vDc(d);uGb(HGb(JGb(IGb(LGb(g),h),p),true),Udd(c,1));m=a.b.b;for(o=new olb(g.a);o.a<o.c.c.length;){n=BD(mlb(o),121);while(m.c.length<=n.e){Dkb(m,m.c.length,new H1b(a.b))}k=BD(n.f,10);$_b(k,BD(Ikb(m,n.e),29))}if(f.b>1){p=KC(WD,oje,25,a.b.b.c.length,15,1);l=0;for(j=new olb(a.b.b);j.a<j.c.c.length;){i=BD(mlb(j),29);p[l++]=i.a.c.length}}}q.c=KC(SI,Uhe,1,0,5,1);a.a=null;a.b=null;a.c=null;Qdd(c)} +function OUb(a){var b,c,d,e,f,g,h;b=0;for(f=new olb(a.b.a);f.a<f.c.c.length;){d=BD(mlb(f),189);d.b=0;d.c=0}NUb(a,0);MUb(a,a.g);sVb(a.c);wVb(a.c);c=(ead(),aad);uVb(oVb(tVb(uVb(oVb(tVb(uVb(tVb(a.c,c)),had(c)))),c)));tVb(a.c,aad);RUb(a,a.g);SUb(a,0);TUb(a,0);UUb(a,1);NUb(a,1);MUb(a,a.d);sVb(a.c);for(g=new olb(a.b.a);g.a<g.c.c.length;){d=BD(mlb(g),189);b+=$wnd.Math.abs(d.c)}for(h=new olb(a.b.a);h.a<h.c.c.length;){d=BD(mlb(h),189);d.b=0;d.c=0}c=dad;uVb(oVb(tVb(uVb(oVb(tVb(uVb(wVb(tVb(a.c,c))),had(c)))),c)));tVb(a.c,aad);RUb(a,a.d);SUb(a,1);TUb(a,1);UUb(a,0);wVb(a.c);for(e=new olb(a.b.a);e.a<e.c.c.length;){d=BD(mlb(e),189);b+=$wnd.Math.abs(d.c)}return b} +function Wfe(a,b){var c,d,e,f,g,h,i,j,k;j=b;if(j.b==null||a.b==null)return;Yfe(a);Vfe(a);Yfe(j);Vfe(j);c=KC(WD,oje,25,a.b.length+j.b.length,15,1);k=0;d=0;g=0;while(d<a.b.length&&g<j.b.length){e=a.b[d];f=a.b[d+1];h=j.b[g];i=j.b[g+1];if(f<h){d+=2}else if(f>=h&&e<=i){if(h<=e&&f<=i){c[k++]=e;c[k++]=f;d+=2}else if(h<=e){c[k++]=e;c[k++]=i;a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=h;c[k++]=f;d+=2}else{c[k++]=h;c[k++]=i;a.b[d]=i+1}}else if(i<e){g+=2}else{throw vbb(new hz('Token#intersectRanges(): Internal Error: ['+a.b[d]+','+a.b[d+1]+'] & ['+j.b[g]+','+j.b[g+1]+']'))}}while(d<a.b.length){c[k++]=a.b[d++];c[k++]=a.b[d++]}a.b=KC(WD,oje,25,k,15,1);$fb(c,0,a.b,0,k)} +function PUb(a){var b,c,d,e,f,g,h;b=new Rkb;a.g=new Rkb;a.d=new Rkb;for(g=new nib((new eib(a.f.b)).a);g.b;){f=lib(g);Ekb(b,BD(BD(f.dd(),46).b,81));fad(BD(f.cd(),594).gf())?Ekb(a.d,BD(f.dd(),46)):Ekb(a.g,BD(f.dd(),46))}MUb(a,a.d);MUb(a,a.g);a.c=new CVb(a.b);AVb(a.c,(xUb(),wUb));RUb(a,a.d);RUb(a,a.g);Gkb(b,a.c.a.b);a.e=new f7c(Pje,Pje);a.a=new f7c(Qje,Qje);for(d=new olb(b);d.a<d.c.c.length;){c=BD(mlb(d),81);a.e.a=$wnd.Math.min(a.e.a,c.g.c);a.e.b=$wnd.Math.min(a.e.b,c.g.d);a.a.a=$wnd.Math.max(a.a.a,c.g.c+c.g.b);a.a.b=$wnd.Math.max(a.a.b,c.g.d+c.g.a)}zVb(a.c,new YUb);h=0;do{e=OUb(a);++h}while((h<2||e>Qie)&&h<10);zVb(a.c,new _Ub);OUb(a);vVb(a.c);yUb(a.f)} +function sZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(!Ccb(DD(vNb(c,(Nyc(),fxc))))){return}for(h=new olb(c.j);h.a<h.c.c.length;){g=BD(mlb(h),11);m=k_b(g.g);for(j=m,k=0,l=j.length;k<l;++k){i=j[k];f=i.d.i==c;e=f&&Ccb(DD(vNb(i,gxc)));if(e){o=i.c;n=BD(Ohb(a.b,o),10);if(!n){n=Z$b(o,(dcd(),bcd),o.j,-1,null,null,o.o,BD(vNb(b,Lwc),103),b);yNb(n,(wtc(),$sc),o);Rhb(a.b,o,n);Ekb(b.a,n)}q=i.d;p=BD(Ohb(a.b,q),10);if(!p){p=Z$b(q,(dcd(),bcd),q.j,1,null,null,q.o,BD(vNb(b,Lwc),103),b);yNb(p,(wtc(),$sc),q);Rhb(a.b,q,p);Ekb(b.a,p)}d=kZb(i);QZb(d,BD(Ikb(n.j,0),11));RZb(d,BD(Ikb(p.j,0),11));Rc(a.a,i,new BZb(d,b,(KAc(),IAc)));BD(vNb(b,(wtc(),Ksc)),21).Fc((Orc(),Hrc))}}}} +function W9b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;Odd(c,'Label dummy switching',1);d=BD(vNb(b,(Nyc(),Owc)),227);J9b(b);e=T9b(b,d);a.a=KC(UD,Vje,25,b.b.c.length,15,1);for(h=(Apc(),OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc])),k=0,n=h.length;k<n;++k){f=h[k];if((f==zpc||f==upc||f==xpc)&&!BD(uqb(e.a,f)?e.b[f.g]:null,15).dc()){M9b(a,b);break}}for(i=OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc]),l=0,o=i.length;l<o;++l){f=i[l];f==zpc||f==upc||f==xpc||X9b(a,BD(uqb(e.a,f)?e.b[f.g]:null,15))}for(g=OC(GC(EW,1),Kie,227,0,[wpc,ypc,vpc,xpc,zpc,upc]),j=0,m=g.length;j<m;++j){f=g[j];(f==zpc||f==upc||f==xpc)&&X9b(a,BD(uqb(e.a,f)?e.b[f.g]:null,15))}a.a=null;Qdd(c)} +function AFc(a,b){var c,d,e,f,g,h,i,j,k,l,m;switch(a.k.g){case 1:d=BD(vNb(a,(wtc(),$sc)),17);c=BD(vNb(d,_sc),74);!c?(c=new s7c):Ccb(DD(vNb(d,ltc)))&&(c=w7c(c));j=BD(vNb(a,Vsc),11);if(j){k=l7c(OC(GC(m1,1),nie,8,0,[j.i.n,j.n,j.a]));if(b<=k.a){return k.b}Gsb(c,k,c.a,c.a.a)}l=BD(vNb(a,Wsc),11);if(l){m=l7c(OC(GC(m1,1),nie,8,0,[l.i.n,l.n,l.a]));if(m.a<=b){return m.b}Gsb(c,m,c.c.b,c.c)}if(c.b>=2){i=Jsb(c,0);g=BD(Xsb(i),8);h=BD(Xsb(i),8);while(h.a<b&&i.b!=i.d.c){g=h;h=BD(Xsb(i),8)}return g.b+(b-g.a)/(h.a-g.a)*(h.b-g.b)}break;case 3:f=BD(vNb(BD(Ikb(a.j,0),11),(wtc(),$sc)),11);e=f.i;switch(f.j.g){case 1:return e.n.b;case 3:return e.n.b+e.o.b;}}return T_b(a).b} +function Wgc(a){var b,c,d,e,f,g,h,i,j,k,l;for(g=new olb(a.d.b);g.a<g.c.c.length;){f=BD(mlb(g),29);for(i=new olb(f.a);i.a<i.c.c.length;){h=BD(mlb(i),10);if(Ccb(DD(vNb(h,(Nyc(),pwc))))){if(!Qq(O_b(h))){d=BD(Oq(O_b(h)),17);k=d.c.i;k==h&&(k=d.d.i);l=new vgd(k,c7c(R6c(h.n),k.n));Rhb(a.b,h,l);continue}}e=new J6c(h.n.a-h.d.b,h.n.b-h.d.d,h.o.a+h.d.b+h.d.c,h.o.b+h.d.d+h.d.a);b=vDb(yDb(wDb(xDb(new zDb,h),e),Fgc),a.a);pDb(qDb(rDb(new sDb,OC(GC(PM,1),Uhe,57,0,[b])),b),a.a);j=new lEb;Rhb(a.e,b,j);c=sr(new Sr(ur(R_b(h).a.Kc(),new Sq)))-sr(new Sr(ur(U_b(h).a.Kc(),new Sq)));c<0?jEb(j,true,(ead(),aad)):c>0&&jEb(j,true,(ead(),bad));h.k==(j0b(),e0b)&&kEb(j);Rhb(a.f,h,b)}}} +function Bbc(a,b,c){var d,e,f,g,h,i,j,k,l,m;Odd(c,'Node promotion heuristic',1);a.g=b;Abc(a);a.q=BD(vNb(b,(Nyc(),rxc)),260);k=BD(vNb(a.g,qxc),19).a;f=new Jbc;switch(a.q.g){case 2:case 1:Dbc(a,f);break;case 3:a.q=(kAc(),jAc);Dbc(a,f);i=0;for(h=new olb(a.a);h.a<h.c.c.length;){g=BD(mlb(h),19);i=$wnd.Math.max(i,g.a)}if(i>a.j){a.q=dAc;Dbc(a,f)}break;case 4:a.q=(kAc(),jAc);Dbc(a,f);j=0;for(e=new olb(a.b);e.a<e.c.c.length;){d=ED(mlb(e));j=$wnd.Math.max(j,(uCb(d),d))}if(j>a.k){a.q=gAc;Dbc(a,f)}break;case 6:m=QD($wnd.Math.ceil(a.f.length*k/100));Dbc(a,new Mbc(m));break;case 5:l=QD($wnd.Math.ceil(a.d*k/100));Dbc(a,new Pbc(l));break;default:Dbc(a,f);}Ebc(a,b);Qdd(c)} +function fFc(a,b,c){var d,e,f,g;this.j=a;this.e=WZb(a);this.o=this.j.e;this.i=!!this.o;this.p=this.i?BD(Ikb(c,Q_b(this.o).p),214):null;e=BD(vNb(a,(wtc(),Ksc)),21);this.g=e.Hc((Orc(),Hrc));this.b=new Rkb;this.d=new rHc(this.e);g=BD(vNb(this.j,jtc),230);this.q=wFc(b,g,this.e);this.k=new BGc(this);f=Ou(OC(GC(qY,1),Uhe,225,0,[this,this.d,this.k,this.q]));if(b==(rGc(),oGc)&&!Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new uEc(d,g,BD(this.q,402))}else if(b==oGc&&Ccb(DD(vNb(a,(Nyc(),Awc))))){d=new SEc(this.e);f.c[f.c.length]=d;this.c=new XGc(d,g,BD(this.q,402))}else{this.c=new Oic(b,this)}Ekb(f,this.c);$Ic(f,this.e);this.s=AGc(this.k)} +function xUc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;l=BD(pr((g=Jsb((new ZRc(b)).a.d,0),new aSc(g))),86);o=l?BD(vNb(l,(mTc(),_Sc)),86):null;e=1;while(!!l&&!!o){i=0;u=0;c=l;d=o;for(h=0;h<e;h++){c=VRc(c);d=VRc(d);u+=Edb(ED(vNb(c,(mTc(),cTc))));i+=Edb(ED(vNb(d,cTc)))}t=Edb(ED(vNb(o,(mTc(),fTc))));s=Edb(ED(vNb(l,fTc)));m=zUc(l,o);n=t+i+a.a+m-s-u;if(0<n){j=b;k=0;while(!!j&&j!=d){++k;j=BD(vNb(j,aTc),86)}if(j){r=n/k;j=b;while(j!=d){q=Edb(ED(vNb(j,fTc)))+n;yNb(j,fTc,q);p=Edb(ED(vNb(j,cTc)))+n;yNb(j,cTc,p);n-=r;j=BD(vNb(j,aTc),86)}}else{return}}++e;l.d.b==0?(l=JRc(new ZRc(b),e)):(l=BD(pr((f=Jsb((new ZRc(l)).a.d,0),new aSc(f))),86));o=l?BD(vNb(l,_Sc),86):null}} +function Cbc(a,b){var c,d,e,f,g,h,i,j,k,l;i=true;e=0;j=a.f[b.p];k=b.o.b+a.n;c=a.c[b.p][2];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a-1+c));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))-k+c*a.e);++j;if(j>=a.i){++a.i;Ekb(a.a,meb(1));Ekb(a.b,k)}else{d=a.c[b.p][1];Nkb(a.a,j,meb(BD(Ikb(a.a,j),19).a+1-d));Nkb(a.b,j,Edb(ED(Ikb(a.b,j)))+k-d*a.e)}(a.q==(kAc(),dAc)&&(BD(Ikb(a.a,j),19).a>a.j||BD(Ikb(a.a,j-1),19).a>a.j)||a.q==gAc&&(Edb(ED(Ikb(a.b,j)))>a.k||Edb(ED(Ikb(a.b,j-1)))>a.k))&&(i=false);for(g=new Sr(ur(R_b(b).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);h=f.c.i;if(a.f[h.p]==j){l=Cbc(a,h);e=e+BD(l.a,19).a;i=i&&Ccb(DD(l.b))}}a.f[b.p]=j;e=e+a.c[b.p][0];return new vgd(meb(e),(Bcb(),i?true:false))} +function sPc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;l=new Lqb;g=new Rkb;qPc(a,c,a.d.fg(),g,l);qPc(a,d,a.d.gg(),g,l);a.b=0.2*(p=rPc(LAb(new YAb(null,new Kub(g,16)),new xPc)),q=rPc(LAb(new YAb(null,new Kub(g,16)),new zPc)),$wnd.Math.min(p,q));f=0;for(h=0;h<g.c.length-1;h++){i=(tCb(h,g.c.length),BD(g.c[h],112));for(o=h+1;o<g.c.length;o++){f+=pPc(a,i,(tCb(o,g.c.length),BD(g.c[o],112)))}}m=BD(vNb(b,(wtc(),jtc)),230);f>=2&&(r=WNc(g,true,m),!a.e&&(a.e=new ZOc(a)),VOc(a.e,r,g,a.b),undefined);uPc(g,m);wPc(g);n=-1;for(k=new olb(g);k.a<k.c.c.length;){j=BD(mlb(k),112);if($wnd.Math.abs(j.s-j.c)<qme){continue}n=$wnd.Math.max(n,j.o);a.d.dg(j,e,a.c)}a.d.a.a.$b();return n+1} +function aUb(a,b){var c,d,e,f,g;c=Edb(ED(vNb(b,(Nyc(),lyc))));c<2&&yNb(b,lyc,2);d=BD(vNb(b,Lwc),103);d==(ead(),cad)&&yNb(b,Lwc,a_b(b));e=BD(vNb(b,fyc),19);e.a==0?yNb(b,(wtc(),jtc),new Gub):yNb(b,(wtc(),jtc),new Hub(e.a));f=DD(vNb(b,Axc));f==null&&yNb(b,Axc,(Bcb(),PD(vNb(b,Swc))===PD((Aad(),wad))?true:false));MAb(new YAb(null,new Kub(b.a,16)),new dUb(a));MAb(LAb(new YAb(null,new Kub(b.b,16)),new fUb),new hUb(a));g=new oBc(b);yNb(b,(wtc(),otc),g);H2c(a.a);K2c(a.a,(qUb(),lUb),BD(vNb(b,Jwc),246));K2c(a.a,mUb,BD(vNb(b,sxc),246));K2c(a.a,nUb,BD(vNb(b,Iwc),246));K2c(a.a,oUb,BD(vNb(b,Exc),246));K2c(a.a,pUb,kNc(BD(vNb(b,Swc),218)));E2c(a.a,_Tb(b));yNb(b,itc,F2c(a.a,b))} +function fjc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(m=a.c[b],n=a.c[c],(o=BD(vNb(m,(wtc(),Qsc)),15),!!o&&o.gc()!=0&&o.Hc(n))||(p=m.k!=(j0b(),g0b)&&n.k!=g0b,q=BD(vNb(m,Psc),10),r=BD(vNb(n,Psc),10),s=q!=r,t=!!q&&q!=m||!!r&&r!=n,u=gjc(m,(Ucd(),Acd)),v=gjc(n,Rcd),t=t|(gjc(m,Rcd)||gjc(n,Acd)),w=t&&s||u||v,p&&w)||m.k==(j0b(),i0b)&&n.k==h0b||n.k==(j0b(),i0b)&&m.k==h0b){return false}k=a.c[b];f=a.c[c];e=LHc(a.e,k,f,(Ucd(),Tcd));i=LHc(a.i,k,f,zcd);Yic(a.f,k,f);j=Hic(a.b,k,f)+BD(e.a,19).a+BD(i.a,19).a+a.f.d;h=Hic(a.b,f,k)+BD(e.b,19).a+BD(i.b,19).a+a.f.b;if(a.a){l=BD(vNb(k,$sc),11);g=BD(vNb(f,$sc),11);d=JHc(a.g,l,g);j+=BD(d.a,19).a;h+=BD(d.b,19).a}return j>h} +function k6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=BD(vNb(a,(Nyc(),Vxc)),98);g=a.f;f=a.d;h=g.a+f.b+f.c;i=0-f.d-a.c.b;k=g.b+f.d+f.a-a.c.b;j=new Rkb;l=new Rkb;for(e=new olb(b);e.a<e.c.c.length;){d=BD(mlb(e),10);switch(c.g){case 1:case 2:case 3:a6b(d);break;case 4:m=BD(vNb(d,Txc),8);n=!m?0:m.a;d.n.a=h*Edb(ED(vNb(d,(wtc(),htc))))-n;M_b(d,true,false);break;case 5:o=BD(vNb(d,Txc),8);p=!o?0:o.a;d.n.a=Edb(ED(vNb(d,(wtc(),htc))))-p;M_b(d,true,false);g.a=$wnd.Math.max(g.a,d.n.a+d.o.a/2);}switch(BD(vNb(d,(wtc(),Hsc)),61).g){case 1:d.n.b=i;j.c[j.c.length]=d;break;case 3:d.n.b=k;l.c[l.c.length]=d;}}switch(c.g){case 1:case 2:c6b(j,a);c6b(l,a);break;case 3:i6b(j,a);i6b(l,a);}} +function VHc(a,b){var c,d,e,f,g,h,i,j,k,l;k=new Rkb;l=new jkb;f=null;e=0;for(d=0;d<b.length;++d){c=b[d];XHc(f,c)&&(e=QHc(a,l,k,EHc,e));wNb(c,(wtc(),Psc))&&(f=BD(vNb(c,Psc),10));switch(c.k.g){case 0:for(i=Vq(Nq(V_b(c,(Ucd(),Acd)),new GIc));xc(i);){g=BD(yc(i),11);a.d[g.p]=e++;k.c[k.c.length]=g}e=QHc(a,l,k,EHc,e);for(j=Vq(Nq(V_b(c,Rcd),new GIc));xc(j);){g=BD(yc(j),11);a.d[g.p]=e++;k.c[k.c.length]=g}break;case 3:if(!V_b(c,DHc).dc()){g=BD(V_b(c,DHc).Xb(0),11);a.d[g.p]=e++;k.c[k.c.length]=g}V_b(c,EHc).dc()||Wjb(l,c);break;case 1:for(h=V_b(c,(Ucd(),Tcd)).Kc();h.Ob();){g=BD(h.Pb(),11);a.d[g.p]=e++;k.c[k.c.length]=g}V_b(c,zcd).Jc(new EIc(l,c));}}QHc(a,l,k,EHc,e);return k} +function y$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;j=Pje;k=Pje;h=Qje;i=Qje;for(m=new olb(b.i);m.a<m.c.c.length;){l=BD(mlb(m),65);e=BD(BD(Ohb(a.g,l.a),46).b,33);bld(e,l.b.c,l.b.d);j=$wnd.Math.min(j,e.i);k=$wnd.Math.min(k,e.j);h=$wnd.Math.max(h,e.i+e.g);i=$wnd.Math.max(i,e.j+e.f)}n=BD(hkd(a.c,(d0c(),W_c)),116);Afd(a.c,h-j+(n.b+n.c),i-k+(n.d+n.a),true,true);Efd(a.c,-j+n.b,-k+n.d);for(d=new Fyd(Wod(a.c));d.e!=d.i.gc();){c=BD(Dyd(d),79);g=itd(c,true,true);o=jtd(c);q=ltd(c);p=new f7c(o.i+o.g/2,o.j+o.f/2);f=new f7c(q.i+q.g/2,q.j+q.f/2);r=c7c(new f7c(f.a,f.b),p);l6c(r,o.g,o.f);P6c(p,r);s=c7c(new f7c(p.a,p.b),f);l6c(s,q.g,q.f);P6c(f,s);nmd(g,p.a,p.b);gmd(g,f.a,f.b)}} +function EYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;a.c=a.d;o=DD(vNb(b,(Nyc(),gyc)));n=o==null||(uCb(o),o);f=BD(vNb(b,(wtc(),Ksc)),21).Hc((Orc(),Hrc));e=BD(vNb(b,Vxc),98);c=!(e==(dcd(),Zbd)||e==_bd||e==$bd);if(n&&(c||!f)){for(l=new olb(b.a);l.a<l.c.c.length;){j=BD(mlb(l),10);j.p=0}m=new Rkb;for(k=new olb(b.a);k.a<k.c.c.length;){j=BD(mlb(k),10);d=DYb(a,j,null);if(d){i=new XZb;tNb(i,b);yNb(i,Esc,BD(d.b,21));u_b(i.d,b.d);yNb(i,Hxc,null);for(h=BD(d.a,15).Kc();h.Ob();){g=BD(h.Pb(),10);Ekb(i.a,g);g.a=i}m.Fc(i)}}f&&(PD(vNb(b,twc))===PD((RXb(),OXb))?(a.c=a.b):(a.c=a.a))}else{m=new amb(OC(GC(KQ,1),cne,37,0,[b]))}PD(vNb(b,twc))!==PD((RXb(),QXb))&&(mmb(),m.ad(new HYb));return m} +function KTc(a){r4c(a,new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c,are),'ELK Mr. Tree'),"Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."),new NTc),bre),pqb((Csd(),wsd)))));p4c(a,are,ame,CTc);p4c(a,are,wme,20);p4c(a,are,_le,tme);p4c(a,are,vme,meb(1));p4c(a,are,zme,(Bcb(),true));p4c(a,are,Zpe,Ksd(vTc));p4c(a,are,Fme,Ksd(xTc));p4c(a,are,Tme,Ksd(yTc));p4c(a,are,Eme,Ksd(zTc));p4c(a,are,Gme,Ksd(wTc));p4c(a,are,Dme,Ksd(ATc));p4c(a,are,Hme,Ksd(DTc));p4c(a,are,Zqe,Ksd(ITc));p4c(a,are,$qe,Ksd(FTc))} +function zod(a){if(a.q)return;a.q=true;a.p=Lnd(a,0);a.a=Lnd(a,1);Qnd(a.a,0);a.f=Lnd(a,2);Qnd(a.f,1);Knd(a.f,2);a.n=Lnd(a,3);Knd(a.n,3);Knd(a.n,4);Knd(a.n,5);Knd(a.n,6);a.g=Lnd(a,4);Qnd(a.g,7);Knd(a.g,8);a.c=Lnd(a,5);Qnd(a.c,7);Qnd(a.c,8);a.i=Lnd(a,6);Qnd(a.i,9);Qnd(a.i,10);Qnd(a.i,11);Qnd(a.i,12);Knd(a.i,13);a.j=Lnd(a,7);Qnd(a.j,9);a.d=Lnd(a,8);Qnd(a.d,3);Qnd(a.d,4);Qnd(a.d,5);Qnd(a.d,6);Knd(a.d,7);Knd(a.d,8);Knd(a.d,9);Knd(a.d,10);a.b=Lnd(a,9);Knd(a.b,0);Knd(a.b,1);a.e=Lnd(a,10);Knd(a.e,1);Knd(a.e,2);Knd(a.e,3);Knd(a.e,4);Qnd(a.e,5);Qnd(a.e,6);Qnd(a.e,7);Qnd(a.e,8);Qnd(a.e,9);Qnd(a.e,10);Knd(a.e,11);a.k=Lnd(a,11);Knd(a.k,0);Knd(a.k,1);a.o=Mnd(a,12);a.s=Mnd(a,13)} +function AUb(a,b){b.dc()&&HVb(a.j,true,true,true,true);pb(b,(Ucd(),Gcd))&&HVb(a.j,true,true,true,false);pb(b,Bcd)&&HVb(a.j,false,true,true,true);pb(b,Ocd)&&HVb(a.j,true,true,false,true);pb(b,Qcd)&&HVb(a.j,true,false,true,true);pb(b,Hcd)&&HVb(a.j,false,true,true,false);pb(b,Ccd)&&HVb(a.j,false,true,false,true);pb(b,Pcd)&&HVb(a.j,true,false,false,true);pb(b,Ncd)&&HVb(a.j,true,false,true,false);pb(b,Lcd)&&HVb(a.j,true,true,true,true);pb(b,Ecd)&&HVb(a.j,true,true,true,true);pb(b,Lcd)&&HVb(a.j,true,true,true,true);pb(b,Dcd)&&HVb(a.j,true,true,true,true);pb(b,Mcd)&&HVb(a.j,true,true,true,true);pb(b,Kcd)&&HVb(a.j,true,true,true,true);pb(b,Jcd)&&HVb(a.j,true,true,true,true)} +function rZb(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q;f=new Rkb;for(j=new olb(d);j.a<j.c.c.length;){h=BD(mlb(j),441);g=null;if(h.f==(KAc(),IAc)){for(o=new olb(h.e);o.a<o.c.c.length;){n=BD(mlb(o),17);q=n.d.i;if(Q_b(q)==b){iZb(a,b,h,n,h.b,n.d)}else if(!c||f_b(q,c)){jZb(a,b,h,d,n)}else{m=oZb(a,b,c,n,h.b,IAc,g);m!=g&&(f.c[f.c.length]=m,true);m.c&&(g=m)}}}else{for(l=new olb(h.e);l.a<l.c.c.length;){k=BD(mlb(l),17);p=k.c.i;if(Q_b(p)==b){iZb(a,b,h,k,k.c,h.b)}else if(!c||f_b(p,c)){continue}else{m=oZb(a,b,c,k,h.b,HAc,g);m!=g&&(f.c[f.c.length]=m,true);m.c&&(g=m)}}}}for(i=new olb(f);i.a<i.c.c.length;){h=BD(mlb(i),441);Jkb(b.a,h.a,0)!=-1||Ekb(b.a,h.a);h.c&&(e.c[e.c.length]=h,true)}} +function SJc(a,b,c){var d,e,f,g,h,i,j,k,l,m;j=new Rkb;for(i=new olb(b.a);i.a<i.c.c.length;){g=BD(mlb(i),10);for(m=V_b(g,(Ucd(),zcd)).Kc();m.Ob();){l=BD(m.Pb(),11);for(e=new olb(l.g);e.a<e.c.c.length;){d=BD(mlb(e),17);if(!OZb(d)&&d.c.i.c==d.d.i.c||OZb(d)||d.d.i.c!=c){continue}j.c[j.c.length]=d}}}for(h=Su(c.a).Kc();h.Ob();){g=BD(h.Pb(),10);for(m=V_b(g,(Ucd(),Tcd)).Kc();m.Ob();){l=BD(m.Pb(),11);for(e=new olb(l.e);e.a<e.c.c.length;){d=BD(mlb(e),17);if(!OZb(d)&&d.c.i.c==d.d.i.c||OZb(d)||d.c.i.c!=b){continue}k=new Bib(j,j.c.length);f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17));while(f!=d&&k.b>0){a.a[f.p]=true;a.a[d.p]=true;f=(sCb(k.b>0),BD(k.a.Xb(k.c=--k.b),17))}k.b>0&&uib(k)}}}} +function Vmd(b,c,d){var e,f,g,h,i,j,k,l,m;if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}e=o1d((O6d(),M6d),c).$k();if(e){return e.Aj().Nh().Ih(e,d)}h=o1d(M6d,c).al();if(h){if(d==null){return null}i=BD(d,15);if(i.dc()){return ''}m=new Hfb;for(g=i.Kc();g.Ob();){f=g.Pb();Efb(m,h.Aj().Nh().Ih(h,f));m.a+=' '}return lcb(m,m.a.length-1)}l=o1d(M6d,c).bl();if(!l.dc()){for(k=l.Kc();k.Ob();){j=BD(k.Pb(),148);if(j.wj(d)){try{m=j.Aj().Nh().Ih(j,d);if(m!=null){return m}}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}}}throw vbb(new Wdb("Invalid value: '"+d+"' for datatype :"+c.ne()))}BD(c,834).Fj();return d==null?null:JD(d,172)?''+BD(d,172).a:rb(d)==$J?CQd(Pmd[0],BD(d,199)):fcb(d)} +function zQc(a){var b,c,d,e,f,g,h,i,j,k;j=new Psb;h=new Psb;for(f=new olb(a);f.a<f.c.c.length;){d=BD(mlb(f),128);d.v=0;d.n=d.i.c.length;d.u=d.t.c.length;d.n==0&&(Gsb(j,d,j.c.b,j.c),true);d.u==0&&d.r.a.gc()==0&&(Gsb(h,d,h.c.b,h.c),true)}g=-1;while(j.b!=0){d=BD(Vt(j,0),128);for(c=new olb(d.t);c.a<c.c.c.length;){b=BD(mlb(c),268);k=b.b;k.v=$wnd.Math.max(k.v,d.v+1);g=$wnd.Math.max(g,k.v);--k.n;k.n==0&&(Gsb(j,k,j.c.b,j.c),true)}}if(g>-1){for(e=Jsb(h,0);e.b!=e.d.c;){d=BD(Xsb(e),128);d.v=g}while(h.b!=0){d=BD(Vt(h,0),128);for(c=new olb(d.i);c.a<c.c.c.length;){b=BD(mlb(c),268);i=b.a;if(i.r.a.gc()!=0){continue}i.v=$wnd.Math.min(i.v,d.v-1);--i.u;i.u==0&&(Gsb(h,i,h.c.b,h.c),true)}}}} +function A6c(a,b,c,d,e){var f,g,h,i;i=Pje;g=false;h=v6c(a,c7c(new f7c(b.a,b.b),a),P6c(new f7c(c.a,c.b),e),c7c(new f7c(d.a,d.b),c));f=!!h&&!($wnd.Math.abs(h.a-a.a)<=nse&&$wnd.Math.abs(h.b-a.b)<=nse||$wnd.Math.abs(h.a-b.a)<=nse&&$wnd.Math.abs(h.b-b.b)<=nse);h=v6c(a,c7c(new f7c(b.a,b.b),a),c,e);!!h&&(($wnd.Math.abs(h.a-a.a)<=nse&&$wnd.Math.abs(h.b-a.b)<=nse)==($wnd.Math.abs(h.a-b.a)<=nse&&$wnd.Math.abs(h.b-b.b)<=nse)||f?(i=$wnd.Math.min(i,U6c(c7c(h,c)))):(g=true));h=v6c(a,c7c(new f7c(b.a,b.b),a),d,e);!!h&&(g||($wnd.Math.abs(h.a-a.a)<=nse&&$wnd.Math.abs(h.b-a.b)<=nse)==($wnd.Math.abs(h.a-b.a)<=nse&&$wnd.Math.abs(h.b-b.b)<=nse)||f)&&(i=$wnd.Math.min(i,U6c(c7c(h,d))));return i} +function cTb(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,Rme),Sme),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new fTb),ume)));p4c(a,Rme,Ame,Ksd(VSb));p4c(a,Rme,Cme,(Bcb(),true));p4c(a,Rme,Fme,Ksd(YSb));p4c(a,Rme,Tme,Ksd(ZSb));p4c(a,Rme,Eme,Ksd($Sb));p4c(a,Rme,Gme,Ksd(XSb));p4c(a,Rme,Dme,Ksd(_Sb));p4c(a,Rme,Hme,Ksd(aTb));p4c(a,Rme,Mme,Ksd(USb));p4c(a,Rme,Ome,Ksd(SSb));p4c(a,Rme,Pme,Ksd(TSb));p4c(a,Rme,Qme,Ksd(WSb));p4c(a,Rme,Nme,Ksd(RSb))} +function BFc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Interactive crossing minimization',1);g=0;for(f=new olb(a.b);f.a<f.c.c.length;){d=BD(mlb(f),29);d.p=g++}m=WZb(a);q=new iHc(m.length);$Ic(new amb(OC(GC(qY,1),Uhe,225,0,[q])),m);p=0;g=0;for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);c=0;l=0;for(k=new olb(d.a);k.a<k.c.c.length;){i=BD(mlb(k),10);if(i.n.a>0){c+=i.n.a+i.o.a/2;++l}for(o=new olb(i.j);o.a<o.c.c.length;){n=BD(mlb(o),11);n.p=p++}}l>0&&(c/=l);r=KC(UD,Vje,25,d.a.c.length,15,1);h=0;for(j=new olb(d.a);j.a<j.c.c.length;){i=BD(mlb(j),10);i.p=h++;r[i.p]=AFc(i,c);i.k==(j0b(),g0b)&&yNb(i,(wtc(),atc),r[i.p])}mmb();Okb(d.a,new GFc(r));YDc(q,m,g,true);++g}Qdd(b)} +function Zfe(a,b){var c,d,e,f,g,h,i,j,k;if(b.e==5){Wfe(a,b);return}j=b;if(j.b==null||a.b==null)return;Yfe(a);Vfe(a);Yfe(j);Vfe(j);c=KC(WD,oje,25,a.b.length+j.b.length,15,1);k=0;d=0;g=0;while(d<a.b.length&&g<j.b.length){e=a.b[d];f=a.b[d+1];h=j.b[g];i=j.b[g+1];if(f<h){c[k++]=a.b[d++];c[k++]=a.b[d++]}else if(f>=h&&e<=i){if(h<=e&&f<=i){d+=2}else if(h<=e){a.b[d]=i+1;g+=2}else if(f<=i){c[k++]=e;c[k++]=h-1;d+=2}else{c[k++]=e;c[k++]=h-1;a.b[d]=i+1;g+=2}}else if(i<e){g+=2}else{throw vbb(new hz('Token#subtractRanges(): Internal Error: ['+a.b[d]+','+a.b[d+1]+'] - ['+j.b[g]+','+j.b[g+1]+']'))}}while(d<a.b.length){c[k++]=a.b[d++];c[k++]=a.b[d++]}a.b=KC(WD,oje,25,k,15,1);$fb(c,0,a.b,0,k)} +function BJb(a){var b,c,d,e,f,g,h;if(a.A.dc()){return}if(a.A.Hc((tdd(),rdd))){BD(Mpb(a.b,(Ucd(),Acd)),124).k=true;BD(Mpb(a.b,Rcd),124).k=true;b=a.q!=(dcd(),_bd)&&a.q!=$bd;ZGb(BD(Mpb(a.b,zcd),124),b);ZGb(BD(Mpb(a.b,Tcd),124),b);ZGb(a.g,b);if(a.A.Hc(sdd)){BD(Mpb(a.b,Acd),124).j=true;BD(Mpb(a.b,Rcd),124).j=true;BD(Mpb(a.b,zcd),124).k=true;BD(Mpb(a.b,Tcd),124).k=true;a.g.k=true}}if(a.A.Hc(qdd)){a.a.j=true;a.a.k=true;a.g.j=true;a.g.k=true;h=a.B.Hc((Idd(),Edd));for(e=wJb(),f=0,g=e.length;f<g;++f){d=e[f];c=BD(Mpb(a.i,d),306);if(c){if(sJb(d)){c.j=true;c.k=true}else{c.j=!h;c.k=!h}}}}if(a.A.Hc(pdd)&&a.B.Hc((Idd(),Ddd))){a.g.j=true;a.g.j=true;if(!a.a.j){a.a.j=true;a.a.k=true;a.a.e=true}}} +function GJc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;for(d=new olb(a.e.b);d.a<d.c.c.length;){c=BD(mlb(d),29);for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);n=a.i[e.p];j=n.a.e;i=n.d.e;e.n.b=j;r=i-j-e.o.b;b=bKc(e);m=(Izc(),(!e.q?(mmb(),mmb(),kmb):e.q)._b((Nyc(),Cxc))?(l=BD(vNb(e,Cxc),197)):(l=BD(vNb(Q_b(e),Dxc),197)),l);b&&(m==Fzc||m==Ezc)&&(e.o.b+=r);if(b&&(m==Hzc||m==Fzc||m==Ezc)){for(p=new olb(e.j);p.a<p.c.c.length;){o=BD(mlb(p),11);if((Ucd(),Ecd).Hc(o.j)){k=BD(Ohb(a.k,o),121);o.n.b=k.e-j}}for(h=new olb(e.b);h.a<h.c.c.length;){g=BD(mlb(h),70);q=BD(vNb(e,xxc),21);q.Hc((Hbd(),Ebd))?(g.n.b+=r):q.Hc(Fbd)&&(g.n.b+=r/2)}(m==Fzc||m==Ezc)&&V_b(e,(Ucd(),Rcd)).Jc(new $Kc(r))}}}} +function Lwb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;if(!a.b){return false}g=null;m=null;i=new exb(null,null);e=1;i.a[1]=a.b;l=i;while(l.a[e]){j=e;h=m;m=l;l=l.a[e];d=a.a.ue(b,l.d);e=d<0?0:1;d==0&&(!c.c||wtb(l.e,c.d))&&(g=l);if(!(!!l&&l.b)&&!Hwb(l.a[e])){if(Hwb(l.a[1-e])){m=m.a[j]=Owb(l,e)}else if(!Hwb(l.a[1-e])){n=m.a[1-j];if(n){if(!Hwb(n.a[1-j])&&!Hwb(n.a[j])){m.b=false;n.b=true;l.b=true}else{f=h.a[1]==m?1:0;Hwb(n.a[j])?(h.a[f]=Nwb(m,j)):Hwb(n.a[1-j])&&(h.a[f]=Owb(m,j));l.b=h.a[f].b=true;h.a[f].a[0].b=false;h.a[f].a[1].b=false}}}}}if(g){c.b=true;c.d=g.e;if(l!=g){k=new exb(l.d,l.e);Mwb(a,i,g,k);m==g&&(m=k)}m.a[m.a[1]==l?1:0]=l.a[!l.a[0]?1:0];--a.c}a.b=i.a[1];!!a.b&&(a.b.b=false);return c.b} +function cic(a){var b,c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.a.b);e.a<e.c.c.length;){d=BD(mlb(e),57);for(i=d.c.Kc();i.Ob();){h=BD(i.Pb(),57);if(d.a==h.a){continue}fad(a.a.d)?(l=a.a.g.Oe(d,h)):(l=a.a.g.Pe(d,h));f=d.b.a+d.d.b+l-h.b.a;f=$wnd.Math.ceil(f);f=$wnd.Math.max(0,f);if(vgc(d,h)){g=nGb(new pGb,a.d);j=QD($wnd.Math.ceil(h.b.a-d.b.a));b=j-(h.b.a-d.b.a);k=ugc(d).a;c=d;if(!k){k=ugc(h).a;b=-b;c=h}if(k){c.b.a-=b;k.n.a-=b}AFb(DFb(CFb(EFb(BFb(new FFb,$wnd.Math.max(0,j)),1),g),a.c[d.a.d]));AFb(DFb(CFb(EFb(BFb(new FFb,$wnd.Math.max(0,-j)),1),g),a.c[h.a.d]))}else{m=1;(JD(d.g,145)&&JD(h.g,10)||JD(h.g,145)&&JD(d.g,10))&&(m=2);AFb(DFb(CFb(EFb(BFb(new FFb,QD(f)),m),a.c[d.a.d]),a.c[h.a.d]))}}}} +function pEc(a,b,c){var d,e,f,g,h,i,j,k,l,m;if(c){d=-1;k=new Bib(b,0);while(k.b<k.d.gc()){h=(sCb(k.b<k.d.gc()),BD(k.d.Xb(k.c=k.b++),10));l=a.c[h.c.p][h.p].a;if(l==null){g=d+1;f=new Bib(b,k.b);while(f.b<f.d.gc()){m=tEc(a,(sCb(f.b<f.d.gc()),BD(f.d.Xb(f.c=f.b++),10))).a;if(m!=null){g=(uCb(m),m);break}}l=(d+g)/2;a.c[h.c.p][h.p].a=l;a.c[h.c.p][h.p].d=(uCb(l),l);a.c[h.c.p][h.p].b=1}d=(uCb(l),l)}}else{e=0;for(j=new olb(b);j.a<j.c.c.length;){h=BD(mlb(j),10);a.c[h.c.p][h.p].a!=null&&(e=$wnd.Math.max(e,Edb(a.c[h.c.p][h.p].a)))}e+=2;for(i=new olb(b);i.a<i.c.c.length;){h=BD(mlb(i),10);if(a.c[h.c.p][h.p].a==null){l=Cub(a.i,24)*lke*e-1;a.c[h.c.p][h.p].a=l;a.c[h.c.p][h.p].d=l;a.c[h.c.p][h.p].b=1}}}} +function CZd(){rEd(b5,new i$d);rEd(a5,new P$d);rEd(c5,new u_d);rEd(d5,new M_d);rEd(f5,new P_d);rEd(h5,new S_d);rEd(g5,new V_d);rEd(i5,new Y_d);rEd(k5,new GZd);rEd(l5,new JZd);rEd(m5,new MZd);rEd(n5,new PZd);rEd(o5,new SZd);rEd(p5,new VZd);rEd(q5,new YZd);rEd(t5,new _Zd);rEd(v5,new c$d);rEd(x6,new f$d);rEd(j5,new l$d);rEd(u5,new o$d);rEd(wI,new r$d);rEd(GC(SD,1),new u$d);rEd(xI,new x$d);rEd(yI,new A$d);rEd($J,new D$d);rEd(O4,new G$d);rEd(BI,new J$d);rEd(T4,new M$d);rEd(U4,new S$d);rEd(O9,new V$d);rEd(E9,new Y$d);rEd(FI,new _$d);rEd(JI,new c_d);rEd(AI,new f_d);rEd(MI,new i_d);rEd(DK,new l_d);rEd(v8,new o_d);rEd(u8,new r_d);rEd(UI,new x_d);rEd(ZI,new A_d);rEd(X4,new D_d);rEd(V4,new G_d)} +function hA(a,b,c){var d,e,f,g,h,i,j,k,l;!c&&(c=TA(b.q.getTimezoneOffset()));e=(b.q.getTimezoneOffset()-c.a)*60000;h=new gB(wbb(Cbb(b.q.getTime()),e));i=h;if(h.q.getTimezoneOffset()!=b.q.getTimezoneOffset()){e>0?(e-=86400000):(e+=86400000);i=new gB(wbb(Cbb(b.q.getTime()),e))}k=new Vfb;j=a.a.length;for(f=0;f<j;){d=bfb(a.a,f);if(d>=97&&d<=122||d>=65&&d<=90){for(g=f+1;g<j&&bfb(a.a,g)==d;++g);vA(k,d,g-f,h,i,c);f=g}else if(d==39){++f;if(f<j&&bfb(a.a,f)==39){k.a+="'";++f;continue}l=false;while(!l){g=f;while(g<j&&bfb(a.a,g)!=39){++g}if(g>=j){throw vbb(new Wdb("Missing trailing '"))}g+1<j&&bfb(a.a,g+1)==39?++g:(l=true);Qfb(k,qfb(a.a,f,g));f=g+1}}else{k.a+=String.fromCharCode(d);++f}}return k.a} +function MEc(a){var b,c,d,e,f,g,h,i;b=null;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),233);Edb(REc(c.g,c.d[0]).a);c.b=null;if(!!c.e&&c.e.gc()>0&&c.c==0){!b&&(b=new Rkb);b.c[b.c.length]=c}}if(b){while(b.c.length!=0){c=BD(Kkb(b,0),233);if(!!c.b&&c.b.c.length>0){for(f=(!c.b&&(c.b=new Rkb),new olb(c.b));f.a<f.c.c.length;){e=BD(mlb(f),233);if(Gdb(REc(e.g,e.d[0]).a)==Gdb(REc(c.g,c.d[0]).a)){if(Jkb(a,e,0)>Jkb(a,c,0)){return new vgd(e,c)}}else if(Edb(REc(e.g,e.d[0]).a)>Edb(REc(c.g,c.d[0]).a)){return new vgd(e,c)}}}for(h=(!c.e&&(c.e=new Rkb),c.e).Kc();h.Ob();){g=BD(h.Pb(),233);i=(!g.b&&(g.b=new Rkb),g.b);wCb(0,i.c.length);aCb(i.c,0,c);g.c==i.c.length&&(b.c[b.c.length]=g,true)}}}return null} +function wlb(a,b){var c,d,e,f,g,h,i,j,k;if(a==null){return Xhe}i=b.a.zc(a,b);if(i!=null){return '[...]'}c=new xwb(She,'[',']');for(e=a,f=0,g=e.length;f<g;++f){d=e[f];if(d!=null&&(rb(d).i&4)!=0){if(Array.isArray(d)&&(k=HC(d),!(k>=14&&k<=16))){if(b.a._b(d)){!c.a?(c.a=new Wfb(c.d)):Qfb(c.a,c.b);Nfb(c.a,'[...]')}else{h=CD(d);j=new Vqb(b);uwb(c,wlb(h,j))}}else JD(d,177)?uwb(c,Xlb(BD(d,177))):JD(d,190)?uwb(c,Qlb(BD(d,190))):JD(d,195)?uwb(c,Rlb(BD(d,195))):JD(d,2012)?uwb(c,Wlb(BD(d,2012))):JD(d,48)?uwb(c,Ulb(BD(d,48))):JD(d,364)?uwb(c,Vlb(BD(d,364))):JD(d,832)?uwb(c,Tlb(BD(d,832))):JD(d,104)&&uwb(c,Slb(BD(d,104)))}else{uwb(c,d==null?Xhe:fcb(d))}}return !c.a?c.c:c.e.length==0?c.a.a:c.a.a+(''+c.e)} +function xQb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;h=itd(b,false,false);r=ofd(h);d&&(r=w7c(r));t=Edb(ED(hkd(b,(CPb(),vPb))));q=(sCb(r.b!=0),BD(r.a.a.c,8));l=BD(Ut(r,1),8);if(r.b>2){k=new Rkb;Gkb(k,new Jib(r,1,r.b));f=sQb(k,t+a.a);s=new XOb(f);tNb(s,b);c.c[c.c.length]=s}else{d?(s=BD(Ohb(a.b,jtd(b)),266)):(s=BD(Ohb(a.b,ltd(b)),266))}i=jtd(b);d&&(i=ltd(b));g=zQb(q,i);j=t+a.a;if(g.a){j+=$wnd.Math.abs(q.b-l.b);p=new f7c(l.a,(l.b+q.b)/2)}else{j+=$wnd.Math.abs(q.a-l.a);p=new f7c((l.a+q.a)/2,l.b)}d?Rhb(a.d,b,new ZOb(s,g,p,j)):Rhb(a.c,b,new ZOb(s,g,p,j));Rhb(a.b,b,s);o=(!b.n&&(b.n=new cUd(D2,b,1,7)),b.n);for(n=new Fyd(o);n.e!=n.i.gc();){m=BD(Dyd(n),137);e=wQb(a,m,true,0,0);c.c[c.c.length]=e}} +function wPc(a){var b,c,d,e,f,g,h,i,j,k;j=new Rkb;h=new Rkb;for(g=new olb(a);g.a<g.c.c.length;){e=BD(mlb(g),112);pOc(e,e.f.c.length);qOc(e,e.k.c.length);e.d==0&&(j.c[j.c.length]=e,true);e.i==0&&e.e.b==0&&(h.c[h.c.length]=e,true)}d=-1;while(j.c.length!=0){e=BD(Kkb(j,0),112);for(c=new olb(e.k);c.a<c.c.c.length;){b=BD(mlb(c),129);k=b.b;rOc(k,$wnd.Math.max(k.o,e.o+1));d=$wnd.Math.max(d,k.o);pOc(k,k.d-1);k.d==0&&(j.c[j.c.length]=k,true)}}if(d>-1){for(f=new olb(h);f.a<f.c.c.length;){e=BD(mlb(f),112);e.o=d}while(h.c.length!=0){e=BD(Kkb(h,0),112);for(c=new olb(e.f);c.a<c.c.c.length;){b=BD(mlb(c),129);i=b.a;if(i.e.b>0){continue}rOc(i,$wnd.Math.min(i.o,e.o-1));qOc(i,i.i-1);i.i==0&&(h.c[h.c.length]=i,true)}}}} +function QQd(a,b,c){var d,e,f,g,h,i,j;j=a.c;!b&&(b=FQd);a.c=b;if((a.Db&4)!=0&&(a.Db&1)==0){i=new nSd(a,1,2,j,a.c);!c?(c=i):c.Ei(i)}if(j!=b){if(JD(a.Cb,284)){if(a.Db>>16==-10){c=BD(a.Cb,284).nk(b,c)}else if(a.Db>>16==-15){!b&&(b=(jGd(),YFd));!j&&(j=(jGd(),YFd));if(a.Cb.nh()){i=new pSd(a.Cb,1,13,j,b,HLd(QSd(BD(a.Cb,59)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,88)){if(a.Db>>16==-23){JD(b,88)||(b=(jGd(),_Fd));JD(j,88)||(j=(jGd(),_Fd));if(a.Cb.nh()){i=new pSd(a.Cb,1,10,j,b,HLd(VKd(BD(a.Cb,26)),a),false);!c?(c=i):c.Ei(i)}}}else if(JD(a.Cb,444)){h=BD(a.Cb,836);g=(!h.b&&(h.b=new RYd(new NYd)),h.b);for(f=(d=new nib((new eib(g.a)).a),new ZYd(d));f.a.b;){e=BD(lib(f.a).cd(),87);c=QQd(e,MQd(e,h),c)}}}return c} +function O1b(a,b){var c,d,e,f,g,h,i,j,k,l,m;g=Ccb(DD(hkd(a,(Nyc(),fxc))));m=BD(hkd(a,Yxc),21);i=false;j=false;l=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));while(l.e!=l.i.gc()&&(!i||!j)){f=BD(Dyd(l),118);h=0;for(e=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!f.d&&(f.d=new y5d(B2,f,8,5)),f.d),(!f.e&&(f.e=new y5d(B2,f,7,4)),f.e)])));Qr(e);){d=BD(Rr(e),79);k=g&&Qld(d)&&Ccb(DD(hkd(d,gxc)));c=ELd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),f)?a==Xod(atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))):a==Xod(atd(BD(qud((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b),0),82)));if(k||c){++h;if(h>1){break}}}h>0?(i=true):m.Hc((rcd(),ncd))&&(!f.n&&(f.n=new cUd(D2,f,1,7)),f.n).i>0&&(i=true);h>1&&(j=true)}i&&b.Fc((Orc(),Hrc));j&&b.Fc((Orc(),Irc))} +function zfd(a){var b,c,d,e,f,g,h,i,j,k,l,m;m=BD(hkd(a,(Y9c(),Y8c)),21);if(m.dc()){return null}h=0;g=0;if(m.Hc((tdd(),rdd))){k=BD(hkd(a,t9c),98);d=2;c=2;e=2;f=2;b=!Xod(a)?BD(hkd(a,z8c),103):BD(hkd(Xod(a),z8c),103);for(j=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));j.e!=j.i.gc();){i=BD(Dyd(j),118);l=BD(hkd(i,A9c),61);if(l==(Ucd(),Scd)){l=lfd(i,b);jkd(i,A9c,l)}if(k==(dcd(),$bd)){switch(l.g){case 1:d=$wnd.Math.max(d,i.i+i.g);break;case 2:c=$wnd.Math.max(c,i.j+i.f);break;case 3:e=$wnd.Math.max(e,i.i+i.g);break;case 4:f=$wnd.Math.max(f,i.j+i.f);}}else{switch(l.g){case 1:d+=i.g+2;break;case 2:c+=i.f+2;break;case 3:e+=i.g+2;break;case 4:f+=i.f+2;}}}h=$wnd.Math.max(d,e);g=$wnd.Math.max(c,f)}return Afd(a,h,g,true,true)} +function lnc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=BD(GAb(VAb(JAb(new YAb(null,new Kub(b.d,16)),new pnc(c)),new rnc(c)),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)]))),15);l=Ohe;k=Rie;for(i=new olb(b.b.j);i.a<i.c.c.length;){h=BD(mlb(i),11);if(h.j==c){l=$wnd.Math.min(l,h.p);k=$wnd.Math.max(k,h.p)}}if(l==Ohe){for(g=0;g<s.gc();g++){ojc(BD(s.Xb(g),101),c,g)}}else{t=KC(WD,oje,25,e.length,15,1);Elb(t,t.length);for(r=s.Kc();r.Ob();){q=BD(r.Pb(),101);f=BD(Ohb(a.b,q),177);j=0;for(p=l;p<=k;p++){f[p]&&(j=$wnd.Math.max(j,d[p]))}if(q.i){n=q.i.c;u=new Tqb;for(m=0;m<e.length;m++){e[n][m]&&Qqb(u,meb(t[m]))}while(Rqb(u,meb(j))){++j}}ojc(q,c,j);for(o=l;o<=k;o++){f[o]&&(d[o]=j+1)}!!q.i&&(t[q.i.c]=j)}}} +function YJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;e=null;for(d=new olb(b.a);d.a<d.c.c.length;){c=BD(mlb(d),10);bKc(c)?(f=(h=nGb(oGb(new pGb,c),a.f),i=nGb(oGb(new pGb,c),a.f),j=new rKc(c,true,h,i),k=c.o.b,l=(Izc(),(!c.q?(mmb(),mmb(),kmb):c.q)._b((Nyc(),Cxc))?(m=BD(vNb(c,Cxc),197)):(m=BD(vNb(Q_b(c),Dxc),197)),m),n=10000,l==Ezc&&(n=1),o=AFb(DFb(CFb(BFb(EFb(new FFb,n),QD($wnd.Math.ceil(k))),h),i)),l==Fzc&&Qqb(a.d,o),ZJc(a,Su(V_b(c,(Ucd(),Tcd))),j),ZJc(a,V_b(c,zcd),j),j)):(f=(p=nGb(oGb(new pGb,c),a.f),MAb(JAb(new YAb(null,new Kub(c.j,16)),new EKc),new GKc(a,p)),new rKc(c,false,p,p)));a.i[c.p]=f;if(e){g=e.c.d.a+jBc(a.n,e.c,c)+c.d.d;e.b||(g+=e.c.o.b);AFb(DFb(CFb(EFb(BFb(new FFb,QD($wnd.Math.ceil(g))),0),e.d),f.a))}e=f}} +function s9b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;Odd(b,'Label dummy insertions',1);l=new Rkb;g=Edb(ED(vNb(a,(Nyc(),nyc))));j=Edb(ED(vNb(a,ryc)));k=BD(vNb(a,Lwc),103);for(n=new olb(a.a);n.a<n.c.c.length;){m=BD(mlb(n),10);for(f=new Sr(ur(U_b(m).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(e.c.i!=e.d.i&&Lq(e.b,p9b)){p=t9b(e);o=Pu(e.b.c.length);c=r9b(a,e,p,o);l.c[l.c.length]=c;d=c.o;h=new Bib(e.b,0);while(h.b<h.d.gc()){i=(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),70));if(PD(vNb(i,Qwc))===PD((qad(),nad))){if(k==(ead(),dad)||k==_9c){d.a+=i.o.a+j;d.b=$wnd.Math.max(d.b,i.o.b)}else{d.a=$wnd.Math.max(d.a,i.o.a);d.b+=i.o.b+j}o.c[o.c.length]=i;uib(h)}}if(k==(ead(),dad)||k==_9c){d.a-=j;d.b+=g+p}else{d.b+=g-j+p}}}}Gkb(a.a,l);Qdd(b)} +function eYb(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;f=new qYb(b);l=_Xb(a,b,f);n=$wnd.Math.max(Edb(ED(vNb(b,(Nyc(),Zwc)))),1);for(k=new olb(l.a);k.a<k.c.c.length;){j=BD(mlb(k),46);i=dYb(BD(j.a,8),BD(j.b,8),n);o=true;o=o&iYb(c,new f7c(i.c,i.d));o=o&iYb(c,O6c(new f7c(i.c,i.d),i.b,0));o=o&iYb(c,O6c(new f7c(i.c,i.d),0,i.a));o&iYb(c,O6c(new f7c(i.c,i.d),i.b,i.a))}m=f.d;h=dYb(BD(l.b.a,8),BD(l.b.b,8),n);if(m==(Ucd(),Tcd)||m==zcd){d.c[m.g]=$wnd.Math.min(d.c[m.g],h.d);d.b[m.g]=$wnd.Math.max(d.b[m.g],h.d+h.a)}else{d.c[m.g]=$wnd.Math.min(d.c[m.g],h.c);d.b[m.g]=$wnd.Math.max(d.b[m.g],h.c+h.b)}e=Qje;g=f.c.i.d;switch(m.g){case 4:e=g.c;break;case 2:e=g.b;break;case 1:e=g.a;break;case 3:e=g.d;}d.a[m.g]=$wnd.Math.max(d.a[m.g],e);return f} +function eKd(b){var c,d,e,f;d=b.D!=null?b.D:b.B;c=hfb(d,wfb(91));if(c!=-1){e=d.substr(0,c);f=new Hfb;do f.a+='[';while((c=gfb(d,91,++c))!=-1);if(dfb(e,Khe))f.a+='Z';else if(dfb(e,Eve))f.a+='B';else if(dfb(e,Fve))f.a+='C';else if(dfb(e,Gve))f.a+='D';else if(dfb(e,Hve))f.a+='F';else if(dfb(e,Ive))f.a+='I';else if(dfb(e,Jve))f.a+='J';else if(dfb(e,Kve))f.a+='S';else{f.a+='L';f.a+=''+e;f.a+=';'}try{return null}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}else if(hfb(d,wfb(46))==-1){if(dfb(d,Khe))return sbb;else if(dfb(d,Eve))return SD;else if(dfb(d,Fve))return TD;else if(dfb(d,Gve))return UD;else if(dfb(d,Hve))return VD;else if(dfb(d,Ive))return WD;else if(dfb(d,Jve))return XD;else if(dfb(d,Kve))return rbb}return null} +function $1b(a,b,c){var d,e,f,g,h,i,j,k;j=new b0b(c);tNb(j,b);yNb(j,(wtc(),$sc),b);j.o.a=b.g;j.o.b=b.f;j.n.a=b.i;j.n.b=b.j;Ekb(c.a,j);Rhb(a.a,b,j);((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0||Ccb(DD(hkd(b,(Nyc(),fxc)))))&&yNb(j,wsc,(Bcb(),true));i=BD(vNb(c,Ksc),21);k=BD(vNb(j,(Nyc(),Vxc)),98);k==(dcd(),ccd)?yNb(j,Vxc,bcd):k!=bcd&&i.Fc((Orc(),Krc));d=BD(vNb(c,Lwc),103);for(h=new Fyd((!b.c&&(b.c=new cUd(F2,b,9,9)),b.c));h.e!=h.i.gc();){g=BD(Dyd(h),118);Ccb(DD(hkd(g,Jxc)))||_1b(a,g,j,i,d,k)}for(f=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));f.e!=f.i.gc();){e=BD(Dyd(f),137);!Ccb(DD(hkd(e,Jxc)))&&!!e.a&&Ekb(j.b,Z1b(e))}Ccb(DD(vNb(j,pwc)))&&i.Fc((Orc(),Frc));if(Ccb(DD(vNb(j,exc)))){i.Fc((Orc(),Jrc));i.Fc(Irc);yNb(j,Vxc,bcd)}return j} +function F4b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;h=BD(Ohb(b.c,a),459);s=b.a.c;i=b.a.c+b.a.b;C=h.f;D=h.a;g=C<D;p=new f7c(s,C);t=new f7c(i,D);e=(s+i)/2;q=new f7c(e,C);u=new f7c(e,D);f=G4b(a,C,D);w=A0b(b.B);A=new f7c(e,f);B=A0b(b.D);c=j6c(OC(GC(m1,1),nie,8,0,[w,A,B]));n=false;r=b.B.i;if(!!r&&!!r.c&&h.d){j=g&&r.p<r.c.a.c.length-1||!g&&r.p>0;if(j){if(j){m=r.p;g?++m:--m;l=BD(Ikb(r.c.a,m),10);d=I4b(l);n=!(s6c(d,w,c[0])||n6c(d,w,c[0]))}}else{n=true}}o=false;v=b.D.i;if(!!v&&!!v.c&&h.e){k=g&&v.p>0||!g&&v.p<v.c.a.c.length-1;if(k){m=v.p;g?--m:++m;l=BD(Ikb(v.c.a,m),10);d=I4b(l);o=!(s6c(d,c[0],B)||n6c(d,c[0],B))}else{o=true}}n&&o&&Dsb(a.a,A);n||n7c(a.a,OC(GC(m1,1),nie,8,0,[p,q]));o||n7c(a.a,OC(GC(m1,1),nie,8,0,[u,t]))} +function yfd(a,b){var c,d,e,f,g,h,i,j;if(JD(a.Ug(),160)){yfd(BD(a.Ug(),160),b);b.a+=' > '}else{b.a+='Root '}c=a.Tg().zb;dfb(c.substr(0,3),'Elk')?Qfb(b,c.substr(3)):(b.a+=''+c,b);e=a.zg();if(e){Qfb((b.a+=' ',b),e);return}if(JD(a,354)){j=BD(a,137).a;if(j){Qfb((b.a+=' ',b),j);return}}for(g=new Fyd(a.Ag());g.e!=g.i.gc();){f=BD(Dyd(g),137);j=f.a;if(j){Qfb((b.a+=' ',b),j);return}}if(JD(a,352)){d=BD(a,79);!d.b&&(d.b=new y5d(z2,d,4,7));if(d.b.i!=0&&(!d.c&&(d.c=new y5d(z2,d,5,8)),d.c.i!=0)){b.a+=' (';h=new Oyd((!d.b&&(d.b=new y5d(z2,d,4,7)),d.b));while(h.e!=h.i.gc()){h.e>0&&(b.a+=She,b);yfd(BD(Dyd(h),160),b)}b.a+=gne;i=new Oyd((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c));while(i.e!=i.i.gc()){i.e>0&&(b.a+=She,b);yfd(BD(Dyd(i),160),b)}b.a+=')'}}} +function y2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;f=BD(vNb(a,(wtc(),$sc)),79);if(!f){return}d=a.a;e=new g7c(c);P6c(e,C2b(a));if(f_b(a.d.i,a.c.i)){m=a.c;l=l7c(OC(GC(m1,1),nie,8,0,[m.n,m.a]));c7c(l,c)}else{l=A0b(a.c)}Gsb(d,l,d.a,d.a.a);n=A0b(a.d);vNb(a,utc)!=null&&P6c(n,BD(vNb(a,utc),8));Gsb(d,n,d.c.b,d.c);q7c(d,e);g=itd(f,true,true);kmd(g,BD(qud((!f.b&&(f.b=new y5d(z2,f,4,7)),f.b),0),82));lmd(g,BD(qud((!f.c&&(f.c=new y5d(z2,f,5,8)),f.c),0),82));ifd(d,g);for(k=new olb(a.b);k.a<k.c.c.length;){j=BD(mlb(k),70);h=BD(vNb(j,$sc),137);cld(h,j.o.a);ald(h,j.o.b);bld(h,j.n.a+e.a,j.n.b+e.b);jkd(h,(I9b(),H9b),DD(vNb(j,H9b)))}i=BD(vNb(a,(Nyc(),jxc)),74);if(i){q7c(i,e);jkd(f,jxc,i)}else{jkd(f,jxc,null)}b==(Aad(),yad)?jkd(f,Swc,yad):jkd(f,Swc,null)} +function mJc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;n=b.c.length;m=0;for(l=new olb(a.b);l.a<l.c.c.length;){k=BD(mlb(l),29);r=k.a;if(r.c.length==0){continue}q=new olb(r);j=0;s=null;e=BD(mlb(q),10);f=null;while(e){f=BD(Ikb(b,e.p),257);if(f.c>=0){i=null;h=new Bib(k.a,j+1);while(h.b<h.d.gc()){g=(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),10));i=BD(Ikb(b,g.p),257);if(i.d==f.d&&i.c<f.c){break}else{i=null}}if(i){if(s){Nkb(d,e.p,meb(BD(Ikb(d,e.p),19).a-1));BD(Ikb(c,s.p),15).Mc(f)}f=yJc(f,e,n++);b.c[b.c.length]=f;Ekb(c,new Rkb);if(s){BD(Ikb(c,s.p),15).Fc(f);Ekb(d,meb(1))}else{Ekb(d,meb(0))}}}o=null;if(q.a<q.c.c.length){o=BD(mlb(q),10);p=BD(Ikb(b,o.p),257);BD(Ikb(c,e.p),15).Fc(p);Nkb(d,o.p,meb(BD(Ikb(d,o.p),19).a+1))}f.d=m;f.c=j++;s=e;e=o}++m}} +function u6c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;i=a;k=c7c(new f7c(b.a,b.b),a);j=c;l=c7c(new f7c(d.a,d.b),c);m=i.a;q=i.b;o=j.a;s=j.b;n=k.a;r=k.b;p=l.a;t=l.b;e=p*r-n*t;Iy();My(Jqe);if($wnd.Math.abs(0-e)<=Jqe||0==e||isNaN(0)&&isNaN(e)){return false}g=1/e*((m-o)*r-(q-s)*n);h=1/e*-(-(m-o)*t+(q-s)*p);f=(null,My(Jqe),($wnd.Math.abs(0-g)<=Jqe||0==g||isNaN(0)&&isNaN(g)?0:0<g?-1:0>g?1:Ny(isNaN(0),isNaN(g)))<0&&(null,My(Jqe),($wnd.Math.abs(g-1)<=Jqe||g==1||isNaN(g)&&isNaN(1)?0:g<1?-1:g>1?1:Ny(isNaN(g),isNaN(1)))<0)&&(null,My(Jqe),($wnd.Math.abs(0-h)<=Jqe||0==h||isNaN(0)&&isNaN(h)?0:0<h?-1:0>h?1:Ny(isNaN(0),isNaN(h)))<0)&&(null,My(Jqe),($wnd.Math.abs(h-1)<=Jqe||h==1||isNaN(h)&&isNaN(1)?0:h<1?-1:h>1?1:Ny(isNaN(h),isNaN(1)))<0));return f} +function z6d(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;for(l=new usb(new nsb(a));l.b!=l.c.a.d;){k=tsb(l);h=BD(k.d,56);b=BD(k.e,56);g=h.Tg();for(p=0,u=(g.i==null&&TKd(g),g.i).length;p<u;++p){j=(f=(g.i==null&&TKd(g),g.i),p>=0&&p<f.length?f[p]:null);if(j.Ij()&&!j.Jj()){if(JD(j,99)){i=BD(j,18);(i.Bb&ote)==0&&(w=zUd(i),!(!!w&&(w.Bb&ote)!=0))&&y6d(a,i,h,b)}else{Q6d();if(BD(j,66).Oj()){c=(v=j,BD(!v?null:BD(b,49).xh(v),153));if(c){n=BD(h.ah(j),153);d=c.gc();for(q=0,o=n.gc();q<o;++q){m=n.il(q);if(JD(m,99)){t=n.jl(q);e=Wrb(a,t);if(e==null&&t!=null){s=BD(m,18);if(!a.b||(s.Bb&ote)!=0||!!zUd(s)){continue}e=t}if(!c.dl(m,e)){for(r=0;r<d;++r){if(c.il(r)==m&&PD(c.jl(r))===PD(e)){c.ii(c.gc()-1,r);--d;break}}}}else{c.dl(n.il(q),n.jl(q))}}}}}}}}} +function CZc(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t;r=xZc(b,c,a.g);e.n&&e.n&&!!f&&Tdd(e,i6d(f),(pgd(),mgd));if(a.b){for(q=0;q<r.c.length;q++){l=(tCb(q,r.c.length),BD(r.c[q],200));if(q!=0){n=(tCb(q-1,r.c.length),BD(r.c[q-1],200));w$c(l,n.f+n.b+a.g)}tZc(q,r,c,a.g);AZc(a,l);e.n&&!!f&&Tdd(e,i6d(f),(pgd(),mgd))}}else{for(p=new olb(r);p.a<p.c.c.length;){o=BD(mlb(p),200);for(k=new olb(o.a);k.a<k.c.c.length;){j=BD(mlb(k),187);s=new b$c(j.s,j.t,a.g);WZc(s,j);Ekb(o.d,s)}}}BZc(a,r);e.n&&e.n&&!!f&&Tdd(e,i6d(f),(pgd(),mgd));t=$wnd.Math.max(a.d,d.a-(g.b+g.c));m=$wnd.Math.max(a.c,d.b-(g.d+g.a));h=m-a.c;if(a.e&&a.f){i=t/m;i<a.a?(t=m*a.a):(h+=t/a.a-m)}a.e&&zZc(r,t,h);e.n&&e.n&&!!f&&Tdd(e,i6d(f),(pgd(),mgd));return new d$c(a.a,t,a.c+h,(k$c(),j$c))} +function UJc(a){var b,c,d,e,f,g,h,i,j,k,l;a.j=KC(WD,oje,25,a.g,15,1);a.o=new Rkb;MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new aLc),new cLc(a));a.a=KC(sbb,dle,25,a.b,16,1);TAb(new YAb(null,new Kub(a.e.b,16)),new rLc(a));d=(l=new Rkb,MAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new hLc),new jLc(a)),new lLc(a,l)),l);for(i=new olb(d);i.a<i.c.c.length;){h=BD(mlb(i),508);if(h.c.length<=1){continue}if(h.c.length==2){uKc(h);bKc((tCb(0,h.c.length),BD(h.c[0],17)).d.i)||Ekb(a.o,h);continue}if(tKc(h)||sKc(h,new fLc)){continue}j=new olb(h);e=null;while(j.a<j.c.c.length){b=BD(mlb(j),17);c=a.c[b.p];!e||j.a>=j.c.c.length?(k=JJc((j0b(),h0b),g0b)):(k=JJc((j0b(),g0b),g0b));k*=2;f=c.a.g;c.a.g=$wnd.Math.max(f,f+(k-f));g=c.b.g;c.b.g=$wnd.Math.max(g,g+(k-g));e=b}}} +function VNc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;v=Hx(a);k=new Rkb;h=a.c.length;l=h-1;m=h+1;while(v.a.c!=0){while(c.b!=0){t=(sCb(c.b!=0),BD(Nsb(c,c.a.a),112));Jwb(v.a,t)!=null;t.g=l--;YNc(t,b,c,d)}while(b.b!=0){u=(sCb(b.b!=0),BD(Nsb(b,b.a.a),112));Jwb(v.a,u)!=null;u.g=m++;YNc(u,b,c,d)}j=Rie;for(r=(g=new Ywb((new cxb((new Gjb(v.a)).a)).b),new Njb(g));sib(r.a.a);){q=(f=Wwb(r.a),BD(f.cd(),112));if(!d&&q.b>0&&q.a<=0){k.c=KC(SI,Uhe,1,0,5,1);k.c[k.c.length]=q;break}p=q.i-q.d;if(p>=j){if(p>j){k.c=KC(SI,Uhe,1,0,5,1);j=p}k.c[k.c.length]=q}}if(k.c.length!=0){i=BD(Ikb(k,Bub(e,k.c.length)),112);Jwb(v.a,i)!=null;i.g=m++;YNc(i,b,c,d);k.c=KC(SI,Uhe,1,0,5,1)}}s=a.c.length+1;for(o=new olb(a);o.a<o.c.c.length;){n=BD(mlb(o),112);n.g<h&&(n.g=n.g+s)}} +function SDb(a,b){var c;if(a.e){throw vbb(new Zdb((fdb(TM),Jke+TM.k+Kke)))}if(!lDb(a.a,b)){throw vbb(new hz(Lke+b+Mke))}if(b==a.d){return a}c=a.d;a.d=b;switch(c.g){case 0:switch(b.g){case 2:PDb(a);break;case 1:XDb(a);PDb(a);break;case 4:bEb(a);PDb(a);break;case 3:bEb(a);XDb(a);PDb(a);}break;case 2:switch(b.g){case 1:XDb(a);YDb(a);break;case 4:bEb(a);PDb(a);break;case 3:bEb(a);XDb(a);PDb(a);}break;case 1:switch(b.g){case 2:XDb(a);YDb(a);break;case 4:XDb(a);bEb(a);PDb(a);break;case 3:XDb(a);bEb(a);XDb(a);PDb(a);}break;case 4:switch(b.g){case 2:bEb(a);PDb(a);break;case 1:bEb(a);XDb(a);PDb(a);break;case 3:XDb(a);YDb(a);}break;case 3:switch(b.g){case 2:XDb(a);bEb(a);PDb(a);break;case 1:XDb(a);bEb(a);XDb(a);PDb(a);break;case 4:XDb(a);YDb(a);}}return a} +function tVb(a,b){var c;if(a.d){throw vbb(new Zdb((fdb(LP),Jke+LP.k+Kke)))}if(!cVb(a.a,b)){throw vbb(new hz(Lke+b+Mke))}if(b==a.c){return a}c=a.c;a.c=b;switch(c.g){case 0:switch(b.g){case 2:qVb(a);break;case 1:xVb(a);qVb(a);break;case 4:BVb(a);qVb(a);break;case 3:BVb(a);xVb(a);qVb(a);}break;case 2:switch(b.g){case 1:xVb(a);yVb(a);break;case 4:BVb(a);qVb(a);break;case 3:BVb(a);xVb(a);qVb(a);}break;case 1:switch(b.g){case 2:xVb(a);yVb(a);break;case 4:xVb(a);BVb(a);qVb(a);break;case 3:xVb(a);BVb(a);xVb(a);qVb(a);}break;case 4:switch(b.g){case 2:BVb(a);qVb(a);break;case 1:BVb(a);xVb(a);qVb(a);break;case 3:xVb(a);yVb(a);}break;case 3:switch(b.g){case 2:xVb(a);BVb(a);qVb(a);break;case 1:xVb(a);BVb(a);xVb(a);qVb(a);break;case 4:xVb(a);yVb(a);}}return a} +function UQb(a,b,c){var d,e,f,g,h,i,j,k;for(i=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));i.e!=i.i.gc();){h=BD(Dyd(i),33);for(e=new Sr(ur(_sd(h).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),79);!d.b&&(d.b=new y5d(z2,d,4,7));if(!(d.b.i<=1&&(!d.c&&(d.c=new y5d(z2,d,5,8)),d.c.i<=1))){throw vbb(new z2c('Graph must not contain hyperedges.'))}if(!Pld(d)&&h!=atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))){j=new gRb;tNb(j,d);yNb(j,(HSb(),FSb),d);dRb(j,BD(Wd(irb(c.f,h)),144));eRb(j,BD(Ohb(c,atd(BD(qud((!d.c&&(d.c=new y5d(z2,d,5,8)),d.c),0),82))),144));Ekb(b.c,j);for(g=new Fyd((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=new mRb(j,f.a);tNb(k,f);yNb(k,FSb,f);k.e.a=$wnd.Math.max(f.g,1);k.e.b=$wnd.Math.max(f.f,1);lRb(k);Ekb(b.d,k)}}}}} +function OGb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;l=new LIb(a);iKb(l,!(b==(ead(),dad)||b==_9c));k=l.a;m=new p0b;for(e=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),g=0,i=e.length;g<i;++g){c=e[g];j=xHb(k,dHb,c);!!j&&(m.d=$wnd.Math.max(m.d,j.Re()))}for(d=OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb]),f=0,h=d.length;f<h;++f){c=d[f];j=xHb(k,fHb,c);!!j&&(m.a=$wnd.Math.max(m.a,j.Re()))}for(p=OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb]),r=0,t=p.length;r<t;++r){n=p[r];j=xHb(k,n,dHb);!!j&&(m.b=$wnd.Math.max(m.b,j.Se()))}for(o=OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb]),q=0,s=o.length;q<s;++q){n=o[q];j=xHb(k,n,fHb);!!j&&(m.c=$wnd.Math.max(m.c,j.Se()))}if(m.d>0){m.d+=k.n.d;m.d+=k.d}if(m.a>0){m.a+=k.n.a;m.a+=k.d}if(m.b>0){m.b+=k.n.b;m.b+=k.d}if(m.c>0){m.c+=k.n.c;m.c+=k.d}return m} +function d6b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o;m=c.d;l=c.c;f=new f7c(c.f.a+c.d.b+c.d.c,c.f.b+c.d.d+c.d.a);g=f.b;for(j=new olb(a.a);j.a<j.c.c.length;){h=BD(mlb(j),10);if(h.k!=(j0b(),e0b)){continue}d=BD(vNb(h,(wtc(),Hsc)),61);e=BD(vNb(h,Isc),8);k=h.n;switch(d.g){case 2:k.a=c.f.a+m.c-l.a;break;case 4:k.a=-l.a-m.b;}o=0;switch(d.g){case 2:case 4:if(b==(dcd(),_bd)){n=Edb(ED(vNb(h,htc)));k.b=f.b*n-BD(vNb(h,(Nyc(),Txc)),8).b;o=k.b+e.b;M_b(h,false,true)}else if(b==$bd){k.b=Edb(ED(vNb(h,htc)))-BD(vNb(h,(Nyc(),Txc)),8).b;o=k.b+e.b;M_b(h,false,true)}}g=$wnd.Math.max(g,o)}c.f.b+=g-f.b;for(i=new olb(a.a);i.a<i.c.c.length;){h=BD(mlb(i),10);if(h.k!=(j0b(),e0b)){continue}d=BD(vNb(h,(wtc(),Hsc)),61);k=h.n;switch(d.g){case 1:k.b=-l.b-m.d;break;case 3:k.b=c.f.b+m.a-l.b;}}} +function nRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;e=BD(vNb(a,(mTc(),dTc)),33);j=Ohe;k=Ohe;h=Rie;i=Rie;for(w=Jsb(a.b,0);w.b!=w.d.c;){u=BD(Xsb(w),86);p=u.e;q=u.f;j=$wnd.Math.min(j,p.a-q.a/2);k=$wnd.Math.min(k,p.b-q.b/2);h=$wnd.Math.max(h,p.a+q.a/2);i=$wnd.Math.max(i,p.b+q.b/2)}o=BD(hkd(e,(JTc(),BTc)),116);n=new f7c(o.b-j,o.d-k);for(v=Jsb(a.b,0);v.b!=v.d.c;){u=BD(Xsb(v),86);m=vNb(u,dTc);if(JD(m,239)){f=BD(m,33);l=P6c(u.e,n);bld(f,l.a-f.g/2,l.b-f.f/2)}}for(t=Jsb(a.a,0);t.b!=t.d.c;){s=BD(Xsb(t),188);d=BD(vNb(s,dTc),79);if(d){b=s.a;r=new g7c(s.b.e);Gsb(b,r,b.a,b.a.a);A=new g7c(s.c.e);Gsb(b,A,b.c.b,b.c);qRc(r,BD(Ut(b,1),8),s.b.f);qRc(A,BD(Ut(b,b.b-2),8),s.c.f);c=itd(d,true,true);ifd(b,c)}}B=h-j+(o.b+o.c);g=i-k+(o.d+o.a);Afd(e,B,g,false,false)} +function xoc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;l=a.b;k=new Bib(l,0);Aib(k,new H1b(a));s=false;g=1;while(k.b<k.d.gc()){j=(sCb(k.b<k.d.gc()),BD(k.d.Xb(k.c=k.b++),29));p=(tCb(g,l.c.length),BD(l.c[g],29));q=Mu(j.a);r=q.c.length;for(o=new olb(q);o.a<o.c.c.length;){m=BD(mlb(o),10);$_b(m,p)}if(s){for(n=av(new ov(q),0);n.c.Sb();){m=BD(pv(n),10);for(f=new olb(Mu(R_b(m)));f.a<f.c.c.length;){e=BD(mlb(f),17);PZb(e,true);yNb(a,(wtc(),Asc),(Bcb(),true));d=Noc(a,e,r);c=BD(vNb(m,usc),305);t=BD(Ikb(d,d.c.length-1),17);c.k=t.c.i;c.n=t;c.b=e.d.i;c.c=e}}s=false}else{if(q.c.length!=0){b=(tCb(0,q.c.length),BD(q.c[0],10));if(b.k==(j0b(),d0b)){s=true;g=-1}}}++g}h=new Bib(a.b,0);while(h.b<h.d.gc()){i=(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),29));i.a.c.length==0&&uib(h)}} +function wKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;k=BD(BD(Qc(a.r,b),21),84);if(k.gc()<=2||b==(Ucd(),zcd)||b==(Ucd(),Tcd)){AKb(a,b);return}p=a.u.Hc((rcd(),qcd));c=b==(Ucd(),Acd)?(vLb(),uLb):(vLb(),rLb);r=b==Acd?(EIb(),BIb):(EIb(),DIb);d=dLb(iLb(c),a.s);q=b==Acd?Pje:Qje;for(j=k.Kc();j.Ob();){h=BD(j.Pb(),111);if(!h.c||h.c.d.c.length<=0){continue}o=h.b.rf();n=h.e;l=h.c;m=l.i;m.b=(f=l.n,l.e.a+f.b+f.c);m.a=(g=l.n,l.e.b+g.d+g.a);if(p){m.c=n.a-(e=l.n,l.e.a+e.b+e.c)-a.s;p=false}else{m.c=n.a+o.a+a.s}ytb(r,lle);l.f=r;$Hb(l,(NHb(),MHb));Ekb(d.d,new BLb(m,bLb(d,m)));q=b==Acd?$wnd.Math.min(q,n.b):$wnd.Math.max(q,n.b+h.b.rf().b)}q+=b==Acd?-a.t:a.t;cLb((d.e=q,d));for(i=k.Kc();i.Ob();){h=BD(i.Pb(),111);if(!h.c||h.c.d.c.length<=0){continue}m=h.c.i;m.c-=h.e.a;m.d-=h.e.b}} +function IDc(a,b,c){var d;Odd(c,'StretchWidth layering',1);if(b.a.c.length==0){Qdd(c);return}a.c=b;a.t=0;a.u=0;a.i=Pje;a.g=Qje;a.d=Edb(ED(vNb(b,(Nyc(),lyc))));CDc(a);DDc(a);ADc(a);HDc(a);BDc(a);a.i=$wnd.Math.max(1,a.i);a.g=$wnd.Math.max(1,a.g);a.d=a.d/a.i;a.f=a.g/a.i;a.s=FDc(a);d=new H1b(a.c);Ekb(a.c.b,d);a.r=Mu(a.p);a.n=tlb(a.k,a.k.length);while(a.r.c.length!=0){a.o=JDc(a);if(!a.o||EDc(a)&&a.b.a.gc()!=0){KDc(a,d);d=new H1b(a.c);Ekb(a.c.b,d);ye(a.a,a.b);a.b.a.$b();a.t=a.u;a.u=0}else{if(EDc(a)){a.c.b.c=KC(SI,Uhe,1,0,5,1);d=new H1b(a.c);Ekb(a.c.b,d);a.t=0;a.u=0;a.b.a.$b();a.a.a.$b();++a.f;a.r=Mu(a.p);a.n=tlb(a.k,a.k.length)}else{$_b(a.o,d);Lkb(a.r,a.o);Qqb(a.b,a.o);a.t=a.t-a.k[a.o.p]*a.d+a.j[a.o.p];a.u+=a.e[a.o.p]*a.d}}}b.a.c=KC(SI,Uhe,1,0,5,1);smb(b.b);Qdd(c)} +function Mgc(a){var b,c,d,e;MAb(JAb(new YAb(null,new Kub(a.a.b,16)),new khc),new mhc);Kgc(a);MAb(JAb(new YAb(null,new Kub(a.a.b,16)),new ohc),new qhc);if(a.c==(Aad(),yad)){MAb(JAb(LAb(new YAb(null,new Kub(new Pib(a.f),1)),new yhc),new Ahc),new Chc(a));MAb(JAb(NAb(LAb(LAb(new YAb(null,new Kub(a.d.b,16)),new Ghc),new Ihc),new Khc),new Mhc),new Ohc(a))}e=new f7c(Pje,Pje);b=new f7c(Qje,Qje);for(d=new olb(a.a.b);d.a<d.c.c.length;){c=BD(mlb(d),57);e.a=$wnd.Math.min(e.a,c.d.c);e.b=$wnd.Math.min(e.b,c.d.d);b.a=$wnd.Math.max(b.a,c.d.c+c.d.b);b.b=$wnd.Math.max(b.b,c.d.d+c.d.a)}P6c(X6c(a.d.c),V6c(new f7c(e.a,e.b)));P6c(X6c(a.d.f),c7c(new f7c(b.a,b.b),e));Lgc(a,e,b);Uhb(a.f);Uhb(a.b);Uhb(a.g);Uhb(a.e);a.a.a.c=KC(SI,Uhe,1,0,5,1);a.a.b.c=KC(SI,Uhe,1,0,5,1);a.a=null;a.d=null} +function vZb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;e=new Rkb;for(p=new olb(b.a);p.a<p.c.c.length;){o=BD(mlb(p),10);n=o.e;if(n){d=vZb(a,n,o);Gkb(e,d);sZb(a,n,o);if(BD(vNb(n,(wtc(),Ksc)),21).Hc((Orc(),Hrc))){s=BD(vNb(o,(Nyc(),Vxc)),98);m=BD(vNb(o,Yxc),174).Hc((rcd(),ncd));for(r=new olb(o.j);r.a<r.c.c.length;){q=BD(mlb(r),11);f=BD(Ohb(a.b,q),10);if(!f){f=Z$b(q,s,q.j,-(q.e.c.length-q.g.c.length),null,new d7c,q.o,BD(vNb(n,Lwc),103),n);yNb(f,$sc,q);Rhb(a.b,q,f);Ekb(n.a,f)}g=BD(Ikb(f.j,0),11);for(k=new olb(q.f);k.a<k.c.c.length;){j=BD(mlb(k),70);h=new p_b;h.o.a=j.o.a;h.o.b=j.o.b;Ekb(g.f,h);if(!m){t=q.j;l=0;tcd(BD(vNb(o,Yxc),21))&&(l=mfd(j.n,j.o,q.o,0,t));s==(dcd(),bcd)||(Ucd(),Ecd).Hc(t)?(h.o.a=l):(h.o.b=l)}}}}}}i=new Rkb;rZb(a,b,c,e,i);!!c&&tZb(a,b,c,i);return i} +function nEc(a,b,c){var d,e,f,g,h,i,j,k,l;if(a.c[b.c.p][b.p].e){return}else{a.c[b.c.p][b.p].e=true}a.c[b.c.p][b.p].b=0;a.c[b.c.p][b.p].d=0;a.c[b.c.p][b.p].a=null;for(k=new olb(b.j);k.a<k.c.c.length;){j=BD(mlb(k),11);l=c?new J0b(j):new R0b(j);for(i=l.Kc();i.Ob();){h=BD(i.Pb(),11);g=h.i;if(g.c==b.c){if(g!=b){nEc(a,g,c);a.c[b.c.p][b.p].b+=a.c[g.c.p][g.p].b;a.c[b.c.p][b.p].d+=a.c[g.c.p][g.p].d}}else{a.c[b.c.p][b.p].d+=a.g[h.p];++a.c[b.c.p][b.p].b}}}f=BD(vNb(b,(wtc(),ssc)),15);if(f){for(e=f.Kc();e.Ob();){d=BD(e.Pb(),10);if(b.c==d.c){nEc(a,d,c);a.c[b.c.p][b.p].b+=a.c[d.c.p][d.p].b;a.c[b.c.p][b.p].d+=a.c[d.c.p][d.p].d}}}if(a.c[b.c.p][b.p].b>0){a.c[b.c.p][b.p].d+=Cub(a.i,24)*lke*0.07000000029802322-0.03500000014901161;a.c[b.c.p][b.p].a=a.c[b.c.p][b.p].d/a.c[b.c.p][b.p].b}} +function m5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;for(o=new olb(a);o.a<o.c.c.length;){n=BD(mlb(o),10);n5b(n.n);n5b(n.o);o5b(n.f);r5b(n);t5b(n);for(q=new olb(n.j);q.a<q.c.c.length;){p=BD(mlb(q),11);n5b(p.n);n5b(p.a);n5b(p.o);G0b(p,s5b(p.j));f=BD(vNb(p,(Nyc(),Wxc)),19);!!f&&yNb(p,Wxc,meb(-f.a));for(e=new olb(p.g);e.a<e.c.c.length;){d=BD(mlb(e),17);for(c=Jsb(d.a,0);c.b!=c.d.c;){b=BD(Xsb(c),8);n5b(b)}i=BD(vNb(d,jxc),74);if(i){for(h=Jsb(i,0);h.b!=h.d.c;){g=BD(Xsb(h),8);n5b(g)}}for(l=new olb(d.b);l.a<l.c.c.length;){j=BD(mlb(l),70);n5b(j.n);n5b(j.o)}}for(m=new olb(p.f);m.a<m.c.c.length;){j=BD(mlb(m),70);n5b(j.n);n5b(j.o)}}if(n.k==(j0b(),e0b)){yNb(n,(wtc(),Hsc),s5b(BD(vNb(n,Hsc),61)));q5b(n)}for(k=new olb(n.b);k.a<k.c.c.length;){j=BD(mlb(k),70);r5b(j);n5b(j.o);n5b(j.n)}}} +function yQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;a.e=b;h=$Pb(b);w=new Rkb;for(d=new olb(h);d.a<d.c.c.length;){c=BD(mlb(d),15);A=new Rkb;w.c[w.c.length]=A;i=new Tqb;for(o=c.Kc();o.Ob();){n=BD(o.Pb(),33);f=wQb(a,n,true,0,0);A.c[A.c.length]=f;p=n.i;q=n.j;new f7c(p,q);m=(!n.n&&(n.n=new cUd(D2,n,1,7)),n.n);for(l=new Fyd(m);l.e!=l.i.gc();){j=BD(Dyd(l),137);e=wQb(a,j,false,p,q);A.c[A.c.length]=e}v=(!n.c&&(n.c=new cUd(F2,n,9,9)),n.c);for(s=new Fyd(v);s.e!=s.i.gc();){r=BD(Dyd(s),118);g=wQb(a,r,false,p,q);A.c[A.c.length]=g;t=r.i+p;u=r.j+q;m=(!r.n&&(r.n=new cUd(D2,r,1,7)),r.n);for(k=new Fyd(m);k.e!=k.i.gc();){j=BD(Dyd(k),137);e=wQb(a,j,false,t,u);A.c[A.c.length]=e}}ye(i,Dx(pl(OC(GC(KI,1),Uhe,20,0,[_sd(n),$sd(n)]))))}vQb(a,i,A)}a.f=new aPb(w);tNb(a.f,b);return a.f} +function Kqd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;D=Ohb(a.e,d);if(D==null){D=new eC;n=BD(D,183);s=b+'_s';t=s+e;m=new yC(t);cC(n,Vte,m)}C=BD(D,183);Qpd(c,C);G=new eC;Spd(G,'x',d.j);Spd(G,'y',d.k);cC(C,Yte,G);A=new eC;Spd(A,'x',d.b);Spd(A,'y',d.c);cC(C,'endPoint',A);l=Fhe((!d.a&&(d.a=new xMd(y2,d,5)),d.a));o=!l;if(o){w=new wB;f=new Srd(w);reb((!d.a&&(d.a=new xMd(y2,d,5)),d.a),f);cC(C,Ote,w)}i=dmd(d);u=!!i;u&&Tpd(a.a,C,Qte,kqd(a,dmd(d)));r=emd(d);v=!!r;v&&Tpd(a.a,C,Pte,kqd(a,emd(d)));j=(!d.e&&(d.e=new y5d(A2,d,10,9)),d.e).i==0;p=!j;if(p){B=new wB;g=new Urd(a,B);reb((!d.e&&(d.e=new y5d(A2,d,10,9)),d.e),g);cC(C,Ste,B)}k=(!d.g&&(d.g=new y5d(A2,d,9,10)),d.g).i==0;q=!k;if(q){F=new wB;h=new Wrd(a,F);reb((!d.g&&(d.g=new y5d(A2,d,9,10)),d.g),h);cC(C,Rte,F)}} +function eKb(a){$Jb();var b,c,d,e,f,g,h;d=a.f.n;for(g=ci(a.r).a.nc();g.Ob();){f=BD(g.Pb(),111);e=0;if(f.b.Xe((Y9c(),s9c))){e=Edb(ED(f.b.We(s9c)));if(e<0){switch(f.b.Hf().g){case 1:d.d=$wnd.Math.max(d.d,-e);break;case 3:d.a=$wnd.Math.max(d.a,-e);break;case 2:d.c=$wnd.Math.max(d.c,-e);break;case 4:d.b=$wnd.Math.max(d.b,-e);}}}if(tcd(a.u)){b=nfd(f.b,e);h=!BD(a.e.We(b9c),174).Hc((Idd(),zdd));c=false;switch(f.b.Hf().g){case 1:c=b>d.d;d.d=$wnd.Math.max(d.d,b);if(h&&c){d.d=$wnd.Math.max(d.d,d.a);d.a=d.d+e}break;case 3:c=b>d.a;d.a=$wnd.Math.max(d.a,b);if(h&&c){d.a=$wnd.Math.max(d.a,d.d);d.d=d.a+e}break;case 2:c=b>d.c;d.c=$wnd.Math.max(d.c,b);if(h&&c){d.c=$wnd.Math.max(d.b,d.c);d.b=d.c+e}break;case 4:c=b>d.b;d.b=$wnd.Math.max(d.b,b);if(h&&c){d.b=$wnd.Math.max(d.b,d.c);d.c=d.b+e}}}}} +function l3b(a){var b,c,d,e,f,g,h,i,j,k,l;for(j=new olb(a);j.a<j.c.c.length;){i=BD(mlb(j),10);g=BD(vNb(i,(Nyc(),mxc)),163);f=null;switch(g.g){case 1:case 2:f=(Gqc(),Fqc);break;case 3:case 4:f=(Gqc(),Dqc);}if(f){yNb(i,(wtc(),Bsc),(Gqc(),Fqc));f==Dqc?o3b(i,g,(KAc(),HAc)):f==Fqc&&o3b(i,g,(KAc(),IAc))}else{if(fcd(BD(vNb(i,Vxc),98))&&i.j.c.length!=0){b=true;for(l=new olb(i.j);l.a<l.c.c.length;){k=BD(mlb(l),11);if(!(k.j==(Ucd(),zcd)&&k.e.c.length-k.g.c.length>0||k.j==Tcd&&k.e.c.length-k.g.c.length<0)){b=false;break}for(e=new olb(k.g);e.a<e.c.c.length;){c=BD(mlb(e),17);h=BD(vNb(c.d.i,mxc),163);if(h==(Ctc(),ztc)||h==Atc){b=false;break}}for(d=new olb(k.e);d.a<d.c.c.length;){c=BD(mlb(d),17);h=BD(vNb(c.c.i,mxc),163);if(h==(Ctc(),xtc)||h==ytc){b=false;break}}}b&&o3b(i,g,(KAc(),JAc))}}}} +function lJc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;w=0;n=0;for(l=new olb(b.e);l.a<l.c.c.length;){k=BD(mlb(l),10);m=0;h=0;i=c?BD(vNb(k,hJc),19).a:Rie;r=d?BD(vNb(k,iJc),19).a:Rie;j=$wnd.Math.max(i,r);for(t=new olb(k.j);t.a<t.c.c.length;){s=BD(mlb(t),11);u=k.n.b+s.n.b+s.a.b;if(d){for(g=new olb(s.g);g.a<g.c.c.length;){f=BD(mlb(g),17);p=f.d;o=p.i;if(b!=a.a[o.p]){q=$wnd.Math.max(BD(vNb(o,hJc),19).a,BD(vNb(o,iJc),19).a);v=BD(vNb(f,(Nyc(),eyc)),19).a;if(v>=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}if(c){for(g=new olb(s.e);g.a<g.c.c.length;){f=BD(mlb(g),17);p=f.c;o=p.i;if(b!=a.a[o.p]){q=$wnd.Math.max(BD(vNb(o,hJc),19).a,BD(vNb(o,iJc),19).a);v=BD(vNb(f,(Nyc(),eyc)),19).a;if(v>=j&&v>=q){m+=o.n.b+p.n.b+p.a.b-u;++h}}}}}if(h>0){w+=m/h;++n}}if(n>0){b.a=e*w/n;b.g=n}else{b.a=0;b.g=0}} +function oMc(a,b){var c,d,e,f,g,h,i,j,k,l,m;for(e=new olb(a.a.b);e.a<e.c.c.length;){c=BD(mlb(e),29);for(i=new olb(c.a);i.a<i.c.c.length;){h=BD(mlb(i),10);b.j[h.p]=h;b.i[h.p]=b.o==(eMc(),dMc)?Qje:Pje}}Uhb(a.c);g=a.a.b;b.c==(YLc(),WLc)&&(g=JD(g,152)?km(BD(g,152)):JD(g,131)?BD(g,131).a:JD(g,54)?new ov(g):new dv(g));UMc(a.e,b,a.b);Alb(b.p,null);for(f=g.Kc();f.Ob();){c=BD(f.Pb(),29);j=c.a;b.o==(eMc(),dMc)&&(j=JD(j,152)?km(BD(j,152)):JD(j,131)?BD(j,131).a:JD(j,54)?new ov(j):new dv(j));for(m=j.Kc();m.Ob();){l=BD(m.Pb(),10);b.g[l.p]==l&&pMc(a,l,b)}}qMc(a,b);for(d=g.Kc();d.Ob();){c=BD(d.Pb(),29);for(m=new olb(c.a);m.a<m.c.c.length;){l=BD(mlb(m),10);b.p[l.p]=b.p[b.g[l.p].p];if(l==b.g[l.p]){k=Edb(b.i[b.j[l.p].p]);(b.o==(eMc(),dMc)&&k>Qje||b.o==cMc&&k<Pje)&&(b.p[l.p]=Edb(b.p[l.p])+k)}}}a.e.cg()} +function PGb(a,b,c,d){var e,f,g,h,i;h=new LIb(b);rKb(h,d);e=true;if(!!a&&a.Xe((Y9c(),z8c))){f=BD(a.We((Y9c(),z8c)),103);e=f==(ead(),cad)||f==aad||f==bad}hKb(h,false);Hkb(h.e.wf(),new mKb(h,false,e));NJb(h,h.f,(gHb(),dHb),(Ucd(),Acd));NJb(h,h.f,fHb,Rcd);NJb(h,h.g,dHb,Tcd);NJb(h,h.g,fHb,zcd);PJb(h,Acd);PJb(h,Rcd);OJb(h,zcd);OJb(h,Tcd);$Jb();g=h.A.Hc((tdd(),pdd))&&h.B.Hc((Idd(),Ddd))?_Jb(h):null;!!g&&DHb(h.a,g);eKb(h);GJb(h);PKb(h);BJb(h);pKb(h);HKb(h);xKb(h,Acd);xKb(h,Rcd);CJb(h);oKb(h);if(!c){return h.o}cKb(h);LKb(h);xKb(h,zcd);xKb(h,Tcd);i=h.B.Hc((Idd(),Edd));RJb(h,i,Acd);RJb(h,i,Rcd);SJb(h,i,zcd);SJb(h,i,Tcd);MAb(new YAb(null,new Kub(new $ib(h.i),0)),new TJb);MAb(JAb(new YAb(null,ci(h.r).a.oc()),new VJb),new XJb);dKb(h);h.e.uf(h.o);MAb(new YAb(null,ci(h.r).a.oc()),new fKb);return h.o} +function JVb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.a<d.c.c.length;){b=BD(mlb(d),81);j=$wnd.Math.min(j,b.d.f.g.c+b.e.a)}n=new Psb;for(g=new olb(a.a.a);g.a<g.c.c.length;){f=BD(mlb(g),189);f.i=j;f.e==0&&(Gsb(n,f,n.c.b,n.c),true)}while(n.b!=0){f=BD(n.b==0?null:(sCb(n.b!=0),Nsb(n,n.a.a)),189);e=f.f.g.c;for(m=f.a.a.ec().Kc();m.Ob();){k=BD(m.Pb(),81);p=f.i+k.e.a;k.d.g||k.g.c<p?(k.o=p):(k.o=k.g.c)}e-=f.f.o;f.b+=e;a.c==(ead(),bad)||a.c==_9c?(f.c+=e):(f.c-=e);for(l=f.a.a.ec().Kc();l.Ob();){k=BD(l.Pb(),81);for(i=k.f.Kc();i.Ob();){h=BD(i.Pb(),81);fad(a.c)?(o=a.f.ef(k,h)):(o=a.f.ff(k,h));h.d.i=$wnd.Math.max(h.d.i,k.o+k.g.b+o-h.e.a);h.k||(h.d.i=$wnd.Math.max(h.d.i,h.g.c-h.e.a));--h.d.e;h.d.e==0&&Dsb(n,h.d)}}}for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),81);b.g.c=b.o}} +function ELb(a){var b,c,d,e,f,g,h,i;h=a.b;b=a.a;switch(BD(vNb(a,(fFb(),bFb)),427).g){case 0:Okb(h,new tpb(new bMb));break;case 1:default:Okb(h,new tpb(new gMb));}switch(BD(vNb(a,_Eb),428).g){case 1:Okb(h,new YLb);Okb(h,new lMb);Okb(h,new GLb);break;case 0:default:Okb(h,new YLb);Okb(h,new RLb);}switch(BD(vNb(a,dFb),250).g){case 0:i=new FMb;break;case 1:i=new zMb;break;case 2:i=new CMb;break;case 3:i=new wMb;break;case 5:i=new JMb(new CMb);break;case 4:i=new JMb(new zMb);break;case 7:i=new tMb(new JMb(new zMb),new JMb(new CMb));break;case 8:i=new tMb(new JMb(new wMb),new JMb(new CMb));break;case 6:default:i=new JMb(new wMb);}for(g=new olb(h);g.a<g.c.c.length;){f=BD(mlb(g),167);d=0;e=0;c=new vgd(meb(d),meb(e));while(gNb(b,f,d,e)){c=BD(i.Ce(c,f),46);d=BD(c.a,19).a;e=BD(c.b,19).a}dNb(b,f,d,e)}} +function qQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;f=a.f.b;m=f.a;k=f.b;o=a.e.g;n=a.e.f;_kd(a.e,f.a,f.b);w=m/o;A=k/n;for(j=new Fyd(Kkd(a.e));j.e!=j.i.gc();){i=BD(Dyd(j),137);dld(i,i.i*w);eld(i,i.j*A)}for(s=new Fyd(Yod(a.e));s.e!=s.i.gc();){r=BD(Dyd(s),118);u=r.i;v=r.j;u>0&&dld(r,u*w);v>0&&eld(r,v*A)}stb(a.b,new CQb);b=new Rkb;for(h=new nib((new eib(a.c)).a);h.b;){g=lib(h);d=BD(g.cd(),79);c=BD(g.dd(),395).a;e=itd(d,false,false);l=oQb(jtd(d),ofd(e),c);ifd(l,e);t=ktd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.a.a.c,8)),c)}}for(q=new nib((new eib(a.d)).a);q.b;){p=lib(q);d=BD(p.cd(),79);c=BD(p.dd(),395).a;e=itd(d,false,false);l=oQb(ltd(d),w7c(ofd(e)),c);l=w7c(l);ifd(l,e);t=mtd(d);if(!!t&&Jkb(b,t,0)==-1){b.c[b.c.length]=t;pQb(t,(sCb(l.b!=0),BD(l.c.b.c,8)),c)}}} +function _Vc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;if(c.c.length!=0){o=new Rkb;for(n=new olb(c);n.a<n.c.c.length;){m=BD(mlb(n),33);Ekb(o,new f7c(m.i,m.j))}d.n&&!!b&&Tdd(d,i6d(b),(pgd(),mgd));while(CVc(a,c)){AVc(a,c,false)}d.n&&!!b&&Tdd(d,i6d(b),(pgd(),mgd));h=0;i=0;e=null;if(c.c.length!=0){e=(tCb(0,c.c.length),BD(c.c[0],33));h=e.i-(tCb(0,o.c.length),BD(o.c[0],8)).a;i=e.j-(tCb(0,o.c.length),BD(o.c[0],8)).b}g=$wnd.Math.sqrt(h*h+i*i);l=cVc(c);f=1;while(l.a.gc()!=0){for(k=l.a.ec().Kc();k.Ob();){j=BD(k.Pb(),33);p=a.f;q=p.i+p.g/2;r=p.j+p.f/2;s=j.i+j.g/2;t=j.j+j.f/2;u=s-q;v=t-r;w=$wnd.Math.sqrt(u*u+v*v);A=u/w;B=v/w;dld(j,j.i+A*g);eld(j,j.j+B*g)}d.n&&!!b&&Tdd(d,i6d(b),(pgd(),mgd));l=cVc(new Tkb(l));++f}!!a.a&&a.a.lg(new Tkb(l));d.n&&!!b&&Tdd(d,i6d(b),(pgd(),mgd));_Vc(a,b,new Tkb(l),d)}} +function $2b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;p=a.n;q=a.o;m=a.d;l=Edb(ED(pBc(a,(Nyc(),iyc))));if(b){k=l*(b.gc()-1);n=0;for(i=b.Kc();i.Ob();){g=BD(i.Pb(),10);k+=g.o.a;n=$wnd.Math.max(n,g.o.b)}r=p.a-(k-q.a)/2;f=p.b-m.d+n;d=q.a/(b.gc()+1);e=d;for(h=b.Kc();h.Ob();){g=BD(h.Pb(),10);g.n.a=r;g.n.b=f-g.o.b;r+=g.o.a+l;j=Y2b(g);j.n.a=g.o.a/2-j.a.a;j.n.b=g.o.b;o=BD(vNb(g,(wtc(),vsc)),11);if(o.e.c.length+o.g.c.length==1){o.n.a=e-o.a.a;o.n.b=0;F0b(o,a)}e+=d}}if(c){k=l*(c.gc()-1);n=0;for(i=c.Kc();i.Ob();){g=BD(i.Pb(),10);k+=g.o.a;n=$wnd.Math.max(n,g.o.b)}r=p.a-(k-q.a)/2;f=p.b+q.b+m.a-n;d=q.a/(c.gc()+1);e=d;for(h=c.Kc();h.Ob();){g=BD(h.Pb(),10);g.n.a=r;g.n.b=f;r+=g.o.a+l;j=Y2b(g);j.n.a=g.o.a/2-j.a.a;j.n.b=0;o=BD(vNb(g,(wtc(),vsc)),11);if(o.e.c.length+o.g.c.length==1){o.n.a=e-o.a.a;o.n.b=q.b;F0b(o,a)}e+=d}}} +function q7b(a,b){var c,d,e,f,g,h;if(!BD(vNb(b,(wtc(),Ksc)),21).Hc((Orc(),Hrc))){return}for(h=new olb(b.a);h.a<h.c.c.length;){f=BD(mlb(h),10);if(f.k==(j0b(),h0b)){e=BD(vNb(f,(Nyc(),txc)),142);a.c=$wnd.Math.min(a.c,f.n.a-e.b);a.a=$wnd.Math.max(a.a,f.n.a+f.o.a+e.c);a.d=$wnd.Math.min(a.d,f.n.b-e.d);a.b=$wnd.Math.max(a.b,f.n.b+f.o.b+e.a)}}for(g=new olb(b.a);g.a<g.c.c.length;){f=BD(mlb(g),10);if(f.k!=(j0b(),h0b)){switch(f.k.g){case 2:d=BD(vNb(f,(Nyc(),mxc)),163);if(d==(Ctc(),ytc)){f.n.a=a.c-10;p7b(f,new x7b).Jb(new A7b(f));break}if(d==Atc){f.n.a=a.a+10;p7b(f,new D7b).Jb(new G7b(f));break}c=BD(vNb(f,Osc),303);if(c==(esc(),dsc)){o7b(f).Jb(new J7b(f));f.n.b=a.d-10;break}if(c==bsc){o7b(f).Jb(new M7b(f));f.n.b=a.b+10;break}break;default:throw vbb(new Wdb('The node type '+f.k+' is not supported by the '+zS));}}}} +function Y1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q;i=new f7c(d.i+d.g/2,d.j+d.f/2);n=M1b(d);o=BD(hkd(b,(Nyc(),Vxc)),98);q=BD(hkd(d,$xc),61);if(!hCd(gkd(d),Uxc)){d.i==0&&d.j==0?(p=0):(p=kfd(d,q));jkd(d,Uxc,p)}j=new f7c(b.g,b.f);e=Z$b(d,o,q,n,j,i,new f7c(d.g,d.f),BD(vNb(c,Lwc),103),c);yNb(e,(wtc(),$sc),d);f=BD(Ikb(e.j,0),11);E0b(f,W1b(d));yNb(e,Yxc,(rcd(),pqb(pcd)));l=BD(hkd(b,Yxc),174).Hc(ncd);for(h=new Fyd((!d.n&&(d.n=new cUd(D2,d,1,7)),d.n));h.e!=h.i.gc();){g=BD(Dyd(h),137);if(!Ccb(DD(hkd(g,Jxc)))&&!!g.a){m=Z1b(g);Ekb(f.f,m);if(!l){k=0;tcd(BD(hkd(b,Yxc),21))&&(k=mfd(new f7c(g.i,g.j),new f7c(g.g,g.f),new f7c(d.g,d.f),0,q));switch(q.g){case 2:case 4:m.o.a=k;break;case 1:case 3:m.o.b=k;}}}}yNb(e,tyc,ED(hkd(Xod(b),tyc)));yNb(e,uyc,ED(hkd(Xod(b),uyc)));yNb(e,ryc,ED(hkd(Xod(b),ryc)));Ekb(c.a,e);Rhb(a.a,d,e)} +function qUc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(c,'Processor arrange level',1);k=0;mmb();ktb(b,new Wsd((mTc(),ZSc)));f=b.b;h=Jsb(b,b.b);j=true;while(j&&h.b.b!=h.d.a){r=BD(Ysb(h),86);BD(vNb(r,ZSc),19).a==0?--f:(j=false)}v=new Jib(b,0,f);g=new Qsb(v);v=new Jib(b,f,b.b);i=new Qsb(v);if(g.b==0){for(o=Jsb(i,0);o.b!=o.d.c;){n=BD(Xsb(o),86);yNb(n,eTc,meb(k++))}}else{l=g.b;for(u=Jsb(g,0);u.b!=u.d.c;){t=BD(Xsb(u),86);yNb(t,eTc,meb(k++));d=URc(t);qUc(a,d,Udd(c,1/l|0));ktb(d,tmb(new Wsd(eTc)));m=new Psb;for(s=Jsb(d,0);s.b!=s.d.c;){r=BD(Xsb(s),86);for(q=Jsb(t.d,0);q.b!=q.d.c;){p=BD(Xsb(q),188);p.c==r&&(Gsb(m,p,m.c.b,m.c),true)}}Osb(t.d);ye(t.d,m);h=Jsb(i,i.b);e=t.d.b;j=true;while(0<e&&j&&h.b.b!=h.d.a){r=BD(Ysb(h),86);if(BD(vNb(r,ZSc),19).a==0){yNb(r,eTc,meb(k++));--e;Zsb(h)}else{j=false}}}}Qdd(c)} +function _8b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;Odd(b,'Inverted port preprocessing',1);k=a.b;j=new Bib(k,0);c=null;t=new Rkb;while(j.b<j.d.gc()){s=c;c=(sCb(j.b<j.d.gc()),BD(j.d.Xb(j.c=j.b++),29));for(n=new olb(t);n.a<n.c.c.length;){l=BD(mlb(n),10);$_b(l,s)}t.c=KC(SI,Uhe,1,0,5,1);for(o=new olb(c.a);o.a<o.c.c.length;){l=BD(mlb(o),10);if(l.k!=(j0b(),h0b)){continue}if(!fcd(BD(vNb(l,(Nyc(),Vxc)),98))){continue}for(r=X_b(l,(KAc(),HAc),(Ucd(),zcd)).Kc();r.Ob();){p=BD(r.Pb(),11);i=p.e;h=BD(Qkb(i,KC(AQ,jne,17,i.c.length,0,1)),474);for(e=h,f=0,g=e.length;f<g;++f){d=e[f];Z8b(a,p,d,t)}}for(q=X_b(l,IAc,Tcd).Kc();q.Ob();){p=BD(q.Pb(),11);i=p.g;h=BD(Qkb(i,KC(AQ,jne,17,i.c.length,0,1)),474);for(e=h,f=0,g=e.length;f<g;++f){d=e[f];$8b(a,p,d,t)}}}}for(m=new olb(t);m.a<m.c.c.length;){l=BD(mlb(m),10);$_b(l,c)}Qdd(b)} +function _1b(a,b,c,d,e,f){var g,h,i,j,k,l;j=new H0b;tNb(j,b);G0b(j,BD(hkd(b,(Nyc(),$xc)),61));yNb(j,(wtc(),$sc),b);F0b(j,c);l=j.o;l.a=b.g;l.b=b.f;k=j.n;k.a=b.i;k.b=b.j;Rhb(a.a,b,j);g=FAb(NAb(LAb(new YAb(null,(!b.e&&(b.e=new y5d(B2,b,7,4)),new Kub(b.e,16))),new m2b),new e2b),new o2b(b));g||(g=FAb(NAb(LAb(new YAb(null,(!b.d&&(b.d=new y5d(B2,b,8,5)),new Kub(b.d,16))),new q2b),new g2b),new s2b(b)));g||(g=FAb(new YAb(null,(!b.e&&(b.e=new y5d(B2,b,7,4)),new Kub(b.e,16))),new u2b));yNb(j,Nsc,(Bcb(),g?true:false));e_b(j,f,e,BD(hkd(b,Txc),8));for(i=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);!Ccb(DD(hkd(h,Jxc)))&&!!h.a&&Ekb(j.f,Z1b(h))}switch(e.g){case 2:case 1:(j.j==(Ucd(),Acd)||j.j==Rcd)&&d.Fc((Orc(),Lrc));break;case 4:case 3:(j.j==(Ucd(),zcd)||j.j==Tcd)&&d.Fc((Orc(),Lrc));}return j} +function nQc(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t;m=null;d==(FQc(),DQc)?(m=b):d==EQc&&(m=c);for(p=m.a.ec().Kc();p.Ob();){o=BD(p.Pb(),11);q=l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])).b;t=new Tqb;h=new Tqb;for(j=new b1b(o.b);llb(j.a)||llb(j.b);){i=BD(llb(j.a)?mlb(j.a):mlb(j.b),17);if(Ccb(DD(vNb(i,(wtc(),ltc))))!=e){continue}if(Jkb(f,i,0)!=-1){i.d==o?(r=i.c):(r=i.d);s=l7c(OC(GC(m1,1),nie,8,0,[r.i.n,r.n,r.a])).b;if($wnd.Math.abs(s-q)<0.2){continue}s<q?b.a._b(r)?Qqb(t,new vgd(DQc,i)):Qqb(t,new vgd(EQc,i)):b.a._b(r)?Qqb(h,new vgd(DQc,i)):Qqb(h,new vgd(EQc,i))}}if(t.a.gc()>1){n=new ZQc(o,t,d);reb(t,new PQc(a,n));g.c[g.c.length]=n;for(l=t.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}if(h.a.gc()>1){n=new ZQc(o,h,d);reb(h,new RQc(a,n));g.c[g.c.length]=n;for(l=h.a.ec().Kc();l.Ob();){k=BD(l.Pb(),46);Lkb(f,k.b)}}}} +function $Wc(a){r4c(a,new E3c(L3c(P3c(M3c(O3c(N3c(new R3c,sre),'ELK Radial'),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new bXc),sre)));p4c(a,sre,uqe,Ksd(UWc));p4c(a,sre,wme,Ksd(XWc));p4c(a,sre,Fme,Ksd(NWc));p4c(a,sre,Tme,Ksd(OWc));p4c(a,sre,Eme,Ksd(PWc));p4c(a,sre,Gme,Ksd(MWc));p4c(a,sre,Dme,Ksd(QWc));p4c(a,sre,Hme,Ksd(TWc));p4c(a,sre,ore,Ksd(KWc));p4c(a,sre,nre,Ksd(LWc));p4c(a,sre,rre,Ksd(RWc));p4c(a,sre,lre,Ksd(SWc));p4c(a,sre,mre,Ksd(VWc));p4c(a,sre,pre,Ksd(WWc));p4c(a,sre,qre,Ksd(YWc))} +function LIb(a){var b;this.r=Cy(new OIb,new SIb);this.b=new Rpb(BD(Qb(F1),290));this.p=new Rpb(BD(Qb(F1),290));this.i=new Rpb(BD(Qb(DN),290));this.e=a;this.o=new g7c(a.rf());this.D=a.Df()||Ccb(DD(a.We((Y9c(),M8c))));this.A=BD(a.We((Y9c(),Y8c)),21);this.B=BD(a.We(b9c),21);this.q=BD(a.We(t9c),98);this.u=BD(a.We(x9c),21);if(!ucd(this.u)){throw vbb(new y2c('Invalid port label placement: '+this.u))}this.v=Ccb(DD(a.We(z9c)));this.j=BD(a.We(W8c),21);if(!Jbd(this.j)){throw vbb(new y2c('Invalid node label placement: '+this.j))}this.n=BD(bgd(a,U8c),116);this.k=Edb(ED(bgd(a,Q9c)));this.d=Edb(ED(bgd(a,P9c)));this.w=Edb(ED(bgd(a,X9c)));this.s=Edb(ED(bgd(a,R9c)));this.t=Edb(ED(bgd(a,S9c)));this.C=BD(bgd(a,V9c),142);this.c=2*this.d;b=!this.B.Hc((Idd(),zdd));this.f=new mIb(0,b,0);this.g=new mIb(1,b,0);lIb(this.f,(gHb(),eHb),this.g)} +function Lgd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;t=0;o=0;n=0;m=1;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);m+=sr(new Sr(ur(_sd(q).a.Kc(),new Sq)));B=q.g;o=$wnd.Math.max(o,B);l=q.f;n=$wnd.Math.max(n,l);t+=B*l}p=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i;g=t+2*d*d*m*p;f=$wnd.Math.sqrt(g);i=$wnd.Math.max(f*c,o);h=$wnd.Math.max(f/c,n);for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);C=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(i-q.g);D=e.b+(Cub(b,26)*ike+Cub(b,27)*jke)*(h-q.f);dld(q,C);eld(q,D)}A=i+(e.b+e.c);w=h+(e.d+e.a);for(v=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));v.e!=v.i.gc();){u=BD(Dyd(v),33);for(k=new Sr(ur(_sd(u).a.Kc(),new Sq));Qr(k);){j=BD(Rr(k),79);Pld(j)||Kgd(j,b,A,w)}}A+=e.b+e.c;w+=e.d+e.a;Afd(a,A,w,false,true)} +function Jcb(a){var b,c,d,e,f,g,h,i,j,k,l;if(a==null){throw vbb(new Oeb(Xhe))}j=a;f=a.length;i=false;if(f>0){b=(BCb(0,a.length),a.charCodeAt(0));if(b==45||b==43){a=a.substr(1);--f;i=b==45}}if(f==0){throw vbb(new Oeb(Oje+j+'"'))}while(a.length>0&&(BCb(0,a.length),a.charCodeAt(0)==48)){a=a.substr(1);--f}if(f>(Neb(),Leb)[10]){throw vbb(new Oeb(Oje+j+'"'))}for(e=0;e<f;e++){if(Zcb((BCb(e,a.length),a.charCodeAt(e)))==-1){throw vbb(new Oeb(Oje+j+'"'))}}l=0;g=Jeb[10];k=Keb[10];h=Jbb(Meb[10]);c=true;d=f%g;if(d>0){l=-parseInt(a.substr(0,d),10);a=a.substr(d);f-=d;c=false}while(f>=g){d=parseInt(a.substr(0,g),10);a=a.substr(g);f-=g;if(c){c=false}else{if(ybb(l,h)<0){throw vbb(new Oeb(Oje+j+'"'))}l=Ibb(l,k)}l=Qbb(l,d)}if(ybb(l,0)>0){throw vbb(new Oeb(Oje+j+'"'))}if(!i){l=Jbb(l);if(ybb(l,0)<0){throw vbb(new Oeb(Oje+j+'"'))}}return l} +function Z6d(a,b){X6d();var c,d,e,f,g,h,i;this.a=new a7d(this);this.b=a;this.c=b;this.f=c2d(q1d((O6d(),M6d),b));if(this.f.dc()){if((h=t1d(M6d,a))==b){this.e=true;this.d=new Rkb;this.f=new oFd;this.f.Fc(Ewe);BD(V1d(p1d(M6d,bKd(a)),''),26)==a&&this.f.Fc(u1d(M6d,bKd(a)));for(e=g1d(M6d,a).Kc();e.Ob();){d=BD(e.Pb(),170);switch($1d(q1d(M6d,d))){case 4:{this.d.Fc(d);break}case 5:{this.f.Gc(c2d(q1d(M6d,d)));break}}}}else{Q6d();if(BD(b,66).Oj()){this.e=true;this.f=null;this.d=new Rkb;for(g=0,i=(a.i==null&&TKd(a),a.i).length;g<i;++g){d=(c=(a.i==null&&TKd(a),a.i),g>=0&&g<c.length?c[g]:null);for(f=_1d(q1d(M6d,d));f;f=_1d(q1d(M6d,f))){f==b&&this.d.Fc(d)}}}else if($1d(q1d(M6d,b))==1&&!!h){this.f=null;this.d=(m8d(),l8d)}else{this.f=null;this.e=true;this.d=(mmb(),new anb(b))}}}else{this.e=$1d(q1d(M6d,b))==5;this.f.Fb(W6d)&&(this.f=W6d)}} +function zKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;c=0;d=yKb(a,b);m=a.s;n=a.t;for(j=BD(BD(Qc(a.r,b),21),84).Kc();j.Ob();){i=BD(j.Pb(),111);if(!i.c||i.c.d.c.length<=0){continue}o=i.b.rf();h=i.b.Xe((Y9c(),s9c))?Edb(ED(i.b.We(s9c))):0;k=i.c;l=k.i;l.b=(g=k.n,k.e.a+g.b+g.c);l.a=(f=k.n,k.e.b+f.d+f.a);switch(b.g){case 1:l.c=i.a?(o.a-l.b)/2:o.a+m;l.d=o.b+h+d;$Hb(k,(NHb(),KHb));_Hb(k,(EIb(),DIb));break;case 3:l.c=i.a?(o.a-l.b)/2:o.a+m;l.d=-h-d-l.a;$Hb(k,(NHb(),KHb));_Hb(k,(EIb(),BIb));break;case 2:l.c=-h-d-l.b;if(i.a){e=a.v?l.a:BD(Ikb(k.d,0),181).rf().b;l.d=(o.b-e)/2}else{l.d=o.b+n}$Hb(k,(NHb(),MHb));_Hb(k,(EIb(),CIb));break;case 4:l.c=o.a+h+d;if(i.a){e=a.v?l.a:BD(Ikb(k.d,0),181).rf().b;l.d=(o.b-e)/2}else{l.d=o.b+n}$Hb(k,(NHb(),LHb));_Hb(k,(EIb(),CIb));}(b==(Ucd(),Acd)||b==Rcd)&&(c=$wnd.Math.max(c,l.a))}c>0&&(BD(Mpb(a.b,b),124).a.b=c)} +function b3b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(b,'Comment pre-processing',1);c=0;i=new olb(a.a);while(i.a<i.c.c.length){h=BD(mlb(i),10);if(Ccb(DD(vNb(h,(Nyc(),pwc))))){++c;e=0;d=null;j=null;for(o=new olb(h.j);o.a<o.c.c.length;){m=BD(mlb(o),11);e+=m.e.c.length+m.g.c.length;if(m.e.c.length==1){d=BD(Ikb(m.e,0),17);j=d.c}if(m.g.c.length==1){d=BD(Ikb(m.g,0),17);j=d.d}}if(e==1&&j.e.c.length+j.g.c.length==1&&!Ccb(DD(vNb(j.i,pwc)))){c3b(h,d,j,j.i);nlb(i)}else{r=new Rkb;for(n=new olb(h.j);n.a<n.c.c.length;){m=BD(mlb(n),11);for(l=new olb(m.g);l.a<l.c.c.length;){k=BD(mlb(l),17);k.d.g.c.length==0||(r.c[r.c.length]=k,true)}for(g=new olb(m.e);g.a<g.c.c.length;){f=BD(mlb(g),17);f.c.e.c.length==0||(r.c[r.c.length]=f,true)}}for(q=new olb(r);q.a<q.c.c.length;){p=BD(mlb(q),17);PZb(p,true)}}}}b.n&&Sdd(b,'Found '+c+' comment boxes');Qdd(b)} +function f9b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p;m=Edb(ED(vNb(a,(Nyc(),tyc))));n=Edb(ED(vNb(a,uyc)));l=Edb(ED(vNb(a,ryc)));h=a.o;f=BD(Ikb(a.j,0),11);g=f.n;p=d9b(f,l);if(!p){return}if(b.Hc((rcd(),ncd))){switch(BD(vNb(a,(wtc(),Hsc)),61).g){case 1:p.c=(h.a-p.b)/2-g.a;p.d=n;break;case 3:p.c=(h.a-p.b)/2-g.a;p.d=-n-p.a;break;case 2:if(c&&f.e.c.length==0&&f.g.c.length==0){k=d?p.a:BD(Ikb(f.f,0),70).o.b;p.d=(h.b-k)/2-g.b}else{p.d=h.b+n-g.b}p.c=-m-p.b;break;case 4:if(c&&f.e.c.length==0&&f.g.c.length==0){k=d?p.a:BD(Ikb(f.f,0),70).o.b;p.d=(h.b-k)/2-g.b}else{p.d=h.b+n-g.b}p.c=m;}}else if(b.Hc(pcd)){switch(BD(vNb(a,(wtc(),Hsc)),61).g){case 1:case 3:p.c=g.a+m;break;case 2:case 4:if(c&&!f.c){k=d?p.a:BD(Ikb(f.f,0),70).o.b;p.d=(h.b-k)/2-g.b}else{p.d=g.b+n}}}e=p.d;for(j=new olb(f.f);j.a<j.c.c.length;){i=BD(mlb(j),70);o=i.n;o.a=p.c;o.b=e;e+=i.o.b+l}} +function eae(){rEd(Q9,new Lae);rEd(S9,new qbe);rEd(T9,new Xbe);rEd(U9,new Cce);rEd(ZI,new Oce);rEd(GC(SD,1),new Rce);rEd(wI,new Uce);rEd(xI,new Xce);rEd(ZI,new hae);rEd(ZI,new kae);rEd(ZI,new nae);rEd(BI,new qae);rEd(ZI,new tae);rEd(yK,new wae);rEd(yK,new zae);rEd(ZI,new Cae);rEd(FI,new Fae);rEd(ZI,new Iae);rEd(ZI,new Oae);rEd(ZI,new Rae);rEd(ZI,new Uae);rEd(ZI,new Xae);rEd(GC(SD,1),new $ae);rEd(ZI,new bbe);rEd(ZI,new ebe);rEd(yK,new hbe);rEd(yK,new kbe);rEd(ZI,new nbe);rEd(JI,new tbe);rEd(ZI,new wbe);rEd(MI,new zbe);rEd(ZI,new Cbe);rEd(ZI,new Fbe);rEd(ZI,new Ibe);rEd(ZI,new Lbe);rEd(yK,new Obe);rEd(yK,new Rbe);rEd(ZI,new Ube);rEd(ZI,new $be);rEd(ZI,new bce);rEd(ZI,new ece);rEd(ZI,new hce);rEd(ZI,new kce);rEd(UI,new nce);rEd(ZI,new qce);rEd(ZI,new tce);rEd(ZI,new wce);rEd(UI,new zce);rEd(MI,new Fce);rEd(ZI,new Ice);rEd(JI,new Lce)} +function Bmd(b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;n=c.length;if(n>0){j=(BCb(0,c.length),c.charCodeAt(0));if(j!=64){if(j==37){m=c.lastIndexOf('%');k=false;if(m!=0&&(m==n-1||(k=(BCb(m+1,c.length),c.charCodeAt(m+1)==46)))){h=c.substr(1,m-1);u=dfb('%',h)?null:QEd(h);e=0;if(k){try{e=Icb(c.substr(m+2),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){i=a;throw vbb(new rFd(i))}else throw vbb(a)}}for(r=pRd(b.Wg());r.Ob();){p=MRd(r);if(JD(p,510)){f=BD(p,590);t=f.d;if((u==null?t==null:dfb(u,t))&&e--==0){return f}}}return null}}l=c.lastIndexOf('.');o=l==-1?c:c.substr(0,l);d=0;if(l!=-1){try{d=Icb(c.substr(l+1),Rie,Ohe)}catch(a){a=ubb(a);if(JD(a,127)){o=c}else throw vbb(a)}}o=dfb('%',o)?null:QEd(o);for(q=pRd(b.Wg());q.Ob();){p=MRd(q);if(JD(p,191)){g=BD(p,191);s=g.ne();if((o==null?s==null:dfb(o,s))&&d--==0){return g}}}return null}}return rid(b,c)} +function f6b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;w=new Rkb;for(o=new olb(a.b);o.a<o.c.c.length;){n=BD(mlb(o),29);for(r=new olb(n.a);r.a<r.c.c.length;){p=BD(mlb(r),10);if(p.k!=(j0b(),e0b)){continue}if(!wNb(p,(wtc(),Gsc))){continue}s=null;u=null;t=null;for(C=new olb(p.j);C.a<C.c.c.length;){B=BD(mlb(C),11);switch(B.j.g){case 4:s=B;break;case 2:u=B;break;default:t=B;}}v=BD(Ikb(t.g,0),17);k=new t7c(v.a);j=new g7c(t.n);P6c(j,p.n);l=Jsb(k,0);Vsb(l,j);A=w7c(v.a);m=new g7c(t.n);P6c(m,p.n);Gsb(A,m,A.c.b,A.c);D=BD(vNb(p,Gsc),10);F=BD(Ikb(D.j,0),11);i=BD(Qkb(s.e,KC(AQ,jne,17,0,0,1)),474);for(d=i,f=0,h=d.length;f<h;++f){b=d[f];RZb(b,F);o7c(b.a,b.a.b,k)}i=k_b(u.g);for(c=i,e=0,g=c.length;e<g;++e){b=c[e];QZb(b,F);o7c(b.a,0,A)}QZb(v,null);RZb(v,null);w.c[w.c.length]=p}}for(q=new olb(w);q.a<q.c.c.length;){p=BD(mlb(q),10);$_b(p,null)}} +function lgb(){lgb=ccb;var a,b,c;new sgb(1,0);new sgb(10,0);new sgb(0,0);dgb=KC(bJ,nie,240,11,0,1);egb=KC(TD,$ie,25,100,15,1);fgb=OC(GC(UD,1),Vje,25,15,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,2384185791015625]);ggb=KC(WD,oje,25,fgb.length,15,1);hgb=OC(GC(UD,1),Vje,25,15,[1,10,100,_ie,10000,Wje,1000000,10000000,100000000,Jje,10000000000,100000000000,1000000000000,10000000000000,100000000000000,1000000000000000,10000000000000000]);igb=KC(WD,oje,25,hgb.length,15,1);jgb=KC(bJ,nie,240,11,0,1);a=0;for(;a<jgb.length;a++){dgb[a]=new sgb(a,0);jgb[a]=new sgb(0,a);egb[a]=48}for(;a<egb.length;a++){egb[a]=48}for(c=0;c<ggb.length;c++){ggb[c]=ugb(fgb[c])}for(b=0;b<igb.length;b++){igb[b]=ugb(hgb[b])}Dhb()} +function zrb(){function e(){this.obj=this.createObject()} +;e.prototype.createObject=function(a){return Object.create(null)};e.prototype.get=function(a){return this.obj[a]};e.prototype.set=function(a,b){this.obj[a]=b};e.prototype[hke]=function(a){delete this.obj[a]};e.prototype.keys=function(){return Object.getOwnPropertyNames(this.obj)};e.prototype.entries=function(){var b=this.keys();var c=this;var d=0;return {next:function(){if(d>=b.length)return {done:true};var a=b[d++];return {value:[a,c.get(a)],done:false}}}};if(!xrb()){e.prototype.createObject=function(){return {}};e.prototype.get=function(a){return this.obj[':'+a]};e.prototype.set=function(a,b){this.obj[':'+a]=b};e.prototype[hke]=function(a){delete this.obj[':'+a]};e.prototype.keys=function(){var a=[];for(var b in this.obj){b.charCodeAt(0)==58&&a.push(b.substring(1))}return a}}return e} +function cde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;l=a.length*8;if(l==0){return ''}h=l%24;n=l/24|0;m=h!=0?n+1:n;f=null;f=KC(TD,$ie,25,m*4,15,1);j=0;k=0;b=0;c=0;d=0;g=0;e=0;for(i=0;i<n;i++){b=a[e++];c=a[e++];d=a[e++];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;q=(d&-128)==0?d>>6<<24>>24:(d>>6^252)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2|q];f[g++]=_ce[d&63]}if(h==8){b=a[e];j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[j<<4];f[g++]=61;f[g++]=61}else if(h==16){b=a[e];c=a[e+1];k=(c&15)<<24>>24;j=(b&3)<<24>>24;o=(b&-128)==0?b>>2<<24>>24:(b>>2^192)<<24>>24;p=(c&-128)==0?c>>4<<24>>24:(c>>4^240)<<24>>24;f[g++]=_ce[o];f[g++]=_ce[p|j<<4];f[g++]=_ce[k<<2];f[g++]=61}return zfb(f,0,f.length)} +function mB(a,b){var c,d,e,f,g,h,i;a.e==0&&a.p>0&&(a.p=-(a.p-1));a.p>Rie&&dB(b,a.p-nje);g=b.q.getDate();ZA(b,1);a.k>=0&&aB(b,a.k);if(a.c>=0){ZA(b,a.c)}else if(a.k>=0){i=new fB(b.q.getFullYear()-nje,b.q.getMonth(),35);d=35-i.q.getDate();ZA(b,$wnd.Math.min(d,g))}else{ZA(b,g)}a.f<0&&(a.f=b.q.getHours());a.b>0&&a.f<12&&(a.f+=12);$A(b,a.f==24&&a.g?0:a.f);a.j>=0&&_A(b,a.j);a.n>=0&&bB(b,a.n);a.i>=0&&cB(b,wbb(Ibb(Abb(Cbb(b.q.getTime()),_ie),_ie),a.i));if(a.a){e=new eB;dB(e,e.q.getFullYear()-nje-80);Gbb(Cbb(b.q.getTime()),Cbb(e.q.getTime()))&&dB(b,e.q.getFullYear()-nje+100)}if(a.d>=0){if(a.c==-1){c=(7+a.d-b.q.getDay())%7;c>3&&(c-=7);h=b.q.getMonth();ZA(b,b.q.getDate()+c);b.q.getMonth()!=h&&ZA(b,b.q.getDate()+(c>0?-7:7))}else{if(b.q.getDay()!=a.d){return false}}}if(a.o>Rie){f=b.q.getTimezoneOffset();cB(b,wbb(Cbb(b.q.getTime()),(a.o-f)*60*_ie))}return true} +function z2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=vNb(b,(wtc(),$sc));if(!JD(e,239)){return}o=BD(e,33);p=b.e;m=new g7c(b.c);f=b.d;m.a+=f.b;m.b+=f.d;u=BD(hkd(o,(Nyc(),Ixc)),174);if(uqb(u,(Idd(),Add))){n=BD(hkd(o,Kxc),116);w_b(n,f.a);z_b(n,f.d);x_b(n,f.b);y_b(n,f.c)}c=new Rkb;for(k=new olb(b.a);k.a<k.c.c.length;){i=BD(mlb(k),10);if(JD(vNb(i,$sc),239)){A2b(i,m)}else if(JD(vNb(i,$sc),186)&&!p){d=BD(vNb(i,$sc),118);s=b_b(b,i,d.g,d.f);bld(d,s.a,s.b)}for(r=new olb(i.j);r.a<r.c.c.length;){q=BD(mlb(r),11);MAb(JAb(new YAb(null,new Kub(q.g,16)),new G2b(i)),new I2b(c))}}if(p){for(r=new olb(p.j);r.a<r.c.c.length;){q=BD(mlb(r),11);MAb(JAb(new YAb(null,new Kub(q.g,16)),new K2b(p)),new M2b(c))}}t=BD(hkd(o,Swc),218);for(h=new olb(c);h.a<h.c.c.length;){g=BD(mlb(h),17);y2b(g,t,m)}B2b(b);for(j=new olb(b.a);j.a<j.c.c.length;){i=BD(mlb(j),10);l=i.e;!!l&&z2b(a,l)}} +function xSb(a){r4c(a,new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c,ume),'ELK Force'),'Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported.'),new ASb),ume),qqb((Csd(),zsd),OC(GC(O3,1),Kie,237,0,[xsd])))));p4c(a,ume,vme,meb(1));p4c(a,ume,wme,80);p4c(a,ume,xme,5);p4c(a,ume,_le,tme);p4c(a,ume,yme,meb(1));p4c(a,ume,zme,(Bcb(),true));p4c(a,ume,ame,lSb);p4c(a,ume,Ame,Ksd(dSb));p4c(a,ume,Bme,Ksd(mSb));p4c(a,ume,Cme,false);p4c(a,ume,Dme,Ksd(jSb));p4c(a,ume,Eme,Ksd(iSb));p4c(a,ume,Fme,Ksd(hSb));p4c(a,ume,Gme,Ksd(gSb));p4c(a,ume,Hme,Ksd(nSb));p4c(a,ume,mme,Ksd(fSb));p4c(a,ume,pme,Ksd(vSb));p4c(a,ume,nme,Ksd(eSb));p4c(a,ume,rme,Ksd(qSb));p4c(a,ume,ome,Ksd(rSb))} +function GKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(BD(BD(Qc(a.r,b),21),84).dc()){return}g=BD(Mpb(a.b,b),124);i=g.i;h=g.n;k=KIb(a,b);d=i.b-h.b-h.c;e=g.a.a;f=i.c+h.b;n=a.w;if((k==(Tbd(),Qbd)||k==Sbd)&&BD(BD(Qc(a.r,b),21),84).gc()==1){e=k==Qbd?e-2*a.w:e;k=Pbd}if(d<e&&!a.B.Hc((Idd(),Fdd))){if(k==Qbd){n+=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()+1);f+=n}else{n+=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()-1)}}else{if(d<e){e=k==Qbd?e-2*a.w:e;k=Pbd}switch(k.g){case 3:f+=(d-e)/2;break;case 4:f+=d-e;break;case 0:c=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()+1);n+=$wnd.Math.max(0,c);f+=n;break;case 1:c=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()-1);n+=$wnd.Math.max(0,c);}}for(m=BD(BD(Qc(a.r,b),21),84).Kc();m.Ob();){l=BD(m.Pb(),111);l.e.a=f+l.d.b;l.e.b=(j=l.b,j.Xe((Y9c(),s9c))?j.Hf()==(Ucd(),Acd)?-j.rf().b-Edb(ED(j.We(s9c))):Edb(ED(j.We(s9c))):j.Hf()==(Ucd(),Acd)?-j.rf().b:0);f+=l.d.b+l.b.rf().a+l.d.c+n}} +function KKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(BD(BD(Qc(a.r,b),21),84).dc()){return}g=BD(Mpb(a.b,b),124);i=g.i;h=g.n;l=KIb(a,b);d=i.a-h.d-h.a;e=g.a.b;f=i.d+h.d;o=a.w;j=a.o.a;if((l==(Tbd(),Qbd)||l==Sbd)&&BD(BD(Qc(a.r,b),21),84).gc()==1){e=l==Qbd?e-2*a.w:e;l=Pbd}if(d<e&&!a.B.Hc((Idd(),Fdd))){if(l==Qbd){o+=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()+1);f+=o}else{o+=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()-1)}}else{if(d<e){e=l==Qbd?e-2*a.w:e;l=Pbd}switch(l.g){case 3:f+=(d-e)/2;break;case 4:f+=d-e;break;case 0:c=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()+1);o+=$wnd.Math.max(0,c);f+=o;break;case 1:c=(d-e)/(BD(BD(Qc(a.r,b),21),84).gc()-1);o+=$wnd.Math.max(0,c);}}for(n=BD(BD(Qc(a.r,b),21),84).Kc();n.Ob();){m=BD(n.Pb(),111);m.e.a=(k=m.b,k.Xe((Y9c(),s9c))?k.Hf()==(Ucd(),Tcd)?-k.rf().a-Edb(ED(k.We(s9c))):j+Edb(ED(k.We(s9c))):k.Hf()==(Ucd(),Tcd)?-k.rf().a:j);m.e.b=f+m.d.d;f+=m.d.d+m.b.rf().b+m.d.a+o}} +function Abc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;a.n=Edb(ED(vNb(a.g,(Nyc(),vyc))));a.e=Edb(ED(vNb(a.g,pyc)));a.i=a.g.b.c.length;h=a.i-1;m=0;a.j=0;a.k=0;a.a=Ou(KC(JI,nie,19,a.i,0,1));a.b=Ou(KC(BI,nie,333,a.i,7,1));for(g=new olb(a.g.b);g.a<g.c.c.length;){e=BD(mlb(g),29);e.p=h;for(l=new olb(e.a);l.a<l.c.c.length;){k=BD(mlb(l),10);k.p=m;++m}--h}a.f=KC(WD,oje,25,m,15,1);a.c=IC(WD,[nie,oje],[48,25],15,[m,3],2);a.o=new Rkb;a.p=new Rkb;b=0;a.d=0;for(f=new olb(a.g.b);f.a<f.c.c.length;){e=BD(mlb(f),29);h=e.p;d=0;p=0;i=e.a.c.length;j=0;for(l=new olb(e.a);l.a<l.c.c.length;){k=BD(mlb(l),10);m=k.p;a.f[m]=k.c.p;j+=k.o.b+a.n;c=sr(new Sr(ur(R_b(k).a.Kc(),new Sq)));o=sr(new Sr(ur(U_b(k).a.Kc(),new Sq)));a.c[m][0]=o-c;a.c[m][1]=c;a.c[m][2]=o;d+=c;p+=o;c>0&&Ekb(a.p,k);Ekb(a.o,k)}b-=d;n=i+b;j+=b*a.e;Nkb(a.a,h,meb(n));Nkb(a.b,h,j);a.j=$wnd.Math.max(a.j,n);a.k=$wnd.Math.max(a.k,j);a.d+=b;b+=p}} +function Ucd(){Ucd=ccb;var a;Scd=new Ycd(ole,0);Acd=new Ycd(xle,1);zcd=new Ycd(yle,2);Rcd=new Ycd(zle,3);Tcd=new Ycd(Ale,4);Fcd=(mmb(),new zob((a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0))));Gcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[])));Bcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[])));Ocd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[])));Qcd=Up(qqb(Tcd,OC(GC(F1,1),bne,61,0,[])));Lcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd])));Ecd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ncd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Tcd])));Hcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd])));Pcd=Up(qqb(Rcd,OC(GC(F1,1),bne,61,0,[Tcd])));Ccd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd])));Kcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Tcd])));Dcd=Up(qqb(zcd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Mcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[Rcd,Tcd])));Icd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd])));Jcd=Up(qqb(Acd,OC(GC(F1,1),bne,61,0,[zcd,Rcd,Tcd])))} +function fSc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;if(b.b!=0){n=new Psb;h=null;o=null;d=QD($wnd.Math.floor($wnd.Math.log(b.b)*$wnd.Math.LOG10E)+1);i=0;for(t=Jsb(b,0);t.b!=t.d.c;){r=BD(Xsb(t),86);if(PD(o)!==PD(vNb(r,(mTc(),$Sc)))){o=GD(vNb(r,$Sc));i=0}o!=null?(h=o+iSc(i++,d)):(h=iSc(i++,d));yNb(r,$Sc,h);for(q=(e=Jsb((new ZRc(r)).a.d,0),new aSc(e));Wsb(q.a);){p=BD(Xsb(q.a),188).c;Gsb(n,p,n.c.b,n.c);yNb(p,$Sc,h)}}m=new Lqb;for(g=0;g<h.length-d;g++){for(s=Jsb(b,0);s.b!=s.d.c;){r=BD(Xsb(s),86);j=qfb(GD(vNb(r,(mTc(),$Sc))),0,g+1);c=(j==null?Wd(irb(m.f,null)):Crb(m.g,j))!=null?BD(j==null?Wd(irb(m.f,null)):Crb(m.g,j),19).a+1:1;Shb(m,j,meb(c))}}for(l=new nib((new eib(m)).a);l.b;){k=lib(l);f=meb(Ohb(a.a,k.cd())!=null?BD(Ohb(a.a,k.cd()),19).a:0);Shb(a.a,GD(k.cd()),meb(BD(k.dd(),19).a+f.a));f=BD(Ohb(a.b,k.cd()),19);(!f||f.a<BD(k.dd(),19).a)&&Shb(a.b,GD(k.cd()),BD(k.dd(),19))}fSc(a,n)}} +function PCc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;Odd(c,'Interactive node layering',1);d=new Rkb;for(n=new olb(b.a);n.a<n.c.c.length;){l=BD(mlb(n),10);j=l.n.a;i=j+l.o.a;i=$wnd.Math.max(j+1,i);r=new Bib(d,0);e=null;while(r.b<r.d.gc()){p=(sCb(r.b<r.d.gc()),BD(r.d.Xb(r.c=r.b++),569));if(p.c>=i){sCb(r.b>0);r.a.Xb(r.c=--r.b);break}else if(p.a>j){if(!e){Ekb(p.b,l);p.c=$wnd.Math.min(p.c,j);p.a=$wnd.Math.max(p.a,i);e=p}else{Gkb(e.b,p.b);e.a=$wnd.Math.max(e.a,p.a);uib(r)}}}if(!e){e=new TCc;e.c=j;e.a=i;Aib(r,e);Ekb(e.b,l)}}h=b.b;k=0;for(q=new olb(d);q.a<q.c.c.length;){p=BD(mlb(q),569);f=new H1b(b);f.p=k++;h.c[h.c.length]=f;for(o=new olb(p.b);o.a<o.c.c.length;){l=BD(mlb(o),10);$_b(l,f);l.p=0}}for(m=new olb(b.a);m.a<m.c.c.length;){l=BD(mlb(m),10);l.p==0&&OCc(a,l,b)}g=new Bib(h,0);while(g.b<g.d.gc()){(sCb(g.b<g.d.gc()),BD(g.d.Xb(g.c=g.b++),29)).a.c.length==0&&uib(g)}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function Snc(a,b,c){var d,e,f,g,h,i,j,k,l,m;if(b.e.c.length!=0&&c.e.c.length!=0){d=BD(Ikb(b.e,0),17).c.i;g=BD(Ikb(c.e,0),17).c.i;if(d==g){return beb(BD(vNb(BD(Ikb(b.e,0),17),(wtc(),Zsc)),19).a,BD(vNb(BD(Ikb(c.e,0),17),Zsc),19).a)}for(k=a.a,l=0,m=k.length;l<m;++l){j=k[l];if(j==d){return 1}else if(j==g){return -1}}}if(b.g.c.length!=0&&c.g.c.length!=0){f=BD(vNb(b,(wtc(),Xsc)),10);i=BD(vNb(c,Xsc),10);e=0;h=0;wNb(BD(Ikb(b.g,0),17),Zsc)&&(e=BD(vNb(BD(Ikb(b.g,0),17),Zsc),19).a);wNb(BD(Ikb(c.g,0),17),Zsc)&&(h=BD(vNb(BD(Ikb(b.g,0),17),Zsc),19).a);if(!!f&&f==i){if(Ccb(DD(vNb(BD(Ikb(b.g,0),17),ltc)))&&!Ccb(DD(vNb(BD(Ikb(c.g,0),17),ltc)))){return 1}else if(!Ccb(DD(vNb(BD(Ikb(b.g,0),17),ltc)))&&Ccb(DD(vNb(BD(Ikb(c.g,0),17),ltc)))){return -1}return e<h?-1:e>h?1:0}if(a.b){a.b._b(f)&&(e=BD(a.b.xc(f),19).a);a.b._b(i)&&(h=BD(a.b.xc(i),19).a)}return e<h?-1:e>h?1:0}return b.e.c.length!=0&&c.g.c.length!=0?1:-1} +function acc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A;Odd(b,Ine,1);p=new Rkb;w=new Rkb;for(j=new olb(a.b);j.a<j.c.c.length;){i=BD(mlb(j),29);r=-1;o=l_b(i.a);for(l=o,m=0,n=l.length;m<n;++m){k=l[m];++r;if(!(k.k==(j0b(),h0b)&&fcd(BD(vNb(k,(Nyc(),Vxc)),98)))){continue}ecd(BD(vNb(k,(Nyc(),Vxc)),98))||bcc(k);yNb(k,(wtc(),Psc),k);p.c=KC(SI,Uhe,1,0,5,1);w.c=KC(SI,Uhe,1,0,5,1);c=new Rkb;u=new Psb;Jq(u,Y_b(k,(Ucd(),Acd)));$bc(a,u,p,w,c);h=r;A=k;for(f=new olb(p);f.a<f.c.c.length;){d=BD(mlb(f),10);Z_b(d,h,i);++r;yNb(d,Psc,k);g=BD(Ikb(d.j,0),11);q=BD(vNb(g,$sc),11);Ccb(DD(vNb(q,nwc)))||BD(vNb(d,Qsc),15).Fc(A)}Osb(u);for(t=Y_b(k,Rcd).Kc();t.Ob();){s=BD(t.Pb(),11);Gsb(u,s,u.a,u.a.a)}$bc(a,u,w,null,c);v=k;for(e=new olb(w);e.a<e.c.c.length;){d=BD(mlb(e),10);Z_b(d,++r,i);yNb(d,Psc,k);g=BD(Ikb(d.j,0),11);q=BD(vNb(g,$sc),11);Ccb(DD(vNb(q,nwc)))||BD(vNb(v,Qsc),15).Fc(d)}c.c.length==0||yNb(k,ssc,c)}}Qdd(b)} +function SQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;l=BD(vNb(a,(HSb(),FSb)),33);r=Ohe;s=Ohe;p=Rie;q=Rie;for(u=new olb(a.e);u.a<u.c.c.length;){t=BD(mlb(u),144);C=t.d;D=t.e;r=$wnd.Math.min(r,C.a-D.a/2);s=$wnd.Math.min(s,C.b-D.b/2);p=$wnd.Math.max(p,C.a+D.a/2);q=$wnd.Math.max(q,C.b+D.b/2)}B=BD(hkd(l,(wSb(),kSb)),116);A=new f7c(B.b-r,B.d-s);for(h=new olb(a.e);h.a<h.c.c.length;){g=BD(mlb(h),144);w=vNb(g,FSb);if(JD(w,239)){n=BD(w,33);v=P6c(g.d,A);bld(n,v.a-n.g/2,v.b-n.f/2)}}for(d=new olb(a.c);d.a<d.c.c.length;){c=BD(mlb(d),282);j=BD(vNb(c,FSb),79);k=itd(j,true,true);F=(H=c7c(R6c(c.d.d),c.c.d),l6c(H,c.c.e.a,c.c.e.b),P6c(H,c.c.d));nmd(k,F.a,F.b);b=(I=c7c(R6c(c.c.d),c.d.d),l6c(I,c.d.e.a,c.d.e.b),P6c(I,c.d.d));gmd(k,b.a,b.b)}for(f=new olb(a.d);f.a<f.c.c.length;){e=BD(mlb(f),447);m=BD(vNb(e,FSb),137);o=P6c(e.d,A);bld(m,o.a,o.b)}G=p-r+(B.b+B.c);i=q-s+(B.d+B.a);Afd(l,G,i,false,true)} +function bmc(a){var b,c,d,e,f,g,h,i,j,k,l,m;c=null;i=null;e=BD(vNb(a.b,(Nyc(),Wwc)),376);if(e==(_Ac(),ZAc)){c=new Rkb;i=new Rkb}for(h=new olb(a.d);h.a<h.c.c.length;){g=BD(mlb(h),101);f=g.i;if(!f){continue}switch(g.e.g){case 0:b=BD(Fqb(new Gqb(g.b)),61);e==ZAc&&b==(Ucd(),Acd)?(c.c[c.c.length]=g,true):e==ZAc&&b==(Ucd(),Rcd)?(i.c[i.c.length]=g,true):_lc(g,b);break;case 1:j=g.a.d.j;k=g.c.d.j;j==(Ucd(),Acd)?amc(g,Acd,(Ajc(),xjc),g.a):k==Acd?amc(g,Acd,(Ajc(),yjc),g.c):j==Rcd?amc(g,Rcd,(Ajc(),yjc),g.a):k==Rcd&&amc(g,Rcd,(Ajc(),xjc),g.c);break;case 2:case 3:d=g.b;uqb(d,(Ucd(),Acd))?uqb(d,Rcd)?uqb(d,Tcd)?uqb(d,zcd)||amc(g,Acd,(Ajc(),yjc),g.c):amc(g,Acd,(Ajc(),xjc),g.a):amc(g,Acd,(Ajc(),wjc),null):amc(g,Rcd,(Ajc(),wjc),null);break;case 4:l=g.a.d.j;m=g.a.d.j;l==(Ucd(),Acd)||m==Acd?amc(g,Rcd,(Ajc(),wjc),null):amc(g,Acd,(Ajc(),wjc),null);}}if(c){c.c.length==0||$lc(c,(Ucd(),Acd));i.c.length==0||$lc(i,(Ucd(),Rcd))}} +function A2b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;d=BD(vNb(a,(wtc(),$sc)),33);o=BD(vNb(a,(Nyc(),Gwc)),19).a;f=BD(vNb(a,nxc),19).a;jkd(d,Gwc,meb(o));jkd(d,nxc,meb(f));dld(d,a.n.a+b.a);eld(d,a.n.b+b.b);if(BD(hkd(d,Fxc),174).gc()!=0||!!a.e||PD(vNb(Q_b(a),Exc))===PD((Vzc(),Tzc))&&Jzc((Izc(),(!a.q?(mmb(),mmb(),kmb):a.q)._b(Cxc)?(m=BD(vNb(a,Cxc),197)):(m=BD(vNb(Q_b(a),Dxc),197)),m))){cld(d,a.o.a);ald(d,a.o.b)}for(l=new olb(a.j);l.a<l.c.c.length;){j=BD(mlb(l),11);p=vNb(j,$sc);if(JD(p,186)){e=BD(p,118);bld(e,j.n.a,j.n.b);jkd(e,$xc,j.j)}}n=BD(vNb(a,xxc),174).gc()!=0;for(i=new olb(a.b);i.a<i.c.c.length;){g=BD(mlb(i),70);if(n||BD(vNb(g,xxc),174).gc()!=0){c=BD(vNb(g,$sc),137);_kd(c,g.o.a,g.o.b);bld(c,g.n.a,g.n.b)}}if(!tcd(BD(vNb(a,Yxc),21))){for(k=new olb(a.j);k.a<k.c.c.length;){j=BD(mlb(k),11);for(h=new olb(j.f);h.a<h.c.c.length;){g=BD(mlb(h),70);c=BD(vNb(g,$sc),137);cld(c,g.o.a);ald(c,g.o.b);bld(c,g.n.a,g.n.b)}}}} +function gtd(a){var b,c,d,e,f;ytb(a,hue);switch((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i+(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i){case 0:throw vbb(new Wdb('The edge must have at least one source or target.'));case 1:return (!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i==0?Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82))):Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));}if((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b).i==1&&(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c).i==1){e=atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82));f=atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82));if(Xod(e)==Xod(f)){return Xod(e)}else if(e==Xod(f)){return e}else if(f==Xod(e)){return f}}d=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),(!a.c&&(a.c=new y5d(z2,a,5,8)),a.c)])));b=atd(BD(Rr(d),82));while(Qr(d)){c=atd(BD(Rr(d),82));if(c!=b&&!ntd(c,b)){if(Xod(c)==Xod(b)){b=Xod(c)}else{b=htd(b,c);if(!b){return null}}}}return b} +function KNc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;Odd(c,'Polyline edge routing',1);q=Edb(ED(vNb(b,(Nyc(),Uwc))));n=Edb(ED(vNb(b,wyc)));e=Edb(ED(vNb(b,myc)));d=$wnd.Math.min(1,e/n);t=0;i=0;if(b.b.c.length!=0){u=HNc(BD(Ikb(b.b,0),29));t=0.4*d*u}h=new Bib(b.b,0);while(h.b<h.d.gc()){g=(sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),29));f=Kq(g,DNc);f&&t>0&&(t-=n);h_b(g,t);k=0;for(m=new olb(g.a);m.a<m.c.c.length;){l=BD(mlb(m),10);j=0;for(p=new Sr(ur(U_b(l).a.Kc(),new Sq));Qr(p);){o=BD(Rr(p),17);r=A0b(o.c).b;s=A0b(o.d).b;if(g==o.d.i.c&&!OZb(o)){LNc(o,t,0.4*d*$wnd.Math.abs(r-s));if(o.c.j==(Ucd(),Tcd)){r=0;s=0}}j=$wnd.Math.max(j,$wnd.Math.abs(s-r))}switch(l.k.g){case 0:case 4:case 1:case 3:case 5:MNc(a,l,t,q);}k=$wnd.Math.max(k,j)}if(h.b<h.d.gc()){u=HNc((sCb(h.b<h.d.gc()),BD(h.d.Xb(h.c=h.b++),29)));k=$wnd.Math.max(k,u);sCb(h.b>0);h.a.Xb(h.c=--h.b)}i=0.4*d*k;!f&&h.b<h.d.gc()&&(i+=n);t+=g.c.a+i}a.a.a.$b();b.f.a=t;Qdd(c)} +function bic(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;k=new Lqb;i=new Hp;for(d=new olb(a.a.a.b);d.a<d.c.c.length;){b=BD(mlb(d),57);j=tgc(b);if(j){jrb(k.f,j,b)}else{s=ugc(b);if(s){for(f=new olb(s.k);f.a<f.c.c.length;){e=BD(mlb(f),17);Rc(i,e,b)}}}}for(c=new olb(a.a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);j=tgc(b);if(j){for(h=new Sr(ur(U_b(j).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(OZb(g)){continue}o=g.c;r=g.d;if((Ucd(),Lcd).Hc(g.c.j)&&Lcd.Hc(g.d.j)){continue}p=BD(Ohb(k,g.d.i),57);AFb(DFb(CFb(EFb(BFb(new FFb,0),100),a.c[b.a.d]),a.c[p.a.d]));if(o.j==Tcd&&l1b((z0b(),w0b,o))){for(m=BD(Qc(i,g),21).Kc();m.Ob();){l=BD(m.Pb(),57);if(l.d.c<b.d.c){n=a.c[l.a.d];q=a.c[b.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}if(r.j==zcd&&g1b((z0b(),u0b,r))){for(m=BD(Qc(i,g),21).Kc();m.Ob();){l=BD(m.Pb(),57);if(l.d.c>b.d.c){n=a.c[b.a.d];q=a.c[l.a.d];if(n==q){continue}AFb(DFb(CFb(EFb(BFb(new FFb,1),100),n),q))}}}}}}} +function QEd(a){IEd();var b,c,d,e,f,g,h,i;if(a==null)return null;e=hfb(a,wfb(37));if(e<0){return a}else{i=new Wfb(a.substr(0,e));b=KC(SD,wte,25,4,15,1);h=0;d=0;for(g=a.length;e<g;e++){BCb(e,a.length);if(a.charCodeAt(e)==37&&a.length>e+2&&_Ed((BCb(e+1,a.length),a.charCodeAt(e+1)),xEd,yEd)&&_Ed((BCb(e+2,a.length),a.charCodeAt(e+2)),xEd,yEd)){c=dFd((BCb(e+1,a.length),a.charCodeAt(e+1)),(BCb(e+2,a.length),a.charCodeAt(e+2)));e+=2;if(d>0){(c&192)==128?(b[h++]=c<<24>>24):(d=0)}else if(c>=128){if((c&224)==192){b[h++]=c<<24>>24;d=2}else if((c&240)==224){b[h++]=c<<24>>24;d=3}else if((c&248)==240){b[h++]=c<<24>>24;d=4}}if(d>0){if(h==d){switch(h){case 2:{Kfb(i,((b[0]&31)<<6|b[1]&63)&aje);break}case 3:{Kfb(i,((b[0]&15)<<12|(b[1]&63)<<6|b[2]&63)&aje);break}}h=0;d=0}}else{for(f=0;f<h;++f){Kfb(i,b[f]&aje)}h=0;i.a+=String.fromCharCode(c)}}else{for(f=0;f<h;++f){Kfb(i,b[f]&aje)}h=0;Kfb(i,(BCb(e,a.length),a.charCodeAt(e)))}}return i.a}} +function wA(a,b,c,d,e){var f,g,h;uA(a,b);g=b[0];f=bfb(c.c,0);h=-1;if(nA(c)){if(d>0){if(g+d>a.length){return false}h=rA(a.substr(0,g+d),b)}else{h=rA(a,b)}}switch(f){case 71:h=oA(a,g,OC(GC(ZI,1),nie,2,6,[pje,qje]),b);e.e=h;return true;case 77:return zA(a,b,e,h,g);case 76:return BA(a,b,e,h,g);case 69:return xA(a,b,g,e);case 99:return AA(a,b,g,e);case 97:h=oA(a,g,OC(GC(ZI,1),nie,2,6,['AM','PM']),b);e.b=h;return true;case 121:return DA(a,b,g,h,c,e);case 100:if(h<=0){return false}e.c=h;return true;case 83:if(h<0){return false}return yA(h,g,b[0],e);case 104:h==12&&(h=0);case 75:case 72:if(h<0){return false}e.f=h;e.g=false;return true;case 107:if(h<0){return false}e.f=h;e.g=true;return true;case 109:if(h<0){return false}e.j=h;return true;case 115:if(h<0){return false}e.n=h;return true;case 90:if(g<a.length&&(BCb(g,a.length),a.charCodeAt(g)==90)){++b[0];e.o=0;return true}case 122:case 118:return CA(a,g,b,e);default:return false;}} +function vKb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;m=BD(BD(Qc(a.r,b),21),84);if(b==(Ucd(),zcd)||b==Tcd){zKb(a,b);return}f=b==Acd?(vLb(),rLb):(vLb(),uLb);u=b==Acd?(EIb(),DIb):(EIb(),BIb);c=BD(Mpb(a.b,b),124);d=c.i;e=d.c+w6c(OC(GC(UD,1),Vje,25,15,[c.n.b,a.C.b,a.k]));r=d.c+d.b-w6c(OC(GC(UD,1),Vje,25,15,[c.n.c,a.C.c,a.k]));g=dLb(iLb(f),a.t);s=b==Acd?Qje:Pje;for(l=m.Kc();l.Ob();){j=BD(l.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}q=j.b.rf();p=j.e;n=j.c;o=n.i;o.b=(i=n.n,n.e.a+i.b+i.c);o.a=(h=n.n,n.e.b+h.d+h.a);ytb(u,lle);n.f=u;$Hb(n,(NHb(),MHb));o.c=p.a-(o.b-q.a)/2;v=$wnd.Math.min(e,p.a);w=$wnd.Math.max(r,p.a+q.a);o.c<v?(o.c=v):o.c+o.b>w&&(o.c=w-o.b);Ekb(g.d,new BLb(o,bLb(g,o)));s=b==Acd?$wnd.Math.max(s,p.b+j.b.rf().b):$wnd.Math.min(s,p.b)}s+=b==Acd?a.t:-a.t;t=cLb((g.e=s,g));t>0&&(BD(Mpb(a.b,b),124).a.b=t);for(k=m.Kc();k.Ob();){j=BD(k.Pb(),111);if(!j.c||j.c.d.c.length<=0){continue}o=j.c.i;o.c-=j.e.a;o.d-=j.e.b}} +function SPb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;b=new Lqb;for(i=new Fyd(a);i.e!=i.i.gc();){h=BD(Dyd(i),33);c=new Tqb;Rhb(OPb,h,c);n=new aQb;e=BD(GAb(new YAb(null,new Lub(new Sr(ur($sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[(Fyb(),Dyb)])))),83);RPb(c,BD(e.xc((Bcb(),true)),14),new cQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new eQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),79);m=ktd(f);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}e=BD(GAb(new YAb(null,new Lub(new Sr(ur(_sd(h).a.Kc(),new Sq)))),Wyb(n,Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb])))),83);RPb(c,BD(e.xc(true),14),new gQb);d=BD(GAb(JAb(BD(e.xc(false),15).Lc(),new iQb),Byb(new fzb,new dzb,new Ezb,OC(GC(xL,1),Kie,132,0,[Dyb]))),15);for(l=d.Kc();l.Ob();){k=BD(l.Pb(),79);m=mtd(k);if(m){j=BD(Wd(irb(b.f,m)),21);if(!j){j=UPb(m);jrb(b.f,m,j)}ye(c,j)}}}} +function rhb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p;i=ybb(a,0)<0;i&&(a=Jbb(a));if(ybb(a,0)==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:n=new Ufb;b<0?(n.a+='0E+',n):(n.a+='0E',n);n.a+=b==Rie?'2147483648':''+-b;return n.a;}}k=18;l=KC(TD,$ie,25,k+1,15,1);c=k;p=a;do{j=p;p=Abb(p,10);l[--c]=Tbb(wbb(48,Qbb(j,Ibb(p,10))))&aje}while(ybb(p,0)!=0);e=Qbb(Qbb(Qbb(k,c),b),1);if(b==0){i&&(l[--c]=45);return zfb(l,c,k-c)}if(b>0&&ybb(e,-6)>=0){if(ybb(e,0)>=0){f=c+Tbb(e);for(h=k-1;h>=f;h--){l[h+1]=l[h]}l[++f]=46;i&&(l[--c]=45);return zfb(l,c,k-c+1)}for(g=2;Gbb(g,wbb(Jbb(e),1));g++){l[--c]=48}l[--c]=46;l[--c]=48;i&&(l[--c]=45);return zfb(l,c,k-c)}o=c+1;d=k;m=new Vfb;i&&(m.a+='-',m);if(d-o>=1){Kfb(m,l[c]);m.a+='.';m.a+=zfb(l,c+1,k-c-1)}else{m.a+=zfb(l,c,k-c)}m.a+='E';ybb(e,0)>0&&(m.a+='+',m);m.a+=''+Ubb(e);return m.a} +function iQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;a.e.a.$b();a.f.a.$b();a.c.c=KC(SI,Uhe,1,0,5,1);a.i.c=KC(SI,Uhe,1,0,5,1);a.g.a.$b();if(b){for(g=new olb(b.a);g.a<g.c.c.length;){f=BD(mlb(g),10);for(l=Y_b(f,(Ucd(),zcd)).Kc();l.Ob();){k=BD(l.Pb(),11);Qqb(a.e,k);for(e=new olb(k.g);e.a<e.c.c.length;){d=BD(mlb(e),17);if(OZb(d)){continue}Ekb(a.c,d);oQc(a,d);h=d.c.i.k;(h==(j0b(),h0b)||h==i0b||h==e0b||h==d0b)&&Ekb(a.j,d);n=d.d;m=n.i.c;m==c?Qqb(a.f,n):m==b?Qqb(a.e,n):Lkb(a.c,d)}}}}if(c){for(g=new olb(c.a);g.a<g.c.c.length;){f=BD(mlb(g),10);for(j=new olb(f.j);j.a<j.c.c.length;){i=BD(mlb(j),11);for(e=new olb(i.g);e.a<e.c.c.length;){d=BD(mlb(e),17);OZb(d)&&Qqb(a.g,d)}}for(l=Y_b(f,(Ucd(),Tcd)).Kc();l.Ob();){k=BD(l.Pb(),11);Qqb(a.f,k);for(e=new olb(k.g);e.a<e.c.c.length;){d=BD(mlb(e),17);if(OZb(d)){continue}Ekb(a.c,d);oQc(a,d);h=d.c.i.k;(h==(j0b(),h0b)||h==i0b||h==e0b||h==d0b)&&Ekb(a.j,d);n=d.d;m=n.i.c;m==c?Qqb(a.f,n):m==b?Qqb(a.e,n):Lkb(a.c,d)}}}}} +function Afd(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;q=new f7c(a.g,a.f);p=rfd(a);p.a=$wnd.Math.max(p.a,b);p.b=$wnd.Math.max(p.b,c);w=p.a/q.a;k=p.b/q.b;u=p.a-q.a;i=p.b-q.b;if(d){g=!Xod(a)?BD(hkd(a,(Y9c(),z8c)),103):BD(hkd(Xod(a),(Y9c(),z8c)),103);h=PD(hkd(a,(Y9c(),t9c)))===PD((dcd(),$bd));for(s=new Fyd((!a.c&&(a.c=new cUd(F2,a,9,9)),a.c));s.e!=s.i.gc();){r=BD(Dyd(s),118);t=BD(hkd(r,A9c),61);if(t==(Ucd(),Scd)){t=lfd(r,g);jkd(r,A9c,t)}switch(t.g){case 1:h||dld(r,r.i*w);break;case 2:dld(r,r.i+u);h||eld(r,r.j*k);break;case 3:h||dld(r,r.i*w);eld(r,r.j+i);break;case 4:h||eld(r,r.j*k);}}}_kd(a,p.a,p.b);if(e){for(m=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);n=l.i+l.g/2;o=l.j+l.f/2;v=n/q.a;j=o/q.b;if(v+j>=1){if(v-j>0&&o>=0){dld(l,l.i+u);eld(l,l.j+i*j)}else if(v-j<0&&n>=0){dld(l,l.i+u*v);eld(l,l.j+i)}}}}jkd(a,(Y9c(),Y8c),(tdd(),f=BD(gdb(I1),9),new xqb(f,BD(_Bb(f,f.length),9),0)));return new f7c(w,k)} +function Yfd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o;n=Xod(atd(BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82)));o=Xod(atd(BD(qud((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c),0),82)));l=n==o;h=new d7c;b=BD(hkd(a,(Zad(),Sad)),74);if(!!b&&b.b>=2){if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){c=(Fhd(),e=new rmd,e);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),c)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){m=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(m.e!=m.i.gc()){Eyd(m)}}ifd(b,BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202))}if(l){for(d=new Fyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));d.e!=d.i.gc();){c=BD(Dyd(d),202);for(j=new Fyd((!c.a&&(c.a=new xMd(y2,c,5)),c.a));j.e!=j.i.gc();){i=BD(Dyd(j),469);h.a=$wnd.Math.max(h.a,i.a);h.b=$wnd.Math.max(h.b,i.b)}}}for(g=new Fyd((!a.n&&(a.n=new cUd(D2,a,1,7)),a.n));g.e!=g.i.gc();){f=BD(Dyd(g),137);k=BD(hkd(f,Yad),8);!!k&&bld(f,k.a,k.b);if(l){h.a=$wnd.Math.max(h.a,f.i+f.g);h.b=$wnd.Math.max(h.b,f.j+f.f)}}return h} +function yMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=b.c.length;e=new ULc(a.a,c,null,null);B=KC(UD,Vje,25,t,15,1);p=KC(UD,Vje,25,t,15,1);o=KC(UD,Vje,25,t,15,1);q=0;for(h=0;h<t;h++){p[h]=Ohe;o[h]=Rie}for(i=0;i<t;i++){d=(tCb(i,b.c.length),BD(b.c[i],180));B[i]=SLc(d);B[q]>B[i]&&(q=i);for(l=new olb(a.a.b);l.a<l.c.c.length;){k=BD(mlb(l),29);for(s=new olb(k.a);s.a<s.c.c.length;){r=BD(mlb(s),10);w=Edb(d.p[r.p])+Edb(d.d[r.p]);p[i]=$wnd.Math.min(p[i],w);o[i]=$wnd.Math.max(o[i],w+r.o.b)}}}A=KC(UD,Vje,25,t,15,1);for(j=0;j<t;j++){(tCb(j,b.c.length),BD(b.c[j],180)).o==(eMc(),cMc)?(A[j]=p[q]-p[j]):(A[j]=o[q]-o[j])}f=KC(UD,Vje,25,t,15,1);for(n=new olb(a.a.b);n.a<n.c.c.length;){m=BD(mlb(n),29);for(v=new olb(m.a);v.a<v.c.c.length;){u=BD(mlb(v),10);for(g=0;g<t;g++){f[g]=Edb((tCb(g,b.c.length),BD(b.c[g],180)).p[u.p])+Edb((tCb(g,b.c.length),BD(b.c[g],180)).d[u.p])+A[g]}f.sort(dcb(Ylb.prototype.te,Ylb,[]));e.p[u.p]=(f[1]+f[2])/2;e.d[u.p]=0}}return e} +function G3b(a,b,c){var d,e,f,g,h;d=b.i;f=a.i.o;e=a.i.d;h=a.n;g=l7c(OC(GC(m1,1),nie,8,0,[h,a.a]));switch(a.j.g){case 1:_Hb(b,(EIb(),BIb));d.d=-e.d-c-d.a;if(BD(BD(Ikb(b.d,0),181).We((wtc(),Ssc)),285)==(rbd(),nbd)){$Hb(b,(NHb(),MHb));d.c=g.a-Edb(ED(vNb(a,Ysc)))-c-d.b}else{$Hb(b,(NHb(),LHb));d.c=g.a+Edb(ED(vNb(a,Ysc)))+c}break;case 2:$Hb(b,(NHb(),LHb));d.c=f.a+e.c+c;if(BD(BD(Ikb(b.d,0),181).We((wtc(),Ssc)),285)==(rbd(),nbd)){_Hb(b,(EIb(),BIb));d.d=g.b-Edb(ED(vNb(a,Ysc)))-c-d.a}else{_Hb(b,(EIb(),DIb));d.d=g.b+Edb(ED(vNb(a,Ysc)))+c}break;case 3:_Hb(b,(EIb(),DIb));d.d=f.b+e.a+c;if(BD(BD(Ikb(b.d,0),181).We((wtc(),Ssc)),285)==(rbd(),nbd)){$Hb(b,(NHb(),MHb));d.c=g.a-Edb(ED(vNb(a,Ysc)))-c-d.b}else{$Hb(b,(NHb(),LHb));d.c=g.a+Edb(ED(vNb(a,Ysc)))+c}break;case 4:$Hb(b,(NHb(),MHb));d.c=-e.b-c-d.b;if(BD(BD(Ikb(b.d,0),181).We((wtc(),Ssc)),285)==(rbd(),nbd)){_Hb(b,(EIb(),BIb));d.d=g.b-Edb(ED(vNb(a,Ysc)))-c-d.a}else{_Hb(b,(EIb(),DIb));d.d=g.b+Edb(ED(vNb(a,Ysc)))+c}}} +function ded(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;n=0;D=0;for(i=new olb(a);i.a<i.c.c.length;){h=BD(mlb(i),33);zfd(h);n=$wnd.Math.max(n,h.g);D+=h.g*h.f}o=D/a.c.length;C=$dd(a,o);D+=a.c.length*C;n=$wnd.Math.max(n,$wnd.Math.sqrt(D*g))+c.b;H=c.b;I=c.d;m=0;k=c.b+c.c;B=new Psb;Dsb(B,meb(0));w=new Psb;j=new Bib(a,0);while(j.b<j.d.gc()){h=(sCb(j.b<j.d.gc()),BD(j.d.Xb(j.c=j.b++),33));G=h.g;l=h.f;if(H+G>n){if(f){Fsb(w,m);Fsb(B,meb(j.b-1))}H=c.b;I+=m+b;m=0;k=$wnd.Math.max(k,c.b+c.c+G)}dld(h,H);eld(h,I);k=$wnd.Math.max(k,H+G+c.c);m=$wnd.Math.max(m,l);H+=G+b}k=$wnd.Math.max(k,d);F=I+m+c.a;if(F<e){m+=e-F;F=e}if(f){H=c.b;j=new Bib(a,0);Fsb(B,meb(a.c.length));A=Jsb(B,0);r=BD(Xsb(A),19).a;Fsb(w,m);v=Jsb(w,0);u=0;while(j.b<j.d.gc()){if(j.b==r){H=c.b;u=Edb(ED(Xsb(v)));r=BD(Xsb(A),19).a}h=(sCb(j.b<j.d.gc()),BD(j.d.Xb(j.c=j.b++),33));s=h.f;ald(h,u);p=u;if(j.b==r){q=k-H-c.c;t=h.g;cld(h,q);Ffd(h,new f7c(q,p),new f7c(t,s))}H+=h.g+b}}return new f7c(k,F)} +function _Yb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;Odd(b,'Compound graph postprocessor',1);c=Ccb(DD(vNb(a,(Nyc(),Byc))));h=BD(vNb(a,(wtc(),zsc)),224);k=new Tqb;for(r=h.ec().Kc();r.Ob();){q=BD(r.Pb(),17);g=new Tkb(h.cc(q));mmb();Okb(g,new EZb(a));v=zZb((tCb(0,g.c.length),BD(g.c[0],243)));A=AZb(BD(Ikb(g,g.c.length-1),243));t=v.i;f_b(A.i,t)?(s=t.e):(s=Q_b(t));l=aZb(q,g);Osb(q.a);m=null;for(f=new olb(g);f.a<f.c.c.length;){e=BD(mlb(f),243);p=new d7c;Y$b(p,e.a,s);n=e.b;d=new s7c;o7c(d,0,n.a);q7c(d,p);u=new g7c(A0b(n.c));w=new g7c(A0b(n.d));P6c(u,p);P6c(w,p);if(m){d.b==0?(o=w):(o=(sCb(d.b!=0),BD(d.a.a.c,8)));B=$wnd.Math.abs(m.a-o.a)>qme;C=$wnd.Math.abs(m.b-o.b)>qme;(!c&&B&&C||c&&(B||C))&&Dsb(q.a,u)}ye(q.a,d);d.b==0?(m=u):(m=(sCb(d.b!=0),BD(d.c.b.c,8)));bZb(n,l,p);if(AZb(e)==A){if(Q_b(A.i)!=e.a){p=new d7c;Y$b(p,Q_b(A.i),s)}yNb(q,utc,p)}cZb(n,q,s);k.a.zc(n,k)}QZb(q,v);RZb(q,A)}for(j=k.a.ec().Kc();j.Ob();){i=BD(j.Pb(),17);QZb(i,null);RZb(i,null)}Qdd(b)} +function KQb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a.gc()==1){return BD(a.Xb(0),231)}else if(a.gc()<=0){return new kRb}for(e=a.Kc();e.Ob();){c=BD(e.Pb(),231);o=0;k=Ohe;l=Ohe;i=Rie;j=Rie;for(n=new olb(c.e);n.a<n.c.c.length;){m=BD(mlb(n),144);o+=BD(vNb(m,(wSb(),oSb)),19).a;k=$wnd.Math.min(k,m.d.a-m.e.a/2);l=$wnd.Math.min(l,m.d.b-m.e.b/2);i=$wnd.Math.max(i,m.d.a+m.e.a/2);j=$wnd.Math.max(j,m.d.b+m.e.b/2)}yNb(c,(wSb(),oSb),meb(o));yNb(c,(HSb(),ESb),new f7c(k,l));yNb(c,DSb,new f7c(i,j))}mmb();a.ad(new OQb);p=new kRb;tNb(p,BD(a.Xb(0),94));h=0;s=0;for(f=a.Kc();f.Ob();){c=BD(f.Pb(),231);q=c7c(R6c(BD(vNb(c,(HSb(),DSb)),8)),BD(vNb(c,ESb),8));h=$wnd.Math.max(h,q.a);s+=q.a*q.b}h=$wnd.Math.max(h,$wnd.Math.sqrt(s)*Edb(ED(vNb(p,(wSb(),bSb)))));r=Edb(ED(vNb(p,uSb)));t=0;u=0;g=0;b=r;for(d=a.Kc();d.Ob();){c=BD(d.Pb(),231);q=c7c(R6c(BD(vNb(c,(HSb(),DSb)),8)),BD(vNb(c,ESb),8));if(t+q.a>h){t=0;u+=g+r;g=0}JQb(p,c,t,u);b=$wnd.Math.max(b,t+q.a);g=$wnd.Math.max(g,q.b);t+=q.a+r}return p} +function Ioc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;k=new s7c;switch(a.a.g){case 3:m=BD(vNb(b.e,(wtc(),rtc)),15);n=BD(vNb(b.j,rtc),15);o=BD(vNb(b.f,rtc),15);c=BD(vNb(b.e,ptc),15);d=BD(vNb(b.j,ptc),15);e=BD(vNb(b.f,ptc),15);g=new Rkb;Gkb(g,m);n.Jc(new Loc);Gkb(g,JD(n,152)?km(BD(n,152)):JD(n,131)?BD(n,131).a:JD(n,54)?new ov(n):new dv(n));Gkb(g,o);f=new Rkb;Gkb(f,c);Gkb(f,JD(d,152)?km(BD(d,152)):JD(d,131)?BD(d,131).a:JD(d,54)?new ov(d):new dv(d));Gkb(f,e);yNb(b.f,rtc,g);yNb(b.f,ptc,f);yNb(b.f,stc,b.f);yNb(b.e,rtc,null);yNb(b.e,ptc,null);yNb(b.j,rtc,null);yNb(b.j,ptc,null);break;case 1:ye(k,b.e.a);Dsb(k,b.i.n);ye(k,Su(b.j.a));Dsb(k,b.a.n);ye(k,b.f.a);break;default:ye(k,b.e.a);ye(k,Su(b.j.a));ye(k,b.f.a);}Osb(b.f.a);ye(b.f.a,k);QZb(b.f,b.e.c);h=BD(vNb(b.e,(Nyc(),jxc)),74);j=BD(vNb(b.j,jxc),74);i=BD(vNb(b.f,jxc),74);if(!!h||!!j||!!i){l=new s7c;Goc(l,i);Goc(l,j);Goc(l,h);yNb(b.f,jxc,l)}QZb(b.j,null);RZb(b.j,null);QZb(b.e,null);RZb(b.e,null);$_b(b.a,null);$_b(b.i,null);!!b.g&&Ioc(a,b.g)} +function bde(a){ade();var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(a==null)return null;f=rfb(a);o=ede(f);if(o%4!=0){return null}p=o/4|0;if(p==0)return KC(SD,wte,25,0,15,1);l=null;b=0;c=0;d=0;e=0;g=0;h=0;i=0;j=0;n=0;m=0;k=0;l=KC(SD,wte,25,p*3,15,1);for(;n<p-1;n++){if(!dde(g=f[k++])||!dde(h=f[k++])||!dde(i=f[k++])||!dde(j=f[k++]))return null;b=$ce[g];c=$ce[h];d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}if(!dde(g=f[k++])||!dde(h=f[k++])){return null}b=$ce[g];c=$ce[h];i=f[k++];j=f[k++];if($ce[i]==-1||$ce[j]==-1){if(i==61&&j==61){if((c&15)!=0)return null;q=KC(SD,wte,25,n*3+1,15,1);$fb(l,0,q,0,n*3);q[m]=(b<<2|c>>4)<<24>>24;return q}else if(i!=61&&j==61){d=$ce[i];if((d&3)!=0)return null;q=KC(SD,wte,25,n*3+2,15,1);$fb(l,0,q,0,n*3);q[m++]=(b<<2|c>>4)<<24>>24;q[m]=((c&15)<<4|d>>2&15)<<24>>24;return q}else{return null}}else{d=$ce[i];e=$ce[j];l[m++]=(b<<2|c>>4)<<24>>24;l[m++]=((c&15)<<4|d>>2&15)<<24>>24;l[m++]=(d<<6|e)<<24>>24}return l} +function Sbc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(b,Ine,1);o=BD(vNb(a,(Nyc(),Swc)),218);for(e=new olb(a.b);e.a<e.c.c.length;){d=BD(mlb(e),29);j=l_b(d.a);for(g=j,h=0,i=g.length;h<i;++h){f=g[h];if(f.k!=(j0b(),i0b)){continue}if(o==(Aad(),yad)){for(l=new olb(f.j);l.a<l.c.c.length;){k=BD(mlb(l),11);k.e.c.length==0||Vbc(k);k.g.c.length==0||Wbc(k)}}else if(JD(vNb(f,(wtc(),$sc)),17)){q=BD(vNb(f,$sc),17);r=BD(Y_b(f,(Ucd(),Tcd)).Kc().Pb(),11);s=BD(Y_b(f,zcd).Kc().Pb(),11);t=BD(vNb(r,$sc),11);u=BD(vNb(s,$sc),11);QZb(q,u);RZb(q,t);v=new g7c(s.i.n);v.a=l7c(OC(GC(m1,1),nie,8,0,[u.i.n,u.n,u.a])).a;Dsb(q.a,v);v=new g7c(r.i.n);v.a=l7c(OC(GC(m1,1),nie,8,0,[t.i.n,t.n,t.a])).a;Dsb(q.a,v)}else{if(f.j.c.length>=2){p=true;m=new olb(f.j);c=BD(mlb(m),11);n=null;while(m.a<m.c.c.length){n=c;c=BD(mlb(m),11);if(!pb(vNb(n,$sc),vNb(c,$sc))){p=false;break}}}else{p=false}for(l=new olb(f.j);l.a<l.c.c.length;){k=BD(mlb(l),11);k.e.c.length==0||Tbc(k,p);k.g.c.length==0||Ubc(k,p)}}$_b(f,null)}}Qdd(b)} +function KJc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;t=a.c[(tCb(0,b.c.length),BD(b.c[0],17)).p];A=a.c[(tCb(1,b.c.length),BD(b.c[1],17)).p];if(t.a.e.e-t.a.a-(t.b.e.e-t.b.a)==0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)==0){return false}r=t.b.e.f;if(!JD(r,10)){return false}q=BD(r,10);v=a.i[q.p];w=!q.c?-1:Jkb(q.c.a,q,0);f=Pje;if(w>0){e=BD(Ikb(q.c.a,w-1),10);g=a.i[e.p];B=$wnd.Math.ceil(jBc(a.n,e,q));f=v.a.e-q.d.d-(g.a.e+e.o.b+e.d.a)-B}j=Pje;if(w<q.c.a.c.length-1){i=BD(Ikb(q.c.a,w+1),10);k=a.i[i.p];B=$wnd.Math.ceil(jBc(a.n,i,q));j=k.a.e-i.d.d-(v.a.e+q.o.b+q.d.a)-B}if(c&&(Iy(),My(Jqe),$wnd.Math.abs(f-j)<=Jqe||f==j||isNaN(f)&&isNaN(j))){return true}d=gKc(t.a);h=-gKc(t.b);l=-gKc(A.a);s=gKc(A.b);p=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)>0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)<0;o=t.a.e.e-t.a.a-(t.b.e.e-t.b.a)<0&&A.a.e.e-A.a.a-(A.b.e.e-A.b.a)>0;n=t.a.e.e+t.b.a<A.b.e.e+A.a.a;m=t.a.e.e+t.b.a>A.b.e.e+A.a.a;u=0;!p&&!o&&(m?f+l>0?(u=l):j-d>0&&(u=d):n&&(f+h>0?(u=h):j-s>0&&(u=s)));v.a.e+=u;v.b&&(v.d.e+=u);return false} +function XGb(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=new J6c(b.qf().a,b.qf().b,b.rf().a,b.rf().b);e=new I6c;if(a.c){for(g=new olb(b.wf());g.a<g.c.c.length;){f=BD(mlb(g),181);e.c=f.qf().a+b.qf().a;e.d=f.qf().b+b.qf().b;e.b=f.rf().a;e.a=f.rf().b;H6c(d,e)}}for(j=new olb(b.Cf());j.a<j.c.c.length;){i=BD(mlb(j),838);k=i.qf().a+b.qf().a;l=i.qf().b+b.qf().b;if(a.e){e.c=k;e.d=l;e.b=i.rf().a;e.a=i.rf().b;H6c(d,e)}if(a.d){for(g=new olb(i.wf());g.a<g.c.c.length;){f=BD(mlb(g),181);e.c=f.qf().a+k;e.d=f.qf().b+l;e.b=f.rf().a;e.a=f.rf().b;H6c(d,e)}}if(a.b){m=new f7c(-c,-c);if(BD(b.We((Y9c(),x9c)),174).Hc((rcd(),pcd))){for(g=new olb(i.wf());g.a<g.c.c.length;){f=BD(mlb(g),181);m.a+=f.rf().a+c;m.b+=f.rf().b+c}}m.a=$wnd.Math.max(m.a,0);m.b=$wnd.Math.max(m.b,0);VGb(d,i.Bf(),i.zf(),b,i,m,c)}}a.b&&VGb(d,b.Bf(),b.zf(),b,null,null,c);h=new K_b(b.Af());h.d=$wnd.Math.max(0,b.qf().b-d.d);h.a=$wnd.Math.max(0,d.d+d.a-(b.qf().b+b.rf().b));h.b=$wnd.Math.max(0,b.qf().a-d.c);h.c=$wnd.Math.max(0,d.c+d.b-(b.qf().a+b.rf().a));b.Ef(h)} +function wz(){var a=['\\u0000','\\u0001','\\u0002','\\u0003','\\u0004','\\u0005','\\u0006','\\u0007','\\b','\\t','\\n','\\u000B','\\f','\\r','\\u000E','\\u000F','\\u0010','\\u0011','\\u0012','\\u0013','\\u0014','\\u0015','\\u0016','\\u0017','\\u0018','\\u0019','\\u001A','\\u001B','\\u001C','\\u001D','\\u001E','\\u001F'];a[34]='\\"';a[92]='\\\\';a[173]='\\u00ad';a[1536]='\\u0600';a[1537]='\\u0601';a[1538]='\\u0602';a[1539]='\\u0603';a[1757]='\\u06dd';a[1807]='\\u070f';a[6068]='\\u17b4';a[6069]='\\u17b5';a[8203]='\\u200b';a[8204]='\\u200c';a[8205]='\\u200d';a[8206]='\\u200e';a[8207]='\\u200f';a[8232]='\\u2028';a[8233]='\\u2029';a[8234]='\\u202a';a[8235]='\\u202b';a[8236]='\\u202c';a[8237]='\\u202d';a[8238]='\\u202e';a[8288]='\\u2060';a[8289]='\\u2061';a[8290]='\\u2062';a[8291]='\\u2063';a[8292]='\\u2064';a[8298]='\\u206a';a[8299]='\\u206b';a[8300]='\\u206c';a[8301]='\\u206d';a[8302]='\\u206e';a[8303]='\\u206f';a[65279]='\\ufeff';a[65529]='\\ufff9';a[65530]='\\ufffa';a[65531]='\\ufffb';return a} +function pid(a,b,c){var d,e,f,g,h,i,j,k,l,m;i=new Rkb;l=b.length;g=AUd(c);for(j=0;j<l;++j){k=ifb(b,wfb(61),j);d=$hd(g,b.substr(j,k-j));e=KJd(d);f=e.Aj().Nh();switch(bfb(b,++k)){case 39:{h=gfb(b,39,++k);Ekb(i,new kGd(d,Pid(b.substr(k,h-k),f,e)));j=h+1;break}case 34:{h=gfb(b,34,++k);Ekb(i,new kGd(d,Pid(b.substr(k,h-k),f,e)));j=h+1;break}case 91:{m=new Rkb;Ekb(i,new kGd(d,m));n:for(;;){switch(bfb(b,++k)){case 39:{h=gfb(b,39,++k);Ekb(m,Pid(b.substr(k,h-k),f,e));k=h+1;break}case 34:{h=gfb(b,34,++k);Ekb(m,Pid(b.substr(k,h-k),f,e));k=h+1;break}case 110:{++k;if(b.indexOf('ull',k)==k){m.c[m.c.length]=null}else{throw vbb(new hz(kte))}k+=3;break}}if(k<l){switch(BCb(k,b.length),b.charCodeAt(k)){case 44:{break}case 93:{break n}default:{throw vbb(new hz('Expecting , or ]'))}}}else{break}}j=k+1;break}case 110:{++k;if(b.indexOf('ull',k)==k){Ekb(i,new kGd(d,null))}else{throw vbb(new hz(kte))}j=k+3;break}}if(j<l){BCb(j,b.length);if(b.charCodeAt(j)!=44){throw vbb(new hz('Expecting ,'))}}else{break}}return qid(a,i,c)} +function AKb(a,b){var c,d,e,f,g,h,i,j,k,l,m;j=BD(BD(Qc(a.r,b),21),84);g=bKb(a,b);c=a.u.Hc((rcd(),lcd));for(i=j.Kc();i.Ob();){h=BD(i.Pb(),111);if(!h.c||h.c.d.c.length<=0){continue}m=h.b.rf();k=h.c;l=k.i;l.b=(f=k.n,k.e.a+f.b+f.c);l.a=(e=k.n,k.e.b+e.d+e.a);switch(b.g){case 1:if(h.a){l.c=(m.a-l.b)/2;$Hb(k,(NHb(),KHb))}else if(g||c){l.c=-l.b-a.s;$Hb(k,(NHb(),MHb))}else{l.c=m.a+a.s;$Hb(k,(NHb(),LHb))}l.d=-l.a-a.t;_Hb(k,(EIb(),BIb));break;case 3:if(h.a){l.c=(m.a-l.b)/2;$Hb(k,(NHb(),KHb))}else if(g||c){l.c=-l.b-a.s;$Hb(k,(NHb(),MHb))}else{l.c=m.a+a.s;$Hb(k,(NHb(),LHb))}l.d=m.b+a.t;_Hb(k,(EIb(),DIb));break;case 2:if(h.a){d=a.v?l.a:BD(Ikb(k.d,0),181).rf().b;l.d=(m.b-d)/2;_Hb(k,(EIb(),CIb))}else if(g||c){l.d=-l.a-a.t;_Hb(k,(EIb(),BIb))}else{l.d=m.b+a.t;_Hb(k,(EIb(),DIb))}l.c=m.a+a.s;$Hb(k,(NHb(),LHb));break;case 4:if(h.a){d=a.v?l.a:BD(Ikb(k.d,0),181).rf().b;l.d=(m.b-d)/2;_Hb(k,(EIb(),CIb))}else if(g||c){l.d=-l.a-a.t;_Hb(k,(EIb(),BIb))}else{l.d=m.b+a.t;_Hb(k,(EIb(),DIb))}l.c=-l.b-a.s;$Hb(k,(NHb(),MHb));}g=false}} +function Kfe(a,b){wfe();var c,d,e,f,g,h,i,j,k,l,m,n,o;if(Vhb(Zee)==0){l=KC(lbb,nie,117,_ee.length,0,1);for(g=0;g<l.length;g++){l[g]=(++vfe,new $fe(4))}d=new Ifb;for(f=0;f<Yee.length;f++){k=(++vfe,new $fe(4));if(f<84){h=f*2;n=(BCb(h,wxe.length),wxe.charCodeAt(h));m=(BCb(h+1,wxe.length),wxe.charCodeAt(h+1));Ufe(k,n,m)}else{h=(f-84)*2;Ufe(k,afe[h],afe[h+1])}i=Yee[f];dfb(i,'Specials')&&Ufe(k,65520,65533);if(dfb(i,uxe)){Ufe(k,983040,1048573);Ufe(k,1048576,1114109)}Shb(Zee,i,k);Shb($ee,i,_fe(k));j=d.a.length;0<j?(d.a=d.a.substr(0,0)):0>j&&(d.a+=yfb(KC(TD,$ie,25,-j,15,1)));d.a+='Is';if(hfb(i,wfb(32))>=0){for(e=0;e<i.length;e++){BCb(e,i.length);i.charCodeAt(e)!=32&&Afb(d,(BCb(e,i.length),i.charCodeAt(e)))}}else{d.a+=''+i}Ofe(d.a,i,true)}Ofe(vxe,'Cn',false);Ofe(xxe,'Cn',true);c=(++vfe,new $fe(4));Ufe(c,0,lxe);Shb(Zee,'ALL',c);Shb($ee,'ALL',_fe(c));!bfe&&(bfe=new Lqb);Shb(bfe,vxe,vxe);!bfe&&(bfe=new Lqb);Shb(bfe,xxe,xxe);!bfe&&(bfe=new Lqb);Shb(bfe,'ALL','ALL')}o=b?BD(Phb(Zee,a),136):BD(Phb($ee,a),136);return o} +function c3b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;m=false;l=false;if(fcd(BD(vNb(d,(Nyc(),Vxc)),98))){g=false;h=false;t:for(o=new olb(d.j);o.a<o.c.c.length;){n=BD(mlb(o),11);for(q=ul(pl(OC(GC(KI,1),Uhe,20,0,[new J0b(n),new R0b(n)])));Qr(q);){p=BD(Rr(q),11);if(!Ccb(DD(vNb(p.i,pwc)))){if(n.j==(Ucd(),Acd)){g=true;break t}if(n.j==Rcd){h=true;break t}}}}m=h&&!g;l=g&&!h}if(!m&&!l&&d.b.c.length!=0){k=0;for(j=new olb(d.b);j.a<j.c.c.length;){i=BD(mlb(j),70);k+=i.n.b+i.o.b/2}k/=d.b.c.length;s=k>=d.o.b/2}else{s=!l}if(s){r=BD(vNb(d,(wtc(),vtc)),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else if(m){f=r}else{e=BD(vNb(d,tsc),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else{r.gc()<=e.gc()?(f=r):(f=e)}}}else{e=BD(vNb(d,(wtc(),tsc)),15);if(!e){f=new Rkb;yNb(d,tsc,f)}else if(l){f=e}else{r=BD(vNb(d,vtc),15);if(!r){f=new Rkb;yNb(d,vtc,f)}else{e.gc()<=r.gc()?(f=e):(f=r)}}}f.Fc(a);yNb(a,(wtc(),vsc),c);if(b.d==c){RZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null);d3b(c)}else{QZb(b,null);c.e.c.length+c.g.c.length==0&&F0b(c,null)}Osb(b.a)} +function aoc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;s=new Bib(a.b,0);k=b.Kc();o=0;j=BD(k.Pb(),19).a;v=0;c=new Tqb;A=new zsb;while(s.b<s.d.gc()){r=(sCb(s.b<s.d.gc()),BD(s.d.Xb(s.c=s.b++),29));for(u=new olb(r.a);u.a<u.c.c.length;){t=BD(mlb(u),10);for(n=new Sr(ur(U_b(t).a.Kc(),new Sq));Qr(n);){l=BD(Rr(n),17);A.a.zc(l,A)}for(m=new Sr(ur(R_b(t).a.Kc(),new Sq));Qr(m);){l=BD(Rr(m),17);A.a.Bc(l)!=null}}if(o+1==j){e=new H1b(a);Aib(s,e);f=new H1b(a);Aib(s,f);for(C=A.a.ec().Kc();C.Ob();){B=BD(C.Pb(),17);if(!c.a._b(B)){++v;c.a.zc(B,c)}g=new b0b(a);yNb(g,(Nyc(),Vxc),(dcd(),acd));$_b(g,e);__b(g,(j0b(),d0b));p=new H0b;F0b(p,g);G0b(p,(Ucd(),Tcd));D=new H0b;F0b(D,g);G0b(D,zcd);d=new b0b(a);yNb(d,Vxc,acd);$_b(d,f);__b(d,d0b);q=new H0b;F0b(q,d);G0b(q,Tcd);F=new H0b;F0b(F,d);G0b(F,zcd);w=new UZb;QZb(w,B.c);RZb(w,p);H=new UZb;QZb(H,D);RZb(H,q);QZb(B,F);h=new goc(g,d,w,H,B);yNb(g,(wtc(),usc),h);yNb(d,usc,h);G=w.c.i;if(G.k==d0b){i=BD(vNb(G,usc),305);i.d=h;h.g=i}}if(k.Ob()){j=BD(k.Pb(),19).a}else{break}}++o}return meb(v)} +function T1b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;l=0;for(e=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);if(!Ccb(DD(hkd(d,(Nyc(),Jxc))))){if((PD(hkd(b,ywc))!==PD((tAc(),rAc))||PD(hkd(b,Jwc))===PD((mqc(),lqc))||PD(hkd(b,Jwc))===PD((mqc(),jqc))||Ccb(DD(hkd(b,Awc)))||PD(hkd(b,twc))!==PD((RXb(),QXb)))&&!Ccb(DD(hkd(d,xwc)))){jkd(d,(wtc(),Zsc),meb(l));++l}$1b(a,d,c)}}l=0;for(j=new Fyd((!b.b&&(b.b=new cUd(B2,b,12,3)),b.b));j.e!=j.i.gc();){h=BD(Dyd(j),79);if(PD(hkd(b,(Nyc(),ywc)))!==PD((tAc(),rAc))||PD(hkd(b,Jwc))===PD((mqc(),lqc))||PD(hkd(b,Jwc))===PD((mqc(),jqc))||Ccb(DD(hkd(b,Awc)))||PD(hkd(b,twc))!==PD((RXb(),QXb))){jkd(h,(wtc(),Zsc),meb(l));++l}o=jtd(h);p=ltd(h);k=Ccb(DD(hkd(o,fxc)));n=!Ccb(DD(hkd(h,Jxc)));m=k&&Qld(h)&&Ccb(DD(hkd(h,gxc)));f=Xod(o)==b&&Xod(o)==Xod(p);g=(Xod(o)==b&&p==b)^(Xod(p)==b&&o==b);n&&!m&&(g||f)&&X1b(a,h,b,c)}if(Xod(b)){for(i=new Fyd(Wod(Xod(b)));i.e!=i.i.gc();){h=BD(Dyd(i),79);o=jtd(h);if(o==b&&Qld(h)){m=Ccb(DD(hkd(o,(Nyc(),fxc))))&&Ccb(DD(hkd(h,gxc)));m&&X1b(a,h,b,c)}}}} +function gDc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;Odd(c,'MinWidth layering',1);n=b.b;A=b.a;I=BD(vNb(b,(Nyc(),oxc)),19).a;h=BD(vNb(b,pxc),19).a;a.b=Edb(ED(vNb(b,lyc)));a.d=Pje;for(u=new olb(A);u.a<u.c.c.length;){s=BD(mlb(u),10);if(s.k!=(j0b(),h0b)){continue}D=s.o.b;a.d=$wnd.Math.min(a.d,D)}a.d=$wnd.Math.max(1,a.d);B=A.c.length;a.c=KC(WD,oje,25,B,15,1);a.f=KC(WD,oje,25,B,15,1);a.e=KC(UD,Vje,25,B,15,1);j=0;a.a=0;for(v=new olb(A);v.a<v.c.c.length;){s=BD(mlb(v),10);s.p=j++;a.c[s.p]=eDc(R_b(s));a.f[s.p]=eDc(U_b(s));a.e[s.p]=s.o.b/a.d;a.a+=a.e[s.p]}a.b/=a.d;a.a/=B;w=fDc(A);Okb(A,tmb(new mDc(a)));p=Pje;o=Ohe;g=null;H=I;G=I;f=h;e=h;if(I<0){H=BD(bDc.a.zd(),19).a;G=BD(bDc.b.zd(),19).a}if(h<0){f=BD(aDc.a.zd(),19).a;e=BD(aDc.b.zd(),19).a}for(F=H;F<=G;F++){for(d=f;d<=e;d++){C=dDc(a,F,d,A,w);r=Edb(ED(C.a));m=BD(C.b,15);q=m.gc();if(r<p||r==p&&q<o){p=r;o=q;g=m}}}for(l=g.Kc();l.Ob();){k=BD(l.Pb(),15);i=new H1b(b);for(t=k.Kc();t.Ob();){s=BD(t.Pb(),10);$_b(s,i)}n.c[n.c.length]=i}smb(n);A.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function I6b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;a.b=b;a.a=BD(vNb(b,(Nyc(),bxc)),19).a;a.c=BD(vNb(b,dxc),19).a;a.c==0&&(a.c=Ohe);q=new Bib(b.b,0);while(q.b<q.d.gc()){p=(sCb(q.b<q.d.gc()),BD(q.d.Xb(q.c=q.b++),29));h=new Rkb;k=-1;u=-1;for(t=new olb(p.a);t.a<t.c.c.length;){s=BD(mlb(t),10);if(sr((D6b(),new Sr(ur(O_b(s).a.Kc(),new Sq))))>=a.a){d=E6b(a,s);k=$wnd.Math.max(k,d.b);u=$wnd.Math.max(u,d.d);Ekb(h,new vgd(s,d))}}B=new Rkb;for(j=0;j<k;++j){Dkb(B,0,(sCb(q.b>0),q.a.Xb(q.c=--q.b),C=new H1b(a.b),Aib(q,C),sCb(q.b<q.d.gc()),q.d.Xb(q.c=q.b++),C))}for(g=new olb(h);g.a<g.c.c.length;){e=BD(mlb(g),46);n=BD(e.b,571).a;if(!n){continue}for(m=new olb(n);m.a<m.c.c.length;){l=BD(mlb(m),10);H6b(a,l,B6b,B)}}c=new Rkb;for(i=0;i<u;++i){Ekb(c,(D=new H1b(a.b),Aib(q,D),D))}for(f=new olb(h);f.a<f.c.c.length;){e=BD(mlb(f),46);A=BD(e.b,571).c;if(!A){continue}for(w=new olb(A);w.a<w.c.c.length;){v=BD(mlb(w),10);H6b(a,v,C6b,c)}}}r=new Bib(b.b,0);while(r.b<r.d.gc()){o=(sCb(r.b<r.d.gc()),BD(r.d.Xb(r.c=r.b++),29));o.a.c.length==0&&uib(r)}} +function uQc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;Odd(c,'Spline edge routing',1);if(b.b.c.length==0){b.f.a=0;Qdd(c);return}s=Edb(ED(vNb(b,(Nyc(),wyc))));h=Edb(ED(vNb(b,pyc)));g=Edb(ED(vNb(b,myc)));r=BD(vNb(b,Xwc),336);B=r==(tBc(),sBc);A=Edb(ED(vNb(b,Ywc)));a.d=b;a.j.c=KC(SI,Uhe,1,0,5,1);a.a.c=KC(SI,Uhe,1,0,5,1);Uhb(a.k);i=BD(Ikb(b.b,0),29);k=Kq(i.a,(FNc(),DNc));o=BD(Ikb(b.b,b.b.c.length-1),29);l=Kq(o.a,DNc);p=new olb(b.b);q=null;G=0;do{t=p.a<p.c.c.length?BD(mlb(p),29):null;iQc(a,q,t);lQc(a);C=Vtb(uAb(PAb(JAb(new YAb(null,new Kub(a.i,16)),new LQc),new NQc)));F=0;u=G;m=!q||k&&q==i;n=!t||l&&t==o;if(C>0){j=0;!!q&&(j+=h);j+=(C-1)*g;!!t&&(j+=h);B&&!!t&&(j=$wnd.Math.max(j,jQc(t,g,s,A)));if(j<s&&!m&&!n){F=(s-j)/2;j=s}u+=j}else !m&&!n&&(u+=s);!!t&&h_b(t,u);for(w=new olb(a.i);w.a<w.c.c.length;){v=BD(mlb(w),128);v.a.c=G;v.a.b=u-G;v.F=F;v.p=!q}Gkb(a.a,a.i);G=u;!!t&&(G+=t.c.a);q=t;m=n}while(t);for(e=new olb(a.j);e.a<e.c.c.length;){d=BD(mlb(e),17);f=pQc(a,d);yNb(d,(wtc(),ptc),f);D=rQc(a,d);yNb(d,rtc,D)}b.f.a=G;a.d=null;Qdd(c)} +function Yxd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;p=a.i!=0;t=false;r=null;if(oid(a.e)){k=b.gc();if(k>0){m=k<100?null:new Ixd(k);j=new Aud(b);o=j.g;r=KC(WD,oje,25,k,15,1);d=0;u=new zud(k);for(e=0;e<a.i;++e){h=a.g[e];n=h;v:for(s=0;s<2;++s){for(i=k;--i>=0;){if(n!=null?pb(n,o[i]):PD(n)===PD(o[i])){if(r.length<=d){q=r;r=KC(WD,oje,25,2*r.length,15,1);$fb(q,0,r,0,d)}r[d++]=e;wtd(u,o[i]);break v}}n=n;if(PD(n)===PD(h)){break}}}j=u;o=u.g;k=d;if(d>r.length){q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}if(d>0){t=true;for(f=0;f<d;++f){n=o[f];m=k3d(a,BD(n,72),m)}for(g=d;--g>=0;){tud(a,r[g])}if(d!=k){for(e=k;--e>=d;){tud(j,e)}q=r;r=KC(WD,oje,25,d,15,1);$fb(q,0,r,0,d)}b=j}}}else{b=Ctd(a,b);for(e=a.i;--e>=0;){if(b.Hc(a.g[e])){tud(a,e);t=true}}}if(t){if(r!=null){c=b.gc();l=c==1?FLd(a,4,b.Kc().Pb(),null,r[0],p):FLd(a,6,b,r,r[0],p);m=c<100?null:new Ixd(c);for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}if(!m){Uhd(a.e,l)}else{m.Ei(l);m.Fi()}}else{m=Vxd(b.gc());for(e=b.Kc();e.Ob();){n=e.Pb();m=Q2d(a,BD(n,72),m)}!!m&&m.Fi()}return true}else{return false}} +function fYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;c=new mYb(b);c.a||$Xb(b);j=ZXb(b);i=new Hp;q=new AYb;for(p=new olb(b.a);p.a<p.c.c.length;){o=BD(mlb(p),10);for(e=new Sr(ur(U_b(o).a.Kc(),new Sq));Qr(e);){d=BD(Rr(e),17);if(d.c.i.k==(j0b(),e0b)||d.d.i.k==e0b){k=eYb(a,d,j,q);Rc(i,cYb(k.d),k.a)}}}g=new Rkb;for(t=BD(vNb(c.c,(wtc(),Esc)),21).Kc();t.Ob();){s=BD(t.Pb(),61);n=q.c[s.g];m=q.b[s.g];h=q.a[s.g];f=null;r=null;switch(s.g){case 4:f=new J6c(a.d.a,n,j.b.a-a.d.a,m-n);r=new J6c(a.d.a,n,h,m-n);iYb(j,new f7c(f.c+f.b,f.d));iYb(j,new f7c(f.c+f.b,f.d+f.a));break;case 2:f=new J6c(j.a.a,n,a.c.a-j.a.a,m-n);r=new J6c(a.c.a-h,n,h,m-n);iYb(j,new f7c(f.c,f.d));iYb(j,new f7c(f.c,f.d+f.a));break;case 1:f=new J6c(n,a.d.b,m-n,j.b.b-a.d.b);r=new J6c(n,a.d.b,m-n,h);iYb(j,new f7c(f.c,f.d+f.a));iYb(j,new f7c(f.c+f.b,f.d+f.a));break;case 3:f=new J6c(n,j.a.b,m-n,a.c.b-j.a.b);r=new J6c(n,a.c.b-h,m-n,h);iYb(j,new f7c(f.c,f.d));iYb(j,new f7c(f.c+f.b,f.d));}if(f){l=new vYb;l.d=s;l.b=f;l.c=r;l.a=Dx(BD(Qc(i,cYb(s)),21));g.c[g.c.length]=l}}Gkb(c.b,g);c.d=BWb(JWb(j));return c} +function pMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(c.p[b.p]!=null){return}h=true;c.p[b.p]=0;g=b;p=c.o==(eMc(),cMc)?Qje:Pje;do{e=a.b.e[g.p];f=g.c.a.c.length;if(c.o==cMc&&e>0||c.o==dMc&&e<f-1){i=null;j=null;c.o==dMc?(i=BD(Ikb(g.c.a,e+1),10)):(i=BD(Ikb(g.c.a,e-1),10));j=c.g[i.p];pMc(a,j,c);p=a.e.bg(p,b,g);c.j[b.p]==b&&(c.j[b.p]=c.j[j.p]);if(c.j[b.p]==c.j[j.p]){o=jBc(a.d,g,i);if(c.o==dMc){d=Edb(c.p[b.p]);l=Edb(c.p[j.p])+Edb(c.d[i.p])-i.d.d-o-g.d.a-g.o.b-Edb(c.d[g.p]);if(h){h=false;c.p[b.p]=$wnd.Math.min(l,p)}else{c.p[b.p]=$wnd.Math.min(d,$wnd.Math.min(l,p))}}else{d=Edb(c.p[b.p]);l=Edb(c.p[j.p])+Edb(c.d[i.p])+i.o.b+i.d.a+o+g.d.d-Edb(c.d[g.p]);if(h){h=false;c.p[b.p]=$wnd.Math.max(l,p)}else{c.p[b.p]=$wnd.Math.max(d,$wnd.Math.max(l,p))}}}else{o=Edb(ED(vNb(a.a,(Nyc(),vyc))));n=nMc(a,c.j[b.p]);k=nMc(a,c.j[j.p]);if(c.o==dMc){m=Edb(c.p[b.p])+Edb(c.d[g.p])+g.o.b+g.d.a+o-(Edb(c.p[j.p])+Edb(c.d[i.p])-i.d.d);tMc(n,k,m)}else{m=Edb(c.p[b.p])+Edb(c.d[g.p])-g.d.d-Edb(c.p[j.p])-Edb(c.d[i.p])-i.o.b-i.d.a-o;tMc(n,k,m)}}}else{p=a.e.bg(p,b,g)}g=c.a[g.p]}while(g!=b);SMc(a.e,b)} +function _qd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;t=b;s=new Hp;u=new Hp;k=Ypd(t,Nte);d=new ord(a,c,s,u);qqd(d.a,d.b,d.c,d.d,k);i=(A=s.i,!A?(s.i=new zf(s,s.c)):A);for(C=i.Kc();C.Ob();){B=BD(C.Pb(),202);e=BD(Qc(s,B),21);for(p=e.Kc();p.Ob();){o=p.Pb();v=BD(oo(a.d,o),202);if(v){h=(!B.e&&(B.e=new y5d(A2,B,10,9)),B.e);wtd(h,v)}else{g=_pd(t,Vte);m=_te+o+aue+g;n=m+$te;throw vbb(new cqd(n))}}}j=(w=u.i,!w?(u.i=new zf(u,u.c)):w);for(F=j.Kc();F.Ob();){D=BD(F.Pb(),202);f=BD(Qc(u,D),21);for(r=f.Kc();r.Ob();){q=r.Pb();v=BD(oo(a.d,q),202);if(v){l=(!D.g&&(D.g=new y5d(A2,D,9,10)),D.g);wtd(l,v)}else{g=_pd(t,Vte);m=_te+q+aue+g;n=m+$te;throw vbb(new cqd(n))}}}!c.b&&(c.b=new y5d(z2,c,4,7));if(c.b.i!=0&&(!c.c&&(c.c=new y5d(z2,c,5,8)),c.c.i!=0)&&(!c.b&&(c.b=new y5d(z2,c,4,7)),c.b.i<=1&&(!c.c&&(c.c=new y5d(z2,c,5,8)),c.c.i<=1))&&(!c.a&&(c.a=new cUd(A2,c,6,6)),c.a).i==1){G=BD(qud((!c.a&&(c.a=new cUd(A2,c,6,6)),c.a),0),202);if(!dmd(G)&&!emd(G)){kmd(G,BD(qud((!c.b&&(c.b=new y5d(z2,c,4,7)),c.b),0),82));lmd(G,BD(qud((!c.c&&(c.c=new y5d(z2,c,5,8)),c.c),0),82))}}} +function qJc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;for(t=a.a,u=0,v=t.length;u<v;++u){s=t[u];j=Ohe;k=Ohe;for(o=new olb(s.e);o.a<o.c.c.length;){m=BD(mlb(o),10);g=!m.c?-1:Jkb(m.c.a,m,0);if(g>0){l=BD(Ikb(m.c.a,g-1),10);B=jBc(a.b,m,l);q=m.n.b-m.d.d-(l.n.b+l.o.b+l.d.a+B)}else{q=m.n.b-m.d.d}j=$wnd.Math.min(q,j);if(g<m.c.a.c.length-1){l=BD(Ikb(m.c.a,g+1),10);B=jBc(a.b,m,l);r=l.n.b-l.d.d-(m.n.b+m.o.b+m.d.a+B)}else{r=2*m.n.b}k=$wnd.Math.min(r,k)}i=Ohe;f=false;e=BD(Ikb(s.e,0),10);for(D=new olb(e.j);D.a<D.c.c.length;){C=BD(mlb(D),11);p=e.n.b+C.n.b+C.a.b;for(d=new olb(C.e);d.a<d.c.c.length;){c=BD(mlb(d),17);w=c.c;b=w.i.n.b+w.n.b+w.a.b-p;if($wnd.Math.abs(b)<$wnd.Math.abs(i)&&$wnd.Math.abs(b)<(b<0?j:k)){i=b;f=true}}}h=BD(Ikb(s.e,s.e.c.length-1),10);for(A=new olb(h.j);A.a<A.c.c.length;){w=BD(mlb(A),11);p=h.n.b+w.n.b+w.a.b;for(d=new olb(w.g);d.a<d.c.c.length;){c=BD(mlb(d),17);C=c.d;b=C.i.n.b+C.n.b+C.a.b-p;if($wnd.Math.abs(b)<$wnd.Math.abs(i)&&$wnd.Math.abs(b)<(b<0?j:k)){i=b;f=true}}}if(f&&i!=0){for(n=new olb(s.e);n.a<n.c.c.length;){m=BD(mlb(n),10);m.n.b+=i}}}} +function ync(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;if(Mhb(a.a,b)){if(Rqb(BD(Ohb(a.a,b),53),c)){return 1}}else{Rhb(a.a,b,new Tqb)}if(Mhb(a.a,c)){if(Rqb(BD(Ohb(a.a,c),53),b)){return -1}}else{Rhb(a.a,c,new Tqb)}if(Mhb(a.e,b)){if(Rqb(BD(Ohb(a.e,b),53),c)){return -1}}else{Rhb(a.e,b,new Tqb)}if(Mhb(a.e,c)){if(Rqb(BD(Ohb(a.a,c),53),b)){return 1}}else{Rhb(a.e,c,new Tqb)}if(a.c==(tAc(),sAc)||!wNb(b,(wtc(),Zsc))||!wNb(c,(wtc(),Zsc))){i=BD(Etb(Dtb(KAb(JAb(new YAb(null,new Kub(b.j,16)),new Hnc)),new Jnc)),11);k=BD(Etb(Dtb(KAb(JAb(new YAb(null,new Kub(c.j,16)),new Lnc)),new Nnc)),11);if(!!i&&!!k){h=i.i;j=k.i;if(!!h&&h==j){for(m=new olb(h.j);m.a<m.c.c.length;){l=BD(mlb(m),11);if(l==i){Anc(a,c,b);return -1}else if(l==k){Anc(a,b,c);return 1}}return beb(znc(a,b),znc(a,c))}for(o=a.d,p=0,q=o.length;p<q;++p){n=o[p];if(n==h){Anc(a,c,b);return -1}else if(n==j){Anc(a,b,c);return 1}}}if(!wNb(b,(wtc(),Zsc))||!wNb(c,Zsc)){e=znc(a,b);g=znc(a,c);e>g?Anc(a,b,c):Anc(a,c,b);return e<g?-1:e>g?1:0}}d=BD(vNb(b,(wtc(),Zsc)),19).a;f=BD(vNb(c,Zsc),19).a;d>f?Anc(a,b,c):Anc(a,c,b);return d<f?-1:d>f?1:0} +function u2c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;if(Ccb(DD(hkd(b,(Y9c(),d9c))))){return mmb(),mmb(),jmb}j=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i!=0;l=s2c(b);k=!l.dc();if(j||k){e=BD(hkd(b,F9c),149);if(!e){throw vbb(new y2c('Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout.'))}s=D3c(e,(Csd(),ysd));q2c(b);if(!j&&k&&!s){return mmb(),mmb(),jmb}i=new Rkb;if(PD(hkd(b,J8c))===PD((hbd(),ebd))&&(D3c(e,vsd)||D3c(e,usd))){n=p2c(a,b);o=new Psb;ye(o,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(o.b!=0){m=BD(o.b==0?null:(sCb(o.b!=0),Nsb(o,o.a.a)),33);q2c(m);r=PD(hkd(m,J8c))===PD(gbd);if(r||ikd(m,o8c)&&!C3c(e,hkd(m,F9c))){h=u2c(a,m,c,d);Gkb(i,h);jkd(m,J8c,gbd);hfd(m)}else{ye(o,(!m.a&&(m.a=new cUd(E2,m,10,11)),m.a))}}}else{n=(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a).i;for(g=new Fyd((!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));g.e!=g.i.gc();){f=BD(Dyd(g),33);h=u2c(a,f,c,d);Gkb(i,h);hfd(f)}}for(q=new olb(i);q.a<q.c.c.length;){p=BD(mlb(q),79);jkd(p,d9c,(Bcb(),true))}r2c(b,e,Udd(d,n));v2c(i);return k&&s?l:(mmb(),mmb(),jmb)}else{return mmb(),mmb(),jmb}} +function Z$b(a,b,c,d,e,f,g,h,i){var j,k,l,m,n,o,p;n=c;k=new b0b(i);__b(k,(j0b(),e0b));yNb(k,(wtc(),Isc),g);yNb(k,(Nyc(),Vxc),(dcd(),$bd));p=Edb(ED(a.We(Uxc)));yNb(k,Uxc,p);l=new H0b;F0b(l,k);if(!(b!=bcd&&b!=ccd)){d>=0?(n=Zcd(h)):(n=Wcd(Zcd(h)));a.Ye($xc,n)}j=new d7c;m=false;if(a.Xe(Txc)){a7c(j,BD(a.We(Txc),8));m=true}else{_6c(j,g.a/2,g.b/2)}switch(n.g){case 4:yNb(k,mxc,(Ctc(),ytc));yNb(k,Bsc,(Gqc(),Fqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),zcd));m||(j.a=g.a);j.a-=g.a;break;case 2:yNb(k,mxc,(Ctc(),Atc));yNb(k,Bsc,(Gqc(),Dqc));k.o.b=g.b;p<0&&(k.o.a=-p);G0b(l,(Ucd(),Tcd));m||(j.a=0);break;case 1:yNb(k,Osc,(esc(),dsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Rcd));m||(j.b=g.b);j.b-=g.b;break;case 3:yNb(k,Osc,(esc(),bsc));k.o.a=g.a;p<0&&(k.o.b=-p);G0b(l,(Ucd(),Acd));m||(j.b=0);}a7c(l.n,j);yNb(k,Txc,j);if(b==Zbd||b==_bd||b==$bd){o=0;if(b==Zbd&&a.Xe(Wxc)){switch(n.g){case 1:case 2:o=BD(a.We(Wxc),19).a;break;case 3:case 4:o=-BD(a.We(Wxc),19).a;}}else{switch(n.g){case 4:case 2:o=f.b;b==_bd&&(o/=e.b);break;case 1:case 3:o=f.a;b==_bd&&(o/=e.a);}}yNb(k,htc,o)}yNb(k,Hsc,n);return k} +function AGc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;c=Edb(ED(vNb(a.a.j,(Nyc(),Ewc))));if(c<-1||!a.a.i||ecd(BD(vNb(a.a.o,Vxc),98))||V_b(a.a.o,(Ucd(),zcd)).gc()<2&&V_b(a.a.o,Tcd).gc()<2){return true}if(a.a.c.Rf()){return false}v=0;u=0;t=new Rkb;for(i=a.a.e,j=0,k=i.length;j<k;++j){h=i[j];for(m=h,n=0,p=m.length;n<p;++n){l=m[n];if(l.k==(j0b(),i0b)){t.c[t.c.length]=l;continue}d=a.b[l.c.p][l.p];if(l.k==e0b){d.b=1;BD(vNb(l,(wtc(),$sc)),11).j==(Ucd(),zcd)&&(u+=d.a)}else{C=V_b(l,(Ucd(),Tcd));C.dc()||!Lq(C,new NGc)?(d.c=1):(e=V_b(l,zcd),(e.dc()||!Lq(e,new JGc))&&(v+=d.a))}for(g=new Sr(ur(U_b(l).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);v+=d.c;u+=d.b;B=f.d.i;zGc(a,d,B)}r=pl(OC(GC(KI,1),Uhe,20,0,[V_b(l,(Ucd(),Acd)),V_b(l,Rcd)]));for(A=new Sr(new xl(r.a.length,r.a));Qr(A);){w=BD(Rr(A),11);s=BD(vNb(w,(wtc(),gtc)),10);if(s){v+=d.c;u+=d.b;zGc(a,d,s)}}}for(o=new olb(t);o.a<o.c.c.length;){l=BD(mlb(o),10);d=a.b[l.c.p][l.p];for(g=new Sr(ur(U_b(l).a.Kc(),new Sq));Qr(g);){f=BD(Rr(g),17);v+=d.c;u+=d.b;B=f.d.i;zGc(a,d,B)}}t.c=KC(SI,Uhe,1,0,5,1)}b=v+u;q=b==0?Pje:(v-u)/b;return q>=c} +function ovd(){mvd();function h(f){var g=this;this.dispatch=function(a){var b=a.data;switch(b.cmd){case 'algorithms':var c=pvd((mmb(),new lnb(new $ib(lvd.b))));f.postMessage({id:b.id,data:c});break;case 'categories':var d=pvd((mmb(),new lnb(new $ib(lvd.c))));f.postMessage({id:b.id,data:d});break;case 'options':var e=pvd((mmb(),new lnb(new $ib(lvd.d))));f.postMessage({id:b.id,data:e});break;case 'register':svd(b.algorithms);f.postMessage({id:b.id});break;case 'layout':qvd(b.graph,b.layoutOptions||{},b.options||{});f.postMessage({id:b.id,data:b.graph});break;}};this.saveDispatch=function(b){try{g.dispatch(b)}catch(a){f.postMessage({id:b.data.id,error:a})}}} +function j(b){var c=this;this.dispatcher=new h({postMessage:function(a){c.onmessage({data:a})}});this.postMessage=function(a){setTimeout(function(){c.dispatcher.saveDispatch({data:a})},0)}} +if(typeof document===uke&&typeof self!==uke){var i=new h(self);self.onmessage=i.saveDispatch}else if(typeof module!==uke&&module.exports){Object.defineProperty(exports,'__esModule',{value:true});module.exports={'default':j,Worker:j}}} +function aae(a){if(a.N)return;a.N=true;a.b=Lnd(a,0);Knd(a.b,0);Knd(a.b,1);Knd(a.b,2);a.bb=Lnd(a,1);Knd(a.bb,0);Knd(a.bb,1);a.fb=Lnd(a,2);Knd(a.fb,3);Knd(a.fb,4);Qnd(a.fb,5);a.qb=Lnd(a,3);Knd(a.qb,0);Qnd(a.qb,1);Qnd(a.qb,2);Knd(a.qb,3);Knd(a.qb,4);Qnd(a.qb,5);Knd(a.qb,6);a.a=Mnd(a,4);a.c=Mnd(a,5);a.d=Mnd(a,6);a.e=Mnd(a,7);a.f=Mnd(a,8);a.g=Mnd(a,9);a.i=Mnd(a,10);a.j=Mnd(a,11);a.k=Mnd(a,12);a.n=Mnd(a,13);a.o=Mnd(a,14);a.p=Mnd(a,15);a.q=Mnd(a,16);a.s=Mnd(a,17);a.r=Mnd(a,18);a.t=Mnd(a,19);a.u=Mnd(a,20);a.v=Mnd(a,21);a.w=Mnd(a,22);a.B=Mnd(a,23);a.A=Mnd(a,24);a.C=Mnd(a,25);a.D=Mnd(a,26);a.F=Mnd(a,27);a.G=Mnd(a,28);a.H=Mnd(a,29);a.J=Mnd(a,30);a.I=Mnd(a,31);a.K=Mnd(a,32);a.M=Mnd(a,33);a.L=Mnd(a,34);a.P=Mnd(a,35);a.Q=Mnd(a,36);a.R=Mnd(a,37);a.S=Mnd(a,38);a.T=Mnd(a,39);a.U=Mnd(a,40);a.V=Mnd(a,41);a.X=Mnd(a,42);a.W=Mnd(a,43);a.Y=Mnd(a,44);a.Z=Mnd(a,45);a.$=Mnd(a,46);a._=Mnd(a,47);a.ab=Mnd(a,48);a.cb=Mnd(a,49);a.db=Mnd(a,50);a.eb=Mnd(a,51);a.gb=Mnd(a,52);a.hb=Mnd(a,53);a.ib=Mnd(a,54);a.jb=Mnd(a,55);a.kb=Mnd(a,56);a.lb=Mnd(a,57);a.mb=Mnd(a,58);a.nb=Mnd(a,59);a.ob=Mnd(a,60);a.pb=Mnd(a,61)} +function f5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.a==0){for(q=new olb(a);q.a<q.c.c.length;){o=BD(mlb(q),10);s=$wnd.Math.max(s,o.n.a+o.o.a+o.d.c)}}else{s=b.f.a-b.c.a}s-=b.c.a;for(p=new olb(a);p.a<p.c.c.length;){o=BD(mlb(p),10);g5b(o.n,s-o.o.a);h5b(o.f);d5b(o);(!o.q?(mmb(),mmb(),kmb):o.q)._b((Nyc(),ayc))&&g5b(BD(vNb(o,ayc),8),s-o.o.a);switch(BD(vNb(o,mwc),248).g){case 1:yNb(o,mwc,(F7c(),D7c));break;case 2:yNb(o,mwc,(F7c(),C7c));}r=o.o;for(u=new olb(o.j);u.a<u.c.c.length;){t=BD(mlb(u),11);g5b(t.n,r.a-t.o.a);g5b(t.a,t.o.a);G0b(t,Z4b(t.j));g=BD(vNb(t,Wxc),19);!!g&&yNb(t,Wxc,meb(-g.a));for(f=new olb(t.g);f.a<f.c.c.length;){e=BD(mlb(f),17);for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);c.a=s-c.a}j=BD(vNb(e,jxc),74);if(j){for(i=Jsb(j,0);i.b!=i.d.c;){h=BD(Xsb(i),8);h.a=s-h.a}}for(m=new olb(e.b);m.a<m.c.c.length;){k=BD(mlb(m),70);g5b(k.n,s-k.o.a)}}for(n=new olb(t.f);n.a<n.c.c.length;){k=BD(mlb(n),70);g5b(k.n,t.o.a-k.o.a)}}if(o.k==(j0b(),e0b)){yNb(o,(wtc(),Hsc),Z4b(BD(vNb(o,Hsc),61)));c5b(o)}for(l=new olb(o.b);l.a<l.c.c.length;){k=BD(mlb(l),70);d5b(k);g5b(k.n,r.a-k.o.a)}}} +function i5b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s=0;if(b.f.b==0){for(q=new olb(a);q.a<q.c.c.length;){o=BD(mlb(q),10);s=$wnd.Math.max(s,o.n.b+o.o.b+o.d.a)}}else{s=b.f.b-b.c.b}s-=b.c.b;for(p=new olb(a);p.a<p.c.c.length;){o=BD(mlb(p),10);j5b(o.n,s-o.o.b);k5b(o.f);e5b(o);(!o.q?(mmb(),mmb(),kmb):o.q)._b((Nyc(),ayc))&&j5b(BD(vNb(o,ayc),8),s-o.o.b);switch(BD(vNb(o,mwc),248).g){case 3:yNb(o,mwc,(F7c(),A7c));break;case 4:yNb(o,mwc,(F7c(),E7c));}r=o.o;for(u=new olb(o.j);u.a<u.c.c.length;){t=BD(mlb(u),11);j5b(t.n,r.b-t.o.b);j5b(t.a,t.o.b);G0b(t,$4b(t.j));g=BD(vNb(t,Wxc),19);!!g&&yNb(t,Wxc,meb(-g.a));for(f=new olb(t.g);f.a<f.c.c.length;){e=BD(mlb(f),17);for(d=Jsb(e.a,0);d.b!=d.d.c;){c=BD(Xsb(d),8);c.b=s-c.b}j=BD(vNb(e,jxc),74);if(j){for(i=Jsb(j,0);i.b!=i.d.c;){h=BD(Xsb(i),8);h.b=s-h.b}}for(m=new olb(e.b);m.a<m.c.c.length;){k=BD(mlb(m),70);j5b(k.n,s-k.o.b)}}for(n=new olb(t.f);n.a<n.c.c.length;){k=BD(mlb(n),70);j5b(k.n,t.o.b-k.o.b)}}if(o.k==(j0b(),e0b)){yNb(o,(wtc(),Hsc),$4b(BD(vNb(o,Hsc),61)));b5b(o)}for(l=new olb(o.b);l.a<l.c.c.length;){k=BD(mlb(l),70);e5b(k);j5b(k.n,r.b-k.o.b)}}} +function tZc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;l=false;j=a+1;k=(tCb(a,b.c.length),BD(b.c[a],200));g=k.a;h=null;for(f=0;f<k.a.c.length;f++){e=(tCb(f,g.c.length),BD(g.c[f],187));if(e.c){continue}if(e.b.c.length==0){Zfb();v$c(k,e);--f;l=true;continue}if(!e.k){!!h&&a$c(h);h=new b$c(!h?0:h.e+h.d+d,k.f,d);OZc(e,h.e+h.d,k.f);Ekb(k.d,h);WZc(h,e);e.k=true}i=null;i=(n=null,f<k.a.c.length-1?(n=BD(Ikb(k.a,f+1),187)):j<b.c.length&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length!=0&&(n=BD(Ikb((tCb(j,b.c.length),BD(b.c[j],200)).a,0),187)),n);m=false;!!i&&(m=!pb(i.j,k));if(i){if(i.b.c.length==0){v$c(k,i);break}else{KZc(e,c-e.s);a$c(e.q);l=l|sZc(k,e,i,c,d)}if(i.b.c.length==0){v$c((tCb(j,b.c.length),BD(b.c[j],200)),i);i=null;while(b.c.length>j&&(tCb(j,b.c.length),BD(b.c[j],200)).a.c.length==0){Lkb(b,(tCb(j,b.c.length),b.c[j]))}}if(!i){--f;continue}if(uZc(b,k,e,i,m,c,j,d)){l=true;continue}if(m){if(vZc(b,k,e,i,c,j,d)){l=true;continue}else if(wZc(k,e)){e.c=true;l=true;continue}}else if(wZc(k,e)){e.c=true;l=true;continue}if(l){continue}}if(wZc(k,e)){e.c=true;l=true;!!i&&(i.k=false);continue}else{a$c(e.q)}}return l} +function fed(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;p=0;D=0;for(j=new olb(a.b);j.a<j.c.c.length;){i=BD(mlb(j),157);!!i.c&&zfd(i.c);p=$wnd.Math.max(p,red(i));D+=red(i)*qed(i)}q=D/a.b.c.length;C=_dd(a.b,q);D+=a.b.c.length*C;p=$wnd.Math.max(p,$wnd.Math.sqrt(D*g))+c.b;H=c.b;I=c.d;n=0;l=c.b+c.c;B=new Psb;Dsb(B,meb(0));w=new Psb;k=new Bib(a.b,0);o=null;h=new Rkb;while(k.b<k.d.gc()){i=(sCb(k.b<k.d.gc()),BD(k.d.Xb(k.c=k.b++),157));G=red(i);m=qed(i);if(H+G>p){if(f){Fsb(w,n);Fsb(B,meb(k.b-1));Ekb(a.d,o);h.c=KC(SI,Uhe,1,0,5,1)}H=c.b;I+=n+b;n=0;l=$wnd.Math.max(l,c.b+c.c+G)}h.c[h.c.length]=i;ued(i,H,I);l=$wnd.Math.max(l,H+G+c.c);n=$wnd.Math.max(n,m);H+=G+b;o=i}Gkb(a.a,h);Ekb(a.d,BD(Ikb(h,h.c.length-1),157));l=$wnd.Math.max(l,d);F=I+n+c.a;if(F<e){n+=e-F;F=e}if(f){H=c.b;k=new Bib(a.b,0);Fsb(B,meb(a.b.c.length));A=Jsb(B,0);s=BD(Xsb(A),19).a;Fsb(w,n);v=Jsb(w,0);u=0;while(k.b<k.d.gc()){if(k.b==s){H=c.b;u=Edb(ED(Xsb(v)));s=BD(Xsb(A),19).a}i=(sCb(k.b<k.d.gc()),BD(k.d.Xb(k.c=k.b++),157));sed(i,u);if(k.b==s){r=l-H-c.c;t=red(i);ted(i,r);ved(i,(r-t)/2,0)}H+=red(i)+b}}return new f7c(l,F)} +function pde(a){var b,c,d,e,f;b=a.c;f=null;switch(b){case 6:return a.Vl();case 13:return a.Wl();case 23:return a.Nl();case 22:return a.Sl();case 18:return a.Pl();case 8:nde(a);f=(wfe(),efe);break;case 9:return a.vl(true);case 19:return a.wl();case 10:switch(a.a){case 100:case 68:case 119:case 87:case 115:case 83:f=a.ul(a.a);nde(a);return f;case 101:case 102:case 110:case 114:case 116:case 117:case 118:case 120:{c=a.tl();c<Tje?(f=(wfe(),wfe(),++vfe,new ige(0,c))):(f=Ffe(Tee(c)))}break;case 99:return a.Fl();case 67:return a.Al();case 105:return a.Il();case 73:return a.Bl();case 103:return a.Gl();case 88:return a.Cl();case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return a.xl();case 80:case 112:f=tde(a,a.a);if(!f)throw vbb(new mde(tvd((h0d(),Iue))));break;default:f=zfe(a.a);}nde(a);break;case 0:if(a.a==93||a.a==123||a.a==125)throw vbb(new mde(tvd((h0d(),Hue))));f=zfe(a.a);d=a.a;nde(a);if((d&64512)==Uje&&a.c==0&&(a.a&64512)==56320){e=KC(TD,$ie,25,2,15,1);e[0]=d&aje;e[1]=a.a&aje;f=Efe(Ffe(zfb(e,0,e.length)),0);nde(a)}break;default:throw vbb(new mde(tvd((h0d(),Hue))));}return f} +function e7b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;e=Ohe;f=Ohe;g=Ohe;if(c){e=a.f.a;for(p=new olb(b.j);p.a<p.c.c.length;){o=BD(mlb(p),11);for(i=new olb(o.g);i.a<i.c.c.length;){h=BD(mlb(i),17);if(h.a.b!=0){k=BD(Hsb(h.a),8);if(k.a<e){f=e-k.a;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=k.a}if(k.a<=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,1),8).b-k.b)))}}}}}else{for(p=new olb(b.j);p.a<p.c.c.length;){o=BD(mlb(p),11);for(i=new olb(o.e);i.a<i.c.c.length;){h=BD(mlb(i),17);if(h.a.b!=0){m=BD(Isb(h.a),8);if(m.a>e){f=m.a-e;g=Ohe;d.c=KC(SI,Uhe,1,0,5,1);e=m.a}if(m.a>=e){d.c[d.c.length]=h;h.a.b>1&&(g=$wnd.Math.min(g,$wnd.Math.abs(BD(Ut(h.a,h.a.b-2),8).b-m.b)))}}}}}if(d.c.length!=0&&f>b.o.a/2&&g>b.o.b/2){n=new H0b;F0b(n,b);G0b(n,(Ucd(),Acd));n.n.a=b.o.a/2;r=new H0b;F0b(r,b);G0b(r,Rcd);r.n.a=b.o.a/2;r.n.b=b.o.b;for(i=new olb(d);i.a<i.c.c.length;){h=BD(mlb(i),17);if(c){j=BD(Lsb(h.a),8);q=h.a.b==0?A0b(h.d):BD(Hsb(h.a),8);q.b>=j.b?QZb(h,r):QZb(h,n)}else{j=BD(Msb(h.a),8);q=h.a.b==0?A0b(h.c):BD(Isb(h.a),8);q.b>=j.b?RZb(h,r):RZb(h,n)}l=BD(vNb(h,(Nyc(),jxc)),74);!!l&&ze(l,j,true)}b.n.a=e-b.o.a/2}} +function erd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;D=null;G=b;F=Rqd(a,dtd(c),G);Lkd(F,_pd(G,Vte));H=BD(oo(a.g,Vpd(aC(G,Cte))),33);m=aC(G,'sourcePort');d=null;!!m&&(d=Vpd(m));I=BD(oo(a.j,d),118);if(!H){h=Wpd(G);o="An edge must have a source node (edge id: '"+h;p=o+$te;throw vbb(new cqd(p))}if(!!I&&!Hb(mpd(I),H)){i=_pd(G,Vte);q="The source port of an edge must be a port of the edge's source node (edge id: '"+i;r=q+$te;throw vbb(new cqd(r))}B=(!F.b&&(F.b=new y5d(z2,F,4,7)),F.b);f=null;I?(f=I):(f=H);wtd(B,f);J=BD(oo(a.g,Vpd(aC(G,bue))),33);n=aC(G,'targetPort');e=null;!!n&&(e=Vpd(n));K=BD(oo(a.j,e),118);if(!J){l=Wpd(G);s="An edge must have a target node (edge id: '"+l;t=s+$te;throw vbb(new cqd(t))}if(!!K&&!Hb(mpd(K),J)){j=_pd(G,Vte);u="The target port of an edge must be a port of the edge's target node (edge id: '"+j;v=u+$te;throw vbb(new cqd(v))}C=(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c);g=null;K?(g=K):(g=J);wtd(C,g);if((!F.b&&(F.b=new y5d(z2,F,4,7)),F.b).i==0||(!F.c&&(F.c=new y5d(z2,F,5,8)),F.c).i==0){k=_pd(G,Vte);w=Zte+k;A=w+$te;throw vbb(new cqd(A))}grd(G,F);frd(G,F);D=crd(a,G,F);return D} +function DXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;l=FXb(zXb(a,(Ucd(),Fcd)),b);o=EXb(zXb(a,Gcd),b);u=EXb(zXb(a,Ocd),b);B=GXb(zXb(a,Qcd),b);m=GXb(zXb(a,Bcd),b);s=EXb(zXb(a,Ncd),b);p=EXb(zXb(a,Hcd),b);w=EXb(zXb(a,Pcd),b);v=EXb(zXb(a,Ccd),b);C=GXb(zXb(a,Ecd),b);r=EXb(zXb(a,Lcd),b);t=EXb(zXb(a,Kcd),b);A=EXb(zXb(a,Dcd),b);D=GXb(zXb(a,Mcd),b);n=GXb(zXb(a,Icd),b);q=EXb(zXb(a,Jcd),b);c=w6c(OC(GC(UD,1),Vje,25,15,[s.a,B.a,w.a,D.a]));d=w6c(OC(GC(UD,1),Vje,25,15,[o.a,l.a,u.a,q.a]));e=r.a;f=w6c(OC(GC(UD,1),Vje,25,15,[p.a,m.a,v.a,n.a]));j=w6c(OC(GC(UD,1),Vje,25,15,[s.b,o.b,p.b,t.b]));i=w6c(OC(GC(UD,1),Vje,25,15,[B.b,l.b,m.b,q.b]));k=C.b;h=w6c(OC(GC(UD,1),Vje,25,15,[w.b,u.b,v.b,A.b]));vXb(zXb(a,Fcd),c+e,j+k);vXb(zXb(a,Jcd),c+e,j+k);vXb(zXb(a,Gcd),c+e,0);vXb(zXb(a,Ocd),c+e,j+k+i);vXb(zXb(a,Qcd),0,j+k);vXb(zXb(a,Bcd),c+e+d,j+k);vXb(zXb(a,Hcd),c+e+d,0);vXb(zXb(a,Pcd),0,j+k+i);vXb(zXb(a,Ccd),c+e+d,j+k+i);vXb(zXb(a,Ecd),0,j);vXb(zXb(a,Lcd),c,0);vXb(zXb(a,Dcd),0,j+k+i);vXb(zXb(a,Icd),c+e+d,0);g=new d7c;g.a=w6c(OC(GC(UD,1),Vje,25,15,[c+d+e+f,C.a,t.a,A.a]));g.b=w6c(OC(GC(UD,1),Vje,25,15,[j+i+k+h,r.b,D.b,n.b]));return g} +function Ngc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;p=new Rkb;for(m=new olb(a.d.b);m.a<m.c.c.length;){l=BD(mlb(m),29);for(o=new olb(l.a);o.a<o.c.c.length;){n=BD(mlb(o),10);e=BD(Ohb(a.f,n),57);for(i=new Sr(ur(U_b(n).a.Kc(),new Sq));Qr(i);){g=BD(Rr(i),17);d=Jsb(g.a,0);j=true;k=null;if(d.b!=d.d.c){b=BD(Xsb(d),8);c=null;if(g.c.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.c;p.c[p.c.length]=q}if(g.c.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.c;p.c[p.c.length]=q}while(d.b!=d.d.c){c=BD(Xsb(d),8);if(!ADb(b.b,c.b)){k=new hic(b,c,null,g);p.c[p.c.length]=k;if(j){j=false;if(c.b<e.d.d){k.f.a=true}else if(c.b>e.d.d+e.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}d.b!=d.d.c&&(b=c)}if(k){f=BD(Ohb(a.f,g.d.i),57);if(b.b<f.d.d){k.f.a=true}else if(b.b>f.d.d+f.d.a){k.f.d=true}else{k.f.d=true;k.f.a=true}}}}for(h=new Sr(ur(R_b(n).a.Kc(),new Sq));Qr(h);){g=BD(Rr(h),17);if(g.a.b!=0){b=BD(Isb(g.a),8);if(g.d.j==(Ucd(),Acd)){q=new hic(b,new f7c(b.a,e.d.d),e,g);q.f.a=true;q.a=g.d;p.c[p.c.length]=q}if(g.d.j==Rcd){q=new hic(b,new f7c(b.a,e.d.d+e.d.a),e,g);q.f.d=true;q.a=g.d;p.c[p.c.length]=q}}}}}return p} +function WJc(a,b,c){var d,e,f,g,h,i,j,k,l;Odd(c,'Network simplex node placement',1);a.e=b;a.n=BD(vNb(b,(wtc(),otc)),304);VJc(a);HJc(a);MAb(LAb(new YAb(null,new Kub(a.e.b,16)),new KKc),new MKc(a));MAb(JAb(LAb(JAb(LAb(new YAb(null,new Kub(a.e.b,16)),new zLc),new BLc),new DLc),new FLc),new IKc(a));if(Ccb(DD(vNb(a.e,(Nyc(),Axc))))){g=Udd(c,1);Odd(g,'Straight Edges Pre-Processing',1);UJc(a);Qdd(g)}JFb(a.f);f=BD(vNb(b,Ayc),19).a*a.f.a.c.length;uGb(HGb(IGb(LGb(a.f),f),false),Udd(c,1));if(a.d.a.gc()!=0){g=Udd(c,1);Odd(g,'Flexible Where Space Processing',1);h=BD(Btb(RAb(NAb(new YAb(null,new Kub(a.f.a,16)),new OKc),new iKc)),19).a;i=BD(Btb(QAb(NAb(new YAb(null,new Kub(a.f.a,16)),new QKc),new mKc)),19).a;j=i-h;k=nGb(new pGb,a.f);l=nGb(new pGb,a.f);AFb(DFb(CFb(BFb(EFb(new FFb,20000),j),k),l));MAb(JAb(JAb(Plb(a.i),new SKc),new UKc),new WKc(h,k,j,l));for(e=a.d.a.ec().Kc();e.Ob();){d=BD(e.Pb(),213);d.g=1}uGb(HGb(IGb(LGb(a.f),f),false),Udd(g,1));Qdd(g)}if(Ccb(DD(vNb(b,Axc)))){g=Udd(c,1);Odd(g,'Straight Edges Post-Processing',1);TJc(a);Qdd(g)}GJc(a);a.e=null;a.f=null;a.i=null;a.c=null;Uhb(a.k);a.j=null;a.a=null;a.o=null;a.d.a.$b();Qdd(c)} +function lMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;for(h=new olb(a.a.b);h.a<h.c.c.length;){f=BD(mlb(h),29);for(t=new olb(f.a);t.a<t.c.c.length;){s=BD(mlb(t),10);b.g[s.p]=s;b.a[s.p]=s;b.d[s.p]=0}}i=a.a.b;b.c==(YLc(),WLc)&&(i=JD(i,152)?km(BD(i,152)):JD(i,131)?BD(i,131).a:JD(i,54)?new ov(i):new dv(i));for(g=i.Kc();g.Ob();){f=BD(g.Pb(),29);n=-1;m=f.a;if(b.o==(eMc(),dMc)){n=Ohe;m=JD(m,152)?km(BD(m,152)):JD(m,131)?BD(m,131).a:JD(m,54)?new ov(m):new dv(m)}for(v=m.Kc();v.Ob();){u=BD(v.Pb(),10);l=null;b.c==WLc?(l=BD(Ikb(a.b.f,u.p),15)):(l=BD(Ikb(a.b.b,u.p),15));if(l.gc()>0){d=l.gc();j=QD($wnd.Math.floor((d+1)/2))-1;e=QD($wnd.Math.ceil((d+1)/2))-1;if(b.o==dMc){for(k=e;k>=j;k--){if(b.a[u.p]==u){p=BD(l.Xb(k),46);o=BD(p.a,10);if(!Rqb(c,p.b)&&n>a.b.e[o.p]){b.a[o.p]=u;b.g[u.p]=b.g[o.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[o.p]}}}}else{for(k=j;k<=e;k++){if(b.a[u.p]==u){r=BD(l.Xb(k),46);q=BD(r.a,10);if(!Rqb(c,r.b)&&n<a.b.e[q.p]){b.a[q.p]=u;b.g[u.p]=b.g[q.p];b.a[u.p]=b.g[u.p];b.f[b.g[u.p].p]=(Bcb(),Ccb(b.f[b.g[u.p].p])&u.k==(j0b(),g0b)?true:false);n=a.b.e[q.p]}}}}}}}} +function Thd(){Thd=ccb;Hhd();Shd=Ghd.a;BD(qud(ZKd(Ghd.a),0),18);Mhd=Ghd.f;BD(qud(ZKd(Ghd.f),0),18);BD(qud(ZKd(Ghd.f),1),34);Rhd=Ghd.n;BD(qud(ZKd(Ghd.n),0),34);BD(qud(ZKd(Ghd.n),1),34);BD(qud(ZKd(Ghd.n),2),34);BD(qud(ZKd(Ghd.n),3),34);Nhd=Ghd.g;BD(qud(ZKd(Ghd.g),0),18);BD(qud(ZKd(Ghd.g),1),34);Jhd=Ghd.c;BD(qud(ZKd(Ghd.c),0),18);BD(qud(ZKd(Ghd.c),1),18);Ohd=Ghd.i;BD(qud(ZKd(Ghd.i),0),18);BD(qud(ZKd(Ghd.i),1),18);BD(qud(ZKd(Ghd.i),2),18);BD(qud(ZKd(Ghd.i),3),18);BD(qud(ZKd(Ghd.i),4),34);Phd=Ghd.j;BD(qud(ZKd(Ghd.j),0),18);Khd=Ghd.d;BD(qud(ZKd(Ghd.d),0),18);BD(qud(ZKd(Ghd.d),1),18);BD(qud(ZKd(Ghd.d),2),18);BD(qud(ZKd(Ghd.d),3),18);BD(qud(ZKd(Ghd.d),4),34);BD(qud(ZKd(Ghd.d),5),34);BD(qud(ZKd(Ghd.d),6),34);BD(qud(ZKd(Ghd.d),7),34);Ihd=Ghd.b;BD(qud(ZKd(Ghd.b),0),34);BD(qud(ZKd(Ghd.b),1),34);Lhd=Ghd.e;BD(qud(ZKd(Ghd.e),0),34);BD(qud(ZKd(Ghd.e),1),34);BD(qud(ZKd(Ghd.e),2),34);BD(qud(ZKd(Ghd.e),3),34);BD(qud(ZKd(Ghd.e),4),18);BD(qud(ZKd(Ghd.e),5),18);BD(qud(ZKd(Ghd.e),6),18);BD(qud(ZKd(Ghd.e),7),18);BD(qud(ZKd(Ghd.e),8),18);BD(qud(ZKd(Ghd.e),9),18);BD(qud(ZKd(Ghd.e),10),34);Qhd=Ghd.k;BD(qud(ZKd(Ghd.k),0),34);BD(qud(ZKd(Ghd.k),1),34)} +function wQc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;C=new Psb;w=new Psb;q=-1;for(i=new olb(a);i.a<i.c.c.length;){g=BD(mlb(i),128);g.s=q--;k=0;t=0;for(f=new olb(g.t);f.a<f.c.c.length;){d=BD(mlb(f),268);t+=d.c}for(e=new olb(g.i);e.a<e.c.c.length;){d=BD(mlb(e),268);k+=d.c}g.n=k;g.u=t;t==0?(Gsb(w,g,w.c.b,w.c),true):k==0&&(Gsb(C,g,C.c.b,C.c),true)}F=Gx(a);l=a.c.length;p=l+1;r=l-1;n=new Rkb;while(F.a.gc()!=0){while(w.b!=0){v=(sCb(w.b!=0),BD(Nsb(w,w.a.a),128));F.a.Bc(v)!=null;v.s=r--;AQc(v,C,w)}while(C.b!=0){A=(sCb(C.b!=0),BD(Nsb(C,C.a.a),128));F.a.Bc(A)!=null;A.s=p++;AQc(A,C,w)}o=Rie;for(j=F.a.ec().Kc();j.Ob();){g=BD(j.Pb(),128);s=g.u-g.n;if(s>=o){if(s>o){n.c=KC(SI,Uhe,1,0,5,1);o=s}n.c[n.c.length]=g}}if(n.c.length!=0){m=BD(Ikb(n,Bub(b,n.c.length)),128);F.a.Bc(m)!=null;m.s=p++;AQc(m,C,w);n.c=KC(SI,Uhe,1,0,5,1)}}u=a.c.length+1;for(h=new olb(a);h.a<h.c.c.length;){g=BD(mlb(h),128);g.s<l&&(g.s+=u)}for(B=new olb(a);B.a<B.c.c.length;){A=BD(mlb(B),128);c=new Bib(A.t,0);while(c.b<c.d.gc()){d=(sCb(c.b<c.d.gc()),BD(c.d.Xb(c.c=c.b++),268));D=d.b;if(A.s>D.s){uib(c);Lkb(D.i,d);if(d.c>0){d.a=D;Ekb(D.t,d);d.b=A;Ekb(A.i,d)}}}}} +function qde(a){var b,c,d,e,f;b=a.c;switch(b){case 11:return a.Ml();case 12:return a.Ol();case 14:return a.Ql();case 15:return a.Tl();case 16:return a.Rl();case 17:return a.Ul();case 21:nde(a);return wfe(),wfe(),ffe;case 10:switch(a.a){case 65:return a.yl();case 90:return a.Dl();case 122:return a.Kl();case 98:return a.El();case 66:return a.zl();case 60:return a.Jl();case 62:return a.Hl();}}f=pde(a);b=a.c;switch(b){case 3:return a.Zl(f);case 4:return a.Xl(f);case 5:return a.Yl(f);case 0:if(a.a==123&&a.d<a.j){e=a.d;d=0;c=-1;if((b=bfb(a.i,e++))>=48&&b<=57){d=b-48;while(e<a.j&&(b=bfb(a.i,e++))>=48&&b<=57){d=d*10+b-48;if(d<0)throw vbb(new mde(tvd((h0d(),bve))))}}else{throw vbb(new mde(tvd((h0d(),Zue))))}c=d;if(b==44){if(e>=a.j){throw vbb(new mde(tvd((h0d(),_ue))))}else if((b=bfb(a.i,e++))>=48&&b<=57){c=b-48;while(e<a.j&&(b=bfb(a.i,e++))>=48&&b<=57){c=c*10+b-48;if(c<0)throw vbb(new mde(tvd((h0d(),bve))))}if(d>c)throw vbb(new mde(tvd((h0d(),ave))))}else{c=-1}}if(b!=125)throw vbb(new mde(tvd((h0d(),$ue))));if(a.sl(e)){f=(wfe(),wfe(),++vfe,new lge(9,f));a.d=e+1}else{f=(wfe(),wfe(),++vfe,new lge(3,f));a.d=e}f.dm(d);f.cm(c);nde(a)}}return f} +function $bc(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;p=new Skb(b.b);u=new Skb(b.b);m=new Skb(b.b);B=new Skb(b.b);q=new Skb(b.b);for(A=Jsb(b,0);A.b!=A.d.c;){v=BD(Xsb(A),11);for(h=new olb(v.g);h.a<h.c.c.length;){f=BD(mlb(h),17);if(f.c.i==f.d.i){if(v.j==f.d.j){B.c[B.c.length]=f;continue}else if(v.j==(Ucd(),Acd)&&f.d.j==Rcd){q.c[q.c.length]=f;continue}}}}for(i=new olb(q);i.a<i.c.c.length;){f=BD(mlb(i),17);_bc(a,f,c,d,(Ucd(),zcd))}for(g=new olb(B);g.a<g.c.c.length;){f=BD(mlb(g),17);C=new b0b(a);__b(C,(j0b(),i0b));yNb(C,(Nyc(),Vxc),(dcd(),$bd));yNb(C,(wtc(),$sc),f);D=new H0b;yNb(D,$sc,f.d);G0b(D,(Ucd(),Tcd));F0b(D,C);F=new H0b;yNb(F,$sc,f.c);G0b(F,zcd);F0b(F,C);yNb(f.c,gtc,C);yNb(f.d,gtc,C);QZb(f,null);RZb(f,null);c.c[c.c.length]=C;yNb(C,ysc,meb(2))}for(w=Jsb(b,0);w.b!=w.d.c;){v=BD(Xsb(w),11);j=v.e.c.length>0;r=v.g.c.length>0;j&&r?(m.c[m.c.length]=v,true):j?(p.c[p.c.length]=v,true):r&&(u.c[u.c.length]=v,true)}for(o=new olb(p);o.a<o.c.c.length;){n=BD(mlb(o),11);Ekb(e,Zbc(a,n,null,c))}for(t=new olb(u);t.a<t.c.c.length;){s=BD(mlb(t),11);Ekb(e,Zbc(a,null,s,c))}for(l=new olb(m);l.a<l.c.c.length;){k=BD(mlb(l),11);Ekb(e,Zbc(a,k,k,c))}} +function NCb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;s=new f7c(Pje,Pje);b=new f7c(Qje,Qje);for(B=new olb(a);B.a<B.c.c.length;){A=BD(mlb(B),8);s.a=$wnd.Math.min(s.a,A.a);s.b=$wnd.Math.min(s.b,A.b);b.a=$wnd.Math.max(b.a,A.a);b.b=$wnd.Math.max(b.b,A.b)}m=new f7c(b.a-s.a,b.b-s.b);j=new f7c(s.a-50,s.b-m.a-50);k=new f7c(s.a-50,b.b+m.a+50);l=new f7c(b.a+m.b/2+50,s.b+m.b/2);n=new eDb(j,k,l);w=new Tqb;f=new Rkb;c=new Rkb;w.a.zc(n,w);for(D=new olb(a);D.a<D.c.c.length;){C=BD(mlb(D),8);f.c=KC(SI,Uhe,1,0,5,1);for(v=w.a.ec().Kc();v.Ob();){t=BD(v.Pb(),308);d=t.d;S6c(d,t.a);Jy(S6c(t.d,C),S6c(t.d,t.a))<0&&(f.c[f.c.length]=t,true)}c.c=KC(SI,Uhe,1,0,5,1);for(u=new olb(f);u.a<u.c.c.length;){t=BD(mlb(u),308);for(q=new olb(t.e);q.a<q.c.c.length;){o=BD(mlb(q),168);g=true;for(i=new olb(f);i.a<i.c.c.length;){h=BD(mlb(i),308);h!=t&&(wtb(o,Ikb(h.e,0))||wtb(o,Ikb(h.e,1))||wtb(o,Ikb(h.e,2)))&&(g=false)}g&&(c.c[c.c.length]=o,true)}}Ve(w,f);reb(w,new OCb);for(p=new olb(c);p.a<p.c.c.length;){o=BD(mlb(p),168);Qqb(w,new eDb(C,o.a,o.b))}}r=new Tqb;reb(w,new QCb(r));e=r.a.ec().Kc();while(e.Ob()){o=BD(e.Pb(),168);(dDb(n,o.a)||dDb(n,o.b))&&e.Qb()}reb(r,new SCb);return r} +function _Tb(a){var b,c,d,e,f;c=BD(vNb(a,(wtc(),Ksc)),21);b=k3c(WTb);e=BD(vNb(a,(Nyc(),axc)),334);e==(hbd(),ebd)&&d3c(b,XTb);Ccb(DD(vNb(a,$wc)))?e3c(b,(qUb(),lUb),(S8b(),I8b)):e3c(b,(qUb(),nUb),(S8b(),I8b));vNb(a,(g6c(),f6c))!=null&&d3c(b,YTb);(Ccb(DD(vNb(a,hxc)))||Ccb(DD(vNb(a,_wc))))&&c3c(b,(qUb(),pUb),(S8b(),W7b));switch(BD(vNb(a,Lwc),103).g){case 2:case 3:case 4:c3c(e3c(b,(qUb(),lUb),(S8b(),Y7b)),pUb,X7b);}c.Hc((Orc(),Frc))&&c3c(e3c(e3c(b,(qUb(),lUb),(S8b(),V7b)),oUb,T7b),pUb,U7b);PD(vNb(a,rxc))!==PD((kAc(),iAc))&&e3c(b,(qUb(),nUb),(S8b(),A8b));if(c.Hc(Mrc)){e3c(b,(qUb(),lUb),(S8b(),G8b));e3c(b,mUb,E8b);e3c(b,nUb,F8b)}PD(vNb(a,swc))!==PD((yrc(),wrc))&&PD(vNb(a,Swc))!==PD((Aad(),xad))&&c3c(b,(qUb(),pUb),(S8b(),j8b));Ccb(DD(vNb(a,cxc)))&&e3c(b,(qUb(),nUb),(S8b(),i8b));Ccb(DD(vNb(a,Hwc)))&&e3c(b,(qUb(),nUb),(S8b(),O8b));if(cUb(a)){PD(vNb(a,axc))===PD(ebd)?(d=BD(vNb(a,Cwc),292)):(d=BD(vNb(a,Dwc),292));f=d==(Xrc(),Vrc)?(S8b(),D8b):(S8b(),R8b);e3c(b,(qUb(),oUb),f)}switch(BD(vNb(a,Kyc),377).g){case 1:e3c(b,(qUb(),oUb),(S8b(),P8b));break;case 2:c3c(e3c(e3c(b,(qUb(),nUb),(S8b(),P7b)),oUb,Q7b),pUb,R7b);}PD(vNb(a,ywc))!==PD((tAc(),rAc))&&e3c(b,(qUb(),nUb),(S8b(),Q8b));return b} +function mZc(a){r4c(a,new E3c(P3c(M3c(O3c(N3c(new R3c,Kre),'ELK Rectangle Packing'),'Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces.'),new pZc)));p4c(a,Kre,_le,1.3);p4c(a,Kre,Jre,Ksd(VYc));p4c(a,Kre,ame,gZc);p4c(a,Kre,wme,15);p4c(a,Kre,lqe,Ksd(SYc));p4c(a,Kre,Fme,Ksd(_Yc));p4c(a,Kre,Tme,Ksd(aZc));p4c(a,Kre,Eme,Ksd(bZc));p4c(a,Kre,Gme,Ksd($Yc));p4c(a,Kre,Dme,Ksd(cZc));p4c(a,Kre,Hme,Ksd(hZc));p4c(a,Kre,Bre,Ksd(eZc));p4c(a,Kre,Cre,Ksd(ZYc));p4c(a,Kre,Fre,Ksd(dZc));p4c(a,Kre,Gre,Ksd(iZc));p4c(a,Kre,Hre,Ksd(WYc));p4c(a,Kre,Ame,Ksd(XYc));p4c(a,Kre,xqe,Ksd(YYc));p4c(a,Kre,Ere,Ksd(UYc));p4c(a,Kre,Dre,Ksd(TYc));p4c(a,Kre,Ire,Ksd(kZc))} +function Wmd(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(d==null){return null}if(b.a!=c.Aj()){throw vbb(new Wdb(tte+c.ne()+ute))}if(JD(c,457)){r=_Pd(BD(c,671),d);if(!r){throw vbb(new Wdb(vte+d+"' is not a valid enumerator of '"+c.ne()+"'"))}return r}switch(o1d((O6d(),M6d),c).cl()){case 2:{d=Qge(d,false);break}case 3:{d=Qge(d,true);break}}e=o1d(M6d,c).$k();if(e){return e.Aj().Nh().Kh(e,d)}n=o1d(M6d,c).al();if(n){r=new Rkb;for(k=Zmd(d),l=0,m=k.length;l<m;++l){j=k[l];Ekb(r,n.Aj().Nh().Kh(n,j))}return r}q=o1d(M6d,c).bl();if(!q.dc()){for(p=q.Kc();p.Ob();){o=BD(p.Pb(),148);try{r=o.Aj().Nh().Kh(o,d);if(r!=null){return r}}catch(a){a=ubb(a);if(!JD(a,60))throw vbb(a)}}throw vbb(new Wdb(vte+d+"' does not match any member types of the union datatype '"+c.ne()+"'"))}BD(c,834).Fj();f=r6d(c.Bj());if(!f)return null;if(f==yI){h=0;try{h=Icb(d,Rie,Ohe)&aje}catch(a){a=ubb(a);if(JD(a,127)){g=rfb(d);h=g[0]}else throw vbb(a)}return bdb(h)}if(f==$J){for(i=0;i<Pmd.length;++i){try{return DQd(Pmd[i],d)}catch(a){a=ubb(a);if(!JD(a,32))throw vbb(a)}}throw vbb(new Wdb(vte+d+"' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof"))}throw vbb(new Wdb(vte+d+"' is invalid. "))} +function ngb(a,b){var c,d,e,f,g,h,i,j;c=0;g=0;f=b.length;h=null;j=new Vfb;if(g<f&&(BCb(g,b.length),b.charCodeAt(g)==43)){++g;++c;if(g<f&&(BCb(g,b.length),b.charCodeAt(g)==43||(BCb(g,b.length),b.charCodeAt(g)==45))){throw vbb(new Oeb(Oje+b+'"'))}}while(g<f&&(BCb(g,b.length),b.charCodeAt(g)!=46)&&(BCb(g,b.length),b.charCodeAt(g)!=101)&&(BCb(g,b.length),b.charCodeAt(g)!=69)){++g}j.a+=''+qfb(b==null?Xhe:(uCb(b),b),c,g);if(g<f&&(BCb(g,b.length),b.charCodeAt(g)==46)){++g;c=g;while(g<f&&(BCb(g,b.length),b.charCodeAt(g)!=101)&&(BCb(g,b.length),b.charCodeAt(g)!=69)){++g}a.e=g-c;j.a+=''+qfb(b==null?Xhe:(uCb(b),b),c,g)}else{a.e=0}if(g<f&&(BCb(g,b.length),b.charCodeAt(g)==101||(BCb(g,b.length),b.charCodeAt(g)==69))){++g;c=g;if(g<f&&(BCb(g,b.length),b.charCodeAt(g)==43)){++g;g<f&&(BCb(g,b.length),b.charCodeAt(g)!=45)&&++c}h=b.substr(c,f-c);a.e=a.e-Icb(h,Rie,Ohe);if(a.e!=QD(a.e)){throw vbb(new Oeb('Scale out of range.'))}}i=j.a;if(i.length<16){a.f=(kgb==null&&(kgb=new RegExp('^[+-]?\\d*$','i')),kgb.test(i)?parseInt(i,10):NaN);if(isNaN(a.f)){throw vbb(new Oeb(Oje+b+'"'))}a.a=ugb(a.f)}else{ogb(a,new Ygb(i))}a.d=j.a.length;for(e=0;e<j.a.length;++e){d=bfb(j.a,e);if(d!=45&&d!=48){break}--a.d}a.d==0&&(a.d=1)} +function xXb(){xXb=ccb;wXb=new Hp;Rc(wXb,(Ucd(),Fcd),Jcd);Rc(wXb,Qcd,Jcd);Rc(wXb,Qcd,Mcd);Rc(wXb,Bcd,Icd);Rc(wXb,Bcd,Jcd);Rc(wXb,Gcd,Jcd);Rc(wXb,Gcd,Kcd);Rc(wXb,Ocd,Dcd);Rc(wXb,Ocd,Jcd);Rc(wXb,Lcd,Ecd);Rc(wXb,Lcd,Jcd);Rc(wXb,Lcd,Kcd);Rc(wXb,Lcd,Dcd);Rc(wXb,Ecd,Lcd);Rc(wXb,Ecd,Mcd);Rc(wXb,Ecd,Icd);Rc(wXb,Ecd,Jcd);Rc(wXb,Ncd,Ncd);Rc(wXb,Ncd,Kcd);Rc(wXb,Ncd,Mcd);Rc(wXb,Hcd,Hcd);Rc(wXb,Hcd,Kcd);Rc(wXb,Hcd,Icd);Rc(wXb,Pcd,Pcd);Rc(wXb,Pcd,Dcd);Rc(wXb,Pcd,Mcd);Rc(wXb,Ccd,Ccd);Rc(wXb,Ccd,Dcd);Rc(wXb,Ccd,Icd);Rc(wXb,Kcd,Gcd);Rc(wXb,Kcd,Lcd);Rc(wXb,Kcd,Ncd);Rc(wXb,Kcd,Hcd);Rc(wXb,Kcd,Jcd);Rc(wXb,Kcd,Kcd);Rc(wXb,Kcd,Mcd);Rc(wXb,Kcd,Icd);Rc(wXb,Dcd,Ocd);Rc(wXb,Dcd,Lcd);Rc(wXb,Dcd,Pcd);Rc(wXb,Dcd,Ccd);Rc(wXb,Dcd,Dcd);Rc(wXb,Dcd,Mcd);Rc(wXb,Dcd,Icd);Rc(wXb,Dcd,Jcd);Rc(wXb,Mcd,Qcd);Rc(wXb,Mcd,Ecd);Rc(wXb,Mcd,Ncd);Rc(wXb,Mcd,Pcd);Rc(wXb,Mcd,Kcd);Rc(wXb,Mcd,Dcd);Rc(wXb,Mcd,Mcd);Rc(wXb,Mcd,Jcd);Rc(wXb,Icd,Bcd);Rc(wXb,Icd,Ecd);Rc(wXb,Icd,Hcd);Rc(wXb,Icd,Ccd);Rc(wXb,Icd,Kcd);Rc(wXb,Icd,Dcd);Rc(wXb,Icd,Icd);Rc(wXb,Icd,Jcd);Rc(wXb,Jcd,Fcd);Rc(wXb,Jcd,Qcd);Rc(wXb,Jcd,Bcd);Rc(wXb,Jcd,Gcd);Rc(wXb,Jcd,Ocd);Rc(wXb,Jcd,Lcd);Rc(wXb,Jcd,Ecd);Rc(wXb,Jcd,Kcd);Rc(wXb,Jcd,Dcd);Rc(wXb,Jcd,Mcd);Rc(wXb,Jcd,Icd);Rc(wXb,Jcd,Jcd)} +function YXb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;a.d=new f7c(Pje,Pje);a.c=new f7c(Qje,Qje);for(m=b.Kc();m.Ob();){k=BD(m.Pb(),37);for(t=new olb(k.a);t.a<t.c.c.length;){s=BD(mlb(t),10);a.d.a=$wnd.Math.min(a.d.a,s.n.a-s.d.b);a.d.b=$wnd.Math.min(a.d.b,s.n.b-s.d.d);a.c.a=$wnd.Math.max(a.c.a,s.n.a+s.o.a+s.d.c);a.c.b=$wnd.Math.max(a.c.b,s.n.b+s.o.b+s.d.a)}}h=new nYb;for(l=b.Kc();l.Ob();){k=BD(l.Pb(),37);d=fYb(a,k);Ekb(h.a,d);d.a=d.a|!BD(vNb(d.c,(wtc(),Esc)),21).dc()}a.b=(LUb(),B=new VUb,B.f=new CUb(c),B.b=BUb(B.f,h),B);PUb((o=a.b,new Zdd,o));a.e=new d7c;a.a=a.b.f.e;for(g=new olb(h.a);g.a<g.c.c.length;){e=BD(mlb(g),841);u=QUb(a.b,e);g_b(e.c,u.a,u.b);for(q=new olb(e.c.a);q.a<q.c.c.length;){p=BD(mlb(q),10);if(p.k==(j0b(),e0b)){r=aYb(a,p.n,BD(vNb(p,(wtc(),Hsc)),61));P6c(X6c(p.n),r)}}}for(f=new olb(h.a);f.a<f.c.c.length;){e=BD(mlb(f),841);for(j=new olb(lYb(e));j.a<j.c.c.length;){i=BD(mlb(j),17);A=new t7c(i.a);St(A,0,A0b(i.c));Dsb(A,A0b(i.d));n=null;for(w=Jsb(A,0);w.b!=w.d.c;){v=BD(Xsb(w),8);if(!n){n=v;continue}if(Ky(n.a,v.a)){a.e.a=$wnd.Math.min(a.e.a,n.a);a.a.a=$wnd.Math.max(a.a.a,n.a)}else if(Ky(n.b,v.b)){a.e.b=$wnd.Math.min(a.e.b,n.b);a.a.b=$wnd.Math.max(a.a.b,n.b)}n=v}}}V6c(a.e);P6c(a.a,a.e)} +function wZd(a){Bnd(a.b,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'ConsistentTransient']));Bnd(a.a,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'WellFormedSourceURI']));Bnd(a.o,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures']));Bnd(a.p,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'WellFormedInstanceTypeName UniqueTypeParameterNames']));Bnd(a.v,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'UniqueEnumeratorNames UniqueEnumeratorLiterals']));Bnd(a.R,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'WellFormedName']));Bnd(a.T,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid']));Bnd(a.U,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs']));Bnd(a.W,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer']));Bnd(a.bb,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'ValidDefaultValueLiteral']));Bnd(a.eb,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'ValidLowerBound ValidUpperBound ConsistentBounds ValidType']));Bnd(a.H,_ve,OC(GC(ZI,1),nie,2,6,[bwe,'ConsistentType ConsistentBounds ConsistentArguments']))} +function B4b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;if(b.dc()){return}e=new s7c;h=c?c:BD(b.Xb(0),17);o=h.c;hQc();m=o.i.k;if(!(m==(j0b(),h0b)||m==i0b||m==e0b||m==d0b)){throw vbb(new Wdb('The target node of the edge must be a normal node or a northSouthPort.'))}Fsb(e,l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])));if((Ucd(),Lcd).Hc(o.j)){q=Edb(ED(vNb(o,(wtc(),qtc))));l=new f7c(l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])).a,q);Gsb(e,l,e.c.b,e.c)}k=null;d=false;i=b.Kc();while(i.Ob()){g=BD(i.Pb(),17);f=g.a;if(f.b!=0){if(d){j=Y6c(P6c(k,(sCb(f.b!=0),BD(f.a.a.c,8))),0.5);Gsb(e,j,e.c.b,e.c);d=false}else{d=true}k=R6c((sCb(f.b!=0),BD(f.c.b.c,8)));ye(e,f);Osb(f)}}p=h.d;if(Lcd.Hc(p.j)){q=Edb(ED(vNb(p,(wtc(),qtc))));l=new f7c(l7c(OC(GC(m1,1),nie,8,0,[p.i.n,p.n,p.a])).a,q);Gsb(e,l,e.c.b,e.c)}Fsb(e,l7c(OC(GC(m1,1),nie,8,0,[p.i.n,p.n,p.a])));a.d==(tBc(),qBc)&&(r=(sCb(e.b!=0),BD(e.a.a.c,8)),s=BD(Ut(e,1),8),t=new e7c(bRc(o.j)),t.a*=5,t.b*=5,u=c7c(new f7c(s.a,s.b),r),v=new f7c(A4b(t.a,u.a),A4b(t.b,u.b)),P6c(v,r),w=Jsb(e,1),Vsb(w,v),A=(sCb(e.b!=0),BD(e.c.b.c,8)),B=BD(Ut(e,e.b-2),8),t=new e7c(bRc(p.j)),t.a*=5,t.b*=5,u=c7c(new f7c(B.a,B.b),A),C=new f7c(A4b(t.a,u.a),A4b(t.b,u.b)),P6c(C,A),St(e,e.b-1,C),undefined);n=new YPc(e);ye(h.a,UPc(n))} +function Kgd(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P;t=BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82);v=t.Dg();w=t.Eg();u=t.Cg()/2;p=t.Bg()/2;if(JD(t,186)){s=BD(t,118);v+=mpd(s).i;v+=mpd(s).i}v+=u;w+=p;F=BD(qud((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b),0),82);H=F.Dg();I=F.Eg();G=F.Cg()/2;A=F.Bg()/2;if(JD(F,186)){D=BD(F,118);H+=mpd(D).i;H+=mpd(D).i}H+=G;I+=A;if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i==0){h=(Fhd(),j=new rmd,j);wtd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),h)}else if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i>1){o=new Oyd((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a));while(o.e!=o.i.gc()){Eyd(o)}}g=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);q=H;H>v+u?(q=v+u):H<v-u&&(q=v-u);r=I;I>w+p?(r=w+p):I<w-p&&(r=w-p);q>v-u&&q<v+u&&r>w-p&&r<w+p&&(q=v+u);omd(g,q);pmd(g,r);B=v;v>H+G?(B=H+G):v<H-G&&(B=H-G);C=w;w>I+A?(C=I+A):w<I-A&&(C=I-A);B>H-G&&B<H+G&&C>I-A&&C<I+A&&(C=I+A);hmd(g,B);imd(g,C);Uxd((!g.a&&(g.a=new xMd(y2,g,5)),g.a));f=Bub(b,5);t==F&&++f;L=B-q;O=C-r;J=$wnd.Math.sqrt(L*L+O*O);l=J*0.20000000298023224;M=L/(f+1);P=O/(f+1);K=q;N=r;for(k=0;k<f;k++){K+=M;N+=P;m=K+Cub(b,24)*lke*l-l/2;m<0?(m=1):m>c&&(m=c-1);n=N+Cub(b,24)*lke*l-l/2;n<0?(n=1):n>d&&(n=d-1);e=(Fhd(),i=new xkd,i);vkd(e,m);wkd(e,n);wtd((!g.a&&(g.a=new xMd(y2,g,5)),g.a),e)}} +function Nyc(){Nyc=ccb;iyc=(Y9c(),I9c);jyc=J9c;kyc=K9c;lyc=L9c;nyc=M9c;oyc=N9c;ryc=P9c;tyc=R9c;uyc=S9c;syc=Q9c;vyc=T9c;xyc=U9c;zyc=X9c;qyc=O9c;hyc=(jwc(),Bvc);myc=Cvc;pyc=Dvc;wyc=Evc;byc=new Osd(D9c,meb(0));cyc=yvc;dyc=zvc;eyc=Avc;Kyc=awc;Cyc=Hvc;Dyc=Kvc;Gyc=Svc;Eyc=Nvc;Fyc=Pvc;Myc=fwc;Lyc=cwc;Iyc=Yvc;Hyc=Wvc;Jyc=$vc;Cxc=pvc;Dxc=qvc;Xwc=Auc;Ywc=Duc;Lxc=new q0b(12);Kxc=new Osd(f9c,Lxc);Twc=(Aad(),wad);Swc=new Osd(E8c,Twc);Uxc=new Osd(s9c,0);fyc=new Osd(E9c,meb(1));owc=new Osd(r8c,tme);Jxc=d9c;Vxc=t9c;$xc=A9c;Kwc=y8c;mwc=p8c;axc=J8c;gyc=new Osd(H9c,(Bcb(),true));fxc=M8c;gxc=N8c;Fxc=Y8c;Ixc=b9c;Gxc=$8c;Nwc=(ead(),cad);Lwc=new Osd(z8c,Nwc);xxc=W8c;wxc=U8c;Yxc=x9c;Xxc=w9c;Zxc=z9c;Oxc=(Tbd(),Sbd);new Osd(l9c,Oxc);Qxc=o9c;Rxc=p9c;Sxc=q9c;Pxc=n9c;Byc=Gvc;sxc=avc;rxc=$uc;Ayc=Fvc;mxc=Suc;Jwc=muc;Iwc=kuc;Awc=Xtc;Bwc=Ytc;Dwc=buc;Cwc=Ztc;Hwc=iuc;uxc=cvc;vxc=dvc;ixc=Luc;Exc=uvc;zxc=hvc;$wc=Guc;Bxc=nvc;Vwc=wuc;Wwc=yuc;zwc=w8c;yxc=evc;swc=Mtc;rwc=Ktc;qwc=Jtc;cxc=Juc;bxc=Iuc;dxc=Kuc;Hxc=_8c;jxc=Q8c;Zwc=G8c;Qwc=C8c;Pwc=B8c;Ewc=euc;Wxc=v9c;pwc=v8c;exc=L8c;Txc=r9c;Mxc=h9c;Nxc=j9c;oxc=Vuc;pxc=Xuc;ayc=C9c;nwc=Itc;qxc=Zuc;Rwc=suc;Owc=quc;txc=S8c;kxc=Puc;Axc=kvc;yyc=V9c;Mwc=ouc;_xc=wvc;Uwc=uuc;lxc=Ruc;Fwc=guc;hxc=P8c;nxc=Uuc;Gwc=huc;ywc=Vtc;wwc=Stc;uwc=Qtc;vwc=Rtc;xwc=Utc;twc=Otc;_wc=Huc} +function shb(a,b){phb();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return $je;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0.00000';case 6:return '0.000000';default:w=new Ufb;b<0?(w.a+='0E+',w):(w.a+='0E',w);w.a+=-b;return w.a;}}t=o*10+1+7;u=KC(TD,$ie,25,t+1,15,1);c=t;if(o==1){h=e[0];if(h<0){H=xbb(h,Yje);do{p=H;H=Abb(H,10);u[--c]=48+Tbb(Qbb(p,Ibb(H,10)))&aje}while(ybb(H,0)!=0)}else{H=h;do{p=H;H=H/10|0;u[--c]=48+(p-H*10)&aje}while(H!=0)}}else{D=KC(WD,oje,25,o,15,1);G=o;$fb(e,0,D,0,G);I:while(true){A=0;for(j=G-1;j>=0;j--){F=wbb(Nbb(A,32),xbb(D[j],Yje));r=qhb(F);D[j]=Tbb(r);A=Tbb(Obb(r,32))}s=Tbb(A);q=c;do{u[--c]=48+s%10&aje}while((s=s/10|0)!=0&&c!=0);d=9-q+c;for(i=0;i<d&&c>0;i++){u[--c]=48}l=G-1;for(;D[l]==0;l--){if(l==0){break I}}G=l+1}while(u[c]==48){++c}}n=B<0;g=t-c-b-1;if(b==0){n&&(u[--c]=45);return zfb(u,c,t-c)}if(b>0&&g>=-6){if(g>=0){k=c+g;for(m=t-1;m>=k;m--){u[m+1]=u[m]}u[++k]=46;n&&(u[--c]=45);return zfb(u,c,t-c+1)}for(l=2;l<-g+1;l++){u[--c]=48}u[--c]=46;u[--c]=48;n&&(u[--c]=45);return zfb(u,c,t-c)}C=c+1;f=t;v=new Vfb;n&&(v.a+='-',v);if(f-C>=1){Kfb(v,u[c]);v.a+='.';v.a+=zfb(u,c+1,t-c-1)}else{v.a+=zfb(u,c,t-c)}v.a+='E';g>0&&(v.a+='+',v);v.a+=''+g;return v.a} +function z$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Lqb;c=(Pgd(),new bhd(a.c));d=new YGb(c);UGb(d);t=GD(hkd(a.c,(d0c(),Y_c)));i=BD(hkd(a.c,$_c),316);v=BD(hkd(a.c,__c),429);g=BD(hkd(a.c,T_c),482);u=BD(hkd(a.c,Z_c),430);a.j=Edb(ED(hkd(a.c,a0c)));h=a.a;switch(i.g){case 0:h=a.a;break;case 1:h=a.b;break;case 2:h=a.i;break;case 3:h=a.e;break;case 4:h=a.f;break;default:throw vbb(new Wdb(Mre+(i.f!=null?i.f:''+i.g)));}a.d=new g_c(h,v,g);yNb(a.d,(XNb(),VNb),DD(hkd(a.c,V_c)));a.d.c=Ccb(DD(hkd(a.c,U_c)));if(Vod(a.c).i==0){return a.d}for(l=new Fyd(Vod(a.c));l.e!=l.i.gc();){k=BD(Dyd(l),33);n=k.g/2;m=k.f/2;w=new f7c(k.i+n,k.j+m);while(Mhb(a.g,w)){O6c(w,($wnd.Math.random()-0.5)*qme,($wnd.Math.random()-0.5)*qme)}p=BD(hkd(k,(Y9c(),S8c)),142);q=new aOb(w,new J6c(w.a-n-a.j/2-p.b,w.b-m-a.j/2-p.d,k.g+a.j+(p.b+p.c),k.f+a.j+(p.d+p.a)));Ekb(a.d.i,q);Rhb(a.g,w,new vgd(q,k))}switch(u.g){case 0:if(t==null){a.d.d=BD(Ikb(a.d.i,0),65)}else{for(s=new olb(a.d.i);s.a<s.c.c.length;){q=BD(mlb(s),65);o=BD(BD(Ohb(a.g,q.a),46).b,33).zg();o!=null&&dfb(o,t)&&(a.d.d=q)}}break;case 1:e=new f7c(a.c.g,a.c.f);e.a*=0.5;e.b*=0.5;O6c(e,a.c.i,a.c.j);f=Pje;for(r=new olb(a.d.i);r.a<r.c.c.length;){q=BD(mlb(r),65);j=S6c(q.a,e);if(j<f){f=j;a.d.d=q}}break;default:throw vbb(new Wdb(Mre+(u.f!=null?u.f:''+u.g)));}return a.d} +function qfd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;v=BD(qud((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a),0),202);k=new s7c;u=new Lqb;w=tfd(v);jrb(u.f,v,w);m=new Lqb;d=new Psb;for(o=ul(pl(OC(GC(KI,1),Uhe,20,0,[(!b.d&&(b.d=new y5d(B2,b,8,5)),b.d),(!b.e&&(b.e=new y5d(B2,b,7,4)),b.e)])));Qr(o);){n=BD(Rr(o),79);if((!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i!=1){throw vbb(new Wdb(Tse+(!a.a&&(a.a=new cUd(A2,a,6,6)),a.a).i))}if(n!=a){q=BD(qud((!n.a&&(n.a=new cUd(A2,n,6,6)),n.a),0),202);Gsb(d,q,d.c.b,d.c);p=BD(Wd(irb(u.f,q)),12);if(!p){p=tfd(q);jrb(u.f,q,p)}l=c?c7c(new g7c(BD(Ikb(w,w.c.length-1),8)),BD(Ikb(p,p.c.length-1),8)):c7c(new g7c((tCb(0,w.c.length),BD(w.c[0],8))),(tCb(0,p.c.length),BD(p.c[0],8)));jrb(m.f,q,l)}}if(d.b!=0){r=BD(Ikb(w,c?w.c.length-1:0),8);for(j=1;j<w.c.length;j++){s=BD(Ikb(w,c?w.c.length-1-j:j),8);e=Jsb(d,0);while(e.b!=e.d.c){q=BD(Xsb(e),202);p=BD(Wd(irb(u.f,q)),12);if(p.c.length<=j){Zsb(e)}else{t=P6c(new g7c(BD(Ikb(p,c?p.c.length-1-j:j),8)),BD(Wd(irb(m.f,q)),8));if(s.a!=t.a||s.b!=t.b){f=s.a-r.a;h=s.b-r.b;g=t.a-r.a;i=t.b-r.b;g*h==i*f&&(f==0||isNaN(f)?f:f<0?-1:1)==(g==0||isNaN(g)?g:g<0?-1:1)&&(h==0||isNaN(h)?h:h<0?-1:1)==(i==0||isNaN(i)?i:i<0?-1:1)?($wnd.Math.abs(f)<$wnd.Math.abs(g)||$wnd.Math.abs(h)<$wnd.Math.abs(i))&&(Gsb(k,s,k.c.b,k.c),true):j>1&&(Gsb(k,r,k.c.b,k.c),true);Zsb(e)}}}r=s}}return k} +function $Bc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;Odd(c,'Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=KC(WD,oje,25,L,15,1);a.c=KC(WD,oje,25,L,15,1);a.b=KC(WD,oje,25,L,15,1);j=0;for(r=new olb(t);r.a<r.c.c.length;){p=BD(mlb(r),10);p.p=j;for(C=new olb(p.j);C.a<C.c.c.length;){w=BD(mlb(C),11);for(h=new olb(w.e);h.a<h.c.c.length;){d=BD(mlb(h),17);if(d.c.i==p){continue}G=BD(vNb(d,(Nyc(),cyc)),19).a;a.a[j]+=G>0?G+1:1}for(g=new olb(w.g);g.a<g.c.c.length;){d=BD(mlb(g),17);if(d.d.i==p){continue}G=BD(vNb(d,(Nyc(),cyc)),19).a;a.c[j]+=G>0?G+1:1}}a.c[j]==0?Dsb(a.e,p):a.a[j]==0&&Dsb(a.f,p);++j}o=-1;n=1;l=new Rkb;a.d=BD(vNb(b,(wtc(),jtc)),230);while(L>0){while(a.e.b!=0){I=BD(Lsb(a.e),10);a.b[I.p]=o--;_Bc(a,I);--L}while(a.f.b!=0){J=BD(Lsb(a.f),10);a.b[J.p]=n++;_Bc(a,J);--L}if(L>0){m=Rie;for(s=new olb(t);s.a<s.c.c.length;){p=BD(mlb(s),10);if(a.b[p.p]==0){u=a.c[p.p]-a.a[p.p];if(u>=m){if(u>m){l.c=KC(SI,Uhe,1,0,5,1);m=u}l.c[l.c.length]=p}}}k=a.Zf(l);a.b[k.p]=n++;_Bc(a,k);--L}}H=t.c.length+1;for(j=0;j<t.c.length;j++){a.b[j]<0&&(a.b[j]+=H)}for(q=new olb(t);q.a<q.c.c.length;){p=BD(mlb(q),10);F=m_b(p.j);for(A=F,B=0,D=A.length;B<D;++B){w=A[B];v=k_b(w.g);for(e=v,f=0,i=e.length;f<i;++f){d=e[f];K=d.d.i.p;if(a.b[p.p]>a.b[K]){PZb(d,true);yNb(b,Asc,(Bcb(),true))}}}}a.a=null;a.c=null;a.b=null;Osb(a.f);Osb(a.e);Qdd(c)} +function sQb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;d=new Rkb;h=new Rkb;q=b/2;n=a.gc();e=BD(a.Xb(0),8);r=BD(a.Xb(1),8);o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)));for(j=2;j<n;j++){p=e;e=r;r=BD(a.Xb(j),8);o=tQb(e.a,e.b,p.a,p.b,q);Ekb(d,(tCb(1,o.c.length),BD(o.c[1],8)));Ekb(h,(tCb(0,o.c.length),BD(o.c[0],8)));o=tQb(e.a,e.b,r.a,r.b,q);Ekb(d,(tCb(0,o.c.length),BD(o.c[0],8)));Ekb(h,(tCb(1,o.c.length),BD(o.c[1],8)))}o=tQb(r.a,r.b,e.a,e.b,q);Ekb(d,(tCb(1,o.c.length),BD(o.c[1],8)));Ekb(h,(tCb(0,o.c.length),BD(o.c[0],8)));c=new s7c;g=new Rkb;Dsb(c,(tCb(0,d.c.length),BD(d.c[0],8)));for(k=1;k<d.c.length-2;k+=2){f=(tCb(k,d.c.length),BD(d.c[k],8));m=rQb((tCb(k-1,d.c.length),BD(d.c[k-1],8)),f,(tCb(k+1,d.c.length),BD(d.c[k+1],8)),(tCb(k+2,d.c.length),BD(d.c[k+2],8)));!isFinite(m.a)||!isFinite(m.b)?(Gsb(c,f,c.c.b,c.c),true):(Gsb(c,m,c.c.b,c.c),true)}Dsb(c,BD(Ikb(d,d.c.length-1),8));Ekb(g,(tCb(0,h.c.length),BD(h.c[0],8)));for(l=1;l<h.c.length-2;l+=2){f=(tCb(l,h.c.length),BD(h.c[l],8));m=rQb((tCb(l-1,h.c.length),BD(h.c[l-1],8)),f,(tCb(l+1,h.c.length),BD(h.c[l+1],8)),(tCb(l+2,h.c.length),BD(h.c[l+2],8)));!isFinite(m.a)||!isFinite(m.b)?(g.c[g.c.length]=f,true):(g.c[g.c.length]=m,true)}Ekb(g,BD(Ikb(h,h.c.length-1),8));for(i=g.c.length-1;i>=0;i--){Dsb(c,(tCb(i,g.c.length),BD(g.c[i],8)))}return c} +function aFd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=BEd;j=null;f=null;h=0;i=UEd(a,h,zEd,AEd);if(i<a.length&&(BCb(i,a.length),a.charCodeAt(i)==58)){l=a.substr(h,i-h);h=i+1}c=l!=null&&hnb(GEd,l.toLowerCase());if(c){i=a.lastIndexOf('!/');if(i==-1){throw vbb(new Wdb('no archive separator'))}g=true;d=qfb(a,h,++i);h=i}else if(h>=0&&dfb(a.substr(h,'//'.length),'//')){h+=2;i=UEd(a,h,CEd,DEd);d=a.substr(h,i-h);h=i}else if(l!=null&&(h==a.length||(BCb(h,a.length),a.charCodeAt(h)!=47))){g=false;i=ifb(a,wfb(35),h);i==-1&&(i=a.length);d=a.substr(h,i-h);h=i}if(!c&&h<a.length&&(BCb(h,a.length),a.charCodeAt(h)==47)){i=UEd(a,h+1,CEd,DEd);k=a.substr(h+1,i-(h+1));if(k.length>0&&bfb(k,k.length-1)==58){e=k;h=i}}if(h<a.length&&(BCb(h,a.length),a.charCodeAt(h)==47)){++h;b=true}if(h<a.length&&(BCb(h,a.length),a.charCodeAt(h)!=63)&&(BCb(h,a.length),a.charCodeAt(h)!=35)){m=new Rkb;while(h<a.length&&(BCb(h,a.length),a.charCodeAt(h)!=63)&&(BCb(h,a.length),a.charCodeAt(h)!=35)){i=UEd(a,h,CEd,DEd);Ekb(m,a.substr(h,i-h));h=i;h<a.length&&(BCb(h,a.length),a.charCodeAt(h)==47)&&(bFd(a,++h)||(m.c[m.c.length]='',true))}n=KC(ZI,nie,2,m.c.length,6,1);Qkb(m,n)}if(h<a.length&&(BCb(h,a.length),a.charCodeAt(h)==63)){i=gfb(a,35,++h);i==-1&&(i=a.length);j=a.substr(h,i-h);h=i}h<a.length&&(f=pfb(a,++h));iFd(g,l,d,e,n,j);return new NEd(g,l,d,e,b,n,j,f)} +function sJc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;I=new Rkb;for(o=new olb(b.b);o.a<o.c.c.length;){m=BD(mlb(o),29);for(v=new olb(m.a);v.a<v.c.c.length;){u=BD(mlb(v),10);u.p=-1;l=Rie;B=Rie;for(D=new olb(u.j);D.a<D.c.c.length;){C=BD(mlb(D),11);for(e=new olb(C.e);e.a<e.c.c.length;){c=BD(mlb(e),17);F=BD(vNb(c,(Nyc(),eyc)),19).a;l=$wnd.Math.max(l,F)}for(d=new olb(C.g);d.a<d.c.c.length;){c=BD(mlb(d),17);F=BD(vNb(c,(Nyc(),eyc)),19).a;B=$wnd.Math.max(B,F)}}yNb(u,hJc,meb(l));yNb(u,iJc,meb(B))}}r=0;for(n=new olb(b.b);n.a<n.c.c.length;){m=BD(mlb(n),29);for(v=new olb(m.a);v.a<v.c.c.length;){u=BD(mlb(v),10);if(u.p<0){H=new zJc;H.b=r++;oJc(a,u,H);I.c[I.c.length]=H}}}A=Pu(I.c.length);k=Pu(I.c.length);for(g=0;g<I.c.length;g++){Ekb(A,new Rkb);Ekb(k,meb(0))}mJc(b,I,A,k);J=BD(Qkb(I,KC(sY,Iqe,257,I.c.length,0,1)),840);w=BD(Qkb(A,KC(yK,eme,15,A.c.length,0,1)),192);j=KC(WD,oje,25,k.c.length,15,1);for(h=0;h<j.length;h++){j[h]=(tCb(h,k.c.length),BD(k.c[h],19)).a}s=0;t=new Rkb;for(i=0;i<J.length;i++){j[i]==0&&Ekb(t,J[i])}q=KC(WD,oje,25,J.length,15,1);while(t.c.length!=0){H=BD(Kkb(t,0),257);q[H.b]=s++;while(!w[H.b].dc()){K=BD(w[H.b].$c(0),257);--j[K.b];j[K.b]==0&&(t.c[t.c.length]=K,true)}}a.a=KC(sY,Iqe,257,J.length,0,1);for(f=0;f<J.length;f++){p=J[f];G=q[f];a.a[G]=p;p.b=G;for(v=new olb(p.e);v.a<v.c.c.length;){u=BD(mlb(v),10);u.p=G}}return a.a} +function nde(a){var b,c,d;if(a.d>=a.j){a.a=-1;a.c=1;return}b=bfb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d<a.j&&bfb(a.i,a.d)==91){++a.d;d=24}else d=0;break;case 91:if((a.e&512)!=512&&a.d<a.j&&bfb(a.i,a.d)==58){++a.d;d=20;break}default:if((b&64512)==Uje&&a.d<a.j){c=bfb(a.i,a.d);if((c&64512)==56320){a.a=Tje+(b-Uje<<10)+c-56320;++a.d}}d=0;}a.c=d;return}switch(b){case 124:d=2;break;case 42:d=3;break;case 43:d=4;break;case 63:d=5;break;case 41:d=7;break;case 46:d=8;break;case 91:d=9;break;case 94:d=11;break;case 36:d=12;break;case 40:d=6;if(a.d>=a.j)break;if(bfb(a.i,a.d)!=63)break;if(++a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);switch(b){case 58:d=13;break;case 61:d=14;break;case 33:d=15;break;case 91:d=19;break;case 62:d=18;break;case 60:if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),vue))));b=bfb(a.i,a.d++);if(b==61){d=16}else if(b==33){d=17}else throw vbb(new mde(tvd((h0d(),wue))));break;case 35:while(a.d<a.j){b=bfb(a.i,a.d++);if(b==41)break}if(b!=41)throw vbb(new mde(tvd((h0d(),xue))));d=21;break;default:if(b==45||97<=b&&b<=122||65<=b&&b<=90){--a.d;d=22;break}else if(b==40){d=23;break}throw vbb(new mde(tvd((h0d(),vue))));}break;case 92:d=10;if(a.d>=a.j)throw vbb(new mde(tvd((h0d(),uue))));a.a=bfb(a.i,a.d++);break;default:d=0;}a.c=d} +function P5b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=BD(vNb(a,(Nyc(),Vxc)),98);if(!(A!=(dcd(),bcd)&&A!=ccd)){return}o=a.b;n=o.c.length;k=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));p=new Skb((Xj(n+2,Mie),Oy(wbb(wbb(5,n+2),(n+2)/10|0))));Ekb(k,new Lqb);Ekb(k,new Lqb);Ekb(p,new Rkb);Ekb(p,new Rkb);w=new Rkb;for(b=0;b<n;b++){c=(tCb(b,o.c.length),BD(o.c[b],29));B=(tCb(b,k.c.length),BD(k.c[b],83));q=new Lqb;k.c[k.c.length]=q;D=(tCb(b,p.c.length),BD(p.c[b],15));s=new Rkb;p.c[p.c.length]=s;for(e=new olb(c.a);e.a<e.c.c.length;){d=BD(mlb(e),10);if(L5b(d)){w.c[w.c.length]=d;continue}for(j=new Sr(ur(R_b(d).a.Kc(),new Sq));Qr(j);){h=BD(Rr(j),17);F=h.c.i;if(!L5b(F)){continue}C=BD(B.xc(vNb(F,(wtc(),$sc))),10);if(!C){C=K5b(a,F);B.zc(vNb(F,$sc),C);D.Fc(C)}QZb(h,BD(Ikb(C.j,1),11))}for(i=new Sr(ur(U_b(d).a.Kc(),new Sq));Qr(i);){h=BD(Rr(i),17);G=h.d.i;if(!L5b(G)){continue}r=BD(Ohb(q,vNb(G,(wtc(),$sc))),10);if(!r){r=K5b(a,G);Rhb(q,vNb(G,$sc),r);s.c[s.c.length]=r}RZb(h,BD(Ikb(r.j,0),11))}}}for(l=0;l<p.c.length;l++){t=(tCb(l,p.c.length),BD(p.c[l],15));if(t.dc()){continue}m=null;if(l==0){m=new H1b(a);wCb(0,o.c.length);aCb(o.c,0,m)}else if(l==k.c.length-1){m=new H1b(a);o.c[o.c.length]=m}else{m=(tCb(l-1,o.c.length),BD(o.c[l-1],29))}for(g=t.Kc();g.Ob();){f=BD(g.Pb(),10);$_b(f,m)}}for(v=new olb(w);v.a<v.c.c.length;){u=BD(mlb(v),10);$_b(u,null)}yNb(a,(wtc(),Fsc),w)} +function BCc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;Odd(c,'Coffman-Graham Layering',1);if(b.a.c.length==0){Qdd(c);return}v=BD(vNb(b,(Nyc(),kxc)),19).a;i=0;g=0;for(m=new olb(b.a);m.a<m.c.c.length;){l=BD(mlb(m),10);l.p=i++;for(f=new Sr(ur(U_b(l).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);e.p=g++}}a.d=KC(sbb,dle,25,i,16,1);a.a=KC(sbb,dle,25,g,16,1);a.b=KC(WD,oje,25,i,15,1);a.e=KC(WD,oje,25,i,15,1);a.f=KC(WD,oje,25,i,15,1);Nc(a.c);CCc(a,b);o=new gub(new GCc(a));for(u=new olb(b.a);u.a<u.c.c.length;){s=BD(mlb(u),10);for(f=new Sr(ur(R_b(s).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);a.a[e.p]||++a.b[s.p]}a.b[s.p]==0&&(zCb(cub(o,s)),true)}h=0;while(o.b.c.length!=0){s=BD(dub(o),10);a.f[s.p]=h++;for(f=new Sr(ur(U_b(s).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}q=e.d.i;--a.b[q.p];Rc(a.c,q,meb(a.f[s.p]));a.b[q.p]==0&&(zCb(cub(o,q)),true)}}n=new gub(new KCc(a));for(t=new olb(b.a);t.a<t.c.c.length;){s=BD(mlb(t),10);for(f=new Sr(ur(U_b(s).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);a.a[e.p]||++a.e[s.p]}a.e[s.p]==0&&(zCb(cub(n,s)),true)}k=new Rkb;d=yCc(b,k);while(n.b.c.length!=0){r=BD(dub(n),10);(d.a.c.length>=v||!wCc(r,d))&&(d=yCc(b,k));$_b(r,d);for(f=new Sr(ur(R_b(r).a.Kc(),new Sq));Qr(f);){e=BD(Rr(f),17);if(a.a[e.p]){continue}p=e.c.i;--a.e[p.p];a.e[p.p]==0&&(zCb(cub(n,p)),true)}}for(j=k.c.length-1;j>=0;--j){Ekb(b.b,(tCb(j,k.c.length),BD(k.c[j],29)))}b.a.c=KC(SI,Uhe,1,0,5,1);Qdd(c)} +function gee(a){var b,c,d,e,f,g,h,i,j;a.b=1;nde(a);b=null;if(a.c==0&&a.a==94){nde(a);b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);h=(null,++vfe,new $fe(4))}else{h=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e){if(b){Zfe(b,h);h=b}break}c=a.a;d=false;if(j==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(h,fee(c));d=true;break;case 105:case 73:case 99:case 67:c=(Xfe(h,fee(c)),-1);c<0&&(d=true);break;case 112:case 80:i=tde(a,c);if(!i)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(h,i);d=true;break;default:c=eee(a);}}else if(j==24&&!e){if(b){Zfe(b,h);h=b}f=gee(a);Zfe(h,f);if(a.c!=0||a.a!=93)throw vbb(new mde(tvd((h0d(),Mue))));break}nde(a);if(!d){if(j==0){if(c==91)throw vbb(new mde(tvd((h0d(),Nue))));if(c==93)throw vbb(new mde(tvd((h0d(),Oue))));if(c==45&&!e&&a.a!=93)throw vbb(new mde(tvd((h0d(),Pue))))}if(a.c!=0||a.a!=45||c==45&&e){Ufe(h,c,c)}else{nde(a);if((j=a.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(j==0&&a.a==93){Ufe(h,c,c);Ufe(h,45,45)}else if(j==0&&a.a==93||j==24){throw vbb(new mde(tvd((h0d(),Pue))))}else{g=a.a;if(j==0){if(g==91)throw vbb(new mde(tvd((h0d(),Nue))));if(g==93)throw vbb(new mde(tvd((h0d(),Oue))));if(g==45)throw vbb(new mde(tvd((h0d(),Pue))))}else j==10&&(g=eee(a));nde(a);if(c>g)throw vbb(new mde(tvd((h0d(),Sue))));Ufe(h,c,g)}}}e=false}if(a.c==1)throw vbb(new mde(tvd((h0d(),Kue))));Yfe(h);Vfe(h);a.b=0;nde(a);return h} +function xZd(a){Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#decimal']));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#integer']));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#boolean']));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EBoolean',fue,'EBoolean:Object']));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#byte']));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#hexBinary']));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EByte',fue,'EByte:Object']));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EChar',fue,'EChar:Object']));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#double']));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EDouble',fue,'EDouble:Object']));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#float']));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EFloat',fue,'EFloat:Object']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#int']));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EInt',fue,'EInt:Object']));Bnd(a.N,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#long']));Bnd(a.O,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'ELong',fue,'ELong:Object']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#short']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'EShort',fue,'EShort:Object']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[cwe,'http://www.w3.org/2001/XMLSchema#string']))} +function fRc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){return tCb(0,a.c.length),BD(a.c[0],135)}else if(a.c.length<=0){return new SRc}for(i=new olb(a);i.a<i.c.c.length;){g=BD(mlb(i),135);s=0;o=Ohe;p=Ohe;m=Rie;n=Rie;for(r=Jsb(g.b,0);r.b!=r.d.c;){q=BD(Xsb(r),86);s+=BD(vNb(q,(JTc(),ETc)),19).a;o=$wnd.Math.min(o,q.e.a);p=$wnd.Math.min(p,q.e.b);m=$wnd.Math.max(m,q.e.a+q.f.a);n=$wnd.Math.max(n,q.e.b+q.f.b)}yNb(g,(JTc(),ETc),meb(s));yNb(g,(mTc(),WSc),new f7c(o,p));yNb(g,VSc,new f7c(m,n))}mmb();Okb(a,new jRc);v=new SRc;tNb(v,(tCb(0,a.c.length),BD(a.c[0],94)));l=0;D=0;for(j=new olb(a);j.a<j.c.c.length;){g=BD(mlb(j),135);w=c7c(R6c(BD(vNb(g,(mTc(),VSc)),8)),BD(vNb(g,WSc),8));l=$wnd.Math.max(l,w.a);D+=w.a*w.b}l=$wnd.Math.max(l,$wnd.Math.sqrt(D)*Edb(ED(vNb(v,(JTc(),uTc)))));A=Edb(ED(vNb(v,HTc)));F=0;G=0;k=0;b=A;for(h=new olb(a);h.a<h.c.c.length;){g=BD(mlb(h),135);w=c7c(R6c(BD(vNb(g,(mTc(),VSc)),8)),BD(vNb(g,WSc),8));if(F+w.a>l){F=0;G+=k+A;k=0}eRc(v,g,F,G);b=$wnd.Math.max(b,F+w.a);k=$wnd.Math.max(k,w.b);F+=w.a+A}u=new Lqb;c=new Lqb;for(C=new olb(a);C.a<C.c.c.length;){B=BD(mlb(C),135);d=Ccb(DD(vNb(B,(Y9c(),y8c))));t=!B.q?(null,kmb):B.q;for(f=t.vc().Kc();f.Ob();){e=BD(f.Pb(),42);if(Mhb(u,e.cd())){if(PD(BD(e.cd(),146).wg())!==PD(e.dd())){if(d&&Mhb(c,e.cd())){Zfb();'Found different values for property '+BD(e.cd(),146).tg()+' in components.'}else{Rhb(u,BD(e.cd(),146),e.dd());yNb(v,BD(e.cd(),146),e.dd());d&&Rhb(c,BD(e.cd(),146),e.dd())}}}else{Rhb(u,BD(e.cd(),146),e.dd());yNb(v,BD(e.cd(),146),e.dd())}}}return v} +function MYb(){MYb=ccb;xXb();LYb=new Hp;Rc(LYb,(Ucd(),Gcd),Fcd);Rc(LYb,Qcd,Fcd);Rc(LYb,Hcd,Fcd);Rc(LYb,Ncd,Fcd);Rc(LYb,Mcd,Fcd);Rc(LYb,Kcd,Fcd);Rc(LYb,Ncd,Gcd);Rc(LYb,Fcd,Bcd);Rc(LYb,Gcd,Bcd);Rc(LYb,Qcd,Bcd);Rc(LYb,Hcd,Bcd);Rc(LYb,Lcd,Bcd);Rc(LYb,Ncd,Bcd);Rc(LYb,Mcd,Bcd);Rc(LYb,Kcd,Bcd);Rc(LYb,Ecd,Bcd);Rc(LYb,Fcd,Ocd);Rc(LYb,Gcd,Ocd);Rc(LYb,Bcd,Ocd);Rc(LYb,Qcd,Ocd);Rc(LYb,Hcd,Ocd);Rc(LYb,Lcd,Ocd);Rc(LYb,Ncd,Ocd);Rc(LYb,Ecd,Ocd);Rc(LYb,Pcd,Ocd);Rc(LYb,Mcd,Ocd);Rc(LYb,Icd,Ocd);Rc(LYb,Kcd,Ocd);Rc(LYb,Gcd,Qcd);Rc(LYb,Hcd,Qcd);Rc(LYb,Ncd,Qcd);Rc(LYb,Kcd,Qcd);Rc(LYb,Gcd,Hcd);Rc(LYb,Qcd,Hcd);Rc(LYb,Ncd,Hcd);Rc(LYb,Hcd,Hcd);Rc(LYb,Mcd,Hcd);Rc(LYb,Fcd,Ccd);Rc(LYb,Gcd,Ccd);Rc(LYb,Bcd,Ccd);Rc(LYb,Ocd,Ccd);Rc(LYb,Qcd,Ccd);Rc(LYb,Hcd,Ccd);Rc(LYb,Lcd,Ccd);Rc(LYb,Ncd,Ccd);Rc(LYb,Pcd,Ccd);Rc(LYb,Ecd,Ccd);Rc(LYb,Kcd,Ccd);Rc(LYb,Mcd,Ccd);Rc(LYb,Jcd,Ccd);Rc(LYb,Fcd,Pcd);Rc(LYb,Gcd,Pcd);Rc(LYb,Bcd,Pcd);Rc(LYb,Qcd,Pcd);Rc(LYb,Hcd,Pcd);Rc(LYb,Lcd,Pcd);Rc(LYb,Ncd,Pcd);Rc(LYb,Ecd,Pcd);Rc(LYb,Kcd,Pcd);Rc(LYb,Icd,Pcd);Rc(LYb,Jcd,Pcd);Rc(LYb,Gcd,Ecd);Rc(LYb,Qcd,Ecd);Rc(LYb,Hcd,Ecd);Rc(LYb,Ncd,Ecd);Rc(LYb,Pcd,Ecd);Rc(LYb,Kcd,Ecd);Rc(LYb,Mcd,Ecd);Rc(LYb,Fcd,Dcd);Rc(LYb,Gcd,Dcd);Rc(LYb,Bcd,Dcd);Rc(LYb,Qcd,Dcd);Rc(LYb,Hcd,Dcd);Rc(LYb,Lcd,Dcd);Rc(LYb,Ncd,Dcd);Rc(LYb,Ecd,Dcd);Rc(LYb,Kcd,Dcd);Rc(LYb,Gcd,Mcd);Rc(LYb,Bcd,Mcd);Rc(LYb,Ocd,Mcd);Rc(LYb,Hcd,Mcd);Rc(LYb,Fcd,Icd);Rc(LYb,Gcd,Icd);Rc(LYb,Ocd,Icd);Rc(LYb,Qcd,Icd);Rc(LYb,Hcd,Icd);Rc(LYb,Lcd,Icd);Rc(LYb,Ncd,Icd);Rc(LYb,Ncd,Jcd);Rc(LYb,Hcd,Jcd);Rc(LYb,Ecd,Fcd);Rc(LYb,Ecd,Qcd);Rc(LYb,Ecd,Bcd);Rc(LYb,Lcd,Fcd);Rc(LYb,Lcd,Gcd);Rc(LYb,Lcd,Ocd)} +function HVd(a,b){switch(a.e){case 0:case 2:case 4:case 6:case 42:case 44:case 46:case 48:case 8:case 10:case 12:case 14:case 16:case 18:case 20:case 22:case 24:case 26:case 28:case 30:case 32:case 34:case 36:case 38:return new U5d(a.b,a.a,b,a.c);case 1:return new BMd(a.a,b,bLd(b.Tg(),a.c));case 43:return new N4d(a.a,b,bLd(b.Tg(),a.c));case 3:return new xMd(a.a,b,bLd(b.Tg(),a.c));case 45:return new K4d(a.a,b,bLd(b.Tg(),a.c));case 41:return new dId(BD(wId(a.c),26),a.a,b,bLd(b.Tg(),a.c));case 50:return new c6d(BD(wId(a.c),26),a.a,b,bLd(b.Tg(),a.c));case 5:return new Q4d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 47:return new U4d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 7:return new cUd(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 49:return new gUd(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 9:return new I4d(a.a,b,bLd(b.Tg(),a.c));case 11:return new G4d(a.a,b,bLd(b.Tg(),a.c));case 13:return new C4d(a.a,b,bLd(b.Tg(),a.c));case 15:return new k2d(a.a,b,bLd(b.Tg(),a.c));case 17:return new c5d(a.a,b,bLd(b.Tg(),a.c));case 19:return new _4d(a.a,b,bLd(b.Tg(),a.c));case 21:return new X4d(a.a,b,bLd(b.Tg(),a.c));case 23:return new pMd(a.a,b,bLd(b.Tg(),a.c));case 25:return new D5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 27:return new y5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 29:return new t5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 31:return new n5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 33:return new A5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 35:return new v5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 37:return new p5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 39:return new i5d(a.a,b,bLd(b.Tg(),a.c),a.d.n);case 40:return new u3d(b,bLd(b.Tg(),a.c));default:throw vbb(new hz('Unknown feature style: '+a.e));}} +function BMc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;Odd(c,'Brandes & Koepf node placement',1);a.a=b;a.c=KMc(b);d=BD(vNb(b,(Nyc(),zxc)),274);n=Ccb(DD(vNb(b,Axc)));a.d=d==(lrc(),irc)&&!n||d==frc;AMc(a,b);v=null;w=null;r=null;s=null;q=(Xj(4,Jie),new Skb(4));switch(BD(vNb(b,zxc),274).g){case 3:r=new ULc(b,a.c.d,(eMc(),cMc),(YLc(),WLc));q.c[q.c.length]=r;break;case 1:s=new ULc(b,a.c.d,(eMc(),dMc),(YLc(),WLc));q.c[q.c.length]=s;break;case 4:v=new ULc(b,a.c.d,(eMc(),cMc),(YLc(),XLc));q.c[q.c.length]=v;break;case 2:w=new ULc(b,a.c.d,(eMc(),dMc),(YLc(),XLc));q.c[q.c.length]=w;break;default:r=new ULc(b,a.c.d,(eMc(),cMc),(YLc(),WLc));s=new ULc(b,a.c.d,dMc,WLc);v=new ULc(b,a.c.d,cMc,XLc);w=new ULc(b,a.c.d,dMc,XLc);q.c[q.c.length]=v;q.c[q.c.length]=w;q.c[q.c.length]=r;q.c[q.c.length]=s;}e=new mMc(b,a.c);for(h=new olb(q);h.a<h.c.c.length;){f=BD(mlb(h),180);lMc(e,f,a.b);kMc(f)}m=new rMc(b,a.c);for(i=new olb(q);i.a<i.c.c.length;){f=BD(mlb(i),180);oMc(m,f)}if(c.n){for(j=new olb(q);j.a<j.c.c.length;){f=BD(mlb(j),180);Sdd(c,f+' size is '+SLc(f))}}l=null;if(a.d){k=yMc(a,q,a.c.d);xMc(b,k,c)&&(l=k)}if(!l){for(j=new olb(q);j.a<j.c.c.length;){f=BD(mlb(j),180);xMc(b,f,c)&&(!l||SLc(l)>SLc(f))&&(l=f)}}!l&&(l=(tCb(0,q.c.length),BD(q.c[0],180)));for(p=new olb(b.b);p.a<p.c.c.length;){o=BD(mlb(p),29);for(u=new olb(o.a);u.a<u.c.c.length;){t=BD(mlb(u),10);t.n.b=Edb(l.p[t.p])+Edb(l.d[t.p])}}if(c.n){Sdd(c,'Chosen node placement: '+l);Sdd(c,'Blocks: '+DMc(l));Sdd(c,'Classes: '+EMc(l,c));Sdd(c,'Marked edges: '+a.b)}for(g=new olb(q);g.a<g.c.c.length;){f=BD(mlb(g),180);f.g=null;f.b=null;f.a=null;f.d=null;f.j=null;f.i=null;f.p=null}IMc(a.c);a.b.a.$b();Qdd(c)} +function V1b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;g=new Psb;v=BD(vNb(c,(Nyc(),Lwc)),103);o=0;ye(g,(!b.a&&(b.a=new cUd(E2,b,10,11)),b.a));while(g.b!=0){j=BD(g.b==0?null:(sCb(g.b!=0),Nsb(g,g.a.a)),33);(PD(hkd(b,ywc))!==PD((tAc(),rAc))||PD(hkd(b,Jwc))===PD((mqc(),lqc))||PD(hkd(b,Jwc))===PD((mqc(),jqc))||Ccb(DD(hkd(b,Awc)))||PD(hkd(b,twc))!==PD((RXb(),QXb)))&&!Ccb(DD(hkd(j,xwc)))&&jkd(j,(wtc(),Zsc),meb(o++));q=!Ccb(DD(hkd(j,Jxc)));if(q){l=(!j.a&&(j.a=new cUd(E2,j,10,11)),j.a).i!=0;n=S1b(j);m=PD(hkd(j,axc))===PD((hbd(),ebd));F=!ikd(j,(Y9c(),o8c))||dfb(GD(hkd(j,o8c)),sne);t=null;if(F&&m&&(l||n)){t=P1b(j);yNb(t,Lwc,v);wNb(t,hyc)&&Wyc(new ezc(Edb(ED(vNb(t,hyc)))),t);if(BD(hkd(j,Fxc),174).gc()!=0){k=t;MAb(new YAb(null,(!j.c&&(j.c=new cUd(F2,j,9,9)),new Kub(j.c,16))),new k2b(k));L1b(j,t)}}w=c;A=BD(Ohb(a.a,Xod(j)),10);!!A&&(w=A.e);s=$1b(a,j,w);if(t){s.e=t;t.e=s;ye(g,(!j.a&&(j.a=new cUd(E2,j,10,11)),j.a))}}}o=0;Gsb(g,b,g.c.b,g.c);while(g.b!=0){f=BD(g.b==0?null:(sCb(g.b!=0),Nsb(g,g.a.a)),33);for(i=new Fyd((!f.b&&(f.b=new cUd(B2,f,12,3)),f.b));i.e!=i.i.gc();){h=BD(Dyd(i),79);N1b(h);(PD(hkd(b,ywc))!==PD((tAc(),rAc))||PD(hkd(b,Jwc))===PD((mqc(),lqc))||PD(hkd(b,Jwc))===PD((mqc(),jqc))||Ccb(DD(hkd(b,Awc)))||PD(hkd(b,twc))!==PD((RXb(),QXb)))&&jkd(h,(wtc(),Zsc),meb(o++));C=atd(BD(qud((!h.b&&(h.b=new y5d(z2,h,4,7)),h.b),0),82));D=atd(BD(qud((!h.c&&(h.c=new y5d(z2,h,5,8)),h.c),0),82));if(Ccb(DD(hkd(h,Jxc)))||Ccb(DD(hkd(C,Jxc)))||Ccb(DD(hkd(D,Jxc)))){continue}p=Qld(h)&&Ccb(DD(hkd(C,fxc)))&&Ccb(DD(hkd(h,gxc)));u=f;p||ntd(D,C)?(u=C):ntd(C,D)&&(u=D);w=c;A=BD(Ohb(a.a,u),10);!!A&&(w=A.e);r=X1b(a,h,u,w);yNb(r,(wtc(),xsc),R1b(a,h,b,c))}m=PD(hkd(f,axc))===PD((hbd(),ebd));if(m){for(e=new Fyd((!f.a&&(f.a=new cUd(E2,f,10,11)),f.a));e.e!=e.i.gc();){d=BD(Dyd(e),33);F=!ikd(d,(Y9c(),o8c))||dfb(GD(hkd(d,o8c)),sne);B=PD(hkd(d,axc))===PD(ebd);F&&B&&(Gsb(g,d,g.c.b,g.c),true)}}}} +function vA(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;switch(b){case 71:h=d.q.getFullYear()-nje>=-1900?1:0;c>=4?Qfb(a,OC(GC(ZI,1),nie,2,6,[pje,qje])[h]):Qfb(a,OC(GC(ZI,1),nie,2,6,['BC','AD'])[h]);break;case 121:kA(a,c,d);break;case 77:jA(a,c,d);break;case 107:i=e.q.getHours();i==0?EA(a,24,c):EA(a,i,c);break;case 83:iA(a,c,e);break;case 69:k=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[k]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[k]):Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[k]);break;case 97:e.q.getHours()>=12&&e.q.getHours()<24?Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[1]):Qfb(a,OC(GC(ZI,1),nie,2,6,['AM','PM'])[0]);break;case 104:l=e.q.getHours()%12;l==0?EA(a,12,c):EA(a,l,c);break;case 75:m=e.q.getHours()%12;EA(a,m,c);break;case 72:n=e.q.getHours();EA(a,n,c);break;case 99:o=d.q.getDay();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['S','M','T','W','T','F','S'])[o]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[rje,sje,tje,uje,vje,wje,xje])[o]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Sun','Mon','Tue','Wed','Thu','Fri','Sat'])[o]):EA(a,o,1);break;case 76:p=d.q.getMonth();c==5?Qfb(a,OC(GC(ZI,1),nie,2,6,['J','F','M','A','M','J','J','A','S','O','N','D'])[p]):c==4?Qfb(a,OC(GC(ZI,1),nie,2,6,[bje,cje,dje,eje,fje,gje,hje,ije,jje,kje,lje,mje])[p]):c==3?Qfb(a,OC(GC(ZI,1),nie,2,6,['Jan','Feb','Mar','Apr',fje,'Jun','Jul','Aug','Sep','Oct','Nov','Dec'])[p]):EA(a,p+1,c);break;case 81:q=d.q.getMonth()/3|0;c<4?Qfb(a,OC(GC(ZI,1),nie,2,6,['Q1','Q2','Q3','Q4'])[q]):Qfb(a,OC(GC(ZI,1),nie,2,6,['1st quarter','2nd quarter','3rd quarter','4th quarter'])[q]);break;case 100:r=d.q.getDate();EA(a,r,c);break;case 109:j=e.q.getMinutes();EA(a,j,c);break;case 115:g=e.q.getSeconds();EA(a,g,c);break;case 122:c<4?Qfb(a,f.c[0]):Qfb(a,f.c[1]);break;case 118:Qfb(a,f.b);break;case 90:c<3?Qfb(a,OA(f)):c==3?Qfb(a,NA(f)):Qfb(a,QA(f.a));break;default:return false;}return true} +function X1b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;N1b(b);i=BD(qud((!b.b&&(b.b=new y5d(z2,b,4,7)),b.b),0),82);k=BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82);h=atd(i);j=atd(k);g=(!b.a&&(b.a=new cUd(A2,b,6,6)),b.a).i==0?null:BD(qud((!b.a&&(b.a=new cUd(A2,b,6,6)),b.a),0),202);A=BD(Ohb(a.a,h),10);F=BD(Ohb(a.a,j),10);B=null;G=null;if(JD(i,186)){w=BD(Ohb(a.a,i),299);if(JD(w,11)){B=BD(w,11)}else if(JD(w,10)){A=BD(w,10);B=BD(Ikb(A.j,0),11)}}if(JD(k,186)){D=BD(Ohb(a.a,k),299);if(JD(D,11)){G=BD(D,11)}else if(JD(D,10)){F=BD(D,10);G=BD(Ikb(F.j,0),11)}}if(!A||!F){throw vbb(new z2c('The source or the target of edge '+b+' could not be found. '+'This usually happens when an edge connects a node laid out by ELK Layered to a node in '+'another level of hierarchy laid out by either another instance of ELK Layered or another '+'layout algorithm alltogether. The former can be solved by setting the hierarchyHandling '+'option to INCLUDE_CHILDREN.'))}p=new UZb;tNb(p,b);yNb(p,(wtc(),$sc),b);yNb(p,(Nyc(),jxc),null);n=BD(vNb(d,Ksc),21);A==F&&n.Fc((Orc(),Nrc));if(!B){v=(KAc(),IAc);C=null;if(!!g&&fcd(BD(vNb(A,Vxc),98))){C=new f7c(g.j,g.k);Bfd(C,Mld(b));Cfd(C,c);if(ntd(j,h)){v=HAc;P6c(C,A.n)}}B=$$b(A,C,v,d)}if(!G){v=(KAc(),HAc);H=null;if(!!g&&fcd(BD(vNb(F,Vxc),98))){H=new f7c(g.b,g.c);Bfd(H,Mld(b));Cfd(H,c)}G=$$b(F,H,v,Q_b(F))}QZb(p,B);RZb(p,G);(B.e.c.length>1||B.g.c.length>1||G.e.c.length>1||G.g.c.length>1)&&n.Fc((Orc(),Irc));for(m=new Fyd((!b.n&&(b.n=new cUd(D2,b,1,7)),b.n));m.e!=m.i.gc();){l=BD(Dyd(m),137);if(!Ccb(DD(hkd(l,Jxc)))&&!!l.a){q=Z1b(l);Ekb(p.b,q);switch(BD(vNb(q,Qwc),272).g){case 1:case 2:n.Fc((Orc(),Grc));break;case 0:n.Fc((Orc(),Erc));yNb(q,Qwc,(qad(),nad));}}}f=BD(vNb(d,Iwc),314);r=BD(vNb(d,Exc),315);e=f==(Rpc(),Opc)||r==(Vzc(),Rzc);if(!!g&&(!g.a&&(g.a=new xMd(y2,g,5)),g.a).i!=0&&e){s=ofd(g);o=new s7c;for(u=Jsb(s,0);u.b!=u.d.c;){t=BD(Xsb(u),8);Dsb(o,new g7c(t))}yNb(p,_sc,o)}return p} +function yZd(a){if(a.gb)return;a.gb=true;a.b=Lnd(a,0);Knd(a.b,18);Qnd(a.b,19);a.a=Lnd(a,1);Knd(a.a,1);Qnd(a.a,2);Qnd(a.a,3);Qnd(a.a,4);Qnd(a.a,5);a.o=Lnd(a,2);Knd(a.o,8);Knd(a.o,9);Qnd(a.o,10);Qnd(a.o,11);Qnd(a.o,12);Qnd(a.o,13);Qnd(a.o,14);Qnd(a.o,15);Qnd(a.o,16);Qnd(a.o,17);Qnd(a.o,18);Qnd(a.o,19);Qnd(a.o,20);Qnd(a.o,21);Qnd(a.o,22);Qnd(a.o,23);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);Pnd(a.o);a.p=Lnd(a,3);Knd(a.p,2);Knd(a.p,3);Knd(a.p,4);Knd(a.p,5);Qnd(a.p,6);Qnd(a.p,7);Pnd(a.p);Pnd(a.p);a.q=Lnd(a,4);Knd(a.q,8);a.v=Lnd(a,5);Qnd(a.v,9);Pnd(a.v);Pnd(a.v);Pnd(a.v);a.w=Lnd(a,6);Knd(a.w,2);Knd(a.w,3);Knd(a.w,4);Qnd(a.w,5);a.B=Lnd(a,7);Qnd(a.B,1);Pnd(a.B);Pnd(a.B);Pnd(a.B);a.Q=Lnd(a,8);Qnd(a.Q,0);Pnd(a.Q);a.R=Lnd(a,9);Knd(a.R,1);a.S=Lnd(a,10);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);Pnd(a.S);a.T=Lnd(a,11);Qnd(a.T,10);Qnd(a.T,11);Qnd(a.T,12);Qnd(a.T,13);Qnd(a.T,14);Pnd(a.T);Pnd(a.T);a.U=Lnd(a,12);Knd(a.U,2);Knd(a.U,3);Qnd(a.U,4);Qnd(a.U,5);Qnd(a.U,6);Qnd(a.U,7);Pnd(a.U);a.V=Lnd(a,13);Qnd(a.V,10);a.W=Lnd(a,14);Knd(a.W,18);Knd(a.W,19);Knd(a.W,20);Qnd(a.W,21);Qnd(a.W,22);Qnd(a.W,23);a.bb=Lnd(a,15);Knd(a.bb,10);Knd(a.bb,11);Knd(a.bb,12);Knd(a.bb,13);Knd(a.bb,14);Knd(a.bb,15);Knd(a.bb,16);Qnd(a.bb,17);Pnd(a.bb);Pnd(a.bb);a.eb=Lnd(a,16);Knd(a.eb,2);Knd(a.eb,3);Knd(a.eb,4);Knd(a.eb,5);Knd(a.eb,6);Knd(a.eb,7);Qnd(a.eb,8);Qnd(a.eb,9);a.ab=Lnd(a,17);Knd(a.ab,0);Knd(a.ab,1);a.H=Lnd(a,18);Qnd(a.H,0);Qnd(a.H,1);Qnd(a.H,2);Qnd(a.H,3);Qnd(a.H,4);Qnd(a.H,5);Pnd(a.H);a.db=Lnd(a,19);Qnd(a.db,2);a.c=Mnd(a,20);a.d=Mnd(a,21);a.e=Mnd(a,22);a.f=Mnd(a,23);a.i=Mnd(a,24);a.g=Mnd(a,25);a.j=Mnd(a,26);a.k=Mnd(a,27);a.n=Mnd(a,28);a.r=Mnd(a,29);a.s=Mnd(a,30);a.t=Mnd(a,31);a.u=Mnd(a,32);a.fb=Mnd(a,33);a.A=Mnd(a,34);a.C=Mnd(a,35);a.D=Mnd(a,36);a.F=Mnd(a,37);a.G=Mnd(a,38);a.I=Mnd(a,39);a.J=Mnd(a,40);a.L=Mnd(a,41);a.M=Mnd(a,42);a.N=Mnd(a,43);a.O=Mnd(a,44);a.P=Mnd(a,45);a.X=Mnd(a,46);a.Y=Mnd(a,47);a.Z=Mnd(a,48);a.$=Mnd(a,49);a._=Mnd(a,50);a.cb=Mnd(a,51);a.K=Mnd(a,52)} +function Y9c(){Y9c=ccb;var a,b;o8c=new Lsd(sse);F9c=new Lsd(tse);q8c=(F7c(),z7c);p8c=new Nsd($pe,q8c);new Tfd;r8c=new Nsd(_le,null);s8c=new Lsd(use);x8c=(i8c(),qqb(h8c,OC(GC(r1,1),Kie,291,0,[d8c])));w8c=new Nsd(lqe,x8c);y8c=new Nsd(Zpe,(Bcb(),false));A8c=(ead(),cad);z8c=new Nsd(cqe,A8c);F8c=(Aad(),zad);E8c=new Nsd(ype,F8c);I8c=new Nsd(Jre,false);K8c=(hbd(),fbd);J8c=new Nsd(tpe,K8c);g9c=new q0b(12);f9c=new Nsd(ame,g9c);O8c=new Nsd(Ame,false);P8c=new Nsd(xqe,false);e9c=new Nsd(Dme,false);u9c=(dcd(),ccd);t9c=new Nsd(Bme,u9c);C9c=new Lsd(uqe);D9c=new Lsd(vme);E9c=new Lsd(yme);H9c=new Lsd(zme);R8c=new s7c;Q8c=new Nsd(mqe,R8c);v8c=new Nsd(pqe,false);L8c=new Nsd(qqe,false);new Lsd(vse);T8c=new H_b;S8c=new Nsd(vqe,T8c);d9c=new Nsd(Xpe,false);new Tfd;G9c=new Nsd(wse,1);new Nsd(xse,true);meb(0);new Nsd(yse,meb(100));new Nsd(zse,false);meb(0);new Nsd(Ase,meb(4000));meb(0);new Nsd(Bse,meb(400));new Nsd(Cse,false);new Nsd(Dse,false);new Nsd(Ese,true);new Nsd(Fse,false);u8c=(Ded(),Ced);t8c=new Nsd(rse,u8c);I9c=new Nsd(Lpe,10);J9c=new Nsd(Mpe,10);K9c=new Nsd(Zle,20);L9c=new Nsd(Npe,10);M9c=new Nsd(xme,2);N9c=new Nsd(Ope,10);P9c=new Nsd(Ppe,0);Q9c=new Nsd(Spe,5);R9c=new Nsd(Qpe,1);S9c=new Nsd(Rpe,1);T9c=new Nsd(wme,20);U9c=new Nsd(Tpe,10);X9c=new Nsd(Upe,10);O9c=new Lsd(Vpe);W9c=new I_b;V9c=new Nsd(wqe,W9c);j9c=new Lsd(tqe);i9c=false;h9c=new Nsd(sqe,i9c);V8c=new q0b(5);U8c=new Nsd(dqe,V8c);X8c=(Hbd(),b=BD(gdb(B1),9),new xqb(b,BD(_Bb(b,b.length),9),0));W8c=new Nsd(Gme,X8c);m9c=(Tbd(),Qbd);l9c=new Nsd(gqe,m9c);o9c=new Lsd(hqe);p9c=new Lsd(iqe);q9c=new Lsd(jqe);n9c=new Lsd(kqe);Z8c=(a=BD(gdb(I1),9),new xqb(a,BD(_Bb(a,a.length),9),0));Y8c=new Nsd(Fme,Z8c);c9c=pqb((Idd(),Bdd));b9c=new Nsd(Eme,c9c);a9c=new f7c(0,0);_8c=new Nsd(Tme,a9c);$8c=new Nsd(bqe,false);D8c=(qad(),nad);C8c=new Nsd(nqe,D8c);B8c=new Nsd(Cme,false);new Lsd(Gse);meb(1);new Nsd(Hse,null);r9c=new Lsd(rqe);v9c=new Lsd(oqe);B9c=(Ucd(),Scd);A9c=new Nsd(Ype,B9c);s9c=new Lsd(Wpe);y9c=(rcd(),pqb(pcd));x9c=new Nsd(Hme,y9c);w9c=new Nsd(eqe,false);z9c=new Nsd(fqe,true);M8c=new Nsd(_pe,false);N8c=new Nsd(aqe,false);G8c=new Nsd($le,1);H8c=(Mad(),Kad);new Nsd(Ise,H8c);k9c=true} +function wtc(){wtc=ccb;var a,b;$sc=new Lsd(Ime);xsc=new Lsd('coordinateOrigin');itc=new Lsd('processors');wsc=new Msd('compoundNode',(Bcb(),false));Nsc=new Msd('insideConnections',false);_sc=new Lsd('originalBendpoints');atc=new Lsd('originalDummyNodePosition');btc=new Lsd('originalLabelEdge');ktc=new Lsd('representedLabels');Csc=new Lsd('endLabels');Dsc=new Lsd('endLabel.origin');Ssc=new Msd('labelSide',(rbd(),qbd));Ysc=new Msd('maxEdgeThickness',0);ltc=new Msd('reversed',false);jtc=new Lsd(Jme);Vsc=new Msd('longEdgeSource',null);Wsc=new Msd('longEdgeTarget',null);Usc=new Msd('longEdgeHasLabelDummies',false);Tsc=new Msd('longEdgeBeforeLabelDummy',false);Bsc=new Msd('edgeConstraint',(Gqc(),Eqc));Psc=new Lsd('inLayerLayoutUnit');Osc=new Msd('inLayerConstraint',(esc(),csc));Qsc=new Msd('inLayerSuccessorConstraint',new Rkb);Rsc=new Msd('inLayerSuccessorConstraintBetweenNonDummies',false);gtc=new Lsd('portDummy');ysc=new Msd('crossingHint',meb(0));Ksc=new Msd('graphProperties',(b=BD(gdb(PW),9),new xqb(b,BD(_Bb(b,b.length),9),0)));Hsc=new Msd('externalPortSide',(Ucd(),Scd));Isc=new Msd('externalPortSize',new d7c);Fsc=new Lsd('externalPortReplacedDummies');Gsc=new Lsd('externalPortReplacedDummy');Esc=new Msd('externalPortConnections',(a=BD(gdb(F1),9),new xqb(a,BD(_Bb(a,a.length),9),0)));htc=new Msd(tle,0);ssc=new Lsd('barycenterAssociates');vtc=new Lsd('TopSideComments');tsc=new Lsd('BottomSideComments');vsc=new Lsd('CommentConnectionPort');Msc=new Msd('inputCollect',false);etc=new Msd('outputCollect',false);Asc=new Msd('cyclic',false);zsc=new Lsd('crossHierarchyMap');utc=new Lsd('targetOffset');new Msd('splineLabelSize',new d7c);otc=new Lsd('spacings');ftc=new Msd('partitionConstraint',false);usc=new Lsd('breakingPoint.info');stc=new Lsd('splines.survivingEdge');rtc=new Lsd('splines.route.start');ptc=new Lsd('splines.edgeChain');dtc=new Lsd('originalPortConstraints');ntc=new Lsd('selfLoopHolder');qtc=new Lsd('splines.nsPortY');Zsc=new Lsd('modelOrder');Xsc=new Lsd('longEdgeTargetNode');Jsc=new Msd(Xne,false);mtc=new Msd(Xne,false);Lsc=new Lsd('layerConstraints.hiddenNodes');ctc=new Lsd('layerConstraints.opposidePort');ttc=new Lsd('targetNode.modelOrder')} +function jwc(){jwc=ccb;puc=(xqc(),vqc);ouc=new Nsd(Yne,puc);Guc=new Nsd(Zne,(Bcb(),false));Muc=(msc(),ksc);Luc=new Nsd($ne,Muc);cvc=new Nsd(_ne,false);dvc=new Nsd(aoe,true);Itc=new Nsd(boe,false);xvc=(BAc(),zAc);wvc=new Nsd(coe,xvc);meb(1);Fvc=new Nsd(doe,meb(7));Gvc=new Nsd(eoe,false);Huc=new Nsd(foe,false);nuc=(mqc(),iqc);muc=new Nsd(goe,nuc);bvc=(lzc(),jzc);avc=new Nsd(hoe,bvc);Tuc=(Ctc(),Btc);Suc=new Nsd(ioe,Tuc);meb(-1);Ruc=new Nsd(joe,meb(-1));meb(-1);Uuc=new Nsd(koe,meb(-1));meb(-1);Vuc=new Nsd(loe,meb(4));meb(-1);Xuc=new Nsd(moe,meb(2));_uc=(kAc(),iAc);$uc=new Nsd(noe,_uc);meb(0);Zuc=new Nsd(ooe,meb(0));Puc=new Nsd(poe,meb(Ohe));luc=(Rpc(),Ppc);kuc=new Nsd(qoe,luc);Xtc=new Nsd(roe,false);euc=new Nsd(soe,0.1);iuc=new Nsd(toe,false);meb(-1);guc=new Nsd(uoe,meb(-1));meb(-1);huc=new Nsd(voe,meb(-1));meb(0);Ytc=new Nsd(woe,meb(40));cuc=(Xrc(),Wrc);buc=new Nsd(xoe,cuc);$tc=Urc;Ztc=new Nsd(yoe,$tc);vvc=(Vzc(),Qzc);uvc=new Nsd(zoe,vvc);kvc=new Lsd(Aoe);fvc=(_qc(),Zqc);evc=new Nsd(Boe,fvc);ivc=(lrc(),irc);hvc=new Nsd(Coe,ivc);new Tfd;nvc=new Nsd(Doe,0.3);pvc=new Lsd(Eoe);rvc=(Izc(),Gzc);qvc=new Nsd(Foe,rvc);xuc=(TAc(),RAc);wuc=new Nsd(Goe,xuc);zuc=(_Ac(),$Ac);yuc=new Nsd(Hoe,zuc);Buc=(tBc(),sBc);Auc=new Nsd(Ioe,Buc);Duc=new Nsd(Joe,0.2);uuc=new Nsd(Koe,2);Bvc=new Nsd(Loe,null);Dvc=new Nsd(Moe,10);Cvc=new Nsd(Noe,10);Evc=new Nsd(Ooe,20);meb(0);yvc=new Nsd(Poe,meb(0));meb(0);zvc=new Nsd(Qoe,meb(0));meb(0);Avc=new Nsd(Roe,meb(0));Jtc=new Nsd(Soe,false);Ntc=(yrc(),wrc);Mtc=new Nsd(Toe,Ntc);Ltc=(Ipc(),Hpc);Ktc=new Nsd(Uoe,Ltc);Juc=new Nsd(Voe,false);meb(0);Iuc=new Nsd(Woe,meb(16));meb(0);Kuc=new Nsd(Xoe,meb(5));bwc=(LBc(),JBc);awc=new Nsd(Yoe,bwc);Hvc=new Nsd(Zoe,10);Kvc=new Nsd($oe,1);Tvc=(bqc(),aqc);Svc=new Nsd(_oe,Tvc);Nvc=new Lsd(ape);Qvc=meb(1);meb(0);Pvc=new Nsd(bpe,Qvc);gwc=(CBc(),zBc);fwc=new Nsd(cpe,gwc);cwc=new Lsd(dpe);Yvc=new Nsd(epe,true);Wvc=new Nsd(fpe,2);$vc=new Nsd(gpe,true);tuc=(Sqc(),Qqc);suc=new Nsd(hpe,tuc);ruc=(Apc(),wpc);quc=new Nsd(ipe,ruc);Wtc=(tAc(),rAc);Vtc=new Nsd(jpe,Wtc);Utc=new Nsd(kpe,false);Ptc=(RXb(),QXb);Otc=new Nsd(lpe,Ptc);Ttc=(xzc(),uzc);Stc=new Nsd(mpe,Ttc);Qtc=new Nsd(npe,0);Rtc=new Nsd(ope,0);Ouc=kqc;Nuc=Opc;Wuc=izc;Yuc=izc;Quc=fzc;fuc=(hbd(),ebd);juc=Ppc;duc=Ppc;_tc=Ppc;auc=ebd;lvc=Tzc;mvc=Qzc;gvc=Qzc;jvc=Qzc;ovc=Szc;tvc=Tzc;svc=Tzc;Cuc=(Aad(),yad);Euc=yad;Fuc=sBc;vuc=xad;Ivc=KBc;Jvc=IBc;Lvc=KBc;Mvc=IBc;Uvc=KBc;Vvc=IBc;Ovc=_pc;Rvc=aqc;hwc=KBc;iwc=IBc;dwc=KBc;ewc=IBc;Zvc=IBc;Xvc=IBc;_vc=IBc} +function S8b(){S8b=ccb;Y7b=new T8b('DIRECTION_PREPROCESSOR',0);V7b=new T8b('COMMENT_PREPROCESSOR',1);Z7b=new T8b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);n8b=new T8b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);G8b=new T8b('PARTITION_PREPROCESSOR',4);r8b=new T8b('LABEL_DUMMY_INSERTER',5);M8b=new T8b('SELF_LOOP_PREPROCESSOR',6);w8b=new T8b('LAYER_CONSTRAINT_PREPROCESSOR',7);E8b=new T8b('PARTITION_MIDPROCESSOR',8);i8b=new T8b('HIGH_DEGREE_NODE_LAYER_PROCESSOR',9);A8b=new T8b('NODE_PROMOTION',10);v8b=new T8b('LAYER_CONSTRAINT_POSTPROCESSOR',11);F8b=new T8b('PARTITION_POSTPROCESSOR',12);e8b=new T8b('HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR',13);O8b=new T8b('SEMI_INTERACTIVE_CROSSMIN_PROCESSOR',14);P7b=new T8b('BREAKING_POINT_INSERTER',15);z8b=new T8b('LONG_EDGE_SPLITTER',16);I8b=new T8b('PORT_SIDE_PROCESSOR',17);o8b=new T8b('INVERTED_PORT_PROCESSOR',18);H8b=new T8b('PORT_LIST_SORTER',19);Q8b=new T8b('SORT_BY_INPUT_ORDER_OF_MODEL',20);C8b=new T8b('NORTH_SOUTH_PORT_PREPROCESSOR',21);Q7b=new T8b('BREAKING_POINT_PROCESSOR',22);D8b=new T8b(Bne,23);R8b=new T8b(Cne,24);K8b=new T8b('SELF_LOOP_PORT_RESTORER',25);P8b=new T8b('SINGLE_EDGE_GRAPH_WRAPPER',26);p8b=new T8b('IN_LAYER_CONSTRAINT_PROCESSOR',27);b8b=new T8b('END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR',28);q8b=new T8b('LABEL_AND_NODE_SIZE_PROCESSOR',29);m8b=new T8b('INNERMOST_NODE_MARGIN_CALCULATOR',30);N8b=new T8b('SELF_LOOP_ROUTER',31);T7b=new T8b('COMMENT_NODE_MARGIN_CALCULATOR',32);_7b=new T8b('END_LABEL_PREPROCESSOR',33);t8b=new T8b('LABEL_DUMMY_SWITCHER',34);S7b=new T8b('CENTER_LABEL_MANAGEMENT_PROCESSOR',35);u8b=new T8b('LABEL_SIDE_SELECTOR',36);k8b=new T8b('HYPEREDGE_DUMMY_MERGER',37);f8b=new T8b('HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR',38);x8b=new T8b('LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR',39);h8b=new T8b('HIERARCHICAL_PORT_POSITION_PROCESSOR',40);W7b=new T8b('CONSTRAINTS_POSTPROCESSOR',41);U7b=new T8b('COMMENT_POSTPROCESSOR',42);l8b=new T8b('HYPERNODE_PROCESSOR',43);g8b=new T8b('HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER',44);y8b=new T8b('LONG_EDGE_JOINER',45);L8b=new T8b('SELF_LOOP_POSTPROCESSOR',46);R7b=new T8b('BREAKING_POINT_REMOVER',47);B8b=new T8b('NORTH_SOUTH_PORT_POSTPROCESSOR',48);j8b=new T8b('HORIZONTAL_COMPACTOR',49);s8b=new T8b('LABEL_DUMMY_REMOVER',50);c8b=new T8b('FINAL_SPLINE_BENDPOINTS_CALCULATOR',51);a8b=new T8b('END_LABEL_SORTER',52);J8b=new T8b('REVERSED_EDGE_RESTORER',53);$7b=new T8b('END_LABEL_POSTPROCESSOR',54);d8b=new T8b('HIERARCHICAL_NODE_RESIZER',55);X7b=new T8b('DIRECTION_POSTPROCESSOR',56)} +function KIc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K<N;++K){F=H[K];for(V=new olb(F.j);V.a<V.c.c.length;){U=BD(mlb(V),11);X=0;for(h=new olb(U.g);h.a<h.c.c.length;){g=BD(mlb(h),17);F.c!=g.d.i.c&&++X}X>0&&(a.a[U.p]=cb++)}}hb=0;for(I=c,L=0,O=I.length;L<O;++L){F=I[L];P=0;for(V=new olb(F.j);V.a<V.c.c.length;){U=BD(mlb(V),11);if(U.j==(Ucd(),Acd)){for(h=new olb(U.e);h.a<h.c.c.length;){g=BD(mlb(h),17);if(F.c!=g.c.i.c){++P;break}}}else{break}}R=0;Y=new Bib(F.j,F.j.c.length);while(Y.b>0){U=(sCb(Y.b>0),BD(Y.a.Xb(Y.c=--Y.b),11));X=0;for(h=new olb(U.e);h.a<h.c.c.length;){g=BD(mlb(h),17);F.c!=g.c.i.c&&++X}if(X>0){if(U.j==(Ucd(),Acd)){a.a[U.p]=hb;++hb}else{a.a[U.p]=hb+P+R;++R}}}hb+=R}W=new Lqb;o=new zsb;for(G=b,J=0,M=G.length;J<M;++J){F=G[J];for(fb=new olb(F.j);fb.a<fb.c.c.length;){eb=BD(mlb(fb),11);for(h=new olb(eb.g);h.a<h.c.c.length;){g=BD(mlb(h),17);jb=g.d;if(F.c!=jb.i.c){db=BD(Wd(irb(W.f,eb)),467);ib=BD(Wd(irb(W.f,jb)),467);if(!db&&!ib){n=new NIc;o.a.zc(n,o);Ekb(n.a,g);Ekb(n.d,eb);jrb(W.f,eb,n);Ekb(n.d,jb);jrb(W.f,jb,n)}else if(!db){Ekb(ib.a,g);Ekb(ib.d,eb);jrb(W.f,eb,ib)}else if(!ib){Ekb(db.a,g);Ekb(db.d,jb);jrb(W.f,jb,db)}else if(db==ib){Ekb(db.a,g)}else{Ekb(db.a,g);for(T=new olb(ib.d);T.a<T.c.c.length;){S=BD(mlb(T),11);jrb(W.f,S,db)}Gkb(db.a,ib.a);Gkb(db.d,ib.d);o.a.Bc(ib)!=null}}}}}p=BD(Ee(o,KC(oY,{3:1,4:1,5:1,1946:1},467,o.a.gc(),0,1)),1946);D=b[0].c;bb=c[0].c;for(k=p,l=0,m=k.length;l<m;++l){j=k[l];j.e=cb;j.f=hb;for(V=new olb(j.d);V.a<V.c.c.length;){U=BD(mlb(V),11);Z=a.a[U.p];if(U.i.c==D){Z<j.e&&(j.e=Z);Z>j.b&&(j.b=Z)}else if(U.i.c==bb){Z<j.f&&(j.f=Z);Z>j.c&&(j.c=Z)}}}Klb(p,0,p.length,null);gb=KC(WD,oje,25,p.length,15,1);d=KC(WD,oje,25,hb+1,15,1);for(r=0;r<p.length;r++){gb[r]=p[r].f;d[gb[r]]=1}f=0;for(s=0;s<d.length;s++){d[s]==1?(d[s]=f):--f}$=0;for(t=0;t<gb.length;t++){gb[t]+=d[gb[t]];$=$wnd.Math.max($,gb[t]+1)}i=1;while(i<$){i*=2}lb=2*i-1;i-=1;kb=KC(WD,oje,25,lb,15,1);e=0;for(B=0;B<gb.length;B++){A=gb[B]+i;++kb[A];while(A>0){A%2>0&&(e+=kb[A+1]);A=(A-1)/2|0;++kb[A]}}C=KC(nY,Uhe,362,p.length*2,0,1);for(u=0;u<p.length;u++){C[2*u]=new QIc(p[u],p[u].e,p[u].b,(UIc(),TIc));C[2*u+1]=new QIc(p[u],p[u].b,p[u].e,SIc)}Klb(C,0,C.length,null);Q=0;for(v=0;v<C.length;v++){switch(C[v].d.g){case 0:++Q;break;case 1:--Q;e+=Q;}}ab=KC(nY,Uhe,362,p.length*2,0,1);for(w=0;w<p.length;w++){ab[2*w]=new QIc(p[w],p[w].f,p[w].c,(UIc(),TIc));ab[2*w+1]=new QIc(p[w],p[w].c,p[w].f,SIc)}Klb(ab,0,ab.length,null);Q=0;for(q=0;q<ab.length;q++){switch(ab[q].d.g){case 0:++Q;break;case 1:--Q;e+=Q;}}return e} +function wfe(){wfe=ccb;ffe=new xfe(7);hfe=(++vfe,new ige(8,94));++vfe;new ige(8,64);ife=(++vfe,new ige(8,36));ofe=(++vfe,new ige(8,65));pfe=(++vfe,new ige(8,122));qfe=(++vfe,new ige(8,90));tfe=(++vfe,new ige(8,98));mfe=(++vfe,new ige(8,66));rfe=(++vfe,new ige(8,60));ufe=(++vfe,new ige(8,62));efe=new xfe(11);cfe=(++vfe,new $fe(4));Ufe(cfe,48,57);sfe=(++vfe,new $fe(4));Ufe(sfe,48,57);Ufe(sfe,65,90);Ufe(sfe,95,95);Ufe(sfe,97,122);nfe=(++vfe,new $fe(4));Ufe(nfe,9,9);Ufe(nfe,10,10);Ufe(nfe,12,12);Ufe(nfe,13,13);Ufe(nfe,32,32);jfe=_fe(cfe);lfe=_fe(sfe);kfe=_fe(nfe);Zee=new Lqb;$ee=new Lqb;_ee=OC(GC(ZI,1),nie,2,6,['Cn','Lu','Ll','Lt','Lm','Lo','Mn','Me','Mc','Nd','Nl','No','Zs','Zl','Zp','Cc','Cf',null,'Co','Cs','Pd','Ps','Pe','Pc','Po','Sm','Sc','Sk','So','Pi','Pf','L','M','N','Z','C','P','S']);Yee=OC(GC(ZI,1),nie,2,6,['Basic Latin','Latin-1 Supplement','Latin Extended-A','Latin Extended-B','IPA Extensions','Spacing Modifier Letters','Combining Diacritical Marks','Greek','Cyrillic','Armenian','Hebrew','Arabic','Syriac','Thaana','Devanagari','Bengali','Gurmukhi','Gujarati','Oriya','Tamil','Telugu','Kannada','Malayalam','Sinhala','Thai','Lao','Tibetan','Myanmar','Georgian','Hangul Jamo','Ethiopic','Cherokee','Unified Canadian Aboriginal Syllabics','Ogham','Runic','Khmer','Mongolian','Latin Extended Additional','Greek Extended','General Punctuation','Superscripts and Subscripts','Currency Symbols','Combining Marks for Symbols','Letterlike Symbols','Number Forms','Arrows','Mathematical Operators','Miscellaneous Technical','Control Pictures','Optical Character Recognition','Enclosed Alphanumerics','Box Drawing','Block Elements','Geometric Shapes','Miscellaneous Symbols','Dingbats','Braille Patterns','CJK Radicals Supplement','Kangxi Radicals','Ideographic Description Characters','CJK Symbols and Punctuation','Hiragana','Katakana','Bopomofo','Hangul Compatibility Jamo','Kanbun','Bopomofo Extended','Enclosed CJK Letters and Months','CJK Compatibility','CJK Unified Ideographs Extension A','CJK Unified Ideographs','Yi Syllables','Yi Radicals','Hangul Syllables',uxe,'CJK Compatibility Ideographs','Alphabetic Presentation Forms','Arabic Presentation Forms-A','Combining Half Marks','CJK Compatibility Forms','Small Form Variants','Arabic Presentation Forms-B','Specials','Halfwidth and Fullwidth Forms','Old Italic','Gothic','Deseret','Byzantine Musical Symbols','Musical Symbols','Mathematical Alphanumeric Symbols','CJK Unified Ideographs Extension B','CJK Compatibility Ideographs Supplement','Tags']);afe=OC(GC(WD,1),oje,25,15,[66304,66351,66352,66383,66560,66639,118784,119039,119040,119295,119808,120831,131072,173782,194560,195103,917504,917631])} +function qJb(){qJb=ccb;nJb=new tJb('OUT_T_L',0,(NHb(),LHb),(EIb(),BIb),(gHb(),dHb),dHb,OC(GC(LK,1),Uhe,21,0,[qqb((Hbd(),Dbd),OC(GC(B1,1),Kie,93,0,[Gbd,zbd]))]));mJb=new tJb('OUT_T_C',1,KHb,BIb,dHb,eHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Gbd,ybd])),qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Gbd,ybd,Abd]))]));oJb=new tJb('OUT_T_R',2,MHb,BIb,dHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Gbd,Bbd]))]));eJb=new tJb('OUT_B_L',3,LHb,DIb,fHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Ebd,zbd]))]));dJb=new tJb('OUT_B_C',4,KHb,DIb,fHb,eHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Ebd,ybd])),qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Ebd,ybd,Abd]))]));fJb=new tJb('OUT_B_R',5,MHb,DIb,fHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Ebd,Bbd]))]));iJb=new tJb('OUT_L_T',6,MHb,DIb,dHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[zbd,Gbd,Abd]))]));hJb=new tJb('OUT_L_C',7,MHb,CIb,eHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[zbd,Fbd])),qqb(Dbd,OC(GC(B1,1),Kie,93,0,[zbd,Fbd,Abd]))]));gJb=new tJb('OUT_L_B',8,MHb,BIb,fHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[zbd,Ebd,Abd]))]));lJb=new tJb('OUT_R_T',9,LHb,DIb,dHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Bbd,Gbd,Abd]))]));kJb=new tJb('OUT_R_C',10,LHb,CIb,eHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Bbd,Fbd])),qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Bbd,Fbd,Abd]))]));jJb=new tJb('OUT_R_B',11,LHb,BIb,fHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Dbd,OC(GC(B1,1),Kie,93,0,[Bbd,Ebd,Abd]))]));bJb=new tJb('IN_T_L',12,LHb,DIb,dHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,zbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,zbd,Abd]))]));aJb=new tJb('IN_T_C',13,KHb,DIb,dHb,eHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,ybd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,ybd,Abd]))]));cJb=new tJb('IN_T_R',14,MHb,DIb,dHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,Bbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Gbd,Bbd,Abd]))]));$Ib=new tJb('IN_C_L',15,LHb,CIb,eHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,zbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,zbd,Abd]))]));ZIb=new tJb('IN_C_C',16,KHb,CIb,eHb,eHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,ybd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,ybd,Abd]))]));_Ib=new tJb('IN_C_R',17,MHb,CIb,eHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,Bbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Fbd,Bbd,Abd]))]));XIb=new tJb('IN_B_L',18,LHb,BIb,fHb,dHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,zbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,zbd,Abd]))]));WIb=new tJb('IN_B_C',19,KHb,BIb,fHb,eHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,ybd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,ybd,Abd]))]));YIb=new tJb('IN_B_R',20,MHb,BIb,fHb,fHb,OC(GC(LK,1),Uhe,21,0,[qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,Bbd])),qqb(Cbd,OC(GC(B1,1),Kie,93,0,[Ebd,Bbd,Abd]))]));pJb=new tJb(ole,21,null,null,null,null,OC(GC(LK,1),Uhe,21,0,[]))} +function jGd(){jGd=ccb;PFd=(NFd(),MFd).b;BD(qud(ZKd(MFd.b),0),34);BD(qud(ZKd(MFd.b),1),18);OFd=MFd.a;BD(qud(ZKd(MFd.a),0),34);BD(qud(ZKd(MFd.a),1),18);BD(qud(ZKd(MFd.a),2),18);BD(qud(ZKd(MFd.a),3),18);BD(qud(ZKd(MFd.a),4),18);QFd=MFd.o;BD(qud(ZKd(MFd.o),0),34);BD(qud(ZKd(MFd.o),1),34);SFd=BD(qud(ZKd(MFd.o),2),18);BD(qud(ZKd(MFd.o),3),18);BD(qud(ZKd(MFd.o),4),18);BD(qud(ZKd(MFd.o),5),18);BD(qud(ZKd(MFd.o),6),18);BD(qud(ZKd(MFd.o),7),18);BD(qud(ZKd(MFd.o),8),18);BD(qud(ZKd(MFd.o),9),18);BD(qud(ZKd(MFd.o),10),18);BD(qud(ZKd(MFd.o),11),18);BD(qud(ZKd(MFd.o),12),18);BD(qud(ZKd(MFd.o),13),18);BD(qud(ZKd(MFd.o),14),18);BD(qud(ZKd(MFd.o),15),18);BD(qud(WKd(MFd.o),0),59);BD(qud(WKd(MFd.o),1),59);BD(qud(WKd(MFd.o),2),59);BD(qud(WKd(MFd.o),3),59);BD(qud(WKd(MFd.o),4),59);BD(qud(WKd(MFd.o),5),59);BD(qud(WKd(MFd.o),6),59);BD(qud(WKd(MFd.o),7),59);BD(qud(WKd(MFd.o),8),59);BD(qud(WKd(MFd.o),9),59);RFd=MFd.p;BD(qud(ZKd(MFd.p),0),34);BD(qud(ZKd(MFd.p),1),34);BD(qud(ZKd(MFd.p),2),34);BD(qud(ZKd(MFd.p),3),34);BD(qud(ZKd(MFd.p),4),18);BD(qud(ZKd(MFd.p),5),18);BD(qud(WKd(MFd.p),0),59);BD(qud(WKd(MFd.p),1),59);TFd=MFd.q;BD(qud(ZKd(MFd.q),0),34);UFd=MFd.v;BD(qud(ZKd(MFd.v),0),18);BD(qud(WKd(MFd.v),0),59);BD(qud(WKd(MFd.v),1),59);BD(qud(WKd(MFd.v),2),59);VFd=MFd.w;BD(qud(ZKd(MFd.w),0),34);BD(qud(ZKd(MFd.w),1),34);BD(qud(ZKd(MFd.w),2),34);BD(qud(ZKd(MFd.w),3),18);WFd=MFd.B;BD(qud(ZKd(MFd.B),0),18);BD(qud(WKd(MFd.B),0),59);BD(qud(WKd(MFd.B),1),59);BD(qud(WKd(MFd.B),2),59);ZFd=MFd.Q;BD(qud(ZKd(MFd.Q),0),18);BD(qud(WKd(MFd.Q),0),59);$Fd=MFd.R;BD(qud(ZKd(MFd.R),0),34);_Fd=MFd.S;BD(qud(WKd(MFd.S),0),59);BD(qud(WKd(MFd.S),1),59);BD(qud(WKd(MFd.S),2),59);BD(qud(WKd(MFd.S),3),59);BD(qud(WKd(MFd.S),4),59);BD(qud(WKd(MFd.S),5),59);BD(qud(WKd(MFd.S),6),59);BD(qud(WKd(MFd.S),7),59);BD(qud(WKd(MFd.S),8),59);BD(qud(WKd(MFd.S),9),59);BD(qud(WKd(MFd.S),10),59);BD(qud(WKd(MFd.S),11),59);BD(qud(WKd(MFd.S),12),59);BD(qud(WKd(MFd.S),13),59);BD(qud(WKd(MFd.S),14),59);aGd=MFd.T;BD(qud(ZKd(MFd.T),0),18);BD(qud(ZKd(MFd.T),2),18);bGd=BD(qud(ZKd(MFd.T),3),18);BD(qud(ZKd(MFd.T),4),18);BD(qud(WKd(MFd.T),0),59);BD(qud(WKd(MFd.T),1),59);BD(qud(ZKd(MFd.T),1),18);cGd=MFd.U;BD(qud(ZKd(MFd.U),0),34);BD(qud(ZKd(MFd.U),1),34);BD(qud(ZKd(MFd.U),2),18);BD(qud(ZKd(MFd.U),3),18);BD(qud(ZKd(MFd.U),4),18);BD(qud(ZKd(MFd.U),5),18);BD(qud(WKd(MFd.U),0),59);dGd=MFd.V;BD(qud(ZKd(MFd.V),0),18);eGd=MFd.W;BD(qud(ZKd(MFd.W),0),34);BD(qud(ZKd(MFd.W),1),34);BD(qud(ZKd(MFd.W),2),34);BD(qud(ZKd(MFd.W),3),18);BD(qud(ZKd(MFd.W),4),18);BD(qud(ZKd(MFd.W),5),18);gGd=MFd.bb;BD(qud(ZKd(MFd.bb),0),34);BD(qud(ZKd(MFd.bb),1),34);BD(qud(ZKd(MFd.bb),2),34);BD(qud(ZKd(MFd.bb),3),34);BD(qud(ZKd(MFd.bb),4),34);BD(qud(ZKd(MFd.bb),5),34);BD(qud(ZKd(MFd.bb),6),34);BD(qud(ZKd(MFd.bb),7),18);BD(qud(WKd(MFd.bb),0),59);BD(qud(WKd(MFd.bb),1),59);hGd=MFd.eb;BD(qud(ZKd(MFd.eb),0),34);BD(qud(ZKd(MFd.eb),1),34);BD(qud(ZKd(MFd.eb),2),34);BD(qud(ZKd(MFd.eb),3),34);BD(qud(ZKd(MFd.eb),4),34);BD(qud(ZKd(MFd.eb),5),34);BD(qud(ZKd(MFd.eb),6),18);BD(qud(ZKd(MFd.eb),7),18);fGd=MFd.ab;BD(qud(ZKd(MFd.ab),0),34);BD(qud(ZKd(MFd.ab),1),34);XFd=MFd.H;BD(qud(ZKd(MFd.H),0),18);BD(qud(ZKd(MFd.H),1),18);BD(qud(ZKd(MFd.H),2),18);BD(qud(ZKd(MFd.H),3),18);BD(qud(ZKd(MFd.H),4),18);BD(qud(ZKd(MFd.H),5),18);BD(qud(WKd(MFd.H),0),59);iGd=MFd.db;BD(qud(ZKd(MFd.db),0),18);YFd=MFd.M} +function bae(a){var b;if(a.O)return;a.O=true;pnd(a,'type');cod(a,'ecore.xml.type');dod(a,Ewe);b=BD(nUd((yFd(),xFd),Ewe),1945);wtd(_Kd(a.fb),a.b);Xnd(a.b,Q9,'AnyType',false,false,true);Vnd(BD(qud(ZKd(a.b),0),34),a.wb.D,Qve,null,0,-1,Q9,false,false,true,false,false,false);Vnd(BD(qud(ZKd(a.b),1),34),a.wb.D,'any',null,0,-1,Q9,true,true,true,false,false,true);Vnd(BD(qud(ZKd(a.b),2),34),a.wb.D,'anyAttribute',null,0,-1,Q9,false,false,true,false,false,false);Xnd(a.bb,S9,Jwe,false,false,true);Vnd(BD(qud(ZKd(a.bb),0),34),a.gb,'data',null,0,1,S9,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),1),34),a.gb,bue,null,1,1,S9,false,false,true,false,true,false);Xnd(a.fb,T9,Kwe,false,false,true);Vnd(BD(qud(ZKd(a.fb),0),34),b.gb,'rawValue',null,0,1,T9,true,true,true,false,true,true);Vnd(BD(qud(ZKd(a.fb),1),34),b.a,Bte,null,0,1,T9,true,true,true,false,true,true);_nd(BD(qud(ZKd(a.fb),2),18),a.wb.q,null,'instanceType',1,1,T9,false,false,true,false,false,false,false);Xnd(a.qb,U9,Lwe,false,false,true);Vnd(BD(qud(ZKd(a.qb),0),34),a.wb.D,Qve,null,0,-1,null,false,false,true,false,false,false);_nd(BD(qud(ZKd(a.qb),1),18),a.wb.ab,null,'xMLNSPrefixMap',0,-1,null,true,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.qb),2),18),a.wb.ab,null,'xSISchemaLocation',0,-1,null,true,false,true,true,false,false,false);Vnd(BD(qud(ZKd(a.qb),3),34),a.gb,'cDATA',null,0,-2,null,true,true,true,false,false,true);Vnd(BD(qud(ZKd(a.qb),4),34),a.gb,'comment',null,0,-2,null,true,true,true,false,false,true);_nd(BD(qud(ZKd(a.qb),5),18),a.bb,null,jxe,0,-2,null,true,true,true,true,false,false,true);Vnd(BD(qud(ZKd(a.qb),6),34),a.gb,Ite,null,0,-2,null,true,true,true,false,false,true);Znd(a.a,SI,'AnySimpleType',true);Znd(a.c,ZI,'AnyURI',true);Znd(a.d,GC(SD,1),'Base64Binary',true);Znd(a.e,sbb,'Boolean',true);Znd(a.f,wI,'BooleanObject',true);Znd(a.g,SD,'Byte',true);Znd(a.i,xI,'ByteObject',true);Znd(a.j,ZI,'Date',true);Znd(a.k,ZI,'DateTime',true);Znd(a.n,bJ,'Decimal',true);Znd(a.o,UD,'Double',true);Znd(a.p,BI,'DoubleObject',true);Znd(a.q,ZI,'Duration',true);Znd(a.s,yK,'ENTITIES',true);Znd(a.r,yK,'ENTITIESBase',true);Znd(a.t,ZI,Rwe,true);Znd(a.u,VD,'Float',true);Znd(a.v,FI,'FloatObject',true);Znd(a.w,ZI,'GDay',true);Znd(a.B,ZI,'GMonth',true);Znd(a.A,ZI,'GMonthDay',true);Znd(a.C,ZI,'GYear',true);Znd(a.D,ZI,'GYearMonth',true);Znd(a.F,GC(SD,1),'HexBinary',true);Znd(a.G,ZI,'ID',true);Znd(a.H,ZI,'IDREF',true);Znd(a.J,yK,'IDREFS',true);Znd(a.I,yK,'IDREFSBase',true);Znd(a.K,WD,'Int',true);Znd(a.M,cJ,'Integer',true);Znd(a.L,JI,'IntObject',true);Znd(a.P,ZI,'Language',true);Znd(a.Q,XD,'Long',true);Znd(a.R,MI,'LongObject',true);Znd(a.S,ZI,'Name',true);Znd(a.T,ZI,Swe,true);Znd(a.U,cJ,'NegativeInteger',true);Znd(a.V,ZI,axe,true);Znd(a.X,yK,'NMTOKENS',true);Znd(a.W,yK,'NMTOKENSBase',true);Znd(a.Y,cJ,'NonNegativeInteger',true);Znd(a.Z,cJ,'NonPositiveInteger',true);Znd(a.$,ZI,'NormalizedString',true);Znd(a._,ZI,'NOTATION',true);Znd(a.ab,ZI,'PositiveInteger',true);Znd(a.cb,ZI,'QName',true);Znd(a.db,rbb,'Short',true);Znd(a.eb,UI,'ShortObject',true);Znd(a.gb,ZI,Vie,true);Znd(a.hb,ZI,'Time',true);Znd(a.ib,ZI,'Token',true);Znd(a.jb,rbb,'UnsignedByte',true);Znd(a.kb,UI,'UnsignedByteObject',true);Znd(a.lb,XD,'UnsignedInt',true);Znd(a.mb,MI,'UnsignedIntObject',true);Znd(a.nb,cJ,'UnsignedLong',true);Znd(a.ob,WD,'UnsignedShort',true);Znd(a.pb,JI,'UnsignedShortObject',true);Rnd(a,Ewe);_9d(a)} +function Oyc(a){r4c(a,new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c,sne),'ELK Layered'),'Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level.'),new Ryc),sne),qqb((Csd(),Bsd),OC(GC(O3,1),Kie,237,0,[ysd,zsd,xsd,Asd,vsd,usd])))));p4c(a,sne,Lpe,Ksd(iyc));p4c(a,sne,Mpe,Ksd(jyc));p4c(a,sne,Zle,Ksd(kyc));p4c(a,sne,Npe,Ksd(lyc));p4c(a,sne,xme,Ksd(nyc));p4c(a,sne,Ope,Ksd(oyc));p4c(a,sne,Ppe,Ksd(ryc));p4c(a,sne,Qpe,Ksd(tyc));p4c(a,sne,Rpe,Ksd(uyc));p4c(a,sne,Spe,Ksd(syc));p4c(a,sne,wme,Ksd(vyc));p4c(a,sne,Tpe,Ksd(xyc));p4c(a,sne,Upe,Ksd(zyc));p4c(a,sne,Vpe,Ksd(qyc));p4c(a,sne,Loe,Ksd(hyc));p4c(a,sne,Noe,Ksd(myc));p4c(a,sne,Moe,Ksd(pyc));p4c(a,sne,Ooe,Ksd(wyc));p4c(a,sne,vme,meb(0));p4c(a,sne,Poe,Ksd(cyc));p4c(a,sne,Qoe,Ksd(dyc));p4c(a,sne,Roe,Ksd(eyc));p4c(a,sne,Yoe,Ksd(Kyc));p4c(a,sne,Zoe,Ksd(Cyc));p4c(a,sne,$oe,Ksd(Dyc));p4c(a,sne,_oe,Ksd(Gyc));p4c(a,sne,ape,Ksd(Eyc));p4c(a,sne,bpe,Ksd(Fyc));p4c(a,sne,cpe,Ksd(Myc));p4c(a,sne,dpe,Ksd(Lyc));p4c(a,sne,epe,Ksd(Iyc));p4c(a,sne,fpe,Ksd(Hyc));p4c(a,sne,gpe,Ksd(Jyc));p4c(a,sne,Eoe,Ksd(Cxc));p4c(a,sne,Foe,Ksd(Dxc));p4c(a,sne,Ioe,Ksd(Xwc));p4c(a,sne,Joe,Ksd(Ywc));p4c(a,sne,ame,Lxc);p4c(a,sne,ype,Twc);p4c(a,sne,Wpe,0);p4c(a,sne,yme,meb(1));p4c(a,sne,_le,tme);p4c(a,sne,Xpe,Ksd(Jxc));p4c(a,sne,Bme,Ksd(Vxc));p4c(a,sne,Ype,Ksd($xc));p4c(a,sne,Zpe,Ksd(Kwc));p4c(a,sne,$pe,Ksd(mwc));p4c(a,sne,tpe,Ksd(axc));p4c(a,sne,zme,(Bcb(),true));p4c(a,sne,_pe,Ksd(fxc));p4c(a,sne,aqe,Ksd(gxc));p4c(a,sne,Fme,Ksd(Fxc));p4c(a,sne,Eme,Ksd(Ixc));p4c(a,sne,bqe,Ksd(Gxc));p4c(a,sne,cqe,Nwc);p4c(a,sne,Gme,Ksd(xxc));p4c(a,sne,dqe,Ksd(wxc));p4c(a,sne,Hme,Ksd(Yxc));p4c(a,sne,eqe,Ksd(Xxc));p4c(a,sne,fqe,Ksd(Zxc));p4c(a,sne,gqe,Oxc);p4c(a,sne,hqe,Ksd(Qxc));p4c(a,sne,iqe,Ksd(Rxc));p4c(a,sne,jqe,Ksd(Sxc));p4c(a,sne,kqe,Ksd(Pxc));p4c(a,sne,eoe,Ksd(Byc));p4c(a,sne,hoe,Ksd(sxc));p4c(a,sne,noe,Ksd(rxc));p4c(a,sne,doe,Ksd(Ayc));p4c(a,sne,ioe,Ksd(mxc));p4c(a,sne,goe,Ksd(Jwc));p4c(a,sne,qoe,Ksd(Iwc));p4c(a,sne,roe,Ksd(Awc));p4c(a,sne,woe,Ksd(Bwc));p4c(a,sne,xoe,Ksd(Dwc));p4c(a,sne,yoe,Ksd(Cwc));p4c(a,sne,toe,Ksd(Hwc));p4c(a,sne,_ne,Ksd(uxc));p4c(a,sne,aoe,Ksd(vxc));p4c(a,sne,$ne,Ksd(ixc));p4c(a,sne,zoe,Ksd(Exc));p4c(a,sne,Coe,Ksd(zxc));p4c(a,sne,Zne,Ksd($wc));p4c(a,sne,Doe,Ksd(Bxc));p4c(a,sne,Goe,Ksd(Vwc));p4c(a,sne,Hoe,Ksd(Wwc));p4c(a,sne,lqe,Ksd(zwc));p4c(a,sne,Boe,Ksd(yxc));p4c(a,sne,Toe,Ksd(swc));p4c(a,sne,Uoe,Ksd(rwc));p4c(a,sne,Soe,Ksd(qwc));p4c(a,sne,Voe,Ksd(cxc));p4c(a,sne,Woe,Ksd(bxc));p4c(a,sne,Xoe,Ksd(dxc));p4c(a,sne,Tme,Ksd(Hxc));p4c(a,sne,mqe,Ksd(jxc));p4c(a,sne,$le,Ksd(Zwc));p4c(a,sne,nqe,Ksd(Qwc));p4c(a,sne,Cme,Ksd(Pwc));p4c(a,sne,soe,Ksd(Ewc));p4c(a,sne,oqe,Ksd(Wxc));p4c(a,sne,pqe,Ksd(pwc));p4c(a,sne,qqe,Ksd(exc));p4c(a,sne,rqe,Ksd(Txc));p4c(a,sne,sqe,Ksd(Mxc));p4c(a,sne,tqe,Ksd(Nxc));p4c(a,sne,loe,Ksd(oxc));p4c(a,sne,moe,Ksd(pxc));p4c(a,sne,uqe,Ksd(ayc));p4c(a,sne,boe,Ksd(nwc));p4c(a,sne,ooe,Ksd(qxc));p4c(a,sne,hpe,Ksd(Rwc));p4c(a,sne,ipe,Ksd(Owc));p4c(a,sne,vqe,Ksd(txc));p4c(a,sne,poe,Ksd(kxc));p4c(a,sne,Aoe,Ksd(Axc));p4c(a,sne,wqe,Ksd(yyc));p4c(a,sne,Yne,Ksd(Mwc));p4c(a,sne,coe,Ksd(_xc));p4c(a,sne,Koe,Ksd(Uwc));p4c(a,sne,joe,Ksd(lxc));p4c(a,sne,uoe,Ksd(Fwc));p4c(a,sne,xqe,Ksd(hxc));p4c(a,sne,koe,Ksd(nxc));p4c(a,sne,voe,Ksd(Gwc));p4c(a,sne,jpe,Ksd(ywc));p4c(a,sne,mpe,Ksd(wwc));p4c(a,sne,npe,Ksd(uwc));p4c(a,sne,ope,Ksd(vwc));p4c(a,sne,kpe,Ksd(xwc));p4c(a,sne,lpe,Ksd(twc));p4c(a,sne,foe,Ksd(_wc))} +function kee(a,b){var c,d;if(!cee){cee=new Lqb;dee=new Lqb;d=(wfe(),wfe(),++vfe,new $fe(4));Ree(d,'\t\n\r\r ');Shb(cee,pxe,d);Shb(dee,pxe,_fe(d));d=(null,++vfe,new $fe(4));Ree(d,sxe);Shb(cee,nxe,d);Shb(dee,nxe,_fe(d));d=(null,++vfe,new $fe(4));Ree(d,sxe);Shb(cee,nxe,d);Shb(dee,nxe,_fe(d));d=(null,++vfe,new $fe(4));Ree(d,txe);Xfe(d,BD(Phb(cee,nxe),117));Shb(cee,oxe,d);Shb(dee,oxe,_fe(d));d=(null,++vfe,new $fe(4));Ree(d,'-.0:AZ__az\xB7\xB7\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u02D0\u02D1\u0300\u0345\u0360\u0361\u0386\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0483\u0486\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05A1\u05A3\u05B9\u05BB\u05BD\u05BF\u05BF\u05C1\u05C2\u05C4\u05C4\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0640\u0652\u0660\u0669\u0670\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06E8\u06EA\u06ED\u06F0\u06F9\u0901\u0903\u0905\u0939\u093C\u094D\u0951\u0954\u0958\u0963\u0966\u096F\u0981\u0983\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09BC\u09BC\u09BE\u09C4\u09C7\u09C8\u09CB\u09CD\u09D7\u09D7\u09DC\u09DD\u09DF\u09E3\u09E6\u09F1\u0A02\u0A02\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3C\u0A3E\u0A42\u0A47\u0A48\u0A4B\u0A4D\u0A59\u0A5C\u0A5E\u0A5E\u0A66\u0A74\u0A81\u0A83\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABC\u0AC5\u0AC7\u0AC9\u0ACB\u0ACD\u0AE0\u0AE0\u0AE6\u0AEF\u0B01\u0B03\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3C\u0B43\u0B47\u0B48\u0B4B\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F\u0B61\u0B66\u0B6F\u0B82\u0B83\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0BBE\u0BC2\u0BC6\u0BC8\u0BCA\u0BCD\u0BD7\u0BD7\u0BE7\u0BEF\u0C01\u0C03\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C3E\u0C44\u0C46\u0C48\u0C4A\u0C4D\u0C55\u0C56\u0C60\u0C61\u0C66\u0C6F\u0C82\u0C83\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CBE\u0CC4\u0CC6\u0CC8\u0CCA\u0CCD\u0CD5\u0CD6\u0CDE\u0CDE\u0CE0\u0CE1\u0CE6\u0CEF\u0D02\u0D03\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D3E\u0D43\u0D46\u0D48\u0D4A\u0D4D\u0D57\u0D57\u0D60\u0D61\u0D66\u0D6F\u0E01\u0E2E\u0E30\u0E3A\u0E40\u0E4E\u0E50\u0E59\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB9\u0EBB\u0EBD\u0EC0\u0EC4\u0EC6\u0EC6\u0EC8\u0ECD\u0ED0\u0ED9\u0F18\u0F19\u0F20\u0F29\u0F35\u0F35\u0F37\u0F37\u0F39\u0F39\u0F3E\u0F47\u0F49\u0F69\u0F71\u0F84\u0F86\u0F8B\u0F90\u0F95\u0F97\u0F97\u0F99\u0FAD\u0FB1\u0FB7\u0FB9\u0FB9\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u20D0\u20DC\u20E1\u20E1\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302F\u3031\u3035\u3041\u3094\u3099\u309A\u309D\u309E\u30A1\u30FA\u30FC\u30FE\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3');Shb(cee,qxe,d);Shb(dee,qxe,_fe(d));d=(null,++vfe,new $fe(4));Ree(d,txe);Ufe(d,95,95);Ufe(d,58,58);Shb(cee,rxe,d);Shb(dee,rxe,_fe(d))}c=b?BD(Phb(cee,a),136):BD(Phb(dee,a),136);return c} +function _9d(a){Bnd(a.a,Rve,OC(GC(ZI,1),nie,2,6,[fue,'anySimpleType']));Bnd(a.b,Rve,OC(GC(ZI,1),nie,2,6,[fue,'anyType',Sve,Qve]));Bnd(BD(qud(ZKd(a.b),0),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,xwe,fue,':mixed']));Bnd(BD(qud(ZKd(a.b),1),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,xwe,Dwe,Fwe,fue,':1',Owe,'lax']));Bnd(BD(qud(ZKd(a.b),2),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,vwe,Dwe,Fwe,fue,':2',Owe,'lax']));Bnd(a.c,Rve,OC(GC(ZI,1),nie,2,6,[fue,'anyURI',Cwe,ywe]));Bnd(a.d,Rve,OC(GC(ZI,1),nie,2,6,[fue,'base64Binary',Cwe,ywe]));Bnd(a.e,Rve,OC(GC(ZI,1),nie,2,6,[fue,Khe,Cwe,ywe]));Bnd(a.f,Rve,OC(GC(ZI,1),nie,2,6,[fue,'boolean:Object',cwe,Khe]));Bnd(a.g,Rve,OC(GC(ZI,1),nie,2,6,[fue,Eve]));Bnd(a.i,Rve,OC(GC(ZI,1),nie,2,6,[fue,'byte:Object',cwe,Eve]));Bnd(a.j,Rve,OC(GC(ZI,1),nie,2,6,[fue,'date',Cwe,ywe]));Bnd(a.k,Rve,OC(GC(ZI,1),nie,2,6,[fue,'dateTime',Cwe,ywe]));Bnd(a.n,Rve,OC(GC(ZI,1),nie,2,6,[fue,'decimal',Cwe,ywe]));Bnd(a.o,Rve,OC(GC(ZI,1),nie,2,6,[fue,Gve,Cwe,ywe]));Bnd(a.p,Rve,OC(GC(ZI,1),nie,2,6,[fue,'double:Object',cwe,Gve]));Bnd(a.q,Rve,OC(GC(ZI,1),nie,2,6,[fue,'duration',Cwe,ywe]));Bnd(a.s,Rve,OC(GC(ZI,1),nie,2,6,[fue,'ENTITIES',cwe,Pwe,Qwe,'1']));Bnd(a.r,Rve,OC(GC(ZI,1),nie,2,6,[fue,Pwe,zwe,Rwe]));Bnd(a.t,Rve,OC(GC(ZI,1),nie,2,6,[fue,Rwe,cwe,Swe]));Bnd(a.u,Rve,OC(GC(ZI,1),nie,2,6,[fue,Hve,Cwe,ywe]));Bnd(a.v,Rve,OC(GC(ZI,1),nie,2,6,[fue,'float:Object',cwe,Hve]));Bnd(a.w,Rve,OC(GC(ZI,1),nie,2,6,[fue,'gDay',Cwe,ywe]));Bnd(a.B,Rve,OC(GC(ZI,1),nie,2,6,[fue,'gMonth',Cwe,ywe]));Bnd(a.A,Rve,OC(GC(ZI,1),nie,2,6,[fue,'gMonthDay',Cwe,ywe]));Bnd(a.C,Rve,OC(GC(ZI,1),nie,2,6,[fue,'gYear',Cwe,ywe]));Bnd(a.D,Rve,OC(GC(ZI,1),nie,2,6,[fue,'gYearMonth',Cwe,ywe]));Bnd(a.F,Rve,OC(GC(ZI,1),nie,2,6,[fue,'hexBinary',Cwe,ywe]));Bnd(a.G,Rve,OC(GC(ZI,1),nie,2,6,[fue,'ID',cwe,Swe]));Bnd(a.H,Rve,OC(GC(ZI,1),nie,2,6,[fue,'IDREF',cwe,Swe]));Bnd(a.J,Rve,OC(GC(ZI,1),nie,2,6,[fue,'IDREFS',cwe,Twe,Qwe,'1']));Bnd(a.I,Rve,OC(GC(ZI,1),nie,2,6,[fue,Twe,zwe,'IDREF']));Bnd(a.K,Rve,OC(GC(ZI,1),nie,2,6,[fue,Ive]));Bnd(a.M,Rve,OC(GC(ZI,1),nie,2,6,[fue,Uwe]));Bnd(a.L,Rve,OC(GC(ZI,1),nie,2,6,[fue,'int:Object',cwe,Ive]));Bnd(a.P,Rve,OC(GC(ZI,1),nie,2,6,[fue,'language',cwe,Vwe,Wwe,Xwe]));Bnd(a.Q,Rve,OC(GC(ZI,1),nie,2,6,[fue,Jve]));Bnd(a.R,Rve,OC(GC(ZI,1),nie,2,6,[fue,'long:Object',cwe,Jve]));Bnd(a.S,Rve,OC(GC(ZI,1),nie,2,6,[fue,'Name',cwe,Vwe,Wwe,Ywe]));Bnd(a.T,Rve,OC(GC(ZI,1),nie,2,6,[fue,Swe,cwe,'Name',Wwe,Zwe]));Bnd(a.U,Rve,OC(GC(ZI,1),nie,2,6,[fue,'negativeInteger',cwe,$we,_we,'-1']));Bnd(a.V,Rve,OC(GC(ZI,1),nie,2,6,[fue,axe,cwe,Vwe,Wwe,'\\c+']));Bnd(a.X,Rve,OC(GC(ZI,1),nie,2,6,[fue,'NMTOKENS',cwe,bxe,Qwe,'1']));Bnd(a.W,Rve,OC(GC(ZI,1),nie,2,6,[fue,bxe,zwe,axe]));Bnd(a.Y,Rve,OC(GC(ZI,1),nie,2,6,[fue,cxe,cwe,Uwe,dxe,'0']));Bnd(a.Z,Rve,OC(GC(ZI,1),nie,2,6,[fue,$we,cwe,Uwe,_we,'0']));Bnd(a.$,Rve,OC(GC(ZI,1),nie,2,6,[fue,exe,cwe,Mhe,Cwe,'replace']));Bnd(a._,Rve,OC(GC(ZI,1),nie,2,6,[fue,'NOTATION',Cwe,ywe]));Bnd(a.ab,Rve,OC(GC(ZI,1),nie,2,6,[fue,'positiveInteger',cwe,cxe,dxe,'1']));Bnd(a.bb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'processingInstruction_._type',Sve,'empty']));Bnd(BD(qud(ZKd(a.bb),0),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,uwe,fue,'data']));Bnd(BD(qud(ZKd(a.bb),1),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,uwe,fue,bue]));Bnd(a.cb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'QName',Cwe,ywe]));Bnd(a.db,Rve,OC(GC(ZI,1),nie,2,6,[fue,Kve]));Bnd(a.eb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'short:Object',cwe,Kve]));Bnd(a.fb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'simpleAnyType',Sve,twe]));Bnd(BD(qud(ZKd(a.fb),0),34),Rve,OC(GC(ZI,1),nie,2,6,[fue,':3',Sve,twe]));Bnd(BD(qud(ZKd(a.fb),1),34),Rve,OC(GC(ZI,1),nie,2,6,[fue,':4',Sve,twe]));Bnd(BD(qud(ZKd(a.fb),2),18),Rve,OC(GC(ZI,1),nie,2,6,[fue,':5',Sve,twe]));Bnd(a.gb,Rve,OC(GC(ZI,1),nie,2,6,[fue,Mhe,Cwe,'preserve']));Bnd(a.hb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'time',Cwe,ywe]));Bnd(a.ib,Rve,OC(GC(ZI,1),nie,2,6,[fue,Vwe,cwe,exe,Cwe,ywe]));Bnd(a.jb,Rve,OC(GC(ZI,1),nie,2,6,[fue,fxe,_we,'255',dxe,'0']));Bnd(a.kb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'unsignedByte:Object',cwe,fxe]));Bnd(a.lb,Rve,OC(GC(ZI,1),nie,2,6,[fue,gxe,_we,'4294967295',dxe,'0']));Bnd(a.mb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'unsignedInt:Object',cwe,gxe]));Bnd(a.nb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'unsignedLong',cwe,cxe,_we,hxe,dxe,'0']));Bnd(a.ob,Rve,OC(GC(ZI,1),nie,2,6,[fue,ixe,_we,'65535',dxe,'0']));Bnd(a.pb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'unsignedShort:Object',cwe,ixe]));Bnd(a.qb,Rve,OC(GC(ZI,1),nie,2,6,[fue,'',Sve,Qve]));Bnd(BD(qud(ZKd(a.qb),0),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,xwe,fue,':mixed']));Bnd(BD(qud(ZKd(a.qb),1),18),Rve,OC(GC(ZI,1),nie,2,6,[Sve,uwe,fue,'xmlns:prefix']));Bnd(BD(qud(ZKd(a.qb),2),18),Rve,OC(GC(ZI,1),nie,2,6,[Sve,uwe,fue,'xsi:schemaLocation']));Bnd(BD(qud(ZKd(a.qb),3),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,wwe,fue,'cDATA',Awe,Bwe]));Bnd(BD(qud(ZKd(a.qb),4),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,wwe,fue,'comment',Awe,Bwe]));Bnd(BD(qud(ZKd(a.qb),5),18),Rve,OC(GC(ZI,1),nie,2,6,[Sve,wwe,fue,jxe,Awe,Bwe]));Bnd(BD(qud(ZKd(a.qb),6),34),Rve,OC(GC(ZI,1),nie,2,6,[Sve,wwe,fue,Ite,Awe,Bwe]))} +function tvd(a){return dfb('_UI_EMFDiagnostic_marker',a)?'EMF Problem':dfb('_UI_CircularContainment_diagnostic',a)?'An object may not circularly contain itself':dfb(sue,a)?'Wrong character.':dfb(tue,a)?'Invalid reference number.':dfb(uue,a)?'A character is required after \\.':dfb(vue,a)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":dfb(wue,a)?"'(?<' or '(?<!' is expected.":dfb(xue,a)?'A comment is not terminated.':dfb(yue,a)?"')' is expected.":dfb(zue,a)?'Unexpected end of the pattern in a modifier group.':dfb(Aue,a)?"':' is expected.":dfb(Bue,a)?'Unexpected end of the pattern in a conditional group.':dfb(Cue,a)?'A back reference or an anchor or a lookahead or a look-behind is expected in a conditional pattern.':dfb(Due,a)?'There are more than three choices in a conditional group.':dfb(Eue,a)?'A character in U+0040-U+005f must follow \\c.':dfb(Fue,a)?"A '{' is required before a character category.":dfb(Gue,a)?"A property name is not closed by '}'.":dfb(Hue,a)?'Unexpected meta character.':dfb(Iue,a)?'Unknown property.':dfb(Jue,a)?"A POSIX character class must be closed by ':]'.":dfb(Kue,a)?'Unexpected end of the pattern in a character class.':dfb(Lue,a)?'Unknown name for a POSIX character class.':dfb('parser.cc.4',a)?"'-' is invalid here.":dfb(Mue,a)?"']' is expected.":dfb(Nue,a)?"'[' is invalid in a character class. Write '\\['.":dfb(Oue,a)?"']' is invalid in a character class. Write '\\]'.":dfb(Pue,a)?"'-' is an invalid character range. Write '\\-'.":dfb(Que,a)?"'[' is expected.":dfb(Rue,a)?"')' or '-[' or '+[' or '&[' is expected.":dfb(Sue,a)?'The range end code point is less than the start code point.':dfb(Tue,a)?'Invalid Unicode hex notation.':dfb(Uue,a)?'Overflow in a hex notation.':dfb(Vue,a)?"'\\x{' must be closed by '}'.":dfb(Wue,a)?'Invalid Unicode code point.':dfb(Xue,a)?'An anchor must not be here.':dfb(Yue,a)?'This expression is not supported in the current option setting.':dfb(Zue,a)?'Invalid quantifier. A digit is expected.':dfb($ue,a)?"Invalid quantifier. Invalid quantity or a '}' is missing.":dfb(_ue,a)?"Invalid quantifier. A digit or '}' is expected.":dfb(ave,a)?'Invalid quantifier. A min quantity must be <= a max quantity.':dfb(bve,a)?'Invalid quantifier. A quantity value overflow.':dfb('_UI_PackageRegistry_extensionpoint',a)?'Ecore Package Registry for Generated Packages':dfb('_UI_DynamicPackageRegistry_extensionpoint',a)?'Ecore Package Registry for Dynamic Packages':dfb('_UI_FactoryRegistry_extensionpoint',a)?'Ecore Factory Override Registry':dfb('_UI_URIExtensionParserRegistry_extensionpoint',a)?'URI Extension Parser Registry':dfb('_UI_URIProtocolParserRegistry_extensionpoint',a)?'URI Protocol Parser Registry':dfb('_UI_URIContentParserRegistry_extensionpoint',a)?'URI Content Parser Registry':dfb('_UI_ContentHandlerRegistry_extensionpoint',a)?'Content Handler Registry':dfb('_UI_URIMappingRegistry_extensionpoint',a)?'URI Converter Mapping Registry':dfb('_UI_PackageRegistryImplementation_extensionpoint',a)?'Ecore Package Registry Implementation':dfb('_UI_ValidationDelegateRegistry_extensionpoint',a)?'Validation Delegate Registry':dfb('_UI_SettingDelegateRegistry_extensionpoint',a)?'Feature Setting Delegate Factory Registry':dfb('_UI_InvocationDelegateRegistry_extensionpoint',a)?'Operation Invocation Delegate Factory Registry':dfb('_UI_EClassInterfaceNotAbstract_diagnostic',a)?'A class that is an interface must also be abstract':dfb('_UI_EClassNoCircularSuperTypes_diagnostic',a)?'A class may not be a super type of itself':dfb('_UI_EClassNotWellFormedMapEntryNoInstanceClassName_diagnostic',a)?"A class that inherits from a map entry class must have instance class name 'java.util.Map$Entry'":dfb('_UI_EReferenceOppositeOfOppositeInconsistent_diagnostic',a)?'The opposite of the opposite may not be a reference different from this one':dfb('_UI_EReferenceOppositeNotFeatureOfType_diagnostic',a)?"The opposite must be a feature of the reference's type":dfb('_UI_EReferenceTransientOppositeNotTransient_diagnostic',a)?'The opposite of a transient reference must be transient if it is proxy resolving':dfb('_UI_EReferenceOppositeBothContainment_diagnostic',a)?'The opposite of a containment reference must not be a containment reference':dfb('_UI_EReferenceConsistentUnique_diagnostic',a)?'A containment or bidirectional reference must be unique if its upper bound is different from 1':dfb('_UI_ETypedElementNoType_diagnostic',a)?'The typed element must have a type':dfb('_UI_EAttributeNoDataType_diagnostic',a)?'The generic attribute type must not refer to a class':dfb('_UI_EReferenceNoClass_diagnostic',a)?'The generic reference type must not refer to a data type':dfb('_UI_EGenericTypeNoTypeParameterAndClassifier_diagnostic',a)?"A generic type can't refer to both a type parameter and a classifier":dfb('_UI_EGenericTypeNoClass_diagnostic',a)?'A generic super type must refer to a class':dfb('_UI_EGenericTypeNoTypeParameterOrClassifier_diagnostic',a)?'A generic type in this context must refer to a classifier or a type parameter':dfb('_UI_EGenericTypeBoundsOnlyForTypeArgument_diagnostic',a)?'A generic type may have bounds only when used as a type argument':dfb('_UI_EGenericTypeNoUpperAndLowerBound_diagnostic',a)?'A generic type must not have both a lower and an upper bound':dfb('_UI_EGenericTypeNoTypeParameterOrClassifierAndBound_diagnostic',a)?'A generic type with bounds must not also refer to a type parameter or classifier':dfb('_UI_EGenericTypeNoArguments_diagnostic',a)?'A generic type may have arguments only if it refers to a classifier':dfb('_UI_EGenericTypeOutOfScopeTypeParameter_diagnostic',a)?'A generic type may only refer to a type parameter that is in scope':a} +function Aod(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;if(a.r)return;a.r=true;pnd(a,'graph');cod(a,'graph');dod(a,yte);Gnd(a.o,'T');wtd(_Kd(a.a),a.p);wtd(_Kd(a.f),a.a);wtd(_Kd(a.n),a.f);wtd(_Kd(a.g),a.n);wtd(_Kd(a.c),a.n);wtd(_Kd(a.i),a.c);wtd(_Kd(a.j),a.c);wtd(_Kd(a.d),a.f);wtd(_Kd(a.e),a.a);Xnd(a.p,P3,Ile,true,true,false);o=Dnd(a.p,a.p,'setProperty');p=Hnd(o);j=Nnd(a.o);k=(c=(d=new UQd,d),c);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);l=Ond(p);PQd(k,l);Fnd(o,j,Ate);j=Ond(p);Fnd(o,j,Bte);o=Dnd(a.p,null,'getProperty');p=Hnd(o);j=Nnd(a.o);k=Ond(p);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);Fnd(o,j,Ate);j=Ond(p);n=xId(o,j,null);!!n&&n.Fi();o=Dnd(a.p,a.wb.e,'hasProperty');j=Nnd(a.o);k=(e=(f=new UQd,f),e);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);Fnd(o,j,Ate);o=Dnd(a.p,a.p,'copyProperties');End(o,a.p,Cte);o=Dnd(a.p,null,'getAllProperties');j=Nnd(a.wb.P);k=Nnd(a.o);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);l=(g=(h=new UQd,h),g);wtd((!k.d&&(k.d=new xMd(j5,k,1)),k.d),l);k=Nnd(a.wb.M);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);m=xId(o,j,null);!!m&&m.Fi();Xnd(a.a,x2,Xse,true,false,true);_nd(BD(qud(ZKd(a.a),0),18),a.k,null,Dte,0,-1,x2,false,false,true,true,false,false,false);Xnd(a.f,C2,Zse,true,false,true);_nd(BD(qud(ZKd(a.f),0),18),a.g,BD(qud(ZKd(a.g),0),18),'labels',0,-1,C2,false,false,true,true,false,false,false);Vnd(BD(qud(ZKd(a.f),1),34),a.wb._,Ete,null,0,1,C2,false,false,true,false,true,false);Xnd(a.n,G2,'ElkShape',true,false,true);Vnd(BD(qud(ZKd(a.n),0),34),a.wb.t,Fte,$je,1,1,G2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.n),1),34),a.wb.t,Gte,$je,1,1,G2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.n),2),34),a.wb.t,'x',$je,1,1,G2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.n),3),34),a.wb.t,'y',$je,1,1,G2,false,false,true,false,true,false);o=Dnd(a.n,null,'setDimensions');End(o,a.wb.t,Gte);End(o,a.wb.t,Fte);o=Dnd(a.n,null,'setLocation');End(o,a.wb.t,'x');End(o,a.wb.t,'y');Xnd(a.g,D2,dte,false,false,true);_nd(BD(qud(ZKd(a.g),0),18),a.f,BD(qud(ZKd(a.f),0),18),Hte,0,1,D2,false,false,true,false,false,false,false);Vnd(BD(qud(ZKd(a.g),1),34),a.wb._,Ite,'',0,1,D2,false,false,true,false,true,false);Xnd(a.c,z2,$se,true,false,true);_nd(BD(qud(ZKd(a.c),0),18),a.d,BD(qud(ZKd(a.d),1),18),'outgoingEdges',0,-1,z2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.c),1),18),a.d,BD(qud(ZKd(a.d),2),18),'incomingEdges',0,-1,z2,false,false,true,false,true,false,false);Xnd(a.i,E2,ete,false,false,true);_nd(BD(qud(ZKd(a.i),0),18),a.j,BD(qud(ZKd(a.j),0),18),'ports',0,-1,E2,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.i),1),18),a.i,BD(qud(ZKd(a.i),2),18),Jte,0,-1,E2,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.i),2),18),a.i,BD(qud(ZKd(a.i),1),18),Hte,0,1,E2,false,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.i),3),18),a.d,BD(qud(ZKd(a.d),0),18),'containedEdges',0,-1,E2,false,false,true,true,false,false,false);Vnd(BD(qud(ZKd(a.i),4),34),a.wb.e,Kte,null,0,1,E2,true,true,false,false,true,true);Xnd(a.j,F2,fte,false,false,true);_nd(BD(qud(ZKd(a.j),0),18),a.i,BD(qud(ZKd(a.i),0),18),Hte,0,1,F2,false,false,true,false,false,false,false);Xnd(a.d,B2,_se,false,false,true);_nd(BD(qud(ZKd(a.d),0),18),a.i,BD(qud(ZKd(a.i),3),18),'containingNode',0,1,B2,false,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.d),1),18),a.c,BD(qud(ZKd(a.c),0),18),Lte,0,-1,B2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.d),2),18),a.c,BD(qud(ZKd(a.c),1),18),Mte,0,-1,B2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.d),3),18),a.e,BD(qud(ZKd(a.e),5),18),Nte,0,-1,B2,false,false,true,true,false,false,false);Vnd(BD(qud(ZKd(a.d),4),34),a.wb.e,'hyperedge',null,0,1,B2,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.d),5),34),a.wb.e,Kte,null,0,1,B2,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.d),6),34),a.wb.e,'selfloop',null,0,1,B2,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.d),7),34),a.wb.e,'connected',null,0,1,B2,true,true,false,false,true,true);Xnd(a.b,y2,Yse,false,false,true);Vnd(BD(qud(ZKd(a.b),0),34),a.wb.t,'x',$je,1,1,y2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.b),1),34),a.wb.t,'y',$je,1,1,y2,false,false,true,false,true,false);o=Dnd(a.b,null,'set');End(o,a.wb.t,'x');End(o,a.wb.t,'y');Xnd(a.e,A2,ate,false,false,true);Vnd(BD(qud(ZKd(a.e),0),34),a.wb.t,'startX',null,0,1,A2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.e),1),34),a.wb.t,'startY',null,0,1,A2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.e),2),34),a.wb.t,'endX',null,0,1,A2,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.e),3),34),a.wb.t,'endY',null,0,1,A2,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.e),4),18),a.b,null,Ote,0,-1,A2,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.e),5),18),a.d,BD(qud(ZKd(a.d),3),18),Hte,0,1,A2,false,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.e),6),18),a.c,null,Pte,0,1,A2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.e),7),18),a.c,null,Qte,0,1,A2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.e),8),18),a.e,BD(qud(ZKd(a.e),9),18),Rte,0,-1,A2,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.e),9),18),a.e,BD(qud(ZKd(a.e),8),18),Ste,0,-1,A2,false,false,true,false,true,false,false);Vnd(BD(qud(ZKd(a.e),10),34),a.wb._,Ete,null,0,1,A2,false,false,true,false,true,false);o=Dnd(a.e,null,'setStartLocation');End(o,a.wb.t,'x');End(o,a.wb.t,'y');o=Dnd(a.e,null,'setEndLocation');End(o,a.wb.t,'x');End(o,a.wb.t,'y');Xnd(a.k,CK,'ElkPropertyToValueMapEntry',false,false,false);j=Nnd(a.o);k=(i=(b=new UQd,b),i);wtd((!j.d&&(j.d=new xMd(j5,j,1)),j.d),k);Wnd(BD(qud(ZKd(a.k),0),34),j,'key',CK,false,false,true,false);Vnd(BD(qud(ZKd(a.k),1),34),a.s,Bte,null,0,1,CK,false,false,true,false,true,false);Znd(a.o,Q3,'IProperty',true);Znd(a.s,SI,'PropertyValue',true);Rnd(a,yte)} +function lde(){lde=ccb;kde=KC(SD,wte,25,Tje,15,1);kde[9]=35;kde[10]=19;kde[13]=19;kde[32]=51;kde[33]=49;kde[34]=33;ylb(kde,35,38,49);kde[38]=1;ylb(kde,39,45,49);ylb(kde,45,47,-71);kde[47]=49;ylb(kde,48,58,-71);kde[58]=61;kde[59]=49;kde[60]=1;kde[61]=49;kde[62]=33;ylb(kde,63,65,49);ylb(kde,65,91,-3);ylb(kde,91,93,33);kde[93]=1;kde[94]=33;kde[95]=-3;kde[96]=33;ylb(kde,97,123,-3);ylb(kde,123,183,33);kde[183]=-87;ylb(kde,184,192,33);ylb(kde,192,215,-19);kde[215]=33;ylb(kde,216,247,-19);kde[247]=33;ylb(kde,248,306,-19);ylb(kde,306,308,33);ylb(kde,308,319,-19);ylb(kde,319,321,33);ylb(kde,321,329,-19);kde[329]=33;ylb(kde,330,383,-19);kde[383]=33;ylb(kde,384,452,-19);ylb(kde,452,461,33);ylb(kde,461,497,-19);ylb(kde,497,500,33);ylb(kde,500,502,-19);ylb(kde,502,506,33);ylb(kde,506,536,-19);ylb(kde,536,592,33);ylb(kde,592,681,-19);ylb(kde,681,699,33);ylb(kde,699,706,-19);ylb(kde,706,720,33);ylb(kde,720,722,-87);ylb(kde,722,768,33);ylb(kde,768,838,-87);ylb(kde,838,864,33);ylb(kde,864,866,-87);ylb(kde,866,902,33);kde[902]=-19;kde[903]=-87;ylb(kde,904,907,-19);kde[907]=33;kde[908]=-19;kde[909]=33;ylb(kde,910,930,-19);kde[930]=33;ylb(kde,931,975,-19);kde[975]=33;ylb(kde,976,983,-19);ylb(kde,983,986,33);kde[986]=-19;kde[987]=33;kde[988]=-19;kde[989]=33;kde[990]=-19;kde[991]=33;kde[992]=-19;kde[993]=33;ylb(kde,994,1012,-19);ylb(kde,1012,1025,33);ylb(kde,1025,1037,-19);kde[1037]=33;ylb(kde,1038,1104,-19);kde[1104]=33;ylb(kde,1105,1117,-19);kde[1117]=33;ylb(kde,1118,1154,-19);kde[1154]=33;ylb(kde,1155,1159,-87);ylb(kde,1159,1168,33);ylb(kde,1168,1221,-19);ylb(kde,1221,1223,33);ylb(kde,1223,1225,-19);ylb(kde,1225,1227,33);ylb(kde,1227,1229,-19);ylb(kde,1229,1232,33);ylb(kde,1232,1260,-19);ylb(kde,1260,1262,33);ylb(kde,1262,1270,-19);ylb(kde,1270,1272,33);ylb(kde,1272,1274,-19);ylb(kde,1274,1329,33);ylb(kde,1329,1367,-19);ylb(kde,1367,1369,33);kde[1369]=-19;ylb(kde,1370,1377,33);ylb(kde,1377,1415,-19);ylb(kde,1415,1425,33);ylb(kde,1425,1442,-87);kde[1442]=33;ylb(kde,1443,1466,-87);kde[1466]=33;ylb(kde,1467,1470,-87);kde[1470]=33;kde[1471]=-87;kde[1472]=33;ylb(kde,1473,1475,-87);kde[1475]=33;kde[1476]=-87;ylb(kde,1477,1488,33);ylb(kde,1488,1515,-19);ylb(kde,1515,1520,33);ylb(kde,1520,1523,-19);ylb(kde,1523,1569,33);ylb(kde,1569,1595,-19);ylb(kde,1595,1600,33);kde[1600]=-87;ylb(kde,1601,1611,-19);ylb(kde,1611,1619,-87);ylb(kde,1619,1632,33);ylb(kde,1632,1642,-87);ylb(kde,1642,1648,33);kde[1648]=-87;ylb(kde,1649,1720,-19);ylb(kde,1720,1722,33);ylb(kde,1722,1727,-19);kde[1727]=33;ylb(kde,1728,1743,-19);kde[1743]=33;ylb(kde,1744,1748,-19);kde[1748]=33;kde[1749]=-19;ylb(kde,1750,1765,-87);ylb(kde,1765,1767,-19);ylb(kde,1767,1769,-87);kde[1769]=33;ylb(kde,1770,1774,-87);ylb(kde,1774,1776,33);ylb(kde,1776,1786,-87);ylb(kde,1786,2305,33);ylb(kde,2305,2308,-87);kde[2308]=33;ylb(kde,2309,2362,-19);ylb(kde,2362,2364,33);kde[2364]=-87;kde[2365]=-19;ylb(kde,2366,2382,-87);ylb(kde,2382,2385,33);ylb(kde,2385,2389,-87);ylb(kde,2389,2392,33);ylb(kde,2392,2402,-19);ylb(kde,2402,2404,-87);ylb(kde,2404,2406,33);ylb(kde,2406,2416,-87);ylb(kde,2416,2433,33);ylb(kde,2433,2436,-87);kde[2436]=33;ylb(kde,2437,2445,-19);ylb(kde,2445,2447,33);ylb(kde,2447,2449,-19);ylb(kde,2449,2451,33);ylb(kde,2451,2473,-19);kde[2473]=33;ylb(kde,2474,2481,-19);kde[2481]=33;kde[2482]=-19;ylb(kde,2483,2486,33);ylb(kde,2486,2490,-19);ylb(kde,2490,2492,33);kde[2492]=-87;kde[2493]=33;ylb(kde,2494,2501,-87);ylb(kde,2501,2503,33);ylb(kde,2503,2505,-87);ylb(kde,2505,2507,33);ylb(kde,2507,2510,-87);ylb(kde,2510,2519,33);kde[2519]=-87;ylb(kde,2520,2524,33);ylb(kde,2524,2526,-19);kde[2526]=33;ylb(kde,2527,2530,-19);ylb(kde,2530,2532,-87);ylb(kde,2532,2534,33);ylb(kde,2534,2544,-87);ylb(kde,2544,2546,-19);ylb(kde,2546,2562,33);kde[2562]=-87;ylb(kde,2563,2565,33);ylb(kde,2565,2571,-19);ylb(kde,2571,2575,33);ylb(kde,2575,2577,-19);ylb(kde,2577,2579,33);ylb(kde,2579,2601,-19);kde[2601]=33;ylb(kde,2602,2609,-19);kde[2609]=33;ylb(kde,2610,2612,-19);kde[2612]=33;ylb(kde,2613,2615,-19);kde[2615]=33;ylb(kde,2616,2618,-19);ylb(kde,2618,2620,33);kde[2620]=-87;kde[2621]=33;ylb(kde,2622,2627,-87);ylb(kde,2627,2631,33);ylb(kde,2631,2633,-87);ylb(kde,2633,2635,33);ylb(kde,2635,2638,-87);ylb(kde,2638,2649,33);ylb(kde,2649,2653,-19);kde[2653]=33;kde[2654]=-19;ylb(kde,2655,2662,33);ylb(kde,2662,2674,-87);ylb(kde,2674,2677,-19);ylb(kde,2677,2689,33);ylb(kde,2689,2692,-87);kde[2692]=33;ylb(kde,2693,2700,-19);kde[2700]=33;kde[2701]=-19;kde[2702]=33;ylb(kde,2703,2706,-19);kde[2706]=33;ylb(kde,2707,2729,-19);kde[2729]=33;ylb(kde,2730,2737,-19);kde[2737]=33;ylb(kde,2738,2740,-19);kde[2740]=33;ylb(kde,2741,2746,-19);ylb(kde,2746,2748,33);kde[2748]=-87;kde[2749]=-19;ylb(kde,2750,2758,-87);kde[2758]=33;ylb(kde,2759,2762,-87);kde[2762]=33;ylb(kde,2763,2766,-87);ylb(kde,2766,2784,33);kde[2784]=-19;ylb(kde,2785,2790,33);ylb(kde,2790,2800,-87);ylb(kde,2800,2817,33);ylb(kde,2817,2820,-87);kde[2820]=33;ylb(kde,2821,2829,-19);ylb(kde,2829,2831,33);ylb(kde,2831,2833,-19);ylb(kde,2833,2835,33);ylb(kde,2835,2857,-19);kde[2857]=33;ylb(kde,2858,2865,-19);kde[2865]=33;ylb(kde,2866,2868,-19);ylb(kde,2868,2870,33);ylb(kde,2870,2874,-19);ylb(kde,2874,2876,33);kde[2876]=-87;kde[2877]=-19;ylb(kde,2878,2884,-87);ylb(kde,2884,2887,33);ylb(kde,2887,2889,-87);ylb(kde,2889,2891,33);ylb(kde,2891,2894,-87);ylb(kde,2894,2902,33);ylb(kde,2902,2904,-87);ylb(kde,2904,2908,33);ylb(kde,2908,2910,-19);kde[2910]=33;ylb(kde,2911,2914,-19);ylb(kde,2914,2918,33);ylb(kde,2918,2928,-87);ylb(kde,2928,2946,33);ylb(kde,2946,2948,-87);kde[2948]=33;ylb(kde,2949,2955,-19);ylb(kde,2955,2958,33);ylb(kde,2958,2961,-19);kde[2961]=33;ylb(kde,2962,2966,-19);ylb(kde,2966,2969,33);ylb(kde,2969,2971,-19);kde[2971]=33;kde[2972]=-19;kde[2973]=33;ylb(kde,2974,2976,-19);ylb(kde,2976,2979,33);ylb(kde,2979,2981,-19);ylb(kde,2981,2984,33);ylb(kde,2984,2987,-19);ylb(kde,2987,2990,33);ylb(kde,2990,2998,-19);kde[2998]=33;ylb(kde,2999,3002,-19);ylb(kde,3002,3006,33);ylb(kde,3006,3011,-87);ylb(kde,3011,3014,33);ylb(kde,3014,3017,-87);kde[3017]=33;ylb(kde,3018,3022,-87);ylb(kde,3022,3031,33);kde[3031]=-87;ylb(kde,3032,3047,33);ylb(kde,3047,3056,-87);ylb(kde,3056,3073,33);ylb(kde,3073,3076,-87);kde[3076]=33;ylb(kde,3077,3085,-19);kde[3085]=33;ylb(kde,3086,3089,-19);kde[3089]=33;ylb(kde,3090,3113,-19);kde[3113]=33;ylb(kde,3114,3124,-19);kde[3124]=33;ylb(kde,3125,3130,-19);ylb(kde,3130,3134,33);ylb(kde,3134,3141,-87);kde[3141]=33;ylb(kde,3142,3145,-87);kde[3145]=33;ylb(kde,3146,3150,-87);ylb(kde,3150,3157,33);ylb(kde,3157,3159,-87);ylb(kde,3159,3168,33);ylb(kde,3168,3170,-19);ylb(kde,3170,3174,33);ylb(kde,3174,3184,-87);ylb(kde,3184,3202,33);ylb(kde,3202,3204,-87);kde[3204]=33;ylb(kde,3205,3213,-19);kde[3213]=33;ylb(kde,3214,3217,-19);kde[3217]=33;ylb(kde,3218,3241,-19);kde[3241]=33;ylb(kde,3242,3252,-19);kde[3252]=33;ylb(kde,3253,3258,-19);ylb(kde,3258,3262,33);ylb(kde,3262,3269,-87);kde[3269]=33;ylb(kde,3270,3273,-87);kde[3273]=33;ylb(kde,3274,3278,-87);ylb(kde,3278,3285,33);ylb(kde,3285,3287,-87);ylb(kde,3287,3294,33);kde[3294]=-19;kde[3295]=33;ylb(kde,3296,3298,-19);ylb(kde,3298,3302,33);ylb(kde,3302,3312,-87);ylb(kde,3312,3330,33);ylb(kde,3330,3332,-87);kde[3332]=33;ylb(kde,3333,3341,-19);kde[3341]=33;ylb(kde,3342,3345,-19);kde[3345]=33;ylb(kde,3346,3369,-19);kde[3369]=33;ylb(kde,3370,3386,-19);ylb(kde,3386,3390,33);ylb(kde,3390,3396,-87);ylb(kde,3396,3398,33);ylb(kde,3398,3401,-87);kde[3401]=33;ylb(kde,3402,3406,-87);ylb(kde,3406,3415,33);kde[3415]=-87;ylb(kde,3416,3424,33);ylb(kde,3424,3426,-19);ylb(kde,3426,3430,33);ylb(kde,3430,3440,-87);ylb(kde,3440,3585,33);ylb(kde,3585,3631,-19);kde[3631]=33;kde[3632]=-19;kde[3633]=-87;ylb(kde,3634,3636,-19);ylb(kde,3636,3643,-87);ylb(kde,3643,3648,33);ylb(kde,3648,3654,-19);ylb(kde,3654,3663,-87);kde[3663]=33;ylb(kde,3664,3674,-87);ylb(kde,3674,3713,33);ylb(kde,3713,3715,-19);kde[3715]=33;kde[3716]=-19;ylb(kde,3717,3719,33);ylb(kde,3719,3721,-19);kde[3721]=33;kde[3722]=-19;ylb(kde,3723,3725,33);kde[3725]=-19;ylb(kde,3726,3732,33);ylb(kde,3732,3736,-19);kde[3736]=33;ylb(kde,3737,3744,-19);kde[3744]=33;ylb(kde,3745,3748,-19);kde[3748]=33;kde[3749]=-19;kde[3750]=33;kde[3751]=-19;ylb(kde,3752,3754,33);ylb(kde,3754,3756,-19);kde[3756]=33;ylb(kde,3757,3759,-19);kde[3759]=33;kde[3760]=-19;kde[3761]=-87;ylb(kde,3762,3764,-19);ylb(kde,3764,3770,-87);kde[3770]=33;ylb(kde,3771,3773,-87);kde[3773]=-19;ylb(kde,3774,3776,33);ylb(kde,3776,3781,-19);kde[3781]=33;kde[3782]=-87;kde[3783]=33;ylb(kde,3784,3790,-87);ylb(kde,3790,3792,33);ylb(kde,3792,3802,-87);ylb(kde,3802,3864,33);ylb(kde,3864,3866,-87);ylb(kde,3866,3872,33);ylb(kde,3872,3882,-87);ylb(kde,3882,3893,33);kde[3893]=-87;kde[3894]=33;kde[3895]=-87;kde[3896]=33;kde[3897]=-87;ylb(kde,3898,3902,33);ylb(kde,3902,3904,-87);ylb(kde,3904,3912,-19);kde[3912]=33;ylb(kde,3913,3946,-19);ylb(kde,3946,3953,33);ylb(kde,3953,3973,-87);kde[3973]=33;ylb(kde,3974,3980,-87);ylb(kde,3980,3984,33);ylb(kde,3984,3990,-87);kde[3990]=33;kde[3991]=-87;kde[3992]=33;ylb(kde,3993,4014,-87);ylb(kde,4014,4017,33);ylb(kde,4017,4024,-87);kde[4024]=33;kde[4025]=-87;ylb(kde,4026,4256,33);ylb(kde,4256,4294,-19);ylb(kde,4294,4304,33);ylb(kde,4304,4343,-19);ylb(kde,4343,4352,33);kde[4352]=-19;kde[4353]=33;ylb(kde,4354,4356,-19);kde[4356]=33;ylb(kde,4357,4360,-19);kde[4360]=33;kde[4361]=-19;kde[4362]=33;ylb(kde,4363,4365,-19);kde[4365]=33;ylb(kde,4366,4371,-19);ylb(kde,4371,4412,33);kde[4412]=-19;kde[4413]=33;kde[4414]=-19;kde[4415]=33;kde[4416]=-19;ylb(kde,4417,4428,33);kde[4428]=-19;kde[4429]=33;kde[4430]=-19;kde[4431]=33;kde[4432]=-19;ylb(kde,4433,4436,33);ylb(kde,4436,4438,-19);ylb(kde,4438,4441,33);kde[4441]=-19;ylb(kde,4442,4447,33);ylb(kde,4447,4450,-19);kde[4450]=33;kde[4451]=-19;kde[4452]=33;kde[4453]=-19;kde[4454]=33;kde[4455]=-19;kde[4456]=33;kde[4457]=-19;ylb(kde,4458,4461,33);ylb(kde,4461,4463,-19);ylb(kde,4463,4466,33);ylb(kde,4466,4468,-19);kde[4468]=33;kde[4469]=-19;ylb(kde,4470,4510,33);kde[4510]=-19;ylb(kde,4511,4520,33);kde[4520]=-19;ylb(kde,4521,4523,33);kde[4523]=-19;ylb(kde,4524,4526,33);ylb(kde,4526,4528,-19);ylb(kde,4528,4535,33);ylb(kde,4535,4537,-19);kde[4537]=33;kde[4538]=-19;kde[4539]=33;ylb(kde,4540,4547,-19);ylb(kde,4547,4587,33);kde[4587]=-19;ylb(kde,4588,4592,33);kde[4592]=-19;ylb(kde,4593,4601,33);kde[4601]=-19;ylb(kde,4602,7680,33);ylb(kde,7680,7836,-19);ylb(kde,7836,7840,33);ylb(kde,7840,7930,-19);ylb(kde,7930,7936,33);ylb(kde,7936,7958,-19);ylb(kde,7958,7960,33);ylb(kde,7960,7966,-19);ylb(kde,7966,7968,33);ylb(kde,7968,8006,-19);ylb(kde,8006,8008,33);ylb(kde,8008,8014,-19);ylb(kde,8014,8016,33);ylb(kde,8016,8024,-19);kde[8024]=33;kde[8025]=-19;kde[8026]=33;kde[8027]=-19;kde[8028]=33;kde[8029]=-19;kde[8030]=33;ylb(kde,8031,8062,-19);ylb(kde,8062,8064,33);ylb(kde,8064,8117,-19);kde[8117]=33;ylb(kde,8118,8125,-19);kde[8125]=33;kde[8126]=-19;ylb(kde,8127,8130,33);ylb(kde,8130,8133,-19);kde[8133]=33;ylb(kde,8134,8141,-19);ylb(kde,8141,8144,33);ylb(kde,8144,8148,-19);ylb(kde,8148,8150,33);ylb(kde,8150,8156,-19);ylb(kde,8156,8160,33);ylb(kde,8160,8173,-19);ylb(kde,8173,8178,33);ylb(kde,8178,8181,-19);kde[8181]=33;ylb(kde,8182,8189,-19);ylb(kde,8189,8400,33);ylb(kde,8400,8413,-87);ylb(kde,8413,8417,33);kde[8417]=-87;ylb(kde,8418,8486,33);kde[8486]=-19;ylb(kde,8487,8490,33);ylb(kde,8490,8492,-19);ylb(kde,8492,8494,33);kde[8494]=-19;ylb(kde,8495,8576,33);ylb(kde,8576,8579,-19);ylb(kde,8579,12293,33);kde[12293]=-87;kde[12294]=33;kde[12295]=-19;ylb(kde,12296,12321,33);ylb(kde,12321,12330,-19);ylb(kde,12330,12336,-87);kde[12336]=33;ylb(kde,12337,12342,-87);ylb(kde,12342,12353,33);ylb(kde,12353,12437,-19);ylb(kde,12437,12441,33);ylb(kde,12441,12443,-87);ylb(kde,12443,12445,33);ylb(kde,12445,12447,-87);ylb(kde,12447,12449,33);ylb(kde,12449,12539,-19);kde[12539]=33;ylb(kde,12540,12543,-87);ylb(kde,12543,12549,33);ylb(kde,12549,12589,-19);ylb(kde,12589,19968,33);ylb(kde,19968,40870,-19);ylb(kde,40870,44032,33);ylb(kde,44032,55204,-19);ylb(kde,55204,Uje,33);ylb(kde,57344,65534,33)} +function zZd(a){var b,c,d,e,f,g,h;if(a.hb)return;a.hb=true;pnd(a,'ecore');cod(a,'ecore');dod(a,_ve);Gnd(a.fb,'E');Gnd(a.L,'T');Gnd(a.P,'K');Gnd(a.P,'V');Gnd(a.cb,'E');wtd(_Kd(a.b),a.bb);wtd(_Kd(a.a),a.Q);wtd(_Kd(a.o),a.p);wtd(_Kd(a.p),a.R);wtd(_Kd(a.q),a.p);wtd(_Kd(a.v),a.q);wtd(_Kd(a.w),a.R);wtd(_Kd(a.B),a.Q);wtd(_Kd(a.R),a.Q);wtd(_Kd(a.T),a.eb);wtd(_Kd(a.U),a.R);wtd(_Kd(a.V),a.eb);wtd(_Kd(a.W),a.bb);wtd(_Kd(a.bb),a.eb);wtd(_Kd(a.eb),a.R);wtd(_Kd(a.db),a.R);Xnd(a.b,b5,qve,false,false,true);Vnd(BD(qud(ZKd(a.b),0),34),a.e,'iD',null,0,1,b5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.b),1),18),a.q,null,'eAttributeType',1,1,b5,true,true,false,false,true,false,true);Xnd(a.a,a5,nve,false,false,true);Vnd(BD(qud(ZKd(a.a),0),34),a._,Cte,null,0,1,a5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.a),1),18),a.ab,null,'details',0,-1,a5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.a),2),18),a.Q,BD(qud(ZKd(a.Q),0),18),'eModelElement',0,1,a5,true,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.a),3),18),a.S,null,'contents',0,-1,a5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.a),4),18),a.S,null,'references',0,-1,a5,false,false,true,false,true,false,false);Xnd(a.o,c5,'EClass',false,false,true);Vnd(BD(qud(ZKd(a.o),0),34),a.e,'abstract',null,0,1,c5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.o),1),34),a.e,'interface',null,0,1,c5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.o),2),18),a.o,null,'eSuperTypes',0,-1,c5,false,false,true,false,true,true,false);_nd(BD(qud(ZKd(a.o),3),18),a.T,BD(qud(ZKd(a.T),0),18),'eOperations',0,-1,c5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.o),4),18),a.b,null,'eAllAttributes',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),5),18),a.W,null,'eAllReferences',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),6),18),a.W,null,'eReferences',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),7),18),a.b,null,'eAttributes',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),8),18),a.W,null,'eAllContainments',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),9),18),a.T,null,'eAllOperations',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),10),18),a.bb,null,'eAllStructuralFeatures',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),11),18),a.o,null,'eAllSuperTypes',0,-1,c5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.o),12),18),a.b,null,'eIDAttribute',0,1,c5,true,true,false,false,false,false,true);_nd(BD(qud(ZKd(a.o),13),18),a.bb,BD(qud(ZKd(a.bb),7),18),'eStructuralFeatures',0,-1,c5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.o),14),18),a.H,null,'eGenericSuperTypes',0,-1,c5,false,false,true,true,false,true,false);_nd(BD(qud(ZKd(a.o),15),18),a.H,null,'eAllGenericSuperTypes',0,-1,c5,true,true,false,false,true,false,true);h=$nd(BD(qud(WKd(a.o),0),59),a.e,'isSuperTypeOf');End(h,a.o,'someClass');$nd(BD(qud(WKd(a.o),1),59),a.I,'getFeatureCount');h=$nd(BD(qud(WKd(a.o),2),59),a.bb,dwe);End(h,a.I,'featureID');h=$nd(BD(qud(WKd(a.o),3),59),a.I,ewe);End(h,a.bb,fwe);h=$nd(BD(qud(WKd(a.o),4),59),a.bb,dwe);End(h,a._,'featureName');$nd(BD(qud(WKd(a.o),5),59),a.I,'getOperationCount');h=$nd(BD(qud(WKd(a.o),6),59),a.T,'getEOperation');End(h,a.I,'operationID');h=$nd(BD(qud(WKd(a.o),7),59),a.I,gwe);End(h,a.T,hwe);h=$nd(BD(qud(WKd(a.o),8),59),a.T,'getOverride');End(h,a.T,hwe);h=$nd(BD(qud(WKd(a.o),9),59),a.H,'getFeatureType');End(h,a.bb,fwe);Xnd(a.p,d5,rve,true,false,true);Vnd(BD(qud(ZKd(a.p),0),34),a._,'instanceClassName',null,0,1,d5,false,true,true,true,true,false);b=Nnd(a.L);c=vZd();wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);Wnd(BD(qud(ZKd(a.p),1),34),b,'instanceClass',d5,true,true,false,true);Vnd(BD(qud(ZKd(a.p),2),34),a.M,iwe,null,0,1,d5,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.p),3),34),a._,'instanceTypeName',null,0,1,d5,false,true,true,true,true,false);_nd(BD(qud(ZKd(a.p),4),18),a.U,BD(qud(ZKd(a.U),3),18),'ePackage',0,1,d5,true,false,false,false,true,false,false);_nd(BD(qud(ZKd(a.p),5),18),a.db,null,jwe,0,-1,d5,false,false,true,true,true,false,false);h=$nd(BD(qud(WKd(a.p),0),59),a.e,kwe);End(h,a.M,Jhe);$nd(BD(qud(WKd(a.p),1),59),a.I,'getClassifierID');Xnd(a.q,f5,'EDataType',false,false,true);Vnd(BD(qud(ZKd(a.q),0),34),a.e,'serializable',kse,0,1,f5,false,false,true,false,true,false);Xnd(a.v,h5,'EEnum',false,false,true);_nd(BD(qud(ZKd(a.v),0),18),a.w,BD(qud(ZKd(a.w),3),18),'eLiterals',0,-1,h5,false,false,true,true,false,false,false);h=$nd(BD(qud(WKd(a.v),0),59),a.w,lwe);End(h,a._,fue);h=$nd(BD(qud(WKd(a.v),1),59),a.w,lwe);End(h,a.I,Bte);h=$nd(BD(qud(WKd(a.v),2),59),a.w,'getEEnumLiteralByLiteral');End(h,a._,'literal');Xnd(a.w,g5,sve,false,false,true);Vnd(BD(qud(ZKd(a.w),0),34),a.I,Bte,null,0,1,g5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.w),1),34),a.A,'instance',null,0,1,g5,true,false,true,false,true,false);Vnd(BD(qud(ZKd(a.w),2),34),a._,'literal',null,0,1,g5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.w),3),18),a.v,BD(qud(ZKd(a.v),0),18),'eEnum',0,1,g5,true,false,false,false,false,false,false);Xnd(a.B,i5,'EFactory',false,false,true);_nd(BD(qud(ZKd(a.B),0),18),a.U,BD(qud(ZKd(a.U),2),18),'ePackage',1,1,i5,true,false,true,false,false,false,false);h=$nd(BD(qud(WKd(a.B),0),59),a.S,'create');End(h,a.o,'eClass');h=$nd(BD(qud(WKd(a.B),1),59),a.M,'createFromString');End(h,a.q,'eDataType');End(h,a._,'literalValue');h=$nd(BD(qud(WKd(a.B),2),59),a._,'convertToString');End(h,a.q,'eDataType');End(h,a.M,'instanceValue');Xnd(a.Q,k5,bte,true,false,true);_nd(BD(qud(ZKd(a.Q),0),18),a.a,BD(qud(ZKd(a.a),2),18),'eAnnotations',0,-1,k5,false,false,true,true,false,false,false);h=$nd(BD(qud(WKd(a.Q),0),59),a.a,'getEAnnotation');End(h,a._,Cte);Xnd(a.R,l5,cte,true,false,true);Vnd(BD(qud(ZKd(a.R),0),34),a._,fue,null,0,1,l5,false,false,true,false,true,false);Xnd(a.S,m5,'EObject',false,false,true);$nd(BD(qud(WKd(a.S),0),59),a.o,'eClass');$nd(BD(qud(WKd(a.S),1),59),a.e,'eIsProxy');$nd(BD(qud(WKd(a.S),2),59),a.X,'eResource');$nd(BD(qud(WKd(a.S),3),59),a.S,'eContainer');$nd(BD(qud(WKd(a.S),4),59),a.bb,'eContainingFeature');$nd(BD(qud(WKd(a.S),5),59),a.W,'eContainmentFeature');h=$nd(BD(qud(WKd(a.S),6),59),null,'eContents');b=Nnd(a.fb);c=Nnd(a.S);wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);e=xId(h,b,null);!!e&&e.Fi();h=$nd(BD(qud(WKd(a.S),7),59),null,'eAllContents');b=Nnd(a.cb);c=Nnd(a.S);wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);f=xId(h,b,null);!!f&&f.Fi();h=$nd(BD(qud(WKd(a.S),8),59),null,'eCrossReferences');b=Nnd(a.fb);c=Nnd(a.S);wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);g=xId(h,b,null);!!g&&g.Fi();h=$nd(BD(qud(WKd(a.S),9),59),a.M,'eGet');End(h,a.bb,fwe);h=$nd(BD(qud(WKd(a.S),10),59),a.M,'eGet');End(h,a.bb,fwe);End(h,a.e,'resolve');h=$nd(BD(qud(WKd(a.S),11),59),null,'eSet');End(h,a.bb,fwe);End(h,a.M,'newValue');h=$nd(BD(qud(WKd(a.S),12),59),a.e,'eIsSet');End(h,a.bb,fwe);h=$nd(BD(qud(WKd(a.S),13),59),null,'eUnset');End(h,a.bb,fwe);h=$nd(BD(qud(WKd(a.S),14),59),a.M,'eInvoke');End(h,a.T,hwe);b=Nnd(a.fb);c=vZd();wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);Fnd(h,b,'arguments');Cnd(h,a.K);Xnd(a.T,n5,uve,false,false,true);_nd(BD(qud(ZKd(a.T),0),18),a.o,BD(qud(ZKd(a.o),3),18),mwe,0,1,n5,true,false,false,false,false,false,false);_nd(BD(qud(ZKd(a.T),1),18),a.db,null,jwe,0,-1,n5,false,false,true,true,true,false,false);_nd(BD(qud(ZKd(a.T),2),18),a.V,BD(qud(ZKd(a.V),0),18),'eParameters',0,-1,n5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.T),3),18),a.p,null,'eExceptions',0,-1,n5,false,false,true,false,true,true,false);_nd(BD(qud(ZKd(a.T),4),18),a.H,null,'eGenericExceptions',0,-1,n5,false,false,true,true,false,true,false);$nd(BD(qud(WKd(a.T),0),59),a.I,gwe);h=$nd(BD(qud(WKd(a.T),1),59),a.e,'isOverrideOf');End(h,a.T,'someOperation');Xnd(a.U,o5,'EPackage',false,false,true);Vnd(BD(qud(ZKd(a.U),0),34),a._,'nsURI',null,0,1,o5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.U),1),34),a._,'nsPrefix',null,0,1,o5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.U),2),18),a.B,BD(qud(ZKd(a.B),0),18),'eFactoryInstance',1,1,o5,true,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.U),3),18),a.p,BD(qud(ZKd(a.p),4),18),'eClassifiers',0,-1,o5,false,false,true,true,true,false,false);_nd(BD(qud(ZKd(a.U),4),18),a.U,BD(qud(ZKd(a.U),5),18),'eSubpackages',0,-1,o5,false,false,true,true,true,false,false);_nd(BD(qud(ZKd(a.U),5),18),a.U,BD(qud(ZKd(a.U),4),18),'eSuperPackage',0,1,o5,true,false,false,false,true,false,false);h=$nd(BD(qud(WKd(a.U),0),59),a.p,'getEClassifier');End(h,a._,fue);Xnd(a.V,p5,vve,false,false,true);_nd(BD(qud(ZKd(a.V),0),18),a.T,BD(qud(ZKd(a.T),2),18),'eOperation',0,1,p5,true,false,false,false,false,false,false);Xnd(a.W,q5,wve,false,false,true);Vnd(BD(qud(ZKd(a.W),0),34),a.e,'containment',null,0,1,q5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.W),1),34),a.e,'container',null,0,1,q5,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.W),2),34),a.e,'resolveProxies',kse,0,1,q5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.W),3),18),a.W,null,'eOpposite',0,1,q5,false,false,true,false,true,false,false);_nd(BD(qud(ZKd(a.W),4),18),a.o,null,'eReferenceType',1,1,q5,true,true,false,false,true,false,true);_nd(BD(qud(ZKd(a.W),5),18),a.b,null,'eKeys',0,-1,q5,false,false,true,false,true,false,false);Xnd(a.bb,t5,pve,true,false,true);Vnd(BD(qud(ZKd(a.bb),0),34),a.e,'changeable',kse,0,1,t5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),1),34),a.e,'volatile',null,0,1,t5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),2),34),a.e,'transient',null,0,1,t5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),3),34),a._,'defaultValueLiteral',null,0,1,t5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),4),34),a.M,iwe,null,0,1,t5,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.bb),5),34),a.e,'unsettable',null,0,1,t5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.bb),6),34),a.e,'derived',null,0,1,t5,false,false,true,false,true,false);_nd(BD(qud(ZKd(a.bb),7),18),a.o,BD(qud(ZKd(a.o),13),18),mwe,0,1,t5,true,false,false,false,false,false,false);$nd(BD(qud(WKd(a.bb),0),59),a.I,ewe);h=$nd(BD(qud(WKd(a.bb),1),59),null,'getContainerClass');b=Nnd(a.L);c=vZd();wtd((!b.d&&(b.d=new xMd(j5,b,1)),b.d),c);d=xId(h,b,null);!!d&&d.Fi();Xnd(a.eb,v5,ove,true,false,true);Vnd(BD(qud(ZKd(a.eb),0),34),a.e,'ordered',kse,0,1,v5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.eb),1),34),a.e,'unique',kse,0,1,v5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.eb),2),34),a.I,'lowerBound',null,0,1,v5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.eb),3),34),a.I,'upperBound','1',0,1,v5,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.eb),4),34),a.e,'many',null,0,1,v5,true,true,false,false,true,true);Vnd(BD(qud(ZKd(a.eb),5),34),a.e,'required',null,0,1,v5,true,true,false,false,true,true);_nd(BD(qud(ZKd(a.eb),6),18),a.p,null,'eType',0,1,v5,false,true,true,false,true,true,false);_nd(BD(qud(ZKd(a.eb),7),18),a.H,null,'eGenericType',0,1,v5,false,true,true,true,false,true,false);Xnd(a.ab,CK,'EStringToStringMapEntry',false,false,false);Vnd(BD(qud(ZKd(a.ab),0),34),a._,'key',null,0,1,CK,false,false,true,false,true,false);Vnd(BD(qud(ZKd(a.ab),1),34),a._,Bte,null,0,1,CK,false,false,true,false,true,false);Xnd(a.H,j5,tve,false,false,true);_nd(BD(qud(ZKd(a.H),0),18),a.H,null,'eUpperBound',0,1,j5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.H),1),18),a.H,null,'eTypeArguments',0,-1,j5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.H),2),18),a.p,null,'eRawType',1,1,j5,true,false,false,false,true,false,true);_nd(BD(qud(ZKd(a.H),3),18),a.H,null,'eLowerBound',0,1,j5,false,false,true,true,false,false,false);_nd(BD(qud(ZKd(a.H),4),18),a.db,null,'eTypeParameter',0,1,j5,false,false,true,false,false,false,false);_nd(BD(qud(ZKd(a.H),5),18),a.p,null,'eClassifier',0,1,j5,false,false,true,false,true,false,false);h=$nd(BD(qud(WKd(a.H),0),59),a.e,kwe);End(h,a.M,Jhe);Xnd(a.db,u5,xve,false,false,true);_nd(BD(qud(ZKd(a.db),0),18),a.H,null,'eBounds',0,-1,u5,false,false,true,true,false,false,false);Znd(a.c,bJ,'EBigDecimal',true);Znd(a.d,cJ,'EBigInteger',true);Znd(a.e,sbb,'EBoolean',true);Znd(a.f,wI,'EBooleanObject',true);Znd(a.i,SD,'EByte',true);Znd(a.g,GC(SD,1),'EByteArray',true);Znd(a.j,xI,'EByteObject',true);Znd(a.k,TD,'EChar',true);Znd(a.n,yI,'ECharacterObject',true);Znd(a.r,$J,'EDate',true);Znd(a.s,O4,'EDiagnosticChain',false);Znd(a.t,UD,'EDouble',true);Znd(a.u,BI,'EDoubleObject',true);Znd(a.fb,T4,'EEList',false);Znd(a.A,U4,'EEnumerator',false);Znd(a.C,O9,'EFeatureMap',false);Znd(a.D,E9,'EFeatureMapEntry',false);Znd(a.F,VD,'EFloat',true);Znd(a.G,FI,'EFloatObject',true);Znd(a.I,WD,'EInt',true);Znd(a.J,JI,'EIntegerObject',true);Znd(a.L,AI,'EJavaClass',true);Znd(a.M,SI,'EJavaObject',true);Znd(a.N,XD,'ELong',true);Znd(a.O,MI,'ELongObject',true);Znd(a.P,DK,'EMap',false);Znd(a.X,v8,'EResource',false);Znd(a.Y,u8,'EResourceSet',false);Znd(a.Z,rbb,'EShort',true);Znd(a.$,UI,'EShortObject',true);Znd(a._,ZI,'EString',true);Znd(a.cb,X4,'ETreeIterator',false);Znd(a.K,V4,'EInvocationTargetException',false);Rnd(a,_ve)} +var Jhe='object',Khe='boolean',Lhe='number',Mhe='string',Nhe='function',Ohe=2147483647,Phe='java.lang',Qhe={3:1},Rhe='com.google.common.base',She=', ',The='%s (%s) must not be negative',Uhe={3:1,4:1,5:1},Vhe='negative size: ',Whe='Optional.of(',Xhe='null',Yhe={198:1,47:1},Zhe='com.google.common.collect',$he={198:1,47:1,125:1},_he={224:1,3:1},aie={47:1},bie='java.util',cie={83:1},die={20:1,28:1,14:1},eie=1965,fie={20:1,28:1,14:1,21:1},gie={83:1,171:1,161:1},hie={20:1,28:1,14:1,21:1,84:1},iie={20:1,28:1,14:1,271:1,21:1,84:1},jie={47:1,125:1},kie={345:1,42:1},lie='AbstractMapEntry',mie='expectedValuesPerKey',nie={3:1,6:1,4:1,5:1},oie=16384,pie={164:1},qie={38:1},rie={l:4194303,m:4194303,h:524287},sie={196:1},tie={245:1,3:1,35:1},uie='range unbounded on this side',vie={20:1},wie={20:1,14:1},xie={3:1,20:1,28:1,14:1},yie={152:1,3:1,20:1,28:1,14:1,15:1,54:1},zie={3:1,4:1,5:1,165:1},Aie={3:1,83:1},Bie={20:1,14:1,21:1},Cie={3:1,20:1,28:1,14:1,21:1},Die={20:1,14:1,21:1,84:1},Eie=461845907,Fie=-862048943,Gie={3:1,6:1,4:1,5:1,165:1},Hie='expectedSize',Iie=1073741824,Jie='initialArraySize',Kie={3:1,6:1,4:1,9:1,5:1},Lie={20:1,28:1,52:1,14:1,15:1},Mie='arraySize',Nie={20:1,28:1,52:1,14:1,15:1,54:1},Oie={45:1},Pie={365:1},Qie=1.0E-4,Rie=-2147483648,Sie='__noinit__',Tie={3:1,102:1,60:1,78:1},Uie='com.google.gwt.core.client.impl',Vie='String',Wie='com.google.gwt.core.client',Xie='anonymous',Yie='fnStack',Zie='Unknown',$ie={195:1,3:1,4:1},_ie=1000,aje=65535,bje='January',cje='February',dje='March',eje='April',fje='May',gje='June',hje='July',ije='August',jje='September',kje='October',lje='November',mje='December',nje=1900,oje={48:1,3:1,4:1},pje='Before Christ',qje='Anno Domini',rje='Sunday',sje='Monday',tje='Tuesday',uje='Wednesday',vje='Thursday',wje='Friday',xje='Saturday',yje='com.google.gwt.i18n.shared',zje='DateTimeFormat',Aje='com.google.gwt.i18n.client',Bje='DefaultDateTimeFormatInfo',Cje={3:1,4:1,35:1,199:1},Dje='com.google.gwt.json.client',Eje=4194303,Fje=1048575,Gje=524288,Hje=4194304,Ije=17592186044416,Jje=1000000000,Kje=-17592186044416,Lje='java.io',Mje={3:1,102:1,73:1,60:1,78:1},Nje={3:1,289:1,78:1},Oje='For input string: "',Pje=Infinity,Qje=-Infinity,Rje=4096,Sje={3:1,4:1,364:1},Tje=65536,Uje=55296,Vje={104:1,3:1,4:1},Wje=100000,Xje=0.3010299956639812,Yje=4294967295,Zje=4294967296,$je='0.0',_je={42:1},ake={3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1},bke={3:1,20:1,28:1,52:1,14:1,15:1,54:1},cke={20:1,14:1,15:1},dke={3:1,62:1},eke={182:1},fke={3:1,4:1,83:1},gke={3:1,4:1,20:1,28:1,14:1,53:1,21:1},hke='delete',ike=1.4901161193847656E-8,jke=1.1102230246251565E-16,kke=15525485,lke=5.9604644775390625E-8,mke=16777216,nke=16777215,oke=', length: ',pke={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1},qke={3:1,35:1,22:1,297:1},rke='java.util.function',ske='java.util.logging',tke={3:1,4:1,5:1,842:1},uke='undefined',vke='java.util.stream',wke={525:1,670:1},xke='fromIndex: ',yke=' > toIndex: ',zke=', toIndex: ',Ake='Index: ',Bke=', Size: ',Cke='org.eclipse.elk.alg.common',Dke={62:1},Eke='org.eclipse.elk.alg.common.compaction',Fke='Scanline/EventHandler',Gke='org.eclipse.elk.alg.common.compaction.oned',Hke='CNode belongs to another CGroup.',Ike='ISpacingsHandler/1',Jke='The ',Kke=' instance has been finished already.',Lke='The direction ',Mke=' is not supported by the CGraph instance.',Nke='OneDimensionalCompactor',Oke='OneDimensionalCompactor/lambda$0$Type',Pke='Quadruplet',Qke='ScanlineConstraintCalculator',Rke='ScanlineConstraintCalculator/ConstraintsScanlineHandler',Ske='ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type',Tke='ScanlineConstraintCalculator/Timestamp',Uke='ScanlineConstraintCalculator/lambda$0$Type',Vke={169:1,45:1},Wke='org.eclipse.elk.alg.common.compaction.options',Xke='org.eclipse.elk.core.data',Yke='org.eclipse.elk.polyomino.traversalStrategy',Zke='org.eclipse.elk.polyomino.lowLevelSort',$ke='org.eclipse.elk.polyomino.highLevelSort',_ke='org.eclipse.elk.polyomino.fill',ale={130:1},ble='polyomino',cle='org.eclipse.elk.alg.common.networksimplex',dle={177:1,3:1,4:1},ele='org.eclipse.elk.alg.common.nodespacing',fle='org.eclipse.elk.alg.common.nodespacing.cellsystem',gle='CENTER',hle={212:1,326:1},ile={3:1,4:1,5:1,595:1},jle='LEFT',kle='RIGHT',lle='Vertical alignment cannot be null',mle='BOTTOM',nle='org.eclipse.elk.alg.common.nodespacing.internal',ole='UNDEFINED',ple=0.01,qle='org.eclipse.elk.alg.common.nodespacing.internal.algorithm',rle='LabelPlacer/lambda$0$Type',sle='LabelPlacer/lambda$1$Type',tle='portRatioOrPosition',ule='org.eclipse.elk.alg.common.overlaps',vle='DOWN',wle='org.eclipse.elk.alg.common.polyomino',xle='NORTH',yle='EAST',zle='SOUTH',Ale='WEST',Ble='org.eclipse.elk.alg.common.polyomino.structures',Cle='Direction',Dle='Grid is only of size ',Ele='. Requested point (',Fle=') is out of bounds.',Gle=' Given center based coordinates were (',Hle='org.eclipse.elk.graph.properties',Ile='IPropertyHolder',Jle={3:1,94:1,134:1},Kle='org.eclipse.elk.alg.common.spore',Lle='org.eclipse.elk.alg.common.utils',Mle={209:1},Nle='org.eclipse.elk.core',Ole='Connected Components Compaction',Ple='org.eclipse.elk.alg.disco',Qle='org.eclipse.elk.alg.disco.graph',Rle='org.eclipse.elk.alg.disco.options',Sle='CompactionStrategy',Tle='org.eclipse.elk.disco.componentCompaction.strategy',Ule='org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm',Vle='org.eclipse.elk.disco.debug.discoGraph',Wle='org.eclipse.elk.disco.debug.discoPolys',Xle='componentCompaction',Yle='org.eclipse.elk.disco',Zle='org.eclipse.elk.spacing.componentComponent',$le='org.eclipse.elk.edge.thickness',_le='org.eclipse.elk.aspectRatio',ame='org.eclipse.elk.padding',bme='org.eclipse.elk.alg.disco.transform',cme=1.5707963267948966,dme=1.7976931348623157E308,eme={3:1,4:1,5:1,192:1},fme={3:1,6:1,4:1,5:1,106:1,120:1},gme='org.eclipse.elk.alg.force',hme='ComponentsProcessor',ime='ComponentsProcessor/1',jme='org.eclipse.elk.alg.force.graph',kme='Component Layout',lme='org.eclipse.elk.alg.force.model',mme='org.eclipse.elk.force.model',nme='org.eclipse.elk.force.iterations',ome='org.eclipse.elk.force.repulsivePower',pme='org.eclipse.elk.force.temperature',qme=0.001,rme='org.eclipse.elk.force.repulsion',sme='org.eclipse.elk.alg.force.options',tme=1.600000023841858,ume='org.eclipse.elk.force',vme='org.eclipse.elk.priority',wme='org.eclipse.elk.spacing.nodeNode',xme='org.eclipse.elk.spacing.edgeLabel',yme='org.eclipse.elk.randomSeed',zme='org.eclipse.elk.separateConnectedComponents',Ame='org.eclipse.elk.interactive',Bme='org.eclipse.elk.portConstraints',Cme='org.eclipse.elk.edgeLabels.inline',Dme='org.eclipse.elk.omitNodeMicroLayout',Eme='org.eclipse.elk.nodeSize.options',Fme='org.eclipse.elk.nodeSize.constraints',Gme='org.eclipse.elk.nodeLabels.placement',Hme='org.eclipse.elk.portLabels.placement',Ime='origin',Jme='random',Kme='boundingBox.upLeft',Lme='boundingBox.lowRight',Mme='org.eclipse.elk.stress.fixed',Nme='org.eclipse.elk.stress.desiredEdgeLength',Ome='org.eclipse.elk.stress.dimension',Pme='org.eclipse.elk.stress.epsilon',Qme='org.eclipse.elk.stress.iterationLimit',Rme='org.eclipse.elk.stress',Sme='ELK Stress',Tme='org.eclipse.elk.nodeSize.minimum',Ume='org.eclipse.elk.alg.force.stress',Vme='Layered layout',Wme='org.eclipse.elk.alg.layered',Xme='org.eclipse.elk.alg.layered.compaction.components',Yme='org.eclipse.elk.alg.layered.compaction.oned',Zme='org.eclipse.elk.alg.layered.compaction.oned.algs',$me='org.eclipse.elk.alg.layered.compaction.recthull',_me='org.eclipse.elk.alg.layered.components',ane='NONE',bne={3:1,6:1,4:1,9:1,5:1,122:1},cne={3:1,6:1,4:1,5:1,141:1,106:1,120:1},dne='org.eclipse.elk.alg.layered.compound',ene={51:1},fne='org.eclipse.elk.alg.layered.graph',gne=' -> ',hne='Not supported by LGraph',ine='Port side is undefined',jne={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},kne={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},lne={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},mne='([{"\' \t\r\n',nne=')]}"\' \t\r\n',one='The given string contains parts that cannot be parsed as numbers.',pne='org.eclipse.elk.core.math',qne={3:1,4:1,142:1,207:1,414:1},rne={3:1,4:1,116:1,207:1,414:1},sne='org.eclipse.elk.layered',tne='org.eclipse.elk.alg.layered.graph.transform',une='ElkGraphImporter',vne='ElkGraphImporter/lambda$0$Type',wne='ElkGraphImporter/lambda$1$Type',xne='ElkGraphImporter/lambda$2$Type',yne='ElkGraphImporter/lambda$4$Type',zne='Node margin calculation',Ane='org.eclipse.elk.alg.layered.intermediate',Bne='ONE_SIDED_GREEDY_SWITCH',Cne='TWO_SIDED_GREEDY_SWITCH',Dne='No implementation is available for the layout processor ',Ene='IntermediateProcessorStrategy',Fne="Node '",Gne='FIRST_SEPARATE',Hne='LAST_SEPARATE',Ine='Odd port side processing',Jne='org.eclipse.elk.alg.layered.intermediate.compaction',Kne='org.eclipse.elk.alg.layered.intermediate.greedyswitch',Lne='org.eclipse.elk.alg.layered.p3order.counting',Mne={225:1},Nne='org.eclipse.elk.alg.layered.intermediate.loops',One='org.eclipse.elk.alg.layered.intermediate.loops.ordering',Pne='org.eclipse.elk.alg.layered.intermediate.loops.routing',Qne='org.eclipse.elk.alg.layered.intermediate.preserveorder',Rne='org.eclipse.elk.alg.layered.intermediate.wrapping',Sne='org.eclipse.elk.alg.layered.options',Tne='INTERACTIVE',Une='DEPTH_FIRST',Vne='EDGE_LENGTH',Wne='SELF_LOOPS',Xne='firstTryWithInitialOrder',Yne='org.eclipse.elk.layered.directionCongruency',Zne='org.eclipse.elk.layered.feedbackEdges',$ne='org.eclipse.elk.layered.interactiveReferencePoint',_ne='org.eclipse.elk.layered.mergeEdges',aoe='org.eclipse.elk.layered.mergeHierarchyEdges',boe='org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides',coe='org.eclipse.elk.layered.portSortingStrategy',doe='org.eclipse.elk.layered.thoroughness',eoe='org.eclipse.elk.layered.unnecessaryBendpoints',foe='org.eclipse.elk.layered.generatePositionAndLayerIds',goe='org.eclipse.elk.layered.cycleBreaking.strategy',hoe='org.eclipse.elk.layered.layering.strategy',ioe='org.eclipse.elk.layered.layering.layerConstraint',joe='org.eclipse.elk.layered.layering.layerChoiceConstraint',koe='org.eclipse.elk.layered.layering.layerId',loe='org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth',moe='org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor',noe='org.eclipse.elk.layered.layering.nodePromotion.strategy',ooe='org.eclipse.elk.layered.layering.nodePromotion.maxIterations',poe='org.eclipse.elk.layered.layering.coffmanGraham.layerBound',qoe='org.eclipse.elk.layered.crossingMinimization.strategy',roe='org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder',soe='org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness',toe='org.eclipse.elk.layered.crossingMinimization.semiInteractive',uoe='org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint',voe='org.eclipse.elk.layered.crossingMinimization.positionId',woe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold',xoe='org.eclipse.elk.layered.crossingMinimization.greedySwitch.type',yoe='org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type',zoe='org.eclipse.elk.layered.nodePlacement.strategy',Aoe='org.eclipse.elk.layered.nodePlacement.favorStraightEdges',Boe='org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening',Coe='org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment',Doe='org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening',Eoe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility',Foe='org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default',Goe='org.eclipse.elk.layered.edgeRouting.selfLoopDistribution',Hoe='org.eclipse.elk.layered.edgeRouting.selfLoopOrdering',Ioe='org.eclipse.elk.layered.edgeRouting.splines.mode',Joe='org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor',Koe='org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth',Loe='org.eclipse.elk.layered.spacing.baseValue',Moe='org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers',Noe='org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers',Ooe='org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers',Poe='org.eclipse.elk.layered.priority.direction',Qoe='org.eclipse.elk.layered.priority.shortness',Roe='org.eclipse.elk.layered.priority.straightness',Soe='org.eclipse.elk.layered.compaction.connectedComponents',Toe='org.eclipse.elk.layered.compaction.postCompaction.strategy',Uoe='org.eclipse.elk.layered.compaction.postCompaction.constraints',Voe='org.eclipse.elk.layered.highDegreeNodes.treatment',Woe='org.eclipse.elk.layered.highDegreeNodes.threshold',Xoe='org.eclipse.elk.layered.highDegreeNodes.treeHeight',Yoe='org.eclipse.elk.layered.wrapping.strategy',Zoe='org.eclipse.elk.layered.wrapping.additionalEdgeSpacing',$oe='org.eclipse.elk.layered.wrapping.correctionFactor',_oe='org.eclipse.elk.layered.wrapping.cutting.strategy',ape='org.eclipse.elk.layered.wrapping.cutting.cuts',bpe='org.eclipse.elk.layered.wrapping.cutting.msd.freedom',cpe='org.eclipse.elk.layered.wrapping.validify.strategy',dpe='org.eclipse.elk.layered.wrapping.validify.forbiddenIndices',epe='org.eclipse.elk.layered.wrapping.multiEdge.improveCuts',fpe='org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty',gpe='org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges',hpe='org.eclipse.elk.layered.edgeLabels.sideSelection',ipe='org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy',jpe='org.eclipse.elk.layered.considerModelOrder.strategy',kpe='org.eclipse.elk.layered.considerModelOrder.noModelOrder',lpe='org.eclipse.elk.layered.considerModelOrder.components',mpe='org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy',npe='org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence',ope='org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence',ppe='layering',qpe='layering.minWidth',rpe='layering.nodePromotion',spe='crossingMinimization',tpe='org.eclipse.elk.hierarchyHandling',upe='crossingMinimization.greedySwitch',vpe='nodePlacement',wpe='nodePlacement.bk',xpe='edgeRouting',ype='org.eclipse.elk.edgeRouting',zpe='spacing',Ape='priority',Bpe='compaction',Cpe='compaction.postCompaction',Dpe='Specifies whether and how post-process compaction is applied.',Epe='highDegreeNodes',Fpe='wrapping',Gpe='wrapping.cutting',Hpe='wrapping.validify',Ipe='wrapping.multiEdge',Jpe='edgeLabels',Kpe='considerModelOrder',Lpe='org.eclipse.elk.spacing.commentComment',Mpe='org.eclipse.elk.spacing.commentNode',Npe='org.eclipse.elk.spacing.edgeEdge',Ope='org.eclipse.elk.spacing.edgeNode',Ppe='org.eclipse.elk.spacing.labelLabel',Qpe='org.eclipse.elk.spacing.labelPortHorizontal',Rpe='org.eclipse.elk.spacing.labelPortVertical',Spe='org.eclipse.elk.spacing.labelNode',Tpe='org.eclipse.elk.spacing.nodeSelfLoop',Upe='org.eclipse.elk.spacing.portPort',Vpe='org.eclipse.elk.spacing.individual',Wpe='org.eclipse.elk.port.borderOffset',Xpe='org.eclipse.elk.noLayout',Ype='org.eclipse.elk.port.side',Zpe='org.eclipse.elk.debugMode',$pe='org.eclipse.elk.alignment',_pe='org.eclipse.elk.insideSelfLoops.activate',aqe='org.eclipse.elk.insideSelfLoops.yo',bqe='org.eclipse.elk.nodeSize.fixedGraphSize',cqe='org.eclipse.elk.direction',dqe='org.eclipse.elk.nodeLabels.padding',eqe='org.eclipse.elk.portLabels.nextToPortIfPossible',fqe='org.eclipse.elk.portLabels.treatAsGroup',gqe='org.eclipse.elk.portAlignment.default',hqe='org.eclipse.elk.portAlignment.north',iqe='org.eclipse.elk.portAlignment.south',jqe='org.eclipse.elk.portAlignment.west',kqe='org.eclipse.elk.portAlignment.east',lqe='org.eclipse.elk.contentAlignment',mqe='org.eclipse.elk.junctionPoints',nqe='org.eclipse.elk.edgeLabels.placement',oqe='org.eclipse.elk.port.index',pqe='org.eclipse.elk.commentBox',qqe='org.eclipse.elk.hypernode',rqe='org.eclipse.elk.port.anchor',sqe='org.eclipse.elk.partitioning.activate',tqe='org.eclipse.elk.partitioning.partition',uqe='org.eclipse.elk.position',vqe='org.eclipse.elk.margins',wqe='org.eclipse.elk.spacing.portsSurrounding',xqe='org.eclipse.elk.interactiveLayout',yqe='org.eclipse.elk.core.util',zqe={3:1,4:1,5:1,593:1},Aqe='NETWORK_SIMPLEX',Bqe={123:1,51:1},Cqe='org.eclipse.elk.alg.layered.p1cycles',Dqe='org.eclipse.elk.alg.layered.p2layers',Eqe={402:1,225:1},Fqe={832:1,3:1,4:1},Gqe='org.eclipse.elk.alg.layered.p3order',Hqe='org.eclipse.elk.alg.layered.p4nodes',Iqe={3:1,4:1,5:1,840:1},Jqe=1.0E-5,Kqe='org.eclipse.elk.alg.layered.p4nodes.bk',Lqe='org.eclipse.elk.alg.layered.p5edges',Mqe='org.eclipse.elk.alg.layered.p5edges.orthogonal',Nqe='org.eclipse.elk.alg.layered.p5edges.orthogonal.direction',Oqe=1.0E-6,Pqe='org.eclipse.elk.alg.layered.p5edges.splines',Qqe=0.09999999999999998,Rqe=1.0E-8,Sqe=4.71238898038469,Tqe=3.141592653589793,Uqe='org.eclipse.elk.alg.mrtree',Vqe='org.eclipse.elk.alg.mrtree.graph',Wqe='org.eclipse.elk.alg.mrtree.intermediate',Xqe='Set neighbors in level',Yqe='DESCENDANTS',Zqe='org.eclipse.elk.mrtree.weighting',$qe='org.eclipse.elk.mrtree.searchOrder',_qe='org.eclipse.elk.alg.mrtree.options',are='org.eclipse.elk.mrtree',bre='org.eclipse.elk.tree',cre='org.eclipse.elk.alg.radial',dre=6.283185307179586,ere=4.9E-324,fre='org.eclipse.elk.alg.radial.intermediate',gre='org.eclipse.elk.alg.radial.intermediate.compaction',hre={3:1,4:1,5:1,106:1},ire='org.eclipse.elk.alg.radial.intermediate.optimization',jre='No implementation is available for the layout option ',kre='org.eclipse.elk.alg.radial.options',lre='org.eclipse.elk.radial.orderId',mre='org.eclipse.elk.radial.radius',nre='org.eclipse.elk.radial.compactor',ore='org.eclipse.elk.radial.compactionStepSize',pre='org.eclipse.elk.radial.sorter',qre='org.eclipse.elk.radial.wedgeCriteria',rre='org.eclipse.elk.radial.optimizationCriteria',sre='org.eclipse.elk.radial',tre='org.eclipse.elk.alg.radial.p1position.wedge',ure='org.eclipse.elk.alg.radial.sorting',vre=5.497787143782138,wre=3.9269908169872414,xre=2.356194490192345,yre='org.eclipse.elk.alg.rectpacking',zre='org.eclipse.elk.alg.rectpacking.firstiteration',Are='org.eclipse.elk.alg.rectpacking.options',Bre='org.eclipse.elk.rectpacking.optimizationGoal',Cre='org.eclipse.elk.rectpacking.lastPlaceShift',Dre='org.eclipse.elk.rectpacking.currentPosition',Ere='org.eclipse.elk.rectpacking.desiredPosition',Fre='org.eclipse.elk.rectpacking.onlyFirstIteration',Gre='org.eclipse.elk.rectpacking.rowCompaction',Hre='org.eclipse.elk.rectpacking.expandToAspectRatio',Ire='org.eclipse.elk.rectpacking.targetWidth',Jre='org.eclipse.elk.expandNodes',Kre='org.eclipse.elk.rectpacking',Lre='org.eclipse.elk.alg.rectpacking.util',Mre='No implementation available for ',Nre='org.eclipse.elk.alg.spore',Ore='org.eclipse.elk.alg.spore.options',Pre='org.eclipse.elk.sporeCompaction',Qre='org.eclipse.elk.underlyingLayoutAlgorithm',Rre='org.eclipse.elk.processingOrder.treeConstruction',Sre='org.eclipse.elk.processingOrder.spanningTreeCostFunction',Tre='org.eclipse.elk.processingOrder.preferredRoot',Ure='org.eclipse.elk.processingOrder.rootSelection',Vre='org.eclipse.elk.structure.structureExtractionStrategy',Wre='org.eclipse.elk.compaction.compactionStrategy',Xre='org.eclipse.elk.compaction.orthogonal',Yre='org.eclipse.elk.overlapRemoval.maxIterations',Zre='org.eclipse.elk.overlapRemoval.runScanline',$re='processingOrder',_re='overlapRemoval',ase='org.eclipse.elk.sporeOverlap',bse='org.eclipse.elk.alg.spore.p1structure',cse='org.eclipse.elk.alg.spore.p2processingorder',dse='org.eclipse.elk.alg.spore.p3execution',ese='Invalid index: ',fse='org.eclipse.elk.core.alg',gse={331:1},hse={288:1},ise='Make sure its type is registered with the ',jse=' utility class.',kse='true',lse='false',mse="Couldn't clone property '",nse=0.05,ose='org.eclipse.elk.core.options',pse=1.2999999523162842,qse='org.eclipse.elk.box',rse='org.eclipse.elk.box.packingMode',sse='org.eclipse.elk.algorithm',tse='org.eclipse.elk.resolvedAlgorithm',use='org.eclipse.elk.bendPoints',vse='org.eclipse.elk.labelManager',wse='org.eclipse.elk.scaleFactor',xse='org.eclipse.elk.animate',yse='org.eclipse.elk.animTimeFactor',zse='org.eclipse.elk.layoutAncestors',Ase='org.eclipse.elk.maxAnimTime',Bse='org.eclipse.elk.minAnimTime',Cse='org.eclipse.elk.progressBar',Dse='org.eclipse.elk.validateGraph',Ese='org.eclipse.elk.validateOptions',Fse='org.eclipse.elk.zoomToFit',Gse='org.eclipse.elk.font.name',Hse='org.eclipse.elk.font.size',Ise='org.eclipse.elk.edge.type',Jse='partitioning',Kse='nodeLabels',Lse='portAlignment',Mse='nodeSize',Nse='port',Ose='portLabels',Pse='insideSelfLoops',Qse='org.eclipse.elk.fixed',Rse='org.eclipse.elk.random',Sse='port must have a parent node to calculate the port side',Tse='The edge needs to have exactly one edge section. Found: ',Use='org.eclipse.elk.core.util.adapters',Vse='org.eclipse.emf.ecore',Wse='org.eclipse.elk.graph',Xse='EMapPropertyHolder',Yse='ElkBendPoint',Zse='ElkGraphElement',$se='ElkConnectableShape',_se='ElkEdge',ate='ElkEdgeSection',bte='EModelElement',cte='ENamedElement',dte='ElkLabel',ete='ElkNode',fte='ElkPort',gte={92:1,90:1},hte='org.eclipse.emf.common.notify.impl',ite="The feature '",jte="' is not a valid changeable feature",kte='Expecting null',lte="' is not a valid feature",mte='The feature ID',nte=' is not a valid feature ID',ote=32768,pte={105:1,92:1,90:1,56:1,49:1,97:1},qte='org.eclipse.emf.ecore.impl',rte='org.eclipse.elk.graph.impl',ste='Recursive containment not allowed for ',tte="The datatype '",ute="' is not a valid classifier",vte="The value '",wte={190:1,3:1,4:1},xte="The class '",yte='http://www.eclipse.org/elk/ElkGraph',zte=1024,Ate='property',Bte='value',Cte='source',Dte='properties',Ete='identifier',Fte='height',Gte='width',Hte='parent',Ite='text',Jte='children',Kte='hierarchical',Lte='sources',Mte='targets',Nte='sections',Ote='bendPoints',Pte='outgoingShape',Qte='incomingShape',Rte='outgoingSections',Ste='incomingSections',Tte='org.eclipse.emf.common.util',Ute='Severe implementation error in the Json to ElkGraph importer.',Vte='id',Wte='org.eclipse.elk.graph.json',Xte='Unhandled parameter types: ',Yte='startPoint',Zte="An edge must have at least one source and one target (edge id: '",$te="').",_te='Referenced edge section does not exist: ',aue=" (edge id: '",bue='target',cue='sourcePoint',due='targetPoint',eue='group',fue='name',gue='connectableShape cannot be null',hue='edge cannot be null',iue="Passed edge is not 'simple'.",jue='org.eclipse.elk.graph.util',kue="The 'no duplicates' constraint is violated",lue='targetIndex=',mue=', size=',nue='sourceIndex=',oue={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},pue={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},que='logging',rue='measureExecutionTime',sue='parser.parse.1',tue='parser.parse.2',uue='parser.next.1',vue='parser.next.2',wue='parser.next.3',xue='parser.next.4',yue='parser.factor.1',zue='parser.factor.2',Aue='parser.factor.3',Bue='parser.factor.4',Cue='parser.factor.5',Due='parser.factor.6',Eue='parser.atom.1',Fue='parser.atom.2',Gue='parser.atom.3',Hue='parser.atom.4',Iue='parser.atom.5',Jue='parser.cc.1',Kue='parser.cc.2',Lue='parser.cc.3',Mue='parser.cc.5',Nue='parser.cc.6',Oue='parser.cc.7',Pue='parser.cc.8',Que='parser.ope.1',Rue='parser.ope.2',Sue='parser.ope.3',Tue='parser.descape.1',Uue='parser.descape.2',Vue='parser.descape.3',Wue='parser.descape.4',Xue='parser.descape.5',Yue='parser.process.1',Zue='parser.quantifier.1',$ue='parser.quantifier.2',_ue='parser.quantifier.3',ave='parser.quantifier.4',bve='parser.quantifier.5',cve='org.eclipse.emf.common.notify',dve={415:1,672:1},eve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},fve={366:1,143:1},gve='index=',hve={3:1,4:1,5:1,126:1},ive={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},jve={3:1,6:1,4:1,5:1,192:1},kve={3:1,4:1,5:1,165:1,367:1},lve=';/?:@&=+$,',mve='invalid authority: ',nve='EAnnotation',ove='ETypedElement',pve='EStructuralFeature',qve='EAttribute',rve='EClassifier',sve='EEnumLiteral',tve='EGenericType',uve='EOperation',vve='EParameter',wve='EReference',xve='ETypeParameter',yve='org.eclipse.emf.ecore.util',zve={76:1},Ave={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},Bve='org.eclipse.emf.ecore.util.FeatureMap$Entry',Cve=8192,Dve=2048,Eve='byte',Fve='char',Gve='double',Hve='float',Ive='int',Jve='long',Kve='short',Lve='java.lang.Object',Mve={3:1,4:1,5:1,247:1},Nve={3:1,4:1,5:1,673:1},Ove={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},Pve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},Qve='mixed',Rve='http:///org/eclipse/emf/ecore/util/ExtendedMetaData',Sve='kind',Tve={3:1,4:1,5:1,674:1},Uve={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},Vve={20:1,28:1,52:1,14:1,15:1,58:1,69:1},Wve={47:1,125:1,279:1},Xve={72:1,332:1},Yve="The value of type '",Zve="' must be of type '",$ve=1316,_ve='http://www.eclipse.org/emf/2002/Ecore',awe=-32768,bwe='constraints',cwe='baseType',dwe='getEStructuralFeature',ewe='getFeatureID',fwe='feature',gwe='getOperationID',hwe='operation',iwe='defaultValue',jwe='eTypeParameters',kwe='isInstance',lwe='getEEnumLiteral',mwe='eContainingClass',nwe={55:1},owe={3:1,4:1,5:1,119:1},pwe='org.eclipse.emf.ecore.resource',qwe={92:1,90:1,591:1,1935:1},rwe='org.eclipse.emf.ecore.resource.impl',swe='unspecified',twe='simple',uwe='attribute',vwe='attributeWildcard',wwe='element',xwe='elementWildcard',ywe='collapse',zwe='itemType',Awe='namespace',Bwe='##targetNamespace',Cwe='whiteSpace',Dwe='wildcards',Ewe='http://www.eclipse.org/emf/2003/XMLType',Fwe='##any',Gwe='uninitialized',Hwe='The multiplicity constraint is violated',Iwe='org.eclipse.emf.ecore.xml.type',Jwe='ProcessingInstruction',Kwe='SimpleAnyType',Lwe='XMLTypeDocumentRoot',Mwe='org.eclipse.emf.ecore.xml.type.impl',Nwe='INF',Owe='processing',Pwe='ENTITIES_._base',Qwe='minLength',Rwe='ENTITY',Swe='NCName',Twe='IDREFS_._base',Uwe='integer',Vwe='token',Wwe='pattern',Xwe='[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*',Ywe='\\i\\c*',Zwe='[\\i-[:]][\\c-[:]]*',$we='nonPositiveInteger',_we='maxInclusive',axe='NMTOKEN',bxe='NMTOKENS_._base',cxe='nonNegativeInteger',dxe='minInclusive',exe='normalizedString',fxe='unsignedByte',gxe='unsignedInt',hxe='18446744073709551615',ixe='unsignedShort',jxe='processingInstruction',kxe='org.eclipse.emf.ecore.xml.type.internal',lxe=1114111,mxe='Internal Error: shorthands: \\u',nxe='xml:isDigit',oxe='xml:isWord',pxe='xml:isSpace',qxe='xml:isNameChar',rxe='xml:isInitialNameChar',sxe='09\u0660\u0669\u06F0\u06F9\u0966\u096F\u09E6\u09EF\u0A66\u0A6F\u0AE6\u0AEF\u0B66\u0B6F\u0BE7\u0BEF\u0C66\u0C6F\u0CE6\u0CEF\u0D66\u0D6F\u0E50\u0E59\u0ED0\u0ED9\u0F20\u0F29',txe='AZaz\xC0\xD6\xD8\xF6\xF8\u0131\u0134\u013E\u0141\u0148\u014A\u017E\u0180\u01C3\u01CD\u01F0\u01F4\u01F5\u01FA\u0217\u0250\u02A8\u02BB\u02C1\u0386\u0386\u0388\u038A\u038C\u038C\u038E\u03A1\u03A3\u03CE\u03D0\u03D6\u03DA\u03DA\u03DC\u03DC\u03DE\u03DE\u03E0\u03E0\u03E2\u03F3\u0401\u040C\u040E\u044F\u0451\u045C\u045E\u0481\u0490\u04C4\u04C7\u04C8\u04CB\u04CC\u04D0\u04EB\u04EE\u04F5\u04F8\u04F9\u0531\u0556\u0559\u0559\u0561\u0586\u05D0\u05EA\u05F0\u05F2\u0621\u063A\u0641\u064A\u0671\u06B7\u06BA\u06BE\u06C0\u06CE\u06D0\u06D3\u06D5\u06D5\u06E5\u06E6\u0905\u0939\u093D\u093D\u0958\u0961\u0985\u098C\u098F\u0990\u0993\u09A8\u09AA\u09B0\u09B2\u09B2\u09B6\u09B9\u09DC\u09DD\u09DF\u09E1\u09F0\u09F1\u0A05\u0A0A\u0A0F\u0A10\u0A13\u0A28\u0A2A\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59\u0A5C\u0A5E\u0A5E\u0A72\u0A74\u0A85\u0A8B\u0A8D\u0A8D\u0A8F\u0A91\u0A93\u0AA8\u0AAA\u0AB0\u0AB2\u0AB3\u0AB5\u0AB9\u0ABD\u0ABD\u0AE0\u0AE0\u0B05\u0B0C\u0B0F\u0B10\u0B13\u0B28\u0B2A\u0B30\u0B32\u0B33\u0B36\u0B39\u0B3D\u0B3D\u0B5C\u0B5D\u0B5F\u0B61\u0B85\u0B8A\u0B8E\u0B90\u0B92\u0B95\u0B99\u0B9A\u0B9C\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8\u0BAA\u0BAE\u0BB5\u0BB7\u0BB9\u0C05\u0C0C\u0C0E\u0C10\u0C12\u0C28\u0C2A\u0C33\u0C35\u0C39\u0C60\u0C61\u0C85\u0C8C\u0C8E\u0C90\u0C92\u0CA8\u0CAA\u0CB3\u0CB5\u0CB9\u0CDE\u0CDE\u0CE0\u0CE1\u0D05\u0D0C\u0D0E\u0D10\u0D12\u0D28\u0D2A\u0D39\u0D60\u0D61\u0E01\u0E2E\u0E30\u0E30\u0E32\u0E33\u0E40\u0E45\u0E81\u0E82\u0E84\u0E84\u0E87\u0E88\u0E8A\u0E8A\u0E8D\u0E8D\u0E94\u0E97\u0E99\u0E9F\u0EA1\u0EA3\u0EA5\u0EA5\u0EA7\u0EA7\u0EAA\u0EAB\u0EAD\u0EAE\u0EB0\u0EB0\u0EB2\u0EB3\u0EBD\u0EBD\u0EC0\u0EC4\u0F40\u0F47\u0F49\u0F69\u10A0\u10C5\u10D0\u10F6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110B\u110C\u110E\u1112\u113C\u113C\u113E\u113E\u1140\u1140\u114C\u114C\u114E\u114E\u1150\u1150\u1154\u1155\u1159\u1159\u115F\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116D\u116E\u1172\u1173\u1175\u1175\u119E\u119E\u11A8\u11A8\u11AB\u11AB\u11AE\u11AF\u11B7\u11B8\u11BA\u11BA\u11BC\u11C2\u11EB\u11EB\u11F0\u11F0\u11F9\u11F9\u1E00\u1E9B\u1EA0\u1EF9\u1F00\u1F15\u1F18\u1F1D\u1F20\u1F45\u1F48\u1F4D\u1F50\u1F57\u1F59\u1F59\u1F5B\u1F5B\u1F5D\u1F5D\u1F5F\u1F7D\u1F80\u1FB4\u1FB6\u1FBC\u1FBE\u1FBE\u1FC2\u1FC4\u1FC6\u1FCC\u1FD0\u1FD3\u1FD6\u1FDB\u1FE0\u1FEC\u1FF2\u1FF4\u1FF6\u1FFC\u2126\u2126\u212A\u212B\u212E\u212E\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30A1\u30FA\u3105\u312C\u4E00\u9FA5\uAC00\uD7A3',uxe='Private Use',vxe='ASSIGNED',wxe='\x00\x7F\x80\xFF\u0100\u017F\u0180\u024F\u0250\u02AF\u02B0\u02FF\u0300\u036F\u0370\u03FF\u0400\u04FF\u0530\u058F\u0590\u05FF\u0600\u06FF\u0700\u074F\u0780\u07BF\u0900\u097F\u0980\u09FF\u0A00\u0A7F\u0A80\u0AFF\u0B00\u0B7F\u0B80\u0BFF\u0C00\u0C7F\u0C80\u0CFF\u0D00\u0D7F\u0D80\u0DFF\u0E00\u0E7F\u0E80\u0EFF\u0F00\u0FFF\u1000\u109F\u10A0\u10FF\u1100\u11FF\u1200\u137F\u13A0\u13FF\u1400\u167F\u1680\u169F\u16A0\u16FF\u1780\u17FF\u1800\u18AF\u1E00\u1EFF\u1F00\u1FFF\u2000\u206F\u2070\u209F\u20A0\u20CF\u20D0\u20FF\u2100\u214F\u2150\u218F\u2190\u21FF\u2200\u22FF\u2300\u23FF\u2400\u243F\u2440\u245F\u2460\u24FF\u2500\u257F\u2580\u259F\u25A0\u25FF\u2600\u26FF\u2700\u27BF\u2800\u28FF\u2E80\u2EFF\u2F00\u2FDF\u2FF0\u2FFF\u3000\u303F\u3040\u309F\u30A0\u30FF\u3100\u312F\u3130\u318F\u3190\u319F\u31A0\u31BF\u3200\u32FF\u3300\u33FF\u3400\u4DB5\u4E00\u9FFF\uA000\uA48F\uA490\uA4CF\uAC00\uD7A3\uE000\uF8FF\uF900\uFAFF\uFB00\uFB4F\uFB50\uFDFF\uFE20\uFE2F\uFE30\uFE4F\uFE50\uFE6F\uFE70\uFEFE\uFEFF\uFEFF\uFF00\uFFEF',xxe='UNASSIGNED',yxe={3:1,117:1},zxe='org.eclipse.emf.ecore.xml.type.util',Axe={3:1,4:1,5:1,368:1},Bxe='org.eclipse.xtext.xbase.lib',Cxe='Cannot add elements to a Range',Dxe='Cannot set elements in a Range',Exe='Cannot remove elements from a Range',Fxe='locale',Gxe='default',Hxe='user.agent';var _,_bb,Wbb,tbb=-1;$wnd.goog=$wnd.goog||{};$wnd.goog.global=$wnd.goog.global||$wnd;acb();bcb(1,null,{},nb);_.Fb=function ob(a){return mb(this,a)};_.Gb=function qb(){return this.gm};_.Hb=function sb(){return FCb(this)};_.Ib=function ub(){var a;return hdb(rb(this))+'@'+(a=tb(this)>>>0,a.toString(16))};_.equals=function(a){return this.Fb(a)};_.hashCode=function(){return this.Hb()};_.toString=function(){return this.Ib()};var xD,yD,zD;bcb(290,1,{290:1,2026:1},jdb);_.le=function kdb(a){var b;b=new jdb;b.i=4;a>1?(b.c=rdb(this,a-1)):(b.c=this);return b};_.me=function qdb(){fdb(this);return this.b};_.ne=function sdb(){return hdb(this)};_.oe=function udb(){return fdb(this),this.k};_.pe=function wdb(){return (this.i&4)!=0};_.qe=function xdb(){return (this.i&1)!=0};_.Ib=function Adb(){return idb(this)};_.i=0;var edb=1;var SI=mdb(Phe,'Object',1);var AI=mdb(Phe,'Class',290);bcb(1998,1,Qhe);var $D=mdb(Rhe,'Optional',1998);bcb(1170,1998,Qhe,xb);_.Fb=function yb(a){return a===this};_.Hb=function zb(){return 2040732332};_.Ib=function Ab(){return 'Optional.absent()'};_.Jb=function Bb(a){Qb(a);return wb(),vb};var vb;var YD=mdb(Rhe,'Absent',1170);bcb(628,1,{},Gb);var ZD=mdb(Rhe,'Joiner',628);var _D=odb(Rhe,'Predicate');bcb(582,1,{169:1,582:1,3:1,45:1},Yb);_.Mb=function ac(a){return Xb(this,a)};_.Lb=function Zb(a){return Xb(this,a)};_.Fb=function $b(a){var b;if(JD(a,582)){b=BD(a,582);return At(this.a,b.a)}return false};_.Hb=function _b(){return qmb(this.a)+306654252};_.Ib=function bc(){return Wb(this.a)};var aE=mdb(Rhe,'Predicates/AndPredicate',582);bcb(408,1998,{408:1,3:1},cc);_.Fb=function dc(a){var b;if(JD(a,408)){b=BD(a,408);return pb(this.a,b.a)}return false};_.Hb=function ec(){return 1502476572+tb(this.a)};_.Ib=function fc(){return Whe+this.a+')'};_.Jb=function gc(a){return new cc(Rb(a.Kb(this.a),'the Function passed to Optional.transform() must not return null.'))};var bE=mdb(Rhe,'Present',408);bcb(198,1,Yhe);_.Nb=function kc(a){Rrb(this,a)};_.Qb=function lc(){jc()};var MH=mdb(Zhe,'UnmodifiableIterator',198);bcb(1978,198,$he);_.Qb=function nc(){jc()};_.Rb=function mc(a){throw vbb(new bgb)};_.Wb=function oc(a){throw vbb(new bgb)};var NH=mdb(Zhe,'UnmodifiableListIterator',1978);bcb(386,1978,$he);_.Ob=function rc(){return this.c<this.d};_.Sb=function sc(){return this.c>0};_.Pb=function tc(){if(this.c>=this.d){throw vbb(new utb)}return this.Xb(this.c++)};_.Tb=function uc(){return this.c};_.Ub=function vc(){if(this.c<=0){throw vbb(new utb)}return this.Xb(--this.c)};_.Vb=function wc(){return this.c-1};_.c=0;_.d=0;var cE=mdb(Zhe,'AbstractIndexedListIterator',386);bcb(699,198,Yhe);_.Ob=function Ac(){return xc(this)};_.Pb=function Bc(){return yc(this)};_.e=1;var dE=mdb(Zhe,'AbstractIterator',699);bcb(1986,1,{224:1});_.Zb=function Hc(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.Fb=function Ic(a){return hw(this,a)};_.Hb=function Jc(){return tb(this.Zb())};_.dc=function Kc(){return this.gc()==0};_.ec=function Lc(){return Ec(this)};_.Ib=function Mc(){return fcb(this.Zb())};var IE=mdb(Zhe,'AbstractMultimap',1986);bcb(726,1986,_he);_.$b=function Xc(){Nc(this)};_._b=function Yc(a){return Oc(this,a)};_.ac=function Zc(){return new ne(this,this.c)};_.ic=function $c(a){return this.hc()};_.bc=function _c(){return new zf(this,this.c)};_.jc=function ad(){return this.mc(this.hc())};_.kc=function bd(){return new Hd(this)};_.lc=function cd(){return Yj(this.c.vc().Nc(),new $g,64,this.d)};_.cc=function dd(a){return Qc(this,a)};_.fc=function gd(a){return Sc(this,a)};_.gc=function hd(){return this.d};_.mc=function jd(a){return mmb(),new lnb(a)};_.nc=function kd(){return new Dd(this)};_.oc=function ld(){return Yj(this.c.Cc().Nc(),new Fd,64,this.d)};_.pc=function md(a,b){return new dg(this,a,b,null)};_.d=0;var DE=mdb(Zhe,'AbstractMapBasedMultimap',726);bcb(1631,726,_he);_.hc=function pd(){return new Skb(this.a)};_.jc=function qd(){return mmb(),mmb(),jmb};_.cc=function sd(a){return BD(Qc(this,a),15)};_.fc=function ud(a){return BD(Sc(this,a),15)};_.Zb=function od(){return nd(this)};_.Fb=function rd(a){return hw(this,a)};_.qc=function td(a){return BD(Qc(this,a),15)};_.rc=function vd(a){return BD(Sc(this,a),15)};_.mc=function wd(a){return vmb(BD(a,15))};_.pc=function xd(a,b){return Vc(this,a,BD(b,15),null)};var eE=mdb(Zhe,'AbstractListMultimap',1631);bcb(732,1,aie);_.Nb=function zd(a){Rrb(this,a)};_.Ob=function Ad(){return this.c.Ob()||this.e.Ob()};_.Pb=function Bd(){var a;if(!this.e.Ob()){a=BD(this.c.Pb(),42);this.b=a.cd();this.a=BD(a.dd(),14);this.e=this.a.Kc()}return this.sc(this.b,this.e.Pb())};_.Qb=function Cd(){this.e.Qb();this.a.dc()&&this.c.Qb();--this.d.d};var mE=mdb(Zhe,'AbstractMapBasedMultimap/Itr',732);bcb(1099,732,aie,Dd);_.sc=function Ed(a,b){return b};var fE=mdb(Zhe,'AbstractMapBasedMultimap/1',1099);bcb(1100,1,{},Fd);_.Kb=function Gd(a){return BD(a,14).Nc()};var gE=mdb(Zhe,'AbstractMapBasedMultimap/1methodref$spliterator$Type',1100);bcb(1101,732,aie,Hd);_.sc=function Id(a,b){return new Wo(a,b)};var hE=mdb(Zhe,'AbstractMapBasedMultimap/2',1101);var DK=odb(bie,'Map');bcb(1967,1,cie);_.wc=function Td(a){stb(this,a)};_.yc=function $d(a,b,c){return ttb(this,a,b,c)};_.$b=function Od(){this.vc().$b()};_.tc=function Pd(a){return Jd(this,a)};_._b=function Qd(a){return !!Kd(this,a,false)};_.uc=function Rd(a){var b,c,d;for(c=this.vc().Kc();c.Ob();){b=BD(c.Pb(),42);d=b.dd();if(PD(a)===PD(d)||a!=null&&pb(a,d)){return true}}return false};_.Fb=function Sd(a){var b,c,d;if(a===this){return true}if(!JD(a,83)){return false}d=BD(a,83);if(this.gc()!=d.gc()){return false}for(c=d.vc().Kc();c.Ob();){b=BD(c.Pb(),42);if(!this.tc(b)){return false}}return true};_.xc=function Ud(a){return Wd(Kd(this,a,false))};_.Hb=function Xd(){return pmb(this.vc())};_.dc=function Yd(){return this.gc()==0};_.ec=function Zd(){return new Pib(this)};_.zc=function _d(a,b){throw vbb(new cgb('Put not supported on this map'))};_.Ac=function ae(a){Ld(this,a)};_.Bc=function be(a){return Wd(Kd(this,a,true))};_.gc=function ce(){return this.vc().gc()};_.Ib=function de(){return Md(this)};_.Cc=function ee(){return new $ib(this)};var sJ=mdb(bie,'AbstractMap',1967);bcb(1987,1967,cie);_.bc=function ge(){return new rf(this)};_.vc=function he(){return fe(this)};_.ec=function ie(){var a;a=this.g;return !a?(this.g=this.bc()):a};_.Cc=function je(){var a;a=this.i;return !a?(this.i=new Zv(this)):a};var bH=mdb(Zhe,'Maps/ViewCachingAbstractMap',1987);bcb(389,1987,cie,ne);_.xc=function se(a){return ke(this,a)};_.Bc=function ve(a){return le(this,a)};_.$b=function oe(){this.d==this.e.c?this.e.$b():ir(new mf(this))};_._b=function pe(a){return Gv(this.d,a)};_.Ec=function qe(){return new df(this)};_.Dc=function(){return this.Ec()};_.Fb=function re(a){return this===a||pb(this.d,a)};_.Hb=function te(){return tb(this.d)};_.ec=function ue(){return this.e.ec()};_.gc=function we(){return this.d.gc()};_.Ib=function xe(){return fcb(this.d)};var lE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap',389);var KI=odb(Phe,'Iterable');bcb(28,1,die);_.Jc=function Le(a){reb(this,a)};_.Lc=function Ne(){return this.Oc()};_.Nc=function Pe(){return new Kub(this,0)};_.Oc=function Qe(){return new YAb(null,this.Nc())};_.Fc=function Ge(a){throw vbb(new cgb('Add not supported on this collection'))};_.Gc=function He(a){return ye(this,a)};_.$b=function Ie(){Ae(this)};_.Hc=function Je(a){return ze(this,a,false)};_.Ic=function Ke(a){return Be(this,a)};_.dc=function Me(){return this.gc()==0};_.Mc=function Oe(a){return ze(this,a,true)};_.Pc=function Re(){return De(this)};_.Qc=function Se(a){return Ee(this,a)};_.Ib=function Te(){return Fe(this)};var dJ=mdb(bie,'AbstractCollection',28);var LK=odb(bie,'Set');bcb(eie,28,fie);_.Nc=function Ye(){return new Kub(this,1)};_.Fb=function We(a){return Ue(this,a)};_.Hb=function Xe(){return pmb(this)};var zJ=mdb(bie,'AbstractSet',eie);bcb(1970,eie,fie);var BH=mdb(Zhe,'Sets/ImprovedAbstractSet',1970);bcb(1971,1970,fie);_.$b=function $e(){this.Rc().$b()};_.Hc=function _e(a){return Ze(this,a)};_.dc=function af(){return this.Rc().dc()};_.Mc=function bf(a){var b;if(this.Hc(a)){b=BD(a,42);return this.Rc().ec().Mc(b.cd())}return false};_.gc=function cf(){return this.Rc().gc()};var WG=mdb(Zhe,'Maps/EntrySet',1971);bcb(1097,1971,fie,df);_.Hc=function ef(a){return Ck(this.a.d.vc(),a)};_.Kc=function ff(){return new mf(this.a)};_.Rc=function gf(){return this.a};_.Mc=function hf(a){var b;if(!Ck(this.a.d.vc(),a)){return false}b=BD(a,42);Tc(this.a.e,b.cd());return true};_.Nc=function jf(){return $j(this.a.d.vc().Nc(),new kf(this.a))};var jE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries',1097);bcb(1098,1,{},kf);_.Kb=function lf(a){return me(this.a,BD(a,42))};var iE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type',1098);bcb(730,1,aie,mf);_.Nb=function nf(a){Rrb(this,a)};_.Pb=function pf(){var a;return a=BD(this.b.Pb(),42),this.a=BD(a.dd(),14),me(this.c,a)};_.Ob=function of(){return this.b.Ob()};_.Qb=function qf(){Vb(!!this.a);this.b.Qb();this.c.e.d-=this.a.gc();this.a.$b();this.a=null};var kE=mdb(Zhe,'AbstractMapBasedMultimap/AsMap/AsMapIterator',730);bcb(532,1970,fie,rf);_.$b=function sf(){this.b.$b()};_.Hc=function tf(a){return this.b._b(a)};_.Jc=function uf(a){Qb(a);this.b.wc(new Xv(a))};_.dc=function vf(){return this.b.dc()};_.Kc=function wf(){return new Mv(this.b.vc().Kc())};_.Mc=function xf(a){if(this.b._b(a)){this.b.Bc(a);return true}return false};_.gc=function yf(){return this.b.gc()};var $G=mdb(Zhe,'Maps/KeySet',532);bcb(318,532,fie,zf);_.$b=function Af(){var a;ir((a=this.b.vc().Kc(),new Hf(this,a)))};_.Ic=function Bf(a){return this.b.ec().Ic(a)};_.Fb=function Cf(a){return this===a||pb(this.b.ec(),a)};_.Hb=function Df(){return tb(this.b.ec())};_.Kc=function Ef(){var a;return a=this.b.vc().Kc(),new Hf(this,a)};_.Mc=function Ff(a){var b,c;c=0;b=BD(this.b.Bc(a),14);if(b){c=b.gc();b.$b();this.a.d-=c}return c>0};_.Nc=function Gf(){return this.b.ec().Nc()};var oE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet',318);bcb(731,1,aie,Hf);_.Nb=function If(a){Rrb(this,a)};_.Ob=function Jf(){return this.c.Ob()};_.Pb=function Kf(){this.a=BD(this.c.Pb(),42);return this.a.cd()};_.Qb=function Lf(){var a;Vb(!!this.a);a=BD(this.a.dd(),14);this.c.Qb();this.b.a.d-=a.gc();a.$b();this.a=null};var nE=mdb(Zhe,'AbstractMapBasedMultimap/KeySet/1',731);bcb(491,389,{83:1,161:1},Mf);_.bc=function Nf(){return this.Sc()};_.ec=function Pf(){return this.Tc()};_.Sc=function Of(){return new Yf(this.c,this.Uc())};_.Tc=function Qf(){var a;return a=this.b,!a?(this.b=this.Sc()):a};_.Uc=function Rf(){return BD(this.d,161)};var sE=mdb(Zhe,'AbstractMapBasedMultimap/SortedAsMap',491);bcb(542,491,gie,Sf);_.bc=function Tf(){return new $f(this.a,BD(BD(this.d,161),171))};_.Sc=function Uf(){return new $f(this.a,BD(BD(this.d,161),171))};_.ec=function Vf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Tc=function Wf(){var a;return a=this.b,BD(!a?(this.b=new $f(this.a,BD(BD(this.d,161),171))):a,271)};_.Uc=function Xf(){return BD(BD(this.d,161),171)};var pE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableAsMap',542);bcb(490,318,hie,Yf);_.Nc=function Zf(){return this.b.ec().Nc()};var tE=mdb(Zhe,'AbstractMapBasedMultimap/SortedKeySet',490);bcb(388,490,iie,$f);var qE=mdb(Zhe,'AbstractMapBasedMultimap/NavigableKeySet',388);bcb(541,28,die,dg);_.Fc=function eg(a){var b,c;ag(this);c=this.d.dc();b=this.d.Fc(a);if(b){++this.f.d;c&&_f(this)}return b};_.Gc=function fg(a){var b,c,d;if(a.dc()){return false}d=(ag(this),this.d.gc());b=this.d.Gc(a);if(b){c=this.d.gc();this.f.d+=c-d;d==0&&_f(this)}return b};_.$b=function gg(){var a;a=(ag(this),this.d.gc());if(a==0){return}this.d.$b();this.f.d-=a;bg(this)};_.Hc=function hg(a){ag(this);return this.d.Hc(a)};_.Ic=function ig(a){ag(this);return this.d.Ic(a)};_.Fb=function jg(a){if(a===this){return true}ag(this);return pb(this.d,a)};_.Hb=function kg(){ag(this);return tb(this.d)};_.Kc=function lg(){ag(this);return new Gg(this)};_.Mc=function mg(a){var b;ag(this);b=this.d.Mc(a);if(b){--this.f.d;bg(this)}return b};_.gc=function ng(){return cg(this)};_.Nc=function og(){return ag(this),this.d.Nc()};_.Ib=function pg(){ag(this);return fcb(this.d)};var vE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection',541);var yK=odb(bie,'List');bcb(728,541,{20:1,28:1,14:1,15:1},qg);_.ad=function zg(a){ktb(this,a)};_.Nc=function Ag(){return ag(this),this.d.Nc()};_.Vc=function rg(a,b){var c;ag(this);c=this.d.dc();BD(this.d,15).Vc(a,b);++this.a.d;c&&_f(this)};_.Wc=function sg(a,b){var c,d,e;if(b.dc()){return false}e=(ag(this),this.d.gc());c=BD(this.d,15).Wc(a,b);if(c){d=this.d.gc();this.a.d+=d-e;e==0&&_f(this)}return c};_.Xb=function tg(a){ag(this);return BD(this.d,15).Xb(a)};_.Xc=function ug(a){ag(this);return BD(this.d,15).Xc(a)};_.Yc=function vg(){ag(this);return new Mg(this)};_.Zc=function wg(a){ag(this);return new Ng(this,a)};_.$c=function xg(a){var b;ag(this);b=BD(this.d,15).$c(a);--this.a.d;bg(this);return b};_._c=function yg(a,b){ag(this);return BD(this.d,15)._c(a,b)};_.bd=function Bg(a,b){ag(this);return Vc(this.a,this.e,BD(this.d,15).bd(a,b),!this.b?this:this.b)};var xE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList',728);bcb(1096,728,{20:1,28:1,14:1,15:1,54:1},Cg);var rE=mdb(Zhe,'AbstractMapBasedMultimap/RandomAccessWrappedList',1096);bcb(620,1,aie,Gg);_.Nb=function Ig(a){Rrb(this,a)};_.Ob=function Jg(){Fg(this);return this.b.Ob()};_.Pb=function Kg(){Fg(this);return this.b.Pb()};_.Qb=function Lg(){Eg(this)};var uE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedCollection/WrappedIterator',620);bcb(729,620,jie,Mg,Ng);_.Qb=function Tg(){Eg(this)};_.Rb=function Og(a){var b;b=cg(this.a)==0;(Fg(this),BD(this.b,125)).Rb(a);++this.a.a.d;b&&_f(this.a)};_.Sb=function Pg(){return (Fg(this),BD(this.b,125)).Sb()};_.Tb=function Qg(){return (Fg(this),BD(this.b,125)).Tb()};_.Ub=function Rg(){return (Fg(this),BD(this.b,125)).Ub()};_.Vb=function Sg(){return (Fg(this),BD(this.b,125)).Vb()};_.Wb=function Ug(a){(Fg(this),BD(this.b,125)).Wb(a)};var wE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedList/WrappedListIterator',729);bcb(727,541,hie,Vg);_.Nc=function Wg(){return ag(this),this.d.Nc()};var AE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSortedSet',727);bcb(1095,727,iie,Xg);var yE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedNavigableSet',1095);bcb(1094,541,fie,Yg);_.Nc=function Zg(){return ag(this),this.d.Nc()};var zE=mdb(Zhe,'AbstractMapBasedMultimap/WrappedSet',1094);bcb(1103,1,{},$g);_.Kb=function _g(a){return fd(BD(a,42))};var BE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$1$Type',1103);bcb(1102,1,{},ah);_.Kb=function bh(a){return new Wo(this.a,a)};var CE=mdb(Zhe,'AbstractMapBasedMultimap/lambda$2$Type',1102);var CK=odb(bie,'Map/Entry');bcb(345,1,kie);_.Fb=function dh(a){var b;if(JD(a,42)){b=BD(a,42);return Hb(this.cd(),b.cd())&&Hb(this.dd(),b.dd())}return false};_.Hb=function eh(){var a,b;a=this.cd();b=this.dd();return (a==null?0:tb(a))^(b==null?0:tb(b))};_.ed=function fh(a){throw vbb(new bgb)};_.Ib=function gh(){return this.cd()+'='+this.dd()};var EE=mdb(Zhe,lie,345);bcb(1988,28,die);_.$b=function hh(){this.fd().$b()};_.Hc=function ih(a){var b;if(JD(a,42)){b=BD(a,42);return Cc(this.fd(),b.cd(),b.dd())}return false};_.Mc=function jh(a){var b;if(JD(a,42)){b=BD(a,42);return Gc(this.fd(),b.cd(),b.dd())}return false};_.gc=function kh(){return this.fd().d};var fH=mdb(Zhe,'Multimaps/Entries',1988);bcb(733,1988,die,lh);_.Kc=function mh(){return this.a.kc()};_.fd=function nh(){return this.a};_.Nc=function oh(){return this.a.lc()};var FE=mdb(Zhe,'AbstractMultimap/Entries',733);bcb(734,733,fie,ph);_.Nc=function sh(){return this.a.lc()};_.Fb=function qh(a){return Ax(this,a)};_.Hb=function rh(){return Bx(this)};var GE=mdb(Zhe,'AbstractMultimap/EntrySet',734);bcb(735,28,die,th);_.$b=function uh(){this.a.$b()};_.Hc=function vh(a){return Dc(this.a,a)};_.Kc=function wh(){return this.a.nc()};_.gc=function xh(){return this.a.d};_.Nc=function yh(){return this.a.oc()};var HE=mdb(Zhe,'AbstractMultimap/Values',735);bcb(1989,28,{835:1,20:1,28:1,14:1});_.Jc=function Gh(a){Qb(a);Ah(this).Jc(new Xw(a))};_.Nc=function Kh(){var a;return a=Ah(this).Nc(),Yj(a,new cx,64|a.qd()&1296,this.a.d)};_.Fc=function Ch(a){zh();return true};_.Gc=function Dh(a){return Qb(this),Qb(a),JD(a,543)?Zw(BD(a,835)):!a.dc()&&fr(this,a.Kc())};_.Hc=function Eh(a){var b;return b=BD(Hv(nd(this.a),a),14),(!b?0:b.gc())>0};_.Fb=function Fh(a){return $w(this,a)};_.Hb=function Hh(){return tb(Ah(this))};_.dc=function Ih(){return Ah(this).dc()};_.Mc=function Jh(a){return Bw(this,a,1)>0};_.Ib=function Lh(){return fcb(Ah(this))};var KE=mdb(Zhe,'AbstractMultiset',1989);bcb(1991,1970,fie);_.$b=function Mh(){Nc(this.a.a)};_.Hc=function Nh(a){var b,c;if(JD(a,492)){c=BD(a,416);if(BD(c.a.dd(),14).gc()<=0){return false}b=Aw(this.a,c.a.cd());return b==BD(c.a.dd(),14).gc()}return false};_.Mc=function Oh(a){var b,c,d,e;if(JD(a,492)){c=BD(a,416);b=c.a.cd();d=BD(c.a.dd(),14).gc();if(d!=0){e=this.a;return ax(e,b,d)}}return false};var pH=mdb(Zhe,'Multisets/EntrySet',1991);bcb(1109,1991,fie,Ph);_.Kc=function Qh(){return new Lw(fe(nd(this.a.a)).Kc())};_.gc=function Rh(){return nd(this.a.a).gc()};var JE=mdb(Zhe,'AbstractMultiset/EntrySet',1109);bcb(619,726,_he);_.hc=function Uh(){return this.gd()};_.jc=function Vh(){return this.hd()};_.cc=function Yh(a){return this.jd(a)};_.fc=function $h(a){return this.kd(a)};_.Zb=function Th(){var a;return a=this.f,!a?(this.f=this.ac()):a};_.hd=function Wh(){return mmb(),mmb(),lmb};_.Fb=function Xh(a){return hw(this,a)};_.jd=function Zh(a){return BD(Qc(this,a),21)};_.kd=function _h(a){return BD(Sc(this,a),21)};_.mc=function ai(a){return mmb(),new zob(BD(a,21))};_.pc=function bi(a,b){return new Yg(this,a,BD(b,21))};var LE=mdb(Zhe,'AbstractSetMultimap',619);bcb(1657,619,_he);_.hc=function ei(){return new Hxb(this.b)};_.gd=function fi(){return new Hxb(this.b)};_.jc=function gi(){return Ix(new Hxb(this.b))};_.hd=function hi(){return Ix(new Hxb(this.b))};_.cc=function ii(a){return BD(BD(Qc(this,a),21),84)};_.jd=function ji(a){return BD(BD(Qc(this,a),21),84)};_.fc=function ki(a){return BD(BD(Sc(this,a),21),84)};_.kd=function li(a){return BD(BD(Sc(this,a),21),84)};_.mc=function mi(a){return JD(a,271)?Ix(BD(a,271)):(mmb(),new Zob(BD(a,84)))};_.Zb=function di(){var a;return a=this.f,!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a};_.pc=function ni(a,b){return JD(b,271)?new Xg(this,a,BD(b,271)):new Vg(this,a,BD(b,84))};var NE=mdb(Zhe,'AbstractSortedSetMultimap',1657);bcb(1658,1657,_he);_.Zb=function pi(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.ec=function ri(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.bc=function qi(){return JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)};var ME=mdb(Zhe,'AbstractSortedKeySortedSetMultimap',1658);bcb(2010,1,{1947:1});_.Fb=function si(a){return zy(this,a)};_.Hb=function ti(){var a;return pmb((a=this.g,!a?(this.g=new vi(this)):a))};_.Ib=function ui(){var a;return Md((a=this.f,!a?(this.f=new Rj(this)):a))};var QE=mdb(Zhe,'AbstractTable',2010);bcb(665,eie,fie,vi);_.$b=function wi(){Pi()};_.Hc=function xi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Ck(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.Kc=function yi(){return Ni(this.a)};_.Mc=function zi(a){var b,c;if(JD(a,468)){b=BD(a,682);c=BD(Hv(Vi(this.a),Em(b.c.e,b.b)),83);return !!c&&Dk(c.vc(),new Wo(Em(b.c.c,b.a),Mi(b.c,b.b,b.a)))}return false};_.gc=function Ai(){return Xi(this.a)};_.Nc=function Bi(){return Oi(this.a)};var OE=mdb(Zhe,'AbstractTable/CellSet',665);bcb(1928,28,die,Ci);_.$b=function Di(){Pi()};_.Hc=function Ei(a){return Qi(this.a,a)};_.Kc=function Fi(){return Zi(this.a)};_.gc=function Gi(){return Xi(this.a)};_.Nc=function Hi(){return $i(this.a)};var PE=mdb(Zhe,'AbstractTable/Values',1928);bcb(1632,1631,_he);var RE=mdb(Zhe,'ArrayListMultimapGwtSerializationDependencies',1632);bcb(513,1632,_he,Ji,Ki);_.hc=function Li(){return new Skb(this.a)};_.a=0;var SE=mdb(Zhe,'ArrayListMultimap',513);bcb(664,2010,{664:1,1947:1,3:1},_i);var cF=mdb(Zhe,'ArrayTable',664);bcb(1924,386,$he,aj);_.Xb=function bj(a){return new hj(this.a,a)};var TE=mdb(Zhe,'ArrayTable/1',1924);bcb(1925,1,{},cj);_.ld=function dj(a){return new hj(this.a,a)};var UE=mdb(Zhe,'ArrayTable/1methodref$getCell$Type',1925);bcb(2011,1,{682:1});_.Fb=function ej(a){var b;if(a===this){return true}if(JD(a,468)){b=BD(a,682);return Hb(Em(this.c.e,this.b),Em(b.c.e,b.b))&&Hb(Em(this.c.c,this.a),Em(b.c.c,b.a))&&Hb(Mi(this.c,this.b,this.a),Mi(b.c,b.b,b.a))}return false};_.Hb=function fj(){return Hlb(OC(GC(SI,1),Uhe,1,5,[Em(this.c.e,this.b),Em(this.c.c,this.a),Mi(this.c,this.b,this.a)]))};_.Ib=function gj(){return '('+Em(this.c.e,this.b)+','+Em(this.c.c,this.a)+')='+Mi(this.c,this.b,this.a)};var JH=mdb(Zhe,'Tables/AbstractCell',2011);bcb(468,2011,{468:1,682:1},hj);_.a=0;_.b=0;_.d=0;var VE=mdb(Zhe,'ArrayTable/2',468);bcb(1927,1,{},ij);_.ld=function jj(a){return Ti(this.a,a)};var WE=mdb(Zhe,'ArrayTable/2methodref$getValue$Type',1927);bcb(1926,386,$he,kj);_.Xb=function lj(a){return Ti(this.a,a)};var XE=mdb(Zhe,'ArrayTable/3',1926);bcb(1979,1967,cie);_.$b=function nj(){ir(this.kc())};_.vc=function oj(){return new Sv(this)};_.lc=function pj(){return new Mub(this.kc(),this.gc())};var YG=mdb(Zhe,'Maps/IteratorBasedAbstractMap',1979);bcb(828,1979,cie);_.$b=function tj(){throw vbb(new bgb)};_._b=function uj(a){return sn(this.c,a)};_.kc=function vj(){return new Jj(this,this.c.b.c.gc())};_.lc=function wj(){return Zj(this.c.b.c.gc(),16,new Dj(this))};_.xc=function xj(a){var b;b=BD(tn(this.c,a),19);return !b?null:this.nd(b.a)};_.dc=function yj(){return this.c.b.c.dc()};_.ec=function zj(){return Xm(this.c)};_.zc=function Aj(a,b){var c;c=BD(tn(this.c,a),19);if(!c){throw vbb(new Wdb(this.md()+' '+a+' not in '+Xm(this.c)))}return this.od(c.a,b)};_.Bc=function Bj(a){throw vbb(new bgb)};_.gc=function Cj(){return this.c.b.c.gc()};var _E=mdb(Zhe,'ArrayTable/ArrayMap',828);bcb(1923,1,{},Dj);_.ld=function Ej(a){return qj(this.a,a)};var YE=mdb(Zhe,'ArrayTable/ArrayMap/0methodref$getEntry$Type',1923);bcb(1921,345,kie,Fj);_.cd=function Gj(){return rj(this.a,this.b)};_.dd=function Hj(){return this.a.nd(this.b)};_.ed=function Ij(a){return this.a.od(this.b,a)};_.b=0;var ZE=mdb(Zhe,'ArrayTable/ArrayMap/1',1921);bcb(1922,386,$he,Jj);_.Xb=function Kj(a){return qj(this.a,a)};var $E=mdb(Zhe,'ArrayTable/ArrayMap/2',1922);bcb(1920,828,cie,Lj);_.md=function Mj(){return 'Column'};_.nd=function Nj(a){return Mi(this.b,this.a,a)};_.od=function Oj(a,b){return Wi(this.b,this.a,a,b)};_.a=0;var bF=mdb(Zhe,'ArrayTable/Row',1920);bcb(829,828,cie,Rj);_.nd=function Tj(a){return new Lj(this.a,a)};_.zc=function Uj(a,b){return BD(b,83),Pj()};_.od=function Vj(a,b){return BD(b,83),Qj()};_.md=function Sj(){return 'Row'};var aF=mdb(Zhe,'ArrayTable/RowMap',829);bcb(1120,1,pie,_j);_.qd=function ak(){return this.a.qd()&-262};_.rd=function bk(){return this.a.rd()};_.Nb=function ck(a){this.a.Nb(new gk(a,this.b))};_.sd=function dk(a){return this.a.sd(new ek(a,this.b))};var lF=mdb(Zhe,'CollectSpliterators/1',1120);bcb(1121,1,qie,ek);_.td=function fk(a){this.a.td(this.b.Kb(a))};var dF=mdb(Zhe,'CollectSpliterators/1/lambda$0$Type',1121);bcb(1122,1,qie,gk);_.td=function hk(a){this.a.td(this.b.Kb(a))};var eF=mdb(Zhe,'CollectSpliterators/1/lambda$1$Type',1122);bcb(1123,1,pie,jk);_.qd=function kk(){return this.a};_.rd=function lk(){!!this.d&&(this.b=Deb(this.b,this.d.rd()));return Deb(this.b,0)};_.Nb=function mk(a){if(this.d){this.d.Nb(a);this.d=null}this.c.Nb(new rk(this.e,a));this.b=0};_.sd=function ok(a){while(true){if(!!this.d&&this.d.sd(a)){Kbb(this.b,rie)&&(this.b=Qbb(this.b,1));return true}else{this.d=null}if(!this.c.sd(new pk(this,this.e))){return false}}};_.a=0;_.b=0;var hF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator',1123);bcb(1124,1,qie,pk);_.td=function qk(a){ik(this.a,this.b,a)};var fF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$0$Type',1124);bcb(1125,1,qie,rk);_.td=function sk(a){nk(this.b,this.a,a)};var gF=mdb(Zhe,'CollectSpliterators/1FlatMapSpliterator/lambda$1$Type',1125);bcb(1117,1,pie,tk);_.qd=function uk(){return 16464|this.b};_.rd=function vk(){return this.a.rd()};_.Nb=function wk(a){this.a.xe(new Ak(a,this.c))};_.sd=function xk(a){return this.a.ye(new yk(a,this.c))};_.b=0;var kF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics',1117);bcb(1118,1,sie,yk);_.ud=function zk(a){this.a.td(this.b.ld(a))};var iF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$0$Type',1118);bcb(1119,1,sie,Ak);_.ud=function Bk(a){this.a.td(this.b.ld(a))};var jF=mdb(Zhe,'CollectSpliterators/1WithCharacteristics/lambda$1$Type',1119);bcb(245,1,tie);_.wd=function Hk(a){return this.vd(BD(a,245))};_.vd=function Gk(a){var b;if(a==(_k(),$k)){return 1}if(a==(Lk(),Kk)){return -1}b=(ex(),Fcb(this.a,a.a));if(b!=0){return b}return JD(this,519)==JD(a,519)?0:JD(this,519)?1:-1};_.zd=function Ik(){return this.a};_.Fb=function Jk(a){return Ek(this,a)};var qF=mdb(Zhe,'Cut',245);bcb(1761,245,tie,Mk);_.vd=function Nk(a){return a==this?0:1};_.xd=function Ok(a){throw vbb(new xcb)};_.yd=function Pk(a){a.a+='+\u221E)'};_.zd=function Qk(){throw vbb(new Zdb(uie))};_.Hb=function Rk(){return Zfb(),kCb(this)};_.Ad=function Sk(a){return false};_.Ib=function Tk(){return '+\u221E'};var Kk;var mF=mdb(Zhe,'Cut/AboveAll',1761);bcb(519,245,{245:1,519:1,3:1,35:1},Uk);_.xd=function Vk(a){Pfb((a.a+='(',a),this.a)};_.yd=function Wk(a){Kfb(Pfb(a,this.a),93)};_.Hb=function Xk(){return ~tb(this.a)};_.Ad=function Yk(a){return ex(),Fcb(this.a,a)<0};_.Ib=function Zk(){return '/'+this.a+'\\'};var nF=mdb(Zhe,'Cut/AboveValue',519);bcb(1760,245,tie,al);_.vd=function bl(a){return a==this?0:-1};_.xd=function cl(a){a.a+='(-\u221E'};_.yd=function dl(a){throw vbb(new xcb)};_.zd=function el(){throw vbb(new Zdb(uie))};_.Hb=function fl(){return Zfb(),kCb(this)};_.Ad=function gl(a){return true};_.Ib=function hl(){return '-\u221E'};var $k;var oF=mdb(Zhe,'Cut/BelowAll',1760);bcb(1762,245,tie,il);_.xd=function jl(a){Pfb((a.a+='[',a),this.a)};_.yd=function kl(a){Kfb(Pfb(a,this.a),41)};_.Hb=function ll(){return tb(this.a)};_.Ad=function ml(a){return ex(),Fcb(this.a,a)<=0};_.Ib=function nl(){return '\\'+this.a+'/'};var pF=mdb(Zhe,'Cut/BelowValue',1762);bcb(537,1,vie);_.Jc=function ql(a){reb(this,a)};_.Ib=function rl(){return tr(BD(Rb(this,'use Optional.orNull() instead of Optional.or(null)'),20).Kc())};var uF=mdb(Zhe,'FluentIterable',537);bcb(433,537,vie,sl);_.Kc=function tl(){return new Sr(ur(this.a.Kc(),new Sq))};var rF=mdb(Zhe,'FluentIterable/2',433);bcb(1046,537,vie,vl);_.Kc=function wl(){return ul(this)};var tF=mdb(Zhe,'FluentIterable/3',1046);bcb(708,386,$he,xl);_.Xb=function yl(a){return this.a[a].Kc()};var sF=mdb(Zhe,'FluentIterable/3/1',708);bcb(1972,1,{});_.Ib=function zl(){return fcb(this.Bd().b)};var BF=mdb(Zhe,'ForwardingObject',1972);bcb(1973,1972,wie);_.Bd=function Fl(){return this.Cd()};_.Jc=function Gl(a){reb(this,a)};_.Lc=function Jl(){return this.Oc()};_.Nc=function Ml(){return new Kub(this,0)};_.Oc=function Nl(){return new YAb(null,this.Nc())};_.Fc=function Al(a){return this.Cd(),enb()};_.Gc=function Bl(a){return this.Cd(),fnb()};_.$b=function Cl(){this.Cd(),gnb()};_.Hc=function Dl(a){return this.Cd().Hc(a)};_.Ic=function El(a){return this.Cd().Ic(a)};_.dc=function Hl(){return this.Cd().b.dc()};_.Kc=function Il(){return this.Cd().Kc()};_.Mc=function Kl(a){return this.Cd(),jnb()};_.gc=function Ll(){return this.Cd().b.gc()};_.Pc=function Ol(){return this.Cd().Pc()};_.Qc=function Pl(a){return this.Cd().Qc(a)};var vF=mdb(Zhe,'ForwardingCollection',1973);bcb(1980,28,xie);_.Kc=function Xl(){return this.Ed()};_.Fc=function Sl(a){throw vbb(new bgb)};_.Gc=function Tl(a){throw vbb(new bgb)};_.$b=function Ul(){throw vbb(new bgb)};_.Hc=function Vl(a){return a!=null&&ze(this,a,false)};_.Dd=function Wl(){switch(this.gc()){case 0:return im(),im(),hm;case 1:return im(),new my(Qb(this.Ed().Pb()));default:return new px(this,this.Pc());}};_.Mc=function Yl(a){throw vbb(new bgb)};var WF=mdb(Zhe,'ImmutableCollection',1980);bcb(712,1980,xie,Zl);_.Kc=function cm(){return vr(this.a.Kc())};_.Hc=function $l(a){return a!=null&&this.a.Hc(a)};_.Ic=function _l(a){return this.a.Ic(a)};_.dc=function am(){return this.a.dc()};_.Ed=function bm(){return vr(this.a.Kc())};_.gc=function dm(){return this.a.gc()};_.Pc=function em(){return this.a.Pc()};_.Qc=function fm(a){return this.a.Qc(a)};_.Ib=function gm(){return fcb(this.a)};var wF=mdb(Zhe,'ForwardingImmutableCollection',712);bcb(152,1980,yie);_.Kc=function sm(){return this.Ed()};_.Yc=function tm(){return this.Fd(0)};_.Zc=function vm(a){return this.Fd(a)};_.ad=function zm(a){ktb(this,a)};_.Nc=function Am(){return new Kub(this,16)};_.bd=function Cm(a,b){return this.Gd(a,b)};_.Vc=function lm(a,b){throw vbb(new bgb)};_.Wc=function mm(a,b){throw vbb(new bgb)};_.Fb=function om(a){return Ju(this,a)};_.Hb=function pm(){return Ku(this)};_.Xc=function qm(a){return a==null?-1:Lu(this,a)};_.Ed=function rm(){return this.Fd(0)};_.Fd=function um(a){return jm(this,a)};_.$c=function xm(a){throw vbb(new bgb)};_._c=function ym(a,b){throw vbb(new bgb)};_.Gd=function Bm(a,b){var c;return Dm((c=new $u(this),new Jib(c,a,b)))};var hm;var _F=mdb(Zhe,'ImmutableList',152);bcb(2006,152,yie);_.Kc=function Nm(){return vr(this.Hd().Kc())};_.bd=function Qm(a,b){return Dm(this.Hd().bd(a,b))};_.Hc=function Fm(a){return a!=null&&this.Hd().Hc(a)};_.Ic=function Gm(a){return this.Hd().Ic(a)};_.Fb=function Hm(a){return pb(this.Hd(),a)};_.Xb=function Im(a){return Em(this,a)};_.Hb=function Jm(){return tb(this.Hd())};_.Xc=function Km(a){return this.Hd().Xc(a)};_.dc=function Lm(){return this.Hd().dc()};_.Ed=function Mm(){return vr(this.Hd().Kc())};_.gc=function Om(){return this.Hd().gc()};_.Gd=function Pm(a,b){return Dm(this.Hd().bd(a,b))};_.Pc=function Rm(){return this.Hd().Qc(KC(SI,Uhe,1,this.Hd().gc(),5,1))};_.Qc=function Sm(a){return this.Hd().Qc(a)};_.Ib=function Tm(){return fcb(this.Hd())};var xF=mdb(Zhe,'ForwardingImmutableList',2006);bcb(714,1,Aie);_.vc=function cn(){return Wm(this)};_.wc=function en(a){stb(this,a)};_.ec=function jn(){return Xm(this)};_.yc=function kn(a,b,c){return ttb(this,a,b,c)};_.Cc=function rn(){return this.Ld()};_.$b=function Zm(){throw vbb(new bgb)};_._b=function $m(a){return this.xc(a)!=null};_.uc=function _m(a){return this.Ld().Hc(a)};_.Jd=function an(){return new jq(this)};_.Kd=function bn(){return new sq(this)};_.Fb=function dn(a){return Dv(this,a)};_.Hb=function gn(){return Wm(this).Hb()};_.dc=function hn(){return this.gc()==0};_.zc=function nn(a,b){return Ym()};_.Bc=function on(a){throw vbb(new bgb)};_.Ib=function pn(){return Jv(this)};_.Ld=function qn(){if(this.e){return this.e}return this.e=this.Kd()};_.c=null;_.d=null;_.e=null;var Um;var iG=mdb(Zhe,'ImmutableMap',714);bcb(715,714,Aie);_._b=function vn(a){return sn(this,a)};_.uc=function wn(a){return dob(this.b,a)};_.Id=function xn(){return Vn(new Ln(this))};_.Jd=function yn(){return Vn(gob(this.b))};_.Kd=function zn(){return Ql(),new Zl(hob(this.b))};_.Fb=function An(a){return fob(this.b,a)};_.xc=function Bn(a){return tn(this,a)};_.Hb=function Cn(){return tb(this.b.c)};_.dc=function Dn(){return this.b.c.dc()};_.gc=function En(){return this.b.c.gc()};_.Ib=function Fn(){return fcb(this.b.c)};var zF=mdb(Zhe,'ForwardingImmutableMap',715);bcb(1974,1973,Bie);_.Bd=function Gn(){return this.Md()};_.Cd=function Hn(){return this.Md()};_.Nc=function Kn(){return new Kub(this,1)};_.Fb=function In(a){return a===this||this.Md().Fb(a)};_.Hb=function Jn(){return this.Md().Hb()};var CF=mdb(Zhe,'ForwardingSet',1974);bcb(1069,1974,Bie,Ln);_.Bd=function Nn(){return eob(this.a.b)};_.Cd=function On(){return eob(this.a.b)};_.Hc=function Mn(b){if(JD(b,42)&&BD(b,42).cd()==null){return false}try{return Dob(eob(this.a.b),b)}catch(a){a=ubb(a);if(JD(a,205)){return false}else throw vbb(a)}};_.Md=function Pn(){return eob(this.a.b)};_.Qc=function Qn(a){var b;b=Eob(eob(this.a.b),a);eob(this.a.b).b.gc()<b.length&&NC(b,eob(this.a.b).b.gc(),null);return b};var yF=mdb(Zhe,'ForwardingImmutableMap/1',1069);bcb(1981,1980,Cie);_.Kc=function Tn(){return this.Ed()};_.Nc=function Un(){return new Kub(this,1)};_.Fb=function Rn(a){return Ax(this,a)};_.Hb=function Sn(){return Bx(this)};var jG=mdb(Zhe,'ImmutableSet',1981);bcb(703,1981,Cie);_.Kc=function ao(){return vr(new Dnb(this.a.b.Kc()))};_.Hc=function Xn(a){return a!=null&&hnb(this.a,a)};_.Ic=function Yn(a){return inb(this.a,a)};_.Hb=function Zn(){return tb(this.a.b)};_.dc=function $n(){return this.a.b.dc()};_.Ed=function _n(){return vr(new Dnb(this.a.b.Kc()))};_.gc=function bo(){return this.a.b.gc()};_.Pc=function co(){return this.a.b.Pc()};_.Qc=function eo(a){return knb(this.a,a)};_.Ib=function fo(){return fcb(this.a.b)};var AF=mdb(Zhe,'ForwardingImmutableSet',703);bcb(1975,1974,Die);_.Bd=function go(){return this.b};_.Cd=function ho(){return this.b};_.Md=function io(){return this.b};_.Nc=function jo(){return new Rub(this)};var DF=mdb(Zhe,'ForwardingSortedSet',1975);bcb(533,1979,Aie,wo);_.Ac=function Fo(a){Ld(this,a)};_.Cc=function Io(){var a;return a=this.d,new up(!a?(this.d=new ap(this)):a)};_.$b=function xo(){ko(this)};_._b=function yo(a){return !!uo(this,a,Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15))))};_.uc=function zo(a){return lo(this,a)};_.kc=function Ao(){return new Qo(this,this)};_.wc=function Bo(a){no(this,a)};_.xc=function Co(a){return oo(this,a)};_.ec=function Do(){return new Bp(this)};_.zc=function Eo(a,b){return ro(this,a,b)};_.Bc=function Go(a){var b;b=uo(this,a,Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15))));if(!b){return null}else{mo(this,b);b.e=null;b.c=null;return b.i}};_.gc=function Ho(){return this.i};_.pd=function Jo(){var a;return a=this.d,new up(!a?(this.d=new ap(this)):a)};_.f=0;_.g=0;_.i=0;var QF=mdb(Zhe,'HashBiMap',533);bcb(534,1,aie);_.Nb=function Mo(a){Rrb(this,a)};_.Ob=function No(){return Ko(this)};_.Pb=function Oo(){var a;if(!Ko(this)){throw vbb(new utb)}a=this.c;this.c=a.c;this.f=a;--this.d;return this.Nd(a)};_.Qb=function Po(){if(this.e.g!=this.b){throw vbb(new Apb)}Vb(!!this.f);mo(this.e,this.f);this.b=this.e.g;this.f=null};_.b=0;_.d=0;_.f=null;var NF=mdb(Zhe,'HashBiMap/Itr',534);bcb(1011,534,aie,Qo);_.Nd=function Ro(a){return new So(this,a)};var FF=mdb(Zhe,'HashBiMap/1',1011);bcb(1012,345,kie,So);_.cd=function To(){return this.a.g};_.dd=function Uo(){return this.a.i};_.ed=function Vo(a){var b,c,d;c=this.a.i;d=Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15)));if(d==this.a.f&&(PD(a)===PD(c)||a!=null&&pb(a,c))){return a}Nb(!vo(this.b.a,a,d),a);mo(this.b.a,this.a);b=new $o(this.a.g,this.a.a,a,d);po(this.b.a,b,this.a);this.a.e=null;this.a.c=null;this.b.b=this.b.a.g;this.b.f==this.a&&(this.b.f=b);this.a=b;return c};var EF=mdb(Zhe,'HashBiMap/1/MapEntry',1012);bcb(238,345,{345:1,238:1,3:1,42:1},Wo);_.cd=function Xo(){return this.g};_.dd=function Yo(){return this.i};_.ed=function Zo(a){throw vbb(new bgb)};var XF=mdb(Zhe,'ImmutableEntry',238);bcb(317,238,{345:1,317:1,238:1,3:1,42:1},$o);_.a=0;_.f=0;var GF=mdb(Zhe,'HashBiMap/BiEntry',317);bcb(610,1979,Aie,ap);_.Ac=function jp(a){Ld(this,a)};_.Cc=function mp(){return new Bp(this.a)};_.$b=function bp(){ko(this.a)};_._b=function cp(a){return lo(this.a,a)};_.kc=function dp(){return new op(this,this.a)};_.wc=function ep(a){Qb(a);no(this.a,new zp(a))};_.xc=function fp(a){return _o(this,a)};_.ec=function gp(){return new up(this)};_.zc=function ip(a,b){return so(this.a,a,b,false)};_.Bc=function kp(a){var b;b=vo(this.a,a,Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15))));if(!b){return null}else{mo(this.a,b);b.e=null;b.c=null;return b.g}};_.gc=function lp(){return this.a.i};_.pd=function np(){return new Bp(this.a)};var MF=mdb(Zhe,'HashBiMap/Inverse',610);bcb(1008,534,aie,op);_.Nd=function pp(a){return new qp(this,a)};var IF=mdb(Zhe,'HashBiMap/Inverse/1',1008);bcb(1009,345,kie,qp);_.cd=function rp(){return this.a.i};_.dd=function sp(){return this.a.g};_.ed=function tp(a){var b,c,d;d=this.a.g;b=Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15)));if(b==this.a.a&&(PD(a)===PD(d)||a!=null&&pb(a,d))){return a}Nb(!uo(this.b.a.a,a,b),a);mo(this.b.a.a,this.a);c=new $o(a,b,this.a.i,this.a.f);this.a=c;po(this.b.a.a,c,null);this.b.b=this.b.a.a.g;return d};var HF=mdb(Zhe,'HashBiMap/Inverse/1/InverseEntry',1009);bcb(611,532,fie,up);_.Kc=function vp(){return new xp(this.a.a)};_.Mc=function wp(a){var b;b=vo(this.a.a,a,Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15))));if(!b){return false}else{mo(this.a.a,b);return true}};var KF=mdb(Zhe,'HashBiMap/Inverse/InverseKeySet',611);bcb(1007,534,aie,xp);_.Nd=function yp(a){return a.i};var JF=mdb(Zhe,'HashBiMap/Inverse/InverseKeySet/1',1007);bcb(1010,1,{},zp);_.Od=function Ap(a,b){hp(this.a,a,b)};var LF=mdb(Zhe,'HashBiMap/Inverse/lambda$0$Type',1010);bcb(609,532,fie,Bp);_.Kc=function Cp(){return new Ep(this.a)};_.Mc=function Dp(a){var b;b=uo(this.a,a,Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15))));if(!b){return false}else{mo(this.a,b);b.e=null;b.c=null;return true}};var PF=mdb(Zhe,'HashBiMap/KeySet',609);bcb(1006,534,aie,Ep);_.Nd=function Fp(a){return a.g};var OF=mdb(Zhe,'HashBiMap/KeySet/1',1006);bcb(1093,619,_he);var RF=mdb(Zhe,'HashMultimapGwtSerializationDependencies',1093);bcb(265,1093,_he,Hp);_.hc=function Ip(){return new Uqb(Cv(this.a))};_.gd=function Jp(){return new Uqb(Cv(this.a))};_.a=2;var SF=mdb(Zhe,'HashMultimap',265);bcb(1999,152,yie);_.Hc=function Mp(a){return this.Pd().Hc(a)};_.dc=function Np(){return this.Pd().dc()};_.gc=function Op(){return this.Pd().gc()};var TF=mdb(Zhe,'ImmutableAsList',1999);bcb(1931,715,Aie);_.Ld=function Qp(){return Ql(),new oy(this.a)};_.Cc=function Rp(){return Ql(),new oy(this.a)};_.pd=function Sp(){return Ql(),new oy(this.a)};var UF=mdb(Zhe,'ImmutableBiMap',1931);bcb(1977,1,{});var VF=mdb(Zhe,'ImmutableCollection/Builder',1977);bcb(1022,703,Cie,Tp);var YF=mdb(Zhe,'ImmutableEnumSet',1022);bcb(969,386,$he,Vp);_.Xb=function Wp(a){return this.a.Xb(a)};var ZF=mdb(Zhe,'ImmutableList/1',969);bcb(968,1977,{},Xp);var $F=mdb(Zhe,'ImmutableList/Builder',968);bcb(614,198,Yhe,Yp);_.Ob=function Zp(){return this.a.Ob()};_.Pb=function $p(){return BD(this.a.Pb(),42).cd()};var aG=mdb(Zhe,'ImmutableMap/1',614);bcb(1041,1,{},_p);_.Kb=function aq(a){return BD(a,42).cd()};var bG=mdb(Zhe,'ImmutableMap/2methodref$getKey$Type',1041);bcb(1040,1,{},cq);var cG=mdb(Zhe,'ImmutableMap/Builder',1040);bcb(2000,1981,Cie);_.Kc=function gq(){var a;return a=Wm(this.a).Ed(),new Yp(a)};_.Dd=function dq(){return new Fq(this)};_.Jc=function eq(a){var b,c;Qb(a);c=this.gc();for(b=0;b<c;b++){a.td(BD(Rl(Wm(this.a)).Xb(b),42).cd())}};_.Ed=function fq(){var a;return (a=this.c,!a?(this.c=new Fq(this)):a).Ed()};_.Nc=function hq(){return Zj(this.gc(),1296,new Dq(this))};var mG=mdb(Zhe,'IndexedImmutableSet',2000);bcb(1180,2000,Cie,jq);_.Kc=function nq(){var a;return a=Wm(this.a).Ed(),new Yp(a)};_.Hc=function kq(a){return this.a._b(a)};_.Jc=function lq(a){Qb(a);stb(this.a,new qq(a))};_.Ed=function mq(){var a;return a=Wm(this.a).Ed(),new Yp(a)};_.gc=function oq(){return this.a.gc()};_.Nc=function pq(){return $j(Wm(this.a).Nc(),new _p)};var eG=mdb(Zhe,'ImmutableMapKeySet',1180);bcb(1181,1,{},qq);_.Od=function rq(a,b){Ql();this.a.td(a)};var dG=mdb(Zhe,'ImmutableMapKeySet/lambda$0$Type',1181);bcb(1178,1980,xie,sq);_.Kc=function vq(){return new Aq(this)};_.Hc=function tq(a){return a!=null&&jr(new Aq(this),a)};_.Ed=function uq(){return new Aq(this)};_.gc=function wq(){return this.a.gc()};_.Nc=function xq(){return $j(Wm(this.a).Nc(),new yq)};var hG=mdb(Zhe,'ImmutableMapValues',1178);bcb(1179,1,{},yq);_.Kb=function zq(a){return BD(a,42).dd()};var fG=mdb(Zhe,'ImmutableMapValues/0methodref$getValue$Type',1179);bcb(626,198,Yhe,Aq);_.Ob=function Bq(){return this.a.Ob()};_.Pb=function Cq(){return BD(this.a.Pb(),42).dd()};var gG=mdb(Zhe,'ImmutableMapValues/1',626);bcb(1182,1,{},Dq);_.ld=function Eq(a){return iq(this.a,a)};var kG=mdb(Zhe,'IndexedImmutableSet/0methodref$get$Type',1182);bcb(752,1999,yie,Fq);_.Pd=function Gq(){return this.a};_.Xb=function Hq(a){return iq(this.a,a)};_.gc=function Iq(){return this.a.a.gc()};var lG=mdb(Zhe,'IndexedImmutableSet/1',752);bcb(44,1,{},Sq);_.Kb=function Tq(a){return BD(a,20).Kc()};_.Fb=function Uq(a){return this===a};var nG=mdb(Zhe,'Iterables/10',44);bcb(1042,537,vie,Wq);_.Jc=function Xq(a){Qb(a);this.b.Jc(new $q(this.a,a))};_.Kc=function Yq(){return Vq(this)};var pG=mdb(Zhe,'Iterables/4',1042);bcb(1043,1,qie,$q);_.td=function _q(a){Zq(this.b,this.a,a)};var oG=mdb(Zhe,'Iterables/4/lambda$0$Type',1043);bcb(1044,537,vie,ar);_.Jc=function br(a){Qb(a);reb(this.a,new dr(a,this.b))};_.Kc=function cr(){return ur(new Fyd(this.a),this.b)};var rG=mdb(Zhe,'Iterables/5',1044);bcb(1045,1,qie,dr);_.td=function er(a){this.a.td(Gfd(a))};var qG=mdb(Zhe,'Iterables/5/lambda$0$Type',1045);bcb(1071,198,Yhe,wr);_.Ob=function xr(){return this.a.Ob()};_.Pb=function yr(){return this.a.Pb()};var sG=mdb(Zhe,'Iterators/1',1071);bcb(1072,699,Yhe,zr);_.Yb=function Ar(){var a;while(this.b.Ob()){a=this.b.Pb();if(this.a.Lb(a)){return a}}return this.e=2,null};var tG=mdb(Zhe,'Iterators/5',1072);bcb(487,1,aie);_.Nb=function Cr(a){Rrb(this,a)};_.Ob=function Dr(){return this.b.Ob()};_.Pb=function Er(){return this.Qd(this.b.Pb())};_.Qb=function Fr(){this.b.Qb()};var KH=mdb(Zhe,'TransformedIterator',487);bcb(1073,487,aie,Gr);_.Qd=function Hr(a){return this.a.Kb(a)};var uG=mdb(Zhe,'Iterators/6',1073);bcb(717,198,Yhe,Ir);_.Ob=function Jr(){return !this.a};_.Pb=function Kr(){if(this.a){throw vbb(new utb)}this.a=true;return this.b};_.a=false;var vG=mdb(Zhe,'Iterators/9',717);bcb(1070,386,$he,Nr);_.Xb=function Or(a){return this.a[this.b+a]};_.b=0;var Lr;var wG=mdb(Zhe,'Iterators/ArrayItr',1070);bcb(39,1,{39:1,47:1},Sr);_.Nb=function Tr(a){Rrb(this,a)};_.Ob=function Ur(){return Qr(this)};_.Pb=function Vr(){return Rr(this)};_.Qb=function Wr(){Vb(!!this.c);this.c.Qb();this.c=null};var xG=mdb(Zhe,'Iterators/ConcatenatedIterator',39);bcb(22,1,{3:1,35:1,22:1});_.wd=function _r(a){return Xr(this,BD(a,22))};_.Fb=function bs(a){return this===a};_.Hb=function cs(){return FCb(this)};_.Ib=function ds(){return Zr(this)};_.g=0;var CI=mdb(Phe,'Enum',22);bcb(538,22,{538:1,3:1,35:1,22:1,47:1},is);_.Nb=function js(a){Rrb(this,a)};_.Ob=function ks(){return false};_.Pb=function ls(){throw vbb(new utb)};_.Qb=function ms(){Vb(false)};var gs;var yG=ndb(Zhe,'Iterators/EmptyModifiableIterator',538,CI,os,ns);var ps;bcb(1834,619,_he);var EG=mdb(Zhe,'LinkedHashMultimapGwtSerializationDependencies',1834);bcb(1835,1834,_he,ss);_.hc=function us(){return new Asb(Cv(this.b))};_.$b=function ts(){Nc(this);As(this.a,this.a)};_.gd=function vs(){return new Asb(Cv(this.b))};_.ic=function ws(a){return new Ss(this,a,this.b)};_.kc=function xs(){return new Hs(this)};_.lc=function ys(){var a;return new Kub((a=this.g,BD(!a?(this.g=new ph(this)):a,21)),17)};_.ec=function zs(){var a;return a=this.i,!a?(this.i=new zf(this,this.c)):a};_.nc=function Cs(){return new Ov(new Hs(this))};_.oc=function Ds(){var a;return $j(new Kub((a=this.g,BD(!a?(this.g=new ph(this)):a,21)),17),new Es)};_.b=2;var FG=mdb(Zhe,'LinkedHashMultimap',1835);bcb(1838,1,{},Es);_.Kb=function Fs(a){return BD(a,42).dd()};var zG=mdb(Zhe,'LinkedHashMultimap/0methodref$getValue$Type',1838);bcb(824,1,aie,Hs);_.Nb=function Is(a){Rrb(this,a)};_.Pb=function Ks(){return Gs(this)};_.Ob=function Js(){return this.a!=this.b.a};_.Qb=function Ls(){Vb(!!this.c);Gc(this.b,this.c.g,this.c.i);this.c=null};var AG=mdb(Zhe,'LinkedHashMultimap/1',824);bcb(330,238,{345:1,238:1,330:1,2020:1,3:1,42:1},Ms);_.Rd=function Ns(){return this.f};_.Sd=function Os(a){this.c=a};_.Td=function Ps(a){this.f=a};_.d=0;var BG=mdb(Zhe,'LinkedHashMultimap/ValueEntry',330);bcb(1836,1970,{2020:1,20:1,28:1,14:1,21:1},Ss);_.Fc=function Ts(a){var b,c,d,e,f;f=Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15)));b=f&this.b.length-1;e=this.b[b];for(c=e;c;c=c.a){if(c.d==f&&Hb(c.i,a)){return false}}d=new Ms(this.c,a,f,e);Bs(this.d,d);d.f=this;this.d=d;As(this.g.a.b,d);As(d,this.g.a);this.b[b]=d;++this.f;++this.e;Qs(this);return true};_.$b=function Us(){var a,b;Alb(this.b,null);this.f=0;for(a=this.a;a!=this;a=a.Rd()){b=BD(a,330);As(b.b,b.e)}this.a=this;this.d=this;++this.e};_.Hc=function Vs(a){var b,c;c=Tbb(Ibb(Eie,keb(Tbb(Ibb(a==null?0:tb(a),Fie)),15)));for(b=this.b[c&this.b.length-1];b;b=b.a){if(b.d==c&&Hb(b.i,a)){return true}}return false};_.Jc=function Ws(a){var b;Qb(a);for(b=this.a;b!=this;b=b.Rd()){a.td(BD(b,330).i)}};_.Rd=function Xs(){return this.a};_.Kc=function Ys(){return new ct(this)};_.Mc=function Zs(a){return Rs(this,a)};_.Sd=function $s(a){this.d=a};_.Td=function _s(a){this.a=a};_.gc=function at(){return this.f};_.e=0;_.f=0;var DG=mdb(Zhe,'LinkedHashMultimap/ValueSet',1836);bcb(1837,1,aie,ct);_.Nb=function dt(a){Rrb(this,a)};_.Ob=function et(){return bt(this),this.b!=this.c};_.Pb=function ft(){var a,b;bt(this);if(this.b==this.c){throw vbb(new utb)}a=BD(this.b,330);b=a.i;this.d=a;this.b=a.f;return b};_.Qb=function gt(){bt(this);Vb(!!this.d);Rs(this.c,this.d.i);this.a=this.c.e;this.d=null};_.a=0;var CG=mdb(Zhe,'LinkedHashMultimap/ValueSet/1',1837);bcb(766,1986,_he,mt);_.Zb=function nt(){var a;return a=this.f,!a?(this.f=new jw(this)):a};_.Fb=function tt(a){return hw(this,a)};_.cc=function ut(a){return new bu(this,a)};_.fc=function xt(a){return kt(this,a)};_.$b=function pt(){it(this)};_._b=function qt(a){return jt(this,a)};_.ac=function rt(){return new jw(this)};_.bc=function st(){return new eu(this)};_.qc=function vt(a){return new bu(this,a)};_.dc=function wt(){return !this.a};_.rc=function yt(a){return kt(this,a)};_.gc=function zt(){return this.d};_.c=0;_.d=0;var MG=mdb(Zhe,'LinkedListMultimap',766);bcb(52,28,Lie);_.ad=function Pt(a){ktb(this,a)};_.Nc=function Qt(){return new Kub(this,16)};_.Vc=function Ct(a,b){throw vbb(new cgb('Add not supported on this list'))};_.Fc=function Dt(a){this.Vc(this.gc(),a);return true};_.Wc=function Et(a,b){var c,d,e;uCb(b);c=false;for(e=b.Kc();e.Ob();){d=e.Pb();this.Vc(a++,d);c=true}return c};_.$b=function Ft(){this.Ud(0,this.gc())};_.Fb=function Gt(a){return At(this,a)};_.Hb=function Ht(){return qmb(this)};_.Xc=function It(a){return Bt(this,a)};_.Kc=function Jt(){return new vib(this)};_.Yc=function Kt(){return this.Zc(0)};_.Zc=function Lt(a){return new Bib(this,a)};_.$c=function Mt(a){throw vbb(new cgb('Remove not supported on this list'))};_.Ud=function Nt(a,b){var c,d;d=this.Zc(a);for(c=a;c<b;++c){d.Pb();d.Qb()}};_._c=function Ot(a,b){throw vbb(new cgb('Set not supported on this list'))};_.bd=function Rt(a,b){return new Jib(this,a,b)};_.j=0;var kJ=mdb(bie,'AbstractList',52);bcb(1964,52,Lie);_.Vc=function Wt(a,b){St(this,a,b)};_.Wc=function Xt(a,b){return Tt(this,a,b)};_.Xb=function Yt(a){return Ut(this,a)};_.Kc=function Zt(){return this.Zc(0)};_.$c=function $t(a){return Vt(this,a)};_._c=function _t(b,c){var d,e;d=this.Zc(b);try{e=d.Pb();d.Wb(c);return e}catch(a){a=ubb(a);if(JD(a,109)){throw vbb(new qcb("Can't set element "+b))}else throw vbb(a)}};var yJ=mdb(bie,'AbstractSequentialList',1964);bcb(636,1964,Lie,bu);_.Zc=function cu(a){return au(this,a)};_.gc=function du(){var a;a=BD(Ohb(this.a.b,this.b),283);return !a?0:a.a};var HG=mdb(Zhe,'LinkedListMultimap/1',636);bcb(1297,1970,fie,eu);_.Hc=function fu(a){return jt(this.a,a)};_.Kc=function gu(){return new ku(this.a)};_.Mc=function hu(a){return !kt(this.a,a).a.dc()};_.gc=function iu(){return Vhb(this.a.b)};var GG=mdb(Zhe,'LinkedListMultimap/1KeySetImpl',1297);bcb(1296,1,aie,ku);_.Nb=function lu(a){Rrb(this,a)};_.Ob=function mu(){ju(this);return !!this.c};_.Pb=function nu(){ju(this);ot(this.c);this.a=this.c;Qqb(this.d,this.a.a);do{this.c=this.c.b}while(!!this.c&&!Qqb(this.d,this.c.a));return this.a.a};_.Qb=function ou(){ju(this);Vb(!!this.a);ir(new wu(this.e,this.a.a));this.a=null;this.b=this.e.c};_.b=0;var IG=mdb(Zhe,'LinkedListMultimap/DistinctKeyIterator',1296);bcb(283,1,{283:1},pu);_.a=0;var JG=mdb(Zhe,'LinkedListMultimap/KeyList',283);bcb(1295,345,kie,qu);_.cd=function ru(){return this.a};_.dd=function su(){return this.f};_.ed=function tu(a){var b;b=this.f;this.f=a;return b};var KG=mdb(Zhe,'LinkedListMultimap/Node',1295);bcb(560,1,jie,wu,xu);_.Nb=function zu(a){Rrb(this,a)};_.Rb=function yu(a){this.e=ht(this.f,this.b,a,this.c);++this.d;this.a=null};_.Ob=function Au(){return !!this.c};_.Sb=function Bu(){return !!this.e};_.Pb=function Cu(){return uu(this)};_.Tb=function Du(){return this.d};_.Ub=function Eu(){return vu(this)};_.Vb=function Fu(){return this.d-1};_.Qb=function Gu(){Vb(!!this.a);if(this.a!=this.c){this.e=this.a.e;--this.d}else{this.c=this.a.c}lt(this.f,this.a);this.a=null};_.Wb=function Hu(a){Ub(!!this.a);this.a.f=a};_.d=0;var LG=mdb(Zhe,'LinkedListMultimap/ValueForKeyIterator',560);bcb(1018,52,Lie);_.Vc=function Tu(a,b){this.a.Vc(a,b)};_.Wc=function Uu(a,b){return this.a.Wc(a,b)};_.Hc=function Vu(a){return this.a.Hc(a)};_.Xb=function Wu(a){return this.a.Xb(a)};_.$c=function Xu(a){return this.a.$c(a)};_._c=function Yu(a,b){return this.a._c(a,b)};_.gc=function Zu(){return this.a.gc()};var OG=mdb(Zhe,'Lists/AbstractListWrapper',1018);bcb(1019,1018,Nie);var PG=mdb(Zhe,'Lists/RandomAccessListWrapper',1019);bcb(1021,1019,Nie,$u);_.Zc=function _u(a){return this.a.Zc(a)};var NG=mdb(Zhe,'Lists/1',1021);bcb(131,52,{131:1,20:1,28:1,52:1,14:1,15:1},dv);_.Vc=function ev(a,b){this.a.Vc(cv(this,a),b)};_.$b=function fv(){this.a.$b()};_.Xb=function gv(a){return this.a.Xb(bv(this,a))};_.Kc=function hv(){return av(this,0)};_.Zc=function iv(a){return av(this,a)};_.$c=function jv(a){return this.a.$c(bv(this,a))};_.Ud=function kv(a,b){(Tb(a,b,this.a.gc()),Su(this.a.bd(cv(this,b),cv(this,a)))).$b()};_._c=function lv(a,b){return this.a._c(bv(this,a),b)};_.gc=function mv(){return this.a.gc()};_.bd=function nv(a,b){return Tb(a,b,this.a.gc()),Su(this.a.bd(cv(this,b),cv(this,a)))};var SG=mdb(Zhe,'Lists/ReverseList',131);bcb(280,131,{131:1,20:1,28:1,52:1,14:1,15:1,54:1},ov);var QG=mdb(Zhe,'Lists/RandomAccessReverseList',280);bcb(1020,1,jie,qv);_.Nb=function sv(a){Rrb(this,a)};_.Rb=function rv(a){this.c.Rb(a);this.c.Ub();this.a=false};_.Ob=function tv(){return this.c.Sb()};_.Sb=function uv(){return this.c.Ob()};_.Pb=function vv(){return pv(this)};_.Tb=function wv(){return cv(this.b,this.c.Tb())};_.Ub=function xv(){if(!this.c.Ob()){throw vbb(new utb)}this.a=true;return this.c.Pb()};_.Vb=function yv(){return cv(this.b,this.c.Tb())-1};_.Qb=function zv(){Vb(this.a);this.c.Qb();this.a=false};_.Wb=function Av(a){Ub(this.a);this.c.Wb(a)};_.a=false;var RG=mdb(Zhe,'Lists/ReverseList/1',1020);bcb(432,487,aie,Mv);_.Qd=function Nv(a){return Lv(a)};var TG=mdb(Zhe,'Maps/1',432);bcb(698,487,aie,Ov);_.Qd=function Pv(a){return BD(a,42).dd()};var UG=mdb(Zhe,'Maps/2',698);bcb(962,487,aie,Qv);_.Qd=function Rv(a){return new Wo(a,ww(this.a,a))};var VG=mdb(Zhe,'Maps/3',962);bcb(959,1971,fie,Sv);_.Jc=function Tv(a){mj(this.a,a)};_.Kc=function Uv(){return this.a.kc()};_.Rc=function Vv(){return this.a};_.Nc=function Wv(){return this.a.lc()};var XG=mdb(Zhe,'Maps/IteratorBasedAbstractMap/1',959);bcb(960,1,{},Xv);_.Od=function Yv(a,b){this.a.td(a)};var ZG=mdb(Zhe,'Maps/KeySet/lambda$0$Type',960);bcb(958,28,die,Zv);_.$b=function $v(){this.a.$b()};_.Hc=function _v(a){return this.a.uc(a)};_.Jc=function aw(a){Qb(a);this.a.wc(new fw(a))};_.dc=function bw(){return this.a.dc()};_.Kc=function cw(){return new Ov(this.a.vc().Kc())};_.Mc=function dw(b){var c,d;try{return ze(this,b,true)}catch(a){a=ubb(a);if(JD(a,41)){for(d=this.a.vc().Kc();d.Ob();){c=BD(d.Pb(),42);if(Hb(b,c.dd())){this.a.Bc(c.cd());return true}}return false}else throw vbb(a)}};_.gc=function ew(){return this.a.gc()};var aH=mdb(Zhe,'Maps/Values',958);bcb(961,1,{},fw);_.Od=function gw(a,b){this.a.td(b)};var _G=mdb(Zhe,'Maps/Values/lambda$0$Type',961);bcb(736,1987,cie,jw);_.xc=function nw(a){return this.a._b(a)?this.a.cc(a):null};_.Bc=function qw(a){return this.a._b(a)?this.a.fc(a):null};_.$b=function kw(){this.a.$b()};_._b=function lw(a){return this.a._b(a)};_.Ec=function mw(){return new sw(this)};_.Dc=function(){return this.Ec()};_.dc=function ow(){return this.a.dc()};_.ec=function pw(){return this.a.ec()};_.gc=function rw(){return this.a.ec().gc()};var eH=mdb(Zhe,'Multimaps/AsMap',736);bcb(1104,1971,fie,sw);_.Kc=function tw(){return Bv(this.a.a.ec(),new xw(this))};_.Rc=function uw(){return this.a};_.Mc=function vw(a){var b;if(!Ze(this,a)){return false}b=BD(a,42);iw(this.a,b.cd());return true};var dH=mdb(Zhe,'Multimaps/AsMap/EntrySet',1104);bcb(1108,1,{},xw);_.Kb=function yw(a){return ww(this,a)};_.Fb=function zw(a){return this===a};var cH=mdb(Zhe,'Multimaps/AsMap/EntrySet/1',1108);bcb(543,1989,{543:1,835:1,20:1,28:1,14:1},Cw);_.$b=function Dw(){Nc(this.a)};_.Hc=function Ew(a){return Oc(this.a,a)};_.Jc=function Fw(a){Qb(a);reb(Pc(this.a),new Rw(a))};_.Kc=function Gw(){return new Mv(Pc(this.a).a.kc())};_.gc=function Hw(){return this.a.d};_.Nc=function Iw(){return $j(Pc(this.a).Nc(),new Jw)};var kH=mdb(Zhe,'Multimaps/Keys',543);bcb(1106,1,{},Jw);_.Kb=function Kw(a){return BD(a,42).cd()};var gH=mdb(Zhe,'Multimaps/Keys/0methodref$getKey$Type',1106);bcb(1105,487,aie,Lw);_.Qd=function Mw(a){return new Qw(BD(a,42))};var iH=mdb(Zhe,'Multimaps/Keys/1',1105);bcb(1990,1,{416:1});_.Fb=function Nw(a){var b;if(JD(a,492)){b=BD(a,416);return BD(this.a.dd(),14).gc()==BD(b.a.dd(),14).gc()&&Hb(this.a.cd(),b.a.cd())}return false};_.Hb=function Ow(){var a;a=this.a.cd();return (a==null?0:tb(a))^BD(this.a.dd(),14).gc()};_.Ib=function Pw(){var a,b;b=xfb(this.a.cd());a=BD(this.a.dd(),14).gc();return a==1?b:b+' x '+a};var oH=mdb(Zhe,'Multisets/AbstractEntry',1990);bcb(492,1990,{492:1,416:1},Qw);var hH=mdb(Zhe,'Multimaps/Keys/1/1',492);bcb(1107,1,qie,Rw);_.td=function Sw(a){this.a.td(BD(a,42).cd())};var jH=mdb(Zhe,'Multimaps/Keys/lambda$1$Type',1107);bcb(1110,1,qie,Vw);_.td=function Ww(a){Tw(BD(a,416))};var lH=mdb(Zhe,'Multiset/lambda$0$Type',1110);bcb(737,1,qie,Xw);_.td=function Yw(a){Uw(this.a,BD(a,416))};var mH=mdb(Zhe,'Multiset/lambda$1$Type',737);bcb(1111,1,{},bx);var nH=mdb(Zhe,'Multisets/0methodref$add$Type',1111);bcb(738,1,{},cx);_.Kb=function dx(a){return _w(BD(a,416))};var qH=mdb(Zhe,'Multisets/lambda$3$Type',738);bcb(2008,1,Qhe);var rH=mdb(Zhe,'RangeGwtSerializationDependencies',2008);bcb(514,2008,{169:1,514:1,3:1,45:1},gx);_.Lb=function hx(a){return fx(this,BD(a,35))};_.Mb=function lx(a){return fx(this,BD(a,35))};_.Fb=function jx(a){var b;if(JD(a,514)){b=BD(a,514);return Ek(this.a,b.a)&&Ek(this.b,b.b)}return false};_.Hb=function kx(){return this.a.Hb()*31+this.b.Hb()};_.Ib=function mx(){return nx(this.a,this.b)};var sH=mdb(Zhe,'Range',514);bcb(778,1999,yie,px);_.Zc=function tx(a){return jm(this.b,a)};_.Pd=function qx(){return this.a};_.Xb=function rx(a){return Em(this.b,a)};_.Fd=function sx(a){return jm(this.b,a)};var tH=mdb(Zhe,'RegularImmutableAsList',778);bcb(646,2006,yie,ux);_.Hd=function vx(){return this.a};var uH=mdb(Zhe,'RegularImmutableList',646);bcb(616,715,Aie,wx);var vH=mdb(Zhe,'RegularImmutableMap',616);bcb(716,703,Cie,zx);var xx;var wH=mdb(Zhe,'RegularImmutableSet',716);bcb(1976,eie,fie);_.Kc=function Mx(){return new Xx(this.a,this.b)};_.Fc=function Jx(a){throw vbb(new bgb)};_.Gc=function Kx(a){throw vbb(new bgb)};_.$b=function Lx(){throw vbb(new bgb)};_.Mc=function Nx(a){throw vbb(new bgb)};var CH=mdb(Zhe,'Sets/SetView',1976);bcb(963,1976,fie,Px);_.Kc=function Tx(){return new Xx(this.a,this.b)};_.Hc=function Qx(a){return tqb(this.a,a)&&this.b.Hc(a)};_.Ic=function Rx(a){return Be(this.a,a)&&this.b.Ic(a)};_.dc=function Sx(){return omb(this.b,this.a)};_.Lc=function Ux(){return JAb(new YAb(null,new Kub(this.a,1)),new _x(this.b))};_.gc=function Vx(){return Ox(this)};_.Oc=function Wx(){return JAb(new YAb(null,new Kub(this.a,1)),new Zx(this.b))};var AH=mdb(Zhe,'Sets/2',963);bcb(700,699,Yhe,Xx);_.Yb=function Yx(){var a;while(Eqb(this.a)){a=Fqb(this.a);if(this.c.Hc(a)){return a}}return this.e=2,null};var xH=mdb(Zhe,'Sets/2/1',700);bcb(964,1,Oie,Zx);_.Mb=function $x(a){return this.a.Hc(a)};var yH=mdb(Zhe,'Sets/2/4methodref$contains$Type',964);bcb(965,1,Oie,_x);_.Mb=function ay(a){return this.a.Hc(a)};var zH=mdb(Zhe,'Sets/2/5methodref$contains$Type',965);bcb(607,1975,{607:1,3:1,20:1,14:1,271:1,21:1,84:1},by);_.Bd=function cy(){return this.b};_.Cd=function dy(){return this.b};_.Md=function ey(){return this.b};_.Jc=function fy(a){this.a.Jc(a)};_.Lc=function gy(){return this.a.Lc()};_.Oc=function hy(){return this.a.Oc()};var DH=mdb(Zhe,'Sets/UnmodifiableNavigableSet',607);bcb(1932,1931,Aie,iy);_.Ld=function jy(){return Ql(),new oy(this.a)};_.Cc=function ky(){return Ql(),new oy(this.a)};_.pd=function ly(){return Ql(),new oy(this.a)};var EH=mdb(Zhe,'SingletonImmutableBiMap',1932);bcb(647,2006,yie,my);_.Hd=function ny(){return this.a};var FH=mdb(Zhe,'SingletonImmutableList',647);bcb(350,1981,Cie,oy);_.Kc=function ry(){return new Ir(this.a)};_.Hc=function py(a){return pb(this.a,a)};_.Ed=function qy(){return new Ir(this.a)};_.gc=function sy(){return 1};var GH=mdb(Zhe,'SingletonImmutableSet',350);bcb(1115,1,{},vy);_.Kb=function wy(a){return BD(a,164)};var HH=mdb(Zhe,'Streams/lambda$0$Type',1115);bcb(1116,1,Pie,xy);_.Vd=function yy(){uy(this.a)};var IH=mdb(Zhe,'Streams/lambda$1$Type',1116);bcb(1659,1658,_he,Ay);_.Zb=function By(){var a;return a=this.f,BD(BD(!a?(this.f=JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)):a,161),171)};_.hc=function Ey(){return new Hxb(this.b)};_.gd=function Fy(){return new Hxb(this.b)};_.ec=function Hy(){var a;return a=this.i,BD(BD(!a?(this.i=JD(this.c,171)?new $f(this,BD(this.c,171)):JD(this.c,161)?new Yf(this,BD(this.c,161)):new zf(this,this.c)):a,84),271)};_.ac=function Dy(){return JD(this.c,171)?new Sf(this,BD(this.c,171)):JD(this.c,161)?new Mf(this,BD(this.c,161)):new ne(this,this.c)};_.ic=function Gy(a){a==null&&this.a.ue(a,a);return new Hxb(this.b)};var LH=mdb(Zhe,'TreeMultimap',1659);bcb(78,1,{3:1,78:1});_.Wd=function $y(a){return new Error(a)};_.Xd=function az(){return this.e};_.Yd=function bz(){return XAb(NAb(Plb((this.k==null&&(this.k=KC(_I,nie,78,0,0,1)),this.k)),new _fb),new bBb)};_.Zd=function cz(){return this.f};_.$d=function dz(){return this.g};_._d=function ez(){Vy(this,_y(this.Wd(Wy(this,this.g))));Sz(this)};_.Ib=function fz(){return Wy(this,this.$d())};_.e=Sie;_.i=false;_.n=true;var _I=mdb(Phe,'Throwable',78);bcb(102,78,{3:1,102:1,78:1});var EI=mdb(Phe,'Exception',102);bcb(60,102,Tie,gz,hz);var TI=mdb(Phe,'RuntimeException',60);bcb(598,60,Tie);var LI=mdb(Phe,'JsException',598);bcb(863,598,Tie);var RH=mdb(Uie,'JavaScriptExceptionBase',863);bcb(477,863,{477:1,3:1,102:1,60:1,78:1},lz);_.$d=function oz(){kz(this);return this.c};_.ae=function pz(){return PD(this.b)===PD(iz)?null:this.b};var iz;var OH=mdb(Wie,'JavaScriptException',477);var PH=mdb(Wie,'JavaScriptObject$',0);var tz;bcb(1948,1,{});var QH=mdb(Wie,'Scheduler',1948);var xz=0,yz=0,zz=-1;bcb(890,1948,{},Nz);var Jz;var SH=mdb(Uie,'SchedulerImpl',890);var Qz;bcb(1960,1,{});var WH=mdb(Uie,'StackTraceCreator/Collector',1960);bcb(864,1960,{},Yz);_.be=function Zz(a){var b={},j;var c=[];a[Yie]=c;var d=arguments.callee.caller;while(d){var e=(Rz(),d.name||(d.name=Uz(d.toString())));c.push(e);var f=':'+e;var g=b[f];if(g){var h,i;for(h=0,i=g.length;h<i;h++){if(g[h]===d){return}}}(g||(b[f]=[])).push(d);d=d.caller}};_.ce=function $z(a){var b,c,d,e;d=(Rz(),a&&a[Yie]?a[Yie]:[]);c=d.length;e=KC(VI,nie,310,c,0,1);for(b=0;b<c;b++){e[b]=new Zeb(d[b],null,-1)}return e};var TH=mdb(Uie,'StackTraceCreator/CollectorLegacy',864);bcb(1961,1960,{});_.be=function aA(a){};_.de=function bA(a,b,c,d){return new Zeb(b,a+'@'+d,c<0?-1:c)};_.ce=function cA(a){var b,c,d,e,f,g;e=Wz(a);f=KC(VI,nie,310,0,0,1);b=0;d=e.length;if(d==0){return f}g=_z(this,e[0]);dfb(g.d,Xie)||(f[b++]=g);for(c=1;c<d;c++){f[b++]=_z(this,e[c])}return f};var VH=mdb(Uie,'StackTraceCreator/CollectorModern',1961);bcb(865,1961,{},dA);_.de=function eA(a,b,c,d){return new Zeb(b,a,-1)};var UH=mdb(Uie,'StackTraceCreator/CollectorModernNoSourceMap',865);bcb(1050,1,{});var cI=mdb(yje,zje,1050);bcb(615,1050,{615:1},HA);var FA;var XH=mdb(Aje,zje,615);bcb(2001,1,{});var dI=mdb(yje,Bje,2001);bcb(2002,2001,{});var YH=mdb(Aje,Bje,2002);bcb(1090,1,{},MA);var JA;var ZH=mdb(Aje,'LocaleInfo',1090);bcb(1918,1,{},PA);_.a=0;var _H=mdb(Aje,'TimeZone',1918);bcb(1258,2002,{},VA);var aI=mdb('com.google.gwt.i18n.client.impl.cldr','DateTimeFormatInfoImpl',1258);bcb(434,1,{434:1},WA);_.a=false;_.b=0;var bI=mdb(yje,'DateTimeFormat/PatternPart',434);bcb(199,1,Cje,eB,fB,gB);_.wd=function hB(a){return XA(this,BD(a,199))};_.Fb=function iB(a){return JD(a,199)&&Bbb(Cbb(this.q.getTime()),Cbb(BD(a,199).q.getTime()))};_.Hb=function jB(){var a;a=Cbb(this.q.getTime());return Tbb(Vbb(a,Pbb(a,32)))};_.Ib=function lB(){var a,b,c;c=-this.q.getTimezoneOffset();a=(c>=0?'+':'')+(c/60|0);b=kB($wnd.Math.abs(c)%60);return (Dpb(),Bpb)[this.q.getDay()]+' '+Cpb[this.q.getMonth()]+' '+kB(this.q.getDate())+' '+kB(this.q.getHours())+':'+kB(this.q.getMinutes())+':'+kB(this.q.getSeconds())+' GMT'+a+b+' '+this.q.getFullYear()};var $J=mdb(bie,'Date',199);bcb(1915,199,Cje,nB);_.a=false;_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;_.g=false;_.i=0;_.j=0;_.k=0;_.n=0;_.o=0;_.p=0;var eI=mdb('com.google.gwt.i18n.shared.impl','DateRecord',1915);bcb(1966,1,{});_.fe=function oB(){return null};_.ge=function pB(){return null};_.he=function qB(){return null};_.ie=function rB(){return null};_.je=function sB(){return null};var nI=mdb(Dje,'JSONValue',1966);bcb(216,1966,{216:1},wB,xB);_.Fb=function yB(a){if(!JD(a,216)){return false}return qz(this.a,BD(a,216).a)};_.ee=function zB(){return DB};_.Hb=function AB(){return rz(this.a)};_.fe=function BB(){return this};_.Ib=function CB(){var a,b,c;c=new Wfb('[');for(b=0,a=this.a.length;b<a;b++){b>0&&(c.a+=',',c);Pfb(c,tB(this,b))}c.a+=']';return c.a};var fI=mdb(Dje,'JSONArray',216);bcb(483,1966,{483:1},HB);_.ee=function IB(){return LB};_.ge=function JB(){return this};_.Ib=function KB(){return Bcb(),''+this.a};_.a=false;var EB,FB;var gI=mdb(Dje,'JSONBoolean',483);bcb(985,60,Tie,MB);var hI=mdb(Dje,'JSONException',985);bcb(1023,1966,{},PB);_.ee=function QB(){return SB};_.Ib=function RB(){return Xhe};var NB;var iI=mdb(Dje,'JSONNull',1023);bcb(258,1966,{258:1},TB);_.Fb=function UB(a){if(!JD(a,258)){return false}return this.a==BD(a,258).a};_.ee=function VB(){return ZB};_.Hb=function WB(){return Hdb(this.a)};_.he=function XB(){return this};_.Ib=function YB(){return this.a+''};_.a=0;var jI=mdb(Dje,'JSONNumber',258);bcb(183,1966,{183:1},eC,fC);_.Fb=function gC(a){if(!JD(a,183)){return false}return qz(this.a,BD(a,183).a)};_.ee=function hC(){return lC};_.Hb=function iC(){return rz(this.a)};_.ie=function jC(){return this};_.Ib=function kC(){var a,b,c,d,e,f,g;g=new Wfb('{');a=true;f=$B(this,KC(ZI,nie,2,0,6,1));for(c=f,d=0,e=c.length;d<e;++d){b=c[d];a?(a=false):(g.a+=She,g);Qfb(g,vz(b));g.a+=':';Pfb(g,aC(this,b))}g.a+='}';return g.a};var lI=mdb(Dje,'JSONObject',183);bcb(596,eie,fie,mC);_.Hc=function nC(a){return ND(a)&&_B(this.a,GD(a))};_.Kc=function oC(){return new vib(new amb(this.b))};_.gc=function pC(){return this.b.length};var kI=mdb(Dje,'JSONObject/1',596);var qC;bcb(204,1966,{204:1},yC);_.Fb=function zC(a){if(!JD(a,204)){return false}return dfb(this.a,BD(a,204).a)};_.ee=function AC(){return EC};_.Hb=function BC(){return LCb(this.a)};_.je=function CC(){return this};_.Ib=function DC(){return vz(this.a)};var mI=mdb(Dje,'JSONString',204);var QC;var sD,tD,uD,vD;bcb(1962,1,{525:1});var pI=mdb(Lje,'OutputStream',1962);bcb(1963,1962,{525:1});var oI=mdb(Lje,'FilterOutputStream',1963);bcb(866,1963,{525:1},jcb);var qI=mdb(Lje,'PrintStream',866);bcb(418,1,{475:1});_.Ib=function ncb(){return this.a};var rI=mdb(Phe,'AbstractStringBuilder',418);bcb(529,60,Tie,ocb);var sI=mdb(Phe,'ArithmeticException',529);bcb(73,60,Mje,pcb,qcb);var II=mdb(Phe,'IndexOutOfBoundsException',73);bcb(320,73,{3:1,320:1,102:1,73:1,60:1,78:1},rcb,scb);var tI=mdb(Phe,'ArrayIndexOutOfBoundsException',320);bcb(528,60,Tie,tcb,ucb);var uI=mdb(Phe,'ArrayStoreException',528);bcb(289,78,Nje,vcb);var DI=mdb(Phe,'Error',289);bcb(194,289,Nje,xcb,ycb);var vI=mdb(Phe,'AssertionError',194);xD={3:1,476:1,35:1};var zcb,Acb;var wI=mdb(Phe,'Boolean',476);bcb(236,1,{3:1,236:1});var Gcb;var RI=mdb(Phe,'Number',236);bcb(217,236,{3:1,217:1,35:1,236:1},Mcb);_.wd=function Ncb(a){return Lcb(this,BD(a,217))};_.ke=function Ocb(){return this.a};_.Fb=function Pcb(a){return JD(a,217)&&BD(a,217).a==this.a};_.Hb=function Qcb(){return this.a};_.Ib=function Rcb(){return ''+this.a};_.a=0;var xI=mdb(Phe,'Byte',217);var Tcb;bcb(172,1,{3:1,172:1,35:1},Xcb);_.wd=function Ycb(a){return Wcb(this,BD(a,172))};_.Fb=function $cb(a){return JD(a,172)&&BD(a,172).a==this.a};_.Hb=function _cb(){return this.a};_.Ib=function adb(){return String.fromCharCode(this.a)};_.a=0;var Vcb;var yI=mdb(Phe,'Character',172);var cdb;bcb(205,60,{3:1,205:1,102:1,60:1,78:1},Bdb,Cdb);var zI=mdb(Phe,'ClassCastException',205);yD={3:1,35:1,333:1,236:1};var BI=mdb(Phe,'Double',333);bcb(155,236,{3:1,35:1,155:1,236:1},Ndb,Odb);_.wd=function Pdb(a){return Mdb(this,BD(a,155))};_.ke=function Qdb(){return this.a};_.Fb=function Rdb(a){return JD(a,155)&&Fdb(this.a,BD(a,155).a)};_.Hb=function Sdb(){return QD(this.a)};_.Ib=function Udb(){return ''+this.a};_.a=0;var FI=mdb(Phe,'Float',155);bcb(32,60,{3:1,102:1,32:1,60:1,78:1},Vdb,Wdb,Xdb);var GI=mdb(Phe,'IllegalArgumentException',32);bcb(71,60,Tie,Ydb,Zdb);var HI=mdb(Phe,'IllegalStateException',71);bcb(19,236,{3:1,35:1,19:1,236:1},_db);_.wd=function ceb(a){return $db(this,BD(a,19))};_.ke=function deb(){return this.a};_.Fb=function eeb(a){return JD(a,19)&&BD(a,19).a==this.a};_.Hb=function feb(){return this.a};_.Ib=function leb(){return ''+this.a};_.a=0;var JI=mdb(Phe,'Integer',19);var neb;var peb;bcb(162,236,{3:1,35:1,162:1,236:1},teb);_.wd=function veb(a){return seb(this,BD(a,162))};_.ke=function web(){return Sbb(this.a)};_.Fb=function xeb(a){return JD(a,162)&&Bbb(BD(a,162).a,this.a)};_.Hb=function yeb(){return Tbb(this.a)};_.Ib=function zeb(){return ''+Ubb(this.a)};_.a=0;var MI=mdb(Phe,'Long',162);var Beb;bcb(2039,1,{});bcb(1831,60,Tie,Feb);var NI=mdb(Phe,'NegativeArraySizeException',1831);bcb(173,598,{3:1,102:1,173:1,60:1,78:1},Geb,Heb);_.Wd=function Ieb(a){return new TypeError(a)};var OI=mdb(Phe,'NullPointerException',173);var Jeb,Keb,Leb,Meb;bcb(127,32,{3:1,102:1,32:1,127:1,60:1,78:1},Oeb);var QI=mdb(Phe,'NumberFormatException',127);bcb(184,236,{3:1,35:1,236:1,184:1},Qeb);_.wd=function Reb(a){return Peb(this,BD(a,184))};_.ke=function Seb(){return this.a};_.Fb=function Teb(a){return JD(a,184)&&BD(a,184).a==this.a};_.Hb=function Ueb(){return this.a};_.Ib=function Veb(){return ''+this.a};_.a=0;var UI=mdb(Phe,'Short',184);var Xeb;bcb(310,1,{3:1,310:1},Zeb);_.Fb=function $eb(a){var b;if(JD(a,310)){b=BD(a,310);return this.c==b.c&&this.d==b.d&&this.a==b.a&&this.b==b.b}return false};_.Hb=function _eb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[meb(this.c),this.a,this.d,this.b]))};_.Ib=function afb(){return this.a+'.'+this.d+'('+(this.b!=null?this.b:'Unknown Source')+(this.c>=0?':'+this.c:'')+')'};_.c=0;var VI=mdb(Phe,'StackTraceElement',310);zD={3:1,475:1,35:1,2:1};var ZI=mdb(Phe,Vie,2);bcb(107,418,{475:1},Hfb,Ifb,Jfb);var WI=mdb(Phe,'StringBuffer',107);bcb(100,418,{475:1},Ufb,Vfb,Wfb);var XI=mdb(Phe,'StringBuilder',100);bcb(687,73,Mje,Xfb);var YI=mdb(Phe,'StringIndexOutOfBoundsException',687);bcb(2043,1,{});var Yfb;bcb(844,1,{},_fb);_.Kb=function agb(a){return BD(a,78).e};var $I=mdb(Phe,'Throwable/lambda$0$Type',844);bcb(41,60,{3:1,102:1,60:1,78:1,41:1},bgb,cgb);var aJ=mdb(Phe,'UnsupportedOperationException',41);bcb(240,236,{3:1,35:1,236:1,240:1},sgb,tgb);_.wd=function wgb(a){return mgb(this,BD(a,240))};_.ke=function xgb(){return Hcb(rgb(this))};_.Fb=function ygb(a){var b;if(this===a){return true}if(JD(a,240)){b=BD(a,240);return this.e==b.e&&mgb(this,b)==0}return false};_.Hb=function zgb(){var a;if(this.b!=0){return this.b}if(this.a<54){a=Cbb(this.f);this.b=Tbb(xbb(a,-1));this.b=33*this.b+Tbb(xbb(Obb(a,32),-1));this.b=17*this.b+QD(this.e);return this.b}this.b=17*Ngb(this.c)+QD(this.e);return this.b};_.Ib=function Agb(){return rgb(this)};_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var dgb,egb,fgb,ggb,hgb,igb,jgb,kgb;var bJ=mdb('java.math','BigDecimal',240);bcb(91,236,{3:1,35:1,236:1,91:1},Tgb,Ugb,Vgb,Wgb,Xgb,Ygb);_.wd=function $gb(a){return Igb(this,BD(a,91))};_.ke=function _gb(){return Hcb(shb(this,0))};_.Fb=function ahb(a){return Kgb(this,a)};_.Hb=function chb(){return Ngb(this)};_.Ib=function ehb(){return shb(this,0)};_.b=-2;_.c=0;_.d=0;_.e=0;var Bgb,Cgb,Dgb,Egb,Fgb,Ggb;var cJ=mdb('java.math','BigInteger',91);var nhb,ohb;var Bhb,Chb;bcb(488,1967,cie);_.$b=function Xhb(){Uhb(this)};_._b=function Yhb(a){return Mhb(this,a)};_.uc=function Zhb(a){return Nhb(this,a,this.g)||Nhb(this,a,this.f)};_.vc=function $hb(){return new eib(this)};_.xc=function _hb(a){return Ohb(this,a)};_.zc=function aib(a,b){return Rhb(this,a,b)};_.Bc=function bib(a){return Thb(this,a)};_.gc=function cib(){return Vhb(this)};var gJ=mdb(bie,'AbstractHashMap',488);bcb(261,eie,fie,eib);_.$b=function fib(){this.a.$b()};_.Hc=function gib(a){return dib(this,a)};_.Kc=function hib(){return new nib(this.a)};_.Mc=function iib(a){var b;if(dib(this,a)){b=BD(a,42).cd();this.a.Bc(b);return true}return false};_.gc=function jib(){return this.a.gc()};var fJ=mdb(bie,'AbstractHashMap/EntrySet',261);bcb(262,1,aie,nib);_.Nb=function oib(a){Rrb(this,a)};_.Pb=function qib(){return lib(this)};_.Ob=function pib(){return this.b};_.Qb=function rib(){mib(this)};_.b=false;var eJ=mdb(bie,'AbstractHashMap/EntrySetIterator',262);bcb(417,1,aie,vib);_.Nb=function wib(a){Rrb(this,a)};_.Ob=function xib(){return sib(this)};_.Pb=function yib(){return tib(this)};_.Qb=function zib(){uib(this)};_.b=0;_.c=-1;var hJ=mdb(bie,'AbstractList/IteratorImpl',417);bcb(96,417,jie,Bib);_.Qb=function Hib(){uib(this)};_.Rb=function Cib(a){Aib(this,a)};_.Sb=function Dib(){return this.b>0};_.Tb=function Eib(){return this.b};_.Ub=function Fib(){return sCb(this.b>0),this.a.Xb(this.c=--this.b)};_.Vb=function Gib(){return this.b-1};_.Wb=function Iib(a){yCb(this.c!=-1);this.a._c(this.c,a)};var iJ=mdb(bie,'AbstractList/ListIteratorImpl',96);bcb(219,52,Lie,Jib);_.Vc=function Kib(a,b){wCb(a,this.b);this.c.Vc(this.a+a,b);++this.b};_.Xb=function Lib(a){tCb(a,this.b);return this.c.Xb(this.a+a)};_.$c=function Mib(a){var b;tCb(a,this.b);b=this.c.$c(this.a+a);--this.b;return b};_._c=function Nib(a,b){tCb(a,this.b);return this.c._c(this.a+a,b)};_.gc=function Oib(){return this.b};_.a=0;_.b=0;var jJ=mdb(bie,'AbstractList/SubList',219);bcb(384,eie,fie,Pib);_.$b=function Qib(){this.a.$b()};_.Hc=function Rib(a){return this.a._b(a)};_.Kc=function Sib(){var a;return a=this.a.vc().Kc(),new Vib(a)};_.Mc=function Tib(a){if(this.a._b(a)){this.a.Bc(a);return true}return false};_.gc=function Uib(){return this.a.gc()};var mJ=mdb(bie,'AbstractMap/1',384);bcb(691,1,aie,Vib);_.Nb=function Wib(a){Rrb(this,a)};_.Ob=function Xib(){return this.a.Ob()};_.Pb=function Yib(){var a;return a=BD(this.a.Pb(),42),a.cd()};_.Qb=function Zib(){this.a.Qb()};var lJ=mdb(bie,'AbstractMap/1/1',691);bcb(226,28,die,$ib);_.$b=function _ib(){this.a.$b()};_.Hc=function ajb(a){return this.a.uc(a)};_.Kc=function bjb(){var a;return a=this.a.vc().Kc(),new djb(a)};_.gc=function cjb(){return this.a.gc()};var oJ=mdb(bie,'AbstractMap/2',226);bcb(294,1,aie,djb);_.Nb=function ejb(a){Rrb(this,a)};_.Ob=function fjb(){return this.a.Ob()};_.Pb=function gjb(){var a;return a=BD(this.a.Pb(),42),a.dd()};_.Qb=function hjb(){this.a.Qb()};var nJ=mdb(bie,'AbstractMap/2/1',294);bcb(484,1,{484:1,42:1});_.Fb=function jjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.d,b.cd())&&wtb(this.e,b.dd())};_.cd=function kjb(){return this.d};_.dd=function ljb(){return this.e};_.Hb=function mjb(){return xtb(this.d)^xtb(this.e)};_.ed=function njb(a){return ijb(this,a)};_.Ib=function ojb(){return this.d+'='+this.e};var pJ=mdb(bie,'AbstractMap/AbstractEntry',484);bcb(383,484,{484:1,383:1,42:1},pjb);var qJ=mdb(bie,'AbstractMap/SimpleEntry',383);bcb(1984,1,_je);_.Fb=function qjb(a){var b;if(!JD(a,42)){return false}b=BD(a,42);return wtb(this.cd(),b.cd())&&wtb(this.dd(),b.dd())};_.Hb=function rjb(){return xtb(this.cd())^xtb(this.dd())};_.Ib=function sjb(){return this.cd()+'='+this.dd()};var rJ=mdb(bie,lie,1984);bcb(1992,1967,gie);_.tc=function vjb(a){return tjb(this,a)};_._b=function wjb(a){return ujb(this,a)};_.vc=function xjb(){return new Bjb(this)};_.xc=function yjb(a){var b;b=a;return Wd(Awb(this,b))};_.ec=function Ajb(){return new Gjb(this)};var wJ=mdb(bie,'AbstractNavigableMap',1992);bcb(739,eie,fie,Bjb);_.Hc=function Cjb(a){return JD(a,42)&&tjb(this.b,BD(a,42))};_.Kc=function Djb(){return new Ywb(this.b)};_.Mc=function Ejb(a){var b;if(JD(a,42)){b=BD(a,42);return Kwb(this.b,b)}return false};_.gc=function Fjb(){return this.b.c};var tJ=mdb(bie,'AbstractNavigableMap/EntrySet',739);bcb(493,eie,iie,Gjb);_.Nc=function Mjb(){return new Rub(this)};_.$b=function Hjb(){zwb(this.a)};_.Hc=function Ijb(a){return ujb(this.a,a)};_.Kc=function Jjb(){var a;return a=new Ywb((new cxb(this.a)).b),new Njb(a)};_.Mc=function Kjb(a){if(ujb(this.a,a)){Jwb(this.a,a);return true}return false};_.gc=function Ljb(){return this.a.c};var vJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet',493);bcb(494,1,aie,Njb);_.Nb=function Ojb(a){Rrb(this,a)};_.Ob=function Pjb(){return sib(this.a.a)};_.Pb=function Qjb(){var a;return a=Wwb(this.a),a.cd()};_.Qb=function Rjb(){Xwb(this.a)};var uJ=mdb(bie,'AbstractNavigableMap/NavigableKeySet/1',494);bcb(2004,28,die);_.Fc=function Sjb(a){return zCb(cub(this,a)),true};_.Gc=function Tjb(a){uCb(a);mCb(a!=this,"Can't add a queue to itself");return ye(this,a)};_.$b=function Ujb(){while(dub(this)!=null);};var xJ=mdb(bie,'AbstractQueue',2004);bcb(302,28,{4:1,20:1,28:1,14:1},jkb,kkb);_.Fc=function lkb(a){return Xjb(this,a),true};_.$b=function nkb(){Yjb(this)};_.Hc=function okb(a){return Zjb(new xkb(this),a)};_.dc=function pkb(){return akb(this)};_.Kc=function qkb(){return new xkb(this)};_.Mc=function rkb(a){return dkb(new xkb(this),a)};_.gc=function skb(){return this.c-this.b&this.a.length-1};_.Nc=function tkb(){return new Kub(this,272)};_.Qc=function ukb(a){var b;b=this.c-this.b&this.a.length-1;a.length<b&&(a=eCb(new Array(b),a));$jb(this,a,b);a.length>b&&NC(a,b,null);return a};_.b=0;_.c=0;var BJ=mdb(bie,'ArrayDeque',302);bcb(446,1,aie,xkb);_.Nb=function ykb(a){Rrb(this,a)};_.Ob=function zkb(){return this.a!=this.b};_.Pb=function Akb(){return vkb(this)};_.Qb=function Bkb(){wkb(this)};_.a=0;_.b=0;_.c=-1;var AJ=mdb(bie,'ArrayDeque/IteratorImpl',446);bcb(12,52,ake,Rkb,Skb,Tkb);_.Vc=function Ukb(a,b){Dkb(this,a,b)};_.Fc=function Vkb(a){return Ekb(this,a)};_.Wc=function Wkb(a,b){return Fkb(this,a,b)};_.Gc=function Xkb(a){return Gkb(this,a)};_.$b=function Ykb(){this.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function Zkb(a){return Jkb(this,a,0)!=-1};_.Jc=function $kb(a){Hkb(this,a)};_.Xb=function _kb(a){return Ikb(this,a)};_.Xc=function alb(a){return Jkb(this,a,0)};_.dc=function blb(){return this.c.length==0};_.Kc=function clb(){return new olb(this)};_.$c=function dlb(a){return Kkb(this,a)};_.Mc=function elb(a){return Lkb(this,a)};_.Ud=function flb(a,b){Mkb(this,a,b)};_._c=function glb(a,b){return Nkb(this,a,b)};_.gc=function hlb(){return this.c.length};_.ad=function ilb(a){Okb(this,a)};_.Pc=function jlb(){return Pkb(this)};_.Qc=function klb(a){return Qkb(this,a)};var DJ=mdb(bie,'ArrayList',12);bcb(7,1,aie,olb);_.Nb=function plb(a){Rrb(this,a)};_.Ob=function qlb(){return llb(this)};_.Pb=function rlb(){return mlb(this)};_.Qb=function slb(){nlb(this)};_.a=0;_.b=-1;var CJ=mdb(bie,'ArrayList/1',7);bcb(2013,$wnd.Function,{},Ylb);_.te=function Zlb(a,b){return Kdb(a,b)};bcb(154,52,bke,amb);_.Hc=function bmb(a){return Bt(this,a)!=-1};_.Jc=function cmb(a){var b,c,d,e;uCb(a);for(c=this.a,d=0,e=c.length;d<e;++d){b=c[d];a.td(b)}};_.Xb=function dmb(a){return $lb(this,a)};_._c=function emb(a,b){var c;c=(tCb(a,this.a.length),this.a[a]);NC(this.a,a,b);return c};_.gc=function fmb(){return this.a.length};_.ad=function gmb(a){Mlb(this.a,this.a.length,a)};_.Pc=function hmb(){return _lb(this,KC(SI,Uhe,1,this.a.length,5,1))};_.Qc=function imb(a){return _lb(this,a)};var EJ=mdb(bie,'Arrays/ArrayList',154);var jmb,kmb,lmb;bcb(940,52,bke,xmb);_.Hc=function ymb(a){return false};_.Xb=function zmb(a){return wmb(a)};_.Kc=function Amb(){return mmb(),Emb(),Dmb};_.Yc=function Bmb(){return mmb(),Emb(),Dmb};_.gc=function Cmb(){return 0};var GJ=mdb(bie,'Collections/EmptyList',940);bcb(941,1,jie,Fmb);_.Nb=function Hmb(a){Rrb(this,a)};_.Rb=function Gmb(a){throw vbb(new bgb)};_.Ob=function Imb(){return false};_.Sb=function Jmb(){return false};_.Pb=function Kmb(){throw vbb(new utb)};_.Tb=function Lmb(){return 0};_.Ub=function Mmb(){throw vbb(new utb)};_.Vb=function Nmb(){return -1};_.Qb=function Omb(){throw vbb(new Ydb)};_.Wb=function Pmb(a){throw vbb(new Ydb)};var Dmb;var FJ=mdb(bie,'Collections/EmptyListIterator',941);bcb(943,1967,Aie,Qmb);_._b=function Rmb(a){return false};_.uc=function Smb(a){return false};_.vc=function Tmb(){return mmb(),lmb};_.xc=function Umb(a){return null};_.ec=function Vmb(){return mmb(),lmb};_.gc=function Wmb(){return 0};_.Cc=function Xmb(){return mmb(),jmb};var HJ=mdb(bie,'Collections/EmptyMap',943);bcb(942,eie,Cie,Ymb);_.Hc=function Zmb(a){return false};_.Kc=function $mb(){return mmb(),Emb(),Dmb};_.gc=function _mb(){return 0};var IJ=mdb(bie,'Collections/EmptySet',942);bcb(599,52,{3:1,20:1,28:1,52:1,14:1,15:1},anb);_.Hc=function bnb(a){return wtb(this.a,a)};_.Xb=function cnb(a){tCb(a,1);return this.a};_.gc=function dnb(){return 1};var JJ=mdb(bie,'Collections/SingletonList',599);bcb(372,1,wie,lnb);_.Jc=function rnb(a){reb(this,a)};_.Lc=function unb(){return new YAb(null,this.Nc())};_.Nc=function xnb(){return new Kub(this,0)};_.Oc=function ynb(){return new YAb(null,this.Nc())};_.Fc=function mnb(a){return enb()};_.Gc=function nnb(a){return fnb()};_.$b=function onb(){gnb()};_.Hc=function pnb(a){return hnb(this,a)};_.Ic=function qnb(a){return inb(this,a)};_.dc=function snb(){return this.b.dc()};_.Kc=function tnb(){return new Dnb(this.b.Kc())};_.Mc=function vnb(a){return jnb()};_.gc=function wnb(){return this.b.gc()};_.Pc=function znb(){return this.b.Pc()};_.Qc=function Anb(a){return knb(this,a)};_.Ib=function Bnb(){return fcb(this.b)};var LJ=mdb(bie,'Collections/UnmodifiableCollection',372);bcb(371,1,aie,Dnb);_.Nb=function Enb(a){Rrb(this,a)};_.Ob=function Fnb(){return this.b.Ob()};_.Pb=function Gnb(){return this.b.Pb()};_.Qb=function Hnb(){Cnb()};var KJ=mdb(bie,'Collections/UnmodifiableCollectionIterator',371);bcb(531,372,cke,Inb);_.Nc=function Vnb(){return new Kub(this,16)};_.Vc=function Jnb(a,b){throw vbb(new bgb)};_.Wc=function Knb(a,b){throw vbb(new bgb)};_.Fb=function Lnb(a){return pb(this.a,a)};_.Xb=function Mnb(a){return this.a.Xb(a)};_.Hb=function Nnb(){return tb(this.a)};_.Xc=function Onb(a){return this.a.Xc(a)};_.dc=function Pnb(){return this.a.dc()};_.Yc=function Qnb(){return new Xnb(this.a.Zc(0))};_.Zc=function Rnb(a){return new Xnb(this.a.Zc(a))};_.$c=function Snb(a){throw vbb(new bgb)};_._c=function Tnb(a,b){throw vbb(new bgb)};_.ad=function Unb(a){throw vbb(new bgb)};_.bd=function Wnb(a,b){return new Inb(this.a.bd(a,b))};var NJ=mdb(bie,'Collections/UnmodifiableList',531);bcb(690,371,jie,Xnb);_.Qb=function bob(){Cnb()};_.Rb=function Ynb(a){throw vbb(new bgb)};_.Sb=function Znb(){return this.a.Sb()};_.Tb=function $nb(){return this.a.Tb()};_.Ub=function _nb(){return this.a.Ub()};_.Vb=function aob(){return this.a.Vb()};_.Wb=function cob(a){throw vbb(new bgb)};var MJ=mdb(bie,'Collections/UnmodifiableListIterator',690);bcb(600,1,cie,iob);_.wc=function oob(a){stb(this,a)};_.yc=function tob(a,b,c){return ttb(this,a,b,c)};_.$b=function job(){throw vbb(new bgb)};_._b=function kob(a){return this.c._b(a)};_.uc=function lob(a){return dob(this,a)};_.vc=function mob(){return eob(this)};_.Fb=function nob(a){return fob(this,a)};_.xc=function pob(a){return this.c.xc(a)};_.Hb=function qob(){return tb(this.c)};_.dc=function rob(){return this.c.dc()};_.ec=function sob(){return gob(this)};_.zc=function uob(a,b){throw vbb(new bgb)};_.Bc=function vob(a){throw vbb(new bgb)};_.gc=function wob(){return this.c.gc()};_.Ib=function xob(){return fcb(this.c)};_.Cc=function yob(){return hob(this)};var RJ=mdb(bie,'Collections/UnmodifiableMap',600);bcb(382,372,Bie,zob);_.Nc=function Cob(){return new Kub(this,1)};_.Fb=function Aob(a){return pb(this.b,a)};_.Hb=function Bob(){return tb(this.b)};var TJ=mdb(bie,'Collections/UnmodifiableSet',382);bcb(944,382,Bie,Gob);_.Hc=function Hob(a){return Dob(this,a)};_.Ic=function Iob(a){return this.b.Ic(a)};_.Kc=function Job(){var a;a=this.b.Kc();return new Mob(a)};_.Pc=function Kob(){var a;a=this.b.Pc();Fob(a,a.length);return a};_.Qc=function Lob(a){return Eob(this,a)};var QJ=mdb(bie,'Collections/UnmodifiableMap/UnmodifiableEntrySet',944);bcb(945,1,aie,Mob);_.Nb=function Nob(a){Rrb(this,a)};_.Pb=function Pob(){return new Rob(BD(this.a.Pb(),42))};_.Ob=function Oob(){return this.a.Ob()};_.Qb=function Qob(){throw vbb(new bgb)};var OJ=mdb(bie,'Collections/UnmodifiableMap/UnmodifiableEntrySet/1',945);bcb(688,1,_je,Rob);_.Fb=function Sob(a){return this.a.Fb(a)};_.cd=function Tob(){return this.a.cd()};_.dd=function Uob(){return this.a.dd()};_.Hb=function Vob(){return this.a.Hb()};_.ed=function Wob(a){throw vbb(new bgb)};_.Ib=function Xob(){return fcb(this.a)};var PJ=mdb(bie,'Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry',688);bcb(601,531,{20:1,14:1,15:1,54:1},Yob);var SJ=mdb(bie,'Collections/UnmodifiableRandomAccessList',601);bcb(689,382,Die,Zob);_.Nc=function apb(){return new Rub(this)};_.Fb=function $ob(a){return pb(this.a,a)};_.Hb=function _ob(){return tb(this.a)};var UJ=mdb(bie,'Collections/UnmodifiableSortedSet',689);bcb(847,1,dke,bpb);_.ue=function cpb(a,b){var c;return c=Ucc(BD(a,11),BD(b,11)),c!=0?c:Wcc(BD(a,11),BD(b,11))};_.Fb=function dpb(a){return this===a};_.ve=function epb(){return new tpb(this)};var VJ=mdb(bie,'Comparator/lambda$0$Type',847);var fpb,gpb,hpb;bcb(751,1,dke,kpb);_.ue=function lpb(a,b){return jpb(BD(a,35),BD(b,35))};_.Fb=function mpb(a){return this===a};_.ve=function npb(){return ipb(),hpb};var WJ=mdb(bie,'Comparators/NaturalOrderComparator',751);bcb(1177,1,dke,ppb);_.ue=function qpb(a,b){return opb(BD(a,35),BD(b,35))};_.Fb=function rpb(a){return this===a};_.ve=function spb(){return ipb(),gpb};var XJ=mdb(bie,'Comparators/ReverseNaturalOrderComparator',1177);bcb(64,1,dke,tpb);_.Fb=function vpb(a){return this===a};_.ue=function upb(a,b){return this.a.ue(b,a)};_.ve=function wpb(){return this.a};var YJ=mdb(bie,'Comparators/ReversedComparator',64);bcb(166,60,Tie,Apb);var ZJ=mdb(bie,'ConcurrentModificationException',166);var Bpb,Cpb;bcb(1904,1,eke,Gpb);_.we=function Hpb(a){Epb(this,a)};_.Ib=function Ipb(){return 'DoubleSummaryStatistics[count = '+Ubb(this.a)+', avg = '+(Dbb(this.a,0)?Fpb(this)/Sbb(this.a):0)+', min = '+this.c+', max = '+this.b+', sum = '+Fpb(this)+']'};_.a=0;_.b=Qje;_.c=Pje;_.d=0;_.e=0;_.f=0;var _J=mdb(bie,'DoubleSummaryStatistics',1904);bcb(1805,60,Tie,Jpb);var aK=mdb(bie,'EmptyStackException',1805);bcb(451,1967,cie,Rpb);_.zc=function Xpb(a,b){return Opb(this,a,b)};_.$b=function Spb(){Kpb(this)};_._b=function Tpb(a){return Lpb(this,a)};_.uc=function Upb(a){var b,c;for(c=new Gqb(this.a);c.a<c.c.a.length;){b=Fqb(c);if(wtb(a,this.b[b.g])){return true}}return false};_.vc=function Vpb(){return new _pb(this)};_.xc=function Wpb(a){return Mpb(this,a)};_.Bc=function Ypb(a){return Ppb(this,a)};_.gc=function Zpb(){return this.a.c};var eK=mdb(bie,'EnumMap',451);bcb(1352,eie,fie,_pb);_.$b=function aqb(){Kpb(this.a)};_.Hc=function bqb(a){return $pb(this,a)};_.Kc=function cqb(){return new fqb(this.a)};_.Mc=function dqb(a){var b;if($pb(this,a)){b=BD(a,42).cd();Ppb(this.a,b);return true}return false};_.gc=function eqb(){return this.a.a.c};var cK=mdb(bie,'EnumMap/EntrySet',1352);bcb(1353,1,aie,fqb);_.Nb=function gqb(a){Rrb(this,a)};_.Pb=function iqb(){return this.b=Fqb(this.a),new kqb(this.c,this.b)};_.Ob=function hqb(){return Eqb(this.a)};_.Qb=function jqb(){yCb(!!this.b);Ppb(this.c,this.b);this.b=null};var bK=mdb(bie,'EnumMap/EntrySetIterator',1353);bcb(1354,1984,_je,kqb);_.cd=function lqb(){return this.a};_.dd=function mqb(){return this.b.b[this.a.g]};_.ed=function nqb(a){return Qpb(this.b,this.a.g,a)};var dK=mdb(bie,'EnumMap/MapEntry',1354);bcb(174,eie,{20:1,28:1,14:1,174:1,21:1});var hK=mdb(bie,'EnumSet',174);bcb(156,174,{20:1,28:1,14:1,174:1,156:1,21:1},xqb);_.Fc=function yqb(a){return rqb(this,BD(a,22))};_.Hc=function zqb(a){return tqb(this,a)};_.Kc=function Aqb(){return new Gqb(this)};_.Mc=function Bqb(a){return vqb(this,a)};_.gc=function Cqb(){return this.c};_.c=0;var gK=mdb(bie,'EnumSet/EnumSetImpl',156);bcb(343,1,aie,Gqb);_.Nb=function Hqb(a){Rrb(this,a)};_.Pb=function Jqb(){return Fqb(this)};_.Ob=function Iqb(){return Eqb(this)};_.Qb=function Kqb(){yCb(this.b!=-1);NC(this.c.b,this.b,null);--this.c.c;this.b=-1};_.a=-1;_.b=-1;var fK=mdb(bie,'EnumSet/EnumSetImpl/IteratorImpl',343);bcb(43,488,fke,Lqb,Mqb,Nqb);_.re=function Oqb(a,b){return PD(a)===PD(b)||a!=null&&pb(a,b)};_.se=function Pqb(a){var b;b=tb(a);return b|0};var iK=mdb(bie,'HashMap',43);bcb(53,eie,gke,Tqb,Uqb,Vqb);_.Fc=function Xqb(a){return Qqb(this,a)};_.$b=function Yqb(){this.a.$b()};_.Hc=function Zqb(a){return Rqb(this,a)};_.dc=function $qb(){return this.a.gc()==0};_.Kc=function _qb(){return this.a.ec().Kc()};_.Mc=function arb(a){return Sqb(this,a)};_.gc=function brb(){return this.a.gc()};var jK=mdb(bie,'HashSet',53);bcb(1781,1,sie,drb);_.ud=function erb(a){crb(this,a)};_.Ib=function frb(){return 'IntSummaryStatistics[count = '+Ubb(this.a)+', avg = '+(Dbb(this.a,0)?Sbb(this.d)/Sbb(this.a):0)+', min = '+this.c+', max = '+this.b+', sum = '+Ubb(this.d)+']'};_.a=0;_.b=Rie;_.c=Ohe;_.d=0;var kK=mdb(bie,'IntSummaryStatistics',1781);bcb(1049,1,vie,lrb);_.Jc=function mrb(a){reb(this,a)};_.Kc=function nrb(){return new orb(this)};_.c=0;var mK=mdb(bie,'InternalHashCodeMap',1049);bcb(711,1,aie,orb);_.Nb=function prb(a){Rrb(this,a)};_.Pb=function rrb(){return this.d=this.a[this.c++],this.d};_.Ob=function qrb(){var a;if(this.c<this.a.length){return true}a=this.b.next();if(!a.done){this.a=a.value[1];this.c=0;return true}return false};_.Qb=function srb(){krb(this.e,this.d.cd());this.c!=0&&--this.c};_.c=0;_.d=null;var lK=mdb(bie,'InternalHashCodeMap/1',711);var vrb;bcb(1047,1,vie,Frb);_.Jc=function Grb(a){reb(this,a)};_.Kc=function Hrb(){return new Irb(this)};_.c=0;_.d=0;var pK=mdb(bie,'InternalStringMap',1047);bcb(710,1,aie,Irb);_.Nb=function Jrb(a){Rrb(this,a)};_.Pb=function Lrb(){return this.c=this.a,this.a=this.b.next(),new Nrb(this.d,this.c,this.d.d)};_.Ob=function Krb(){return !this.a.done};_.Qb=function Mrb(){Erb(this.d,this.c.value[0])};var nK=mdb(bie,'InternalStringMap/1',710);bcb(1048,1984,_je,Nrb);_.cd=function Orb(){return this.b.value[0]};_.dd=function Prb(){if(this.a.d!=this.c){return Crb(this.a,this.b.value[0])}return this.b.value[1]};_.ed=function Qrb(a){return Drb(this.a,this.b.value[0],a)};_.c=0;var oK=mdb(bie,'InternalStringMap/2',1048);bcb(228,43,fke,$rb,_rb);_.$b=function asb(){Urb(this)};_._b=function bsb(a){return Vrb(this,a)};_.uc=function csb(a){var b;b=this.d.a;while(b!=this.d){if(wtb(b.e,a)){return true}b=b.a}return false};_.vc=function dsb(){return new nsb(this)};_.xc=function esb(a){return Wrb(this,a)};_.zc=function fsb(a,b){return Xrb(this,a,b)};_.Bc=function gsb(a){return Zrb(this,a)};_.gc=function hsb(){return Vhb(this.e)};_.c=false;var tK=mdb(bie,'LinkedHashMap',228);bcb(387,383,{484:1,383:1,387:1,42:1},ksb,lsb);var qK=mdb(bie,'LinkedHashMap/ChainEntry',387);bcb(701,eie,fie,nsb);_.$b=function osb(){Urb(this.a)};_.Hc=function psb(a){return msb(this,a)};_.Kc=function qsb(){return new usb(this)};_.Mc=function rsb(a){var b;if(msb(this,a)){b=BD(a,42).cd();Zrb(this.a,b);return true}return false};_.gc=function ssb(){return Vhb(this.a.e)};var sK=mdb(bie,'LinkedHashMap/EntrySet',701);bcb(702,1,aie,usb);_.Nb=function vsb(a){Rrb(this,a)};_.Pb=function xsb(){return tsb(this)};_.Ob=function wsb(){return this.b!=this.c.a.d};_.Qb=function ysb(){yCb(!!this.a);xpb(this.c.a.e,this);jsb(this.a);Thb(this.c.a.e,this.a.d);ypb(this.c.a.e,this);this.a=null};var rK=mdb(bie,'LinkedHashMap/EntrySet/EntryIterator',702);bcb(178,53,gke,zsb,Asb,Bsb);var uK=mdb(bie,'LinkedHashSet',178);bcb(68,1964,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1},Psb,Qsb);_.Fc=function Rsb(a){return Dsb(this,a)};_.$b=function Ssb(){Osb(this)};_.Zc=function Tsb(a){return Jsb(this,a)};_.gc=function Usb(){return this.b};_.b=0;var xK=mdb(bie,'LinkedList',68);bcb(970,1,jie,$sb);_.Nb=function atb(a){Rrb(this,a)};_.Rb=function _sb(a){Vsb(this,a)};_.Ob=function btb(){return Wsb(this)};_.Sb=function ctb(){return this.b.b!=this.d.a};_.Pb=function dtb(){return Xsb(this)};_.Tb=function etb(){return this.a};_.Ub=function ftb(){return Ysb(this)};_.Vb=function gtb(){return this.a-1};_.Qb=function htb(){Zsb(this)};_.Wb=function itb(a){yCb(!!this.c);this.c.c=a};_.a=0;_.c=null;var vK=mdb(bie,'LinkedList/ListIteratorImpl',970);bcb(608,1,{},jtb);var wK=mdb(bie,'LinkedList/Node',608);bcb(1959,1,{});var ltb,mtb;var BK=mdb(bie,'Locale',1959);bcb(861,1959,{},otb);_.Ib=function ptb(){return ''};var zK=mdb(bie,'Locale/1',861);bcb(862,1959,{},qtb);_.Ib=function rtb(){return 'unknown'};var AK=mdb(bie,'Locale/4',862);bcb(109,60,{3:1,102:1,60:1,78:1,109:1},utb,vtb);var EK=mdb(bie,'NoSuchElementException',109);bcb(404,1,{404:1},Ftb);_.Fb=function Gtb(a){var b;if(a===this){return true}if(!JD(a,404)){return false}b=BD(a,404);return wtb(this.a,b.a)};_.Hb=function Htb(){return xtb(this.a)};_.Ib=function Jtb(){return this.a!=null?Whe+xfb(this.a)+')':'Optional.empty()'};var ztb;var HK=mdb(bie,'Optional',404);bcb(463,1,{463:1},Otb,Ptb);_.Fb=function Qtb(a){var b;if(a===this){return true}if(!JD(a,463)){return false}b=BD(a,463);return this.a==b.a&&Kdb(this.b,b.b)==0};_.Hb=function Rtb(){return this.a?QD(this.b):0};_.Ib=function Stb(){return this.a?'OptionalDouble.of('+(''+this.b)+')':'OptionalDouble.empty()'};_.a=false;_.b=0;var Ktb;var FK=mdb(bie,'OptionalDouble',463);bcb(517,1,{517:1},Wtb,Xtb);_.Fb=function Ytb(a){var b;if(a===this){return true}if(!JD(a,517)){return false}b=BD(a,517);return this.a==b.a&&beb(this.b,b.b)==0};_.Hb=function Ztb(){return this.a?this.b:0};_.Ib=function $tb(){return this.a?'OptionalInt.of('+(''+this.b)+')':'OptionalInt.empty()'};_.a=false;_.b=0;var Ttb;var GK=mdb(bie,'OptionalInt',517);bcb(503,2004,die,gub);_.Gc=function hub(a){return _tb(this,a)};_.$b=function iub(){this.b.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function jub(a){return (a==null?-1:Jkb(this.b,a,0))!=-1};_.Kc=function kub(){return new qub(this)};_.Mc=function lub(a){return eub(this,a)};_.gc=function mub(){return this.b.c.length};_.Nc=function nub(){return new Kub(this,256)};_.Pc=function oub(){return Pkb(this.b)};_.Qc=function pub(a){return Qkb(this.b,a)};var JK=mdb(bie,'PriorityQueue',503);bcb(1277,1,aie,qub);_.Nb=function rub(a){Rrb(this,a)};_.Ob=function tub(){return this.a<this.c.b.c.length};_.Pb=function uub(){sCb(this.a<this.c.b.c.length);this.b=this.a++;return Ikb(this.c.b,this.b)};_.Qb=function vub(){yCb(this.b!=-1);fub(this.c,this.a=this.b);this.b=-1};_.a=0;_.b=-1;var IK=mdb(bie,'PriorityQueue/1',1277);bcb(230,1,{230:1},Gub,Hub);_.a=0;_.b=0;var wub,xub,yub=0;var KK=mdb(bie,'Random',230);bcb(27,1,pie,Kub,Lub,Mub);_.qd=function Nub(){return this.a};_.rd=function Oub(){Iub(this);return this.c};_.Nb=function Pub(a){Iub(this);this.d.Nb(a)};_.sd=function Qub(a){return Jub(this,a)};_.a=0;_.c=0;var $K=mdb(bie,'Spliterators/IteratorSpliterator',27);bcb(485,27,pie,Rub);var MK=mdb(bie,'SortedSet/1',485);bcb(602,1,eke,Tub);_.we=function Uub(a){this.a.td(a)};var NK=mdb(bie,'Spliterator/OfDouble/0methodref$accept$Type',602);bcb(603,1,eke,Vub);_.we=function Wub(a){this.a.td(a)};var OK=mdb(bie,'Spliterator/OfDouble/1methodref$accept$Type',603);bcb(604,1,sie,Xub);_.ud=function Yub(a){this.a.td(meb(a))};var PK=mdb(bie,'Spliterator/OfInt/2methodref$accept$Type',604);bcb(605,1,sie,Zub);_.ud=function $ub(a){this.a.td(meb(a))};var QK=mdb(bie,'Spliterator/OfInt/3methodref$accept$Type',605);bcb(617,1,pie);_.Nb=function evb(a){Sub(this,a)};_.qd=function cvb(){return this.d};_.rd=function dvb(){return this.e};_.d=0;_.e=0;var WK=mdb(bie,'Spliterators/BaseSpliterator',617);bcb(721,617,pie);_.xe=function gvb(a){_ub(this,a)};_.Nb=function hvb(a){JD(a,182)?_ub(this,BD(a,182)):_ub(this,new Vub(a))};_.sd=function ivb(a){return JD(a,182)?this.ye(BD(a,182)):this.ye(new Tub(a))};var RK=mdb(bie,'Spliterators/AbstractDoubleSpliterator',721);bcb(720,617,pie);_.xe=function kvb(a){_ub(this,a)};_.Nb=function lvb(a){JD(a,196)?_ub(this,BD(a,196)):_ub(this,new Zub(a))};_.sd=function mvb(a){return JD(a,196)?this.ye(BD(a,196)):this.ye(new Xub(a))};var SK=mdb(bie,'Spliterators/AbstractIntSpliterator',720);bcb(540,617,pie);var TK=mdb(bie,'Spliterators/AbstractSpliterator',540);bcb(692,1,pie);_.Nb=function tvb(a){Sub(this,a)};_.qd=function rvb(){return this.b};_.rd=function svb(){return this.d-this.c};_.b=0;_.c=0;_.d=0;var VK=mdb(bie,'Spliterators/BaseArraySpliterator',692);bcb(947,692,pie,vvb);_.ze=function wvb(a,b){uvb(this,BD(a,38),b)};_.Nb=function xvb(a){ovb(this,a)};_.sd=function yvb(a){return pvb(this,a)};var UK=mdb(bie,'Spliterators/ArraySpliterator',947);bcb(693,692,pie,Avb);_.ze=function Cvb(a,b){zvb(this,BD(a,182),b)};_.xe=function Dvb(a){ovb(this,a)};_.Nb=function Evb(a){JD(a,182)?ovb(this,BD(a,182)):ovb(this,new Vub(a))};_.ye=function Fvb(a){return pvb(this,a)};_.sd=function Gvb(a){return JD(a,182)?pvb(this,BD(a,182)):pvb(this,new Tub(a))};var XK=mdb(bie,'Spliterators/DoubleArraySpliterator',693);bcb(1968,1,pie);_.Nb=function Lvb(a){Sub(this,a)};_.qd=function Jvb(){return 16448};_.rd=function Kvb(){return 0};var Hvb;var ZK=mdb(bie,'Spliterators/EmptySpliterator',1968);bcb(946,1968,pie,Ovb);_.xe=function Pvb(a){Mvb(a)};_.Nb=function Qvb(a){JD(a,196)?Mvb(BD(a,196)):Mvb(new Zub(a))};_.ye=function Rvb(a){return Nvb(a)};_.sd=function Svb(a){return JD(a,196)?Nvb(BD(a,196)):Nvb(new Xub(a))};var YK=mdb(bie,'Spliterators/EmptySpliterator/OfInt',946);bcb(580,52,pke,Wvb);_.Vc=function Xvb(a,b){_vb(a,this.a.c.length+1);Dkb(this.a,a,b)};_.Fc=function Yvb(a){return Ekb(this.a,a)};_.Wc=function Zvb(a,b){_vb(a,this.a.c.length+1);return Fkb(this.a,a,b)};_.Gc=function $vb(a){return Gkb(this.a,a)};_.$b=function awb(){this.a.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function bwb(a){return Jkb(this.a,a,0)!=-1};_.Ic=function cwb(a){return Be(this.a,a)};_.Jc=function dwb(a){Hkb(this.a,a)};_.Xb=function ewb(a){return _vb(a,this.a.c.length),Ikb(this.a,a)};_.Xc=function fwb(a){return Jkb(this.a,a,0)};_.dc=function gwb(){return this.a.c.length==0};_.Kc=function hwb(){return new olb(this.a)};_.$c=function iwb(a){return _vb(a,this.a.c.length),Kkb(this.a,a)};_.Ud=function jwb(a,b){Mkb(this.a,a,b)};_._c=function kwb(a,b){return _vb(a,this.a.c.length),Nkb(this.a,a,b)};_.gc=function lwb(){return this.a.c.length};_.ad=function mwb(a){Okb(this.a,a)};_.bd=function nwb(a,b){return new Jib(this.a,a,b)};_.Pc=function owb(){return Pkb(this.a)};_.Qc=function pwb(a){return Qkb(this.a,a)};_.Ib=function qwb(){return Fe(this.a)};var lL=mdb(bie,'Vector',580);bcb(809,580,pke,twb);var _K=mdb(bie,'Stack',809);bcb(206,1,{206:1},xwb);_.Ib=function ywb(){return wwb(this)};var aL=mdb(bie,'StringJoiner',206);bcb(544,1992,{3:1,83:1,171:1,161:1},Pwb,Qwb);_.$b=function Rwb(){zwb(this)};_.vc=function Swb(){return new cxb(this)};_.zc=function Twb(a,b){return Iwb(this,a,b)};_.Bc=function Uwb(a){return Jwb(this,a)};_.gc=function Vwb(){return this.c};_.c=0;var jL=mdb(bie,'TreeMap',544);bcb(390,1,aie,Ywb);_.Nb=function $wb(a){Rrb(this,a)};_.Pb=function axb(){return Wwb(this)};_.Ob=function _wb(){return sib(this.a)};_.Qb=function bxb(){Xwb(this)};var bL=mdb(bie,'TreeMap/EntryIterator',390);bcb(435,739,fie,cxb);_.$b=function dxb(){zwb(this.a)};var cL=mdb(bie,'TreeMap/EntrySet',435);bcb(436,383,{484:1,383:1,42:1,436:1},exb);_.b=false;var dL=mdb(bie,'TreeMap/Node',436);bcb(621,1,{},fxb);_.Ib=function gxb(){return 'State: mv='+this.c+' value='+this.d+' done='+this.a+' found='+this.b};_.a=false;_.b=false;_.c=false;var eL=mdb(bie,'TreeMap/State',621);bcb(297,22,qke,mxb);_.Ae=function nxb(){return false};_.Be=function oxb(){return false};var hxb,ixb,jxb,kxb;var iL=ndb(bie,'TreeMap/SubMapType',297,CI,qxb,pxb);bcb(1112,297,qke,rxb);_.Be=function sxb(){return true};var fL=ndb(bie,'TreeMap/SubMapType/1',1112,iL,null,null);bcb(1113,297,qke,txb);_.Ae=function uxb(){return true};_.Be=function vxb(){return true};var gL=ndb(bie,'TreeMap/SubMapType/2',1113,iL,null,null);bcb(1114,297,qke,wxb);_.Ae=function xxb(){return true};var hL=ndb(bie,'TreeMap/SubMapType/3',1114,iL,null,null);var yxb;bcb(208,eie,{3:1,20:1,28:1,14:1,271:1,21:1,84:1,208:1},Gxb,Hxb);_.Nc=function Oxb(){return new Rub(this)};_.Fc=function Ixb(a){return Axb(this,a)};_.$b=function Jxb(){zwb(this.a)};_.Hc=function Kxb(a){return ujb(this.a,a)};_.Kc=function Lxb(){var a;return a=new Ywb((new cxb((new Gjb(this.a)).a)).b),new Njb(a)};_.Mc=function Mxb(a){return Fxb(this,a)};_.gc=function Nxb(){return this.a.c};var kL=mdb(bie,'TreeSet',208);bcb(966,1,{},Rxb);_.Ce=function Sxb(a,b){return Pxb(this.a,a,b)};var mL=mdb(rke,'BinaryOperator/lambda$0$Type',966);bcb(967,1,{},Txb);_.Ce=function Uxb(a,b){return Qxb(this.a,a,b)};var nL=mdb(rke,'BinaryOperator/lambda$1$Type',967);bcb(846,1,{},Vxb);_.Kb=function Wxb(a){return a};var oL=mdb(rke,'Function/lambda$0$Type',846);bcb(431,1,Oie,Xxb);_.Mb=function Yxb(a){return !this.a.Mb(a)};var pL=mdb(rke,'Predicate/lambda$2$Type',431);bcb(572,1,{572:1});var qL=mdb(ske,'Handler',572);bcb(2007,1,Qhe);_.ne=function _xb(){return 'DUMMY'};_.Ib=function ayb(){return this.ne()};var Zxb;var sL=mdb(ske,'Level',2007);bcb(1621,2007,Qhe,byb);_.ne=function cyb(){return 'INFO'};var rL=mdb(ske,'Level/LevelInfo',1621);bcb(1640,1,{},gyb);var dyb;var tL=mdb(ske,'LogManager',1640);bcb(1780,1,Qhe,iyb);_.b=null;var uL=mdb(ske,'LogRecord',1780);bcb(512,1,{512:1},wyb);_.e=false;var jyb=false,kyb=false,lyb=false,myb=false,nyb=false;var vL=mdb(ske,'Logger',512);bcb(819,572,{572:1},zyb);var wL=mdb(ske,'SimpleConsoleLogHandler',819);bcb(132,22,{3:1,35:1,22:1,132:1},Gyb);var Cyb,Dyb,Eyb;var xL=ndb(vke,'Collector/Characteristics',132,CI,Iyb,Hyb);var Jyb;bcb(744,1,{},Lyb);var yL=mdb(vke,'CollectorImpl',744);bcb(1060,1,{},Zyb);_.Ce=function $yb(a,b){return vwb(BD(a,206),BD(b,206))};var zL=mdb(vke,'Collectors/10methodref$merge$Type',1060);bcb(1061,1,{},_yb);_.Kb=function azb(a){return wwb(BD(a,206))};var AL=mdb(vke,'Collectors/11methodref$toString$Type',1061);bcb(1062,1,{},bzb);_.Kb=function czb(a){return Bcb(),_Pb(a)?true:false};var BL=mdb(vke,'Collectors/12methodref$test$Type',1062);bcb(251,1,{},dzb);_.Od=function ezb(a,b){BD(a,14).Fc(b)};var CL=mdb(vke,'Collectors/20methodref$add$Type',251);bcb(253,1,{},fzb);_.Ee=function gzb(){return new Rkb};var DL=mdb(vke,'Collectors/21methodref$ctor$Type',253);bcb(346,1,{},hzb);_.Ee=function izb(){return new Tqb};var EL=mdb(vke,'Collectors/23methodref$ctor$Type',346);bcb(347,1,{},jzb);_.Od=function kzb(a,b){Qqb(BD(a,53),b)};var FL=mdb(vke,'Collectors/24methodref$add$Type',347);bcb(1055,1,{},lzb);_.Ce=function mzb(a,b){return Myb(BD(a,15),BD(b,14))};var GL=mdb(vke,'Collectors/4methodref$addAll$Type',1055);bcb(1059,1,{},nzb);_.Od=function ozb(a,b){uwb(BD(a,206),BD(b,475))};var HL=mdb(vke,'Collectors/9methodref$add$Type',1059);bcb(1058,1,{},pzb);_.Ee=function qzb(){return new xwb(this.a,this.b,this.c)};var IL=mdb(vke,'Collectors/lambda$15$Type',1058);bcb(1063,1,{},rzb);_.Ee=function szb(){var a;return a=new $rb,Xrb(a,(Bcb(),false),new Rkb),Xrb(a,true,new Rkb),a};var JL=mdb(vke,'Collectors/lambda$22$Type',1063);bcb(1064,1,{},tzb);_.Ee=function uzb(){return OC(GC(SI,1),Uhe,1,5,[this.a])};var KL=mdb(vke,'Collectors/lambda$25$Type',1064);bcb(1065,1,{},vzb);_.Od=function wzb(a,b){Oyb(this.a,CD(a))};var LL=mdb(vke,'Collectors/lambda$26$Type',1065);bcb(1066,1,{},xzb);_.Ce=function yzb(a,b){return Pyb(this.a,CD(a),CD(b))};var ML=mdb(vke,'Collectors/lambda$27$Type',1066);bcb(1067,1,{},zzb);_.Kb=function Azb(a){return CD(a)[0]};var NL=mdb(vke,'Collectors/lambda$28$Type',1067);bcb(713,1,{},Czb);_.Ce=function Dzb(a,b){return Bzb(a,b)};var OL=mdb(vke,'Collectors/lambda$4$Type',713);bcb(252,1,{},Ezb);_.Ce=function Fzb(a,b){return Ryb(BD(a,14),BD(b,14))};var PL=mdb(vke,'Collectors/lambda$42$Type',252);bcb(348,1,{},Gzb);_.Ce=function Hzb(a,b){return Syb(BD(a,53),BD(b,53))};var QL=mdb(vke,'Collectors/lambda$50$Type',348);bcb(349,1,{},Izb);_.Kb=function Jzb(a){return BD(a,53)};var RL=mdb(vke,'Collectors/lambda$51$Type',349);bcb(1054,1,{},Kzb);_.Od=function Lzb(a,b){Tyb(this.a,BD(a,83),b)};var SL=mdb(vke,'Collectors/lambda$7$Type',1054);bcb(1056,1,{},Mzb);_.Ce=function Nzb(a,b){return Vyb(BD(a,83),BD(b,83),new lzb)};var TL=mdb(vke,'Collectors/lambda$8$Type',1056);bcb(1057,1,{},Ozb);_.Kb=function Pzb(a){return Uyb(this.a,BD(a,83))};var UL=mdb(vke,'Collectors/lambda$9$Type',1057);bcb(539,1,{});_.He=function Wzb(){Qzb(this)};_.d=false;var zM=mdb(vke,'TerminatableStream',539);bcb(812,539,wke,bAb);_.He=function cAb(){Qzb(this)};var ZL=mdb(vke,'DoubleStreamImpl',812);bcb(1784,721,pie,fAb);_.ye=function hAb(a){return eAb(this,BD(a,182))};_.a=null;var WL=mdb(vke,'DoubleStreamImpl/2',1784);bcb(1785,1,eke,iAb);_.we=function jAb(a){gAb(this.a,a)};var VL=mdb(vke,'DoubleStreamImpl/2/lambda$0$Type',1785);bcb(1782,1,eke,kAb);_.we=function lAb(a){dAb(this.a,a)};var XL=mdb(vke,'DoubleStreamImpl/lambda$0$Type',1782);bcb(1783,1,eke,mAb);_.we=function nAb(a){Epb(this.a,a)};var YL=mdb(vke,'DoubleStreamImpl/lambda$2$Type',1783);bcb(1358,720,pie,rAb);_.ye=function sAb(a){return qAb(this,BD(a,196))};_.a=0;_.b=0;_.c=0;var $L=mdb(vke,'IntStream/5',1358);bcb(787,539,wke,vAb);_.He=function wAb(){Qzb(this)};_.Ie=function xAb(){return Tzb(this),this.a};var bM=mdb(vke,'IntStreamImpl',787);bcb(788,539,wke,yAb);_.He=function zAb(){Qzb(this)};_.Ie=function AAb(){return Tzb(this),Ivb(),Hvb};var _L=mdb(vke,'IntStreamImpl/Empty',788);bcb(1463,1,sie,BAb);_.ud=function CAb(a){crb(this.a,a)};var aM=mdb(vke,'IntStreamImpl/lambda$4$Type',1463);var xM=odb(vke,'Stream');bcb(30,539,{525:1,670:1,833:1},YAb);_.He=function ZAb(){Qzb(this)};var DAb;var wM=mdb(vke,'StreamImpl',30);bcb(845,1,{},bBb);_.ld=function cBb(a){return aBb(a)};var cM=mdb(vke,'StreamImpl/0methodref$lambda$2$Type',845);bcb(1084,540,pie,fBb);_.sd=function gBb(a){while(dBb(this)){if(this.a.sd(a)){return true}else{Qzb(this.b);this.b=null;this.a=null}}return false};var eM=mdb(vke,'StreamImpl/1',1084);bcb(1085,1,qie,hBb);_.td=function iBb(a){eBb(this.a,BD(a,833))};var dM=mdb(vke,'StreamImpl/1/lambda$0$Type',1085);bcb(1086,1,Oie,jBb);_.Mb=function kBb(a){return Qqb(this.a,a)};var fM=mdb(vke,'StreamImpl/1methodref$add$Type',1086);bcb(1087,540,pie,lBb);_.sd=function mBb(a){var b;if(!this.a){b=new Rkb;this.b.a.Nb(new nBb(b));mmb();Okb(b,this.c);this.a=new Kub(b,16)}return Jub(this.a,a)};_.a=null;var hM=mdb(vke,'StreamImpl/5',1087);bcb(1088,1,qie,nBb);_.td=function oBb(a){Ekb(this.a,a)};var gM=mdb(vke,'StreamImpl/5/2methodref$add$Type',1088);bcb(722,540,pie,qBb);_.sd=function rBb(a){this.b=false;while(!this.b&&this.c.sd(new sBb(this,a)));return this.b};_.b=false;var jM=mdb(vke,'StreamImpl/FilterSpliterator',722);bcb(1079,1,qie,sBb);_.td=function tBb(a){pBb(this.a,this.b,a)};var iM=mdb(vke,'StreamImpl/FilterSpliterator/lambda$0$Type',1079);bcb(1075,721,pie,wBb);_.ye=function xBb(a){return vBb(this,BD(a,182))};var lM=mdb(vke,'StreamImpl/MapToDoubleSpliterator',1075);bcb(1078,1,qie,yBb);_.td=function zBb(a){uBb(this.a,this.b,a)};var kM=mdb(vke,'StreamImpl/MapToDoubleSpliterator/lambda$0$Type',1078);bcb(1074,720,pie,CBb);_.ye=function DBb(a){return BBb(this,BD(a,196))};var nM=mdb(vke,'StreamImpl/MapToIntSpliterator',1074);bcb(1077,1,qie,EBb);_.td=function FBb(a){ABb(this.a,this.b,a)};var mM=mdb(vke,'StreamImpl/MapToIntSpliterator/lambda$0$Type',1077);bcb(719,540,pie,IBb);_.sd=function JBb(a){return HBb(this,a)};var pM=mdb(vke,'StreamImpl/MapToObjSpliterator',719);bcb(1076,1,qie,KBb);_.td=function LBb(a){GBb(this.a,this.b,a)};var oM=mdb(vke,'StreamImpl/MapToObjSpliterator/lambda$0$Type',1076);bcb(618,1,qie,NBb);_.td=function OBb(a){MBb(this,a)};var qM=mdb(vke,'StreamImpl/ValueConsumer',618);bcb(1080,1,qie,PBb);_.td=function QBb(a){EAb()};var rM=mdb(vke,'StreamImpl/lambda$0$Type',1080);bcb(1081,1,qie,RBb);_.td=function SBb(a){EAb()};var sM=mdb(vke,'StreamImpl/lambda$1$Type',1081);bcb(1082,1,{},TBb);_.Ce=function UBb(a,b){return $Ab(this.a,a,b)};var uM=mdb(vke,'StreamImpl/lambda$4$Type',1082);bcb(1083,1,qie,VBb);_.td=function WBb(a){_Ab(this.b,this.a,a)};var vM=mdb(vke,'StreamImpl/lambda$5$Type',1083);bcb(1089,1,qie,XBb);_.td=function YBb(a){Xzb(this.a,BD(a,365))};var yM=mdb(vke,'TerminatableStream/lambda$0$Type',1089);bcb(2041,1,{});bcb(1914,1,{},iCb);var AM=mdb('javaemul.internal','ConsoleLogger',1914);bcb(2038,1,{});var ECb=0;var GCb,HCb=0,ICb;bcb(1768,1,qie,OCb);_.td=function PCb(a){BD(a,308)};var BM=mdb(Cke,'BowyerWatsonTriangulation/lambda$0$Type',1768);bcb(1769,1,qie,QCb);_.td=function RCb(a){ye(this.a,BD(a,308).e)};var CM=mdb(Cke,'BowyerWatsonTriangulation/lambda$1$Type',1769);bcb(1770,1,qie,SCb);_.td=function TCb(a){BD(a,168)};var DM=mdb(Cke,'BowyerWatsonTriangulation/lambda$2$Type',1770);bcb(1765,1,Dke,WCb);_.ue=function XCb(a,b){return VCb(this.a,BD(a,168),BD(b,168))};_.Fb=function YCb(a){return this===a};_.ve=function ZCb(){return new tpb(this)};var EM=mdb(Cke,'NaiveMinST/lambda$0$Type',1765);bcb(499,1,{},_Cb);var FM=mdb(Cke,'NodeMicroLayout',499);bcb(168,1,{168:1},aDb);_.Fb=function bDb(a){var b;if(JD(a,168)){b=BD(a,168);return wtb(this.a,b.a)&&wtb(this.b,b.b)||wtb(this.a,b.b)&&wtb(this.b,b.a)}else{return false}};_.Hb=function cDb(){return xtb(this.a)+xtb(this.b)};var GM=mdb(Cke,'TEdge',168);bcb(308,1,{308:1},eDb);_.Fb=function fDb(a){var b;if(JD(a,308)){b=BD(a,308);return dDb(this,b.a)&&dDb(this,b.b)&&dDb(this,b.c)}else{return false}};_.Hb=function gDb(){return xtb(this.a)+xtb(this.b)+xtb(this.c)};var HM=mdb(Cke,'TTriangle',308);bcb(221,1,{221:1},hDb);var IM=mdb(Cke,'Tree',221);bcb(1254,1,{},jDb);var KM=mdb(Eke,'Scanline',1254);var JM=odb(Eke,Fke);bcb(1692,1,{},mDb);var LM=mdb(Gke,'CGraph',1692);bcb(307,1,{307:1},oDb);_.b=0;_.c=0;_.d=0;_.g=0;_.i=0;_.k=Qje;var NM=mdb(Gke,'CGroup',307);bcb(815,1,{},sDb);var MM=mdb(Gke,'CGroup/CGroupBuilder',815);bcb(57,1,{57:1},tDb);_.Ib=function uDb(){var a;if(this.j){return GD(this.j.Kb(this))}return fdb(PM),PM.o+'@'+(a=FCb(this)>>>0,a.toString(16))};_.f=0;_.i=Qje;var PM=mdb(Gke,'CNode',57);bcb(814,1,{},zDb);var OM=mdb(Gke,'CNode/CNodeBuilder',814);var EDb;bcb(1525,1,{},GDb);_.Oe=function HDb(a,b){return 0};_.Pe=function IDb(a,b){return 0};var QM=mdb(Gke,Ike,1525);bcb(1790,1,{},JDb);_.Le=function KDb(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;j=Pje;for(d=new olb(a.a.b);d.a<d.c.c.length;){b=BD(mlb(d),57);j=$wnd.Math.min(j,b.a.j.d.c+b.b.a)}n=new Psb;for(g=new olb(a.a.a);g.a<g.c.c.length;){f=BD(mlb(g),307);f.k=j;f.g==0&&(Gsb(n,f,n.c.b,n.c),true)}while(n.b!=0){f=BD(n.b==0?null:(sCb(n.b!=0),Nsb(n,n.a.a)),307);e=f.j.d.c;for(m=f.a.a.ec().Kc();m.Ob();){k=BD(m.Pb(),57);p=f.k+k.b.a;!UDb(a,f,a.d)||k.d.c<p?(k.i=p):(k.i=k.d.c)}e-=f.j.i;f.b+=e;a.d==(ead(),bad)||a.d==_9c?(f.c+=e):(f.c-=e);for(l=f.a.a.ec().Kc();l.Ob();){k=BD(l.Pb(),57);for(i=k.c.Kc();i.Ob();){h=BD(i.Pb(),57);fad(a.d)?(o=a.g.Oe(k,h)):(o=a.g.Pe(k,h));h.a.k=$wnd.Math.max(h.a.k,k.i+k.d.b+o-h.b.a);VDb(a,h,a.d)&&(h.a.k=$wnd.Math.max(h.a.k,h.d.c-h.b.a));--h.a.g;h.a.g==0&&Dsb(n,h.a)}}}for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);b.d.c=b.i}};var RM=mdb(Gke,'LongestPathCompaction',1790);bcb(1690,1,{},cEb);_.e=false;var LDb,MDb,NDb;var TM=mdb(Gke,Nke,1690);bcb(1691,1,qie,dEb);_.td=function eEb(a){WDb(this.a,BD(a,46))};var SM=mdb(Gke,Oke,1691);bcb(1791,1,{},fEb);_.Me=function gEb(a){var b,c,d,e,f,g,h;for(c=new olb(a.a.b);c.a<c.c.c.length;){b=BD(mlb(c),57);b.c.$b()}for(e=new olb(a.a.b);e.a<e.c.c.length;){d=BD(mlb(e),57);for(g=new olb(a.a.b);g.a<g.c.c.length;){f=BD(mlb(g),57);if(d==f){continue}if(!!d.a&&d.a==f.a){continue}fad(a.d)?(h=a.g.Pe(d,f)):(h=a.g.Oe(d,f));(f.d.c>d.d.c||d.d.c==f.d.c&&d.d.b<f.d.b)&&BDb(f.d.d+f.d.a+h,d.d.d)&&DDb(f.d.d,d.d.d+d.d.a+h)&&d.c.Fc(f)}}};var UM=mdb(Gke,'QuadraticConstraintCalculation',1791);bcb(522,1,{522:1},lEb);_.a=false;_.b=false;_.c=false;_.d=false;var VM=mdb(Gke,Pke,522);bcb(803,1,{},oEb);_.Me=function pEb(a){this.c=a;nEb(this,new GEb)};var _M=mdb(Gke,Qke,803);bcb(1718,1,{679:1},uEb);_.Ke=function vEb(a){rEb(this,BD(a,464))};var XM=mdb(Gke,Rke,1718);bcb(1719,1,Dke,xEb);_.ue=function yEb(a,b){return wEb(BD(a,57),BD(b,57))};_.Fb=function zEb(a){return this===a};_.ve=function AEb(){return new tpb(this)};var WM=mdb(Gke,Ske,1719);bcb(464,1,{464:1},BEb);_.a=false;var YM=mdb(Gke,Tke,464);bcb(1720,1,Dke,CEb);_.ue=function DEb(a,b){return qEb(BD(a,464),BD(b,464))};_.Fb=function EEb(a){return this===a};_.ve=function FEb(){return new tpb(this)};var ZM=mdb(Gke,Uke,1720);bcb(1721,1,Vke,GEb);_.Lb=function HEb(a){return BD(a,57),true};_.Fb=function IEb(a){return this===a};_.Mb=function JEb(a){return BD(a,57),true};var $M=mdb(Gke,'ScanlineConstraintCalculator/lambda$1$Type',1721);bcb(428,22,{3:1,35:1,22:1,428:1},NEb);var KEb,LEb;var aN=ndb(Wke,'HighLevelSortingCriterion',428,CI,PEb,OEb);var QEb;bcb(427,22,{3:1,35:1,22:1,427:1},VEb);var SEb,TEb;var bN=ndb(Wke,'LowLevelSortingCriterion',427,CI,XEb,WEb);var YEb;var C0=odb(Xke,'ILayoutMetaDataProvider');bcb(853,1,ale,gFb);_.Qe=function hFb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yke),ble),'Polyomino Traversal Strategy'),'Traversal strategy for trying different candidate positions for polyominoes.'),eFb),(_5c(),V5c)),dN),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zke),ble),'Polyomino Secondary Sorting Criterion'),'Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion.'),cFb),V5c),bN),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ke),ble),'Polyomino Primary Sorting Criterion'),'Possible primary sorting criteria for the processing order of polyominoes.'),aFb),V5c),aN),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ke),ble),'Fill Polyominoes'),'Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area.'),(Bcb(),true)),T5c),wI),pqb(L5c))))};var $Eb,_Eb,aFb,bFb,cFb,dFb,eFb;var cN=mdb(Wke,'PolyominoOptions',853);bcb(250,22,{3:1,35:1,22:1,250:1},sFb);var iFb,jFb,kFb,lFb,mFb,nFb,oFb,pFb,qFb;var dN=ndb(Wke,'TraversalStrategy',250,CI,uFb,tFb);var vFb;bcb(213,1,{213:1},yFb);_.Ib=function zFb(){return 'NEdge[id='+this.b+' w='+this.g+' d='+this.a+']'};_.a=1;_.b=0;_.c=0;_.f=false;_.g=0;var fN=mdb(cle,'NEdge',213);bcb(176,1,{},FFb);var eN=mdb(cle,'NEdge/NEdgeBuilder',176);bcb(653,1,{},KFb);var gN=mdb(cle,'NGraph',653);bcb(121,1,{121:1},MFb);_.c=-1;_.d=0;_.e=0;_.i=-1;_.j=false;var jN=mdb(cle,'NNode',121);bcb(795,1,cke,PFb);_.Jc=function XFb(a){reb(this,a)};_.Lc=function cGb(){return new YAb(null,new Kub(this,16))};_.ad=function hGb(a){ktb(this,a)};_.Nc=function iGb(){return new Kub(this,16)};_.Oc=function jGb(){return new YAb(null,new Kub(this,16))};_.Vc=function QFb(a,b){++this.b;Dkb(this.a,a,b)};_.Fc=function RFb(a){return NFb(this,a)};_.Wc=function SFb(a,b){++this.b;return Fkb(this.a,a,b)};_.Gc=function TFb(a){++this.b;return Gkb(this.a,a)};_.$b=function UFb(){++this.b;this.a.c=KC(SI,Uhe,1,0,5,1)};_.Hc=function VFb(a){return Jkb(this.a,a,0)!=-1};_.Ic=function WFb(a){return Be(this.a,a)};_.Xb=function YFb(a){return Ikb(this.a,a)};_.Xc=function ZFb(a){return Jkb(this.a,a,0)};_.dc=function $Fb(){return this.a.c.length==0};_.Kc=function _Fb(){return vr(new olb(this.a))};_.Yc=function aGb(){throw vbb(new bgb)};_.Zc=function bGb(a){throw vbb(new bgb)};_.$c=function dGb(a){++this.b;return Kkb(this.a,a)};_.Mc=function eGb(a){return OFb(this,a)};_._c=function fGb(a,b){++this.b;return Nkb(this.a,a,b)};_.gc=function gGb(){return this.a.c.length};_.bd=function kGb(a,b){return new Jib(this.a,a,b)};_.Pc=function lGb(){return Pkb(this.a)};_.Qc=function mGb(a){return Qkb(this.a,a)};_.b=0;var hN=mdb(cle,'NNode/ChangeAwareArrayList',795);bcb(269,1,{},pGb);var iN=mdb(cle,'NNode/NNodeBuilder',269);bcb(1630,1,{},KGb);_.a=false;_.f=Ohe;_.j=0;var kN=mdb(cle,'NetworkSimplex',1630);bcb(1294,1,qie,QGb);_.td=function RGb(a){PGb(this.a,BD(a,680),true,false)};var lN=mdb(ele,'NodeLabelAndSizeCalculator/lambda$0$Type',1294);bcb(558,1,{},YGb);_.b=true;_.c=true;_.d=true;_.e=true;var mN=mdb(ele,'NodeMarginCalculator',558);bcb(212,1,{212:1});_.j=false;_.k=false;var oN=mdb(fle,'Cell',212);bcb(124,212,{124:1,212:1},aHb);_.Re=function bHb(){return _Gb(this)};_.Se=function cHb(){var a;a=this.n;return this.a.a+a.b+a.c};var nN=mdb(fle,'AtomicCell',124);bcb(232,22,{3:1,35:1,22:1,232:1},hHb);var dHb,eHb,fHb;var pN=ndb(fle,'ContainerArea',232,CI,jHb,iHb);var kHb;bcb(326,212,hle);var qN=mdb(fle,'ContainerCell',326);bcb(1473,326,hle,FHb);_.Re=function GHb(){var a;a=0;this.e?this.b?(a=this.b.b):!!this.a[1][1]&&(a=this.a[1][1].Re()):(a=EHb(this,AHb(this,true)));return a>0?a+this.n.d+this.n.a:0};_.Se=function HHb(){var a,b,c,d,e;e=0;if(this.e){this.b?(e=this.b.a):!!this.a[1][1]&&(e=this.a[1][1].Se())}else if(this.g){e=EHb(this,yHb(this,null,true))}else{for(b=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),c=0,d=b.length;c<d;++c){a=b[c];e=$wnd.Math.max(e,EHb(this,yHb(this,a,true)))}}return e>0?e+this.n.b+this.n.c:0};_.Te=function IHb(){var a,b,c,d,e;if(this.g){a=yHb(this,null,false);for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d<e;++d){b=c[d];wHb(this,b,a)}}else{for(c=(gHb(),OC(GC(pN,1),Kie,232,0,[dHb,eHb,fHb])),d=0,e=c.length;d<e;++d){b=c[d];a=yHb(this,b,false);wHb(this,b,a)}}};_.Ue=function JHb(){var a,b,c,d;b=this.i;a=this.n;d=AHb(this,false);uHb(this,(gHb(),dHb),b.d+a.d,d);uHb(this,fHb,b.d+b.a-a.a-d[2],d);c=b.a-a.d-a.a;if(d[0]>0){d[0]+=this.d;c-=d[0]}if(d[2]>0){d[2]+=this.d;c-=d[2]}this.c.a=$wnd.Math.max(0,c);this.c.d=b.d+a.d+(this.c.a-c)/2;d[1]=$wnd.Math.max(d[1],c);uHb(this,eHb,b.d+a.d+d[0]-(d[1]-c)/2,d)};_.b=null;_.d=0;_.e=false;_.f=false;_.g=false;var rHb=0,sHb=0;var rN=mdb(fle,'GridContainerCell',1473);bcb(461,22,{3:1,35:1,22:1,461:1},OHb);var KHb,LHb,MHb;var sN=ndb(fle,'HorizontalLabelAlignment',461,CI,QHb,PHb);var RHb;bcb(306,212,{212:1,306:1},aIb,bIb,cIb);_.Re=function dIb(){return YHb(this)};_.Se=function eIb(){return ZHb(this)};_.a=0;_.c=false;var tN=mdb(fle,'LabelCell',306);bcb(244,326,{212:1,326:1,244:1},mIb);_.Re=function nIb(){return fIb(this)};_.Se=function oIb(){return gIb(this)};_.Te=function rIb(){hIb(this)};_.Ue=function sIb(){iIb(this)};_.b=0;_.c=0;_.d=false;var yN=mdb(fle,'StripContainerCell',244);bcb(1626,1,Oie,tIb);_.Mb=function uIb(a){return pIb(BD(a,212))};var uN=mdb(fle,'StripContainerCell/lambda$0$Type',1626);bcb(1627,1,{},vIb);_.Fe=function wIb(a){return BD(a,212).Se()};var vN=mdb(fle,'StripContainerCell/lambda$1$Type',1627);bcb(1628,1,Oie,xIb);_.Mb=function yIb(a){return qIb(BD(a,212))};var wN=mdb(fle,'StripContainerCell/lambda$2$Type',1628);bcb(1629,1,{},zIb);_.Fe=function AIb(a){return BD(a,212).Re()};var xN=mdb(fle,'StripContainerCell/lambda$3$Type',1629);bcb(462,22,{3:1,35:1,22:1,462:1},FIb);var BIb,CIb,DIb;var zN=ndb(fle,'VerticalLabelAlignment',462,CI,HIb,GIb);var IIb;bcb(789,1,{},LIb);_.c=0;_.d=0;_.k=0;_.s=0;_.t=0;_.v=false;_.w=0;_.D=false;var CN=mdb(nle,'NodeContext',789);bcb(1471,1,Dke,OIb);_.ue=function PIb(a,b){return NIb(BD(a,61),BD(b,61))};_.Fb=function QIb(a){return this===a};_.ve=function RIb(){return new tpb(this)};var AN=mdb(nle,'NodeContext/0methodref$comparePortSides$Type',1471);bcb(1472,1,Dke,SIb);_.ue=function TIb(a,b){return MIb(BD(a,111),BD(b,111))};_.Fb=function UIb(a){return this===a};_.ve=function VIb(){return new tpb(this)};var BN=mdb(nle,'NodeContext/1methodref$comparePortContexts$Type',1472);bcb(159,22,{3:1,35:1,22:1,159:1},tJb);var WIb,XIb,YIb,ZIb,$Ib,_Ib,aJb,bJb,cJb,dJb,eJb,fJb,gJb,hJb,iJb,jJb,kJb,lJb,mJb,nJb,oJb,pJb;var DN=ndb(nle,'NodeLabelLocation',159,CI,wJb,vJb);var xJb;bcb(111,1,{111:1},AJb);_.a=false;var EN=mdb(nle,'PortContext',111);bcb(1476,1,qie,TJb);_.td=function UJb(a){WHb(BD(a,306))};var FN=mdb(qle,rle,1476);bcb(1477,1,Oie,VJb);_.Mb=function WJb(a){return !!BD(a,111).c};var GN=mdb(qle,sle,1477);bcb(1478,1,qie,XJb);_.td=function YJb(a){WHb(BD(a,111).c)};var HN=mdb(qle,'LabelPlacer/lambda$2$Type',1478);var ZJb;bcb(1475,1,qie,fKb);_.td=function gKb(a){$Jb();zJb(BD(a,111))};var IN=mdb(qle,'NodeLabelAndSizeUtilities/lambda$0$Type',1475);bcb(790,1,qie,mKb);_.td=function nKb(a){kKb(this.b,this.c,this.a,BD(a,181))};_.a=false;_.c=false;var JN=mdb(qle,'NodeLabelCellCreator/lambda$0$Type',790);bcb(1474,1,qie,tKb);_.td=function uKb(a){sKb(this.a,BD(a,181))};var KN=mdb(qle,'PortContextCreator/lambda$0$Type',1474);var BKb;bcb(1829,1,{},VKb);var MN=mdb(ule,'GreedyRectangleStripOverlapRemover',1829);bcb(1830,1,Dke,XKb);_.ue=function YKb(a,b){return WKb(BD(a,222),BD(b,222))};_.Fb=function ZKb(a){return this===a};_.ve=function $Kb(){return new tpb(this)};var LN=mdb(ule,'GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type',1830);bcb(1786,1,{},fLb);_.a=5;_.e=0;var SN=mdb(ule,'RectangleStripOverlapRemover',1786);bcb(1787,1,Dke,jLb);_.ue=function kLb(a,b){return gLb(BD(a,222),BD(b,222))};_.Fb=function lLb(a){return this===a};_.ve=function mLb(){return new tpb(this)};var NN=mdb(ule,'RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type',1787);bcb(1789,1,Dke,nLb);_.ue=function oLb(a,b){return hLb(BD(a,222),BD(b,222))};_.Fb=function pLb(a){return this===a};_.ve=function qLb(){return new tpb(this)};var ON=mdb(ule,'RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type',1789);bcb(406,22,{3:1,35:1,22:1,406:1},wLb);var rLb,sLb,tLb,uLb;var PN=ndb(ule,'RectangleStripOverlapRemover/OverlapRemovalDirection',406,CI,yLb,xLb);var zLb;bcb(222,1,{222:1},BLb);var QN=mdb(ule,'RectangleStripOverlapRemover/RectangleNode',222);bcb(1788,1,qie,CLb);_.td=function DLb(a){aLb(this.a,BD(a,222))};var RN=mdb(ule,'RectangleStripOverlapRemover/lambda$1$Type',1788);bcb(1304,1,Dke,GLb);_.ue=function HLb(a,b){return FLb(BD(a,167),BD(b,167))};_.Fb=function ILb(a){return this===a};_.ve=function JLb(){return new tpb(this)};var WN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator',1304);bcb(1307,1,{},KLb);_.Kb=function LLb(a){return BD(a,324).a};var TN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type',1307);bcb(1308,1,Oie,MLb);_.Mb=function NLb(a){return BD(a,323).a};var UN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type',1308);bcb(1309,1,Oie,OLb);_.Mb=function PLb(a){return BD(a,323).a};var VN=mdb(wle,'PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type',1309);bcb(1302,1,Dke,RLb);_.ue=function SLb(a,b){return QLb(BD(a,167),BD(b,167))};_.Fb=function TLb(a){return this===a};_.ve=function ULb(){return new tpb(this)};var YN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator',1302);bcb(1305,1,{},VLb);_.Kb=function WLb(a){return BD(a,324).a};var XN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type',1305);bcb(767,1,Dke,YLb);_.ue=function ZLb(a,b){return XLb(BD(a,167),BD(b,167))};_.Fb=function $Lb(a){return this===a};_.ve=function _Lb(){return new tpb(this)};var ZN=mdb(wle,'PolyominoCompactor/MinNumOfExtensionsComparator',767);bcb(1300,1,Dke,bMb);_.ue=function cMb(a,b){return aMb(BD(a,321),BD(b,321))};_.Fb=function dMb(a){return this===a};_.ve=function eMb(){return new tpb(this)};var _N=mdb(wle,'PolyominoCompactor/MinPerimeterComparator',1300);bcb(1301,1,Dke,gMb);_.ue=function hMb(a,b){return fMb(BD(a,321),BD(b,321))};_.Fb=function iMb(a){return this===a};_.ve=function jMb(){return new tpb(this)};var $N=mdb(wle,'PolyominoCompactor/MinPerimeterComparatorWithShape',1301);bcb(1303,1,Dke,lMb);_.ue=function mMb(a,b){return kMb(BD(a,167),BD(b,167))};_.Fb=function nMb(a){return this===a};_.ve=function oMb(){return new tpb(this)};var bO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator',1303);bcb(1306,1,{},pMb);_.Kb=function qMb(a){return BD(a,324).a};var aO=mdb(wle,'PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type',1306);bcb(777,1,{},tMb);_.Ce=function uMb(a,b){return sMb(this,BD(a,46),BD(b,167))};var cO=mdb(wle,'SuccessorCombination',777);bcb(644,1,{},wMb);_.Ce=function xMb(a,b){var c;return vMb((c=BD(a,46),BD(b,167),c))};var dO=mdb(wle,'SuccessorJitter',644);bcb(643,1,{},zMb);_.Ce=function AMb(a,b){var c;return yMb((c=BD(a,46),BD(b,167),c))};var eO=mdb(wle,'SuccessorLineByLine',643);bcb(568,1,{},CMb);_.Ce=function DMb(a,b){var c;return BMb((c=BD(a,46),BD(b,167),c))};var fO=mdb(wle,'SuccessorManhattan',568);bcb(1356,1,{},FMb);_.Ce=function GMb(a,b){var c;return EMb((c=BD(a,46),BD(b,167),c))};var gO=mdb(wle,'SuccessorMaxNormWindingInMathPosSense',1356);bcb(400,1,{},JMb);_.Ce=function KMb(a,b){return HMb(this,a,b)};_.c=false;_.d=false;_.e=false;_.f=false;var iO=mdb(wle,'SuccessorQuadrantsGeneric',400);bcb(1357,1,{},LMb);_.Kb=function MMb(a){return BD(a,324).a};var hO=mdb(wle,'SuccessorQuadrantsGeneric/lambda$0$Type',1357);bcb(323,22,{3:1,35:1,22:1,323:1},SMb);_.a=false;var NMb,OMb,PMb,QMb;var jO=ndb(Ble,Cle,323,CI,UMb,TMb);var VMb;bcb(1298,1,{});_.Ib=function bNb(){var a,b,c,d,e,f;c=' ';a=meb(0);for(e=0;e<this.o;e++){c+=''+a.a;a=meb(XMb(a.a))}c+='\n';a=meb(0);for(f=0;f<this.p;f++){c+=''+a.a;a=meb(XMb(a.a));for(d=0;d<this.o;d++){b=_Mb(this,d,f);ybb(b,0)==0?(c+='_'):ybb(b,1)==0?(c+='X'):(c+='0')}c+='\n'}return qfb(c,0,c.length-1)};_.o=0;_.p=0;var nO=mdb(Ble,'TwoBitGrid',1298);bcb(321,1298,{321:1},pNb);_.j=0;_.k=0;var kO=mdb(Ble,'PlanarGrid',321);bcb(167,321,{321:1,167:1});_.g=0;_.i=0;var lO=mdb(Ble,'Polyomino',167);var P3=odb(Hle,Ile);bcb(134,1,Jle,zNb);_.Ye=function DNb(a,b){return xNb(this,a,b)};_.Ve=function ANb(){return uNb(this)};_.We=function BNb(a){return vNb(this,a)};_.Xe=function CNb(a){return wNb(this,a)};var R3=mdb(Hle,'MapPropertyHolder',134);bcb(1299,134,Jle,ENb);var mO=mdb(Ble,'Polyominoes',1299);var FNb=false,GNb,HNb;bcb(1766,1,qie,PNb);_.td=function QNb(a){JNb(BD(a,221))};var oO=mdb(Kle,'DepthFirstCompaction/0methodref$compactTree$Type',1766);bcb(810,1,qie,RNb);_.td=function SNb(a){MNb(this.a,BD(a,221))};var pO=mdb(Kle,'DepthFirstCompaction/lambda$1$Type',810);bcb(1767,1,qie,TNb);_.td=function UNb(a){NNb(this.a,this.b,this.c,BD(a,221))};var qO=mdb(Kle,'DepthFirstCompaction/lambda$2$Type',1767);var VNb,WNb;bcb(65,1,{65:1},aOb);var rO=mdb(Kle,'Node',65);bcb(1250,1,{},dOb);var wO=mdb(Kle,'ScanlineOverlapCheck',1250);bcb(1251,1,{679:1},hOb);_.Ke=function iOb(a){fOb(this,BD(a,440))};var tO=mdb(Kle,'ScanlineOverlapCheck/OverlapsScanlineHandler',1251);bcb(1252,1,Dke,kOb);_.ue=function lOb(a,b){return jOb(BD(a,65),BD(b,65))};_.Fb=function mOb(a){return this===a};_.ve=function nOb(){return new tpb(this)};var sO=mdb(Kle,'ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type',1252);bcb(440,1,{440:1},oOb);_.a=false;var uO=mdb(Kle,'ScanlineOverlapCheck/Timestamp',440);bcb(1253,1,Dke,pOb);_.ue=function qOb(a,b){return eOb(BD(a,440),BD(b,440))};_.Fb=function rOb(a){return this===a};_.ve=function sOb(){return new tpb(this)};var vO=mdb(Kle,'ScanlineOverlapCheck/lambda$0$Type',1253);bcb(550,1,{},tOb);var xO=mdb(Lle,'SVGImage',550);bcb(324,1,{324:1},uOb);_.Ib=function vOb(){return '('+this.a+She+this.b+She+this.c+')'};var yO=mdb(Lle,'UniqueTriple',324);bcb(209,1,Mle);var g0=mdb(Nle,'AbstractLayoutProvider',209);bcb(1132,209,Mle,yOb);_.Ze=function zOb(a,b){var c,d,e,f;Odd(b,Ole,1);this.a=Edb(ED(hkd(a,(CPb(),BPb))));if(ikd(a,rPb)){e=GD(hkd(a,rPb));c=h4c(n4c(),e);if(c){d=BD(hgd(c.f),209);d.Ze(a,Udd(b,1))}}f=new AQb(this.a);this.b=yQb(f,a);switch(BD(hkd(a,(nPb(),jPb)),481).g){case 0:BOb(new FOb,this.b);jkd(a,uPb,vNb(this.b,uPb));break;default:Zfb();}qQb(f);jkd(a,tPb,this.b);Qdd(b)};_.a=0;var zO=mdb(Ple,'DisCoLayoutProvider',1132);bcb(1244,1,{},FOb);_.c=false;_.e=0;_.f=0;var AO=mdb(Ple,'DisCoPolyominoCompactor',1244);bcb(561,1,{561:1},MOb);_.b=true;var BO=mdb(Qle,'DCComponent',561);bcb(394,22,{3:1,35:1,22:1,394:1},SOb);_.a=false;var NOb,OOb,POb,QOb;var CO=ndb(Qle,'DCDirection',394,CI,UOb,TOb);var VOb;bcb(266,134,{3:1,266:1,94:1,134:1},XOb);var DO=mdb(Qle,'DCElement',266);bcb(395,1,{395:1},ZOb);_.c=0;var EO=mdb(Qle,'DCExtension',395);bcb(755,134,Jle,aPb);var FO=mdb(Qle,'DCGraph',755);bcb(481,22,{3:1,35:1,22:1,481:1},dPb);var bPb;var GO=ndb(Rle,Sle,481,CI,fPb,ePb);var gPb;bcb(854,1,ale,oPb);_.Qe=function pPb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tle),Xle),'Connected Components Compaction Strategy'),'Strategy for packing different connected components in order to save space and enhance readability of a graph.'),kPb),(_5c(),V5c)),GO),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Ule),Xle),'Connected Components Layout Algorithm'),"A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."),Z5c),ZI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vle),'debug'),'DCGraph'),'Access to the DCGraph is intended for the debug view,'),Y5c),SI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wle),'debug'),'List of Polyominoes'),'Access to the polyominoes is intended for the debug view,'),Y5c),SI),pqb(L5c))));DPb((new EPb,a))};var iPb,jPb,kPb,lPb,mPb;var HO=mdb(Rle,'DisCoMetaDataProvider',854);bcb(998,1,ale,EPb);_.Qe=function FPb(a){DPb(a)};var qPb,rPb,sPb,tPb,uPb,vPb,wPb,xPb,yPb,zPb,APb,BPb;var JO=mdb(Rle,'DisCoOptions',998);bcb(999,1,{},GPb);_.$e=function HPb(){var a;return a=new yOb,a};_._e=function IPb(a){};var IO=mdb(Rle,'DisCoOptions/DiscoFactory',999);bcb(562,167,{321:1,167:1,562:1},MPb);_.a=0;_.b=0;_.c=0;_.d=0;var KO=mdb('org.eclipse.elk.alg.disco.structures','DCPolyomino',562);var NPb,OPb,PPb;bcb(1268,1,Oie,aQb);_.Mb=function bQb(a){return _Pb(a)};var LO=mdb(bme,'ElkGraphComponentsProcessor/lambda$0$Type',1268);bcb(1269,1,{},cQb);_.Kb=function dQb(a){return QPb(),jtd(BD(a,79))};var MO=mdb(bme,'ElkGraphComponentsProcessor/lambda$1$Type',1269);bcb(1270,1,Oie,eQb);_.Mb=function fQb(a){return WPb(BD(a,79))};var NO=mdb(bme,'ElkGraphComponentsProcessor/lambda$2$Type',1270);bcb(1271,1,{},gQb);_.Kb=function hQb(a){return QPb(),ltd(BD(a,79))};var OO=mdb(bme,'ElkGraphComponentsProcessor/lambda$3$Type',1271);bcb(1272,1,Oie,iQb);_.Mb=function jQb(a){return XPb(BD(a,79))};var PO=mdb(bme,'ElkGraphComponentsProcessor/lambda$4$Type',1272);bcb(1273,1,Oie,kQb);_.Mb=function lQb(a){return YPb(this.a,BD(a,79))};var QO=mdb(bme,'ElkGraphComponentsProcessor/lambda$5$Type',1273);bcb(1274,1,{},mQb);_.Kb=function nQb(a){return ZPb(this.a,BD(a,79))};var RO=mdb(bme,'ElkGraphComponentsProcessor/lambda$6$Type',1274);bcb(1241,1,{},AQb);_.a=0;var UO=mdb(bme,'ElkGraphTransformer',1241);bcb(1242,1,{},CQb);_.Od=function DQb(a,b){BQb(this,BD(a,160),BD(b,266))};var TO=mdb(bme,'ElkGraphTransformer/OffsetApplier',1242);bcb(1243,1,qie,FQb);_.td=function GQb(a){EQb(this,BD(a,8))};var SO=mdb(bme,'ElkGraphTransformer/OffsetApplier/OffSetToChainApplier',1243);bcb(753,1,{},MQb);var WO=mdb(gme,hme,753);bcb(1232,1,Dke,OQb);_.ue=function PQb(a,b){return NQb(BD(a,231),BD(b,231))};_.Fb=function QQb(a){return this===a};_.ve=function RQb(){return new tpb(this)};var VO=mdb(gme,ime,1232);bcb(740,209,Mle,ZQb);_.Ze=function $Qb(a,b){WQb(this,a,b)};var XO=mdb(gme,'ForceLayoutProvider',740);bcb(357,134,{3:1,357:1,94:1,134:1});var bP=mdb(jme,'FParticle',357);bcb(559,357,{3:1,559:1,357:1,94:1,134:1},aRb);_.Ib=function bRb(){var a;if(this.a){a=Jkb(this.a.a,this,0);return a>=0?'b'+a+'['+fRb(this.a)+']':'b['+fRb(this.a)+']'}return 'b_'+FCb(this)};var YO=mdb(jme,'FBendpoint',559);bcb(282,134,{3:1,282:1,94:1,134:1},gRb);_.Ib=function hRb(){return fRb(this)};var ZO=mdb(jme,'FEdge',282);bcb(231,134,{3:1,231:1,94:1,134:1},kRb);var $O=mdb(jme,'FGraph',231);bcb(447,357,{3:1,447:1,357:1,94:1,134:1},mRb);_.Ib=function nRb(){return this.b==null||this.b.length==0?'l['+fRb(this.a)+']':'l_'+this.b};var _O=mdb(jme,'FLabel',447);bcb(144,357,{3:1,144:1,357:1,94:1,134:1},pRb);_.Ib=function qRb(){return oRb(this)};_.b=0;var aP=mdb(jme,'FNode',144);bcb(2003,1,{});_.bf=function vRb(a){rRb(this,a)};_.cf=function wRb(){sRb(this)};_.d=0;var cP=mdb(lme,'AbstractForceModel',2003);bcb(631,2003,{631:1},xRb);_.af=function zRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);c=jRb(this.e,a,b);c>0?(f=-yRb(d,this.c)*c):(f=CRb(d,this.b)*BD(vNb(a,(wSb(),oSb)),19).a);Y6c(e,f/g);return e};_.bf=function ARb(a){rRb(this,a);this.a=BD(vNb(a,(wSb(),eSb)),19).a;this.c=Edb(ED(vNb(a,uSb)));this.b=Edb(ED(vNb(a,qSb)))};_.df=function BRb(a){return a<this.a};_.a=0;_.b=0;_.c=0;var dP=mdb(lme,'EadesModel',631);bcb(632,2003,{632:1},DRb);_.af=function FRb(a,b){var c,d,e,f,g;uRb(this.f,a,b);e=c7c(R6c(b.d),a.d);g=$wnd.Math.sqrt(e.a*e.a+e.b*e.b);d=$wnd.Math.max(0,g-U6c(a.e)/2-U6c(b.e)/2);f=JRb(d,this.a)*BD(vNb(a,(wSb(),oSb)),19).a;c=jRb(this.e,a,b);c>0&&(f-=ERb(d,this.a)*c);Y6c(e,f*this.b/g);return e};_.bf=function GRb(a){var b,c,d,e,f,g,h;rRb(this,a);this.b=Edb(ED(vNb(a,(wSb(),vSb))));this.c=this.b/BD(vNb(a,eSb),19).a;d=a.e.c.length;f=0;e=0;for(h=new olb(a.e);h.a<h.c.c.length;){g=BD(mlb(h),144);f+=g.e.a;e+=g.e.b}b=f*e;c=Edb(ED(vNb(a,uSb)))*ple;this.a=$wnd.Math.sqrt(b/(2*d))*c};_.cf=function HRb(){sRb(this);this.b-=this.c};_.df=function IRb(a){return this.b>0};_.a=0;_.b=0;_.c=0;var eP=mdb(lme,'FruchtermanReingoldModel',632);bcb(849,1,ale,TRb);_.Qe=function URb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mme),''),'Force Model'),'Determines the model for force calculation.'),MRb),(_5c(),V5c)),gP),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nme),''),'Iterations'),'The number of iterations on the force model.'),meb(300)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ome),''),'Repulsive Power'),'Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pme),''),'FR Temperature'),'The temperature is used as a scaling factor for particle displacements.'),qme),U5c),BI),pqb(L5c))));o4c(a,pme,mme,RRb);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rme),''),'Eades Repulsion'),"Factor for repulsive forces in Eades' model."),5),U5c),BI),pqb(L5c))));o4c(a,rme,mme,ORb);xSb((new ySb,a))};var KRb,LRb,MRb,NRb,ORb,PRb,QRb,RRb;var fP=mdb(sme,'ForceMetaDataProvider',849);bcb(424,22,{3:1,35:1,22:1,424:1},YRb);var VRb,WRb;var gP=ndb(sme,'ForceModelStrategy',424,CI,$Rb,ZRb);var _Rb;bcb(988,1,ale,ySb);_.Qe=function zSb(a){xSb(a)};var bSb,cSb,dSb,eSb,fSb,gSb,hSb,iSb,jSb,kSb,lSb,mSb,nSb,oSb,pSb,qSb,rSb,sSb,tSb,uSb,vSb;var iP=mdb(sme,'ForceOptions',988);bcb(989,1,{},ASb);_.$e=function BSb(){var a;return a=new ZQb,a};_._e=function CSb(a){};var hP=mdb(sme,'ForceOptions/ForceFactory',989);var DSb,ESb,FSb,GSb;bcb(850,1,ale,PSb);_.Qe=function QSb(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mme),''),'Fixed Position'),'Prevent that the node is moved by the layout algorithm.'),(Bcb(),false)),(_5c(),T5c)),wI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Nme),''),'Desired Edge Length'),'Either specified for parent nodes or for individual edges, where the latter takes higher precedence.'),100),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ome),''),'Layout Dimension'),'Dimensions that are permitted to be altered during layout.'),KSb),V5c),oP),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Pme),''),'Stress Epsilon'),'Termination criterion for the iterative process.'),qme),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qme),''),'Iteration Limit'),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),meb(Ohe)),X5c),JI),pqb(L5c))));cTb((new dTb,a))};var ISb,JSb,KSb,LSb,MSb,NSb;var jP=mdb(sme,'StressMetaDataProvider',850);bcb(992,1,ale,dTb);_.Qe=function eTb(a){cTb(a)};var RSb,SSb,TSb,USb,VSb,WSb,XSb,YSb,ZSb,$Sb,_Sb,aTb;var lP=mdb(sme,'StressOptions',992);bcb(993,1,{},fTb);_.$e=function gTb(){var a;return a=new iTb,a};_._e=function hTb(a){};var kP=mdb(sme,'StressOptions/StressFactory',993);bcb(1128,209,Mle,iTb);_.Ze=function jTb(a,b){var c,d,e,f,g;Odd(b,Sme,1);Ccb(DD(hkd(a,(bTb(),VSb))))?Ccb(DD(hkd(a,_Sb)))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c)):WQb(new ZQb,a,Udd(b,1));e=TQb(a);d=LQb(this.a,e);for(g=d.Kc();g.Ob();){f=BD(g.Pb(),231);if(f.e.c.length<=1){continue}sTb(this.b,f);qTb(this.b);Hkb(f.d,new kTb)}e=KQb(d);SQb(e);Qdd(b)};var nP=mdb(Ume,'StressLayoutProvider',1128);bcb(1129,1,qie,kTb);_.td=function lTb(a){lRb(BD(a,447))};var mP=mdb(Ume,'StressLayoutProvider/lambda$0$Type',1129);bcb(990,1,{},tTb);_.c=0;_.e=0;_.g=0;var qP=mdb(Ume,'StressMajorization',990);bcb(379,22,{3:1,35:1,22:1,379:1},zTb);var vTb,wTb,xTb;var oP=ndb(Ume,'StressMajorization/Dimension',379,CI,BTb,ATb);var CTb;bcb(991,1,Dke,ETb);_.ue=function FTb(a,b){return uTb(this.a,BD(a,144),BD(b,144))};_.Fb=function GTb(a){return this===a};_.ve=function HTb(){return new tpb(this)};var pP=mdb(Ume,'StressMajorization/lambda$0$Type',991);bcb(1229,1,{},PTb);var tP=mdb(Wme,'ElkLayered',1229);bcb(1230,1,qie,STb);_.td=function TTb(a){QTb(BD(a,37))};var rP=mdb(Wme,'ElkLayered/lambda$0$Type',1230);bcb(1231,1,qie,UTb);_.td=function VTb(a){RTb(this.a,BD(a,37))};var sP=mdb(Wme,'ElkLayered/lambda$1$Type',1231);bcb(1263,1,{},bUb);var WTb,XTb,YTb;var xP=mdb(Wme,'GraphConfigurator',1263);bcb(759,1,qie,dUb);_.td=function eUb(a){$Tb(this.a,BD(a,10))};var uP=mdb(Wme,'GraphConfigurator/lambda$0$Type',759);bcb(760,1,{},fUb);_.Kb=function gUb(a){return ZTb(),new YAb(null,new Kub(BD(a,29).a,16))};var vP=mdb(Wme,'GraphConfigurator/lambda$1$Type',760);bcb(761,1,qie,hUb);_.td=function iUb(a){$Tb(this.a,BD(a,10))};var wP=mdb(Wme,'GraphConfigurator/lambda$2$Type',761);bcb(1127,209,Mle,jUb);_.Ze=function kUb(a,b){var c;c=U1b(new a2b,a);PD(hkd(a,(Nyc(),axc)))===PD((hbd(),ebd))?JTb(this.a,c,b):KTb(this.a,c,b);z2b(new D2b,c)};var yP=mdb(Wme,'LayeredLayoutProvider',1127);bcb(356,22,{3:1,35:1,22:1,356:1},rUb);var lUb,mUb,nUb,oUb,pUb;var zP=ndb(Wme,'LayeredPhases',356,CI,tUb,sUb);var uUb;bcb(1651,1,{},CUb);_.i=0;var wUb;var CP=mdb(Xme,'ComponentsToCGraphTransformer',1651);var hVb;bcb(1652,1,{},DUb);_.ef=function EUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function FUb(a,b){return $wnd.Math.min(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var AP=mdb(Xme,'ComponentsToCGraphTransformer/1',1652);bcb(81,1,{81:1});_.i=0;_.k=true;_.o=Qje;var IP=mdb(Yme,'CNode',81);bcb(460,81,{460:1,81:1},GUb,HUb);_.Ib=function IUb(){return ''};var BP=mdb(Xme,'ComponentsToCGraphTransformer/CRectNode',460);bcb(1623,1,{},VUb);var JUb,KUb;var FP=mdb(Xme,'OneDimensionalComponentsCompaction',1623);bcb(1624,1,{},YUb);_.Kb=function ZUb(a){return WUb(BD(a,46))};_.Fb=function $Ub(a){return this===a};var DP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$0$Type',1624);bcb(1625,1,{},_Ub);_.Kb=function aVb(a){return XUb(BD(a,46))};_.Fb=function bVb(a){return this===a};var EP=mdb(Xme,'OneDimensionalComponentsCompaction/lambda$1$Type',1625);bcb(1654,1,{},dVb);var GP=mdb(Yme,'CGraph',1654);bcb(189,1,{189:1},gVb);_.b=0;_.c=0;_.e=0;_.g=true;_.i=Qje;var HP=mdb(Yme,'CGroup',189);bcb(1653,1,{},jVb);_.ef=function kVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};_.ff=function lVb(a,b){return $wnd.Math.max(a.a!=null?Edb(a.a):a.c.i,b.a!=null?Edb(b.a):b.c.i)};var JP=mdb(Yme,Ike,1653);bcb(1655,1,{},CVb);_.d=false;var mVb;var LP=mdb(Yme,Nke,1655);bcb(1656,1,{},DVb);_.Kb=function EVb(a){return nVb(),Bcb(),BD(BD(a,46).a,81).d.e!=0?true:false};_.Fb=function FVb(a){return this===a};var KP=mdb(Yme,Oke,1656);bcb(823,1,{},IVb);_.a=false;_.b=false;_.c=false;_.d=false;var MP=mdb(Yme,Pke,823);bcb(1825,1,{},OVb);var RP=mdb(Zme,Qke,1825);var bQ=odb($me,Fke);bcb(1826,1,{369:1},SVb);_.Ke=function TVb(a){QVb(this,BD(a,466))};var OP=mdb(Zme,Rke,1826);bcb(1827,1,Dke,VVb);_.ue=function WVb(a,b){return UVb(BD(a,81),BD(b,81))};_.Fb=function XVb(a){return this===a};_.ve=function YVb(){return new tpb(this)};var NP=mdb(Zme,Ske,1827);bcb(466,1,{466:1},ZVb);_.a=false;var PP=mdb(Zme,Tke,466);bcb(1828,1,Dke,$Vb);_.ue=function _Vb(a,b){return PVb(BD(a,466),BD(b,466))};_.Fb=function aWb(a){return this===a};_.ve=function bWb(){return new tpb(this)};var QP=mdb(Zme,Uke,1828);bcb(140,1,{140:1},cWb,dWb);_.Fb=function eWb(a){var b;if(a==null){return false}if(TP!=rb(a)){return false}b=BD(a,140);return wtb(this.c,b.c)&&wtb(this.d,b.d)};_.Hb=function fWb(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d]))};_.Ib=function gWb(){return '('+this.c+She+this.d+(this.a?'cx':'')+this.b+')'};_.a=true;_.c=0;_.d=0;var TP=mdb($me,'Point',140);bcb(405,22,{3:1,35:1,22:1,405:1},oWb);var hWb,iWb,jWb,kWb;var SP=ndb($me,'Point/Quadrant',405,CI,sWb,rWb);var tWb;bcb(1642,1,{},CWb);_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;var vWb,wWb,xWb,yWb,zWb;var aQ=mdb($me,'RectilinearConvexHull',1642);bcb(574,1,{369:1},NWb);_.Ke=function OWb(a){MWb(this,BD(a,140))};_.b=0;var KWb;var VP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler',574);bcb(1644,1,Dke,QWb);_.ue=function RWb(a,b){return PWb(ED(a),ED(b))};_.Fb=function SWb(a){return this===a};_.ve=function TWb(){return new tpb(this)};var UP=mdb($me,'RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type',1644);bcb(1643,1,{369:1},VWb);_.Ke=function WWb(a){UWb(this,BD(a,140))};_.a=0;_.b=null;_.c=null;_.d=null;_.e=null;var WP=mdb($me,'RectilinearConvexHull/RectangleEventHandler',1643);bcb(1645,1,Dke,XWb);_.ue=function YWb(a,b){return EWb(BD(a,140),BD(b,140))};_.Fb=function ZWb(a){return this===a};_.ve=function $Wb(){return new tpb(this)};var XP=mdb($me,'RectilinearConvexHull/lambda$0$Type',1645);bcb(1646,1,Dke,_Wb);_.ue=function aXb(a,b){return FWb(BD(a,140),BD(b,140))};_.Fb=function bXb(a){return this===a};_.ve=function cXb(){return new tpb(this)};var YP=mdb($me,'RectilinearConvexHull/lambda$1$Type',1646);bcb(1647,1,Dke,dXb);_.ue=function eXb(a,b){return GWb(BD(a,140),BD(b,140))};_.Fb=function fXb(a){return this===a};_.ve=function gXb(){return new tpb(this)};var ZP=mdb($me,'RectilinearConvexHull/lambda$2$Type',1647);bcb(1648,1,Dke,hXb);_.ue=function iXb(a,b){return HWb(BD(a,140),BD(b,140))};_.Fb=function jXb(a){return this===a};_.ve=function kXb(){return new tpb(this)};var $P=mdb($me,'RectilinearConvexHull/lambda$3$Type',1648);bcb(1649,1,Dke,lXb);_.ue=function mXb(a,b){return IWb(BD(a,140),BD(b,140))};_.Fb=function nXb(a){return this===a};_.ve=function oXb(){return new tpb(this)};var _P=mdb($me,'RectilinearConvexHull/lambda$4$Type',1649);bcb(1650,1,{},qXb);var cQ=mdb($me,'Scanline',1650);bcb(2005,1,{});var dQ=mdb(_me,'AbstractGraphPlacer',2005);bcb(325,1,{325:1},AXb);_.mf=function BXb(a){if(this.nf(a)){Rc(this.b,BD(vNb(a,(wtc(),Esc)),21),a);return true}else{return false}};_.nf=function CXb(a){var b,c,d,e;b=BD(vNb(a,(wtc(),Esc)),21);e=BD(Qc(wXb,b),21);for(d=e.Kc();d.Ob();){c=BD(d.Pb(),21);if(!BD(Qc(this.b,c),15).dc()){return false}}return true};var wXb;var gQ=mdb(_me,'ComponentGroup',325);bcb(765,2005,{},HXb);_.of=function IXb(a){var b,c;for(c=new olb(this.a);c.a<c.c.c.length;){b=BD(mlb(c),325);if(b.mf(a)){return}}Ekb(this.a,new AXb(a))};_.lf=function JXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;this.a.c=KC(SI,Uhe,1,0,5,1);b.a.c=KC(SI,Uhe,1,0,5,1);if(a.dc()){b.f.a=0;b.f.b=0;return}g=BD(a.Xb(0),37);tNb(b,g);for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);this.of(d)}o=new d7c;f=Edb(ED(vNb(g,(Nyc(),kyc))));for(j=new olb(this.a);j.a<j.c.c.length;){h=BD(mlb(j),325);k=DXb(h,f);vXb(Uc(h.b),o.a,o.b);o.a+=k.a;o.b+=k.b}b.f.a=o.a-f;b.f.b=o.b-f;if(Ccb(DD(vNb(g,qwc)))&&PD(vNb(g,Swc))===PD((Aad(),wad))){for(n=a.Kc();n.Ob();){l=BD(n.Pb(),37);uXb(l,l.c.a,l.c.b)}c=new gYb;YXb(c,a,f);for(m=a.Kc();m.Ob();){l=BD(m.Pb(),37);P6c(X6c(l.c),c.e)}P6c(X6c(b.f),c.a)}for(i=new olb(this.a);i.a<i.c.c.length;){h=BD(mlb(i),325);tXb(b,Uc(h.b))}};var eQ=mdb(_me,'ComponentGroupGraphPlacer',765);bcb(1293,765,{},LXb);_.of=function MXb(a){KXb(this,a)};_.lf=function NXb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;this.a.c=KC(SI,Uhe,1,0,5,1);b.a.c=KC(SI,Uhe,1,0,5,1);if(a.dc()){b.f.a=0;b.f.b=0;return}g=BD(a.Xb(0),37);tNb(b,g);for(e=a.Kc();e.Ob();){d=BD(e.Pb(),37);KXb(this,d)}t=new d7c;s=new d7c;p=new d7c;o=new d7c;f=Edb(ED(vNb(g,(Nyc(),kyc))));for(j=new olb(this.a);j.a<j.c.c.length;){h=BD(mlb(j),325);if(fad(BD(vNb(b,(Y9c(),z8c)),103))){p.a=t.a;for(r=new Mv(Pc(Fc(h.b).a).a.kc());r.b.Ob();){q=BD(Lv(r.b.Pb()),21);if(q.Hc((Ucd(),Acd))){p.a=s.a;break}}}else if(gad(BD(vNb(b,z8c),103))){p.b=t.b;for(r=new Mv(Pc(Fc(h.b).a).a.kc());r.b.Ob();){q=BD(Lv(r.b.Pb()),21);if(q.Hc((Ucd(),Tcd))){p.b=s.b;break}}}k=DXb(BD(h,570),f);vXb(Uc(h.b),p.a,p.b);if(fad(BD(vNb(b,z8c),103))){s.a=p.a+k.a;o.a=$wnd.Math.max(o.a,s.a);for(r=new Mv(Pc(Fc(h.b).a).a.kc());r.b.Ob();){q=BD(Lv(r.b.Pb()),21);if(q.Hc((Ucd(),Rcd))){t.a=p.a+k.a;break}}s.b=p.b+k.b;p.b=s.b;o.b=$wnd.Math.max(o.b,p.b)}else if(gad(BD(vNb(b,z8c),103))){s.b=p.b+k.b;o.b=$wnd.Math.max(o.b,s.b);for(r=new Mv(Pc(Fc(h.b).a).a.kc());r.b.Ob();){q=BD(Lv(r.b.Pb()),21);if(q.Hc((Ucd(),zcd))){t.b=p.b+k.b;break}}s.a=p.a+k.a;p.a=s.a;o.a=$wnd.Math.max(o.a,p.a)}}b.f.a=o.a-f;b.f.b=o.b-f;if(Ccb(DD(vNb(g,qwc)))&&PD(vNb(g,Swc))===PD((Aad(),wad))){for(n=a.Kc();n.Ob();){l=BD(n.Pb(),37);uXb(l,l.c.a,l.c.b)}c=new gYb;YXb(c,a,f);for(m=a.Kc();m.Ob();){l=BD(m.Pb(),37);P6c(X6c(l.c),c.e)}P6c(X6c(b.f),c.a)}for(i=new olb(this.a);i.a<i.c.c.length;){h=BD(mlb(i),325);tXb(b,Uc(h.b))}};var fQ=mdb(_me,'ComponentGroupModelOrderGraphPlacer',1293);bcb(423,22,{3:1,35:1,22:1,423:1},SXb);var OXb,PXb,QXb;var hQ=ndb(_me,'ComponentOrderingStrategy',423,CI,UXb,TXb);var VXb;bcb(650,1,{},gYb);var pQ=mdb(_me,'ComponentsCompactor',650);bcb(1468,12,ake,jYb);_.Fc=function kYb(a){return hYb(this,BD(a,140))};var iQ=mdb(_me,'ComponentsCompactor/Hullpoints',1468);bcb(1465,1,{841:1},mYb);_.a=false;var jQ=mdb(_me,'ComponentsCompactor/InternalComponent',1465);bcb(1464,1,vie,nYb);_.Jc=function oYb(a){reb(this,a)};_.Kc=function pYb(){return new olb(this.a)};var kQ=mdb(_me,'ComponentsCompactor/InternalConnectedComponents',1464);bcb(1467,1,{594:1},qYb);_.hf=function sYb(){return null};_.jf=function tYb(){return this.a};_.gf=function rYb(){return cYb(this.d)};_.kf=function uYb(){return this.b};var lQ=mdb(_me,'ComponentsCompactor/InternalExternalExtension',1467);bcb(1466,1,{594:1},vYb);_.jf=function yYb(){return this.a};_.gf=function wYb(){return cYb(this.d)};_.hf=function xYb(){return this.c};_.kf=function zYb(){return this.b};var mQ=mdb(_me,'ComponentsCompactor/InternalUnionExternalExtension',1466);bcb(1470,1,{},AYb);var nQ=mdb(_me,'ComponentsCompactor/OuterSegments',1470);bcb(1469,1,{},BYb);var oQ=mdb(_me,'ComponentsCompactor/Segments',1469);bcb(1264,1,{},FYb);var rQ=mdb(_me,hme,1264);bcb(1265,1,Dke,HYb);_.ue=function IYb(a,b){return GYb(BD(a,37),BD(b,37))};_.Fb=function JYb(a){return this===a};_.ve=function KYb(){return new tpb(this)};var qQ=mdb(_me,'ComponentsProcessor/lambda$0$Type',1265);bcb(570,325,{325:1,570:1},PYb);_.mf=function QYb(a){return NYb(this,a)};_.nf=function RYb(a){return OYb(this,a)};var LYb;var sQ=mdb(_me,'ModelOrderComponentGroup',570);bcb(1291,2005,{},SYb);_.lf=function TYb(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(a.gc()==1){t=BD(a.Xb(0),37);if(t!=b){b.a.c=KC(SI,Uhe,1,0,5,1);sXb(b,t,0,0);tNb(b,t);u_b(b.d,t.d);b.f.a=t.f.a;b.f.b=t.f.b}return}else if(a.dc()){b.a.c=KC(SI,Uhe,1,0,5,1);b.f.a=0;b.f.b=0;return}if(PD(vNb(b,(Nyc(),twc)))===PD((RXb(),QXb))){for(i=a.Kc();i.Ob();){g=BD(i.Pb(),37);r=0;for(p=new olb(g.a);p.a<p.c.c.length;){o=BD(mlb(p),10);r+=BD(vNb(o,byc),19).a}g.p=r}mmb();a.ad(new VYb)}f=BD(a.Xb(0),37);b.a.c=KC(SI,Uhe,1,0,5,1);tNb(b,f);n=0;u=0;for(j=a.Kc();j.Ob();){g=BD(j.Pb(),37);s=g.f;n=$wnd.Math.max(n,s.a);u+=s.a*s.b}n=$wnd.Math.max(n,$wnd.Math.sqrt(u)*Edb(ED(vNb(b,owc))));e=Edb(ED(vNb(b,kyc)));v=0;w=0;m=0;c=e;for(h=a.Kc();h.Ob();){g=BD(h.Pb(),37);s=g.f;if(v+s.a>n){v=0;w+=m+e;m=0}q=g.c;uXb(g,v+q.a,w+q.b);X6c(q);c=$wnd.Math.max(c,v+s.a);m=$wnd.Math.max(m,s.b);v+=s.a+e}b.f.a=c;b.f.b=w+m;if(Ccb(DD(vNb(f,qwc)))){d=new gYb;YXb(d,a,e);for(l=a.Kc();l.Ob();){k=BD(l.Pb(),37);P6c(X6c(k.c),d.e)}P6c(X6c(b.f),d.a)}tXb(b,a)};var uQ=mdb(_me,'SimpleRowGraphPlacer',1291);bcb(1292,1,Dke,VYb);_.ue=function WYb(a,b){return UYb(BD(a,37),BD(b,37))};_.Fb=function XYb(a){return this===a};_.ve=function YYb(){return new tpb(this)};var tQ=mdb(_me,'SimpleRowGraphPlacer/1',1292);var ZYb;bcb(1262,1,Vke,dZb);_.Lb=function eZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};_.Fb=function fZb(a){return this===a};_.Mb=function gZb(a){var b;return b=BD(vNb(BD(a,243).b,(Nyc(),jxc)),74),!!b&&b.b!=0};var vQ=mdb(dne,'CompoundGraphPostprocessor/1',1262);bcb(1261,1,ene,wZb);_.pf=function xZb(a,b){qZb(this,BD(a,37),b)};var xQ=mdb(dne,'CompoundGraphPreprocessor',1261);bcb(441,1,{441:1},yZb);_.c=false;var wQ=mdb(dne,'CompoundGraphPreprocessor/ExternalPort',441);bcb(243,1,{243:1},BZb);_.Ib=function CZb(){return Zr(this.c)+':'+TZb(this.b)};var zQ=mdb(dne,'CrossHierarchyEdge',243);bcb(763,1,Dke,EZb);_.ue=function FZb(a,b){return DZb(this,BD(a,243),BD(b,243))};_.Fb=function GZb(a){return this===a};_.ve=function IZb(){return new tpb(this)};var yQ=mdb(dne,'CrossHierarchyEdgeComparator',763);bcb(299,134,{3:1,299:1,94:1,134:1});_.p=0;var JQ=mdb(fne,'LGraphElement',299);bcb(17,299,{3:1,17:1,299:1,94:1,134:1},UZb);_.Ib=function VZb(){return TZb(this)};var AQ=mdb(fne,'LEdge',17);bcb(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},XZb);_.Jc=function YZb(a){reb(this,a)};_.Kc=function ZZb(){return new olb(this.b)};_.Ib=function $Zb(){if(this.b.c.length==0){return 'G-unlayered'+Fe(this.a)}else if(this.a.c.length==0){return 'G-layered'+Fe(this.b)}return 'G[layerless'+Fe(this.a)+', layers'+Fe(this.b)+']'};var KQ=mdb(fne,'LGraph',37);var _Zb;bcb(657,1,{});_.qf=function b$b(){return this.e.n};_.We=function c$b(a){return vNb(this.e,a)};_.rf=function d$b(){return this.e.o};_.sf=function e$b(){return this.e.p};_.Xe=function f$b(a){return wNb(this.e,a)};_.tf=function g$b(a){this.e.n.a=a.a;this.e.n.b=a.b};_.uf=function h$b(a){this.e.o.a=a.a;this.e.o.b=a.b};_.vf=function i$b(a){this.e.p=a};var BQ=mdb(fne,'LGraphAdapters/AbstractLShapeAdapter',657);bcb(577,1,{839:1},j$b);_.wf=function k$b(){var a,b;if(!this.b){this.b=Pu(this.a.b.c.length);for(b=new olb(this.a.b);b.a<b.c.c.length;){a=BD(mlb(b),70);Ekb(this.b,new v$b(a))}}return this.b};_.b=null;var CQ=mdb(fne,'LGraphAdapters/LEdgeAdapter',577);bcb(656,1,{},l$b);_.xf=function m$b(){var a,b,c,d,e,f;if(!this.b){this.b=new Rkb;for(d=new olb(this.a.b);d.a<d.c.c.length;){c=BD(mlb(d),29);for(f=new olb(c.a);f.a<f.c.c.length;){e=BD(mlb(f),10);if(this.c.Mb(e)){Ekb(this.b,new x$b(this,e,this.e));if(this.d){if(wNb(e,(wtc(),vtc))){for(b=BD(vNb(e,vtc),15).Kc();b.Ob();){a=BD(b.Pb(),10);Ekb(this.b,new x$b(this,a,false))}}if(wNb(e,tsc)){for(b=BD(vNb(e,tsc),15).Kc();b.Ob();){a=BD(b.Pb(),10);Ekb(this.b,new x$b(this,a,false))}}}}}}}return this.b};_.qf=function n$b(){throw vbb(new cgb(hne))};_.We=function o$b(a){return vNb(this.a,a)};_.rf=function p$b(){return this.a.f};_.sf=function q$b(){return this.a.p};_.Xe=function r$b(a){return wNb(this.a,a)};_.tf=function s$b(a){throw vbb(new cgb(hne))};_.uf=function t$b(a){this.a.f.a=a.a;this.a.f.b=a.b};_.vf=function u$b(a){this.a.p=a};_.b=null;_.d=false;_.e=false;var DQ=mdb(fne,'LGraphAdapters/LGraphAdapter',656);bcb(576,657,{181:1},v$b);var EQ=mdb(fne,'LGraphAdapters/LLabelAdapter',576);bcb(575,657,{680:1},x$b);_.yf=function y$b(){return this.b};_.zf=function z$b(){return mmb(),mmb(),jmb};_.wf=function A$b(){var a,b;if(!this.a){this.a=Pu(BD(this.e,10).b.c.length);for(b=new olb(BD(this.e,10).b);b.a<b.c.c.length;){a=BD(mlb(b),70);Ekb(this.a,new v$b(a))}}return this.a};_.Af=function B$b(){var a;a=BD(this.e,10).d;return new J_b(a.d,a.c,a.a,a.b)};_.Bf=function C$b(){return mmb(),mmb(),jmb};_.Cf=function D$b(){var a,b;if(!this.c){this.c=Pu(BD(this.e,10).j.c.length);for(b=new olb(BD(this.e,10).j);b.a<b.c.c.length;){a=BD(mlb(b),11);Ekb(this.c,new I$b(a,this.d))}}return this.c};_.Df=function E$b(){return Ccb(DD(vNb(BD(this.e,10),(wtc(),wsc))))};_.Ef=function F$b(a){BD(this.e,10).d.b=a.b;BD(this.e,10).d.d=a.d;BD(this.e,10).d.c=a.c;BD(this.e,10).d.a=a.a};_.Ff=function G$b(a){BD(this.e,10).f.b=a.b;BD(this.e,10).f.d=a.d;BD(this.e,10).f.c=a.c;BD(this.e,10).f.a=a.a};_.Gf=function H$b(){w$b(this,(a$b(),_Zb))};_.a=null;_.b=null;_.c=null;_.d=false;var FQ=mdb(fne,'LGraphAdapters/LNodeAdapter',575);bcb(1722,657,{838:1},I$b);_.zf=function J$b(){var a,b,c,d;if(this.d&&BD(this.e,11).i.k==(j0b(),i0b)){return mmb(),mmb(),jmb}else if(!this.a){this.a=new Rkb;for(c=new olb(BD(this.e,11).e);c.a<c.c.c.length;){a=BD(mlb(c),17);Ekb(this.a,new j$b(a))}if(this.d){d=BD(vNb(BD(this.e,11),(wtc(),gtc)),10);if(d){for(b=new Sr(ur(R_b(d).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),17);Ekb(this.a,new j$b(a))}}}}return this.a};_.wf=function K$b(){var a,b;if(!this.b){this.b=Pu(BD(this.e,11).f.c.length);for(b=new olb(BD(this.e,11).f);b.a<b.c.c.length;){a=BD(mlb(b),70);Ekb(this.b,new v$b(a))}}return this.b};_.Bf=function L$b(){var a,b,c,d;if(this.d&&BD(this.e,11).i.k==(j0b(),i0b)){return mmb(),mmb(),jmb}else if(!this.c){this.c=new Rkb;for(c=new olb(BD(this.e,11).g);c.a<c.c.c.length;){a=BD(mlb(c),17);Ekb(this.c,new j$b(a))}if(this.d){d=BD(vNb(BD(this.e,11),(wtc(),gtc)),10);if(d){for(b=new Sr(ur(U_b(d).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),17);Ekb(this.c,new j$b(a))}}}}return this.c};_.Hf=function M$b(){return BD(this.e,11).j};_.If=function N$b(){return Ccb(DD(vNb(BD(this.e,11),(wtc(),Nsc))))};_.a=null;_.b=null;_.c=null;_.d=false;var GQ=mdb(fne,'LGraphAdapters/LPortAdapter',1722);bcb(1723,1,Dke,P$b);_.ue=function Q$b(a,b){return O$b(BD(a,11),BD(b,11))};_.Fb=function R$b(a){return this===a};_.ve=function S$b(){return new tpb(this)};var HQ=mdb(fne,'LGraphAdapters/PortComparator',1723);bcb(804,1,Oie,T$b);_.Mb=function U$b(a){return BD(a,10),a$b(),true};var IQ=mdb(fne,'LGraphAdapters/lambda$0$Type',804);bcb(392,299,{3:1,299:1,392:1,94:1,134:1});var bR=mdb(fne,'LShape',392);bcb(70,392,{3:1,299:1,70:1,392:1,94:1,134:1},p_b,q_b);_.Ib=function r_b(){var a;a=o_b(this);return a==null?'label':'l_'+a};var LQ=mdb(fne,'LLabel',70);bcb(207,1,{3:1,4:1,207:1,414:1});_.Fb=function C_b(a){var b;if(JD(a,207)){b=BD(a,207);return this.d==b.d&&this.a==b.a&&this.b==b.b&&this.c==b.c}else{return false}};_.Hb=function D_b(){var a,b;a=Hdb(this.b)<<16;a|=Hdb(this.a)&aje;b=Hdb(this.c)<<16;b|=Hdb(this.d)&aje;return a^b};_.Jf=function F_b(b){var c,d,e,f,g,h,i,j,k,l,m;g=0;while(g<b.length&&E_b((BCb(g,b.length),b.charCodeAt(g)),mne)){++g}c=b.length;while(c>0&&E_b((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(g<c){l=mfb(b.substr(g,c-g),',|;');try{for(i=l,j=0,k=i.length;j<k;++j){h=i[j];f=mfb(h,'=');if(f.length!=2){throw vbb(new Wdb('Expecting a list of key-value pairs.'))}e=ufb(f[0]);m=Hcb(ufb(f[1]));dfb(e,'top')?(this.d=m):dfb(e,'left')?(this.b=m):dfb(e,'bottom')?(this.a=m):dfb(e,'right')&&(this.c=m)}}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}}};_.Ib=function G_b(){return '[top='+this.d+',left='+this.b+',bottom='+this.a+',right='+this.c+']'};_.a=0;_.b=0;_.c=0;_.d=0;var n1=mdb(pne,'Spacing',207);bcb(142,207,qne,H_b,I_b,J_b,K_b);var i1=mdb(pne,'ElkMargin',142);bcb(651,142,qne,L_b);var MQ=mdb(fne,'LMargin',651);bcb(10,392,{3:1,299:1,10:1,392:1,94:1,134:1},b0b);_.Ib=function c0b(){return a0b(this)};_.i=false;var OQ=mdb(fne,'LNode',10);bcb(267,22,{3:1,35:1,22:1,267:1},k0b);var d0b,e0b,f0b,g0b,h0b,i0b;var NQ=ndb(fne,'LNode/NodeType',267,CI,m0b,l0b);var n0b;bcb(116,207,rne,p0b,q0b,r0b);var j1=mdb(pne,'ElkPadding',116);bcb(764,116,rne,s0b);var PQ=mdb(fne,'LPadding',764);bcb(11,392,{3:1,299:1,11:1,392:1,94:1,134:1},H0b);_.Ib=function I0b(){var a,b,c;a=new Ufb;Qfb((a.a+='p_',a),C0b(this));!!this.i&&Qfb(Pfb((a.a+='[',a),this.i),']');if(this.e.c.length==1&&this.g.c.length==0&&BD(Ikb(this.e,0),17).c!=this){b=BD(Ikb(this.e,0),17).c;Qfb((a.a+=' << ',a),C0b(b));Qfb(Pfb((a.a+='[',a),b.i),']')}if(this.e.c.length==0&&this.g.c.length==1&&BD(Ikb(this.g,0),17).d!=this){c=BD(Ikb(this.g,0),17).d;Qfb((a.a+=' >> ',a),C0b(c));Qfb(Pfb((a.a+='[',a),c.i),']')}return a.a};_.c=true;_.d=false;var t0b,u0b,v0b,w0b,x0b,y0b;var aR=mdb(fne,'LPort',11);bcb(397,1,vie,J0b);_.Jc=function K0b(a){reb(this,a)};_.Kc=function L0b(){var a;a=new olb(this.a.e);return new M0b(a)};var RQ=mdb(fne,'LPort/1',397);bcb(1290,1,aie,M0b);_.Nb=function N0b(a){Rrb(this,a)};_.Pb=function P0b(){return BD(mlb(this.a),17).c};_.Ob=function O0b(){return llb(this.a)};_.Qb=function Q0b(){nlb(this.a)};var QQ=mdb(fne,'LPort/1/1',1290);bcb(359,1,vie,R0b);_.Jc=function S0b(a){reb(this,a)};_.Kc=function T0b(){var a;return a=new olb(this.a.g),new U0b(a)};var TQ=mdb(fne,'LPort/2',359);bcb(762,1,aie,U0b);_.Nb=function V0b(a){Rrb(this,a)};_.Pb=function X0b(){return BD(mlb(this.a),17).d};_.Ob=function W0b(){return llb(this.a)};_.Qb=function Y0b(){nlb(this.a)};var SQ=mdb(fne,'LPort/2/1',762);bcb(1283,1,vie,Z0b);_.Jc=function $0b(a){reb(this,a)};_.Kc=function _0b(){return new b1b(this)};var VQ=mdb(fne,'LPort/CombineIter',1283);bcb(201,1,aie,b1b);_.Nb=function c1b(a){Rrb(this,a)};_.Qb=function f1b(){Srb()};_.Ob=function d1b(){return a1b(this)};_.Pb=function e1b(){return llb(this.a)?mlb(this.a):mlb(this.b)};var UQ=mdb(fne,'LPort/CombineIter/1',201);bcb(1285,1,Vke,h1b);_.Lb=function i1b(a){return g1b(a)};_.Fb=function j1b(a){return this===a};_.Mb=function k1b(a){return z0b(),BD(a,11).e.c.length!=0};var WQ=mdb(fne,'LPort/lambda$0$Type',1285);bcb(1284,1,Vke,m1b);_.Lb=function n1b(a){return l1b(a)};_.Fb=function o1b(a){return this===a};_.Mb=function p1b(a){return z0b(),BD(a,11).g.c.length!=0};var XQ=mdb(fne,'LPort/lambda$1$Type',1284);bcb(1286,1,Vke,q1b);_.Lb=function r1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};_.Fb=function s1b(a){return this===a};_.Mb=function t1b(a){return z0b(),BD(a,11).j==(Ucd(),Acd)};var YQ=mdb(fne,'LPort/lambda$2$Type',1286);bcb(1287,1,Vke,u1b);_.Lb=function v1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};_.Fb=function w1b(a){return this===a};_.Mb=function x1b(a){return z0b(),BD(a,11).j==(Ucd(),zcd)};var ZQ=mdb(fne,'LPort/lambda$3$Type',1287);bcb(1288,1,Vke,y1b);_.Lb=function z1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};_.Fb=function A1b(a){return this===a};_.Mb=function B1b(a){return z0b(),BD(a,11).j==(Ucd(),Rcd)};var $Q=mdb(fne,'LPort/lambda$4$Type',1288);bcb(1289,1,Vke,C1b);_.Lb=function D1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};_.Fb=function E1b(a){return this===a};_.Mb=function F1b(a){return z0b(),BD(a,11).j==(Ucd(),Tcd)};var _Q=mdb(fne,'LPort/lambda$5$Type',1289);bcb(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},H1b);_.Jc=function I1b(a){reb(this,a)};_.Kc=function J1b(){return new olb(this.a)};_.Ib=function K1b(){return 'L_'+Jkb(this.b.b,this,0)+Fe(this.a)};var cR=mdb(fne,'Layer',29);bcb(1342,1,{},a2b);var mR=mdb(tne,une,1342);bcb(1346,1,{},e2b);_.Kb=function f2b(a){return atd(BD(a,82))};var dR=mdb(tne,'ElkGraphImporter/0methodref$connectableShapeToNode$Type',1346);bcb(1349,1,{},g2b);_.Kb=function h2b(a){return atd(BD(a,82))};var eR=mdb(tne,'ElkGraphImporter/1methodref$connectableShapeToNode$Type',1349);bcb(1343,1,qie,i2b);_.td=function j2b(a){Q1b(this.a,BD(a,118))};var fR=mdb(tne,vne,1343);bcb(1344,1,qie,k2b);_.td=function l2b(a){Q1b(this.a,BD(a,118))};var gR=mdb(tne,wne,1344);bcb(1345,1,{},m2b);_.Kb=function n2b(a){return new YAb(null,new Kub(Old(BD(a,79)),16))};var hR=mdb(tne,xne,1345);bcb(1347,1,Oie,o2b);_.Mb=function p2b(a){return b2b(this.a,BD(a,33))};var iR=mdb(tne,yne,1347);bcb(1348,1,{},q2b);_.Kb=function r2b(a){return new YAb(null,new Kub(Nld(BD(a,79)),16))};var jR=mdb(tne,'ElkGraphImporter/lambda$5$Type',1348);bcb(1350,1,Oie,s2b);_.Mb=function t2b(a){return c2b(this.a,BD(a,33))};var kR=mdb(tne,'ElkGraphImporter/lambda$7$Type',1350);bcb(1351,1,Oie,u2b);_.Mb=function v2b(a){return d2b(BD(a,79))};var lR=mdb(tne,'ElkGraphImporter/lambda$8$Type',1351);bcb(1278,1,{},D2b);var w2b;var rR=mdb(tne,'ElkGraphLayoutTransferrer',1278);bcb(1279,1,Oie,G2b);_.Mb=function H2b(a){return E2b(this.a,BD(a,17))};var nR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$0$Type',1279);bcb(1280,1,qie,I2b);_.td=function J2b(a){x2b();Ekb(this.a,BD(a,17))};var oR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$1$Type',1280);bcb(1281,1,Oie,K2b);_.Mb=function L2b(a){return F2b(this.a,BD(a,17))};var pR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$2$Type',1281);bcb(1282,1,qie,M2b);_.td=function N2b(a){x2b();Ekb(this.a,BD(a,17))};var qR=mdb(tne,'ElkGraphLayoutTransferrer/lambda$3$Type',1282);bcb(1485,1,ene,S2b);_.pf=function T2b(a,b){Q2b(BD(a,37),b)};var uR=mdb(Ane,'CommentNodeMarginCalculator',1485);bcb(1486,1,{},U2b);_.Kb=function V2b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var sR=mdb(Ane,'CommentNodeMarginCalculator/lambda$0$Type',1486);bcb(1487,1,qie,W2b);_.td=function X2b(a){R2b(BD(a,10))};var tR=mdb(Ane,'CommentNodeMarginCalculator/lambda$1$Type',1487);bcb(1488,1,ene,_2b);_.pf=function a3b(a,b){Z2b(BD(a,37),b)};var vR=mdb(Ane,'CommentPostprocessor',1488);bcb(1489,1,ene,e3b);_.pf=function f3b(a,b){b3b(BD(a,37),b)};var wR=mdb(Ane,'CommentPreprocessor',1489);bcb(1490,1,ene,h3b);_.pf=function i3b(a,b){g3b(BD(a,37),b)};var xR=mdb(Ane,'ConstraintsPostprocessor',1490);bcb(1491,1,ene,p3b);_.pf=function q3b(a,b){n3b(BD(a,37),b)};var yR=mdb(Ane,'EdgeAndLayerConstraintEdgeReverser',1491);bcb(1492,1,ene,t3b);_.pf=function v3b(a,b){r3b(BD(a,37),b)};var CR=mdb(Ane,'EndLabelPostprocessor',1492);bcb(1493,1,{},w3b);_.Kb=function x3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var zR=mdb(Ane,'EndLabelPostprocessor/lambda$0$Type',1493);bcb(1494,1,Oie,y3b);_.Mb=function z3b(a){return u3b(BD(a,10))};var AR=mdb(Ane,'EndLabelPostprocessor/lambda$1$Type',1494);bcb(1495,1,qie,A3b);_.td=function B3b(a){s3b(BD(a,10))};var BR=mdb(Ane,'EndLabelPostprocessor/lambda$2$Type',1495);bcb(1496,1,ene,M3b);_.pf=function P3b(a,b){I3b(BD(a,37),b)};var JR=mdb(Ane,'EndLabelPreprocessor',1496);bcb(1497,1,{},Q3b);_.Kb=function R3b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DR=mdb(Ane,'EndLabelPreprocessor/lambda$0$Type',1497);bcb(1498,1,qie,S3b);_.td=function T3b(a){E3b(this.a,this.b,this.c,BD(a,10))};_.a=0;_.b=0;_.c=false;var ER=mdb(Ane,'EndLabelPreprocessor/lambda$1$Type',1498);bcb(1499,1,Oie,U3b);_.Mb=function V3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var FR=mdb(Ane,'EndLabelPreprocessor/lambda$2$Type',1499);bcb(1500,1,qie,W3b);_.td=function X3b(a){Dsb(this.a,BD(a,70))};var GR=mdb(Ane,'EndLabelPreprocessor/lambda$3$Type',1500);bcb(1501,1,Oie,Y3b);_.Mb=function Z3b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var HR=mdb(Ane,'EndLabelPreprocessor/lambda$4$Type',1501);bcb(1502,1,qie,$3b);_.td=function _3b(a){Dsb(this.a,BD(a,70))};var IR=mdb(Ane,'EndLabelPreprocessor/lambda$5$Type',1502);bcb(1551,1,ene,i4b);_.pf=function j4b(a,b){f4b(BD(a,37),b)};var a4b;var RR=mdb(Ane,'EndLabelSorter',1551);bcb(1552,1,Dke,l4b);_.ue=function m4b(a,b){return k4b(BD(a,456),BD(b,456))};_.Fb=function n4b(a){return this===a};_.ve=function o4b(){return new tpb(this)};var KR=mdb(Ane,'EndLabelSorter/1',1552);bcb(456,1,{456:1},p4b);var LR=mdb(Ane,'EndLabelSorter/LabelGroup',456);bcb(1553,1,{},q4b);_.Kb=function r4b(a){return b4b(),new YAb(null,new Kub(BD(a,29).a,16))};var MR=mdb(Ane,'EndLabelSorter/lambda$0$Type',1553);bcb(1554,1,Oie,s4b);_.Mb=function t4b(a){return b4b(),BD(a,10).k==(j0b(),h0b)};var NR=mdb(Ane,'EndLabelSorter/lambda$1$Type',1554);bcb(1555,1,qie,u4b);_.td=function v4b(a){g4b(BD(a,10))};var OR=mdb(Ane,'EndLabelSorter/lambda$2$Type',1555);bcb(1556,1,Oie,w4b);_.Mb=function x4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),oad))};var PR=mdb(Ane,'EndLabelSorter/lambda$3$Type',1556);bcb(1557,1,Oie,y4b);_.Mb=function z4b(a){return b4b(),PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),pad))};var QR=mdb(Ane,'EndLabelSorter/lambda$4$Type',1557);bcb(1503,1,ene,L4b);_.pf=function M4b(a,b){J4b(this,BD(a,37))};_.b=0;_.c=0;var YR=mdb(Ane,'FinalSplineBendpointsCalculator',1503);bcb(1504,1,{},N4b);_.Kb=function O4b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var SR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$0$Type',1504);bcb(1505,1,{},P4b);_.Kb=function Q4b(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var TR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$1$Type',1505);bcb(1506,1,Oie,R4b);_.Mb=function S4b(a){return !OZb(BD(a,17))};var UR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$2$Type',1506);bcb(1507,1,Oie,T4b);_.Mb=function U4b(a){return wNb(BD(a,17),(wtc(),rtc))};var VR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$3$Type',1507);bcb(1508,1,qie,V4b);_.td=function W4b(a){C4b(this.a,BD(a,128))};var WR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$4$Type',1508);bcb(1509,1,qie,X4b);_.td=function Y4b(a){smb(BD(a,17).a)};var XR=mdb(Ane,'FinalSplineBendpointsCalculator/lambda$5$Type',1509);bcb(792,1,ene,u5b);_.pf=function v5b(a,b){l5b(this,BD(a,37),b)};var $R=mdb(Ane,'GraphTransformer',792);bcb(511,22,{3:1,35:1,22:1,511:1},z5b);var w5b,x5b;var ZR=ndb(Ane,'GraphTransformer/Mode',511,CI,B5b,A5b);var C5b;bcb(1510,1,ene,I5b);_.pf=function J5b(a,b){F5b(BD(a,37),b)};var _R=mdb(Ane,'HierarchicalNodeResizingProcessor',1510);bcb(1511,1,ene,Q5b);_.pf=function R5b(a,b){M5b(BD(a,37),b)};var bS=mdb(Ane,'HierarchicalPortConstraintProcessor',1511);bcb(1512,1,Dke,T5b);_.ue=function U5b(a,b){return S5b(BD(a,10),BD(b,10))};_.Fb=function V5b(a){return this===a};_.ve=function W5b(){return new tpb(this)};var aS=mdb(Ane,'HierarchicalPortConstraintProcessor/NodeComparator',1512);bcb(1513,1,ene,Z5b);_.pf=function $5b(a,b){X5b(BD(a,37),b)};var cS=mdb(Ane,'HierarchicalPortDummySizeProcessor',1513);bcb(1514,1,ene,l6b);_.pf=function m6b(a,b){e6b(this,BD(a,37),b)};_.a=0;var fS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter',1514);bcb(1515,1,Dke,o6b);_.ue=function p6b(a,b){return n6b(BD(a,10),BD(b,10))};_.Fb=function q6b(a){return this===a};_.ve=function r6b(){return new tpb(this)};var dS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/1',1515);bcb(1516,1,Dke,t6b);_.ue=function u6b(a,b){return s6b(BD(a,10),BD(b,10))};_.Fb=function v6b(a){return this===a};_.ve=function w6b(){return new tpb(this)};var eS=mdb(Ane,'HierarchicalPortOrthogonalEdgeRouter/2',1516);bcb(1517,1,ene,z6b);_.pf=function A6b(a,b){y6b(BD(a,37),b)};var gS=mdb(Ane,'HierarchicalPortPositionProcessor',1517);bcb(1518,1,ene,J6b);_.pf=function K6b(a,b){I6b(this,BD(a,37))};_.a=0;_.c=0;var B6b,C6b;var kS=mdb(Ane,'HighDegreeNodeLayeringProcessor',1518);bcb(571,1,{571:1},L6b);_.b=-1;_.d=-1;var hS=mdb(Ane,'HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation',571);bcb(1519,1,{},M6b);_.Kb=function N6b(a){return D6b(),R_b(BD(a,10))};_.Fb=function O6b(a){return this===a};var iS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$0$Type',1519);bcb(1520,1,{},P6b);_.Kb=function Q6b(a){return D6b(),U_b(BD(a,10))};_.Fb=function R6b(a){return this===a};var jS=mdb(Ane,'HighDegreeNodeLayeringProcessor/lambda$1$Type',1520);bcb(1526,1,ene,X6b);_.pf=function Y6b(a,b){W6b(this,BD(a,37),b)};var pS=mdb(Ane,'HyperedgeDummyMerger',1526);bcb(793,1,{},Z6b);_.a=false;_.b=false;_.c=false;var lS=mdb(Ane,'HyperedgeDummyMerger/MergeState',793);bcb(1527,1,{},$6b);_.Kb=function _6b(a){return new YAb(null,new Kub(BD(a,29).a,16))};var mS=mdb(Ane,'HyperedgeDummyMerger/lambda$0$Type',1527);bcb(1528,1,{},a7b);_.Kb=function b7b(a){return new YAb(null,new Kub(BD(a,10).j,16))};var nS=mdb(Ane,'HyperedgeDummyMerger/lambda$1$Type',1528);bcb(1529,1,qie,c7b);_.td=function d7b(a){BD(a,11).p=-1};var oS=mdb(Ane,'HyperedgeDummyMerger/lambda$2$Type',1529);bcb(1530,1,ene,g7b);_.pf=function h7b(a,b){f7b(BD(a,37),b)};var qS=mdb(Ane,'HypernodesProcessor',1530);bcb(1531,1,ene,j7b);_.pf=function k7b(a,b){i7b(BD(a,37),b)};var rS=mdb(Ane,'InLayerConstraintProcessor',1531);bcb(1532,1,ene,m7b);_.pf=function n7b(a,b){l7b(BD(a,37),b)};var sS=mdb(Ane,'InnermostNodeMarginCalculator',1532);bcb(1533,1,ene,r7b);_.pf=function w7b(a,b){q7b(this,BD(a,37))};_.a=Qje;_.b=Qje;_.c=Pje;_.d=Pje;var zS=mdb(Ane,'InteractiveExternalPortPositioner',1533);bcb(1534,1,{},x7b);_.Kb=function y7b(a){return BD(a,17).d.i};_.Fb=function z7b(a){return this===a};var tS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$0$Type',1534);bcb(1535,1,{},A7b);_.Kb=function B7b(a){return s7b(this.a,ED(a))};_.Fb=function C7b(a){return this===a};var uS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$1$Type',1535);bcb(1536,1,{},D7b);_.Kb=function E7b(a){return BD(a,17).c.i};_.Fb=function F7b(a){return this===a};var vS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$2$Type',1536);bcb(1537,1,{},G7b);_.Kb=function H7b(a){return t7b(this.a,ED(a))};_.Fb=function I7b(a){return this===a};var wS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$3$Type',1537);bcb(1538,1,{},J7b);_.Kb=function K7b(a){return u7b(this.a,ED(a))};_.Fb=function L7b(a){return this===a};var xS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$4$Type',1538);bcb(1539,1,{},M7b);_.Kb=function N7b(a){return v7b(this.a,ED(a))};_.Fb=function O7b(a){return this===a};var yS=mdb(Ane,'InteractiveExternalPortPositioner/lambda$5$Type',1539);bcb(77,22,{3:1,35:1,22:1,77:1,234:1},T8b);_.Kf=function U8b(){switch(this.g){case 15:return new eoc;case 22:return new Aoc;case 47:return new Joc;case 28:case 35:return new uac;case 32:return new S2b;case 42:return new _2b;case 1:return new e3b;case 41:return new h3b;case 56:return new u5b((y5b(),x5b));case 0:return new u5b((y5b(),w5b));case 2:return new p3b;case 54:return new t3b;case 33:return new M3b;case 51:return new L4b;case 55:return new I5b;case 13:return new Q5b;case 38:return new Z5b;case 44:return new l6b;case 40:return new z6b;case 9:return new J6b;case 49:return new sgc;case 37:return new X6b;case 43:return new g7b;case 27:return new j7b;case 30:return new m7b;case 3:return new r7b;case 18:return new b9b;case 29:return new h9b;case 5:return new u9b;case 50:return new D9b;case 34:return new $9b;case 36:return new Iac;case 52:return new i4b;case 11:return new Sac;case 7:return new abc;case 39:return new obc;case 45:return new rbc;case 16:return new vbc;case 10:return new Fbc;case 48:return new Xbc;case 21:return new ccc;case 23:return new fGc((rGc(),pGc));case 8:return new lcc;case 12:return new tcc;case 4:return new ycc;case 19:return new Tcc;case 17:return new pdc;case 53:return new sdc;case 6:return new hec;case 25:return new wdc;case 46:return new Ndc;case 31:return new sec;case 14:return new Fec;case 26:return new ppc;case 20:return new Uec;case 24:return new fGc((rGc(),qGc));default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var P7b,Q7b,R7b,S7b,T7b,U7b,V7b,W7b,X7b,Y7b,Z7b,$7b,_7b,a8b,b8b,c8b,d8b,e8b,f8b,g8b,h8b,i8b,j8b,k8b,l8b,m8b,n8b,o8b,p8b,q8b,r8b,s8b,t8b,u8b,v8b,w8b,x8b,y8b,z8b,A8b,B8b,C8b,D8b,E8b,F8b,G8b,H8b,I8b,J8b,K8b,L8b,M8b,N8b,O8b,P8b,Q8b,R8b;var AS=ndb(Ane,Ene,77,CI,W8b,V8b);var X8b;bcb(1540,1,ene,b9b);_.pf=function c9b(a,b){_8b(BD(a,37),b)};var BS=mdb(Ane,'InvertedPortProcessor',1540);bcb(1541,1,ene,h9b);_.pf=function i9b(a,b){g9b(BD(a,37),b)};var FS=mdb(Ane,'LabelAndNodeSizeProcessor',1541);bcb(1542,1,Oie,j9b);_.Mb=function k9b(a){return BD(a,10).k==(j0b(),h0b)};var CS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$0$Type',1542);bcb(1543,1,Oie,l9b);_.Mb=function m9b(a){return BD(a,10).k==(j0b(),e0b)};var DS=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$1$Type',1543);bcb(1544,1,qie,n9b);_.td=function o9b(a){e9b(this.b,this.a,this.c,BD(a,10))};_.a=false;_.c=false;var ES=mdb(Ane,'LabelAndNodeSizeProcessor/lambda$2$Type',1544);bcb(1545,1,ene,u9b);_.pf=function v9b(a,b){s9b(BD(a,37),b)};var p9b;var HS=mdb(Ane,'LabelDummyInserter',1545);bcb(1546,1,Vke,w9b);_.Lb=function x9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};_.Fb=function y9b(a){return this===a};_.Mb=function z9b(a){return PD(vNb(BD(a,70),(Nyc(),Qwc)))===PD((qad(),nad))};var GS=mdb(Ane,'LabelDummyInserter/1',1546);bcb(1547,1,ene,D9b);_.pf=function E9b(a,b){C9b(BD(a,37),b)};var JS=mdb(Ane,'LabelDummyRemover',1547);bcb(1548,1,Oie,F9b);_.Mb=function G9b(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var IS=mdb(Ane,'LabelDummyRemover/lambda$0$Type',1548);bcb(1359,1,ene,$9b);_.pf=function cac(a,b){W9b(this,BD(a,37),b)};_.a=null;var H9b;var QS=mdb(Ane,'LabelDummySwitcher',1359);bcb(286,1,{286:1},gac);_.c=0;_.d=null;_.f=0;var KS=mdb(Ane,'LabelDummySwitcher/LabelDummyInfo',286);bcb(1360,1,{},hac);_.Kb=function iac(a){return I9b(),new YAb(null,new Kub(BD(a,29).a,16))};var LS=mdb(Ane,'LabelDummySwitcher/lambda$0$Type',1360);bcb(1361,1,Oie,jac);_.Mb=function kac(a){return I9b(),BD(a,10).k==(j0b(),f0b)};var MS=mdb(Ane,'LabelDummySwitcher/lambda$1$Type',1361);bcb(1362,1,{},lac);_.Kb=function mac(a){return _9b(this.a,BD(a,10))};var NS=mdb(Ane,'LabelDummySwitcher/lambda$2$Type',1362);bcb(1363,1,qie,nac);_.td=function oac(a){aac(this.a,BD(a,286))};var OS=mdb(Ane,'LabelDummySwitcher/lambda$3$Type',1363);bcb(1364,1,Dke,pac);_.ue=function qac(a,b){return bac(BD(a,286),BD(b,286))};_.Fb=function rac(a){return this===a};_.ve=function sac(){return new tpb(this)};var PS=mdb(Ane,'LabelDummySwitcher/lambda$4$Type',1364);bcb(791,1,ene,uac);_.pf=function vac(a,b){tac(BD(a,37),b)};var RS=mdb(Ane,'LabelManagementProcessor',791);bcb(1549,1,ene,Iac);_.pf=function Jac(a,b){Cac(BD(a,37),b)};var TS=mdb(Ane,'LabelSideSelector',1549);bcb(1550,1,Oie,Kac);_.Mb=function Lac(a){return Ccb(DD(vNb(BD(a,70),(Nyc(),Pwc))))};var SS=mdb(Ane,'LabelSideSelector/lambda$0$Type',1550);bcb(1558,1,ene,Sac);_.pf=function Tac(a,b){Oac(BD(a,37),b)};var US=mdb(Ane,'LayerConstraintPostprocessor',1558);bcb(1559,1,ene,abc);_.pf=function bbc(a,b){$ac(BD(a,37),b)};var Uac;var WS=mdb(Ane,'LayerConstraintPreprocessor',1559);bcb(360,22,{3:1,35:1,22:1,360:1},ibc);var cbc,dbc,ebc,fbc;var VS=ndb(Ane,'LayerConstraintPreprocessor/HiddenNodeConnections',360,CI,kbc,jbc);var lbc;bcb(1560,1,ene,obc);_.pf=function pbc(a,b){nbc(BD(a,37),b)};var XS=mdb(Ane,'LayerSizeAndGraphHeightCalculator',1560);bcb(1561,1,ene,rbc);_.pf=function tbc(a,b){qbc(BD(a,37),b)};var YS=mdb(Ane,'LongEdgeJoiner',1561);bcb(1562,1,ene,vbc);_.pf=function xbc(a,b){ubc(BD(a,37),b)};var ZS=mdb(Ane,'LongEdgeSplitter',1562);bcb(1563,1,ene,Fbc);_.pf=function Ibc(a,b){Bbc(this,BD(a,37),b)};_.d=0;_.e=0;_.i=0;_.j=0;_.k=0;_.n=0;var bT=mdb(Ane,'NodePromotion',1563);bcb(1564,1,{},Jbc);_.Kb=function Kbc(a){return BD(a,46),Bcb(),true};_.Fb=function Lbc(a){return this===a};var $S=mdb(Ane,'NodePromotion/lambda$0$Type',1564);bcb(1565,1,{},Mbc);_.Kb=function Nbc(a){return Gbc(this.a,BD(a,46))};_.Fb=function Obc(a){return this===a};_.a=0;var _S=mdb(Ane,'NodePromotion/lambda$1$Type',1565);bcb(1566,1,{},Pbc);_.Kb=function Qbc(a){return Hbc(this.a,BD(a,46))};_.Fb=function Rbc(a){return this===a};_.a=0;var aT=mdb(Ane,'NodePromotion/lambda$2$Type',1566);bcb(1567,1,ene,Xbc);_.pf=function Ybc(a,b){Sbc(BD(a,37),b)};var cT=mdb(Ane,'NorthSouthPortPostprocessor',1567);bcb(1568,1,ene,ccc);_.pf=function ecc(a,b){acc(BD(a,37),b)};var eT=mdb(Ane,'NorthSouthPortPreprocessor',1568);bcb(1569,1,Dke,fcc);_.ue=function gcc(a,b){return dcc(BD(a,11),BD(b,11))};_.Fb=function hcc(a){return this===a};_.ve=function icc(){return new tpb(this)};var dT=mdb(Ane,'NorthSouthPortPreprocessor/lambda$0$Type',1569);bcb(1570,1,ene,lcc);_.pf=function ncc(a,b){kcc(BD(a,37),b)};var hT=mdb(Ane,'PartitionMidprocessor',1570);bcb(1571,1,Oie,occ);_.Mb=function pcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var fT=mdb(Ane,'PartitionMidprocessor/lambda$0$Type',1571);bcb(1572,1,qie,qcc);_.td=function rcc(a){mcc(this.a,BD(a,10))};var gT=mdb(Ane,'PartitionMidprocessor/lambda$1$Type',1572);bcb(1573,1,ene,tcc);_.pf=function ucc(a,b){scc(BD(a,37),b)};var iT=mdb(Ane,'PartitionPostprocessor',1573);bcb(1574,1,ene,ycc);_.pf=function zcc(a,b){wcc(BD(a,37),b)};var nT=mdb(Ane,'PartitionPreprocessor',1574);bcb(1575,1,Oie,Acc);_.Mb=function Bcc(a){return wNb(BD(a,10),(Nyc(),Nxc))};var jT=mdb(Ane,'PartitionPreprocessor/lambda$0$Type',1575);bcb(1576,1,{},Ccc);_.Kb=function Dcc(a){return new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var kT=mdb(Ane,'PartitionPreprocessor/lambda$1$Type',1576);bcb(1577,1,Oie,Ecc);_.Mb=function Fcc(a){return vcc(BD(a,17))};var lT=mdb(Ane,'PartitionPreprocessor/lambda$2$Type',1577);bcb(1578,1,qie,Gcc);_.td=function Hcc(a){xcc(BD(a,17))};var mT=mdb(Ane,'PartitionPreprocessor/lambda$3$Type',1578);bcb(1579,1,ene,Tcc);_.pf=function Xcc(a,b){Qcc(BD(a,37),b)};var Icc,Jcc,Kcc,Lcc,Mcc,Ncc;var tT=mdb(Ane,'PortListSorter',1579);bcb(1580,1,{},Zcc);_.Kb=function $cc(a){return Occ(),BD(a,11).e};var oT=mdb(Ane,'PortListSorter/lambda$0$Type',1580);bcb(1581,1,{},_cc);_.Kb=function adc(a){return Occ(),BD(a,11).g};var pT=mdb(Ane,'PortListSorter/lambda$1$Type',1581);bcb(1582,1,Dke,bdc);_.ue=function cdc(a,b){return Ucc(BD(a,11),BD(b,11))};_.Fb=function ddc(a){return this===a};_.ve=function edc(){return new tpb(this)};var qT=mdb(Ane,'PortListSorter/lambda$2$Type',1582);bcb(1583,1,Dke,fdc);_.ue=function gdc(a,b){return Vcc(BD(a,11),BD(b,11))};_.Fb=function hdc(a){return this===a};_.ve=function idc(){return new tpb(this)};var rT=mdb(Ane,'PortListSorter/lambda$3$Type',1583);bcb(1584,1,Dke,jdc);_.ue=function kdc(a,b){return Wcc(BD(a,11),BD(b,11))};_.Fb=function ldc(a){return this===a};_.ve=function mdc(){return new tpb(this)};var sT=mdb(Ane,'PortListSorter/lambda$4$Type',1584);bcb(1585,1,ene,pdc);_.pf=function qdc(a,b){ndc(BD(a,37),b)};var uT=mdb(Ane,'PortSideProcessor',1585);bcb(1586,1,ene,sdc);_.pf=function tdc(a,b){rdc(BD(a,37),b)};var vT=mdb(Ane,'ReversedEdgeRestorer',1586);bcb(1591,1,ene,wdc);_.pf=function xdc(a,b){udc(this,BD(a,37),b)};var CT=mdb(Ane,'SelfLoopPortRestorer',1591);bcb(1592,1,{},ydc);_.Kb=function zdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var wT=mdb(Ane,'SelfLoopPortRestorer/lambda$0$Type',1592);bcb(1593,1,Oie,Adc);_.Mb=function Bdc(a){return BD(a,10).k==(j0b(),h0b)};var xT=mdb(Ane,'SelfLoopPortRestorer/lambda$1$Type',1593);bcb(1594,1,Oie,Cdc);_.Mb=function Ddc(a){return wNb(BD(a,10),(wtc(),ntc))};var yT=mdb(Ane,'SelfLoopPortRestorer/lambda$2$Type',1594);bcb(1595,1,{},Edc);_.Kb=function Fdc(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var zT=mdb(Ane,'SelfLoopPortRestorer/lambda$3$Type',1595);bcb(1596,1,qie,Gdc);_.td=function Hdc(a){vdc(this.a,BD(a,403))};var AT=mdb(Ane,'SelfLoopPortRestorer/lambda$4$Type',1596);bcb(794,1,qie,Idc);_.td=function Jdc(a){ljc(BD(a,101))};var BT=mdb(Ane,'SelfLoopPortRestorer/lambda$5$Type',794);bcb(1597,1,ene,Ndc);_.pf=function Pdc(a,b){Kdc(BD(a,37),b)};var LT=mdb(Ane,'SelfLoopPostProcessor',1597);bcb(1598,1,{},Qdc);_.Kb=function Rdc(a){return new YAb(null,new Kub(BD(a,29).a,16))};var DT=mdb(Ane,'SelfLoopPostProcessor/lambda$0$Type',1598);bcb(1599,1,Oie,Sdc);_.Mb=function Tdc(a){return BD(a,10).k==(j0b(),h0b)};var ET=mdb(Ane,'SelfLoopPostProcessor/lambda$1$Type',1599);bcb(1600,1,Oie,Udc);_.Mb=function Vdc(a){return wNb(BD(a,10),(wtc(),ntc))};var FT=mdb(Ane,'SelfLoopPostProcessor/lambda$2$Type',1600);bcb(1601,1,qie,Wdc);_.td=function Xdc(a){Ldc(BD(a,10))};var GT=mdb(Ane,'SelfLoopPostProcessor/lambda$3$Type',1601);bcb(1602,1,{},Ydc);_.Kb=function Zdc(a){return new YAb(null,new Kub(BD(a,101).f,1))};var HT=mdb(Ane,'SelfLoopPostProcessor/lambda$4$Type',1602);bcb(1603,1,qie,$dc);_.td=function _dc(a){Mdc(this.a,BD(a,409))};var IT=mdb(Ane,'SelfLoopPostProcessor/lambda$5$Type',1603);bcb(1604,1,Oie,aec);_.Mb=function bec(a){return !!BD(a,101).i};var JT=mdb(Ane,'SelfLoopPostProcessor/lambda$6$Type',1604);bcb(1605,1,qie,cec);_.td=function dec(a){Odc(this.a,BD(a,101))};var KT=mdb(Ane,'SelfLoopPostProcessor/lambda$7$Type',1605);bcb(1587,1,ene,hec);_.pf=function iec(a,b){gec(BD(a,37),b)};var PT=mdb(Ane,'SelfLoopPreProcessor',1587);bcb(1588,1,{},jec);_.Kb=function kec(a){return new YAb(null,new Kub(BD(a,101).f,1))};var MT=mdb(Ane,'SelfLoopPreProcessor/lambda$0$Type',1588);bcb(1589,1,{},lec);_.Kb=function mec(a){return BD(a,409).a};var NT=mdb(Ane,'SelfLoopPreProcessor/lambda$1$Type',1589);bcb(1590,1,qie,nec);_.td=function oec(a){fec(BD(a,17))};var OT=mdb(Ane,'SelfLoopPreProcessor/lambda$2$Type',1590);bcb(1606,1,ene,sec);_.pf=function tec(a,b){qec(this,BD(a,37),b)};var VT=mdb(Ane,'SelfLoopRouter',1606);bcb(1607,1,{},uec);_.Kb=function vec(a){return new YAb(null,new Kub(BD(a,29).a,16))};var QT=mdb(Ane,'SelfLoopRouter/lambda$0$Type',1607);bcb(1608,1,Oie,wec);_.Mb=function xec(a){return BD(a,10).k==(j0b(),h0b)};var RT=mdb(Ane,'SelfLoopRouter/lambda$1$Type',1608);bcb(1609,1,Oie,yec);_.Mb=function zec(a){return wNb(BD(a,10),(wtc(),ntc))};var ST=mdb(Ane,'SelfLoopRouter/lambda$2$Type',1609);bcb(1610,1,{},Aec);_.Kb=function Bec(a){return BD(vNb(BD(a,10),(wtc(),ntc)),403)};var TT=mdb(Ane,'SelfLoopRouter/lambda$3$Type',1610);bcb(1611,1,qie,Cec);_.td=function Dec(a){pec(this.a,this.b,BD(a,403))};var UT=mdb(Ane,'SelfLoopRouter/lambda$4$Type',1611);bcb(1612,1,ene,Fec);_.pf=function Iec(a,b){Eec(BD(a,37),b)};var $T=mdb(Ane,'SemiInteractiveCrossMinProcessor',1612);bcb(1613,1,Oie,Jec);_.Mb=function Kec(a){return BD(a,10).k==(j0b(),h0b)};var WT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$0$Type',1613);bcb(1614,1,Oie,Lec);_.Mb=function Mec(a){return uNb(BD(a,10))._b((Nyc(),ayc))};var XT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$1$Type',1614);bcb(1615,1,Dke,Nec);_.ue=function Oec(a,b){return Gec(BD(a,10),BD(b,10))};_.Fb=function Pec(a){return this===a};_.ve=function Qec(){return new tpb(this)};var YT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$2$Type',1615);bcb(1616,1,{},Rec);_.Ce=function Sec(a,b){return Hec(BD(a,10),BD(b,10))};var ZT=mdb(Ane,'SemiInteractiveCrossMinProcessor/lambda$3$Type',1616);bcb(1618,1,ene,Uec);_.pf=function Yec(a,b){Tec(BD(a,37),b)};var bU=mdb(Ane,'SortByInputModelProcessor',1618);bcb(1619,1,Oie,Zec);_.Mb=function $ec(a){return BD(a,11).g.c.length!=0};var _T=mdb(Ane,'SortByInputModelProcessor/lambda$0$Type',1619);bcb(1620,1,qie,_ec);_.td=function afc(a){Wec(this.a,BD(a,11))};var aU=mdb(Ane,'SortByInputModelProcessor/lambda$1$Type',1620);bcb(1693,803,{},jfc);_.Me=function kfc(a){var b,c,d,e;this.c=a;switch(this.a.g){case 2:b=new Rkb;MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new lgc),new ngc(this,b));nEb(this,new tfc);Hkb(b,new xfc);b.c=KC(SI,Uhe,1,0,5,1);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new zfc),new Bfc(b));nEb(this,new Ffc);Hkb(b,new Jfc);b.c=KC(SI,Uhe,1,0,5,1);c=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new Lfc(this))),new Nfc);MAb(new YAb(null,new Kub(this.c.a.a,16)),new Rfc(c,b));nEb(this,new Vfc);Hkb(b,new Zfc);b.c=KC(SI,Uhe,1,0,5,1);break;case 3:d=new Rkb;nEb(this,new lfc);e=Ntb($zb(OAb(new YAb(null,new Kub(this.c.a.b,16)),new pfc(this))),new Pfc);MAb(JAb(new YAb(null,new Kub(this.c.a.b,16)),new _fc),new bgc(e,d));nEb(this,new fgc);Hkb(d,new jgc);d.c=KC(SI,Uhe,1,0,5,1);break;default:throw vbb(new x2c);}};_.b=0;var AU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation',1693);bcb(1694,1,Vke,lfc);_.Lb=function mfc(a){return JD(BD(a,57).g,145)};_.Fb=function nfc(a){return this===a};_.Mb=function ofc(a){return JD(BD(a,57).g,145)};var cU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$0$Type',1694);bcb(1695,1,{},pfc);_.Fe=function qfc(a){return dfc(this.a,BD(a,57))};var dU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$1$Type',1695);bcb(1703,1,Pie,rfc);_.Vd=function sfc(){cfc(this.a,this.b,-1)};_.b=0;var eU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$10$Type',1703);bcb(1705,1,Vke,tfc);_.Lb=function ufc(a){return JD(BD(a,57).g,145)};_.Fb=function vfc(a){return this===a};_.Mb=function wfc(a){return JD(BD(a,57).g,145)};var fU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$11$Type',1705);bcb(1706,1,qie,xfc);_.td=function yfc(a){BD(a,365).Vd()};var gU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$12$Type',1706);bcb(1707,1,Oie,zfc);_.Mb=function Afc(a){return JD(BD(a,57).g,10)};var hU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$13$Type',1707);bcb(1709,1,qie,Bfc);_.td=function Cfc(a){efc(this.a,BD(a,57))};var iU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$14$Type',1709);bcb(1708,1,Pie,Dfc);_.Vd=function Efc(){cfc(this.b,this.a,-1)};_.a=0;var jU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$15$Type',1708);bcb(1710,1,Vke,Ffc);_.Lb=function Gfc(a){return JD(BD(a,57).g,10)};_.Fb=function Hfc(a){return this===a};_.Mb=function Ifc(a){return JD(BD(a,57).g,10)};var kU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$16$Type',1710);bcb(1711,1,qie,Jfc);_.td=function Kfc(a){BD(a,365).Vd()};var lU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$17$Type',1711);bcb(1712,1,{},Lfc);_.Fe=function Mfc(a){return ffc(this.a,BD(a,57))};var mU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$18$Type',1712);bcb(1713,1,{},Nfc);_.De=function Ofc(){return 0};var nU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$19$Type',1713);bcb(1696,1,{},Pfc);_.De=function Qfc(){return 0};var oU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$2$Type',1696);bcb(1715,1,qie,Rfc);_.td=function Sfc(a){gfc(this.a,this.b,BD(a,307))};_.a=0;var pU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$20$Type',1715);bcb(1714,1,Pie,Tfc);_.Vd=function Ufc(){bfc(this.a,this.b,-1)};_.b=0;var qU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$21$Type',1714);bcb(1716,1,Vke,Vfc);_.Lb=function Wfc(a){return BD(a,57),true};_.Fb=function Xfc(a){return this===a};_.Mb=function Yfc(a){return BD(a,57),true};var rU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$22$Type',1716);bcb(1717,1,qie,Zfc);_.td=function $fc(a){BD(a,365).Vd()};var sU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$23$Type',1717);bcb(1697,1,Oie,_fc);_.Mb=function agc(a){return JD(BD(a,57).g,10)};var tU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$3$Type',1697);bcb(1699,1,qie,bgc);_.td=function cgc(a){hfc(this.a,this.b,BD(a,57))};_.a=0;var uU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$4$Type',1699);bcb(1698,1,Pie,dgc);_.Vd=function egc(){cfc(this.b,this.a,-1)};_.a=0;var vU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$5$Type',1698);bcb(1700,1,Vke,fgc);_.Lb=function ggc(a){return BD(a,57),true};_.Fb=function hgc(a){return this===a};_.Mb=function igc(a){return BD(a,57),true};var wU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$6$Type',1700);bcb(1701,1,qie,jgc);_.td=function kgc(a){BD(a,365).Vd()};var xU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$7$Type',1701);bcb(1702,1,Oie,lgc);_.Mb=function mgc(a){return JD(BD(a,57).g,145)};var yU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$8$Type',1702);bcb(1704,1,qie,ngc);_.td=function ogc(a){ifc(this.a,this.b,BD(a,57))};var zU=mdb(Jne,'EdgeAwareScanlineConstraintCalculation/lambda$9$Type',1704);bcb(1521,1,ene,sgc);_.pf=function xgc(a,b){rgc(this,BD(a,37),b)};var pgc;var EU=mdb(Jne,'HorizontalGraphCompactor',1521);bcb(1522,1,{},ygc);_.Oe=function zgc(a,b){var c,d,e;if(vgc(a,b)){return 0}c=tgc(a);d=tgc(b);if(!!c&&c.k==(j0b(),e0b)||!!d&&d.k==(j0b(),e0b)){return 0}e=BD(vNb(this.a.a,(wtc(),otc)),304);return fBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};_.Pe=function Agc(a,b){var c,d,e;if(vgc(a,b)){return 1}c=tgc(a);d=tgc(b);e=BD(vNb(this.a.a,(wtc(),otc)),304);return iBc(e,c?c.k:(j0b(),g0b),d?d.k:(j0b(),g0b))};var BU=mdb(Jne,'HorizontalGraphCompactor/1',1522);bcb(1523,1,{},Bgc);_.Ne=function Cgc(a,b){return qgc(),a.a.i==0};var CU=mdb(Jne,'HorizontalGraphCompactor/lambda$0$Type',1523);bcb(1524,1,{},Dgc);_.Ne=function Egc(a,b){return wgc(this.a,a,b)};var DU=mdb(Jne,'HorizontalGraphCompactor/lambda$1$Type',1524);bcb(1664,1,{},Ygc);var Fgc,Ggc;var cV=mdb(Jne,'LGraphToCGraphTransformer',1664);bcb(1672,1,Oie,ehc);_.Mb=function fhc(a){return a!=null};var FU=mdb(Jne,'LGraphToCGraphTransformer/0methodref$nonNull$Type',1672);bcb(1665,1,{},ghc);_.Kb=function hhc(a){return Hgc(),fcb(vNb(BD(BD(a,57).g,10),(wtc(),$sc)))};var GU=mdb(Jne,'LGraphToCGraphTransformer/lambda$0$Type',1665);bcb(1666,1,{},ihc);_.Kb=function jhc(a){return Hgc(),gic(BD(BD(a,57).g,145))};var HU=mdb(Jne,'LGraphToCGraphTransformer/lambda$1$Type',1666);bcb(1675,1,Oie,khc);_.Mb=function lhc(a){return Hgc(),JD(BD(a,57).g,10)};var IU=mdb(Jne,'LGraphToCGraphTransformer/lambda$10$Type',1675);bcb(1676,1,qie,mhc);_.td=function nhc(a){Zgc(BD(a,57))};var JU=mdb(Jne,'LGraphToCGraphTransformer/lambda$11$Type',1676);bcb(1677,1,Oie,ohc);_.Mb=function phc(a){return Hgc(),JD(BD(a,57).g,145)};var KU=mdb(Jne,'LGraphToCGraphTransformer/lambda$12$Type',1677);bcb(1681,1,qie,qhc);_.td=function rhc(a){$gc(BD(a,57))};var LU=mdb(Jne,'LGraphToCGraphTransformer/lambda$13$Type',1681);bcb(1678,1,qie,shc);_.td=function thc(a){_gc(this.a,BD(a,8))};_.a=0;var MU=mdb(Jne,'LGraphToCGraphTransformer/lambda$14$Type',1678);bcb(1679,1,qie,uhc);_.td=function vhc(a){ahc(this.a,BD(a,110))};_.a=0;var NU=mdb(Jne,'LGraphToCGraphTransformer/lambda$15$Type',1679);bcb(1680,1,qie,whc);_.td=function xhc(a){bhc(this.a,BD(a,8))};_.a=0;var OU=mdb(Jne,'LGraphToCGraphTransformer/lambda$16$Type',1680);bcb(1682,1,{},yhc);_.Kb=function zhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var PU=mdb(Jne,'LGraphToCGraphTransformer/lambda$17$Type',1682);bcb(1683,1,Oie,Ahc);_.Mb=function Bhc(a){return Hgc(),OZb(BD(a,17))};var QU=mdb(Jne,'LGraphToCGraphTransformer/lambda$18$Type',1683);bcb(1684,1,qie,Chc);_.td=function Dhc(a){Qgc(this.a,BD(a,17))};var RU=mdb(Jne,'LGraphToCGraphTransformer/lambda$19$Type',1684);bcb(1668,1,qie,Ehc);_.td=function Fhc(a){Rgc(this.a,BD(a,145))};var SU=mdb(Jne,'LGraphToCGraphTransformer/lambda$2$Type',1668);bcb(1685,1,{},Ghc);_.Kb=function Hhc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var TU=mdb(Jne,'LGraphToCGraphTransformer/lambda$20$Type',1685);bcb(1686,1,{},Ihc);_.Kb=function Jhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var UU=mdb(Jne,'LGraphToCGraphTransformer/lambda$21$Type',1686);bcb(1687,1,{},Khc);_.Kb=function Lhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var VU=mdb(Jne,'LGraphToCGraphTransformer/lambda$22$Type',1687);bcb(1688,1,Oie,Mhc);_.Mb=function Nhc(a){return chc(BD(a,15))};var WU=mdb(Jne,'LGraphToCGraphTransformer/lambda$23$Type',1688);bcb(1689,1,qie,Ohc);_.td=function Phc(a){Jgc(this.a,BD(a,15))};var XU=mdb(Jne,'LGraphToCGraphTransformer/lambda$24$Type',1689);bcb(1667,1,qie,Qhc);_.td=function Rhc(a){Sgc(this.a,this.b,BD(a,145))};var YU=mdb(Jne,'LGraphToCGraphTransformer/lambda$3$Type',1667);bcb(1669,1,{},Shc);_.Kb=function Thc(a){return Hgc(),new YAb(null,new Kub(BD(a,29).a,16))};var ZU=mdb(Jne,'LGraphToCGraphTransformer/lambda$4$Type',1669);bcb(1670,1,{},Uhc);_.Kb=function Vhc(a){return Hgc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var $U=mdb(Jne,'LGraphToCGraphTransformer/lambda$5$Type',1670);bcb(1671,1,{},Whc);_.Kb=function Xhc(a){return Hgc(),BD(vNb(BD(a,17),(wtc(),rtc)),15)};var _U=mdb(Jne,'LGraphToCGraphTransformer/lambda$6$Type',1671);bcb(1673,1,qie,Yhc);_.td=function Zhc(a){dhc(this.a,BD(a,15))};var aV=mdb(Jne,'LGraphToCGraphTransformer/lambda$8$Type',1673);bcb(1674,1,qie,$hc);_.td=function _hc(a){Tgc(this.a,this.b,BD(a,145))};var bV=mdb(Jne,'LGraphToCGraphTransformer/lambda$9$Type',1674);bcb(1663,1,{},dic);_.Le=function eic(a){var b,c,d,e,f;this.a=a;this.d=new KFb;this.c=KC(jN,Uhe,121,this.a.a.a.c.length,0,1);this.b=0;for(c=new olb(this.a.a.a);c.a<c.c.c.length;){b=BD(mlb(c),307);b.d=this.b;f=nGb(oGb(new pGb,b),this.d);this.c[this.b]=f;++this.b}cic(this);bic(this);aic(this);uGb(LGb(this.d),new Zdd);for(e=new olb(this.a.a.b);e.a<e.c.c.length;){d=BD(mlb(e),57);d.d.c=this.c[d.a.d].e+d.b.a}};_.b=0;var dV=mdb(Jne,'NetworkSimplexCompaction',1663);bcb(145,1,{35:1,145:1},hic);_.wd=function iic(a){return fic(this,BD(a,145))};_.Ib=function jic(){return gic(this)};var eV=mdb(Jne,'VerticalSegment',145);bcb(827,1,{},sic);_.c=0;_.e=0;_.i=0;var hV=mdb(Kne,'BetweenLayerEdgeTwoNodeCrossingsCounter',827);bcb(663,1,{663:1},zic);_.Ib=function Aic(){return 'AdjacencyList [node='+this.d+', adjacencies= '+this.a+']'};_.b=0;_.c=0;_.f=0;var gV=mdb(Kne,'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList',663);bcb(287,1,{35:1,287:1},Dic);_.wd=function Eic(a){return Bic(this,BD(a,287))};_.Ib=function Fic(){return 'Adjacency [position='+this.c+', cardinality='+this.a+', currentCardinality='+this.b+']'};_.a=0;_.b=0;_.c=0;var fV=mdb(Kne,'BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency',287);bcb(1929,1,{},Iic);_.b=0;_.e=false;var iV=mdb(Kne,'CrossingMatrixFiller',1929);var qY=odb(Lne,'IInitializable');bcb(1804,1,Mne,Oic);_.Nf=function Ric(a,b,c,d,e,f){};_.Pf=function Tic(a,b,c){};_.Lf=function Pic(){return this.c!=(rGc(),pGc)};_.Mf=function Qic(){this.e=KC(WD,oje,25,this.d,15,1)};_.Of=function Sic(a,b){b[a][0].c.p=a};_.Qf=function Uic(a,b,c,d){++this.d};_.Rf=function Vic(){return true};_.Sf=function Wic(a,b,c,d){Kic(this,a,b,c);return Jic(this,b)};_.Tf=function Xic(a,b){var c;c=Lic(b,a.length);Kic(this,a,c,b);return Mic(this,c)};_.d=0;var jV=mdb(Kne,'GreedySwitchHeuristic',1804);bcb(1930,1,{},ejc);_.b=0;_.d=0;var kV=mdb(Kne,'NorthSouthEdgeNeighbouringNodeCrossingsCounter',1930);bcb(1917,1,{},jjc);_.a=false;var lV=mdb(Kne,'SwitchDecider',1917);bcb(101,1,{101:1},pjc);_.a=null;_.c=null;_.i=null;var oV=mdb(Nne,'SelfHyperLoop',101);bcb(1916,1,{},vjc);_.c=0;_.e=0;var nV=mdb(Nne,'SelfHyperLoopLabels',1916);bcb(411,22,{3:1,35:1,22:1,411:1},Bjc);var wjc,xjc,yjc,zjc;var mV=ndb(Nne,'SelfHyperLoopLabels/Alignment',411,CI,Djc,Cjc);var Ejc;bcb(409,1,{409:1},Gjc);var pV=mdb(Nne,'SelfLoopEdge',409);bcb(403,1,{403:1},Kjc);_.a=false;var rV=mdb(Nne,'SelfLoopHolder',403);bcb(1724,1,Oie,Mjc);_.Mb=function Njc(a){return OZb(BD(a,17))};var qV=mdb(Nne,'SelfLoopHolder/lambda$0$Type',1724);bcb(113,1,{113:1},Pjc);_.a=false;_.c=false;var tV=mdb(Nne,'SelfLoopPort',113);bcb(1792,1,Oie,Qjc);_.Mb=function Rjc(a){return OZb(BD(a,17))};var sV=mdb(Nne,'SelfLoopPort/lambda$0$Type',1792);bcb(363,22,{3:1,35:1,22:1,363:1},Yjc);var Sjc,Tjc,Ujc,Vjc,Wjc;var uV=ndb(Nne,'SelfLoopType',363,CI,_jc,$jc);var akc;bcb(1732,1,{},xkc);var ckc,dkc,ekc,fkc;var JV=mdb(One,'PortRestorer',1732);bcb(361,22,{3:1,35:1,22:1,361:1},Gkc);var Ckc,Dkc,Ekc;var vV=ndb(One,'PortRestorer/PortSideArea',361,CI,Ikc,Hkc);var Jkc;bcb(1733,1,{},Lkc);_.Kb=function Mkc(a){return gkc(),BD(a,15).Oc()};var wV=mdb(One,'PortRestorer/lambda$0$Type',1733);bcb(1734,1,qie,Nkc);_.td=function Okc(a){gkc();BD(a,113).c=false};var xV=mdb(One,'PortRestorer/lambda$1$Type',1734);bcb(1743,1,Oie,Pkc);_.Mb=function Qkc(a){return gkc(),BD(a,11).j==(Ucd(),Tcd)};var yV=mdb(One,'PortRestorer/lambda$10$Type',1743);bcb(1744,1,{},Rkc);_.Kb=function Skc(a){return gkc(),BD(a,113).d};var zV=mdb(One,'PortRestorer/lambda$11$Type',1744);bcb(1745,1,qie,Tkc);_.td=function Ukc(a){ykc(this.a,BD(a,11))};var AV=mdb(One,'PortRestorer/lambda$12$Type',1745);bcb(1735,1,qie,Vkc);_.td=function Wkc(a){zkc(this.a,BD(a,101))};var BV=mdb(One,'PortRestorer/lambda$2$Type',1735);bcb(1736,1,Dke,Xkc);_.ue=function Ykc(a,b){return Akc(BD(a,113),BD(b,113))};_.Fb=function Zkc(a){return this===a};_.ve=function $kc(){return new tpb(this)};var CV=mdb(One,'PortRestorer/lambda$3$Type',1736);bcb(1737,1,Oie,_kc);_.Mb=function alc(a){return gkc(),BD(a,113).c};var DV=mdb(One,'PortRestorer/lambda$4$Type',1737);bcb(1738,1,Oie,blc);_.Mb=function clc(a){return nkc(BD(a,11))};var EV=mdb(One,'PortRestorer/lambda$5$Type',1738);bcb(1739,1,Oie,dlc);_.Mb=function elc(a){return gkc(),BD(a,11).j==(Ucd(),Acd)};var FV=mdb(One,'PortRestorer/lambda$6$Type',1739);bcb(1740,1,Oie,flc);_.Mb=function glc(a){return gkc(),BD(a,11).j==(Ucd(),zcd)};var GV=mdb(One,'PortRestorer/lambda$7$Type',1740);bcb(1741,1,Oie,hlc);_.Mb=function ilc(a){return okc(BD(a,11))};var HV=mdb(One,'PortRestorer/lambda$8$Type',1741);bcb(1742,1,Oie,jlc);_.Mb=function klc(a){return gkc(),BD(a,11).j==(Ucd(),Rcd)};var IV=mdb(One,'PortRestorer/lambda$9$Type',1742);bcb(270,22,{3:1,35:1,22:1,270:1},Blc);var slc,tlc,ulc,vlc,wlc,xlc,ylc,zlc;var KV=ndb(One,'PortSideAssigner/Target',270,CI,Dlc,Clc);var Elc;bcb(1725,1,{},Glc);_.Kb=function Hlc(a){return JAb(new YAb(null,new Kub(BD(a,101).j,16)),new Ylc)};var LV=mdb(One,'PortSideAssigner/lambda$1$Type',1725);bcb(1726,1,{},Ilc);_.Kb=function Jlc(a){return BD(a,113).d};var MV=mdb(One,'PortSideAssigner/lambda$2$Type',1726);bcb(1727,1,qie,Klc);_.td=function Llc(a){G0b(BD(a,11),(Ucd(),Acd))};var NV=mdb(One,'PortSideAssigner/lambda$3$Type',1727);bcb(1728,1,{},Mlc);_.Kb=function Nlc(a){return BD(a,113).d};var OV=mdb(One,'PortSideAssigner/lambda$4$Type',1728);bcb(1729,1,qie,Olc);_.td=function Plc(a){plc(this.a,BD(a,11))};var PV=mdb(One,'PortSideAssigner/lambda$5$Type',1729);bcb(1730,1,Dke,Qlc);_.ue=function Rlc(a,b){return qlc(BD(a,101),BD(b,101))};_.Fb=function Slc(a){return this===a};_.ve=function Tlc(){return new tpb(this)};var QV=mdb(One,'PortSideAssigner/lambda$6$Type',1730);bcb(1731,1,Dke,Ulc);_.ue=function Vlc(a,b){return rlc(BD(a,113),BD(b,113))};_.Fb=function Wlc(a){return this===a};_.ve=function Xlc(){return new tpb(this)};var RV=mdb(One,'PortSideAssigner/lambda$7$Type',1731);bcb(805,1,Oie,Ylc);_.Mb=function Zlc(a){return BD(a,113).c};var SV=mdb(One,'PortSideAssigner/lambda$8$Type',805);bcb(2009,1,{});var TV=mdb(Pne,'AbstractSelfLoopRouter',2009);bcb(1750,1,Dke,gmc);_.ue=function hmc(a,b){return emc(BD(a,101),BD(b,101))};_.Fb=function imc(a){return this===a};_.ve=function jmc(){return new tpb(this)};var UV=mdb(Pne,rle,1750);bcb(1751,1,Dke,kmc);_.ue=function lmc(a,b){return fmc(BD(a,101),BD(b,101))};_.Fb=function mmc(a){return this===a};_.ve=function nmc(){return new tpb(this)};var VV=mdb(Pne,sle,1751);bcb(1793,2009,{},zmc);_.Uf=function Amc(a,b,c){return c};var XV=mdb(Pne,'OrthogonalSelfLoopRouter',1793);bcb(1795,1,qie,Bmc);_.td=function Cmc(a){ymc(this.b,this.a,BD(a,8))};var WV=mdb(Pne,'OrthogonalSelfLoopRouter/lambda$0$Type',1795);bcb(1794,1793,{},Fmc);_.Uf=function Gmc(a,b,c){var d,e;d=a.c.d;St(c,0,P6c(R6c(d.n),d.a));e=a.d.d;Dsb(c,P6c(R6c(e.n),e.a));return Dmc(c)};var YV=mdb(Pne,'PolylineSelfLoopRouter',1794);bcb(1746,1,{},Umc);_.a=null;var Hmc;var aW=mdb(Pne,'RoutingDirector',1746);bcb(1747,1,Dke,Wmc);_.ue=function Xmc(a,b){return Vmc(BD(a,113),BD(b,113))};_.Fb=function Ymc(a){return this===a};_.ve=function Zmc(){return new tpb(this)};var ZV=mdb(Pne,'RoutingDirector/lambda$0$Type',1747);bcb(1748,1,{},$mc);_.Kb=function _mc(a){return Imc(),BD(a,101).j};var $V=mdb(Pne,'RoutingDirector/lambda$1$Type',1748);bcb(1749,1,qie,anc);_.td=function bnc(a){Imc();BD(a,15).ad(Hmc)};var _V=mdb(Pne,'RoutingDirector/lambda$2$Type',1749);bcb(1752,1,{},mnc);var dW=mdb(Pne,'RoutingSlotAssigner',1752);bcb(1753,1,Oie,pnc);_.Mb=function qnc(a){return nnc(this.a,BD(a,101))};var bW=mdb(Pne,'RoutingSlotAssigner/lambda$0$Type',1753);bcb(1754,1,Dke,rnc);_.ue=function snc(a,b){return onc(this.a,BD(a,101),BD(b,101))};_.Fb=function tnc(a){return this===a};_.ve=function unc(){return new tpb(this)};var cW=mdb(Pne,'RoutingSlotAssigner/lambda$1$Type',1754);bcb(1796,1793,{},wnc);_.Uf=function xnc(a,b,c){var d,e,f,g;d=Edb(ED(c_b(a.b.g.b,(Nyc(),nyc))));g=new u7c(OC(GC(m1,1),nie,8,0,[(f=a.c.d,P6c(new g7c(f.n),f.a))]));vnc(a,b,c,g,d);Dsb(g,(e=a.d.d,P6c(new g7c(e.n),e.a)));return UPc(new YPc(g))};var eW=mdb(Pne,'SplineSelfLoopRouter',1796);bcb(578,1,Dke,Bnc,Dnc);_.ue=function Enc(a,b){return ync(this,BD(a,10),BD(b,10))};_.Fb=function Fnc(a){return this===a};_.ve=function Gnc(){return new tpb(this)};var kW=mdb(Qne,'ModelOrderNodeComparator',578);bcb(1755,1,Oie,Hnc);_.Mb=function Inc(a){return BD(a,11).e.c.length!=0};var fW=mdb(Qne,'ModelOrderNodeComparator/lambda$0$Type',1755);bcb(1756,1,{},Jnc);_.Kb=function Knc(a){return BD(Ikb(BD(a,11).e,0),17).c};var gW=mdb(Qne,'ModelOrderNodeComparator/lambda$1$Type',1756);bcb(1757,1,Oie,Lnc);_.Mb=function Mnc(a){return BD(a,11).e.c.length!=0};var hW=mdb(Qne,'ModelOrderNodeComparator/lambda$2$Type',1757);bcb(1758,1,{},Nnc);_.Kb=function Onc(a){return BD(Ikb(BD(a,11).e,0),17).c};var iW=mdb(Qne,'ModelOrderNodeComparator/lambda$3$Type',1758);bcb(1759,1,Oie,Pnc);_.Mb=function Qnc(a){return BD(a,11).e.c.length!=0};var jW=mdb(Qne,'ModelOrderNodeComparator/lambda$4$Type',1759);bcb(806,1,Dke,Tnc,Unc);_.ue=function Vnc(a,b){return Rnc(this,a,b)};_.Fb=function Wnc(a){return this===a};_.ve=function Xnc(){return new tpb(this)};var lW=mdb(Qne,'ModelOrderPortComparator',806);bcb(801,1,{},Ync);_.Vf=function $nc(a,b){var c,d,e,f;e=Znc(b);c=new Rkb;f=b.f/e;for(d=1;d<e;++d){Ekb(c,meb(Tbb(Cbb($wnd.Math.round(d*f)))))}return c};_.Wf=function _nc(){return false};var mW=mdb(Rne,'ARDCutIndexHeuristic',801);bcb(1479,1,ene,eoc);_.pf=function foc(a,b){doc(BD(a,37),b)};var pW=mdb(Rne,'BreakingPointInserter',1479);bcb(305,1,{305:1},goc);_.Ib=function joc(){var a;a=new Ufb;a.a+='BPInfo[';a.a+='\n\tstart=';Pfb(a,this.i);a.a+='\n\tend=';Pfb(a,this.a);a.a+='\n\tnodeStartEdge=';Pfb(a,this.e);a.a+='\n\tstartEndEdge=';Pfb(a,this.j);a.a+='\n\toriginalEdge=';Pfb(a,this.f);a.a+='\n\tstartInLayerDummy=';Pfb(a,this.k);a.a+='\n\tstartInLayerEdge=';Pfb(a,this.n);a.a+='\n\tendInLayerDummy=';Pfb(a,this.b);a.a+='\n\tendInLayerEdge=';Pfb(a,this.c);return a.a};var nW=mdb(Rne,'BreakingPointInserter/BPInfo',305);bcb(652,1,{652:1},qoc);_.a=false;_.b=0;_.c=0;var oW=mdb(Rne,'BreakingPointInserter/Cut',652);bcb(1480,1,ene,Aoc);_.pf=function Boc(a,b){yoc(BD(a,37),b)};var sW=mdb(Rne,'BreakingPointProcessor',1480);bcb(1481,1,Oie,Coc);_.Mb=function Doc(a){return hoc(BD(a,10))};var qW=mdb(Rne,'BreakingPointProcessor/0methodref$isEnd$Type',1481);bcb(1482,1,Oie,Eoc);_.Mb=function Foc(a){return ioc(BD(a,10))};var rW=mdb(Rne,'BreakingPointProcessor/1methodref$isStart$Type',1482);bcb(1483,1,ene,Joc);_.pf=function Koc(a,b){Hoc(this,BD(a,37),b)};var uW=mdb(Rne,'BreakingPointRemover',1483);bcb(1484,1,qie,Loc);_.td=function Moc(a){BD(a,128).k=true};var tW=mdb(Rne,'BreakingPointRemover/lambda$0$Type',1484);bcb(797,1,{},Xoc);_.b=0;_.e=0;_.f=0;_.j=0;var AW=mdb(Rne,'GraphStats',797);bcb(798,1,{},Zoc);_.Ce=function $oc(a,b){return $wnd.Math.max(Edb(ED(a)),Edb(ED(b)))};var vW=mdb(Rne,'GraphStats/0methodref$max$Type',798);bcb(799,1,{},_oc);_.Ce=function apc(a,b){return $wnd.Math.max(Edb(ED(a)),Edb(ED(b)))};var wW=mdb(Rne,'GraphStats/2methodref$max$Type',799);bcb(1660,1,{},bpc);_.Ce=function cpc(a,b){return Yoc(ED(a),ED(b))};var xW=mdb(Rne,'GraphStats/lambda$1$Type',1660);bcb(1661,1,{},dpc);_.Kb=function epc(a){return Roc(this.a,BD(a,29))};var yW=mdb(Rne,'GraphStats/lambda$2$Type',1661);bcb(1662,1,{},fpc);_.Kb=function gpc(a){return Qoc(this.a,BD(a,29))};var zW=mdb(Rne,'GraphStats/lambda$6$Type',1662);bcb(800,1,{},hpc);_.Vf=function ipc(a,b){var c;c=BD(vNb(a,(Nyc(),Eyc)),15);return c?c:(mmb(),mmb(),jmb)};_.Wf=function jpc(){return false};var BW=mdb(Rne,'ICutIndexCalculator/ManualCutIndexCalculator',800);bcb(802,1,{},kpc);_.Vf=function lpc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;u=(b.n==null&&Uoc(b),b.n);i=(b.d==null&&Uoc(b),b.d);t=KC(UD,Vje,25,u.length,15,1);t[0]=u[0];r=u[0];for(j=1;j<u.length;j++){t[j]=t[j-1]+u[j];r+=u[j]}e=Znc(b)-1;g=BD(vNb(a,(Nyc(),Fyc)),19).a;d=Qje;c=new Rkb;for(m=$wnd.Math.max(0,e-g);m<=$wnd.Math.min(b.f-1,e+g);m++){p=r/(m+1);q=0;k=1;f=new Rkb;s=Qje;l=0;h=0;o=i[0];if(m==0){s=r;h=(b.g==null&&(b.g=Poc(b,new _oc)),Edb(b.g))}else{while(k<b.f){if(t[k-1]-q>=p){Ekb(f,meb(k));s=$wnd.Math.max(s,t[k-1]-l);h+=o;q+=t[k-1]-q;l=t[k-1];o=i[k]}o=$wnd.Math.max(o,i[k]);++k}h+=o}n=$wnd.Math.min(1/s,1/b.b/h);if(n>d){d=n;c=f}}return c};_.Wf=function mpc(){return false};var CW=mdb(Rne,'MSDCutIndexHeuristic',802);bcb(1617,1,ene,ppc);_.pf=function qpc(a,b){opc(BD(a,37),b)};var DW=mdb(Rne,'SingleEdgeGraphWrapper',1617);bcb(227,22,{3:1,35:1,22:1,227:1},Bpc);var upc,vpc,wpc,xpc,ypc,zpc;var EW=ndb(Sne,'CenterEdgeLabelPlacementStrategy',227,CI,Dpc,Cpc);var Epc;bcb(422,22,{3:1,35:1,22:1,422:1},Jpc);var Gpc,Hpc;var FW=ndb(Sne,'ConstraintCalculationStrategy',422,CI,Lpc,Kpc);var Mpc;bcb(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},Tpc);_.Kf=function Vpc(){return Spc(this)};_.Xf=function Upc(){return Spc(this)};var Opc,Ppc,Qpc;var GW=ndb(Sne,'CrossingMinimizationStrategy',314,CI,Xpc,Wpc);var Ypc;bcb(337,22,{3:1,35:1,22:1,337:1},cqc);var $pc,_pc,aqc;var HW=ndb(Sne,'CuttingStrategy',337,CI,eqc,dqc);var fqc;bcb(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},oqc);_.Kf=function qqc(){return nqc(this)};_.Xf=function pqc(){return nqc(this)};var hqc,iqc,jqc,kqc,lqc;var IW=ndb(Sne,'CycleBreakingStrategy',335,CI,sqc,rqc);var tqc;bcb(419,22,{3:1,35:1,22:1,419:1},yqc);var vqc,wqc;var JW=ndb(Sne,'DirectionCongruency',419,CI,Aqc,zqc);var Bqc;bcb(450,22,{3:1,35:1,22:1,450:1},Hqc);var Dqc,Eqc,Fqc;var KW=ndb(Sne,'EdgeConstraint',450,CI,Jqc,Iqc);var Kqc;bcb(276,22,{3:1,35:1,22:1,276:1},Uqc);var Mqc,Nqc,Oqc,Pqc,Qqc,Rqc;var LW=ndb(Sne,'EdgeLabelSideSelection',276,CI,Wqc,Vqc);var Xqc;bcb(479,22,{3:1,35:1,22:1,479:1},arc);var Zqc,$qc;var MW=ndb(Sne,'EdgeStraighteningStrategy',479,CI,crc,brc);var drc;bcb(274,22,{3:1,35:1,22:1,274:1},mrc);var frc,grc,hrc,irc,jrc,krc;var NW=ndb(Sne,'FixedAlignment',274,CI,orc,nrc);var prc;bcb(275,22,{3:1,35:1,22:1,275:1},zrc);var rrc,trc,urc,vrc,wrc,xrc;var OW=ndb(Sne,'GraphCompactionStrategy',275,CI,Brc,Arc);var Crc;bcb(256,22,{3:1,35:1,22:1,256:1},Prc);var Erc,Frc,Grc,Hrc,Irc,Jrc,Krc,Lrc,Mrc,Nrc;var PW=ndb(Sne,'GraphProperties',256,CI,Rrc,Qrc);var Src;bcb(292,22,{3:1,35:1,22:1,292:1},Yrc);var Urc,Vrc,Wrc;var QW=ndb(Sne,'GreedySwitchType',292,CI,$rc,Zrc);var _rc;bcb(303,22,{3:1,35:1,22:1,303:1},fsc);var bsc,csc,dsc;var RW=ndb(Sne,'InLayerConstraint',303,CI,hsc,gsc);var isc;bcb(420,22,{3:1,35:1,22:1,420:1},nsc);var ksc,lsc;var SW=ndb(Sne,'InteractiveReferencePoint',420,CI,psc,osc);var qsc;var ssc,tsc,usc,vsc,wsc,xsc,ysc,zsc,Asc,Bsc,Csc,Dsc,Esc,Fsc,Gsc,Hsc,Isc,Jsc,Ksc,Lsc,Msc,Nsc,Osc,Psc,Qsc,Rsc,Ssc,Tsc,Usc,Vsc,Wsc,Xsc,Ysc,Zsc,$sc,_sc,atc,btc,ctc,dtc,etc,ftc,gtc,htc,itc,jtc,ktc,ltc,mtc,ntc,otc,ptc,qtc,rtc,stc,ttc,utc,vtc;bcb(163,22,{3:1,35:1,22:1,163:1},Dtc);var xtc,ytc,ztc,Atc,Btc;var TW=ndb(Sne,'LayerConstraint',163,CI,Ftc,Etc);var Gtc;bcb(848,1,ale,kwc);_.Qe=function lwc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yne),''),'Direction Congruency'),'Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other.'),puc),(_5c(),V5c)),JW),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zne),''),'Feedback Edges'),'Whether feedback edges should be highlighted by routing around the nodes.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$ne),''),'Interactive Reference Point'),'Determines which point of a node is considered by interactive layout phases.'),Muc),V5c),SW),pqb(L5c))));o4c(a,$ne,goe,Ouc);o4c(a,$ne,qoe,Nuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_ne),''),'Merge Edges'),'Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aoe),''),'Merge Hierarchy-Crossing Edges'),'If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,boe),''),'Allow Non-Flow Ports To Switch Sides'),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),false),T5c),wI),pqb(M5c)),OC(GC(ZI,1),nie,2,6,['org.eclipse.elk.layered.northOrSouthPort']))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,coe),''),'Port Sorting Strategy'),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),xvc),V5c),cX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,doe),''),'Thoroughness'),'How much effort should be spent to produce a nice layout.'),meb(7)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eoe),''),'Add Unnecessary Bendpoints'),'Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,foe),''),'Generate Position and Layer IDs'),'If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,goe),'cycleBreaking'),'Cycle Breaking Strategy'),'Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right).'),nuc),V5c),IW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hoe),ppe),'Node Layering Strategy'),'Strategy for node layering.'),bvc),V5c),YW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ioe),ppe),'Layer Constraint'),'Determines a constraint on the placement of the node regarding the layering.'),Tuc),V5c),TW),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,joe),ppe),'Layer Choice Constraint'),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,koe),ppe),'Layer ID'),'Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,loe),qpe),'Upper Bound On Width [MinWidth Layerer]'),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),meb(4)),X5c),JI),pqb(L5c))));o4c(a,loe,hoe,Wuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,moe),qpe),'Upper Layer Estimation Scaling Factor [MinWidth Layerer]'),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),meb(2)),X5c),JI),pqb(L5c))));o4c(a,moe,hoe,Yuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,noe),rpe),'Node Promotion Strategy'),'Reduces number of dummy nodes after layering phase (if possible).'),_uc),V5c),aX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ooe),rpe),'Max Node Promotion Iterations'),'Limits the number of iterations for node promotion.'),meb(0)),X5c),JI),pqb(L5c))));o4c(a,ooe,noe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,poe),'layering.coffmanGraham'),'Layer Bound'),'The maximum number of nodes allowed per layer.'),meb(Ohe)),X5c),JI),pqb(L5c))));o4c(a,poe,hoe,Quc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qoe),spe),'Crossing Minimization Strategy'),'Strategy for crossing minimization.'),luc),V5c),GW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,roe),spe),'Force Node Model Order'),'The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,soe),spe),'Hierarchical Sweepiness'),'How likely it is to use cross-hierarchy (1) vs bottom-up (-1).'),0.1),U5c),BI),pqb(L5c))));o4c(a,soe,tpe,fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,toe),spe),'Semi-Interactive Crossing Minimization'),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),false),T5c),wI),pqb(L5c))));o4c(a,toe,qoe,juc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,uoe),spe),'Position Choice Constraint'),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,voe),spe),'Position ID'),'Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,woe),upe),'Greedy Switch Activation Threshold'),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),meb(40)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xoe),upe),'Greedy Switch Crossing Minimization'),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),cuc),V5c),QW),pqb(L5c))));o4c(a,xoe,qoe,duc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yoe),'crossingMinimization.greedySwitchHierarchical'),'Greedy Switch Crossing Minimization (hierarchical)'),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),$tc),V5c),QW),pqb(L5c))));o4c(a,yoe,qoe,_tc);o4c(a,yoe,tpe,auc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zoe),vpe),'Node Placement Strategy'),'Strategy for node placement.'),vvc),V5c),_W),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Aoe),vpe),'Favor Straight Edges Over Balancing'),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),T5c),wI),pqb(L5c))));o4c(a,Aoe,zoe,lvc);o4c(a,Aoe,zoe,mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Boe),wpe),'BK Edge Straightening'),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),fvc),V5c),MW),pqb(L5c))));o4c(a,Boe,zoe,gvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Coe),wpe),'BK Fixed Alignment'),'Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four.'),ivc),V5c),NW),pqb(L5c))));o4c(a,Coe,zoe,jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Doe),'nodePlacement.linearSegments'),'Linear Segments Deflection Dampening'),'Dampens the movement of nodes to keep the diagram from getting too large.'),0.3),U5c),BI),pqb(L5c))));o4c(a,Doe,zoe,ovc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Eoe),'nodePlacement.networkSimplex'),'Node Flexibility'),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),V5c),$W),pqb(K5c))));o4c(a,Eoe,zoe,tvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Foe),'nodePlacement.networkSimplex.nodeFlexibility'),'Node Flexibility Default'),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),rvc),V5c),$W),pqb(L5c))));o4c(a,Foe,zoe,svc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Goe),xpe),'Self-Loop Distribution'),'Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE.'),xuc),V5c),eX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hoe),xpe),'Self-Loop Ordering'),'Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE.'),zuc),V5c),fX),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ioe),'edgeRouting.splines'),'Spline Routing Mode'),'Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes.'),Buc),V5c),hX),pqb(L5c))));o4c(a,Ioe,ype,Cuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Joe),'edgeRouting.splines.sloppy'),'Sloppy Spline Layer Spacing Factor'),'Spacing factor for routing area between layers when using sloppy spline routing.'),0.2),U5c),BI),pqb(L5c))));o4c(a,Joe,ype,Euc);o4c(a,Joe,Ioe,Fuc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Koe),'edgeRouting.polyline'),'Sloped Edge Zone Width'),'Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer.'),2),U5c),BI),pqb(L5c))));o4c(a,Koe,ype,vuc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Loe),zpe),'Spacing Base Value'),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Moe),zpe),'Edge Node Between Layers Spacing'),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Noe),zpe),'Edge Edge Between Layer Spacing'),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ooe),zpe),'Node Node Between Layers Spacing'),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Poe),Ape),'Direction Priority'),'Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qoe),Ape),'Shortness Priority'),'Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Roe),Ape),'Straightness Priority'),'Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement.'),meb(0)),X5c),JI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Soe),Bpe),Ole),'Tries to further compact components (disconnected sub-graphs).'),false),T5c),wI),pqb(L5c))));o4c(a,Soe,zme,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Toe),Cpe),'Post Compaction Strategy'),Dpe),Ntc),V5c),OW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Uoe),Cpe),'Post Compaction Constraint Calculation'),Dpe),Ltc),V5c),FW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Voe),Epe),'High Degree Node Treatment'),'Makes room around high degree nodes to place leafs and trees.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Woe),Epe),'High Degree Node Threshold'),'Whether a node is considered to have a high degree.'),meb(16)),X5c),JI),pqb(L5c))));o4c(a,Woe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xoe),Epe),'High Degree Node Maximum Tree Height'),'Maximum height of a subtree connected to a high degree node to be moved to separate layers.'),meb(5)),X5c),JI),pqb(L5c))));o4c(a,Xoe,Voe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yoe),Fpe),'Graph Wrapping Strategy'),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),bwc),V5c),jX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zoe),Fpe),'Additional Wrapped Edges Spacing'),'To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing.'),10),U5c),BI),pqb(L5c))));o4c(a,Zoe,Yoe,Ivc);o4c(a,Zoe,Yoe,Jvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$oe),Fpe),'Correction Factor for Wrapping'),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),U5c),BI),pqb(L5c))));o4c(a,$oe,Yoe,Lvc);o4c(a,$oe,Yoe,Mvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_oe),Gpe),'Cutting Strategy'),'The strategy by which the layer indexes are determined at which the layering crumbles into chunks.'),Tvc),V5c),HW),pqb(L5c))));o4c(a,_oe,Yoe,Uvc);o4c(a,_oe,Yoe,Vvc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,ape),Gpe),'Manually Specified Cuts'),'Allows the user to specify her own cuts for a certain graph.'),Y5c),yK),pqb(L5c))));o4c(a,ape,_oe,Ovc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bpe),'wrapping.cutting.msd'),'MSD Freedom'),'The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts.'),Qvc),X5c),JI),pqb(L5c))));o4c(a,bpe,_oe,Rvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cpe),Hpe),'Validification Strategy'),'When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed.'),gwc),V5c),iX),pqb(L5c))));o4c(a,cpe,Yoe,hwc);o4c(a,cpe,Yoe,iwc);t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,dpe),Hpe),'Valid Indices for Wrapping'),null),Y5c),yK),pqb(L5c))));o4c(a,dpe,Yoe,dwc);o4c(a,dpe,Yoe,ewc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,epe),Ipe),'Improve Cuts'),'For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought.'),true),T5c),wI),pqb(L5c))));o4c(a,epe,Yoe,Zvc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fpe),Ipe),'Distance Penalty When Improving Cuts'),null),2),U5c),BI),pqb(L5c))));o4c(a,fpe,Yoe,Xvc);o4c(a,fpe,epe,true);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gpe),Ipe),'Improve Wrapped Edges'),'The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges.'),true),T5c),wI),pqb(L5c))));o4c(a,gpe,Yoe,_vc);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,hpe),Jpe),'Edge Label Side Selection'),'Method to decide on edge label sides.'),tuc),V5c),LW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ipe),Jpe),'Edge Center Label Placement Strategy'),'Determines in which layer center labels of long edges should be placed.'),ruc),V5c),EW),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,jpe),Kpe),'Consider Model Order'),'Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting.'),Wtc),V5c),bX),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,kpe),Kpe),'No Model Order'),'Set on a node to not set a model order for this node even though it is a real node.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lpe),Kpe),'Consider Model Order for Components'),'If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected.'),Ptc),V5c),hQ),pqb(L5c))));o4c(a,lpe,zme,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mpe),Kpe),'Long Edge Ordering Strategy'),'Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout.'),Ttc),V5c),ZW),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,npe),Kpe),'Crossing Counter Node Order Influence'),'Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,npe,jpe,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ope),Kpe),'Crossing Counter Port Order Influence'),'Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0).'),0),U5c),BI),pqb(L5c))));o4c(a,ope,jpe,null);Oyc((new Pyc,a))};var Itc,Jtc,Ktc,Ltc,Mtc,Ntc,Otc,Ptc,Qtc,Rtc,Stc,Ttc,Utc,Vtc,Wtc,Xtc,Ytc,Ztc,$tc,_tc,auc,buc,cuc,duc,euc,fuc,guc,huc,iuc,juc,kuc,luc,muc,nuc,ouc,puc,quc,ruc,suc,tuc,uuc,vuc,wuc,xuc,yuc,zuc,Auc,Buc,Cuc,Duc,Euc,Fuc,Guc,Huc,Iuc,Juc,Kuc,Luc,Muc,Nuc,Ouc,Puc,Quc,Ruc,Suc,Tuc,Uuc,Vuc,Wuc,Xuc,Yuc,Zuc,$uc,_uc,avc,bvc,cvc,dvc,evc,fvc,gvc,hvc,ivc,jvc,kvc,lvc,mvc,nvc,ovc,pvc,qvc,rvc,svc,tvc,uvc,vvc,wvc,xvc,yvc,zvc,Avc,Bvc,Cvc,Dvc,Evc,Fvc,Gvc,Hvc,Ivc,Jvc,Kvc,Lvc,Mvc,Nvc,Ovc,Pvc,Qvc,Rvc,Svc,Tvc,Uvc,Vvc,Wvc,Xvc,Yvc,Zvc,$vc,_vc,awc,bwc,cwc,dwc,ewc,fwc,gwc,hwc,iwc;var UW=mdb(Sne,'LayeredMetaDataProvider',848);bcb(986,1,ale,Pyc);_.Qe=function Qyc(a){Oyc(a)};var mwc,nwc,owc,pwc,qwc,rwc,swc,twc,uwc,vwc,wwc,xwc,ywc,zwc,Awc,Bwc,Cwc,Dwc,Ewc,Fwc,Gwc,Hwc,Iwc,Jwc,Kwc,Lwc,Mwc,Nwc,Owc,Pwc,Qwc,Rwc,Swc,Twc,Uwc,Vwc,Wwc,Xwc,Ywc,Zwc,$wc,_wc,axc,bxc,cxc,dxc,exc,fxc,gxc,hxc,ixc,jxc,kxc,lxc,mxc,nxc,oxc,pxc,qxc,rxc,sxc,txc,uxc,vxc,wxc,xxc,yxc,zxc,Axc,Bxc,Cxc,Dxc,Exc,Fxc,Gxc,Hxc,Ixc,Jxc,Kxc,Lxc,Mxc,Nxc,Oxc,Pxc,Qxc,Rxc,Sxc,Txc,Uxc,Vxc,Wxc,Xxc,Yxc,Zxc,$xc,_xc,ayc,byc,cyc,dyc,eyc,fyc,gyc,hyc,iyc,jyc,kyc,lyc,myc,nyc,oyc,pyc,qyc,ryc,syc,tyc,uyc,vyc,wyc,xyc,yyc,zyc,Ayc,Byc,Cyc,Dyc,Eyc,Fyc,Gyc,Hyc,Iyc,Jyc,Kyc,Lyc,Myc;var WW=mdb(Sne,'LayeredOptions',986);bcb(987,1,{},Ryc);_.$e=function Syc(){var a;return a=new jUb,a};_._e=function Tyc(a){};var VW=mdb(Sne,'LayeredOptions/LayeredFactory',987);bcb(1372,1,{});_.a=0;var Uyc;var $1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder',1372);bcb(779,1372,{},ezc);var bzc,czc;var XW=mdb(Sne,'LayeredSpacings/LayeredSpacingsBuilder',779);bcb(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},nzc);_.Kf=function pzc(){return mzc(this)};_.Xf=function ozc(){return mzc(this)};var fzc,gzc,hzc,izc,jzc,kzc;var YW=ndb(Sne,'LayeringStrategy',313,CI,rzc,qzc);var szc;bcb(378,22,{3:1,35:1,22:1,378:1},zzc);var uzc,vzc,wzc;var ZW=ndb(Sne,'LongEdgeOrderingStrategy',378,CI,Bzc,Azc);var Czc;bcb(197,22,{3:1,35:1,22:1,197:1},Kzc);var Ezc,Fzc,Gzc,Hzc;var $W=ndb(Sne,'NodeFlexibility',197,CI,Nzc,Mzc);var Ozc;bcb(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},Xzc);_.Kf=function Zzc(){return Wzc(this)};_.Xf=function Yzc(){return Wzc(this)};var Qzc,Rzc,Szc,Tzc,Uzc;var _W=ndb(Sne,'NodePlacementStrategy',315,CI,_zc,$zc);var aAc;bcb(260,22,{3:1,35:1,22:1,260:1},lAc);var cAc,dAc,eAc,fAc,gAc,hAc,iAc,jAc;var aX=ndb(Sne,'NodePromotionStrategy',260,CI,nAc,mAc);var oAc;bcb(339,22,{3:1,35:1,22:1,339:1},uAc);var qAc,rAc,sAc;var bX=ndb(Sne,'OrderingStrategy',339,CI,wAc,vAc);var xAc;bcb(421,22,{3:1,35:1,22:1,421:1},CAc);var zAc,AAc;var cX=ndb(Sne,'PortSortingStrategy',421,CI,EAc,DAc);var FAc;bcb(452,22,{3:1,35:1,22:1,452:1},LAc);var HAc,IAc,JAc;var dX=ndb(Sne,'PortType',452,CI,NAc,MAc);var OAc;bcb(375,22,{3:1,35:1,22:1,375:1},UAc);var QAc,RAc,SAc;var eX=ndb(Sne,'SelfLoopDistributionStrategy',375,CI,WAc,VAc);var XAc;bcb(376,22,{3:1,35:1,22:1,376:1},aBc);var ZAc,$Ac;var fX=ndb(Sne,'SelfLoopOrderingStrategy',376,CI,cBc,bBc);var dBc;bcb(304,1,{304:1},oBc);var gX=mdb(Sne,'Spacings',304);bcb(336,22,{3:1,35:1,22:1,336:1},uBc);var qBc,rBc,sBc;var hX=ndb(Sne,'SplineRoutingMode',336,CI,wBc,vBc);var xBc;bcb(338,22,{3:1,35:1,22:1,338:1},DBc);var zBc,ABc,BBc;var iX=ndb(Sne,'ValidifyStrategy',338,CI,FBc,EBc);var GBc;bcb(377,22,{3:1,35:1,22:1,377:1},MBc);var IBc,JBc,KBc;var jX=ndb(Sne,'WrappingStrategy',377,CI,OBc,NBc);var PBc;bcb(1383,1,Bqe,VBc);_.Yf=function WBc(a){return BD(a,37),RBc};_.pf=function XBc(a,b){UBc(this,BD(a,37),b)};var RBc;var kX=mdb(Cqe,'DepthFirstCycleBreaker',1383);bcb(782,1,Bqe,aCc);_.Yf=function cCc(a){return BD(a,37),YBc};_.pf=function dCc(a,b){$Bc(this,BD(a,37),b)};_.Zf=function bCc(a){return BD(Ikb(a,Bub(this.d,a.c.length)),10)};var YBc;var lX=mdb(Cqe,'GreedyCycleBreaker',782);bcb(1386,782,Bqe,eCc);_.Zf=function fCc(a){var b,c,d,e;e=null;b=Ohe;for(d=new olb(a);d.a<d.c.c.length;){c=BD(mlb(d),10);if(wNb(c,(wtc(),Zsc))&&BD(vNb(c,Zsc),19).a<b){b=BD(vNb(c,Zsc),19).a;e=c}}if(!e){return BD(Ikb(a,Bub(this.d,a.c.length)),10)}return e};var mX=mdb(Cqe,'GreedyModelOrderCycleBreaker',1386);bcb(1384,1,Bqe,kCc);_.Yf=function lCc(a){return BD(a,37),gCc};_.pf=function mCc(a,b){jCc(this,BD(a,37),b)};var gCc;var nX=mdb(Cqe,'InteractiveCycleBreaker',1384);bcb(1385,1,Bqe,rCc);_.Yf=function sCc(a){return BD(a,37),nCc};_.pf=function tCc(a,b){qCc(this,BD(a,37),b)};_.a=0;_.b=0;var nCc;var oX=mdb(Cqe,'ModelOrderCycleBreaker',1385);bcb(1389,1,Bqe,DCc);_.Yf=function ECc(a){return BD(a,37),uCc};_.pf=function FCc(a,b){BCc(this,BD(a,37),b)};var uCc;var rX=mdb(Dqe,'CoffmanGrahamLayerer',1389);bcb(1390,1,Dke,GCc);_.ue=function HCc(a,b){return xCc(this.a,BD(a,10),BD(b,10))};_.Fb=function ICc(a){return this===a};_.ve=function JCc(){return new tpb(this)};var pX=mdb(Dqe,'CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type',1390);bcb(1391,1,Dke,KCc);_.ue=function LCc(a,b){return ACc(this.a,BD(a,10),BD(b,10))};_.Fb=function MCc(a){return this===a};_.ve=function NCc(){return new tpb(this)};var qX=mdb(Dqe,'CoffmanGrahamLayerer/lambda$1$Type',1391);bcb(1392,1,Bqe,QCc);_.Yf=function RCc(a){return BD(a,37),e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),n8b)),mUb,w8b),nUb,v8b)};_.pf=function SCc(a,b){PCc(this,BD(a,37),b)};var tX=mdb(Dqe,'InteractiveLayerer',1392);bcb(569,1,{569:1},TCc);_.a=0;_.c=0;var sX=mdb(Dqe,'InteractiveLayerer/LayerSpan',569);bcb(1388,1,Bqe,ZCc);_.Yf=function $Cc(a){return BD(a,37),UCc};_.pf=function _Cc(a,b){WCc(this,BD(a,37),b)};var UCc;var uX=mdb(Dqe,'LongestPathLayerer',1388);bcb(1395,1,Bqe,iDc);_.Yf=function jDc(a){return BD(a,37),e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),Z7b)),mUb,w8b),nUb,v8b)};_.pf=function kDc(a,b){gDc(this,BD(a,37),b)};_.a=0;_.b=0;_.d=0;var aDc,bDc;var wX=mdb(Dqe,'MinWidthLayerer',1395);bcb(1396,1,Dke,mDc);_.ue=function nDc(a,b){return lDc(this,BD(a,10),BD(b,10))};_.Fb=function oDc(a){return this===a};_.ve=function pDc(){return new tpb(this)};var vX=mdb(Dqe,'MinWidthLayerer/MinOutgoingEdgesComparator',1396);bcb(1387,1,Bqe,xDc);_.Yf=function yDc(a){return BD(a,37),qDc};_.pf=function zDc(a,b){wDc(this,BD(a,37),b)};var qDc;var xX=mdb(Dqe,'NetworkSimplexLayerer',1387);bcb(1393,1,Bqe,LDc);_.Yf=function MDc(a){return BD(a,37),e3c(e3c(e3c(new j3c,(qUb(),lUb),(S8b(),Z7b)),mUb,w8b),nUb,v8b)};_.pf=function NDc(a,b){IDc(this,BD(a,37),b)};_.d=0;_.f=0;_.g=0;_.i=0;_.s=0;_.t=0;_.u=0;var zX=mdb(Dqe,'StretchWidthLayerer',1393);bcb(1394,1,Dke,PDc);_.ue=function QDc(a,b){return ODc(BD(a,10),BD(b,10))};_.Fb=function RDc(a){return this===a};_.ve=function SDc(){return new tpb(this)};var yX=mdb(Dqe,'StretchWidthLayerer/1',1394);bcb(402,1,Eqe);_.Nf=function fEc(a,b,c,d,e,f){};_._f=function dEc(a,b,c){return YDc(this,a,b,c)};_.Mf=function eEc(){this.g=KC(VD,Fqe,25,this.d,15,1);this.f=KC(VD,Fqe,25,this.d,15,1)};_.Of=function gEc(a,b){this.e[a]=KC(WD,oje,25,b[a].length,15,1)};_.Pf=function hEc(a,b,c){var d;d=c[a][b];d.p=b;this.e[a][b]=b};_.Qf=function iEc(a,b,c,d){BD(Ikb(d[a][b].j,c),11).p=this.d++};_.b=0;_.c=0;_.d=0;var BX=mdb(Gqe,'AbstractBarycenterPortDistributor',402);bcb(1633,1,Dke,jEc);_.ue=function kEc(a,b){return _Dc(this.a,BD(a,11),BD(b,11))};_.Fb=function lEc(a){return this===a};_.ve=function mEc(){return new tpb(this)};var AX=mdb(Gqe,'AbstractBarycenterPortDistributor/lambda$0$Type',1633);bcb(817,1,Mne,uEc);_.Nf=function xEc(a,b,c,d,e,f){};_.Pf=function zEc(a,b,c){};_.Qf=function AEc(a,b,c,d){};_.Lf=function vEc(){return false};_.Mf=function wEc(){this.c=this.e.a;this.g=this.f.g};_.Of=function yEc(a,b){b[a][0].c.p=a};_.Rf=function BEc(){return false};_.ag=function CEc(a,b,c,d){if(c){rEc(this,a)}else{oEc(this,a,d);pEc(this,a,b)}if(a.c.length>1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,BD(this,660)):(mmb(),Okb(a,this.d));PEc(this.e,a)}};_.Sf=function DEc(a,b,c,d){var e,f,g,h,i,j,k;if(b!=sEc(c,a.length)){f=a[b-(c?1:-1)];UDc(this.f,f,c?(KAc(),IAc):(KAc(),HAc))}e=a[b][0];k=!d||e.k==(j0b(),e0b);j=Ou(a[b]);this.ag(j,k,false,c);g=0;for(i=new olb(j);i.a<i.c.c.length;){h=BD(mlb(i),10);a[b][g++]=h}return false};_.Tf=function EEc(a,b){var c,d,e,f,g;g=sEc(b,a.length);f=Ou(a[g]);this.ag(f,false,true,b);c=0;for(e=new olb(f);e.a<e.c.c.length;){d=BD(mlb(e),10);a[g][c++]=d}return false};var EX=mdb(Gqe,'BarycenterHeuristic',817);bcb(658,1,{658:1},FEc);_.Ib=function GEc(){return 'BarycenterState [node='+this.c+', summedWeight='+this.d+', degree='+this.b+', barycenter='+this.a+', visited='+this.e+']'};_.b=0;_.d=0;_.e=false;var CX=mdb(Gqe,'BarycenterHeuristic/BarycenterState',658);bcb(1802,1,Dke,HEc);_.ue=function IEc(a,b){return qEc(this.a,BD(a,10),BD(b,10))};_.Fb=function JEc(a){return this===a};_.ve=function KEc(){return new tpb(this)};var DX=mdb(Gqe,'BarycenterHeuristic/lambda$0$Type',1802);bcb(816,1,Mne,SEc);_.Mf=function TEc(){};_.Nf=function UEc(a,b,c,d,e,f){};_.Qf=function XEc(a,b,c,d){};_.Of=function VEc(a,b){this.a[a]=KC(CX,{3:1,4:1,5:1,2018:1},658,b[a].length,0,1);this.b[a]=KC(FX,{3:1,4:1,5:1,2019:1},233,b[a].length,0,1)};_.Pf=function WEc(a,b,c){OEc(this,c[a][b],true)};_.c=false;var HX=mdb(Gqe,'ForsterConstraintResolver',816);bcb(233,1,{233:1},$Ec,_Ec);_.Ib=function aFc(){var a,b;b=new Ufb;b.a+='[';for(a=0;a<this.d.length;a++){Qfb(b,a0b(this.d[a]));REc(this.g,this.d[0]).a!=null&&Qfb(Qfb((b.a+='<',b),Jdb(REc(this.g,this.d[0]).a)),'>');a<this.d.length-1&&(b.a+=She,b)}return (b.a+=']',b).a};_.a=0;_.c=0;_.f=0;var FX=mdb(Gqe,'ForsterConstraintResolver/ConstraintGroup',233);bcb(1797,1,qie,bFc);_.td=function cFc(a){OEc(this.a,BD(a,10),false)};var GX=mdb(Gqe,'ForsterConstraintResolver/lambda$0$Type',1797);bcb(214,1,{214:1,225:1},fFc);_.Nf=function hFc(a,b,c,d,e,f){};_.Of=function iFc(a,b){};_.Mf=function gFc(){this.r=KC(WD,oje,25,this.n,15,1)};_.Pf=function jFc(a,b,c){var d,e;e=c[a][b];d=e.e;!!d&&Ekb(this.b,d)};_.Qf=function kFc(a,b,c,d){++this.n};_.Ib=function lFc(){return wlb(this.e,new Tqb)};_.g=false;_.i=false;_.n=0;_.s=false;var IX=mdb(Gqe,'GraphInfoHolder',214);bcb(1832,1,Mne,pFc);_.Nf=function sFc(a,b,c,d,e,f){};_.Of=function tFc(a,b){};_.Qf=function vFc(a,b,c,d){};_._f=function qFc(a,b,c){c&&b>0?(RHc(this.a,a[b-1],a[b]),undefined):!c&&b<a.length-1?(RHc(this.a,a[b],a[b+1]),undefined):THc(this.a,a[b],c?(Ucd(),Tcd):(Ucd(),zcd));return mFc(this,a,b,c)};_.Mf=function rFc(){this.d=KC(WD,oje,25,this.c,15,1);this.a=new dIc(this.d)};_.Pf=function uFc(a,b,c){var d;d=c[a][b];this.c+=d.j.c.length};_.c=0;var JX=mdb(Gqe,'GreedyPortDistributor',1832);bcb(1401,1,Bqe,CFc);_.Yf=function DFc(a){return zFc(BD(a,37))};_.pf=function EFc(a,b){BFc(BD(a,37),b)};var xFc;var LX=mdb(Gqe,'InteractiveCrossingMinimizer',1401);bcb(1402,1,Dke,GFc);_.ue=function HFc(a,b){return FFc(this,BD(a,10),BD(b,10))};_.Fb=function IFc(a){return this===a};_.ve=function JFc(){return new tpb(this)};var KX=mdb(Gqe,'InteractiveCrossingMinimizer/1',1402);bcb(507,1,{507:1,123:1,51:1},fGc);_.Yf=function gGc(a){var b;return BD(a,37),b=k3c(KFc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hGc(a,b){YFc(this,BD(a,37),b)};_.e=0;var KFc;var RX=mdb(Gqe,'LayerSweepCrossingMinimizer',507);bcb(1398,1,qie,iGc);_.td=function jGc(a){MFc(this.a,BD(a,214))};var MX=mdb(Gqe,'LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type',1398);bcb(1399,1,qie,kGc);_.td=function lGc(a){VFc(this.a,BD(a,214))};var NX=mdb(Gqe,'LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type',1399);bcb(1400,1,qie,mGc);_.td=function nGc(a){XFc(this.a,BD(a,214))};var OX=mdb(Gqe,'LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type',1400);bcb(454,22,{3:1,35:1,22:1,454:1},sGc);var oGc,pGc,qGc;var PX=ndb(Gqe,'LayerSweepCrossingMinimizer/CrossMinType',454,CI,uGc,tGc);var vGc;bcb(1397,1,Oie,xGc);_.Mb=function yGc(a){return LFc(),BD(a,29).a.c.length==0};var QX=mdb(Gqe,'LayerSweepCrossingMinimizer/lambda$0$Type',1397);bcb(1799,1,Mne,BGc);_.Mf=function CGc(){};_.Nf=function DGc(a,b,c,d,e,f){};_.Qf=function GGc(a,b,c,d){};_.Of=function EGc(a,b){b[a][0].c.p=a;this.b[a]=KC(SX,{3:1,4:1,5:1,1944:1},659,b[a].length,0,1)};_.Pf=function FGc(a,b,c){var d;d=c[a][b];d.p=b;NC(this.b[a],b,new HGc)};var VX=mdb(Gqe,'LayerSweepTypeDecider',1799);bcb(659,1,{659:1},HGc);_.Ib=function IGc(){return 'NodeInfo [connectedEdges='+this.a+', hierarchicalInfluence='+this.b+', randomInfluence='+this.c+']'};_.a=0;_.b=0;_.c=0;var SX=mdb(Gqe,'LayerSweepTypeDecider/NodeInfo',659);bcb(1800,1,Vke,JGc);_.Lb=function KGc(a){return a1b(new b1b(BD(a,11).b))};_.Fb=function LGc(a){return this===a};_.Mb=function MGc(a){return a1b(new b1b(BD(a,11).b))};var TX=mdb(Gqe,'LayerSweepTypeDecider/lambda$0$Type',1800);bcb(1801,1,Vke,NGc);_.Lb=function OGc(a){return a1b(new b1b(BD(a,11).b))};_.Fb=function PGc(a){return this===a};_.Mb=function QGc(a){return a1b(new b1b(BD(a,11).b))};var UX=mdb(Gqe,'LayerSweepTypeDecider/lambda$1$Type',1801);bcb(1833,402,Eqe,RGc);_.$f=function SGc(a,b,c){var d,e,f,g,h,i,j,k,l;j=this.g;switch(c.g){case 1:{d=0;e=0;for(i=new olb(a.j);i.a<i.c.c.length;){g=BD(mlb(i),11);if(g.e.c.length!=0){++d;g.j==(Ucd(),Acd)&&++e}}f=b+e;l=b+d;for(h=W_b(a,(KAc(),HAc)).Kc();h.Ob();){g=BD(h.Pb(),11);if(g.j==(Ucd(),Acd)){j[g.p]=f;--f}else{j[g.p]=l;--l}}return d}case 2:{k=0;for(h=W_b(a,(KAc(),IAc)).Kc();h.Ob();){g=BD(h.Pb(),11);++k;j[g.p]=b+k}return k}default:throw vbb(new Vdb);}};var WX=mdb(Gqe,'LayerTotalPortDistributor',1833);bcb(660,817,{660:1,225:1},XGc);_.ag=function ZGc(a,b,c,d){if(c){rEc(this,a)}else{oEc(this,a,d);pEc(this,a,b)}if(a.c.length>1){Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),(Nyc(),Awc))))?YGc(a,this.d,this):(mmb(),Okb(a,this.d));Ccb(DD(vNb(Q_b((tCb(0,a.c.length),BD(a.c[0],10))),Awc)))||PEc(this.e,a)}};var YX=mdb(Gqe,'ModelOrderBarycenterHeuristic',660);bcb(1803,1,Dke,$Gc);_.ue=function _Gc(a,b){return VGc(this.a,BD(a,10),BD(b,10))};_.Fb=function aHc(a){return this===a};_.ve=function bHc(){return new tpb(this)};var XX=mdb(Gqe,'ModelOrderBarycenterHeuristic/lambda$0$Type',1803);bcb(1403,1,Bqe,fHc);_.Yf=function gHc(a){var b;return BD(a,37),b=k3c(cHc),e3c(b,(qUb(),nUb),(S8b(),H8b)),b};_.pf=function hHc(a,b){eHc((BD(a,37),b))};var cHc;var ZX=mdb(Gqe,'NoCrossingMinimizer',1403);bcb(796,402,Eqe,iHc);_.$f=function jHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;l=this.g;switch(c.g){case 1:{e=0;f=0;for(k=new olb(a.j);k.a<k.c.c.length;){i=BD(mlb(k),11);if(i.e.c.length!=0){++e;i.j==(Ucd(),Acd)&&++f}}d=1/(e+1);g=b+f*d;n=b+1-d;for(j=W_b(a,(KAc(),HAc)).Kc();j.Ob();){i=BD(j.Pb(),11);if(i.j==(Ucd(),Acd)){l[i.p]=g;g-=d}else{l[i.p]=n;n-=d}}break}case 2:{h=0;for(k=new olb(a.j);k.a<k.c.c.length;){i=BD(mlb(k),11);i.g.c.length==0||++h}d=1/(h+1);m=b+d;for(j=W_b(a,(KAc(),IAc)).Kc();j.Ob();){i=BD(j.Pb(),11);l[i.p]=m;m+=d}break}default:throw vbb(new Wdb('Port type is undefined'));}return 1};var $X=mdb(Gqe,'NodeRelativePortDistributor',796);bcb(807,1,{},nHc,oHc);var _X=mdb(Gqe,'SweepCopy',807);bcb(1798,1,Mne,rHc);_.Of=function uHc(a,b){};_.Mf=function sHc(){var a;a=KC(WD,oje,25,this.f,15,1);this.d=new LIc(a);this.a=new dIc(a)};_.Nf=function tHc(a,b,c,d,e,f){var g;g=BD(Ikb(f[a][b].j,c),11);e.c==g&&e.c.i.c==e.d.i.c&&++this.e[a]};_.Pf=function vHc(a,b,c){var d;d=c[a][b];this.c[a]=this.c[a]|d.k==(j0b(),i0b)};_.Qf=function wHc(a,b,c,d){var e;e=BD(Ikb(d[a][b].j,c),11);e.p=this.f++;e.g.c.length+e.e.c.length>1&&(e.j==(Ucd(),zcd)?(this.b[a]=true):e.j==Tcd&&a>0&&(this.b[a-1]=true))};_.f=0;var aY=mdb(Lne,'AllCrossingsCounter',1798);bcb(587,1,{},BHc);_.b=0;_.d=0;var bY=mdb(Lne,'BinaryIndexedTree',587);bcb(524,1,{},dIc);var DHc,EHc;var lY=mdb(Lne,'CrossingsCounter',524);bcb(1906,1,Dke,hIc);_.ue=function iIc(a,b){return YHc(this.a,BD(a,11),BD(b,11))};_.Fb=function jIc(a){return this===a};_.ve=function kIc(){return new tpb(this)};var cY=mdb(Lne,'CrossingsCounter/lambda$0$Type',1906);bcb(1907,1,Dke,lIc);_.ue=function mIc(a,b){return ZHc(this.a,BD(a,11),BD(b,11))};_.Fb=function nIc(a){return this===a};_.ve=function oIc(){return new tpb(this)};var dY=mdb(Lne,'CrossingsCounter/lambda$1$Type',1907);bcb(1908,1,Dke,pIc);_.ue=function qIc(a,b){return $Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function rIc(a){return this===a};_.ve=function sIc(){return new tpb(this)};var eY=mdb(Lne,'CrossingsCounter/lambda$2$Type',1908);bcb(1909,1,Dke,tIc);_.ue=function uIc(a,b){return _Hc(this.a,BD(a,11),BD(b,11))};_.Fb=function vIc(a){return this===a};_.ve=function wIc(){return new tpb(this)};var fY=mdb(Lne,'CrossingsCounter/lambda$3$Type',1909);bcb(1910,1,qie,xIc);_.td=function yIc(a){eIc(this.a,BD(a,11))};var gY=mdb(Lne,'CrossingsCounter/lambda$4$Type',1910);bcb(1911,1,Oie,zIc);_.Mb=function AIc(a){return fIc(this.a,BD(a,11))};var hY=mdb(Lne,'CrossingsCounter/lambda$5$Type',1911);bcb(1912,1,qie,CIc);_.td=function DIc(a){BIc(this,a)};var iY=mdb(Lne,'CrossingsCounter/lambda$6$Type',1912);bcb(1913,1,qie,EIc);_.td=function FIc(a){var b;FHc();Wjb(this.b,(b=this.a,BD(a,11),b))};var jY=mdb(Lne,'CrossingsCounter/lambda$7$Type',1913);bcb(826,1,Vke,GIc);_.Lb=function HIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};_.Fb=function IIc(a){return this===a};_.Mb=function JIc(a){return FHc(),wNb(BD(a,11),(wtc(),gtc))};var kY=mdb(Lne,'CrossingsCounter/lambda$8$Type',826);bcb(1905,1,{},LIc);var pY=mdb(Lne,'HyperedgeCrossingsCounter',1905);bcb(467,1,{35:1,467:1},NIc);_.wd=function OIc(a){return MIc(this,BD(a,467))};_.b=0;_.c=0;_.e=0;_.f=0;var oY=mdb(Lne,'HyperedgeCrossingsCounter/Hyperedge',467);bcb(362,1,{35:1,362:1},QIc);_.wd=function RIc(a){return PIc(this,BD(a,362))};_.b=0;_.c=0;var nY=mdb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner',362);bcb(523,22,{3:1,35:1,22:1,523:1},VIc);var SIc,TIc;var mY=ndb(Lne,'HyperedgeCrossingsCounter/HyperedgeCorner/Type',523,CI,XIc,WIc);var YIc;bcb(1405,1,Bqe,dJc);_.Yf=function eJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?_Ic:null};_.pf=function fJc(a,b){cJc(this,BD(a,37),b)};var _Ic;var rY=mdb(Hqe,'InteractiveNodePlacer',1405);bcb(1406,1,Bqe,tJc);_.Yf=function uJc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?gJc:null};_.pf=function vJc(a,b){rJc(this,BD(a,37),b)};var gJc,hJc,iJc;var tY=mdb(Hqe,'LinearSegmentsNodePlacer',1406);bcb(257,1,{35:1,257:1},zJc);_.wd=function AJc(a){return wJc(this,BD(a,257))};_.Fb=function BJc(a){var b;if(JD(a,257)){b=BD(a,257);return this.b==b.b}return false};_.Hb=function CJc(){return this.b};_.Ib=function DJc(){return 'ls'+Fe(this.e)};_.a=0;_.b=0;_.c=-1;_.d=-1;_.g=0;var sY=mdb(Hqe,'LinearSegmentsNodePlacer/LinearSegment',257);bcb(1408,1,Bqe,$Jc);_.Yf=function _Jc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?EJc:null};_.pf=function hKc(a,b){WJc(this,BD(a,37),b)};_.b=0;_.g=0;var EJc;var dZ=mdb(Hqe,'NetworkSimplexPlacer',1408);bcb(1427,1,Dke,iKc);_.ue=function jKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function kKc(a){return this===a};_.ve=function lKc(){return new tpb(this)};var uY=mdb(Hqe,'NetworkSimplexPlacer/0methodref$compare$Type',1427);bcb(1429,1,Dke,mKc);_.ue=function nKc(a,b){return beb(BD(a,19).a,BD(b,19).a)};_.Fb=function oKc(a){return this===a};_.ve=function pKc(){return new tpb(this)};var vY=mdb(Hqe,'NetworkSimplexPlacer/1methodref$compare$Type',1429);bcb(649,1,{649:1},qKc);var wY=mdb(Hqe,'NetworkSimplexPlacer/EdgeRep',649);bcb(401,1,{401:1},rKc);_.b=false;var xY=mdb(Hqe,'NetworkSimplexPlacer/NodeRep',401);bcb(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},vKc);var CY=mdb(Hqe,'NetworkSimplexPlacer/Path',508);bcb(1409,1,{},wKc);_.Kb=function xKc(a){return BD(a,17).d.i.k};var yY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$0$Type',1409);bcb(1410,1,Oie,yKc);_.Mb=function zKc(a){return BD(a,267)==(j0b(),g0b)};var zY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$1$Type',1410);bcb(1411,1,{},AKc);_.Kb=function BKc(a){return BD(a,17).d.i};var AY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$2$Type',1411);bcb(1412,1,Oie,CKc);_.Mb=function DKc(a){return eLc(Lzc(BD(a,10)))};var BY=mdb(Hqe,'NetworkSimplexPlacer/Path/lambda$3$Type',1412);bcb(1413,1,Oie,EKc);_.Mb=function FKc(a){return dKc(BD(a,11))};var DY=mdb(Hqe,'NetworkSimplexPlacer/lambda$0$Type',1413);bcb(1414,1,qie,GKc);_.td=function HKc(a){LJc(this.a,this.b,BD(a,11))};var EY=mdb(Hqe,'NetworkSimplexPlacer/lambda$1$Type',1414);bcb(1423,1,qie,IKc);_.td=function JKc(a){MJc(this.a,BD(a,17))};var FY=mdb(Hqe,'NetworkSimplexPlacer/lambda$10$Type',1423);bcb(1424,1,{},KKc);_.Kb=function LKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var GY=mdb(Hqe,'NetworkSimplexPlacer/lambda$11$Type',1424);bcb(1425,1,qie,MKc);_.td=function NKc(a){NJc(this.a,BD(a,10))};var HY=mdb(Hqe,'NetworkSimplexPlacer/lambda$12$Type',1425);bcb(1426,1,{},OKc);_.Kb=function PKc(a){return FJc(),meb(BD(a,121).e)};var IY=mdb(Hqe,'NetworkSimplexPlacer/lambda$13$Type',1426);bcb(1428,1,{},QKc);_.Kb=function RKc(a){return FJc(),meb(BD(a,121).e)};var JY=mdb(Hqe,'NetworkSimplexPlacer/lambda$15$Type',1428);bcb(1430,1,Oie,SKc);_.Mb=function TKc(a){return FJc(),BD(a,401).c.k==(j0b(),h0b)};var KY=mdb(Hqe,'NetworkSimplexPlacer/lambda$17$Type',1430);bcb(1431,1,Oie,UKc);_.Mb=function VKc(a){return FJc(),BD(a,401).c.j.c.length>1};var LY=mdb(Hqe,'NetworkSimplexPlacer/lambda$18$Type',1431);bcb(1432,1,qie,WKc);_.td=function XKc(a){eKc(this.c,this.b,this.d,this.a,BD(a,401))};_.c=0;_.d=0;var MY=mdb(Hqe,'NetworkSimplexPlacer/lambda$19$Type',1432);bcb(1415,1,{},YKc);_.Kb=function ZKc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var NY=mdb(Hqe,'NetworkSimplexPlacer/lambda$2$Type',1415);bcb(1433,1,qie,$Kc);_.td=function _Kc(a){fKc(this.a,BD(a,11))};_.a=0;var OY=mdb(Hqe,'NetworkSimplexPlacer/lambda$20$Type',1433);bcb(1434,1,{},aLc);_.Kb=function bLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var PY=mdb(Hqe,'NetworkSimplexPlacer/lambda$21$Type',1434);bcb(1435,1,qie,cLc);_.td=function dLc(a){OJc(this.a,BD(a,10))};var QY=mdb(Hqe,'NetworkSimplexPlacer/lambda$22$Type',1435);bcb(1436,1,Oie,fLc);_.Mb=function gLc(a){return eLc(a)};var RY=mdb(Hqe,'NetworkSimplexPlacer/lambda$23$Type',1436);bcb(1437,1,{},hLc);_.Kb=function iLc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var SY=mdb(Hqe,'NetworkSimplexPlacer/lambda$24$Type',1437);bcb(1438,1,Oie,jLc);_.Mb=function kLc(a){return PJc(this.a,BD(a,10))};var TY=mdb(Hqe,'NetworkSimplexPlacer/lambda$25$Type',1438);bcb(1439,1,qie,lLc);_.td=function mLc(a){QJc(this.a,this.b,BD(a,10))};var UY=mdb(Hqe,'NetworkSimplexPlacer/lambda$26$Type',1439);bcb(1440,1,Oie,nLc);_.Mb=function oLc(a){return FJc(),!OZb(BD(a,17))};var VY=mdb(Hqe,'NetworkSimplexPlacer/lambda$27$Type',1440);bcb(1441,1,Oie,pLc);_.Mb=function qLc(a){return FJc(),!OZb(BD(a,17))};var WY=mdb(Hqe,'NetworkSimplexPlacer/lambda$28$Type',1441);bcb(1442,1,{},rLc);_.Ce=function sLc(a,b){return RJc(this.a,BD(a,29),BD(b,29))};var XY=mdb(Hqe,'NetworkSimplexPlacer/lambda$29$Type',1442);bcb(1416,1,{},tLc);_.Kb=function uLc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(U_b(BD(a,10)).a.Kc(),new Sq))))};var YY=mdb(Hqe,'NetworkSimplexPlacer/lambda$3$Type',1416);bcb(1417,1,Oie,vLc);_.Mb=function wLc(a){return FJc(),cKc(BD(a,17))};var ZY=mdb(Hqe,'NetworkSimplexPlacer/lambda$4$Type',1417);bcb(1418,1,qie,xLc);_.td=function yLc(a){XJc(this.a,BD(a,17))};var $Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$5$Type',1418);bcb(1419,1,{},zLc);_.Kb=function ALc(a){return FJc(),new YAb(null,new Kub(BD(a,29).a,16))};var _Y=mdb(Hqe,'NetworkSimplexPlacer/lambda$6$Type',1419);bcb(1420,1,Oie,BLc);_.Mb=function CLc(a){return FJc(),BD(a,10).k==(j0b(),h0b)};var aZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$7$Type',1420);bcb(1421,1,{},DLc);_.Kb=function ELc(a){return FJc(),new YAb(null,new Lub(new Sr(ur(O_b(BD(a,10)).a.Kc(),new Sq))))};var bZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$8$Type',1421);bcb(1422,1,Oie,FLc);_.Mb=function GLc(a){return FJc(),NZb(BD(a,17))};var cZ=mdb(Hqe,'NetworkSimplexPlacer/lambda$9$Type',1422);bcb(1404,1,Bqe,KLc);_.Yf=function LLc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?HLc:null};_.pf=function MLc(a,b){JLc(BD(a,37),b)};var HLc;var eZ=mdb(Hqe,'SimpleNodePlacer',1404);bcb(180,1,{180:1},ULc);_.Ib=function VLc(){var a;a='';this.c==(YLc(),XLc)?(a+=kle):this.c==WLc&&(a+=jle);this.o==(eMc(),cMc)?(a+=vle):this.o==dMc?(a+='UP'):(a+='BALANCED');return a};var hZ=mdb(Kqe,'BKAlignedLayout',180);bcb(516,22,{3:1,35:1,22:1,516:1},ZLc);var WLc,XLc;var fZ=ndb(Kqe,'BKAlignedLayout/HDirection',516,CI,_Lc,$Lc);var aMc;bcb(515,22,{3:1,35:1,22:1,515:1},fMc);var cMc,dMc;var gZ=ndb(Kqe,'BKAlignedLayout/VDirection',515,CI,hMc,gMc);var iMc;bcb(1634,1,{},mMc);var iZ=mdb(Kqe,'BKAligner',1634);bcb(1637,1,{},rMc);var lZ=mdb(Kqe,'BKCompactor',1637);bcb(654,1,{654:1},sMc);_.a=0;var jZ=mdb(Kqe,'BKCompactor/ClassEdge',654);bcb(458,1,{458:1},uMc);_.a=null;_.b=0;var kZ=mdb(Kqe,'BKCompactor/ClassNode',458);bcb(1407,1,Bqe,CMc);_.Yf=function GMc(a){return BD(vNb(BD(a,37),(wtc(),Ksc)),21).Hc((Orc(),Hrc))?vMc:null};_.pf=function HMc(a,b){BMc(this,BD(a,37),b)};_.d=false;var vMc;var mZ=mdb(Kqe,'BKNodePlacer',1407);bcb(1635,1,{},JMc);_.d=0;var oZ=mdb(Kqe,'NeighborhoodInformation',1635);bcb(1636,1,Dke,OMc);_.ue=function PMc(a,b){return NMc(this,BD(a,46),BD(b,46))};_.Fb=function QMc(a){return this===a};_.ve=function RMc(){return new tpb(this)};var nZ=mdb(Kqe,'NeighborhoodInformation/NeighborComparator',1636);bcb(808,1,{});var sZ=mdb(Kqe,'ThresholdStrategy',808);bcb(1763,808,{},WMc);_.bg=function XMc(a,b,c){return this.a.o==(eMc(),dMc)?Pje:Qje};_.cg=function YMc(){};var pZ=mdb(Kqe,'ThresholdStrategy/NullThresholdStrategy',1763);bcb(579,1,{579:1},ZMc);_.c=false;_.d=false;var qZ=mdb(Kqe,'ThresholdStrategy/Postprocessable',579);bcb(1764,808,{},bNc);_.bg=function cNc(a,b,c){var d,e,f;e=b==c;d=this.a.a[c.p]==b;if(!(e||d)){return a}f=a;if(this.a.c==(YLc(),XLc)){e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}else{e&&(f=$Mc(this,b,true));!isNaN(f)&&!isFinite(f)&&d&&(f=$Mc(this,c,false))}return f};_.cg=function dNc(){var a,b,c,d,e;while(this.d.b!=0){e=BD(Ksb(this.d),579);d=_Mc(this,e);if(!d.a){continue}a=d.a;c=Ccb(this.a.f[this.a.g[e.b.p].p]);if(!c&&!OZb(a)&&a.c.i.c==a.d.i.c){continue}b=aNc(this,e);b||swb(this.e,e)}while(this.e.a.c.length!=0){aNc(this,BD(rwb(this.e),579))}};var rZ=mdb(Kqe,'ThresholdStrategy/SimpleThresholdStrategy',1764);bcb(635,1,{635:1,246:1,234:1},hNc);_.Kf=function jNc(){return gNc(this)};_.Xf=function iNc(){return gNc(this)};var eNc;var tZ=mdb(Lqe,'EdgeRouterFactory',635);bcb(1458,1,Bqe,wNc);_.Yf=function xNc(a){return uNc(BD(a,37))};_.pf=function yNc(a,b){vNc(BD(a,37),b)};var lNc,mNc,nNc,oNc,pNc,qNc,rNc,sNc;var uZ=mdb(Lqe,'OrthogonalEdgeRouter',1458);bcb(1451,1,Bqe,NNc);_.Yf=function ONc(a){return INc(BD(a,37))};_.pf=function PNc(a,b){KNc(this,BD(a,37),b)};var zNc,ANc,BNc,CNc,DNc,ENc;var wZ=mdb(Lqe,'PolylineEdgeRouter',1451);bcb(1452,1,Vke,RNc);_.Lb=function SNc(a){return QNc(BD(a,10))};_.Fb=function TNc(a){return this===a};_.Mb=function UNc(a){return QNc(BD(a,10))};var vZ=mdb(Lqe,'PolylineEdgeRouter/1',1452);bcb(1809,1,Oie,ZNc);_.Mb=function $Nc(a){return BD(a,129).c==(HOc(),FOc)};var xZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$0$Type',1809);bcb(1810,1,{},_Nc);_.Ge=function aOc(a){return BD(a,129).d};var yZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$1$Type',1810);bcb(1811,1,Oie,bOc);_.Mb=function cOc(a){return BD(a,129).c==(HOc(),FOc)};var zZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$2$Type',1811);bcb(1812,1,{},dOc);_.Ge=function eOc(a){return BD(a,129).d};var AZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$3$Type',1812);bcb(1813,1,{},fOc);_.Ge=function gOc(a){return BD(a,129).d};var BZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$4$Type',1813);bcb(1814,1,{},hOc);_.Ge=function iOc(a){return BD(a,129).d};var CZ=mdb(Mqe,'HyperEdgeCycleDetector/lambda$5$Type',1814);bcb(112,1,{35:1,112:1},uOc);_.wd=function vOc(a){return kOc(this,BD(a,112))};_.Fb=function wOc(a){var b;if(JD(a,112)){b=BD(a,112);return this.g==b.g}return false};_.Hb=function xOc(){return this.g};_.Ib=function zOc(){var a,b,c,d;a=new Wfb('{');d=new olb(this.n);while(d.a<d.c.c.length){c=BD(mlb(d),11);b=P_b(c.i);b==null&&(b='n'+S_b(c.i));a.a+=''+b;d.a<d.c.c.length&&(a.a+=',',a)}a.a+='}';return a.a};_.a=0;_.b=0;_.c=NaN;_.d=0;_.g=0;_.i=0;_.o=0;_.s=NaN;var NZ=mdb(Mqe,'HyperEdgeSegment',112);bcb(129,1,{129:1},DOc);_.Ib=function EOc(){return this.a+'->'+this.b+' ('+Yr(this.c)+')'};_.d=0;var EZ=mdb(Mqe,'HyperEdgeSegmentDependency',129);bcb(520,22,{3:1,35:1,22:1,520:1},IOc);var FOc,GOc;var DZ=ndb(Mqe,'HyperEdgeSegmentDependency/DependencyType',520,CI,KOc,JOc);var LOc;bcb(1815,1,{},ZOc);var MZ=mdb(Mqe,'HyperEdgeSegmentSplitter',1815);bcb(1816,1,{},aPc);_.a=0;_.b=0;var FZ=mdb(Mqe,'HyperEdgeSegmentSplitter/AreaRating',1816);bcb(329,1,{329:1},bPc);_.a=0;_.b=0;_.c=0;var GZ=mdb(Mqe,'HyperEdgeSegmentSplitter/FreeArea',329);bcb(1817,1,Dke,cPc);_.ue=function dPc(a,b){return _Oc(BD(a,112),BD(b,112))};_.Fb=function ePc(a){return this===a};_.ve=function fPc(){return new tpb(this)};var HZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$0$Type',1817);bcb(1818,1,qie,gPc);_.td=function hPc(a){TOc(this.a,this.d,this.c,this.b,BD(a,112))};_.b=0;var IZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$1$Type',1818);bcb(1819,1,{},iPc);_.Kb=function jPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var JZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$2$Type',1819);bcb(1820,1,{},kPc);_.Kb=function lPc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var KZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$3$Type',1820);bcb(1821,1,{},mPc);_.Fe=function nPc(a){return Edb(ED(a))};var LZ=mdb(Mqe,'HyperEdgeSegmentSplitter/lambda$4$Type',1821);bcb(655,1,{},tPc);_.a=0;_.b=0;_.c=0;var QZ=mdb(Mqe,'OrthogonalRoutingGenerator',655);bcb(1638,1,{},xPc);_.Kb=function yPc(a){return new YAb(null,new Kub(BD(a,112).e,16))};var OZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$0$Type',1638);bcb(1639,1,{},zPc);_.Kb=function APc(a){return new YAb(null,new Kub(BD(a,112).j,16))};var PZ=mdb(Mqe,'OrthogonalRoutingGenerator/lambda$1$Type',1639);bcb(661,1,{});var RZ=mdb(Nqe,'BaseRoutingDirectionStrategy',661);bcb(1807,661,{},EPc);_.dg=function FPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.a<j.c.c.length;){i=BD(mlb(j),11);l=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;for(h=new olb(i.g);h.a<h.c.c.length;){g=BD(mlb(h),17);if(!OZb(g)){o=g.d;p=l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])).a;if($wnd.Math.abs(l-p)>qme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b+m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function GPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function HPc(){return Ucd(),Rcd};_.gg=function IPc(){return Ucd(),Acd};var SZ=mdb(Nqe,'NorthToSouthRoutingStrategy',1807);bcb(1808,661,{},JPc);_.dg=function KPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b-a.o*c;for(j=new olb(a.n);j.a<j.c.c.length;){i=BD(mlb(j),11);l=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).a;for(h=new olb(i.g);h.a<h.c.c.length;){g=BD(mlb(h),17);if(!OZb(g)){o=g.d;p=l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])).a;if($wnd.Math.abs(l-p)>qme){f=k;e=a;d=new f7c(l,f);Dsb(g.a,d);BPc(this,g,e,d,false);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false);f=b-m.o*c;e=m;d=new f7c(n,f);Dsb(g.a,d);BPc(this,g,e,d,false)}d=new f7c(p,f);Dsb(g.a,d);BPc(this,g,e,d,false)}}}}};_.eg=function LPc(a){return a.i.n.a+a.n.a+a.a.a};_.fg=function MPc(){return Ucd(),Acd};_.gg=function NPc(){return Ucd(),Rcd};var TZ=mdb(Nqe,'SouthToNorthRoutingStrategy',1808);bcb(1806,661,{},OPc);_.dg=function PPc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p;if(!!a.r&&!a.q){return}k=b+a.o*c;for(j=new olb(a.n);j.a<j.c.c.length;){i=BD(mlb(j),11);l=l7c(OC(GC(m1,1),nie,8,0,[i.i.n,i.n,i.a])).b;for(h=new olb(i.g);h.a<h.c.c.length;){g=BD(mlb(h),17);if(!OZb(g)){o=g.d;p=l7c(OC(GC(m1,1),nie,8,0,[o.i.n,o.n,o.a])).b;if($wnd.Math.abs(l-p)>qme){f=k;e=a;d=new f7c(f,l);Dsb(g.a,d);BPc(this,g,e,d,true);m=a.r;if(m){n=Edb(ED(Ut(m.e,0)));d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true);f=b+m.o*c;e=m;d=new f7c(f,n);Dsb(g.a,d);BPc(this,g,e,d,true)}d=new f7c(f,p);Dsb(g.a,d);BPc(this,g,e,d,true)}}}}};_.eg=function QPc(a){return a.i.n.b+a.n.b+a.a.b};_.fg=function RPc(){return Ucd(),zcd};_.gg=function SPc(){return Ucd(),Tcd};var UZ=mdb(Nqe,'WestToEastRoutingStrategy',1806);bcb(813,1,{},YPc);_.Ib=function ZPc(){return Fe(this.a)};_.b=0;_.c=false;_.d=false;_.f=0;var WZ=mdb(Pqe,'NubSpline',813);bcb(407,1,{407:1},aQc,bQc);var VZ=mdb(Pqe,'NubSpline/PolarCP',407);bcb(1453,1,Bqe,vQc);_.Yf=function xQc(a){return qQc(BD(a,37))};_.pf=function yQc(a,b){uQc(this,BD(a,37),b)};var cQc,dQc,eQc,fQc,gQc;var b$=mdb(Pqe,'SplineEdgeRouter',1453);bcb(268,1,{268:1},BQc);_.Ib=function CQc(){return this.a+' ->('+this.c+') '+this.b};_.c=0;var XZ=mdb(Pqe,'SplineEdgeRouter/Dependency',268);bcb(455,22,{3:1,35:1,22:1,455:1},GQc);var DQc,EQc;var YZ=ndb(Pqe,'SplineEdgeRouter/SideToProcess',455,CI,IQc,HQc);var JQc;bcb(1454,1,Oie,LQc);_.Mb=function MQc(a){return hQc(),!BD(a,128).o};var ZZ=mdb(Pqe,'SplineEdgeRouter/lambda$0$Type',1454);bcb(1455,1,{},NQc);_.Ge=function OQc(a){return hQc(),BD(a,128).v+1};var $Z=mdb(Pqe,'SplineEdgeRouter/lambda$1$Type',1455);bcb(1456,1,qie,PQc);_.td=function QQc(a){sQc(this.a,this.b,BD(a,46))};var _Z=mdb(Pqe,'SplineEdgeRouter/lambda$2$Type',1456);bcb(1457,1,qie,RQc);_.td=function SQc(a){tQc(this.a,this.b,BD(a,46))};var a$=mdb(Pqe,'SplineEdgeRouter/lambda$3$Type',1457);bcb(128,1,{35:1,128:1},YQc,ZQc);_.wd=function $Qc(a){return WQc(this,BD(a,128))};_.b=0;_.e=false;_.f=0;_.g=0;_.j=false;_.k=false;_.n=0;_.o=false;_.p=false;_.q=false;_.s=0;_.u=0;_.v=0;_.F=0;var d$=mdb(Pqe,'SplineSegment',128);bcb(459,1,{459:1},_Qc);_.a=0;_.b=false;_.c=false;_.d=false;_.e=false;_.f=0;var c$=mdb(Pqe,'SplineSegment/EdgeInformation',459);bcb(1234,1,{},hRc);var f$=mdb(Uqe,hme,1234);bcb(1235,1,Dke,jRc);_.ue=function kRc(a,b){return iRc(BD(a,135),BD(b,135))};_.Fb=function lRc(a){return this===a};_.ve=function mRc(){return new tpb(this)};var e$=mdb(Uqe,ime,1235);bcb(1233,1,{},tRc);var g$=mdb(Uqe,'MrTree',1233);bcb(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},ARc);_.Kf=function CRc(){return zRc(this)};_.Xf=function BRc(){return zRc(this)};var uRc,vRc,wRc,xRc;var h$=ndb(Uqe,'TreeLayoutPhases',393,CI,ERc,DRc);var FRc;bcb(1130,209,Mle,HRc);_.Ze=function IRc(a,b){var c,d,e,f,g,h,i;Ccb(DD(hkd(a,(JTc(),ATc))))||$Cb((c=new _Cb((Pgd(),new bhd(a))),c));g=(h=new SRc,tNb(h,a),yNb(h,(mTc(),dTc),a),i=new Lqb,pRc(a,h,i),oRc(a,h,i),h);f=gRc(this.a,g);for(e=new olb(f);e.a<e.c.c.length;){d=BD(mlb(e),135);rRc(this.b,d,Udd(b,1/f.c.length))}g=fRc(f);nRc(g)};var i$=mdb(Uqe,'TreeLayoutProvider',1130);bcb(1847,1,vie,KRc);_.Jc=function LRc(a){reb(this,a)};_.Kc=function MRc(){return mmb(),Emb(),Dmb};var j$=mdb(Uqe,'TreeUtil/1',1847);bcb(1848,1,vie,NRc);_.Jc=function ORc(a){reb(this,a)};_.Kc=function PRc(){return mmb(),Emb(),Dmb};var k$=mdb(Uqe,'TreeUtil/2',1848);bcb(502,134,{3:1,502:1,94:1,134:1});_.g=0;var m$=mdb(Vqe,'TGraphElement',502);bcb(188,502,{3:1,188:1,502:1,94:1,134:1},QRc);_.Ib=function RRc(){return !!this.b&&!!this.c?WRc(this.b)+'->'+WRc(this.c):'e_'+tb(this)};var l$=mdb(Vqe,'TEdge',188);bcb(135,134,{3:1,135:1,94:1,134:1},SRc);_.Ib=function TRc(){var a,b,c,d,e;e=null;for(d=Jsb(this.b,0);d.b!=d.d.c;){c=BD(Xsb(d),86);e+=(c.c==null||c.c.length==0?'n_'+c.g:'n_'+c.c)+'\n'}for(b=Jsb(this.a,0);b.b!=b.d.c;){a=BD(Xsb(b),188);e+=(!!a.b&&!!a.c?WRc(a.b)+'->'+WRc(a.c):'e_'+tb(a))+'\n'}return e};var n$=mdb(Vqe,'TGraph',135);bcb(633,502,{3:1,502:1,633:1,94:1,134:1});var r$=mdb(Vqe,'TShape',633);bcb(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},XRc);_.Ib=function YRc(){return WRc(this)};var q$=mdb(Vqe,'TNode',86);bcb(255,1,vie,ZRc);_.Jc=function $Rc(a){reb(this,a)};_.Kc=function _Rc(){var a;return a=Jsb(this.a.d,0),new aSc(a)};var p$=mdb(Vqe,'TNode/2',255);bcb(358,1,aie,aSc);_.Nb=function bSc(a){Rrb(this,a)};_.Pb=function dSc(){return BD(Xsb(this.a),188).c};_.Ob=function cSc(){return Wsb(this.a)};_.Qb=function eSc(){Zsb(this.a)};var o$=mdb(Vqe,'TNode/2/1',358);bcb(1840,1,ene,hSc);_.pf=function jSc(a,b){gSc(this,BD(a,135),b)};var s$=mdb(Wqe,'FanProcessor',1840);bcb(327,22,{3:1,35:1,22:1,327:1,234:1},rSc);_.Kf=function sSc(){switch(this.g){case 0:return new QSc;case 1:return new hSc;case 2:return new GSc;case 3:return new zSc;case 4:return new NSc;case 5:return new TSc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var kSc,lSc,mSc,nSc,oSc,pSc;var t$=ndb(Wqe,Ene,327,CI,uSc,tSc);var vSc;bcb(1843,1,ene,zSc);_.pf=function ASc(a,b){xSc(this,BD(a,135),b)};_.a=0;var v$=mdb(Wqe,'LevelHeightProcessor',1843);bcb(1844,1,vie,BSc);_.Jc=function CSc(a){reb(this,a)};_.Kc=function DSc(){return mmb(),Emb(),Dmb};var u$=mdb(Wqe,'LevelHeightProcessor/1',1844);bcb(1841,1,ene,GSc);_.pf=function HSc(a,b){ESc(this,BD(a,135),b)};_.a=0;var x$=mdb(Wqe,'NeighborsProcessor',1841);bcb(1842,1,vie,ISc);_.Jc=function JSc(a){reb(this,a)};_.Kc=function KSc(){return mmb(),Emb(),Dmb};var w$=mdb(Wqe,'NeighborsProcessor/1',1842);bcb(1845,1,ene,NSc);_.pf=function OSc(a,b){LSc(this,BD(a,135),b)};_.a=0;var y$=mdb(Wqe,'NodePositionProcessor',1845);bcb(1839,1,ene,QSc);_.pf=function RSc(a,b){PSc(this,BD(a,135))};var z$=mdb(Wqe,'RootProcessor',1839);bcb(1846,1,ene,TSc);_.pf=function USc(a,b){SSc(BD(a,135))};var A$=mdb(Wqe,'Untreeifyer',1846);var VSc,WSc,XSc,YSc,ZSc,$Sc,_Sc,aTc,bTc,cTc,dTc,eTc,fTc,gTc,hTc,iTc,jTc,kTc,lTc;bcb(851,1,ale,sTc);_.Qe=function tTc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zqe),''),'Weighting of Nodes'),'Which weighting to use when computing a node order.'),qTc),(_5c(),V5c)),E$),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$qe),''),'Search Order'),'Which search order to use when computing a spanning tree.'),oTc),V5c),F$),pqb(L5c))));KTc((new LTc,a))};var nTc,oTc,pTc,qTc;var B$=mdb(_qe,'MrTreeMetaDataProvider',851);bcb(994,1,ale,LTc);_.Qe=function MTc(a){KTc(a)};var uTc,vTc,wTc,xTc,yTc,zTc,ATc,BTc,CTc,DTc,ETc,FTc,GTc,HTc,ITc;var D$=mdb(_qe,'MrTreeOptions',994);bcb(995,1,{},NTc);_.$e=function OTc(){var a;return a=new HRc,a};_._e=function PTc(a){};var C$=mdb(_qe,'MrTreeOptions/MrtreeFactory',995);bcb(480,22,{3:1,35:1,22:1,480:1},TTc);var QTc,RTc;var E$=ndb(_qe,'OrderWeighting',480,CI,VTc,UTc);var WTc;bcb(425,22,{3:1,35:1,22:1,425:1},_Tc);var YTc,ZTc;var F$=ndb(_qe,'TreeifyingOrder',425,CI,bUc,aUc);var cUc;bcb(1459,1,Bqe,lUc);_.Yf=function mUc(a){return BD(a,135),eUc};_.pf=function nUc(a,b){kUc(this,BD(a,135),b)};var eUc;var G$=mdb('org.eclipse.elk.alg.mrtree.p1treeify','DFSTreeifyer',1459);bcb(1460,1,Bqe,sUc);_.Yf=function tUc(a){return BD(a,135),oUc};_.pf=function uUc(a,b){rUc(this,BD(a,135),b)};var oUc;var H$=mdb('org.eclipse.elk.alg.mrtree.p2order','NodeOrderer',1460);bcb(1461,1,Bqe,CUc);_.Yf=function DUc(a){return BD(a,135),vUc};_.pf=function EUc(a,b){AUc(this,BD(a,135),b)};_.a=0;var vUc;var I$=mdb('org.eclipse.elk.alg.mrtree.p3place','NodePlacer',1461);bcb(1462,1,Bqe,IUc);_.Yf=function JUc(a){return BD(a,135),FUc};_.pf=function KUc(a,b){HUc(BD(a,135),b)};var FUc;var J$=mdb('org.eclipse.elk.alg.mrtree.p4route','EdgeRouter',1462);var LUc;bcb(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},RUc);_.Kf=function TUc(){return QUc(this)};_.Xf=function SUc(){return QUc(this)};var NUc,OUc;var K$=ndb(cre,'RadialLayoutPhases',495,CI,VUc,UUc);var WUc;bcb(1131,209,Mle,ZUc);_.Ze=function $Uc(a,b){var c,d,e,f,g,h;c=YUc(this,a);Odd(b,'Radial layout',c.c.length);Ccb(DD(hkd(a,(ZWc(),QWc))))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));h=aVc(a);jkd(a,(MUc(),LUc),h);if(!h){throw vbb(new Wdb('The given graph is not a tree!'))}e=Edb(ED(hkd(a,VWc)));e==0&&(e=_Uc(a));jkd(a,VWc,e);for(g=new olb(YUc(this,a));g.a<g.c.c.length;){f=BD(mlb(g),51);f.pf(a,Udd(b,1))}Qdd(b)};var L$=mdb(cre,'RadialLayoutProvider',1131);bcb(549,1,Dke,jVc);_.ue=function kVc(a,b){return iVc(this.a,this.b,BD(a,33),BD(b,33))};_.Fb=function lVc(a){return this===a};_.ve=function mVc(){return new tpb(this)};_.a=0;_.b=0;var M$=mdb(cre,'RadialUtil/lambda$0$Type',549);bcb(1375,1,ene,oVc);_.pf=function pVc(a,b){nVc(BD(a,33),b)};var N$=mdb(fre,'CalculateGraphSize',1375);bcb(442,22,{3:1,35:1,22:1,442:1,234:1},uVc);_.Kf=function vVc(){switch(this.g){case 0:return new bWc;case 1:return new NVc;case 2:return new oVc;default:throw vbb(new Wdb(Dne+(this.f!=null?this.f:''+this.g)));}};var qVc,rVc,sVc;var O$=ndb(fre,Ene,442,CI,xVc,wVc);var yVc;bcb(645,1,{});_.e=1;_.g=0;var P$=mdb(gre,'AbstractRadiusExtensionCompaction',645);bcb(1772,645,{},KVc);_.hg=function LVc(a){var b,c,d,e,f,g,h,i,j;this.c=BD(hkd(a,(MUc(),LUc)),33);EVc(this,this.c);this.d=tXc(BD(hkd(a,(ZWc(),WWc)),293));i=BD(hkd(a,KWc),19);!!i&&DVc(this,i.a);h=ED(hkd(a,(Y9c(),T9c)));FVc(this,(uCb(h),h));j=gVc(this.c);!!this.d&&this.d.lg(j);GVc(this,j);g=new amb(OC(GC(E2,1),hre,33,0,[this.c]));for(c=0;c<2;c++){for(b=0;b<j.c.length;b++){e=new amb(OC(GC(E2,1),hre,33,0,[(tCb(b,j.c.length),BD(j.c[b],33))]));f=b<j.c.length-1?(tCb(b+1,j.c.length),BD(j.c[b+1],33)):(tCb(0,j.c.length),BD(j.c[0],33));d=b==0?BD(Ikb(j,j.c.length-1),33):(tCb(b-1,j.c.length),BD(j.c[b-1],33));IVc(this,(tCb(b,j.c.length),BD(j.c[b],33),g),d,f,e)}}};var Q$=mdb(gre,'AnnulusWedgeCompaction',1772);bcb(1374,1,ene,NVc);_.pf=function OVc(a,b){MVc(BD(a,33),b)};var R$=mdb(gre,'GeneralCompactor',1374);bcb(1771,645,{},SVc);_.hg=function TVc(a){var b,c,d,e;c=BD(hkd(a,(MUc(),LUc)),33);this.f=c;this.b=tXc(BD(hkd(a,(ZWc(),WWc)),293));e=BD(hkd(a,KWc),19);!!e&&DVc(this,e.a);d=ED(hkd(a,(Y9c(),T9c)));FVc(this,(uCb(d),d));b=gVc(c);!!this.b&&this.b.lg(b);QVc(this,b)};_.a=0;var S$=mdb(gre,'RadialCompaction',1771);bcb(1779,1,{},VVc);_.ig=function WVc(a){var b,c,d,e,f,g;this.a=a;b=0;g=gVc(a);d=0;for(f=new olb(g);f.a<f.c.c.length;){e=BD(mlb(f),33);++d;for(c=d;c<g.c.length;c++){UVc(this,e,(tCb(c,g.c.length),BD(g.c[c],33)))&&(b+=1)}}return b};var T$=mdb(ire,'CrossingMinimizationPosition',1779);bcb(1777,1,{},XVc);_.ig=function YVc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;d=0;for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);h=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));j=h.i+h.g/2;k=h.j+h.f/2;e=a.i+a.g/2;f=a.j+a.f/2;l=new d7c;l.a=j-e;l.b=k-f;g=new f7c(l.a,l.b);l6c(g,a.g,a.f);l.a-=g.a;l.b-=g.b;e=j-l.a;f=k-l.b;i=new f7c(l.a,l.b);l6c(i,h.g,h.f);l.a-=i.a;l.b-=i.b;j=e+l.a;k=f+l.b;m=j-e;n=k-f;d+=$wnd.Math.sqrt(m*m+n*n)}return d};var U$=mdb(ire,'EdgeLengthOptimization',1777);bcb(1778,1,{},ZVc);_.ig=function $Vc(a){var b,c,d,e,f,g,h,i,j,k,l;d=0;for(c=new Sr(ur(_sd(a).a.Kc(),new Sq));Qr(c);){b=BD(Rr(c),79);h=atd(BD(qud((!b.c&&(b.c=new y5d(z2,b,5,8)),b.c),0),82));i=h.i+h.g/2;j=h.j+h.f/2;e=BD(hkd(h,(Y9c(),C9c)),8);f=a.i+e.a+a.g/2;g=a.j+e.b+a.f;k=i-f;l=j-g;d+=$wnd.Math.sqrt(k*k+l*l)}return d};var V$=mdb(ire,'EdgeLengthPositionOptimization',1778);bcb(1373,645,ene,bWc);_.pf=function cWc(a,b){aWc(this,BD(a,33),b)};var W$=mdb('org.eclipse.elk.alg.radial.intermediate.overlaps','RadiusExtensionOverlapRemoval',1373);bcb(426,22,{3:1,35:1,22:1,426:1},hWc);var dWc,eWc;var X$=ndb(kre,'AnnulusWedgeCriteria',426,CI,jWc,iWc);var kWc;bcb(380,22,{3:1,35:1,22:1,380:1},rWc);var mWc,nWc,oWc;var Y$=ndb(kre,Sle,380,CI,tWc,sWc);var uWc;bcb(852,1,ale,IWc);_.Qe=function JWc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lre),''),'Order ID'),'The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly.'),meb(0)),(_5c(),X5c)),JI),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mre),''),'Radius'),'The radius option can be used to set the initial radius for the radial layouter.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nre),''),'Compaction'),'With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately.'),yWc),V5c),Y$),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ore),''),'Compaction Step Size'),'Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration.'),meb(1)),X5c),JI),pqb(L5c))));o4c(a,ore,nre,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pre),''),'Sorter'),'Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates.'),EWc),V5c),b_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qre),''),'Annulus Wedge Criteria'),'Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals.'),GWc),V5c),X$),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rre),''),'Translation Optimization'),'Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized.'),AWc),V5c),a_),pqb(L5c))));$Wc((new _Wc,a))};var wWc,xWc,yWc,zWc,AWc,BWc,CWc,DWc,EWc,FWc,GWc;var Z$=mdb(kre,'RadialMetaDataProvider',852);bcb(996,1,ale,_Wc);_.Qe=function aXc(a){$Wc(a)};var KWc,LWc,MWc,NWc,OWc,PWc,QWc,RWc,SWc,TWc,UWc,VWc,WWc,XWc,YWc;var _$=mdb(kre,'RadialOptions',996);bcb(997,1,{},bXc);_.$e=function cXc(){var a;return a=new ZUc,a};_._e=function dXc(a){};var $$=mdb(kre,'RadialOptions/RadialFactory',997);bcb(340,22,{3:1,35:1,22:1,340:1},kXc);var eXc,fXc,gXc,hXc;var a_=ndb(kre,'RadialTranslationStrategy',340,CI,mXc,lXc);var nXc;bcb(293,22,{3:1,35:1,22:1,293:1},uXc);var pXc,qXc,rXc;var b_=ndb(kre,'SortingStrategy',293,CI,wXc,vXc);var xXc;bcb(1449,1,Bqe,CXc);_.Yf=function DXc(a){return BD(a,33),null};_.pf=function EXc(a,b){AXc(this,BD(a,33),b)};_.c=0;var c_=mdb('org.eclipse.elk.alg.radial.p1position','EadesRadial',1449);bcb(1775,1,{},FXc);_.jg=function GXc(a){return eVc(a)};var d_=mdb(tre,'AnnulusWedgeByLeafs',1775);bcb(1776,1,{},IXc);_.jg=function JXc(a){return HXc(this,a)};var e_=mdb(tre,'AnnulusWedgeByNodeSpace',1776);bcb(1450,1,Bqe,MXc);_.Yf=function NXc(a){return BD(a,33),null};_.pf=function OXc(a,b){KXc(this,BD(a,33),b)};var f_=mdb('org.eclipse.elk.alg.radial.p2routing','StraightLineEdgeRouter',1450);bcb(811,1,{},QXc);_.kg=function RXc(a){};_.lg=function TXc(a){PXc(this,a)};var h_=mdb(ure,'IDSorter',811);bcb(1774,1,Dke,UXc);_.ue=function VXc(a,b){return SXc(BD(a,33),BD(b,33))};_.Fb=function WXc(a){return this===a};_.ve=function XXc(){return new tpb(this)};var g_=mdb(ure,'IDSorter/lambda$0$Type',1774);bcb(1773,1,{},$Xc);_.kg=function _Xc(a){YXc(this,a)};_.lg=function aYc(a){var b;if(!a.dc()){if(!this.e){b=bVc(BD(a.Xb(0),33));YXc(this,b)}PXc(this.e,a)}};var i_=mdb(ure,'PolarCoordinateSorter',1773);bcb(1136,209,Mle,bYc);_.Ze=function eYc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F;Odd(b,'Rectangle Packing',1);b.n&&b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));c=Edb(ED(hkd(a,(lZc(),RYc))));p=BD(hkd(a,eZc),381);s=Ccb(DD(hkd(a,ZYc)));w=Ccb(DD(hkd(a,dZc)));l=Ccb(DD(hkd(a,VYc)));A=BD(hkd(a,fZc),116);v=Edb(ED(hkd(a,jZc)));e=Ccb(DD(hkd(a,iZc)));m=Ccb(DD(hkd(a,WYc)));r=Ccb(DD(hkd(a,XYc)));F=Edb(ED(hkd(a,kZc)));C=(!a.a&&(a.a=new cUd(E2,a,10,11)),a.a);r$c(C);if(r){o=new Rkb;for(i=new Fyd(C);i.e!=i.i.gc();){g=BD(Dyd(i),33);ikd(g,UYc)&&(o.c[o.c.length]=g,true)}for(j=new olb(o);j.a<j.c.c.length;){g=BD(mlb(j),33);Ftd(C,g)}mmb();Okb(o,new fYc);for(k=new olb(o);k.a<k.c.c.length;){g=BD(mlb(k),33);B=BD(hkd(g,UYc),19).a;B=$wnd.Math.min(B,C.i);vtd(C,B,g)}q=0;for(h=new Fyd(C);h.e!=h.i.gc();){g=BD(Dyd(h),33);jkd(g,TYc,meb(q));++q}}u=rfd(a);u.a-=A.b+A.c;u.b-=A.d+A.a;t=u.a;if(F<0||F<u.a){n=new nYc(c,p,s);f=jYc(n,C,v,A);b.n&&b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd))}else{f=new d$c(c,F,0,(k$c(),j$c))}u.a+=A.b+A.c;u.b+=A.d+A.a;if(!w){r$c(C);D=new DZc(c,l,m,e,v);t=$wnd.Math.max(u.a,f.c);f=CZc(D,C,t,u,b,a,A)}cYc(C,A);Afd(a,f.c+(A.b+A.c),f.b+(A.d+A.a),false,true);Ccb(DD(hkd(a,cZc)))||$Cb((d=new _Cb((Pgd(),new bhd(a))),d));b.n&&b.n&&!!a&&Tdd(b,i6d(a),(pgd(),mgd));Qdd(b)};var k_=mdb(yre,'RectPackingLayoutProvider',1136);bcb(1137,1,Dke,fYc);_.ue=function gYc(a,b){return dYc(BD(a,33),BD(b,33))};_.Fb=function hYc(a){return this===a};_.ve=function iYc(){return new tpb(this)};var j_=mdb(yre,'RectPackingLayoutProvider/lambda$0$Type',1137);bcb(1256,1,{},nYc);_.a=0;_.c=false;var l_=mdb(zre,'AreaApproximation',1256);var o_=odb(zre,'BestCandidateFilter');bcb(638,1,{526:1},oYc);_.mg=function pYc(a,b,c){var d,e,f,g,h,i;i=new Rkb;f=Pje;for(h=new olb(a);h.a<h.c.c.length;){g=BD(mlb(h),220);f=$wnd.Math.min(f,(g.c+(c.b+c.c))*(g.b+(c.d+c.a)))}for(e=new olb(a);e.a<e.c.c.length;){d=BD(mlb(e),220);(d.c+(c.b+c.c))*(d.b+(c.d+c.a))==f&&(i.c[i.c.length]=d,true)}return i};var m_=mdb(zre,'AreaFilter',638);bcb(639,1,{526:1},qYc);_.mg=function rYc(a,b,c){var d,e,f,g,h,i;h=new Rkb;i=Pje;for(g=new olb(a);g.a<g.c.c.length;){f=BD(mlb(g),220);i=$wnd.Math.min(i,$wnd.Math.abs((f.c+(c.b+c.c))/(f.b+(c.d+c.a))-b))}for(e=new olb(a);e.a<e.c.c.length;){d=BD(mlb(e),220);$wnd.Math.abs((d.c+(c.b+c.c))/(d.b+(c.d+c.a))-b)==i&&(h.c[h.c.length]=d,true)}return h};var n_=mdb(zre,'AspectRatioFilter',639);bcb(637,1,{526:1},uYc);_.mg=function vYc(a,b,c){var d,e,f,g,h,i;i=new Rkb;f=Qje;for(h=new olb(a);h.a<h.c.c.length;){g=BD(mlb(h),220);f=$wnd.Math.max(f,q$c(g.c+(c.b+c.c),g.b+(c.d+c.a),g.a))}for(e=new olb(a);e.a<e.c.c.length;){d=BD(mlb(e),220);q$c(d.c+(c.b+c.c),d.b+(c.d+c.a),d.a)==f&&(i.c[i.c.length]=d,true)}return i};var p_=mdb(zre,'ScaleMeasureFilter',637);bcb(381,22,{3:1,35:1,22:1,381:1},AYc);var wYc,xYc,yYc;var q_=ndb(Are,'OptimizationGoal',381,CI,CYc,BYc);var DYc;bcb(856,1,ale,PYc);_.Qe=function QYc(a){t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bre),''),'Optimization Goal'),'Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored.'),LYc),(_5c(),V5c)),q_),pqb((N5c(),K5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cre),''),'Shift Last Placed.'),'When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces.'),(Bcb(),true)),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dre),''),'Current position of a node in the order of nodes'),'The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ere),''),'Desired index of node'),'The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position.'),meb(-1)),X5c),JI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fre),''),'Only Area Approximation'),'If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gre),''),'Compact Rows'),'Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hre),''),'Fit Aspect Ratio'),'Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion.'),false),T5c),wI),pqb(K5c))));o4c(a,Hre,Jre,null);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ire),''),'Target Width'),'Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding.'),-1),U5c),BI),pqb(K5c))));mZc((new nZc,a))};var FYc,GYc,HYc,IYc,JYc,KYc,LYc,MYc,NYc;var r_=mdb(Are,'RectPackingMetaDataProvider',856);bcb(1004,1,ale,nZc);_.Qe=function oZc(a){mZc(a)};var RYc,SYc,TYc,UYc,VYc,WYc,XYc,YYc,ZYc,$Yc,_Yc,aZc,bZc,cZc,dZc,eZc,fZc,gZc,hZc,iZc,jZc,kZc;var t_=mdb(Are,'RectPackingOptions',1004);bcb(1005,1,{},pZc);_.$e=function qZc(){var a;return a=new bYc,a};_._e=function rZc(a){};var s_=mdb(Are,'RectPackingOptions/RectpackingFactory',1005);bcb(1257,1,{},DZc);_.a=0;_.b=false;_.c=0;_.d=0;_.e=false;_.f=false;_.g=0;var u_=mdb('org.eclipse.elk.alg.rectpacking.seconditeration','RowFillingAndCompaction',1257);bcb(187,1,{187:1},PZc);_.a=0;_.c=false;_.d=0;_.e=0;_.f=0;_.g=0;_.i=0;_.k=false;_.o=Pje;_.p=Pje;_.r=0;_.s=0;_.t=0;var x_=mdb(Lre,'Block',187);bcb(211,1,{211:1},VZc);_.a=0;_.b=0;_.d=0;_.e=0;_.f=0;var v_=mdb(Lre,'BlockRow',211);bcb(443,1,{443:1},b$c);_.b=0;_.c=0;_.d=0;_.e=0;_.f=0;var w_=mdb(Lre,'BlockStack',443);bcb(220,1,{220:1},d$c,e$c);_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;var z_=mdb(Lre,'DrawingData',220);bcb(355,22,{3:1,35:1,22:1,355:1},l$c);var f$c,g$c,h$c,i$c,j$c;var y_=ndb(Lre,'DrawingDataDescriptor',355,CI,n$c,m$c);var o$c;bcb(200,1,{200:1},x$c);_.b=0;_.c=0;_.e=0;_.f=0;var A_=mdb(Lre,'RectRow',200);bcb(756,1,{},F$c);_.j=0;var G_=mdb(Nre,une,756);bcb(1245,1,{},G$c);_.Je=function H$c(a){return S6c(a.a,a.b)};var B_=mdb(Nre,vne,1245);bcb(1246,1,{},I$c);_.Je=function J$c(a){return A$c(this.a,a)};var C_=mdb(Nre,wne,1246);bcb(1247,1,{},K$c);_.Je=function L$c(a){return B$c(this.a,a)};var D_=mdb(Nre,xne,1247);bcb(1248,1,{},M$c);_.Je=function N$c(a){return C$c(this.a,a)};var E_=mdb(Nre,'ElkGraphImporter/lambda$3$Type',1248);bcb(1249,1,{},O$c);_.Je=function P$c(a){return D$c(this.a,a)};var F_=mdb(Nre,yne,1249);bcb(1133,209,Mle,Q$c);_.Ze=function S$c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;if(ikd(a,(d0c(),c0c))){n=GD(hkd(a,(J0c(),I0c)));f=h4c(n4c(),n);if(f){g=BD(hgd(f.f),209);g.Ze(a,Udd(b,1))}}jkd(a,Z_c,(C_c(),A_c));jkd(a,$_c,(N_c(),K_c));jkd(a,__c,(a1c(),_0c));h=BD(hkd(a,(J0c(),E0c)),19).a;Odd(b,'Overlap removal',1);Ccb(DD(hkd(a,D0c)))&&'null45scanlineOverlaps';i=new Tqb;j=new U$c(i);d=new F$c;c=z$c(d,a);k=true;e=0;while(e<h&&k){if(Ccb(DD(hkd(a,F0c)))){i.a.$b();cOb(new dOb(j),c.i);if(i.a.gc()==0){break}c.e=i}H2c(this.b);K2c(this.b,(Y$c(),V$c),(R0c(),Q0c));K2c(this.b,W$c,c.g);K2c(this.b,X$c,(s_c(),r_c));this.a=F2c(this.b,c);for(m=new olb(this.a);m.a<m.c.c.length;){l=BD(mlb(m),51);l.pf(c,Udd(b,1))}E$c(d,c);k=Ccb(DD(vNb(c,(XNb(),WNb))));++e}y$c(d,c);Qdd(b)};var I_=mdb(Nre,'OverlapRemovalLayoutProvider',1133);bcb(1134,1,{},U$c);var H_=mdb(Nre,'OverlapRemovalLayoutProvider/lambda$0$Type',1134);bcb(437,22,{3:1,35:1,22:1,437:1},Z$c);var V$c,W$c,X$c;var J_=ndb(Nre,'SPOrEPhases',437,CI,_$c,$$c);var a_c;bcb(1255,1,{},d_c);var L_=mdb(Nre,'ShrinkTree',1255);bcb(1135,209,Mle,e_c);_.Ze=function f_c(a,b){var c,d,e,f,g;if(ikd(a,(d0c(),c0c))){g=GD(hkd(a,c0c));e=h4c(n4c(),g);if(e){f=BD(hgd(e.f),209);f.Ze(a,Udd(b,1))}}d=new F$c;c=z$c(d,a);c_c(this.a,c,Udd(b,1));y$c(d,c)};var K_=mdb(Nre,'ShrinkTreeLayoutProvider',1135);bcb(300,134,{3:1,300:1,94:1,134:1},g_c);_.c=false;var M_=mdb('org.eclipse.elk.alg.spore.graph','Graph',300);bcb(482,22,{3:1,35:1,22:1,482:1,246:1,234:1},k_c);_.Kf=function m_c(){return j_c(this)};_.Xf=function l_c(){return j_c(this)};var h_c;var N_=ndb(Ore,Sle,482,CI,o_c,n_c);var p_c;bcb(551,22,{3:1,35:1,22:1,551:1,246:1,234:1},t_c);_.Kf=function v_c(){return new I1c};_.Xf=function u_c(){return new I1c};var r_c;var O_=ndb(Ore,'OverlapRemovalStrategy',551,CI,x_c,w_c);var y_c;bcb(430,22,{3:1,35:1,22:1,430:1},D_c);var A_c,B_c;var P_=ndb(Ore,'RootSelection',430,CI,F_c,E_c);var G_c;bcb(316,22,{3:1,35:1,22:1,316:1},O_c);var I_c,J_c,K_c,L_c,M_c;var Q_=ndb(Ore,'SpanningTreeCostFunction',316,CI,Q_c,P_c);var R_c;bcb(1002,1,ale,f0c);_.Qe=function g0c(a){e0c(a)};var T_c,U_c,V_c,W_c,X_c,Y_c,Z_c,$_c,__c,a0c,b0c,c0c;var S_=mdb(Ore,'SporeCompactionOptions',1002);bcb(1003,1,{},h0c);_.$e=function i0c(){var a;return a=new e_c,a};_._e=function j0c(a){};var R_=mdb(Ore,'SporeCompactionOptions/SporeCompactionFactory',1003);bcb(855,1,ale,B0c);_.Qe=function C0c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Qre),''),'Underlying Layout Algorithm'),'A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Vre),'structure'),'Structure Extraction Strategy'),'This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices.'),y0c),V5c),W_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rre),$re),'Tree Construction Strategy'),'Whether a minimum spanning tree or a maximum spanning tree should be constructed.'),w0c),V5c),X_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Sre),$re),'Cost Function for Spanning Tree'),'The cost function is used in the creation of the spanning tree.'),u0c),V5c),Q_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tre),$re),'Root node for spanning tree construction'),'The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen.'),null),Z5c),ZI),pqb(L5c))));o4c(a,Tre,Ure,q0c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ure),$re),'Root selection for spanning tree'),'This sets the method used to select a root node for the construction of a spanning tree'),s0c),V5c),P_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Wre),Bpe),'Compaction Strategy'),'This option defines how the compaction is applied.'),l0c),V5c),N_),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xre),Bpe),'Orthogonal Compaction'),'Restricts the translation of nodes to orthogonal directions in the compaction phase.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Yre),_re),'Upper limit for iterations of overlap removal'),null),meb(64)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zre),_re),'Whether to run a supplementary scanline overlap check.'),null),true),T5c),wI),pqb(L5c))));K0c((new L0c,a));e0c((new f0c,a))};var k0c,l0c,m0c,n0c,o0c,p0c,q0c,r0c,s0c,t0c,u0c,v0c,w0c,x0c,y0c,z0c;var T_=mdb(Ore,'SporeMetaDataProvider',855);bcb(_ie,1,ale,L0c);_.Qe=function M0c(a){K0c(a)};var D0c,E0c,F0c,G0c,H0c,I0c;var V_=mdb(Ore,'SporeOverlapRemovalOptions',_ie);bcb(1001,1,{},N0c);_.$e=function O0c(){var a;return a=new Q$c,a};_._e=function P0c(a){};var U_=mdb(Ore,'SporeOverlapRemovalOptions/SporeOverlapFactory',1001);bcb(530,22,{3:1,35:1,22:1,530:1,246:1,234:1},T0c);_.Kf=function V0c(){return S0c(this)};_.Xf=function U0c(){return S0c(this)};var Q0c;var W_=ndb(Ore,'StructureExtractionStrategy',530,CI,X0c,W0c);var Y0c;bcb(429,22,{3:1,35:1,22:1,429:1,246:1,234:1},c1c);_.Kf=function e1c(){return b1c(this)};_.Xf=function d1c(){return b1c(this)};var $0c,_0c;var X_=ndb(Ore,'TreeConstructionStrategy',429,CI,g1c,f1c);var h1c;bcb(1443,1,Bqe,k1c);_.Yf=function l1c(a){return BD(a,300),new j3c};_.pf=function m1c(a,b){j1c(BD(a,300),b)};var Z_=mdb(bse,'DelaunayTriangulationPhase',1443);bcb(1444,1,qie,n1c);_.td=function o1c(a){Ekb(this.a,BD(a,65).a)};var Y_=mdb(bse,'DelaunayTriangulationPhase/lambda$0$Type',1444);bcb(783,1,Bqe,s1c);_.Yf=function t1c(a){return BD(a,300),new j3c};_.pf=function u1c(a,b){this.ng(BD(a,300),b)};_.ng=function v1c(a,b){var c,d,e;Odd(b,'Minimum spanning tree construction',1);a.d?(d=a.d.a):(d=BD(Ikb(a.i,0),65).a);Ccb(DD(vNb(a,(XNb(),VNb))))?(e=UCb(a.e,d,(c=a.b,c))):(e=UCb(a.e,d,a.b));q1c(this,e,a);Qdd(b)};var b0=mdb(cse,'MinSTPhase',783);bcb(1446,783,Bqe,w1c);_.ng=function y1c(a,b){var c,d,e,f;Odd(b,'Maximum spanning tree construction',1);c=new z1c(a);a.d?(e=a.d.c):(e=BD(Ikb(a.i,0),65).c);Ccb(DD(vNb(a,(XNb(),VNb))))?(f=UCb(a.e,e,(d=c,d))):(f=UCb(a.e,e,c));q1c(this,f,a);Qdd(b)};var __=mdb(cse,'MaxSTPhase',1446);bcb(1447,1,{},z1c);_.Je=function A1c(a){return x1c(this.a,a)};var $_=mdb(cse,'MaxSTPhase/lambda$0$Type',1447);bcb(1445,1,qie,B1c);_.td=function C1c(a){r1c(this.a,BD(a,65))};var a0=mdb(cse,'MinSTPhase/lambda$0$Type',1445);bcb(785,1,Bqe,I1c);_.Yf=function J1c(a){return BD(a,300),new j3c};_.pf=function K1c(a,b){H1c(this,BD(a,300),b)};_.a=false;var d0=mdb(dse,'GrowTreePhase',785);bcb(786,1,qie,L1c);_.td=function M1c(a){G1c(this.a,this.b,this.c,BD(a,221))};var c0=mdb(dse,'GrowTreePhase/lambda$0$Type',786);bcb(1448,1,Bqe,Q1c);_.Yf=function R1c(a){return BD(a,300),new j3c};_.pf=function S1c(a,b){P1c(this,BD(a,300),b)};var f0=mdb(dse,'ShrinkTreeCompactionPhase',1448);bcb(784,1,qie,T1c);_.td=function U1c(a){O1c(this.a,this.b,this.c,BD(a,221))};var e0=mdb(dse,'ShrinkTreeCompactionPhase/lambda$0$Type',784);var g2=odb(yqe,'IGraphElementVisitor');bcb(860,1,{527:1},b2c);_.og=function e2c(a){var b;b=a2c(this,a);tNb(b,BD(Ohb(this.b,a),94));$1c(this,a,b)};var V1c,W1c,X1c;var m0=mdb(Nle,'LayoutConfigurator',860);var h0=odb(Nle,'LayoutConfigurator/IPropertyHolderOptionFilter');bcb(932,1,{1933:1},f2c);_.pg=function g2c(a,b){return Y1c(),!a.Xe(b)};var i0=mdb(Nle,'LayoutConfigurator/lambda$0$Type',932);bcb(933,1,{1933:1},i2c);_.pg=function j2c(a,b){return h2c(a,b)};var j0=mdb(Nle,'LayoutConfigurator/lambda$1$Type',933);bcb(931,1,{831:1},k2c);_.qg=function l2c(a,b){return Y1c(),!a.Xe(b)};var k0=mdb(Nle,'LayoutConfigurator/lambda$2$Type',931);bcb(934,1,Oie,m2c);_.Mb=function n2c(a){return d2c(this.a,this.b,BD(a,1933))};var l0=mdb(Nle,'LayoutConfigurator/lambda$3$Type',934);bcb(858,1,{},w2c);var n0=mdb(Nle,'RecursiveGraphLayoutEngine',858);bcb(296,60,Tie,x2c,y2c);var o0=mdb(Nle,'UnsupportedConfigurationException',296);bcb(453,60,Tie,z2c);var p0=mdb(Nle,'UnsupportedGraphException',453);bcb(754,1,{});var K1=mdb(yqe,'AbstractRandomListAccessor',754);bcb(500,754,{},L2c);_.rg=function N2c(){return null};_.d=true;_.e=true;_.f=0;var v0=mdb(fse,'AlgorithmAssembler',500);bcb(1236,1,Oie,O2c);_.Mb=function P2c(a){return !!BD(a,123)};var q0=mdb(fse,'AlgorithmAssembler/lambda$0$Type',1236);bcb(1237,1,{},Q2c);_.Kb=function R2c(a){return M2c(this.a,BD(a,123))};var r0=mdb(fse,'AlgorithmAssembler/lambda$1$Type',1237);bcb(1238,1,Oie,S2c);_.Mb=function T2c(a){return !!BD(a,80)};var s0=mdb(fse,'AlgorithmAssembler/lambda$2$Type',1238);bcb(1239,1,qie,U2c);_.td=function V2c(a){d3c(this.a,BD(a,80))};var t0=mdb(fse,'AlgorithmAssembler/lambda$3$Type',1239);bcb(1240,1,qie,W2c);_.td=function X2c(a){G2c(this.a,this.b,BD(a,234))};var u0=mdb(fse,'AlgorithmAssembler/lambda$4$Type',1240);bcb(1355,1,Dke,Z2c);_.ue=function $2c(a,b){return Y2c(BD(a,234),BD(b,234))};_.Fb=function _2c(a){return this===a};_.ve=function a3c(){return new tpb(this)};var w0=mdb(fse,'EnumBasedFactoryComparator',1355);bcb(80,754,{80:1},j3c);_.rg=function l3c(){return new Tqb};_.a=0;var x0=mdb(fse,'LayoutProcessorConfiguration',80);bcb(1013,1,{527:1},q3c);_.og=function u3c(a){stb(n3c,new z3c(a))};var m3c,n3c,o3c;var B0=mdb(Xke,'DeprecatedLayoutOptionReplacer',1013);bcb(1014,1,qie,v3c);_.td=function w3c(a){r3c(BD(a,160))};var y0=mdb(Xke,'DeprecatedLayoutOptionReplacer/lambda$0$Type',1014);bcb(1015,1,qie,x3c);_.td=function y3c(a){s3c(BD(a,160))};var z0=mdb(Xke,'DeprecatedLayoutOptionReplacer/lambda$1$Type',1015);bcb(1016,1,{},z3c);_.Od=function A3c(a,b){t3c(this.a,BD(a,146),BD(b,38))};var A0=mdb(Xke,'DeprecatedLayoutOptionReplacer/lambda$2$Type',1016);bcb(149,1,{686:1,149:1},E3c);_.Fb=function F3c(a){return C3c(this,a)};_.sg=function G3c(){return this.b};_.tg=function H3c(){return this.c};_.ne=function I3c(){return this.e};_.Hb=function J3c(){return LCb(this.c)};_.Ib=function K3c(){return 'Layout Algorithm: '+this.c};var E0=mdb(Xke,'LayoutAlgorithmData',149);bcb(263,1,{},R3c);var D0=mdb(Xke,'LayoutAlgorithmData/Builder',263);bcb(1017,1,{527:1},U3c);_.og=function V3c(a){JD(a,239)&&!Ccb(DD(a.We((Y9c(),d9c))))&&S3c(BD(a,33))};var F0=mdb(Xke,'LayoutAlgorithmResolver',1017);bcb(229,1,{686:1,229:1},W3c);_.Fb=function X3c(a){if(JD(a,229)){return dfb(this.b,BD(a,229).b)}return false};_.sg=function Y3c(){return this.a};_.tg=function Z3c(){return this.b};_.ne=function $3c(){return this.d};_.Hb=function _3c(){return LCb(this.b)};_.Ib=function a4c(){return 'Layout Type: '+this.b};var H0=mdb(Xke,'LayoutCategoryData',229);bcb(344,1,{},e4c);var G0=mdb(Xke,'LayoutCategoryData/Builder',344);bcb(867,1,{},m4c);var f4c;var c1=mdb(Xke,'LayoutMetaDataService',867);bcb(868,1,{},v4c);var J0=mdb(Xke,'LayoutMetaDataService/Registry',868);bcb(478,1,{478:1},w4c);var I0=mdb(Xke,'LayoutMetaDataService/Registry/Triple',478);bcb(869,1,gse,x4c);_.ug=function y4c(){return new d7c};var K0=mdb(Xke,'LayoutMetaDataService/lambda$0$Type',869);bcb(870,1,hse,z4c);_.vg=function A4c(a){return R6c(BD(a,8))};var L0=mdb(Xke,'LayoutMetaDataService/lambda$1$Type',870);bcb(879,1,gse,B4c);_.ug=function C4c(){return new Rkb};var M0=mdb(Xke,'LayoutMetaDataService/lambda$10$Type',879);bcb(880,1,hse,D4c);_.vg=function E4c(a){return new Tkb(BD(a,12))};var N0=mdb(Xke,'LayoutMetaDataService/lambda$11$Type',880);bcb(881,1,gse,F4c);_.ug=function G4c(){return new Psb};var O0=mdb(Xke,'LayoutMetaDataService/lambda$12$Type',881);bcb(882,1,hse,H4c);_.vg=function I4c(a){return Ru(BD(a,68))};var P0=mdb(Xke,'LayoutMetaDataService/lambda$13$Type',882);bcb(883,1,gse,J4c);_.ug=function K4c(){return new Tqb};var Q0=mdb(Xke,'LayoutMetaDataService/lambda$14$Type',883);bcb(884,1,hse,L4c);_.vg=function M4c(a){return Dx(BD(a,53))};var R0=mdb(Xke,'LayoutMetaDataService/lambda$15$Type',884);bcb(885,1,gse,N4c);_.ug=function O4c(){return new zsb};var S0=mdb(Xke,'LayoutMetaDataService/lambda$16$Type',885);bcb(886,1,hse,P4c);_.vg=function Q4c(a){return Gx(BD(a,53))};var T0=mdb(Xke,'LayoutMetaDataService/lambda$17$Type',886);bcb(887,1,gse,R4c);_.ug=function S4c(){return new Gxb};var U0=mdb(Xke,'LayoutMetaDataService/lambda$18$Type',887);bcb(888,1,hse,T4c);_.vg=function U4c(a){return Hx(BD(a,208))};var V0=mdb(Xke,'LayoutMetaDataService/lambda$19$Type',888);bcb(871,1,gse,V4c);_.ug=function W4c(){return new s7c};var W0=mdb(Xke,'LayoutMetaDataService/lambda$2$Type',871);bcb(872,1,hse,X4c);_.vg=function Y4c(a){return new t7c(BD(a,74))};var X0=mdb(Xke,'LayoutMetaDataService/lambda$3$Type',872);bcb(873,1,gse,Z4c);_.ug=function $4c(){return new H_b};var Y0=mdb(Xke,'LayoutMetaDataService/lambda$4$Type',873);bcb(874,1,hse,_4c);_.vg=function a5c(a){return new K_b(BD(a,142))};var Z0=mdb(Xke,'LayoutMetaDataService/lambda$5$Type',874);bcb(875,1,gse,b5c);_.ug=function c5c(){return new p0b};var $0=mdb(Xke,'LayoutMetaDataService/lambda$6$Type',875);bcb(876,1,hse,d5c);_.vg=function e5c(a){return new r0b(BD(a,116))};var _0=mdb(Xke,'LayoutMetaDataService/lambda$7$Type',876);bcb(877,1,gse,f5c);_.ug=function g5c(){return new _fd};var a1=mdb(Xke,'LayoutMetaDataService/lambda$8$Type',877);bcb(878,1,hse,h5c);_.vg=function i5c(a){return new agd(BD(a,373))};var b1=mdb(Xke,'LayoutMetaDataService/lambda$9$Type',878);var Q3=odb(Hle,'IProperty');bcb(23,1,{35:1,686:1,23:1,146:1},p5c);_.wd=function q5c(a){return k5c(this,BD(a,146))};_.Fb=function r5c(a){return JD(a,23)?dfb(this.f,BD(a,23).f):JD(a,146)&&dfb(this.f,BD(a,146).tg())};_.wg=function s5c(){var a;if(JD(this.b,4)){a=fvd(this.b);if(a==null){throw vbb(new Zdb(mse+this.f+"'. "+"Make sure it's type is registered with the "+(fdb(Y3),Y3.k)+jse))}return a}else{return this.b}};_.sg=function t5c(){return this.d};_.tg=function u5c(){return this.f};_.ne=function v5c(){return this.i};_.Hb=function w5c(){return LCb(this.f)};_.Ib=function x5c(){return 'Layout Option: '+this.f};var g1=mdb(Xke,'LayoutOptionData',23);bcb(24,1,{},H5c);var d1=mdb(Xke,'LayoutOptionData/Builder',24);bcb(175,22,{3:1,35:1,22:1,175:1},O5c);var I5c,J5c,K5c,L5c,M5c;var e1=ndb(Xke,'LayoutOptionData/Target',175,CI,Q5c,P5c);var R5c;bcb(277,22,{3:1,35:1,22:1,277:1},a6c);var T5c,U5c,V5c,W5c,X5c,Y5c,Z5c,$5c;var f1=ndb(Xke,'LayoutOptionData/Type',277,CI,c6c,b6c);var d6c;var f6c;var h6c;bcb(110,1,{110:1},I6c,J6c,K6c);_.Fb=function L6c(a){var b;if(a==null||!JD(a,110)){return false}b=BD(a,110);return wtb(this.c,b.c)&&wtb(this.d,b.d)&&wtb(this.b,b.b)&&wtb(this.a,b.a)};_.Hb=function M6c(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.c,this.d,this.b,this.a]))};_.Ib=function N6c(){return 'Rect[x='+this.c+',y='+this.d+',w='+this.b+',h='+this.a+']'};_.a=0;_.b=0;_.c=0;_.d=0;var k1=mdb(pne,'ElkRectangle',110);bcb(8,1,{3:1,4:1,8:1,414:1},d7c,e7c,f7c,g7c);_.Fb=function h7c(a){return T6c(this,a)};_.Hb=function i7c(){return Hdb(this.a)+jeb(Hdb(this.b))};_.Jf=function k7c(b){var c,d,e,f;e=0;while(e<b.length&&j7c((BCb(e,b.length),b.charCodeAt(e)),mne)){++e}c=b.length;while(c>0&&j7c((BCb(c-1,b.length),b.charCodeAt(c-1)),nne)){--c}if(e>=c){throw vbb(new Wdb('The given string does not contain any numbers.'))}f=mfb(b.substr(e,c-e),',|;|\r|\n');if(f.length!=2){throw vbb(new Wdb('Exactly two numbers are expected, '+f.length+' were found.'))}try{this.a=Hcb(ufb(f[0]));this.b=Hcb(ufb(f[1]))}catch(a){a=ubb(a);if(JD(a,127)){d=a;throw vbb(new Wdb(one+d))}else throw vbb(a)}};_.Ib=function m7c(){return '('+this.a+','+this.b+')'};_.a=0;_.b=0;var m1=mdb(pne,'KVector',8);bcb(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},s7c,t7c,u7c);_.Pc=function x7c(){return r7c(this)};_.Jf=function v7c(b){var c,d,e,f,g,h;e=mfb(b,',|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n');Osb(this);try{d=0;g=0;f=0;h=0;while(d<e.length){if(e[d]!=null&&ufb(e[d]).length>0){g%2==0?(f=Hcb(e[d])):(h=Hcb(e[d]));g>0&&g%2!=0&&Dsb(this,new f7c(f,h));++g}++d}}catch(a){a=ubb(a);if(JD(a,127)){c=a;throw vbb(new Wdb('The given string does not match the expected format for vectors.'+c))}else throw vbb(a)}};_.Ib=function y7c(){var a,b,c;a=new Wfb('(');b=Jsb(this,0);while(b.b!=b.d.c){c=BD(Xsb(b),8);Qfb(a,c.a+','+c.b);b.b!=b.d.c&&(a.a+='; ',a)}return (a.a+=')',a).a};var l1=mdb(pne,'KVectorChain',74);bcb(248,22,{3:1,35:1,22:1,248:1},G7c);var z7c,A7c,B7c,C7c,D7c,E7c;var o1=ndb(ose,'Alignment',248,CI,I7c,H7c);var J7c;bcb(979,1,ale,Z7c);_.Qe=function $7c(a){Y7c(a)};var L7c,M7c,N7c,O7c,P7c,Q7c,R7c,S7c,T7c,U7c,V7c,W7c;var q1=mdb(ose,'BoxLayouterOptions',979);bcb(980,1,{},_7c);_.$e=function a8c(){var a;return a=new ged,a};_._e=function b8c(a){};var p1=mdb(ose,'BoxLayouterOptions/BoxFactory',980);bcb(291,22,{3:1,35:1,22:1,291:1},j8c);var c8c,d8c,e8c,f8c,g8c,h8c;var r1=ndb(ose,'ContentAlignment',291,CI,l8c,k8c);var m8c;bcb(684,1,ale,Z9c);_.Qe=function $9c(a){t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,sse),''),'Layout Algorithm'),'Select a specific layout algorithm.'),(_5c(),Z5c)),ZI),pqb((N5c(),L5c)))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tse),''),'Resolved Layout Algorithm'),'Meta data associated with the selected algorithm.'),Y5c),E0),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$pe),''),'Alignment'),'Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm.'),q8c),V5c),o1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,_le),''),'Aspect Ratio'),'The desired aspect ratio of the drawing, that is the quotient of width by height.'),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,use),''),'Bend Points'),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,lqe),''),'Content Alignment'),'Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option.'),x8c),W5c),r1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zpe),''),'Debug Mode'),'Whether additional debug information shall be generated.'),(Bcb(),false)),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,cqe),''),Cle),'Overall direction of edges: horizontal (right / left) or vertical (down / up).'),A8c),V5c),t1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ype),''),'Edge Routing'),'What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline.'),F8c),V5c),v1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Jre),''),'Expand Nodes'),'If active, nodes are expanded to fill the area of their parent.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,tpe),''),'Hierarchy Handling'),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),K8c),V5c),z1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,ame),''),'Padding'),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),g9c),Y5c),j1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ame),''),'Interactive'),'Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xqe),''),'interactive Layout'),'Whether the graph should be changeable interactively and by setting constraints'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dme),''),'Omit Node Micro Layout'),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bme),''),'Port Constraints'),'Defines constraints of the position of the ports of a node.'),u9c),V5c),D1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,uqe),''),'Position'),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),Y5c),m1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vme),''),'Priority'),'Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used.'),X5c),JI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,yme),''),'Randomization Seed'),'Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time).'),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,zme),''),'Separate Connected Components'),'Whether each connected component should be processed separately.'),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,mqe),''),'Junction Points'),'This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order.'),R8c),Y5c),l1),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,pqe),''),'Comment Box'),'Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,qqe),''),'Hypernode'),'Whether the node should be handled as a hypernode.'),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,vse),''),'Label Manager'),"Label managers can shorten labels upon a layout algorithm's request."),Y5c),h1),qqb(L5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,vqe),''),'Margins'),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),T8c),Y5c),i1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Xpe),''),'No Layout'),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),false),T5c),wI),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wse),''),'Scale Factor'),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),U5c),BI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xse),''),'Animate'),'Whether the shift from the old layout to the new computed layout shall be animated.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,yse),''),'Animation Time Factor'),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),meb(100)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,zse),''),'Layout Ancestors'),'Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ase),''),'Maximal Animation Time'),'The maximal time for animations, in milliseconds.'),meb(4000)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Bse),''),'Minimal Animation Time'),'The minimal time for animations, in milliseconds.'),meb(400)),X5c),JI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cse),''),'Progress Bar'),'Whether a progress bar shall be displayed during layout computations.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Dse),''),'Validate Graph'),'Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ese),''),'Validate Options'),'Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user.'),true),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fse),''),'Zoom to Fit'),'Whether the zoom level shall be set to view the whole diagram after layout.'),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,rse),'box'),'Box Layout Mode'),'Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better.'),u8c),V5c),O1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Lpe),zpe),'Comment Comment Spacing'),'Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Mpe),zpe),'Comment Node Spacing'),'Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Zle),zpe),'Components Spacing'),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Npe),zpe),'Edge Spacing'),'Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,xme),zpe),'Edge Label Spacing'),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ope),zpe),'Edge Node Spacing'),'Spacing to be preserved between nodes and edges.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ppe),zpe),'Label Spacing'),'Determines the amount of space to be left between two labels of the same graph element.'),0),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Spe),zpe),'Label Node Spacing'),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Qpe),zpe),'Horizontal spacing between Label and Port'),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Rpe),zpe),'Vertical spacing between Label and Port'),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wme),zpe),'Node Spacing'),'The minimal distance to be preserved between each two nodes.'),20),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tpe),zpe),'Node Self Loop Spacing'),'Spacing to be preserved between a node and its self loops.'),10),U5c),BI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Upe),zpe),'Port Spacing'),'Spacing between pairs of ports of the same node.'),10),U5c),BI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Vpe),zpe),'Individual Spacing'),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),Y5c),i2),qqb(K5c,OC(GC(e1,1),Kie,175,0,[I5c,M5c,J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,wqe),zpe),'Additional Port Space'),'Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border.'),W9c),Y5c),i1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,tqe),Jse),'Layout Partition'),'Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction).'),X5c),JI),qqb(L5c,OC(GC(e1,1),Kie,175,0,[K5c])))));o4c(a,tqe,sqe,k9c);t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,sqe),Jse),'Layout Partitioning'),'Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle.'),i9c),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,dqe),Kse),'Node Label Padding'),'Define padding for node labels that are placed inside of a node.'),V8c),Y5c),j1),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Gme),Kse),'Node Label Placement'),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),X8c),W5c),B1),qqb(K5c,OC(GC(e1,1),Kie,175,0,[J5c])))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,gqe),Lse),'Port Alignment'),'Defines the default port distribution for a node. May be overridden for each side individually.'),m9c),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,hqe),Lse),'Port Alignment (North)'),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,iqe),Lse),'Port Alignment (South)'),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,jqe),Lse),'Port Alignment (West)'),"Defines how ports on the western side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,kqe),Lse),'Port Alignment (East)'),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),V5c),C1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Fme),Mse),'Node Size Constraints'),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),Z8c),W5c),I1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Eme),Mse),'Node Size Options'),'Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications.'),c9c),W5c),J1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Tme),Mse),'Node Size Minimum'),'The minimal size to which a node can be reduced.'),a9c),Y5c),m1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,bqe),Mse),'Fixed Graph Size'),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),false),T5c),wI),pqb(L5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,nqe),Jpe),'Edge Label Placement'),'Gives a hint on where to put edge labels.'),D8c),V5c),u1),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Cme),Jpe),'Inline Edge Labels'),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),false),T5c),wI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Gse),'font'),'Font Name'),'Font name used for a label.'),Z5c),ZI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Hse),'font'),'Font Size'),'Font size used for a label.'),X5c),JI),pqb(J5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,rqe),Nse),'Port Anchor Offset'),'The offset to the port position where connections shall be attached.'),Y5c),m1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,oqe),Nse),'Port Index'),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),X5c),JI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ype),Nse),'Port Side'),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),B9c),V5c),F1),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c,Wpe),Nse),'Port Border Offset'),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),U5c),BI),pqb(M5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Hme),Ose),'Port Label Placement'),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),y9c),W5c),E1),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,eqe),Ose),'Port Labels Next to Port'),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,fqe),Ose),'Treat Port Labels as Group'),'If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port.'),true),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,_pe),Pse),'Activate Inside Self Loops'),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),false),T5c),wI),pqb(K5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,aqe),Pse),'Inside Self Loop'),'Whether a self loop should be routed inside a node instead of around that node.'),false),T5c),wI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,$le),'edge'),'Edge Thickness'),'The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it.'),1),U5c),BI),pqb(I5c))));t4c(a,new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c,Ise),'edge'),'Edge Type'),'The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations.'),H8c),V5c),w1),pqb(I5c))));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sne),'Layered'),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.orthogonal'),'Orthogonal'),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,ume),'Force'),'Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.circle'),'Circle'),'Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,bre),'Tree'),'Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,'org.eclipse.elk.planar'),'Planar'),'Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.')));s4c(a,new W3c(b4c(d4c(c4c(new e4c,sre),'Radial'),'Radial layout algorithms usually position the nodes of the graph on concentric circles.')));$ad((new _ad,a));Y7c((new Z7c,a));jdd((new kdd,a))};var o8c,p8c,q8c,r8c,s8c,t8c,u8c,v8c,w8c,x8c,y8c,z8c,A8c,B8c,C8c,D8c,E8c,F8c,G8c,H8c,I8c,J8c,K8c,L8c,M8c,N8c,O8c,P8c,Q8c,R8c,S8c,T8c,U8c,V8c,W8c,X8c,Y8c,Z8c,$8c,_8c,a9c,b9c,c9c,d9c,e9c,f9c,g9c,h9c,i9c,j9c,k9c,l9c,m9c,n9c,o9c,p9c,q9c,r9c,s9c,t9c,u9c,v9c,w9c,x9c,y9c,z9c,A9c,B9c,C9c,D9c,E9c,F9c,G9c,H9c,I9c,J9c,K9c,L9c,M9c,N9c,O9c,P9c,Q9c,R9c,S9c,T9c,U9c,V9c,W9c,X9c;var s1=mdb(ose,'CoreOptions',684);bcb(103,22,{3:1,35:1,22:1,103:1},iad);var _9c,aad,bad,cad,dad;var t1=ndb(ose,Cle,103,CI,kad,jad);var lad;bcb(272,22,{3:1,35:1,22:1,272:1},rad);var nad,oad,pad;var u1=ndb(ose,'EdgeLabelPlacement',272,CI,tad,sad);var uad;bcb(218,22,{3:1,35:1,22:1,218:1},Bad);var wad,xad,yad,zad;var v1=ndb(ose,'EdgeRouting',218,CI,Dad,Cad);var Ead;bcb(312,22,{3:1,35:1,22:1,312:1},Nad);var Gad,Had,Iad,Jad,Kad,Lad;var w1=ndb(ose,'EdgeType',312,CI,Pad,Oad);var Qad;bcb(977,1,ale,_ad);_.Qe=function abd(a){$ad(a)};var Sad,Tad,Uad,Vad,Wad,Xad,Yad;var y1=mdb(ose,'FixedLayouterOptions',977);bcb(978,1,{},bbd);_.$e=function cbd(){var a;return a=new Zfd,a};_._e=function dbd(a){};var x1=mdb(ose,'FixedLayouterOptions/FixedFactory',978);bcb(334,22,{3:1,35:1,22:1,334:1},ibd);var ebd,fbd,gbd;var z1=ndb(ose,'HierarchyHandling',334,CI,kbd,jbd);var lbd;bcb(285,22,{3:1,35:1,22:1,285:1},tbd);var nbd,obd,pbd,qbd;var A1=ndb(ose,'LabelSide',285,CI,vbd,ubd);var wbd;bcb(93,22,{3:1,35:1,22:1,93:1},Ibd);var ybd,zbd,Abd,Bbd,Cbd,Dbd,Ebd,Fbd,Gbd;var B1=ndb(ose,'NodeLabelPlacement',93,CI,Lbd,Kbd);var Mbd;bcb(249,22,{3:1,35:1,22:1,249:1},Ubd);var Obd,Pbd,Qbd,Rbd,Sbd;var C1=ndb(ose,'PortAlignment',249,CI,Wbd,Vbd);var Xbd;bcb(98,22,{3:1,35:1,22:1,98:1},gcd);var Zbd,$bd,_bd,acd,bcd,ccd;var D1=ndb(ose,'PortConstraints',98,CI,icd,hcd);var jcd;bcb(273,22,{3:1,35:1,22:1,273:1},scd);var lcd,mcd,ncd,ocd,pcd,qcd;var E1=ndb(ose,'PortLabelPlacement',273,CI,wcd,vcd);var xcd;bcb(61,22,{3:1,35:1,22:1,61:1},Ycd);var zcd,Acd,Bcd,Ccd,Dcd,Ecd,Fcd,Gcd,Hcd,Icd,Jcd,Kcd,Lcd,Mcd,Ncd,Ocd,Pcd,Qcd,Rcd,Scd,Tcd;var F1=ndb(ose,'PortSide',61,CI,_cd,$cd);var bdd;bcb(981,1,ale,kdd);_.Qe=function ldd(a){jdd(a)};var ddd,edd,fdd,gdd,hdd;var H1=mdb(ose,'RandomLayouterOptions',981);bcb(982,1,{},mdd);_.$e=function ndd(){var a;return a=new Mgd,a};_._e=function odd(a){};var G1=mdb(ose,'RandomLayouterOptions/RandomFactory',982);bcb(374,22,{3:1,35:1,22:1,374:1},udd);var pdd,qdd,rdd,sdd;var I1=ndb(ose,'SizeConstraint',374,CI,wdd,vdd);var xdd;bcb(259,22,{3:1,35:1,22:1,259:1},Jdd);var zdd,Add,Bdd,Cdd,Ddd,Edd,Fdd,Gdd,Hdd;var J1=ndb(ose,'SizeOptions',259,CI,Ldd,Kdd);var Mdd;bcb(370,1,{1949:1},Zdd);_.b=false;_.c=0;_.d=-1;_.e=null;_.f=null;_.g=-1;_.j=false;_.k=false;_.n=false;_.o=0;_.q=0;_.r=0;var L1=mdb(yqe,'BasicProgressMonitor',370);bcb(972,209,Mle,ged);_.Ze=function ked(a,b){var c,d,e,f,g,h,i,j,k;Odd(b,'Box layout',2);e=Gdb(ED(hkd(a,(X7c(),W7c))));f=BD(hkd(a,T7c),116);c=Ccb(DD(hkd(a,O7c)));d=Ccb(DD(hkd(a,P7c)));switch(BD(hkd(a,M7c),311).g){case 0:g=(h=new Tkb((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a)),mmb(),Okb(h,new med(d)),h);i=rfd(a);j=ED(hkd(a,L7c));(j==null||(uCb(j),j)<=0)&&(j=1.3);k=ded(g,e,f,i.a,i.b,c,(uCb(j),j));Afd(a,k.a,k.b,false,true);break;default:eed(a,e,f,c);}Qdd(b)};var S1=mdb(yqe,'BoxLayoutProvider',972);bcb(973,1,Dke,med);_.ue=function ned(a,b){return led(this,BD(a,33),BD(b,33))};_.Fb=function oed(a){return this===a};_.ve=function ped(){return new tpb(this)};_.a=false;var M1=mdb(yqe,'BoxLayoutProvider/1',973);bcb(157,1,{157:1},wed,xed);_.Ib=function yed(){return this.c?_od(this.c):Fe(this.b)};var N1=mdb(yqe,'BoxLayoutProvider/Group',157);bcb(311,22,{3:1,35:1,22:1,311:1},Eed);var zed,Aed,Bed,Ced;var O1=ndb(yqe,'BoxLayoutProvider/PackingMode',311,CI,Ged,Fed);var Hed;bcb(974,1,Dke,Jed);_.ue=function Ked(a,b){return hed(BD(a,157),BD(b,157))};_.Fb=function Led(a){return this===a};_.ve=function Med(){return new tpb(this)};var P1=mdb(yqe,'BoxLayoutProvider/lambda$0$Type',974);bcb(975,1,Dke,Ned);_.ue=function Oed(a,b){return ied(BD(a,157),BD(b,157))};_.Fb=function Ped(a){return this===a};_.ve=function Qed(){return new tpb(this)};var Q1=mdb(yqe,'BoxLayoutProvider/lambda$1$Type',975);bcb(976,1,Dke,Red);_.ue=function Sed(a,b){return jed(BD(a,157),BD(b,157))};_.Fb=function Ted(a){return this===a};_.ve=function Ued(){return new tpb(this)};var R1=mdb(yqe,'BoxLayoutProvider/lambda$2$Type',976);bcb(1365,1,{831:1},Ved);_.qg=function Wed(a,b){return Vyc(),!JD(b,160)||h2c((Y1c(),X1c,BD(a,160)),b)};var T1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type',1365);bcb(1366,1,qie,Xed);_.td=function Yed(a){Yyc(this.a,BD(a,146))};var U1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type',1366);bcb(1367,1,qie,Zed);_.td=function $ed(a){BD(a,94);Vyc()};var V1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type',1367);bcb(1371,1,qie,_ed);_.td=function afd(a){Zyc(this.a,BD(a,94))};var W1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type',1371);bcb(1369,1,Oie,bfd);_.Mb=function cfd(a){return $yc(this.a,this.b,BD(a,146))};var X1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type',1369);bcb(1368,1,Oie,dfd);_.Mb=function efd(a){return azc(this.a,this.b,BD(a,831))};var Y1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type',1368);bcb(1370,1,qie,ffd);_.td=function gfd(a){_yc(this.a,this.b,BD(a,146))};var Z1=mdb(yqe,'ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type',1370);bcb(935,1,{},Hfd);_.Kb=function Ifd(a){return Gfd(a)};_.Fb=function Jfd(a){return this===a};var _1=mdb(yqe,'ElkUtil/lambda$0$Type',935);bcb(936,1,qie,Kfd);_.td=function Lfd(a){ufd(this.a,this.b,BD(a,79))};_.a=0;_.b=0;var a2=mdb(yqe,'ElkUtil/lambda$1$Type',936);bcb(937,1,qie,Mfd);_.td=function Nfd(a){vfd(this.a,this.b,BD(a,202))};_.a=0;_.b=0;var b2=mdb(yqe,'ElkUtil/lambda$2$Type',937);bcb(938,1,qie,Ofd);_.td=function Pfd(a){wfd(this.a,this.b,BD(a,137))};_.a=0;_.b=0;var c2=mdb(yqe,'ElkUtil/lambda$3$Type',938);bcb(939,1,qie,Qfd);_.td=function Rfd(a){xfd(this.a,BD(a,469))};var d2=mdb(yqe,'ElkUtil/lambda$4$Type',939);bcb(342,1,{35:1,342:1},Tfd);_.wd=function Ufd(a){return Sfd(this,BD(a,236))};_.Fb=function Vfd(a){var b;if(JD(a,342)){b=BD(a,342);return this.a==b.a}return false};_.Hb=function Wfd(){return QD(this.a)};_.Ib=function Xfd(){return this.a+' (exclusive)'};_.a=0;var e2=mdb(yqe,'ExclusiveBounds/ExclusiveLowerBound',342);bcb(1138,209,Mle,Zfd);_.Ze=function $fd(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;Odd(b,'Fixed Layout',1);f=BD(hkd(a,(Y9c(),E8c)),218);l=0;m=0;for(s=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));s.e!=s.i.gc();){q=BD(Dyd(s),33);B=BD(hkd(q,(Zad(),Yad)),8);if(B){bld(q,B.a,B.b);if(BD(hkd(q,Tad),174).Hc((tdd(),pdd))){n=BD(hkd(q,Vad),8);n.a>0&&n.b>0&&Afd(q,n.a,n.b,true,true)}}l=$wnd.Math.max(l,q.i+q.g);m=$wnd.Math.max(m,q.j+q.f);for(j=new Fyd((!q.n&&(q.n=new cUd(D2,q,1,7)),q.n));j.e!=j.i.gc();){h=BD(Dyd(j),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,q.i+h.i+h.g);m=$wnd.Math.max(m,q.j+h.j+h.f)}for(v=new Fyd((!q.c&&(q.c=new cUd(F2,q,9,9)),q.c));v.e!=v.i.gc();){u=BD(Dyd(v),118);B=BD(hkd(u,Yad),8);!!B&&bld(u,B.a,B.b);w=q.i+u.i;A=q.j+u.j;l=$wnd.Math.max(l,w+u.g);m=$wnd.Math.max(m,A+u.f);for(i=new Fyd((!u.n&&(u.n=new cUd(D2,u,1,7)),u.n));i.e!=i.i.gc();){h=BD(Dyd(i),137);B=BD(hkd(h,Yad),8);!!B&&bld(h,B.a,B.b);l=$wnd.Math.max(l,w+h.i+h.g);m=$wnd.Math.max(m,A+h.j+h.f)}}for(e=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(e);){c=BD(Rr(e),79);k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}for(d=new Sr(ur($sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);if(Xod(jtd(c))!=a){k=Yfd(c);l=$wnd.Math.max(l,k.a);m=$wnd.Math.max(m,k.b)}}}if(f==(Aad(),wad)){for(r=new Fyd((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a));r.e!=r.i.gc();){q=BD(Dyd(r),33);for(d=new Sr(ur(_sd(q).a.Kc(),new Sq));Qr(d);){c=BD(Rr(d),79);g=pfd(c);g.b==0?jkd(c,Q8c,null):jkd(c,Q8c,g)}}}if(!Ccb(DD(hkd(a,(Zad(),Uad))))){t=BD(hkd(a,Wad),116);p=l+t.b+t.c;o=m+t.d+t.a;Afd(a,p,o,true,true)}Qdd(b)};var f2=mdb(yqe,'FixedLayoutProvider',1138);bcb(373,134,{3:1,414:1,373:1,94:1,134:1},_fd,agd);_.Jf=function dgd(b){var c,d,e,f,g,h,i,j,k;if(!b){return}try{j=mfb(b,';,;');for(g=j,h=0,i=g.length;h<i;++h){f=g[h];d=mfb(f,'\\:');e=k4c(n4c(),d[0]);if(!e){throw vbb(new Wdb('Invalid option id: '+d[0]))}k=o5c(e,d[1]);if(k==null){throw vbb(new Wdb('Invalid option value: '+d[1]))}k==null?(!this.q&&(this.q=new Lqb),Thb(this.q,e)):(!this.q&&(this.q=new Lqb),Rhb(this.q,e,k))}}catch(a){a=ubb(a);if(JD(a,102)){c=a;throw vbb(new Xdb(c))}else throw vbb(a)}};_.Ib=function egd(){var a;a=GD(GAb(NAb((!this.q?(mmb(),mmb(),kmb):this.q).vc().Oc(),new fgd),Ayb(new pzb,new nzb,new Zyb,new _yb,OC(GC(xL,1),Kie,132,0,[]))));return a};var i2=mdb(yqe,'IndividualSpacings',373);bcb(971,1,{},fgd);_.Kb=function ggd(a){return cgd(BD(a,42))};var h2=mdb(yqe,'IndividualSpacings/lambda$0$Type',971);bcb(709,1,{},jgd);_.c=0;var j2=mdb(yqe,'InstancePool',709);bcb(1275,1,{},kgd);var l2=mdb(yqe,'LoggedGraph',1275);bcb(396,22,{3:1,35:1,22:1,396:1},qgd);var lgd,mgd,ngd,ogd;var k2=ndb(yqe,'LoggedGraph/Type',396,CI,sgd,rgd);var tgd;bcb(46,1,{20:1,46:1},vgd);_.Jc=function xgd(a){reb(this,a)};_.Fb=function wgd(a){var b,c,d;if(JD(a,46)){c=BD(a,46);b=this.a==null?c.a==null:pb(this.a,c.a);d=this.b==null?c.b==null:pb(this.b,c.b);return b&&d}else{return false}};_.Hb=function ygd(){var a,b,c,d,e,f;c=this.a==null?0:tb(this.a);a=c&aje;b=c&-65536;f=this.b==null?0:tb(this.b);d=f&aje;e=f&-65536;return a^e>>16&aje|b^d<<16};_.Kc=function zgd(){return new Bgd(this)};_.Ib=function Agd(){return this.a==null&&this.b==null?'pair(null,null)':this.a==null?'pair(null,'+fcb(this.b)+')':this.b==null?'pair('+fcb(this.a)+',null)':'pair('+fcb(this.a)+','+fcb(this.b)+')'};var n2=mdb(yqe,'Pair',46);bcb(983,1,aie,Bgd);_.Nb=function Cgd(a){Rrb(this,a)};_.Ob=function Dgd(){return !this.c&&(!this.b&&this.a.a!=null||this.a.b!=null)};_.Pb=function Egd(){if(!this.c&&!this.b&&this.a.a!=null){this.b=true;return this.a.a}else if(!this.c&&this.a.b!=null){this.c=true;return this.a.b}throw vbb(new utb)};_.Qb=function Fgd(){this.c&&this.a.b!=null?(this.a.b=null):this.b&&this.a.a!=null&&(this.a.a=null);throw vbb(new Ydb)};_.b=false;_.c=false;var m2=mdb(yqe,'Pair/1',983);bcb(448,1,{448:1},Ggd);_.Fb=function Hgd(a){return wtb(this.a,BD(a,448).a)&&wtb(this.c,BD(a,448).c)&&wtb(this.d,BD(a,448).d)&&wtb(this.b,BD(a,448).b)};_.Hb=function Igd(){return Hlb(OC(GC(SI,1),Uhe,1,5,[this.a,this.c,this.d,this.b]))};_.Ib=function Jgd(){return '('+this.a+She+this.c+She+this.d+She+this.b+')'};var o2=mdb(yqe,'Quadruple',448);bcb(1126,209,Mle,Mgd);_.Ze=function Ngd(a,b){var c,d,e,f,g;Odd(b,'Random Layout',1);if((!a.a&&(a.a=new cUd(E2,a,10,11)),a.a).i==0){Qdd(b);return}f=BD(hkd(a,(idd(),gdd)),19);!!f&&f.a!=0?(e=new Hub(f.a)):(e=new Gub);c=Gdb(ED(hkd(a,ddd)));g=Gdb(ED(hkd(a,hdd)));d=BD(hkd(a,edd),116);Lgd(a,e,c,g,d);Qdd(b)};var p2=mdb(yqe,'RandomLayoutProvider',1126);var Ogd;bcb(553,1,{});_.qf=function Sgd(){return new f7c(this.f.i,this.f.j)};_.We=function Tgd(a){if(Jsd(a,(Y9c(),s9c))){return hkd(this.f,Qgd)}return hkd(this.f,a)};_.rf=function Ugd(){return new f7c(this.f.g,this.f.f)};_.sf=function Vgd(){return this.g};_.Xe=function Wgd(a){return ikd(this.f,a)};_.tf=function Xgd(a){dld(this.f,a.a);eld(this.f,a.b)};_.uf=function Ygd(a){cld(this.f,a.a);ald(this.f,a.b)};_.vf=function Zgd(a){this.g=a};_.g=0;var Qgd;var q2=mdb(Use,'ElkGraphAdapters/AbstractElkGraphElementAdapter',553);bcb(554,1,{839:1},$gd);_.wf=function _gd(){var a,b;if(!this.b){this.b=Qu(Kkd(this.a).i);for(b=new Fyd(Kkd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),137);Ekb(this.b,new dhd(a))}}return this.b};_.b=null;var r2=mdb(Use,'ElkGraphAdapters/ElkEdgeAdapter',554);bcb(301,553,{},bhd);_.xf=function chd(){return ahd(this)};_.a=null;var s2=mdb(Use,'ElkGraphAdapters/ElkGraphAdapter',301);bcb(630,553,{181:1},dhd);var t2=mdb(Use,'ElkGraphAdapters/ElkLabelAdapter',630);bcb(629,553,{680:1},hhd);_.wf=function khd(){return ehd(this)};_.Af=function lhd(){var a;return a=BD(hkd(this.f,(Y9c(),S8c)),142),!a&&(a=new H_b),a};_.Cf=function nhd(){return fhd(this)};_.Ef=function phd(a){var b;b=new K_b(a);jkd(this.f,(Y9c(),S8c),b)};_.Ff=function qhd(a){jkd(this.f,(Y9c(),f9c),new r0b(a))};_.yf=function ihd(){return this.d};_.zf=function jhd(){var a,b;if(!this.a){this.a=new Rkb;for(b=new Sr(ur($sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function mhd(){var a,b;if(!this.c){this.c=new Rkb;for(b=new Sr(ur(_sd(BD(this.f,33)).a.Kc(),new Sq));Qr(b);){a=BD(Rr(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Df=function ohd(){return Vod(BD(this.f,33)).i!=0||Ccb(DD(BD(this.f,33).We((Y9c(),M8c))))};_.Gf=function rhd(){ghd(this,(Pgd(),Ogd))};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;var u2=mdb(Use,'ElkGraphAdapters/ElkNodeAdapter',629);bcb(1266,553,{838:1},thd);_.wf=function vhd(){return shd(this)};_.zf=function uhd(){var a,b;if(!this.a){this.a=Pu(BD(this.f,118).xg().i);for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.a,new $gd(a))}}return this.a};_.Bf=function whd(){var a,b;if(!this.c){this.c=Pu(BD(this.f,118).yg().i);for(b=new Fyd(BD(this.f,118).yg());b.e!=b.i.gc();){a=BD(Dyd(b),79);Ekb(this.c,new $gd(a))}}return this.c};_.Hf=function xhd(){return BD(BD(this.f,118).We((Y9c(),A9c)),61)};_.If=function yhd(){var a,b,c,d,e,f,g,h;d=mpd(BD(this.f,118));for(c=new Fyd(BD(this.f,118).yg());c.e!=c.i.gc();){a=BD(Dyd(c),79);for(h=new Fyd((!a.c&&(a.c=new y5d(z2,a,5,8)),a.c));h.e!=h.i.gc();){g=BD(Dyd(h),82);if(ntd(atd(g),d)){return true}else if(atd(g)==d&&Ccb(DD(hkd(a,(Y9c(),N8c))))){return true}}}for(b=new Fyd(BD(this.f,118).xg());b.e!=b.i.gc();){a=BD(Dyd(b),79);for(f=new Fyd((!a.b&&(a.b=new y5d(z2,a,4,7)),a.b));f.e!=f.i.gc();){e=BD(Dyd(f),82);if(ntd(atd(e),d)){return true}}}return false};_.a=null;_.b=null;_.c=null;var v2=mdb(Use,'ElkGraphAdapters/ElkPortAdapter',1266);bcb(1267,1,Dke,Ahd);_.ue=function Bhd(a,b){return zhd(BD(a,118),BD(b,118))};_.Fb=function Chd(a){return this===a};_.ve=function Dhd(){return new tpb(this)};var w2=mdb(Use,'ElkGraphAdapters/PortComparator',1267);var m5=odb(Vse,'EObject');var x2=odb(Wse,Xse);var y2=odb(Wse,Yse);var C2=odb(Wse,Zse);var G2=odb(Wse,'ElkShape');var z2=odb(Wse,$se);var B2=odb(Wse,_se);var A2=odb(Wse,ate);var k5=odb(Vse,bte);var i5=odb(Vse,'EFactory');var Ehd;var l5=odb(Vse,cte);var o5=odb(Vse,'EPackage');var Ghd;var Ihd,Jhd,Khd,Lhd,Mhd,Nhd,Ohd,Phd,Qhd,Rhd,Shd;var D2=odb(Wse,dte);var E2=odb(Wse,ete);var F2=odb(Wse,fte);bcb(90,1,gte);_.Jg=function Vhd(){this.Kg();return null};_.Kg=function Whd(){return null};_.Lg=function Xhd(){return this.Kg(),false};_.Mg=function Yhd(){return false};_.Ng=function Zhd(a){Uhd(this,a)};var b4=mdb(hte,'BasicNotifierImpl',90);bcb(97,90,pte);_.nh=function fjd(){return oid(this)};_.Og=function Fid(a,b){return a};_.Pg=function Gid(){throw vbb(new bgb)};_.Qg=function Hid(a){var b;return b=zUd(BD(XKd(this.Tg(),this.Vg()),18)),this.eh().ih(this,b.n,b.f,a)};_.Rg=function Iid(a,b){throw vbb(new bgb)};_.Sg=function Jid(a,b,c){return _hd(this,a,b,c)};_.Tg=function Kid(){var a;if(this.Pg()){a=this.Pg().ck();if(a){return a}}return this.zh()};_.Ug=function Lid(){return aid(this)};_.Vg=function Mid(){throw vbb(new bgb)};_.Wg=function Oid(){var a,b;b=this.ph().dk();!b&&this.Pg().ik(b=(nRd(),a=pNd(TKd(this.Tg())),a==null?mRd:new qRd(this,a)));return b};_.Xg=function Qid(a,b){return a};_.Yg=function Rid(a){var b;b=a.Gj();return !b?bLd(this.Tg(),a):a.aj()};_.Zg=function Sid(){var a;a=this.Pg();return !a?null:a.fk()};_.$g=function Tid(){return !this.Pg()?null:this.Pg().ck()};_._g=function Uid(a,b,c){return fid(this,a,b,c)};_.ah=function Vid(a){return gid(this,a)};_.bh=function Wid(a,b){return hid(this,a,b)};_.dh=function Xid(){var a;a=this.Pg();return !!a&&a.gk()};_.eh=function Yid(){throw vbb(new bgb)};_.fh=function Zid(){return jid(this)};_.gh=function $id(a,b,c,d){return kid(this,a,b,d)};_.hh=function _id(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Qj(this,this.yh(),b-this.Ah(),a,c)};_.ih=function ajd(a,b,c,d){return lid(this,a,b,d)};_.jh=function bjd(a,b,c){var d;return d=BD(XKd(this.Tg(),b),66),d.Nj().Rj(this,this.yh(),b-this.Ah(),a,c)};_.kh=function cjd(){return !!this.Pg()&&!!this.Pg().ek()};_.lh=function djd(a){return mid(this,a)};_.mh=function ejd(a){return nid(this,a)};_.oh=function gjd(a){return rid(this,a)};_.ph=function hjd(){throw vbb(new bgb)};_.qh=function ijd(){return !this.Pg()?null:this.Pg().ek()};_.rh=function jjd(){return jid(this)};_.sh=function kjd(a,b){yid(this,a,b)};_.th=function ljd(a){this.ph().hk(a)};_.uh=function mjd(a){this.ph().kk(a)};_.vh=function njd(a){this.ph().jk(a)};_.wh=function ojd(a,b){var c,d,e,f;f=this.Zg();if(!!f&&!!a){b=Txd(f.Vk(),this,b);f.Zk(this)}d=this.eh();if(d){if((Nid(this,this.eh(),this.Vg()).Bb&Tje)!=0){e=d.fh();!!e&&(!a?e.Yk(this):!f&&e.Zk(this))}else{b=(c=this.Vg(),c>=0?this.Qg(b):this.eh().ih(this,-1-c,null,b));b=this.Sg(null,-1,b)}}this.uh(a);return b};_.xh=function pjd(a){var b,c,d,e,f,g,h,i;c=this.Tg();f=bLd(c,a);b=this.Ah();if(f>=b){return BD(a,66).Nj().Uj(this,this.yh(),f-b)}else if(f<=-1){g=e1d((O6d(),M6d),c,a);if(g){Q6d();BD(g,66).Oj()||(g=_1d(q1d(M6d,g)));e=(d=this.Yg(g),BD(d>=0?this._g(d,true,true):sid(this,g,true),153));i=g.Zj();if(i>1||i==-1){return BD(BD(e,215).hl(a,false),76)}}else{throw vbb(new Wdb(ite+a.ne()+lte))}}else if(a.$j()){return d=this.Yg(a),BD(d>=0?this._g(d,false,true):sid(this,a,false),76)}h=new nGd(this,a);return h};_.yh=function qjd(){return Aid(this)};_.zh=function rjd(){return (NFd(),MFd).S};_.Ah=function sjd(){return aLd(this.zh())};_.Bh=function tjd(a){Cid(this,a)};_.Ib=function ujd(){return Eid(this)};var B5=mdb(qte,'BasicEObjectImpl',97);var zFd;bcb(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1});_.Ch=function Djd(a){var b;b=xjd(this);return b[a]};_.Dh=function Ejd(a,b){var c;c=xjd(this);NC(c,a,b)};_.Eh=function Fjd(a){var b;b=xjd(this);NC(b,a,null)};_.Jg=function Gjd(){return BD(Ajd(this,4),126)};_.Kg=function Hjd(){throw vbb(new bgb)};_.Lg=function Ijd(){return (this.Db&4)!=0};_.Pg=function Jjd(){throw vbb(new bgb)};_.Fh=function Kjd(a){Cjd(this,2,a)};_.Rg=function Ljd(a,b){this.Db=b<<16|this.Db&255;this.Fh(a)};_.Tg=function Mjd(){return wjd(this)};_.Vg=function Njd(){return this.Db>>16};_.Wg=function Ojd(){var a,b;return nRd(),b=pNd(TKd((a=BD(Ajd(this,16),26),!a?this.zh():a))),b==null?(null,mRd):new qRd(this,b)};_.Mg=function Pjd(){return (this.Db&1)==0};_.Zg=function Qjd(){return BD(Ajd(this,128),1935)};_.$g=function Rjd(){return BD(Ajd(this,16),26)};_.dh=function Sjd(){return (this.Db&32)!=0};_.eh=function Tjd(){return BD(Ajd(this,2),49)};_.kh=function Ujd(){return (this.Db&64)!=0};_.ph=function Vjd(){throw vbb(new bgb)};_.qh=function Wjd(){return BD(Ajd(this,64),281)};_.th=function Xjd(a){Cjd(this,16,a)};_.uh=function Yjd(a){Cjd(this,128,a)};_.vh=function Zjd(a){Cjd(this,64,a)};_.yh=function $jd(){return yjd(this)};_.Db=0;var s8=mdb(qte,'MinimalEObjectImpl',114);bcb(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_.Fh=function _jd(a){this.Cb=a};_.eh=function akd(){return this.Cb};var r8=mdb(qte,'MinimalEObjectImpl/Container',115);bcb(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function kkd(a,b,c){return bkd(this,a,b,c)};_.jh=function lkd(a,b,c){return ckd(this,a,b,c)};_.lh=function mkd(a){return dkd(this,a)};_.sh=function nkd(a,b){ekd(this,a,b)};_.zh=function okd(){return Thd(),Shd};_.Bh=function pkd(a){fkd(this,a)};_.Ve=function qkd(){return gkd(this)};_.We=function rkd(a){return hkd(this,a)};_.Xe=function skd(a){return ikd(this,a)};_.Ye=function tkd(a,b){return jkd(this,a,b)};var H2=mdb(rte,'EMapPropertyHolderImpl',1985);bcb(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},xkd);_._g=function ykd(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return fid(this,a,b,c)};_.lh=function zkd(a){switch(a){case 0:return this.a!=0;case 1:return this.b!=0;}return mid(this,a)};_.sh=function Akd(a,b){switch(a){case 0:vkd(this,Edb(ED(b)));return;case 1:wkd(this,Edb(ED(b)));return;}yid(this,a,b)};_.zh=function Bkd(){return Thd(),Ihd};_.Bh=function Ckd(a){switch(a){case 0:vkd(this,0);return;case 1:wkd(this,0);return;}Cid(this,a)};_.Ib=function Dkd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (x: ';Bfb(a,this.a);a.a+=', y: ';Bfb(a,this.b);a.a+=')';return a.a};_.a=0;_.b=0;var I2=mdb(rte,'ElkBendPointImpl',567);bcb(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Nkd(a,b,c){return Ekd(this,a,b,c)};_.hh=function Okd(a,b,c){return Fkd(this,a,b,c)};_.jh=function Pkd(a,b,c){return Gkd(this,a,b,c)};_.lh=function Qkd(a){return Hkd(this,a)};_.sh=function Rkd(a,b){Ikd(this,a,b)};_.zh=function Skd(){return Thd(),Mhd};_.Bh=function Tkd(a){Jkd(this,a)};_.zg=function Ukd(){return this.k};_.Ag=function Vkd(){return Kkd(this)};_.Ib=function Wkd(){return Mkd(this)};_.k=null;var M2=mdb(rte,'ElkGraphElementImpl',723);bcb(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function gld(a,b,c){return Xkd(this,a,b,c)};_.lh=function hld(a){return Ykd(this,a)};_.sh=function ild(a,b){Zkd(this,a,b)};_.zh=function jld(){return Thd(),Rhd};_.Bh=function kld(a){$kd(this,a)};_.Bg=function lld(){return this.f};_.Cg=function mld(){return this.g};_.Dg=function nld(){return this.i};_.Eg=function old(){return this.j};_.Fg=function pld(a,b){_kd(this,a,b)};_.Gg=function qld(a,b){bld(this,a,b)};_.Hg=function rld(a){dld(this,a)};_.Ig=function sld(a){eld(this,a)};_.Ib=function tld(){return fld(this)};_.f=0;_.g=0;_.i=0;_.j=0;var T2=mdb(rte,'ElkShapeImpl',724);bcb(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1});_._g=function Bld(a,b,c){return uld(this,a,b,c)};_.hh=function Cld(a,b,c){return vld(this,a,b,c)};_.jh=function Dld(a,b,c){return wld(this,a,b,c)};_.lh=function Eld(a){return xld(this,a)};_.sh=function Fld(a,b){yld(this,a,b)};_.zh=function Gld(){return Thd(),Jhd};_.Bh=function Hld(a){zld(this,a)};_.xg=function Ild(){return !this.d&&(this.d=new y5d(B2,this,8,5)),this.d};_.yg=function Jld(){return !this.e&&(this.e=new y5d(B2,this,7,4)),this.e};var J2=mdb(rte,'ElkConnectableShapeImpl',725);bcb(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Tld);_.Qg=function Uld(a){return Lld(this,a)};_._g=function Vld(a,b,c){switch(a){case 3:return Mld(this);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b;case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),this.c;case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),this.a;case 7:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1)?false:true;case 8:return Bcb(),Pld(this)?true:false;case 9:return Bcb(),Qld(this)?true:false;case 10:return Bcb(),!this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0)?true:false;}return Ekd(this,a,b,c)};_.hh=function Wld(a,b,c){var d;switch(b){case 3:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Lld(this,c):this.Cb.ih(this,-1-d,null,c)));return Kld(this,BD(a,33),c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Sxd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Sxd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Sxd(this.a,a,c);}return Fkd(this,a,b,c)};_.jh=function Xld(a,b,c){switch(b){case 3:return Kld(this,null,c);case 4:return !this.b&&(this.b=new y5d(z2,this,4,7)),Txd(this.b,a,c);case 5:return !this.c&&(this.c=new y5d(z2,this,5,8)),Txd(this.c,a,c);case 6:return !this.a&&(this.a=new cUd(A2,this,6,6)),Txd(this.a,a,c);}return Gkd(this,a,b,c)};_.lh=function Yld(a){switch(a){case 3:return !!Mld(this);case 4:return !!this.b&&this.b.i!=0;case 5:return !!this.c&&this.c.i!=0;case 6:return !!this.a&&this.a.i!=0;case 7:return !this.b&&(this.b=new y5d(z2,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i<=1));case 8:return Pld(this);case 9:return Qld(this);case 10:return !this.b&&(this.b=new y5d(z2,this,4,7)),this.b.i!=0&&(!this.c&&(this.c=new y5d(z2,this,5,8)),this.c.i!=0);}return Hkd(this,a)};_.sh=function Zld(a,b){switch(a){case 3:Rld(this,BD(b,33));return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);!this.b&&(this.b=new y5d(z2,this,4,7));ytd(this.b,BD(b,14));return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);!this.c&&(this.c=new y5d(z2,this,5,8));ytd(this.c,BD(b,14));return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);!this.a&&(this.a=new cUd(A2,this,6,6));ytd(this.a,BD(b,14));return;}Ikd(this,a,b)};_.zh=function $ld(){return Thd(),Khd};_.Bh=function _ld(a){switch(a){case 3:Rld(this,null);return;case 4:!this.b&&(this.b=new y5d(z2,this,4,7));Uxd(this.b);return;case 5:!this.c&&(this.c=new y5d(z2,this,5,8));Uxd(this.c);return;case 6:!this.a&&(this.a=new cUd(A2,this,6,6));Uxd(this.a);return;}Jkd(this,a)};_.Ib=function amd(){return Sld(this)};var K2=mdb(rte,'ElkEdgeImpl',352);bcb(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},rmd);_.Qg=function smd(a){return cmd(this,a)};_._g=function tmd(a,b,c){switch(a){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return !this.a&&(this.a=new xMd(y2,this,5)),this.a;case 6:return fmd(this);case 7:if(b)return emd(this);return this.i;case 8:if(b)return dmd(this);return this.f;case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),this.g;case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),this.e;case 11:return this.d;}return bkd(this,a,b,c)};_.hh=function umd(a,b,c){var d,e,f;switch(b){case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?cmd(this,c):this.Cb.ih(this,-1-e,null,c)));return bmd(this,BD(a,79),c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Sxd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Sxd(this.e,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(Thd(),Lhd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((Thd(),Lhd)),a,c)};_.jh=function vmd(a,b,c){switch(b){case 5:return !this.a&&(this.a=new xMd(y2,this,5)),Txd(this.a,a,c);case 6:return bmd(this,null,c);case 9:return !this.g&&(this.g=new y5d(A2,this,9,10)),Txd(this.g,a,c);case 10:return !this.e&&(this.e=new y5d(A2,this,10,9)),Txd(this.e,a,c);}return ckd(this,a,b,c)};_.lh=function wmd(a){switch(a){case 1:return this.j!=0;case 2:return this.k!=0;case 3:return this.b!=0;case 4:return this.c!=0;case 5:return !!this.a&&this.a.i!=0;case 6:return !!fmd(this);case 7:return !!this.i;case 8:return !!this.f;case 9:return !!this.g&&this.g.i!=0;case 10:return !!this.e&&this.e.i!=0;case 11:return this.d!=null;}return dkd(this,a)};_.sh=function xmd(a,b){switch(a){case 1:omd(this,Edb(ED(b)));return;case 2:pmd(this,Edb(ED(b)));return;case 3:hmd(this,Edb(ED(b)));return;case 4:imd(this,Edb(ED(b)));return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);!this.a&&(this.a=new xMd(y2,this,5));ytd(this.a,BD(b,14));return;case 6:mmd(this,BD(b,79));return;case 7:lmd(this,BD(b,82));return;case 8:kmd(this,BD(b,82));return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);!this.g&&(this.g=new y5d(A2,this,9,10));ytd(this.g,BD(b,14));return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);!this.e&&(this.e=new y5d(A2,this,10,9));ytd(this.e,BD(b,14));return;case 11:jmd(this,GD(b));return;}ekd(this,a,b)};_.zh=function ymd(){return Thd(),Lhd};_.Bh=function zmd(a){switch(a){case 1:omd(this,0);return;case 2:pmd(this,0);return;case 3:hmd(this,0);return;case 4:imd(this,0);return;case 5:!this.a&&(this.a=new xMd(y2,this,5));Uxd(this.a);return;case 6:mmd(this,null);return;case 7:lmd(this,null);return;case 8:kmd(this,null);return;case 9:!this.g&&(this.g=new y5d(A2,this,9,10));Uxd(this.g);return;case 10:!this.e&&(this.e=new y5d(A2,this,10,9));Uxd(this.e);return;case 11:jmd(this,null);return;}fkd(this,a)};_.Ib=function Amd(){return qmd(this)};_.b=0;_.c=0;_.d=null;_.j=0;_.k=0;var L2=mdb(rte,'ElkEdgeSectionImpl',439);bcb(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_._g=function Emd(a,b,c){var d;if(a==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function Fmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function Gmd(a,b,c){var d,e;if(b==0){return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c)}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function Hmd(a){var b;if(a==0){return !!this.Ab&&this.Ab.i!=0}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.oh=function Imd(a){return Bmd(this,a)};_.sh=function Jmd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.uh=function Kmd(a){Cjd(this,128,a)};_.zh=function Lmd(){return jGd(),ZFd};_.Bh=function Mmd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function Nmd(){this.Bb|=1};_.Hh=function Omd(a){return Dmd(this,a)};_.Bb=0;var f6=mdb(qte,'EModelElementImpl',150);bcb(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},$md);_.Ih=function _md(a,b){return Vmd(this,a,b)};_.Jh=function and(a){var b,c,d,e,f;if(this.a!=bKd(a)||(a.Bb&256)!=0){throw vbb(new Wdb(xte+a.zb+ute))}for(d=_Kd(a);VKd(d.a).i!=0;){c=BD(nOd(d,0,(b=BD(qud(VKd(d.a),0),87),f=b.c,JD(f,88)?BD(f,26):(jGd(),_Fd))),26);if(dKd(c)){e=bKd(c).Nh().Jh(c);BD(e,49).th(a);return e}d=_Kd(c)}return (a.D!=null?a.D:a.B)=='java.util.Map$Entry'?new lHd(a):new _Gd(a)};_.Kh=function bnd(a,b){return Wmd(this,a,b)};_._g=function cnd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.a;}return bid(this,a-aLd((jGd(),WFd)),XKd((d=BD(Ajd(this,16),26),!d?WFd:d),a),b,c)};_.hh=function dnd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 1:!!this.a&&(c=BD(this.a,49).ih(this,4,o5,c));return Tmd(this,BD(a,235),c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Qj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.jh=function end(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 1:return Tmd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),WFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),WFd)),a,c)};_.lh=function fnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return !!this.a;}return cid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};_.sh=function gnd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:Ymd(this,BD(b,235));return;}did(this,a-aLd((jGd(),WFd)),XKd((c=BD(Ajd(this,16),26),!c?WFd:c),a),b)};_.zh=function hnd(){return jGd(),WFd};_.Bh=function ind(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:Ymd(this,null);return;}eid(this,a-aLd((jGd(),WFd)),XKd((b=BD(Ajd(this,16),26),!b?WFd:b),a))};var Pmd,Qmd,Rmd;var d6=mdb(qte,'EFactoryImpl',704);bcb(zte,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},knd);_.Ih=function lnd(a,b){switch(a.yj()){case 12:return BD(b,146).tg();case 13:return fcb(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function mnd(a){var b,c,d,e,f,g,h,i;switch(a.G==-1&&(a.G=(b=bKd(a),b?HLd(b.Mh(),a):-1)),a.G){case 4:return f=new Jod,f;case 6:return g=new apd,g;case 7:return h=new ppd,h;case 8:return d=new Tld,d;case 9:return c=new xkd,c;case 10:return e=new rmd,e;case 11:return i=new Bpd,i;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function nnd(a,b){switch(a.yj()){case 13:case 12:return null;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var N2=mdb(rte,'ElkGraphFactoryImpl',zte);bcb(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1});_.Wg=function rnd(){var a,b;b=(a=BD(Ajd(this,16),26),pNd(TKd(!a?this.zh():a)));return b==null?(nRd(),nRd(),mRd):new GRd(this,b)};_._g=function snd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.ne();}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function tnd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function und(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vnd(){return jGd(),$Fd};_.Bh=function wnd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.ne=function xnd(){return this.zb};_.Lh=function ynd(a){pnd(this,a)};_.Ib=function znd(){return qnd(this)};_.zb=null;var j6=mdb(qte,'ENamedElementImpl',438);bcb(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},eod);_.Qg=function god(a){return Snd(this,a)};_._g=function hod(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb;case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),this.vb;case 7:if(b)return this.Db>>16==7?BD(this.Cb,235):null;return Ind(this);}return bid(this,a-aLd((jGd(),cGd)),XKd((d=BD(Ajd(this,16),26),!d?cGd:d),a),b,c)};_.hh=function iod(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 4:!!this.sb&&(c=BD(this.sb,49).ih(this,1,i5,c));return Jnd(this,BD(a,471),c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Sxd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Sxd(this.vb,a,c);case 7:!!this.Cb&&(c=(e=this.Db>>16,e>=0?Snd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,7,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.jh=function jod(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 4:return Jnd(this,null,c);case 5:return !this.rb&&(this.rb=new jUd(this,d5,this)),Txd(this.rb,a,c);case 6:return !this.vb&&(this.vb=new gUd(o5,this,6,7)),Txd(this.vb,a,c);case 7:return _hd(this,null,7,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),cGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),cGd)),a,c)};_.lh=function kod(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.yb!=null;case 3:return this.xb!=null;case 4:return !!this.sb;case 5:return !!this.rb&&this.rb.i!=0;case 6:return !!this.vb&&this.vb.i!=0;case 7:return !!Ind(this);}return cid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.oh=function lod(a){var b;b=Und(this,a);return b?b:Bmd(this,a)};_.sh=function mod(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:dod(this,GD(b));return;case 3:cod(this,GD(b));return;case 4:bod(this,BD(b,471));return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);!this.rb&&(this.rb=new jUd(this,d5,this));ytd(this.rb,BD(b,14));return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);!this.vb&&(this.vb=new gUd(o5,this,6,7));ytd(this.vb,BD(b,14));return;}did(this,a-aLd((jGd(),cGd)),XKd((c=BD(Ajd(this,16),26),!c?cGd:c),a),b)};_.vh=function nod(a){var b,c;if(!!a&&!!this.rb){for(c=new Fyd(this.rb);c.e!=c.i.gc();){b=Dyd(c);JD(b,351)&&(BD(b,351).w=null)}}Cjd(this,64,a)};_.zh=function ood(){return jGd(),cGd};_.Bh=function pod(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:dod(this,null);return;case 3:cod(this,null);return;case 4:bod(this,null);return;case 5:!this.rb&&(this.rb=new jUd(this,d5,this));Uxd(this.rb);return;case 6:!this.vb&&(this.vb=new gUd(o5,this,6,7));Uxd(this.vb);return;}eid(this,a-aLd((jGd(),cGd)),XKd((b=BD(Ajd(this,16),26),!b?cGd:b),a))};_.Gh=function qod(){Tnd(this)};_.Mh=function rod(){return !this.rb&&(this.rb=new jUd(this,d5,this)),this.rb};_.Nh=function sod(){return this.sb};_.Oh=function tod(){return this.ub};_.Ph=function uod(){return this.xb};_.Qh=function vod(){return this.yb};_.Rh=function wod(a){this.ub=a};_.Ib=function xod(){var a;if((this.Db&64)!=0)return qnd(this);a=new Jfb(qnd(this));a.a+=' (nsURI: ';Efb(a,this.yb);a.a+=', nsPrefix: ';Efb(a,this.xb);a.a+=')';return a.a};_.xb=null;_.yb=null;var And;var t6=mdb(qte,'EPackageImpl',179);bcb(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},Bod);_.q=false;_.r=false;var yod=false;var O2=mdb(rte,'ElkGraphPackageImpl',555);bcb(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Jod);_.Qg=function Kod(a){return Eod(this,a)};_._g=function Lod(a,b,c){switch(a){case 7:return Fod(this);case 8:return this.a;}return Xkd(this,a,b,c)};_.hh=function Mod(a,b,c){var d;switch(b){case 7:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Eod(this,c):this.Cb.ih(this,-1-d,null,c)));return Dod(this,BD(a,160),c);}return Fkd(this,a,b,c)};_.jh=function Nod(a,b,c){if(b==7){return Dod(this,null,c)}return Gkd(this,a,b,c)};_.lh=function Ood(a){switch(a){case 7:return !!Fod(this);case 8:return !dfb('',this.a);}return Ykd(this,a)};_.sh=function Pod(a,b){switch(a){case 7:God(this,BD(b,160));return;case 8:Hod(this,GD(b));return;}Zkd(this,a,b)};_.zh=function Qod(){return Thd(),Nhd};_.Bh=function Rod(a){switch(a){case 7:God(this,null);return;case 8:Hod(this,'');return;}$kd(this,a)};_.Ib=function Sod(){return Iod(this)};_.a='';var P2=mdb(rte,'ElkLabelImpl',354);bcb(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},apd);_.Qg=function bpd(a){return Uod(this,a)};_._g=function cpd(a,b,c){switch(a){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),this.c;case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a;case 11:return Xod(this);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),this.b;case 13:return Bcb(),!this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0?true:false;}return uld(this,a,b,c)};_.hh=function dpd(a,b,c){var d;switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Sxd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Sxd(this.a,a,c);case 11:!!this.Cb&&(c=(d=this.Db>>16,d>=0?Uod(this,c):this.Cb.ih(this,-1-d,null,c)));return Tod(this,BD(a,33),c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Sxd(this.b,a,c);}return vld(this,a,b,c)};_.jh=function epd(a,b,c){switch(b){case 9:return !this.c&&(this.c=new cUd(F2,this,9,9)),Txd(this.c,a,c);case 10:return !this.a&&(this.a=new cUd(E2,this,10,11)),Txd(this.a,a,c);case 11:return Tod(this,null,c);case 12:return !this.b&&(this.b=new cUd(B2,this,12,3)),Txd(this.b,a,c);}return wld(this,a,b,c)};_.lh=function fpd(a){switch(a){case 9:return !!this.c&&this.c.i!=0;case 10:return !!this.a&&this.a.i!=0;case 11:return !!Xod(this);case 12:return !!this.b&&this.b.i!=0;case 13:return !this.a&&(this.a=new cUd(E2,this,10,11)),this.a.i>0;}return xld(this,a)};_.sh=function gpd(a,b){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);!this.c&&(this.c=new cUd(F2,this,9,9));ytd(this.c,BD(b,14));return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);!this.a&&(this.a=new cUd(E2,this,10,11));ytd(this.a,BD(b,14));return;case 11:$od(this,BD(b,33));return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);!this.b&&(this.b=new cUd(B2,this,12,3));ytd(this.b,BD(b,14));return;}yld(this,a,b)};_.zh=function hpd(){return Thd(),Ohd};_.Bh=function ipd(a){switch(a){case 9:!this.c&&(this.c=new cUd(F2,this,9,9));Uxd(this.c);return;case 10:!this.a&&(this.a=new cUd(E2,this,10,11));Uxd(this.a);return;case 11:$od(this,null);return;case 12:!this.b&&(this.b=new cUd(B2,this,12,3));Uxd(this.b);return;}zld(this,a)};_.Ib=function jpd(){return _od(this)};var Q2=mdb(rte,'ElkNodeImpl',239);bcb(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ppd);_.Qg=function qpd(a){return lpd(this,a)};_._g=function rpd(a,b,c){if(a==9){return mpd(this)}return uld(this,a,b,c)};_.hh=function spd(a,b,c){var d;switch(b){case 9:!!this.Cb&&(c=(d=this.Db>>16,d>=0?lpd(this,c):this.Cb.ih(this,-1-d,null,c)));return kpd(this,BD(a,33),c);}return vld(this,a,b,c)};_.jh=function tpd(a,b,c){if(b==9){return kpd(this,null,c)}return wld(this,a,b,c)};_.lh=function upd(a){if(a==9){return !!mpd(this)}return xld(this,a)};_.sh=function vpd(a,b){switch(a){case 9:npd(this,BD(b,33));return;}yld(this,a,b)};_.zh=function wpd(){return Thd(),Phd};_.Bh=function xpd(a){switch(a){case 9:npd(this,null);return;}zld(this,a)};_.Ib=function ypd(){return opd(this)};var R2=mdb(rte,'ElkPortImpl',186);var J4=odb(Tte,'BasicEMap/Entry');bcb(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},Bpd);_.Fb=function Hpd(a){return this===a};_.cd=function Jpd(){return this.b};_.Hb=function Lpd(){return FCb(this)};_.Uh=function Npd(a){zpd(this,BD(a,146))};_._g=function Cpd(a,b,c){switch(a){case 0:return this.b;case 1:return this.c;}return fid(this,a,b,c)};_.lh=function Dpd(a){switch(a){case 0:return !!this.b;case 1:return this.c!=null;}return mid(this,a)};_.sh=function Epd(a,b){switch(a){case 0:zpd(this,BD(b,146));return;case 1:Apd(this,b);return;}yid(this,a,b)};_.zh=function Fpd(){return Thd(),Qhd};_.Bh=function Gpd(a){switch(a){case 0:zpd(this,null);return;case 1:Apd(this,null);return;}Cid(this,a)};_.Sh=function Ipd(){var a;if(this.a==-1){a=this.b;this.a=!a?0:tb(a)}return this.a};_.dd=function Kpd(){return this.c};_.Th=function Mpd(a){this.a=a};_.ed=function Opd(a){var b;b=this.c;Apd(this,a);return b};_.Ib=function Ppd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Ufb;Qfb(Qfb(Qfb(a,this.b?this.b.tg():Xhe),gne),xfb(this.c));return a.a};_.a=-1;_.c=null;var S2=mdb(rte,'ElkPropertyToValueMapEntryImpl',1092);bcb(984,1,{},bqd);var U2=mdb(Wte,'JsonAdapter',984);bcb(210,60,Tie,cqd);var V2=mdb(Wte,'JsonImportException',210);bcb(857,1,{},ird);var J3=mdb(Wte,'JsonImporter',857);bcb(891,1,{},jrd);var W2=mdb(Wte,'JsonImporter/lambda$0$Type',891);bcb(892,1,{},krd);var X2=mdb(Wte,'JsonImporter/lambda$1$Type',892);bcb(900,1,{},lrd);var Y2=mdb(Wte,'JsonImporter/lambda$10$Type',900);bcb(902,1,{},mrd);var Z2=mdb(Wte,'JsonImporter/lambda$11$Type',902);bcb(903,1,{},nrd);var $2=mdb(Wte,'JsonImporter/lambda$12$Type',903);bcb(909,1,{},ord);var _2=mdb(Wte,'JsonImporter/lambda$13$Type',909);bcb(908,1,{},prd);var a3=mdb(Wte,'JsonImporter/lambda$14$Type',908);bcb(904,1,{},qrd);var b3=mdb(Wte,'JsonImporter/lambda$15$Type',904);bcb(905,1,{},rrd);var c3=mdb(Wte,'JsonImporter/lambda$16$Type',905);bcb(906,1,{},srd);var d3=mdb(Wte,'JsonImporter/lambda$17$Type',906);bcb(907,1,{},trd);var e3=mdb(Wte,'JsonImporter/lambda$18$Type',907);bcb(912,1,{},urd);var f3=mdb(Wte,'JsonImporter/lambda$19$Type',912);bcb(893,1,{},vrd);var g3=mdb(Wte,'JsonImporter/lambda$2$Type',893);bcb(910,1,{},wrd);var h3=mdb(Wte,'JsonImporter/lambda$20$Type',910);bcb(911,1,{},xrd);var i3=mdb(Wte,'JsonImporter/lambda$21$Type',911);bcb(915,1,{},yrd);var j3=mdb(Wte,'JsonImporter/lambda$22$Type',915);bcb(913,1,{},zrd);var k3=mdb(Wte,'JsonImporter/lambda$23$Type',913);bcb(914,1,{},Ard);var l3=mdb(Wte,'JsonImporter/lambda$24$Type',914);bcb(917,1,{},Brd);var m3=mdb(Wte,'JsonImporter/lambda$25$Type',917);bcb(916,1,{},Crd);var n3=mdb(Wte,'JsonImporter/lambda$26$Type',916);bcb(918,1,qie,Drd);_.td=function Erd(a){Bqd(this.b,this.a,GD(a))};var o3=mdb(Wte,'JsonImporter/lambda$27$Type',918);bcb(919,1,qie,Frd);_.td=function Grd(a){Cqd(this.b,this.a,GD(a))};var p3=mdb(Wte,'JsonImporter/lambda$28$Type',919);bcb(920,1,{},Hrd);var q3=mdb(Wte,'JsonImporter/lambda$29$Type',920);bcb(896,1,{},Ird);var r3=mdb(Wte,'JsonImporter/lambda$3$Type',896);bcb(921,1,{},Jrd);var s3=mdb(Wte,'JsonImporter/lambda$30$Type',921);bcb(922,1,{},Krd);var t3=mdb(Wte,'JsonImporter/lambda$31$Type',922);bcb(923,1,{},Lrd);var u3=mdb(Wte,'JsonImporter/lambda$32$Type',923);bcb(924,1,{},Mrd);var v3=mdb(Wte,'JsonImporter/lambda$33$Type',924);bcb(925,1,{},Nrd);var w3=mdb(Wte,'JsonImporter/lambda$34$Type',925);bcb(859,1,{},Prd);var x3=mdb(Wte,'JsonImporter/lambda$35$Type',859);bcb(929,1,{},Rrd);var y3=mdb(Wte,'JsonImporter/lambda$36$Type',929);bcb(926,1,qie,Srd);_.td=function Trd(a){Lqd(this.a,BD(a,469))};var z3=mdb(Wte,'JsonImporter/lambda$37$Type',926);bcb(927,1,qie,Urd);_.td=function Vrd(a){Mqd(this.a,this.b,BD(a,202))};var A3=mdb(Wte,'JsonImporter/lambda$38$Type',927);bcb(928,1,qie,Wrd);_.td=function Xrd(a){Nqd(this.a,this.b,BD(a,202))};var B3=mdb(Wte,'JsonImporter/lambda$39$Type',928);bcb(894,1,{},Yrd);var C3=mdb(Wte,'JsonImporter/lambda$4$Type',894);bcb(930,1,qie,Zrd);_.td=function $rd(a){Oqd(this.a,BD(a,8))};var D3=mdb(Wte,'JsonImporter/lambda$40$Type',930);bcb(895,1,{},_rd);var E3=mdb(Wte,'JsonImporter/lambda$5$Type',895);bcb(899,1,{},asd);var F3=mdb(Wte,'JsonImporter/lambda$6$Type',899);bcb(897,1,{},bsd);var G3=mdb(Wte,'JsonImporter/lambda$7$Type',897);bcb(898,1,{},csd);var H3=mdb(Wte,'JsonImporter/lambda$8$Type',898);bcb(901,1,{},dsd);var I3=mdb(Wte,'JsonImporter/lambda$9$Type',901);bcb(948,1,qie,msd);_.td=function nsd(a){Qpd(this.a,new yC(GD(a)))};var K3=mdb(Wte,'JsonMetaDataConverter/lambda$0$Type',948);bcb(949,1,qie,osd);_.td=function psd(a){isd(this.a,BD(a,237))};var L3=mdb(Wte,'JsonMetaDataConverter/lambda$1$Type',949);bcb(950,1,qie,qsd);_.td=function rsd(a){jsd(this.a,BD(a,149))};var M3=mdb(Wte,'JsonMetaDataConverter/lambda$2$Type',950);bcb(951,1,qie,ssd);_.td=function tsd(a){ksd(this.a,BD(a,175))};var N3=mdb(Wte,'JsonMetaDataConverter/lambda$3$Type',951);bcb(237,22,{3:1,35:1,22:1,237:1},Dsd);var usd,vsd,wsd,xsd,ysd,zsd,Asd,Bsd;var O3=ndb(Hle,'GraphFeature',237,CI,Fsd,Esd);var Gsd;bcb(13,1,{35:1,146:1},Lsd,Msd,Nsd,Osd);_.wd=function Psd(a){return Isd(this,BD(a,146))};_.Fb=function Qsd(a){return Jsd(this,a)};_.wg=function Rsd(){return Ksd(this)};_.tg=function Ssd(){return this.b};_.Hb=function Tsd(){return LCb(this.b)};_.Ib=function Usd(){return this.b};var T3=mdb(Hle,'Property',13);bcb(818,1,Dke,Wsd);_.ue=function Xsd(a,b){return Vsd(this,BD(a,94),BD(b,94))};_.Fb=function Ysd(a){return this===a};_.ve=function Zsd(){return new tpb(this)};var S3=mdb(Hle,'PropertyHolderComparator',818);bcb(695,1,aie,qtd);_.Nb=function rtd(a){Rrb(this,a)};_.Pb=function ttd(){return ptd(this)};_.Qb=function utd(){Srb()};_.Ob=function std(){return !!this.a};var U3=mdb(jue,'ElkGraphUtil/AncestorIterator',695);var T4=odb(Tte,'EList');bcb(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1});_.Vc=function Jtd(a,b){vtd(this,a,b)};_.Fc=function Ktd(a){return wtd(this,a)};_.Wc=function Ltd(a,b){return xtd(this,a,b)};_.Gc=function Mtd(a){return ytd(this,a)};_.Zh=function Ntd(){return new $yd(this)};_.$h=function Otd(){return new bzd(this)};_._h=function Ptd(a){return ztd(this,a)};_.ai=function Qtd(){return true};_.bi=function Rtd(a,b){};_.ci=function Std(){};_.di=function Ttd(a,b){Atd(this,a,b)};_.ei=function Utd(a,b,c){};_.fi=function Vtd(a,b){};_.gi=function Wtd(a,b,c){};_.Fb=function Xtd(a){return Btd(this,a)};_.Hb=function Ytd(){return Etd(this)};_.hi=function Ztd(){return false};_.Kc=function $td(){return new Fyd(this)};_.Yc=function _td(){return new Oyd(this)};_.Zc=function aud(a){var b;b=this.gc();if(a<0||a>b)throw vbb(new Cyd(a,b));return new Pyd(this,a)};_.ji=function bud(a,b){this.ii(a,this.Xc(b))};_.Mc=function cud(a){return Ftd(this,a)};_.li=function dud(a,b){return b};_._c=function eud(a,b){return Gtd(this,a,b)};_.Ib=function fud(){return Htd(this)};_.ni=function gud(){return true};_.oi=function hud(a,b){return Itd(this,b)};var p4=mdb(Tte,'AbstractEList',67);bcb(63,67,oue,yud,zud,Aud);_.Vh=function Bud(a,b){return iud(this,a,b)};_.Wh=function Cud(a){return jud(this,a)};_.Xh=function Dud(a,b){kud(this,a,b)};_.Yh=function Eud(a){lud(this,a)};_.pi=function Fud(a){return nud(this,a)};_.$b=function Gud(){oud(this)};_.Hc=function Hud(a){return pud(this,a)};_.Xb=function Iud(a){return qud(this,a)};_.qi=function Jud(a){var b,c,d;++this.j;c=this.g==null?0:this.g.length;if(a>c){d=this.g;b=c+(c/2|0)+4;b<a&&(b=a);this.g=this.ri(b);d!=null&&$fb(d,0,this.g,0,this.i)}};_.Xc=function Kud(a){return rud(this,a)};_.dc=function Lud(){return this.i==0};_.ii=function Mud(a,b){return sud(this,a,b)};_.ri=function Nud(a){return KC(SI,Uhe,1,a,5,1)};_.ki=function Oud(a){return this.g[a]};_.$c=function Pud(a){return tud(this,a)};_.mi=function Qud(a,b){return uud(this,a,b)};_.gc=function Rud(){return this.i};_.Pc=function Sud(){return wud(this)};_.Qc=function Tud(a){return xud(this,a)};_.i=0;var y4=mdb(Tte,'BasicEList',63);var X4=odb(Tte,'TreeIterator');bcb(694,63,pue);_.Nb=function Xud(a){Rrb(this,a)};_.Ob=function Yud(){return this.g==null&&!this.c?Uud(this):this.g==null||this.i!=0&&BD(this.g[this.i-1],47).Ob()};_.Pb=function Zud(){return Vud(this)};_.Qb=function $ud(){if(!this.e){throw vbb(new Zdb('There is no valid object to remove.'))}this.e.Qb()};_.c=false;var q4=mdb(Tte,'AbstractTreeIterator',694);bcb(685,694,pue,_ud);_.si=function avd(a){var b;b=BD(a,56).Wg().Kc();JD(b,279)&&BD(b,279).Nk(new bvd);return b};var W3=mdb(jue,'ElkGraphUtil/PropertiesSkippingTreeIterator',685);bcb(952,1,{},bvd);var V3=mdb(jue,'ElkGraphUtil/PropertiesSkippingTreeIterator/1',952);var cvd,dvd;var Y3=mdb(jue,'ElkReflect',null);bcb(889,1,hse,jvd);_.vg=function kvd(a){return evd(),sqb(BD(a,174))};var X3=mdb(jue,'ElkReflect/lambda$0$Type',889);var lvd;var W4=odb(Tte,'ResourceLocator');bcb(1051,1,{});var N4=mdb(Tte,'DelegatingResourceLocator',1051);bcb(1052,1051,{});var Z3=mdb('org.eclipse.emf.common','EMFPlugin',1052);var $3=odb(cve,'Adapter');var _3=odb(cve,'Notification');bcb(1153,1,dve);_.ti=function vvd(){return this.d};_.ui=function wvd(a){};_.vi=function xvd(a){this.d=a};_.wi=function yvd(a){this.d==a&&(this.d=null)};_.d=null;var a4=mdb(hte,'AdapterImpl',1153);bcb(1995,67,eve);_.Vh=function Fvd(a,b){return zvd(this,a,b)};_.Wh=function Gvd(a){var b,c,d;++this.j;if(a.dc()){return false}else{b=this.Vi();for(d=a.Kc();d.Ob();){c=d.Pb();this.Ii(this.oi(b,c));++b}return true}};_.Xh=function Hvd(a,b){Avd(this,a,b)};_.Yh=function Ivd(a){Bvd(this,a)};_.Gi=function Jvd(){return this.Ji()};_.$b=function Kvd(){Cvd(this,this.Vi(),this.Wi())};_.Hc=function Lvd(a){return this.Li(a)};_.Ic=function Mvd(a){return this.Mi(a)};_.Hi=function Nvd(a,b){this.Si().jm()};_.Ii=function Ovd(a){this.Si().jm()};_.Ji=function Pvd(){return this.Si()};_.Ki=function Qvd(){this.Si().jm()};_.Li=function Rvd(a){return this.Si().jm()};_.Mi=function Svd(a){return this.Si().jm()};_.Ni=function Tvd(a){return this.Si().jm()};_.Oi=function Uvd(a){return this.Si().jm()};_.Pi=function Vvd(){return this.Si().jm()};_.Qi=function Wvd(a){return this.Si().jm()};_.Ri=function Xvd(){return this.Si().jm()};_.Ti=function Yvd(a){return this.Si().jm()};_.Ui=function Zvd(a,b){return this.Si().jm()};_.Vi=function $vd(){return this.Si().jm()};_.Wi=function _vd(){return this.Si().jm()};_.Xi=function awd(a){return this.Si().jm()};_.Yi=function bwd(){return this.Si().jm()};_.Fb=function cwd(a){return this.Ni(a)};_.Xb=function dwd(a){return this.li(a,this.Oi(a))};_.Hb=function ewd(){return this.Pi()};_.Xc=function fwd(a){return this.Qi(a)};_.dc=function gwd(){return this.Ri()};_.ii=function hwd(a,b){return Dvd(this,a,b)};_.ki=function iwd(a){return this.Oi(a)};_.$c=function jwd(a){return Evd(this,a)};_.Mc=function kwd(a){var b;b=this.Xc(a);if(b>=0){this.$c(b);return true}else{return false}};_.mi=function lwd(a,b){return this.Ui(a,this.oi(a,b))};_.gc=function mwd(){return this.Vi()};_.Pc=function nwd(){return this.Wi()};_.Qc=function owd(a){return this.Xi(a)};_.Ib=function pwd(){return this.Yi()};var M4=mdb(Tte,'DelegatingEList',1995);bcb(1996,1995,eve);_.Vh=function xwd(a,b){return qwd(this,a,b)};_.Wh=function ywd(a){return this.Vh(this.Vi(),a)};_.Xh=function zwd(a,b){rwd(this,a,b)};_.Yh=function Awd(a){swd(this,a)};_.ai=function Bwd(){return !this.bj()};_.$b=function Cwd(){vwd(this)};_.Zi=function Dwd(a,b,c,d,e){return new Cxd(this,a,b,c,d,e)};_.$i=function Ewd(a){Uhd(this.Ai(),a)};_._i=function Fwd(){return null};_.aj=function Gwd(){return -1};_.Ai=function Hwd(){return null};_.bj=function Iwd(){return false};_.cj=function Jwd(a,b){return b};_.dj=function Kwd(a,b){return b};_.ej=function Lwd(){return false};_.fj=function Mwd(){return !this.Ri()};_.ii=function Nwd(a,b){var c,d;if(this.ej()){d=this.fj();c=Dvd(this,a,b);this.$i(this.Zi(7,meb(b),c,a,d));return c}else{return Dvd(this,a,b)}};_.$c=function Owd(a){var b,c,d,e;if(this.ej()){c=null;d=this.fj();b=this.Zi(4,e=Evd(this,a),null,a,d);if(this.bj()&&!!e){c=this.dj(e,c);if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}else{if(!c){this.$i(b)}else{c.Ei(b);c.Fi()}}return e}else{e=Evd(this,a);if(this.bj()&&!!e){c=this.dj(e,null);!!c&&c.Fi()}return e}};_.mi=function Pwd(a,b){return wwd(this,a,b)};var d4=mdb(hte,'DelegatingNotifyingListImpl',1996);bcb(143,1,fve);_.Ei=function pxd(a){return Qwd(this,a)};_.Fi=function qxd(){Rwd(this)};_.xi=function rxd(){return this.d};_._i=function sxd(){return null};_.gj=function txd(){return null};_.yi=function uxd(a){return -1};_.zi=function vxd(){return $wd(this)};_.Ai=function wxd(){return null};_.Bi=function xxd(){return hxd(this)};_.Ci=function yxd(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o};_.hj=function zxd(){return false};_.Di=function Axd(a){var b,c,d,e,f,g,h,i,j,k,l;switch(this.d){case 1:case 2:{e=a.xi();switch(e){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}}}}case 4:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);i=this.o<0?this.o<-2?-2-this.o-1:-1:this.o;g=a.Ci();this.d=6;l=new zud(2);if(i<=g){wtd(l,this.n);wtd(l,a.Bi());this.g=OC(GC(WD,1),oje,25,15,[this.o=i,g+1])}else{wtd(l,a.Bi());wtd(l,this.n);this.g=OC(GC(WD,1),oje,25,15,[this.o=g,i])}this.n=l;j||(this.o=-2-this.o-1);return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.Ai())&&this.yi(null)==a.yi(null)){j=jxd(this);g=a.Ci();k=BD(this.g,48);d=KC(WD,oje,25,k.length+1,15,1);b=0;while(b<k.length){h=k[b];if(h<=g){d[b++]=h;++g}else{break}}c=BD(this.n,15);c.Vc(b,a.Bi());d[b]=g;while(++b<d.length){d[b]=k[b-1]}this.g=d;j||(this.o=-2-d[0]);return true}break}}break}}return false};_.Ib=function Bxd(){var a,b,c,d;d=new Jfb(hdb(this.gm)+'@'+(b=tb(this)>>>0,b.toString(16)));d.a+=' (eventType: ';switch(this.d){case 1:{d.a+='SET';break}case 2:{d.a+='UNSET';break}case 3:{d.a+='ADD';break}case 5:{d.a+='ADD_MANY';break}case 4:{d.a+='REMOVE';break}case 6:{d.a+='REMOVE_MANY';break}case 7:{d.a+='MOVE';break}case 8:{d.a+='REMOVING_ADAPTER';break}case 9:{d.a+='RESOLVE';break}default:{Cfb(d,this.d);break}}ixd(this)&&(d.a+=', touch: true',d);d.a+=', position: ';Cfb(d,this.o<0?this.o<-2?-2-this.o-1:-1:this.o);d.a+=', notifier: ';Dfb(d,this.Ai());d.a+=', feature: ';Dfb(d,this._i());d.a+=', oldValue: ';Dfb(d,hxd(this));d.a+=', newValue: ';if(this.d==6&&JD(this.g,48)){c=BD(this.g,48);d.a+='[';for(a=0;a<c.length;){d.a+=c[a];++a<c.length&&(d.a+=She,d)}d.a+=']'}else{Dfb(d,$wd(this))}d.a+=', isTouch: ';Ffb(d,ixd(this));d.a+=', wasSet: ';Ffb(d,jxd(this));d.a+=')';return d.a};_.d=0;_.e=0;_.f=0;_.j=0;_.k=0;_.o=0;_.p=0;var f4=mdb(hte,'NotificationImpl',143);bcb(1167,143,fve,Cxd);_._i=function Dxd(){return this.a._i()};_.yi=function Exd(a){return this.a.aj()};_.Ai=function Fxd(){return this.a.Ai()};var c4=mdb(hte,'DelegatingNotifyingListImpl/1',1167);bcb(242,63,oue,Hxd,Ixd);_.Fc=function Jxd(a){return Gxd(this,BD(a,366))};_.Ei=function Kxd(a){return Gxd(this,a)};_.Fi=function Lxd(){var a,b,c;for(a=0;a<this.i;++a){b=BD(this.g[a],366);c=b.Ai();c!=null&&b.xi()!=-1&&BD(c,92).Ng(b)}};_.ri=function Mxd(a){return KC(_3,Uhe,366,a,0,1)};var e4=mdb(hte,'NotificationChainImpl',242);bcb(1378,90,gte);_.Kg=function Nxd(){return this.e};_.Mg=function Oxd(){return (this.f&1)!=0};_.f=1;var g4=mdb(hte,'NotifierImpl',1378);bcb(1993,63,oue);_.Vh=function $xd(a,b){return Pxd(this,a,b)};_.Wh=function _xd(a){return this.Vh(this.i,a)};_.Xh=function ayd(a,b){Qxd(this,a,b)};_.Yh=function byd(a){Rxd(this,a)};_.ai=function cyd(){return !this.bj()};_.$b=function dyd(){Uxd(this)};_.Zi=function eyd(a,b,c,d,e){return new vyd(this,a,b,c,d,e)};_.$i=function fyd(a){Uhd(this.Ai(),a)};_._i=function gyd(){return null};_.aj=function hyd(){return -1};_.Ai=function iyd(){return null};_.bj=function jyd(){return false};_.ij=function kyd(){return false};_.cj=function lyd(a,b){return b};_.dj=function myd(a,b){return b};_.ej=function nyd(){return false};_.fj=function oyd(){return this.i!=0};_.ii=function pyd(a,b){return Wxd(this,a,b)};_.$c=function qyd(a){return Xxd(this,a)};_.mi=function ryd(a,b){return Zxd(this,a,b)};_.jj=function syd(a,b){return b};_.kj=function tyd(a,b){return b};_.lj=function uyd(a,b,c){return c};var i4=mdb(hte,'NotifyingListImpl',1993);bcb(1166,143,fve,vyd);_._i=function wyd(){return this.a._i()};_.yi=function xyd(a){return this.a.aj()};_.Ai=function yyd(){return this.a.Ai()};var h4=mdb(hte,'NotifyingListImpl/1',1166);bcb(953,63,oue,zyd);_.Hc=function Ayd(a){if(this.i>10){if(!this.b||this.c.j!=this.a){this.b=new Vqb(this);this.a=this.j}return Rqb(this.b,a)}else{return pud(this,a)}};_.ni=function Byd(){return true};_.a=0;var j4=mdb(Tte,'AbstractEList/1',953);bcb(295,73,Mje,Cyd);var k4=mdb(Tte,'AbstractEList/BasicIndexOutOfBoundsException',295);bcb(40,1,aie,Fyd);_.Nb=function Iyd(a){Rrb(this,a)};_.mj=function Gyd(){if(this.i.j!=this.f){throw vbb(new Apb)}};_.nj=function Hyd(){return Dyd(this)};_.Ob=function Jyd(){return this.e!=this.i.gc()};_.Pb=function Kyd(){return this.nj()};_.Qb=function Lyd(){Eyd(this)};_.e=0;_.f=0;_.g=-1;var l4=mdb(Tte,'AbstractEList/EIterator',40);bcb(278,40,jie,Oyd,Pyd);_.Qb=function Xyd(){Eyd(this)};_.Rb=function Qyd(a){Myd(this,a)};_.oj=function Ryd(){var b;try{b=this.d.Xb(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.pj=function Syd(a){Nyd(this,a)};_.Sb=function Tyd(){return this.e!=0};_.Tb=function Uyd(){return this.e};_.Ub=function Vyd(){return this.oj()};_.Vb=function Wyd(){return this.e-1};_.Wb=function Yyd(a){this.pj(a)};var m4=mdb(Tte,'AbstractEList/EListIterator',278);bcb(341,40,aie,$yd);_.nj=function _yd(){return Zyd(this)};_.Qb=function azd(){throw vbb(new bgb)};var n4=mdb(Tte,'AbstractEList/NonResolvingEIterator',341);bcb(385,278,jie,bzd,czd);_.Rb=function dzd(a){throw vbb(new bgb)};_.nj=function ezd(){var b;try{b=this.c.ki(this.e);this.mj();this.g=this.e++;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.oj=function fzd(){var b;try{b=this.c.ki(--this.e);this.mj();this.g=this.e;return b}catch(a){a=ubb(a);if(JD(a,73)){this.mj();throw vbb(new utb)}else throw vbb(a)}};_.Qb=function gzd(){throw vbb(new bgb)};_.Wb=function hzd(a){throw vbb(new bgb)};var o4=mdb(Tte,'AbstractEList/NonResolvingEListIterator',385);bcb(1982,67,ive);_.Vh=function pzd(a,b){var c,d,e,f,g,h,i,j,k,l,m;e=b.gc();if(e!=0){j=BD(Ajd(this.a,4),126);k=j==null?0:j.length;m=k+e;d=nzd(this,m);l=k-a;l>0&&$fb(j,a,d,a+e,l);i=b.Kc();for(g=0;g<e;++g){h=i.Pb();c=a+g;lzd(d,c,Itd(this,h))}b0d(this,d);for(f=0;f<e;++f){h=d[a];this.bi(a,h);++a}return true}else{++this.j;return false}};_.Wh=function qzd(a){var b,c,d,e,f,g,h,i,j;d=a.gc();if(d!=0){i=(c=BD(Ajd(this.a,4),126),c==null?0:c.length);j=i+d;b=nzd(this,j);h=a.Kc();for(f=i;f<j;++f){g=h.Pb();lzd(b,f,Itd(this,g))}b0d(this,b);for(e=i;e<j;++e){g=b[e];this.bi(e,g)}return true}else{++this.j;return false}};_.Xh=function rzd(a,b){var c,d,e,f;d=BD(Ajd(this.a,4),126);e=d==null?0:d.length;c=nzd(this,e+1);f=Itd(this,b);a!=e&&$fb(d,a,c,a+1,e-a);NC(c,a,f);b0d(this,c);this.bi(a,b)};_.Yh=function szd(a){var b,c,d;d=(c=BD(Ajd(this.a,4),126),c==null?0:c.length);b=nzd(this,d+1);lzd(b,d,Itd(this,a));b0d(this,b);this.bi(d,a)};_.Zh=function tzd(){return new Uzd(this)};_.$h=function uzd(){return new Xzd(this)};_._h=function vzd(a){var b,c;c=(b=BD(Ajd(this.a,4),126),b==null?0:b.length);if(a<0||a>c)throw vbb(new Cyd(a,c));return new Yzd(this,a)};_.$b=function wzd(){var a,b;++this.j;a=BD(Ajd(this.a,4),126);b=a==null?0:a.length;b0d(this,null);Atd(this,b,a)};_.Hc=function xzd(a){var b,c,d,e,f;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(d=b,e=0,f=d.length;e<f;++e){c=d[e];if(pb(a,c)){return true}}}else{for(d=b,e=0,f=d.length;e<f;++e){c=d[e];if(PD(c)===PD(a)){return true}}}}return false};_.Xb=function yzd(a){var b,c;b=BD(Ajd(this.a,4),126);c=b==null?0:b.length;if(a>=c)throw vbb(new Cyd(a,c));return b[a]};_.Xc=function zzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);if(b!=null){if(a!=null){for(c=0,d=b.length;c<d;++c){if(pb(a,b[c])){return c}}}else{for(c=0,d=b.length;c<d;++c){if(PD(b[c])===PD(a)){return c}}}}return -1};_.dc=function Azd(){return BD(Ajd(this.a,4),126)==null};_.Kc=function Bzd(){return new Lzd(this)};_.Yc=function Czd(){return new Pzd(this)};_.Zc=function Dzd(a){var b,c;c=(b=BD(Ajd(this.a,4),126),b==null?0:b.length);if(a<0||a>c)throw vbb(new Cyd(a,c));return new Qzd(this,a)};_.ii=function Ezd(a,b){var c,d,e;c=mzd(this);e=c==null?0:c.length;if(a>=e)throw vbb(new qcb(lue+a+mue+e));if(b>=e)throw vbb(new qcb(nue+b+mue+e));d=c[b];if(a!=b){a<b?$fb(c,a,c,a+1,b-a):$fb(c,b+1,c,b,a-b);NC(c,a,d);b0d(this,c)}return d};_.ki=function Fzd(a){return BD(Ajd(this.a,4),126)[a]};_.$c=function Gzd(a){return ozd(this,a)};_.mi=function Hzd(a,b){var c,d;c=mzd(this);d=c[a];lzd(c,a,Itd(this,b));b0d(this,c);return d};_.gc=function Izd(){var a;return a=BD(Ajd(this.a,4),126),a==null?0:a.length};_.Pc=function Jzd(){var a,b,c;a=BD(Ajd(this.a,4),126);c=a==null?0:a.length;b=KC($3,hve,415,c,0,1);c>0&&$fb(a,0,b,0,c);return b};_.Qc=function Kzd(a){var b,c,d;b=BD(Ajd(this.a,4),126);d=b==null?0:b.length;if(d>0){if(a.length<d){c=izd(rb(a).c,d);a=c}$fb(b,0,a,0,d)}a.length>d&&NC(a,d,null);return a};var jzd;var v4=mdb(Tte,'ArrayDelegatingEList',1982);bcb(1038,40,aie,Lzd);_.mj=function Mzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.Qb=function Nzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var r4=mdb(Tte,'ArrayDelegatingEList/EIterator',1038);bcb(706,278,jie,Pzd,Qzd);_.mj=function Rzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};_.pj=function Szd(a){Nyd(this,a);this.a=BD(Ajd(this.b.a,4),126)};_.Qb=function Tzd(){Eyd(this);this.a=BD(Ajd(this.b.a,4),126)};var s4=mdb(Tte,'ArrayDelegatingEList/EListIterator',706);bcb(1039,341,aie,Uzd);_.mj=function Vzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var t4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEIterator',1039);bcb(707,385,jie,Xzd,Yzd);_.mj=function Zzd(){if(this.b.j!=this.f||PD(BD(Ajd(this.b.a,4),126))!==PD(this.a)){throw vbb(new Apb)}};var u4=mdb(Tte,'ArrayDelegatingEList/NonResolvingEListIterator',707);bcb(606,295,Mje,$zd);var w4=mdb(Tte,'BasicEList/BasicIndexOutOfBoundsException',606);bcb(696,63,oue,_zd);_.Vc=function aAd(a,b){throw vbb(new bgb)};_.Fc=function bAd(a){throw vbb(new bgb)};_.Wc=function cAd(a,b){throw vbb(new bgb)};_.Gc=function dAd(a){throw vbb(new bgb)};_.$b=function eAd(){throw vbb(new bgb)};_.qi=function fAd(a){throw vbb(new bgb)};_.Kc=function gAd(){return this.Zh()};_.Yc=function hAd(){return this.$h()};_.Zc=function iAd(a){return this._h(a)};_.ii=function jAd(a,b){throw vbb(new bgb)};_.ji=function kAd(a,b){throw vbb(new bgb)};_.$c=function lAd(a){throw vbb(new bgb)};_.Mc=function mAd(a){throw vbb(new bgb)};_._c=function nAd(a,b){throw vbb(new bgb)};var x4=mdb(Tte,'BasicEList/UnmodifiableEList',696);bcb(705,1,{3:1,20:1,14:1,15:1,58:1,589:1});_.Vc=function OAd(a,b){oAd(this,a,BD(b,42))};_.Fc=function PAd(a){return pAd(this,BD(a,42))};_.Jc=function XAd(a){reb(this,a)};_.Xb=function YAd(a){return BD(qud(this.c,a),133)};_.ii=function fBd(a,b){return BD(this.c.ii(a,b),42)};_.ji=function gBd(a,b){GAd(this,a,BD(b,42))};_.Lc=function jBd(){return new YAb(null,new Kub(this,16))};_.$c=function kBd(a){return BD(this.c.$c(a),42)};_._c=function mBd(a,b){return MAd(this,a,BD(b,42))};_.ad=function oBd(a){ktb(this,a)};_.Nc=function pBd(){return new Kub(this,16)};_.Oc=function qBd(){return new YAb(null,new Kub(this,16))};_.Wc=function QAd(a,b){return this.c.Wc(a,b)};_.Gc=function RAd(a){return this.c.Gc(a)};_.$b=function SAd(){this.c.$b()};_.Hc=function TAd(a){return this.c.Hc(a)};_.Ic=function UAd(a){return Be(this.c,a)};_.qj=function VAd(){var a,b,c;if(this.d==null){this.d=KC(y4,jve,63,2*this.f+1,0,1);c=this.e;this.f=0;for(b=this.c.Kc();b.e!=b.i.gc();){a=BD(b.nj(),133);uAd(this,a)}this.e=c}};_.Fb=function WAd(a){return zAd(this,a)};_.Hb=function ZAd(){return Etd(this.c)};_.Xc=function $Ad(a){return this.c.Xc(a)};_.rj=function _Ad(){this.c=new yBd(this)};_.dc=function aBd(){return this.f==0};_.Kc=function bBd(){return this.c.Kc()};_.Yc=function cBd(){return this.c.Yc()};_.Zc=function dBd(a){return this.c.Zc(a)};_.sj=function eBd(){return FAd(this)};_.tj=function hBd(a,b,c){return new zCd(a,b,c)};_.uj=function iBd(){return new EBd};_.Mc=function lBd(a){return JAd(this,a)};_.gc=function nBd(){return this.f};_.bd=function rBd(a,b){return new Jib(this.c,a,b)};_.Pc=function sBd(){return this.c.Pc()};_.Qc=function tBd(a){return this.c.Qc(a)};_.Ib=function uBd(){return Htd(this.c)};_.e=0;_.f=0;var L4=mdb(Tte,'BasicEMap',705);bcb(1033,63,oue,yBd);_.bi=function zBd(a,b){vBd(this,BD(b,133))};_.ei=function BBd(a,b,c){var d;++(d=this,BD(b,133),d).a.e};_.fi=function CBd(a,b){wBd(this,BD(b,133))};_.gi=function DBd(a,b,c){xBd(this,BD(b,133),BD(c,133))};_.di=function ABd(a,b){tAd(this.a)};var z4=mdb(Tte,'BasicEMap/1',1033);bcb(1034,63,oue,EBd);_.ri=function FBd(a){return KC(I4,kve,612,a,0,1)};var A4=mdb(Tte,'BasicEMap/2',1034);bcb(1035,eie,fie,GBd);_.$b=function HBd(){this.a.c.$b()};_.Hc=function IBd(a){return qAd(this.a,a)};_.Kc=function JBd(){return this.a.f==0?(LCd(),KCd.a):new dCd(this.a)};_.Mc=function KBd(a){var b;b=this.a.f;LAd(this.a,a);return this.a.f!=b};_.gc=function LBd(){return this.a.f};var B4=mdb(Tte,'BasicEMap/3',1035);bcb(1036,28,die,MBd);_.$b=function NBd(){this.a.c.$b()};_.Hc=function OBd(a){return rAd(this.a,a)};_.Kc=function PBd(){return this.a.f==0?(LCd(),KCd.a):new fCd(this.a)};_.gc=function QBd(){return this.a.f};var C4=mdb(Tte,'BasicEMap/4',1036);bcb(1037,eie,fie,SBd);_.$b=function TBd(){this.a.c.$b()};_.Hc=function UBd(a){var b,c,d,e,f,g,h,i,j;if(this.a.f>0&&JD(a,42)){this.a.qj();i=BD(a,42);h=i.cd();e=h==null?0:tb(h);f=DAd(this.a,e);b=this.a.d[f];if(b){c=BD(b.g,367);j=b.i;for(g=0;g<j;++g){d=c[g];if(d.Sh()==e&&d.Fb(i)){return true}}}}return false};_.Kc=function VBd(){return this.a.f==0?(LCd(),KCd.a):new ZBd(this.a)};_.Mc=function WBd(a){return RBd(this,a)};_.gc=function XBd(){return this.a.f};var D4=mdb(Tte,'BasicEMap/5',1037);bcb(613,1,aie,ZBd);_.Nb=function $Bd(a){Rrb(this,a)};_.Ob=function _Bd(){return this.b!=-1};_.Pb=function aCd(){var a;if(this.f.e!=this.c){throw vbb(new Apb)}if(this.b==-1){throw vbb(new utb)}this.d=this.a;this.e=this.b;YBd(this);a=BD(this.f.d[this.d].g[this.e],133);return this.vj(a)};_.Qb=function bCd(){if(this.f.e!=this.c){throw vbb(new Apb)}if(this.e==-1){throw vbb(new Ydb)}this.f.c.Mc(qud(this.f.d[this.d],this.e));this.c=this.f.e;this.e=-1;this.a==this.d&&this.b!=-1&&--this.b};_.vj=function cCd(a){return a};_.a=0;_.b=-1;_.c=0;_.d=0;_.e=0;var E4=mdb(Tte,'BasicEMap/BasicEMapIterator',613);bcb(1031,613,aie,dCd);_.vj=function eCd(a){return a.cd()};var F4=mdb(Tte,'BasicEMap/BasicEMapKeyIterator',1031);bcb(1032,613,aie,fCd);_.vj=function gCd(a){return a.dd()};var G4=mdb(Tte,'BasicEMap/BasicEMapValueIterator',1032);bcb(1030,1,cie,iCd);_.wc=function oCd(a){stb(this,a)};_.yc=function tCd(a,b,c){return ttb(this,a,b,c)};_.$b=function jCd(){this.a.c.$b()};_._b=function kCd(a){return hCd(this,a)};_.uc=function lCd(a){return rAd(this.a,a)};_.vc=function mCd(){return yAd(this.a)};_.Fb=function nCd(a){return zAd(this.a,a)};_.xc=function pCd(a){return AAd(this.a,a)};_.Hb=function qCd(){return Etd(this.a.c)};_.dc=function rCd(){return this.a.f==0};_.ec=function sCd(){return EAd(this.a)};_.zc=function uCd(a,b){return HAd(this.a,a,b)};_.Bc=function vCd(a){return LAd(this.a,a)};_.gc=function wCd(){return this.a.f};_.Ib=function xCd(){return Htd(this.a.c)};_.Cc=function yCd(){return NAd(this.a)};var H4=mdb(Tte,'BasicEMap/DelegatingMap',1030);bcb(612,1,{42:1,133:1,612:1},zCd);_.Fb=function ACd(a){var b;if(JD(a,42)){b=BD(a,42);return (this.b!=null?pb(this.b,b.cd()):PD(this.b)===PD(b.cd()))&&(this.c!=null?pb(this.c,b.dd()):PD(this.c)===PD(b.dd()))}else{return false}};_.Sh=function BCd(){return this.a};_.cd=function CCd(){return this.b};_.dd=function DCd(){return this.c};_.Hb=function ECd(){return this.a^(this.c==null?0:tb(this.c))};_.Th=function FCd(a){this.a=a};_.Uh=function GCd(a){throw vbb(new gz)};_.ed=function HCd(a){var b;b=this.c;this.c=a;return b};_.Ib=function ICd(){return this.b+'->'+this.c};_.a=0;var I4=mdb(Tte,'BasicEMap/EntryImpl',612);bcb(536,1,{},JCd);var K4=mdb(Tte,'BasicEMap/View',536);var KCd;bcb(768,1,{});_.Fb=function ZCd(a){return At((mmb(),jmb),a)};_.Hb=function $Cd(){return qmb((mmb(),jmb))};_.Ib=function _Cd(){return Fe((mmb(),jmb))};var Q4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList',768);bcb(1312,1,jie,aDd);_.Nb=function cDd(a){Rrb(this,a)};_.Rb=function bDd(a){throw vbb(new bgb)};_.Ob=function dDd(){return false};_.Sb=function eDd(){return false};_.Pb=function fDd(){throw vbb(new utb)};_.Tb=function gDd(){return 0};_.Ub=function hDd(){throw vbb(new utb)};_.Vb=function iDd(){return -1};_.Qb=function jDd(){throw vbb(new bgb)};_.Wb=function kDd(a){throw vbb(new bgb)};var P4=mdb(Tte,'ECollections/BasicEmptyUnmodifiableEList/1',1312);bcb(1310,768,{20:1,14:1,15:1,58:1},lDd);_.Vc=function mDd(a,b){OCd()};_.Fc=function nDd(a){return PCd()};_.Wc=function oDd(a,b){return QCd()};_.Gc=function pDd(a){return RCd()};_.$b=function qDd(){SCd()};_.Hc=function rDd(a){return false};_.Ic=function sDd(a){return false};_.Jc=function tDd(a){reb(this,a)};_.Xb=function uDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function vDd(a){return -1};_.dc=function wDd(){return true};_.Kc=function xDd(){return this.a};_.Yc=function yDd(){return this.a};_.Zc=function zDd(a){return this.a};_.ii=function ADd(a,b){return TCd()};_.ji=function BDd(a,b){UCd()};_.Lc=function CDd(){return new YAb(null,new Kub(this,16))};_.$c=function DDd(a){return VCd()};_.Mc=function EDd(a){return WCd()};_._c=function FDd(a,b){return XCd()};_.gc=function GDd(){return 0};_.ad=function HDd(a){ktb(this,a)};_.Nc=function IDd(){return new Kub(this,16)};_.Oc=function JDd(){return new YAb(null,new Kub(this,16))};_.bd=function KDd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function LDd(){return De((mmb(),jmb))};_.Qc=function MDd(a){return mmb(),Ee(jmb,a)};var R4=mdb(Tte,'ECollections/EmptyUnmodifiableEList',1310);bcb(1311,768,{20:1,14:1,15:1,58:1,589:1},NDd);_.Vc=function ODd(a,b){OCd()};_.Fc=function PDd(a){return PCd()};_.Wc=function QDd(a,b){return QCd()};_.Gc=function RDd(a){return RCd()};_.$b=function SDd(){SCd()};_.Hc=function TDd(a){return false};_.Ic=function UDd(a){return false};_.Jc=function VDd(a){reb(this,a)};_.Xb=function WDd(a){return wmb((mmb(),jmb,a)),null};_.Xc=function XDd(a){return -1};_.dc=function YDd(){return true};_.Kc=function ZDd(){return this.a};_.Yc=function $Dd(){return this.a};_.Zc=function _Dd(a){return this.a};_.ii=function bEd(a,b){return TCd()};_.ji=function cEd(a,b){UCd()};_.Lc=function dEd(){return new YAb(null,new Kub(this,16))};_.$c=function eEd(a){return VCd()};_.Mc=function fEd(a){return WCd()};_._c=function gEd(a,b){return XCd()};_.gc=function hEd(){return 0};_.ad=function iEd(a){ktb(this,a)};_.Nc=function jEd(){return new Kub(this,16)};_.Oc=function kEd(){return new YAb(null,new Kub(this,16))};_.bd=function lEd(a,b){return mmb(),new Jib(jmb,a,b)};_.Pc=function mEd(){return De((mmb(),jmb))};_.Qc=function nEd(a){return mmb(),Ee(jmb,a)};_.sj=function aEd(){return mmb(),mmb(),kmb};var S4=mdb(Tte,'ECollections/EmptyUnmodifiableEMap',1311);var U4=odb(Tte,'Enumerator');var oEd;bcb(281,1,{281:1},NEd);_.Fb=function REd(a){var b;if(this===a)return true;if(!JD(a,281))return false;b=BD(a,281);return this.f==b.f&&TEd(this.i,b.i)&&SEd(this.a,(this.f&256)!=0?(b.f&256)!=0?b.a:null:(b.f&256)!=0?null:b.a)&&SEd(this.d,b.d)&&SEd(this.g,b.g)&&SEd(this.e,b.e)&&KEd(this,b)};_.Hb=function WEd(){return this.f};_.Ib=function cFd(){return LEd(this)};_.f=0;var sEd=0,tEd=0,uEd=0,vEd=0,wEd=0,xEd=0,yEd=0,zEd=0,AEd=0,BEd,CEd=0,DEd=0,EEd=0,FEd=0,GEd,HEd;var Z4=mdb(Tte,'URI',281);bcb(1091,43,fke,mFd);_.zc=function nFd(a,b){return BD(Shb(this,GD(a),BD(b,281)),281)};var Y4=mdb(Tte,'URI/URICache',1091);bcb(497,63,oue,oFd,pFd);_.hi=function qFd(){return true};var $4=mdb(Tte,'UniqueEList',497);bcb(581,60,Tie,rFd);var _4=mdb(Tte,'WrappedException',581);var a5=odb(Vse,nve);var v5=odb(Vse,ove);var t5=odb(Vse,pve);var b5=odb(Vse,qve);var d5=odb(Vse,rve);var c5=odb(Vse,'EClass');var f5=odb(Vse,'EDataType');var sFd;bcb(1183,43,fke,vFd);_.xc=function wFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var e5=mdb(Vse,'EDataType/Internal/ConversionDelegate/Factory/Registry/Impl',1183);var h5=odb(Vse,'EEnum');var g5=odb(Vse,sve);var j5=odb(Vse,tve);var n5=odb(Vse,uve);var xFd;var p5=odb(Vse,vve);var q5=odb(Vse,wve);bcb(1029,1,{},BFd);_.Ib=function CFd(){return 'NIL'};var r5=mdb(Vse,'EStructuralFeature/Internal/DynamicValueHolder/1',1029);var DFd;bcb(1028,43,fke,GFd);_.xc=function HFd(a){return ND(a)?Phb(this,a):Wd(irb(this.f,a))};var s5=mdb(Vse,'EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl',1028);var u5=odb(Vse,xve);var w5=odb(Vse,'EValidator/PatternMatcher');var IFd;var KFd;var MFd;var OFd,PFd,QFd,RFd,SFd,TFd,UFd,VFd,WFd,XFd,YFd,ZFd,$Fd,_Fd,aGd,bGd,cGd,dGd,eGd,fGd,gGd,hGd,iGd;var E9=odb(yve,'FeatureMap/Entry');bcb(535,1,{72:1},kGd);_.ak=function lGd(){return this.a};_.dd=function mGd(){return this.b};var x5=mdb(qte,'BasicEObjectImpl/1',535);bcb(1027,1,zve,nGd);_.Wj=function oGd(a){return hid(this.a,this.b,a)};_.fj=function pGd(){return nid(this.a,this.b)};_.Wb=function qGd(a){zid(this.a,this.b,a)};_.Xj=function rGd(){Did(this.a,this.b)};var y5=mdb(qte,'BasicEObjectImpl/4',1027);bcb(1983,1,{108:1});_.bk=function uGd(a){this.e=a==0?sGd:KC(SI,Uhe,1,a,5,1)};_.Ch=function vGd(a){return this.e[a]};_.Dh=function wGd(a,b){this.e[a]=b};_.Eh=function xGd(a){this.e[a]=null};_.ck=function yGd(){return this.c};_.dk=function zGd(){throw vbb(new bgb)};_.ek=function AGd(){throw vbb(new bgb)};_.fk=function BGd(){return this.d};_.gk=function CGd(){return this.e!=null};_.hk=function DGd(a){this.c=a};_.ik=function EGd(a){throw vbb(new bgb)};_.jk=function FGd(a){throw vbb(new bgb)};_.kk=function GGd(a){this.d=a};var sGd;var z5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderBaseImpl',1983);bcb(185,1983,{108:1},HGd);_.dk=function IGd(){return this.a};_.ek=function JGd(){return this.b};_.ik=function KGd(a){this.a=a};_.jk=function LGd(a){this.b=a};var A5=mdb(qte,'BasicEObjectImpl/EPropertiesHolderImpl',185);bcb(506,97,pte,MGd);_.Kg=function NGd(){return this.f};_.Pg=function OGd(){return this.k};_.Rg=function PGd(a,b){this.g=a;this.i=b};_.Tg=function QGd(){return (this.j&2)==0?this.zh():this.ph().ck()};_.Vg=function RGd(){return this.i};_.Mg=function SGd(){return (this.j&1)!=0};_.eh=function TGd(){return this.g};_.kh=function UGd(){return (this.j&4)!=0};_.ph=function VGd(){return !this.k&&(this.k=new HGd),this.k};_.th=function WGd(a){this.ph().hk(a);a?(this.j|=2):(this.j&=-3)};_.vh=function XGd(a){this.ph().jk(a);a?(this.j|=4):(this.j&=-5)};_.zh=function YGd(){return (NFd(),MFd).S};_.i=0;_.j=1;var l6=mdb(qte,'EObjectImpl',506);bcb(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},_Gd);_.Ch=function aHd(a){return this.e[a]};_.Dh=function bHd(a,b){this.e[a]=b};_.Eh=function cHd(a){this.e[a]=null};_.Tg=function dHd(){return this.d};_.Yg=function eHd(a){return bLd(this.d,a)};_.$g=function fHd(){return this.d};_.dh=function gHd(){return this.e!=null};_.ph=function hHd(){!this.k&&(this.k=new vHd);return this.k};_.th=function iHd(a){this.d=a};_.yh=function jHd(){var a;if(this.e==null){a=aLd(this.d);this.e=a==0?ZGd:KC(SI,Uhe,1,a,5,1)}return this};_.Ah=function kHd(){return 0};var ZGd;var E5=mdb(qte,'DynamicEObjectImpl',780);bcb(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},lHd);_.Fb=function nHd(a){return this===a};_.Hb=function rHd(){return FCb(this)};_.th=function mHd(a){this.d=a;this.b=YKd(a,'key');this.c=YKd(a,Bte)};_.Sh=function oHd(){var a;if(this.a==-1){a=iid(this,this.b);this.a=a==null?0:tb(a)}return this.a};_.cd=function pHd(){return iid(this,this.b)};_.dd=function qHd(){return iid(this,this.c)};_.Th=function sHd(a){this.a=a};_.Uh=function tHd(a){zid(this,this.b,a)};_.ed=function uHd(a){var b;b=iid(this,this.c);zid(this,this.c,a);return b};_.a=0;var C5=mdb(qte,'DynamicEObjectImpl/BasicEMapEntry',1376);bcb(1377,1,{108:1},vHd);_.bk=function wHd(a){throw vbb(new bgb)};_.Ch=function xHd(a){throw vbb(new bgb)};_.Dh=function yHd(a,b){throw vbb(new bgb)};_.Eh=function zHd(a){throw vbb(new bgb)};_.ck=function AHd(){throw vbb(new bgb)};_.dk=function BHd(){return this.a};_.ek=function CHd(){return this.b};_.fk=function DHd(){return this.c};_.gk=function EHd(){throw vbb(new bgb)};_.hk=function FHd(a){throw vbb(new bgb)};_.ik=function GHd(a){this.a=a};_.jk=function HHd(a){this.b=a};_.kk=function IHd(a){this.c=a};var D5=mdb(qte,'DynamicEObjectImpl/DynamicEPropertiesHolderImpl',1377);bcb(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},RHd);_.Qg=function SHd(a){return KHd(this,a)};_._g=function THd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.d;case 2:return c?(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),this.b):(!this.b&&(this.b=new sId((jGd(),fGd),x6,this)),FAd(this.b));case 3:return MHd(this);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),this.a;case 5:return !this.c&&(this.c=new _4d(m5,this,5)),this.c;}return bid(this,a-aLd((jGd(),OFd)),XKd((d=BD(Ajd(this,16),26),!d?OFd:d),a),b,c)};_.hh=function UHd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 3:!!this.Cb&&(c=(e=this.Db>>16,e>=0?KHd(this,c):this.Cb.ih(this,-1-e,null,c)));return JHd(this,BD(a,147),c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.jh=function VHd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.b&&(this.b=new sId((jGd(),fGd),x6,this)),bId(this.b,a,c);case 3:return JHd(this,null,c);case 4:return !this.a&&(this.a=new xMd(m5,this,4)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),OFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),OFd)),a,c)};_.lh=function WHd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.d!=null;case 2:return !!this.b&&this.b.f!=0;case 3:return !!MHd(this);case 4:return !!this.a&&this.a.i!=0;case 5:return !!this.c&&this.c.i!=0;}return cid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.sh=function XHd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:OHd(this,GD(b));return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));cId(this.b,b);return;case 3:NHd(this,BD(b,147));return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);!this.a&&(this.a=new xMd(m5,this,4));ytd(this.a,BD(b,14));return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);!this.c&&(this.c=new _4d(m5,this,5));ytd(this.c,BD(b,14));return;}did(this,a-aLd((jGd(),OFd)),XKd((c=BD(Ajd(this,16),26),!c?OFd:c),a),b)};_.zh=function YHd(){return jGd(),OFd};_.Bh=function ZHd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:PHd(this,null);return;case 2:!this.b&&(this.b=new sId((jGd(),fGd),x6,this));this.b.c.$b();return;case 3:NHd(this,null);return;case 4:!this.a&&(this.a=new xMd(m5,this,4));Uxd(this.a);return;case 5:!this.c&&(this.c=new _4d(m5,this,5));Uxd(this.c);return;}eid(this,a-aLd((jGd(),OFd)),XKd((b=BD(Ajd(this,16),26),!b?OFd:b),a))};_.Ib=function $Hd(){return QHd(this)};_.d=null;var G5=mdb(qte,'EAnnotationImpl',510);bcb(151,705,Ave,dId);_.Xh=function eId(a,b){_Hd(this,a,BD(b,42))};_.lk=function fId(a,b){return aId(this,BD(a,42),b)};_.pi=function gId(a){return BD(BD(this.c,69).pi(a),133)};_.Zh=function hId(){return BD(this.c,69).Zh()};_.$h=function iId(){return BD(this.c,69).$h()};_._h=function jId(a){return BD(this.c,69)._h(a)};_.mk=function kId(a,b){return bId(this,a,b)};_.Wj=function lId(a){return BD(this.c,76).Wj(a)};_.rj=function mId(){};_.fj=function nId(){return BD(this.c,76).fj()};_.tj=function oId(a,b,c){var d;d=BD(bKd(this.b).Nh().Jh(this.b),133);d.Th(a);d.Uh(b);d.ed(c);return d};_.uj=function pId(){return new W5d(this)};_.Wb=function qId(a){cId(this,a)};_.Xj=function rId(){BD(this.c,76).Xj()};var y9=mdb(yve,'EcoreEMap',151);bcb(158,151,Ave,sId);_.qj=function tId(){var a,b,c,d,e,f;if(this.d==null){f=KC(y4,jve,63,2*this.f+1,0,1);for(c=this.c.Kc();c.e!=c.i.gc();){b=BD(c.nj(),133);d=b.Sh();e=(d&Ohe)%f.length;a=f[e];!a&&(a=f[e]=new W5d(this));a.Fc(b)}this.d=f}};var F5=mdb(qte,'EAnnotationImpl/1',158);bcb(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1});_._g=function GId(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.jh=function HId(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function IId(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function JId(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:this.Lh(GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function KId(){return jGd(),hGd};_.Bh=function LId(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:this.Lh(null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function MId(){wId(this);this.Bb|=1};_.Yj=function NId(){return wId(this)};_.Zj=function OId(){return this.t};_.$j=function PId(){var a;return a=this.t,a>1||a==-1};_.hi=function QId(){return (this.Bb&512)!=0};_.nk=function RId(a,b){return zId(this,a,b)};_.ok=function SId(a){DId(this,a)};_.Ib=function TId(){return EId(this)};_.s=0;_.t=1;var v7=mdb(qte,'ETypedElementImpl',284);bcb(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1});_.Qg=function iJd(a){return UId(this,a)};_._g=function jJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),this.$j()?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function kJd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 17:!!this.Cb&&(c=(e=this.Db>>16,e>=0?UId(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,17,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function lJd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 17:return _hd(this,null,17,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function mJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return this.$j();case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function nJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:this.ok(BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function oJd(){return jGd(),gGd};_.Bh=function pJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.ok(1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function qJd(){a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Gj=function rJd(){return this.f};_.zj=function sJd(){return VId(this)};_.Hj=function tJd(){return WId(this)};_.Lj=function uJd(){return null};_.pk=function vJd(){return this.k};_.aj=function wJd(){return this.n};_.Mj=function xJd(){return XId(this)};_.Nj=function yJd(){var a,b,c,d,e,f,g,h,i;if(!this.p){c=WId(this);(c.i==null&&TKd(c),c.i).length;d=this.Lj();!!d&&aLd(WId(d));e=wId(this);g=e.Bj();a=!g?null:(g.i&1)!=0?g==sbb?wI:g==WD?JI:g==VD?FI:g==UD?BI:g==XD?MI:g==rbb?UI:g==SD?xI:yI:g;b=VId(this);h=e.zj();n6d(this);(this.Bb&oie)!=0&&(!!(f=t1d((O6d(),M6d),c))&&f!=this||!!(f=_1d(q1d(M6d,this))))?(this.p=new zVd(this,f)):this.$j()?this.rk()?!d?(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new KVd(42,this)):(this.p=new KVd(0,this)):a==CK?(this.p=new IVd(50,J4,this)):this.sk()?(this.p=new IVd(43,a,this)):(this.p=new IVd(1,a,this)):!a?this.sk()?(this.p=new KVd(44,this)):(this.p=new KVd(2,this)):a==CK?(this.p=new IVd(41,J4,this)):this.sk()?(this.p=new IVd(45,a,this)):(this.p=new IVd(3,a,this)):(this.Bb&Cve)!=0?!a?this.sk()?(this.p=new LVd(46,this,d)):(this.p=new LVd(4,this,d)):this.sk()?(this.p=new JVd(47,a,this,d)):(this.p=new JVd(5,a,this,d)):!a?this.sk()?(this.p=new LVd(48,this,d)):(this.p=new LVd(6,this,d)):this.sk()?(this.p=new JVd(49,a,this,d)):(this.p=new JVd(7,a,this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&512)!=0?(this.Bb&Cve)!=0?!a?(this.p=new KVd(8,this)):(this.p=new IVd(9,a,this)):!a?(this.p=new KVd(10,this)):(this.p=new IVd(11,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(12,this)):(this.p=new IVd(13,a,this)):!a?(this.p=new KVd(14,this)):(this.p=new IVd(15,a,this)):!d?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new KVd(16,this)):(this.p=new IVd(17,a,this)):!a?(this.p=new KVd(18,this)):(this.p=new IVd(19,a,this)):(this.Bb&Cve)!=0?!a?(this.p=new KVd(20,this)):(this.p=new IVd(21,a,this)):!a?(this.p=new KVd(22,this)):(this.p=new IVd(23,a,this)):(i=d.t,i>1||i==-1?this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(24,this,d)):(this.p=new JVd(25,a,this,d)):!a?(this.p=new LVd(26,this,d)):(this.p=new JVd(27,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(28,this,d)):(this.p=new JVd(29,a,this,d)):!a?(this.p=new LVd(30,this,d)):(this.p=new JVd(31,a,this,d)):this.sk()?(this.Bb&Cve)!=0?!a?(this.p=new LVd(32,this,d)):(this.p=new JVd(33,a,this,d)):!a?(this.p=new LVd(34,this,d)):(this.p=new JVd(35,a,this,d)):(this.Bb&Cve)!=0?!a?(this.p=new LVd(36,this,d)):(this.p=new JVd(37,a,this,d)):!a?(this.p=new LVd(38,this,d)):(this.p=new JVd(39,a,this,d))):this.qk()?this.sk()?(this.p=new kWd(BD(e,26),this,d)):(this.p=new cWd(BD(e,26),this,d)):JD(e,148)?a==E9?(this.p=new KVd(40,this)):(this.Bb&Cve)!=0?!a?(this.p=new jXd(BD(e,148),b,h,this)):(this.p=new lXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):!a?(this.p=new cXd(BD(e,148),b,h,this)):(this.p=new eXd(b,h,this,(CWd(),g==WD?yWd:g==sbb?tWd:g==XD?zWd:g==VD?xWd:g==UD?wWd:g==rbb?BWd:g==SD?uWd:g==TD?vWd:AWd))):this.rk()?!d?(this.Bb&Cve)!=0?this.sk()?(this.p=new FXd(BD(e,26),this)):(this.p=new DXd(BD(e,26),this)):this.sk()?(this.p=new BXd(BD(e,26),this)):(this.p=new zXd(BD(e,26),this)):(this.Bb&Cve)!=0?this.sk()?(this.p=new NXd(BD(e,26),this,d)):(this.p=new LXd(BD(e,26),this,d)):this.sk()?(this.p=new JXd(BD(e,26),this,d)):(this.p=new HXd(BD(e,26),this,d)):this.sk()?!d?(this.Bb&Cve)!=0?(this.p=new RXd(BD(e,26),this)):(this.p=new PXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new VXd(BD(e,26),this,d)):(this.p=new TXd(BD(e,26),this,d)):!d?(this.Bb&Cve)!=0?(this.p=new XXd(BD(e,26),this)):(this.p=new nXd(BD(e,26),this)):(this.Bb&Cve)!=0?(this.p=new _Xd(BD(e,26),this,d)):(this.p=new ZXd(BD(e,26),this,d))}return this.p};_.Ij=function zJd(){return (this.Bb&zte)!=0};_.qk=function AJd(){return false};_.rk=function BJd(){return false};_.Jj=function CJd(){return (this.Bb&oie)!=0};_.Oj=function DJd(){return YId(this)};_.sk=function EJd(){return false};_.Kj=function FJd(){return (this.Bb&Cve)!=0};_.tk=function GJd(a){this.k=a};_.Lh=function HJd(a){cJd(this,a)};_.Ib=function IJd(){return gJd(this)};_.e=false;_.n=0;var n7=mdb(qte,'EStructuralFeatureImpl',449);bcb(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},OJd);_._g=function PJd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),LJd(this)?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:if(b)return KJd(this);return JJd(this);}return bid(this,a-aLd((jGd(),PFd)),XKd((d=BD(Ajd(this,16),26),!d?PFd:d),a),b,c)};_.lh=function QJd(a){var b,c;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return LJd(this);case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return !!JJd(this);}return cid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.sh=function RJd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:NJd(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:MJd(this,Ccb(DD(b)));return;}did(this,a-aLd((jGd(),PFd)),XKd((c=BD(Ajd(this,16),26),!c?PFd:c),a),b)};_.zh=function SJd(){return jGd(),PFd};_.Bh=function TJd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:this.b=0;DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:MJd(this,false);return;}eid(this,a-aLd((jGd(),PFd)),XKd((b=BD(Ajd(this,16),26),!b?PFd:b),a))};_.Gh=function UJd(){KJd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.$j=function VJd(){return LJd(this)};_.nk=function WJd(a,b){this.b=0;this.a=null;return zId(this,a,b)};_.ok=function XJd(a){NJd(this,a)};_.Ib=function YJd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (iD: ';Ffb(a,(this.Bb&ote)!=0);a.a+=')';return a.a};_.b=0;var H5=mdb(qte,'EAttributeImpl',322);bcb(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1});_.uk=function nKd(a){return a.Tg()==this};_.Qg=function oKd(a){return aKd(this,a)};_.Rg=function pKd(a,b){this.w=null;this.Db=b<<16|this.Db&255;this.Cb=a};_._g=function qKd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.hh=function rKd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),f.Nj().Qj(this,yjd(this),b-aLd(this.zh()),a,c)};_.jh=function sKd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),b),66),e.Nj().Rj(this,yjd(this),b-aLd(this.zh()),a,c)};_.lh=function tKd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function uKd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function vKd(){return jGd(),RFd};_.Bh=function wKd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.yj=function xKd(){var a;return this.G==-1&&(this.G=(a=bKd(this),a?HLd(a.Mh(),this):-1)),this.G};_.zj=function yKd(){return null};_.Aj=function zKd(){return bKd(this)};_.vk=function AKd(){return this.v};_.Bj=function BKd(){return dKd(this)};_.Cj=function CKd(){return this.D!=null?this.D:this.B};_.Dj=function DKd(){return this.F};_.wj=function EKd(a){return fKd(this,a)};_.wk=function FKd(a){this.v=a};_.xk=function GKd(a){gKd(this,a)};_.yk=function HKd(a){this.C=a};_.Lh=function IKd(a){lKd(this,a)};_.Ib=function JKd(){return mKd(this)};_.C=null;_.D=null;_.G=-1;var Z5=mdb(qte,'EClassifierImpl',351);bcb(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},hLd);_.uk=function iLd(a){return dLd(this,a.Tg())};_._g=function jLd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return null;case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return Bcb(),(this.Bb&512)!=0?true:false;case 10:return _Kd(this);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),this.q;case 12:return OKd(this);case 13:return SKd(this);case 14:return SKd(this),this.r;case 15:return OKd(this),this.k;case 16:return PKd(this);case 17:return RKd(this);case 18:return TKd(this);case 19:return UKd(this);case 20:return OKd(this),this.o;case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),this.s;case 22:return VKd(this);case 23:return QKd(this);}return bid(this,a-aLd((jGd(),QFd)),XKd((d=BD(Ajd(this,16),26),!d?QFd:d),a),b,c)};_.hh=function kLd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Sxd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Sxd(this.s,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.jh=function lLd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 11:return !this.q&&(this.q=new cUd(n5,this,11,10)),Txd(this.q,a,c);case 21:return !this.s&&(this.s=new cUd(t5,this,21,17)),Txd(this.s,a,c);case 22:return Txd(VKd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),QFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),QFd)),a,c)};_.lh=function mLd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return false;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)!=0;case 9:return (this.Bb&512)!=0;case 10:return !!this.u&&VKd(this.u.a).i!=0&&!(!!this.n&&FMd(this.n));case 11:return !!this.q&&this.q.i!=0;case 12:return OKd(this).i!=0;case 13:return SKd(this).i!=0;case 14:return SKd(this),this.r.i!=0;case 15:return OKd(this),this.k.i!=0;case 16:return PKd(this).i!=0;case 17:return RKd(this).i!=0;case 18:return TKd(this).i!=0;case 19:return UKd(this).i!=0;case 20:return OKd(this),!!this.o;case 21:return !!this.s&&this.s.i!=0;case 22:return !!this.n&&FMd(this.n);case 23:return QKd(this).i!=0;}return cid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.oh=function nLd(a){var b;b=this.i==null||!!this.q&&this.q.i!=0?null:YKd(this,a);return b?b:Bmd(this,a)};_.sh=function oLd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:eLd(this,Ccb(DD(b)));return;case 9:fLd(this,Ccb(DD(b)));return;case 10:vwd(_Kd(this));ytd(_Kd(this),BD(b,14));return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);!this.q&&(this.q=new cUd(n5,this,11,10));ytd(this.q,BD(b,14));return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);!this.s&&(this.s=new cUd(t5,this,21,17));ytd(this.s,BD(b,14));return;case 22:Uxd(VKd(this));ytd(VKd(this),BD(b,14));return;}did(this,a-aLd((jGd(),QFd)),XKd((c=BD(Ajd(this,16),26),!c?QFd:c),a),b)};_.zh=function pLd(){return jGd(),QFd};_.Bh=function qLd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:eLd(this,false);return;case 9:fLd(this,false);return;case 10:!!this.u&&vwd(this.u);return;case 11:!this.q&&(this.q=new cUd(n5,this,11,10));Uxd(this.q);return;case 21:!this.s&&(this.s=new cUd(t5,this,21,17));Uxd(this.s);return;case 22:!!this.n&&Uxd(this.n);return;}eid(this,a-aLd((jGd(),QFd)),XKd((b=BD(Ajd(this,16),26),!b?QFd:b),a))};_.Gh=function rLd(){var a,b;OKd(this);SKd(this);PKd(this);RKd(this);TKd(this);UKd(this);QKd(this);oud(SMd($Kd(this)));if(this.s){for(a=0,b=this.s.i;a<b;++a){Cmd(qud(this.s,a))}}if(this.q){for(a=0,b=this.q.i;a<b;++a){Cmd(qud(this.q,a))}}o1d((O6d(),M6d),this).ne();this.Bb|=1};_.Ib=function sLd(){return gLd(this)};_.k=null;_.r=null;var KKd,LKd,MKd;var Y5=mdb(qte,'EClassImpl',88);bcb(1994,1993,Ove);_.Vh=function tLd(a,b){return Pxd(this,a,b)};_.Wh=function uLd(a){return Pxd(this,this.i,a)};_.Xh=function vLd(a,b){Qxd(this,a,b)};_.Yh=function wLd(a){Rxd(this,a)};_.lk=function xLd(a,b){return Sxd(this,a,b)};_.pi=function yLd(a){return nud(this,a)};_.mk=function CLd(a,b){return Txd(this,a,b)};_.mi=function DLd(a,b){return Zxd(this,a,b)};_.Zh=function zLd(){return new $yd(this)};_.$h=function ALd(){return new bzd(this)};_._h=function BLd(a){return ztd(this,a)};var P9=mdb(yve,'NotifyingInternalEListImpl',1994);bcb(622,1994,Pve);_.Hc=function NLd(a){return ELd(this,a)};_.Zi=function OLd(a,b,c,d,e){return FLd(this,a,b,c,d,e)};_.$i=function PLd(a){GLd(this,a)};_.Wj=function QLd(a){return this};_.ak=function RLd(){return XKd(this.e.Tg(),this.aj())};_._i=function SLd(){return this.ak()};_.aj=function TLd(){return bLd(this.e.Tg(),this.ak())};_.zk=function ULd(){return BD(this.ak().Yj(),26).Bj()};_.Ak=function VLd(){return zUd(BD(this.ak(),18)).n};_.Ai=function WLd(){return this.e};_.Bk=function XLd(){return true};_.Ck=function YLd(){return false};_.Dk=function ZLd(){return false};_.Ek=function $Ld(){return false};_.Xc=function _Ld(a){return HLd(this,a)};_.cj=function aMd(a,b){var c;return c=BD(a,49),this.Dk()?this.Bk()?c.gh(this.e,this.Ak(),this.zk(),b):c.gh(this.e,bLd(c.Tg(),zUd(BD(this.ak(),18))),null,b):c.gh(this.e,-1-this.aj(),null,b)};_.dj=function bMd(a,b){var c;return c=BD(a,49),this.Dk()?this.Bk()?c.ih(this.e,this.Ak(),this.zk(),b):c.ih(this.e,bLd(c.Tg(),zUd(BD(this.ak(),18))),null,b):c.ih(this.e,-1-this.aj(),null,b)};_.rk=function cMd(){return false};_.Fk=function dMd(){return true};_.wj=function eMd(a){return qEd(this.d,a)};_.ej=function fMd(){return oid(this.e)};_.fj=function gMd(){return this.i!=0};_.ri=function hMd(a){return izd(this.d,a)};_.li=function iMd(a,b){return this.Fk()&&this.Ek()?ILd(this,a,BD(b,56)):b};_.Gk=function jMd(a){return a.kh()?xid(this.e,BD(a,49)):a};_.Wb=function kMd(a){JLd(this,a)};_.Pc=function lMd(){return KLd(this)};_.Qc=function mMd(a){var b;if(this.Ek()){for(b=this.i-1;b>=0;--b){qud(this,b)}}return xud(this,a)};_.Xj=function nMd(){Uxd(this)};_.oi=function oMd(a,b){return LLd(this,a,b)};var t9=mdb(yve,'EcoreEList',622);bcb(496,622,Pve,pMd);_.ai=function qMd(){return false};_.aj=function rMd(){return this.c};_.bj=function sMd(){return false};_.Fk=function tMd(){return true};_.hi=function uMd(){return true};_.li=function vMd(a,b){return b};_.ni=function wMd(){return false};_.c=0;var d9=mdb(yve,'EObjectEList',496);bcb(85,496,Pve,xMd);_.bj=function yMd(){return true};_.Dk=function zMd(){return false};_.rk=function AMd(){return true};var Z8=mdb(yve,'EObjectContainmentEList',85);bcb(545,85,Pve,BMd);_.ci=function CMd(){this.b=true};_.fj=function DMd(){return this.b};_.Xj=function EMd(){var a;Uxd(this);if(oid(this.e)){a=this.b;this.b=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.b=false}};_.b=false;var Y8=mdb(yve,'EObjectContainmentEList/Unsettable',545);bcb(1140,545,Pve,JMd);_.ii=function NMd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),SFd),meb(b),(d=c.c,JD(d,88)?BD(d,26):_Fd),a)),c};_.jj=function OMd(a,b){return GMd(this,BD(a,87),b)};_.kj=function PMd(a,b){return HMd(this,BD(a,87),b)};_.lj=function QMd(a,b,c){return IMd(this,BD(a,87),BD(b,87),c)};_.Zi=function KMd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function LMd(){return true};_.fj=function MMd(){return FMd(this)};_.Xj=function RMd(){Uxd(this)};var N5=mdb(qte,'EClassImpl/1',1140);bcb(1154,1153,dve);_.ui=function VMd(a){var b,c,d,e,f,g,h;c=a.xi();if(c!=8){d=UMd(a);if(d==0){switch(c){case 1:case 9:{h=a.Bi();if(h!=null){b=$Kd(BD(h,473));!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 3:{g=a.zi();if(g!=null){e=BD(g,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}break}case 5:{g=a.zi();if(g!=null){for(f=BD(g,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);wtd(b.c,BD(a.Ai(),26))}}}break}case 4:{h=a.Bi();if(h!=null){e=BD(h,473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}break}case 6:{h=a.Bi();if(h!=null){for(f=BD(h,14).Kc();f.Ob();){e=BD(f.Pb(),473);if((e.Bb&1)==0){b=$Kd(e);!b.c&&(b.c=new xYd);Ftd(b.c,a.Ai())}}}break}}}this.Hk(d)}};_.Hk=function WMd(a){TMd(this,a)};_.b=63;var p7=mdb(qte,'ESuperAdapter',1154);bcb(1155,1154,dve,YMd);_.Hk=function ZMd(a){XMd(this,a)};var I5=mdb(qte,'EClassImpl/10',1155);bcb(1144,696,Pve);_.Vh=function $Md(a,b){return iud(this,a,b)};_.Wh=function _Md(a){return jud(this,a)};_.Xh=function aNd(a,b){kud(this,a,b)};_.Yh=function bNd(a){lud(this,a)};_.pi=function dNd(a){return nud(this,a)};_.mi=function lNd(a,b){return uud(this,a,b)};_.lk=function cNd(a,b){throw vbb(new bgb)};_.Zh=function eNd(){return new $yd(this)};_.$h=function fNd(){return new bzd(this)};_._h=function gNd(a){return ztd(this,a)};_.mk=function hNd(a,b){throw vbb(new bgb)};_.Wj=function iNd(a){return this};_.fj=function jNd(){return this.i!=0};_.Wb=function kNd(a){throw vbb(new bgb)};_.Xj=function mNd(){throw vbb(new bgb)};var s9=mdb(yve,'EcoreEList/UnmodifiableEList',1144);bcb(319,1144,Pve,nNd);_.ni=function oNd(){return false};var r9=mdb(yve,'EcoreEList/UnmodifiableEList/FastCompare',319);bcb(1147,319,Pve,rNd);_.Xc=function sNd(a){var b,c,d;if(JD(a,170)){b=BD(a,170);c=b.aj();if(c!=-1){for(d=this.i;c<d;++c){if(PD(this.g[c])===PD(a)){return c}}}}return -1};var J5=mdb(qte,'EClassImpl/1EAllStructuralFeaturesList',1147);bcb(1141,497,oue,wNd);_.ri=function xNd(a){return KC(j5,Tve,87,a,0,1)};_.ni=function yNd(){return false};var K5=mdb(qte,'EClassImpl/1EGenericSuperTypeEList',1141);bcb(623,497,oue,zNd);_.ri=function ANd(a){return KC(t5,Mve,170,a,0,1)};_.ni=function BNd(){return false};var L5=mdb(qte,'EClassImpl/1EStructuralFeatureUniqueEList',623);bcb(741,497,oue,CNd);_.ri=function DNd(a){return KC(q5,Mve,18,a,0,1)};_.ni=function ENd(){return false};var M5=mdb(qte,'EClassImpl/1ReferenceList',741);bcb(1142,497,oue,GNd);_.bi=function HNd(a,b){FNd(this,BD(b,34))};_.ri=function INd(a){return KC(b5,Mve,34,a,0,1)};_.ni=function JNd(){return false};var O5=mdb(qte,'EClassImpl/2',1142);bcb(1143,497,oue,KNd);_.ri=function LNd(a){return KC(b5,Mve,34,a,0,1)};_.ni=function MNd(){return false};var P5=mdb(qte,'EClassImpl/3',1143);bcb(1145,319,Pve,PNd);_.Fc=function QNd(a){return NNd(this,BD(a,34))};_.Yh=function RNd(a){ONd(this,BD(a,34))};var Q5=mdb(qte,'EClassImpl/4',1145);bcb(1146,319,Pve,UNd);_.Fc=function VNd(a){return SNd(this,BD(a,18))};_.Yh=function WNd(a){TNd(this,BD(a,18))};var R5=mdb(qte,'EClassImpl/5',1146);bcb(1148,497,oue,XNd);_.ri=function YNd(a){return KC(n5,Nve,59,a,0,1)};_.ni=function ZNd(){return false};var S5=mdb(qte,'EClassImpl/6',1148);bcb(1149,497,oue,$Nd);_.ri=function _Nd(a){return KC(q5,Mve,18,a,0,1)};_.ni=function aOd(){return false};var T5=mdb(qte,'EClassImpl/7',1149);bcb(1997,1996,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,69:1});_.Vh=function bOd(a,b){return qwd(this,a,b)};_.Wh=function cOd(a){return qwd(this,this.Vi(),a)};_.Xh=function dOd(a,b){rwd(this,a,b)};_.Yh=function eOd(a){swd(this,a)};_.lk=function fOd(a,b){return twd(this,a,b)};_.mk=function lOd(a,b){return uwd(this,a,b)};_.mi=function mOd(a,b){return wwd(this,a,b)};_.pi=function gOd(a){return this.Oi(a)};_.Zh=function hOd(){return new $yd(this)};_.Gi=function iOd(){return this.Ji()};_.$h=function jOd(){return new bzd(this)};_._h=function kOd(a){return ztd(this,a)};var L8=mdb(yve,'DelegatingNotifyingInternalEListImpl',1997);bcb(742,1997,Uve);_.ai=function rOd(){var a;a=XKd(wjd(this.b),this.aj()).Yj();return JD(a,148)&&!JD(a,457)&&(a.Bj().i&1)==0};_.Hc=function sOd(a){var b,c,d,e,f,g,h,i;if(this.Fk()){i=this.Vi();if(i>4){if(this.wj(a)){if(this.rk()){d=BD(a,49);c=d.Ug();h=c==this.b&&(this.Dk()?d.Og(d.Vg(),BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj())==zUd(BD(XKd(wjd(this.b),this.aj()),18)).n:-1-d.Vg()==this.aj());if(this.Ek()&&!h&&!c&&!!d.Zg()){for(e=0;e<i;++e){b=oOd(this,this.Oi(e));if(PD(b)===PD(a)){return true}}}return h}else if(this.Dk()&&!this.Ck()){f=BD(a,56).ah(zUd(BD(XKd(wjd(this.b),this.aj()),18)));if(PD(f)===PD(this.b)){return true}else if(f==null||!BD(f,56).kh()){return false}}}else{return false}}g=this.Li(a);if(this.Ek()&&!g){for(e=0;e<i;++e){d=oOd(this,this.Oi(e));if(PD(d)===PD(a)){return true}}}return g}else{return this.Li(a)}};_.Zi=function tOd(a,b,c,d,e){return new pSd(this.b,a,this.aj(),b,c,d,e)};_.$i=function uOd(a){Uhd(this.b,a)};_.Wj=function vOd(a){return this};_._i=function wOd(){return XKd(wjd(this.b),this.aj())};_.aj=function xOd(){return bLd(wjd(this.b),XKd(wjd(this.b),this.aj()))};_.Ai=function yOd(){return this.b};_.Bk=function zOd(){return !!XKd(wjd(this.b),this.aj()).Yj().Bj()};_.bj=function AOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&ote)!=0||!!zUd(BD(b,18))}else{return false}};_.Ck=function BOd(){var a,b,c,d;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c&&(d=c.t,d>1||d==-1)}else{return false}};_.Dk=function COd(){var a,b,c;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);c=zUd(a);return !!c}else{return false}};_.Ek=function DOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&Tje)!=0}else{return false}};_.Xc=function EOd(a){var b,c,d,e;d=this.Qi(a);if(d>=0)return d;if(this.Fk()){for(c=0,e=this.Vi();c<e;++c){b=oOd(this,this.Oi(c));if(PD(b)===PD(a)){return c}}}return -1};_.cj=function FOd(a,b){var c;return c=BD(a,49),this.Dk()?this.Bk()?c.gh(this.b,zUd(BD(XKd(wjd(this.b),this.aj()),18)).n,BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj(),b):c.gh(this.b,bLd(c.Tg(),zUd(BD(XKd(wjd(this.b),this.aj()),18))),null,b):c.gh(this.b,-1-this.aj(),null,b)};_.dj=function GOd(a,b){var c;return c=BD(a,49),this.Dk()?this.Bk()?c.ih(this.b,zUd(BD(XKd(wjd(this.b),this.aj()),18)).n,BD(XKd(wjd(this.b),this.aj()).Yj(),26).Bj(),b):c.ih(this.b,bLd(c.Tg(),zUd(BD(XKd(wjd(this.b),this.aj()),18))),null,b):c.ih(this.b,-1-this.aj(),null,b)};_.rk=function HOd(){var a,b;b=XKd(wjd(this.b),this.aj());if(JD(b,99)){a=BD(b,18);return (a.Bb&ote)!=0}else{return false}};_.Fk=function IOd(){return JD(XKd(wjd(this.b),this.aj()).Yj(),88)};_.wj=function JOd(a){return XKd(wjd(this.b),this.aj()).Yj().wj(a)};_.ej=function KOd(){return oid(this.b)};_.fj=function LOd(){return !this.Ri()};_.hi=function MOd(){return XKd(wjd(this.b),this.aj()).hi()};_.li=function NOd(a,b){return nOd(this,a,b)};_.Wb=function OOd(a){vwd(this);ytd(this,BD(a,15))};_.Pc=function POd(){var a;if(this.Ek()){for(a=this.Vi()-1;a>=0;--a){nOd(this,a,this.Oi(a))}}return this.Wi()};_.Qc=function QOd(a){var b;if(this.Ek()){for(b=this.Vi()-1;b>=0;--b){nOd(this,b,this.Oi(b))}}return this.Xi(a)};_.Xj=function ROd(){vwd(this)};_.oi=function SOd(a,b){return pOd(this,a,b)};var K8=mdb(yve,'DelegatingEcoreEList',742);bcb(1150,742,Uve,YOd);_.Hi=function _Od(a,b){TOd(this,a,BD(b,26))};_.Ii=function aPd(a){UOd(this,BD(a,26))};_.Oi=function gPd(a){var b,c;return b=BD(qud(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ti=function lPd(a){var b,c;return b=BD(Xxd(VKd(this.a),a),87),c=b.c,JD(c,88)?BD(c,26):(jGd(),_Fd)};_.Ui=function mPd(a,b){return WOd(this,a,BD(b,26))};_.ai=function ZOd(){return false};_.Zi=function $Od(a,b,c,d,e){return null};_.Ji=function bPd(){return new EPd(this)};_.Ki=function cPd(){Uxd(VKd(this.a))};_.Li=function dPd(a){return VOd(this,a)};_.Mi=function ePd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!VOd(this,b)){return false}}return true};_.Ni=function fPd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==VKd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function hPd(){var a,b,c,d,e;c=1;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,JD(e,88)?BD(e,26):(jGd(),_Fd));c=31*c+(!d?0:FCb(d))}return c};_.Qi=function iPd(a){var b,c,d,e;d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,JD(e,88)?BD(e,26):(jGd(),_Fd)))){return d}++d}return -1};_.Ri=function jPd(){return VKd(this.a).i==0};_.Si=function kPd(){return null};_.Vi=function nPd(){return VKd(this.a).i};_.Wi=function oPd(){var a,b,c,d,e,f;f=VKd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(VKd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,JD(d,88)?BD(d,26):(jGd(),_Fd))}return e};_.Xi=function pPd(a){var b,c,d,e,f,g,h;h=VKd(this.a).i;if(a.length<h){e=izd(rb(a).c,h);a=e}a.length>h&&NC(a,h,null);d=0;for(c=new Fyd(VKd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,JD(g,88)?BD(g,26):(jGd(),_Fd));NC(a,d++,f)}return a};_.Yi=function qPd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=VKd(this.a);for(b=0,d=VKd(this.a).i;b<d;){Efb(e,xfb((c=BD(qud(a,b),87).c,JD(c,88)?BD(c,26):(jGd(),_Fd))));++b<d&&(e.a+=She,e)}e.a+=']';return e.a};_.$i=function rPd(a){};_.aj=function sPd(){return 10};_.Bk=function tPd(){return true};_.bj=function uPd(){return false};_.Ck=function vPd(){return false};_.Dk=function wPd(){return false};_.Ek=function xPd(){return true};_.rk=function yPd(){return false};_.Fk=function zPd(){return true};_.wj=function APd(a){return JD(a,88)};_.fj=function BPd(){return cLd(this.a)};_.hi=function CPd(){return true};_.ni=function DPd(){return true};var V5=mdb(qte,'EClassImpl/8',1150);bcb(1151,1964,Lie,EPd);_.Zc=function FPd(a){return ztd(this.a,a)};_.gc=function GPd(){return VKd(this.a.a).i};var U5=mdb(qte,'EClassImpl/8/1',1151);bcb(1152,497,oue,HPd);_.ri=function IPd(a){return KC(d5,Uhe,138,a,0,1)};_.ni=function JPd(){return false};var W5=mdb(qte,'EClassImpl/9',1152);bcb(1139,53,gke,KPd);var X5=mdb(qte,'EClassImpl/MyHashSet',1139);bcb(566,351,{105:1,92:1,90:1,138:1,148:1,834:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1},MPd);_._g=function NPd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return this.zj();case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;}return bid(this,a-aLd(this.zh()),XKd((d=BD(Ajd(this,16),26),!d?this.zh():d),a),b,c)};_.lh=function OPd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return this.zj()!=null;case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;}return cid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.sh=function PPd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;}did(this,a-aLd(this.zh()),XKd((c=BD(Ajd(this,16),26),!c?this.zh():c),a),b)};_.zh=function QPd(){return jGd(),TFd};_.Bh=function RPd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;}eid(this,a-aLd(this.zh()),XKd((b=BD(Ajd(this,16),26),!b?this.zh():b),a))};_.Gh=function SPd(){o1d((O6d(),M6d),this).ne();this.Bb|=1};_.Fj=function TPd(){var a,b,c;if(!this.c){a=l6d(bKd(this));if(!a.dc()){for(c=a.Kc();c.Ob();){b=GD(c.Pb());!!Dmd(this,b)&&k6d(this)}}}return this.b};_.zj=function UPd(){var b;if(!this.e){b=null;try{b=dKd(this)}catch(a){a=ubb(a);if(!JD(a,102))throw vbb(a)}this.d=null;!!b&&(b.i&1)!=0&&(b==sbb?(this.d=(Bcb(),zcb)):b==WD?(this.d=meb(0)):b==VD?(this.d=new Ndb(0)):b==UD?(this.d=0):b==XD?(this.d=Aeb(0)):b==rbb?(this.d=Web(0)):b==SD?(this.d=Scb(0)):(this.d=bdb(0)));this.e=true}return this.d};_.Ej=function VPd(){return (this.Bb&256)!=0};_.Ik=function WPd(a){a&&(this.D='org.eclipse.emf.common.util.AbstractEnumerator')};_.xk=function XPd(a){gKd(this,a);this.Ik(a)};_.yk=function YPd(a){this.C=a;this.e=false};_.Ib=function ZPd(){var a;if((this.Db&64)!=0)return mKd(this);a=new Jfb(mKd(this));a.a+=' (serializable: ';Ffb(a,(this.Bb&256)!=0);a.a+=')';return a.a};_.c=false;_.d=null;_.e=false;var $5=mdb(qte,'EDataTypeImpl',566);bcb(457,566,{105:1,92:1,90:1,138:1,148:1,834:1,671:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,457:1,150:1,114:1,115:1,676:1},aQd);_._g=function bQd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.D!=null?this.D:this.B;case 3:return dKd(this);case 4:return $Pd(this);case 5:return this.F;case 6:if(b)return bKd(this);return ZJd(this);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),this.A;case 8:return Bcb(),(this.Bb&256)!=0?true:false;case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),this.a;}return bid(this,a-aLd((jGd(),UFd)),XKd((d=BD(Ajd(this,16),26),!d?UFd:d),a),b,c)};_.hh=function cQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 6:!!this.Cb&&(c=(e=this.Db>>16,e>=0?aKd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,6,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Sxd(this.a,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.jh=function dQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 6:return _hd(this,null,6,c);case 7:return !this.A&&(this.A=new K4d(u5,this,7)),Txd(this.A,a,c);case 9:return !this.a&&(this.a=new cUd(g5,this,9,5)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),UFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),UFd)),a,c)};_.lh=function eQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.D!=null&&this.D==this.F;case 3:return !!dKd(this);case 4:return !!$Pd(this);case 5:return this.F!=null&&this.F!=this.D&&this.F!=this.B;case 6:return !!ZJd(this);case 7:return !!this.A&&this.A.i!=0;case 8:return (this.Bb&256)==0;case 9:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.sh=function fQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:lKd(this,GD(b));return;case 2:iKd(this,GD(b));return;case 5:kKd(this,GD(b));return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);!this.A&&(this.A=new K4d(u5,this,7));ytd(this.A,BD(b,14));return;case 8:LPd(this,Ccb(DD(b)));return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);!this.a&&(this.a=new cUd(g5,this,9,5));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),UFd)),XKd((c=BD(Ajd(this,16),26),!c?UFd:c),a),b)};_.zh=function gQd(){return jGd(),UFd};_.Bh=function hQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,179)&&(BD(this.Cb,179).tb=null);pnd(this,null);return;case 2:$Jd(this,null);_Jd(this,this.D);return;case 5:kKd(this,null);return;case 7:!this.A&&(this.A=new K4d(u5,this,7));Uxd(this.A);return;case 8:LPd(this,true);return;case 9:!this.a&&(this.a=new cUd(g5,this,9,5));Uxd(this.a);return;}eid(this,a-aLd((jGd(),UFd)),XKd((b=BD(Ajd(this,16),26),!b?UFd:b),a))};_.Gh=function iQd(){var a,b;if(this.a){for(a=0,b=this.a.i;a<b;++a){Cmd(qud(this.a,a))}}o1d((O6d(),M6d),this).ne();this.Bb|=1};_.zj=function jQd(){return $Pd(this)};_.wj=function kQd(a){if(a!=null){return true}return false};_.Ik=function lQd(a){};var _5=mdb(qte,'EEnumImpl',457);bcb(573,438,{105:1,92:1,90:1,1940:1,678:1,147:1,191:1,56:1,108:1,49:1,97:1,573:1,150:1,114:1,115:1},rQd);_.ne=function AQd(){return this.zb};_.Qg=function sQd(a){return mQd(this,a)};_._g=function tQd(a,b,c){var d,e;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return meb(this.d);case 3:return this.b?this.b:this.a;case 4:return e=this.c,e==null?this.zb:e;case 5:return this.Db>>16==5?BD(this.Cb,671):null;}return bid(this,a-aLd((jGd(),VFd)),XKd((d=BD(Ajd(this,16),26),!d?VFd:d),a),b,c)};_.hh=function uQd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 5:!!this.Cb&&(c=(e=this.Db>>16,e>=0?mQd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,5,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.jh=function vQd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 5:return _hd(this,null,5,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),VFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),VFd)),a,c)};_.lh=function wQd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return this.d!=0;case 3:return !!this.b;case 4:return this.c!=null;case 5:return !!(this.Db>>16==5?BD(this.Cb,671):null);}return cid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.sh=function xQd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:qQd(this,BD(b,19).a);return;case 3:oQd(this,BD(b,1940));return;case 4:pQd(this,GD(b));return;}did(this,a-aLd((jGd(),VFd)),XKd((c=BD(Ajd(this,16),26),!c?VFd:c),a),b)};_.zh=function yQd(){return jGd(),VFd};_.Bh=function zQd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:qQd(this,0);return;case 3:oQd(this,null);return;case 4:pQd(this,null);return;}eid(this,a-aLd((jGd(),VFd)),XKd((b=BD(Ajd(this,16),26),!b?VFd:b),a))};_.Ib=function BQd(){var a;return a=this.c,a==null?this.zb:a};_.b=null;_.c=null;_.d=0;var a6=mdb(qte,'EEnumLiteralImpl',573);var c6=odb(qte,'EFactoryImpl/InternalEDateTimeFormat');bcb(489,1,{2015:1},EQd);var b6=mdb(qte,'EFactoryImpl/1ClientInternalEDateTimeFormat',489);bcb(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},UQd);_.Sg=function VQd(a,b,c){var d;c=_hd(this,a,b,c);if(!!this.e&&JD(a,170)){d=MQd(this,this.e);d!=this.c&&(c=QQd(this,d,c))}return c};_._g=function WQd(a,b,c){var d;switch(a){case 0:return this.f;case 1:return !this.d&&(this.d=new xMd(j5,this,1)),this.d;case 2:if(b)return KQd(this);return this.c;case 3:return this.b;case 4:return this.e;case 5:if(b)return JQd(this);return this.a;}return bid(this,a-aLd((jGd(),XFd)),XKd((d=BD(Ajd(this,16),26),!d?XFd:d),a),b,c)};_.jh=function XQd(a,b,c){var d,e;switch(b){case 0:return IQd(this,null,c);case 1:return !this.d&&(this.d=new xMd(j5,this,1)),Txd(this.d,a,c);case 3:return GQd(this,null,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),XFd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),XFd)),a,c)};_.lh=function YQd(a){var b;switch(a){case 0:return !!this.f;case 1:return !!this.d&&this.d.i!=0;case 2:return !!this.c;case 3:return !!this.b;case 4:return !!this.e;case 5:return !!this.a;}return cid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.sh=function ZQd(a,b){var c;switch(a){case 0:SQd(this,BD(b,87));return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);!this.d&&(this.d=new xMd(j5,this,1));ytd(this.d,BD(b,14));return;case 3:PQd(this,BD(b,87));return;case 4:RQd(this,BD(b,836));return;case 5:NQd(this,BD(b,138));return;}did(this,a-aLd((jGd(),XFd)),XKd((c=BD(Ajd(this,16),26),!c?XFd:c),a),b)};_.zh=function $Qd(){return jGd(),XFd};_.Bh=function _Qd(a){var b;switch(a){case 0:SQd(this,null);return;case 1:!this.d&&(this.d=new xMd(j5,this,1));Uxd(this.d);return;case 3:PQd(this,null);return;case 4:RQd(this,null);return;case 5:NQd(this,null);return;}eid(this,a-aLd((jGd(),XFd)),XKd((b=BD(Ajd(this,16),26),!b?XFd:b),a))};_.Ib=function aRd(){var a;a=new Wfb(Eid(this));a.a+=' (expression: ';TQd(this,a);a.a+=')';return a.a};var FQd;var e6=mdb(qte,'EGenericTypeImpl',241);bcb(1969,1964,Vve);_.Xh=function cRd(a,b){bRd(this,a,b)};_.lk=function dRd(a,b){bRd(this,this.gc(),a);return b};_.pi=function eRd(a){return Ut(this.Gi(),a)};_.Zh=function fRd(){return this.$h()};_.Gi=function gRd(){return new O0d(this)};_.$h=function hRd(){return this._h(0)};_._h=function iRd(a){return this.Gi().Zc(a)};_.mk=function jRd(a,b){ze(this,a,true);return b};_.ii=function kRd(a,b){var c,d;d=Vt(this,b);c=this.Zc(a);c.Rb(d);return d};_.ji=function lRd(a,b){var c;ze(this,b,true);c=this.Zc(a);c.Rb(b)};var B8=mdb(yve,'AbstractSequentialInternalEList',1969);bcb(486,1969,Vve,qRd);_.pi=function rRd(a){return Ut(this.Gi(),a)};_.Zh=function sRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_.Gi=function tRd(){return new w4d(this.a,this.b)};_.$h=function uRd(){if(this.b==null){return LRd(),LRd(),KRd}return this.Jk()};_._h=function vRd(a){var b,c;if(this.b==null){if(a<0||a>1){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Jk();for(b=0;b<a;++b){MRd(c)}return c};_.dc=function wRd(){var a,b,c,d,e,f;if(this.b!=null){for(c=0;c<this.b.length;++c){a=this.b[c];if(!this.Mk()||this.a.mh(a)){f=this.a.bh(a,false);Q6d();if(BD(a,66).Oj()){b=BD(f,153);for(d=0,e=b.gc();d<e;++d){if(oRd(b.il(d))&&b.jl(d)!=null){return false}}}else if(a.$j()){if(!BD(f,14).dc()){return false}}else if(f!=null){return false}}}}return true};_.Kc=function xRd(){return pRd(this)};_.Zc=function yRd(a){var b,c;if(this.b==null){if(a!=0){throw vbb(new qcb(gve+a+', size=0'))}return LRd(),LRd(),KRd}c=this.Lk()?this.Kk():this.Jk();for(b=0;b<a;++b){MRd(c)}return c};_.ii=function zRd(a,b){throw vbb(new bgb)};_.ji=function ARd(a,b){throw vbb(new bgb)};_.Jk=function BRd(){return new RRd(this.a,this.b)};_.Kk=function CRd(){return new dSd(this.a,this.b)};_.Lk=function DRd(){return true};_.gc=function ERd(){var a,b,c,d,e,f,g;e=0;if(this.b!=null){for(c=0;c<this.b.length;++c){a=this.b[c];if(!this.Mk()||this.a.mh(a)){g=this.a.bh(a,false);Q6d();if(BD(a,66).Oj()){b=BD(g,153);for(d=0,f=b.gc();d<f;++d){oRd(b.il(d))&&b.jl(d)!=null&&++e}}else a.$j()?(e+=BD(g,14).gc()):g!=null&&++e}}}return e};_.Mk=function FRd(){return true};var mRd;var R8=mdb(yve,'EContentsEList',486);bcb(1156,486,Vve,GRd);_.Jk=function HRd(){return new hSd(this.a,this.b)};_.Kk=function IRd(){return new fSd(this.a,this.b)};_.Mk=function JRd(){return false};var i6=mdb(qte,'ENamedElementImpl/1',1156);bcb(279,1,Wve,RRd);_.Nb=function URd(a){Rrb(this,a)};_.Rb=function SRd(a){throw vbb(new bgb)};_.Nk=function TRd(a){if(this.g!=0||!!this.e){throw vbb(new Zdb('Iterator already in use or already filtered'))}this.e=a};_.Ob=function VRd(){var a,b,c,d,e,f;switch(this.g){case 3:case 2:{return true}case 1:{return false}case -3:{!this.p?++this.n:this.p.Pb()}default:{if(!this.k||(!this.p?!NRd(this):!ORd(this,this.p))){while(this.d<this.c.length){b=this.c[this.d++];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.p=null;this.o=this.k.gc();this.n=0}else{this.p=!this.j?this.k.Yc():this.j.$h()}if(!this.p?NRd(this):ORd(this,this.p)){e=!this.p?!this.j?this.k.Xb(this.n++):this.j.pi(this.n++):this.p.Pb();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=2;return true}}}this.k=null;this.p=null;this.f=false;this.g=1;return false}else{e=!this.p?!this.j?this.k.Xb(this.n++):this.j.pi(this.n++):this.p.Pb();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=3;return true}}}};_.Sb=function WRd(){var a,b,c,d,e,f;switch(this.g){case -3:case -2:{return true}case -1:{return false}case 3:{!this.p?--this.n:this.p.Ub()}default:{if(!this.k||(!this.p?!PRd(this):!QRd(this,this.p))){while(this.d>0){b=this.c[--this.d];if((!this.e||b.Gj()!=x2||b.aj()!=0)&&(!this.Mk()||this.b.mh(b))){f=this.b.bh(b,this.Lk());this.f=(Q6d(),BD(b,66).Oj());if(this.f||b.$j()){if(this.Lk()){d=BD(f,15);this.k=d}else{d=BD(f,69);this.k=this.j=d}if(JD(this.k,54)){this.o=this.k.gc();this.n=this.o}else{this.p=!this.j?this.k.Zc(this.k.gc()):this.j._h(this.k.gc())}if(!this.p?PRd(this):QRd(this,this.p)){e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}else if(f!=null){this.k=null;this.p=null;c=f;this.i=c;this.g=-2;return true}}}this.k=null;this.p=null;this.g=-1;return false}else{e=!this.p?!this.j?this.k.Xb(--this.n):this.j.pi(--this.n):this.p.Ub();if(this.f){a=BD(e,72);a.ak();c=a.dd();this.i=c}else{c=e;this.i=c}this.g=-3;return true}}}};_.Pb=function XRd(){return MRd(this)};_.Tb=function YRd(){return this.a};_.Ub=function ZRd(){var a;if(this.g<-1||this.Sb()){--this.a;this.g=0;a=this.i;this.Sb();return a}else{throw vbb(new utb)}};_.Vb=function $Rd(){return this.a-1};_.Qb=function _Rd(){throw vbb(new bgb)};_.Lk=function aSd(){return false};_.Wb=function bSd(a){throw vbb(new bgb)};_.Mk=function cSd(){return true};_.a=0;_.d=0;_.f=false;_.g=0;_.n=0;_.o=0;var KRd;var P8=mdb(yve,'EContentsEList/FeatureIteratorImpl',279);bcb(697,279,Wve,dSd);_.Lk=function eSd(){return true};var Q8=mdb(yve,'EContentsEList/ResolvingFeatureIteratorImpl',697);bcb(1157,697,Wve,fSd);_.Mk=function gSd(){return false};var g6=mdb(qte,'ENamedElementImpl/1/1',1157);bcb(1158,279,Wve,hSd);_.Mk=function iSd(){return false};var h6=mdb(qte,'ENamedElementImpl/1/2',1158);bcb(36,143,fve,lSd,mSd,nSd,oSd,pSd,qSd,rSd,sSd,tSd,uSd,vSd,wSd,xSd,ySd,zSd,ASd,BSd,CSd,DSd,ESd,FSd,GSd,HSd,ISd,JSd);_._i=function KSd(){return kSd(this)};_.gj=function LSd(){var a;a=kSd(this);if(a){return a.zj()}return null};_.yi=function MSd(a){this.b==-1&&!!this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj()));return this.c.Og(this.b,a)};_.Ai=function NSd(){return this.c};_.hj=function OSd(){var a;a=kSd(this);if(a){return a.Kj()}return false};_.b=-1;var k6=mdb(qte,'ENotificationImpl',36);bcb(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},SSd);_.Qg=function TSd(a){return PSd(this,a)};_._g=function USd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,26):null;case 11:return !this.d&&(this.d=new K4d(u5,this,11)),this.d;case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),this.c;case 13:return !this.a&&(this.a=new fTd(this,this)),this.a;case 14:return QSd(this);}return bid(this,a-aLd((jGd(),aGd)),XKd((d=BD(Ajd(this,16),26),!d?aGd:d),a),b,c)};_.hh=function VSd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?PSd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Sxd(this.c,a,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.jh=function WSd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);case 11:return !this.d&&(this.d=new K4d(u5,this,11)),Txd(this.d,a,c);case 12:return !this.c&&(this.c=new cUd(p5,this,12,10)),Txd(this.c,a,c);case 14:return Txd(QSd(this),a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),aGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),aGd)),a,c)};_.lh=function XSd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,26):null);case 11:return !!this.d&&this.d.i!=0;case 12:return !!this.c&&this.c.i!=0;case 13:return !!this.a&&QSd(this.a.a).i!=0&&!(!!this.b&&QTd(this.b));case 14:return !!this.b&&QTd(this.b);}return cid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.sh=function YSd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);!this.d&&(this.d=new K4d(u5,this,11));ytd(this.d,BD(b,14));return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);!this.c&&(this.c=new cUd(p5,this,12,10));ytd(this.c,BD(b,14));return;case 13:!this.a&&(this.a=new fTd(this,this));vwd(this.a);!this.a&&(this.a=new fTd(this,this));ytd(this.a,BD(b,14));return;case 14:Uxd(QSd(this));ytd(QSd(this),BD(b,14));return;}did(this,a-aLd((jGd(),aGd)),XKd((c=BD(Ajd(this,16),26),!c?aGd:c),a),b)};_.zh=function ZSd(){return jGd(),aGd};_.Bh=function $Sd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 11:!this.d&&(this.d=new K4d(u5,this,11));Uxd(this.d);return;case 12:!this.c&&(this.c=new cUd(p5,this,12,10));Uxd(this.c);return;case 13:!!this.a&&vwd(this.a);return;case 14:!!this.b&&Uxd(this.b);return;}eid(this,a-aLd((jGd(),aGd)),XKd((b=BD(Ajd(this,16),26),!b?aGd:b),a))};_.Gh=function _Sd(){var a,b;if(this.c){for(a=0,b=this.c.i;a<b;++a){Cmd(qud(this.c,a))}}wId(this);this.Bb|=1};var p6=mdb(qte,'EOperationImpl',399);bcb(505,742,Uve,fTd);_.Hi=function iTd(a,b){aTd(this,a,BD(b,138))};_.Ii=function jTd(a){bTd(this,BD(a,138))};_.Oi=function pTd(a){var b,c;return b=BD(qud(QSd(this.a),a),87),c=b.c,c?c:(jGd(),YFd)};_.Ti=function uTd(a){var b,c;return b=BD(Xxd(QSd(this.a),a),87),c=b.c,c?c:(jGd(),YFd)};_.Ui=function vTd(a,b){return dTd(this,a,BD(b,138))};_.ai=function gTd(){return false};_.Zi=function hTd(a,b,c,d,e){return null};_.Ji=function kTd(){return new NTd(this)};_.Ki=function lTd(){Uxd(QSd(this.a))};_.Li=function mTd(a){return cTd(this,a)};_.Mi=function nTd(a){var b,c;for(c=a.Kc();c.Ob();){b=c.Pb();if(!cTd(this,b)){return false}}return true};_.Ni=function oTd(a){var b,c,d;if(JD(a,15)){d=BD(a,15);if(d.gc()==QSd(this.a).i){for(b=d.Kc(),c=new Fyd(this);b.Ob();){if(PD(b.Pb())!==PD(Dyd(c))){return false}}return true}}return false};_.Pi=function qTd(){var a,b,c,d,e;c=1;for(b=new Fyd(QSd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);d=(e=a.c,e?e:(jGd(),YFd));c=31*c+(!d?0:tb(d))}return c};_.Qi=function rTd(a){var b,c,d,e;d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);if(PD(a)===PD((e=b.c,e?e:(jGd(),YFd)))){return d}++d}return -1};_.Ri=function sTd(){return QSd(this.a).i==0};_.Si=function tTd(){return null};_.Vi=function wTd(){return QSd(this.a).i};_.Wi=function xTd(){var a,b,c,d,e,f;f=QSd(this.a).i;e=KC(SI,Uhe,1,f,5,1);c=0;for(b=new Fyd(QSd(this.a));b.e!=b.i.gc();){a=BD(Dyd(b),87);e[c++]=(d=a.c,d?d:(jGd(),YFd))}return e};_.Xi=function yTd(a){var b,c,d,e,f,g,h;h=QSd(this.a).i;if(a.length<h){e=izd(rb(a).c,h);a=e}a.length>h&&NC(a,h,null);d=0;for(c=new Fyd(QSd(this.a));c.e!=c.i.gc();){b=BD(Dyd(c),87);f=(g=b.c,g?g:(jGd(),YFd));NC(a,d++,f)}return a};_.Yi=function zTd(){var a,b,c,d,e;e=new Hfb;e.a+='[';a=QSd(this.a);for(b=0,d=QSd(this.a).i;b<d;){Efb(e,xfb((c=BD(qud(a,b),87).c,c?c:(jGd(),YFd))));++b<d&&(e.a+=She,e)}e.a+=']';return e.a};_.$i=function ATd(a){};_.aj=function BTd(){return 13};_.Bk=function CTd(){return true};_.bj=function DTd(){return false};_.Ck=function ETd(){return false};_.Dk=function FTd(){return false};_.Ek=function GTd(){return true};_.rk=function HTd(){return false};_.Fk=function ITd(){return true};_.wj=function JTd(a){return JD(a,138)};_.fj=function KTd(){return RSd(this.a)};_.hi=function LTd(){return true};_.ni=function MTd(){return true};var n6=mdb(qte,'EOperationImpl/1',505);bcb(1340,1964,Lie,NTd);_.Zc=function OTd(a){return ztd(this.a,a)};_.gc=function PTd(){return QSd(this.a.a).i};var m6=mdb(qte,'EOperationImpl/1/1',1340);bcb(1341,545,Pve,UTd);_.ii=function YTd(a,b){var c,d;return c=BD(Wxd(this,a,b),87),oid(this.e)&&GLd(this,new ESd(this.a,7,(jGd(),bGd),meb(b),(d=c.c,d?d:YFd),a)),c};_.jj=function ZTd(a,b){return RTd(this,BD(a,87),b)};_.kj=function $Td(a,b){return STd(this,BD(a,87),b)};_.lj=function _Td(a,b,c){return TTd(this,BD(a,87),BD(b,87),c)};_.Zi=function VTd(a,b,c,d,e){switch(a){case 3:{return FLd(this,a,b,c,d,this.i>1)}case 5:{return FLd(this,a,b,c,d,this.i-BD(c,15).gc()>0)}default:{return new pSd(this.e,a,this.c,b,c,d,true)}}};_.ij=function WTd(){return true};_.fj=function XTd(){return QTd(this)};_.Xj=function aUd(){Uxd(this)};var o6=mdb(qte,'EOperationImpl/2',1341);bcb(498,1,{1938:1,498:1},bUd);var q6=mdb(qte,'EPackageImpl/1',498);bcb(16,85,Pve,cUd);_.zk=function dUd(){return this.d};_.Ak=function eUd(){return this.b};_.Dk=function fUd(){return true};_.b=0;var b9=mdb(yve,'EObjectContainmentWithInverseEList',16);bcb(353,16,Pve,gUd);_.Ek=function hUd(){return true};_.li=function iUd(a,b){return ILd(this,a,BD(b,56))};var $8=mdb(yve,'EObjectContainmentWithInverseEList/Resolving',353);bcb(298,353,Pve,jUd);_.ci=function kUd(){this.a.tb=null};var r6=mdb(qte,'EPackageImpl/2',298);bcb(1228,1,{},lUd);var s6=mdb(qte,'EPackageImpl/3',1228);bcb(718,43,fke,oUd);_._b=function pUd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};var u6=mdb(qte,'EPackageRegistryImpl',718);bcb(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},rUd);_.Qg=function sUd(a){return qUd(this,a)};_._g=function tUd(a,b,c){var d,e,f;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),f=this.t,f>1||f==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return this.Db>>16==10?BD(this.Cb,59):null;}return bid(this,a-aLd((jGd(),dGd)),XKd((d=BD(Ajd(this,16),26),!d?dGd:d),a),b,c)};_.hh=function uUd(a,b,c){var d,e,f;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Sxd(this.Ab,a,c);case 10:!!this.Cb&&(c=(e=this.Db>>16,e>=0?qUd(this,c):this.Cb.ih(this,-1-e,null,c)));return _hd(this,a,10,c);}return f=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),f.Nj().Qj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.jh=function vUd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 9:return vId(this,c);case 10:return _hd(this,null,10,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),dGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),dGd)),a,c)};_.lh=function wUd(a){var b,c,d;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return d=this.t,d>1||d==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return !!(this.Db>>16==10?BD(this.Cb,59):null);}return cid(this,a-aLd((jGd(),dGd)),XKd((b=BD(Ajd(this,16),26),!b?dGd:b),a))};_.zh=function xUd(){return jGd(),dGd};var v6=mdb(qte,'EParameterImpl',509);bcb(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},FUd);_._g=function GUd(a,b,c){var d,e,f,g;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return Bcb(),(this.Bb&256)!=0?true:false;case 3:return Bcb(),(this.Bb&512)!=0?true:false;case 4:return meb(this.s);case 5:return meb(this.t);case 6:return Bcb(),g=this.t,g>1||g==-1?true:false;case 7:return Bcb(),e=this.s,e>=1?true:false;case 8:if(b)return wId(this);return this.r;case 9:return this.q;case 10:return Bcb(),(this.Bb&zte)!=0?true:false;case 11:return Bcb(),(this.Bb&Dve)!=0?true:false;case 12:return Bcb(),(this.Bb&Rje)!=0?true:false;case 13:return this.j;case 14:return VId(this);case 15:return Bcb(),(this.Bb&Cve)!=0?true:false;case 16:return Bcb(),(this.Bb&oie)!=0?true:false;case 17:return WId(this);case 18:return Bcb(),(this.Bb&ote)!=0?true:false;case 19:return Bcb(),f=zUd(this),!!f&&(f.Bb&ote)!=0?true:false;case 20:return Bcb(),(this.Bb&Tje)!=0?true:false;case 21:if(b)return zUd(this);return this.b;case 22:if(b)return AUd(this);return yUd(this);case 23:return !this.a&&(this.a=new _4d(b5,this,23)),this.a;}return bid(this,a-aLd((jGd(),eGd)),XKd((d=BD(Ajd(this,16),26),!d?eGd:d),a),b,c)};_.lh=function HUd(a){var b,c,d,e;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return (this.Bb&256)==0;case 3:return (this.Bb&512)==0;case 4:return this.s!=0;case 5:return this.t!=1;case 6:return e=this.t,e>1||e==-1;case 7:return c=this.s,c>=1;case 8:return !!this.r&&!this.q.e&&LQd(this.q).i==0;case 9:return !!this.q&&!(!!this.r&&!this.q.e&&LQd(this.q).i==0);case 10:return (this.Bb&zte)==0;case 11:return (this.Bb&Dve)!=0;case 12:return (this.Bb&Rje)!=0;case 13:return this.j!=null;case 14:return VId(this)!=null;case 15:return (this.Bb&Cve)!=0;case 16:return (this.Bb&oie)!=0;case 17:return !!WId(this);case 18:return (this.Bb&ote)!=0;case 19:return d=zUd(this),!!d&&(d.Bb&ote)!=0;case 20:return (this.Bb&Tje)==0;case 21:return !!this.b;case 22:return !!yUd(this);case 23:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.sh=function IUd(a,b){var c,d;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:cJd(this,GD(b));return;case 2:BId(this,Ccb(DD(b)));return;case 3:CId(this,Ccb(DD(b)));return;case 4:AId(this,BD(b,19).a);return;case 5:DId(this,BD(b,19).a);return;case 8:yId(this,BD(b,138));return;case 9:d=xId(this,BD(b,87),null);!!d&&d.Fi();return;case 10:ZId(this,Ccb(DD(b)));return;case 11:fJd(this,Ccb(DD(b)));return;case 12:dJd(this,Ccb(DD(b)));return;case 13:$Id(this,GD(b));return;case 15:eJd(this,Ccb(DD(b)));return;case 16:aJd(this,Ccb(DD(b)));return;case 18:BUd(this,Ccb(DD(b)));return;case 20:EUd(this,Ccb(DD(b)));return;case 21:DUd(this,BD(b,18));return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);!this.a&&(this.a=new _4d(b5,this,23));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),eGd)),XKd((c=BD(Ajd(this,16),26),!c?eGd:c),a),b)};_.zh=function JUd(){return jGd(),eGd};_.Bh=function KUd(a){var b,c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),4);pnd(this,null);return;case 2:BId(this,true);return;case 3:CId(this,true);return;case 4:AId(this,0);return;case 5:DId(this,1);return;case 8:yId(this,null);return;case 9:c=xId(this,null,null);!!c&&c.Fi();return;case 10:ZId(this,true);return;case 11:fJd(this,false);return;case 12:dJd(this,false);return;case 13:this.i=null;_Id(this,null);return;case 15:eJd(this,false);return;case 16:aJd(this,false);return;case 18:CUd(this,false);JD(this.Cb,88)&&XMd($Kd(BD(this.Cb,88)),2);return;case 20:EUd(this,true);return;case 21:DUd(this,null);return;case 23:!this.a&&(this.a=new _4d(b5,this,23));Uxd(this.a);return;}eid(this,a-aLd((jGd(),eGd)),XKd((b=BD(Ajd(this,16),26),!b?eGd:b),a))};_.Gh=function LUd(){AUd(this);a2d(q1d((O6d(),M6d),this));wId(this);this.Bb|=1};_.Lj=function MUd(){return zUd(this)};_.qk=function NUd(){var a;return a=zUd(this),!!a&&(a.Bb&ote)!=0};_.rk=function OUd(){return (this.Bb&ote)!=0};_.sk=function PUd(){return (this.Bb&Tje)!=0};_.nk=function QUd(a,b){this.c=null;return zId(this,a,b)};_.Ib=function RUd(){var a;if((this.Db&64)!=0)return gJd(this);a=new Jfb(gJd(this));a.a+=' (containment: ';Ffb(a,(this.Bb&ote)!=0);a.a+=', resolveProxies: ';Ffb(a,(this.Bb&Tje)!=0);a.a+=')';return a.a};var w6=mdb(qte,'EReferenceImpl',99);bcb(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},XUd);_.Fb=function bVd(a){return this===a};_.cd=function dVd(){return this.b};_.dd=function eVd(){return this.c};_.Hb=function fVd(){return FCb(this)};_.Uh=function hVd(a){SUd(this,GD(a))};_.ed=function iVd(a){return WUd(this,GD(a))};_._g=function YUd(a,b,c){var d;switch(a){case 0:return this.b;case 1:return this.c;}return bid(this,a-aLd((jGd(),fGd)),XKd((d=BD(Ajd(this,16),26),!d?fGd:d),a),b,c)};_.lh=function ZUd(a){var b;switch(a){case 0:return this.b!=null;case 1:return this.c!=null;}return cid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.sh=function $Ud(a,b){var c;switch(a){case 0:TUd(this,GD(b));return;case 1:VUd(this,GD(b));return;}did(this,a-aLd((jGd(),fGd)),XKd((c=BD(Ajd(this,16),26),!c?fGd:c),a),b)};_.zh=function _Ud(){return jGd(),fGd};_.Bh=function aVd(a){var b;switch(a){case 0:UUd(this,null);return;case 1:VUd(this,null);return;}eid(this,a-aLd((jGd(),fGd)),XKd((b=BD(Ajd(this,16),26),!b?fGd:b),a))};_.Sh=function cVd(){var a;if(this.a==-1){a=this.b;this.a=a==null?0:LCb(a)}return this.a};_.Th=function gVd(a){this.a=a};_.Ib=function jVd(){var a;if((this.Db&64)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (key: ';Efb(a,this.b);a.a+=', value: ';Efb(a,this.c);a.a+=')';return a.a};_.a=-1;_.b=null;_.c=null;var x6=mdb(qte,'EStringToStringMapEntryImpl',548);var D9=odb(yve,'FeatureMap/Entry/Internal');bcb(565,1,Xve);_.Ok=function mVd(a){return this.Pk(BD(a,49))};_.Pk=function nVd(a){return this.Ok(a)};_.Fb=function oVd(a){var b,c;if(this===a){return true}else if(JD(a,72)){b=BD(a,72);if(b.ak()==this.c){c=this.dd();return c==null?b.dd()==null:pb(c,b.dd())}else{return false}}else{return false}};_.ak=function pVd(){return this.c};_.Hb=function qVd(){var a;a=this.dd();return tb(this.c)^(a==null?0:tb(a))};_.Ib=function rVd(){var a,b;a=this.c;b=bKd(a.Hj()).Ph();a.ne();return (b!=null&&b.length!=0?b+':'+a.ne():a.ne())+'='+this.dd()};var y6=mdb(qte,'EStructuralFeatureImpl/BasicFeatureMapEntry',565);bcb(776,565,Xve,uVd);_.Pk=function vVd(a){return new uVd(this.c,a)};_.dd=function wVd(){return this.a};_.Qk=function xVd(a,b,c){return sVd(this,a,this.a,b,c)};_.Rk=function yVd(a,b,c){return tVd(this,a,this.a,b,c)};var z6=mdb(qte,'EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry',776);bcb(1314,1,{},zVd);_.Pj=function AVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.nl(this.a).Wj(d)};_.Qj=function BVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.el(this.a,d,e)};_.Rj=function CVd(a,b,c,d,e){var f;f=BD(gid(a,this.b),215);return f.fl(this.a,d,e)};_.Sj=function DVd(a,b,c){var d;d=BD(gid(a,this.b),215);return d.nl(this.a).fj()};_.Tj=function EVd(a,b,c,d){var e;e=BD(gid(a,this.b),215);e.nl(this.a).Wb(d)};_.Uj=function FVd(a,b,c){return BD(gid(a,this.b),215).nl(this.a)};_.Vj=function GVd(a,b,c){var d;d=BD(gid(a,this.b),215);d.nl(this.a).Xj()};var A6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator',1314);bcb(89,1,{},IVd,JVd,KVd,LVd);_.Pj=function MVd(a,b,c,d,e){var f;f=b.Ch(c);f==null&&b.Dh(c,f=HVd(this,a));if(!e){switch(this.e){case 50:case 41:return BD(f,589).sj();case 40:return BD(f,215).kl();}}return f};_.Qj=function NVd(a,b,c,d,e){var f,g;g=b.Ch(c);g==null&&b.Dh(c,g=HVd(this,a));f=BD(g,69).lk(d,e);return f};_.Rj=function OVd(a,b,c,d,e){var f;f=b.Ch(c);f!=null&&(e=BD(f,69).mk(d,e));return e};_.Sj=function PVd(a,b,c){var d;d=b.Ch(c);return d!=null&&BD(d,76).fj()};_.Tj=function QVd(a,b,c,d){var e;e=BD(b.Ch(c),76);!e&&b.Dh(c,e=HVd(this,a));e.Wb(d)};_.Uj=function RVd(a,b,c){var d,e;e=b.Ch(c);e==null&&b.Dh(c,e=HVd(this,a));if(JD(e,76)){return BD(e,76)}else{d=BD(b.Ch(c),15);return new iYd(d)}};_.Vj=function SVd(a,b,c){var d;d=BD(b.Ch(c),76);!d&&b.Dh(c,d=HVd(this,a));d.Xj()};_.b=0;_.e=0;var B6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateMany',89);bcb(504,1,{});_.Qj=function WVd(a,b,c,d,e){throw vbb(new bgb)};_.Rj=function XVd(a,b,c,d,e){throw vbb(new bgb)};_.Uj=function YVd(a,b,c){return new ZVd(this,a,b,c)};var TVd;var i7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle',504);bcb(1331,1,zve,ZVd);_.Wj=function $Vd(a){return this.a.Pj(this.c,this.d,this.b,a,true)};_.fj=function _Vd(){return this.a.Sj(this.c,this.d,this.b)};_.Wb=function aWd(a){this.a.Tj(this.c,this.d,this.b,a)};_.Xj=function bWd(){this.a.Vj(this.c,this.d,this.b)};_.b=0;var C6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingle/1',1331);bcb(769,504,{},cWd);_.Pj=function dWd(a,b,c,d,e){return Nid(a,a.eh(),a.Vg())==this.b?this.sk()&&d?aid(a):a.eh():null};_.Qj=function eWd(a,b,c,d,e){var f,g;!!a.eh()&&(e=(f=a.Vg(),f>=0?a.Qg(e):a.eh().ih(a,-1-f,null,e)));g=bLd(a.Tg(),this.e);return a.Sg(d,g,e)};_.Rj=function fWd(a,b,c,d,e){var f;f=bLd(a.Tg(),this.e);return a.Sg(null,f,e)};_.Sj=function gWd(a,b,c){var d;d=bLd(a.Tg(),this.e);return !!a.eh()&&a.Vg()==d};_.Tj=function hWd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}e=a.eh();g=bLd(a.Tg(),this.e);if(PD(d)!==PD(e)||a.Vg()!=g&&d!=null){if(p6d(a,BD(d,56)))throw vbb(new Wdb(ste+a.Ib()));i=null;!!e&&(i=(f=a.Vg(),f>=0?a.Qg(i):a.eh().ih(a,-1-f,null,i)));h=BD(d,49);!!h&&(i=h.gh(a,bLd(h.Tg(),this.b),null,i));i=a.Sg(h,g,i);!!i&&i.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new nSd(a,1,g,d,d))}};_.Vj=function iWd(a,b,c){var d,e,f,g;d=a.eh();if(d){g=(e=a.Vg(),e>=0?a.Qg(null):a.eh().ih(a,-1-e,null,null));f=bLd(a.Tg(),this.e);g=a.Sg(null,f,g);!!g&&g.Fi()}else{a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,1,this.e,null,null))}};_.sk=function jWd(){return false};var E6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainer',769);bcb(1315,769,{},kWd);_.sk=function lWd(){return true};var D6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving',1315);bcb(563,504,{});_.Pj=function oWd(a,b,c,d,e){var f;return f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f};_.Sj=function pWd(a,b,c){var d;d=b.Ch(c);return d!=null&&(PD(d)===PD(TVd)||!pb(d,this.b))};_.Tj=function qWd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=(f=b.Ch(c),f==null?this.b:PD(f)===PD(TVd)?null:f);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Tk(a,1,this.e,e,d))}else{if(d==null){this.c!=null?b.Dh(c,null):this.b!=null?b.Dh(c,TVd):b.Dh(c,null)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function rWd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=(e=b.Ch(c),e==null?this.b:PD(e)===PD(TVd)?null:e);b.Eh(c);Uhd(a,this.d.Tk(a,1,this.e,d,this.b))}else{b.Eh(c)}};_.Sk=function sWd(a){throw vbb(new Bdb)};var T6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData',563);bcb($ve,1,{},DWd);_.Tk=function EWd(a,b,c,d,e){return new DSd(a,b,c,d,e)};_.Uk=function FWd(a,b,c,d,e,f){return new FSd(a,b,c,d,e,f)};var tWd,uWd,vWd,wWd,xWd,yWd,zWd,AWd,BWd;var N6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator',$ve);bcb(1332,$ve,{},GWd);_.Tk=function HWd(a,b,c,d,e){return new ISd(a,b,c,Ccb(DD(d)),Ccb(DD(e)))};_.Uk=function IWd(a,b,c,d,e,f){return new JSd(a,b,c,Ccb(DD(d)),Ccb(DD(e)),f)};var F6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1',1332);bcb(1333,$ve,{},JWd);_.Tk=function KWd(a,b,c,d,e){return new rSd(a,b,c,BD(d,217).a,BD(e,217).a)};_.Uk=function LWd(a,b,c,d,e,f){return new sSd(a,b,c,BD(d,217).a,BD(e,217).a,f)};var G6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2',1333);bcb(1334,$ve,{},MWd);_.Tk=function NWd(a,b,c,d,e){return new tSd(a,b,c,BD(d,172).a,BD(e,172).a)};_.Uk=function OWd(a,b,c,d,e,f){return new uSd(a,b,c,BD(d,172).a,BD(e,172).a,f)};var H6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3',1334);bcb(1335,$ve,{},PWd);_.Tk=function QWd(a,b,c,d,e){return new vSd(a,b,c,Edb(ED(d)),Edb(ED(e)))};_.Uk=function RWd(a,b,c,d,e,f){return new wSd(a,b,c,Edb(ED(d)),Edb(ED(e)),f)};var I6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4',1335);bcb(1336,$ve,{},SWd);_.Tk=function TWd(a,b,c,d,e){return new xSd(a,b,c,BD(d,155).a,BD(e,155).a)};_.Uk=function UWd(a,b,c,d,e,f){return new ySd(a,b,c,BD(d,155).a,BD(e,155).a,f)};var J6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5',1336);bcb(1337,$ve,{},VWd);_.Tk=function WWd(a,b,c,d,e){return new zSd(a,b,c,BD(d,19).a,BD(e,19).a)};_.Uk=function XWd(a,b,c,d,e,f){return new ASd(a,b,c,BD(d,19).a,BD(e,19).a,f)};var K6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6',1337);bcb(1338,$ve,{},YWd);_.Tk=function ZWd(a,b,c,d,e){return new BSd(a,b,c,BD(d,162).a,BD(e,162).a)};_.Uk=function $Wd(a,b,c,d,e,f){return new CSd(a,b,c,BD(d,162).a,BD(e,162).a,f)};var L6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7',1338);bcb(1339,$ve,{},_Wd);_.Tk=function aXd(a,b,c,d,e){return new GSd(a,b,c,BD(d,184).a,BD(e,184).a)};_.Uk=function bXd(a,b,c,d,e,f){return new HSd(a,b,c,BD(d,184).a,BD(e,184).a,f)};var M6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8',1339);bcb(1317,563,{},cXd);_.Sk=function dXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var O6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic',1317);bcb(1318,563,{},eXd);_.Sk=function fXd(a){};var P6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic',1318);bcb(770,563,{});_.Sj=function gXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function hXd(a,b,c,d){var e,f;if(a.Lg()&&a.Mg()){e=true;f=b.Ch(c);if(f==null){e=false;f=this.b}else PD(f)===PD(TVd)&&(f=null);if(d==null){if(this.c!=null){b.Dh(c,null);d=this.b}else{b.Dh(c,TVd)}}else{this.Sk(d);b.Dh(c,d)}Uhd(a,this.d.Uk(a,1,this.e,f,d,!e))}else{if(d==null){this.c!=null?b.Dh(c,null):b.Dh(c,TVd)}else{this.Sk(d);b.Dh(c,d)}}};_.Vj=function iXd(a,b,c){var d,e;if(a.Lg()&&a.Mg()){d=true;e=b.Ch(c);if(e==null){d=false;e=this.b}else PD(e)===PD(TVd)&&(e=null);b.Eh(c);Uhd(a,this.d.Uk(a,2,this.e,e,this.b,d))}else{b.Eh(c)}};var S6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable',770);bcb(1319,770,{},jXd);_.Sk=function kXd(a){if(!this.a.wj(a)){throw vbb(new Cdb(Yve+rb(a)+Zve+this.a+"'"))}};var Q6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic',1319);bcb(1320,770,{},lXd);_.Sk=function mXd(a){};var R6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic',1320);bcb(398,504,{},nXd);_.Pj=function pXd(a,b,c,d,e){var f,g,h,i,j;j=b.Ch(c);if(this.Kj()&&PD(j)===PD(TVd)){return null}else if(this.sk()&&d&&j!=null){h=BD(j,49);if(h.kh()){i=xid(a,h);if(h!=i){if(!fKd(this.a,i)){throw vbb(new Cdb(Yve+rb(i)+Zve+this.a+"'"))}b.Dh(c,j=i);if(this.rk()){f=BD(i,49);g=h.ih(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(h.Tg(),this.b),null,null);!f.eh()&&(g=f.gh(a,!this.b?-1-bLd(a.Tg(),this.e):bLd(f.Tg(),this.b),null,g));!!g&&g.Fi()}a.Lg()&&a.Mg()&&Uhd(a,new DSd(a,9,this.e,h,i))}}return j}else{return j}};_.Qj=function qXd(a,b,c,d,e){var f,g;g=b.Ch(c);PD(g)===PD(TVd)&&(g=null);b.Dh(c,d);if(this.bj()){if(PD(g)!==PD(d)&&g!=null){f=BD(g,49);e=f.ih(a,bLd(f.Tg(),this.b),null,e)}}else this.rk()&&g!=null&&(e=BD(g,49).ih(a,-1-bLd(a.Tg(),this.e),null,e));if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));e.Ei(new DSd(a,1,this.e,g,d))}return e};_.Rj=function rXd(a,b,c,d,e){var f;f=b.Ch(c);PD(f)===PD(TVd)&&(f=null);b.Eh(c);if(a.Lg()&&a.Mg()){!e&&(e=new Ixd(4));this.Kj()?e.Ei(new DSd(a,2,this.e,f,null)):e.Ei(new DSd(a,1,this.e,f,null))}return e};_.Sj=function sXd(a,b,c){var d;d=b.Ch(c);return d!=null};_.Tj=function tXd(a,b,c,d){var e,f,g,h,i;if(d!=null&&!fKd(this.a,d)){throw vbb(new Cdb(Yve+(JD(d,56)?gLd(BD(d,56).Tg()):idb(rb(d)))+Zve+this.a+"'"))}i=b.Ch(c);h=i!=null;this.Kj()&&PD(i)===PD(TVd)&&(i=null);g=null;if(this.bj()){if(PD(i)!==PD(d)){if(i!=null){e=BD(i,49);g=e.ih(a,bLd(e.Tg(),this.b),null,g)}if(d!=null){e=BD(d,49);g=e.gh(a,bLd(e.Tg(),this.b),null,g)}}}else if(this.rk()){if(PD(i)!==PD(d)){i!=null&&(g=BD(i,49).ih(a,-1-bLd(a.Tg(),this.e),null,g));d!=null&&(g=BD(d,49).gh(a,-1-bLd(a.Tg(),this.e),null,g))}}d==null&&this.Kj()?b.Dh(c,TVd):b.Dh(c,d);if(a.Lg()&&a.Mg()){f=new FSd(a,1,this.e,i,d,this.Kj()&&!h);if(!g){Uhd(a,f)}else{g.Ei(f);g.Fi()}}else !!g&&g.Fi()};_.Vj=function uXd(a,b,c){var d,e,f,g,h;h=b.Ch(c);g=h!=null;this.Kj()&&PD(h)===PD(TVd)&&(h=null);f=null;if(h!=null){if(this.bj()){d=BD(h,49);f=d.ih(a,bLd(d.Tg(),this.b),null,f)}else this.rk()&&(f=BD(h,49).ih(a,-1-bLd(a.Tg(),this.e),null,f))}b.Eh(c);if(a.Lg()&&a.Mg()){e=new FSd(a,this.Kj()?2:1,this.e,h,null,g);if(!f){Uhd(a,e)}else{f.Ei(e);f.Fi()}}else !!f&&f.Fi()};_.bj=function vXd(){return false};_.rk=function wXd(){return false};_.sk=function xXd(){return false};_.Kj=function yXd(){return false};var h7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObject',398);bcb(564,398,{},zXd);_.rk=function AXd(){return true};var _6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment',564);bcb(1323,564,{},BXd);_.sk=function CXd(){return true};var U6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving',1323);bcb(772,564,{},DXd);_.Kj=function EXd(){return true};var W6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable',772);bcb(1325,772,{},FXd);_.sk=function GXd(){return true};var V6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving',1325);bcb(640,564,{},HXd);_.bj=function IXd(){return true};var $6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse',640);bcb(1324,640,{},JXd);_.sk=function KXd(){return true};var X6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving',1324);bcb(773,640,{},LXd);_.Kj=function MXd(){return true};var Z6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable',773);bcb(1326,773,{},NXd);_.sk=function OXd(){return true};var Y6=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving',1326);bcb(641,398,{},PXd);_.sk=function QXd(){return true};var d7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving',641);bcb(1327,641,{},RXd);_.Kj=function SXd(){return true};var a7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable',1327);bcb(774,641,{},TXd);_.bj=function UXd(){return true};var c7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse',774);bcb(1328,774,{},VXd);_.Kj=function WXd(){return true};var b7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable',1328);bcb(1321,398,{},XXd);_.Kj=function YXd(){return true};var e7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable',1321);bcb(771,398,{},ZXd);_.bj=function $Xd(){return true};var g7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse',771);bcb(1322,771,{},_Xd);_.Kj=function aYd(){return true};var f7=mdb(qte,'EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable',1322);bcb(775,565,Xve,dYd);_.Pk=function eYd(a){return new dYd(this.a,this.c,a)};_.dd=function fYd(){return this.b};_.Qk=function gYd(a,b,c){return bYd(this,a,this.b,c)};_.Rk=function hYd(a,b,c){return cYd(this,a,this.b,c)};var j7=mdb(qte,'EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry',775);bcb(1329,1,zve,iYd);_.Wj=function jYd(a){return this.a};_.fj=function kYd(){return JD(this.a,95)?BD(this.a,95).fj():!this.a.dc()};_.Wb=function lYd(a){this.a.$b();this.a.Gc(BD(a,15))};_.Xj=function mYd(){JD(this.a,95)?BD(this.a,95).Xj():this.a.$b()};var k7=mdb(qte,'EStructuralFeatureImpl/SettingMany',1329);bcb(1330,565,Xve,nYd);_.Ok=function oYd(a){return new sYd((Q8d(),P8d),this.b.Ih(this.a,a))};_.dd=function pYd(){return null};_.Qk=function qYd(a,b,c){return c};_.Rk=function rYd(a,b,c){return c};var l7=mdb(qte,'EStructuralFeatureImpl/SimpleContentFeatureMapEntry',1330);bcb(642,565,Xve,sYd);_.Ok=function tYd(a){return new sYd(this.c,a)};_.dd=function uYd(){return this.a};_.Qk=function vYd(a,b,c){return c};_.Rk=function wYd(a,b,c){return c};var m7=mdb(qte,'EStructuralFeatureImpl/SimpleFeatureMapEntry',642);bcb(391,497,oue,xYd);_.ri=function yYd(a){return KC(c5,Uhe,26,a,0,1)};_.ni=function zYd(){return false};var o7=mdb(qte,'ESuperAdapter/1',391);bcb(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},BYd);_._g=function CYd(a,b,c){var d;switch(a){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),this.Ab;case 1:return this.zb;case 2:return !this.a&&(this.a=new KYd(this,j5,this)),this.a;}return bid(this,a-aLd((jGd(),iGd)),XKd((d=BD(Ajd(this,16),26),!d?iGd:d),a),b,c)};_.jh=function DYd(a,b,c){var d,e;switch(b){case 0:return !this.Ab&&(this.Ab=new cUd(a5,this,0,3)),Txd(this.Ab,a,c);case 2:return !this.a&&(this.a=new KYd(this,j5,this)),Txd(this.a,a,c);}return e=BD(XKd((d=BD(Ajd(this,16),26),!d?(jGd(),iGd):d),b),66),e.Nj().Rj(this,yjd(this),b-aLd((jGd(),iGd)),a,c)};_.lh=function EYd(a){var b;switch(a){case 0:return !!this.Ab&&this.Ab.i!=0;case 1:return this.zb!=null;case 2:return !!this.a&&this.a.i!=0;}return cid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};_.sh=function FYd(a,b){var c;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);!this.Ab&&(this.Ab=new cUd(a5,this,0,3));ytd(this.Ab,BD(b,14));return;case 1:pnd(this,GD(b));return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);!this.a&&(this.a=new KYd(this,j5,this));ytd(this.a,BD(b,14));return;}did(this,a-aLd((jGd(),iGd)),XKd((c=BD(Ajd(this,16),26),!c?iGd:c),a),b)};_.zh=function GYd(){return jGd(),iGd};_.Bh=function HYd(a){var b;switch(a){case 0:!this.Ab&&(this.Ab=new cUd(a5,this,0,3));Uxd(this.Ab);return;case 1:pnd(this,null);return;case 2:!this.a&&(this.a=new KYd(this,j5,this));Uxd(this.a);return;}eid(this,a-aLd((jGd(),iGd)),XKd((b=BD(Ajd(this,16),26),!b?iGd:b),a))};var u7=mdb(qte,'ETypeParameterImpl',444);bcb(445,85,Pve,KYd);_.cj=function LYd(a,b){return IYd(this,BD(a,87),b)};_.dj=function MYd(a,b){return JYd(this,BD(a,87),b)};var q7=mdb(qte,'ETypeParameterImpl/1',445);bcb(634,43,fke,NYd);_.ec=function OYd(){return new RYd(this)};var t7=mdb(qte,'ETypeParameterImpl/2',634);bcb(556,eie,fie,RYd);_.Fc=function SYd(a){return PYd(this,BD(a,87))};_.Gc=function TYd(a){var b,c,d;d=false;for(c=a.Kc();c.Ob();){b=BD(c.Pb(),87);Rhb(this.a,b,'')==null&&(d=true)}return d};_.$b=function UYd(){Uhb(this.a)};_.Hc=function VYd(a){return Mhb(this.a,a)};_.Kc=function WYd(){var a;return a=new nib((new eib(this.a)).a),new ZYd(a)};_.Mc=function XYd(a){return QYd(this,a)};_.gc=function YYd(){return Vhb(this.a)};var s7=mdb(qte,'ETypeParameterImpl/2/1',556);bcb(557,1,aie,ZYd);_.Nb=function $Yd(a){Rrb(this,a)};_.Pb=function aZd(){return BD(lib(this.a).cd(),87)};_.Ob=function _Yd(){return this.a.b};_.Qb=function bZd(){mib(this.a)};var r7=mdb(qte,'ETypeParameterImpl/2/1/1',557);bcb(1276,43,fke,cZd);_._b=function dZd(a){return ND(a)?Qhb(this,a):!!irb(this.f,a)};_.xc=function eZd(a){var b,c;b=ND(a)?Phb(this,a):Wd(irb(this.f,a));if(JD(b,837)){c=BD(b,837);b=c._j();Rhb(this,BD(a,235),b);return b}else return b!=null?b:a==null?(g5d(),f5d):null};var w7=mdb(qte,'EValidatorRegistryImpl',1276);bcb(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},mZd);_.Ih=function nZd(a,b){switch(a.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return b==null?null:fcb(b);case 25:return gZd(b);case 27:return hZd(b);case 28:return iZd(b);case 29:return b==null?null:CQd(Pmd[0],BD(b,199));case 41:return b==null?'':hdb(BD(b,290));case 42:return fcb(b);case 50:return GD(b);default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function oZd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;switch(a.G==-1&&(a.G=(m=bKd(a),m?HLd(m.Mh(),a):-1)),a.G){case 0:return c=new OJd,c;case 1:return b=new RHd,b;case 2:return d=new hLd,d;case 4:return e=new MPd,e;case 5:return f=new aQd,f;case 6:return g=new rQd,g;case 7:return h=new $md,h;case 10:return j=new MGd,j;case 11:return k=new SSd,k;case 12:return l=new eod,l;case 13:return n=new rUd,n;case 14:return o=new FUd,o;case 17:return p=new XUd,p;case 18:return i=new UQd,i;case 19:return q=new BYd,q;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function pZd(a,b){switch(a.yj()){case 20:return b==null?null:new tgb(b);case 21:return b==null?null:new Ygb(b);case 23:case 22:return b==null?null:fZd(b);case 26:case 24:return b==null?null:Scb(Icb(b,-128,127)<<24>>24);case 25:return Xmd(b);case 27:return jZd(b);case 28:return kZd(b);case 29:return lZd(b);case 32:case 31:return b==null?null:Hcb(b);case 38:case 37:return b==null?null:new Odb(b);case 40:case 39:return b==null?null:meb(Icb(b,Rie,Ohe));case 41:return null;case 42:return b==null?null:null;case 44:case 43:return b==null?null:Aeb(Jcb(b));case 49:case 48:return b==null?null:Web(Icb(b,awe,32767)<<16>>16);case 50:return b;default:throw vbb(new Wdb(tte+a.ne()+ute));}};var x7=mdb(qte,'EcoreFactoryImpl',1313);bcb(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},AZd);_.gb=false;_.hb=false;var rZd,sZd=false;var o8=mdb(qte,'EcorePackageImpl',547);bcb(1184,1,{837:1},EZd);_._j=function FZd(){return I6d(),H6d};var I7=mdb(qte,'EcorePackageImpl/1',1184);bcb(1193,1,nwe,GZd);_.wj=function HZd(a){return JD(a,147)};_.xj=function IZd(a){return KC(k5,Uhe,147,a,0,1)};var y7=mdb(qte,'EcorePackageImpl/10',1193);bcb(1194,1,nwe,JZd);_.wj=function KZd(a){return JD(a,191)};_.xj=function LZd(a){return KC(l5,Uhe,191,a,0,1)};var z7=mdb(qte,'EcorePackageImpl/11',1194);bcb(1195,1,nwe,MZd);_.wj=function NZd(a){return JD(a,56)};_.xj=function OZd(a){return KC(m5,Uhe,56,a,0,1)};var A7=mdb(qte,'EcorePackageImpl/12',1195);bcb(1196,1,nwe,PZd);_.wj=function QZd(a){return JD(a,399)};_.xj=function RZd(a){return KC(n5,Nve,59,a,0,1)};var B7=mdb(qte,'EcorePackageImpl/13',1196);bcb(1197,1,nwe,SZd);_.wj=function TZd(a){return JD(a,235)};_.xj=function UZd(a){return KC(o5,Uhe,235,a,0,1)};var C7=mdb(qte,'EcorePackageImpl/14',1197);bcb(1198,1,nwe,VZd);_.wj=function WZd(a){return JD(a,509)};_.xj=function XZd(a){return KC(p5,Uhe,2017,a,0,1)};var D7=mdb(qte,'EcorePackageImpl/15',1198);bcb(1199,1,nwe,YZd);_.wj=function ZZd(a){return JD(a,99)};_.xj=function $Zd(a){return KC(q5,Mve,18,a,0,1)};var E7=mdb(qte,'EcorePackageImpl/16',1199);bcb(1200,1,nwe,_Zd);_.wj=function a$d(a){return JD(a,170)};_.xj=function b$d(a){return KC(t5,Mve,170,a,0,1)};var F7=mdb(qte,'EcorePackageImpl/17',1200);bcb(1201,1,nwe,c$d);_.wj=function d$d(a){return JD(a,472)};_.xj=function e$d(a){return KC(v5,Uhe,472,a,0,1)};var G7=mdb(qte,'EcorePackageImpl/18',1201);bcb(1202,1,nwe,f$d);_.wj=function g$d(a){return JD(a,548)};_.xj=function h$d(a){return KC(x6,kve,548,a,0,1)};var H7=mdb(qte,'EcorePackageImpl/19',1202);bcb(1185,1,nwe,i$d);_.wj=function j$d(a){return JD(a,322)};_.xj=function k$d(a){return KC(b5,Mve,34,a,0,1)};var T7=mdb(qte,'EcorePackageImpl/2',1185);bcb(1203,1,nwe,l$d);_.wj=function m$d(a){return JD(a,241)};_.xj=function n$d(a){return KC(j5,Tve,87,a,0,1)};var J7=mdb(qte,'EcorePackageImpl/20',1203);bcb(1204,1,nwe,o$d);_.wj=function p$d(a){return JD(a,444)};_.xj=function q$d(a){return KC(u5,Uhe,836,a,0,1)};var K7=mdb(qte,'EcorePackageImpl/21',1204);bcb(1205,1,nwe,r$d);_.wj=function s$d(a){return KD(a)};_.xj=function t$d(a){return KC(wI,nie,476,a,8,1)};var L7=mdb(qte,'EcorePackageImpl/22',1205);bcb(1206,1,nwe,u$d);_.wj=function v$d(a){return JD(a,190)};_.xj=function w$d(a){return KC(SD,nie,190,a,0,2)};var M7=mdb(qte,'EcorePackageImpl/23',1206);bcb(1207,1,nwe,x$d);_.wj=function y$d(a){return JD(a,217)};_.xj=function z$d(a){return KC(xI,nie,217,a,0,1)};var N7=mdb(qte,'EcorePackageImpl/24',1207);bcb(1208,1,nwe,A$d);_.wj=function B$d(a){return JD(a,172)};_.xj=function C$d(a){return KC(yI,nie,172,a,0,1)};var O7=mdb(qte,'EcorePackageImpl/25',1208);bcb(1209,1,nwe,D$d);_.wj=function E$d(a){return JD(a,199)};_.xj=function F$d(a){return KC($J,nie,199,a,0,1)};var P7=mdb(qte,'EcorePackageImpl/26',1209);bcb(1210,1,nwe,G$d);_.wj=function H$d(a){return false};_.xj=function I$d(a){return KC(O4,Uhe,2110,a,0,1)};var Q7=mdb(qte,'EcorePackageImpl/27',1210);bcb(1211,1,nwe,J$d);_.wj=function K$d(a){return LD(a)};_.xj=function L$d(a){return KC(BI,nie,333,a,7,1)};var R7=mdb(qte,'EcorePackageImpl/28',1211);bcb(1212,1,nwe,M$d);_.wj=function N$d(a){return JD(a,58)};_.xj=function O$d(a){return KC(T4,eme,58,a,0,1)};var S7=mdb(qte,'EcorePackageImpl/29',1212);bcb(1186,1,nwe,P$d);_.wj=function Q$d(a){return JD(a,510)};_.xj=function R$d(a){return KC(a5,{3:1,4:1,5:1,1934:1},590,a,0,1)};var c8=mdb(qte,'EcorePackageImpl/3',1186);bcb(1213,1,nwe,S$d);_.wj=function T$d(a){return JD(a,573)};_.xj=function U$d(a){return KC(U4,Uhe,1940,a,0,1)};var U7=mdb(qte,'EcorePackageImpl/30',1213);bcb(1214,1,nwe,V$d);_.wj=function W$d(a){return JD(a,153)};_.xj=function X$d(a){return KC(O9,eme,153,a,0,1)};var V7=mdb(qte,'EcorePackageImpl/31',1214);bcb(1215,1,nwe,Y$d);_.wj=function Z$d(a){return JD(a,72)};_.xj=function $$d(a){return KC(E9,owe,72,a,0,1)};var W7=mdb(qte,'EcorePackageImpl/32',1215);bcb(1216,1,nwe,_$d);_.wj=function a_d(a){return JD(a,155)};_.xj=function b_d(a){return KC(FI,nie,155,a,0,1)};var X7=mdb(qte,'EcorePackageImpl/33',1216);bcb(1217,1,nwe,c_d);_.wj=function d_d(a){return JD(a,19)};_.xj=function e_d(a){return KC(JI,nie,19,a,0,1)};var Y7=mdb(qte,'EcorePackageImpl/34',1217);bcb(1218,1,nwe,f_d);_.wj=function g_d(a){return JD(a,290)};_.xj=function h_d(a){return KC(AI,Uhe,290,a,0,1)};var Z7=mdb(qte,'EcorePackageImpl/35',1218);bcb(1219,1,nwe,i_d);_.wj=function j_d(a){return JD(a,162)};_.xj=function k_d(a){return KC(MI,nie,162,a,0,1)};var $7=mdb(qte,'EcorePackageImpl/36',1219);bcb(1220,1,nwe,l_d);_.wj=function m_d(a){return JD(a,83)};_.xj=function n_d(a){return KC(DK,Uhe,83,a,0,1)};var _7=mdb(qte,'EcorePackageImpl/37',1220);bcb(1221,1,nwe,o_d);_.wj=function p_d(a){return JD(a,591)};_.xj=function q_d(a){return KC(v8,Uhe,591,a,0,1)};var a8=mdb(qte,'EcorePackageImpl/38',1221);bcb(1222,1,nwe,r_d);_.wj=function s_d(a){return false};_.xj=function t_d(a){return KC(u8,Uhe,2111,a,0,1)};var b8=mdb(qte,'EcorePackageImpl/39',1222);bcb(1187,1,nwe,u_d);_.wj=function v_d(a){return JD(a,88)};_.xj=function w_d(a){return KC(c5,Uhe,26,a,0,1)};var i8=mdb(qte,'EcorePackageImpl/4',1187);bcb(1223,1,nwe,x_d);_.wj=function y_d(a){return JD(a,184)};_.xj=function z_d(a){return KC(UI,nie,184,a,0,1)};var d8=mdb(qte,'EcorePackageImpl/40',1223);bcb(1224,1,nwe,A_d);_.wj=function B_d(a){return ND(a)};_.xj=function C_d(a){return KC(ZI,nie,2,a,6,1)};var e8=mdb(qte,'EcorePackageImpl/41',1224);bcb(1225,1,nwe,D_d);_.wj=function E_d(a){return JD(a,588)};_.xj=function F_d(a){return KC(X4,Uhe,588,a,0,1)};var f8=mdb(qte,'EcorePackageImpl/42',1225);bcb(1226,1,nwe,G_d);_.wj=function H_d(a){return false};_.xj=function I_d(a){return KC(V4,nie,2112,a,0,1)};var g8=mdb(qte,'EcorePackageImpl/43',1226);bcb(1227,1,nwe,J_d);_.wj=function K_d(a){return JD(a,42)};_.xj=function L_d(a){return KC(CK,zie,42,a,0,1)};var h8=mdb(qte,'EcorePackageImpl/44',1227);bcb(1188,1,nwe,M_d);_.wj=function N_d(a){return JD(a,138)};_.xj=function O_d(a){return KC(d5,Uhe,138,a,0,1)};var j8=mdb(qte,'EcorePackageImpl/5',1188);bcb(1189,1,nwe,P_d);_.wj=function Q_d(a){return JD(a,148)};_.xj=function R_d(a){return KC(f5,Uhe,148,a,0,1)};var k8=mdb(qte,'EcorePackageImpl/6',1189);bcb(1190,1,nwe,S_d);_.wj=function T_d(a){return JD(a,457)};_.xj=function U_d(a){return KC(h5,Uhe,671,a,0,1)};var l8=mdb(qte,'EcorePackageImpl/7',1190);bcb(1191,1,nwe,V_d);_.wj=function W_d(a){return JD(a,573)};_.xj=function X_d(a){return KC(g5,Uhe,678,a,0,1)};var m8=mdb(qte,'EcorePackageImpl/8',1191);bcb(1192,1,nwe,Y_d);_.wj=function Z_d(a){return JD(a,471)};_.xj=function $_d(a){return KC(i5,Uhe,471,a,0,1)};var n8=mdb(qte,'EcorePackageImpl/9',1192);bcb(1025,1982,ive,c0d);_.bi=function d0d(a,b){__d(this,BD(b,415))};_.fi=function e0d(a,b){a0d(this,a,BD(b,415))};var q8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList',1025);bcb(1026,143,fve,f0d);_.Ai=function g0d(){return this.a.a};var p8=mdb(qte,'MinimalEObjectImpl/1ArrayDelegatingAdapterList/1',1026);bcb(1053,1052,{},i0d);var t8=mdb('org.eclipse.emf.ecore.plugin','EcorePlugin',1053);var v8=odb(pwe,'Resource');bcb(781,1378,qwe);_.Yk=function m0d(a){};_.Zk=function n0d(a){};_.Vk=function o0d(){return !this.a&&(this.a=new z0d(this)),this.a};_.Wk=function p0d(a){var b,c,d,e,f;d=a.length;if(d>0){BCb(0,a.length);if(a.charCodeAt(0)==47){f=new Skb(4);e=1;for(b=1;b<d;++b){BCb(b,a.length);if(a.charCodeAt(b)==47){Ekb(f,e==b?'':a.substr(e,b-e));e=b+1}}Ekb(f,a.substr(e));return j0d(this,f)}else{BCb(d-1,a.length);if(a.charCodeAt(d-1)==63){c=lfb(a,wfb(63),d-2);c>0&&(a=a.substr(0,c))}}}return k0d(this,a)};_.Xk=function q0d(){return this.c};_.Ib=function r0d(){var a;return hdb(this.gm)+'@'+(a=tb(this)>>>0,a.toString(16))+" uri='"+this.d+"'"};_.b=false;var z8=mdb(rwe,'ResourceImpl',781);bcb(1379,781,qwe,s0d);var w8=mdb(rwe,'BinaryResourceImpl',1379);bcb(1169,694,pue);_.si=function v0d(a){return JD(a,56)?t0d(this,BD(a,56)):JD(a,591)?new Fyd(BD(a,591).Vk()):PD(a)===PD(this.f)?BD(a,14).Kc():(LCd(),KCd.a)};_.Ob=function w0d(){return u0d(this)};_.a=false;var z9=mdb(yve,'EcoreUtil/ContentTreeIterator',1169);bcb(1380,1169,pue,x0d);_.si=function y0d(a){return PD(a)===PD(this.f)?BD(a,15).Kc():new C6d(BD(a,56))};var x8=mdb(rwe,'ResourceImpl/5',1380);bcb(648,1994,Ove,z0d);_.Hc=function A0d(a){return this.i<=4?pud(this,a):JD(a,49)&&BD(a,49).Zg()==this.a};_.bi=function B0d(a,b){a==this.i-1&&(this.a.b||(this.a.b=true,null))};_.di=function C0d(a,b){a==0?this.a.b||(this.a.b=true,null):Atd(this,a,b)};_.fi=function D0d(a,b){};_.gi=function E0d(a,b,c){};_.aj=function F0d(){return 2};_.Ai=function G0d(){return this.a};_.bj=function H0d(){return true};_.cj=function I0d(a,b){var c;c=BD(a,49);b=c.wh(this.a,b);return b};_.dj=function J0d(a,b){var c;c=BD(a,49);return c.wh(null,b)};_.ej=function K0d(){return false};_.hi=function L0d(){return true};_.ri=function M0d(a){return KC(m5,Uhe,56,a,0,1)};_.ni=function N0d(){return false};var y8=mdb(rwe,'ResourceImpl/ContentsEList',648);bcb(957,1964,Lie,O0d);_.Zc=function P0d(a){return this.a._h(a)};_.gc=function Q0d(){return this.a.gc()};var A8=mdb(yve,'AbstractSequentialInternalEList/1',957);var K6d,L6d,M6d,N6d;bcb(624,1,{},y1d);var R0d,S0d;var G8=mdb(yve,'BasicExtendedMetaData',624);bcb(1160,1,{},C1d);_.$k=function D1d(){return null};_._k=function E1d(){this.a==-2&&A1d(this,W0d(this.d,this.b));return this.a};_.al=function F1d(){return null};_.bl=function G1d(){return mmb(),mmb(),jmb};_.ne=function H1d(){this.c==Gwe&&B1d(this,_0d(this.d,this.b));return this.c};_.cl=function I1d(){return 0};_.a=-2;_.c=Gwe;var C8=mdb(yve,'BasicExtendedMetaData/EClassExtendedMetaDataImpl',1160);bcb(1161,1,{},O1d);_.$k=function P1d(){this.a==(T0d(),R0d)&&J1d(this,V0d(this.f,this.b));return this.a};_._k=function Q1d(){return 0};_.al=function R1d(){this.c==(T0d(),R0d)&&K1d(this,Z0d(this.f,this.b));return this.c};_.bl=function S1d(){!this.d&&L1d(this,$0d(this.f,this.b));return this.d};_.ne=function T1d(){this.e==Gwe&&M1d(this,_0d(this.f,this.b));return this.e};_.cl=function U1d(){this.g==-2&&N1d(this,c1d(this.f,this.b));return this.g};_.e=Gwe;_.g=-2;var D8=mdb(yve,'BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl',1161);bcb(1159,1,{},Y1d);_.b=false;_.c=false;var E8=mdb(yve,'BasicExtendedMetaData/EPackageExtendedMetaDataImpl',1159);bcb(1162,1,{},j2d);_.c=-2;_.e=Gwe;_.f=Gwe;var F8=mdb(yve,'BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl',1162);bcb(585,622,Pve,k2d);_.aj=function l2d(){return this.c};_.Fk=function m2d(){return false};_.li=function n2d(a,b){return b};_.c=0;var T8=mdb(yve,'EDataTypeEList',585);var O9=odb(yve,'FeatureMap');bcb(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},u3d);_.Vc=function v3d(a,b){o2d(this,a,BD(b,72))};_.Fc=function w3d(a){return r2d(this,BD(a,72))};_.Yh=function B3d(a){w2d(this,BD(a,72))};_.cj=function M3d(a,b){return O2d(this,BD(a,72),b)};_.dj=function N3d(a,b){return Q2d(this,BD(a,72),b)};_.ii=function P3d(a,b){return W2d(this,a,b)};_.li=function R3d(a,b){return _2d(this,a,BD(b,72))};_._c=function T3d(a,b){return c3d(this,a,BD(b,72))};_.jj=function X3d(a,b){return i3d(this,BD(a,72),b)};_.kj=function Y3d(a,b){return k3d(this,BD(a,72),b)};_.lj=function Z3d(a,b,c){return l3d(this,BD(a,72),BD(b,72),c)};_.oi=function _3d(a,b){return t3d(this,a,BD(b,72))};_.dl=function x3d(a,b){return q2d(this,a,b)};_.Wc=function y3d(a,b){var c,d,e,f,g,h,i,j,k;j=new zud(b.gc());for(e=b.Kc();e.Ob();){d=BD(e.Pb(),72);f=d.ak();if(T6d(this.e,f)){(!f.hi()||!E2d(this,f,d.dd())&&!pud(j,d))&&wtd(j,d)}else{k=S6d(this.e.Tg(),f);c=BD(this.g,119);g=true;for(h=0;h<this.i;++h){i=c[h];if(k.rl(i.ak())){BD(Gtd(this,h,d),72);g=false;break}}g&&wtd(j,d)}}return xtd(this,a,j)};_.Gc=function z3d(a){var b,c,d,e,f,g,h,i,j;i=new zud(a.gc());for(d=a.Kc();d.Ob();){c=BD(d.Pb(),72);e=c.ak();if(T6d(this.e,e)){(!e.hi()||!E2d(this,e,c.dd())&&!pud(i,c))&&wtd(i,c)}else{j=S6d(this.e.Tg(),e);b=BD(this.g,119);f=true;for(g=0;g<this.i;++g){h=b[g];if(j.rl(h.ak())){BD(Gtd(this,g,c),72);f=false;break}}f&&wtd(i,c)}}return ytd(this,i)};_.Wh=function A3d(a){this.j=-1;return Pxd(this,this.i,a)};_.el=function C3d(a,b,c){return x2d(this,a,b,c)};_.mk=function D3d(a,b){return B2d(this,a,b)};_.fl=function E3d(a,b,c){return C2d(this,a,b,c)};_.gl=function F3d(){return this};_.hl=function G3d(a,b){return K2d(this,a,b)};_.il=function H3d(a){return BD(qud(this,a),72).ak()};_.jl=function I3d(a){return BD(qud(this,a),72).dd()};_.kl=function J3d(){return this.b};_.bj=function K3d(){return true};_.ij=function L3d(){return true};_.ll=function O3d(a){return !R2d(this,a)};_.ri=function Q3d(a){return KC(D9,owe,332,a,0,1)};_.Gk=function S3d(a){return a3d(this,a)};_.Wb=function U3d(a){d3d(this,a)};_.ml=function V3d(a,b){f3d(this,a,b)};_.nl=function W3d(a){return g3d(this,a)};_.ol=function $3d(a){s3d(this,a)};var J8=mdb(yve,'BasicFeatureMap',75);bcb(1851,1,jie);_.Nb=function f4d(a){Rrb(this,a)};_.Rb=function e4d(b){if(this.g==-1){throw vbb(new Ydb)}a4d(this);try{p2d(this.e,this.b,this.a,b);this.d=this.e.j;d4d(this)}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}};_.Ob=function g4d(){return b4d(this)};_.Sb=function h4d(){return c4d(this)};_.Pb=function i4d(){return d4d(this)};_.Tb=function j4d(){return this.a};_.Ub=function k4d(){var a;if(c4d(this)){a4d(this);this.g=--this.a;if(this.Lk()){a=b3d(this.e,this.b,this.c,this.a,this.j);this.j=a}this.i=0;return this.j}else{throw vbb(new utb)}};_.Vb=function l4d(){return this.a-1};_.Qb=function m4d(){if(this.g==-1){throw vbb(new Ydb)}a4d(this);try{Z2d(this.e,this.b,this.g);this.d=this.e.j;if(this.g<this.a){--this.a;--this.c}--this.g}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}};_.Lk=function n4d(){return false};_.Wb=function o4d(b){if(this.g==-1){throw vbb(new Ydb)}a4d(this);try{e3d(this.e,this.b,this.g,b);this.d=this.e.j}catch(a){a=ubb(a);if(JD(a,73)){throw vbb(new Apb)}else throw vbb(a)}};_.a=0;_.c=0;_.d=0;_.f=false;_.g=0;_.i=0;var G9=mdb(yve,'FeatureMapUtil/BasicFeatureEIterator',1851);bcb(410,1851,jie,p4d);_.pl=function q4d(){var a,b,c;c=this.e.i;a=BD(this.e.g,119);while(this.c<c){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=2;return true}++this.c}this.i=1;this.g=-1;return false};_.ql=function r4d(){var a,b;a=BD(this.e.g,119);while(--this.c>=0){b=a[this.c];if(this.k.rl(b.ak())){this.j=this.f?b:b.dd();this.i=-2;return true}}this.i=-1;this.g=-1;return false};var H8=mdb(yve,'BasicFeatureMap/FeatureEIterator',410);bcb(662,410,jie,s4d);_.Lk=function t4d(){return true};var I8=mdb(yve,'BasicFeatureMap/ResolvingFeatureEIterator',662);bcb(955,486,Vve,u4d);_.Gi=function v4d(){return this};var M8=mdb(yve,'EContentsEList/1',955);bcb(956,486,Vve,w4d);_.Lk=function x4d(){return false};var N8=mdb(yve,'EContentsEList/2',956);bcb(954,279,Wve,y4d);_.Nk=function z4d(a){};_.Ob=function A4d(){return false};_.Sb=function B4d(){return false};var O8=mdb(yve,'EContentsEList/FeatureIteratorImpl/1',954);bcb(825,585,Pve,C4d);_.ci=function D4d(){this.a=true};_.fj=function E4d(){return this.a};_.Xj=function F4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var S8=mdb(yve,'EDataTypeEList/Unsettable',825);bcb(1849,585,Pve,G4d);_.hi=function H4d(){return true};var V8=mdb(yve,'EDataTypeUniqueEList',1849);bcb(1850,825,Pve,I4d);_.hi=function J4d(){return true};var U8=mdb(yve,'EDataTypeUniqueEList/Unsettable',1850);bcb(139,85,Pve,K4d);_.Ek=function L4d(){return true};_.li=function M4d(a,b){return ILd(this,a,BD(b,56))};var W8=mdb(yve,'EObjectContainmentEList/Resolving',139);bcb(1163,545,Pve,N4d);_.Ek=function O4d(){return true};_.li=function P4d(a,b){return ILd(this,a,BD(b,56))};var X8=mdb(yve,'EObjectContainmentEList/Unsettable/Resolving',1163);bcb(748,16,Pve,Q4d);_.ci=function R4d(){this.a=true};_.fj=function S4d(){return this.a};_.Xj=function T4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var a9=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable',748);bcb(1173,748,Pve,U4d);_.Ek=function V4d(){return true};_.li=function W4d(a,b){return ILd(this,a,BD(b,56))};var _8=mdb(yve,'EObjectContainmentWithInverseEList/Unsettable/Resolving',1173);bcb(743,496,Pve,X4d);_.ci=function Y4d(){this.a=true};_.fj=function Z4d(){return this.a};_.Xj=function $4d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var c9=mdb(yve,'EObjectEList/Unsettable',743);bcb(328,496,Pve,_4d);_.Ek=function a5d(){return true};_.li=function b5d(a,b){return ILd(this,a,BD(b,56))};var f9=mdb(yve,'EObjectResolvingEList',328);bcb(1641,743,Pve,c5d);_.Ek=function d5d(){return true};_.li=function e5d(a,b){return ILd(this,a,BD(b,56))};var e9=mdb(yve,'EObjectResolvingEList/Unsettable',1641);bcb(1381,1,{},h5d);var f5d;var g9=mdb(yve,'EObjectValidator',1381);bcb(546,496,Pve,i5d);_.zk=function j5d(){return this.d};_.Ak=function k5d(){return this.b};_.bj=function l5d(){return true};_.Dk=function m5d(){return true};_.b=0;var k9=mdb(yve,'EObjectWithInverseEList',546);bcb(1176,546,Pve,n5d);_.Ck=function o5d(){return true};var h9=mdb(yve,'EObjectWithInverseEList/ManyInverse',1176);bcb(625,546,Pve,p5d);_.ci=function q5d(){this.a=true};_.fj=function r5d(){return this.a};_.Xj=function s5d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var j9=mdb(yve,'EObjectWithInverseEList/Unsettable',625);bcb(1175,625,Pve,t5d);_.Ck=function u5d(){return true};var i9=mdb(yve,'EObjectWithInverseEList/Unsettable/ManyInverse',1175);bcb(749,546,Pve,v5d);_.Ek=function w5d(){return true};_.li=function x5d(a,b){return ILd(this,a,BD(b,56))};var o9=mdb(yve,'EObjectWithInverseResolvingEList',749);bcb(31,749,Pve,y5d);_.Ck=function z5d(){return true};var l9=mdb(yve,'EObjectWithInverseResolvingEList/ManyInverse',31);bcb(750,625,Pve,A5d);_.Ek=function B5d(){return true};_.li=function C5d(a,b){return ILd(this,a,BD(b,56))};var n9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable',750);bcb(1174,750,Pve,D5d);_.Ck=function E5d(){return true};var m9=mdb(yve,'EObjectWithInverseResolvingEList/Unsettable/ManyInverse',1174);bcb(1164,622,Pve);_.ai=function F5d(){return (this.b&1792)==0};_.ci=function G5d(){this.b|=1};_.Bk=function H5d(){return (this.b&4)!=0};_.bj=function I5d(){return (this.b&40)!=0};_.Ck=function J5d(){return (this.b&16)!=0};_.Dk=function K5d(){return (this.b&8)!=0};_.Ek=function L5d(){return (this.b&Dve)!=0};_.rk=function M5d(){return (this.b&32)!=0};_.Fk=function N5d(){return (this.b&zte)!=0};_.wj=function O5d(a){return !this.d?this.ak().Yj().wj(a):qEd(this.d,a)};_.fj=function P5d(){return (this.b&2)!=0?(this.b&1)!=0:this.i!=0};_.hi=function Q5d(){return (this.b&128)!=0};_.Xj=function S5d(){var a;Uxd(this);if((this.b&2)!=0){if(oid(this.e)){a=(this.b&1)!=0;this.b&=-2;GLd(this,new qSd(this.e,2,bLd(this.e.Tg(),this.ak()),a,false))}else{this.b&=-2}}};_.ni=function T5d(){return (this.b&1536)==0};_.b=0;var q9=mdb(yve,'EcoreEList/Generic',1164);bcb(1165,1164,Pve,U5d);_.ak=function V5d(){return this.a};var p9=mdb(yve,'EcoreEList/Dynamic',1165);bcb(747,63,oue,W5d);_.ri=function X5d(a){return izd(this.a.a,a)};var u9=mdb(yve,'EcoreEMap/1',747);bcb(746,85,Pve,Y5d);_.bi=function Z5d(a,b){uAd(this.b,BD(b,133))};_.di=function $5d(a,b){tAd(this.b)};_.ei=function _5d(a,b,c){var d;++(d=this.b,BD(b,133),d).e};_.fi=function a6d(a,b){vAd(this.b,BD(b,133))};_.gi=function b6d(a,b,c){vAd(this.b,BD(c,133));PD(c)===PD(b)&&BD(c,133).Th(CAd(BD(b,133).cd()));uAd(this.b,BD(b,133))};var v9=mdb(yve,'EcoreEMap/DelegateEObjectContainmentEList',746);bcb(1171,151,Ave,c6d);var x9=mdb(yve,'EcoreEMap/Unsettable',1171);bcb(1172,746,Pve,d6d);_.ci=function e6d(){this.a=true};_.fj=function f6d(){return this.a};_.Xj=function g6d(){var a;Uxd(this);if(oid(this.e)){a=this.a;this.a=false;Uhd(this.e,new qSd(this.e,2,this.c,a,false))}else{this.a=false}};_.a=false;var w9=mdb(yve,'EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList',1172);bcb(1168,228,fke,A6d);_.a=false;_.b=false;var A9=mdb(yve,'EcoreUtil/Copier',1168);bcb(745,1,aie,C6d);_.Nb=function D6d(a){Rrb(this,a)};_.Ob=function E6d(){return B6d(this)};_.Pb=function F6d(){var a;B6d(this);a=this.b;this.b=null;return a};_.Qb=function G6d(){this.a.Qb()};var B9=mdb(yve,'EcoreUtil/ProperContentIterator',745);bcb(1382,1381,{},J6d);var H6d;var C9=mdb(yve,'EcoreValidator',1382);var P6d;var N9=odb(yve,'FeatureMapUtil/Validator');bcb(1260,1,{1942:1},U6d);_.rl=function V6d(a){return true};var F9=mdb(yve,'FeatureMapUtil/1',1260);bcb(757,1,{1942:1},Z6d);_.rl=function $6d(a){var b;if(this.c==a)return true;b=DD(Ohb(this.a,a));if(b==null){if(Y6d(this,a)){_6d(this.a,a,(Bcb(),Acb));return true}else{_6d(this.a,a,(Bcb(),zcb));return false}}else{return b==(Bcb(),Acb)}};_.e=false;var W6d;var I9=mdb(yve,'FeatureMapUtil/BasicValidator',757);bcb(758,43,fke,a7d);var H9=mdb(yve,'FeatureMapUtil/BasicValidator/Cache',758);bcb(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},f7d);_.Vc=function g7d(a,b){p2d(this.c,this.b,a,b)};_.Fc=function h7d(a){return q2d(this.c,this.b,a)};_.Wc=function i7d(a,b){return s2d(this.c,this.b,a,b)};_.Gc=function j7d(a){return b7d(this,a)};_.Xh=function k7d(a,b){u2d(this.c,this.b,a,b)};_.lk=function l7d(a,b){return x2d(this.c,this.b,a,b)};_.pi=function m7d(a){return J2d(this.c,this.b,a,false)};_.Zh=function n7d(){return y2d(this.c,this.b)};_.$h=function o7d(){return z2d(this.c,this.b)};_._h=function p7d(a){return A2d(this.c,this.b,a)};_.mk=function q7d(a,b){return c7d(this,a,b)};_.$b=function r7d(){d7d(this)};_.Hc=function s7d(a){return E2d(this.c,this.b,a)};_.Ic=function t7d(a){return G2d(this.c,this.b,a)};_.Xb=function u7d(a){return J2d(this.c,this.b,a,true)};_.Wj=function v7d(a){return this};_.Xc=function w7d(a){return L2d(this.c,this.b,a)};_.dc=function x7d(){return e7d(this)};_.fj=function y7d(){return !R2d(this.c,this.b)};_.Kc=function z7d(){return S2d(this.c,this.b)};_.Yc=function A7d(){return U2d(this.c,this.b)};_.Zc=function B7d(a){return V2d(this.c,this.b,a)};_.ii=function C7d(a,b){return X2d(this.c,this.b,a,b)};_.ji=function D7d(a,b){Y2d(this.c,this.b,a,b)};_.$c=function E7d(a){return Z2d(this.c,this.b,a)};_.Mc=function F7d(a){return $2d(this.c,this.b,a)};_._c=function G7d(a,b){return e3d(this.c,this.b,a,b)};_.Wb=function H7d(a){D2d(this.c,this.b);b7d(this,BD(a,15))};_.gc=function I7d(){return n3d(this.c,this.b)};_.Pc=function J7d(){return o3d(this.c,this.b)};_.Qc=function K7d(a){return q3d(this.c,this.b,a)};_.Ib=function L7d(){var a,b;b=new Hfb;b.a+='[';for(a=y2d(this.c,this.b);b4d(a);){Efb(b,xfb(d4d(a)));b4d(a)&&(b.a+=She,b)}b.a+=']';return b.a};_.Xj=function M7d(){D2d(this.c,this.b)};var J9=mdb(yve,'FeatureMapUtil/FeatureEList',501);bcb(627,36,fve,O7d);_.yi=function P7d(a){return N7d(this,a)};_.Di=function Q7d(a){var b,c,d,e,f,g,h;switch(this.d){case 1:case 2:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.g=a.zi();a.xi()==1&&(this.d=1);return true}break}case 3:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=5;b=new zud(2);wtd(b,this.g);wtd(b,a.zi());this.g=b;return true}break}}break}case 5:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.g,14);c.Fc(a.zi());return true}break}}break}case 4:{e=a.xi();switch(e){case 3:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=1;this.g=a.zi();return true}break}case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){this.d=6;h=new zud(2);wtd(h,this.n);wtd(h,a.Bi());this.n=h;g=OC(GC(WD,1),oje,25,15,[this.o,a.Ci()]);this.g=g;return true}break}}break}case 6:{e=a.xi();switch(e){case 4:{f=a.Ai();if(PD(f)===PD(this.c)&&N7d(this,null)==a.yi(null)){c=BD(this.n,14);c.Fc(a.Bi());g=BD(this.g,48);d=KC(WD,oje,25,g.length+1,15,1);$fb(g,0,d,0,g.length);d[g.length]=a.Ci();this.g=d;return true}break}}break}}return false};var K9=mdb(yve,'FeatureMapUtil/FeatureENotificationImpl',627);bcb(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},R7d);_.dl=function S7d(a,b){return q2d(this.c,a,b)};_.el=function T7d(a,b,c){return x2d(this.c,a,b,c)};_.fl=function U7d(a,b,c){return C2d(this.c,a,b,c)};_.gl=function V7d(){return this};_.hl=function W7d(a,b){return K2d(this.c,a,b)};_.il=function X7d(a){return BD(J2d(this.c,this.b,a,false),72).ak()};_.jl=function Y7d(a){return BD(J2d(this.c,this.b,a,false),72).dd()};_.kl=function Z7d(){return this.a};_.ll=function $7d(a){return !R2d(this.c,a)};_.ml=function _7d(a,b){f3d(this.c,a,b)};_.nl=function a8d(a){return g3d(this.c,a)};_.ol=function b8d(a){s3d(this.c,a)};var L9=mdb(yve,'FeatureMapUtil/FeatureFeatureMap',552);bcb(1259,1,zve,c8d);_.Wj=function d8d(a){return J2d(this.b,this.a,-1,a)};_.fj=function e8d(){return !R2d(this.b,this.a)};_.Wb=function f8d(a){f3d(this.b,this.a,a)};_.Xj=function g8d(){D2d(this.b,this.a)};var M9=mdb(yve,'FeatureMapUtil/FeatureValue',1259);var h8d,i8d,j8d,k8d,l8d;var Q9=odb(Iwe,'AnyType');bcb(666,60,Tie,n8d);var R9=mdb(Iwe,'InvalidDatatypeValueException',666);var S9=odb(Iwe,Jwe);var T9=odb(Iwe,Kwe);var U9=odb(Iwe,Lwe);var o8d;var q8d;var s8d,t8d,u8d,v8d,w8d,x8d,y8d,z8d,A8d,B8d,C8d,D8d,E8d,F8d,G8d,H8d,I8d,J8d,K8d,L8d,M8d,N8d,O8d,P8d;bcb(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},R8d);_._g=function S8d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;}return bid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function T8d(a,b,c){var d;switch(b){case 0:return !this.c&&(this.c=new u3d(this,0)),B2d(this.c,a,c);case 1:return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),69)).mk(a,c);case 2:return !this.b&&(this.b=new u3d(this,2)),B2d(this.b,a,c);}return d=BD(XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd(this.zh()),a,c)};_.lh=function U8d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;}return cid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function V8d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;}did(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function W8d(){return Q8d(),s8d};_.Bh=function X8d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;}eid(this,a-aLd(this.zh()),XKd((this.j&2)==0?this.zh():(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function Y8d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.c);a.a+=', anyAttribute: ';Dfb(a,this.b);a.a+=')';return a.a};var V9=mdb(Mwe,'AnyTypeImpl',830);bcb(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},_8d);_._g=function a9d(a,b,c){switch(a){case 0:return this.a;case 1:return this.b;}return bid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function b9d(a){switch(a){case 0:return this.a!=null;case 1:return this.b!=null;}return cid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function c9d(a,b){switch(a){case 0:Z8d(this,GD(b));return;case 1:$8d(this,GD(b));return;}did(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function d9d(){return Q8d(),F8d};_.Bh=function e9d(a){switch(a){case 0:this.a=null;return;case 1:this.b=null;return;}eid(this,a-aLd((Q8d(),F8d)),XKd((this.j&2)==0?F8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function f9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (data: ';Efb(a,this.a);a.a+=', target: ';Efb(a,this.b);a.a+=')';return a.a};_.a=null;_.b=null;var W9=mdb(Mwe,'ProcessingInstructionImpl',667);bcb(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},i9d);_._g=function j9d(a,b,c){switch(a){case 0:if(c)return !this.c&&(this.c=new u3d(this,0)),this.c;return !this.c&&(this.c=new u3d(this,0)),this.c.b;case 1:if(c)return !this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153);return (!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).kl();case 2:if(c)return !this.b&&(this.b=new u3d(this,2)),this.b;return !this.b&&(this.b=new u3d(this,2)),this.b.b;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true));case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))));case 5:return this.a;}return bid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.lh=function k9d(a){switch(a){case 0:return !!this.c&&this.c.i!=0;case 1:return !(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).dc();case 2:return !!this.b&&this.b.i!=0;case 3:return !this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))!=null;case 4:return j6d(this.a,(!this.c&&(this.c=new u3d(this,0)),GD(K2d(this.c,(Q8d(),I8d),true))))!=null;case 5:return !!this.a;}return cid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function l9d(a,b){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));d3d(this.c,b);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(BD(T2d(this.c,(Q8d(),t8d)),153),215)).Wb(b);return;case 2:!this.b&&(this.b=new u3d(this,2));d3d(this.b,b);return;case 3:h9d(this,GD(b));return;case 4:h9d(this,h6d(this.a,b));return;case 5:g9d(this,BD(b,148));return;}did(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function m9d(){return Q8d(),H8d};_.Bh=function n9d(a){switch(a){case 0:!this.c&&(this.c=new u3d(this,0));Uxd(this.c);return;case 1:(!this.c&&(this.c=new u3d(this,0)),BD(T2d(this.c,(Q8d(),t8d)),153)).$b();return;case 2:!this.b&&(this.b=new u3d(this,2));Uxd(this.b);return;case 3:!this.c&&(this.c=new u3d(this,0));f3d(this.c,(Q8d(),I8d),null);return;case 4:h9d(this,h6d(this.a,null));return;case 5:this.a=null;return;}eid(this,a-aLd((Q8d(),H8d)),XKd((this.j&2)==0?H8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};var X9=mdb(Mwe,'SimpleAnyTypeImpl',668);bcb(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},o9d);_._g=function p9d(a,b,c){switch(a){case 0:if(c)return !this.a&&(this.a=new u3d(this,0)),this.a;return !this.a&&(this.a=new u3d(this,0)),this.a.b;case 1:return c?(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),this.b):(!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),FAd(this.b));case 2:return c?(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),this.c):(!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),FAd(this.c));case 3:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),L8d));case 4:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),M8d));case 5:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),O8d));case 6:return !this.a&&(this.a=new u3d(this,0)),T2d(this.a,(Q8d(),P8d));}return bid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b,c)};_.jh=function q9d(a,b,c){var d;switch(b){case 0:return !this.a&&(this.a=new u3d(this,0)),B2d(this.a,a,c);case 1:return !this.b&&(this.b=new dId((jGd(),fGd),x6,this,1)),bId(this.b,a,c);case 2:return !this.c&&(this.c=new dId((jGd(),fGd),x6,this,2)),bId(this.c,a,c);case 5:return !this.a&&(this.a=new u3d(this,0)),c7d(T2d(this.a,(Q8d(),O8d)),a,c);}return d=BD(XKd((this.j&2)==0?(Q8d(),K8d):(!this.k&&(this.k=new HGd),this.k).ck(),b),66),d.Nj().Rj(this,Aid(this),b-aLd((Q8d(),K8d)),a,c)};_.lh=function r9d(a){switch(a){case 0:return !!this.a&&this.a.i!=0;case 1:return !!this.b&&this.b.f!=0;case 2:return !!this.c&&this.c.f!=0;case 3:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),L8d)));case 4:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),M8d)));case 5:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),O8d)));case 6:return !this.a&&(this.a=new u3d(this,0)),!e7d(T2d(this.a,(Q8d(),P8d)));}return cid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.sh=function s9d(a,b){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));d3d(this.a,b);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));cId(this.b,b);return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));cId(this.c,b);return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,L8d),BD(b,14));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,M8d),BD(b,14));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,O8d),BD(b,14));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));!this.a&&(this.a=new u3d(this,0));b7d(T2d(this.a,P8d),BD(b,14));return;}did(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a),b)};_.zh=function t9d(){return Q8d(),K8d};_.Bh=function u9d(a){switch(a){case 0:!this.a&&(this.a=new u3d(this,0));Uxd(this.a);return;case 1:!this.b&&(this.b=new dId((jGd(),fGd),x6,this,1));this.b.c.$b();return;case 2:!this.c&&(this.c=new dId((jGd(),fGd),x6,this,2));this.c.c.$b();return;case 3:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),L8d)));return;case 4:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),M8d)));return;case 5:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),O8d)));return;case 6:!this.a&&(this.a=new u3d(this,0));d7d(T2d(this.a,(Q8d(),P8d)));return;}eid(this,a-aLd((Q8d(),K8d)),XKd((this.j&2)==0?K8d:(!this.k&&(this.k=new HGd),this.k).ck(),a))};_.Ib=function v9d(){var a;if((this.j&4)!=0)return Eid(this);a=new Jfb(Eid(this));a.a+=' (mixed: ';Dfb(a,this.a);a.a+=')';return a.a};var Y9=mdb(Mwe,'XMLTypeDocumentRootImpl',669);bcb(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},U9d);_.Ih=function V9d(a,b){switch(a.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return b==null?null:fcb(b);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return GD(b);case 6:return C9d(BD(b,190));case 12:case 47:case 49:case 11:return Vmd(this,a,b);case 13:return b==null?null:qgb(BD(b,240));case 15:case 14:return b==null?null:D9d(Edb(ED(b)));case 17:return E9d((Q8d(),b));case 18:return E9d(b);case 21:case 20:return b==null?null:F9d(BD(b,155).a);case 27:return G9d(BD(b,190));case 30:return H9d((Q8d(),BD(b,15)));case 31:return H9d(BD(b,15));case 40:return K9d((Q8d(),b));case 42:return I9d((Q8d(),b));case 43:return I9d(b);case 59:case 48:return J9d((Q8d(),b));default:throw vbb(new Wdb(tte+a.ne()+ute));}};_.Jh=function W9d(a){var b,c,d,e,f;switch(a.G==-1&&(a.G=(c=bKd(a),c?HLd(c.Mh(),a):-1)),a.G){case 0:return b=new R8d,b;case 1:return d=new _8d,d;case 2:return e=new i9d,e;case 3:return f=new o9d,f;default:throw vbb(new Wdb(xte+a.zb+ute));}};_.Kh=function X9d(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;switch(a.yj()){case 5:case 52:case 4:return b;case 6:return L9d(b);case 8:case 7:return b==null?null:B9d(b);case 9:return b==null?null:Scb(Icb((d=Qge(b,true),d.length>0&&(BCb(0,d.length),d.charCodeAt(0)==43)?d.substr(1):d),-128,127)<<24>>24);case 10:return b==null?null:Scb(Icb((e=Qge(b,true),e.length>0&&(BCb(0,e.length),e.charCodeAt(0)==43)?e.substr(1):e),-128,127)<<24>>24);case 11:return GD(Wmd(this,(Q8d(),w8d),b));case 12:return GD(Wmd(this,(Q8d(),x8d),b));case 13:return b==null?null:new tgb(Qge(b,true));case 15:case 14:return M9d(b);case 16:return GD(Wmd(this,(Q8d(),y8d),b));case 17:return N9d((Q8d(),b));case 18:return N9d(b);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return Qge(b,true);case 21:case 20:return O9d(b);case 22:return GD(Wmd(this,(Q8d(),z8d),b));case 23:return GD(Wmd(this,(Q8d(),A8d),b));case 24:return GD(Wmd(this,(Q8d(),B8d),b));case 25:return GD(Wmd(this,(Q8d(),C8d),b));case 26:return GD(Wmd(this,(Q8d(),D8d),b));case 27:return P9d(b);case 30:return Q9d((Q8d(),b));case 31:return Q9d(b);case 32:return b==null?null:meb(Icb((k=Qge(b,true),k.length>0&&(BCb(0,k.length),k.charCodeAt(0)==43)?k.substr(1):k),Rie,Ohe));case 33:return b==null?null:new Ygb((l=Qge(b,true),l.length>0&&(BCb(0,l.length),l.charCodeAt(0)==43)?l.substr(1):l));case 34:return b==null?null:meb(Icb((m=Qge(b,true),m.length>0&&(BCb(0,m.length),m.charCodeAt(0)==43)?m.substr(1):m),Rie,Ohe));case 36:return b==null?null:Aeb(Jcb((n=Qge(b,true),n.length>0&&(BCb(0,n.length),n.charCodeAt(0)==43)?n.substr(1):n)));case 37:return b==null?null:Aeb(Jcb((o=Qge(b,true),o.length>0&&(BCb(0,o.length),o.charCodeAt(0)==43)?o.substr(1):o)));case 40:return T9d((Q8d(),b));case 42:return R9d((Q8d(),b));case 43:return R9d(b);case 44:return b==null?null:new Ygb((p=Qge(b,true),p.length>0&&(BCb(0,p.length),p.charCodeAt(0)==43)?p.substr(1):p));case 45:return b==null?null:new Ygb((q=Qge(b,true),q.length>0&&(BCb(0,q.length),q.charCodeAt(0)==43)?q.substr(1):q));case 46:return Qge(b,false);case 47:return GD(Wmd(this,(Q8d(),E8d),b));case 59:case 48:return S9d((Q8d(),b));case 49:return GD(Wmd(this,(Q8d(),G8d),b));case 50:return b==null?null:Web(Icb((r=Qge(b,true),r.length>0&&(BCb(0,r.length),r.charCodeAt(0)==43)?r.substr(1):r),awe,32767)<<16>>16);case 51:return b==null?null:Web(Icb((f=Qge(b,true),f.length>0&&(BCb(0,f.length),f.charCodeAt(0)==43)?f.substr(1):f),awe,32767)<<16>>16);case 53:return GD(Wmd(this,(Q8d(),J8d),b));case 55:return b==null?null:Web(Icb((g=Qge(b,true),g.length>0&&(BCb(0,g.length),g.charCodeAt(0)==43)?g.substr(1):g),awe,32767)<<16>>16);case 56:return b==null?null:Web(Icb((h=Qge(b,true),h.length>0&&(BCb(0,h.length),h.charCodeAt(0)==43)?h.substr(1):h),awe,32767)<<16>>16);case 57:return b==null?null:Aeb(Jcb((i=Qge(b,true),i.length>0&&(BCb(0,i.length),i.charCodeAt(0)==43)?i.substr(1):i)));case 58:return b==null?null:Aeb(Jcb((j=Qge(b,true),j.length>0&&(BCb(0,j.length),j.charCodeAt(0)==43)?j.substr(1):j)));case 60:return b==null?null:meb(Icb((c=Qge(b,true),c.length>0&&(BCb(0,c.length),c.charCodeAt(0)==43)?c.substr(1):c),Rie,Ohe));case 61:return b==null?null:meb(Icb(Qge(b,true),Rie,Ohe));default:throw vbb(new Wdb(tte+a.ne()+ute));}};var w9d,x9d,y9d,z9d;var Z9=mdb(Mwe,'XMLTypeFactoryImpl',1919);bcb(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},cae);_.N=false;_.O=false;var Z9d=false;var Yab=mdb(Mwe,'XMLTypePackageImpl',586);bcb(1852,1,{837:1},fae);_._j=function gae(){return Uge(),Tge};var iab=mdb(Mwe,'XMLTypePackageImpl/1',1852);bcb(1861,1,nwe,hae);_.wj=function iae(a){return ND(a)};_.xj=function jae(a){return KC(ZI,nie,2,a,6,1)};var $9=mdb(Mwe,'XMLTypePackageImpl/10',1861);bcb(1862,1,nwe,kae);_.wj=function lae(a){return ND(a)};_.xj=function mae(a){return KC(ZI,nie,2,a,6,1)};var _9=mdb(Mwe,'XMLTypePackageImpl/11',1862);bcb(1863,1,nwe,nae);_.wj=function oae(a){return ND(a)};_.xj=function pae(a){return KC(ZI,nie,2,a,6,1)};var aab=mdb(Mwe,'XMLTypePackageImpl/12',1863);bcb(1864,1,nwe,qae);_.wj=function rae(a){return LD(a)};_.xj=function sae(a){return KC(BI,nie,333,a,7,1)};var bab=mdb(Mwe,'XMLTypePackageImpl/13',1864);bcb(1865,1,nwe,tae);_.wj=function uae(a){return ND(a)};_.xj=function vae(a){return KC(ZI,nie,2,a,6,1)};var cab=mdb(Mwe,'XMLTypePackageImpl/14',1865);bcb(1866,1,nwe,wae);_.wj=function xae(a){return JD(a,15)};_.xj=function yae(a){return KC(yK,eme,15,a,0,1)};var dab=mdb(Mwe,'XMLTypePackageImpl/15',1866);bcb(1867,1,nwe,zae);_.wj=function Aae(a){return JD(a,15)};_.xj=function Bae(a){return KC(yK,eme,15,a,0,1)};var eab=mdb(Mwe,'XMLTypePackageImpl/16',1867);bcb(1868,1,nwe,Cae);_.wj=function Dae(a){return ND(a)};_.xj=function Eae(a){return KC(ZI,nie,2,a,6,1)};var fab=mdb(Mwe,'XMLTypePackageImpl/17',1868);bcb(1869,1,nwe,Fae);_.wj=function Gae(a){return JD(a,155)};_.xj=function Hae(a){return KC(FI,nie,155,a,0,1)};var gab=mdb(Mwe,'XMLTypePackageImpl/18',1869);bcb(1870,1,nwe,Iae);_.wj=function Jae(a){return ND(a)};_.xj=function Kae(a){return KC(ZI,nie,2,a,6,1)};var hab=mdb(Mwe,'XMLTypePackageImpl/19',1870);bcb(1853,1,nwe,Lae);_.wj=function Mae(a){return JD(a,843)};_.xj=function Nae(a){return KC(Q9,Uhe,843,a,0,1)};var tab=mdb(Mwe,'XMLTypePackageImpl/2',1853);bcb(1871,1,nwe,Oae);_.wj=function Pae(a){return ND(a)};_.xj=function Qae(a){return KC(ZI,nie,2,a,6,1)};var jab=mdb(Mwe,'XMLTypePackageImpl/20',1871);bcb(1872,1,nwe,Rae);_.wj=function Sae(a){return ND(a)};_.xj=function Tae(a){return KC(ZI,nie,2,a,6,1)};var kab=mdb(Mwe,'XMLTypePackageImpl/21',1872);bcb(1873,1,nwe,Uae);_.wj=function Vae(a){return ND(a)};_.xj=function Wae(a){return KC(ZI,nie,2,a,6,1)};var lab=mdb(Mwe,'XMLTypePackageImpl/22',1873);bcb(1874,1,nwe,Xae);_.wj=function Yae(a){return ND(a)};_.xj=function Zae(a){return KC(ZI,nie,2,a,6,1)};var mab=mdb(Mwe,'XMLTypePackageImpl/23',1874);bcb(1875,1,nwe,$ae);_.wj=function _ae(a){return JD(a,190)};_.xj=function abe(a){return KC(SD,nie,190,a,0,2)};var nab=mdb(Mwe,'XMLTypePackageImpl/24',1875);bcb(1876,1,nwe,bbe);_.wj=function cbe(a){return ND(a)};_.xj=function dbe(a){return KC(ZI,nie,2,a,6,1)};var oab=mdb(Mwe,'XMLTypePackageImpl/25',1876);bcb(1877,1,nwe,ebe);_.wj=function fbe(a){return ND(a)};_.xj=function gbe(a){return KC(ZI,nie,2,a,6,1)};var pab=mdb(Mwe,'XMLTypePackageImpl/26',1877);bcb(1878,1,nwe,hbe);_.wj=function ibe(a){return JD(a,15)};_.xj=function jbe(a){return KC(yK,eme,15,a,0,1)};var qab=mdb(Mwe,'XMLTypePackageImpl/27',1878);bcb(1879,1,nwe,kbe);_.wj=function lbe(a){return JD(a,15)};_.xj=function mbe(a){return KC(yK,eme,15,a,0,1)};var rab=mdb(Mwe,'XMLTypePackageImpl/28',1879);bcb(1880,1,nwe,nbe);_.wj=function obe(a){return ND(a)};_.xj=function pbe(a){return KC(ZI,nie,2,a,6,1)};var sab=mdb(Mwe,'XMLTypePackageImpl/29',1880);bcb(1854,1,nwe,qbe);_.wj=function rbe(a){return JD(a,667)};_.xj=function sbe(a){return KC(S9,Uhe,2021,a,0,1)};var Eab=mdb(Mwe,'XMLTypePackageImpl/3',1854);bcb(1881,1,nwe,tbe);_.wj=function ube(a){return JD(a,19)};_.xj=function vbe(a){return KC(JI,nie,19,a,0,1)};var uab=mdb(Mwe,'XMLTypePackageImpl/30',1881);bcb(1882,1,nwe,wbe);_.wj=function xbe(a){return ND(a)};_.xj=function ybe(a){return KC(ZI,nie,2,a,6,1)};var vab=mdb(Mwe,'XMLTypePackageImpl/31',1882);bcb(1883,1,nwe,zbe);_.wj=function Abe(a){return JD(a,162)};_.xj=function Bbe(a){return KC(MI,nie,162,a,0,1)};var wab=mdb(Mwe,'XMLTypePackageImpl/32',1883);bcb(1884,1,nwe,Cbe);_.wj=function Dbe(a){return ND(a)};_.xj=function Ebe(a){return KC(ZI,nie,2,a,6,1)};var xab=mdb(Mwe,'XMLTypePackageImpl/33',1884);bcb(1885,1,nwe,Fbe);_.wj=function Gbe(a){return ND(a)};_.xj=function Hbe(a){return KC(ZI,nie,2,a,6,1)};var yab=mdb(Mwe,'XMLTypePackageImpl/34',1885);bcb(1886,1,nwe,Ibe);_.wj=function Jbe(a){return ND(a)};_.xj=function Kbe(a){return KC(ZI,nie,2,a,6,1)};var zab=mdb(Mwe,'XMLTypePackageImpl/35',1886);bcb(1887,1,nwe,Lbe);_.wj=function Mbe(a){return ND(a)};_.xj=function Nbe(a){return KC(ZI,nie,2,a,6,1)};var Aab=mdb(Mwe,'XMLTypePackageImpl/36',1887);bcb(1888,1,nwe,Obe);_.wj=function Pbe(a){return JD(a,15)};_.xj=function Qbe(a){return KC(yK,eme,15,a,0,1)};var Bab=mdb(Mwe,'XMLTypePackageImpl/37',1888);bcb(1889,1,nwe,Rbe);_.wj=function Sbe(a){return JD(a,15)};_.xj=function Tbe(a){return KC(yK,eme,15,a,0,1)};var Cab=mdb(Mwe,'XMLTypePackageImpl/38',1889);bcb(1890,1,nwe,Ube);_.wj=function Vbe(a){return ND(a)};_.xj=function Wbe(a){return KC(ZI,nie,2,a,6,1)};var Dab=mdb(Mwe,'XMLTypePackageImpl/39',1890);bcb(1855,1,nwe,Xbe);_.wj=function Ybe(a){return JD(a,668)};_.xj=function Zbe(a){return KC(T9,Uhe,2022,a,0,1)};var Pab=mdb(Mwe,'XMLTypePackageImpl/4',1855);bcb(1891,1,nwe,$be);_.wj=function _be(a){return ND(a)};_.xj=function ace(a){return KC(ZI,nie,2,a,6,1)};var Fab=mdb(Mwe,'XMLTypePackageImpl/40',1891);bcb(1892,1,nwe,bce);_.wj=function cce(a){return ND(a)};_.xj=function dce(a){return KC(ZI,nie,2,a,6,1)};var Gab=mdb(Mwe,'XMLTypePackageImpl/41',1892);bcb(1893,1,nwe,ece);_.wj=function fce(a){return ND(a)};_.xj=function gce(a){return KC(ZI,nie,2,a,6,1)};var Hab=mdb(Mwe,'XMLTypePackageImpl/42',1893);bcb(1894,1,nwe,hce);_.wj=function ice(a){return ND(a)};_.xj=function jce(a){return KC(ZI,nie,2,a,6,1)};var Iab=mdb(Mwe,'XMLTypePackageImpl/43',1894);bcb(1895,1,nwe,kce);_.wj=function lce(a){return ND(a)};_.xj=function mce(a){return KC(ZI,nie,2,a,6,1)};var Jab=mdb(Mwe,'XMLTypePackageImpl/44',1895);bcb(1896,1,nwe,nce);_.wj=function oce(a){return JD(a,184)};_.xj=function pce(a){return KC(UI,nie,184,a,0,1)};var Kab=mdb(Mwe,'XMLTypePackageImpl/45',1896);bcb(1897,1,nwe,qce);_.wj=function rce(a){return ND(a)};_.xj=function sce(a){return KC(ZI,nie,2,a,6,1)};var Lab=mdb(Mwe,'XMLTypePackageImpl/46',1897);bcb(1898,1,nwe,tce);_.wj=function uce(a){return ND(a)};_.xj=function vce(a){return KC(ZI,nie,2,a,6,1)};var Mab=mdb(Mwe,'XMLTypePackageImpl/47',1898);bcb(1899,1,nwe,wce);_.wj=function xce(a){return ND(a)};_.xj=function yce(a){return KC(ZI,nie,2,a,6,1)};var Nab=mdb(Mwe,'XMLTypePackageImpl/48',1899);bcb(nje,1,nwe,zce);_.wj=function Ace(a){return JD(a,184)};_.xj=function Bce(a){return KC(UI,nie,184,a,0,1)};var Oab=mdb(Mwe,'XMLTypePackageImpl/49',nje);bcb(1856,1,nwe,Cce);_.wj=function Dce(a){return JD(a,669)};_.xj=function Ece(a){return KC(U9,Uhe,2023,a,0,1)};var Tab=mdb(Mwe,'XMLTypePackageImpl/5',1856);bcb(1901,1,nwe,Fce);_.wj=function Gce(a){return JD(a,162)};_.xj=function Hce(a){return KC(MI,nie,162,a,0,1)};var Qab=mdb(Mwe,'XMLTypePackageImpl/50',1901);bcb(1902,1,nwe,Ice);_.wj=function Jce(a){return ND(a)};_.xj=function Kce(a){return KC(ZI,nie,2,a,6,1)};var Rab=mdb(Mwe,'XMLTypePackageImpl/51',1902);bcb(1903,1,nwe,Lce);_.wj=function Mce(a){return JD(a,19)};_.xj=function Nce(a){return KC(JI,nie,19,a,0,1)};var Sab=mdb(Mwe,'XMLTypePackageImpl/52',1903);bcb(1857,1,nwe,Oce);_.wj=function Pce(a){return ND(a)};_.xj=function Qce(a){return KC(ZI,nie,2,a,6,1)};var Uab=mdb(Mwe,'XMLTypePackageImpl/6',1857);bcb(1858,1,nwe,Rce);_.wj=function Sce(a){return JD(a,190)};_.xj=function Tce(a){return KC(SD,nie,190,a,0,2)};var Vab=mdb(Mwe,'XMLTypePackageImpl/7',1858);bcb(1859,1,nwe,Uce);_.wj=function Vce(a){return KD(a)};_.xj=function Wce(a){return KC(wI,nie,476,a,8,1)};var Wab=mdb(Mwe,'XMLTypePackageImpl/8',1859);bcb(1860,1,nwe,Xce);_.wj=function Yce(a){return JD(a,217)};_.xj=function Zce(a){return KC(xI,nie,217,a,0,1)};var Xab=mdb(Mwe,'XMLTypePackageImpl/9',1860);var $ce,_ce;var fde,gde;var kde;bcb(50,60,Tie,mde);var Zab=mdb(kxe,'RegEx/ParseException',50);bcb(820,1,{},ude);_.sl=function vde(a){return a<this.j&&bfb(this.i,a)==63};_.tl=function wde(){var a,b,c,d,e;if(this.c!=10)throw vbb(new mde(tvd((h0d(),uue))));a=this.a;switch(a){case 101:a=27;break;case 102:a=12;break;case 110:a=10;break;case 114:a=13;break;case 116:a=9;break;case 120:nde(this);if(this.c!=0)throw vbb(new mde(tvd((h0d(),Tue))));if(this.a==123){e=0;c=0;do{nde(this);if(this.c!=0)throw vbb(new mde(tvd((h0d(),Tue))));if((e=yde(this.a))<0)break;if(c>c*16)throw vbb(new mde(tvd((h0d(),Uue))));c=c*16+e}while(true);if(this.a!=125)throw vbb(new mde(tvd((h0d(),Vue))));if(c>lxe)throw vbb(new mde(tvd((h0d(),Wue))));a=c}else{e=0;if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=e;nde(this);if(this.c!=0||(e=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));c=c*16+e;a=c}break;case 117:d=0;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;a=b;break;case 118:nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;nde(this);if(this.c!=0||(d=yde(this.a))<0)throw vbb(new mde(tvd((h0d(),Tue))));b=b*16+d;if(b>lxe)throw vbb(new mde(tvd((h0d(),'parser.descappe.4'))));a=b;break;case 65:case 90:case 122:throw vbb(new mde(tvd((h0d(),Xue))));}return a};_.ul=function xde(a){var b,c;switch(a){case 100:c=(this.e&32)==32?Kfe('Nd',true):(wfe(),cfe);break;case 68:c=(this.e&32)==32?Kfe('Nd',false):(wfe(),jfe);break;case 119:c=(this.e&32)==32?Kfe('IsWord',true):(wfe(),sfe);break;case 87:c=(this.e&32)==32?Kfe('IsWord',false):(wfe(),lfe);break;case 115:c=(this.e&32)==32?Kfe('IsSpace',true):(wfe(),nfe);break;case 83:c=(this.e&32)==32?Kfe('IsSpace',false):(wfe(),kfe);break;default:throw vbb(new hz((b=a,mxe+b.toString(16))));}return c};_.vl=function zde(a){var b,c,d,e,f,g,h,i,j,k,l,m;this.b=1;nde(this);b=null;if(this.c==0&&this.a==94){nde(this);if(a){k=(wfe(),wfe(),++vfe,new $fe(5))}else{b=(wfe(),wfe(),++vfe,new $fe(4));Ufe(b,0,lxe);k=(null,++vfe,new $fe(4))}}else{k=(wfe(),wfe(),++vfe,new $fe(4))}e=true;while((m=this.c)!=1){if(m==0&&this.a==93&&!e)break;e=false;c=this.a;d=false;if(m==10){switch(c){case 100:case 68:case 119:case 87:case 115:case 83:Xfe(k,this.ul(c));d=true;break;case 105:case 73:case 99:case 67:c=this.Ll(k,c);c<0&&(d=true);break;case 112:case 80:l=tde(this,c);if(!l)throw vbb(new mde(tvd((h0d(),Iue))));Xfe(k,l);d=true;break;default:c=this.tl();}}else if(m==20){g=gfb(this.i,58,this.d);if(g<0)throw vbb(new mde(tvd((h0d(),Jue))));h=true;if(bfb(this.i,this.d)==94){++this.d;h=false}f=qfb(this.i,this.d,g);i=Lfe(f,h,(this.e&512)==512);if(!i)throw vbb(new mde(tvd((h0d(),Lue))));Xfe(k,i);d=true;if(g+1>=this.j||bfb(this.i,g+1)!=93)throw vbb(new mde(tvd((h0d(),Jue))));this.d=g+2}nde(this);if(!d){if(this.c!=0||this.a!=45){Ufe(k,c,c)}else{nde(this);if((m=this.c)==1)throw vbb(new mde(tvd((h0d(),Kue))));if(m==0&&this.a==93){Ufe(k,c,c);Ufe(k,45,45)}else{j=this.a;m==10&&(j=this.tl());nde(this);Ufe(k,c,j)}}}(this.e&zte)==zte&&this.c==0&&this.a==44&&nde(this)}if(this.c==1)throw vbb(new mde(tvd((h0d(),Kue))));if(b){Zfe(b,k);k=b}Yfe(k);Vfe(k);this.b=0;nde(this);return k};_.wl=function Ade(){var a,b,c,d;c=this.vl(false);while((d=this.c)!=7){a=this.a;if(d==0&&(a==45||a==38)||d==4){nde(this);if(this.c!=9)throw vbb(new mde(tvd((h0d(),Que))));b=this.vl(false);if(d==4)Xfe(c,b);else if(a==45)Zfe(c,b);else if(a==38)Wfe(c,b);else throw vbb(new hz('ASSERT'))}else{throw vbb(new mde(tvd((h0d(),Rue))))}}nde(this);return c};_.xl=function Bde(){var a,b;a=this.a-48;b=(wfe(),wfe(),++vfe,new Hge(12,null,a));!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(a));nde(this);return b};_.yl=function Cde(){nde(this);return wfe(),ofe};_.zl=function Dde(){nde(this);return wfe(),mfe};_.Al=function Ede(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Bl=function Fde(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Cl=function Gde(){nde(this);return Ife()};_.Dl=function Hde(){nde(this);return wfe(),qfe};_.El=function Ide(){nde(this);return wfe(),tfe};_.Fl=function Jde(){var a;if(this.d>=this.j||((a=bfb(this.i,this.d++))&65504)!=64)throw vbb(new mde(tvd((h0d(),Eue))));nde(this);return wfe(),wfe(),++vfe,new ige(0,a-64)};_.Gl=function Kde(){nde(this);return Jfe()};_.Hl=function Lde(){nde(this);return wfe(),ufe};_.Il=function Mde(){var a;a=(wfe(),wfe(),++vfe,new ige(0,105));nde(this);return a};_.Jl=function Nde(){nde(this);return wfe(),rfe};_.Kl=function Ode(){nde(this);return wfe(),pfe};_.Ll=function Pde(a,b){return this.tl()};_.Ml=function Qde(){nde(this);return wfe(),hfe};_.Nl=function Rde(){var a,b,c,d,e;if(this.d+1>=this.j)throw vbb(new mde(tvd((h0d(),Bue))));d=-1;b=null;a=bfb(this.i,this.d);if(49<=a&&a<=57){d=a-48;!this.g&&(this.g=new Wvb);Tvb(this.g,new cge(d));++this.d;if(bfb(this.i,this.d)!=41)throw vbb(new mde(tvd((h0d(),yue))));++this.d}else{a==63&&--this.d;nde(this);b=qde(this);switch(b.e){case 20:case 21:case 22:case 23:break;case 8:if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));break;default:throw vbb(new mde(tvd((h0d(),Cue))));}}nde(this);e=rde(this);c=null;if(e.e==2){if(e.em()!=2)throw vbb(new mde(tvd((h0d(),Due))));c=e.am(1);e=e.am(0)}if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return wfe(),wfe(),++vfe,new vge(d,b,e,c)};_.Ol=function Sde(){nde(this);return wfe(),ife};_.Pl=function Tde(){var a;nde(this);a=Cfe(24,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ql=function Ude(){var a;nde(this);a=Cfe(20,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Rl=function Vde(){var a;nde(this);a=Cfe(22,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Sl=function Wde(){var a,b,c,d,e;a=0;c=0;b=-1;while(this.d<this.j){b=bfb(this.i,this.d);e=Uee(b);if(e==0)break;a|=e;++this.d}if(this.d>=this.j)throw vbb(new mde(tvd((h0d(),zue))));if(b==45){++this.d;while(this.d<this.j){b=bfb(this.i,this.d);e=Uee(b);if(e==0)break;c|=e;++this.d}if(this.d>=this.j)throw vbb(new mde(tvd((h0d(),zue))))}if(b==58){++this.d;nde(this);d=Dfe(rde(this),a,c);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this)}else if(b==41){++this.d;nde(this);d=Dfe(rde(this),a,c)}else throw vbb(new mde(tvd((h0d(),Aue))));return d};_.Tl=function Xde(){var a;nde(this);a=Cfe(21,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Ul=function Yde(){var a;nde(this);a=Cfe(23,rde(this));if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Vl=function Zde(){var a,b;nde(this);a=this.f++;b=Efe(rde(this),a);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return b};_.Wl=function $de(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Xl=function _de(a){nde(this);if(this.c==5){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(9,a)))}else return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function aee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));if(this.c==5){nde(this);Kge(b,(null,ffe));Kge(b,a)}else{Kge(b,a);Kge(b,(null,ffe))}return b};_.Zl=function bee(a){nde(this);if(this.c==5){nde(this);return wfe(),wfe(),++vfe,new lge(9,a)}else return wfe(),wfe(),++vfe,new lge(3,a)};_.a=0;_.b=0;_.c=0;_.d=0;_.e=0;_.f=1;_.g=null;_.j=0;var bbb=mdb(kxe,'RegEx/RegexParser',820);bcb(1824,820,{},hee);_.sl=function iee(a){return false};_.tl=function jee(){return eee(this)};_.ul=function lee(a){return fee(a)};_.vl=function mee(a){return gee(this)};_.wl=function nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.xl=function oee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.yl=function pee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.zl=function qee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Al=function ree(){nde(this);return fee(67)};_.Bl=function see(){nde(this);return fee(73)};_.Cl=function tee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Dl=function uee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.El=function vee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Fl=function wee(){nde(this);return fee(99)};_.Gl=function xee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Hl=function yee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Il=function zee(){nde(this);return fee(105)};_.Jl=function Aee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Kl=function Bee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ll=function Cee(a,b){return Xfe(a,fee(b)),-1};_.Ml=function Dee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,94)};_.Nl=function Eee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ol=function Fee(){nde(this);return wfe(),wfe(),++vfe,new ige(0,36)};_.Pl=function Gee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ql=function Hee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Rl=function Iee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Sl=function Jee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Tl=function Kee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Ul=function Lee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Vl=function Mee(){var a;nde(this);a=Efe(rde(this),0);if(this.c!=7)throw vbb(new mde(tvd((h0d(),yue))));nde(this);return a};_.Wl=function Nee(){throw vbb(new mde(tvd((h0d(),Yue))))};_.Xl=function Oee(a){nde(this);return Bfe(a,(wfe(),wfe(),++vfe,new lge(3,a)))};_.Yl=function Pee(a){var b;nde(this);b=(wfe(),wfe(),++vfe,new Lge(2));Kge(b,a);Kge(b,(null,ffe));return b};_.Zl=function Qee(a){nde(this);return wfe(),wfe(),++vfe,new lge(3,a)};var cee=null,dee=null;var $ab=mdb(kxe,'RegEx/ParserForXMLSchema',1824);bcb(117,1,yxe,xfe);_.$l=function yfe(a){throw vbb(new hz('Not supported.'))};_._l=function Gfe(){return -1};_.am=function Hfe(a){return null};_.bm=function Mfe(){return null};_.cm=function Pfe(a){};_.dm=function Qfe(a){};_.em=function Rfe(){return 0};_.Ib=function Sfe(){return this.fm(0)};_.fm=function Tfe(a){return this.e==11?'.':''};_.e=0;var Yee,Zee,$ee,_ee,afe,bfe=null,cfe,dfe=null,efe,ffe,gfe=null,hfe,ife,jfe,kfe,lfe,mfe,nfe,ofe,pfe,qfe,rfe,sfe,tfe,ufe,vfe=0;var lbb=mdb(kxe,'RegEx/Token',117);bcb(136,117,{3:1,136:1,117:1},$fe);_.fm=function bge(a){var b,c,d;if(this.e==4){if(this==efe)c='.';else if(this==cfe)c='\\d';else if(this==sfe)c='\\w';else if(this==nfe)c='\\s';else{d=new Hfb;d.a+='[';for(b=0;b<this.b.length;b+=2){(a&zte)!=0&&b>0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}else{if(this==jfe)c='\\D';else if(this==lfe)c='\\W';else if(this==kfe)c='\\S';else{d=new Hfb;d.a+='[^';for(b=0;b<this.b.length;b+=2){(a&zte)!=0&&b>0&&(d.a+=',',d);if(this.b[b]===this.b[b+1]){Efb(d,age(this.b[b]))}else{Efb(d,age(this.b[b]));d.a+='-';Efb(d,age(this.b[b+1]))}}d.a+=']';c=d.a}}return c};_.a=false;_.c=false;var _ab=mdb(kxe,'RegEx/RangeToken',136);bcb(584,1,{584:1},cge);_.a=0;var abb=mdb(kxe,'RegEx/RegexParser/ReferencePosition',584);bcb(583,1,{3:1,583:1},ege);_.Fb=function fge(a){var b;if(a==null)return false;if(!JD(a,583))return false;b=BD(a,583);return dfb(this.b,b.b)&&this.a==b.a};_.Hb=function gge(){return LCb(this.b+'/'+See(this.a))};_.Ib=function hge(){return this.c.fm(this.a)};_.a=0;var cbb=mdb(kxe,'RegEx/RegularExpression',583);bcb(223,117,yxe,ige);_._l=function jge(){return this.a};_.fm=function kge(a){var b,c,d;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:d='\\'+HD(this.a&aje);break;case 12:d='\\f';break;case 10:d='\\n';break;case 13:d='\\r';break;case 9:d='\\t';break;case 27:d='\\e';break;default:if(this.a>=Tje){c=(b=this.a>>>0,'0'+b.toString(16));d='\\v'+qfb(c,c.length-6,c.length)}else d=''+HD(this.a&aje);}break;case 8:this==hfe||this==ife?(d=''+HD(this.a&aje)):(d='\\'+HD(this.a&aje));break;default:d=null;}return d};_.a=0;var dbb=mdb(kxe,'RegEx/Token/CharToken',223);bcb(309,117,yxe,lge);_.am=function mge(a){return this.a};_.cm=function nge(a){this.b=a};_.dm=function oge(a){this.c=a};_.em=function pge(){return 1};_.fm=function qge(a){var b;if(this.e==3){if(this.c<0&&this.b<0){b=this.a.fm(a)+'*'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}'}else throw vbb(new hz('Token#toString(): CLOSURE '+this.c+She+this.b))}else{if(this.c<0&&this.b<0){b=this.a.fm(a)+'*?'}else if(this.c==this.b){b=this.a.fm(a)+'{'+this.c+'}?'}else if(this.c>=0&&this.b>=0){b=this.a.fm(a)+'{'+this.c+','+this.b+'}?'}else if(this.c>=0&&this.b<0){b=this.a.fm(a)+'{'+this.c+',}?'}else throw vbb(new hz('Token#toString(): NONGREEDYCLOSURE '+this.c+She+this.b))}return b};_.b=0;_.c=0;var ebb=mdb(kxe,'RegEx/Token/ClosureToken',309);bcb(821,117,yxe,rge);_.am=function sge(a){return a==0?this.a:this.b};_.em=function tge(){return 2};_.fm=function uge(a){var b;this.b.e==3&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+'):this.b.e==9&&this.b.am(0)==this.a?(b=this.a.fm(a)+'+?'):(b=this.a.fm(a)+(''+this.b.fm(a)));return b};var fbb=mdb(kxe,'RegEx/Token/ConcatToken',821);bcb(1822,117,yxe,vge);_.am=function wge(a){if(a==0)return this.d;if(a==1)return this.b;throw vbb(new hz('Internal Error: '+a))};_.em=function xge(){return !this.b?1:2};_.fm=function yge(a){var b;this.c>0?(b='(?('+this.c+')'):this.a.e==8?(b='(?('+this.a+')'):(b='(?'+this.a);!this.b?(b+=this.d+')'):(b+=this.d+'|'+this.b+')');return b};_.c=0;var gbb=mdb(kxe,'RegEx/Token/ConditionToken',1822);bcb(1823,117,yxe,zge);_.am=function Age(a){return this.b};_.em=function Bge(){return 1};_.fm=function Cge(a){return '(?'+(this.a==0?'':See(this.a))+(this.c==0?'':See(this.c))+':'+this.b.fm(a)+')'};_.a=0;_.c=0;var hbb=mdb(kxe,'RegEx/Token/ModifierToken',1823);bcb(822,117,yxe,Dge);_.am=function Ege(a){return this.a};_.em=function Fge(){return 1};_.fm=function Gge(a){var b;b=null;switch(this.e){case 6:this.b==0?(b='(?:'+this.a.fm(a)+')'):(b='('+this.a.fm(a)+')');break;case 20:b='(?='+this.a.fm(a)+')';break;case 21:b='(?!'+this.a.fm(a)+')';break;case 22:b='(?<='+this.a.fm(a)+')';break;case 23:b='(?<!'+this.a.fm(a)+')';break;case 24:b='(?>'+this.a.fm(a)+')';}return b};_.b=0;var ibb=mdb(kxe,'RegEx/Token/ParenToken',822);bcb(521,117,{3:1,117:1,521:1},Hge);_.bm=function Ige(){return this.b};_.fm=function Jge(a){return this.e==12?'\\'+this.a:Wee(this.b)};_.a=0;var jbb=mdb(kxe,'RegEx/Token/StringToken',521);bcb(465,117,yxe,Lge);_.$l=function Mge(a){Kge(this,a)};_.am=function Nge(a){return BD(Uvb(this.a,a),117)};_.em=function Oge(){return !this.a?0:this.a.a.c.length};_.fm=function Pge(a){var b,c,d,e,f;if(this.e==1){if(this.a.a.c.length==2){b=BD(Uvb(this.a,0),117);c=BD(Uvb(this.a,1),117);c.e==3&&c.am(0)==b?(e=b.fm(a)+'+'):c.e==9&&c.am(0)==b?(e=b.fm(a)+'+?'):(e=b.fm(a)+(''+c.fm(a)))}else{f=new Hfb;for(d=0;d<this.a.a.c.length;d++){Efb(f,BD(Uvb(this.a,d),117).fm(a))}e=f.a}return e}if(this.a.a.c.length==2&&BD(Uvb(this.a,1),117).e==7){e=BD(Uvb(this.a,0),117).fm(a)+'?'}else if(this.a.a.c.length==2&&BD(Uvb(this.a,0),117).e==7){e=BD(Uvb(this.a,1),117).fm(a)+'??'}else{f=new Hfb;Efb(f,BD(Uvb(this.a,0),117).fm(a));for(d=1;d<this.a.a.c.length;d++){f.a+='|';Efb(f,BD(Uvb(this.a,d),117).fm(a))}e=f.a}return e};var kbb=mdb(kxe,'RegEx/Token/UnionToken',465);bcb(518,1,{592:1},Rge);_.Ib=function Sge(){return this.a.b};var mbb=mdb(zxe,'XMLTypeUtil/PatternMatcherImpl',518);bcb(1622,1381,{},Vge);var Tge;var nbb=mdb(zxe,'XMLTypeValidator',1622);bcb(264,1,vie,Yge);_.Jc=function Zge(a){reb(this,a)};_.Kc=function $ge(){return (this.b-this.a)*this.c<0?Wge:new she(this)};_.a=0;_.b=0;_.c=0;var Wge;var qbb=mdb(Bxe,'ExclusiveRange',264);bcb(1068,1,jie,dhe);_.Rb=function ehe(a){BD(a,19);_ge()};_.Nb=function fhe(a){Rrb(this,a)};_.Pb=function ihe(){return ahe()};_.Ub=function khe(){return bhe()};_.Wb=function nhe(a){BD(a,19);che()};_.Ob=function ghe(){return false};_.Sb=function hhe(){return false};_.Tb=function jhe(){return -1};_.Vb=function lhe(){return -1};_.Qb=function mhe(){throw vbb(new cgb(Exe))};var obb=mdb(Bxe,'ExclusiveRange/1',1068);bcb(254,1,jie,she);_.Rb=function the(a){BD(a,19);ohe()};_.Nb=function uhe(a){Rrb(this,a)};_.Pb=function xhe(){return phe(this)};_.Ub=function zhe(){return qhe(this)};_.Wb=function Che(a){BD(a,19);rhe()};_.Ob=function vhe(){return this.c.c<0?this.a>=this.c.b:this.a<=this.c.b};_.Sb=function whe(){return this.b>0};_.Tb=function yhe(){return this.b};_.Vb=function Ahe(){return this.b-1};_.Qb=function Bhe(){throw vbb(new cgb(Exe))};_.a=0;_.b=0;var pbb=mdb(Bxe,'ExclusiveRange/RangeIterator',254);var TD=pdb(Fve,'C');var WD=pdb(Ive,'I');var sbb=pdb(Khe,'Z');var XD=pdb(Jve,'J');var SD=pdb(Eve,'B');var UD=pdb(Gve,'D');var VD=pdb(Hve,'F');var rbb=pdb(Kve,'S');var h1=odb('org.eclipse.elk.core.labels','ILabelManager');var O4=odb(Tte,'DiagnosticChain');var u8=odb(pwe,'ResourceSet');var V4=mdb(Tte,'InvocationTargetException',null);var Ihe=(Az(),Dz);var gwtOnLoad=gwtOnLoad=Zbb;Xbb(hcb);$bb('permProps',[[[Fxe,Gxe],[Hxe,'gecko1_8']],[[Fxe,Gxe],[Hxe,'ie10']],[[Fxe,Gxe],[Hxe,'ie8']],[[Fxe,Gxe],[Hxe,'ie9']],[[Fxe,Gxe],[Hxe,'safari']]]); +// -------------- RUN GWT INITIALIZATION CODE -------------- +gwtOnLoad(null, 'elk', null); + +}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],3:[function(require,module,exports){ +'use strict'; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/******************************************************************************* + * Copyright (c) 2021 Kiel University and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +var ELK = require('./elk-api.js').default; + +var ELKNode = function (_ELK) { + _inherits(ELKNode, _ELK); + + function ELKNode() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + _classCallCheck(this, ELKNode); + + var optionsClone = Object.assign({}, options); + + var workerThreadsExist = false; + try { + require.resolve('web-worker'); + workerThreadsExist = true; + } catch (e) {} + + // user requested a worker + if (options.workerUrl) { + if (workerThreadsExist) { + var Worker = require('web-worker'); + optionsClone.workerFactory = function (url) { + return new Worker(url); + }; + } else { + console.warn('Web worker requested but \'web-worker\' package not installed. \nConsider installing the package or pass your own \'workerFactory\' to ELK\'s constructor.\n... Falling back to non-web worker version.'); + } + } + + // unless no other workerFactory is registered, use the fake worker + if (!optionsClone.workerFactory) { + var _require = require('./elk-worker.min.js'), + _Worker = _require.Worker; + + optionsClone.workerFactory = function (url) { + return new _Worker(url); + }; + } + + return _possibleConstructorReturn(this, (ELKNode.__proto__ || Object.getPrototypeOf(ELKNode)).call(this, optionsClone)); + } + + return ELKNode; +}(ELK); + +Object.defineProperty(module.exports, "__esModule", { + value: true +}); +module.exports = ELKNode; +ELKNode.default = ELKNode; +},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(require,module,exports){ +/** + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +module.exports = Worker; +},{}]},{},[3])(3) +}); + + +/***/ }), + +/***/ 19487: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "diagram": () => (/* binding */ diagram) +/* harmony export */ }); +/* harmony import */ var _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(87115); +/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59373); +/* harmony import */ var dagre_d3_es_src_dagre_js_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(43349); +/* harmony import */ var elkjs_lib_elk_bundled_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17295); +/* harmony import */ var elkjs_lib_elk_bundled_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(elkjs_lib_elk_bundled_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27484); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _braintree_sanitize_url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17967); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20683); +/* harmony import */ var dagre_d3_es_src_dagre_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(70277); +/* harmony import */ var dagre_d3_es_src_graphlib_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(45625); +/* harmony import */ var dagre_d3_es_src_graphlib_json_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(39354); +/* harmony import */ var dagre_d3_es__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(91518); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(59542); +/* harmony import */ var dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_isoWeek_js__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(10285); +/* harmony import */ var dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_customParseFormat_js__WEBPACK_IMPORTED_MODULE_10__); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(28734); +/* harmony import */ var dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(dayjs_plugin_advancedFormat_js__WEBPACK_IMPORTED_MODULE_11__); + + + + + + + + + + + + + + + + + + + + + + + +const findCommonAncestor = (id1, id2, treeData) => { + const { parentById } = treeData; + const visited = /* @__PURE__ */ new Set(); + let currentId = id1; + while (currentId) { + visited.add(currentId); + if (currentId === id2) { + return currentId; + } + currentId = parentById[currentId]; + } + currentId = id2; + while (currentId) { + if (visited.has(currentId)) { + return currentId; + } + currentId = parentById[currentId]; + } + return "root"; +}; +const elk = new (elkjs_lib_elk_bundled_js__WEBPACK_IMPORTED_MODULE_1___default())(); +const portPos = {}; +const conf = {}; +let nodeDb = {}; +const addVertices = function(vert, svgId, root, doc, diagObj, parentLookupDb, graph) { + const svg = root.select(`[id="${svgId}"]`); + const nodes = svg.insert("g").attr("class", "nodes"); + const keys = Object.keys(vert); + keys.forEach(function(id) { + const vertex = vert[id]; + let classStr = "default"; + if (vertex.classes.length > 0) { + classStr = vertex.classes.join(" "); + } + const styles2 = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.a)(vertex.styles); + let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id; + let vertexNode; + const labelData = { width: 0, height: 0 }; + if ((0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.e)((0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.g)().flowchart.htmlLabels)) { + const node2 = { + label: vertexText.replace( + /fa[blrs]?:fa-[\w-]+/g, + (s) => `<i class='${s.replace(":", " ")}'></i>` + ) + }; + vertexNode = (0,dagre_d3_es_src_dagre_js_label_add_html_label_js__WEBPACK_IMPORTED_MODULE_13__/* .addHtmlLabel */ .a)(svg, node2).node(); + const bbox = vertexNode.getBBox(); + labelData.width = bbox.width; + labelData.height = bbox.height; + labelData.labelNode = vertexNode; + vertexNode.parentNode.removeChild(vertexNode); + } else { + const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text"); + svgLabel.setAttribute("style", styles2.labelStyle.replace("color:", "fill:")); + const rows = vertexText.split(_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.c.lineBreakRegex); + for (const row of rows) { + const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan"); + tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve"); + tspan.setAttribute("dy", "1em"); + tspan.setAttribute("x", "1"); + tspan.textContent = row; + svgLabel.appendChild(tspan); + } + vertexNode = svgLabel; + const bbox = vertexNode.getBBox(); + labelData.width = bbox.width; + labelData.height = bbox.height; + labelData.labelNode = vertexNode; + } + const ports = [ + { + id: vertex.id + "-west", + layoutOptions: { + "port.side": "WEST" + } + }, + { + id: vertex.id + "-east", + layoutOptions: { + "port.side": "EAST" + } + }, + { + id: vertex.id + "-south", + layoutOptions: { + "port.side": "SOUTH" + } + }, + { + id: vertex.id + "-north", + layoutOptions: { + "port.side": "NORTH" + } + } + ]; + let radious = 0; + let _shape = ""; + let layoutOptions = {}; + switch (vertex.type) { + case "round": + radious = 5; + _shape = "rect"; + break; + case "square": + _shape = "rect"; + break; + case "diamond": + _shape = "question"; + layoutOptions = { + portConstraints: "FIXED_SIDE" + }; + break; + case "hexagon": + _shape = "hexagon"; + break; + case "odd": + _shape = "rect_left_inv_arrow"; + break; + case "lean_right": + _shape = "lean_right"; + break; + case "lean_left": + _shape = "lean_left"; + break; + case "trapezoid": + _shape = "trapezoid"; + break; + case "inv_trapezoid": + _shape = "inv_trapezoid"; + break; + case "odd_right": + _shape = "rect_left_inv_arrow"; + break; + case "circle": + _shape = "circle"; + break; + case "ellipse": + _shape = "ellipse"; + break; + case "stadium": + _shape = "stadium"; + break; + case "subroutine": + _shape = "subroutine"; + break; + case "cylinder": + _shape = "cylinder"; + break; + case "group": + _shape = "rect"; + break; + case "doublecircle": + _shape = "doublecircle"; + break; + default: + _shape = "rect"; + } + const node = { + labelStyle: styles2.labelStyle, + shape: _shape, + labelText: vertexText, + rx: radious, + ry: radious, + class: classStr, + style: styles2.style, + id: vertex.id, + link: vertex.link, + linkTarget: vertex.linkTarget, + tooltip: diagObj.db.getTooltip(vertex.id) || "", + domId: diagObj.db.lookUpDomId(vertex.id), + haveCallback: vertex.haveCallback, + width: vertex.type === "group" ? 500 : void 0, + dir: vertex.dir, + type: vertex.type, + props: vertex.props, + padding: (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.g)().flowchart.padding + }; + let boundingBox; + let nodeEl; + if (node.type !== "group") { + nodeEl = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.b)(nodes, node, vertex.dir); + boundingBox = nodeEl.node().getBBox(); + } + const data = { + id: vertex.id, + ports: vertex.type === "diamond" ? ports : [], + // labelStyle: styles.labelStyle, + // shape: _shape, + layoutOptions, + labelText: vertexText, + labelData, + // labels: [{ text: vertexText }], + // rx: radius, + // ry: radius, + // class: classStr, + // style: styles.style, + // link: vertex.link, + // linkTarget: vertex.linkTarget, + // tooltip: diagObj.db.getTooltip(vertex.id) || '', + domId: diagObj.db.lookUpDomId(vertex.id), + // haveCallback: vertex.haveCallback, + width: boundingBox == null ? void 0 : boundingBox.width, + height: boundingBox == null ? void 0 : boundingBox.height, + // dir: vertex.dir, + type: vertex.type, + // props: vertex.props, + // padding: getConfig().flowchart.padding, + // boundingBox, + el: nodeEl, + parent: parentLookupDb.parentById[vertex.id] + }; + nodeDb[node.id] = data; + }); + return graph; +}; +const getNextPosition = (position, edgeDirection, graphDirection) => { + const portPos2 = { + TB: { + in: { + north: "north" + }, + out: { + south: "west", + west: "east", + east: "south" + } + }, + LR: { + in: { + west: "west" + }, + out: { + east: "south", + south: "north", + north: "east" + } + }, + RL: { + in: { + east: "east" + }, + out: { + west: "north", + north: "south", + south: "west" + } + }, + BT: { + in: { + south: "south" + }, + out: { + north: "east", + east: "west", + west: "north" + } + } + }; + portPos2.TD = portPos2.TB; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("abc88", graphDirection, edgeDirection, position); + return portPos2[graphDirection][edgeDirection][position]; +}; +const getNextPort = (node, edgeDirection, graphDirection) => { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("getNextPort abc88", { node, edgeDirection, graphDirection }); + if (!portPos[node]) { + switch (graphDirection) { + case "TB": + case "TD": + portPos[node] = { + inPosition: "north", + outPosition: "south" + }; + break; + case "BT": + portPos[node] = { + inPosition: "south", + outPosition: "north" + }; + break; + case "RL": + portPos[node] = { + inPosition: "east", + outPosition: "west" + }; + break; + case "LR": + portPos[node] = { + inPosition: "west", + outPosition: "east" + }; + break; + } + } + const result = edgeDirection === "in" ? portPos[node].inPosition : portPos[node].outPosition; + if (edgeDirection === "in") { + portPos[node].inPosition = getNextPosition( + portPos[node].inPosition, + edgeDirection, + graphDirection + ); + } else { + portPos[node].outPosition = getNextPosition( + portPos[node].outPosition, + edgeDirection, + graphDirection + ); + } + return result; +}; +const getEdgeStartEndPoint = (edge, dir) => { + let source = edge.start; + let target = edge.end; + const startNode = nodeDb[source]; + const endNode = nodeDb[target]; + if (!startNode || !endNode) { + return { source, target }; + } + if (startNode.type === "diamond") { + source = `${source}-${getNextPort(source, "out", dir)}`; + } + if (endNode.type === "diamond") { + target = `${target}-${getNextPort(target, "in", dir)}`; + } + return { source, target }; +}; +const addEdges = function(edges, diagObj, graph, svg) { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("abc78 edges = ", edges); + const labelsEl = svg.insert("g").attr("class", "edgeLabels"); + let linkIdCnt = {}; + let dir = diagObj.db.getDirection(); + let defaultStyle; + let defaultLabelStyle; + if (edges.defaultStyle !== void 0) { + const defaultStyles = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.a)(edges.defaultStyle); + defaultStyle = defaultStyles.style; + defaultLabelStyle = defaultStyles.labelStyle; + } + edges.forEach(function(edge) { + var linkIdBase = "L-" + edge.start + "-" + edge.end; + if (linkIdCnt[linkIdBase] === void 0) { + linkIdCnt[linkIdBase] = 0; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } else { + linkIdCnt[linkIdBase]++; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]); + } + let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase]; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]); + var linkNameStart = "LS-" + edge.start; + var linkNameEnd = "LE-" + edge.end; + const edgeData = { style: "", labelStyle: "" }; + edgeData.minlen = edge.length || 1; + if (edge.type === "arrow_open") { + edgeData.arrowhead = "none"; + } else { + edgeData.arrowhead = "normal"; + } + edgeData.arrowTypeStart = "arrow_open"; + edgeData.arrowTypeEnd = "arrow_open"; + switch (edge.type) { + case "double_arrow_cross": + edgeData.arrowTypeStart = "arrow_cross"; + case "arrow_cross": + edgeData.arrowTypeEnd = "arrow_cross"; + break; + case "double_arrow_point": + edgeData.arrowTypeStart = "arrow_point"; + case "arrow_point": + edgeData.arrowTypeEnd = "arrow_point"; + break; + case "double_arrow_circle": + edgeData.arrowTypeStart = "arrow_circle"; + case "arrow_circle": + edgeData.arrowTypeEnd = "arrow_circle"; + break; + } + let style = ""; + let labelStyle = ""; + switch (edge.stroke) { + case "normal": + style = "fill:none;"; + if (defaultStyle !== void 0) { + style = defaultStyle; + } + if (defaultLabelStyle !== void 0) { + labelStyle = defaultLabelStyle; + } + edgeData.thickness = "normal"; + edgeData.pattern = "solid"; + break; + case "dotted": + edgeData.thickness = "normal"; + edgeData.pattern = "dotted"; + edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;"; + break; + case "thick": + edgeData.thickness = "thick"; + edgeData.pattern = "solid"; + edgeData.style = "stroke-width: 3.5px;fill:none;"; + break; + } + if (edge.style !== void 0) { + const styles2 = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.a)(edge.style); + style = styles2.style; + labelStyle = styles2.labelStyle; + } + edgeData.style = edgeData.style += style; + edgeData.labelStyle = edgeData.labelStyle += labelStyle; + if (edge.interpolate !== void 0) { + edgeData.curve = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.d)(edge.interpolate, d3__WEBPACK_IMPORTED_MODULE_0__/* .curveLinear */ .c_6); + } else if (edges.defaultInterpolate !== void 0) { + edgeData.curve = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.d)(edges.defaultInterpolate, d3__WEBPACK_IMPORTED_MODULE_0__/* .curveLinear */ .c_6); + } else { + edgeData.curve = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.d)(conf.curve, d3__WEBPACK_IMPORTED_MODULE_0__/* .curveLinear */ .c_6); + } + if (edge.text === void 0) { + if (edge.style !== void 0) { + edgeData.arrowheadStyle = "fill: #333"; + } + } else { + edgeData.arrowheadStyle = "fill: #333"; + edgeData.labelpos = "c"; + } + edgeData.labelType = "text"; + edgeData.label = edge.text.replace(_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.c.lineBreakRegex, "\n"); + if (edge.style === void 0) { + edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;"; + } + edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:"); + edgeData.id = linkId; + edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd; + const labelEl = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.f)(labelsEl, edgeData); + const { source, target } = getEdgeStartEndPoint(edge, dir); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.debug("abc78 source and target", source, target); + graph.edges.push({ + id: "e" + edge.start + edge.end, + sources: [source], + targets: [target], + labelEl, + labels: [ + { + width: edgeData.width, + height: edgeData.height, + orgWidth: edgeData.width, + orgHeight: edgeData.height, + text: edgeData.label, + layoutOptions: { + "edgeLabels.inline": "true", + "edgeLabels.placement": "CENTER" + } + } + ], + edgeData + }); + }); + return graph; +}; +const addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute) { + let url = ""; + if (arrowMarkerAbsolute) { + url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); + } + switch (edgeData.arrowTypeStart) { + case "arrow_cross": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-crossStart)"); + break; + case "arrow_point": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-pointStart)"); + break; + case "arrow_barb": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-barbStart)"); + break; + case "arrow_circle": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-circleStart)"); + break; + case "aggregation": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-aggregationStart)"); + break; + case "extension": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-extensionStart)"); + break; + case "composition": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-compositionStart)"); + break; + case "dependency": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-dependencyStart)"); + break; + case "lollipop": + svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-lollipopStart)"); + break; + } + switch (edgeData.arrowTypeEnd) { + case "arrow_cross": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-crossEnd)"); + break; + case "arrow_point": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-pointEnd)"); + break; + case "arrow_barb": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-barbEnd)"); + break; + case "arrow_circle": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-circleEnd)"); + break; + case "aggregation": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-aggregationEnd)"); + break; + case "extension": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-extensionEnd)"); + break; + case "composition": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-compositionEnd)"); + break; + case "dependency": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-dependencyEnd)"); + break; + case "lollipop": + svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-lollipopEnd)"); + break; + } +}; +const getClasses = function(text, diagObj) { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Extracting classes"); + diagObj.db.clear("ver-2"); + try { + diagObj.parse(text); + return diagObj.db.getClasses(); + } catch (e) { + return {}; + } +}; +const addSubGraphs = function(db2) { + const parentLookupDb = { parentById: {}, childrenById: {} }; + const subgraphs = db2.getSubGraphs(); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Subgraphs - ", subgraphs); + subgraphs.forEach(function(subgraph) { + subgraph.nodes.forEach(function(node) { + parentLookupDb.parentById[node] = subgraph.id; + if (parentLookupDb.childrenById[subgraph.id] === void 0) { + parentLookupDb.childrenById[subgraph.id] = []; + } + parentLookupDb.childrenById[subgraph.id].push(node); + }); + }); + subgraphs.forEach(function(subgraph) { + ({ id: subgraph.id }); + if (parentLookupDb.parentById[subgraph.id] !== void 0) { + parentLookupDb.parentById[subgraph.id]; + } + }); + return parentLookupDb; +}; +const calcOffset = function(src, dest, parentLookupDb) { + const ancestor = findCommonAncestor(src, dest, parentLookupDb); + if (ancestor === void 0 || ancestor === "root") { + return { x: 0, y: 0 }; + } + const ancestorOffset = nodeDb[ancestor].offset; + return { x: ancestorOffset.posX, y: ancestorOffset.posY }; +}; +const insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb) { + const offset = calcOffset(edge.sources[0], edge.targets[0], parentLookupDb); + const src = edge.sections[0].startPoint; + const dest = edge.sections[0].endPoint; + const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : []; + const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]); + const points = [ + [src.x + offset.x, src.y + offset.y], + ...segPoints, + [dest.x + offset.x, dest.y + offset.y] + ]; + const curve = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .line */ .jvg)().curve(d3__WEBPACK_IMPORTED_MODULE_0__/* .curveLinear */ .c_6); + const edgePath = edgesEl.insert("path").attr("d", curve(points)).attr("class", "path").attr("fill", "none"); + const edgeG = edgesEl.insert("g").attr("class", "edgeLabel"); + const edgeWithLabel = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(edgeG.node().appendChild(edge.labelEl)); + const box = edgeWithLabel.node().firstChild.getBoundingClientRect(); + edgeWithLabel.attr("width", box.width); + edgeWithLabel.attr("height", box.height); + edgeG.attr( + "transform", + `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})` + ); + addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute); +}; +const insertChildren = (nodeArray, parentLookupDb) => { + nodeArray.forEach((node) => { + if (!node.children) { + node.children = []; + } + const childIds = parentLookupDb.childrenById[node.id]; + if (childIds) { + childIds.forEach((childId) => { + node.children.push(nodeDb[childId]); + }); + } + insertChildren(node.children, parentLookupDb); + }); +}; +const draw = async function(text, id, _version, diagObj) { + var _a; + diagObj.db.clear(); + nodeDb = {}; + diagObj.db.setGen("gen-2"); + diagObj.parser.parse(text); + const renderEl = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body").append("div").attr("style", "height:400px").attr("id", "cy"); + let graph = { + id: "root", + layoutOptions: { + "elk.hierarchyHandling": "INCLUDE_CHILDREN", + "org.eclipse.elk.padding": "[top=100, left=100, bottom=110, right=110]", + "elk.layered.spacing.edgeNodeBetweenLayers": "30", + // 'elk.layered.mergeEdges': 'true', + "elk.direction": "DOWN" + // 'elk.ports.sameLayerEdges': true, + // 'nodePlacement.strategy': 'SIMPLE', + }, + children: [], + edges: [] + }; + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Drawing flowchart using v3 renderer", elk); + let dir = diagObj.db.getDirection(); + switch (dir) { + case "BT": + graph.layoutOptions["elk.direction"] = "UP"; + break; + case "TB": + graph.layoutOptions["elk.direction"] = "DOWN"; + break; + case "LR": + graph.layoutOptions["elk.direction"] = "RIGHT"; + break; + case "RL": + graph.layoutOptions["elk.direction"] = "LEFT"; + break; + } + const { securityLevel, flowchart: conf2 } = (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.g)(); + let sandboxElement; + if (securityLevel === "sandbox") { + sandboxElement = (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("#i" + id); + } + const root = securityLevel === "sandbox" ? (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)(sandboxElement.nodes()[0].contentDocument.body) : (0,d3__WEBPACK_IMPORTED_MODULE_0__/* .select */ .Ys)("body"); + const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document; + const svg = root.select(`[id="${id}"]`); + const markers = ["point", "circle", "cross"]; + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.i)(svg, markers, diagObj.type, diagObj.arrowMarkerAbsolute); + const vert = diagObj.db.getVertices(); + let subG; + const subGraphs = diagObj.db.getSubGraphs(); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Subgraphs - ", subGraphs); + for (let i = subGraphs.length - 1; i >= 0; i--) { + subG = subGraphs[i]; + diagObj.db.addVertex(subG.id, subG.title, "group", void 0, subG.classes, subG.dir); + } + const subGraphsEl = svg.insert("g").attr("class", "subgraphs"); + const parentLookupDb = addSubGraphs(diagObj.db); + graph = addVertices(vert, id, root, doc, diagObj, parentLookupDb, graph); + const edgesEl = svg.insert("g").attr("class", "edges edgePath"); + const edges = diagObj.db.getEdges(); + graph = addEdges(edges, diagObj, graph, svg); + const nodes = Object.keys(nodeDb); + nodes.forEach((nodeId) => { + const node = nodeDb[nodeId]; + if (!node.parent) { + graph.children.push(node); + } + if (parentLookupDb.childrenById[nodeId] !== void 0) { + node.labels = [ + { + text: node.labelText, + layoutOptions: { + "nodeLabels.placement": "[H_CENTER, V_TOP, INSIDE]" + }, + width: node.labelData.width, + height: node.labelData.height + } + ]; + delete node.x; + delete node.y; + delete node.width; + delete node.height; + } + }); + insertChildren(graph.children, parentLookupDb); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("after layout", JSON.stringify(graph, null, 2)); + const g = await elk.layout(graph); + drawNodes(0, 0, g.children, svg, subGraphsEl, diagObj, 0); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("after layout", g); + (_a = g.edges) == null ? void 0 : _a.map((edge) => { + insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb); + }); + (0,_mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.s)({}, svg, conf2.diagramPadding, conf2.useMaxWidth); + renderEl.remove(); +}; +const drawNodes = (relX, relY, nodeArray, svg, subgraphsEl, diagObj, depth) => { + nodeArray.forEach(function(node) { + if (node) { + nodeDb[node.id].offset = { + posX: node.x + relX, + posY: node.y + relY, + x: relX, + y: relY, + depth, + width: node.width, + height: node.height + }; + if (node.type === "group") { + const subgraphEl = subgraphsEl.insert("g").attr("class", "subgraph"); + subgraphEl.insert("rect").attr("class", "subgraph subgraph-lvl-" + depth % 5 + " node").attr("x", node.x + relX).attr("y", node.y + relY).attr("width", node.width).attr("height", node.height); + const label = subgraphEl.insert("g").attr("class", "label"); + label.attr( + "transform", + `translate(${node.labels[0].x + relX + node.x}, ${node.labels[0].y + relY + node.y})` + ); + label.node().appendChild(node.labelData.labelNode); + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Id (UGH)= ", node.type, node.labels); + } else { + _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.l.info("Id (UGH)= ", node.id); + node.el.attr( + "transform", + `translate(${node.x + relX + node.width / 2}, ${node.y + relY + node.height / 2})` + ); + } + } + }); + nodeArray.forEach(function(node) { + if (node && node.type === "group") { + drawNodes(relX + node.x, relY + node.y, node.children, svg, subgraphsEl, diagObj, depth + 1); + } + }); +}; +const renderer = { + getClasses, + draw +}; +const genSections = (options) => { + let sections = ""; + for (let i = 0; i < 5; i++) { + sections += ` + .subgraph-lvl-${i} { + fill: ${options[`surface${i}`]}; + stroke: ${options[`surfacePeer${i}`]}; + } + `; + } + return sections; +}; +const getStyles = (options) => `.label { + font-family: ${options.fontFamily}; + color: ${options.nodeTextColor || options.textColor}; + } + .cluster-label text { + fill: ${options.titleColor}; + } + .cluster-label span { + color: ${options.titleColor}; + } + + .label text,span { + fill: ${options.nodeTextColor || options.textColor}; + color: ${options.nodeTextColor || options.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${options.mainBkg}; + stroke: ${options.nodeBorder}; + stroke-width: 1px; + } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${options.arrowheadColor}; + } + + .edgePath .path { + stroke: ${options.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${options.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${options.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${options.edgeLabelBackground}; + fill: ${options.edgeLabelBackground}; + } + text-align: center; + } + + .cluster rect { + fill: ${options.clusterBkg}; + stroke: ${options.clusterBorder}; + stroke-width: 1px; + } + + .cluster text { + fill: ${options.titleColor}; + } + + .cluster span { + color: ${options.titleColor}; + } + /* .cluster div { + color: ${options.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${options.fontFamily}; + font-size: 12px; + background: ${options.tertiaryColor}; + border: 1px solid ${options.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${options.textColor}; + } + .subgraph { + stroke-width:2; + rx:3; + } + // .subgraph-lvl-1 { + // fill:#ccc; + // // stroke:black; + // } + ${genSections(options)} +`; +const styles = getStyles; +const diagram = { + db: _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.h, + renderer, + parser: _mermaid_ae477ddf_js__WEBPACK_IMPORTED_MODULE_12__.p, + styles +}; + +//# sourceMappingURL=flowchart-elk-definition-170a3958.js.map + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9487.c9fbf014.js b/assets/js/9487.c9fbf014.js new file mode 100644 index 00000000000..a067a2e604b --- /dev/null +++ b/assets/js/9487.c9fbf014.js @@ -0,0 +1 @@ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9487],{17295:(n,t,e)=>{n.exports=function(){function n(t,e,i){function r(a,u){if(!e[a]){if(!t[a]){if(c)return c(a,!0);var o=new Error("Cannot find module '"+a+"'");throw o.code="MODULE_NOT_FOUND",o}var s=e[a]={exports:{}};t[a][0].call(s.exports,(function(n){return r(t[a][1][n]||n)}),s,s.exports,n,t,e,i)}return e[a].exports}for(var c=void 0,a=0;a<i.length;a++)r(i[a]);return r}return n}()({1:[function(n,t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function n(n,t){for(var e=0;e<t.length;e++){var i=t[e];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}}return function(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t}}();function r(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}var c=function(){function n(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.defaultLayoutOptions,c=void 0===i?{}:i,u=e.algorithms,o=void 0===u?["layered","stress","mrtree","radial","force","disco","sporeOverlap","sporeCompaction","rectpacking"]:u,s=e.workerFactory,h=e.workerUrl;if(r(this,n),this.defaultLayoutOptions=c,this.initialized=!1,void 0===h&&void 0===s)throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");var f=s;void 0!==h&&void 0===s&&(f=function(n){return new Worker(n)});var l=f(h);if("function"!=typeof l.postMessage)throw new TypeError("Created worker does not provide the required 'postMessage' function.");this.worker=new a(l),this.worker.postMessage({cmd:"register",algorithms:o}).then((function(n){return t.initialized=!0})).catch(console.err)}return i(n,[{key:"layout",value:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=t.layoutOptions,i=void 0===e?this.defaultLayoutOptions:e,r=t.logging,c=void 0!==r&&r,a=t.measureExecutionTime,u=void 0!==a&&a;return n?this.worker.postMessage({cmd:"layout",graph:n,layoutOptions:i,options:{logging:c,measureExecutionTime:u}}):Promise.reject(new Error("Missing mandatory parameter 'graph'."))}},{key:"knownLayoutAlgorithms",value:function(){return this.worker.postMessage({cmd:"algorithms"})}},{key:"knownLayoutOptions",value:function(){return this.worker.postMessage({cmd:"options"})}},{key:"knownLayoutCategories",value:function(){return this.worker.postMessage({cmd:"categories"})}},{key:"terminateWorker",value:function(){this.worker.terminate()}}]),n}();e.default=c;var a=function(){function n(t){var e=this;if(r(this,n),void 0===t)throw new Error("Missing mandatory parameter 'worker'.");this.resolvers={},this.worker=t,this.worker.onmessage=function(n){setTimeout((function(){e.receive(e,n)}),0)}}return i(n,[{key:"postMessage",value:function(n){var t=this.id||0;this.id=t+1,n.id=t;var e=this;return new Promise((function(i,r){e.resolvers[t]=function(n,t){n?(e.convertGwtStyleError(n),r(n)):i(t)},e.worker.postMessage(n)}))}},{key:"receive",value:function(n,t){var e=t.data,i=n.resolvers[e.id];i&&(delete n.resolvers[e.id],e.error?i(e.error):i(null,e.data))}},{key:"terminate",value:function(){this.worker.terminate&&this.worker.terminate()}},{key:"convertGwtStyleError",value:function(n){if(n){var t=n.__java$exception;t&&(t.cause&&t.cause.backingJsObject&&(n.cause=t.cause.backingJsObject,this.convertGwtStyleError(n.cause)),delete n.__java$exception)}}}]),n}()},{}],2:[function(n,t,i){(function(n){(function(){"use strict";var e;function r(){}function c(){}function a(){}function u(){}function o(){}function s(){}function h(){}function f(){}function l(){}function b(){}function w(){}function d(){}function g(){}function p(){}function v(){}function m(){}function y(){}function k(){}function j(){}function E(){}function T(){}function M(){}function S(){}function P(){}function C(){}function I(){}function O(){}function A(){}function $(){}function L(){}function N(){}function x(){}function D(){}function R(){}function K(){}function _(){}function F(){}function B(){}function H(){}function q(){}function G(){}function z(){}function U(){}function X(){}function W(){}function V(){}function Q(){}function Y(){}function J(){}function Z(){}function nn(){}function tn(){}function en(){}function rn(){}function cn(){}function an(){}function un(){}function on(){}function sn(){}function hn(){}function fn(){}function ln(){}function bn(){}function wn(){}function dn(){}function gn(){}function pn(){}function vn(){}function mn(){}function yn(){}function kn(){}function jn(){}function En(){}function Tn(){}function Mn(){}function Sn(){}function Pn(){}function Cn(){}function In(){}function On(){}function An(){}function $n(){}function Ln(){}function Nn(){}function xn(){}function Dn(){}function Rn(){}function Kn(){}function _n(){}function Fn(){}function Bn(){}function Hn(){}function qn(){}function Gn(){}function zn(){}function Un(){}function Xn(){}function Wn(){}function Vn(){}function Qn(){}function Yn(){}function Jn(){}function Zn(){}function nt(){}function tt(){}function et(){}function it(){}function rt(){}function ct(){}function at(){}function ut(){}function ot(){}function st(){}function ht(){}function ft(){}function lt(){}function bt(){}function wt(){}function dt(){}function gt(){}function pt(){}function vt(){}function mt(){}function yt(){}function kt(){}function jt(){}function Et(){}function Tt(){}function Mt(){}function St(){}function Pt(){}function Ct(){}function It(){}function Ot(){}function At(){}function $t(){}function Lt(){}function Nt(){}function xt(){}function Dt(){}function Rt(){}function Kt(){}function _t(){}function Ft(){}function Bt(){}function Ht(){}function qt(){}function Gt(){}function zt(){}function Ut(){}function Xt(){}function Wt(){}function Vt(){}function Qt(){}function Yt(){}function Jt(){}function Zt(){}function ne(){}function te(){}function ee(){}function ie(){}function re(){}function ce(){}function ae(){}function ue(){}function oe(){}function se(){}function he(){}function fe(){}function le(){}function be(){}function we(){}function de(){}function ge(){}function pe(){}function ve(){}function me(){}function ye(){}function ke(){}function je(){}function Ee(){}function Te(){}function Me(){}function Se(){}function Pe(){}function Ce(){}function Ie(){}function Oe(){}function Ae(){}function $e(){}function Le(){}function Ne(){}function xe(){}function De(){}function Re(){}function Ke(){}function _e(){}function Fe(){}function Be(){}function He(){}function qe(){}function Ge(){}function ze(){}function Ue(){}function Xe(){}function We(){}function Ve(){}function Qe(){}function Ye(){}function Je(){}function Ze(){}function ni(){}function ti(){}function ei(){}function ii(){}function ri(){}function ci(){}function ai(){}function ui(){}function oi(){}function si(){}function hi(){}function fi(){}function li(){}function bi(){}function wi(){}function di(){}function gi(){}function pi(){}function vi(){}function mi(){}function yi(){}function ki(){}function ji(){}function Ei(){}function Ti(){}function Mi(){}function Si(){}function Pi(){}function Ci(){}function Ii(){}function Oi(){}function Ai(){}function $i(){}function Li(){}function Ni(){}function xi(){}function Di(){}function Ri(){}function Ki(){}function _i(){}function Fi(){}function Bi(){}function Hi(){}function qi(){}function Gi(){}function zi(){}function Ui(){}function Xi(){}function Wi(){}function Vi(){}function Qi(){}function Yi(){}function Ji(){}function Zi(){}function nr(){}function tr(){}function er(){}function ir(){}function rr(){}function cr(){}function ar(){}function ur(){}function or(){}function sr(){}function hr(){}function fr(){}function lr(){}function br(){}function wr(){}function dr(){}function gr(){}function pr(){}function vr(){}function mr(){}function yr(){}function kr(){}function jr(){}function Er(){}function Tr(){}function Mr(){}function Sr(){}function Pr(){}function Cr(){}function Ir(){}function Or(){}function Ar(){}function $r(){}function Lr(){}function Nr(){}function xr(){}function Dr(){}function Rr(){}function Kr(){}function _r(){}function Fr(){}function Br(){}function Hr(){}function qr(){}function Gr(){}function zr(){}function Ur(){}function Xr(){}function Wr(){}function Vr(){}function Qr(){}function Yr(){}function Jr(){}function Zr(){}function nc(){}function tc(){}function ec(){}function ic(){}function rc(){}function cc(){}function ac(){}function uc(){}function oc(){}function sc(){}function hc(){}function fc(){}function lc(){}function bc(){}function wc(){}function dc(){}function gc(){}function pc(){}function vc(){}function mc(){}function yc(){}function kc(){}function jc(){}function Ec(){}function Tc(){}function Mc(){}function Sc(){}function Pc(){}function Cc(){}function Ic(){}function Oc(){}function Ac(){}function $c(){}function Lc(){}function Nc(){}function xc(){}function Dc(){}function Rc(){}function Kc(){}function _c(){}function Fc(){}function Bc(){}function Hc(){}function qc(){}function Gc(){}function zc(){}function Uc(){}function Xc(){}function Wc(){}function Vc(){}function Qc(){}function Yc(){}function Jc(){}function Zc(){}function na(){}function ta(){}function ea(){}function ia(){}function ra(){}function ca(){}function aa(){}function ua(){}function oa(){}function sa(){}function ha(){}function fa(){}function la(){}function ba(){}function wa(){}function da(){}function ga(){}function pa(){}function va(){}function ma(){}function ya(){}function ka(){}function ja(){}function Ea(){}function Ta(){}function Ma(){}function Sa(){}function Pa(){}function Ca(){}function Ia(){}function Oa(){}function Aa(){}function $a(){}function La(){}function Na(){}function xa(){}function Da(){}function Ra(){}function Ka(){}function _a(){}function Fa(){}function Ba(){}function Ha(){}function qa(){}function Ga(){}function za(){}function Ua(){}function Xa(){}function Wa(){}function Va(){}function Qa(){}function Ya(){}function Ja(){}function Za(){}function nu(){}function tu(){}function eu(){}function iu(){}function ru(){}function cu(){}function au(){}function uu(){}function ou(){}function su(){}function hu(){}function fu(){}function lu(){}function bu(){}function wu(){}function du(){}function gu(){}function pu(){}function vu(){}function mu(){}function yu(){}function ku(){}function ju(){}function Eu(){}function Tu(){}function Mu(){}function Su(){}function Pu(){}function Cu(){}function Iu(){}function Ou(){}function Au(){}function $u(){}function Lu(){}function Nu(){}function xu(){}function Du(){}function Ru(){}function Ku(){}function _u(){}function Fu(){}function Bu(){}function Hu(){}function qu(){}function Gu(){}function zu(){}function Uu(){}function Xu(){}function Wu(){}function Vu(){}function Qu(){}function Yu(){}function Ju(){}function Zu(){}function no(){}function to(){}function eo(){}function io(){}function ro(){}function co(){}function ao(){}function uo(){}function oo(){}function so(){}function ho(){}function fo(){}function lo(){}function bo(){}function wo(){}function go(){}function po(){}function vo(){}function mo(){}function yo(){}function ko(){}function jo(){}function Eo(){}function To(){}function Mo(){}function So(){}function Po(){}function Co(){}function Io(){}function Oo(){}function Ao(){}function $o(){}function Lo(){}function No(){}function xo(){}function Do(){}function Ro(){}function Ko(){}function _o(){}function Fo(){}function Bo(){}function Ho(){}function qo(){}function Go(){}function zo(){}function Uo(){}function Xo(){}function Wo(){}function Vo(){}function Qo(){}function Yo(){}function Jo(){}function Zo(){}function ns(){}function ts(){}function es(){}function is(){}function rs(){}function cs(){}function as(){}function us(){}function os(){}function ss(){}function hs(){}function fs(){}function ls(){}function bs(){}function ws(){}function ds(){}function gs(){}function ps(){}function vs(){}function ms(){}function ys(){}function ks(){}function js(){}function Es(){}function Ts(){}function Ms(){}function Ss(){}function Ps(){}function Cs(){}function Is(){}function Os(){}function As(){}function $s(){}function Ls(){}function Ns(){}function xs(){}function Ds(){}function Rs(){}function Ks(){}function _s(){}function Fs(){}function Bs(){}function Hs(){}function qs(){}function Gs(){}function zs(){}function Us(){}function Xs(){}function Ws(){}function Vs(){}function Qs(){}function Ys(){}function Js(){}function Zs(){}function nh(){}function th(){}function eh(){}function ih(){}function rh(){}function ch(){}function ah(){}function uh(){}function oh(){}function sh(){}function hh(){}function fh(){}function lh(){}function bh(){}function wh(){}function dh(){}function gh(){}function ph(){}function vh(){}function mh(){}function yh(){}function kh(){}function jh(){}function Eh(){}function Th(){}function Mh(){}function Sh(){}function Ph(){}function Ch(){}function Ih(){}function Oh(){}function Ah(){}function $h(){}function Lh(){}function Nh(){}function xh(){}function Dh(){}function Rh(){}function Kh(){}function _h(n){}function Fh(n){}function Bh(){iy()}function Hh(){Gsn()}function qh(){Epn()}function Gh(){_kn()}function zh(){jSn()}function Uh(){fRn()}function Xh(){Kyn()}function Wh(){rkn()}function Vh(){EM()}function Qh(){mM()}function Yh(){q_()}function Jh(){TM()}function Zh(){Irn()}function nf(){SM()}function tf(){I6()}function ef(){Pin()}function rf(){Q8()}function cf(){_Z()}function af(){zsn()}function uf(){_Mn()}function of(){Cin()}function sf(){U2()}function hf(){fWn()}function ff(){Gyn()}function lf(){FZ()}function bf(){HXn()}function wf(){RZ()}function df(){Iin()}function gf(){Yun()}function pf(){GZ()}function vf(){C9()}function mf(){PM()}function yf(){KAn()}function kf(){Uyn()}function jf(){Fcn()}function Ef(){MMn()}function Tf(){bRn()}function Mf(){Bvn()}function Sf(){CAn()}function Pf(){Ran()}function Cf(){HZ()}function If(){s_n()}function Of(){$An()}function Af(){W$n()}function $f(){x9()}function Lf(){SMn()}function Nf(){sWn()}function xf(){Xsn()}function Df(){vdn()}function Rf(){qBn()}function Kf(){u_()}function _f(){wcn()}function Ff(){fFn()}function Bf(n){kW(n)}function Hf(n){this.a=n}function qf(n){this.a=n}function Gf(n){this.a=n}function zf(n){this.a=n}function Uf(n){this.a=n}function Xf(n){this.a=n}function Wf(n){this.a=n}function Vf(n){this.a=n}function Qf(n){this.a=n}function Yf(n){this.a=n}function Jf(n){this.a=n}function Zf(n){this.a=n}function nl(n){this.a=n}function tl(n){this.a=n}function el(n){this.a=n}function il(n){this.a=n}function rl(n){this.a=n}function cl(n){this.a=n}function al(n){this.a=n}function ul(n){this.a=n}function ol(n){this.a=n}function sl(n){this.b=n}function hl(n){this.c=n}function fl(n){this.a=n}function ll(n){this.a=n}function bl(n){this.a=n}function wl(n){this.a=n}function dl(n){this.a=n}function gl(n){this.a=n}function pl(n){this.a=n}function vl(n){this.a=n}function ml(n){this.a=n}function yl(n){this.a=n}function kl(n){this.a=n}function jl(n){this.a=n}function El(n){this.a=n}function Tl(n){this.a=n}function Ml(n){this.a=n}function Sl(n){this.a=n}function Pl(n){this.a=n}function Cl(){this.a=[]}function Il(n,t){n.a=t}function Ol(n,t){n.a=t}function Al(n,t){n.b=t}function $l(n,t){n.b=t}function Ll(n,t){n.b=t}function Nl(n,t){n.j=t}function xl(n,t){n.g=t}function Dl(n,t){n.i=t}function Rl(n,t){n.c=t}function Kl(n,t){n.d=t}function _l(n,t){n.d=t}function Fl(n,t){n.c=t}function Bl(n,t){n.k=t}function Hl(n,t){n.c=t}function ql(n,t){n.c=t}function Gl(n,t){n.a=t}function zl(n,t){n.a=t}function Ul(n,t){n.f=t}function Xl(n,t){n.a=t}function Wl(n,t){n.b=t}function Vl(n,t){n.d=t}function Ql(n,t){n.i=t}function Yl(n,t){n.o=t}function Jl(n,t){n.r=t}function Zl(n,t){n.a=t}function nb(n,t){n.b=t}function tb(n,t){n.e=t}function eb(n,t){n.f=t}function ib(n,t){n.g=t}function rb(n,t){n.e=t}function cb(n,t){n.f=t}function ab(n,t){n.f=t}function ub(n,t){n.n=t}function ob(n,t){n.a=t}function sb(n,t){n.a=t}function hb(n,t){n.c=t}function fb(n,t){n.c=t}function lb(n,t){n.d=t}function bb(n,t){n.e=t}function wb(n,t){n.g=t}function db(n,t){n.a=t}function gb(n,t){n.c=t}function pb(n,t){n.d=t}function vb(n,t){n.e=t}function mb(n,t){n.f=t}function yb(n,t){n.j=t}function kb(n,t){n.a=t}function jb(n,t){n.b=t}function Eb(n,t){n.a=t}function Tb(n){n.b=n.a}function Mb(n){n.c=n.d.d}function Sb(n){this.d=n}function Pb(n){this.a=n}function Cb(n){this.a=n}function Ib(n){this.a=n}function Ob(n){this.a=n}function Ab(n){this.a=n}function $b(n){this.a=n}function Lb(n){this.a=n}function Nb(n){this.a=n}function xb(n){this.a=n}function Db(n){this.a=n}function Rb(n){this.a=n}function Kb(n){this.a=n}function _b(n){this.a=n}function Fb(n){this.a=n}function Bb(n){this.b=n}function Hb(n){this.b=n}function qb(n){this.b=n}function Gb(n){this.a=n}function zb(n){this.a=n}function Ub(n){this.a=n}function Xb(n){this.c=n}function Wb(n){this.c=n}function Vb(n){this.c=n}function Qb(n){this.a=n}function Yb(n){this.a=n}function Jb(n){this.a=n}function Zb(n){this.a=n}function nw(n){this.a=n}function tw(n){this.a=n}function ew(n){this.a=n}function iw(n){this.a=n}function rw(n){this.a=n}function cw(n){this.a=n}function aw(n){this.a=n}function uw(n){this.a=n}function ow(n){this.a=n}function sw(n){this.a=n}function hw(n){this.a=n}function fw(n){this.a=n}function lw(n){this.a=n}function bw(n){this.a=n}function ww(n){this.a=n}function dw(n){this.a=n}function gw(n){this.a=n}function pw(n){this.a=n}function vw(n){this.a=n}function mw(n){this.a=n}function yw(n){this.a=n}function kw(n){this.a=n}function jw(n){this.a=n}function Ew(n){this.a=n}function Tw(n){this.a=n}function Mw(n){this.a=n}function Sw(n){this.a=n}function Pw(n){this.a=n}function Cw(n){this.a=n}function Iw(n){this.a=n}function Ow(n){this.a=n}function Aw(n){this.a=n}function $w(n){this.a=n}function Lw(n){this.a=n}function Nw(n){this.a=n}function xw(n){this.a=n}function Dw(n){this.a=n}function Rw(n){this.a=n}function Kw(n){this.a=n}function _w(n){this.a=n}function Fw(n){this.a=n}function Bw(n){this.e=n}function Hw(n){this.a=n}function qw(n){this.a=n}function Gw(n){this.a=n}function zw(n){this.a=n}function Uw(n){this.a=n}function Xw(n){this.a=n}function Ww(n){this.a=n}function Vw(n){this.a=n}function Qw(n){this.a=n}function Yw(n){this.a=n}function Jw(n){this.a=n}function Zw(n){this.a=n}function nd(n){this.a=n}function td(n){this.a=n}function ed(n){this.a=n}function id(n){this.a=n}function rd(n){this.a=n}function cd(n){this.a=n}function ad(n){this.a=n}function ud(n){this.a=n}function od(n){this.a=n}function sd(n){this.a=n}function hd(n){this.a=n}function fd(n){this.a=n}function ld(n){this.a=n}function bd(n){this.a=n}function wd(n){this.a=n}function dd(n){this.a=n}function gd(n){this.a=n}function pd(n){this.a=n}function vd(n){this.a=n}function md(n){this.a=n}function yd(n){this.a=n}function kd(n){this.a=n}function jd(n){this.a=n}function Ed(n){this.a=n}function Td(n){this.a=n}function Md(n){this.a=n}function Sd(n){this.a=n}function Pd(n){this.a=n}function Cd(n){this.a=n}function Id(n){this.a=n}function Od(n){this.a=n}function Ad(n){this.a=n}function $d(n){this.a=n}function Ld(n){this.a=n}function Nd(n){this.a=n}function xd(n){this.a=n}function Dd(n){this.a=n}function Rd(n){this.a=n}function Kd(n){this.a=n}function _d(n){this.a=n}function Fd(n){this.a=n}function Bd(n){this.c=n}function Hd(n){this.b=n}function qd(n){this.a=n}function Gd(n){this.a=n}function zd(n){this.a=n}function Ud(n){this.a=n}function Xd(n){this.a=n}function Wd(n){this.a=n}function Vd(n){this.a=n}function Qd(n){this.a=n}function Yd(n){this.a=n}function Jd(n){this.a=n}function Zd(n){this.a=n}function ng(n){this.a=n}function tg(n){this.a=n}function eg(n){this.a=n}function ig(n){this.a=n}function rg(n){this.a=n}function cg(n){this.a=n}function ag(n){this.a=n}function ug(n){this.a=n}function og(n){this.a=n}function sg(n){this.a=n}function hg(n){this.a=n}function fg(n){this.a=n}function lg(n){this.a=n}function bg(n){this.a=n}function wg(n){this.a=n}function dg(n){this.a=n}function gg(n){this.a=n}function pg(n){this.a=n}function vg(n){this.a=n}function mg(n){this.a=n}function yg(n){this.a=n}function kg(n){this.a=n}function jg(n){this.a=n}function Eg(n){this.a=n}function Tg(n){this.a=n}function Mg(n){this.a=n}function Sg(n){this.a=n}function Pg(n){this.a=n}function Cg(n){this.a=n}function Ig(n){this.a=n}function Og(n){this.a=n}function Ag(n){this.a=n}function $g(n){this.a=n}function Lg(n){this.a=n}function Ng(n){this.a=n}function xg(n){this.a=n}function Dg(n){this.a=n}function Rg(n){this.a=n}function Kg(n){this.a=n}function _g(n){this.a=n}function Fg(n){this.a=n}function Bg(n){this.a=n}function Hg(n){this.a=n}function qg(n){this.a=n}function Gg(n){this.a=n}function zg(n){this.a=n}function Ug(n){this.a=n}function Xg(n){this.a=n}function Wg(n){this.a=n}function Vg(n){this.a=n}function Qg(n){this.a=n}function Yg(n){this.a=n}function Jg(n){this.a=n}function Zg(n){this.a=n}function np(n){this.a=n}function tp(n){this.a=n}function ep(n){this.a=n}function ip(n){this.a=n}function rp(n){this.a=n}function cp(n){this.a=n}function ap(n){this.a=n}function up(n){this.b=n}function op(n){this.f=n}function sp(n){this.a=n}function hp(n){this.a=n}function fp(n){this.a=n}function lp(n){this.a=n}function bp(n){this.a=n}function wp(n){this.a=n}function dp(n){this.a=n}function gp(n){this.a=n}function pp(n){this.a=n}function vp(n){this.a=n}function mp(n){this.a=n}function yp(n){this.b=n}function kp(n){this.c=n}function jp(n){this.e=n}function Ep(n){this.a=n}function Tp(n){this.a=n}function Mp(n){this.a=n}function Sp(n){this.a=n}function Pp(n){this.a=n}function Cp(n){this.d=n}function Ip(n){this.a=n}function Op(n){this.a=n}function Ap(n){this.e=n}function $p(){this.a=0}function Lp(){DA(this)}function Np(){xA(this)}function xp(){$U(this)}function Dp(){wV(this)}function Rp(){_h(this)}function Kp(){this.c=L$t}function _p(n,t){t.Wb(n)}function Fp(n,t){n.b+=t}function Bp(n){n.b=new ok}function Hp(n){return n.e}function qp(n){return n.a}function Gp(n){return n.a}function zp(n){return n.a}function Up(n){return n.a}function Xp(n){return n.a}function Wp(){return null}function Vp(){return null}function Qp(){aE(),dXn()}function Yp(n){n.b.tf(n.e)}function Jp(n,t){n.b=t-n.b}function Zp(n,t){n.a=t-n.a}function nv(n,t){t.ad(n.a)}function tv(n,t){qCn(t,n)}function ev(n,t,e){n.Od(e,t)}function iv(n,t){n.e=t,t.b=n}function rv(n){s_(),this.a=n}function cv(n){s_(),this.a=n}function av(n){s_(),this.a=n}function uv(n){WX(),this.a=n}function ov(n){PY(),ett.be(n)}function sv(){gN.call(this)}function hv(){gN.call(this)}function fv(){sv.call(this)}function lv(){sv.call(this)}function bv(){sv.call(this)}function wv(){sv.call(this)}function dv(){sv.call(this)}function gv(){sv.call(this)}function pv(){sv.call(this)}function vv(){sv.call(this)}function mv(){sv.call(this)}function yv(){sv.call(this)}function kv(){sv.call(this)}function jv(){this.a=this}function Ev(){this.Bb|=256}function Tv(){this.b=new PO}function Mv(){Mv=O,new xp}function Sv(){fv.call(this)}function Pv(n,t){n.length=t}function Cv(n,t){WB(n.a,t)}function Iv(n,t){USn(n.c,t)}function Ov(n,t){TU(n.b,t)}function Av(n,t){Ivn(n.a,t)}function $v(n,t){Oln(n.a,t)}function Lv(n,t){ban(n.e,t)}function Nv(n){AOn(n.c,n.b)}function xv(n,t){n.kc().Nb(t)}function Dv(n){this.a=gbn(n)}function Rv(){this.a=new xp}function Kv(){this.a=new xp}function _v(){this.a=new Np}function Fv(){this.a=new Np}function Bv(){this.a=new Np}function Hv(){this.a=new kn}function qv(){this.a=new k6}function Gv(){this.a=new bt}function zv(){this.a=new WT}function Uv(){this.a=new D0}function Xv(){this.a=new cZ}function Wv(){this.a=new AR}function Vv(){this.a=new Np}function Qv(){this.a=new Np}function Yv(){this.a=new Np}function Jv(){this.a=new Np}function Zv(){this.d=new Np}function nm(){this.a=new Rv}function tm(){this.a=new xp}function em(){this.b=new xp}function im(){this.b=new Np}function rm(){this.e=new Np}function cm(){this.d=new Np}function am(){this.a=new uf}function um(){Np.call(this)}function om(){_v.call(this)}function sm(){NR.call(this)}function hm(){Qv.call(this)}function fm(){lm.call(this)}function lm(){Rp.call(this)}function bm(){Rp.call(this)}function wm(){bm.call(this)}function dm(){dY.call(this)}function gm(){dY.call(this)}function pm(){Wm.call(this)}function vm(){Wm.call(this)}function mm(){Wm.call(this)}function ym(){Vm.call(this)}function km(){YT.call(this)}function jm(){eo.call(this)}function Em(){eo.call(this)}function Tm(){ny.call(this)}function Mm(){ny.call(this)}function Sm(){xp.call(this)}function Pm(){xp.call(this)}function Cm(){xp.call(this)}function Im(){Rv.call(this)}function Om(){jin.call(this)}function Am(){Ev.call(this)}function $m(){OL.call(this)}function Lm(){OL.call(this)}function Nm(){xp.call(this)}function xm(){xp.call(this)}function Dm(){xp.call(this)}function Rm(){yo.call(this)}function Km(){yo.call(this)}function _m(){Rm.call(this)}function Fm(){Dh.call(this)}function Bm(n){dtn.call(this,n)}function Hm(n){dtn.call(this,n)}function qm(n){Qf.call(this,n)}function Gm(n){MT.call(this,n)}function zm(n){Gm.call(this,n)}function Um(n){MT.call(this,n)}function Xm(){this.a=new YT}function Wm(){this.a=new Rv}function Vm(){this.a=new xp}function Qm(){this.a=new Np}function Ym(){this.j=new Np}function Jm(){this.a=new Xa}function Zm(){this.a=new LE}function ny(){this.a=new mo}function ty(){ty=O,_nt=new xk}function ey(){ey=O,Knt=new Nk}function iy(){iy=O,Ont=new c}function ry(){ry=O,znt=new cN}function cy(n){Gm.call(this,n)}function ay(n){Gm.call(this,n)}function uy(n){d4.call(this,n)}function oy(n){d4.call(this,n)}function sy(n){VK.call(this,n)}function hy(n){ySn.call(this,n)}function fy(n){CT.call(this,n)}function ly(n){OT.call(this,n)}function by(n){OT.call(this,n)}function wy(n){OT.call(this,n)}function dy(n){fz.call(this,n)}function gy(n){dy.call(this,n)}function py(){Pl.call(this,{})}function vy(n){CL(),this.a=n}function my(n){n.b=null,n.c=0}function yy(n,t){n.e=t,Cxn(n,t)}function ky(n,t){n.a=t,aCn(n)}function jy(n,t,e){n.a[t.g]=e}function Ey(n,t,e){wjn(e,n,t)}function Ty(n,t){ZR(t.i,n.n)}function My(n,t){ssn(n).td(t)}function Sy(n,t){return n*n/t}function Py(n,t){return n.g-t.g}function Cy(n){return new Sl(n)}function Iy(n){return new GX(n)}function Oy(n){dy.call(this,n)}function Ay(n){dy.call(this,n)}function $y(n){dy.call(this,n)}function Ly(n){fz.call(this,n)}function Ny(n){_cn(),this.a=n}function xy(n){a_(),this.a=n}function Dy(n){FG(),this.f=n}function Ry(n){FG(),this.f=n}function Ky(n){dy.call(this,n)}function _y(n){dy.call(this,n)}function Fy(n){dy.call(this,n)}function By(n){dy.call(this,n)}function Hy(n){dy.call(this,n)}function qy(n){return kW(n),n}function Gy(n){return kW(n),n}function zy(n){return kW(n),n}function Uy(n){return kW(n),n}function Xy(n){return kW(n),n}function Wy(n){return n.b==n.c}function Vy(n){return!!n&&n.b}function Qy(n){return!!n&&n.k}function Yy(n){return!!n&&n.j}function Jy(n){kW(n),this.a=n}function Zy(n){return Zon(n),n}function nk(n){vU(n,n.length)}function tk(n){dy.call(this,n)}function ek(n){dy.call(this,n)}function ik(n){dy.call(this,n)}function rk(n){dy.call(this,n)}function ck(n){dy.call(this,n)}function ak(n){dy.call(this,n)}function uk(n){ZN.call(this,n,0)}function ok(){o1.call(this,12,3)}function sk(){sk=O,ttt=new j}function hk(){hk=O,Ynt=new r}function fk(){fk=O,rtt=new g}function lk(){lk=O,htt=new v}function bk(){throw Hp(new pv)}function wk(){throw Hp(new pv)}function dk(){throw Hp(new pv)}function gk(){throw Hp(new pv)}function pk(){throw Hp(new pv)}function vk(){throw Hp(new pv)}function mk(){this.a=SD(yX(FWn))}function yk(n){s_(),this.a=yX(n)}function kk(n,t){n.Td(t),t.Sd(n)}function jk(n,t){n.a.ec().Mc(t)}function Ek(n,t,e){n.c.lf(t,e)}function Tk(n){Ay.call(this,n)}function Mk(n){_y.call(this,n)}function Sk(){Ab.call(this,"")}function Pk(){Ab.call(this,"")}function Ck(){Ab.call(this,"")}function Ik(){Ab.call(this,"")}function Ok(n){Ay.call(this,n)}function Ak(n){Hb.call(this,n)}function $k(n){bN.call(this,n)}function Lk(n){Ak.call(this,n)}function Nk(){tl.call(this,null)}function xk(){tl.call(this,null)}function Dk(){Dk=O,PY()}function Rk(){Rk=O,ket=mEn()}function Kk(n){return n.a?n.b:0}function _k(n){return n.a?n.b:0}function Fk(n,t){return n.a-t.a}function Bk(n,t){return n.a-t.a}function Hk(n,t){return n.a-t.a}function qk(n,t){return m7(n,t)}function Gk(n,t){return gZ(n,t)}function zk(n,t){return t in n.a}function Uk(n,t){return n.f=t,n}function Xk(n,t){return n.b=t,n}function Wk(n,t){return n.c=t,n}function Vk(n,t){return n.g=t,n}function Qk(n,t){return n.a=t,n}function Yk(n,t){return n.f=t,n}function Jk(n,t){return n.k=t,n}function Zk(n,t){return n.a=t,n}function nj(n,t){return n.e=t,n}function tj(n,t){return n.e=t,n}function ej(n,t){return n.f=t,n}function ij(n,t){n.b=!0,n.d=t}function rj(n,t){n.b=new wA(t)}function cj(n,t,e){t.td(n.a[e])}function aj(n,t,e){t.we(n.a[e])}function uj(n,t){return n.b-t.b}function oj(n,t){return n.g-t.g}function sj(n,t){return n.s-t.s}function hj(n,t){return n?0:t-1}function fj(n,t){return n?0:t-1}function lj(n,t){return n?t-1:0}function bj(n,t){return t.Yf(n)}function wj(n,t){return n.b=t,n}function dj(n,t){return n.a=t,n}function gj(n,t){return n.c=t,n}function pj(n,t){return n.d=t,n}function vj(n,t){return n.e=t,n}function mj(n,t){return n.f=t,n}function yj(n,t){return n.a=t,n}function kj(n,t){return n.b=t,n}function jj(n,t){return n.c=t,n}function Ej(n,t){return n.c=t,n}function Tj(n,t){return n.b=t,n}function Mj(n,t){return n.d=t,n}function Sj(n,t){return n.e=t,n}function Pj(n,t){return n.f=t,n}function Cj(n,t){return n.g=t,n}function Ij(n,t){return n.a=t,n}function Oj(n,t){return n.i=t,n}function Aj(n,t){return n.j=t,n}function $j(n,t){return n.k=t,n}function Lj(n,t){return n.j=t,n}function Nj(n,t){_Mn(),CZ(t,n)}function xj(n,t,e){GG(n.a,t,e)}function Dj(n){BV.call(this,n)}function Rj(n){BV.call(this,n)}function Kj(n){n_.call(this,n)}function _j(n){qbn.call(this,n)}function Fj(n){gtn.call(this,n)}function Bj(n){pQ.call(this,n)}function Hj(n){pQ.call(this,n)}function qj(){O$.call(this,"")}function Gj(){this.a=0,this.b=0}function zj(){this.b=0,this.a=0}function Uj(n,t){n.b=0,Nen(n,t)}function Xj(n,t){n.c=t,n.b=!0}function Wj(n,t){return n.c._b(t)}function Vj(n){return n.e&&n.e()}function Qj(n){return n?n.d:null}function Yj(n,t){return gfn(n.b,t)}function Jj(n){return n?n.g:null}function Zj(n){return n?n.i:null}function nE(n){return ED(n),n.o}function tE(){tE=O,dOt=Xkn()}function eE(){eE=O,gOt=oTn()}function iE(){iE=O,n$t=Vkn()}function rE(){rE=O,dLt=Wkn()}function cE(){cE=O,gLt=iCn()}function aE(){aE=O,lAt=cin()}function uE(){throw Hp(new pv)}function oE(){throw Hp(new pv)}function sE(){throw Hp(new pv)}function hE(){throw Hp(new pv)}function fE(){throw Hp(new pv)}function lE(){throw Hp(new pv)}function bE(n){this.a=new XT(n)}function wE(n){lUn(),DXn(this,n)}function dE(n){this.a=new Wz(n)}function gE(n,t){for(;n.ye(t););}function pE(n,t){for(;n.sd(t););}function vE(n,t){return n.a+=t,n}function mE(n,t){return n.a+=t,n}function yE(n,t){return n.a+=t,n}function kE(n,t){return n.a+=t,n}function jE(n){return EW(n),n.a}function EE(n){return n.b!=n.d.c}function TE(n){return n.l|n.m<<22}function ME(n,t){return n.d[t.p]}function SE(n,t){return Sxn(n,t)}function PE(n,t,e){n.splice(t,e)}function CE(n){n.c?NDn(n):xDn(n)}function IE(n){this.a=0,this.b=n}function OE(){this.a=new CNn(ijt)}function AE(){this.b=new CNn(qyt)}function $E(){this.b=new CNn(WEt)}function LE(){this.b=new CNn(WEt)}function NE(){throw Hp(new pv)}function xE(){throw Hp(new pv)}function DE(){throw Hp(new pv)}function RE(){throw Hp(new pv)}function KE(){throw Hp(new pv)}function _E(){throw Hp(new pv)}function FE(){throw Hp(new pv)}function BE(){throw Hp(new pv)}function HE(){throw Hp(new pv)}function qE(){throw Hp(new pv)}function GE(){throw Hp(new yv)}function zE(){throw Hp(new yv)}function UE(n){this.a=new XE(n)}function XE(n){Gin(this,n,OEn())}function WE(n){return!n||pW(n)}function VE(n){return-1!=WLt[n]}function QE(){0!=ctt&&(ctt=0),utt=-1}function YE(){null==PWn&&(PWn=[])}function JE(n,t){tAn(QQ(n.a),t)}function ZE(n,t){tAn(QQ(n.a),t)}function nT(n,t){HL.call(this,n,t)}function tT(n,t){nT.call(this,n,t)}function eT(n,t){this.b=n,this.c=t}function iT(n,t){this.b=n,this.a=t}function rT(n,t){this.a=n,this.b=t}function cT(n,t){this.a=n,this.b=t}function aT(n,t){this.a=n,this.b=t}function uT(n,t){this.a=n,this.b=t}function oT(n,t){this.a=n,this.b=t}function sT(n,t){this.a=n,this.b=t}function hT(n,t){this.a=n,this.b=t}function fT(n,t){this.a=n,this.b=t}function lT(n,t){this.b=n,this.a=t}function bT(n,t){this.b=n,this.a=t}function wT(n,t){this.b=n,this.a=t}function dT(n,t){this.b=n,this.a=t}function gT(n,t){this.f=n,this.g=t}function pT(n,t){this.e=n,this.d=t}function vT(n,t){this.g=n,this.i=t}function mT(n,t){this.a=n,this.b=t}function yT(n,t){this.a=n,this.f=t}function kT(n,t){this.b=n,this.c=t}function jT(n,t){this.a=n,this.b=t}function ET(n,t){this.a=n,this.b=t}function TT(n,t){this.a=n,this.b=t}function MT(n){aN(n.dc()),this.c=n}function ST(n){this.b=BB(yX(n),83)}function PT(n){this.a=BB(yX(n),83)}function CT(n){this.a=BB(yX(n),15)}function IT(n){this.a=BB(yX(n),15)}function OT(n){this.b=BB(yX(n),47)}function AT(){this.q=new e.Date}function $T(){$T=O,Btt=new A}function LT(){LT=O,bet=new P}function NT(n){return n.f.c+n.g.c}function xT(n,t){return n.b.Hc(t)}function DT(n,t){return n.b.Ic(t)}function RT(n,t){return n.b.Qc(t)}function KT(n,t){return n.b.Hc(t)}function _T(n,t){return n.c.uc(t)}function FT(n,t){return n.a._b(t)}function BT(n,t){return Nfn(n.c,t)}function HT(n,t){return hU(n.b,t)}function qT(n,t){return n>t&&t<OVn}function GT(n,t){return n.Gc(t),n}function zT(n,t){return Frn(n,t),n}function UT(n){return XX(),n?stt:ott}function XT(n){non.call(this,n,0)}function WT(){Wz.call(this,null)}function VT(){B8.call(this,null)}function QT(n){this.c=n,Ann(this)}function YT(){P$(this),yQ(this)}function JT(n,t){EW(n),n.a.Nb(t)}function ZT(n,t){return n.Gc(t),n}function nM(n,t){return n.a.f=t,n}function tM(n,t){return n.a.d=t,n}function eM(n,t){return n.a.g=t,n}function iM(n,t){return n.a.j=t,n}function rM(n,t){return n.a.a=t,n}function cM(n,t){return n.a.d=t,n}function aM(n,t){return n.a.e=t,n}function uM(n,t){return n.a.g=t,n}function oM(n,t){return n.a.f=t,n}function sM(n){return n.b=!1,n}function hM(){hM=O,Pet=new CO}function fM(){fM=O,Cet=new IO}function lM(){lM=O,Het=new U}function bM(){bM=O,vut=new Kt}function wM(){wM=O,rct=new Ix}function dM(){dM=O,tit=new hn}function gM(){gM=O,kut=new _t}function pM(){pM=O,sit=new dn}function vM(){vM=O,Gat=new yt}function mM(){mM=O,Fut=new Gj}function yM(){yM=O,zat=new Pt}function kM(){kM=O,Vat=new DG}function jM(){jM=O,hut=new Mt}function EM(){EM=O,But=new be}function TM(){TM=O,nst=new Ye}function MM(){MM=O,wst=new Lr}function SM(){SM=O,Qst=new rc}function PM(){PM=O,Wkt=new B2}function CM(){CM=O,XEt=new LM}function IM(){IM=O,QEt=new vD}function OM(){OM=O,GTt=new XW}function AM(){AM=O,Wpt=new Wu}function $M(){Sin(),this.c=new ok}function LM(){gT.call(this,H1n,0)}function NM(n,t){Jgn(n.c.b,t.c,t)}function xM(n,t){Jgn(n.c.c,t.b,t)}function DM(n,t,e){mZ(n.d,t.f,e)}function RM(n,t,e,i){Jpn(n,i,t,e)}function KM(n,t,e,i){uNn(i,n,t,e)}function _M(n,t,e,i){oUn(i,n,t,e)}function FM(n,t){return n.a=t.g,n}function BM(n,t){return ekn(n.a,t)}function HM(n){return n.b?n.b:n.a}function qM(n){return(n.c+n.a)/2}function GM(){GM=O,lOt=new to}function zM(){zM=O,COt=new ho}function UM(){UM=O,RAt=new Pm}function XM(){XM=O,UAt=new Cm}function WM(){WM=O,zAt=new Nm}function VM(){VM=O,ZAt=new Dm}function QM(){QM=O,N$t=new z$}function YM(){YM=O,x$t=new U$}function JM(){JM=O,rLt=new Ns}function ZM(){ZM=O,aLt=new xs}function nS(){nS=O,mAt=new xp}function tS(){tS=O,V$t=new Np}function eS(){eS=O,MNt=new Kh}function iS(n){e.clearTimeout(n)}function rS(n){this.a=BB(yX(n),224)}function cS(n){return BB(n,42).cd()}function aS(n){return n.b<n.d.gc()}function uS(n,t){return CG(n.a,t)}function oS(n,t){return Vhn(n,t)>0}function sS(n,t){return Vhn(n,t)<0}function hS(n,t){return n.a.get(t)}function fS(n,t){return t.split(n)}function lS(n,t){return hU(n.e,t)}function bS(n){return kW(n),!1}function wS(n){w1.call(this,n,21)}function dS(n,t){_J.call(this,n,t)}function gS(n,t){gT.call(this,n,t)}function pS(n,t){gT.call(this,n,t)}function vS(n){VX(),VK.call(this,n)}function mS(n,t){jG(n,n.length,t)}function yS(n,t){QU(n,n.length,t)}function kS(n,t,e){t.ud(n.a.Ge(e))}function jS(n,t,e){t.we(n.a.Fe(e))}function ES(n,t,e){t.td(n.a.Kb(e))}function TS(n,t,e){n.Mb(e)&&t.td(e)}function MS(n,t,e){n.splice(t,0,e)}function SS(n,t){return SN(n.e,t)}function PS(n,t){this.d=n,this.e=t}function CS(n,t){this.b=n,this.a=t}function IS(n,t){this.b=n,this.a=t}function OS(n,t){this.b=n,this.a=t}function AS(n,t){this.a=n,this.b=t}function $S(n,t){this.a=n,this.b=t}function LS(n,t){this.a=n,this.b=t}function NS(n,t){this.a=n,this.b=t}function xS(n,t){this.a=n,this.b=t}function DS(n,t){this.b=n,this.a=t}function RS(n,t){this.b=n,this.a=t}function KS(n,t){gT.call(this,n,t)}function _S(n,t){gT.call(this,n,t)}function FS(n,t){gT.call(this,n,t)}function BS(n,t){gT.call(this,n,t)}function HS(n,t){gT.call(this,n,t)}function qS(n,t){gT.call(this,n,t)}function GS(n,t){gT.call(this,n,t)}function zS(n,t){gT.call(this,n,t)}function US(n,t){gT.call(this,n,t)}function XS(n,t){gT.call(this,n,t)}function WS(n,t){gT.call(this,n,t)}function VS(n,t){gT.call(this,n,t)}function QS(n,t){gT.call(this,n,t)}function YS(n,t){gT.call(this,n,t)}function JS(n,t){gT.call(this,n,t)}function ZS(n,t){gT.call(this,n,t)}function nP(n,t){gT.call(this,n,t)}function tP(n,t){gT.call(this,n,t)}function eP(n,t){this.a=n,this.b=t}function iP(n,t){this.a=n,this.b=t}function rP(n,t){this.a=n,this.b=t}function cP(n,t){this.a=n,this.b=t}function aP(n,t){this.a=n,this.b=t}function uP(n,t){this.a=n,this.b=t}function oP(n,t){this.a=n,this.b=t}function sP(n,t){this.a=n,this.b=t}function hP(n,t){this.a=n,this.b=t}function fP(n,t){this.b=n,this.a=t}function lP(n,t){this.b=n,this.a=t}function bP(n,t){this.b=n,this.a=t}function wP(n,t){this.b=n,this.a=t}function dP(n,t){this.c=n,this.d=t}function gP(n,t){this.e=n,this.d=t}function pP(n,t){this.a=n,this.b=t}function vP(n,t){this.b=t,this.c=n}function mP(n,t){gT.call(this,n,t)}function yP(n,t){gT.call(this,n,t)}function kP(n,t){gT.call(this,n,t)}function jP(n,t){gT.call(this,n,t)}function EP(n,t){gT.call(this,n,t)}function TP(n,t){gT.call(this,n,t)}function MP(n,t){gT.call(this,n,t)}function SP(n,t){gT.call(this,n,t)}function PP(n,t){gT.call(this,n,t)}function CP(n,t){gT.call(this,n,t)}function IP(n,t){gT.call(this,n,t)}function OP(n,t){gT.call(this,n,t)}function AP(n,t){gT.call(this,n,t)}function $P(n,t){gT.call(this,n,t)}function LP(n,t){gT.call(this,n,t)}function NP(n,t){gT.call(this,n,t)}function xP(n,t){gT.call(this,n,t)}function DP(n,t){gT.call(this,n,t)}function RP(n,t){gT.call(this,n,t)}function KP(n,t){gT.call(this,n,t)}function _P(n,t){gT.call(this,n,t)}function FP(n,t){gT.call(this,n,t)}function BP(n,t){gT.call(this,n,t)}function HP(n,t){gT.call(this,n,t)}function qP(n,t){gT.call(this,n,t)}function GP(n,t){gT.call(this,n,t)}function zP(n,t){gT.call(this,n,t)}function UP(n,t){gT.call(this,n,t)}function XP(n,t){gT.call(this,n,t)}function WP(n,t){gT.call(this,n,t)}function VP(n,t){gT.call(this,n,t)}function QP(n,t){gT.call(this,n,t)}function YP(n,t){gT.call(this,n,t)}function JP(n,t){gT.call(this,n,t)}function ZP(n,t){this.b=n,this.a=t}function nC(n,t){this.a=n,this.b=t}function tC(n,t){this.a=n,this.b=t}function eC(n,t){this.a=n,this.b=t}function iC(n,t){this.a=n,this.b=t}function rC(n,t){gT.call(this,n,t)}function cC(n,t){gT.call(this,n,t)}function aC(n,t){this.b=n,this.d=t}function uC(n,t){gT.call(this,n,t)}function oC(n,t){gT.call(this,n,t)}function sC(n,t){this.a=n,this.b=t}function hC(n,t){this.a=n,this.b=t}function fC(n,t){gT.call(this,n,t)}function lC(n,t){gT.call(this,n,t)}function bC(n,t){gT.call(this,n,t)}function wC(n,t){gT.call(this,n,t)}function dC(n,t){gT.call(this,n,t)}function gC(n,t){gT.call(this,n,t)}function pC(n,t){gT.call(this,n,t)}function vC(n,t){gT.call(this,n,t)}function mC(n,t){gT.call(this,n,t)}function yC(n,t){gT.call(this,n,t)}function kC(n,t){gT.call(this,n,t)}function jC(n,t){gT.call(this,n,t)}function EC(n,t){gT.call(this,n,t)}function TC(n,t){gT.call(this,n,t)}function MC(n,t){gT.call(this,n,t)}function SC(n,t){gT.call(this,n,t)}function PC(n,t){return SN(n.c,t)}function CC(n,t){return SN(t.b,n)}function IC(n,t){return-n.b.Je(t)}function OC(n,t){return SN(n.g,t)}function AC(n,t){gT.call(this,n,t)}function $C(n,t){gT.call(this,n,t)}function LC(n,t){this.a=n,this.b=t}function NC(n,t){this.a=n,this.b=t}function xC(n,t){this.a=n,this.b=t}function DC(n,t){gT.call(this,n,t)}function RC(n,t){gT.call(this,n,t)}function KC(n,t){gT.call(this,n,t)}function _C(n,t){gT.call(this,n,t)}function FC(n,t){gT.call(this,n,t)}function BC(n,t){gT.call(this,n,t)}function HC(n,t){gT.call(this,n,t)}function qC(n,t){gT.call(this,n,t)}function GC(n,t){gT.call(this,n,t)}function zC(n,t){gT.call(this,n,t)}function UC(n,t){gT.call(this,n,t)}function XC(n,t){gT.call(this,n,t)}function WC(n,t){gT.call(this,n,t)}function VC(n,t){gT.call(this,n,t)}function QC(n,t){gT.call(this,n,t)}function YC(n,t){gT.call(this,n,t)}function JC(n,t){this.a=n,this.b=t}function ZC(n,t){this.a=n,this.b=t}function nI(n,t){this.a=n,this.b=t}function tI(n,t){this.a=n,this.b=t}function eI(n,t){this.a=n,this.b=t}function iI(n,t){this.a=n,this.b=t}function rI(n,t){this.a=n,this.b=t}function cI(n,t){gT.call(this,n,t)}function aI(n,t){this.a=n,this.b=t}function uI(n,t){this.a=n,this.b=t}function oI(n,t){this.a=n,this.b=t}function sI(n,t){this.a=n,this.b=t}function hI(n,t){this.a=n,this.b=t}function fI(n,t){this.a=n,this.b=t}function lI(n,t){this.b=n,this.a=t}function bI(n,t){this.b=n,this.a=t}function wI(n,t){this.b=n,this.a=t}function dI(n,t){this.b=n,this.a=t}function gI(n,t){this.a=n,this.b=t}function pI(n,t){this.a=n,this.b=t}function vI(n,t){JLn(n.a,BB(t,56))}function mI(n,t){v7(n.a,BB(t,11))}function yI(n,t){return hH(),t!=n}function kI(){return Rk(),new ket}function jI(){qZ(),this.b=new Rv}function EI(){dxn(),this.a=new Rv}function TI(){KZ(),KG.call(this)}function MI(n,t){gT.call(this,n,t)}function SI(n,t){this.a=n,this.b=t}function PI(n,t){this.a=n,this.b=t}function CI(n,t){this.a=n,this.b=t}function II(n,t){this.a=n,this.b=t}function OI(n,t){this.a=n,this.b=t}function AI(n,t){this.a=n,this.b=t}function $I(n,t){this.d=n,this.b=t}function LI(n,t){this.d=n,this.e=t}function NI(n,t){this.f=n,this.c=t}function xI(n,t){this.b=n,this.c=t}function DI(n,t){this.i=n,this.g=t}function RI(n,t){this.e=n,this.a=t}function KI(n,t){this.a=n,this.b=t}function _I(n,t){n.i=null,arn(n,t)}function FI(n,t){n&&VW(hAt,n,t)}function BI(n,t){return rdn(n.a,t)}function HI(n){return adn(n.c,n.b)}function qI(n){return n?n.dd():null}function GI(n){return null==n?null:n}function zI(n){return typeof n===$Wn}function UI(n){return typeof n===LWn}function XI(n){return typeof n===NWn}function WI(n,t){return n.Hd().Xb(t)}function VI(n,t){return Qcn(n.Kc(),t)}function QI(n,t){return 0==Vhn(n,t)}function YI(n,t){return Vhn(n,t)>=0}function JI(n,t){return 0!=Vhn(n,t)}function ZI(n){return""+(kW(n),n)}function nO(n,t){return n.substr(t)}function tO(n){return zbn(n),n.d.gc()}function eO(n){return zOn(n,n.c),n}function iO(n){return JH(null==n),n}function rO(n,t){return n.a+=""+t,n}function cO(n,t){return n.a+=""+t,n}function aO(n,t){return n.a+=""+t,n}function uO(n,t){return n.a+=""+t,n}function oO(n,t){return n.a+=""+t,n}function sO(n,t){return n.a+=""+t,n}function hO(n,t){r5(n,t,n.a,n.a.a)}function fO(n,t){r5(n,t,n.c.b,n.c)}function lO(n,t,e){Kjn(t,RPn(n,e))}function bO(n,t,e){Kjn(t,RPn(n,e))}function wO(n,t){Tnn(new AL(n),t)}function dO(n,t){n.q.setTime(j2(t))}function gO(n,t){zz.call(this,n,t)}function pO(n,t){zz.call(this,n,t)}function vO(n,t){zz.call(this,n,t)}function mO(n){$U(this),Tcn(this,n)}function yO(n){return l1(n,0),null}function kO(n){return n.a=0,n.b=0,n}function jO(n,t){return n.a=t.g+1,n}function EO(n,t){return 2==n.j[t.p]}function TO(n){return sX(BB(n,79))}function MO(){MO=O,Art=lhn(tpn())}function SO(){SO=O,Zot=lhn(ENn())}function PO(){this.b=new XT(etn(12))}function CO(){this.b=0,this.a=!1}function IO(){this.b=0,this.a=!1}function OO(n){this.a=n,Bh.call(this)}function AO(n){this.a=n,Bh.call(this)}function $O(n,t){iR.call(this,n,t)}function LO(n,t){tK.call(this,n,t)}function NO(n,t){DI.call(this,n,t)}function xO(n,t){Aan.call(this,n,t)}function DO(n,t){QN.call(this,n,t)}function RO(n,t){nS(),VW(mAt,n,t)}function KO(n,t){return fx(n.a,0,t)}function _O(n,t){return n.a.a.a.cc(t)}function FO(n,t){return GI(n)===GI(t)}function BO(n,t){return Pln(n.a,t.a)}function HO(n,t){return E$(n.a,t.a)}function qO(n,t){return FU(n.a,t.a)}function GO(n,t){return n.indexOf(t)}function zO(n,t){return n==t?0:n?1:-1}function UO(n){return n<10?"0"+n:""+n}function XO(n){return yX(n),new OO(n)}function WO(n){return M$(n.l,n.m,n.h)}function VO(n){return CJ((kW(n),n))}function QO(n){return CJ((kW(n),n))}function YO(n,t){return E$(n.g,t.g)}function JO(n){return typeof n===LWn}function ZO(n){return n==Zat||n==eut}function nA(n){return n==Zat||n==nut}function tA(n){return E7(n.b.b,n,0)}function eA(n){this.a=kI(),this.b=n}function iA(n){this.a=kI(),this.b=n}function rA(n,t){return WB(n.a,t),t}function cA(n,t){return WB(n.c,t),n}function aA(n,t){return Jcn(n.a,t),n}function uA(n,t){return G_(),t.a+=n}function oA(n,t){return G_(),t.a+=n}function sA(n,t){return G_(),t.c+=n}function hA(n,t){z9(n,0,n.length,t)}function fA(){ew.call(this,new v4)}function lA(){uG.call(this,0,0,0,0)}function bA(){UV.call(this,0,0,0,0)}function wA(n){this.a=n.a,this.b=n.b}function dA(n){return n==_Pt||n==FPt}function gA(n){return n==HPt||n==KPt}function pA(n){return n==fvt||n==hvt}function vA(n){return n!=QCt&&n!=YCt}function mA(n){return n.Lg()&&n.Mg()}function yA(n){return mV(BB(n,118))}function kA(n){return Jcn(new B2,n)}function jA(n,t){return new Aan(t,n)}function EA(n,t){return new Aan(t,n)}function TA(n,t,e){jen(n,t),Een(n,e)}function MA(n,t,e){Sen(n,t),Men(n,e)}function SA(n,t,e){Pen(n,t),Cen(n,e)}function PA(n,t,e){Ten(n,t),Oen(n,e)}function CA(n,t,e){Ien(n,t),Aen(n,e)}function IA(n,t){Dsn(n,t),xen(n,n.D)}function OA(n){NI.call(this,n,!0)}function AA(n,t,e){ND.call(this,n,t,e)}function $A(n){ODn(),san.call(this,n)}function LA(){gS.call(this,"Head",1)}function NA(){gS.call(this,"Tail",3)}function xA(n){n.c=x8(Ant,HWn,1,0,5,1)}function DA(n){n.a=x8(Ant,HWn,1,8,5,1)}function RA(n){Otn(n.xf(),new Sw(n))}function KA(n){return null!=n?nsn(n):0}function _A(n,t){return Ctn(t,WJ(n))}function FA(n,t){return Ctn(t,WJ(n))}function BA(n,t){return n[n.length]=t}function HA(n,t){return n[n.length]=t}function qA(n){return FB(n.b.Kc(),n.a)}function GA(n,t){return Uin(PX(n.d),t)}function zA(n,t){return Uin(PX(n.g),t)}function UA(n,t){return Uin(PX(n.j),t)}function XA(n,t){iR.call(this,n.b,t)}function WA(n){uG.call(this,n,n,n,n)}function VA(n){return n.b&&VBn(n),n.a}function QA(n){return n.b&&VBn(n),n.c}function YA(n,t){Qet||(n.b=t)}function JA(n,t,e){return $X(n,t,e),e}function ZA(n,t,e){$X(n.c[t.g],t.g,e)}function n$(n,t,e){BB(n.c,69).Xh(t,e)}function t$(n,t,e){SA(e,e.i+n,e.j+t)}function e$(n,t){f9(a4(n.a),e1(t))}function i$(n,t){f9(H7(n.a),i1(t))}function r$(n){wWn(),Ap.call(this,n)}function c$(n){return null==n?0:nsn(n)}function a$(){a$=O,syt=new Hbn(oCt)}function u$(){u$=O,new o$,new Np}function o$(){new xp,new xp,new xp}function s$(){s$=O,Mv(),itt=new xp}function h$(){h$=O,e.Math.log(2)}function f$(){f$=O,zM(),R$t=COt}function l$(){throw Hp(new tk(Tnt))}function b$(){throw Hp(new tk(Tnt))}function w$(){throw Hp(new tk(Mnt))}function d$(){throw Hp(new tk(Mnt))}function g$(n){this.a=n,QB.call(this,n)}function p$(n){this.a=n,ST.call(this,n)}function v$(n){this.a=n,ST.call(this,n)}function m$(n,t){yG(n.c,n.c.length,t)}function y$(n){return n.a<n.c.c.length}function k$(n){return n.a<n.c.a.length}function j$(n,t){return n.a?n.b:t.De()}function E$(n,t){return n<t?-1:n>t?1:0}function T$(n,t){return Vhn(n,t)>0?n:t}function M$(n,t,e){return{l:n,m:t,h:e}}function S$(n,t){null!=n.a&&mI(t,n.a)}function P$(n){n.a=new $,n.c=new $}function C$(n){this.b=n,this.a=new Np}function I$(n){this.b=new et,this.a=n}function O$(n){LR.call(this),this.a=n}function A$(){gS.call(this,"Range",2)}function $$(){tjn(),this.a=new CNn(Uat)}function L$(n,t){yX(t),EV(n).Jc(new b)}function N$(n,t){return BZ(),t.n.b+=n}function x$(n,t,e){return VW(n.g,e,t)}function D$(n,t,e){return VW(n.k,e,t)}function R$(n,t){return VW(n.a,t.a,t)}function K$(n,t,e){return Idn(t,e,n.c)}function _$(n){return new xC(n.c,n.d)}function F$(n){return new xC(n.c,n.d)}function B$(n){return new xC(n.a,n.b)}function H$(n,t){return tzn(n.a,t,null)}function q$(n){SZ(n,null),MZ(n,null)}function G$(n){WZ(n,null),VZ(n,null)}function z$(){QN.call(this,null,null)}function U$(){YN.call(this,null,null)}function X$(n){this.a=n,xp.call(this)}function W$(n){this.b=(SQ(),new Xb(n))}function V$(n){n.j=x8(Ftt,sVn,310,0,0,1)}function Q$(n,t,e){n.c.Vc(t,BB(e,133))}function Y$(n,t,e){n.c.ji(t,BB(e,133))}function J$(n,t){sqn(n),n.Gc(BB(t,15))}function Z$(n,t){return Bqn(n.c,n.b,t)}function nL(n,t){return new pN(n.Kc(),t)}function tL(n,t){return-1!=Fun(n.Kc(),t)}function eL(n,t){return null!=n.a.Bc(t)}function iL(n){return n.Ob()?n.Pb():null}function rL(n){return Bdn(n,0,n.length)}function cL(n,t){return null!=n&&Qpn(n,t)}function aL(n,t){n.q.setHours(t),lBn(n,t)}function uL(n,t){n.c&&(RH(t),kJ(t))}function oL(n,t,e){BB(n.Kb(e),164).Nb(t)}function sL(n,t,e){return HGn(n,t,e),e}function hL(n,t,e){n.a=1502^t,n.b=e^aYn}function fL(n,t,e){return n.a[t.g][e.g]}function lL(n,t){return n.a[t.c.p][t.p]}function bL(n,t){return n.e[t.c.p][t.p]}function wL(n,t){return n.c[t.c.p][t.p]}function dL(n,t){return n.j[t.p]=pLn(t)}function gL(n,t){return f6(n.f,t.tg())}function pL(n,t){return f6(n.b,t.tg())}function vL(n,t){return n.a<XK(t)?-1:1}function mL(n,t,e){return e?0!=t:t!=n-1}function yL(n,t,e){return n.a=t,n.b=e,n}function kL(n,t){return n.a*=t,n.b*=t,n}function jL(n,t,e){return $X(n.g,t,e),e}function EL(n,t,e,i){$X(n.a[t.g],e.g,i)}function TL(n,t){_x(t,n.a.a.a,n.a.a.b)}function ML(n){n.a=BB(yan(n.b.a,4),126)}function SL(n){n.a=BB(yan(n.b.a,4),126)}function PL(n){OY(n,i8n),HLn(n,IUn(n))}function CL(){CL=O,Set=new vy(null)}function IL(){(IL=O)(),$et=new z}function OL(){this.Bb|=256,this.Bb|=512}function AL(n){this.i=n,this.f=this.i.j}function $L(n,t,e){yH.call(this,n,t,e)}function LL(n,t,e){$L.call(this,n,t,e)}function NL(n,t,e){$L.call(this,n,t,e)}function xL(n,t,e){LL.call(this,n,t,e)}function DL(n,t,e){yH.call(this,n,t,e)}function RL(n,t,e){yH.call(this,n,t,e)}function KL(n,t,e){MH.call(this,n,t,e)}function _L(n,t,e){MH.call(this,n,t,e)}function FL(n,t,e){KL.call(this,n,t,e)}function BL(n,t,e){DL.call(this,n,t,e)}function HL(n,t){this.a=n,ST.call(this,t)}function qL(n,t){this.a=n,uk.call(this,t)}function GL(n,t){this.a=n,uk.call(this,t)}function zL(n,t){this.a=n,uk.call(this,t)}function UL(n){this.a=n,hl.call(this,n.d)}function XL(n){this.c=n,this.a=this.c.a}function WL(n,t){this.a=t,uk.call(this,n)}function VL(n,t){this.a=t,d4.call(this,n)}function QL(n,t){this.a=n,d4.call(this,t)}function YL(n,t){return wz(bz(n.c)).Xb(t)}function JL(n,t){return ebn(n,new Ck,t).a}function ZL(n,t){return yX(t),new nN(n,t)}function nN(n,t){this.a=t,OT.call(this,n)}function tN(n){this.b=n,this.a=this.b.a.e}function eN(n){n.b.Qb(),--n.d.f.d,$G(n.d)}function iN(n){tl.call(this,BB(yX(n),35))}function rN(n){tl.call(this,BB(yX(n),35))}function cN(){gT.call(this,"INSTANCE",0)}function aN(n){if(!n)throw Hp(new wv)}function uN(n){if(!n)throw Hp(new dv)}function oN(n){if(!n)throw Hp(new yv)}function sN(){sN=O,JM(),cLt=new Ff}function hN(){hN=O,ptt=!1,vtt=!0}function fN(n){Ab.call(this,(kW(n),n))}function lN(n){Ab.call(this,(kW(n),n))}function bN(n){Hb.call(this,n),this.a=n}function wN(n){qb.call(this,n),this.a=n}function dN(n){Ak.call(this,n),this.a=n}function gN(){V$(this),jQ(this),this._d()}function pN(n,t){this.a=t,OT.call(this,n)}function vN(n,t){return new KPn(n.a,n.b,t)}function mN(n,t){return n.lastIndexOf(t)}function yN(n,t,e){return n.indexOf(t,e)}function kN(n){return null==n?zWn:Bbn(n)}function jN(n){return null==n?null:n.name}function EN(n){return null!=n.a?n.a:null}function TN(n){return EE(n.a)?u1(n):null}function MN(n,t){return null!=$J(n.a,t)}function SN(n,t){return!!t&&n.b[t.g]==t}function PN(n){return n.$H||(n.$H=++cit)}function CN(n){return n.l+n.m*IQn+n.h*OQn}function IN(n,t){return WB(t.a,n.a),n.a}function ON(n,t){return WB(t.b,n.a),n.a}function AN(n,t){return WB(t.a,n.a),n.a}function $N(n){return Px(null!=n.a),n.a}function LN(n){ew.call(this,new q8(n))}function NN(n,t){Sgn.call(this,n,t,null)}function xN(n){this.a=n,Bb.call(this,n)}function DN(){DN=O,Lrt=new iR(dJn,0)}function RN(n,t){return++n.b,WB(n.a,t)}function KN(n,t){return++n.b,y7(n.a,t)}function _N(n,t){return Pln(n.n.a,t.n.a)}function FN(n,t){return Pln(n.c.d,t.c.d)}function BN(n,t){return Pln(n.c.c,t.c.c)}function HN(n,t){return BB(h6(n.b,t),15)}function qN(n,t){return n.n.b=(kW(t),t)}function GN(n,t){return n.n.b=(kW(t),t)}function zN(n){return y$(n.a)||y$(n.b)}function UN(n,t,e){return p3(n,t,e,n.b)}function XN(n,t,e){return p3(n,t,e,n.c)}function WN(n,t,e){BB(D7(n,t),21).Fc(e)}function VN(n,t,e){Oln(n.a,e),Ivn(n.a,t)}function QN(n,t){QM(),this.a=n,this.b=t}function YN(n,t){YM(),this.b=n,this.c=t}function JN(n,t){FG(),this.f=t,this.d=n}function ZN(n,t){w6(t,n),this.d=n,this.c=t}function nx(n){var t;t=n.a,n.a=n.b,n.b=t}function tx(n){return G_(),!!n&&!n.dc()}function ex(n){return new h4(3,n)}function ix(n,t){return new bK(n,n.gc(),t)}function rx(n){return ry(),Cnn((DZ(),Xnt),n)}function cx(n){this.d=n,AL.call(this,n)}function ax(n){this.c=n,AL.call(this,n)}function ux(n){this.c=n,cx.call(this,n)}function ox(){MM(),this.b=new yd(this)}function sx(n){return lin(n,AVn),new J6(n)}function hx(n){return PY(),parseInt(n)||-1}function fx(n,t,e){return n.substr(t,e-t)}function lx(n,t,e){return yN(n,YTn(t),e)}function bx(n){return VU(n.c,n.c.length)}function wx(n){return null!=n.f?n.f:""+n.g}function dx(n){return null!=n.f?n.f:""+n.g}function gx(n){return Px(0!=n.b),n.a.a.c}function px(n){return Px(0!=n.b),n.c.b.c}function vx(n){cL(n,150)&&BB(n,150).Gh()}function mx(n){return n.b=BB(mQ(n.a),42)}function yx(n){hM(),this.b=n,this.a=!0}function kx(n){fM(),this.b=n,this.a=!0}function jx(n){n.d=new Cx(n),n.e=new xp}function Ex(n){if(!n)throw Hp(new vv)}function Tx(n){if(!n)throw Hp(new wv)}function Mx(n){if(!n)throw Hp(new dv)}function Sx(n){if(!n)throw Hp(new lv)}function Px(n){if(!n)throw Hp(new yv)}function Cx(n){nH.call(this,n,null,null)}function Ix(){gT.call(this,"POLYOMINO",0)}function Ox(n,t,e,i){sz.call(this,n,t,e,i)}function Ax(n,t){return _Mn(),JIn(n,t.e,t)}function $x(n,t,e){return AM(),e.qg(n,t)}function Lx(n,t){return!!n.q&&hU(n.q,t)}function Nx(n,t){return n>0?t*t/n:t*t*100}function xx(n,t){return n>0?t/(n*n):100*t}function Dx(n,t,e){return WB(t,own(n,e))}function Rx(n,t,e){x9(),n.Xe(t)&&e.td(n)}function Kx(n,t,e){n.Zc(t).Rb(e)}function _x(n,t,e){return n.a+=t,n.b+=e,n}function Fx(n,t,e){return n.a*=t,n.b*=e,n}function Bx(n,t,e){return n.a-=t,n.b-=e,n}function Hx(n,t){return n.a=t.a,n.b=t.b,n}function qx(n){return n.a=-n.a,n.b=-n.b,n}function Gx(n){this.c=n,this.a=1,this.b=1}function zx(n){this.c=n,Pen(n,0),Cen(n,0)}function Ux(n){YT.call(this),nin(this,n)}function Xx(n){RXn(),Bp(this),this.mf(n)}function Wx(n,t){QM(),QN.call(this,n,t)}function Vx(n,t){YM(),YN.call(this,n,t)}function Qx(n,t){YM(),YN.call(this,n,t)}function Yx(n,t){YM(),Vx.call(this,n,t)}function Jx(n,t,e){y9.call(this,n,t,e,2)}function Zx(n,t){f$(),cG.call(this,n,t)}function nD(n,t){f$(),Zx.call(this,n,t)}function tD(n,t){f$(),Zx.call(this,n,t)}function eD(n,t){f$(),tD.call(this,n,t)}function iD(n,t){f$(),cG.call(this,n,t)}function rD(n,t){f$(),iD.call(this,n,t)}function cD(n,t){f$(),cG.call(this,n,t)}function aD(n,t){return n.c.Fc(BB(t,133))}function uD(n,t,e){return NHn(F7(n,t),e)}function oD(n,t,e){return t.Qk(n.e,n.c,e)}function sD(n,t,e){return t.Rk(n.e,n.c,e)}function hD(n,t){return tfn(n.e,BB(t,49))}function fD(n,t,e){sln(H7(n.a),t,i1(e))}function lD(n,t,e){sln(a4(n.a),t,e1(e))}function bD(n,t){t.$modCount=n.$modCount}function wD(){wD=O,Vkt=new up("root")}function dD(){dD=O,pAt=new Tm,new Mm}function gD(){this.a=new pJ,this.b=new pJ}function pD(){jin.call(this),this.Bb|=BQn}function vD(){gT.call(this,"GROW_TREE",0)}function mD(n){return null==n?null:wUn(n)}function yD(n){return null==n?null:LSn(n)}function kD(n){return null==n?null:Bbn(n)}function jD(n){return null==n?null:Bbn(n)}function ED(n){null==n.o&&g$n(n)}function TD(n){return JH(null==n||zI(n)),n}function MD(n){return JH(null==n||UI(n)),n}function SD(n){return JH(null==n||XI(n)),n}function PD(n){this.q=new e.Date(j2(n))}function CD(n,t){this.c=n,pT.call(this,n,t)}function ID(n,t){this.a=n,CD.call(this,n,t)}function OD(n,t){this.d=n,Mb(this),this.b=t}function AD(n,t){B8.call(this,n),this.a=t}function $D(n,t){B8.call(this,n),this.a=t}function LD(n){qwn.call(this,0,0),this.f=n}function ND(n,t,e){W6.call(this,n,t,e,null)}function xD(n,t,e){W6.call(this,n,t,e,null)}function DD(n,t,e){return n.ue(t,e)<=0?e:t}function RD(n,t,e){return n.ue(t,e)<=0?t:e}function KD(n,t){return BB(lnn(n.b,t),149)}function _D(n,t){return BB(lnn(n.c,t),229)}function FD(n){return BB(xq(n.a,n.b),287)}function BD(n){return new xC(n.c,n.d+n.a)}function HD(n){return BZ(),pA(BB(n,197))}function qD(){qD=O,$rt=nbn((mdn(),_It))}function GD(n,t){t.a?Fxn(n,t):MN(n.a,t.b)}function zD(n,t){Qet||WB(n.a,t)}function UD(n,t){return mM(),wan(t.d.i,n)}function XD(n,t){return Irn(),new cKn(t,n)}function WD(n,t){return OY(t,uJn),n.f=t,n}function VD(n,t,e){return e=T_n(n,t,3,e)}function QD(n,t,e){return e=T_n(n,t,6,e)}function YD(n,t,e){return e=T_n(n,t,9,e)}function JD(n,t,e){++n.j,n.Ki(),L8(n,t,e)}function ZD(n,t,e){++n.j,n.Hi(t,n.oi(t,e))}function nR(n,t,e){n.Zc(t).Rb(e)}function tR(n,t,e){return ZBn(n.c,n.b,t,e)}function eR(n,t){return(t&DWn)%n.d.length}function iR(n,t){up.call(this,n),this.a=t}function rR(n,t){kp.call(this,n),this.a=t}function cR(n,t){kp.call(this,n),this.a=t}function aR(n,t){this.c=n,gtn.call(this,t)}function uR(n,t){this.a=n,yp.call(this,t)}function oR(n,t){this.a=n,yp.call(this,t)}function sR(n){this.a=(lin(n,AVn),new J6(n))}function hR(n){this.a=(lin(n,AVn),new J6(n))}function fR(n){return!n.a&&(n.a=new w),n.a}function lR(n){return n>8?0:n+1}function bR(n,t){return hN(),n==t?0:n?1:-1}function wR(n,t,e){return mG(n,BB(t,22),e)}function dR(n,t,e){return n.apply(t,e)}function gR(n,t,e){return n.a+=Bdn(t,0,e),n}function pR(n,t){var e;return e=n.e,n.e=t,e}function vR(n,t){n[iYn].call(n,t)}function mR(n,t){n[iYn].call(n,t)}function yR(n,t){n.a.Vc(n.b,t),++n.b,n.c=-1}function kR(n){$U(n.e),n.d.b=n.d,n.d.a=n.d}function jR(n){n.b?jR(n.b):n.f.c.zc(n.e,n.d)}function ER(n,t,e){dM(),Il(n,t.Ce(n.a,e))}function TR(n,t){return Qj(Mdn(n.a,t,!0))}function MR(n,t){return Qj(Sdn(n.a,t,!0))}function SR(n,t){return qk(new Array(t),n)}function PR(n){return String.fromCharCode(n)}function CR(n){return null==n?null:n.message}function IR(){this.a=new Np,this.b=new Np}function OR(){this.a=new bt,this.b=new Tv}function AR(){this.b=new Gj,this.c=new Np}function $R(){this.d=new Gj,this.e=new Gj}function LR(){this.n=new Gj,this.o=new Gj}function NR(){this.n=new bm,this.i=new bA}function xR(){this.a=new nf,this.b=new uc}function DR(){this.a=new Np,this.d=new Np}function RR(){this.b=new Rv,this.a=new Rv}function KR(){this.b=new xp,this.a=new xp}function _R(){this.b=new AE,this.a=new da}function FR(){NR.call(this),this.a=new Gj}function BR(n){Oan.call(this,n,(Z9(),Net))}function HR(n,t,e,i){uG.call(this,n,t,e,i)}function qR(n,t,e){null!=e&&Lin(t,Amn(n,e))}function GR(n,t,e){null!=e&&Nin(t,Amn(n,e))}function zR(n,t,e){return e=T_n(n,t,11,e)}function UR(n,t){return n.a+=t.a,n.b+=t.b,n}function XR(n,t){return n.a-=t.a,n.b-=t.b,n}function WR(n,t){return n.n.a=(kW(t),t+10)}function VR(n,t){return n.n.a=(kW(t),t+10)}function QR(n,t){return t==n||Sjn(CLn(t),n)}function YR(n,t){return null==VW(n.a,t,"")}function JR(n,t){return mM(),!wan(t.d.i,n)}function ZR(n,t){dA(n.f)?c$n(n,t):ITn(n,t)}function nK(n,t){return t.Hh(n.a)}function tK(n,t){Ay.call(this,e9n+n+o8n+t)}function eK(n,t,e,i){eU.call(this,n,t,e,i)}function iK(n,t,e,i){eU.call(this,n,t,e,i)}function rK(n,t,e,i){iK.call(this,n,t,e,i)}function cK(n,t,e,i){iU.call(this,n,t,e,i)}function aK(n,t,e,i){iU.call(this,n,t,e,i)}function uK(n,t,e,i){iU.call(this,n,t,e,i)}function oK(n,t,e,i){aK.call(this,n,t,e,i)}function sK(n,t,e,i){aK.call(this,n,t,e,i)}function hK(n,t,e,i){uK.call(this,n,t,e,i)}function fK(n,t,e,i){sK.call(this,n,t,e,i)}function lK(n,t,e,i){Zz.call(this,n,t,e,i)}function bK(n,t,e){this.a=n,ZN.call(this,t,e)}function wK(n,t,e){this.c=t,this.b=e,this.a=n}function dK(n,t,e){return n.d=BB(t.Kb(e),164)}function gK(n,t){return n.Aj().Nh().Kh(n,t)}function pK(n,t){return n.Aj().Nh().Ih(n,t)}function vK(n,t){return kW(n),GI(n)===GI(t)}function mK(n,t){return kW(n),GI(n)===GI(t)}function yK(n,t){return Qj(Mdn(n.a,t,!1))}function kK(n,t){return Qj(Sdn(n.a,t,!1))}function jK(n,t){return n.b.sd(new $S(n,t))}function EK(n,t){return n.b.sd(new LS(n,t))}function TK(n,t){return n.b.sd(new NS(n,t))}function MK(n,t,e){return n.lastIndexOf(t,e)}function SK(n,t,e){return Pln(n[t.b],n[e.b])}function PK(n,t){return hon(t,(HXn(),Rdt),n)}function CK(n,t){return E$(t.a.d.p,n.a.d.p)}function IK(n,t){return E$(n.a.d.p,t.a.d.p)}function OK(n,t){return Pln(n.c-n.s,t.c-t.s)}function AK(n){return n.c?E7(n.c.a,n,0):-1}function $K(n){return n<100?null:new Fj(n)}function LK(n){return n==UCt||n==WCt||n==XCt}function NK(n,t){return cL(t,15)&&QDn(n.c,t)}function xK(n,t){Qet||t&&(n.d=t)}function DK(n,t){return!!lsn(n,t)}function RK(n,t){this.c=n,GU.call(this,n,t)}function KK(n){this.c=n,vO.call(this,bVn,0)}function _K(n,t){JB.call(this,n,n.length,t)}function FK(n,t,e){return BB(n.c,69).lk(t,e)}function BK(n,t,e){return BB(n.c,69).mk(t,e)}function HK(n,t,e){return oD(n,BB(t,332),e)}function qK(n,t,e){return sD(n,BB(t,332),e)}function GK(n,t,e){return IEn(n,BB(t,332),e)}function zK(n,t,e){return QTn(n,BB(t,332),e)}function UK(n,t){return null==t?null:lfn(n.b,t)}function XK(n){return UI(n)?(kW(n),n):n.ke()}function WK(n){return!isNaN(n)&&!isFinite(n)}function VK(n){s_(),this.a=(SQ(),new Ak(n))}function QK(n){hH(),this.d=n,this.a=new Lp}function YK(n,t,e){this.a=n,this.b=t,this.c=e}function JK(n,t,e){this.a=n,this.b=t,this.c=e}function ZK(n,t,e){this.d=n,this.b=e,this.a=t}function n_(n){P$(this),yQ(this),Frn(this,n)}function t_(n){xA(this),tH(this.c,0,n.Pc())}function e_(n){fW(n.a),z8(n.c,n.b),n.b=null}function i_(n){this.a=n,$T(),fan(Date.now())}function r_(){r_=O,iit=new r,rit=new r}function c_(){c_=O,Tet=new L,Met=new N}function a_(){a_=O,wAt=x8(Ant,HWn,1,0,5,1)}function u_(){u_=O,M$t=x8(Ant,HWn,1,0,5,1)}function o_(){o_=O,S$t=x8(Ant,HWn,1,0,5,1)}function s_(){s_=O,new rv((SQ(),SQ(),set))}function h_(n){return Z9(),Cnn((n7(),_et),n)}function f_(n){return qsn(),Cnn((e8(),Zet),n)}function l_(n){return hpn(),Cnn((I4(),pit),n)}function b_(n){return Rnn(),Cnn((O4(),kit),n)}function w_(n){return tRn(),Cnn((xan(),Fit),n)}function d_(n){return Dtn(),Cnn((Z6(),Wit),n)}function g_(n){return J9(),Cnn((n8(),trt),n)}function p_(n){return G7(),Cnn((t8(),urt),n)}function v_(n){return dWn(),Cnn((MO(),Art),n)}function m_(n){return Dan(),Cnn((e7(),_rt),n)}function y_(n){return Hpn(),Cnn((i7(),zrt),n)}function k_(n){return qpn(),Cnn((r7(),ict),n)}function j_(n){return wM(),Cnn((Q2(),act),n)}function E_(n){return Knn(),Cnn((A4(),_ct),n)}function T_(n){return q7(),Cnn((i8(),Lat),n)}function M_(n){return yMn(),Cnn((Xnn(),qat),n)}function S_(n){return Aun(),Cnn((t7(),rut),n)}function P_(n){return Bfn(),Cnn((r8(),gut),n)}function C_(n,t){if(!n)throw Hp(new _y(t))}function I_(n){return uSn(),Cnn((hen(),Aut),n)}function O_(n){uG.call(this,n.d,n.c,n.a,n.b)}function A_(n){uG.call(this,n.d,n.c,n.a,n.b)}function $_(n,t,e){this.b=n,this.c=t,this.a=e}function L_(n,t,e){this.b=n,this.a=t,this.c=e}function N_(n,t,e){this.a=n,this.b=t,this.c=e}function x_(n,t,e){this.a=n,this.b=t,this.c=e}function D_(n,t,e){this.a=n,this.b=t,this.c=e}function R_(n,t,e){this.a=n,this.b=t,this.c=e}function K_(n,t,e){this.b=n,this.a=t,this.c=e}function __(n,t,e){this.e=t,this.b=n,this.d=e}function F_(n,t,e){return dM(),n.a.Od(t,e),t}function B_(n){var t;return(t=new jn).e=n,t}function H_(n){var t;return(t=new Zv).b=n,t}function q_(){q_=O,Uut=new Ne,Xut=new xe}function G_(){G_=O,dst=new vr,gst=new mr}function z_(n){return Iun(),Cnn((a7(),ost),n)}function U_(n){return Oun(),Cnn((o7(),Est),n)}function X_(n){return kDn(),Cnn((Gcn(),Vst),n)}function W_(n){return $Pn(),Cnn((ben(),rht),n)}function V_(n){return V8(),Cnn((R4(),oht),n)}function Q_(n){return Oin(),Cnn((c8(),bht),n)}function Y_(n){return LEn(),Cnn((Hnn(),Ost),n)}function J_(n){return Crn(),Cnn((o8(),_st),n)}function Z_(n){return uin(),Cnn((a8(),vht),n)}function nF(n){return Vvn(),Cnn((Fnn(),Mht),n)}function tF(n){return _nn(),Cnn((L4(),Iht),n)}function eF(n){return Jun(),Cnn((u8(),Nht),n)}function iF(n){return gSn(),Cnn((pen(),Hht),n)}function rF(n){return g7(),Cnn((N4(),Uht),n)}function cF(n){return Bjn(),Cnn((den(),nft),n)}function aF(n){return JMn(),Cnn((wen(),oft),n)}function uF(n){return bDn(),Cnn((Vun(),yft),n)}function oF(n){return Kan(),Cnn((h8(),Mft),n)}function sF(n){return z7(),Cnn((s8(),Oft),n)}function hF(n){return z2(),Cnn((K4(),Nft),n)}function fF(n){return Tbn(),Cnn((qnn(),zlt),n)}function lF(n){return TTn(),Cnn((gen(),rvt),n)}function bF(n){return Mhn(),Cnn((f8(),svt),n)}function wF(n){return bvn(),Cnn((s7(),dvt),n)}function dF(n){return ain(),Cnn((w8(),Uvt),n)}function gF(n){return sNn(),Cnn((qcn(),$vt),n)}function pF(n){return mon(),Cnn((b8(),Rvt),n)}function vF(n){return U7(),Cnn((D4(),Bvt),n)}function mF(n){return Hcn(),Cnn((l8(),Yvt),n)}function yF(n){return Nvn(),Cnn((Bnn(),jvt),n)}function kF(n){return A6(),Cnn((x4(),tmt),n)}function jF(n){return Usn(),Cnn((g8(),amt),n)}function EF(n){return dcn(),Cnn((p8(),fmt),n)}function TF(n){return $un(),Cnn((d8(),gmt),n)}function MF(n){return oin(),Cnn((v8(),Nmt),n)}function SF(n){return Q4(),Cnn((F4(),Gmt),n)}function PF(n){return gJ(),Cnn((B4(),iyt),n)}function CF(n){return oZ(),Cnn((H4(),uyt),n)}function IF(n){return O6(),Cnn((_4(),Pyt),n)}function OF(n){return dJ(),Cnn((q4(),Dyt),n)}function AF(n){return zyn(),Cnn((c7(),Hyt),n)}function $F(n){return DPn(),Cnn((ven(),Jyt),n)}function LF(n){return sZ(),Cnn((U4(),Fkt),n)}function NF(n){return Prn(),Cnn((z4(),Zkt),n)}function xF(n){return B0(),Cnn((G4(),Gkt),n)}function DF(n){return Cbn(),Cnn((m8(),rjt),n)}function RF(n){return D9(),Cnn((X4(),ojt),n)}function KF(n){return Hsn(),Cnn((y8(),bjt),n)}function _F(n){return Omn(),Cnn((u7(),zjt),n)}function FF(n){return Bcn(),Cnn((j8(),Qjt),n)}function BF(n){return Sbn(),Cnn((k8(),eEt),n)}function HF(n){return YLn(),Cnn((Unn(),BEt),n)}function qF(n){return Pbn(),Cnn((E8(),UEt),n)}function GF(n){return CM(),Cnn((W2(),VEt),n)}function zF(n){return IM(),Cnn((X2(),JEt),n)}function UF(n){return $6(),Cnn((V4(),eTt),n)}function XF(n){return $Sn(),Cnn((Gnn(),sTt),n)}function WF(n){return OM(),Cnn((V2(),UTt),n)}function VF(n){return Lun(),Cnn((W4(),QTt),n)}function QF(n){return rpn(),Cnn((znn(),bMt),n)}function YF(n){return PPn(),Cnn((zcn(),EMt),n)}function JF(n){return wvn(),Cnn((len(),xMt),n)}function ZF(n){return wEn(),Cnn((fen(),tSt),n)}function nB(n){return lWn(),Cnn((SO(),Zot),n)}function tB(n){return Srn(),Cnn(($4(),zut),n)}function eB(n){return Ffn(),Cnn((Wnn(),GPt),n)}function iB(n){return Rtn(),Cnn((M8(),VPt),n)}function rB(n){return Mbn(),Cnn((l7(),tCt),n)}function cB(n){return nMn(),Cnn((yen(),sCt),n)}function aB(n){return ufn(),Cnn((T8(),kCt),n)}function uB(n){return Xyn(),Cnn((f7(),PCt),n)}function oB(n){return n$n(),Cnn((Nan(),KCt),n)}function sB(n){return cpn(),Cnn((Vnn(),zCt),n)}function hB(n){return QEn(),Cnn((Htn(),ZCt),n)}function fB(n){return lIn(),Cnn((men(),uIt),n)}function lB(n){return mdn(),Cnn((w7(),BIt),n)}function bB(n){return n_n(),Cnn((Qun(),JIt),n)}function wB(n){return kUn(),Cnn((Qnn(),OIt),n)}function dB(n){return Fwn(),Cnn((b7(),rOt),n)}function gB(n){return Bsn(),Cnn((h7(),fOt),n)}function pB(n){return hAn(),Cnn((Ucn(),cAt),n)}function vB(n,t){return kW(n),n+(kW(t),t)}function mB(n,t){return $T(),f9(QQ(n.a),t)}function yB(n,t){return $T(),f9(QQ(n.a),t)}function kB(n,t){this.c=n,this.a=t,this.b=t-n}function jB(n,t,e){this.a=n,this.b=t,this.c=e}function EB(n,t,e){this.a=n,this.b=t,this.c=e}function TB(n,t,e){this.a=n,this.b=t,this.c=e}function MB(n,t,e){this.a=n,this.b=t,this.c=e}function SB(n,t,e){this.a=n,this.b=t,this.c=e}function PB(n,t,e){this.e=n,this.a=t,this.c=e}function CB(n,t,e){f$(),mJ.call(this,n,t,e)}function IB(n,t,e){f$(),rW.call(this,n,t,e)}function OB(n,t,e){f$(),rW.call(this,n,t,e)}function AB(n,t,e){f$(),rW.call(this,n,t,e)}function $B(n,t,e){f$(),IB.call(this,n,t,e)}function LB(n,t,e){f$(),IB.call(this,n,t,e)}function NB(n,t,e){f$(),LB.call(this,n,t,e)}function xB(n,t,e){f$(),OB.call(this,n,t,e)}function DB(n,t,e){f$(),AB.call(this,n,t,e)}function RB(n,t){return yX(n),yX(t),new hT(n,t)}function KB(n,t){return yX(n),yX(t),new _H(n,t)}function _B(n,t){return yX(n),yX(t),new FH(n,t)}function FB(n,t){return yX(n),yX(t),new lT(n,t)}function BB(n,t){return JH(null==n||Qpn(n,t)),n}function HB(n){var t;return fnn(t=new Np,n),t}function qB(n){var t;return fnn(t=new Rv,n),t}function GB(n){var t;return qrn(t=new zv,n),t}function zB(n){var t;return qrn(t=new YT,n),t}function UB(n){return!n.e&&(n.e=new Np),n.e}function XB(n){return!n.c&&(n.c=new Bo),n.c}function WB(n,t){return n.c[n.c.length]=t,!0}function VB(n,t){this.c=n,this.b=t,this.a=!1}function QB(n){this.d=n,Mb(this),this.b=rz(n.d)}function YB(){this.a=";,;",this.b="",this.c=""}function JB(n,t,e){Uz.call(this,t,e),this.a=n}function ZB(n,t,e){this.b=n,gO.call(this,t,e)}function nH(n,t,e){this.c=n,PS.call(this,t,e)}function tH(n,t,e){_Cn(e,0,n,t,e.length,!1)}function eH(n,t,e,i,r){n.b=t,n.c=e,n.d=i,n.a=r}function iH(n,t){t&&(n.b=t,n.a=(EW(t),t.a))}function rH(n,t,e,i,r){n.d=t,n.c=e,n.a=i,n.b=r}function cH(n){var t,e;t=n.b,e=n.c,n.b=e,n.c=t}function aH(n){var t,e;e=n.d,t=n.a,n.d=t,n.a=e}function uH(n){return uan(xU(JO(n)?Pan(n):n))}function oH(n,t){return E$(oq(n.d),oq(t.d))}function sH(n,t){return t==(kUn(),CIt)?n.c:n.d}function hH(){hH=O,kUn(),Rmt=CIt,Kmt=oIt}function fH(){this.b=Gy(MD(mpn((fRn(),aat))))}function lH(n){return dM(),x8(Ant,HWn,1,n,5,1)}function bH(n){return new xC(n.c+n.b,n.d+n.a)}function wH(n,t){return SM(),E$(n.d.p,t.d.p)}function dH(n){return Px(0!=n.b),Atn(n,n.a.a)}function gH(n){return Px(0!=n.b),Atn(n,n.c.b)}function pH(n,t){if(!n)throw Hp(new $y(t))}function vH(n,t){if(!n)throw Hp(new _y(t))}function mH(n,t,e){dP.call(this,n,t),this.b=e}function yH(n,t,e){LI.call(this,n,t),this.c=e}function kH(n,t,e){btn.call(this,t,e),this.d=n}function jH(n){o_(),yo.call(this),this.th(n)}function EH(n,t,e){this.a=n,NO.call(this,t,e)}function TH(n,t,e){this.a=n,NO.call(this,t,e)}function MH(n,t,e){LI.call(this,n,t),this.c=e}function SH(){R5(),oW.call(this,(WM(),zAt))}function PH(n){return null!=n&&!Xbn(n,LAt,NAt)}function CH(n,t){return(Wfn(n)<<4|Wfn(t))&QVn}function IH(n,t){return nV(),zvn(n,t),new GW(n,t)}function OH(n,t){var e;n.n&&(e=t,WB(n.f,e))}function AH(n,t,e){rtn(n,t,new GX(e))}function $H(n,t){var e;return e=n.c,Kin(n,t),e}function LH(n,t){return n.g=t<0?-1:t,n}function NH(n,t){return ztn(n),n.a*=t,n.b*=t,n}function xH(n,t,e,i,r){n.c=t,n.d=e,n.b=i,n.a=r}function DH(n,t){return r5(n,t,n.c.b,n.c),!0}function RH(n){n.a.b=n.b,n.b.a=n.a,n.a=n.b=null}function KH(n){this.b=n,this.a=lz(this.b.a).Ed()}function _H(n,t){this.b=n,this.a=t,Bh.call(this)}function FH(n,t){this.a=n,this.b=t,Bh.call(this)}function BH(n,t){Uz.call(this,t,1040),this.a=n}function HH(n){return 0==n||isNaN(n)?n:n<0?-1:1}function qH(n){return MQ(),PMn(n)==JJ(OMn(n))}function GH(n){return MQ(),OMn(n)==JJ(PMn(n))}function zH(n,t){return Yjn(n,new dP(t.a,t.b))}function UH(n){return!b5(n)&&n.c.i.c==n.d.i.c}function XH(n){var t;return t=n.n,n.a.b+t.d+t.a}function WH(n){var t;return t=n.n,n.e.b+t.d+t.a}function VH(n){var t;return t=n.n,n.e.a+t.b+t.c}function QH(n){return wWn(),new oG(0,n)}function YH(n){return n.a?n.a:eQ(n)}function JH(n){if(!n)throw Hp(new Ky(null))}function ZH(){ZH=O,SQ(),uLt=new Gb(P7n)}function nq(){nq=O,new svn((ty(),_nt),(ey(),Knt))}function tq(){tq=O,Itt=x8(Att,sVn,19,256,0,1)}function eq(n,t,e,i){awn.call(this,n,t,e,i,0,0)}function iq(n,t,e){return VW(n.b,BB(e.b,17),t)}function rq(n,t,e){return VW(n.b,BB(e.b,17),t)}function cq(n,t){return WB(n,new xC(t.a,t.b))}function aq(n,t){return n.c<t.c?-1:n.c==t.c?0:1}function uq(n){return n.e.c.length+n.g.c.length}function oq(n){return n.e.c.length-n.g.c.length}function sq(n){return n.b.c.length-n.e.c.length}function hq(n){return BZ(),(kUn(),bIt).Hc(n.j)}function fq(n){o_(),jH.call(this,n),this.a=-1}function lq(n,t){xI.call(this,n,t),this.a=this}function bq(n,t){var e;return(e=mX(n,t)).i=2,e}function wq(n,t){return++n.j,n.Ti(t)}function dq(n,t,e){return n.a=-1,WN(n,t.g,e),n}function gq(n,t,e){Kzn(n.a,n.b,n.c,BB(t,202),e)}function pq(n,t){Bin(n,null==t?null:(kW(t),t))}function vq(n,t){Rin(n,null==t?null:(kW(t),t))}function mq(n,t){Rin(n,null==t?null:(kW(t),t))}function yq(n,t,e){return new wK(dW(n).Ie(),e,t)}function kq(n,t,e,i,r,c){return Vjn(n,t,e,i,r,0,c)}function jq(){jq=O,jtt=x8(Ttt,sVn,217,256,0,1)}function Eq(){Eq=O,$tt=x8(Rtt,sVn,162,256,0,1)}function Tq(){Tq=O,Ktt=x8(_tt,sVn,184,256,0,1)}function Mq(){Mq=O,Mtt=x8(Stt,sVn,172,128,0,1)}function Sq(){eH(this,!1,!1,!1,!1)}function Pq(n){WX(),this.a=(SQ(),new Gb(yX(n)))}function Cq(n){for(yX(n);n.Ob();)n.Pb(),n.Qb()}function Iq(n){n.a.cd(),BB(n.a.dd(),14).gc(),wk()}function Oq(n){this.c=n,this.b=this.c.d.vc().Kc()}function Aq(n){this.c=n,this.a=new QT(this.c.a)}function $q(n){this.a=new XT(n.gc()),Frn(this,n)}function Lq(n){ew.call(this,new v4),Frn(this,n)}function Nq(n,t){return n.a+=Bdn(t,0,t.length),n}function xq(n,t){return l1(t,n.c.length),n.c[t]}function Dq(n,t){return l1(t,n.a.length),n.a[t]}function Rq(n,t){dM(),B8.call(this,n),this.a=t}function Kq(n,t){return jgn(rbn(jgn(n.a).a,t.a))}function _q(n,t){return kW(n),Ncn(n,(kW(t),t))}function Fq(n,t){return kW(t),Ncn(t,(kW(n),n))}function Bq(n,t){return $X(t,0,Hq(t[0],jgn(1)))}function Hq(n,t){return Kq(BB(n,162),BB(t,162))}function qq(n){return n.c-BB(xq(n.a,n.b),287).b}function Gq(n){return n.q?n.q:(SQ(),SQ(),het)}function zq(n){return n.e.Hd().gc()*n.c.Hd().gc()}function Uq(n,t,e){return E$(t.d[n.g],e.d[n.g])}function Xq(n,t,e){return E$(n.d[t.p],n.d[e.p])}function Wq(n,t,e){return E$(n.d[t.p],n.d[e.p])}function Vq(n,t,e){return E$(n.d[t.p],n.d[e.p])}function Qq(n,t,e){return E$(n.d[t.p],n.d[e.p])}function Yq(n,t,i){return e.Math.min(i/n,1/t)}function Jq(n,t){return n?0:e.Math.max(0,t-1)}function Zq(n,t){var e;for(e=0;e<t;++e)n[e]=-1}function nG(n){var t;return(t=uEn(n))?nG(t):n}function tG(n,t){return null==n.a&&wRn(n),n.a[t]}function eG(n){return n.c?n.c.f:n.e.b}function iG(n){return n.c?n.c.g:n.e.a}function rG(n){gtn.call(this,n.gc()),pX(this,n)}function cG(n,t){f$(),jp.call(this,t),this.a=n}function aG(n,t,e){this.a=n,$L.call(this,t,e,2)}function uG(n,t,e,i){_h(this),rH(this,n,t,e,i)}function oG(n,t){wWn(),Ap.call(this,n),this.a=t}function sG(n){this.b=new YT,this.a=n,this.c=-1}function hG(){this.d=new xC(0,0),this.e=new Rv}function fG(n){ZN.call(this,0,0),this.a=n,this.b=0}function lG(n){this.a=n,this.c=new xp,ron(this)}function bG(n){if(n.e.c!=n.b)throw Hp(new vv)}function wG(n){if(n.c.e!=n.a)throw Hp(new vv)}function dG(n){return JO(n)?0|n:TE(n)}function gG(n,t){return wWn(),new UU(n,t)}function pG(n,t){return null==n?null==t:mK(n,t)}function vG(n,t){return null==n?null==t:mgn(n,t)}function mG(n,t,e){return orn(n.a,t),EU(n,t.g,e)}function yG(n,t,e){ihn(0,t,n.length),z9(n,0,t,e)}function kG(n,t,e){LZ(t,n.c.length),MS(n.c,t,e)}function jG(n,t,e){var i;for(i=0;i<t;++i)n[i]=e}function EG(n,t){var e;return $on(e=nbn(n),t),e}function TG(n,t){return!n&&(n=[]),n[n.length]=t,n}function MG(n,t){return!(void 0===n.a.get(t))}function SG(n,t){return Xin(new nn,new uw(n),t)}function PG(n){return null==n?Set:new vy(kW(n))}function CG(n,t){return cL(t,22)&&SN(n,BB(t,22))}function IG(n,t){return cL(t,22)&&$tn(n,BB(t,22))}function OG(n){return H$n(n,26)*rYn+H$n(n,27)*cYn}function AG(n){return Array.isArray(n)&&n.im===I}function $G(n){n.b?$G(n.b):n.d.dc()&&n.f.c.Bc(n.e)}function LG(n,t){UR(n.c,t),n.b.c+=t.a,n.b.d+=t.b}function NG(n,t){LG(n,XR(new xC(t.a,t.b),n.c))}function xG(n,t){this.b=new YT,this.a=n,this.c=t}function DG(){this.b=new Ot,this.c=new lY(this)}function RG(){this.d=new mn,this.e=new fY(this)}function KG(){KZ(),this.f=new YT,this.e=new YT}function _G(){BZ(),this.k=new xp,this.d=new Rv}function FG(){FG=O,bOt=new XA((sWn(),aPt),0)}function BG(){BG=O,qnt=new fG(x8(Ant,HWn,1,0,5,1))}function HG(n,t,e){VAn(e,n,1),WB(t,new cP(e,n))}function qG(n,t,e){Fkn(e,n,1),WB(t,new bP(e,n))}function GG(n,t,e){return TU(n,new xS(t.a,e.a))}function zG(n,t,e){return-E$(n.f[t.p],n.f[e.p])}function UG(n,t,e){var i;n&&((i=n.i).c=t,i.b=e)}function XG(n,t,e){var i;n&&((i=n.i).d=t,i.a=e)}function WG(n,t,e){return n.a=-1,WN(n,t.g+1,e),n}function VG(n,t,e){return e=T_n(n,BB(t,49),7,e)}function QG(n,t,e){return e=T_n(n,BB(t,49),3,e)}function YG(n,t,e){this.a=n,LL.call(this,t,e,22)}function JG(n,t,e){this.a=n,LL.call(this,t,e,14)}function ZG(n,t,e,i){f$(),N0.call(this,n,t,e,i)}function nz(n,t,e,i){f$(),N0.call(this,n,t,e,i)}function tz(n,t){0!=(t.Bb&h6n)&&!n.a.o&&(n.a.o=t)}function ez(n){return null!=n&&DU(n)&&!(n.im===I)}function iz(n){return!Array.isArray(n)&&n.im===I}function rz(n){return cL(n,15)?BB(n,15).Yc():n.Kc()}function cz(n){return n.Qc(x8(Ant,HWn,1,n.gc(),5,1))}function az(n,t){return lgn(F7(n,t))?t.Qh():null}function uz(n){n?Fmn(n,($T(),Btt),""):$T()}function oz(n){this.a=(BG(),qnt),this.d=BB(yX(n),47)}function sz(n,t,e,i){this.a=n,W6.call(this,n,t,e,i)}function hz(n){eS(),this.a=0,this.b=n-1,this.c=1}function fz(n){V$(this),this.g=n,jQ(this),this._d()}function lz(n){return n.c?n.c:n.c=n.Id()}function bz(n){return n.d?n.d:n.d=n.Jd()}function wz(n){return n.c||(n.c=n.Dd())}function dz(n){return n.f||(n.f=n.Dc())}function gz(n){return n.i||(n.i=n.bc())}function pz(n){return wWn(),new vJ(10,n,0)}function vz(n){return JO(n)?""+n:GDn(n)}function mz(n){if(n.e.j!=n.d)throw Hp(new vv)}function yz(n,t){return uan(lSn(JO(n)?Pan(n):n,t))}function kz(n,t){return uan(jAn(JO(n)?Pan(n):n,t))}function jz(n,t){return uan(JSn(JO(n)?Pan(n):n,t))}function Ez(n,t){return bR((kW(n),n),(kW(t),t))}function Tz(n,t){return Pln((kW(n),n),(kW(t),t))}function Mz(n,t){return yX(t),n.a.Ad(t)&&!n.b.Ad(t)}function Sz(n,t){return M$(n.l&t.l,n.m&t.m,n.h&t.h)}function Pz(n,t){return M$(n.l|t.l,n.m|t.m,n.h|t.h)}function Cz(n,t){return M$(n.l^t.l,n.m^t.m,n.h^t.h)}function Iz(n,t){return $fn(n,(kW(t),new rw(t)))}function Oz(n,t){return $fn(n,(kW(t),new cw(t)))}function Az(n){return gcn(),0!=BB(n,11).e.c.length}function $z(n){return gcn(),0!=BB(n,11).g.c.length}function Lz(n,t){return Irn(),Pln(t.a.o.a,n.a.o.a)}function Nz(n,t,e){return TUn(n,BB(t,11),BB(e,11))}function xz(n){return n.e?D6(n.e):null}function Dz(n){n.d||(n.d=n.b.Kc(),n.c=n.b.gc())}function Rz(n,t,e){n.a.Mb(e)&&(n.b=!0,t.td(e))}function Kz(n,t){if(n<0||n>=t)throw Hp(new Sv)}function _z(n,t,e){return $X(t,0,Hq(t[0],e[0])),t}function Fz(n,t,e){t.Ye(e,Gy(MD(RX(n.b,e)))*n.a)}function Bz(n,t,e){return jDn(),Dcn(n,t)&&Dcn(n,e)}function Hz(n){return lIn(),!n.Hc(eIt)&&!n.Hc(rIt)}function qz(n){return new xC(n.c+n.b/2,n.d+n.a/2)}function Gz(n,t){return t.kh()?tfn(n.b,BB(t,49)):t}function zz(n,t){this.e=n,this.d=0!=(64&t)?t|hVn:t}function Uz(n,t){this.c=0,this.d=n,this.b=64|t|hVn}function Xz(n){this.b=new J6(11),this.a=(PQ(),n)}function Wz(n){this.b=null,this.a=(PQ(),n||wet)}function Vz(n){this.a=rvn(n.a),this.b=new t_(n.b)}function Qz(n){this.b=n,cx.call(this,n),ML(this)}function Yz(n){this.b=n,ux.call(this,n),SL(this)}function Jz(n,t,e){this.a=n,eK.call(this,t,e,5,6)}function Zz(n,t,e,i){this.b=n,$L.call(this,t,e,i)}function nU(n,t,e,i,r){k9.call(this,n,t,e,i,r,-1)}function tU(n,t,e,i,r){j9.call(this,n,t,e,i,r,-1)}function eU(n,t,e,i){$L.call(this,n,t,e),this.b=i}function iU(n,t,e,i){yH.call(this,n,t,e),this.b=i}function rU(n){NI.call(this,n,!1),this.a=!1}function cU(n,t){this.b=n,hl.call(this,n.b),this.a=t}function aU(n,t){WX(),jT.call(this,n,sfn(new Jy(t)))}function uU(n,t){return wWn(),new cW(n,t,0)}function oU(n,t){return wWn(),new cW(6,n,t)}function sU(n,t){return mK(n.substr(0,t.length),t)}function hU(n,t){return XI(t)?eY(n,t):!!AY(n.f,t)}function fU(n,t){for(kW(t);n.Ob();)t.td(n.Pb())}function lU(n,t,e){ODn(),this.e=n,this.d=t,this.a=e}function bU(n,t,e,i){var r;(r=n.i).i=t,r.a=e,r.b=i}function wU(n){var t;for(t=n;t.f;)t=t.f;return t}function dU(n){var t;return Px(null!=(t=Eon(n))),t}function gU(n){var t;return Px(null!=(t=mln(n))),t}function pU(n,t){var e;return w6(t,e=n.a.gc()),e-t}function vU(n,t){var e;for(e=0;e<t;++e)n[e]=!1}function mU(n,t,e,i){var r;for(r=t;r<e;++r)n[r]=i}function yU(n,t,e,i){ihn(t,e,n.length),mU(n,t,e,i)}function kU(n,t,e){Kz(e,n.a.c.length),c5(n.a,e,t)}function jU(n,t,e){this.c=n,this.a=t,SQ(),this.b=e}function EU(n,t,e){var i;return i=n.b[t],n.b[t]=e,i}function TU(n,t){return null==n.a.zc(t,n)}function MU(n){if(!n)throw Hp(new yv);return n.d}function SU(n,t){if(null==n)throw Hp(new Hy(t))}function PU(n,t){return!!t&&Frn(n,t)}function CU(n,t,e){return ehn(n,t.g,e),orn(n.c,t),n}function IU(n){return Mzn(n,(Ffn(),_Pt)),n.d=!0,n}function OU(n){return!n.j&&yb(n,FKn(n.g,n.b)),n.j}function AU(n){Mx(-1!=n.b),s6(n.c,n.a=n.b),n.b=-1}function $U(n){n.f=new eA(n),n.g=new iA(n),oY(n)}function LU(n){return new Rq(null,qU(n,n.length))}function NU(n){return new oz(new WL(n.a.length,n.a))}function xU(n){return M$(~n.l&SQn,~n.m&SQn,~n.h&PQn)}function DU(n){return typeof n===AWn||typeof n===xWn}function RU(n){return n==RQn?x7n:n==KQn?"-INF":""+n}function KU(n){return n==RQn?x7n:n==KQn?"-INF":""+n}function _U(n,t){return n>0?e.Math.log(n/t):-100}function FU(n,t){return Vhn(n,t)<0?-1:Vhn(n,t)>0?1:0}function BU(n,t,e){return SHn(n,BB(t,46),BB(e,167))}function HU(n,t){return BB(wz(lz(n.a)).Xb(t),42).cd()}function qU(n,t){return ptn(t,n.length),new BH(n,t)}function GU(n,t){this.d=n,AL.call(this,n),this.e=t}function zU(n){this.d=(kW(n),n),this.a=0,this.c=bVn}function UU(n,t){Ap.call(this,1),this.a=n,this.b=t}function XU(n,t){return n.c?XU(n.c,t):WB(n.b,t),n}function WU(n,t,e){var i;return i=dnn(n,t),r4(n,t,e),i}function VU(n,t){return m7(n.slice(0,t),n)}function QU(n,t,e){var i;for(i=0;i<t;++i)$X(n,i,e)}function YU(n,t,e,i,r){for(;t<e;)i[r++]=fV(n,t++)}function JU(n,t){return Pln(n.c.c+n.c.b,t.c.c+t.c.b)}function ZU(n,t){return null==Mon(n.a,t,(hN(),ptt))}function nX(n,t){r5(n.d,t,n.b.b,n.b),++n.a,n.c=null}function tX(n,t){J$(n,cL(t,153)?t:BB(t,1937).gl())}function eX(n,t){JT($V(n.Oc(),new Yr),new Id(t))}function iX(n,t,e,i,r){NEn(n,BB(h6(t.k,e),15),e,i,r)}function rX(n){n.s=NaN,n.c=NaN,ZOn(n,n.e),ZOn(n,n.j)}function cX(n){n.a=null,n.e=null,$U(n.b),n.d=0,++n.c}function aX(n){return e.Math.abs(n.d.e-n.e.e)-n.a}function uX(n,t,e){return BB(n.c._c(t,BB(e,133)),42)}function oX(){return ry(),Pun(Gk(Wnt,1),$Vn,538,0,[znt])}function sX(n){return MQ(),JJ(PMn(n))==JJ(OMn(n))}function hX(n){$R.call(this),this.a=n,WB(n.a,this)}function fX(n,t){this.d=Sln(n),this.c=t,this.a=.5*t}function lX(){v4.call(this),this.a=!0,this.b=!0}function bX(n){return(null==n.i&&qFn(n),n.i).length}function wX(n){return cL(n,99)&&0!=(BB(n,18).Bb&h6n)}function dX(n,t){++n.j,sTn(n,n.i,t),zIn(n,BB(t,332))}function gX(n,t){return t=n.nk(null,t),$Tn(n,null,t)}function pX(n,t){return n.hi()&&(t=nZ(n,t)),n.Wh(t)}function vX(n,t,e){var i;return Qen(e,i=mX(n,t)),i}function mX(n,t){var e;return(e=new pon).j=n,e.d=t,e}function yX(n){if(null==n)throw Hp(new gv);return n}function kX(n){return n.j||(n.j=new wl(n))}function jX(n){return n.f||(n.f=new UL(n))}function EX(n){return n.k||(n.k=new Yf(n))}function TX(n){return n.k||(n.k=new Yf(n))}function MX(n){return n.g||(n.g=new Qf(n))}function SX(n){return n.i||(n.i=new nl(n))}function PX(n){return n.d||(n.d=new il(n))}function CX(n){return yX(n),cL(n,475)?BB(n,475):Bbn(n)}function IX(n){return cL(n,607)?n:new bJ(n)}function OX(n,t){return w2(t,n.c.b.c.gc()),new sT(n,t)}function AX(n,t,e){return wWn(),new T0(n,t,e)}function $X(n,t,e){return Sx(null==e||Q_n(n,e)),n[t]=e}function LX(n,t){var e;return w2(t,e=n.a.gc()),e-1-t}function NX(n,t){return n.a+=String.fromCharCode(t),n}function xX(n,t){return n.a+=String.fromCharCode(t),n}function DX(n,t){for(kW(t);n.c<n.d;)n.ze(t,n.c++)}function RX(n,t){return XI(t)?SJ(n,t):qI(AY(n.f,t))}function KX(n,t){return MQ(),n==PMn(t)?OMn(t):PMn(t)}function _X(n,t){nW(n,new GX(null!=t.f?t.f:""+t.g))}function FX(n,t){nW(n,new GX(null!=t.f?t.f:""+t.g))}function BX(n){this.b=new Np,this.a=new Np,this.c=n}function HX(n){this.c=new Gj,this.a=new Np,this.b=n}function qX(n){$R.call(this),this.a=new Gj,this.c=n}function GX(n){if(null==n)throw Hp(new gv);this.a=n}function zX(n){Mv(),this.b=new Np,this.a=n,vGn(this,n)}function UX(n){this.c=n,this.a=new YT,this.b=new YT}function XX(){XX=O,ott=new Ml(!1),stt=new Ml(!0)}function WX(){WX=O,s_(),Fnt=new SY((SQ(),SQ(),set))}function VX(){VX=O,s_(),Vnt=new vS((SQ(),SQ(),fet))}function QX(){QX=O,t$t=GIn(),gWn(),i$t&&Rkn()}function YX(n,t){return Irn(),BB(oV(n,t.d),15).Fc(t)}function JX(n,t,e,i){return 0==e||(e-i)/e<n.e||t>=n.g}function ZX(n,t,e){return NRn(n,yrn(n,t,e))}function nW(n,t){var e;dnn(n,e=n.a.length),r4(n,e,t)}function tW(n,t){console[n].call(console,t)}function eW(n,t){var e;++n.j,e=n.Vi(),n.Ii(n.oi(e,t))}function iW(n,t,e){BB(t.b,65),Otn(t.a,new EB(n,e,t))}function rW(n,t,e){jp.call(this,t),this.a=n,this.b=e}function cW(n,t,e){Ap.call(this,n),this.a=t,this.b=e}function aW(n,t,e){this.a=n,kp.call(this,t),this.b=e}function uW(n,t,e){this.a=n,H2.call(this,8,t,null,e)}function oW(n){this.a=(kW(_9n),_9n),this.b=n,new Nm}function sW(n){this.c=n,this.b=this.c.a,this.a=this.c.e}function hW(n){this.c=n,this.b=n.a.d.a,bD(n.a.e,this)}function fW(n){Mx(-1!=n.c),n.d.$c(n.c),n.b=n.c,n.c=-1}function lW(n){return e.Math.sqrt(n.a*n.a+n.b*n.b)}function bW(n,t){return Kz(t,n.a.c.length),xq(n.a,t)}function wW(n,t){return GI(n)===GI(t)||null!=n&&Nfn(n,t)}function dW(n){return 0>=n?new VT:Win(n-1)}function gW(n){return!!SNt&&eY(SNt,n)}function pW(n){return n?n.dc():!n.Kc().Ob()}function vW(n){return!n.a&&n.c?n.c.b:n.a}function mW(n){return!n.a&&(n.a=new $L(LOt,n,4)),n.a}function yW(n){return!n.d&&(n.d=new $L(VAt,n,1)),n.d}function kW(n){if(null==n)throw Hp(new gv);return n}function jW(n){n.c?n.c.He():(n.d=!0,QNn(n))}function EW(n){n.c?EW(n.c):(Qln(n),n.d=!0)}function TW(n){TV(n.a),n.b=x8(Ant,HWn,1,n.b.length,5,1)}function MW(n,t){return E$(t.j.c.length,n.j.c.length)}function SW(n,t){n.c<0||n.b.b<n.c?fO(n.b,t):n.a._e(t)}function PW(n,t){var e;(e=n.Yg(t))>=0?n.Bh(e):cIn(n,t)}function CW(n){return n.c.i.c==n.d.i.c}function IW(n){if(4!=n.p)throw Hp(new dv);return n.e}function OW(n){if(3!=n.p)throw Hp(new dv);return n.e}function AW(n){if(6!=n.p)throw Hp(new dv);return n.f}function $W(n){if(6!=n.p)throw Hp(new dv);return n.k}function LW(n){if(3!=n.p)throw Hp(new dv);return n.j}function NW(n){if(4!=n.p)throw Hp(new dv);return n.j}function xW(n){return!n.b&&(n.b=new Tp(new xm)),n.b}function DW(n){return-2==n.c&&gb(n,uMn(n.g,n.b)),n.c}function RW(n,t){var e;return(e=mX("",n)).n=t,e.i=1,e}function KW(n,t){LG(BB(t.b,65),n),Otn(t.a,new Aw(n))}function _W(n,t){f9((!n.a&&(n.a=new oR(n,n)),n.a),t)}function FW(n,t){this.b=n,GU.call(this,n,t),ML(this)}function BW(n,t){this.b=n,RK.call(this,n,t),SL(this)}function HW(n,t,e,i){vT.call(this,n,t),this.d=e,this.a=i}function qW(n,t,e,i){vT.call(this,n,e),this.a=t,this.f=i}function GW(n,t){W$.call(this,Vin(yX(n),yX(t))),this.a=t}function zW(){dMn.call(this,S7n,(rE(),dLt)),Wqn(this)}function UW(){dMn.call(this,V9n,(iE(),n$t)),OHn(this)}function XW(){gT.call(this,"DELAUNAY_TRIANGULATION",0)}function WW(n){return String.fromCharCode.apply(null,n)}function VW(n,t,e){return XI(t)?mZ(n,t,e):jCn(n.f,t,e)}function QW(n){return SQ(),n?n.ve():(PQ(),PQ(),get)}function YW(n,t,e){return Nun(),e.pg(n,BB(t.cd(),146))}function JW(n,t){return nq(),new svn(new rN(n),new iN(t))}function ZW(n){return lin(n,NVn),ttn(rbn(rbn(5,n),n/10|0))}function nV(){nV=O,Bnt=new hy(Pun(Gk(Hnt,1),kVn,42,0,[]))}function tV(n){return!n.d&&(n.d=new Hb(n.c.Cc())),n.d}function eV(n){return!n.a&&(n.a=new Lk(n.c.vc())),n.a}function iV(n){return!n.b&&(n.b=new Ak(n.c.ec())),n.b}function rV(n,t){for(;t-- >0;)n=n<<1|(n<0?1:0);return n}function cV(n,t){return GI(n)===GI(t)||null!=n&&Nfn(n,t)}function aV(n,t){return hN(),BB(t.b,19).a<n}function uV(n,t){return hN(),BB(t.a,19).a<n}function oV(n,t){return CG(n.a,t)?n.b[BB(t,22).g]:null}function sV(n,t,e,i){n.a=fx(n.a,0,t)+""+i+nO(n.a,e)}function hV(n,t){n.u.Hc((lIn(),eIt))&&PIn(n,t),z6(n,t)}function fV(n,t){return b1(t,n.length),n.charCodeAt(t)}function lV(){dy.call(this,"There is no more element.")}function bV(n){this.d=n,this.a=this.d.b,this.b=this.d.c}function wV(n){n.b=!1,n.c=!1,n.d=!1,n.a=!1}function dV(n,t,e,i){return Rcn(n,t,e,!1),Zfn(n,i),n}function gV(n){return n.j.c=x8(Ant,HWn,1,0,5,1),n.a=-1,n}function pV(n){return!n.c&&(n.c=new hK(KOt,n,5,8)),n.c}function vV(n){return!n.b&&(n.b=new hK(KOt,n,4,7)),n.b}function mV(n){return!n.n&&(n.n=new eU(zOt,n,1,7)),n.n}function yV(n){return!n.c&&(n.c=new eU(XOt,n,9,9)),n.c}function kV(n){return n.e==C7n&&vb(n,Tgn(n.g,n.b)),n.e}function jV(n){return n.f==C7n&&mb(n,pkn(n.g,n.b)),n.f}function EV(n){var t;return!(t=n.b)&&(n.b=t=new Jf(n)),t}function TV(n){var t;for(t=n.Kc();t.Ob();)t.Pb(),t.Qb()}function MV(n){if(zbn(n.d),n.d.d!=n.c)throw Hp(new vv)}function SV(n,t){this.b=n,this.c=t,this.a=new QT(this.b)}function PV(n,t,e){this.a=XVn,this.d=n,this.b=t,this.c=e}function CV(n,t){this.d=(kW(n),n),this.a=16449,this.c=t}function IV(n,t){Jln(n,Gy(Ren(t,"x")),Gy(Ren(t,"y")))}function OV(n,t){Jln(n,Gy(Ren(t,"x")),Gy(Ren(t,"y")))}function AV(n,t){return Qln(n),new Rq(n,new Q9(t,n.a))}function $V(n,t){return Qln(n),new Rq(n,new M6(t,n.a))}function LV(n,t){return Qln(n),new AD(n,new E6(t,n.a))}function NV(n,t){return Qln(n),new $D(n,new T6(t,n.a))}function xV(n,t){return new pY(BB(yX(n),62),BB(yX(t),62))}function DV(n,t){return jM(),Pln((kW(n),n),(kW(t),t))}function RV(){return wM(),Pun(Gk(Pct,1),$Vn,481,0,[rct])}function KV(){return CM(),Pun(Gk(YEt,1),$Vn,482,0,[XEt])}function _V(){return IM(),Pun(Gk(tTt,1),$Vn,551,0,[QEt])}function FV(){return OM(),Pun(Gk(VTt,1),$Vn,530,0,[GTt])}function BV(n){this.a=new Np,this.e=x8(ANt,sVn,48,n,0,2)}function HV(n,t,e,i){this.a=n,this.e=t,this.d=e,this.c=i}function qV(n,t,e,i){this.a=n,this.c=t,this.b=e,this.d=i}function GV(n,t,e,i){this.c=n,this.b=t,this.a=e,this.d=i}function zV(n,t,e,i){this.c=n,this.b=t,this.d=e,this.a=i}function UV(n,t,e,i){this.c=n,this.d=t,this.b=e,this.a=i}function XV(n,t,e,i){this.a=n,this.d=t,this.c=e,this.b=i}function WV(n,t,e,i){gT.call(this,n,t),this.a=e,this.b=i}function VV(n,t,e,i){this.a=n,this.c=t,this.d=e,this.b=i}function QV(n,t,e){EHn(n.a,e),nun(e),AAn(n.b,e),rqn(t,e)}function YV(n,t,e){var i;return i=$Un(n),t.Kh(e,i)}function JV(n,t){var e,i;return(e=n/t)>(i=CJ(e))&&++i,i}function ZV(n){var t;return cen(t=new Kp,n),t}function nQ(n){var t;return DMn(t=new Kp,n),t}function tQ(n,t){return Kcn(t,RX(n.f,t)),null}function eQ(n){return Yin(n)||null}function iQ(n){return!n.b&&(n.b=new eU(_Ot,n,12,3)),n.b}function rQ(n){return null!=n&&xT(jAt,n.toLowerCase())}function cQ(n,t){return Pln(iG(n)*eG(n),iG(t)*eG(t))}function aQ(n,t){return Pln(iG(n)*eG(n),iG(t)*eG(t))}function uQ(n,t){return Pln(n.d.c+n.d.b/2,t.d.c+t.d.b/2)}function oQ(n,t){return Pln(n.g.c+n.g.b/2,t.g.c+t.g.b/2)}function sQ(n,t,e){e.a?Cen(n,t.b-n.f/2):Pen(n,t.a-n.g/2)}function hQ(n,t,e,i){this.a=n,this.b=t,this.c=e,this.d=i}function fQ(n,t,e,i){this.a=n,this.b=t,this.c=e,this.d=i}function lQ(n,t,e,i){this.e=n,this.a=t,this.c=e,this.d=i}function bQ(n,t,e,i){this.a=n,this.c=t,this.d=e,this.b=i}function wQ(n,t,e,i){f$(),e6.call(this,t,e,i),this.a=n}function dQ(n,t,e,i){f$(),e6.call(this,t,e,i),this.a=n}function gQ(n,t){this.a=n,OD.call(this,n,BB(n.d,15).Zc(t))}function pQ(n){this.f=n,this.c=this.f.e,n.f>0&&ujn(this)}function vQ(n,t,e,i){this.b=n,this.c=i,vO.call(this,t,e)}function mQ(n){return Px(n.b<n.d.gc()),n.d.Xb(n.c=n.b++)}function yQ(n){n.a.a=n.c,n.c.b=n.a,n.a.b=n.c.a=null,n.b=0}function kQ(n,t){return n.b=t.b,n.c=t.c,n.d=t.d,n.a=t.a,n}function jQ(n){return n.n&&(n.e!==FVn&&n._d(),n.j=null),n}function EQ(n){return JH(null==n||DU(n)&&!(n.im===I)),n}function TQ(n){this.b=new Np,gun(this.b,this.b),this.a=n}function MQ(){MQ=O,Sct=new Np,Mct=new xp,Tct=new Np}function SQ(){SQ=O,set=new S,het=new C,fet=new M}function PQ(){PQ=O,wet=new R,det=new R,get=new K}function CQ(){CQ=O,hit=new gn,lit=new RG,fit=new pn}function IQ(){256==ait&&(iit=rit,rit=new r,ait=0),++ait}function OQ(n){return n.f||(n.f=new pT(n,n.c))}function AQ(n){return QIn(n)&&qy(TD(ZAn(n,(HXn(),dgt))))}function $Q(n,t){return JIn(n,BB(mMn(t,(HXn(),Wgt)),19),t)}function LQ(n,t){return Tfn(n.j,t.s,t.c)+Tfn(t.e,n.s,n.c)}function NQ(n,t){n.e&&!n.e.a&&(Fp(n.e,t),NQ(n.e,t))}function xQ(n,t){n.d&&!n.d.a&&(Fp(n.d,t),xQ(n.d,t))}function DQ(n,t){return-Pln(iG(n)*eG(n),iG(t)*eG(t))}function RQ(n){return BB(n.cd(),146).tg()+":"+Bbn(n.dd())}function KQ(n){var t;G_(),(t=BB(n.g,10)).n.a=n.d.c+t.d.b}function _Q(n,t,e){return MM(),xbn(BB(RX(n.e,t),522),e)}function FQ(n,t){return tsn(n),tsn(t),Py(BB(n,22),BB(t,22))}function BQ(n,t,e){n.i=0,n.e=0,t!=e&&Xon(n,t,e)}function HQ(n,t,e){n.i=0,n.e=0,t!=e&&Won(n,t,e)}function qQ(n,t,e){rtn(n,t,new Sl(XK(e)))}function GQ(n,t,e,i,r,c){j9.call(this,n,t,e,i,r,c?-2:-1)}function zQ(n,t,e,i){LI.call(this,t,e),this.b=n,this.a=i}function UQ(n,t){new YT,this.a=new km,this.b=n,this.c=t}function XQ(n,t){return BB(mMn(n,(hWn(),clt)),15).Fc(t),t}function WQ(n,t){if(null==n)throw Hp(new Hy(t));return n}function VQ(n){return!n.q&&(n.q=new eU(QAt,n,11,10)),n.q}function QQ(n){return!n.s&&(n.s=new eU(FAt,n,21,17)),n.s}function YQ(n){return!n.a&&(n.a=new eU(UOt,n,10,11)),n.a}function JQ(n){return cL(n,14)?new $q(BB(n,14)):qB(n.Kc())}function ZQ(n){return new qL(n,n.e.Hd().gc()*n.c.Hd().gc())}function nY(n){return new GL(n,n.e.Hd().gc()*n.c.Hd().gc())}function tY(n){return n&&n.hashCode?n.hashCode():PN(n)}function eY(n,t){return null==t?!!AY(n.f,null):MG(n.g,t)}function iY(n){return yX(n),emn(new oz(ZL(n.a.Kc(),new h)))}function rY(n){return SQ(),cL(n,54)?new $k(n):new bN(n)}function cY(n,t,e){return!!n.f&&n.f.Ne(t,e)}function aY(n,t){return n.a=fx(n.a,0,t)+""+nO(n.a,t+1),n}function uY(n,t){var e;return(e=eL(n.a,t))&&(t.d=null),e}function oY(n){var t,e;t=0|(e=n).$modCount,e.$modCount=t+1}function sY(n){this.b=n,this.c=n,n.e=null,n.c=null,this.a=1}function hY(n){this.b=n,this.a=new dE(BB(yX(new tt),62))}function fY(n){this.c=n,this.b=new dE(BB(yX(new vn),62))}function lY(n){this.c=n,this.b=new dE(BB(yX(new It),62))}function bY(){this.a=new Qv,this.b=new hm,this.d=new Dt}function wY(){this.a=new km,this.b=(lin(3,AVn),new J6(3))}function dY(){this.b=new Rv,this.d=new YT,this.e=new om}function gY(n){this.c=n.c,this.d=n.d,this.b=n.b,this.a=n.a}function pY(n,t){zm.call(this,new Wz(n)),this.a=n,this.b=t}function vY(){iSn(this,new Rf),this.wb=(QX(),t$t),iE()}function mY(n){OTn(n,"No crossing minimization",1),HSn(n)}function yY(n){Dk(),e.setTimeout((function(){throw n}),0)}function kY(n){return n.u||(P5(n),n.u=new uR(n,n)),n.u}function jY(n){return BB(yan(n,16),26)||n.zh()}function EY(n,t){return cL(t,146)&&mK(n.b,BB(t,146).tg())}function TY(n,t){return n.a?t.Wg().Kc():BB(t.Wg(),69).Zh()}function MY(n){return n.k==(uSn(),Cut)&&Lx(n,(hWn(),zft))}function SY(n){this.a=(SQ(),cL(n,54)?new $k(n):new bN(n))}function PY(){var n,t;PY=O,t=!Ddn(),n=new d,ett=t?new E:n}function CY(n,t){var e;return e=nE(n.gm),null==t?e:e+": "+t}function IY(n,t){var e;return j4(e=n.b.Qc(t),n.b.gc()),e}function OY(n,t){if(null==n)throw Hp(new Hy(t));return n}function AY(n,t){return hhn(n,t,pZ(n,null==t?0:n.b.se(t)))}function $Y(n,t,e){return e>=0&&mK(n.substr(e,t.length),t)}function LY(n,t,e,i,r,c,a){return new b4(n.e,t,e,i,r,c,a)}function NY(n,t,e,i,r,c){this.a=n,kin.call(this,t,e,i,r,c)}function xY(n,t,e,i,r,c){this.a=n,kin.call(this,t,e,i,r,c)}function DY(n,t){this.g=n,this.d=Pun(Gk(Out,1),a1n,10,0,[t])}function RY(n,t){this.e=n,this.a=Ant,this.b=ARn(t),this.c=t}function KY(n,t){NR.call(this),xtn(this),this.a=n,this.c=t}function _Y(n,t,e,i){$X(n.c[t.g],e.g,i),$X(n.c[e.g],t.g,i)}function FY(n,t,e,i){$X(n.c[t.g],t.g,e),$X(n.b[t.g],t.g,i)}function BY(){return A6(),Pun(Gk(cmt,1),$Vn,376,0,[Zvt,Jvt])}function HY(){return g7(),Pun(Gk(Zht,1),$Vn,479,0,[Ght,qht])}function qY(){return _nn(),Pun(Gk(Lht,1),$Vn,419,0,[Sht,Pht])}function GY(){return V8(),Pun(Gk(lht,1),$Vn,422,0,[cht,aht])}function zY(){return z2(),Pun(Gk(Glt,1),$Vn,420,0,[Aft,$ft])}function UY(){return U7(),Pun(Gk(zvt,1),$Vn,421,0,[Kvt,_vt])}function XY(){return Q4(),Pun(Gk(Vmt,1),$Vn,523,0,[Hmt,Bmt])}function WY(){return O6(),Pun(Gk(xyt,1),$Vn,520,0,[Myt,Tyt])}function VY(){return gJ(),Pun(Gk(ayt,1),$Vn,516,0,[tyt,nyt])}function QY(){return oZ(),Pun(Gk(Syt,1),$Vn,515,0,[ryt,cyt])}function YY(){return dJ(),Pun(Gk(Byt,1),$Vn,455,0,[Lyt,Nyt])}function JY(){return B0(),Pun(Gk(Jkt,1),$Vn,425,0,[Hkt,Bkt])}function ZY(){return sZ(),Pun(Gk(qkt,1),$Vn,480,0,[Rkt,Kkt])}function nJ(){return Prn(),Pun(Gk(ijt,1),$Vn,495,0,[Qkt,Ykt])}function tJ(){return D9(),Pun(Gk(ljt,1),$Vn,426,0,[cjt,ajt])}function eJ(){return Lun(),Pun(Gk(YTt,1),$Vn,429,0,[WTt,XTt])}function iJ(){return $6(),Pun(Gk(oTt,1),$Vn,430,0,[nTt,ZEt])}function rJ(){return hpn(),Pun(Gk(yit,1),$Vn,428,0,[dit,wit])}function cJ(){return Rnn(),Pun(Gk(Kit,1),$Vn,427,0,[vit,mit])}function aJ(){return Knn(),Pun(Gk($at,1),$Vn,424,0,[Dct,Rct])}function uJ(){return Srn(),Pun(Gk(Wut,1),$Vn,511,0,[qut,Hut])}function oJ(n,t,e,i){return e>=0?n.jh(t,e,i):n.Sg(null,e,i)}function sJ(n){return 0==n.b.b?n.a.$e():dH(n.b)}function hJ(n){if(5!=n.p)throw Hp(new dv);return dG(n.f)}function fJ(n){if(5!=n.p)throw Hp(new dv);return dG(n.k)}function lJ(n){return GI(n.a)===GI((wcn(),I$t))&&Rqn(n),n.a}function bJ(n){this.a=BB(yX(n),271),this.b=(SQ(),new dN(n))}function wJ(n,t){Zl(this,new xC(n.a,n.b)),nb(this,zB(t))}function dJ(){dJ=O,Lyt=new oC(cJn,0),Nyt=new oC(aJn,1)}function gJ(){gJ=O,tyt=new cC(aJn,0),nyt=new cC(cJn,1)}function pJ(){ay.call(this,new XT(etn(12))),aN(!0),this.a=2}function vJ(n,t,e){wWn(),Ap.call(this,n),this.b=t,this.a=e}function mJ(n,t,e){f$(),jp.call(this,t),this.a=n,this.b=e}function yJ(n){NR.call(this),xtn(this),this.a=n,this.c=!0}function kJ(n){var t;t=n.c.d.b,n.b=t,n.a=n.c.d,t.a=n.c.d.b=n}function jJ(n){pin(n.a),RA(n.a),twn(new Pw(n.a))}function EJ(n,t){oRn(n,!0),Otn(n.e.wf(),new $_(n,!0,t))}function TJ(n,t){return c4(t),Yen(n,x8(ANt,hQn,25,t,15,1),t)}function MJ(n,t){return MQ(),n==JJ(PMn(t))||n==JJ(OMn(t))}function SJ(n,t){return null==t?qI(AY(n.f,null)):hS(n.g,t)}function PJ(n){return 0==n.b?null:(Px(0!=n.b),Atn(n,n.a.a))}function CJ(n){return 0|Math.max(Math.min(n,DWn),-2147483648)}function IJ(n,t){var e=Znt[n.charCodeAt(0)];return null==e?n:e}function OJ(n,t){return WQ(n,"set1"),WQ(t,"set2"),new ET(n,t)}function AJ(n,t){return UR(qx(nen(n.f,t)),n.f.d)}function $J(n,t){var e;return YGn(n,t,e=new q),e.d}function LJ(n,t,e,i){var r;r=new FR,t.a[e.g]=r,mG(n.b,i,r)}function NJ(n,t,e){var i;(i=n.Yg(t))>=0?n.sh(i,e):TLn(n,t,e)}function xJ(n,t,e){hZ(),n&&VW(fAt,n,t),n&&VW(hAt,n,e)}function DJ(n,t,e){this.i=new Np,this.b=n,this.g=t,this.a=e}function RJ(n,t,e){this.c=new Np,this.e=n,this.f=t,this.b=e}function KJ(n,t,e){this.a=new Np,this.e=n,this.f=t,this.c=e}function _J(n,t){V$(this),this.f=t,this.g=n,jQ(this),this._d()}function FJ(n,t){var e;e=n.q.getHours(),n.q.setDate(t),lBn(n,e)}function BJ(n,t){var e;for(yX(t),e=n.a;e;e=e.c)t.Od(e.g,e.i)}function HJ(n){var t;return $on(t=new bE(etn(n.length)),n),t}function qJ(n){function t(){}return t.prototype=n||{},new t}function GJ(n,t){return!!wun(n,t)&&(ein(n),!0)}function zJ(n,t){if(null==t)throw Hp(new gv);return ugn(n,t)}function UJ(n){if(n.qe())return null;var t=n.n;return SWn[t]}function XJ(n){return n.Db>>16!=3?null:BB(n.Cb,33)}function WJ(n){return n.Db>>16!=9?null:BB(n.Cb,33)}function VJ(n){return n.Db>>16!=6?null:BB(n.Cb,79)}function QJ(n){return n.Db>>16!=7?null:BB(n.Cb,235)}function YJ(n){return n.Db>>16!=7?null:BB(n.Cb,160)}function JJ(n){return n.Db>>16!=11?null:BB(n.Cb,33)}function ZJ(n,t){var e;return(e=n.Yg(t))>=0?n.lh(e):qIn(n,t)}function nZ(n,t){var e;return oMn(e=new Lq(t),n),new t_(e)}function tZ(n){var t;return t=n.d,t=n.si(n.f),f9(n,t),t.Ob()}function eZ(n,t){return n.b+=t.b,n.c+=t.c,n.d+=t.d,n.a+=t.a,n}function iZ(n,t){return e.Math.abs(n)<e.Math.abs(t)?n:t}function rZ(n){return!n.a&&(n.a=new eU(UOt,n,10,11)),n.a.i>0}function cZ(){this.a=new fA,this.e=new Rv,this.g=0,this.i=0}function aZ(n){this.a=n,this.b=x8(_mt,sVn,1944,n.e.length,0,2)}function uZ(n,t,e){var i;i=Non(n,t,e),n.b=new mrn(i.c.length)}function oZ(){oZ=O,ryt=new rC(pJn,0),cyt=new rC("UP",1)}function sZ(){sZ=O,Rkt=new bC(U3n,0),Kkt=new bC("FAN",1)}function hZ(){hZ=O,fAt=new xp,hAt=new xp,FI(yet,new wo)}function fZ(n){if(0!=n.p)throw Hp(new dv);return JI(n.f,0)}function lZ(n){if(0!=n.p)throw Hp(new dv);return JI(n.k,0)}function bZ(n){return n.Db>>16!=3?null:BB(n.Cb,147)}function wZ(n){return n.Db>>16!=6?null:BB(n.Cb,235)}function dZ(n){return n.Db>>16!=17?null:BB(n.Cb,26)}function gZ(n,t){var e=n.a=n.a||[];return e[t]||(e[t]=n.le(t))}function pZ(n,t){var e;return null==(e=n.a.get(t))?new Array:e}function vZ(n,t){var e;e=n.q.getHours(),n.q.setMonth(t),lBn(n,e)}function mZ(n,t,e){return null==t?jCn(n.f,null,e):ubn(n.g,t,e)}function yZ(n,t,e,i,r,c){return new N7(n.e,t,n.aj(),e,i,r,c)}function kZ(n,t,e){return n.a=fx(n.a,0,t)+""+e+nO(n.a,t),n}function jZ(n,t,e){return WB(n.a,(nV(),zvn(t,e),new vT(t,e))),n}function EZ(n){return oN(n.c),n.e=n.a=n.c,n.c=n.c.c,++n.d,n.a.f}function TZ(n){return oN(n.e),n.c=n.a=n.e,n.e=n.e.e,--n.d,n.a.f}function MZ(n,t){n.d&&y7(n.d.e,n),n.d=t,n.d&&WB(n.d.e,n)}function SZ(n,t){n.c&&y7(n.c.g,n),n.c=t,n.c&&WB(n.c.g,n)}function PZ(n,t){n.c&&y7(n.c.a,n),n.c=t,n.c&&WB(n.c.a,n)}function CZ(n,t){n.i&&y7(n.i.j,n),n.i=t,n.i&&WB(n.i.j,n)}function IZ(n,t,e){this.a=t,this.c=n,this.b=(yX(e),new t_(e))}function OZ(n,t,e){this.a=t,this.c=n,this.b=(yX(e),new t_(e))}function AZ(n,t){this.a=n,this.c=B$(this.a),this.b=new gY(t)}function $Z(n){return Qln(n),AV(n,new vw(new Rv))}function LZ(n,t){if(n<0||n>t)throw Hp(new Ay(jYn+n+EYn+t))}function NZ(n,t){return IG(n.a,t)?EU(n,BB(t,22).g,null):null}function xZ(n){return Shn(),hN(),0!=BB(n.a,81).d.e}function DZ(){DZ=O,Xnt=lhn((ry(),Pun(Gk(Wnt,1),$Vn,538,0,[znt])))}function RZ(){RZ=O,pmt=WG(new B2,(yMn(),Bat),(lWn(),qot))}function KZ(){KZ=O,vmt=WG(new B2,(yMn(),Bat),(lWn(),qot))}function _Z(){_Z=O,ymt=WG(new B2,(yMn(),Bat),(lWn(),qot))}function FZ(){FZ=O,zmt=dq(new B2,(yMn(),Bat),(lWn(),dot))}function BZ(){BZ=O,Qmt=dq(new B2,(yMn(),Bat),(lWn(),dot))}function HZ(){HZ=O,Zmt=dq(new B2,(yMn(),Bat),(lWn(),dot))}function qZ(){qZ=O,oyt=dq(new B2,(yMn(),Bat),(lWn(),dot))}function GZ(){GZ=O,zkt=WG(new B2,(zyn(),Fyt),(DPn(),zyt))}function zZ(n,t,e,i){this.c=n,this.d=i,WZ(this,t),VZ(this,e)}function UZ(n){this.c=new YT,this.b=n.b,this.d=n.c,this.a=n.a}function XZ(n){this.a=e.Math.cos(n),this.b=e.Math.sin(n)}function WZ(n,t){n.a&&y7(n.a.k,n),n.a=t,n.a&&WB(n.a.k,n)}function VZ(n,t){n.b&&y7(n.b.f,n),n.b=t,n.b&&WB(n.b.f,n)}function QZ(n,t){iW(n,n.b,n.c),BB(n.b.b,65),t&&BB(t.b,65).b}function YZ(n,t){zln(n,t),cL(n.Cb,88)&&ACn(P5(BB(n.Cb,88)),2)}function JZ(n,t){cL(n.Cb,88)&&ACn(P5(BB(n.Cb,88)),4),Nrn(n,t)}function ZZ(n,t){cL(n.Cb,179)&&(BB(n.Cb,179).tb=null),Nrn(n,t)}function n1(n,t){return ZM(),hnn(t)?new lq(t,n):new xI(t,n)}function t1(n,t){null!=t.c&&nW(n,new GX(t.c))}function e1(n){var t;return iE(),cen(t=new Kp,n),t}function i1(n){var t;return iE(),cen(t=new Kp,n),t}function r1(n,t){var e;return e=new HX(n),t.c[t.c.length]=e,e}function c1(n,t){var e;return(e=BB(lfn(OQ(n.a),t),14))?e.gc():0}function a1(n){return Qln(n),PQ(),PQ(),ytn(n,det)}function u1(n){for(var t;;)if(t=n.Pb(),!n.Ob())return t}function o1(n,t){Um.call(this,new XT(etn(n))),lin(t,oVn),this.a=t}function s1(n,t,e){Hfn(t,e,n.gc()),this.c=n,this.a=t,this.b=e-t}function h1(n,t,e){var i;Hfn(t,e,n.c.length),i=e-t,PE(n.c,t,i)}function f1(n,t){hL(n,dG(e0(kz(t,24),sYn)),dG(e0(t,sYn)))}function l1(n,t){if(n<0||n>=t)throw Hp(new Ay(jYn+n+EYn+t))}function b1(n,t){if(n<0||n>=t)throw Hp(new Ok(jYn+n+EYn+t))}function w1(n,t){this.b=(kW(n),n),this.a=0==(t&_Qn)?64|t|hVn:t}function d1(n){DA(this),Pv(this.a,kon(e.Math.max(8,n))<<1)}function g1(n){return Aon(Pun(Gk(PMt,1),sVn,8,0,[n.i.n,n.n,n.a]))}function p1(){return qsn(),Pun(Gk(nit,1),$Vn,132,0,[zet,Uet,Xet])}function v1(){return Dtn(),Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])}function m1(){return J9(),Pun(Gk(ert,1),$Vn,461,0,[Yit,Qit,Jit])}function y1(){return G7(),Pun(Gk(Ort,1),$Vn,462,0,[crt,rrt,irt])}function k1(){return Bfn(),Pun(Gk(mut,1),$Vn,423,0,[wut,but,lut])}function j1(){return q7(),Pun(Gk(Hat,1),$Vn,379,0,[Oat,Iat,Aat])}function E1(){return Mhn(),Pun(Gk(wvt,1),$Vn,378,0,[cvt,avt,uvt])}function T1(){return Oin(),Pun(Gk(pht,1),$Vn,314,0,[hht,sht,fht])}function M1(){return uin(),Pun(Gk(Tht,1),$Vn,337,0,[wht,ght,dht])}function S1(){return Jun(),Pun(Gk(Bht,1),$Vn,450,0,[Aht,Oht,$ht])}function P1(){return Crn(),Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])}function C1(){return z7(),Pun(Gk(Lft,1),$Vn,303,0,[Pft,Cft,Sft])}function I1(){return Kan(),Pun(Gk(Ift,1),$Vn,292,0,[jft,Eft,kft])}function O1(){return ain(),Pun(Gk(Qvt,1),$Vn,452,0,[Gvt,Hvt,qvt])}function A1(){return mon(),Pun(Gk(Fvt,1),$Vn,339,0,[Nvt,Lvt,xvt])}function $1(){return Hcn(),Pun(Gk(nmt,1),$Vn,375,0,[Xvt,Wvt,Vvt])}function L1(){return $un(),Pun(Gk(Smt,1),$Vn,377,0,[bmt,wmt,lmt])}function N1(){return Usn(),Pun(Gk(hmt,1),$Vn,336,0,[emt,imt,rmt])}function x1(){return dcn(),Pun(Gk(dmt,1),$Vn,338,0,[smt,umt,omt])}function D1(){return oin(),Pun(Gk(xmt,1),$Vn,454,0,[Omt,Amt,$mt])}function R1(){return Cbn(),Pun(Gk(ujt,1),$Vn,442,0,[ejt,njt,tjt])}function K1(){return Hsn(),Pun(Gk(Gjt,1),$Vn,380,0,[sjt,hjt,fjt])}function _1(){return Sbn(),Pun(Gk(NEt,1),$Vn,381,0,[Zjt,nEt,Jjt])}function F1(){return Bcn(),Pun(Gk(Yjt,1),$Vn,293,0,[Xjt,Wjt,Ujt])}function B1(){return Pbn(),Pun(Gk(WEt,1),$Vn,437,0,[HEt,qEt,GEt])}function H1(){return ufn(),Pun(Gk(SCt,1),$Vn,334,0,[vCt,pCt,mCt])}function q1(){return Rtn(),Pun(Gk(nCt,1),$Vn,272,0,[zPt,UPt,XPt])}function G1(n,t){return k$n(n,t,cL(t,99)&&0!=(BB(t,18).Bb&BQn))}function z1(n,t,e){var i;return(i=cHn(n,t,!1)).b<=t&&i.a<=e}function U1(n,t,e){var i;(i=new ca).b=t,i.a=e,++t.b,WB(n.d,i)}function X1(n,t){var e;return Tx(!!(e=(kW(n),n).g)),kW(t),e(t)}function W1(n,t){var e,i;return i=pU(n,t),e=n.a.Zc(i),new kT(n,e)}function V1(n){return n.Db>>16!=6?null:BB(cAn(n),235)}function Q1(n){if(2!=n.p)throw Hp(new dv);return dG(n.f)&QVn}function Y1(n){if(2!=n.p)throw Hp(new dv);return dG(n.k)&QVn}function J1(n){return n.a==(R5(),eLt)&&db(n,eLn(n.g,n.b)),n.a}function Z1(n){return n.d==(R5(),eLt)&&pb(n,NKn(n.g,n.b)),n.d}function n0(n){return Px(n.a<n.c.c.length),n.b=n.a++,n.c.c[n.b]}function t0(n,t){n.b=n.b|t.b,n.c=n.c|t.c,n.d=n.d|t.d,n.a=n.a|t.a}function e0(n,t){return uan(Sz(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function i0(n,t){return uan(Pz(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function r0(n,t){return uan(Cz(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function c0(n){return rbn(yz(fan(H$n(n,32)),32),fan(H$n(n,32)))}function a0(n){return yX(n),cL(n,14)?new t_(BB(n,14)):HB(n.Kc())}function u0(n,t){return Dnn(),n.c==t.c?Pln(t.d,n.d):Pln(n.c,t.c)}function o0(n,t){return Dnn(),n.c==t.c?Pln(n.d,t.d):Pln(n.c,t.c)}function s0(n,t){return Dnn(),n.c==t.c?Pln(n.d,t.d):Pln(t.c,n.c)}function h0(n,t){return Dnn(),n.c==t.c?Pln(t.d,n.d):Pln(t.c,n.c)}function f0(n,t){var e;e=Gy(MD(n.a.We((sWn(),OPt)))),VUn(n,t,e)}function l0(n,t){var e;e=BB(RX(n.g,t),57),Otn(t.d,new oP(n,e))}function b0(n,t){var e,i;return(e=oyn(n))<(i=oyn(t))?-1:e>i?1:0}function w0(n,t){var e;return e=S7(t),BB(RX(n.c,e),19).a}function d0(n,t){var e;for(e=n+"";e.length<t;)e="0"+e;return e}function g0(n){return null==n.c||0==n.c.length?"n_"+n.g:"n_"+n.c}function p0(n){return null==n.c||0==n.c.length?"n_"+n.b:"n_"+n.c}function v0(n,t){return n&&n.equals?n.equals(t):GI(n)===GI(t)}function m0(n,t){return 0==t?!!n.o&&0!=n.o.f:vpn(n,t)}function y0(n,t,e){var i;n.n&&t&&e&&(i=new Zu,WB(n.e,i))}function k0(n,t,e){var i;i=n.d[t.p],n.d[t.p]=n.d[e.p],n.d[e.p]=i}function j0(n,t,e){this.d=n,this.j=t,this.e=e,this.o=-1,this.p=3}function E0(n,t,e){this.d=n,this.k=t,this.f=e,this.o=-1,this.p=5}function T0(n,t,e){Ap.call(this,25),this.b=n,this.a=t,this.c=e}function M0(n){wWn(),Ap.call(this,n),this.c=!1,this.a=!1}function S0(n,t,e,i,r,c){Hen.call(this,n,t,e,i,r),c&&(this.o=-2)}function P0(n,t,e,i,r,c){qen.call(this,n,t,e,i,r),c&&(this.o=-2)}function C0(n,t,e,i,r,c){J5.call(this,n,t,e,i,r),c&&(this.o=-2)}function I0(n,t,e,i,r,c){Uen.call(this,n,t,e,i,r),c&&(this.o=-2)}function O0(n,t,e,i,r,c){Z5.call(this,n,t,e,i,r),c&&(this.o=-2)}function A0(n,t,e,i,r,c){Gen.call(this,n,t,e,i,r),c&&(this.o=-2)}function $0(n,t,e,i,r,c){zen.call(this,n,t,e,i,r),c&&(this.o=-2)}function L0(n,t,e,i,r,c){n6.call(this,n,t,e,i,r),c&&(this.o=-2)}function N0(n,t,e,i){jp.call(this,e),this.b=n,this.c=t,this.d=i}function x0(n,t){this.a=new Np,this.d=new Np,this.f=n,this.c=t}function D0(){this.c=new $$,this.a=new bY,this.b=new em,bM()}function R0(){Nun(),this.b=new xp,this.a=new xp,this.c=new Np}function K0(n,t){this.g=n,this.d=(R5(),eLt),this.a=eLt,this.b=t}function _0(n,t){this.f=n,this.a=(R5(),tLt),this.c=tLt,this.b=t}function F0(n,t){!n.c&&(n.c=new Ecn(n,0)),MHn(n.c,(Uqn(),LLt),t)}function B0(){B0=O,Hkt=new wC("DFS",0),Bkt=new wC("BFS",1)}function H0(n,t,e){var i;return!!(i=BB(n.Zb().xc(t),14))&&i.Hc(e)}function q0(n,t,e){var i;return!!(i=BB(n.Zb().xc(t),14))&&i.Mc(e)}function G0(n,t,e,i){return n.a+=""+fx(null==t?zWn:Bbn(t),e,i),n}function z0(n,t,e,i,r,c){return Rcn(n,t,e,c),Jfn(n,i),tln(n,r),n}function U0(n){return Px(n.b.b!=n.d.a),n.c=n.b=n.b.b,--n.a,n.c.c}function X0(n){for(;n.d>0&&0==n.a[--n.d];);0==n.a[n.d++]&&(n.e=0)}function W0(n){return n.a?0==n.e.length?n.a.a:n.a.a+""+n.e:n.c}function V0(n){return!(!n.a||0==H7(n.a.a).i||n.b&&Kvn(n.b))}function Q0(n){return!(!n.u||0==a4(n.u.a).i||n.n&&Rvn(n.n))}function Y0(n){return yq(n.e.Hd().gc()*n.c.Hd().gc(),16,new zf(n))}function J0(n,t){return FU(fan(n.q.getTime()),fan(t.q.getTime()))}function Z0(n){return BB(Qgn(n,x8(yut,c1n,17,n.c.length,0,1)),474)}function n2(n){return BB(Qgn(n,x8(Out,a1n,10,n.c.length,0,1)),193)}function t2(n){return BZ(),!(b5(n)||!b5(n)&&n.c.i.c==n.d.i.c)}function e2(n,t,e){yX(n),xyn(new IZ(new t_(n),t,e))}function i2(n,t,e){yX(n),Dyn(new OZ(new t_(n),t,e))}function r2(n,t){var e;return e=1-t,n.a[e]=wrn(n.a[e],e),wrn(n,t)}function c2(n,t){var e;n.e=new Jm,m$(e=wDn(t),n.c),IDn(n,e,0)}function a2(n,t,e,i){var r;(r=new vu).a=t,r.b=e,r.c=i,DH(n.a,r)}function u2(n,t,e,i){var r;(r=new vu).a=t,r.b=e,r.c=i,DH(n.b,r)}function o2(n){var t,e;return e=t_n(t=new lX,n),yzn(t),e}function s2(){var n,t;return n=new Kp,WB(V$t,t=n),t}function h2(n){return n.j.c=x8(Ant,HWn,1,0,5,1),TV(n.c),gV(n.a),n}function f2(n){return MM(),cL(n.g,10)?BB(n.g,10):null}function l2(n){return!EV(n).dc()&&(L$(n,new m),!0)}function b2(n){if(!("stack"in n))try{throw n}catch(t){}return n}function w2(n,t){if(n<0||n>=t)throw Hp(new Ay(LCn(n,t)));return n}function d2(n,t,e){if(n<0||t<n||t>e)throw Hp(new Ay(oPn(n,t,e)))}function g2(n,t){if(TU(n.a,t),t.d)throw Hp(new dy(IYn));t.d=n}function p2(n,t){if(t.$modCount!=n.$modCount)throw Hp(new vv)}function v2(n,t){return!!cL(t,42)&&Mmn(n.a,BB(t,42))}function m2(n,t){return!!cL(t,42)&&Mmn(n.a,BB(t,42))}function y2(n,t){return!!cL(t,42)&&Mmn(n.a,BB(t,42))}function k2(n,t){return n.a<=n.b&&(t.ud(n.a++),!0)}function j2(n){var t;return JO(n)?-0==(t=n)?0:t:pnn(n)}function E2(n){var t;return EW(n),t=new F,gE(n.a,new gw(t)),t}function T2(n){var t;return EW(n),t=new _,gE(n.a,new dw(t)),t}function M2(n,t){this.a=n,Sb.call(this,n),LZ(t,n.gc()),this.b=t}function S2(n){this.e=n,this.b=this.e.a.entries(),this.a=new Array}function P2(n){return yq(n.e.Hd().gc()*n.c.Hd().gc(),273,new Gf(n))}function C2(n){return new J6((lin(n,NVn),ttn(rbn(rbn(5,n),n/10|0))))}function I2(n){return BB(Qgn(n,x8(Gut,u1n,11,n.c.length,0,1)),1943)}function O2(n,t,e){return e.f.c.length>0?BU(n.a,t,e):BU(n.b,t,e)}function A2(n,t,e){n.d&&y7(n.d.e,n),n.d=t,n.d&&kG(n.d.e,e,n)}function $2(n,t){vXn(t,n),aH(n.d),aH(BB(mMn(n,(HXn(),Agt)),207))}function L2(n,t){pXn(t,n),cH(n.d),cH(BB(mMn(n,(HXn(),Agt)),207))}function N2(n,t){var e,i;return i=null,(e=zJ(n,t))&&(i=e.fe()),i}function x2(n,t){var e,i;return i=null,(e=dnn(n,t))&&(i=e.ie()),i}function D2(n,t){var e,i;return i=null,(e=zJ(n,t))&&(i=e.ie()),i}function R2(n,t){var e,i;return i=null,(e=zJ(n,t))&&(i=yPn(e)),i}function K2(n,t,e){var i;return i=Qdn(e),wKn(n.g,i,t),wKn(n.i,t,e),t}function _2(n,t,e){var i;i=Ldn();try{return dR(n,t,e)}finally{y3(i)}}function F2(n){var t;t=n.Wg(),this.a=cL(t,69)?BB(t,69).Zh():t.Kc()}function B2(){Ym.call(this),this.j.c=x8(Ant,HWn,1,0,5,1),this.a=-1}function H2(n,t,e,i){this.d=n,this.n=t,this.g=e,this.o=i,this.p=-1}function q2(n,t,e,i){this.e=i,this.d=null,this.c=n,this.a=t,this.b=e}function G2(n,t,e){this.d=new Fd(this),this.e=n,this.i=t,this.f=e}function z2(){z2=O,Aft=new DP(eJn,0),$ft=new DP("TOP_LEFT",1)}function U2(){U2=O,Tmt=JW(iln(1),iln(4)),Emt=JW(iln(1),iln(2))}function X2(){X2=O,JEt=lhn((IM(),Pun(Gk(tTt,1),$Vn,551,0,[QEt])))}function W2(){W2=O,VEt=lhn((CM(),Pun(Gk(YEt,1),$Vn,482,0,[XEt])))}function V2(){V2=O,UTt=lhn((OM(),Pun(Gk(VTt,1),$Vn,530,0,[GTt])))}function Q2(){Q2=O,act=lhn((wM(),Pun(Gk(Pct,1),$Vn,481,0,[rct])))}function Y2(){return Dan(),Pun(Gk(Grt,1),$Vn,406,0,[Rrt,Nrt,xrt,Drt])}function J2(){return Z9(),Pun(Gk(Fet,1),$Vn,297,0,[Net,xet,Det,Ret])}function Z2(){return qpn(),Pun(Gk(cct,1),$Vn,394,0,[Zrt,Jrt,nct,tct])}function n3(){return Hpn(),Pun(Gk(Urt,1),$Vn,323,0,[Brt,Frt,Hrt,qrt])}function t3(){return Aun(),Pun(Gk(dut,1),$Vn,405,0,[Zat,eut,nut,tut])}function e3(){return Iun(),Pun(Gk(pst,1),$Vn,360,0,[ast,rst,cst,ist])}function i3(n,t,e,i){return cL(e,54)?new Ox(n,t,e,i):new sz(n,t,e,i)}function r3(){return Oun(),Pun(Gk(Ist,1),$Vn,411,0,[vst,mst,yst,kst])}function c3(n){return n.j==(kUn(),SIt)&&SN(UOn(n),oIt)}function a3(n,t){var e;SZ(e=t.a,t.c.d),MZ(e,t.d.d),Ztn(e.a,n.n)}function u3(n,t){return BB($N(Iz(BB(h6(n.k,t),15).Oc(),Qst)),113)}function o3(n,t){return BB($N(Oz(BB(h6(n.k,t),15).Oc(),Qst)),113)}function s3(n){return new w1(tcn(BB(n.a.dd(),14).gc(),n.a.cd()),16)}function h3(n){return cL(n,14)?BB(n,14).dc():!n.Kc().Ob()}function f3(n){return MM(),cL(n.g,145)?BB(n.g,145):null}function l3(n){if(n.e.g!=n.b)throw Hp(new vv);return!!n.c&&n.d>0}function b3(n){return Px(n.b!=n.d.c),n.c=n.b,n.b=n.b.a,++n.a,n.c.c}function w3(n,t){kW(t),$X(n.a,n.c,t),n.c=n.c+1&n.a.length-1,wyn(n)}function d3(n,t){kW(t),n.b=n.b-1&n.a.length-1,$X(n.a,n.b,t),wyn(n)}function g3(n,t){var e;for(e=n.j.c.length;e<t;e++)WB(n.j,n.rg())}function p3(n,t,e,i){var r;return r=i[t.g][e.g],Gy(MD(mMn(n.a,r)))}function v3(n,t,e,i,r){this.i=n,this.a=t,this.e=e,this.j=i,this.f=r}function m3(n,t,e,i,r){this.a=n,this.e=t,this.f=e,this.b=i,this.g=r}function y3(n){n&&Inn((sk(),ttt)),--ctt,n&&-1!=utt&&(iS(utt),utt=-1)}function k3(){return bvn(),Pun(Gk(kvt,1),$Vn,197,0,[lvt,bvt,fvt,hvt])}function j3(){return zyn(),Pun(Gk(qyt,1),$Vn,393,0,[Ryt,Kyt,_yt,Fyt])}function E3(){return Omn(),Pun(Gk(Vjt,1),$Vn,340,0,[qjt,Bjt,Hjt,Fjt])}function T3(){return mdn(),Pun(Gk(YIt,1),$Vn,374,0,[KIt,_It,RIt,DIt])}function M3(){return Xyn(),Pun(Gk(RCt,1),$Vn,285,0,[MCt,jCt,ECt,TCt])}function S3(){return Mbn(),Pun(Gk(oCt,1),$Vn,218,0,[ZPt,YPt,QPt,JPt])}function P3(){return Fwn(),Pun(Gk(cOt,1),$Vn,311,0,[eOt,ZIt,tOt,nOt])}function C3(){return Bsn(),Pun(Gk(wOt,1),$Vn,396,0,[uOt,oOt,aOt,sOt])}function I3(n){return hZ(),hU(fAt,n)?BB(RX(fAt,n),331).ug():null}function O3(n,t,e){return t<0?qIn(n,e):BB(e,66).Nj().Sj(n,n.yh(),t)}function A3(n,t,e){var i;return i=Qdn(e),wKn(n.d,i,t),VW(n.e,t,e),t}function $3(n,t,e){var i;return i=Qdn(e),wKn(n.j,i,t),VW(n.k,t,e),t}function L3(n){var t;return tE(),t=new io,n&&HLn(t,n),t}function N3(n){var t;return t=n.ri(n.i),n.i>0&&aHn(n.g,0,t,0,n.i),t}function x3(n,t){var e;return nS(),!(e=BB(RX(mAt,n),55))||e.wj(t)}function D3(n){if(1!=n.p)throw Hp(new dv);return dG(n.f)<<24>>24}function R3(n){if(1!=n.p)throw Hp(new dv);return dG(n.k)<<24>>24}function K3(n){if(7!=n.p)throw Hp(new dv);return dG(n.k)<<16>>16}function _3(n){if(7!=n.p)throw Hp(new dv);return dG(n.f)<<16>>16}function F3(n){var t;for(t=0;n.Ob();)n.Pb(),t=rbn(t,1);return ttn(t)}function B3(n,t){var e;return e=new Ik,n.xd(e),e.a+="..",t.yd(e),e.a}function H3(n,t,e){var i;i=BB(RX(n.g,e),57),WB(n.a.c,new rI(t,i))}function q3(n,t,e){return Tz(MD(qI(AY(n.f,t))),MD(qI(AY(n.f,e))))}function G3(n,t,e){return UFn(n,t,e,cL(t,99)&&0!=(BB(t,18).Bb&BQn))}function z3(n,t,e){return pBn(n,t,e,cL(t,99)&&0!=(BB(t,18).Bb&BQn))}function U3(n,t,e){return x$n(n,t,e,cL(t,99)&&0!=(BB(t,18).Bb&BQn))}function X3(n,t){return n==(uSn(),Cut)&&t==Cut?4:n==Cut||t==Cut?8:32}function W3(n,t){return GI(t)===GI(n)?"(this Map)":null==t?zWn:Bbn(t)}function V3(n,t){return BB(null==t?qI(AY(n.f,null)):hS(n.g,t),281)}function Q3(n,t,e){var i;return i=Qdn(e),VW(n.b,i,t),VW(n.c,t,e),t}function Y3(n,t){var e;for(e=t;e;)_x(n,e.i,e.j),e=JJ(e);return n}function J3(n,t){var e;return e=rY(HB(new C7(n,t))),Cq(new C7(n,t)),e}function Z3(n,t){var e;return ZM(),TSn(e=BB(n,66).Mj(),t),e.Ok(t)}function n4(n,t,e,i,r){WB(t,mCn(r,X$n(r,e,i))),UMn(n,r,t)}function t4(n,t,e){n.i=0,n.e=0,t!=e&&(Won(n,t,e),Xon(n,t,e))}function e4(n,t){var e;e=n.q.getHours(),n.q.setFullYear(t+sQn),lBn(n,e)}function i4(n,t,e){if(e){var i=e.ee();n.a[t]=i(e)}else delete n.a[t]}function r4(n,t,e){if(e){var i=e.ee();e=i(e)}else e=void 0;n.a[t]=e}function c4(n){if(n<0)throw Hp(new By("Negative array size: "+n))}function a4(n){return n.n||(P5(n),n.n=new YG(n,VAt,n),kY(n)),n.n}function u4(n){return Px(n.a<n.c.a.length),n.b=n.a,Ann(n),n.c.b[n.b]}function o4(n){n.b!=n.c&&(n.a=x8(Ant,HWn,1,8,5,1),n.b=0,n.c=0)}function s4(n){this.b=new xp,this.c=new xp,this.d=new xp,this.a=n}function h4(n,t){wWn(),Ap.call(this,n),this.a=t,this.c=-1,this.b=-1}function f4(n,t,e,i){j0.call(this,1,e,i),Fh(this),this.c=n,this.b=t}function l4(n,t,e,i){E0.call(this,1,e,i),Fh(this),this.c=n,this.b=t}function b4(n,t,e,i,r,c,a){kin.call(this,t,i,r,c,a),this.c=n,this.a=e}function w4(n,t,e){this.e=n,this.a=Ant,this.b=ARn(t),this.c=t,this.d=e}function d4(n){this.e=n,this.c=this.e.a,this.b=this.e.g,this.d=this.e.i}function g4(n){this.c=n,this.a=BB(Ikn(n),148),this.b=this.a.Aj().Nh()}function p4(n){this.d=n,this.b=this.d.a.entries(),this.a=this.b.next()}function v4(){xp.call(this),jx(this),this.d.b=this.d,this.d.a=this.d}function m4(n,t){$R.call(this),this.a=n,this.b=t,WB(this.a.b,this)}function y4(n,t){return iO(null!=t?SJ(n,t):qI(AY(n.f,t)))}function k4(n,t){return iO(null!=t?SJ(n,t):qI(AY(n.f,t)))}function j4(n,t){var e;for(e=0;e<t;++e)$X(n,e,new Ub(BB(n[e],42)))}function E4(n,t){var e;for(e=n.d-1;e>=0&&n.a[e]===t[e];e--);return e<0}function T4(n,t){var e;return zsn(),0!=(e=n.j.g-t.j.g)?e:0}function M4(n,t){return kW(t),null!=n.a?PG(t.Kb(n.a)):Set}function S4(n){var t;return n?new Lq(n):(qrn(t=new fA,n),t)}function P4(n,t){return t.b.Kb(T7(n,t.c.Ee(),new yw(t)))}function C4(n){yTn(),hL(this,dG(e0(kz(n,24),sYn)),dG(e0(n,sYn)))}function I4(){I4=O,pit=lhn((hpn(),Pun(Gk(yit,1),$Vn,428,0,[dit,wit])))}function O4(){O4=O,kit=lhn((Rnn(),Pun(Gk(Kit,1),$Vn,427,0,[vit,mit])))}function A4(){A4=O,_ct=lhn((Knn(),Pun(Gk($at,1),$Vn,424,0,[Dct,Rct])))}function $4(){$4=O,zut=lhn((Srn(),Pun(Gk(Wut,1),$Vn,511,0,[qut,Hut])))}function L4(){L4=O,Iht=lhn((_nn(),Pun(Gk(Lht,1),$Vn,419,0,[Sht,Pht])))}function N4(){N4=O,Uht=lhn((g7(),Pun(Gk(Zht,1),$Vn,479,0,[Ght,qht])))}function x4(){x4=O,tmt=lhn((A6(),Pun(Gk(cmt,1),$Vn,376,0,[Zvt,Jvt])))}function D4(){D4=O,Bvt=lhn((U7(),Pun(Gk(zvt,1),$Vn,421,0,[Kvt,_vt])))}function R4(){R4=O,oht=lhn((V8(),Pun(Gk(lht,1),$Vn,422,0,[cht,aht])))}function K4(){K4=O,Nft=lhn((z2(),Pun(Gk(Glt,1),$Vn,420,0,[Aft,$ft])))}function _4(){_4=O,Pyt=lhn((O6(),Pun(Gk(xyt,1),$Vn,520,0,[Myt,Tyt])))}function F4(){F4=O,Gmt=lhn((Q4(),Pun(Gk(Vmt,1),$Vn,523,0,[Hmt,Bmt])))}function B4(){B4=O,iyt=lhn((gJ(),Pun(Gk(ayt,1),$Vn,516,0,[tyt,nyt])))}function H4(){H4=O,uyt=lhn((oZ(),Pun(Gk(Syt,1),$Vn,515,0,[ryt,cyt])))}function q4(){q4=O,Dyt=lhn((dJ(),Pun(Gk(Byt,1),$Vn,455,0,[Lyt,Nyt])))}function G4(){G4=O,Gkt=lhn((B0(),Pun(Gk(Jkt,1),$Vn,425,0,[Hkt,Bkt])))}function z4(){z4=O,Zkt=lhn((Prn(),Pun(Gk(ijt,1),$Vn,495,0,[Qkt,Ykt])))}function U4(){U4=O,Fkt=lhn((sZ(),Pun(Gk(qkt,1),$Vn,480,0,[Rkt,Kkt])))}function X4(){X4=O,ojt=lhn((D9(),Pun(Gk(ljt,1),$Vn,426,0,[cjt,ajt])))}function W4(){W4=O,QTt=lhn((Lun(),Pun(Gk(YTt,1),$Vn,429,0,[WTt,XTt])))}function V4(){V4=O,eTt=lhn(($6(),Pun(Gk(oTt,1),$Vn,430,0,[nTt,ZEt])))}function Q4(){Q4=O,Hmt=new JP("UPPER",0),Bmt=new JP("LOWER",1)}function Y4(n,t){var e;qQ(e=new py,"x",t.a),qQ(e,"y",t.b),nW(n,e)}function J4(n,t){var e;qQ(e=new py,"x",t.a),qQ(e,"y",t.b),nW(n,e)}function Z4(n,t){var e,i;i=!1;do{i|=e=bon(n,t)}while(e);return i}function n5(n,t){var e,i;for(e=t,i=0;e>0;)i+=n.a[e],e-=e&-e;return i}function t5(n,t){var e;for(e=t;e;)_x(n,-e.i,-e.j),e=JJ(e);return n}function e5(n,t){var e,i;for(kW(t),i=n.Kc();i.Ob();)e=i.Pb(),t.td(e)}function i5(n,t){var e;return new vT(e=t.cd(),n.e.pc(e,BB(t.dd(),14)))}function r5(n,t,e,i){var r;(r=new $).c=t,r.b=e,r.a=i,i.b=e.a=r,++n.b}function c5(n,t,e){var i;return l1(t,n.c.length),i=n.c[t],n.c[t]=e,i}function a5(n,t,e){return BB(null==t?jCn(n.f,null,e):ubn(n.g,t,e),281)}function u5(n){return n.c&&n.d?p0(n.c)+"->"+p0(n.d):"e_"+PN(n)}function o5(n,t){return(Qln(n),jE(new Rq(n,new Q9(t,n.a)))).sd(tit)}function s5(){return yMn(),Pun(Gk(Uat,1),$Vn,356,0,[Rat,Kat,_at,Fat,Bat])}function h5(){return kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])}function f5(n){return Dk(),function(){return _2(n,this,arguments)}}function l5(){return Date.now?Date.now():(new Date).getTime()}function b5(n){return!(!n.c||!n.d||!n.c.i||n.c.i!=n.d.i)}function w5(n){if(!n.c.Sb())throw Hp(new yv);return n.a=!0,n.c.Ub()}function d5(n){n.i=0,yS(n.b,null),yS(n.c,null),n.a=null,n.e=null,++n.g}function g5(n){dS.call(this,null==n?zWn:Bbn(n),cL(n,78)?BB(n,78):null)}function p5(n){eWn(),Bp(this),this.a=new YT,dsn(this,n),DH(this.a,n)}function v5(){xA(this),this.b=new xC(RQn,RQn),this.a=new xC(KQn,KQn)}function m5(n,t){this.c=0,this.b=t,pO.call(this,n,17493),this.a=this.c}function y5(n){k5(),Qet||(this.c=n,this.e=!0,this.a=new Np)}function k5(){k5=O,Qet=!0,Wet=!1,Vet=!1,Jet=!1,Yet=!1}function j5(n,t){return!!cL(t,149)&&mK(n.c,BB(t,149).c)}function E5(n,t){var e;return e=0,n&&(e+=n.f.a/2),t&&(e+=t.f.a/2),e}function T5(n,t){return BB(lnn(n.d,t),23)||BB(lnn(n.e,t),23)}function M5(n){this.b=n,AL.call(this,n),this.a=BB(yan(this.b.a,4),126)}function S5(n){this.b=n,ax.call(this,n),this.a=BB(yan(this.b.a,4),126)}function P5(n){return n.t||(n.t=new dp(n),sln(new xy(n),0,n.t)),n.t}function C5(){return Ffn(),Pun(Gk(WPt,1),$Vn,103,0,[BPt,FPt,_Pt,KPt,HPt])}function I5(){return cpn(),Pun(Gk(JCt,1),$Vn,249,0,[BCt,qCt,_Ct,FCt,HCt])}function O5(){return rpn(),Pun(Gk(jMt,1),$Vn,175,0,[hMt,sMt,uMt,fMt,oMt])}function A5(){return $Sn(),Pun(Gk(zTt,1),$Vn,316,0,[iTt,rTt,uTt,cTt,aTt])}function $5(){return Nvn(),Pun(Gk(Avt,1),$Vn,315,0,[yvt,pvt,vvt,gvt,mvt])}function L5(){return Vvn(),Pun(Gk(Cht,1),$Vn,335,0,[yht,mht,jht,Eht,kht])}function N5(){return YLn(),Pun(Gk(zEt,1),$Vn,355,0,[DEt,xEt,KEt,REt,_Et])}function x5(){return LEn(),Pun(Gk(Kst,1),$Vn,363,0,[Mst,Pst,Cst,Sst,Tst])}function D5(){return Tbn(),Pun(Gk(ivt,1),$Vn,163,0,[qlt,_lt,Flt,Blt,Hlt])}function R5(){var n,t;R5=O,iE(),t=new Ev,tLt=t,n=new Om,eLt=n}function K5(n){var t;return n.c||cL(t=n.r,88)&&(n.c=BB(t,26)),n.c}function _5(n){return n.e=3,n.d=n.Yb(),2!=n.e&&(n.e=0,!0)}function F5(n){return M$(n&SQn,n>>22&SQn,n<0?PQn:0)}function B5(n){var t,e,i;for(e=0,i=(t=n).length;e<i;++e)jW(t[e])}function H5(n,t){var e,i;(e=BB(bfn(n.c,t),14))&&(i=e.gc(),e.$b(),n.d-=i)}function q5(n,t){var e;return!!(e=lsn(n,t.cd()))&&cV(e.e,t.dd())}function G5(n,t){return 0==t||0==n.e?n:t>0?Edn(n,t):Ixn(n,-t)}function z5(n,t){return 0==t||0==n.e?n:t>0?Ixn(n,t):Edn(n,-t)}function U5(n){if(dAn(n))return n.c=n.a,n.a.Pb();throw Hp(new yv)}function X5(n){var t,e;return t=n.c.i,e=n.d.i,t.k==(uSn(),Mut)&&e.k==Mut}function W5(n){var t;return qan(t=new wY,n),hon(t,(HXn(),vgt),null),t}function V5(n,t,e){var i;return(i=n.Yg(t))>=0?n._g(i,e,!0):cOn(n,t,e)}function Q5(n,t,e,i){var r;for(r=0;r<Zit;r++)XG(n.a[t.g][r],e,i[t.g])}function Y5(n,t,e,i){var r;for(r=0;r<nrt;r++)UG(n.a[r][t.g],e,i[t.g])}function J5(n,t,e,i,r){j0.call(this,t,i,r),Fh(this),this.c=n,this.a=e}function Z5(n,t,e,i,r){E0.call(this,t,i,r),Fh(this),this.c=n,this.a=e}function n6(n,t,e,i,r){i6.call(this,t,i,r),Fh(this),this.c=n,this.a=e}function t6(n,t,e,i,r){i6.call(this,t,i,r),Fh(this),this.c=n,this.b=e}function e6(n,t,e){jp.call(this,e),this.b=n,this.c=t,this.d=(Bwn(),z$t)}function i6(n,t,e){this.d=n,this.k=t?1:0,this.f=e?1:0,this.o=-1,this.p=0}function r6(n,t,e){var i;Tcn(i=new X$(n.a),n.a.a),jCn(i.f,t,e),n.a.a=i}function c6(n,t){n.qi(n.i+1),jL(n,n.i,n.oi(n.i,t)),n.bi(n.i++,t),n.ci()}function a6(n){var t,e;++n.j,t=n.g,e=n.i,n.g=null,n.i=0,n.di(e,t),n.ci()}function u6(n){var t;return yX(n),$on(t=new J6(ZW(n.length)),n),t}function o6(n){var t;return yX(n),JPn(t=n?new t_(n):HB(n.Kc())),sfn(t)}function s6(n,t){var e;return l1(t,n.c.length),e=n.c[t],PE(n.c,t,1),e}function h6(n,t){var e;return!(e=BB(n.c.xc(t),14))&&(e=n.ic(t)),n.pc(t,e)}function f6(n,t){var e,i;return kW(n),e=n,kW(t),e==(i=t)?0:e<i?-1:1}function l6(n){var t;return t=n.e+n.f,isNaN(t)&&WK(n.d)?n.d:t}function b6(n,t){return n.a?oO(n.a,n.b):n.a=new lN(n.d),aO(n.a,t),n}function w6(n,t){if(n<0||n>t)throw Hp(new Ay(dCn(n,t,"index")));return n}function d6(n,t,e,i){var r;return vTn(r=x8(ANt,hQn,25,t,15,1),n,t,e,i),r}function g6(n,t){var e;e=n.q.getHours()+(t/60|0),n.q.setMinutes(t),lBn(n,e)}function p6(n,t){return e.Math.min(W8(t.a,n.d.d.c),W8(t.b,n.d.d.c))}function v6(n,t){return XI(t)?null==t?gAn(n.f,null):Gan(n.g,t):gAn(n.f,t)}function m6(n){this.c=n,this.a=new Wb(this.c.a),this.b=new Wb(this.c.b)}function y6(){this.e=new Np,this.c=new Np,this.d=new Np,this.b=new Np}function k6(){this.g=new Bv,this.b=new Bv,this.a=new Np,this.k=new Np}function j6(n,t,e){this.a=n,this.c=t,this.d=e,WB(t.e,this),WB(e.b,this)}function E6(n,t){gO.call(this,t.rd(),-6&t.qd()),kW(n),this.a=n,this.b=t}function T6(n,t){pO.call(this,t.rd(),-6&t.qd()),kW(n),this.a=n,this.b=t}function M6(n,t){vO.call(this,t.rd(),-6&t.qd()),kW(n),this.a=n,this.b=t}function S6(n,t,e){this.a=n,this.b=t,this.c=e,WB(n.t,this),WB(t.i,this)}function P6(){this.b=new YT,this.a=new YT,this.b=new YT,this.a=new YT}function C6(){C6=O,TMt=new up("org.eclipse.elk.labels.labelManager")}function I6(){I6=O,est=new iR("separateLayerConnections",(Iun(),ast))}function O6(){O6=O,Myt=new uC("REGULAR",0),Tyt=new uC("CRITICAL",1)}function A6(){A6=O,Zvt=new XP("STACKED",0),Jvt=new XP("SEQUENCED",1)}function $6(){$6=O,nTt=new TC("FIXED",0),ZEt=new TC("CENTER_NODE",1)}function L6(n,t){var e;return e=xGn(n,t),n.b=new mrn(e.c.length),yqn(n,e)}function N6(n,t,e){return++n.e,--n.f,BB(n.d[t].$c(e),133).dd()}function x6(n){var t;return n.a||cL(t=n.r,148)&&(n.a=BB(t,148)),n.a}function D6(n){return n.a?n.e?D6(n.e):null:n}function R6(n,t){return n.p<t.p?1:n.p>t.p?-1:0}function K6(n,t){return kW(t),n.c<n.d&&(n.ze(t,n.c++),!0)}function _6(n,t){return!!hU(n.a,t)&&(v6(n.a,t),!0)}function F6(n){var t;return t=n.cd(),RB(BB(n.dd(),14).Nc(),new Vf(t))}function B6(n){var t;return t=BB(VU(n.b,n.b.length),9),new YK(n.a,t,n.c)}function H6(n){return Qln(n),new AD(n,new ZB(n,n.a.e,4|n.a.d))}function q6(n){var t;for(EW(n),t=0;n.a.sd(new fn);)t=rbn(t,1);return t}function G6(n,t,e){var i,r;for(i=0,r=0;r<t.length;r++)i+=n.$f(t[r],i,e)}function z6(n,t){var e;n.C&&((e=BB(oV(n.b,t),124).n).d=n.C.d,e.a=n.C.a)}function U6(n,t,e){return w2(t,n.e.Hd().gc()),w2(e,n.c.Hd().gc()),n.a[t][e]}function X6(n,t){ODn(),this.e=n,this.d=1,this.a=Pun(Gk(ANt,1),hQn,25,15,[t])}function W6(n,t,e,i){this.f=n,this.e=t,this.d=e,this.b=i,this.c=i?i.d:null}function V6(n){var t,e,i,r;r=n.d,t=n.a,e=n.b,i=n.c,n.d=e,n.a=i,n.b=r,n.c=t}function Q6(n,t,e,i){mFn(n,t,e,pBn(n,t,i,cL(t,99)&&0!=(BB(t,18).Bb&BQn)))}function Y6(n,t){OTn(t,"Label management",1),iO(mMn(n,(C6(),TMt))),HSn(t)}function J6(n){xA(this),vH(n>=0,"Initial capacity must not be negative")}function Z6(){Z6=O,Wit=lhn((Dtn(),Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])))}function n8(){n8=O,trt=lhn((J9(),Pun(Gk(ert,1),$Vn,461,0,[Yit,Qit,Jit])))}function t8(){t8=O,urt=lhn((G7(),Pun(Gk(Ort,1),$Vn,462,0,[crt,rrt,irt])))}function e8(){e8=O,Zet=lhn((qsn(),Pun(Gk(nit,1),$Vn,132,0,[zet,Uet,Xet])))}function i8(){i8=O,Lat=lhn((q7(),Pun(Gk(Hat,1),$Vn,379,0,[Oat,Iat,Aat])))}function r8(){r8=O,gut=lhn((Bfn(),Pun(Gk(mut,1),$Vn,423,0,[wut,but,lut])))}function c8(){c8=O,bht=lhn((Oin(),Pun(Gk(pht,1),$Vn,314,0,[hht,sht,fht])))}function a8(){a8=O,vht=lhn((uin(),Pun(Gk(Tht,1),$Vn,337,0,[wht,ght,dht])))}function u8(){u8=O,Nht=lhn((Jun(),Pun(Gk(Bht,1),$Vn,450,0,[Aht,Oht,$ht])))}function o8(){o8=O,_st=lhn((Crn(),Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])))}function s8(){s8=O,Oft=lhn((z7(),Pun(Gk(Lft,1),$Vn,303,0,[Pft,Cft,Sft])))}function h8(){h8=O,Mft=lhn((Kan(),Pun(Gk(Ift,1),$Vn,292,0,[jft,Eft,kft])))}function f8(){f8=O,svt=lhn((Mhn(),Pun(Gk(wvt,1),$Vn,378,0,[cvt,avt,uvt])))}function l8(){l8=O,Yvt=lhn((Hcn(),Pun(Gk(nmt,1),$Vn,375,0,[Xvt,Wvt,Vvt])))}function b8(){b8=O,Rvt=lhn((mon(),Pun(Gk(Fvt,1),$Vn,339,0,[Nvt,Lvt,xvt])))}function w8(){w8=O,Uvt=lhn((ain(),Pun(Gk(Qvt,1),$Vn,452,0,[Gvt,Hvt,qvt])))}function d8(){d8=O,gmt=lhn(($un(),Pun(Gk(Smt,1),$Vn,377,0,[bmt,wmt,lmt])))}function g8(){g8=O,amt=lhn((Usn(),Pun(Gk(hmt,1),$Vn,336,0,[emt,imt,rmt])))}function p8(){p8=O,fmt=lhn((dcn(),Pun(Gk(dmt,1),$Vn,338,0,[smt,umt,omt])))}function v8(){v8=O,Nmt=lhn((oin(),Pun(Gk(xmt,1),$Vn,454,0,[Omt,Amt,$mt])))}function m8(){m8=O,rjt=lhn((Cbn(),Pun(Gk(ujt,1),$Vn,442,0,[ejt,njt,tjt])))}function y8(){y8=O,bjt=lhn((Hsn(),Pun(Gk(Gjt,1),$Vn,380,0,[sjt,hjt,fjt])))}function k8(){k8=O,eEt=lhn((Sbn(),Pun(Gk(NEt,1),$Vn,381,0,[Zjt,nEt,Jjt])))}function j8(){j8=O,Qjt=lhn((Bcn(),Pun(Gk(Yjt,1),$Vn,293,0,[Xjt,Wjt,Ujt])))}function E8(){E8=O,UEt=lhn((Pbn(),Pun(Gk(WEt,1),$Vn,437,0,[HEt,qEt,GEt])))}function T8(){T8=O,kCt=lhn((ufn(),Pun(Gk(SCt,1),$Vn,334,0,[vCt,pCt,mCt])))}function M8(){M8=O,VPt=lhn((Rtn(),Pun(Gk(nCt,1),$Vn,272,0,[zPt,UPt,XPt])))}function S8(){return QEn(),Pun(Gk(aIt,1),$Vn,98,0,[YCt,QCt,VCt,UCt,WCt,XCt])}function P8(n,t){return!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),rdn(n.o,t)}function C8(n){return!n.g&&(n.g=new oo),!n.g.d&&(n.g.d=new lp(n)),n.g.d}function I8(n){return!n.g&&(n.g=new oo),!n.g.a&&(n.g.a=new bp(n)),n.g.a}function O8(n){return!n.g&&(n.g=new oo),!n.g.b&&(n.g.b=new fp(n)),n.g.b}function A8(n){return!n.g&&(n.g=new oo),!n.g.c&&(n.g.c=new wp(n)),n.g.c}function $8(n,t,e){var i,r;for(r=new Aan(t,n),i=0;i<e;++i)cvn(r);return r}function L8(n,t,e){var i,r;if(null!=e)for(i=0;i<t;++i)r=e[i],n.fi(i,r)}function N8(n,t,e,i){var r;return AFn(r=x8(ANt,hQn,25,t+1,15,1),n,t,e,i),r}function x8(n,t,e,i,r,c){var a;return a=Bmn(r,i),10!=r&&Pun(Gk(n,c),t,e,r,a),a}function D8(n,t,e,i){return e&&(i=e.gh(t,Awn(e.Tg(),n.c.Lj()),null,i)),i}function R8(n,t,e,i){return e&&(i=e.ih(t,Awn(e.Tg(),n.c.Lj()),null,i)),i}function K8(n,t,e){BB(n.b,65),BB(n.b,65),BB(n.b,65),Otn(n.a,new N_(e,t,n))}function _8(n,t,e){if(n<0||t>e||t<n)throw Hp(new Ok(mYn+n+kYn+t+hYn+e))}function F8(n){if(!n)throw Hp(new Fy("Unable to add element to queue"))}function B8(n){n?(this.c=n,this.b=null):(this.c=null,this.b=new Np)}function H8(n,t){PS.call(this,n,t),this.a=x8(Ket,kVn,436,2,0,1),this.b=!0}function q8(n){non.call(this,n,0),jx(this),this.d.b=this.d,this.d.a=this.d}function G8(n){var t;return 0==(t=n.b).b?null:BB(Dpn(t,0),188).b}function z8(n,t){var e;return(e=new q).c=!0,e.d=t.dd(),YGn(n,t.cd(),e)}function U8(n,t){var e;e=n.q.getHours()+(t/3600|0),n.q.setSeconds(t),lBn(n,e)}function X8(n,t,e){var i;(i=n.b[e.c.p][e.p]).b+=t.b,i.c+=t.c,i.a+=t.a,++i.a}function W8(n,t){var i,r;return i=n.a-t.a,r=n.b-t.b,e.Math.sqrt(i*i+r*r)}function V8(){V8=O,cht=new EP("QUADRATIC",0),aht=new EP("SCANLINE",1)}function Q8(){Q8=O,mmt=WG(dq(new B2,(yMn(),Rat),(lWn(),kot)),Bat,qot)}function Y8(){return wEn(),Pun(Gk(qPt,1),$Vn,291,0,[ZMt,JMt,YMt,VMt,WMt,QMt])}function J8(){return wvn(),Pun(Gk(nSt,1),$Vn,248,0,[CMt,AMt,$Mt,LMt,IMt,OMt])}function Z8(){return $Pn(),Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])}function n9(){return JMn(),Pun(Gk(mft,1),$Vn,275,0,[cft,eft,aft,rft,ift,tft])}function t9(){return Bjn(),Pun(Gk(uft,1),$Vn,274,0,[Qht,Vht,Jht,Wht,Yht,Xht])}function e9(){return TTn(),Pun(Gk(ovt,1),$Vn,313,0,[tvt,Zpt,Ypt,Jpt,evt,nvt])}function i9(){return gSn(),Pun(Gk(zht,1),$Vn,276,0,[Dht,xht,Kht,Rht,Fht,_ht])}function r9(){return DPn(),Pun(Gk(_kt,1),$Vn,327,0,[Qyt,Uyt,Wyt,Xyt,Vyt,zyt])}function c9(){return lIn(),Pun(Gk(IIt,1),$Vn,273,0,[rIt,eIt,iIt,tIt,nIt,cIt])}function a9(){return nMn(),Pun(Gk(yCt,1),$Vn,312,0,[aCt,rCt,uCt,eCt,cCt,iCt])}function u9(){return uSn(),Pun(Gk($ut,1),$Vn,267,0,[Cut,Put,Mut,Iut,Sut,Tut])}function o9(n){Mx(!!n.c),p2(n.e,n),n.c.Qb(),n.c=null,n.b=dun(n),bD(n.e,n)}function s9(n){return p2(n.c.a.e,n),Px(n.b!=n.c.a.d),n.a=n.b,n.b=n.b.a,n.a}function h9(n){var t;return n.a||-1==n.b||(t=n.c.Tg(),n.a=itn(t,n.b)),n.a}function f9(n,t){return!(n.hi()&&n.Hc(t)||(n.Yh(t),0))}function l9(n,t){return OY(t,"Horizontal alignment cannot be null"),n.b=t,n}function b9(n,t,e){var i;return wWn(),i=ZUn(n,t),e&&i&&gW(n)&&(i=null),i}function w9(n,t,e){var i;for(i=n.Kc();i.Ob();)ZRn(BB(i.Pb(),37),t,e)}function d9(n,t){var e;for(e=t.Kc();e.Ob();)$Kn(n,BB(e.Pb(),37),0,0)}function g9(n,t,i){var r;n.d[t.g]=i,(r=n.g.c)[t.g]=e.Math.max(r[t.g],i+1)}function p9(n,t){var e,i,r;return r=n.r,i=n.d,(e=cHn(n,t,!0)).b!=r||e.a!=i}function v9(n,t){return lS(n.e,t)||Jgn(n.e,t,new ipn(t)),BB(lnn(n.e,t),113)}function m9(n,t,e,i){return kW(n),kW(t),kW(e),kW(i),new jU(n,t,new G)}function y9(n,t,e,i){this.rj(),this.a=t,this.b=n,this.c=new Zz(this,t,e,i)}function k9(n,t,e,i,r,c){H2.call(this,t,i,r,c),Fh(this),this.c=n,this.b=e}function j9(n,t,e,i,r,c){H2.call(this,t,i,r,c),Fh(this),this.c=n,this.a=e}function E9(n,t,e){var i,r;r=null,(i=zJ(n,e))&&(r=yPn(i)),Xgn(t,e,r)}function T9(n,t,e){var i,r;r=null,(i=zJ(n,e))&&(r=yPn(i)),Xgn(t,e,r)}function M9(n,t,e){var i;return(i=$$n(n.b,t))?NHn(F7(n,i),e):null}function S9(n,t){var e;return(e=n.Yg(t))>=0?n._g(e,!0,!0):cOn(n,t,!0)}function P9(n,t){return Pln(Gy(MD(mMn(n,(hWn(),Tlt)))),Gy(MD(mMn(t,Tlt))))}function C9(){C9=O,Ukt=ogn(ogn(FM(new B2,(zyn(),Kyt)),(DPn(),Qyt)),Uyt)}function I9(n,t,e){var i;return i=Non(n,t,e),n.b=new mrn(i.c.length),sDn(n,i)}function O9(n){if(n.b<=0)throw Hp(new yv);return--n.b,n.a-=n.c.c,iln(n.a)}function A9(n){var t;if(!n.a)throw Hp(new lV);return t=n.a,n.a=JJ(n.a),t}function $9(n){for(;!n.a;)if(!TK(n.c,new pw(n)))return!1;return!0}function L9(n){return yX(n),cL(n,198)?BB(n,198):new ol(n)}function N9(n){x9(),BB(n.We((sWn(),fPt)),174).Fc((lIn(),iIt)),n.Ye(hPt,null)}function x9(){x9=O,tMt=new bu,iMt=new wu,eMt=vsn((sWn(),hPt),tMt,qSt,iMt)}function D9(){D9=O,cjt=new pC("LEAF_NUMBER",0),ajt=new pC("NODE_SIZE",1)}function R9(n,t,e){n.a=t,n.c=e,n.b.a.$b(),yQ(n.d),n.e.a.c=x8(Ant,HWn,1,0,5,1)}function K9(n){n.a=x8(ANt,hQn,25,n.b+1,15,1),n.c=x8(ANt,hQn,25,n.b,15,1),n.d=0}function _9(n,t){n.a.ue(t.d,n.b)>0&&(WB(n.c,new mH(t.c,t.d,n.d)),n.b=t.d)}function F9(n,t){if(null==n.g||t>=n.i)throw Hp(new LO(t,n.i));return n.g[t]}function B9(n,t,e){if(xsn(n,e),null!=e&&!n.wj(e))throw Hp(new lv);return e}function H9(n){var t;if(n.Ek())for(t=n.i-1;t>=0;--t)Wtn(n,t);return N3(n)}function q9(n){var t,e;if(!n.b)return null;for(e=n.b;t=e.a[0];)e=t;return e}function G9(n,t){var e;return c4(t),(e=m7(n.slice(0,t),n)).length=t,e}function z9(n,t,e,i){PQ(),i=i||wet,gCn(n.slice(t,e),n,t,e,-t,i)}function U9(n,t,e,i,r){return t<0?cOn(n,e,i):BB(e,66).Nj().Pj(n,n.yh(),t,i,r)}function X9(n){return cL(n,172)?""+BB(n,172).a:null==n?null:Bbn(n)}function W9(n){return cL(n,172)?""+BB(n,172).a:null==n?null:Bbn(n)}function V9(n,t){if(t.a)throw Hp(new dy(IYn));TU(n.a,t),t.a=n,!n.j&&(n.j=t)}function Q9(n,t){vO.call(this,t.rd(),-16449&t.qd()),kW(n),this.a=n,this.c=t}function Y9(n,t){var e,i;return i=t/n.c.Hd().gc()|0,e=t%n.c.Hd().gc(),U6(n,i,e)}function J9(){J9=O,Yit=new GS(cJn,0),Qit=new GS(eJn,1),Jit=new GS(aJn,2)}function Z9(){Z9=O,Net=new gS("All",0),xet=new LA,Det=new A$,Ret=new NA}function n7(){n7=O,_et=lhn((Z9(),Pun(Gk(Fet,1),$Vn,297,0,[Net,xet,Det,Ret])))}function t7(){t7=O,rut=lhn((Aun(),Pun(Gk(dut,1),$Vn,405,0,[Zat,eut,nut,tut])))}function e7(){e7=O,_rt=lhn((Dan(),Pun(Gk(Grt,1),$Vn,406,0,[Rrt,Nrt,xrt,Drt])))}function i7(){i7=O,zrt=lhn((Hpn(),Pun(Gk(Urt,1),$Vn,323,0,[Brt,Frt,Hrt,qrt])))}function r7(){r7=O,ict=lhn((qpn(),Pun(Gk(cct,1),$Vn,394,0,[Zrt,Jrt,nct,tct])))}function c7(){c7=O,Hyt=lhn((zyn(),Pun(Gk(qyt,1),$Vn,393,0,[Ryt,Kyt,_yt,Fyt])))}function a7(){a7=O,ost=lhn((Iun(),Pun(Gk(pst,1),$Vn,360,0,[ast,rst,cst,ist])))}function u7(){u7=O,zjt=lhn((Omn(),Pun(Gk(Vjt,1),$Vn,340,0,[qjt,Bjt,Hjt,Fjt])))}function o7(){o7=O,Est=lhn((Oun(),Pun(Gk(Ist,1),$Vn,411,0,[vst,mst,yst,kst])))}function s7(){s7=O,dvt=lhn((bvn(),Pun(Gk(kvt,1),$Vn,197,0,[lvt,bvt,fvt,hvt])))}function h7(){h7=O,fOt=lhn((Bsn(),Pun(Gk(wOt,1),$Vn,396,0,[uOt,oOt,aOt,sOt])))}function f7(){f7=O,PCt=lhn((Xyn(),Pun(Gk(RCt,1),$Vn,285,0,[MCt,jCt,ECt,TCt])))}function l7(){l7=O,tCt=lhn((Mbn(),Pun(Gk(oCt,1),$Vn,218,0,[ZPt,YPt,QPt,JPt])))}function b7(){b7=O,rOt=lhn((Fwn(),Pun(Gk(cOt,1),$Vn,311,0,[eOt,ZIt,tOt,nOt])))}function w7(){w7=O,BIt=lhn((mdn(),Pun(Gk(YIt,1),$Vn,374,0,[KIt,_It,RIt,DIt])))}function d7(){d7=O,qBn(),HLt=RQn,BLt=KQn,GLt=new Nb(RQn),qLt=new Nb(KQn)}function g7(){g7=O,Ght=new OP(QZn,0),qht=new OP("IMPROVE_STRAIGHTNESS",1)}function p7(n,t){return hH(),WB(n,new rI(t,iln(t.e.c.length+t.g.c.length)))}function v7(n,t){return hH(),WB(n,new rI(t,iln(t.e.c.length+t.g.c.length)))}function m7(n,t){return 10!=vnn(t)&&Pun(tsn(t),t.hm,t.__elementTypeId$,vnn(t),n),n}function y7(n,t){var e;return-1!=(e=E7(n,t,0))&&(s6(n,e),!0)}function k7(n,t){var e;return(e=BB(v6(n.e,t),387))?(RH(e),e.e):null}function j7(n){var t;return JO(n)&&(t=0-n,!isNaN(t))?t:uan(aon(n))}function E7(n,t,e){for(;e<n.c.length;++e)if(cV(t,n.c[e]))return e;return-1}function T7(n,t,e){var i;return EW(n),(i=new sn).a=t,n.a.Nb(new IS(i,e)),i.a}function M7(n){var t;return EW(n),t=x8(xNt,qQn,25,0,15,1),gE(n.a,new ww(t)),t}function S7(n){var t;return t=BB(xq(n.j,0),11),BB(mMn(t,(hWn(),dlt)),11)}function P7(n){var t;if(!Zin(n))throw Hp(new yv);return n.e=1,t=n.d,n.d=null,t}function C7(n,t){var e;this.f=n,this.b=t,e=BB(RX(n.b,t),283),this.c=e?e.b:null}function I7(){G_(),this.b=new xp,this.f=new xp,this.g=new xp,this.e=new xp}function O7(n,t){this.a=x8(Out,a1n,10,n.a.c.length,0,1),Qgn(n.a,this.a),this.b=t}function A7(n){var t;for(t=n.p+1;t<n.c.a.c.length;++t)--BB(xq(n.c.a,t),10).p}function $7(n){var t;null!=(t=n.Ai())&&-1!=n.d&&BB(t,92).Ng(n),n.i&&n.i.Fi()}function L7(n){V$(this),this.g=n?CY(n,n.$d()):null,this.f=n,jQ(this),this._d()}function N7(n,t,e,i,r,c,a){kin.call(this,t,i,r,c,a),Fh(this),this.c=n,this.b=e}function x7(n,t,e,i,r){return kW(n),kW(t),kW(e),kW(i),kW(r),new jU(n,t,i)}function D7(n,t){if(t<0)throw Hp(new Ay(n5n+t));return g3(n,t+1),xq(n.j,t)}function R7(n,t,e,i){if(!n)throw Hp(new _y($Rn(t,Pun(Gk(Ant,1),HWn,1,5,[e,i]))))}function K7(n,t){return cV(t,xq(n.f,0))||cV(t,xq(n.f,1))||cV(t,xq(n.f,2))}function _7(n,t){LK(BB(BB(n.f,33).We((sWn(),uPt)),98))&&Qbn(yV(BB(n.f,33)),t)}function F7(n,t){var e,i;return!(i=(e=BB(t,675)).Oh())&&e.Rh(i=new RI(n,t)),i}function B7(n,t){var e,i;return!(i=(e=BB(t,677)).pk())&&e.tk(i=new K0(n,t)),i}function H7(n){return n.b||(n.b=new JG(n,VAt,n),!n.a&&(n.a=new oR(n,n))),n.b}function q7(){q7=O,Oat=new WS("XY",0),Iat=new WS("X",1),Aat=new WS("Y",2)}function G7(){G7=O,crt=new zS("TOP",0),rrt=new zS(eJn,1),irt=new zS(oJn,2)}function z7(){z7=O,Pft=new xP(QZn,0),Cft=new xP("TOP",1),Sft=new xP(oJn,2)}function U7(){U7=O,Kvt=new GP("INPUT_ORDER",0),_vt=new GP("PORT_DEGREE",1)}function X7(){X7=O,btt=M$(SQn,SQn,524287),wtt=M$(0,0,CQn),dtt=F5(1),F5(2),gtt=F5(0)}function W7(n,t,e){n.a.c=x8(Ant,HWn,1,0,5,1),Xqn(n,t,e),0==n.a.c.length||f_n(n,t)}function V7(n){var t,e;return YU(n,0,e=n.length,t=x8(ONt,WVn,25,e,15,1),0),t}function Q7(n){var t;return n.dh()||(t=bX(n.Tg())-n.Ah(),n.ph().bk(t)),n.Pg()}function Y7(n){var t;return null==(t=een(yan(n,32)))&&(fgn(n),t=een(yan(n,32))),t}function J7(n,t){var e;return(e=Awn(n.d,t))>=0?Zpn(n,e,!0,!0):cOn(n,t,!0)}function Z7(n,t){var e,i;return MM(),e=f3(n),i=f3(t),!!e&&!!i&&!Kpn(e.k,i.k)}function nnn(n,t){Pen(n,null==t||WK((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function tnn(n,t){Cen(n,null==t||WK((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function enn(n,t){Sen(n,null==t||WK((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function inn(n,t){Men(n,null==t||WK((kW(t),t))||isNaN((kW(t),t))?0:(kW(t),t))}function rnn(n){(this.q?this.q:(SQ(),SQ(),het)).Ac(n.q?n.q:(SQ(),SQ(),het))}function cnn(n,t){return cL(t,99)&&0!=(BB(t,18).Bb&BQn)?new xO(t,n):new Aan(t,n)}function ann(n,t){return cL(t,99)&&0!=(BB(t,18).Bb&BQn)?new xO(t,n):new Aan(t,n)}function unn(n,t){Vrt=new it,ect=t,BB((Wrt=n).b,65),K8(Wrt,Vrt,null),uqn(Wrt)}function onn(n,t,e){var i;return i=n.g[t],jL(n,t,n.oi(t,e)),n.gi(t,e,i),n.ci(),i}function snn(n,t){var e;return(e=n.Xc(t))>=0&&(n.$c(e),!0)}function hnn(n){var t;return n.d!=n.r&&(t=Ikn(n),n.e=!!t&&t.Cj()==E9n,n.d=t),n.e}function fnn(n,t){var e;for(yX(n),yX(t),e=!1;t.Ob();)e|=n.Fc(t.Pb());return e}function lnn(n,t){var e;return(e=BB(RX(n.e,t),387))?(uL(n,e),e.e):null}function bnn(n){var t,e;return t=n/60|0,0==(e=n%60)?""+t:t+":"+e}function wnn(n,t){return Qln(n),new Rq(n,new KK(new M6(t,n.a)))}function dnn(n,t){var e=n.a[t],i=(Zun(),ftt)[typeof e];return i?i(e):khn(typeof e)}function gnn(n){switch(n.g){case 0:return DWn;case 1:return-1;default:return 0}}function pnn(n){return Kkn(n,(X7(),gtt))<0?-CN(aon(n)):n.l+n.m*IQn+n.h*OQn}function vnn(n){return null==n.__elementTypeCategory$?10:n.__elementTypeCategory$}function mnn(n){var t;return null!=(t=0==n.b.c.length?null:xq(n.b,0))&&hrn(n,0),t}function ynn(n,t){for(;t[0]<n.length&&GO(" \t\r\n",YTn(fV(n,t[0])))>=0;)++t[0]}function knn(n,t){this.e=t,this.a=Van(n),this.a<54?this.f=j2(n):this.c=npn(n)}function jnn(n,t,e,i){wWn(),Ap.call(this,26),this.c=n,this.a=t,this.d=e,this.b=i}function Enn(n,t,e){var i,r;for(i=10,r=0;r<e-1;r++)t<i&&(n.a+="0"),i*=10;n.a+=t}function Tnn(n,t){var e;for(e=0;n.e!=n.i.gc();)gq(t,kpn(n),iln(e)),e!=DWn&&++e}function Mnn(n,t){var e;for(++n.d,++n.c[t],e=t+1;e<n.a.length;)++n.a[e],e+=e&-e}function Snn(n,t){var e,i,r;r=t.c.i,i=(e=BB(RX(n.f,r),57)).d.c-e.e.c,Yrn(t.a,i,0)}function Pnn(n){var t,e;return t=n+128,!(e=(jq(),jtt)[t])&&(e=jtt[t]=new $b(n)),e}function Cnn(n,t){var e;return kW(t),xnn(!!(e=n[":"+t]),Pun(Gk(Ant,1),HWn,1,5,[t])),e}function Inn(n){var t,e;if(n.b){e=null;do{t=n.b,n.b=null,e=sPn(t,e)}while(n.b);n.b=e}}function Onn(n){var t,e;if(n.a){e=null;do{t=n.a,n.a=null,e=sPn(t,e)}while(n.a);n.a=e}}function Ann(n){var t;for(++n.a,t=n.c.a.length;n.a<t;++n.a)if(n.c.b[n.a])return}function $nn(n,t){var e,i;for(e=(i=t.c)+1;e<=t.f;e++)n.a[e]>n.a[i]&&(i=e);return i}function Lnn(n,t){var e;return 0==(e=Ibn(n.e.c,t.e.c))?Pln(n.e.d,t.e.d):e}function Nnn(n,t){return 0==t.e||0==n.e?eet:($On(),ANn(n,t))}function xnn(n,t){if(!n)throw Hp(new _y(YNn("Enum constant undefined: %s",t)))}function Dnn(){Dnn=O,uut=new St,out=new Tt,cut=new At,aut=new $t,sut=new Lt}function Rnn(){Rnn=O,vit=new BS("BY_SIZE",0),mit=new BS("BY_SIZE_AND_SHAPE",1)}function Knn(){Knn=O,Dct=new XS("EADES",0),Rct=new XS("FRUCHTERMAN_REINGOLD",1)}function _nn(){_nn=O,Sht=new PP("READING_DIRECTION",0),Pht=new PP("ROTATION",1)}function Fnn(){Fnn=O,Mht=lhn((Vvn(),Pun(Gk(Cht,1),$Vn,335,0,[yht,mht,jht,Eht,kht])))}function Bnn(){Bnn=O,jvt=lhn((Nvn(),Pun(Gk(Avt,1),$Vn,315,0,[yvt,pvt,vvt,gvt,mvt])))}function Hnn(){Hnn=O,Ost=lhn((LEn(),Pun(Gk(Kst,1),$Vn,363,0,[Mst,Pst,Cst,Sst,Tst])))}function qnn(){qnn=O,zlt=lhn((Tbn(),Pun(Gk(ivt,1),$Vn,163,0,[qlt,_lt,Flt,Blt,Hlt])))}function Gnn(){Gnn=O,sTt=lhn(($Sn(),Pun(Gk(zTt,1),$Vn,316,0,[iTt,rTt,uTt,cTt,aTt])))}function znn(){znn=O,bMt=lhn((rpn(),Pun(Gk(jMt,1),$Vn,175,0,[hMt,sMt,uMt,fMt,oMt])))}function Unn(){Unn=O,BEt=lhn((YLn(),Pun(Gk(zEt,1),$Vn,355,0,[DEt,xEt,KEt,REt,_Et])))}function Xnn(){Xnn=O,qat=lhn((yMn(),Pun(Gk(Uat,1),$Vn,356,0,[Rat,Kat,_at,Fat,Bat])))}function Wnn(){Wnn=O,GPt=lhn((Ffn(),Pun(Gk(WPt,1),$Vn,103,0,[BPt,FPt,_Pt,KPt,HPt])))}function Vnn(){Vnn=O,zCt=lhn((cpn(),Pun(Gk(JCt,1),$Vn,249,0,[BCt,qCt,_Ct,FCt,HCt])))}function Qnn(){Qnn=O,OIt=lhn((kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])))}function Ynn(n,t){var e;return(e=BB(RX(n.a,t),134))||(e=new Zn,VW(n.a,t,e)),e}function Jnn(n){var t;return!!(t=BB(mMn(n,(hWn(),Rft)),305))&&t.a==n}function Znn(n){var t;return!!(t=BB(mMn(n,(hWn(),Rft)),305))&&t.i==n}function ntn(n,t){return kW(t),Dz(n),!!n.d.Ob()&&(t.td(n.d.Pb()),!0)}function ttn(n){return Vhn(n,DWn)>0?DWn:Vhn(n,_Vn)<0?_Vn:dG(n)}function etn(n){return n<3?(lin(n,IVn),n+1):n<OVn?CJ(n/.75+1):DWn}function itn(n,t){var e;return null==n.i&&qFn(n),e=n.i,t>=0&&t<e.length?e[t]:null}function rtn(n,t,e){var i;if(null==t)throw Hp(new gv);return i=zJ(n,t),i4(n,t,e),i}function ctn(n){return n.a>=-.01&&n.a<=fJn&&(n.a=0),n.b>=-.01&&n.b<=fJn&&(n.b=0),n}function atn(n,t){return t==(c_(),c_(),Met)?n.toLocaleLowerCase():n.toLowerCase()}function utn(n){return(0!=(2&n.i)?"interface ":0!=(1&n.i)?"":"class ")+(ED(n),n.o)}function otn(n){var t;t=new $m,f9((!n.q&&(n.q=new eU(QAt,n,11,10)),n.q),t)}function stn(n,t){var e;return e=t>0?t-1:t,$j(Lj(Fen(LH(new Xm,e),n.n),n.j),n.k)}function htn(n,t,e,i){n.j=-1,qOn(n,EPn(n,t,e),(ZM(),BB(t,66).Mj().Ok(i)))}function ftn(n){this.g=n,this.f=new Np,this.a=e.Math.min(this.g.c.c,this.g.d.c)}function ltn(n){this.b=new Np,this.a=new Np,this.c=new Np,this.d=new Np,this.e=n}function btn(n,t){this.a=new xp,this.e=new xp,this.b=(Mhn(),uvt),this.c=n,this.b=t}function wtn(n,t,e){NR.call(this),xtn(this),this.a=n,this.c=e,this.b=t.d,this.f=t.e}function dtn(n){this.d=n,this.c=n.c.vc().Kc(),this.b=null,this.a=null,this.e=(ry(),znt)}function gtn(n){if(n<0)throw Hp(new _y("Illegal Capacity: "+n));this.g=this.ri(n)}function ptn(n,t){if(0>n||n>t)throw Hp(new Tk("fromIndex: 0, toIndex: "+n+hYn+t))}function vtn(n){var t;if(n.a==n.b.a)throw Hp(new yv);return t=n.a,n.c=t,n.a=n.a.e,t}function mtn(n){var t;Mx(!!n.c),t=n.c.a,Atn(n.d,n.c),n.b==n.c?n.b=t:--n.a,n.c=null}function ytn(n,t){var e;return Qln(n),e=new vQ(n,n.a.rd(),4|n.a.qd(),t),new Rq(n,e)}function ktn(n,t){var e,i;return(e=BB(lfn(n.d,t),14))?(i=t,n.e.pc(i,e)):null}function jtn(n,t){var e;for(e=n.Kc();e.Ob();)hon(BB(e.Pb(),70),(hWn(),ult),t)}function Etn(n){var t;return(t=Gy(MD(mMn(n,(HXn(),agt)))))<0&&hon(n,agt,t=0),t}function Ttn(n,t,i){var r;Fkn(i,r=e.Math.max(0,n.b/2-.5),1),WB(t,new iP(i,r))}function Mtn(n,t,e){return CJ(HH(n.a.e[BB(t.a,10).p]-n.a.e[BB(e.a,10).p]))}function Stn(n,t,e,i,r,c){var a;SZ(a=W5(i),r),MZ(a,c),JIn(n.a,i,new L_(a,t,e.f))}function Ptn(n,t){var e;if(!(e=NNn(n.Tg(),t)))throw Hp(new _y(r6n+t+u6n));return e}function Ctn(n,t){var e;for(e=n;JJ(e);)if((e=JJ(e))==t)return!0;return!1}function Itn(n,t){var e,i,r;for(i=t.a.cd(),e=BB(t.a.dd(),14).gc(),r=0;r<e;r++)n.td(i)}function Otn(n,t){var e,i,r,c;for(kW(t),r=0,c=(i=n.c).length;r<c;++r)e=i[r],t.td(e)}function Atn(n,t){var e;return e=t.c,t.a.b=t.b,t.b.a=t.a,t.a=t.b=null,t.c=null,--n.b,e}function $tn(n,t){return!(!t||n.b[t.g]!=t||($X(n.b,t.g,null),--n.c,0))}function Ltn(n,t){return!!Zrn(n,t,dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15))))}function Ntn(n,t){LK(BB(mMn(BB(n.e,10),(HXn(),ept)),98))&&(SQ(),m$(BB(n.e,10).j,t))}function xtn(n){n.b=(J9(),Qit),n.f=(G7(),rrt),n.d=(lin(2,AVn),new J6(2)),n.e=new Gj}function Dtn(){Dtn=O,Git=new qS("BEGIN",0),zit=new qS(eJn,1),Uit=new qS("END",2)}function Rtn(){Rtn=O,zPt=new _C(eJn,0),UPt=new _C("HEAD",1),XPt=new _C("TAIL",2)}function Ktn(){return hAn(),Pun(Gk(aAt,1),$Vn,237,0,[iAt,nAt,tAt,ZOt,eAt,YOt,QOt,JOt])}function _tn(){return PPn(),Pun(Gk(SMt,1),$Vn,277,0,[kMt,wMt,vMt,yMt,dMt,gMt,pMt,mMt])}function Ftn(){return kDn(),Pun(Gk(iht,1),$Vn,270,0,[Bst,Gst,Fst,Xst,qst,Hst,Ust,zst])}function Btn(){return sNn(),Pun(Gk(Dvt,1),$Vn,260,0,[Ivt,Tvt,Pvt,Mvt,Svt,Evt,Cvt,Ovt])}function Htn(){Htn=O,ZCt=lhn((QEn(),Pun(Gk(aIt,1),$Vn,98,0,[YCt,QCt,VCt,UCt,WCt,XCt])))}function qtn(){qtn=O,nrt=(Dtn(),Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length,Zit=nrt}function Gtn(n){this.b=(yX(n),new t_(n)),this.a=new Np,this.d=new Np,this.e=new Gj}function ztn(n){var t;return(t=e.Math.sqrt(n.a*n.a+n.b*n.b))>0&&(n.a/=t,n.b/=t),n}function Utn(n){var t;return n.w?n.w:((t=V1(n))&&!t.kh()&&(n.w=t),t)}function Xtn(n){var t;return null==n?null:VTn(t=BB(n,190),t.length)}function Wtn(n,t){if(null==n.g||t>=n.i)throw Hp(new LO(t,n.i));return n.li(t,n.g[t])}function Vtn(n){var t,e;for(t=n.a.d.j,e=n.c.d.j;t!=e;)orn(n.b,t),t=Mln(t);orn(n.b,t)}function Qtn(n){var t;for(t=0;t<n.c.length;t++)(l1(t,n.c.length),BB(n.c[t],11)).p=t}function Ytn(n,t,e){var i,r,c;for(r=t[e],i=0;i<r.length;i++)c=r[i],n.e[c.c.p][c.p]=i}function Jtn(n,t){var e,i,r,c;for(r=0,c=(i=n.d).length;r<c;++r)e=i[r],lL(n.g,e).a=t}function Ztn(n,t){var e;for(e=spn(n,0);e.b!=e.d.c;)UR(BB(b3(e),8),t);return n}function nen(n,t){return XR(B$(BB(RX(n.g,t),8)),_$(BB(RX(n.f,t),460).b))}function ten(n){var t;return p2(n.e,n),Px(n.b),n.c=n.a,t=BB(n.a.Pb(),42),n.b=dun(n),t}function een(n){var t;return JH(null==n||Array.isArray(n)&&!((t=vnn(n))>=14&&t<=16)),n}function ien(n,t,e){var i=function(){return n.apply(i,arguments)};return t.apply(i,e),i}function ren(n,t,e){var i,r;i=t;do{r=Gy(n.p[i.p])+e,n.p[i.p]=r,i=n.a[i.p]}while(i!=t)}function cen(n,t){var e,i;i=n.a,e=Qfn(n,t,null),i!=t&&!n.e&&(e=azn(n,t,e)),e&&e.Fi()}function aen(n,t){return h$(),rin(KVn),e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)}function uen(n,t){return h$(),rin(KVn),e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)}function oen(n,t){return _Mn(),E$(n.b.c.length-n.e.c.length,t.b.c.length-t.e.c.length)}function sen(n,t){return Zj(Jrn(n,t,dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15)))))}function hen(){hen=O,Aut=lhn((uSn(),Pun(Gk($ut,1),$Vn,267,0,[Cut,Put,Mut,Iut,Sut,Tut])))}function fen(){fen=O,tSt=lhn((wEn(),Pun(Gk(qPt,1),$Vn,291,0,[ZMt,JMt,YMt,VMt,WMt,QMt])))}function len(){len=O,xMt=lhn((wvn(),Pun(Gk(nSt,1),$Vn,248,0,[CMt,AMt,$Mt,LMt,IMt,OMt])))}function ben(){ben=O,rht=lhn(($Pn(),Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])))}function wen(){wen=O,oft=lhn((JMn(),Pun(Gk(mft,1),$Vn,275,0,[cft,eft,aft,rft,ift,tft])))}function den(){den=O,nft=lhn((Bjn(),Pun(Gk(uft,1),$Vn,274,0,[Qht,Vht,Jht,Wht,Yht,Xht])))}function gen(){gen=O,rvt=lhn((TTn(),Pun(Gk(ovt,1),$Vn,313,0,[tvt,Zpt,Ypt,Jpt,evt,nvt])))}function pen(){pen=O,Hht=lhn((gSn(),Pun(Gk(zht,1),$Vn,276,0,[Dht,xht,Kht,Rht,Fht,_ht])))}function ven(){ven=O,Jyt=lhn((DPn(),Pun(Gk(_kt,1),$Vn,327,0,[Qyt,Uyt,Wyt,Xyt,Vyt,zyt])))}function men(){men=O,uIt=lhn((lIn(),Pun(Gk(IIt,1),$Vn,273,0,[rIt,eIt,iIt,tIt,nIt,cIt])))}function yen(){yen=O,sCt=lhn((nMn(),Pun(Gk(yCt,1),$Vn,312,0,[aCt,rCt,uCt,eCt,cCt,iCt])))}function ken(){return n$n(),Pun(Gk(GCt,1),$Vn,93,0,[ICt,CCt,ACt,DCt,xCt,NCt,$Ct,LCt,OCt])}function jen(n,t){var e;e=n.a,n.a=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,0,e,n.a))}function Een(n,t){var e;e=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,1,e,n.b))}function Ten(n,t){var e;e=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,3,e,n.b))}function Men(n,t){var e;e=n.f,n.f=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,3,e,n.f))}function Sen(n,t){var e;e=n.g,n.g=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,4,e,n.g))}function Pen(n,t){var e;e=n.i,n.i=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,5,e,n.i))}function Cen(n,t){var e;e=n.j,n.j=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,6,e,n.j))}function Ien(n,t){var e;e=n.j,n.j=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,1,e,n.j))}function Oen(n,t){var e;e=n.c,n.c=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,4,e,n.c))}function Aen(n,t){var e;e=n.k,n.k=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new f4(n,2,e,n.k))}function $en(n,t){var e;e=n.d,n.d=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new l4(n,2,e,n.d))}function Len(n,t){var e;e=n.s,n.s=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new l4(n,4,e,n.s))}function Nen(n,t){var e;e=n.t,n.t=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new l4(n,5,e,n.t))}function xen(n,t){var e;e=n.F,n.F=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,5,e,t))}function Den(n,t){var e;return(e=BB(RX((nS(),mAt),n),55))?e.xj(t):x8(Ant,HWn,1,t,5,1)}function Ren(n,t){var e;return t in n.a&&(e=zJ(n,t).he())?e.a:null}function Ken(n,t){var e,i;return tE(),i=new uo,!!t&&INn(i,t),xin(e=i,n),e}function _en(n,t,e){if(xsn(n,e),!n.Bk()&&null!=e&&!n.wj(e))throw Hp(new lv);return e}function Fen(n,t){return n.n=t,n.n?(n.f=new Np,n.e=new Np):(n.f=null,n.e=null),n}function Ben(n,t,e,i,r,c){var a;return Qen(e,a=mX(n,t)),a.i=r?8:0,a.f=i,a.e=r,a.g=c,a}function Hen(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=1,this.c=n,this.a=e}function qen(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=2,this.c=n,this.a=e}function Gen(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=6,this.c=n,this.a=e}function zen(n,t,e,i,r){this.d=t,this.k=i,this.f=r,this.o=-1,this.p=7,this.c=n,this.a=e}function Uen(n,t,e,i,r){this.d=t,this.j=i,this.e=r,this.o=-1,this.p=4,this.c=n,this.a=e}function Xen(n,t){var e,i,r,c;for(r=0,c=(i=t).length;r<c;++r)e=i[r],V9(n.a,e);return n}function Wen(n){var t,e,i;for(e=0,i=(t=n).length;e<i;++e)yX(t[e]);return new AO(n)}function Ven(n){var t=/function(?:\s+([\w$]+))?\s*\(/.exec(n);return t&&t[1]||zVn}function Qen(n,t){if(n){t.n=n;var e=UJ(t);e?e.gm=t:SWn[n]=[t]}}function Yen(n,t,i){var r;return r=n.length,_Cn(n,0,t,0,e.Math.min(i,r),!0),t}function Jen(n,t,e){var i,r;for(r=t.Kc();r.Ob();)i=BB(r.Pb(),79),TU(n,BB(e.Kb(i),33))}function Zen(){YE();for(var n=PWn,t=0;t<arguments.length;t++)n.push(arguments[t])}function nin(n,t){var e,i,r;for(i=0,r=(e=t).length;i<r;++i)r5(n,e[i],n.c.b,n.c)}function tin(n,t){n.b=e.Math.max(n.b,t.d),n.e+=t.r+(0==n.a.c.length?0:n.c),WB(n.a,t)}function ein(n){Mx(n.c>=0),rgn(n.d,n.c)<0&&(n.a=n.a-1&n.d.a.length-1,n.b=n.d.c),n.c=-1}function iin(n){return n.a<54?n.f<0?-1:n.f>0?1:0:(!n.c&&(n.c=yhn(n.f)),n.c).e}function rin(n){if(!(n>=0))throw Hp(new _y("tolerance ("+n+") must be >= 0"));return n}function cin(){return cMt||ksn(cMt=new ORn,Pun(Gk(_it,1),HWn,130,0,[new Nf])),cMt}function ain(){ain=O,Gvt=new zP(hJn,0),Hvt=new zP("INPUT",1),qvt=new zP("OUTPUT",2)}function uin(){uin=O,wht=new MP("ARD",0),ght=new MP("MSD",1),dht=new MP("MANUAL",2)}function oin(){oin=O,Omt=new YP("BARYCENTER",0),Amt=new YP(E1n,1),$mt=new YP(T1n,2)}function sin(n,t){var e;if(e=n.gc(),t<0||t>e)throw Hp(new tK(t,e));return new RK(n,t)}function hin(n,t){var e;return cL(t,42)?n.c.Mc(t):(e=rdn(n,t),Wdn(n,t),e)}function fin(n,t,e){return Ihn(n,t),Nrn(n,e),Len(n,0),Nen(n,1),nln(n,!0),Yfn(n,!0),n}function lin(n,t){if(n<0)throw Hp(new _y(t+" cannot be negative but was: "+n));return n}function bin(n,t){var e,i;for(e=0,i=n.gc();e<i;++e)if(cV(t,n.Xb(e)))return e;return-1}function win(n){var t;for(t=n.c.Cc().Kc();t.Ob();)BB(t.Pb(),14).$b();n.c.$b(),n.d=0}function din(n){var t,e,i,r;for(i=0,r=(e=n.a).length;i<r;++i)QU(t=e[i],t.length,null)}function gin(n){var t,e;if(0==n)return 32;for(e=0,t=1;0==(t&n);t<<=1)++e;return e}function pin(n){var t;for(t=new Wb(eyn(n));t.a<t.c.c.length;)BB(n0(t),680).Gf()}function vin(n){vM(),this.g=new xp,this.f=new xp,this.b=new xp,this.c=new pJ,this.i=n}function min(){this.f=new Gj,this.d=new wm,this.c=new Gj,this.a=new Np,this.b=new Np}function yin(n,t,e,i){this.rj(),this.a=t,this.b=n,this.c=null,this.c=new lK(this,t,e,i)}function kin(n,t,e,i,r){this.d=n,this.n=t,this.g=e,this.o=i,this.p=-1,r||(this.o=-2-i-1)}function jin(){OL.call(this),this.n=-1,this.g=null,this.i=null,this.j=null,this.Bb|=k6n}function Ein(){return n_n(),Pun(Gk(iOt,1),$Vn,259,0,[GIt,UIt,qIt,XIt,WIt,QIt,VIt,zIt,HIt])}function Tin(){return tRn(),Pun(Gk(Bit,1),$Vn,250,0,[Rit,$it,Lit,Ait,xit,Dit,Nit,Oit,Iit])}function Min(){Min=O,Ott=Pun(Gk(ANt,1),hQn,25,15,[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15])}function Sin(){Sin=O,kmt=dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),Kat,Oot),_at,Iot)}function Pin(){Pin=O,jmt=dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),Kat,Oot),_at,Iot)}function Cin(){Cin=O,Mmt=dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),Kat,Oot),_at,Iot)}function Iin(){Iin=O,Cmt=WG(dq(dq(new B2,(yMn(),_at),(lWn(),Lot)),Fat,Eot),Bat,$ot)}function Oin(){Oin=O,hht=new TP("LAYER_SWEEP",0),sht=new TP(B1n,1),fht=new TP(QZn,2)}function Ain(n,t){var e,i;return e=n.c,(i=t.e[n.p])>0?BB(xq(e.a,i-1),10):null}function $in(n,t){var e;e=n.k,n.k=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,2,e,n.k))}function Lin(n,t){var e;e=n.f,n.f=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,8,e,n.f))}function Nin(n,t){var e;e=n.i,n.i=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,7,e,n.i))}function xin(n,t){var e;e=n.a,n.a=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,8,e,n.a))}function Din(n,t){var e;e=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,0,e,n.b))}function Rin(n,t){var e;e=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,0,e,n.b))}function Kin(n,t){var e;e=n.c,n.c=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,1,e,n.c))}function _in(n,t){var e;e=n.c,n.c=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,1,e,n.c))}function Fin(n,t){var e;e=n.c,n.c=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,4,e,n.c))}function Bin(n,t){var e;e=n.d,n.d=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,1,e,n.d))}function Hin(n,t){var e;e=n.D,n.D=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,2,e,n.D))}function qin(n,t){n.r>0&&n.c<n.r&&(n.c+=t,n.i&&n.i.d>0&&0!=n.g&&qin(n.i,t/n.r*n.i.d))}function Gin(n,t,e){var i;n.b=t,n.a=e,i=512==(512&n.a)?new Fm:new Dh,n.c=MDn(i,n.b,n.a)}function zin(n,t){return $xn(n.e,t)?(ZM(),hnn(t)?new lq(t,n):new xI(t,n)):new KI(t,n)}function Uin(n,t){return Jj(Zrn(n.a,t,dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15)))))}function Xin(n,t,e){return x7(n,new fw(t),new un,new lw(e),Pun(Gk(nit,1),$Vn,132,0,[]))}function Win(n){return 0>n?new VT:new $D(null,new m5(n+1,n))}function Vin(n,t){var e;return SQ(),e=new XT(1),XI(n)?mZ(e,n,t):jCn(e.f,n,t),new Xb(e)}function Qin(n,t){var e,i;return(e=n.o+n.p)<(i=t.o+t.p)?-1:e==i?0:1}function Yin(n){var t;return cL(t=mMn(n,(hWn(),dlt)),160)?mwn(BB(t,160)):null}function Jin(n){var t;return(n=e.Math.max(n,2))>(t=kon(n))?(t<<=1)>0?t:OVn:t}function Zin(n){switch(uN(3!=n.e),n.e){case 2:return!1;case 0:return!0}return _5(n)}function nrn(n,t){var e;return!!cL(t,8)&&(e=BB(t,8),n.a==e.a&&n.b==e.b)}function trn(n,t,e){var i,r;return r=t>>5,i=31&t,e0(jz(n.n[e][r],dG(yz(i,1))),3)}function ern(n,t){var e,i;for(i=t.vc().Kc();i.Ob();)vjn(n,(e=BB(i.Pb(),42)).cd(),e.dd())}function irn(n,t){var e;e=new it,BB(t.b,65),BB(t.b,65),BB(t.b,65),Otn(t.a,new TB(n,e,t))}function rrn(n,t){var e;e=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,21,e,n.b))}function crn(n,t){var e;e=n.d,n.d=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,11,e,n.d))}function arn(n,t){var e;e=n.j,n.j=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,13,e,n.j))}function urn(n,t,e){var i,r,c;for(c=n.a.length-1,r=n.b,i=0;i<e;r=r+1&c,++i)$X(t,i,n.a[r])}function orn(n,t){var e;return kW(t),e=t.g,!n.b[e]&&($X(n.b,e,t),++n.c,!0)}function srn(n,t){var e;return!((e=null==t?-1:E7(n.b,t,0))<0||(hrn(n,e),0))}function hrn(n,t){var e;e=s6(n.b,n.b.c.length-1),t<n.b.c.length&&(c5(n.b,t,e),KCn(n,t))}function frn(n,t){0==(k5(),Qet?null:t.c).length&&zD(t,new X),mZ(n.a,Qet?null:t.c,t)}function lrn(n,t){OTn(t,"Hierarchical port constraint processing",1),bpn(n),YXn(n),HSn(t)}function brn(n,t){var e,i;for(i=t.Kc();i.Ob();)e=BB(i.Pb(),266),n.b=!0,TU(n.e,e),e.b=n}function wrn(n,t){var e,i;return e=1-t,i=n.a[e],n.a[e]=i.a[t],i.a[t]=n,n.b=!0,i.b=!1,i}function drn(n,t){var e,i;return e=BB(mMn(n,(HXn(),spt)),8),i=BB(mMn(t,spt),8),Pln(e.b,i.b)}function grn(n){RG.call(this),this.b=Gy(MD(mMn(n,(HXn(),ypt)))),this.a=BB(mMn(n,Zdt),218)}function prn(n,t,e){G2.call(this,n,t,e),this.a=new xp,this.b=new xp,this.d=new Wd(this)}function vrn(n){this.e=n,this.d=new bE(etn(gz(this.e).gc())),this.c=this.e.a,this.b=this.e.c}function mrn(n){this.b=n,this.a=x8(ANt,hQn,25,n+1,15,1),this.c=x8(ANt,hQn,25,n,15,1),this.d=0}function yrn(n,t,e){var i;return jxn(n,t,i=new Np,e,!0,!0),n.b=new mrn(i.c.length),i}function krn(n,t){var e;return(e=BB(RX(n.c,t),458))||((e=new cm).c=t,VW(n.c,e.c,e)),e}function jrn(n,t){var e=n.a,i=0;for(var r in e)e.hasOwnProperty(r)&&(t[i++]=r);return t}function Ern(n){return null==n.b?(YM(),YM(),x$t):n.Lk()?n.Kk():n.Jk()}function Trn(n){var t,e;for(e=new AL(n);e.e!=e.i.gc();)Pen(t=BB(kpn(e),33),0),Cen(t,0)}function Mrn(){Mrn=O,sat=new up(OZn),hat=new up(AZn),oat=new up($Zn),uat=new up(LZn)}function Srn(){Srn=O,qut=new ZS("TO_INTERNAL_LTR",0),Hut=new ZS("TO_INPUT_DIRECTION",1)}function Prn(){Prn=O,Qkt=new dC("P1_NODE_PLACEMENT",0),Ykt=new dC("P2_EDGE_ROUTING",1)}function Crn(){Crn=O,Rst=new kP("START",0),Dst=new kP("MIDDLE",1),xst=new kP("END",2)}function Irn(){Irn=O,tst=new iR("edgelabelcenterednessanalysis.includelabel",(hN(),ptt))}function Orn(n,t){JT(AV(new Rq(null,new w1(new Cb(n.b),1)),new JC(n,t)),new nI(n,t))}function Arn(){this.c=new IE(0),this.b=new IE(B3n),this.d=new IE(F3n),this.a=new IE(JJn)}function $rn(n){var t,e;for(e=n.c.a.ec().Kc();e.Ob();)Ul(t=BB(e.Pb(),214),new HMn(t.e))}function Lrn(n){var t,e;for(e=n.c.a.ec().Kc();e.Ob();)zl(t=BB(e.Pb(),214),new Vz(t.f))}function Nrn(n,t){var e;e=n.zb,n.zb=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,1,e,n.zb))}function xrn(n,t){var e;e=n.xb,n.xb=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,3,e,n.xb))}function Drn(n,t){var e;e=n.yb,n.yb=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,2,e,n.yb))}function Rrn(n,t){var e;(e=new Om).n=t,f9((!n.s&&(n.s=new eU(FAt,n,21,17)),n.s),e)}function Krn(n,t){var e;(e=new pD).n=t,f9((!n.s&&(n.s=new eU(FAt,n,21,17)),n.s),e)}function _rn(n,t){var e,i;for(z9(e=n.Pc(),0,e.length,t),i=0;i<e.length;i++)n._c(i,e[i])}function Frn(n,t){var e,i,r;for(kW(t),e=!1,r=t.Kc();r.Ob();)i=r.Pb(),e|=n.Fc(i);return e}function Brn(n){var t,e,i;for(t=0,i=n.Kc();i.Ob();)t=~~(t+=null!=(e=i.Pb())?nsn(e):0);return t}function Hrn(n){var t;return 0==n?"UTC":(n<0?(n=-n,t="UTC+"):t="UTC-",t+bnn(n))}function qrn(n,t){var e;return cL(t,14)?(e=BB(t,14),n.Gc(e)):fnn(n,BB(yX(t),20).Kc())}function Grn(n,t,e){btn.call(this,t,e),this.d=x8(Out,a1n,10,n.a.c.length,0,1),Qgn(n.a,this.d)}function zrn(n){n.a=null,n.e=null,n.b.c=x8(Ant,HWn,1,0,5,1),n.f.c=x8(Ant,HWn,1,0,5,1),n.c=null}function Urn(n,t){t?null==n.B&&(n.B=n.D,n.D=null):null!=n.B&&(n.D=n.B,n.B=null)}function Xrn(n,t){return Gy(MD($N($fn($V(new Rq(null,new w1(n.c.b,16)),new xd(n)),t))))}function Wrn(n,t){return Gy(MD($N($fn($V(new Rq(null,new w1(n.c.b,16)),new Nd(n)),t))))}function Vrn(n,t){OTn(t,k1n,1),JT(wnn(new Rq(null,new w1(n.b,16)),new Zt),new ne),HSn(t)}function Qrn(n,t){var e,i;return e=BB(ZAn(n,(Uyn(),Ljt)),19),i=BB(ZAn(t,Ljt),19),E$(e.a,i.a)}function Yrn(n,t,e){var i,r;for(r=spn(n,0);r.b!=r.d.c;)(i=BB(b3(r),8)).a+=t,i.b+=e;return n}function Jrn(n,t,e){var i;for(i=n.b[e&n.f];i;i=i.b)if(e==i.a&&wW(t,i.g))return i;return null}function Zrn(n,t,e){var i;for(i=n.c[e&n.f];i;i=i.d)if(e==i.f&&wW(t,i.i))return i;return null}function ncn(n,t,e){var i,r,c;for(i=0,r=0;r<e;r++)c=t[r],n[r]=c<<1|i,i=c>>>31;0!=i&&(n[e]=i)}function tcn(n,t){var e,i;for(SQ(),i=new Np,e=0;e<n;++e)i.c[i.c.length]=t;return new $k(i)}function ecn(n){var t;return QI((t=T2(n)).a,0)?(hM(),hM(),Pet):(hM(),new yx(t.b))}function icn(n){var t;return QI((t=T2(n)).a,0)?(hM(),hM(),Pet):(hM(),new yx(t.c))}function rcn(n){var t;return QI((t=E2(n)).a,0)?(fM(),fM(),Cet):(fM(),new kx(t.b))}function ccn(n){return n.b.c.i.k==(uSn(),Mut)?BB(mMn(n.b.c.i,(hWn(),dlt)),11):n.b.c}function acn(n){return n.b.d.i.k==(uSn(),Mut)?BB(mMn(n.b.d.i,(hWn(),dlt)),11):n.b.d}function ucn(n,t,e,i,r,c,a,u,o,s,h,f,l){return bCn(n,t,e,i,r,c,a,u,o,s,h,f,l),Gln(n,!1),n}function ocn(n,t,e,i,r,c,a){gT.call(this,n,t),this.d=e,this.e=i,this.c=r,this.b=c,this.a=u6(a)}function scn(n,t){typeof window===AWn&&typeof window.$gwt===AWn&&(window.$gwt[n]=t)}function hcn(n,t){return Aun(),n==Zat&&t==eut||n==eut&&t==Zat||n==tut&&t==nut||n==nut&&t==tut}function fcn(n,t){return Aun(),n==Zat&&t==nut||n==Zat&&t==tut||n==eut&&t==tut||n==eut&&t==nut}function lcn(n,t){return h$(),rin(fJn),e.Math.abs(0-t)<=fJn||0==t||isNaN(0)&&isNaN(t)?0:n/t}function bcn(){return bDn(),Pun(Gk(Tft,1),$Vn,256,0,[hft,lft,bft,wft,dft,gft,vft,sft,fft,pft])}function wcn(){wcn=O,P$t=new Im,I$t=Pun(Gk(FAt,1),N9n,170,0,[]),C$t=Pun(Gk(QAt,1),x9n,59,0,[])}function dcn(){dcn=O,smt=new VP("NO",0),umt=new VP("GREEDY",1),omt=new VP("LOOK_BACK",2)}function gcn(){gcn=O,Dut=new Ht,Nut=new Bt,xut=new qt,Lut=new Gt,Rut=new zt,Kut=new Ut}function pcn(n){var t,e;for(e=0,t=new Wb(n.b);t.a<t.c.c.length;)BB(n0(t),29).p=e,++e}function vcn(n,t){var e;return $In(new xC((e=_Tn(n)).c,e.d),new xC(e.b,e.a),n.rf(),t,n.Hf())}function mcn(n,t){var e;return n.b?null:(e=stn(n,n.g),DH(n.a,e),e.i=n,n.d=t,e)}function ycn(n,t,e){OTn(e,"DFS Treeifying phase",1),jdn(n,t),cxn(n,t),n.a=null,n.b=null,HSn(e)}function kcn(n,t,e){this.g=n,this.d=t,this.e=e,this.a=new Np,UCn(this),SQ(),m$(this.a,null)}function jcn(n){this.i=n.gc(),this.i>0&&(this.g=this.ri(this.i+(this.i/8|0)+1),n.Qc(this.g))}function Ecn(n,t){MH.call(this,W$t,n,t),this.b=this,this.a=axn(n.Tg(),itn(this.e.Tg(),this.c))}function Tcn(n,t){var e,i;for(kW(t),i=t.vc().Kc();i.Ob();)e=BB(i.Pb(),42),n.zc(e.cd(),e.dd())}function Mcn(n,t,e){var i;for(i=e.Kc();i.Ob();)if(!G3(n,t,i.Pb()))return!1;return!0}function Scn(n,t,e,i,r){var c;return e&&(c=Awn(t.Tg(),n.c),r=e.gh(t,-1-(-1==c?i:c),null,r)),r}function Pcn(n,t,e,i,r){var c;return e&&(c=Awn(t.Tg(),n.c),r=e.ih(t,-1-(-1==c?i:c),null,r)),r}function Ccn(n){var t;if(-2==n.b){if(0==n.e)t=-1;else for(t=0;0==n.a[t];t++);n.b=t}return n.b}function Icn(n){switch(n.g){case 2:return kUn(),CIt;case 4:return kUn(),oIt;default:return n}}function Ocn(n){switch(n.g){case 1:return kUn(),SIt;case 3:return kUn(),sIt;default:return n}}function Acn(n){var t,e,i;return n.j==(kUn(),sIt)&&(e=SN(t=UOn(n),oIt),(i=SN(t,CIt))||i&&e)}function $cn(n){var t;return new YK(t=BB(n.e&&n.e(),9),BB(VU(t,t.length),9),t.length)}function Lcn(n,t){OTn(t,k1n,1),twn(sM(new Pw((gM(),new HV(n,!1,!1,new Ft))))),HSn(t)}function Ncn(n,t){return hN(),XI(n)?f6(n,SD(t)):UI(n)?Tz(n,MD(t)):zI(n)?Ez(n,TD(t)):n.wd(t)}function xcn(n,t){t.q=n,n.d=e.Math.max(n.d,t.r),n.b+=t.d+(0==n.a.c.length?0:n.c),WB(n.a,t)}function Dcn(n,t){var e,i,r,c;return r=n.c,e=n.c+n.b,c=n.d,i=n.d+n.a,t.a>r&&t.a<e&&t.b>c&&t.b<i}function Rcn(n,t,e,i){cL(n.Cb,179)&&(BB(n.Cb,179).tb=null),Nrn(n,e),t&&_In(n,t),i&&n.xk(!0)}function Kcn(n,t){var e;qQ(e=BB(t,183),"x",n.i),qQ(e,"y",n.j),qQ(e,C6n,n.g),qQ(e,P6n,n.f)}function _cn(){_cn=O,Imt=ogn(jO(dq(dq(new B2,(yMn(),_at),(lWn(),Lot)),Fat,Eot),Bat),$ot)}function Fcn(){Fcn=O,Dmt=ogn(jO(dq(dq(new B2,(yMn(),_at),(lWn(),Lot)),Fat,Eot),Bat),$ot)}function Bcn(){Bcn=O,Xjt=new yC(QZn,0),Wjt=new yC("POLAR_COORDINATE",1),Ujt=new yC("ID",2)}function Hcn(){Hcn=O,Xvt=new UP("EQUALLY",0),Wvt=new UP(mJn,1),Vvt=new UP("NORTH_SOUTH",2)}function qcn(){qcn=O,$vt=lhn((sNn(),Pun(Gk(Dvt,1),$Vn,260,0,[Ivt,Tvt,Pvt,Mvt,Svt,Evt,Cvt,Ovt])))}function Gcn(){Gcn=O,Vst=lhn((kDn(),Pun(Gk(iht,1),$Vn,270,0,[Bst,Gst,Fst,Xst,qst,Hst,Ust,zst])))}function zcn(){zcn=O,EMt=lhn((PPn(),Pun(Gk(SMt,1),$Vn,277,0,[kMt,wMt,vMt,yMt,dMt,gMt,pMt,mMt])))}function Ucn(){Ucn=O,cAt=lhn((hAn(),Pun(Gk(aAt,1),$Vn,237,0,[iAt,nAt,tAt,ZOt,eAt,YOt,QOt,JOt])))}function Xcn(){Xcn=O,Qrt=new iR("debugSVG",(hN(),!1)),Yrt=new iR("overlapsExisted",!0)}function Wcn(n,t){return x7(new ow(n),new sw(t),new hw(t),new tn,Pun(Gk(nit,1),$Vn,132,0,[]))}function Vcn(){var n;return qet||(qet=new Kv,YA(n=new y5(""),(lM(),Het)),frn(qet,n)),qet}function Qcn(n,t){for(yX(t);n.Ob();)if(!Qan(BB(n.Pb(),10)))return!1;return!0}function Ycn(n,t){var e;return!!(e=XRn(cin(),n))&&(Ypn(t,(sWn(),mPt),e),!0)}function Jcn(n,t){var e;for(e=0;e<t.j.c.length;e++)BB(D7(n,e),21).Gc(BB(D7(t,e),14));return n}function Zcn(n,t){var e,i;for(i=new Wb(t.b);i.a<i.c.c.length;)e=BB(n0(i),29),n.a[e.p]=QMn(e)}function nan(n,t){var e,i;for(kW(t),i=n.vc().Kc();i.Ob();)e=BB(i.Pb(),42),t.Od(e.cd(),e.dd())}function tan(n,t){cL(t,83)?(BB(n.c,76).Xj(),ern(n,BB(t,83))):BB(n.c,76).Wb(t)}function ean(n){return cL(n,152)?o6(BB(n,152)):cL(n,131)?BB(n,131).a:cL(n,54)?new fy(n):new CT(n)}function ian(n,t){return t<n.b.gc()?BB(n.b.Xb(t),10):t==n.b.gc()?n.a:BB(xq(n.e,t-n.b.gc()-1),10)}function ran(n,t){n.a=rbn(n.a,1),n.c=e.Math.min(n.c,t),n.b=e.Math.max(n.b,t),n.d=rbn(n.d,t)}function can(n,t){OTn(t,"Edge and layer constraint edge reversal",1),Fzn(LRn(n)),HSn(t)}function aan(n){var t;null==n.d?(++n.e,n.f=0,rfn(null)):(++n.e,t=n.d,n.d=null,n.f=0,rfn(t))}function uan(n){var t;return 0==(t=n.h)?n.l+n.m*IQn:t==PQn?n.l+n.m*IQn-OQn:n}function oan(n){return qD(),n.A.Hc((mdn(),DIt))&&!n.B.Hc((n_n(),UIt))?ndn(n):null}function san(n){if(kW(n),0==n.length)throw Hp(new Mk("Zero length BigInteger"));iKn(this,n)}function han(n){if(!n)throw Hp(new Fy("no calls to next() since the last call to remove()"))}function fan(n){return $Qn<n&&n<OQn?n<0?e.Math.ceil(n):e.Math.floor(n):uan(gNn(n))}function lan(n,t){var e,i,r;for(e=n.c.Ee(),r=t.Kc();r.Ob();)i=r.Pb(),n.a.Od(e,i);return n.b.Kb(e)}function ban(n,t){var e,i,r;if(null!=(e=n.Jg())&&n.Mg())for(i=0,r=e.length;i<r;++i)e[i].ui(t)}function wan(n,t){var e,i;for(i=vW(e=n).e;i;){if((e=i)==t)return!0;i=vW(e).e}return!1}function dan(n,t,e){var i,r;return(i=n.a.f[t.p])<(r=n.a.f[e.p])?-1:i==r?0:1}function gan(n,t,e){var i,r;return r=BB(UK(n.d,t),19),i=BB(UK(n.b,e),19),r&&i?U6(n,r.a,i.a):null}function pan(n,t){var e,i;for(i=new AL(n);i.e!=i.i.gc();)SA(e=BB(kpn(i),33),e.i+t.b,e.j+t.d)}function van(n,t){var e,i;for(i=new Wb(t);i.a<i.c.c.length;)e=BB(n0(i),70),WB(n.d,e),KMn(n,e)}function man(n,t){var e,i;i=new Np,e=t;do{i.c[i.c.length]=e,e=BB(RX(n.k,e),17)}while(e);return i}function yan(n,t){var e;return 0!=(n.Db&t)?-1==(e=Rmn(n,t))?n.Eb:een(n.Eb)[e]:null}function kan(n,t){var e;return(e=new _f).G=t,!n.rb&&(n.rb=new Jz(n,HAt,n)),f9(n.rb,e),e}function jan(n,t){var e;return(e=new Ev).G=t,!n.rb&&(n.rb=new Jz(n,HAt,n)),f9(n.rb,e),e}function Ean(n,t){switch(t){case 1:return!!n.n&&0!=n.n.i;case 2:return null!=n.k}return m0(n,t)}function Tan(n){switch(n.a.g){case 1:return new EI;case 3:return new hyn;default:return new If}}function Man(n){var t;if(n.g>1||n.Ob())return++n.a,n.g=0,t=n.i,n.Ob(),t;throw Hp(new yv)}function San(n){var t;return a$(),uS(syt,n)||((t=new ua).a=n,wR(syt,n,t)),BB(oV(syt,n),635)}function Pan(n){var t,e,i;return e=0,(i=n)<0&&(i+=OQn,e=PQn),t=CJ(i/IQn),M$(CJ(i-t*IQn),t,e)}function Can(n){var t,e,i;for(i=0,e=new QT(n.a);e.a<e.c.a.length;)t=u4(e),n.b.Hc(t)&&++i;return i}function Ian(n){var t,e,i;for(t=1,i=n.Kc();i.Ob();)t=~~(t=31*t+(null==(e=i.Pb())?0:nsn(e)));return t}function Oan(n,t){var e;this.c=n,gmn(n,e=new Np,t,n.b,null,!1,null,!1),this.a=new M2(e,0)}function Aan(n,t){this.b=n,this.e=t,this.d=t.j,this.f=(ZM(),BB(n,66).Oj()),this.k=axn(t.e.Tg(),n)}function $an(n,t,e){this.b=(kW(n),n),this.d=(kW(t),t),this.e=(kW(e),e),this.c=this.d+""+this.e}function Lan(){this.a=BB(mpn((fRn(),qct)),19).a,this.c=Gy(MD(mpn(cat))),this.b=Gy(MD(mpn(tat)))}function Nan(){Nan=O,KCt=lhn((n$n(),Pun(Gk(GCt,1),$Vn,93,0,[ICt,CCt,ACt,DCt,xCt,NCt,$Ct,LCt,OCt])))}function xan(){xan=O,Fit=lhn((tRn(),Pun(Gk(Bit,1),$Vn,250,0,[Rit,$it,Lit,Ait,xit,Dit,Nit,Oit,Iit])))}function Dan(){Dan=O,Rrt=new US("UP",0),Nrt=new US(pJn,1),xrt=new US(cJn,2),Drt=new US(aJn,3)}function Ran(){Ran=O,sZ(),ykt=new $O(X3n,kkt=Rkt),B0(),vkt=new $O(W3n,mkt=Hkt)}function Kan(){Kan=O,jft=new NP("ONE_SIDED",0),Eft=new NP("TWO_SIDED",1),kft=new NP("OFF",2)}function _an(n){n.r=new Rv,n.w=new Rv,n.t=new Np,n.i=new Np,n.d=new Rv,n.a=new bA,n.c=new xp}function Fan(n){this.n=new Np,this.e=new YT,this.j=new YT,this.k=new Np,this.f=new Np,this.p=n}function Ban(n,t){n.c&&(JKn(n,t,!0),JT(new Rq(null,new w1(t,16)),new qd(n))),JKn(n,t,!1)}function Han(n,t,e){return n==(oin(),$mt)?new Pc:0!=H$n(t,1)?new Rj(e.length):new Dj(e.length)}function qan(n,t){var e;return t?((e=t.Ve()).dc()||(n.q?Tcn(n.q,e):n.q=new mO(e)),n):n}function Gan(n,t){var e;return void 0===(e=n.a.get(t))?++n.d:(mR(n.a,t),--n.c,oY(n.b)),e}function zan(n,t){var e;return 0==(e=t.p-n.p)?Pln(n.f.a*n.f.b,t.f.a*t.f.b):e}function Uan(n,t){var e,i;return(e=n.f.c.length)<(i=t.f.c.length)?-1:e==i?0:1}function Xan(n){return 0!=n.b.c.length&&BB(xq(n.b,0),70).a?BB(xq(n.b,0),70).a:eQ(n)}function Wan(n){var t;if(n){if((t=n).dc())throw Hp(new yv);return t.Xb(t.gc()-1)}return u1(n.Kc())}function Van(n){var t;return Vhn(n,0)<0&&(n=uH(n)),64-(0!=(t=dG(kz(n,32)))?ZIn(t):ZIn(dG(n))+32)}function Qan(n){var t;return t=BB(mMn(n,(hWn(),Qft)),61),n.k==(uSn(),Mut)&&(t==(kUn(),CIt)||t==oIt)}function Yan(n,t,e){var i,r;(r=BB(mMn(n,(HXn(),vgt)),74))&&(Wsn(i=new km,0,r),Ztn(i,e),Frn(t,i))}function Jan(n,t,e){var i,r,c,a;i=(a=vW(n)).d,r=a.c,c=n.n,t&&(c.a=c.a-i.b-r.a),e&&(c.b=c.b-i.d-r.b)}function Zan(n,t){var e,i;return(e=n.j)!=(i=t.j)?e.g-i.g:n.p==t.p?0:e==(kUn(),sIt)?n.p-t.p:t.p-n.p}function nun(n){var t,e;for(PUn(n),e=new Wb(n.d);e.a<e.c.c.length;)(t=BB(n0(e),101)).i&&XSn(t)}function tun(n,t,e,i,r){$X(n.c[t.g],e.g,i),$X(n.c[e.g],t.g,i),$X(n.b[t.g],e.g,r),$X(n.b[e.g],t.g,r)}function eun(n,t,e,i){BB(e.b,65),BB(e.b,65),BB(i.b,65),BB(i.b,65),BB(i.b,65),Otn(i.a,new EB(n,t,i))}function iun(n,t){n.d==(Ffn(),_Pt)||n.d==HPt?BB(t.a,57).c.Fc(BB(t.b,57)):BB(t.b,57).c.Fc(BB(t.a,57))}function run(n,t,e,i){return 1==e?(!n.n&&(n.n=new eU(zOt,n,1,7)),_pn(n.n,t,i)):eSn(n,t,e,i)}function cun(n,t){var e;return Nrn(e=new Ho,t),f9((!n.A&&(n.A=new NL(O$t,n,7)),n.A),e),e}function aun(n,t,e){var i,r;return r=N2(t,A6n),pjn((i=new aI(n,e)).a,i.b,r),r}function uun(n){var t;return(!n.a||0==(1&n.Bb)&&n.a.kh())&&cL(t=Ikn(n),148)&&(n.a=BB(t,148)),n.a}function oun(n,t){var e,i;for(kW(t),i=t.Kc();i.Ob();)if(e=i.Pb(),!n.Hc(e))return!1;return!0}function sun(n,t){var e,i,r;return e=n.l+t.l,i=n.m+t.m+(e>>22),r=n.h+t.h+(i>>22),M$(e&SQn,i&SQn,r&PQn)}function hun(n,t){var e,i,r;return e=n.l-t.l,i=n.m-t.m+(e>>22),r=n.h-t.h+(i>>22),M$(e&SQn,i&SQn,r&PQn)}function fun(n){var t;return n<128?(!(t=(Mq(),Mtt)[n])&&(t=Mtt[n]=new Lb(n)),t):new Lb(n)}function lun(n){var t;return cL(n,78)?n:((t=n&&n.__java$exception)||ov(t=new jhn(n)),t)}function bun(n){if(cL(n,186))return BB(n,118);if(n)return null;throw Hp(new Hy(e8n))}function wun(n,t){if(null==t)return!1;for(;n.a!=n.b;)if(Nfn(t,_hn(n)))return!0;return!1}function dun(n){return!!n.a.Ob()||n.a==n.d&&(n.a=new S2(n.e.f),n.a.Ob())}function gun(n,t){var e;return 0!=(e=t.Pc()).length&&(tH(n.c,n.c.length,e),!0)}function pun(n,t,e){var i,r;for(r=t.vc().Kc();r.Ob();)i=BB(r.Pb(),42),n.yc(i.cd(),i.dd(),e);return n}function vun(n,t){var e;for(e=new Wb(n.b);e.a<e.c.c.length;)hon(BB(n0(e),70),(hWn(),ult),t)}function mun(n,t,e){var i,r;for(r=new Wb(n.b);r.a<r.c.c.length;)SA(i=BB(n0(r),33),i.i+t,i.j+e)}function yun(n,t){if(!n)throw Hp(new _y($Rn("value already present: %s",Pun(Gk(Ant,1),HWn,1,5,[t]))))}function kun(n,t){return!(!n||!t||n==t)&&_dn(n.d.c,t.d.c+t.d.b)&&_dn(t.d.c,n.d.c+n.d.b)}function jun(){return k5(),Qet?new y5(null):FOn(Vcn(),"com.google.common.base.Strings")}function Eun(n,t){var e;return e=sx(t.a.gc()),JT(ytn(new Rq(null,new w1(t,1)),n.i),new NC(n,e)),e}function Tun(n){var t;return Nrn(t=new Ho,"T"),f9((!n.d&&(n.d=new NL(O$t,n,11)),n.d),t),t}function Mun(n){var t,e,i,r;for(t=1,e=0,r=n.gc();e<r;++e)t=31*t+(null==(i=n.ki(e))?0:nsn(i));return t}function Sun(n,t,e,i){var r;return w2(t,n.e.Hd().gc()),w2(e,n.c.Hd().gc()),r=n.a[t][e],$X(n.a[t],e,i),r}function Pun(n,t,e,i,r){return r.gm=n,r.hm=t,r.im=I,r.__elementTypeId$=e,r.__elementTypeCategory$=i,r}function Cun(n,t,i,r,c){return jDn(),e.Math.min(zGn(n,t,i,r,c),zGn(i,r,n,t,qx(new xC(c.a,c.b))))}function Iun(){Iun=O,ast=new tP(QZn,0),rst=new tP(C1n,1),cst=new tP(I1n,2),ist=new tP("BOTH",3)}function Oun(){Oun=O,vst=new mP(eJn,0),mst=new mP(cJn,1),yst=new mP(aJn,2),kst=new mP("TOP",3)}function Aun(){Aun=O,Zat=new QS("Q1",0),eut=new QS("Q4",1),nut=new QS("Q2",2),tut=new QS("Q3",3)}function $un(){$un=O,bmt=new QP("OFF",0),wmt=new QP("SINGLE_EDGE",1),lmt=new QP("MULTI_EDGE",2)}function Lun(){Lun=O,WTt=new SC("MINIMUM_SPANNING_TREE",0),XTt=new SC("MAXIMUM_SPANNING_TREE",1)}function Nun(){Nun=O,new up("org.eclipse.elk.addLayoutConfig"),ZTt=new ou,JTt=new au,new uu}function xun(n){var t,e;for(t=new YT,e=spn(n.d,0);e.b!=e.d.c;)DH(t,BB(b3(e),188).c);return t}function Dun(n){var t,e;for(e=new Np,t=n.Kc();t.Ob();)gun(e,wDn(BB(t.Pb(),33)));return e}function Run(n){var t;tBn(n,!0),t=VVn,Lx(n,(HXn(),fpt))&&(t+=BB(mMn(n,fpt),19).a),hon(n,fpt,iln(t))}function Kun(n,t,e){var i;$U(n.a),Otn(e.i,new jg(n)),kgn(n,i=new C$(BB(RX(n.a,t.b),65)),t),e.f=i}function _un(n,t){var e,i;return e=n.c,(i=t.e[n.p])<e.a.c.length-1?BB(xq(e.a,i+1),10):null}function Fun(n,t){var e,i;for(WQ(t,"predicate"),i=0;n.Ob();i++)if(e=n.Pb(),t.Lb(e))return i;return-1}function Bun(n,t){var e,i;if(i=0,n<64&&n<=t)for(t=t<64?t:63,e=n;e<=t;e++)i=i0(i,yz(1,e));return i}function Hun(n){var t,e,i;for(SQ(),i=0,e=n.Kc();e.Ob();)i+=null!=(t=e.Pb())?nsn(t):0,i|=0;return i}function qun(n){var t;return tE(),t=new co,n&&f9((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),t),t}function Gun(n){var t;return(t=new p).a=n,t.b=yon(n),t.c=x8(Qtt,sVn,2,2,6,1),t.c[0]=Hrn(n),t.c[1]=Hrn(n),t}function zun(n,t){if(0===t)return!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),void n.o.c.$b();mPn(n,t)}function Uun(n,t,e){switch(e.g){case 2:n.b=t;break;case 1:n.c=t;break;case 4:n.d=t;break;case 3:n.a=t}}function Xun(n){switch(n.g){case 1:return ECt;case 2:return jCt;case 3:return TCt;default:return MCt}}function Wun(n){switch(BB(mMn(n,(HXn(),kgt)),163).g){case 2:case 4:return!0;default:return!1}}function Vun(){Vun=O,yft=lhn((bDn(),Pun(Gk(Tft,1),$Vn,256,0,[hft,lft,bft,wft,dft,gft,vft,sft,fft,pft])))}function Qun(){Qun=O,JIt=lhn((n_n(),Pun(Gk(iOt,1),$Vn,259,0,[GIt,UIt,qIt,XIt,WIt,QIt,VIt,zIt,HIt])))}function Yun(){Yun=O,Xkt=dq(ogn(ogn(FM(dq(new B2,(zyn(),Kyt),(DPn(),Qyt)),_yt),Xyt),Wyt),Fyt,Vyt)}function Jun(){Jun=O,Aht=new CP(QZn,0),Oht=new CP("INCOMING_ONLY",1),$ht=new CP("OUTGOING_ONLY",2)}function Zun(){Zun=O,ftt={boolean:UT,number:Cy,string:Iy,object:TCn,function:TCn,undefined:Wp}}function non(n,t){vH(n>=0,"Negative initial capacity"),vH(t>=0,"Non-positive load factor"),$U(this)}function ton(n,t,e){return!(n>=128)&&JI(n<64?e0(yz(1,n),e):e0(yz(1,n-64),t),0)}function eon(n,t){return!(!n||!t||n==t)&&Ibn(n.b.c,t.b.c+t.b.b)<0&&Ibn(t.b.c,n.b.c+n.b.b)<0}function ion(n){var t,e,i;return e=n.n,i=n.o,t=n.d,new UV(e.a-t.b,e.b-t.d,i.a+(t.b+t.c),i.b+(t.d+t.a))}function ron(n){var t,e,i,r;for(i=0,r=(e=n.a).length;i<r;++i)Son(n,t=e[i],(kUn(),SIt)),Son(n,t,sIt)}function con(n){var t,e;for(null==n.j&&(n.j=(PY(),Ijn(ett.ce(n)))),t=0,e=n.j.length;t<e;++t);}function aon(n){var t,e;return M$(t=1+~n.l&SQn,e=~n.m+(0==t?1:0)&SQn,~n.h+(0==t&&0==e?1:0)&PQn)}function uon(n,t){return TFn(BB(BB(RX(n.g,t.a),46).a,65),BB(BB(RX(n.g,t.b),46).a,65))}function oon(n,t,e){var i;if(t>(i=n.gc()))throw Hp(new tK(t,i));return n.hi()&&(e=nZ(n,e)),n.Vh(t,e)}function son(n,t,e){return null==e?(!n.q&&(n.q=new xp),v6(n.q,t)):(!n.q&&(n.q=new xp),VW(n.q,t,e)),n}function hon(n,t,e){return null==e?(!n.q&&(n.q=new xp),v6(n.q,t)):(!n.q&&(n.q=new xp),VW(n.q,t,e)),n}function fon(n){var t,e;return qan(e=new y6,n),hon(e,(Mrn(),sat),n),eBn(n,e,t=new xp),Szn(n,e,t),e}function lon(n){var t,e,i;for(jDn(),e=x8(PMt,sVn,8,2,0,1),i=0,t=0;t<2;t++)i+=.5,e[t]=lmn(i,n);return e}function bon(n,t){var e,i,r;for(e=!1,i=n.a[t].length,r=0;r<i-1;r++)e|=Pdn(n,t,r,r+1);return e}function won(n,t,e,i,r){var c,a;for(a=e;a<=r;a++)for(c=t;c<=i;c++)vmn(n,c,a)||FRn(n,c,a,!0,!1)}function don(n,t){this.b=n,NO.call(this,(BB(Wtn(QQ((QX(),t$t).o),10),18),t.i),t.g),this.a=(wcn(),I$t)}function gon(n,t){this.c=n,this.d=t,this.b=this.d/this.c.c.Hd().gc()|0,this.a=this.d%this.c.c.Hd().gc()}function pon(){this.o=null,this.k=null,this.j=null,this.d=null,this.b=null,this.n=null,this.a=null}function von(n,t,i){this.q=new e.Date,this.q.setFullYear(n+sQn,t,i),this.q.setHours(0,0,0,0),lBn(this,0)}function mon(){mon=O,Nvt=new qP(QZn,0),Lvt=new qP("NODES_AND_EDGES",1),xvt=new qP("PREFER_EDGES",2)}function yon(n){var t;return 0==n?"Etc/GMT":(n<0?(n=-n,t="Etc/GMT-"):t="Etc/GMT+",t+bnn(n))}function kon(n){var t;if(n<0)return _Vn;if(0==n)return 0;for(t=OVn;0==(t&n);t>>=1);return t}function jon(n){var t,e;return 32==(e=ZIn(n.h))?32==(t=ZIn(n.m))?ZIn(n.l)+32:t+20-10:e-12}function Eon(n){var t;return null==(t=n.a[n.b])?null:($X(n.a,n.b,null),n.b=n.b+1&n.a.length-1,t)}function Ton(n){var t,e;return t=n.t-n.k[n.o.p]*n.d+n.j[n.o.p]>n.f,e=n.u+n.e[n.o.p]*n.d>n.f*n.s*n.d,t||e}function Mon(n,t,e){var i,r;return i=new H8(t,e),r=new q,n.b=Wxn(n,n.b,i,r),r.b||++n.c,n.b.b=!1,r.d}function Son(n,t,e){var i,r,c;for(c=0,r=Lfn(t,e).Kc();r.Ob();)i=BB(r.Pb(),11),VW(n.c,i,iln(c++))}function Pon(n){var t,e;for(e=new Wb(n.a.b);e.a<e.c.c.length;)(t=BB(n0(e),81)).g.c=-t.g.c-t.g.b;kNn(n)}function Con(n){var t,e;for(e=new Wb(n.a.b);e.a<e.c.c.length;)(t=BB(n0(e),57)).d.c=-t.d.c-t.d.b;yNn(n)}function Ion(n){var t;return(!n.c||0==(1&n.Bb)&&0!=(64&n.c.Db))&&cL(t=Ikn(n),88)&&(n.c=BB(t,26)),n.c}function Oon(n){var t,e,i;t=1+~n.l&SQn,e=~n.m+(0==t?1:0)&SQn,i=~n.h+(0==t&&0==e?1:0)&PQn,n.l=t,n.m=e,n.h=i}function Aon(n){var t,e,i,r,c;for(t=new Gj,r=0,c=(i=n).length;r<c;++r)e=i[r],t.a+=e.a,t.b+=e.b;return t}function $on(n,t){var e,i,r,c,a;for(SQ(),a=!1,r=0,c=(i=t).length;r<c;++r)e=i[r],a|=n.Fc(e);return a}function Lon(n){var t,e;for(jDn(),e=-17976931348623157e292,t=0;t<n.length;t++)n[t]>e&&(e=n[t]);return e}function Non(n,t,e){var i;return jxn(n,t,i=new Np,(kUn(),oIt),!0,!1),jxn(n,e,i,CIt,!1,!1),i}function xon(n,t,e){var i,r;return r=N2(t,"labels"),XAn((i=new gI(n,e)).a,i.b,r),r}function Don(n,t,e,i){var r;return(r=m$n(n,t,e,i))||!(r=aln(n,e,i))||Fqn(n,t,r)?r:null}function Ron(n,t,e,i){var r;return(r=y$n(n,t,e,i))||!(r=uln(n,e,i))||Fqn(n,t,r)?r:null}function Kon(n,t){var e;for(e=0;e<n.a.a.length;e++)if(!BB(Dq(n.a,e),169).Lb(t))return!1;return!0}function _on(n,t,e){if(yX(t),e.Ob())for(sO(t,CX(e.Pb()));e.Ob();)sO(t,n.a),sO(t,CX(e.Pb()));return t}function Fon(n){var t,e,i;for(SQ(),i=1,e=n.Kc();e.Ob();)i=31*i+(null!=(t=e.Pb())?nsn(t):0),i|=0;return i}function Bon(n,t,e,i,r){var c;return c=jAn(n,t),e&&Oon(c),r&&(n=Smn(n,t),ltt=i?aon(n):M$(n.l,n.m,n.h)),c}function Hon(n,t){var e;try{t.Vd()}catch(i){if(!cL(i=lun(i),78))throw Hp(i);e=i,n.c[n.c.length]=e}}function qon(n,t,e){var i,r;return cL(t,144)&&e?(i=BB(t,144),r=e,n.a[i.b][r.b]+n.a[r.b][i.b]):0}function Gon(n,t){switch(t){case 7:return!!n.e&&0!=n.e.i;case 8:return!!n.d&&0!=n.d.i}return fwn(n,t)}function zon(n,t){switch(t.g){case 0:cL(n.b,631)||(n.b=new Lan);break;case 1:cL(n.b,632)||(n.b=new fH)}}function Uon(n,t){for(;null!=n.g||n.c?null==n.g||0!=n.i&&BB(n.g[n.i-1],47).Ob():tZ(n);)vI(t,aLn(n))}function Xon(n,t,e){n.g=APn(n,t,(kUn(),oIt),n.b),n.d=APn(n,e,oIt,n.b),0!=n.g.c&&0!=n.d.c&&zMn(n)}function Won(n,t,e){n.g=APn(n,t,(kUn(),CIt),n.j),n.d=APn(n,e,CIt,n.j),0!=n.g.c&&0!=n.d.c&&zMn(n)}function Von(n,t,e){return!jE(AV(new Rq(null,new w1(n.c,16)),new aw(new ZC(t,e)))).sd((dM(),tit))}function Qon(n){var t;return EW(n),t=new sn,n.a.sd(t)?(CL(),new vy(kW(t.a))):(CL(),CL(),Set)}function Yon(n){var t;return!(n.b<=0)&&((t=GO("MLydhHmsSDkK",YTn(fV(n.c,0))))>1||t>=0&&n.b<3)}function Jon(n){var t,e;for(t=new km,e=spn(n,0);e.b!=e.d.c;)Kx(t,0,new wA(BB(b3(e),8)));return t}function Zon(n){var t;for(t=new Wb(n.a.b);t.a<t.c.c.length;)BB(n0(t),81).f.$b();ky(n.b,n),BNn(n)}function nsn(n){return XI(n)?vvn(n):UI(n)?VO(n):zI(n)?(kW(n),n?1231:1237):iz(n)?n.Hb():AG(n)?PN(n):tY(n)}function tsn(n){return XI(n)?Qtt:UI(n)?Ptt:zI(n)?ktt:iz(n)||AG(n)?n.gm:n.gm||Array.isArray(n)&&Gk(ntt,1)||ntt}function esn(n){if(0===n.g)return new cu;throw Hp(new _y(N4n+(null!=n.f?n.f:""+n.g)))}function isn(n){if(0===n.g)return new iu;throw Hp(new _y(N4n+(null!=n.f?n.f:""+n.g)))}function rsn(n,t,e){if(0===t)return!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),void tan(n.o,e);yCn(n,t,e)}function csn(n,t,e){this.g=n,this.e=new Gj,this.f=new Gj,this.d=new YT,this.b=new YT,this.a=t,this.c=e}function asn(n,t,e,i){this.b=new Np,this.n=new Np,this.i=i,this.j=e,this.s=n,this.t=t,this.r=0,this.d=0}function usn(n){this.e=n,this.d=new p4(this.e.g),this.a=this.d,this.b=dun(this),this.$modCount=n.$modCount}function osn(n){for(;!n.d||!n.d.Ob();){if(!n.b||Wy(n.b))return null;n.d=BB(dU(n.b),47)}return n.d}function ssn(n){return WB(n.c,(Nun(),ZTt)),uen(n.a,Gy(MD(mpn((Rwn(),Vpt)))))?new qu:new Cg(n)}function hsn(n){switch(n.g){case 1:return F3n;default:case 2:return 0;case 3:return JJn;case 4:return B3n}}function fsn(){var n;return wWn(),PNt||(n=ex(ZUn("M",!0)),n=gG(ZUn("M",!1),n),PNt=n)}function lsn(n,t){var e,i,r;for(r=n.b;r;){if(0==(e=n.a.ue(t,r.d)))return r;i=e<0?0:1,r=r.a[i]}return null}function bsn(n,t,e){var i,r;hN(),i=!!TO(e),(r=BB(t.xc(i),15))||(r=new Np,t.zc(i,r)),r.Fc(e)}function wsn(n,t){var e,i;return(e=BB(ZAn(n,(W$n(),dEt)),19).a)==(i=BB(ZAn(t,dEt),19).a)||e<i?-1:e>i?1:0}function dsn(n,t){return!!bNn(n,t)&&(JIn(n.b,BB(mMn(t,(hWn(),Xft)),21),t),DH(n.a,t),!0)}function gsn(n){var t,e;(t=BB(mMn(n,(hWn(),Elt)),10))&&(y7((e=t.c).a,t),0==e.a.c.length&&y7(vW(t).b,e))}function psn(n){return Qet?x8(Get,dYn,572,0,0,1):BB(Qgn(n.a,x8(Get,dYn,572,n.a.c.length,0,1)),842)}function vsn(n,t,e,i){return nV(),new hy(Pun(Gk(Hnt,1),kVn,42,0,[(zvn(n,t),new vT(n,t)),(zvn(e,i),new vT(e,i))]))}function msn(n,t,e){var i;return fin(i=new $m,t,e),f9((!n.q&&(n.q=new eU(QAt,n,11,10)),n.q),i),i}function ysn(n){var t,e,i,r;for(e=(r=fS(AOt,n)).length,i=x8(Qtt,sVn,2,e,6,1),t=0;t<e;++t)i[t]=r[t];return i}function ksn(n,t){var e,i,r,c,a;for(r=0,c=(i=t).length;r<c;++r)e=i[r],a=new UX(n),e.Qe(a),NBn(a);$U(n.f)}function jsn(n,t){var e;return t===n||!!cL(t,224)&&(e=BB(t,224),Nfn(n.Zb(),e.Zb()))}function Esn(n,t){var e;2*t+1>=n.b.c.length||(Esn(n,2*t+1),(e=2*t+2)<n.b.c.length&&Esn(n,e),KCn(n,t))}function Tsn(n,t,e){var i,r;this.g=n,this.c=t,this.a=this,this.d=this,r=Jin(e),i=x8(Qnt,CVn,330,r,0,1),this.b=i}function Msn(n,t,e){var i;for(i=e-1;i>=0&&n[i]===t[i];i--);return i<0?0:sS(e0(n[i],UQn),e0(t[i],UQn))?-1:1}function Ssn(n,t){var e,i;for(i=spn(n,0);i.b!=i.d.c;)(e=BB(b3(i),214)).e.length>0&&(t.td(e),e.i&&pln(e))}function Psn(n,t){var e,i;return i=BB(yan(n.a,4),126),e=x8(dAt,i9n,415,t,0,1),null!=i&&aHn(i,0,e,0,i.length),e}function Csn(n,t){var e;return e=new rRn(0!=(256&n.f),n.i,n.a,n.d,0!=(16&n.f),n.j,n.g,t),null!=n.e||(e.c=n),e}function Isn(n,t){var e;for(e=n.Zb().Cc().Kc();e.Ob();)if(BB(e.Pb(),14).Hc(t))return!0;return!1}function Osn(n,t,e,i,r){var c,a;for(a=e;a<=r;a++)for(c=t;c<=i;c++)if(vmn(n,c,a))return!0;return!1}function Asn(n,t,e){var i,r,c,a;for(kW(e),a=!1,c=n.Zc(t),r=e.Kc();r.Ob();)i=r.Pb(),c.Rb(i),a=!0;return a}function $sn(n,t){var e;return n===t||!!cL(t,83)&&(e=BB(t,83),zSn(lz(n),e.vc()))}function Lsn(n,t,e){var i,r;for(r=e.Kc();r.Ob();)if(i=BB(r.Pb(),42),n.re(t,i.dd()))return!0;return!1}function Nsn(n,t,e){return n.d[t.p][e.p]||(ivn(n,t,e),n.d[t.p][e.p]=!0,n.d[e.p][t.p]=!0),n.a[t.p][e.p]}function xsn(n,t){if(!n.ai()&&null==t)throw Hp(new _y("The 'no null' constraint is violated"));return t}function Dsn(n,t){null==n.D&&null!=n.B&&(n.D=n.B,n.B=null),Hin(n,null==t?null:(kW(t),t)),n.C&&n.yk(null)}function Rsn(n,t){return!(!n||n==t||!Lx(t,(hWn(),rlt)))&&BB(mMn(t,(hWn(),rlt)),10)!=n}function Ksn(n){switch(n.i){case 2:return!0;case 1:return!1;case-1:++n.c;default:return n.pl()}}function _sn(n){switch(n.i){case-2:return!0;case-1:return!1;case 1:--n.c;default:return n.ql()}}function Fsn(n){_J.call(this,"The given string does not match the expected format for individual spacings.",n)}function Bsn(){Bsn=O,uOt=new cI("ELK",0),oOt=new cI("JSON",1),aOt=new cI("DOT",2),sOt=new cI("SVG",3)}function Hsn(){Hsn=O,sjt=new vC(QZn,0),hjt=new vC("RADIAL_COMPACTION",1),fjt=new vC("WEDGE_COMPACTION",2)}function qsn(){qsn=O,zet=new pS("CONCURRENT",0),Uet=new pS("IDENTITY_FINISH",1),Xet=new pS("UNORDERED",2)}function Gsn(){Gsn=O,wM(),oct=new $O(BJn,sct=rct),uct=new up(HJn),hct=new up(qJn),fct=new up(GJn)}function zsn(){zsn=O,lst=new ji,bst=new Ei,fst=new Ti,hst=new Mi,kW(new Si),sst=new D}function Usn(){Usn=O,emt=new WP("CONSERVATIVE",0),imt=new WP("CONSERVATIVE_SOFT",1),rmt=new WP("SLOPPY",2)}function Xsn(){Xsn=O,dCt=new WA(15),wCt=new XA((sWn(),XSt),dCt),gCt=gPt,hCt=aSt,fCt=KSt,bCt=BSt,lCt=FSt}function Wsn(n,t,e){var i,r;for(i=new YT,r=spn(e,0);r.b!=r.d.c;)DH(i,new wA(BB(b3(r),8)));Asn(n,t,i)}function Vsn(n){var t,e,i;for(t=0,i=x8(PMt,sVn,8,n.b,0,1),e=spn(n,0);e.b!=e.d.c;)i[t++]=BB(b3(e),8);return i}function Qsn(n){var t;return!n.a&&(n.a=new eU(WAt,n,9,5)),0!=(t=n.a).i?HM(BB(Wtn(t,0),678)):null}function Ysn(n,t){var e;return e=rbn(n,t),sS(r0(n,t),0)|YI(r0(n,e),0)?e:rbn(bVn,r0(jz(e,63),1))}function Jsn(n,t){var e;e=null!=mpn((Rwn(),Vpt))&&null!=t.wg()?Gy(MD(t.wg()))/Gy(MD(mpn(Vpt))):1,VW(n.b,t,e)}function Zsn(n,t){var e,i;return(e=BB(n.d.Bc(t),14))?((i=n.e.hc()).Gc(e),n.e.d-=e.gc(),e.$b(),i):null}function nhn(n,t){var e,i;if(0!=(i=n.c[t]))for(n.c[t]=0,n.d-=i,e=t+1;e<n.a.length;)n.a[e]-=i,e+=e&-e}function thn(n){var t;if((t=n.a.c.length)>0)return Kz(t-1,n.a.c.length),s6(n.a,t-1);throw Hp(new mv)}function ehn(n,t,e){if(t<0)throw Hp(new Ay(n5n+t));t<n.j.c.length?c5(n.j,t,e):(g3(n,t),WB(n.j,e))}function ihn(n,t,e){if(n>t)throw Hp(new _y(mYn+n+yYn+t));if(n<0||t>e)throw Hp(new Tk(mYn+n+kYn+t+hYn+e))}function rhn(n){if(!n.a||0==(8&n.a.i))throw Hp(new Fy("Enumeration class expected for layout option "+n.f))}function chn(n){var t;++n.j,0==n.i?n.g=null:n.i<n.g.length&&(t=n.g,n.g=n.ri(n.i),aHn(t,0,n.g,0,n.i))}function ahn(n,t){var e,i;for(e=n.a.length-1,n.c=n.c-1&e;t!=n.c;)i=t+1&e,$X(n.a,t,n.a[i]),t=i;$X(n.a,n.c,null)}function uhn(n,t){var e,i;for(e=n.a.length-1;t!=n.b;)i=t-1&e,$X(n.a,t,n.a[i]),t=i;$X(n.a,n.b,null),n.b=n.b+1&e}function ohn(n,t,e){var i;return LZ(t,n.c.length),0!=(i=e.Pc()).length&&(tH(n.c,t,i),!0)}function shn(n){var t,e;if(null==n)return null;for(t=0,e=n.length;t<e;t++)if(!PH(n[t]))return n[t];return null}function hhn(n,t,e){var i,r,c,a;for(c=0,a=(r=e).length;c<a;++c)if(i=r[c],n.b.re(t,i.cd()))return i;return null}function fhn(n){var t,e,i,r,c;for(c=1,i=0,r=(e=n).length;i<r;++i)c=31*c+(null!=(t=e[i])?nsn(t):0),c|=0;return c}function lhn(n){var t,e,i,r,c;for(t={},r=0,c=(i=n).length;r<c;++r)t[":"+(null!=(e=i[r]).f?e.f:""+e.g)]=e;return t}function bhn(n){var t;for(yX(n),C_(!0,"numberToAdvance must be nonnegative"),t=0;t<0&&dAn(n);t++)U5(n);return t}function whn(n){var t,e,i;for(i=0,e=new oz(ZL(n.a.Kc(),new h));dAn(e);)(t=BB(U5(e),17)).c.i==t.d.i||++i;return i}function dhn(n,t){var e,i,r;for(e=n,r=0;;){if(e==t)return r;if(!(i=e.e))throw Hp(new wv);e=vW(i),++r}}function ghn(n,t){var e,i,r;for(r=t-n.f,i=new Wb(n.d);i.a<i.c.c.length;)kdn(e=BB(n0(i),443),e.e,e.f+r);n.f=t}function phn(n,t,i){return e.Math.abs(t-n)<_3n||e.Math.abs(i-n)<_3n||(t-n>_3n?n-i>_3n:i-n>_3n)}function vhn(n,t){return n?t&&!n.j||cL(n,124)&&0==BB(n,124).a.b?0:n.Re():0}function mhn(n,t){return n?t&&!n.k||cL(n,124)&&0==BB(n,124).a.a?0:n.Se():0}function yhn(n){return ODn(),n<0?-1!=n?new Rpn(-1,-n):Ytt:n<=10?Ztt[CJ(n)]:new Rpn(1,n)}function khn(n){throw Zun(),Hp(new gy("Unexpected typeof result '"+n+"'; please report this bug to the GWT team"))}function jhn(n){hk(),V$(this),jQ(this),this.e=n,Cxn(this,n),this.g=null==n?zWn:Bbn(n),this.a="",this.b=n,this.a=""}function Ehn(){this.a=new nu,this.f=new dg(this),this.b=new gg(this),this.i=new pg(this),this.e=new vg(this)}function Thn(){cy.call(this,new q8(etn(16))),lin(2,oVn),this.b=2,this.a=new HW(null,null,0,null),iv(this.a,this.a)}function Mhn(){Mhn=O,cvt=new KP("DUMMY_NODE_OVER",0),avt=new KP("DUMMY_NODE_UNDER",1),uvt=new KP("EQUAL",2)}function Shn(){Shn=O,Xat=HJ(Pun(Gk(WPt,1),$Vn,103,0,[(Ffn(),_Pt),FPt])),Wat=HJ(Pun(Gk(WPt,1),$Vn,103,0,[HPt,KPt]))}function Phn(n){return(kUn(),yIt).Hc(n.j)?Gy(MD(mMn(n,(hWn(),Llt)))):Aon(Pun(Gk(PMt,1),sVn,8,0,[n.i.n,n.n,n.a])).b}function Chn(n){var t,e;for(t=n.b.a.a.ec().Kc();t.Ob();)e=new Q$n(BB(t.Pb(),561),n.e,n.f),WB(n.g,e)}function Ihn(n,t){var e,i;e=n.nk(t,null),i=null,t&&(iE(),cen(i=new Kp,n.r)),(e=HTn(n,i,e))&&e.Fi()}function Ohn(n,t){var e,i;for(i=0!=H$n(n.d,1),e=!0;e;)e=!1,e=t.c.Tf(t.e,i),e|=DNn(n,t,i,!1),i=!i;$rn(n)}function Ahn(n,t){var e,i,r;return i=!1,e=t.q.d,t.d<n.b&&(r=dNn(t.q,n.b),t.q.d>r&&(aEn(t.q,r),i=e!=t.q.d)),i}function $hn(n,t){var i,r,c,a,u;return a=t.i,u=t.j,r=a-(i=n.f).i,c=u-i.j,e.Math.sqrt(r*r+c*c)}function Lhn(n,t){var e;return(e=Ydn(n))||(!$Ot&&($Ot=new Oo),RHn(),f9((e=new Cp(YPn(t))).Vk(),n)),e}function Nhn(n,t){var e,i;return(e=BB(n.c.Bc(t),14))?((i=n.hc()).Gc(e),n.d-=e.gc(),e.$b(),n.mc(i)):n.jc()}function xhn(n,t){var e;for(e=0;e<t.length;e++)if(n==(b1(e,t.length),t.charCodeAt(e)))return!0;return!1}function Dhn(n,t){var e;for(e=0;e<t.length;e++)if(n==(b1(e,t.length),t.charCodeAt(e)))return!0;return!1}function Rhn(n){var t,e;if(null==n)return!1;for(t=0,e=n.length;t<e;t++)if(!PH(n[t]))return!1;return!0}function Khn(n){var t;if(0!=n.c)return n.c;for(t=0;t<n.a.length;t++)n.c=33*n.c+(-1&n.a[t]);return n.c=n.c*n.e,n.c}function _hn(n){var t;return Px(n.a!=n.b),t=n.d.a[n.a],Ex(n.b==n.d.c&&null!=t),n.c=n.a,n.a=n.a+1&n.d.a.length-1,t}function Fhn(n){var t;if(!(n.c.c<0?n.a>=n.c.b:n.a<=n.c.b))throw Hp(new yv);return t=n.a,n.a+=n.c.c,++n.b,iln(t)}function Bhn(n){var t;return t=new ftn(n),i2(n.a,sut,new Jy(Pun(Gk(Jat,1),HWn,369,0,[t]))),t.d&&WB(t.f,t.d),t.f}function Hhn(n){var t;return qan(t=new O$(n.a),n),hon(t,(hWn(),dlt),n),t.o.a=n.g,t.o.b=n.f,t.n.a=n.i,t.n.b=n.j,t}function qhn(n,t,e,i){var r,c;for(c=n.Kc();c.Ob();)(r=BB(c.Pb(),70)).n.a=t.a+(i.a-r.o.a)/2,r.n.b=t.b,t.b+=r.o.b+e}function Ghn(n,t,e){var i;for(i=t.a.a.ec().Kc();i.Ob();)if(cY(n,BB(i.Pb(),57),e))return!0;return!1}function zhn(n){var t,e;for(e=new Wb(n.r);e.a<e.c.c.length;)if(t=BB(n0(e),10),n.n[t.p]<=0)return t;return null}function Uhn(n){var t,e;for(e=new Rv,t=new Wb(n);t.a<t.c.c.length;)Frn(e,dDn(BB(n0(t),33)));return e}function Xhn(n){var t;return t=kA(Cmt),BB(mMn(n,(hWn(),Zft)),21).Hc((bDn(),dft))&&dq(t,(yMn(),_at),(lWn(),Bot)),t}function Whn(n,t,e){var i;i=new MOn(n,t),JIn(n.r,t.Hf(),i),e&&!Hz(n.u)&&(i.c=new yJ(n.d),Otn(t.wf(),new Cw(i)))}function Vhn(n,t){var e;return JO(n)&&JO(t)&&(e=n-t,!isNaN(e))?e:Kkn(JO(n)?Pan(n):n,JO(t)?Pan(t):t)}function Qhn(n,t){return t<n.length&&(b1(t,n.length),63!=n.charCodeAt(t))&&(b1(t,n.length),35!=n.charCodeAt(t))}function Yhn(n,t,e,i){var r,c;n.a=t,c=i?0:1,n.f=(r=new ZSn(n.c,n.a,e,c),new uRn(e,n.a,r,n.e,n.b,n.c==(oin(),Amt)))}function Jhn(n,t,e){var i,r;return r=n.a,n.a=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,1,r,t),e?e.Ei(i):e=i),e}function Zhn(n,t,e){var i,r;return r=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,3,r,t),e?e.Ei(i):e=i),e}function nfn(n,t,e){var i,r;return r=n.f,n.f=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,0,r,t),e?e.Ei(i):e=i),e}function tfn(n,t){var e,i,r,c;return(c=kCn((i=t,(r=n?Ydn(n):null)&&r.Xk(),i)))==t&&(e=Ydn(n))&&e.Xk(),c}function efn(n,t){var e,i,r;for(r=1,e=n,i=t>=0?t:-t;i>0;)i%2==0?(e*=e,i=i/2|0):(r*=e,i-=1);return t<0?1/r:r}function ifn(n,t){var e,i,r;for(r=1,e=n,i=t>=0?t:-t;i>0;)i%2==0?(e*=e,i=i/2|0):(r*=e,i-=1);return t<0?1/r:r}function rfn(n){var t,e,i,r;if(null!=n)for(e=0;e<n.length;++e)if(t=n[e])for(BB(t.g,367),r=t.i,i=0;i<r;++i);}function cfn(n){var t,i,r;for(r=0,i=new Wb(n.a);i.a<i.c.c.length;)t=BB(n0(i),187),r=e.Math.max(r,t.g);return r}function afn(n){var t,e,i;for(i=new Wb(n.b);i.a<i.c.c.length;)(t=(e=BB(n0(i),214)).c.Rf()?e.f:e.a)&&wqn(t,e.j)}function ufn(){ufn=O,vCt=new HC("INHERIT",0),pCt=new HC("INCLUDE_CHILDREN",1),mCt=new HC("SEPARATE_CHILDREN",2)}function ofn(n,t){switch(t){case 1:return!n.n&&(n.n=new eU(zOt,n,1,7)),void sqn(n.n);case 2:return void $in(n,null)}zun(n,t)}function sfn(n){switch(n.gc()){case 0:return Fnt;case 1:return new Pq(yX(n.Xb(0)));default:return new SY(n)}}function hfn(n){switch(s_(),n.gc()){case 0:return VX(),Vnt;case 1:return new yk(n.Kc().Pb());default:return new vS(n)}}function ffn(n){switch(s_(),n.c){case 0:return VX(),Vnt;case 1:return new yk(JCn(new QT(n)));default:return new sy(n)}}function lfn(n,t){yX(n);try{return n.xc(t)}catch(e){if(cL(e=lun(e),205)||cL(e,173))return null;throw Hp(e)}}function bfn(n,t){yX(n);try{return n.Bc(t)}catch(e){if(cL(e=lun(e),205)||cL(e,173))return null;throw Hp(e)}}function wfn(n,t){yX(n);try{return n.Hc(t)}catch(e){if(cL(e=lun(e),205)||cL(e,173))return!1;throw Hp(e)}}function dfn(n,t){yX(n);try{return n.Mc(t)}catch(e){if(cL(e=lun(e),205)||cL(e,173))return!1;throw Hp(e)}}function gfn(n,t){yX(n);try{return n._b(t)}catch(e){if(cL(e=lun(e),205)||cL(e,173))return!1;throw Hp(e)}}function pfn(n,t){n.a.c.length>0&&dsn(BB(xq(n.a,n.a.c.length-1),570),t)||WB(n.a,new p5(t))}function vfn(n){var t,e;G_(),t=n.d.c-n.e.c,Otn((e=BB(n.g,145)).b,new jd(t)),Otn(e.c,new Ed(t)),e5(e.i,new Td(t))}function mfn(n){var t;return(t=new Ck).a+="VerticalSegment ",uO(t,n.e),t.a+=" ",oO(t,JL(new mk,new Wb(n.k))),t.a}function yfn(n){var t;return(t=BB(lnn(n.c.c,""),229))||(t=new UZ(jj(kj(new pu,""),"Other")),Jgn(n.c.c,"",t)),t}function kfn(n){var t;return 0!=(64&n.Db)?P$n(n):((t=new fN(P$n(n))).a+=" (name: ",cO(t,n.zb),t.a+=")",t.a)}function jfn(n,t,e){var i,r;return r=n.sb,n.sb=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,4,r,t),e?e.Ei(i):e=i),e}function Efn(n,t){var e,i;for(e=0,i=abn(n,t).Kc();i.Ob();)e+=null!=mMn(BB(i.Pb(),11),(hWn(),Elt))?1:0;return e}function Tfn(n,t,e){var i,r,c;for(i=0,c=spn(n,0);c.b!=c.d.c&&!((r=Gy(MD(b3(c))))>e);)r>=t&&++i;return i}function Mfn(n,t,e){var i;return i=new N7(n.e,3,13,null,t.c||(gWn(),l$t),uvn(n,t),!1),e?e.Ei(i):e=i,e}function Sfn(n,t,e){var i;return i=new N7(n.e,4,13,t.c||(gWn(),l$t),null,uvn(n,t),!1),e?e.Ei(i):e=i,e}function Pfn(n,t,e){var i,r;return r=n.r,n.r=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,8,r,n.r),e?e.Ei(i):e=i),e}function Cfn(n,t){var e,i;return!(i=(e=BB(t,676)).vk())&&e.wk(i=cL(t,88)?new $I(n,BB(t,26)):new _0(n,BB(t,148))),i}function Ifn(n,t,e){var i;n.qi(n.i+1),i=n.oi(t,e),t!=n.i&&aHn(n.g,t,n.g,t+1,n.i-t),$X(n.g,t,i),++n.i,n.bi(t,e),n.ci()}function Ofn(n,t){var e;return t.a&&(e=t.a.a.length,n.a?oO(n.a,n.b):n.a=new lN(n.d),G0(n.a,t.a,t.d.length,e)),n}function Afn(n,t){var e,i,r;if(t.vi(n.a),null!=(r=BB(yan(n.a,8),1936)))for(e=0,i=r.length;e<i;++e)null.jm()}function $fn(n,t){var e;return e=new sn,n.a.sd(e)?(CL(),new vy(kW(T7(n,e.a,t)))):(EW(n),CL(),CL(),Set)}function Lfn(n,t){switch(t.g){case 2:case 1:return abn(n,t);case 3:case 4:return ean(abn(n,t))}return SQ(),SQ(),set}function Nfn(n,t){return XI(n)?mK(n,t):UI(n)?vK(n,t):zI(n)?(kW(n),GI(n)===GI(t)):iz(n)?n.Fb(t):AG(n)?FO(n,t):v0(n,t)}function xfn(n){return n?0!=(1&n.i)?n==$Nt?ktt:n==ANt?Att:n==DNt?Ctt:n==xNt?Ptt:n==LNt?Rtt:n==RNt?_tt:n==NNt?Ttt:Stt:n:null}function Dfn(n,t,e,i,r){0!=t&&0!=i&&(1==t?r[i]=dvn(r,e,i,n[0]):1==i?r[t]=dvn(r,n,t,e[0]):YOn(n,e,r,t,i))}function Rfn(n,t){var e;0!=n.c.length&&(hA(e=BB(Qgn(n,x8(Out,a1n,10,n.c.length,0,1)),193),new Oe),eOn(e,t))}function Kfn(n,t){var e;0!=n.c.length&&(hA(e=BB(Qgn(n,x8(Out,a1n,10,n.c.length,0,1)),193),new Ae),eOn(e,t))}function _fn(n,t,e,i){switch(t){case 1:return!n.n&&(n.n=new eU(zOt,n,1,7)),n.n;case 2:return n.k}return Eyn(n,t,e,i)}function Ffn(){Ffn=O,BPt=new KC(hJn,0),FPt=new KC(aJn,1),_Pt=new KC(cJn,2),KPt=new KC(pJn,3),HPt=new KC("UP",4)}function Bfn(){Bfn=O,wut=new YS(QZn,0),but=new YS("INSIDE_PORT_SIDE_GROUPS",1),lut=new YS("FORCE_MODEL_ORDER",2)}function Hfn(n,t,e){if(n<0||t>e)throw Hp(new Ay(mYn+n+kYn+t+", size: "+e));if(n>t)throw Hp(new _y(mYn+n+yYn+t))}function qfn(n,t,e){if(t<0)cIn(n,e);else{if(!e.Ij())throw Hp(new _y(r6n+e.ne()+c6n));BB(e,66).Nj().Vj(n,n.yh(),t)}}function Gfn(n,t,e,i,r,c,a,u){var o;for(o=e;c<a;)o>=i||t<e&&u.ue(n[t],n[o])<=0?$X(r,c++,n[t++]):$X(r,c++,n[o++])}function zfn(n,t,e,i,r,c){this.e=new Np,this.f=(ain(),Gvt),WB(this.e,n),this.d=t,this.a=e,this.b=i,this.f=r,this.c=c}function Ufn(n,t){var e,i;for(i=new AL(n);i.e!=i.i.gc();)if(e=BB(kpn(i),26),GI(t)===GI(e))return!0;return!1}function Xfn(n){var t,e,i,r;for(dWn(),i=0,r=(e=tpn()).length;i<r;++i)if(-1!=E7((t=e[i]).a,n,0))return t;return Irt}function Wfn(n){return n>=65&&n<=70?n-65+10:n>=97&&n<=102?n-97+10:n>=48&&n<=57?n-48:0}function Vfn(n){var t;return 0!=(64&n.Db)?P$n(n):((t=new fN(P$n(n))).a+=" (source: ",cO(t,n.d),t.a+=")",t.a)}function Qfn(n,t,e){var i,r;return r=n.a,n.a=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,5,r,n.a),e?KEn(e,i):e=i),e}function Yfn(n,t){var e;e=0!=(256&n.Bb),t?n.Bb|=256:n.Bb&=-257,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,2,e,t))}function Jfn(n,t){var e;e=0!=(256&n.Bb),t?n.Bb|=256:n.Bb&=-257,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,8,e,t))}function Zfn(n,t){var e;e=0!=(256&n.Bb),t?n.Bb|=256:n.Bb&=-257,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,8,e,t))}function nln(n,t){var e;e=0!=(512&n.Bb),t?n.Bb|=512:n.Bb&=-513,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,3,e,t))}function tln(n,t){var e;e=0!=(512&n.Bb),t?n.Bb|=512:n.Bb&=-513,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,9,e,t))}function eln(n,t){var e;return-1==n.b&&n.a&&(e=n.a.Gj(),n.b=e?n.c.Xg(n.a.aj(),e):Awn(n.c.Tg(),n.a)),n.c.Og(n.b,t)}function iln(n){var t,e;return n>-129&&n<128?(t=n+128,!(e=(tq(),Itt)[t])&&(e=Itt[t]=new xb(n)),e):new xb(n)}function rln(n){var t,e;return n>-129&&n<128?(t=n+128,!(e=(Tq(),Ktt)[t])&&(e=Ktt[t]=new Rb(n)),e):new Rb(n)}function cln(n){var t;return n.k==(uSn(),Mut)&&((t=BB(mMn(n,(hWn(),Qft)),61))==(kUn(),sIt)||t==SIt)}function aln(n,t,e){var i,r;return(r=$$n(n.b,t))&&(i=BB(NHn(F7(n,r),""),26))?m$n(n,i,t,e):null}function uln(n,t,e){var i,r;return(r=$$n(n.b,t))&&(i=BB(NHn(F7(n,r),""),26))?y$n(n,i,t,e):null}function oln(n,t){var e,i;for(i=new AL(n);i.e!=i.i.gc();)if(e=BB(kpn(i),138),GI(t)===GI(e))return!0;return!1}function sln(n,t,e){var i;if(t>(i=n.gc()))throw Hp(new tK(t,i));if(n.hi()&&n.Hc(e))throw Hp(new _y(a8n));n.Xh(t,e)}function hln(n,t){var e;if(null==(e=sen(n.i,t)))throw Hp(new ek("Node did not exist in input."));return Kcn(t,e),null}function fln(n,t){var e;if(cL(e=NNn(n,t),322))return BB(e,34);throw Hp(new _y(r6n+t+"' is not a valid attribute"))}function lln(n,t,e){var i,r;for(r=cL(t,99)&&0!=(BB(t,18).Bb&BQn)?new xO(t,n):new Aan(t,n),i=0;i<e;++i)cvn(r);return r}function bln(n){var t,e,i;for(i=0,e=n.length,t=0;t<e;t++)32==n[t]||13==n[t]||10==n[t]||9==n[t]||(n[i++]=n[t]);return i}function wln(n){var t,e,i;for(t=new Np,i=new Wb(n.b);i.a<i.c.c.length;)e=BB(n0(i),594),gun(t,BB(e.jf(),14));return t}function dln(n){var t,e;for(e=BB(mMn(n,(qqn(),lkt)),15).Kc();e.Ob();)DH((t=BB(e.Pb(),188)).b.d,t),DH(t.c.b,t)}function gln(n){switch(BB(mMn(n,(hWn(),ilt)),303).g){case 1:hon(n,ilt,(z7(),Sft));break;case 2:hon(n,ilt,(z7(),Cft))}}function pln(n){var t;n.g&&(xxn((t=n.c.Rf()?n.f:n.a).a,n.o,!0),xxn(t.a,n.o,!1),hon(n.o,(HXn(),ept),(QEn(),UCt)))}function vln(n){var t;if(!n.a)throw Hp(new Fy("Cannot offset an unassigned cut."));t=n.c-n.b,n.b+=t,xQ(n,t),NQ(n,t)}function mln(n){var t;return null==(t=n.a[n.c-1&n.a.length-1])?null:(n.c=n.c-1&n.a.length-1,$X(n.a,n.c,null),t)}function yln(n){var t,e;for(e=n.p.a.ec().Kc();e.Ob();)if((t=BB(e.Pb(),213)).f&&n.b[t.c]<-1e-10)return t;return null}function kln(n,t){switch(n.b.g){case 0:case 1:return t;case 2:case 3:return new UV(t.d,0,t.a,t.b);default:return null}}function jln(n){switch(n.g){case 2:return FPt;case 1:return _Pt;case 4:return KPt;case 3:return HPt;default:return BPt}}function Eln(n){switch(n.g){case 1:return CIt;case 2:return sIt;case 3:return oIt;case 4:return SIt;default:return PIt}}function Tln(n){switch(n.g){case 1:return SIt;case 2:return CIt;case 3:return sIt;case 4:return oIt;default:return PIt}}function Mln(n){switch(n.g){case 1:return oIt;case 2:return SIt;case 3:return CIt;case 4:return sIt;default:return PIt}}function Sln(n){switch(n){case 0:return new mm;case 1:return new pm;case 2:return new vm;default:throw Hp(new wv)}}function Pln(n,t){return n<t?-1:n>t?1:n==t?0==n?Pln(1/n,1/t):0:isNaN(n)?isNaN(t)?0:1:-1}function Cln(n,t){OTn(t,"Sort end labels",1),JT(AV(wnn(new Rq(null,new w1(n.b,16)),new we),new de),new ge),HSn(t)}function Iln(n,t,e){var i,r;return n.ej()?(r=n.fj(),i=YIn(n,t,e),n.$i(n.Zi(7,iln(e),i,t,r)),i):YIn(n,t,e)}function Oln(n,t){var e,i,r;null==n.d?(++n.e,--n.f):(r=t.cd(),N6(n,i=((e=t.Sh())&DWn)%n.d.length,A$n(n,i,e,r)))}function Aln(n,t){var e;e=0!=(n.Bb&k6n),t?n.Bb|=k6n:n.Bb&=-1025,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,10,e,t))}function $ln(n,t){var e;e=0!=(n.Bb&_Qn),t?n.Bb|=_Qn:n.Bb&=-4097,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,12,e,t))}function Lln(n,t){var e;e=0!=(n.Bb&T9n),t?n.Bb|=T9n:n.Bb&=-8193,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,15,e,t))}function Nln(n,t){var e;e=0!=(n.Bb&M9n),t?n.Bb|=M9n:n.Bb&=-2049,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,11,e,t))}function xln(n,t){var e;return 0!=(e=Pln(n.b.c,t.b.c))||0!=(e=Pln(n.a.a,t.a.a))?e:Pln(n.a.b,t.a.b)}function Dln(n,t){var e;if(null==(e=RX(n.k,t)))throw Hp(new ek("Port did not exist in input."));return Kcn(t,e),null}function Rln(n){var t,e;for(e=G$n(Utn(n)).Kc();e.Ob();)if(N_n(n,t=SD(e.Pb())))return y4((UM(),RAt),t);return null}function Kln(n,t){var e,i,r,c,a;for(a=axn(n.e.Tg(),t),c=0,e=BB(n.g,119),r=0;r<n.i;++r)i=e[r],a.rl(i.ak())&&++c;return c}function _ln(n,t,e){var i,r;return i=BB(t.We(n.a),35),r=BB(e.We(n.a),35),null!=i&&null!=r?Ncn(i,r):null!=i?-1:null!=r?1:0}function Fln(n,t,e){var i;if(n.c)lMn(n.c,t,e);else for(i=new Wb(n.b);i.a<i.c.c.length;)Fln(BB(n0(i),157),t,e)}function Bln(n,t){var e,i;for(i=new Wb(t);i.a<i.c.c.length;)e=BB(n0(i),46),y7(n.b.b,e.b),uY(BB(e.a,189),BB(e.b,81))}function Hln(n){var t,e;for(e=xX(new Ck,91),t=!0;n.Ob();)t||(e.a+=FWn),t=!1,uO(e,n.Pb());return(e.a+="]",e).a}function qln(n,t){var e;e=0!=(n.Bb&hVn),t?n.Bb|=hVn:n.Bb&=-16385,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,16,e,t))}function Gln(n,t){var e;e=0!=(n.Bb&h6n),t?n.Bb|=h6n:n.Bb&=-32769,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,18,e,t))}function zln(n,t){var e;e=0!=(n.Bb&h6n),t?n.Bb|=h6n:n.Bb&=-32769,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,18,e,t))}function Uln(n,t){var e;e=0!=(n.Bb&BQn),t?n.Bb|=BQn:n.Bb&=-65537,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new t6(n,1,20,e,t))}function Xln(n){var t;return t=x8(ONt,WVn,25,2,15,1),n-=BQn,t[0]=(n>>10)+HQn&QVn,t[1]=56320+(1023&n)&QVn,Bdn(t,0,t.length)}function Wln(n){var t;return(t=BB(mMn(n,(HXn(),Udt)),103))==(Ffn(),BPt)?Gy(MD(mMn(n,Edt)))>=1?FPt:KPt:t}function Vln(n){switch(BB(mMn(n,(HXn(),Zdt)),218).g){case 1:return new ic;case 3:return new oc;default:return new ec}}function Qln(n){if(n.c)Qln(n.c);else if(n.d)throw Hp(new Fy("Stream already terminated, can't be modified or used"))}function Yln(n){var t;return 0!=(64&n.Db)?P$n(n):((t=new fN(P$n(n))).a+=" (identifier: ",cO(t,n.k),t.a+=")",t.a)}function Jln(n,t,e){var i;return tE(),jen(i=new ro,t),Een(i,e),n&&f9((!n.a&&(n.a=new $L(xOt,n,5)),n.a),i),i}function Zln(n,t,e,i){var r,c;return kW(i),kW(e),null==(c=null==(r=n.xc(t))?e:ZT(BB(r,15),BB(e,14)))?n.Bc(t):n.zc(t,c),c}function nbn(n){var t,e,i,r;return orn(e=new YK(t=BB(Vj((r=(i=n.gm).f)==Unt?i:r),9),BB(SR(t,t.length),9),0),n),e}function tbn(n,t,e){var i,r;for(r=n.a.ec().Kc();r.Ob();)if(i=BB(r.Pb(),10),oun(e,BB(xq(t,i.p),14)))return i;return null}function ebn(n,t,e){try{_on(n,t,e)}catch(i){throw cL(i=lun(i),597)?Hp(new g5(i)):Hp(i)}return t}function ibn(n,t){var e;return JO(n)&&JO(t)&&$Qn<(e=n-t)&&e<OQn?e:uan(hun(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function rbn(n,t){var e;return JO(n)&&JO(t)&&$Qn<(e=n+t)&&e<OQn?e:uan(sun(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function cbn(n,t){var e;return JO(n)&&JO(t)&&$Qn<(e=n*t)&&e<OQn?e:uan(fqn(JO(n)?Pan(n):n,JO(t)?Pan(t):t))}function abn(n,t){var e;return n.i||eIn(n),(e=BB(oV(n.g,t),46))?new s1(n.j,BB(e.a,19).a,BB(e.b,19).a):(SQ(),SQ(),set)}function ubn(n,t,e){var i;return i=n.a.get(t),n.a.set(t,void 0===e?null:e),void 0===i?(++n.c,oY(n.b)):++n.d,i}function obn(n,t,i){n.n=kq(LNt,[sVn,FQn],[364,25],14,[i,CJ(e.Math.ceil(t/32))],2),n.o=t,n.p=i,n.j=t-1>>1,n.k=i-1>>1}function sbn(){var n,t,i;yTn(),i=Let+++Date.now(),n=CJ(e.Math.floor(i*uYn))&sYn,t=CJ(i-n*oYn),this.a=1502^n,this.b=t^aYn}function hbn(n){var t,e;for(t=new Np,e=new Wb(n.j);e.a<e.c.c.length;)WB(t,BB(n0(e),11).b);return yX(t),new OO(t)}function fbn(n){var t,e;for(t=new Np,e=new Wb(n.j);e.a<e.c.c.length;)WB(t,BB(n0(e),11).e);return yX(t),new OO(t)}function lbn(n){var t,e;for(t=new Np,e=new Wb(n.j);e.a<e.c.c.length;)WB(t,BB(n0(e),11).g);return yX(t),new OO(t)}function bbn(n){var t,e;for(e=t$n(Utn(dZ(n))).Kc();e.Ob();)if(N_n(n,t=SD(e.Pb())))return k4((XM(),UAt),t);return null}function wbn(n){var t,e;for(t=0,e=n.length;t<e;t++)if(null==n[t])throw Hp(new Hy("at index "+t));return new Jy(n)}function dbn(n,t){var e;if(cL(e=NNn(n.Tg(),t),99))return BB(e,18);throw Hp(new _y(r6n+t+"' is not a valid reference"))}function gbn(n){var t;return(t=bSn(n))>34028234663852886e22?RQn:t<-34028234663852886e22?KQn:t}function pbn(n){return n=((n=((n-=n>>1&1431655765)>>2&858993459)+(858993459&n))>>4)+n&252645135,n+=n>>8,63&(n+=n>>16)}function vbn(n){var t,e,i;for(t=new hR(n.Hd().gc()),i=0,e=L9(n.Hd().Kc());e.Ob();)jZ(t,e.Pb(),iln(i++));return NSn(t.a)}function mbn(n,t){var e,i,r;for(r=new xp,i=t.vc().Kc();i.Ob();)VW(r,(e=BB(i.Pb(),42)).cd(),lan(n,BB(e.dd(),15)));return r}function ybn(n,t){0==n.n.c.length&&WB(n.n,new RJ(n.s,n.t,n.i)),WB(n.b,t),smn(BB(xq(n.n,n.n.c.length-1),211),t),BFn(n,t)}function kbn(n){return n.c==n.b.b&&n.i==n.g.b||(n.a.c=x8(Ant,HWn,1,0,5,1),gun(n.a,n.b),gun(n.a,n.g),n.c=n.b.b,n.i=n.g.b),n.a}function jbn(n,t){var e,i;for(i=0,e=BB(t.Kb(n),20).Kc();e.Ob();)qy(TD(mMn(BB(e.Pb(),17),(hWn(),Clt))))||++i;return i}function Ebn(n,t){var i,r;r=Gy(MD(edn(f2(t),(HXn(),ypt)))),Fkn(t,i=e.Math.max(0,r/2-.5),1),WB(n,new lP(t,i))}function Tbn(){Tbn=O,qlt=new BP(QZn,0),_lt=new BP("FIRST",1),Flt=new BP(C1n,2),Blt=new BP("LAST",3),Hlt=new BP(I1n,4)}function Mbn(){Mbn=O,ZPt=new FC(hJn,0),YPt=new FC("POLYLINE",1),QPt=new FC("ORTHOGONAL",2),JPt=new FC("SPLINES",3)}function Sbn(){Sbn=O,Zjt=new kC("ASPECT_RATIO_DRIVEN",0),nEt=new kC("MAX_SCALE_DRIVEN",1),Jjt=new kC("AREA_DRIVEN",2)}function Pbn(){Pbn=O,HEt=new EC("P1_STRUCTURE",0),qEt=new EC("P2_PROCESSING_ORDER",1),GEt=new EC("P3_EXECUTION",2)}function Cbn(){Cbn=O,ejt=new gC("OVERLAP_REMOVAL",0),njt=new gC("COMPACTION",1),tjt=new gC("GRAPH_SIZE_CALCULATION",2)}function Ibn(n,t){return h$(),rin(KVn),e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)?0:n<t?-1:n>t?1:zO(isNaN(n),isNaN(t))}function Obn(n,t){var e,i;for(e=spn(n,0);e.b!=e.d.c;){if((i=zy(MD(b3(e))))==t)return;if(i>t){U0(e);break}}nX(e,t)}function Abn(n,t){var e,i,r,c,a;if(e=t.f,Jgn(n.c.d,e,t),null!=t.g)for(c=0,a=(r=t.g).length;c<a;++c)i=r[c],Jgn(n.c.e,i,t)}function $bn(n,t,e,i){var r,c,a;for(r=t+1;r<e;++r)for(c=r;c>t&&i.ue(n[c-1],n[c])>0;--c)a=n[c],$X(n,c,n[c-1]),$X(n,c-1,a)}function Lbn(n,t,e,i){if(t<0)TLn(n,e,i);else{if(!e.Ij())throw Hp(new _y(r6n+e.ne()+c6n));BB(e,66).Nj().Tj(n,n.yh(),t,i)}}function Nbn(n,t){if(t==n.d)return n.e;if(t==n.e)return n.d;throw Hp(new _y("Node "+t+" not part of edge "+n))}function xbn(n,t){switch(t.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function Dbn(n,t){switch(t.g){case 2:return n.b;case 1:return n.c;case 4:return n.d;case 3:return n.a;default:return!1}}function Rbn(n,t,e,i){switch(t){case 3:return n.f;case 4:return n.g;case 5:return n.i;case 6:return n.j}return _fn(n,t,e,i)}function Kbn(n){return n.k==(uSn(),Cut)&&o5(new Rq(null,new zU(new oz(ZL(lbn(n).a.Kc(),new h)))),new qr)}function _bn(n){return null==n.e?n:(!n.c&&(n.c=new rRn(0!=(256&n.f),n.i,n.a,n.d,0!=(16&n.f),n.j,n.g,null)),n.c)}function Fbn(n,t){return n.h==CQn&&0==n.m&&0==n.l?(t&&(ltt=M$(0,0,0)),WO((X7(),dtt))):(t&&(ltt=M$(n.l,n.m,n.h)),M$(0,0,0))}function Bbn(n){return Array.isArray(n)&&n.im===I?nE(tsn(n))+"@"+(nsn(n)>>>0).toString(16):n.toString()}function Hbn(n){var t;this.a=new YK(t=BB(n.e&&n.e(),9),BB(SR(t,t.length),9),0),this.b=x8(Ant,HWn,1,this.a.a.length,5,1)}function qbn(n){var t,e,i;for(this.a=new fA,i=new Wb(n);i.a<i.c.c.length;)e=BB(n0(i),14),brn(t=new hG,e),TU(this.a,t)}function Gbn(n){var t,e;for(qD(),t=n.o.b,e=BB(BB(h6(n.r,(kUn(),SIt)),21),84).Kc();e.Ob();)BB(e.Pb(),111).e.b+=t}function zbn(n){var t;if(n.b){if(zbn(n.b),n.b.d!=n.c)throw Hp(new vv)}else n.d.dc()&&(t=BB(n.f.c.xc(n.e),14))&&(n.d=t)}function Ubn(n){var t;return null==n||(t=n.length)>0&&(b1(t-1,n.length),58==n.charCodeAt(t-1))&&!Xbn(n,LAt,NAt)}function Xbn(n,t,e){var i,r;for(i=0,r=n.length;i<r;i++)if(ton((b1(i,n.length),n.charCodeAt(i)),t,e))return!0;return!1}function Wbn(n,t){var e,i;for(i=n.e.a.ec().Kc();i.Ob();)if(tSn(t,(e=BB(i.Pb(),266)).d)||ICn(t,e.d))return!0;return!1}function Vbn(n,t){var e,i,r;for(r=(i=HRn(n,t))[i.length-1]/2,e=0;e<i.length;e++)if(i[e]>=r)return t.c+e;return t.c+t.b.gc()}function Qbn(n,t){var e,i,r,c;for(dD(),r=t,z9(i=H9(n),0,i.length,r),e=0;e<i.length;e++)e!=(c=gkn(n,i[e],e))&&Iln(n,e,c)}function Ybn(n,t){var e,i,r,c,a,u;for(i=0,e=0,a=0,u=(c=t).length;a<u;++a)(r=c[a])>0&&(i+=r,++e);return e>1&&(i+=n.d*(e-1)),i}function Jbn(n){var t,e,i;for((i=new Sk).a+="[",t=0,e=n.gc();t<e;)cO(i,kN(n.ki(t))),++t<e&&(i.a+=FWn);return i.a+="]",i.a}function Zbn(n){var t,e,i;return i=ATn(n),!WE(n.c)&&(rtn(i,"knownLayouters",e=new Cl),t=new rp(e),e5(n.c,t)),i}function nwn(n,t){var e,i;for(kW(t),e=!1,i=new Wb(n);i.a<i.c.c.length;)ywn(t,n0(i),!1)&&(AU(i),e=!0);return e}function twn(n){var t,e;for(e=Gy(MD(n.a.We((sWn(),OPt)))),t=new Wb(n.a.xf());t.a<t.c.c.length;)VUn(n,BB(n0(t),680),e)}function ewn(n,t){var e,i;for(i=new Wb(t);i.a<i.c.c.length;)e=BB(n0(i),46),WB(n.b.b,BB(e.b,81)),g2(BB(e.a,189),BB(e.b,81))}function iwn(n,t,e){var i,r;for(i=(r=n.a.b).c.length;i<e;i++)kG(r,0,new HX(n.a));PZ(t,BB(xq(r,r.c.length-e),29)),n.b[t.p]=e}function rwn(n,t,e){var i;!(i=e)&&(i=LH(new Xm,0)),OTn(i,qZn,2),mvn(n.b,t,mcn(i,1)),Kqn(n,t,mcn(i,1)),qUn(t,mcn(i,1)),HSn(i)}function cwn(n,t,e,i,r){BZ(),UNn(aM(cM(rM(uM(new Hv,0),r.d.e-n),t),r.d)),UNn(aM(cM(rM(uM(new Hv,0),e-r.a.e),r.a),i))}function awn(n,t,e,i,r,c){this.a=n,this.c=t,this.b=e,this.f=i,this.d=r,this.e=c,this.c>0&&this.b>0&&Yq(this.c,this.b,this.a)}function uwn(n){Rwn(),this.c=u6(Pun(Gk(rMt,1),HWn,831,0,[Wpt])),this.b=new xp,this.a=n,VW(this.b,Vpt,1),Otn(Qpt,new Pg(this))}function own(n,t){var e;return n.d?hU(n.b,t)?BB(RX(n.b,t),51):(e=t.Kf(),VW(n.b,t,e),e):t.Kf()}function swn(n,t){var e;return GI(n)===GI(t)||!!cL(t,91)&&(e=BB(t,91),n.e==e.e&&n.d==e.d&&E4(n,e.a))}function hwn(n){switch(kUn(),n.g){case 4:return sIt;case 1:return oIt;case 3:return SIt;case 2:return CIt;default:return PIt}}function fwn(n,t){switch(t){case 3:return 0!=n.f;case 4:return 0!=n.g;case 5:return 0!=n.i;case 6:return 0!=n.j}return Ean(n,t)}function lwn(n){switch(n.g){case 0:return new Ga;case 1:return new za;default:throw Hp(new _y(c4n+(null!=n.f?n.f:""+n.g)))}}function bwn(n){switch(n.g){case 0:return new qa;case 1:return new Ua;default:throw Hp(new _y(M1n+(null!=n.f?n.f:""+n.g)))}}function wwn(n){switch(n.g){case 0:return new Vm;case 1:return new ym;default:throw Hp(new _y(N4n+(null!=n.f?n.f:""+n.g)))}}function dwn(n){switch(n.g){case 1:return new Ra;case 2:return new gD;default:throw Hp(new _y(c4n+(null!=n.f?n.f:""+n.g)))}}function gwn(n){var t,e;if(n.b)return n.b;for(e=Qet?null:n.d;e;){if(t=Qet?null:e.b)return t;e=Qet?null:e.d}return lM(),Het}function pwn(n){var t,e;return 0==n.e?0:(t=n.d<<5,e=n.a[n.d-1],n.e<0&&Ccn(n)==n.d-1&&(--e,e|=0),t-=ZIn(e))}function vwn(n){var t,e,i;return n<tet.length?tet[n]:(t=31&n,(i=x8(ANt,hQn,25,1+(e=n>>5),15,1))[e]=1<<t,new lU(1,e+1,i))}function mwn(n){var t,e,i;return(e=n.zg())?cL(t=n.Ug(),160)&&null!=(i=mwn(BB(t,160)))?i+"."+e:e:null}function ywn(n,t,e){var i,r;for(r=n.Kc();r.Ob();)if(i=r.Pb(),GI(t)===GI(i)||null!=t&&Nfn(t,i))return e&&r.Qb(),!0;return!1}function kwn(n,t,e){var i,r;if(++n.j,e.dc())return!1;for(r=e.Kc();r.Ob();)i=r.Pb(),n.Hi(t,n.oi(t,i)),++t;return!0}function jwn(n,t,e,i){var r,c;if((c=e-t)<3)for(;c<3;)n*=10,++c;else{for(r=1;c>3;)r*=10,--c;n=(n+(r>>1))/r|0}return i.i=n,!0}function Ewn(n){return Shn(),hN(),!!(Dbn(BB(n.a,81).j,BB(n.b,103))||0!=BB(n.a,81).d.e&&Dbn(BB(n.a,81).j,BB(n.b,103)))}function Twn(n){x9(),BB(n.We((sWn(),qSt)),174).Hc((n_n(),VIt))&&(BB(n.We(fPt),174).Fc((lIn(),cIt)),BB(n.We(qSt),174).Mc(VIt))}function Mwn(n,t){var e;if(t){for(e=0;e<n.i;++e)if(BB(n.g[e],366).Di(t))return!1;return f9(n,t)}return!1}function Swn(n){var t,e,i;for(t=new Cl,i=new qb(n.b.Kc());i.b.Ob();)e=VSn(BB(i.b.Pb(),686)),WU(t,t.a.length,e);return t.a}function Pwn(n){var t;return!n.c&&(n.c=new Nn),m$(n.d,new Dn),YKn(n),t=lDn(n),JT(new Rq(null,new w1(n.d,16)),new Iw(n)),t}function Cwn(n){var t;return 0!=(64&n.Db)?kfn(n):((t=new fN(kfn(n))).a+=" (instanceClassName: ",cO(t,n.D),t.a+=")",t.a)}function Iwn(n,t){var e,i;t&&(e=Ren(t,"x"),Ten(new Zg(n).a,(kW(e),e)),i=Ren(t,"y"),Oen(new np(n).a,(kW(i),i)))}function Own(n,t){var e,i;t&&(e=Ren(t,"x"),Ien(new Vg(n).a,(kW(e),e)),i=Ren(t,"y"),Aen(new Yg(n).a,(kW(i),i)))}function Awn(n,t){var e,i,r;if(null==n.i&&qFn(n),e=n.i,-1!=(i=t.aj()))for(r=e.length;i<r;++i)if(e[i]==t)return i;return-1}function $wn(n){var t,e,i,r;for(e=BB(n.g,674),i=n.i-1;i>=0;--i)for(t=e[i],r=0;r<i;++r)if(vFn(n,t,e[r])){Lyn(n,i);break}}function Lwn(n){var t=n.e;function e(n){return n&&0!=n.length?"\t"+n.join("\n\t"):""}return t&&(t.stack||e(n[UVn]))}function Nwn(n){var t;switch(WX(),(t=n.Pc()).length){case 0:return Fnt;case 1:return new Pq(yX(t[0]));default:return new SY(wbn(t))}}function xwn(n,t){switch(t.g){case 1:return KB(n.j,(gcn(),Nut));case 2:return KB(n.j,(gcn(),Dut));default:return SQ(),SQ(),set}}function Dwn(n,t){switch(t){case 3:return void Men(n,0);case 4:return void Sen(n,0);case 5:return void Pen(n,0);case 6:return void Cen(n,0)}ofn(n,t)}function Rwn(){Rwn=O,AM(),HXn(),Vpt=Opt,Qpt=u6(Pun(Gk(lMt,1),k3n,146,0,[mpt,ypt,jpt,Ept,Spt,Ppt,Cpt,Ipt,$pt,Npt,kpt,Tpt,Apt]))}function Kwn(n){var t,e;t=n.d==($Pn(),Jst),e=$En(n),hon(n.a,(HXn(),kdt),t&&!e||!t&&e?(wvn(),$Mt):(wvn(),AMt))}function _wn(n,t){var e;return(e=BB(P4(n,m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15)).Qc(lH(e.gc()))}function Fwn(){Fwn=O,eOt=new YC("SIMPLE",0),ZIt=new YC("GROUP_DEC",1),tOt=new YC("GROUP_MIXED",2),nOt=new YC("GROUP_INC",3)}function Bwn(){Bwn=O,z$t=new $o,K$t=new Lo,_$t=new No,F$t=new xo,B$t=new Do,H$t=new Ro,q$t=new Ko,G$t=new _o,U$t=new Fo}function Hwn(n,t,e){qtn(),sm.call(this),this.a=kq(Xit,[sVn,rJn],[595,212],0,[nrt,Zit],2),this.c=new bA,this.g=n,this.f=t,this.d=e}function qwn(n,t){this.n=kq(LNt,[sVn,FQn],[364,25],14,[t,CJ(e.Math.ceil(n/32))],2),this.o=n,this.p=t,this.j=n-1>>1,this.k=t-1>>1}function Gwn(n,t){OTn(t,"End label post-processing",1),JT(AV(wnn(new Rq(null,new w1(n.b,16)),new ae),new ue),new oe),HSn(t)}function zwn(n,t,e){var i;return i=Gy(n.p[t.i.p])+Gy(n.d[t.i.p])+t.n.b+t.a.b,Gy(n.p[e.i.p])+Gy(n.d[e.i.p])+e.n.b+e.a.b-i}function Uwn(n,t,e){var i,r;for(i=e0(e,UQn),r=0;0!=Vhn(i,0)&&r<t;r++)i=rbn(i,e0(n[r],UQn)),n[r]=dG(i),i=kz(i,32);return dG(i)}function Xwn(n){var t,e,i,r;for(r=0,e=0,i=n.length;e<i;e++)b1(e,n.length),(t=n.charCodeAt(e))<64&&(r=i0(r,yz(1,t)));return r}function Wwn(n){var t;return null==n?null:new $A((t=FBn(n,!0)).length>0&&(b1(0,t.length),43==t.charCodeAt(0))?t.substr(1):t)}function Vwn(n){var t;return null==n?null:new $A((t=FBn(n,!0)).length>0&&(b1(0,t.length),43==t.charCodeAt(0))?t.substr(1):t)}function Qwn(n,t){return n.i>0&&(t.length<n.i&&(t=Den(tsn(t).c,n.i)),aHn(n.g,0,t,0,n.i)),t.length>n.i&&$X(t,n.i,null),t}function Ywn(n,t,e){var i,r,c;return n.ej()?(i=n.i,c=n.fj(),Ifn(n,i,t),r=n.Zi(3,null,t,i,c),e?e.Ei(r):e=r):Ifn(n,n.i,t),e}function Jwn(n,t,e){var i,r;return i=new N7(n.e,4,10,cL(r=t.c,88)?BB(r,26):(gWn(),d$t),null,uvn(n,t),!1),e?e.Ei(i):e=i,e}function Zwn(n,t,e){var i,r;return i=new N7(n.e,3,10,null,cL(r=t.c,88)?BB(r,26):(gWn(),d$t),uvn(n,t),!1),e?e.Ei(i):e=i,e}function ndn(n){var t;return qD(),t=new wA(BB(n.e.We((sWn(),BSt)),8)),n.B.Hc((n_n(),GIt))&&(t.a<=0&&(t.a=20),t.b<=0&&(t.b=20)),t}function tdn(n){return bvn(),(n.q?n.q:(SQ(),SQ(),het))._b((HXn(),Rgt))?BB(mMn(n,Rgt),197):BB(mMn(vW(n),Kgt),197)}function edn(n,t){var e,i;return i=null,Lx(n,(HXn(),Mpt))&&(e=BB(mMn(n,Mpt),94)).Xe(t)&&(i=e.We(t)),null==i&&(i=mMn(vW(n),t)),i}function idn(n,t){var e,i,r;return!!cL(t,42)&&(i=(e=BB(t,42)).cd(),wW(r=lfn(n.Rc(),i),e.dd())&&(null!=r||n.Rc()._b(i)))}function rdn(n,t){var e;return n.f>0&&(n.qj(),-1!=A$n(n,((e=null==t?0:nsn(t))&DWn)%n.d.length,e,t))}function cdn(n,t){var e,i;return n.f>0&&(n.qj(),e=aOn(n,((i=null==t?0:nsn(t))&DWn)%n.d.length,i,t))?e.dd():null}function adn(n,t){var e,i,r,c;for(c=axn(n.e.Tg(),t),e=BB(n.g,119),r=0;r<n.i;++r)if(i=e[r],c.rl(i.ak()))return!1;return!0}function udn(n){if(null==n.b){for(;n.a.Ob();)if(n.b=n.a.Pb(),!BB(n.b,49).Zg())return!0;return n.b=null,!1}return!0}function odn(n,t){n.mj();try{n.d.Vc(n.e++,t),n.f=n.d.j,n.g=-1}catch(e){throw cL(e=lun(e),73)?Hp(new vv):Hp(e)}}function sdn(n,t){var e,i;return s$(),i=null,t==(e=fR((fk(),fk(),rtt)))&&(i=BB(SJ(itt,n),615)),i||(i=new zX(n),t==e&&mZ(itt,n,i)),i}function hdn(n,t){var i,r;n.a=rbn(n.a,1),n.c=e.Math.min(n.c,t),n.b=e.Math.max(n.b,t),n.d+=t,i=t-n.f,r=n.e+i,n.f=r-n.e-i,n.e=r}function fdn(n,t){var e;n.c=t,n.a=pwn(t),n.a<54&&(n.f=(e=t.d>1?i0(yz(t.a[1],32),e0(t.a[0],UQn)):e0(t.a[0],UQn),j2(cbn(t.e,e))))}function ldn(n,t){var e;return JO(n)&&JO(t)&&$Qn<(e=n%t)&&e<OQn?e:uan((Aqn(JO(n)?Pan(n):n,JO(t)?Pan(t):t,!0),ltt))}function bdn(n,t){var e;Dzn(t),(e=BB(mMn(n,(HXn(),Jdt)),276))&&hon(n,Jdt,Ayn(e)),nx(n.c),nx(n.f),V6(n.d),V6(BB(mMn(n,Agt),207))}function wdn(n){this.e=x8(ANt,hQn,25,n.length,15,1),this.c=x8($Nt,ZYn,25,n.length,16,1),this.b=x8($Nt,ZYn,25,n.length,16,1),this.f=0}function ddn(n){var t,e;for(n.j=x8(xNt,qQn,25,n.p.c.length,15,1),e=new Wb(n.p);e.a<e.c.c.length;)t=BB(n0(e),10),n.j[t.p]=t.o.b/n.i}function gdn(n){var t;0!=n.c&&(1==(t=BB(xq(n.a,n.b),287)).b?(++n.b,n.b<n.a.c.length&&Tb(BB(xq(n.a,n.b),287))):--t.b,--n.c)}function pdn(n){var t;t=n.a;do{(t=BB(U5(new oz(ZL(lbn(t).a.Kc(),new h))),17).d.i).k==(uSn(),Put)&&WB(n.e,t)}while(t.k==(uSn(),Put))}function vdn(){vdn=O,LIt=new WA(15),$It=new XA((sWn(),XSt),LIt),xIt=new XA(LPt,15),NIt=new XA(vPt,iln(0)),AIt=new XA(cSt,dZn)}function mdn(){mdn=O,KIt=new VC("PORTS",0),_It=new VC("PORT_LABELS",1),RIt=new VC("NODE_LABELS",2),DIt=new VC("MINIMUM_SIZE",3)}function ydn(n,t){var e,i;for(i=t.length,e=0;e<i;e+=2)Yxn(n,(b1(e,t.length),t.charCodeAt(e)),(b1(e+1,t.length),t.charCodeAt(e+1)))}function kdn(n,t,e){var i,r,c,a;for(c=t-n.e,a=e-n.f,r=new Wb(n.a);r.a<r.c.c.length;)Tvn(i=BB(n0(r),187),i.s+c,i.t+a);n.e=t,n.f=e}function jdn(n,t){var e,i,r;for(r=t.b.b,n.a=new YT,n.b=x8(ANt,hQn,25,r,15,1),e=0,i=spn(t.b,0);i.b!=i.d.c;)BB(b3(i),86).g=e++}function Edn(n,t){var e,i,r,c;return e=t>>5,t&=31,r=n.d+e+(0==t?0:1),xTn(i=x8(ANt,hQn,25,r,15,1),n.a,e,t),X0(c=new lU(n.e,r,i)),c}function Tdn(n,t,e){var i,r;i=BB(SJ(iNt,t),117),r=BB(SJ(rNt,t),117),e?(mZ(iNt,n,i),mZ(rNt,n,r)):(mZ(rNt,n,i),mZ(iNt,n,r))}function Mdn(n,t,e){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.ue(t,c.d),e&&0==i)return c;i>=0?c=c.a[1]:(r=c,c=c.a[0])}return r}function Sdn(n,t,e){var i,r,c;for(r=null,c=n.b;c;){if(i=n.a.ue(t,c.d),e&&0==i)return c;i<=0?c=c.a[0]:(r=c,c=c.a[1])}return r}function Pdn(n,t,e,i){var r,c,a;return r=!1,LGn(n.f,e,i)&&(xgn(n.f,n.a[t][e],n.a[t][i]),a=(c=n.a[t])[i],c[i]=c[e],c[e]=a,r=!0),r}function Cdn(n,t,e,i,r){var c,a,u;for(a=r;t.b!=t.c;)c=BB(dU(t),10),u=BB(abn(c,i).Xb(0),11),n.d[u.p]=a++,e.c[e.c.length]=u;return a}function Idn(n,t,i){var r,c,a,u,o;return u=n.k,o=t.k,c=MD(edn(n,r=i[u.g][o.g])),a=MD(edn(t,r)),e.Math.max((kW(c),c),(kW(a),a))}function Odn(n,t,e){var i,r,c,a;for(i=e/n.c.length,r=0,a=new Wb(n);a.a<a.c.c.length;)ghn(c=BB(n0(a),200),c.f+i*r),ajn(c,t,i),++r}function Adn(n,t,e){var i,r,c;for(r=BB(RX(n.b,e),177),i=0,c=new Wb(t.j);c.a<c.c.c.length;)r[BB(n0(c),113).d.p]&&++i;return i}function $dn(n){var t,e;return null!=(t=BB(yan(n.a,4),126))?(aHn(t,0,e=x8(dAt,i9n,415,t.length,0,1),0,t.length),e):wAt}function Ldn(){var n;return 0!=ctt&&(n=l5())-att>2e3&&(att=n,utt=e.setTimeout(QE,10)),0==ctt++&&(Onn((sk(),ttt)),!0)}function Ndn(n,t){var e;for(e=new oz(ZL(lbn(n).a.Kc(),new h));dAn(e);)if(BB(U5(e),17).d.i.c==t)return!1;return!0}function xdn(n,t){var e;if(cL(t,245)){e=BB(t,245);try{return 0==n.vd(e)}catch(i){if(!cL(i=lun(i),205))throw Hp(i)}}return!1}function Ddn(){return Error.stackTraceLimit>0?(e.Error.stackTraceLimit=Error.stackTraceLimit=64,!0):"stack"in new Error}function Rdn(n,t){return h$(),h$(),rin(KVn),(e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)?0:n<t?-1:n>t?1:zO(isNaN(n),isNaN(t)))>0}function Kdn(n,t){return h$(),h$(),rin(KVn),(e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)?0:n<t?-1:n>t?1:zO(isNaN(n),isNaN(t)))<0}function _dn(n,t){return h$(),h$(),rin(KVn),(e.Math.abs(n-t)<=KVn||n==t||isNaN(n)&&isNaN(t)?0:n<t?-1:n>t?1:zO(isNaN(n),isNaN(t)))<=0}function Fdn(n,t){for(var e=0;!t[e]||""==t[e];)e++;for(var i=t[e++];e<t.length;e++)t[e]&&""!=t[e]&&(i+=n+t[e]);return i}function Bdn(n,t,i){var r,c,a,u;for(_8(t,a=t+i,n.length),u="",c=t;c<a;)r=e.Math.min(c+1e4,a),u+=WW(n.slice(c,r)),c=r;return u}function Hdn(n){var t,e,i,r;if(null==n)return null;for(r=new Np,e=0,i=(t=ysn(n)).length;e<i;++e)WB(r,FBn(t[e],!0));return r}function qdn(n){var t,e,i,r;if(null==n)return null;for(r=new Np,e=0,i=(t=ysn(n)).length;e<i;++e)WB(r,FBn(t[e],!0));return r}function Gdn(n){var t,e,i,r;if(null==n)return null;for(r=new Np,e=0,i=(t=ysn(n)).length;e<i;++e)WB(r,FBn(t[e],!0));return r}function zdn(n,t){var e,i,r;if(n.c)Sen(n.c,t);else for(e=t-iG(n),r=new Wb(n.d);r.a<r.c.c.length;)zdn(i=BB(n0(r),157),iG(i)+e)}function Udn(n,t){var e,i,r;if(n.c)Men(n.c,t);else for(e=t-eG(n),r=new Wb(n.a);r.a<r.c.c.length;)Udn(i=BB(n0(r),157),eG(i)+e)}function Xdn(n,t){var e,i,r;for(i=new J6(t.gc()),e=t.Kc();e.Ob();)(r=t_n(n,BB(e.Pb(),56)))&&(i.c[i.c.length]=r);return i}function Wdn(n,t){var e,i;return n.qj(),(e=aOn(n,((i=null==t?0:nsn(t))&DWn)%n.d.length,i,t))?(hin(n,e),e.dd()):null}function Vdn(n){var t,e;for(e=uPn(n),t=null;2==n.c;)QXn(n),t||(wWn(),wWn(),tqn(t=new r$(2),e),e=t),e.$l(uPn(n));return e}function Qdn(n){if(!(q6n in n.a))throw Hp(new ek("Every element must have an id."));return kIn(zJ(n,q6n))}function Ydn(n){var t,e,i;if(!(i=n.Zg()))for(t=0,e=n.eh();e;e=e.eh()){if(++t>GQn)return e.fh();if((i=e.Zg())||e==n)break}return i}function Jdn(n){return hZ(),cL(n,156)?BB(RX(hAt,yet),288).vg(n):hU(hAt,tsn(n))?BB(RX(hAt,tsn(n)),288).vg(n):null}function Zdn(n){if(mgn(a5n,n))return hN(),vtt;if(mgn(u5n,n))return hN(),ptt;throw Hp(new _y("Expecting true or false"))}function ngn(n,t){if(t.c==n)return t.d;if(t.d==n)return t.c;throw Hp(new _y("Input edge is not connected to the input port."))}function tgn(n,t){return n.e>t.e?1:n.e<t.e?-1:n.d>t.d?n.e:n.d<t.d?-t.e:n.e*Msn(n.a,t.a,n.d)}function egn(n){return n>=48&&n<48+e.Math.min(10,10)?n-48:n>=97&&n<97?n-97+10:n>=65&&n<65?n-65+10:-1}function ign(n,t){var e;return GI(t)===GI(n)||!!cL(t,21)&&(e=BB(t,21)).gc()==n.gc()&&n.Ic(e)}function rgn(n,t){var e,i,r;return i=n.a.length-1,e=t-n.b&i,r=n.c-t&i,Ex(e<(n.c-n.b&i)),e>=r?(ahn(n,t),-1):(uhn(n,t),1)}function cgn(n,t){var e,i;for(b1(t,n.length),e=n.charCodeAt(t),i=t+1;i<n.length&&(b1(i,n.length),n.charCodeAt(i)==e);)++i;return i-t}function agn(n){switch(n.g){case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:return!0;default:return!1}}function ugn(n,t){var e,i=n.a;t=String(t),i.hasOwnProperty(t)&&(e=i[t]);var r=(Zun(),ftt)[typeof e];return r?r(e):khn(typeof e)}function ogn(n,t){if(n.a<0)throw Hp(new Fy("Did not call before(...) or after(...) before calling add(...)."));return WN(n,n.a,t),n}function sgn(n,t,e,i){var r;0!=t.c.length&&(r=MLn(e,i),JT(ytn(new Rq(null,new w1(uIn(t),1)),new ja),new XV(n,e,r,i)))}function hgn(n,t,e){var i;0!=(n.Db&t)?null==e?WOn(n,t):-1==(i=Rmn(n,t))?n.Eb=e:$X(een(n.Eb),i,e):null!=e&&mxn(n,t,e)}function fgn(n){var t;return 0==(32&n.Db)&&0!=(t=bX(BB(yan(n,16),26)||n.zh())-bX(n.zh()))&&hgn(n,32,x8(Ant,HWn,1,t,5,1)),n}function lgn(n){var t;return n.b||Xj(n,!(t=nK(n.e,n.a))||!mK(u5n,cdn((!t.b&&(t.b=new Jx((gWn(),k$t),X$t,t)),t.b),"qualified"))),n.c}function bgn(n,t,e){var i,r;return((r=(i=BB(Wtn(H7(n.a),t),87)).c||(gWn(),l$t)).kh()?tfn(n.b,BB(r,49)):r)==e?lFn(i):cen(i,e),r}function wgn(n,t){(t||null==console.groupCollapsed?null!=console.group?console.group:console.log:console.groupCollapsed).call(console,n)}function dgn(n,t,e,i){BB(e.b,65),BB(e.b,65),BB(i.b,65),BB(i.b,65).c.b,K8(i,t,n)}function ggn(n){var t,e;for(t=new Wb(n.g);t.a<t.c.c.length;)BB(n0(t),562);zzn(e=new yxn(n.g,Gy(n.a),n.c)),n.g=e.b,n.d=e.a}function pgn(n,t,i){t.b=e.Math.max(t.b,-i.a),t.c=e.Math.max(t.c,i.a-n.a),t.d=e.Math.max(t.d,-i.b),t.a=e.Math.max(t.a,i.b-n.b)}function vgn(n,t){return n.e<t.e?-1:n.e>t.e?1:n.f<t.f?-1:n.f>t.f?1:nsn(n)-nsn(t)}function mgn(n,t){return kW(n),null!=t&&(!!mK(n,t)||n.length==t.length&&mK(n.toLowerCase(),t.toLowerCase()))}function ygn(n,t){var e,i,r,c;for(i=0,r=t.gc();i<r;++i)cL(e=t.il(i),99)&&0!=(BB(e,18).Bb&h6n)&&null!=(c=t.jl(i))&&t_n(n,BB(c,56))}function kgn(n,t,e){var i,r,c;for(c=new Wb(e.a);c.a<c.c.c.length;)r=BB(n0(c),221),i=new C$(BB(RX(n.a,r.b),65)),WB(t.a,i),kgn(n,i,r)}function jgn(n){var t,e;return Vhn(n,-129)>0&&Vhn(n,128)<0?(t=dG(n)+128,!(e=(Eq(),$tt)[t])&&(e=$tt[t]=new Db(n)),e):new Db(n)}function Egn(n,t){var e,i;return(e=t.Hh(n.a))&&null!=(i=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),t8n)))?i:t.ne()}function Tgn(n,t){var e,i;return(e=t.Hh(n.a))&&null!=(i=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),t8n)))?i:t.ne()}function Mgn(n,t){var e,i;for(qZ(),i=new oz(ZL(hbn(n).a.Kc(),new h));dAn(i);)if((e=BB(U5(i),17)).d.i==t||e.c.i==t)return e;return null}function Sgn(n,t,e){this.c=n,this.f=new Np,this.e=new Gj,this.j=new Sq,this.n=new Sq,this.b=t,this.g=new UV(t.c,t.d,t.b,t.a),this.a=e}function Pgn(n){var t,e,i,r;for(this.a=new fA,this.d=new Rv,this.e=0,i=0,r=(e=n).length;i<r;++i)t=e[i],!this.f&&(this.f=t),g2(this,t)}function Cgn(n){ODn(),0==n.length?(this.e=0,this.d=1,this.a=Pun(Gk(ANt,1),hQn,25,15,[0])):(this.e=1,this.d=n.length,this.a=n,X0(this))}function Ign(n,t,e){sm.call(this),this.a=x8(Xit,rJn,212,(Dtn(),Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length,0,1),this.b=n,this.d=t,this.c=e}function Ogn(n){this.d=new Np,this.e=new v4,this.c=x8(ANt,hQn,25,(kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length,15,1),this.b=n}function Agn(n){var t,e,i,r;for(hon(r=BB(mMn(n,(hWn(),dlt)),11),Llt,n.i.n.b),e=0,i=(t=Z0(n.e)).length;e<i;++e)MZ(t[e],r)}function $gn(n){var t,e,i,r;for(hon(t=BB(mMn(n,(hWn(),dlt)),11),Llt,n.i.n.b),i=0,r=(e=Z0(n.g)).length;i<r;++i)SZ(e[i],t)}function Lgn(n){var t,e;return!!Lx(n.d.i,(HXn(),Wgt))&&(t=BB(mMn(n.c.i,Wgt),19),e=BB(mMn(n.d.i,Wgt),19),E$(t.a,e.a)>0)}function Ngn(n){var t;GI(ZAn(n,(sWn(),ESt)))===GI((ufn(),vCt))&&(JJ(n)?(t=BB(ZAn(JJ(n),ESt),334),Ypn(n,ESt,t)):Ypn(n,ESt,mCt))}function xgn(n,t,e){var i,r;fMn(n.e,t,e,(kUn(),CIt)),fMn(n.i,t,e,oIt),n.a&&(r=BB(mMn(t,(hWn(),dlt)),11),i=BB(mMn(e,dlt),11),k0(n.g,r,i))}function Dgn(n,t,e){var i,r,c;i=t.c.p,c=t.p,n.b[i][c]=new DY(n,t),e&&(n.a[i][c]=new Bd(t),(r=BB(mMn(t,(hWn(),rlt)),10))&&JIn(n.d,r,t))}function Rgn(n,t){var e,i,r;if(WB(Sct,n),t.Fc(n),e=BB(RX(Mct,n),21))for(r=e.Kc();r.Ob();)i=BB(r.Pb(),33),-1!=E7(Sct,i,0)||Rgn(i,t)}function Kgn(n,t,e){var i;(Wet?(gwn(n),1):Vet||Jet?(lM(),1):Yet&&(lM(),0))&&((i=new i_(t)).b=e,aSn(n,i))}function _gn(n,t){var e;e=!n.A.Hc((mdn(),_It))||n.q==(QEn(),XCt),n.u.Hc((lIn(),eIt))?e?NUn(n,t):aUn(n,t):n.u.Hc(rIt)&&(e?Azn(n,t):JUn(n,t))}function Fgn(n,t){var e,i;++n.j,null!=t&&oOn(t,e=cL(i=n.a.Cb,97)?BB(i,97).Jg():null)?hgn(n.a,4,e):hgn(n.a,4,BB(t,126))}function Bgn(n,t,i){return new UV(e.Math.min(n.a,t.a)-i/2,e.Math.min(n.b,t.b)-i/2,e.Math.abs(n.a-t.a)+i,e.Math.abs(n.b-t.b)+i)}function Hgn(n,t){var e,i;return 0!=(e=E$(n.a.c.p,t.a.c.p))?e:0!=(i=E$(n.a.d.i.p,t.a.d.i.p))?i:E$(t.a.d.p,n.a.d.p)}function qgn(n,t,e){var i,r,c,a;return(c=t.j)!=(a=e.j)?c.g-a.g:(i=n.f[t.p],r=n.f[e.p],0==i&&0==r?0:0==i?-1:0==r?1:Pln(i,r))}function Ggn(n,t,e){var i;if(!e[t.d])for(e[t.d]=!0,i=new Wb(kbn(t));i.a<i.c.c.length;)Ggn(n,Nbn(BB(n0(i),213),t),e)}function zgn(n,t,e){var i;switch(i=e[n.g][t],n.g){case 1:case 3:return new xC(0,i);case 2:case 4:return new xC(i,0);default:return null}}function Ugn(n,t,e){var i;i=BB(sJ(t.f),209);try{i.Ze(n,e),SW(t.f,i)}catch(r){throw cL(r=lun(r),102),Hp(r)}}function Xgn(n,t,e){var i,r,c,a;return i=null,(c=pGn(cin(),t))&&(r=null,null!=(a=Zqn(c,e))&&(r=n.Ye(c,a)),i=r),i}function Wgn(n,t,e,i){var r;return r=new N7(n.e,1,13,t.c||(gWn(),l$t),e.c||(gWn(),l$t),uvn(n,t),!1),i?i.Ei(r):i=r,i}function Vgn(n,t,e,i){var r;if(t>=(r=n.length))return r;for(t=t>0?t:0;t<r&&!ton((b1(t,n.length),n.charCodeAt(t)),e,i);t++);return t}function Qgn(n,t){var e,i;for(i=n.c.length,t.length<i&&(t=qk(new Array(i),t)),e=0;e<i;++e)$X(t,e,n.c[e]);return t.length>i&&$X(t,i,null),t}function Ygn(n,t){var e,i;for(i=n.a.length,t.length<i&&(t=qk(new Array(i),t)),e=0;e<i;++e)$X(t,e,n.a[e]);return t.length>i&&$X(t,i,null),t}function Jgn(n,t,e){var i,r,c;return(r=BB(RX(n.e,t),387))?(c=pR(r,e),uL(n,r),c):(i=new nH(n,t,e),VW(n.e,t,i),kJ(i),null)}function Zgn(n){var t;if(null==n)return null;if(null==(t=L$n(FBn(n,!0))))throw Hp(new ik("Invalid hexBinary value: '"+n+"'"));return t}function npn(n){return ODn(),Vhn(n,0)<0?0!=Vhn(n,-1)?new vEn(-1,j7(n)):Ytt:Vhn(n,10)<=0?Ztt[dG(n)]:new vEn(1,n)}function tpn(){return dWn(),Pun(Gk(Krt,1),$Vn,159,0,[Prt,Srt,Crt,vrt,prt,mrt,jrt,krt,yrt,Mrt,Trt,Ert,drt,wrt,grt,lrt,frt,brt,srt,ort,hrt,Irt])}function epn(n){var t;this.d=new Np,this.j=new Gj,this.g=new Gj,t=n.g.b,this.f=BB(mMn(vW(t),(HXn(),Udt)),103),this.e=Gy(MD(gpn(t,Spt)))}function ipn(n){this.b=new Np,this.e=new Np,this.d=n,this.a=!jE(AV(new Rq(null,new zU(new m6(n.b))),new aw(new Gr))).sd((dM(),tit))}function rpn(){rpn=O,hMt=new AC("PARENTS",0),sMt=new AC("NODES",1),uMt=new AC("EDGES",2),fMt=new AC("PORTS",3),oMt=new AC("LABELS",4)}function cpn(){cpn=O,BCt=new zC("DISTRIBUTED",0),qCt=new zC("JUSTIFIED",1),_Ct=new zC("BEGIN",2),FCt=new zC(eJn,3),HCt=new zC("END",4)}function apn(n){switch(n.yi(null)){case 10:return 0;case 15:return 1;case 14:return 2;case 11:return 3;case 21:return 4}return-1}function upn(n){switch(n.g){case 1:return Ffn(),HPt;case 4:return Ffn(),_Pt;case 2:return Ffn(),FPt;case 3:return Ffn(),KPt}return Ffn(),BPt}function opn(n,t,e){var i;switch((i=e.q.getFullYear()-sQn+sQn)<0&&(i=-i),t){case 1:n.a+=i;break;case 2:Enn(n,i%100,2);break;default:Enn(n,i,t)}}function spn(n,t){var e,i;if(LZ(t,n.b),t>=n.b>>1)for(i=n.c,e=n.b;e>t;--e)i=i.b;else for(i=n.a.a,e=0;e<t;++e)i=i.a;return new ZK(n,t,i)}function hpn(){hpn=O,dit=new FS("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST",0),wit=new FS("CORNER_CASES_THAN_SINGLE_SIDE_LAST",1)}function fpn(n){var t,e,i;for(m$(e=uCn(n),But),(i=n.d).c=x8(Ant,HWn,1,0,5,1),t=new Wb(e);t.a<t.c.c.length;)gun(i,BB(n0(t),456).b)}function lpn(n){var t,e;for(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),t=(e=n.o).c.Kc();t.e!=t.i.gc();)BB(t.nj(),42).dd();return A8(e)}function bpn(n){var t;LK(BB(mMn(n,(HXn(),ept)),98))&&(fOn((l1(0,(t=n.b).c.length),BB(t.c[0],29))),fOn(BB(xq(t,t.c.length-1),29)))}function wpn(n,t){var i,r,c,a;for(i=0,c=new Wb(t.a);c.a<c.c.c.length;)a=(r=BB(n0(c),10)).o.a+r.d.c+r.d.b+n.j,i=e.Math.max(i,a);return i}function dpn(n){var t,e,i,r;for(r=0,e=0,i=n.length;e<i;e++)b1(e,n.length),(t=n.charCodeAt(e))>=64&&t<128&&(r=i0(r,yz(1,t-64)));return r}function gpn(n,t){var e,i;return i=null,Lx(n,(sWn(),CPt))&&(e=BB(mMn(n,CPt),94)).Xe(t)&&(i=e.We(t)),null==i&&vW(n)&&(i=mMn(vW(n),t)),i}function ppn(n,t){var e,i,r;(i=(r=t.d.i).k)!=(uSn(),Cut)&&i!=Tut&&dAn(e=new oz(ZL(lbn(r).a.Kc(),new h)))&&VW(n.k,t,BB(U5(e),17))}function vpn(n,t){var e,i,r;return i=itn(n.Tg(),t),(e=t-n.Ah())<0?(r=n.Yg(i))>=0?n.lh(r):qIn(n,i):e<0?qIn(n,i):BB(i,66).Nj().Sj(n,n.yh(),e)}function mpn(n){var t;if(cL(n.a,4)){if(null==(t=Jdn(n.a)))throw Hp(new Fy(o5n+n.b+"'. "+r5n+(ED(bAt),bAt.k)+c5n));return t}return n.a}function ypn(n){var t;if(null==n)return null;if(null==(t=UUn(FBn(n,!0))))throw Hp(new ik("Invalid base64Binary value: '"+n+"'"));return t}function kpn(n){var t;try{return t=n.i.Xb(n.e),n.mj(),n.g=n.e++,t}catch(e){throw cL(e=lun(e),73)?(n.mj(),Hp(new yv)):Hp(e)}}function jpn(n){var t;try{return t=n.c.ki(n.e),n.mj(),n.g=n.e++,t}catch(e){throw cL(e=lun(e),73)?(n.mj(),Hp(new yv)):Hp(e)}}function Epn(){Epn=O,sWn(),Ect=TPt,pct=ySt,lct=cSt,vct=XSt,_kn(),kct=Mit,yct=Eit,jct=Pit,mct=jit,Gsn(),wct=oct,bct=uct,dct=hct,gct=fct}function Tpn(n){switch(jM(),this.c=new Np,this.d=n,n.g){case 0:case 2:this.a=QW(hut),this.b=RQn;break;case 3:case 1:this.a=hut,this.b=KQn}}function Mpn(n,t,e){var i;if(n.c)Pen(n.c,n.c.i+t),Cen(n.c,n.c.j+e);else for(i=new Wb(n.b);i.a<i.c.c.length;)Mpn(BB(n0(i),157),t,e)}function Spn(n,t){var e,i;if(n.j.length!=t.j.length)return!1;for(e=0,i=n.j.length;e<i;e++)if(!mK(n.j[e],t.j[e]))return!1;return!0}function Ppn(n,t,e){var i;t.a.length>0&&(WB(n.b,new VB(t.a,e)),0<(i=t.a.length)?t.a=t.a.substr(0,0):0>i&&(t.a+=rL(x8(ONt,WVn,25,-i,15,1))))}function Cpn(n,t){var e,i,r;for(e=n.o,r=BB(BB(h6(n.r,t),21),84).Kc();r.Ob();)(i=BB(r.Pb(),111)).e.a=dyn(i,e.a),i.e.b=e.b*Gy(MD(i.b.We(Lrt)))}function Ipn(n,t){var e,i,r,c;return r=n.k,e=Gy(MD(mMn(n,(hWn(),Tlt)))),c=t.k,i=Gy(MD(mMn(t,Tlt))),c!=(uSn(),Mut)?-1:r!=Mut?1:e==i?0:e<i?-1:1}function Opn(n,t){var e,i;return e=BB(BB(RX(n.g,t.a),46).a,65),i=BB(BB(RX(n.g,t.b),46).a,65),W8(t.a,t.b)-W8(t.a,_$(e.b))-W8(t.b,_$(i.b))}function Apn(n,t){var e;return e=BB(mMn(n,(HXn(),vgt)),74),tL(t,vut)?e?yQ(e):(e=new km,hon(n,vgt,e)):e&&hon(n,vgt,null),e}function $pn(n){var t;return(t=new Ck).a+="n",n.k!=(uSn(),Cut)&&oO(oO((t.a+="(",t),dx(n.k).toLowerCase()),")"),oO((t.a+="_",t),gyn(n)),t.a}function Lpn(n,t){OTn(t,"Self-Loop post-processing",1),JT(AV(AV(wnn(new Rq(null,new w1(n.b,16)),new xi),new Di),new Ri),new Ki),HSn(t)}function Npn(n,t,e,i){var r;return e>=0?n.hh(t,e,i):(n.eh()&&(i=(r=n.Vg())>=0?n.Qg(i):n.eh().ih(n,-1-r,null,i)),n.Sg(t,e,i))}function xpn(n,t){switch(t){case 7:return!n.e&&(n.e=new hK(_Ot,n,7,4)),void sqn(n.e);case 8:return!n.d&&(n.d=new hK(_Ot,n,8,5)),void sqn(n.d)}Dwn(n,t)}function Dpn(n,t){var e;e=n.Zc(t);try{return e.Pb()}catch(i){throw cL(i=lun(i),109)?Hp(new Ay("Can't get element "+t)):Hp(i)}}function Rpn(n,t){this.e=n,t<XQn?(this.d=1,this.a=Pun(Gk(ANt,1),hQn,25,15,[0|t])):(this.d=2,this.a=Pun(Gk(ANt,1),hQn,25,15,[t%XQn|0,t/XQn|0]))}function Kpn(n,t){var e,i,r,c;for(SQ(),e=n,c=t,cL(n,21)&&!cL(t,21)&&(e=t,c=n),r=e.Kc();r.Ob();)if(i=r.Pb(),c.Hc(i))return!1;return!0}function _pn(n,t,e){var i,r,c,a;return-1!=(i=n.Xc(t))&&(n.ej()?(c=n.fj(),a=Lyn(n,i),r=n.Zi(4,a,null,i,c),e?e.Ei(r):e=r):Lyn(n,i)),e}function Fpn(n,t,e){var i,r,c,a;return-1!=(i=n.Xc(t))&&(n.ej()?(c=n.fj(),a=wq(n,i),r=n.Zi(4,a,null,i,c),e?e.Ei(r):e=r):wq(n,i)),e}function Bpn(n,t){var e;switch(e=BB(oV(n.b,t),124).n,t.g){case 1:n.t>=0&&(e.d=n.t);break;case 3:n.t>=0&&(e.a=n.t)}n.C&&(e.b=n.C.b,e.c=n.C.c)}function Hpn(){Hpn=O,Brt=new _S(mJn,0),Frt=new _S(yJn,1),Hrt=new _S(kJn,2),qrt=new _S(jJn,3),Brt.a=!1,Frt.a=!0,Hrt.a=!1,qrt.a=!0}function qpn(){qpn=O,Zrt=new KS(mJn,0),Jrt=new KS(yJn,1),nct=new KS(kJn,2),tct=new KS(jJn,3),Zrt.a=!1,Jrt.a=!0,nct.a=!1,tct.a=!0}function Gpn(n){var t;t=n.a;do{(t=BB(U5(new oz(ZL(fbn(t).a.Kc(),new h))),17).c.i).k==(uSn(),Put)&&n.b.Fc(t)}while(t.k==(uSn(),Put));n.b=ean(n.b)}function zpn(n){var t,e,i;for(i=n.c.a,n.p=(yX(i),new t_(i)),e=new Wb(i);e.a<e.c.c.length;)(t=BB(n0(e),10)).p=hCn(t).a;SQ(),m$(n.p,new Oc)}function Upn(n){var t,e,i;if(e=0,0==(i=wDn(n)).c.length)return 1;for(t=new Wb(i);t.a<t.c.c.length;)e+=Upn(BB(n0(t),33));return e}function Xpn(n,t){var e,i,r;for(r=0,i=BB(BB(h6(n.r,t),21),84).Kc();i.Ob();)r+=(e=BB(i.Pb(),111)).d.b+e.b.rf().a+e.d.c,i.Ob()&&(r+=n.w);return r}function Wpn(n,t){var e,i,r;for(r=0,i=BB(BB(h6(n.r,t),21),84).Kc();i.Ob();)r+=(e=BB(i.Pb(),111)).d.d+e.b.rf().b+e.d.a,i.Ob()&&(r+=n.w);return r}function Vpn(n,t,e,i){if(t.a<i.a)return!0;if(t.a==i.a){if(t.b<i.b)return!0;if(t.b==i.b&&n.b>e.b)return!0}return!1}function Qpn(n,t){return XI(n)?!!OWn[t]:n.hm?!!n.hm[t]:UI(n)?!!IWn[t]:!!zI(n)&&!!CWn[t]}function Ypn(n,t,e){return null==e?(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),Wdn(n.o,t)):(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),vjn(n.o,t,e)),n}function Jpn(n,t,e,i){var r;(r=Xfn(t.Xe((sWn(),DSt))?BB(t.We(DSt),21):n.j))!=(dWn(),Irt)&&(e&&!agn(r)||USn(N$n(n,r,i),t))}function Zpn(n,t,e,i){var r,c,a;return c=itn(n.Tg(),t),(r=t-n.Ah())<0?(a=n.Yg(c))>=0?n._g(a,e,!0):cOn(n,c,e):BB(c,66).Nj().Pj(n,n.yh(),r,e,i)}function nvn(n,t,e,i){var r,c;e.mh(t)&&(ZM(),hnn(t)?ygn(n,BB(e.ah(t),153)):(r=(c=t)?BB(i,49).xh(c):null)&&_p(e.ah(t),r))}function tvn(n){switch(n.g){case 1:return Dan(),Rrt;case 3:return Dan(),Nrt;case 2:return Dan(),Drt;case 4:return Dan(),xrt;default:return null}}function evn(n){switch(typeof n){case NWn:return vvn(n);case LWn:return CJ(n);case $Wn:return hN(),n?1231:1237;default:return null==n?0:PN(n)}}function ivn(n,t,e){if(n.e)switch(n.b){case 1:BQ(n.c,t,e);break;case 0:HQ(n.c,t,e)}else t4(n.c,t,e);n.a[t.p][e.p]=n.c.i,n.a[e.p][t.p]=n.c.e}function rvn(n){var t,e;if(null==n)return null;for(e=x8(Out,sVn,193,n.length,0,2),t=0;t<e.length;t++)e[t]=BB(G9(n[t],n[t].length),193);return e}function cvn(n){var t;if(Ksn(n))return mz(n),n.Lk()&&(t=FIn(n.e,n.b,n.c,n.a,n.j),n.j=t),n.g=n.a,++n.a,++n.c,n.i=0,n.j;throw Hp(new yv)}function avn(n,t){var e,i,r,c;return(c=n.o)<(e=n.p)?c*=c:e*=e,i=c+e,(c=t.o)<(e=t.p)?c*=c:e*=e,i<(r=c+e)?-1:i==r?0:1}function uvn(n,t){var e,i;if((i=Wyn(n,t))>=0)return i;if(n.Fk())for(e=0;e<n.i;++e)if(GI(n.Gk(BB(n.g[e],56)))===GI(t))return e;return-1}function ovn(n,t,e){var i,r;if(t>=(r=n.gc()))throw Hp(new tK(t,r));if(n.hi()&&(i=n.Xc(e))>=0&&i!=t)throw Hp(new _y(a8n));return n.mi(t,e)}function svn(n,t){if(this.a=BB(yX(n),245),this.b=BB(yX(t),245),n.vd(t)>0||n==(ey(),Knt)||t==(ty(),_nt))throw Hp(new _y("Invalid range: "+B3(n,t)))}function hvn(n){var t,e;for(this.b=new Np,this.c=n,this.a=!1,e=new Wb(n.a);e.a<e.c.c.length;)t=BB(n0(e),10),this.a=this.a|t.k==(uSn(),Cut)}function fvn(n,t){var e,i,r;for(e=AN(new qv,n),r=new Wb(t);r.a<r.c.c.length;)i=BB(n0(r),121),UNn(aM(cM(uM(rM(new Hv,0),0),e),i));return e}function lvn(n,t,e){var i,r,c;for(r=new oz(ZL((t?fbn(n):lbn(n)).a.Kc(),new h));dAn(r);)i=BB(U5(r),17),(c=t?i.c.i:i.d.i).k==(uSn(),Sut)&&PZ(c,e)}function bvn(){bvn=O,lvt=new _P(QZn,0),bvt=new _P("PORT_POSITION",1),fvt=new _P("NODE_SIZE_WHERE_SPACE_PERMITS",2),hvt=new _P("NODE_SIZE",3)}function wvn(){wvn=O,CMt=new DC("AUTOMATIC",0),AMt=new DC(cJn,1),$Mt=new DC(aJn,2),LMt=new DC("TOP",3),IMt=new DC(oJn,4),OMt=new DC(eJn,5)}function dvn(n,t,e,i){var r,c;for($On(),r=0,c=0;c<e;c++)r=rbn(cbn(e0(t[c],UQn),e0(i,UQn)),e0(dG(r),UQn)),n[c]=dG(r),r=jz(r,32);return dG(r)}function gvn(n,t,i){var r,c;for(c=0,r=0;r<Zit;r++)c=e.Math.max(c,vhn(n.a[t.g][r],i));return t==(Dtn(),zit)&&n.b&&(c=e.Math.max(c,n.b.b)),c}function pvn(n,t){var e,i;if(Tx(t>0),(t&-t)==t)return CJ(t*H$n(n,31)*4.656612873077393e-10);do{i=(e=H$n(n,31))%t}while(e-i+(t-1)<0);return CJ(i)}function vvn(n){var t,e,i;return r_(),null!=(i=rit[e=":"+n])?CJ((kW(i),i)):(t=null==(i=iit[e])?JNn(n):CJ((kW(i),i)),IQ(),rit[e]=t,t)}function mvn(n,t,e){OTn(e,"Compound graph preprocessor",1),n.a=new pJ,Nzn(n,t,null),GHn(n,t),tNn(n),hon(t,(hWn(),Hft),n.a),n.a=null,$U(n.b),HSn(e)}function yvn(n,t,e){switch(e.g){case 1:n.a=t.a/2,n.b=0;break;case 2:n.a=t.a,n.b=t.b/2;break;case 3:n.a=t.a/2,n.b=t.b;break;case 4:n.a=0,n.b=t.b/2}}function kvn(n){var t,e,i;for(i=BB(h6(n.a,(LEn(),Pst)),15).Kc();i.Ob();)iX(n,e=BB(i.Pb(),101),(t=Hyn(e))[0],(Crn(),xst),0),iX(n,e,t[1],Rst,1)}function jvn(n){var t,e,i;for(i=BB(h6(n.a,(LEn(),Cst)),15).Kc();i.Ob();)iX(n,e=BB(i.Pb(),101),(t=Hyn(e))[0],(Crn(),xst),0),iX(n,e,t[1],Rst,1)}function Evn(n){switch(n.g){case 0:return null;case 1:return new Arn;case 2:return new Jm;default:throw Hp(new _y(c4n+(null!=n.f?n.f:""+n.g)))}}function Tvn(n,t,e){var i,r;for(mun(n,t-n.s,e-n.t),r=new Wb(n.n);r.a<r.c.c.length;)rb(i=BB(n0(r),211),i.e+t-n.s),cb(i,i.f+e-n.t);n.s=t,n.t=e}function Mvn(n){var t,e,i,r;for(e=0,i=new Wb(n.a);i.a<i.c.c.length;)BB(n0(i),121).d=e++;return r=null,(t=wSn(n)).c.length>1&&(r=fvn(n,t)),r}function Svn(n){var t;return n.f&&n.f.kh()&&(t=BB(n.f,49),n.f=BB(tfn(n,t),82),n.f!=t&&0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,8,t,n.f))),n.f}function Pvn(n){var t;return n.i&&n.i.kh()&&(t=BB(n.i,49),n.i=BB(tfn(n,t),82),n.i!=t&&0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,7,t,n.i))),n.i}function Cvn(n){var t;return n.b&&0!=(64&n.b.Db)&&(t=n.b,n.b=BB(tfn(n,t),18),n.b!=t&&0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,21,t,n.b))),n.b}function Ivn(n,t){var e,i,r;null==n.d?(++n.e,++n.f):(i=t.Sh(),fNn(n,n.f+1),r=(i&DWn)%n.d.length,!(e=n.d[r])&&(e=n.d[r]=n.uj()),e.Fc(t),++n.f)}function Ovn(n,t,e){var i;return!t.Kj()&&(-2!=t.Zj()?null==(i=t.zj())?null==e:Nfn(i,e):t.Hj()==n.e.Tg()&&null==e)}function Avn(){var n;lin(16,IVn),n=Jin(16),this.b=x8(Gnt,CVn,317,n,0,1),this.c=x8(Gnt,CVn,317,n,0,1),this.a=null,this.e=null,this.i=0,this.f=n-1,this.g=0}function $vn(n){LR.call(this),this.k=(uSn(),Cut),this.j=(lin(6,AVn),new J6(6)),this.b=(lin(2,AVn),new J6(2)),this.d=new fm,this.f=new wm,this.a=n}function Lvn(n){var t,e;n.c.length<=1||(dPn(n,BB((t=EDn(n,(kUn(),SIt))).a,19).a,BB(t.b,19).a),dPn(n,BB((e=EDn(n,CIt)).a,19).a,BB(e.b,19).a))}function Nvn(){Nvn=O,yvt=new FP("SIMPLE",0),pvt=new FP(B1n,1),vvt=new FP("LINEAR_SEGMENTS",2),gvt=new FP("BRANDES_KOEPF",3),mvt=new FP(j3n,4)}function xvn(n,t,e){LK(BB(mMn(t,(HXn(),ept)),98))||(W7(n,t,DSn(t,e)),W7(n,t,DSn(t,(kUn(),SIt))),W7(n,t,DSn(t,sIt)),SQ(),m$(t.j,new _d(n)))}function Dvn(n,t,e,i){var r;for(r=BB(h6(i?n.a:n.b,t),21).Kc();r.Ob();)if(_Dn(n,e,BB(r.Pb(),33)))return!0;return!1}function Rvn(n){var t,e;for(e=new AL(n);e.e!=e.i.gc();)if((t=BB(kpn(e),87)).e||0!=(!t.d&&(t.d=new $L(VAt,t,1)),t.d).i)return!0;return!1}function Kvn(n){var t,e;for(e=new AL(n);e.e!=e.i.gc();)if((t=BB(kpn(e),87)).e||0!=(!t.d&&(t.d=new $L(VAt,t,1)),t.d).i)return!0;return!1}function _vn(n){var t,e;for(t=0,e=new Wb(n.c.a);e.a<e.c.c.length;)t+=F3(new oz(ZL(lbn(BB(n0(e),10)).a.Kc(),new h)));return t/n.c.a.c.length}function Fvn(n){var t,e;for(n.c||zqn(n),e=new km,n0(t=new Wb(n.a));t.a<t.c.c.length;)DH(e,BB(n0(t),407).a);return Px(0!=e.b),Atn(e,e.c.b),e}function Bvn(){Bvn=O,bRn(),qTt=RTt,BTt=new WA(8),new XA((sWn(),XSt),BTt),new XA(LPt,8),HTt=xTt,_Tt=MTt,FTt=STt,KTt=new XA(lSt,(hN(),!1))}function Hvn(n,t,e,i){switch(t){case 7:return!n.e&&(n.e=new hK(_Ot,n,7,4)),n.e;case 8:return!n.d&&(n.d=new hK(_Ot,n,8,5)),n.d}return Rbn(n,t,e,i)}function qvn(n){var t;return n.a&&n.a.kh()&&(t=BB(n.a,49),n.a=BB(tfn(n,t),138),n.a!=t&&0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,5,t,n.a))),n.a}function Gvn(n){return n<48||n>102?-1:n<=57?n-48:n<65?-1:n<=70?n-65+10:n<97?-1:n-97+10}function zvn(n,t){if(null==n)throw Hp(new Hy("null key in entry: null="+t));if(null==t)throw Hp(new Hy("null value in entry: "+n+"=null"))}function Uvn(n,t){for(var e,i;n.Ob();){if(!t.Ob())return!1;if(e=n.Pb(),i=t.Pb(),!(GI(e)===GI(i)||null!=e&&Nfn(e,i)))return!1}return!t.Ob()}function Xvn(n,t){var i;return i=Pun(Gk(xNt,1),qQn,25,15,[vhn(n.a[0],t),vhn(n.a[1],t),vhn(n.a[2],t)]),n.d&&(i[0]=e.Math.max(i[0],i[2]),i[2]=i[0]),i}function Wvn(n,t){var i;return i=Pun(Gk(xNt,1),qQn,25,15,[mhn(n.a[0],t),mhn(n.a[1],t),mhn(n.a[2],t)]),n.d&&(i[0]=e.Math.max(i[0],i[2]),i[2]=i[0]),i}function Vvn(){Vvn=O,yht=new SP("GREEDY",0),mht=new SP(H1n,1),jht=new SP(B1n,2),Eht=new SP("MODEL_ORDER",3),kht=new SP("GREEDY_MODEL_ORDER",4)}function Qvn(n,t){var e,i,r;for(n.b[t.g]=1,i=spn(t.d,0);i.b!=i.d.c;)r=(e=BB(b3(i),188)).c,1==n.b[r.g]?DH(n.a,e):2==n.b[r.g]?n.b[r.g]=1:Qvn(n,r)}function Yvn(n,t){var e,i,r;for(r=new J6(t.gc()),i=t.Kc();i.Ob();)(e=BB(i.Pb(),286)).c==e.f?hPn(n,e,e.c):rPn(n,e)||(r.c[r.c.length]=e);return r}function Jvn(n,t,e){var i,r,c,a;for(a=n.r+t,n.r+=t,n.d+=e,i=e/n.n.c.length,r=0,c=new Wb(n.n);c.a<c.c.c.length;)w$n(BB(n0(c),211),a,i,r),++r}function Zvn(n){var t,e;for(my(n.b.a),n.a=x8(bit,HWn,57,n.c.c.a.b.c.length,0,1),t=0,e=new Wb(n.c.c.a.b);e.a<e.c.c.length;)BB(n0(e),57).f=t++}function nmn(n){var t,e;for(my(n.b.a),n.a=x8(Qat,HWn,81,n.c.a.a.b.c.length,0,1),t=0,e=new Wb(n.c.a.a.b);e.a<e.c.c.length;)BB(n0(e),81).i=t++}function tmn(n,t,e){OTn(e,"Shrinking tree compaction",1),qy(TD(mMn(t,(Xcn(),Qrt))))?(irn(n,t.f),unn(t.f,t.c)):unn(t.f,t.c),HSn(e)}function emn(n){var t;if(t=bhn(n),!dAn(n))throw Hp(new Ay("position (0) must be less than the number of elements that remained ("+t+")"));return U5(n)}function imn(n,t,e){try{return vmn(n,t+n.j,e+n.k)}catch(i){throw cL(i=lun(i),73)?Hp(new Ay(i.g+CJn+t+FWn+e+").")):Hp(i)}}function rmn(n,t,e){try{return mmn(n,t+n.j,e+n.k)}catch(i){throw cL(i=lun(i),73)?Hp(new Ay(i.g+CJn+t+FWn+e+").")):Hp(i)}}function cmn(n,t,e){try{return ymn(n,t+n.j,e+n.k)}catch(i){throw cL(i=lun(i),73)?Hp(new Ay(i.g+CJn+t+FWn+e+").")):Hp(i)}}function amn(n){switch(n.g){case 1:return kUn(),CIt;case 4:return kUn(),sIt;case 3:return kUn(),oIt;case 2:return kUn(),SIt;default:return kUn(),PIt}}function umn(n,t,e){t.k==(uSn(),Cut)&&e.k==Put&&(n.d=Efn(t,(kUn(),SIt)),n.b=Efn(t,sIt)),e.k==Cut&&t.k==Put&&(n.d=Efn(e,(kUn(),sIt)),n.b=Efn(e,SIt))}function omn(n,t){var e,i;for(i=abn(n,t).Kc();i.Ob();)if(null!=mMn(e=BB(i.Pb(),11),(hWn(),Elt))||zN(new m6(e.b)))return!0;return!1}function smn(n,t){return Pen(t,n.e+n.d+(0==n.c.c.length?0:n.b)),Cen(t,n.f),n.a=e.Math.max(n.a,t.f),n.d+=t.g+(0==n.c.c.length?0:n.b),WB(n.c,t),!0}function hmn(n,t,e){var i,r,c,a;for(a=0,i=e/n.a.c.length,c=new Wb(n.a);c.a<c.c.c.length;)Tvn(r=BB(n0(c),187),r.s,r.t+a*i),Jvn(r,n.d-r.r+t,i),++a}function fmn(n){var t,e,i;for(e=new Wb(n.b);e.a<e.c.c.length;)for(t=0,i=new Wb(BB(n0(e),29).a);i.a<i.c.c.length;)BB(n0(i),10).p=t++}function lmn(n,t){var e,i,r,c,a,u;for(r=t.length-1,a=0,u=0,i=0;i<=r;i++)c=t[i],e=pSn(r,i)*efn(1-n,r-i)*efn(n,i),a+=c.a*e,u+=c.b*e;return new xC(a,u)}function bmn(n,t){var e,i,r,c,a;for(e=t.gc(),n.qi(n.i+e),c=t.Kc(),a=n.i,n.i+=e,i=a;i<n.i;++i)r=c.Pb(),jL(n,i,n.oi(i,r)),n.bi(i,r),n.ci();return 0!=e}function wmn(n,t,e){var i,r,c;return n.ej()?(i=n.Vi(),c=n.fj(),++n.j,n.Hi(i,n.oi(i,t)),r=n.Zi(3,null,t,i,c),e?e.Ei(r):e=r):ZD(n,n.Vi(),t),e}function dmn(n,t,e){var i,r,c;return(0!=(64&(c=cL(r=(i=BB(Wtn(a4(n.a),t),87)).c,88)?BB(r,26):(gWn(),d$t)).Db)?tfn(n.b,c):c)==e?lFn(i):cen(i,e),c}function gmn(n,t,e,i,r,c,a,u){var o,s;i&&((o=i.a[0])&&gmn(n,t,e,o,r,c,a,u),Iyn(n,e,i.d,r,c,a,u)&&t.Fc(i),(s=i.a[1])&&gmn(n,t,e,s,r,c,a,u))}function pmn(n,t){var e;return n.a||(e=x8(xNt,qQn,25,0,15,1),gE(n.b.a,new bw(e)),e.sort(ien(T.prototype.te,T,[])),n.a=new _K(e,n.d)),K6(n.a,t)}function vmn(n,t,e){try{return QI(trn(n,t,e),1)}catch(i){throw cL(i=lun(i),320)?Hp(new Ay(MJn+n.o+"*"+n.p+SJn+t+FWn+e+PJn)):Hp(i)}}function mmn(n,t,e){try{return QI(trn(n,t,e),0)}catch(i){throw cL(i=lun(i),320)?Hp(new Ay(MJn+n.o+"*"+n.p+SJn+t+FWn+e+PJn)):Hp(i)}}function ymn(n,t,e){try{return QI(trn(n,t,e),2)}catch(i){throw cL(i=lun(i),320)?Hp(new Ay(MJn+n.o+"*"+n.p+SJn+t+FWn+e+PJn)):Hp(i)}}function kmn(n,t){if(-1==n.g)throw Hp(new dv);n.mj();try{n.d._c(n.g,t),n.f=n.d.j}catch(e){throw cL(e=lun(e),73)?Hp(new vv):Hp(e)}}function jmn(n,t,e){OTn(e,"Linear segments node placement",1),n.b=BB(mMn(t,(hWn(),Alt)),304),VXn(n,t),vHn(n,t),QHn(n,t),hXn(n),n.a=null,n.b=null,HSn(e)}function Emn(n,t){var e,i,r,c;for(c=n.gc(),t.length<c&&(t=qk(new Array(c),t)),r=t,i=n.Kc(),e=0;e<c;++e)$X(r,e,i.Pb());return t.length>c&&$X(t,c,null),t}function Tmn(n,t){var e,i;if(i=n.gc(),null==t){for(e=0;e<i;e++)if(null==n.Xb(e))return e}else for(e=0;e<i;e++)if(Nfn(t,n.Xb(e)))return e;return-1}function Mmn(n,t){var e,i,r;return e=t.cd(),r=t.dd(),i=n.xc(e),!(!(GI(r)===GI(i)||null!=r&&Nfn(r,i))||null==i&&!n._b(e))}function Smn(n,t){var e,i,r;return t<=22?(e=n.l&(1<<t)-1,i=r=0):t<=44?(e=n.l,i=n.m&(1<<t-22)-1,r=0):(e=n.l,i=n.m,r=n.h&(1<<t-44)-1),M$(e,i,r)}function Pmn(n,t){switch(t.g){case 1:return n.f.n.d+n.t;case 3:return n.f.n.a+n.t;case 2:return n.f.n.c+n.s;case 4:return n.f.n.b+n.s;default:return 0}}function Cmn(n,t){var e,i;switch(i=t.c,e=t.a,n.b.g){case 0:e.d=n.e-i.a-i.d;break;case 1:e.d+=n.e;break;case 2:e.c=n.e-i.a-i.d;break;case 3:e.c=n.e+i.d}}function Imn(n,t,e,i){var r,c;this.a=t,this.c=i,$l(this,new xC(-(r=n.a).c,-r.d)),UR(this.b,e),c=i/2,t.a?Bx(this.b,0,c):Bx(this.b,c,0),WB(n.c,this)}function Omn(){Omn=O,qjt=new mC(QZn,0),Bjt=new mC(q1n,1),Hjt=new mC("EDGE_LENGTH_BY_POSITION",2),Fjt=new mC("CROSSING_MINIMIZATION_BY_POSITION",3)}function Amn(n,t){var e,i;if(e=BB(sen(n.g,t),33))return e;if(i=BB(sen(n.j,t),118))return i;throw Hp(new ek("Referenced shape does not exist: "+t))}function $mn(n,t){if(n.c==t)return n.d;if(n.d==t)return n.c;throw Hp(new _y("Node 'one' must be either source or target of edge 'edge'."))}function Lmn(n,t){if(n.c.i==t)return n.d.i;if(n.d.i==t)return n.c.i;throw Hp(new _y("Node "+t+" is neither source nor target of edge "+n))}function Nmn(n,t){var e;switch(t.g){case 2:case 4:e=n.a,n.c.d.n.b<e.d.n.b&&(e=n.c),bU(n,t,(Oun(),kst),e);break;case 1:case 3:bU(n,t,(Oun(),vst),null)}}function xmn(n,t,e,i,r,c){var a,u,o,s,h;for(a=ijn(t,e,c),u=e==(kUn(),sIt)||e==CIt?-1:1,s=n[e.g],h=0;h<s.length;h++)(o=s[h])>0&&(o+=r),s[h]=a,a+=u*(o+i)}function Dmn(n){var t,e,i;for(i=n.f,n.n=x8(xNt,qQn,25,i,15,1),n.d=x8(xNt,qQn,25,i,15,1),t=0;t<i;t++)e=BB(xq(n.c.b,t),29),n.n[t]=wpn(n,e),n.d[t]=VLn(n,e)}function Rmn(n,t){var e,i,r;for(r=0,i=2;i<t;i<<=1)0!=(n.Db&i)&&++r;if(0==r){for(e=t<<=1;e<=128;e<<=1)if(0!=(n.Db&e))return 0;return-1}return r}function Kmn(n,t){var e,i,r,c,a;for(a=axn(n.e.Tg(),t),c=null,e=BB(n.g,119),r=0;r<n.i;++r)i=e[r],a.rl(i.ak())&&(!c&&(c=new go),f9(c,i));c&&aXn(n,c)}function _mn(n){var t,e;if(!n)return null;if(n.dc())return"";for(e=new Sk,t=n.Kc();t.Ob();)cO(e,SD(t.Pb())),e.a+=" ";return KO(e,e.a.length-1)}function Fmn(n,t,e){var i,r,c,a;for(con(n),null==n.k&&(n.k=x8(Jnt,sVn,78,0,0,1)),r=0,c=(i=n.k).length;r<c;++r)Fmn(i[r],t,"\t"+e);(a=n.f)&&Fmn(a,t,e)}function Bmn(n,t){var e,i=new Array(t);switch(n){case 14:case 15:e=0;break;case 16:e=!1;break;default:return i}for(var r=0;r<t;++r)i[r]=e;return i}function Hmn(n){var t;for(t=new Wb(n.a.b);t.a<t.c.c.length;)BB(n0(t),57).c.$b();Otn(dA(n.d)?n.a.c:n.a.d,new Mw(n)),n.c.Me(n),_xn(n)}function qmn(n){var t,e,i;for(e=new Wb(n.e.c);e.a<e.c.c.length;){for(i=new Wb((t=BB(n0(e),282)).b);i.a<i.c.c.length;)_Bn(BB(n0(i),447));BCn(t)}}function Gmn(n){var t,i,r,c,a;for(r=0,a=0,c=0,i=new Wb(n.a);i.a<i.c.c.length;)t=BB(n0(i),187),a=e.Math.max(a,t.r),r+=t.d+(c>0?n.c:0),++c;n.b=r,n.d=a}function zmn(n,t){var i,r,c,a,u;for(r=0,c=0,i=0,u=new Wb(t);u.a<u.c.c.length;)a=BB(n0(u),200),r=e.Math.max(r,a.e),c+=a.b+(i>0?n.g:0),++i;n.c=c,n.d=r}function Umn(n,t){var i;return i=Pun(Gk(xNt,1),qQn,25,15,[gvn(n,(Dtn(),Git),t),gvn(n,zit,t),gvn(n,Uit,t)]),n.f&&(i[0]=e.Math.max(i[0],i[2]),i[2]=i[0]),i}function Xmn(n,t,e){try{FRn(n,t+n.j,e+n.k,!1,!0)}catch(i){throw cL(i=lun(i),73)?Hp(new Ay(i.g+CJn+t+FWn+e+").")):Hp(i)}}function Wmn(n,t,e){try{FRn(n,t+n.j,e+n.k,!0,!1)}catch(i){throw cL(i=lun(i),73)?Hp(new Ay(i.g+CJn+t+FWn+e+").")):Hp(i)}}function Vmn(n){var t;Lx(n,(HXn(),$gt))&&((t=BB(mMn(n,$gt),21)).Hc((n$n(),ICt))?(t.Mc(ICt),t.Fc(ACt)):t.Hc(ACt)&&(t.Mc(ACt),t.Fc(ICt)))}function Qmn(n){var t;Lx(n,(HXn(),$gt))&&((t=BB(mMn(n,$gt),21)).Hc((n$n(),DCt))?(t.Mc(DCt),t.Fc(NCt)):t.Hc(NCt)&&(t.Mc(NCt),t.Fc(DCt)))}function Ymn(n,t,e){OTn(e,"Self-Loop ordering",1),JT($V(AV(AV(wnn(new Rq(null,new w1(t.b,16)),new Ii),new Oi),new Ai),new $i),new bd(n)),HSn(e)}function Jmn(n,t,e,i){var r,c;for(r=t;r<n.c.length;r++){if(l1(r,n.c.length),c=BB(n.c[r],11),!e.Mb(c))return r;i.c[i.c.length]=c}return n.c.length}function Zmn(n,t,e,i){var r,c,a;return null==n.a&&dSn(n,t),a=t.b.j.c.length,c=e.d.p,(r=i.d.p-1)<0&&(r=a-1),c<=r?n.a[r]-n.a[c]:n.a[a-1]-n.a[c]+n.a[r]}function nyn(n){var t,e;if(!n.b)for(n.b=C2(BB(n.f,33).Ag().i),e=new AL(BB(n.f,33).Ag());e.e!=e.i.gc();)t=BB(kpn(e),137),WB(n.b,new Ry(t));return n.b}function tyn(n){var t,e;if(!n.e)for(n.e=C2(yV(BB(n.f,33)).i),e=new AL(yV(BB(n.f,33)));e.e!=e.i.gc();)t=BB(kpn(e),118),WB(n.e,new op(t));return n.e}function eyn(n){var t,e;if(!n.a)for(n.a=C2(YQ(BB(n.f,33)).i),e=new AL(YQ(BB(n.f,33)));e.e!=e.i.gc();)t=BB(kpn(e),33),WB(n.a,new JN(n,t));return n.a}function iyn(n){var t;if(!n.C&&(null!=n.D||null!=n.B))if(t=bzn(n))n.yk(t);else try{n.yk(null)}catch(e){if(!cL(e=lun(e),60))throw Hp(e)}return n.C}function ryn(n){switch(n.q.g){case 5:kjn(n,(kUn(),sIt)),kjn(n,SIt);break;case 4:cGn(n,(kUn(),sIt)),cGn(n,SIt);break;default:FPn(n,(kUn(),sIt)),FPn(n,SIt)}}function cyn(n){switch(n.q.g){case 5:jjn(n,(kUn(),oIt)),jjn(n,CIt);break;case 4:aGn(n,(kUn(),oIt)),aGn(n,CIt);break;default:BPn(n,(kUn(),oIt)),BPn(n,CIt)}}function ayn(n,t){var i,r,c;for(c=new Gj,r=n.Kc();r.Ob();)ZRn(i=BB(r.Pb(),37),c.a,0),c.a+=i.f.a+t,c.b=e.Math.max(c.b,i.f.b);return c.b>0&&(c.b+=t),c}function uyn(n,t){var i,r,c;for(c=new Gj,r=n.Kc();r.Ob();)ZRn(i=BB(r.Pb(),37),0,c.b),c.b+=i.f.b+t,c.a=e.Math.max(c.a,i.f.a);return c.a>0&&(c.a+=t),c}function oyn(n){var t,i,r;for(r=DWn,i=new Wb(n.a);i.a<i.c.c.length;)Lx(t=BB(n0(i),10),(hWn(),wlt))&&(r=e.Math.min(r,BB(mMn(t,wlt),19).a));return r}function syn(n,t){var e,i;if(0==t.length)return 0;for(e=ZX(n.a,t[0],(kUn(),CIt)),e+=ZX(n.a,t[t.length-1],oIt),i=0;i<t.length;i++)e+=qMn(n,i,t);return e}function hyn(){gxn(),this.c=new Np,this.i=new Np,this.e=new fA,this.f=new fA,this.g=new fA,this.j=new Np,this.a=new Np,this.b=new xp,this.k=new xp}function fyn(n,t){var e;return n.Db>>16==6?n.Cb.ih(n,5,GOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||n.zh(),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function lyn(n){PY();var t=n.e;if(t&&t.stack){var e=t.stack,i=t+"\n";return e.substring(0,i.length)==i&&(e=e.substring(i.length)),e.split("\n")}return[]}function byn(n){var t;return Min(),(t=Ott)[n>>>28]|t[n>>24&15]<<4|t[n>>20&15]<<8|t[n>>16&15]<<12|t[n>>12&15]<<16|t[n>>8&15]<<20|t[n>>4&15]<<24|t[15&n]<<28}function wyn(n){var t,i,r;n.b==n.c&&(r=n.a.length,i=kon(e.Math.max(8,r))<<1,0!=n.b?(urn(n,t=SR(n.a,i),r),n.a=t,n.b=0):Pv(n.a,i),n.c=r)}function dyn(n,t){var e;return(e=n.b).Xe((sWn(),aPt))?e.Hf()==(kUn(),CIt)?-e.rf().a-Gy(MD(e.We(aPt))):t+Gy(MD(e.We(aPt))):e.Hf()==(kUn(),CIt)?-e.rf().a:t}function gyn(n){var t;return 0!=n.b.c.length&&BB(xq(n.b,0),70).a?BB(xq(n.b,0),70).a:null!=(t=eQ(n))?t:""+(n.c?E7(n.c.a,n,0):-1)}function pyn(n){var t;return 0!=n.f.c.length&&BB(xq(n.f,0),70).a?BB(xq(n.f,0),70).a:null!=(t=eQ(n))?t:""+(n.i?E7(n.i.j,n,0):-1)}function vyn(n,t){var e,i;if(t<0||t>=n.gc())return null;for(e=t;e<n.gc();++e)if(i=BB(n.Xb(e),128),e==n.gc()-1||!i.o)return new rI(iln(e),i);return null}function myn(n,t,e){var i,r,c,a;for(c=n.c,i=e?n:t,r=(e?t:n).p+1;r<i.p;++r)if((a=BB(xq(c.a,r),10)).k!=(uSn(),Tut)&&!Lkn(a))return!1;return!0}function yyn(n){var t,i,r,c,a;for(a=0,c=KQn,r=0,i=new Wb(n.a);i.a<i.c.c.length;)a+=(t=BB(n0(i),187)).r+(r>0?n.c:0),c=e.Math.max(c,t.d),++r;n.e=a,n.b=c}function kyn(n){var t,e;if(!n.b)for(n.b=C2(BB(n.f,118).Ag().i),e=new AL(BB(n.f,118).Ag());e.e!=e.i.gc();)t=BB(kpn(e),137),WB(n.b,new Ry(t));return n.b}function jyn(n,t){var e,i,r;if(t.dc())return dD(),dD(),pAt;for(e=new aR(n,t.gc()),r=new AL(n);r.e!=r.i.gc();)i=kpn(r),t.Hc(i)&&f9(e,i);return e}function Eyn(n,t,e,i){return 0==t?i?(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),n.o):(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),A8(n.o)):Zpn(n,t,e,i)}function Tyn(n){var t,e;if(n.rb)for(t=0,e=n.rb.i;t<e;++t)vx(Wtn(n.rb,t));if(n.vb)for(t=0,e=n.vb.i;t<e;++t)vx(Wtn(n.vb,t));az((IPn(),Z$t),n),n.Bb|=1}function Myn(n,t,e,i,r,c,a,u,o,s,h,f,l,b){return bCn(n,t,i,null,r,c,a,u,o,s,l,!0,b),zln(n,h),cL(n.Cb,88)&&ACn(P5(BB(n.Cb,88)),2),e&&rrn(n,e),Uln(n,f),n}function Syn(n){var t;if(null==n)return null;t=0;try{t=l_n(n,_Vn,DWn)&QVn}catch(e){if(!cL(e=lun(e),127))throw Hp(e);t=V7(n)[0]}return fun(t)}function Pyn(n){var t;if(null==n)return null;t=0;try{t=l_n(n,_Vn,DWn)&QVn}catch(e){if(!cL(e=lun(e),127))throw Hp(e);t=V7(n)[0]}return fun(t)}function Cyn(n,t){var e,i,r;return!((r=n.h-t.h)<0||(e=n.l-t.l,(r+=(i=n.m-t.m+(e>>22))>>22)<0||(n.l=e&SQn,n.m=i&SQn,n.h=r&PQn,0)))}function Iyn(n,t,e,i,r,c,a){var u,o;return!(t.Ae()&&(o=n.a.ue(e,i),o<0||!r&&0==o)||t.Be()&&(u=n.a.ue(e,c),u>0||!a&&0==u))}function Oyn(n,t){if(zsn(),0!=n.j.g-t.j.g)return 0;switch(n.j.g){case 2:return jbn(t,bst)-jbn(n,bst);case 4:return jbn(n,lst)-jbn(t,lst)}return 0}function Ayn(n){switch(n.g){case 0:return xht;case 1:return Dht;case 2:return Rht;case 3:return Kht;case 4:return _ht;case 5:return Fht;default:return null}}function $yn(n,t,e){var i,r;return Ihn(r=new Lm,t),Nrn(r,e),f9((!n.c&&(n.c=new eU(YAt,n,12,10)),n.c),r),Len(i=r,0),Nen(i,1),nln(i,!0),Yfn(i,!0),i}function Lyn(n,t){var e,i;if(t>=n.i)throw Hp(new LO(t,n.i));return++n.j,e=n.g[t],(i=n.i-t-1)>0&&aHn(n.g,t+1,n.g,t,i),$X(n.g,--n.i,null),n.fi(t,e),n.ci(),e}function Nyn(n,t){var e;return n.Db>>16==17?n.Cb.ih(n,21,qAt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||n.zh(),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function xyn(n){var t,e,i;for(SQ(),m$(n.c,n.a),i=new Wb(n.c);i.a<i.c.c.length;)for(e=n0(i),t=new Wb(n.b);t.a<t.c.c.length;)BB(n0(t),679).Ke(e)}function Dyn(n){var t,e,i;for(SQ(),m$(n.c,n.a),i=new Wb(n.c);i.a<i.c.c.length;)for(e=n0(i),t=new Wb(n.b);t.a<t.c.c.length;)BB(n0(t),369).Ke(e)}function Ryn(n){var t,e,i,r,c;for(r=DWn,c=null,i=new Wb(n.d);i.a<i.c.c.length;)(e=BB(n0(i),213)).d.j^e.e.j&&(t=e.e.e-e.d.e-e.a)<r&&(r=t,c=e);return c}function Kyn(){Kyn=O,dat=new $O(NZn,(hN(),!1)),fat=new $O(xZn,100),q7(),lat=new $O(DZn,bat=Oat),wat=new $O(RZn,lZn),gat=new $O(KZn,iln(DWn))}function _yn(n,t,e){var i,r,c,a,u,o;for(o=0,r=0,c=(i=n.a[t]).length;r<c;++r)for(u=Lfn(i[r],e).Kc();u.Ob();)a=BB(u.Pb(),11),VW(n.f,a,iln(o++))}function Fyn(n,t,e){var i,r;if(e)for(r=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);r.Ob();)JIn(n,t,kIn(dnn(e,BB(r.Pb(),19).a)))}function Byn(n,t,e){var i,r;if(e)for(r=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);r.Ob();)JIn(n,t,kIn(dnn(e,BB(r.Pb(),19).a)))}function Hyn(n){var t;return _Mn(),z9(t=BB(Emn(gz(n.k),x8(FIt,YZn,61,2,0,1)),122),0,t.length,null),t[0]==(kUn(),sIt)&&t[1]==CIt&&($X(t,0,CIt),$X(t,1,sIt)),t}function qyn(n,t,e){var i,r,c;return c=sDn(n,r=XNn(n,t,e)),K9(n.b),k0(n,t,e),SQ(),m$(r,new Vd(n)),i=sDn(n,r),K9(n.b),k0(n,e,t),new rI(iln(c),iln(i))}function Gyn(){Gyn=O,Umt=dq(new B2,(yMn(),Bat),(lWn(),dot)),Xmt=new iR("linearSegments.inputPrio",iln(0)),Wmt=new iR("linearSegments.outputPrio",iln(0))}function zyn(){zyn=O,Ryt=new fC("P1_TREEIFICATION",0),Kyt=new fC("P2_NODE_ORDERING",1),_yt=new fC("P3_NODE_PLACEMENT",2),Fyt=new fC("P4_EDGE_ROUTING",3)}function Uyn(){Uyn=O,sWn(),xjt=gPt,Kjt=LPt,Cjt=KSt,Ijt=BSt,Ojt=qSt,Pjt=DSt,Ajt=USt,Njt=fPt,KAn(),Mjt=wjt,Sjt=djt,$jt=pjt,Ljt=mjt,Djt=yjt,Rjt=kjt,_jt=Ejt}function Xyn(){Xyn=O,MCt=new qC("UNKNOWN",0),jCt=new qC("ABOVE",1),ECt=new qC("BELOW",2),TCt=new qC("INLINE",3),new iR("org.eclipse.elk.labelSide",MCt)}function Wyn(n,t){var e;if(n.ni()&&null!=t){for(e=0;e<n.i;++e)if(Nfn(t,n.g[e]))return e}else for(e=0;e<n.i;++e)if(GI(n.g[e])===GI(t))return e;return-1}function Vyn(n,t,e){var i,r;return t.c==(ain(),qvt)&&e.c==Hvt?-1:t.c==Hvt&&e.c==qvt?1:(i=dhn(t.a,n.a),r=dhn(e.a,n.a),t.c==qvt?r-i:i-r)}function Qyn(n,t,e){if(e&&(t<0||t>e.a.c.length))throw Hp(new _y("index must be >= 0 and <= layer node count"));n.c&&y7(n.c.a,n),n.c=e,e&&kG(e.a,t,n)}function Yyn(n,t){var e,i,r;for(i=new oz(ZL(hbn(n).a.Kc(),new h));dAn(i);)return e=BB(U5(i),17),new qf(yX((r=BB(t.Kb(e),10)).n.b+r.o.b/2));return iy(),iy(),Ont}function Jyn(n,t){this.c=new xp,this.a=n,this.b=t,this.d=BB(mMn(n,(hWn(),Alt)),304),GI(mMn(n,(HXn(),Lgt)))===GI((g7(),qht))?this.e=new gm:this.e=new dm}function Zyn(n,t){var i,r,c;for(c=0,r=new Wb(n);r.a<r.c.c.length;)i=BB(n0(r),33),c+=e.Math.pow(i.g*i.f-t,2);return e.Math.sqrt(c/(n.c.length-1))}function nkn(n,t){var e,i;return i=null,n.Xe((sWn(),CPt))&&(e=BB(n.We(CPt),94)).Xe(t)&&(i=e.We(t)),null==i&&n.yf()&&(i=n.yf().We(t)),null==i&&(i=mpn(t)),i}function tkn(n,t){var e,i;e=n.Zc(t);try{return i=e.Pb(),e.Qb(),i}catch(r){throw cL(r=lun(r),109)?Hp(new Ay("Can't remove element "+t)):Hp(r)}}function ekn(n,t){var e,i,r;if(0==(e=DBn(n,t,r=new von((i=new AT).q.getFullYear()-sQn,i.q.getMonth(),i.q.getDate())))||e<t.length)throw Hp(new _y(t));return r}function ikn(n,t){var e,i,r;for(kW(t),Tx(t!=n),r=n.b.c.length,i=t.Kc();i.Ob();)e=i.Pb(),WB(n.b,kW(e));return r!=n.b.c.length&&(Esn(n,0),!0)}function rkn(){rkn=O,sWn(),kat=CSt,new XA(dSt,(hN(),!0)),Tat=KSt,Mat=BSt,Sat=qSt,Eat=DSt,Pat=USt,Cat=fPt,Kyn(),yat=dat,vat=lat,mat=wat,jat=gat,pat=fat}function ckn(n,t){if(t==n.c)return n.d;if(t==n.d)return n.c;throw Hp(new _y("'port' must be either the source port or target port of the edge."))}function akn(n,t,e){var i,r;switch(r=n.o,i=n.d,t.g){case 1:return-i.d-e;case 3:return r.b+i.a+e;case 2:return r.a+i.c+e;case 4:return-i.b-e;default:return 0}}function ukn(n,t,e,i){var r,c,a;for(PZ(t,BB(i.Xb(0),29)),a=i.bd(1,i.gc()),c=BB(e.Kb(t),20).Kc();c.Ob();)ukn(n,(r=BB(c.Pb(),17)).c.i==t?r.d.i:r.c.i,e,a)}function okn(n){var t;return t=new xp,Lx(n,(hWn(),Dlt))?BB(mMn(n,Dlt),83):(JT(AV(new Rq(null,new w1(n.j,16)),new tr),new gd(t)),hon(n,Dlt,t),t)}function skn(n,t){var e;return n.Db>>16==6?n.Cb.ih(n,6,_Ot,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(CXn(),yOt),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function hkn(n,t){var e;return n.Db>>16==7?n.Cb.ih(n,1,DOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(CXn(),jOt),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function fkn(n,t){var e;return n.Db>>16==9?n.Cb.ih(n,9,UOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(CXn(),TOt),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function lkn(n,t){var e;return n.Db>>16==5?n.Cb.ih(n,9,XAt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(gWn(),s$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function bkn(n,t){var e;return n.Db>>16==3?n.Cb.ih(n,0,BOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(gWn(),e$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function wkn(n,t){var e;return n.Db>>16==7?n.Cb.ih(n,6,GOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(gWn(),v$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function dkn(){this.a=new lo,this.g=new Avn,this.j=new Avn,this.b=new xp,this.d=new Avn,this.i=new Avn,this.k=new xp,this.c=new xp,this.e=new xp,this.f=new xp}function gkn(n,t,e){var i,r,c;for(e<0&&(e=0),c=n.i,r=e;r<c;r++)if(i=Wtn(n,r),null==t){if(null==i)return r}else if(GI(t)===GI(i)||Nfn(t,i))return r;return-1}function pkn(n,t){var e,i;return(e=t.Hh(n.a))?(i=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),j7n)),mK(E7n,i)?az(n,Utn(t.Hj())):i):null}function vkn(n,t){var e,i;if(t){if(t==n)return!0;for(e=0,i=BB(t,49).eh();i&&i!=t;i=i.eh()){if(++e>GQn)return vkn(n,i);if(i==n)return!0}}return!1}function mkn(n){switch(DN(),n.q.g){case 5:vIn(n,(kUn(),sIt)),vIn(n,SIt);break;case 4:z$n(n,(kUn(),sIt)),z$n(n,SIt);break;default:vUn(n,(kUn(),sIt)),vUn(n,SIt)}}function ykn(n){switch(DN(),n.q.g){case 5:SOn(n,(kUn(),oIt)),SOn(n,CIt);break;case 4:Cpn(n,(kUn(),oIt)),Cpn(n,CIt);break;default:mUn(n,(kUn(),oIt)),mUn(n,CIt)}}function kkn(n){var t,e;(t=BB(mMn(n,(fRn(),nat)),19))?(e=t.a,hon(n,(Mrn(),hat),0==e?new sbn:new C4(e))):hon(n,(Mrn(),hat),new C4(1))}function jkn(n,t){var e;switch(e=n.i,t.g){case 1:return-(n.n.b+n.o.b);case 2:return n.n.a-e.o.a;case 3:return n.n.b-e.o.b;case 4:return-(n.n.a+n.o.a)}return 0}function Ekn(n,t){switch(n.g){case 0:return t==(Tbn(),Flt)?rst:cst;case 1:return t==(Tbn(),Flt)?rst:ist;case 2:return t==(Tbn(),Flt)?ist:cst;default:return ist}}function Tkn(n,t){var i,r,c;for(y7(n.a,t),n.e-=t.r+(0==n.a.c.length?0:n.c),c=n4n,r=new Wb(n.a);r.a<r.c.c.length;)i=BB(n0(r),187),c=e.Math.max(c,i.d);n.b=c}function Mkn(n,t){var e;return n.Db>>16==3?n.Cb.ih(n,12,UOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(CXn(),mOt),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Skn(n,t){var e;return n.Db>>16==11?n.Cb.ih(n,10,UOt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(CXn(),EOt),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Pkn(n,t){var e;return n.Db>>16==10?n.Cb.ih(n,11,qAt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(gWn(),g$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Ckn(n,t){var e;return n.Db>>16==10?n.Cb.ih(n,12,QAt,t):(e=Cvn(BB(itn(BB(yan(n,16),26)||(gWn(),m$t),n.Db>>16),18)),n.Cb.ih(n,e.n,e.f,t))}function Ikn(n){var t;return 0==(1&n.Bb)&&n.r&&n.r.kh()&&(t=BB(n.r,49),n.r=BB(tfn(n,t),138),n.r!=t&&0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,8,t,n.r))),n.r}function Okn(n,t,i){var r;return r=Pun(Gk(xNt,1),qQn,25,15,[iMn(n,(Dtn(),Git),t,i),iMn(n,zit,t,i),iMn(n,Uit,t,i)]),n.f&&(r[0]=e.Math.max(r[0],r[2]),r[2]=r[0]),r}function Akn(n,t){var e,i,r;if(0!=(r=Yvn(n,t)).c.length)for(m$(r,new ti),e=r.c.length,i=0;i<e;i++)hPn(n,(l1(i,r.c.length),BB(r.c[i],286)),TDn(n,r,i))}function $kn(n){var t,e,i;for(i=BB(h6(n.a,(LEn(),Tst)),15).Kc();i.Ob();)for(t=gz((e=BB(i.Pb(),101)).k).Kc();t.Ob();)iX(n,e,BB(t.Pb(),61),(Crn(),Dst),1)}function Lkn(n){var t,e;if(n.k==(uSn(),Put))for(e=new oz(ZL(hbn(n).a.Kc(),new h));dAn(e);)if(!b5(t=BB(U5(e),17))&&n.c==Ajn(t,n).c)return!0;return!1}function Nkn(n){var t,e;if(n.k==(uSn(),Put))for(e=new oz(ZL(hbn(n).a.Kc(),new h));dAn(e);)if(!b5(t=BB(U5(e),17))&&t.c.i.c==t.d.i.c)return!0;return!1}function xkn(n,t){var e,i;for(OTn(t,"Dull edge routing",1),i=spn(n.b,0);i.b!=i.d.c;)for(e=spn(BB(b3(i),86).d,0);e.b!=e.d.c;)yQ(BB(b3(e),188).a)}function Dkn(n,t){var e,i,r;if(t)for(r=((e=new hz(t.a.length)).b-e.a)*e.c<0?(eS(),MNt):new XL(e);r.Ob();)(i=x2(t,BB(r.Pb(),19).a))&&O$n(n,i)}function Rkn(){var n;for(tS(),nWn((QX(),t$t)),_Xn(t$t),Tyn(t$t),gWn(),L$t=l$t,n=new Wb(V$t);n.a<n.c.c.length;)azn(BB(n0(n),241),l$t,null);return!0}function Kkn(n,t){var e,i,r,c,a,u;return(a=n.h>>19)!=(u=t.h>>19)?u-a:(i=n.h)!=(c=t.h)?i-c:(e=n.m)!=(r=t.m)?e-r:n.l-t.l}function _kn(){_kn=O,tRn(),Pit=new $O(UYn,Cit=xit),Rnn(),Mit=new $O(XYn,Sit=mit),hpn(),Eit=new $O(WYn,Tit=dit),jit=new $O(VYn,(hN(),!0))}function Fkn(n,t,e){var i,r;i=t*e,cL(n.g,145)?(r=f3(n)).f.d?r.f.a||(n.d.a+=i+fJn):(n.d.d-=i+fJn,n.d.a+=i+fJn):cL(n.g,10)&&(n.d.d-=i,n.d.a+=2*i)}function Bkn(n,t,i){var r,c,a,u,o;for(c=n[i.g],o=new Wb(t.d);o.a<o.c.c.length;)(a=(u=BB(n0(o),101)).i)&&a.i==i&&(c[r=u.d[i.g]]=e.Math.max(c[r],a.j.b))}function Hkn(n,t){var i,r,c,a,u;for(r=0,c=0,i=0,u=new Wb(t.d);u.a<u.c.c.length;)Gmn(a=BB(n0(u),443)),r=e.Math.max(r,a.b),c+=a.d+(i>0?n.g:0),++i;t.b=r,t.e=c}function qkn(n){var t,e,i;if(i=n.b,qT(n.i,i.length)){for(e=2*i.length,n.b=x8(Gnt,CVn,317,e,0,1),n.c=x8(Gnt,CVn,317,e,0,1),n.f=e-1,n.i=0,t=n.a;t;t=t.c)YCn(n,t,t);++n.g}}function Gkn(n,t,e,i){var r,c,a,u;for(r=0;r<t.o;r++)for(c=r-t.j+e,a=0;a<t.p;a++)u=a-t.k+i,vmn(t,r,a)?cmn(n,c,u)||Xmn(n,c,u):ymn(t,r,a)&&(imn(n,c,u)||Wmn(n,c,u))}function zkn(n,t,e){var i;(i=t.c.i).k==(uSn(),Put)?(hon(n,(hWn(),hlt),BB(mMn(i,hlt),11)),hon(n,flt,BB(mMn(i,flt),11))):(hon(n,(hWn(),hlt),t.c),hon(n,flt,e.d))}function Ukn(n,t,i){var r,c,a,u,o,s;return jDn(),u=t/2,a=i/2,o=1,s=1,(r=e.Math.abs(n.a))>u&&(o=u/r),(c=e.Math.abs(n.b))>a&&(s=a/c),kL(n,e.Math.min(o,s)),n}function Xkn(){var n,t;qBn();try{if(t=BB(Xjn((WM(),zAt),y6n),2014))return t}catch(e){if(!cL(e=lun(e),102))throw Hp(e);n=e,uz((u$(),n))}return new ao}function Wkn(){var n,t;d7();try{if(t=BB(Xjn((WM(),zAt),S7n),2024))return t}catch(e){if(!cL(e=lun(e),102))throw Hp(e);n=e,uz((u$(),n))}return new Ds}function Vkn(){var n,t;qBn();try{if(t=BB(Xjn((WM(),zAt),V9n),1941))return t}catch(e){if(!cL(e=lun(e),102))throw Hp(e);n=e,uz((u$(),n))}return new qo}function Qkn(n,t,e){var i,r;return r=n.e,n.e=t,0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,4,r,t),e?e.Ei(i):e=i),r!=t&&(e=azn(n,t?kLn(n,t):n.a,e)),e}function Ykn(){AT.call(this),this.e=-1,this.a=!1,this.p=_Vn,this.k=-1,this.c=-1,this.b=-1,this.g=!1,this.f=-1,this.j=-1,this.n=-1,this.i=-1,this.d=-1,this.o=_Vn}function Jkn(n,t){var e,i,r;if(i=n.b.d.d,n.a||(i+=n.b.d.a),r=t.b.d.d,t.a||(r+=t.b.d.a),0==(e=Pln(i,r))){if(!n.a&&t.a)return-1;if(!t.a&&n.a)return 1}return e}function Zkn(n,t){var e,i,r;if(i=n.b.b.d,n.a||(i+=n.b.b.a),r=t.b.b.d,t.a||(r+=t.b.b.a),0==(e=Pln(i,r))){if(!n.a&&t.a)return-1;if(!t.a&&n.a)return 1}return e}function njn(n,t){var e,i,r;if(i=n.b.g.d,n.a||(i+=n.b.g.a),r=t.b.g.d,t.a||(r+=t.b.g.a),0==(e=Pln(i,r))){if(!n.a&&t.a)return-1;if(!t.a&&n.a)return 1}return e}function tjn(){tjn=O,Nat=WG(dq(dq(dq(new B2,(yMn(),Fat),(lWn(),yot)),Fat,Tot),Bat,Aot),Bat,oot),Dat=dq(dq(new B2,Fat,Jut),Fat,sot),xat=WG(new B2,Bat,fot)}function ejn(n){var t,e,i,r,c;for(t=BB(mMn(n,(hWn(),zft)),83),c=n.n,i=t.Cc().Kc();i.Ob();)(r=(e=BB(i.Pb(),306)).i).c+=c.a,r.d+=c.b,e.c?NDn(e):xDn(e);hon(n,zft,null)}function ijn(n,t,e){var i,r;switch(i=(r=n.b).d,t.g){case 1:return-i.d-e;case 2:return r.o.a+i.c+e;case 3:return r.o.b+i.a+e;case 4:return-i.b-e;default:return-1}}function rjn(n){var t,e,i,r,c;if(i=0,r=ZJn,n.b)for(t=0;t<360;t++)e=.017453292519943295*t,UKn(n,n.d,0,0,Z3n,e),(c=n.b.ig(n.d))<r&&(i=e,r=c);UKn(n,n.d,0,0,Z3n,i)}function cjn(n,t){var e,i,r,c;for(c=new xp,t.e=null,t.f=null,i=new Wb(t.i);i.a<i.c.c.length;)e=BB(n0(i),65),r=BB(RX(n.g,e.a),46),e.a=qz(e.b),VW(c,e.a,r);n.g=c}function ajn(n,t,e){var i,r,c,a,u;for(r=(t-n.e)/n.d.c.length,c=0,u=new Wb(n.d);u.a<u.c.c.length;)a=BB(n0(u),443),i=n.b-a.b+e,kdn(a,a.e+c*r,a.f),hmn(a,r,i),++c}function ujn(n){var t;if(n.f.qj(),-1!=n.b){if(++n.b,t=n.f.d[n.a],n.b<t.i)return;++n.a}for(;n.a<n.f.d.length;++n.a)if((t=n.f.d[n.a])&&0!=t.i)return void(n.b=0);n.b=-1}function ojn(n,t){var e,i,r;for(e=$Cn(n,0==(r=t.c.length)?"":(l1(0,t.c.length),SD(t.c[0]))),i=1;i<r&&e;++i)e=BB(e,49).oh((l1(i,t.c.length),SD(t.c[i])));return e}function sjn(n,t){var e,i;for(i=new Wb(t);i.a<i.c.c.length;)e=BB(n0(i),10),n.c[e.c.p][e.p].a=OG(n.i),n.c[e.c.p][e.p].d=Gy(n.c[e.c.p][e.p].a),n.c[e.c.p][e.p].b=1}function hjn(n,t){var i,r,c;for(c=0,r=new Wb(n);r.a<r.c.c.length;)i=BB(n0(r),157),c+=e.Math.pow(iG(i)*eG(i)-t,2);return e.Math.sqrt(c/(n.c.length-1))}function fjn(n,t,e,i){var r,c,a;return a=NRn(n,c=qRn(n,t,e,i)),fMn(n,t,e,i),K9(n.b),SQ(),m$(c,new Qd(n)),r=NRn(n,c),fMn(n,e,t,i),K9(n.b),new rI(iln(a),iln(r))}function ljn(n,t,e){var i;for(OTn(e,"Interactive node placement",1),n.a=BB(mMn(t,(hWn(),Alt)),304),i=new Wb(t.b);i.a<i.c.c.length;)nDn(n,BB(n0(i),29));HSn(e)}function bjn(n,t){OTn(t,"General Compactor",1),t.n&&n&&y0(t,o2(n),(Bsn(),uOt)),dwn(BB(ZAn(n,(Uyn(),Sjt)),380)).hg(n),t.n&&n&&y0(t,o2(n),(Bsn(),uOt))}function wjn(n,t,e){var i,r;for(CA(n,n.j+t,n.k+e),r=new AL((!n.a&&(n.a=new $L(xOt,n,5)),n.a));r.e!=r.i.gc();)TA(i=BB(kpn(r),469),i.a+t,i.b+e);PA(n,n.b+t,n.c+e)}function djn(n,t,e,i){switch(e){case 7:return!n.e&&(n.e=new hK(_Ot,n,7,4)),Ywn(n.e,t,i);case 8:return!n.d&&(n.d=new hK(_Ot,n,8,5)),Ywn(n.d,t,i)}return FTn(n,t,e,i)}function gjn(n,t,e,i){switch(e){case 7:return!n.e&&(n.e=new hK(_Ot,n,7,4)),_pn(n.e,t,i);case 8:return!n.d&&(n.d=new hK(_Ot,n,8,5)),_pn(n.d,t,i)}return run(n,t,e,i)}function pjn(n,t,e){var i,r,c;if(e)for(c=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);c.Ob();)(r=x2(e,BB(c.Pb(),19).a))&&bIn(n,r,t)}function vjn(n,t,e){var i,r,c;return n.qj(),c=null==t?0:nsn(t),n.f>0&&(r=aOn(n,(c&DWn)%n.d.length,c,t))?r.ed(e):(i=n.tj(c,t,e),n.c.Fc(i),null)}function mjn(n,t){var e,i,r,c;switch(Cfn(n,t)._k()){case 3:case 2:for(r=0,c=(e=YBn(t)).i;r<c;++r)if(5==DW(B7(n,i=BB(Wtn(e,r),34))))return i}return null}function yjn(n){var t,e,i,r,c;if(qT(n.f,n.b.length))for(i=x8(Qnt,CVn,330,2*n.b.length,0,1),n.b=i,r=i.length-1,e=n.a;e!=n;e=e.Rd())t=(c=BB(e,330)).d&r,c.a=i[t],i[t]=c}function kjn(n,t){var i,r,c,a;for(a=0,c=BB(BB(h6(n.r,t),21),84).Kc();c.Ob();)r=BB(c.Pb(),111),a=e.Math.max(a,r.e.a+r.b.rf().a);(i=BB(oV(n.b,t),124)).n.b=0,i.a.a=a}function jjn(n,t){var i,r,c,a;for(i=0,a=BB(BB(h6(n.r,t),21),84).Kc();a.Ob();)c=BB(a.Pb(),111),i=e.Math.max(i,c.e.b+c.b.rf().b);(r=BB(oV(n.b,t),124)).n.d=0,r.a.b=i}function Ejn(n){var t,e;return e=BB(mMn(n,(hWn(),Zft)),21),t=kA(vyt),e.Hc((bDn(),gft))&&Jcn(t,kyt),e.Hc(vft)&&Jcn(t,Eyt),e.Hc(sft)&&Jcn(t,myt),e.Hc(fft)&&Jcn(t,yyt),t}function Tjn(n,t){var e;OTn(t,"Delaunay triangulation",1),e=new Np,Otn(n.i,new yg(e)),qy(TD(mMn(n,(Xcn(),Qrt)))),n.e?Frn(n.e,$Xn(e)):n.e=$Xn(e),HSn(t)}function Mjn(n){if(n<0)throw Hp(new _y("The input must be positive"));return n<MMt.length?j2(MMt[n]):e.Math.sqrt(Z3n*n)*(ifn(n,n)/efn(2.718281828459045,n))}function Sjn(n,t){var e;if(n.ni()&&null!=t){for(e=0;e<n.i;++e)if(Nfn(t,n.g[e]))return!0}else for(e=0;e<n.i;++e)if(GI(n.g[e])===GI(t))return!0;return!1}function Pjn(n,t){if(null==t){for(;n.a.Ob();)if(null==BB(n.a.Pb(),42).dd())return!0}else for(;n.a.Ob();)if(Nfn(t,BB(n.a.Pb(),42).dd()))return!0;return!1}function Cjn(n,t){var e;return t===n||!!cL(t,664)&&(e=BB(t,1947),ign(n.g||(n.g=new Zf(n)),e.g||(e.g=new Zf(e))))}function Ijn(n){var t,i,r;for(t="Sz",i="ez",r=e.Math.min(n.length,5)-1;r>=0;r--)if(mK(n[r].d,t)||mK(n[r].d,i)){n.length>=r+1&&n.splice(0,r+1);break}return n}function Ojn(n,t){var i;return JO(n)&&JO(t)&&$Qn<(i=n/t)&&i<OQn?i<0?e.Math.ceil(i):e.Math.floor(i):uan(Aqn(JO(n)?Pan(n):n,JO(t)?Pan(t):t,!1))}function Ajn(n,t){if(t==n.c.i)return n.d.i;if(t==n.d.i)return n.c.i;throw Hp(new _y("'node' must either be the source node or target node of the edge."))}function $jn(n){var t,e,i,r;if(r=BB(mMn(n,(hWn(),Fft)),37)){for(i=new Gj,t=vW(n.c.i);t!=r;)t=vW(e=t.e),_x(UR(UR(i,e.n),t.c),t.d.b,t.d.d);return i}return Fut}function Ljn(n){var t;JT(wnn(new Rq(null,new w1((t=BB(mMn(n,(hWn(),Olt)),403)).d,16)),new _i),new wd(n)),JT(AV(new Rq(null,new w1(t.d,16)),new Fi),new dd(n))}function Njn(n,t){var e,i;for(e=new oz(ZL((t?lbn(n):fbn(n)).a.Kc(),new h));dAn(e);)if((i=Ajn(BB(U5(e),17),n)).k==(uSn(),Put)&&i.c!=n.c)return i;return null}function xjn(n){var t,i,r;for(i=new Wb(n.p);i.a<i.c.c.length;)(t=BB(n0(i),10)).k==(uSn(),Cut)&&(r=t.o.b,n.i=e.Math.min(n.i,r),n.g=e.Math.max(n.g,r))}function Djn(n,t,e){var i,r,c;for(c=new Wb(t);c.a<c.c.c.length;)i=BB(n0(c),10),n.c[i.c.p][i.p].e=!1;for(r=new Wb(t);r.a<r.c.c.length;)xzn(n,i=BB(n0(r),10),e)}function Rjn(n,t,i){var r,c;(r=Tfn(t.j,i.s,i.c)+Tfn(i.e,t.s,t.c))==(c=Tfn(i.j,t.s,t.c)+Tfn(t.e,i.s,i.c))?r>0&&(n.b+=2,n.a+=r):(n.b+=1,n.a+=e.Math.min(r,c))}function Kjn(n,t){var e;if(e=!1,XI(t)&&(e=!0,nW(n,new GX(SD(t)))),e||cL(t,236)&&(e=!0,nW(n,new Sl(XK(BB(t,236))))),!e)throw Hp(new Ly(H6n))}function _jn(n,t,e,i){var r,c,a;return r=new N7(n.e,1,10,cL(a=t.c,88)?BB(a,26):(gWn(),d$t),cL(c=e.c,88)?BB(c,26):(gWn(),d$t),uvn(n,t),!1),i?i.Ei(r):i=r,i}function Fjn(n){var t,e;switch(BB(mMn(vW(n),(HXn(),pgt)),420).g){case 0:return t=n.n,e=n.o,new xC(t.a+e.a/2,t.b+e.b/2);case 1:return new wA(n.n);default:return null}}function Bjn(){Bjn=O,Qht=new AP(QZn,0),Vht=new AP("LEFTUP",1),Jht=new AP("RIGHTUP",2),Wht=new AP("LEFTDOWN",3),Yht=new AP("RIGHTDOWN",4),Xht=new AP("BALANCED",5)}function Hjn(n,t,e){var i,r,c;if(0==(i=Pln(n.a[t.p],n.a[e.p]))){if(r=BB(mMn(t,(hWn(),clt)),15),c=BB(mMn(e,clt),15),r.Hc(e))return-1;if(c.Hc(t))return 1}return i}function qjn(n){switch(n.g){case 1:return new _a;case 2:return new Fa;case 3:return new Ka;case 0:return null;default:throw Hp(new _y(c4n+(null!=n.f?n.f:""+n.g)))}}function Gjn(n,t,e){switch(t){case 1:return!n.n&&(n.n=new eU(zOt,n,1,7)),sqn(n.n),!n.n&&(n.n=new eU(zOt,n,1,7)),void pX(n.n,BB(e,14));case 2:return void $in(n,SD(e))}rsn(n,t,e)}function zjn(n,t,e){switch(t){case 3:return void Men(n,Gy(MD(e)));case 4:return void Sen(n,Gy(MD(e)));case 5:return void Pen(n,Gy(MD(e)));case 6:return void Cen(n,Gy(MD(e)))}Gjn(n,t,e)}function Ujn(n,t,e){var i,r;(i=HTn(r=new Lm,t,null))&&i.Fi(),Nrn(r,e),f9((!n.c&&(n.c=new eU(YAt,n,12,10)),n.c),r),Len(r,0),Nen(r,1),nln(r,!0),Yfn(r,!0)}function Xjn(n,t){var e,i;return cL(e=hS(n.g,t),235)?((i=BB(e,235)).Qh(),i.Nh()):cL(e,498)?i=BB(e,1938).b:null}function Wjn(n,t,e,i){var r,c;return yX(t),yX(e),R7(!!(c=BB(UK(n.d,t),19)),"Row %s not in %s",t,n.e),R7(!!(r=BB(UK(n.b,e),19)),"Column %s not in %s",e,n.c),Sun(n,c.a,r.a,i)}function Vjn(n,t,e,i,r,c,a){var u,o,s,h,f;if(f=Bmn(u=(s=c==a-1)?i:0,h=r[c]),10!=i&&Pun(Gk(n,a-c),t[c],e[c],u,f),!s)for(++c,o=0;o<h;++o)f[o]=Vjn(n,t,e,i,r,c,a);return f}function Qjn(n){if(-1==n.g)throw Hp(new dv);n.mj();try{n.i.$c(n.g),n.f=n.i.j,n.g<n.e&&--n.e,n.g=-1}catch(t){throw cL(t=lun(t),73)?Hp(new vv):Hp(t)}}function Yjn(n,t){return n.b.a=e.Math.min(n.b.a,t.c),n.b.b=e.Math.min(n.b.b,t.d),n.a.a=e.Math.max(n.a.a,t.c),n.a.b=e.Math.max(n.a.b,t.d),n.c[n.c.length]=t,!0}function Jjn(n){var t,e,i;for(i=-1,e=0,t=new Wb(n);t.a<t.c.c.length;){if(BB(n0(t),243).c==(ain(),Hvt)){i=0==e?0:e-1;break}e==n.c.length-1&&(i=e),e+=1}return i}function Zjn(n){var t,i,r,c;for(c=0,t=0,r=new Wb(n.c);r.a<r.c.c.length;)Pen(i=BB(n0(r),33),n.e+c),Cen(i,n.f),c+=i.g+n.b,t=e.Math.max(t,i.f+n.b);n.d=c-n.b,n.a=t-n.b}function nEn(n){var t,e,i;for(e=new Wb(n.a.b);e.a<e.c.c.length;)i=(t=BB(n0(e),57)).d.c,t.d.c=t.d.d,t.d.d=i,i=t.d.b,t.d.b=t.d.a,t.d.a=i,i=t.b.a,t.b.a=t.b.b,t.b.b=i;yNn(n)}function tEn(n){var t,e,i;for(e=new Wb(n.a.b);e.a<e.c.c.length;)i=(t=BB(n0(e),81)).g.c,t.g.c=t.g.d,t.g.d=i,i=t.g.b,t.g.b=t.g.a,t.g.a=i,i=t.e.a,t.e.a=t.e.b,t.e.b=i;kNn(n)}function eEn(n){var t,e,i,r,c;for(c=gz(n.k),kUn(),i=0,r=(e=Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length;i<r;++i)if((t=e[i])!=PIt&&!c.Hc(t))return t;return null}function iEn(n,t){var e,i;return(i=BB(EN(Qon(AV(new Rq(null,new w1(t.j,16)),new bc))),11))&&(e=BB(xq(i.e,0),17))?BB(mMn(e,(hWn(),wlt)),19).a:gnn(n.b)}function rEn(n,t){var e,i,r;for(r=new Wb(t.a);r.a<r.c.c.length;)for(i=BB(n0(r),10),nk(n.d),e=new oz(ZL(lbn(i).a.Kc(),new h));dAn(e);)XOn(n,i,BB(U5(e),17).d.i)}function cEn(n,t){var e,i;for(y7(n.b,t),i=new Wb(n.n);i.a<i.c.c.length;)if(-1!=E7((e=BB(n0(i),211)).c,t,0)){y7(e.c,t),Zjn(e),0==e.c.c.length&&y7(n.n,e);break}fHn(n)}function aEn(n,t){var i,r,c,a,u;for(u=n.f,c=0,a=0,r=new Wb(n.a);r.a<r.c.c.length;)Tvn(i=BB(n0(r),187),n.e,u),p9(i,t),a=e.Math.max(a,i.r),c=u+=i.d+n.c;n.d=a,n.b=c}function uEn(n){var t,e;return h3(e=wLn(n))?null:(yX(e),t=BB(emn(new oz(ZL(e.a.Kc(),new h))),79),PTn(BB(Wtn((!t.b&&(t.b=new hK(KOt,t,4,7)),t.b),0),82)))}function oEn(n){return n.o||(n.Lj()?n.o=new aW(n,n,null):n.rk()?n.o=new rR(n,null):1==DW(B7((IPn(),Z$t),n))?n.o=new g4(n):n.o=new cR(n,null)),n.o}function sEn(n,t,e,i){var r,c,a,u,o;e.mh(t)&&(r=(a=t)?BB(i,49).xh(a):null)&&(o=e.ah(t),(u=t.t)>1||-1==u?(c=BB(o,15),r.Wb(Xdn(n,c))):r.Wb(t_n(n,BB(o,56))))}function hEn(n,t,e,i){YE();var r=PWn;function c(){for(var n=0;n<r.length;n++)r[n]()}if(n)try{HNt(c)()}catch(a){n(t,a)}else HNt(c)()}function fEn(n){var t,e,i,r,c;for(i=new usn(new Pb(n.b).a);i.b;)t=BB((e=ten(i)).cd(),10),c=BB(BB(e.dd(),46).a,10),r=BB(BB(e.dd(),46).b,8),UR(kO(t.n),UR(B$(c.n),r))}function lEn(n){switch(BB(mMn(n.b,(HXn(),egt)),375).g){case 1:JT($V(wnn(new Rq(null,new w1(n.d,16)),new _r),new Fr),new Br);break;case 2:vRn(n);break;case 0:CCn(n)}}function bEn(n,t,e){OTn(e,"Straight Line Edge Routing",1),e.n&&t&&y0(e,o2(t),(Bsn(),uOt)),mHn(n,BB(ZAn(t,(wD(),Vkt)),33)),e.n&&t&&y0(e,o2(t),(Bsn(),uOt))}function wEn(){wEn=O,ZMt=new RC("V_TOP",0),JMt=new RC("V_CENTER",1),YMt=new RC("V_BOTTOM",2),VMt=new RC("H_LEFT",3),WMt=new RC("H_CENTER",4),QMt=new RC("H_RIGHT",5)}function dEn(n){var t;return 0!=(64&n.Db)?Cwn(n):((t=new fN(Cwn(n))).a+=" (abstract: ",yE(t,0!=(256&n.Bb)),t.a+=", interface: ",yE(t,0!=(512&n.Bb)),t.a+=")",t.a)}function gEn(n,t,e,i){var r,c,a;return mA(n.e)&&(a=LY(n,1,r=t.ak(),t.dd(),c=e.dd(),r.$j()?pBn(n,r,c,cL(r,99)&&0!=(BB(r,18).Bb&BQn)):-1,!0),i?i.Ei(a):i=a),i}function pEn(n){var t;null==n.c&&(t=GI(n.b)===GI(Ynt)?null:n.b,n.d=null==t?zWn:ez(t)?jN(EQ(t)):XI(t)?qVn:nE(tsn(t)),n.a=n.a+": "+(ez(t)?CR(EQ(t)):t+""),n.c="("+n.d+") "+n.a)}function vEn(n,t){this.e=n,QI(e0(t,-4294967296),0)?(this.d=1,this.a=Pun(Gk(ANt,1),hQn,25,15,[dG(t)])):(this.d=2,this.a=Pun(Gk(ANt,1),hQn,25,15,[dG(t),dG(kz(t,32))]))}function mEn(){function n(){try{return(new Map).entries().next().done}catch(n){return!1}}return typeof Map===xWn&&Map.prototype.entries&&n()?Map:bUn()}function yEn(n,t){var e,i,r;for(r=new M2(n.e,0),e=0;r.b<r.d.gc();){if((i=Gy((Px(r.b<r.d.gc()),MD(r.d.Xb(r.c=r.b++))))-t)>D3n)return e;i>-1e-6&&++e}return e}function kEn(n,t){var e;t!=n.b?(e=null,n.b&&(e=oJ(n.b,n,-4,e)),t&&(e=Npn(t,n,-4,e)),(e=Zhn(n,t,e))&&e.Fi()):0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,3,t,t))}function jEn(n,t){var e;t!=n.f?(e=null,n.f&&(e=oJ(n.f,n,-1,e)),t&&(e=Npn(t,n,-1,e)),(e=nfn(n,t,e))&&e.Fi()):0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,0,t,t))}function EEn(n){var t,e,i;if(null==n)return null;if((e=BB(n,15)).dc())return"";for(i=new Sk,t=e.Kc();t.Ob();)cO(i,(Uqn(),SD(t.Pb()))),i.a+=" ";return KO(i,i.a.length-1)}function TEn(n){var t,e,i;if(null==n)return null;if((e=BB(n,15)).dc())return"";for(i=new Sk,t=e.Kc();t.Ob();)cO(i,(Uqn(),SD(t.Pb()))),i.a+=" ";return KO(i,i.a.length-1)}function MEn(n,t,e){var i,r;return i=n.c[t.c.p][t.p],r=n.c[e.c.p][e.p],null!=i.a&&null!=r.a?Tz(i.a,r.a):null!=i.a?-1:null!=r.a?1:0}function SEn(n,t){var e,i,r;if(t)for(r=((e=new hz(t.a.length)).b-e.a)*e.c<0?(eS(),MNt):new XL(e);r.Ob();)i=x2(t,BB(r.Pb(),19).a),OV(new Bg(n).a,i)}function PEn(n,t){var e,i,r;if(t)for(r=((e=new hz(t.a.length)).b-e.a)*e.c<0?(eS(),MNt):new XL(e);r.Ob();)i=x2(t,BB(r.Pb(),19).a),IV(new $g(n).a,i)}function CEn(n){if(null!=n&&n.length>0&&33==fV(n,n.length-1))try{return null==YPn(fx(n,0,n.length-1)).e}catch(t){if(!cL(t=lun(t),32))throw Hp(t)}return!1}function IEn(n,t,e){var i,r,c;return i=t.ak(),c=t.dd(),r=i.$j()?LY(n,3,i,null,c,pBn(n,i,c,cL(i,99)&&0!=(BB(i,18).Bb&BQn)),!0):LY(n,1,i,i.zj(),c,-1,!0),e?e.Ei(r):e=r,e}function OEn(){var n,t,e;for(t=0,n=0;n<"X".length;n++){if(0==(e=QOn((b1(n,"X".length),"X".charCodeAt(n)))))throw Hp(new ak("Unknown Option: "+"X".substr(n)));t|=e}return t}function AEn(n,t,e){var i,r;switch(i=Wln(vW(t)),CZ(r=new CSn,t),e.g){case 1:qCn(r,Tln(hwn(i)));break;case 2:qCn(r,hwn(i))}return hon(r,(HXn(),tpt),MD(mMn(n,tpt))),r}function $En(n){var t,e;return t=BB(U5(new oz(ZL(fbn(n.a).a.Kc(),new h))),17),e=BB(U5(new oz(ZL(lbn(n.a).a.Kc(),new h))),17),qy(TD(mMn(t,(hWn(),Clt))))||qy(TD(mMn(e,Clt)))}function LEn(){LEn=O,Mst=new yP("ONE_SIDE",0),Pst=new yP("TWO_SIDES_CORNER",1),Cst=new yP("TWO_SIDES_OPPOSING",2),Sst=new yP("THREE_SIDES",3),Tst=new yP("FOUR_SIDES",4)}function NEn(n,t,e,i,r){var c,a;c=BB(P4(AV(t.Oc(),new Zr),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15),a=BB(gan(n.b,e,i),15),0==r?a.Wc(0,c):a.Gc(c)}function xEn(n,t){var e,i,r;for(i=new Wb(t.a);i.a<i.c.c.length;)for(e=new oz(ZL(fbn(BB(n0(i),10)).a.Kc(),new h));dAn(e);)r=BB(U5(e),17).c.i.p,n.n[r]=n.n[r]-1}function DEn(n,t){var e,i,r,c;for(r=new Wb(t.d);r.a<r.c.c.length;)for(i=BB(n0(r),101),c=BB(RX(n.c,i),112).o,e=new QT(i.b);e.a<e.c.a.length;)g9(i,BB(u4(e),61),c)}function REn(n){var t;for(t=new Wb(n.e.b);t.a<t.c.c.length;)hzn(n,BB(n0(t),29));JT(AV(wnn(wnn(new Rq(null,new w1(n.e.b,16)),new Xc),new Zc),new na),new hg(n))}function KEn(n,t){return!!t&&!n.Di(t)&&(n.i?n.i.Ei(t):cL(t,143)?(n.i=BB(t,143),!0):(n.i=new po,n.i.Ei(t)))}function _En(n){if(n=FBn(n,!0),mK(a5n,n)||mK("1",n))return hN(),vtt;if(mK(u5n,n)||mK("0",n))return hN(),ptt;throw Hp(new ik("Invalid boolean value: '"+n+"'"))}function FEn(n,t,e){var i,r,c;for(r=n.vc().Kc();r.Ob();)if(c=(i=BB(r.Pb(),42)).cd(),GI(t)===GI(c)||null!=t&&Nfn(t,c))return e&&(i=new PS(i.cd(),i.dd()),r.Qb()),i;return null}function BEn(n){var t,e,i;qD(),n.B.Hc((n_n(),qIt))&&(i=n.f.i,t=new gY(n.a.c),(e=new bm).b=t.c-i.c,e.d=t.d-i.d,e.c=i.c+i.b-(t.c+t.b),e.a=i.d+i.a-(t.d+t.a),n.e.Ff(e))}function HEn(n,t,i,r){var c,a,u;for(u=e.Math.min(i,WFn(BB(n.b,65),t,i,r)),a=new Wb(n.a);a.a<a.c.c.length;)(c=BB(n0(a),221))!=t&&(u=e.Math.min(u,HEn(c,t,u,r)));return u}function qEn(n){var t,e,i;for(i=x8(Out,sVn,193,n.b.c.length,0,2),e=new M2(n.b,0);e.b<e.d.gc();)Px(e.b<e.d.gc()),t=BB(e.d.Xb(e.c=e.b++),29),i[e.b-1]=n2(t.a);return i}function GEn(n,t,e,i,r){var c,a,u,o;for(a=nj(Zk(H_(tvn(e)),i),akn(n,e,r)),o=DSn(n,e).Kc();o.Ob();)t[(u=BB(o.Pb(),11)).p]&&(c=t[u.p].i,WB(a.d,new xG(c,kln(a,c))));Pwn(a)}function zEn(n,t){this.f=new xp,this.b=new xp,this.j=new xp,this.a=n,this.c=t,this.c>0&&_yn(this,this.c-1,(kUn(),oIt)),this.c<this.a.length-1&&_yn(this,this.c+1,(kUn(),CIt))}function UEn(n){n.length>0&&n[0].length>0&&(this.c=qy(TD(mMn(vW(n[0][0]),(hWn(),alt))))),this.a=x8(Pmt,sVn,2018,n.length,0,2),this.b=x8(Lmt,sVn,2019,n.length,0,2),this.d=new Thn}function XEn(n){return 0!=n.c.length&&((l1(0,n.c.length),BB(n.c[0],17)).c.i.k==(uSn(),Put)||o5($V(new Rq(null,new w1(n,16)),new Kc),new _c))}function WEn(n,t,e){return OTn(e,"Tree layout",1),h2(n.b),CU(n.b,(zyn(),Ryt),Ryt),CU(n.b,Kyt,Kyt),CU(n.b,_yt,_yt),CU(n.b,Fyt,Fyt),n.a=$qn(n.b,t),lxn(n,t,mcn(e,1)),HSn(e),t}function VEn(n,t){var i,r,c,a,u,o;for(u=wDn(t),c=t.f,o=t.g,a=e.Math.sqrt(c*c+o*o),r=0,i=new Wb(u);i.a<i.c.c.length;)r+=VEn(n,BB(n0(i),33));return e.Math.max(r,a)}function QEn(){QEn=O,YCt=new UC(hJn,0),QCt=new UC("FREE",1),VCt=new UC("FIXED_SIDE",2),UCt=new UC("FIXED_ORDER",3),WCt=new UC("FIXED_RATIO",4),XCt=new UC("FIXED_POS",5)}function YEn(n,t){var e,i,r;if(e=t.Hh(n.a))for(r=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),T7n)),i=1;i<(IPn(),nLt).length;++i)if(mK(nLt[i],r))return i;return 0}function JEn(n){var t,e,i,r;if(null==n)return zWn;for(r=new $an(FWn,"[","]"),e=0,i=(t=n).length;e<i;++e)b6(r,""+t[e]);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function ZEn(n){var t,e,i,r;if(null==n)return zWn;for(r=new $an(FWn,"[","]"),e=0,i=(t=n).length;e<i;++e)b6(r,""+t[e]);return r.a?0==r.e.length?r.a.a:r.a.a+""+r.e:r.c}function nTn(n){var t,e,i;for(i=new $an(FWn,"{","}"),e=n.vc().Kc();e.Ob();)b6(i,W3(n,(t=BB(e.Pb(),42)).cd())+"="+W3(n,t.dd()));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}function tTn(n){for(var t,e,i,r;!Wy(n.o);)e=BB(dU(n.o),46),i=BB(e.a,121),r=Nbn(t=BB(e.b,213),i),t.e==i?(RN(r.g,t),i.e=r.e+t.a):(RN(r.b,t),i.e=r.e-t.a),WB(n.e.a,i)}function eTn(n,t){var e,i,r;for(e=null,r=BB(t.Kb(n),20).Kc();r.Ob();)if(i=BB(r.Pb(),17),e){if((i.c.i==n?i.d.i:i.c.i)!=e)return!1}else e=i.c.i==n?i.d.i:i.c.i;return!0}function iTn(n,t){var e,i,r;for(i=new Wb(QLn(n,!1,t));i.a<i.c.c.length;)0==(e=BB(n0(i),129)).d?(WZ(e,null),VZ(e,null)):(r=e.a,WZ(e,e.b),VZ(e,r))}function rTn(n){var t,e;return Jcn(t=new B2,Cyt),(e=BB(mMn(n,(hWn(),Zft)),21)).Hc((bDn(),vft))&&Jcn(t,$yt),e.Hc(sft)&&Jcn(t,Iyt),e.Hc(gft)&&Jcn(t,Ayt),e.Hc(fft)&&Jcn(t,Oyt),t}function cTn(n){var t,e,i,r;for(Sqn(n),e=new oz(ZL(hbn(n).a.Kc(),new h));dAn(e);)r=(i=(t=BB(U5(e),17)).c.i==n)?t.d:t.c,i?MZ(t,null):SZ(t,null),hon(t,(hWn(),mlt),r),uAn(n,r.i)}function aTn(n,t,e,i){var r,c;switch(r=e[(c=t.i).g][n.d[c.g]],c.g){case 1:r-=i+t.j.b,t.g.b=r;break;case 3:r+=i,t.g.b=r;break;case 4:r-=i+t.j.a,t.g.a=r;break;case 2:r+=i,t.g.a=r}}function uTn(n){var t,e;for(e=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));e.e!=e.i.gc();)if(!dAn(new oz(ZL(wLn(t=BB(kpn(e),33)).a.Kc(),new h))))return t;return null}function oTn(){var n;return WOt?BB($$n((WM(),zAt),y6n),2016):(n=BB(cL(SJ((WM(),zAt),y6n),555)?SJ(zAt,y6n):new sAn,555),WOt=!0,_Gn(n),jWn(n),Tyn(n),mZ(zAt,y6n,n),n)}function sTn(n,t,e){var i,r;if(0==n.j)return e;if(r=BB(_en(n,t,e),72),!(i=e.ak()).Ij()||!n.a.rl(i))throw Hp(new dy("Invalid entry feature '"+i.Hj().zb+"."+i.ne()+"'"));return r}function hTn(n,t){var e,i,r,c,a,u,o;for(u=0,o=(a=n.a).length;u<o;++u)for(r=0,c=(i=a[u]).length;r<c;++r)if(e=i[r],GI(t)===GI(e)||null!=t&&Nfn(t,e))return!0;return!1}function fTn(n){var t,e,i;return Vhn(n,0)>=0?(e=Ojn(n,AQn),i=ldn(n,AQn)):(e=Ojn(t=jz(n,1),5e8),i=rbn(yz(i=ldn(t,5e8),1),e0(n,1))),i0(yz(i,32),e0(e,UQn))}function lTn(n,t,e){var i;switch(Px(0!=t.b),i=BB(Atn(t,t.a.a),8),e.g){case 0:i.b=0;break;case 2:i.b=n.f;break;case 3:i.a=0;break;default:i.a=n.g}return nX(spn(t,0),i),t}function bTn(n,t,e,i){var r,c,a,u,o;switch(o=n.b,u=zgn(a=(c=t.d).j,o.d[a.g],e),r=UR(B$(c.n),c.a),c.j.g){case 1:case 3:u.a+=r.a;break;case 2:case 4:u.b+=r.b}r5(i,u,i.c.b,i.c)}function wTn(n,t,e){var i,r,c,a;for(a=E7(n.e,t,0),(c=new rm).b=e,i=new M2(n.e,a);i.b<i.d.gc();)Px(i.b<i.d.gc()),(r=BB(i.d.Xb(i.c=i.b++),10)).p=e,WB(c.e,r),fW(i);return c}function dTn(n,t,e,i){var r,c,a,u,o;for(r=null,c=0,u=new Wb(t);u.a<u.c.c.length;)o=(a=BB(n0(u),33)).i+a.g,n<a.j+a.f+i&&(r?e.i-o<e.i-c&&(r=a):r=a,c=r.i+r.g);return r?c+i:0}function gTn(n,t,e,i){var r,c,a,u,o;for(c=null,r=0,u=new Wb(t);u.a<u.c.c.length;)o=(a=BB(n0(u),33)).j+a.f,n<a.i+a.g+i&&(c?e.j-o<e.j-r&&(c=a):c=a,r=c.j+c.f);return c?r+i:0}function pTn(n){var t,e,i;for(t=!1,i=n.b.c.length,e=0;e<i;e++)Yon(BB(xq(n.b,e),434))?!t&&e+1<i&&Yon(BB(xq(n.b,e+1),434))&&(t=!0,BB(xq(n.b,e),434).a=!0):t=!1}function vTn(n,t,e,i,r){var c,a;for(c=0,a=0;a<r;a++)c=rbn(c,ibn(e0(t[a],UQn),e0(i[a],UQn))),n[a]=dG(c),c=kz(c,32);for(;a<e;a++)c=rbn(c,e0(t[a],UQn)),n[a]=dG(c),c=kz(c,32)}function mTn(n,t){var e,i;for($On(),ODn(),i=Jtt,e=n;t>1;t>>=1)0!=(1&t)&&(i=Nnn(i,e)),e=1==e.d?Nnn(e,e):new Cgn(I_n(e.a,e.d,x8(ANt,hQn,25,e.d<<1,15,1)));return i=Nnn(i,e)}function yTn(){var n,t,e,i;for(yTn=O,Oet=x8(xNt,qQn,25,25,15,1),Aet=x8(xNt,qQn,25,33,15,1),i=152587890625e-16,t=32;t>=0;t--)Aet[t]=i,i*=.5;for(e=1,n=24;n>=0;n--)Oet[n]=e,e*=.5}function kTn(n){var t,e;if(qy(TD(ZAn(n,(HXn(),wgt)))))for(e=new oz(ZL(dLn(n).a.Kc(),new h));dAn(e);)if(QIn(t=BB(U5(e),79))&&qy(TD(ZAn(t,dgt))))return!0;return!1}function jTn(n,t){var e,i,r;TU(n.f,t)&&(t.b=n,i=t.c,-1!=E7(n.j,i,0)||WB(n.j,i),r=t.d,-1!=E7(n.j,r,0)||WB(n.j,r),0!=(e=t.a.b).c.length&&(!n.i&&(n.i=new epn(n)),van(n.i,e)))}function ETn(n){var t,e,i,r;return(e=(t=n.c.d).j)==(r=(i=n.d.d).j)?t.p<i.p?0:1:Mln(e)==r?0:Eln(e)==r?1:SN(n.b.b,Mln(e))?0:1}function TTn(){TTn=O,tvt=new RP(j3n,0),Zpt=new RP("LONGEST_PATH",1),Ypt=new RP("COFFMAN_GRAHAM",2),Jpt=new RP(B1n,3),evt=new RP("STRETCH_WIDTH",4),nvt=new RP("MIN_WIDTH",5)}function MTn(n){var t;this.d=new xp,this.c=n.c,this.e=n.d,this.b=n.b,this.f=new sG(n.e),this.a=n.a,n.f?this.g=n.f:this.g=new YK(t=BB(Vj(aAt),9),BB(SR(t,t.length),9),0)}function STn(n,t){var e,i,r,c;!(r=D2(i=n,"layoutOptions"))&&(r=D2(i,M6n)),r&&(e=null,(c=r)&&(e=new TT(c,jrn(c,x8(Qtt,sVn,2,0,6,1)))),e&&e5(e,new wI(c,t)))}function PTn(n){if(cL(n,239))return BB(n,33);if(cL(n,186))return WJ(BB(n,118));throw Hp(n?new tk("Only support nodes and ports."):new Hy(e8n))}function CTn(n,t,e,i){return t>=0&&mK(n.substr(t,"GMT".length),"GMT")||t>=0&&mK(n.substr(t,"UTC".length),"UTC")?(e[0]=t+3,y_n(n,e,i)):y_n(n,e,i)}function ITn(n,t){var e,i,r,c,a;for(c=n.g.a,a=n.g.b,i=new Wb(n.d);i.a<i.c.c.length;)(r=(e=BB(n0(i),70)).n).a=c,n.i==(kUn(),sIt)?r.b=a+n.j.b-e.o.b:r.b=a,UR(r,t),c+=e.o.a+n.e}function OTn(n,t,e){if(n.b)throw Hp(new Fy("The task is already done."));return null==n.p&&(n.p=t,n.r=e,n.k&&(n.o=($T(),cbn(fan(Date.now()),VVn))),!0)}function ATn(n){var t;return t=new py,null!=n.tg()&&AH(t,q6n,n.tg()),null!=n.ne()&&AH(t,t8n,n.ne()),null!=n.sg()&&AH(t,"description",n.sg()),t}function $Tn(n,t,e){var i,r,c;return c=n.q,n.q=t,0!=(4&n.Db)&&0==(1&n.Db)&&(r=new nU(n,1,9,c,t),e?e.Ei(r):e=r),t?(i=t.c)!=n.r&&(e=n.nk(i,e)):n.r&&(e=n.nk(null,e)),e}function LTn(n,t,e){var i,r;for(e=Npn(t,n.e,-1-n.c,e),r=new Mp(new usn(new Pb(xW(n.a).a).a));r.a.b;)e=azn(i=BB(ten(r.a).cd(),87),kLn(i,n.a),e);return e}function NTn(n,t,e){var i,r;for(e=oJ(t,n.e,-1-n.c,e),r=new Mp(new usn(new Pb(xW(n.a).a).a));r.a.b;)e=azn(i=BB(ten(r.a).cd(),87),kLn(i,n.a),e);return e}function xTn(n,t,e,i){var r,c,a;if(0==i)aHn(t,0,n,e,n.length-e);else for(a=32-i,n[n.length-1]=0,c=n.length-1;c>e;c--)n[c]|=t[c-e-1]>>>a,n[c-1]=t[c-e-1]<<i;for(r=0;r<e;r++)n[r]=0}function DTn(n){var t,i,r,c,a;for(t=0,i=0,a=n.Kc();a.Ob();)r=BB(a.Pb(),111),t=e.Math.max(t,r.d.b),i=e.Math.max(i,r.d.c);for(c=n.Kc();c.Ob();)(r=BB(c.Pb(),111)).d.b=t,r.d.c=i}function RTn(n){var t,i,r,c,a;for(i=0,t=0,a=n.Kc();a.Ob();)r=BB(a.Pb(),111),i=e.Math.max(i,r.d.d),t=e.Math.max(t,r.d.a);for(c=n.Kc();c.Ob();)(r=BB(c.Pb(),111)).d.d=i,r.d.a=t}function KTn(n,t){var e,i,r,c;for(c=new Np,r=0,i=t.Kc();i.Ob();){for(e=iln(BB(i.Pb(),19).a+r);e.a<n.f&&!tG(n,e.a);)e=iln(e.a+1),++r;if(e.a>=n.f)break;c.c[c.c.length]=e}return c}function _Tn(n){var t,e,i,r;for(t=null,r=new Wb(n.wf());r.a<r.c.c.length;)e=new UV((i=BB(n0(r),181)).qf().a,i.qf().b,i.rf().a,i.rf().b),t?CPn(t,e):t=e;return!t&&(t=new bA),t}function FTn(n,t,e,i){return 1==e?(!n.n&&(n.n=new eU(zOt,n,1,7)),Ywn(n.n,t,i)):BB(itn(BB(yan(n,16),26)||n.zh(),e),66).Nj().Qj(n,fgn(n),e-bX(n.zh()),t,i)}function BTn(n,t,e){var i,r,c,a,u;for(i=e.gc(),n.qi(n.i+i),(u=n.i-t)>0&&aHn(n.g,t,n.g,t+i,u),a=e.Kc(),n.i+=i,r=0;r<i;++r)c=a.Pb(),jL(n,t,n.oi(t,c)),n.bi(t,c),n.ci(),++t;return 0!=i}function HTn(n,t,e){var i;return t!=n.q?(n.q&&(e=oJ(n.q,n,-10,e)),t&&(e=Npn(t,n,-10,e)),e=$Tn(n,t,e)):0!=(4&n.Db)&&0==(1&n.Db)&&(i=new nU(n,1,9,t,t),e?e.Ei(i):e=i),e}function qTn(n,t,e,i){return C_(0==(e&hVn),"flatMap does not support SUBSIZED characteristic"),C_(0==(4&e),"flatMap does not support SORTED characteristic"),yX(n),yX(t),new q2(n,e,i,t)}function GTn(n,t){SU(t,"Cannot suppress a null exception."),vH(t!=n,"Exception can not suppress itself."),n.i||(null==n.k?n.k=Pun(Gk(Jnt,1),sVn,78,0,[t]):n.k[n.k.length]=t)}function zTn(n,t,e,i){var r,c,a,u,o,s;for(a=e.length,c=0,r=-1,s=atn(n.substr(t),(c_(),Tet)),u=0;u<a;++u)(o=e[u].length)>c&&sU(s,atn(e[u],Tet))&&(r=u,c=o);return r>=0&&(i[0]=t+c),r}function UTn(n,t){var e;if(0!=(e=YO(n.b.Hf(),t.b.Hf())))return e;switch(n.b.Hf().g){case 1:case 2:return E$(n.b.sf(),t.b.sf());case 3:case 4:return E$(t.b.sf(),n.b.sf())}return 0}function XTn(n){var t,e,i;for(i=n.e.c.length,n.a=kq(ANt,[sVn,hQn],[48,25],15,[i,i],2),e=new Wb(n.c);e.a<e.c.c.length;)t=BB(n0(e),282),n.a[t.c.b][t.d.b]+=BB(mMn(t,(fRn(),Zct)),19).a}function WTn(n,t,e){OTn(e,"Grow Tree",1),n.b=t.f,qy(TD(mMn(t,(Xcn(),Qrt))))?(n.c=new it,QZ(n,null)):n.c=new it,n.a=!1,FNn(n,t.f),hon(t,Yrt,(hN(),!!n.a)),HSn(e)}function VTn(n,t){var e,i,r,c,a;if(null==n)return null;for(a=x8(ONt,WVn,25,2*t,15,1),i=0,r=0;i<t;++i)e=n[i]>>4&15,c=15&n[i],a[r++]=OOt[e],a[r++]=OOt[c];return Bdn(a,0,a.length)}function QTn(n,t,e){var i,r,c;return i=t.ak(),c=t.dd(),r=i.$j()?LY(n,4,i,c,null,pBn(n,i,c,cL(i,99)&&0!=(BB(i,18).Bb&BQn)),!0):LY(n,i.Kj()?2:1,i,c,i.zj(),-1,!0),e?e.Ei(r):e=r,e}function YTn(n){var t,e;return n>=BQn?(t=HQn+(n-BQn>>10&1023)&QVn,e=56320+(n-BQn&1023)&QVn,String.fromCharCode(t)+""+String.fromCharCode(e)):String.fromCharCode(n&QVn)}function JTn(n,t){var e,i,r,c;return qD(),(r=BB(BB(h6(n.r,t),21),84)).gc()>=2&&(i=BB(r.Kc().Pb(),111),e=n.u.Hc((lIn(),tIt)),c=n.u.Hc(cIt),!i.a&&!e&&(2==r.gc()||c))}function ZTn(n,t,e,i,r){var c,a,u;for(c=eDn(n,t,e,i,r),u=!1;!c;)E$n(n,r,!0),u=!0,c=eDn(n,t,e,i,r);u&&E$n(n,r,!1),0!=(a=Dun(r)).c.length&&(n.d&&n.d.lg(a),ZTn(n,r,e,i,a))}function nMn(){nMn=O,aCt=new BC(QZn,0),rCt=new BC("DIRECTED",1),uCt=new BC("UNDIRECTED",2),eCt=new BC("ASSOCIATION",3),cCt=new BC("GENERALIZATION",4),iCt=new BC("DEPENDENCY",5)}function tMn(n,t){var e;if(!WJ(n))throw Hp(new Fy(F5n));switch(e=WJ(n),t.g){case 1:return-(n.j+n.f);case 2:return n.i-e.g;case 3:return n.j-e.f;case 4:return-(n.i+n.g)}return 0}function eMn(n,t){var e,i;for(kW(t),i=n.b.c.length,WB(n.b,t);i>0;){if(e=i,i=(i-1)/2|0,n.a.ue(xq(n.b,i),t)<=0)return c5(n.b,e,t),!0;c5(n.b,e,xq(n.b,i))}return c5(n.b,i,t),!0}function iMn(n,t,i,r){var c,a;if(c=0,i)c=mhn(n.a[i.g][t.g],r);else for(a=0;a<nrt;a++)c=e.Math.max(c,mhn(n.a[a][t.g],r));return t==(Dtn(),zit)&&n.b&&(c=e.Math.max(c,n.b.a)),c}function rMn(n,t){var e,i,r,c,a;return i=n.i,r=t.i,!(!i||!r)&&i.i==r.i&&i.i!=(kUn(),oIt)&&i.i!=(kUn(),CIt)&&(e=(c=i.g.a)+i.j.a,c<=(a=r.g.a)+r.j.a&&e>=a)}function cMn(n,t,e,i){var r;if(r=!1,XI(i)&&(r=!0,AH(t,e,SD(i))),r||zI(i)&&(r=!0,cMn(n,t,e,i)),r||cL(i,236)&&(r=!0,qQ(t,e,BB(i,236))),!r)throw Hp(new Ly(H6n))}function aMn(n,t){var e,i,r;if((e=t.Hh(n.a))&&null!=(r=cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),F9n)))for(i=1;i<(IPn(),Y$t).length;++i)if(mK(Y$t[i],r))return i;return 0}function uMn(n,t){var e,i,r;if((e=t.Hh(n.a))&&null!=(r=cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),F9n)))for(i=1;i<(IPn(),J$t).length;++i)if(mK(J$t[i],r))return i;return 0}function oMn(n,t){var e,i,r,c;if(kW(t),(c=n.a.gc())<t.gc())for(e=n.a.ec().Kc();e.Ob();)i=e.Pb(),t.Hc(i)&&e.Qb();else for(r=t.Kc();r.Ob();)i=r.Pb(),n.a.Bc(i);return c!=n.a.gc()}function sMn(n){var t,e;switch(e=B$(Aon(Pun(Gk(PMt,1),sVn,8,0,[n.i.n,n.n,n.a]))),t=n.i.d,n.j.g){case 1:e.b-=t.d;break;case 2:e.a+=t.c;break;case 3:e.b+=t.a;break;case 4:e.a-=t.b}return e}function hMn(n){var t;for(Irn(),t=BB(U5(new oz(ZL(fbn(n).a.Kc(),new h))),17).c.i;t.k==(uSn(),Put);)hon(t,(hWn(),olt),(hN(),!0)),t=BB(U5(new oz(ZL(fbn(t).a.Kc(),new h))),17).c.i}function fMn(n,t,e,i){var r,c,a;for(a=Lfn(t,i).Kc();a.Ob();)r=BB(a.Pb(),11),n.d[r.p]=n.d[r.p]+n.c[e.p];for(c=Lfn(e,i).Kc();c.Ob();)r=BB(c.Pb(),11),n.d[r.p]=n.d[r.p]-n.c[t.p]}function lMn(n,t,e){var i,r;for(r=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));r.e!=r.i.gc();)SA(i=BB(kpn(r),33),i.i+t,i.j+e);e5((!n.b&&(n.b=new eU(_Ot,n,12,3)),n.b),new tI(t,e))}function bMn(n,t,e,i){var r,c;for(r=null==(c=t).d||n.a.ue(e.d,c.d)>0?1:0;c.a[r]!=e;)c=c.a[r],r=n.a.ue(e.d,c.d)>0?1:0;c.a[r]=i,i.b=e.b,i.a[0]=e.a[0],i.a[1]=e.a[1],e.a[0]=null,e.a[1]=null}function wMn(n){return lIn(),!(Can(OJ(EG(eIt,Pun(Gk(IIt,1),$Vn,273,0,[rIt])),n))>1||Can(OJ(EG(tIt,Pun(Gk(IIt,1),$Vn,273,0,[nIt,cIt])),n))>1)}function dMn(n,t){cL(SJ((WM(),zAt),n),498)?mZ(zAt,n,new OI(this,t)):mZ(zAt,n,this),iSn(this,t),t==(iE(),n$t)?(this.wb=BB(this,1939),BB(t,1941)):this.wb=(QX(),t$t)}function gMn(n){var t,e;if(null==n)return null;for(t=null,e=0;e<IOt.length;++e)try{return BM(IOt[e],n)}catch(i){if(!cL(i=lun(i),32))throw Hp(i);t=i}throw Hp(new L7(t))}function pMn(){pMn=O,pet=Pun(Gk(Qtt,1),sVn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),vet=Pun(Gk(Qtt,1),sVn,2,6,["Jan","Feb","Mar","Apr",tQn,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])}function vMn(n){var t,e,i;(t=mK(typeof t,gYn)?null:new ln)&&(lM(),tW(e=(i=900)>=VVn?"error":i>=900?"warn":i>=800?"info":"log",n.a),n.b&&xNn(t,e,n.b,"Exception: ",!0))}function mMn(n,t){var e,i;return!n.q&&(n.q=new xp),null!=(i=RX(n.q,t))?i:(cL(e=t.wg(),4)&&(null==e?(!n.q&&(n.q=new xp),v6(n.q,t)):(!n.q&&(n.q=new xp),VW(n.q,t,e))),e)}function yMn(){yMn=O,Rat=new VS("P1_CYCLE_BREAKING",0),Kat=new VS("P2_LAYERING",1),_at=new VS("P3_NODE_ORDERING",2),Fat=new VS("P4_NODE_PLACEMENT",3),Bat=new VS("P5_EDGE_ROUTING",4)}function kMn(n,t){var e,i,r,c;for(i=(1==t?Wat:Xat).a.ec().Kc();i.Ob();)for(e=BB(i.Pb(),103),c=BB(h6(n.f.c,e),21).Kc();c.Ob();)r=BB(c.Pb(),46),y7(n.b.b,r.b),y7(n.b.a,BB(r.b,81).d)}function jMn(n,t){var e;if(Dnn(),n.c==t.c){if(n.b==t.b||hcn(n.b,t.b)){if(e=ZO(n.b)?1:-1,n.a&&!t.a)return e;if(!n.a&&t.a)return-e}return E$(n.b.g,t.b.g)}return Pln(n.c,t.c)}function EMn(n,t){var e;OTn(t,"Hierarchical port position processing",1),(e=n.b).c.length>0&&i_n((l1(0,e.c.length),BB(e.c[0],29)),n),e.c.length>1&&i_n(BB(xq(e,e.c.length-1),29),n),HSn(t)}function TMn(n,t){var e,i;if(NMn(n,t))return!0;for(i=new Wb(t);i.a<i.c.c.length;){if(_Dn(n,e=BB(n0(i),33),uEn(e)))return!0;if($hn(n,e)-n.g<=n.a)return!0}return!1}function MMn(){MMn=O,bRn(),kTt=RTt,vTt=LTt,pTt=ATt,dTt=PTt,gTt=ITt,wTt=new WA(8),bTt=new XA((sWn(),XSt),wTt),mTt=new XA(LPt,8),yTt=xTt,hTt=jTt,fTt=TTt,lTt=new XA(lSt,(hN(),!1))}function SMn(){SMn=O,zMt=new WA(15),GMt=new XA((sWn(),XSt),zMt),XMt=new XA(LPt,15),UMt=new XA(pPt,iln(0)),_Mt=jSt,BMt=KSt,qMt=qSt,DMt=new XA(cSt,f5n),FMt=CSt,HMt=BSt,RMt=uSt,KMt=hSt}function PMn(n){if(1!=(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i)throw Hp(new _y(r8n));return PTn(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82))}function CMn(n){if(1!=(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i)throw Hp(new _y(r8n));return bun(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82))}function IMn(n){if(1!=(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i)throw Hp(new _y(r8n));return bun(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82))}function OMn(n){if(1!=(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i||1!=(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i)throw Hp(new _y(r8n));return PTn(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82))}function AMn(n,t,e){var i,r,c;if(++n.j,t>=(r=n.Vi())||t<0)throw Hp(new Ay(u8n+t+o8n+r));if(e>=r||e<0)throw Hp(new Ay(s8n+e+o8n+r));return t!=e?(c=n.Ti(e),n.Hi(t,c),i=c):i=n.Oi(e),i}function $Mn(n){var t,e,i;if(i=n,n)for(t=0,e=n.Ug();e;e=e.Ug()){if(++t>GQn)return $Mn(e);if(i=e,e==n)throw Hp(new Fy("There is a cycle in the containment hierarchy of "+n))}return i}function LMn(n){var t,e,i;for(i=new $an(FWn,"[","]"),e=n.Kc();e.Ob();)b6(i,GI(t=e.Pb())===GI(n)?"(this Collection)":null==t?zWn:Bbn(t));return i.a?0==i.e.length?i.a.a:i.a.a+""+i.e:i.c}function NMn(n,t){var e,i;if(i=!1,t.gc()<2)return!1;for(e=0;e<t.gc();e++)e<t.gc()-1?i|=_Dn(n,BB(t.Xb(e),33),BB(t.Xb(e+1),33)):i|=_Dn(n,BB(t.Xb(e),33),BB(t.Xb(0),33));return i}function xMn(n,t){var e;t!=n.a?(e=null,n.a&&(e=BB(n.a,49).ih(n,4,GOt,e)),t&&(e=BB(t,49).gh(n,4,GOt,e)),(e=Jhn(n,t,e))&&e.Fi()):0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,1,t,t))}function DMn(n,t){var e;t!=n.e?(n.e&&_6(xW(n.e),n),t&&(!t.b&&(t.b=new Tp(new xm)),YR(t.b,n)),(e=Qkn(n,t,null))&&e.Fi()):0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,4,t,t))}function RMn(n){var t,e,i;for(e=n.length,i=0;i<e&&(b1(i,n.length),n.charCodeAt(i)<=32);)++i;for(t=e;t>i&&(b1(t-1,n.length),n.charCodeAt(t-1)<=32);)--t;return i>0||t<e?n.substr(i,t-i):n}function KMn(n,t){var i;i=t.o,dA(n.f)?(n.j.a=e.Math.max(n.j.a,i.a),n.j.b+=i.b,n.d.c.length>1&&(n.j.b+=n.e)):(n.j.a+=i.a,n.j.b=e.Math.max(n.j.b,i.b),n.d.c.length>1&&(n.j.a+=n.e))}function _Mn(){_Mn=O,$st=Pun(Gk(FIt,1),YZn,61,0,[(kUn(),sIt),oIt,SIt]),Ast=Pun(Gk(FIt,1),YZn,61,0,[oIt,SIt,CIt]),Lst=Pun(Gk(FIt,1),YZn,61,0,[SIt,CIt,sIt]),Nst=Pun(Gk(FIt,1),YZn,61,0,[CIt,sIt,oIt])}function FMn(n,t,e,i){var r,c,a,u,o;if(c=n.c.d,a=n.d.d,c.j!=a.j)for(o=n.b,r=c.j,u=null;r!=a.j;)u=0==t?Mln(r):Eln(r),DH(i,UR(zgn(r,o.d[r.g],e),zgn(u,o.d[u.g],e))),r=u}function BMn(n,t,e,i){var r,c,a,u,o;return u=BB((a=qyn(n.a,t,e)).a,19).a,c=BB(a.b,19).a,i&&(o=BB(mMn(t,(hWn(),Elt)),10),r=BB(mMn(e,Elt),10),o&&r&&(t4(n.b,o,r),u+=n.b.i,c+=n.b.e)),u>c}function HMn(n){var t,e,i,r,c,a,u,o;for(this.a=rvn(n),this.b=new Np,i=0,r=(e=n).length;i<r;++i)for(t=e[i],c=new Np,WB(this.b,c),u=0,o=(a=t).length;u<o;++u)WB(c,new t_(a[u].j))}function qMn(n,t,e){var i,r,c;return c=0,i=e[t],t<e.length-1&&(r=e[t+1],n.b[t]?(c=bWn(n.d,i,r),c+=ZX(n.a,i,(kUn(),oIt)),c+=ZX(n.a,r,CIt)):c=I9(n.a,i,r)),n.c[t]&&(c+=L6(n.a,i)),c}function GMn(n,t,e,i,r){var c,a,u,o;for(o=null,u=new Wb(i);u.a<u.c.c.length;)if((a=BB(n0(u),441))!=e&&-1!=E7(a.e,r,0)){o=a;break}SZ(c=W5(r),e.b),MZ(c,o.b),JIn(n.a,r,new L_(c,t,e.f))}function zMn(n){for(;0!=n.g.c&&0!=n.d.c;)FD(n.g).c>FD(n.d).c?(n.i+=n.g.c,gdn(n.d)):FD(n.d).c>FD(n.g).c?(n.e+=n.d.c,gdn(n.g)):(n.i+=qq(n.g),n.e+=qq(n.d),gdn(n.g),gdn(n.d))}function UMn(n,t,e){var i,r,c,a;for(c=t.q,a=t.r,new zZ((O6(),Tyt),t,c,1),new zZ(Tyt,c,a,1),r=new Wb(e);r.a<r.c.c.length;)(i=BB(n0(r),112))!=c&&i!=t&&i!=a&&(gHn(n.a,i,t),gHn(n.a,i,a))}function XMn(n,t,i,r){n.a.d=e.Math.min(t,i),n.a.a=e.Math.max(t,r)-n.a.d,t<i?(n.b=.5*(t+i),n.g=K3n*n.b+.9*t,n.f=K3n*n.b+.9*i):(n.b=.5*(t+r),n.g=K3n*n.b+.9*r,n.f=K3n*n.b+.9*t)}function WMn(){function n(){return(new Date).getTime()}SWn={},!Array.isArray&&(Array.isArray=function(n){return"[object Array]"===Object.prototype.toString.call(n)}),!Date.now&&(Date.now=n)}function VMn(n,t){var e,i;i=BB(mMn(t,(HXn(),ept)),98),hon(t,(hWn(),ylt),i),(e=t.e)&&(JT(new Rq(null,new w1(e.a,16)),new Rw(n)),JT(wnn(new Rq(null,new w1(e.b,16)),new mt),new Kw(n)))}function QMn(n){var t,i,r,c;if(gA(BB(mMn(n.b,(HXn(),Udt)),103)))return 0;for(t=0,r=new Wb(n.a);r.a<r.c.c.length;)(i=BB(n0(r),10)).k==(uSn(),Cut)&&(c=i.o.a,t=e.Math.max(t,c));return t}function YMn(n){switch(BB(mMn(n,(HXn(),kgt)),163).g){case 1:hon(n,kgt,(Tbn(),Blt));break;case 2:hon(n,kgt,(Tbn(),Hlt));break;case 3:hon(n,kgt,(Tbn(),_lt));break;case 4:hon(n,kgt,(Tbn(),Flt))}}function JMn(){JMn=O,cft=new $P(QZn,0),eft=new $P(cJn,1),aft=new $P(aJn,2),rft=new $P("LEFT_RIGHT_CONSTRAINT_LOCKING",3),ift=new $P("LEFT_RIGHT_CONNECTION_LOCKING",4),tft=new $P(q1n,5)}function ZMn(n,t,i){var r,c,a,u,o,s,h;o=i.a/2,a=i.b/2,s=1,h=1,(r=e.Math.abs(t.a-n.a))>o&&(s=o/r),(c=e.Math.abs(t.b-n.b))>a&&(h=a/c),u=e.Math.min(s,h),n.a+=u*(t.a-n.a),n.b+=u*(t.b-n.b)}function nSn(n,t,e,i,r){var c,a;for(a=!1,c=BB(xq(e.b,0),33);hBn(n,t,c,i,r)&&(a=!0,cEn(e,c),0!=e.b.c.length);)c=BB(xq(e.b,0),33);return 0==e.b.c.length&&Tkn(e.j,e),a&&Gmn(t.q),a}function tSn(n,t){var e,i,r,c;if(jDn(),t.b<2)return!1;for(i=e=BB(b3(c=spn(t,0)),8);c.b!=c.d.c;){if(cNn(n,i,r=BB(b3(c),8)))return!0;i=r}return!!cNn(n,i,e)}function eSn(n,t,e,i){return 0==e?(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),BK(n.o,t,i)):BB(itn(BB(yan(n,16),26)||n.zh(),e),66).Nj().Rj(n,fgn(n),e-bX(n.zh()),t,i)}function iSn(n,t){var e;t!=n.sb?(e=null,n.sb&&(e=BB(n.sb,49).ih(n,1,HOt,e)),t&&(e=BB(t,49).gh(n,1,HOt,e)),(e=jfn(n,t,e))&&e.Fi()):0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,4,t,t))}function rSn(n,t){var e,i;if(!t)throw Hp(new ek("All edge sections need an end point."));e=Ren(t,"x"),Ten(new Kg(n).a,(kW(e),e)),i=Ren(t,"y"),Oen(new _g(n).a,(kW(i),i))}function cSn(n,t){var e,i;if(!t)throw Hp(new ek("All edge sections need a start point."));e=Ren(t,"x"),Ien(new xg(n).a,(kW(e),e)),i=Ren(t,"y"),Aen(new Dg(n).a,(kW(i),i))}function aSn(n,t){var e,i,r,c,a;for(i=0,c=psn(n).length;i<c;++i)vMn(t);for(a=!Qet&&n.e?Qet?null:n.d:null;a;){for(e=0,r=psn(a).length;e<r;++e)vMn(t);a=!Qet&&a.e?Qet?null:a.d:null}}function uSn(){uSn=O,Cut=new JS("NORMAL",0),Put=new JS("LONG_EDGE",1),Mut=new JS("EXTERNAL_PORT",2),Iut=new JS("NORTH_SOUTH_PORT",3),Sut=new JS("LABEL",4),Tut=new JS("BREAKING_POINT",5)}function oSn(n){var t,e,i,r;if(t=!1,Lx(n,(hWn(),zft)))for(e=BB(mMn(n,zft),83),r=new Wb(n.j);r.a<r.c.c.length;)J$n(i=BB(n0(r),11))&&(t||(iIn(vW(n)),t=!0),fpn(BB(e.xc(i),306)))}function sSn(n,t,e){var i;OTn(e,"Self-Loop routing",1),i=Vln(t),iO(mMn(t,(C6(),TMt))),JT($V(AV(AV(wnn(new Rq(null,new w1(t.b,16)),new zi),new Ui),new Xi),new Wi),new eP(n,i)),HSn(e)}function hSn(n){var t,e,i;return i=ATn(n),null!=n.e&&AH(i,n8n,n.e),!!n.k&&AH(i,"type",dx(n.k)),!WE(n.j)&&(e=new Cl,rtn(i,N6n,e),t=new cp(e),e5(n.j,t)),i}function fSn(n){var t,e,i,r;for(r=xX((lin(n.gc(),"size"),new Ik),123),i=!0,e=lz(n).Kc();e.Ob();)t=BB(e.Pb(),42),i||(r.a+=FWn),i=!1,uO(xX(uO(r,t.cd()),61),t.dd());return(r.a+="}",r).a}function lSn(n,t){var e,i,r;return(t&=63)<22?(e=n.l<<t,i=n.m<<t|n.l>>22-t,r=n.h<<t|n.m>>22-t):t<44?(e=0,i=n.l<<t-22,r=n.m<<t-22|n.l>>44-t):(e=0,i=0,r=n.l<<t-44),M$(e&SQn,i&SQn,r&PQn)}function bSn(n){if(null==ytt&&(ytt=new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$")),!ytt.test(n))throw Hp(new Mk(DQn+n+'"'));return parseFloat(n)}function wSn(n){var t,e,i,r;for(t=new Np,vU(e=x8($Nt,ZYn,25,n.a.c.length,16,1),e.length),r=new Wb(n.a);r.a<r.c.c.length;)e[(i=BB(n0(r),121)).d]||(t.c[t.c.length]=i,Ggn(n,i,e));return t}function dSn(n,t){var e,i,r,c;for(c=t.b.j,n.a=x8(ANt,hQn,25,c.c.length,15,1),r=0,i=0;i<c.c.length;i++)l1(i,c.c.length),0==(e=BB(c.c[i],11)).e.c.length&&0==e.g.c.length?r+=1:r+=3,n.a[i]=r}function gSn(){gSn=O,Dht=new IP("ALWAYS_UP",0),xht=new IP("ALWAYS_DOWN",1),Kht=new IP("DIRECTION_UP",2),Rht=new IP("DIRECTION_DOWN",3),Fht=new IP("SMART_UP",4),_ht=new IP("SMART_DOWN",5)}function pSn(n,t){if(n<0||t<0)throw Hp(new _y("k and n must be positive"));if(t>n)throw Hp(new _y("k must be smaller than n"));return 0==t||t==n?1:0==n?0:Mjn(n)/(Mjn(t)*Mjn(n-t))}function vSn(n,t){var e,i,r,c;for(e=new OA(n);null!=e.g||e.c?null==e.g||0!=e.i&&BB(e.g[e.i-1],47).Ob():tZ(e);)if(cL(c=BB(aLn(e),56),160))for(i=BB(c,160),r=0;r<t.length;r++)t[r].og(i)}function mSn(n){var t;return 0!=(64&n.Db)?Yln(n):((t=new fN(Yln(n))).a+=" (height: ",vE(t,n.f),t.a+=", width: ",vE(t,n.g),t.a+=", x: ",vE(t,n.i),t.a+=", y: ",vE(t,n.j),t.a+=")",t.a)}function ySn(n){var t,e,i,r,c,a;for(t=new v4,r=0,c=(i=n).length;r<c;++r)if(null!=Jgn(t,a=yX((e=i[r]).cd()),yX(e.dd())))throw Hp(new _y("duplicate key: "+a));this.b=(SQ(),new Xb(t))}function kSn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],b6(c,String.fromCharCode(t));return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function jSn(){jSn=O,Knn(),Ict=new $O(oZn,Oct=Rct),iln(1),Cct=new $O(sZn,iln(300)),iln(0),Lct=new $O(hZn,iln(0)),new $p,Nct=new $O(fZn,lZn),new $p,Act=new $O(bZn,5),xct=Rct,$ct=Dct}function ESn(n,t){var e,i,r,c;for(i=(1==t?Wat:Xat).a.ec().Kc();i.Ob();)for(e=BB(i.Pb(),103),c=BB(h6(n.f.c,e),21).Kc();c.Ob();)r=BB(c.Pb(),46),WB(n.b.b,BB(r.b,81)),WB(n.b.a,BB(r.b,81).d)}function TSn(n,t){var e;if(null!=t&&!n.c.Yj().wj(t))throw e=cL(t,56)?BB(t,56).Tg().zb:nE(tsn(t)),Hp(new Ky(r6n+n.c.ne()+"'s type '"+n.c.Yj().ne()+"' does not permit a value of type '"+e+"'"))}function MSn(n,t,e){var i,r;for(r=new M2(n.b,0);r.b<r.d.gc();)Px(r.b<r.d.gc()),GI(mMn(i=BB(r.d.Xb(r.c=r.b++),70),(hWn(),vlt)))===GI(t)&&(OPn(i.n,vW(n.c.i),e),fW(r),WB(t.b,i))}function SSn(n,t){if(t.a)switch(BB(mMn(t.b,(hWn(),ylt)),98).g){case 0:case 1:lEn(t);case 2:JT(new Rq(null,new w1(t.d,16)),new Li),oAn(n.a,t)}else JT(new Rq(null,new w1(t.d,16)),new Li)}function PSn(n){var t,i;return i=e.Math.sqrt((null==n.k&&(n.k=Wrn(n,new Ec)),Gy(n.k)/(n.b*(null==n.g&&(n.g=Xrn(n,new jc)),Gy(n.g))))),t=dG(fan(e.Math.round(i))),t=e.Math.min(t,n.f)}function CSn(){gcn(),LR.call(this),this.j=(kUn(),PIt),this.a=new Gj,new fm,this.f=(lin(2,AVn),new J6(2)),this.e=(lin(4,AVn),new J6(4)),this.g=(lin(4,AVn),new J6(4)),this.b=new hP(this.e,this.g)}function ISn(n,t){var e;return!qy(TD(mMn(t,(hWn(),Clt))))&&(e=t.c.i,(n!=(Tbn(),_lt)||e.k!=(uSn(),Sut))&&BB(mMn(e,(HXn(),kgt)),163)!=Flt)}function OSn(n,t){var e;return!qy(TD(mMn(t,(hWn(),Clt))))&&(e=t.d.i,(n!=(Tbn(),Blt)||e.k!=(uSn(),Sut))&&BB(mMn(e,(HXn(),kgt)),163)!=Hlt)}function ASn(n,t){var e,i,r,c,a,u,o;for(a=n.d,o=n.o,u=new UV(-a.b,-a.d,a.b+o.a+a.c,a.d+o.b+a.a),r=0,c=(i=t).length;r<c;++r)(e=i[r])&&CPn(u,e.i);a.b=-u.c,a.d=-u.d,a.c=u.b-a.b-o.a,a.a=u.a-a.d-o.b}function $Sn(){$Sn=O,iTt=new MC("CENTER_DISTANCE",0),rTt=new MC("CIRCLE_UNDERLAP",1),uTt=new MC("RECTANGLE_UNDERLAP",2),cTt=new MC("INVERTED_OVERLAP",3),aTt=new MC("MINIMUM_ROOT_DISTANCE",4)}function LSn(n){var t,e,i,r;if(KDn(),null==n)return null;for(i=n.length,t=x8(ONt,WVn,25,2*i,15,1),e=0;e<i;e++)(r=n[e])<0&&(r+=256),t[2*e]=YLt[r>>4],t[2*e+1]=YLt[15&r];return Bdn(t,0,t.length)}function NSn(n){var t;switch(nV(),n.c.length){case 0:return Bnt;case 1:return IH((t=BB(JCn(new Wb(n)),42)).cd(),t.dd());default:return new hy(BB(Qgn(n,x8(Hnt,kVn,42,n.c.length,0,1)),165))}}function xSn(n){var t,e,i,r,c;for(t=new Lp,e=new Lp,d3(t,n),d3(e,n);e.b!=e.c;)for(c=new Wb(BB(dU(e),37).a);c.a<c.c.c.length;)(r=BB(n0(c),10)).e&&(d3(t,i=r.e),d3(e,i));return t}function DSn(n,t){switch(t.g){case 1:return KB(n.j,(gcn(),xut));case 2:return KB(n.j,(gcn(),Lut));case 3:return KB(n.j,(gcn(),Rut));case 4:return KB(n.j,(gcn(),Kut));default:return SQ(),SQ(),set}}function RSn(n,t){var e,i,r;e=sH(t,n.e),i=BB(RX(n.g.f,e),19).a,r=n.a.c.length-1,0!=n.a.c.length&&BB(xq(n.a,r),287).c==i?(++BB(xq(n.a,r),287).a,++BB(xq(n.a,r),287).b):WB(n.a,new Gx(i))}function KSn(n,t,e){var i,r;return 0!=(i=SRn(n,t,e))?i:Lx(t,(hWn(),wlt))&&Lx(e,wlt)?((r=E$(BB(mMn(t,wlt),19).a,BB(mMn(e,wlt),19).a))<0?uKn(n,t,e):r>0&&uKn(n,e,t),r):IOn(n,t,e)}function _Sn(n,t,e){var i,r,c,a;if(0!=t.b){for(i=new YT,a=spn(t,0);a.b!=a.d.c;)Frn(i,xun(c=BB(b3(a),86))),(r=c.e).a=BB(mMn(c,(qqn(),gkt)),19).a,r.b=BB(mMn(c,pkt),19).a;_Sn(n,i,mcn(e,i.b/n.a|0))}}function FSn(n,t){var e,i,r,c,a;if(n.e<=t)return n.g;if(z1(n,n.g,t))return n.g;for(c=n.r,i=n.g,a=n.r,r=(c-i)/2+i;i+1<c;)(e=cHn(n,r,!1)).b<=r&&e.a<=t?(a=r,c=r):i=r,r=(c-i)/2+i;return a}function BSn(n,t,e){OTn(e,"Recursive Graph Layout",hDn(n,t,!0)),vSn(t,Pun(Gk(nMt,1),HWn,527,0,[new $f])),P8(t,(sWn(),mPt))||vSn(t,Pun(Gk(nMt,1),HWn,527,0,[new gu])),lXn(n,t,null,e),HSn(e)}function HSn(n){var t;if(null==n.p)throw Hp(new Fy("The task has not begun yet."));n.b||(n.k&&($T(),t=cbn(fan(Date.now()),VVn),n.q=1e-9*j2(ibn(t,n.o))),n.c<n.r&&qin(n,n.r-n.c),n.b=!0)}function qSn(n){var t,e,i;for(DH(i=new km,new xC(n.j,n.k)),e=new AL((!n.a&&(n.a=new $L(xOt,n,5)),n.a));e.e!=e.i.gc();)DH(i,new xC((t=BB(kpn(e),469)).a,t.b));return DH(i,new xC(n.b,n.c)),i}function GSn(n,t,e,i,r){var c,a,u,o;if(r)for(o=((c=new hz(r.a.length)).b-c.a)*c.c<0?(eS(),MNt):new XL(c);o.Ob();)u=x2(r,BB(o.Pb(),19).a),D_n((a=new hQ(n,t,e,i)).a,a.b,a.c,a.d,u)}function zSn(n,t){var e;if(GI(n)===GI(t))return!0;if(cL(t,21)){e=BB(t,21);try{return n.gc()==e.gc()&&n.Ic(e)}catch(i){if(cL(i=lun(i),173)||cL(i,205))return!1;throw Hp(i)}}return!1}function USn(n,t){var i;WB(n.d,t),i=t.rf(),n.c?(n.e.a=e.Math.max(n.e.a,i.a),n.e.b+=i.b,n.d.c.length>1&&(n.e.b+=n.a)):(n.e.a+=i.a,n.e.b=e.Math.max(n.e.b,i.b),n.d.c.length>1&&(n.e.a+=n.a))}function XSn(n){var t,e,i,r;switch(t=(r=n.i).b,i=r.j,e=r.g,r.a.g){case 0:e.a=(n.g.b.o.a-i.a)/2;break;case 1:e.a=t.d.n.a+t.d.a.a;break;case 2:e.a=t.d.n.a+t.d.a.a-i.a;break;case 3:e.b=t.d.n.b+t.d.a.b}}function WSn(n,t,e,i,r){if(i<t||r<e)throw Hp(new _y("The highx must be bigger then lowx and the highy must be bigger then lowy"));return n.a<t?n.a=t:n.a>i&&(n.a=i),n.b<e?n.b=e:n.b>r&&(n.b=r),n}function VSn(n){if(cL(n,149))return MNn(BB(n,149));if(cL(n,229))return Zbn(BB(n,229));if(cL(n,23))return hSn(BB(n,23));throw Hp(new _y(z6n+LMn(new Jy(Pun(Gk(Ant,1),HWn,1,5,[n])))))}function QSn(n,t,e,i,r){var c,a,u;for(c=!0,a=0;a<i;a++)c&=0==e[a];if(0==r)aHn(e,i,n,0,t),a=t;else{for(u=32-r,c&=e[a]<<u==0,a=0;a<t-1;a++)n[a]=e[a+i]>>>r|e[a+i+1]<<u;n[a]=e[a+i]>>>r,++a}return c}function YSn(n,t,e,i){var r,c;if(t.k==(uSn(),Put))for(c=new oz(ZL(fbn(t).a.Kc(),new h));dAn(c);)if((r=BB(U5(c),17)).c.i.k==Put&&n.c.a[r.c.i.c.p]==i&&n.c.a[t.c.p]==e)return!0;return!1}function JSn(n,t){var e,i,r,c;return t&=63,e=n.h&PQn,t<22?(c=e>>>t,r=n.m>>t|e<<22-t,i=n.l>>t|n.m<<22-t):t<44?(c=0,r=e>>>t-22,i=n.m>>t-22|n.h<<44-t):(c=0,r=0,i=e>>>t-44),M$(i&SQn,r&SQn,c&PQn)}function ZSn(n,t,e,i){var r;this.b=i,this.e=n==(oin(),Amt),r=t[e],this.d=kq($Nt,[sVn,ZYn],[177,25],16,[r.length,r.length],2),this.a=kq(ANt,[sVn,hQn],[48,25],15,[r.length,r.length],2),this.c=new zEn(t,e)}function nPn(n){var t,e,i;for(n.k=new o1((kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length,n.j.c.length),i=new Wb(n.j);i.a<i.c.c.length;)t=(e=BB(n0(i),113)).d.j,JIn(n.k,t,e);n.e=iNn(gz(n.k))}function tPn(n,t){var e,i,r;TU(n.d,t),e=new ka,VW(n.c,t,e),e.f=Phn(t.c),e.a=Phn(t.d),e.d=(gxn(),(r=t.c.i.k)==(uSn(),Cut)||r==Tut),e.e=(i=t.d.i.k)==Cut||i==Tut,e.b=t.c.j==(kUn(),CIt),e.c=t.d.j==oIt}function ePn(n){var t,e,i,r,c;for(c=DWn,r=DWn,i=new Wb(kbn(n));i.a<i.c.c.length;)t=(e=BB(n0(i),213)).e.e-e.d.e,e.e==n&&t<r?r=t:t<c&&(c=t);return r==DWn&&(r=-1),c==DWn&&(c=-1),new rI(iln(r),iln(c))}function iPn(n,t){var i,r,c;return c=ZJn,qpn(),r=Zrt,c=e.Math.abs(n.b),(i=e.Math.abs(t.f-n.b))<c&&(c=i,r=nct),(i=e.Math.abs(n.a))<c&&(c=i,r=tct),(i=e.Math.abs(t.g-n.a))<c&&(c=i,r=Jrt),r}function rPn(n,t){var e,i,r;for(e=t.a.o.a,r=new Sb(new s1(vW(t.a).b,t.c,t.f+1));r.b<r.d.gc();)if(Px(r.b<r.d.gc()),(i=BB(r.d.Xb(r.c=r.b++),29)).c.a>=e)return hPn(n,t,i.p),!0;return!1}function cPn(n){var t;return 0!=(64&n.Db)?mSn(n):(t=new lN(Z5n),!n.a||oO(oO((t.a+=' "',t),n.a),'"'),oO(kE(oO(kE(oO(kE(oO(kE((t.a+=" (",t),n.i),","),n.j)," | "),n.g),","),n.f),")"),t.a)}function aPn(n,t,e){var i,r,c,a,u;for(u=axn(n.e.Tg(),t),r=BB(n.g,119),i=0,a=0;a<n.i;++a)if(c=r[a],u.rl(c.ak())){if(i==e)return fDn(n,a),ZM(),BB(t,66).Oj()?c:c.dd();++i}throw Hp(new Ay(e9n+e+o8n+i))}function uPn(n){var t,e,i;if(2==(t=n.c)||7==t||1==t)return wWn(),wWn(),sNt;for(i=OXn(n),e=null;2!=(t=n.c)&&7!=t&&1!=t;)e||(wWn(),wWn(),tqn(e=new r$(1),i),i=e),tqn(e,OXn(n));return i}function oPn(n,t,e){return n<0||n>e?dCn(n,e,"start index"):t<0||t>e?dCn(t,e,"end index"):$Rn("end index (%s) must not be less than start index (%s)",Pun(Gk(Ant,1),HWn,1,5,[iln(t),iln(n)]))}function sPn(n,t){var e,i,r,c;for(i=0,r=n.length;i<r;i++){c=n[i];try{c[1]?c[0].jm()&&(t=TG(t,c)):c[0].jm()}catch(a){if(!cL(a=lun(a),78))throw Hp(a);e=a,Dk(),yY(cL(e,477)?BB(e,477).ae():e)}}return t}function hPn(n,t,i){var r,c;for(i!=t.c+t.b.gc()&&wHn(t.a,ian(t,i-t.c)),c=t.a.c.p,n.a[c]=e.Math.max(n.a[c],t.a.o.a),r=BB(mMn(t.a,(hWn(),Plt)),15).Kc();r.Ob();)hon(BB(r.Pb(),70),tst,(hN(),!0))}function fPn(n,t){var i,r,c;c=qNn(t),hon(t,(hWn(),llt),c),c&&(r=DWn,AY(n.f,c)&&(r=BB(qI(AY(n.f,c)),19).a),qy(TD(mMn(i=BB(xq(t.g,0),17),Clt)))||VW(n,c,iln(e.Math.min(BB(mMn(i,wlt),19).a,r))))}function lPn(n,t,e){var i,r,c,a;for(t.p=-1,a=xwn(t,(ain(),qvt)).Kc();a.Ob();)for(r=new Wb(BB(a.Pb(),11).g);r.a<r.c.c.length;)t!=(c=(i=BB(n0(r),17)).d.i)&&(c.p<0?e.Fc(i):c.p>0&&lPn(n,c,e));t.p=0}function bPn(n){var t;this.c=new YT,this.f=n.e,this.e=n.d,this.i=n.g,this.d=n.c,this.b=n.b,this.k=n.j,this.a=n.a,n.i?this.j=n.i:this.j=new YK(t=BB(Vj(jMt),9),BB(SR(t,t.length),9),0),this.g=n.f}function wPn(n){var t,e,i,r;for(t=xX(oO(new lN("Predicates."),"and"),40),e=!0,r=new Sb(n);r.b<r.d.gc();)Px(r.b<r.d.gc()),i=r.d.Xb(r.c=r.b++),e||(t.a+=","),t.a+=""+i,e=!1;return(t.a+=")",t).a}function dPn(n,t,e){var i,r,c;if(!(e<=t+2))for(r=(e-t)/2|0,i=0;i<r;++i)l1(t+i,n.c.length),c=BB(n.c[t+i],11),c5(n,t+i,(l1(e-i-1,n.c.length),BB(n.c[e-i-1],11))),l1(e-i-1,n.c.length),n.c[e-i-1]=c}function gPn(n,t,e){var i,r,c,a,u,o,s;u=(c=n.d.p).e,o=c.r,n.g=new QK(o),i=(a=n.d.o.c.p)>0?u[a-1]:x8(Out,a1n,10,0,0,1),r=u[a],s=a<u.length-1?u[a+1]:x8(Out,a1n,10,0,0,1),t==e-1?uZ(n.g,r,s):uZ(n.g,i,r)}function pPn(n){var t;this.j=new Np,this.f=new Rv,this.b=new YK(t=BB(Vj(FIt),9),BB(SR(t,t.length),9),0),this.d=x8(ANt,hQn,25,(kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length,15,1),this.g=n}function vPn(n,t){var e,i,r;if(0!=t.c.length){for(e=TMn(n,t),r=!1;!e;)E$n(n,t,!0),r=!0,e=TMn(n,t);r&&E$n(n,t,!1),i=Dun(t),n.b&&n.b.lg(i),n.a=$hn(n,(l1(0,t.c.length),BB(t.c[0],33))),vPn(n,i)}}function mPn(n,t){var e,i,r;if(i=itn(n.Tg(),t),(e=t-n.Ah())<0){if(!i)throw Hp(new _y(o6n+t+s6n));if(!i.Ij())throw Hp(new _y(r6n+i.ne()+c6n));(r=n.Yg(i))>=0?n.Bh(r):cIn(n,i)}else qfn(n,e,i)}function yPn(n){var t,e;if(e=null,t=!1,cL(n,204)&&(t=!0,e=BB(n,204).a),t||cL(n,258)&&(t=!0,e=""+BB(n,258).a),t||cL(n,483)&&(t=!0,e=""+BB(n,483).a),!t)throw Hp(new Ly(H6n));return e}function kPn(n,t){var e,i;if(n.f){for(;t.Ob();)if(cL(i=(e=BB(t.Pb(),72)).ak(),99)&&0!=(BB(i,18).Bb&h6n)&&(!n.e||i.Gj()!=NOt||0!=i.aj())&&null!=e.dd())return t.Ub(),!0;return!1}return t.Ob()}function jPn(n,t){var e,i;if(n.f){for(;t.Sb();)if(cL(i=(e=BB(t.Ub(),72)).ak(),99)&&0!=(BB(i,18).Bb&h6n)&&(!n.e||i.Gj()!=NOt||0!=i.aj())&&null!=e.dd())return t.Pb(),!0;return!1}return t.Sb()}function EPn(n,t,e){var i,r,c,a,u,o;for(o=axn(n.e.Tg(),t),i=0,u=n.i,r=BB(n.g,119),a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak())){if(e==i)return a;++i,u=a+1}if(e==i)return u;throw Hp(new Ay(e9n+e+o8n+i))}function TPn(n,t){var i,r,c;if(0==n.f.c.length)return null;for(c=new bA,i=new Wb(n.f);i.a<i.c.c.length;)r=BB(n0(i),70).o,c.b=e.Math.max(c.b,r.a),c.a+=r.b;return c.a+=(n.f.c.length-1)*t,c}function MPn(n,t,e){var i,r,c;for(r=new oz(ZL(hbn(e).a.Kc(),new h));dAn(r);)b5(i=BB(U5(r),17))||!b5(i)&&i.c.i.c==i.d.i.c||(c=zLn(n,i,e,new um)).c.length>1&&(t.c[t.c.length]=c)}function SPn(n){var t,e,i;for(Frn(e=new YT,n.o),i=new om;0!=e.b;)WUn(n,t=BB(0==e.b?null:(Px(0!=e.b),Atn(e,e.a.a)),508),!0)&&WB(i.a,t);for(;0!=i.a.c.length;)WUn(n,t=BB(thn(i),508),!1)}function PPn(){PPn=O,kMt=new $C(hJn,0),wMt=new $C("BOOLEAN",1),vMt=new $C("INT",2),yMt=new $C("STRING",3),dMt=new $C("DOUBLE",4),gMt=new $C("ENUM",5),pMt=new $C("ENUMSET",6),mMt=new $C("OBJECT",7)}function CPn(n,t){var i,r,c,a,u;r=e.Math.min(n.c,t.c),a=e.Math.min(n.d,t.d),(c=e.Math.max(n.c+n.b,t.c+t.b))<r&&(i=r,r=c,c=i),(u=e.Math.max(n.d+n.a,t.d+t.a))<a&&(i=a,a=u,u=i),xH(n,r,a,c-r,u-a)}function IPn(){IPn=O,J$t=Pun(Gk(Qtt,1),sVn,2,6,[w7n,d7n,g7n,p7n,v7n,m7n,n8n]),Y$t=Pun(Gk(Qtt,1),sVn,2,6,[w7n,"empty",d7n,K9n,"elementOnly"]),nLt=Pun(Gk(Qtt,1),sVn,2,6,[w7n,"preserve","replace",y7n]),Z$t=new SH}function OPn(n,t,e){var i,r,c;if(t!=e){i=t;do{UR(n,i.c),(r=i.e)&&(_x(n,(c=i.d).b,c.d),UR(n,r.n),i=vW(r))}while(r);i=e;do{XR(n,i.c),(r=i.e)&&(Bx(n,(c=i.d).b,c.d),XR(n,r.n),i=vW(r))}while(r)}}function APn(n,t,e,i){var r,c,a,u,o;if(i.f.c+i.g.c==0)for(u=0,o=(a=n.a[n.c]).length;u<o;++u)VW(i,c=a[u],new kcn(n,c,e));return(r=BB(qI(AY(i.f,t)),663)).b=0,r.c=r.f,0==r.c||Tb(BB(xq(r.a,r.b),287)),r}function $Pn(){$Pn=O,Zst=new jP("MEDIAN_LAYER",0),tht=new jP("TAIL_LAYER",1),Jst=new jP("HEAD_LAYER",2),nht=new jP("SPACE_EFFICIENT_LAYER",3),eht=new jP("WIDEST_LAYER",4),Yst=new jP("CENTER_LAYER",5)}function LPn(n){switch(n.g){case 0:case 1:case 2:return kUn(),sIt;case 3:case 4:case 5:return kUn(),SIt;case 6:case 7:case 8:return kUn(),CIt;case 9:case 10:case 11:return kUn(),oIt;default:return kUn(),PIt}}function NPn(n,t){var e;return 0!=n.c.length&&(e=tdn((l1(0,n.c.length),BB(n.c[0],17)).c.i),BZ(),e==(bvn(),fvt)||e==hvt||o5($V(new Rq(null,new w1(n,16)),new Fc),new ig(t)))}function xPn(n,t,e){var i,r,c;if(!n.b[t.g]){for(n.b[t.g]=!0,!(i=e)&&(i=new P6),DH(i.b,t),c=n.a[t.g].Kc();c.Ob();)(r=BB(c.Pb(),188)).b!=t&&xPn(n,r.b,i),r.c!=t&&xPn(n,r.c,i),DH(i.a,r);return i}return null}function DPn(){DPn=O,Qyt=new lC("ROOT_PROC",0),Uyt=new lC("FAN_PROC",1),Wyt=new lC("NEIGHBORS_PROC",2),Xyt=new lC("LEVEL_HEIGHT",3),Vyt=new lC("NODE_POSITION_PROC",4),zyt=new lC("DETREEIFYING_PROC",5)}function RPn(n,t){if(cL(t,239))return zA(n,BB(t,33));if(cL(t,186))return UA(n,BB(t,118));if(cL(t,439))return GA(n,BB(t,202));throw Hp(new _y(z6n+LMn(new Jy(Pun(Gk(Ant,1),HWn,1,5,[t])))))}function KPn(n,t,e){var i,r;if(this.f=n,w6(e,r=(i=BB(RX(n.b,t),283))?i.a:0),e>=(r/2|0))for(this.e=i?i.c:null,this.d=r;e++<r;)TZ(this);else for(this.c=i?i.b:null;e-- >0;)EZ(this);this.b=t,this.a=null}function _Pn(n,t){var e,i;t.a?zNn(n,t):(!!(e=BB(kK(n.b,t.b),57))&&e==n.a[t.b.f]&&!!e.a&&e.a!=t.b.a&&e.c.Fc(t.b),!!(i=BB(yK(n.b,t.b),57))&&n.a[i.f]==t.b&&!!i.a&&i.a!=t.b.a&&t.b.c.Fc(i),MN(n.b,t.b))}function FPn(n,t){var e,i;if(e=BB(oV(n.b,t),124),BB(BB(h6(n.r,t),21),84).dc())return e.n.b=0,void(e.n.c=0);e.n.b=n.C.b,e.n.c=n.C.c,n.A.Hc((mdn(),_It))&&yRn(n,t),i=Xpn(n,t),PDn(n,t)==(cpn(),BCt)&&(i+=2*n.w),e.a.a=i}function BPn(n,t){var e,i;if(e=BB(oV(n.b,t),124),BB(BB(h6(n.r,t),21),84).dc())return e.n.d=0,void(e.n.a=0);e.n.d=n.C.d,e.n.a=n.C.a,n.A.Hc((mdn(),_It))&&kRn(n,t),i=Wpn(n,t),PDn(n,t)==(cpn(),BCt)&&(i+=2*n.w),e.a.b=i}function HPn(n,t){var e,i,r,c;for(c=new Np,i=new Wb(t);i.a<i.c.c.length;)WB(c,new RS(e=BB(n0(i),65),!0)),WB(c,new RS(e,!1));my((r=new hY(n)).a.a),e2(c,n.b,new Jy(Pun(Gk(oit,1),HWn,679,0,[r])))}function qPn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w;return u=n.a,f=n.b,o=t.a,l=t.b,s=e.a,b=e.b,new xC(((c=u*l-f*o)*(s-(h=i.a))-(a=s*(w=i.b)-b*h)*(u-o))/(r=(u-o)*(b-w)-(f-l)*(s-h)),(c*(b-w)-a*(f-l))/r)}function GPn(n,t){var e,i,r;if(!n.d[t.p]){for(n.d[t.p]=!0,n.a[t.p]=!0,i=new oz(ZL(lbn(t).a.Kc(),new h));dAn(i);)b5(e=BB(U5(i),17))||(r=e.d.i,n.a[r.p]?WB(n.b,e):GPn(n,r));n.a[t.p]=!1}}function zPn(n,t,e){var i;switch(i=0,BB(mMn(t,(HXn(),kgt)),163).g){case 2:i=2*-e+n.a,++n.a;break;case 1:i=-e;break;case 3:i=e;break;case 4:i=2*e+n.b,++n.b}return Lx(t,(hWn(),wlt))&&(i+=BB(mMn(t,wlt),19).a),i}function UPn(n,t,e){var i,r,c;for(e.zc(t,n),WB(n.n,t),c=n.p.eg(t),t.j==n.p.fg()?Obn(n.e,c):Obn(n.j,c),rX(n),r=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(t),new Gw(t)])));dAn(r);)i=BB(U5(r),11),e._b(i)||UPn(n,i,e)}function XPn(n){var t,e;return BB(ZAn(n,(sWn(),KSt)),21).Hc((mdn(),DIt))?(e=BB(ZAn(n,qSt),21),t=new wA(BB(ZAn(n,BSt),8)),e.Hc((n_n(),GIt))&&(t.a<=0&&(t.a=20),t.b<=0&&(t.b=20)),t):new Gj}function WPn(n){var t,e,i;if(!n.b){for(i=new Co,e=new ax(RBn(n));e.e!=e.i.gc();)0!=((t=BB(jpn(e),18)).Bb&h6n)&&f9(i,t);chn(i),n.b=new NO((BB(Wtn(QQ((QX(),t$t).o),8),18),i.i),i.g),P5(n).b&=-9}return n.b}function VPn(n,t){var e,i,r,c,a,u;a=BB(Emn(gz(t.k),x8(FIt,YZn,61,2,0,1)),122),Zmn(n,u=t.g,e=o3(t,a[0]),i=u3(t,a[1]))<=Zmn(n,u,r=o3(t,a[1]),c=u3(t,a[0]))?(t.a=e,t.c=i):(t.a=r,t.c=c)}function QPn(n,t,e){var i,r,c;for(OTn(e,"Processor set neighbors",1),n.a=0==t.b.b?1:t.b.b,r=null,i=spn(t.b,0);!r&&i.b!=i.d.c;)qy(TD(mMn(c=BB(b3(i),86),(qqn(),dkt))))&&(r=c);r&&LDn(n,new bg(r),e),HSn(e)}function YPn(n){var t,e,i,r;return RHn(),t=-1==(i=GO(n,YTn(35)))?n:n.substr(0,i),e=-1==i?null:n.substr(i+1),(r=V3(EAt,t))?null!=e&&(r=Csn(r,(kW(e),e))):(r=WXn(t),a5(EAt,t,r),null!=e&&(r=Csn(r,e))),r}function JPn(n){var t,e,i,r,c,a,u;if(SQ(),cL(n,54))for(c=0,r=n.gc()-1;c<r;++c,--r)t=n.Xb(c),n._c(c,n.Xb(r)),n._c(r,t);else for(e=n.Yc(),a=n.Zc(n.gc());e.Tb()<a.Vb();)i=e.Pb(),u=a.Ub(),e.Wb(u),a.Wb(i)}function ZPn(n,t){var e,i,r;OTn(t,"End label pre-processing",1),e=Gy(MD(mMn(n,(HXn(),jpt)))),i=Gy(MD(mMn(n,Spt))),r=gA(BB(mMn(n,Udt),103)),JT(wnn(new Rq(null,new w1(n.b,16)),new he),new D_(e,i,r)),HSn(t)}function nCn(n,t){var e,i,r,c,a,u;for(u=0,d3(c=new Lp,t);c.b!=c.c;)for(u+=syn((a=BB(dU(c),214)).d,a.e),r=new Wb(a.b);r.a<r.c.c.length;)i=BB(n0(r),37),(e=BB(xq(n.b,i.p),214)).s||(u+=nCn(n,e));return u}function tCn(n,t,i){var r,c;_an(this),t==(dJ(),Lyt)?TU(this.r,n.c):TU(this.w,n.c),TU(i==Lyt?this.r:this.w,n.d),tPn(this,n),XMn(this,r=Phn(n.c),c=Phn(n.d),c),this.o=(gxn(),e.Math.abs(r-c)<.2)}function eCn(n,t,e){var i,r,c,a,u;if(null!=(a=BB(yan(n.a,8),1936)))for(r=0,c=a.length;r<c;++r)null.jm();i=e,0==(1&n.a.Db)&&(u=new uW(n,e,t),i.ui(u)),cL(i,672)?BB(i,672).wi(n.a):i.ti()==n.a&&i.vi(null)}function iCn(){var n;return ZLt?BB($$n((WM(),zAt),S7n),1945):(sUn(),n=BB(cL(SJ((WM(),zAt),S7n),586)?SJ(zAt,S7n):new zW,586),ZLt=!0,gXn(n),pWn(n),VW((VM(),ZAt),n,new Ks),Tyn(n),mZ(zAt,S7n,n),n)}function rCn(n,t,e,i){var r;return(r=zTn(n,e,Pun(Gk(Qtt,1),sVn,2,6,[bQn,wQn,dQn,gQn,pQn,vQn,mQn]),t))<0&&(r=zTn(n,e,Pun(Gk(Qtt,1),sVn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),t)),!(r<0||(i.d=r,0))}function cCn(n,t,e,i){var r;return(r=zTn(n,e,Pun(Gk(Qtt,1),sVn,2,6,[bQn,wQn,dQn,gQn,pQn,vQn,mQn]),t))<0&&(r=zTn(n,e,Pun(Gk(Qtt,1),sVn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),t)),!(r<0||(i.d=r,0))}function aCn(n){var t,e,i;for(_$n(n),i=new Np,e=new Wb(n.a.a.b);e.a<e.c.c.length;)WB(i,new fP(t=BB(n0(e),81),!0)),WB(i,new fP(t,!1));nmn(n.c),i2(i,n.b,new Jy(Pun(Gk(Jat,1),HWn,369,0,[n.c]))),vAn(n)}function uCn(n){var t,e,i,r;for(e=new xp,r=new Wb(n.d);r.a<r.c.c.length;)i=BB(n0(r),181),t=BB(i.We((hWn(),Uft)),17),AY(e.f,t)||VW(e,t,new TQ(t)),WB(BB(qI(AY(e.f,t)),456).b,i);return new t_(new Ob(e))}function oCn(n,t){var e,i,r,c,a;for(i=new d1(n.j.c.length),e=null,c=new Wb(n.j);c.a<c.c.c.length;)(r=BB(n0(c),11)).j!=e&&(i.b==i.c||F$n(i,e,t),o4(i),e=r.j),(a=mAn(r))&&w3(i,a);i.b==i.c||F$n(i,e,t)}function sCn(n,t){var e,i;for(i=new M2(n.b,0);i.b<i.d.gc();)Px(i.b<i.d.gc()),e=BB(i.d.Xb(i.c=i.b++),70),BB(mMn(e,(HXn(),Ydt)),272)==(Rtn(),UPt)&&(fW(i),WB(t.b,e),Lx(e,(hWn(),Uft))||hon(e,Uft,n))}function hCn(n){var t,i,r;for(t=F3(new oz(ZL(lbn(n).a.Kc(),new h))),i=new oz(ZL(fbn(n).a.Kc(),new h));dAn(i);)r=F3(new oz(ZL(lbn(BB(U5(i),17).c.i).a.Kc(),new h))),t=e.Math.max(t,r);return iln(t)}function fCn(n,t,e){var i,r,c,a;for(OTn(e,"Processor arrange node",1),r=null,c=new YT,i=spn(t.b,0);!r&&i.b!=i.d.c;)qy(TD(mMn(a=BB(b3(i),86),(qqn(),dkt))))&&(r=a);r5(c,r,c.c.b,c.c),Yzn(n,c,mcn(e,1)),HSn(e)}function lCn(n,t,e){var i,r,c;i=BB(ZAn(n,(sWn(),hSt)),21),r=0,c=0,t.a>e.a&&(i.Hc((wEn(),WMt))?r=(t.a-e.a)/2:i.Hc(QMt)&&(r=t.a-e.a)),t.b>e.b&&(i.Hc((wEn(),JMt))?c=(t.b-e.b)/2:i.Hc(YMt)&&(c=t.b-e.b)),lMn(n,r,c)}function bCn(n,t,e,i,r,c,a,u,o,s,h,f,l){cL(n.Cb,88)&&ACn(P5(BB(n.Cb,88)),4),Nrn(n,e),n.f=a,$ln(n,u),Nln(n,o),Aln(n,s),Lln(n,h),nln(n,f),qln(n,l),Yfn(n,!0),Len(n,r),n.ok(c),Ihn(n,t),null!=i&&(n.i=null,arn(n,i))}function wCn(n){var t,e;if(n.f){for(;n.n>0;){if(cL(e=(t=BB(n.k.Xb(n.n-1),72)).ak(),99)&&0!=(BB(e,18).Bb&h6n)&&(!n.e||e.Gj()!=NOt||0!=e.aj())&&null!=t.dd())return!0;--n.n}return!1}return n.n>0}function dCn(n,t,e){if(n<0)return $Rn(BWn,Pun(Gk(Ant,1),HWn,1,5,[e,iln(n)]));if(t<0)throw Hp(new _y(qWn+t));return $Rn("%s (%s) must not be greater than size (%s)",Pun(Gk(Ant,1),HWn,1,5,[e,iln(n),iln(t)]))}function gCn(n,t,e,i,r,c){var a,u,o;if(i-e<7)$bn(t,e,i,c);else if(gCn(t,n,u=e+r,o=u+((a=i+r)-u>>1),-r,c),gCn(t,n,o,a,-r,c),c.ue(n[o-1],n[o])<=0)for(;e<i;)$X(t,e++,n[u++]);else Gfn(n,u,o,a,t,e,i,c)}function pCn(n,t){var e,i,r;for(r=new Np,i=new Wb(n.c.a.b);i.a<i.c.c.length;)e=BB(n0(i),57),t.Lb(e)&&(WB(r,new OS(e,!0)),WB(r,new OS(e,!1)));Zvn(n.e),e2(r,n.d,new Jy(Pun(Gk(oit,1),HWn,679,0,[n.e])))}function vCn(n,t){var e,i,r,c,a,u,o;for(o=t.d,r=t.b.j,u=new Wb(o);u.a<u.c.c.length;)for(a=BB(n0(u),101),c=x8($Nt,ZYn,25,r.c.length,16,1),VW(n.b,a,c),e=a.a.d.p-1,i=a.c.d.p;e!=i;)c[e=(e+1)%r.c.length]=!0}function mCn(n,t){for(n.r=new Fan(n.p),Jl(n.r,n),Frn(n.r.j,n.j),yQ(n.j),DH(n.j,t),DH(n.r.e,t),rX(n),rX(n.r);0!=n.f.c.length;)G$(BB(xq(n.f,0),129));for(;0!=n.k.c.length;)G$(BB(xq(n.k,0),129));return n.r}function yCn(n,t,e){var i,r,c;if(r=itn(n.Tg(),t),(i=t-n.Ah())<0){if(!r)throw Hp(new _y(o6n+t+s6n));if(!r.Ij())throw Hp(new _y(r6n+r.ne()+c6n));(c=n.Yg(r))>=0?n.sh(c,e):TLn(n,r,e)}else Lbn(n,i,r,e)}function kCn(n){var t,e,i,r;if(e=BB(n,49).qh())try{if(i=null,(t=$$n((WM(),zAt),M_n(_bn(e))))&&(r=t.rh())&&(i=r.Wk(Xy(e.e))),i&&i!=n)return kCn(i)}catch(c){if(!cL(c=lun(c),60))throw Hp(c)}return n}function jCn(n,t,e){var i,r,c,a;if(a=null==t?0:n.b.se(t),0==(r=null==(i=n.a.get(a))?new Array:i).length)n.a.set(a,r);else if(c=hhn(n,t,r))return c.ed(e);return $X(r,r.length,new PS(t,e)),++n.c,oY(n.b),null}function ECn(n,t){var e;return h2(n.a),CU(n.a,(Prn(),Qkt),Qkt),CU(n.a,Ykt,Ykt),dq(e=new B2,Ykt,(Cbn(),ejt)),GI(ZAn(t,(Uyn(),Sjt)))!==GI((Hsn(),sjt))&&dq(e,Ykt,njt),dq(e,Ykt,tjt),aA(n.a,e),$qn(n.a,t)}function TCn(n){if(!n)return lk(),htt;var t=n.valueOf?n.valueOf():n;if(t!==n){var i=ftt[typeof t];return i?i(t):khn(typeof t)}return n instanceof Array||n instanceof e.Array?new Tl(n):new Pl(n)}function MCn(n,t,i){var r,c,a;switch(a=n.o,(c=(r=BB(oV(n.p,i),244)).i).b=SIn(r),c.a=MIn(r),c.b=e.Math.max(c.b,a.a),c.b>a.a&&!t&&(c.b=a.a),c.c=-(c.b-a.a)/2,i.g){case 1:c.d=-c.a;break;case 3:c.d=a.b}_Fn(r),GFn(r)}function SCn(n,t,i){var r,c,a;switch(a=n.o,(c=(r=BB(oV(n.p,i),244)).i).b=SIn(r),c.a=MIn(r),c.a=e.Math.max(c.a,a.b),c.a>a.b&&!t&&(c.a=a.b),c.d=-(c.a-a.b)/2,i.g){case 4:c.c=-c.b;break;case 2:c.c=a.a}_Fn(r),GFn(r)}function PCn(n,t){var e,i,r,c,a;if(!t.dc())if(r=BB(t.Xb(0),128),1!=t.gc())for(e=1;e<t.gc();)!r.j&&r.o||(c=vyn(t,e))&&(i=BB(c.a,19).a,kxn(n,r,a=BB(c.b,128),e,i,t),e=i+1,r=a);else kxn(n,r,r,1,0,t)}function CCn(n){var t,e,i,r;for(m$(r=new t_(n.d),new zr),kDn(),t=Pun(Gk(iht,1),$Vn,270,0,[Bst,Gst,Fst,Xst,qst,Hst,Ust,zst]),e=0,i=new Wb(r);i.a<i.c.c.length;)COn(BB(n0(i),101),t[e%t.length]),++e}function ICn(n,t){var e,i,r,c;if(jDn(),t.b<2)return!1;for(i=e=BB(b3(c=spn(t,0)),8);c.b!=c.d.c;){if(r=BB(b3(c),8),!Dcn(n,i)||!Dcn(n,r))return!1;i=r}return!(!Dcn(n,i)||!Dcn(n,e))}function OCn(n,t){var e,i,r,c,a;return e=Ren(a=n,"x"),nnn(new qg(t).a,e),i=Ren(a,"y"),tnn(new Gg(t).a,i),r=Ren(a,C6n),enn(new zg(t).a,r),c=Ren(a,P6n),inn(new Ug(t).a,c),c}function ACn(n,t){dRn(n,t),0!=(1&n.b)&&(n.a.a=null),0!=(2&n.b)&&(n.a.f=null),0!=(4&n.b)&&(n.a.g=null,n.a.i=null),0!=(16&n.b)&&(n.a.d=null,n.a.e=null),0!=(8&n.b)&&(n.a.b=null),0!=(32&n.b)&&(n.a.j=null,n.a.c=null)}function $Cn(n,t){var e,i;if(i=0,t.length>0)try{i=l_n(t,_Vn,DWn)}catch(r){throw cL(r=lun(r),127)?Hp(new L7(r)):Hp(r)}return!n.a&&(n.a=new Sp(n)),i<(e=n.a).i&&i>=0?BB(Wtn(e,i),56):null}function LCn(n,t){if(n<0)return $Rn(BWn,Pun(Gk(Ant,1),HWn,1,5,["index",iln(n)]));if(t<0)throw Hp(new _y(qWn+t));return $Rn("%s (%s) must be less than size (%s)",Pun(Gk(Ant,1),HWn,1,5,["index",iln(n),iln(t)]))}function NCn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],c.a?oO(c.a,c.b):c.a=new lN(c.d),aO(c.a,""+t);return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function xCn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],c.a?oO(c.a,c.b):c.a=new lN(c.d),aO(c.a,""+t);return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function DCn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],c.a?oO(c.a,c.b):c.a=new lN(c.d),aO(c.a,""+t);return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function RCn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],c.a?oO(c.a,c.b):c.a=new lN(c.d),aO(c.a,""+t);return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function KCn(n,t){var e,i,r,c,a,u;for(e=n.b.c.length,r=xq(n.b,t);2*t+1<e&&(u=c=2*t+1,(a=c+1)<e&&n.a.ue(xq(n.b,a),xq(n.b,c))<0&&(u=a),i=u,!(n.a.ue(r,xq(n.b,i))<0));)c5(n.b,t,xq(n.b,i)),t=i;c5(n.b,t,r)}function _Cn(n,t,i,r,c,a){var u,o,s,h,f;for(GI(n)===GI(i)&&(n=n.slice(t,t+c),t=0),s=i,o=t,h=t+c;o<h;)c=(u=e.Math.min(o+1e4,h))-o,(f=n.slice(o,u)).splice(0,0,r,a?c:0),Array.prototype.splice.apply(s,f),o=u,r+=c}function FCn(n,t,e){var i,r;return i=e.d,r=e.e,n.g[i.d]<=n.i[t.d]&&n.i[t.d]<=n.i[i.d]&&n.g[r.d]<=n.i[t.d]&&n.i[t.d]<=n.i[r.d]?!(n.i[i.d]<n.i[r.d]):n.i[i.d]<n.i[r.d]}function BCn(n){var t,e,i,r,c,a,u;if((i=n.a.c.length)>0)for(a=n.c.d,r=kL(XR(new xC((u=n.d.d).a,u.b),a),1/(i+1)),c=new xC(a.a,a.b),e=new Wb(n.a);e.a<e.c.c.length;)(t=BB(n0(e),559)).d.a=c.a,t.d.b=c.b,UR(c,r)}function HCn(n,t,i){var r,c,a,u,o,s;for(s=RQn,a=new Wb(GLn(n.b));a.a<a.c.c.length;)for(c=BB(n0(a),168),o=new Wb(GLn(t.b));o.a<o.c.c.length;)u=BB(n0(o),168),r=Cun(c.a,c.b,u.a,u.b,i),s=e.Math.min(s,r);return s}function qCn(n,t){if(!t)throw Hp(new gv);if(n.j=t,!n.d)switch(n.j.g){case 1:n.a.a=n.o.a/2,n.a.b=0;break;case 2:n.a.a=n.o.a,n.a.b=n.o.b/2;break;case 3:n.a.a=n.o.a/2,n.a.b=n.o.b;break;case 4:n.a.a=0,n.a.b=n.o.b/2}}function GCn(n,t){var i,r;return cL(t.g,10)&&BB(t.g,10).k==(uSn(),Mut)?RQn:f3(t)?e.Math.max(0,n.b/2-.5):(i=f2(t))?(r=Gy(MD(edn(i,(HXn(),Opt)))),e.Math.max(0,r/2-.5)):RQn}function zCn(n,t){var i,r;return cL(t.g,10)&&BB(t.g,10).k==(uSn(),Mut)?RQn:f3(t)?e.Math.max(0,n.b/2-.5):(i=f2(t))?(r=Gy(MD(edn(i,(HXn(),Opt)))),e.Math.max(0,r/2-.5)):RQn}function UCn(n){var t,e,i,r;for(r=Lfn(n.d,n.e).Kc();r.Ob();)for(i=BB(r.Pb(),11),e=new Wb(n.e==(kUn(),CIt)?i.e:i.g);e.a<e.c.c.length;)b5(t=BB(n0(e),17))||t.c.i.c==t.d.i.c||(RSn(n,t),++n.f,++n.c)}function XCn(n,t){var e,i;if(t.dc())return SQ(),SQ(),set;for(WB(i=new Np,iln(_Vn)),e=1;e<n.f;++e)null==n.a&&wRn(n),n.a[e]&&WB(i,iln(e));return 1==i.c.length?(SQ(),SQ(),set):(WB(i,iln(DWn)),dBn(t,i))}function WCn(n,t){var e,i,r,c,a,u;e=ckn(t,u=t.c.i.k!=(uSn(),Cut)?t.d:t.c).i,r=BB(RX(n.k,u),121),i=n.i[e.p].a,AK(u.i)<(e.c?E7(e.c.a,e,0):-1)?(c=r,a=i):(c=i,a=r),UNn(aM(cM(uM(rM(new Hv,0),4),c),a))}function VCn(n,t,e){var i,r,c;if(e)for(r=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);r.Ob();)(c=Amn(n,kIn(dnn(e,BB(r.Pb(),19).a))))&&(!t.b&&(t.b=new hK(KOt,t,4,7)),f9(t.b,c))}function QCn(n,t,e){var i,r,c;if(e)for(r=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);r.Ob();)(c=Amn(n,kIn(dnn(e,BB(r.Pb(),19).a))))&&(!t.c&&(t.c=new hK(KOt,t,5,8)),f9(t.c,c))}function YCn(n,t,e){var i,r;i=t.a&n.f,t.b=n.b[i],n.b[i]=t,r=t.f&n.f,t.d=n.c[r],n.c[r]=t,e?(t.e=e.e,t.e?t.e.c=t:n.a=t,t.c=e.c,t.c?t.c.e=t:n.e=t):(t.e=n.e,t.c=null,n.e?n.e.c=t:n.a=t,n.e=t),++n.i,++n.g}function JCn(n){var t,e,i;if(t=n.Pb(),!n.Ob())return t;for(i=uO(oO(new Ck,"expected one element but was: <"),t),e=0;e<4&&n.Ob();e++)uO((i.a+=FWn,i),n.Pb());throw n.Ob()&&(i.a+=", ..."),i.a+=">",Hp(new _y(i.a))}function ZCn(n,t){var e;t.d?t.d.b=t.b:n.a=t.b,t.b?t.b.d=t.d:n.e=t.d,t.e||t.c?(--(e=BB(RX(n.b,t.a),283)).a,t.e?t.e.c=t.c:e.b=t.c,t.c?t.c.e=t.e:e.c=t.e):((e=BB(v6(n.b,t.a),283)).a=0,++n.c),--n.d}function nIn(n){var t,e;return e=-n.a,t=Pun(Gk(ONt,1),WVn,25,15,[43,48,48,48,48]),e<0&&(t[0]=45,e=-e),t[1]=t[1]+((e/60|0)/10|0)&QVn,t[2]=t[2]+(e/60|0)%10&QVn,t[3]=t[3]+(e%60/10|0)&QVn,t[4]=t[4]+e%10&QVn,Bdn(t,0,t.length)}function tIn(n,t,e){var i,r;for(i=t.d,r=e.d;i.a-r.a==0&&i.b-r.b==0;)i.a+=H$n(n,26)*rYn+H$n(n,27)*cYn-.5,i.b+=H$n(n,26)*rYn+H$n(n,27)*cYn-.5,r.a+=H$n(n,26)*rYn+H$n(n,27)*cYn-.5,r.b+=H$n(n,26)*rYn+H$n(n,27)*cYn-.5}function eIn(n){var t,e,i,r;for(n.g=new Hbn(BB(yX(FIt),290)),i=0,kUn(),e=sIt,t=0;t<n.j.c.length;t++)(r=BB(xq(n.j,t),11)).j!=e&&(i!=t&&mG(n.g,e,new rI(iln(i),iln(t))),e=r.j,i=t);mG(n.g,e,new rI(iln(i),iln(t)))}function iIn(n){var t,e,i,r,c;for(e=0,t=new Wb(n.b);t.a<t.c.c.length;)for(r=new Wb(BB(n0(t),29).a);r.a<r.c.c.length;)for((i=BB(n0(r),10)).p=e++,c=new Wb(i.j);c.a<c.c.c.length;)BB(n0(c),11).p=e++}function rIn(n,t,e,i,r){var c,a,u,o;if(t)for(a=t.Kc();a.Ob();)for(o=cRn(BB(a.Pb(),10),(ain(),qvt),e).Kc();o.Ob();)u=BB(o.Pb(),11),(c=BB(qI(AY(r.f,u)),112))||(c=new Fan(n.d),i.c[i.c.length]=c,UPn(c,u,r))}function cIn(n,t){var e,i,r;if(!(r=Fqn((IPn(),Z$t),n.Tg(),t)))throw Hp(new _y(r6n+t.ne()+c6n));ZM(),BB(r,66).Oj()||(r=Z1(B7(Z$t,r))),i=BB((e=n.Yg(r))>=0?n._g(e,!0,!0):cOn(n,r,!0),153),BB(i,215).ol(t)}function aIn(n){var t,i;return n>-0x800000000000&&n<0x800000000000?0==n?0:((t=n<0)&&(n=-n),i=CJ(e.Math.floor(e.Math.log(n)/.6931471805599453)),(!t||n!=e.Math.pow(2,i))&&++i,i):Van(fan(n))}function uIn(n){var t,e,i,r,c,a,u;for(c=new fA,e=new Wb(n);e.a<e.c.c.length;)a=(t=BB(n0(e),129)).a,u=t.b,c.a._b(a)||c.a._b(u)||(r=a,i=u,a.e.b+a.j.b>2&&u.e.b+u.j.b<=2&&(r=u,i=a),c.a.zc(r,c),r.q=i);return c}function oIn(n,t){var e,i,r;return qan(i=new $vn(n),t),hon(i,(hWn(),Vft),t),hon(i,(HXn(),ept),(QEn(),XCt)),hon(i,kdt,(wvn(),OMt)),Bl(i,(uSn(),Mut)),CZ(e=new CSn,i),qCn(e,(kUn(),CIt)),CZ(r=new CSn,i),qCn(r,oIt),i}function sIn(n){switch(n.g){case 0:return new Ny((oin(),Omt));case 1:return new df;case 2:return new jf;default:throw Hp(new _y("No implementation is available for the crossing minimizer "+(null!=n.f?n.f:""+n.g)))}}function hIn(n,t){var e,i,r,c;for(n.c[t.p]=!0,WB(n.a,t),c=new Wb(t.j);c.a<c.c.c.length;)for(e=new m6((r=BB(n0(c),11)).b);y$(e.a)||y$(e.b);)i=ngn(r,BB(y$(e.a)?n0(e.a):n0(e.b),17)).i,n.c[i.p]||hIn(n,i)}function fIn(n){var t,i,r,c,a,u,o;for(u=0,i=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));i.e!=i.i.gc();)o=(t=BB(kpn(i),33)).g,c=t.f,r=e.Math.sqrt(o*o+c*c),u=e.Math.max(r,u),a=fIn(t),u=e.Math.max(a,u);return u}function lIn(){lIn=O,rIt=new XC("OUTSIDE",0),eIt=new XC("INSIDE",1),iIt=new XC("NEXT_TO_PORT_IF_POSSIBLE",2),tIt=new XC("ALWAYS_SAME_SIDE",3),nIt=new XC("ALWAYS_OTHER_SAME_SIDE",4),cIt=new XC("SPACE_EFFICIENT",5)}function bIn(n,t,e){var i,r,c,a;return $in(i=K2(n,(tE(),r=new jm,!!e&&nNn(r,e),r),t),R2(t,q6n)),STn(t,i),o$n(t,i),OCn(t,i),c=N2(t,"ports"),PLn((a=new pI(n,i)).a,a.b,c),xon(n,t,i),aun(n,t,i),i}function wIn(n){var t,e;return e=-n.a,t=Pun(Gk(ONt,1),WVn,25,15,[43,48,48,58,48,48]),e<0&&(t[0]=45,e=-e),t[1]=t[1]+((e/60|0)/10|0)&QVn,t[2]=t[2]+(e/60|0)%10&QVn,t[4]=t[4]+(e%60/10|0)&QVn,t[5]=t[5]+e%10&QVn,Bdn(t,0,t.length)}function dIn(n){var t;return t=Pun(Gk(ONt,1),WVn,25,15,[71,77,84,45,48,48,58,48,48]),n<=0&&(t[3]=43,n=-n),t[4]=t[4]+((n/60|0)/10|0)&QVn,t[5]=t[5]+(n/60|0)%10&QVn,t[7]=t[7]+(n%60/10|0)&QVn,t[8]=t[8]+n%10&QVn,Bdn(t,0,t.length)}function gIn(n){var t,e,i,r,c;if(null==n)return zWn;for(c=new $an(FWn,"[","]"),i=0,r=(e=n).length;i<r;++i)t=e[i],c.a?oO(c.a,c.b):c.a=new lN(c.d),aO(c.a,""+vz(t));return c.a?0==c.e.length?c.a.a:c.a.a+""+c.e:c.c}function pIn(n,t){var i,r,c;for(c=DWn,r=new Wb(kbn(t));r.a<r.c.c.length;)(i=BB(n0(r),213)).f&&!n.c[i.c]&&(n.c[i.c]=!0,c=e.Math.min(c,pIn(n,Nbn(i,t))));return n.i[t.d]=n.j,n.g[t.d]=e.Math.min(c,n.j++),n.g[t.d]}function vIn(n,t){var e,i,r;for(r=BB(BB(h6(n.r,t),21),84).Kc();r.Ob();)(i=BB(r.Pb(),111)).e.b=(e=i.b).Xe((sWn(),aPt))?e.Hf()==(kUn(),sIt)?-e.rf().b-Gy(MD(e.We(aPt))):Gy(MD(e.We(aPt))):e.Hf()==(kUn(),sIt)?-e.rf().b:0}function mIn(n){var t,e,i,r,c,a,u;for(e=QA(n.e),c=kL(Bx(B$(VA(n.e)),n.d*n.a,n.c*n.b),-.5),t=e.a-c.a,r=e.b-c.b,u=0;u<n.c;u++){for(i=t,a=0;a<n.d;a++)Wbn(n.e,new UV(i,r,n.a,n.b))&&FRn(n,a,u,!1,!0),i+=n.a;r+=n.b}}function yIn(n){var t,e,i;if(qy(TD(ZAn(n,(sWn(),SSt))))){for(i=new Np,e=new oz(ZL(dLn(n).a.Kc(),new h));dAn(e);)QIn(t=BB(U5(e),79))&&qy(TD(ZAn(t,PSt)))&&(i.c[i.c.length]=t);return i}return SQ(),SQ(),set}function kIn(n){var t;if(t=!1,cL(n,204))return t=!0,BB(n,204).a;if(!t&&cL(n,258)&&BB(n,258).a%1==0)return t=!0,iln(QO(BB(n,258).a));throw Hp(new ek("Id must be a string or an integer: '"+n+"'."))}function jIn(n,t){var e,i,r,c,a,u;for(c=null,r=new rU((!n.a&&(n.a=new Sp(n)),n.a));bOn(r);)if(YBn(a=(e=BB(aLn(r),56)).Tg()),null!=(i=(u=a.o)&&e.mh(u)?pK(uun(u),e.ah(u)):null)&&mK(i,t)){c=e;break}return c}function EIn(n,t,e){var i,r,c,a,u;if(lin(e,"occurrences"),0==e)return(u=BB(lfn(OQ(n.a),t),14))?u.gc():0;if(!(a=BB(lfn(OQ(n.a),t),14)))return 0;if(e>=(c=a.gc()))a.$b();else for(r=a.Kc(),i=0;i<e;i++)r.Pb(),r.Qb();return c}function TIn(n,t,e){var i,r,c;return lin(e,"oldCount"),lin(0,"newCount"),((i=BB(lfn(OQ(n.a),t),14))?i.gc():0)==e&&(lin(0,"count"),(c=-((r=BB(lfn(OQ(n.a),t),14))?r.gc():0))>0?wk():c<0&&EIn(n,t,-c),!0)}function MIn(n){var t,e,i,r,c,a;if(a=0,0==n.b){for(t=0,r=0,c=(i=Xvn(n,!0)).length;r<c;++r)(e=i[r])>0&&(a+=e,++t);t>1&&(a+=n.c*(t-1))}else a=Kk(ecn(LV(AV(LU(n.a),new Mn),new Sn)));return a>0?a+n.n.d+n.n.a:0}function SIn(n){var t,e,i,r,c,a;if(a=0,0==n.b)a=Kk(ecn(LV(AV(LU(n.a),new En),new Tn)));else{for(t=0,r=0,c=(i=Wvn(n,!0)).length;r<c;++r)(e=i[r])>0&&(a+=e,++t);t>1&&(a+=n.c*(t-1))}return a>0?a+n.n.b+n.n.c:0}function PIn(n,t){var i,r,c,a;for(i=(a=BB(oV(n.b,t),124)).a,c=BB(BB(h6(n.r,t),21),84).Kc();c.Ob();)(r=BB(c.Pb(),111)).c&&(i.a=e.Math.max(i.a,VH(r.c)));if(i.a>0)switch(t.g){case 2:a.n.c=n.s;break;case 4:a.n.b=n.s}}function CIn(n,t){var e,i,r;return 0==(e=BB(mMn(t,(fRn(),Zct)),19).a-BB(mMn(n,Zct),19).a)?(i=XR(B$(BB(mMn(n,(Mrn(),uat)),8)),BB(mMn(n,oat),8)),r=XR(B$(BB(mMn(t,uat),8)),BB(mMn(t,oat),8)),Pln(i.a*i.b,r.a*r.b)):e}function IIn(n,t){var e,i,r;return 0==(e=BB(mMn(t,(CAn(),$kt)),19).a-BB(mMn(n,$kt),19).a)?(i=XR(B$(BB(mMn(n,(qqn(),Zyt)),8)),BB(mMn(n,nkt),8)),r=XR(B$(BB(mMn(t,Zyt),8)),BB(mMn(t,nkt),8)),Pln(i.a*i.b,r.a*r.b)):e}function OIn(n){var t,e;return(e=new Ck).a+="e_",null!=(t=Xan(n))&&(e.a+=""+t),n.c&&n.d&&(oO((e.a+=" ",e),pyn(n.c)),oO(uO((e.a+="[",e),n.c.i),"]"),oO((e.a+=e1n,e),pyn(n.d)),oO(uO((e.a+="[",e),n.d.i),"]")),e.a}function AIn(n){switch(n.g){case 0:return new pf;case 1:return new vf;case 2:return new gf;case 3:return new mf;default:throw Hp(new _y("No implementation is available for the layout phase "+(null!=n.f?n.f:""+n.g)))}}function $In(n,t,i,r,c){var a;switch(a=0,c.g){case 1:a=e.Math.max(0,t.b+n.b-(i.b+r));break;case 3:a=e.Math.max(0,-n.b-r);break;case 2:a=e.Math.max(0,-n.a-r);break;case 4:a=e.Math.max(0,t.a+n.a-(i.a+r))}return a}function LIn(n,t,e){var i,r,c;if(e)for(c=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);c.Ob();)r=x2(e,BB(c.Pb(),19).a),L6n in r.a||N6n in r.a?sKn(n,r,t):EXn(n,r,t),PL(BB(RX(n.b,Qdn(r)),79))}function NIn(n){var t,e;switch(n.b){case-1:return!0;case 0:return(e=n.t)>1||-1==e||(t=Ikn(n))&&(ZM(),t.Cj()==E9n)?(n.b=-1,!0):(n.b=1,!1);default:return!1}}function xIn(n,t){var e,i,r,c,a;for(!t.s&&(t.s=new eU(FAt,t,21,17)),c=null,r=0,a=(i=t.s).i;r<a;++r)switch(DW(B7(n,e=BB(Wtn(i,r),170)))){case 2:case 3:!c&&(c=new Np),c.c[c.c.length]=e}return c||(SQ(),SQ(),set)}function DIn(n,t){var e,i,r,c;if(QXn(n),0!=n.c||123!=n.a)throw Hp(new ak(kWn((u$(),P8n))));if(c=112==t,i=n.d,(e=lx(n.i,125,i))<0)throw Hp(new ak(kWn((u$(),C8n))));return r=fx(n.i,i,e),n.d=e+1,b9(r,c,512==(512&n.e))}function RIn(n){var t;if((t=BB(mMn(n,(HXn(),qdt)),314))==(Oin(),hht))throw Hp(new ck("The hierarchy aware processor "+t+" in child node "+n+" is only allowed if the root node specifies the same hierarchical processor."))}function KIn(n,t){var e,i,r,c;for(G_(),e=null,r=t.Kc();r.Ob();)(i=BB(r.Pb(),128)).o||(WB((c=new PBn(F$(i.a),bH(i.a),null,BB(i.d.a.ec().Kc().Pb(),17))).c,i.a),n.c[n.c.length]=c,e&&WB(e.d,c),e=c)}function _In(n,t){var e,i,r;if(t)if(0!=(4&t.i))for(i="[]",e=t.c;;e=e.c){if(0==(4&e.i)){Hin(n,r=Uy((ED(e),e.o+i))),xen(n,r);break}i+="[]"}else Hin(n,r=Uy((ED(t),t.o))),xen(n,r);else Hin(n,null),xen(n,null);n.yk(t)}function FIn(n,t,e,i,r){var c,a,u,o;return GI(o=hD(n,BB(r,56)))!==GI(r)?(u=BB(n.g[e],72),jL(n,e,sTn(n,e,c=Z3(t,o))),mA(n.e)&&(KEn(a=LY(n,9,c.ak(),r,o,i,!1),new N7(n.e,9,n.c,u,c,i,!1)),$7(a)),o):r}function BIn(n,t,e){var i,r,c,a,u,o;for(i=BB(h6(n.c,t),15),r=BB(h6(n.c,e),15),c=i.Zc(i.gc()),a=r.Zc(r.gc());c.Sb()&&a.Sb();)if((u=BB(c.Ub(),19))!=(o=BB(a.Ub(),19)))return E$(u.a,o.a);return c.Ob()||a.Ob()?c.Ob()?1:-1:0}function HIn(n,t){var e,i;try{return X1(n.a,t)}catch(r){if(cL(r=lun(r),32)){try{if(i=l_n(t,_Vn,DWn),e=Vj(n.a),i>=0&&i<e.length)return e[i]}catch(c){if(!cL(c=lun(c),127))throw Hp(c)}return null}throw Hp(r)}}function qIn(n,t){var e,i,r;if(r=Fqn((IPn(),Z$t),n.Tg(),t))return ZM(),BB(r,66).Oj()||(r=Z1(B7(Z$t,r))),i=BB((e=n.Yg(r))>=0?n._g(e,!0,!0):cOn(n,r,!0),153),BB(i,215).ll(t);throw Hp(new _y(r6n+t.ne()+u6n))}function GIn(){var n;return tS(),Q$t?BB($$n((WM(),zAt),V9n),1939):(RO(Hnt,new Cs),nzn(),n=BB(cL(SJ((WM(),zAt),V9n),547)?SJ(zAt,V9n):new UW,547),Q$t=!0,oWn(n),TWn(n),VW((VM(),ZAt),n,new Go),mZ(zAt,V9n,n),n)}function zIn(n,t){var e,i,r,c;n.j=-1,mA(n.e)?(e=n.i,c=0!=n.i,c6(n,t),i=new N7(n.e,3,n.c,null,t,e,c),r=t.Qk(n.e,n.c,null),(r=IEn(n,t,r))?(r.Ei(i),r.Fi()):ban(n.e,i)):(c6(n,t),(r=t.Qk(n.e,n.c,null))&&r.Fi())}function UIn(n,t){var e,i,r;if(r=0,(i=t[0])>=n.length)return-1;for(b1(i,n.length),e=n.charCodeAt(i);e>=48&&e<=57&&(r=10*r+(e-48),!(++i>=n.length));)b1(i,n.length),e=n.charCodeAt(i);return i>t[0]?t[0]=i:r=-1,r}function XIn(n){var t,i,r,c,a;return i=c=BB(n.a,19).a,r=a=BB(n.b,19).a,t=e.Math.max(e.Math.abs(c),e.Math.abs(a)),c<=0&&c==a?(i=0,r=a-1):c==-t&&a!=t?(i=a,r=c,a>=0&&++i):(i=-a,r=c),new rI(iln(i),iln(r))}function WIn(n,t,e,i){var r,c,a,u,o,s;for(r=0;r<t.o;r++)for(c=r-t.j+e,a=0;a<t.p;a++)if(o=c,s=u=a-t.k+i,o+=n.j,s+=n.k,o>=0&&s>=0&&o<n.o&&s<n.p&&(!mmn(t,r,a)&&imn(n,c,u)||vmn(t,r,a)&&!rmn(n,c,u)))return!0;return!1}function VIn(n,t,e){var i,r,c,a;c=n.c,a=n.d,r=(Aon(Pun(Gk(PMt,1),sVn,8,0,[c.i.n,c.n,c.a])).b+Aon(Pun(Gk(PMt,1),sVn,8,0,[a.i.n,a.n,a.a])).b)/2,i=null,i=c.j==(kUn(),oIt)?new xC(t+c.i.c.c.a+e,r):new xC(t-e,r),Kx(n.a,0,i)}function QIn(n){var t,e,i;for(t=null,e=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c)])));dAn(e);)if(i=PTn(BB(U5(e),82)),t){if(t!=i)return!1}else t=i;return!0}function YIn(n,t,e){var i;if(++n.j,t>=n.i)throw Hp(new Ay(u8n+t+o8n+n.i));if(e>=n.i)throw Hp(new Ay(s8n+e+o8n+n.i));return i=n.g[e],t!=e&&(t<e?aHn(n.g,t,n.g,t+1,e-t):aHn(n.g,e+1,n.g,e,t-e),$X(n.g,t,i),n.ei(t,i,e),n.ci()),i}function JIn(n,t,e){var i;if(i=BB(n.c.xc(t),14))return!!i.Fc(e)&&(++n.d,!0);if((i=n.ic(t)).Fc(e))return++n.d,n.c.zc(t,i),!0;throw Hp(new g5("New Collection violated the Collection spec"))}function ZIn(n){var t,e,i;return n<0?0:0==n?32:(e=16-(t=(i=-(n>>16))>>16&16),e+=t=(i=(n>>=t)-256)>>16&8,e+=t=(i=(n<<=t)-_Qn)>>16&4,(e+=t=(i=(n<<=t)-hVn)>>16&2)+2-(t=(i=(n<<=t)>>14)&~(i>>1)))}function nOn(n){var t,e,i,r;for(MQ(),Sct=new Np,Mct=new xp,Tct=new Np,!n.a&&(n.a=new eU(UOt,n,10,11)),xUn(t=n.a),r=new AL(t);r.e!=r.i.gc();)i=BB(kpn(r),33),-1==E7(Sct,i,0)&&(e=new Np,WB(Tct,e),Rgn(i,e));return Tct}function tOn(n,t,e){var i,r,c,a;n.a=e.b.d,cL(t,352)?(e5(c=qSn(r=cDn(BB(t,79),!1,!1)),i=new Nw(n)),VFn(c,r),null!=t.We((sWn(),OSt))&&e5(BB(t.We(OSt),74),i)):((a=BB(t,470)).Hg(a.Dg()+n.a.a),a.Ig(a.Eg()+n.a.b))}function eOn(n,t){var i,r,c,a,u,o,s,h;for(h=Gy(MD(mMn(t,(HXn(),Npt)))),s=n[0].n.a+n[0].o.a+n[0].d.c+h,o=1;o<n.length;o++)r=n[o].n,c=n[o].o,i=n[o].d,(a=r.a-i.b-s)<0&&(r.a-=a),(u=t.f).a=e.Math.max(u.a,r.a+c.a),s=r.a+c.a+i.c+h}function iOn(n,t){var e,i,r,c,a,u;return i=BB(BB(RX(n.g,t.a),46).a,65),r=BB(BB(RX(n.g,t.b),46).a,65),(e=nqn(c=i.b,a=r.b))>=0?e:(u=lW(XR(new xC(a.c+a.b/2,a.d+a.a/2),new xC(c.c+c.b/2,c.d+c.a/2))),-(Y_n(c,a)-1)*u)}function rOn(n,t,e){var i;JT(new Rq(null,(!e.a&&(e.a=new eU(FOt,e,6,6)),new w1(e.a,16))),new eI(n,t)),JT(new Rq(null,(!e.n&&(e.n=new eU(zOt,e,1,7)),new w1(e.n,16))),new iI(n,t)),(i=BB(ZAn(e,(sWn(),OSt)),74))&&Yrn(i,n,t)}function cOn(n,t,e){var i,r,c;if(c=Fqn((IPn(),Z$t),n.Tg(),t))return ZM(),BB(c,66).Oj()||(c=Z1(B7(Z$t,c))),r=BB((i=n.Yg(c))>=0?n._g(i,!0,!0):cOn(n,c,!0),153),BB(r,215).hl(t,e);throw Hp(new _y(r6n+t.ne()+u6n))}function aOn(n,t,e,i){var r,c,a,u,o;if(r=n.d[t])if(c=r.g,o=r.i,null!=i){for(u=0;u<o;++u)if((a=BB(c[u],133)).Sh()==e&&Nfn(i,a.cd()))return a}else for(u=0;u<o;++u)if(GI((a=BB(c[u],133)).cd())===GI(i))return a;return null}function uOn(n,t){var e;if(t<0)throw Hp(new Oy("Negative exponent"));if(0==t)return Jtt;if(1==t||swn(n,Jtt)||swn(n,eet))return n;if(!fAn(n,0)){for(e=1;!fAn(n,e);)++e;return Nnn(vwn(e*t),uOn(z5(n,e),t))}return mTn(n,t)}function oOn(n,t){var e,i,r;if(GI(n)===GI(t))return!0;if(null==n||null==t)return!1;if(n.length!=t.length)return!1;for(e=0;e<n.length;++e)if(i=n[e],r=t[e],!(GI(i)===GI(r)||null!=i&&Nfn(i,r)))return!1;return!0}function sOn(n){var t,e,i;for(kM(),this.b=Vat,this.c=(Ffn(),BPt),this.f=(yM(),zat),this.a=n,tj(this,new Ct),kNn(this),i=new Wb(n.b);i.a<i.c.c.length;)(e=BB(n0(i),81)).d||(t=new Pgn(Pun(Gk(Qat,1),HWn,81,0,[e])),WB(n.a,t))}function hOn(n,t,e){var i,r,c,a,u,o;if(!n||0==n.c.length)return null;for(c=new KY(t,!e),r=new Wb(n);r.a<r.c.c.length;)i=BB(n0(r),70),USn(c,(gM(),new Bw(i)));return(a=c.i).a=(o=c.n,c.e.b+o.d+o.a),a.b=(u=c.n,c.e.a+u.b+u.c),c}function fOn(n){var t,e,i,r,c,a,u;for(hA(u=n2(n.a),new Pe),e=null,c=0,a=(r=u).length;c<a&&(i=r[c]).k==(uSn(),Mut);++c)(t=BB(mMn(i,(hWn(),Qft)),61))!=(kUn(),CIt)&&t!=oIt||(e&&BB(mMn(e,clt),15).Fc(i),e=i)}function lOn(n,t,e){var i,r,c,a,u,o;l1(t,n.c.length),u=BB(n.c[t],329),s6(n,t),u.b/2>=e&&(i=t,c=(o=(u.c+u.a)/2)-e,u.c<=o-e&&kG(n,i++,new kB(u.c,c)),(a=o+e)<=u.a&&(r=new kB(a,u.a),LZ(i,n.c.length),MS(n.c,i,r)))}function bOn(n){var t;if(n.c||null!=n.g){if(null==n.g)return!0;if(0==n.i)return!1;t=BB(n.g[n.i-1],47)}else n.d=n.si(n.f),f9(n,n.d),t=n.d;return t==n.b&&null.km>=null.jm()?(aLn(n),bOn(n)):t.Ob()}function wOn(n,t,e){var i,r,c,a;if(!(a=e)&&(a=LH(new Xm,0)),OTn(a,qZn,1),$Gn(n.c,t),1==(c=RGn(n.a,t)).gc())VHn(BB(c.Xb(0),37),a);else for(r=1/c.gc(),i=c.Kc();i.Ob();)VHn(BB(i.Pb(),37),mcn(a,r));Ek(n.a,c,t),FDn(t),HSn(a)}function dOn(n){if(this.a=n,n.c.i.k==(uSn(),Mut))this.c=n.c,this.d=BB(mMn(n.c.i,(hWn(),Qft)),61);else{if(n.d.i.k!=Mut)throw Hp(new _y("Edge "+n+" is not an external edge."));this.c=n.d,this.d=BB(mMn(n.d.i,(hWn(),Qft)),61)}}function gOn(n,t){var e,i,r;r=n.b,n.b=t,0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,3,r,n.b)),t?t!=n&&(Nrn(n,t.zb),$en(n,t.d),Fin(n,null==(e=null==(i=t.c)?t.zb:i)||mK(e,t.zb)?null:e)):(Nrn(n,null),$en(n,0),Fin(n,null))}function pOn(n){var t,e;if(n.f){for(;n.n<n.o;){if(cL(e=(t=BB(n.j?n.j.pi(n.n):n.k.Xb(n.n),72)).ak(),99)&&0!=(BB(e,18).Bb&h6n)&&(!n.e||e.Gj()!=NOt||0!=e.aj())&&null!=t.dd())return!0;++n.n}return!1}return n.n<n.o}function vOn(n,t){var e;this.e=(WX(),yX(n),WX(),Nwn(n)),this.c=(yX(t),Nwn(t)),aN(this.e.Hd().dc()==this.c.Hd().dc()),this.d=vbn(this.e),this.b=vbn(this.c),e=kq(Ant,[sVn,HWn],[5,1],5,[this.e.Hd().gc(),this.c.Hd().gc()],2),this.a=e,din(this)}function mOn(n){var t=(!Znt&&(Znt=QUn()),Znt);return'"'+n.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,(function(n){return IJ(n,t)}))+'"'}function yOn(n){var t,e;for(CQ(),this.b=hit,this.c=lit,this.g=(pM(),sit),this.d=(Ffn(),BPt),this.a=n,yNn(this),e=new Wb(n.b);e.a<e.c.c.length;)!(t=BB(n0(e),57)).a&&IN(Xen(new Xv,Pun(Gk(bit,1),HWn,57,0,[t])),n),t.e=new gY(t.d)}function kOn(n){var t,e,i,r,c;for(r=n.e.c.length,i=x8(Rnt,nZn,15,r,0,1),c=new Wb(n.e);c.a<c.c.c.length;)i[BB(n0(c),144).b]=new YT;for(e=new Wb(n.c);e.a<e.c.c.length;)i[(t=BB(n0(e),282)).c.b].Fc(t),i[t.d.b].Fc(t);return i}function jOn(n){var t,e,i,r,c,a;for(a=sx(n.c.length),r=new Wb(n);r.a<r.c.c.length;){for(i=BB(n0(r),10),c=new Rv,e=new oz(ZL(lbn(i).a.Kc(),new h));dAn(e);)(t=BB(U5(e),17)).c.i==t.d.i||TU(c,t.d.i);a.c[a.c.length]=c}return a}function EOn(n,t){var e,i,r,c,a;if(t>=(a=null==(e=BB(yan(n.a,4),126))?0:e.length))throw Hp(new tK(t,a));return r=e[t],1==a?i=null:(aHn(e,0,i=x8(dAt,i9n,415,a-1,0,1),0,t),(c=a-t-1)>0&&aHn(e,t+1,i,t,c)),Fgn(n,i),eCn(n,t,r),r}function TOn(){TOn=O,lLt=BB(Wtn(QQ((cE(),gLt).qb),6),34),sLt=BB(Wtn(QQ(gLt.qb),3),34),hLt=BB(Wtn(QQ(gLt.qb),4),34),fLt=BB(Wtn(QQ(gLt.qb),5),18),oEn(lLt),oEn(sLt),oEn(hLt),oEn(fLt),bLt=new Jy(Pun(Gk(FAt,1),N9n,170,0,[lLt,sLt]))}function MOn(n,t){var e;this.d=new lm,this.b=t,this.e=new wA(t.qf()),e=n.u.Hc((lIn(),iIt)),n.u.Hc(eIt)?n.D?this.a=e&&!t.If():this.a=!0:n.u.Hc(rIt)?this.a=!!e&&!(t.zf().Kc().Ob()||t.Bf().Kc().Ob()):this.a=!1}function SOn(n,t){var e,i,r,c;for(e=n.o.a,c=BB(BB(h6(n.r,t),21),84).Kc();c.Ob();)(r=BB(c.Pb(),111)).e.a=(i=r.b).Xe((sWn(),aPt))?i.Hf()==(kUn(),CIt)?-i.rf().a-Gy(MD(i.We(aPt))):e+Gy(MD(i.We(aPt))):i.Hf()==(kUn(),CIt)?-i.rf().a:e}function POn(n,t){var e,i,r;e=BB(mMn(n,(HXn(),Udt)),103),r=BB(ZAn(t,upt),61),(i=BB(mMn(n,ept),98))!=(QEn(),QCt)&&i!=YCt?r==(kUn(),PIt)&&(r=OFn(t,e))==PIt&&(r=hwn(e)):r=XHn(t)>0?hwn(e):Tln(hwn(e)),Ypn(t,upt,r)}function COn(n,t){var e,i,r,c,a;for(a=n.j,t.a!=t.b&&m$(a,new Ur),r=a.c.length/2|0,i=0;i<r;i++)l1(i,a.c.length),(c=BB(a.c[i],113)).c&&qCn(c.d,t.a);for(e=r;e<a.c.length;e++)l1(e,a.c.length),(c=BB(a.c[e],113)).c&&qCn(c.d,t.b)}function IOn(n,t,e){var i,r,c;return i=n.c[t.c.p][t.p],r=n.c[e.c.p][e.p],null!=i.a&&null!=r.a?((c=Tz(i.a,r.a))<0?uKn(n,t,e):c>0&&uKn(n,e,t),c):null!=i.a?(uKn(n,t,e),-1):null!=r.a?(uKn(n,e,t),1):0}function OOn(n,t){var e,i,r,c;n.ej()?(e=n.Vi(),c=n.fj(),++n.j,n.Hi(e,n.oi(e,t)),i=n.Zi(3,null,t,e,c),n.bj()&&(r=n.cj(t,null))?(r.Ei(i),r.Fi()):n.$i(i)):(eW(n,t),n.bj()&&(r=n.cj(t,null))&&r.Fi())}function AOn(n,t){var e,i,r,c,a;for(a=axn(n.e.Tg(),t),r=new go,e=BB(n.g,119),c=n.i;--c>=0;)i=e[c],a.rl(i.ak())&&f9(r,i);!aXn(n,r)&&mA(n.e)&&Lv(n,t.$j()?LY(n,6,t,(SQ(),set),null,-1,!1):LY(n,t.Kj()?2:1,t,null,null,-1,!1))}function $On(){var n,t;for($On=O,aet=x8(oet,sVn,91,32,0,1),uet=x8(oet,sVn,91,32,0,1),n=1,t=0;t<=18;t++)aet[t]=npn(n),uet[t]=npn(yz(n,t)),n=cbn(n,5);for(;t<uet.length;t++)aet[t]=Nnn(aet[t-1],aet[1]),uet[t]=Nnn(uet[t-1],(ODn(),net))}function LOn(n,t){var e,i,r,c;return n.a==(JMn(),cft)||(r=t.a.c,e=t.a.c+t.a.b,!(t.j&&(c=(i=t.A).c.c.a-i.o.a/2,r-(i.n.a+i.o.a)>c)||t.q&&(c=(i=t.C).c.c.a-i.o.a/2,i.n.a-e>c)))}function NOn(n,t){OTn(t,"Partition preprocessing",1),JT(BB(P4(AV(wnn(AV(new Rq(null,new w1(n.a,16)),new vi),new mi),new yi),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15).Oc(),new ki),HSn(t)}function xOn(n){var t,e,i,r,c,a;for(qZ(),e=new v4,i=new Wb(n.e.b);i.a<i.c.c.length;)for(c=new Wb(BB(n0(i),29).a);c.a<c.c.c.length;)r=BB(n0(c),10),(t=BB(lnn(e,a=n.g[r.p]),15))||Jgn(e,a,t=new Np),t.Fc(r);return e}function DOn(n,t){var e,i,r,c,a;for(r=t.b.b,n.a=x8(Rnt,nZn,15,r,0,1),n.b=x8($Nt,ZYn,25,r,16,1),a=spn(t.b,0);a.b!=a.d.c;)c=BB(b3(a),86),n.a[c.g]=new YT;for(i=spn(t.a,0);i.b!=i.d.c;)e=BB(b3(i),188),n.a[e.b.g].Fc(e),n.a[e.c.g].Fc(e)}function ROn(n){var t;return 0!=(64&n.Db)?P$n(n):((t=new fN(P$n(n))).a+=" (startX: ",vE(t,n.j),t.a+=", startY: ",vE(t,n.k),t.a+=", endX: ",vE(t,n.b),t.a+=", endY: ",vE(t,n.c),t.a+=", identifier: ",cO(t,n.d),t.a+=")",t.a)}function KOn(n){var t;return 0!=(64&n.Db)?kfn(n):((t=new fN(kfn(n))).a+=" (ordered: ",yE(t,0!=(256&n.Bb)),t.a+=", unique: ",yE(t,0!=(512&n.Bb)),t.a+=", lowerBound: ",mE(t,n.s),t.a+=", upperBound: ",mE(t,n.t),t.a+=")",t.a)}function _On(n,t,e,i,r,c,a,u){var o;return cL(n.Cb,88)&&ACn(P5(BB(n.Cb,88)),4),Nrn(n,e),n.f=i,$ln(n,r),Nln(n,c),Aln(n,a),Lln(n,!1),nln(n,!0),qln(n,u),Yfn(n,!0),Len(n,0),n.b=0,Nen(n,1),(o=HTn(n,t,null))&&o.Fi(),Gln(n,!1),n}function FOn(n,t){var i,r;return BB(SJ(n.a,t),512)||(i=new y5(t),k5(),xK(i,FOn(n,fx(r=Qet?null:i.c,0,e.Math.max(0,mN(r,YTn(46)))))),0==(Qet?null:i.c).length&&zD(i,new X),mZ(n.a,Qet?null:i.c,i),i)}function BOn(n,t){var e;n.b=t,n.g=new Np,e=JOn(n.b),n.e=e,n.f=e,n.c=qy(TD(mMn(n.b,(_kn(),jit)))),n.a=MD(mMn(n.b,(sWn(),cSt))),null==n.a&&(n.a=1),Gy(n.a)>1?n.e*=Gy(n.a):n.f/=Gy(n.a),Chn(n),ggn(n),TRn(n),hon(n.b,(Epn(),gct),n.g)}function HOn(n,t,e){var i,r,c,a,u;for(i=0,u=e,t||(i=e*(n.c.length-1),u*=-1),c=new Wb(n);c.a<c.c.c.length;){for(hon(r=BB(n0(c),10),(HXn(),kdt),(wvn(),OMt)),r.o.a=i,a=DSn(r,(kUn(),oIt)).Kc();a.Ob();)BB(a.Pb(),11).n.a=i;i+=u}}function qOn(n,t,e){var i,r,c;n.ej()?(c=n.fj(),Ifn(n,t,e),i=n.Zi(3,null,e,t,c),n.bj()?(r=n.cj(e,null),n.ij()&&(r=n.jj(e,r)),r?(r.Ei(i),r.Fi()):n.$i(i)):n.$i(i)):(Ifn(n,t,e),n.bj()&&(r=n.cj(e,null))&&r.Fi())}function GOn(n,t,e){var i,r,c,a,u,o;return(u=n.Gk(e))!=e?(a=n.g[t],o=u,jL(n,t,n.oi(t,o)),c=a,n.gi(t,o,c),n.rk()&&(i=e,r=n.dj(i,null),!BB(u,49).eh()&&(r=n.cj(o,r)),r&&r.Fi()),mA(n.e)&&Lv(n,n.Zi(9,e,u,t,!1)),u):e}function zOn(n,t){var e,i,r;for(e=new Wb(n.a.a);e.a<e.c.c.length;)BB(n0(e),189).g=!0;for(r=new Wb(n.a.b);r.a<r.c.c.length;)(i=BB(n0(r),81)).k=qy(TD(n.e.Kb(new rI(i,t)))),i.d.g=i.d.g&qy(TD(n.e.Kb(new rI(i,t))));return n}function UOn(n){var t,e,i,r,c;if(e=new YK(t=BB(Vj(FIt),9),BB(SR(t,t.length),9),0),c=BB(mMn(n,(hWn(),Elt)),10))for(r=new Wb(c.j);r.a<r.c.c.length;)GI(mMn(i=BB(n0(r),11),dlt))===GI(n)&&zN(new m6(i.b))&&orn(e,i.j);return e}function XOn(n,t,e){var i,r,c,a;if(!n.d[e.p]){for(i=new oz(ZL(lbn(e).a.Kc(),new h));dAn(i);){for(c=new oz(ZL(fbn(a=BB(U5(i),17).d.i).a.Kc(),new h));dAn(c);)(r=BB(U5(c),17)).c.i==t&&(n.a[r.p]=!0);XOn(n,t,a)}n.d[e.p]=!0}}function WOn(n,t){var e,i,r,c,a,u,o;if(1==(i=pbn(254&n.Db)))n.Eb=null;else if(c=een(n.Eb),2==i)r=Rmn(n,t),n.Eb=c[0==r?1:0];else{for(a=x8(Ant,HWn,1,i-1,5,1),e=2,u=0,o=0;e<=128;e<<=1)e==t?++u:0!=(n.Db&e)&&(a[o++]=c[u++]);n.Eb=a}n.Db&=~t}function VOn(n,t){var e,i,r,c,a;for(!t.s&&(t.s=new eU(FAt,t,21,17)),c=null,r=0,a=(i=t.s).i;r<a;++r)switch(DW(B7(n,e=BB(Wtn(i,r),170)))){case 4:case 5:case 6:!c&&(c=new Np),c.c[c.c.length]=e}return c||(SQ(),SQ(),set)}function QOn(n){var t;switch(t=0,n){case 105:t=2;break;case 109:t=8;break;case 115:t=4;break;case 120:t=16;break;case 117:t=32;break;case 119:t=64;break;case 70:t=256;break;case 72:t=128;break;case 88:t=512;break;case 44:t=k6n}return t}function YOn(n,t,e,i,r){var c,a,u,o;if(GI(n)!==GI(t)||i!=r)for(u=0;u<i;u++){for(a=0,c=n[u],o=0;o<r;o++)a=rbn(rbn(cbn(e0(c,UQn),e0(t[o],UQn)),e0(e[u+o],UQn)),e0(dG(a),UQn)),e[u+o]=dG(a),a=jz(a,32);e[u+r]=dG(a)}else I_n(n,i,e)}function JOn(n){var t,i,r,c,a,u,o,s,h,f,l;for(f=0,h=0,o=(c=n.a).a.gc(),r=c.a.ec().Kc();r.Ob();)(i=BB(r.Pb(),561)).b&&VBn(i),f+=(l=(t=i.a).a)+(u=t.b),h+=l*u;return s=e.Math.sqrt(400*o*h-4*h+f*f)+f,0==(a=2*(100*o-1))?s:s/a}function ZOn(n,t){0!=t.b&&(isNaN(n.s)?n.s=Gy((Px(0!=t.b),MD(t.a.a.c))):n.s=e.Math.min(n.s,Gy((Px(0!=t.b),MD(t.a.a.c)))),isNaN(n.c)?n.c=Gy((Px(0!=t.b),MD(t.c.b.c))):n.c=e.Math.max(n.c,Gy((Px(0!=t.b),MD(t.c.b.c)))))}function nAn(n){var t,e,i;for(t=null,e=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c)])));dAn(e);)if(i=PTn(BB(U5(e),82)),t){if(t!=JJ(i))return!0}else t=JJ(i);return!1}function tAn(n,t){var e,i,r,c;n.ej()?(e=n.i,c=n.fj(),c6(n,t),i=n.Zi(3,null,t,e,c),n.bj()?(r=n.cj(t,null),n.ij()&&(r=n.jj(t,r)),r?(r.Ei(i),r.Fi()):n.$i(i)):n.$i(i)):(c6(n,t),n.bj()&&(r=n.cj(t,null))&&r.Fi())}function eAn(n,t,e){var i,r,c;n.ej()?(c=n.fj(),++n.j,n.Hi(t,n.oi(t,e)),i=n.Zi(3,null,e,t,c),n.bj()&&(r=n.cj(e,null))?(r.Ei(i),r.Fi()):n.$i(i)):(++n.j,n.Hi(t,n.oi(t,e)),n.bj()&&(r=n.cj(e,null))&&r.Fi())}function iAn(n){var t,e,i,r;for(r=n.length,t=null,i=0;i<r;i++)b1(i,n.length),GO(".*+?{[()|\\^$",YTn(e=n.charCodeAt(i)))>=0?(t||(t=new Pk,i>0&&cO(t,n.substr(0,i))),t.a+="\\",NX(t,e&QVn)):t&&NX(t,e&QVn);return t?t.a:n}function rAn(n){var t;if(!n.a)throw Hp(new Fy("IDataType class expected for layout option "+n.f));if(null==(t=I3(n.a)))throw Hp(new Fy("Couldn't create new instance of property '"+n.f+"'. "+r5n+(ED(bAt),bAt.k)+c5n));return BB(t,414)}function cAn(n){var t,e,i,r,c;return(c=n.eh())&&c.kh()&&(r=tfn(n,c))!=c?(e=n.Vg(),i=(t=n.Vg())>=0?n.Qg(null):n.eh().ih(n,-1-t,null,null),n.Rg(BB(r,49),e),i&&i.Fi(),n.Lg()&&n.Mg()&&e>-1&&ban(n,new nU(n,9,e,c,r)),r):c}function aAn(n){var t,e,i,r,c,a,u;for(c=0,r=n.f.e,e=0;e<r.c.length;++e)for(l1(e,r.c.length),a=BB(r.c[e],144),i=e+1;i<r.c.length;++i)l1(i,r.c.length),u=BB(r.c[i],144),t=W8(a.d,u.d)-n.a[a.b][u.b],c+=n.i[a.b][u.b]*t*t;return c}function uAn(n,t){var e;if(!Lx(t,(HXn(),kgt))&&(e=Ekn(BB(mMn(t,est),360),BB(mMn(n,kgt),163)),hon(t,est,e),!dAn(new oz(ZL(hbn(t).a.Kc(),new h)))))switch(e.g){case 1:hon(t,kgt,(Tbn(),_lt));break;case 2:hon(t,kgt,(Tbn(),Blt))}}function oAn(n,t){var e;mRn(n),n.a=(e=new ok,JT(new Rq(null,new w1(t.d,16)),new Od(e)),e),Mxn(n,BB(mMn(t.b,(HXn(),igt)),376)),kvn(n),OAn(n),$kn(n),jvn(n),jqn(n,t),JT(wnn(new Rq(null,Y0(SX(n.b).a)),new Wr),new Vr),t.a=!1,n.a=null}function sAn(){dMn.call(this,y6n,(tE(),dOt)),this.p=null,this.a=null,this.f=null,this.n=null,this.g=null,this.c=null,this.i=null,this.j=null,this.d=null,this.b=null,this.e=null,this.k=null,this.o=null,this.s=null,this.q=!1,this.r=!1}function hAn(){hAn=O,iAt=new MI(G1n,0),nAt=new MI("INSIDE_SELF_LOOPS",1),tAt=new MI("MULTI_EDGES",2),ZOt=new MI("EDGE_LABELS",3),eAt=new MI("PORTS",4),YOt=new MI("COMPOUND",5),QOt=new MI("CLUSTERS",6),JOt=new MI("DISCONNECTED",7)}function fAn(n,t){var e,i,r;if(0==t)return 0!=(1&n.a[0]);if(t<0)throw Hp(new Oy("Negative bit address"));if((r=t>>5)>=n.d)return n.e<0;if(e=n.a[r],t=1<<(31&t),n.e<0){if(r<(i=Ccn(n)))return!1;e=i==r?-e:~e}return 0!=(e&t)}function lAn(n,t,e,i){var r;BB(e.b,65),BB(e.b,65),BB(i.b,65),BB(i.b,65),NH(r=XR(B$(BB(e.b,65).c),BB(i.b,65).c),HCn(BB(e.b,65),BB(i.b,65),r)),BB(i.b,65),BB(i.b,65),BB(i.b,65).c.a,r.a,BB(i.b,65).c.b,r.b,BB(i.b,65),Otn(i.a,new TB(n,t,i))}function bAn(n,t){var e,i,r,c,a,u,o;if(c=t.e)for(e=cAn(c),i=BB(n.g,674),a=0;a<n.i;++a)if(qvn(o=i[a])==e&&(!o.d&&(o.d=new $L(VAt,o,1)),r=o.d,(u=BB(e.ah(gKn(c,c.Cb,c.Db>>16)),15).Xc(c))<r.i))return bAn(n,BB(Wtn(r,u),87));return t}function wAn(n,t,e){var i,r=SWn,c=r[n],a=c instanceof Array?c[0]:null;c&&!a?MWn=c:(!(i=t&&t.prototype)&&(i=SWn[t]),(MWn=qJ(i)).hm=e,!t&&(MWn.im=I),r[n]=MWn);for(var u=3;u<arguments.length;++u)arguments[u].prototype=MWn;a&&(MWn.gm=a)}function dAn(n){for(var t;!BB(yX(n.a),47).Ob();){if(n.d=osn(n),!n.d)return!1;if(n.a=BB(n.d.Pb(),47),cL(n.a,39)){if(t=BB(n.a,39),n.a=t.a,!n.b&&(n.b=new Lp),d3(n.b,n.d),t.b)for(;!Wy(t.b);)d3(n.b,BB(gU(t.b),47));n.d=t.d}}return!0}function gAn(n,t){var e,i,r,c,a;for(c=null==t?0:n.b.se(t),i=null==(e=n.a.get(c))?new Array:e,a=0;a<i.length;a++)if(r=i[a],n.b.re(t,r.cd()))return 1==i.length?(i.length=0,vR(n.a,c)):i.splice(a,1),--n.c,oY(n.b),r.dd();return null}function pAn(n,t){var e,i,r,c;for(r=1,t.j=!0,c=null,i=new Wb(kbn(t));i.a<i.c.c.length;)e=BB(n0(i),213),n.c[e.c]||(n.c[e.c]=!0,c=Nbn(e,t),e.f?r+=pAn(n,c):c.j||e.a!=e.e.e-e.d.e||(e.f=!0,TU(n.p,e),r+=pAn(n,c)));return r}function vAn(n){var t,i,r;for(i=new Wb(n.a.a.b);i.a<i.c.c.length;)t=BB(n0(i),81),kW(0),(r=0)>0&&((!dA(n.a.c)||!t.n.d)&&(!gA(n.a.c)||!t.n.b)&&(t.g.d+=e.Math.max(0,r/2-.5)),(!dA(n.a.c)||!t.n.a)&&(!gA(n.a.c)||!t.n.c)&&(t.g.a-=r-1))}function mAn(n){var t,i,r,c,a;if(a=K_n(n,c=new Np),t=BB(mMn(n,(hWn(),Elt)),10))for(r=new Wb(t.j);r.a<r.c.c.length;)GI(mMn(i=BB(n0(r),11),dlt))===GI(n)&&(a=e.Math.max(a,K_n(i,c)));return 0==c.c.length||hon(n,blt,a),-1!=a?c:null}function yAn(n,t,e){var i,r,c,a,u,o;r=(i=(c=BB(xq(t.e,0),17).c).i).k,u=(a=(o=BB(xq(e.g,0),17).d).i).k,r==(uSn(),Put)?hon(n,(hWn(),hlt),BB(mMn(i,hlt),11)):hon(n,(hWn(),hlt),c),hon(n,(hWn(),flt),u==Put?BB(mMn(a,flt),11):o)}function kAn(n,t){var e,i,r,c;for(e=(c=dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15))))&n.b.length-1,r=null,i=n.b[e];i;r=i,i=i.a)if(i.d==c&&wW(i.i,t))return r?r.a=i.a:n.b[e]=i.a,kk(i.c,i.f),iv(i.b,i.e),--n.f,++n.e,!0;return!1}function jAn(n,t){var e,i,r,c,a;return t&=63,(i=0!=((e=n.h)&CQn))&&(e|=-1048576),t<22?(a=e>>t,c=n.m>>t|e<<22-t,r=n.l>>t|n.m<<22-t):t<44?(a=i?PQn:0,c=e>>t-22,r=n.m>>t-22|e<<44-t):(a=i?PQn:0,c=i?SQn:0,r=e>>t-44),M$(r&SQn,c&SQn,a&PQn)}function EAn(n){var t,i,r,c,a,u;for(this.c=new Np,this.d=n,r=RQn,c=RQn,t=KQn,i=KQn,u=spn(n,0);u.b!=u.d.c;)a=BB(b3(u),8),r=e.Math.min(r,a.a),c=e.Math.min(c,a.b),t=e.Math.max(t,a.a),i=e.Math.max(i,a.b);this.a=new UV(r,c,t-r,i-c)}function TAn(n,t){var e,i,r,c;for(i=new Wb(n.b);i.a<i.c.c.length;)for(c=new Wb(BB(n0(i),29).a);c.a<c.c.c.length;)for((r=BB(n0(c),10)).k==(uSn(),Sut)&&hFn(r,t),e=new oz(ZL(lbn(r).a.Kc(),new h));dAn(e);)vun(BB(U5(e),17),t)}function MAn(n){var t,e,i;this.c=n,i=BB(mMn(n,(HXn(),Udt)),103),t=Gy(MD(mMn(n,Edt))),e=Gy(MD(mMn(n,Kpt))),i==(Ffn(),_Pt)||i==FPt||i==BPt?this.b=t*e:this.b=1/(t*e),this.j=Gy(MD(mMn(n,Apt))),this.e=Gy(MD(mMn(n,Opt))),this.f=n.b.c.length}function SAn(n){var t,e;for(n.e=x8(ANt,hQn,25,n.p.c.length,15,1),n.k=x8(ANt,hQn,25,n.p.c.length,15,1),e=new Wb(n.p);e.a<e.c.c.length;)t=BB(n0(e),10),n.e[t.p]=F3(new oz(ZL(fbn(t).a.Kc(),new h))),n.k[t.p]=F3(new oz(ZL(lbn(t).a.Kc(),new h)))}function PAn(n){var t,e,i,r,c;for(i=0,n.q=new Np,t=new Rv,c=new Wb(n.p);c.a<c.c.c.length;){for((r=BB(n0(c),10)).p=i,e=new oz(ZL(lbn(r).a.Kc(),new h));dAn(e);)TU(t,BB(U5(e),17).d.i);t.a.Bc(r),WB(n.q,new $q(t)),t.a.$b(),++i}}function CAn(){CAn=O,Okt=new WA(20),Ikt=new XA((sWn(),XSt),Okt),xkt=new XA(LPt,20),jkt=new XA(cSt,dZn),$kt=new XA(pPt,iln(1)),Nkt=new XA(kPt,(hN(),!0)),Ekt=lSt,Mkt=KSt,Skt=BSt,Pkt=qSt,Tkt=DSt,Ckt=USt,Akt=fPt,Ran(),Dkt=ykt,Lkt=vkt}function IAn(n,t){var e,i,r,c,a,u,o,s,h;if(n.a.f>0&&cL(t,42)&&(n.a.qj(),c=null==(o=(s=BB(t,42)).cd())?0:nsn(o),a=eR(n.a,c),e=n.a.d[a]))for(i=BB(e.g,367),h=e.i,u=0;u<h;++u)if((r=i[u]).Sh()==c&&r.Fb(s))return IAn(n,s),!0;return!1}function OAn(n){var t,e,i,r;for(r=BB(h6(n.a,(LEn(),Sst)),15).Kc();r.Ob();)iX(n,i=BB(r.Pb(),101),(e=(t=gz(i.k)).Hc((kUn(),sIt))?t.Hc(oIt)?t.Hc(SIt)?t.Hc(CIt)?null:$st:Nst:Lst:Ast)[0],(Crn(),xst),0),iX(n,i,e[1],Dst,1),iX(n,i,e[2],Rst,1)}function AAn(n,t){var e,i;Jxn(n,t,e=mKn(t)),iTn(n.a,BB(mMn(vW(t.b),(hWn(),Slt)),230)),b_n(n),DEn(n,t),i=x8(ANt,hQn,25,t.b.j.c.length,15,1),szn(n,t,(kUn(),sIt),i,e),szn(n,t,oIt,i,e),szn(n,t,SIt,i,e),szn(n,t,CIt,i,e),n.a=null,n.c=null,n.b=null}function $An(){$An=O,Sbn(),oEt=new $O(E4n,sEt=nEt),aEt=new $O(T4n,(hN(),!0)),iln(-1),iEt=new $O(M4n,iln(-1)),iln(-1),rEt=new $O(S4n,iln(-1)),uEt=new $O(P4n,!1),hEt=new $O(C4n,!0),cEt=new $O(I4n,!1),fEt=new $O(O4n,-1)}function LAn(n,t,e){switch(t){case 7:return!n.e&&(n.e=new hK(_Ot,n,7,4)),sqn(n.e),!n.e&&(n.e=new hK(_Ot,n,7,4)),void pX(n.e,BB(e,14));case 8:return!n.d&&(n.d=new hK(_Ot,n,8,5)),sqn(n.d),!n.d&&(n.d=new hK(_Ot,n,8,5)),void pX(n.d,BB(e,14))}zjn(n,t,e)}function NAn(n,t){var e,i,r,c,a;if(GI(t)===GI(n))return!0;if(!cL(t,15))return!1;if(a=BB(t,15),n.gc()!=a.gc())return!1;for(c=a.Kc(),i=n.Kc();i.Ob();)if(e=i.Pb(),r=c.Pb(),!(GI(e)===GI(r)||null!=e&&Nfn(e,r)))return!1;return!0}function xAn(n,t){var e,i,r,c;for((c=BB(P4(wnn(wnn(new Rq(null,new w1(t.b,16)),new Re),new Ke),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15)).Jc(new _e),e=0,r=c.Kc();r.Ob();)-1==(i=BB(r.Pb(),11)).p&&FAn(n,i,e++)}function DAn(n){switch(n.g){case 0:return new Cf;case 1:return new lf;case 2:return new ff;case 3:return new jI;case 4:return new _G;default:throw Hp(new _y("No implementation is available for the node placer "+(null!=n.f?n.f:""+n.g)))}}function RAn(n){switch(n.g){case 0:return new KG;case 1:return new wf;case 2:return new rf;case 3:return new cf;case 4:return new TI;default:throw Hp(new _y("No implementation is available for the cycle breaker "+(null!=n.f?n.f:""+n.g)))}}function KAn(){KAn=O,mjt=new $O(u4n,iln(0)),yjt=new $O(o4n,0),Hsn(),djt=new $O(s4n,gjt=sjt),iln(0),wjt=new $O(h4n,iln(1)),Bcn(),kjt=new $O(f4n,jjt=Xjt),D9(),Ejt=new $O(l4n,Tjt=ajt),Omn(),pjt=new $O(b4n,vjt=qjt)}function _An(n,t,e){var i;i=null,t&&(i=t.d),Yjn(n,new dP(t.n.a-i.b+e.a,t.n.b-i.d+e.b)),Yjn(n,new dP(t.n.a-i.b+e.a,t.n.b+t.o.b+i.a+e.b)),Yjn(n,new dP(t.n.a+t.o.a+i.c+e.a,t.n.b-i.d+e.b)),Yjn(n,new dP(t.n.a+t.o.a+i.c+e.a,t.n.b+t.o.b+i.a+e.b))}function FAn(n,t,e){var i,r,c;for(t.p=e,c=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(t),new Gw(t)])));dAn(c);)-1==(i=BB(U5(c),11)).p&&FAn(n,i,e);if(t.i.k==(uSn(),Put))for(r=new Wb(t.i.j);r.a<r.c.c.length;)(i=BB(n0(r),11))!=t&&-1==i.p&&FAn(n,i,e)}function BAn(n){var t,i,r,c,a;if(c=BB(P4($Z(a1(n)),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15),r=ZJn,c.gc()>=2)for(t=MD((i=c.Kc()).Pb());i.Ob();)a=t,t=MD(i.Pb()),r=e.Math.min(r,(kW(t),t-(kW(a),a)));return r}function HAn(n,t){var e,i,r,c,a;r5(i=new YT,t,i.c.b,i.c);do{for(Px(0!=i.b),e=BB(Atn(i,i.a.a),86),n.b[e.g]=1,c=spn(e.d,0);c.b!=c.d.c;)a=(r=BB(b3(c),188)).c,1==n.b[a.g]?DH(n.a,r):2==n.b[a.g]?n.b[a.g]=1:r5(i,a,i.c.b,i.c)}while(0!=i.b)}function qAn(n,t){var e,i,r;if(GI(t)===GI(yX(n)))return!0;if(!cL(t,15))return!1;if(i=BB(t,15),(r=n.gc())!=i.gc())return!1;if(cL(i,54)){for(e=0;e<r;e++)if(!wW(n.Xb(e),i.Xb(e)))return!1;return!0}return Uvn(n.Kc(),i.Kc())}function GAn(n,t){var e;if(0!=n.c.length){if(2==n.c.length)hFn((l1(0,n.c.length),BB(n.c[0],10)),(Xyn(),jCt)),hFn((l1(1,n.c.length),BB(n.c[1],10)),ECt);else for(e=new Wb(n);e.a<e.c.c.length;)hFn(BB(n0(e),10),t);n.c=x8(Ant,HWn,1,0,5,1)}}function zAn(n){var t,e;if(2!=n.c.length)throw Hp(new Fy("Order only allowed for two paths."));l1(0,n.c.length),t=BB(n.c[0],17),l1(1,n.c.length),e=BB(n.c[1],17),t.d.i!=e.c.i&&(n.c=x8(Ant,HWn,1,0,5,1),n.c[n.c.length]=e,n.c[n.c.length]=t)}function UAn(n,t){var e,i,r,c,a;for(i=new v4,c=S4(new Jy(n.g)).a.ec().Kc();c.Ob();){if(!(r=BB(c.Pb(),10))){OH(t,"There are no classes in a balanced layout.");break}(e=BB(lnn(i,a=n.j[r.p]),15))||Jgn(i,a,e=new Np),e.Fc(r)}return i}function XAn(n,t,e){var i,r,c,a;if(e)for(r=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);r.Ob();)(c=x2(e,BB(r.Pb(),19).a))&&(a=Ken(R2(c,O6n),t),VW(n.f,a,c),q6n in c.a&&$in(a,R2(c,q6n)),STn(c,a),OCn(c,a))}function WAn(n,t){var e,i,r;for(OTn(t,"Port side processing",1),r=new Wb(n.a);r.a<r.c.c.length;)cBn(BB(n0(r),10));for(e=new Wb(n.b);e.a<e.c.c.length;)for(i=new Wb(BB(n0(e),29).a);i.a<i.c.c.length;)cBn(BB(n0(i),10));HSn(t)}function VAn(n,t,e){var i,r,c,a,u;if(!(r=n.f)&&(r=BB(n.a.a.ec().Kc().Pb(),57)),Fkn(r,t,e),1!=n.a.a.gc())for(i=t*e,a=n.a.a.ec().Kc();a.Ob();)(c=BB(a.Pb(),57))!=r&&((u=f3(c)).f.d?(c.d.d+=i+fJn,c.d.a-=i+fJn):u.f.a&&(c.d.a-=i+fJn))}function QAn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w;return u=i-n,o=r-t,s=(a=e.Math.atan2(u,o))+JJn,h=a-JJn,f=c*e.Math.sin(s)+n,b=c*e.Math.cos(s)+t,l=c*e.Math.sin(h)+n,w=c*e.Math.cos(h)+t,u6(Pun(Gk(PMt,1),sVn,8,0,[new xC(f,b),new xC(l,w)]))}function YAn(n,t,i,r){var c,a,u,o,s,h,f,l;c=i,a=f=t;do{a=n.a[a.p],l=n.g[a.p],o=Gy(n.p[l.p])+Gy(n.d[a.p])-a.d.d,(s=Ain(a,r))&&(h=n.g[s.p],u=Gy(n.p[h.p])+Gy(n.d[s.p])+s.o.b+s.d.a,c=e.Math.min(c,o-(u+K$(n.k,a,s))))}while(f!=a);return c}function JAn(n,t,i,r){var c,a,u,o,s,h,f,l;c=i,a=f=t;do{a=n.a[a.p],l=n.g[a.p],u=Gy(n.p[l.p])+Gy(n.d[a.p])+a.o.b+a.d.a,(s=_un(a,r))&&(h=n.g[s.p],o=Gy(n.p[h.p])+Gy(n.d[s.p])-s.d.d,c=e.Math.min(c,o-(u+K$(n.k,a,s))))}while(f!=a);return c}function ZAn(n,t){var e,i;return!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),null!=(i=cdn(n.o,t))?i:(cL(e=t.wg(),4)&&(null==e?(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),Wdn(n.o,t)):(!n.o&&(n.o=new y9((CXn(),MOt),rAt,n,0)),vjn(n.o,t,e))),e)}function n$n(){n$n=O,ICt=new GC("H_LEFT",0),CCt=new GC("H_CENTER",1),ACt=new GC("H_RIGHT",2),DCt=new GC("V_TOP",3),xCt=new GC("V_CENTER",4),NCt=new GC("V_BOTTOM",5),$Ct=new GC("INSIDE",6),LCt=new GC("OUTSIDE",7),OCt=new GC("H_PRIORITY",8)}function t$n(n){var t,e,i,r,c,a,u;if((t=n.Hh(V9n))&&null!=(u=SD(cdn((!t.b&&(t.b=new Jx((gWn(),k$t),X$t,t)),t.b),"settingDelegates")))){for(e=new Np,c=0,a=(r=kKn(u,"\\w+")).length;c<a;++c)i=r[c],e.c[e.c.length]=i;return e}return SQ(),SQ(),set}function e$n(n,t){var e,i,r,c,a,u,o;if(!t.f)throw Hp(new _y("The input edge is not a tree edge."));for(c=null,r=DWn,i=new Wb(n.d);i.a<i.c.c.length;)u=(e=BB(n0(i),213)).d,o=e.e,FCn(n,u,t)&&!FCn(n,o,t)&&(a=o.e-u.e-e.a)<r&&(r=a,c=e);return c}function i$n(n){var t,e,i,r,c,a;if(!(n.f.e.c.length<=1)){t=0,r=aAn(n),e=RQn;do{for(t>0&&(r=e),a=new Wb(n.f.e);a.a<a.c.c.length;)qy(TD(mMn(c=BB(n0(a),144),(rkn(),yat))))||(i=Z_n(n,c),UR(kO(c.d),i));e=aAn(n)}while(!JX(n,t++,r,e))}}function r$n(n,t){var e,i,r;for(OTn(t,"Layer constraint preprocessing",1),e=new Np,r=new M2(n.a,0);r.b<r.d.gc();)Px(r.b<r.d.gc()),Wun(i=BB(r.d.Xb(r.c=r.b++),10))&&(cTn(i),e.c[e.c.length]=i,fW(r));0==e.c.length||hon(n,(hWn(),nlt),e),HSn(t)}function c$n(n,t){var e,i,r,c,a;for(c=n.g.a,a=n.g.b,i=new Wb(n.d);i.a<i.c.c.length;)r=(e=BB(n0(i),70)).n,n.a==(Oun(),mst)||n.i==(kUn(),oIt)?r.a=c:n.a==yst||n.i==(kUn(),CIt)?r.a=c+n.j.a-e.o.a:r.a=c+(n.j.a-e.o.a)/2,r.b=a,UR(r,t),a+=e.o.b+n.e}function a$n(n,t,e){var i,r,c,a;for(OTn(e,"Processor set coordinates",1),n.a=0==t.b.b?1:t.b.b,c=null,i=spn(t.b,0);!c&&i.b!=i.d.c;)qy(TD(mMn(a=BB(b3(i),86),(qqn(),dkt))))&&(c=a,(r=a.e).a=BB(mMn(a,gkt),19).a,r.b=0);_Sn(n,xun(c),mcn(e,1)),HSn(e)}function u$n(n,t,e){var i,r,c;for(OTn(e,"Processor determine the height for each level",1),n.a=0==t.b.b?1:t.b.b,r=null,i=spn(t.b,0);!r&&i.b!=i.d.c;)qy(TD(mMn(c=BB(b3(i),86),(qqn(),dkt))))&&(r=c);r&&Zxn(n,u6(Pun(Gk(Yyt,1),tZn,86,0,[r])),e),HSn(e)}function o$n(n,t){var e,i,r,c,a;(c=D2(n,"individualSpacings"))&&(!P8(t,(sWn(),CPt))&&(e=new Yu,Ypn(t,CPt,e)),r=BB(ZAn(t,CPt),373),i=null,(a=c)&&(i=new TT(a,jrn(a,x8(Qtt,sVn,2,0,6,1)))),i&&e5(i,new dI(a,r)))}function s$n(n,t){var e,i,r,c,a,u;return c=null,(J6n in(a=n).a||Z6n in a.a||D6n in a.a)&&(u=qun(t),i=D2(a,J6n),Own(new Hg(u).a,i),r=D2(a,Z6n),Iwn(new Jg(u).a,r),e=N2(a,D6n),PEn(new tp(u).a,e),c=e),c}function h$n(n,t){var e,i,r;if(t===n)return!0;if(cL(t,543)){if(r=BB(t,835),n.a.d!=r.a.d||EV(n).gc()!=EV(r).gc())return!1;for(i=EV(r).Kc();i.Ob();)if(c1(n,(e=BB(i.Pb(),416)).a.cd())!=BB(e.a.dd(),14).gc())return!1;return!0}return!1}function f$n(n){var t,e,i,r;return t=i=BB(n.a,19).a,e=r=BB(n.b,19).a,0==i&&0==r?e-=1:-1==i&&r<=0?(t=0,e-=2):i<=0&&r>0?(t-=1,e-=1):i>=0&&r<0?(t+=1,e+=1):i>0&&r>=0?(t-=1,e+=1):(t+=1,e-=1),new rI(iln(t),iln(e))}function l$n(n,t){return n.c<t.c?-1:n.c>t.c?1:n.b<t.b?-1:n.b>t.b?1:n.a!=t.a?nsn(n.a)-nsn(t.a):n.d==(Q4(),Hmt)&&t.d==Bmt?-1:n.d==Bmt&&t.d==Hmt?1:0}function b$n(n,t){var e,i,r,c,a;return a=(c=t.a).c.i==t.b?c.d:c.c,i=c.c.i==t.b?c.c:c.d,(r=zwn(n.a,a,i))>0&&r<ZJn?(e=YAn(n.a,i.i,r,n.c),ren(n.a,i.i,-e),e>0):r<0&&-r<ZJn&&(e=JAn(n.a,i.i,-r,n.c),ren(n.a,i.i,e),e>0)}function w$n(n,t,e,i){var r,c,a,u,o,s;for(r=(t-n.d)/n.c.c.length,c=0,n.a+=e,n.d=t,s=new Wb(n.c);s.a<s.c.c.length;)u=(o=BB(n0(s),33)).g,a=o.f,Pen(o,o.i+c*r),Cen(o,o.j+i*e),Sen(o,o.g+r),Men(o,n.a),++c,lCn(o,new xC(o.g,o.f),new xC(u,a))}function d$n(n){var t,e,i,r,c,a,u;if(null==n)return null;for(u=n.length,a=x8(NNt,v6n,25,r=(u+1)/2|0,15,1),u%2!=0&&(a[--r]=ZDn((b1(u-1,n.length),n.charCodeAt(u-1)))),e=0,i=0;e<r;++e)t=ZDn(fV(n,i++)),c=ZDn(fV(n,i++)),a[e]=(t<<4|c)<<24>>24;return a}function g$n(n){if(n.pe()){var t=n.c;return t.qe()?n.o="["+t.n:t.pe()?n.o="["+t.ne():n.o="[L"+t.ne()+";",n.b=t.me()+"[]",void(n.k=t.oe()+"[]")}var e=n.j,i=n.d;i=i.split("/"),n.o=Fdn(".",[e,Fdn("$",i)]),n.b=Fdn(".",[e,Fdn(".",i)]),n.k=i[i.length-1]}function p$n(n,t){var e,i,r,c,a;for(a=null,c=new Wb(n.e.a);c.a<c.c.c.length;)if((r=BB(n0(c),121)).b.a.c.length==r.g.a.c.length){for(i=r.e,a=ePn(r),e=r.e-BB(a.a,19).a+1;e<r.e+BB(a.b,19).a;e++)t[e]<t[i]&&(i=e);t[i]<t[r.e]&&(--t[r.e],++t[i],r.e=i)}}function v$n(n){var t,i,r,c,a,u,o;for(r=RQn,i=KQn,t=new Wb(n.e.b);t.a<t.c.c.length;)for(a=new Wb(BB(n0(t),29).a);a.a<a.c.c.length;)c=BB(n0(a),10),u=(o=Gy(n.p[c.p]))+Gy(n.b[n.g[c.p].p]),r=e.Math.min(r,o),i=e.Math.max(i,u);return i-r}function m$n(n,t,e,i){var r,c,a,u,o,s;for(o=null,u=0,s=(r=jKn(n,t)).gc();u<s;++u)if(mK(i,kV(B7(n,c=BB(r.Xb(u),170)))))if(a=jV(B7(n,c)),null==e){if(null==a)return c;!o&&(o=c)}else{if(mK(e,a))return c;null==a&&!o&&(o=c)}return null}function y$n(n,t,e,i){var r,c,a,u,o,s;for(o=null,u=0,s=(r=EKn(n,t)).gc();u<s;++u)if(mK(i,kV(B7(n,c=BB(r.Xb(u),170)))))if(a=jV(B7(n,c)),null==e){if(null==a)return c;!o&&(o=c)}else{if(mK(e,a))return c;null==a&&!o&&(o=c)}return null}function k$n(n,t,e){var i,r,c,a,u,o;if(a=new go,u=axn(n.e.Tg(),t),i=BB(n.g,119),ZM(),BB(t,66).Oj())for(c=0;c<n.i;++c)r=i[c],u.rl(r.ak())&&f9(a,r);else for(c=0;c<n.i;++c)r=i[c],u.rl(r.ak())&&(o=r.dd(),f9(a,e?FIn(n,t,c,a.i,o):o));return N3(a)}function j$n(n,t){var e,i,r,c;for(e=new Hbn(uht),$Pn(),r=0,c=(i=Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])).length;r<c;++r)wR(e,i[r],new Np);return JT($V(AV(wnn(new Rq(null,new w1(n.b,16)),new Ze),new ni),new hd(t)),new fd(e)),e}function E$n(n,t,i){var r,c,a,u,o,s,h,f;for(a=t.Kc();a.Ob();)s=(c=BB(a.Pb(),33)).i+c.g/2,f=c.j+c.f/2,o=s-((u=n.f).i+u.g/2),h=f-(u.j+u.f/2),r=e.Math.sqrt(o*o+h*h),o*=n.e/r,h*=n.e/r,i?(s-=o,f-=h):(s+=o,f+=h),Pen(c,s-c.g/2),Cen(c,f-c.f/2)}function T$n(n){var t,e,i;if(!n.c&&null!=n.b){for(t=n.b.length-4;t>=0;t-=2)for(e=0;e<=t;e+=2)(n.b[e]>n.b[e+2]||n.b[e]===n.b[e+2]&&n.b[e+1]>n.b[e+3])&&(i=n.b[e+2],n.b[e+2]=n.b[e],n.b[e]=i,i=n.b[e+3],n.b[e+3]=n.b[e+1],n.b[e+1]=i);n.c=!0}}function M$n(n,t){var e,i,r,c,a,u;for(c=(1==t?Wat:Xat).a.ec().Kc();c.Ob();)for(r=BB(c.Pb(),103),u=BB(h6(n.f.c,r),21).Kc();u.Ob();)switch(a=BB(u.Pb(),46),i=BB(a.b,81),e=BB(a.a,189).c,r.g){case 2:case 1:i.g.d+=e;break;case 4:case 3:i.g.c+=e}}function S$n(n,t){var e,i,r,c,a,u,o,s,h;for(s=-1,h=0,u=0,o=(a=n).length;u<o;++u){for(c=a[u],e=new kH(-1==s?n[0]:n[s],t,(Mhn(),uvt)),i=0;i<c.length;i++)for(r=i+1;r<c.length;r++)Lx(c[i],(hWn(),wlt))&&Lx(c[r],wlt)&&fXn(e,c[i],c[r])>0&&++h;++s}return h}function P$n(n){var t;return(t=new lN(nE(n.gm))).a+="@",oO(t,(nsn(n)>>>0).toString(16)),n.kh()?(t.a+=" (eProxyURI: ",uO(t,n.qh()),n.$g()&&(t.a+=" eClass: ",uO(t,n.$g())),t.a+=")"):n.$g()&&(t.a+=" (eClass: ",uO(t,n.$g()),t.a+=")"),t.a}function C$n(n){var t,e,i;if(n.e)throw Hp(new Fy((ED(git),AYn+git.k+$Yn)));for(n.d==(Ffn(),BPt)&&Tzn(n,_Pt),e=new Wb(n.a.a);e.a<e.c.c.length;)(t=BB(n0(e),307)).g=t.i;for(i=new Wb(n.a.b);i.a<i.c.c.length;)BB(n0(i),57).i=KQn;return n.b.Le(n),n}function I$n(n,t){var e,i,r,c,a;if(t<2*n.b)throw Hp(new _y("The knot vector must have at least two time the dimension elements."));for(n.f=1,r=0;r<n.b;r++)WB(n.e,0);for(e=a=t+1-2*n.b,c=1;c<a;c++)WB(n.e,c/e);if(n.d)for(i=0;i<n.b;i++)WB(n.e,1)}function O$n(n,t){var e,i,r,c,a;if(c=t,!(a=BB(Uin(PX(n.i),c),33)))throw Hp(new ek("Unable to find elk node for json object '"+R2(c,q6n)+"' Panic!"));i=N2(c,"edges"),LIn((e=new uI(n,a)).a,e.b,i),r=N2(c,A6n),Dkn(new Ng(n).a,r)}function A$n(n,t,e,i){var r,c,a,u,o;if(null!=i){if(r=n.d[t])for(c=r.g,o=r.i,u=0;u<o;++u)if((a=BB(c[u],133)).Sh()==e&&Nfn(i,a.cd()))return u}else if(r=n.d[t])for(c=r.g,o=r.i,u=0;u<o;++u)if(GI((a=BB(c[u],133)).cd())===GI(i))return u;return-1}function $$n(n,t){var e,i;return cL(e=null==t?qI(AY(n.f,null)):hS(n.g,t),235)?((i=BB(e,235)).Qh(),i):cL(e,498)?((i=BB(e,1938).a)&&(null==i.yb||(null==t?jCn(n.f,null,i):ubn(n.g,t,i))),i):null}function L$n(n){var t,e,i,r,c,a,u;if(KDn(),null==n)return null;if((r=n.length)%2!=0)return null;for(t=V7(n),e=x8(NNt,v6n,25,c=r/2|0,15,1),i=0;i<c;i++){if(-1==(a=QLt[t[2*i]]))return null;if(-1==(u=QLt[t[2*i+1]]))return null;e[i]=(a<<4|u)<<24>>24}return e}function N$n(n,t,e){var i,r,c;if(!(r=BB(oV(n.i,t),306)))if(r=new wtn(n.d,t,e),mG(n.i,t,r),agn(t))EL(n.a,t.c,t.b,r);else switch(c=LPn(t),i=BB(oV(n.p,c),244),c.g){case 1:case 3:r.j=!0,jy(i,t.b,r);break;case 4:case 2:r.k=!0,jy(i,t.c,r)}return r}function x$n(n,t,e,i){var r,c,a,u,o,s;if(u=new go,o=axn(n.e.Tg(),t),r=BB(n.g,119),ZM(),BB(t,66).Oj())for(a=0;a<n.i;++a)c=r[a],o.rl(c.ak())&&f9(u,c);else for(a=0;a<n.i;++a)c=r[a],o.rl(c.ak())&&(s=c.dd(),f9(u,i?FIn(n,t,a,u.i,s):s));return Qwn(u,e)}function D$n(n,t){var i,r,c,a,u,o;if((r=n.b[t.p])>=0)return r;for(c=1,a=new Wb(t.j);a.a<a.c.c.length;)for(i=new Wb(BB(n0(a),11).g);i.a<i.c.c.length;)t!=(o=BB(n0(i),17).d.i)&&(u=D$n(n,o),c=e.Math.max(c,u+1));return iwn(n,t,c),c}function R$n(n,t,e){var i,r,c;for(i=1;i<n.c.length;i++){for(l1(i,n.c.length),c=BB(n.c[i],10),r=i;r>0&&t.ue((l1(r-1,n.c.length),BB(n.c[r-1],10)),c)>0;)c5(n,r,(l1(r-1,n.c.length),BB(n.c[r-1],10))),--r;l1(r,n.c.length),n.c[r]=c}e.a=new xp,e.b=new xp}function K$n(n,t,e){var i,r,c,a,u,o,s;for(s=new YK(i=BB(t.e&&t.e(),9),BB(SR(i,i.length),9),0),a=0,u=(c=kKn(e,"[\\[\\]\\s,]+")).length;a<u;++a)if(0!=RMn(r=c[a]).length){if(null==(o=HIn(n,r)))return null;orn(s,BB(o,22))}return s}function _$n(n){var t,i,r;for(i=new Wb(n.a.a.b);i.a<i.c.c.length;)t=BB(n0(i),81),kW(0),(r=0)>0&&((!dA(n.a.c)||!t.n.d)&&(!gA(n.a.c)||!t.n.b)&&(t.g.d-=e.Math.max(0,r/2-.5)),(!dA(n.a.c)||!t.n.a)&&(!gA(n.a.c)||!t.n.c)&&(t.g.a+=e.Math.max(0,r-1)))}function F$n(n,t,e){var i;if(2==(n.c-n.b&n.a.length-1))t==(kUn(),sIt)||t==oIt?(jtn(BB(Eon(n),15),(Xyn(),jCt)),jtn(BB(Eon(n),15),ECt)):(jtn(BB(Eon(n),15),(Xyn(),ECt)),jtn(BB(Eon(n),15),jCt));else for(i=new bV(n);i.a!=i.b;)jtn(BB(_hn(i),15),e)}function B$n(n,t){var e,i,r,c,a,u;for(a=new M2(i=HB(new sp(n)),i.c.length),u=new M2(r=HB(new sp(t)),r.c.length),c=null;a.b>0&&u.b>0&&(Px(a.b>0),e=BB(a.a.Xb(a.c=--a.b),33),Px(u.b>0),e==BB(u.a.Xb(u.c=--u.b),33));)c=e;return c}function H$n(n,t){var i,r,c,a;return c=n.a*aYn+1502*n.b,a=n.b*aYn+11,c+=i=e.Math.floor(a*uYn),a-=i*oYn,c%=oYn,n.a=c,n.b=a,t<=24?e.Math.floor(n.a*Oet[t]):((r=n.a*(1<<t-24)+e.Math.floor(n.b*Aet[t]))>=2147483648&&(r-=XQn),r)}function q$n(n,t,e){var i,r,c,a;w0(n,t)>w0(n,e)?(i=abn(e,(kUn(),oIt)),n.d=i.dc()?0:uq(BB(i.Xb(0),11)),a=abn(t,CIt),n.b=a.dc()?0:uq(BB(a.Xb(0),11))):(r=abn(e,(kUn(),CIt)),n.d=r.dc()?0:uq(BB(r.Xb(0),11)),c=abn(t,oIt),n.b=c.dc()?0:uq(BB(c.Xb(0),11)))}function G$n(n){var t,e,i,r,c,a,u;if(n&&(t=n.Hh(V9n))&&null!=(a=SD(cdn((!t.b&&(t.b=new Jx((gWn(),k$t),X$t,t)),t.b),"conversionDelegates")))){for(u=new Np,r=0,c=(i=kKn(a,"\\w+")).length;r<c;++r)e=i[r],u.c[u.c.length]=e;return u}return SQ(),SQ(),set}function z$n(n,t){var e,i,r,c;for(e=n.o.a,c=BB(BB(h6(n.r,t),21),84).Kc();c.Ob();)(r=BB(c.Pb(),111)).e.a=e*Gy(MD(r.b.We(Lrt))),r.e.b=(i=r.b).Xe((sWn(),aPt))?i.Hf()==(kUn(),sIt)?-i.rf().b-Gy(MD(i.We(aPt))):Gy(MD(i.We(aPt))):i.Hf()==(kUn(),sIt)?-i.rf().b:0}function U$n(n){var t,e,i,r,c,a,u,o;t=!0,r=null,c=null;n:for(o=new Wb(n.a);o.a<o.c.c.length;)for(i=new oz(ZL(fbn(u=BB(n0(o),10)).a.Kc(),new h));dAn(i);){if(e=BB(U5(i),17),r&&r!=u){t=!1;break n}if(r=u,a=e.c.i,c&&c!=a){t=!1;break n}c=a}return t}function X$n(n,t,e){var i,r,c,a,u,o;for(c=-1,u=-1,a=0;a<t.c.length&&(l1(a,t.c.length),!((r=BB(t.c[a],329)).c>n.c));a++)r.a>=n.s&&(c<0&&(c=a),u=a);return o=(n.s+n.c)/2,c>=0&&(o=qM((l1(i=YRn(n,t,c,u),t.c.length),BB(t.c[i],329))),lOn(t,i,e)),o}function W$n(){W$n=O,lEt=new XA((sWn(),cSt),1.3),gEt=jSt,IEt=new WA(15),CEt=new XA(XSt,IEt),$Et=new XA(LPt,15),bEt=hSt,jEt=KSt,EEt=BSt,TEt=qSt,kEt=DSt,MEt=USt,OEt=fPt,$An(),PEt=oEt,yEt=aEt,SEt=uEt,AEt=hEt,pEt=cEt,vEt=CSt,mEt=ISt,dEt=rEt,wEt=iEt,LEt=fEt}function V$n(n,t,e){var i,r,c,a,u;for(Bin(r=new jo,(kW(t),t)),!r.b&&(r.b=new Jx((gWn(),k$t),X$t,r)),u=r.b,a=1;a<e.length;a+=2)vjn(u,e[a-1],e[a]);for(!n.Ab&&(n.Ab=new eU(KAt,n,0,3)),i=n.Ab,c=0;c<0;++c)i=mW(BB(Wtn(i,i.i-1),590));f9(i,r)}function Q$n(n,t,e){var i,r,c;for(LD.call(this,new Np),this.a=t,this.b=e,this.e=n,n.b&&VBn(n),i=n.a,this.d=JV(i.a,this.a),this.c=JV(i.b,this.b),obn(this,this.d,this.c),mIn(this),c=this.e.e.a.ec().Kc();c.Ob();)(r=BB(c.Pb(),266)).c.c.length>0&&xqn(this,r)}function Y$n(n,t,e,i,r,c){var a,u,o;if(!r[t.b]){for(r[t.b]=!0,!(a=i)&&(a=new y6),WB(a.e,t),o=c[t.b].Kc();o.Ob();)(u=BB(o.Pb(),282)).d!=e&&u.c!=e&&(u.c!=t&&Y$n(n,u.c,t,a,r,c),u.d!=t&&Y$n(n,u.d,t,a,r,c),WB(a.c,u),gun(a.d,u.b));return a}return null}function J$n(n){var t,e,i;for(t=0,e=new Wb(n.e);e.a<e.c.c.length;)o5(new Rq(null,new w1(BB(n0(e),17).b,16)),new pe)&&++t;for(i=new Wb(n.g);i.a<i.c.c.length;)o5(new Rq(null,new w1(BB(n0(i),17).b,16)),new ve)&&++t;return t>=2}function Z$n(n,t){var e,i,r,c;for(OTn(t,"Self-Loop pre-processing",1),i=new Wb(n.a);i.a<i.c.c.length;)Kbn(e=BB(n0(i),10))&&(c=new Ogn(e),hon(e,(hWn(),Olt),c),k_n(c),JT($V(wnn(new Rq(null,new w1((r=c).d,16)),new Hi),new qi),new Gi),ixn(r));HSn(t)}function nLn(n,t,e,i,r){var c,a,u,o,s;for(c=n.c.d.j,a=BB(Dpn(e,0),8),s=1;s<e.b;s++)o=BB(Dpn(e,s),8),r5(i,a,i.c.b,i.c),u=kL(UR(new wA(a),o),.5),UR(u,kL(new XZ(hsn(c)),r)),r5(i,u,i.c.b,i.c),a=o,c=0==t?Mln(c):Eln(c);DH(i,(Px(0!=e.b),BB(e.c.b.c,8)))}function tLn(n){return n$n(),!(Can(OJ(EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[LCt])),n))>1||Can(OJ(EG(ICt,Pun(Gk(GCt,1),$Vn,93,0,[CCt,ACt])),n))>1||Can(OJ(EG(DCt,Pun(Gk(GCt,1),$Vn,93,0,[xCt,NCt])),n))>1)}function eLn(n,t){var e,i,r;return(e=t.Hh(n.a))&&null!=(r=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),"affiliation")))?-1==(i=mN(r,YTn(35)))?uln(n,az(n,Utn(t.Hj())),r):0==i?uln(n,null,r.substr(1)):uln(n,r.substr(0,i),r.substr(i+1)):null}function iLn(n){var t,e;try{return null==n?zWn:Bbn(n)}catch(i){if(cL(i=lun(i),102))return t=i,e=nE(tsn(n))+"@"+($T(),(evn(n)>>>0).toString(16)),Kgn(jun(),(lM(),"Exception during lenientFormat for "+e),t),"<"+e+" threw "+nE(t.gm)+">";throw Hp(i)}}function rLn(n){switch(n.g){case 0:return new of;case 1:return new ef;case 2:return new $M;case 3:return new Ic;case 4:return new RR;case 5:return new sf;default:throw Hp(new _y("No implementation is available for the layerer "+(null!=n.f?n.f:""+n.g)))}}function cLn(n,t,e){var i,r,c;for(c=new Wb(n.t);c.a<c.c.c.length;)(i=BB(n0(c),268)).b.s<0&&i.c>0&&(i.b.n-=i.c,i.b.n<=0&&i.b.u>0&&DH(t,i.b));for(r=new Wb(n.i);r.a<r.c.c.length;)(i=BB(n0(r),268)).a.s<0&&i.c>0&&(i.a.u-=i.c,i.a.u<=0&&i.a.n>0&&DH(e,i.a))}function aLn(n){var t,e,i;if(null==n.g&&(n.d=n.si(n.f),f9(n,n.d),n.c))return n.f;if(i=(t=BB(n.g[n.i-1],47)).Pb(),n.e=t,(e=n.si(i)).Ob())n.d=e,f9(n,e);else for(n.d=null;!t.Ob()&&($X(n.g,--n.i,null),0!=n.i);)t=BB(n.g[n.i-1],47);return i}function uLn(n,t){var e,i,r,c,a,u;if(r=(i=t).ak(),$xn(n.e,r)){if(r.hi()&&G3(n,r,i.dd()))return!1}else for(u=axn(n.e.Tg(),r),e=BB(n.g,119),c=0;c<n.i;++c)if(a=e[c],u.rl(a.ak()))return!Nfn(a,i)&&(BB(ovn(n,c,t),72),!0);return f9(n,t)}function oLn(n,t,i,r){var c,a,u;for(Bl(c=new $vn(n),(uSn(),Sut)),hon(c,(hWn(),dlt),t),hon(c,Plt,r),hon(c,(HXn(),ept),(QEn(),XCt)),hon(c,hlt,t.c),hon(c,flt,t.d),zxn(t,c),u=e.Math.floor(i/2),a=new Wb(c.j);a.a<a.c.c.length;)BB(n0(a),11).n.b=u;return c}function sLn(n,t){var e,i,r,c,a,u,o,s,h;for(o=sx(n.c-n.b&n.a.length-1),s=null,h=null,c=new bV(n);c.a!=c.b;)r=BB(_hn(c),10),e=(u=BB(mMn(r,(hWn(),hlt)),11))?u.i:null,i=(a=BB(mMn(r,flt),11))?a.i:null,s==e&&h==i||(GAn(o,t),s=e,h=i),o.c[o.c.length]=r;GAn(o,t)}function hLn(n){var t,i,r,c,a,u;for(t=0,i=new Wb(n.a);i.a<i.c.c.length;)for(c=new oz(ZL(lbn(BB(n0(i),10)).a.Kc(),new h));dAn(c);)n==(r=BB(U5(c),17)).d.i.c&&r.c.j==(kUn(),CIt)&&(a=g1(r.c).b,u=g1(r.d).b,t=e.Math.max(t,e.Math.abs(u-a)));return t}function fLn(n,t,e){var i,r;OTn(e,"Remove overlaps",1),e.n&&t&&y0(e,o2(t),(Bsn(),uOt)),i=BB(ZAn(t,(wD(),Vkt)),33),n.f=i,n.a=Evn(BB(ZAn(t,(Uyn(),Rjt)),293)),ib(n,(kW(r=MD(ZAn(t,(sWn(),LPt)))),r)),Xzn(n,t,wDn(i),e),e.n&&t&&y0(e,o2(t),(Bsn(),uOt))}function lLn(n,t,i){switch(i.g){case 1:return new xC(t.a,e.Math.min(n.d.b,t.b));case 2:return new xC(e.Math.max(n.c.a,t.a),t.b);case 3:return new xC(t.a,e.Math.max(n.c.b,t.b));case 4:return new xC(e.Math.min(t.a,n.d.a),t.b)}return new xC(t.a,t.b)}function bLn(n,t,e,i){var r,c,a,u,o,s,h,f,l;for(f=i?(kUn(),CIt):(kUn(),oIt),r=!1,s=0,h=(o=t[e]).length;s<h;++s)LK(BB(mMn(u=o[s],(HXn(),ept)),98))||(a=u.e,(l=!abn(u,f).dc()&&!!a)&&(c=qEn(a),n.b=new zEn(c,i?0:c.length-1)),r|=c_n(n,u,f,l));return r}function wLn(n){var t,e,i;for(WB(t=sx(1+(!n.c&&(n.c=new eU(XOt,n,9,9)),n.c).i),(!n.d&&(n.d=new hK(_Ot,n,8,5)),n.d)),i=new AL((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c));i.e!=i.i.gc();)WB(t,(!(e=BB(kpn(i),118)).d&&(e.d=new hK(_Ot,e,8,5)),e.d));return yX(t),new OO(t)}function dLn(n){var t,e,i;for(WB(t=sx(1+(!n.c&&(n.c=new eU(XOt,n,9,9)),n.c).i),(!n.e&&(n.e=new hK(_Ot,n,7,4)),n.e)),i=new AL((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c));i.e!=i.i.gc();)WB(t,(!(e=BB(kpn(i),118)).e&&(e.e=new hK(_Ot,e,7,4)),e.e));return yX(t),new OO(t)}function gLn(n){var t,e,i,r;if(null==n)return null;if(i=FBn(n,!0),r=x7n.length,mK(i.substr(i.length-r,r),x7n))if(4==(e=i.length)){if(b1(0,i.length),43==(t=i.charCodeAt(0)))return HLt;if(45==t)return BLt}else if(3==e)return HLt;return bSn(i)}function pLn(n){var t,e,i,r;for(t=0,e=0,r=new Wb(n.j);r.a<r.c.c.length;)if(t=dG(rbn(t,q6(AV(new Rq(null,new w1((i=BB(n0(r),11)).e,16)),new Yc)))),e=dG(rbn(e,q6(AV(new Rq(null,new w1(i.g,16)),new Jc)))),t>1||e>1)return 2;return t+e==1?2:0}function vLn(n,t,e){var i,r,c,a;for(OTn(e,"ELK Force",1),qy(TD(ZAn(t,(fRn(),Wct))))||jJ(new Tw((GM(),new Dy(t)))),kkn(a=fon(t)),zon(n,BB(mMn(a,Gct),424)),r=(c=HFn(n.a,a)).Kc();r.Ob();)i=BB(r.Pb(),231),PKn(n.b,i,mcn(e,1/c.gc()));SUn(a=GUn(c)),HSn(e)}function mLn(n,t){var e,i,r;if(OTn(t,"Breaking Point Processor",1),Ozn(n),qy(TD(mMn(n,(HXn(),Gpt))))){for(i=new Wb(n.b);i.a<i.c.c.length;)for(e=0,r=new Wb(BB(n0(i),29).a);r.a<r.c.c.length;)BB(n0(r),10).p=e++;oHn(n),Hxn(n,!0),Hxn(n,!1)}HSn(t)}function yLn(n,t,e){var i,r,c,a,u;for(a=n.c,c=(e.q?e.q:(SQ(),SQ(),het)).vc().Kc();c.Ob();)r=BB(c.Pb(),42),!jE(AV(new Rq(null,new w1(a,16)),new aw(new LC(t,r)))).sd((dM(),tit))&&(cL(u=r.dd(),4)&&null!=(i=Jdn(u))&&(u=i),t.Ye(BB(r.cd(),146),u))}function kLn(n,t){var e,i,r,c;if(t){for(c=!(r=cL(n.Cb,88)||cL(n.Cb,99))&&cL(n.Cb,322),e=new AL((!t.a&&(t.a=new aG(t,VAt,t)),t.a));e.e!=e.i.gc();)if(i=lFn(BB(kpn(e),87)),r?cL(i,88):c?cL(i,148):i)return i;return r?(gWn(),d$t):(gWn(),l$t)}return null}function jLn(n,t){var e,i,r,c,a;for(OTn(t,"Constraints Postprocessor",1),c=0,r=new Wb(n.b);r.a<r.c.c.length;){for(a=0,i=new Wb(BB(n0(r),29).a);i.a<i.c.c.length;)(e=BB(n0(i),10)).k==(uSn(),Cut)&&(hon(e,(HXn(),jgt),iln(c)),hon(e,Bdt,iln(a)),++a);++c}HSn(t)}function ELn(n,t,e,i){var r,c,a,u,o,s;for(XR(u=new xC(e,i),BB(mMn(t,(qqn(),nkt)),8)),s=spn(t.b,0);s.b!=s.d.c;)UR((o=BB(b3(s),86)).e,u),DH(n.b,o);for(a=spn(t.a,0);a.b!=a.d.c;){for(r=spn((c=BB(b3(a),188)).a,0);r.b!=r.d.c;)UR(BB(b3(r),8),u);DH(n.a,c)}}function TLn(n,t,e){var i,r,c;if(!(c=Fqn((IPn(),Z$t),n.Tg(),t)))throw Hp(new _y(r6n+t.ne()+c6n));if(ZM(),!BB(c,66).Oj()&&!(c=Z1(B7(Z$t,c))))throw Hp(new _y(r6n+t.ne()+c6n));r=BB((i=n.Yg(c))>=0?n._g(i,!0,!0):cOn(n,c,!0),153),BB(r,215).ml(t,e)}function MLn(n,t){var e,i,r,c,a;for(e=new Np,r=wnn(new Rq(null,new w1(n,16)),new Ea),c=wnn(new Rq(null,new w1(n,16)),new Ta),a=M7(H6(LV(SNn(Pun(Gk(eit,1),HWn,833,0,[r,c])),new Ma))),i=1;i<a.length;i++)a[i]-a[i-1]>=2*t&&WB(e,new kB(a[i-1]+t,a[i]-t));return e}function SLn(n,t,e){OTn(e,"Eades radial",1),e.n&&t&&y0(e,o2(t),(Bsn(),uOt)),n.d=BB(ZAn(t,(wD(),Vkt)),33),n.c=Gy(MD(ZAn(t,(Uyn(),Djt)))),n.e=Evn(BB(ZAn(t,Rjt),293)),n.a=lwn(BB(ZAn(t,_jt),426)),n.b=qjn(BB(ZAn(t,$jt),340)),rjn(n),e.n&&t&&y0(e,o2(t),(Bsn(),uOt))}function PLn(n,t,e){var i,r,c,a,u;if(e)for(c=((i=new hz(e.a.length)).b-i.a)*i.c<0?(eS(),MNt):new XL(i);c.Ob();)(r=x2(e,BB(c.Pb(),19).a))&&($in(a=$3(n,(tE(),u=new Em,!!t&&BLn(u,t),u),r),R2(r,q6n)),STn(r,a),OCn(r,a),xon(n,r,a))}function CLn(n){var t,e,i,r;if(!n.j){if(r=new Io,null==(t=P$t).a.zc(n,t)){for(i=new AL(kY(n));i.e!=i.i.gc();)pX(r,CLn(e=BB(kpn(i),26))),f9(r,e);t.a.Bc(n)}chn(r),n.j=new NO((BB(Wtn(QQ((QX(),t$t).o),11),18),r.i),r.g),P5(n).b&=-33}return n.j}function ILn(n){var t,e,i,r;if(null==n)return null;if(i=FBn(n,!0),r=x7n.length,mK(i.substr(i.length-r,r),x7n))if(4==(e=i.length)){if(b1(0,i.length),43==(t=i.charCodeAt(0)))return GLt;if(45==t)return qLt}else if(3==e)return GLt;return new Dv(i)}function OLn(n){var t,e,i;return 0!=((e=n.l)&e-1)||0!=((i=n.m)&i-1)||0!=((t=n.h)&t-1)||0==t&&0==i&&0==e?-1:0==t&&0==i&&0!=e?gin(e):0==t&&0!=i&&0==e?gin(i)+22:0!=t&&0==i&&0==e?gin(t)+44:-1}function ALn(n,t){var e,i,r,c;for(OTn(t,"Edge joining",1),e=qy(TD(mMn(n,(HXn(),Dpt)))),i=new Wb(n.b);i.a<i.c.c.length;)for(c=new M2(BB(n0(i),29).a,0);c.b<c.d.gc();)Px(c.b<c.d.gc()),(r=BB(c.d.Xb(c.c=c.b++),10)).k==(uSn(),Put)&&(rGn(r,e),fW(c));HSn(t)}function $Ln(n,t,e){var i;if(h2(n.b),CU(n.b,(Pbn(),HEt),(OM(),GTt)),CU(n.b,qEt,t.g),CU(n.b,GEt,t.a),n.a=$qn(n.b,t),OTn(e,"Compaction by shrinking a tree",n.a.c.length),t.i.c.length>1)for(i=new Wb(n.a);i.a<i.c.c.length;)BB(n0(i),51).pf(t,mcn(e,1));HSn(e)}function LLn(n,t){var e,i,r,c,a;for(r=t.a&n.f,c=null,i=n.b[r];;i=i.b){if(i==t){c?c.b=t.b:n.b[r]=t.b;break}c=i}for(a=t.f&n.f,c=null,e=n.c[a];;e=e.d){if(e==t){c?c.d=t.d:n.c[a]=t.d;break}c=e}t.e?t.e.c=t.c:n.a=t.c,t.c?t.c.e=t.e:n.e=t.e,--n.i,++n.g}function NLn(n){var t,i,r,c,a,u,o,s,h,f;for(i=n.o,t=n.p,u=DWn,c=_Vn,o=DWn,a=_Vn,h=0;h<i;++h)for(f=0;f<t;++f)vmn(n,h,f)&&(u=e.Math.min(u,h),c=e.Math.max(c,h),o=e.Math.min(o,f),a=e.Math.max(a,f));return s=c-u+1,r=a-o+1,new VV(iln(u),iln(o),iln(s),iln(r))}function xLn(n,t){var e,i,r,c;for(Px((c=new M2(n,0)).b<c.d.gc()),e=BB(c.d.Xb(c.c=c.b++),140);c.b<c.d.gc();)Px(c.b<c.d.gc()),r=new mH((i=BB(c.d.Xb(c.c=c.b++),140)).c,e.d,t),Px(c.b>0),c.a.Xb(c.c=--c.b),yR(c,r),Px(c.b<c.d.gc()),c.d.Xb(c.c=c.b++),r.a=!1,e=i}function DLn(n){var t,e,i,r,c;for(i=BB(mMn(n,(hWn(),Kft)),11),c=new Wb(n.j);c.a<c.c.c.length;){for(e=new Wb((r=BB(n0(c),11)).g);e.a<e.c.c.length;)return MZ(BB(n0(e),17),i),r;for(t=new Wb(r.e);t.a<t.c.c.length;)return SZ(BB(n0(t),17),i),r}return null}function RLn(n,t,i){var r,c;Vhn(r=fan(i.q.getTime()),0)<0?(c=VVn-dG(ldn(j7(r),VVn)))==VVn&&(c=0):c=dG(ldn(r,VVn)),1==t?xX(n,48+(c=e.Math.min((c+50)/100|0,9))&QVn):2==t?Enn(n,c=e.Math.min((c+5)/10|0,99),2):(Enn(n,c,3),t>3&&Enn(n,0,t-3))}function KLn(n){var t,e,i,r;return GI(mMn(n,(HXn(),sgt)))===GI((ufn(),pCt))?!n.e&&GI(mMn(n,Rdt))!==GI((Kan(),kft)):(i=BB(mMn(n,Kdt),292),r=qy(TD(mMn(n,Hdt)))||GI(mMn(n,qdt))===GI((Oin(),sht)),t=BB(mMn(n,Ddt),19).a,e=n.a.c.length,!r&&i!=(Kan(),kft)&&(0==t||t>e))}function _Ln(n){var t,e;for(e=0;e<n.c.length&&!(sq((l1(e,n.c.length),BB(n.c[e],113)))>0);e++);if(e>0&&e<n.c.length-1)return e;for(t=0;t<n.c.length&&!(sq((l1(t,n.c.length),BB(n.c[t],113)))>0);t++);return t>0&&e<n.c.length-1?t:n.c.length/2|0}function FLn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=6&&t){if(vkn(n,t))throw Hp(new _y(w6n+ROn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?skn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=Npn(t,n,6,i)),(i=QD(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,6,t,t))}function BLn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=9&&t){if(vkn(n,t))throw Hp(new _y(w6n+URn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?fkn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=Npn(t,n,9,i)),(i=YD(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,9,t,t))}function HLn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=3&&t){if(vkn(n,t))throw Hp(new _y(w6n+lHn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?Mkn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=Npn(t,n,12,i)),(i=VD(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,3,t,t))}function qLn(n){var t,e,i,r,c;if(i=Ikn(n),null==(c=n.j)&&i)return n.$j()?null:i.zj();if(cL(i,148)){if((e=i.Aj())&&(r=e.Nh())!=n.i){if((t=BB(i,148)).Ej())try{n.g=r.Kh(t,c)}catch(a){if(!cL(a=lun(a),78))throw Hp(a);n.g=null}n.i=r}return n.g}return null}function GLn(n){var t;return WB(t=new Np,new xS(new xC(n.c,n.d),new xC(n.c+n.b,n.d))),WB(t,new xS(new xC(n.c,n.d),new xC(n.c,n.d+n.a))),WB(t,new xS(new xC(n.c+n.b,n.d+n.a),new xC(n.c+n.b,n.d))),WB(t,new xS(new xC(n.c+n.b,n.d+n.a),new xC(n.c,n.d+n.a))),t}function zLn(n,t,e,i){var r,c,a;if(a=Ajn(t,e),i.c[i.c.length]=t,-1==n.j[a.p]||2==n.j[a.p]||n.a[t.p])return i;for(n.j[a.p]=-1,c=new oz(ZL(hbn(a).a.Kc(),new h));dAn(c);)if(!b5(r=BB(U5(c),17))&&(b5(r)||r.c.i.c!=r.d.i.c)&&r!=t)return zLn(n,r,a,i);return i}function ULn(n,t,e){var i,r;for(r=t.a.ec().Kc();r.Ob();)i=BB(r.Pb(),79),!BB(RX(n.b,i),266)&&(JJ(PMn(i))==JJ(OMn(i))?tDn(n,i,e):PMn(i)==JJ(OMn(i))?null==RX(n.c,i)&&null!=RX(n.b,OMn(i))&&rzn(n,i,e,!1):null==RX(n.d,i)&&null!=RX(n.b,PMn(i))&&rzn(n,i,e,!0))}function XLn(n,t){var e,i,r,c,a,u,o;for(r=n.Kc();r.Ob();)for(i=BB(r.Pb(),10),CZ(u=new CSn,i),qCn(u,(kUn(),oIt)),hon(u,(hWn(),jlt),(hN(),!0)),a=t.Kc();a.Ob();)c=BB(a.Pb(),10),CZ(o=new CSn,c),qCn(o,CIt),hon(o,jlt,!0),hon(e=new wY,jlt,!0),SZ(e,u),MZ(e,o)}function WLn(n,t,e,i){var r,c,a,u;r=Adn(n,t,e),c=Adn(n,e,t),a=BB(RX(n.c,t),112),u=BB(RX(n.c,e),112),r<c?new zZ((O6(),Myt),a,u,c-r):c<r?new zZ((O6(),Myt),u,a,r-c):(0!=r||t.i&&e.i&&i[t.i.c][e.i.c])&&(new zZ((O6(),Myt),a,u,0),new zZ(Myt,u,a,0))}function VLn(n,t){var e,i,r,c,a,u;for(r=0,a=new Wb(t.a);a.a<a.c.c.length;)for(r+=(c=BB(n0(a),10)).o.b+c.d.a+c.d.d+n.e,i=new oz(ZL(fbn(c).a.Kc(),new h));dAn(i);)(e=BB(U5(i),17)).c.i.k==(uSn(),Iut)&&(r+=(u=BB(mMn(e.c.i,(hWn(),dlt)),10)).o.b+u.d.a+u.d.d);return r}function QLn(n,t,e){var i,r,c,a,u,o,s;for(c=new Np,OBn(n,s=new YT,a=new YT,t),Ezn(n,s,a,t,e),o=new Wb(n);o.a<o.c.c.length;)for(r=new Wb((u=BB(n0(o),112)).k);r.a<r.c.c.length;)i=BB(n0(r),129),(!t||i.c==(O6(),Tyt))&&u.g>i.b.g&&(c.c[c.c.length]=i);return c}function YLn(){YLn=O,DEt=new jC("CANDIDATE_POSITION_LAST_PLACED_RIGHT",0),xEt=new jC("CANDIDATE_POSITION_LAST_PLACED_BELOW",1),KEt=new jC("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT",2),REt=new jC("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW",3),_Et=new jC("WHOLE_DRAWING",4)}function JLn(n,t){if(cL(t,239))return hln(n,BB(t,33));if(cL(t,186))return Dln(n,BB(t,118));if(cL(t,354))return tQ(n,BB(t,137));if(cL(t,352))return JFn(n,BB(t,79));if(t)return null;throw Hp(new _y(z6n+LMn(new Jy(Pun(Gk(Ant,1),HWn,1,5,[t])))))}function ZLn(n){var t,e,i,r,c,a,u;for(c=new YT,r=new Wb(n.d.a);r.a<r.c.c.length;)0==(i=BB(n0(r),121)).b.a.c.length&&r5(c,i,c.c.b,c.c);if(c.b>1)for(t=AN((e=new qv,++n.b,e),n.d),u=spn(c,0);u.b!=u.d.c;)a=BB(b3(u),121),UNn(aM(cM(uM(rM(new Hv,1),0),t),a))}function nNn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=11&&t){if(vkn(n,t))throw Hp(new _y(w6n+zRn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?Skn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=Npn(t,n,10,i)),(i=zR(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,11,t,t))}function tNn(n){var t,e,i,r;for(i=new usn(new Pb(n.b).a);i.b;)r=BB((e=ten(i)).cd(),11),hon(t=BB(e.dd(),10),(hWn(),dlt),r),hon(r,Elt,t),hon(r,elt,(hN(),!0)),qCn(r,BB(mMn(t,Qft),61)),mMn(t,Qft),hon(r.i,(HXn(),ept),(QEn(),VCt)),BB(mMn(vW(r.i),Zft),21).Fc((bDn(),dft))}function eNn(n,t,e){var i,r,c;if(i=0,r=0,n.c)for(c=new Wb(n.d.i.j);c.a<c.c.c.length;)i+=BB(n0(c),11).e.c.length;else i=1;if(n.d)for(c=new Wb(n.c.i.j);c.a<c.c.c.length;)r+=BB(n0(c),11).g.c.length;else r=1;return(e+t)/2+.4*CJ(HH(r-i))*(e-t)}function iNn(n){var t,e;if(LEn(),n.Hc((kUn(),PIt)))throw Hp(new _y("Port sides must not contain UNDEFINED"));switch(n.gc()){case 1:return Mst;case 2:return t=n.Hc(oIt)&&n.Hc(CIt),e=n.Hc(sIt)&&n.Hc(SIt),t||e?Cst:Pst;case 3:return Sst;case 4:return Tst;default:return null}}function rNn(n,t,e){var i,r,c,a;for(OTn(e,"Breaking Point Removing",1),n.a=BB(mMn(t,(HXn(),Zdt)),218),r=new Wb(t.b);r.a<r.c.c.length;)for(a=new Wb(a0(BB(n0(r),29).a));a.a<a.c.c.length;)Jnn(c=BB(n0(a),10))&&!(i=BB(mMn(c,(hWn(),Rft)),305)).d&&zUn(n,i);HSn(e)}function cNn(n,t,e){return jDn(),(!Dcn(n,t)||!Dcn(n,e))&&(mzn(new xC(n.c,n.d),new xC(n.c+n.b,n.d),t,e)||mzn(new xC(n.c+n.b,n.d),new xC(n.c+n.b,n.d+n.a),t,e)||mzn(new xC(n.c+n.b,n.d+n.a),new xC(n.c,n.d+n.a),t,e)||mzn(new xC(n.c,n.d+n.a),new xC(n.c,n.d),t,e))}function aNn(n,t){var e,i,r,c;if(!n.dc())for(e=0,i=n.gc();e<i;++e)if(null==(c=SD(n.Xb(e)))?null==t:mK(c.substr(0,3),"!##")?null!=t&&(r=t.length,!mK(c.substr(c.length-r,r),t)||c.length!=t.length+3)&&!mK(S7n,t):mK(c,P7n)&&!mK(S7n,t)||mK(c,t))return!0;return!1}function uNn(n,t,e,i){var r,c,a,u,o,s;for(a=n.j.c.length,o=x8(art,rJn,306,a,0,1),u=0;u<a;u++)(c=BB(xq(n.j,u),11)).p=u,o[u]=hOn(mAn(c),e,i);for(VNn(n,o,e,t,i),s=new xp,r=0;r<o.length;r++)o[r]&&VW(s,BB(xq(n.j,r),11),o[r]);s.f.c+s.g.c!=0&&(hon(n,(hWn(),zft),s),ASn(n,o))}function oNn(n,t,e){var i,r;for(i=new Wb(n.a.b);i.a<i.c.c.length;)if((r=f2(BB(n0(i),57)))&&r.k==(uSn(),Mut))switch(BB(mMn(r,(hWn(),Qft)),61).g){case 4:r.n.a=t.a;break;case 2:r.n.a=e.a-(r.o.a+r.d.c);break;case 1:r.n.b=t.b;break;case 3:r.n.b=e.b-(r.o.b+r.d.a)}}function sNn(){sNn=O,Ivt=new HP(QZn,0),Tvt=new HP("NIKOLOV",1),Pvt=new HP("NIKOLOV_PIXEL",2),Mvt=new HP("NIKOLOV_IMPROVED",3),Svt=new HP("NIKOLOV_IMPROVED_PIXEL",4),Evt=new HP("DUMMYNODE_PERCENTAGE",5),Cvt=new HP("NODECOUNT_PERCENTAGE",6),Ovt=new HP("NO_BOUNDARY",7)}function hNn(n,t,e){var i,r,c;if(!(r=BB(ZAn(t,(SMn(),UMt)),19))&&(r=iln(0)),!(c=BB(ZAn(e,UMt),19))&&(c=iln(0)),r.a>c.a)return-1;if(r.a<c.a)return 1;if(n.a){if(0!=(i=Pln(t.j,e.j)))return i;if(0!=(i=Pln(t.i,e.i)))return i}return Pln(t.g*t.f,e.g*e.f)}function fNn(n,t){var e,i,r,c,a,u,o,s,h,f;if(++n.e,t>(o=null==n.d?0:n.d.length)){for(h=n.d,n.d=x8(oAt,c9n,63,2*o+4,0,1),c=0;c<o;++c)if(s=h[c])for(i=s.g,f=s.i,u=0;u<f;++u)a=eR(n,(r=BB(i[u],133)).Sh()),!(e=n.d[a])&&(e=n.d[a]=n.uj()),e.Fc(r);return!0}return!1}function lNn(n,t,e){var i,r,c,a,u,o;if(c=(r=e).ak(),$xn(n.e,c)){if(c.hi())for(i=BB(n.g,119),a=0;a<n.i;++a)if(Nfn(u=i[a],r)&&a!=t)throw Hp(new _y(a8n))}else for(o=axn(n.e.Tg(),c),i=BB(n.g,119),a=0;a<n.i;++a)if(u=i[a],o.rl(u.ak()))throw Hp(new _y(I7n));sln(n,t,e)}function bNn(n,t){var e,i,r,c,a,u;for(e=BB(mMn(t,(hWn(),Xft)),21),a=BB(h6((RXn(),fut),e),21),u=BB(h6(put,e),21),c=a.Kc();c.Ob();)if(i=BB(c.Pb(),21),!BB(h6(n.b,i),15).dc())return!1;for(r=u.Kc();r.Ob();)if(i=BB(r.Pb(),21),!BB(h6(n.b,i),15).dc())return!1;return!0}function wNn(n,t){var e,i,r;for(OTn(t,"Partition postprocessing",1),e=new Wb(n.b);e.a<e.c.c.length;)for(i=new Wb(BB(n0(e),29).a);i.a<i.c.c.length;)for(r=new Wb(BB(n0(i),10).j);r.a<r.c.c.length;)qy(TD(mMn(BB(n0(r),11),(hWn(),jlt))))&&AU(r);HSn(t)}function dNn(n,t){var e,i,r,c,a,u,o;if(1==n.a.c.length)return FSn(BB(xq(n.a,0),187),t);for(r=cfn(n),a=0,u=n.d,i=r,o=n.d,c=(u-i)/2+i;i+1<u;){for(a=0,e=new Wb(n.a);e.a<e.c.c.length;)a+=cHn(BB(n0(e),187),c,!1).a;a<t?(o=c,u=c):i=c,c=(u-i)/2+i}return o}function gNn(n){var t,e,i,r;return isNaN(n)?(X7(),gtt):n<-0x8000000000000000?(X7(),wtt):n>=0x8000000000000000?(X7(),btt):(i=!1,n<0&&(i=!0,n=-n),e=0,n>=OQn&&(n-=(e=CJ(n/OQn))*OQn),t=0,n>=IQn&&(n-=(t=CJ(n/IQn))*IQn),r=M$(CJ(n),t,e),i&&Oon(r),r)}function pNn(n,t){var e,i,r,c;for(e=!t||!n.u.Hc((lIn(),eIt)),c=0,r=new Wb(n.e.Cf());r.a<r.c.c.length;){if((i=BB(n0(r),838)).Hf()==(kUn(),PIt))throw Hp(new _y("Label and node size calculator can only be used with ports that have port sides assigned."));i.vf(c++),Whn(n,i,e)}}function vNn(n,t){var e,i,r,c;return(i=t.Hh(n.a))&&(!i.b&&(i.b=new Jx((gWn(),k$t),X$t,i)),null!=(e=SD(cdn(i.b,J9n)))&&cL(c=-1==(r=e.lastIndexOf("#"))?uD(n,t.Aj(),e):0==r?M9(n,null,e.substr(1)):M9(n,e.substr(0,r),e.substr(r+1)),148))?BB(c,148):null}function mNn(n,t){var e,i,r,c;return(e=t.Hh(n.a))&&(!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),null!=(r=SD(cdn(e.b,k7n)))&&cL(c=-1==(i=r.lastIndexOf("#"))?uD(n,t.Aj(),r):0==i?M9(n,null,r.substr(1)):M9(n,r.substr(0,i),r.substr(i+1)),148))?BB(c,148):null}function yNn(n){var t,e,i,r,c;for(e=new Wb(n.a.a);e.a<e.c.c.length;){for((t=BB(n0(e),307)).j=null,c=t.a.a.ec().Kc();c.Ob();)kO((i=BB(c.Pb(),57)).b),(!t.j||i.d.c<t.j.d.c)&&(t.j=i);for(r=t.a.a.ec().Kc();r.Ob();)(i=BB(r.Pb(),57)).b.a=i.d.c-t.j.d.c,i.b.b=i.d.d-t.j.d.d}return n}function kNn(n){var t,e,i,r,c;for(e=new Wb(n.a.a);e.a<e.c.c.length;){for((t=BB(n0(e),189)).f=null,c=t.a.a.ec().Kc();c.Ob();)kO((i=BB(c.Pb(),81)).e),(!t.f||i.g.c<t.f.g.c)&&(t.f=i);for(r=t.a.a.ec().Kc();r.Ob();)(i=BB(r.Pb(),81)).e.a=i.g.c-t.f.g.c,i.e.b=i.g.d-t.f.g.d}return n}function jNn(n){var t,i,r;return i=BB(n.a,19).a,r=BB(n.b,19).a,i<(t=e.Math.max(e.Math.abs(i),e.Math.abs(r)))&&r==-t?new rI(iln(i+1),iln(r)):i==t&&r<t?new rI(iln(i),iln(r+1)):i>=-t&&r==t?new rI(iln(i-1),iln(r)):new rI(iln(i),iln(r-1))}function ENn(){return lWn(),Pun(Gk(ust,1),$Vn,77,0,[rot,tot,cot,kot,Fot,Mot,Uot,Oot,Kot,got,Not,Iot,_ot,lot,Wot,Vut,Lot,Hot,jot,Bot,Qot,Dot,Qut,Rot,Yot,Got,Vot,Eot,sot,Tot,yot,Xot,Zut,uot,Pot,Jut,Cot,vot,bot,Aot,dot,eot,not,mot,wot,$ot,zot,Yut,xot,pot,Sot,hot,oot,qot,aot,fot,iot])}function TNn(n,t,e){n.d=0,n.b=0,t.k==(uSn(),Iut)&&e.k==Iut&&BB(mMn(t,(hWn(),dlt)),10)==BB(mMn(e,dlt),10)&&(S7(t).j==(kUn(),sIt)?q$n(n,t,e):q$n(n,e,t)),t.k==Iut&&e.k==Put?S7(t).j==(kUn(),sIt)?n.d=1:n.b=1:e.k==Iut&&t.k==Put&&(S7(e).j==(kUn(),sIt)?n.b=1:n.d=1),umn(n,t,e)}function MNn(n){var t,e,i,r,c;return c=ATn(n),null!=n.a&&AH(c,"category",n.a),!WE(new Cb(n.d))&&(rtn(c,"knownOptions",i=new Cl),t=new ep(i),e5(new Cb(n.d),t)),!WE(n.g)&&(rtn(c,"supportedFeatures",r=new Cl),e=new ip(r),e5(n.g,e)),c}function SNn(n){var t,e,i,r,c,a,u,o;for(t=336,e=0,r=new sR(n.length),u=0,o=(a=n).length;u<o;++u)Qln(c=a[u]),EW(c),i=c.a,WB(r.a,yX(i)),t&=i.qd(),e=Ysn(e,i.rd());return BB(BB(XU(new Rq(null,qTn(new w1((WX(),Nwn(r.a)),16),new k,t,e)),new El(n)),670),833)}function PNn(n,t){var e;n.d&&(t.c!=n.e.c||fcn(n.e.b,t.b))&&(WB(n.f,n.d),n.a=n.d.c+n.d.b,n.d=null,n.e=null),nA(t.b)?n.c=t:n.b=t,(t.b==(Aun(),Zat)&&!t.a||t.b==nut&&t.a||t.b==tut&&t.a||t.b==eut&&!t.a)&&n.c&&n.b&&(e=new UV(n.a,n.c.d,t.c-n.a,n.b.d-n.c.d),n.d=e,n.e=t)}function CNn(n){var t;if(Ym.call(this),this.i=new lu,this.g=n,this.f=BB(n.e&&n.e(),9).length,0==this.f)throw Hp(new _y("There must be at least one phase in the phase enumeration."));this.c=new YK(t=BB(Vj(this.g),9),BB(SR(t,t.length),9),0),this.a=new B2,this.b=new xp}function INn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=7&&t){if(vkn(n,t))throw Hp(new _y(w6n+cPn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?hkn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=BB(t,49).gh(n,1,DOt,i)),(i=VG(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,7,t,t))}function ONn(n,t){var e,i;if(t!=n.Cb||n.Db>>16!=3&&t){if(vkn(n,t))throw Hp(new _y(w6n+Vfn(n)));i=null,n.Cb&&(i=(e=n.Db>>16)>=0?bkn(n,i):n.Cb.ih(n,-1-e,null,i)),t&&(i=BB(t,49).gh(n,0,BOt,i)),(i=QG(n,t,i))&&i.Fi()}else 0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,3,t,t))}function ANn(n,t){var e,i,r,c,a,u,o,s,h;return $On(),t.d>n.d&&(u=n,n=t,t=u),t.d<63?Xxn(n,t):(s=z5(n,a=(-2&n.d)<<4),h=z5(t,a),i=uBn(n,G5(s,a)),r=uBn(t,G5(h,a)),o=ANn(s,h),e=ANn(i,r),c=G5(c=$Hn($Hn(c=ANn(uBn(s,i),uBn(r,h)),o),e),a),$Hn($Hn(o=G5(o,a<<1),c),e))}function $Nn(n,t,e){var i,r,c,a,u;for(a=Lfn(n,e),u=x8(Out,a1n,10,t.length,0,1),i=0,c=a.Kc();c.Ob();)qy(TD(mMn(r=BB(c.Pb(),11),(hWn(),elt))))&&(u[i++]=BB(mMn(r,Elt),10));if(i<t.length)throw Hp(new Fy("Expected "+t.length+" hierarchical ports, but found only "+i+"."));return u}function LNn(n,t){var e,i,r,c,a,u;if(!n.tb){for(!n.rb&&(n.rb=new Jz(n,HAt,n)),u=new XT((c=n.rb).i),r=new AL(c);r.e!=r.i.gc();)i=BB(kpn(r),138),(e=BB(null==(a=i.ne())?jCn(u.f,null,i):ubn(u.g,a,i),138))&&(null==a?jCn(u.f,null,e):ubn(u.g,a,e));n.tb=u}return BB(SJ(n.tb,t),138)}function NNn(n,t){var e,i,r,c,a;if((null==n.i&&qFn(n),n.i).length,!n.p){for(a=new XT(1+(3*n.g.i/2|0)),r=new ax(n.g);r.e!=r.i.gc();)i=BB(jpn(r),170),(e=BB(null==(c=i.ne())?jCn(a.f,null,i):ubn(a.g,c,i),170))&&(null==c?jCn(a.f,null,e):ubn(a.g,c,e));n.p=a}return BB(SJ(n.p,t),170)}function xNn(n,t,e,i,r){var c,a,u,o;for(wgn(i+CY(e,e.$d()),r),tW(t,Lwn(e)),(c=e.f)&&xNn(n,t,c,"Caused by: ",!1),null==e.k&&(e.k=x8(Jnt,sVn,78,0,0,1)),u=0,o=(a=e.k).length;u<o;++u)xNn(n,t,a[u],"Suppressed: ",!1);null!=console.groupEnd&&console.groupEnd.call(console)}function DNn(n,t,e,i){var r,c,a,u;for(a=(u=t.e).length,c=t.q._f(u,e?0:a-1,e),c|=gRn(n,u[e?0:a-1],e,i),r=e?1:a-2;e?r<a:r>=0;r+=e?1:-1)c|=t.c.Sf(u,r,e,i&&!qy(TD(mMn(t.j,(hWn(),Jft))))&&!qy(TD(mMn(t.j,(hWn(),Ilt))))),c|=t.q._f(u,r,e),c|=gRn(n,u[r],e,i);return TU(n.c,t),c}function RNn(n,t,e){var i,r,c,a,u,o,s,h;for(s=0,h=(o=I2(n.j)).length;s<h;++s){if(u=o[s],e==(ain(),Hvt)||e==Gvt)for(c=0,a=(r=Z0(u.g)).length;c<a;++c)OSn(t,i=r[c])&&tBn(i,!0);if(e==qvt||e==Gvt)for(c=0,a=(r=Z0(u.e)).length;c<a;++c)ISn(t,i=r[c])&&tBn(i,!0)}}function KNn(n){var t,e;switch(t=null,e=null,eEn(n).g){case 1:kUn(),t=oIt,e=CIt;break;case 2:kUn(),t=SIt,e=sIt;break;case 3:kUn(),t=CIt,e=oIt;break;case 4:kUn(),t=sIt,e=SIt}Gl(n,BB($N(Oz(BB(h6(n.k,t),15).Oc(),Qst)),113)),ql(n,BB($N(Iz(BB(h6(n.k,e),15).Oc(),Qst)),113))}function _Nn(n){var t,e,i,r,c,a;if((r=BB(xq(n.j,0),11)).e.c.length+r.g.c.length==0)n.n.a=0;else{for(a=0,i=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(r),new Gw(r)])));dAn(i);)a+=(e=BB(U5(i),11)).i.n.a+e.n.a+e.a.a;c=(t=BB(mMn(n,(HXn(),npt)),8))?t.a:0,n.n.a=a/(r.e.c.length+r.g.c.length)-c}}function FNn(n,t){var e,i,r;for(i=new Wb(t.a);i.a<i.c.c.length;)e=BB(n0(i),221),LG(BB(e.b,65),XR(B$(BB(t.b,65).c),BB(t.b,65).a)),(r=Y_n(BB(t.b,65).b,BB(e.b,65).b))>1&&(n.a=!0),NG(BB(e.b,65),UR(B$(BB(t.b,65).c),kL(XR(B$(BB(e.b,65).a),BB(t.b,65).a),r))),QZ(n,t),FNn(n,e)}function BNn(n){var t,e,i,r,c,a;for(r=new Wb(n.a.a);r.a<r.c.c.length;)(e=BB(n0(r),189)).e=0,e.d.a.$b();for(i=new Wb(n.a.a);i.a<i.c.c.length;)for(t=(e=BB(n0(i),189)).a.a.ec().Kc();t.Ob();)for(a=BB(t.Pb(),81).f.Kc();a.Ob();)(c=BB(a.Pb(),81)).d!=e&&(TU(e.d,c),++c.d.e)}function HNn(n){var t,e,i,r,c,a,u,o;for(e=0,t=o=n.j.c.length,r=2*o,u=new Wb(n.j);u.a<u.c.c.length;)switch((a=BB(n0(u),11)).j.g){case 2:case 4:a.p=-1;break;case 1:case 3:i=a.e.c.length,c=a.g.c.length,a.p=i>0&&c>0?t++:i>0?e++:c>0?r++:e++}SQ(),m$(n.j,new bi)}function qNn(n){var t,e;e=null,t=BB(xq(n.g,0),17);do{if(Lx(e=t.d.i,(hWn(),flt)))return BB(mMn(e,flt),11).i;if(e.k!=(uSn(),Cut)&&dAn(new oz(ZL(lbn(e).a.Kc(),new h))))t=BB(U5(new oz(ZL(lbn(e).a.Kc(),new h))),17);else if(e.k!=Cut)return null}while(e&&e.k!=(uSn(),Cut));return e}function GNn(n,t){var e,i,r,c,a,u,o,s,h;for(u=t.j,a=t.g,o=BB(xq(u,u.c.length-1),113),l1(0,u.c.length),s=Zmn(n,a,o,h=BB(u.c[0],113)),c=1;c<u.c.length;c++)l1(c-1,u.c.length),e=BB(u.c[c-1],113),l1(c,u.c.length),(i=Zmn(n,a,e,r=BB(u.c[c],113)))>s&&(o=e,h=r,s=i);t.a=h,t.c=o}function zNn(n,t){var e;if(!ZU(n.b,t.b))throw Hp(new Fy("Invalid hitboxes for scanline constraint calculation."));(kun(t.b,BB(MR(n.b,t.b),57))||kun(t.b,BB(TR(n.b,t.b),57)))&&($T(),t.b),n.a[t.b.f]=BB(kK(n.b,t.b),57),(e=BB(yK(n.b,t.b),57))&&(n.a[e.f]=t.b)}function UNn(n){if(!n.a.d||!n.a.e)throw Hp(new Fy((ED(Hit),Hit.k+" must have a source and target "+(ED(qit),qit.k+" specified."))));if(n.a.d==n.a.e)throw Hp(new Fy("Network simplex does not support self-loops: "+n.a+" "+n.a.d+" "+n.a.e));return RN(n.a.d.g,n.a),RN(n.a.e.b,n.a),n.a}function XNn(n,t,e){var i,r,c,a,u,o,s;for(s=new dE(new Jd(n)),u=0,o=(a=Pun(Gk(Gut,1),u1n,11,0,[t,e])).length;u<o;++u)for(c=a[u],Mon(s.a,c,(hN(),ptt)),r=new m6(c.b);y$(r.a)||y$(r.b);)(i=BB(y$(r.a)?n0(r.a):n0(r.b),17)).c==i.d||ZU(s,c==i.c?i.d:i.c);return yX(s),new t_(s)}function WNn(n,t,e){var i,r,c,a,u,o;if(i=0,0!=t.b&&0!=e.b){c=spn(t,0),a=spn(e,0),u=Gy(MD(b3(c))),o=Gy(MD(b3(a))),r=!0;do{if(u>o-n.b&&u<o+n.b)return-1;u>o-n.a&&u<o+n.a&&++i,u<=o&&c.b!=c.d.c?u=Gy(MD(b3(c))):o<=u&&a.b!=a.d.c?o=Gy(MD(b3(a))):r=!1}while(r)}return i}function VNn(n,t,e,i,r){var c,a,u,o;for(o=new YK(c=BB(Vj(FIt),9),BB(SR(c,c.length),9),0),u=new Wb(n.j);u.a<u.c.c.length;)t[(a=BB(n0(u),11)).p]&&(BUn(a,t[a.p],i),orn(o,a.j));r?(GEn(n,t,(kUn(),oIt),2*e,i),GEn(n,t,CIt,2*e,i)):(GEn(n,t,(kUn(),sIt),2*e,i),GEn(n,t,SIt,2*e,i))}function QNn(n){var t,e,i,r,c;if(c=new Np,Otn(n.b,new kw(c)),n.b.c=x8(Ant,HWn,1,0,5,1),0!=c.c.length){for(l1(0,c.c.length),t=BB(c.c[0],78),e=1,i=c.c.length;e<i;++e)l1(e,c.c.length),(r=BB(c.c[e],78))!=t&>n(t,r);if(cL(t,60))throw Hp(BB(t,60));if(cL(t,289))throw Hp(BB(t,289))}}function YNn(n,t){var e,i,r,c;for(n=null==n?zWn:(kW(n),n),e=new Ik,c=0,i=0;i<t.length&&-1!=(r=n.indexOf("%s",c));)oO(e,n.substr(c,r-c)),uO(e,t[i++]),c=r+2;if(oO(e,n.substr(c)),i<t.length){for(e.a+=" [",uO(e,t[i++]);i<t.length;)e.a+=FWn,uO(e,t[i++]);e.a+="]"}return e.a}function JNn(n){var t,e,i,r;for(t=0,r=(i=n.length)-4,e=0;e<r;)b1(e+3,n.length),t=n.charCodeAt(e+3)+(b1(e+2,n.length),31*(n.charCodeAt(e+2)+(b1(e+1,n.length),31*(n.charCodeAt(e+1)+(b1(e,n.length),31*(n.charCodeAt(e)+31*t)))))),t|=0,e+=4;for(;e<i;)t=31*t+fV(n,e++);return t|=0}function ZNn(n){var t;for(t=new oz(ZL(lbn(n).a.Kc(),new h));dAn(t);)if(BB(U5(t),17).d.i.k!=(uSn(),Sut))throw Hp(new rk(P1n+gyn(n)+"' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen."))}function nxn(n,t,i,r){var c,a,u,o,s,f,l;for(o=0,s=new Wb(n.a);s.a<s.c.c.length;){for(u=0,a=new oz(ZL(fbn(BB(n0(s),10)).a.Kc(),new h));dAn(a);)f=g1((c=BB(U5(a),17)).c).b,l=g1(c.d).b,u=e.Math.max(u,e.Math.abs(l-f));o=e.Math.max(o,u)}return r*e.Math.min(1,t/i)*o}function txn(n){var t;return t=new Pk,0!=(256&n)&&(t.a+="F"),0!=(128&n)&&(t.a+="H"),0!=(512&n)&&(t.a+="X"),0!=(2&n)&&(t.a+="i"),0!=(8&n)&&(t.a+="m"),0!=(4&n)&&(t.a+="s"),0!=(32&n)&&(t.a+="u"),0!=(64&n)&&(t.a+="w"),0!=(16&n)&&(t.a+="x"),0!=(n&k6n)&&(t.a+=","),Uy(t.a)}function exn(n,t){var e,i,r;for(OTn(t,"Resize child graph to fit parent.",1),i=new Wb(n.b);i.a<i.c.c.length;)e=BB(n0(i),29),gun(n.a,e.a),e.a.c=x8(Ant,HWn,1,0,5,1);for(r=new Wb(n.a);r.a<r.c.c.length;)PZ(BB(n0(r),10),null);n.b.c=x8(Ant,HWn,1,0,5,1),Bxn(n),n.e&&S_n(n.e,n),HSn(t)}function ixn(n){var t,e,i,r,c,a,u;if(r=(i=n.b).e,c=LK(BB(mMn(i,(HXn(),ept)),98)),e=!!r&&BB(mMn(r,(hWn(),Zft)),21).Hc((bDn(),lft)),!c&&!e)for(u=new Kb(new Ob(n.e).a.vc().Kc());u.a.Ob();)t=BB(u.a.Pb(),42),(a=BB(t.dd(),113)).a&&(CZ(a.d,null),a.c=!0,n.a=!0)}function rxn(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(f=-1,l=0,s=0,h=(o=n).length;s<h;++s){for(a=0,u=(c=o[s]).length;a<u;++a)for(r=c[a],t=new pP(-1==f?n[0]:n[f],okn(r)),e=0;e<r.j.c.length;e++)for(i=e+1;i<r.j.c.length;i++)Nz(t,BB(xq(r.j,e),11),BB(xq(r.j,i),11))>0&&++l;++f}return l}function cxn(n,t){var e,i,r,c,a;for(a=BB(mMn(t,(CAn(),Lkt)),425),c=spn(t.b,0);c.b!=c.d.c;)if(r=BB(b3(c),86),0==n.b[r.g]){switch(a.g){case 0:Qvn(n,r);break;case 1:HAn(n,r)}n.b[r.g]=2}for(i=spn(n.a,0);i.b!=i.d.c;)ywn((e=BB(b3(i),188)).b.d,e,!0),ywn(e.c.b,e,!0);hon(t,(qqn(),lkt),n.a)}function axn(n,t){var e,i,r,c;return ZM(),t?t==(Uqn(),KLt)||(t==yLt||t==vLt||t==mLt)&&n!=pLt?new cUn(n,t):((e=(i=BB(t,677)).pk())||(kV(B7((IPn(),Z$t),t)),e=i.pk()),!e.i&&(e.i=new xp),!(r=BB(qI(AY((c=e.i).f,n)),1942))&&VW(c,n,r=new cUn(n,t)),r):aLt}function uxn(n,t){var e,i,r,c,a,u,o,s;for(u=BB(mMn(n,(hWn(),dlt)),11),o=Aon(Pun(Gk(PMt,1),sVn,8,0,[u.i.n,u.n,u.a])).a,s=n.i.n.b,r=0,c=(i=Z0(n.e)).length;r<c;++r)MZ(e=i[r],u),fO(e.a,new xC(o,s)),t&&((a=BB(mMn(e,(HXn(),vgt)),74))||(a=new km,hon(e,vgt,a)),DH(a,new xC(o,s)))}function oxn(n,t){var e,i,r,c,a,u,o,s;for(i=BB(mMn(n,(hWn(),dlt)),11),o=Aon(Pun(Gk(PMt,1),sVn,8,0,[i.i.n,i.n,i.a])).a,s=n.i.n.b,a=0,u=(c=Z0(n.g)).length;a<u;++a)SZ(r=c[a],i),hO(r.a,new xC(o,s)),t&&((e=BB(mMn(r,(HXn(),vgt)),74))||(e=new km,hon(r,vgt,e)),DH(e,new xC(o,s)))}function sxn(n,t){var e,i,r,c,a;for(n.b=new Np,n.d=BB(mMn(t,(hWn(),Slt)),230),n.e=c0(n.d),c=new YT,r=u6(Pun(Gk(jut,1),JZn,37,0,[t])),a=0;a<r.c.length;)l1(a,r.c.length),(i=BB(r.c[a],37)).p=a++,gun(r,(e=new CGn(i,n.a,n.b)).b),WB(n.b,e),e.s&&nX(spn(c,0),e);return n.c=new Rv,c}function hxn(n,t){var e,i,r,c,a,u;for(a=BB(BB(h6(n.r,t),21),84).Kc();a.Ob();)(e=(c=BB(a.Pb(),111)).c?VH(c.c):0)>0?c.a?e>(u=c.b.rf().a)&&(r=(e-u)/2,c.d.b=r,c.d.c=r):c.d.c=n.s+e:Hz(n.u)&&((i=_Tn(c.b)).c<0&&(c.d.b=-i.c),i.c+i.b>c.b.rf().a&&(c.d.c=i.c+i.b-c.b.rf().a))}function fxn(n,t){var e,i;for(OTn(t,"Semi-Interactive Crossing Minimization Processor",1),e=!1,i=new Wb(n.b);i.a<i.c.c.length;)e|=null!=$fn(ytn(AV(AV(new Rq(null,new w1(BB(n0(i),29).a,16)),new Qi),new Yi),new Ji),new Zi).a;e&&hon(n,(hWn(),alt),(hN(),!0)),HSn(t)}function lxn(n,t,e){var i,r,c;if(!(r=e)&&(r=new Xm),OTn(r,"Layout",n.a.c.length),qy(TD(mMn(t,(CAn(),Ekt)))))for($T(),i=0;i<n.a.c.length;i++)i++,nE(tsn(BB(xq(n.a,i),51)));for(c=new Wb(n.a);c.a<c.c.c.length;)BB(n0(c),51).pf(t,mcn(r,1));HSn(r)}function bxn(n){var t,i;if(t=BB(n.a,19).a,i=BB(n.b,19).a,t>=0){if(t==i)return new rI(iln(-t-1),iln(-t-1));if(t==-i)return new rI(iln(-t),iln(i+1))}return e.Math.abs(t)>e.Math.abs(i)?new rI(iln(-t),iln(t<0?i:i+1)):new rI(iln(t+1),iln(i))}function wxn(n){var t,e;e=BB(mMn(n,(HXn(),kgt)),163),t=BB(mMn(n,(hWn(),ilt)),303),e==(Tbn(),Flt)?(hon(n,kgt,qlt),hon(n,ilt,(z7(),Cft))):e==Hlt?(hon(n,kgt,qlt),hon(n,ilt,(z7(),Sft))):t==(z7(),Cft)?(hon(n,kgt,Flt),hon(n,ilt,Pft)):t==Sft&&(hon(n,kgt,Hlt),hon(n,ilt,Pft))}function dxn(){dxn=O,jyt=new oa,vyt=dq(new B2,(yMn(),_at),(lWn(),jot)),kyt=WG(dq(new B2,_at,Dot),Bat,xot),Eyt=ogn(ogn(FM(WG(dq(new B2,Rat,Uot),Bat,zot),Fat),Got),Xot),myt=WG(dq(dq(dq(new B2,Kat,Mot),Fat,Pot),Fat,Cot),Bat,Sot),yyt=WG(dq(dq(new B2,Fat,Cot),Fat,uot),Bat,aot)}function gxn(){gxn=O,Cyt=dq(WG(new B2,(yMn(),Bat),(lWn(),hot)),_at,jot),$yt=ogn(ogn(FM(WG(dq(new B2,Rat,Uot),Bat,zot),Fat),Got),Xot),Iyt=WG(dq(dq(dq(new B2,Kat,Mot),Fat,Pot),Fat,Cot),Bat,Sot),Ayt=dq(dq(new B2,_at,Dot),Bat,xot),Oyt=WG(dq(dq(new B2,Fat,Cot),Fat,uot),Bat,aot)}function pxn(n,t,e,i,r){var c,a;(b5(t)||t.c.i.c!=t.d.i.c)&&nrn(Aon(Pun(Gk(PMt,1),sVn,8,0,[r.i.n,r.n,r.a])),e)||b5(t)||(t.c==r?Kx(t.a,0,new wA(e)):DH(t.a,new wA(e)),i&&!FT(n.a,e)&&((a=BB(mMn(t,(HXn(),vgt)),74))||(a=new km,hon(t,vgt,a)),r5(a,c=new wA(e),a.c.b,a.c),TU(n.a,c)))}function vxn(n){var t;for(t=new oz(ZL(fbn(n).a.Kc(),new h));dAn(t);)if(BB(U5(t),17).c.i.k!=(uSn(),Sut))throw Hp(new rk(P1n+gyn(n)+"' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."))}function mxn(n,t,e){var i,r,c,a,u,o;if(0==(r=pbn(254&n.Db)))n.Eb=e;else{if(1==r)a=x8(Ant,HWn,1,2,5,1),0==Rmn(n,t)?(a[0]=e,a[1]=n.Eb):(a[0]=n.Eb,a[1]=e);else for(a=x8(Ant,HWn,1,r+1,5,1),c=een(n.Eb),i=2,u=0,o=0;i<=128;i<<=1)i==t?a[o++]=e:0!=(n.Db&i)&&(a[o++]=c[u++]);n.Eb=a}n.Db|=t}function yxn(n,t,i){var r,c,a,u;for(this.b=new Np,c=0,r=0,u=new Wb(n);u.a<u.c.c.length;)a=BB(n0(u),167),i&&KBn(a),WB(this.b,a),c+=a.o,r+=a.p;this.b.c.length>0&&(c+=(a=BB(xq(this.b,0),167)).o,r+=a.p),c*=2,r*=2,t>1?c=CJ(e.Math.ceil(c*t)):r=CJ(e.Math.ceil(r/t)),this.a=new qwn(c,r)}function kxn(n,t,i,r,c,a){var u,o,s,h,f,l,b,w,d,g;for(h=r,t.j&&t.o?(d=(b=BB(RX(n.f,t.A),57)).d.c+b.d.b,--h):d=t.a.c+t.a.b,f=c,i.q&&i.o?(s=(b=BB(RX(n.f,i.C),57)).d.c,++f):s=i.a.c,w=d+(o=(s-d)/e.Math.max(2,f-h)),l=h;l<f;++l)g=(u=BB(a.Xb(l),128)).a.b,u.a.c=w-g/2,w+=o}function jxn(n,t,e,i,r,c){var a,u,o,s,h,f;for(s=e.c.length,c&&(n.c=x8(ANt,hQn,25,t.length,15,1)),a=r?0:t.length-1;r?a<t.length:a>=0;a+=r?1:-1){for(u=t[a],o=i==(kUn(),oIt)?r?abn(u,i):ean(abn(u,i)):r?ean(abn(u,i)):abn(u,i),c&&(n.c[u.p]=o.gc()),f=o.Kc();f.Ob();)h=BB(f.Pb(),11),n.d[h.p]=s++;gun(e,o)}}function Exn(n,t,e){var i,r,c,a,u,o,s,h;for(c=Gy(MD(n.b.Kc().Pb())),s=Gy(MD(Wan(t.b))),i=kL(B$(n.a),s-e),r=kL(B$(t.a),e-c),kL(h=UR(i,r),1/(s-c)),this.a=h,this.b=new Np,u=!0,(a=n.b.Kc()).Pb();a.Ob();)o=Gy(MD(a.Pb())),u&&o-e>D3n&&(this.b.Fc(e),u=!1),this.b.Fc(o);u&&this.b.Fc(e)}function Txn(n){var t,e,i,r;if(hKn(n,n.n),n.d.c.length>0){for(nk(n.c);pAn(n,BB(n0(new Wb(n.e.a)),121))<n.e.a.c.length;){for(r=(t=Ryn(n)).e.e-t.d.e-t.a,t.e.j&&(r=-r),i=new Wb(n.e.a);i.a<i.c.c.length;)(e=BB(n0(i),121)).j&&(e.e+=r);nk(n.c)}nk(n.c),pIn(n,BB(n0(new Wb(n.e.a)),121)),gGn(n)}}function Mxn(n,t){var e,i,r,c,a;for(r=BB(h6(n.a,(LEn(),Mst)),15).Kc();r.Ob();)switch(i=BB(r.Pb(),101),e=BB(xq(i.j,0),113).d.j,m$(c=new t_(i.j),new Jr),t.g){case 1:NEn(n,c,e,(Crn(),Dst),1);break;case 0:NEn(n,new s1(c,0,a=_Ln(c)),e,(Crn(),Dst),0),NEn(n,new s1(c,a,c.c.length),e,Dst,1)}}function Sxn(n,t){var e,i;if(Nun(),e=T5(cin(),t.tg())){if(i=e.j,cL(n,239))return rZ(BB(n,33))?SN(i,(rpn(),sMt))||SN(i,hMt):SN(i,(rpn(),sMt));if(cL(n,352))return SN(i,(rpn(),uMt));if(cL(n,186))return SN(i,(rpn(),fMt));if(cL(n,354))return SN(i,(rpn(),oMt))}return!0}function Pxn(n,t,e){var i,r,c,a,u,o;if(c=(r=e).ak(),$xn(n.e,c)){if(c.hi())for(i=BB(n.g,119),a=0;a<n.i;++a)if(Nfn(u=i[a],r)&&a!=t)throw Hp(new _y(a8n))}else for(o=axn(n.e.Tg(),c),i=BB(n.g,119),a=0;a<n.i;++a)if(u=i[a],o.rl(u.ak())&&a!=t)throw Hp(new _y(I7n));return BB(ovn(n,t,e),72)}function Cxn(n,t){if(t instanceof Object)try{if(t.__java$exception=n,-1!=navigator.userAgent.toLowerCase().indexOf("msie")&&$doc.documentMode<9)return;var e=n;Object.defineProperties(t,{cause:{get:function(){var n=e.Zd();return n&&n.Xd()}},suppressed:{get:function(){return e.Yd()}}})}catch(i){}}function Ixn(n,t){var e,i,r,c,a;if(i=t>>5,t&=31,i>=n.d)return n.e<0?(ODn(),Ytt):(ODn(),eet);if(c=n.d-i,QSn(r=x8(ANt,hQn,25,c+1,15,1),c,n.a,i,t),n.e<0){for(e=0;e<i&&0==n.a[e];e++);if(e<i||t>0&&n.a[e]<<32-t!=0){for(e=0;e<c&&-1==r[e];e++)r[e]=0;e==c&&++c,++r[e]}}return X0(a=new lU(n.e,c,r)),a}function Oxn(n){var t,e,i,r;return e=new $w(r=WJ(n)),i=new Lw(r),gun(t=new Np,(!n.d&&(n.d=new hK(_Ot,n,8,5)),n.d)),gun(t,(!n.e&&(n.e=new hK(_Ot,n,7,4)),n.e)),BB(P4($V(AV(new Rq(null,new w1(t,16)),e),i),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Xet),Uet]))),21)}function Axn(n,t,e,i){var r,c,a,u,o;if(ZM(),u=BB(t,66).Oj(),$xn(n.e,t)){if(t.hi()&&UFn(n,t,i,cL(t,99)&&0!=(BB(t,18).Bb&BQn)))throw Hp(new _y(a8n))}else for(o=axn(n.e.Tg(),t),r=BB(n.g,119),a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak()))throw Hp(new _y(I7n));sln(n,EPn(n,t,e),u?BB(i,72):Z3(t,i))}function $xn(n,t){var e,i,r;return ZM(),!!t.$j()||-2==t.Zj()&&(t==(TOn(),lLt)||t==sLt||t==hLt||t==fLt||!(Awn(r=n.Tg(),t)>=0)&&(!(e=Fqn((IPn(),Z$t),r,t))||((i=e.Zj())>1||-1==i)&&3!=DW(B7(Z$t,e))))}function Lxn(n,t,e,i){var r,c,a,u,o;return u=PTn(BB(Wtn((!t.b&&(t.b=new hK(KOt,t,4,7)),t.b),0),82)),o=PTn(BB(Wtn((!t.c&&(t.c=new hK(KOt,t,5,8)),t.c),0),82)),JJ(u)==JJ(o)||Ctn(o,u)?null:(a=XJ(t))==e?i:(c=BB(RX(n.a,a),10))&&(r=c.e)?r:null}function Nxn(n,t){var e;switch(OTn(t,"Label side selection ("+(e=BB(mMn(n,(HXn(),Jdt)),276))+")",1),e.g){case 0:TAn(n,(Xyn(),jCt));break;case 1:TAn(n,(Xyn(),ECt));break;case 2:sBn(n,(Xyn(),jCt));break;case 3:sBn(n,(Xyn(),ECt));break;case 4:uDn(n,(Xyn(),jCt));break;case 5:uDn(n,(Xyn(),ECt))}HSn(t)}function xxn(n,t,e){var i,r,c,a,u;if((c=n[lj(e,n.length)])[0].k==(uSn(),Mut))for(r=fj(e,c.length),u=t.j,i=0;i<u.c.length;i++)l1(i,u.c.length),a=BB(u.c[i],11),(e?a.j==(kUn(),oIt):a.j==(kUn(),CIt))&&qy(TD(mMn(a,(hWn(),elt))))&&(c5(u,i,BB(mMn(c[r],(hWn(),dlt)),11)),r+=e?1:-1)}function Dxn(n,t){var e,i,r,c,a;a=new Np,e=t;do{(c=BB(RX(n.b,e),128)).B=e.c,c.D=e.d,a.c[a.c.length]=c,e=BB(RX(n.k,e),17)}while(e);return l1(0,a.c.length),(i=BB(a.c[0],128)).j=!0,i.A=BB(i.d.a.ec().Kc().Pb(),17).c.i,(r=BB(xq(a,a.c.length-1),128)).q=!0,r.C=BB(r.d.a.ec().Kc().Pb(),17).d.i,a}function Rxn(n){if(null==n.g)switch(n.p){case 0:n.g=fZ(n)?(hN(),vtt):(hN(),ptt);break;case 1:n.g=Pnn(D3(n));break;case 2:n.g=fun(Q1(n));break;case 3:n.g=OW(n);break;case 4:n.g=new Nb(IW(n));break;case 6:n.g=jgn(AW(n));break;case 5:n.g=iln(hJ(n));break;case 7:n.g=rln(_3(n))}return n.g}function Kxn(n){if(null==n.n)switch(n.p){case 0:n.n=lZ(n)?(hN(),vtt):(hN(),ptt);break;case 1:n.n=Pnn(R3(n));break;case 2:n.n=fun(Y1(n));break;case 3:n.n=LW(n);break;case 4:n.n=new Nb(NW(n));break;case 6:n.n=jgn($W(n));break;case 5:n.n=iln(fJ(n));break;case 7:n.n=rln(K3(n))}return n.n}function _xn(n){var t,e,i,r,c,a;for(r=new Wb(n.a.a);r.a<r.c.c.length;)(e=BB(n0(r),307)).g=0,e.i=0,e.e.a.$b();for(i=new Wb(n.a.a);i.a<i.c.c.length;)for(t=(e=BB(n0(i),307)).a.a.ec().Kc();t.Ob();)for(a=BB(t.Pb(),57).c.Kc();a.Ob();)(c=BB(a.Pb(),57)).a!=e&&(TU(e.e,c),++c.a.g,++c.a.i)}function Fxn(n,t){var e,i,r;if(!ZU(n.a,t.b))throw Hp(new Fy("Invalid hitboxes for scanline overlap calculation."));for(r=!1,i=new Fb(new BR(new xN(new _b(n.a.a).a).b));aS(i.a.a);)if(e=BB(mx(i.a).cd(),65),eon(t.b,e))xj(n.b.a,t.b,e),r=!0;else if(r)break}function Bxn(n){var t,i,r,c,a;c=BB(mMn(n,(HXn(),Fgt)),21),a=BB(mMn(n,qgt),21),t=new wA(i=new xC(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)),c.Hc((mdn(),DIt))&&(r=BB(mMn(n,Hgt),8),a.Hc((n_n(),GIt))&&(r.a<=0&&(r.a=20),r.b<=0&&(r.b=20)),t.a=e.Math.max(i.a,r.a),t.b=e.Math.max(i.b,r.b)),XBn(n,i,t)}function Hxn(n,t){var e,i,r,c,a,u,o,s;r=t?new pc:new vc,c=!1;do{for(c=!1,a=(t?ean(n.b):n.b).Kc();a.Ob();)for(s=a0(BB(a.Pb(),29).a),t||new fy(s),o=new Wb(s);o.a<o.c.c.length;)u=BB(n0(o),10),r.Mb(u)&&(i=u,e=BB(mMn(u,(hWn(),Rft)),305),c=eRn(i,t?e.b:e.k,t,!1))}while(c)}function qxn(n,t,e){var i,r,c,a;for(OTn(e,"Longest path layering",1),n.a=t,a=n.a.a,n.b=x8(ANt,hQn,25,a.c.length,15,1),i=0,c=new Wb(a);c.a<c.c.c.length;)BB(n0(c),10).p=i,n.b[i]=-1,++i;for(r=new Wb(a);r.a<r.c.c.length;)D$n(n,BB(n0(r),10));a.c=x8(Ant,HWn,1,0,5,1),n.a=null,n.b=null,HSn(e)}function Gxn(n,t){var e,i,r;t.a?(ZU(n.b,t.b),n.a[t.b.i]=BB(kK(n.b,t.b),81),(e=BB(yK(n.b,t.b),81))&&(n.a[e.i]=t.b)):(!!(i=BB(kK(n.b,t.b),81))&&i==n.a[t.b.i]&&!!i.d&&i.d!=t.b.d&&i.f.Fc(t.b),!!(r=BB(yK(n.b,t.b),81))&&n.a[r.i]==t.b&&!!r.d&&r.d!=t.b.d&&t.b.f.Fc(r),MN(n.b,t.b))}function zxn(n,t){var i,r,c,a,u,o;return a=n.d,(o=Gy(MD(mMn(n,(HXn(),agt)))))<0&&hon(n,agt,o=0),t.o.b=o,u=e.Math.floor(o/2),qCn(r=new CSn,(kUn(),CIt)),CZ(r,t),r.n.b=u,qCn(c=new CSn,oIt),CZ(c,t),c.n.b=u,MZ(n,r),qan(i=new wY,n),hon(i,vgt,null),SZ(i,c),MZ(i,a),jFn(t,n,i),sCn(n,i),i}function Uxn(n){var t,e;return e=BB(mMn(n,(hWn(),Zft)),21),t=new B2,e.Hc((bDn(),bft))&&(Jcn(t,byt),Jcn(t,dyt)),(e.Hc(dft)||qy(TD(mMn(n,(HXn(),ugt)))))&&(Jcn(t,dyt),e.Hc(gft)&&Jcn(t,gyt)),e.Hc(lft)&&Jcn(t,lyt),e.Hc(vft)&&Jcn(t,pyt),e.Hc(wft)&&Jcn(t,wyt),e.Hc(sft)&&Jcn(t,hyt),e.Hc(fft)&&Jcn(t,fyt),t}function Xxn(n,t){var e,i,r,c,a,u,o,s,h;return c=(e=n.d)+(i=t.d),a=n.e!=t.e?-1:1,2==c?(h=dG(o=cbn(e0(n.a[0],UQn),e0(t.a[0],UQn))),0==(s=dG(jz(o,32)))?new X6(a,h):new lU(a,2,Pun(Gk(ANt,1),hQn,25,15,[h,s]))):(Dfn(n.a,e,t.a,i,r=x8(ANt,hQn,25,c,15,1)),X0(u=new lU(a,c,r)),u)}function Wxn(n,t,e,i){var r,c;return t?0==(r=n.a.ue(e.d,t.d))?(i.d=pR(t,e.e),i.b=!0,t):(c=r<0?0:1,t.a[c]=Wxn(n,t.a[c],e,i),Vy(t.a[c])&&(Vy(t.a[1-c])?(t.b=!0,t.a[0].b=!1,t.a[1].b=!1):Vy(t.a[c].a[c])?t=wrn(t,1-c):Vy(t.a[c].a[1-c])&&(t=r2(t,1-c))),t):e}function Vxn(n,t,i){var r,c,a,u;c=n.i,r=n.n,Y5(n,(Dtn(),Git),c.c+r.b,i),Y5(n,Uit,c.c+c.b-r.c-i[2],i),u=c.b-r.b-r.c,i[0]>0&&(i[0]+=n.d,u-=i[0]),i[2]>0&&(i[2]+=n.d,u-=i[2]),a=e.Math.max(0,u),i[1]=e.Math.max(i[1],u),Y5(n,zit,c.c+r.b+i[0]-(i[1]-u)/2,i),t==zit&&(n.c.b=a,n.c.c=c.c+r.b+(a-u)/2)}function Qxn(){this.c=x8(xNt,qQn,25,(kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length,15,1),this.b=x8(xNt,qQn,25,Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt]).length,15,1),this.a=x8(xNt,qQn,25,Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt]).length,15,1),mS(this.c,RQn),mS(this.b,KQn),mS(this.a,KQn)}function Yxn(n,t,e){var i,r,c,a;if(t<=e?(r=t,c=e):(r=e,c=t),i=0,null==n.b)n.b=x8(ANt,hQn,25,2,15,1),n.b[0]=r,n.b[1]=c,n.c=!0;else{if(i=n.b.length,n.b[i-1]+1==r)return void(n.b[i-1]=c);a=x8(ANt,hQn,25,i+2,15,1),aHn(n.b,0,a,0,i),n.b=a,n.b[i-1]>=r&&(n.c=!1,n.a=!1),n.b[i++]=r,n.b[i]=c,n.c||T$n(n)}}function Jxn(n,t,e){var i,r,c,a,u,o,s;for(s=t.d,n.a=new J6(s.c.length),n.c=new xp,u=new Wb(s);u.a<u.c.c.length;)a=BB(n0(u),101),c=new Fan(null),WB(n.a,c),VW(n.c,a,c);for(n.b=new xp,vCn(n,t),i=0;i<s.c.length-1;i++)for(o=BB(xq(t.d,i),101),r=i+1;r<s.c.length;r++)WLn(n,o,BB(xq(t.d,r),101),e)}function Zxn(n,t,e){var i,r,c,a,u,o;if(!h3(t)){for(OTn(o=mcn(e,(cL(t,14)?BB(t,14).gc():F3(t.Kc()))/n.a|0),z3n,1),u=new Ia,a=0,c=t.Kc();c.Ob();)i=BB(c.Pb(),86),u=Wen(Pun(Gk(xnt,1),HWn,20,0,[u,new bg(i)])),a<i.f.b&&(a=i.f.b);for(r=t.Kc();r.Ob();)hon(i=BB(r.Pb(),86),(qqn(),ukt),a);HSn(o),Zxn(n,u,e)}}function nDn(n,t){var i,r,c,a,u,o,s;for(i=KQn,uSn(),o=Cut,c=new Wb(t.a);c.a<c.c.c.length;)(a=(r=BB(n0(c),10)).k)!=Cut&&(null==(u=MD(mMn(r,(hWn(),plt))))?(i=e.Math.max(i,0),r.n.b=i+XN(n.a,a,o)):r.n.b=(kW(u),u)),s=XN(n.a,a,o),r.n.b<i+s+r.d.d&&(r.n.b=i+s+r.d.d),i=r.n.b+r.o.b+r.d.a,o=a}function tDn(n,t,e){var i,r,c;for(qan(c=new EAn(XXn(qSn(cDn(t,!1,!1)),Gy(MD(ZAn(t,(Epn(),pct))))+n.a)),t),VW(n.b,t,c),e.c[e.c.length]=c,!t.n&&(t.n=new eU(zOt,t,1,7)),r=new AL(t.n);r.e!=r.i.gc();)i=JRn(n,BB(kpn(r),137),!0,0,0),e.c[e.c.length]=i;return c}function eDn(n,t,e,i,r){var c,a,u;if(n.d&&n.d.lg(r),Dvn(n,e,BB(r.Xb(0),33),!1))return!0;if(Dvn(n,i,BB(r.Xb(r.gc()-1),33),!0))return!0;if(NMn(n,r))return!0;for(u=r.Kc();u.Ob();)for(a=BB(u.Pb(),33),c=t.Kc();c.Ob();)if(_Dn(n,a,BB(c.Pb(),33)))return!0;return!1}function iDn(n,t,e){var i,r,c,a,u,o,s,h,f;f=t.c.length;n:for(c=BB((s=n.Yg(e))>=0?n._g(s,!1,!0):cOn(n,e,!1),58).Kc();c.Ob();){for(r=BB(c.Pb(),56),h=0;h<f;++h)if(l1(h,t.c.length),o=(a=BB(t.c[h],72)).dd(),u=a.ak(),i=r.bh(u,!1),null==o?null!=i:!Nfn(o,i))continue n;return r}return null}function rDn(n,t,e,i){var r,c,a,u;for(r=BB(DSn(t,(kUn(),CIt)).Kc().Pb(),11),c=BB(DSn(t,oIt).Kc().Pb(),11),u=new Wb(n.j);u.a<u.c.c.length;){for(a=BB(n0(u),11);0!=a.e.c.length;)MZ(BB(xq(a.e,0),17),r);for(;0!=a.g.c.length;)SZ(BB(xq(a.g,0),17),c)}e||hon(t,(hWn(),hlt),null),i||hon(t,(hWn(),flt),null)}function cDn(n,t,e){var i,r;if(0==(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i)return qun(n);if(i=BB(Wtn((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),0),202),t&&(sqn((!i.a&&(i.a=new $L(xOt,i,5)),i.a)),Ien(i,0),Aen(i,0),Ten(i,0),Oen(i,0)),e)for(!n.a&&(n.a=new eU(FOt,n,6,6)),r=n.a;r.i>1;)fDn(r,r.i-1);return i}function aDn(n,t){var e,i,r,c,a,u,o;for(OTn(t,"Comment post-processing",1),c=new Wb(n.b);c.a<c.c.c.length;){for(r=BB(n0(c),29),i=new Np,u=new Wb(r.a);u.a<u.c.c.length;)a=BB(n0(u),10),o=BB(mMn(a,(hWn(),Klt)),15),e=BB(mMn(a,Dft),15),(o||e)&&(Wzn(a,o,e),o&&gun(i,o),e&&gun(i,e));gun(r.a,i)}HSn(t)}function uDn(n,t){var e,i,r,c,a,u;for(e=new Lp,r=new Wb(n.b);r.a<r.c.c.length;){for(u=!0,i=0,a=new Wb(BB(n0(r),29).a);a.a<a.c.c.length;)switch((c=BB(n0(a),10)).k.g){case 4:++i;case 1:w3(e,c);break;case 0:oCn(c,t);default:e.b==e.c||p_n(e,i,u,!1,t),u=!1,i=0}e.b==e.c||p_n(e,i,u,!0,t)}}function oDn(n,t){var e,i,r,c,a,u;for(r=new Np,e=0;e<=n.i;e++)(i=new HX(t)).p=n.i-e,r.c[r.c.length]=i;for(u=new Wb(n.o);u.a<u.c.c.length;)PZ(a=BB(n0(u),10),BB(xq(r,n.i-n.f[a.p]),29));for(c=new Wb(r);c.a<c.c.c.length;)0==BB(n0(c),29).a.c.length&&AU(c);t.b.c=x8(Ant,HWn,1,0,5,1),gun(t.b,r)}function sDn(n,t){var e,i,r,c,a,u;for(e=0,u=new Wb(t);u.a<u.c.c.length;){for(a=BB(n0(u),11),nhn(n.b,n.d[a.p]),r=new m6(a.b);y$(r.a)||y$(r.b);)(c=ME(n,a==(i=BB(y$(r.a)?n0(r.a):n0(r.b),17)).c?i.d:i.c))>n.d[a.p]&&(e+=n5(n.b,c),d3(n.a,iln(c)));for(;!Wy(n.a);)Mnn(n.b,BB(dU(n.a),19).a)}return e}function hDn(n,t,e){var i,r,c,a;for(c=(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a).i,r=new AL((!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));r.e!=r.i.gc();)0==(!(i=BB(kpn(r),33)).a&&(i.a=new eU(UOt,i,10,11)),i.a).i||(c+=hDn(n,i,!1));if(e)for(a=JJ(t);a;)c+=(!a.a&&(a.a=new eU(UOt,a,10,11)),a.a).i,a=JJ(a);return c}function fDn(n,t){var e,i,r,c;return n.ej()?(i=null,r=n.fj(),n.ij()&&(i=n.kj(n.pi(t),null)),e=n.Zi(4,c=Lyn(n,t),null,t,r),n.bj()&&null!=c?(i=n.dj(c,i))?(i.Ei(e),i.Fi()):n.$i(e):i?(i.Ei(e),i.Fi()):n.$i(e),c):(c=Lyn(n,t),n.bj()&&null!=c&&(i=n.dj(c,null))&&i.Fi(),c)}function lDn(n){var t,i,r,c,a,u,o,s,h,f;for(h=n.a,t=new Rv,s=0,r=new Wb(n.d);r.a<r.c.c.length;){for(f=0,_rn((i=BB(n0(r),222)).b,new $n),u=spn(i.b,0);u.b!=u.d.c;)a=BB(b3(u),222),t.a._b(a)&&(c=i.c,f<(o=a.c).d+o.a+h&&f+c.a+h>o.d&&(f=o.d+o.a+h));i.c.d=f,t.a.zc(i,t),s=e.Math.max(s,i.c.d+i.c.a)}return s}function bDn(){bDn=O,hft=new LP("COMMENTS",0),lft=new LP("EXTERNAL_PORTS",1),bft=new LP("HYPEREDGES",2),wft=new LP("HYPERNODES",3),dft=new LP("NON_FREE_PORTS",4),gft=new LP("NORTH_SOUTH_PORTS",5),vft=new LP(G1n,6),sft=new LP("CENTER_LABELS",7),fft=new LP("END_LABELS",8),pft=new LP("PARTITIONS",9)}function wDn(n){var t,e,i,r,c;for(r=new Np,t=new $q((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a)),i=new oz(ZL(dLn(n).a.Kc(),new h));dAn(i);)cL(Wtn((!(e=BB(U5(i),79)).b&&(e.b=new hK(KOt,e,4,7)),e.b),0),186)||(c=PTn(BB(Wtn((!e.c&&(e.c=new hK(KOt,e,5,8)),e.c),0),82)),t.a._b(c)||(r.c[r.c.length]=c));return r}function dDn(n){var t,e,i,r,c;for(r=new Rv,t=new $q((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a)),i=new oz(ZL(dLn(n).a.Kc(),new h));dAn(i);)cL(Wtn((!(e=BB(U5(i),79)).b&&(e.b=new hK(KOt,e,4,7)),e.b),0),186)||(c=PTn(BB(Wtn((!e.c&&(e.c=new hK(KOt,e,5,8)),e.c),0),82)),t.a._b(c)||r.a.zc(c,r));return r}function gDn(n,t,e,i,r){return i<0?((i=zTn(n,r,Pun(Gk(Qtt,1),sVn,2,6,[YVn,JVn,ZVn,nQn,tQn,eQn,iQn,rQn,cQn,aQn,uQn,oQn]),t))<0&&(i=zTn(n,r,Pun(Gk(Qtt,1),sVn,2,6,["Jan","Feb","Mar","Apr",tQn,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),!(i<0||(e.k=i,0))):i>0&&(e.k=i-1,!0)}function pDn(n,t,e,i,r){return i<0?((i=zTn(n,r,Pun(Gk(Qtt,1),sVn,2,6,[YVn,JVn,ZVn,nQn,tQn,eQn,iQn,rQn,cQn,aQn,uQn,oQn]),t))<0&&(i=zTn(n,r,Pun(Gk(Qtt,1),sVn,2,6,["Jan","Feb","Mar","Apr",tQn,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"]),t)),!(i<0||(e.k=i,0))):i>0&&(e.k=i-1,!0)}function vDn(n,t,e,i,r,c){var a,u,o;if(u=32,i<0){if(t[0]>=n.length)return!1;if(43!=(u=fV(n,t[0]))&&45!=u)return!1;if(++t[0],(i=UIn(n,t))<0)return!1;45==u&&(i=-i)}return 32==u&&t[0]-e==2&&2==r.b&&(a=(o=(new AT).q.getFullYear()-sQn+sQn-80)%100,c.a=i==a,i+=100*(o/100|0)+(i<a?100:0)),c.p=i,!0}function mDn(n,t){var i,r,c;JJ(n)&&(c=BB(mMn(t,(HXn(),Fgt)),174),GI(ZAn(n,ept))===GI((QEn(),YCt))&&Ypn(n,ept,QCt),GM(),r=qzn(new Dy(JJ(n)),new JN(JJ(n)?new Dy(JJ(n)):null,n),!1,!0),orn(c,(mdn(),DIt)),(i=BB(mMn(t,Hgt),8)).a=e.Math.max(r.a,i.a),i.b=e.Math.max(r.b,i.b))}function yDn(n,t,e){var i,r,c,a,u,o;for(a=BB(mMn(n,(hWn(),nlt)),15).Kc();a.Ob();){switch(c=BB(a.Pb(),10),BB(mMn(c,(HXn(),kgt)),163).g){case 2:PZ(c,t);break;case 4:PZ(c,e)}for(r=new oz(ZL(hbn(c).a.Kc(),new h));dAn(r);)(i=BB(U5(r),17)).c&&i.d||(u=!i.d,o=BB(mMn(i,mlt),11),u?MZ(i,o):SZ(i,o))}}function kDn(){kDn=O,Bst=new WV(mJn,0,(kUn(),sIt),sIt),Gst=new WV(kJn,1,SIt,SIt),Fst=new WV(yJn,2,oIt,oIt),Xst=new WV(jJn,3,CIt,CIt),qst=new WV("NORTH_WEST_CORNER",4,CIt,sIt),Hst=new WV("NORTH_EAST_CORNER",5,sIt,oIt),Ust=new WV("SOUTH_WEST_CORNER",6,SIt,CIt),zst=new WV("SOUTH_EAST_CORNER",7,oIt,SIt)}function jDn(){jDn=O,MMt=Pun(Gk(LNt,1),FQn,25,14,[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368e3,{l:3506176,m:794077,h:1},{l:884736,m:916411,h:20},{l:3342336,m:3912489,h:363},{l:589824,m:3034138,h:6914},{l:3407872,m:1962506,h:138294}]),e.Math.pow(2,-65)}function EDn(n,t){var e,i,r,c,a;if(0==n.c.length)return new rI(iln(0),iln(0));for(e=(l1(0,n.c.length),BB(n.c[0],11)).j,a=0,c=t.g,i=t.g+1;a<n.c.length-1&&e.g<c;)e=(l1(++a,n.c.length),BB(n.c[a],11)).j;for(r=a;r<n.c.length-1&&e.g<i;)++r,e=(l1(a,n.c.length),BB(n.c[a],11)).j;return new rI(iln(a),iln(r))}function TDn(n,t,i){var r,c,a,u,o,s,h,f,l,b;for(a=t.c.length,l1(i,t.c.length),o=(u=BB(t.c[i],286)).a.o.a,l=u.c,b=0,h=u.c;h<=u.f;h++){if(o<=n.a[h])return h;for(f=n.a[h],s=null,c=i+1;c<a;c++)l1(c,t.c.length),(r=BB(t.c[c],286)).c<=h&&r.f>=h&&(s=r);s&&(f=e.Math.max(f,s.a.o.a)),f>b&&(l=h,b=f)}return l}function MDn(n,t,e){var i,r,c;if(n.e=e,n.d=0,n.b=0,n.f=1,n.i=t,16==(16&n.e)&&(n.i=pKn(n.i)),n.j=n.i.length,QXn(n),c=Vdn(n),n.d!=n.j)throw Hp(new ak(kWn((u$(),w8n))));if(n.g){for(i=0;i<n.g.a.c.length;i++)if(r=BB(bW(n.g,i),584),n.f<=r.a)throw Hp(new ak(kWn((u$(),d8n))));n.g.a.c=x8(Ant,HWn,1,0,5,1)}return c}function SDn(n,t){var e,i,r;if(null==t){for(!n.a&&(n.a=new eU(WAt,n,9,5)),i=new AL(n.a);i.e!=i.i.gc();)if(null==(null==(r=(e=BB(kpn(i),678)).c)?e.zb:r))return e}else for(!n.a&&(n.a=new eU(WAt,n,9,5)),i=new AL(n.a);i.e!=i.i.gc();)if(mK(t,null==(r=(e=BB(kpn(i),678)).c)?e.zb:r))return e;return null}function PDn(n,t){var e;switch(e=null,t.g){case 1:n.e.Xe((sWn(),ePt))&&(e=BB(n.e.We(ePt),249));break;case 3:n.e.Xe((sWn(),iPt))&&(e=BB(n.e.We(iPt),249));break;case 2:n.e.Xe((sWn(),tPt))&&(e=BB(n.e.We(tPt),249));break;case 4:n.e.Xe((sWn(),rPt))&&(e=BB(n.e.We(rPt),249))}return!e&&(e=BB(n.e.We((sWn(),ZSt)),249)),e}function CDn(n,t,e){var i,r,c,a,u,o;for(t.p=1,r=t.c,o=xwn(t,(ain(),qvt)).Kc();o.Ob();)for(i=new Wb(BB(o.Pb(),11).g);i.a<i.c.c.length;)t!=(u=BB(n0(i),17).d.i)&&u.c.p<=r.p&&((c=r.p+1)==e.b.c.length?((a=new HX(e)).p=c,WB(e.b,a),PZ(u,a)):PZ(u,a=BB(xq(e.b,c),29)),CDn(n,u,e))}function IDn(n,t,i){var r,c,a,u,o,s;for(c=i,a=0,o=new Wb(t);o.a<o.c.c.length;)Ypn(u=BB(n0(o),33),(Uyn(),Ljt),iln(c++)),s=wDn(u),r=e.Math.atan2(u.j+u.f/2,u.i+u.g/2),(r+=r<0?Z3n:0)<.7853981633974483||r>p4n?m$(s,n.b):r<=p4n&&r>v4n?m$(s,n.d):r<=v4n&&r>m4n?m$(s,n.c):r<=m4n&&m$(s,n.a),a=IDn(n,s,a);return c}function ODn(){var n;for(ODn=O,Jtt=new X6(1,1),net=new X6(1,10),eet=new X6(0,0),Ytt=new X6(-1,1),Ztt=Pun(Gk(oet,1),sVn,91,0,[eet,Jtt,new X6(1,2),new X6(1,3),new X6(1,4),new X6(1,5),new X6(1,6),new X6(1,7),new X6(1,8),new X6(1,9),net]),tet=x8(oet,sVn,91,32,0,1),n=0;n<tet.length;n++)tet[n]=npn(yz(1,n))}function ADn(n,t,e,i,r,c){var a,u,o,s;for(u=!jE(AV(n.Oc(),new aw(new Je))).sd((dM(),tit)),a=n,c==(Ffn(),HPt)&&(a=cL(a,152)?o6(BB(a,152)):cL(a,131)?BB(a,131).a:cL(a,54)?new fy(a):new CT(a)),s=a.Kc();s.Ob();)(o=BB(s.Pb(),70)).n.a=t.a,o.n.b=u?t.b+(i.b-o.o.b)/2:r?t.b:t.b+i.b-o.o.b,t.a+=o.o.a+e}function $Dn(n,t,e,i){var r,c,a,u,o;for(r=(i.c+i.a)/2,yQ(t.j),DH(t.j,r),yQ(e.e),DH(e.e,r),o=new zj,a=new Wb(n.f);a.a<a.c.c.length;)Rjn(o,t,u=BB(n0(a),129).a),Rjn(o,e,u);for(c=new Wb(n.k);c.a<c.c.c.length;)Rjn(o,t,u=BB(n0(c),129).b),Rjn(o,e,u);return o.b+=2,o.a+=LQ(t,n.q),o.a+=LQ(n.q,e),o}function LDn(n,t,e){var i,r,c,a,u;if(!h3(t)){for(OTn(u=mcn(e,(cL(t,14)?BB(t,14).gc():F3(t.Kc()))/n.a|0),z3n,1),a=new Aa,c=null,r=t.Kc();r.Ob();)i=BB(r.Pb(),86),a=Wen(Pun(Gk(xnt,1),HWn,20,0,[a,new bg(i)])),c&&(hon(c,(qqn(),bkt),i),hon(i,ckt,c),G8(i)==G8(c)&&(hon(c,wkt,i),hon(i,akt,c))),c=i;HSn(u),LDn(n,a,e)}}function NDn(n){var t,e,i,r,c,a,u;for(e=n.i,t=n.n,u=e.d,n.f==(G7(),rrt)?u+=(e.a-n.e.b)/2:n.f==irt&&(u+=e.a-n.e.b),r=new Wb(n.d);r.a<r.c.c.length;){switch(a=(i=BB(n0(r),181)).rf(),(c=new Gj).b=u,u+=a.b+n.a,n.b.g){case 0:c.a=e.c+t.b;break;case 1:c.a=e.c+t.b+(e.b-a.a)/2;break;case 2:c.a=e.c+e.b-t.c-a.a}i.tf(c)}}function xDn(n){var t,e,i,r,c,a,u;for(e=n.i,t=n.n,u=e.c,n.b==(J9(),Qit)?u+=(e.b-n.e.a)/2:n.b==Jit&&(u+=e.b-n.e.a),r=new Wb(n.d);r.a<r.c.c.length;){switch(a=(i=BB(n0(r),181)).rf(),(c=new Gj).a=u,u+=a.a+n.a,n.f.g){case 0:c.b=e.d+t.d;break;case 1:c.b=e.d+t.d+(e.a-a.b)/2;break;case 2:c.b=e.d+e.a-t.a-a.b}i.tf(c)}}function DDn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;s=e.a.c,a=e.a.c+e.a.b,l=(c=BB(RX(e.c,t),459)).f,b=c.a,u=new xC(s,l),h=new xC(a,b),r=s,e.p||(r+=n.c),o=new xC(r+=e.F+e.v*n.b,l),f=new xC(r,b),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[u,o])),e.d.a.gc()>1&&(i=new xC(r,e.b),DH(t.a,i)),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[f,h]))}function RDn(n){NM(n,new MTn(vj(wj(pj(gj(new du,_5n),"ELK Randomizer"),'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'),new Qu))),u2(n,_5n,QJn,LIt),u2(n,_5n,vZn,15),u2(n,_5n,yZn,iln(0)),u2(n,_5n,VJn,dZn)}function KDn(){var n,t,e,i,r,c;for(KDn=O,QLt=x8(NNt,v6n,25,255,15,1),YLt=x8(ONt,WVn,25,16,15,1),t=0;t<255;t++)QLt[t]=-1;for(e=57;e>=48;e--)QLt[e]=e-48<<24>>24;for(i=70;i>=65;i--)QLt[i]=i-65+10<<24>>24;for(r=102;r>=97;r--)QLt[r]=r-97+10<<24>>24;for(c=0;c<10;c++)YLt[c]=48+c&QVn;for(n=10;n<=15;n++)YLt[n]=65+n-10&QVn}function _Dn(n,t,e){var i,r,c,a,u,o,s,h;return u=t.i-n.g/2,o=e.i-n.g/2,s=t.j-n.g/2,h=e.j-n.g/2,c=t.g+n.g/2,a=e.g+n.g/2,i=t.f+n.g/2,r=e.f+n.g/2,u<o+a&&o<u&&s<h+r&&h<s||o<u+c&&u<o&&h<s+i&&s<h||u<o+a&&o<u&&s<h&&h<s+i||o<u+c&&u<o&&s<h+r&&h<s}function FDn(n){var t,i,r,c,a;c=BB(mMn(n,(HXn(),Fgt)),21),a=BB(mMn(n,qgt),21),t=new wA(i=new xC(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a)),c.Hc((mdn(),DIt))&&(r=BB(mMn(n,Hgt),8),a.Hc((n_n(),GIt))&&(r.a<=0&&(r.a=20),r.b<=0&&(r.b=20)),t.a=e.Math.max(i.a,r.a),t.b=e.Math.max(i.b,r.b)),qy(TD(mMn(n,Bgt)))||UBn(n,i,t)}function BDn(n,t){var e,i,r,c;for(c=abn(t,(kUn(),SIt)).Kc();c.Ob();)i=BB(c.Pb(),11),(e=BB(mMn(i,(hWn(),Elt)),10))&&UNn(aM(cM(uM(rM(new Hv,0),.1),n.i[t.p].d),n.i[e.p].a));for(r=abn(t,sIt).Kc();r.Ob();)i=BB(r.Pb(),11),(e=BB(mMn(i,(hWn(),Elt)),10))&&UNn(aM(cM(uM(rM(new Hv,0),.1),n.i[e.p].d),n.i[t.p].a))}function HDn(n){var t,e,i,r,c;if(!n.c){if(c=new Eo,null==(t=P$t).a.zc(n,t)){for(i=new AL(a4(n));i.e!=i.i.gc();)cL(r=lFn(e=BB(kpn(i),87)),88)&&pX(c,HDn(BB(r,26))),f9(c,e);t.a.Bc(n),t.a.gc()}$wn(c),chn(c),n.c=new NO((BB(Wtn(QQ((QX(),t$t).o),15),18),c.i),c.g),P5(n).b&=-33}return n.c}function qDn(n){var t;if(10!=n.c)throw Hp(new ak(kWn((u$(),g8n))));switch(t=n.a){case 110:t=10;break;case 114:t=13;break;case 116:t=9;break;case 92:case 124:case 46:case 94:case 45:case 63:case 42:case 43:case 123:case 125:case 40:case 41:case 91:case 93:break;default:throw Hp(new ak(kWn((u$(),U8n))))}return t}function GDn(n){var t,e,i,r;if(0==n.l&&0==n.m&&0==n.h)return"0";if(n.h==CQn&&0==n.m&&0==n.l)return"-9223372036854775808";if(n.h>>19!=0)return"-"+GDn(aon(n));for(e=n,i="";0!=e.l||0!=e.m||0!=e.h;){if(e=Aqn(e,F5(AQn),!0),t=""+TE(ltt),0!=e.l||0!=e.m||0!=e.h)for(r=9-t.length;r>0;r--)t="0"+t;i=t+i}return i}function zDn(){if(!Object.create||!Object.getOwnPropertyNames)return!1;var n="__proto__",t=Object.create(null);return void 0===t[n]&&0==Object.getOwnPropertyNames(t).length&&(t[n]=42,42===t[n]&&0!=Object.getOwnPropertyNames(t).length)}function UDn(n){var t,e,i,r,c,a,u;for(t=!1,e=0,r=new Wb(n.d.b);r.a<r.c.c.length;)for((i=BB(n0(r),29)).p=e++,a=new Wb(i.a);a.a<a.c.c.length;)c=BB(n0(a),10),!t&&!h3(hbn(c))&&(t=!0);u=EG((Ffn(),BPt),Pun(Gk(WPt,1),$Vn,103,0,[_Pt,FPt])),t||(orn(u,HPt),orn(u,KPt)),n.a=new ltn(u),$U(n.f),$U(n.b),$U(n.e),$U(n.g)}function XDn(n,t,e){var i,r,c,a,u,o,s,h,f;for(i=e.c,r=e.d,u=g1(t.c),o=g1(t.d),i==t.c?(u=lLn(n,u,r),o=sMn(t.d)):(u=sMn(t.c),o=lLn(n,o,r)),r5(s=new Kj(t.a),u,s.a,s.a.a),r5(s,o,s.c.b,s.c),a=t.c==i,f=new Jv,c=0;c<s.b-1;++c)h=new rI(BB(Dpn(s,c),8),BB(Dpn(s,c+1),8)),a&&0==c||!a&&c==s.b-2?f.b=h:WB(f.a,h);return f}function WDn(n,t){var e,i,r,c;if(0!=(c=n.j.g-t.j.g))return c;if(e=BB(mMn(n,(HXn(),ipt)),19),i=BB(mMn(t,ipt),19),e&&i&&0!=(r=e.a-i.a))return r;switch(n.j.g){case 1:return Pln(n.n.a,t.n.a);case 2:return Pln(n.n.b,t.n.b);case 3:return Pln(t.n.a,n.n.a);case 4:return Pln(t.n.b,n.n.b);default:throw Hp(new Fy(r1n))}}function VDn(n,t,i,r){var c,a,u,o;if(F3((q_(),new oz(ZL(hbn(t).a.Kc(),new h))))>=n.a)return-1;if(!eTn(t,i))return-1;if(h3(BB(r.Kb(t),20)))return 1;for(c=0,u=BB(r.Kb(t),20).Kc();u.Ob();){if(-1==(o=VDn(n,(a=BB(u.Pb(),17)).c.i==t?a.d.i:a.c.i,i,r)))return-1;if((c=e.Math.max(c,o))>n.c-1)return-1}return c+1}function QDn(n,t){var e,i,r,c,a,u;if(GI(t)===GI(n))return!0;if(!cL(t,15))return!1;if(i=BB(t,15),u=n.gc(),i.gc()!=u)return!1;if(a=i.Kc(),n.ni()){for(e=0;e<u;++e)if(r=n.ki(e),c=a.Pb(),null==r?null!=c:!Nfn(r,c))return!1}else for(e=0;e<u;++e)if(r=n.ki(e),c=a.Pb(),GI(r)!==GI(c))return!1;return!0}function YDn(n,t){var e,i,r,c,a,u;if(n.f>0)if(n.qj(),null!=t){for(c=0;c<n.d.length;++c)if(e=n.d[c])for(i=BB(e.g,367),u=e.i,a=0;a<u;++a)if(Nfn(t,(r=i[a]).dd()))return!0}else for(c=0;c<n.d.length;++c)if(e=n.d[c])for(i=BB(e.g,367),u=e.i,a=0;a<u;++a)if(r=i[a],GI(t)===GI(r.dd()))return!0;return!1}function JDn(n,t,e){var i,r,c,a;OTn(e,"Orthogonally routing hierarchical port edges",1),n.a=0,NGn(t,i=UHn(t)),Qqn(n,t,i),fUn(t),r=BB(mMn(t,(HXn(),ept)),98),Czn((l1(0,(c=t.b).c.length),BB(c.c[0],29)),r,t),Czn(BB(xq(c,c.c.length-1),29),r,t),TBn((l1(0,(a=t.b).c.length),BB(a.c[0],29))),TBn(BB(xq(a,a.c.length-1),29)),HSn(e)}function ZDn(n){switch(n){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return n-48<<24>>24;case 97:case 98:case 99:case 100:case 101:case 102:return n-97+10<<24>>24;case 65:case 66:case 67:case 68:case 69:case 70:return n-65+10<<24>>24;default:throw Hp(new Mk("Invalid hexadecimal"))}}function nRn(n,t,e){var i,r,c,a;for(OTn(e,"Processor order nodes",2),n.a=Gy(MD(mMn(t,(CAn(),xkt)))),r=new YT,a=spn(t.b,0);a.b!=a.d.c;)qy(TD(mMn(c=BB(b3(a),86),(qqn(),dkt))))&&r5(r,c,r.c.b,r.c);Px(0!=r.b),KHn(n,i=BB(r.a.a.c,86)),!e.b&&qin(e,1),BRn(n,i,0-Gy(MD(mMn(i,(qqn(),ukt))))/2,0),!e.b&&qin(e,1),HSn(e)}function tRn(){tRn=O,Rit=new HS("SPIRAL",0),$it=new HS("LINE_BY_LINE",1),Lit=new HS("MANHATTAN",2),Ait=new HS("JITTER",3),xit=new HS("QUADRANTS_LINE_BY_LINE",4),Dit=new HS("QUADRANTS_MANHATTAN",5),Nit=new HS("QUADRANTS_JITTER",6),Oit=new HS("COMBINE_LINE_BY_LINE_MANHATTAN",7),Iit=new HS("COMBINE_JITTER_MANHATTAN",8)}function eRn(n,t,e,i){var r,c,a,u,o,s;for(o=Njn(n,e),s=Njn(t,e),r=!1;o&&s&&(i||myn(o,s,e));)a=Njn(o,e),u=Njn(s,e),A7(t),A7(n),c=o.c,rGn(o,!1),rGn(s,!1),e?(Qyn(t,s.p,c),t.p=s.p,Qyn(n,o.p+1,c),n.p=o.p):(Qyn(n,o.p,c),n.p=o.p,Qyn(t,s.p+1,c),t.p=s.p),PZ(o,null),PZ(s,null),o=a,s=u,r=!0;return r}function iRn(n,t,e,i){var r,c,a,u,o;for(r=!1,c=!1,u=new Wb(i.j);u.a<u.c.c.length;)GI(mMn(a=BB(n0(u),11),(hWn(),dlt)))===GI(e)&&(0==a.g.c.length?0==a.e.c.length||(r=!0):c=!0);return o=0,r&&r^c?o=e.j==(kUn(),sIt)?-n.e[i.c.p][i.p]:t-n.e[i.c.p][i.p]:c&&r^c?o=n.e[i.c.p][i.p]+1:r&&c&&(o=e.j==(kUn(),sIt)?0:t/2),o}function rRn(n,t,e,i,r,c,a,u){var o,s,h;for(o=0,null!=t&&(o^=vvn(t.toLowerCase())),null!=e&&(o^=vvn(e)),null!=i&&(o^=vvn(i)),null!=a&&(o^=vvn(a)),null!=u&&(o^=vvn(u)),s=0,h=c.length;s<h;s++)o^=vvn(c[s]);n?o|=256:o&=-257,r?o|=16:o&=-17,this.f=o,this.i=null==t?null:(kW(t),t),this.a=e,this.d=i,this.j=c,this.g=a,this.e=u}function cRn(n,t,e){var i,r;switch(r=null,t.g){case 1:gcn(),r=Nut;break;case 2:gcn(),r=Dut}switch(i=null,e.g){case 1:gcn(),i=xut;break;case 2:gcn(),i=Lut;break;case 3:gcn(),i=Rut;break;case 4:gcn(),i=Kut}return r&&i?KB(n.j,new Hf(new Jy(Pun(Gk(Lnt,1),HWn,169,0,[BB(yX(r),169),BB(yX(i),169)])))):(SQ(),SQ(),set)}function aRn(n){var t,e,i;switch(t=BB(mMn(n,(HXn(),Hgt)),8),hon(n,Hgt,new xC(t.b,t.a)),BB(mMn(n,kdt),248).g){case 1:hon(n,kdt,(wvn(),LMt));break;case 2:hon(n,kdt,(wvn(),IMt));break;case 3:hon(n,kdt,(wvn(),AMt));break;case 4:hon(n,kdt,(wvn(),$Mt))}(n.q?n.q:(SQ(),SQ(),het))._b(spt)&&(i=(e=BB(mMn(n,spt),8)).a,e.a=e.b,e.b=i)}function uRn(n,t,e,i,r,c){if(this.b=e,this.d=r,n>=t.length)throw Hp(new Ay("Greedy SwitchDecider: Free layer not in graph."));this.c=t[n],this.e=new QK(i),yrn(this.e,this.c,(kUn(),CIt)),this.i=new QK(i),yrn(this.i,this.c,oIt),this.f=new lG(this.c),this.a=!c&&r.i&&!r.s&&this.c[0].k==(uSn(),Mut),this.a&&gPn(this,n,t.length)}function oRn(n,t){var e,i,r,c,a,u;c=!n.B.Hc((n_n(),HIt)),a=n.B.Hc(zIt),n.a=new Hwn(a,c,n.c),n.n&&kQ(n.a.n,n.n),jy(n.g,(Dtn(),zit),n.a),t||((i=new Ign(1,c,n.c)).n.a=n.k,mG(n.p,(kUn(),sIt),i),(r=new Ign(1,c,n.c)).n.d=n.k,mG(n.p,SIt,r),(u=new Ign(0,c,n.c)).n.c=n.k,mG(n.p,CIt,u),(e=new Ign(0,c,n.c)).n.b=n.k,mG(n.p,oIt,e))}function sRn(n){var t,e,i;switch((t=BB(mMn(n.d,(HXn(),Zdt)),218)).g){case 2:e=MXn(n);break;case 3:i=new Np,JT(AV($V(wnn(wnn(new Rq(null,new w1(n.d.b,16)),new Or),new Ar),new $r),new pr),new Cd(i)),e=i;break;default:throw Hp(new Fy("Compaction not supported for "+t+" edges."))}gqn(n,e),e5(new Cb(n.g),new Sd(n))}function hRn(n,t){var e;return e=new Zn,t&&qan(e,BB(RX(n.a,DOt),94)),cL(t,470)&&qan(e,BB(RX(n.a,ROt),94)),cL(t,354)?(qan(e,BB(RX(n.a,zOt),94)),e):(cL(t,82)&&qan(e,BB(RX(n.a,KOt),94)),cL(t,239)?(qan(e,BB(RX(n.a,UOt),94)),e):cL(t,186)?(qan(e,BB(RX(n.a,XOt),94)),e):(cL(t,352)&&qan(e,BB(RX(n.a,_Ot),94)),e))}function fRn(){fRn=O,Zct=new XA((sWn(),pPt),iln(1)),cat=new XA(LPt,80),rat=new XA(SPt,5),Fct=new XA(cSt,dZn),nat=new XA(vPt,iln(1)),iat=new XA(kPt,(hN(),!0)),Qct=new WA(50),Vct=new XA(XSt,Qct),Hct=CSt,Yct=uPt,Bct=new XA(dSt,!1),Wct=USt,Xct=qSt,Uct=KSt,zct=DSt,Jct=fPt,jSn(),Gct=Ict,aat=Nct,qct=Cct,tat=Act,eat=Lct}function lRn(n){var t,e,i,r,c,a,u;for(u=new v5,a=new Wb(n.a);a.a<a.c.c.length;)if((c=BB(n0(a),10)).k!=(uSn(),Mut))for(_An(u,c,new Gj),r=new oz(ZL(lbn(c).a.Kc(),new h));dAn(r);)if((i=BB(U5(r),17)).c.i.k!=Mut&&i.d.i.k!=Mut)for(e=spn(i.a,0);e.b!=e.d.c;)Yjn(u,new dP((t=BB(b3(e),8)).a,t.b));return u}function bRn(){bRn=O,RTt=new up(K4n),OM(),xTt=new $O(q4n,DTt=GTt),Lun(),LTt=new $O(_4n,NTt=WTt),$Sn(),ATt=new $O(F4n,$Tt=rTt),PTt=new $O(B4n,null),$6(),ITt=new $O(H4n,OTt=ZEt),CM(),jTt=new $O(G4n,ETt=XEt),TTt=new $O(z4n,(hN(),!1)),MTt=new $O(U4n,iln(64)),STt=new $O(X4n,!0),CTt=nTt}function wRn(n){var t,e,i,r,c;if(null==n.a)if(n.a=x8($Nt,ZYn,25,n.c.b.c.length,16,1),n.a[0]=!1,Lx(n.c,(HXn(),Upt)))for(e=BB(mMn(n.c,Upt),15).Kc();e.Ob();)(t=BB(e.Pb(),19).a)>0&&t<n.a.length&&(n.a[t]=!1);else for((c=new Wb(n.c.b)).a<c.c.c.length&&n0(c),i=1;c.a<c.c.c.length;)r=BB(n0(c),29),n.a[i++]=U$n(r)}function dRn(n,t){var e,i;switch(i=n.b,t){case 1:n.b|=1,n.b|=4,n.b|=8;break;case 2:n.b|=2,n.b|=4,n.b|=8;break;case 4:n.b|=1,n.b|=2,n.b|=4,n.b|=8;break;case 3:n.b|=16,n.b|=8;break;case 0:n.b|=32,n.b|=16,n.b|=8,n.b|=1,n.b|=2,n.b|=4}if(n.b!=i&&n.c)for(e=new AL(n.c);e.e!=e.i.gc();)ACn(P5(BB(kpn(e),473)),t)}function gRn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b;for(r=!1,u=0,o=(a=t).length;u<o;++u)c=a[u],qy((hN(),!!c.e))&&!BB(xq(n.b,c.e.p),214).s&&(r|=(s=c.e,(f=(h=BB(xq(n.b,s.p),214)).e)[l=fj(e,f.length)][0].k==(uSn(),Mut)?f[l]=$Nn(c,f[l],e?(kUn(),CIt):(kUn(),oIt)):h.c.Tf(f,e),b=DNn(n,h,e,i),xxn(h.e,h.o,e),b));return r}function pRn(n,t){var e,i,r,c,a;for(c=(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a).i,r=new AL((!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));r.e!=r.i.gc();)GI(ZAn(i=BB(kpn(r),33),(sWn(),ESt)))!==GI((ufn(),mCt))&&((a=BB(ZAn(t,mPt),149))==(e=BB(ZAn(i,mPt),149))||a&&j5(a,e))&&0!=(!i.a&&(i.a=new eU(UOt,i,10,11)),i.a).i&&(c+=pRn(n,i));return c}function vRn(n){var t,e,i,r,c,a,u;for(i=0,u=0,a=new Wb(n.d);a.a<a.c.c.length;)c=BB(n0(a),101),r=BB(P4(AV(new Rq(null,new w1(c.j,16)),new Xr),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15),e=null,i<=u?(kUn(),e=sIt,i+=r.gc()):u<i&&(kUn(),e=SIt,u+=r.gc()),t=e,JT($V(r.Oc(),new Hr),new Ad(t))}function mRn(n){var t,e,i,r,c,a,u,o;for(n.b=new vOn(new Jy((kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt]))),new Jy((Crn(),Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])))),u=0,o=(a=Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length;u<o;++u)for(c=a[u],i=0,r=(e=Pun(Gk(Wst,1),$Vn,361,0,[Rst,Dst,xst])).length;i<r;++i)t=e[i],Wjn(n.b,c,t,new Np)}function yRn(n,t){var e,i,r,c,a,u,o,s,h,f;if(a=BB(BB(h6(n.r,t),21),84),u=n.u.Hc((lIn(),rIt)),e=n.u.Hc(tIt),i=n.u.Hc(nIt),s=n.u.Hc(cIt),f=n.B.Hc((n_n(),QIt)),h=!e&&!i&&(s||2==a.gc()),hxn(n,t),r=null,o=null,u){for(o=r=BB((c=a.Kc()).Pb(),111);c.Ob();)o=BB(c.Pb(),111);r.d.b=0,o.d.c=0,h&&!r.a&&(r.d.c=0)}f&&(DTn(a),u&&(r.d.b=0,o.d.c=0))}function kRn(n,t){var e,i,r,c,a,u,o,s,h,f;if(a=BB(BB(h6(n.r,t),21),84),u=n.u.Hc((lIn(),rIt)),e=n.u.Hc(tIt),i=n.u.Hc(nIt),o=n.u.Hc(cIt),f=n.B.Hc((n_n(),QIt)),s=!e&&!i&&(o||2==a.gc()),V_n(n,t),h=null,r=null,u){for(r=h=BB((c=a.Kc()).Pb(),111);c.Ob();)r=BB(c.Pb(),111);h.d.d=0,r.d.a=0,s&&!h.a&&(h.d.a=0)}f&&(RTn(a),u&&(h.d.d=0,r.d.a=0))}function jRn(n,t,e){var i,r,c,a,u;if(i=t.k,t.p>=0)return!1;if(t.p=e.b,WB(e.e,t),i==(uSn(),Put)||i==Iut)for(r=new Wb(t.j);r.a<r.c.c.length;)for(u=new zw(new Wb(new Gw(BB(n0(r),11)).a.g));y$(u.a);)if(a=(c=BB(n0(u.a),17).d.i).k,t.c!=c.c&&(a==Put||a==Iut)&&jRn(n,c,e))return!0;return!0}function ERn(n){var t;return 0!=(64&n.Db)?KOn(n):((t=new fN(KOn(n))).a+=" (changeable: ",yE(t,0!=(n.Bb&k6n)),t.a+=", volatile: ",yE(t,0!=(n.Bb&M9n)),t.a+=", transient: ",yE(t,0!=(n.Bb&_Qn)),t.a+=", defaultValueLiteral: ",cO(t,n.j),t.a+=", unsettable: ",yE(t,0!=(n.Bb&T9n)),t.a+=", derived: ",yE(t,0!=(n.Bb&hVn)),t.a+=")",t.a)}function TRn(n){var t,e,i,r,c,a,u,o,s,h;for(e=NLn(n.d),c=(r=BB(mMn(n.b,(Epn(),vct)),116)).b+r.c,a=r.d+r.a,o=e.d.a*n.e+c,u=e.b.a*n.f+a,Ll(n.b,new xC(o,u)),h=new Wb(n.g);h.a<h.c.c.length;)t=UR(Fx(new xC((s=BB(n0(h),562)).g-e.a.a,s.i-e.c.a),s.a,s.b),kL(Bx(B$(VA(s.e)),s.d*s.a,s.c*s.b),-.5)),i=QA(s.e),ij(s.e,XR(t,i))}function MRn(n,t,e,i){var r,c,a,u,o;for(o=x8(xNt,sVn,104,(kUn(),Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length,0,2),a=0,u=(c=Pun(Gk(FIt,1),YZn,61,0,[PIt,sIt,oIt,SIt,CIt])).length;a<u;++a)o[(r=c[a]).g]=x8(xNt,qQn,25,n.c[r.g],15,1);return Bkn(o,n,sIt),Bkn(o,n,SIt),xmn(o,n,sIt,t,e,i),xmn(o,n,oIt,t,e,i),xmn(o,n,SIt,t,e,i),xmn(o,n,CIt,t,e,i),o}function SRn(n,t,e){if(hU(n.a,t)){if(FT(BB(RX(n.a,t),53),e))return 1}else VW(n.a,t,new Rv);if(hU(n.a,e)){if(FT(BB(RX(n.a,e),53),t))return-1}else VW(n.a,e,new Rv);if(hU(n.b,t)){if(FT(BB(RX(n.b,t),53),e))return-1}else VW(n.b,t,new Rv);if(hU(n.b,e)){if(FT(BB(RX(n.b,e),53),t))return 1}else VW(n.b,e,new Rv);return 0}function PRn(n,t,e,i){var r,c,a,u,o,s;if(null==e)for(r=BB(n.g,119),u=0;u<n.i;++u)if((a=r[u]).ak()==t)return _pn(n,a,i);return ZM(),c=BB(t,66).Oj()?BB(e,72):Z3(t,e),mA(n.e)?(s=!adn(n,t),i=Ywn(n,c,i),o=t.$j()?LY(n,3,t,null,e,pBn(n,t,e,cL(t,99)&&0!=(BB(t,18).Bb&BQn)),s):LY(n,1,t,t.zj(),e,-1,s),i?i.Ei(o):i=o):i=Ywn(n,c,i),i}function CRn(n){var t,i,r,c,a,u;n.q!=(QEn(),WCt)&&n.q!=XCt&&(c=n.f.n.d+XH(BB(oV(n.b,(kUn(),sIt)),124))+n.c,t=n.f.n.a+XH(BB(oV(n.b,SIt),124))+n.c,r=BB(oV(n.b,oIt),124),u=BB(oV(n.b,CIt),124),a=e.Math.max(0,r.n.d-c),a=e.Math.max(a,u.n.d-c),i=e.Math.max(0,r.n.a-t),i=e.Math.max(i,u.n.a-t),r.n.d=a,u.n.d=a,r.n.a=i,u.n.a=i)}function IRn(n,t){var e,i,r,c,a,u,o;for(OTn(t,"Restoring reversed edges",1),a=new Wb(n.b);a.a<a.c.c.length;)for(u=new Wb(BB(n0(a),29).a);u.a<u.c.c.length;)for(o=new Wb(BB(n0(u),10).j);o.a<o.c.c.length;)for(r=0,c=(i=Z0(BB(n0(o),11).g)).length;r<c;++r)qy(TD(mMn(e=i[r],(hWn(),Clt))))&&tBn(e,!1);HSn(t)}function ORn(){this.b=new v4,this.d=new v4,this.e=new v4,this.c=new v4,this.a=new xp,this.f=new xp,xJ(PMt,new mu,new yu),xJ(NMt,new Au,new $u),xJ(Eut,new Lu,new Nu),xJ(_ut,new Du,new Ru),xJ(hOt,new Ku,new _u),xJ(met,new ku,new ju),xJ(Iet,new Eu,new Tu),xJ(jet,new Mu,new Su),xJ(Eet,new Pu,new Cu),xJ(Bet,new Iu,new Ou)}function ARn(n){var t,e,i,r,c,a;return c=0,(t=Ikn(n)).Bj()&&(c|=4),0!=(n.Bb&T9n)&&(c|=2),cL(n,99)?(r=Cvn(e=BB(n,18)),0!=(e.Bb&h6n)&&(c|=32),r&&(bX(dZ(r)),c|=8,((a=r.t)>1||-1==a)&&(c|=16),0!=(r.Bb&h6n)&&(c|=64)),0!=(e.Bb&BQn)&&(c|=M9n),c|=k6n):cL(t,457)?c|=512:(i=t.Bj())&&0!=(1&i.i)&&(c|=256),0!=(512&n.Bb)&&(c|=128),c}function $Rn(n,t){var e,i,r,c,a;for(n=null==n?zWn:(kW(n),n),r=0;r<t.length;r++)t[r]=iLn(t[r]);for(e=new Ik,a=0,i=0;i<t.length&&-1!=(c=n.indexOf("%s",a));)e.a+=""+fx(null==n?zWn:(kW(n),n),a,c),uO(e,t[i++]),a=c+2;if(G0(e,n,a,n.length),i<t.length){for(e.a+=" [",uO(e,t[i++]);i<t.length;)e.a+=FWn,uO(e,t[i++]);e.a+="]"}return e.a}function LRn(n){var t,e,i,r,c;for(c=new J6(n.a.c.length),r=new Wb(n.a);r.a<r.c.c.length;){switch(i=BB(n0(r),10),t=null,(e=BB(mMn(i,(HXn(),kgt)),163)).g){case 1:case 2:Jun(),t=$ht;break;case 3:case 4:Jun(),t=Oht}t?(hon(i,(hWn(),Gft),(Jun(),$ht)),t==Oht?RNn(i,e,(ain(),Hvt)):t==$ht&&RNn(i,e,(ain(),qvt))):c.c[c.c.length]=i}return c}function NRn(n,t){var e,i,r,c,a,u,o;for(e=0,o=new Wb(t);o.a<o.c.c.length;){for(u=BB(n0(o),11),nhn(n.b,n.d[u.p]),a=0,r=new m6(u.b);y$(r.a)||y$(r.b);)CW(i=BB(y$(r.a)?n0(r.a):n0(r.b),17))?(c=ME(n,u==i.c?i.d:i.c))>n.d[u.p]&&(e+=n5(n.b,c),d3(n.a,iln(c))):++a;for(e+=n.b.d*a;!Wy(n.a);)Mnn(n.b,BB(dU(n.a),19).a)}return e}function xRn(n,t){var e;return n.f==uLt?(e=DW(B7((IPn(),Z$t),t)),n.e?4==e&&t!=(TOn(),lLt)&&t!=(TOn(),sLt)&&t!=(TOn(),hLt)&&t!=(TOn(),fLt):2==e):!(!n.d||!(n.d.Hc(t)||n.d.Hc(Z1(B7((IPn(),Z$t),t)))||n.d.Hc(Fqn((IPn(),Z$t),n.b,t))))||!(!n.f||!aNn((IPn(),n.f),jV(B7(Z$t,t))))&&(e=DW(B7(Z$t,t)),n.e?4==e:2==e)}function DRn(n,t,i,r){var c,a,u,o,s,h,f,l;return s=(u=BB(ZAn(i,(sWn(),gPt)),8)).a,f=u.b+n,(c=e.Math.atan2(f,s))<0&&(c+=Z3n),(c+=t)>Z3n&&(c-=Z3n),h=(o=BB(ZAn(r,gPt),8)).a,l=o.b+n,(a=e.Math.atan2(l,h))<0&&(a+=Z3n),(a+=t)>Z3n&&(a-=Z3n),h$(),rin(1e-10),e.Math.abs(c-a)<=1e-10||c==a||isNaN(c)&&isNaN(a)?0:c<a?-1:c>a?1:zO(isNaN(c),isNaN(a))}function RRn(n){var t,e,i,r,c,a,u;for(u=new xp,i=new Wb(n.a.b);i.a<i.c.c.length;)VW(u,t=BB(n0(i),57),new Np);for(r=new Wb(n.a.b);r.a<r.c.c.length;)for((t=BB(n0(r),57)).i=KQn,a=t.c.Kc();a.Ob();)c=BB(a.Pb(),57),BB(qI(AY(u.f,c)),15).Fc(t);for(e=new Wb(n.a.b);e.a<e.c.c.length;)(t=BB(n0(e),57)).c.$b(),t.c=BB(qI(AY(u.f,t)),15);_xn(n)}function KRn(n){var t,e,i,r,c,a,u;for(u=new xp,i=new Wb(n.a.b);i.a<i.c.c.length;)VW(u,t=BB(n0(i),81),new Np);for(r=new Wb(n.a.b);r.a<r.c.c.length;)for((t=BB(n0(r),81)).o=KQn,a=t.f.Kc();a.Ob();)c=BB(a.Pb(),81),BB(qI(AY(u.f,c)),15).Fc(t);for(e=new Wb(n.a.b);e.a<e.c.c.length;)(t=BB(n0(e),81)).f.$b(),t.f=BB(qI(AY(u.f,t)),15);BNn(n)}function _Rn(n,t,e,i){var r,c;for(Gkn(n,t,e,i),xl(t,n.j-t.j+e),Dl(t,n.k-t.k+i),c=new Wb(t.f);c.a<c.c.c.length;)switch((r=BB(n0(c),324)).a.g){case 0:won(n,t.g+r.b.a,0,t.g+r.c.a,t.i-1);break;case 1:won(n,t.g+t.o,t.i+r.b.a,n.o-1,t.i+r.c.a);break;case 2:won(n,t.g+r.b.a,t.i+t.p,t.g+r.c.a,n.p-1);break;default:won(n,0,t.i+r.b.a,t.g-1,t.i+r.c.a)}}function FRn(n,t,e,i,r){var c,a;try{if(t>=n.o)throw Hp(new Sv);a=t>>5,c=yz(1,dG(yz(31&t,1))),n.n[e][a]=r?i0(n.n[e][a],c):e0(n.n[e][a],uH(c)),c=yz(c,1),n.n[e][a]=i?i0(n.n[e][a],c):e0(n.n[e][a],uH(c))}catch(u){throw cL(u=lun(u),320)?Hp(new Ay(MJn+n.o+"*"+n.p+SJn+t+FWn+e+PJn)):Hp(u)}}function BRn(n,t,i,r){var c,a;t&&(c=Gy(MD(mMn(t,(qqn(),fkt))))+r,a=i+Gy(MD(mMn(t,ukt)))/2,hon(t,gkt,iln(dG(fan(e.Math.round(c))))),hon(t,pkt,iln(dG(fan(e.Math.round(a))))),0==t.d.b||BRn(n,BB(iL(new wg(spn(new bg(t).a.d,0))),86),i+Gy(MD(mMn(t,ukt)))+n.a,r+Gy(MD(mMn(t,okt)))),null!=mMn(t,wkt)&&BRn(n,BB(mMn(t,wkt),86),i,r))}function HRn(n,t){var i,r,c,a,u,o,s,h,f,l,b;for(c=2*Gy(MD(mMn(s=vW(t.a),(HXn(),Tpt)))),f=Gy(MD(mMn(s,Apt))),h=e.Math.max(c,f),a=x8(xNt,qQn,25,t.f-t.c+1,15,1),r=-h,i=0,o=t.b.Kc();o.Ob();)u=BB(o.Pb(),10),r+=n.a[u.c.p]+h,a[i++]=r;for(r+=n.a[t.a.c.p]+h,a[i++]=r,b=new Wb(t.e);b.a<b.c.c.length;)l=BB(n0(b),10),r+=n.a[l.c.p]+h,a[i++]=r;return a}function qRn(n,t,e,i){var r,c,a,u,o,s,h,f;for(f=new dE(new Yd(n)),u=0,o=(a=Pun(Gk(Out,1),a1n,10,0,[t,e])).length;u<o;++u)for(h=Lfn(a[u],i).Kc();h.Ob();)for(c=new m6((s=BB(h.Pb(),11)).b);y$(c.a)||y$(c.b);)b5(r=BB(y$(c.a)?n0(c.a):n0(c.b),17))||(Mon(f.a,s,(hN(),ptt)),CW(r)&&ZU(f,s==r.c?r.d:r.c));return yX(f),new t_(f)}function GRn(n,t){var e,i,r,c;if(0!=(c=BB(ZAn(n,(sWn(),wPt)),61).g-BB(ZAn(t,wPt),61).g))return c;if(e=BB(ZAn(n,sPt),19),i=BB(ZAn(t,sPt),19),e&&i&&0!=(r=e.a-i.a))return r;switch(BB(ZAn(n,wPt),61).g){case 1:return Pln(n.i,t.i);case 2:return Pln(n.j,t.j);case 3:return Pln(t.i,n.i);case 4:return Pln(t.j,n.j);default:throw Hp(new Fy(r1n))}}function zRn(n){var t,e,i;return 0!=(64&n.Db)?mSn(n):(t=new lN(n6n),(e=n.k)?oO(oO((t.a+=' "',t),e),'"'):(!n.n&&(n.n=new eU(zOt,n,1,7)),n.n.i>0&&(!(i=(!n.n&&(n.n=new eU(zOt,n,1,7)),BB(Wtn(n.n,0),137)).a)||oO(oO((t.a+=' "',t),i),'"'))),oO(kE(oO(kE(oO(kE(oO(kE((t.a+=" (",t),n.i),","),n.j)," | "),n.g),","),n.f),")"),t.a)}function URn(n){var t,e,i;return 0!=(64&n.Db)?mSn(n):(t=new lN(t6n),(e=n.k)?oO(oO((t.a+=' "',t),e),'"'):(!n.n&&(n.n=new eU(zOt,n,1,7)),n.n.i>0&&(!(i=(!n.n&&(n.n=new eU(zOt,n,1,7)),BB(Wtn(n.n,0),137)).a)||oO(oO((t.a+=' "',t),i),'"'))),oO(kE(oO(kE(oO(kE(oO(kE((t.a+=" (",t),n.i),","),n.j)," | "),n.g),","),n.f),")"),t.a)}function XRn(n,t){var e,i,r,c,a,u;if(null==t||0==t.length)return null;if(!(r=BB(SJ(n.a,t),149))){for(i=new Kb(new Ob(n.b).a.vc().Kc());i.a.Ob();)if(c=BB(i.a.Pb(),42),a=(e=BB(c.dd(),149)).c,u=t.length,mK(a.substr(a.length-u,u),t)&&(t.length==a.length||46==fV(a,a.length-t.length-1))){if(r)return null;r=e}r&&mZ(n.a,t,r)}return r}function WRn(n,t){var e,i,r;return e=new xn,(i=BB(P4($V(new Rq(null,new w1(n.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Xet),Uet]))),21).gc())<(r=BB(P4($V(new Rq(null,new w1(t.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[Xet,Uet]))),21).gc())?-1:i==r?0:1}function VRn(n){var t,e,i;Lx(n,(HXn(),$gt))&&((i=BB(mMn(n,$gt),21)).dc()||(e=new YK(t=BB(Vj(GCt),9),BB(SR(t,t.length),9),0),i.Hc((n$n(),$Ct))?orn(e,$Ct):orn(e,LCt),i.Hc(OCt)||orn(e,OCt),i.Hc(ICt)?orn(e,DCt):i.Hc(CCt)?orn(e,xCt):i.Hc(ACt)&&orn(e,NCt),i.Hc(DCt)?orn(e,ICt):i.Hc(xCt)?orn(e,CCt):i.Hc(NCt)&&orn(e,ACt),hon(n,$gt,e)))}function QRn(n){var t,e,i,r,c,a,u;for(r=BB(mMn(n,(hWn(),rlt)),10),l1(0,(i=n.j).c.length),e=BB(i.c[0],11),a=new Wb(r.j);a.a<a.c.c.length;)if(GI(c=BB(n0(a),11))===GI(mMn(e,dlt))){c.j==(kUn(),sIt)&&n.p>r.p?(qCn(c,SIt),c.d&&(u=c.o.b,t=c.a.b,c.a.b=u-t)):c.j==SIt&&r.p>n.p&&(qCn(c,sIt),c.d&&(u=c.o.b,t=c.a.b,c.a.b=-(u-t)));break}return r}function YRn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w;if(c=e,e<i)for(b=new Fan(n.p),w=new Fan(n.p),Frn(b.e,n.e),b.q=n.q,b.r=w,rX(b),Frn(w.j,n.j),w.r=b,rX(w),f=BB((l=new rI(b,w)).a,112),h=BB(l.b,112),l1(c,t.c.length),a=$Dn(n,f,h,r=BB(t.c[c],329)),s=e+1;s<=i;s++)l1(s,t.c.length),Vpn(u=BB(t.c[s],329),o=$Dn(n,f,h,u),r,a)&&(r=u,a=o);return c}function JRn(n,t,e,i,r){var c,a,u,o,s,h,f;if(!(cL(t,239)||cL(t,354)||cL(t,186)))throw Hp(new _y("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));return a=n.a/2,o=t.i+i-a,h=t.j+r-a,s=o+t.g+n.a,f=h+t.f+n.a,DH(c=new km,new xC(o,h)),DH(c,new xC(o,f)),DH(c,new xC(s,f)),DH(c,new xC(s,h)),qan(u=new EAn(c),t),e&&VW(n.b,t,u),u}function ZRn(n,t,e){var i,r,c,a,u,o,s,h;for(c=new xC(t,e),s=new Wb(n.a);s.a<s.c.c.length;)for(UR((o=BB(n0(s),10)).n,c),h=new Wb(o.j);h.a<h.c.c.length;)for(r=new Wb(BB(n0(h),11).g);r.a<r.c.c.length;)for(Ztn((i=BB(n0(r),17)).a,c),(a=BB(mMn(i,(HXn(),vgt)),74))&&Ztn(a,c),u=new Wb(i.b);u.a<u.c.c.length;)UR(BB(n0(u),70).n,c)}function nKn(n,t,e){var i,r,c,a,u,o,s,h;for(c=new xC(t,e),s=new Wb(n.a);s.a<s.c.c.length;)for(UR((o=BB(n0(s),10)).n,c),h=new Wb(o.j);h.a<h.c.c.length;)for(r=new Wb(BB(n0(h),11).g);r.a<r.c.c.length;)for(Ztn((i=BB(n0(r),17)).a,c),(a=BB(mMn(i,(HXn(),vgt)),74))&&Ztn(a,c),u=new Wb(i.b);u.a<u.c.c.length;)UR(BB(n0(u),70).n,c)}function tKn(n){if(0==(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i)throw Hp(new ck("Edges must have a source."));if(0==(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i)throw Hp(new ck("Edges must have a target."));if(!n.b&&(n.b=new hK(KOt,n,4,7)),!(n.b.i<=1&&(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c.i<=1)))throw Hp(new ck("Hyperedges are not supported."))}function eKn(n,t){var e,i,r,c,a,u,o,s,h,f;for(f=0,d3(c=new Lp,t);c.b!=c.c;)for(o=BB(dU(c),214),s=0,h=BB(mMn(t.j,(HXn(),Ldt)),339),a=Gy(MD(mMn(t.j,Idt))),u=Gy(MD(mMn(t.j,Odt))),h!=(mon(),Nvt)&&(s+=a*S$n(o.e,h),s+=u*rxn(o.e)),f+=syn(o.d,o.e)+s,r=new Wb(o.b);r.a<r.c.c.length;)i=BB(n0(r),37),(e=BB(xq(n.b,i.p),214)).s||(f+=nCn(n,e));return f}function iKn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(o=b=t.length,b1(0,t.length),45==t.charCodeAt(0)?(f=-1,l=1,--b):(f=1,l=0),r=b/(c=(uHn(),cet)[10])|0,0!=(g=b%c)&&++r,u=x8(ANt,hQn,25,r,15,1),e=ret[8],a=0,w=l+(0==g?c:g),d=l;d<o;w=(d=w)+c)i=l_n(t.substr(d,w-d),_Vn,DWn),$On(),s=dvn(u,u,a,e),s+=Uwn(u,a,i),u[a++]=s;h=a,n.e=f,n.d=h,n.a=u,X0(n)}function rKn(n,t,e,i,r,c,a){if(n.c=i.qf().a,n.d=i.qf().b,r&&(n.c+=r.qf().a,n.d+=r.qf().b),n.b=t.rf().a,n.a=t.rf().b,r)switch(r.Hf().g){case 0:case 2:n.c+=r.rf().a+a+c.a+a;break;case 4:n.c-=a+c.a+a+t.rf().a;break;case 1:n.c+=r.rf().a+a,n.d-=a+c.b+a+t.rf().b;break;case 3:n.c+=r.rf().a+a,n.d+=r.rf().b+a+c.b+a}else e?n.c-=a+t.rf().a:n.c+=i.rf().a+a}function cKn(n,t){var e,i;for(this.b=new Np,this.e=new Np,this.a=n,this.d=t,Gpn(this),pdn(this),this.b.dc()?this.c=n.c.p:this.c=BB(this.b.Xb(0),10).c.p,0==this.e.c.length?this.f=n.c.p:this.f=BB(xq(this.e,this.e.c.length-1),10).c.p,i=BB(mMn(n,(hWn(),Plt)),15).Kc();i.Ob();)if(Lx(e=BB(i.Pb(),70),(HXn(),Vdt))){this.d=BB(mMn(e,Vdt),227);break}}function aKn(n,t,e){var i,r,c,a,u,o,s,h;for(i=BB(RX(n.a,t),53),c=BB(RX(n.a,e),53),r=BB(RX(n.e,t),53),a=BB(RX(n.e,e),53),i.a.zc(e,i),a.a.zc(t,a),h=c.a.ec().Kc();h.Ob();)s=BB(h.Pb(),10),i.a.zc(s,i),TU(BB(RX(n.e,s),53),t),Frn(BB(RX(n.e,s),53),r);for(o=r.a.ec().Kc();o.Ob();)u=BB(o.Pb(),10),a.a.zc(u,a),TU(BB(RX(n.a,u),53),e),Frn(BB(RX(n.a,u),53),c)}function uKn(n,t,e){var i,r,c,a,u,o,s,h;for(i=BB(RX(n.a,t),53),c=BB(RX(n.a,e),53),r=BB(RX(n.b,t),53),a=BB(RX(n.b,e),53),i.a.zc(e,i),a.a.zc(t,a),h=c.a.ec().Kc();h.Ob();)s=BB(h.Pb(),10),i.a.zc(s,i),TU(BB(RX(n.b,s),53),t),Frn(BB(RX(n.b,s),53),r);for(o=r.a.ec().Kc();o.Ob();)u=BB(o.Pb(),10),a.a.zc(u,a),TU(BB(RX(n.a,u),53),e),Frn(BB(RX(n.a,u),53),c)}function oKn(n,t){var e,i,r;switch(OTn(t,"Breaking Point Insertion",1),i=new MAn(n),BB(mMn(n,(HXn(),Bpt)),337).g){case 2:r=new Tc;case 0:r=new wc;break;default:r=new Mc}if(e=r.Vf(n,i),qy(TD(mMn(n,qpt)))&&(e=Dqn(n,e)),!r.Wf()&&Lx(n,Xpt))switch(BB(mMn(n,Xpt),338).g){case 2:e=XCn(i,e);break;case 1:e=KTn(i,e)}e.dc()||tXn(n,e),HSn(t)}function sKn(n,t,e){var i,r,c,a,u,o,s;if(s=t,$in(o=Q3(n,L3(e),s),R2(s,q6n)),a=N2(s,L6n),VCn((i=new oI(n,o)).a,i.b,a),u=N2(s,N6n),QCn((r=new sI(n,o)).a,r.b,u),0==(!o.b&&(o.b=new hK(KOt,o,4,7)),o.b).i||0==(!o.c&&(o.c=new hK(KOt,o,5,8)),o.c).i)throw c=R2(s,q6n),Hp(new ek(X6n+c+W6n));return STn(s,o),sXn(n,s,o),xon(n,s,o)}function hKn(n,t){var i,r,c,a,u,o,s;for(c=x8(ANt,hQn,25,n.e.a.c.length,15,1),u=new Wb(n.e.a);u.a<u.c.c.length;)c[(a=BB(n0(u),121)).d]+=a.b.a.c.length;for(o=zB(t);0!=o.b;)for(r=L9(new Wb((a=BB(0==o.b?null:(Px(0!=o.b),Atn(o,o.a.a)),121)).g.a));r.Ob();)(s=(i=BB(r.Pb(),213)).e).e=e.Math.max(s.e,a.e+i.a),--c[s.d],0==c[s.d]&&r5(o,s,o.c.b,o.c)}function fKn(n){var t,i,r,c,a,u,o,s,h,f,l;for(i=_Vn,c=DWn,o=new Wb(n.e.a);o.a<o.c.c.length;)a=BB(n0(o),121),c=e.Math.min(c,a.e),i=e.Math.max(i,a.e);for(t=x8(ANt,hQn,25,i-c+1,15,1),u=new Wb(n.e.a);u.a<u.c.c.length;)(a=BB(n0(u),121)).e-=c,++t[a.e];if(r=0,null!=n.k)for(f=0,l=(h=n.k).length;f<l&&(s=h[f],t[r++]+=s,t.length!=r);++f);return t}function lKn(n){switch(n.d){case 9:case 8:return!0;case 3:case 5:case 4:case 6:return!1;case 7:return BB(Kxn(n),19).a==n.o;case 1:case 2:if(-2==n.o)return!1;switch(n.p){case 0:case 1:case 2:case 6:case 5:case 7:return QI(n.k,n.f);case 3:case 4:return n.j==n.e;default:return null==n.n?null==n.g:Nfn(n.n,n.g)}default:return!1}}function bKn(n){NM(n,new MTn(vj(wj(pj(gj(new du,K5n),"ELK Fixed"),"Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points."),new Vu))),u2(n,K5n,QJn,dCt),u2(n,K5n,g3n,mpn(gCt)),u2(n,K5n,g5n,mpn(hCt)),u2(n,K5n,PZn,mpn(fCt)),u2(n,K5n,BZn,mpn(bCt)),u2(n,K5n,Y2n,mpn(lCt))}function wKn(n,t,e){var i,r,c,a;if(i=dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15))),a=dG(cbn(SVn,rV(dG(cbn(null==e?0:nsn(e),PVn)),15))),(c=Jrn(n,t,i))&&a==c.f&&wW(e,c.i))return e;if(Zrn(n,e,a))throw Hp(new _y("value already present: "+e));return r=new qW(t,i,e,a),c?(LLn(n,c),YCn(n,r,c),c.e=null,c.c=null,c.i):(YCn(n,r,null),qkn(n),null)}function dKn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;s=e.a.c,a=e.a.c+e.a.b,l=(c=BB(RX(e.c,t),459)).f,b=c.a,u=c.b?new xC(a,l):new xC(s,l),h=c.c?new xC(s,b):new xC(a,b),r=s,e.p||(r+=n.c),o=new xC(r+=e.F+e.v*n.b,l),f=new xC(r,b),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[u,o])),e.d.a.gc()>1&&(i=new xC(r,e.b),DH(t.a,i)),nin(t.a,Pun(Gk(PMt,1),sVn,8,0,[f,h]))}function gKn(n,t,e){var i,r,c,a,u,o;if(t){if(e<=-1){if(cL(i=itn(t.Tg(),-1-e),99))return BB(i,18);for(u=0,o=(a=BB(t.ah(i),153)).gc();u<o;++u)if(GI(a.jl(u))===GI(n)&&cL(r=a.il(u),99)&&0!=((c=BB(r,18)).Bb&h6n))return c;throw Hp(new Fy("The containment feature could not be located"))}return Cvn(BB(itn(n.Tg(),e),18))}return null}function pKn(n){var t,e,i,r,c;for(i=n.length,t=new Pk,c=0;c<i;)if(9!=(e=fV(n,c++))&&10!=e&&12!=e&&13!=e&&32!=e)if(35!=e)92==e&&c<i?35==(b1(c,n.length),r=n.charCodeAt(c))||9==r||10==r||12==r||13==r||32==r?(NX(t,r&QVn),++c):(t.a+="\\",NX(t,r&QVn),++c):NX(t,e&QVn);else for(;c<i&&13!=(e=fV(n,c++))&&10!=e;);return t.a}function vKn(n,t){var e,i,r;for(i=new Wb(t);i.a<i.c.c.length;)if(e=BB(n0(i),33),JIn(n.a,e,e),JIn(n.b,e,e),0!=(r=wDn(e)).c.length)for(n.d&&n.d.lg(r),JIn(n.a,e,(l1(0,r.c.length),BB(r.c[0],33))),JIn(n.b,e,BB(xq(r,r.c.length-1),33));0!=Dun(r).c.length;)r=Dun(r),n.d&&n.d.lg(r),JIn(n.a,e,(l1(0,r.c.length),BB(r.c[0],33))),JIn(n.b,e,BB(xq(r,r.c.length-1),33))}function mKn(n){var t,e,i,r,c,a,u,o,s,h;for(e=0,u=new Wb(n.d);u.a<u.c.c.length;)(a=BB(n0(u),101)).i&&(a.i.c=e++);for(t=kq($Nt,[sVn,ZYn],[177,25],16,[e,e],2),h=n.d,r=0;r<h.c.length;r++)if(l1(r,h.c.length),(o=BB(h.c[r],101)).i)for(c=r+1;c<h.c.length;c++)l1(c,h.c.length),(s=BB(h.c[c],101)).i&&(i=rMn(o,s),t[o.i.c][s.i.c]=i,t[s.i.c][o.i.c]=i);return t}function yKn(n,t,e,i){var r,c,a;return a=new yT(t,e),n.a?i?(++(r=BB(RX(n.b,t),283)).a,a.d=i.d,a.e=i.e,a.b=i,a.c=i,i.e?i.e.c=a:BB(RX(n.b,t),283).b=a,i.d?i.d.b=a:n.a=a,i.d=a,i.e=a):(n.e.b=a,a.d=n.e,n.e=a,(r=BB(RX(n.b,t),283))?(++r.a,(c=r.c).c=a,a.e=c,r.c=a):(VW(n.b,t,r=new sY(a)),++n.c)):(n.a=n.e=a,VW(n.b,t,new sY(a)),++n.c),++n.d,a}function kKn(n,t){var e,i,r,c,a,u,o,s;for(e=new RegExp(t,"g"),o=x8(Qtt,sVn,2,0,6,1),i=0,s=n,c=null;;){if(null==(u=e.exec(s))||""==s){o[i]=s;break}a=u.index,o[i]=s.substr(0,a),s=fx(s,a+u[0].length,s.length),e.lastIndex=0,c==s&&(o[i]=s.substr(0,1),s=s.substr(1)),c=s,++i}if(n.length>0){for(r=o.length;r>0&&""==o[r-1];)--r;r<o.length&&(o.length=r)}return o}function jKn(n,t){var e,i,r,c,a,u,o,s;for(u=null,r=!1,c=0,o=a4((s=kY(t)).a).i;c<o;++c)(e=jKn(n,BB(eGn(s,c,cL(a=BB(Wtn(a4(s.a),c),87).c,88)?BB(a,26):(gWn(),d$t)),26))).dc()||(u?(r||(r=!0,u=new rG(u)),u.Gc(e)):u=e);return(i=xIn(n,t)).dc()?u||(SQ(),SQ(),set):u?(r||(u=new rG(u)),u.Gc(i),u):i}function EKn(n,t){var e,i,r,c,a,u,o,s;for(u=null,i=!1,c=0,o=a4((s=kY(t)).a).i;c<o;++c)(e=EKn(n,BB(eGn(s,c,cL(a=BB(Wtn(a4(s.a),c),87).c,88)?BB(a,26):(gWn(),d$t)),26))).dc()||(u?(i||(i=!0,u=new rG(u)),u.Gc(e)):u=e);return(r=VOn(n,t)).dc()?u||(SQ(),SQ(),set):u?(i||(u=new rG(u)),u.Gc(r),u):r}function TKn(n,t,e){var i,r,c,a,u,o;if(cL(t,72))return _pn(n,t,e);for(u=null,c=null,i=BB(n.g,119),a=0;a<n.i;++a)if(Nfn(t,(r=i[a]).dd())&&cL(c=r.ak(),99)&&0!=(BB(c,18).Bb&h6n)){u=r;break}return u&&(mA(n.e)&&(o=c.$j()?LY(n,4,c,t,null,pBn(n,c,t,cL(c,99)&&0!=(BB(c,18).Bb&BQn)),!0):LY(n,c.Kj()?2:1,c,t,c.zj(),-1,!0),e?e.Ei(o):e=o),e=TKn(n,u,e)),e}function MKn(n){var t,i,r,c;r=n.o,qD(),n.A.dc()||Nfn(n.A,$rt)?c=r.a:(c=SIn(n.f),n.A.Hc((mdn(),RIt))&&!n.B.Hc((n_n(),XIt))&&(c=e.Math.max(c,SIn(BB(oV(n.p,(kUn(),sIt)),244))),c=e.Math.max(c,SIn(BB(oV(n.p,SIt),244)))),(t=oan(n))&&(c=e.Math.max(c,t.a))),qy(TD(n.e.yf().We((sWn(),FSt))))?r.a=e.Math.max(r.a,c):r.a=c,(i=n.f.i).c=0,i.b=c,_Fn(n.f)}function SKn(n,t){var e,i,r,c,a,u,o,s,h;if((e=t.Hh(n.a))&&null!=(o=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),"memberTypes")))){for(s=new Np,a=0,u=(c=kKn(o,"\\w")).length;a<u;++a)cL(h=-1==(i=(r=c[a]).lastIndexOf("#"))?uD(n,t.Aj(),r):0==i?M9(n,null,r.substr(1)):M9(n,r.substr(0,i),r.substr(i+1)),148)&&WB(s,BB(h,148));return s}return SQ(),SQ(),set}function PKn(n,t,e){var i,r,c,a,u,o,s,h;for(OTn(e,aZn,1),n.bf(t),c=0;n.df(c);){for(h=new Wb(t.e);h.a<h.c.c.length;)for(o=BB(n0(h),144),u=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[t.e,t.d,t.b])));dAn(u);)(a=BB(U5(u),357))!=o&&(r=n.af(a,o))&&UR(o.a,r);for(s=new Wb(t.e);s.a<s.c.c.length;)WSn(i=(o=BB(n0(s),144)).a,-n.d,-n.d,n.d,n.d),UR(o.d,i),kO(i);n.cf(),++c}HSn(e)}function CKn(n,t,e){var i,r,c,a;if(a=axn(n.e.Tg(),t),i=BB(n.g,119),ZM(),BB(t,66).Oj()){for(c=0;c<n.i;++c)if(r=i[c],a.rl(r.ak())&&Nfn(r,e))return fDn(n,c),!0}else if(null!=e){for(c=0;c<n.i;++c)if(r=i[c],a.rl(r.ak())&&Nfn(e,r.dd()))return fDn(n,c),!0}else for(c=0;c<n.i;++c)if(r=i[c],a.rl(r.ak())&&null==r.dd())return fDn(n,c),!0;return!1}function IKn(n,t){var e,i,r,c,a;for(null==n.c||n.c.length<t.c.length?n.c=x8($Nt,ZYn,25,t.c.length,16,1):nk(n.c),n.a=new Np,i=0,a=new Wb(t);a.a<a.c.c.length;)(r=BB(n0(a),10)).p=i++;for(e=new YT,c=new Wb(t);c.a<c.c.c.length;)r=BB(n0(c),10),n.c[r.p]||(hIn(n,r),0==e.b||(Px(0!=e.b),BB(e.a.a.c,15)).gc()<n.a.c.length?hO(e,n.a):fO(e,n.a),n.a=new Np);return e}function OKn(n,t,e,i){var r,c,a,u,o,s,h;for(Pen(a=BB(Wtn(t,0),33),0),Cen(a,0),(o=new Np).c[o.c.length]=a,u=a,c=new eq(n.a,a.g,a.f,(YLn(),_Et)),s=1;s<t.i;s++)Pen(h=BB(Wtn(t,s),33),(r=aqn(n,nHn(n,DEt,h,u,c,o,e),nHn(n,xEt,h,u,c,o,e),nHn(n,KEt,h,u,c,o,e),nHn(n,REt,h,u,c,o,e),h,u,i)).d),Cen(h,r.e),ab(r,_Et),c=r,u=h,o.c[o.c.length]=h;return c}function AKn(n){NM(n,new MTn(vj(wj(pj(gj(new du,Q4n),"ELK SPOrE Overlap Removal"),'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'),new eu))),u2(n,Q4n,K4n,mpn(qTt)),u2(n,Q4n,QJn,BTt),u2(n,Q4n,vZn,8),u2(n,Q4n,q4n,mpn(HTt)),u2(n,Q4n,U4n,mpn(_Tt)),u2(n,Q4n,X4n,mpn(FTt)),u2(n,Q4n,X2n,(hN(),!1))}function $Kn(n,t,e,i){var r,c,a,u,o,s,h,f;for(a=_x(t.c,e,i),h=new Wb(t.a);h.a<h.c.c.length;){for(UR((s=BB(n0(h),10)).n,a),f=new Wb(s.j);f.a<f.c.c.length;)for(c=new Wb(BB(n0(f),11).g);c.a<c.c.c.length;)for(Ztn((r=BB(n0(c),17)).a,a),(u=BB(mMn(r,(HXn(),vgt)),74))&&Ztn(u,a),o=new Wb(r.b);o.a<o.c.c.length;)UR(BB(n0(o),70).n,a);WB(n.a,s),s.a=n}}function LKn(n,t){var e,i,r,c;if(OTn(t,"Node and Port Label Placement and Node Sizing",1),RA((gM(),new HV(n,!0,!0,new Ve))),BB(mMn(n,(hWn(),Zft)),21).Hc((bDn(),lft)))for(i=(r=BB(mMn(n,(HXn(),cpt)),21)).Hc((lIn(),iIt)),c=qy(TD(mMn(n,apt))),e=new Wb(n.b);e.a<e.c.c.length;)JT(AV(new Rq(null,new w1(BB(n0(e),29).a,16)),new Qe),new K_(r,i,c));HSn(t)}function NKn(n,t){var e,i,r,c,a,u;if((e=t.Hh(n.a))&&null!=(u=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),n8n))))switch(r=mN(u,YTn(35)),i=t.Hj(),-1==r?(a=az(n,Utn(i)),c=u):0==r?(a=null,c=u.substr(1)):(a=u.substr(0,r),c=u.substr(r+1)),DW(B7(n,t))){case 2:case 3:return Don(n,i,a,c);case 0:case 4:case 5:case 6:return Ron(n,i,a,c)}return null}function xKn(n,t,e){var i,r,c,a,u;if(ZM(),a=BB(t,66).Oj(),$xn(n.e,t)){if(t.hi()&&UFn(n,t,e,cL(t,99)&&0!=(BB(t,18).Bb&BQn)))return!1}else for(u=axn(n.e.Tg(),t),i=BB(n.g,119),c=0;c<n.i;++c)if(r=i[c],u.rl(r.ak()))return!(a?Nfn(r,e):null==e?null==r.dd():Nfn(e,r.dd()))&&(BB(ovn(n,c,a?BB(e,72):Z3(t,e)),72),!0);return f9(n,a?BB(e,72):Z3(t,e))}function DKn(n){var t,e,i,r,c;if(n.d)throw Hp(new Fy((ED(Yat),AYn+Yat.k+$Yn)));for(n.c==(Ffn(),BPt)&&Mzn(n,_Pt),t=new Wb(n.a.a);t.a<t.c.c.length;)BB(n0(t),189).e=0;for(r=new Wb(n.a.b);r.a<r.c.c.length;)for((i=BB(n0(r),81)).o=KQn,e=i.f.Kc();e.Ob();)++BB(e.Pb(),81).d.e;for(Gzn(n),c=new Wb(n.a.b);c.a<c.c.c.length;)BB(n0(c),81).k=!0;return n}function RKn(n,t){var e,i,r,c,a,u,o,s;for(u=new pPn(n),r5(e=new YT,t,e.c.b,e.c);0!=e.b;){for((i=BB(0==e.b?null:(Px(0!=e.b),Atn(e,e.a.a)),113)).d.p=1,a=new Wb(i.e);a.a<a.c.c.length;)jTn(u,r=BB(n0(a),409)),0==(s=r.d).d.p&&r5(e,s,e.c.b,e.c);for(c=new Wb(i.b);c.a<c.c.c.length;)jTn(u,r=BB(n0(c),409)),0==(o=r.c).d.p&&r5(e,o,e.c.b,e.c)}return u}function KKn(n){var t,e,i,r,c;if(1!=(i=Gy(MD(ZAn(n,(sWn(),yPt))))))for(MA(n,i*n.g,i*n.f),e=XO(_B((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c),new Bu)),c=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!n.n&&(n.n=new eU(zOt,n,1,7)),n.n),(!n.c&&(n.c=new eU(XOt,n,9,9)),n.c),e])));dAn(c);)(r=BB(U5(c),470)).Gg(i*r.Dg(),i*r.Eg()),r.Fg(i*r.Cg(),i*r.Bg()),(t=BB(r.We(cPt),8))&&(t.a*=i,t.b*=i)}function _Kn(n,t,e,i,r){var c,a,u,o,s,h;for(c=new Wb(n.b);c.a<c.c.c.length;)for(s=0,h=(o=n2(BB(n0(c),29).a)).length;s<h;++s)switch(BB(mMn(u=o[s],(HXn(),kgt)),163).g){case 1:vxn(u),PZ(u,t),lvn(u,!0,i);break;case 3:ZNn(u),PZ(u,e),lvn(u,!1,r)}for(a=new M2(n.b,0);a.b<a.d.gc();)0==(Px(a.b<a.d.gc()),BB(a.d.Xb(a.c=a.b++),29)).a.c.length&&fW(a)}function FKn(n,t){var e,i,r,c,a,u,o;if((e=t.Hh(n.a))&&null!=(o=SD(cdn((!e.b&&(e.b=new Jx((gWn(),k$t),X$t,e)),e.b),M7n)))){for(i=new Np,a=0,u=(c=kKn(o,"\\w")).length;a<u;++a)mK(r=c[a],"##other")?WB(i,"!##"+az(n,Utn(t.Hj()))):mK(r,"##local")?i.c[i.c.length]=null:mK(r,E7n)?WB(i,az(n,Utn(t.Hj()))):i.c[i.c.length]=r;return i}return SQ(),SQ(),set}function BKn(n,t){var e,i,r;return e=new Xn,(i=1==(i=BB(P4($V(new Rq(null,new w1(n.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Xet),Uet]))),21).gc())?1:0)<(r=1==(r=BB(P4($V(new Rq(null,new w1(t.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[Xet,Uet]))),21).gc())?1:0)?-1:i==r?0:1}function HKn(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(r=qy(TD(mMn(u=n.i,(HXn(),wgt)))),h=0,i=0,s=new Wb(n.g);s.a<s.c.c.length;)c=(a=b5(o=BB(n0(s),17)))&&r&&qy(TD(mMn(o,dgt))),l=o.d.i,a&&c?++i:a&&!c?++h:vW(l).e==u?++i:++h;for(e=new Wb(n.e);e.a<e.c.c.length;)c=(a=b5(t=BB(n0(e),17)))&&r&&qy(TD(mMn(t,dgt))),f=t.c.i,a&&c?++h:a&&!c?++i:vW(f).e==u?++h:++i;return h-i}function qKn(n,t,e,i){this.e=n,this.k=BB(mMn(n,(hWn(),Alt)),304),this.g=x8(Out,a1n,10,t,0,1),this.b=x8(Ptt,sVn,333,t,7,1),this.a=x8(Out,a1n,10,t,0,1),this.d=x8(Ptt,sVn,333,t,7,1),this.j=x8(Out,a1n,10,t,0,1),this.i=x8(Ptt,sVn,333,t,7,1),this.p=x8(Ptt,sVn,333,t,7,1),this.n=x8(ktt,sVn,476,t,8,1),yS(this.n,(hN(),!1)),this.f=x8(ktt,sVn,476,t,8,1),yS(this.f,!0),this.o=e,this.c=i}function GKn(n,t){var e,i,r;if(!t.dc())if(BB(t.Xb(0),286).d==($Pn(),nht))Akn(n,t);else for(i=t.Kc();i.Ob();){switch((e=BB(i.Pb(),286)).d.g){case 5:hPn(n,e,Vbn(n,e));break;case 0:hPn(n,e,(r=(e.f-e.c+1-1)/2|0,e.c+r));break;case 4:hPn(n,e,$nn(n,e));break;case 2:Kwn(e),hPn(n,e,$En(e)?e.c:e.f);break;case 1:Kwn(e),hPn(n,e,$En(e)?e.f:e.c)}hMn(e.a)}}function zKn(n,t){var e,i,r,c,a;if(!t.e){for(t.e=!0,i=t.d.a.ec().Kc();i.Ob();)e=BB(i.Pb(),17),t.o&&t.d.a.gc()<=1?(a=new xC((c=t.a.c)+(t.a.c+t.a.b-c)/2,t.b),DH(BB(t.d.a.ec().Kc().Pb(),17).a,a)):(r=BB(RX(t.c,e),459)).b||r.c?dKn(n,e,t):n.d==(Usn(),rmt)&&(r.d||r.e)&&LOn(n,t)&&t.d.a.gc()<=1?dzn(e,t):DDn(n,e,t);t.k&&e5(t.d,new Te)}}function UKn(n,t,i,r,c,a){var u,o,s,h,f,l,b,w,d,g,p,v,m;for(o=(r+c)/2+a,g=i*e.Math.cos(o),p=i*e.Math.sin(o),v=g-t.g/2,m=p-t.f/2,Pen(t,v),Cen(t,m),l=n.a.jg(t),(d=2*e.Math.acos(i/i+n.c))<c-r?(b=d/l,u=(r+c-d)/2):(b=(c-r)/l,u=r),w=wDn(t),n.e&&(n.e.kg(n.d),n.e.lg(w)),h=new Wb(w);h.a<h.c.c.length;)s=BB(n0(h),33),f=n.a.jg(s),UKn(n,s,i+n.c,u,u+b*f,a),u+=b*f}function XKn(n,t,e){var i;switch(i=e.q.getMonth(),t){case 5:oO(n,Pun(Gk(Qtt,1),sVn,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[i]);break;case 4:oO(n,Pun(Gk(Qtt,1),sVn,2,6,[YVn,JVn,ZVn,nQn,tQn,eQn,iQn,rQn,cQn,aQn,uQn,oQn])[i]);break;case 3:oO(n,Pun(Gk(Qtt,1),sVn,2,6,["Jan","Feb","Mar","Apr",tQn,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[i]);break;default:Enn(n,i+1,t)}}function WKn(n,t){var e,i,r,c;if(OTn(t,"Network simplex",1),n.e.a.c.length<1)HSn(t);else{for(r=new Wb(n.e.a);r.a<r.c.c.length;)BB(n0(r),121).e=0;for((c=n.e.a.c.length>=40)&&EFn(n),BHn(n),Txn(n),e=yln(n),i=0;e&&i<n.f;)e_n(n,e,e$n(n,e)),e=yln(n),++i;c&&tTn(n),n.a?p$n(n,fKn(n)):fKn(n),n.b=null,n.d=null,n.p=null,n.c=null,n.g=null,n.i=null,n.n=null,n.o=null,HSn(t)}}function VKn(n,t,e,i){var r,c,a,u,o,s,h,f;for(XR(u=new xC(e,i),BB(mMn(t,(Mrn(),oat)),8)),f=new Wb(t.e);f.a<f.c.c.length;)UR((h=BB(n0(f),144)).d,u),WB(n.e,h);for(a=new Wb(t.c);a.a<a.c.c.length;){for(r=new Wb((c=BB(n0(a),282)).a);r.a<r.c.c.length;)UR(BB(n0(r),559).d,u);WB(n.c,c)}for(s=new Wb(t.d);s.a<s.c.c.length;)UR((o=BB(n0(s),447)).d,u),WB(n.d,o)}function QKn(n,t){var e,i,r,c,a,u,o,s;for(o=new Wb(t.j);o.a<o.c.c.length;)for(r=new m6((u=BB(n0(o),11)).b);y$(r.a)||y$(r.b);)t!=(c=(e=(i=BB(y$(r.a)?n0(r.a):n0(r.b),17)).c==u?i.d:i.c).i)&&((s=BB(mMn(i,(HXn(),fpt)),19).a)<0&&(s=0),a=c.p,0==n.b[a]&&(i.d==e?(n.a[a]-=s+1,n.a[a]<=0&&n.c[a]>0&&DH(n.f,c)):(n.c[a]-=s+1,n.c[a]<=0&&n.a[a]>0&&DH(n.e,c))))}function YKn(n){var t,e,i,r,c,a,u;for(c=new dE(BB(yX(new Rn),62)),u=KQn,e=new Wb(n.d);e.a<e.c.c.length;){for(u=(t=BB(n0(e),222)).c.c;0!=c.a.c&&(a=BB(MU(q9(c.a)),222)).c.c+a.c.b<u;)$J(c.a,a);for(r=new Fb(new BR(new xN(new _b(c.a).a).b));aS(r.a.a);)DH((i=BB(mx(r.a).cd(),222)).b,t),DH(t.b,i);Mon(c.a,t,(hN(),ptt))}}function JKn(n,t,e){var i,r,c,a,u,o,s,h,f;for(c=new J6(t.c.length),s=new Wb(t);s.a<s.c.c.length;)a=BB(n0(s),10),WB(c,n.b[a.c.p][a.p]);for(mqn(n,c,e),f=null;f=ezn(c);)rBn(n,BB(f.a,233),BB(f.b,233),c);for(t.c=x8(Ant,HWn,1,0,5,1),r=new Wb(c);r.a<r.c.c.length;)for(o=0,h=(u=(i=BB(n0(r),233)).d).length;o<h;++o)a=u[o],t.c[t.c.length]=a,n.a[a.c.p][a.p].a=lL(i.g,i.d[0]).a}function ZKn(n,t){var e,i,r,c;if(0<(cL(n,14)?BB(n,14).gc():F3(n.Kc()))){if(1<(r=t)){for(--r,c=new pa,i=n.Kc();i.Ob();)e=BB(i.Pb(),86),c=Wen(Pun(Gk(xnt,1),HWn,20,0,[c,new bg(e)]));return ZKn(c,r)}if(r<0){for(c=new va,i=n.Kc();i.Ob();)e=BB(i.Pb(),86),c=Wen(Pun(Gk(xnt,1),HWn,20,0,[c,new bg(e)]));if(0<(cL(c,14)?BB(c,14).gc():F3(c.Kc())))return ZKn(c,r)}}return BB(iL(n.Kc()),86)}function n_n(){n_n=O,GIt=new QC("DEFAULT_MINIMUM_SIZE",0),UIt=new QC("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING",1),qIt=new QC("COMPUTE_PADDING",2),XIt=new QC("OUTSIDE_NODE_LABELS_OVERHANG",3),WIt=new QC("PORTS_OVERHANG",4),QIt=new QC("UNIFORM_PORT_SPACING",5),VIt=new QC("SPACE_EFFICIENT_PORT_LABELS",6),zIt=new QC("FORCE_TABULAR_NODE_LABELS",7),HIt=new QC("ASYMMETRICAL",8)}function t_n(n,t){var e,i,r,c,a,u,o,s;if(t){if(e=(c=t.Tg())?Utn(c).Nh().Jh(c):null){for(Jgn(n,t,e),o=0,s=(null==(r=t.Tg()).i&&qFn(r),r.i).length;o<s;++o)null==r.i&&qFn(r),i=r.i,(u=o>=0&&o<i.length?i[o]:null).Ij()&&!u.Jj()&&(cL(u,322)?nvn(n,BB(u,34),t,e):0!=((a=BB(u,18)).Bb&h6n)&&sEn(n,a,t,e));t.kh()&&BB(e,49).vh(BB(t,49).qh())}return e}return null}function e_n(n,t,e){var i,r,c;if(!t.f)throw Hp(new _y("Given leave edge is no tree edge."));if(e.f)throw Hp(new _y("Given enter edge is a tree edge already."));for(t.f=!1,eL(n.p,t),e.f=!0,TU(n.p,e),i=e.e.e-e.d.e-e.a,FCn(n,e.e,t)||(i=-i),c=new Wb(n.e.a);c.a<c.c.c.length;)FCn(n,r=BB(n0(c),121),t)||(r.e+=i);n.j=1,nk(n.c),pIn(n,BB(n0(new Wb(n.e.a)),121)),gGn(n)}function i_n(n,t){var e,i,r,c,a,u;if((u=BB(mMn(t,(HXn(),ept)),98))==(QEn(),WCt)||u==XCt)for(r=new xC(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a).b,a=new Wb(n.a);a.a<a.c.c.length;)(c=BB(n0(a),10)).k==(uSn(),Mut)&&((e=BB(mMn(c,(hWn(),Qft)),61))!=(kUn(),oIt)&&e!=CIt||(i=Gy(MD(mMn(c,Tlt))),u==WCt&&(i*=r),c.n.b=i-BB(mMn(c,npt),8).b,Jan(c,!1,!0)))}function r_n(n,t,e,i){var r,c,a,u,o,s,h,f,l,b;if(Ytn(n,t,e),c=t[e],b=i?(kUn(),CIt):(kUn(),oIt),mL(t.length,e,i)){for(G6(n,r=t[i?e-1:e+1],i?(ain(),qvt):(ain(),Hvt)),h=0,l=(o=c).length;h<l;++h)xvn(n,a=o[h],b);for(G6(n,c,i?(ain(),Hvt):(ain(),qvt)),s=0,f=(u=r).length;s<f;++s)(a=u[s]).e||xvn(n,a,Tln(b))}else for(s=0,f=(u=c).length;s<f;++s)xvn(n,a=u[s],b);return!1}function c_n(n,t,e,i){var r,c,a,u,o;u=abn(t,e),(e==(kUn(),SIt)||e==CIt)&&(u=cL(u,152)?o6(BB(u,152)):cL(u,131)?BB(u,131).a:cL(u,54)?new fy(u):new CT(u)),a=!1;do{for(r=!1,c=0;c<u.gc()-1;c++)BMn(n,BB(u.Xb(c),11),BB(u.Xb(c+1),11),i)&&(a=!0,k0(n.a,BB(u.Xb(c),11),BB(u.Xb(c+1),11)),o=BB(u.Xb(c+1),11),u._c(c+1,BB(u.Xb(c),11)),u._c(c,o),r=!0)}while(r);return a}function a_n(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;if(!mA(n.e))return BB(YIn(n,t,e),72);if(t!=e&&(a=(b=(r=BB(n.g,119))[e]).ak(),$xn(n.e,a))){for(w=axn(n.e.Tg(),a),o=-1,u=-1,i=0,s=0,f=t>e?t:e;s<=f;++s)s==e?u=i++:(c=r[s],h=w.rl(c.ak()),s==t&&(o=s!=f||h?i:i-1),h&&++i);return l=BB(Iln(n,t,e),72),u!=o&&Lv(n,new j9(n.e,7,a,iln(u),b.dd(),o)),l}return BB(Iln(n,t,e),72)}function u_n(n,t){var e,i,r,c,a,u;for(OTn(t,"Port order processing",1),u=BB(mMn(n,(HXn(),opt)),421),e=new Wb(n.b);e.a<e.c.c.length;)for(r=new Wb(BB(n0(e),29).a);r.a<r.c.c.length;)i=BB(n0(r),10),c=BB(mMn(i,ept),98),a=i.j,c==(QEn(),UCt)||c==WCt||c==XCt?(SQ(),m$(a,sst)):c!=QCt&&c!=YCt&&(SQ(),m$(a,fst),Lvn(a),u==(U7(),_vt)&&m$(a,hst)),i.i=!0,eIn(i);HSn(t)}function o_n(n){var t,i,r,c,a,u,o,s;for(s=new xp,t=new Fv,u=n.Kc();u.Ob();)c=BB(u.Pb(),10),o=AN(oM(new qv,c),t),jCn(s.f,c,o);for(a=n.Kc();a.Ob();)for(r=new oz(ZL(lbn(c=BB(a.Pb(),10)).a.Kc(),new h));dAn(r);)b5(i=BB(U5(r),17))||UNn(aM(cM(rM(uM(new Hv,e.Math.max(1,BB(mMn(i,(HXn(),lpt)),19).a)),1),BB(RX(s,i.c.i),121)),BB(RX(s,i.d.i),121)));return t}function s_n(){s_n=O,byt=dq(new B2,(yMn(),Fat),(lWn(),vot)),dyt=dq(new B2,_at,jot),gyt=WG(dq(new B2,_at,Dot),Bat,xot),lyt=WG(dq(dq(new B2,_at,lot),Fat,bot),Bat,wot),pyt=ogn(ogn(FM(WG(dq(new B2,Rat,Uot),Bat,zot),Fat),Got),Xot),wyt=WG(new B2,Bat,mot),hyt=WG(dq(dq(dq(new B2,Kat,Mot),Fat,Pot),Fat,Cot),Bat,Sot),fyt=WG(dq(dq(new B2,Fat,Cot),Fat,uot),Bat,aot)}function h_n(n,t,e,i,r,c){var a,u,o,s,h,f;for(a=lSn(t,o=jon(t)-jon(n)),u=M$(0,0,0);o>=0&&(!Cyn(n,a)||(o<22?u.l|=1<<o:o<44?u.m|=1<<o-22:u.h|=1<<o-44,0!=n.l||0!=n.m||0!=n.h));)s=a.m,h=a.h,f=a.l,a.h=h>>>1,a.m=s>>>1|(1&h)<<21,a.l=f>>>1|(1&s)<<21,--o;return e&&Oon(u),c&&(i?(ltt=aon(n),r&&(ltt=hun(ltt,(X7(),dtt)))):ltt=M$(n.l,n.m,n.h)),u}function f_n(n,t){var e,i,r,c,a,u,o,s,h,f;for(s=n.e[t.c.p][t.p]+1,o=t.c.a.c.length+1,u=new Wb(n.a);u.a<u.c.c.length;){for(a=BB(n0(u),11),f=0,c=0,r=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(a),new Gw(a)])));dAn(r);)(i=BB(U5(r),11)).i.c==t.c&&(f+=bL(n,i.i)+1,++c);e=f/c,(h=a.j)==(kUn(),oIt)?n.f[a.p]=e<s?n.c-e:n.b+(o-e):h==CIt&&(n.f[a.p]=e<s?n.b+e:n.c-(o-e))}}function l_n(n,t,e){var i,r,c,a;if(null==n)throw Hp(new Mk(zWn));for(i=(c=n.length)>0&&(b1(0,n.length),45==n.charCodeAt(0)||(b1(0,n.length),43==n.charCodeAt(0)))?1:0;i<c;i++)if(-1==egn((b1(i,n.length),n.charCodeAt(i))))throw Hp(new Mk(DQn+n+'"'));if(r=(a=parseInt(n,10))<t,isNaN(a))throw Hp(new Mk(DQn+n+'"'));if(r||a>e)throw Hp(new Mk(DQn+n+'"'));return a}function b_n(n){var t,i,r,c,a,u;for(a=new YT,c=new Wb(n.a);c.a<c.c.c.length;)Vl(r=BB(n0(c),112),r.f.c.length),Ql(r,r.k.c.length),0==r.i&&(r.o=0,r5(a,r,a.c.b,a.c));for(;0!=a.b;)for(i=(r=BB(0==a.b?null:(Px(0!=a.b),Atn(a,a.a.a)),112)).o+1,t=new Wb(r.f);t.a<t.c.c.length;)Yl(u=BB(n0(t),129).a,e.Math.max(u.o,i)),Ql(u,u.i-1),0==u.i&&r5(a,u,a.c.b,a.c)}function w_n(n){var t,e,i,r,c,a,u,o;for(a=new Wb(n);a.a<a.c.c.length;){for(c=BB(n0(a),79),u=(i=PTn(BB(Wtn((!c.b&&(c.b=new hK(KOt,c,4,7)),c.b),0),82))).i,o=i.j,CA(r=BB(Wtn((!c.a&&(c.a=new eU(FOt,c,6,6)),c.a),0),202),r.j+u,r.k+o),PA(r,r.b+u,r.c+o),e=new AL((!r.a&&(r.a=new $L(xOt,r,5)),r.a));e.e!=e.i.gc();)TA(t=BB(kpn(e),469),t.a+u,t.b+o);Yrn(BB(ZAn(c,(sWn(),OSt)),74),u,o)}}function d_n(n){switch(n){case 100:return mWn(snt,!0);case 68:return mWn(snt,!1);case 119:return mWn(hnt,!0);case 87:return mWn(hnt,!1);case 115:return mWn(fnt,!0);case 83:return mWn(fnt,!1);case 99:return mWn(lnt,!0);case 67:return mWn(lnt,!1);case 105:return mWn(bnt,!0);case 73:return mWn(bnt,!1);default:throw Hp(new dy(ont+n.toString(16)))}}function g_n(n){var t,i,r,c,a;switch(c=BB(xq(n.a,0),10),t=new $vn(n),WB(n.a,t),t.o.a=e.Math.max(1,c.o.a),t.o.b=e.Math.max(1,c.o.b),t.n.a=c.n.a,t.n.b=c.n.b,BB(mMn(c,(hWn(),Qft)),61).g){case 4:t.n.a+=2;break;case 1:t.n.b+=2;break;case 2:t.n.a-=2;break;case 3:t.n.b-=2}return CZ(r=new CSn,t),SZ(i=new wY,a=BB(xq(c.j,0),11)),MZ(i,r),UR(kO(r.n),a.n),UR(kO(r.a),a.a),t}function p_n(n,t,e,i,r){e&&(!i||(n.c-n.b&n.a.length-1)>1)&&1==t&&BB(n.a[n.b],10).k==(uSn(),Sut)?hFn(BB(n.a[n.b],10),(Xyn(),jCt)):i&&(!e||(n.c-n.b&n.a.length-1)>1)&&1==t&&BB(n.a[n.c-1&n.a.length-1],10).k==(uSn(),Sut)?hFn(BB(n.a[n.c-1&n.a.length-1],10),(Xyn(),ECt)):2==(n.c-n.b&n.a.length-1)?(hFn(BB(Eon(n),10),(Xyn(),jCt)),hFn(BB(Eon(n),10),ECt)):sLn(n,r),o4(n)}function v_n(n,t,i){var r,c,a,u,o;for(a=0,c=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));c.e!=c.i.gc();)u="",0==(!(r=BB(kpn(c),33)).n&&(r.n=new eU(zOt,r,1,7)),r.n).i||(u=BB(Wtn((!r.n&&(r.n=new eU(zOt,r,1,7)),r.n),0),137).a),qan(o=new csn(a++,t,u),r),hon(o,(qqn(),skt),r),o.e.b=r.j+r.f/2,o.f.a=e.Math.max(r.g,1),o.e.a=r.i+r.g/2,o.f.b=e.Math.max(r.f,1),DH(t.b,o),jCn(i.f,r,o)}function m_n(n){var t,e,i,r,c;i=BB(mMn(n,(hWn(),dlt)),33),c=BB(ZAn(i,(HXn(),Fgt)),174).Hc((mdn(),_It)),n.e||(r=BB(mMn(n,Zft),21),t=new xC(n.f.a+n.d.b+n.d.c,n.f.b+n.d.d+n.d.a),r.Hc((bDn(),lft))?(Ypn(i,ept,(QEn(),XCt)),KUn(i,t.a,t.b,!1,!0)):qy(TD(ZAn(i,Bgt)))||KUn(i,t.a,t.b,!0,!0)),Ypn(i,Fgt,c?nbn(_It):new YK(e=BB(Vj(YIt),9),BB(SR(e,e.length),9),0))}function y_n(n,t,e){var i,r,c,a;if(t[0]>=n.length)return e.o=0,!0;switch(fV(n,t[0])){case 43:r=1;break;case 45:r=-1;break;default:return e.o=0,!0}if(++t[0],c=t[0],0==(a=UIn(n,t))&&t[0]==c)return!1;if(t[0]<n.length&&58==fV(n,t[0])){if(i=60*a,++t[0],c=t[0],0==(a=UIn(n,t))&&t[0]==c)return!1;i+=a}else(i=a)<24&&t[0]-c<=2?i*=60:i=i%100+60*(i/100|0);return i*=r,e.o=-i,!0}function k_n(n){var t,e,i,r,c,a,u;for(r=new Np,i=new oz(ZL(lbn(n.b).a.Kc(),new h));dAn(i);)b5(e=BB(U5(i),17))&&WB(r,new j6(e,v9(n,e.c),v9(n,e.d)));for(u=new Kb(new Ob(n.e).a.vc().Kc());u.a.Ob();)t=BB(u.a.Pb(),42),(c=BB(t.dd(),113)).d.p=0;for(a=new Kb(new Ob(n.e).a.vc().Kc());a.a.Ob();)t=BB(a.a.Pb(),42),0==(c=BB(t.dd(),113)).d.p&&WB(n.d,RKn(n,c))}function j_n(n){var t,e,i,r,c;for(c=WJ(n),r=new AL((!n.e&&(n.e=new hK(_Ot,n,7,4)),n.e));r.e!=r.i.gc();)if(i=BB(kpn(r),79),!Ctn(PTn(BB(Wtn((!i.c&&(i.c=new hK(KOt,i,5,8)),i.c),0),82)),c))return!0;for(e=new AL((!n.d&&(n.d=new hK(_Ot,n,8,5)),n.d));e.e!=e.i.gc();)if(t=BB(kpn(e),79),!Ctn(PTn(BB(Wtn((!t.b&&(t.b=new hK(KOt,t,4,7)),t.b),0),82)),c))return!0;return!1}function E_n(n){var t,i,r,c,a,u,o,s;for(s=new km,o=null,i=BB(b3(t=spn(n,0)),8),c=BB(b3(t),8);t.b!=t.d.c;)o=i,i=c,c=BB(b3(t),8),a=ctn(XR(new xC(o.a,o.b),i)),u=ctn(XR(new xC(c.a,c.b),i)),r=10,r=e.Math.min(r,e.Math.abs(a.a+a.b)/2),r=e.Math.min(r,e.Math.abs(u.a+u.b)/2),a.a=HH(a.a)*r,a.b=HH(a.b)*r,u.a=HH(u.a)*r,u.b=HH(u.b)*r,DH(s,UR(a,i)),DH(s,UR(u,i));return s}function T_n(n,t,e,i){var r,c,a,u,o;return a=n.eh(),r=null,(o=n.Zg())?t&&0==(gKn(n,t,e).Bb&BQn)?(i=_pn(o.Vk(),n,i),n.uh(null),r=t.fh()):o=null:(a&&(o=a.fh()),t&&(r=t.fh())),o!=r&&o&&o.Zk(n),u=n.Vg(),n.Rg(t,e),o!=r&&r&&r.Yk(n),n.Lg()&&n.Mg()&&(a&&u>=0&&u!=e&&(c=new nU(n,1,u,a,null),i?i.Ei(c):i=c),e>=0&&(c=new nU(n,1,e,u==e?a:null,t),i?i.Ei(c):i=c)),i}function M_n(n){var t,e,i;if(null==n.b){if(i=new Sk,null!=n.i&&(cO(i,n.i),i.a+=":"),0!=(256&n.f)){for(0!=(256&n.f)&&null!=n.a&&(rQ(n.i)||(i.a+="//"),cO(i,n.a)),null!=n.d&&(i.a+="/",cO(i,n.d)),0!=(16&n.f)&&(i.a+="/"),t=0,e=n.j.length;t<e;t++)0!=t&&(i.a+="/"),cO(i,n.j[t]);null!=n.g&&(i.a+="?",cO(i,n.g))}else cO(i,n.a);null!=n.e&&(i.a+="#",cO(i,n.e)),n.b=i.a}return n.b}function S_n(n,t){var e,i,r,c,a,u;for(r=new Wb(t.a);r.a<r.c.c.length;)cL(c=mMn(i=BB(n0(r),10),(hWn(),dlt)),11)&&(u=yFn(t,i,(a=BB(c,11)).o.a,a.o.b),a.n.a=u.a,a.n.b=u.b,qCn(a,BB(mMn(i,Qft),61)));e=new xC(t.f.a+t.d.b+t.d.c,t.f.b+t.d.d+t.d.a),BB(mMn(t,(hWn(),Zft)),21).Hc((bDn(),lft))?(hon(n,(HXn(),ept),(QEn(),XCt)),BB(mMn(vW(n),Zft),21).Fc(dft),bGn(n,e,!1)):bGn(n,e,!0)}function P_n(n,t,e){var i,r,c,a,u;OTn(e,"Minimize Crossings "+n.a,1),i=0==t.b.c.length||!jE(AV(new Rq(null,new w1(t.b,16)),new aw(new Ac))).sd((dM(),tit)),u=1==t.b.c.length&&1==BB(xq(t.b,0),29).a.c.length,c=GI(mMn(t,(HXn(),sgt)))===GI((ufn(),pCt)),i||u&&!c||(Ssn(r=sxn(n,t),(a=BB(Dpn(r,0),214)).c.Rf()?a.c.Lf()?new Ud(n):new Xd(n):new zd(n)),afn(n)),HSn(e)}function C_n(n,t,e,i){var r,c,a,u;if(u=dG(cbn(SVn,rV(dG(cbn(null==t?0:nsn(t),PVn)),15))),r=dG(cbn(SVn,rV(dG(cbn(null==e?0:nsn(e),PVn)),15))),a=Zrn(n,t,u),c=Jrn(n,e,r),a&&r==a.a&&wW(e,a.g))return e;if(c&&!i)throw Hp(new _y("key already present: "+e));return a&&LLn(n,a),c&&LLn(n,c),YCn(n,new qW(e,r,t,u),c),c&&(c.e=null,c.c=null),a&&(a.e=null,a.c=null),qkn(n),a?a.g:null}function I_n(n,t,e){var i,r,c,a,u;for(c=0;c<t;c++){for(i=0,u=c+1;u<t;u++)i=rbn(rbn(cbn(e0(n[c],UQn),e0(n[u],UQn)),e0(e[c+u],UQn)),e0(dG(i),UQn)),e[c+u]=dG(i),i=jz(i,32);e[c+t]=dG(i)}for(ncn(e,e,t<<1),i=0,r=0,a=0;r<t;++r,a++)i=rbn(rbn(cbn(e0(n[r],UQn),e0(n[r],UQn)),e0(e[a],UQn)),e0(dG(i),UQn)),e[a]=dG(i),i=rbn(i=jz(i,32),e0(e[++a],UQn)),e[a]=dG(i),i=jz(i,32);return e}function O_n(n,t,i){var r,c,a,u,o,s,h,f;if(!h3(t)){for(s=Gy(MD(edn(i.c,(HXn(),Npt)))),!(h=BB(edn(i.c,Lpt),142))&&(h=new lm),r=i.a,c=null,o=t.Kc();o.Ob();)u=BB(o.Pb(),11),f=0,c?(f=s,f+=c.o.b):f=h.d,a=AN(oM(new qv,u),n.f),VW(n.k,u,a),UNn(aM(cM(rM(uM(new Hv,0),CJ(e.Math.ceil(f))),r),a)),c=u,r=a;UNn(aM(cM(rM(uM(new Hv,0),CJ(e.Math.ceil(h.a+c.o.b))),r),i.d))}}function A_n(n,t,e,i,r,c,a,u){var o,s,h;return h=!1,s=c-e.s,o=e.t-t.f+cHn(e,s,!1).a,!(i.g+u>s)&&(o+u+cHn(i,s,!1).a<=t.b&&(p9(e,c-e.s),e.c=!0,p9(i,c-e.s),Tvn(i,e.s,e.t+e.d+u),i.k=!0,xcn(e.q,i),h=!0,r&&(tin(t,i),i.j=t,n.c.length>a&&(Tkn((l1(a,n.c.length),BB(n.c[a],200)),i),0==(l1(a,n.c.length),BB(n.c[a],200)).a.c.length&&s6(n,a)))),h)}function $_n(n,t){var e,i,r,c,a;if(OTn(t,"Partition midprocessing",1),r=new pJ,JT(AV(new Rq(null,new w1(n.a,16)),new di),new ld(r)),0!=r.d){for(a=BB(P4(a1(new Rq(null,(r.i||(r.i=new HL(r,r.c))).Nc())),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15),e=BB((i=a.Kc()).Pb(),19);i.Ob();)c=BB(i.Pb(),19),XLn(BB(h6(r,e),21),BB(h6(r,c),21)),e=c;HSn(t)}}function L_n(n,t,e){var i,r,c,a,u;if(0==t.p){for(t.p=1,(r=e)||(r=new rI(new Np,new YK(i=BB(Vj(FIt),9),BB(SR(i,i.length),9),0))),BB(r.a,15).Fc(t),t.k==(uSn(),Mut)&&BB(r.b,21).Fc(BB(mMn(t,(hWn(),Qft)),61)),a=new Wb(t.j);a.a<a.c.c.length;)for(c=BB(n0(a),11),u=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(c),new Gw(c)])));dAn(u);)L_n(n,BB(U5(u),11).i,r);return r}return null}function N_n(n,t){var e,i,r,c,a;if(n.Ab)if(n.Ab){if((a=n.Ab.i)>0)if(r=BB(n.Ab.g,1934),null==t){for(c=0;c<a;++c)if(null==(e=r[c]).d)return e}else for(c=0;c<a;++c)if(mK(t,(e=r[c]).d))return e}else if(null==t){for(i=new AL(n.Ab);i.e!=i.i.gc();)if(null==(e=BB(kpn(i),590)).d)return e}else for(i=new AL(n.Ab);i.e!=i.i.gc();)if(mK(t,(e=BB(kpn(i),590)).d))return e;return null}function x_n(n,t){var e,i,r,c,a,u,o;if(null==(o=TD(mMn(t,(CAn(),Nkt))))||(kW(o),o)){for(DOn(n,t),r=new Np,u=spn(t.b,0);u.b!=u.d.c;)(e=xPn(n,BB(b3(u),86),null))&&(qan(e,t),r.c[r.c.length]=e);if(n.a=null,n.b=null,r.c.length>1)for(i=new Wb(r);i.a<i.c.c.length;)for(c=0,a=spn((e=BB(n0(i),135)).b,0);a.b!=a.d.c;)BB(b3(a),86).g=c++;return r}return u6(Pun(Gk(Gyt,1),tZn,135,0,[t]))}function D_n(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p;crn(b=A3(n,qun(t),r),R2(r,q6n)),d=D2(w=r,U6n),cSn(new Lg(b).a,d),g=D2(w,"endPoint"),rSn(new Rg(b).a,g),p=N2(w,D6n),SEn(new Fg(b).a,p),f=R2(r,K6n),qR((c=new hI(n,b)).a,c.b,f),l=R2(r,R6n),GR((a=new fI(n,b)).a,a.b,l),s=N2(r,F6n),Fyn((u=new lI(e,b)).b,u.a,s),h=N2(r,_6n),Byn((o=new bI(i,b)).b,o.a,h)}function R_n(n,t,e){var i,r,c,a,u;switch(u=null,t.g){case 1:for(r=new Wb(n.j);r.a<r.c.c.length;)if(qy(TD(mMn(i=BB(n0(r),11),(hWn(),tlt)))))return i;hon(u=new CSn,(hWn(),tlt),(hN(),!0));break;case 2:for(a=new Wb(n.j);a.a<a.c.c.length;)if(qy(TD(mMn(c=BB(n0(a),11),(hWn(),klt)))))return c;hon(u=new CSn,(hWn(),klt),(hN(),!0))}return u&&(CZ(u,n),qCn(u,e),yvn(u.n,n.o,e)),u}function K_n(n,t){var i,r,c,a,u,o;for(o=-1,u=new YT,r=new m6(n.b);y$(r.a)||y$(r.b);){for(i=BB(y$(r.a)?n0(r.a):n0(r.b),17),o=e.Math.max(o,Gy(MD(mMn(i,(HXn(),agt))))),i.c==n?JT(AV(new Rq(null,new w1(i.b,16)),new fe),new nd(u)):JT(AV(new Rq(null,new w1(i.b,16)),new le),new td(u)),a=spn(u,0);a.b!=a.d.c;)Lx(c=BB(b3(a),70),(hWn(),Uft))||hon(c,Uft,i);gun(t,u),yQ(u)}return o}function __n(n,t,e,i,r){var c,a,u,o;Bl(c=new $vn(n),(uSn(),Iut)),hon(c,(HXn(),ept),(QEn(),XCt)),hon(c,(hWn(),dlt),t.c.i),hon(a=new CSn,dlt,t.c),qCn(a,r),CZ(a,c),hon(t.c,Elt,c),Bl(u=new $vn(n),Iut),hon(u,ept,XCt),hon(u,dlt,t.d.i),hon(o=new CSn,dlt,t.d),qCn(o,r),CZ(o,u),hon(t.d,Elt,u),SZ(t,a),MZ(t,o),LZ(0,e.c.length),MS(e.c,0,c),i.c[i.c.length]=u,hon(c,Bft,iln(1)),hon(u,Bft,iln(1))}function F_n(n,t,i,r,c){var a,u,o,s,h;o=c?r.b:r.a,FT(n.a,r)||(h=o>i.s&&o<i.c,s=!1,0!=i.e.b&&0!=i.j.b&&(s|=e.Math.abs(o-Gy(MD(gx(i.e))))<lZn&&e.Math.abs(o-Gy(MD(gx(i.j))))<lZn,s|=e.Math.abs(o-Gy(MD(px(i.e))))<lZn&&e.Math.abs(o-Gy(MD(px(i.j))))<lZn),(h||s)&&((u=BB(mMn(t,(HXn(),vgt)),74))||(u=new km,hon(t,vgt,u)),r5(u,a=new wA(r),u.c.b,u.c),TU(n.a,a)))}function B_n(n,t,e,i){var r,c,a,u,o,s,h;if(WIn(n,t,e,i))return!0;for(a=new Wb(t.f);a.a<a.c.c.length;){switch(c=BB(n0(a),324),u=!1,s=(o=n.j-t.j+e)+t.o,r=(h=n.k-t.k+i)+t.p,c.a.g){case 0:u=Osn(n,o+c.b.a,0,o+c.c.a,h-1);break;case 1:u=Osn(n,s,h+c.b.a,n.o-1,h+c.c.a);break;case 2:u=Osn(n,o+c.b.a,r,o+c.c.a,n.p-1);break;default:u=Osn(n,0,h+c.b.a,o-1,h+c.c.a)}if(u)return!0}return!1}function H_n(n,t){var e,i,r,c,a,u,o,s;for(c=new Wb(t.b);c.a<c.c.c.length;)for(o=new Wb(BB(n0(c),29).a);o.a<o.c.c.length;){for(u=BB(n0(o),10),s=new Np,a=0,i=new oz(ZL(fbn(u).a.Kc(),new h));dAn(i);)b5(e=BB(U5(i),17))||!b5(e)&&e.c.i.c==e.d.i.c||((r=BB(mMn(e,(HXn(),bpt)),19).a)>a&&(a=r,s.c=x8(Ant,HWn,1,0,5,1)),r==a&&WB(s,new rI(e.c.i,e)));SQ(),m$(s,n.c),kG(n.b,u.p,s)}}function q_n(n,t){var e,i,r,c,a,u,o,s;for(c=new Wb(t.b);c.a<c.c.c.length;)for(o=new Wb(BB(n0(c),29).a);o.a<o.c.c.length;){for(u=BB(n0(o),10),s=new Np,a=0,i=new oz(ZL(lbn(u).a.Kc(),new h));dAn(i);)b5(e=BB(U5(i),17))||!b5(e)&&e.c.i.c==e.d.i.c||((r=BB(mMn(e,(HXn(),bpt)),19).a)>a&&(a=r,s.c=x8(Ant,HWn,1,0,5,1)),r==a&&WB(s,new rI(e.d.i,e)));SQ(),m$(s,n.c),kG(n.f,u.p,s)}}function G_n(n){NM(n,new MTn(vj(wj(pj(gj(new du,l5n),"ELK Box"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges."),new xu))),u2(n,l5n,QJn,zMt),u2(n,l5n,vZn,15),u2(n,l5n,pZn,iln(0)),u2(n,l5n,A4n,mpn(_Mt)),u2(n,l5n,PZn,mpn(BMt)),u2(n,l5n,SZn,mpn(qMt)),u2(n,l5n,VJn,f5n),u2(n,l5n,jZn,mpn(FMt)),u2(n,l5n,BZn,mpn(HMt)),u2(n,l5n,b5n,mpn(RMt)),u2(n,l5n,u3n,mpn(KMt))}function z_n(n,t){var e,i,r,c,a,u,o,s,h;if(a=(r=n.i).o.a,c=r.o.b,a<=0&&c<=0)return kUn(),PIt;switch(s=n.n.a,h=n.n.b,u=n.o.a,e=n.o.b,t.g){case 2:case 1:if(s<0)return kUn(),CIt;if(s+u>a)return kUn(),oIt;break;case 4:case 3:if(h<0)return kUn(),sIt;if(h+e>c)return kUn(),SIt}return(o=(s+u/2)/a)+(i=(h+e/2)/c)<=1&&o-i<=0?(kUn(),CIt):o+i>=1&&o-i>=0?(kUn(),oIt):i<.5?(kUn(),sIt):(kUn(),SIt)}function U_n(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;for(e=!1,o=Gy(MD(mMn(t,(HXn(),Opt)))),l=KVn*o,r=new Wb(t.b);r.a<r.c.c.length;)for(i=BB(n0(r),29),c=BB(n0(u=new Wb(i.a)),10),s=wU(n.a[c.p]);u.a<u.c.c.length;)a=BB(n0(u),10),s!=(h=wU(n.a[a.p]))&&(f=K$(n.b,c,a),c.n.b+c.o.b+c.d.a+s.a+f>a.n.b-a.d.d+h.a+l&&(b=s.g+h.g,h.a=(h.g*h.a+s.g*s.a)/b,h.g=b,s.f=h,e=!0)),c=a,s=h;return e}function X_n(n,t,e,i,r,c,a){var u,o,s,h,f;for(f=new bA,o=t.Kc();o.Ob();)for(h=new Wb(BB(o.Pb(),839).wf());h.a<h.c.c.length;)GI((s=BB(n0(h),181)).We((sWn(),gSt)))===GI((Rtn(),XPt))&&(rKn(f,s,!1,i,r,c,a),CPn(n,f));for(u=e.Kc();u.Ob();)for(h=new Wb(BB(u.Pb(),839).wf());h.a<h.c.c.length;)GI((s=BB(n0(h),181)).We((sWn(),gSt)))===GI((Rtn(),UPt))&&(rKn(f,s,!0,i,r,c,a),CPn(n,f))}function W_n(n,t,e){var i,r,c,a,u,o,s;for(a=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));a.e!=a.i.gc();)for(r=new oz(ZL(dLn(c=BB(kpn(a),33)).a.Kc(),new h));dAn(r);)nAn(i=BB(U5(r),79))||nAn(i)||QIn(i)||(o=BB(qI(AY(e.f,c)),86),s=BB(RX(e,PTn(BB(Wtn((!i.c&&(i.c=new hK(KOt,i,5,8)),i.c),0),82))),86),o&&s&&(hon(u=new UQ(o,s),(qqn(),skt),i),qan(u,i),DH(o.d,u),DH(s.b,u),DH(t.a,u)))}function V_n(n,t){var i,r,c,a,u,o,s;for(o=BB(BB(h6(n.r,t),21),84).Kc();o.Ob();)(r=(u=BB(o.Pb(),111)).c?WH(u.c):0)>0?u.a?r>(s=u.b.rf().b)&&(n.v||1==u.c.d.c.length?(a=(r-s)/2,u.d.d=a,u.d.a=a):(i=(BB(xq(u.c.d,0),181).rf().b-s)/2,u.d.d=e.Math.max(0,i),u.d.a=r-i-s)):u.d.a=n.t+r:Hz(n.u)&&((c=_Tn(u.b)).d<0&&(u.d.d=-c.d),c.d+c.a>u.b.rf().b&&(u.d.a=c.d+c.a-u.b.rf().b))}function Q_n(n,t){var e;switch(vnn(n)){case 6:return XI(t);case 7:return UI(t);case 8:return zI(t);case 3:return Array.isArray(t)&&!((e=vnn(t))>=14&&e<=16);case 11:return null!=t&&typeof t===xWn;case 12:return null!=t&&(typeof t===AWn||typeof t==xWn);case 0:return Qpn(t,n.__elementTypeId$);case 2:return DU(t)&&!(t.im===I);case 1:return DU(t)&&!(t.im===I)||Qpn(t,n.__elementTypeId$);default:return!0}}function Y_n(n,t){var i,r,c,a;return r=e.Math.min(e.Math.abs(n.c-(t.c+t.b)),e.Math.abs(n.c+n.b-t.c)),a=e.Math.min(e.Math.abs(n.d-(t.d+t.a)),e.Math.abs(n.d+n.a-t.d)),(i=e.Math.abs(n.c+n.b/2-(t.c+t.b/2)))>n.b/2+t.b/2||(c=e.Math.abs(n.d+n.a/2-(t.d+t.a/2)))>n.a/2+t.a/2?1:0==i&&0==c?0:0==i?a/c+1:0==c?r/i+1:e.Math.min(r/i,a/c)+1}function J_n(n,t){var i,r,c,a,u,o;return(c=iin(n))==(o=iin(t))?n.e==t.e&&n.a<54&&t.a<54?n.f<t.f?-1:n.f>t.f?1:0:(r=n.e-t.e,(i=(n.d>0?n.d:e.Math.floor((n.a-1)*zQn)+1)-(t.d>0?t.d:e.Math.floor((t.a-1)*zQn)+1))>r+1?c:i<r-1?-c:(!n.c&&(n.c=yhn(n.f)),a=n.c,!t.c&&(t.c=yhn(t.f)),u=t.c,r<0?a=Nnn(a,kBn(-r)):r>0&&(u=Nnn(u,kBn(r))),tgn(a,u))):c<o?-1:1}function Z_n(n,t){var e,i,r,c,a,u,o;for(c=0,u=0,o=0,r=new Wb(n.f.e);r.a<r.c.c.length;)t!=(i=BB(n0(r),144))&&(c+=a=n.i[t.b][i.b],(e=W8(t.d,i.d))>0&&n.d!=(q7(),Aat)&&(u+=a*(i.d.a+n.a[t.b][i.b]*(t.d.a-i.d.a)/e)),e>0&&n.d!=(q7(),Iat)&&(o+=a*(i.d.b+n.a[t.b][i.b]*(t.d.b-i.d.b)/e)));switch(n.d.g){case 1:return new xC(u/c,t.d.b);case 2:return new xC(t.d.a,o/c);default:return new xC(u/c,o/c)}}function nFn(n,t){var e,i,r,c;if(zsn(),c=BB(mMn(n.i,(HXn(),ept)),98),0!=n.j.g-t.j.g||c!=(QEn(),UCt)&&c!=WCt&&c!=XCt)return 0;if(c==(QEn(),UCt)&&(e=BB(mMn(n,ipt),19),i=BB(mMn(t,ipt),19),e&&i&&0!=(r=e.a-i.a)))return r;switch(n.j.g){case 1:return Pln(n.n.a,t.n.a);case 2:return Pln(n.n.b,t.n.b);case 3:return Pln(t.n.a,n.n.a);case 4:return Pln(t.n.b,n.n.b);default:throw Hp(new Fy(r1n))}}function tFn(n){var t,e,i,r,c;for(WB(c=new J6((!n.a&&(n.a=new $L(xOt,n,5)),n.a).i+2),new xC(n.j,n.k)),JT(new Rq(null,(!n.a&&(n.a=new $L(xOt,n,5)),new w1(n.a,16))),new Ig(c)),WB(c,new xC(n.b,n.c)),t=1;t<c.c.length-1;)l1(t-1,c.c.length),e=BB(c.c[t-1],8),l1(t,c.c.length),i=BB(c.c[t],8),l1(t+1,c.c.length),r=BB(c.c[t+1],8),e.a==i.a&&i.a==r.a||e.b==i.b&&i.b==r.b?s6(c,t):++t;return c}function eFn(n,t){var e,i,r,c,a,u,o;for(e=ON(iM(tM(eM(new Wv,t),new gY(t.e)),gst),n.a),0==t.j.c.length||V9(BB(xq(t.j,0),57).a,e),o=new Dp,VW(n.e,e,o),a=new Rv,u=new Rv,c=new Wb(t.k);c.a<c.c.c.length;)TU(a,(r=BB(n0(c),17)).c),TU(u,r.d);(i=a.a.gc()-u.a.gc())<0?(Uun(o,!0,(Ffn(),_Pt)),Uun(o,!1,FPt)):i>0&&(Uun(o,!1,(Ffn(),_Pt)),Uun(o,!0,FPt)),Otn(t.g,new sP(n,e)),VW(n.g,t,e)}function iFn(){var n;for(iFn=O,Ltt=Pun(Gk(ANt,1),hQn,25,15,[-1,-1,30,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5]),Ntt=x8(ANt,hQn,25,37,15,1),xtt=Pun(Gk(ANt,1),hQn,25,15,[-1,-1,63,40,32,28,25,23,21,20,19,19,18,18,17,17,16,16,16,15,15,15,15,14,14,14,14,14,14,13,13,13,13,13,13,13,13]),Dtt=x8(LNt,FQn,25,37,14,1),n=2;n<=36;n++)Ntt[n]=CJ(e.Math.pow(n,Ltt[n])),Dtt[n]=Ojn(bVn,Ntt[n])}function rFn(n){var t;if(1!=(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i)throw Hp(new _y(B5n+(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i));return t=new km,bun(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82))&&Frn(t,zXn(n,bun(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)),!1)),bun(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82))&&Frn(t,zXn(n,bun(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82)),!0)),t}function cFn(n,t){var e,i,r;for(r=!1,i=new oz(ZL((t.d?n.a.c==(gJ(),tyt)?fbn(t.b):lbn(t.b):n.a.c==(gJ(),nyt)?fbn(t.b):lbn(t.b)).a.Kc(),new h));dAn(i);)if(e=BB(U5(i),17),(qy(n.a.f[n.a.g[t.b.p].p])||b5(e)||e.c.i.c!=e.d.i.c)&&!qy(n.a.n[n.a.g[t.b.p].p])&&!qy(n.a.n[n.a.g[t.b.p].p])&&(r=!0,FT(n.b,n.a.g[Lmn(e,t.b).p])))return t.c=!0,t.a=e,t;return t.c=r,t.a=null,t}function aFn(n,t,e,i,r){var c,a,u,o,s,h,f;for(SQ(),m$(n,new Xu),u=new M2(n,0),f=new Np,c=0;u.b<u.d.gc();)Px(u.b<u.d.gc()),a=BB(u.d.Xb(u.c=u.b++),157),0!=f.c.length&&iG(a)*eG(a)>2*c?(h=new Gtn(f),s=iG(a)/eG(a),o=yXn(h,t,new bm,e,i,r,s),UR(kO(h.e),o),f.c=x8(Ant,HWn,1,0,5,1),c=0,f.c[f.c.length]=h,f.c[f.c.length]=a,c=iG(h)*eG(h)+iG(a)*eG(a)):(f.c[f.c.length]=a,c+=iG(a)*eG(a));return f}function uFn(n,t,e){var i,r,c,a,u,o,s;if(0==(i=e.gc()))return!1;if(n.ej())if(o=n.fj(),kwn(n,t,e),a=1==i?n.Zi(3,null,e.Kc().Pb(),t,o):n.Zi(5,null,e,t,o),n.bj()){for(u=i<100?null:new Fj(i),c=t+i,r=t;r<c;++r)s=n.Oi(r),u=n.cj(s,u);u?(u.Ei(a),u.Fi()):n.$i(a)}else n.$i(a);else if(kwn(n,t,e),n.bj()){for(u=i<100?null:new Fj(i),c=t+i,r=t;r<c;++r)u=n.cj(n.Oi(r),u);u&&u.Fi()}return!0}function oFn(n,t,e){var i,r,c,a;return n.ej()?(r=null,c=n.fj(),i=n.Zi(1,a=n.Ui(t,n.oi(t,e)),e,t,c),n.bj()&&!(n.ni()&&a?Nfn(a,e):GI(a)===GI(e))?(a&&(r=n.dj(a,r)),(r=n.cj(e,r))?(r.Ei(i),r.Fi()):n.$i(i)):r?(r.Ei(i),r.Fi()):n.$i(i),a):(a=n.Ui(t,n.oi(t,e)),n.bj()&&!(n.ni()&&a?Nfn(a,e):GI(a)===GI(e))&&(r=null,a&&(r=n.dj(a,null)),(r=n.cj(e,r))&&r.Fi()),a)}function sFn(n,t){var i,r,c,a,u,o,s,h;if(n.e=t,n.f=BB(mMn(t,(Mrn(),hat)),230),XTn(t),n.d=e.Math.max(16*t.e.c.length+t.c.c.length,256),!qy(TD(mMn(t,(fRn(),Hct)))))for(h=n.e.e.c.length,o=new Wb(t.e);o.a<o.c.c.length;)(s=BB(n0(o),144).d).a=OG(n.f)*h,s.b=OG(n.f)*h;for(i=t.b,a=new Wb(t.c);a.a<a.c.c.length;)if(c=BB(n0(a),282),(r=BB(mMn(c,eat),19).a)>0){for(u=0;u<r;u++)WB(i,new hX(c));BCn(c)}}function hFn(n,t){var i,r,c,a,u;if(n.k==(uSn(),Sut)&&(i=jE(AV(BB(mMn(n,(hWn(),Plt)),15).Oc(),new aw(new ri))).sd((dM(),tit))?t:(Xyn(),TCt),hon(n,ult,i),i!=(Xyn(),ECt)))for(r=BB(mMn(n,dlt),17),u=Gy(MD(mMn(r,(HXn(),agt)))),a=0,i==jCt?a=n.o.b-e.Math.ceil(u/2):i==TCt&&(n.o.b-=Gy(MD(mMn(vW(n),jpt))),a=(n.o.b-e.Math.ceil(u))/2),c=new Wb(n.j);c.a<c.c.c.length;)BB(n0(c),11).n.b=a}function fFn(){fFn=O,JM(),TNt=new Rh,Pun(Gk(A$t,2),sVn,368,0,[Pun(Gk(A$t,1),jnt,592,0,[new UE(z7n)])]),Pun(Gk(A$t,2),sVn,368,0,[Pun(Gk(A$t,1),jnt,592,0,[new UE(U7n)])]),Pun(Gk(A$t,2),sVn,368,0,[Pun(Gk(A$t,1),jnt,592,0,[new UE(X7n)]),Pun(Gk(A$t,1),jnt,592,0,[new UE(U7n)])]),new $A("-1"),Pun(Gk(A$t,2),sVn,368,0,[Pun(Gk(A$t,1),jnt,592,0,[new UE("\\c+")])]),new $A("0"),new $A("0"),new $A("1"),new $A("0"),new $A(int)}function lFn(n){var t,e;return n.c&&n.c.kh()&&(e=BB(n.c,49),n.c=BB(tfn(n,e),138),n.c!=e&&(0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,9,2,e,n.c)),cL(n.Cb,399)?n.Db>>16==-15&&n.Cb.nh()&&$7(new k9(n.Cb,9,13,e,n.c,uvn(H7(BB(n.Cb,59)),n))):cL(n.Cb,88)&&n.Db>>16==-23&&n.Cb.nh()&&(cL(t=n.c,88)||(gWn(),t=d$t),cL(e,88)||(gWn(),e=d$t),$7(new k9(n.Cb,9,10,e,t,uvn(a4(BB(n.Cb,26)),n)))))),n.c}function bFn(n,t){var e,i,r,c,a,u,o,s;for(OTn(t,"Hypernodes processing",1),i=new Wb(n.b);i.a<i.c.c.length;)for(a=new Wb(BB(n0(i),29).a);a.a<a.c.c.length;)if(qy(TD(mMn(c=BB(n0(a),10),(HXn(),bgt))))&&c.j.c.length<=2){for(s=0,o=0,e=0,r=0,u=new Wb(c.j);u.a<u.c.c.length;)switch(BB(n0(u),11).j.g){case 1:++s;break;case 2:++o;break;case 3:++e;break;case 4:++r}0==s&&0==e&&jXn(n,c,r<=o)}HSn(t)}function wFn(n,t){var e,i,r,c,a,u,o,s,h;for(OTn(t,"Layer constraint edge reversal",1),a=new Wb(n.b);a.a<a.c.c.length;){for(c=BB(n0(a),29),h=-1,e=new Np,s=n2(c.a),r=0;r<s.length;r++)i=BB(mMn(s[r],(hWn(),ilt)),303),-1==h?i!=(z7(),Cft)&&(h=r):i==(z7(),Cft)&&(PZ(s[r],null),Qyn(s[r],h++,c)),i==(z7(),Sft)&&WB(e,s[r]);for(o=new Wb(e);o.a<o.c.c.length;)PZ(u=BB(n0(o),10),null),PZ(u,c)}HSn(t)}function dFn(n,t,e){var i,r,c,a,u,o,s,h;for(OTn(e,"Hyperedge merging",1),xAn(n,t),u=new M2(t.b,0);u.b<u.d.gc();)if(Px(u.b<u.d.gc()),0!=(s=BB(u.d.Xb(u.c=u.b++),29).a).c.length)for(i=null,r=null,c=null,a=null,o=0;o<s.c.length;o++)l1(o,s.c.length),(r=(i=BB(s.c[o],10)).k)==(uSn(),Put)&&a==Put&&(h=hHn(i,c)).a&&(rDn(i,c,h.b,h.c),l1(o,s.c.length),PE(s.c,o,1),--o,i=c,r=a),c=i,a=r;HSn(e)}function gFn(n,t){var e,i,r;i=0!=H$n(n.d,1),!qy(TD(mMn(t.j,(hWn(),Jft))))&&!qy(TD(mMn(t.j,Ilt)))||GI(mMn(t.j,(HXn(),Ldt)))===GI((mon(),Nvt))?t.c.Tf(t.e,i):i=qy(TD(mMn(t.j,Jft))),DNn(n,t,i,!0),qy(TD(mMn(t.j,Ilt)))&&hon(t.j,Ilt,(hN(),!1)),qy(TD(mMn(t.j,Jft)))&&(hon(t.j,Jft,(hN(),!1)),hon(t.j,Ilt,!0)),e=eKn(n,t);do{if($rn(n),0==e)return 0;r=e,DNn(n,t,i=!i,!1),e=eKn(n,t)}while(r>e);return r}function pFn(n,t){var e,i,r;i=0!=H$n(n.d,1),!qy(TD(mMn(t.j,(hWn(),Jft))))&&!qy(TD(mMn(t.j,Ilt)))||GI(mMn(t.j,(HXn(),Ldt)))===GI((mon(),Nvt))?t.c.Tf(t.e,i):i=qy(TD(mMn(t.j,Jft))),DNn(n,t,i,!0),qy(TD(mMn(t.j,Ilt)))&&hon(t.j,Ilt,(hN(),!1)),qy(TD(mMn(t.j,Jft)))&&(hon(t.j,Jft,(hN(),!1)),hon(t.j,Ilt,!0)),e=nCn(n,t);do{if($rn(n),0==e)return 0;r=e,DNn(n,t,i=!i,!1),e=nCn(n,t)}while(r>e);return r}function vFn(n,t,e){var i,r,c,a,u,o,s;if(t==e)return!0;if(t=bAn(n,t),e=bAn(n,e),i=qvn(t)){if((o=qvn(e))!=i)return!!o&&(a=i.Dj())==o.Dj()&&null!=a;if(!t.d&&(t.d=new $L(VAt,t,1)),r=(c=t.d).i,!e.d&&(e.d=new $L(VAt,e,1)),r==(s=e.d).i)for(u=0;u<r;++u)if(!vFn(n,BB(Wtn(c,u),87),BB(Wtn(s,u),87)))return!1;return!0}return t.e==e.e}function mFn(n,t,e,i){var r,c,a,u,o,s,h,f;if($xn(n.e,t)){for(f=axn(n.e.Tg(),t),c=BB(n.g,119),h=null,o=-1,u=-1,r=0,s=0;s<n.i;++s)a=c[s],f.rl(a.ak())&&(r==e&&(o=s),r==i&&(u=s,h=a.dd()),++r);if(-1==o)throw Hp(new Ay(u8n+e+o8n+r));if(-1==u)throw Hp(new Ay(s8n+i+o8n+r));return Iln(n,o,u),mA(n.e)&&Lv(n,LY(n,7,t,iln(i),h,e,!0)),h}throw Hp(new _y("The feature must be many-valued to support move"))}function yFn(n,t,e,i){var r,c,a,u,o;switch((o=new wA(t.n)).a+=t.o.a/2,o.b+=t.o.b/2,u=Gy(MD(mMn(t,(HXn(),tpt)))),c=n.f,a=n.d,r=n.c,BB(mMn(t,(hWn(),Qft)),61).g){case 1:o.a+=a.b+r.a-e/2,o.b=-i-u,t.n.b=-(a.d+u+r.b);break;case 2:o.a=c.a+a.b+a.c+u,o.b+=a.d+r.b-i/2,t.n.a=c.a+a.c+u-r.a;break;case 3:o.a+=a.b+r.a-e/2,o.b=c.b+a.d+a.a+u,t.n.b=c.b+a.a+u-r.b;break;case 4:o.a=-e-u,o.b+=a.d+r.b-i/2,t.n.a=-(a.b+u+r.a)}return o}function kFn(n){var t,e,i,r,c,a;return qan(i=new min,n),GI(mMn(i,(HXn(),Udt)))===GI((Ffn(),BPt))&&hon(i,Udt,Wln(i)),null==mMn(i,(C6(),TMt))&&(a=BB($Mn(n),160),hon(i,TMt,iO(a.We(TMt)))),hon(i,(hWn(),dlt),n),hon(i,Zft,new YK(t=BB(Vj(Tft),9),BB(SR(t,t.length),9),0)),r=Pzn((JJ(n)&&(GM(),new Dy(JJ(n))),GM(),new JN(JJ(n)?new Dy(JJ(n)):null,n)),FPt),c=BB(mMn(i,zgt),116),eZ(e=i.d,c),eZ(e,r),i}function jFn(n,t,e){var i,r;i=t.c.i,r=e.d.i,i.k==(uSn(),Put)?(hon(n,(hWn(),hlt),BB(mMn(i,hlt),11)),hon(n,flt,BB(mMn(i,flt),11)),hon(n,slt,TD(mMn(i,slt)))):i.k==Sut?(hon(n,(hWn(),hlt),BB(mMn(i,hlt),11)),hon(n,flt,BB(mMn(i,flt),11)),hon(n,slt,(hN(),!0))):r.k==Sut?(hon(n,(hWn(),hlt),BB(mMn(r,hlt),11)),hon(n,flt,BB(mMn(r,flt),11)),hon(n,slt,(hN(),!0))):(hon(n,(hWn(),hlt),t.c),hon(n,flt,e.d))}function EFn(n){var t,e,i,r,c,a,u;for(n.o=new Lp,i=new YT,a=new Wb(n.e.a);a.a<a.c.c.length;)1==kbn(c=BB(n0(a),121)).c.length&&r5(i,c,i.c.b,i.c);for(;0!=i.b;)0!=kbn(c=BB(0==i.b?null:(Px(0!=i.b),Atn(i,i.a.a)),121)).c.length&&(t=BB(xq(kbn(c),0),213),e=c.g.a.c.length>0,u=Nbn(t,c),KN(e?u.b:u.g,t),1==kbn(u).c.length&&r5(i,u,i.c.b,i.c),r=new rI(c,t),d3(n.o,r),y7(n.e.a,c))}function TFn(n,t){var i,r,c,a;return r=e.Math.abs(qz(n.b).a-qz(t.b).a),a=e.Math.abs(qz(n.b).b-qz(t.b).b),i=1,c=1,r>n.b.b/2+t.b.b/2&&(i=1-e.Math.min(e.Math.abs(n.b.c-(t.b.c+t.b.b)),e.Math.abs(n.b.c+n.b.b-t.b.c))/r),a>n.b.a/2+t.b.a/2&&(c=1-e.Math.min(e.Math.abs(n.b.d-(t.b.d+t.b.a)),e.Math.abs(n.b.d+n.b.a-t.b.d))/a),(1-e.Math.min(i,c))*e.Math.sqrt(r*r+a*a)}function MFn(n){var t,e,i;for(nUn(n,n.e,n.f,(dJ(),Lyt),!0,n.c,n.i),nUn(n,n.e,n.f,Lyt,!1,n.c,n.i),nUn(n,n.e,n.f,Nyt,!0,n.c,n.i),nUn(n,n.e,n.f,Nyt,!1,n.c,n.i),IFn(n,n.c,n.e,n.f,n.i),e=new M2(n.i,0);e.b<e.d.gc();)for(Px(e.b<e.d.gc()),t=BB(e.d.Xb(e.c=e.b++),128),i=new M2(n.i,e.b);i.b<i.d.gc();)Px(i.b<i.d.gc()),Nqn(t,BB(i.d.Xb(i.c=i.b++),128));IXn(n.i,BB(mMn(n.d,(hWn(),Slt)),230)),GGn(n.i)}function SFn(n,t){var e,i;if(null!=t)if(i=iyn(n)){if(0==(1&i.i))return nS(),!(e=BB(RX(mAt,i),55))||e.wj(t);if(i==$Nt)return zI(t);if(i==ANt)return cL(t,19);if(i==DNt)return cL(t,155);if(i==NNt)return cL(t,217);if(i==ONt)return cL(t,172);if(i==xNt)return UI(t);if(i==RNt)return cL(t,184);if(i==LNt)return cL(t,162)}else if(cL(t,56))return n.uk(BB(t,56));return!1}function PFn(){var n,t,e,i,r,c,a,u,o;for(PFn=O,WLt=x8(NNt,v6n,25,255,15,1),VLt=x8(ONt,WVn,25,64,15,1),t=0;t<255;t++)WLt[t]=-1;for(e=90;e>=65;e--)WLt[e]=e-65<<24>>24;for(i=122;i>=97;i--)WLt[i]=i-97+26<<24>>24;for(r=57;r>=48;r--)WLt[r]=r-48+52<<24>>24;for(WLt[43]=62,WLt[47]=63,c=0;c<=25;c++)VLt[c]=65+c&QVn;for(a=26,o=0;a<=51;++a,o++)VLt[a]=97+o&QVn;for(n=52,u=0;n<=61;++n,u++)VLt[n]=48+u&QVn;VLt[62]=43,VLt[63]=47}function CFn(n,t){var i,r,c,a,u,o,s,h,f,l,b;if(n.dc())return new Gj;for(s=0,f=0,r=n.Kc();r.Ob();)c=BB(r.Pb(),37).f,s=e.Math.max(s,c.a),f+=c.a*c.b;for(s=e.Math.max(s,e.Math.sqrt(f)*Gy(MD(mMn(BB(n.Kc().Pb(),37),(HXn(),Edt))))),l=0,b=0,o=0,i=t,u=n.Kc();u.Ob();)l+(h=(a=BB(u.Pb(),37)).f).a>s&&(l=0,b+=o+t,o=0),ZRn(a,l,b),i=e.Math.max(i,l+h.a),o=e.Math.max(o,h.b),l+=h.a+t;return new xC(i+t,b+o+t)}function IFn(n,t,e,i,r){var c,a,u,o,s,h,f;for(a=new Wb(t);a.a<a.c.c.length;){if(o=(c=BB(n0(a),17)).c,e.a._b(o))dJ(),s=Lyt;else{if(!i.a._b(o))throw Hp(new _y("Source port must be in one of the port sets."));dJ(),s=Nyt}if(h=c.d,e.a._b(h))dJ(),f=Lyt;else{if(!i.a._b(h))throw Hp(new _y("Target port must be in one of the port sets."));dJ(),f=Nyt}u=new tCn(c,s,f),VW(n.b,c,u),r.c[r.c.length]=u}}function OFn(n,t){var e,i,r,c,a,u,o;if(!WJ(n))throw Hp(new Fy(F5n));if(c=(i=WJ(n)).g,r=i.f,c<=0&&r<=0)return kUn(),PIt;switch(u=n.i,o=n.j,t.g){case 2:case 1:if(u<0)return kUn(),CIt;if(u+n.g>c)return kUn(),oIt;break;case 4:case 3:if(o<0)return kUn(),sIt;if(o+n.f>r)return kUn(),SIt}return(a=(u+n.g/2)/c)+(e=(o+n.f/2)/r)<=1&&a-e<=0?(kUn(),CIt):a+e>=1&&a-e>=0?(kUn(),oIt):e<.5?(kUn(),sIt):(kUn(),SIt)}function AFn(n,t,e,i,r){var c,a;if(c=rbn(e0(t[0],UQn),e0(i[0],UQn)),n[0]=dG(c),c=kz(c,32),e>=r){for(a=1;a<r;a++)c=rbn(c,rbn(e0(t[a],UQn),e0(i[a],UQn))),n[a]=dG(c),c=kz(c,32);for(;a<e;a++)c=rbn(c,e0(t[a],UQn)),n[a]=dG(c),c=kz(c,32)}else{for(a=1;a<e;a++)c=rbn(c,rbn(e0(t[a],UQn),e0(i[a],UQn))),n[a]=dG(c),c=kz(c,32);for(;a<r;a++)c=rbn(c,e0(i[a],UQn)),n[a]=dG(c),c=kz(c,32)}0!=Vhn(c,0)&&(n[a]=dG(c))}function $Fn(n){var t,e,i,r,c,a;if(wWn(),4!=n.e&&5!=n.e)throw Hp(new _y("Token#complementRanges(): must be RANGE: "+n.e));for(T$n(c=n),qHn(c),i=c.b.length+2,0==c.b[0]&&(i-=2),(e=c.b[c.b.length-1])==unt&&(i-=2),(r=new M0(4)).b=x8(ANt,hQn,25,i,15,1),a=0,c.b[0]>0&&(r.b[a++]=0,r.b[a++]=c.b[0]-1),t=1;t<c.b.length-2;t+=2)r.b[a++]=c.b[t]+1,r.b[a++]=c.b[t+1]-1;return e!=unt&&(r.b[a++]=e+1,r.b[a]=unt),r.a=!0,r}function LFn(n,t,e){var i,r,c,a,u,o,s,h;if(0==(i=e.gc()))return!1;if(n.ej())if(s=n.fj(),BTn(n,t,e),a=1==i?n.Zi(3,null,e.Kc().Pb(),t,s):n.Zi(5,null,e,t,s),n.bj()){for(u=i<100?null:new Fj(i),c=t+i,r=t;r<c;++r)h=n.g[r],u=n.cj(h,u),u=n.jj(h,u);u?(u.Ei(a),u.Fi()):n.$i(a)}else n.$i(a);else if(BTn(n,t,e),n.bj()){for(u=i<100?null:new Fj(i),c=t+i,r=t;r<c;++r)o=n.g[r],u=n.cj(o,u);u&&u.Fi()}return!0}function NFn(n,t,e,i){var r,c,a,u,o;for(a=new Wb(n.k);a.a<a.c.c.length;)r=BB(n0(a),129),i&&r.c!=(O6(),Tyt)||(o=r.b).g<0&&r.d>0&&(Vl(o,o.d-r.d),r.c==(O6(),Tyt)&&Xl(o,o.a-r.d),o.d<=0&&o.i>0&&r5(t,o,t.c.b,t.c));for(c=new Wb(n.f);c.a<c.c.c.length;)r=BB(n0(c),129),i&&r.c!=(O6(),Tyt)||(u=r.a).g<0&&r.d>0&&(Ql(u,u.i-r.d),r.c==(O6(),Tyt)&&Wl(u,u.b-r.d),u.i<=0&&u.d>0&&r5(e,u,e.c.b,e.c))}function xFn(n,t,e){var i,r,c,a,u,o,s,h;for(OTn(e,"Processor compute fanout",1),$U(n.b),$U(n.a),u=null,c=spn(t.b,0);!u&&c.b!=c.d.c;)qy(TD(mMn(s=BB(b3(c),86),(qqn(),dkt))))&&(u=s);for(r5(o=new YT,u,o.c.b,o.c),jUn(n,o),h=spn(t.b,0);h.b!=h.d.c;)a=SD(mMn(s=BB(b3(h),86),(qqn(),rkt))),r=null!=SJ(n.b,a)?BB(SJ(n.b,a),19).a:0,hon(s,ikt,iln(r)),i=1+(null!=SJ(n.a,a)?BB(SJ(n.a,a),19).a:0),hon(s,tkt,iln(i));HSn(e)}function DFn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;for(f=yEn(n,e),u=0;u<t;u++){for(yR(r,e),l=new Np,Px(i.b<i.d.gc()),b=BB(i.d.Xb(i.c=i.b++),407),s=f+u;s<n.b;s++)a=b,Px(i.b<i.d.gc()),WB(l,new Exn(a,b=BB(i.d.Xb(i.c=i.b++),407),e));for(h=f+u;h<n.b;h++)Px(i.b>0),i.a.Xb(i.c=--i.b),h>f+u&&fW(i);for(c=new Wb(l);c.a<c.c.c.length;)yR(i,BB(n0(c),407));if(u<t-1)for(o=f+u;o<n.b;o++)Px(i.b>0),i.a.Xb(i.c=--i.b)}}function RFn(){var n,t,e,i,r,c;if(wWn(),CNt)return CNt;for(sHn(n=new M0(4),ZUn(pnt,!0)),WGn(n,ZUn("M",!0)),WGn(n,ZUn("C",!0)),c=new M0(4),i=0;i<11;i++)Yxn(c,i,i);return sHn(t=new M0(4),ZUn("M",!0)),Yxn(t,4448,4607),Yxn(t,65438,65439),tqn(r=new r$(2),n),tqn(r,sNt),(e=new r$(2)).$l(gG(c,ZUn("L",!0))),e.$l(t),e=new h4(3,e),e=new UU(r,e),CNt=e}function KFn(n){var t,e;if(!Ycn(t=SD(ZAn(n,(sWn(),eSt))),n)&&!P8(n,mPt)&&(0!=(!n.a&&(n.a=new eU(UOt,n,10,11)),n.a).i||qy(TD(ZAn(n,SSt))))){if(null!=t&&0!=RMn(t).length)throw gzn(n,e=oO(oO(new lN("Layout algorithm '"),t),"' not found for ")),Hp(new rk(e.a));if(!Ycn(w1n,n))throw gzn(n,e=oO(oO(new lN("Unable to load default layout algorithm "),w1n)," for unconfigured node ")),Hp(new rk(e.a))}}function _Fn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w;if(i=n.i,t=n.n,0==n.b)for(w=i.c+t.b,b=i.b-t.b-t.c,s=0,f=(u=n.a).length;s<f;++s)UG(c=u[s],w,b);else r=Wvn(n,!1),UG(n.a[0],i.c+t.b,r[0]),UG(n.a[2],i.c+i.b-t.c-r[2],r[2]),l=i.b-t.b-t.c,r[0]>0&&(l-=r[0]+n.c,r[0]+=n.c),r[2]>0&&(l-=r[2]+n.c),r[1]=e.Math.max(r[1],l),UG(n.a[1],i.c+t.b+r[0]-(r[1]-l)/2,r[1]);for(o=0,h=(a=n.a).length;o<h;++o)cL(c=a[o],326)&&BB(c,326).Te()}function FFn(n){var t,e,i,r,c,a,u,o,s,h,f;for((f=new aa).d=0,a=new Wb(n.b);a.a<a.c.c.length;)c=BB(n0(a),29),f.d+=c.a.c.length;for(i=0,r=0,f.a=x8(ANt,hQn,25,n.b.c.length,15,1),s=0,h=0,f.e=x8(ANt,hQn,25,f.d,15,1),e=new Wb(n.b);e.a<e.c.c.length;)for((t=BB(n0(e),29)).p=i++,f.a[t.p]=r++,h=0,o=new Wb(t.a);o.a<o.c.c.length;)(u=BB(n0(o),10)).p=s++,f.e[u.p]=h++;return f.c=new fg(f),f.b=sx(f.d),H_n(f,n),f.f=sx(f.d),q_n(f,n),f}function BFn(n,t){var i,r,c;for(c=BB(xq(n.n,n.n.c.length-1),211).d,n.p=e.Math.min(n.p,t.g),n.r=e.Math.max(n.r,c),n.g=e.Math.max(n.g,t.g+(1==n.b.c.length?0:n.i)),n.o=e.Math.min(n.o,t.f),n.e+=t.f+(1==n.b.c.length?0:n.i),n.f=e.Math.max(n.f,t.f),r=n.n.c.length>0?(n.n.c.length-1)*n.i:0,i=new Wb(n.n);i.a<i.c.c.length;)r+=BB(n0(i),211).a;n.d=r,n.a=n.e/n.b.c.length-n.i*((n.b.c.length-1)/n.b.c.length),yyn(n.j)}function HFn(n,t){var e,i,r,c,a,u,o,s,h;if(null==(s=TD(mMn(t,(fRn(),iat))))||(kW(s),s)){for(h=x8($Nt,ZYn,25,t.e.c.length,16,1),a=kOn(t),r=new YT,o=new Wb(t.e);o.a<o.c.c.length;)(e=Y$n(n,BB(n0(o),144),null,null,h,a))&&(qan(e,t),r5(r,e,r.c.b,r.c));if(r.b>1)for(i=spn(r,0);i.b!=i.d.c;)for(c=0,u=new Wb((e=BB(b3(i),231)).e);u.a<u.c.c.length;)BB(n0(u),144).b=c++;return r}return u6(Pun(Gk(Kct,1),tZn,231,0,[t]))}function qFn(n){var t,e,i,r,c;if(!n.g){if(c=new To,null==(t=P$t).a.zc(n,t)){for(e=new AL(kY(n));e.e!=e.i.gc();)pX(c,qFn(BB(kpn(e),26)));t.a.Bc(n),t.a.gc()}for(i=c.i,!n.s&&(n.s=new eU(FAt,n,21,17)),r=new AL(n.s);r.e!=r.i.gc();++i)ub(BB(kpn(r),449),i);pX(c,(!n.s&&(n.s=new eU(FAt,n,21,17)),n.s)),chn(c),n.g=new don(n,c),n.i=BB(c.g,247),null==n.i&&(n.i=I$t),n.p=null,P5(n).b&=-5}return n.g}function GFn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w;if(r=n.i,i=n.n,0==n.b)t=Xvn(n,!1),XG(n.a[0],r.d+i.d,t[0]),XG(n.a[2],r.d+r.a-i.a-t[2],t[2]),l=r.a-i.d-i.a,t[0]>0&&(t[0]+=n.c,l-=t[0]),t[2]>0&&(l-=t[2]+n.c),t[1]=e.Math.max(t[1],l),XG(n.a[1],r.d+i.d+t[0]-(t[1]-l)/2,t[1]);else for(w=r.d+i.d,b=r.a-i.d-i.a,s=0,f=(u=n.a).length;s<f;++s)XG(c=u[s],w,b);for(o=0,h=(a=n.a).length;o<h;++o)cL(c=a[o],326)&&BB(c,326).Ue()}function zFn(n){var t,e,i,r,c,a,u,o,s;for(s=x8(ANt,hQn,25,n.b.c.length+1,15,1),o=new Rv,i=0,c=new Wb(n.b);c.a<c.c.c.length;){for(r=BB(n0(c),29),s[i++]=o.a.gc(),u=new Wb(r.a);u.a<u.c.c.length;)for(e=new oz(ZL(lbn(BB(n0(u),10)).a.Kc(),new h));dAn(e);)t=BB(U5(e),17),o.a.zc(t,o);for(a=new Wb(r.a);a.a<a.c.c.length;)for(e=new oz(ZL(fbn(BB(n0(a),10)).a.Kc(),new h));dAn(e);)t=BB(U5(e),17),o.a.Bc(t)}return s}function UFn(n,t,e,i){var r,c,a,u,o;if(o=axn(n.e.Tg(),t),r=BB(n.g,119),ZM(),BB(t,66).Oj()){for(a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak())&&Nfn(c,e))return!0}else if(null!=e){for(u=0;u<n.i;++u)if(c=r[u],o.rl(c.ak())&&Nfn(e,c.dd()))return!0;if(i)for(a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak())&&GI(e)===GI(hD(n,BB(c.dd(),56))))return!0}else for(a=0;a<n.i;++a)if(c=r[a],o.rl(c.ak())&&null==c.dd())return!1;return!1}function XFn(n,t,e,i){var r,c,a,u,o,s;if(s=axn(n.e.Tg(),t),a=BB(n.g,119),$xn(n.e,t)){if(t.hi()&&(c=pBn(n,t,i,cL(t,99)&&0!=(BB(t,18).Bb&BQn)))>=0&&c!=e)throw Hp(new _y(a8n));for(r=0,o=0;o<n.i;++o)if(u=a[o],s.rl(u.ak())){if(r==e)return BB(ovn(n,o,(ZM(),BB(t,66).Oj()?BB(i,72):Z3(t,i))),72);++r}throw Hp(new Ay(e9n+e+o8n+r))}for(o=0;o<n.i;++o)if(u=a[o],s.rl(u.ak()))return ZM(),BB(t,66).Oj()?u:u.dd();return null}function WFn(n,t,i,r){var c,a,u,o;for(o=i,u=new Wb(t.a);u.a<u.c.c.length;){if(a=BB(n0(u),221),c=BB(a.b,65),Ibn(n.b.c,c.b.c+c.b.b)<=0&&Ibn(c.b.c,n.b.c+n.b.b)<=0&&Ibn(n.b.d,c.b.d+c.b.a)<=0&&Ibn(c.b.d,n.b.d+n.b.a)<=0){if(0==Ibn(c.b.c,n.b.c+n.b.b)&&r.a<0||0==Ibn(c.b.c+c.b.b,n.b.c)&&r.a>0||0==Ibn(c.b.d,n.b.d+n.b.a)&&r.b<0||0==Ibn(c.b.d+c.b.a,n.b.d)&&r.b>0){o=0;break}}else o=e.Math.min(o,HCn(n,c,r));o=e.Math.min(o,WFn(n,a,o,r))}return o}function VFn(n,t){var e,i,r,c,a,u;if(n.b<2)throw Hp(new _y("The vector chain must contain at least a source and a target point."));for(Px(0!=n.b),CA(t,(i=BB(n.a.a.c,8)).a,i.b),u=new cx((!t.a&&(t.a=new $L(xOt,t,5)),t.a)),c=spn(n,1);c.a<n.b-1;)a=BB(b3(c),8),u.e!=u.i.gc()?e=BB(kpn(u),469):(tE(),odn(u,e=new ro)),TA(e,a.a,a.b);for(;u.e!=u.i.gc();)kpn(u),Qjn(u);Px(0!=n.b),PA(t,(r=BB(n.c.b.c,8)).a,r.b)}function QFn(n,t){var e,i,r,c,a,u,o,s;for(e=0,i=new Wb((l1(0,n.c.length),BB(n.c[0],101)).g.b.j);i.a<i.c.c.length;)BB(n0(i),11).p=e++;for(t==(kUn(),sIt)?m$(n,new nc):m$(n,new tc),a=0,s=n.c.length-1;a<s;)l1(a,n.c.length),c=BB(n.c[a],101),l1(s,n.c.length),o=BB(n.c[s],101),r=t==sIt?c.c:c.a,u=t==sIt?o.a:o.c,bU(c,t,(Oun(),yst),r),bU(o,t,mst,u),++a,--s;a==s&&bU((l1(a,n.c.length),BB(n.c[a],101)),t,(Oun(),vst),null)}function YFn(n,t,e){var i,r,c,a,u,o,s,h,f,l;return h=n.a.i+n.a.g/2,f=n.a.i+n.a.g/2,a=new xC(t.i+t.g/2,t.j+t.f/2),(o=BB(ZAn(t,(sWn(),gPt)),8)).a=o.a+h,o.b=o.b+f,r=(a.b-o.b)/(a.a-o.a),i=a.b-r*a.a,u=new xC(e.i+e.g/2,e.j+e.f/2),(s=BB(ZAn(e,gPt),8)).a=s.a+h,s.b=s.b+f,c=(u.b-s.b)/(u.a-s.a),l=(i-(u.b-c*u.a))/(c-r),!(o.a<l&&a.a<l||l<o.a&&l<a.a||s.a<l&&u.a<l||l<s.a&&l<u.a)}function JFn(n,t){var e,i,r,c,a,u;if(!(a=BB(RX(n.c,t),183)))throw Hp(new ek("Edge did not exist in input."));return i=Qdn(a),!WE((!t.a&&(t.a=new eU(FOt,t,6,6)),t.a))&&(e=new MB(n,i,u=new Cl),wO((!t.a&&(t.a=new eU(FOt,t,6,6)),t.a),e),rtn(a,x6n,u)),P8(t,(sWn(),OSt))&&!(!(r=BB(ZAn(t,OSt),74))||pW(r))&&(e5(r,new Qg(c=new Cl)),rtn(a,"junctionPoints",c)),AH(a,"container",XJ(t).k),null}function ZFn(n,t,e){var i,r,c,a,u,o;this.a=n,this.b=t,this.c=e,this.e=u6(Pun(Gk(uit,1),HWn,168,0,[new xS(n,t),new xS(t,e),new xS(e,n)])),this.f=u6(Pun(Gk(PMt,1),sVn,8,0,[n,t,e])),this.d=(i=XR(B$(this.b),this.a),r=XR(B$(this.c),this.a),c=XR(B$(this.c),this.b),a=i.a*(this.a.a+this.b.a)+i.b*(this.a.b+this.b.b),u=r.a*(this.a.a+this.c.a)+r.b*(this.a.b+this.c.b),o=2*(i.a*c.b-i.b*c.a),new xC((r.b*a-i.b*u)/o,(i.a*u-r.a*a)/o))}function nBn(n,t,e,i){var r,c,a,u,o,s,h,f,l;if(f=new GX(n.p),rtn(t,t8n,f),e&&!(n.f?rY(n.f):null).a.dc())for(rtn(t,"logs",s=new Cl),u=0,l=new qb((n.f?rY(n.f):null).b.Kc());l.b.Ob();)h=new GX(SD(l.b.Pb())),dnn(s,u),r4(s,u,h),++u;if(i&&rtn(t,"executionTime",new Sl(n.q)),!rY(n.a).a.dc())for(a=new Cl,rtn(t,A6n,a),u=0,c=new qb(rY(n.a).b.Kc());c.b.Ob();)r=BB(c.b.Pb(),1949),o=new py,dnn(a,u),r4(a,u,o),nBn(r,o,e,i),++u}function tBn(n,t){var e,i,r,c,a,u;for(c=n.c,a=n.d,SZ(n,null),MZ(n,null),t&&qy(TD(mMn(a,(hWn(),tlt))))?SZ(n,R_n(a.i,(ain(),qvt),(kUn(),oIt))):SZ(n,a),t&&qy(TD(mMn(c,(hWn(),klt))))?MZ(n,R_n(c.i,(ain(),Hvt),(kUn(),CIt))):MZ(n,c),i=new Wb(n.b);i.a<i.c.c.length;)e=BB(n0(i),70),(r=BB(mMn(e,(HXn(),Ydt)),272))==(Rtn(),XPt)?hon(e,Ydt,UPt):r==UPt&&hon(e,Ydt,XPt);u=qy(TD(mMn(n,(hWn(),Clt)))),hon(n,Clt,(hN(),!u)),n.a=Jon(n.a)}function eBn(n,t,i){var r,c,a,u,o;for(r=0,a=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));a.e!=a.i.gc();)u="",0==(!(c=BB(kpn(a),33)).n&&(c.n=new eU(zOt,c,1,7)),c.n).i||(u=BB(Wtn((!c.n&&(c.n=new eU(zOt,c,1,7)),c.n),0),137).a),qan(o=new qX(u),c),hon(o,(Mrn(),sat),c),o.b=r++,o.d.a=c.i+c.g/2,o.d.b=c.j+c.f/2,o.e.a=e.Math.max(c.g,1),o.e.b=e.Math.max(c.f,1),WB(t.e,o),jCn(i.f,c,o),BB(ZAn(c,(fRn(),Yct)),98),QEn()}function iBn(n,t){var i,r,c,a,u,o,s,h,f,l,b;i=AN(new qv,n.f),o=n.i[t.c.i.p],l=n.i[t.d.i.p],u=t.c,f=t.d,a=u.a.b,h=f.a.b,o.b||(a+=u.n.b),l.b||(h+=f.n.b),s=CJ(e.Math.max(0,a-h)),c=CJ(e.Math.max(0,h-a)),b=e.Math.max(1,BB(mMn(t,(HXn(),bpt)),19).a)*X3(t.c.i.k,t.d.i.k),r=new nC(UNn(aM(cM(rM(uM(new Hv,b),c),i),BB(RX(n.k,t.c),121))),UNn(aM(cM(rM(uM(new Hv,b),s),i),BB(RX(n.k,t.d),121)))),n.c[t.p]=r}function rBn(n,t,e,i){var r,c,a,u,o,s;for(a=new uGn(n,t,e),o=new M2(i,0),r=!1;o.b<o.d.gc();)Px(o.b<o.d.gc()),(u=BB(o.d.Xb(o.c=o.b++),233))==t||u==e?fW(o):!r&&Gy(lL(u.g,u.d[0]).a)>Gy(lL(a.g,a.d[0]).a)?(Px(o.b>0),o.a.Xb(o.c=--o.b),yR(o,a),r=!0):u.e&&u.e.gc()>0&&(c=(!u.e&&(u.e=new Np),u.e).Mc(t),s=(!u.e&&(u.e=new Np),u.e).Mc(e),(c||s)&&((!u.e&&(u.e=new Np),u.e).Fc(a),++a.c));r||(i.c[i.c.length]=a)}function cBn(n){var t,e,i;if(vA(BB(mMn(n,(HXn(),ept)),98)))for(e=new Wb(n.j);e.a<e.c.c.length;)(t=BB(n0(e),11)).j==(kUn(),PIt)&&((i=BB(mMn(t,(hWn(),Elt)),10))?qCn(t,BB(mMn(i,Qft),61)):t.e.c.length-t.g.c.length<0?qCn(t,oIt):qCn(t,CIt));else{for(e=new Wb(n.j);e.a<e.c.c.length;)t=BB(n0(e),11),(i=BB(mMn(t,(hWn(),Elt)),10))?qCn(t,BB(mMn(i,Qft),61)):t.e.c.length-t.g.c.length<0?qCn(t,(kUn(),oIt)):qCn(t,(kUn(),CIt));hon(n,ept,(QEn(),VCt))}}function aBn(n){var t,e;switch(n){case 91:case 93:case 45:case 94:case 44:case 92:e="\\"+String.fromCharCode(n&QVn);break;case 12:e="\\f";break;case 10:e="\\n";break;case 13:e="\\r";break;case 9:e="\\t";break;case 27:e="\\e";break;default:e=n<32?"\\x"+fx(t="0"+(n>>>0).toString(16),t.length-2,t.length):n>=BQn?"\\v"+fx(t="0"+(n>>>0).toString(16),t.length-6,t.length):""+String.fromCharCode(n&QVn)}return e}function uBn(n,t){var e,i,r,c,a,u,o,s,h,f;if(a=n.e,0==(o=t.e))return n;if(0==a)return 0==t.e?t:new lU(-t.e,t.d,t.a);if((c=n.d)+(u=t.d)==2)return e=e0(n.a[0],UQn),i=e0(t.a[0],UQn),a<0&&(e=j7(e)),o<0&&(i=j7(i)),npn(ibn(e,i));if(-1==(r=c!=u?c>u?1:-1:Msn(n.a,t.a,c)))f=-o,h=a==o?d6(t.a,u,n.a,c):N8(t.a,u,n.a,c);else if(f=a,a==o){if(0==r)return ODn(),eet;h=d6(n.a,c,t.a,u)}else h=N8(n.a,c,t.a,u);return X0(s=new lU(f,h.length,h)),s}function oBn(n){var t,e,i,r,c,a;for(this.e=new Np,this.a=new Np,e=n.b-1;e<3;e++)Kx(n,0,BB(Dpn(n,0),8));if(n.b<4)throw Hp(new _y("At (least dimension + 1) control points are necessary!"));for(this.b=3,this.d=!0,this.c=!1,I$n(this,n.b+this.b-1),a=new Np,c=new Wb(this.e),t=0;t<this.b-1;t++)WB(a,MD(n0(c)));for(r=spn(n,0);r.b!=r.d.c;)i=BB(b3(r),8),WB(a,MD(n0(c))),WB(this.a,new wJ(i,a)),l1(0,a.c.length),a.c.splice(0,1)}function sBn(n,t){var e,i,r,c,a,u,o;for(r=new Wb(n.b);r.a<r.c.c.length;)for(a=new Wb(BB(n0(r),29).a);a.a<a.c.c.length;)for((c=BB(n0(a),10)).k==(uSn(),Sut)&&(u=BB(U5(new oz(ZL(fbn(c).a.Kc(),new h))),17),o=BB(U5(new oz(ZL(lbn(c).a.Kc(),new h))),17),hFn(c,qy(TD(mMn(u,(hWn(),Clt))))&&qy(TD(mMn(o,Clt)))?Xun(t):t)),i=new oz(ZL(lbn(c).a.Kc(),new h));dAn(i);)vun(e=BB(U5(i),17),qy(TD(mMn(e,(hWn(),Clt))))?Xun(t):t)}function hBn(n,t,e,i,r){var c,a;if(e.f>=t.o&&e.f<=t.f||.5*t.a<=e.f&&1.5*t.a>=e.f){if((c=BB(xq(t.n,t.n.c.length-1),211)).e+c.d+e.g+r<=i&&(BB(xq(t.n,t.n.c.length-1),211).f-n.f+e.f<=n.b||1==n.a.c.length))return ybn(t,e),!0;if(t.s+e.g<=i&&(t.t+t.d+e.f+r<=n.b||1==n.a.c.length))return WB(t.b,e),a=BB(xq(t.n,t.n.c.length-1),211),WB(t.n,new RJ(t.s,a.f+a.a+t.i,t.i)),smn(BB(xq(t.n,t.n.c.length-1),211),e),BFn(t,e),!0}return!1}function fBn(n,t,e){var i,r,c,a;return n.ej()?(r=null,c=n.fj(),i=n.Zi(1,a=onn(n,t,e),e,t,c),n.bj()&&!(n.ni()&&null!=a?Nfn(a,e):GI(a)===GI(e))?(null!=a&&(r=n.dj(a,r)),r=n.cj(e,r),n.ij()&&(r=n.lj(a,e,r)),r?(r.Ei(i),r.Fi()):n.$i(i)):(n.ij()&&(r=n.lj(a,e,r)),r?(r.Ei(i),r.Fi()):n.$i(i)),a):(a=onn(n,t,e),n.bj()&&!(n.ni()&&null!=a?Nfn(a,e):GI(a)===GI(e))&&(r=null,null!=a&&(r=n.dj(a,null)),(r=n.cj(e,r))&&r.Fi()),a)}function lBn(n,t){var i,r,c,a,u,o,s;t%=24,n.q.getHours()!=t&&((i=new e.Date(n.q.getTime())).setDate(i.getDate()+1),(u=n.q.getTimezoneOffset()-i.getTimezoneOffset())>0&&(o=u/60|0,s=u%60,r=n.q.getDate(),n.q.getHours()+o>=24&&++r,c=new e.Date(n.q.getFullYear(),n.q.getMonth(),r,t+o,n.q.getMinutes()+s,n.q.getSeconds(),n.q.getMilliseconds()),n.q.setTime(c.getTime()))),a=n.q.getTime(),n.q.setTime(a+36e5),n.q.getHours()!=t&&n.q.setTime(a)}function bBn(n,t){var e,i,r,c;if(OTn(t,"Path-Like Graph Wrapping",1),0!=n.b.c.length)if(null==(r=new MAn(n)).i&&(r.i=Wrn(r,new kc)),e=Gy(r.i)*r.f/(null==r.i&&(r.i=Wrn(r,new kc)),Gy(r.i)),r.b>e)HSn(t);else{switch(BB(mMn(n,(HXn(),Bpt)),337).g){case 2:c=new Tc;break;case 0:c=new wc;break;default:c=new Mc}if(i=c.Vf(n,r),!c.Wf())switch(BB(mMn(n,Xpt),338).g){case 2:i=XCn(r,i);break;case 1:i=KTn(r,i)}iqn(n,r,i),HSn(t)}else HSn(t)}function wBn(n,t){var e,i,r,c;if(f1(n.d,n.e),n.c.a.$b(),0!=Gy(MD(mMn(t.j,(HXn(),Idt))))||0!=Gy(MD(mMn(t.j,Idt))))for(e=ZJn,GI(mMn(t.j,Ldt))!==GI((mon(),Nvt))&&hon(t.j,(hWn(),Jft),(hN(),!0)),c=BB(mMn(t.j,xpt),19).a,r=0;r<c&&!((i=gFn(n,t))<e&&(e=i,Lrn(n),0==e));r++);else for(e=DWn,GI(mMn(t.j,Ldt))!==GI((mon(),Nvt))&&hon(t.j,(hWn(),Jft),(hN(),!0)),c=BB(mMn(t.j,xpt),19).a,r=0;r<c&&!((i=pFn(n,t))<e&&(e=i,Lrn(n),0==e));r++);}function dBn(n,t){var e,i,r,c,a,u;for(r=new Np,c=0,e=0,a=0;c<t.c.length-1&&e<n.gc();){for(i=BB(n.Xb(e),19).a+a;(l1(c+1,t.c.length),BB(t.c[c+1],19)).a<i;)++c;for(u=0,i-(l1(c,t.c.length),BB(t.c[c],19)).a>(l1(c+1,t.c.length),BB(t.c[c+1],19)).a-i&&++u,WB(r,(l1(c+u,t.c.length),BB(t.c[c+u],19))),a+=(l1(c+u,t.c.length),BB(t.c[c+u],19)).a-i,++e;e<n.gc()&&BB(n.Xb(e),19).a+a<=(l1(c+u,t.c.length),BB(t.c[c+u],19)).a;)++e;c+=1+u}return r}function gBn(n){var t,e,i,r,c;if(!n.d){if(c=new Po,null==(t=P$t).a.zc(n,t)){for(e=new AL(kY(n));e.e!=e.i.gc();)pX(c,gBn(BB(kpn(e),26)));t.a.Bc(n),t.a.gc()}for(r=c.i,!n.q&&(n.q=new eU(QAt,n,11,10)),i=new AL(n.q);i.e!=i.i.gc();++r)BB(kpn(i),399);pX(c,(!n.q&&(n.q=new eU(QAt,n,11,10)),n.q)),chn(c),n.d=new NO((BB(Wtn(QQ((QX(),t$t).o),9),18),c.i),c.g),n.e=BB(c.g,673),null==n.e&&(n.e=C$t),P5(n).b&=-17}return n.d}function pBn(n,t,e,i){var r,c,a,u,o,s;if(s=axn(n.e.Tg(),t),o=0,r=BB(n.g,119),ZM(),BB(t,66).Oj()){for(a=0;a<n.i;++a)if(c=r[a],s.rl(c.ak())){if(Nfn(c,e))return o;++o}}else if(null!=e){for(u=0;u<n.i;++u)if(c=r[u],s.rl(c.ak())){if(Nfn(e,c.dd()))return o;++o}if(i)for(o=0,a=0;a<n.i;++a)if(c=r[a],s.rl(c.ak())){if(GI(e)===GI(hD(n,BB(c.dd(),56))))return o;++o}}else for(a=0;a<n.i;++a)if(c=r[a],s.rl(c.ak())){if(null==c.dd())return o;++o}return-1}function vBn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;for(SQ(),m$(n,new zu),a=zB(n),b=new Np,l=new Np,u=null,o=0;0!=a.b;)c=BB(0==a.b?null:(Px(0!=a.b),Atn(a,a.a.a)),157),!u||iG(u)*eG(u)/2<iG(c)*eG(c)?(u=c,b.c[b.c.length]=c):(o+=iG(c)*eG(c),l.c[l.c.length]=c,l.c.length>1&&(o>iG(u)*eG(u)/2||0==a.b)&&(f=new Gtn(l),h=iG(u)/eG(u),s=yXn(f,t,new bm,e,i,r,h),UR(kO(f.e),s),u=f,b.c[b.c.length]=f,o=0,l.c=x8(Ant,HWn,1,0,5,1)));return gun(b,l),b}function mBn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;if(e.mh(t)&&(h=(b=t)?BB(i,49).xh(b):null))if(d=e.bh(t,n.a),(w=t.t)>1||-1==w)if(f=BB(d,69),l=BB(h,69),f.dc())l.$b();else for(a=!!Cvn(t),c=0,u=n.a?f.Kc():f.Zh();u.Ob();)s=BB(u.Pb(),56),(r=BB(lnn(n,s),56))?(a?-1==(o=l.Xc(r))?l.Xh(c,r):c!=o&&l.ji(c,r):l.Xh(c,r),++c):n.b&&!a&&(l.Xh(c,s),++c);else null==d?h.Wb(null):null==(r=lnn(n,d))?n.b&&!Cvn(t)&&h.Wb(d):h.Wb(r)}function yBn(n,t){var i,r,c,a,u,o,s,f;for(i=new Le,c=new oz(ZL(fbn(t).a.Kc(),new h));dAn(c);)if(!b5(r=BB(U5(c),17))&&eTn(o=r.c.i,Xut)){if(-1==(f=VDn(n,o,Xut,Uut)))continue;i.b=e.Math.max(i.b,f),!i.a&&(i.a=new Np),WB(i.a,o)}for(u=new oz(ZL(lbn(t).a.Kc(),new h));dAn(u);)if(!b5(a=BB(U5(u),17))&&eTn(s=a.d.i,Uut)){if(-1==(f=VDn(n,s,Uut,Xut)))continue;i.d=e.Math.max(i.d,f),!i.c&&(i.c=new Np),WB(i.c,s)}return i}function kBn(n){var t,e,i,r;if($On(),t=CJ(n),n<uet.length)return uet[t];if(n<=50)return uOn((ODn(),net),t);if(n<=VVn)return G5(uOn(aet[1],t),t);if(n>1e6)throw Hp(new Oy("power of ten too big"));if(n<=DWn)return G5(uOn(aet[1],t),t);for(r=i=uOn(aet[1],DWn),e=fan(n-DWn),t=CJ(n%DWn);Vhn(e,DWn)>0;)r=Nnn(r,i),e=ibn(e,DWn);for(r=G5(r=Nnn(r,uOn(aet[1],t)),DWn),e=fan(n-DWn);Vhn(e,DWn)>0;)r=G5(r,DWn),e=ibn(e,DWn);return r=G5(r,t)}function jBn(n,t){var e,i,r,c,a,u,o,s;for(OTn(t,"Hierarchical port dummy size processing",1),u=new Np,s=new Np,e=2*Gy(MD(mMn(n,(HXn(),kpt)))),r=new Wb(n.b);r.a<r.c.c.length;){for(i=BB(n0(r),29),u.c=x8(Ant,HWn,1,0,5,1),s.c=x8(Ant,HWn,1,0,5,1),a=new Wb(i.a);a.a<a.c.c.length;)(c=BB(n0(a),10)).k==(uSn(),Mut)&&((o=BB(mMn(c,(hWn(),Qft)),61))==(kUn(),sIt)?u.c[u.c.length]=c:o==SIt&&(s.c[s.c.length]=c));HOn(u,!0,e),HOn(s,!1,e)}HSn(t)}function EBn(n,t){var e,i,r,c,a;OTn(t,"Layer constraint postprocessing",1),0!=(a=n.b).c.length&&(l1(0,a.c.length),_Kn(n,BB(a.c[0],29),BB(xq(a,a.c.length-1),29),e=new HX(n),r=new HX(n)),0==e.a.c.length||(LZ(0,a.c.length),MS(a.c,0,e)),0==r.a.c.length||(a.c[a.c.length]=r)),Lx(n,(hWn(),nlt))&&(yDn(n,i=new HX(n),c=new HX(n)),0==i.a.c.length||(LZ(0,a.c.length),MS(a.c,0,i)),0==c.a.c.length||(a.c[a.c.length]=c)),HSn(t)}function TBn(n){var t,e,i,r,c,a,u,o;for(a=new Wb(n.a);a.a<a.c.c.length;)if((c=BB(n0(a),10)).k==(uSn(),Mut)&&((r=BB(mMn(c,(hWn(),Qft)),61))==(kUn(),oIt)||r==CIt))for(i=new oz(ZL(hbn(c).a.Kc(),new h));dAn(i);)0!=(t=(e=BB(U5(i),17)).a).b&&((u=e.c).i==c&&(Px(0!=t.b),BB(t.a.a.c,8).b=Aon(Pun(Gk(PMt,1),sVn,8,0,[u.i.n,u.n,u.a])).b),(o=e.d).i==c&&(Px(0!=t.b),BB(t.c.b.c,8).b=Aon(Pun(Gk(PMt,1),sVn,8,0,[o.i.n,o.n,o.a])).b))}function MBn(n,t){var e,i,r,c,a,u,o;for(OTn(t,"Sort By Input Model "+mMn(n,(HXn(),Ldt)),1),r=0,i=new Wb(n.b);i.a<i.c.c.length;){for(e=BB(n0(i),29),o=0==r?0:r-1,u=BB(xq(n.b,o),29),a=new Wb(e.a);a.a<a.c.c.length;)GI(mMn(c=BB(n0(a),10),ept))!==GI((QEn(),UCt))&&GI(mMn(c,ept))!==GI(XCt)&&(SQ(),m$(c.j,new O7(u,okn(c))),OH(t,"Node "+c+" ports: "+c.j));SQ(),m$(e.a,new Grn(u,BB(mMn(n,Ldt),339),BB(mMn(n,Adt),378))),OH(t,"Layer "+r+": "+e),++r}HSn(t)}function SBn(n,t){var e,i,r;if(r=kFn(t),JT(new Rq(null,(!t.c&&(t.c=new eU(XOt,t,9,9)),new w1(t.c,16))),new Uw(r)),uzn(t,i=BB(mMn(r,(hWn(),Zft)),21)),i.Hc((bDn(),lft)))for(e=new AL((!t.c&&(t.c=new eU(XOt,t,9,9)),t.c));e.e!=e.i.gc();)Qzn(n,t,r,BB(kpn(e),118));return 0!=BB(ZAn(t,(HXn(),Fgt)),174).gc()&&mDn(t,r),qy(TD(mMn(r,Xgt)))&&i.Fc(pft),Lx(r,gpt)&&My(new uwn(Gy(MD(mMn(r,gpt)))),r),GI(ZAn(t,sgt))===GI((ufn(),pCt))?cWn(n,t,r):eXn(n,t,r),r}function PBn(n,t,i,r){var c,a,u;if(this.j=new Np,this.k=new Np,this.b=new Np,this.c=new Np,this.e=new bA,this.i=new km,this.f=new Dp,this.d=new Np,this.g=new Np,WB(this.b,n),WB(this.b,t),this.e.c=e.Math.min(n.a,t.a),this.e.d=e.Math.min(n.b,t.b),this.e.b=e.Math.abs(n.a-t.a),this.e.a=e.Math.abs(n.b-t.b),c=BB(mMn(r,(HXn(),vgt)),74))for(u=spn(c,0);u.b!=u.d.c;)aen((a=BB(b3(u),8)).a,n.a)&&DH(this.i,a);i&&WB(this.j,i),WB(this.k,r)}function CBn(n,t,e){var i,r,c,a,u,o,s,h,f,l;for(h=new Xz(new xw(e)),vU(u=x8($Nt,ZYn,25,n.f.e.c.length,16,1),u.length),e[t.b]=0,s=new Wb(n.f.e);s.a<s.c.c.length;)(o=BB(n0(s),144)).b!=t.b&&(e[o.b]=DWn),F8(eMn(h,o));for(;0!=h.b.c.length;)for(u[(f=BB(mnn(h),144)).b]=!0,c=vN(new mT(n.b,f),0);c.c;)u[(l=$mn(r=BB(EZ(c),282),f)).b]||(a=Lx(r,(rkn(),pat))?Gy(MD(mMn(r,pat))):n.c,(i=e[f.b]+a)<e[l.b]&&(e[l.b]=i,srn(h,l),F8(eMn(h,l))))}function IBn(n,t,e){var i,r,c,a,u,o,s,h,f;for(r=!0,a=new Wb(n.b);a.a<a.c.c.length;){for(c=BB(n0(a),29),s=KQn,h=null,o=new Wb(c.a);o.a<o.c.c.length;){if(u=BB(n0(o),10),f=Gy(t.p[u.p])+Gy(t.d[u.p])-u.d.d,i=Gy(t.p[u.p])+Gy(t.d[u.p])+u.o.b+u.d.a,!(f>s&&i>s)){r=!1,e.n&&OH(e,"bk node placement breaks on "+u+" which should have been after "+h);break}h=u,s=Gy(t.p[u.p])+Gy(t.d[u.p])+u.o.b+u.d.a}if(!r)break}return e.n&&OH(e,t+" is feasible: "+r),r}function OBn(n,t,e,i){var r,c,a,u,o,s,h;for(u=-1,h=new Wb(n);h.a<h.c.c.length;)(s=BB(n0(h),112)).g=u--,a=r=dG(E2(NV(AV(new Rq(null,new w1(s.f,16)),new sa),new ha)).d),o=c=dG(E2(NV(AV(new Rq(null,new w1(s.k,16)),new fa),new la)).d),i||(a=dG(E2(NV(new Rq(null,new w1(s.f,16)),new ba)).d),o=dG(E2(NV(new Rq(null,new w1(s.k,16)),new wa)).d)),s.d=a,s.a=r,s.i=o,s.b=c,0==o?r5(e,s,e.c.b,e.c):0==a&&r5(t,s,t.c.b,t.c)}function ABn(n,t,e,i){var r,c,a,u,o,s,h;if(e.d.i!=t.i){for(Bl(r=new $vn(n),(uSn(),Put)),hon(r,(hWn(),dlt),e),hon(r,(HXn(),ept),(QEn(),XCt)),i.c[i.c.length]=r,CZ(a=new CSn,r),qCn(a,(kUn(),CIt)),CZ(u=new CSn,r),qCn(u,oIt),h=e.d,MZ(e,a),qan(c=new wY,e),hon(c,vgt,null),SZ(c,u),MZ(c,h),s=new M2(e.b,0);s.b<s.d.gc();)Px(s.b<s.d.gc()),GI(mMn(o=BB(s.d.Xb(s.c=s.b++),70),Ydt))===GI((Rtn(),UPt))&&(hon(o,Uft,e),fW(s),WB(c.b,o));yAn(r,a,u)}}function $Bn(n,t,e,i){var r,c,a,u,o,s;if(e.c.i!=t.i)for(Bl(r=new $vn(n),(uSn(),Put)),hon(r,(hWn(),dlt),e),hon(r,(HXn(),ept),(QEn(),XCt)),i.c[i.c.length]=r,CZ(a=new CSn,r),qCn(a,(kUn(),CIt)),CZ(u=new CSn,r),qCn(u,oIt),MZ(e,a),qan(c=new wY,e),hon(c,vgt,null),SZ(c,u),MZ(c,t),yAn(r,a,u),s=new M2(e.b,0);s.b<s.d.gc();)Px(s.b<s.d.gc()),o=BB(s.d.Xb(s.c=s.b++),70),BB(mMn(o,Ydt),272)==(Rtn(),UPt)&&(Lx(o,Uft)||hon(o,Uft,e),fW(s),WB(c.b,o))}function LBn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(l=new Np,p=S4(r),g=t*n.a,w=0,a=new Rv,u=new Rv,o=new Np,v=0,m=0,b=0,d=0,h=0,f=0;0!=p.a.gc();)(s=tbn(p,c,u))&&(p.a.Bc(s),o.c[o.c.length]=s,a.a.zc(s,a),w=n.f[s.p],v+=n.e[s.p]-w*n.b,m+=n.c[s.p]*n.b,f+=w*n.b,d+=n.e[s.p]),(!s||0==p.a.gc()||v>=g&&n.e[s.p]>w*n.b||m>=i*g)&&(l.c[l.c.length]=o,o=new Np,Frn(u,a),a.a.$b(),h-=f,b=e.Math.max(b,h*n.b+d),h+=m,v=m,m=0,f=0,d=0);return new rI(b,l)}function NBn(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(e=new Kb(new Ob(n.c.b).a.vc().Kc());e.a.Ob();)u=BB(e.a.Pb(),42),null==(r=(t=BB(u.dd(),149)).a)&&(r=""),!(i=_D(n.c,r))&&0==r.length&&(i=yfn(n)),i&&!ywn(i.c,t,!1)&&DH(i.c,t);for(a=spn(n.a,0);a.b!=a.d.c;)c=BB(b3(a),478),s=T5(n.c,c.a),l=T5(n.c,c.b),s&&l&&DH(s.c,new rI(l,c.c));for(yQ(n.a),f=spn(n.b,0);f.b!=f.d.c;)h=BB(b3(f),478),t=KD(n.c,h.a),o=T5(n.c,h.b),t&&o&&DM(t,o,h.c);yQ(n.b)}function xBn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;c=new Pl(n),d5((a=new dkn).g),d5(a.j),$U(a.b),d5(a.d),d5(a.i),$U(a.k),$U(a.c),$U(a.e),b=bIn(a,c,null),O$n(a,c),r=b,t&&(u=eHn(s=new Pl(t)),vSn(r,Pun(Gk(nMt,1),HWn,527,0,[u]))),l=!1,f=!1,e&&(s=new Pl(e),l8n in s.a&&(l=zJ(s,l8n).ge().a),b8n in s.a&&(f=zJ(s,b8n).ge().a)),h=$j(Fen(new Xm,l),f),BSn(new su,r,h),l8n in c.a&&rtn(c,l8n,null),(l||f)&&(nBn(h,o=new py,l,f),rtn(c,l8n,o)),i=new Xg(a),Uon(new OA(r),i)}function DBn(n,t,e){var i,r,c,a,u,o,s,h,f;for(a=new Ykn,s=Pun(Gk(ANt,1),hQn,25,15,[0]),r=-1,c=0,i=0,o=0;o<n.b.c.length;++o){if(!((h=BB(xq(n.b,o),434)).b>0)){if(r=-1,32==fV(h.c,0)){if(f=s[0],ynn(t,s),s[0]>f)continue}else if($Y(t,h.c,s[0])){s[0]+=h.c.length;continue}return 0}if(r<0&&h.a&&(r=o,c=s[0],i=0),r>=0){if(u=h.b,o==r&&0==(u-=i++))return 0;if(!LUn(t,s,h,u,a)){o=r-1,s[0]=c;continue}}else if(r=-1,!LUn(t,s,h,0,a))return 0}return dUn(a,e)?s[0]:0}function RBn(n){var t,e,i,r,c,a;if(!n.f){if(a=new Mo,c=new Mo,null==(t=P$t).a.zc(n,t)){for(r=new AL(kY(n));r.e!=r.i.gc();)pX(a,RBn(BB(kpn(r),26)));t.a.Bc(n),t.a.gc()}for(!n.s&&(n.s=new eU(FAt,n,21,17)),i=new AL(n.s);i.e!=i.i.gc();)cL(e=BB(kpn(i),170),99)&&f9(c,BB(e,18));chn(c),n.r=new TH(n,(BB(Wtn(QQ((QX(),t$t).o),6),18),c.i),c.g),pX(a,n.r),chn(a),n.f=new NO((BB(Wtn(QQ(t$t.o),5),18),a.i),a.g),P5(n).b&=-3}return n.f}function KBn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w;for(a=n.o,i=x8(ANt,hQn,25,a,15,1),r=x8(ANt,hQn,25,a,15,1),e=n.p,t=x8(ANt,hQn,25,e,15,1),c=x8(ANt,hQn,25,e,15,1),s=0;s<a;s++){for(f=0;f<e&&!vmn(n,s,f);)++f;i[s]=f}for(h=0;h<a;h++){for(f=e-1;f>=0&&!vmn(n,h,f);)--f;r[h]=f}for(b=0;b<e;b++){for(u=0;u<a&&!vmn(n,u,b);)++u;t[b]=u}for(w=0;w<e;w++){for(u=a-1;u>=0&&!vmn(n,u,w);)--u;c[w]=u}for(o=0;o<a;o++)for(l=0;l<e;l++)o<c[l]&&o>t[l]&&l<r[o]&&l>i[o]&&FRn(n,o,l,!1,!0)}function _Bn(n){var t,e,i,r,c,a,u,o;e=qy(TD(mMn(n,(fRn(),Bct)))),c=n.a.c.d,u=n.a.d.d,e?(a=kL(XR(new xC(u.a,u.b),c),.5),o=kL(B$(n.e),.5),t=XR(UR(new xC(c.a,c.b),a),o),Hx(n.d,t)):(r=Gy(MD(mMn(n.a,rat))),i=n.d,c.a>=u.a?c.b>=u.b?(i.a=u.a+(c.a-u.a)/2+r,i.b=u.b+(c.b-u.b)/2-r-n.e.b):(i.a=u.a+(c.a-u.a)/2+r,i.b=c.b+(u.b-c.b)/2+r):c.b>=u.b?(i.a=c.a+(u.a-c.a)/2+r,i.b=u.b+(c.b-u.b)/2+r):(i.a=c.a+(u.a-c.a)/2+r,i.b=c.b+(u.b-c.b)/2-r-n.e.b))}function FBn(n,t){var e,i,r,c,a,u,o;if(null==n)return null;if(0==(c=n.length))return"";for(o=x8(ONt,WVn,25,c,15,1),_8(0,c,n.length),_8(0,c,o.length),YU(n,0,c,o,0),e=null,u=t,r=0,a=0;r<c;r++)i=o[r],EWn(),i<=32&&0!=(2&JLt[i])?u?(!e&&(e=new fN(n)),aY(e,r-a++)):(u=t,32!=i&&(!e&&(e=new fN(n)),sV(e,r-a,r-a+1,String.fromCharCode(32)))):u=!1;return u?e?(c=e.a.length)>0?fx(e.a,0,c-1):"":n.substr(0,c-1):e?e.a:n}function BBn(n){NM(n,new MTn(vj(wj(pj(gj(new du,UJn),"ELK DisCo"),"Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."),new at))),u2(n,UJn,XJn,mpn(Ect)),u2(n,UJn,WJn,mpn(pct)),u2(n,UJn,VJn,mpn(lct)),u2(n,UJn,QJn,mpn(vct)),u2(n,UJn,XYn,mpn(kct)),u2(n,UJn,WYn,mpn(yct)),u2(n,UJn,UYn,mpn(jct)),u2(n,UJn,VYn,mpn(mct)),u2(n,UJn,BJn,mpn(wct)),u2(n,UJn,HJn,mpn(bct)),u2(n,UJn,qJn,mpn(dct)),u2(n,UJn,GJn,mpn(gct))}function HBn(n,t,e,i){var r,c,a,u,o,s,h;if(Bl(c=new $vn(n),(uSn(),Iut)),hon(c,(HXn(),ept),(QEn(),XCt)),r=0,t){for(hon(a=new CSn,(hWn(),dlt),t),hon(c,dlt,t.i),qCn(a,(kUn(),CIt)),CZ(a,c),s=0,h=(o=Z0(t.e)).length;s<h;++s)MZ(o[s],a);hon(t,Elt,c),++r}if(e){for(u=new CSn,hon(c,(hWn(),dlt),e.i),hon(u,dlt,e),qCn(u,(kUn(),oIt)),CZ(u,c),s=0,h=(o=Z0(e.g)).length;s<h;++s)SZ(o[s],u);hon(e,Elt,c),++r}return hon(c,(hWn(),Bft),iln(r)),i.c[i.c.length]=c,c}function qBn(){qBn=O,OOt=Pun(Gk(ONt,1),WVn,25,15,[48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70]),AOt=new RegExp("[ \t\n\r\f]+");try{IOt=Pun(Gk(D$t,1),HWn,2015,0,[new vp((s$(),sdn("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ",fR((fk(),fk(),rtt))))),new vp(sdn("yyyy-MM-dd'T'HH:mm:ss'.'SSS",fR(rtt))),new vp(sdn("yyyy-MM-dd'T'HH:mm:ss",fR(rtt))),new vp(sdn("yyyy-MM-dd'T'HH:mm",fR(rtt))),new vp(sdn("yyyy-MM-dd",fR(rtt)))])}catch(n){if(!cL(n=lun(n),78))throw Hp(n)}}function GBn(n){var t,i,r,c;if(r=qXn((!n.c&&(n.c=yhn(n.f)),n.c),0),0==n.e||0==n.a&&-1!=n.f&&n.e<0)return r;if(t=iin(n)<0?1:0,i=n.e,r.length,e.Math.abs(CJ(n.e)),c=new Ik,1==t&&(c.a+="-"),n.e>0)if((i-=r.length-t)>=0){for(c.a+="0.";i>qtt.length;i-=qtt.length)Nq(c,qtt);gR(c,qtt,CJ(i)),oO(c,r.substr(t))}else oO(c,fx(r,t,CJ(i=t-i))),c.a+=".",oO(c,nO(r,CJ(i)));else{for(oO(c,r.substr(t));i<-qtt.length;i+=qtt.length)Nq(c,qtt);gR(c,qtt,CJ(-i))}return c.a}function zBn(n,t,i,r){var c,a,u,o,s,h,f,l,b;return h=(s=XR(new xC(i.a,i.b),n)).a*t.b-s.b*t.a,f=t.a*r.b-t.b*r.a,l=(s.a*r.b-s.b*r.a)/f,b=h/f,0==f?0==h?(a=W8(n,c=UR(new xC(i.a,i.b),kL(new xC(r.a,r.b),.5))),u=W8(UR(new xC(n.a,n.b),t),c),o=.5*e.Math.sqrt(r.a*r.a+r.b*r.b),a<u&&a<=o?new xC(n.a,n.b):u<=o?UR(new xC(n.a,n.b),t):null):null:l>=0&&l<=1&&b>=0&&b<=1?UR(new xC(n.a,n.b),kL(new xC(t.a,t.b),l)):null}function UBn(n,t,e){var i,r,c,a,u;if(i=BB(mMn(n,(HXn(),Ndt)),21),e.a>t.a&&(i.Hc((wEn(),WMt))?n.c.a+=(e.a-t.a)/2:i.Hc(QMt)&&(n.c.a+=e.a-t.a)),e.b>t.b&&(i.Hc((wEn(),JMt))?n.c.b+=(e.b-t.b)/2:i.Hc(YMt)&&(n.c.b+=e.b-t.b)),BB(mMn(n,(hWn(),Zft)),21).Hc((bDn(),lft))&&(e.a>t.a||e.b>t.b))for(u=new Wb(n.a);u.a<u.c.c.length;)(a=BB(n0(u),10)).k==(uSn(),Mut)&&((r=BB(mMn(a,Qft),61))==(kUn(),oIt)?a.n.a+=e.a-t.a:r==SIt&&(a.n.b+=e.b-t.b));c=n.d,n.f.a=e.a-c.b-c.c,n.f.b=e.b-c.d-c.a}function XBn(n,t,e){var i,r,c,a,u;if(i=BB(mMn(n,(HXn(),Ndt)),21),e.a>t.a&&(i.Hc((wEn(),WMt))?n.c.a+=(e.a-t.a)/2:i.Hc(QMt)&&(n.c.a+=e.a-t.a)),e.b>t.b&&(i.Hc((wEn(),JMt))?n.c.b+=(e.b-t.b)/2:i.Hc(YMt)&&(n.c.b+=e.b-t.b)),BB(mMn(n,(hWn(),Zft)),21).Hc((bDn(),lft))&&(e.a>t.a||e.b>t.b))for(a=new Wb(n.a);a.a<a.c.c.length;)(c=BB(n0(a),10)).k==(uSn(),Mut)&&((r=BB(mMn(c,Qft),61))==(kUn(),oIt)?c.n.a+=e.a-t.a:r==SIt&&(c.n.b+=e.b-t.b));u=n.d,n.f.a=e.a-u.b-u.c,n.f.b=e.b-u.d-u.a}function WBn(n){var t,i,r,c,a,u,o,s,h,f;for(s=new Ib(new Cb(xOn(n)).a.vc().Kc());s.a.Ob();){for(r=BB(s.a.Pb(),42),h=0,f=0,h=(o=BB(r.cd(),10)).d.d,f=o.o.b+o.d.a,n.d[o.p]=0,t=o;(c=n.a[t.p])!=o;)i=Mgn(t,c),u=0,u=n.c==(gJ(),nyt)?i.d.n.b+i.d.a.b-i.c.n.b-i.c.a.b:i.c.n.b+i.c.a.b-i.d.n.b-i.d.a.b,a=Gy(n.d[t.p])+u,n.d[c.p]=a,h=e.Math.max(h,c.d.d-a),f=e.Math.max(f,a+c.o.b+c.d.a),t=c;t=o;do{n.d[t.p]=Gy(n.d[t.p])+h,t=n.a[t.p]}while(t!=o);n.b[o.p]=h+f}}function VBn(n){var t,i,r,c,a,u,o,s,h,f,l;for(n.b=!1,f=RQn,o=KQn,l=RQn,s=KQn,i=n.e.a.ec().Kc();i.Ob();)for(r=(t=BB(i.Pb(),266)).a,f=e.Math.min(f,r.c),o=e.Math.max(o,r.c+r.b),l=e.Math.min(l,r.d),s=e.Math.max(s,r.d+r.a),a=new Wb(t.c);a.a<a.c.c.length;)(c=BB(n0(a),395)).a.a?(u=(h=r.d+c.b.b)+c.c,l=e.Math.min(l,h),s=e.Math.max(s,u)):(u=(h=r.c+c.b.a)+c.c,f=e.Math.min(f,h),o=e.Math.max(o,u));n.a=new xC(o-f,s-l),n.c=new xC(f+n.d.a,l+n.d.b)}function QBn(n,t,e){var i,r,c,a,u,o,s,h;for(h=new Np,c=0,tin(s=new x0(0,e),new asn(0,0,s,e)),r=0,o=new AL(n);o.e!=o.i.gc();)u=BB(kpn(o),33),i=BB(xq(s.a,s.a.c.length-1),187),r+u.g+(0==BB(xq(s.a,0),187).b.c.length?0:e)>t&&(r=0,c+=s.b+e,h.c[h.c.length]=s,tin(s=new x0(c,e),i=new asn(0,s.f,s,e)),r=0),0==i.b.c.length||u.f>=i.o&&u.f<=i.f||.5*i.a<=u.f&&1.5*i.a>=u.f?ybn(i,u):(tin(s,a=new asn(i.s+i.r+e,s.f,s,e)),ybn(a,u)),r=u.i+u.g;return h.c[h.c.length]=s,h}function YBn(n){var t,e,i,r,c,a;if(!n.a){if(n.o=null,a=new gp(n),t=new So,null==(e=P$t).a.zc(n,e)){for(c=new AL(kY(n));c.e!=c.i.gc();)pX(a,YBn(BB(kpn(c),26)));e.a.Bc(n),e.a.gc()}for(!n.s&&(n.s=new eU(FAt,n,21,17)),r=new AL(n.s);r.e!=r.i.gc();)cL(i=BB(kpn(r),170),322)&&f9(t,BB(i,34));chn(t),n.k=new EH(n,(BB(Wtn(QQ((QX(),t$t).o),7),18),t.i),t.g),pX(a,n.k),chn(a),n.a=new NO((BB(Wtn(QQ(t$t.o),4),18),a.i),a.g),P5(n).b&=-2}return n.a}function JBn(n,t,e,i,r,c,a){var u,o,s,h,f;return h=!1,u=dNn(e.q,t.f+t.b-e.q.f),!((f=r-(e.q.e+u-a))<i.g)&&(o=c==n.c.length-1&&f>=(l1(c,n.c.length),BB(n.c[c],200)).e,!((s=cHn(i,f,!1).a)>t.b&&!o)&&((o||s<=t.b)&&(o&&s>t.b?(e.d=s,p9(e,FSn(e,s))):(aEn(e.q,u),e.c=!0),p9(i,r-(e.s+e.r)),Tvn(i,e.q.e+e.q.d,t.f),tin(t,i),n.c.length>c&&(Tkn((l1(c,n.c.length),BB(n.c[c],200)),i),0==(l1(c,n.c.length),BB(n.c[c],200)).a.c.length&&s6(n,c)),h=!0),h))}function ZBn(n,t,e,i){var r,c,a,u,o,s,h;if(h=axn(n.e.Tg(),t),r=0,c=BB(n.g,119),o=null,ZM(),BB(t,66).Oj()){for(u=0;u<n.i;++u)if(a=c[u],h.rl(a.ak())){if(Nfn(a,e)){o=a;break}++r}}else if(null!=e){for(u=0;u<n.i;++u)if(a=c[u],h.rl(a.ak())){if(Nfn(e,a.dd())){o=a;break}++r}}else for(u=0;u<n.i;++u)if(a=c[u],h.rl(a.ak())){if(null==a.dd()){o=a;break}++r}return o&&(mA(n.e)&&(s=t.$j()?new b4(n.e,4,t,e,null,r,!0):LY(n,t.Kj()?2:1,t,e,t.zj(),-1,!0),i?i.Ei(s):i=s),i=TKn(n,o,i)),i}function nHn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w,d;switch(w=0,d=0,s=c.c,o=c.b,f=i.f,b=i.g,t.g){case 0:w=r.i+r.g+u,d=n.c?gTn(w,a,r,u):r.j,l=e.Math.max(s,w+b),h=e.Math.max(o,d+f);break;case 1:d=r.j+r.f+u,w=n.c?dTn(d,a,r,u):r.i,l=e.Math.max(s,w+b),h=e.Math.max(o,d+f);break;case 2:w=s+u,d=0,l=s+u+b,h=e.Math.max(o,f);break;case 3:w=0,d=o+u,l=e.Math.max(s,b),h=o+u+f;break;default:throw Hp(new _y("IllegalPlacementOption."))}return new awn(n.a,l,h,t,w,d)}function tHn(n){var t,i,r,c,a,u,o,s,h,f,l,b;if(o=n.d,l=BB(mMn(n,(hWn(),Klt)),15),t=BB(mMn(n,Dft),15),l||t){if(a=Gy(MD(edn(n,(HXn(),ppt)))),u=Gy(MD(edn(n,vpt))),b=0,l){for(h=0,c=l.Kc();c.Ob();)r=BB(c.Pb(),10),h=e.Math.max(h,r.o.b),b+=r.o.a;b+=a*(l.gc()-1),o.d+=h+u}if(i=0,t){for(h=0,c=t.Kc();c.Ob();)r=BB(c.Pb(),10),h=e.Math.max(h,r.o.b),i+=r.o.a;i+=a*(t.gc()-1),o.a+=h+u}(s=e.Math.max(b,i))>n.o.a&&(f=(s-n.o.a)/2,o.b=e.Math.max(o.b,f),o.c=e.Math.max(o.c,f))}}function eHn(n){var t,e,i,r,c,a;for(cA(r=new R0,(Nun(),JTt)),i=new Sb(new Jy(new TT(n,jrn(n,x8(Qtt,sVn,2,0,6,1))).b));i.b<i.d.gc();)Px(i.b<i.d.gc()),e=SD(i.d.Xb(i.c=i.b++)),(c=pGn(lAt,e))&&null!=(a=Zqn(c,(t=zJ(n,e)).je()?t.je().a:t.ge()?""+t.ge().a:t.he()?""+t.he().a:t.Ib()))&&((SN(c.j,(rpn(),sMt))||SN(c.j,hMt))&&son(Ynn(r,UOt),c,a),SN(c.j,uMt)&&son(Ynn(r,_Ot),c,a),SN(c.j,fMt)&&son(Ynn(r,XOt),c,a),SN(c.j,oMt)&&son(Ynn(r,zOt),c,a));return r}function iHn(n,t,e,i){var r,c,a,u,o,s;if(o=axn(n.e.Tg(),t),c=BB(n.g,119),$xn(n.e,t)){for(r=0,u=0;u<n.i;++u)if(a=c[u],o.rl(a.ak())){if(r==e)return ZM(),BB(t,66).Oj()?a:(null!=(s=a.dd())&&i&&cL(t,99)&&0!=(BB(t,18).Bb&BQn)&&(s=FIn(n,t,u,r,s)),s);++r}throw Hp(new Ay(e9n+e+o8n+r))}for(r=0,u=0;u<n.i;++u){if(a=c[u],o.rl(a.ak()))return ZM(),BB(t,66).Oj()?a:(null!=(s=a.dd())&&i&&cL(t,99)&&0!=(BB(t,18).Bb&BQn)&&(s=FIn(n,t,u,r,s)),s);++r}return t.zj()}function rHn(n,t,e){var i,r,c,a,u,o,s,h;if(r=BB(n.g,119),$xn(n.e,t))return ZM(),BB(t,66).Oj()?new lq(t,n):new xI(t,n);for(s=axn(n.e.Tg(),t),i=0,u=0;u<n.i;++u){if(a=(c=r[u]).ak(),s.rl(a)){if(ZM(),BB(t,66).Oj())return c;if(a==(TOn(),lLt)||a==sLt){for(o=new lN(Bbn(c.dd()));++u<n.i;)((a=(c=r[u]).ak())==lLt||a==sLt)&&oO(o,Bbn(c.dd()));return gK(BB(t.Yj(),148),o.a)}return null!=(h=c.dd())&&e&&cL(t,99)&&0!=(BB(t,18).Bb&BQn)&&(h=FIn(n,t,u,i,h)),h}++i}return t.zj()}function cHn(n,t,i){var r,c,a,u,o,s,h,f,l,b;for(a=0,u=n.t,c=0,r=0,s=0,b=0,l=0,i&&(n.n.c=x8(Ant,HWn,1,0,5,1),WB(n.n,new RJ(n.s,n.t,n.i))),o=0,f=new Wb(n.b);f.a<f.c.c.length;)a+(h=BB(n0(f),33)).g+(o>0?n.i:0)>t&&s>0&&(a=0,u+=s+n.i,c=e.Math.max(c,b),r+=s+n.i,s=0,b=0,i&&(++l,WB(n.n,new RJ(n.s,u,n.i))),o=0),b+=h.g+(o>0?n.i:0),s=e.Math.max(s,h.f),i&&smn(BB(xq(n.n,l),211),h),a+=h.g+(o>0?n.i:0),++o;return c=e.Math.max(c,b),r+=s,i&&(n.r=c,n.d=r,yyn(n.j)),new UV(n.s,n.t,c,r)}function aHn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;if($T(),SU(n,"src"),SU(e,"dest"),l=tsn(n),o=tsn(e),pH(0!=(4&l.i),"srcType is not an array"),pH(0!=(4&o.i),"destType is not an array"),f=l.c,a=o.c,pH(0!=(1&f.i)?f==a:0==(1&a.i),"Array types don't match"),b=n.length,s=e.length,t<0||i<0||r<0||t+r>b||i+r>s)throw Hp(new fv);if(0==(1&f.i)&&l!=o)if(h=een(n),c=een(e),GI(n)===GI(e)&&t<i)for(t+=r,u=i+r;u-- >i;)$X(c,u,h[--t]);else for(u=i+r;i<u;)$X(c,i++,h[t++]);else r>0&&_Cn(n,t,e,i,r,!0)}function uHn(){uHn=O,ret=Pun(Gk(ANt,1),hQn,25,15,[_Vn,1162261467,OVn,1220703125,362797056,1977326743,OVn,387420489,AQn,214358881,429981696,815730721,1475789056,170859375,268435456,410338673,612220032,893871739,128e7,1801088541,113379904,148035889,191102976,244140625,308915776,387420489,481890304,594823321,729e6,887503681,OVn,1291467969,1544804416,1838265625,60466176]),cet=Pun(Gk(ANt,1),hQn,25,15,[-1,-1,31,19,15,13,11,11,10,9,9,8,8,8,8,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5])}function oHn(n){var t,e,i,r,c,a,u;for(i=new Wb(n.b);i.a<i.c.c.length;)for(c=new Wb(a0(BB(n0(i),29).a));c.a<c.c.c.length;)if(Znn(r=BB(n0(c),10))&&!(e=BB(mMn(r,(hWn(),Rft)),305)).g&&e.d)for(t=e,u=e.d;u;)eRn(u.i,u.k,!1,!0),A7(t.a),A7(u.i),A7(u.k),A7(u.b),MZ(u.c,t.c.d),MZ(t.c,null),PZ(t.a,null),PZ(u.i,null),PZ(u.k,null),PZ(u.b,null),(a=new v3(t.i,u.a,t.e,u.j,u.f)).k=t.k,a.n=t.n,a.b=t.b,a.c=u.c,a.g=t.g,a.d=u.d,hon(t.i,Rft,a),hon(u.a,Rft,a),u=u.d,t=a}function sHn(n,t){var e,i,r,c,a;if(a=BB(t,136),T$n(n),T$n(a),null!=a.b){if(n.c=!0,null==n.b)return n.b=x8(ANt,hQn,25,a.b.length,15,1),void aHn(a.b,0,n.b,0,a.b.length);for(c=x8(ANt,hQn,25,n.b.length+a.b.length,15,1),e=0,i=0,r=0;e<n.b.length||i<a.b.length;)e>=n.b.length?(c[r++]=a.b[i++],c[r++]=a.b[i++]):i>=a.b.length?(c[r++]=n.b[e++],c[r++]=n.b[e++]):a.b[i]<n.b[e]||a.b[i]===n.b[e]&&a.b[i+1]<n.b[e+1]?(c[r++]=a.b[i++],c[r++]=a.b[i++]):(c[r++]=n.b[e++],c[r++]=n.b[e++]);n.b=c}}function hHn(n,t){var e,i,r,c,a,u,o,s,h,f;return e=qy(TD(mMn(n,(hWn(),slt)))),u=qy(TD(mMn(t,slt))),i=BB(mMn(n,hlt),11),o=BB(mMn(t,hlt),11),r=BB(mMn(n,flt),11),s=BB(mMn(t,flt),11),h=!!i&&i==o,f=!!r&&r==s,e||u?(c=(!qy(TD(mMn(n,slt)))||qy(TD(mMn(n,olt))))&&(!qy(TD(mMn(t,slt)))||qy(TD(mMn(t,olt)))),a=!(qy(TD(mMn(n,slt)))&&qy(TD(mMn(n,olt)))||qy(TD(mMn(t,slt)))&&qy(TD(mMn(t,olt)))),new R_(h&&c||f&&a,h,f)):new R_(BB(n0(new Wb(n.j)),11).p==BB(n0(new Wb(t.j)),11).p,h,f)}function fHn(n){var t,i,r,c,a,u,o,s;for(r=0,i=0,s=new YT,t=0,o=new Wb(n.n);o.a<o.c.c.length;)0==(u=BB(n0(o),211)).c.c.length?r5(s,u,s.c.b,s.c):(r=e.Math.max(r,u.d),i+=u.a+(t>0?n.i:0)),++t;for(nwn(n.n,s),n.d=i,n.r=r,n.g=0,n.f=0,n.e=0,n.o=RQn,n.p=RQn,a=new Wb(n.b);a.a<a.c.c.length;)c=BB(n0(a),33),n.p=e.Math.min(n.p,c.g),n.g=e.Math.max(n.g,c.g),n.f=e.Math.max(n.f,c.f),n.o=e.Math.min(n.o,c.f),n.e+=c.f+n.i;n.a=n.e/n.b.c.length-n.i*((n.b.c.length-1)/n.b.c.length),yyn(n.j)}function lHn(n){var t,e,i,r;return 0!=(64&n.Db)?Yln(n):(t=new lN(V5n),(i=n.k)?oO(oO((t.a+=' "',t),i),'"'):(!n.n&&(n.n=new eU(zOt,n,1,7)),n.n.i>0&&(!(r=(!n.n&&(n.n=new eU(zOt,n,1,7)),BB(Wtn(n.n,0),137)).a)||oO(oO((t.a+=' "',t),r),'"'))),!n.b&&(n.b=new hK(KOt,n,4,7)),e=!(n.b.i<=1&&(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c.i<=1)),t.a+=e?" [":" ",oO(t,JL(new mk,new AL(n.b))),e&&(t.a+="]"),t.a+=e1n,e&&(t.a+="["),oO(t,JL(new mk,new AL(n.c))),e&&(t.a+="]"),t.a)}function bHn(n,t){var e,i,r,c,a,u,o;if(n.a){if(o=null,null!=(u=n.a.ne())?t.a+=""+u:null!=(a=n.a.Dj())&&(-1!=(c=GO(a,YTn(91)))?(o=a.substr(c),t.a+=""+fx(null==a?zWn:(kW(a),a),0,c)):t.a+=""+a),n.d&&0!=n.d.i){for(r=!0,t.a+="<",i=new AL(n.d);i.e!=i.i.gc();)e=BB(kpn(i),87),r?r=!1:t.a+=FWn,bHn(e,t);t.a+=">"}null!=o&&(t.a+=""+o)}else n.e?null!=(u=n.e.zb)&&(t.a+=""+u):(t.a+="?",n.b?(t.a+=" super ",bHn(n.b,t)):n.f&&(t.a+=" extends ",bHn(n.f,t)))}function wHn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M;for(y=n.c,k=t.c,e=E7(y.a,n,0),i=E7(k.a,t,0),v=BB(xwn(n,(ain(),Hvt)).Kc().Pb(),11),T=BB(xwn(n,qvt).Kc().Pb(),11),m=BB(xwn(t,Hvt).Kc().Pb(),11),M=BB(xwn(t,qvt).Kc().Pb(),11),g=Z0(v.e),j=Z0(T.g),p=Z0(m.e),E=Z0(M.g),Qyn(n,i,k),s=0,b=(c=p).length;s<b;++s)MZ(c[s],v);for(h=0,w=(a=E).length;h<w;++h)SZ(a[h],T);for(Qyn(t,e,y),f=0,d=(u=g).length;f<d;++f)MZ(u[f],m);for(o=0,l=(r=j).length;o<l;++o)SZ(r[o],M)}function dHn(n,t,e,i){var r,c,a,u,o,s;if(c=Wln(i),!qy(TD(mMn(i,(HXn(),Igt))))&&!qy(TD(mMn(n,bgt)))||vA(BB(mMn(n,ept),98)))switch(CZ(u=new CSn,n),t?((s=u.n).a=t.a-n.n.a,s.b=t.b-n.n.b,WSn(s,0,0,n.o.a,n.o.b),qCn(u,z_n(u,c))):(r=hwn(c),qCn(u,e==(ain(),qvt)?r:Tln(r))),a=BB(mMn(i,(hWn(),Zft)),21),o=u.j,c.g){case 2:case 1:(o==(kUn(),sIt)||o==SIt)&&a.Fc((bDn(),gft));break;case 4:case 3:(o==(kUn(),oIt)||o==CIt)&&a.Fc((bDn(),gft))}else r=hwn(c),u=R_n(n,e,e==(ain(),qvt)?r:Tln(r));return u}function gHn(n,t,i){var r,c,a,u,o,s,h;return e.Math.abs(t.s-t.c)<lZn||e.Math.abs(i.s-i.c)<lZn?0:(r=WNn(n,t.j,i.e),c=WNn(n,i.j,t.e),a=0,-1==r||-1==c?(-1==r&&(new zZ((O6(),Tyt),i,t,1),++a),-1==c&&(new zZ((O6(),Tyt),t,i,1),++a)):(u=Tfn(t.j,i.s,i.c),u+=Tfn(i.e,t.s,t.c),o=Tfn(i.j,t.s,t.c),(s=r+16*u)<(h=c+16*(o+=Tfn(t.e,i.s,i.c)))?new zZ((O6(),Myt),t,i,h-s):s>h?new zZ((O6(),Myt),i,t,s-h):s>0&&h>0&&(new zZ((O6(),Myt),t,i,0),new zZ(Myt,i,t,0))),a)}function pHn(n,t){var i,r,c,a,u;for(u=new usn(new Pb(n.f.b).a);u.b;){if(c=BB((a=ten(u)).cd(),594),1==t){if(c.gf()!=(Ffn(),HPt)&&c.gf()!=KPt)continue}else if(c.gf()!=(Ffn(),_Pt)&&c.gf()!=FPt)continue;switch(r=BB(BB(a.dd(),46).b,81),i=BB(BB(a.dd(),46).a,189).c,c.gf().g){case 2:r.g.c=n.e.a,r.g.b=e.Math.max(1,r.g.b+i);break;case 1:r.g.c=r.g.c+i,r.g.b=e.Math.max(1,r.g.b-i);break;case 4:r.g.d=n.e.b,r.g.a=e.Math.max(1,r.g.a+i);break;case 3:r.g.d=r.g.d+i,r.g.a=e.Math.max(1,r.g.a-i)}}}function vHn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(o=x8(ANt,hQn,25,t.b.c.length,15,1),h=x8($ut,$Vn,267,t.b.c.length,0,1),s=x8(Out,a1n,10,t.b.c.length,0,1),b=0,w=(l=n.a).length;b<w;++b){for(g=0,u=new Wb((f=l[b]).e);u.a<u.c.c.length;)++o[r=tA((c=BB(n0(u),10)).c)],d=Gy(MD(mMn(t,(HXn(),ypt)))),o[r]>0&&s[r]&&(d=K$(n.b,s[r],c)),g=e.Math.max(g,c.c.c.b+d);for(a=new Wb(f.e);a.a<a.c.c.length;)(c=BB(n0(a),10)).n.b=g+c.d.d,(i=c.c).c.b=g+c.d.d+c.o.b+c.d.a,h[E7(i.b.b,i,0)]=c.k,s[E7(i.b.b,i,0)]=c}}function mHn(n,t){var e,i,r,c,a,u,o,s,f,l,b;for(i=new oz(ZL(dLn(t).a.Kc(),new h));dAn(i);)cL(Wtn((!(e=BB(U5(i),79)).b&&(e.b=new hK(KOt,e,4,7)),e.b),0),186)||(o=PTn(BB(Wtn((!e.c&&(e.c=new hK(KOt,e,5,8)),e.c),0),82)),nAn(e)||(a=t.i+t.g/2,u=t.j+t.f/2,f=o.i+o.g/2,l=o.j+o.f/2,(b=new Gj).a=f-a,b.b=l-u,Ukn(c=new xC(b.a,b.b),t.g,t.f),b.a-=c.a,b.b-=c.b,a=f-b.a,u=l-b.b,Ukn(s=new xC(b.a,b.b),o.g,o.f),b.a-=s.a,b.b-=s.b,f=a+b.a,l=u+b.b,Ien(r=cDn(e,!0,!0),a),Aen(r,u),Ten(r,f),Oen(r,l),mHn(n,o)))}function yHn(n){NM(n,new MTn(vj(wj(pj(gj(new du,R4n),"ELK SPOrE Compaction"),"ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree."),new tu))),u2(n,R4n,K4n,mpn(kTt)),u2(n,R4n,_4n,mpn(vTt)),u2(n,R4n,F4n,mpn(pTt)),u2(n,R4n,B4n,mpn(dTt)),u2(n,R4n,H4n,mpn(gTt)),u2(n,R4n,QJn,wTt),u2(n,R4n,vZn,8),u2(n,R4n,q4n,mpn(yTt)),u2(n,R4n,G4n,mpn(hTt)),u2(n,R4n,z4n,mpn(fTt)),u2(n,R4n,X2n,(hN(),!1))}function kHn(n,t){var i,r,c,a,u,o,s,h,f,l;for(OTn(t,"Simple node placement",1),l=BB(mMn(n,(hWn(),Alt)),304),o=0,a=new Wb(n.b);a.a<a.c.c.length;){for((u=(r=BB(n0(a),29)).c).b=0,i=null,h=new Wb(r.a);h.a<h.c.c.length;)s=BB(n0(h),10),i&&(u.b+=Idn(s,i,l.c)),u.b+=s.d.d+s.o.b+s.d.a,i=s;o=e.Math.max(o,u.b)}for(c=new Wb(n.b);c.a<c.c.c.length;)for(f=(o-(u=(r=BB(n0(c),29)).c).b)/2,i=null,h=new Wb(r.a);h.a<h.c.c.length;)s=BB(n0(h),10),i&&(f+=Idn(s,i,l.c)),f+=s.d.d,s.n.b=f,f+=s.o.b+s.d.a,i=s;HSn(t)}function jHn(n,t,e,i){var r,c,a,u,o,s,h,f;if(0==i.gc())return!1;if(ZM(),a=(o=BB(t,66).Oj())?i:new gtn(i.gc()),$xn(n.e,t)){if(t.hi())for(h=i.Kc();h.Ob();)UFn(n,t,s=h.Pb(),cL(t,99)&&0!=(BB(t,18).Bb&BQn))||(c=Z3(t,s),a.Fc(c));else if(!o)for(h=i.Kc();h.Ob();)c=Z3(t,s=h.Pb()),a.Fc(c)}else{for(f=axn(n.e.Tg(),t),r=BB(n.g,119),u=0;u<n.i;++u)if(c=r[u],f.rl(c.ak()))throw Hp(new _y(I7n));if(i.gc()>1)throw Hp(new _y(I7n));o||(c=Z3(t,i.Kc().Pb()),a.Fc(c))}return oon(n,EPn(n,t,e),a)}function EHn(n,t){var e,i,r,c;for(Qtn(t.b.j),JT($V(new Rq(null,new w1(t.d,16)),new cc),new ac),c=new Wb(t.d);c.a<c.c.c.length;){switch((r=BB(n0(c),101)).e.g){case 0:e=BB(xq(r.j,0),113).d.j,Gl(r,BB($N(Oz(BB(h6(r.k,e),15).Oc(),Qst)),113)),ql(r,BB($N(Iz(BB(h6(r.k,e),15).Oc(),Qst)),113));break;case 1:i=Hyn(r),Gl(r,BB($N(Oz(BB(h6(r.k,i[0]),15).Oc(),Qst)),113)),ql(r,BB($N(Iz(BB(h6(r.k,i[1]),15).Oc(),Qst)),113));break;case 2:VPn(n,r);break;case 3:KNn(r);break;case 4:GNn(n,r)}Vtn(r)}n.a=null}function THn(n,t,e){var i,r,c,a,u,o,s,h;return i=n.a.o==(oZ(),cyt)?RQn:KQn,!(u=cFn(n,new aC(t,e))).a&&u.c?(DH(n.d,u),i):u.a?(r=u.a.c,o=u.a.d,e?(s=n.a.c==(gJ(),tyt)?o:r,c=n.a.c==tyt?r:o,a=n.a.g[c.i.p],h=Gy(n.a.p[a.p])+Gy(n.a.d[c.i.p])+c.n.b+c.a.b-Gy(n.a.d[s.i.p])-s.n.b-s.a.b):(s=n.a.c==(gJ(),nyt)?o:r,c=n.a.c==nyt?r:o,h=Gy(n.a.p[n.a.g[c.i.p].p])+Gy(n.a.d[c.i.p])+c.n.b+c.a.b-Gy(n.a.d[s.i.p])-s.n.b-s.a.b),n.a.n[n.a.g[r.i.p].p]=(hN(),!0),n.a.n[n.a.g[o.i.p].p]=!0,h):i}function MHn(n,t,e){var i,r,c,a,u,o,s;if($xn(n.e,t))ZM(),AOn((u=BB(t,66).Oj()?new lq(t,n):new xI(t,n)).c,u.b),Z$(u,BB(e,14));else{for(s=axn(n.e.Tg(),t),i=BB(n.g,119),c=0;c<n.i;++c)if(r=i[c].ak(),s.rl(r)){if(r==(TOn(),lLt)||r==sLt){for(a=c,(o=Ovn(n,t,e))?fDn(n,c):++c;c<n.i;)(r=i[c].ak())==lLt||r==sLt?fDn(n,c):++c;o||BB(ovn(n,a,Z3(t,e)),72)}else Ovn(n,t,e)?fDn(n,c):BB(ovn(n,c,(ZM(),BB(t,66).Oj()?BB(e,72):Z3(t,e))),72);return}Ovn(n,t,e)||f9(n,(ZM(),BB(t,66).Oj()?BB(e,72):Z3(t,e)))}}function SHn(n,t,e){var i,r,c,a,u,o,s,h;return Nfn(e,n.b)||(n.b=e,c=new Jn,a=BB(P4($V(new Rq(null,new w1(e.f,16)),c),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Xet),Uet]))),21),n.e=!0,n.f=!0,n.c=!0,n.d=!0,r=a.Hc((Hpn(),Brt)),i=a.Hc(Hrt),r&&!i&&(n.f=!1),!r&&i&&(n.d=!1),r=a.Hc(Frt),i=a.Hc(qrt),r&&!i&&(n.c=!1),!r&&i&&(n.e=!1)),h=BB(n.a.Ce(t,e),46),o=BB(h.a,19).a,s=BB(h.b,19).a,u=!1,o<0?n.c||(u=!0):n.e||(u=!0),s<0?n.d||(u=!0):n.f||(u=!0),u?SHn(n,h,e):h}function PHn(n){var t,i,r,c;c=n.o,qD(),n.A.dc()||Nfn(n.A,$rt)?t=c.b:(t=MIn(n.f),n.A.Hc((mdn(),RIt))&&!n.B.Hc((n_n(),XIt))&&(t=e.Math.max(t,MIn(BB(oV(n.p,(kUn(),oIt)),244))),t=e.Math.max(t,MIn(BB(oV(n.p,CIt),244)))),(i=oan(n))&&(t=e.Math.max(t,i.b)),n.A.Hc(KIt)&&(n.q!=(QEn(),WCt)&&n.q!=XCt||(t=e.Math.max(t,XH(BB(oV(n.b,(kUn(),oIt)),124))),t=e.Math.max(t,XH(BB(oV(n.b,CIt),124)))))),qy(TD(n.e.yf().We((sWn(),FSt))))?c.b=e.Math.max(c.b,t):c.b=t,(r=n.f.i).d=0,r.a=t,GFn(n.f)}function CHn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;for(h=0;h<t.length;h++){for(a=n.Kc();a.Ob();)BB(a.Pb(),225).Of(h,t);for(f=0;f<t[h].length;f++){for(u=n.Kc();u.Ob();)BB(u.Pb(),225).Pf(h,f,t);for(b=t[h][f].j,l=0;l<b.c.length;l++){for(o=n.Kc();o.Ob();)BB(o.Pb(),225).Qf(h,f,l,t);for(l1(l,b.c.length),e=0,r=new m6(BB(b.c[l],11).b);y$(r.a)||y$(r.b);)for(i=BB(y$(r.a)?n0(r.a):n0(r.b),17),s=n.Kc();s.Ob();)BB(s.Pb(),225).Nf(h,f,l,e++,i,t)}}}for(c=n.Kc();c.Ob();)BB(c.Pb(),225).Mf()}function IHn(n,t){var e,i,r,c,a;for(n.b=Gy(MD(mMn(t,(HXn(),kpt)))),n.c=Gy(MD(mMn(t,Tpt))),n.d=BB(mMn(t,rgt),336),n.a=BB(mMn(t,Pdt),275),fmn(t),r=(c=BB(P4(AV(AV(wnn(wnn(new Rq(null,new w1(t.b,16)),new ye),new ke),new je),new Ee),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15)).Kc();r.Ob();)e=BB(r.Pb(),17),BB(mMn(e,(hWn(),Nlt)),15).Jc(new ed(n)),hon(e,Nlt,null);for(i=c.Kc();i.Ob();)e=BB(i.Pb(),17),a=BB(mMn(e,(hWn(),xlt)),17),FXn(n,BB(mMn(e,$lt),15),a),hon(e,$lt,null)}function OHn(n){n.b=null,n.a=null,n.o=null,n.q=null,n.v=null,n.w=null,n.B=null,n.p=null,n.Q=null,n.R=null,n.S=null,n.T=null,n.U=null,n.V=null,n.W=null,n.bb=null,n.eb=null,n.ab=null,n.H=null,n.db=null,n.c=null,n.d=null,n.f=null,n.n=null,n.r=null,n.s=null,n.u=null,n.G=null,n.J=null,n.e=null,n.j=null,n.i=null,n.g=null,n.k=null,n.t=null,n.F=null,n.I=null,n.L=null,n.M=null,n.O=null,n.P=null,n.$=null,n.N=null,n.Z=null,n.cb=null,n.K=null,n.D=null,n.A=null,n.C=null,n._=null,n.fb=null,n.X=null,n.Y=null,n.gb=!1,n.hb=!1}function AHn(n){var t,e,i,r,c;if(n.k!=(uSn(),Cut))return!1;if(n.j.c.length<=1)return!1;if(BB(mMn(n,(HXn(),ept)),98)==(QEn(),XCt))return!1;if(bvn(),(i=(n.q?n.q:(SQ(),SQ(),het))._b(Rgt)?BB(mMn(n,Rgt),197):BB(mMn(vW(n),Kgt),197))==lvt)return!1;if(i!=fvt&&i!=hvt){if(r=Gy(MD(edn(n,Npt))),!(t=BB(mMn(n,Lpt),142))&&(t=new HR(r,r,r,r)),c=abn(n,(kUn(),CIt)),t.d+t.a+(c.gc()-1)*r>n.o.b)return!1;if(e=abn(n,oIt),t.d+t.a+(e.gc()-1)*r>n.o.b)return!1}return!0}function $Hn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;if(a=n.e,o=t.e,0==a)return t;if(0==o)return n;if((c=n.d)+(u=t.d)==2)return e=e0(n.a[0],UQn),i=e0(t.a[0],UQn),a==o?(w=dG(h=rbn(e,i)),0==(b=dG(jz(h,32)))?new X6(a,w):new lU(a,2,Pun(Gk(ANt,1),hQn,25,15,[w,b]))):npn(a<0?ibn(i,e):ibn(e,i));if(a==o)l=a,f=c>=u?N8(n.a,c,t.a,u):N8(t.a,u,n.a,c);else{if(0==(r=c!=u?c>u?1:-1:Msn(n.a,t.a,c)))return ODn(),eet;1==r?(l=a,f=d6(n.a,c,t.a,u)):(l=o,f=d6(t.a,u,n.a,c))}return X0(s=new lU(l,f.length,f)),s}function LHn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w;return l=qy(TD(mMn(t,(HXn(),Ogt)))),b=null,a==(ain(),Hvt)&&r.c.i==i?b=r.c:a==qvt&&r.d.i==i&&(b=r.d),(h=u)&&l&&!b?(WB(h.e,r),w=e.Math.max(Gy(MD(mMn(h.d,agt))),Gy(MD(mMn(r,agt)))),hon(h.d,agt,w)):(kUn(),f=PIt,b?f=b.j:vA(BB(mMn(i,ept),98))&&(f=a==Hvt?CIt:oIt),s=xHn(n,t,i,a,f,r),o=W5((vW(i),r)),a==Hvt?(SZ(o,BB(xq(s.j,0),11)),MZ(o,c)):(SZ(o,c),MZ(o,BB(xq(s.j,0),11))),h=new zfn(r,o,s,BB(mMn(s,(hWn(),dlt)),11),a,!b)),JIn(n.a,r,new L_(h.d,t,a)),h}function NHn(n,t){var e,i,r,c,a,u,o,s,h,f;if(h=null,n.d&&(h=BB(SJ(n.d,t),138)),!h){if(f=(c=n.a.Mh()).i,!n.d||NT(n.d)!=f){for(o=new xp,n.d&&Tcn(o,n.d),u=s=o.f.c+o.g.c;u<f;++u)i=BB(Wtn(c,u),138),(e=BB(null==(r=Cfn(n.e,i).ne())?jCn(o.f,null,i):ubn(o.g,r,i),138))&&e!=i&&(null==r?jCn(o.f,null,e):ubn(o.g,r,e));if(o.f.c+o.g.c!=f)for(a=0;a<s;++a)i=BB(Wtn(c,a),138),(e=BB(null==(r=Cfn(n.e,i).ne())?jCn(o.f,null,i):ubn(o.g,r,i),138))&&e!=i&&(null==r?jCn(o.f,null,e):ubn(o.g,r,e));n.d=o}h=BB(SJ(n.d,t),138)}return h}function xHn(n,t,e,i,r,c){var a,u,o,s,h,f;return a=null,s=i==(ain(),Hvt)?c.c:c.d,o=Wln(t),s.i==e?(a=BB(RX(n.b,s),10))||(hon(a=bXn(s,BB(mMn(e,(HXn(),ept)),98),r,HKn(s),null,s.n,s.o,o,t),(hWn(),dlt),s),VW(n.b,s,a)):(u=AEn(a=bXn((h=new Zn,f=Gy(MD(mMn(t,(HXn(),ypt))))/2,son(h,tpt,f),h),BB(mMn(e,ept),98),r,i==Hvt?-1:1,null,new Gj,new xC(0,0),o,t),e,i),hon(a,(hWn(),dlt),u),VW(n.b,u,a)),BB(mMn(t,(hWn(),Zft)),21).Fc((bDn(),lft)),vA(BB(mMn(t,(HXn(),ept)),98))?hon(t,ept,(QEn(),VCt)):hon(t,ept,(QEn(),QCt)),a}function DHn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d;OTn(t,"Orthogonal edge routing",1),s=Gy(MD(mMn(n,(HXn(),Apt)))),e=Gy(MD(mMn(n,kpt))),i=Gy(MD(mMn(n,Tpt))),l=new fX(0,e),d=0,a=new M2(n.b,0),u=null,h=null,o=null,f=null;do{f=(h=a.b<a.d.gc()?(Px(a.b<a.d.gc()),BB(a.d.Xb(a.c=a.b++),29)):null)?h.a:null,u&&(Tqn(u,d),d+=u.c.a),w=AGn(l,n,o,f,u?d+i:d),r=!u||VI(o,(dxn(),jyt)),c=!h||VI(f,(dxn(),jyt)),w>0?(b=(w-1)*e,u&&(b+=i),h&&(b+=i),b<s&&!r&&!c&&(b=s),d+=b):!r&&!c&&(d+=s),u=h,o=f}while(h);n.f.a=d,HSn(t)}function RHn(){var n;RHn=O,EAt=new Sm,kAt=x8(Qtt,sVn,2,0,6,1),SAt=i0(Bun(33,58),Bun(1,26)),PAt=i0(Bun(97,122),Bun(65,90)),CAt=Bun(48,57),TAt=i0(SAt,0),MAt=i0(PAt,CAt),IAt=i0(i0(0,Bun(1,6)),Bun(33,38)),OAt=i0(i0(CAt,Bun(65,70)),Bun(97,102)),xAt=i0(TAt,dpn("-_.!~*'()")),DAt=i0(MAt,Xwn("-_.!~*'()")),dpn(u9n),Xwn(u9n),i0(xAt,dpn(";:@&=+$,")),i0(DAt,Xwn(";:@&=+$,")),AAt=dpn(":/?#"),$At=Xwn(":/?#"),LAt=dpn("/?#"),NAt=Xwn("/?#"),(n=new Rv).a.zc("jar",n),n.a.zc("zip",n),n.a.zc("archive",n),SQ(),jAt=new Ak(n)}function KHn(n,t){var e,i,r,c,a;if(hon(t,(qqn(),okt),0),r=BB(mMn(t,akt),86),0==t.d.b)r?(a=Gy(MD(mMn(r,fkt)))+n.a+E5(r,t),hon(t,fkt,a)):hon(t,fkt,0);else{for(e=new wg(spn(new bg(t).a.d,0));EE(e.a);)KHn(n,BB(b3(e.a),188).c);i=BB(iL(new wg(spn(new bg(t).a.d,0))),86),c=(Gy(MD(mMn(BB(TN(new wg(spn(new bg(t).a.d,0))),86),fkt)))+Gy(MD(mMn(i,fkt))))/2,r?(a=Gy(MD(mMn(r,fkt)))+n.a+E5(r,t),hon(t,fkt,a),hon(t,okt,Gy(MD(mMn(t,fkt)))-c),IGn(n,t)):hon(t,fkt,c)}}function _Hn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;u=0,b=0,o=TJ(n.f,n.f.length),c=n.d,a=n.i,i=n.a,r=n.b;do{for(l=0,s=new Wb(n.p);s.a<s.c.c.length;)f=OGn(n,BB(n0(s),10)),e=!0,(n.q==(sNn(),Tvt)||n.q==Pvt)&&(e=qy(TD(f.b))),BB(f.a,19).a<0&&e?(++l,o=TJ(n.f,n.f.length),n.d=n.d+BB(f.a,19).a,b+=c-n.d,c=n.d+BB(f.a,19).a,a=n.i,i=a0(n.a),r=a0(n.b)):(n.f=TJ(o,o.length),n.d=c,n.a=(yX(i),i?new t_(i):HB(new Wb(i))),n.b=(yX(r),r?new t_(r):HB(new Wb(r))),n.i=a);++u,h=0!=l&&qy(TD(t.Kb(new rI(iln(b),iln(u)))))}while(h)}function FHn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;return a=n.f,l=t.f,u=a==(YLn(),xEt)||a==REt,o=a==DEt||a==KEt,b=l==DEt||l==KEt,s=a==DEt||a==xEt,w=l==DEt||l==xEt,!u||l!=xEt&&l!=REt?o&&b?n.f==KEt?n:t:s&&w?(a==DEt?(f=n,h=t):(f=t,h=n),d=i.j+i.f,g=f.e+r.f,p=e.Math.max(d,g)-e.Math.min(i.j,f.e),c=(f.d+r.g-i.i)*p,v=i.i+i.g,m=h.d+r.g,c<=(e.Math.max(v,m)-e.Math.min(i.i,h.d))*(h.e+r.f-i.j)?n.f==DEt?n:t:n.f==xEt?n:t):n:n.f==REt?n:t}function BHn(n){var t,e,i,r,c,a,u,o,s,h;for(s=n.e.a.c.length,c=new Wb(n.e.a);c.a<c.c.c.length;)BB(n0(c),121).j=!1;for(n.i=x8(ANt,hQn,25,s,15,1),n.g=x8(ANt,hQn,25,s,15,1),n.n=new Np,r=0,h=new Np,u=new Wb(n.e.a);u.a<u.c.c.length;)(a=BB(n0(u),121)).d=r++,0==a.b.a.c.length&&WB(n.n,a),gun(h,a.g);for(t=0,i=new Wb(h);i.a<i.c.c.length;)(e=BB(n0(i),213)).c=t++,e.f=!1;o=h.c.length,null==n.b||n.b.length<o?(n.b=x8(xNt,qQn,25,o,15,1),n.c=x8($Nt,ZYn,25,o,16,1)):nk(n.c),n.d=h,n.p=new LN(etn(n.d.c.length)),n.j=1}function HHn(n,t){var e,i,r,c,a,u,o,s,h;if(!(t.e.c.length<=1)){for(n.f=t,n.d=BB(mMn(n.f,(rkn(),vat)),379),n.g=BB(mMn(n.f,jat),19).a,n.e=Gy(MD(mMn(n.f,mat))),n.c=Gy(MD(mMn(n.f,pat))),cX(n.b),r=new Wb(n.f.c);r.a<r.c.c.length;)i=BB(n0(r),282),yKn(n.b,i.c,i,null),yKn(n.b,i.d,i,null);for(u=n.f.e.c.length,n.a=kq(xNt,[sVn,qQn],[104,25],15,[u,u],2),s=new Wb(n.f.e);s.a<s.c.c.length;)CBn(n,o=BB(n0(s),144),n.a[o.b]);for(n.i=kq(xNt,[sVn,qQn],[104,25],15,[u,u],2),c=0;c<u;++c)for(a=0;a<u;++a)h=1/((e=n.a[c][a])*e),n.i[c][a]=h}}function qHn(n){var t,e,i,r;if(!(null==n.b||n.b.length<=2||n.a)){for(t=0,r=0;r<n.b.length;){for(t!=r?(n.b[t]=n.b[r++],n.b[t+1]=n.b[r++]):r+=2,e=n.b[t+1];r<n.b.length&&!(e+1<n.b[r]);)if(e+1==n.b[r])n.b[t+1]=n.b[r+1],e=n.b[t+1],r+=2;else if(e>=n.b[r+1])r+=2;else{if(!(e<n.b[r+1]))throw Hp(new dy("Token#compactRanges(): Internel Error: ["+n.b[t]+","+n.b[t+1]+"] ["+n.b[r]+","+n.b[r+1]+"]"));n.b[t+1]=n.b[r+1],e=n.b[t+1],r+=2}t+=2}t!=n.b.length&&(i=x8(ANt,hQn,25,t,15,1),aHn(n.b,0,i,0,t),n.b=i),n.a=!0}}function GHn(n,t){var e,i,r,c,a,u,o;for(a=gz(n.a).Kc();a.Ob();){if((c=BB(a.Pb(),17)).b.c.length>0)for(i=new t_(BB(h6(n.a,c),21)),SQ(),m$(i,new _w(t)),r=new M2(c.b,0);r.b<r.d.gc();){switch(Px(r.b<r.d.gc()),e=BB(r.d.Xb(r.c=r.b++),70),u=-1,BB(mMn(e,(HXn(),Ydt)),272).g){case 1:u=i.c.length-1;break;case 0:u=Jjn(i);break;case 2:u=0}-1!=u&&(l1(u,i.c.length),WB((o=BB(i.c[u],243)).b.b,e),BB(mMn(vW(o.b.c.i),(hWn(),Zft)),21).Fc((bDn(),fft)),BB(mMn(vW(o.b.c.i),Zft),21).Fc(sft),fW(r),hon(e,vlt,c))}SZ(c,null),MZ(c,null)}}function zHn(n,t){var e,i,r,c;return e=new _n,1==(r=2==(r=(i=BB(P4($V(new Rq(null,new w1(n.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Xet),Uet]))),21)).gc())?1:0)&&QI(ldn(BB(P4(AV(i.Lc(),new Fn),Wcn(jgn(0),new en)),162).a,2),0)&&(r=0),1==(c=2==(c=(i=BB(P4($V(new Rq(null,new w1(t.f,16)),e),x7(new Q,new Y,new cn,new an,Pun(Gk(nit,1),$Vn,132,0,[Xet,Uet]))),21)).gc())?1:0)&&QI(ldn(BB(P4(AV(i.Lc(),new Bn),Wcn(jgn(0),new en)),162).a,2),0)&&(c=0),r<c?-1:r==c?0:1}function UHn(n){var t,e,i,r,c,a,u,o,s,h,f;if(o=new Np,!Lx(n,(hWn(),Wft)))return o;for(i=BB(mMn(n,Wft),15).Kc();i.Ob();)dqn(t=BB(i.Pb(),10),n),o.c[o.c.length]=t;for(r=new Wb(n.b);r.a<r.c.c.length;)for(a=new Wb(BB(n0(r),29).a);a.a<a.c.c.length;)(c=BB(n0(a),10)).k==(uSn(),Mut)&&(u=BB(mMn(c,Vft),10))&&(CZ(s=new CSn,c),qCn(s,BB(mMn(c,Qft),61)),h=BB(xq(u.j,0),11),SZ(f=new wY,s),MZ(f,h));for(e=new Wb(o);e.a<e.c.c.length;)PZ(t=BB(n0(e),10),BB(xq(n.b,n.b.c.length-1),29));return o}function XHn(n){var t,e,i,r,c,a,u,o,s,h,f,l;for(c=qy(TD(ZAn(t=WJ(n),(HXn(),wgt)))),h=0,r=0,s=new AL((!n.e&&(n.e=new hK(_Ot,n,7,4)),n.e));s.e!=s.i.gc();)a=(u=QIn(o=BB(kpn(s),79)))&&c&&qy(TD(ZAn(o,dgt))),l=PTn(BB(Wtn((!o.c&&(o.c=new hK(KOt,o,5,8)),o.c),0),82)),u&&a?++r:u&&!a?++h:JJ(l)==t||l==t?++r:++h;for(i=new AL((!n.d&&(n.d=new hK(_Ot,n,8,5)),n.d));i.e!=i.i.gc();)a=(u=QIn(e=BB(kpn(i),79)))&&c&&qy(TD(ZAn(e,dgt))),f=PTn(BB(Wtn((!e.b&&(e.b=new hK(KOt,e,4,7)),e.b),0),82)),u&&a?++h:u&&!a?++r:JJ(f)==t||f==t?++h:++r;return h-r}function WHn(n,t){var e,i,r,c,a,u,o,s,h;if(OTn(t,"Edge splitting",1),n.b.c.length<=2)HSn(t);else{for(Px((c=new M2(n.b,0)).b<c.d.gc()),a=BB(c.d.Xb(c.c=c.b++),29);c.b<c.d.gc();)for(r=a,Px(c.b<c.d.gc()),a=BB(c.d.Xb(c.c=c.b++),29),u=new Wb(r.a);u.a<u.c.c.length;)for(o=new Wb(BB(n0(u),10).j);o.a<o.c.c.length;)for(i=new Wb(BB(n0(o),11).g);i.a<i.c.c.length;)(s=(e=BB(n0(i),17)).d.i.c)!=r&&s!=a&&zxn(e,(Bl(h=new $vn(n),(uSn(),Put)),hon(h,(hWn(),dlt),e),hon(h,(HXn(),ept),(QEn(),XCt)),PZ(h,a),h));HSn(t)}}function VHn(n,t){var e,i,r,c,a,u,o,s,h;if((a=null!=t.p&&!t.b)||OTn(t,aZn,1),c=1/(e=BB(mMn(n,(hWn(),Mlt)),15)).gc(),t.n)for(OH(t,"ELK Layered uses the following "+e.gc()+" modules:"),h=0,s=e.Kc();s.Ob();)OH(t," Slot "+(h<10?"0":"")+h+++": "+nE(tsn(BB(s.Pb(),51))));for(o=e.Kc();o.Ob();)BB(o.Pb(),51).pf(n,mcn(t,c));for(r=new Wb(n.b);r.a<r.c.c.length;)i=BB(n0(r),29),gun(n.a,i.a),i.a.c=x8(Ant,HWn,1,0,5,1);for(u=new Wb(n.a);u.a<u.c.c.length;)PZ(BB(n0(u),10),null);n.b.c=x8(Ant,HWn,1,0,5,1),a||HSn(t)}function QHn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;r=Gy(MD(mMn(t,(HXn(),Dgt)))),l=4,c=3,j=20/(k=BB(mMn(t,xpt),19).a),b=!1,s=0,u=DWn;do{for(a=1!=s,f=0!=s,E=0,v=0,y=(g=n.a).length;v<y;++v)(w=g[v]).f=null,Bzn(n,w,a,f,r),E+=e.Math.abs(w.a);do{o=U_n(n,t)}while(o);for(p=0,m=(d=n.a).length;p<m;++p)if(0!=(i=wU(w=d[p]).a))for(h=new Wb(w.e);h.a<h.c.c.length;)BB(n0(h),10).n.b+=i;0==s||1==s?--l<=0&&(E<u||-l>k)?(s=2,u=DWn):0==s?(s=1,u=E):(s=0,u=E):(b=E>=u||u-E<j,u=E,b&&--c)}while(!(b&&c<=0))}function YHn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(w=new xp,c=n.a.ec().Kc();c.Ob();)VW(w,i=BB(c.Pb(),168),e.Je(i));for(yX(n),m$(a=n?new t_(n):HB(n.a.ec().Kc()),new Ew(w)),u=S4(a),o=new C$(t),jCn((b=new xp).f,t,o);0!=u.a.gc();){for(s=null,h=null,f=null,r=u.a.ec().Kc();r.Ob();)if(i=BB(r.Pb(),168),Gy(MD(qI(AY(w.f,i))))<=RQn){if(hU(b,i.a)&&!hU(b,i.b)){h=i.b,f=i.a,s=i;break}if(hU(b,i.b)&&!hU(b,i.a)){h=i.a,f=i.b,s=i;break}}if(!s)break;l=new C$(h),WB(BB(qI(AY(b.f,f)),221).a,l),jCn(b.f,h,l),u.a.Bc(s)}return o}function JHn(n,t,e){var i,r,c,a,u,o,s,h;for(OTn(e,"Depth-first cycle removal",1),o=(s=t.a).c.length,n.c=new Np,n.d=x8($Nt,ZYn,25,o,16,1),n.a=x8($Nt,ZYn,25,o,16,1),n.b=new Np,c=0,u=new Wb(s);u.a<u.c.c.length;)(a=BB(n0(u),10)).p=c,h3(fbn(a))&&WB(n.c,a),++c;for(h=new Wb(n.c);h.a<h.c.c.length;)GPn(n,BB(n0(h),10));for(r=0;r<o;r++)n.d[r]||(l1(r,s.c.length),GPn(n,BB(s.c[r],10)));for(i=new Wb(n.b);i.a<i.c.c.length;)tBn(BB(n0(i),17),!0),hon(t,(hWn(),qft),(hN(),!0));n.c=null,n.d=null,n.a=null,n.b=null,HSn(e)}function ZHn(n,t){var e,i,r,c,a,u,o;for(n.a.c=x8(Ant,HWn,1,0,5,1),i=spn(t.b,0);i.b!=i.d.c;)0==(e=BB(b3(i),86)).b.b&&(hon(e,(qqn(),dkt),(hN(),!0)),WB(n.a,e));switch(n.a.c.length){case 0:hon(r=new csn(0,t,"DUMMY_ROOT"),(qqn(),dkt),(hN(),!0)),hon(r,ekt,!0),DH(t.b,r);break;case 1:break;default:for(c=new csn(0,t,"SUPER_ROOT"),u=new Wb(n.a);u.a<u.c.c.length;)hon(o=new UQ(c,a=BB(n0(u),86)),(qqn(),ekt),(hN(),!0)),DH(c.a.a,o),DH(c.d,o),DH(a.b,o),hon(a,dkt,!1);hon(c,(qqn(),dkt),(hN(),!0)),hon(c,ekt,!0),DH(t.b,c)}}function nqn(n,t){var i,r,c,a,u,o;return jDn(),a=t.c-(n.c+n.b),c=n.c-(t.c+t.b),u=n.d-(t.d+t.a),i=t.d-(n.d+n.a),r=e.Math.max(c,a),o=e.Math.max(u,i),h$(),rin(A3n),(e.Math.abs(r)<=A3n||0==r||isNaN(r)&&isNaN(0)?0:r<0?-1:r>0?1:zO(isNaN(r),isNaN(0)))>=0^(rin(A3n),(e.Math.abs(o)<=A3n||0==o||isNaN(o)&&isNaN(0)?0:o<0?-1:o>0?1:zO(isNaN(o),isNaN(0)))>=0)?e.Math.max(o,r):(rin(A3n),(e.Math.abs(r)<=A3n||0==r||isNaN(r)&&isNaN(0)?0:r<0?-1:r>0?1:zO(isNaN(r),isNaN(0)))>0?e.Math.sqrt(o*o+r*r):-e.Math.sqrt(o*o+r*r))}function tqn(n,t){var e,i,r,c,a;if(t)if(!n.a&&(n.a=new _v),2!=n.e)if(1!=t.e)0!=(a=n.a.a.c.length)?0!=(c=BB(bW(n.a,a-1),117)).e&&10!=c.e||0!=t.e&&10!=t.e?Cv(n.a,t):(0==t.e||t.bm().length,0==c.e?(e=new Pk,(i=c._l())>=BQn?cO(e,Xln(i)):NX(e,i&QVn),c=new vJ(10,null,0),kU(n.a,c,a-1)):(c.bm().length,cO(e=new Pk,c.bm())),0==t.e?(i=t._l())>=BQn?cO(e,Xln(i)):NX(e,i&QVn):cO(e,t.bm()),BB(c,521).b=e.a):Cv(n.a,t);else for(r=0;r<t.em();r++)tqn(n,t.am(r));else Cv(n.a,t)}function eqn(n){var t,e,i,r,c;return null!=n.g?n.g:n.a<32?(n.g=DUn(fan(n.f),CJ(n.e)),n.g):(r=qXn((!n.c&&(n.c=yhn(n.f)),n.c),0),0==n.e?r:(t=(!n.c&&(n.c=yhn(n.f)),n.c).e<0?2:1,e=r.length,i=-n.e+e-t,(c=new Ck).a+=""+r,n.e>0&&i>=-6?i>=0?kZ(c,e-CJ(n.e),String.fromCharCode(46)):(c.a=fx(c.a,0,t-1)+"0."+nO(c.a,t-1),kZ(c,t+1,Bdn(qtt,0,-CJ(i)-1))):(e-t>=1&&(kZ(c,t,String.fromCharCode(46)),++e),kZ(c,e,String.fromCharCode(69)),i>0&&kZ(c,++e,String.fromCharCode(43)),kZ(c,++e,""+vz(fan(i)))),n.g=c.a,n.g))}function iqn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(!e.dc()){for(a=0,h=0,l=BB((i=e.Kc()).Pb(),19).a;a<t.f;){if(a==l&&(h=0,l=i.Ob()?BB(i.Pb(),19).a:t.f+1),a!=h)for(b=BB(xq(n.b,a),29),f=BB(xq(n.b,h),29),s=new Wb(a0(b.a));s.a<s.c.c.length;)if(Qyn(o=BB(n0(s),10),f.a.c.length,f),0==h)for(c=new Wb(a0(fbn(o)));c.a<c.c.c.length;)tBn(r=BB(n0(c),17),!0),hon(n,(hWn(),qft),(hN(),!0)),iGn(n,r,1);++h,++a}for(u=new M2(n.b,0);u.b<u.d.gc();)Px(u.b<u.d.gc()),0==BB(u.d.Xb(u.c=u.b++),29).a.c.length&&fW(u)}}function rqn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(h=(a=t.b).o,o=a.d,i=Gy(MD(gpn(a,(HXn(),ypt)))),r=Gy(MD(gpn(a,jpt))),s=Gy(MD(gpn(a,$pt))),rH(u=new fm,o.d,o.c,o.a,o.b),l=MRn(t,i,r,s),p=new Wb(t.d);p.a<p.c.c.length;){for(w=(g=BB(n0(p),101)).f.a.ec().Kc();w.Ob();)c=(b=BB(w.Pb(),409)).a,f=ETn(b),v=new km,bTn(b,b.c,l,v),FMn(b,f,l,v),bTn(b,b.d,l,v),e=v,e=n.Uf(b,f,e),yQ(c.a),Frn(c.a,e),JT(new Rq(null,new w1(e,16)),new wP(h,u));(d=g.i)&&(aTn(g,d,l,r),pgn(h,u,m=new wA(d.g)),UR(m,d.j),pgn(h,u,m))}rH(o,u.d,u.c,u.a,u.b)}function cqn(n,t,e){var i,r,c;if((r=BB(mMn(t,(HXn(),Pdt)),275))!=(JMn(),cft)){switch(OTn(e,"Horizontal Compaction",1),n.a=t,Vk(i=new yOn(((c=new I7).d=t,c.c=BB(mMn(c.d,Zdt),218),UDn(c),SGn(c),sRn(c),c.a)),n.b),1===BB(mMn(t,Sdt),422).g?Wk(i,new grn(n.a)):Wk(i,(CQ(),fit)),r.g){case 1:C$n(i);break;case 2:C$n(Tzn(i,(Ffn(),FPt)));break;case 3:C$n(Uk(Tzn(C$n(i),(Ffn(),FPt)),new gr));break;case 4:C$n(Uk(Tzn(C$n(i),(Ffn(),FPt)),new kd(c)));break;case 5:C$n(Xk(i,wst))}Tzn(i,(Ffn(),_Pt)),i.e=!0,Lzn(c),HSn(e)}}function aqn(n,t,e,i,r,c,a,u){var o,s,h,f;switch(o=u6(Pun(Gk(FEt,1),HWn,220,0,[t,e,i,r])),f=null,n.b.g){case 1:f=u6(Pun(Gk(tEt,1),HWn,526,0,[new Ja,new Qa,new Ya]));break;case 0:f=u6(Pun(Gk(tEt,1),HWn,526,0,[new Ya,new Qa,new Ja]));break;case 2:f=u6(Pun(Gk(tEt,1),HWn,526,0,[new Qa,new Ja,new Ya]))}for(h=new Wb(f);h.a<h.c.c.length;)s=BB(n0(h),526),o.c.length>1&&(o=s.mg(o,n.a,u));return 1==o.c.length?BB(xq(o,o.c.length-1),220):2==o.c.length?FHn((l1(0,o.c.length),BB(o.c[0],220)),(l1(1,o.c.length),BB(o.c[1],220)),a,c):null}function uqn(n){var t,i,r,c,a,u;for(Otn(n.a,new nt),i=new Wb(n.a);i.a<i.c.c.length;)t=BB(n0(i),221),r=XR(B$(BB(n.b,65).c),BB(t.b,65).c),ect?(u=BB(n.b,65).b,a=BB(t.b,65).b,e.Math.abs(r.a)>=e.Math.abs(r.b)?(r.b=0,a.d+a.a>u.d&&a.d<u.d+u.a&&NH(r,e.Math.max(u.c-(a.c+a.b),a.c-(u.c+u.b)))):(r.a=0,a.c+a.b>u.c&&a.c<u.c+u.b&&NH(r,e.Math.max(u.d-(a.d+a.a),a.d-(u.d+u.a))))):NH(r,TFn(BB(n.b,65),BB(t.b,65))),c=e.Math.sqrt(r.a*r.a+r.b*r.b),NH(r,c=HEn(Wrt,t,c,r)),LG(BB(t.b,65),r),Otn(t.a,new Aw(r)),BB(Wrt.b,65),K8(Wrt,Vrt,t)}function oqn(n){var t,i,r,c,a,u,o,s,f,l,b,w;for(n.f=new Fv,o=0,r=0,c=new Wb(n.e.b);c.a<c.c.c.length;)for(u=new Wb(BB(n0(c),29).a);u.a<u.c.c.length;){for((a=BB(n0(u),10)).p=o++,i=new oz(ZL(lbn(a).a.Kc(),new h));dAn(i);)BB(U5(i),17).p=r++;for(t=AHn(a),l=new Wb(a.j);l.a<l.c.c.length;)f=BB(n0(l),11),t&&(w=f.a.b)!=e.Math.floor(w)&&(s=w-j2(fan(e.Math.round(w))),f.a.b-=s),(b=f.n.b+f.a.b)!=e.Math.floor(b)&&(s=b-j2(fan(e.Math.round(b))),f.n.b-=s)}n.g=o,n.b=r,n.i=x8(eyt,HWn,401,o,0,1),n.c=x8(Jmt,HWn,649,r,0,1),n.d.a.$b()}function sqn(n){var t,e,i,r,c,a,u,o,s;if(n.ej())if(o=n.fj(),n.i>0){if(t=new DI(n.i,n.g),c=(e=n.i)<100?null:new Fj(e),n.ij())for(i=0;i<n.i;++i)a=n.g[i],c=n.kj(a,c);if(a6(n),r=1==e?n.Zi(4,Wtn(t,0),null,0,o):n.Zi(6,t,null,-1,o),n.bj()){for(i=new ax(t);i.e!=i.i.gc();)c=n.dj(jpn(i),c);c?(c.Ei(r),c.Fi()):n.$i(r)}else c?(c.Ei(r),c.Fi()):n.$i(r)}else a6(n),n.$i(n.Zi(6,(SQ(),set),null,-1,o));else if(n.bj())if(n.i>0){for(u=n.g,s=n.i,a6(n),c=s<100?null:new Fj(s),i=0;i<s;++i)a=u[i],c=n.dj(a,c);c&&c.Fi()}else a6(n);else a6(n)}function hqn(n,t,i){var r,c,a,u,o,s,h,f,l;for(_an(this),i==(dJ(),Lyt)?TU(this.r,n):TU(this.w,n),f=RQn,h=KQn,u=t.a.ec().Kc();u.Ob();)c=BB(u.Pb(),46),o=BB(c.a,455),(s=(r=BB(c.b,17)).c)==n&&(s=r.d),TU(o==Lyt?this.r:this.w,s),l=(kUn(),yIt).Hc(s.j)?Gy(MD(mMn(s,(hWn(),Llt)))):Aon(Pun(Gk(PMt,1),sVn,8,0,[s.i.n,s.n,s.a])).b,f=e.Math.min(f,l),h=e.Math.max(h,l);for(XMn(this,(kUn(),yIt).Hc(n.j)?Gy(MD(mMn(n,(hWn(),Llt)))):Aon(Pun(Gk(PMt,1),sVn,8,0,[n.i.n,n.n,n.a])).b,f,h),a=t.a.ec().Kc();a.Ob();)c=BB(a.Pb(),46),tPn(this,BB(c.b,17));this.o=!1}function fqn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;return e=8191&n.l,i=n.l>>13|(15&n.m)<<9,r=n.m>>4&8191,c=n.m>>17|(255&n.h)<<5,a=(1048320&n.h)>>8,g=i*(u=8191&t.l),p=r*u,v=c*u,m=a*u,0!=(o=t.l>>13|(15&t.m)<<9)&&(g+=e*o,p+=i*o,v+=r*o,m+=c*o),0!=(s=t.m>>4&8191)&&(p+=e*s,v+=i*s,m+=r*s),0!=(h=t.m>>17|(255&t.h)<<5)&&(v+=e*h,m+=i*h),0!=(f=(1048320&t.h)>>8)&&(m+=e*f),b=((d=e*u)>>22)+(g>>9)+((262143&p)<<4)+((31&v)<<17),w=(p>>18)+(v>>5)+((4095&m)<<8),w+=(b+=(l=(d&SQn)+((511&g)<<13))>>22)>>22,M$(l&=SQn,b&=SQn,w&=PQn)}function lqn(n){var t,i,r,c,a,u,o;if(0!=(o=BB(xq(n.j,0),11)).g.c.length&&0!=o.e.c.length)throw Hp(new Fy("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));if(0!=o.g.c.length){for(a=RQn,i=new Wb(o.g);i.a<i.c.c.length;)t=BB(n0(i),17),r=BB(mMn(u=t.d.i,(HXn(),Cgt)),142),a=e.Math.min(a,u.n.a-r.b);return new qf(yX(a))}if(0!=o.e.c.length){for(c=KQn,i=new Wb(o.e);i.a<i.c.c.length;)t=BB(n0(i),17),r=BB(mMn(u=t.c.i,(HXn(),Cgt)),142),c=e.Math.max(c,u.n.a+u.o.a+r.c);return new qf(yX(c))}return iy(),iy(),Ont}function bqn(n,t){var e,i,r,c,a,u;if(n.Fk()){if(n.i>4){if(!n.wj(t))return!1;if(n.rk()){if(u=(e=(i=BB(t,49)).Ug())==n.e&&(n.Dk()?i.Og(i.Vg(),n.zk())==n.Ak():-1-i.Vg()==n.aj()),n.Ek()&&!u&&!e&&i.Zg())for(r=0;r<n.i;++r)if(GI(n.Gk(BB(n.g[r],56)))===GI(t))return!0;return u}if(n.Dk()&&!n.Ck()){if(GI(c=BB(t,56).ah(Cvn(BB(n.ak(),18))))===GI(n.e))return!0;if(null==c||!BB(c,56).kh())return!1}}if(a=Sjn(n,t),n.Ek()&&!a)for(r=0;r<n.i;++r)if(GI(i=n.Gk(BB(n.g[r],56)))===GI(t))return!0;return a}return Sjn(n,t)}function wqn(n,t){var e,i,r,c,a,u,o,s,h,f,l;for(h=new Np,l=new Rv,a=t.b,r=0;r<a.c.length;r++){for(s=(l1(r,a.c.length),BB(a.c[r],29)).a,h.c=x8(Ant,HWn,1,0,5,1),c=0;c<s.c.length;c++)(u=n.a[r][c]).p=c,u.k==(uSn(),Iut)&&(h.c[h.c.length]=u),c5(BB(xq(t.b,r),29).a,c,u),u.j.c=x8(Ant,HWn,1,0,5,1),gun(u.j,BB(BB(xq(n.b,r),15).Xb(c),14)),LK(BB(mMn(u,(HXn(),ept)),98))||hon(u,ept,(QEn(),UCt));for(i=new Wb(h);i.a<i.c.c.length;)f=QRn(e=BB(n0(i),10)),l.a.zc(f,l),l.a.zc(e,l)}for(o=l.a.ec().Kc();o.Ob();)u=BB(o.Pb(),10),SQ(),m$(u.j,(zsn(),sst)),u.i=!0,eIn(u)}function dqn(n,t){var e,i,r,c,a,u,o,s,h,f;if(h=BB(mMn(n,(hWn(),Qft)),61),i=BB(xq(n.j,0),11),h==(kUn(),sIt)?qCn(i,SIt):h==SIt&&qCn(i,sIt),BB(mMn(t,(HXn(),Fgt)),174).Hc((mdn(),_It))){if(o=Gy(MD(mMn(n,Cpt))),s=Gy(MD(mMn(n,Ipt))),a=Gy(MD(mMn(n,Spt))),(u=BB(mMn(t,cpt),21)).Hc((lIn(),eIt)))for(e=s,f=n.o.a/2-i.n.a,c=new Wb(i.f);c.a<c.c.c.length;)(r=BB(n0(c),70)).n.b=e,r.n.a=f-r.o.a/2,e+=r.o.b+a;else if(u.Hc(rIt))for(c=new Wb(i.f);c.a<c.c.c.length;)(r=BB(n0(c),70)).n.a=o+n.o.a-i.n.a;f0(new Pw((gM(),new HV(t,!1,!1,new Ft))),new __(null,n,!1))}}function gqn(n,t){var i,r,c,a,u,o,s;if(0!=t.c.length){for(SQ(),yG(t.c,t.c.length,null),r=BB(n0(c=new Wb(t)),145);c.a<c.c.c.length;)i=BB(n0(c),145),!aen(r.e.c,i.e.c)||Kdn(BD(r.e).b,i.e.d)||Kdn(BD(i.e).b,r.e.d)?(eFn(n,r),r=i):(gun(r.k,i.k),gun(r.b,i.b),gun(r.c,i.c),Frn(r.i,i.i),gun(r.d,i.d),gun(r.j,i.j),a=e.Math.min(r.e.c,i.e.c),u=e.Math.min(r.e.d,i.e.d),o=e.Math.max(r.e.c+r.e.b,i.e.c+i.e.b)-a,s=e.Math.max(r.e.d+r.e.a,i.e.d+i.e.a)-u,xH(r.e,a,u,o,s),t0(r.f,i.f),!r.a&&(r.a=i.a),gun(r.g,i.g),WB(r.g,i));eFn(n,r)}}function pqn(n,t,e,i){var r,c,a,u,o,s;if((u=n.j)==(kUn(),PIt)&&t!=(QEn(),QCt)&&t!=(QEn(),YCt)&&(qCn(n,u=z_n(n,e)),!(n.q?n.q:(SQ(),SQ(),het))._b((HXn(),tpt))&&u!=PIt&&(0!=n.n.a||0!=n.n.b)&&hon(n,tpt,jkn(n,u))),t==(QEn(),WCt)){switch(s=0,u.g){case 1:case 3:(c=n.i.o.a)>0&&(s=n.n.a/c);break;case 2:case 4:(r=n.i.o.b)>0&&(s=n.n.b/r)}hon(n,(hWn(),Tlt),s)}if(o=n.o,a=n.a,i)a.a=i.a,a.b=i.b,n.d=!0;else if(t!=QCt&&t!=YCt&&u!=PIt)switch(u.g){case 1:a.a=o.a/2;break;case 2:a.a=o.a,a.b=o.b/2;break;case 3:a.a=o.a/2,a.b=o.b;break;case 4:a.b=o.b/2}else a.a=o.a/2,a.b=o.b/2}function vqn(n){var t,e,i,r,c,a,u,o,s,h;if(n.ej())if(h=n.Vi(),o=n.fj(),h>0)if(t=new jcn(n.Gi()),c=(e=h)<100?null:new Fj(e),JD(n,e,t.g),r=1==e?n.Zi(4,Wtn(t,0),null,0,o):n.Zi(6,t,null,-1,o),n.bj()){for(i=new AL(t);i.e!=i.i.gc();)c=n.dj(kpn(i),c);c?(c.Ei(r),c.Fi()):n.$i(r)}else c?(c.Ei(r),c.Fi()):n.$i(r);else JD(n,n.Vi(),n.Wi()),n.$i(n.Zi(6,(SQ(),set),null,-1,o));else if(n.bj())if((h=n.Vi())>0){for(u=n.Wi(),s=h,JD(n,h,u),c=s<100?null:new Fj(s),i=0;i<s;++i)a=u[i],c=n.dj(a,c);c&&c.Fi()}else JD(n,n.Vi(),n.Wi());else JD(n,n.Vi(),n.Wi())}function mqn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;for(u=new Wb(t);u.a<u.c.c.length;)(c=BB(n0(u),233)).e=null,c.c=0;for(o=null,a=new Wb(t);a.a<a.c.c.length;)if(f=(c=BB(n0(a),233)).d[0],!e||f.k==(uSn(),Cut)){for(b=BB(mMn(f,(hWn(),clt)),15).Kc();b.Ob();)l=BB(b.Pb(),10),e&&l.k!=(uSn(),Cut)||((!c.e&&(c.e=new Np),c.e).Fc(n.b[l.c.p][l.p]),++n.b[l.c.p][l.p].c);if(!e&&f.k==(uSn(),Cut)){if(o)for(h=BB(h6(n.d,o),21).Kc();h.Ob();)for(s=BB(h.Pb(),10),r=BB(h6(n.d,f),21).Kc();r.Ob();)i=BB(r.Pb(),10),UB(n.b[s.c.p][s.p]).Fc(n.b[i.c.p][i.p]),++n.b[i.c.p][i.p].c;o=f}}}function yqn(n,t){var e,i,r,c,a,u,o;for(e=0,o=new Np,c=new Wb(t);c.a<c.c.c.length;){switch(r=BB(n0(c),11),nhn(n.b,n.d[r.p]),o.c=x8(Ant,HWn,1,0,5,1),r.i.k.g){case 0:Otn(BB(mMn(r,(hWn(),Elt)),10).j,new Zd(o));break;case 1:S$(Qon(AV(new Rq(null,new w1(r.i.j,16)),new ng(r))),new tg(o));break;case 3:WB(o,new rI(BB(mMn(r,(hWn(),dlt)),11),iln(r.e.c.length+r.g.c.length)))}for(u=new Wb(o);u.a<u.c.c.length;)a=BB(n0(u),46),(i=ME(n,BB(a.a,11)))>n.d[r.p]&&(e+=n5(n.b,i)*BB(a.b,19).a,d3(n.a,iln(i)));for(;!Wy(n.a);)Mnn(n.b,BB(dU(n.a),19).a)}return e}function kqn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w;for((f=new wA(BB(ZAn(n,(SMn(),HMt)),8))).a=e.Math.max(f.a-i.b-i.c,0),f.b=e.Math.max(f.b-i.d-i.a,0),(null==(c=MD(ZAn(n,DMt)))||(kW(c),c<=0))&&(c=1.3),u=new Np,l=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));l.e!=l.i.gc();)a=new zx(BB(kpn(l),33)),u.c[u.c.length]=a;switch(BB(ZAn(n,RMt),311).g){case 3:w=aFn(u,t,f.a,f.b,(s=r,kW(c),s));break;case 1:w=vBn(u,t,f.a,f.b,(h=r,kW(c),h));break;default:w=Mqn(u,t,f.a,f.b,(o=r,kW(c),o))}KUn(n,(b=yXn(new Gtn(w),t,i,f.a,f.b,r,(kW(c),c))).a,b.b,!1,!0)}function jqn(n,t){var e,i,r,c;c=new t_((e=t.b).j),r=0,(i=e.j).c=x8(Ant,HWn,1,0,5,1),eX(BB(gan(n.b,(kUn(),sIt),(Crn(),Rst)),15),e),r=Jmn(c,r,new xr,i),eX(BB(gan(n.b,sIt,Dst),15),e),r=Jmn(c,r,new Nr,i),eX(BB(gan(n.b,sIt,xst),15),e),eX(BB(gan(n.b,oIt,Rst),15),e),eX(BB(gan(n.b,oIt,Dst),15),e),r=Jmn(c,r,new Dr,i),eX(BB(gan(n.b,oIt,xst),15),e),eX(BB(gan(n.b,SIt,Rst),15),e),r=Jmn(c,r,new Rr,i),eX(BB(gan(n.b,SIt,Dst),15),e),r=Jmn(c,r,new Kr,i),eX(BB(gan(n.b,SIt,xst),15),e),eX(BB(gan(n.b,CIt,Rst),15),e),r=Jmn(c,r,new Qr,i),eX(BB(gan(n.b,CIt,Dst),15),e),eX(BB(gan(n.b,CIt,xst),15),e)}function Eqn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(OTn(t,"Layer size calculation",1),f=RQn,h=KQn,c=!1,o=new Wb(n.b);o.a<o.c.c.length;)if((s=(u=BB(n0(o),29)).c).a=0,s.b=0,0!=u.a.c.length){for(c=!0,b=new Wb(u.a);b.a<b.c.c.length;)d=(l=BB(n0(b),10)).o,w=l.d,s.a=e.Math.max(s.a,d.a+w.b+w.c);g=(r=BB(xq(u.a,0),10)).n.b-r.d.d,r.k==(uSn(),Mut)&&(g-=BB(mMn(n,(HXn(),Lpt)),142).d),i=(a=BB(xq(u.a,u.a.c.length-1),10)).n.b+a.o.b+a.d.a,a.k==Mut&&(i+=BB(mMn(n,(HXn(),Lpt)),142).a),s.b=i-g,f=e.Math.min(f,g),h=e.Math.max(h,i)}c||(f=0,h=0),n.f.b=h-f,n.c.b-=f,HSn(t)}function Tqn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(c=0,a=0,s=new Wb(n.a);s.a<s.c.c.length;)u=BB(n0(s),10),c=e.Math.max(c,u.d.b),a=e.Math.max(a,u.d.c);for(o=new Wb(n.a);o.a<o.c.c.length;){switch(u=BB(n0(o),10),BB(mMn(u,(HXn(),kdt)),248).g){case 1:w=0;break;case 2:w=1;break;case 5:w=.5;break;default:for(i=0,f=0,b=new Wb(u.j);b.a<b.c.c.length;)0==(l=BB(n0(b),11)).e.c.length||++i,0==l.g.c.length||++f;w=i+f==0?.5:f/(i+f)}g=n.c,h=u.o.a,p=(g.a-h)*w,w>.5?p-=2*a*(w-.5):w<.5&&(p+=2*c*(.5-w)),p<(r=u.d.b)&&(p=r),d=u.d.c,p>g.a-d-h&&(p=g.a-d-h),u.n.a=t+p}}function Mqn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b;for(u=x8(xNt,qQn,25,n.c.length,15,1),ikn(l=new Xz(new Uu),n),s=0,b=new Np;0!=l.b.c.length;)if(a=BB(0==l.b.c.length?null:xq(l.b,0),157),s>1&&iG(a)*eG(a)/2>u[0]){for(c=0;c<b.c.length-1&&iG(a)*eG(a)/2>u[c];)++c;f=new Gtn(new s1(b,0,c+1)),h=iG(a)/eG(a),o=yXn(f,t,new bm,e,i,r,h),UR(kO(f.e),o),F8(eMn(l,f)),ikn(l,new s1(b,c+1,b.c.length)),b.c=x8(Ant,HWn,1,0,5,1),s=0,jG(u,u.length,0)}else null!=(0==l.b.c.length?null:xq(l.b,0))&&hrn(l,0),s>0&&(u[s]=u[s-1]),u[s]+=iG(a)*eG(a),++s,b.c[b.c.length]=a;return b}function Sqn(n){var t,e,i;if((e=BB(mMn(n,(HXn(),kgt)),163))==(Tbn(),Flt)){for(t=new oz(ZL(fbn(n).a.Kc(),new h));dAn(t);)if(!X5(BB(U5(t),17)))throw Hp(new rk(P1n+gyn(n)+"' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."))}else if(e==Hlt)for(i=new oz(ZL(lbn(n).a.Kc(),new h));dAn(i);)if(!X5(BB(U5(i),17)))throw Hp(new rk(P1n+gyn(n)+"' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."))}function Pqn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;for(OTn(t,"Label dummy removal",1),i=Gy(MD(mMn(n,(HXn(),jpt)))),r=Gy(MD(mMn(n,Spt))),o=BB(mMn(n,Udt),103),u=new Wb(n.b);u.a<u.c.c.length;)for(h=new M2(BB(n0(u),29).a,0);h.b<h.d.gc();)Px(h.b<h.d.gc()),(s=BB(h.d.Xb(h.c=h.b++),10)).k==(uSn(),Sut)&&(f=BB(mMn(s,(hWn(),dlt)),17),b=Gy(MD(mMn(f,agt))),a=GI(mMn(s,ult))===GI((Xyn(),ECt)),e=new wA(s.n),a&&(e.b+=b+i),c=new xC(s.o.a,s.o.b-b-i),l=BB(mMn(s,Plt),15),o==(Ffn(),HPt)||o==KPt?ADn(l,e,r,c,a,o):qhn(l,e,r,c),gun(f.b,l),rGn(s,GI(mMn(n,Zdt))===GI((Mbn(),YPt))),fW(h));HSn(t)}function Cqn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;for(u=new Np,r=new Wb(t.a);r.a<r.c.c.length;)for(a=new Wb(BB(n0(r),10).j);a.a<a.c.c.length;){for(s=null,m=0,y=(v=Z0((c=BB(n0(a),11)).g)).length;m<y;++m)wan((p=v[m]).d.i,e)||((g=LHn(n,t,e,p,p.c,(ain(),qvt),s))!=s&&(u.c[u.c.length]=g),g.c&&(s=g));for(o=null,w=0,d=(b=Z0(c.e)).length;w<d;++w)wan((l=b[w]).c.i,e)||((g=LHn(n,t,e,l,l.d,(ain(),Hvt),o))!=o&&(u.c[u.c.length]=g),g.c&&(o=g))}for(f=new Wb(u);f.a<f.c.c.length;)h=BB(n0(f),441),-1!=E7(t.a,h.a,0)||WB(t.a,h.a),h.c&&(i.c[i.c.length]=h)}function Iqn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(OTn(e,"Interactive cycle breaking",1),h=new Np,l=new Wb(t.a);l.a<l.c.c.length;)for((f=BB(n0(l),10)).p=1,b=Fjn(f).a,s=xwn(f,(ain(),qvt)).Kc();s.Ob();)for(c=new Wb(BB(s.Pb(),11).g);c.a<c.c.c.length;)(w=(i=BB(n0(c),17)).d.i)!=f&&Fjn(w).a<b&&(h.c[h.c.length]=i);for(a=new Wb(h);a.a<a.c.c.length;)tBn(i=BB(n0(a),17),!0);for(h.c=x8(Ant,HWn,1,0,5,1),o=new Wb(t.a);o.a<o.c.c.length;)(u=BB(n0(o),10)).p>0&&lPn(n,u,h);for(r=new Wb(h);r.a<r.c.c.length;)tBn(i=BB(n0(r),17),!0);h.c=x8(Ant,HWn,1,0,5,1),HSn(e)}function Oqn(n,t){var e,i,r,c,a,u,o,s,h;return s="",0==t.length?n.de(XVn,zVn,-1,-1):(mK((h=RMn(t)).substr(0,3),"at ")&&(h=h.substr(3)),-1==(a=(h=h.replace(/\[.*?\]/g,"")).indexOf("("))?-1==(a=h.indexOf("@"))?(s=h,h=""):(s=RMn(h.substr(a+1)),h=RMn(h.substr(0,a))):(e=h.indexOf(")",a),s=h.substr(a+1,e-(a+1)),h=RMn(h.substr(0,a))),-1!=(a=GO(h,YTn(46)))&&(h=h.substr(a+1)),(0==h.length||mK(h,"Anonymous function"))&&(h=zVn),u=mN(s,YTn(58)),r=MK(s,YTn(58),u-1),o=-1,i=-1,c=XVn,-1!=u&&-1!=r&&(c=s.substr(0,r),o=hx(s.substr(r+1,u-(r+1))),i=hx(s.substr(u+1))),n.de(c,h,o,i))}function Aqn(n,t,e){var i,r,c,a,u,o;if(0==t.l&&0==t.m&&0==t.h)throw Hp(new Oy("divide by zero"));if(0==n.l&&0==n.m&&0==n.h)return e&&(ltt=M$(0,0,0)),M$(0,0,0);if(t.h==CQn&&0==t.m&&0==t.l)return Fbn(n,e);if(o=!1,t.h>>19!=0&&(t=aon(t),o=!o),a=OLn(t),c=!1,r=!1,i=!1,n.h==CQn&&0==n.m&&0==n.l){if(r=!0,c=!0,-1!=a)return u=jAn(n,a),o&&Oon(u),e&&(ltt=M$(0,0,0)),u;n=WO((X7(),btt)),i=!0,o=!o}else n.h>>19!=0&&(c=!0,n=aon(n),i=!0,o=!o);return-1!=a?Bon(n,a,o,c,e):Kkn(n,t)<0?(e&&(ltt=c?aon(n):M$(n.l,n.m,n.h)),M$(0,0,0)):h_n(i?n:M$(n.l,n.m,n.h),t,o,c,r,e)}function $qn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;if(n.e&&n.c.c<n.f)throw Hp(new Fy("Expected "+n.f+" phases to be configured; only found "+n.c.c));for(h=BB(Vj(n.g),9),b=sx(n.f),u=0,s=(c=h).length;u<s;++u)(f=BB(D7(n,(i=c[u]).g),246))?WB(b,BB(own(n,f),123)):b.c[b.c.length]=null;for(w=new B2,JT(AV($V(AV(new Rq(null,new w1(b,16)),new hu),new Eg(t)),new fu),new Tg(w)),Jcn(w,n.a),e=new Np,a=0,o=(r=h).length;a<o;++a)gun(e,Eun(n,JQ(BB(D7(w,(i=r[a]).g),20)))),(l=BB(xq(b,i.g),123))&&(e.c[e.c.length]=l);return gun(e,Eun(n,JQ(BB(D7(w,h[h.length-1].g+1),20)))),e}function Lqn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w;for(OTn(i,"Model order cycle breaking",1),n.a=0,n.b=0,l=new Np,h=t.a.c.length,s=new Wb(t.a);s.a<s.c.c.length;)Lx(o=BB(n0(s),10),(hWn(),wlt))&&(h=e.Math.max(h,BB(mMn(o,wlt),19).a+1));for(w=new Wb(t.a);w.a<w.c.c.length;)for(u=zPn(n,b=BB(n0(w),10),h),f=xwn(b,(ain(),qvt)).Kc();f.Ob();)for(a=new Wb(BB(f.Pb(),11).g);a.a<a.c.c.length;)zPn(n,(r=BB(n0(a),17)).d.i,h)<u&&(l.c[l.c.length]=r);for(c=new Wb(l);c.a<c.c.c.length;)tBn(r=BB(n0(c),17),!0),hon(t,(hWn(),qft),(hN(),!0));l.c=x8(Ant,HWn,1,0,5,1),HSn(i)}function Nqn(n,t){var e,i,r,c,a,u,o;if(!(n.g>t.f||t.g>n.f)){for(e=0,i=0,a=n.w.a.ec().Kc();a.Ob();)r=BB(a.Pb(),11),phn(Aon(Pun(Gk(PMt,1),sVn,8,0,[r.i.n,r.n,r.a])).b,t.g,t.f)&&++e;for(u=n.r.a.ec().Kc();u.Ob();)r=BB(u.Pb(),11),phn(Aon(Pun(Gk(PMt,1),sVn,8,0,[r.i.n,r.n,r.a])).b,t.g,t.f)&&--e;for(o=t.w.a.ec().Kc();o.Ob();)r=BB(o.Pb(),11),phn(Aon(Pun(Gk(PMt,1),sVn,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&++i;for(c=t.r.a.ec().Kc();c.Ob();)r=BB(c.Pb(),11),phn(Aon(Pun(Gk(PMt,1),sVn,8,0,[r.i.n,r.n,r.a])).b,n.g,n.f)&&--i;e<i?new S6(n,t,i-e):i<e?new S6(t,n,e-i):(new S6(t,n,0),new S6(n,t,0))}}function xqn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(s=t.c,r=QA(n.e),f=kL(Bx(B$(VA(n.e)),n.d*n.a,n.c*n.b),-.5),e=r.a-f.a,i=r.b-f.b,e=(a=t.a).c-e,i=a.d-i,o=new Wb(s);o.a<o.c.c.length;){switch(b=e+(l=(u=BB(n0(o),395)).b).a,g=i+l.b,w=CJ(b/n.a),p=CJ(g/n.b),(c=u.a).g){case 0:Hpn(),h=Brt;break;case 1:Hpn(),h=Frt;break;case 2:Hpn(),h=Hrt;break;default:Hpn(),h=qrt}c.a?(v=CJ((g+u.c)/n.b),WB(n.f,new x_(h,iln(p),iln(v))),c==(qpn(),tct)?won(n,0,p,w,v):won(n,w,p,n.d-1,v)):(d=CJ((b+u.c)/n.a),WB(n.f,new x_(h,iln(w),iln(d))),c==(qpn(),Zrt)?won(n,w,0,d,p):won(n,w,p,d,n.c-1))}}function Dqn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;for(l=new Np,c=new Np,d=null,u=t.Kc();u.Ob();)a=new Hd(BB(u.Pb(),19).a),c.c[c.c.length]=a,d&&(a.d=d,d.e=a),d=a;for(m=zFn(n),h=0;h<c.c.length;++h){for(b=null,g=D6((l1(0,c.c.length),BB(c.c[0],652))),i=null,r=RQn,f=1;f<n.b.c.length;++f)p=g?e.Math.abs(g.b-f):e.Math.abs(f-b.b)+1,(w=b?e.Math.abs(f-b.b):p+1)<p?(s=b,o=w):(s=g,o=p),y=Gy(MD(mMn(n,(HXn(),Hpt)))),(v=m[f]+e.Math.pow(o,y))<r&&(r=v,(i=s).c=f),g&&f==g.b&&(b=g,g=xz(g));i&&(WB(l,iln(i.c)),i.a=!0,vln(i))}return SQ(),yG(l.c,l.c.length,null),l}function Rqn(n){var t,e,i,r,c,a,u,o,s,h;for(t=new To,e=new To,s=mK(K9n,(r=N_n(n.b,_9n))?SD(cdn((!r.b&&(r.b=new Jx((gWn(),k$t),X$t,r)),r.b),F9n)):null),o=0;o<n.i;++o)cL(u=BB(n.g[o],170),99)?0!=((a=BB(u,18)).Bb&h6n)?(0==(a.Bb&hVn)||!s&&null==((c=N_n(a,_9n))?SD(cdn((!c.b&&(c.b=new Jx((gWn(),k$t),X$t,c)),c.b),n8n)):null))&&f9(t,a):(h=Cvn(a))&&0!=(h.Bb&h6n)||(0==(a.Bb&hVn)||!s&&null==((i=N_n(a,_9n))?SD(cdn((!i.b&&(i.b=new Jx((gWn(),k$t),X$t,i)),i.b),n8n)):null))&&f9(e,a):(ZM(),BB(u,66).Oj()&&(u.Jj()||(f9(t,u),f9(e,u))));chn(t),chn(e),n.a=BB(t.g,247),BB(e.g,247)}function Kqn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;for(o=xSn(t),BB(mMn(t,(HXn(),qdt)),314)!=(Oin(),hht)&&e5(o,new vt),e5(o,new Dw(BB(mMn(t,Rdt),292))),b=0,s=new Np,r=new bV(o);r.a!=r.b;)i=BB(_hn(r),37),$Gn(n.c,i),b+=(f=BB(mMn(i,(hWn(),Mlt)),15)).gc(),WB(s,new rI(i,f.Kc()));for(OTn(e,"Recursive hierarchical layout",b),l=BB(BB(xq(s,s.c.length-1),46).b,47);l.Ob();)for(u=new Wb(s);u.a<u.c.c.length;)for(a=BB(n0(u),46),f=BB(a.b,47),c=BB(a.a,37);f.Ob();){if(cL(h=BB(f.Pb(),51),507)){if(c.e)break;h.pf(c,mcn(e,1));break}h.pf(c,mcn(e,1))}HSn(e)}function _qn(n,t){var e,i,r,c,a,u,o,s;if(b1(u=t.length-1,t.length),93==(a=t.charCodeAt(u))){if((c=GO(t,YTn(91)))>=0)return r=dbn(n,t.substr(1,c-1)),YUn(n,t.substr(c+1,u-(c+1)),r)}else{if(e=-1,null==Ett&&(Ett=new RegExp("\\d")),Ett.test(String.fromCharCode(a))&&(e=MK(t,YTn(46),u-1))>=0){i=BB(V5(n,Ptn(n,t.substr(1,e-1)),!1),58),o=0;try{o=l_n(t.substr(e+1),_Vn,DWn)}catch(h){throw cL(h=lun(h),127)?Hp(new L7(h)):Hp(h)}if(o<i.gc())return cL(s=i.Xb(o),72)&&(s=BB(s,72).dd()),BB(s,56)}if(e<0)return BB(V5(n,Ptn(n,t.substr(1)),!1),56)}return null}function Fqn(n,t,e){var i,r,c,a,u,o,s;if(Awn(t,e)>=0)return e;switch(DW(B7(n,e))){case 2:if(mK("",Cfn(n,e.Hj()).ne())){if(o=m$n(n,t,u=jV(B7(n,e)),kV(B7(n,e))))return o;for(a=0,s=(r=jKn(n,t)).gc();a<s;++a)if(aNn(OU(B7(n,o=BB(r.Xb(a),170))),u))return o}return null;case 4:if(mK("",Cfn(n,e.Hj()).ne())){for(i=e;i;i=J1(B7(n,i)))if(o=y$n(n,t,jV(B7(n,i)),kV(B7(n,i))))return o;if(u=jV(B7(n,e)),mK(S7n,u))return mjn(n,t);for(a=0,s=(c=EKn(n,t)).gc();a<s;++a)if(aNn(OU(B7(n,o=BB(c.Xb(a),170))),u))return o}return null;default:return null}}function Bqn(n,t,e){var i,r,c,a,u,o,s,h;if(0==e.gc())return!1;if(ZM(),c=(u=BB(t,66).Oj())?e:new gtn(e.gc()),$xn(n.e,t)){if(t.hi())for(s=e.Kc();s.Ob();)UFn(n,t,o=s.Pb(),cL(t,99)&&0!=(BB(t,18).Bb&BQn))||(r=Z3(t,o),c.Hc(r)||c.Fc(r));else if(!u)for(s=e.Kc();s.Ob();)r=Z3(t,o=s.Pb()),c.Fc(r)}else{if(e.gc()>1)throw Hp(new _y(I7n));for(h=axn(n.e.Tg(),t),i=BB(n.g,119),a=0;a<n.i;++a)if(r=i[a],h.rl(r.ak())){if(e.Hc(u?r:r.dd()))return!1;for(s=e.Kc();s.Ob();)o=s.Pb(),BB(ovn(n,a,u?BB(o,72):Z3(t,o)),72);return!0}u||(r=Z3(t,e.Kc().Pb()),c.Fc(r))}return pX(n,c)}function Hqn(n,t){var i,r,c,a,u,o,s;for(s=new YT,o=new Kb(new Ob(n.c).a.vc().Kc());o.a.Ob();)c=BB(o.a.Pb(),42),0==(a=BB(c.dd(),458)).b&&r5(s,a,s.c.b,s.c);for(;0!=s.b;)for(null==(a=BB(0==s.b?null:(Px(0!=s.b),Atn(s,s.a.a)),458)).a&&(a.a=0),r=new Wb(a.d);r.a<r.c.c.length;)null==(i=BB(n0(r),654)).b.a?i.b.a=Gy(a.a)+i.a:t.o==(oZ(),ryt)?i.b.a=e.Math.min(Gy(i.b.a),Gy(a.a)+i.a):i.b.a=e.Math.max(Gy(i.b.a),Gy(a.a)+i.a),--i.b.b,0==i.b.b&&DH(s,i.b);for(u=new Kb(new Ob(n.c).a.vc().Kc());u.a.Ob();)c=BB(u.a.Pb(),42),a=BB(c.dd(),458),t.i[a.c.p]=a.a}function qqn(){qqn=O,skt=new up(OZn),new up(AZn),new iR("DEPTH",iln(0)),ikt=new iR("FAN",iln(0)),tkt=new iR(U3n,iln(0)),dkt=new iR("ROOT",(hN(),!1)),ckt=new iR("LEFTNEIGHBOR",null),bkt=new iR("RIGHTNEIGHBOR",null),akt=new iR("LEFTSIBLING",null),wkt=new iR("RIGHTSIBLING",null),ekt=new iR("DUMMY",!1),new iR("LEVEL",iln(0)),lkt=new iR("REMOVABLE_EDGES",new YT),gkt=new iR("XCOOR",iln(0)),pkt=new iR("YCOOR",iln(0)),ukt=new iR("LEVELHEIGHT",0),rkt=new iR("ID",""),hkt=new iR("POSITION",iln(0)),fkt=new iR("PRELIM",0),okt=new iR("MODIFIER",0),nkt=new up($Zn),Zyt=new up(LZn)}function Gqn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w;for(f=i+t.c.c.a,w=new Wb(t.j);w.a<w.c.c.length;){if(b=BB(n0(w),11),c=Aon(Pun(Gk(PMt,1),sVn,8,0,[b.i.n,b.n,b.a])),t.k==(uSn(),Iut)&&(o=BB(mMn(b,(hWn(),dlt)),11),c.a=Aon(Pun(Gk(PMt,1),sVn,8,0,[o.i.n,o.n,o.a])).a,t.n.a=c.a),u=new xC(0,c.b),b.j==(kUn(),oIt))u.a=f;else{if(b.j!=CIt)continue;u.a=i}if(!(e.Math.abs(c.a-u.a)<=r)||Nkn(t))for(a=b.g.c.length+b.e.c.length>1,h=new m6(b.b);y$(h.a)||y$(h.b);)l=(s=BB(y$(h.a)?n0(h.a):n0(h.b),17)).c==b?s.d:s.c,e.Math.abs(Aon(Pun(Gk(PMt,1),sVn,8,0,[l.i.n,l.n,l.a])).b-u.b)>1&&pxn(n,s,u,a,b)}}function zqn(n){var t,i,r,c,a,u;if(c=new M2(n.e,0),r=new M2(n.a,0),n.d)for(i=0;i<n.b;i++)Px(c.b<c.d.gc()),c.d.Xb(c.c=c.b++);else for(i=0;i<n.b-1;i++)Px(c.b<c.d.gc()),c.d.Xb(c.c=c.b++),fW(c);for(t=Gy((Px(c.b<c.d.gc()),MD(c.d.Xb(c.c=c.b++))));n.f-t>D3n;){for(a=t,u=0;e.Math.abs(t-a)<D3n;)++u,t=Gy((Px(c.b<c.d.gc()),MD(c.d.Xb(c.c=c.b++)))),Px(r.b<r.d.gc()),r.d.Xb(r.c=r.b++);u<n.b&&(Px(c.b>0),c.a.Xb(c.c=--c.b),DFn(n,n.b-u,a,r,c),Px(c.b<c.d.gc()),c.d.Xb(c.c=c.b++)),Px(r.b>0),r.a.Xb(r.c=--r.b)}if(!n.d)for(i=0;i<n.b-1;i++)Px(c.b<c.d.gc()),c.d.Xb(c.c=c.b++),fW(c);n.d=!0,n.c=!0}function Uqn(){Uqn=O,pLt=(cE(),gLt).b,yLt=BB(Wtn(QQ(gLt.b),0),34),vLt=BB(Wtn(QQ(gLt.b),1),34),mLt=BB(Wtn(QQ(gLt.b),2),34),OLt=gLt.bb,BB(Wtn(QQ(gLt.bb),0),34),BB(Wtn(QQ(gLt.bb),1),34),$Lt=gLt.fb,LLt=BB(Wtn(QQ(gLt.fb),0),34),BB(Wtn(QQ(gLt.fb),1),34),BB(Wtn(QQ(gLt.fb),2),18),xLt=gLt.qb,KLt=BB(Wtn(QQ(gLt.qb),0),34),BB(Wtn(QQ(gLt.qb),1),18),BB(Wtn(QQ(gLt.qb),2),18),DLt=BB(Wtn(QQ(gLt.qb),3),34),RLt=BB(Wtn(QQ(gLt.qb),4),34),FLt=BB(Wtn(QQ(gLt.qb),6),34),_Lt=BB(Wtn(QQ(gLt.qb),5),18),kLt=gLt.j,jLt=gLt.k,ELt=gLt.q,TLt=gLt.w,MLt=gLt.B,SLt=gLt.A,PLt=gLt.C,CLt=gLt.D,ILt=gLt._,ALt=gLt.cb,NLt=gLt.hb}function Xqn(n,t,i){var r,c,a,u,o,s,h,f,l;n.c=0,n.b=0,r=2*t.c.a.c.length+1;n:for(h=i.Kc();h.Ob();){if(l=0,u=(s=BB(h.Pb(),11)).j==(kUn(),sIt)||s.j==SIt){if(!(f=BB(mMn(s,(hWn(),Elt)),10)))continue;l+=iRn(n,r,s,f)}else{for(o=new Wb(s.g);o.a<o.c.c.length;){if((c=BB(n0(o),17).d).i.c==t.c){WB(n.a,s);continue n}l+=n.g[c.p]}for(a=new Wb(s.e);a.a<a.c.c.length;){if((c=BB(n0(a),17).c).i.c==t.c){WB(n.a,s);continue n}l-=n.g[c.p]}}s.e.c.length+s.g.c.length>0?(n.f[s.p]=l/(s.e.c.length+s.g.c.length),n.c=e.Math.min(n.c,n.f[s.p]),n.b=e.Math.max(n.b,n.f[s.p])):u&&(n.f[s.p]=l)}}function Wqn(n){n.b=null,n.bb=null,n.fb=null,n.qb=null,n.a=null,n.c=null,n.d=null,n.e=null,n.f=null,n.n=null,n.M=null,n.L=null,n.Q=null,n.R=null,n.K=null,n.db=null,n.eb=null,n.g=null,n.i=null,n.j=null,n.k=null,n.gb=null,n.o=null,n.p=null,n.q=null,n.r=null,n.$=null,n.ib=null,n.S=null,n.T=null,n.t=null,n.s=null,n.u=null,n.v=null,n.w=null,n.B=null,n.A=null,n.C=null,n.D=null,n.F=null,n.G=null,n.H=null,n.I=null,n.J=null,n.P=null,n.Z=null,n.U=null,n.V=null,n.W=null,n.X=null,n.Y=null,n._=null,n.ab=null,n.cb=null,n.hb=null,n.nb=null,n.lb=null,n.mb=null,n.ob=null,n.pb=null,n.jb=null,n.kb=null,n.N=!1,n.O=!1}function Vqn(n,t,e){var i,r;for(OTn(e,"Graph transformation ("+n.a+")",1),r=a0(t.a),i=new Wb(t.b);i.a<i.c.c.length;)gun(r,BB(n0(i),29).a);if(BB(mMn(t,(HXn(),Xdt)),419)==(_nn(),Sht))switch(BB(mMn(t,Udt),103).g){case 2:L2(t,r);break;case 3:bdn(t,r);break;case 4:n.a==(Srn(),qut)?(bdn(t,r),$2(t,r)):($2(t,r),bdn(t,r))}else if(n.a==(Srn(),qut))switch(BB(mMn(t,Udt),103).g){case 2:L2(t,r),$2(t,r);break;case 3:bdn(t,r),L2(t,r);break;case 4:L2(t,r),bdn(t,r)}else switch(BB(mMn(t,Udt),103).g){case 2:L2(t,r),$2(t,r);break;case 3:L2(t,r),bdn(t,r);break;case 4:bdn(t,r),L2(t,r)}HSn(e)}function Qqn(n,t,e){var i,r,c,a,u,o,s,f,l,b,w;for(o=new fA,s=new fA,b=new fA,w=new fA,u=Gy(MD(mMn(t,(HXn(),Opt)))),r=Gy(MD(mMn(t,ypt))),a=new Wb(e);a.a<a.c.c.length;)if(c=BB(n0(a),10),(f=BB(mMn(c,(hWn(),Qft)),61))==(kUn(),sIt))for(s.a.zc(c,s),i=new oz(ZL(fbn(c).a.Kc(),new h));dAn(i);)TU(o,BB(U5(i),17).c.i);else if(f==SIt)for(w.a.zc(c,w),i=new oz(ZL(fbn(c).a.Kc(),new h));dAn(i);)TU(b,BB(U5(i),17).c.i);0!=o.a.gc()&&(l=AGn(new fX(2,r),t,o,s,-u-t.c.b))>0&&(n.a=u+(l-1)*r,t.c.b+=n.a,t.f.b+=n.a),0!=b.a.gc()&&(l=AGn(new fX(1,r),t,b,w,t.f.b+u-t.c.b))>0&&(t.f.b+=u+(l-1)*r)}function Yqn(n,t){var e,i,r,c;c=n.F,null==t?(n.F=null,Dsn(n,null)):(n.F=(kW(t),t),-1!=(i=GO(t,YTn(60)))?(r=t.substr(0,i),-1==GO(t,YTn(46))&&!mK(r,$Wn)&&!mK(r,S9n)&&!mK(r,P9n)&&!mK(r,C9n)&&!mK(r,I9n)&&!mK(r,O9n)&&!mK(r,A9n)&&!mK(r,$9n)&&(r=L9n),-1!=(e=mN(t,YTn(62)))&&(r+=""+t.substr(e+1)),Dsn(n,r)):(r=t,-1==GO(t,YTn(46))&&(-1!=(i=GO(t,YTn(91)))&&(r=t.substr(0,i)),mK(r,$Wn)||mK(r,S9n)||mK(r,P9n)||mK(r,C9n)||mK(r,I9n)||mK(r,O9n)||mK(r,A9n)||mK(r,$9n)?r=t:(r=L9n,-1!=i&&(r+=""+t.substr(i)))),Dsn(n,r),r==t&&(n.F=n.D))),0!=(4&n.Db)&&0==(1&n.Db)&&ban(n,new nU(n,1,5,c,t))}function Jqn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;if(!((d=t.b.c.length)<3)){for(b=x8(ANt,hQn,25,d,15,1),f=0,h=new Wb(t.b);h.a<h.c.c.length;)s=BB(n0(h),29),b[f++]=s.a.c.length;for(l=new M2(t.b,2),i=1;i<d-1;i++)for(Px(l.b<l.d.gc()),w=new Wb((e=BB(l.d.Xb(l.c=l.b++),29)).a),c=0,u=0,o=0;o<b[i+1];o++)if(m=BB(n0(w),10),o==b[i+1]-1||YSn(n,m,i+1,i)){for(a=b[i]-1,YSn(n,m,i+1,i)&&(a=n.c.e[BB(BB(BB(xq(n.c.b,m.p),15).Xb(0),46).a,10).p]);u<=o;){if(!YSn(n,v=BB(xq(e.a,u),10),i+1,i))for(p=BB(xq(n.c.b,v.p),15).Kc();p.Ob();)g=BB(p.Pb(),46),((r=n.c.e[BB(g.a,10).p])<c||r>a)&&TU(n.b,BB(g.b,17));++u}c=a}}}function Zqn(n,t){var e;if(null==t||mK(t,zWn))return null;if(0==t.length&&n.k!=(PPn(),pMt))return null;switch(n.k.g){case 1:return mgn(t,a5n)?(hN(),vtt):mgn(t,u5n)?(hN(),ptt):null;case 2:try{return iln(l_n(t,_Vn,DWn))}catch(i){if(cL(i=lun(i),127))return null;throw Hp(i)}case 4:try{return bSn(t)}catch(i){if(cL(i=lun(i),127))return null;throw Hp(i)}case 3:return t;case 5:return rhn(n),HIn(n,t);case 6:return rhn(n),K$n(n,n.a,t);case 7:try{return(e=rAn(n)).Jf(t),e}catch(i){if(cL(i=lun(i),32))return null;throw Hp(i)}default:throw Hp(new Fy("Invalid type set for this layout option."))}}function nGn(n){var t,e,i,r,c,a,u;for(Dnn(),u=new Vv,e=new Wb(n);e.a<e.c.c.length;)t=BB(n0(e),140),(!u.b||t.c>=u.b.c)&&(u.b=t),(!u.c||t.c<=u.c.c)&&(u.d=u.c,u.c=t),(!u.e||t.d>=u.e.d)&&(u.e=t),(!u.f||t.d<=u.f.d)&&(u.f=t);return i=new Tpn((Aun(),Zat)),i2(n,out,new Jy(Pun(Gk(Jat,1),HWn,369,0,[i]))),a=new Tpn(eut),i2(n,uut,new Jy(Pun(Gk(Jat,1),HWn,369,0,[a]))),r=new Tpn(nut),i2(n,aut,new Jy(Pun(Gk(Jat,1),HWn,369,0,[r]))),c=new Tpn(tut),i2(n,cut,new Jy(Pun(Gk(Jat,1),HWn,369,0,[c]))),xLn(i.c,Zat),xLn(r.c,nut),xLn(c.c,tut),xLn(a.c,eut),u.a.c=x8(Ant,HWn,1,0,5,1),gun(u.a,i.c),gun(u.a,ean(r.c)),gun(u.a,c.c),gun(u.a,ean(a.c)),u}function tGn(n){var t;switch(n.d){case 1:if(n.hj())return-2!=n.o;break;case 2:if(n.hj())return-2==n.o;break;case 3:case 5:case 4:case 6:case 7:return n.o>-2;default:return!1}switch(t=n.gj(),n.p){case 0:return null!=t&&qy(TD(t))!=JI(n.k,0);case 1:return null!=t&&BB(t,217).a!=dG(n.k)<<24>>24;case 2:return null!=t&&BB(t,172).a!=(dG(n.k)&QVn);case 6:return null!=t&&JI(BB(t,162).a,n.k);case 5:return null!=t&&BB(t,19).a!=dG(n.k);case 7:return null!=t&&BB(t,184).a!=dG(n.k)<<16>>16;case 3:return null!=t&&Gy(MD(t))!=n.j;case 4:return null!=t&&BB(t,155).a!=n.j;default:return null==t?null!=n.n:!Nfn(t,n.n)}}function eGn(n,t,e){var i,r,c,a;return n.Fk()&&n.Ek()&&GI(a=Gz(n,BB(e,56)))!==GI(e)?(n.Oi(t),n.Ui(t,B9(n,t,a)),n.rk()&&(r=BB(e,49),c=n.Dk()?n.Bk()?r.ih(n.b,Cvn(BB(itn(jY(n.b),n.aj()),18)).n,BB(itn(jY(n.b),n.aj()).Yj(),26).Bj(),null):r.ih(n.b,Awn(r.Tg(),Cvn(BB(itn(jY(n.b),n.aj()),18))),null,null):r.ih(n.b,-1-n.aj(),null,null),!BB(a,49).eh()&&(i=BB(a,49),c=n.Dk()?n.Bk()?i.gh(n.b,Cvn(BB(itn(jY(n.b),n.aj()),18)).n,BB(itn(jY(n.b),n.aj()).Yj(),26).Bj(),c):i.gh(n.b,Awn(i.Tg(),Cvn(BB(itn(jY(n.b),n.aj()),18))),null,c):i.gh(n.b,-1-n.aj(),null,c)),c&&c.Fi()),mA(n.b)&&n.$i(n.Zi(9,e,a,t,!1)),a):e}function iGn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(f=Gy(MD(mMn(n,(HXn(),Ept)))),r=Gy(MD(mMn(n,Rpt))),hon(b=new Yu,Ept,f+r),v=(h=t).d,g=h.c.i,m=h.d.i,p=tA(g.c),y=tA(m.c),c=new Np,l=p;l<=y;l++)Bl(o=new $vn(n),(uSn(),Put)),hon(o,(hWn(),dlt),h),hon(o,ept,(QEn(),XCt)),hon(o,Mpt,b),w=BB(xq(n.b,l),29),l==p?Qyn(o,w.a.c.length-i,w):PZ(o,w),(k=Gy(MD(mMn(h,agt))))<0&&hon(h,agt,k=0),o.o.b=k,d=e.Math.floor(k/2),qCn(u=new CSn,(kUn(),CIt)),CZ(u,o),u.n.b=d,qCn(s=new CSn,oIt),CZ(s,o),s.n.b=d,MZ(h,u),qan(a=new wY,h),hon(a,vgt,null),SZ(a,s),MZ(a,v),zkn(o,h,a),c.c[c.c.length]=a,h=a;return c}function rGn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(u=BB(DSn(n,(kUn(),CIt)).Kc().Pb(),11).e,f=BB(DSn(n,oIt).Kc().Pb(),11).g,a=u.c.length,g=g1(BB(xq(n.j,0),11));a-- >0;){for(l1(0,u.c.length),b=BB(u.c[0],17),l1(0,f.c.length),r=E7((i=BB(f.c[0],17)).d.e,i,0),A2(b,i.d,r),SZ(i,null),MZ(i,null),l=b.a,t&&DH(l,new wA(g)),e=spn(i.a,0);e.b!=e.d.c;)DH(l,new wA(BB(b3(e),8)));for(d=b.b,h=new Wb(i.b);h.a<h.c.c.length;)s=BB(n0(h),70),d.c[d.c.length]=s;if(w=BB(mMn(b,(HXn(),vgt)),74),c=BB(mMn(i,vgt),74))for(w||(w=new km,hon(b,vgt,w)),o=spn(c,0);o.b!=o.d.c;)DH(w,new wA(BB(b3(o),8)))}}function cGn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w;if(i=BB(oV(n.b,t),124),(s=BB(BB(h6(n.r,t),21),84)).dc())return i.n.b=0,void(i.n.c=0);for(h=n.u.Hc((lIn(),eIt)),u=0,o=s.Kc(),f=null,l=0,b=0;o.Ob();)c=Gy(MD((r=BB(o.Pb(),111)).b.We((DN(),Lrt)))),a=r.b.rf().a,n.A.Hc((mdn(),_It))&&yRn(n,t),f?(w=b+f.d.c+n.w+r.d.b,u=e.Math.max(u,(h$(),rin(fJn),e.Math.abs(l-c)<=fJn||l==c||isNaN(l)&&isNaN(c)?0:w/(c-l)))):n.C&&n.C.b>0&&(u=e.Math.max(u,lcn(n.C.b+r.d.b,c))),f=r,l=c,b=a;n.C&&n.C.c>0&&(w=b+n.C.c,h&&(w+=f.d.c),u=e.Math.max(u,(h$(),rin(fJn),e.Math.abs(l-1)<=fJn||1==l||isNaN(l)&&isNaN(1)?0:w/(1-l)))),i.n.b=0,i.a.a=u}function aGn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w;if(i=BB(oV(n.b,t),124),(s=BB(BB(h6(n.r,t),21),84)).dc())return i.n.d=0,void(i.n.a=0);for(h=n.u.Hc((lIn(),eIt)),u=0,n.A.Hc((mdn(),_It))&&kRn(n,t),o=s.Kc(),f=null,b=0,l=0;o.Ob();)a=Gy(MD((r=BB(o.Pb(),111)).b.We((DN(),Lrt)))),c=r.b.rf().b,f?(w=l+f.d.a+n.w+r.d.d,u=e.Math.max(u,(h$(),rin(fJn),e.Math.abs(b-a)<=fJn||b==a||isNaN(b)&&isNaN(a)?0:w/(a-b)))):n.C&&n.C.d>0&&(u=e.Math.max(u,lcn(n.C.d+r.d.d,a))),f=r,b=a,l=c;n.C&&n.C.a>0&&(w=l+n.C.a,h&&(w+=f.d.a),u=e.Math.max(u,(h$(),rin(fJn),e.Math.abs(b-1)<=fJn||1==b||isNaN(b)&&isNaN(1)?0:w/(1-b)))),i.n.d=0,i.a.b=u}function uGn(n,t,e){var i,r,c,a,u,o;for(this.g=n,u=t.d.length,o=e.d.length,this.d=x8(Out,a1n,10,u+o,0,1),a=0;a<u;a++)this.d[a]=t.d[a];for(c=0;c<o;c++)this.d[u+c]=e.d[c];if(t.e){if(this.e=zB(t.e),this.e.Mc(e),e.e)for(r=e.e.Kc();r.Ob();)(i=BB(r.Pb(),233))!=t&&(this.e.Hc(i)?--i.c:this.e.Fc(i))}else e.e&&(this.e=zB(e.e),this.e.Mc(t));this.f=t.f+e.f,this.a=t.a+e.a,this.a>0?Jtn(this,this.f/this.a):null!=lL(t.g,t.d[0]).a&&null!=lL(e.g,e.d[0]).a?Jtn(this,(Gy(lL(t.g,t.d[0]).a)+Gy(lL(e.g,e.d[0]).a))/2):null!=lL(t.g,t.d[0]).a?Jtn(this,lL(t.g,t.d[0]).a):null!=lL(e.g,e.d[0]).a&&Jtn(this,lL(e.g,e.d[0]).a)}function oGn(n,t){var e,i,r,c,a,u,o,s,h;for(n.a=new BX($cn(WPt)),i=new Wb(t.a);i.a<i.c.c.length;){for(e=BB(n0(i),841),a=new Pgn(Pun(Gk(Qat,1),HWn,81,0,[])),WB(n.a.a,a),o=new Wb(e.d);o.a<o.c.c.length;)FGn(s=new NN(n,u=BB(n0(o),110)),BB(mMn(e.c,(hWn(),Xft)),21)),hU(n.g,e)||(VW(n.g,e,new xC(u.c,u.d)),VW(n.f,e,s)),WB(n.a.b,s),g2(a,s);for(c=new Wb(e.b);c.a<c.c.c.length;)s=new NN(n,(r=BB(n0(c),594)).kf()),VW(n.b,r,new rI(a,s)),FGn(s,BB(mMn(e.c,(hWn(),Xft)),21)),r.hf()&&(FGn(h=new Sgn(n,r.hf(),1),BB(mMn(e.c,Xft),21)),g2(new Pgn(Pun(Gk(Qat,1),HWn,81,0,[])),h),JIn(n.c,r.gf(),new rI(a,h)))}return n.a}function sGn(n){var t;this.a=n,t=(uSn(),Pun(Gk($ut,1),$Vn,267,0,[Cut,Put,Mut,Iut,Sut,Tut])).length,this.b=kq(lMt,[sVn,k3n],[593,146],0,[t,t],2),this.c=kq(lMt,[sVn,k3n],[593,146],0,[t,t],2),FY(this,Cut,(HXn(),Opt),Apt),tun(this,Cut,Put,Ept,Tpt),_Y(this,Cut,Iut,Ept),_Y(this,Cut,Mut,Ept),tun(this,Cut,Sut,Opt,Apt),FY(this,Put,ypt,kpt),_Y(this,Put,Iut,ypt),_Y(this,Put,Mut,ypt),tun(this,Put,Sut,Ept,Tpt),ZA(this,Iut,ypt),_Y(this,Iut,Mut,ypt),_Y(this,Iut,Sut,Ppt),ZA(this,Mut,Npt),tun(this,Mut,Sut,Ipt,Cpt),FY(this,Sut,ypt,ypt),FY(this,Tut,ypt,kpt),tun(this,Tut,Cut,Ept,Tpt),tun(this,Tut,Sut,Ept,Tpt),tun(this,Tut,Put,Ept,Tpt)}function hGn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;if(cL(a=e.ak(),99)&&0!=(BB(a,18).Bb&BQn)&&(l=BB(e.dd(),49),(d=tfn(n.e,l))!=l)){if(jL(n,t,sTn(n,t,h=Z3(a,d))),f=null,mA(n.e)&&(i=Fqn((IPn(),Z$t),n.e.Tg(),a))!=itn(n.e.Tg(),n.c)){for(g=axn(n.e.Tg(),a),u=0,c=BB(n.g,119),o=0;o<t;++o)r=c[o],g.rl(r.ak())&&++u;(f=new b4(n.e,9,i,l,d,u,!1)).Ei(new N7(n.e,9,n.c,e,h,t,!1))}return(b=Cvn(w=BB(a,18)))?(f=l.ih(n.e,Awn(l.Tg(),b),null,f),f=BB(d,49).gh(n.e,Awn(d.Tg(),b),null,f)):0!=(w.Bb&h6n)&&(s=-1-Awn(n.e.Tg(),w),f=l.ih(n.e,s,null,null),!BB(d,49).eh()&&(f=BB(d,49).gh(n.e,s,null,f))),f&&f.Fi(),h}return e}function fGn(n){var t,i,r,c,a,u,o,s;for(a=new Wb(n.a.b);a.a<a.c.c.length;)(c=BB(n0(a),81)).b.c=c.g.c,c.b.d=c.g.d;for(s=new xC(RQn,RQn),t=new xC(KQn,KQn),r=new Wb(n.a.b);r.a<r.c.c.length;)i=BB(n0(r),81),s.a=e.Math.min(s.a,i.g.c),s.b=e.Math.min(s.b,i.g.d),t.a=e.Math.max(t.a,i.g.c+i.g.b),t.b=e.Math.max(t.b,i.g.d+i.g.a);for(o=TX(n.c).a.nc();o.Ob();)u=BB(o.Pb(),46),i=BB(u.b,81),s.a=e.Math.min(s.a,i.g.c),s.b=e.Math.min(s.b,i.g.d),t.a=e.Math.max(t.a,i.g.c+i.g.b),t.b=e.Math.max(t.b,i.g.d+i.g.a);n.d=qx(new xC(s.a,s.b)),n.e=XR(new xC(t.a,t.b),s),n.a.a.c=x8(Ant,HWn,1,0,5,1),n.a.b.c=x8(Ant,HWn,1,0,5,1)}function lGn(n){var t,e,i;for(ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Nf])),e=new Tl(n),i=0;i<e.a.length;++i)mK(t=dnn(e,i).je().a,"layered")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new hf])):mK(t,"force")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new zh])):mK(t,"stress")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Xh])):mK(t,"mrtree")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Pf])):mK(t,"radial")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new yf])):mK(t,"disco")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Gh,new Hh])):mK(t,"sporeOverlap")||mK(t,"sporeCompaction")?ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Tf])):mK(t,"rectpacking")&&ksn(lAt,Pun(Gk(_it,1),HWn,130,0,[new Of]))}function bGn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;if(l=new wA(n.o),p=t.a/l.a,u=t.b/l.b,d=t.a-l.a,c=t.b-l.b,e)for(r=GI(mMn(n,(HXn(),ept)))===GI((QEn(),XCt)),w=new Wb(n.j);w.a<w.c.c.length;)switch((b=BB(n0(w),11)).j.g){case 1:r||(b.n.a*=p);break;case 2:b.n.a+=d,r||(b.n.b*=u);break;case 3:r||(b.n.a*=p),b.n.b+=c;break;case 4:r||(b.n.b*=u)}for(s=new Wb(n.b);s.a<s.c.c.length;)h=(o=BB(n0(s),70)).n.a+o.o.a/2,f=o.n.b+o.o.b/2,(g=h/l.a)+(a=f/l.b)>=1&&(g-a>0&&f>=0?(o.n.a+=d,o.n.b+=c*a):g-a<0&&h>=0&&(o.n.a+=d*g,o.n.b+=c));n.o.a=t.a,n.o.b=t.b,hon(n,(HXn(),Fgt),(mdn(),new YK(i=BB(Vj(YIt),9),BB(SR(i,i.length),9),0)))}function wGn(n,t,e,i,r,c){if(null!=t&&Xbn(t,AAt,$At))throw Hp(new _y("invalid scheme: "+t));if(!(n||null!=e&&-1==GO(e,YTn(35))&&e.length>0&&(b1(0,e.length),47!=e.charCodeAt(0))))throw Hp(new _y("invalid opaquePart: "+e));if(n&&(null==t||!xT(jAt,t.toLowerCase()))&&null!=e&&Xbn(e,LAt,NAt))throw Hp(new _y(o9n+e));if(n&&null!=t&&xT(jAt,t.toLowerCase())&&!CEn(e))throw Hp(new _y(o9n+e));if(!Ubn(i))throw Hp(new _y("invalid device: "+i));if(!Rhn(r))throw Hp(new _y(null==r?"invalid segments: null":"invalid segment: "+shn(r)));if(null!=c&&-1!=GO(c,YTn(35)))throw Hp(new _y("invalid query: "+c))}function dGn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(OTn(t,"Calculate Graph Size",1),t.n&&n&&y0(t,o2(n),(Bsn(),uOt)),o=ZJn,s=ZJn,a=n4n,u=n4n,l=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));l.e!=l.i.gc();)d=(h=BB(kpn(l),33)).i,g=h.j,v=h.g,r=h.f,c=BB(ZAn(h,(sWn(),$St)),142),o=e.Math.min(o,d-c.b),s=e.Math.min(s,g-c.d),a=e.Math.max(a,d+v+c.c),u=e.Math.max(u,g+r+c.a);for(b=new xC(o-(w=BB(ZAn(n,(sWn(),XSt)),116)).b,s-w.d),f=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));f.e!=f.i.gc();)Pen(h=BB(kpn(f),33),h.i-b.a),Cen(h,h.j-b.b);p=a-o+(w.b+w.c),i=u-s+(w.d+w.a),Sen(n,p),Men(n,i),t.n&&n&&y0(t,o2(n),(Bsn(),uOt))}function gGn(n){var t,e,i,r,c,a,u,o,s,h;for(i=new Np,a=new Wb(n.e.a);a.a<a.c.c.length;){for(h=0,(r=BB(n0(a),121)).k.c=x8(Ant,HWn,1,0,5,1),e=new Wb(kbn(r));e.a<e.c.c.length;)(t=BB(n0(e),213)).f&&(WB(r.k,t),++h);1==h&&(i.c[i.c.length]=r)}for(c=new Wb(i);c.a<c.c.c.length;)for(r=BB(n0(c),121);1==r.k.c.length;){for(s=BB(n0(new Wb(r.k)),213),n.b[s.c]=s.g,u=s.d,o=s.e,e=new Wb(kbn(r));e.a<e.c.c.length;)Nfn(t=BB(n0(e),213),s)||(t.f?u==t.d||o==t.e?n.b[s.c]-=n.b[t.c]-t.g:n.b[s.c]+=n.b[t.c]-t.g:r==u?t.d==r?n.b[s.c]+=t.g:n.b[s.c]-=t.g:t.d==r?n.b[s.c]-=t.g:n.b[s.c]+=t.g);y7(u.k,s),y7(o.k,s),r=u==r?s.e:s.d}}function pGn(n,t){var e,i,r,c,a,u,o,s,h,f,l;if(null==t||0==t.length)return null;if(!(c=BB(SJ(n.f,t),23))){for(r=new Kb(new Ob(n.d).a.vc().Kc());r.a.Ob();)if(a=BB(r.a.Pb(),42),u=(e=BB(a.dd(),23)).f,l=t.length,mK(u.substr(u.length-l,l),t)&&(t.length==u.length||46==fV(u,u.length-t.length-1))){if(c)return null;c=e}if(!c)for(i=new Kb(new Ob(n.d).a.vc().Kc());i.a.Ob();)if(a=BB(i.a.Pb(),42),null!=(f=(e=BB(a.dd(),23)).g))for(s=0,h=(o=f).length;s<h;++s)if(u=o[s],l=t.length,mK(u.substr(u.length-l,l),t)&&(t.length==u.length||46==fV(u,u.length-t.length-1))){if(c)return null;c=e}c&&mZ(n.f,t,c)}return c}function vGn(n,t){var e,i,r,c,a;for(e=new Ik,a=!1,c=0;c<t.length;c++)if(b1(c,t.length),32!=(i=t.charCodeAt(c)))a?39==i?c+1<t.length&&(b1(c+1,t.length),39==t.charCodeAt(c+1))?(e.a+=String.fromCharCode(i),++c):a=!1:e.a+=String.fromCharCode(i):GO("GyMLdkHmsSEcDahKzZv",YTn(i))>0?(Ppn(n,e,0),e.a+=String.fromCharCode(i),Ppn(n,e,r=cgn(t,c)),c+=r-1):39==i?c+1<t.length&&(b1(c+1,t.length),39==t.charCodeAt(c+1))?(e.a+="'",++c):a=!0:e.a+=String.fromCharCode(i);else for(Ppn(n,e,0),e.a+=" ",Ppn(n,e,0);c+1<t.length&&(b1(c+1,t.length),32==t.charCodeAt(c+1));)++c;Ppn(n,e,0),pTn(n)}function mGn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p;if(OTn(i,"Network simplex layering",1),n.b=t,p=4*BB(mMn(t,(HXn(),xpt)),19).a,(g=n.b.a).c.length<1)HSn(i);else{for(d=null,c=spn(a=IKn(n,g),0);c.b!=c.d.c;){for(r=BB(b3(c),15),o=p*CJ(e.Math.sqrt(r.gc())),WKn(Qk(Jk(Yk(B_(u=o_n(r)),o),d),!0),mcn(i,1)),l=n.b.b,w=new Wb(u.a);w.a<w.c.c.length;){for(b=BB(n0(w),121);l.c.length<=b.e;)kG(l,l.c.length,new HX(n.b));PZ(BB(b.f,10),BB(xq(l,b.e),29))}if(a.b>1)for(d=x8(ANt,hQn,25,n.b.b.c.length,15,1),f=0,h=new Wb(n.b.b);h.a<h.c.c.length;)s=BB(n0(h),29),d[f++]=s.a.c.length}g.c=x8(Ant,HWn,1,0,5,1),n.a=null,n.b=null,n.c=null,HSn(i)}}function yGn(n){var t,i,r,c,a,u,o;for(t=0,a=new Wb(n.b.a);a.a<a.c.c.length;)(r=BB(n0(a),189)).b=0,r.c=0;for(ESn(n,0),ewn(n,n.g),kNn(n.c),Zy(n.c),Ffn(),i=_Pt,DKn(eO(Mzn(DKn(eO(Mzn(DKn(Mzn(n.c,i)),jln(i)))),i))),Mzn(n.c,_Pt),Bln(n,n.g),kMn(n,0),pHn(n,0),M$n(n,1),ESn(n,1),ewn(n,n.d),kNn(n.c),u=new Wb(n.b.a);u.a<u.c.c.length;)r=BB(n0(u),189),t+=e.Math.abs(r.c);for(o=new Wb(n.b.a);o.a<o.c.c.length;)(r=BB(n0(o),189)).b=0,r.c=0;for(i=HPt,DKn(eO(Mzn(DKn(eO(Mzn(DKn(Zy(Mzn(n.c,i))),jln(i)))),i))),Mzn(n.c,_Pt),Bln(n,n.d),kMn(n,1),pHn(n,1),M$n(n,0),Zy(n.c),c=new Wb(n.b.a);c.a<c.c.c.length;)r=BB(n0(c),189),t+=e.Math.abs(r.c);return t}function kGn(n,t){var e,i,r,c,a,u,o,s,h;if(null!=(s=t).b&&null!=n.b){for(T$n(n),qHn(n),T$n(s),qHn(s),e=x8(ANt,hQn,25,n.b.length+s.b.length,15,1),h=0,i=0,a=0;i<n.b.length&&a<s.b.length;)if(r=n.b[i],c=n.b[i+1],u=s.b[a],o=s.b[a+1],c<u)i+=2;else if(c>=u&&r<=o)u<=r&&c<=o?(e[h++]=r,e[h++]=c,i+=2):u<=r?(e[h++]=r,e[h++]=o,n.b[i]=o+1,a+=2):c<=o?(e[h++]=u,e[h++]=c,i+=2):(e[h++]=u,e[h++]=o,n.b[i]=o+1);else{if(!(o<r))throw Hp(new dy("Token#intersectRanges(): Internal Error: ["+n.b[i]+","+n.b[i+1]+"] & ["+s.b[a]+","+s.b[a+1]+"]"));a+=2}for(;i<n.b.length;)e[h++]=n.b[i++],e[h++]=n.b[i++];n.b=x8(ANt,hQn,25,h,15,1),aHn(e,0,n.b,0,h)}}function jGn(n){var t,i,r,c,a,u,o;for(t=new Np,n.g=new Np,n.d=new Np,u=new usn(new Pb(n.f.b).a);u.b;)WB(t,BB(BB((a=ten(u)).dd(),46).b,81)),dA(BB(a.cd(),594).gf())?WB(n.d,BB(a.dd(),46)):WB(n.g,BB(a.dd(),46));for(ewn(n,n.d),ewn(n,n.g),n.c=new sOn(n.b),ej(n.c,(vM(),Gat)),Bln(n,n.d),Bln(n,n.g),gun(t,n.c.a.b),n.e=new xC(RQn,RQn),n.a=new xC(KQn,KQn),r=new Wb(t);r.a<r.c.c.length;)i=BB(n0(r),81),n.e.a=e.Math.min(n.e.a,i.g.c),n.e.b=e.Math.min(n.e.b,i.g.d),n.a.a=e.Math.max(n.a.a,i.g.c+i.g.b),n.a.b=e.Math.max(n.a.b,i.g.d+i.g.a);tj(n.c,new jt),o=0;do{c=yGn(n),++o}while((o<2||c>KVn)&&o<10);tj(n.c,new Et),yGn(n),IU(n.c),fGn(n.f)}function EGn(n,t,e){var i,r,c,a,u,o,s,h,f,l;if(qy(TD(mMn(e,(HXn(),wgt)))))for(r=new Wb(e.j);r.a<r.c.c.length;)for(u=0,o=(a=Z0(BB(n0(r),11).g)).length;u<o;++u)(c=a[u]).d.i==e&&qy(TD(mMn(c,dgt)))&&(h=c.c,(s=BB(RX(n.b,h),10))||(hon(s=bXn(h,(QEn(),QCt),h.j,-1,null,null,h.o,BB(mMn(t,Udt),103),t),(hWn(),dlt),h),VW(n.b,h,s),WB(t.a,s)),l=c.d,(f=BB(RX(n.b,l),10))||(hon(f=bXn(l,(QEn(),QCt),l.j,1,null,null,l.o,BB(mMn(t,Udt),103),t),(hWn(),dlt),l),VW(n.b,l,f),WB(t.a,f)),SZ(i=W5(c),BB(xq(s.j,0),11)),MZ(i,BB(xq(f.j,0),11)),JIn(n.a,c,new L_(i,t,(ain(),qvt))),BB(mMn(t,(hWn(),Zft)),21).Fc((bDn(),lft)))}function TGn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w;for(OTn(e,"Label dummy switching",1),i=BB(mMn(t,(HXn(),Vdt)),227),pcn(t),r=j$n(t,i),n.a=x8(xNt,qQn,25,t.b.c.length,15,1),$Pn(),h=0,b=(u=Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])).length;h<b;++h)if(((c=u[h])==eht||c==Yst||c==nht)&&!BB(SN(r.a,c)?r.b[c.g]:null,15).dc()){Zcn(n,t);break}for(f=0,w=(o=Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])).length;f<w;++f)(c=o[f])==eht||c==Yst||c==nht||GKn(n,BB(SN(r.a,c)?r.b[c.g]:null,15));for(s=0,l=(a=Pun(Gk(uht,1),$Vn,227,0,[Zst,tht,Jst,nht,eht,Yst])).length;s<l;++s)((c=a[s])==eht||c==Yst||c==nht)&&GKn(n,BB(SN(r.a,c)?r.b[c.g]:null,15));n.a=null,HSn(e)}function MGn(n,t){var e,i,r,c,a,u,o,s,h,f,l;switch(n.k.g){case 1:if(i=BB(mMn(n,(hWn(),dlt)),17),(e=BB(mMn(i,glt),74))?qy(TD(mMn(i,Clt)))&&(e=Jon(e)):e=new km,s=BB(mMn(n,hlt),11)){if(t<=(h=Aon(Pun(Gk(PMt,1),sVn,8,0,[s.i.n,s.n,s.a]))).a)return h.b;r5(e,h,e.a,e.a.a)}if(f=BB(mMn(n,flt),11)){if((l=Aon(Pun(Gk(PMt,1),sVn,8,0,[f.i.n,f.n,f.a]))).a<=t)return l.b;r5(e,l,e.c.b,e.c)}if(e.b>=2){for(a=BB(b3(o=spn(e,0)),8),u=BB(b3(o),8);u.a<t&&o.b!=o.d.c;)a=u,u=BB(b3(o),8);return a.b+(t-a.a)/(u.a-a.a)*(u.b-a.b)}break;case 3:switch(r=(c=BB(mMn(BB(xq(n.j,0),11),(hWn(),dlt)),11)).i,c.j.g){case 1:return r.n.b;case 3:return r.n.b+r.o.b}}return Fjn(n).b}function SGn(n){var t,e,i,r,c,a,u,o,s,f;for(c=new Wb(n.d.b);c.a<c.c.c.length;)for(u=new Wb(BB(n0(c),29).a);u.a<u.c.c.length;)!qy(TD(mMn(a=BB(n0(u),10),(HXn(),Tdt))))||h3(hbn(a))?(r=new UV(a.n.a-a.d.b,a.n.b-a.d.d,a.o.a+a.d.b+a.d.c,a.o.b+a.d.d+a.d.a),t=ON(iM(tM(eM(new Wv,a),r),dst),n.a),IN(nM(Xen(new Xv,Pun(Gk(bit,1),HWn,57,0,[t])),t),n.a),o=new Dp,VW(n.e,t,o),(e=F3(new oz(ZL(fbn(a).a.Kc(),new h)))-F3(new oz(ZL(lbn(a).a.Kc(),new h))))<0?Uun(o,!0,(Ffn(),_Pt)):e>0&&Uun(o,!0,(Ffn(),FPt)),a.k==(uSn(),Mut)&&wV(o),VW(n.f,a,t)):((s=(i=BB(iY(hbn(a)),17)).c.i)==a&&(s=i.d.i),f=new rI(s,XR(B$(a.n),s.n)),VW(n.b,a,f))}function PGn(n,t,i){var r,c,a,u,o,s,h,f;switch(OTn(i,"Node promotion heuristic",1),n.g=t,yUn(n),n.q=BB(mMn(t,(HXn(),Sgt)),260),f=BB(mMn(n.g,Mgt),19).a,a=new hi,n.q.g){case 2:case 1:default:_Hn(n,a);break;case 3:for(n.q=(sNn(),Ovt),_Hn(n,a),s=0,o=new Wb(n.a);o.a<o.c.c.length;)u=BB(n0(o),19),s=e.Math.max(s,u.a);s>n.j&&(n.q=Tvt,_Hn(n,a));break;case 4:for(n.q=(sNn(),Ovt),_Hn(n,a),h=0,c=new Wb(n.b);c.a<c.c.c.length;)r=MD(n0(c)),h=e.Math.max(h,(kW(r),r));h>n.k&&(n.q=Pvt,_Hn(n,a));break;case 6:_Hn(n,new od(CJ(e.Math.ceil(n.f.length*f/100))));break;case 5:_Hn(n,new sd(CJ(e.Math.ceil(n.d*f/100))))}oDn(n,t),HSn(i)}function CGn(n,t,e){var i,r,c,a;this.j=n,this.e=qEn(n),this.o=this.j.e,this.i=!!this.o,this.p=this.i?BB(xq(e,vW(this.o).p),214):null,r=BB(mMn(n,(hWn(),Zft)),21),this.g=r.Hc((bDn(),lft)),this.b=new Np,this.d=new wdn(this.e),a=BB(mMn(this.j,Slt),230),this.q=Han(t,a,this.e),this.k=new aZ(this),c=u6(Pun(Gk(jst,1),HWn,225,0,[this,this.d,this.k,this.q])),t!=(oin(),Omt)||qy(TD(mMn(n,(HXn(),xdt))))?t==Omt&&qy(TD(mMn(n,(HXn(),xdt))))?(i=new UEn(this.e),c.c[c.c.length]=i,this.c=new prn(i,a,BB(this.q,402))):this.c=new vP(t,this):(i=new UEn(this.e),c.c[c.c.length]=i,this.c=new G2(i,a,BB(this.q,402))),WB(c,this.c),CHn(c,this.e),this.s=wXn(this.k)}function IGn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(l=(s=BB(iL(new wg(spn(new bg(t).a.d,0))),86))?BB(mMn(s,(qqn(),ckt)),86):null,r=1;s&&l;){for(a=0,v=0,e=s,i=l,c=0;c<r;c++)e=G8(e),i=G8(i),v+=Gy(MD(mMn(e,(qqn(),okt)))),a+=Gy(MD(mMn(i,okt)));if(p=Gy(MD(mMn(l,(qqn(),fkt)))),g=Gy(MD(mMn(s,fkt))),h=E5(s,l),0<(f=p+a+n.a+h-g-v)){for(u=t,o=0;u&&u!=i;)++o,u=BB(mMn(u,akt),86);if(!u)return;for(d=f/o,u=t;u!=i;)w=Gy(MD(mMn(u,fkt)))+f,hon(u,fkt,w),b=Gy(MD(mMn(u,okt)))+f,hon(u,okt,b),f-=d,u=BB(mMn(u,akt),86)}++r,l=(s=0==s.d.b?ZKn(new bg(t),r):BB(iL(new wg(spn(new bg(s).a.d,0))),86))?BB(mMn(s,ckt),86):null}}function OGn(n,t){var e,i,r,c,a,u,o,s,f;for(u=!0,r=0,o=n.f[t.p],s=t.o.b+n.n,e=n.c[t.p][2],c5(n.a,o,iln(BB(xq(n.a,o),19).a-1+e)),c5(n.b,o,Gy(MD(xq(n.b,o)))-s+e*n.e),++o>=n.i?(++n.i,WB(n.a,iln(1)),WB(n.b,s)):(i=n.c[t.p][1],c5(n.a,o,iln(BB(xq(n.a,o),19).a+1-i)),c5(n.b,o,Gy(MD(xq(n.b,o)))+s-i*n.e)),(n.q==(sNn(),Tvt)&&(BB(xq(n.a,o),19).a>n.j||BB(xq(n.a,o-1),19).a>n.j)||n.q==Pvt&&(Gy(MD(xq(n.b,o)))>n.k||Gy(MD(xq(n.b,o-1)))>n.k))&&(u=!1),c=new oz(ZL(fbn(t).a.Kc(),new h));dAn(c);)a=BB(U5(c),17).c.i,n.f[a.p]==o&&(r+=BB((f=OGn(n,a)).a,19).a,u=u&&qy(TD(f.b)));return n.f[t.p]=o,new rI(iln(r+=n.c[t.p][0]),(hN(),!!u))}function AGn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v;for(l=new xp,u=new Np,rIn(n,i,n.d.fg(),u,l),rIn(n,r,n.d.gg(),u,l),n.b=.2*(g=BAn(wnn(new Rq(null,new w1(u,16)),new Sa)),p=BAn(wnn(new Rq(null,new w1(u,16)),new Pa)),e.Math.min(g,p)),a=0,o=0;o<u.c.length-1;o++)for(l1(o,u.c.length),s=BB(u.c[o],112),d=o+1;d<u.c.length;d++)a+=gHn(n,s,(l1(d,u.c.length),BB(u.c[d],112)));for(b=BB(mMn(t,(hWn(),Slt)),230),a>=2&&(v=QLn(u,!0,b),!n.e&&(n.e=new lg(n)),sgn(n.e,v,u,n.b)),iTn(u,b),czn(u),w=-1,f=new Wb(u);f.a<f.c.c.length;)h=BB(n0(f),112),e.Math.abs(h.s-h.c)<lZn||(w=e.Math.max(w,h.o),n.d.dg(h,c,n.c));return n.d.a.a.$b(),w+1}function $Gn(n,t){var e,i;Gy(MD(mMn(t,(HXn(),ypt))))<2&&hon(t,ypt,2),BB(mMn(t,Udt),103)==(Ffn(),BPt)&&hon(t,Udt,Wln(t)),0==(e=BB(mMn(t,wpt),19)).a?hon(t,(hWn(),Slt),new sbn):hon(t,(hWn(),Slt),new C4(e.a)),null==TD(mMn(t,xgt))&&hon(t,xgt,(hN(),GI(mMn(t,Zdt))===GI((Mbn(),QPt)))),JT(new Rq(null,new w1(t.a,16)),new Rw(n)),JT(wnn(new Rq(null,new w1(t.b,16)),new mt),new Kw(n)),i=new sGn(t),hon(t,(hWn(),Alt),i),h2(n.a),CU(n.a,(yMn(),Rat),BB(mMn(t,Gdt),246)),CU(n.a,Kat,BB(mMn(t,Pgt),246)),CU(n.a,_at,BB(mMn(t,qdt),246)),CU(n.a,Fat,BB(mMn(t,_gt),246)),CU(n.a,Bat,San(BB(mMn(t,Zdt),218))),aA(n.a,LXn(t)),hon(t,Mlt,$qn(n.a,t))}function LGn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;return l=n.c[t],b=n.c[e],!((w=BB(mMn(l,(hWn(),clt)),15))&&0!=w.gc()&&w.Hc(b)||(d=l.k!=(uSn(),Put)&&b.k!=Put,v=(g=BB(mMn(l,rlt),10))!=(p=BB(mMn(b,rlt),10)),m=!!g&&g!=l||!!p&&p!=b,y=omn(l,(kUn(),sIt)),k=omn(b,SIt),m|=omn(l,SIt)||omn(b,sIt),d&&(m&&v||y||k))||l.k==(uSn(),Iut)&&b.k==Cut||b.k==(uSn(),Iut)&&l.k==Cut)&&(h=n.c[t],c=n.c[e],r=fjn(n.e,h,c,(kUn(),CIt)),o=fjn(n.i,h,c,oIt),TNn(n.f,h,c),s=Nsn(n.b,h,c)+BB(r.a,19).a+BB(o.a,19).a+n.f.d,u=Nsn(n.b,c,h)+BB(r.b,19).a+BB(o.b,19).a+n.f.b,n.a&&(f=BB(mMn(h,dlt),11),a=BB(mMn(c,dlt),11),s+=BB((i=qyn(n.g,f,a)).a,19).a,u+=BB(i.b,19).a),s>u)}function NGn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(i=BB(mMn(n,(HXn(),ept)),98),u=n.f,a=n.d,o=u.a+a.b+a.c,s=0-a.d-n.c.b,f=u.b+a.d+a.a-n.c.b,h=new Np,l=new Np,c=new Wb(t);c.a<c.c.c.length;){switch(r=BB(n0(c),10),i.g){case 1:case 2:case 3:_Nn(r);break;case 4:w=(b=BB(mMn(r,npt),8))?b.a:0,r.n.a=o*Gy(MD(mMn(r,(hWn(),Tlt))))-w,Jan(r,!0,!1);break;case 5:g=(d=BB(mMn(r,npt),8))?d.a:0,r.n.a=Gy(MD(mMn(r,(hWn(),Tlt))))-g,Jan(r,!0,!1),u.a=e.Math.max(u.a,r.n.a+r.o.a/2)}switch(BB(mMn(r,(hWn(),Qft)),61).g){case 1:r.n.b=s,h.c[h.c.length]=r;break;case 3:r.n.b=f,l.c[l.c.length]=r}}switch(i.g){case 1:case 2:Rfn(h,n),Rfn(l,n);break;case 3:Kfn(h,n),Kfn(l,n)}}function xGn(n,t){var e,i,r,c,a,u,o,s,h,f;for(h=new Np,f=new Lp,c=null,r=0,i=0;i<t.length;++i)switch(Rsn(c,e=t[i])&&(r=Cdn(n,f,h,Kmt,r)),Lx(e,(hWn(),rlt))&&(c=BB(mMn(e,rlt),10)),e.k.g){case 0:for(o=qA(KB(abn(e,(kUn(),sIt)),new xc));Zin(o);)a=BB(P7(o),11),n.d[a.p]=r++,h.c[h.c.length]=a;for(r=Cdn(n,f,h,Kmt,r),s=qA(KB(abn(e,SIt),new xc));Zin(s);)a=BB(P7(s),11),n.d[a.p]=r++,h.c[h.c.length]=a;break;case 3:abn(e,Rmt).dc()||(a=BB(abn(e,Rmt).Xb(0),11),n.d[a.p]=r++,h.c[h.c.length]=a),abn(e,Kmt).dc()||d3(f,e);break;case 1:for(u=abn(e,(kUn(),CIt)).Kc();u.Ob();)a=BB(u.Pb(),11),n.d[a.p]=r++,h.c[h.c.length]=a;abn(e,oIt).Jc(new ZP(f,e))}return Cdn(n,f,h,Kmt,r),h}function DGn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(h=RQn,f=RQn,o=KQn,s=KQn,b=new Wb(t.i);b.a<b.c.c.length;)l=BB(n0(b),65),SA(c=BB(BB(RX(n.g,l.a),46).b,33),l.b.c,l.b.d),h=e.Math.min(h,c.i),f=e.Math.min(f,c.j),o=e.Math.max(o,c.i+c.g),s=e.Math.max(s,c.j+c.f);for(w=BB(ZAn(n.c,(MMn(),bTt)),116),KUn(n.c,o-h+(w.b+w.c),s-f+(w.d+w.a),!0,!0),lMn(n.c,-h+w.b,-f+w.d),r=new AL(iQ(n.c));r.e!=r.i.gc();)u=cDn(i=BB(kpn(r),79),!0,!0),d=PMn(i),p=OMn(i),g=new xC(d.i+d.g/2,d.j+d.f/2),a=new xC(p.i+p.g/2,p.j+p.f/2),Ukn(v=XR(new xC(a.a,a.b),g),d.g,d.f),UR(g,v),Ukn(m=XR(new xC(g.a,g.b),a),p.g,p.f),UR(a,m),CA(u,g.a,g.b),PA(u,a.a,a.b)}function RGn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b;if(n.c=n.d,l=null==(b=TD(mMn(t,(HXn(),dpt))))||(kW(b),b),c=BB(mMn(t,(hWn(),Zft)),21).Hc((bDn(),lft)),e=!((r=BB(mMn(t,ept),98))==(QEn(),UCt)||r==WCt||r==XCt),!l||!e&&c)f=new Jy(Pun(Gk(jut,1),JZn,37,0,[t]));else{for(h=new Wb(t.a);h.a<h.c.c.length;)BB(n0(h),10).p=0;for(f=new Np,s=new Wb(t.a);s.a<s.c.c.length;)if(i=L_n(n,BB(n0(s),10),null)){for(qan(o=new min,t),hon(o,Xft,BB(i.b,21)),kQ(o.d,t.d),hon(o,Hgt,null),u=BB(i.a,15).Kc();u.Ob();)a=BB(u.Pb(),10),WB(o.a,a),a.a=o;f.Fc(o)}c&&(GI(mMn(t,Cdt))===GI((Bfn(),lut))?n.c=n.b:n.c=n.a)}return GI(mMn(t,Cdt))!==GI((Bfn(),wut))&&(SQ(),f.ad(new xt)),f}function KGn(n){NM(n,new MTn(mj(dj(vj(wj(pj(gj(new du,Q3n),"ELK Mr. Tree"),"Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."),new Na),Y3n),nbn((hAn(),JOt))))),u2(n,Q3n,QJn,Okt),u2(n,Q3n,vZn,20),u2(n,Q3n,VJn,dZn),u2(n,Q3n,pZn,iln(1)),u2(n,Q3n,kZn,(hN(),!0)),u2(n,Q3n,X2n,mpn(Ekt)),u2(n,Q3n,PZn,mpn(Mkt)),u2(n,Q3n,BZn,mpn(Skt)),u2(n,Q3n,SZn,mpn(Pkt)),u2(n,Q3n,CZn,mpn(Tkt)),u2(n,Q3n,MZn,mpn(Ckt)),u2(n,Q3n,IZn,mpn(Akt)),u2(n,Q3n,X3n,mpn(Dkt)),u2(n,Q3n,W3n,mpn(Lkt))}function _Gn(n){n.q||(n.q=!0,n.p=kan(n,0),n.a=kan(n,1),Krn(n.a,0),n.f=kan(n,2),Krn(n.f,1),Rrn(n.f,2),n.n=kan(n,3),Rrn(n.n,3),Rrn(n.n,4),Rrn(n.n,5),Rrn(n.n,6),n.g=kan(n,4),Krn(n.g,7),Rrn(n.g,8),n.c=kan(n,5),Krn(n.c,7),Krn(n.c,8),n.i=kan(n,6),Krn(n.i,9),Krn(n.i,10),Krn(n.i,11),Krn(n.i,12),Rrn(n.i,13),n.j=kan(n,7),Krn(n.j,9),n.d=kan(n,8),Krn(n.d,3),Krn(n.d,4),Krn(n.d,5),Krn(n.d,6),Rrn(n.d,7),Rrn(n.d,8),Rrn(n.d,9),Rrn(n.d,10),n.b=kan(n,9),Rrn(n.b,0),Rrn(n.b,1),n.e=kan(n,10),Rrn(n.e,1),Rrn(n.e,2),Rrn(n.e,3),Rrn(n.e,4),Krn(n.e,5),Krn(n.e,6),Krn(n.e,7),Krn(n.e,8),Krn(n.e,9),Krn(n.e,10),Rrn(n.e,11),n.k=kan(n,11),Rrn(n.k,0),Rrn(n.k,1),n.o=jan(n,12),n.s=jan(n,13))}function FGn(n,t){t.dc()&&eH(n.j,!0,!0,!0,!0),Nfn(t,(kUn(),dIt))&&eH(n.j,!0,!0,!0,!1),Nfn(t,hIt)&&eH(n.j,!1,!0,!0,!0),Nfn(t,EIt)&&eH(n.j,!0,!0,!1,!0),Nfn(t,MIt)&&eH(n.j,!0,!1,!0,!0),Nfn(t,gIt)&&eH(n.j,!1,!0,!0,!1),Nfn(t,fIt)&&eH(n.j,!1,!0,!1,!0),Nfn(t,TIt)&&eH(n.j,!0,!1,!1,!0),Nfn(t,jIt)&&eH(n.j,!0,!1,!0,!1),Nfn(t,yIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,bIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,yIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,lIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,kIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,mIt)&&eH(n.j,!0,!0,!0,!0),Nfn(t,vIt)&&eH(n.j,!0,!0,!0,!0)}function BGn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g;for(c=new Np,s=new Wb(i);s.a<s.c.c.length;)if(a=null,(u=BB(n0(s),441)).f==(ain(),qvt))for(w=new Wb(u.e);w.a<w.c.c.length;)vW(g=(b=BB(n0(w),17)).d.i)==t?Stn(n,t,u,b,u.b,b.d):!e||wan(g,e)?GMn(n,t,u,i,b):((l=LHn(n,t,e,b,u.b,qvt,a))!=a&&(c.c[c.c.length]=l),l.c&&(a=l));else for(f=new Wb(u.e);f.a<f.c.c.length;)if(vW(d=(h=BB(n0(f),17)).c.i)==t)Stn(n,t,u,h,h.c,u.b);else{if(!e||wan(d,e))continue;(l=LHn(n,t,e,h,u.b,Hvt,a))!=a&&(c.c[c.c.length]=l),l.c&&(a=l)}for(o=new Wb(c);o.a<o.c.c.length;)u=BB(n0(o),441),-1!=E7(t.a,u.a,0)||WB(t.a,u.a),u.c&&(r.c[r.c.length]=u)}function HGn(n,t,e){var i,r,c,a,u,o,s,h;for(o=new Np,u=new Wb(t.a);u.a<u.c.c.length;)for(h=abn(BB(n0(u),10),(kUn(),oIt)).Kc();h.Ob();)for(r=new Wb(BB(h.Pb(),11).g);r.a<r.c.c.length;)!b5(i=BB(n0(r),17))&&i.c.i.c==i.d.i.c||b5(i)||i.d.i.c!=e||(o.c[o.c.length]=i);for(a=ean(e.a).Kc();a.Ob();)for(h=abn(BB(a.Pb(),10),(kUn(),CIt)).Kc();h.Ob();)for(r=new Wb(BB(h.Pb(),11).e);r.a<r.c.c.length;)if((b5(i=BB(n0(r),17))||i.c.i.c!=i.d.i.c)&&!b5(i)&&i.c.i.c==t){for(Px((s=new M2(o,o.c.length)).b>0),c=BB(s.a.Xb(s.c=--s.b),17);c!=i&&s.b>0;)n.a[c.p]=!0,n.a[i.p]=!0,Px(s.b>0),c=BB(s.a.Xb(s.c=--s.b),17);s.b>0&&fW(s)}}function qGn(n,t,e){var i,r,c,a,u,o,s,h,f;if(n.a!=t.Aj())throw Hp(new _y(d6n+t.ne()+g6n));if(i=Cfn((IPn(),Z$t),t).$k())return i.Aj().Nh().Ih(i,e);if(a=Cfn(Z$t,t).al()){if(null==e)return null;if((u=BB(e,15)).dc())return"";for(f=new Sk,c=u.Kc();c.Ob();)r=c.Pb(),cO(f,a.Aj().Nh().Ih(a,r)),f.a+=" ";return KO(f,f.a.length-1)}if(!(h=Cfn(Z$t,t).bl()).dc()){for(s=h.Kc();s.Ob();)if((o=BB(s.Pb(),148)).wj(e))try{if(null!=(f=o.Aj().Nh().Ih(o,e)))return f}catch(l){if(!cL(l=lun(l),102))throw Hp(l)}throw Hp(new _y("Invalid value: '"+e+"' for datatype :"+t.ne()))}return BB(t,834).Fj(),null==e?null:cL(e,172)?""+BB(e,172).a:tsn(e)==mtt?H$(IOt[0],BB(e,199)):Bbn(e)}function GGn(n){var t,i,r,c,a,u,o,s,h;for(s=new YT,u=new YT,c=new Wb(n);c.a<c.c.c.length;)(i=BB(n0(c),128)).v=0,i.n=i.i.c.length,i.u=i.t.c.length,0==i.n&&r5(s,i,s.c.b,s.c),0==i.u&&0==i.r.a.gc()&&r5(u,i,u.c.b,u.c);for(a=-1;0!=s.b;)for(t=new Wb((i=BB(tkn(s,0),128)).t);t.a<t.c.c.length;)(h=BB(n0(t),268).b).v=e.Math.max(h.v,i.v+1),a=e.Math.max(a,h.v),--h.n,0==h.n&&r5(s,h,s.c.b,s.c);if(a>-1){for(r=spn(u,0);r.b!=r.d.c;)(i=BB(b3(r),128)).v=a;for(;0!=u.b;)for(t=new Wb((i=BB(tkn(u,0),128)).i);t.a<t.c.c.length;)0==(o=BB(n0(t),268).a).r.a.gc()&&(o.v=e.Math.min(o.v,i.v-1),--o.u,0==o.u&&r5(u,o,u.c.b,u.c))}}function zGn(n,t,i,r,c){var a,u,o,s;return s=RQn,u=!1,a=!!(o=zBn(n,XR(new xC(t.a,t.b),n),UR(new xC(i.a,i.b),c),XR(new xC(r.a,r.b),i)))&&!(e.Math.abs(o.a-n.a)<=s5n&&e.Math.abs(o.b-n.b)<=s5n||e.Math.abs(o.a-t.a)<=s5n&&e.Math.abs(o.b-t.b)<=s5n),(o=zBn(n,XR(new xC(t.a,t.b),n),i,c))&&((e.Math.abs(o.a-n.a)<=s5n&&e.Math.abs(o.b-n.b)<=s5n)==(e.Math.abs(o.a-t.a)<=s5n&&e.Math.abs(o.b-t.b)<=s5n)||a?s=e.Math.min(s,lW(XR(o,i))):u=!0),(o=zBn(n,XR(new xC(t.a,t.b),n),r,c))&&(u||(e.Math.abs(o.a-n.a)<=s5n&&e.Math.abs(o.b-n.b)<=s5n)==(e.Math.abs(o.a-t.a)<=s5n&&e.Math.abs(o.b-t.b)<=s5n)||a)&&(s=e.Math.min(s,lW(XR(o,r)))),s}function UGn(n){NM(n,new MTn(dj(vj(wj(pj(gj(new du,_Zn),FZn),"Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."),new gt),gZn))),u2(n,_Zn,jZn,mpn(kat)),u2(n,_Zn,TZn,(hN(),!0)),u2(n,_Zn,PZn,mpn(Tat)),u2(n,_Zn,BZn,mpn(Mat)),u2(n,_Zn,SZn,mpn(Sat)),u2(n,_Zn,CZn,mpn(Eat)),u2(n,_Zn,MZn,mpn(Pat)),u2(n,_Zn,IZn,mpn(Cat)),u2(n,_Zn,NZn,mpn(yat)),u2(n,_Zn,DZn,mpn(vat)),u2(n,_Zn,RZn,mpn(mat)),u2(n,_Zn,KZn,mpn(jat)),u2(n,_Zn,xZn,mpn(pat))}function XGn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(OTn(t,"Interactive crossing minimization",1),a=0,c=new Wb(n.b);c.a<c.c.c.length;)(i=BB(n0(c),29)).p=a++;for(d=new Rj((l=qEn(n)).length),CHn(new Jy(Pun(Gk(jst,1),HWn,225,0,[d])),l),w=0,a=0,r=new Wb(n.b);r.a<r.c.c.length;){for(e=0,f=0,h=new Wb((i=BB(n0(r),29)).a);h.a<h.c.c.length;)for((o=BB(n0(h),10)).n.a>0&&(e+=o.n.a+o.o.a/2,++f),b=new Wb(o.j);b.a<b.c.c.length;)BB(n0(b),11).p=w++;for(f>0&&(e/=f),g=x8(xNt,qQn,25,i.a.c.length,15,1),u=0,s=new Wb(i.a);s.a<s.c.c.length;)(o=BB(n0(s),10)).p=u++,g[o.p]=MGn(o,e),o.k==(uSn(),Put)&&hon(o,(hWn(),plt),g[o.p]);SQ(),m$(i.a,new Gd(g)),r_n(d,l,a,!0),++a}HSn(t)}function WGn(n,t){var e,i,r,c,a,u,o,s,h;if(5!=t.e){if(null!=(s=t).b&&null!=n.b){for(T$n(n),qHn(n),T$n(s),qHn(s),e=x8(ANt,hQn,25,n.b.length+s.b.length,15,1),h=0,i=0,a=0;i<n.b.length&&a<s.b.length;)if(r=n.b[i],c=n.b[i+1],u=s.b[a],o=s.b[a+1],c<u)e[h++]=n.b[i++],e[h++]=n.b[i++];else if(c>=u&&r<=o)u<=r&&c<=o?i+=2:u<=r?(n.b[i]=o+1,a+=2):c<=o?(e[h++]=r,e[h++]=u-1,i+=2):(e[h++]=r,e[h++]=u-1,n.b[i]=o+1,a+=2);else{if(!(o<r))throw Hp(new dy("Token#subtractRanges(): Internal Error: ["+n.b[i]+","+n.b[i+1]+"] - ["+s.b[a]+","+s.b[a+1]+"]"));a+=2}for(;i<n.b.length;)e[h++]=n.b[i++],e[h++]=n.b[i++];n.b=x8(ANt,hQn,25,h,15,1),aHn(e,0,n.b,0,h)}}else kGn(n,t)}function VGn(n){var t,e,i,r,c,a,u;if(!n.A.dc()){if(n.A.Hc((mdn(),KIt))&&(BB(oV(n.b,(kUn(),sIt)),124).k=!0,BB(oV(n.b,SIt),124).k=!0,t=n.q!=(QEn(),WCt)&&n.q!=XCt,Nl(BB(oV(n.b,oIt),124),t),Nl(BB(oV(n.b,CIt),124),t),Nl(n.g,t),n.A.Hc(_It)&&(BB(oV(n.b,sIt),124).j=!0,BB(oV(n.b,SIt),124).j=!0,BB(oV(n.b,oIt),124).k=!0,BB(oV(n.b,CIt),124).k=!0,n.g.k=!0)),n.A.Hc(RIt))for(n.a.j=!0,n.a.k=!0,n.g.j=!0,n.g.k=!0,u=n.B.Hc((n_n(),XIt)),c=0,a=(r=tpn()).length;c<a;++c)i=r[c],(e=BB(oV(n.i,i),306))&&(agn(i)?(e.j=!0,e.k=!0):(e.j=!u,e.k=!u));n.A.Hc(DIt)&&n.B.Hc((n_n(),UIt))&&(n.g.j=!0,n.g.j=!0,n.a.j||(n.a.j=!0,n.a.k=!0,n.a.e=!0))}}function QGn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d;for(e=new Wb(n.e.b);e.a<e.c.c.length;)for(r=new Wb(BB(n0(e),29).a);r.a<r.c.c.length;)if(i=BB(n0(r),10),o=(f=n.i[i.p]).a.e,u=f.d.e,i.n.b=o,d=u-o-i.o.b,t=AHn(i),bvn(),h=(i.q?i.q:(SQ(),SQ(),het))._b((HXn(),Rgt))?BB(mMn(i,Rgt),197):BB(mMn(vW(i),Kgt),197),t&&(h==fvt||h==hvt)&&(i.o.b+=d),t&&(h==bvt||h==fvt||h==hvt)){for(b=new Wb(i.j);b.a<b.c.c.length;)l=BB(n0(b),11),(kUn(),bIt).Hc(l.j)&&(s=BB(RX(n.k,l),121),l.n.b=s.e-o);for(a=new Wb(i.b);a.a<a.c.c.length;)c=BB(n0(a),70),(w=BB(mMn(i,$gt),21)).Hc((n$n(),NCt))?c.n.b+=d:w.Hc(xCt)&&(c.n.b+=d/2);(h==fvt||h==hvt)&&abn(i,(kUn(),SIt)).Jc(new ag(d))}}function YGn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(!n.b)return!1;for(a=null,l=null,r=1,(o=new H8(null,null)).a[1]=n.b,f=o;f.a[r];)s=r,u=l,l=f,f=f.a[r],r=(i=n.a.ue(t,f.d))<0?0:1,0==i&&(!e.c||cV(f.e,e.d))&&(a=f),f&&f.b||Vy(f.a[r])||(Vy(f.a[1-r])?l=l.a[s]=wrn(f,r):Vy(f.a[1-r])||(b=l.a[1-s])&&(Vy(b.a[1-s])||Vy(b.a[s])?(c=u.a[1]==l?1:0,Vy(b.a[s])?u.a[c]=r2(l,s):Vy(b.a[1-s])&&(u.a[c]=wrn(l,s)),f.b=u.a[c].b=!0,u.a[c].a[0].b=!1,u.a[c].a[1].b=!1):(l.b=!1,b.b=!0,f.b=!0)));return a&&(e.b=!0,e.d=a.e,f!=a&&(bMn(n,o,a,h=new H8(f.d,f.e)),l==a&&(l=h)),l.a[l.a[1]==f?1:0]=f.a[f.a[0]?0:1],--n.c),n.b=o.a[1],n.b&&(n.b.b=!1),e.b}function JGn(n){var t,i,r,c,a,u,o,s,h,f,l,b;for(c=new Wb(n.a.a.b);c.a<c.c.c.length;)for(s=(r=BB(n0(c),57)).c.Kc();s.Ob();)o=BB(s.Pb(),57),r.a!=o.a&&(l=dA(n.a.d)?n.a.g.Oe(r,o):n.a.g.Pe(r,o),a=r.b.a+r.d.b+l-o.b.a,a=e.Math.ceil(a),a=e.Math.max(0,a),Z7(r,o)?(u=AN(new qv,n.d),t=(h=CJ(e.Math.ceil(o.b.a-r.b.a)))-(o.b.a-r.b.a),i=r,(f=f3(r).a)||(f=f3(o).a,t=-t,i=o),f&&(i.b.a-=t,f.n.a-=t),UNn(aM(cM(uM(rM(new Hv,e.Math.max(0,h)),1),u),n.c[r.a.d])),UNn(aM(cM(uM(rM(new Hv,e.Math.max(0,-h)),1),u),n.c[o.a.d]))):(b=1,(cL(r.g,145)&&cL(o.g,10)||cL(o.g,145)&&cL(r.g,10))&&(b=2),UNn(aM(cM(uM(rM(new Hv,CJ(a)),b),n.c[r.a.d]),n.c[o.a.d]))))}function ZGn(n,t,i){var r,c,a,u,o,s,h,f,l,b;if(i)for(r=-1,f=new M2(t,0);f.b<f.d.gc();){if(Px(f.b<f.d.gc()),o=BB(f.d.Xb(f.c=f.b++),10),null==(l=n.c[o.c.p][o.p].a)){for(u=r+1,a=new M2(t,f.b);a.b<a.d.gc();)if(null!=(b=wL(n,(Px(a.b<a.d.gc()),BB(a.d.Xb(a.c=a.b++),10))).a)){kW(b),u=b;break}l=(r+u)/2,n.c[o.c.p][o.p].a=l,n.c[o.c.p][o.p].d=(kW(l),l),n.c[o.c.p][o.p].b=1}kW(l),r=l}else{for(c=0,h=new Wb(t);h.a<h.c.c.length;)o=BB(n0(h),10),null!=n.c[o.c.p][o.p].a&&(c=e.Math.max(c,Gy(n.c[o.c.p][o.p].a)));for(c+=2,s=new Wb(t);s.a<s.c.c.length;)o=BB(n0(s),10),null==n.c[o.c.p][o.p].a&&(l=H$n(n.i,24)*uYn*c-1,n.c[o.c.p][o.p].a=l,n.c[o.c.p][o.p].d=l,n.c[o.c.p][o.p].b=1)}}function nzn(){RO(BAt,new ts),RO(KAt,new ls),RO(qAt,new Es),RO(HAt,new Is),RO(GAt,new Os),RO(XAt,new As),RO(WAt,new $s),RO(HOt,new Ls),RO(BOt,new zo),RO(qOt,new Uo),RO(LOt,new Xo),RO(QAt,new Wo),RO(GOt,new Vo),RO(YAt,new Qo),RO(JAt,new Yo),RO(FAt,new Jo),RO(_At,new Zo),RO(X$t,new ns),RO(VAt,new es),RO(O$t,new is),RO(ktt,new rs),RO(Gk(NNt,1),new cs),RO(Ttt,new as),RO(Stt,new us),RO(mtt,new os),RO(_Nt,new ss),RO(Ptt,new hs),RO(uAt,new fs),RO(yAt,new bs),RO(oLt,new ws),RO($$t,new ds),RO(Ctt,new gs),RO(Att,new ps),RO($nt,new vs),RO(Rtt,new ms),RO(Nnt,new ys),RO(iLt,new ks),RO(FNt,new js),RO(_tt,new Ts),RO(Qtt,new Ms),RO(sAt,new Ss),RO(BNt,new Ps)}function tzn(n,t,e){var i,r,c,a,u,o,s,h,f;for(!e&&(e=Gun(t.q.getTimezoneOffset())),r=6e4*(t.q.getTimezoneOffset()-e.a),o=u=new PD(rbn(fan(t.q.getTime()),r)),u.q.getTimezoneOffset()!=t.q.getTimezoneOffset()&&(r>0?r-=864e5:r+=864e5,o=new PD(rbn(fan(t.q.getTime()),r))),h=new Ik,s=n.a.length,c=0;c<s;)if((i=fV(n.a,c))>=97&&i<=122||i>=65&&i<=90){for(a=c+1;a<s&&fV(n.a,a)==i;++a);aWn(h,i,a-c,u,o,e),c=a}else if(39==i){if(++c<s&&39==fV(n.a,c)){h.a+="'",++c;continue}for(f=!1;!f;){for(a=c;a<s&&39!=fV(n.a,a);)++a;if(a>=s)throw Hp(new _y("Missing trailing '"));a+1<s&&39==fV(n.a,a+1)?++a:f=!0,oO(h,fx(n.a,c,a)),c=a+1}}else h.a+=String.fromCharCode(i),++c;return h.a}function ezn(n){var t,e,i,r,c,a,u,o;for(t=null,i=new Wb(n);i.a<i.c.c.length;)Gy(lL((e=BB(n0(i),233)).g,e.d[0]).a),e.b=null,e.e&&e.e.gc()>0&&0==e.c&&(!t&&(t=new Np),t.c[t.c.length]=e);if(t)for(;0!=t.c.length;){if((e=BB(s6(t,0),233)).b&&e.b.c.length>0)for(!e.b&&(e.b=new Np),c=new Wb(e.b);c.a<c.c.c.length;)if(zy(lL((r=BB(n0(c),233)).g,r.d[0]).a)==zy(lL(e.g,e.d[0]).a)){if(E7(n,r,0)>E7(n,e,0))return new rI(r,e)}else if(Gy(lL(r.g,r.d[0]).a)>Gy(lL(e.g,e.d[0]).a))return new rI(r,e);for(u=(!e.e&&(e.e=new Np),e.e).Kc();u.Ob();)!(a=BB(u.Pb(),233)).b&&(a.b=new Np),LZ(0,(o=a.b).c.length),MS(o.c,0,e),a.c==o.c.length&&(t.c[t.c.length]=a)}return null}function izn(n,t){var e,i,r,c,a,u;if(null==n)return zWn;if(null!=t.a.zc(n,t))return"[...]";for(e=new $an(FWn,"[","]"),c=0,a=(r=n).length;c<a;++c)null!=(i=r[c])&&0!=(4&tsn(i).i)?!Array.isArray(i)||(u=vnn(i))>=14&&u<=16?cL(i,177)?b6(e,RCn(BB(i,177))):cL(i,190)?b6(e,JEn(BB(i,190))):cL(i,195)?b6(e,kSn(BB(i,195))):cL(i,2012)?b6(e,ZEn(BB(i,2012))):cL(i,48)?b6(e,DCn(BB(i,48))):cL(i,364)?b6(e,gIn(BB(i,364))):cL(i,832)?b6(e,xCn(BB(i,832))):cL(i,104)&&b6(e,NCn(BB(i,104))):t.a._b(i)?(e.a?oO(e.a,e.b):e.a=new lN(e.d),aO(e.a,"[...]")):b6(e,izn(een(i),new $q(t))):b6(e,null==i?zWn:Bbn(i));return e.a?0==e.e.length?e.a.a:e.a.a+""+e.e:e.c}function rzn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w,d,g;for(w=qSn(cDn(t,!1,!1)),r&&(w=Jon(w)),g=Gy(MD(ZAn(t,(Epn(),pct)))),Px(0!=w.b),b=BB(w.a.a.c,8),h=BB(Dpn(w,1),8),w.b>2?(gun(s=new Np,new s1(w,1,w.b)),qan(d=new EAn(XXn(s,g+n.a)),t),i.c[i.c.length]=d):d=BB(RX(n.b,r?PMn(t):OMn(t)),266),u=PMn(t),r&&(u=OMn(t)),a=iPn(b,u),o=g+n.a,a.a?(o+=e.Math.abs(b.b-h.b),l=new xC(h.a,(h.b+b.b)/2)):(o+=e.Math.abs(b.a-h.a),l=new xC((h.a+b.a)/2,h.b)),VW(r?n.d:n.c,t,new Imn(d,a,l,o)),VW(n.b,t,d),!t.n&&(t.n=new eU(zOt,t,1,7)),f=new AL(t.n);f.e!=f.i.gc();)c=JRn(n,BB(kpn(f),137),!0,0,0),i.c[i.c.length]=c}function czn(n){var t,i,r,c,a,u,o,s,h;for(s=new Np,u=new Np,a=new Wb(n);a.a<a.c.c.length;)Vl(r=BB(n0(a),112),r.f.c.length),Ql(r,r.k.c.length),0==r.d&&(s.c[s.c.length]=r),0==r.i&&0==r.e.b&&(u.c[u.c.length]=r);for(i=-1;0!=s.c.length;)for(t=new Wb((r=BB(s6(s,0),112)).k);t.a<t.c.c.length;)Yl(h=BB(n0(t),129).b,e.Math.max(h.o,r.o+1)),i=e.Math.max(i,h.o),Vl(h,h.d-1),0==h.d&&(s.c[s.c.length]=h);if(i>-1){for(c=new Wb(u);c.a<c.c.c.length;)(r=BB(n0(c),112)).o=i;for(;0!=u.c.length;)for(t=new Wb((r=BB(s6(u,0),112)).f);t.a<t.c.c.length;)(o=BB(n0(t),129).a).e.b>0||(Yl(o,e.Math.min(o.o,r.o-1)),Ql(o,o.i-1),0==o.i&&(u.c[u.c.length]=o))}}function azn(n,t,e){var i,r,c,a,u;if(u=n.c,!t&&(t=L$t),n.c=t,0!=(4&n.Db)&&0==(1&n.Db)&&(a=new nU(n,1,2,u,n.c),e?e.Ei(a):e=a),u!=t)if(cL(n.Cb,284))n.Db>>16==-10?e=BB(n.Cb,284).nk(t,e):n.Db>>16==-15&&(!t&&(gWn(),t=l$t),!u&&(gWn(),u=l$t),n.Cb.nh()&&(a=new N7(n.Cb,1,13,u,t,uvn(H7(BB(n.Cb,59)),n),!1),e?e.Ei(a):e=a));else if(cL(n.Cb,88))n.Db>>16==-23&&(cL(t,88)||(gWn(),t=d$t),cL(u,88)||(gWn(),u=d$t),n.Cb.nh()&&(a=new N7(n.Cb,1,10,u,t,uvn(a4(BB(n.Cb,26)),n),!1),e?e.Ei(a):e=a));else if(cL(n.Cb,444))for(!(c=BB(n.Cb,836)).b&&(c.b=new Tp(new xm)),r=new Mp(new usn(new Pb(c.b.a).a));r.a.b;)e=azn(i=BB(ten(r.a).cd(),87),kLn(i,c),e);return e}function uzn(n,t){var e,i,r,c,a,u,o,s,h,f,l;for(a=qy(TD(ZAn(n,(HXn(),wgt)))),l=BB(ZAn(n,cpt),21),o=!1,s=!1,f=new AL((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c));!(f.e==f.i.gc()||o&&s);){for(c=BB(kpn(f),118),u=0,r=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!c.d&&(c.d=new hK(_Ot,c,8,5)),c.d),(!c.e&&(c.e=new hK(_Ot,c,7,4)),c.e)])));dAn(r)&&(i=BB(U5(r),79),h=a&&QIn(i)&&qy(TD(ZAn(i,dgt))),e=bqn((!i.b&&(i.b=new hK(KOt,i,4,7)),i.b),c)?n==JJ(PTn(BB(Wtn((!i.c&&(i.c=new hK(KOt,i,5,8)),i.c),0),82))):n==JJ(PTn(BB(Wtn((!i.b&&(i.b=new hK(KOt,i,4,7)),i.b),0),82))),!((h||e)&&++u>1)););(u>0||l.Hc((lIn(),eIt))&&(!c.n&&(c.n=new eU(zOt,c,1,7)),c.n).i>0)&&(o=!0),u>1&&(s=!0)}o&&t.Fc((bDn(),lft)),s&&t.Fc((bDn(),bft))}function ozn(n){var t,i,r,c,a,u,o,s,h,f,l,b;if((b=BB(ZAn(n,(sWn(),KSt)),21)).dc())return null;if(o=0,u=0,b.Hc((mdn(),KIt))){for(f=BB(ZAn(n,uPt),98),r=2,i=2,c=2,a=2,t=JJ(n)?BB(ZAn(JJ(n),bSt),103):BB(ZAn(n,bSt),103),h=new AL((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c));h.e!=h.i.gc();)if(s=BB(kpn(h),118),(l=BB(ZAn(s,wPt),61))==(kUn(),PIt)&&(l=OFn(s,t),Ypn(s,wPt,l)),f==(QEn(),XCt))switch(l.g){case 1:r=e.Math.max(r,s.i+s.g);break;case 2:i=e.Math.max(i,s.j+s.f);break;case 3:c=e.Math.max(c,s.i+s.g);break;case 4:a=e.Math.max(a,s.j+s.f)}else switch(l.g){case 1:r+=s.g+2;break;case 2:i+=s.f+2;break;case 3:c+=s.g+2;break;case 4:a+=s.f+2}o=e.Math.max(r,c),u=e.Math.max(i,a)}return KUn(n,o,u,!0,!0)}function szn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(m=BB(P4(ytn(AV(new Rq(null,new w1(t.d,16)),new $d(i)),new Ld(i)),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)]))),15),l=DWn,f=_Vn,s=new Wb(t.b.j);s.a<s.c.c.length;)(o=BB(n0(s),11)).j==i&&(l=e.Math.min(l,o.p),f=e.Math.max(f,o.p));if(l==DWn)for(u=0;u<m.gc();u++)g9(BB(m.Xb(u),101),i,u);else for(Zq(y=x8(ANt,hQn,25,c.length,15,1),y.length),v=m.Kc();v.Ob();){for(p=BB(v.Pb(),101),a=BB(RX(n.b,p),177),h=0,g=l;g<=f;g++)a[g]&&(h=e.Math.max(h,r[g]));if(p.i){for(w=p.i.c,k=new Rv,b=0;b<c.length;b++)c[w][b]&&TU(k,iln(y[b]));for(;FT(k,iln(h));)++h}for(g9(p,i,h),d=l;d<=f;d++)a[d]&&(r[d]=h+1);p.i&&(y[p.i.c]=h)}}function hzn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d;for(c=null,r=new Wb(t.a);r.a<r.c.c.length;)AHn(i=BB(n0(r),10))?(h=new GV(i,!0,o=AN(oM(new qv,i),n.f),s=AN(oM(new qv,i),n.f)),f=i.o.b,bvn(),b=1e4,(l=(i.q?i.q:(SQ(),SQ(),het))._b((HXn(),Rgt))?BB(mMn(i,Rgt),197):BB(mMn(vW(i),Kgt),197))==hvt&&(b=1),w=UNn(aM(cM(rM(uM(new Hv,b),CJ(e.Math.ceil(f))),o),s)),l==fvt&&TU(n.d,w),O_n(n,ean(abn(i,(kUn(),CIt))),h),O_n(n,abn(i,oIt),h),a=h):(d=AN(oM(new qv,i),n.f),JT(AV(new Rq(null,new w1(i.j,16)),new Bc),new tC(n,d)),a=new GV(i,!1,d,d)),n.i[i.p]=a,c&&(u=c.c.d.a+K$(n.n,c.c,i)+i.d.d,c.b||(u+=c.c.o.b),UNn(aM(cM(uM(rM(new Hv,CJ(e.Math.ceil(u))),0),c.d),a.a))),c=a}function fzn(n,t){var i,r,c,a,u,o,s,f,l,b,w,d,g;for(OTn(t,"Label dummy insertions",1),b=new Np,u=Gy(MD(mMn(n,(HXn(),jpt)))),f=Gy(MD(mMn(n,Spt))),l=BB(mMn(n,Udt),103),w=new Wb(n.a);w.a<w.c.c.length;)for(a=new oz(ZL(lbn(BB(n0(w),10)).a.Kc(),new h));dAn(a);)if((c=BB(U5(a),17)).c.i!=c.d.i&&tL(c.b,nst)){for(i=oLn(n,c,g=Etn(c),d=sx(c.b.c.length)),b.c[b.c.length]=i,r=i.o,o=new M2(c.b,0);o.b<o.d.gc();)Px(o.b<o.d.gc()),GI(mMn(s=BB(o.d.Xb(o.c=o.b++),70),Ydt))===GI((Rtn(),zPt))&&(l==(Ffn(),HPt)||l==KPt?(r.a+=s.o.a+f,r.b=e.Math.max(r.b,s.o.b)):(r.a=e.Math.max(r.a,s.o.a),r.b+=s.o.b+f),d.c[d.c.length]=s,fW(o));l==(Ffn(),HPt)||l==KPt?(r.a-=f,r.b+=u+g):r.b+=u-f+g}gun(n.a,b),HSn(t)}function lzn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w;for(l=XDn(n,t,a=new dOn(t)),w=e.Math.max(Gy(MD(mMn(t,(HXn(),agt)))),1),f=new Wb(l.a);f.a<f.c.c.length;)h=BB(n0(f),46),s=Bgn(BB(h.a,8),BB(h.b,8),w),zH(i,new xC(s.c,s.d)),zH(i,_x(new xC(s.c,s.d),s.b,0)),zH(i,_x(new xC(s.c,s.d),0,s.a)),zH(i,_x(new xC(s.c,s.d),s.b,s.a));switch(b=a.d,o=Bgn(BB(l.b.a,8),BB(l.b.b,8),w),b==(kUn(),CIt)||b==oIt?(r.c[b.g]=e.Math.min(r.c[b.g],o.d),r.b[b.g]=e.Math.max(r.b[b.g],o.d+o.a)):(r.c[b.g]=e.Math.min(r.c[b.g],o.c),r.b[b.g]=e.Math.max(r.b[b.g],o.c+o.b)),c=KQn,u=a.c.i.d,b.g){case 4:c=u.c;break;case 2:c=u.b;break;case 1:c=u.a;break;case 3:c=u.d}return r.a[b.g]=e.Math.max(r.a[b.g],c),a}function bzn(n){var t,e,i,r;if(-1!=(t=GO(e=null!=n.D?n.D:n.B,YTn(91)))){i=e.substr(0,t),r=new Sk;do{r.a+="["}while(-1!=(t=lx(e,91,++t)));mK(i,$Wn)?r.a+="Z":mK(i,S9n)?r.a+="B":mK(i,P9n)?r.a+="C":mK(i,C9n)?r.a+="D":mK(i,I9n)?r.a+="F":mK(i,O9n)?r.a+="I":mK(i,A9n)?r.a+="J":mK(i,$9n)?r.a+="S":(r.a+="L",r.a+=""+i,r.a+=";");try{return null}catch(c){if(!cL(c=lun(c),60))throw Hp(c)}}else if(-1==GO(e,YTn(46))){if(mK(e,$Wn))return $Nt;if(mK(e,S9n))return NNt;if(mK(e,P9n))return ONt;if(mK(e,C9n))return xNt;if(mK(e,I9n))return DNt;if(mK(e,O9n))return ANt;if(mK(e,A9n))return LNt;if(mK(e,$9n))return RNt}return null}function wzn(n,t,e){var i,r,c,a,u,o,s,h;for(qan(s=new $vn(e),t),hon(s,(hWn(),dlt),t),s.o.a=t.g,s.o.b=t.f,s.n.a=t.i,s.n.b=t.j,WB(e.a,s),VW(n.a,t,s),(0!=(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a).i||qy(TD(ZAn(t,(HXn(),wgt)))))&&hon(s,_ft,(hN(),!0)),o=BB(mMn(e,Zft),21),(h=BB(mMn(s,(HXn(),ept)),98))==(QEn(),YCt)?hon(s,ept,QCt):h!=QCt&&o.Fc((bDn(),dft)),i=BB(mMn(e,Udt),103),u=new AL((!t.c&&(t.c=new eU(XOt,t,9,9)),t.c));u.e!=u.i.gc();)qy(TD(ZAn(a=BB(kpn(u),118),Ggt)))||Zzn(n,a,s,o,i,h);for(c=new AL((!t.n&&(t.n=new eU(zOt,t,1,7)),t.n));c.e!=c.i.gc();)!qy(TD(ZAn(r=BB(kpn(c),137),Ggt)))&&r.a&&WB(s.b,Hhn(r));return qy(TD(mMn(s,Tdt)))&&o.Fc((bDn(),hft)),qy(TD(mMn(s,bgt)))&&(o.Fc((bDn(),wft)),o.Fc(bft),hon(s,ept,QCt)),s}function dzn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;u=BB(RX(t.c,n),459),g=t.a.c,o=t.a.c+t.a.b,a=(E=u.f)<(T=u.a),b=new xC(g,E),p=new xC(o,T),w=new xC(r=(g+o)/2,E),v=new xC(r,T),c=eNn(n,E,T),y=g1(t.B),k=new xC(r,c),j=g1(t.D),e=lon(Pun(Gk(PMt,1),sVn,8,0,[y,k,j])),f=!1,(d=t.B.i)&&d.c&&u.d&&((s=a&&d.p<d.c.a.c.length-1||!a&&d.p>0)?s&&(h=d.p,a?++h:--h,f=!(cNn(i=ion(BB(xq(d.c.a,h),10)),y,e[0])||Bz(i,y,e[0]))):f=!0),l=!1,(m=t.D.i)&&m.c&&u.e&&(a&&m.p>0||!a&&m.p<m.c.a.c.length-1?(h=m.p,a?--h:++h,l=!(cNn(i=ion(BB(xq(m.c.a,h),10)),e[0],j)||Bz(i,e[0],j))):l=!0),f&&l&&DH(n.a,k),f||nin(n.a,Pun(Gk(PMt,1),sVn,8,0,[b,w])),l||nin(n.a,Pun(Gk(PMt,1),sVn,8,0,[v,p]))}function gzn(n,t){var e,i,r,c,a,u,o;if(cL(n.Ug(),160)?(gzn(BB(n.Ug(),160),t),t.a+=" > "):t.a+="Root ",mK((e=n.Tg().zb).substr(0,3),"Elk")?oO(t,e.substr(3)):t.a+=""+e,r=n.zg())oO((t.a+=" ",t),r);else if(cL(n,354)&&(o=BB(n,137).a))oO((t.a+=" ",t),o);else{for(c=new AL(n.Ag());c.e!=c.i.gc();)if(o=BB(kpn(c),137).a)return void oO((t.a+=" ",t),o);if(cL(n,352)&&(!(i=BB(n,79)).b&&(i.b=new hK(KOt,i,4,7)),0!=i.b.i&&(!i.c&&(i.c=new hK(KOt,i,5,8)),0!=i.c.i))){for(t.a+=" (",a=new cx((!i.b&&(i.b=new hK(KOt,i,4,7)),i.b));a.e!=a.i.gc();)a.e>0&&(t.a+=FWn),gzn(BB(kpn(a),160),t);for(t.a+=e1n,u=new cx((!i.c&&(i.c=new hK(KOt,i,5,8)),i.c));u.e!=u.i.gc();)u.e>0&&(t.a+=FWn),gzn(BB(kpn(u),160),t);t.a+=")"}}}function pzn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(c=BB(mMn(n,(hWn(),dlt)),79)){for(i=n.a,UR(r=new wA(e),$jn(n)),wan(n.d.i,n.c.i)?(l=n.c,XR(f=Aon(Pun(Gk(PMt,1),sVn,8,0,[l.n,l.a])),e)):f=g1(n.c),r5(i,f,i.a,i.a.a),b=g1(n.d),null!=mMn(n,Rlt)&&UR(b,BB(mMn(n,Rlt),8)),r5(i,b,i.c.b,i.c),Ztn(i,r),Lin(a=cDn(c,!0,!0),BB(Wtn((!c.b&&(c.b=new hK(KOt,c,4,7)),c.b),0),82)),Nin(a,BB(Wtn((!c.c&&(c.c=new hK(KOt,c,5,8)),c.c),0),82)),VFn(i,a),h=new Wb(n.b);h.a<h.c.c.length;)s=BB(n0(h),70),Sen(u=BB(mMn(s,dlt),137),s.o.a),Men(u,s.o.b),SA(u,s.n.a+r.a,s.n.b+r.b),Ypn(u,(Irn(),tst),TD(mMn(s,tst)));(o=BB(mMn(n,(HXn(),vgt)),74))?(Ztn(o,r),Ypn(c,vgt,o)):Ypn(c,vgt,null),t==(Mbn(),JPt)?Ypn(c,Zdt,JPt):Ypn(c,Zdt,null)}}function vzn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(b=t.c.length,l=0,f=new Wb(n.b);f.a<f.c.c.length;)if(0!=(p=(h=BB(n0(f),29)).a).c.length){for(s=0,v=null,r=BB(n0(g=new Wb(p)),10),c=null;r;){if((c=BB(xq(t,r.p),257)).c>=0){for(o=null,u=new M2(h.a,s+1);u.b<u.d.gc()&&(Px(u.b<u.d.gc()),a=BB(u.d.Xb(u.c=u.b++),10),!((o=BB(xq(t,a.p),257)).d==c.d&&o.c<c.c));)o=null;o&&(v&&(c5(i,r.p,iln(BB(xq(i,r.p),19).a-1)),BB(xq(e,v.p),15).Mc(c)),c=wTn(c,r,b++),t.c[t.c.length]=c,WB(e,new Np),v?(BB(xq(e,v.p),15).Fc(c),WB(i,iln(1))):WB(i,iln(0)))}w=null,g.a<g.c.c.length&&(w=BB(n0(g),10),d=BB(xq(t,w.p),257),BB(xq(e,r.p),15).Fc(d),c5(i,w.p,iln(BB(xq(i,w.p),19).a+1))),c.d=l,c.c=s++,v=r,r=w}++l}}function mzn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;return o=n,h=XR(new xC(t.a,t.b),n),s=i,f=XR(new xC(r.a,r.b),i),l=o.a,g=o.b,w=s.a,v=s.b,b=h.a,p=h.b,c=(d=f.a)*p-b*(m=f.b),h$(),rin(A3n),!(e.Math.abs(0-c)<=A3n||0==c||isNaN(0)&&isNaN(c))&&(a=1/c*((l-w)*p-(g-v)*b),u=1/c*-(-(l-w)*m+(g-v)*d),rin(A3n),(e.Math.abs(0-a)<=A3n||0==a||isNaN(0)&&isNaN(a)?0:0<a?-1:0>a?1:zO(isNaN(0),isNaN(a)))<0&&(rin(A3n),(e.Math.abs(a-1)<=A3n||1==a||isNaN(a)&&isNaN(1)?0:a<1?-1:a>1?1:zO(isNaN(a),isNaN(1)))<0)&&(rin(A3n),(e.Math.abs(0-u)<=A3n||0==u||isNaN(0)&&isNaN(u)?0:0<u?-1:0>u?1:zO(isNaN(0),isNaN(u)))<0)&&(rin(A3n),(e.Math.abs(u-1)<=A3n||1==u||isNaN(u)&&isNaN(1)?0:u<1?-1:u>1?1:zO(isNaN(u),isNaN(1)))<0))}function yzn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;for(f=new hW(new iw(n));f.b!=f.c.a.d;)for(u=BB((h=s9(f)).d,56),t=BB(h.e,56),d=0,y=(null==(a=u.Tg()).i&&qFn(a),a.i).length;d<y;++d)if(null==a.i&&qFn(a),c=a.i,(s=d>=0&&d<c.length?c[d]:null).Ij()&&!s.Jj())if(cL(s,99))0==((o=BB(s,18)).Bb&h6n)&&(!(j=Cvn(o))||0==(j.Bb&h6n))&&mBn(n,o,u,t);else if(ZM(),BB(s,66).Oj()&&(e=BB((k=s)?BB(t,49).xh(k):null,153)))for(b=BB(u.ah(s),153),i=e.gc(),g=0,w=b.gc();g<w;++g)if(cL(l=b.il(g),99)){if(null==(r=lnn(n,m=b.jl(g)))&&null!=m){if(v=BB(l,18),!n.b||0!=(v.Bb&h6n)||Cvn(v))continue;r=m}if(!e.dl(l,r))for(p=0;p<i;++p)if(e.il(p)==l&&GI(e.jl(p))===GI(r)){e.ii(e.gc()-1,p),--i;break}}else e.dl(b.il(g),b.jl(g))}function kzn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w,d,g,p,v,m;if(p=QBn(t,i,n.g),c.n&&c.n&&a&&y0(c,o2(a),(Bsn(),uOt)),n.b)for(g=0;g<p.c.length;g++)l1(g,p.c.length),f=BB(p.c[g],200),0!=g&&(l1(g-1,p.c.length),ghn(f,(b=BB(p.c[g-1],200)).f+b.b+n.g)),mXn(g,p,i,n.g),Hkn(n,f),c.n&&a&&y0(c,o2(a),(Bsn(),uOt));else for(d=new Wb(p);d.a<d.c.c.length;)for(h=new Wb((w=BB(n0(d),200)).a);h.a<h.c.c.length;)xcn(v=new KJ((s=BB(n0(h),187)).s,s.t,n.g),s),WB(w.d,v);return zmn(n,p),c.n&&c.n&&a&&y0(c,o2(a),(Bsn(),uOt)),m=e.Math.max(n.d,r.a-(u.b+u.c)),o=(l=e.Math.max(n.c,r.b-(u.d+u.a)))-n.c,n.e&&n.f&&(m/l<n.a?m=l*n.a:o+=m/n.a-l),n.e&&Odn(p,m,o),c.n&&c.n&&a&&y0(c,o2(a),(Bsn(),uOt)),new eq(n.a,m,n.c+o,(YLn(),_Et))}function jzn(n){var t,i,r,c,a,u,o,s,h,f;for(n.j=x8(ANt,hQn,25,n.g,15,1),n.o=new Np,JT(wnn(new Rq(null,new w1(n.e.b,16)),new Wc),new ug(n)),n.a=x8($Nt,ZYn,25,n.b,16,1),$fn(new Rq(null,new w1(n.e.b,16)),new sg(n)),f=new Np,JT(AV(wnn(new Rq(null,new w1(n.e.b,16)),new Qc),new og(n)),new eC(n,f)),o=new Wb(f);o.a<o.c.c.length;)if(!((u=BB(n0(o),508)).c.length<=1))if(2!=u.c.length){if(!XEn(u)&&!NPn(u,new Vc))for(s=new Wb(u),r=null;s.a<s.c.c.length;)t=BB(n0(s),17),i=n.c[t.p],h=!r||s.a>=s.c.c.length?X3((uSn(),Cut),Put):X3((uSn(),Put),Put),h*=2,c=i.a.g,i.a.g=e.Math.max(c,c+(h-c)),a=i.b.g,i.b.g=e.Math.max(a,a+(h-a)),r=t}else zAn(u),AHn((l1(0,u.c.length),BB(u.c[0],17)).d.i)||WB(n.o,u)}function Ezn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(m=GB(n),o=new Np,s=(c=n.c.length)-1,h=c+1;0!=m.a.c;){for(;0!=e.b;)Px(0!=e.b),p=BB(Atn(e,e.a.a),112),$J(m.a,p),p.g=s--,NFn(p,t,e,i);for(;0!=t.b;)Px(0!=t.b),v=BB(Atn(t,t.a.a),112),$J(m.a,v),v.g=h++,NFn(v,t,e,i);for(u=_Vn,d=new Fb(new BR(new xN(new _b(m.a).a).b));aS(d.a.a);){if(w=BB(mx(d.a).cd(),112),!i&&w.b>0&&w.a<=0){o.c=x8(Ant,HWn,1,0,5,1),o.c[o.c.length]=w;break}(b=w.i-w.d)>=u&&(b>u&&(o.c=x8(Ant,HWn,1,0,5,1),u=b),o.c[o.c.length]=w)}0!=o.c.length&&(a=BB(xq(o,pvn(r,o.c.length)),112),$J(m.a,a),a.g=h++,NFn(a,t,e,i),o.c=x8(Ant,HWn,1,0,5,1))}for(g=n.c.length+1,l=new Wb(n);l.a<l.c.c.length;)(f=BB(n0(l),112)).g<c&&(f.g=f.g+g)}function Tzn(n,t){var e;if(n.e)throw Hp(new Fy((ED(git),AYn+git.k+$Yn)));if(!SS(n.a,t))throw Hp(new dy(LYn+t+NYn));if(t==n.d)return n;switch(e=n.d,n.d=t,e.g){case 0:switch(t.g){case 2:Hmn(n);break;case 1:Con(n),Hmn(n);break;case 4:nEn(n),Hmn(n);break;case 3:nEn(n),Con(n),Hmn(n)}break;case 2:switch(t.g){case 1:Con(n),RRn(n);break;case 4:nEn(n),Hmn(n);break;case 3:nEn(n),Con(n),Hmn(n)}break;case 1:switch(t.g){case 2:Con(n),RRn(n);break;case 4:Con(n),nEn(n),Hmn(n);break;case 3:Con(n),nEn(n),Con(n),Hmn(n)}break;case 4:switch(t.g){case 2:nEn(n),Hmn(n);break;case 1:nEn(n),Con(n),Hmn(n);break;case 3:Con(n),RRn(n)}break;case 3:switch(t.g){case 2:Con(n),nEn(n),Hmn(n);break;case 1:Con(n),nEn(n),Con(n),Hmn(n);break;case 4:Con(n),RRn(n)}}return n}function Mzn(n,t){var e;if(n.d)throw Hp(new Fy((ED(Yat),AYn+Yat.k+$Yn)));if(!PC(n.a,t))throw Hp(new dy(LYn+t+NYn));if(t==n.c)return n;switch(e=n.c,n.c=t,e.g){case 0:switch(t.g){case 2:Zon(n);break;case 1:Pon(n),Zon(n);break;case 4:tEn(n),Zon(n);break;case 3:tEn(n),Pon(n),Zon(n)}break;case 2:switch(t.g){case 1:Pon(n),KRn(n);break;case 4:tEn(n),Zon(n);break;case 3:tEn(n),Pon(n),Zon(n)}break;case 1:switch(t.g){case 2:Pon(n),KRn(n);break;case 4:Pon(n),tEn(n),Zon(n);break;case 3:Pon(n),tEn(n),Pon(n),Zon(n)}break;case 4:switch(t.g){case 2:tEn(n),Zon(n);break;case 1:tEn(n),Pon(n),Zon(n);break;case 3:Pon(n),KRn(n)}break;case 3:switch(t.g){case 2:Pon(n),tEn(n),Zon(n);break;case 1:Pon(n),tEn(n),Pon(n),Zon(n);break;case 4:Pon(n),KRn(n)}}return n}function Szn(n,t,i){var r,c,a,u,o,s,f,l;for(s=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));s.e!=s.i.gc();)for(c=new oz(ZL(dLn(o=BB(kpn(s),33)).a.Kc(),new h));dAn(c);){if(!(r=BB(U5(c),79)).b&&(r.b=new hK(KOt,r,4,7)),!(r.b.i<=1&&(!r.c&&(r.c=new hK(KOt,r,5,8)),r.c.i<=1)))throw Hp(new ck("Graph must not contain hyperedges."));if(!nAn(r)&&o!=PTn(BB(Wtn((!r.c&&(r.c=new hK(KOt,r,5,8)),r.c),0),82)))for(qan(f=new IR,r),hon(f,(Mrn(),sat),r),Rl(f,BB(qI(AY(i.f,o)),144)),Kl(f,BB(RX(i,PTn(BB(Wtn((!r.c&&(r.c=new hK(KOt,r,5,8)),r.c),0),82))),144)),WB(t.c,f),u=new AL((!r.n&&(r.n=new eU(zOt,r,1,7)),r.n));u.e!=u.i.gc();)qan(l=new m4(f,(a=BB(kpn(u),137)).a),a),hon(l,sat,a),l.e.a=e.Math.max(a.g,1),l.e.b=e.Math.max(a.f,1),_Bn(l),WB(t.d,l)}}function Pzn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(EJ(l=new eUn(n),!(t==(Ffn(),HPt)||t==KPt)),f=l.a,b=new bm,Dtn(),u=0,s=(c=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;u<s;++u)i=c[u],(h=fL(f,Git,i))&&(b.d=e.Math.max(b.d,h.Re()));for(a=0,o=(r=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;a<o;++a)i=r[a],(h=fL(f,Uit,i))&&(b.a=e.Math.max(b.a,h.Re()));for(p=0,m=(d=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;p<m;++p)(h=fL(f,d[p],Git))&&(b.b=e.Math.max(b.b,h.Se()));for(g=0,v=(w=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;g<v;++g)(h=fL(f,w[g],Uit))&&(b.c=e.Math.max(b.c,h.Se()));return b.d>0&&(b.d+=f.n.d,b.d+=f.d),b.a>0&&(b.a+=f.n.a,b.a+=f.d),b.b>0&&(b.b+=f.n.b,b.b+=f.d),b.c>0&&(b.c+=f.n.c,b.c+=f.d),b}function Czn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d;for(b=i.d,l=i.c,u=(a=new xC(i.f.a+i.d.b+i.d.c,i.f.b+i.d.d+i.d.a)).b,h=new Wb(n.a);h.a<h.c.c.length;)if((o=BB(n0(h),10)).k==(uSn(),Mut)){switch(r=BB(mMn(o,(hWn(),Qft)),61),c=BB(mMn(o,Yft),8),f=o.n,r.g){case 2:f.a=i.f.a+b.c-l.a;break;case 4:f.a=-l.a-b.b}switch(d=0,r.g){case 2:case 4:t==(QEn(),WCt)?(w=Gy(MD(mMn(o,Tlt))),f.b=a.b*w-BB(mMn(o,(HXn(),npt)),8).b,d=f.b+c.b,Jan(o,!1,!0)):t==XCt&&(f.b=Gy(MD(mMn(o,Tlt)))-BB(mMn(o,(HXn(),npt)),8).b,d=f.b+c.b,Jan(o,!1,!0))}u=e.Math.max(u,d)}for(i.f.b+=u-a.b,s=new Wb(n.a);s.a<s.c.c.length;)if((o=BB(n0(s),10)).k==(uSn(),Mut))switch(r=BB(mMn(o,(hWn(),Qft)),61),f=o.n,r.g){case 1:f.b=-l.b-b.d;break;case 3:f.b=i.f.b+b.a-l.b}}function Izn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;for(r=BB(mMn(n,(qqn(),skt)),33),o=DWn,s=DWn,a=_Vn,u=_Vn,k=spn(n.b,0);k.b!=k.d.c;)w=(m=BB(b3(k),86)).e,d=m.f,o=e.Math.min(o,w.a-d.a/2),s=e.Math.min(s,w.b-d.b/2),a=e.Math.max(a,w.a+d.a/2),u=e.Math.max(u,w.b+d.b/2);for(l=new xC((b=BB(ZAn(r,(CAn(),Ikt)),116)).b-o,b.d-s),y=spn(n.b,0);y.b!=y.d.c;)cL(f=mMn(m=BB(b3(y),86),skt),239)&&SA(c=BB(f,33),(h=UR(m.e,l)).a-c.g/2,h.b-c.f/2);for(v=spn(n.a,0);v.b!=v.d.c;)p=BB(b3(v),188),(i=BB(mMn(p,skt),79))&&(r5(t=p.a,g=new wA(p.b.e),t.a,t.a.a),r5(t,j=new wA(p.c.e),t.c.b,t.c),ZMn(g,BB(Dpn(t,1),8),p.b.f),ZMn(j,BB(Dpn(t,t.b-2),8),p.c.f),VFn(t,cDn(i,!0,!0)));KUn(r,a-o+(b.b+b.c),u-s+(b.d+b.a),!1,!1)}function Ozn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(yR(o=new M2(s=n.b,0),new HX(n)),g=!1,c=1;o.b<o.d.gc();){for(Px(o.b<o.d.gc()),u=BB(o.d.Xb(o.c=o.b++),29),l1(c,s.c.length),b=BB(s.c[c],29),d=(w=a0(u.a)).c.length,l=new Wb(w);l.a<l.c.c.length;)PZ(h=BB(n0(l),10),b);if(g){for(f=W1(new fy(w),0);f.c.Sb();)for(r=new Wb(a0(fbn(h=BB(w5(f),10))));r.a<r.c.c.length;)tBn(i=BB(n0(r),17),!0),hon(n,(hWn(),qft),(hN(),!0)),e=iGn(n,i,d),t=BB(mMn(h,Rft),305),p=BB(xq(e,e.c.length-1),17),t.k=p.c.i,t.n=p,t.b=i.d.i,t.c=i;g=!1}else 0!=w.c.length&&(l1(0,w.c.length),BB(w.c[0],10).k==(uSn(),Tut)&&(g=!0,c=-1));++c}for(a=new M2(n.b,0);a.b<a.d.gc();)Px(a.b<a.d.gc()),0==BB(a.d.Xb(a.c=a.b++),29).a.c.length&&fW(a)}function Azn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if((f=BB(BB(h6(n.r,t),21),84)).gc()<=2||t==(kUn(),oIt)||t==(kUn(),CIt))JUn(n,t);else{for(g=n.u.Hc((lIn(),cIt)),i=t==(kUn(),sIt)?(Dan(),Rrt):(Dan(),Nrt),v=t==sIt?(G7(),irt):(G7(),crt),r=Zk(H_(i),n.s),p=t==sIt?RQn:KQn,h=f.Kc();h.Ob();)!(o=BB(h.Pb(),111)).c||o.c.d.c.length<=0||(d=o.b.rf(),w=o.e,(b=(l=o.c).i).b=(a=l.n,l.e.a+a.b+a.c),b.a=(u=l.n,l.e.b+u.d+u.a),g?(b.c=w.a-(c=l.n,l.e.a+c.b+c.c)-n.s,g=!1):b.c=w.a+d.a+n.s,OY(v,uJn),l.f=v,l9(l,(J9(),Jit)),WB(r.d,new xG(b,kln(r,b))),p=t==sIt?e.Math.min(p,w.b):e.Math.max(p,w.b+o.b.rf().b));for(p+=t==sIt?-n.t:n.t,Pwn((r.e=p,r)),s=f.Kc();s.Ob();)!(o=BB(s.Pb(),111)).c||o.c.d.c.length<=0||((b=o.c.i).c-=o.e.a,b.d-=o.e.b)}}function $zn(n,t,i){var r;if(OTn(i,"StretchWidth layering",1),0!=t.a.c.length){for(n.c=t,n.t=0,n.u=0,n.i=RQn,n.g=KQn,n.d=Gy(MD(mMn(t,(HXn(),ypt)))),zpn(n),PAn(n),SAn(n),xjn(n),ddn(n),n.i=e.Math.max(1,n.i),n.g=e.Math.max(1,n.g),n.d=n.d/n.i,n.f=n.g/n.i,n.s=_vn(n),r=new HX(n.c),WB(n.c.b,r),n.r=a0(n.p),n.n=TJ(n.k,n.k.length);0!=n.r.c.length;)n.o=zhn(n),!n.o||Ton(n)&&0!=n.b.a.gc()?(xEn(n,r),r=new HX(n.c),WB(n.c.b,r),Frn(n.a,n.b),n.b.a.$b(),n.t=n.u,n.u=0):Ton(n)?(n.c.b.c=x8(Ant,HWn,1,0,5,1),r=new HX(n.c),WB(n.c.b,r),n.t=0,n.u=0,n.b.a.$b(),n.a.a.$b(),++n.f,n.r=a0(n.p),n.n=TJ(n.k,n.k.length)):(PZ(n.o,r),y7(n.r,n.o),TU(n.b,n.o),n.t=n.t-n.k[n.o.p]*n.d+n.j[n.o.p],n.u+=n.e[n.o.p]*n.d);t.a.c=x8(Ant,HWn,1,0,5,1),JPn(t.b),HSn(i)}else HSn(i)}function Lzn(n){var t,i,r,c;for(JT(AV(new Rq(null,new w1(n.a.b,16)),new yr),new kr),fEn(n),JT(AV(new Rq(null,new w1(n.a.b,16)),new jr),new Er),n.c==(Mbn(),JPt)&&(JT(AV(wnn(new Rq(null,new w1(new Cb(n.f),1)),new Tr),new Mr),new Md(n)),JT(AV($V(wnn(wnn(new Rq(null,new w1(n.d.b,16)),new Sr),new Pr),new Cr),new Ir),new Pd(n))),c=new xC(RQn,RQn),t=new xC(KQn,KQn),r=new Wb(n.a.b);r.a<r.c.c.length;)i=BB(n0(r),57),c.a=e.Math.min(c.a,i.d.c),c.b=e.Math.min(c.b,i.d.d),t.a=e.Math.max(t.a,i.d.c+i.d.b),t.b=e.Math.max(t.b,i.d.d+i.d.a);UR(kO(n.d.c),qx(new xC(c.a,c.b))),UR(kO(n.d.f),XR(new xC(t.a,t.b),c)),oNn(n,c,t),$U(n.f),$U(n.b),$U(n.g),$U(n.e),n.a.a.c=x8(Ant,HWn,1,0,5,1),n.a.b.c=x8(Ant,HWn,1,0,5,1),n.a=null,n.d=null}function Nzn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(i=new Np,w=new Wb(t.a);w.a<w.c.c.length;)if((l=(b=BB(n0(w),10)).e)&&(gun(i,Nzn(n,l,b)),EGn(n,l,b),BB(mMn(l,(hWn(),Zft)),21).Hc((bDn(),lft))))for(p=BB(mMn(b,(HXn(),ept)),98),f=BB(mMn(b,cpt),174).Hc((lIn(),eIt)),g=new Wb(b.j);g.a<g.c.c.length;)for(d=BB(n0(g),11),(r=BB(RX(n.b,d),10))||(hon(r=bXn(d,p,d.j,-(d.e.c.length-d.g.c.length),null,new Gj,d.o,BB(mMn(l,Udt),103),l),dlt,d),VW(n.b,d,r),WB(l.a,r)),c=BB(xq(r.j,0),11),s=new Wb(d.f);s.a<s.c.c.length;)o=BB(n0(s),70),(a=new qj).o.a=o.o.a,a.o.b=o.o.b,WB(c.f,a),f||(v=d.j,h=0,Hz(BB(mMn(b,cpt),21))&&(h=$In(o.n,o.o,d.o,0,v)),p==(QEn(),QCt)||(kUn(),bIt).Hc(v)?a.o.a=h:a.o.b=h);return BGn(n,t,e,i,u=new Np),e&&Cqn(n,t,e,u),u}function xzn(n,t,e){var i,r,c,a,u,o,s,h;if(!n.c[t.c.p][t.p].e){for(n.c[t.c.p][t.p].e=!0,n.c[t.c.p][t.p].b=0,n.c[t.c.p][t.p].d=0,n.c[t.c.p][t.p].a=null,h=new Wb(t.j);h.a<h.c.c.length;)for(s=BB(n0(h),11),o=(e?new Hw(s):new Gw(s)).Kc();o.Ob();)(a=(u=BB(o.Pb(),11)).i).c==t.c?a!=t&&(xzn(n,a,e),n.c[t.c.p][t.p].b+=n.c[a.c.p][a.p].b,n.c[t.c.p][t.p].d+=n.c[a.c.p][a.p].d):(n.c[t.c.p][t.p].d+=n.g[u.p],++n.c[t.c.p][t.p].b);if(c=BB(mMn(t,(hWn(),xft)),15))for(r=c.Kc();r.Ob();)i=BB(r.Pb(),10),t.c==i.c&&(xzn(n,i,e),n.c[t.c.p][t.p].b+=n.c[i.c.p][i.p].b,n.c[t.c.p][t.p].d+=n.c[i.c.p][i.p].d);n.c[t.c.p][t.p].b>0&&(n.c[t.c.p][t.p].d+=H$n(n.i,24)*uYn*.07000000029802322-.03500000014901161,n.c[t.c.p][t.p].a=n.c[t.c.p][t.p].d/n.c[t.c.p][t.p].b)}}function Dzn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w;for(l=new Wb(n);l.a<l.c.c.length;){for(nx((f=BB(n0(l),10)).n),nx(f.o),V6(f.f),VRn(f),aRn(f),w=new Wb(f.j);w.a<w.c.c.length;){for(nx((b=BB(n0(w),11)).n),nx(b.a),nx(b.o),qCn(b,amn(b.j)),(r=BB(mMn(b,(HXn(),ipt)),19))&&hon(b,ipt,iln(-r.a)),i=new Wb(b.g);i.a<i.c.c.length;){for(t=spn((e=BB(n0(i),17)).a,0);t.b!=t.d.c;)nx(BB(b3(t),8));if(a=BB(mMn(e,vgt),74))for(c=spn(a,0);c.b!=c.d.c;)nx(BB(b3(c),8));for(s=new Wb(e.b);s.a<s.c.c.length;)nx((u=BB(n0(s),70)).n),nx(u.o)}for(h=new Wb(b.f);h.a<h.c.c.length;)nx((u=BB(n0(h),70)).n),nx(u.o)}for(f.k==(uSn(),Mut)&&(hon(f,(hWn(),Qft),amn(BB(mMn(f,Qft),61))),wxn(f)),o=new Wb(f.b);o.a<o.c.c.length;)VRn(u=BB(n0(o),70)),nx(u.o),nx(u.n)}}function Rzn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y;for(n.e=t,u=nOn(t),m=new Np,i=new Wb(u);i.a<i.c.c.length;){for(e=BB(n0(i),15),y=new Np,m.c[m.c.length]=y,o=new Rv,l=e.Kc();l.Ob();){for(c=JRn(n,f=BB(l.Pb(),33),!0,0,0),y.c[y.c.length]=c,new xC(b=f.i,w=f.j),!f.n&&(f.n=new eU(zOt,f,1,7)),h=new AL(f.n);h.e!=h.i.gc();)r=JRn(n,BB(kpn(h),137),!1,b,w),y.c[y.c.length]=r;for(!f.c&&(f.c=new eU(XOt,f,9,9)),g=new AL(f.c);g.e!=g.i.gc();)for(a=JRn(n,d=BB(kpn(g),118),!1,b,w),y.c[y.c.length]=a,p=d.i+b,v=d.j+w,!d.n&&(d.n=new eU(zOt,d,1,7)),s=new AL(d.n);s.e!=s.i.gc();)r=JRn(n,BB(kpn(s),137),!1,p,v),y.c[y.c.length]=r;Frn(o,JQ(Wen(Pun(Gk(xnt,1),HWn,20,0,[dLn(f),wLn(f)]))))}ULn(n,o,y)}return n.f=new _j(m),qan(n.f,t),n.f}function Kzn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g;null==(w=RX(n.e,i))&&(s=BB(w=new py,183),o=new GX(t+"_s"+r),rtn(s,q6n,o)),nW(e,b=BB(w,183)),qQ(g=new py,"x",i.j),qQ(g,"y",i.k),rtn(b,U6n,g),qQ(f=new py,"x",i.b),qQ(f,"y",i.c),rtn(b,"endPoint",f),!WE((!i.a&&(i.a=new $L(xOt,i,5)),i.a))&&(c=new Wg(h=new Cl),e5((!i.a&&(i.a=new $L(xOt,i,5)),i.a),c),rtn(b,D6n,h)),!!Svn(i)&&cMn(n.a,b,K6n,RPn(n,Svn(i))),!!Pvn(i)&&cMn(n.a,b,R6n,RPn(n,Pvn(i))),!(0==(!i.e&&(i.e=new hK(FOt,i,10,9)),i.e).i)&&(a=new SI(n,l=new Cl),e5((!i.e&&(i.e=new hK(FOt,i,10,9)),i.e),a),rtn(b,F6n,l)),0!=(!i.g&&(i.g=new hK(FOt,i,9,10)),i.g).i&&(u=new PI(n,d=new Cl),e5((!i.g&&(i.g=new hK(FOt,i,9,10)),i.g),u),rtn(b,_6n,d))}function _zn(n){var t,i,r,c,a,u,o;for(qD(),r=n.f.n,u=EX(n.r).a.nc();u.Ob();){if(c=0,(a=BB(u.Pb(),111)).b.Xe((sWn(),aPt))&&(c=Gy(MD(a.b.We(aPt))))<0)switch(a.b.Hf().g){case 1:r.d=e.Math.max(r.d,-c);break;case 3:r.a=e.Math.max(r.a,-c);break;case 2:r.c=e.Math.max(r.c,-c);break;case 4:r.b=e.Math.max(r.b,-c)}if(Hz(n.u))switch(t=vcn(a.b,c),o=!BB(n.e.We(qSt),174).Hc((n_n(),HIt)),i=!1,a.b.Hf().g){case 1:i=t>r.d,r.d=e.Math.max(r.d,t),o&&i&&(r.d=e.Math.max(r.d,r.a),r.a=r.d+c);break;case 3:i=t>r.a,r.a=e.Math.max(r.a,t),o&&i&&(r.a=e.Math.max(r.a,r.d),r.d=r.a+c);break;case 2:i=t>r.c,r.c=e.Math.max(r.c,t),o&&i&&(r.c=e.Math.max(r.b,r.c),r.b=r.c+c);break;case 4:i=t>r.b,r.b=e.Math.max(r.b,t),o&&i&&(r.b=e.Math.max(r.b,r.c),r.c=r.b+c)}}}function Fzn(n){var t,e,i,r,c,a,u,o,s,h,f;for(s=new Wb(n);s.a<s.c.c.length;){switch(o=BB(n0(s),10),c=null,(a=BB(mMn(o,(HXn(),kgt)),163)).g){case 1:case 2:Jun(),c=$ht;break;case 3:case 4:Jun(),c=Oht}if(c)hon(o,(hWn(),Gft),(Jun(),$ht)),c==Oht?RNn(o,a,(ain(),Hvt)):c==$ht&&RNn(o,a,(ain(),qvt));else if(vA(BB(mMn(o,ept),98))&&0!=o.j.c.length){for(t=!0,f=new Wb(o.j);f.a<f.c.c.length;){if(!((h=BB(n0(f),11)).j==(kUn(),oIt)&&h.e.c.length-h.g.c.length>0||h.j==CIt&&h.e.c.length-h.g.c.length<0)){t=!1;break}for(r=new Wb(h.g);r.a<r.c.c.length;)if(e=BB(n0(r),17),(u=BB(mMn(e.d.i,kgt),163))==(Tbn(),Blt)||u==Hlt){t=!1;break}for(i=new Wb(h.e);i.a<i.c.c.length;)if(e=BB(n0(i),17),(u=BB(mMn(e.c.i,kgt),163))==(Tbn(),_lt)||u==Flt){t=!1;break}}t&&RNn(o,a,(ain(),Gvt))}}}function Bzn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;for(E=0,w=0,l=new Wb(t.e);l.a<l.c.c.length;){for(f=BB(n0(l),10),b=0,o=0,s=i?BB(mMn(f,Xmt),19).a:_Vn,v=r?BB(mMn(f,Wmt),19).a:_Vn,h=e.Math.max(s,v),y=new Wb(f.j);y.a<y.c.c.length;){if(m=BB(n0(y),11),k=f.n.b+m.n.b+m.a.b,r)for(u=new Wb(m.g);u.a<u.c.c.length;)d=(g=(a=BB(n0(u),17)).d).i,t!=n.a[d.p]&&(p=e.Math.max(BB(mMn(d,Xmt),19).a,BB(mMn(d,Wmt),19).a),(j=BB(mMn(a,(HXn(),bpt)),19).a)>=h&&j>=p&&(b+=d.n.b+g.n.b+g.a.b-k,++o));if(i)for(u=new Wb(m.e);u.a<u.c.c.length;)d=(g=(a=BB(n0(u),17)).c).i,t!=n.a[d.p]&&(p=e.Math.max(BB(mMn(d,Xmt),19).a,BB(mMn(d,Wmt),19).a),(j=BB(mMn(a,(HXn(),bpt)),19).a)>=h&&j>=p&&(b+=d.n.b+g.n.b+g.a.b-k,++o))}o>0&&(E+=b/o,++w)}w>0?(t.a=c*E/w,t.g=w):(t.a=0,t.g=0)}function Hzn(n,t){var e,i,r,c,a,u,o,s,h,f;for(i=new Wb(n.a.b);i.a<i.c.c.length;)for(u=new Wb(BB(n0(i),29).a);u.a<u.c.c.length;)a=BB(n0(u),10),t.j[a.p]=a,t.i[a.p]=t.o==(oZ(),cyt)?KQn:RQn;for($U(n.c),c=n.a.b,t.c==(gJ(),nyt)&&(c=cL(c,152)?o6(BB(c,152)):cL(c,131)?BB(c,131).a:cL(c,54)?new fy(c):new CT(c)),R9(n.e,t,n.b),yS(t.p,null),r=c.Kc();r.Ob();)for(o=BB(r.Pb(),29).a,t.o==(oZ(),cyt)&&(o=cL(o,152)?o6(BB(o,152)):cL(o,131)?BB(o,131).a:cL(o,54)?new fy(o):new CT(o)),f=o.Kc();f.Ob();)h=BB(f.Pb(),10),t.g[h.p]==h&&oXn(n,h,t);for(Hqn(n,t),e=c.Kc();e.Ob();)for(f=new Wb(BB(e.Pb(),29).a);f.a<f.c.c.length;)h=BB(n0(f),10),t.p[h.p]=t.p[t.g[h.p].p],h==t.g[h.p]&&(s=Gy(t.i[t.j[h.p].p]),(t.o==(oZ(),cyt)&&s>KQn||t.o==ryt&&s<RQn)&&(t.p[h.p]=Gy(t.p[h.p])+s));n.e.cg()}function qzn(n,t,e,i){var r,c,a,u,o;return pNn(u=new eUn(t),i),r=!0,n&&n.Xe((sWn(),bSt))&&(r=(c=BB(n.We((sWn(),bSt)),103))==(Ffn(),BPt)||c==_Pt||c==FPt),oRn(u,!1),Otn(u.e.wf(),new $_(u,!1,r)),LJ(u,u.f,(Dtn(),Git),(kUn(),sIt)),LJ(u,u.f,Uit,SIt),LJ(u,u.g,Git,CIt),LJ(u,u.g,Uit,oIt),Bpn(u,sIt),Bpn(u,SIt),hV(u,oIt),hV(u,CIt),qD(),(a=u.A.Hc((mdn(),DIt))&&u.B.Hc((n_n(),UIt))?ndn(u):null)&&rj(u.a,a),_zn(u),ryn(u),cyn(u),VGn(u),MKn(u),mkn(u),_gn(u,sIt),_gn(u,SIt),CRn(u),PHn(u),e?(Gbn(u),ykn(u),_gn(u,oIt),_gn(u,CIt),o=u.B.Hc((n_n(),XIt)),MCn(u,o,sIt),MCn(u,o,SIt),SCn(u,o,oIt),SCn(u,o,CIt),JT(new Rq(null,new w1(new Ob(u.i),0)),new In),JT(AV(new Rq(null,EX(u.r).a.oc()),new On),new An),BEn(u),u.e.uf(u.o),JT(new Rq(null,EX(u.r).a.oc()),new Ln),u.o):u.o}function Gzn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(h=RQn,r=new Wb(n.a.b);r.a<r.c.c.length;)t=BB(n0(r),81),h=e.Math.min(h,t.d.f.g.c+t.e.a);for(w=new YT,u=new Wb(n.a.a);u.a<u.c.c.length;)(a=BB(n0(u),189)).i=h,0==a.e&&r5(w,a,w.c.b,w.c);for(;0!=w.b;){for(c=(a=BB(0==w.b?null:(Px(0!=w.b),Atn(w,w.a.a)),189)).f.g.c,b=a.a.a.ec().Kc();b.Ob();)f=BB(b.Pb(),81),g=a.i+f.e.a,f.d.g||f.g.c<g?f.o=g:f.o=f.g.c;for(c-=a.f.o,a.b+=c,n.c==(Ffn(),FPt)||n.c==KPt?a.c+=c:a.c-=c,l=a.a.a.ec().Kc();l.Ob();)for(s=(f=BB(l.Pb(),81)).f.Kc();s.Ob();)o=BB(s.Pb(),81),d=dA(n.c)?n.f.ef(f,o):n.f.ff(f,o),o.d.i=e.Math.max(o.d.i,f.o+f.g.b+d-o.e.a),o.k||(o.d.i=e.Math.max(o.d.i,o.g.c-o.e.a)),--o.d.e,0==o.d.e&&DH(w,o.d)}for(i=new Wb(n.a.b);i.a<i.c.c.length;)(t=BB(n0(i),81)).g.c=t.o}function zzn(n){var t,e,i,r,c,a,u,o;switch(u=n.b,t=n.a,0===BB(mMn(n,(_kn(),Mit)),427).g?m$(u,new nw(new Gn)):m$(u,new nw(new zn)),1===BB(mMn(n,Eit),428).g?(m$(u,new qn),m$(u,new Un),m$(u,new Kn)):(m$(u,new qn),m$(u,new Hn)),BB(mMn(n,Pit),250).g){case 0:o=new Yn;break;case 1:o=new Vn;break;case 2:o=new Qn;break;case 3:o=new Wn;break;case 5:o=new Ow(new Qn);break;case 4:o=new Ow(new Vn);break;case 7:o=new DS(new Ow(new Vn),new Ow(new Qn));break;case 8:o=new DS(new Ow(new Wn),new Ow(new Qn));break;default:o=new Ow(new Wn)}for(a=new Wb(u);a.a<a.c.c.length;){for(c=BB(n0(a),167),r=0,e=new rI(iln(i=0),iln(r));B_n(t,c,i,r);)e=BB(o.Ce(e,c),46),i=BB(e.a,19).a,r=BB(e.b,19).a;_Rn(t,c,i,r)}}function Uzn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;for(l=(c=n.f.b).a,h=c.b,w=n.e.g,b=n.e.f,MA(n.e,c.a,c.b),j=l/w,E=h/b,s=new AL(mV(n.e));s.e!=s.i.gc();)Pen(o=BB(kpn(s),137),o.i*j),Cen(o,o.j*E);for(v=new AL(yV(n.e));v.e!=v.i.gc();)y=(p=BB(kpn(v),118)).i,k=p.j,y>0&&Pen(p,y*j),k>0&&Cen(p,k*E);for(nan(n.b,new lt),t=new Np,u=new usn(new Pb(n.c).a);u.b;)i=BB((a=ten(u)).cd(),79),e=BB(a.dd(),395).a,r=cDn(i,!1,!1),VFn(f=lTn(PMn(i),qSn(r),e),r),(m=CMn(i))&&-1==E7(t,m,0)&&(t.c[t.c.length]=m,sQ(m,(Px(0!=f.b),BB(f.a.a.c,8)),e));for(g=new usn(new Pb(n.d).a);g.b;)i=BB((d=ten(g)).cd(),79),e=BB(d.dd(),395).a,r=cDn(i,!1,!1),f=lTn(OMn(i),Jon(qSn(r)),e),VFn(f=Jon(f),r),(m=IMn(i))&&-1==E7(t,m,0)&&(t.c[t.c.length]=m,sQ(m,(Px(0!=f.b),BB(f.c.b.c,8)),e))}function Xzn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;if(0!=i.c.length){for(w=new Np,b=new Wb(i);b.a<b.c.c.length;)WB(w,new xC((l=BB(n0(b),33)).i,l.j));for(r.n&&t&&y0(r,o2(t),(Bsn(),uOt));NMn(n,i);)E$n(n,i,!1);for(r.n&&t&&y0(r,o2(t),(Bsn(),uOt)),u=0,o=0,c=null,0!=i.c.length&&(l1(0,i.c.length),u=(c=BB(i.c[0],33)).i-(l1(0,w.c.length),BB(w.c[0],8)).a,o=c.j-(l1(0,w.c.length),BB(w.c[0],8)).b),a=e.Math.sqrt(u*u+o*o),f=Uhn(i);0!=f.a.gc();){for(h=f.a.ec().Kc();h.Ob();)s=BB(h.Pb(),33),g=(d=n.f).i+d.g/2,p=d.j+d.f/2,v=s.i+s.g/2,y=s.j+s.f/2-p,j=(m=v-g)/(k=e.Math.sqrt(m*m+y*y)),E=y/k,Pen(s,s.i+j*a),Cen(s,s.j+E*a);r.n&&t&&y0(r,o2(t),(Bsn(),uOt)),f=Uhn(new t_(f))}n.a&&n.a.lg(new t_(f)),r.n&&t&&y0(r,o2(t),(Bsn(),uOt)),Xzn(n,t,new t_(f),r)}}function Wzn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if(g=n.n,p=n.o,b=n.d,l=Gy(MD(edn(n,(HXn(),ppt)))),t){for(f=l*(t.gc()-1),w=0,s=t.Kc();s.Ob();)f+=(u=BB(s.Pb(),10)).o.a,w=e.Math.max(w,u.o.b);for(v=g.a-(f-p.a)/2,a=g.b-b.d+w,c=r=p.a/(t.gc()+1),o=t.Kc();o.Ob();)(u=BB(o.Pb(),10)).n.a=v,u.n.b=a-u.o.b,v+=u.o.a+l,(h=DLn(u)).n.a=u.o.a/2-h.a.a,h.n.b=u.o.b,(d=BB(mMn(u,(hWn(),Kft)),11)).e.c.length+d.g.c.length==1&&(d.n.a=c-d.a.a,d.n.b=0,CZ(d,n)),c+=r}if(i){for(f=l*(i.gc()-1),w=0,s=i.Kc();s.Ob();)f+=(u=BB(s.Pb(),10)).o.a,w=e.Math.max(w,u.o.b);for(v=g.a-(f-p.a)/2,a=g.b+p.b+b.a-w,c=r=p.a/(i.gc()+1),o=i.Kc();o.Ob();)(u=BB(o.Pb(),10)).n.a=v,u.n.b=a,v+=u.o.a+l,(h=DLn(u)).n.a=u.o.a/2-h.a.a,h.n.b=0,(d=BB(mMn(u,(hWn(),Kft)),11)).e.c.length+d.g.c.length==1&&(d.n.a=c-d.a.a,d.n.b=p.b,CZ(d,n)),c+=r}}function Vzn(n,t){var i,r,c,a,u,o;if(BB(mMn(t,(hWn(),Zft)),21).Hc((bDn(),lft))){for(o=new Wb(t.a);o.a<o.c.c.length;)(a=BB(n0(o),10)).k==(uSn(),Cut)&&(c=BB(mMn(a,(HXn(),Cgt)),142),n.c=e.Math.min(n.c,a.n.a-c.b),n.a=e.Math.max(n.a,a.n.a+a.o.a+c.c),n.d=e.Math.min(n.d,a.n.b-c.d),n.b=e.Math.max(n.b,a.n.b+a.o.b+c.a));for(u=new Wb(t.a);u.a<u.c.c.length;)if((a=BB(n0(u),10)).k!=(uSn(),Cut))switch(a.k.g){case 2:if((r=BB(mMn(a,(HXn(),kgt)),163))==(Tbn(),Flt)){a.n.a=n.c-10,Yyn(a,new Ge).Jb(new rd(a));break}if(r==Hlt){a.n.a=n.a+10,Yyn(a,new ze).Jb(new cd(a));break}if((i=BB(mMn(a,ilt),303))==(z7(),Cft)){lqn(a).Jb(new ad(a)),a.n.b=n.d-10;break}if(i==Sft){lqn(a).Jb(new ud(a)),a.n.b=n.b+10;break}break;default:throw Hp(new _y("The node type "+a.k+" is not supported by the "+Jot))}}}function Qzn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;for(o=new xC(i.i+i.g/2,i.j+i.f/2),l=XHn(i),b=BB(ZAn(t,(HXn(),ept)),98),d=BB(ZAn(i,upt),61),BI(lpn(i),tpt)||(w=0==i.i&&0==i.j?0:tMn(i,d),Ypn(i,tpt,w)),hon(r=bXn(i,b,d,l,new xC(t.g,t.f),o,new xC(i.g,i.f),BB(mMn(e,Udt),103),e),(hWn(),dlt),i),Hl(c=BB(xq(r.j,0),11),j_n(i)),hon(r,cpt,(lIn(),nbn(rIt))),h=BB(ZAn(t,cpt),174).Hc(eIt),u=new AL((!i.n&&(i.n=new eU(zOt,i,1,7)),i.n));u.e!=u.i.gc();)if(!qy(TD(ZAn(a=BB(kpn(u),137),Ggt)))&&a.a&&(f=Hhn(a),WB(c.f,f),!h))switch(s=0,Hz(BB(ZAn(t,cpt),21))&&(s=$In(new xC(a.i,a.j),new xC(a.g,a.f),new xC(i.g,i.f),0,d)),d.g){case 2:case 4:f.o.a=s;break;case 1:case 3:f.o.b=s}hon(r,Cpt,MD(ZAn(JJ(t),Cpt))),hon(r,Ipt,MD(ZAn(JJ(t),Ipt))),hon(r,Spt,MD(ZAn(JJ(t),Spt))),WB(e.a,r),VW(n.a,i,r)}function Yzn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(OTn(e,"Processor arrange level",1),h=0,SQ(),_rn(t,new ap((qqn(),ikt))),c=t.b,u=spn(t,t.b),s=!0;s&&u.b.b!=u.d.a;)g=BB(U0(u),86),0==BB(mMn(g,ikt),19).a?--c:s=!1;if(a=new n_(new s1(t,0,c)),o=new n_(new s1(t,c,t.b)),0==a.b)for(b=spn(o,0);b.b!=b.d.c;)hon(BB(b3(b),86),hkt,iln(h++));else for(f=a.b,m=spn(a,0);m.b!=m.d.c;){for(hon(v=BB(b3(m),86),hkt,iln(h++)),Yzn(n,i=xun(v),mcn(e,1/f|0)),_rn(i,QW(new ap(hkt))),l=new YT,p=spn(i,0);p.b!=p.d.c;)for(g=BB(b3(p),86),d=spn(v.d,0);d.b!=d.d.c;)(w=BB(b3(d),188)).c==g&&r5(l,w,l.c.b,l.c);for(yQ(v.d),Frn(v.d,l),u=spn(o,o.b),r=v.d.b,s=!0;0<r&&s&&u.b.b!=u.d.a;)g=BB(U0(u),86),0==BB(mMn(g,ikt),19).a?(hon(g,hkt,iln(h++)),--r,mtn(u)):s=!1}HSn(e)}function Jzn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(OTn(t,"Inverted port preprocessing",1),u=new M2(n.b,0),e=null,g=new Np;u.b<u.d.gc();){for(d=e,Px(u.b<u.d.gc()),e=BB(u.d.Xb(u.c=u.b++),29),h=new Wb(g);h.a<h.c.c.length;)PZ(o=BB(n0(h),10),d);for(g.c=x8(Ant,HWn,1,0,5,1),f=new Wb(e.a);f.a<f.c.c.length;)if((o=BB(n0(f),10)).k==(uSn(),Cut)&&vA(BB(mMn(o,(HXn(),ept)),98))){for(w=cRn(o,(ain(),Hvt),(kUn(),oIt)).Kc();w.Ob();)for(l=BB(w.Pb(),11),r=0,c=(i=BB(Qgn(a=l.e,x8(yut,c1n,17,a.c.length,0,1)),474)).length;r<c;++r)$Bn(n,l,i[r],g);for(b=cRn(o,qvt,CIt).Kc();b.Ob();)for(l=BB(b.Pb(),11),r=0,c=(i=BB(Qgn(a=l.g,x8(yut,c1n,17,a.c.length,0,1)),474)).length;r<c;++r)ABn(n,l,i[r],g)}}for(s=new Wb(g);s.a<s.c.c.length;)PZ(o=BB(n0(s),10),e);HSn(t)}function Zzn(n,t,e,i,r,c){var a,u,o,s,h,f;for(qan(s=new CSn,t),qCn(s,BB(ZAn(t,(HXn(),upt)),61)),hon(s,(hWn(),dlt),t),CZ(s,e),(f=s.o).a=t.g,f.b=t.f,(h=s.n).a=t.i,h.b=t.j,VW(n.a,t,s),(a=o5($V(wnn(new Rq(null,(!t.e&&(t.e=new hK(_Ot,t,7,4)),new w1(t.e,16))),new Vt),new Xt),new Ww(t)))||(a=o5($V(wnn(new Rq(null,(!t.d&&(t.d=new hK(_Ot,t,8,5)),new w1(t.d,16))),new Qt),new Wt),new Vw(t))),a||(a=o5(new Rq(null,(!t.e&&(t.e=new hK(_Ot,t,7,4)),new w1(t.e,16))),new Yt)),hon(s,elt,(hN(),!!a)),pqn(s,c,r,BB(ZAn(t,npt),8)),o=new AL((!t.n&&(t.n=new eU(zOt,t,1,7)),t.n));o.e!=o.i.gc();)!qy(TD(ZAn(u=BB(kpn(o),137),Ggt)))&&u.a&&WB(s.f,Hhn(u));switch(r.g){case 2:case 1:(s.j==(kUn(),sIt)||s.j==SIt)&&i.Fc((bDn(),gft));break;case 4:case 3:(s.j==(kUn(),oIt)||s.j==CIt)&&i.Fc((bDn(),gft))}return s}function nUn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w,d,g,p,v,m;for(l=null,r==(dJ(),Lyt)?l=t:r==Nyt&&(l=i),d=l.a.ec().Kc();d.Ob();){for(w=BB(d.Pb(),11),g=Aon(Pun(Gk(PMt,1),sVn,8,0,[w.i.n,w.n,w.a])).b,m=new Rv,o=new Rv,h=new m6(w.b);y$(h.a)||y$(h.b);)if(qy(TD(mMn(s=BB(y$(h.a)?n0(h.a):n0(h.b),17),(hWn(),Clt))))==c&&-1!=E7(a,s,0)){if(p=s.d==w?s.c:s.d,v=Aon(Pun(Gk(PMt,1),sVn,8,0,[p.i.n,p.n,p.a])).b,e.Math.abs(v-g)<.2)continue;v<g?t.a._b(p)?TU(m,new rI(Lyt,s)):TU(m,new rI(Nyt,s)):t.a._b(p)?TU(o,new rI(Lyt,s)):TU(o,new rI(Nyt,s))}if(m.a.gc()>1)for(e5(m,new sC(n,b=new hqn(w,m,r))),u.c[u.c.length]=b,f=m.a.ec().Kc();f.Ob();)y7(a,BB(f.Pb(),46).b);if(o.a.gc()>1)for(e5(o,new hC(n,b=new hqn(w,o,r))),u.c[u.c.length]=b,f=o.a.ec().Kc();f.Ob();)y7(a,BB(f.Pb(),46).b)}}function tUn(n){NM(n,new MTn(dj(vj(wj(pj(gj(new du,w4n),"ELK Radial"),'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'),new Ha),w4n))),u2(n,w4n,g3n,mpn(xjt)),u2(n,w4n,vZn,mpn(Kjt)),u2(n,w4n,PZn,mpn(Cjt)),u2(n,w4n,BZn,mpn(Ijt)),u2(n,w4n,SZn,mpn(Ojt)),u2(n,w4n,CZn,mpn(Pjt)),u2(n,w4n,MZn,mpn(Ajt)),u2(n,w4n,IZn,mpn(Njt)),u2(n,w4n,h4n,mpn(Mjt)),u2(n,w4n,s4n,mpn(Sjt)),u2(n,w4n,b4n,mpn($jt)),u2(n,w4n,u4n,mpn(Ljt)),u2(n,w4n,o4n,mpn(Djt)),u2(n,w4n,f4n,mpn(Rjt)),u2(n,w4n,l4n,mpn(_jt))}function eUn(n){var t;if(this.r=xV(new Pn,new Cn),this.b=new Hbn(BB(yX(FIt),290)),this.p=new Hbn(BB(yX(FIt),290)),this.i=new Hbn(BB(yX(Krt),290)),this.e=n,this.o=new wA(n.rf()),this.D=n.Df()||qy(TD(n.We((sWn(),SSt)))),this.A=BB(n.We((sWn(),KSt)),21),this.B=BB(n.We(qSt),21),this.q=BB(n.We(uPt),98),this.u=BB(n.We(fPt),21),!wMn(this.u))throw Hp(new rk("Invalid port label placement: "+this.u));if(this.v=qy(TD(n.We(bPt))),this.j=BB(n.We(DSt),21),!tLn(this.j))throw Hp(new rk("Invalid node label placement: "+this.j));this.n=BB(nkn(n,NSt),116),this.k=Gy(MD(nkn(n,OPt))),this.d=Gy(MD(nkn(n,IPt))),this.w=Gy(MD(nkn(n,RPt))),this.s=Gy(MD(nkn(n,APt))),this.t=Gy(MD(nkn(n,$Pt))),this.C=BB(nkn(n,xPt),142),this.c=2*this.d,t=!this.B.Hc((n_n(),HIt)),this.f=new Ign(0,t,0),this.g=new Ign(1,t,0),jy(this.f,(Dtn(),zit),this.g)}function iUn(n,t,i,r,c){var a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;for(y=0,g=0,d=0,w=1,m=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));m.e!=m.i.gc();)w+=F3(new oz(ZL(dLn(p=BB(kpn(m),33)).a.Kc(),new h))),T=p.g,g=e.Math.max(g,T),b=p.f,d=e.Math.max(d,b),y+=T*b;for(u=y+2*r*r*w*(!n.a&&(n.a=new eU(UOt,n,10,11)),n.a).i,a=e.Math.sqrt(u),s=e.Math.max(a*i,g),o=e.Math.max(a/i,d),v=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));v.e!=v.i.gc();)p=BB(kpn(v),33),M=c.b+(H$n(t,26)*rYn+H$n(t,27)*cYn)*(s-p.g),S=c.b+(H$n(t,26)*rYn+H$n(t,27)*cYn)*(o-p.f),Pen(p,M),Cen(p,S);for(E=s+(c.b+c.c),j=o+(c.d+c.a),k=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));k.e!=k.i.gc();)for(l=new oz(ZL(dLn(BB(kpn(k),33)).a.Kc(),new h));dAn(l);)nAn(f=BB(U5(l),79))||BXn(f,t,E,j);KUn(n,E+=c.b+c.c,j+=c.d+c.a,!1,!0)}function rUn(n){var t,e,i,r,c,a,u,o,s,h,f;if(null==n)throw Hp(new Mk(zWn));if(s=n,o=!1,(c=n.length)>0&&(b1(0,n.length),45!=(t=n.charCodeAt(0))&&43!=t||(n=n.substr(1),--c,o=45==t)),0==c)throw Hp(new Mk(DQn+s+'"'));for(;n.length>0&&(b1(0,n.length),48==n.charCodeAt(0));)n=n.substr(1),--c;if(c>(iFn(),xtt)[10])throw Hp(new Mk(DQn+s+'"'));for(r=0;r<c;r++)if(-1==egn((b1(r,n.length),n.charCodeAt(r))))throw Hp(new Mk(DQn+s+'"'));for(f=0,a=Ltt[10],h=Ntt[10],u=j7(Dtt[10]),e=!0,(i=c%a)>0&&(f=-parseInt(n.substr(0,i),10),n=n.substr(i),c-=i,e=!1);c>=a;){if(i=parseInt(n.substr(0,a),10),n=n.substr(a),c-=a,e)e=!1;else{if(Vhn(f,u)<0)throw Hp(new Mk(DQn+s+'"'));f=cbn(f,h)}f=ibn(f,i)}if(Vhn(f,0)>0)throw Hp(new Mk(DQn+s+'"'));if(!o&&Vhn(f=j7(f),0)<0)throw Hp(new Mk(DQn+s+'"'));return f}function cUn(n,t){var e,i,r,c,a,u,o;if(ZH(),this.a=new X$(this),this.b=n,this.c=t,this.f=OU(B7((IPn(),Z$t),t)),this.f.dc())if((u=mjn(Z$t,n))==t)for(this.e=!0,this.d=new Np,this.f=new fo,this.f.Fc(S7n),BB(NHn(F7(Z$t,Utn(n)),""),26)==n&&this.f.Fc(az(Z$t,Utn(n))),r=EKn(Z$t,n).Kc();r.Ob();)switch(i=BB(r.Pb(),170),DW(B7(Z$t,i))){case 4:this.d.Fc(i);break;case 5:this.f.Gc(OU(B7(Z$t,i)))}else if(ZM(),BB(t,66).Oj())for(this.e=!0,this.f=null,this.d=new Np,a=0,o=(null==n.i&&qFn(n),n.i).length;a<o;++a)for(null==n.i&&qFn(n),e=n.i,i=a>=0&&a<e.length?e[a]:null,c=Z1(B7(Z$t,i));c;c=Z1(B7(Z$t,c)))c==t&&this.d.Fc(i);else 1==DW(B7(Z$t,t))&&u?(this.f=null,this.d=(TOn(),bLt)):(this.f=null,this.e=!0,this.d=(SQ(),new Gb(t)));else this.e=5==DW(B7(Z$t,t)),this.f.Fb(uLt)&&(this.f=uLt)}function aUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d;for(i=0,r=Pmn(n,t),b=n.s,w=n.t,h=BB(BB(h6(n.r,t),21),84).Kc();h.Ob();)if((s=BB(h.Pb(),111)).c&&!(s.c.d.c.length<=0)){switch(d=s.b.rf(),o=s.b.Xe((sWn(),aPt))?Gy(MD(s.b.We(aPt))):0,(l=(f=s.c).i).b=(u=f.n,f.e.a+u.b+u.c),l.a=(a=f.n,f.e.b+a.d+a.a),t.g){case 1:l.c=s.a?(d.a-l.b)/2:d.a+b,l.d=d.b+o+r,l9(f,(J9(),Qit)),WD(f,(G7(),crt));break;case 3:l.c=s.a?(d.a-l.b)/2:d.a+b,l.d=-o-r-l.a,l9(f,(J9(),Qit)),WD(f,(G7(),irt));break;case 2:l.c=-o-r-l.b,s.a?(c=n.v?l.a:BB(xq(f.d,0),181).rf().b,l.d=(d.b-c)/2):l.d=d.b+w,l9(f,(J9(),Jit)),WD(f,(G7(),rrt));break;case 4:l.c=d.a+o+r,s.a?(c=n.v?l.a:BB(xq(f.d,0),181).rf().b,l.d=(d.b-c)/2):l.d=d.b+w,l9(f,(J9(),Yit)),WD(f,(G7(),rrt))}(t==(kUn(),sIt)||t==SIt)&&(i=e.Math.max(i,l.a))}i>0&&(BB(oV(n.b,t),124).a.b=i)}function uUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(OTn(t,"Comment pre-processing",1),e=0,o=new Wb(n.a);o.a<o.c.c.length;)if(qy(TD(mMn(u=BB(n0(o),10),(HXn(),Tdt))))){for(++e,r=0,i=null,s=null,w=new Wb(u.j);w.a<w.c.c.length;)r+=(l=BB(n0(w),11)).e.c.length+l.g.c.length,1==l.e.c.length&&(s=(i=BB(xq(l.e,0),17)).c),1==l.g.c.length&&(s=(i=BB(xq(l.g,0),17)).d);if(1!=r||s.e.c.length+s.g.c.length!=1||qy(TD(mMn(s.i,Tdt)))){for(g=new Np,b=new Wb(u.j);b.a<b.c.c.length;){for(f=new Wb((l=BB(n0(b),11)).g);f.a<f.c.c.length;)0==(h=BB(n0(f),17)).d.g.c.length||(g.c[g.c.length]=h);for(a=new Wb(l.e);a.a<a.c.c.length;)0==(c=BB(n0(a),17)).c.e.c.length||(g.c[g.c.length]=c)}for(d=new Wb(g);d.a<d.c.c.length;)tBn(BB(n0(d),17),!0)}else nXn(u,i,s,s.i),AU(o)}t.n&&OH(t,"Found "+e+" comment boxes"),HSn(t)}function oUn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;if(l=Gy(MD(mMn(n,(HXn(),Cpt)))),b=Gy(MD(mMn(n,Ipt))),f=Gy(MD(mMn(n,Spt))),u=n.o,a=(c=BB(xq(n.j,0),11)).n,d=TPn(c,f)){if(t.Hc((lIn(),eIt)))switch(BB(mMn(n,(hWn(),Qft)),61).g){case 1:d.c=(u.a-d.b)/2-a.a,d.d=b;break;case 3:d.c=(u.a-d.b)/2-a.a,d.d=-b-d.a;break;case 2:e&&0==c.e.c.length&&0==c.g.c.length?(h=i?d.a:BB(xq(c.f,0),70).o.b,d.d=(u.b-h)/2-a.b):d.d=u.b+b-a.b,d.c=-l-d.b;break;case 4:e&&0==c.e.c.length&&0==c.g.c.length?(h=i?d.a:BB(xq(c.f,0),70).o.b,d.d=(u.b-h)/2-a.b):d.d=u.b+b-a.b,d.c=l}else if(t.Hc(rIt))switch(BB(mMn(n,(hWn(),Qft)),61).g){case 1:case 3:d.c=a.a+l;break;case 2:case 4:e&&!c.c?(h=i?d.a:BB(xq(c.f,0),70).o.b,d.d=(u.b-h)/2-a.b):d.d=a.b+b}for(r=d.d,s=new Wb(c.f);s.a<s.c.c.length;)(w=(o=BB(n0(s),70)).n).a=d.c,w.b=r,r+=o.o.b+f}}function sUn(){RO(wLt,new Vs),RO(zLt,new ah),RO(ULt,new ph),RO(XLt,new Ch),RO(Qtt,new $h),RO(Gk(NNt,1),new Lh),RO(ktt,new Nh),RO(Ttt,new xh),RO(Qtt,new _s),RO(Qtt,new Fs),RO(Qtt,new Bs),RO(Ptt,new Hs),RO(Qtt,new qs),RO(Rnt,new Gs),RO(Rnt,new zs),RO(Qtt,new Us),RO(Ctt,new Xs),RO(Qtt,new Ws),RO(Qtt,new Qs),RO(Qtt,new Ys),RO(Qtt,new Js),RO(Qtt,new Zs),RO(Gk(NNt,1),new nh),RO(Qtt,new th),RO(Qtt,new eh),RO(Rnt,new ih),RO(Rnt,new rh),RO(Qtt,new ch),RO(Att,new uh),RO(Qtt,new oh),RO(Rtt,new sh),RO(Qtt,new hh),RO(Qtt,new fh),RO(Qtt,new lh),RO(Qtt,new bh),RO(Rnt,new wh),RO(Rnt,new dh),RO(Qtt,new gh),RO(Qtt,new vh),RO(Qtt,new mh),RO(Qtt,new yh),RO(Qtt,new kh),RO(Qtt,new jh),RO(_tt,new Eh),RO(Qtt,new Th),RO(Qtt,new Mh),RO(Qtt,new Sh),RO(_tt,new Ph),RO(Rtt,new Ih),RO(Qtt,new Oh),RO(Att,new Ah)}function hUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if((f=t.length)>0&&(b1(0,t.length),64!=(u=t.charCodeAt(0)))){if(37==u&&(o=!1,0!=(h=t.lastIndexOf("%"))&&(h==f-1||(b1(h+1,t.length),o=46==t.charCodeAt(h+1))))){if(v=mK("%",a=t.substr(1,h-1))?null:$Un(a),i=0,o)try{i=l_n(t.substr(h+2),_Vn,DWn)}catch(m){throw cL(m=lun(m),127)?Hp(new L7(m)):Hp(m)}for(d=Ern(n.Wg());d.Ob();)if(cL(b=Man(d),510)&&(p=(r=BB(b,590)).d,(null==v?null==p:mK(v,p))&&0==i--))return r;return null}if(l=-1==(s=t.lastIndexOf("."))?t:t.substr(0,s),e=0,-1!=s)try{e=l_n(t.substr(s+1),_Vn,DWn)}catch(m){if(!cL(m=lun(m),127))throw Hp(m);l=t}for(l=mK("%",l)?null:$Un(l),w=Ern(n.Wg());w.Ob();)if(cL(b=Man(w),191)&&(g=(c=BB(b,191)).ne(),(null==l?null==g:mK(l,g))&&0==e--))return c;return null}return _qn(n,t)}function fUn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(m=new Np,f=new Wb(n.b);f.a<f.c.c.length;)for(w=new Wb(BB(n0(f),29).a);w.a<w.c.c.length;)if((l=BB(n0(w),10)).k==(uSn(),Mut)&&Lx(l,(hWn(),Vft))){for(d=null,p=null,g=null,j=new Wb(l.j);j.a<j.c.c.length;)switch((k=BB(n0(j),11)).j.g){case 4:d=k;break;case 2:p=k;break;default:g=k}for(s=new Kj((v=BB(xq(g.g,0),17)).a),UR(o=new wA(g.n),l.n),nX(spn(s,0),o),y=Jon(v.a),UR(h=new wA(g.n),l.n),r5(y,h,y.c.b,y.c),E=BB(mMn(l,Vft),10),T=BB(xq(E.j,0),11),c=0,u=(i=BB(Qgn(d.e,x8(yut,c1n,17,0,0,1)),474)).length;c<u;++c)MZ(t=i[c],T),Wsn(t.a,t.a.b,s);for(r=0,a=(e=Z0(p.g)).length;r<a;++r)SZ(t=e[r],T),Wsn(t.a,0,y);SZ(v,null),MZ(v,null),m.c[m.c.length]=l}for(b=new Wb(m);b.a<b.c.c.length;)PZ(l=BB(n0(b),10),null)}function lUn(){var n,t,e;for(lUn=O,new knn(1,0),new knn(10,0),new knn(0,0),Htt=x8(iet,sVn,240,11,0,1),qtt=x8(ONt,WVn,25,100,15,1),Gtt=Pun(Gk(xNt,1),qQn,25,15,[1,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125,6103515625,30517578125,152587890625,762939453125,3814697265625,19073486328125,95367431640625,476837158203125,0x878678326eac9]),ztt=x8(ANt,hQn,25,Gtt.length,15,1),Utt=Pun(Gk(xNt,1),qQn,25,15,[1,10,100,VVn,1e4,GQn,1e6,1e7,1e8,AQn,1e10,1e11,1e12,1e13,1e14,1e15,1e16]),Xtt=x8(ANt,hQn,25,Utt.length,15,1),Wtt=x8(iet,sVn,240,11,0,1),n=0;n<Wtt.length;n++)Htt[n]=new knn(n,0),Wtt[n]=new knn(0,n),qtt[n]=48;for(;n<qtt.length;n++)qtt[n]=48;for(e=0;e<ztt.length;e++)ztt[e]=aIn(Gtt[e]);for(t=0;t<Xtt.length;t++)Xtt[t]=aIn(Utt[t]);$On()}function bUn(){function n(){this.obj=this.createObject()}return n.prototype.createObject=function(n){return Object.create(null)},n.prototype.get=function(n){return this.obj[n]},n.prototype.set=function(n,t){this.obj[n]=t},n.prototype[iYn]=function(n){delete this.obj[n]},n.prototype.keys=function(){return Object.getOwnPropertyNames(this.obj)},n.prototype.entries=function(){var n=this.keys(),t=this,e=0;return{next:function(){if(e>=n.length)return{done:!0};var i=n[e++];return{value:[i,t.get(i)],done:!1}}}},zDn()||(n.prototype.createObject=function(){return{}},n.prototype.get=function(n){return this.obj[":"+n]},n.prototype.set=function(n,t){this.obj[":"+n]=t},n.prototype[iYn]=function(n){delete this.obj[":"+n]},n.prototype.keys=function(){var n=[];for(var t in this.obj)58==t.charCodeAt(0)&&n.push(t.substring(1));return n}),n}function wUn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d;if(PFn(),null==n)return null;if(0==(f=8*n.length))return"";for(l=f/24|0,c=null,c=x8(ONt,WVn,25,4*(0!=(u=f%24)?l+1:l),15,1),s=0,h=0,t=0,e=0,i=0,a=0,r=0,o=0;o<l;o++)t=n[r++],h=(15&(e=n[r++]))<<24>>24,s=(3&t)<<24>>24,b=0==(-128&t)?t>>2<<24>>24:(t>>2^192)<<24>>24,w=0==(-128&e)?e>>4<<24>>24:(e>>4^240)<<24>>24,d=0==(-128&(i=n[r++]))?i>>6<<24>>24:(i>>6^252)<<24>>24,c[a++]=VLt[b],c[a++]=VLt[w|s<<4],c[a++]=VLt[h<<2|d],c[a++]=VLt[63&i];return 8==u?(s=(3&(t=n[r]))<<24>>24,b=0==(-128&t)?t>>2<<24>>24:(t>>2^192)<<24>>24,c[a++]=VLt[b],c[a++]=VLt[s<<4],c[a++]=61,c[a++]=61):16==u&&(t=n[r],h=(15&(e=n[r+1]))<<24>>24,s=(3&t)<<24>>24,b=0==(-128&t)?t>>2<<24>>24:(t>>2^192)<<24>>24,w=0==(-128&e)?e>>4<<24>>24:(e>>4^240)<<24>>24,c[a++]=VLt[b],c[a++]=VLt[w|s<<4],c[a++]=VLt[h<<2],c[a++]=61),Bdn(c,0,c.length)}function dUn(n,t){var i,r,c,a,u,o;if(0==n.e&&n.p>0&&(n.p=-(n.p-1)),n.p>_Vn&&e4(t,n.p-sQn),u=t.q.getDate(),FJ(t,1),n.k>=0&&vZ(t,n.k),n.c>=0?FJ(t,n.c):n.k>=0?(r=35-new von(t.q.getFullYear()-sQn,t.q.getMonth(),35).q.getDate(),FJ(t,e.Math.min(r,u))):FJ(t,u),n.f<0&&(n.f=t.q.getHours()),n.b>0&&n.f<12&&(n.f+=12),aL(t,24==n.f&&n.g?0:n.f),n.j>=0&&g6(t,n.j),n.n>=0&&U8(t,n.n),n.i>=0&&dO(t,rbn(cbn(Ojn(fan(t.q.getTime()),VVn),VVn),n.i)),n.a&&(e4(c=new AT,c.q.getFullYear()-sQn-80),sS(fan(t.q.getTime()),fan(c.q.getTime()))&&e4(t,c.q.getFullYear()-sQn+100)),n.d>=0)if(-1==n.c)(i=(7+n.d-t.q.getDay())%7)>3&&(i-=7),o=t.q.getMonth(),FJ(t,t.q.getDate()+i),t.q.getMonth()!=o&&FJ(t,t.q.getDate()+(i>0?-7:7));else if(t.q.getDay()!=n.d)return!1;return n.o>_Vn&&(a=t.q.getTimezoneOffset(),dO(t,rbn(fan(t.q.getTime()),60*(n.o-a)*VVn))),!0}function gUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;if(cL(r=mMn(t,(hWn(),dlt)),239)){for(b=BB(r,33),w=t.e,f=new wA(t.c),c=t.d,f.a+=c.b,f.b+=c.d,SN(BB(ZAn(b,(HXn(),qgt)),174),(n_n(),qIt))&&(Ol(l=BB(ZAn(b,zgt),116),c.a),_l(l,c.d),Al(l,c.b),Fl(l,c.c)),e=new Np,s=new Wb(t.a);s.a<s.c.c.length;)for(cL(mMn(u=BB(n0(s),10),dlt),239)?CUn(u,f):cL(mMn(u,dlt),186)&&!w&&SA(i=BB(mMn(u,dlt),118),(g=yFn(t,u,i.g,i.f)).a,g.b),d=new Wb(u.j);d.a<d.c.c.length;)JT(AV(new Rq(null,new w1(BB(n0(d),11).g,16)),new Qw(u)),new Yw(e));if(w)for(d=new Wb(w.j);d.a<d.c.c.length;)JT(AV(new Rq(null,new w1(BB(n0(d),11).g,16)),new Jw(w)),new Zw(e));for(p=BB(ZAn(b,Zdt),218),a=new Wb(e);a.a<a.c.c.length;)pzn(BB(n0(a),17),p,f);for(m_n(t),o=new Wb(t.a);o.a<o.c.c.length;)(h=(u=BB(n0(o),10)).e)&&gUn(n,h)}}function pUn(n){NM(n,new MTn(mj(dj(vj(wj(pj(gj(new du,gZn),"ELK Force"),"Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported."),new dt),gZn),EG((hAn(),tAt),Pun(Gk(aAt,1),$Vn,237,0,[ZOt]))))),u2(n,gZn,pZn,iln(1)),u2(n,gZn,vZn,80),u2(n,gZn,mZn,5),u2(n,gZn,VJn,dZn),u2(n,gZn,yZn,iln(1)),u2(n,gZn,kZn,(hN(),!0)),u2(n,gZn,QJn,Qct),u2(n,gZn,jZn,mpn(Hct)),u2(n,gZn,EZn,mpn(Yct)),u2(n,gZn,TZn,!1),u2(n,gZn,MZn,mpn(Wct)),u2(n,gZn,SZn,mpn(Xct)),u2(n,gZn,PZn,mpn(Uct)),u2(n,gZn,CZn,mpn(zct)),u2(n,gZn,IZn,mpn(Jct)),u2(n,gZn,oZn,mpn(Gct)),u2(n,gZn,fZn,mpn(aat)),u2(n,gZn,sZn,mpn(qct)),u2(n,gZn,bZn,mpn(tat)),u2(n,gZn,hZn,mpn(eat))}function vUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w;if(!BB(BB(h6(n.r,t),21),84).dc()){if(s=(u=BB(oV(n.b,t),124)).i,o=u.n,f=PDn(n,t),r=s.b-o.b-o.c,c=u.a.a,a=s.c+o.b,w=n.w,f!=(cpn(),BCt)&&f!=qCt||1!=BB(BB(h6(n.r,t),21),84).gc()||(c=f==BCt?c-2*n.w:c,f=FCt),r<c&&!n.B.Hc((n_n(),WIt)))f==BCt?a+=w+=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()+1):w+=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()-1);else switch(r<c&&(c=f==BCt?c-2*n.w:c,f=FCt),f.g){case 3:a+=(r-c)/2;break;case 4:a+=r-c;break;case 0:i=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()+1),a+=w+=e.Math.max(0,i);break;case 1:i=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()-1),w+=e.Math.max(0,i)}for(b=BB(BB(h6(n.r,t),21),84).Kc();b.Ob();)(l=BB(b.Pb(),111)).e.a=a+l.d.b,l.e.b=(h=l.b).Xe((sWn(),aPt))?h.Hf()==(kUn(),sIt)?-h.rf().b-Gy(MD(h.We(aPt))):Gy(MD(h.We(aPt))):h.Hf()==(kUn(),sIt)?-h.rf().b:0,a+=l.d.b+l.b.rf().a+l.d.c+w}}function mUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d;if(!BB(BB(h6(n.r,t),21),84).dc()){if(s=(u=BB(oV(n.b,t),124)).i,o=u.n,l=PDn(n,t),r=s.a-o.d-o.a,c=u.a.b,a=s.d+o.d,d=n.w,h=n.o.a,l!=(cpn(),BCt)&&l!=qCt||1!=BB(BB(h6(n.r,t),21),84).gc()||(c=l==BCt?c-2*n.w:c,l=FCt),r<c&&!n.B.Hc((n_n(),WIt)))l==BCt?a+=d+=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()+1):d+=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()-1);else switch(r<c&&(c=l==BCt?c-2*n.w:c,l=FCt),l.g){case 3:a+=(r-c)/2;break;case 4:a+=r-c;break;case 0:i=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()+1),a+=d+=e.Math.max(0,i);break;case 1:i=(r-c)/(BB(BB(h6(n.r,t),21),84).gc()-1),d+=e.Math.max(0,i)}for(w=BB(BB(h6(n.r,t),21),84).Kc();w.Ob();)(b=BB(w.Pb(),111)).e.a=(f=b.b).Xe((sWn(),aPt))?f.Hf()==(kUn(),CIt)?-f.rf().a-Gy(MD(f.We(aPt))):h+Gy(MD(f.We(aPt))):f.Hf()==(kUn(),CIt)?-f.rf().a:h,b.e.b=a+b.d.d,a+=b.d.d+b.b.rf().b+b.d.a+d}}function yUn(n){var t,i,r,c,a,u,o,s,f,l,b,w,d,g,p;for(n.n=Gy(MD(mMn(n.g,(HXn(),Opt)))),n.e=Gy(MD(mMn(n.g,Tpt))),n.i=n.g.b.c.length,o=n.i-1,w=0,n.j=0,n.k=0,n.a=u6(x8(Att,sVn,19,n.i,0,1)),n.b=u6(x8(Ptt,sVn,333,n.i,7,1)),u=new Wb(n.g.b);u.a<u.c.c.length;){for((c=BB(n0(u),29)).p=o,b=new Wb(c.a);b.a<b.c.c.length;)(l=BB(n0(b),10)).p=w,++w;--o}for(n.f=x8(ANt,hQn,25,w,15,1),n.c=kq(ANt,[sVn,hQn],[48,25],15,[w,3],2),n.o=new Np,n.p=new Np,t=0,n.d=0,a=new Wb(n.g.b);a.a<a.c.c.length;){for(o=(c=BB(n0(a),29)).p,r=0,p=0,s=c.a.c.length,f=0,b=new Wb(c.a);b.a<b.c.c.length;)w=(l=BB(n0(b),10)).p,n.f[w]=l.c.p,f+=l.o.b+n.n,i=F3(new oz(ZL(fbn(l).a.Kc(),new h))),g=F3(new oz(ZL(lbn(l).a.Kc(),new h))),n.c[w][0]=g-i,n.c[w][1]=i,n.c[w][2]=g,r+=i,p+=g,i>0&&WB(n.p,l),WB(n.o,l);d=s+(t-=r),f+=t*n.e,c5(n.a,o,iln(d)),c5(n.b,o,f),n.j=e.Math.max(n.j,d),n.k=e.Math.max(n.k,f),n.d+=t,t+=p}}function kUn(){var n;kUn=O,PIt=new WC(hJn,0),sIt=new WC(mJn,1),oIt=new WC(yJn,2),SIt=new WC(kJn,3),CIt=new WC(jJn,4),SQ(),wIt=new Ak(new YK(n=BB(Vj(FIt),9),BB(SR(n,n.length),9),0)),dIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[]))),hIt=ffn(EG(oIt,Pun(Gk(FIt,1),YZn,61,0,[]))),EIt=ffn(EG(SIt,Pun(Gk(FIt,1),YZn,61,0,[]))),MIt=ffn(EG(CIt,Pun(Gk(FIt,1),YZn,61,0,[]))),yIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[SIt]))),bIt=ffn(EG(oIt,Pun(Gk(FIt,1),YZn,61,0,[CIt]))),jIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[CIt]))),gIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[oIt]))),TIt=ffn(EG(SIt,Pun(Gk(FIt,1),YZn,61,0,[CIt]))),fIt=ffn(EG(oIt,Pun(Gk(FIt,1),YZn,61,0,[SIt]))),mIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[oIt,CIt]))),lIt=ffn(EG(oIt,Pun(Gk(FIt,1),YZn,61,0,[SIt,CIt]))),kIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[SIt,CIt]))),pIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[oIt,SIt]))),vIt=ffn(EG(sIt,Pun(Gk(FIt,1),YZn,61,0,[oIt,SIt,CIt])))}function jUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if(0!=t.b){for(l=new YT,a=null,b=null,i=CJ(e.Math.floor(e.Math.log(t.b)*e.Math.LOG10E)+1),u=0,v=spn(t,0);v.b!=v.d.c;)for(g=BB(b3(v),86),GI(b)!==GI(mMn(g,(qqn(),rkt)))&&(b=SD(mMn(g,rkt)),u=0),a=null!=b?b+d0(u++,i):d0(u++,i),hon(g,rkt,a),d=new wg(spn(new bg(g).a.d,0));EE(d.a);)r5(l,w=BB(b3(d.a),188).c,l.c.b,l.c),hon(w,rkt,a);for(f=new xp,c=0;c<a.length-i;c++)for(p=spn(t,0);p.b!=p.d.c;)mZ(f,o=fx(SD(mMn(g=BB(b3(p),86),(qqn(),rkt))),0,c+1),iln(null!=(null==o?qI(AY(f.f,null)):hS(f.g,o))?BB(null==o?qI(AY(f.f,null)):hS(f.g,o),19).a+1:1));for(h=new usn(new Pb(f).a);h.b;)s=ten(h),r=iln(null!=RX(n.a,s.cd())?BB(RX(n.a,s.cd()),19).a:0),mZ(n.a,SD(s.cd()),iln(BB(s.dd(),19).a+r.a)),(!(r=BB(RX(n.b,s.cd()),19))||r.a<BB(s.dd(),19).a)&&mZ(n.b,SD(s.cd()),BB(s.dd(),19));jUn(n,l)}}function EUn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(OTn(i,"Interactive node layering",1),r=new Np,w=new Wb(t.a);w.a<w.c.c.length;){for(s=(h=(l=BB(n0(w),10)).n.a)+l.o.a,s=e.Math.max(h+1,s),v=new M2(r,0),c=null;v.b<v.d.gc();){if(Px(v.b<v.d.gc()),(g=BB(v.d.Xb(v.c=v.b++),569)).c>=s){Px(v.b>0),v.a.Xb(v.c=--v.b);break}g.a>h&&(c?(gun(c.b,g.b),c.a=e.Math.max(c.a,g.a),fW(v)):(WB(g.b,l),g.c=e.Math.min(g.c,h),g.a=e.Math.max(g.a,s),c=g))}c||((c=new im).c=h,c.a=s,yR(v,c),WB(c.b,l))}for(o=t.b,f=0,p=new Wb(r);p.a<p.c.c.length;)for(g=BB(n0(p),569),(a=new HX(t)).p=f++,o.c[o.c.length]=a,d=new Wb(g.b);d.a<d.c.c.length;)PZ(l=BB(n0(d),10),a),l.p=0;for(b=new Wb(t.a);b.a<b.c.c.length;)0==(l=BB(n0(b),10)).p&&CDn(n,l,t);for(u=new M2(o,0);u.b<u.d.gc();)0==(Px(u.b<u.d.gc()),BB(u.d.Xb(u.c=u.b++),29)).a.c.length&&fW(u);t.a.c=x8(Ant,HWn,1,0,5,1),HSn(i)}function TUn(n,t,e){var i,r,c,a,u,o,s,h,f,l;if(0!=t.e.c.length&&0!=e.e.c.length){if((i=BB(xq(t.e,0),17).c.i)==(a=BB(xq(e.e,0),17).c.i))return E$(BB(mMn(BB(xq(t.e,0),17),(hWn(),wlt)),19).a,BB(mMn(BB(xq(e.e,0),17),wlt),19).a);for(f=0,l=(h=n.a).length;f<l;++f){if((s=h[f])==i)return 1;if(s==a)return-1}}return 0!=t.g.c.length&&0!=e.g.c.length?(c=BB(mMn(t,(hWn(),llt)),10),o=BB(mMn(e,llt),10),r=0,u=0,Lx(BB(xq(t.g,0),17),wlt)&&(r=BB(mMn(BB(xq(t.g,0),17),wlt),19).a),Lx(BB(xq(e.g,0),17),wlt)&&(u=BB(mMn(BB(xq(t.g,0),17),wlt),19).a),c&&c==o?qy(TD(mMn(BB(xq(t.g,0),17),Clt)))&&!qy(TD(mMn(BB(xq(e.g,0),17),Clt)))?1:!qy(TD(mMn(BB(xq(t.g,0),17),Clt)))&&qy(TD(mMn(BB(xq(e.g,0),17),Clt)))||r<u?-1:r>u?1:0:(n.b&&(n.b._b(c)&&(r=BB(n.b.xc(c),19).a),n.b._b(o)&&(u=BB(n.b.xc(o),19).a)),r<u?-1:r>u?1:0)):0!=t.e.c.length&&0!=e.g.c.length?1:-1}function MUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(OTn(t,O1n,1),w=new Np,y=new Np,s=new Wb(n.b);s.a<s.c.c.length;)for(g=-1,l=0,b=(f=n2((o=BB(n0(s),29)).a)).length;l<b;++l)if(++g,(h=f[l]).k==(uSn(),Cut)&&vA(BB(mMn(h,(HXn(),ept)),98))){for(LK(BB(mMn(h,(HXn(),ept)),98))||HNn(h),hon(h,(hWn(),rlt),h),w.c=x8(Ant,HWn,1,0,5,1),y.c=x8(Ant,HWn,1,0,5,1),e=new Np,qrn(v=new YT,DSn(h,(kUn(),sIt))),AXn(n,v,w,y,e),u=g,k=h,c=new Wb(w);c.a<c.c.c.length;)Qyn(i=BB(n0(c),10),u,o),++g,hon(i,rlt,h),a=BB(xq(i.j,0),11),d=BB(mMn(a,dlt),11),qy(TD(mMn(d,jdt)))||BB(mMn(i,clt),15).Fc(k);for(yQ(v),p=DSn(h,SIt).Kc();p.Ob();)r5(v,BB(p.Pb(),11),v.a,v.a.a);for(AXn(n,v,y,null,e),m=h,r=new Wb(y);r.a<r.c.c.length;)Qyn(i=BB(n0(r),10),++g,o),hon(i,rlt,h),a=BB(xq(i.j,0),11),d=BB(mMn(a,dlt),11),qy(TD(mMn(d,jdt)))||BB(mMn(m,clt),15).Fc(i);0==e.c.length||hon(h,xft,e)}HSn(t)}function SUn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P;for(h=BB(mMn(n,(Mrn(),sat)),33),d=DWn,g=DWn,b=_Vn,w=_Vn,v=new Wb(n.e);v.a<v.c.c.length;)E=(p=BB(n0(v),144)).d,T=p.e,d=e.Math.min(d,E.a-T.a/2),g=e.Math.min(g,E.b-T.b/2),b=e.Math.max(b,E.a+T.a/2),w=e.Math.max(w,E.b+T.b/2);for(k=new xC((j=BB(ZAn(h,(fRn(),Vct)),116)).b-d,j.d-g),o=new Wb(n.e);o.a<o.c.c.length;)cL(y=mMn(u=BB(n0(o),144),sat),239)&&SA(f=BB(y,33),(m=UR(u.d,k)).a-f.g/2,m.b-f.f/2);for(r=new Wb(n.c);r.a<r.c.c.length;)i=BB(n0(r),282),s=cDn(BB(mMn(i,sat),79),!0,!0),Ukn(S=XR(B$(i.d.d),i.c.d),i.c.e.a,i.c.e.b),CA(s,(M=UR(S,i.c.d)).a,M.b),Ukn(P=XR(B$(i.c.d),i.d.d),i.d.e.a,i.d.e.b),PA(s,(t=UR(P,i.d.d)).a,t.b);for(a=new Wb(n.d);a.a<a.c.c.length;)c=BB(n0(a),447),SA(BB(mMn(c,sat),137),(l=UR(c.d,k)).a,l.b);KUn(h,b-d+(j.b+j.c),w-g+(j.d+j.a),!1,!0)}function PUn(n){var t,e,i,r,c,a,u,o,s,h,f;for(e=null,u=null,(r=BB(mMn(n.b,(HXn(),igt)),376))==(A6(),Jvt)&&(e=new Np,u=new Np),a=new Wb(n.d);a.a<a.c.c.length;)if((c=BB(n0(a),101)).i)switch(c.e.g){case 0:t=BB(u4(new QT(c.b)),61),r==Jvt&&t==(kUn(),sIt)?e.c[e.c.length]=c:r==Jvt&&t==(kUn(),SIt)?u.c[u.c.length]=c:Nmn(c,t);break;case 1:o=c.a.d.j,s=c.c.d.j,o==(kUn(),sIt)?bU(c,sIt,(Oun(),mst),c.a):s==sIt?bU(c,sIt,(Oun(),yst),c.c):o==SIt?bU(c,SIt,(Oun(),yst),c.a):s==SIt&&bU(c,SIt,(Oun(),mst),c.c);break;case 2:case 3:SN(i=c.b,(kUn(),sIt))?SN(i,SIt)?SN(i,CIt)?SN(i,oIt)||bU(c,sIt,(Oun(),yst),c.c):bU(c,sIt,(Oun(),mst),c.a):bU(c,sIt,(Oun(),vst),null):bU(c,SIt,(Oun(),vst),null);break;case 4:h=c.a.d.j,f=c.a.d.j,h==(kUn(),sIt)||f==sIt?bU(c,SIt,(Oun(),vst),null):bU(c,sIt,(Oun(),vst),null)}e&&(0==e.c.length||QFn(e,(kUn(),sIt)),0==u.c.length||QFn(u,(kUn(),SIt)))}function CUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;for(i=BB(mMn(n,(hWn(),dlt)),33),b=BB(mMn(n,(HXn(),Bdt)),19).a,c=BB(mMn(n,jgt),19).a,Ypn(i,Bdt,iln(b)),Ypn(i,jgt,iln(c)),Pen(i,n.n.a+t.a),Cen(i,n.n.b+t.b),(0!=BB(ZAn(i,Fgt),174).gc()||n.e||GI(mMn(vW(n),_gt))===GI((Nvn(),mvt))&&pA((bvn(),(n.q?n.q:(SQ(),SQ(),het))._b(Rgt)?BB(mMn(n,Rgt),197):BB(mMn(vW(n),Kgt),197))))&&(Sen(i,n.o.a),Men(i,n.o.b)),f=new Wb(n.j);f.a<f.c.c.length;)cL(w=mMn(s=BB(n0(f),11),dlt),186)&&(SA(r=BB(w,118),s.n.a,s.n.b),Ypn(r,upt,s.j));for(l=0!=BB(mMn(n,$gt),174).gc(),o=new Wb(n.b);o.a<o.c.c.length;)a=BB(n0(o),70),(l||0!=BB(mMn(a,$gt),174).gc())&&(MA(e=BB(mMn(a,dlt),137),a.o.a,a.o.b),SA(e,a.n.a,a.n.b));if(!Hz(BB(mMn(n,cpt),21)))for(h=new Wb(n.j);h.a<h.c.c.length;)for(u=new Wb((s=BB(n0(h),11)).f);u.a<u.c.c.length;)a=BB(n0(u),70),Sen(e=BB(mMn(a,dlt),137),a.o.a),Men(e,a.o.b),SA(e,a.n.a,a.n.b)}function IUn(n){var t,e,i,r,c;switch(OY(n,i8n),(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i+(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i){case 0:throw Hp(new _y("The edge must have at least one source or target."));case 1:return 0==(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i?JJ(PTn(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82))):JJ(PTn(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)))}if(1==(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b).i&&1==(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c).i){if(r=PTn(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)),c=PTn(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82)),JJ(r)==JJ(c))return JJ(r);if(r==JJ(c))return r;if(c==JJ(r))return c}for(t=PTn(BB(U5(i=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),(!n.c&&(n.c=new hK(KOt,n,5,8)),n.c)])))),82));dAn(i);)if((e=PTn(BB(U5(i),82)))!=t&&!Ctn(e,t))if(JJ(e)==JJ(t))t=JJ(e);else if(!(t=B$n(t,e)))return null;return t}function OUn(n,t,i){var r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j;for(OTn(i,"Polyline edge routing",1),v=Gy(MD(mMn(t,(HXn(),tgt)))),d=Gy(MD(mMn(t,Apt))),c=Gy(MD(mMn(t,kpt))),r=e.Math.min(1,c/d),k=0,s=0,0!=t.b.c.length&&(k=.4*r*(j=hLn(BB(xq(t.b,0),29)))),o=new M2(t.b,0);o.b<o.d.gc();){for(Px(o.b<o.d.gc()),(a=VI(u=BB(o.d.Xb(o.c=o.b++),29),jyt))&&k>0&&(k-=d),Tqn(u,k),l=0,w=new Wb(u.a);w.a<w.c.c.length;){for(f=0,p=new oz(ZL(lbn(b=BB(n0(w),10)).a.Kc(),new h));dAn(p);)m=g1((g=BB(U5(p),17)).c).b,y=g1(g.d).b,u!=g.d.i.c||b5(g)||(VIn(g,k,.4*r*e.Math.abs(m-y)),g.c.j==(kUn(),CIt)&&(m=0,y=0)),f=e.Math.max(f,e.Math.abs(y-m));switch(b.k.g){case 0:case 4:case 1:case 3:case 5:Gqn(n,b,k,v)}l=e.Math.max(l,f)}o.b<o.d.gc()&&(j=hLn((Px(o.b<o.d.gc()),BB(o.d.Xb(o.c=o.b++),29))),l=e.Math.max(l,j),Px(o.b>0),o.a.Xb(o.c=--o.b)),s=.4*r*l,!a&&o.b<o.d.gc()&&(s+=d),k+=u.c.a+s}n.a.a.$b(),t.f.a=k,HSn(i)}function AUn(n){var t,e,i,r,c,a,u,o,s,f,l,b,w,d,g,p,v;for(s=new xp,u=new pJ,i=new Wb(n.a.a.b);i.a<i.c.c.length;)if(o=f2(t=BB(n0(i),57)))jCn(s.f,o,t);else if(v=f3(t))for(r=new Wb(v.k);r.a<r.c.c.length;)JIn(u,BB(n0(r),17),t);for(e=new Wb(n.a.a.b);e.a<e.c.c.length;)if(o=f2(t=BB(n0(e),57)))for(a=new oz(ZL(lbn(o).a.Kc(),new h));dAn(a);)if(!b5(c=BB(U5(a),17))&&(w=c.c,p=c.d,!(kUn(),yIt).Hc(c.c.j)||!yIt.Hc(c.d.j))){if(d=BB(RX(s,c.d.i),57),UNn(aM(cM(uM(rM(new Hv,0),100),n.c[t.a.d]),n.c[d.a.d])),w.j==CIt&&$z((gcn(),w)))for(l=BB(h6(u,c),21).Kc();l.Ob();)if((f=BB(l.Pb(),57)).d.c<t.d.c){if((b=n.c[f.a.d])==(g=n.c[t.a.d]))continue;UNn(aM(cM(uM(rM(new Hv,1),100),b),g))}if(p.j==oIt&&Az((gcn(),p)))for(l=BB(h6(u,c),21).Kc();l.Ob();)if((f=BB(l.Pb(),57)).d.c>t.d.c){if((b=n.c[t.a.d])==(g=n.c[f.a.d]))continue;UNn(aM(cM(uM(rM(new Hv,1),100),b),g))}}}function $Un(n){var t,e,i,r,c,a,u,o;if(RHn(),null==n)return null;if((r=GO(n,YTn(37)))<0)return n;for(o=new lN(n.substr(0,r)),t=x8(NNt,v6n,25,4,15,1),u=0,i=0,a=n.length;r<a;r++)if(b1(r,n.length),37==n.charCodeAt(r)&&n.length>r+2&&ton((b1(r+1,n.length),n.charCodeAt(r+1)),IAt,OAt)&&ton((b1(r+2,n.length),n.charCodeAt(r+2)),IAt,OAt))if(e=CH((b1(r+1,n.length),n.charCodeAt(r+1)),(b1(r+2,n.length),n.charCodeAt(r+2))),r+=2,i>0?128==(192&e)?t[u++]=e<<24>>24:i=0:e>=128&&(192==(224&e)?(t[u++]=e<<24>>24,i=2):224==(240&e)?(t[u++]=e<<24>>24,i=3):240==(248&e)&&(t[u++]=e<<24>>24,i=4)),i>0){if(u==i){switch(u){case 2:xX(o,((31&t[0])<<6|63&t[1])&QVn);break;case 3:xX(o,((15&t[0])<<12|(63&t[1])<<6|63&t[2])&QVn)}u=0,i=0}}else{for(c=0;c<u;++c)xX(o,t[c]&QVn);u=0,o.a+=String.fromCharCode(e)}else{for(c=0;c<u;++c)xX(o,t[c]&QVn);u=0,xX(o,(b1(r,n.length),n.charCodeAt(r)))}return o.a}function LUn(n,t,e,i,r){var c,a,u;if(ynn(n,t),a=t[0],c=fV(e.c,0),u=-1,Yon(e))if(i>0){if(a+i>n.length)return!1;u=UIn(n.substr(0,a+i),t)}else u=UIn(n,t);switch(c){case 71:return u=zTn(n,a,Pun(Gk(Qtt,1),sVn,2,6,[fQn,lQn]),t),r.e=u,!0;case 77:return gDn(n,t,r,u,a);case 76:return pDn(n,t,r,u,a);case 69:return rCn(n,t,a,r);case 99:return cCn(n,t,a,r);case 97:return u=zTn(n,a,Pun(Gk(Qtt,1),sVn,2,6,["AM","PM"]),t),r.b=u,!0;case 121:return vDn(n,t,a,u,e,r);case 100:return!(u<=0||(r.c=u,0));case 83:return!(u<0)&&jwn(u,a,t[0],r);case 104:12==u&&(u=0);case 75:case 72:return!(u<0||(r.f=u,r.g=!1,0));case 107:return!(u<0||(r.f=u,r.g=!0,0));case 109:return!(u<0||(r.j=u,0));case 115:return!(u<0||(r.n=u,0));case 90:if(a<n.length&&(b1(a,n.length),90==n.charCodeAt(a)))return++t[0],r.o=0,!0;case 122:case 118:return CTn(n,a,t,r);default:return!1}}function NUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;if(b=BB(BB(h6(n.r,t),21),84),t!=(kUn(),oIt)&&t!=CIt){for(a=t==sIt?(Dan(),Nrt):(Dan(),Rrt),k=t==sIt?(G7(),crt):(G7(),irt),c=(r=(i=BB(oV(n.b,t),124)).i).c+Lon(Pun(Gk(xNt,1),qQn,25,15,[i.n.b,n.C.b,n.k])),v=r.c+r.b-Lon(Pun(Gk(xNt,1),qQn,25,15,[i.n.c,n.C.c,n.k])),u=Zk(H_(a),n.t),m=t==sIt?KQn:RQn,l=b.Kc();l.Ob();)!(h=BB(l.Pb(),111)).c||h.c.d.c.length<=0||(p=h.b.rf(),g=h.e,(d=(w=h.c).i).b=(s=w.n,w.e.a+s.b+s.c),d.a=(o=w.n,w.e.b+o.d+o.a),OY(k,uJn),w.f=k,l9(w,(J9(),Jit)),d.c=g.a-(d.b-p.a)/2,j=e.Math.min(c,g.a),E=e.Math.max(v,g.a+p.a),d.c<j?d.c=j:d.c+d.b>E&&(d.c=E-d.b),WB(u.d,new xG(d,kln(u,d))),m=t==sIt?e.Math.max(m,g.b+h.b.rf().b):e.Math.min(m,g.b));for(m+=t==sIt?n.t:-n.t,(y=Pwn((u.e=m,u)))>0&&(BB(oV(n.b,t),124).a.b=y),f=b.Kc();f.Ob();)!(h=BB(f.Pb(),111)).c||h.c.d.c.length<=0||((d=h.c.i).c-=h.e.a,d.d-=h.e.b)}else aUn(n,t)}function xUn(n){var t,e,i,r,c,a,u,o,s,f;for(t=new xp,a=new AL(n);a.e!=a.i.gc();){for(c=BB(kpn(a),33),e=new Rv,VW(Mct,c,e),f=new ut,i=BB(P4(new Rq(null,new zU(new oz(ZL(wLn(c).a.Kc(),new h)))),SG(f,m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[(qsn(),Uet)])))),83),Jen(e,BB(i.xc((hN(),!0)),14),new ot),r=BB(P4(AV(BB(i.xc(!1),15).Lc(),new st),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[Uet]))),15).Kc();r.Ob();)(s=CMn(BB(r.Pb(),79)))&&((u=BB(qI(AY(t.f,s)),21))||(u=Oxn(s),jCn(t.f,s,u)),Frn(e,u));for(i=BB(P4(new Rq(null,new zU(new oz(ZL(dLn(c).a.Kc(),new h)))),SG(f,m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[Uet])))),83),Jen(e,BB(i.xc(!0),14),new ht),o=BB(P4(AV(BB(i.xc(!1),15).Lc(),new ft),m9(new H,new B,new rn,Pun(Gk(nit,1),$Vn,132,0,[Uet]))),15).Kc();o.Ob();)(s=IMn(BB(o.Pb(),79)))&&((u=BB(qI(AY(t.f,s)),21))||(u=Oxn(s),jCn(t.f,s,u)),Frn(e,u))}}function DUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d;if(uHn(),(o=Vhn(n,0)<0)&&(n=j7(n)),0==Vhn(n,0))switch(t){case 0:return"0";case 1:return WQn;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return(b=new Ck).a+=t<0?"0E+":"0E",b.a+=t==_Vn?"2147483648":""+-t,b.a}f=x8(ONt,WVn,25,1+(h=18),15,1),e=h,d=n;do{s=d,d=Ojn(d,10),f[--e]=dG(rbn(48,ibn(s,cbn(d,10))))&QVn}while(0!=Vhn(d,0));if(r=ibn(ibn(ibn(h,e),t),1),0==t)return o&&(f[--e]=45),Bdn(f,e,h-e);if(t>0&&Vhn(r,-6)>=0){if(Vhn(r,0)>=0){for(c=e+dG(r),u=h-1;u>=c;u--)f[u+1]=f[u];return f[++c]=46,o&&(f[--e]=45),Bdn(f,e,h-e+1)}for(a=2;sS(a,rbn(j7(r),1));a++)f[--e]=48;return f[--e]=46,f[--e]=48,o&&(f[--e]=45),Bdn(f,e,h-e)}return w=e+1,i=h,l=new Ik,o&&(l.a+="-"),i-w>=1?(xX(l,f[e]),l.a+=".",l.a+=Bdn(f,e+1,h-e-1)):l.a+=Bdn(f,e,h-e),l.a+="E",Vhn(r,0)>0&&(l.a+="+"),l.a+=""+vz(r),l.a}function RUn(n,t,e){var i,r,c,a,u,o,s,h,f,l;if(n.e.a.$b(),n.f.a.$b(),n.c.c=x8(Ant,HWn,1,0,5,1),n.i.c=x8(Ant,HWn,1,0,5,1),n.g.a.$b(),t)for(a=new Wb(t.a);a.a<a.c.c.length;)for(h=DSn(c=BB(n0(a),10),(kUn(),oIt)).Kc();h.Ob();)for(s=BB(h.Pb(),11),TU(n.e,s),r=new Wb(s.g);r.a<r.c.c.length;)b5(i=BB(n0(r),17))||(WB(n.c,i),ppn(n,i),((u=i.c.i.k)==(uSn(),Cut)||u==Iut||u==Mut||u==Tut)&&WB(n.j,i),(f=(l=i.d).i.c)==e?TU(n.f,l):f==t?TU(n.e,l):y7(n.c,i));if(e)for(a=new Wb(e.a);a.a<a.c.c.length;){for(o=new Wb((c=BB(n0(a),10)).j);o.a<o.c.c.length;)for(r=new Wb(BB(n0(o),11).g);r.a<r.c.c.length;)b5(i=BB(n0(r),17))&&TU(n.g,i);for(h=DSn(c,(kUn(),CIt)).Kc();h.Ob();)for(s=BB(h.Pb(),11),TU(n.f,s),r=new Wb(s.g);r.a<r.c.c.length;)b5(i=BB(n0(r),17))||(WB(n.c,i),ppn(n,i),((u=i.c.i.k)==(uSn(),Cut)||u==Iut||u==Mut||u==Tut)&&WB(n.j,i),(f=(l=i.d).i.c)==e?TU(n.f,l):f==t?TU(n.e,l):y7(n.c,i))}}function KUn(n,t,i,r,c){var a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;if(p=new xC(n.g,n.f),(g=XPn(n)).a=e.Math.max(g.a,t),g.b=e.Math.max(g.b,i),E=g.a/p.a,f=g.b/p.b,k=g.a-p.a,s=g.b-p.b,r)for(u=JJ(n)?BB(ZAn(JJ(n),(sWn(),bSt)),103):BB(ZAn(n,(sWn(),bSt)),103),o=GI(ZAn(n,(sWn(),uPt)))===GI((QEn(),XCt)),m=new AL((!n.c&&(n.c=new eU(XOt,n,9,9)),n.c));m.e!=m.i.gc();)switch(v=BB(kpn(m),118),(y=BB(ZAn(v,wPt),61))==(kUn(),PIt)&&(y=OFn(v,u),Ypn(v,wPt,y)),y.g){case 1:o||Pen(v,v.i*E);break;case 2:Pen(v,v.i+k),o||Cen(v,v.j*f);break;case 3:o||Pen(v,v.i*E),Cen(v,v.j+s);break;case 4:o||Cen(v,v.j*f)}if(MA(n,g.a,g.b),c)for(b=new AL((!n.n&&(n.n=new eU(zOt,n,1,7)),n.n));b.e!=b.i.gc();)w=(l=BB(kpn(b),137)).i+l.g/2,d=l.j+l.f/2,(j=w/p.a)+(h=d/p.b)>=1&&(j-h>0&&d>=0?(Pen(l,l.i+k),Cen(l,l.j+s*h)):j-h<0&&w>=0&&(Pen(l,l.i+k*j),Cen(l,l.j+s)));return Ypn(n,(sWn(),KSt),(mdn(),new YK(a=BB(Vj(YIt),9),BB(SR(a,a.length),9),0))),new xC(E,f)}function _Un(n){var t,i,r,c,a,u,o,s,h,f,l;if(f=JJ(PTn(BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)))==JJ(PTn(BB(Wtn((!n.c&&(n.c=new hK(KOt,n,5,8)),n.c),0),82))),u=new Gj,(t=BB(ZAn(n,(Xsn(),hCt)),74))&&t.b>=2){if(0==(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i)tE(),i=new co,f9((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),i);else if((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i>1)for(l=new cx((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a));l.e!=l.i.gc();)Qjn(l);VFn(t,BB(Wtn((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),0),202))}if(f)for(r=new AL((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a));r.e!=r.i.gc();)for(s=new AL((!(i=BB(kpn(r),202)).a&&(i.a=new $L(xOt,i,5)),i.a));s.e!=s.i.gc();)o=BB(kpn(s),469),u.a=e.Math.max(u.a,o.a),u.b=e.Math.max(u.b,o.b);for(a=new AL((!n.n&&(n.n=new eU(zOt,n,1,7)),n.n));a.e!=a.i.gc();)c=BB(kpn(a),137),(h=BB(ZAn(c,gCt),8))&&SA(c,h.a,h.b),f&&(u.a=e.Math.max(u.a,c.i+c.g),u.b=e.Math.max(u.b,c.j+c.f));return u}function FUn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;for(v=t.c.length,c=new qKn(n.a,i,null,null),E=x8(xNt,qQn,25,v,15,1),w=x8(xNt,qQn,25,v,15,1),b=x8(xNt,qQn,25,v,15,1),d=0,o=0;o<v;o++)w[o]=DWn,b[o]=_Vn;for(s=0;s<v;s++)for(l1(s,t.c.length),r=BB(t.c[s],180),E[s]=v$n(r),E[d]>E[s]&&(d=s),f=new Wb(n.a.b);f.a<f.c.c.length;)for(p=new Wb(BB(n0(f),29).a);p.a<p.c.c.length;)g=BB(n0(p),10),k=Gy(r.p[g.p])+Gy(r.d[g.p]),w[s]=e.Math.min(w[s],k),b[s]=e.Math.max(b[s],k+g.o.b);for(j=x8(xNt,qQn,25,v,15,1),h=0;h<v;h++)(l1(h,t.c.length),BB(t.c[h],180)).o==(oZ(),ryt)?j[h]=w[d]-w[h]:j[h]=b[d]-b[h];for(a=x8(xNt,qQn,25,v,15,1),l=new Wb(n.a.b);l.a<l.c.c.length;)for(y=new Wb(BB(n0(l),29).a);y.a<y.c.c.length;){for(m=BB(n0(y),10),u=0;u<v;u++)a[u]=Gy((l1(u,t.c.length),BB(t.c[u],180)).p[m.p])+Gy((l1(u,t.c.length),BB(t.c[u],180)).d[m.p])+j[u];a.sort(ien(T.prototype.te,T,[])),c.p[m.p]=(a[1]+a[2])/2,c.d[m.p]=0}return c}function BUn(n,t,e){var i,r,c,a,u;switch(i=t.i,c=n.i.o,r=n.i.d,u=n.n,a=Aon(Pun(Gk(PMt,1),sVn,8,0,[u,n.a])),n.j.g){case 1:WD(t,(G7(),irt)),i.d=-r.d-e-i.a,BB(BB(xq(t.d,0),181).We((hWn(),ult)),285)==(Xyn(),jCt)?(l9(t,(J9(),Jit)),i.c=a.a-Gy(MD(mMn(n,blt)))-e-i.b):(l9(t,(J9(),Yit)),i.c=a.a+Gy(MD(mMn(n,blt)))+e);break;case 2:l9(t,(J9(),Yit)),i.c=c.a+r.c+e,BB(BB(xq(t.d,0),181).We((hWn(),ult)),285)==(Xyn(),jCt)?(WD(t,(G7(),irt)),i.d=a.b-Gy(MD(mMn(n,blt)))-e-i.a):(WD(t,(G7(),crt)),i.d=a.b+Gy(MD(mMn(n,blt)))+e);break;case 3:WD(t,(G7(),crt)),i.d=c.b+r.a+e,BB(BB(xq(t.d,0),181).We((hWn(),ult)),285)==(Xyn(),jCt)?(l9(t,(J9(),Jit)),i.c=a.a-Gy(MD(mMn(n,blt)))-e-i.b):(l9(t,(J9(),Yit)),i.c=a.a+Gy(MD(mMn(n,blt)))+e);break;case 4:l9(t,(J9(),Jit)),i.c=-r.b-e-i.b,BB(BB(xq(t.d,0),181).We((hWn(),ult)),285)==(Xyn(),jCt)?(WD(t,(G7(),irt)),i.d=a.b-Gy(MD(mMn(n,blt)))-e-i.a):(WD(t,(G7(),crt)),i.d=a.b+Gy(MD(mMn(n,blt)))+e)}}function HUn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O;for(w=0,S=0,s=new Wb(n);s.a<s.c.c.length;)ozn(o=BB(n0(s),33)),w=e.Math.max(w,o.g),S+=o.g*o.f;for(M=Zyn(n,S/n.c.length),S+=n.c.length*M,w=e.Math.max(w,e.Math.sqrt(S*u))+i.b,I=i.b,O=i.d,b=0,f=i.b+i.c,DH(T=new YT,iln(0)),j=new YT,h=new M2(n,0);h.b<h.d.gc();)Px(h.b<h.d.gc()),C=(o=BB(h.d.Xb(h.c=h.b++),33)).g,l=o.f,I+C>w&&(a&&(fO(j,b),fO(T,iln(h.b-1))),I=i.b,O+=b+t,b=0,f=e.Math.max(f,i.b+i.c+C)),Pen(o,I),Cen(o,O),f=e.Math.max(f,I+C+i.c),b=e.Math.max(b,l),I+=C+t;if(f=e.Math.max(f,r),(P=O+b+i.a)<c&&(b+=c-P,P=c),a)for(I=i.b,h=new M2(n,0),fO(T,iln(n.c.length)),p=BB(b3(E=spn(T,0)),19).a,fO(j,b),k=spn(j,0),y=0;h.b<h.d.gc();)h.b==p&&(I=i.b,y=Gy(MD(b3(k))),p=BB(b3(E),19).a),Px(h.b<h.d.gc()),v=(o=BB(h.d.Xb(h.c=h.b++),33)).f,Men(o,y),d=y,h.b==p&&(g=f-I-i.c,m=o.g,Sen(o,g),lCn(o,new xC(g,d),new xC(m,v))),I+=o.g+t;return new xC(f,P)}function qUn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;for(OTn(t,"Compound graph postprocessor",1),i=qy(TD(mMn(n,(HXn(),Dpt)))),o=BB(mMn(n,(hWn(),Hft)),224),f=new Rv,v=o.ec().Kc();v.Ob();){for(p=BB(v.Pb(),17),u=new t_(o.cc(p)),SQ(),m$(u,new _w(n)),j=ccn((l1(0,u.c.length),BB(u.c[0],243))),T=acn(BB(xq(u,u.c.length-1),243)),y=j.i,m=wan(T.i,y)?y.e:vW(y),l=Apn(p,u),yQ(p.a),b=null,a=new Wb(u);a.a<a.c.c.length;)c=BB(n0(a),243),OPn(g=new Gj,c.a,m),w=c.b,Wsn(r=new km,0,w.a),Ztn(r,g),k=new wA(g1(w.c)),E=new wA(g1(w.d)),UR(k,g),UR(E,g),b&&(0==r.b?d=E:(Px(0!=r.b),d=BB(r.a.a.c,8)),M=e.Math.abs(b.a-d.a)>lZn,S=e.Math.abs(b.b-d.b)>lZn,(!i&&M&&S||i&&(M||S))&&DH(p.a,k)),Frn(p.a,r),0==r.b?b=k:(Px(0!=r.b),b=BB(r.c.b.c,8)),Yan(w,l,g),acn(c)==T&&(vW(T.i)!=c.a&&OPn(g=new Gj,vW(T.i),m),hon(p,Rlt,g)),MSn(w,p,m),f.a.zc(w,f);SZ(p,j),MZ(p,T)}for(h=f.a.ec().Kc();h.Ob();)SZ(s=BB(h.Pb(),17),null),MZ(s,null);HSn(t)}function GUn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;if(1==n.gc())return BB(n.Xb(0),231);if(n.gc()<=0)return new y6;for(c=n.Kc();c.Ob();){for(i=BB(c.Pb(),231),d=0,f=DWn,l=DWn,s=_Vn,h=_Vn,w=new Wb(i.e);w.a<w.c.c.length;)b=BB(n0(w),144),d+=BB(mMn(b,(fRn(),Zct)),19).a,f=e.Math.min(f,b.d.a-b.e.a/2),l=e.Math.min(l,b.d.b-b.e.b/2),s=e.Math.max(s,b.d.a+b.e.a/2),h=e.Math.max(h,b.d.b+b.e.b/2);hon(i,(fRn(),Zct),iln(d)),hon(i,(Mrn(),oat),new xC(f,l)),hon(i,uat,new xC(s,h))}for(SQ(),n.ad(new wt),qan(g=new y6,BB(n.Xb(0),94)),o=0,m=0,a=n.Kc();a.Ob();)i=BB(a.Pb(),231),p=XR(B$(BB(mMn(i,(Mrn(),uat)),8)),BB(mMn(i,oat),8)),o=e.Math.max(o,p.a),m+=p.a*p.b;for(o=e.Math.max(o,e.Math.sqrt(m)*Gy(MD(mMn(g,(fRn(),Fct))))),y=0,k=0,u=0,t=v=Gy(MD(mMn(g,cat))),r=n.Kc();r.Ob();)i=BB(r.Pb(),231),y+(p=XR(B$(BB(mMn(i,(Mrn(),uat)),8)),BB(mMn(i,oat),8))).a>o&&(y=0,k+=u+v,u=0),VKn(g,i,y,k),t=e.Math.max(t,y+p.a),u=e.Math.max(u,p.b),y+=p.a+v;return g}function zUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;switch(h=new km,n.a.g){case 3:l=BB(mMn(t.e,(hWn(),Nlt)),15),b=BB(mMn(t.j,Nlt),15),w=BB(mMn(t.f,Nlt),15),e=BB(mMn(t.e,$lt),15),i=BB(mMn(t.j,$lt),15),r=BB(mMn(t.f,$lt),15),gun(a=new Np,l),b.Jc(new yc),gun(a,cL(b,152)?o6(BB(b,152)):cL(b,131)?BB(b,131).a:cL(b,54)?new fy(b):new CT(b)),gun(a,w),gun(c=new Np,e),gun(c,cL(i,152)?o6(BB(i,152)):cL(i,131)?BB(i,131).a:cL(i,54)?new fy(i):new CT(i)),gun(c,r),hon(t.f,Nlt,a),hon(t.f,$lt,c),hon(t.f,xlt,t.f),hon(t.e,Nlt,null),hon(t.e,$lt,null),hon(t.j,Nlt,null),hon(t.j,$lt,null);break;case 1:Frn(h,t.e.a),DH(h,t.i.n),Frn(h,ean(t.j.a)),DH(h,t.a.n),Frn(h,t.f.a);break;default:Frn(h,t.e.a),Frn(h,ean(t.j.a)),Frn(h,t.f.a)}yQ(t.f.a),Frn(t.f.a,h),SZ(t.f,t.e.c),u=BB(mMn(t.e,(HXn(),vgt)),74),s=BB(mMn(t.j,vgt),74),o=BB(mMn(t.f,vgt),74),(u||s||o)&&(PU(f=new km,o),PU(f,s),PU(f,u),hon(t.f,vgt,f)),SZ(t.j,null),MZ(t.j,null),SZ(t.e,null),MZ(t.e,null),PZ(t.a,null),PZ(t.i,null),t.g&&zUn(n,t.g)}function UUn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b,w,d,g;if(PFn(),null==n)return null;if((w=bln(c=V7(n)))%4!=0)return null;if(0==(d=w/4|0))return x8(NNt,v6n,25,0,15,1);for(f=null,t=0,e=0,i=0,r=0,a=0,u=0,o=0,s=0,b=0,l=0,h=0,f=x8(NNt,v6n,25,3*d,15,1);b<d-1;b++){if(!(VE(a=c[h++])&&VE(u=c[h++])&&VE(o=c[h++])&&VE(s=c[h++])))return null;t=WLt[a],e=WLt[u],i=WLt[o],r=WLt[s],f[l++]=(t<<2|e>>4)<<24>>24,f[l++]=((15&e)<<4|i>>2&15)<<24>>24,f[l++]=(i<<6|r)<<24>>24}return VE(a=c[h++])&&VE(u=c[h++])?(t=WLt[a],e=WLt[u],o=c[h++],s=c[h++],-1==WLt[o]||-1==WLt[s]?61==o&&61==s?0!=(15&e)?null:(aHn(f,0,g=x8(NNt,v6n,25,3*b+1,15,1),0,3*b),g[l]=(t<<2|e>>4)<<24>>24,g):61!=o&&61==s?0!=(3&(i=WLt[o]))?null:(aHn(f,0,g=x8(NNt,v6n,25,3*b+2,15,1),0,3*b),g[l++]=(t<<2|e>>4)<<24>>24,g[l]=((15&e)<<4|i>>2&15)<<24>>24,g):null:(i=WLt[o],r=WLt[s],f[l++]=(t<<2|e>>4)<<24>>24,f[l++]=((15&e)<<4|i>>2&15)<<24>>24,f[l++]=(i<<6|r)<<24>>24,f)):null}function XUn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;for(OTn(t,O1n,1),l=BB(mMn(n,(HXn(),Zdt)),218),i=new Wb(n.b);i.a<i.c.c.length;)for(a=0,u=(c=n2(BB(n0(i),29).a)).length;a<u;++a)if((r=c[a]).k==(uSn(),Iut)){if(l==(Mbn(),JPt))for(s=new Wb(r.j);s.a<s.c.c.length;)0==(o=BB(n0(s),11)).e.c.length||Agn(o),0==o.g.c.length||$gn(o);else if(cL(mMn(r,(hWn(),dlt)),17))w=BB(mMn(r,dlt),17),d=BB(DSn(r,(kUn(),CIt)).Kc().Pb(),11),g=BB(DSn(r,oIt).Kc().Pb(),11),p=BB(mMn(d,dlt),11),SZ(w,v=BB(mMn(g,dlt),11)),MZ(w,p),(m=new wA(g.i.n)).a=Aon(Pun(Gk(PMt,1),sVn,8,0,[v.i.n,v.n,v.a])).a,DH(w.a,m),(m=new wA(d.i.n)).a=Aon(Pun(Gk(PMt,1),sVn,8,0,[p.i.n,p.n,p.a])).a,DH(w.a,m);else{if(r.j.c.length>=2){for(b=!0,e=BB(n0(h=new Wb(r.j)),11),f=null;h.a<h.c.c.length;)if(f=e,e=BB(n0(h),11),!Nfn(mMn(f,dlt),mMn(e,dlt))){b=!1;break}}else b=!1;for(s=new Wb(r.j);s.a<s.c.c.length;)0==(o=BB(n0(s),11)).e.c.length||uxn(o,b),0==o.g.c.length||oxn(o,b)}PZ(r,null)}HSn(t)}function WUn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M;return y=n.c[(l1(0,t.c.length),BB(t.c[0],17)).p],T=n.c[(l1(1,t.c.length),BB(t.c[1],17)).p],!(y.a.e.e-y.a.a-(y.b.e.e-y.b.a)==0&&T.a.e.e-T.a.a-(T.b.e.e-T.b.a)==0||!cL(v=y.b.e.f,10)||(p=BB(v,10),j=n.i[p.p],E=p.c?E7(p.c.a,p,0):-1,a=RQn,E>0&&(c=BB(xq(p.c.a,E-1),10),u=n.i[c.p],M=e.Math.ceil(K$(n.n,c,p)),a=j.a.e-p.d.d-(u.a.e+c.o.b+c.d.a)-M),h=RQn,E<p.c.a.c.length-1&&(s=BB(xq(p.c.a,E+1),10),f=n.i[s.p],M=e.Math.ceil(K$(n.n,s,p)),h=f.a.e-s.d.d-(j.a.e+p.o.b+p.d.a)-M),!(i&&(h$(),rin(A3n),e.Math.abs(a-h)<=A3n||a==h||isNaN(a)&&isNaN(h)))&&(r=aX(y.a),o=-aX(y.b),l=-aX(T.a),m=aX(T.b),g=y.a.e.e-y.a.a-(y.b.e.e-y.b.a)>0&&T.a.e.e-T.a.a-(T.b.e.e-T.b.a)<0,d=y.a.e.e-y.a.a-(y.b.e.e-y.b.a)<0&&T.a.e.e-T.a.a-(T.b.e.e-T.b.a)>0,w=y.a.e.e+y.b.a<T.b.e.e+T.a.a,b=y.a.e.e+y.b.a>T.b.e.e+T.a.a,k=0,!g&&!d&&(b?a+l>0?k=l:h-r>0&&(k=r):w&&(a+o>0?k=o:h-m>0&&(k=m))),j.a.e+=k,j.b&&(j.d.e+=k),1)))}function VUn(n,t,i){var r,c,a,u,o,s,h,f,l,b;if(r=new UV(t.qf().a,t.qf().b,t.rf().a,t.rf().b),c=new bA,n.c)for(u=new Wb(t.wf());u.a<u.c.c.length;)a=BB(n0(u),181),c.c=a.qf().a+t.qf().a,c.d=a.qf().b+t.qf().b,c.b=a.rf().a,c.a=a.rf().b,CPn(r,c);for(h=new Wb(t.Cf());h.a<h.c.c.length;){if(f=(s=BB(n0(h),838)).qf().a+t.qf().a,l=s.qf().b+t.qf().b,n.e&&(c.c=f,c.d=l,c.b=s.rf().a,c.a=s.rf().b,CPn(r,c)),n.d)for(u=new Wb(s.wf());u.a<u.c.c.length;)a=BB(n0(u),181),c.c=a.qf().a+f,c.d=a.qf().b+l,c.b=a.rf().a,c.a=a.rf().b,CPn(r,c);if(n.b){if(b=new xC(-i,-i),BB(t.We((sWn(),fPt)),174).Hc((lIn(),rIt)))for(u=new Wb(s.wf());u.a<u.c.c.length;)a=BB(n0(u),181),b.a+=a.rf().a+i,b.b+=a.rf().b+i;b.a=e.Math.max(b.a,0),b.b=e.Math.max(b.b,0),X_n(r,s.Bf(),s.zf(),t,s,b,i)}}n.b&&X_n(r,t.Bf(),t.zf(),t,null,null,i),(o=new A_(t.Af())).d=e.Math.max(0,t.qf().b-r.d),o.a=e.Math.max(0,r.d+r.a-(t.qf().b+t.rf().b)),o.b=e.Math.max(0,t.qf().a-r.c),o.c=e.Math.max(0,r.c+r.b-(t.qf().a+t.rf().a)),t.Ef(o)}function QUn(){var n=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F"];return n[34]='\\"',n[92]="\\\\",n[173]="\\u00ad",n[1536]="\\u0600",n[1537]="\\u0601",n[1538]="\\u0602",n[1539]="\\u0603",n[1757]="\\u06dd",n[1807]="\\u070f",n[6068]="\\u17b4",n[6069]="\\u17b5",n[8203]="\\u200b",n[8204]="\\u200c",n[8205]="\\u200d",n[8206]="\\u200e",n[8207]="\\u200f",n[8232]="\\u2028",n[8233]="\\u2029",n[8234]="\\u202a",n[8235]="\\u202b",n[8236]="\\u202c",n[8237]="\\u202d",n[8238]="\\u202e",n[8288]="\\u2060",n[8289]="\\u2061",n[8290]="\\u2062",n[8291]="\\u2063",n[8292]="\\u2064",n[8298]="\\u206a",n[8299]="\\u206b",n[8300]="\\u206c",n[8301]="\\u206d",n[8302]="\\u206e",n[8303]="\\u206f",n[65279]="\\ufeff",n[65529]="\\ufff9",n[65530]="\\ufffa",n[65531]="\\ufffb",n}function YUn(n,t,e){var i,r,c,a,u,o,s,h,f,l;for(o=new Np,f=t.length,a=Ion(e),s=0;s<f;++s){switch(h=yN(t,YTn(61),s),c=(r=uun(i=fln(a,t.substr(s,h-s)))).Aj().Nh(),fV(t,++h)){case 39:u=lx(t,39,++h),WB(o,new CI(i,YV(t.substr(h,u-h),c,r))),s=u+1;break;case 34:u=lx(t,34,++h),WB(o,new CI(i,YV(t.substr(h,u-h),c,r))),s=u+1;break;case 91:WB(o,new CI(i,l=new Np));n:for(;;){switch(fV(t,++h)){case 39:u=lx(t,39,++h),WB(l,YV(t.substr(h,u-h),c,r)),h=u+1;break;case 34:u=lx(t,34,++h),WB(l,YV(t.substr(h,u-h),c,r)),h=u+1;break;case 110:if(++h,t.indexOf("ull",h)!=h)throw Hp(new dy(a6n));l.c[l.c.length]=null,h+=3}if(!(h<f))break;switch(b1(h,t.length),t.charCodeAt(h)){case 44:break;case 93:break n;default:throw Hp(new dy("Expecting , or ]"))}}s=h+1;break;case 110:if(++h,t.indexOf("ull",h)!=h)throw Hp(new dy(a6n));WB(o,new CI(i,null)),s=h+3}if(!(s<f))break;if(b1(s,t.length),44!=t.charCodeAt(s))throw Hp(new dy("Expecting ,"))}return iDn(n,o,e)}function JUn(n,t){var e,i,r,c,a,u,o,s,h,f,l;for(s=BB(BB(h6(n.r,t),21),84),a=JTn(n,t),e=n.u.Hc((lIn(),nIt)),o=s.Kc();o.Ob();)if((u=BB(o.Pb(),111)).c&&!(u.c.d.c.length<=0)){switch(l=u.b.rf(),(f=(h=u.c).i).b=(c=h.n,h.e.a+c.b+c.c),f.a=(r=h.n,h.e.b+r.d+r.a),t.g){case 1:u.a?(f.c=(l.a-f.b)/2,l9(h,(J9(),Qit))):a||e?(f.c=-f.b-n.s,l9(h,(J9(),Jit))):(f.c=l.a+n.s,l9(h,(J9(),Yit))),f.d=-f.a-n.t,WD(h,(G7(),irt));break;case 3:u.a?(f.c=(l.a-f.b)/2,l9(h,(J9(),Qit))):a||e?(f.c=-f.b-n.s,l9(h,(J9(),Jit))):(f.c=l.a+n.s,l9(h,(J9(),Yit))),f.d=l.b+n.t,WD(h,(G7(),crt));break;case 2:u.a?(i=n.v?f.a:BB(xq(h.d,0),181).rf().b,f.d=(l.b-i)/2,WD(h,(G7(),rrt))):a||e?(f.d=-f.a-n.t,WD(h,(G7(),irt))):(f.d=l.b+n.t,WD(h,(G7(),crt))),f.c=l.a+n.s,l9(h,(J9(),Yit));break;case 4:u.a?(i=n.v?f.a:BB(xq(h.d,0),181).rf().b,f.d=(l.b-i)/2,WD(h,(G7(),rrt))):a||e?(f.d=-f.a-n.t,WD(h,(G7(),irt))):(f.d=l.b+n.t,WD(h,(G7(),crt))),f.c=-f.b-n.s,l9(h,(J9(),Jit))}a=!1}}function ZUn(n,t){var e,i,r,c,a,u,o,s,h,f,l;if(wWn(),0==NT(iNt)){for(f=x8(INt,sVn,117,cNt.length,0,1),a=0;a<f.length;a++)f[a]=new M0(4);for(i=new Pk,c=0;c<eNt.length;c++){if(h=new M0(4),c<84?(b1(u=2*c,vnt.length),l=vnt.charCodeAt(u),b1(u+1,vnt.length),Yxn(h,l,vnt.charCodeAt(u+1))):Yxn(h,aNt[u=2*(c-84)],aNt[u+1]),mK(o=eNt[c],"Specials")&&Yxn(h,65520,65533),mK(o,gnt)&&(Yxn(h,983040,1048573),Yxn(h,1048576,1114109)),mZ(iNt,o,h),mZ(rNt,o,$Fn(h)),0<(s=i.a.length)?i.a=i.a.substr(0,0):0>s&&(i.a+=rL(x8(ONt,WVn,25,-s,15,1))),i.a+="Is",GO(o,YTn(32))>=0)for(r=0;r<o.length;r++)b1(r,o.length),32!=o.charCodeAt(r)&&NX(i,(b1(r,o.length),o.charCodeAt(r)));else i.a+=""+o;Tdn(i.a,o,!0)}Tdn(pnt,"Cn",!1),Tdn(mnt,"Cn",!0),Yxn(e=new M0(4),0,unt),mZ(iNt,"ALL",e),mZ(rNt,"ALL",$Fn(e)),!SNt&&(SNt=new xp),mZ(SNt,pnt,pnt),!SNt&&(SNt=new xp),mZ(SNt,mnt,mnt),!SNt&&(SNt=new xp),mZ(SNt,"ALL","ALL")}return BB(SJ(t?iNt:rNt,n),136)}function nXn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p;if(l=!1,f=!1,vA(BB(mMn(i,(HXn(),ept)),98))){a=!1,u=!1;n:for(w=new Wb(i.j);w.a<w.c.c.length;)for(b=BB(n0(w),11),d=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[new Hw(b),new Gw(b)])));dAn(d);)if(!qy(TD(mMn(BB(U5(d),11).i,Tdt)))){if(b.j==(kUn(),sIt)){a=!0;break n}if(b.j==SIt){u=!0;break n}}l=u&&!a,f=a&&!u}if(l||f||0==i.b.c.length)p=!f;else{for(h=0,s=new Wb(i.b);s.a<s.c.c.length;)h+=(o=BB(n0(s),70)).n.b+o.o.b/2;p=(h/=i.b.c.length)>=i.o.b/2}p?(g=BB(mMn(i,(hWn(),Klt)),15))?l?c=g:(r=BB(mMn(i,Dft),15))?c=g.gc()<=r.gc()?g:r:(c=new Np,hon(i,Dft,c)):(c=new Np,hon(i,Klt,c)):(r=BB(mMn(i,(hWn(),Dft)),15))?f?c=r:(g=BB(mMn(i,Klt),15))?c=r.gc()<=g.gc()?r:g:(c=new Np,hon(i,Klt,c)):(c=new Np,hon(i,Dft,c)),c.Fc(n),hon(n,(hWn(),Kft),e),t.d==e?(MZ(t,null),e.e.c.length+e.g.c.length==0&&CZ(e,null),gsn(e)):(SZ(t,null),e.e.c.length+e.g.c.length==0&&CZ(e,null)),yQ(t.a)}function tXn(n,t){var e,i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I;for(v=new M2(n.b,0),d=0,s=BB((f=t.Kc()).Pb(),19).a,k=0,e=new Rv,E=new fA;v.b<v.d.gc();){for(Px(v.b<v.d.gc()),y=new Wb(BB(v.d.Xb(v.c=v.b++),29).a);y.a<y.c.c.length;){for(w=new oz(ZL(lbn(m=BB(n0(y),10)).a.Kc(),new h));dAn(w);)l=BB(U5(w),17),E.a.zc(l,E);for(b=new oz(ZL(fbn(m).a.Kc(),new h));dAn(b);)l=BB(U5(b),17),E.a.Bc(l)}if(d+1==s){for(yR(v,r=new HX(n)),yR(v,c=new HX(n)),M=E.a.ec().Kc();M.Ob();)T=BB(M.Pb(),17),e.a._b(T)||(++k,e.a.zc(T,e)),hon(a=new $vn(n),(HXn(),ept),(QEn(),VCt)),PZ(a,r),Bl(a,(uSn(),Tut)),CZ(g=new CSn,a),qCn(g,(kUn(),CIt)),CZ(S=new CSn,a),qCn(S,oIt),hon(i=new $vn(n),ept,VCt),PZ(i,c),Bl(i,Tut),CZ(p=new CSn,i),qCn(p,CIt),CZ(P=new CSn,i),qCn(P,oIt),SZ(j=new wY,T.c),MZ(j,g),SZ(I=new wY,S),MZ(I,p),SZ(T,P),u=new v3(a,i,j,I,T),hon(a,(hWn(),Rft),u),hon(i,Rft,u),(C=j.c.i).k==Tut&&((o=BB(mMn(C,Rft),305)).d=u,u.g=o);if(!f.Ob())break;s=BB(f.Pb(),19).a}++d}return iln(k)}function eXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d;for(f=0,r=new AL((!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));r.e!=r.i.gc();)qy(TD(ZAn(i=BB(kpn(r),33),(HXn(),Ggt))))||(GI(ZAn(t,Ldt))===GI((mon(),Nvt))&&GI(ZAn(t,Gdt))!==GI((Vvn(),Eht))&&GI(ZAn(t,Gdt))!==GI((Vvn(),kht))&&!qy(TD(ZAn(t,xdt)))&&GI(ZAn(t,Cdt))===GI((Bfn(),wut))||qy(TD(ZAn(i,$dt)))||(Ypn(i,(hWn(),wlt),iln(f)),++f),wzn(n,i,e));for(f=0,s=new AL((!t.b&&(t.b=new eU(_Ot,t,12,3)),t.b));s.e!=s.i.gc();)u=BB(kpn(s),79),(GI(ZAn(t,(HXn(),Ldt)))!==GI((mon(),Nvt))||GI(ZAn(t,Gdt))===GI((Vvn(),Eht))||GI(ZAn(t,Gdt))===GI((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GI(ZAn(t,Cdt))!==GI((Bfn(),wut)))&&(Ypn(u,(hWn(),wlt),iln(f)),++f),w=PMn(u),d=OMn(u),h=qy(TD(ZAn(w,wgt))),b=!qy(TD(ZAn(u,Ggt))),l=h&&QIn(u)&&qy(TD(ZAn(u,dgt))),c=JJ(w)==t&&JJ(w)==JJ(d),a=(JJ(w)==t&&d==t)^(JJ(d)==t&&w==t),b&&!l&&(a||c)&&uWn(n,u,t,e);if(JJ(t))for(o=new AL(iQ(JJ(t)));o.e!=o.i.gc();)(w=PMn(u=BB(kpn(o),79)))==t&&QIn(u)&&(l=qy(TD(ZAn(w,(HXn(),wgt))))&&qy(TD(ZAn(u,dgt))))&&uWn(n,u,t,e)}function iXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A;for(OTn(i,"MinWidth layering",1),w=t.b,T=t.a,A=BB(mMn(t,(HXn(),Egt)),19).a,o=BB(mMn(t,Tgt),19).a,n.b=Gy(MD(mMn(t,ypt))),n.d=RQn,k=new Wb(T);k.a<k.c.c.length;)(m=BB(n0(k),10)).k==(uSn(),Cut)&&(P=m.o.b,n.d=e.Math.min(n.d,P));for(n.d=e.Math.max(1,n.d),M=T.c.length,n.c=x8(ANt,hQn,25,M,15,1),n.f=x8(ANt,hQn,25,M,15,1),n.e=x8(xNt,qQn,25,M,15,1),h=0,n.a=0,j=new Wb(T);j.a<j.c.c.length;)(m=BB(n0(j),10)).p=h++,n.c[m.p]=whn(fbn(m)),n.f[m.p]=whn(lbn(m)),n.e[m.p]=m.o.b/n.d,n.a+=n.e[m.p];for(n.b/=n.d,n.a/=M,E=jOn(T),m$(T,QW(new Kd(n))),g=RQn,d=DWn,u=null,O=A,I=A,a=o,c=o,A<0&&(O=BB(Tmt.a.zd(),19).a,I=BB(Tmt.b.zd(),19).a),o<0&&(a=BB(Emt.a.zd(),19).a,c=BB(Emt.b.zd(),19).a),C=O;C<=I;C++)for(r=a;r<=c;r++)v=Gy(MD((S=LBn(n,C,r,T,E)).a)),p=(b=BB(S.b,15)).gc(),(v<g||v==g&&p<d)&&(g=v,d=p,u=b);for(l=u.Kc();l.Ob();){for(f=BB(l.Pb(),15),s=new HX(t),y=f.Kc();y.Ob();)PZ(m=BB(y.Pb(),10),s);w.c[w.c.length]=s}JPn(w),T.c=x8(Ant,HWn,1,0,5,1),HSn(i)}function rXn(n,t){var i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M;for(n.b=t,n.a=BB(mMn(t,(HXn(),hgt)),19).a,n.c=BB(mMn(t,lgt),19).a,0==n.c&&(n.c=DWn),g=new M2(t.b,0);g.b<g.d.gc();){for(Px(g.b<g.d.gc()),d=BB(g.d.Xb(g.c=g.b++),29),o=new Np,l=-1,y=-1,m=new Wb(d.a);m.a<m.c.c.length;)v=BB(n0(m),10),F3((q_(),new oz(ZL(hbn(v).a.Kc(),new h))))>=n.a&&(r=yBn(n,v),l=e.Math.max(l,r.b),y=e.Math.max(y,r.d),WB(o,new rI(v,r)));for(E=new Np,f=0;f<l;++f)kG(E,0,(Px(g.b>0),g.a.Xb(g.c=--g.b),yR(g,T=new HX(n.b)),Px(g.b<g.d.gc()),g.d.Xb(g.c=g.b++),T));for(u=new Wb(o);u.a<u.c.c.length;)if(c=BB(n0(u),46),w=BB(c.b,571).a)for(b=new Wb(w);b.a<b.c.c.length;)ukn(n,BB(n0(b),10),Uut,E);for(i=new Np,s=0;s<y;++s)WB(i,(yR(g,M=new HX(n.b)),M));for(a=new Wb(o);a.a<a.c.c.length;)if(c=BB(n0(a),46),j=BB(c.b,571).c)for(k=new Wb(j);k.a<k.c.c.length;)ukn(n,BB(n0(k),10),Xut,i)}for(p=new M2(t.b,0);p.b<p.d.gc();)Px(p.b<p.d.gc()),0==BB(p.d.Xb(p.c=p.b++),29).a.c.length&&fW(p)}function cXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C;if(OTn(i,"Spline edge routing",1),0==t.b.c.length)return t.f.a=0,void HSn(i);v=Gy(MD(mMn(t,(HXn(),Apt)))),o=Gy(MD(mMn(t,Tpt))),u=Gy(MD(mMn(t,kpt))),T=BB(mMn(t,rgt),336)==(Usn(),rmt),E=Gy(MD(mMn(t,cgt))),n.d=t,n.j.c=x8(Ant,HWn,1,0,5,1),n.a.c=x8(Ant,HWn,1,0,5,1),$U(n.k),f=VI((s=BB(xq(t.b,0),29)).a,(dxn(),jyt)),l=VI((d=BB(xq(t.b,t.b.c.length-1),29)).a,jyt),g=new Wb(t.b),p=null,C=0;do{for(RUn(n,p,m=g.a<g.c.c.length?BB(n0(g),29):null),MFn(n),P=0,y=C,b=!p||f&&p==s,w=!m||l&&m==d,(M=_k(rcn(NV(AV(new Rq(null,new w1(n.i,16)),new ya),new ma))))>0?(h=0,p&&(h+=o),h+=(M-1)*u,m&&(h+=o),T&&m&&(h=e.Math.max(h,nxn(m,u,v,E))),h<v&&!b&&!w&&(P=(v-h)/2,h=v),y+=h):!b&&!w&&(y+=v),m&&Tqn(m,y),j=new Wb(n.i);j.a<j.c.c.length;)(k=BB(n0(j),128)).a.c=C,k.a.b=y-C,k.F=P,k.p=!p;gun(n.a,n.i),C=y,m&&(C+=m.c.a),p=m,b=w}while(m);for(c=new Wb(n.j);c.a<c.c.c.length;)a=man(n,r=BB(n0(c),17)),hon(r,(hWn(),$lt),a),S=Dxn(n,r),hon(r,Nlt,S);t.f.a=C,n.d=null,HSn(i)}function aXn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m;if(d=0!=n.i,v=!1,g=null,mA(n.e)){if((h=t.gc())>0){for(l=h<100?null:new Fj(h),w=(s=new jcn(t)).g,g=x8(ANt,hQn,25,h,15,1),i=0,m=new gtn(h),r=0;r<n.i;++r){b=u=n.g[r];n:for(p=0;p<2;++p){for(o=h;--o>=0;)if(null!=b?Nfn(b,w[o]):GI(b)===GI(w[o])){g.length<=i&&aHn(g,0,g=x8(ANt,hQn,25,2*g.length,15,1),0,i),g[i++]=r,f9(m,w[o]);break n}if(GI(b)===GI(u))break}}if(s=m,w=m.g,h=i,i>g.length&&aHn(g,0,g=x8(ANt,hQn,25,i,15,1),0,i),i>0){for(v=!0,c=0;c<i;++c)l=zK(n,BB(b=w[c],72),l);for(a=i;--a>=0;)Lyn(n,g[a]);if(i!=h){for(r=h;--r>=i;)Lyn(s,r);aHn(g,0,g=x8(ANt,hQn,25,i,15,1),0,i)}t=s}}}else for(t=jyn(n,t),r=n.i;--r>=0;)t.Hc(n.g[r])&&(Lyn(n,r),v=!0);if(v){if(null!=g){for(f=1==(e=t.gc())?yZ(n,4,t.Kc().Pb(),null,g[0],d):yZ(n,6,t,g,g[0],d),l=e<100?null:new Fj(e),r=t.Kc();r.Ob();)l=qK(n,BB(b=r.Pb(),72),l);l?(l.Ei(f),l.Fi()):ban(n.e,f)}else{for(l=$K(t.gc()),r=t.Kc();r.Ob();)l=qK(n,BB(b=r.Pb(),72),l);l&&l.Fi()}return!0}return!1}function uXn(n,t){var e,i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m;for((e=new hvn(t)).a||g_n(t),s=lRn(t),o=new pJ,g=new Qxn,d=new Wb(t.a);d.a<d.c.c.length;)for(r=new oz(ZL(lbn(BB(n0(d),10)).a.Kc(),new h));dAn(r);)(i=BB(U5(r),17)).c.i.k!=(uSn(),Mut)&&i.d.i.k!=Mut||JIn(o,upn((f=lzn(n,i,s,g)).d),f.a);for(a=new Np,m=BB(mMn(e.c,(hWn(),Xft)),21).Kc();m.Ob();){switch(v=BB(m.Pb(),61),w=g.c[v.g],b=g.b[v.g],u=g.a[v.g],c=null,p=null,v.g){case 4:c=new UV(n.d.a,w,s.b.a-n.d.a,b-w),p=new UV(n.d.a,w,u,b-w),zH(s,new xC(c.c+c.b,c.d)),zH(s,new xC(c.c+c.b,c.d+c.a));break;case 2:c=new UV(s.a.a,w,n.c.a-s.a.a,b-w),p=new UV(n.c.a-u,w,u,b-w),zH(s,new xC(c.c,c.d)),zH(s,new xC(c.c,c.d+c.a));break;case 1:c=new UV(w,n.d.b,b-w,s.b.b-n.d.b),p=new UV(w,n.d.b,b-w,u),zH(s,new xC(c.c,c.d+c.a)),zH(s,new xC(c.c+c.b,c.d+c.a));break;case 3:c=new UV(w,s.a.b,b-w,n.c.b-s.a.b),p=new UV(w,n.c.b-u,b-w,u),zH(s,new xC(c.c,c.d)),zH(s,new xC(c.c+c.b,c.d))}c&&((l=new nm).d=v,l.b=c,l.c=p,l.a=JQ(BB(h6(o,upn(v)),21)),a.c[a.c.length]=l)}return gun(e.b,a),e.d=Bhn(nGn(s)),e}function oXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d;if(null==i.p[t.p]){o=!0,i.p[t.p]=0,u=t,d=i.o==(oZ(),ryt)?KQn:RQn;do{c=n.b.e[u.p],a=u.c.a.c.length,i.o==ryt&&c>0||i.o==cyt&&c<a-1?(s=null,h=null,s=i.o==cyt?BB(xq(u.c.a,c+1),10):BB(xq(u.c.a,c-1),10),oXn(n,h=i.g[s.p],i),d=n.e.bg(d,t,u),i.j[t.p]==t&&(i.j[t.p]=i.j[h.p]),i.j[t.p]==i.j[h.p]?(w=K$(n.d,u,s),i.o==cyt?(r=Gy(i.p[t.p]),l=Gy(i.p[h.p])+Gy(i.d[s.p])-s.d.d-w-u.d.a-u.o.b-Gy(i.d[u.p]),o?(o=!1,i.p[t.p]=e.Math.min(l,d)):i.p[t.p]=e.Math.min(r,e.Math.min(l,d))):(r=Gy(i.p[t.p]),l=Gy(i.p[h.p])+Gy(i.d[s.p])+s.o.b+s.d.a+w+u.d.d-Gy(i.d[u.p]),o?(o=!1,i.p[t.p]=e.Math.max(l,d)):i.p[t.p]=e.Math.max(r,e.Math.max(l,d)))):(w=Gy(MD(mMn(n.a,(HXn(),Opt)))),b=krn(n,i.j[t.p]),f=krn(n,i.j[h.p]),i.o==cyt?U1(b,f,Gy(i.p[t.p])+Gy(i.d[u.p])+u.o.b+u.d.a+w-(Gy(i.p[h.p])+Gy(i.d[s.p])-s.d.d)):U1(b,f,Gy(i.p[t.p])+Gy(i.d[u.p])-u.d.d-Gy(i.p[h.p])-Gy(i.d[s.p])-s.o.b-s.d.a-w))):d=n.e.bg(d,t,u),u=i.a[u.p]}while(u!=t);Ov(n.e,t)}}function sXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;for(f=t,h=new pJ,l=new pJ,c=N2(f,x6n),GSn((i=new fQ(n,e,h,l)).a,i.b,i.c,i.d,c),d=(h.i||(h.i=new HL(h,h.c))).Kc();d.Ob();)for(w=BB(d.Pb(),202),u=BB(h6(h,w),21).Kc();u.Ob();){if(a=u.Pb(),!(b=BB(sen(n.d,a),202)))throw r=R2(f,q6n),Hp(new ek(V6n+a+Q6n+r+W6n));!w.e&&(w.e=new hK(FOt,w,10,9)),f9(w.e,b)}for(p=(l.i||(l.i=new HL(l,l.c))).Kc();p.Ob();)for(g=BB(p.Pb(),202),s=BB(h6(l,g),21).Kc();s.Ob();){if(o=s.Pb(),!(b=BB(sen(n.d,o),202)))throw r=R2(f,q6n),Hp(new ek(V6n+o+Q6n+r+W6n));!g.g&&(g.g=new hK(FOt,g,9,10)),f9(g.g,b)}!e.b&&(e.b=new hK(KOt,e,4,7)),0!=e.b.i&&(!e.c&&(e.c=new hK(KOt,e,5,8)),0!=e.c.i)&&(!e.b&&(e.b=new hK(KOt,e,4,7)),e.b.i<=1&&(!e.c&&(e.c=new hK(KOt,e,5,8)),e.c.i<=1))&&1==(!e.a&&(e.a=new eU(FOt,e,6,6)),e.a).i&&(Svn(v=BB(Wtn((!e.a&&(e.a=new eU(FOt,e,6,6)),e.a),0),202))||Pvn(v)||(Lin(v,BB(Wtn((!e.b&&(e.b=new hK(KOt,e,4,7)),e.b),0),82)),Nin(v,BB(Wtn((!e.c&&(e.c=new hK(KOt,e,5,8)),e.c),0),82))))}function hXn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;for(y=0,k=(m=n.a).length;y<k;++y){for(v=m[y],s=DWn,h=DWn,w=new Wb(v.e);w.a<w.c.c.length;)(a=(l=BB(n0(w),10)).c?E7(l.c.a,l,0):-1)>0?(f=BB(xq(l.c.a,a-1),10),T=K$(n.b,l,f),g=l.n.b-l.d.d-(f.n.b+f.o.b+f.d.a+T)):g=l.n.b-l.d.d,s=e.Math.min(g,s),a<l.c.a.c.length-1?(f=BB(xq(l.c.a,a+1),10),T=K$(n.b,l,f),p=f.n.b-f.d.d-(l.n.b+l.o.b+l.d.a+T)):p=2*l.n.b,h=e.Math.min(p,h);for(o=DWn,c=!1,S=new Wb((r=BB(xq(v.e,0),10)).j);S.a<S.c.c.length;)for(M=BB(n0(S),11),d=r.n.b+M.n.b+M.a.b,i=new Wb(M.e);i.a<i.c.c.length;)t=(j=BB(n0(i),17).c).i.n.b+j.n.b+j.a.b-d,e.Math.abs(t)<e.Math.abs(o)&&e.Math.abs(t)<(t<0?s:h)&&(o=t,c=!0);for(E=new Wb((u=BB(xq(v.e,v.e.c.length-1),10)).j);E.a<E.c.c.length;)for(j=BB(n0(E),11),d=u.n.b+j.n.b+j.a.b,i=new Wb(j.g);i.a<i.c.c.length;)t=(M=BB(n0(i),17).d).i.n.b+M.n.b+M.a.b-d,e.Math.abs(t)<e.Math.abs(o)&&e.Math.abs(t)<(t<0?s:h)&&(o=t,c=!0);if(c&&0!=o)for(b=new Wb(v.e);b.a<b.c.c.length;)(l=BB(n0(b),10)).n.b+=o}}function fXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g;if(hU(n.a,t)){if(FT(BB(RX(n.a,t),53),e))return 1}else VW(n.a,t,new Rv);if(hU(n.a,e)){if(FT(BB(RX(n.a,e),53),t))return-1}else VW(n.a,e,new Rv);if(hU(n.e,t)){if(FT(BB(RX(n.e,t),53),e))return-1}else VW(n.e,t,new Rv);if(hU(n.e,e)){if(FT(BB(RX(n.a,e),53),t))return 1}else VW(n.e,e,new Rv);if(n.c==(mon(),xvt)||!Lx(t,(hWn(),wlt))||!Lx(e,(hWn(),wlt))){if(o=BB(EN(M4(Qon(AV(new Rq(null,new w1(t.j,16)),new sc)),new hc)),11),h=BB(EN(M4(Qon(AV(new Rq(null,new w1(e.j,16)),new fc)),new lc)),11),o&&h){if(u=o.i,s=h.i,u&&u==s){for(l=new Wb(u.j);l.a<l.c.c.length;){if((f=BB(n0(l),11))==o)return aKn(n,e,t),-1;if(f==h)return aKn(n,t,e),1}return E$(iEn(n,t),iEn(n,e))}for(d=0,g=(w=n.d).length;d<g;++d){if((b=w[d])==u)return aKn(n,e,t),-1;if(b==s)return aKn(n,t,e),1}}if(!Lx(t,(hWn(),wlt))||!Lx(e,wlt))return(r=iEn(n,t))>(a=iEn(n,e))?aKn(n,t,e):aKn(n,e,t),r<a?-1:r>a?1:0}return(i=BB(mMn(t,(hWn(),wlt)),19).a)>(c=BB(mMn(e,wlt),19).a)?aKn(n,t,e):aKn(n,e,t),i<c?-1:i>c?1:0}function lXn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d;if(qy(TD(ZAn(t,(sWn(),zSt)))))return SQ(),SQ(),set;if(o=0!=(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a).i,s=!(h=yIn(t)).dc(),o||s){if(!(r=BB(ZAn(t,mPt),149)))throw Hp(new rk("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));if(d=OC(r,(hAn(),nAt)),Ngn(t),!o&&s&&!d)return SQ(),SQ(),set;if(u=new Np,GI(ZAn(t,ESt))===GI((ufn(),pCt))&&(OC(r,YOt)||OC(r,QOt)))for(l=pRn(n,t),Frn(b=new YT,(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));0!=b.b;)Ngn(f=BB(0==b.b?null:(Px(0!=b.b),Atn(b,b.a.a)),33)),GI(ZAn(f,ESt))===GI(mCt)||P8(f,eSt)&&!j5(r,ZAn(f,mPt))?(gun(u,lXn(n,f,e,i)),Ypn(f,ESt,mCt),KKn(f)):Frn(b,(!f.a&&(f.a=new eU(UOt,f,10,11)),f.a));else for(l=(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a).i,a=new AL((!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));a.e!=a.i.gc();)gun(u,lXn(n,c=BB(kpn(a),33),e,i)),KKn(c);for(w=new Wb(u);w.a<w.c.c.length;)Ypn(BB(n0(w),79),zSt,(hN(),!0));return Ugn(t,r,mcn(i,l)),w_n(u),s&&d?h:(SQ(),SQ(),set)}return SQ(),SQ(),set}function bXn(n,t,e,i,r,c,a,u,o){var s,h,f,l,b,w,d;switch(b=e,Bl(h=new $vn(o),(uSn(),Mut)),hon(h,(hWn(),Yft),a),hon(h,(HXn(),ept),(QEn(),XCt)),d=Gy(MD(n.We(tpt))),hon(h,tpt,d),CZ(f=new CSn,h),t!=QCt&&t!=YCt||(b=i>=0?hwn(u):Tln(hwn(u)),n.Ye(upt,b)),s=new Gj,l=!1,n.Xe(npt)?(Hx(s,BB(n.We(npt),8)),l=!0):yL(s,a.a/2,a.b/2),b.g){case 4:hon(h,kgt,(Tbn(),Flt)),hon(h,Gft,(Jun(),$ht)),h.o.b=a.b,d<0&&(h.o.a=-d),qCn(f,(kUn(),oIt)),l||(s.a=a.a),s.a-=a.a;break;case 2:hon(h,kgt,(Tbn(),Hlt)),hon(h,Gft,(Jun(),Oht)),h.o.b=a.b,d<0&&(h.o.a=-d),qCn(f,(kUn(),CIt)),l||(s.a=0);break;case 1:hon(h,ilt,(z7(),Cft)),h.o.a=a.a,d<0&&(h.o.b=-d),qCn(f,(kUn(),SIt)),l||(s.b=a.b),s.b-=a.b;break;case 3:hon(h,ilt,(z7(),Sft)),h.o.a=a.a,d<0&&(h.o.b=-d),qCn(f,(kUn(),sIt)),l||(s.b=0)}if(Hx(f.n,s),hon(h,npt,s),t==UCt||t==WCt||t==XCt){if(w=0,t==UCt&&n.Xe(ipt))switch(b.g){case 1:case 2:w=BB(n.We(ipt),19).a;break;case 3:case 4:w=-BB(n.We(ipt),19).a}else switch(b.g){case 4:case 2:w=c.b,t==WCt&&(w/=r.b);break;case 1:case 3:w=c.a,t==WCt&&(w/=r.a)}hon(h,Tlt,w)}return hon(h,Qft,b),h}function wXn(n){var t,e,i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E;if((e=Gy(MD(mMn(n.a.j,(HXn(),_dt)))))<-1||!n.a.i||LK(BB(mMn(n.a.o,ept),98))||abn(n.a.o,(kUn(),oIt)).gc()<2&&abn(n.a.o,CIt).gc()<2)return!0;if(n.a.c.Rf())return!1;for(y=0,m=0,v=new Np,o=0,s=(u=n.a.e).length;o<s;++o){for(b=0,d=(l=u[o]).length;b<d;++b)if((f=l[b]).k!=(uSn(),Iut)){for(i=n.b[f.c.p][f.p],f.k==Mut?(i.b=1,BB(mMn(f,(hWn(),dlt)),11).j==(kUn(),oIt)&&(m+=i.a)):(E=abn(f,(kUn(),CIt))).dc()||!tL(E,new Nc)?i.c=1:((r=abn(f,oIt)).dc()||!tL(r,new Lc))&&(y+=i.a),a=new oz(ZL(lbn(f).a.Kc(),new h));dAn(a);)c=BB(U5(a),17),y+=i.c,m+=i.b,X8(n,i,c.d.i);for(j=new oz(new WL((g=Wen(Pun(Gk(xnt,1),HWn,20,0,[abn(f,(kUn(),sIt)),abn(f,SIt)]))).a.length,g.a));dAn(j);)k=BB(U5(j),11),(p=BB(mMn(k,(hWn(),Elt)),10))&&(y+=i.c,m+=i.b,X8(n,i,p))}else v.c[v.c.length]=f;for(w=new Wb(v);w.a<w.c.c.length;)for(f=BB(n0(w),10),i=n.b[f.c.p][f.p],a=new oz(ZL(lbn(f).a.Kc(),new h));dAn(a);)c=BB(U5(a),17),y+=i.c,m+=i.b,X8(n,i,c.d.i);v.c=x8(Ant,HWn,1,0,5,1)}return(0==(t=y+m)?RQn:(y-m)/t)>=e}function dXn(){function n(n){var t=this;this.dispatch=function(t){var e=t.data;switch(e.cmd){case"algorithms":var i=Swn((SQ(),new Hb(new Ob(lAt.b))));n.postMessage({id:e.id,data:i});break;case"categories":var r=Swn((SQ(),new Hb(new Ob(lAt.c))));n.postMessage({id:e.id,data:r});break;case"options":var c=Swn((SQ(),new Hb(new Ob(lAt.d))));n.postMessage({id:e.id,data:c});break;case"register":lGn(e.algorithms),n.postMessage({id:e.id});break;case"layout":xBn(e.graph,e.layoutOptions||{},e.options||{}),n.postMessage({id:e.id,data:e.graph})}},this.saveDispatch=function(e){try{t.dispatch(e)}catch(i){n.postMessage({id:e.data.id,error:i})}}}function e(t){var e=this;this.dispatcher=new n({postMessage:function(n){e.onmessage({data:n})}}),this.postMessage=function(n){setTimeout((function(){e.dispatcher.saveDispatch({data:n})}),0)}}if(aE(),typeof document===gYn&&typeof self!==gYn){var r=new n(self);self.onmessage=r.saveDispatch}else typeof t!==gYn&&t.exports&&(Object.defineProperty(i,"__esModule",{value:!0}),t.exports={default:e,Worker:e})}function gXn(n){n.N||(n.N=!0,n.b=kan(n,0),Rrn(n.b,0),Rrn(n.b,1),Rrn(n.b,2),n.bb=kan(n,1),Rrn(n.bb,0),Rrn(n.bb,1),n.fb=kan(n,2),Rrn(n.fb,3),Rrn(n.fb,4),Krn(n.fb,5),n.qb=kan(n,3),Rrn(n.qb,0),Krn(n.qb,1),Krn(n.qb,2),Rrn(n.qb,3),Rrn(n.qb,4),Krn(n.qb,5),Rrn(n.qb,6),n.a=jan(n,4),n.c=jan(n,5),n.d=jan(n,6),n.e=jan(n,7),n.f=jan(n,8),n.g=jan(n,9),n.i=jan(n,10),n.j=jan(n,11),n.k=jan(n,12),n.n=jan(n,13),n.o=jan(n,14),n.p=jan(n,15),n.q=jan(n,16),n.s=jan(n,17),n.r=jan(n,18),n.t=jan(n,19),n.u=jan(n,20),n.v=jan(n,21),n.w=jan(n,22),n.B=jan(n,23),n.A=jan(n,24),n.C=jan(n,25),n.D=jan(n,26),n.F=jan(n,27),n.G=jan(n,28),n.H=jan(n,29),n.J=jan(n,30),n.I=jan(n,31),n.K=jan(n,32),n.M=jan(n,33),n.L=jan(n,34),n.P=jan(n,35),n.Q=jan(n,36),n.R=jan(n,37),n.S=jan(n,38),n.T=jan(n,39),n.U=jan(n,40),n.V=jan(n,41),n.X=jan(n,42),n.W=jan(n,43),n.Y=jan(n,44),n.Z=jan(n,45),n.$=jan(n,46),n._=jan(n,47),n.ab=jan(n,48),n.cb=jan(n,49),n.db=jan(n,50),n.eb=jan(n,51),n.gb=jan(n,52),n.hb=jan(n,53),n.ib=jan(n,54),n.jb=jan(n,55),n.kb=jan(n,56),n.lb=jan(n,57),n.mb=jan(n,58),n.nb=jan(n,59),n.ob=jan(n,60),n.pb=jan(n,61))}function pXn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;if(m=0,0==t.f.a)for(p=new Wb(n);p.a<p.c.c.length;)d=BB(n0(p),10),m=e.Math.max(m,d.n.a+d.o.a+d.d.c);else m=t.f.a-t.c.a;for(m-=t.c.a,g=new Wb(n);g.a<g.c.c.length;){switch(Zp((d=BB(n0(g),10)).n,m-d.o.a),cH(d.f),Vmn(d),(d.q?d.q:(SQ(),SQ(),het))._b((HXn(),spt))&&Zp(BB(mMn(d,spt),8),m-d.o.a),BB(mMn(d,kdt),248).g){case 1:hon(d,kdt,(wvn(),$Mt));break;case 2:hon(d,kdt,(wvn(),AMt))}for(v=d.o,k=new Wb(d.j);k.a<k.c.c.length;){for(Zp((y=BB(n0(k),11)).n,v.a-y.o.a),Zp(y.a,y.o.a),qCn(y,Icn(y.j)),(u=BB(mMn(y,ipt),19))&&hon(y,ipt,iln(-u.a)),a=new Wb(y.g);a.a<a.c.c.length;){for(r=spn((c=BB(n0(a),17)).a,0);r.b!=r.d.c;)(i=BB(b3(r),8)).a=m-i.a;if(h=BB(mMn(c,vgt),74))for(s=spn(h,0);s.b!=s.d.c;)(o=BB(b3(s),8)).a=m-o.a;for(b=new Wb(c.b);b.a<b.c.c.length;)Zp((f=BB(n0(b),70)).n,m-f.o.a)}for(w=new Wb(y.f);w.a<w.c.c.length;)Zp((f=BB(n0(w),70)).n,y.o.a-f.o.a)}for(d.k==(uSn(),Mut)&&(hon(d,(hWn(),Qft),Icn(BB(mMn(d,Qft),61))),YMn(d)),l=new Wb(d.b);l.a<l.c.c.length;)Vmn(f=BB(n0(l),70)),Zp(f.n,v.a-f.o.a)}}function vXn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;if(m=0,0==t.f.b)for(p=new Wb(n);p.a<p.c.c.length;)d=BB(n0(p),10),m=e.Math.max(m,d.n.b+d.o.b+d.d.a);else m=t.f.b-t.c.b;for(m-=t.c.b,g=new Wb(n);g.a<g.c.c.length;){switch(Jp((d=BB(n0(g),10)).n,m-d.o.b),aH(d.f),Qmn(d),(d.q?d.q:(SQ(),SQ(),het))._b((HXn(),spt))&&Jp(BB(mMn(d,spt),8),m-d.o.b),BB(mMn(d,kdt),248).g){case 3:hon(d,kdt,(wvn(),IMt));break;case 4:hon(d,kdt,(wvn(),LMt))}for(v=d.o,k=new Wb(d.j);k.a<k.c.c.length;){for(Jp((y=BB(n0(k),11)).n,v.b-y.o.b),Jp(y.a,y.o.b),qCn(y,Ocn(y.j)),(u=BB(mMn(y,ipt),19))&&hon(y,ipt,iln(-u.a)),a=new Wb(y.g);a.a<a.c.c.length;){for(r=spn((c=BB(n0(a),17)).a,0);r.b!=r.d.c;)(i=BB(b3(r),8)).b=m-i.b;if(h=BB(mMn(c,vgt),74))for(s=spn(h,0);s.b!=s.d.c;)(o=BB(b3(s),8)).b=m-o.b;for(b=new Wb(c.b);b.a<b.c.c.length;)Jp((f=BB(n0(b),70)).n,m-f.o.b)}for(w=new Wb(y.f);w.a<w.c.c.length;)Jp((f=BB(n0(w),70)).n,y.o.b-f.o.b)}for(d.k==(uSn(),Mut)&&(hon(d,(hWn(),Qft),Ocn(BB(mMn(d,Qft),61))),gln(d)),l=new Wb(d.b);l.a<l.c.c.length;)Qmn(f=BB(n0(l),70)),Jp(f.n,v.b-f.o.b)}}function mXn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b;for(f=!1,s=n+1,l1(n,t.c.length),a=(h=BB(t.c[n],200)).a,u=null,c=0;c<h.a.c.length;c++)if(l1(c,a.c.length),!(r=BB(a.c[c],187)).c)if(0!=r.b.c.length){if(r.k||(u&&Gmn(u),Tvn(r,(u=new KJ(u?u.e+u.d+i:0,h.f,i)).e+u.d,h.f),WB(h.d,u),xcn(u,r),r.k=!0),o=null,b=null,c<h.a.c.length-1?b=BB(xq(h.a,c+1),187):s<t.c.length&&0!=(l1(s,t.c.length),BB(t.c[s],200)).a.c.length&&(b=BB(xq((l1(s,t.c.length),BB(t.c[s],200)).a,0),187)),l=!1,(o=b)&&(l=!Nfn(o.j,h)),o){if(0==o.b.c.length){Tkn(h,o);break}if(p9(r,e-r.s),Gmn(r.q),f|=nSn(h,r,o,e,i),0==o.b.c.length)for(Tkn((l1(s,t.c.length),BB(t.c[s],200)),o),o=null;t.c.length>s&&0==(l1(s,t.c.length),BB(t.c[s],200)).a.c.length;)y7(t,(l1(s,t.c.length),t.c[s]));if(!o){--c;continue}if(A_n(t,h,r,o,l,e,s,i)){f=!0;continue}if(l){if(JBn(t,h,r,o,e,s,i)){f=!0;continue}if(Ahn(h,r)){r.c=!0,f=!0;continue}}else if(Ahn(h,r)){r.c=!0,f=!0;continue}if(f)continue}Ahn(h,r)?(r.c=!0,f=!0,o&&(o.k=!1)):Gmn(r.q)}else $T(),Tkn(h,r),--c,f=!0;return f}function yXn(n,t,i,r,c,a,u){var o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A;for(g=0,P=0,h=new Wb(n.b);h.a<h.c.c.length;)(s=BB(n0(h),157)).c&&ozn(s.c),g=e.Math.max(g,iG(s)),P+=iG(s)*eG(s);for(p=P/n.b.c.length,S=hjn(n.b,p),P+=n.b.c.length*S,g=e.Math.max(g,e.Math.sqrt(P*u))+i.b,O=i.b,A=i.d,w=0,l=i.b+i.c,DH(M=new YT,iln(0)),E=new YT,f=new M2(n.b,0),d=null,o=new Np;f.b<f.d.gc();)Px(f.b<f.d.gc()),I=iG(s=BB(f.d.Xb(f.c=f.b++),157)),b=eG(s),O+I>g&&(a&&(fO(E,w),fO(M,iln(f.b-1)),WB(n.d,d),o.c=x8(Ant,HWn,1,0,5,1)),O=i.b,A+=w+t,w=0,l=e.Math.max(l,i.b+i.c+I)),o.c[o.c.length]=s,Mpn(s,O,A),l=e.Math.max(l,O+I+i.c),w=e.Math.max(w,b),O+=I+t,d=s;if(gun(n.a,o),WB(n.d,BB(xq(o,o.c.length-1),157)),l=e.Math.max(l,r),(C=A+w+i.a)<c&&(w+=c-C,C=c),a)for(O=i.b,f=new M2(n.b,0),fO(M,iln(n.b.c.length)),m=BB(b3(T=spn(M,0)),19).a,fO(E,w),j=spn(E,0),k=0;f.b<f.d.gc();)f.b==m&&(O=i.b,k=Gy(MD(b3(j))),m=BB(b3(T),19).a),Px(f.b<f.d.gc()),Udn(s=BB(f.d.Xb(f.c=f.b++),157),k),f.b==m&&(v=l-O-i.c,y=iG(s),zdn(s,v),Fln(s,(v-y)/2,0)),O+=iG(s)+t;return new xC(l,C)}function kXn(n){var t,e,i,r;switch(r=null,n.c){case 6:return n.Vl();case 13:return n.Wl();case 23:return n.Nl();case 22:return n.Sl();case 18:return n.Pl();case 8:QXn(n),wWn(),r=oNt;break;case 9:return n.vl(!0);case 19:return n.wl();case 10:switch(n.a){case 100:case 68:case 119:case 87:case 115:case 83:return r=n.ul(n.a),QXn(n),r;case 101:case 102:case 110:case 114:case 116:case 117:case 118:case 120:(t=n.tl())<BQn?(wWn(),wWn(),r=new oG(0,t)):r=pz(Xln(t));break;case 99:return n.Fl();case 67:return n.Al();case 105:return n.Il();case 73:return n.Bl();case 103:return n.Gl();case 88:return n.Cl();case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return n.xl();case 80:case 112:if(!(r=DIn(n,n.a)))throw Hp(new ak(kWn((u$(),O8n))));break;default:r=QH(n.a)}QXn(n);break;case 0:if(93==n.a||123==n.a||125==n.a)throw Hp(new ak(kWn((u$(),I8n))));r=QH(n.a),e=n.a,QXn(n),(64512&e)==HQn&&0==n.c&&56320==(64512&n.a)&&((i=x8(ONt,WVn,25,2,15,1))[0]=e&QVn,i[1]=n.a&QVn,r=oU(pz(Bdn(i,0,i.length)),0),QXn(n));break;default:throw Hp(new ak(kWn((u$(),I8n))))}return r}function jXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g;if(r=new Np,c=DWn,a=DWn,u=DWn,i)for(c=n.f.a,d=new Wb(t.j);d.a<d.c.c.length;)for(s=new Wb(BB(n0(d),11).g);s.a<s.c.c.length;)0!=(o=BB(n0(s),17)).a.b&&((f=BB(gx(o.a),8)).a<c&&(a=c-f.a,u=DWn,r.c=x8(Ant,HWn,1,0,5,1),c=f.a),f.a<=c&&(r.c[r.c.length]=o,o.a.b>1&&(u=e.Math.min(u,e.Math.abs(BB(Dpn(o.a,1),8).b-f.b)))));else for(d=new Wb(t.j);d.a<d.c.c.length;)for(s=new Wb(BB(n0(d),11).e);s.a<s.c.c.length;)0!=(o=BB(n0(s),17)).a.b&&((b=BB(px(o.a),8)).a>c&&(a=b.a-c,u=DWn,r.c=x8(Ant,HWn,1,0,5,1),c=b.a),b.a>=c&&(r.c[r.c.length]=o,o.a.b>1&&(u=e.Math.min(u,e.Math.abs(BB(Dpn(o.a,o.a.b-2),8).b-b.b)))));if(0!=r.c.length&&a>t.o.a/2&&u>t.o.b/2){for(CZ(w=new CSn,t),qCn(w,(kUn(),sIt)),w.n.a=t.o.a/2,CZ(g=new CSn,t),qCn(g,SIt),g.n.a=t.o.a/2,g.n.b=t.o.b,s=new Wb(r);s.a<s.c.c.length;)o=BB(n0(s),17),i?(h=BB(dH(o.a),8),(0==o.a.b?g1(o.d):BB(gx(o.a),8)).b>=h.b?SZ(o,g):SZ(o,w)):(h=BB(gH(o.a),8),(0==o.a.b?g1(o.c):BB(px(o.a),8)).b>=h.b?MZ(o,g):MZ(o,w)),(l=BB(mMn(o,(HXn(),vgt)),74))&&ywn(l,h,!0);t.n.a=c-t.o.a/2}}function EXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;if(s=t,$in(o=Q3(n,L3(e),s),R2(s,q6n)),h=BB(sen(n.g,kIn(zJ(s,T6n))),33),i=null,(a=zJ(s,"sourcePort"))&&(i=kIn(a)),f=BB(sen(n.j,i),118),!h)throw Hp(new ek("An edge must have a source node (edge id: '"+Qdn(s)+W6n));if(f&&!wW(WJ(f),h))throw Hp(new ek("The source port of an edge must be a port of the edge's source node (edge id: '"+R2(s,q6n)+W6n));if(!o.b&&(o.b=new hK(KOt,o,4,7)),f9(o.b,f||h),l=BB(sen(n.g,kIn(zJ(s,Y6n))),33),r=null,(u=zJ(s,"targetPort"))&&(r=kIn(u)),b=BB(sen(n.j,r),118),!l)throw Hp(new ek("An edge must have a target node (edge id: '"+Qdn(s)+W6n));if(b&&!wW(WJ(b),l))throw Hp(new ek("The target port of an edge must be a port of the edge's target node (edge id: '"+R2(s,q6n)+W6n));if(!o.c&&(o.c=new hK(KOt,o,5,8)),f9(o.c,b||l),0==(!o.b&&(o.b=new hK(KOt,o,4,7)),o.b).i||0==(!o.c&&(o.c=new hK(KOt,o,5,8)),o.c).i)throw c=R2(s,q6n),Hp(new ek(X6n+c+W6n));return STn(s,o),s$n(s,o),xon(n,s,o)}function TXn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S;return f=CFn(HN(n,(kUn(),wIt)),t),w=ayn(HN(n,dIt),t),y=ayn(HN(n,EIt),t),T=uyn(HN(n,MIt),t),l=uyn(HN(n,hIt),t),v=ayn(HN(n,jIt),t),d=ayn(HN(n,gIt),t),j=ayn(HN(n,TIt),t),k=ayn(HN(n,fIt),t),M=uyn(HN(n,bIt),t),p=ayn(HN(n,yIt),t),m=ayn(HN(n,mIt),t),E=ayn(HN(n,lIt),t),S=uyn(HN(n,kIt),t),b=uyn(HN(n,pIt),t),g=ayn(HN(n,vIt),t),e=Lon(Pun(Gk(xNt,1),qQn,25,15,[v.a,T.a,j.a,S.a])),i=Lon(Pun(Gk(xNt,1),qQn,25,15,[w.a,f.a,y.a,g.a])),r=p.a,c=Lon(Pun(Gk(xNt,1),qQn,25,15,[d.a,l.a,k.a,b.a])),s=Lon(Pun(Gk(xNt,1),qQn,25,15,[v.b,w.b,d.b,m.b])),o=Lon(Pun(Gk(xNt,1),qQn,25,15,[T.b,f.b,l.b,g.b])),h=M.b,u=Lon(Pun(Gk(xNt,1),qQn,25,15,[j.b,y.b,k.b,E.b])),w9(HN(n,wIt),e+r,s+h),w9(HN(n,vIt),e+r,s+h),w9(HN(n,dIt),e+r,0),w9(HN(n,EIt),e+r,s+h+o),w9(HN(n,MIt),0,s+h),w9(HN(n,hIt),e+r+i,s+h),w9(HN(n,gIt),e+r+i,0),w9(HN(n,TIt),0,s+h+o),w9(HN(n,fIt),e+r+i,s+h+o),w9(HN(n,bIt),0,s),w9(HN(n,yIt),e,0),w9(HN(n,lIt),0,s+h+o),w9(HN(n,pIt),e+r+i,0),(a=new Gj).a=Lon(Pun(Gk(xNt,1),qQn,25,15,[e+i+r+c,M.a,m.a,E.a])),a.b=Lon(Pun(Gk(xNt,1),qQn,25,15,[s+o+h+u,p.b,S.b,b.b])),a}function MXn(n){var t,e,i,r,c,a,u,o,s,f,l,b,w,d,g;for(d=new Np,l=new Wb(n.d.b);l.a<l.c.c.length;)for(w=new Wb(BB(n0(l),29).a);w.a<w.c.c.length;){for(b=BB(n0(w),10),r=BB(RX(n.f,b),57),o=new oz(ZL(lbn(b).a.Kc(),new h));dAn(o);)if(s=!0,f=null,(i=spn((a=BB(U5(o),17)).a,0)).b!=i.d.c){for(t=BB(b3(i),8),e=null,a.c.j==(kUn(),sIt)&&((g=new PBn(t,new xC(t.a,r.d.d),r,a)).f.a=!0,g.a=a.c,d.c[d.c.length]=g),a.c.j==SIt&&((g=new PBn(t,new xC(t.a,r.d.d+r.d.a),r,a)).f.d=!0,g.a=a.c,d.c[d.c.length]=g);i.b!=i.d.c;)e=BB(b3(i),8),aen(t.b,e.b)||(f=new PBn(t,e,null,a),d.c[d.c.length]=f,s&&(s=!1,e.b<r.d.d?f.f.a=!0:e.b>r.d.d+r.d.a?f.f.d=!0:(f.f.d=!0,f.f.a=!0))),i.b!=i.d.c&&(t=e);f&&(c=BB(RX(n.f,a.d.i),57),t.b<c.d.d?f.f.a=!0:t.b>c.d.d+c.d.a?f.f.d=!0:(f.f.d=!0,f.f.a=!0))}for(u=new oz(ZL(fbn(b).a.Kc(),new h));dAn(u);)0!=(a=BB(U5(u),17)).a.b&&(t=BB(px(a.a),8),a.d.j==(kUn(),sIt)&&((g=new PBn(t,new xC(t.a,r.d.d),r,a)).f.a=!0,g.a=a.d,d.c[d.c.length]=g),a.d.j==SIt&&((g=new PBn(t,new xC(t.a,r.d.d+r.d.a),r,a)).f.d=!0,g.a=a.d,d.c[d.c.length]=g))}return d}function SXn(n,t,e){var i,r,c,a,u,o,s;if(OTn(e,"Network simplex node placement",1),n.e=t,n.n=BB(mMn(t,(hWn(),Alt)),304),oqn(n),REn(n),JT(wnn(new Rq(null,new w1(n.e.b,16)),new Hc),new cg(n)),JT(AV(wnn(AV(wnn(new Rq(null,new w1(n.e.b,16)),new ta),new ea),new ia),new ra),new rg(n)),qy(TD(mMn(n.e,(HXn(),xgt))))&&(OTn(c=mcn(e,1),"Straight Edges Pre-Processing",1),jzn(n),HSn(c)),Mvn(n.f),r=BB(mMn(t,xpt),19).a*n.f.a.c.length,WKn(Qk(Yk(B_(n.f),r),!1),mcn(e,1)),0!=n.d.a.gc()){for(OTn(c=mcn(e,1),"Flexible Where Space Processing",1),a=BB($N(Oz($V(new Rq(null,new w1(n.f.a,16)),new qc),new Dc)),19).a,u=BB($N(Iz($V(new Rq(null,new w1(n.f.a,16)),new Gc),new Rc)),19).a-a,o=AN(new qv,n.f),s=AN(new qv,n.f),UNn(aM(cM(rM(uM(new Hv,2e4),u),o),s)),JT(AV(AV(LU(n.i),new zc),new Uc),new zV(a,o,u,s)),i=n.d.a.ec().Kc();i.Ob();)BB(i.Pb(),213).g=1;WKn(Qk(Yk(B_(n.f),r),!1),mcn(c,1)),HSn(c)}qy(TD(mMn(t,xgt)))&&(OTn(c=mcn(e,1),"Straight Edges Post-Processing",1),SPn(n),HSn(c)),QGn(n),n.e=null,n.f=null,n.i=null,n.c=null,$U(n.k),n.j=null,n.a=null,n.o=null,n.d.a.$b(),HSn(e)}function PXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(u=new Wb(n.a.b);u.a<u.c.c.length;)for(m=new Wb(BB(n0(u),29).a);m.a<m.c.c.length;)v=BB(n0(m),10),t.g[v.p]=v,t.a[v.p]=v,t.d[v.p]=0;for(o=n.a.b,t.c==(gJ(),nyt)&&(o=cL(o,152)?o6(BB(o,152)):cL(o,131)?BB(o,131).a:cL(o,54)?new fy(o):new CT(o)),a=o.Kc();a.Ob();)for(b=-1,l=BB(a.Pb(),29).a,t.o==(oZ(),cyt)&&(b=DWn,l=cL(l,152)?o6(BB(l,152)):cL(l,131)?BB(l,131).a:cL(l,54)?new fy(l):new CT(l)),k=l.Kc();k.Ob();)if(y=BB(k.Pb(),10),f=null,(f=t.c==nyt?BB(xq(n.b.f,y.p),15):BB(xq(n.b.b,y.p),15)).gc()>0)if(r=f.gc(),s=CJ(e.Math.floor((r+1)/2))-1,c=CJ(e.Math.ceil((r+1)/2))-1,t.o==cyt)for(h=c;h>=s;h--)t.a[y.p]==y&&(d=BB(f.Xb(h),46),w=BB(d.a,10),!FT(i,d.b)&&b>n.b.e[w.p]&&(t.a[w.p]=y,t.g[y.p]=t.g[w.p],t.a[y.p]=t.g[y.p],t.f[t.g[y.p].p]=(hN(),!!(qy(t.f[t.g[y.p].p])&y.k==(uSn(),Put))),b=n.b.e[w.p]));else for(h=s;h<=c;h++)t.a[y.p]==y&&(p=BB(f.Xb(h),46),g=BB(p.a,10),!FT(i,p.b)&&b<n.b.e[g.p]&&(t.a[g.p]=y,t.g[y.p]=t.g[g.p],t.a[y.p]=t.g[y.p],t.f[t.g[y.p].p]=(hN(),!!(qy(t.f[t.g[y.p].p])&y.k==(uSn(),Put))),b=n.b.e[g.p]))}function CXn(){CXn=O,eE(),POt=gOt.a,BB(Wtn(QQ(gOt.a),0),18),kOt=gOt.f,BB(Wtn(QQ(gOt.f),0),18),BB(Wtn(QQ(gOt.f),1),34),SOt=gOt.n,BB(Wtn(QQ(gOt.n),0),34),BB(Wtn(QQ(gOt.n),1),34),BB(Wtn(QQ(gOt.n),2),34),BB(Wtn(QQ(gOt.n),3),34),jOt=gOt.g,BB(Wtn(QQ(gOt.g),0),18),BB(Wtn(QQ(gOt.g),1),34),vOt=gOt.c,BB(Wtn(QQ(gOt.c),0),18),BB(Wtn(QQ(gOt.c),1),18),EOt=gOt.i,BB(Wtn(QQ(gOt.i),0),18),BB(Wtn(QQ(gOt.i),1),18),BB(Wtn(QQ(gOt.i),2),18),BB(Wtn(QQ(gOt.i),3),18),BB(Wtn(QQ(gOt.i),4),34),TOt=gOt.j,BB(Wtn(QQ(gOt.j),0),18),mOt=gOt.d,BB(Wtn(QQ(gOt.d),0),18),BB(Wtn(QQ(gOt.d),1),18),BB(Wtn(QQ(gOt.d),2),18),BB(Wtn(QQ(gOt.d),3),18),BB(Wtn(QQ(gOt.d),4),34),BB(Wtn(QQ(gOt.d),5),34),BB(Wtn(QQ(gOt.d),6),34),BB(Wtn(QQ(gOt.d),7),34),pOt=gOt.b,BB(Wtn(QQ(gOt.b),0),34),BB(Wtn(QQ(gOt.b),1),34),yOt=gOt.e,BB(Wtn(QQ(gOt.e),0),34),BB(Wtn(QQ(gOt.e),1),34),BB(Wtn(QQ(gOt.e),2),34),BB(Wtn(QQ(gOt.e),3),34),BB(Wtn(QQ(gOt.e),4),18),BB(Wtn(QQ(gOt.e),5),18),BB(Wtn(QQ(gOt.e),6),18),BB(Wtn(QQ(gOt.e),7),18),BB(Wtn(QQ(gOt.e),8),18),BB(Wtn(QQ(gOt.e),9),18),BB(Wtn(QQ(gOt.e),10),34),MOt=gOt.k,BB(Wtn(QQ(gOt.k),0),34),BB(Wtn(QQ(gOt.k),1),34)}function IXn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P;for(M=new YT,j=new YT,g=-1,o=new Wb(n);o.a<o.c.c.length;){for((a=BB(n0(o),128)).s=g--,h=0,m=0,c=new Wb(a.t);c.a<c.c.c.length;)m+=(i=BB(n0(c),268)).c;for(r=new Wb(a.i);r.a<r.c.c.length;)h+=(i=BB(n0(r),268)).c;a.n=h,a.u=m,0==m?r5(j,a,j.c.b,j.c):0==h&&r5(M,a,M.c.b,M.c)}for(P=S4(n),d=(f=n.c.length)+1,p=f-1,b=new Np;0!=P.a.gc();){for(;0!=j.b;)Px(0!=j.b),k=BB(Atn(j,j.a.a),128),P.a.Bc(k),k.s=p--,cLn(k,M,j);for(;0!=M.b;)Px(0!=M.b),E=BB(Atn(M,M.a.a),128),P.a.Bc(E),E.s=d++,cLn(E,M,j);for(w=_Vn,s=P.a.ec().Kc();s.Ob();)(v=(a=BB(s.Pb(),128)).u-a.n)>=w&&(v>w&&(b.c=x8(Ant,HWn,1,0,5,1),w=v),b.c[b.c.length]=a);0!=b.c.length&&(l=BB(xq(b,pvn(t,b.c.length)),128),P.a.Bc(l),l.s=d++,cLn(l,M,j),b.c=x8(Ant,HWn,1,0,5,1))}for(y=n.c.length+1,u=new Wb(n);u.a<u.c.c.length;)(a=BB(n0(u),128)).s<f&&(a.s+=y);for(T=new Wb(n);T.a<T.c.c.length;)for(e=new M2((E=BB(n0(T),128)).t,0);e.b<e.d.gc();)Px(e.b<e.d.gc()),S=(i=BB(e.d.Xb(e.c=e.b++),268)).b,E.s>S.s&&(fW(e),y7(S.i,i),i.c>0&&(i.a=S,WB(S.t,i),i.b=E,WB(E.i,i)))}function OXn(n){var t,e,i,r,c;switch(t=n.c){case 11:return n.Ml();case 12:return n.Ol();case 14:return n.Ql();case 15:return n.Tl();case 16:return n.Rl();case 17:return n.Ul();case 21:return QXn(n),wWn(),wWn(),sNt;case 10:switch(n.a){case 65:return n.yl();case 90:return n.Dl();case 122:return n.Kl();case 98:return n.El();case 66:return n.zl();case 60:return n.Jl();case 62:return n.Hl()}}switch(c=kXn(n),t=n.c){case 3:return n.Zl(c);case 4:return n.Xl(c);case 5:return n.Yl(c);case 0:if(123==n.a&&n.d<n.j){if(r=n.d,i=0,e=-1,!((t=fV(n.i,r++))>=48&&t<=57))throw Hp(new ak(kWn((u$(),X8n))));for(i=t-48;r<n.j&&(t=fV(n.i,r++))>=48&&t<=57;)if((i=10*i+t-48)<0)throw Hp(new ak(kWn((u$(),Y8n))));if(e=i,44==t){if(r>=n.j)throw Hp(new ak(kWn((u$(),V8n))));if((t=fV(n.i,r++))>=48&&t<=57){for(e=t-48;r<n.j&&(t=fV(n.i,r++))>=48&&t<=57;)if((e=10*e+t-48)<0)throw Hp(new ak(kWn((u$(),Y8n))));if(i>e)throw Hp(new ak(kWn((u$(),Q8n))))}else e=-1}if(125!=t)throw Hp(new ak(kWn((u$(),W8n))));n.sl(r)?(wWn(),wWn(),c=new h4(9,c),n.d=r+1):(wWn(),wWn(),c=new h4(3,c),n.d=r),c.dm(i),c.cm(e),QXn(n)}}return c}function AXn(n,t,e,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M;for(w=new J6(t.b),v=new J6(t.b),l=new J6(t.b),j=new J6(t.b),d=new J6(t.b),k=spn(t,0);k.b!=k.d.c;)for(u=new Wb((m=BB(b3(k),11)).g);u.a<u.c.c.length;)if((c=BB(n0(u),17)).c.i==c.d.i){if(m.j==c.d.j){j.c[j.c.length]=c;continue}if(m.j==(kUn(),sIt)&&c.d.j==SIt){d.c[d.c.length]=c;continue}}for(o=new Wb(d);o.a<o.c.c.length;)__n(n,c=BB(n0(o),17),e,i,(kUn(),oIt));for(a=new Wb(j);a.a<a.c.c.length;)c=BB(n0(a),17),Bl(E=new $vn(n),(uSn(),Iut)),hon(E,(HXn(),ept),(QEn(),XCt)),hon(E,(hWn(),dlt),c),hon(T=new CSn,dlt,c.d),qCn(T,(kUn(),CIt)),CZ(T,E),hon(M=new CSn,dlt,c.c),qCn(M,oIt),CZ(M,E),hon(c.c,Elt,E),hon(c.d,Elt,E),SZ(c,null),MZ(c,null),e.c[e.c.length]=E,hon(E,Bft,iln(2));for(y=spn(t,0);y.b!=y.d.c;)s=(m=BB(b3(y),11)).e.c.length>0,g=m.g.c.length>0,s&&g?l.c[l.c.length]=m:s?w.c[w.c.length]=m:g&&(v.c[v.c.length]=m);for(b=new Wb(w);b.a<b.c.c.length;)WB(r,HBn(n,BB(n0(b),11),null,e));for(p=new Wb(v);p.a<p.c.c.length;)WB(r,HBn(n,null,BB(n0(p),11),e));for(f=new Wb(l);f.a<f.c.c.length;)WB(r,HBn(n,h=BB(n0(f),11),h,e))}function $Xn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;for(d=new xC(RQn,RQn),t=new xC(KQn,KQn),k=new Wb(n);k.a<k.c.c.length;)y=BB(n0(k),8),d.a=e.Math.min(d.a,y.a),d.b=e.Math.min(d.b,y.b),t.a=e.Math.max(t.a,y.a),t.b=e.Math.max(t.b,y.b);for(s=new xC(t.a-d.a,t.b-d.b),h=new ZFn(new xC(d.a-50,d.b-s.a-50),new xC(d.a-50,t.b+s.a+50),new xC(t.a+s.b/2+50,d.b+s.b/2)),m=new Rv,c=new Np,i=new Np,m.a.zc(h,m),E=new Wb(n);E.a<E.c.c.length;){for(j=BB(n0(E),8),c.c=x8(Ant,HWn,1,0,5,1),v=m.a.ec().Kc();v.Ob();)W8((g=BB(v.Pb(),308)).d,g.a),Ibn(W8(g.d,j),W8(g.d,g.a))<0&&(c.c[c.c.length]=g);for(i.c=x8(Ant,HWn,1,0,5,1),p=new Wb(c);p.a<p.c.c.length;)for(b=new Wb((g=BB(n0(p),308)).e);b.a<b.c.c.length;){for(f=BB(n0(b),168),a=!0,o=new Wb(c);o.a<o.c.c.length;)(u=BB(n0(o),308))!=g&&(cV(f,xq(u.e,0))||cV(f,xq(u.e,1))||cV(f,xq(u.e,2)))&&(a=!1);a&&(i.c[i.c.length]=f)}for(oMn(m,c),e5(m,new bn),l=new Wb(i);l.a<l.c.c.length;)TU(m,new ZFn(j,(f=BB(n0(l),168)).a,f.b))}for(e5(m,new jw(w=new Rv)),r=w.a.ec().Kc();r.Ob();)(K7(h,(f=BB(r.Pb(),168)).a)||K7(h,f.b))&&r.Qb();return e5(w,new wn),w}function LXn(n){var t,e,i;switch(e=BB(mMn(n,(hWn(),Zft)),21),t=kA(Nat),BB(mMn(n,(HXn(),sgt)),334)==(ufn(),pCt)&&Jcn(t,xat),qy(TD(mMn(n,ugt)))?dq(t,(yMn(),Rat),(lWn(),Hot)):dq(t,(yMn(),_at),(lWn(),Hot)),null!=mMn(n,(C6(),TMt))&&Jcn(t,Dat),(qy(TD(mMn(n,ggt)))||qy(TD(mMn(n,ogt))))&&WG(t,(yMn(),Bat),(lWn(),eot)),BB(mMn(n,Udt),103).g){case 2:case 3:case 4:WG(dq(t,(yMn(),Rat),(lWn(),rot)),Bat,iot)}switch(e.Hc((bDn(),hft))&&WG(dq(dq(t,(yMn(),Rat),(lWn(),tot)),Fat,Zut),Bat,not),GI(mMn(n,Sgt))!==GI((sNn(),Ivt))&&dq(t,(yMn(),_at),(lWn(),Not)),e.Hc(pft)&&(dq(t,(yMn(),Rat),(lWn(),Fot)),dq(t,Kat,Kot),dq(t,_at,_ot)),GI(mMn(n,Pdt))!==GI((JMn(),cft))&&GI(mMn(n,Zdt))!==GI((Mbn(),YPt))&&WG(t,(yMn(),Bat),(lWn(),pot)),qy(TD(mMn(n,fgt)))&&dq(t,(yMn(),_at),(lWn(),got)),qy(TD(mMn(n,Hdt)))&&dq(t,(yMn(),_at),(lWn(),Wot)),KLn(n)&&(i=(GI(mMn(n,sgt))===GI(pCt)?BB(mMn(n,Rdt),292):BB(mMn(n,Kdt),292))==(Kan(),jft)?(lWn(),Rot):(lWn(),Yot),dq(t,(yMn(),Fat),i)),BB(mMn(n,zpt),377).g){case 1:dq(t,(yMn(),Fat),(lWn(),Vot));break;case 2:WG(dq(dq(t,(yMn(),_at),(lWn(),Vut)),Fat,Qut),Bat,Yut)}return GI(mMn(n,Ldt))!==GI((mon(),Nvt))&&dq(t,(yMn(),_at),(lWn(),Qot)),t}function NXn(n){NM(n,new MTn(vj(wj(pj(gj(new du,$4n),"ELK Rectangle Packing"),"Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."),new Za))),u2(n,$4n,VJn,1.3),u2(n,$4n,A4n,mpn(gEt)),u2(n,$4n,QJn,IEt),u2(n,$4n,vZn,15),u2(n,$4n,u3n,mpn(bEt)),u2(n,$4n,PZn,mpn(jEt)),u2(n,$4n,BZn,mpn(EEt)),u2(n,$4n,SZn,mpn(TEt)),u2(n,$4n,CZn,mpn(kEt)),u2(n,$4n,MZn,mpn(MEt)),u2(n,$4n,IZn,mpn(OEt)),u2(n,$4n,E4n,mpn(PEt)),u2(n,$4n,T4n,mpn(yEt)),u2(n,$4n,P4n,mpn(SEt)),u2(n,$4n,C4n,mpn(AEt)),u2(n,$4n,I4n,mpn(pEt)),u2(n,$4n,jZn,mpn(vEt)),u2(n,$4n,m3n,mpn(mEt)),u2(n,$4n,S4n,mpn(dEt)),u2(n,$4n,M4n,mpn(wEt)),u2(n,$4n,O4n,mpn(LEt))}function xXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d;if(null==e)return null;if(n.a!=t.Aj())throw Hp(new _y(d6n+t.ne()+g6n));if(cL(t,457)){if(!(d=SDn(BB(t,671),e)))throw Hp(new _y(p6n+e+"' is not a valid enumerator of '"+t.ne()+"'"));return d}switch(Cfn((IPn(),Z$t),t).cl()){case 2:e=FBn(e,!1);break;case 3:e=FBn(e,!0)}if(i=Cfn(Z$t,t).$k())return i.Aj().Nh().Kh(i,e);if(f=Cfn(Z$t,t).al()){for(d=new Np,s=0,h=(o=ysn(e)).length;s<h;++s)u=o[s],WB(d,f.Aj().Nh().Kh(f,u));return d}if(!(w=Cfn(Z$t,t).bl()).dc()){for(b=w.Kc();b.Ob();){l=BB(b.Pb(),148);try{if(null!=(d=l.Aj().Nh().Kh(l,e)))return d}catch(g){if(!cL(g=lun(g),60))throw Hp(g)}}throw Hp(new _y(p6n+e+"' does not match any member types of the union datatype '"+t.ne()+"'"))}if(BB(t,834).Fj(),!(r=xfn(t.Bj())))return null;if(r==Stt){c=0;try{c=l_n(e,_Vn,DWn)&QVn}catch(g){if(!cL(g=lun(g),127))throw Hp(g);c=V7(e)[0]}return fun(c)}if(r==mtt){for(a=0;a<IOt.length;++a)try{return BM(IOt[a],e)}catch(g){if(!cL(g=lun(g),32))throw Hp(g)}throw Hp(new _y(p6n+e+"' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof"))}throw Hp(new _y(p6n+e+"' is invalid. "))}function DXn(n,t){var e,i,r,c,a,u,o,s;if(e=0,a=0,c=t.length,u=null,s=new Ik,a<c&&(b1(a,t.length),43==t.charCodeAt(a))&&(++e,++a<c&&(b1(a,t.length),43==t.charCodeAt(a)||(b1(a,t.length),45==t.charCodeAt(a)))))throw Hp(new Mk(DQn+t+'"'));for(;a<c&&(b1(a,t.length),46!=t.charCodeAt(a))&&(b1(a,t.length),101!=t.charCodeAt(a))&&(b1(a,t.length),69!=t.charCodeAt(a));)++a;if(s.a+=""+fx(null==t?zWn:(kW(t),t),e,a),a<c&&(b1(a,t.length),46==t.charCodeAt(a))){for(e=++a;a<c&&(b1(a,t.length),101!=t.charCodeAt(a))&&(b1(a,t.length),69!=t.charCodeAt(a));)++a;n.e=a-e,s.a+=""+fx(null==t?zWn:(kW(t),t),e,a)}else n.e=0;if(a<c&&(b1(a,t.length),101==t.charCodeAt(a)||(b1(a,t.length),69==t.charCodeAt(a)))&&(e=++a,a<c&&(b1(a,t.length),43==t.charCodeAt(a))&&++a<c&&(b1(a,t.length),45!=t.charCodeAt(a))&&++e,u=t.substr(e,c-e),n.e=n.e-l_n(u,_Vn,DWn),n.e!=CJ(n.e)))throw Hp(new Mk("Scale out of range."));if((o=s.a).length<16){if(n.f=(null==Vtt&&(Vtt=new RegExp("^[+-]?\\d*$","i")),Vtt.test(o)?parseInt(o,10):NaN),isNaN(n.f))throw Hp(new Mk(DQn+t+'"'));n.a=aIn(n.f)}else fdn(n,new $A(o));for(n.d=s.a.length,r=0;r<s.a.length&&(45==(i=fV(s.a,r))||48==i);++r)--n.d;0==n.d&&(n.d=1)}function RXn(){RXn=O,JIn(fut=new pJ,(kUn(),wIt),vIt),JIn(fut,MIt,vIt),JIn(fut,MIt,kIt),JIn(fut,hIt,pIt),JIn(fut,hIt,vIt),JIn(fut,dIt,vIt),JIn(fut,dIt,mIt),JIn(fut,EIt,lIt),JIn(fut,EIt,vIt),JIn(fut,yIt,bIt),JIn(fut,yIt,vIt),JIn(fut,yIt,mIt),JIn(fut,yIt,lIt),JIn(fut,bIt,yIt),JIn(fut,bIt,kIt),JIn(fut,bIt,pIt),JIn(fut,bIt,vIt),JIn(fut,jIt,jIt),JIn(fut,jIt,mIt),JIn(fut,jIt,kIt),JIn(fut,gIt,gIt),JIn(fut,gIt,mIt),JIn(fut,gIt,pIt),JIn(fut,TIt,TIt),JIn(fut,TIt,lIt),JIn(fut,TIt,kIt),JIn(fut,fIt,fIt),JIn(fut,fIt,lIt),JIn(fut,fIt,pIt),JIn(fut,mIt,dIt),JIn(fut,mIt,yIt),JIn(fut,mIt,jIt),JIn(fut,mIt,gIt),JIn(fut,mIt,vIt),JIn(fut,mIt,mIt),JIn(fut,mIt,kIt),JIn(fut,mIt,pIt),JIn(fut,lIt,EIt),JIn(fut,lIt,yIt),JIn(fut,lIt,TIt),JIn(fut,lIt,fIt),JIn(fut,lIt,lIt),JIn(fut,lIt,kIt),JIn(fut,lIt,pIt),JIn(fut,lIt,vIt),JIn(fut,kIt,MIt),JIn(fut,kIt,bIt),JIn(fut,kIt,jIt),JIn(fut,kIt,TIt),JIn(fut,kIt,mIt),JIn(fut,kIt,lIt),JIn(fut,kIt,kIt),JIn(fut,kIt,vIt),JIn(fut,pIt,hIt),JIn(fut,pIt,bIt),JIn(fut,pIt,gIt),JIn(fut,pIt,fIt),JIn(fut,pIt,mIt),JIn(fut,pIt,lIt),JIn(fut,pIt,pIt),JIn(fut,pIt,vIt),JIn(fut,vIt,wIt),JIn(fut,vIt,MIt),JIn(fut,vIt,hIt),JIn(fut,vIt,dIt),JIn(fut,vIt,EIt),JIn(fut,vIt,yIt),JIn(fut,vIt,bIt),JIn(fut,vIt,mIt),JIn(fut,vIt,lIt),JIn(fut,vIt,kIt),JIn(fut,vIt,pIt),JIn(fut,vIt,vIt)}function KXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(n.d=new xC(RQn,RQn),n.c=new xC(KQn,KQn),l=t.Kc();l.Ob();)for(m=new Wb(BB(l.Pb(),37).a);m.a<m.c.c.length;)v=BB(n0(m),10),n.d.a=e.Math.min(n.d.a,v.n.a-v.d.b),n.d.b=e.Math.min(n.d.b,v.n.b-v.d.d),n.c.a=e.Math.max(n.c.a,v.n.a+v.o.a+v.d.c),n.c.b=e.Math.max(n.c.b,v.n.b+v.o.b+v.d.a);for(o=new Yv,f=t.Kc();f.Ob();)r=uXn(n,BB(f.Pb(),37)),WB(o.a,r),r.a=r.a|!BB(mMn(r.c,(hWn(),Xft)),21).dc();for(n.b=(Shn(),(T=new kt).f=new vin(i),T.b=oGn(T.f,o),T),jGn((w=n.b,new Xm,w)),n.e=new Gj,n.a=n.b.f.e,u=new Wb(o.a);u.a<u.c.c.length;)for(c=BB(n0(u),841),y=AJ(n.b,c),nKn(c.c,y.a,y.b),g=new Wb(c.c.a);g.a<g.c.c.length;)(d=BB(n0(g),10)).k==(uSn(),Mut)&&(p=lLn(n,d.n,BB(mMn(d,(hWn(),Qft)),61)),UR(kO(d.n),p));for(a=new Wb(o.a);a.a<a.c.c.length;)for(h=new Wb(wln(c=BB(n0(a),841)));h.a<h.c.c.length;)for(Kx(E=new Kj((s=BB(n0(h),17)).a),0,g1(s.c)),DH(E,g1(s.d)),b=null,j=spn(E,0);j.b!=j.d.c;)k=BB(b3(j),8),b?(uen(b.a,k.a)?(n.e.a=e.Math.min(n.e.a,b.a),n.a.a=e.Math.max(n.a.a,b.a)):uen(b.b,k.b)&&(n.e.b=e.Math.min(n.e.b,b.b),n.a.b=e.Math.max(n.a.b,b.b)),b=k):b=k;qx(n.e),UR(n.a,n.e)}function _Xn(n){V$n(n.b,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"ConsistentTransient"])),V$n(n.a,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"WellFormedSourceURI"])),V$n(n.o,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"])),V$n(n.p,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"WellFormedInstanceTypeName UniqueTypeParameterNames"])),V$n(n.v,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"UniqueEnumeratorNames UniqueEnumeratorLiterals"])),V$n(n.R,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"WellFormedName"])),V$n(n.T,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"])),V$n(n.U,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"])),V$n(n.W,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"])),V$n(n.bb,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"ValidDefaultValueLiteral"])),V$n(n.eb,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"ValidLowerBound ValidUpperBound ConsistentBounds ValidType"])),V$n(n.H,V9n,Pun(Gk(Qtt,1),sVn,2,6,[Y9n,"ConsistentType ConsistentBounds ConsistentArguments"]))}function FXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;if(!t.dc()){if(r=new km,f=(a=e||BB(t.Xb(0),17)).c,gxn(),(s=f.i.k)!=(uSn(),Cut)&&s!=Iut&&s!=Mut&&s!=Tut)throw Hp(new _y("The target node of the edge must be a normal node or a northSouthPort."));for(fO(r,Aon(Pun(Gk(PMt,1),sVn,8,0,[f.i.n,f.n,f.a]))),(kUn(),yIt).Hc(f.j)&&(b=Gy(MD(mMn(f,(hWn(),Llt)))),r5(r,new xC(Aon(Pun(Gk(PMt,1),sVn,8,0,[f.i.n,f.n,f.a])).a,b),r.c.b,r.c)),o=null,i=!1,u=t.Kc();u.Ob();)0!=(c=BB(u.Pb(),17).a).b&&(i?(r5(r,kL(UR(o,(Px(0!=c.b),BB(c.a.a.c,8))),.5),r.c.b,r.c),i=!1):i=!0,o=B$((Px(0!=c.b),BB(c.c.b.c,8))),Frn(r,c),yQ(c));l=a.d,yIt.Hc(l.j)&&(b=Gy(MD(mMn(l,(hWn(),Llt)))),r5(r,new xC(Aon(Pun(Gk(PMt,1),sVn,8,0,[l.i.n,l.n,l.a])).a,b),r.c.b,r.c)),fO(r,Aon(Pun(Gk(PMt,1),sVn,8,0,[l.i.n,l.n,l.a]))),n.d==(Usn(),emt)&&(Px(0!=r.b),w=BB(r.a.a.c,8),d=BB(Dpn(r,1),8),(g=new XZ(hsn(f.j))).a*=5,g.b*=5,p=XR(new xC(d.a,d.b),w),UR(v=new xC(iZ(g.a,p.a),iZ(g.b,p.b)),w),nX(spn(r,1),v),Px(0!=r.b),m=BB(r.c.b.c,8),y=BB(Dpn(r,r.b-2),8),(g=new XZ(hsn(l.j))).a*=5,g.b*=5,p=XR(new xC(y.a,y.b),m),UR(k=new xC(iZ(g.a,p.a),iZ(g.b,p.b)),m),Kx(r,r.b-1,k)),h=new oBn(r),Frn(a.a,Fvn(h))}}function BXn(n,t,i,r){var c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A,$,L,N,x;if(y=(v=BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)).Dg(),k=v.Eg(),m=v.Cg()/2,w=v.Bg()/2,cL(v,186)&&(y+=WJ(p=BB(v,118)).i,y+=WJ(p).i),y+=m,k+=w,C=(S=BB(Wtn((!n.b&&(n.b=new hK(KOt,n,4,7)),n.b),0),82)).Dg(),I=S.Eg(),P=S.Cg()/2,j=S.Bg()/2,cL(S,186)&&(C+=WJ(M=BB(S,118)).i,C+=WJ(M).i),C+=P,I+=j,0==(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i)tE(),o=new co,f9((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),o);else if((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i>1)for(b=new cx((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a));b.e!=b.i.gc();)Qjn(b);for(d=C,C>y+m?d=y+m:C<y-m&&(d=y-m),g=I,I>k+w?g=k+w:I<k-w&&(g=k-w),d>y-m&&d<y+m&&g>k-w&&g<k+w&&(d=y+m),Ien(u=BB(Wtn((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),0),202),d),Aen(u,g),E=y,y>C+P?E=C+P:y<C-P&&(E=C-P),T=k,k>I+j?T=I+j:k<I-j&&(T=I-j),E>C-P&&E<C+P&&T>I-j&&T<I+j&&(T=I+j),Ten(u,E),Oen(u,T),sqn((!u.a&&(u.a=new $L(xOt,u,5)),u.a)),a=pvn(t,5),v==S&&++a,A=E-d,N=T-g,h=.20000000298023224*e.Math.sqrt(A*A+N*N),$=A/(a+1),x=N/(a+1),O=d,L=g,s=0;s<a;s++)L+=x,(f=(O+=$)+H$n(t,24)*uYn*h-h/2)<0?f=1:f>i&&(f=i-1),(l=L+H$n(t,24)*uYn*h-h/2)<0?l=1:l>r&&(l=r-1),tE(),jen(c=new ro,f),Een(c,l),f9((!u.a&&(u.a=new $L(xOt,u,5)),u.a),c)}function HXn(){HXn=O,sWn(),ppt=jPt,vpt=EPt,mpt=TPt,ypt=MPt,jpt=SPt,Ept=PPt,Spt=IPt,Cpt=APt,Ipt=$Pt,Ppt=OPt,Opt=LPt,$pt=NPt,Npt=RPt,Mpt=CPt,fWn(),gpt=_wt,kpt=Fwt,Tpt=Bwt,Apt=Hwt,hpt=new XA(pPt,iln(0)),fpt=Dwt,lpt=Rwt,bpt=Kwt,zpt=ldt,Rpt=zwt,Kpt=Wwt,Bpt=edt,_pt=Ywt,Fpt=Zwt,Xpt=pdt,Upt=wdt,qpt=odt,Hpt=adt,Gpt=hdt,Rgt=Pwt,Kgt=Cwt,rgt=Kbt,cgt=Bbt,Ugt=new WA(12),zgt=new XA(XSt,Ugt),Mbn(),Zdt=new XA(vSt,ngt=QPt),tpt=new XA(aPt,0),wpt=new XA(vPt,iln(1)),Edt=new XA(cSt,dZn),Ggt=zSt,ept=uPt,upt=wPt,zdt=lSt,kdt=iSt,sgt=ESt,dpt=new XA(kPt,(hN(),!0)),wgt=SSt,dgt=PSt,Fgt=KSt,qgt=qSt,Bgt=FSt,Ffn(),Udt=new XA(bSt,Wdt=BPt),$gt=DSt,Agt=NSt,cpt=fPt,rpt=hPt,apt=bPt,cpn(),new XA(ZSt,Vgt=qCt),Ygt=ePt,Jgt=iPt,Zgt=rPt,Qgt=tPt,Dpt=Gwt,Pgt=lwt,Sgt=hwt,xpt=qwt,kgt=ewt,Gdt=Tbt,qdt=jbt,xdt=ubt,Ddt=obt,Kdt=bbt,Rdt=sbt,Hdt=ybt,Igt=wwt,Ogt=dwt,pgt=Vbt,_gt=$wt,Ngt=mwt,ugt=Gbt,Dgt=Mwt,egt=Nbt,igt=Dbt,Ndt=hSt,Lgt=gwt,Pdt=Qlt,Sdt=Wlt,Mdt=Xlt,fgt=Xbt,hgt=Ubt,lgt=Wbt,Hgt=BSt,vgt=OSt,agt=ySt,Ydt=gSt,Qdt=dSt,_dt=gbt,ipt=sPt,Tdt=sSt,bgt=MSt,npt=cPt,Xgt=VSt,Wgt=YSt,Egt=cwt,Tgt=uwt,spt=gPt,jdt=Ult,Mgt=swt,Jdt=Obt,Vdt=Cbt,Cgt=$St,mgt=Zbt,xgt=jwt,Lpt=xPt,Xdt=Sbt,opt=Nwt,tgt=$bt,ygt=twt,Fdt=vbt,ggt=ISt,jgt=rwt,Bdt=mbt,Ldt=cbt,Adt=ebt,Idt=nbt,Odt=tbt,$dt=rbt,Cdt=Jlt,ogt=zbt}function qXn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C;if(uHn(),T=n.e,w=n.d,r=n.a,0==T)switch(t){case 0:return"0";case 1:return WQn;case 2:return"0.00";case 3:return"0.000";case 4:return"0.0000";case 5:return"0.00000";case 6:return"0.000000";default:return(j=new Ck).a+=t<0?"0E+":"0E",j.a+=-t,j.a}if(y=x8(ONt,WVn,25,1+(m=10*w+1+7),15,1),e=m,1==w)if((u=r[0])<0){C=e0(u,UQn);do{d=C,C=Ojn(C,10),y[--e]=48+dG(ibn(d,cbn(C,10)))&QVn}while(0!=Vhn(C,0))}else{C=u;do{d=C,C=C/10|0,y[--e]=d-10*C+48&QVn}while(0!=C)}else{aHn(r,0,S=x8(ANt,hQn,25,w,15,1),0,P=w);n:for(;;){for(E=0,s=P-1;s>=0;s--)p=fTn(rbn(yz(E,32),e0(S[s],UQn))),S[s]=dG(p),E=dG(kz(p,32));v=dG(E),g=e;do{y[--e]=48+v%10&QVn}while(0!=(v=v/10|0)&&0!=e);for(i=9-g+e,o=0;o<i&&e>0;o++)y[--e]=48;for(f=P-1;0==S[f];f--)if(0==f)break n;P=f+1}for(;48==y[e];)++e}if(b=T<0,a=m-e-t-1,0==t)return b&&(y[--e]=45),Bdn(y,e,m-e);if(t>0&&a>=-6){if(a>=0){for(h=e+a,l=m-1;l>=h;l--)y[l+1]=y[l];return y[++h]=46,b&&(y[--e]=45),Bdn(y,e,m-e+1)}for(f=2;f<1-a;f++)y[--e]=48;return y[--e]=46,y[--e]=48,b&&(y[--e]=45),Bdn(y,e,m-e)}return M=e+1,c=m,k=new Ik,b&&(k.a+="-"),c-M>=1?(xX(k,y[e]),k.a+=".",k.a+=Bdn(y,e+1,m-e-1)):k.a+=Bdn(y,e,m-e),k.a+="E",a>0&&(k.a+="+"),k.a+=""+a,k.a}function GXn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;switch(n.c=t,n.g=new xp,GM(),twn(new Pw(new Dy(n.c))),v=SD(ZAn(n.c,(MMn(),dTt))),u=BB(ZAn(n.c,pTt),316),y=BB(ZAn(n.c,vTt),429),c=BB(ZAn(n.c,hTt),482),m=BB(ZAn(n.c,gTt),430),n.j=Gy(MD(ZAn(n.c,mTt))),a=n.a,u.g){case 0:a=n.a;break;case 1:a=n.b;break;case 2:a=n.i;break;case 3:a=n.e;break;case 4:a=n.f;break;default:throw Hp(new _y(N4n+(null!=u.f?u.f:""+u.g)))}if(n.d=new DJ(a,y,c),hon(n.d,(Xcn(),Qrt),TD(ZAn(n.c,lTt))),n.d.c=qy(TD(ZAn(n.c,fTt))),0==YQ(n.c).i)return n.d;for(h=new AL(YQ(n.c));h.e!=h.i.gc();){for(l=(s=BB(kpn(h),33)).g/2,f=s.f/2,k=new xC(s.i+l,s.j+f);hU(n.g,k);)_x(k,(e.Math.random()-.5)*lZn,(e.Math.random()-.5)*lZn);w=BB(ZAn(s,(sWn(),$St)),142),d=new AZ(k,new UV(k.a-l-n.j/2-w.b,k.b-f-n.j/2-w.d,s.g+n.j+(w.b+w.c),s.f+n.j+(w.d+w.a))),WB(n.d.i,d),VW(n.g,k,new rI(d,s))}switch(m.g){case 0:if(null==v)n.d.d=BB(xq(n.d.i,0),65);else for(p=new Wb(n.d.i);p.a<p.c.c.length;)d=BB(n0(p),65),null!=(b=BB(BB(RX(n.g,d.a),46).b,33).zg())&&mK(b,v)&&(n.d.d=d);break;case 1:for((i=new xC(n.c.g,n.c.f)).a*=.5,i.b*=.5,_x(i,n.c.i,n.c.j),r=RQn,g=new Wb(n.d.i);g.a<g.c.c.length;)(o=W8((d=BB(n0(g),65)).a,i))<r&&(r=o,n.d.d=d);break;default:throw Hp(new _y(N4n+(null!=m.f?m.f:""+m.g)))}return n.d}function zXn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E;for(j=BB(Wtn((!n.a&&(n.a=new eU(FOt,n,6,6)),n.a),0),202),f=new km,k=new xp,E=tFn(j),jCn(k.f,j,E),b=new xp,r=new YT,d=NU(Wen(Pun(Gk(xnt,1),HWn,20,0,[(!t.d&&(t.d=new hK(_Ot,t,8,5)),t.d),(!t.e&&(t.e=new hK(_Ot,t,7,4)),t.e)])));dAn(d);){if(w=BB(U5(d),79),1!=(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i)throw Hp(new _y(B5n+(!n.a&&(n.a=new eU(FOt,n,6,6)),n.a).i));w!=n&&(r5(r,p=BB(Wtn((!w.a&&(w.a=new eU(FOt,w,6,6)),w.a),0),202),r.c.b,r.c),(g=BB(qI(AY(k.f,p)),12))||(g=tFn(p),jCn(k.f,p,g)),l=i?XR(new wA(BB(xq(E,E.c.length-1),8)),BB(xq(g,g.c.length-1),8)):XR(new wA((l1(0,E.c.length),BB(E.c[0],8))),(l1(0,g.c.length),BB(g.c[0],8))),jCn(b.f,p,l))}if(0!=r.b)for(v=BB(xq(E,i?E.c.length-1:0),8),h=1;h<E.c.length;h++){for(m=BB(xq(E,i?E.c.length-1-h:h),8),c=spn(r,0);c.b!=c.d.c;)p=BB(b3(c),202),(g=BB(qI(AY(k.f,p)),12)).c.length<=h?mtn(c):(y=UR(new wA(BB(xq(g,i?g.c.length-1-h:h),8)),BB(qI(AY(b.f,p)),8)),m.a==y.a&&m.b==y.b||(a=m.a-v.a,o=m.b-v.b,(u=y.a-v.a)*o==(s=y.b-v.b)*a&&(0==a||isNaN(a)?a:a<0?-1:1)==(0==u||isNaN(u)?u:u<0?-1:1)&&(0==o||isNaN(o)?o:o<0?-1:1)==(0==s||isNaN(s)?s:s<0?-1:1)?(e.Math.abs(a)<e.Math.abs(u)||e.Math.abs(o)<e.Math.abs(s))&&r5(f,m,f.c.b,f.c):h>1&&r5(f,v,f.c.b,f.c),mtn(c)));v=m}return f}function UXn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A;for(OTn(e,"Greedy cycle removal",1),A=(m=t.a).c.length,n.a=x8(ANt,hQn,25,A,15,1),n.c=x8(ANt,hQn,25,A,15,1),n.b=x8(ANt,hQn,25,A,15,1),s=0,p=new Wb(m);p.a<p.c.c.length;){for((d=BB(n0(p),10)).p=s,T=new Wb(d.j);T.a<T.c.c.length;){for(u=new Wb((k=BB(n0(T),11)).e);u.a<u.c.c.length;)(i=BB(n0(u),17)).c.i!=d&&(S=BB(mMn(i,(HXn(),fpt)),19).a,n.a[s]+=S>0?S+1:1);for(a=new Wb(k.g);a.a<a.c.c.length;)(i=BB(n0(a),17)).d.i!=d&&(S=BB(mMn(i,(HXn(),fpt)),19).a,n.c[s]+=S>0?S+1:1)}0==n.c[s]?DH(n.e,d):0==n.a[s]&&DH(n.f,d),++s}for(w=-1,b=1,f=new Np,n.d=BB(mMn(t,(hWn(),Slt)),230);A>0;){for(;0!=n.e.b;)C=BB(dH(n.e),10),n.b[C.p]=w--,QKn(n,C),--A;for(;0!=n.f.b;)I=BB(dH(n.f),10),n.b[I.p]=b++,QKn(n,I),--A;if(A>0){for(l=_Vn,v=new Wb(m);v.a<v.c.c.length;)d=BB(n0(v),10),0==n.b[d.p]&&(y=n.c[d.p]-n.a[d.p])>=l&&(y>l&&(f.c=x8(Ant,HWn,1,0,5,1),l=y),f.c[f.c.length]=d);h=n.Zf(f),n.b[h.p]=b++,QKn(n,h),--A}}for(P=m.c.length+1,s=0;s<m.c.length;s++)n.b[s]<0&&(n.b[s]+=P);for(g=new Wb(m);g.a<g.c.c.length;)for(E=0,M=(j=I2((d=BB(n0(g),10)).j)).length;E<M;++E)for(c=0,o=(r=Z0((k=j[E]).g)).length;c<o;++c)O=(i=r[c]).d.i.p,n.b[d.p]>n.b[O]&&(tBn(i,!0),hon(t,qft,(hN(),!0)));n.a=null,n.c=null,n.b=null,yQ(n.f),yQ(n.e),HSn(e)}function XXn(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;for(i=new Np,u=new Np,g=t/2,b=n.gc(),r=BB(n.Xb(0),8),p=BB(n.Xb(1),8),WB(i,(l1(0,(w=QAn(r.a,r.b,p.a,p.b,g)).c.length),BB(w.c[0],8))),WB(u,(l1(1,w.c.length),BB(w.c[1],8))),s=2;s<b;s++)d=r,r=p,p=BB(n.Xb(s),8),WB(i,(l1(1,(w=QAn(r.a,r.b,d.a,d.b,g)).c.length),BB(w.c[1],8))),WB(u,(l1(0,w.c.length),BB(w.c[0],8))),WB(i,(l1(0,(w=QAn(r.a,r.b,p.a,p.b,g)).c.length),BB(w.c[0],8))),WB(u,(l1(1,w.c.length),BB(w.c[1],8)));for(WB(i,(l1(1,(w=QAn(p.a,p.b,r.a,r.b,g)).c.length),BB(w.c[1],8))),WB(u,(l1(0,w.c.length),BB(w.c[0],8))),e=new km,a=new Np,DH(e,(l1(0,i.c.length),BB(i.c[0],8))),h=1;h<i.c.length-2;h+=2)l1(h,i.c.length),c=BB(i.c[h],8),l=qPn((l1(h-1,i.c.length),BB(i.c[h-1],8)),c,(l1(h+1,i.c.length),BB(i.c[h+1],8)),(l1(h+2,i.c.length),BB(i.c[h+2],8))),isFinite(l.a)&&isFinite(l.b)?r5(e,l,e.c.b,e.c):r5(e,c,e.c.b,e.c);for(DH(e,BB(xq(i,i.c.length-1),8)),WB(a,(l1(0,u.c.length),BB(u.c[0],8))),f=1;f<u.c.length-2;f+=2)l1(f,u.c.length),c=BB(u.c[f],8),l=qPn((l1(f-1,u.c.length),BB(u.c[f-1],8)),c,(l1(f+1,u.c.length),BB(u.c[f+1],8)),(l1(f+2,u.c.length),BB(u.c[f+2],8))),isFinite(l.a)&&isFinite(l.b)?a.c[a.c.length]=l:a.c[a.c.length]=c;for(WB(a,BB(xq(u,u.c.length-1),8)),o=a.c.length-1;o>=0;o--)DH(e,(l1(o,a.c.length),BB(a.c[o],8)));return e}function WXn(n){var t,e,i,r,c,a,u,o,s,h,f,l,b;if(a=!0,f=null,i=null,r=null,t=!1,b=kAt,s=null,c=null,(o=Vgn(n,u=0,AAt,$At))<n.length&&(b1(o,n.length),58==n.charCodeAt(o))&&(f=n.substr(u,o-u),u=o+1),e=null!=f&&xT(jAt,f.toLowerCase())){if(-1==(o=n.lastIndexOf("!/")))throw Hp(new _y("no archive separator"));a=!0,i=fx(n,u,++o),u=o}else u>=0&&mK(n.substr(u,"//".length),"//")?(o=Vgn(n,u+=2,LAt,NAt),i=n.substr(u,o-u),u=o):null==f||u!=n.length&&(b1(u,n.length),47==n.charCodeAt(u))||(a=!1,-1==(o=yN(n,YTn(35),u))&&(o=n.length),i=n.substr(u,o-u),u=o);if(!e&&u<n.length&&(b1(u,n.length),47==n.charCodeAt(u))&&(o=Vgn(n,u+1,LAt,NAt),(h=n.substr(u+1,o-(u+1))).length>0&&58==fV(h,h.length-1)&&(r=h,u=o)),u<n.length&&(b1(u,n.length),47==n.charCodeAt(u))&&(++u,t=!0),u<n.length&&(b1(u,n.length),63!=n.charCodeAt(u))&&(b1(u,n.length),35!=n.charCodeAt(u))){for(l=new Np;u<n.length&&(b1(u,n.length),63!=n.charCodeAt(u))&&(b1(u,n.length),35!=n.charCodeAt(u));)o=Vgn(n,u,LAt,NAt),WB(l,n.substr(u,o-u)),(u=o)<n.length&&(b1(u,n.length),47==n.charCodeAt(u))&&(Qhn(n,++u)||(l.c[l.c.length]=""));Qgn(l,b=x8(Qtt,sVn,2,l.c.length,6,1))}return u<n.length&&(b1(u,n.length),63==n.charCodeAt(u))&&(-1==(o=lx(n,35,++u))&&(o=n.length),s=n.substr(u,o-u),u=o),u<n.length&&(c=nO(n,++u)),wGn(a,f,i,r,b,s),new rRn(a,f,i,r,t,b,s,c)}function VXn(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A,$;for(O=new Np,w=new Wb(t.b);w.a<w.c.c.length;)for(k=new Wb(BB(n0(w),29).a);k.a<k.c.c.length;){for((y=BB(n0(k),10)).p=-1,l=_Vn,T=_Vn,S=new Wb(y.j);S.a<S.c.c.length;){for(c=new Wb((M=BB(n0(S),11)).e);c.a<c.c.c.length;)i=BB(n0(c),17),P=BB(mMn(i,(HXn(),bpt)),19).a,l=e.Math.max(l,P);for(r=new Wb(M.g);r.a<r.c.c.length;)i=BB(n0(r),17),P=BB(mMn(i,(HXn(),bpt)),19).a,T=e.Math.max(T,P)}hon(y,Xmt,iln(l)),hon(y,Wmt,iln(T))}for(p=0,b=new Wb(t.b);b.a<b.c.c.length;)for(k=new Wb(BB(n0(b),29).a);k.a<k.c.c.length;)(y=BB(n0(k),10)).p<0&&((I=new rm).b=p++,jRn(n,y,I),O.c[O.c.length]=I);for(E=sx(O.c.length),f=sx(O.c.length),u=0;u<O.c.length;u++)WB(E,new Np),WB(f,iln(0));for(vzn(t,O,E,f),A=BB(Qgn(O,x8(Ymt,O3n,257,O.c.length,0,1)),840),j=BB(Qgn(E,x8(Rnt,nZn,15,E.c.length,0,1)),192),h=x8(ANt,hQn,25,f.c.length,15,1),o=0;o<h.length;o++)h[o]=(l1(o,f.c.length),BB(f.c[o],19)).a;for(v=0,m=new Np,s=0;s<A.length;s++)0==h[s]&&WB(m,A[s]);for(g=x8(ANt,hQn,25,A.length,15,1);0!=m.c.length;)for(g[(I=BB(s6(m,0),257)).b]=v++;!j[I.b].dc();)--h[($=BB(j[I.b].$c(0),257)).b],0==h[$.b]&&(m.c[m.c.length]=$);for(n.a=x8(Ymt,O3n,257,A.length,0,1),a=0;a<A.length;a++)for(d=A[a],C=g[a],n.a[C]=d,d.b=C,k=new Wb(d.e);k.a<k.c.c.length;)(y=BB(n0(k),10)).p=C;return n.a}function QXn(n){var t,e,i;if(n.d>=n.j)return n.a=-1,void(n.c=1);if(t=fV(n.i,n.d++),n.a=t,1!=n.b){switch(t){case 124:i=2;break;case 42:i=3;break;case 43:i=4;break;case 63:i=5;break;case 41:i=7;break;case 46:i=8;break;case 91:i=9;break;case 94:i=11;break;case 36:i=12;break;case 40:if(i=6,n.d>=n.j)break;if(63!=fV(n.i,n.d))break;if(++n.d>=n.j)throw Hp(new ak(kWn((u$(),p8n))));switch(t=fV(n.i,n.d++)){case 58:i=13;break;case 61:i=14;break;case 33:i=15;break;case 91:i=19;break;case 62:i=18;break;case 60:if(n.d>=n.j)throw Hp(new ak(kWn((u$(),p8n))));if(61==(t=fV(n.i,n.d++)))i=16;else{if(33!=t)throw Hp(new ak(kWn((u$(),v8n))));i=17}break;case 35:for(;n.d<n.j&&41!=(t=fV(n.i,n.d++)););if(41!=t)throw Hp(new ak(kWn((u$(),m8n))));i=21;break;default:if(45==t||97<=t&&t<=122||65<=t&&t<=90){--n.d,i=22;break}if(40==t){i=23;break}throw Hp(new ak(kWn((u$(),p8n))))}break;case 92:if(i=10,n.d>=n.j)throw Hp(new ak(kWn((u$(),g8n))));n.a=fV(n.i,n.d++);break;default:i=0}n.c=i}else{switch(t){case 92:if(i=10,n.d>=n.j)throw Hp(new ak(kWn((u$(),g8n))));n.a=fV(n.i,n.d++);break;case 45:512==(512&n.e)&&n.d<n.j&&91==fV(n.i,n.d)?(++n.d,i=24):i=0;break;case 91:if(512!=(512&n.e)&&n.d<n.j&&58==fV(n.i,n.d)){++n.d,i=20;break}default:(64512&t)==HQn&&n.d<n.j&&56320==(64512&(e=fV(n.i,n.d)))&&(n.a=BQn+(t-HQn<<10)+e-56320,++n.d),i=0}n.c=i}}function YXn(n){var t,e,i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P;if((j=BB(mMn(n,(HXn(),ept)),98))!=(QEn(),QCt)&&j!=YCt){for(s=new J6((lin((b=(w=n.b).c.length)+2,NVn),ttn(rbn(rbn(5,b+2),(b+2)/10|0)))),d=new J6((lin(b+2,NVn),ttn(rbn(rbn(5,b+2),(b+2)/10|0)))),WB(s,new xp),WB(s,new xp),WB(d,new Np),WB(d,new Np),k=new Np,t=0;t<b;t++)for(l1(t,w.c.length),e=BB(w.c[t],29),l1(t,s.c.length),E=BB(s.c[t],83),g=new xp,s.c[s.c.length]=g,l1(t,d.c.length),M=BB(d.c[t],15),v=new Np,d.c[d.c.length]=v,r=new Wb(e.a);r.a<r.c.c.length;)if(cln(i=BB(n0(r),10)))k.c[k.c.length]=i;else{for(o=new oz(ZL(fbn(i).a.Kc(),new h));dAn(o);)cln(S=(a=BB(U5(o),17)).c.i)&&((T=BB(E.xc(mMn(S,(hWn(),dlt))),10))||(T=oIn(n,S),E.zc(mMn(S,dlt),T),M.Fc(T)),SZ(a,BB(xq(T.j,1),11)));for(u=new oz(ZL(lbn(i).a.Kc(),new h));dAn(u);)cln(P=(a=BB(U5(u),17)).d.i)&&((p=BB(RX(g,mMn(P,(hWn(),dlt))),10))||(p=oIn(n,P),VW(g,mMn(P,dlt),p),v.c[v.c.length]=p),MZ(a,BB(xq(p.j,0),11)))}for(f=0;f<d.c.length;f++)if(l1(f,d.c.length),!(m=BB(d.c[f],15)).dc())for(l=null,0==f?(l=new HX(n),LZ(0,w.c.length),MS(w.c,0,l)):f==s.c.length-1?(l=new HX(n),w.c[w.c.length]=l):(l1(f-1,w.c.length),l=BB(w.c[f-1],29)),c=m.Kc();c.Ob();)PZ(BB(c.Pb(),10),l);for(y=new Wb(k);y.a<y.c.c.length;)PZ(BB(n0(y),10),null);hon(n,(hWn(),Wft),k)}}function JXn(n,t,e){var i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j;if(OTn(e,"Coffman-Graham Layering",1),0!=t.a.c.length){for(j=BB(mMn(t,(HXn(),mgt)),19).a,o=0,a=0,b=new Wb(t.a);b.a<b.c.c.length;)for((l=BB(n0(b),10)).p=o++,c=new oz(ZL(lbn(l).a.Kc(),new h));dAn(c);)(r=BB(U5(c),17)).p=a++;for(n.d=x8($Nt,ZYn,25,o,16,1),n.a=x8($Nt,ZYn,25,a,16,1),n.b=x8(ANt,hQn,25,o,15,1),n.e=x8(ANt,hQn,25,o,15,1),n.f=x8(ANt,hQn,25,o,15,1),win(n.c),rEn(n,t),d=new Xz(new Dd(n)),k=new Wb(t.a);k.a<k.c.c.length;){for(c=new oz(ZL(fbn(m=BB(n0(k),10)).a.Kc(),new h));dAn(c);)r=BB(U5(c),17),n.a[r.p]||++n.b[m.p];0==n.b[m.p]&&F8(eMn(d,m))}for(u=0;0!=d.b.c.length;)for(m=BB(mnn(d),10),n.f[m.p]=u++,c=new oz(ZL(lbn(m).a.Kc(),new h));dAn(c);)r=BB(U5(c),17),n.a[r.p]||(p=r.d.i,--n.b[p.p],JIn(n.c,p,iln(n.f[m.p])),0==n.b[p.p]&&F8(eMn(d,p)));for(w=new Xz(new Rd(n)),y=new Wb(t.a);y.a<y.c.c.length;){for(c=new oz(ZL(lbn(m=BB(n0(y),10)).a.Kc(),new h));dAn(c);)r=BB(U5(c),17),n.a[r.p]||++n.e[m.p];0==n.e[m.p]&&F8(eMn(w,m))}for(i=r1(t,f=new Np);0!=w.b.c.length;)for(v=BB(mnn(w),10),(i.a.c.length>=j||!Ndn(v,i))&&(i=r1(t,f)),PZ(v,i),c=new oz(ZL(fbn(v).a.Kc(),new h));dAn(c);)r=BB(U5(c),17),n.a[r.p]||(g=r.c.i,--n.e[g.p],0==n.e[g.p]&&F8(eMn(w,g)));for(s=f.c.length-1;s>=0;--s)WB(t.b,(l1(s,f.c.length),BB(f.c[s],29)));t.a.c=x8(Ant,HWn,1,0,5,1),HSn(e)}else HSn(e)}function ZXn(n){var t,e,i,r,c,a,u,o;for(n.b=1,QXn(n),t=null,0==n.c&&94==n.a?(QXn(n),wWn(),wWn(),Yxn(t=new M0(4),0,unt),a=new M0(4)):(wWn(),wWn(),a=new M0(4)),r=!0;1!=(o=n.c);){if(0==o&&93==n.a&&!r){t&&(WGn(t,a),a=t);break}if(e=n.a,i=!1,10==o)switch(e){case 100:case 68:case 119:case 87:case 115:case 83:sHn(a,d_n(e)),i=!0;break;case 105:case 73:case 99:case 67:sHn(a,d_n(e)),(e=-1)<0&&(i=!0);break;case 112:case 80:if(!(u=DIn(n,e)))throw Hp(new ak(kWn((u$(),O8n))));sHn(a,u),i=!0;break;default:e=qDn(n)}else if(24==o&&!r){if(t&&(WGn(t,a),a=t),WGn(a,ZXn(n)),0!=n.c||93!=n.a)throw Hp(new ak(kWn((u$(),N8n))));break}if(QXn(n),!i){if(0==o){if(91==e)throw Hp(new ak(kWn((u$(),x8n))));if(93==e)throw Hp(new ak(kWn((u$(),D8n))));if(45==e&&!r&&93!=n.a)throw Hp(new ak(kWn((u$(),R8n))))}if(0!=n.c||45!=n.a||45==e&&r)Yxn(a,e,e);else{if(QXn(n),1==(o=n.c))throw Hp(new ak(kWn((u$(),$8n))));if(0==o&&93==n.a)Yxn(a,e,e),Yxn(a,45,45);else{if(0==o&&93==n.a||24==o)throw Hp(new ak(kWn((u$(),R8n))));if(c=n.a,0==o){if(91==c)throw Hp(new ak(kWn((u$(),x8n))));if(93==c)throw Hp(new ak(kWn((u$(),D8n))));if(45==c)throw Hp(new ak(kWn((u$(),R8n))))}else 10==o&&(c=qDn(n));if(QXn(n),e>c)throw Hp(new ak(kWn((u$(),F8n))));Yxn(a,e,c)}}}r=!1}if(1==n.c)throw Hp(new ak(kWn((u$(),$8n))));return T$n(a),qHn(a),n.b=0,QXn(n),a}function nWn(n){V$n(n.c,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#decimal"])),V$n(n.d,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#integer"])),V$n(n.e,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#boolean"])),V$n(n.f,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EBoolean",t8n,"EBoolean:Object"])),V$n(n.i,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#byte"])),V$n(n.g,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#hexBinary"])),V$n(n.j,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EByte",t8n,"EByte:Object"])),V$n(n.n,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EChar",t8n,"EChar:Object"])),V$n(n.t,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#double"])),V$n(n.u,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EDouble",t8n,"EDouble:Object"])),V$n(n.F,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#float"])),V$n(n.G,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EFloat",t8n,"EFloat:Object"])),V$n(n.I,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#int"])),V$n(n.J,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EInt",t8n,"EInt:Object"])),V$n(n.N,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#long"])),V$n(n.O,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"ELong",t8n,"ELong:Object"])),V$n(n.Z,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#short"])),V$n(n.$,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"EShort",t8n,"EShort:Object"])),V$n(n._,_9n,Pun(Gk(Qtt,1),sVn,2,6,[J9n,"http://www.w3.org/2001/XMLSchema#string"]))}function tWn(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C;if(1==n.c.length)return l1(0,n.c.length),BB(n.c[0],135);if(n.c.length<=0)return new P6;for(s=new Wb(n);s.a<s.c.c.length;){for(u=BB(n0(s),135),m=0,d=DWn,g=DWn,b=_Vn,w=_Vn,v=spn(u.b,0);v.b!=v.d.c;)p=BB(b3(v),86),m+=BB(mMn(p,(CAn(),$kt)),19).a,d=e.Math.min(d,p.e.a),g=e.Math.min(g,p.e.b),b=e.Math.max(b,p.e.a+p.f.a),w=e.Math.max(w,p.e.b+p.f.b);hon(u,(CAn(),$kt),iln(m)),hon(u,(qqn(),nkt),new xC(d,g)),hon(u,Zyt,new xC(b,w))}for(SQ(),m$(n,new ga),qan(k=new P6,(l1(0,n.c.length),BB(n.c[0],94))),l=0,S=0,h=new Wb(n);h.a<h.c.c.length;)u=BB(n0(h),135),j=XR(B$(BB(mMn(u,(qqn(),Zyt)),8)),BB(mMn(u,nkt),8)),l=e.Math.max(l,j.a),S+=j.a*j.b;for(l=e.Math.max(l,e.Math.sqrt(S)*Gy(MD(mMn(k,(CAn(),jkt))))),P=0,C=0,f=0,t=E=Gy(MD(mMn(k,xkt))),o=new Wb(n);o.a<o.c.c.length;)u=BB(n0(o),135),P+(j=XR(B$(BB(mMn(u,(qqn(),Zyt)),8)),BB(mMn(u,nkt),8))).a>l&&(P=0,C+=f+E,f=0),ELn(k,u,P,C),t=e.Math.max(t,P+j.a),f=e.Math.max(f,j.b),P+=j.a+E;for(y=new xp,i=new xp,M=new Wb(n);M.a<M.c.c.length;)for(r=qy(TD(mMn(T=BB(n0(M),135),(sWn(),lSt)))),a=(T.q?T.q:het).vc().Kc();a.Ob();)hU(y,(c=BB(a.Pb(),42)).cd())?GI(BB(c.cd(),146).wg())!==GI(c.dd())&&(r&&hU(i,c.cd())?($T(),BB(c.cd(),146).tg()):(VW(y,BB(c.cd(),146),c.dd()),hon(k,BB(c.cd(),146),c.dd()),r&&VW(i,BB(c.cd(),146),c.dd()))):(VW(y,BB(c.cd(),146),c.dd()),hon(k,BB(c.cd(),146),c.dd()));return k}function eWn(){eWn=O,RXn(),JIn(put=new pJ,(kUn(),dIt),wIt),JIn(put,MIt,wIt),JIn(put,gIt,wIt),JIn(put,jIt,wIt),JIn(put,kIt,wIt),JIn(put,mIt,wIt),JIn(put,jIt,dIt),JIn(put,wIt,hIt),JIn(put,dIt,hIt),JIn(put,MIt,hIt),JIn(put,gIt,hIt),JIn(put,yIt,hIt),JIn(put,jIt,hIt),JIn(put,kIt,hIt),JIn(put,mIt,hIt),JIn(put,bIt,hIt),JIn(put,wIt,EIt),JIn(put,dIt,EIt),JIn(put,hIt,EIt),JIn(put,MIt,EIt),JIn(put,gIt,EIt),JIn(put,yIt,EIt),JIn(put,jIt,EIt),JIn(put,bIt,EIt),JIn(put,TIt,EIt),JIn(put,kIt,EIt),JIn(put,pIt,EIt),JIn(put,mIt,EIt),JIn(put,dIt,MIt),JIn(put,gIt,MIt),JIn(put,jIt,MIt),JIn(put,mIt,MIt),JIn(put,dIt,gIt),JIn(put,MIt,gIt),JIn(put,jIt,gIt),JIn(put,gIt,gIt),JIn(put,kIt,gIt),JIn(put,wIt,fIt),JIn(put,dIt,fIt),JIn(put,hIt,fIt),JIn(put,EIt,fIt),JIn(put,MIt,fIt),JIn(put,gIt,fIt),JIn(put,yIt,fIt),JIn(put,jIt,fIt),JIn(put,TIt,fIt),JIn(put,bIt,fIt),JIn(put,mIt,fIt),JIn(put,kIt,fIt),JIn(put,vIt,fIt),JIn(put,wIt,TIt),JIn(put,dIt,TIt),JIn(put,hIt,TIt),JIn(put,MIt,TIt),JIn(put,gIt,TIt),JIn(put,yIt,TIt),JIn(put,jIt,TIt),JIn(put,bIt,TIt),JIn(put,mIt,TIt),JIn(put,pIt,TIt),JIn(put,vIt,TIt),JIn(put,dIt,bIt),JIn(put,MIt,bIt),JIn(put,gIt,bIt),JIn(put,jIt,bIt),JIn(put,TIt,bIt),JIn(put,mIt,bIt),JIn(put,kIt,bIt),JIn(put,wIt,lIt),JIn(put,dIt,lIt),JIn(put,hIt,lIt),JIn(put,MIt,lIt),JIn(put,gIt,lIt),JIn(put,yIt,lIt),JIn(put,jIt,lIt),JIn(put,bIt,lIt),JIn(put,mIt,lIt),JIn(put,dIt,kIt),JIn(put,hIt,kIt),JIn(put,EIt,kIt),JIn(put,gIt,kIt),JIn(put,wIt,pIt),JIn(put,dIt,pIt),JIn(put,EIt,pIt),JIn(put,MIt,pIt),JIn(put,gIt,pIt),JIn(put,yIt,pIt),JIn(put,jIt,pIt),JIn(put,jIt,vIt),JIn(put,gIt,vIt),JIn(put,bIt,wIt),JIn(put,bIt,MIt),JIn(put,bIt,hIt),JIn(put,yIt,wIt),JIn(put,yIt,dIt),JIn(put,yIt,EIt)}function iWn(n,t){switch(n.e){case 0:case 2:case 4:case 6:case 42:case 44:case 46:case 48:case 8:case 10:case 12:case 14:case 16:case 18:case 20:case 22:case 24:case 26:case 28:case 30:case 32:case 34:case 36:case 38:return new zQ(n.b,n.a,t,n.c);case 1:return new LL(n.a,t,Awn(t.Tg(),n.c));case 43:return new xL(n.a,t,Awn(t.Tg(),n.c));case 3:return new $L(n.a,t,Awn(t.Tg(),n.c));case 45:return new NL(n.a,t,Awn(t.Tg(),n.c));case 41:return new y9(BB(Ikn(n.c),26),n.a,t,Awn(t.Tg(),n.c));case 50:return new yin(BB(Ikn(n.c),26),n.a,t,Awn(t.Tg(),n.c));case 5:return new iK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 47:return new rK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 7:return new eU(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 49:return new eK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 9:return new FL(n.a,t,Awn(t.Tg(),n.c));case 11:return new _L(n.a,t,Awn(t.Tg(),n.c));case 13:return new KL(n.a,t,Awn(t.Tg(),n.c));case 15:return new MH(n.a,t,Awn(t.Tg(),n.c));case 17:return new BL(n.a,t,Awn(t.Tg(),n.c));case 19:return new RL(n.a,t,Awn(t.Tg(),n.c));case 21:return new DL(n.a,t,Awn(t.Tg(),n.c));case 23:return new yH(n.a,t,Awn(t.Tg(),n.c));case 25:return new fK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 27:return new hK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 29:return new oK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 31:return new cK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 33:return new sK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 35:return new uK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 37:return new aK(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 39:return new iU(n.a,t,Awn(t.Tg(),n.c),n.d.n);case 40:return new Ecn(t,Awn(t.Tg(),n.c));default:throw Hp(new dy("Unknown feature style: "+n.e))}}function rWn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;switch(OTn(e,"Brandes & Koepf node placement",1),n.a=t,n.c=FFn(t),i=BB(mMn(t,(HXn(),Ngt)),274),b=qy(TD(mMn(t,xgt))),n.d=i==(Bjn(),Qht)&&!b||i==Xht,Jqn(n,t),y=null,k=null,g=null,p=null,lin(4,AVn),d=new J6(4),BB(mMn(t,Ngt),274).g){case 3:g=new qKn(t,n.c.d,(oZ(),ryt),(gJ(),nyt)),d.c[d.c.length]=g;break;case 1:p=new qKn(t,n.c.d,(oZ(),cyt),(gJ(),nyt)),d.c[d.c.length]=p;break;case 4:y=new qKn(t,n.c.d,(oZ(),ryt),(gJ(),tyt)),d.c[d.c.length]=y;break;case 2:k=new qKn(t,n.c.d,(oZ(),cyt),(gJ(),tyt)),d.c[d.c.length]=k;break;default:g=new qKn(t,n.c.d,(oZ(),ryt),(gJ(),nyt)),p=new qKn(t,n.c.d,cyt,nyt),y=new qKn(t,n.c.d,ryt,tyt),k=new qKn(t,n.c.d,cyt,tyt),d.c[d.c.length]=y,d.c[d.c.length]=k,d.c[d.c.length]=g,d.c[d.c.length]=p}for(r=new iC(t,n.c),u=new Wb(d);u.a<u.c.c.length;)PXn(r,c=BB(n0(u),180),n.b),WBn(c);for(l=new Jyn(t,n.c),o=new Wb(d);o.a<o.c.c.length;)Hzn(l,c=BB(n0(o),180));if(e.n)for(s=new Wb(d);s.a<s.c.c.length;)OH(e,(c=BB(n0(s),180))+" size is "+v$n(c));if(f=null,n.d&&IBn(t,h=FUn(n,d,n.c.d),e)&&(f=h),!f)for(s=new Wb(d);s.a<s.c.c.length;)IBn(t,c=BB(n0(s),180),e)&&(!f||v$n(f)>v$n(c))&&(f=c);for(!f&&(l1(0,d.c.length),f=BB(d.c[0],180)),w=new Wb(t.b);w.a<w.c.c.length;)for(m=new Wb(BB(n0(w),29).a);m.a<m.c.c.length;)(v=BB(n0(m),10)).n.b=Gy(f.p[v.p])+Gy(f.d[v.p]);for(e.n&&(OH(e,"Chosen node placement: "+f),OH(e,"Blocks: "+xOn(f)),OH(e,"Classes: "+UAn(f,e)),OH(e,"Marked edges: "+n.b)),a=new Wb(d);a.a<a.c.c.length;)(c=BB(n0(a),180)).g=null,c.b=null,c.a=null,c.d=null,c.j=null,c.i=null,c.p=null;zrn(n.c),n.b.a.$b(),HSn(e)}function cWn(n,t,e){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(a=new YT,v=BB(mMn(e,(HXn(),Udt)),103),w=0,Frn(a,(!t.a&&(t.a=new eU(UOt,t,10,11)),t.a));0!=a.b;)s=BB(0==a.b?null:(Px(0!=a.b),Atn(a,a.a.a)),33),(GI(ZAn(t,Ldt))!==GI((mon(),Nvt))||GI(ZAn(t,Gdt))===GI((Vvn(),Eht))||GI(ZAn(t,Gdt))===GI((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GI(ZAn(t,Cdt))!==GI((Bfn(),wut)))&&!qy(TD(ZAn(s,$dt)))&&Ypn(s,(hWn(),wlt),iln(w++)),!qy(TD(ZAn(s,Ggt)))&&(f=0!=(!s.a&&(s.a=new eU(UOt,s,10,11)),s.a).i,b=kTn(s),l=GI(ZAn(s,sgt))===GI((ufn(),pCt)),g=null,(T=!P8(s,(sWn(),eSt))||mK(SD(ZAn(s,eSt)),w1n))&&l&&(f||b)&&(hon(g=kFn(s),Udt,v),Lx(g,gpt)&&My(new uwn(Gy(MD(mMn(g,gpt)))),g),0!=BB(ZAn(s,Fgt),174).gc()&&(h=g,JT(new Rq(null,(!s.c&&(s.c=new eU(XOt,s,9,9)),new w1(s.c,16))),new Xw(h)),mDn(s,g))),m=e,(y=BB(RX(n.a,JJ(s)),10))&&(m=y.e),d=wzn(n,s,m),g&&(d.e=g,g.e=d,Frn(a,(!s.a&&(s.a=new eU(UOt,s,10,11)),s.a))));for(w=0,r5(a,t,a.c.b,a.c);0!=a.b;){for(o=new AL((!(c=BB(0==a.b?null:(Px(0!=a.b),Atn(a,a.a.a)),33)).b&&(c.b=new eU(_Ot,c,12,3)),c.b));o.e!=o.i.gc();)tKn(u=BB(kpn(o),79)),(GI(ZAn(t,Ldt))!==GI((mon(),Nvt))||GI(ZAn(t,Gdt))===GI((Vvn(),Eht))||GI(ZAn(t,Gdt))===GI((Vvn(),kht))||qy(TD(ZAn(t,xdt)))||GI(ZAn(t,Cdt))!==GI((Bfn(),wut)))&&Ypn(u,(hWn(),wlt),iln(w++)),j=PTn(BB(Wtn((!u.b&&(u.b=new hK(KOt,u,4,7)),u.b),0),82)),E=PTn(BB(Wtn((!u.c&&(u.c=new hK(KOt,u,5,8)),u.c),0),82)),qy(TD(ZAn(u,Ggt)))||qy(TD(ZAn(j,Ggt)))||qy(TD(ZAn(E,Ggt)))||(p=c,QIn(u)&&qy(TD(ZAn(j,wgt)))&&qy(TD(ZAn(u,dgt)))||Ctn(E,j)?p=j:Ctn(j,E)&&(p=E),m=e,(y=BB(RX(n.a,p),10))&&(m=y.e),hon(uWn(n,u,p,m),(hWn(),Fft),Lxn(n,u,t,e)));if(l=GI(ZAn(c,sgt))===GI((ufn(),pCt)))for(r=new AL((!c.a&&(c.a=new eU(UOt,c,10,11)),c.a));r.e!=r.i.gc();)T=!P8(i=BB(kpn(r),33),(sWn(),eSt))||mK(SD(ZAn(i,eSt)),w1n),k=GI(ZAn(i,sgt))===GI(pCt),T&&k&&r5(a,i,a.c.b,a.c)}}function aWn(n,t,e,i,r,c){var a,u,o,s,h,f,l;switch(t){case 71:a=i.q.getFullYear()-sQn>=-1900?1:0,oO(n,e>=4?Pun(Gk(Qtt,1),sVn,2,6,[fQn,lQn])[a]:Pun(Gk(Qtt,1),sVn,2,6,["BC","AD"])[a]);break;case 121:opn(n,e,i);break;case 77:XKn(n,e,i);break;case 107:Enn(n,0==(u=r.q.getHours())?24:u,e);break;case 83:RLn(n,e,r);break;case 69:o=i.q.getDay(),oO(n,5==e?Pun(Gk(Qtt,1),sVn,2,6,["S","M","T","W","T","F","S"])[o]:4==e?Pun(Gk(Qtt,1),sVn,2,6,[bQn,wQn,dQn,gQn,pQn,vQn,mQn])[o]:Pun(Gk(Qtt,1),sVn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[o]);break;case 97:r.q.getHours()>=12&&r.q.getHours()<24?oO(n,Pun(Gk(Qtt,1),sVn,2,6,["AM","PM"])[1]):oO(n,Pun(Gk(Qtt,1),sVn,2,6,["AM","PM"])[0]);break;case 104:Enn(n,0==(s=r.q.getHours()%12)?12:s,e);break;case 75:Enn(n,r.q.getHours()%12,e);break;case 72:Enn(n,r.q.getHours(),e);break;case 99:h=i.q.getDay(),5==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,["S","M","T","W","T","F","S"])[h]):4==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,[bQn,wQn,dQn,gQn,pQn,vQn,mQn])[h]):3==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,["Sun","Mon","Tue","Wed","Thu","Fri","Sat"])[h]):Enn(n,h,1);break;case 76:f=i.q.getMonth(),5==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,["J","F","M","A","M","J","J","A","S","O","N","D"])[f]):4==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,[YVn,JVn,ZVn,nQn,tQn,eQn,iQn,rQn,cQn,aQn,uQn,oQn])[f]):3==e?oO(n,Pun(Gk(Qtt,1),sVn,2,6,["Jan","Feb","Mar","Apr",tQn,"Jun","Jul","Aug","Sep","Oct","Nov","Dec"])[f]):Enn(n,f+1,e);break;case 81:l=i.q.getMonth()/3|0,oO(n,e<4?Pun(Gk(Qtt,1),sVn,2,6,["Q1","Q2","Q3","Q4"])[l]:Pun(Gk(Qtt,1),sVn,2,6,["1st quarter","2nd quarter","3rd quarter","4th quarter"])[l]);break;case 100:Enn(n,i.q.getDate(),e);break;case 109:Enn(n,r.q.getMinutes(),e);break;case 115:Enn(n,r.q.getSeconds(),e);break;case 122:oO(n,e<4?c.c[0]:c.c[1]);break;case 118:oO(n,c.b);break;case 90:oO(n,e<3?nIn(c):3==e?wIn(c):dIn(c.a));break;default:return!1}return!0}function uWn(n,t,e,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C;if(tKn(t),o=BB(Wtn((!t.b&&(t.b=new hK(KOt,t,4,7)),t.b),0),82),h=BB(Wtn((!t.c&&(t.c=new hK(KOt,t,5,8)),t.c),0),82),u=PTn(o),s=PTn(h),a=0==(!t.a&&(t.a=new eU(FOt,t,6,6)),t.a).i?null:BB(Wtn((!t.a&&(t.a=new eU(FOt,t,6,6)),t.a),0),202),j=BB(RX(n.a,u),10),S=BB(RX(n.a,s),10),E=null,P=null,cL(o,186)&&(cL(k=BB(RX(n.a,o),299),11)?E=BB(k,11):cL(k,10)&&(j=BB(k,10),E=BB(xq(j.j,0),11))),cL(h,186)&&(cL(M=BB(RX(n.a,h),299),11)?P=BB(M,11):cL(M,10)&&(S=BB(M,10),P=BB(xq(S.j,0),11))),!j||!S)throw Hp(new ck("The source or the target of edge "+t+" could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));for(qan(d=new wY,t),hon(d,(hWn(),dlt),t),hon(d,(HXn(),vgt),null),b=BB(mMn(i,Zft),21),j==S&&b.Fc((bDn(),vft)),E||(ain(),y=qvt,T=null,a&&vA(BB(mMn(j,ept),98))&&(Y3(T=new xC(a.j,a.k),XJ(t)),t5(T,e),Ctn(s,u)&&(y=Hvt,UR(T,j.n))),E=dHn(j,T,y,i)),P||(ain(),y=Hvt,C=null,a&&vA(BB(mMn(S,ept),98))&&(Y3(C=new xC(a.b,a.c),XJ(t)),t5(C,e)),P=dHn(S,C,y,vW(S))),SZ(d,E),MZ(d,P),(E.e.c.length>1||E.g.c.length>1||P.e.c.length>1||P.g.c.length>1)&&b.Fc((bDn(),bft)),l=new AL((!t.n&&(t.n=new eU(zOt,t,1,7)),t.n));l.e!=l.i.gc();)if(!qy(TD(ZAn(f=BB(kpn(l),137),Ggt)))&&f.a)switch(g=Hhn(f),WB(d.b,g),BB(mMn(g,Ydt),272).g){case 1:case 2:b.Fc((bDn(),fft));break;case 0:b.Fc((bDn(),sft)),hon(g,Ydt,(Rtn(),zPt))}if(c=BB(mMn(i,qdt),314),p=BB(mMn(i,_gt),315),r=c==(Oin(),sht)||p==(Nvn(),pvt),a&&0!=(!a.a&&(a.a=new $L(xOt,a,5)),a.a).i&&r){for(v=qSn(a),w=new km,m=spn(v,0);m.b!=m.d.c;)DH(w,new wA(BB(b3(m),8)));hon(d,glt,w)}return d}function oWn(n){n.gb||(n.gb=!0,n.b=kan(n,0),Rrn(n.b,18),Krn(n.b,19),n.a=kan(n,1),Rrn(n.a,1),Krn(n.a,2),Krn(n.a,3),Krn(n.a,4),Krn(n.a,5),n.o=kan(n,2),Rrn(n.o,8),Rrn(n.o,9),Krn(n.o,10),Krn(n.o,11),Krn(n.o,12),Krn(n.o,13),Krn(n.o,14),Krn(n.o,15),Krn(n.o,16),Krn(n.o,17),Krn(n.o,18),Krn(n.o,19),Krn(n.o,20),Krn(n.o,21),Krn(n.o,22),Krn(n.o,23),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),otn(n.o),n.p=kan(n,3),Rrn(n.p,2),Rrn(n.p,3),Rrn(n.p,4),Rrn(n.p,5),Krn(n.p,6),Krn(n.p,7),otn(n.p),otn(n.p),n.q=kan(n,4),Rrn(n.q,8),n.v=kan(n,5),Krn(n.v,9),otn(n.v),otn(n.v),otn(n.v),n.w=kan(n,6),Rrn(n.w,2),Rrn(n.w,3),Rrn(n.w,4),Krn(n.w,5),n.B=kan(n,7),Krn(n.B,1),otn(n.B),otn(n.B),otn(n.B),n.Q=kan(n,8),Krn(n.Q,0),otn(n.Q),n.R=kan(n,9),Rrn(n.R,1),n.S=kan(n,10),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),otn(n.S),n.T=kan(n,11),Krn(n.T,10),Krn(n.T,11),Krn(n.T,12),Krn(n.T,13),Krn(n.T,14),otn(n.T),otn(n.T),n.U=kan(n,12),Rrn(n.U,2),Rrn(n.U,3),Krn(n.U,4),Krn(n.U,5),Krn(n.U,6),Krn(n.U,7),otn(n.U),n.V=kan(n,13),Krn(n.V,10),n.W=kan(n,14),Rrn(n.W,18),Rrn(n.W,19),Rrn(n.W,20),Krn(n.W,21),Krn(n.W,22),Krn(n.W,23),n.bb=kan(n,15),Rrn(n.bb,10),Rrn(n.bb,11),Rrn(n.bb,12),Rrn(n.bb,13),Rrn(n.bb,14),Rrn(n.bb,15),Rrn(n.bb,16),Krn(n.bb,17),otn(n.bb),otn(n.bb),n.eb=kan(n,16),Rrn(n.eb,2),Rrn(n.eb,3),Rrn(n.eb,4),Rrn(n.eb,5),Rrn(n.eb,6),Rrn(n.eb,7),Krn(n.eb,8),Krn(n.eb,9),n.ab=kan(n,17),Rrn(n.ab,0),Rrn(n.ab,1),n.H=kan(n,18),Krn(n.H,0),Krn(n.H,1),Krn(n.H,2),Krn(n.H,3),Krn(n.H,4),Krn(n.H,5),otn(n.H),n.db=kan(n,19),Krn(n.db,2),n.c=jan(n,20),n.d=jan(n,21),n.e=jan(n,22),n.f=jan(n,23),n.i=jan(n,24),n.g=jan(n,25),n.j=jan(n,26),n.k=jan(n,27),n.n=jan(n,28),n.r=jan(n,29),n.s=jan(n,30),n.t=jan(n,31),n.u=jan(n,32),n.fb=jan(n,33),n.A=jan(n,34),n.C=jan(n,35),n.D=jan(n,36),n.F=jan(n,37),n.G=jan(n,38),n.I=jan(n,39),n.J=jan(n,40),n.L=jan(n,41),n.M=jan(n,42),n.N=jan(n,43),n.O=jan(n,44),n.P=jan(n,45),n.X=jan(n,46),n.Y=jan(n,47),n.Z=jan(n,48),n.$=jan(n,49),n._=jan(n,50),n.cb=jan(n,51),n.K=jan(n,52))}function sWn(){var n,t;sWn=O,eSt=new up(w5n),mPt=new up(d5n),wvn(),iSt=new $O(W2n,rSt=CMt),new $p,cSt=new $O(VJn,null),aSt=new up(g5n),wEn(),fSt=EG(ZMt,Pun(Gk(qPt,1),$Vn,291,0,[VMt])),hSt=new $O(u3n,fSt),lSt=new $O(X2n,(hN(),!1)),Ffn(),bSt=new $O(J2n,wSt=BPt),Mbn(),vSt=new $O(y2n,mSt=ZPt),jSt=new $O(A4n,!1),ufn(),ESt=new $O(d2n,TSt=vCt),WSt=new WA(12),XSt=new $O(QJn,WSt),CSt=new $O(jZn,!1),ISt=new $O(m3n,!1),USt=new $O(MZn,!1),QEn(),uPt=new $O(EZn,oPt=YCt),gPt=new up(g3n),pPt=new up(pZn),vPt=new up(yZn),kPt=new up(kZn),ASt=new km,OSt=new $O(o3n,ASt),sSt=new $O(f3n,!1),MSt=new $O(l3n,!1),new up(p5n),LSt=new lm,$St=new $O(p3n,LSt),zSt=new $O(z2n,!1),new $p,yPt=new $O(v5n,1),new $O(m5n,!0),iln(0),new $O(y5n,iln(100)),new $O(k5n,!1),iln(0),new $O(j5n,iln(4e3)),iln(0),new $O(E5n,iln(400)),new $O(T5n,!1),new $O(M5n,!1),new $O(S5n,!0),new $O(P5n,!1),Fwn(),uSt=new $O(b5n,oSt=eOt),jPt=new $O(L2n,10),EPt=new $O(N2n,10),TPt=new $O(XJn,20),MPt=new $O(x2n,10),SPt=new $O(mZn,2),PPt=new $O(D2n,10),IPt=new $O(R2n,0),OPt=new $O(F2n,5),APt=new $O(K2n,1),$Pt=new $O(_2n,1),LPt=new $O(vZn,20),NPt=new $O(B2n,10),RPt=new $O(H2n,10),CPt=new up(q2n),DPt=new lA,xPt=new $O(v3n,DPt),YSt=new up(d3n),VSt=new $O(w3n,QSt=!1),xSt=new WA(5),NSt=new $O(Z2n,xSt),n$n(),t=BB(Vj(GCt),9),RSt=new YK(t,BB(SR(t,t.length),9),0),DSt=new $O(CZn,RSt),cpn(),ZSt=new $O(e3n,nPt=BCt),ePt=new up(i3n),iPt=new up(r3n),rPt=new up(c3n),tPt=new up(a3n),n=BB(Vj(YIt),9),_St=new YK(n,BB(SR(n,n.length),9),0),KSt=new $O(PZn,_St),GSt=nbn((n_n(),GIt)),qSt=new $O(SZn,GSt),HSt=new xC(0,0),BSt=new $O(BZn,HSt),FSt=new $O(Y2n,!1),Rtn(),gSt=new $O(s3n,pSt=zPt),dSt=new $O(TZn,!1),new up(C5n),iln(1),new $O(I5n,null),cPt=new up(b3n),sPt=new up(h3n),kUn(),wPt=new $O(U2n,dPt=PIt),aPt=new up(G2n),lIn(),lPt=nbn(rIt),fPt=new $O(IZn,lPt),hPt=new $O(n3n,!1),bPt=new $O(t3n,!0),SSt=new $O(V2n,!1),PSt=new $O(Q2n,!1),ySt=new $O(WJn,1),nMn(),new $O(O5n,kSt=aCt),JSt=!0}function hWn(){var n,t;hWn=O,dlt=new up(OZn),Fft=new up("coordinateOrigin"),Mlt=new up("processors"),_ft=new iR("compoundNode",(hN(),!1)),elt=new iR("insideConnections",!1),glt=new up("originalBendpoints"),plt=new up("originalDummyNodePosition"),vlt=new up("originalLabelEdge"),Plt=new up("representedLabels"),zft=new up("endLabels"),Uft=new up("endLabel.origin"),ult=new iR("labelSide",(Xyn(),MCt)),blt=new iR("maxEdgeThickness",0),Clt=new iR("reversed",!1),Slt=new up(AZn),hlt=new iR("longEdgeSource",null),flt=new iR("longEdgeTarget",null),slt=new iR("longEdgeHasLabelDummies",!1),olt=new iR("longEdgeBeforeLabelDummy",!1),Gft=new iR("edgeConstraint",(Jun(),Aht)),rlt=new up("inLayerLayoutUnit"),ilt=new iR("inLayerConstraint",(z7(),Pft)),clt=new iR("inLayerSuccessorConstraint",new Np),alt=new iR("inLayerSuccessorConstraintBetweenNonDummies",!1),Elt=new up("portDummy"),Bft=new iR("crossingHint",iln(0)),Zft=new iR("graphProperties",new YK(t=BB(Vj(Tft),9),BB(SR(t,t.length),9),0)),Qft=new iR("externalPortSide",(kUn(),PIt)),Yft=new iR("externalPortSize",new Gj),Wft=new up("externalPortReplacedDummies"),Vft=new up("externalPortReplacedDummy"),Xft=new iR("externalPortConnections",new YK(n=BB(Vj(FIt),9),BB(SR(n,n.length),9),0)),Tlt=new iR(dJn,0),xft=new up("barycenterAssociates"),Klt=new up("TopSideComments"),Dft=new up("BottomSideComments"),Kft=new up("CommentConnectionPort"),tlt=new iR("inputCollect",!1),klt=new iR("outputCollect",!1),qft=new iR("cyclic",!1),Hft=new up("crossHierarchyMap"),Rlt=new up("targetOffset"),new iR("splineLabelSize",new Gj),Alt=new up("spacings"),jlt=new iR("partitionConstraint",!1),Rft=new up("breakingPoint.info"),xlt=new up("splines.survivingEdge"),Nlt=new up("splines.route.start"),$lt=new up("splines.edgeChain"),ylt=new up("originalPortConstraints"),Olt=new up("selfLoopHolder"),Llt=new up("splines.nsPortY"),wlt=new up("modelOrder"),llt=new up("longEdgeTargetNode"),Jft=new iR(z1n,!1),Ilt=new iR(z1n,!1),nlt=new up("layerConstraints.hiddenNodes"),mlt=new up("layerConstraints.opposidePort"),Dlt=new up("targetNode.modelOrder")}function fWn(){fWn=O,_nn(),Sbt=new $O(U1n,Pbt=Sht),Gbt=new $O(X1n,(hN(),!1)),z2(),Vbt=new $O(W1n,Qbt=Aft),wwt=new $O(V1n,!1),dwt=new $O(Q1n,!0),Ult=new $O(Y1n,!1),U7(),Nwt=new $O(J1n,xwt=Kvt),iln(1),qwt=new $O(Z1n,iln(7)),Gwt=new $O(n0n,!1),zbt=new $O(t0n,!1),Vvn(),Tbt=new $O(e0n,Mbt=yht),TTn(),lwt=new $O(i0n,bwt=tvt),Tbn(),ewt=new $O(r0n,iwt=qlt),iln(-1),twt=new $O(c0n,iln(-1)),iln(-1),rwt=new $O(a0n,iln(-1)),iln(-1),cwt=new $O(u0n,iln(4)),iln(-1),uwt=new $O(o0n,iln(2)),sNn(),hwt=new $O(s0n,fwt=Ivt),iln(0),swt=new $O(h0n,iln(0)),Zbt=new $O(f0n,iln(DWn)),Oin(),jbt=new $O(l0n,Ebt=hht),ubt=new $O(b0n,!1),gbt=new $O(w0n,.1),ybt=new $O(d0n,!1),iln(-1),vbt=new $O(g0n,iln(-1)),iln(-1),mbt=new $O(p0n,iln(-1)),iln(0),obt=new $O(v0n,iln(40)),Kan(),bbt=new $O(m0n,wbt=Eft),sbt=new $O(y0n,hbt=kft),Nvn(),$wt=new $O(k0n,Lwt=gvt),jwt=new up(j0n),g7(),gwt=new $O(E0n,pwt=qht),Bjn(),mwt=new $O(T0n,ywt=Qht),new $p,Mwt=new $O(M0n,.3),Pwt=new up(S0n),bvn(),Cwt=new $O(P0n,Iwt=lvt),Hcn(),Nbt=new $O(C0n,xbt=Wvt),A6(),Dbt=new $O(I0n,Rbt=Zvt),Usn(),Kbt=new $O(O0n,_bt=rmt),Bbt=new $O(A0n,.2),$bt=new $O($0n,2),_wt=new $O(L0n,null),Bwt=new $O(N0n,10),Fwt=new $O(x0n,10),Hwt=new $O(D0n,20),iln(0),Dwt=new $O(R0n,iln(0)),iln(0),Rwt=new $O(K0n,iln(0)),iln(0),Kwt=new $O(_0n,iln(0)),Xlt=new $O(F0n,!1),JMn(),Qlt=new $O(B0n,Ylt=cft),V8(),Wlt=new $O(H0n,Vlt=aht),Xbt=new $O(q0n,!1),iln(0),Ubt=new $O(G0n,iln(16)),iln(0),Wbt=new $O(z0n,iln(5)),$un(),ldt=new $O(U0n,bdt=bmt),zwt=new $O(X0n,10),Wwt=new $O(W0n,1),uin(),edt=new $O(V0n,idt=ght),Ywt=new up(Q0n),ndt=iln(1),iln(0),Zwt=new $O(Y0n,ndt),dcn(),pdt=new $O(J0n,vdt=umt),wdt=new up(Z0n),odt=new $O(n2n,!0),adt=new $O(t2n,2),hdt=new $O(e2n,!0),gSn(),Obt=new $O(i2n,Abt=_ht),$Pn(),Cbt=new $O(r2n,Ibt=Zst),mon(),cbt=new $O(c2n,abt=Nvt),rbt=new $O(a2n,!1),Bfn(),Jlt=new $O(u2n,Zlt=wut),Mhn(),ebt=new $O(o2n,ibt=cvt),nbt=new $O(s2n,0),tbt=new $O(h2n,0),Jbt=jht,Ybt=sht,awt=nvt,owt=nvt,nwt=Ypt,ufn(),pbt=pCt,kbt=hht,dbt=hht,fbt=hht,lbt=pCt,Ewt=mvt,Twt=gvt,vwt=gvt,kwt=gvt,Swt=vvt,Awt=mvt,Owt=mvt,Mbn(),Fbt=JPt,Hbt=JPt,qbt=rmt,Lbt=YPt,Uwt=wmt,Xwt=lmt,Vwt=wmt,Qwt=lmt,rdt=wmt,cdt=lmt,Jwt=dht,tdt=ght,mdt=wmt,ydt=lmt,ddt=wmt,gdt=lmt,sdt=lmt,udt=lmt,fdt=lmt}function lWn(){lWn=O,rot=new nP("DIRECTION_PREPROCESSOR",0),tot=new nP("COMMENT_PREPROCESSOR",1),cot=new nP("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER",2),kot=new nP("INTERACTIVE_EXTERNAL_PORT_POSITIONER",3),Fot=new nP("PARTITION_PREPROCESSOR",4),Mot=new nP("LABEL_DUMMY_INSERTER",5),Uot=new nP("SELF_LOOP_PREPROCESSOR",6),Oot=new nP("LAYER_CONSTRAINT_PREPROCESSOR",7),Kot=new nP("PARTITION_MIDPROCESSOR",8),got=new nP("HIGH_DEGREE_NODE_LAYER_PROCESSOR",9),Not=new nP("NODE_PROMOTION",10),Iot=new nP("LAYER_CONSTRAINT_POSTPROCESSOR",11),_ot=new nP("PARTITION_POSTPROCESSOR",12),lot=new nP("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR",13),Wot=new nP("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR",14),Vut=new nP("BREAKING_POINT_INSERTER",15),Lot=new nP("LONG_EDGE_SPLITTER",16),Hot=new nP("PORT_SIDE_PROCESSOR",17),jot=new nP("INVERTED_PORT_PROCESSOR",18),Bot=new nP("PORT_LIST_SORTER",19),Qot=new nP("SORT_BY_INPUT_ORDER_OF_MODEL",20),Dot=new nP("NORTH_SOUTH_PORT_PREPROCESSOR",21),Qut=new nP("BREAKING_POINT_PROCESSOR",22),Rot=new nP(E1n,23),Yot=new nP(T1n,24),Got=new nP("SELF_LOOP_PORT_RESTORER",25),Vot=new nP("SINGLE_EDGE_GRAPH_WRAPPER",26),Eot=new nP("IN_LAYER_CONSTRAINT_PROCESSOR",27),sot=new nP("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR",28),Tot=new nP("LABEL_AND_NODE_SIZE_PROCESSOR",29),yot=new nP("INNERMOST_NODE_MARGIN_CALCULATOR",30),Xot=new nP("SELF_LOOP_ROUTER",31),Zut=new nP("COMMENT_NODE_MARGIN_CALCULATOR",32),uot=new nP("END_LABEL_PREPROCESSOR",33),Pot=new nP("LABEL_DUMMY_SWITCHER",34),Jut=new nP("CENTER_LABEL_MANAGEMENT_PROCESSOR",35),Cot=new nP("LABEL_SIDE_SELECTOR",36),vot=new nP("HYPEREDGE_DUMMY_MERGER",37),bot=new nP("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR",38),Aot=new nP("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR",39),dot=new nP("HIERARCHICAL_PORT_POSITION_PROCESSOR",40),eot=new nP("CONSTRAINTS_POSTPROCESSOR",41),not=new nP("COMMENT_POSTPROCESSOR",42),mot=new nP("HYPERNODE_PROCESSOR",43),wot=new nP("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER",44),$ot=new nP("LONG_EDGE_JOINER",45),zot=new nP("SELF_LOOP_POSTPROCESSOR",46),Yut=new nP("BREAKING_POINT_REMOVER",47),xot=new nP("NORTH_SOUTH_PORT_POSTPROCESSOR",48),pot=new nP("HORIZONTAL_COMPACTOR",49),Sot=new nP("LABEL_DUMMY_REMOVER",50),hot=new nP("FINAL_SPLINE_BENDPOINTS_CALCULATOR",51),oot=new nP("END_LABEL_SORTER",52),qot=new nP("REVERSED_EDGE_RESTORER",53),aot=new nP("END_LABEL_POSTPROCESSOR",54),fot=new nP("HIERARCHICAL_NODE_RESIZER",55),iot=new nP("DIRECTION_POSTPROCESSOR",56)}function bWn(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T,M,S,P,C,I,O,A,$,L,N,x,D,R,K,_,F,B,H,q,G,z,U,X,W,V,Q,Y,J,Z,nn,tn,en,rn,cn,an,un,on;for(J=0,L=0,D=(O=t).length;L<D;++L)for(G=new Wb((C=O[L]).j);G.a<G.c.c.length;){for(U=0,o=new Wb((q=BB(n0(G),11)).g);o.a<o.c.c.length;)u=BB(n0(o),17),C.c!=u.d.i.c&&++U;U>0&&(n.a[q.p]=J++)}for(rn=0,N=0,R=(A=i).length;N<R;++N){for(K=0,G=new Wb((C=A[N]).j);G.a<G.c.c.length&&(q=BB(n0(G),11)).j==(kUn(),sIt);)for(o=new Wb(q.e);o.a<o.c.c.length;)if(u=BB(n0(o),17),C.c!=u.c.i.c){++K;break}for(F=0,X=new M2(C.j,C.j.c.length);X.b>0;){for(Px(X.b>0),U=0,o=new Wb((q=BB(X.a.Xb(X.c=--X.b),11)).e);o.a<o.c.c.length;)u=BB(n0(o),17),C.c!=u.c.i.c&&++U;U>0&&(q.j==(kUn(),sIt)?(n.a[q.p]=rn,++rn):(n.a[q.p]=rn+K+F,++F))}rn+=F}for(z=new xp,d=new fA,$=0,x=(I=t).length;$<x;++$)for(tn=new Wb((C=I[$]).j);tn.a<tn.c.c.length;)for(o=new Wb((nn=BB(n0(tn),11)).g);o.a<o.c.c.length;)if(an=(u=BB(n0(o),17)).d,C.c!=an.i.c)if(Z=BB(qI(AY(z.f,nn)),467),cn=BB(qI(AY(z.f,an)),467),Z||cn)if(Z)if(cn)if(Z==cn)WB(Z.a,u);else{for(WB(Z.a,u),H=new Wb(cn.d);H.a<H.c.c.length;)B=BB(n0(H),11),jCn(z.f,B,Z);gun(Z.a,cn.a),gun(Z.d,cn.d),d.a.Bc(cn)}else WB(Z.a,u),WB(Z.d,an),jCn(z.f,an,Z);else WB(cn.a,u),WB(cn.d,nn),jCn(z.f,nn,cn);else w=new DR,d.a.zc(w,d),WB(w.a,u),WB(w.d,nn),jCn(z.f,nn,w),WB(w.d,an),jCn(z.f,an,w);for(g=BB(Emn(d,x8(Fmt,{3:1,4:1,5:1,1946:1},467,d.a.gc(),0,1)),1946),P=t[0].c,Y=i[0].c,l=0,b=(f=g).length;l<b;++l)for((h=f[l]).e=J,h.f=rn,G=new Wb(h.d);G.a<G.c.c.length;)q=BB(n0(G),11),W=n.a[q.p],q.i.c==P?(W<h.e&&(h.e=W),W>h.b&&(h.b=W)):q.i.c==Y&&(W<h.f&&(h.f=W),W>h.c&&(h.c=W));for(z9(g,0,g.length,null),en=x8(ANt,hQn,25,g.length,15,1),r=x8(ANt,hQn,25,rn+1,15,1),v=0;v<g.length;v++)en[v]=g[v].f,r[en[v]]=1;for(a=0,m=0;m<r.length;m++)1==r[m]?r[m]=a:--a;for(V=0,y=0;y<en.length;y++)en[y]+=r[en[y]],V=e.Math.max(V,en[y]+1);for(s=1;s<V;)s*=2;for(on=2*s-1,s-=1,un=x8(ANt,hQn,25,on,15,1),c=0,M=0;M<en.length;M++)for(++un[T=en[M]+s];T>0;)T%2>0&&(c+=un[T+1]),++un[T=(T-1)/2|0];for(S=x8(qmt,HWn,362,2*g.length,0,1),k=0;k<g.length;k++)S[2*k]=new qV(g[k],g[k].e,g[k].b,(Q4(),Hmt)),S[2*k+1]=new qV(g[k],g[k].b,g[k].e,Bmt);for(z9(S,0,S.length,null),_=0,j=0;j<S.length;j++)switch(S[j].d.g){case 0:++_;break;case 1:c+=--_}for(Q=x8(qmt,HWn,362,2*g.length,0,1),E=0;E<g.length;E++)Q[2*E]=new qV(g[E],g[E].f,g[E].c,(Q4(),Hmt)),Q[2*E+1]=new qV(g[E],g[E].c,g[E].f,Bmt);for(z9(Q,0,Q.length,null),_=0,p=0;p<Q.length;p++)switch(Q[p].d.g){case 0:++_;break;case 1:c+=--_}return c}function wWn(){wWn=O,sNt=new Ap(7),hNt=new oG(8,94),new oG(8,64),fNt=new oG(8,36),pNt=new oG(8,65),vNt=new oG(8,122),mNt=new oG(8,90),jNt=new oG(8,98),dNt=new oG(8,66),yNt=new oG(8,60),ENt=new oG(8,62),oNt=new Ap(11),Yxn(uNt=new M0(4),48,57),Yxn(kNt=new M0(4),48,57),Yxn(kNt,65,90),Yxn(kNt,95,95),Yxn(kNt,97,122),Yxn(gNt=new M0(4),9,9),Yxn(gNt,10,10),Yxn(gNt,12,12),Yxn(gNt,13,13),Yxn(gNt,32,32),lNt=$Fn(uNt),wNt=$Fn(kNt),bNt=$Fn(gNt),iNt=new xp,rNt=new xp,cNt=Pun(Gk(Qtt,1),sVn,2,6,["Cn","Lu","Ll","Lt","Lm","Lo","Mn","Me","Mc","Nd","Nl","No","Zs","Zl","Zp","Cc","Cf",null,"Co","Cs","Pd","Ps","Pe","Pc","Po","Sm","Sc","Sk","So","Pi","Pf","L","M","N","Z","C","P","S"]),eNt=Pun(Gk(Qtt,1),sVn,2,6,["Basic Latin","Latin-1 Supplement","Latin Extended-A","Latin Extended-B","IPA Extensions","Spacing Modifier Letters","Combining Diacritical Marks","Greek","Cyrillic","Armenian","Hebrew","Arabic","Syriac","Thaana","Devanagari","Bengali","Gurmukhi","Gujarati","Oriya","Tamil","Telugu","Kannada","Malayalam","Sinhala","Thai","Lao","Tibetan","Myanmar","Georgian","Hangul Jamo","Ethiopic","Cherokee","Unified Canadian Aboriginal Syllabics","Ogham","Runic","Khmer","Mongolian","Latin Extended Additional","Greek Extended","General Punctuation","Superscripts and Subscripts","Currency Symbols","Combining Marks for Symbols","Letterlike Symbols","Number Forms","Arrows","Mathematical Operators","Miscellaneous Technical","Control Pictures","Optical Character Recognition","Enclosed Alphanumerics","Box Drawing","Block Elements","Geometric Shapes","Miscellaneous Symbols","Dingbats","Braille Patterns","CJK Radicals Supplement","Kangxi Radicals","Ideographic Description Characters","CJK Symbols and Punctuation","Hiragana","Katakana","Bopomofo","Hangul Compatibility Jamo","Kanbun","Bopomofo Extended","Enclosed CJK Letters and Months","CJK Compatibility","CJK Unified Ideographs Extension A","CJK Unified Ideographs","Yi Syllables","Yi Radicals","Hangul Syllables",gnt,"CJK Compatibility Ideographs","Alphabetic Presentation Forms","Arabic Presentation Forms-A","Combining Half Marks","CJK Compatibility Forms","Small Form Variants","Arabic Presentation Forms-B","Specials","Halfwidth and Fullwidth Forms","Old Italic","Gothic","Deseret","Byzantine Musical Symbols","Musical Symbols","Mathematical Alphanumeric Symbols","CJK Unified Ideographs Extension B","CJK Compatibility Ideographs Supplement","Tags"]),aNt=Pun(Gk(ANt,1),hQn,25,15,[66304,66351,66352,66383,66560,66639,118784,119039,119040,119295,119808,120831,131072,173782,194560,195103,917504,917631])}function dWn(){dWn=O,Prt=new ocn("OUT_T_L",0,(J9(),Yit),(G7(),irt),(Dtn(),Git),Git,Pun(Gk(Dnt,1),HWn,21,0,[EG((n$n(),LCt),Pun(Gk(GCt,1),$Vn,93,0,[DCt,ICt]))])),Srt=new ocn("OUT_T_C",1,Qit,irt,Git,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[DCt,CCt])),EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[DCt,CCt,OCt]))])),Crt=new ocn("OUT_T_R",2,Jit,irt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[DCt,ACt]))])),vrt=new ocn("OUT_B_L",3,Yit,crt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ICt]))])),prt=new ocn("OUT_B_C",4,Qit,crt,Uit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[NCt,CCt])),EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[NCt,CCt,OCt]))])),mrt=new ocn("OUT_B_R",5,Jit,crt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ACt]))])),jrt=new ocn("OUT_L_T",6,Jit,crt,Git,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ICt,DCt,OCt]))])),krt=new ocn("OUT_L_C",7,Jit,rrt,zit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ICt,xCt])),EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ICt,xCt,OCt]))])),yrt=new ocn("OUT_L_B",8,Jit,irt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ICt,NCt,OCt]))])),Mrt=new ocn("OUT_R_T",9,Yit,crt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ACt,DCt,OCt]))])),Trt=new ocn("OUT_R_C",10,Yit,rrt,zit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ACt,xCt])),EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ACt,xCt,OCt]))])),Ert=new ocn("OUT_R_B",11,Yit,irt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG(LCt,Pun(Gk(GCt,1),$Vn,93,0,[ACt,NCt,OCt]))])),drt=new ocn("IN_T_L",12,Yit,crt,Git,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,ICt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,ICt,OCt]))])),wrt=new ocn("IN_T_C",13,Qit,crt,Git,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,CCt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,CCt,OCt]))])),grt=new ocn("IN_T_R",14,Jit,crt,Git,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,ACt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[DCt,ACt,OCt]))])),lrt=new ocn("IN_C_L",15,Yit,rrt,zit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,ICt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,ICt,OCt]))])),frt=new ocn("IN_C_C",16,Qit,rrt,zit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,CCt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,CCt,OCt]))])),brt=new ocn("IN_C_R",17,Jit,rrt,zit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,ACt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[xCt,ACt,OCt]))])),srt=new ocn("IN_B_L",18,Yit,irt,Uit,Git,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ICt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ICt,OCt]))])),ort=new ocn("IN_B_C",19,Qit,irt,Uit,zit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,CCt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,CCt,OCt]))])),hrt=new ocn("IN_B_R",20,Jit,irt,Uit,Uit,Pun(Gk(Dnt,1),HWn,21,0,[EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ACt])),EG($Ct,Pun(Gk(GCt,1),$Vn,93,0,[NCt,ACt,OCt]))])),Irt=new ocn(hJn,21,null,null,null,null,Pun(Gk(Dnt,1),HWn,21,0,[]))}function gWn(){gWn=O,i$t=(QX(),t$t).b,BB(Wtn(QQ(t$t.b),0),34),BB(Wtn(QQ(t$t.b),1),18),e$t=t$t.a,BB(Wtn(QQ(t$t.a),0),34),BB(Wtn(QQ(t$t.a),1),18),BB(Wtn(QQ(t$t.a),2),18),BB(Wtn(QQ(t$t.a),3),18),BB(Wtn(QQ(t$t.a),4),18),r$t=t$t.o,BB(Wtn(QQ(t$t.o),0),34),BB(Wtn(QQ(t$t.o),1),34),a$t=BB(Wtn(QQ(t$t.o),2),18),BB(Wtn(QQ(t$t.o),3),18),BB(Wtn(QQ(t$t.o),4),18),BB(Wtn(QQ(t$t.o),5),18),BB(Wtn(QQ(t$t.o),6),18),BB(Wtn(QQ(t$t.o),7),18),BB(Wtn(QQ(t$t.o),8),18),BB(Wtn(QQ(t$t.o),9),18),BB(Wtn(QQ(t$t.o),10),18),BB(Wtn(QQ(t$t.o),11),18),BB(Wtn(QQ(t$t.o),12),18),BB(Wtn(QQ(t$t.o),13),18),BB(Wtn(QQ(t$t.o),14),18),BB(Wtn(QQ(t$t.o),15),18),BB(Wtn(VQ(t$t.o),0),59),BB(Wtn(VQ(t$t.o),1),59),BB(Wtn(VQ(t$t.o),2),59),BB(Wtn(VQ(t$t.o),3),59),BB(Wtn(VQ(t$t.o),4),59),BB(Wtn(VQ(t$t.o),5),59),BB(Wtn(VQ(t$t.o),6),59),BB(Wtn(VQ(t$t.o),7),59),BB(Wtn(VQ(t$t.o),8),59),BB(Wtn(VQ(t$t.o),9),59),c$t=t$t.p,BB(Wtn(QQ(t$t.p),0),34),BB(Wtn(QQ(t$t.p),1),34),BB(Wtn(QQ(t$t.p),2),34),BB(Wtn(QQ(t$t.p),3),34),BB(Wtn(QQ(t$t.p),4),18),BB(Wtn(QQ(t$t.p),5),18),BB(Wtn(VQ(t$t.p),0),59),BB(Wtn(VQ(t$t.p),1),59),u$t=t$t.q,BB(Wtn(QQ(t$t.q),0),34),o$t=t$t.v,BB(Wtn(QQ(t$t.v),0),18),BB(Wtn(VQ(t$t.v),0),59),BB(Wtn(VQ(t$t.v),1),59),BB(Wtn(VQ(t$t.v),2),59),s$t=t$t.w,BB(Wtn(QQ(t$t.w),0),34),BB(Wtn(QQ(t$t.w),1),34),BB(Wtn(QQ(t$t.w),2),34),BB(Wtn(QQ(t$t.w),3),18),h$t=t$t.B,BB(Wtn(QQ(t$t.B),0),18),BB(Wtn(VQ(t$t.B),0),59),BB(Wtn(VQ(t$t.B),1),59),BB(Wtn(VQ(t$t.B),2),59),b$t=t$t.Q,BB(Wtn(QQ(t$t.Q),0),18),BB(Wtn(VQ(t$t.Q),0),59),w$t=t$t.R,BB(Wtn(QQ(t$t.R),0),34),d$t=t$t.S,BB(Wtn(VQ(t$t.S),0),59),BB(Wtn(VQ(t$t.S),1),59),BB(Wtn(VQ(t$t.S),2),59),BB(Wtn(VQ(t$t.S),3),59),BB(Wtn(VQ(t$t.S),4),59),BB(Wtn(VQ(t$t.S),5),59),BB(Wtn(VQ(t$t.S),6),59),BB(Wtn(VQ(t$t.S),7),59),BB(Wtn(VQ(t$t.S),8),59),BB(Wtn(VQ(t$t.S),9),59),BB(Wtn(VQ(t$t.S),10),59),BB(Wtn(VQ(t$t.S),11),59),BB(Wtn(VQ(t$t.S),12),59),BB(Wtn(VQ(t$t.S),13),59),BB(Wtn(VQ(t$t.S),14),59),g$t=t$t.T,BB(Wtn(QQ(t$t.T),0),18),BB(Wtn(QQ(t$t.T),2),18),p$t=BB(Wtn(QQ(t$t.T),3),18),BB(Wtn(QQ(t$t.T),4),18),BB(Wtn(VQ(t$t.T),0),59),BB(Wtn(VQ(t$t.T),1),59),BB(Wtn(QQ(t$t.T),1),18),v$t=t$t.U,BB(Wtn(QQ(t$t.U),0),34),BB(Wtn(QQ(t$t.U),1),34),BB(Wtn(QQ(t$t.U),2),18),BB(Wtn(QQ(t$t.U),3),18),BB(Wtn(QQ(t$t.U),4),18),BB(Wtn(QQ(t$t.U),5),18),BB(Wtn(VQ(t$t.U),0),59),m$t=t$t.V,BB(Wtn(QQ(t$t.V),0),18),y$t=t$t.W,BB(Wtn(QQ(t$t.W),0),34),BB(Wtn(QQ(t$t.W),1),34),BB(Wtn(QQ(t$t.W),2),34),BB(Wtn(QQ(t$t.W),3),18),BB(Wtn(QQ(t$t.W),4),18),BB(Wtn(QQ(t$t.W),5),18),j$t=t$t.bb,BB(Wtn(QQ(t$t.bb),0),34),BB(Wtn(QQ(t$t.bb),1),34),BB(Wtn(QQ(t$t.bb),2),34),BB(Wtn(QQ(t$t.bb),3),34),BB(Wtn(QQ(t$t.bb),4),34),BB(Wtn(QQ(t$t.bb),5),34),BB(Wtn(QQ(t$t.bb),6),34),BB(Wtn(QQ(t$t.bb),7),18),BB(Wtn(VQ(t$t.bb),0),59),BB(Wtn(VQ(t$t.bb),1),59),E$t=t$t.eb,BB(Wtn(QQ(t$t.eb),0),34),BB(Wtn(QQ(t$t.eb),1),34),BB(Wtn(QQ(t$t.eb),2),34),BB(Wtn(QQ(t$t.eb),3),34),BB(Wtn(QQ(t$t.eb),4),34),BB(Wtn(QQ(t$t.eb),5),34),BB(Wtn(QQ(t$t.eb),6),18),BB(Wtn(QQ(t$t.eb),7),18),k$t=t$t.ab,BB(Wtn(QQ(t$t.ab),0),34),BB(Wtn(QQ(t$t.ab),1),34),f$t=t$t.H,BB(Wtn(QQ(t$t.H),0),18),BB(Wtn(QQ(t$t.H),1),18),BB(Wtn(QQ(t$t.H),2),18),BB(Wtn(QQ(t$t.H),3),18),BB(Wtn(QQ(t$t.H),4),18),BB(Wtn(QQ(t$t.H),5),18),BB(Wtn(VQ(t$t.H),0),59),T$t=t$t.db,BB(Wtn(QQ(t$t.db),0),18),l$t=t$t.M}function pWn(n){var t;n.O||(n.O=!0,Nrn(n,"type"),xrn(n,"ecore.xml.type"),Drn(n,S7n),t=BB($$n((WM(),zAt),S7n),1945),f9(kY(n.fb),n.b),z0(n.b,wLt,"AnyType",!1,!1,!0),ucn(BB(Wtn(QQ(n.b),0),34),n.wb.D,K9n,null,0,-1,wLt,!1,!1,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.b),1),34),n.wb.D,"any",null,0,-1,wLt,!0,!0,!0,!1,!1,!0),ucn(BB(Wtn(QQ(n.b),2),34),n.wb.D,"anyAttribute",null,0,-1,wLt,!1,!1,!0,!1,!1,!1),z0(n.bb,zLt,A7n,!1,!1,!0),ucn(BB(Wtn(QQ(n.bb),0),34),n.gb,"data",null,0,1,zLt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),1),34),n.gb,Y6n,null,1,1,zLt,!1,!1,!0,!1,!0,!1),z0(n.fb,ULt,$7n,!1,!1,!0),ucn(BB(Wtn(QQ(n.fb),0),34),t.gb,"rawValue",null,0,1,ULt,!0,!0,!0,!1,!0,!0),ucn(BB(Wtn(QQ(n.fb),1),34),t.a,E6n,null,0,1,ULt,!0,!0,!0,!1,!0,!0),Myn(BB(Wtn(QQ(n.fb),2),18),n.wb.q,null,"instanceType",1,1,ULt,!1,!1,!0,!1,!1,!1,!1),z0(n.qb,XLt,L7n,!1,!1,!0),ucn(BB(Wtn(QQ(n.qb),0),34),n.wb.D,K9n,null,0,-1,null,!1,!1,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.qb),1),18),n.wb.ab,null,"xMLNSPrefixMap",0,-1,null,!0,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.qb),2),18),n.wb.ab,null,"xSISchemaLocation",0,-1,null,!0,!1,!0,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.qb),3),34),n.gb,"cDATA",null,0,-2,null,!0,!0,!0,!1,!1,!0),ucn(BB(Wtn(QQ(n.qb),4),34),n.gb,"comment",null,0,-2,null,!0,!0,!0,!1,!1,!0),Myn(BB(Wtn(QQ(n.qb),5),18),n.bb,null,cnt,0,-2,null,!0,!0,!0,!0,!1,!1,!0),ucn(BB(Wtn(QQ(n.qb),6),34),n.gb,O6n,null,0,-2,null,!0,!0,!0,!1,!1,!0),dV(n.a,Ant,"AnySimpleType",!0),dV(n.c,Qtt,"AnyURI",!0),dV(n.d,Gk(NNt,1),"Base64Binary",!0),dV(n.e,$Nt,"Boolean",!0),dV(n.f,ktt,"BooleanObject",!0),dV(n.g,NNt,"Byte",!0),dV(n.i,Ttt,"ByteObject",!0),dV(n.j,Qtt,"Date",!0),dV(n.k,Qtt,"DateTime",!0),dV(n.n,iet,"Decimal",!0),dV(n.o,xNt,"Double",!0),dV(n.p,Ptt,"DoubleObject",!0),dV(n.q,Qtt,"Duration",!0),dV(n.s,Rnt,"ENTITIES",!0),dV(n.r,Rnt,"ENTITIESBase",!0),dV(n.t,Qtt,_7n,!0),dV(n.u,DNt,"Float",!0),dV(n.v,Ctt,"FloatObject",!0),dV(n.w,Qtt,"GDay",!0),dV(n.B,Qtt,"GMonth",!0),dV(n.A,Qtt,"GMonthDay",!0),dV(n.C,Qtt,"GYear",!0),dV(n.D,Qtt,"GYearMonth",!0),dV(n.F,Gk(NNt,1),"HexBinary",!0),dV(n.G,Qtt,"ID",!0),dV(n.H,Qtt,"IDREF",!0),dV(n.J,Rnt,"IDREFS",!0),dV(n.I,Rnt,"IDREFSBase",!0),dV(n.K,ANt,"Int",!0),dV(n.M,oet,"Integer",!0),dV(n.L,Att,"IntObject",!0),dV(n.P,Qtt,"Language",!0),dV(n.Q,LNt,"Long",!0),dV(n.R,Rtt,"LongObject",!0),dV(n.S,Qtt,"Name",!0),dV(n.T,Qtt,F7n,!0),dV(n.U,oet,"NegativeInteger",!0),dV(n.V,Qtt,Q7n,!0),dV(n.X,Rnt,"NMTOKENS",!0),dV(n.W,Rnt,"NMTOKENSBase",!0),dV(n.Y,oet,"NonNegativeInteger",!0),dV(n.Z,oet,"NonPositiveInteger",!0),dV(n.$,Qtt,"NormalizedString",!0),dV(n._,Qtt,"NOTATION",!0),dV(n.ab,Qtt,"PositiveInteger",!0),dV(n.cb,Qtt,"QName",!0),dV(n.db,RNt,"Short",!0),dV(n.eb,_tt,"ShortObject",!0),dV(n.gb,Qtt,qVn,!0),dV(n.hb,Qtt,"Time",!0),dV(n.ib,Qtt,"Token",!0),dV(n.jb,RNt,"UnsignedByte",!0),dV(n.kb,_tt,"UnsignedByteObject",!0),dV(n.lb,LNt,"UnsignedInt",!0),dV(n.mb,Rtt,"UnsignedIntObject",!0),dV(n.nb,oet,"UnsignedLong",!0),dV(n.ob,ANt,"UnsignedShort",!0),dV(n.pb,Att,"UnsignedShortObject",!0),Lhn(n,S7n),yWn(n))}function vWn(n){NM(n,new MTn(mj(dj(vj(wj(pj(gj(new du,w1n),"ELK Layered"),"Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level."),new Cc),w1n),EG((hAn(),iAt),Pun(Gk(aAt,1),$Vn,237,0,[nAt,tAt,ZOt,eAt,YOt,QOt]))))),u2(n,w1n,L2n,mpn(ppt)),u2(n,w1n,N2n,mpn(vpt)),u2(n,w1n,XJn,mpn(mpt)),u2(n,w1n,x2n,mpn(ypt)),u2(n,w1n,mZn,mpn(jpt)),u2(n,w1n,D2n,mpn(Ept)),u2(n,w1n,R2n,mpn(Spt)),u2(n,w1n,K2n,mpn(Cpt)),u2(n,w1n,_2n,mpn(Ipt)),u2(n,w1n,F2n,mpn(Ppt)),u2(n,w1n,vZn,mpn(Opt)),u2(n,w1n,B2n,mpn($pt)),u2(n,w1n,H2n,mpn(Npt)),u2(n,w1n,q2n,mpn(Mpt)),u2(n,w1n,L0n,mpn(gpt)),u2(n,w1n,x0n,mpn(kpt)),u2(n,w1n,N0n,mpn(Tpt)),u2(n,w1n,D0n,mpn(Apt)),u2(n,w1n,pZn,iln(0)),u2(n,w1n,R0n,mpn(fpt)),u2(n,w1n,K0n,mpn(lpt)),u2(n,w1n,_0n,mpn(bpt)),u2(n,w1n,U0n,mpn(zpt)),u2(n,w1n,X0n,mpn(Rpt)),u2(n,w1n,W0n,mpn(Kpt)),u2(n,w1n,V0n,mpn(Bpt)),u2(n,w1n,Q0n,mpn(_pt)),u2(n,w1n,Y0n,mpn(Fpt)),u2(n,w1n,J0n,mpn(Xpt)),u2(n,w1n,Z0n,mpn(Upt)),u2(n,w1n,n2n,mpn(qpt)),u2(n,w1n,t2n,mpn(Hpt)),u2(n,w1n,e2n,mpn(Gpt)),u2(n,w1n,S0n,mpn(Rgt)),u2(n,w1n,P0n,mpn(Kgt)),u2(n,w1n,O0n,mpn(rgt)),u2(n,w1n,A0n,mpn(cgt)),u2(n,w1n,QJn,Ugt),u2(n,w1n,y2n,ngt),u2(n,w1n,G2n,0),u2(n,w1n,yZn,iln(1)),u2(n,w1n,VJn,dZn),u2(n,w1n,z2n,mpn(Ggt)),u2(n,w1n,EZn,mpn(ept)),u2(n,w1n,U2n,mpn(upt)),u2(n,w1n,X2n,mpn(zdt)),u2(n,w1n,W2n,mpn(kdt)),u2(n,w1n,d2n,mpn(sgt)),u2(n,w1n,kZn,(hN(),!0)),u2(n,w1n,V2n,mpn(wgt)),u2(n,w1n,Q2n,mpn(dgt)),u2(n,w1n,PZn,mpn(Fgt)),u2(n,w1n,SZn,mpn(qgt)),u2(n,w1n,Y2n,mpn(Bgt)),u2(n,w1n,J2n,Wdt),u2(n,w1n,CZn,mpn($gt)),u2(n,w1n,Z2n,mpn(Agt)),u2(n,w1n,IZn,mpn(cpt)),u2(n,w1n,n3n,mpn(rpt)),u2(n,w1n,t3n,mpn(apt)),u2(n,w1n,e3n,Vgt),u2(n,w1n,i3n,mpn(Ygt)),u2(n,w1n,r3n,mpn(Jgt)),u2(n,w1n,c3n,mpn(Zgt)),u2(n,w1n,a3n,mpn(Qgt)),u2(n,w1n,n0n,mpn(Dpt)),u2(n,w1n,i0n,mpn(Pgt)),u2(n,w1n,s0n,mpn(Sgt)),u2(n,w1n,Z1n,mpn(xpt)),u2(n,w1n,r0n,mpn(kgt)),u2(n,w1n,e0n,mpn(Gdt)),u2(n,w1n,l0n,mpn(qdt)),u2(n,w1n,b0n,mpn(xdt)),u2(n,w1n,v0n,mpn(Ddt)),u2(n,w1n,m0n,mpn(Kdt)),u2(n,w1n,y0n,mpn(Rdt)),u2(n,w1n,d0n,mpn(Hdt)),u2(n,w1n,V1n,mpn(Igt)),u2(n,w1n,Q1n,mpn(Ogt)),u2(n,w1n,W1n,mpn(pgt)),u2(n,w1n,k0n,mpn(_gt)),u2(n,w1n,T0n,mpn(Ngt)),u2(n,w1n,X1n,mpn(ugt)),u2(n,w1n,M0n,mpn(Dgt)),u2(n,w1n,C0n,mpn(egt)),u2(n,w1n,I0n,mpn(igt)),u2(n,w1n,u3n,mpn(Ndt)),u2(n,w1n,E0n,mpn(Lgt)),u2(n,w1n,B0n,mpn(Pdt)),u2(n,w1n,H0n,mpn(Sdt)),u2(n,w1n,F0n,mpn(Mdt)),u2(n,w1n,q0n,mpn(fgt)),u2(n,w1n,G0n,mpn(hgt)),u2(n,w1n,z0n,mpn(lgt)),u2(n,w1n,BZn,mpn(Hgt)),u2(n,w1n,o3n,mpn(vgt)),u2(n,w1n,WJn,mpn(agt)),u2(n,w1n,s3n,mpn(Ydt)),u2(n,w1n,TZn,mpn(Qdt)),u2(n,w1n,w0n,mpn(_dt)),u2(n,w1n,h3n,mpn(ipt)),u2(n,w1n,f3n,mpn(Tdt)),u2(n,w1n,l3n,mpn(bgt)),u2(n,w1n,b3n,mpn(npt)),u2(n,w1n,w3n,mpn(Xgt)),u2(n,w1n,d3n,mpn(Wgt)),u2(n,w1n,u0n,mpn(Egt)),u2(n,w1n,o0n,mpn(Tgt)),u2(n,w1n,g3n,mpn(spt)),u2(n,w1n,Y1n,mpn(jdt)),u2(n,w1n,h0n,mpn(Mgt)),u2(n,w1n,i2n,mpn(Jdt)),u2(n,w1n,r2n,mpn(Vdt)),u2(n,w1n,p3n,mpn(Cgt)),u2(n,w1n,f0n,mpn(mgt)),u2(n,w1n,j0n,mpn(xgt)),u2(n,w1n,v3n,mpn(Lpt)),u2(n,w1n,U1n,mpn(Xdt)),u2(n,w1n,J1n,mpn(opt)),u2(n,w1n,$0n,mpn(tgt)),u2(n,w1n,c0n,mpn(ygt)),u2(n,w1n,g0n,mpn(Fdt)),u2(n,w1n,m3n,mpn(ggt)),u2(n,w1n,a0n,mpn(jgt)),u2(n,w1n,p0n,mpn(Bdt)),u2(n,w1n,c2n,mpn(Ldt)),u2(n,w1n,o2n,mpn(Adt)),u2(n,w1n,s2n,mpn(Idt)),u2(n,w1n,h2n,mpn(Odt)),u2(n,w1n,a2n,mpn($dt)),u2(n,w1n,u2n,mpn(Cdt)),u2(n,w1n,t0n,mpn(ogt))}function mWn(n,t){var e;return nNt||(nNt=new xp,tNt=new xp,wWn(),wWn(),ydn(e=new M0(4),"\t\n\r\r "),mZ(nNt,fnt,e),mZ(tNt,fnt,$Fn(e)),ydn(e=new M0(4),wnt),mZ(nNt,snt,e),mZ(tNt,snt,$Fn(e)),ydn(e=new M0(4),wnt),mZ(nNt,snt,e),mZ(tNt,snt,$Fn(e)),ydn(e=new M0(4),dnt),sHn(e,BB(SJ(nNt,snt),117)),mZ(nNt,hnt,e),mZ(tNt,hnt,$Fn(e)),ydn(e=new M0(4),"-.0:AZ__az\xb7\xb7\xc0\xd6\xd8\xf6\xf8\u0131\u0134\u013e\u0141\u0148\u014a\u017e\u0180\u01c3\u01cd\u01f0\u01f4\u01f5\u01fa\u0217\u0250\u02a8\u02bb\u02c1\u02d0\u02d1\u0300\u0345\u0360\u0361\u0386\u038a\u038c\u038c\u038e\u03a1\u03a3\u03ce\u03d0\u03d6\u03da\u03da\u03dc\u03dc\u03de\u03de\u03e0\u03e0\u03e2\u03f3\u0401\u040c\u040e\u044f\u0451\u045c\u045e\u0481\u0483\u0486\u0490\u04c4\u04c7\u04c8\u04cb\u04cc\u04d0\u04eb\u04ee\u04f5\u04f8\u04f9\u0531\u0556\u0559\u0559\u0561\u0586\u0591\u05a1\u05a3\u05b9\u05bb\u05bd\u05bf\u05bf\u05c1\u05c2\u05c4\u05c4\u05d0\u05ea\u05f0\u05f2\u0621\u063a\u0640\u0652\u0660\u0669\u0670\u06b7\u06ba\u06be\u06c0\u06ce\u06d0\u06d3\u06d5\u06e8\u06ea\u06ed\u06f0\u06f9\u0901\u0903\u0905\u0939\u093c\u094d\u0951\u0954\u0958\u0963\u0966\u096f\u0981\u0983\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6\u09b9\u09bc\u09bc\u09be\u09c4\u09c7\u09c8\u09cb\u09cd\u09d7\u09d7\u09dc\u09dd\u09df\u09e3\u09e6\u09f1\u0a02\u0a02\u0a05\u0a0a\u0a0f\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3c\u0a3e\u0a42\u0a47\u0a48\u0a4b\u0a4d\u0a59\u0a5c\u0a5e\u0a5e\u0a66\u0a74\u0a81\u0a83\u0a85\u0a8b\u0a8d\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abc\u0ac5\u0ac7\u0ac9\u0acb\u0acd\u0ae0\u0ae0\u0ae6\u0aef\u0b01\u0b03\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b36\u0b39\u0b3c\u0b43\u0b47\u0b48\u0b4b\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f\u0b61\u0b66\u0b6f\u0b82\u0b83\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb5\u0bb7\u0bb9\u0bbe\u0bc2\u0bc6\u0bc8\u0bca\u0bcd\u0bd7\u0bd7\u0be7\u0bef\u0c01\u0c03\u0c05\u0c0c\u0c0e\u0c10\u0c12\u0c28\u0c2a\u0c33\u0c35\u0c39\u0c3e\u0c44\u0c46\u0c48\u0c4a\u0c4d\u0c55\u0c56\u0c60\u0c61\u0c66\u0c6f\u0c82\u0c83\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cbe\u0cc4\u0cc6\u0cc8\u0cca\u0ccd\u0cd5\u0cd6\u0cde\u0cde\u0ce0\u0ce1\u0ce6\u0cef\u0d02\u0d03\u0d05\u0d0c\u0d0e\u0d10\u0d12\u0d28\u0d2a\u0d39\u0d3e\u0d43\u0d46\u0d48\u0d4a\u0d4d\u0d57\u0d57\u0d60\u0d61\u0d66\u0d6f\u0e01\u0e2e\u0e30\u0e3a\u0e40\u0e4e\u0e50\u0e59\u0e81\u0e82\u0e84\u0e84\u0e87\u0e88\u0e8a\u0e8a\u0e8d\u0e8d\u0e94\u0e97\u0e99\u0e9f\u0ea1\u0ea3\u0ea5\u0ea5\u0ea7\u0ea7\u0eaa\u0eab\u0ead\u0eae\u0eb0\u0eb9\u0ebb\u0ebd\u0ec0\u0ec4\u0ec6\u0ec6\u0ec8\u0ecd\u0ed0\u0ed9\u0f18\u0f19\u0f20\u0f29\u0f35\u0f35\u0f37\u0f37\u0f39\u0f39\u0f3e\u0f47\u0f49\u0f69\u0f71\u0f84\u0f86\u0f8b\u0f90\u0f95\u0f97\u0f97\u0f99\u0fad\u0fb1\u0fb7\u0fb9\u0fb9\u10a0\u10c5\u10d0\u10f6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110b\u110c\u110e\u1112\u113c\u113c\u113e\u113e\u1140\u1140\u114c\u114c\u114e\u114e\u1150\u1150\u1154\u1155\u1159\u1159\u115f\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116d\u116e\u1172\u1173\u1175\u1175\u119e\u119e\u11a8\u11a8\u11ab\u11ab\u11ae\u11af\u11b7\u11b8\u11ba\u11ba\u11bc\u11c2\u11eb\u11eb\u11f0\u11f0\u11f9\u11f9\u1e00\u1e9b\u1ea0\u1ef9\u1f00\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u20d0\u20dc\u20e1\u20e1\u2126\u2126\u212a\u212b\u212e\u212e\u2180\u2182\u3005\u3005\u3007\u3007\u3021\u302f\u3031\u3035\u3041\u3094\u3099\u309a\u309d\u309e\u30a1\u30fa\u30fc\u30fe\u3105\u312c\u4e00\u9fa5\uac00\ud7a3"),mZ(nNt,lnt,e),mZ(tNt,lnt,$Fn(e)),ydn(e=new M0(4),dnt),Yxn(e,95,95),Yxn(e,58,58),mZ(nNt,bnt,e),mZ(tNt,bnt,$Fn(e))),BB(SJ(t?nNt:tNt,n),136)}function yWn(n){V$n(n.a,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anySimpleType"])),V$n(n.b,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anyType",F9n,K9n])),V$n(BB(Wtn(QQ(n.b),0),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,t8n,":mixed"])),V$n(BB(Wtn(QQ(n.b),1),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,M7n,P7n,t8n,":1",D7n,"lax"])),V$n(BB(Wtn(QQ(n.b),2),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,p7n,M7n,P7n,t8n,":2",D7n,"lax"])),V$n(n.c,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"anyURI",T7n,y7n])),V$n(n.d,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"base64Binary",T7n,y7n])),V$n(n.e,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,$Wn,T7n,y7n])),V$n(n.f,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"boolean:Object",J9n,$Wn])),V$n(n.g,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,S9n])),V$n(n.i,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"byte:Object",J9n,S9n])),V$n(n.j,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"date",T7n,y7n])),V$n(n.k,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"dateTime",T7n,y7n])),V$n(n.n,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"decimal",T7n,y7n])),V$n(n.o,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,C9n,T7n,y7n])),V$n(n.p,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"double:Object",J9n,C9n])),V$n(n.q,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"duration",T7n,y7n])),V$n(n.s,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"ENTITIES",J9n,R7n,K7n,"1"])),V$n(n.r,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,R7n,k7n,_7n])),V$n(n.t,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,_7n,J9n,F7n])),V$n(n.u,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,I9n,T7n,y7n])),V$n(n.v,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"float:Object",J9n,I9n])),V$n(n.w,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gDay",T7n,y7n])),V$n(n.B,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gMonth",T7n,y7n])),V$n(n.A,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gMonthDay",T7n,y7n])),V$n(n.C,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gYear",T7n,y7n])),V$n(n.D,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"gYearMonth",T7n,y7n])),V$n(n.F,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"hexBinary",T7n,y7n])),V$n(n.G,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"ID",J9n,F7n])),V$n(n.H,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"IDREF",J9n,F7n])),V$n(n.J,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"IDREFS",J9n,B7n,K7n,"1"])),V$n(n.I,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,B7n,k7n,"IDREF"])),V$n(n.K,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,O9n])),V$n(n.M,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,H7n])),V$n(n.L,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"int:Object",J9n,O9n])),V$n(n.P,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"language",J9n,q7n,G7n,z7n])),V$n(n.Q,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,A9n])),V$n(n.R,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"long:Object",J9n,A9n])),V$n(n.S,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"Name",J9n,q7n,G7n,U7n])),V$n(n.T,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,F7n,J9n,"Name",G7n,X7n])),V$n(n.U,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"negativeInteger",J9n,W7n,V7n,"-1"])),V$n(n.V,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,Q7n,J9n,q7n,G7n,"\\c+"])),V$n(n.X,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"NMTOKENS",J9n,Y7n,K7n,"1"])),V$n(n.W,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,Y7n,k7n,Q7n])),V$n(n.Y,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,J7n,J9n,H7n,Z7n,"0"])),V$n(n.Z,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,W7n,J9n,H7n,V7n,"0"])),V$n(n.$,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,nnt,J9n,NWn,T7n,"replace"])),V$n(n._,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"NOTATION",T7n,y7n])),V$n(n.ab,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"positiveInteger",J9n,J7n,Z7n,"1"])),V$n(n.bb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"processingInstruction_._type",F9n,"empty"])),V$n(BB(Wtn(QQ(n.bb),0),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"data"])),V$n(BB(Wtn(QQ(n.bb),1),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,Y6n])),V$n(n.cb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"QName",T7n,y7n])),V$n(n.db,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,$9n])),V$n(n.eb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"short:Object",J9n,$9n])),V$n(n.fb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"simpleAnyType",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),0),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":3",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),1),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":4",F9n,d7n])),V$n(BB(Wtn(QQ(n.fb),2),18),_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,":5",F9n,d7n])),V$n(n.gb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,NWn,T7n,"preserve"])),V$n(n.hb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"time",T7n,y7n])),V$n(n.ib,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,q7n,J9n,nnt,T7n,y7n])),V$n(n.jb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,tnt,V7n,"255",Z7n,"0"])),V$n(n.kb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedByte:Object",J9n,tnt])),V$n(n.lb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,ent,V7n,"4294967295",Z7n,"0"])),V$n(n.mb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedInt:Object",J9n,ent])),V$n(n.nb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedLong",J9n,J7n,V7n,int,Z7n,"0"])),V$n(n.ob,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,rnt,V7n,"65535",Z7n,"0"])),V$n(n.pb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"unsignedShort:Object",J9n,rnt])),V$n(n.qb,_9n,Pun(Gk(Qtt,1),sVn,2,6,[t8n,"",F9n,K9n])),V$n(BB(Wtn(QQ(n.qb),0),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,m7n,t8n,":mixed"])),V$n(BB(Wtn(QQ(n.qb),1),18),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"xmlns:prefix"])),V$n(BB(Wtn(QQ(n.qb),2),18),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,g7n,t8n,"xsi:schemaLocation"])),V$n(BB(Wtn(QQ(n.qb),3),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,"cDATA",j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),4),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,"comment",j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),5),18),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,cnt,j7n,E7n])),V$n(BB(Wtn(QQ(n.qb),6),34),_9n,Pun(Gk(Qtt,1),sVn,2,6,[F9n,v7n,t8n,O6n,j7n,E7n]))}function kWn(n){return mK("_UI_EMFDiagnostic_marker",n)?"EMF Problem":mK("_UI_CircularContainment_diagnostic",n)?"An object may not circularly contain itself":mK(w8n,n)?"Wrong character.":mK(d8n,n)?"Invalid reference number.":mK(g8n,n)?"A character is required after \\.":mK(p8n,n)?"'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?":mK(v8n,n)?"'(?<' or '(?<!' is expected.":mK(m8n,n)?"A comment is not terminated.":mK(y8n,n)?"')' is expected.":mK(k8n,n)?"Unexpected end of the pattern in a modifier group.":mK(j8n,n)?"':' is expected.":mK(E8n,n)?"Unexpected end of the pattern in a conditional group.":mK(T8n,n)?"A back reference or an anchor or a lookahead or a look-behind is expected in a conditional pattern.":mK(M8n,n)?"There are more than three choices in a conditional group.":mK(S8n,n)?"A character in U+0040-U+005f must follow \\c.":mK(P8n,n)?"A '{' is required before a character category.":mK(C8n,n)?"A property name is not closed by '}'.":mK(I8n,n)?"Unexpected meta character.":mK(O8n,n)?"Unknown property.":mK(A8n,n)?"A POSIX character class must be closed by ':]'.":mK($8n,n)?"Unexpected end of the pattern in a character class.":mK(L8n,n)?"Unknown name for a POSIX character class.":mK("parser.cc.4",n)?"'-' is invalid here.":mK(N8n,n)?"']' is expected.":mK(x8n,n)?"'[' is invalid in a character class. Write '\\['.":mK(D8n,n)?"']' is invalid in a character class. Write '\\]'.":mK(R8n,n)?"'-' is an invalid character range. Write '\\-'.":mK(K8n,n)?"'[' is expected.":mK(_8n,n)?"')' or '-[' or '+[' or '&[' is expected.":mK(F8n,n)?"The range end code point is less than the start code point.":mK(B8n,n)?"Invalid Unicode hex notation.":mK(H8n,n)?"Overflow in a hex notation.":mK(q8n,n)?"'\\x{' must be closed by '}'.":mK(G8n,n)?"Invalid Unicode code point.":mK(z8n,n)?"An anchor must not be here.":mK(U8n,n)?"This expression is not supported in the current option setting.":mK(X8n,n)?"Invalid quantifier. A digit is expected.":mK(W8n,n)?"Invalid quantifier. Invalid quantity or a '}' is missing.":mK(V8n,n)?"Invalid quantifier. A digit or '}' is expected.":mK(Q8n,n)?"Invalid quantifier. A min quantity must be <= a max quantity.":mK(Y8n,n)?"Invalid quantifier. A quantity value overflow.":mK("_UI_PackageRegistry_extensionpoint",n)?"Ecore Package Registry for Generated Packages":mK("_UI_DynamicPackageRegistry_extensionpoint",n)?"Ecore Package Registry for Dynamic Packages":mK("_UI_FactoryRegistry_extensionpoint",n)?"Ecore Factory Override Registry":mK("_UI_URIExtensionParserRegistry_extensionpoint",n)?"URI Extension Parser Registry":mK("_UI_URIProtocolParserRegistry_extensionpoint",n)?"URI Protocol Parser Registry":mK("_UI_URIContentParserRegistry_extensionpoint",n)?"URI Content Parser Registry":mK("_UI_ContentHandlerRegistry_extensionpoint",n)?"Content Handler Registry":mK("_UI_URIMappingRegistry_extensionpoint",n)?"URI Converter Mapping Registry":mK("_UI_PackageRegistryImplementation_extensionpoint",n)?"Ecore Package Registry Implementation":mK("_UI_ValidationDelegateRegistry_extensionpoint",n)?"Validation Delegate Registry":mK("_UI_SettingDelegateRegistry_extensionpoint",n)?"Feature Setting Delegate Factory Registry":mK("_UI_InvocationDelegateRegistry_extensionpoint",n)?"Operation Invocation Delegate Factory Registry":mK("_UI_EClassInterfaceNotAbstract_diagnostic",n)?"A class that is an interface must also be abstract":mK("_UI_EClassNoCircularSuperTypes_diagnostic",n)?"A class may not be a super type of itself":mK("_UI_EClassNotWellFormedMapEntryNoInstanceClassName_diagnostic",n)?"A class that inherits from a map entry class must have instance class name 'java.util.Map$Entry'":mK("_UI_EReferenceOppositeOfOppositeInconsistent_diagnostic",n)?"The opposite of the opposite may not be a reference different from this one":mK("_UI_EReferenceOppositeNotFeatureOfType_diagnostic",n)?"The opposite must be a feature of the reference's type":mK("_UI_EReferenceTransientOppositeNotTransient_diagnostic",n)?"The opposite of a transient reference must be transient if it is proxy resolving":mK("_UI_EReferenceOppositeBothContainment_diagnostic",n)?"The opposite of a containment reference must not be a containment reference":mK("_UI_EReferenceConsistentUnique_diagnostic",n)?"A containment or bidirectional reference must be unique if its upper bound is different from 1":mK("_UI_ETypedElementNoType_diagnostic",n)?"The typed element must have a type":mK("_UI_EAttributeNoDataType_diagnostic",n)?"The generic attribute type must not refer to a class":mK("_UI_EReferenceNoClass_diagnostic",n)?"The generic reference type must not refer to a data type":mK("_UI_EGenericTypeNoTypeParameterAndClassifier_diagnostic",n)?"A generic type can't refer to both a type parameter and a classifier":mK("_UI_EGenericTypeNoClass_diagnostic",n)?"A generic super type must refer to a class":mK("_UI_EGenericTypeNoTypeParameterOrClassifier_diagnostic",n)?"A generic type in this context must refer to a classifier or a type parameter":mK("_UI_EGenericTypeBoundsOnlyForTypeArgument_diagnostic",n)?"A generic type may have bounds only when used as a type argument":mK("_UI_EGenericTypeNoUpperAndLowerBound_diagnostic",n)?"A generic type must not have both a lower and an upper bound":mK("_UI_EGenericTypeNoTypeParameterOrClassifierAndBound_diagnostic",n)?"A generic type with bounds must not also refer to a type parameter or classifier":mK("_UI_EGenericTypeNoArguments_diagnostic",n)?"A generic type may have arguments only if it refers to a classifier":mK("_UI_EGenericTypeOutOfScopeTypeParameter_diagnostic",n)?"A generic type may only refer to a type parameter that is in scope":n}function jWn(n){var t,e,i,r,c,a,u;n.r||(n.r=!0,Nrn(n,"graph"),xrn(n,"graph"),Drn(n,y6n),cun(n.o,"T"),f9(kY(n.a),n.p),f9(kY(n.f),n.a),f9(kY(n.n),n.f),f9(kY(n.g),n.n),f9(kY(n.c),n.n),f9(kY(n.i),n.c),f9(kY(n.j),n.c),f9(kY(n.d),n.f),f9(kY(n.e),n.a),z0(n.p,Xrt,OJn,!0,!0,!1),u=Tun(a=msn(n.p,n.p,"setProperty")),t=ZV(n.o),e=new Kp,f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),kEn(e,i=nQ(u)),Ujn(a,t,j6n),Ujn(a,t=nQ(u),E6n),u=Tun(a=msn(n.p,null,"getProperty")),t=ZV(n.o),e=nQ(u),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),Ujn(a,t,j6n),(c=HTn(a,t=nQ(u),null))&&c.Fi(),a=msn(n.p,n.wb.e,"hasProperty"),t=ZV(n.o),e=new Kp,f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),Ujn(a,t,j6n),$yn(a=msn(n.p,n.p,"copyProperties"),n.p,T6n),a=msn(n.p,null,"getAllProperties"),t=ZV(n.wb.P),e=ZV(n.o),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),i=new Kp,f9((!e.d&&(e.d=new $L(VAt,e,1)),e.d),i),e=ZV(n.wb.M),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),(r=HTn(a,t,null))&&r.Fi(),z0(n.a,NOt,z5n,!0,!1,!0),Myn(BB(Wtn(QQ(n.a),0),18),n.k,null,M6n,0,-1,NOt,!1,!1,!0,!0,!1,!1,!1),z0(n.f,DOt,X5n,!0,!1,!0),Myn(BB(Wtn(QQ(n.f),0),18),n.g,BB(Wtn(QQ(n.g),0),18),"labels",0,-1,DOt,!1,!1,!0,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.f),1),34),n.wb._,S6n,null,0,1,DOt,!1,!1,!0,!1,!0,!1),z0(n.n,ROt,"ElkShape",!0,!1,!0),ucn(BB(Wtn(QQ(n.n),0),34),n.wb.t,P6n,WQn,1,1,ROt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.n),1),34),n.wb.t,C6n,WQn,1,1,ROt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.n),2),34),n.wb.t,"x",WQn,1,1,ROt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.n),3),34),n.wb.t,"y",WQn,1,1,ROt,!1,!1,!0,!1,!0,!1),$yn(a=msn(n.n,null,"setDimensions"),n.wb.t,C6n),$yn(a,n.wb.t,P6n),$yn(a=msn(n.n,null,"setLocation"),n.wb.t,"x"),$yn(a,n.wb.t,"y"),z0(n.g,zOt,Z5n,!1,!1,!0),Myn(BB(Wtn(QQ(n.g),0),18),n.f,BB(Wtn(QQ(n.f),0),18),I6n,0,1,zOt,!1,!1,!0,!1,!1,!1,!1),ucn(BB(Wtn(QQ(n.g),1),34),n.wb._,O6n,"",0,1,zOt,!1,!1,!0,!1,!0,!1),z0(n.c,KOt,W5n,!0,!1,!0),Myn(BB(Wtn(QQ(n.c),0),18),n.d,BB(Wtn(QQ(n.d),1),18),"outgoingEdges",0,-1,KOt,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.c),1),18),n.d,BB(Wtn(QQ(n.d),2),18),"incomingEdges",0,-1,KOt,!1,!1,!0,!1,!0,!1,!1),z0(n.i,UOt,n6n,!1,!1,!0),Myn(BB(Wtn(QQ(n.i),0),18),n.j,BB(Wtn(QQ(n.j),0),18),"ports",0,-1,UOt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.i),1),18),n.i,BB(Wtn(QQ(n.i),2),18),A6n,0,-1,UOt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.i),2),18),n.i,BB(Wtn(QQ(n.i),1),18),I6n,0,1,UOt,!1,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.i),3),18),n.d,BB(Wtn(QQ(n.d),0),18),"containedEdges",0,-1,UOt,!1,!1,!0,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.i),4),34),n.wb.e,$6n,null,0,1,UOt,!0,!0,!1,!1,!0,!0),z0(n.j,XOt,t6n,!1,!1,!0),Myn(BB(Wtn(QQ(n.j),0),18),n.i,BB(Wtn(QQ(n.i),0),18),I6n,0,1,XOt,!1,!1,!0,!1,!1,!1,!1),z0(n.d,_Ot,V5n,!1,!1,!0),Myn(BB(Wtn(QQ(n.d),0),18),n.i,BB(Wtn(QQ(n.i),3),18),"containingNode",0,1,_Ot,!1,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.d),1),18),n.c,BB(Wtn(QQ(n.c),0),18),L6n,0,-1,_Ot,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.d),2),18),n.c,BB(Wtn(QQ(n.c),1),18),N6n,0,-1,_Ot,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.d),3),18),n.e,BB(Wtn(QQ(n.e),5),18),x6n,0,-1,_Ot,!1,!1,!0,!0,!1,!1,!1),ucn(BB(Wtn(QQ(n.d),4),34),n.wb.e,"hyperedge",null,0,1,_Ot,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),5),34),n.wb.e,$6n,null,0,1,_Ot,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),6),34),n.wb.e,"selfloop",null,0,1,_Ot,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.d),7),34),n.wb.e,"connected",null,0,1,_Ot,!0,!0,!1,!1,!0,!0),z0(n.b,xOt,U5n,!1,!1,!0),ucn(BB(Wtn(QQ(n.b),0),34),n.wb.t,"x",WQn,1,1,xOt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.b),1),34),n.wb.t,"y",WQn,1,1,xOt,!1,!1,!0,!1,!0,!1),$yn(a=msn(n.b,null,"set"),n.wb.t,"x"),$yn(a,n.wb.t,"y"),z0(n.e,FOt,Q5n,!1,!1,!0),ucn(BB(Wtn(QQ(n.e),0),34),n.wb.t,"startX",null,0,1,FOt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.e),1),34),n.wb.t,"startY",null,0,1,FOt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.e),2),34),n.wb.t,"endX",null,0,1,FOt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.e),3),34),n.wb.t,"endY",null,0,1,FOt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.e),4),18),n.b,null,D6n,0,-1,FOt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.e),5),18),n.d,BB(Wtn(QQ(n.d),3),18),I6n,0,1,FOt,!1,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.e),6),18),n.c,null,R6n,0,1,FOt,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.e),7),18),n.c,null,K6n,0,1,FOt,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.e),8),18),n.e,BB(Wtn(QQ(n.e),9),18),_6n,0,-1,FOt,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.e),9),18),n.e,BB(Wtn(QQ(n.e),8),18),F6n,0,-1,FOt,!1,!1,!0,!1,!0,!1,!1),ucn(BB(Wtn(QQ(n.e),10),34),n.wb._,S6n,null,0,1,FOt,!1,!1,!0,!1,!0,!1),$yn(a=msn(n.e,null,"setStartLocation"),n.wb.t,"x"),$yn(a,n.wb.t,"y"),$yn(a=msn(n.e,null,"setEndLocation"),n.wb.t,"x"),$yn(a,n.wb.t,"y"),z0(n.k,Hnt,"ElkPropertyToValueMapEntry",!1,!1,!1),t=ZV(n.o),e=new Kp,f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),_On(BB(Wtn(QQ(n.k),0),34),t,"key",Hnt,!1,!1,!0,!1),ucn(BB(Wtn(QQ(n.k),1),34),n.s,E6n,null,0,1,Hnt,!1,!1,!0,!1,!0,!1),dV(n.o,lMt,"IProperty",!0),dV(n.s,Ant,"PropertyValue",!0),Lhn(n,y6n))}function EWn(){EWn=O,(JLt=x8(NNt,v6n,25,BQn,15,1))[9]=35,JLt[10]=19,JLt[13]=19,JLt[32]=51,JLt[33]=49,JLt[34]=33,yU(JLt,35,38,49),JLt[38]=1,yU(JLt,39,45,49),yU(JLt,45,47,-71),JLt[47]=49,yU(JLt,48,58,-71),JLt[58]=61,JLt[59]=49,JLt[60]=1,JLt[61]=49,JLt[62]=33,yU(JLt,63,65,49),yU(JLt,65,91,-3),yU(JLt,91,93,33),JLt[93]=1,JLt[94]=33,JLt[95]=-3,JLt[96]=33,yU(JLt,97,123,-3),yU(JLt,123,183,33),JLt[183]=-87,yU(JLt,184,192,33),yU(JLt,192,215,-19),JLt[215]=33,yU(JLt,216,247,-19),JLt[247]=33,yU(JLt,248,306,-19),yU(JLt,306,308,33),yU(JLt,308,319,-19),yU(JLt,319,321,33),yU(JLt,321,329,-19),JLt[329]=33,yU(JLt,330,383,-19),JLt[383]=33,yU(JLt,384,452,-19),yU(JLt,452,461,33),yU(JLt,461,497,-19),yU(JLt,497,500,33),yU(JLt,500,502,-19),yU(JLt,502,506,33),yU(JLt,506,536,-19),yU(JLt,536,592,33),yU(JLt,592,681,-19),yU(JLt,681,699,33),yU(JLt,699,706,-19),yU(JLt,706,720,33),yU(JLt,720,722,-87),yU(JLt,722,768,33),yU(JLt,768,838,-87),yU(JLt,838,864,33),yU(JLt,864,866,-87),yU(JLt,866,902,33),JLt[902]=-19,JLt[903]=-87,yU(JLt,904,907,-19),JLt[907]=33,JLt[908]=-19,JLt[909]=33,yU(JLt,910,930,-19),JLt[930]=33,yU(JLt,931,975,-19),JLt[975]=33,yU(JLt,976,983,-19),yU(JLt,983,986,33),JLt[986]=-19,JLt[987]=33,JLt[988]=-19,JLt[989]=33,JLt[990]=-19,JLt[991]=33,JLt[992]=-19,JLt[993]=33,yU(JLt,994,1012,-19),yU(JLt,1012,1025,33),yU(JLt,1025,1037,-19),JLt[1037]=33,yU(JLt,1038,1104,-19),JLt[1104]=33,yU(JLt,1105,1117,-19),JLt[1117]=33,yU(JLt,1118,1154,-19),JLt[1154]=33,yU(JLt,1155,1159,-87),yU(JLt,1159,1168,33),yU(JLt,1168,1221,-19),yU(JLt,1221,1223,33),yU(JLt,1223,1225,-19),yU(JLt,1225,1227,33),yU(JLt,1227,1229,-19),yU(JLt,1229,1232,33),yU(JLt,1232,1260,-19),yU(JLt,1260,1262,33),yU(JLt,1262,1270,-19),yU(JLt,1270,1272,33),yU(JLt,1272,1274,-19),yU(JLt,1274,1329,33),yU(JLt,1329,1367,-19),yU(JLt,1367,1369,33),JLt[1369]=-19,yU(JLt,1370,1377,33),yU(JLt,1377,1415,-19),yU(JLt,1415,1425,33),yU(JLt,1425,1442,-87),JLt[1442]=33,yU(JLt,1443,1466,-87),JLt[1466]=33,yU(JLt,1467,1470,-87),JLt[1470]=33,JLt[1471]=-87,JLt[1472]=33,yU(JLt,1473,1475,-87),JLt[1475]=33,JLt[1476]=-87,yU(JLt,1477,1488,33),yU(JLt,1488,1515,-19),yU(JLt,1515,1520,33),yU(JLt,1520,1523,-19),yU(JLt,1523,1569,33),yU(JLt,1569,1595,-19),yU(JLt,1595,1600,33),JLt[1600]=-87,yU(JLt,1601,1611,-19),yU(JLt,1611,1619,-87),yU(JLt,1619,1632,33),yU(JLt,1632,1642,-87),yU(JLt,1642,1648,33),JLt[1648]=-87,yU(JLt,1649,1720,-19),yU(JLt,1720,1722,33),yU(JLt,1722,1727,-19),JLt[1727]=33,yU(JLt,1728,1743,-19),JLt[1743]=33,yU(JLt,1744,1748,-19),JLt[1748]=33,JLt[1749]=-19,yU(JLt,1750,1765,-87),yU(JLt,1765,1767,-19),yU(JLt,1767,1769,-87),JLt[1769]=33,yU(JLt,1770,1774,-87),yU(JLt,1774,1776,33),yU(JLt,1776,1786,-87),yU(JLt,1786,2305,33),yU(JLt,2305,2308,-87),JLt[2308]=33,yU(JLt,2309,2362,-19),yU(JLt,2362,2364,33),JLt[2364]=-87,JLt[2365]=-19,yU(JLt,2366,2382,-87),yU(JLt,2382,2385,33),yU(JLt,2385,2389,-87),yU(JLt,2389,2392,33),yU(JLt,2392,2402,-19),yU(JLt,2402,2404,-87),yU(JLt,2404,2406,33),yU(JLt,2406,2416,-87),yU(JLt,2416,2433,33),yU(JLt,2433,2436,-87),JLt[2436]=33,yU(JLt,2437,2445,-19),yU(JLt,2445,2447,33),yU(JLt,2447,2449,-19),yU(JLt,2449,2451,33),yU(JLt,2451,2473,-19),JLt[2473]=33,yU(JLt,2474,2481,-19),JLt[2481]=33,JLt[2482]=-19,yU(JLt,2483,2486,33),yU(JLt,2486,2490,-19),yU(JLt,2490,2492,33),JLt[2492]=-87,JLt[2493]=33,yU(JLt,2494,2501,-87),yU(JLt,2501,2503,33),yU(JLt,2503,2505,-87),yU(JLt,2505,2507,33),yU(JLt,2507,2510,-87),yU(JLt,2510,2519,33),JLt[2519]=-87,yU(JLt,2520,2524,33),yU(JLt,2524,2526,-19),JLt[2526]=33,yU(JLt,2527,2530,-19),yU(JLt,2530,2532,-87),yU(JLt,2532,2534,33),yU(JLt,2534,2544,-87),yU(JLt,2544,2546,-19),yU(JLt,2546,2562,33),JLt[2562]=-87,yU(JLt,2563,2565,33),yU(JLt,2565,2571,-19),yU(JLt,2571,2575,33),yU(JLt,2575,2577,-19),yU(JLt,2577,2579,33),yU(JLt,2579,2601,-19),JLt[2601]=33,yU(JLt,2602,2609,-19),JLt[2609]=33,yU(JLt,2610,2612,-19),JLt[2612]=33,yU(JLt,2613,2615,-19),JLt[2615]=33,yU(JLt,2616,2618,-19),yU(JLt,2618,2620,33),JLt[2620]=-87,JLt[2621]=33,yU(JLt,2622,2627,-87),yU(JLt,2627,2631,33),yU(JLt,2631,2633,-87),yU(JLt,2633,2635,33),yU(JLt,2635,2638,-87),yU(JLt,2638,2649,33),yU(JLt,2649,2653,-19),JLt[2653]=33,JLt[2654]=-19,yU(JLt,2655,2662,33),yU(JLt,2662,2674,-87),yU(JLt,2674,2677,-19),yU(JLt,2677,2689,33),yU(JLt,2689,2692,-87),JLt[2692]=33,yU(JLt,2693,2700,-19),JLt[2700]=33,JLt[2701]=-19,JLt[2702]=33,yU(JLt,2703,2706,-19),JLt[2706]=33,yU(JLt,2707,2729,-19),JLt[2729]=33,yU(JLt,2730,2737,-19),JLt[2737]=33,yU(JLt,2738,2740,-19),JLt[2740]=33,yU(JLt,2741,2746,-19),yU(JLt,2746,2748,33),JLt[2748]=-87,JLt[2749]=-19,yU(JLt,2750,2758,-87),JLt[2758]=33,yU(JLt,2759,2762,-87),JLt[2762]=33,yU(JLt,2763,2766,-87),yU(JLt,2766,2784,33),JLt[2784]=-19,yU(JLt,2785,2790,33),yU(JLt,2790,2800,-87),yU(JLt,2800,2817,33),yU(JLt,2817,2820,-87),JLt[2820]=33,yU(JLt,2821,2829,-19),yU(JLt,2829,2831,33),yU(JLt,2831,2833,-19),yU(JLt,2833,2835,33),yU(JLt,2835,2857,-19),JLt[2857]=33,yU(JLt,2858,2865,-19),JLt[2865]=33,yU(JLt,2866,2868,-19),yU(JLt,2868,2870,33),yU(JLt,2870,2874,-19),yU(JLt,2874,2876,33),JLt[2876]=-87,JLt[2877]=-19,yU(JLt,2878,2884,-87),yU(JLt,2884,2887,33),yU(JLt,2887,2889,-87),yU(JLt,2889,2891,33),yU(JLt,2891,2894,-87),yU(JLt,2894,2902,33),yU(JLt,2902,2904,-87),yU(JLt,2904,2908,33),yU(JLt,2908,2910,-19),JLt[2910]=33,yU(JLt,2911,2914,-19),yU(JLt,2914,2918,33),yU(JLt,2918,2928,-87),yU(JLt,2928,2946,33),yU(JLt,2946,2948,-87),JLt[2948]=33,yU(JLt,2949,2955,-19),yU(JLt,2955,2958,33),yU(JLt,2958,2961,-19),JLt[2961]=33,yU(JLt,2962,2966,-19),yU(JLt,2966,2969,33),yU(JLt,2969,2971,-19),JLt[2971]=33,JLt[2972]=-19,JLt[2973]=33,yU(JLt,2974,2976,-19),yU(JLt,2976,2979,33),yU(JLt,2979,2981,-19),yU(JLt,2981,2984,33),yU(JLt,2984,2987,-19),yU(JLt,2987,2990,33),yU(JLt,2990,2998,-19),JLt[2998]=33,yU(JLt,2999,3002,-19),yU(JLt,3002,3006,33),yU(JLt,3006,3011,-87),yU(JLt,3011,3014,33),yU(JLt,3014,3017,-87),JLt[3017]=33,yU(JLt,3018,3022,-87),yU(JLt,3022,3031,33),JLt[3031]=-87,yU(JLt,3032,3047,33),yU(JLt,3047,3056,-87),yU(JLt,3056,3073,33),yU(JLt,3073,3076,-87),JLt[3076]=33,yU(JLt,3077,3085,-19),JLt[3085]=33,yU(JLt,3086,3089,-19),JLt[3089]=33,yU(JLt,3090,3113,-19),JLt[3113]=33,yU(JLt,3114,3124,-19),JLt[3124]=33,yU(JLt,3125,3130,-19),yU(JLt,3130,3134,33),yU(JLt,3134,3141,-87),JLt[3141]=33,yU(JLt,3142,3145,-87),JLt[3145]=33,yU(JLt,3146,3150,-87),yU(JLt,3150,3157,33),yU(JLt,3157,3159,-87),yU(JLt,3159,3168,33),yU(JLt,3168,3170,-19),yU(JLt,3170,3174,33),yU(JLt,3174,3184,-87),yU(JLt,3184,3202,33),yU(JLt,3202,3204,-87),JLt[3204]=33,yU(JLt,3205,3213,-19),JLt[3213]=33,yU(JLt,3214,3217,-19),JLt[3217]=33,yU(JLt,3218,3241,-19),JLt[3241]=33,yU(JLt,3242,3252,-19),JLt[3252]=33,yU(JLt,3253,3258,-19),yU(JLt,3258,3262,33),yU(JLt,3262,3269,-87),JLt[3269]=33,yU(JLt,3270,3273,-87),JLt[3273]=33,yU(JLt,3274,3278,-87),yU(JLt,3278,3285,33),yU(JLt,3285,3287,-87),yU(JLt,3287,3294,33),JLt[3294]=-19,JLt[3295]=33,yU(JLt,3296,3298,-19),yU(JLt,3298,3302,33),yU(JLt,3302,3312,-87),yU(JLt,3312,3330,33),yU(JLt,3330,3332,-87),JLt[3332]=33,yU(JLt,3333,3341,-19),JLt[3341]=33,yU(JLt,3342,3345,-19),JLt[3345]=33,yU(JLt,3346,3369,-19),JLt[3369]=33,yU(JLt,3370,3386,-19),yU(JLt,3386,3390,33),yU(JLt,3390,3396,-87),yU(JLt,3396,3398,33),yU(JLt,3398,3401,-87),JLt[3401]=33,yU(JLt,3402,3406,-87),yU(JLt,3406,3415,33),JLt[3415]=-87,yU(JLt,3416,3424,33),yU(JLt,3424,3426,-19),yU(JLt,3426,3430,33),yU(JLt,3430,3440,-87),yU(JLt,3440,3585,33),yU(JLt,3585,3631,-19),JLt[3631]=33,JLt[3632]=-19,JLt[3633]=-87,yU(JLt,3634,3636,-19),yU(JLt,3636,3643,-87),yU(JLt,3643,3648,33),yU(JLt,3648,3654,-19),yU(JLt,3654,3663,-87),JLt[3663]=33,yU(JLt,3664,3674,-87),yU(JLt,3674,3713,33),yU(JLt,3713,3715,-19),JLt[3715]=33,JLt[3716]=-19,yU(JLt,3717,3719,33),yU(JLt,3719,3721,-19),JLt[3721]=33,JLt[3722]=-19,yU(JLt,3723,3725,33),JLt[3725]=-19,yU(JLt,3726,3732,33),yU(JLt,3732,3736,-19),JLt[3736]=33,yU(JLt,3737,3744,-19),JLt[3744]=33,yU(JLt,3745,3748,-19),JLt[3748]=33,JLt[3749]=-19,JLt[3750]=33,JLt[3751]=-19,yU(JLt,3752,3754,33),yU(JLt,3754,3756,-19),JLt[3756]=33,yU(JLt,3757,3759,-19),JLt[3759]=33,JLt[3760]=-19,JLt[3761]=-87,yU(JLt,3762,3764,-19),yU(JLt,3764,3770,-87),JLt[3770]=33,yU(JLt,3771,3773,-87),JLt[3773]=-19,yU(JLt,3774,3776,33),yU(JLt,3776,3781,-19),JLt[3781]=33,JLt[3782]=-87,JLt[3783]=33,yU(JLt,3784,3790,-87),yU(JLt,3790,3792,33),yU(JLt,3792,3802,-87),yU(JLt,3802,3864,33),yU(JLt,3864,3866,-87),yU(JLt,3866,3872,33),yU(JLt,3872,3882,-87),yU(JLt,3882,3893,33),JLt[3893]=-87,JLt[3894]=33,JLt[3895]=-87,JLt[3896]=33,JLt[3897]=-87,yU(JLt,3898,3902,33),yU(JLt,3902,3904,-87),yU(JLt,3904,3912,-19),JLt[3912]=33,yU(JLt,3913,3946,-19),yU(JLt,3946,3953,33),yU(JLt,3953,3973,-87),JLt[3973]=33,yU(JLt,3974,3980,-87),yU(JLt,3980,3984,33),yU(JLt,3984,3990,-87),JLt[3990]=33,JLt[3991]=-87,JLt[3992]=33,yU(JLt,3993,4014,-87),yU(JLt,4014,4017,33),yU(JLt,4017,4024,-87),JLt[4024]=33,JLt[4025]=-87,yU(JLt,4026,4256,33),yU(JLt,4256,4294,-19),yU(JLt,4294,4304,33),yU(JLt,4304,4343,-19),yU(JLt,4343,4352,33),JLt[4352]=-19,JLt[4353]=33,yU(JLt,4354,4356,-19),JLt[4356]=33,yU(JLt,4357,4360,-19),JLt[4360]=33,JLt[4361]=-19,JLt[4362]=33,yU(JLt,4363,4365,-19),JLt[4365]=33,yU(JLt,4366,4371,-19),yU(JLt,4371,4412,33),JLt[4412]=-19,JLt[4413]=33,JLt[4414]=-19,JLt[4415]=33,JLt[4416]=-19,yU(JLt,4417,4428,33),JLt[4428]=-19,JLt[4429]=33,JLt[4430]=-19,JLt[4431]=33,JLt[4432]=-19,yU(JLt,4433,4436,33),yU(JLt,4436,4438,-19),yU(JLt,4438,4441,33),JLt[4441]=-19,yU(JLt,4442,4447,33),yU(JLt,4447,4450,-19),JLt[4450]=33,JLt[4451]=-19,JLt[4452]=33,JLt[4453]=-19,JLt[4454]=33,JLt[4455]=-19,JLt[4456]=33,JLt[4457]=-19,yU(JLt,4458,4461,33),yU(JLt,4461,4463,-19),yU(JLt,4463,4466,33),yU(JLt,4466,4468,-19),JLt[4468]=33,JLt[4469]=-19,yU(JLt,4470,4510,33),JLt[4510]=-19,yU(JLt,4511,4520,33),JLt[4520]=-19,yU(JLt,4521,4523,33),JLt[4523]=-19,yU(JLt,4524,4526,33),yU(JLt,4526,4528,-19),yU(JLt,4528,4535,33),yU(JLt,4535,4537,-19),JLt[4537]=33,JLt[4538]=-19,JLt[4539]=33,yU(JLt,4540,4547,-19),yU(JLt,4547,4587,33),JLt[4587]=-19,yU(JLt,4588,4592,33),JLt[4592]=-19,yU(JLt,4593,4601,33),JLt[4601]=-19,yU(JLt,4602,7680,33),yU(JLt,7680,7836,-19),yU(JLt,7836,7840,33),yU(JLt,7840,7930,-19),yU(JLt,7930,7936,33),yU(JLt,7936,7958,-19),yU(JLt,7958,7960,33),yU(JLt,7960,7966,-19),yU(JLt,7966,7968,33),yU(JLt,7968,8006,-19),yU(JLt,8006,8008,33),yU(JLt,8008,8014,-19),yU(JLt,8014,8016,33),yU(JLt,8016,8024,-19),JLt[8024]=33,JLt[8025]=-19,JLt[8026]=33,JLt[8027]=-19,JLt[8028]=33,JLt[8029]=-19,JLt[8030]=33,yU(JLt,8031,8062,-19),yU(JLt,8062,8064,33),yU(JLt,8064,8117,-19),JLt[8117]=33,yU(JLt,8118,8125,-19),JLt[8125]=33,JLt[8126]=-19,yU(JLt,8127,8130,33),yU(JLt,8130,8133,-19),JLt[8133]=33,yU(JLt,8134,8141,-19),yU(JLt,8141,8144,33),yU(JLt,8144,8148,-19),yU(JLt,8148,8150,33),yU(JLt,8150,8156,-19),yU(JLt,8156,8160,33),yU(JLt,8160,8173,-19),yU(JLt,8173,8178,33),yU(JLt,8178,8181,-19),JLt[8181]=33,yU(JLt,8182,8189,-19),yU(JLt,8189,8400,33),yU(JLt,8400,8413,-87),yU(JLt,8413,8417,33),JLt[8417]=-87,yU(JLt,8418,8486,33),JLt[8486]=-19,yU(JLt,8487,8490,33),yU(JLt,8490,8492,-19),yU(JLt,8492,8494,33),JLt[8494]=-19,yU(JLt,8495,8576,33),yU(JLt,8576,8579,-19),yU(JLt,8579,12293,33),JLt[12293]=-87,JLt[12294]=33,JLt[12295]=-19,yU(JLt,12296,12321,33),yU(JLt,12321,12330,-19),yU(JLt,12330,12336,-87),JLt[12336]=33,yU(JLt,12337,12342,-87),yU(JLt,12342,12353,33),yU(JLt,12353,12437,-19),yU(JLt,12437,12441,33),yU(JLt,12441,12443,-87),yU(JLt,12443,12445,33),yU(JLt,12445,12447,-87),yU(JLt,12447,12449,33),yU(JLt,12449,12539,-19),JLt[12539]=33,yU(JLt,12540,12543,-87),yU(JLt,12543,12549,33),yU(JLt,12549,12589,-19),yU(JLt,12589,19968,33),yU(JLt,19968,40870,-19),yU(JLt,40870,44032,33),yU(JLt,44032,55204,-19),yU(JLt,55204,HQn,33),yU(JLt,57344,65534,33)}function TWn(n){var t,e,i,r,c,a,u;n.hb||(n.hb=!0,Nrn(n,"ecore"),xrn(n,"ecore"),Drn(n,V9n),cun(n.fb,"E"),cun(n.L,"T"),cun(n.P,"K"),cun(n.P,"V"),cun(n.cb,"E"),f9(kY(n.b),n.bb),f9(kY(n.a),n.Q),f9(kY(n.o),n.p),f9(kY(n.p),n.R),f9(kY(n.q),n.p),f9(kY(n.v),n.q),f9(kY(n.w),n.R),f9(kY(n.B),n.Q),f9(kY(n.R),n.Q),f9(kY(n.T),n.eb),f9(kY(n.U),n.R),f9(kY(n.V),n.eb),f9(kY(n.W),n.bb),f9(kY(n.bb),n.eb),f9(kY(n.eb),n.R),f9(kY(n.db),n.R),z0(n.b,BAt,l9n,!1,!1,!0),ucn(BB(Wtn(QQ(n.b),0),34),n.e,"iD",null,0,1,BAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.b),1),18),n.q,null,"eAttributeType",1,1,BAt,!0,!0,!1,!1,!0,!1,!0),z0(n.a,KAt,s9n,!1,!1,!0),ucn(BB(Wtn(QQ(n.a),0),34),n._,T6n,null,0,1,KAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.a),1),18),n.ab,null,"details",0,-1,KAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.a),2),18),n.Q,BB(Wtn(QQ(n.Q),0),18),"eModelElement",0,1,KAt,!0,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.a),3),18),n.S,null,"contents",0,-1,KAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.a),4),18),n.S,null,"references",0,-1,KAt,!1,!1,!0,!1,!0,!1,!1),z0(n.o,qAt,"EClass",!1,!1,!0),ucn(BB(Wtn(QQ(n.o),0),34),n.e,"abstract",null,0,1,qAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.o),1),34),n.e,"interface",null,0,1,qAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.o),2),18),n.o,null,"eSuperTypes",0,-1,qAt,!1,!1,!0,!1,!0,!0,!1),Myn(BB(Wtn(QQ(n.o),3),18),n.T,BB(Wtn(QQ(n.T),0),18),"eOperations",0,-1,qAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.o),4),18),n.b,null,"eAllAttributes",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),5),18),n.W,null,"eAllReferences",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),6),18),n.W,null,"eReferences",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),7),18),n.b,null,"eAttributes",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),8),18),n.W,null,"eAllContainments",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),9),18),n.T,null,"eAllOperations",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),10),18),n.bb,null,"eAllStructuralFeatures",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),11),18),n.o,null,"eAllSuperTypes",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.o),12),18),n.b,null,"eIDAttribute",0,1,qAt,!0,!0,!1,!1,!1,!1,!0),Myn(BB(Wtn(QQ(n.o),13),18),n.bb,BB(Wtn(QQ(n.bb),7),18),"eStructuralFeatures",0,-1,qAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.o),14),18),n.H,null,"eGenericSuperTypes",0,-1,qAt,!1,!1,!0,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.o),15),18),n.H,null,"eAllGenericSuperTypes",0,-1,qAt,!0,!0,!1,!1,!0,!1,!0),$yn(u=fin(BB(Wtn(VQ(n.o),0),59),n.e,"isSuperTypeOf"),n.o,"someClass"),fin(BB(Wtn(VQ(n.o),1),59),n.I,"getFeatureCount"),$yn(u=fin(BB(Wtn(VQ(n.o),2),59),n.bb,Z9n),n.I,"featureID"),$yn(u=fin(BB(Wtn(VQ(n.o),3),59),n.I,n7n),n.bb,t7n),$yn(u=fin(BB(Wtn(VQ(n.o),4),59),n.bb,Z9n),n._,"featureName"),fin(BB(Wtn(VQ(n.o),5),59),n.I,"getOperationCount"),$yn(u=fin(BB(Wtn(VQ(n.o),6),59),n.T,"getEOperation"),n.I,"operationID"),$yn(u=fin(BB(Wtn(VQ(n.o),7),59),n.I,e7n),n.T,i7n),$yn(u=fin(BB(Wtn(VQ(n.o),8),59),n.T,"getOverride"),n.T,i7n),$yn(u=fin(BB(Wtn(VQ(n.o),9),59),n.H,"getFeatureType"),n.bb,t7n),z0(n.p,HAt,b9n,!0,!1,!0),ucn(BB(Wtn(QQ(n.p),0),34),n._,"instanceClassName",null,0,1,HAt,!1,!0,!0,!0,!0,!1),t=ZV(n.L),e=s2(),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),_On(BB(Wtn(QQ(n.p),1),34),t,"instanceClass",HAt,!0,!0,!1,!0),ucn(BB(Wtn(QQ(n.p),2),34),n.M,r7n,null,0,1,HAt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.p),3),34),n._,"instanceTypeName",null,0,1,HAt,!1,!0,!0,!0,!0,!1),Myn(BB(Wtn(QQ(n.p),4),18),n.U,BB(Wtn(QQ(n.U),3),18),"ePackage",0,1,HAt,!0,!1,!1,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.p),5),18),n.db,null,c7n,0,-1,HAt,!1,!1,!0,!0,!0,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.p),0),59),n.e,a7n),n.M,AWn),fin(BB(Wtn(VQ(n.p),1),59),n.I,"getClassifierID"),z0(n.q,GAt,"EDataType",!1,!1,!0),ucn(BB(Wtn(QQ(n.q),0),34),n.e,"serializable",a5n,0,1,GAt,!1,!1,!0,!1,!0,!1),z0(n.v,XAt,"EEnum",!1,!1,!0),Myn(BB(Wtn(QQ(n.v),0),18),n.w,BB(Wtn(QQ(n.w),3),18),"eLiterals",0,-1,XAt,!1,!1,!0,!0,!1,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.v),0),59),n.w,u7n),n._,t8n),$yn(u=fin(BB(Wtn(VQ(n.v),1),59),n.w,u7n),n.I,E6n),$yn(u=fin(BB(Wtn(VQ(n.v),2),59),n.w,"getEEnumLiteralByLiteral"),n._,"literal"),z0(n.w,WAt,w9n,!1,!1,!0),ucn(BB(Wtn(QQ(n.w),0),34),n.I,E6n,null,0,1,WAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.w),1),34),n.A,"instance",null,0,1,WAt,!0,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.w),2),34),n._,"literal",null,0,1,WAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.w),3),18),n.v,BB(Wtn(QQ(n.v),0),18),"eEnum",0,1,WAt,!0,!1,!1,!1,!1,!1,!1),z0(n.B,HOt,"EFactory",!1,!1,!0),Myn(BB(Wtn(QQ(n.B),0),18),n.U,BB(Wtn(QQ(n.U),2),18),"ePackage",1,1,HOt,!0,!1,!0,!1,!1,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.B),0),59),n.S,"create"),n.o,"eClass"),$yn(u=fin(BB(Wtn(VQ(n.B),1),59),n.M,"createFromString"),n.q,"eDataType"),$yn(u,n._,"literalValue"),$yn(u=fin(BB(Wtn(VQ(n.B),2),59),n._,"convertToString"),n.q,"eDataType"),$yn(u,n.M,"instanceValue"),z0(n.Q,BOt,Y5n,!0,!1,!0),Myn(BB(Wtn(QQ(n.Q),0),18),n.a,BB(Wtn(QQ(n.a),2),18),"eAnnotations",0,-1,BOt,!1,!1,!0,!0,!1,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.Q),0),59),n.a,"getEAnnotation"),n._,T6n),z0(n.R,qOt,J5n,!0,!1,!0),ucn(BB(Wtn(QQ(n.R),0),34),n._,t8n,null,0,1,qOt,!1,!1,!0,!1,!0,!1),z0(n.S,LOt,"EObject",!1,!1,!0),fin(BB(Wtn(VQ(n.S),0),59),n.o,"eClass"),fin(BB(Wtn(VQ(n.S),1),59),n.e,"eIsProxy"),fin(BB(Wtn(VQ(n.S),2),59),n.X,"eResource"),fin(BB(Wtn(VQ(n.S),3),59),n.S,"eContainer"),fin(BB(Wtn(VQ(n.S),4),59),n.bb,"eContainingFeature"),fin(BB(Wtn(VQ(n.S),5),59),n.W,"eContainmentFeature"),u=fin(BB(Wtn(VQ(n.S),6),59),null,"eContents"),t=ZV(n.fb),e=ZV(n.S),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),(r=HTn(u,t,null))&&r.Fi(),u=fin(BB(Wtn(VQ(n.S),7),59),null,"eAllContents"),t=ZV(n.cb),e=ZV(n.S),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),(c=HTn(u,t,null))&&c.Fi(),u=fin(BB(Wtn(VQ(n.S),8),59),null,"eCrossReferences"),t=ZV(n.fb),e=ZV(n.S),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),(a=HTn(u,t,null))&&a.Fi(),$yn(u=fin(BB(Wtn(VQ(n.S),9),59),n.M,"eGet"),n.bb,t7n),$yn(u=fin(BB(Wtn(VQ(n.S),10),59),n.M,"eGet"),n.bb,t7n),$yn(u,n.e,"resolve"),$yn(u=fin(BB(Wtn(VQ(n.S),11),59),null,"eSet"),n.bb,t7n),$yn(u,n.M,"newValue"),$yn(u=fin(BB(Wtn(VQ(n.S),12),59),n.e,"eIsSet"),n.bb,t7n),$yn(u=fin(BB(Wtn(VQ(n.S),13),59),null,"eUnset"),n.bb,t7n),$yn(u=fin(BB(Wtn(VQ(n.S),14),59),n.M,"eInvoke"),n.T,i7n),t=ZV(n.fb),e=s2(),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),Ujn(u,t,"arguments"),_W(u,n.K),z0(n.T,QAt,g9n,!1,!1,!0),Myn(BB(Wtn(QQ(n.T),0),18),n.o,BB(Wtn(QQ(n.o),3),18),o7n,0,1,QAt,!0,!1,!1,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.T),1),18),n.db,null,c7n,0,-1,QAt,!1,!1,!0,!0,!0,!1,!1),Myn(BB(Wtn(QQ(n.T),2),18),n.V,BB(Wtn(QQ(n.V),0),18),"eParameters",0,-1,QAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.T),3),18),n.p,null,"eExceptions",0,-1,QAt,!1,!1,!0,!1,!0,!0,!1),Myn(BB(Wtn(QQ(n.T),4),18),n.H,null,"eGenericExceptions",0,-1,QAt,!1,!1,!0,!0,!1,!0,!1),fin(BB(Wtn(VQ(n.T),0),59),n.I,e7n),$yn(u=fin(BB(Wtn(VQ(n.T),1),59),n.e,"isOverrideOf"),n.T,"someOperation"),z0(n.U,GOt,"EPackage",!1,!1,!0),ucn(BB(Wtn(QQ(n.U),0),34),n._,"nsURI",null,0,1,GOt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.U),1),34),n._,"nsPrefix",null,0,1,GOt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.U),2),18),n.B,BB(Wtn(QQ(n.B),0),18),"eFactoryInstance",1,1,GOt,!0,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.U),3),18),n.p,BB(Wtn(QQ(n.p),4),18),"eClassifiers",0,-1,GOt,!1,!1,!0,!0,!0,!1,!1),Myn(BB(Wtn(QQ(n.U),4),18),n.U,BB(Wtn(QQ(n.U),5),18),"eSubpackages",0,-1,GOt,!1,!1,!0,!0,!0,!1,!1),Myn(BB(Wtn(QQ(n.U),5),18),n.U,BB(Wtn(QQ(n.U),4),18),"eSuperPackage",0,1,GOt,!0,!1,!1,!1,!0,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.U),0),59),n.p,"getEClassifier"),n._,t8n),z0(n.V,YAt,p9n,!1,!1,!0),Myn(BB(Wtn(QQ(n.V),0),18),n.T,BB(Wtn(QQ(n.T),2),18),"eOperation",0,1,YAt,!0,!1,!1,!1,!1,!1,!1),z0(n.W,JAt,v9n,!1,!1,!0),ucn(BB(Wtn(QQ(n.W),0),34),n.e,"containment",null,0,1,JAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.W),1),34),n.e,"container",null,0,1,JAt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.W),2),34),n.e,"resolveProxies",a5n,0,1,JAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.W),3),18),n.W,null,"eOpposite",0,1,JAt,!1,!1,!0,!1,!0,!1,!1),Myn(BB(Wtn(QQ(n.W),4),18),n.o,null,"eReferenceType",1,1,JAt,!0,!0,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.W),5),18),n.b,null,"eKeys",0,-1,JAt,!1,!1,!0,!1,!0,!1,!1),z0(n.bb,FAt,f9n,!0,!1,!0),ucn(BB(Wtn(QQ(n.bb),0),34),n.e,"changeable",a5n,0,1,FAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),1),34),n.e,"volatile",null,0,1,FAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),2),34),n.e,"transient",null,0,1,FAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),3),34),n._,"defaultValueLiteral",null,0,1,FAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),4),34),n.M,r7n,null,0,1,FAt,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.bb),5),34),n.e,"unsettable",null,0,1,FAt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.bb),6),34),n.e,"derived",null,0,1,FAt,!1,!1,!0,!1,!0,!1),Myn(BB(Wtn(QQ(n.bb),7),18),n.o,BB(Wtn(QQ(n.o),13),18),o7n,0,1,FAt,!0,!1,!1,!1,!1,!1,!1),fin(BB(Wtn(VQ(n.bb),0),59),n.I,n7n),u=fin(BB(Wtn(VQ(n.bb),1),59),null,"getContainerClass"),t=ZV(n.L),e=s2(),f9((!t.d&&(t.d=new $L(VAt,t,1)),t.d),e),(i=HTn(u,t,null))&&i.Fi(),z0(n.eb,_At,h9n,!0,!1,!0),ucn(BB(Wtn(QQ(n.eb),0),34),n.e,"ordered",a5n,0,1,_At,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),1),34),n.e,"unique",a5n,0,1,_At,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),2),34),n.I,"lowerBound",null,0,1,_At,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),3),34),n.I,"upperBound","1",0,1,_At,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.eb),4),34),n.e,"many",null,0,1,_At,!0,!0,!1,!1,!0,!0),ucn(BB(Wtn(QQ(n.eb),5),34),n.e,"required",null,0,1,_At,!0,!0,!1,!1,!0,!0),Myn(BB(Wtn(QQ(n.eb),6),18),n.p,null,"eType",0,1,_At,!1,!0,!0,!1,!0,!0,!1),Myn(BB(Wtn(QQ(n.eb),7),18),n.H,null,"eGenericType",0,1,_At,!1,!0,!0,!0,!1,!0,!1),z0(n.ab,Hnt,"EStringToStringMapEntry",!1,!1,!1),ucn(BB(Wtn(QQ(n.ab),0),34),n._,"key",null,0,1,Hnt,!1,!1,!0,!1,!0,!1),ucn(BB(Wtn(QQ(n.ab),1),34),n._,E6n,null,0,1,Hnt,!1,!1,!0,!1,!0,!1),z0(n.H,VAt,d9n,!1,!1,!0),Myn(BB(Wtn(QQ(n.H),0),18),n.H,null,"eUpperBound",0,1,VAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.H),1),18),n.H,null,"eTypeArguments",0,-1,VAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.H),2),18),n.p,null,"eRawType",1,1,VAt,!0,!1,!1,!1,!0,!1,!0),Myn(BB(Wtn(QQ(n.H),3),18),n.H,null,"eLowerBound",0,1,VAt,!1,!1,!0,!0,!1,!1,!1),Myn(BB(Wtn(QQ(n.H),4),18),n.db,null,"eTypeParameter",0,1,VAt,!1,!1,!0,!1,!1,!1,!1),Myn(BB(Wtn(QQ(n.H),5),18),n.p,null,"eClassifier",0,1,VAt,!1,!1,!0,!1,!0,!1,!1),$yn(u=fin(BB(Wtn(VQ(n.H),0),59),n.e,a7n),n.M,AWn),z0(n.db,O$t,m9n,!1,!1,!0),Myn(BB(Wtn(QQ(n.db),0),18),n.H,null,"eBounds",0,-1,O$t,!1,!1,!0,!0,!1,!1,!1),dV(n.c,iet,"EBigDecimal",!0),dV(n.d,oet,"EBigInteger",!0),dV(n.e,$Nt,"EBoolean",!0),dV(n.f,ktt,"EBooleanObject",!0),dV(n.i,NNt,"EByte",!0),dV(n.g,Gk(NNt,1),"EByteArray",!0),dV(n.j,Ttt,"EByteObject",!0),dV(n.k,ONt,"EChar",!0),dV(n.n,Stt,"ECharacterObject",!0),dV(n.r,mtt,"EDate",!0),dV(n.s,_Nt,"EDiagnosticChain",!1),dV(n.t,xNt,"EDouble",!0),dV(n.u,Ptt,"EDoubleObject",!0),dV(n.fb,uAt,"EEList",!1),dV(n.A,yAt,"EEnumerator",!1),dV(n.C,oLt,"EFeatureMap",!1),dV(n.D,$$t,"EFeatureMapEntry",!1),dV(n.F,DNt,"EFloat",!0),dV(n.G,Ctt,"EFloatObject",!0),dV(n.I,ANt,"EInt",!0),dV(n.J,Att,"EIntegerObject",!0),dV(n.L,$nt,"EJavaClass",!0),dV(n.M,Ant,"EJavaObject",!0),dV(n.N,LNt,"ELong",!0),dV(n.O,Rtt,"ELongObject",!0),dV(n.P,Nnt,"EMap",!1),dV(n.X,iLt,"EResource",!1),dV(n.Y,FNt,"EResourceSet",!1),dV(n.Z,RNt,"EShort",!0),dV(n.$,_tt,"EShortObject",!0),dV(n._,Qtt,"EString",!0),dV(n.cb,sAt,"ETreeIterator",!1),dV(n.K,BNt,"EInvocationTargetException",!1),Lhn(n,V9n))}"undefined"!=typeof window?e=window:void 0!==n?e=n:"undefined"!=typeof self&&(e=self);var MWn,SWn,PWn,CWn,IWn,OWn,AWn="object",$Wn="boolean",LWn="number",NWn="string",xWn="function",DWn=2147483647,RWn="java.lang",KWn={3:1},_Wn="com.google.common.base",FWn=", ",BWn="%s (%s) must not be negative",HWn={3:1,4:1,5:1},qWn="negative size: ",GWn="Optional.of(",zWn="null",UWn={198:1,47:1},XWn="com.google.common.collect",WWn={198:1,47:1,125:1},VWn={224:1,3:1},QWn={47:1},YWn="java.util",JWn={83:1},ZWn={20:1,28:1,14:1},nVn=1965,tVn={20:1,28:1,14:1,21:1},eVn={83:1,171:1,161:1},iVn={20:1,28:1,14:1,21:1,84:1},rVn={20:1,28:1,14:1,271:1,21:1,84:1},cVn={47:1,125:1},aVn={345:1,42:1},uVn="AbstractMapEntry",oVn="expectedValuesPerKey",sVn={3:1,6:1,4:1,5:1},hVn=16384,fVn={164:1},lVn={38:1},bVn={l:4194303,m:4194303,h:524287},wVn={196:1},dVn={245:1,3:1,35:1},gVn="range unbounded on this side",pVn={20:1},vVn={20:1,14:1},mVn={3:1,20:1,28:1,14:1},yVn={152:1,3:1,20:1,28:1,14:1,15:1,54:1},kVn={3:1,4:1,5:1,165:1},jVn={3:1,83:1},EVn={20:1,14:1,21:1},TVn={3:1,20:1,28:1,14:1,21:1},MVn={20:1,14:1,21:1,84:1},SVn=461845907,PVn=-862048943,CVn={3:1,6:1,4:1,5:1,165:1},IVn="expectedSize",OVn=1073741824,AVn="initialArraySize",$Vn={3:1,6:1,4:1,9:1,5:1},LVn={20:1,28:1,52:1,14:1,15:1},NVn="arraySize",xVn={20:1,28:1,52:1,14:1,15:1,54:1},DVn={45:1},RVn={365:1},KVn=1e-4,_Vn=-2147483648,FVn="__noinit__",BVn={3:1,102:1,60:1,78:1},HVn="com.google.gwt.core.client.impl",qVn="String",GVn="com.google.gwt.core.client",zVn="anonymous",UVn="fnStack",XVn="Unknown",WVn={195:1,3:1,4:1},VVn=1e3,QVn=65535,YVn="January",JVn="February",ZVn="March",nQn="April",tQn="May",eQn="June",iQn="July",rQn="August",cQn="September",aQn="October",uQn="November",oQn="December",sQn=1900,hQn={48:1,3:1,4:1},fQn="Before Christ",lQn="Anno Domini",bQn="Sunday",wQn="Monday",dQn="Tuesday",gQn="Wednesday",pQn="Thursday",vQn="Friday",mQn="Saturday",yQn="com.google.gwt.i18n.shared",kQn="DateTimeFormat",jQn="com.google.gwt.i18n.client",EQn="DefaultDateTimeFormatInfo",TQn={3:1,4:1,35:1,199:1},MQn="com.google.gwt.json.client",SQn=4194303,PQn=1048575,CQn=524288,IQn=4194304,OQn=17592186044416,AQn=1e9,$Qn=-17592186044416,LQn="java.io",NQn={3:1,102:1,73:1,60:1,78:1},xQn={3:1,289:1,78:1},DQn='For input string: "',RQn=1/0,KQn=-1/0,_Qn=4096,FQn={3:1,4:1,364:1},BQn=65536,HQn=55296,qQn={104:1,3:1,4:1},GQn=1e5,zQn=.3010299956639812,UQn=4294967295,XQn=4294967296,WQn="0.0",VQn={42:1},QQn={3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1},YQn={3:1,20:1,28:1,52:1,14:1,15:1,54:1},JQn={20:1,14:1,15:1},ZQn={3:1,62:1},nYn={182:1},tYn={3:1,4:1,83:1},eYn={3:1,4:1,20:1,28:1,14:1,53:1,21:1},iYn="delete",rYn=1.4901161193847656e-8,cYn=11102230246251565e-32,aYn=15525485,uYn=5.960464477539063e-8,oYn=16777216,sYn=16777215,hYn=", length: ",fYn={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1},lYn={3:1,35:1,22:1,297:1},bYn="java.util.function",wYn="java.util.logging",dYn={3:1,4:1,5:1,842:1},gYn="undefined",pYn="java.util.stream",vYn={525:1,670:1},mYn="fromIndex: ",yYn=" > toIndex: ",kYn=", toIndex: ",jYn="Index: ",EYn=", Size: ",TYn="org.eclipse.elk.alg.common",MYn={62:1},SYn="org.eclipse.elk.alg.common.compaction",PYn="Scanline/EventHandler",CYn="org.eclipse.elk.alg.common.compaction.oned",IYn="CNode belongs to another CGroup.",OYn="ISpacingsHandler/1",AYn="The ",$Yn=" instance has been finished already.",LYn="The direction ",NYn=" is not supported by the CGraph instance.",xYn="OneDimensionalCompactor",DYn="OneDimensionalCompactor/lambda$0$Type",RYn="Quadruplet",KYn="ScanlineConstraintCalculator",_Yn="ScanlineConstraintCalculator/ConstraintsScanlineHandler",FYn="ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type",BYn="ScanlineConstraintCalculator/Timestamp",HYn="ScanlineConstraintCalculator/lambda$0$Type",qYn={169:1,45:1},GYn="org.eclipse.elk.alg.common.compaction.options",zYn="org.eclipse.elk.core.data",UYn="org.eclipse.elk.polyomino.traversalStrategy",XYn="org.eclipse.elk.polyomino.lowLevelSort",WYn="org.eclipse.elk.polyomino.highLevelSort",VYn="org.eclipse.elk.polyomino.fill",QYn={130:1},YYn="polyomino",JYn="org.eclipse.elk.alg.common.networksimplex",ZYn={177:1,3:1,4:1},nJn="org.eclipse.elk.alg.common.nodespacing",tJn="org.eclipse.elk.alg.common.nodespacing.cellsystem",eJn="CENTER",iJn={212:1,326:1},rJn={3:1,4:1,5:1,595:1},cJn="LEFT",aJn="RIGHT",uJn="Vertical alignment cannot be null",oJn="BOTTOM",sJn="org.eclipse.elk.alg.common.nodespacing.internal",hJn="UNDEFINED",fJn=.01,lJn="org.eclipse.elk.alg.common.nodespacing.internal.algorithm",bJn="LabelPlacer/lambda$0$Type",wJn="LabelPlacer/lambda$1$Type",dJn="portRatioOrPosition",gJn="org.eclipse.elk.alg.common.overlaps",pJn="DOWN",vJn="org.eclipse.elk.alg.common.polyomino",mJn="NORTH",yJn="EAST",kJn="SOUTH",jJn="WEST",EJn="org.eclipse.elk.alg.common.polyomino.structures",TJn="Direction",MJn="Grid is only of size ",SJn=". Requested point (",PJn=") is out of bounds.",CJn=" Given center based coordinates were (",IJn="org.eclipse.elk.graph.properties",OJn="IPropertyHolder",AJn={3:1,94:1,134:1},$Jn="org.eclipse.elk.alg.common.spore",LJn="org.eclipse.elk.alg.common.utils",NJn={209:1},xJn="org.eclipse.elk.core",DJn="Connected Components Compaction",RJn="org.eclipse.elk.alg.disco",KJn="org.eclipse.elk.alg.disco.graph",_Jn="org.eclipse.elk.alg.disco.options",FJn="CompactionStrategy",BJn="org.eclipse.elk.disco.componentCompaction.strategy",HJn="org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm",qJn="org.eclipse.elk.disco.debug.discoGraph",GJn="org.eclipse.elk.disco.debug.discoPolys",zJn="componentCompaction",UJn="org.eclipse.elk.disco",XJn="org.eclipse.elk.spacing.componentComponent",WJn="org.eclipse.elk.edge.thickness",VJn="org.eclipse.elk.aspectRatio",QJn="org.eclipse.elk.padding",YJn="org.eclipse.elk.alg.disco.transform",JJn=1.5707963267948966,ZJn=17976931348623157e292,nZn={3:1,4:1,5:1,192:1},tZn={3:1,6:1,4:1,5:1,106:1,120:1},eZn="org.eclipse.elk.alg.force",iZn="ComponentsProcessor",rZn="ComponentsProcessor/1",cZn="org.eclipse.elk.alg.force.graph",aZn="Component Layout",uZn="org.eclipse.elk.alg.force.model",oZn="org.eclipse.elk.force.model",sZn="org.eclipse.elk.force.iterations",hZn="org.eclipse.elk.force.repulsivePower",fZn="org.eclipse.elk.force.temperature",lZn=.001,bZn="org.eclipse.elk.force.repulsion",wZn="org.eclipse.elk.alg.force.options",dZn=1.600000023841858,gZn="org.eclipse.elk.force",pZn="org.eclipse.elk.priority",vZn="org.eclipse.elk.spacing.nodeNode",mZn="org.eclipse.elk.spacing.edgeLabel",yZn="org.eclipse.elk.randomSeed",kZn="org.eclipse.elk.separateConnectedComponents",jZn="org.eclipse.elk.interactive",EZn="org.eclipse.elk.portConstraints",TZn="org.eclipse.elk.edgeLabels.inline",MZn="org.eclipse.elk.omitNodeMicroLayout",SZn="org.eclipse.elk.nodeSize.options",PZn="org.eclipse.elk.nodeSize.constraints",CZn="org.eclipse.elk.nodeLabels.placement",IZn="org.eclipse.elk.portLabels.placement",OZn="origin",AZn="random",$Zn="boundingBox.upLeft",LZn="boundingBox.lowRight",NZn="org.eclipse.elk.stress.fixed",xZn="org.eclipse.elk.stress.desiredEdgeLength",DZn="org.eclipse.elk.stress.dimension",RZn="org.eclipse.elk.stress.epsilon",KZn="org.eclipse.elk.stress.iterationLimit",_Zn="org.eclipse.elk.stress",FZn="ELK Stress",BZn="org.eclipse.elk.nodeSize.minimum",HZn="org.eclipse.elk.alg.force.stress",qZn="Layered layout",GZn="org.eclipse.elk.alg.layered",zZn="org.eclipse.elk.alg.layered.compaction.components",UZn="org.eclipse.elk.alg.layered.compaction.oned",XZn="org.eclipse.elk.alg.layered.compaction.oned.algs",WZn="org.eclipse.elk.alg.layered.compaction.recthull",VZn="org.eclipse.elk.alg.layered.components",QZn="NONE",YZn={3:1,6:1,4:1,9:1,5:1,122:1},JZn={3:1,6:1,4:1,5:1,141:1,106:1,120:1},ZZn="org.eclipse.elk.alg.layered.compound",n1n={51:1},t1n="org.eclipse.elk.alg.layered.graph",e1n=" -> ",i1n="Not supported by LGraph",r1n="Port side is undefined",c1n={3:1,6:1,4:1,5:1,474:1,141:1,106:1,120:1},a1n={3:1,6:1,4:1,5:1,141:1,193:1,203:1,106:1,120:1},u1n={3:1,6:1,4:1,5:1,141:1,1943:1,203:1,106:1,120:1},o1n="([{\"' \t\r\n",s1n=")]}\"' \t\r\n",h1n="The given string contains parts that cannot be parsed as numbers.",f1n="org.eclipse.elk.core.math",l1n={3:1,4:1,142:1,207:1,414:1},b1n={3:1,4:1,116:1,207:1,414:1},w1n="org.eclipse.elk.layered",d1n="org.eclipse.elk.alg.layered.graph.transform",g1n="ElkGraphImporter",p1n="ElkGraphImporter/lambda$0$Type",v1n="ElkGraphImporter/lambda$1$Type",m1n="ElkGraphImporter/lambda$2$Type",y1n="ElkGraphImporter/lambda$4$Type",k1n="Node margin calculation",j1n="org.eclipse.elk.alg.layered.intermediate",E1n="ONE_SIDED_GREEDY_SWITCH",T1n="TWO_SIDED_GREEDY_SWITCH",M1n="No implementation is available for the layout processor ",S1n="IntermediateProcessorStrategy",P1n="Node '",C1n="FIRST_SEPARATE",I1n="LAST_SEPARATE",O1n="Odd port side processing",A1n="org.eclipse.elk.alg.layered.intermediate.compaction",$1n="org.eclipse.elk.alg.layered.intermediate.greedyswitch",L1n="org.eclipse.elk.alg.layered.p3order.counting",N1n={225:1},x1n="org.eclipse.elk.alg.layered.intermediate.loops",D1n="org.eclipse.elk.alg.layered.intermediate.loops.ordering",R1n="org.eclipse.elk.alg.layered.intermediate.loops.routing",K1n="org.eclipse.elk.alg.layered.intermediate.preserveorder",_1n="org.eclipse.elk.alg.layered.intermediate.wrapping",F1n="org.eclipse.elk.alg.layered.options",B1n="INTERACTIVE",H1n="DEPTH_FIRST",q1n="EDGE_LENGTH",G1n="SELF_LOOPS",z1n="firstTryWithInitialOrder",U1n="org.eclipse.elk.layered.directionCongruency",X1n="org.eclipse.elk.layered.feedbackEdges",W1n="org.eclipse.elk.layered.interactiveReferencePoint",V1n="org.eclipse.elk.layered.mergeEdges",Q1n="org.eclipse.elk.layered.mergeHierarchyEdges",Y1n="org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides",J1n="org.eclipse.elk.layered.portSortingStrategy",Z1n="org.eclipse.elk.layered.thoroughness",n0n="org.eclipse.elk.layered.unnecessaryBendpoints",t0n="org.eclipse.elk.layered.generatePositionAndLayerIds",e0n="org.eclipse.elk.layered.cycleBreaking.strategy",i0n="org.eclipse.elk.layered.layering.strategy",r0n="org.eclipse.elk.layered.layering.layerConstraint",c0n="org.eclipse.elk.layered.layering.layerChoiceConstraint",a0n="org.eclipse.elk.layered.layering.layerId",u0n="org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth",o0n="org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor",s0n="org.eclipse.elk.layered.layering.nodePromotion.strategy",h0n="org.eclipse.elk.layered.layering.nodePromotion.maxIterations",f0n="org.eclipse.elk.layered.layering.coffmanGraham.layerBound",l0n="org.eclipse.elk.layered.crossingMinimization.strategy",b0n="org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder",w0n="org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness",d0n="org.eclipse.elk.layered.crossingMinimization.semiInteractive",g0n="org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint",p0n="org.eclipse.elk.layered.crossingMinimization.positionId",v0n="org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold",m0n="org.eclipse.elk.layered.crossingMinimization.greedySwitch.type",y0n="org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type",k0n="org.eclipse.elk.layered.nodePlacement.strategy",j0n="org.eclipse.elk.layered.nodePlacement.favorStraightEdges",E0n="org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening",T0n="org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment",M0n="org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening",S0n="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility",P0n="org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default",C0n="org.eclipse.elk.layered.edgeRouting.selfLoopDistribution",I0n="org.eclipse.elk.layered.edgeRouting.selfLoopOrdering",O0n="org.eclipse.elk.layered.edgeRouting.splines.mode",A0n="org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor",$0n="org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth",L0n="org.eclipse.elk.layered.spacing.baseValue",N0n="org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers",x0n="org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers",D0n="org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers",R0n="org.eclipse.elk.layered.priority.direction",K0n="org.eclipse.elk.layered.priority.shortness",_0n="org.eclipse.elk.layered.priority.straightness",F0n="org.eclipse.elk.layered.compaction.connectedComponents",B0n="org.eclipse.elk.layered.compaction.postCompaction.strategy",H0n="org.eclipse.elk.layered.compaction.postCompaction.constraints",q0n="org.eclipse.elk.layered.highDegreeNodes.treatment",G0n="org.eclipse.elk.layered.highDegreeNodes.threshold",z0n="org.eclipse.elk.layered.highDegreeNodes.treeHeight",U0n="org.eclipse.elk.layered.wrapping.strategy",X0n="org.eclipse.elk.layered.wrapping.additionalEdgeSpacing",W0n="org.eclipse.elk.layered.wrapping.correctionFactor",V0n="org.eclipse.elk.layered.wrapping.cutting.strategy",Q0n="org.eclipse.elk.layered.wrapping.cutting.cuts",Y0n="org.eclipse.elk.layered.wrapping.cutting.msd.freedom",J0n="org.eclipse.elk.layered.wrapping.validify.strategy",Z0n="org.eclipse.elk.layered.wrapping.validify.forbiddenIndices",n2n="org.eclipse.elk.layered.wrapping.multiEdge.improveCuts",t2n="org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty",e2n="org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges",i2n="org.eclipse.elk.layered.edgeLabels.sideSelection",r2n="org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy",c2n="org.eclipse.elk.layered.considerModelOrder.strategy",a2n="org.eclipse.elk.layered.considerModelOrder.noModelOrder",u2n="org.eclipse.elk.layered.considerModelOrder.components",o2n="org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy",s2n="org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence",h2n="org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence",f2n="layering",l2n="layering.minWidth",b2n="layering.nodePromotion",w2n="crossingMinimization",d2n="org.eclipse.elk.hierarchyHandling",g2n="crossingMinimization.greedySwitch",p2n="nodePlacement",v2n="nodePlacement.bk",m2n="edgeRouting",y2n="org.eclipse.elk.edgeRouting",k2n="spacing",j2n="priority",E2n="compaction",T2n="compaction.postCompaction",M2n="Specifies whether and how post-process compaction is applied.",S2n="highDegreeNodes",P2n="wrapping",C2n="wrapping.cutting",I2n="wrapping.validify",O2n="wrapping.multiEdge",A2n="edgeLabels",$2n="considerModelOrder",L2n="org.eclipse.elk.spacing.commentComment",N2n="org.eclipse.elk.spacing.commentNode",x2n="org.eclipse.elk.spacing.edgeEdge",D2n="org.eclipse.elk.spacing.edgeNode",R2n="org.eclipse.elk.spacing.labelLabel",K2n="org.eclipse.elk.spacing.labelPortHorizontal",_2n="org.eclipse.elk.spacing.labelPortVertical",F2n="org.eclipse.elk.spacing.labelNode",B2n="org.eclipse.elk.spacing.nodeSelfLoop",H2n="org.eclipse.elk.spacing.portPort",q2n="org.eclipse.elk.spacing.individual",G2n="org.eclipse.elk.port.borderOffset",z2n="org.eclipse.elk.noLayout",U2n="org.eclipse.elk.port.side",X2n="org.eclipse.elk.debugMode",W2n="org.eclipse.elk.alignment",V2n="org.eclipse.elk.insideSelfLoops.activate",Q2n="org.eclipse.elk.insideSelfLoops.yo",Y2n="org.eclipse.elk.nodeSize.fixedGraphSize",J2n="org.eclipse.elk.direction",Z2n="org.eclipse.elk.nodeLabels.padding",n3n="org.eclipse.elk.portLabels.nextToPortIfPossible",t3n="org.eclipse.elk.portLabels.treatAsGroup",e3n="org.eclipse.elk.portAlignment.default",i3n="org.eclipse.elk.portAlignment.north",r3n="org.eclipse.elk.portAlignment.south",c3n="org.eclipse.elk.portAlignment.west",a3n="org.eclipse.elk.portAlignment.east",u3n="org.eclipse.elk.contentAlignment",o3n="org.eclipse.elk.junctionPoints",s3n="org.eclipse.elk.edgeLabels.placement",h3n="org.eclipse.elk.port.index",f3n="org.eclipse.elk.commentBox",l3n="org.eclipse.elk.hypernode",b3n="org.eclipse.elk.port.anchor",w3n="org.eclipse.elk.partitioning.activate",d3n="org.eclipse.elk.partitioning.partition",g3n="org.eclipse.elk.position",p3n="org.eclipse.elk.margins",v3n="org.eclipse.elk.spacing.portsSurrounding",m3n="org.eclipse.elk.interactiveLayout",y3n="org.eclipse.elk.core.util",k3n={3:1,4:1,5:1,593:1},j3n="NETWORK_SIMPLEX",E3n={123:1,51:1},T3n="org.eclipse.elk.alg.layered.p1cycles",M3n="org.eclipse.elk.alg.layered.p2layers",S3n={402:1,225:1},P3n={832:1,3:1,4:1},C3n="org.eclipse.elk.alg.layered.p3order",I3n="org.eclipse.elk.alg.layered.p4nodes",O3n={3:1,4:1,5:1,840:1},A3n=1e-5,$3n="org.eclipse.elk.alg.layered.p4nodes.bk",L3n="org.eclipse.elk.alg.layered.p5edges",N3n="org.eclipse.elk.alg.layered.p5edges.orthogonal",x3n="org.eclipse.elk.alg.layered.p5edges.orthogonal.direction",D3n=1e-6,R3n="org.eclipse.elk.alg.layered.p5edges.splines",K3n=.09999999999999998,_3n=1e-8,F3n=4.71238898038469,B3n=3.141592653589793,H3n="org.eclipse.elk.alg.mrtree",q3n="org.eclipse.elk.alg.mrtree.graph",G3n="org.eclipse.elk.alg.mrtree.intermediate",z3n="Set neighbors in level",U3n="DESCENDANTS",X3n="org.eclipse.elk.mrtree.weighting",W3n="org.eclipse.elk.mrtree.searchOrder",V3n="org.eclipse.elk.alg.mrtree.options",Q3n="org.eclipse.elk.mrtree",Y3n="org.eclipse.elk.tree",J3n="org.eclipse.elk.alg.radial",Z3n=6.283185307179586,n4n=5e-324,t4n="org.eclipse.elk.alg.radial.intermediate",e4n="org.eclipse.elk.alg.radial.intermediate.compaction",i4n={3:1,4:1,5:1,106:1},r4n="org.eclipse.elk.alg.radial.intermediate.optimization",c4n="No implementation is available for the layout option ",a4n="org.eclipse.elk.alg.radial.options",u4n="org.eclipse.elk.radial.orderId",o4n="org.eclipse.elk.radial.radius",s4n="org.eclipse.elk.radial.compactor",h4n="org.eclipse.elk.radial.compactionStepSize",f4n="org.eclipse.elk.radial.sorter",l4n="org.eclipse.elk.radial.wedgeCriteria",b4n="org.eclipse.elk.radial.optimizationCriteria",w4n="org.eclipse.elk.radial",d4n="org.eclipse.elk.alg.radial.p1position.wedge",g4n="org.eclipse.elk.alg.radial.sorting",p4n=5.497787143782138,v4n=3.9269908169872414,m4n=2.356194490192345,y4n="org.eclipse.elk.alg.rectpacking",k4n="org.eclipse.elk.alg.rectpacking.firstiteration",j4n="org.eclipse.elk.alg.rectpacking.options",E4n="org.eclipse.elk.rectpacking.optimizationGoal",T4n="org.eclipse.elk.rectpacking.lastPlaceShift",M4n="org.eclipse.elk.rectpacking.currentPosition",S4n="org.eclipse.elk.rectpacking.desiredPosition",P4n="org.eclipse.elk.rectpacking.onlyFirstIteration",C4n="org.eclipse.elk.rectpacking.rowCompaction",I4n="org.eclipse.elk.rectpacking.expandToAspectRatio",O4n="org.eclipse.elk.rectpacking.targetWidth",A4n="org.eclipse.elk.expandNodes",$4n="org.eclipse.elk.rectpacking",L4n="org.eclipse.elk.alg.rectpacking.util",N4n="No implementation available for ",x4n="org.eclipse.elk.alg.spore",D4n="org.eclipse.elk.alg.spore.options",R4n="org.eclipse.elk.sporeCompaction",K4n="org.eclipse.elk.underlyingLayoutAlgorithm",_4n="org.eclipse.elk.processingOrder.treeConstruction",F4n="org.eclipse.elk.processingOrder.spanningTreeCostFunction",B4n="org.eclipse.elk.processingOrder.preferredRoot",H4n="org.eclipse.elk.processingOrder.rootSelection",q4n="org.eclipse.elk.structure.structureExtractionStrategy",G4n="org.eclipse.elk.compaction.compactionStrategy",z4n="org.eclipse.elk.compaction.orthogonal",U4n="org.eclipse.elk.overlapRemoval.maxIterations",X4n="org.eclipse.elk.overlapRemoval.runScanline",W4n="processingOrder",V4n="overlapRemoval",Q4n="org.eclipse.elk.sporeOverlap",Y4n="org.eclipse.elk.alg.spore.p1structure",J4n="org.eclipse.elk.alg.spore.p2processingorder",Z4n="org.eclipse.elk.alg.spore.p3execution",n5n="Invalid index: ",t5n="org.eclipse.elk.core.alg",e5n={331:1},i5n={288:1},r5n="Make sure its type is registered with the ",c5n=" utility class.",a5n="true",u5n="false",o5n="Couldn't clone property '",s5n=.05,h5n="org.eclipse.elk.core.options",f5n=1.2999999523162842,l5n="org.eclipse.elk.box",b5n="org.eclipse.elk.box.packingMode",w5n="org.eclipse.elk.algorithm",d5n="org.eclipse.elk.resolvedAlgorithm",g5n="org.eclipse.elk.bendPoints",p5n="org.eclipse.elk.labelManager",v5n="org.eclipse.elk.scaleFactor",m5n="org.eclipse.elk.animate",y5n="org.eclipse.elk.animTimeFactor",k5n="org.eclipse.elk.layoutAncestors",j5n="org.eclipse.elk.maxAnimTime",E5n="org.eclipse.elk.minAnimTime",T5n="org.eclipse.elk.progressBar",M5n="org.eclipse.elk.validateGraph",S5n="org.eclipse.elk.validateOptions",P5n="org.eclipse.elk.zoomToFit",C5n="org.eclipse.elk.font.name",I5n="org.eclipse.elk.font.size",O5n="org.eclipse.elk.edge.type",A5n="partitioning",$5n="nodeLabels",L5n="portAlignment",N5n="nodeSize",x5n="port",D5n="portLabels",R5n="insideSelfLoops",K5n="org.eclipse.elk.fixed",_5n="org.eclipse.elk.random",F5n="port must have a parent node to calculate the port side",B5n="The edge needs to have exactly one edge section. Found: ",H5n="org.eclipse.elk.core.util.adapters",q5n="org.eclipse.emf.ecore",G5n="org.eclipse.elk.graph",z5n="EMapPropertyHolder",U5n="ElkBendPoint",X5n="ElkGraphElement",W5n="ElkConnectableShape",V5n="ElkEdge",Q5n="ElkEdgeSection",Y5n="EModelElement",J5n="ENamedElement",Z5n="ElkLabel",n6n="ElkNode",t6n="ElkPort",e6n={92:1,90:1},i6n="org.eclipse.emf.common.notify.impl",r6n="The feature '",c6n="' is not a valid changeable feature",a6n="Expecting null",u6n="' is not a valid feature",o6n="The feature ID",s6n=" is not a valid feature ID",h6n=32768,f6n={105:1,92:1,90:1,56:1,49:1,97:1},l6n="org.eclipse.emf.ecore.impl",b6n="org.eclipse.elk.graph.impl",w6n="Recursive containment not allowed for ",d6n="The datatype '",g6n="' is not a valid classifier",p6n="The value '",v6n={190:1,3:1,4:1},m6n="The class '",y6n="http://www.eclipse.org/elk/ElkGraph",k6n=1024,j6n="property",E6n="value",T6n="source",M6n="properties",S6n="identifier",P6n="height",C6n="width",I6n="parent",O6n="text",A6n="children",$6n="hierarchical",L6n="sources",N6n="targets",x6n="sections",D6n="bendPoints",R6n="outgoingShape",K6n="incomingShape",_6n="outgoingSections",F6n="incomingSections",B6n="org.eclipse.emf.common.util",H6n="Severe implementation error in the Json to ElkGraph importer.",q6n="id",G6n="org.eclipse.elk.graph.json",z6n="Unhandled parameter types: ",U6n="startPoint",X6n="An edge must have at least one source and one target (edge id: '",W6n="').",V6n="Referenced edge section does not exist: ",Q6n=" (edge id: '",Y6n="target",J6n="sourcePoint",Z6n="targetPoint",n8n="group",t8n="name",e8n="connectableShape cannot be null",i8n="edge cannot be null",r8n="Passed edge is not 'simple'.",c8n="org.eclipse.elk.graph.util",a8n="The 'no duplicates' constraint is violated",u8n="targetIndex=",o8n=", size=",s8n="sourceIndex=",h8n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1},f8n={3:1,4:1,20:1,28:1,52:1,14:1,47:1,15:1,54:1,67:1,63:1,58:1,588:1},l8n="logging",b8n="measureExecutionTime",w8n="parser.parse.1",d8n="parser.parse.2",g8n="parser.next.1",p8n="parser.next.2",v8n="parser.next.3",m8n="parser.next.4",y8n="parser.factor.1",k8n="parser.factor.2",j8n="parser.factor.3",E8n="parser.factor.4",T8n="parser.factor.5",M8n="parser.factor.6",S8n="parser.atom.1",P8n="parser.atom.2",C8n="parser.atom.3",I8n="parser.atom.4",O8n="parser.atom.5",A8n="parser.cc.1",$8n="parser.cc.2",L8n="parser.cc.3",N8n="parser.cc.5",x8n="parser.cc.6",D8n="parser.cc.7",R8n="parser.cc.8",K8n="parser.ope.1",_8n="parser.ope.2",F8n="parser.ope.3",B8n="parser.descape.1",H8n="parser.descape.2",q8n="parser.descape.3",G8n="parser.descape.4",z8n="parser.descape.5",U8n="parser.process.1",X8n="parser.quantifier.1",W8n="parser.quantifier.2",V8n="parser.quantifier.3",Q8n="parser.quantifier.4",Y8n="parser.quantifier.5",J8n="org.eclipse.emf.common.notify",Z8n={415:1,672:1},n9n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1},t9n={366:1,143:1},e9n="index=",i9n={3:1,4:1,5:1,126:1},r9n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,58:1},c9n={3:1,6:1,4:1,5:1,192:1},a9n={3:1,4:1,5:1,165:1,367:1},u9n=";/?:@&=+$,",o9n="invalid authority: ",s9n="EAnnotation",h9n="ETypedElement",f9n="EStructuralFeature",l9n="EAttribute",b9n="EClassifier",w9n="EEnumLiteral",d9n="EGenericType",g9n="EOperation",p9n="EParameter",v9n="EReference",m9n="ETypeParameter",y9n="org.eclipse.emf.ecore.util",k9n={76:1},j9n={3:1,20:1,14:1,15:1,58:1,589:1,76:1,69:1,95:1},E9n="org.eclipse.emf.ecore.util.FeatureMap$Entry",T9n=8192,M9n=2048,S9n="byte",P9n="char",C9n="double",I9n="float",O9n="int",A9n="long",$9n="short",L9n="java.lang.Object",N9n={3:1,4:1,5:1,247:1},x9n={3:1,4:1,5:1,673:1},D9n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,69:1},R9n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,69:1,95:1},K9n="mixed",_9n="http:///org/eclipse/emf/ecore/util/ExtendedMetaData",F9n="kind",B9n={3:1,4:1,5:1,674:1},H9n={3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,76:1,69:1,95:1},q9n={20:1,28:1,52:1,14:1,15:1,58:1,69:1},G9n={47:1,125:1,279:1},z9n={72:1,332:1},U9n="The value of type '",X9n="' must be of type '",W9n=1316,V9n="http://www.eclipse.org/emf/2002/Ecore",Q9n=-32768,Y9n="constraints",J9n="baseType",Z9n="getEStructuralFeature",n7n="getFeatureID",t7n="feature",e7n="getOperationID",i7n="operation",r7n="defaultValue",c7n="eTypeParameters",a7n="isInstance",u7n="getEEnumLiteral",o7n="eContainingClass",s7n={55:1},h7n={3:1,4:1,5:1,119:1},f7n="org.eclipse.emf.ecore.resource",l7n={92:1,90:1,591:1,1935:1},b7n="org.eclipse.emf.ecore.resource.impl",w7n="unspecified",d7n="simple",g7n="attribute",p7n="attributeWildcard",v7n="element",m7n="elementWildcard",y7n="collapse",k7n="itemType",j7n="namespace",E7n="##targetNamespace",T7n="whiteSpace",M7n="wildcards",S7n="http://www.eclipse.org/emf/2003/XMLType",P7n="##any",C7n="uninitialized",I7n="The multiplicity constraint is violated",O7n="org.eclipse.emf.ecore.xml.type",A7n="ProcessingInstruction",$7n="SimpleAnyType",L7n="XMLTypeDocumentRoot",N7n="org.eclipse.emf.ecore.xml.type.impl",x7n="INF",D7n="processing",R7n="ENTITIES_._base",K7n="minLength",_7n="ENTITY",F7n="NCName",B7n="IDREFS_._base",H7n="integer",q7n="token",G7n="pattern",z7n="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*",U7n="\\i\\c*",X7n="[\\i-[:]][\\c-[:]]*",W7n="nonPositiveInteger",V7n="maxInclusive",Q7n="NMTOKEN",Y7n="NMTOKENS_._base",J7n="nonNegativeInteger",Z7n="minInclusive",nnt="normalizedString",tnt="unsignedByte",ent="unsignedInt",int="18446744073709551615",rnt="unsignedShort",cnt="processingInstruction",ant="org.eclipse.emf.ecore.xml.type.internal",unt=1114111,ont="Internal Error: shorthands: \\u",snt="xml:isDigit",hnt="xml:isWord",fnt="xml:isSpace",lnt="xml:isNameChar",bnt="xml:isInitialNameChar",wnt="09\u0660\u0669\u06f0\u06f9\u0966\u096f\u09e6\u09ef\u0a66\u0a6f\u0ae6\u0aef\u0b66\u0b6f\u0be7\u0bef\u0c66\u0c6f\u0ce6\u0cef\u0d66\u0d6f\u0e50\u0e59\u0ed0\u0ed9\u0f20\u0f29",dnt="AZaz\xc0\xd6\xd8\xf6\xf8\u0131\u0134\u013e\u0141\u0148\u014a\u017e\u0180\u01c3\u01cd\u01f0\u01f4\u01f5\u01fa\u0217\u0250\u02a8\u02bb\u02c1\u0386\u0386\u0388\u038a\u038c\u038c\u038e\u03a1\u03a3\u03ce\u03d0\u03d6\u03da\u03da\u03dc\u03dc\u03de\u03de\u03e0\u03e0\u03e2\u03f3\u0401\u040c\u040e\u044f\u0451\u045c\u045e\u0481\u0490\u04c4\u04c7\u04c8\u04cb\u04cc\u04d0\u04eb\u04ee\u04f5\u04f8\u04f9\u0531\u0556\u0559\u0559\u0561\u0586\u05d0\u05ea\u05f0\u05f2\u0621\u063a\u0641\u064a\u0671\u06b7\u06ba\u06be\u06c0\u06ce\u06d0\u06d3\u06d5\u06d5\u06e5\u06e6\u0905\u0939\u093d\u093d\u0958\u0961\u0985\u098c\u098f\u0990\u0993\u09a8\u09aa\u09b0\u09b2\u09b2\u09b6\u09b9\u09dc\u09dd\u09df\u09e1\u09f0\u09f1\u0a05\u0a0a\u0a0f\u0a10\u0a13\u0a28\u0a2a\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59\u0a5c\u0a5e\u0a5e\u0a72\u0a74\u0a85\u0a8b\u0a8d\u0a8d\u0a8f\u0a91\u0a93\u0aa8\u0aaa\u0ab0\u0ab2\u0ab3\u0ab5\u0ab9\u0abd\u0abd\u0ae0\u0ae0\u0b05\u0b0c\u0b0f\u0b10\u0b13\u0b28\u0b2a\u0b30\u0b32\u0b33\u0b36\u0b39\u0b3d\u0b3d\u0b5c\u0b5d\u0b5f\u0b61\u0b85\u0b8a\u0b8e\u0b90\u0b92\u0b95\u0b99\u0b9a\u0b9c\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8\u0baa\u0bae\u0bb5\u0bb7\u0bb9\u0c05\u0c0c\u0c0e\u0c10\u0c12\u0c28\u0c2a\u0c33\u0c35\u0c39\u0c60\u0c61\u0c85\u0c8c\u0c8e\u0c90\u0c92\u0ca8\u0caa\u0cb3\u0cb5\u0cb9\u0cde\u0cde\u0ce0\u0ce1\u0d05\u0d0c\u0d0e\u0d10\u0d12\u0d28\u0d2a\u0d39\u0d60\u0d61\u0e01\u0e2e\u0e30\u0e30\u0e32\u0e33\u0e40\u0e45\u0e81\u0e82\u0e84\u0e84\u0e87\u0e88\u0e8a\u0e8a\u0e8d\u0e8d\u0e94\u0e97\u0e99\u0e9f\u0ea1\u0ea3\u0ea5\u0ea5\u0ea7\u0ea7\u0eaa\u0eab\u0ead\u0eae\u0eb0\u0eb0\u0eb2\u0eb3\u0ebd\u0ebd\u0ec0\u0ec4\u0f40\u0f47\u0f49\u0f69\u10a0\u10c5\u10d0\u10f6\u1100\u1100\u1102\u1103\u1105\u1107\u1109\u1109\u110b\u110c\u110e\u1112\u113c\u113c\u113e\u113e\u1140\u1140\u114c\u114c\u114e\u114e\u1150\u1150\u1154\u1155\u1159\u1159\u115f\u1161\u1163\u1163\u1165\u1165\u1167\u1167\u1169\u1169\u116d\u116e\u1172\u1173\u1175\u1175\u119e\u119e\u11a8\u11a8\u11ab\u11ab\u11ae\u11af\u11b7\u11b8\u11ba\u11ba\u11bc\u11c2\u11eb\u11eb\u11f0\u11f0\u11f9\u11f9\u1e00\u1e9b\u1ea0\u1ef9\u1f00\u1f15\u1f18\u1f1d\u1f20\u1f45\u1f48\u1f4d\u1f50\u1f57\u1f59\u1f59\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f7d\u1f80\u1fb4\u1fb6\u1fbc\u1fbe\u1fbe\u1fc2\u1fc4\u1fc6\u1fcc\u1fd0\u1fd3\u1fd6\u1fdb\u1fe0\u1fec\u1ff2\u1ff4\u1ff6\u1ffc\u2126\u2126\u212a\u212b\u212e\u212e\u2180\u2182\u3007\u3007\u3021\u3029\u3041\u3094\u30a1\u30fa\u3105\u312c\u4e00\u9fa5\uac00\ud7a3",gnt="Private Use",pnt="ASSIGNED",vnt="\0\x7f\x80\xff\u0100\u017f\u0180\u024f\u0250\u02af\u02b0\u02ff\u0300\u036f\u0370\u03ff\u0400\u04ff\u0530\u058f\u0590\u05ff\u0600\u06ff\u0700\u074f\u0780\u07bf\u0900\u097f\u0980\u09ff\u0a00\u0a7f\u0a80\u0aff\u0b00\u0b7f\u0b80\u0bff\u0c00\u0c7f\u0c80\u0cff\u0d00\u0d7f\u0d80\u0dff\u0e00\u0e7f\u0e80\u0eff\u0f00\u0fff\u1000\u109f\u10a0\u10ff\u1100\u11ff\u1200\u137f\u13a0\u13ff\u1400\u167f\u1680\u169f\u16a0\u16ff\u1780\u17ff\u1800\u18af\u1e00\u1eff\u1f00\u1fff\u2000\u206f\u2070\u209f\u20a0\u20cf\u20d0\u20ff\u2100\u214f\u2150\u218f\u2190\u21ff\u2200\u22ff\u2300\u23ff\u2400\u243f\u2440\u245f\u2460\u24ff\u2500\u257f\u2580\u259f\u25a0\u25ff\u2600\u26ff\u2700\u27bf\u2800\u28ff\u2e80\u2eff\u2f00\u2fdf\u2ff0\u2fff\u3000\u303f\u3040\u309f\u30a0\u30ff\u3100\u312f\u3130\u318f\u3190\u319f\u31a0\u31bf\u3200\u32ff\u3300\u33ff\u3400\u4db5\u4e00\u9fff\ua000\ua48f\ua490\ua4cf\uac00\ud7a3\ue000\uf8ff\uf900\ufaff\ufb00\ufb4f\ufb50\ufdff\ufe20\ufe2f\ufe30\ufe4f\ufe50\ufe6f\ufe70\ufefe\ufeff\ufeff\uff00\uffef",mnt="UNASSIGNED",ynt={3:1,117:1},knt="org.eclipse.emf.ecore.xml.type.util",jnt={3:1,4:1,5:1,368:1},Ent="org.eclipse.xtext.xbase.lib",Tnt="Cannot add elements to a Range",Mnt="Cannot set elements in a Range",Snt="Cannot remove elements from a Range",Pnt="locale",Cnt="default",Int="user.agent";e.goog=e.goog||{},e.goog.global=e.goog.global||e,WMn(),wAn(1,null,{},r),MWn.Fb=function(n){return FO(this,n)},MWn.Gb=function(){return this.gm},MWn.Hb=function(){return PN(this)},MWn.Ib=function(){return nE(tsn(this))+"@"+(nsn(this)>>>0).toString(16)},MWn.equals=function(n){return this.Fb(n)},MWn.hashCode=function(){return this.Hb()},MWn.toString=function(){return this.Ib()},wAn(290,1,{290:1,2026:1},pon),MWn.le=function(n){var t;return(t=new pon).i=4,t.c=n>1?gZ(this,n-1):this,t},MWn.me=function(){return ED(this),this.b},MWn.ne=function(){return nE(this)},MWn.oe=function(){return ED(this),this.k},MWn.pe=function(){return 0!=(4&this.i)},MWn.qe=function(){return 0!=(1&this.i)},MWn.Ib=function(){return utn(this)},MWn.i=0;var Ont,Ant=vX(RWn,"Object",1),$nt=vX(RWn,"Class",290);wAn(1998,1,KWn),vX(_Wn,"Optional",1998),wAn(1170,1998,KWn,c),MWn.Fb=function(n){return n===this},MWn.Hb=function(){return 2040732332},MWn.Ib=function(){return"Optional.absent()"},MWn.Jb=function(n){return yX(n),iy(),Ont},vX(_Wn,"Absent",1170),wAn(628,1,{},mk),vX(_Wn,"Joiner",628);var Lnt=bq(_Wn,"Predicate");wAn(582,1,{169:1,582:1,3:1,45:1},Hf),MWn.Mb=function(n){return Kon(this,n)},MWn.Lb=function(n){return Kon(this,n)},MWn.Fb=function(n){var t;return!!cL(n,582)&&(t=BB(n,582),NAn(this.a,t.a))},MWn.Hb=function(){return Fon(this.a)+306654252},MWn.Ib=function(){return wPn(this.a)},vX(_Wn,"Predicates/AndPredicate",582),wAn(408,1998,{408:1,3:1},qf),MWn.Fb=function(n){var t;return!!cL(n,408)&&(t=BB(n,408),Nfn(this.a,t.a))},MWn.Hb=function(){return 1502476572+nsn(this.a)},MWn.Ib=function(){return GWn+this.a+")"},MWn.Jb=function(n){return new qf(WQ(n.Kb(this.a),"the Function passed to Optional.transform() must not return null."))},vX(_Wn,"Present",408),wAn(198,1,UWn),MWn.Nb=function(n){fU(this,n)},MWn.Qb=function(){bk()},vX(XWn,"UnmodifiableIterator",198),wAn(1978,198,WWn),MWn.Qb=function(){bk()},MWn.Rb=function(n){throw Hp(new pv)},MWn.Wb=function(n){throw Hp(new pv)},vX(XWn,"UnmodifiableListIterator",1978),wAn(386,1978,WWn),MWn.Ob=function(){return this.c<this.d},MWn.Sb=function(){return this.c>0},MWn.Pb=function(){if(this.c>=this.d)throw Hp(new yv);return this.Xb(this.c++)},MWn.Tb=function(){return this.c},MWn.Ub=function(){if(this.c<=0)throw Hp(new yv);return this.Xb(--this.c)},MWn.Vb=function(){return this.c-1},MWn.c=0,MWn.d=0,vX(XWn,"AbstractIndexedListIterator",386),wAn(699,198,UWn),MWn.Ob=function(){return Zin(this)},MWn.Pb=function(){return P7(this)},MWn.e=1,vX(XWn,"AbstractIterator",699),wAn(1986,1,{224:1}),MWn.Zb=function(){return this.f||(this.f=this.ac())},MWn.Fb=function(n){return jsn(this,n)},MWn.Hb=function(){return nsn(this.Zb())},MWn.dc=function(){return 0==this.gc()},MWn.ec=function(){return gz(this)},MWn.Ib=function(){return Bbn(this.Zb())},vX(XWn,"AbstractMultimap",1986),wAn(726,1986,VWn),MWn.$b=function(){win(this)},MWn._b=function(n){return Wj(this,n)},MWn.ac=function(){return new pT(this,this.c)},MWn.ic=function(n){return this.hc()},MWn.bc=function(){return new HL(this,this.c)},MWn.jc=function(){return this.mc(this.hc())},MWn.kc=function(){return new Hm(this)},MWn.lc=function(){return qTn(this.c.vc().Nc(),new u,64,this.d)},MWn.cc=function(n){return h6(this,n)},MWn.fc=function(n){return Nhn(this,n)},MWn.gc=function(){return this.d},MWn.mc=function(n){return SQ(),new Hb(n)},MWn.nc=function(){return new Bm(this)},MWn.oc=function(){return qTn(this.c.Cc().Nc(),new a,64,this.d)},MWn.pc=function(n,t){return new W6(this,n,t,null)},MWn.d=0,vX(XWn,"AbstractMapBasedMultimap",726),wAn(1631,726,VWn),MWn.hc=function(){return new J6(this.a)},MWn.jc=function(){return SQ(),SQ(),set},MWn.cc=function(n){return BB(h6(this,n),15)},MWn.fc=function(n){return BB(Nhn(this,n),15)},MWn.Zb=function(){return OQ(this)},MWn.Fb=function(n){return jsn(this,n)},MWn.qc=function(n){return BB(h6(this,n),15)},MWn.rc=function(n){return BB(Nhn(this,n),15)},MWn.mc=function(n){return rY(BB(n,15))},MWn.pc=function(n,t){return i3(this,n,BB(t,15),null)},vX(XWn,"AbstractListMultimap",1631),wAn(732,1,QWn),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.c.Ob()||this.e.Ob()},MWn.Pb=function(){var n;return this.e.Ob()||(n=BB(this.c.Pb(),42),this.b=n.cd(),this.a=BB(n.dd(),14),this.e=this.a.Kc()),this.sc(this.b,this.e.Pb())},MWn.Qb=function(){this.e.Qb(),this.a.dc()&&this.c.Qb(),--this.d.d},vX(XWn,"AbstractMapBasedMultimap/Itr",732),wAn(1099,732,QWn,Bm),MWn.sc=function(n,t){return t},vX(XWn,"AbstractMapBasedMultimap/1",1099),wAn(1100,1,{},a),MWn.Kb=function(n){return BB(n,14).Nc()},vX(XWn,"AbstractMapBasedMultimap/1methodref$spliterator$Type",1100),wAn(1101,732,QWn,Hm),MWn.sc=function(n,t){return new vT(n,t)},vX(XWn,"AbstractMapBasedMultimap/2",1101);var Nnt=bq(YWn,"Map");wAn(1967,1,JWn),MWn.wc=function(n){nan(this,n)},MWn.yc=function(n,t,e){return Zln(this,n,t,e)},MWn.$b=function(){this.vc().$b()},MWn.tc=function(n){return Mmn(this,n)},MWn._b=function(n){return!!FEn(this,n,!1)},MWn.uc=function(n){var t,e;for(t=this.vc().Kc();t.Ob();)if(e=BB(t.Pb(),42).dd(),GI(n)===GI(e)||null!=n&&Nfn(n,e))return!0;return!1},MWn.Fb=function(n){var t,e,i;if(n===this)return!0;if(!cL(n,83))return!1;if(i=BB(n,83),this.gc()!=i.gc())return!1;for(e=i.vc().Kc();e.Ob();)if(t=BB(e.Pb(),42),!this.tc(t))return!1;return!0},MWn.xc=function(n){return qI(FEn(this,n,!1))},MWn.Hb=function(){return Hun(this.vc())},MWn.dc=function(){return 0==this.gc()},MWn.ec=function(){return new Cb(this)},MWn.zc=function(n,t){throw Hp(new tk("Put not supported on this map"))},MWn.Ac=function(n){Tcn(this,n)},MWn.Bc=function(n){return qI(FEn(this,n,!0))},MWn.gc=function(){return this.vc().gc()},MWn.Ib=function(){return nTn(this)},MWn.Cc=function(){return new Ob(this)},vX(YWn,"AbstractMap",1967),wAn(1987,1967,JWn),MWn.bc=function(){return new ST(this)},MWn.vc=function(){return dz(this)},MWn.ec=function(){return this.g||(this.g=this.bc())},MWn.Cc=function(){return this.i||(this.i=new PT(this))},vX(XWn,"Maps/ViewCachingAbstractMap",1987),wAn(389,1987,JWn,pT),MWn.xc=function(n){return ktn(this,n)},MWn.Bc=function(n){return Zsn(this,n)},MWn.$b=function(){this.d==this.e.c?this.e.$b():Cq(new Oq(this))},MWn._b=function(n){return gfn(this.d,n)},MWn.Ec=function(){return new Xf(this)},MWn.Dc=function(){return this.Ec()},MWn.Fb=function(n){return this===n||Nfn(this.d,n)},MWn.Hb=function(){return nsn(this.d)},MWn.ec=function(){return this.e.ec()},MWn.gc=function(){return this.d.gc()},MWn.Ib=function(){return Bbn(this.d)},vX(XWn,"AbstractMapBasedMultimap/AsMap",389);var xnt=bq(RWn,"Iterable");wAn(28,1,ZWn),MWn.Jc=function(n){e5(this,n)},MWn.Lc=function(){return this.Oc()},MWn.Nc=function(){return new w1(this,0)},MWn.Oc=function(){return new Rq(null,this.Nc())},MWn.Fc=function(n){throw Hp(new tk("Add not supported on this collection"))},MWn.Gc=function(n){return Frn(this,n)},MWn.$b=function(){TV(this)},MWn.Hc=function(n){return ywn(this,n,!1)},MWn.Ic=function(n){return oun(this,n)},MWn.dc=function(){return 0==this.gc()},MWn.Mc=function(n){return ywn(this,n,!0)},MWn.Pc=function(){return cz(this)},MWn.Qc=function(n){return Emn(this,n)},MWn.Ib=function(){return LMn(this)},vX(YWn,"AbstractCollection",28);var Dnt=bq(YWn,"Set");wAn(nVn,28,tVn),MWn.Nc=function(){return new w1(this,1)},MWn.Fb=function(n){return ign(this,n)},MWn.Hb=function(){return Hun(this)},vX(YWn,"AbstractSet",nVn),wAn(1970,nVn,tVn),vX(XWn,"Sets/ImprovedAbstractSet",1970),wAn(1971,1970,tVn),MWn.$b=function(){this.Rc().$b()},MWn.Hc=function(n){return idn(this,n)},MWn.dc=function(){return this.Rc().dc()},MWn.Mc=function(n){var t;return!!this.Hc(n)&&(t=BB(n,42),this.Rc().ec().Mc(t.cd()))},MWn.gc=function(){return this.Rc().gc()},vX(XWn,"Maps/EntrySet",1971),wAn(1097,1971,tVn,Xf),MWn.Hc=function(n){return wfn(this.a.d.vc(),n)},MWn.Kc=function(){return new Oq(this.a)},MWn.Rc=function(){return this.a},MWn.Mc=function(n){var t;return!!wfn(this.a.d.vc(),n)&&(t=BB(n,42),H5(this.a.e,t.cd()),!0)},MWn.Nc=function(){return RB(this.a.d.vc().Nc(),new Wf(this.a))},vX(XWn,"AbstractMapBasedMultimap/AsMap/AsMapEntries",1097),wAn(1098,1,{},Wf),MWn.Kb=function(n){return i5(this.a,BB(n,42))},vX(XWn,"AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type",1098),wAn(730,1,QWn,Oq),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){var n;return n=BB(this.b.Pb(),42),this.a=BB(n.dd(),14),i5(this.c,n)},MWn.Ob=function(){return this.b.Ob()},MWn.Qb=function(){han(!!this.a),this.b.Qb(),this.c.e.d-=this.a.gc(),this.a.$b(),this.a=null},vX(XWn,"AbstractMapBasedMultimap/AsMap/AsMapIterator",730),wAn(532,1970,tVn,ST),MWn.$b=function(){this.b.$b()},MWn.Hc=function(n){return this.b._b(n)},MWn.Jc=function(n){yX(n),this.b.wc(new vl(n))},MWn.dc=function(){return this.b.dc()},MWn.Kc=function(){return new ly(this.b.vc().Kc())},MWn.Mc=function(n){return!!this.b._b(n)&&(this.b.Bc(n),!0)},MWn.gc=function(){return this.b.gc()},vX(XWn,"Maps/KeySet",532),wAn(318,532,tVn,HL),MWn.$b=function(){Cq(new eT(this,this.b.vc().Kc()))},MWn.Ic=function(n){return this.b.ec().Ic(n)},MWn.Fb=function(n){return this===n||Nfn(this.b.ec(),n)},MWn.Hb=function(){return nsn(this.b.ec())},MWn.Kc=function(){return new eT(this,this.b.vc().Kc())},MWn.Mc=function(n){var t,e;return e=0,(t=BB(this.b.Bc(n),14))&&(e=t.gc(),t.$b(),this.a.d-=e),e>0},MWn.Nc=function(){return this.b.ec().Nc()},vX(XWn,"AbstractMapBasedMultimap/KeySet",318),wAn(731,1,QWn,eT),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.c.Ob()},MWn.Pb=function(){return this.a=BB(this.c.Pb(),42),this.a.cd()},MWn.Qb=function(){var n;han(!!this.a),n=BB(this.a.dd(),14),this.c.Qb(),this.b.a.d-=n.gc(),n.$b(),this.a=null},vX(XWn,"AbstractMapBasedMultimap/KeySet/1",731),wAn(491,389,{83:1,161:1},CD),MWn.bc=function(){return this.Sc()},MWn.ec=function(){return this.Tc()},MWn.Sc=function(){return new nT(this.c,this.Uc())},MWn.Tc=function(){return this.b||(this.b=this.Sc())},MWn.Uc=function(){return BB(this.d,161)},vX(XWn,"AbstractMapBasedMultimap/SortedAsMap",491),wAn(542,491,eVn,ID),MWn.bc=function(){return new tT(this.a,BB(BB(this.d,161),171))},MWn.Sc=function(){return new tT(this.a,BB(BB(this.d,161),171))},MWn.ec=function(){return BB(this.b||(this.b=new tT(this.a,BB(BB(this.d,161),171))),271)},MWn.Tc=function(){return BB(this.b||(this.b=new tT(this.a,BB(BB(this.d,161),171))),271)},MWn.Uc=function(){return BB(BB(this.d,161),171)},vX(XWn,"AbstractMapBasedMultimap/NavigableAsMap",542),wAn(490,318,iVn,nT),MWn.Nc=function(){return this.b.ec().Nc()},vX(XWn,"AbstractMapBasedMultimap/SortedKeySet",490),wAn(388,490,rVn,tT),vX(XWn,"AbstractMapBasedMultimap/NavigableKeySet",388),wAn(541,28,ZWn,W6),MWn.Fc=function(n){var t,e;return zbn(this),e=this.d.dc(),(t=this.d.Fc(n))&&(++this.f.d,e&&jR(this)),t},MWn.Gc=function(n){var t,e,i;return!n.dc()&&(zbn(this),i=this.d.gc(),(t=this.d.Gc(n))&&(e=this.d.gc(),this.f.d+=e-i,0==i&&jR(this)),t)},MWn.$b=function(){var n;zbn(this),0!=(n=this.d.gc())&&(this.d.$b(),this.f.d-=n,$G(this))},MWn.Hc=function(n){return zbn(this),this.d.Hc(n)},MWn.Ic=function(n){return zbn(this),this.d.Ic(n)},MWn.Fb=function(n){return n===this||(zbn(this),Nfn(this.d,n))},MWn.Hb=function(){return zbn(this),nsn(this.d)},MWn.Kc=function(){return zbn(this),new QB(this)},MWn.Mc=function(n){var t;return zbn(this),(t=this.d.Mc(n))&&(--this.f.d,$G(this)),t},MWn.gc=function(){return tO(this)},MWn.Nc=function(){return zbn(this),this.d.Nc()},MWn.Ib=function(){return zbn(this),Bbn(this.d)},vX(XWn,"AbstractMapBasedMultimap/WrappedCollection",541);var Rnt=bq(YWn,"List");wAn(728,541,{20:1,28:1,14:1,15:1},sz),MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return zbn(this),this.d.Nc()},MWn.Vc=function(n,t){var e;zbn(this),e=this.d.dc(),BB(this.d,15).Vc(n,t),++this.a.d,e&&jR(this)},MWn.Wc=function(n,t){var e,i,r;return!t.dc()&&(zbn(this),r=this.d.gc(),(e=BB(this.d,15).Wc(n,t))&&(i=this.d.gc(),this.a.d+=i-r,0==r&&jR(this)),e)},MWn.Xb=function(n){return zbn(this),BB(this.d,15).Xb(n)},MWn.Xc=function(n){return zbn(this),BB(this.d,15).Xc(n)},MWn.Yc=function(){return zbn(this),new g$(this)},MWn.Zc=function(n){return zbn(this),new gQ(this,n)},MWn.$c=function(n){var t;return zbn(this),t=BB(this.d,15).$c(n),--this.a.d,$G(this),t},MWn._c=function(n,t){return zbn(this),BB(this.d,15)._c(n,t)},MWn.bd=function(n,t){return zbn(this),i3(this.a,this.e,BB(this.d,15).bd(n,t),this.b?this.b:this)},vX(XWn,"AbstractMapBasedMultimap/WrappedList",728),wAn(1096,728,{20:1,28:1,14:1,15:1,54:1},Ox),vX(XWn,"AbstractMapBasedMultimap/RandomAccessWrappedList",1096),wAn(620,1,QWn,QB),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return MV(this),this.b.Ob()},MWn.Pb=function(){return MV(this),this.b.Pb()},MWn.Qb=function(){eN(this)},vX(XWn,"AbstractMapBasedMultimap/WrappedCollection/WrappedIterator",620),wAn(729,620,cVn,g$,gQ),MWn.Qb=function(){eN(this)},MWn.Rb=function(n){var t;t=0==tO(this.a),(MV(this),BB(this.b,125)).Rb(n),++this.a.a.d,t&&jR(this.a)},MWn.Sb=function(){return(MV(this),BB(this.b,125)).Sb()},MWn.Tb=function(){return(MV(this),BB(this.b,125)).Tb()},MWn.Ub=function(){return(MV(this),BB(this.b,125)).Ub()},MWn.Vb=function(){return(MV(this),BB(this.b,125)).Vb()},MWn.Wb=function(n){(MV(this),BB(this.b,125)).Wb(n)},vX(XWn,"AbstractMapBasedMultimap/WrappedList/WrappedListIterator",729),wAn(727,541,iVn,ND),MWn.Nc=function(){return zbn(this),this.d.Nc()},vX(XWn,"AbstractMapBasedMultimap/WrappedSortedSet",727),wAn(1095,727,rVn,AA),vX(XWn,"AbstractMapBasedMultimap/WrappedNavigableSet",1095),wAn(1094,541,tVn,xD),MWn.Nc=function(){return zbn(this),this.d.Nc()},vX(XWn,"AbstractMapBasedMultimap/WrappedSet",1094),wAn(1103,1,{},u),MWn.Kb=function(n){return F6(BB(n,42))},vX(XWn,"AbstractMapBasedMultimap/lambda$1$Type",1103),wAn(1102,1,{},Vf),MWn.Kb=function(n){return new vT(this.a,n)},vX(XWn,"AbstractMapBasedMultimap/lambda$2$Type",1102);var Knt,_nt,Fnt,Bnt,Hnt=bq(YWn,"Map/Entry");wAn(345,1,aVn),MWn.Fb=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),wW(this.cd(),t.cd())&&wW(this.dd(),t.dd()))},MWn.Hb=function(){var n,t;return n=this.cd(),t=this.dd(),(null==n?0:nsn(n))^(null==t?0:nsn(t))},MWn.ed=function(n){throw Hp(new pv)},MWn.Ib=function(){return this.cd()+"="+this.dd()},vX(XWn,uVn,345),wAn(1988,28,ZWn),MWn.$b=function(){this.fd().$b()},MWn.Hc=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),H0(this.fd(),t.cd(),t.dd()))},MWn.Mc=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),q0(this.fd(),t.cd(),t.dd()))},MWn.gc=function(){return this.fd().d},vX(XWn,"Multimaps/Entries",1988),wAn(733,1988,ZWn,Qf),MWn.Kc=function(){return this.a.kc()},MWn.fd=function(){return this.a},MWn.Nc=function(){return this.a.lc()},vX(XWn,"AbstractMultimap/Entries",733),wAn(734,733,tVn,qm),MWn.Nc=function(){return this.a.lc()},MWn.Fb=function(n){return zSn(this,n)},MWn.Hb=function(){return Brn(this)},vX(XWn,"AbstractMultimap/EntrySet",734),wAn(735,28,ZWn,Yf),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return Isn(this.a,n)},MWn.Kc=function(){return this.a.nc()},MWn.gc=function(){return this.a.d},MWn.Nc=function(){return this.a.oc()},vX(XWn,"AbstractMultimap/Values",735),wAn(1989,28,{835:1,20:1,28:1,14:1}),MWn.Jc=function(n){yX(n),EV(this).Jc(new pl(n))},MWn.Nc=function(){var n;return qTn(n=EV(this).Nc(),new y,64|1296&n.qd(),this.a.d)},MWn.Fc=function(n){return wk(),!0},MWn.Gc=function(n){return yX(this),yX(n),cL(n,543)?l2(BB(n,835)):!n.dc()&&fnn(this,n.Kc())},MWn.Hc=function(n){var t;return((t=BB(lfn(OQ(this.a),n),14))?t.gc():0)>0},MWn.Fb=function(n){return h$n(this,n)},MWn.Hb=function(){return nsn(EV(this))},MWn.dc=function(){return EV(this).dc()},MWn.Mc=function(n){return EIn(this,n,1)>0},MWn.Ib=function(){return Bbn(EV(this))},vX(XWn,"AbstractMultiset",1989),wAn(1991,1970,tVn),MWn.$b=function(){win(this.a.a)},MWn.Hc=function(n){var t;return!(!cL(n,492)||(t=BB(n,416),BB(t.a.dd(),14).gc()<=0||c1(this.a,t.a.cd())!=BB(t.a.dd(),14).gc()))},MWn.Mc=function(n){var t,e,i;return!(!cL(n,492)||(t=(e=BB(n,416)).a.cd(),0==(i=BB(e.a.dd(),14).gc())))&&TIn(this.a,t,i)},vX(XWn,"Multisets/EntrySet",1991),wAn(1109,1991,tVn,Jf),MWn.Kc=function(){return new wy(dz(OQ(this.a.a)).Kc())},MWn.gc=function(){return OQ(this.a.a).gc()},vX(XWn,"AbstractMultiset/EntrySet",1109),wAn(619,726,VWn),MWn.hc=function(){return this.gd()},MWn.jc=function(){return this.hd()},MWn.cc=function(n){return this.jd(n)},MWn.fc=function(n){return this.kd(n)},MWn.Zb=function(){return this.f||(this.f=this.ac())},MWn.hd=function(){return SQ(),SQ(),fet},MWn.Fb=function(n){return jsn(this,n)},MWn.jd=function(n){return BB(h6(this,n),21)},MWn.kd=function(n){return BB(Nhn(this,n),21)},MWn.mc=function(n){return SQ(),new Ak(BB(n,21))},MWn.pc=function(n,t){return new xD(this,n,BB(t,21))},vX(XWn,"AbstractSetMultimap",619),wAn(1657,619,VWn),MWn.hc=function(){return new dE(this.b)},MWn.gd=function(){return new dE(this.b)},MWn.jc=function(){return IX(new dE(this.b))},MWn.hd=function(){return IX(new dE(this.b))},MWn.cc=function(n){return BB(BB(h6(this,n),21),84)},MWn.jd=function(n){return BB(BB(h6(this,n),21),84)},MWn.fc=function(n){return BB(BB(Nhn(this,n),21),84)},MWn.kd=function(n){return BB(BB(Nhn(this,n),21),84)},MWn.mc=function(n){return cL(n,271)?IX(BB(n,271)):(SQ(),new dN(BB(n,84)))},MWn.Zb=function(){return this.f||(this.f=cL(this.c,171)?new ID(this,BB(this.c,171)):cL(this.c,161)?new CD(this,BB(this.c,161)):new pT(this,this.c))},MWn.pc=function(n,t){return cL(t,271)?new AA(this,n,BB(t,271)):new ND(this,n,BB(t,84))},vX(XWn,"AbstractSortedSetMultimap",1657),wAn(1658,1657,VWn),MWn.Zb=function(){return BB(BB(this.f||(this.f=cL(this.c,171)?new ID(this,BB(this.c,171)):cL(this.c,161)?new CD(this,BB(this.c,161)):new pT(this,this.c)),161),171)},MWn.ec=function(){return BB(BB(this.i||(this.i=cL(this.c,171)?new tT(this,BB(this.c,171)):cL(this.c,161)?new nT(this,BB(this.c,161)):new HL(this,this.c)),84),271)},MWn.bc=function(){return cL(this.c,171)?new tT(this,BB(this.c,171)):cL(this.c,161)?new nT(this,BB(this.c,161)):new HL(this,this.c)},vX(XWn,"AbstractSortedKeySortedSetMultimap",1658),wAn(2010,1,{1947:1}),MWn.Fb=function(n){return Cjn(this,n)},MWn.Hb=function(){return Hun(this.g||(this.g=new Zf(this)))},MWn.Ib=function(){return nTn(this.f||(this.f=new UL(this)))},vX(XWn,"AbstractTable",2010),wAn(665,nVn,tVn,Zf),MWn.$b=function(){dk()},MWn.Hc=function(n){var t,e;return!!cL(n,468)&&(t=BB(n,682),!!(e=BB(lfn(jX(this.a),WI(t.c.e,t.b)),83))&&wfn(e.vc(),new vT(WI(t.c.c,t.a),U6(t.c,t.b,t.a))))},MWn.Kc=function(){return ZQ(this.a)},MWn.Mc=function(n){var t,e;return!!cL(n,468)&&(t=BB(n,682),!!(e=BB(lfn(jX(this.a),WI(t.c.e,t.b)),83))&&dfn(e.vc(),new vT(WI(t.c.c,t.a),U6(t.c,t.b,t.a))))},MWn.gc=function(){return zq(this.a)},MWn.Nc=function(){return P2(this.a)},vX(XWn,"AbstractTable/CellSet",665),wAn(1928,28,ZWn,nl),MWn.$b=function(){dk()},MWn.Hc=function(n){return hTn(this.a,n)},MWn.Kc=function(){return nY(this.a)},MWn.gc=function(){return zq(this.a)},MWn.Nc=function(){return Y0(this.a)},vX(XWn,"AbstractTable/Values",1928),wAn(1632,1631,VWn),vX(XWn,"ArrayListMultimapGwtSerializationDependencies",1632),wAn(513,1632,VWn,ok,o1),MWn.hc=function(){return new J6(this.a)},MWn.a=0,vX(XWn,"ArrayListMultimap",513),wAn(664,2010,{664:1,1947:1,3:1},vOn),vX(XWn,"ArrayTable",664),wAn(1924,386,WWn,qL),MWn.Xb=function(n){return new gon(this.a,n)},vX(XWn,"ArrayTable/1",1924),wAn(1925,1,{},Gf),MWn.ld=function(n){return new gon(this.a,n)},vX(XWn,"ArrayTable/1methodref$getCell$Type",1925),wAn(2011,1,{682:1}),MWn.Fb=function(n){var t;return n===this||!!cL(n,468)&&(t=BB(n,682),wW(WI(this.c.e,this.b),WI(t.c.e,t.b))&&wW(WI(this.c.c,this.a),WI(t.c.c,t.a))&&wW(U6(this.c,this.b,this.a),U6(t.c,t.b,t.a)))},MWn.Hb=function(){return fhn(Pun(Gk(Ant,1),HWn,1,5,[WI(this.c.e,this.b),WI(this.c.c,this.a),U6(this.c,this.b,this.a)]))},MWn.Ib=function(){return"("+WI(this.c.e,this.b)+","+WI(this.c.c,this.a)+")="+U6(this.c,this.b,this.a)},vX(XWn,"Tables/AbstractCell",2011),wAn(468,2011,{468:1,682:1},gon),MWn.a=0,MWn.b=0,MWn.d=0,vX(XWn,"ArrayTable/2",468),wAn(1927,1,{},zf),MWn.ld=function(n){return Y9(this.a,n)},vX(XWn,"ArrayTable/2methodref$getValue$Type",1927),wAn(1926,386,WWn,GL),MWn.Xb=function(n){return Y9(this.a,n)},vX(XWn,"ArrayTable/3",1926),wAn(1979,1967,JWn),MWn.$b=function(){Cq(this.kc())},MWn.vc=function(){return new ml(this)},MWn.lc=function(){return new CV(this.kc(),this.gc())},vX(XWn,"Maps/IteratorBasedAbstractMap",1979),wAn(828,1979,JWn),MWn.$b=function(){throw Hp(new pv)},MWn._b=function(n){return Yj(this.c,n)},MWn.kc=function(){return new zL(this,this.c.b.c.gc())},MWn.lc=function(){return yq(this.c.b.c.gc(),16,new Uf(this))},MWn.xc=function(n){var t;return(t=BB(UK(this.c,n),19))?this.nd(t.a):null},MWn.dc=function(){return this.c.b.c.dc()},MWn.ec=function(){return bz(this.c)},MWn.zc=function(n,t){var e;if(!(e=BB(UK(this.c,n),19)))throw Hp(new _y(this.md()+" "+n+" not in "+bz(this.c)));return this.od(e.a,t)},MWn.Bc=function(n){throw Hp(new pv)},MWn.gc=function(){return this.c.b.c.gc()},vX(XWn,"ArrayTable/ArrayMap",828),wAn(1923,1,{},Uf),MWn.ld=function(n){return OX(this.a,n)},vX(XWn,"ArrayTable/ArrayMap/0methodref$getEntry$Type",1923),wAn(1921,345,aVn,sT),MWn.cd=function(){return YL(this.a,this.b)},MWn.dd=function(){return this.a.nd(this.b)},MWn.ed=function(n){return this.a.od(this.b,n)},MWn.b=0,vX(XWn,"ArrayTable/ArrayMap/1",1921),wAn(1922,386,WWn,zL),MWn.Xb=function(n){return OX(this.a,n)},vX(XWn,"ArrayTable/ArrayMap/2",1922),wAn(1920,828,JWn,cU),MWn.md=function(){return"Column"},MWn.nd=function(n){return U6(this.b,this.a,n)},MWn.od=function(n,t){return Sun(this.b,this.a,n,t)},MWn.a=0,vX(XWn,"ArrayTable/Row",1920),wAn(829,828,JWn,UL),MWn.nd=function(n){return new cU(this.a,n)},MWn.zc=function(n,t){return BB(t,83),gk()},MWn.od=function(n,t){return BB(t,83),pk()},MWn.md=function(){return"Row"},vX(XWn,"ArrayTable/RowMap",829),wAn(1120,1,fVn,hT),MWn.qd=function(){return-262&this.a.qd()},MWn.rd=function(){return this.a.rd()},MWn.Nb=function(n){this.a.Nb(new cT(n,this.b))},MWn.sd=function(n){return this.a.sd(new rT(n,this.b))},vX(XWn,"CollectSpliterators/1",1120),wAn(1121,1,lVn,rT),MWn.td=function(n){this.a.td(this.b.Kb(n))},vX(XWn,"CollectSpliterators/1/lambda$0$Type",1121),wAn(1122,1,lVn,cT),MWn.td=function(n){this.a.td(this.b.Kb(n))},vX(XWn,"CollectSpliterators/1/lambda$1$Type",1122),wAn(1123,1,fVn,q2),MWn.qd=function(){return this.a},MWn.rd=function(){return this.d&&(this.b=T$(this.b,this.d.rd())),T$(this.b,0)},MWn.Nb=function(n){this.d&&(this.d.Nb(n),this.d=null),this.c.Nb(new iT(this.e,n)),this.b=0},MWn.sd=function(n){for(;;){if(this.d&&this.d.sd(n))return JI(this.b,bVn)&&(this.b=ibn(this.b,1)),!0;if(this.d=null,!this.c.sd(new aT(this,this.e)))return!1}},MWn.a=0,MWn.b=0,vX(XWn,"CollectSpliterators/1FlatMapSpliterator",1123),wAn(1124,1,lVn,aT),MWn.td=function(n){dK(this.a,this.b,n)},vX(XWn,"CollectSpliterators/1FlatMapSpliterator/lambda$0$Type",1124),wAn(1125,1,lVn,iT),MWn.td=function(n){oL(this.b,this.a,n)},vX(XWn,"CollectSpliterators/1FlatMapSpliterator/lambda$1$Type",1125),wAn(1117,1,fVn,wK),MWn.qd=function(){return 16464|this.b},MWn.rd=function(){return this.a.rd()},MWn.Nb=function(n){this.a.xe(new oT(n,this.c))},MWn.sd=function(n){return this.a.ye(new uT(n,this.c))},MWn.b=0,vX(XWn,"CollectSpliterators/1WithCharacteristics",1117),wAn(1118,1,wVn,uT),MWn.ud=function(n){this.a.td(this.b.ld(n))},vX(XWn,"CollectSpliterators/1WithCharacteristics/lambda$0$Type",1118),wAn(1119,1,wVn,oT),MWn.ud=function(n){this.a.td(this.b.ld(n))},vX(XWn,"CollectSpliterators/1WithCharacteristics/lambda$1$Type",1119),wAn(245,1,dVn),MWn.wd=function(n){return this.vd(BB(n,245))},MWn.vd=function(n){var t;return n==(ty(),_nt)?1:n==(ey(),Knt)?-1:(nq(),0!=(t=Ncn(this.a,n.a))?t:cL(this,519)==cL(n,519)?0:cL(this,519)?1:-1)},MWn.zd=function(){return this.a},MWn.Fb=function(n){return xdn(this,n)},vX(XWn,"Cut",245),wAn(1761,245,dVn,Nk),MWn.vd=function(n){return n==this?0:1},MWn.xd=function(n){throw Hp(new hv)},MWn.yd=function(n){n.a+="+\u221e)"},MWn.zd=function(){throw Hp(new Fy(gVn))},MWn.Hb=function(){return $T(),evn(this)},MWn.Ad=function(n){return!1},MWn.Ib=function(){return"+\u221e"},vX(XWn,"Cut/AboveAll",1761),wAn(519,245,{245:1,519:1,3:1,35:1},iN),MWn.xd=function(n){uO((n.a+="(",n),this.a)},MWn.yd=function(n){xX(uO(n,this.a),93)},MWn.Hb=function(){return~nsn(this.a)},MWn.Ad=function(n){return nq(),Ncn(this.a,n)<0},MWn.Ib=function(){return"/"+this.a+"\\"},vX(XWn,"Cut/AboveValue",519),wAn(1760,245,dVn,xk),MWn.vd=function(n){return n==this?0:-1},MWn.xd=function(n){n.a+="(-\u221e"},MWn.yd=function(n){throw Hp(new hv)},MWn.zd=function(){throw Hp(new Fy(gVn))},MWn.Hb=function(){return $T(),evn(this)},MWn.Ad=function(n){return!0},MWn.Ib=function(){return"-\u221e"},vX(XWn,"Cut/BelowAll",1760),wAn(1762,245,dVn,rN),MWn.xd=function(n){uO((n.a+="[",n),this.a)},MWn.yd=function(n){xX(uO(n,this.a),41)},MWn.Hb=function(){return nsn(this.a)},MWn.Ad=function(n){return nq(),Ncn(this.a,n)<=0},MWn.Ib=function(){return"\\"+this.a+"/"},vX(XWn,"Cut/BelowValue",1762),wAn(537,1,pVn),MWn.Jc=function(n){e5(this,n)},MWn.Ib=function(){return Hln(BB(WQ(this,"use Optional.orNull() instead of Optional.or(null)"),20).Kc())},vX(XWn,"FluentIterable",537),wAn(433,537,pVn,OO),MWn.Kc=function(){return new oz(ZL(this.a.Kc(),new h))},vX(XWn,"FluentIterable/2",433),wAn(1046,537,pVn,AO),MWn.Kc=function(){return NU(this)},vX(XWn,"FluentIterable/3",1046),wAn(708,386,WWn,WL),MWn.Xb=function(n){return this.a[n].Kc()},vX(XWn,"FluentIterable/3/1",708),wAn(1972,1,{}),MWn.Ib=function(){return Bbn(this.Bd().b)},vX(XWn,"ForwardingObject",1972),wAn(1973,1972,vVn),MWn.Bd=function(){return this.Cd()},MWn.Jc=function(n){e5(this,n)},MWn.Lc=function(){return this.Oc()},MWn.Nc=function(){return new w1(this,0)},MWn.Oc=function(){return new Rq(null,this.Nc())},MWn.Fc=function(n){return this.Cd(),oE()},MWn.Gc=function(n){return this.Cd(),sE()},MWn.$b=function(){this.Cd(),hE()},MWn.Hc=function(n){return this.Cd().Hc(n)},MWn.Ic=function(n){return this.Cd().Ic(n)},MWn.dc=function(){return this.Cd().b.dc()},MWn.Kc=function(){return this.Cd().Kc()},MWn.Mc=function(n){return this.Cd(),fE()},MWn.gc=function(){return this.Cd().b.gc()},MWn.Pc=function(){return this.Cd().Pc()},MWn.Qc=function(n){return this.Cd().Qc(n)},vX(XWn,"ForwardingCollection",1973),wAn(1980,28,mVn),MWn.Kc=function(){return this.Ed()},MWn.Fc=function(n){throw Hp(new pv)},MWn.Gc=function(n){throw Hp(new pv)},MWn.$b=function(){throw Hp(new pv)},MWn.Hc=function(n){return null!=n&&ywn(this,n,!1)},MWn.Dd=function(){switch(this.gc()){case 0:return WX(),WX(),Fnt;case 1:return WX(),new Pq(yX(this.Ed().Pb()));default:return new aU(this,this.Pc())}},MWn.Mc=function(n){throw Hp(new pv)},vX(XWn,"ImmutableCollection",1980),wAn(712,1980,mVn,rv),MWn.Kc=function(){return L9(this.a.Kc())},MWn.Hc=function(n){return null!=n&&this.a.Hc(n)},MWn.Ic=function(n){return this.a.Ic(n)},MWn.dc=function(){return this.a.dc()},MWn.Ed=function(){return L9(this.a.Kc())},MWn.gc=function(){return this.a.gc()},MWn.Pc=function(){return this.a.Pc()},MWn.Qc=function(n){return this.a.Qc(n)},MWn.Ib=function(){return Bbn(this.a)},vX(XWn,"ForwardingImmutableCollection",712),wAn(152,1980,yVn),MWn.Kc=function(){return this.Ed()},MWn.Yc=function(){return this.Fd(0)},MWn.Zc=function(n){return this.Fd(n)},MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.bd=function(n,t){return this.Gd(n,t)},MWn.Vc=function(n,t){throw Hp(new pv)},MWn.Wc=function(n,t){throw Hp(new pv)},MWn.Fb=function(n){return qAn(this,n)},MWn.Hb=function(){return Ian(this)},MWn.Xc=function(n){return null==n?-1:Tmn(this,n)},MWn.Ed=function(){return this.Fd(0)},MWn.Fd=function(n){return ix(this,n)},MWn.$c=function(n){throw Hp(new pv)},MWn._c=function(n,t){throw Hp(new pv)},MWn.Gd=function(n,t){return sfn(new s1(new IT(this),n,t))},vX(XWn,"ImmutableList",152),wAn(2006,152,yVn),MWn.Kc=function(){return L9(this.Hd().Kc())},MWn.bd=function(n,t){return sfn(this.Hd().bd(n,t))},MWn.Hc=function(n){return null!=n&&this.Hd().Hc(n)},MWn.Ic=function(n){return this.Hd().Ic(n)},MWn.Fb=function(n){return Nfn(this.Hd(),n)},MWn.Xb=function(n){return WI(this,n)},MWn.Hb=function(){return nsn(this.Hd())},MWn.Xc=function(n){return this.Hd().Xc(n)},MWn.dc=function(){return this.Hd().dc()},MWn.Ed=function(){return L9(this.Hd().Kc())},MWn.gc=function(){return this.Hd().gc()},MWn.Gd=function(n,t){return sfn(this.Hd().bd(n,t))},MWn.Pc=function(){return this.Hd().Qc(x8(Ant,HWn,1,this.Hd().gc(),5,1))},MWn.Qc=function(n){return this.Hd().Qc(n)},MWn.Ib=function(){return Bbn(this.Hd())},vX(XWn,"ForwardingImmutableList",2006),wAn(714,1,jVn),MWn.vc=function(){return lz(this)},MWn.wc=function(n){nan(this,n)},MWn.ec=function(){return bz(this)},MWn.yc=function(n,t,e){return Zln(this,n,t,e)},MWn.Cc=function(){return this.Ld()},MWn.$b=function(){throw Hp(new pv)},MWn._b=function(n){return null!=this.xc(n)},MWn.uc=function(n){return this.Ld().Hc(n)},MWn.Jd=function(){return new cv(this)},MWn.Kd=function(){return new av(this)},MWn.Fb=function(n){return $sn(this,n)},MWn.Hb=function(){return lz(this).Hb()},MWn.dc=function(){return 0==this.gc()},MWn.zc=function(n,t){return vk()},MWn.Bc=function(n){throw Hp(new pv)},MWn.Ib=function(){return fSn(this)},MWn.Ld=function(){return this.e?this.e:this.e=this.Kd()},MWn.c=null,MWn.d=null,MWn.e=null,vX(XWn,"ImmutableMap",714),wAn(715,714,jVn),MWn._b=function(n){return Yj(this,n)},MWn.uc=function(n){return _T(this.b,n)},MWn.Id=function(){return hfn(new el(this))},MWn.Jd=function(){return hfn(iV(this.b))},MWn.Kd=function(){return s_(),new rv(tV(this.b))},MWn.Fb=function(n){return BT(this.b,n)},MWn.xc=function(n){return UK(this,n)},MWn.Hb=function(){return nsn(this.b.c)},MWn.dc=function(){return this.b.c.dc()},MWn.gc=function(){return this.b.c.gc()},MWn.Ib=function(){return Bbn(this.b.c)},vX(XWn,"ForwardingImmutableMap",715),wAn(1974,1973,EVn),MWn.Bd=function(){return this.Md()},MWn.Cd=function(){return this.Md()},MWn.Nc=function(){return new w1(this,1)},MWn.Fb=function(n){return n===this||this.Md().Fb(n)},MWn.Hb=function(){return this.Md().Hb()},vX(XWn,"ForwardingSet",1974),wAn(1069,1974,EVn,el),MWn.Bd=function(){return eV(this.a.b)},MWn.Cd=function(){return eV(this.a.b)},MWn.Hc=function(n){if(cL(n,42)&&null==BB(n,42).cd())return!1;try{return KT(eV(this.a.b),n)}catch(t){if(cL(t=lun(t),205))return!1;throw Hp(t)}},MWn.Md=function(){return eV(this.a.b)},MWn.Qc=function(n){var t;return t=IY(eV(this.a.b),n),eV(this.a.b).b.gc()<t.length&&$X(t,eV(this.a.b).b.gc(),null),t},vX(XWn,"ForwardingImmutableMap/1",1069),wAn(1981,1980,TVn),MWn.Kc=function(){return this.Ed()},MWn.Nc=function(){return new w1(this,1)},MWn.Fb=function(n){return zSn(this,n)},MWn.Hb=function(){return Brn(this)},vX(XWn,"ImmutableSet",1981),wAn(703,1981,TVn),MWn.Kc=function(){return L9(new qb(this.a.b.Kc()))},MWn.Hc=function(n){return null!=n&&xT(this.a,n)},MWn.Ic=function(n){return DT(this.a,n)},MWn.Hb=function(){return nsn(this.a.b)},MWn.dc=function(){return this.a.b.dc()},MWn.Ed=function(){return L9(new qb(this.a.b.Kc()))},MWn.gc=function(){return this.a.b.gc()},MWn.Pc=function(){return this.a.b.Pc()},MWn.Qc=function(n){return RT(this.a,n)},MWn.Ib=function(){return Bbn(this.a.b)},vX(XWn,"ForwardingImmutableSet",703),wAn(1975,1974,MVn),MWn.Bd=function(){return this.b},MWn.Cd=function(){return this.b},MWn.Md=function(){return this.b},MWn.Nc=function(){return new wS(this)},vX(XWn,"ForwardingSortedSet",1975),wAn(533,1979,jVn,Avn),MWn.Ac=function(n){Tcn(this,n)},MWn.Cc=function(){return new p$(this.d||(this.d=new il(this)))},MWn.$b=function(){d5(this)},MWn._b=function(n){return!!Jrn(this,n,dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15))))},MWn.uc=function(n){return Ltn(this,n)},MWn.kc=function(){return new VL(this,this)},MWn.wc=function(n){BJ(this,n)},MWn.xc=function(n){return sen(this,n)},MWn.ec=function(){return new v$(this)},MWn.zc=function(n,t){return wKn(this,n,t)},MWn.Bc=function(n){var t;return(t=Jrn(this,n,dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15)))))?(LLn(this,t),t.e=null,t.c=null,t.i):null},MWn.gc=function(){return this.i},MWn.pd=function(){return new p$(this.d||(this.d=new il(this)))},MWn.f=0,MWn.g=0,MWn.i=0,vX(XWn,"HashBiMap",533),wAn(534,1,QWn),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return l3(this)},MWn.Pb=function(){var n;if(!l3(this))throw Hp(new yv);return n=this.c,this.c=n.c,this.f=n,--this.d,this.Nd(n)},MWn.Qb=function(){if(this.e.g!=this.b)throw Hp(new vv);han(!!this.f),LLn(this.e,this.f),this.b=this.e.g,this.f=null},MWn.b=0,MWn.d=0,MWn.f=null,vX(XWn,"HashBiMap/Itr",534),wAn(1011,534,QWn,VL),MWn.Nd=function(n){return new bT(this,n)},vX(XWn,"HashBiMap/1",1011),wAn(1012,345,aVn,bT),MWn.cd=function(){return this.a.g},MWn.dd=function(){return this.a.i},MWn.ed=function(n){var t,e,i;return e=this.a.i,(i=dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15))))==this.a.f&&(GI(n)===GI(e)||null!=n&&Nfn(n,e))?n:(yun(!Zrn(this.b.a,n,i),n),LLn(this.b.a,this.a),t=new qW(this.a.g,this.a.a,n,i),YCn(this.b.a,t,this.a),this.a.e=null,this.a.c=null,this.b.b=this.b.a.g,this.b.f==this.a&&(this.b.f=t),this.a=t,e)},vX(XWn,"HashBiMap/1/MapEntry",1012),wAn(238,345,{345:1,238:1,3:1,42:1},vT),MWn.cd=function(){return this.g},MWn.dd=function(){return this.i},MWn.ed=function(n){throw Hp(new pv)},vX(XWn,"ImmutableEntry",238),wAn(317,238,{345:1,317:1,238:1,3:1,42:1},qW),MWn.a=0,MWn.f=0;var qnt,Gnt=vX(XWn,"HashBiMap/BiEntry",317);wAn(610,1979,jVn,il),MWn.Ac=function(n){Tcn(this,n)},MWn.Cc=function(){return new v$(this.a)},MWn.$b=function(){d5(this.a)},MWn._b=function(n){return Ltn(this.a,n)},MWn.kc=function(){return new QL(this,this.a)},MWn.wc=function(n){yX(n),BJ(this.a,new rl(n))},MWn.xc=function(n){return Uin(this,n)},MWn.ec=function(){return new p$(this)},MWn.zc=function(n,t){return C_n(this.a,n,t,!1)},MWn.Bc=function(n){var t;return(t=Zrn(this.a,n,dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15)))))?(LLn(this.a,t),t.e=null,t.c=null,t.g):null},MWn.gc=function(){return this.a.i},MWn.pd=function(){return new v$(this.a)},vX(XWn,"HashBiMap/Inverse",610),wAn(1008,534,QWn,QL),MWn.Nd=function(n){return new wT(this,n)},vX(XWn,"HashBiMap/Inverse/1",1008),wAn(1009,345,aVn,wT),MWn.cd=function(){return this.a.i},MWn.dd=function(){return this.a.g},MWn.ed=function(n){var t,e,i;return i=this.a.g,(t=dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15))))==this.a.a&&(GI(n)===GI(i)||null!=n&&Nfn(n,i))?n:(yun(!Jrn(this.b.a.a,n,t),n),LLn(this.b.a.a,this.a),e=new qW(n,t,this.a.i,this.a.f),this.a=e,YCn(this.b.a.a,e,null),this.b.b=this.b.a.a.g,i)},vX(XWn,"HashBiMap/Inverse/1/InverseEntry",1009),wAn(611,532,tVn,p$),MWn.Kc=function(){return new uy(this.a.a)},MWn.Mc=function(n){var t;return!!(t=Zrn(this.a.a,n,dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15)))))&&(LLn(this.a.a,t),!0)},vX(XWn,"HashBiMap/Inverse/InverseKeySet",611),wAn(1007,534,QWn,uy),MWn.Nd=function(n){return n.i},vX(XWn,"HashBiMap/Inverse/InverseKeySet/1",1007),wAn(1010,1,{},rl),MWn.Od=function(n,t){ev(this.a,n,t)},vX(XWn,"HashBiMap/Inverse/lambda$0$Type",1010),wAn(609,532,tVn,v$),MWn.Kc=function(){return new oy(this.a)},MWn.Mc=function(n){var t;return!!(t=Jrn(this.a,n,dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15)))))&&(LLn(this.a,t),t.e=null,t.c=null,!0)},vX(XWn,"HashBiMap/KeySet",609),wAn(1006,534,QWn,oy),MWn.Nd=function(n){return n.g},vX(XWn,"HashBiMap/KeySet/1",1006),wAn(1093,619,VWn),vX(XWn,"HashMultimapGwtSerializationDependencies",1093),wAn(265,1093,VWn,pJ),MWn.hc=function(){return new bE(etn(this.a))},MWn.gd=function(){return new bE(etn(this.a))},MWn.a=2,vX(XWn,"HashMultimap",265),wAn(1999,152,yVn),MWn.Hc=function(n){return this.Pd().Hc(n)},MWn.dc=function(){return this.Pd().dc()},MWn.gc=function(){return this.Pd().gc()},vX(XWn,"ImmutableAsList",1999),wAn(1931,715,jVn),MWn.Ld=function(){return s_(),new yk(this.a)},MWn.Cc=function(){return s_(),new yk(this.a)},MWn.pd=function(){return s_(),new yk(this.a)},vX(XWn,"ImmutableBiMap",1931),wAn(1977,1,{}),vX(XWn,"ImmutableCollection/Builder",1977),wAn(1022,703,TVn,sy),vX(XWn,"ImmutableEnumSet",1022),wAn(969,386,WWn,bK),MWn.Xb=function(n){return this.a.Xb(n)},vX(XWn,"ImmutableList/1",969),wAn(968,1977,{},sR),vX(XWn,"ImmutableList/Builder",968),wAn(614,198,UWn,cl),MWn.Ob=function(){return this.a.Ob()},MWn.Pb=function(){return BB(this.a.Pb(),42).cd()},vX(XWn,"ImmutableMap/1",614),wAn(1041,1,{},o),MWn.Kb=function(n){return BB(n,42).cd()},vX(XWn,"ImmutableMap/2methodref$getKey$Type",1041),wAn(1040,1,{},hR),vX(XWn,"ImmutableMap/Builder",1040),wAn(2e3,1981,TVn),MWn.Kc=function(){return new cl(lz(this.a).Ed())},MWn.Dd=function(){return new uv(this)},MWn.Jc=function(n){var t,e;for(yX(n),e=this.gc(),t=0;t<e;t++)n.td(BB(wz(lz(this.a)).Xb(t),42).cd())},MWn.Ed=function(){var n;return(n=this.c,n||(this.c=new uv(this))).Ed()},MWn.Nc=function(){return yq(this.gc(),1296,new ul(this))},vX(XWn,"IndexedImmutableSet",2e3),wAn(1180,2e3,TVn,cv),MWn.Kc=function(){return new cl(lz(this.a).Ed())},MWn.Hc=function(n){return this.a._b(n)},MWn.Jc=function(n){yX(n),nan(this.a,new al(n))},MWn.Ed=function(){return new cl(lz(this.a).Ed())},MWn.gc=function(){return this.a.gc()},MWn.Nc=function(){return RB(lz(this.a).Nc(),new o)},vX(XWn,"ImmutableMapKeySet",1180),wAn(1181,1,{},al),MWn.Od=function(n,t){s_(),this.a.td(n)},vX(XWn,"ImmutableMapKeySet/lambda$0$Type",1181),wAn(1178,1980,mVn,av),MWn.Kc=function(){return new KH(this)},MWn.Hc=function(n){return null!=n&&Pjn(new KH(this),n)},MWn.Ed=function(){return new KH(this)},MWn.gc=function(){return this.a.gc()},MWn.Nc=function(){return RB(lz(this.a).Nc(),new s)},vX(XWn,"ImmutableMapValues",1178),wAn(1179,1,{},s),MWn.Kb=function(n){return BB(n,42).dd()},vX(XWn,"ImmutableMapValues/0methodref$getValue$Type",1179),wAn(626,198,UWn,KH),MWn.Ob=function(){return this.a.Ob()},MWn.Pb=function(){return BB(this.a.Pb(),42).dd()},vX(XWn,"ImmutableMapValues/1",626),wAn(1182,1,{},ul),MWn.ld=function(n){return HU(this.a,n)},vX(XWn,"IndexedImmutableSet/0methodref$get$Type",1182),wAn(752,1999,yVn,uv),MWn.Pd=function(){return this.a},MWn.Xb=function(n){return HU(this.a,n)},MWn.gc=function(){return this.a.a.gc()},vX(XWn,"IndexedImmutableSet/1",752),wAn(44,1,{},h),MWn.Kb=function(n){return BB(n,20).Kc()},MWn.Fb=function(n){return this===n},vX(XWn,"Iterables/10",44),wAn(1042,537,pVn,_H),MWn.Jc=function(n){yX(n),this.b.Jc(new dT(this.a,n))},MWn.Kc=function(){return qA(this)},vX(XWn,"Iterables/4",1042),wAn(1043,1,lVn,dT),MWn.td=function(n){TS(this.b,this.a,n)},vX(XWn,"Iterables/4/lambda$0$Type",1043),wAn(1044,537,pVn,FH),MWn.Jc=function(n){yX(n),e5(this.a,new fT(n,this.b))},MWn.Kc=function(){return ZL(new AL(this.a),this.b)},vX(XWn,"Iterables/5",1044),wAn(1045,1,lVn,fT),MWn.td=function(n){this.a.td(yA(n))},vX(XWn,"Iterables/5/lambda$0$Type",1045),wAn(1071,198,UWn,ol),MWn.Ob=function(){return this.a.Ob()},MWn.Pb=function(){return this.a.Pb()},vX(XWn,"Iterators/1",1071),wAn(1072,699,UWn,lT),MWn.Yb=function(){for(var n;this.b.Ob();)if(n=this.b.Pb(),this.a.Lb(n))return n;return this.e=2,null},vX(XWn,"Iterators/5",1072),wAn(487,1,QWn),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.b.Ob()},MWn.Pb=function(){return this.Qd(this.b.Pb())},MWn.Qb=function(){this.b.Qb()},vX(XWn,"TransformedIterator",487),wAn(1073,487,QWn,nN),MWn.Qd=function(n){return this.a.Kb(n)},vX(XWn,"Iterators/6",1073),wAn(717,198,UWn,sl),MWn.Ob=function(){return!this.a},MWn.Pb=function(){if(this.a)throw Hp(new yv);return this.a=!0,this.b},MWn.a=!1,vX(XWn,"Iterators/9",717),wAn(1070,386,WWn,fG),MWn.Xb=function(n){return this.a[this.b+n]},MWn.b=0,vX(XWn,"Iterators/ArrayItr",1070),wAn(39,1,{39:1,47:1},oz),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return dAn(this)},MWn.Pb=function(){return U5(this)},MWn.Qb=function(){han(!!this.c),this.c.Qb(),this.c=null},vX(XWn,"Iterators/ConcatenatedIterator",39),wAn(22,1,{3:1,35:1,22:1}),MWn.wd=function(n){return Py(this,BB(n,22))},MWn.Fb=function(n){return this===n},MWn.Hb=function(){return PN(this)},MWn.Ib=function(){return dx(this)},MWn.g=0;var znt,Unt=vX(RWn,"Enum",22);wAn(538,22,{538:1,3:1,35:1,22:1,47:1},cN),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return!1},MWn.Pb=function(){throw Hp(new yv)},MWn.Qb=function(){han(!1)};var Xnt,Wnt=Ben(XWn,"Iterators/EmptyModifiableIterator",538,Unt,oX,rx);wAn(1834,619,VWn),vX(XWn,"LinkedHashMultimapGwtSerializationDependencies",1834),wAn(1835,1834,VWn,Thn),MWn.hc=function(){return new LN(etn(this.b))},MWn.$b=function(){win(this),iv(this.a,this.a)},MWn.gd=function(){return new LN(etn(this.b))},MWn.ic=function(n){return new Tsn(this,n,this.b)},MWn.kc=function(){return new tN(this)},MWn.lc=function(){return new w1(BB(this.g||(this.g=new qm(this)),21),17)},MWn.ec=function(){return this.i||(this.i=new HL(this,this.c))},MWn.nc=function(){return new by(new tN(this))},MWn.oc=function(){return RB(new w1(BB(this.g||(this.g=new qm(this)),21),17),new f)},MWn.b=2,vX(XWn,"LinkedHashMultimap",1835),wAn(1838,1,{},f),MWn.Kb=function(n){return BB(n,42).dd()},vX(XWn,"LinkedHashMultimap/0methodref$getValue$Type",1838),wAn(824,1,QWn,tN),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return vtn(this)},MWn.Ob=function(){return this.a!=this.b.a},MWn.Qb=function(){han(!!this.c),q0(this.b,this.c.g,this.c.i),this.c=null},vX(XWn,"LinkedHashMultimap/1",824),wAn(330,238,{345:1,238:1,330:1,2020:1,3:1,42:1},HW),MWn.Rd=function(){return this.f},MWn.Sd=function(n){this.c=n},MWn.Td=function(n){this.f=n},MWn.d=0;var Vnt,Qnt=vX(XWn,"LinkedHashMultimap/ValueEntry",330);wAn(1836,1970,{2020:1,20:1,28:1,14:1,21:1},Tsn),MWn.Fc=function(n){var t,e,i,r,c;for(t=(c=dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15))))&this.b.length-1,e=r=this.b[t];e;e=e.a)if(e.d==c&&wW(e.i,n))return!1;return i=new HW(this.c,n,c,r),kk(this.d,i),i.f=this,this.d=i,iv(this.g.a.b,i),iv(i,this.g.a),this.b[t]=i,++this.f,++this.e,yjn(this),!0},MWn.$b=function(){var n,t;for(yS(this.b,null),this.f=0,n=this.a;n!=this;n=n.Rd())iv((t=BB(n,330)).b,t.e);this.a=this,this.d=this,++this.e},MWn.Hc=function(n){var t,e;for(e=dG(cbn(SVn,rV(dG(cbn(null==n?0:nsn(n),PVn)),15))),t=this.b[e&this.b.length-1];t;t=t.a)if(t.d==e&&wW(t.i,n))return!0;return!1},MWn.Jc=function(n){var t;for(yX(n),t=this.a;t!=this;t=t.Rd())n.td(BB(t,330).i)},MWn.Rd=function(){return this.a},MWn.Kc=function(){return new sW(this)},MWn.Mc=function(n){return kAn(this,n)},MWn.Sd=function(n){this.d=n},MWn.Td=function(n){this.a=n},MWn.gc=function(){return this.f},MWn.e=0,MWn.f=0,vX(XWn,"LinkedHashMultimap/ValueSet",1836),wAn(1837,1,QWn,sW),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return wG(this),this.b!=this.c},MWn.Pb=function(){var n,t;if(wG(this),this.b==this.c)throw Hp(new yv);return t=(n=BB(this.b,330)).i,this.d=n,this.b=n.f,t},MWn.Qb=function(){wG(this),han(!!this.d),kAn(this.c,this.d.i),this.a=this.c.e,this.d=null},MWn.a=0,vX(XWn,"LinkedHashMultimap/ValueSet/1",1837),wAn(766,1986,VWn,PO),MWn.Zb=function(){return this.f||(this.f=new rS(this))},MWn.Fb=function(n){return jsn(this,n)},MWn.cc=function(n){return new mT(this,n)},MWn.fc=function(n){return J3(this,n)},MWn.$b=function(){cX(this)},MWn._b=function(n){return HT(this,n)},MWn.ac=function(){return new rS(this)},MWn.bc=function(){return new yl(this)},MWn.qc=function(n){return new mT(this,n)},MWn.dc=function(){return!this.a},MWn.rc=function(n){return J3(this,n)},MWn.gc=function(){return this.d},MWn.c=0,MWn.d=0,vX(XWn,"LinkedListMultimap",766),wAn(52,28,LVn),MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.Vc=function(n,t){throw Hp(new tk("Add not supported on this list"))},MWn.Fc=function(n){return this.Vc(this.gc(),n),!0},MWn.Wc=function(n,t){var e,i,r;for(kW(t),e=!1,r=t.Kc();r.Ob();)i=r.Pb(),this.Vc(n++,i),e=!0;return e},MWn.$b=function(){this.Ud(0,this.gc())},MWn.Fb=function(n){return NAn(this,n)},MWn.Hb=function(){return Fon(this)},MWn.Xc=function(n){return bin(this,n)},MWn.Kc=function(){return new Sb(this)},MWn.Yc=function(){return this.Zc(0)},MWn.Zc=function(n){return new M2(this,n)},MWn.$c=function(n){throw Hp(new tk("Remove not supported on this list"))},MWn.Ud=function(n,t){var e,i;for(i=this.Zc(n),e=n;e<t;++e)i.Pb(),i.Qb()},MWn._c=function(n,t){throw Hp(new tk("Set not supported on this list"))},MWn.bd=function(n,t){return new s1(this,n,t)},MWn.j=0,vX(YWn,"AbstractList",52),wAn(1964,52,LVn),MWn.Vc=function(n,t){Kx(this,n,t)},MWn.Wc=function(n,t){return Asn(this,n,t)},MWn.Xb=function(n){return Dpn(this,n)},MWn.Kc=function(){return this.Zc(0)},MWn.$c=function(n){return tkn(this,n)},MWn._c=function(n,t){var e,i;e=this.Zc(n);try{return i=e.Pb(),e.Wb(t),i}catch(r){throw cL(r=lun(r),109)?Hp(new Ay("Can't set element "+n)):Hp(r)}},vX(YWn,"AbstractSequentialList",1964),wAn(636,1964,LVn,mT),MWn.Zc=function(n){return vN(this,n)},MWn.gc=function(){var n;return(n=BB(RX(this.a.b,this.b),283))?n.a:0},vX(XWn,"LinkedListMultimap/1",636),wAn(1297,1970,tVn,yl),MWn.Hc=function(n){return HT(this.a,n)},MWn.Kc=function(){return new vrn(this.a)},MWn.Mc=function(n){return!J3(this.a,n).a.dc()},MWn.gc=function(){return NT(this.a.b)},vX(XWn,"LinkedListMultimap/1KeySetImpl",1297),wAn(1296,1,QWn,vrn),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return bG(this),!!this.c},MWn.Pb=function(){bG(this),oN(this.c),this.a=this.c,TU(this.d,this.a.a);do{this.c=this.c.b}while(this.c&&!TU(this.d,this.c.a));return this.a.a},MWn.Qb=function(){bG(this),han(!!this.a),Cq(new C7(this.e,this.a.a)),this.a=null,this.b=this.e.c},MWn.b=0,vX(XWn,"LinkedListMultimap/DistinctKeyIterator",1296),wAn(283,1,{283:1},sY),MWn.a=0,vX(XWn,"LinkedListMultimap/KeyList",283),wAn(1295,345,aVn,yT),MWn.cd=function(){return this.a},MWn.dd=function(){return this.f},MWn.ed=function(n){var t;return t=this.f,this.f=n,t},vX(XWn,"LinkedListMultimap/Node",1295),wAn(560,1,cVn,C7,KPn),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){this.e=yKn(this.f,this.b,n,this.c),++this.d,this.a=null},MWn.Ob=function(){return!!this.c},MWn.Sb=function(){return!!this.e},MWn.Pb=function(){return EZ(this)},MWn.Tb=function(){return this.d},MWn.Ub=function(){return TZ(this)},MWn.Vb=function(){return this.d-1},MWn.Qb=function(){han(!!this.a),this.a!=this.c?(this.e=this.a.e,--this.d):this.c=this.a.c,ZCn(this.f,this.a),this.a=null},MWn.Wb=function(n){uN(!!this.a),this.a.f=n},MWn.d=0,vX(XWn,"LinkedListMultimap/ValueForKeyIterator",560),wAn(1018,52,LVn),MWn.Vc=function(n,t){this.a.Vc(n,t)},MWn.Wc=function(n,t){return this.a.Wc(n,t)},MWn.Hc=function(n){return this.a.Hc(n)},MWn.Xb=function(n){return this.a.Xb(n)},MWn.$c=function(n){return this.a.$c(n)},MWn._c=function(n,t){return this.a._c(n,t)},MWn.gc=function(){return this.a.gc()},vX(XWn,"Lists/AbstractListWrapper",1018),wAn(1019,1018,xVn),vX(XWn,"Lists/RandomAccessListWrapper",1019),wAn(1021,1019,xVn,IT),MWn.Zc=function(n){return this.a.Zc(n)},vX(XWn,"Lists/1",1021),wAn(131,52,{131:1,20:1,28:1,52:1,14:1,15:1},CT),MWn.Vc=function(n,t){this.a.Vc(pU(this,n),t)},MWn.$b=function(){this.a.$b()},MWn.Xb=function(n){return this.a.Xb(LX(this,n))},MWn.Kc=function(){return W1(this,0)},MWn.Zc=function(n){return W1(this,n)},MWn.$c=function(n){return this.a.$c(LX(this,n))},MWn.Ud=function(n,t){(d2(n,t,this.a.gc()),ean(this.a.bd(pU(this,t),pU(this,n)))).$b()},MWn._c=function(n,t){return this.a._c(LX(this,n),t)},MWn.gc=function(){return this.a.gc()},MWn.bd=function(n,t){return d2(n,t,this.a.gc()),ean(this.a.bd(pU(this,t),pU(this,n)))},vX(XWn,"Lists/ReverseList",131),wAn(280,131,{131:1,20:1,28:1,52:1,14:1,15:1,54:1},fy),vX(XWn,"Lists/RandomAccessReverseList",280),wAn(1020,1,cVn,kT),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){this.c.Rb(n),this.c.Ub(),this.a=!1},MWn.Ob=function(){return this.c.Sb()},MWn.Sb=function(){return this.c.Ob()},MWn.Pb=function(){return w5(this)},MWn.Tb=function(){return pU(this.b,this.c.Tb())},MWn.Ub=function(){if(!this.c.Ob())throw Hp(new yv);return this.a=!0,this.c.Pb()},MWn.Vb=function(){return pU(this.b,this.c.Tb())-1},MWn.Qb=function(){han(this.a),this.c.Qb(),this.a=!1},MWn.Wb=function(n){uN(this.a),this.c.Wb(n)},MWn.a=!1,vX(XWn,"Lists/ReverseList/1",1020),wAn(432,487,QWn,ly),MWn.Qd=function(n){return cS(n)},vX(XWn,"Maps/1",432),wAn(698,487,QWn,by),MWn.Qd=function(n){return BB(n,42).dd()},vX(XWn,"Maps/2",698),wAn(962,487,QWn,pN),MWn.Qd=function(n){return new vT(n,_O(this.a,n))},vX(XWn,"Maps/3",962),wAn(959,1971,tVn,ml),MWn.Jc=function(n){xv(this.a,n)},MWn.Kc=function(){return this.a.kc()},MWn.Rc=function(){return this.a},MWn.Nc=function(){return this.a.lc()},vX(XWn,"Maps/IteratorBasedAbstractMap/1",959),wAn(960,1,{},vl),MWn.Od=function(n,t){this.a.td(n)},vX(XWn,"Maps/KeySet/lambda$0$Type",960),wAn(958,28,ZWn,PT),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return this.a.uc(n)},MWn.Jc=function(n){yX(n),this.a.wc(new ll(n))},MWn.dc=function(){return this.a.dc()},MWn.Kc=function(){return new by(this.a.vc().Kc())},MWn.Mc=function(n){var t,e;try{return ywn(this,n,!0)}catch(i){if(cL(i=lun(i),41)){for(e=this.a.vc().Kc();e.Ob();)if(wW(n,(t=BB(e.Pb(),42)).dd()))return this.a.Bc(t.cd()),!0;return!1}throw Hp(i)}},MWn.gc=function(){return this.a.gc()},vX(XWn,"Maps/Values",958),wAn(961,1,{},ll),MWn.Od=function(n,t){this.a.td(t)},vX(XWn,"Maps/Values/lambda$0$Type",961),wAn(736,1987,JWn,rS),MWn.xc=function(n){return this.a._b(n)?this.a.cc(n):null},MWn.Bc=function(n){return this.a._b(n)?this.a.fc(n):null},MWn.$b=function(){this.a.$b()},MWn._b=function(n){return this.a._b(n)},MWn.Ec=function(){return new fl(this)},MWn.Dc=function(){return this.Ec()},MWn.dc=function(){return this.a.dc()},MWn.ec=function(){return this.a.ec()},MWn.gc=function(){return this.a.ec().gc()},vX(XWn,"Multimaps/AsMap",736),wAn(1104,1971,tVn,fl),MWn.Kc=function(){return nL(this.a.a.ec(),new bl(this))},MWn.Rc=function(){return this.a},MWn.Mc=function(n){var t;return!!idn(this,n)&&(t=BB(n,42),jk(this.a,t.cd()),!0)},vX(XWn,"Multimaps/AsMap/EntrySet",1104),wAn(1108,1,{},bl),MWn.Kb=function(n){return _O(this,n)},MWn.Fb=function(n){return this===n},vX(XWn,"Multimaps/AsMap/EntrySet/1",1108),wAn(543,1989,{543:1,835:1,20:1,28:1,14:1},wl),MWn.$b=function(){win(this.a)},MWn.Hc=function(n){return Wj(this.a,n)},MWn.Jc=function(n){yX(n),e5(MX(this.a),new gl(n))},MWn.Kc=function(){return new ly(MX(this.a).a.kc())},MWn.gc=function(){return this.a.d},MWn.Nc=function(){return RB(MX(this.a).Nc(),new l)},vX(XWn,"Multimaps/Keys",543),wAn(1106,1,{},l),MWn.Kb=function(n){return BB(n,42).cd()},vX(XWn,"Multimaps/Keys/0methodref$getKey$Type",1106),wAn(1105,487,QWn,wy),MWn.Qd=function(n){return new dl(BB(n,42))},vX(XWn,"Multimaps/Keys/1",1105),wAn(1990,1,{416:1}),MWn.Fb=function(n){var t;return!!cL(n,492)&&(t=BB(n,416),BB(this.a.dd(),14).gc()==BB(t.a.dd(),14).gc()&&wW(this.a.cd(),t.a.cd()))},MWn.Hb=function(){var n;return(null==(n=this.a.cd())?0:nsn(n))^BB(this.a.dd(),14).gc()},MWn.Ib=function(){var n,t;return t=kN(this.a.cd()),1==(n=BB(this.a.dd(),14).gc())?t:t+" x "+n},vX(XWn,"Multisets/AbstractEntry",1990),wAn(492,1990,{492:1,416:1},dl),vX(XWn,"Multimaps/Keys/1/1",492),wAn(1107,1,lVn,gl),MWn.td=function(n){this.a.td(BB(n,42).cd())},vX(XWn,"Multimaps/Keys/lambda$1$Type",1107),wAn(1110,1,lVn,b),MWn.td=function(n){Iq(BB(n,416))},vX(XWn,"Multiset/lambda$0$Type",1110),wAn(737,1,lVn,pl),MWn.td=function(n){Itn(this.a,BB(n,416))},vX(XWn,"Multiset/lambda$1$Type",737),wAn(1111,1,{},m),vX(XWn,"Multisets/0methodref$add$Type",1111),wAn(738,1,{},y),MWn.Kb=function(n){return s3(BB(n,416))},vX(XWn,"Multisets/lambda$3$Type",738),wAn(2008,1,KWn),vX(XWn,"RangeGwtSerializationDependencies",2008),wAn(514,2008,{169:1,514:1,3:1,45:1},svn),MWn.Lb=function(n){return Mz(this,BB(n,35))},MWn.Mb=function(n){return Mz(this,BB(n,35))},MWn.Fb=function(n){var t;return!!cL(n,514)&&(t=BB(n,514),xdn(this.a,t.a)&&xdn(this.b,t.b))},MWn.Hb=function(){return 31*this.a.Hb()+this.b.Hb()},MWn.Ib=function(){return B3(this.a,this.b)},vX(XWn,"Range",514),wAn(778,1999,yVn,aU),MWn.Zc=function(n){return ix(this.b,n)},MWn.Pd=function(){return this.a},MWn.Xb=function(n){return WI(this.b,n)},MWn.Fd=function(n){return ix(this.b,n)},vX(XWn,"RegularImmutableAsList",778),wAn(646,2006,yVn,SY),MWn.Hd=function(){return this.a},vX(XWn,"RegularImmutableList",646),wAn(616,715,jVn,hy),vX(XWn,"RegularImmutableMap",616),wAn(716,703,TVn,vS),vX(XWn,"RegularImmutableSet",716),wAn(1976,nVn,tVn),MWn.Kc=function(){return new SV(this.a,this.b)},MWn.Fc=function(n){throw Hp(new pv)},MWn.Gc=function(n){throw Hp(new pv)},MWn.$b=function(){throw Hp(new pv)},MWn.Mc=function(n){throw Hp(new pv)},vX(XWn,"Sets/SetView",1976),wAn(963,1976,tVn,ET),MWn.Kc=function(){return new SV(this.a,this.b)},MWn.Hc=function(n){return CG(this.a,n)&&this.b.Hc(n)},MWn.Ic=function(n){return oun(this.a,n)&&this.b.Ic(n)},MWn.dc=function(){return Kpn(this.b,this.a)},MWn.Lc=function(){return AV(new Rq(null,new w1(this.a,1)),new jl(this.b))},MWn.gc=function(){return Can(this)},MWn.Oc=function(){return AV(new Rq(null,new w1(this.a,1)),new kl(this.b))},vX(XWn,"Sets/2",963),wAn(700,699,UWn,SV),MWn.Yb=function(){for(var n;k$(this.a);)if(n=u4(this.a),this.c.Hc(n))return n;return this.e=2,null},vX(XWn,"Sets/2/1",700),wAn(964,1,DVn,kl),MWn.Mb=function(n){return this.a.Hc(n)},vX(XWn,"Sets/2/4methodref$contains$Type",964),wAn(965,1,DVn,jl),MWn.Mb=function(n){return this.a.Hc(n)},vX(XWn,"Sets/2/5methodref$contains$Type",965),wAn(607,1975,{607:1,3:1,20:1,14:1,271:1,21:1,84:1},bJ),MWn.Bd=function(){return this.b},MWn.Cd=function(){return this.b},MWn.Md=function(){return this.b},MWn.Jc=function(n){this.a.Jc(n)},MWn.Lc=function(){return this.a.Lc()},MWn.Oc=function(){return this.a.Oc()},vX(XWn,"Sets/UnmodifiableNavigableSet",607),wAn(1932,1931,jVn,GW),MWn.Ld=function(){return s_(),new yk(this.a)},MWn.Cc=function(){return s_(),new yk(this.a)},MWn.pd=function(){return s_(),new yk(this.a)},vX(XWn,"SingletonImmutableBiMap",1932),wAn(647,2006,yVn,Pq),MWn.Hd=function(){return this.a},vX(XWn,"SingletonImmutableList",647),wAn(350,1981,TVn,yk),MWn.Kc=function(){return new sl(this.a)},MWn.Hc=function(n){return Nfn(this.a,n)},MWn.Ed=function(){return new sl(this.a)},MWn.gc=function(){return 1},vX(XWn,"SingletonImmutableSet",350),wAn(1115,1,{},k),MWn.Kb=function(n){return BB(n,164)},vX(XWn,"Streams/lambda$0$Type",1115),wAn(1116,1,RVn,El),MWn.Vd=function(){B5(this.a)},vX(XWn,"Streams/lambda$1$Type",1116),wAn(1659,1658,VWn,pY),MWn.Zb=function(){return BB(BB(this.f||(this.f=cL(this.c,171)?new ID(this,BB(this.c,171)):cL(this.c,161)?new CD(this,BB(this.c,161)):new pT(this,this.c)),161),171)},MWn.hc=function(){return new dE(this.b)},MWn.gd=function(){return new dE(this.b)},MWn.ec=function(){return BB(BB(this.i||(this.i=cL(this.c,171)?new tT(this,BB(this.c,171)):cL(this.c,161)?new nT(this,BB(this.c,161)):new HL(this,this.c)),84),271)},MWn.ac=function(){return cL(this.c,171)?new ID(this,BB(this.c,171)):cL(this.c,161)?new CD(this,BB(this.c,161)):new pT(this,this.c)},MWn.ic=function(n){return null==n&&this.a.ue(n,n),new dE(this.b)},vX(XWn,"TreeMultimap",1659),wAn(78,1,{3:1,78:1}),MWn.Wd=function(n){return new Error(n)},MWn.Xd=function(){return this.e},MWn.Yd=function(){return _wn($V(LU((null==this.k&&(this.k=x8(Jnt,sVn,78,0,0,1)),this.k)),new x),new on)},MWn.Zd=function(){return this.f},MWn.$d=function(){return this.g},MWn._d=function(){yy(this,b2(this.Wd(CY(this,this.g)))),ov(this)},MWn.Ib=function(){return CY(this,this.$d())},MWn.e=FVn,MWn.i=!1,MWn.n=!0;var Ynt,Jnt=vX(RWn,"Throwable",78);wAn(102,78,{3:1,102:1,78:1}),vX(RWn,"Exception",102),wAn(60,102,BVn,sv,dy),vX(RWn,"RuntimeException",60),wAn(598,60,BVn),vX(RWn,"JsException",598),wAn(863,598,BVn),vX(HVn,"JavaScriptExceptionBase",863),wAn(477,863,{477:1,3:1,102:1,60:1,78:1},jhn),MWn.$d=function(){return pEn(this),this.c},MWn.ae=function(){return GI(this.b)===GI(Ynt)?null:this.b},vX(GVn,"JavaScriptException",477);var Znt,ntt=vX(GVn,"JavaScriptObject$",0);wAn(1948,1,{}),vX(GVn,"Scheduler",1948);var ttt,ett,itt,rtt,ctt=0,att=0,utt=-1;wAn(890,1948,{},j),vX(HVn,"SchedulerImpl",890),wAn(1960,1,{}),vX(HVn,"StackTraceCreator/Collector",1960),wAn(864,1960,{},E),MWn.be=function(n){var t={},e=[];n[UVn]=e;for(var i=arguments.callee.caller;i;){var r=(PY(),i.name||(i.name=Ven(i.toString())));e.push(r);var c,a,u=":"+r,o=t[u];if(o)for(c=0,a=o.length;c<a;c++)if(o[c]===i)return;(o||(t[u]=[])).push(i),i=i.caller}},MWn.ce=function(n){var t,e,i,r;for(PY(),e=(i=n&&n[UVn]?n[UVn]:[]).length,r=x8(Ftt,sVn,310,e,0,1),t=0;t<e;t++)r[t]=new PV(i[t],null,-1);return r},vX(HVn,"StackTraceCreator/CollectorLegacy",864),wAn(1961,1960,{}),MWn.be=function(n){},MWn.de=function(n,t,e,i){return new PV(t,n+"@"+i,e<0?-1:e)},MWn.ce=function(n){var t,e,i,r,c,a;if(r=lyn(n),c=x8(Ftt,sVn,310,0,0,1),t=0,0==(i=r.length))return c;for(mK((a=Oqn(this,r[0])).d,zVn)||(c[t++]=a),e=1;e<i;e++)c[t++]=Oqn(this,r[e]);return c},vX(HVn,"StackTraceCreator/CollectorModern",1961),wAn(865,1961,{},d),MWn.de=function(n,t,e,i){return new PV(t,n,-1)},vX(HVn,"StackTraceCreator/CollectorModernNoSourceMap",865),wAn(1050,1,{}),vX(yQn,kQn,1050),wAn(615,1050,{615:1},zX),vX(jQn,kQn,615),wAn(2001,1,{}),vX(yQn,EQn,2001),wAn(2002,2001,{}),vX(jQn,EQn,2002),wAn(1090,1,{},g),vX(jQn,"LocaleInfo",1090),wAn(1918,1,{},p),MWn.a=0,vX(jQn,"TimeZone",1918),wAn(1258,2002,{},w),vX("com.google.gwt.i18n.client.impl.cldr","DateTimeFormatInfoImpl",1258),wAn(434,1,{434:1},VB),MWn.a=!1,MWn.b=0,vX(yQn,"DateTimeFormat/PatternPart",434),wAn(199,1,TQn,AT,von,PD),MWn.wd=function(n){return J0(this,BB(n,199))},MWn.Fb=function(n){return cL(n,199)&&QI(fan(this.q.getTime()),fan(BB(n,199).q.getTime()))},MWn.Hb=function(){var n;return dG(r0(n=fan(this.q.getTime()),jz(n,32)))},MWn.Ib=function(){var n,t,i;return n=((i=-this.q.getTimezoneOffset())>=0?"+":"")+(i/60|0),t=UO(e.Math.abs(i)%60),(pMn(),pet)[this.q.getDay()]+" "+vet[this.q.getMonth()]+" "+UO(this.q.getDate())+" "+UO(this.q.getHours())+":"+UO(this.q.getMinutes())+":"+UO(this.q.getSeconds())+" GMT"+n+t+" "+this.q.getFullYear()};var ott,stt,htt,ftt,ltt,btt,wtt,dtt,gtt,ptt,vtt,mtt=vX(YWn,"Date",199);wAn(1915,199,TQn,Ykn),MWn.a=!1,MWn.b=0,MWn.c=0,MWn.d=0,MWn.e=0,MWn.f=0,MWn.g=!1,MWn.i=0,MWn.j=0,MWn.k=0,MWn.n=0,MWn.o=0,MWn.p=0,vX("com.google.gwt.i18n.shared.impl","DateRecord",1915),wAn(1966,1,{}),MWn.fe=function(){return null},MWn.ge=function(){return null},MWn.he=function(){return null},MWn.ie=function(){return null},MWn.je=function(){return null},vX(MQn,"JSONValue",1966),wAn(216,1966,{216:1},Cl,Tl),MWn.Fb=function(n){return!!cL(n,216)&&v0(this.a,BB(n,216).a)},MWn.ee=function(){return qp},MWn.Hb=function(){return tY(this.a)},MWn.fe=function(){return this},MWn.Ib=function(){var n,t,e;for(e=new lN("["),t=0,n=this.a.length;t<n;t++)t>0&&(e.a+=","),uO(e,dnn(this,t));return e.a+="]",e.a},vX(MQn,"JSONArray",216),wAn(483,1966,{483:1},Ml),MWn.ee=function(){return Gp},MWn.ge=function(){return this},MWn.Ib=function(){return hN(),""+this.a},MWn.a=!1,vX(MQn,"JSONBoolean",483),wAn(985,60,BVn,gy),vX(MQn,"JSONException",985),wAn(1023,1966,{},v),MWn.ee=function(){return Vp},MWn.Ib=function(){return zWn},vX(MQn,"JSONNull",1023),wAn(258,1966,{258:1},Sl),MWn.Fb=function(n){return!!cL(n,258)&&this.a==BB(n,258).a},MWn.ee=function(){return zp},MWn.Hb=function(){return VO(this.a)},MWn.he=function(){return this},MWn.Ib=function(){return this.a+""},MWn.a=0,vX(MQn,"JSONNumber",258),wAn(183,1966,{183:1},py,Pl),MWn.Fb=function(n){return!!cL(n,183)&&v0(this.a,BB(n,183).a)},MWn.ee=function(){return Up},MWn.Hb=function(){return tY(this.a)},MWn.ie=function(){return this},MWn.Ib=function(){var n,t,e,i,r,c;for(c=new lN("{"),n=!0,i=0,r=(e=jrn(this,x8(Qtt,sVn,2,0,6,1))).length;i<r;++i)t=e[i],n?n=!1:c.a+=FWn,oO(c,mOn(t)),c.a+=":",uO(c,zJ(this,t));return c.a+="}",c.a},vX(MQn,"JSONObject",183),wAn(596,nVn,tVn,TT),MWn.Hc=function(n){return XI(n)&&zk(this.a,SD(n))},MWn.Kc=function(){return new Sb(new Jy(this.b))},MWn.gc=function(){return this.b.length},vX(MQn,"JSONObject/1",596),wAn(204,1966,{204:1},GX),MWn.Fb=function(n){return!!cL(n,204)&&mK(this.a,BB(n,204).a)},MWn.ee=function(){return Xp},MWn.Hb=function(){return vvn(this.a)},MWn.je=function(){return this},MWn.Ib=function(){return mOn(this.a)},vX(MQn,"JSONString",204),wAn(1962,1,{525:1}),vX(LQn,"OutputStream",1962),wAn(1963,1962,{525:1}),vX(LQn,"FilterOutputStream",1963),wAn(866,1963,{525:1},A),vX(LQn,"PrintStream",866),wAn(418,1,{475:1}),MWn.Ib=function(){return this.a},vX(RWn,"AbstractStringBuilder",418),wAn(529,60,BVn,Oy),vX(RWn,"ArithmeticException",529),wAn(73,60,NQn,fv,Ay),vX(RWn,"IndexOutOfBoundsException",73),wAn(320,73,{3:1,320:1,102:1,73:1,60:1,78:1},Sv,Tk),vX(RWn,"ArrayIndexOutOfBoundsException",320),wAn(528,60,BVn,lv,$y),vX(RWn,"ArrayStoreException",528),wAn(289,78,xQn,Ly),vX(RWn,"Error",289),wAn(194,289,xQn,hv,g5),vX(RWn,"AssertionError",194),CWn={3:1,476:1,35:1};var ytt,ktt=vX(RWn,"Boolean",476);wAn(236,1,{3:1,236:1}),vX(RWn,"Number",236),wAn(217,236,{3:1,217:1,35:1,236:1},$b),MWn.wd=function(n){return Fk(this,BB(n,217))},MWn.ke=function(){return this.a},MWn.Fb=function(n){return cL(n,217)&&BB(n,217).a==this.a},MWn.Hb=function(){return this.a},MWn.Ib=function(){return""+this.a},MWn.a=0;var jtt,Ett,Ttt=vX(RWn,"Byte",217);wAn(172,1,{3:1,172:1,35:1},Lb),MWn.wd=function(n){return Bk(this,BB(n,172))},MWn.Fb=function(n){return cL(n,172)&&BB(n,172).a==this.a},MWn.Hb=function(){return this.a},MWn.Ib=function(){return String.fromCharCode(this.a)},MWn.a=0;var Mtt,Stt=vX(RWn,"Character",172);wAn(205,60,{3:1,205:1,102:1,60:1,78:1},bv,Ky),vX(RWn,"ClassCastException",205),IWn={3:1,35:1,333:1,236:1};var Ptt=vX(RWn,"Double",333);wAn(155,236,{3:1,35:1,155:1,236:1},Nb,Dv),MWn.wd=function(n){return BO(this,BB(n,155))},MWn.ke=function(){return this.a},MWn.Fb=function(n){return cL(n,155)&&vK(this.a,BB(n,155).a)},MWn.Hb=function(){return CJ(this.a)},MWn.Ib=function(){return""+this.a},MWn.a=0;var Ctt=vX(RWn,"Float",155);wAn(32,60,{3:1,102:1,32:1,60:1,78:1},wv,_y,Fsn),vX(RWn,"IllegalArgumentException",32),wAn(71,60,BVn,dv,Fy),vX(RWn,"IllegalStateException",71),wAn(19,236,{3:1,35:1,19:1,236:1},xb),MWn.wd=function(n){return HO(this,BB(n,19))},MWn.ke=function(){return this.a},MWn.Fb=function(n){return cL(n,19)&&BB(n,19).a==this.a},MWn.Hb=function(){return this.a},MWn.Ib=function(){return""+this.a},MWn.a=0;var Itt,Ott,Att=vX(RWn,"Integer",19);wAn(162,236,{3:1,35:1,162:1,236:1},Db),MWn.wd=function(n){return qO(this,BB(n,162))},MWn.ke=function(){return j2(this.a)},MWn.Fb=function(n){return cL(n,162)&&QI(BB(n,162).a,this.a)},MWn.Hb=function(){return dG(this.a)},MWn.Ib=function(){return""+vz(this.a)},MWn.a=0;var $tt,Ltt,Ntt,xtt,Dtt,Rtt=vX(RWn,"Long",162);wAn(2039,1,{}),wAn(1831,60,BVn,By),vX(RWn,"NegativeArraySizeException",1831),wAn(173,598,{3:1,102:1,173:1,60:1,78:1},gv,Hy),MWn.Wd=function(n){return new TypeError(n)},vX(RWn,"NullPointerException",173),wAn(127,32,{3:1,102:1,32:1,127:1,60:1,78:1},Mk),vX(RWn,"NumberFormatException",127),wAn(184,236,{3:1,35:1,236:1,184:1},Rb),MWn.wd=function(n){return Hk(this,BB(n,184))},MWn.ke=function(){return this.a},MWn.Fb=function(n){return cL(n,184)&&BB(n,184).a==this.a},MWn.Hb=function(){return this.a},MWn.Ib=function(){return""+this.a},MWn.a=0;var Ktt,_tt=vX(RWn,"Short",184);wAn(310,1,{3:1,310:1},PV),MWn.Fb=function(n){var t;return!!cL(n,310)&&(t=BB(n,310),this.c==t.c&&this.d==t.d&&this.a==t.a&&this.b==t.b)},MWn.Hb=function(){return fhn(Pun(Gk(Ant,1),HWn,1,5,[iln(this.c),this.a,this.d,this.b]))},MWn.Ib=function(){return this.a+"."+this.d+"("+(null!=this.b?this.b:"Unknown Source")+(this.c>=0?":"+this.c:"")+")"},MWn.c=0;var Ftt=vX(RWn,"StackTraceElement",310);OWn={3:1,475:1,35:1,2:1};var Btt,Htt,qtt,Gtt,ztt,Utt,Xtt,Wtt,Vtt,Qtt=vX(RWn,qVn,2);wAn(107,418,{475:1},Sk,Pk,fN),vX(RWn,"StringBuffer",107),wAn(100,418,{475:1},Ck,Ik,lN),vX(RWn,"StringBuilder",100),wAn(687,73,NQn,Ok),vX(RWn,"StringIndexOutOfBoundsException",687),wAn(2043,1,{}),wAn(844,1,{},x),MWn.Kb=function(n){return BB(n,78).e},vX(RWn,"Throwable/lambda$0$Type",844),wAn(41,60,{3:1,102:1,60:1,78:1,41:1},pv,tk),vX(RWn,"UnsupportedOperationException",41),wAn(240,236,{3:1,35:1,236:1,240:1},knn,wE),MWn.wd=function(n){return J_n(this,BB(n,240))},MWn.ke=function(){return bSn(eqn(this))},MWn.Fb=function(n){var t;return this===n||!!cL(n,240)&&(t=BB(n,240),this.e==t.e&&0==J_n(this,t))},MWn.Hb=function(){var n;return 0!=this.b?this.b:this.a<54?(n=fan(this.f),this.b=dG(e0(n,-1)),this.b=33*this.b+dG(e0(kz(n,32),-1)),this.b=17*this.b+CJ(this.e),this.b):(this.b=17*Khn(this.c)+CJ(this.e),this.b)},MWn.Ib=function(){return eqn(this)},MWn.a=0,MWn.b=0,MWn.d=0,MWn.e=0,MWn.f=0;var Ytt,Jtt,Ztt,net,tet,eet,iet=vX("java.math","BigDecimal",240);wAn(91,236,{3:1,35:1,236:1,91:1},Rpn,X6,lU,vEn,Cgn,$A),MWn.wd=function(n){return tgn(this,BB(n,91))},MWn.ke=function(){return bSn(qXn(this,0))},MWn.Fb=function(n){return swn(this,n)},MWn.Hb=function(){return Khn(this)},MWn.Ib=function(){return qXn(this,0)},MWn.b=-2,MWn.c=0,MWn.d=0,MWn.e=0;var ret,cet,aet,uet,oet=vX("java.math","BigInteger",91);wAn(488,1967,JWn),MWn.$b=function(){$U(this)},MWn._b=function(n){return hU(this,n)},MWn.uc=function(n){return Lsn(this,n,this.g)||Lsn(this,n,this.f)},MWn.vc=function(){return new Pb(this)},MWn.xc=function(n){return RX(this,n)},MWn.zc=function(n,t){return VW(this,n,t)},MWn.Bc=function(n){return v6(this,n)},MWn.gc=function(){return NT(this)},vX(YWn,"AbstractHashMap",488),wAn(261,nVn,tVn,Pb),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return m2(this,n)},MWn.Kc=function(){return new usn(this.a)},MWn.Mc=function(n){var t;return!!m2(this,n)&&(t=BB(n,42).cd(),this.a.Bc(t),!0)},MWn.gc=function(){return this.a.gc()},vX(YWn,"AbstractHashMap/EntrySet",261),wAn(262,1,QWn,usn),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return ten(this)},MWn.Ob=function(){return this.b},MWn.Qb=function(){o9(this)},MWn.b=!1,vX(YWn,"AbstractHashMap/EntrySetIterator",262),wAn(417,1,QWn,Sb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return aS(this)},MWn.Pb=function(){return mQ(this)},MWn.Qb=function(){fW(this)},MWn.b=0,MWn.c=-1,vX(YWn,"AbstractList/IteratorImpl",417),wAn(96,417,cVn,M2),MWn.Qb=function(){fW(this)},MWn.Rb=function(n){yR(this,n)},MWn.Sb=function(){return this.b>0},MWn.Tb=function(){return this.b},MWn.Ub=function(){return Px(this.b>0),this.a.Xb(this.c=--this.b)},MWn.Vb=function(){return this.b-1},MWn.Wb=function(n){Mx(-1!=this.c),this.a._c(this.c,n)},vX(YWn,"AbstractList/ListIteratorImpl",96),wAn(219,52,LVn,s1),MWn.Vc=function(n,t){LZ(n,this.b),this.c.Vc(this.a+n,t),++this.b},MWn.Xb=function(n){return l1(n,this.b),this.c.Xb(this.a+n)},MWn.$c=function(n){var t;return l1(n,this.b),t=this.c.$c(this.a+n),--this.b,t},MWn._c=function(n,t){return l1(n,this.b),this.c._c(this.a+n,t)},MWn.gc=function(){return this.b},MWn.a=0,MWn.b=0,vX(YWn,"AbstractList/SubList",219),wAn(384,nVn,tVn,Cb),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return this.a._b(n)},MWn.Kc=function(){return new Ib(this.a.vc().Kc())},MWn.Mc=function(n){return!!this.a._b(n)&&(this.a.Bc(n),!0)},MWn.gc=function(){return this.a.gc()},vX(YWn,"AbstractMap/1",384),wAn(691,1,QWn,Ib),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.a.Ob()},MWn.Pb=function(){return BB(this.a.Pb(),42).cd()},MWn.Qb=function(){this.a.Qb()},vX(YWn,"AbstractMap/1/1",691),wAn(226,28,ZWn,Ob),MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return this.a.uc(n)},MWn.Kc=function(){return new Kb(this.a.vc().Kc())},MWn.gc=function(){return this.a.gc()},vX(YWn,"AbstractMap/2",226),wAn(294,1,QWn,Kb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.a.Ob()},MWn.Pb=function(){return BB(this.a.Pb(),42).dd()},MWn.Qb=function(){this.a.Qb()},vX(YWn,"AbstractMap/2/1",294),wAn(484,1,{484:1,42:1}),MWn.Fb=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),cV(this.d,t.cd())&&cV(this.e,t.dd()))},MWn.cd=function(){return this.d},MWn.dd=function(){return this.e},MWn.Hb=function(){return KA(this.d)^KA(this.e)},MWn.ed=function(n){return pR(this,n)},MWn.Ib=function(){return this.d+"="+this.e},vX(YWn,"AbstractMap/AbstractEntry",484),wAn(383,484,{484:1,383:1,42:1},PS),vX(YWn,"AbstractMap/SimpleEntry",383),wAn(1984,1,VQn),MWn.Fb=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),cV(this.cd(),t.cd())&&cV(this.dd(),t.dd()))},MWn.Hb=function(){return KA(this.cd())^KA(this.dd())},MWn.Ib=function(){return this.cd()+"="+this.dd()},vX(YWn,uVn,1984),wAn(1992,1967,eVn),MWn.tc=function(n){return q5(this,n)},MWn._b=function(n){return DK(this,n)},MWn.vc=function(){return new Bb(this)},MWn.xc=function(n){return qI(lsn(this,n))},MWn.ec=function(){return new _b(this)},vX(YWn,"AbstractNavigableMap",1992),wAn(739,nVn,tVn,Bb),MWn.Hc=function(n){return cL(n,42)&&q5(this.b,BB(n,42))},MWn.Kc=function(){return new BR(this.b)},MWn.Mc=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),z8(this.b,t))},MWn.gc=function(){return this.b.c},vX(YWn,"AbstractNavigableMap/EntrySet",739),wAn(493,nVn,rVn,_b),MWn.Nc=function(){return new wS(this)},MWn.$b=function(){my(this.a)},MWn.Hc=function(n){return DK(this.a,n)},MWn.Kc=function(){return new Fb(new BR(new xN(this.a).b))},MWn.Mc=function(n){return!!DK(this.a,n)&&($J(this.a,n),!0)},MWn.gc=function(){return this.a.c},vX(YWn,"AbstractNavigableMap/NavigableKeySet",493),wAn(494,1,QWn,Fb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return aS(this.a.a)},MWn.Pb=function(){return mx(this.a).cd()},MWn.Qb=function(){e_(this.a)},vX(YWn,"AbstractNavigableMap/NavigableKeySet/1",494),wAn(2004,28,ZWn),MWn.Fc=function(n){return F8(eMn(this,n)),!0},MWn.Gc=function(n){return kW(n),vH(n!=this,"Can't add a queue to itself"),Frn(this,n)},MWn.$b=function(){for(;null!=mnn(this););},vX(YWn,"AbstractQueue",2004),wAn(302,28,{4:1,20:1,28:1,14:1},Lp,d1),MWn.Fc=function(n){return w3(this,n),!0},MWn.$b=function(){o4(this)},MWn.Hc=function(n){return wun(new bV(this),n)},MWn.dc=function(){return Wy(this)},MWn.Kc=function(){return new bV(this)},MWn.Mc=function(n){return GJ(new bV(this),n)},MWn.gc=function(){return this.c-this.b&this.a.length-1},MWn.Nc=function(){return new w1(this,272)},MWn.Qc=function(n){var t;return t=this.c-this.b&this.a.length-1,n.length<t&&(n=qk(new Array(t),n)),urn(this,n,t),n.length>t&&$X(n,t,null),n},MWn.b=0,MWn.c=0,vX(YWn,"ArrayDeque",302),wAn(446,1,QWn,bV),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.a!=this.b},MWn.Pb=function(){return _hn(this)},MWn.Qb=function(){ein(this)},MWn.a=0,MWn.b=0,MWn.c=-1,vX(YWn,"ArrayDeque/IteratorImpl",446),wAn(12,52,QQn,Np,J6,t_),MWn.Vc=function(n,t){kG(this,n,t)},MWn.Fc=function(n){return WB(this,n)},MWn.Wc=function(n,t){return ohn(this,n,t)},MWn.Gc=function(n){return gun(this,n)},MWn.$b=function(){this.c=x8(Ant,HWn,1,0,5,1)},MWn.Hc=function(n){return-1!=E7(this,n,0)},MWn.Jc=function(n){Otn(this,n)},MWn.Xb=function(n){return xq(this,n)},MWn.Xc=function(n){return E7(this,n,0)},MWn.dc=function(){return 0==this.c.length},MWn.Kc=function(){return new Wb(this)},MWn.$c=function(n){return s6(this,n)},MWn.Mc=function(n){return y7(this,n)},MWn.Ud=function(n,t){h1(this,n,t)},MWn._c=function(n,t){return c5(this,n,t)},MWn.gc=function(){return this.c.length},MWn.ad=function(n){m$(this,n)},MWn.Pc=function(){return bx(this)},MWn.Qc=function(n){return Qgn(this,n)};var set,het,fet,bet,wet,det,get,pet,vet,met=vX(YWn,"ArrayList",12);wAn(7,1,QWn,Wb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return y$(this)},MWn.Pb=function(){return n0(this)},MWn.Qb=function(){AU(this)},MWn.a=0,MWn.b=-1,vX(YWn,"ArrayList/1",7),wAn(2013,e.Function,{},T),MWn.te=function(n,t){return Pln(n,t)},wAn(154,52,YQn,Jy),MWn.Hc=function(n){return-1!=bin(this,n)},MWn.Jc=function(n){var t,e,i,r;for(kW(n),i=0,r=(e=this.a).length;i<r;++i)t=e[i],n.td(t)},MWn.Xb=function(n){return Dq(this,n)},MWn._c=function(n,t){var e;return l1(n,this.a.length),e=this.a[n],$X(this.a,n,t),e},MWn.gc=function(){return this.a.length},MWn.ad=function(n){yG(this.a,this.a.length,n)},MWn.Pc=function(){return Ygn(this,x8(Ant,HWn,1,this.a.length,5,1))},MWn.Qc=function(n){return Ygn(this,n)},vX(YWn,"Arrays/ArrayList",154),wAn(940,52,YQn,S),MWn.Hc=function(n){return!1},MWn.Xb=function(n){return yO(n)},MWn.Kc=function(){return SQ(),LT(),bet},MWn.Yc=function(){return SQ(),LT(),bet},MWn.gc=function(){return 0},vX(YWn,"Collections/EmptyList",940),wAn(941,1,cVn,P),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){throw Hp(new pv)},MWn.Ob=function(){return!1},MWn.Sb=function(){return!1},MWn.Pb=function(){throw Hp(new yv)},MWn.Tb=function(){return 0},MWn.Ub=function(){throw Hp(new yv)},MWn.Vb=function(){return-1},MWn.Qb=function(){throw Hp(new dv)},MWn.Wb=function(n){throw Hp(new dv)},vX(YWn,"Collections/EmptyListIterator",941),wAn(943,1967,jVn,C),MWn._b=function(n){return!1},MWn.uc=function(n){return!1},MWn.vc=function(){return SQ(),fet},MWn.xc=function(n){return null},MWn.ec=function(){return SQ(),fet},MWn.gc=function(){return 0},MWn.Cc=function(){return SQ(),set},vX(YWn,"Collections/EmptyMap",943),wAn(942,nVn,TVn,M),MWn.Hc=function(n){return!1},MWn.Kc=function(){return SQ(),LT(),bet},MWn.gc=function(){return 0},vX(YWn,"Collections/EmptySet",942),wAn(599,52,{3:1,20:1,28:1,52:1,14:1,15:1},Gb),MWn.Hc=function(n){return cV(this.a,n)},MWn.Xb=function(n){return l1(n,1),this.a},MWn.gc=function(){return 1},vX(YWn,"Collections/SingletonList",599),wAn(372,1,vVn,Hb),MWn.Jc=function(n){e5(this,n)},MWn.Lc=function(){return new Rq(null,this.Nc())},MWn.Nc=function(){return new w1(this,0)},MWn.Oc=function(){return new Rq(null,this.Nc())},MWn.Fc=function(n){return oE()},MWn.Gc=function(n){return sE()},MWn.$b=function(){hE()},MWn.Hc=function(n){return xT(this,n)},MWn.Ic=function(n){return DT(this,n)},MWn.dc=function(){return this.b.dc()},MWn.Kc=function(){return new qb(this.b.Kc())},MWn.Mc=function(n){return fE()},MWn.gc=function(){return this.b.gc()},MWn.Pc=function(){return this.b.Pc()},MWn.Qc=function(n){return RT(this,n)},MWn.Ib=function(){return Bbn(this.b)},vX(YWn,"Collections/UnmodifiableCollection",372),wAn(371,1,QWn,qb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.b.Ob()},MWn.Pb=function(){return this.b.Pb()},MWn.Qb=function(){lE()},vX(YWn,"Collections/UnmodifiableCollectionIterator",371),wAn(531,372,JQn,bN),MWn.Nc=function(){return new w1(this,16)},MWn.Vc=function(n,t){throw Hp(new pv)},MWn.Wc=function(n,t){throw Hp(new pv)},MWn.Fb=function(n){return Nfn(this.a,n)},MWn.Xb=function(n){return this.a.Xb(n)},MWn.Hb=function(){return nsn(this.a)},MWn.Xc=function(n){return this.a.Xc(n)},MWn.dc=function(){return this.a.dc()},MWn.Yc=function(){return new wN(this.a.Zc(0))},MWn.Zc=function(n){return new wN(this.a.Zc(n))},MWn.$c=function(n){throw Hp(new pv)},MWn._c=function(n,t){throw Hp(new pv)},MWn.ad=function(n){throw Hp(new pv)},MWn.bd=function(n,t){return new bN(this.a.bd(n,t))},vX(YWn,"Collections/UnmodifiableList",531),wAn(690,371,cVn,wN),MWn.Qb=function(){lE()},MWn.Rb=function(n){throw Hp(new pv)},MWn.Sb=function(){return this.a.Sb()},MWn.Tb=function(){return this.a.Tb()},MWn.Ub=function(){return this.a.Ub()},MWn.Vb=function(){return this.a.Vb()},MWn.Wb=function(n){throw Hp(new pv)},vX(YWn,"Collections/UnmodifiableListIterator",690),wAn(600,1,JWn,Xb),MWn.wc=function(n){nan(this,n)},MWn.yc=function(n,t,e){return Zln(this,n,t,e)},MWn.$b=function(){throw Hp(new pv)},MWn._b=function(n){return this.c._b(n)},MWn.uc=function(n){return _T(this,n)},MWn.vc=function(){return eV(this)},MWn.Fb=function(n){return BT(this,n)},MWn.xc=function(n){return this.c.xc(n)},MWn.Hb=function(){return nsn(this.c)},MWn.dc=function(){return this.c.dc()},MWn.ec=function(){return iV(this)},MWn.zc=function(n,t){throw Hp(new pv)},MWn.Bc=function(n){throw Hp(new pv)},MWn.gc=function(){return this.c.gc()},MWn.Ib=function(){return Bbn(this.c)},MWn.Cc=function(){return tV(this)},vX(YWn,"Collections/UnmodifiableMap",600),wAn(382,372,EVn,Ak),MWn.Nc=function(){return new w1(this,1)},MWn.Fb=function(n){return Nfn(this.b,n)},MWn.Hb=function(){return nsn(this.b)},vX(YWn,"Collections/UnmodifiableSet",382),wAn(944,382,EVn,Lk),MWn.Hc=function(n){return KT(this,n)},MWn.Ic=function(n){return this.b.Ic(n)},MWn.Kc=function(){return new zb(this.b.Kc())},MWn.Pc=function(){var n;return j4(n=this.b.Pc(),n.length),n},MWn.Qc=function(n){return IY(this,n)},vX(YWn,"Collections/UnmodifiableMap/UnmodifiableEntrySet",944),wAn(945,1,QWn,zb),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return new Ub(BB(this.a.Pb(),42))},MWn.Ob=function(){return this.a.Ob()},MWn.Qb=function(){throw Hp(new pv)},vX(YWn,"Collections/UnmodifiableMap/UnmodifiableEntrySet/1",945),wAn(688,1,VQn,Ub),MWn.Fb=function(n){return this.a.Fb(n)},MWn.cd=function(){return this.a.cd()},MWn.dd=function(){return this.a.dd()},MWn.Hb=function(){return this.a.Hb()},MWn.ed=function(n){throw Hp(new pv)},MWn.Ib=function(){return Bbn(this.a)},vX(YWn,"Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry",688),wAn(601,531,{20:1,14:1,15:1,54:1},$k),vX(YWn,"Collections/UnmodifiableRandomAccessList",601),wAn(689,382,MVn,dN),MWn.Nc=function(){return new wS(this)},MWn.Fb=function(n){return Nfn(this.a,n)},MWn.Hb=function(){return nsn(this.a)},vX(YWn,"Collections/UnmodifiableSortedSet",689),wAn(847,1,ZQn,D),MWn.ue=function(n,t){var e;return 0!=(e=T4(BB(n,11),BB(t,11)))?e:nFn(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(YWn,"Comparator/lambda$0$Type",847),wAn(751,1,ZQn,R),MWn.ue=function(n,t){return _q(BB(n,35),BB(t,35))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return PQ(),get},vX(YWn,"Comparators/NaturalOrderComparator",751),wAn(1177,1,ZQn,K),MWn.ue=function(n,t){return Fq(BB(n,35),BB(t,35))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return PQ(),det},vX(YWn,"Comparators/ReverseNaturalOrderComparator",1177),wAn(64,1,ZQn,nw),MWn.Fb=function(n){return this===n},MWn.ue=function(n,t){return this.a.ue(t,n)},MWn.ve=function(){return this.a},vX(YWn,"Comparators/ReversedComparator",64),wAn(166,60,BVn,vv),vX(YWn,"ConcurrentModificationException",166),wAn(1904,1,nYn,_),MWn.we=function(n){hdn(this,n)},MWn.Ib=function(){return"DoubleSummaryStatistics[count = "+vz(this.a)+", avg = "+(oS(this.a,0)?l6(this)/j2(this.a):0)+", min = "+this.c+", max = "+this.b+", sum = "+l6(this)+"]"},MWn.a=0,MWn.b=KQn,MWn.c=RQn,MWn.d=0,MWn.e=0,MWn.f=0,vX(YWn,"DoubleSummaryStatistics",1904),wAn(1805,60,BVn,mv),vX(YWn,"EmptyStackException",1805),wAn(451,1967,JWn,Hbn),MWn.zc=function(n,t){return wR(this,n,t)},MWn.$b=function(){TW(this)},MWn._b=function(n){return uS(this,n)},MWn.uc=function(n){var t,e;for(e=new QT(this.a);e.a<e.c.a.length;)if(t=u4(e),cV(n,this.b[t.g]))return!0;return!1},MWn.vc=function(){return new tw(this)},MWn.xc=function(n){return oV(this,n)},MWn.Bc=function(n){return NZ(this,n)},MWn.gc=function(){return this.a.c},vX(YWn,"EnumMap",451),wAn(1352,nVn,tVn,tw),MWn.$b=function(){TW(this.a)},MWn.Hc=function(n){return v2(this,n)},MWn.Kc=function(){return new Aq(this.a)},MWn.Mc=function(n){var t;return!!v2(this,n)&&(t=BB(n,42).cd(),NZ(this.a,t),!0)},MWn.gc=function(){return this.a.a.c},vX(YWn,"EnumMap/EntrySet",1352),wAn(1353,1,QWn,Aq),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return this.b=u4(this.a),new CS(this.c,this.b)},MWn.Ob=function(){return k$(this.a)},MWn.Qb=function(){Mx(!!this.b),NZ(this.c,this.b),this.b=null},vX(YWn,"EnumMap/EntrySetIterator",1353),wAn(1354,1984,VQn,CS),MWn.cd=function(){return this.a},MWn.dd=function(){return this.b.b[this.a.g]},MWn.ed=function(n){return EU(this.b,this.a.g,n)},vX(YWn,"EnumMap/MapEntry",1354),wAn(174,nVn,{20:1,28:1,14:1,174:1,21:1});var yet=vX(YWn,"EnumSet",174);wAn(156,174,{20:1,28:1,14:1,174:1,156:1,21:1},YK),MWn.Fc=function(n){return orn(this,BB(n,22))},MWn.Hc=function(n){return CG(this,n)},MWn.Kc=function(){return new QT(this)},MWn.Mc=function(n){return IG(this,n)},MWn.gc=function(){return this.c},MWn.c=0,vX(YWn,"EnumSet/EnumSetImpl",156),wAn(343,1,QWn,QT),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return u4(this)},MWn.Ob=function(){return k$(this)},MWn.Qb=function(){Mx(-1!=this.b),$X(this.c.b,this.b,null),--this.c.c,this.b=-1},MWn.a=-1,MWn.b=-1,vX(YWn,"EnumSet/EnumSetImpl/IteratorImpl",343),wAn(43,488,tYn,xp,XT,mO),MWn.re=function(n,t){return GI(n)===GI(t)||null!=n&&Nfn(n,t)},MWn.se=function(n){return 0|nsn(n)},vX(YWn,"HashMap",43),wAn(53,nVn,eYn,Rv,bE,$q),MWn.Fc=function(n){return TU(this,n)},MWn.$b=function(){this.a.$b()},MWn.Hc=function(n){return FT(this,n)},MWn.dc=function(){return 0==this.a.gc()},MWn.Kc=function(){return this.a.ec().Kc()},MWn.Mc=function(n){return eL(this,n)},MWn.gc=function(){return this.a.gc()};var ket,jet=vX(YWn,"HashSet",53);wAn(1781,1,wVn,F),MWn.ud=function(n){ran(this,n)},MWn.Ib=function(){return"IntSummaryStatistics[count = "+vz(this.a)+", avg = "+(oS(this.a,0)?j2(this.d)/j2(this.a):0)+", min = "+this.c+", max = "+this.b+", sum = "+vz(this.d)+"]"},MWn.a=0,MWn.b=_Vn,MWn.c=DWn,MWn.d=0,vX(YWn,"IntSummaryStatistics",1781),wAn(1049,1,pVn,eA),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new S2(this)},MWn.c=0,vX(YWn,"InternalHashCodeMap",1049),wAn(711,1,QWn,S2),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return this.d=this.a[this.c++],this.d},MWn.Ob=function(){var n;return this.c<this.a.length||!(n=this.b.next()).done&&(this.a=n.value[1],this.c=0,!0)},MWn.Qb=function(){gAn(this.e,this.d.cd()),0!=this.c&&--this.c},MWn.c=0,MWn.d=null,vX(YWn,"InternalHashCodeMap/1",711),wAn(1047,1,pVn,iA),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new p4(this)},MWn.c=0,MWn.d=0,vX(YWn,"InternalStringMap",1047),wAn(710,1,QWn,p4),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return this.c=this.a,this.a=this.b.next(),new JK(this.d,this.c,this.d.d)},MWn.Ob=function(){return!this.a.done},MWn.Qb=function(){Gan(this.d,this.c.value[0])},vX(YWn,"InternalStringMap/1",710),wAn(1048,1984,VQn,JK),MWn.cd=function(){return this.b.value[0]},MWn.dd=function(){return this.a.d!=this.c?hS(this.a,this.b.value[0]):this.b.value[1]},MWn.ed=function(n){return ubn(this.a,this.b.value[0],n)},MWn.c=0,vX(YWn,"InternalStringMap/2",1048),wAn(228,43,tYn,v4,q8),MWn.$b=function(){kR(this)},MWn._b=function(n){return lS(this,n)},MWn.uc=function(n){var t;for(t=this.d.a;t!=this.d;){if(cV(t.e,n))return!0;t=t.a}return!1},MWn.vc=function(){return new iw(this)},MWn.xc=function(n){return lnn(this,n)},MWn.zc=function(n,t){return Jgn(this,n,t)},MWn.Bc=function(n){return k7(this,n)},MWn.gc=function(){return NT(this.e)},MWn.c=!1,vX(YWn,"LinkedHashMap",228),wAn(387,383,{484:1,383:1,387:1,42:1},Cx,nH),vX(YWn,"LinkedHashMap/ChainEntry",387),wAn(701,nVn,tVn,iw),MWn.$b=function(){kR(this.a)},MWn.Hc=function(n){return y2(this,n)},MWn.Kc=function(){return new hW(this)},MWn.Mc=function(n){var t;return!!y2(this,n)&&(t=BB(n,42).cd(),k7(this.a,t),!0)},MWn.gc=function(){return NT(this.a.e)},vX(YWn,"LinkedHashMap/EntrySet",701),wAn(702,1,QWn,hW),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return s9(this)},MWn.Ob=function(){return this.b!=this.c.a.d},MWn.Qb=function(){Mx(!!this.a),p2(this.c.a.e,this),RH(this.a),v6(this.c.a.e,this.a.d),bD(this.c.a.e,this),this.a=null},vX(YWn,"LinkedHashMap/EntrySet/EntryIterator",702),wAn(178,53,eYn,fA,LN,Lq);var Eet=vX(YWn,"LinkedHashSet",178);wAn(68,1964,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1},YT,n_),MWn.Fc=function(n){return DH(this,n)},MWn.$b=function(){yQ(this)},MWn.Zc=function(n){return spn(this,n)},MWn.gc=function(){return this.b},MWn.b=0;var Tet,Met,Set,Pet,Cet,Iet=vX(YWn,"LinkedList",68);wAn(970,1,cVn,ZK),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){nX(this,n)},MWn.Ob=function(){return EE(this)},MWn.Sb=function(){return this.b.b!=this.d.a},MWn.Pb=function(){return b3(this)},MWn.Tb=function(){return this.a},MWn.Ub=function(){return U0(this)},MWn.Vb=function(){return this.a-1},MWn.Qb=function(){mtn(this)},MWn.Wb=function(n){Mx(!!this.c),this.c.c=n},MWn.a=0,MWn.c=null,vX(YWn,"LinkedList/ListIteratorImpl",970),wAn(608,1,{},$),vX(YWn,"LinkedList/Node",608),wAn(1959,1,{}),vX(YWn,"Locale",1959),wAn(861,1959,{},L),MWn.Ib=function(){return""},vX(YWn,"Locale/1",861),wAn(862,1959,{},N),MWn.Ib=function(){return"unknown"},vX(YWn,"Locale/4",862),wAn(109,60,{3:1,102:1,60:1,78:1,109:1},yv,lV),vX(YWn,"NoSuchElementException",109),wAn(404,1,{404:1},vy),MWn.Fb=function(n){var t;return n===this||!!cL(n,404)&&(t=BB(n,404),cV(this.a,t.a))},MWn.Hb=function(){return KA(this.a)},MWn.Ib=function(){return null!=this.a?GWn+kN(this.a)+")":"Optional.empty()"},vX(YWn,"Optional",404),wAn(463,1,{463:1},CO,yx),MWn.Fb=function(n){var t;return n===this||!!cL(n,463)&&(t=BB(n,463),this.a==t.a&&0==Pln(this.b,t.b))},MWn.Hb=function(){return this.a?CJ(this.b):0},MWn.Ib=function(){return this.a?"OptionalDouble.of("+this.b+")":"OptionalDouble.empty()"},MWn.a=!1,MWn.b=0,vX(YWn,"OptionalDouble",463),wAn(517,1,{517:1},IO,kx),MWn.Fb=function(n){var t;return n===this||!!cL(n,517)&&(t=BB(n,517),this.a==t.a&&0==E$(this.b,t.b))},MWn.Hb=function(){return this.a?this.b:0},MWn.Ib=function(){return this.a?"OptionalInt.of("+this.b+")":"OptionalInt.empty()"},MWn.a=!1,MWn.b=0,vX(YWn,"OptionalInt",517),wAn(503,2004,ZWn,Xz),MWn.Gc=function(n){return ikn(this,n)},MWn.$b=function(){this.b.c=x8(Ant,HWn,1,0,5,1)},MWn.Hc=function(n){return-1!=(null==n?-1:E7(this.b,n,0))},MWn.Kc=function(){return new Vb(this)},MWn.Mc=function(n){return srn(this,n)},MWn.gc=function(){return this.b.c.length},MWn.Nc=function(){return new w1(this,256)},MWn.Pc=function(){return bx(this.b)},MWn.Qc=function(n){return Qgn(this.b,n)},vX(YWn,"PriorityQueue",503),wAn(1277,1,QWn,Vb),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return this.a<this.c.b.c.length},MWn.Pb=function(){return Px(this.a<this.c.b.c.length),this.b=this.a++,xq(this.c.b,this.b)},MWn.Qb=function(){Mx(-1!=this.b),hrn(this.c,this.a=this.b),this.b=-1},MWn.a=0,MWn.b=-1,vX(YWn,"PriorityQueue/1",1277),wAn(230,1,{230:1},sbn,C4),MWn.a=0,MWn.b=0;var Oet,Aet,$et,Let=0;vX(YWn,"Random",230),wAn(27,1,fVn,w1,zU,CV),MWn.qd=function(){return this.a},MWn.rd=function(){return Dz(this),this.c},MWn.Nb=function(n){Dz(this),this.d.Nb(n)},MWn.sd=function(n){return ntn(this,n)},MWn.a=0,MWn.c=0,vX(YWn,"Spliterators/IteratorSpliterator",27),wAn(485,27,fVn,wS),vX(YWn,"SortedSet/1",485),wAn(602,1,nYn,Qb),MWn.we=function(n){this.a.td(n)},vX(YWn,"Spliterator/OfDouble/0methodref$accept$Type",602),wAn(603,1,nYn,Yb),MWn.we=function(n){this.a.td(n)},vX(YWn,"Spliterator/OfDouble/1methodref$accept$Type",603),wAn(604,1,wVn,Jb),MWn.ud=function(n){this.a.td(iln(n))},vX(YWn,"Spliterator/OfInt/2methodref$accept$Type",604),wAn(605,1,wVn,Zb),MWn.ud=function(n){this.a.td(iln(n))},vX(YWn,"Spliterator/OfInt/3methodref$accept$Type",605),wAn(617,1,fVn),MWn.Nb=function(n){pE(this,n)},MWn.qd=function(){return this.d},MWn.rd=function(){return this.e},MWn.d=0,MWn.e=0,vX(YWn,"Spliterators/BaseSpliterator",617),wAn(721,617,fVn),MWn.xe=function(n){gE(this,n)},MWn.Nb=function(n){cL(n,182)?gE(this,BB(n,182)):gE(this,new Yb(n))},MWn.sd=function(n){return cL(n,182)?this.ye(BB(n,182)):this.ye(new Qb(n))},vX(YWn,"Spliterators/AbstractDoubleSpliterator",721),wAn(720,617,fVn),MWn.xe=function(n){gE(this,n)},MWn.Nb=function(n){cL(n,196)?gE(this,BB(n,196)):gE(this,new Zb(n))},MWn.sd=function(n){return cL(n,196)?this.ye(BB(n,196)):this.ye(new Jb(n))},vX(YWn,"Spliterators/AbstractIntSpliterator",720),wAn(540,617,fVn),vX(YWn,"Spliterators/AbstractSpliterator",540),wAn(692,1,fVn),MWn.Nb=function(n){pE(this,n)},MWn.qd=function(){return this.b},MWn.rd=function(){return this.d-this.c},MWn.b=0,MWn.c=0,MWn.d=0,vX(YWn,"Spliterators/BaseArraySpliterator",692),wAn(947,692,fVn,BH),MWn.ze=function(n,t){cj(this,BB(n,38),t)},MWn.Nb=function(n){DX(this,n)},MWn.sd=function(n){return K6(this,n)},vX(YWn,"Spliterators/ArraySpliterator",947),wAn(693,692,fVn,_K),MWn.ze=function(n,t){aj(this,BB(n,182),t)},MWn.xe=function(n){DX(this,n)},MWn.Nb=function(n){cL(n,182)?DX(this,BB(n,182)):DX(this,new Yb(n))},MWn.ye=function(n){return K6(this,n)},MWn.sd=function(n){return cL(n,182)?K6(this,BB(n,182)):K6(this,new Qb(n))},vX(YWn,"Spliterators/DoubleArraySpliterator",693),wAn(1968,1,fVn),MWn.Nb=function(n){pE(this,n)},MWn.qd=function(){return 16448},MWn.rd=function(){return 0},vX(YWn,"Spliterators/EmptySpliterator",1968),wAn(946,1968,fVn,z),MWn.xe=function(n){Bf(n)},MWn.Nb=function(n){cL(n,196)?Bf(BB(n,196)):Bf(new Zb(n))},MWn.ye=function(n){return bS(n)},MWn.sd=function(n){return cL(n,196)?bS(BB(n,196)):bS(new Jb(n))},vX(YWn,"Spliterators/EmptySpliterator/OfInt",946),wAn(580,52,fYn,_v),MWn.Vc=function(n,t){Kz(n,this.a.c.length+1),kG(this.a,n,t)},MWn.Fc=function(n){return WB(this.a,n)},MWn.Wc=function(n,t){return Kz(n,this.a.c.length+1),ohn(this.a,n,t)},MWn.Gc=function(n){return gun(this.a,n)},MWn.$b=function(){this.a.c=x8(Ant,HWn,1,0,5,1)},MWn.Hc=function(n){return-1!=E7(this.a,n,0)},MWn.Ic=function(n){return oun(this.a,n)},MWn.Jc=function(n){Otn(this.a,n)},MWn.Xb=function(n){return Kz(n,this.a.c.length),xq(this.a,n)},MWn.Xc=function(n){return E7(this.a,n,0)},MWn.dc=function(){return 0==this.a.c.length},MWn.Kc=function(){return new Wb(this.a)},MWn.$c=function(n){return Kz(n,this.a.c.length),s6(this.a,n)},MWn.Ud=function(n,t){h1(this.a,n,t)},MWn._c=function(n,t){return Kz(n,this.a.c.length),c5(this.a,n,t)},MWn.gc=function(){return this.a.c.length},MWn.ad=function(n){m$(this.a,n)},MWn.bd=function(n,t){return new s1(this.a,n,t)},MWn.Pc=function(){return bx(this.a)},MWn.Qc=function(n){return Qgn(this.a,n)},MWn.Ib=function(){return LMn(this.a)},vX(YWn,"Vector",580),wAn(809,580,fYn,om),vX(YWn,"Stack",809),wAn(206,1,{206:1},$an),MWn.Ib=function(){return W0(this)},vX(YWn,"StringJoiner",206),wAn(544,1992,{3:1,83:1,171:1,161:1},WT,Wz),MWn.$b=function(){my(this)},MWn.vc=function(){return new xN(this)},MWn.zc=function(n,t){return Mon(this,n,t)},MWn.Bc=function(n){return $J(this,n)},MWn.gc=function(){return this.c},MWn.c=0,vX(YWn,"TreeMap",544),wAn(390,1,QWn,BR),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return mx(this)},MWn.Ob=function(){return aS(this.a)},MWn.Qb=function(){e_(this)},vX(YWn,"TreeMap/EntryIterator",390),wAn(435,739,tVn,xN),MWn.$b=function(){my(this.a)},vX(YWn,"TreeMap/EntrySet",435),wAn(436,383,{484:1,383:1,42:1,436:1},H8),MWn.b=!1;var Net,xet,Det,Ret,Ket=vX(YWn,"TreeMap/Node",436);wAn(621,1,{},q),MWn.Ib=function(){return"State: mv="+this.c+" value="+this.d+" done="+this.a+" found="+this.b},MWn.a=!1,MWn.b=!1,MWn.c=!1,vX(YWn,"TreeMap/State",621),wAn(297,22,lYn,gS),MWn.Ae=function(){return!1},MWn.Be=function(){return!1};var _et,Fet=Ben(YWn,"TreeMap/SubMapType",297,Unt,J2,h_);wAn(1112,297,lYn,LA),MWn.Be=function(){return!0},Ben(YWn,"TreeMap/SubMapType/1",1112,Fet,null,null),wAn(1113,297,lYn,A$),MWn.Ae=function(){return!0},MWn.Be=function(){return!0},Ben(YWn,"TreeMap/SubMapType/2",1113,Fet,null,null),wAn(1114,297,lYn,NA),MWn.Ae=function(){return!0},Ben(YWn,"TreeMap/SubMapType/3",1114,Fet,null,null),wAn(208,nVn,{3:1,20:1,28:1,14:1,271:1,21:1,84:1,208:1},zv,dE),MWn.Nc=function(){return new wS(this)},MWn.Fc=function(n){return ZU(this,n)},MWn.$b=function(){my(this.a)},MWn.Hc=function(n){return DK(this.a,n)},MWn.Kc=function(){return new Fb(new BR(new xN(new _b(this.a).a).b))},MWn.Mc=function(n){return MN(this,n)},MWn.gc=function(){return this.a.c};var Bet=vX(YWn,"TreeSet",208);wAn(966,1,{},rw),MWn.Ce=function(n,t){return DD(this.a,n,t)},vX(bYn,"BinaryOperator/lambda$0$Type",966),wAn(967,1,{},cw),MWn.Ce=function(n,t){return RD(this.a,n,t)},vX(bYn,"BinaryOperator/lambda$1$Type",967),wAn(846,1,{},G),MWn.Kb=function(n){return n},vX(bYn,"Function/lambda$0$Type",846),wAn(431,1,DVn,aw),MWn.Mb=function(n){return!this.a.Mb(n)},vX(bYn,"Predicate/lambda$2$Type",431),wAn(572,1,{572:1});var Het,qet,Get=vX(wYn,"Handler",572);wAn(2007,1,KWn),MWn.ne=function(){return"DUMMY"},MWn.Ib=function(){return this.ne()},vX(wYn,"Level",2007),wAn(1621,2007,KWn,U),MWn.ne=function(){return"INFO"},vX(wYn,"Level/LevelInfo",1621),wAn(1640,1,{},Kv),vX(wYn,"LogManager",1640),wAn(1780,1,KWn,i_),MWn.b=null,vX(wYn,"LogRecord",1780),wAn(512,1,{512:1},y5),MWn.e=!1;var zet,Uet,Xet,Wet=!1,Vet=!1,Qet=!1,Yet=!1,Jet=!1;vX(wYn,"Logger",512),wAn(819,572,{572:1},X),vX(wYn,"SimpleConsoleLogHandler",819),wAn(132,22,{3:1,35:1,22:1,132:1},pS);var Zet,nit=Ben(pYn,"Collector/Characteristics",132,Unt,p1,f_);wAn(744,1,{},jU),vX(pYn,"CollectorImpl",744),wAn(1060,1,{},W),MWn.Ce=function(n,t){return Ofn(BB(n,206),BB(t,206))},vX(pYn,"Collectors/10methodref$merge$Type",1060),wAn(1061,1,{},V),MWn.Kb=function(n){return W0(BB(n,206))},vX(pYn,"Collectors/11methodref$toString$Type",1061),wAn(1062,1,{},uw),MWn.Kb=function(n){return hN(),!!TO(n)},vX(pYn,"Collectors/12methodref$test$Type",1062),wAn(251,1,{},B),MWn.Od=function(n,t){BB(n,14).Fc(t)},vX(pYn,"Collectors/20methodref$add$Type",251),wAn(253,1,{},H),MWn.Ee=function(){return new Np},vX(pYn,"Collectors/21methodref$ctor$Type",253),wAn(346,1,{},Q),MWn.Ee=function(){return new Rv},vX(pYn,"Collectors/23methodref$ctor$Type",346),wAn(347,1,{},Y),MWn.Od=function(n,t){TU(BB(n,53),t)},vX(pYn,"Collectors/24methodref$add$Type",347),wAn(1055,1,{},J),MWn.Ce=function(n,t){return ZT(BB(n,15),BB(t,14))},vX(pYn,"Collectors/4methodref$addAll$Type",1055),wAn(1059,1,{},Z),MWn.Od=function(n,t){b6(BB(n,206),BB(t,475))},vX(pYn,"Collectors/9methodref$add$Type",1059),wAn(1058,1,{},YB),MWn.Ee=function(){return new $an(this.a,this.b,this.c)},vX(pYn,"Collectors/lambda$15$Type",1058),wAn(1063,1,{},nn),MWn.Ee=function(){var n;return Jgn(n=new v4,(hN(),!1),new Np),Jgn(n,!0,new Np),n},vX(pYn,"Collectors/lambda$22$Type",1063),wAn(1064,1,{},ow),MWn.Ee=function(){return Pun(Gk(Ant,1),HWn,1,5,[this.a])},vX(pYn,"Collectors/lambda$25$Type",1064),wAn(1065,1,{},sw),MWn.Od=function(n,t){Bq(this.a,een(n))},vX(pYn,"Collectors/lambda$26$Type",1065),wAn(1066,1,{},hw),MWn.Ce=function(n,t){return _z(this.a,een(n),een(t))},vX(pYn,"Collectors/lambda$27$Type",1066),wAn(1067,1,{},tn),MWn.Kb=function(n){return een(n)[0]},vX(pYn,"Collectors/lambda$28$Type",1067),wAn(713,1,{},en),MWn.Ce=function(n,t){return Hq(n,t)},vX(pYn,"Collectors/lambda$4$Type",713),wAn(252,1,{},rn),MWn.Ce=function(n,t){return GT(BB(n,14),BB(t,14))},vX(pYn,"Collectors/lambda$42$Type",252),wAn(348,1,{},cn),MWn.Ce=function(n,t){return zT(BB(n,53),BB(t,53))},vX(pYn,"Collectors/lambda$50$Type",348),wAn(349,1,{},an),MWn.Kb=function(n){return BB(n,53)},vX(pYn,"Collectors/lambda$51$Type",349),wAn(1054,1,{},fw),MWn.Od=function(n,t){bsn(this.a,BB(n,83),t)},vX(pYn,"Collectors/lambda$7$Type",1054),wAn(1056,1,{},un),MWn.Ce=function(n,t){return pun(BB(n,83),BB(t,83),new J)},vX(pYn,"Collectors/lambda$8$Type",1056),wAn(1057,1,{},lw),MWn.Kb=function(n){return mbn(this.a,BB(n,83))},vX(pYn,"Collectors/lambda$9$Type",1057),wAn(539,1,{}),MWn.He=function(){jW(this)},MWn.d=!1,vX(pYn,"TerminatableStream",539),wAn(812,539,vYn,AD),MWn.He=function(){jW(this)},vX(pYn,"DoubleStreamImpl",812),wAn(1784,721,fVn,ZB),MWn.ye=function(n){return pmn(this,BB(n,182))},MWn.a=null,vX(pYn,"DoubleStreamImpl/2",1784),wAn(1785,1,nYn,bw),MWn.we=function(n){HA(this.a,n)},vX(pYn,"DoubleStreamImpl/2/lambda$0$Type",1785),wAn(1782,1,nYn,ww),MWn.we=function(n){BA(this.a,n)},vX(pYn,"DoubleStreamImpl/lambda$0$Type",1782),wAn(1783,1,nYn,dw),MWn.we=function(n){hdn(this.a,n)},vX(pYn,"DoubleStreamImpl/lambda$2$Type",1783),wAn(1358,720,fVn,m5),MWn.ye=function(n){return k2(this,BB(n,196))},MWn.a=0,MWn.b=0,MWn.c=0,vX(pYn,"IntStream/5",1358),wAn(787,539,vYn,$D),MWn.He=function(){jW(this)},MWn.Ie=function(){return EW(this),this.a},vX(pYn,"IntStreamImpl",787),wAn(788,539,vYn,VT),MWn.He=function(){jW(this)},MWn.Ie=function(){return EW(this),IL(),$et},vX(pYn,"IntStreamImpl/Empty",788),wAn(1463,1,wVn,gw),MWn.ud=function(n){ran(this.a,n)},vX(pYn,"IntStreamImpl/lambda$4$Type",1463);var tit,eit=bq(pYn,"Stream");wAn(30,539,{525:1,670:1,833:1},Rq),MWn.He=function(){jW(this)},vX(pYn,"StreamImpl",30),wAn(845,1,{},on),MWn.ld=function(n){return lH(n)},vX(pYn,"StreamImpl/0methodref$lambda$2$Type",845),wAn(1084,540,fVn,KK),MWn.sd=function(n){for(;$9(this);){if(this.a.sd(n))return!0;jW(this.b),this.b=null,this.a=null}return!1},vX(pYn,"StreamImpl/1",1084),wAn(1085,1,lVn,pw),MWn.td=function(n){iH(this.a,BB(n,833))},vX(pYn,"StreamImpl/1/lambda$0$Type",1085),wAn(1086,1,DVn,vw),MWn.Mb=function(n){return TU(this.a,n)},vX(pYn,"StreamImpl/1methodref$add$Type",1086),wAn(1087,540,fVn,vQ),MWn.sd=function(n){var t;return this.a||(t=new Np,this.b.a.Nb(new mw(t)),SQ(),m$(t,this.c),this.a=new w1(t,16)),ntn(this.a,n)},MWn.a=null,vX(pYn,"StreamImpl/5",1087),wAn(1088,1,lVn,mw),MWn.td=function(n){WB(this.a,n)},vX(pYn,"StreamImpl/5/2methodref$add$Type",1088),wAn(722,540,fVn,Q9),MWn.sd=function(n){for(this.b=!1;!this.b&&this.c.sd(new AS(this,n)););return this.b},MWn.b=!1,vX(pYn,"StreamImpl/FilterSpliterator",722),wAn(1079,1,lVn,AS),MWn.td=function(n){Rz(this.a,this.b,n)},vX(pYn,"StreamImpl/FilterSpliterator/lambda$0$Type",1079),wAn(1075,721,fVn,E6),MWn.ye=function(n){return jK(this,BB(n,182))},vX(pYn,"StreamImpl/MapToDoubleSpliterator",1075),wAn(1078,1,lVn,$S),MWn.td=function(n){jS(this.a,this.b,n)},vX(pYn,"StreamImpl/MapToDoubleSpliterator/lambda$0$Type",1078),wAn(1074,720,fVn,T6),MWn.ye=function(n){return EK(this,BB(n,196))},vX(pYn,"StreamImpl/MapToIntSpliterator",1074),wAn(1077,1,lVn,LS),MWn.td=function(n){kS(this.a,this.b,n)},vX(pYn,"StreamImpl/MapToIntSpliterator/lambda$0$Type",1077),wAn(719,540,fVn,M6),MWn.sd=function(n){return TK(this,n)},vX(pYn,"StreamImpl/MapToObjSpliterator",719),wAn(1076,1,lVn,NS),MWn.td=function(n){ES(this.a,this.b,n)},vX(pYn,"StreamImpl/MapToObjSpliterator/lambda$0$Type",1076),wAn(618,1,lVn,sn),MWn.td=function(n){Il(this,n)},vX(pYn,"StreamImpl/ValueConsumer",618),wAn(1080,1,lVn,hn),MWn.td=function(n){dM()},vX(pYn,"StreamImpl/lambda$0$Type",1080),wAn(1081,1,lVn,fn),MWn.td=function(n){dM()},vX(pYn,"StreamImpl/lambda$1$Type",1081),wAn(1082,1,{},yw),MWn.Ce=function(n,t){return F_(this.a,n,t)},vX(pYn,"StreamImpl/lambda$4$Type",1082),wAn(1083,1,lVn,IS),MWn.td=function(n){ER(this.b,this.a,n)},vX(pYn,"StreamImpl/lambda$5$Type",1083),wAn(1089,1,lVn,kw),MWn.td=function(n){Hon(this.a,BB(n,365))},vX(pYn,"TerminatableStream/lambda$0$Type",1089),wAn(2041,1,{}),wAn(1914,1,{},ln),vX("javaemul.internal","ConsoleLogger",1914),wAn(2038,1,{});var iit,rit,cit=0,ait=0;wAn(1768,1,lVn,bn),MWn.td=function(n){BB(n,308)},vX(TYn,"BowyerWatsonTriangulation/lambda$0$Type",1768),wAn(1769,1,lVn,jw),MWn.td=function(n){Frn(this.a,BB(n,308).e)},vX(TYn,"BowyerWatsonTriangulation/lambda$1$Type",1769),wAn(1770,1,lVn,wn),MWn.td=function(n){BB(n,168)},vX(TYn,"BowyerWatsonTriangulation/lambda$2$Type",1770),wAn(1765,1,MYn,Ew),MWn.ue=function(n,t){return q3(this.a,BB(n,168),BB(t,168))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(TYn,"NaiveMinST/lambda$0$Type",1765),wAn(499,1,{},Tw),vX(TYn,"NodeMicroLayout",499),wAn(168,1,{168:1},xS),MWn.Fb=function(n){var t;return!!cL(n,168)&&(t=BB(n,168),cV(this.a,t.a)&&cV(this.b,t.b)||cV(this.a,t.b)&&cV(this.b,t.a))},MWn.Hb=function(){return KA(this.a)+KA(this.b)};var uit=vX(TYn,"TEdge",168);wAn(308,1,{308:1},ZFn),MWn.Fb=function(n){var t;return!!cL(n,308)&&K7(this,(t=BB(n,308)).a)&&K7(this,t.b)&&K7(this,t.c)},MWn.Hb=function(){return KA(this.a)+KA(this.b)+KA(this.c)},vX(TYn,"TTriangle",308),wAn(221,1,{221:1},C$),vX(TYn,"Tree",221),wAn(1254,1,{},IZ),vX(SYn,"Scanline",1254);var oit=bq(SYn,PYn);wAn(1692,1,{},ltn),vX(CYn,"CGraph",1692),wAn(307,1,{307:1},cZ),MWn.b=0,MWn.c=0,MWn.d=0,MWn.g=0,MWn.i=0,MWn.k=KQn,vX(CYn,"CGroup",307),wAn(815,1,{},Xv),vX(CYn,"CGroup/CGroupBuilder",815),wAn(57,1,{57:1},AR),MWn.Ib=function(){return this.j?SD(this.j.Kb(this)):(ED(bit),bit.o+"@"+(PN(this)>>>0).toString(16))},MWn.f=0,MWn.i=KQn;var sit,hit,fit,lit,bit=vX(CYn,"CNode",57);wAn(814,1,{},Wv),vX(CYn,"CNode/CNodeBuilder",814),wAn(1525,1,{},dn),MWn.Oe=function(n,t){return 0},MWn.Pe=function(n,t){return 0},vX(CYn,OYn,1525),wAn(1790,1,{},gn),MWn.Le=function(n){var t,i,r,c,a,u,o,s,h,f,l,b,w,d,g;for(h=RQn,r=new Wb(n.a.b);r.a<r.c.c.length;)t=BB(n0(r),57),h=e.Math.min(h,t.a.j.d.c+t.b.a);for(w=new YT,u=new Wb(n.a.a);u.a<u.c.c.length;)(a=BB(n0(u),307)).k=h,0==a.g&&r5(w,a,w.c.b,w.c);for(;0!=w.b;){for(c=(a=BB(0==w.b?null:(Px(0!=w.b),Atn(w,w.a.a)),307)).j.d.c,b=a.a.a.ec().Kc();b.Ob();)f=BB(b.Pb(),57),g=a.k+f.b.a,!Ghn(n,a,n.d)||f.d.c<g?f.i=g:f.i=f.d.c;for(c-=a.j.i,a.b+=c,n.d==(Ffn(),FPt)||n.d==KPt?a.c+=c:a.c-=c,l=a.a.a.ec().Kc();l.Ob();)for(s=(f=BB(l.Pb(),57)).c.Kc();s.Ob();)o=BB(s.Pb(),57),d=dA(n.d)?n.g.Oe(f,o):n.g.Pe(f,o),o.a.k=e.Math.max(o.a.k,f.i+f.d.b+d-o.b.a),cY(n,o,n.d)&&(o.a.k=e.Math.max(o.a.k,o.d.c-o.b.a)),--o.a.g,0==o.a.g&&DH(w,o.a)}for(i=new Wb(n.a.b);i.a<i.c.c.length;)(t=BB(n0(i),57)).d.c=t.i},vX(CYn,"LongestPathCompaction",1790),wAn(1690,1,{},yOn),MWn.e=!1;var wit,dit,git=vX(CYn,xYn,1690);wAn(1691,1,lVn,Mw),MWn.td=function(n){iun(this.a,BB(n,46))},vX(CYn,DYn,1691),wAn(1791,1,{},pn),MWn.Me=function(n){var t,e,i,r,c,a;for(t=new Wb(n.a.b);t.a<t.c.c.length;)BB(n0(t),57).c.$b();for(i=new Wb(n.a.b);i.a<i.c.c.length;)for(e=BB(n0(i),57),c=new Wb(n.a.b);c.a<c.c.c.length;)e!=(r=BB(n0(c),57))&&(e.a&&e.a==r.a||(a=dA(n.d)?n.g.Pe(e,r):n.g.Oe(e,r),(r.d.c>e.d.c||e.d.c==r.d.c&&e.d.b<r.d.b)&&Rdn(r.d.d+r.d.a+a,e.d.d)&&Kdn(r.d.d,e.d.d+e.d.a+a)&&e.c.Fc(r)))},vX(CYn,"QuadraticConstraintCalculation",1791),wAn(522,1,{522:1},Dp),MWn.a=!1,MWn.b=!1,MWn.c=!1,MWn.d=!1,vX(CYn,RYn,522),wAn(803,1,{},RG),MWn.Me=function(n){this.c=n,pCn(this,new yn)},vX(CYn,KYn,803),wAn(1718,1,{679:1},fY),MWn.Ke=function(n){_Pn(this,BB(n,464))},vX(CYn,_Yn,1718),wAn(1719,1,MYn,vn),MWn.ue=function(n,t){return uQ(BB(n,57),BB(t,57))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(CYn,FYn,1719),wAn(464,1,{464:1},OS),MWn.a=!1,vX(CYn,BYn,464),wAn(1720,1,MYn,mn),MWn.ue=function(n,t){return Jkn(BB(n,464),BB(t,464))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(CYn,HYn,1720),wAn(1721,1,qYn,yn),MWn.Lb=function(n){return BB(n,57),!0},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return BB(n,57),!0},vX(CYn,"ScanlineConstraintCalculator/lambda$1$Type",1721),wAn(428,22,{3:1,35:1,22:1,428:1},FS);var pit,vit,mit,yit=Ben(GYn,"HighLevelSortingCriterion",428,Unt,rJ,l_);wAn(427,22,{3:1,35:1,22:1,427:1},BS);var kit,jit,Eit,Tit,Mit,Sit,Pit,Cit,Iit,Oit,Ait,$it,Lit,Nit,xit,Dit,Rit,Kit=Ben(GYn,"LowLevelSortingCriterion",427,Unt,cJ,b_),_it=bq(zYn,"ILayoutMetaDataProvider");wAn(853,1,QYn,Gh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,UYn),YYn),"Polyomino Traversal Strategy"),"Traversal strategy for trying different candidate positions for polyominoes."),Cit),(PPn(),gMt)),Bit),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,XYn),YYn),"Polyomino Secondary Sorting Criterion"),"Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."),Sit),gMt),Kit),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,WYn),YYn),"Polyomino Primary Sorting Criterion"),"Possible primary sorting criteria for the processing order of polyominoes."),Tit),gMt),yit),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,VYn),YYn),"Fill Polyominoes"),"Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."),(hN(),!0)),wMt),ktt),nbn(hMt))))},vX(GYn,"PolyominoOptions",853),wAn(250,22,{3:1,35:1,22:1,250:1},HS);var Fit,Bit=Ben(GYn,"TraversalStrategy",250,Unt,Tin,w_);wAn(213,1,{213:1},kn),MWn.Ib=function(){return"NEdge[id="+this.b+" w="+this.g+" d="+this.a+"]"},MWn.a=1,MWn.b=0,MWn.c=0,MWn.f=!1,MWn.g=0;var Hit=vX(JYn,"NEdge",213);wAn(176,1,{},Hv),vX(JYn,"NEdge/NEdgeBuilder",176),wAn(653,1,{},Fv),vX(JYn,"NGraph",653),wAn(121,1,{121:1},k6),MWn.c=-1,MWn.d=0,MWn.e=0,MWn.i=-1,MWn.j=!1;var qit=vX(JYn,"NNode",121);wAn(795,1,JQn,Bv),MWn.Jc=function(n){e5(this,n)},MWn.Lc=function(){return new Rq(null,new w1(this,16))},MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.Oc=function(){return new Rq(null,new w1(this,16))},MWn.Vc=function(n,t){++this.b,kG(this.a,n,t)},MWn.Fc=function(n){return RN(this,n)},MWn.Wc=function(n,t){return++this.b,ohn(this.a,n,t)},MWn.Gc=function(n){return++this.b,gun(this.a,n)},MWn.$b=function(){++this.b,this.a.c=x8(Ant,HWn,1,0,5,1)},MWn.Hc=function(n){return-1!=E7(this.a,n,0)},MWn.Ic=function(n){return oun(this.a,n)},MWn.Xb=function(n){return xq(this.a,n)},MWn.Xc=function(n){return E7(this.a,n,0)},MWn.dc=function(){return 0==this.a.c.length},MWn.Kc=function(){return L9(new Wb(this.a))},MWn.Yc=function(){throw Hp(new pv)},MWn.Zc=function(n){throw Hp(new pv)},MWn.$c=function(n){return++this.b,s6(this.a,n)},MWn.Mc=function(n){return KN(this,n)},MWn._c=function(n,t){return++this.b,c5(this.a,n,t)},MWn.gc=function(){return this.a.c.length},MWn.bd=function(n,t){return new s1(this.a,n,t)},MWn.Pc=function(){return bx(this.a)},MWn.Qc=function(n){return Qgn(this.a,n)},MWn.b=0,vX(JYn,"NNode/ChangeAwareArrayList",795),wAn(269,1,{},qv),vX(JYn,"NNode/NNodeBuilder",269),wAn(1630,1,{},jn),MWn.a=!1,MWn.f=DWn,MWn.j=0,vX(JYn,"NetworkSimplex",1630),wAn(1294,1,lVn,Sw),MWn.td=function(n){qzn(this.a,BB(n,680),!0,!1)},vX(nJn,"NodeLabelAndSizeCalculator/lambda$0$Type",1294),wAn(558,1,{},Pw),MWn.b=!0,MWn.c=!0,MWn.d=!0,MWn.e=!0,vX(nJn,"NodeMarginCalculator",558),wAn(212,1,{212:1}),MWn.j=!1,MWn.k=!1;var Git,zit,Uit,Xit=vX(tJn,"Cell",212);wAn(124,212,{124:1,212:1},FR),MWn.Re=function(){return XH(this)},MWn.Se=function(){var n;return n=this.n,this.a.a+n.b+n.c},vX(tJn,"AtomicCell",124),wAn(232,22,{3:1,35:1,22:1,232:1},qS);var Wit,Vit=Ben(tJn,"ContainerArea",232,Unt,v1,d_);wAn(326,212,iJn),vX(tJn,"ContainerCell",326),wAn(1473,326,iJn,Hwn),MWn.Re=function(){var n;return n=0,this.e?this.b?n=this.b.b:this.a[1][1]&&(n=this.a[1][1].Re()):n=Ybn(this,Umn(this,!0)),n>0?n+this.n.d+this.n.a:0},MWn.Se=function(){var n,t,i,r,c;if(c=0,this.e)this.b?c=this.b.a:this.a[1][1]&&(c=this.a[1][1].Se());else if(this.g)c=Ybn(this,Okn(this,null,!0));else for(Dtn(),i=0,r=(t=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;i<r;++i)n=t[i],c=e.Math.max(c,Ybn(this,Okn(this,n,!0)));return c>0?c+this.n.b+this.n.c:0},MWn.Te=function(){var n,t,e,i,r;if(this.g)for(n=Okn(this,null,!1),Dtn(),i=0,r=(e=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;i<r;++i)Vxn(this,t=e[i],n);else for(Dtn(),i=0,r=(e=Pun(Gk(Vit,1),$Vn,232,0,[Git,zit,Uit])).length;i<r;++i)Vxn(this,t=e[i],n=Okn(this,t,!1))},MWn.Ue=function(){var n,t,i,r;t=this.i,n=this.n,r=Umn(this,!1),Q5(this,(Dtn(),Git),t.d+n.d,r),Q5(this,Uit,t.d+t.a-n.a-r[2],r),i=t.a-n.d-n.a,r[0]>0&&(r[0]+=this.d,i-=r[0]),r[2]>0&&(r[2]+=this.d,i-=r[2]),this.c.a=e.Math.max(0,i),this.c.d=t.d+n.d+(this.c.a-i)/2,r[1]=e.Math.max(r[1],i),Q5(this,zit,t.d+n.d+r[0]-(r[1]-i)/2,r)},MWn.b=null,MWn.d=0,MWn.e=!1,MWn.f=!1,MWn.g=!1;var Qit,Yit,Jit,Zit=0,nrt=0;vX(tJn,"GridContainerCell",1473),wAn(461,22,{3:1,35:1,22:1,461:1},GS);var trt,ert=Ben(tJn,"HorizontalLabelAlignment",461,Unt,m1,g_);wAn(306,212,{212:1,306:1},yJ,wtn,KY),MWn.Re=function(){return WH(this)},MWn.Se=function(){return VH(this)},MWn.a=0,MWn.c=!1;var irt,rrt,crt,art=vX(tJn,"LabelCell",306);wAn(244,326,{212:1,326:1,244:1},Ign),MWn.Re=function(){return MIn(this)},MWn.Se=function(){return SIn(this)},MWn.Te=function(){_Fn(this)},MWn.Ue=function(){GFn(this)},MWn.b=0,MWn.c=0,MWn.d=!1,vX(tJn,"StripContainerCell",244),wAn(1626,1,DVn,En),MWn.Mb=function(n){return Qy(BB(n,212))},vX(tJn,"StripContainerCell/lambda$0$Type",1626),wAn(1627,1,{},Tn),MWn.Fe=function(n){return BB(n,212).Se()},vX(tJn,"StripContainerCell/lambda$1$Type",1627),wAn(1628,1,DVn,Mn),MWn.Mb=function(n){return Yy(BB(n,212))},vX(tJn,"StripContainerCell/lambda$2$Type",1628),wAn(1629,1,{},Sn),MWn.Fe=function(n){return BB(n,212).Re()},vX(tJn,"StripContainerCell/lambda$3$Type",1629),wAn(462,22,{3:1,35:1,22:1,462:1},zS);var urt,ort,srt,hrt,frt,lrt,brt,wrt,drt,grt,prt,vrt,mrt,yrt,krt,jrt,Ert,Trt,Mrt,Srt,Prt,Crt,Irt,Ort=Ben(tJn,"VerticalLabelAlignment",462,Unt,y1,p_);wAn(789,1,{},eUn),MWn.c=0,MWn.d=0,MWn.k=0,MWn.s=0,MWn.t=0,MWn.v=!1,MWn.w=0,MWn.D=!1,vX(sJn,"NodeContext",789),wAn(1471,1,MYn,Pn),MWn.ue=function(n,t){return YO(BB(n,61),BB(t,61))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(sJn,"NodeContext/0methodref$comparePortSides$Type",1471),wAn(1472,1,MYn,Cn),MWn.ue=function(n,t){return UTn(BB(n,111),BB(t,111))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(sJn,"NodeContext/1methodref$comparePortContexts$Type",1472),wAn(159,22,{3:1,35:1,22:1,159:1},ocn);var Art,$rt,Lrt,Nrt,xrt,Drt,Rrt,Krt=Ben(sJn,"NodeLabelLocation",159,Unt,tpn,v_);wAn(111,1,{111:1},MOn),MWn.a=!1,vX(sJn,"PortContext",111),wAn(1476,1,lVn,In),MWn.td=function(n){CE(BB(n,306))},vX(lJn,bJn,1476),wAn(1477,1,DVn,On),MWn.Mb=function(n){return!!BB(n,111).c},vX(lJn,wJn,1477),wAn(1478,1,lVn,An),MWn.td=function(n){CE(BB(n,111).c)},vX(lJn,"LabelPlacer/lambda$2$Type",1478),wAn(1475,1,lVn,Ln),MWn.td=function(n){qD(),Yp(BB(n,111))},vX(lJn,"NodeLabelAndSizeUtilities/lambda$0$Type",1475),wAn(790,1,lVn,$_),MWn.td=function(n){RM(this.b,this.c,this.a,BB(n,181))},MWn.a=!1,MWn.c=!1,vX(lJn,"NodeLabelCellCreator/lambda$0$Type",790),wAn(1474,1,lVn,Cw),MWn.td=function(n){Iv(this.a,BB(n,181))},vX(lJn,"PortContextCreator/lambda$0$Type",1474),wAn(1829,1,{},Nn),vX(gJn,"GreedyRectangleStripOverlapRemover",1829),wAn(1830,1,MYn,$n),MWn.ue=function(n,t){return FN(BB(n,222),BB(t,222))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(gJn,"GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type",1830),wAn(1786,1,{},Zv),MWn.a=5,MWn.e=0,vX(gJn,"RectangleStripOverlapRemover",1786),wAn(1787,1,MYn,Dn),MWn.ue=function(n,t){return BN(BB(n,222),BB(t,222))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(gJn,"RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type",1787),wAn(1789,1,MYn,Rn),MWn.ue=function(n,t){return JU(BB(n,222),BB(t,222))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(gJn,"RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type",1789),wAn(406,22,{3:1,35:1,22:1,406:1},US);var _rt,Frt,Brt,Hrt,qrt,Grt=Ben(gJn,"RectangleStripOverlapRemover/OverlapRemovalDirection",406,Unt,Y2,m_);wAn(222,1,{222:1},xG),vX(gJn,"RectangleStripOverlapRemover/RectangleNode",222),wAn(1788,1,lVn,Iw),MWn.td=function(n){Cmn(this.a,BB(n,222))},vX(gJn,"RectangleStripOverlapRemover/lambda$1$Type",1788),wAn(1304,1,MYn,Kn),MWn.ue=function(n,t){return zHn(BB(n,167),BB(t,167))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/CornerCasesGreaterThanRestComparator",1304),wAn(1307,1,{},_n),MWn.Kb=function(n){return BB(n,324).a},vX(vJn,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type",1307),wAn(1308,1,DVn,Fn),MWn.Mb=function(n){return BB(n,323).a},vX(vJn,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type",1308),wAn(1309,1,DVn,Bn),MWn.Mb=function(n){return BB(n,323).a},vX(vJn,"PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type",1309),wAn(1302,1,MYn,Hn),MWn.ue=function(n,t){return WRn(BB(n,167),BB(t,167))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator",1302),wAn(1305,1,{},xn),MWn.Kb=function(n){return BB(n,324).a},vX(vJn,"PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type",1305),wAn(767,1,MYn,qn),MWn.ue=function(n,t){return Uan(BB(n,167),BB(t,167))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/MinNumOfExtensionsComparator",767),wAn(1300,1,MYn,Gn),MWn.ue=function(n,t){return Qin(BB(n,321),BB(t,321))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/MinPerimeterComparator",1300),wAn(1301,1,MYn,zn),MWn.ue=function(n,t){return avn(BB(n,321),BB(t,321))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/MinPerimeterComparatorWithShape",1301),wAn(1303,1,MYn,Un),MWn.ue=function(n,t){return BKn(BB(n,167),BB(t,167))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(vJn,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator",1303),wAn(1306,1,{},Xn),MWn.Kb=function(n){return BB(n,324).a},vX(vJn,"PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type",1306),wAn(777,1,{},DS),MWn.Ce=function(n,t){return O2(this,BB(n,46),BB(t,167))},vX(vJn,"SuccessorCombination",777),wAn(644,1,{},Wn),MWn.Ce=function(n,t){var e;return XIn((e=BB(n,46),BB(t,167),e))},vX(vJn,"SuccessorJitter",644),wAn(643,1,{},Vn),MWn.Ce=function(n,t){var e;return bxn((e=BB(n,46),BB(t,167),e))},vX(vJn,"SuccessorLineByLine",643),wAn(568,1,{},Qn),MWn.Ce=function(n,t){var e;return f$n((e=BB(n,46),BB(t,167),e))},vX(vJn,"SuccessorManhattan",568),wAn(1356,1,{},Yn),MWn.Ce=function(n,t){var e;return jNn((e=BB(n,46),BB(t,167),e))},vX(vJn,"SuccessorMaxNormWindingInMathPosSense",1356),wAn(400,1,{},Ow),MWn.Ce=function(n,t){return BU(this,n,t)},MWn.c=!1,MWn.d=!1,MWn.e=!1,MWn.f=!1,vX(vJn,"SuccessorQuadrantsGeneric",400),wAn(1357,1,{},Jn),MWn.Kb=function(n){return BB(n,324).a},vX(vJn,"SuccessorQuadrantsGeneric/lambda$0$Type",1357),wAn(323,22,{3:1,35:1,22:1,323:1},_S),MWn.a=!1;var zrt,Urt=Ben(EJn,TJn,323,Unt,n3,y_);wAn(1298,1,{}),MWn.Ib=function(){var n,t,e,i,r,c;for(e=" ",n=iln(0),r=0;r<this.o;r++)e+=""+n.a,n=iln(lR(n.a));for(e+="\n",n=iln(0),c=0;c<this.p;c++){for(e+=""+n.a,n=iln(lR(n.a)),i=0;i<this.o;i++)0==Vhn(t=trn(this,i,c),0)?e+="_":0==Vhn(t,1)?e+="X":e+="0";e+="\n"}return fx(e,0,e.length-1)},MWn.o=0,MWn.p=0,vX(EJn,"TwoBitGrid",1298),wAn(321,1298,{321:1},qwn),MWn.j=0,MWn.k=0,vX(EJn,"PlanarGrid",321),wAn(167,321,{321:1,167:1}),MWn.g=0,MWn.i=0,vX(EJn,"Polyomino",167);var Xrt=bq(IJn,OJn);wAn(134,1,AJn,Zn),MWn.Ye=function(n,t){return son(this,n,t)},MWn.Ve=function(){return Gq(this)},MWn.We=function(n){return mMn(this,n)},MWn.Xe=function(n){return Lx(this,n)},vX(IJn,"MapPropertyHolder",134),wAn(1299,134,AJn,yxn),vX(EJn,"Polyominoes",1299);var Wrt,Vrt,Qrt,Yrt,Jrt,Zrt,nct,tct,ect=!1;wAn(1766,1,lVn,nt),MWn.td=function(n){uqn(BB(n,221))},vX($Jn,"DepthFirstCompaction/0methodref$compactTree$Type",1766),wAn(810,1,lVn,Aw),MWn.td=function(n){KW(this.a,BB(n,221))},vX($Jn,"DepthFirstCompaction/lambda$1$Type",810),wAn(1767,1,lVn,N_),MWn.td=function(n){dgn(this.a,this.b,this.c,BB(n,221))},vX($Jn,"DepthFirstCompaction/lambda$2$Type",1767),wAn(65,1,{65:1},AZ),vX($Jn,"Node",65),wAn(1250,1,{},I$),vX($Jn,"ScanlineOverlapCheck",1250),wAn(1251,1,{679:1},hY),MWn.Ke=function(n){GD(this,BB(n,440))},vX($Jn,"ScanlineOverlapCheck/OverlapsScanlineHandler",1251),wAn(1252,1,MYn,tt),MWn.ue=function(n,t){return xln(BB(n,65),BB(t,65))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX($Jn,"ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type",1252),wAn(440,1,{440:1},RS),MWn.a=!1,vX($Jn,"ScanlineOverlapCheck/Timestamp",440),wAn(1253,1,MYn,et),MWn.ue=function(n,t){return Zkn(BB(n,440),BB(t,440))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX($Jn,"ScanlineOverlapCheck/lambda$0$Type",1253),wAn(550,1,{},it),vX(LJn,"SVGImage",550),wAn(324,1,{324:1},x_),MWn.Ib=function(){return"("+this.a+FWn+this.b+FWn+this.c+")"},vX(LJn,"UniqueTriple",324),wAn(209,1,NJn),vX(xJn,"AbstractLayoutProvider",209),wAn(1132,209,NJn,rt),MWn.Ze=function(n,t){var e,i,r;OTn(t,DJn,1),this.a=Gy(MD(ZAn(n,(Epn(),Ect)))),P8(n,bct)&&(i=SD(ZAn(n,bct)),(e=XRn(cin(),i))&&BB(sJ(e.f),209).Ze(n,mcn(t,1))),r=new s4(this.a),this.b=Rzn(r,n),0===BB(ZAn(n,(Gsn(),oct)),481).g?(BOn(new ct,this.b),Ypn(n,gct,mMn(this.b,gct))):$T(),Uzn(r),Ypn(n,dct,this.b),HSn(t)},MWn.a=0,vX(RJn,"DisCoLayoutProvider",1132),wAn(1244,1,{},ct),MWn.c=!1,MWn.e=0,MWn.f=0,vX(RJn,"DisCoPolyominoCompactor",1244),wAn(561,1,{561:1},hG),MWn.b=!0,vX(KJn,"DCComponent",561),wAn(394,22,{3:1,35:1,22:1,394:1},KS),MWn.a=!1;var ict,rct,cct=Ben(KJn,"DCDirection",394,Unt,Z2,k_);wAn(266,134,{3:1,266:1,94:1,134:1},EAn),vX(KJn,"DCElement",266),wAn(395,1,{395:1},Imn),MWn.c=0,vX(KJn,"DCExtension",395),wAn(755,134,AJn,_j),vX(KJn,"DCGraph",755),wAn(481,22,{3:1,35:1,22:1,481:1},Ix);var act,uct,oct,sct,hct,fct,lct,bct,wct,dct,gct,pct,vct,mct,yct,kct,jct,Ect,Tct,Mct,Sct,Pct=Ben(_Jn,FJn,481,Unt,RV,j_);wAn(854,1,QYn,Hh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,BJn),zJn),"Connected Components Compaction Strategy"),"Strategy for packing different connected components in order to save space and enhance readability of a graph."),sct),(PPn(),gMt)),Pct),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,HJn),zJn),"Connected Components Layout Algorithm"),"A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."),yMt),Qtt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,qJn),"debug"),"DCGraph"),"Access to the DCGraph is intended for the debug view,"),mMt),Ant),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,GJn),"debug"),"List of Polyominoes"),"Access to the polyominoes is intended for the debug view,"),mMt),Ant),nbn(hMt)))),BBn((new qh,n))},vX(_Jn,"DisCoMetaDataProvider",854),wAn(998,1,QYn,qh),MWn.Qe=function(n){BBn(n)},vX(_Jn,"DisCoOptions",998),wAn(999,1,{},at),MWn.$e=function(){return new rt},MWn._e=function(n){},vX(_Jn,"DisCoOptions/DiscoFactory",999),wAn(562,167,{321:1,167:1,562:1},Q$n),MWn.a=0,MWn.b=0,MWn.c=0,MWn.d=0,vX("org.eclipse.elk.alg.disco.structures","DCPolyomino",562),wAn(1268,1,DVn,ut),MWn.Mb=function(n){return TO(n)},vX(YJn,"ElkGraphComponentsProcessor/lambda$0$Type",1268),wAn(1269,1,{},ot),MWn.Kb=function(n){return MQ(),PMn(BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$1$Type",1269),wAn(1270,1,DVn,st),MWn.Mb=function(n){return qH(BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$2$Type",1270),wAn(1271,1,{},ht),MWn.Kb=function(n){return MQ(),OMn(BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$3$Type",1271),wAn(1272,1,DVn,ft),MWn.Mb=function(n){return GH(BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$4$Type",1272),wAn(1273,1,DVn,$w),MWn.Mb=function(n){return MJ(this.a,BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$5$Type",1273),wAn(1274,1,{},Lw),MWn.Kb=function(n){return KX(this.a,BB(n,79))},vX(YJn,"ElkGraphComponentsProcessor/lambda$6$Type",1274),wAn(1241,1,{},s4),MWn.a=0,vX(YJn,"ElkGraphTransformer",1241),wAn(1242,1,{},lt),MWn.Od=function(n,t){tOn(this,BB(n,160),BB(t,266))},vX(YJn,"ElkGraphTransformer/OffsetApplier",1242),wAn(1243,1,lVn,Nw),MWn.td=function(n){TL(this,BB(n,8))},vX(YJn,"ElkGraphTransformer/OffsetApplier/OffSetToChainApplier",1243),wAn(753,1,{},bt),vX(eZn,iZn,753),wAn(1232,1,MYn,wt),MWn.ue=function(n,t){return CIn(BB(n,231),BB(t,231))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(eZn,rZn,1232),wAn(740,209,NJn,Gv),MWn.Ze=function(n,t){vLn(this,n,t)},vX(eZn,"ForceLayoutProvider",740),wAn(357,134,{3:1,357:1,94:1,134:1}),vX(cZn,"FParticle",357),wAn(559,357,{3:1,559:1,357:1,94:1,134:1},hX),MWn.Ib=function(){var n;return this.a?(n=E7(this.a.a,this,0))>=0?"b"+n+"["+u5(this.a)+"]":"b["+u5(this.a)+"]":"b_"+PN(this)},vX(cZn,"FBendpoint",559),wAn(282,134,{3:1,282:1,94:1,134:1},IR),MWn.Ib=function(){return u5(this)},vX(cZn,"FEdge",282),wAn(231,134,{3:1,231:1,94:1,134:1},y6);var Cct,Ict,Oct,Act,$ct,Lct,Nct,xct,Dct,Rct,Kct=vX(cZn,"FGraph",231);wAn(447,357,{3:1,447:1,357:1,94:1,134:1},m4),MWn.Ib=function(){return null==this.b||0==this.b.length?"l["+u5(this.a)+"]":"l_"+this.b},vX(cZn,"FLabel",447),wAn(144,357,{3:1,144:1,357:1,94:1,134:1},qX),MWn.Ib=function(){return p0(this)},MWn.b=0,vX(cZn,"FNode",144),wAn(2003,1,{}),MWn.bf=function(n){sFn(this,n)},MWn.cf=function(){qmn(this)},MWn.d=0,vX(uZn,"AbstractForceModel",2003),wAn(631,2003,{631:1},Lan),MWn.af=function(n,t){var i,r,c,a;return tIn(this.f,n,t),c=XR(B$(t.d),n.d),a=e.Math.sqrt(c.a*c.a+c.b*c.b),r=e.Math.max(0,a-lW(n.e)/2-lW(t.e)/2),kL(c,((i=qon(this.e,n,t))>0?-_U(r,this.c)*i:xx(r,this.b)*BB(mMn(n,(fRn(),Zct)),19).a)/a),c},MWn.bf=function(n){sFn(this,n),this.a=BB(mMn(n,(fRn(),qct)),19).a,this.c=Gy(MD(mMn(n,cat))),this.b=Gy(MD(mMn(n,tat)))},MWn.df=function(n){return n<this.a},MWn.a=0,MWn.b=0,MWn.c=0,vX(uZn,"EadesModel",631),wAn(632,2003,{632:1},fH),MWn.af=function(n,t){var i,r,c,a,u;return tIn(this.f,n,t),c=XR(B$(t.d),n.d),u=e.Math.sqrt(c.a*c.a+c.b*c.b),a=Nx(r=e.Math.max(0,u-lW(n.e)/2-lW(t.e)/2),this.a)*BB(mMn(n,(fRn(),Zct)),19).a,(i=qon(this.e,n,t))>0&&(a-=Sy(r,this.a)*i),kL(c,a*this.b/u),c},MWn.bf=function(n){var t,i,r,c,a,u,o;for(sFn(this,n),this.b=Gy(MD(mMn(n,(fRn(),aat)))),this.c=this.b/BB(mMn(n,qct),19).a,r=n.e.c.length,a=0,c=0,o=new Wb(n.e);o.a<o.c.c.length;)a+=(u=BB(n0(o),144)).e.a,c+=u.e.b;t=a*c,i=Gy(MD(mMn(n,cat)))*fJn,this.a=e.Math.sqrt(t/(2*r))*i},MWn.cf=function(){qmn(this),this.b-=this.c},MWn.df=function(n){return this.b>0},MWn.a=0,MWn.b=0,MWn.c=0,vX(uZn,"FruchtermanReingoldModel",632),wAn(849,1,QYn,zh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,oZn),""),"Force Model"),"Determines the model for force calculation."),Oct),(PPn(),gMt)),$at),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,sZn),""),"Iterations"),"The number of iterations on the force model."),iln(300)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,hZn),""),"Repulsive Power"),"Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"),iln(0)),vMt),Att),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,fZn),""),"FR Temperature"),"The temperature is used as a scaling factor for particle displacements."),lZn),dMt),Ptt),nbn(hMt)))),a2(n,fZn,oZn,xct),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,bZn),""),"Eades Repulsion"),"Factor for repulsive forces in Eades' model."),5),dMt),Ptt),nbn(hMt)))),a2(n,bZn,oZn,$ct),pUn((new Uh,n))},vX(wZn,"ForceMetaDataProvider",849),wAn(424,22,{3:1,35:1,22:1,424:1},XS);var _ct,Fct,Bct,Hct,qct,Gct,zct,Uct,Xct,Wct,Vct,Qct,Yct,Jct,Zct,nat,tat,eat,iat,rat,cat,aat,uat,oat,sat,hat,fat,lat,bat,wat,dat,gat,pat,vat,mat,yat,kat,jat,Eat,Tat,Mat,Sat,Pat,Cat,Iat,Oat,Aat,$at=Ben(wZn,"ForceModelStrategy",424,Unt,aJ,E_);wAn(988,1,QYn,Uh),MWn.Qe=function(n){pUn(n)},vX(wZn,"ForceOptions",988),wAn(989,1,{},dt),MWn.$e=function(){return new Gv},MWn._e=function(n){},vX(wZn,"ForceOptions/ForceFactory",989),wAn(850,1,QYn,Xh),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,NZn),""),"Fixed Position"),"Prevent that the node is moved by the layout algorithm."),(hN(),!1)),(PPn(),wMt)),ktt),nbn((rpn(),sMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,xZn),""),"Desired Edge Length"),"Either specified for parent nodes or for individual edges, where the latter takes higher precedence."),100),dMt),Ptt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[uMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,DZn),""),"Layout Dimension"),"Dimensions that are permitted to be altered during layout."),bat),gMt),Hat),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,RZn),""),"Stress Epsilon"),"Termination criterion for the iterative process."),lZn),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,KZn),""),"Iteration Limit"),"Maximum number of performed iterations. Takes higher precedence than 'epsilon'."),iln(DWn)),vMt),Att),nbn(hMt)))),UGn((new Wh,n))},vX(wZn,"StressMetaDataProvider",850),wAn(992,1,QYn,Wh),MWn.Qe=function(n){UGn(n)},vX(wZn,"StressOptions",992),wAn(993,1,{},gt),MWn.$e=function(){return new OR},MWn._e=function(n){},vX(wZn,"StressOptions/StressFactory",993),wAn(1128,209,NJn,OR),MWn.Ze=function(n,t){var e,i,r,c;for(OTn(t,FZn,1),qy(TD(ZAn(n,(rkn(),kat))))?qy(TD(ZAn(n,Pat)))||jJ(new Tw((GM(),new Dy(n)))):vLn(new Gv,n,mcn(t,1)),i=fon(n),c=(e=HFn(this.a,i)).Kc();c.Ob();)(r=BB(c.Pb(),231)).e.c.length<=1||(HHn(this.b,r),i$n(this.b),Otn(r.d,new pt));SUn(i=GUn(e)),HSn(t)},vX(HZn,"StressLayoutProvider",1128),wAn(1129,1,lVn,pt),MWn.td=function(n){_Bn(BB(n,447))},vX(HZn,"StressLayoutProvider/lambda$0$Type",1129),wAn(990,1,{},Tv),MWn.c=0,MWn.e=0,MWn.g=0,vX(HZn,"StressMajorization",990),wAn(379,22,{3:1,35:1,22:1,379:1},WS);var Lat,Nat,xat,Dat,Rat,Kat,_at,Fat,Bat,Hat=Ben(HZn,"StressMajorization/Dimension",379,Unt,j1,T_);wAn(991,1,MYn,xw),MWn.ue=function(n,t){return SK(this.a,BB(n,144),BB(t,144))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(HZn,"StressMajorization/lambda$0$Type",991),wAn(1229,1,{},D0),vX(GZn,"ElkLayered",1229),wAn(1230,1,lVn,vt),MWn.td=function(n){RIn(BB(n,37))},vX(GZn,"ElkLayered/lambda$0$Type",1230),wAn(1231,1,lVn,Dw),MWn.td=function(n){PK(this.a,BB(n,37))},vX(GZn,"ElkLayered/lambda$1$Type",1231),wAn(1263,1,{},$$),vX(GZn,"GraphConfigurator",1263),wAn(759,1,lVn,Rw),MWn.td=function(n){VMn(this.a,BB(n,10))},vX(GZn,"GraphConfigurator/lambda$0$Type",759),wAn(760,1,{},mt),MWn.Kb=function(n){return tjn(),new Rq(null,new w1(BB(n,29).a,16))},vX(GZn,"GraphConfigurator/lambda$1$Type",760),wAn(761,1,lVn,Kw),MWn.td=function(n){VMn(this.a,BB(n,10))},vX(GZn,"GraphConfigurator/lambda$2$Type",761),wAn(1127,209,NJn,Uv),MWn.Ze=function(n,t){var e;e=SBn(new tm,n),GI(ZAn(n,(HXn(),sgt)))===GI((ufn(),pCt))?rwn(this.a,e,t):wOn(this.a,e,t),gUn(new Qh,e)},vX(GZn,"LayeredLayoutProvider",1127),wAn(356,22,{3:1,35:1,22:1,356:1},VS);var qat,Gat,zat,Uat=Ben(GZn,"LayeredPhases",356,Unt,s5,M_);wAn(1651,1,{},vin),MWn.i=0,vX(zZn,"ComponentsToCGraphTransformer",1651),wAn(1652,1,{},yt),MWn.ef=function(n,t){return e.Math.min(null!=n.a?Gy(n.a):n.c.i,null!=t.a?Gy(t.a):t.c.i)},MWn.ff=function(n,t){return e.Math.min(null!=n.a?Gy(n.a):n.c.i,null!=t.a?Gy(t.a):t.c.i)},vX(zZn,"ComponentsToCGraphTransformer/1",1652),wAn(81,1,{81:1}),MWn.i=0,MWn.k=!0,MWn.o=KQn;var Xat,Wat,Vat,Qat=vX(UZn,"CNode",81);wAn(460,81,{460:1,81:1},NN,Sgn),MWn.Ib=function(){return""},vX(zZn,"ComponentsToCGraphTransformer/CRectNode",460),wAn(1623,1,{},kt),vX(zZn,"OneDimensionalComponentsCompaction",1623),wAn(1624,1,{},jt),MWn.Kb=function(n){return xZ(BB(n,46))},MWn.Fb=function(n){return this===n},vX(zZn,"OneDimensionalComponentsCompaction/lambda$0$Type",1624),wAn(1625,1,{},Et),MWn.Kb=function(n){return Ewn(BB(n,46))},MWn.Fb=function(n){return this===n},vX(zZn,"OneDimensionalComponentsCompaction/lambda$1$Type",1625),wAn(1654,1,{},BX),vX(UZn,"CGraph",1654),wAn(189,1,{189:1},Pgn),MWn.b=0,MWn.c=0,MWn.e=0,MWn.g=!0,MWn.i=KQn,vX(UZn,"CGroup",189),wAn(1653,1,{},Pt),MWn.ef=function(n,t){return e.Math.max(null!=n.a?Gy(n.a):n.c.i,null!=t.a?Gy(t.a):t.c.i)},MWn.ff=function(n,t){return e.Math.max(null!=n.a?Gy(n.a):n.c.i,null!=t.a?Gy(t.a):t.c.i)},vX(UZn,OYn,1653),wAn(1655,1,{},sOn),MWn.d=!1;var Yat=vX(UZn,xYn,1655);wAn(1656,1,{},Ct),MWn.Kb=function(n){return kM(),hN(),0!=BB(BB(n,46).a,81).d.e},MWn.Fb=function(n){return this===n},vX(UZn,DYn,1656),wAn(823,1,{},Sq),MWn.a=!1,MWn.b=!1,MWn.c=!1,MWn.d=!1,vX(UZn,RYn,823),wAn(1825,1,{},DG),vX(XZn,KYn,1825);var Jat=bq(WZn,PYn);wAn(1826,1,{369:1},lY),MWn.Ke=function(n){Gxn(this,BB(n,466))},vX(XZn,_Yn,1826),wAn(1827,1,MYn,It),MWn.ue=function(n,t){return oQ(BB(n,81),BB(t,81))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(XZn,FYn,1827),wAn(466,1,{466:1},fP),MWn.a=!1,vX(XZn,BYn,466),wAn(1828,1,MYn,Ot),MWn.ue=function(n,t){return njn(BB(n,466),BB(t,466))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(XZn,HYn,1828),wAn(140,1,{140:1},dP,mH),MWn.Fb=function(n){var t;return null!=n&&iut==tsn(n)&&(t=BB(n,140),cV(this.c,t.c)&&cV(this.d,t.d))},MWn.Hb=function(){return fhn(Pun(Gk(Ant,1),HWn,1,5,[this.c,this.d]))},MWn.Ib=function(){return"("+this.c+FWn+this.d+(this.a?"cx":"")+this.b+")"},MWn.a=!0,MWn.c=0,MWn.d=0;var Zat,nut,tut,eut,iut=vX(WZn,"Point",140);wAn(405,22,{3:1,35:1,22:1,405:1},QS);var rut,cut,aut,uut,out,sut,hut,fut,lut,but,wut,dut=Ben(WZn,"Point/Quadrant",405,Unt,t3,S_);wAn(1642,1,{},Vv),MWn.b=null,MWn.c=null,MWn.d=null,MWn.e=null,MWn.f=null,vX(WZn,"RectilinearConvexHull",1642),wAn(574,1,{369:1},Tpn),MWn.Ke=function(n){_9(this,BB(n,140))},MWn.b=0,vX(WZn,"RectilinearConvexHull/MaximalElementsEventHandler",574),wAn(1644,1,MYn,Mt),MWn.ue=function(n,t){return DV(MD(n),MD(t))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type",1644),wAn(1643,1,{369:1},ftn),MWn.Ke=function(n){PNn(this,BB(n,140))},MWn.a=0,MWn.b=null,MWn.c=null,MWn.d=null,MWn.e=null,vX(WZn,"RectilinearConvexHull/RectangleEventHandler",1643),wAn(1645,1,MYn,St),MWn.ue=function(n,t){return u0(BB(n,140),BB(t,140))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/lambda$0$Type",1645),wAn(1646,1,MYn,Tt),MWn.ue=function(n,t){return o0(BB(n,140),BB(t,140))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/lambda$1$Type",1646),wAn(1647,1,MYn,At),MWn.ue=function(n,t){return h0(BB(n,140),BB(t,140))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/lambda$2$Type",1647),wAn(1648,1,MYn,$t),MWn.ue=function(n,t){return s0(BB(n,140),BB(t,140))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/lambda$3$Type",1648),wAn(1649,1,MYn,Lt),MWn.ue=function(n,t){return jMn(BB(n,140),BB(t,140))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(WZn,"RectilinearConvexHull/lambda$4$Type",1649),wAn(1650,1,{},OZ),vX(WZn,"Scanline",1650),wAn(2005,1,{}),vX(VZn,"AbstractGraphPlacer",2005),wAn(325,1,{325:1},Xx),MWn.mf=function(n){return!!this.nf(n)&&(JIn(this.b,BB(mMn(n,(hWn(),Xft)),21),n),!0)},MWn.nf=function(n){var t,e,i;for(t=BB(mMn(n,(hWn(),Xft)),21),i=BB(h6(fut,t),21).Kc();i.Ob();)if(e=BB(i.Pb(),21),!BB(h6(this.b,e),15).dc())return!1;return!0},vX(VZn,"ComponentGroup",325),wAn(765,2005,{},Qv),MWn.of=function(n){var t;for(t=new Wb(this.a);t.a<t.c.c.length;)if(BB(n0(t),325).mf(n))return;WB(this.a,new Xx(n))},MWn.lf=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w;if(this.a.c=x8(Ant,HWn,1,0,5,1),t.a.c=x8(Ant,HWn,1,0,5,1),n.dc())return t.f.a=0,void(t.f.b=0);for(qan(t,a=BB(n.Xb(0),37)),r=n.Kc();r.Ob();)i=BB(r.Pb(),37),this.of(i);for(w=new Gj,c=Gy(MD(mMn(a,(HXn(),mpt)))),s=new Wb(this.a);s.a<s.c.c.length;)h=TXn(u=BB(n0(s),325),c),w9(TX(u.b),w.a,w.b),w.a+=h.a,w.b+=h.b;if(t.f.a=w.a-c,t.f.b=w.b-c,qy(TD(mMn(a,Mdt)))&&GI(mMn(a,Zdt))===GI((Mbn(),QPt))){for(b=n.Kc();b.Ob();)ZRn(f=BB(b.Pb(),37),f.c.a,f.c.b);for(KXn(e=new Nt,n,c),l=n.Kc();l.Ob();)UR(kO((f=BB(l.Pb(),37)).c),e.e);UR(kO(t.f),e.a)}for(o=new Wb(this.a);o.a<o.c.c.length;)d9(t,TX((u=BB(n0(o),325)).b))},vX(VZn,"ComponentGroupGraphPlacer",765),wAn(1293,765,{},hm),MWn.of=function(n){pfn(this,n)},MWn.lf=function(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v;if(this.a.c=x8(Ant,HWn,1,0,5,1),t.a.c=x8(Ant,HWn,1,0,5,1),n.dc())return t.f.a=0,void(t.f.b=0);for(qan(t,a=BB(n.Xb(0),37)),r=n.Kc();r.Ob();)pfn(this,BB(r.Pb(),37));for(v=new Gj,p=new Gj,d=new Gj,w=new Gj,c=Gy(MD(mMn(a,(HXn(),mpt)))),s=new Wb(this.a);s.a<s.c.c.length;){if(u=BB(n0(s),325),dA(BB(mMn(t,(sWn(),bSt)),103))){for(d.a=v.a,g=new ly(MX(kX(u.b).a).a.kc());g.b.Ob();)if(BB(cS(g.b.Pb()),21).Hc((kUn(),sIt))){d.a=p.a;break}}else if(gA(BB(mMn(t,bSt),103)))for(d.b=v.b,g=new ly(MX(kX(u.b).a).a.kc());g.b.Ob();)if(BB(cS(g.b.Pb()),21).Hc((kUn(),CIt))){d.b=p.b;break}if(h=TXn(BB(u,570),c),w9(TX(u.b),d.a,d.b),dA(BB(mMn(t,bSt),103))){for(p.a=d.a+h.a,w.a=e.Math.max(w.a,p.a),g=new ly(MX(kX(u.b).a).a.kc());g.b.Ob();)if(BB(cS(g.b.Pb()),21).Hc((kUn(),SIt))){v.a=d.a+h.a;break}p.b=d.b+h.b,d.b=p.b,w.b=e.Math.max(w.b,d.b)}else if(gA(BB(mMn(t,bSt),103))){for(p.b=d.b+h.b,w.b=e.Math.max(w.b,p.b),g=new ly(MX(kX(u.b).a).a.kc());g.b.Ob();)if(BB(cS(g.b.Pb()),21).Hc((kUn(),oIt))){v.b=d.b+h.b;break}p.a=d.a+h.a,d.a=p.a,w.a=e.Math.max(w.a,d.a)}}if(t.f.a=w.a-c,t.f.b=w.b-c,qy(TD(mMn(a,Mdt)))&&GI(mMn(a,Zdt))===GI((Mbn(),QPt))){for(b=n.Kc();b.Ob();)ZRn(f=BB(b.Pb(),37),f.c.a,f.c.b);for(KXn(i=new Nt,n,c),l=n.Kc();l.Ob();)UR(kO((f=BB(l.Pb(),37)).c),i.e);UR(kO(t.f),i.a)}for(o=new Wb(this.a);o.a<o.c.c.length;)d9(t,TX((u=BB(n0(o),325)).b))},vX(VZn,"ComponentGroupModelOrderGraphPlacer",1293),wAn(423,22,{3:1,35:1,22:1,423:1},YS);var gut,put,vut,mut=Ben(VZn,"ComponentOrderingStrategy",423,Unt,k1,P_);wAn(650,1,{},Nt),vX(VZn,"ComponentsCompactor",650),wAn(1468,12,QQn,v5),MWn.Fc=function(n){return Yjn(this,BB(n,140))},vX(VZn,"ComponentsCompactor/Hullpoints",1468),wAn(1465,1,{841:1},hvn),MWn.a=!1,vX(VZn,"ComponentsCompactor/InternalComponent",1465),wAn(1464,1,pVn,Yv),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new Wb(this.a)},vX(VZn,"ComponentsCompactor/InternalConnectedComponents",1464),wAn(1467,1,{594:1},dOn),MWn.hf=function(){return null},MWn.jf=function(){return this.a},MWn.gf=function(){return upn(this.d)},MWn.kf=function(){return this.b},vX(VZn,"ComponentsCompactor/InternalExternalExtension",1467),wAn(1466,1,{594:1},nm),MWn.jf=function(){return this.a},MWn.gf=function(){return upn(this.d)},MWn.hf=function(){return this.c},MWn.kf=function(){return this.b},vX(VZn,"ComponentsCompactor/InternalUnionExternalExtension",1466),wAn(1470,1,{},Qxn),vX(VZn,"ComponentsCompactor/OuterSegments",1470),wAn(1469,1,{},Jv),vX(VZn,"ComponentsCompactor/Segments",1469),wAn(1264,1,{},bY),vX(VZn,iZn,1264),wAn(1265,1,MYn,xt),MWn.ue=function(n,t){return b0(BB(n,37),BB(t,37))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(VZn,"ComponentsProcessor/lambda$0$Type",1265),wAn(570,325,{325:1,570:1},p5),MWn.mf=function(n){return dsn(this,n)},MWn.nf=function(n){return bNn(this,n)},vX(VZn,"ModelOrderComponentGroup",570),wAn(1291,2005,{},Dt),MWn.lf=function(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j;if(1!=n.gc()){if(n.dc())return t.a.c=x8(Ant,HWn,1,0,5,1),t.f.a=0,void(t.f.b=0);if(GI(mMn(t,(HXn(),Cdt)))===GI((Bfn(),wut))){for(s=n.Kc();s.Ob();){for(p=0,d=new Wb((u=BB(s.Pb(),37)).a);d.a<d.c.c.length;)w=BB(n0(d),10),p+=BB(mMn(w,hpt),19).a;u.p=p}SQ(),n.ad(new Rt)}for(a=BB(n.Xb(0),37),t.a.c=x8(Ant,HWn,1,0,5,1),qan(t,a),b=0,y=0,h=n.Kc();h.Ob();)v=(u=BB(h.Pb(),37)).f,b=e.Math.max(b,v.a),y+=v.a*v.b;for(b=e.Math.max(b,e.Math.sqrt(y)*Gy(MD(mMn(t,Edt)))),k=0,j=0,l=0,i=c=Gy(MD(mMn(t,mpt))),o=n.Kc();o.Ob();)k+(v=(u=BB(o.Pb(),37)).f).a>b&&(k=0,j+=l+c,l=0),ZRn(u,k+(g=u.c).a,j+g.b),kO(g),i=e.Math.max(i,k+v.a),l=e.Math.max(l,v.b),k+=v.a+c;if(t.f.a=i,t.f.b=j+l,qy(TD(mMn(a,Mdt)))){for(KXn(r=new Nt,n,c),f=n.Kc();f.Ob();)UR(kO(BB(f.Pb(),37).c),r.e);UR(kO(t.f),r.a)}d9(t,n)}else(m=BB(n.Xb(0),37))!=t&&(t.a.c=x8(Ant,HWn,1,0,5,1),$Kn(t,m,0,0),qan(t,m),kQ(t.d,m.d),t.f.a=m.f.a,t.f.b=m.f.b)},vX(VZn,"SimpleRowGraphPlacer",1291),wAn(1292,1,MYn,Rt),MWn.ue=function(n,t){return zan(BB(n,37),BB(t,37))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(VZn,"SimpleRowGraphPlacer/1",1292),wAn(1262,1,qYn,Kt),MWn.Lb=function(n){var t;return!!(t=BB(mMn(BB(n,243).b,(HXn(),vgt)),74))&&0!=t.b},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){var t;return!!(t=BB(mMn(BB(n,243).b,(HXn(),vgt)),74))&&0!=t.b},vX(ZZn,"CompoundGraphPostprocessor/1",1262),wAn(1261,1,n1n,em),MWn.pf=function(n,t){mvn(this,BB(n,37),t)},vX(ZZn,"CompoundGraphPreprocessor",1261),wAn(441,1,{441:1},zfn),MWn.c=!1,vX(ZZn,"CompoundGraphPreprocessor/ExternalPort",441),wAn(243,1,{243:1},L_),MWn.Ib=function(){return dx(this.c)+":"+OIn(this.b)},vX(ZZn,"CrossHierarchyEdge",243),wAn(763,1,MYn,_w),MWn.ue=function(n,t){return Vyn(this,BB(n,243),BB(t,243))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(ZZn,"CrossHierarchyEdgeComparator",763),wAn(299,134,{3:1,299:1,94:1,134:1}),MWn.p=0,vX(t1n,"LGraphElement",299),wAn(17,299,{3:1,17:1,299:1,94:1,134:1},wY),MWn.Ib=function(){return OIn(this)};var yut=vX(t1n,"LEdge",17);wAn(37,299,{3:1,20:1,37:1,299:1,94:1,134:1},min),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new Wb(this.b)},MWn.Ib=function(){return 0==this.b.c.length?"G-unlayered"+LMn(this.a):0==this.a.c.length?"G-layered"+LMn(this.b):"G[layerless"+LMn(this.a)+", layers"+LMn(this.b)+"]"};var kut,jut=vX(t1n,"LGraph",37);wAn(657,1,{}),MWn.qf=function(){return this.e.n},MWn.We=function(n){return mMn(this.e,n)},MWn.rf=function(){return this.e.o},MWn.sf=function(){return this.e.p},MWn.Xe=function(n){return Lx(this.e,n)},MWn.tf=function(n){this.e.n.a=n.a,this.e.n.b=n.b},MWn.uf=function(n){this.e.o.a=n.a,this.e.o.b=n.b},MWn.vf=function(n){this.e.p=n},vX(t1n,"LGraphAdapters/AbstractLShapeAdapter",657),wAn(577,1,{839:1},Fw),MWn.wf=function(){var n,t;if(!this.b)for(this.b=sx(this.a.b.c.length),t=new Wb(this.a.b);t.a<t.c.c.length;)n=BB(n0(t),70),WB(this.b,new Bw(n));return this.b},MWn.b=null,vX(t1n,"LGraphAdapters/LEdgeAdapter",577),wAn(656,1,{},HV),MWn.xf=function(){var n,t,e,i,r;if(!this.b)for(this.b=new Np,e=new Wb(this.a.b);e.a<e.c.c.length;)for(r=new Wb(BB(n0(e),29).a);r.a<r.c.c.length;)if(i=BB(n0(r),10),this.c.Mb(i)&&(WB(this.b,new __(this,i,this.e)),this.d)){if(Lx(i,(hWn(),Klt)))for(t=BB(mMn(i,Klt),15).Kc();t.Ob();)n=BB(t.Pb(),10),WB(this.b,new __(this,n,!1));if(Lx(i,Dft))for(t=BB(mMn(i,Dft),15).Kc();t.Ob();)n=BB(t.Pb(),10),WB(this.b,new __(this,n,!1))}return this.b},MWn.qf=function(){throw Hp(new tk(i1n))},MWn.We=function(n){return mMn(this.a,n)},MWn.rf=function(){return this.a.f},MWn.sf=function(){return this.a.p},MWn.Xe=function(n){return Lx(this.a,n)},MWn.tf=function(n){throw Hp(new tk(i1n))},MWn.uf=function(n){this.a.f.a=n.a,this.a.f.b=n.b},MWn.vf=function(n){this.a.p=n},MWn.b=null,MWn.d=!1,MWn.e=!1,vX(t1n,"LGraphAdapters/LGraphAdapter",656),wAn(576,657,{181:1},Bw),vX(t1n,"LGraphAdapters/LLabelAdapter",576),wAn(575,657,{680:1},__),MWn.yf=function(){return this.b},MWn.zf=function(){return SQ(),SQ(),set},MWn.wf=function(){var n,t;if(!this.a)for(this.a=sx(BB(this.e,10).b.c.length),t=new Wb(BB(this.e,10).b);t.a<t.c.c.length;)n=BB(n0(t),70),WB(this.a,new Bw(n));return this.a},MWn.Af=function(){var n;return new HR((n=BB(this.e,10).d).d,n.c,n.a,n.b)},MWn.Bf=function(){return SQ(),SQ(),set},MWn.Cf=function(){var n,t;if(!this.c)for(this.c=sx(BB(this.e,10).j.c.length),t=new Wb(BB(this.e,10).j);t.a<t.c.c.length;)n=BB(n0(t),11),WB(this.c,new gP(n,this.d));return this.c},MWn.Df=function(){return qy(TD(mMn(BB(this.e,10),(hWn(),_ft))))},MWn.Ef=function(n){BB(this.e,10).d.b=n.b,BB(this.e,10).d.d=n.d,BB(this.e,10).d.c=n.c,BB(this.e,10).d.a=n.a},MWn.Ff=function(n){BB(this.e,10).f.b=n.b,BB(this.e,10).f.d=n.d,BB(this.e,10).f.c=n.c,BB(this.e,10).f.a=n.a},MWn.Gf=function(){Ntn(this,(gM(),kut))},MWn.a=null,MWn.b=null,MWn.c=null,MWn.d=!1,vX(t1n,"LGraphAdapters/LNodeAdapter",575),wAn(1722,657,{838:1},gP),MWn.zf=function(){var n,t,e,i;if(this.d&&BB(this.e,11).i.k==(uSn(),Iut))return SQ(),SQ(),set;if(!this.a){for(this.a=new Np,e=new Wb(BB(this.e,11).e);e.a<e.c.c.length;)n=BB(n0(e),17),WB(this.a,new Fw(n));if(this.d&&(i=BB(mMn(BB(this.e,11),(hWn(),Elt)),10)))for(t=new oz(ZL(fbn(i).a.Kc(),new h));dAn(t);)n=BB(U5(t),17),WB(this.a,new Fw(n))}return this.a},MWn.wf=function(){var n,t;if(!this.b)for(this.b=sx(BB(this.e,11).f.c.length),t=new Wb(BB(this.e,11).f);t.a<t.c.c.length;)n=BB(n0(t),70),WB(this.b,new Bw(n));return this.b},MWn.Bf=function(){var n,t,e,i;if(this.d&&BB(this.e,11).i.k==(uSn(),Iut))return SQ(),SQ(),set;if(!this.c){for(this.c=new Np,e=new Wb(BB(this.e,11).g);e.a<e.c.c.length;)n=BB(n0(e),17),WB(this.c,new Fw(n));if(this.d&&(i=BB(mMn(BB(this.e,11),(hWn(),Elt)),10)))for(t=new oz(ZL(lbn(i).a.Kc(),new h));dAn(t);)n=BB(U5(t),17),WB(this.c,new Fw(n))}return this.c},MWn.Hf=function(){return BB(this.e,11).j},MWn.If=function(){return qy(TD(mMn(BB(this.e,11),(hWn(),elt))))},MWn.a=null,MWn.b=null,MWn.c=null,MWn.d=!1,vX(t1n,"LGraphAdapters/LPortAdapter",1722),wAn(1723,1,MYn,_t),MWn.ue=function(n,t){return WDn(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(t1n,"LGraphAdapters/PortComparator",1723),wAn(804,1,DVn,Ft),MWn.Mb=function(n){return BB(n,10),gM(),!0},vX(t1n,"LGraphAdapters/lambda$0$Type",804),wAn(392,299,{3:1,299:1,392:1,94:1,134:1}),vX(t1n,"LShape",392),wAn(70,392,{3:1,299:1,70:1,392:1,94:1,134:1},qj,O$),MWn.Ib=function(){var n;return null==(n=YH(this))?"label":"l_"+n},vX(t1n,"LLabel",70),wAn(207,1,{3:1,4:1,207:1,414:1}),MWn.Fb=function(n){var t;return!!cL(n,207)&&(t=BB(n,207),this.d==t.d&&this.a==t.a&&this.b==t.b&&this.c==t.c)},MWn.Hb=function(){var n,t;return n=VO(this.b)<<16,n|=VO(this.a)&QVn,t=VO(this.c)<<16,n^(t|=VO(this.d)&QVn)},MWn.Jf=function(n){var t,e,i,r,c,a,u,o,s;for(r=0;r<n.length&&Dhn((b1(r,n.length),n.charCodeAt(r)),o1n);)++r;for(t=n.length;t>0&&Dhn((b1(t-1,n.length),n.charCodeAt(t-1)),s1n);)--t;if(r<t){o=kKn(n.substr(r,t-r),",|;");try{for(a=0,u=(c=o).length;a<u;++a){if(2!=(i=kKn(c[a],"=")).length)throw Hp(new _y("Expecting a list of key-value pairs."));e=RMn(i[0]),s=bSn(RMn(i[1])),mK(e,"top")?this.d=s:mK(e,"left")?this.b=s:mK(e,"bottom")?this.a=s:mK(e,"right")&&(this.c=s)}}catch(h){throw cL(h=lun(h),127)?Hp(new _y(h1n+h)):Hp(h)}}},MWn.Ib=function(){return"[top="+this.d+",left="+this.b+",bottom="+this.a+",right="+this.c+"]"},MWn.a=0,MWn.b=0,MWn.c=0,MWn.d=0,vX(f1n,"Spacing",207),wAn(142,207,l1n,lm,lA,HR,A_);var Eut=vX(f1n,"ElkMargin",142);wAn(651,142,l1n,fm),vX(t1n,"LMargin",651),wAn(10,392,{3:1,299:1,10:1,392:1,94:1,134:1},$vn),MWn.Ib=function(){return $pn(this)},MWn.i=!1;var Tut,Mut,Sut,Put,Cut,Iut,Out=vX(t1n,"LNode",10);wAn(267,22,{3:1,35:1,22:1,267:1},JS);var Aut,$ut=Ben(t1n,"LNode/NodeType",267,Unt,u9,I_);wAn(116,207,b1n,bm,WA,O_);var Lut,Nut,xut,Dut,Rut,Kut,_ut=vX(f1n,"ElkPadding",116);wAn(764,116,b1n,wm),vX(t1n,"LPadding",764),wAn(11,392,{3:1,299:1,11:1,392:1,94:1,134:1},CSn),MWn.Ib=function(){var n,t,e;return oO(((n=new Ck).a+="p_",n),pyn(this)),this.i&&oO(uO((n.a+="[",n),this.i),"]"),1==this.e.c.length&&0==this.g.c.length&&BB(xq(this.e,0),17).c!=this&&(t=BB(xq(this.e,0),17).c,oO((n.a+=" << ",n),pyn(t)),oO(uO((n.a+="[",n),t.i),"]")),0==this.e.c.length&&1==this.g.c.length&&BB(xq(this.g,0),17).d!=this&&(e=BB(xq(this.g,0),17).d,oO((n.a+=" >> ",n),pyn(e)),oO(uO((n.a+="[",n),e.i),"]")),n.a},MWn.c=!0,MWn.d=!1;var Fut,But,Hut,qut,Gut=vX(t1n,"LPort",11);wAn(397,1,pVn,Hw),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new qw(new Wb(this.a.e))},vX(t1n,"LPort/1",397),wAn(1290,1,QWn,qw),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return BB(n0(this.a),17).c},MWn.Ob=function(){return y$(this.a)},MWn.Qb=function(){AU(this.a)},vX(t1n,"LPort/1/1",1290),wAn(359,1,pVn,Gw),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new zw(new Wb(this.a.g))},vX(t1n,"LPort/2",359),wAn(762,1,QWn,zw),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return BB(n0(this.a),17).d},MWn.Ob=function(){return y$(this.a)},MWn.Qb=function(){AU(this.a)},vX(t1n,"LPort/2/1",762),wAn(1283,1,pVn,hP),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new m6(this)},vX(t1n,"LPort/CombineIter",1283),wAn(201,1,QWn,m6),MWn.Nb=function(n){fU(this,n)},MWn.Qb=function(){uE()},MWn.Ob=function(){return zN(this)},MWn.Pb=function(){return y$(this.a)?n0(this.a):n0(this.b)},vX(t1n,"LPort/CombineIter/1",201),wAn(1285,1,qYn,Bt),MWn.Lb=function(n){return Az(n)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),0!=BB(n,11).e.c.length},vX(t1n,"LPort/lambda$0$Type",1285),wAn(1284,1,qYn,Ht),MWn.Lb=function(n){return $z(n)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),0!=BB(n,11).g.c.length},vX(t1n,"LPort/lambda$1$Type",1284),wAn(1286,1,qYn,qt),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),sIt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),sIt)},vX(t1n,"LPort/lambda$2$Type",1286),wAn(1287,1,qYn,Gt),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),oIt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),oIt)},vX(t1n,"LPort/lambda$3$Type",1287),wAn(1288,1,qYn,zt),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),SIt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),SIt)},vX(t1n,"LPort/lambda$4$Type",1288),wAn(1289,1,qYn,Ut),MWn.Lb=function(n){return gcn(),BB(n,11).j==(kUn(),CIt)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return gcn(),BB(n,11).j==(kUn(),CIt)},vX(t1n,"LPort/lambda$5$Type",1289),wAn(29,299,{3:1,20:1,299:1,29:1,94:1,134:1},HX),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new Wb(this.a)},MWn.Ib=function(){return"L_"+E7(this.b.b,this,0)+LMn(this.a)},vX(t1n,"Layer",29),wAn(1342,1,{},tm),vX(d1n,g1n,1342),wAn(1346,1,{},Xt),MWn.Kb=function(n){return PTn(BB(n,82))},vX(d1n,"ElkGraphImporter/0methodref$connectableShapeToNode$Type",1346),wAn(1349,1,{},Wt),MWn.Kb=function(n){return PTn(BB(n,82))},vX(d1n,"ElkGraphImporter/1methodref$connectableShapeToNode$Type",1349),wAn(1343,1,lVn,Uw),MWn.td=function(n){POn(this.a,BB(n,118))},vX(d1n,p1n,1343),wAn(1344,1,lVn,Xw),MWn.td=function(n){POn(this.a,BB(n,118))},vX(d1n,v1n,1344),wAn(1345,1,{},Vt),MWn.Kb=function(n){return new Rq(null,new w1(pV(BB(n,79)),16))},vX(d1n,m1n,1345),wAn(1347,1,DVn,Ww),MWn.Mb=function(n){return _A(this.a,BB(n,33))},vX(d1n,y1n,1347),wAn(1348,1,{},Qt),MWn.Kb=function(n){return new Rq(null,new w1(vV(BB(n,79)),16))},vX(d1n,"ElkGraphImporter/lambda$5$Type",1348),wAn(1350,1,DVn,Vw),MWn.Mb=function(n){return FA(this.a,BB(n,33))},vX(d1n,"ElkGraphImporter/lambda$7$Type",1350),wAn(1351,1,DVn,Yt),MWn.Mb=function(n){return AQ(BB(n,79))},vX(d1n,"ElkGraphImporter/lambda$8$Type",1351),wAn(1278,1,{},Qh),vX(d1n,"ElkGraphLayoutTransferrer",1278),wAn(1279,1,DVn,Qw),MWn.Mb=function(n){return JR(this.a,BB(n,17))},vX(d1n,"ElkGraphLayoutTransferrer/lambda$0$Type",1279),wAn(1280,1,lVn,Yw),MWn.td=function(n){mM(),WB(this.a,BB(n,17))},vX(d1n,"ElkGraphLayoutTransferrer/lambda$1$Type",1280),wAn(1281,1,DVn,Jw),MWn.Mb=function(n){return UD(this.a,BB(n,17))},vX(d1n,"ElkGraphLayoutTransferrer/lambda$2$Type",1281),wAn(1282,1,lVn,Zw),MWn.td=function(n){mM(),WB(this.a,BB(n,17))},vX(d1n,"ElkGraphLayoutTransferrer/lambda$3$Type",1282),wAn(1485,1,n1n,Jt),MWn.pf=function(n,t){Vrn(BB(n,37),t)},vX(j1n,"CommentNodeMarginCalculator",1485),wAn(1486,1,{},Zt),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"CommentNodeMarginCalculator/lambda$0$Type",1486),wAn(1487,1,lVn,ne),MWn.td=function(n){tHn(BB(n,10))},vX(j1n,"CommentNodeMarginCalculator/lambda$1$Type",1487),wAn(1488,1,n1n,te),MWn.pf=function(n,t){aDn(BB(n,37),t)},vX(j1n,"CommentPostprocessor",1488),wAn(1489,1,n1n,ee),MWn.pf=function(n,t){uUn(BB(n,37),t)},vX(j1n,"CommentPreprocessor",1489),wAn(1490,1,n1n,ie),MWn.pf=function(n,t){jLn(BB(n,37),t)},vX(j1n,"ConstraintsPostprocessor",1490),wAn(1491,1,n1n,re),MWn.pf=function(n,t){can(BB(n,37),t)},vX(j1n,"EdgeAndLayerConstraintEdgeReverser",1491),wAn(1492,1,n1n,ce),MWn.pf=function(n,t){Gwn(BB(n,37),t)},vX(j1n,"EndLabelPostprocessor",1492),wAn(1493,1,{},ae),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"EndLabelPostprocessor/lambda$0$Type",1493),wAn(1494,1,DVn,ue),MWn.Mb=function(n){return MY(BB(n,10))},vX(j1n,"EndLabelPostprocessor/lambda$1$Type",1494),wAn(1495,1,lVn,oe),MWn.td=function(n){ejn(BB(n,10))},vX(j1n,"EndLabelPostprocessor/lambda$2$Type",1495),wAn(1496,1,n1n,se),MWn.pf=function(n,t){ZPn(BB(n,37),t)},vX(j1n,"EndLabelPreprocessor",1496),wAn(1497,1,{},he),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"EndLabelPreprocessor/lambda$0$Type",1497),wAn(1498,1,lVn,D_),MWn.td=function(n){KM(this.a,this.b,this.c,BB(n,10))},MWn.a=0,MWn.b=0,MWn.c=!1,vX(j1n,"EndLabelPreprocessor/lambda$1$Type",1498),wAn(1499,1,DVn,fe),MWn.Mb=function(n){return GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),XPt))},vX(j1n,"EndLabelPreprocessor/lambda$2$Type",1499),wAn(1500,1,lVn,nd),MWn.td=function(n){DH(this.a,BB(n,70))},vX(j1n,"EndLabelPreprocessor/lambda$3$Type",1500),wAn(1501,1,DVn,le),MWn.Mb=function(n){return GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),UPt))},vX(j1n,"EndLabelPreprocessor/lambda$4$Type",1501),wAn(1502,1,lVn,td),MWn.td=function(n){DH(this.a,BB(n,70))},vX(j1n,"EndLabelPreprocessor/lambda$5$Type",1502),wAn(1551,1,n1n,Vh),MWn.pf=function(n,t){Cln(BB(n,37),t)},vX(j1n,"EndLabelSorter",1551),wAn(1552,1,MYn,be),MWn.ue=function(n,t){return Hgn(BB(n,456),BB(t,456))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"EndLabelSorter/1",1552),wAn(456,1,{456:1},TQ),vX(j1n,"EndLabelSorter/LabelGroup",456),wAn(1553,1,{},we),MWn.Kb=function(n){return EM(),new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"EndLabelSorter/lambda$0$Type",1553),wAn(1554,1,DVn,de),MWn.Mb=function(n){return EM(),BB(n,10).k==(uSn(),Cut)},vX(j1n,"EndLabelSorter/lambda$1$Type",1554),wAn(1555,1,lVn,ge),MWn.td=function(n){oSn(BB(n,10))},vX(j1n,"EndLabelSorter/lambda$2$Type",1555),wAn(1556,1,DVn,pe),MWn.Mb=function(n){return EM(),GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),UPt))},vX(j1n,"EndLabelSorter/lambda$3$Type",1556),wAn(1557,1,DVn,ve),MWn.Mb=function(n){return EM(),GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),XPt))},vX(j1n,"EndLabelSorter/lambda$4$Type",1557),wAn(1503,1,n1n,me),MWn.pf=function(n,t){IHn(this,BB(n,37))},MWn.b=0,MWn.c=0,vX(j1n,"FinalSplineBendpointsCalculator",1503),wAn(1504,1,{},ye),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"FinalSplineBendpointsCalculator/lambda$0$Type",1504),wAn(1505,1,{},ke),MWn.Kb=function(n){return new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(j1n,"FinalSplineBendpointsCalculator/lambda$1$Type",1505),wAn(1506,1,DVn,je),MWn.Mb=function(n){return!b5(BB(n,17))},vX(j1n,"FinalSplineBendpointsCalculator/lambda$2$Type",1506),wAn(1507,1,DVn,Ee),MWn.Mb=function(n){return Lx(BB(n,17),(hWn(),Nlt))},vX(j1n,"FinalSplineBendpointsCalculator/lambda$3$Type",1507),wAn(1508,1,lVn,ed),MWn.td=function(n){zKn(this.a,BB(n,128))},vX(j1n,"FinalSplineBendpointsCalculator/lambda$4$Type",1508),wAn(1509,1,lVn,Te),MWn.td=function(n){JPn(BB(n,17).a)},vX(j1n,"FinalSplineBendpointsCalculator/lambda$5$Type",1509),wAn(792,1,n1n,id),MWn.pf=function(n,t){Vqn(this,BB(n,37),t)},vX(j1n,"GraphTransformer",792),wAn(511,22,{3:1,35:1,22:1,511:1},ZS);var zut,Uut,Xut,Wut=Ben(j1n,"GraphTransformer/Mode",511,Unt,uJ,tB);wAn(1510,1,n1n,Me),MWn.pf=function(n,t){exn(BB(n,37),t)},vX(j1n,"HierarchicalNodeResizingProcessor",1510),wAn(1511,1,n1n,Se),MWn.pf=function(n,t){lrn(BB(n,37),t)},vX(j1n,"HierarchicalPortConstraintProcessor",1511),wAn(1512,1,MYn,Pe),MWn.ue=function(n,t){return Ipn(BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"HierarchicalPortConstraintProcessor/NodeComparator",1512),wAn(1513,1,n1n,Ce),MWn.pf=function(n,t){jBn(BB(n,37),t)},vX(j1n,"HierarchicalPortDummySizeProcessor",1513),wAn(1514,1,n1n,Ie),MWn.pf=function(n,t){JDn(this,BB(n,37),t)},MWn.a=0,vX(j1n,"HierarchicalPortOrthogonalEdgeRouter",1514),wAn(1515,1,MYn,Oe),MWn.ue=function(n,t){return _N(BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"HierarchicalPortOrthogonalEdgeRouter/1",1515),wAn(1516,1,MYn,Ae),MWn.ue=function(n,t){return P9(BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"HierarchicalPortOrthogonalEdgeRouter/2",1516),wAn(1517,1,n1n,$e),MWn.pf=function(n,t){EMn(BB(n,37),t)},vX(j1n,"HierarchicalPortPositionProcessor",1517),wAn(1518,1,n1n,Yh),MWn.pf=function(n,t){rXn(this,BB(n,37))},MWn.a=0,MWn.c=0,vX(j1n,"HighDegreeNodeLayeringProcessor",1518),wAn(571,1,{571:1},Le),MWn.b=-1,MWn.d=-1,vX(j1n,"HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation",571),wAn(1519,1,{},Ne),MWn.Kb=function(n){return q_(),fbn(BB(n,10))},MWn.Fb=function(n){return this===n},vX(j1n,"HighDegreeNodeLayeringProcessor/lambda$0$Type",1519),wAn(1520,1,{},xe),MWn.Kb=function(n){return q_(),lbn(BB(n,10))},MWn.Fb=function(n){return this===n},vX(j1n,"HighDegreeNodeLayeringProcessor/lambda$1$Type",1520),wAn(1526,1,n1n,De),MWn.pf=function(n,t){dFn(this,BB(n,37),t)},vX(j1n,"HyperedgeDummyMerger",1526),wAn(793,1,{},R_),MWn.a=!1,MWn.b=!1,MWn.c=!1,vX(j1n,"HyperedgeDummyMerger/MergeState",793),wAn(1527,1,{},Re),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"HyperedgeDummyMerger/lambda$0$Type",1527),wAn(1528,1,{},Ke),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,10).j,16))},vX(j1n,"HyperedgeDummyMerger/lambda$1$Type",1528),wAn(1529,1,lVn,_e),MWn.td=function(n){BB(n,11).p=-1},vX(j1n,"HyperedgeDummyMerger/lambda$2$Type",1529),wAn(1530,1,n1n,Fe),MWn.pf=function(n,t){bFn(BB(n,37),t)},vX(j1n,"HypernodesProcessor",1530),wAn(1531,1,n1n,Be),MWn.pf=function(n,t){wFn(BB(n,37),t)},vX(j1n,"InLayerConstraintProcessor",1531),wAn(1532,1,n1n,He),MWn.pf=function(n,t){Lcn(BB(n,37),t)},vX(j1n,"InnermostNodeMarginCalculator",1532),wAn(1533,1,n1n,qe),MWn.pf=function(n,t){Vzn(this,BB(n,37))},MWn.a=KQn,MWn.b=KQn,MWn.c=RQn,MWn.d=RQn;var Vut,Qut,Yut,Jut,Zut,not,tot,eot,iot,rot,cot,aot,uot,oot,sot,hot,fot,lot,bot,wot,dot,got,pot,vot,mot,yot,kot,jot,Eot,Tot,Mot,Sot,Pot,Cot,Iot,Oot,Aot,$ot,Lot,Not,xot,Dot,Rot,Kot,_ot,Fot,Bot,Hot,qot,Got,zot,Uot,Xot,Wot,Vot,Qot,Yot,Jot=vX(j1n,"InteractiveExternalPortPositioner",1533);wAn(1534,1,{},Ge),MWn.Kb=function(n){return BB(n,17).d.i},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$0$Type",1534),wAn(1535,1,{},rd),MWn.Kb=function(n){return qN(this.a,MD(n))},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$1$Type",1535),wAn(1536,1,{},ze),MWn.Kb=function(n){return BB(n,17).c.i},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$2$Type",1536),wAn(1537,1,{},cd),MWn.Kb=function(n){return GN(this.a,MD(n))},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$3$Type",1537),wAn(1538,1,{},ad),MWn.Kb=function(n){return WR(this.a,MD(n))},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$4$Type",1538),wAn(1539,1,{},ud),MWn.Kb=function(n){return VR(this.a,MD(n))},MWn.Fb=function(n){return this===n},vX(j1n,"InteractiveExternalPortPositioner/lambda$5$Type",1539),wAn(77,22,{3:1,35:1,22:1,77:1,234:1},nP),MWn.Kf=function(){switch(this.g){case 15:return new dc;case 22:return new gc;case 47:return new mc;case 28:case 35:return new ei;case 32:return new Jt;case 42:return new te;case 1:return new ee;case 41:return new ie;case 56:return new id((Srn(),qut));case 0:return new id((Srn(),Hut));case 2:return new re;case 54:return new ce;case 33:return new se;case 51:return new me;case 55:return new Me;case 13:return new Se;case 38:return new Ce;case 44:return new Ie;case 40:return new $e;case 9:return new Yh;case 49:return new ox;case 37:return new De;case 43:return new Fe;case 27:return new Be;case 30:return new He;case 3:return new qe;case 18:return new Xe;case 29:return new We;case 5:return new Jh;case 50:return new Ue;case 34:return new Zh;case 36:return new ii;case 52:return new Vh;case 11:return new ci;case 7:return new tf;case 39:return new ai;case 45:return new ui;case 16:return new oi;case 10:return new si;case 48:return new fi;case 21:return new li;case 23:return new Ny((oin(),Amt));case 8:return new wi;case 12:return new gi;case 4:return new pi;case 19:return new af;case 17:return new Pi;case 53:return new Ci;case 6:return new Bi;case 25:return new am;case 46:return new Ni;case 31:return new xR;case 14:return new Vi;case 26:return new Sc;case 20:return new nr;case 24:return new Ny((oin(),$mt));default:throw Hp(new _y(M1n+(null!=this.f?this.f:""+this.g)))}};var Zot,nst,tst,est,ist,rst,cst,ast,ust=Ben(j1n,S1n,77,Unt,ENn,nB);wAn(1540,1,n1n,Xe),MWn.pf=function(n,t){Jzn(BB(n,37),t)},vX(j1n,"InvertedPortProcessor",1540),wAn(1541,1,n1n,We),MWn.pf=function(n,t){LKn(BB(n,37),t)},vX(j1n,"LabelAndNodeSizeProcessor",1541),wAn(1542,1,DVn,Ve),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Cut)},vX(j1n,"LabelAndNodeSizeProcessor/lambda$0$Type",1542),wAn(1543,1,DVn,Qe),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Mut)},vX(j1n,"LabelAndNodeSizeProcessor/lambda$1$Type",1543),wAn(1544,1,lVn,K_),MWn.td=function(n){_M(this.b,this.a,this.c,BB(n,10))},MWn.a=!1,MWn.c=!1,vX(j1n,"LabelAndNodeSizeProcessor/lambda$2$Type",1544),wAn(1545,1,n1n,Jh),MWn.pf=function(n,t){fzn(BB(n,37),t)},vX(j1n,"LabelDummyInserter",1545),wAn(1546,1,qYn,Ye),MWn.Lb=function(n){return GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),zPt))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return GI(mMn(BB(n,70),(HXn(),Ydt)))===GI((Rtn(),zPt))},vX(j1n,"LabelDummyInserter/1",1546),wAn(1547,1,n1n,Ue),MWn.pf=function(n,t){Pqn(BB(n,37),t)},vX(j1n,"LabelDummyRemover",1547),wAn(1548,1,DVn,Je),MWn.Mb=function(n){return qy(TD(mMn(BB(n,70),(HXn(),Qdt))))},vX(j1n,"LabelDummyRemover/lambda$0$Type",1548),wAn(1359,1,n1n,Zh),MWn.pf=function(n,t){TGn(this,BB(n,37),t)},MWn.a=null,vX(j1n,"LabelDummySwitcher",1359),wAn(286,1,{286:1},cKn),MWn.c=0,MWn.d=null,MWn.f=0,vX(j1n,"LabelDummySwitcher/LabelDummyInfo",286),wAn(1360,1,{},Ze),MWn.Kb=function(n){return Irn(),new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"LabelDummySwitcher/lambda$0$Type",1360),wAn(1361,1,DVn,ni),MWn.Mb=function(n){return Irn(),BB(n,10).k==(uSn(),Sut)},vX(j1n,"LabelDummySwitcher/lambda$1$Type",1361),wAn(1362,1,{},hd),MWn.Kb=function(n){return XD(this.a,BB(n,10))},vX(j1n,"LabelDummySwitcher/lambda$2$Type",1362),wAn(1363,1,lVn,fd),MWn.td=function(n){YX(this.a,BB(n,286))},vX(j1n,"LabelDummySwitcher/lambda$3$Type",1363),wAn(1364,1,MYn,ti),MWn.ue=function(n,t){return Lz(BB(n,286),BB(t,286))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"LabelDummySwitcher/lambda$4$Type",1364),wAn(791,1,n1n,ei),MWn.pf=function(n,t){Y6(BB(n,37),t)},vX(j1n,"LabelManagementProcessor",791),wAn(1549,1,n1n,ii),MWn.pf=function(n,t){Nxn(BB(n,37),t)},vX(j1n,"LabelSideSelector",1549),wAn(1550,1,DVn,ri),MWn.Mb=function(n){return qy(TD(mMn(BB(n,70),(HXn(),Qdt))))},vX(j1n,"LabelSideSelector/lambda$0$Type",1550),wAn(1558,1,n1n,ci),MWn.pf=function(n,t){EBn(BB(n,37),t)},vX(j1n,"LayerConstraintPostprocessor",1558),wAn(1559,1,n1n,tf),MWn.pf=function(n,t){r$n(BB(n,37),t)},vX(j1n,"LayerConstraintPreprocessor",1559),wAn(360,22,{3:1,35:1,22:1,360:1},tP);var ost,sst,hst,fst,lst,bst,wst,dst,gst,pst=Ben(j1n,"LayerConstraintPreprocessor/HiddenNodeConnections",360,Unt,e3,z_);wAn(1560,1,n1n,ai),MWn.pf=function(n,t){Eqn(BB(n,37),t)},vX(j1n,"LayerSizeAndGraphHeightCalculator",1560),wAn(1561,1,n1n,ui),MWn.pf=function(n,t){ALn(BB(n,37),t)},vX(j1n,"LongEdgeJoiner",1561),wAn(1562,1,n1n,oi),MWn.pf=function(n,t){WHn(BB(n,37),t)},vX(j1n,"LongEdgeSplitter",1562),wAn(1563,1,n1n,si),MWn.pf=function(n,t){PGn(this,BB(n,37),t)},MWn.d=0,MWn.e=0,MWn.i=0,MWn.j=0,MWn.k=0,MWn.n=0,vX(j1n,"NodePromotion",1563),wAn(1564,1,{},hi),MWn.Kb=function(n){return BB(n,46),hN(),!0},MWn.Fb=function(n){return this===n},vX(j1n,"NodePromotion/lambda$0$Type",1564),wAn(1565,1,{},od),MWn.Kb=function(n){return aV(this.a,BB(n,46))},MWn.Fb=function(n){return this===n},MWn.a=0,vX(j1n,"NodePromotion/lambda$1$Type",1565),wAn(1566,1,{},sd),MWn.Kb=function(n){return uV(this.a,BB(n,46))},MWn.Fb=function(n){return this===n},MWn.a=0,vX(j1n,"NodePromotion/lambda$2$Type",1566),wAn(1567,1,n1n,fi),MWn.pf=function(n,t){XUn(BB(n,37),t)},vX(j1n,"NorthSouthPortPostprocessor",1567),wAn(1568,1,n1n,li),MWn.pf=function(n,t){MUn(BB(n,37),t)},vX(j1n,"NorthSouthPortPreprocessor",1568),wAn(1569,1,MYn,bi),MWn.ue=function(n,t){return Zan(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"NorthSouthPortPreprocessor/lambda$0$Type",1569),wAn(1570,1,n1n,wi),MWn.pf=function(n,t){$_n(BB(n,37),t)},vX(j1n,"PartitionMidprocessor",1570),wAn(1571,1,DVn,di),MWn.Mb=function(n){return Lx(BB(n,10),(HXn(),Wgt))},vX(j1n,"PartitionMidprocessor/lambda$0$Type",1571),wAn(1572,1,lVn,ld),MWn.td=function(n){$Q(this.a,BB(n,10))},vX(j1n,"PartitionMidprocessor/lambda$1$Type",1572),wAn(1573,1,n1n,gi),MWn.pf=function(n,t){wNn(BB(n,37),t)},vX(j1n,"PartitionPostprocessor",1573),wAn(1574,1,n1n,pi),MWn.pf=function(n,t){NOn(BB(n,37),t)},vX(j1n,"PartitionPreprocessor",1574),wAn(1575,1,DVn,vi),MWn.Mb=function(n){return Lx(BB(n,10),(HXn(),Wgt))},vX(j1n,"PartitionPreprocessor/lambda$0$Type",1575),wAn(1576,1,{},mi),MWn.Kb=function(n){return new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(j1n,"PartitionPreprocessor/lambda$1$Type",1576),wAn(1577,1,DVn,yi),MWn.Mb=function(n){return Lgn(BB(n,17))},vX(j1n,"PartitionPreprocessor/lambda$2$Type",1577),wAn(1578,1,lVn,ki),MWn.td=function(n){Run(BB(n,17))},vX(j1n,"PartitionPreprocessor/lambda$3$Type",1578),wAn(1579,1,n1n,af),MWn.pf=function(n,t){u_n(BB(n,37),t)},vX(j1n,"PortListSorter",1579),wAn(1580,1,{},ji),MWn.Kb=function(n){return zsn(),BB(n,11).e},vX(j1n,"PortListSorter/lambda$0$Type",1580),wAn(1581,1,{},Ei),MWn.Kb=function(n){return zsn(),BB(n,11).g},vX(j1n,"PortListSorter/lambda$1$Type",1581),wAn(1582,1,MYn,Ti),MWn.ue=function(n,t){return T4(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"PortListSorter/lambda$2$Type",1582),wAn(1583,1,MYn,Mi),MWn.ue=function(n,t){return Oyn(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"PortListSorter/lambda$3$Type",1583),wAn(1584,1,MYn,Si),MWn.ue=function(n,t){return nFn(BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"PortListSorter/lambda$4$Type",1584),wAn(1585,1,n1n,Pi),MWn.pf=function(n,t){WAn(BB(n,37),t)},vX(j1n,"PortSideProcessor",1585),wAn(1586,1,n1n,Ci),MWn.pf=function(n,t){IRn(BB(n,37),t)},vX(j1n,"ReversedEdgeRestorer",1586),wAn(1591,1,n1n,am),MWn.pf=function(n,t){Ymn(this,BB(n,37),t)},vX(j1n,"SelfLoopPortRestorer",1591),wAn(1592,1,{},Ii),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"SelfLoopPortRestorer/lambda$0$Type",1592),wAn(1593,1,DVn,Oi),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Cut)},vX(j1n,"SelfLoopPortRestorer/lambda$1$Type",1593),wAn(1594,1,DVn,Ai),MWn.Mb=function(n){return Lx(BB(n,10),(hWn(),Olt))},vX(j1n,"SelfLoopPortRestorer/lambda$2$Type",1594),wAn(1595,1,{},$i),MWn.Kb=function(n){return BB(mMn(BB(n,10),(hWn(),Olt)),403)},vX(j1n,"SelfLoopPortRestorer/lambda$3$Type",1595),wAn(1596,1,lVn,bd),MWn.td=function(n){SSn(this.a,BB(n,403))},vX(j1n,"SelfLoopPortRestorer/lambda$4$Type",1596),wAn(794,1,lVn,Li),MWn.td=function(n){nPn(BB(n,101))},vX(j1n,"SelfLoopPortRestorer/lambda$5$Type",794),wAn(1597,1,n1n,Ni),MWn.pf=function(n,t){Lpn(BB(n,37),t)},vX(j1n,"SelfLoopPostProcessor",1597),wAn(1598,1,{},xi),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"SelfLoopPostProcessor/lambda$0$Type",1598),wAn(1599,1,DVn,Di),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Cut)},vX(j1n,"SelfLoopPostProcessor/lambda$1$Type",1599),wAn(1600,1,DVn,Ri),MWn.Mb=function(n){return Lx(BB(n,10),(hWn(),Olt))},vX(j1n,"SelfLoopPostProcessor/lambda$2$Type",1600),wAn(1601,1,lVn,Ki),MWn.td=function(n){Ljn(BB(n,10))},vX(j1n,"SelfLoopPostProcessor/lambda$3$Type",1601),wAn(1602,1,{},_i),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,101).f,1))},vX(j1n,"SelfLoopPostProcessor/lambda$4$Type",1602),wAn(1603,1,lVn,wd),MWn.td=function(n){a3(this.a,BB(n,409))},vX(j1n,"SelfLoopPostProcessor/lambda$5$Type",1603),wAn(1604,1,DVn,Fi),MWn.Mb=function(n){return!!BB(n,101).i},vX(j1n,"SelfLoopPostProcessor/lambda$6$Type",1604),wAn(1605,1,lVn,dd),MWn.td=function(n){Ty(this.a,BB(n,101))},vX(j1n,"SelfLoopPostProcessor/lambda$7$Type",1605),wAn(1587,1,n1n,Bi),MWn.pf=function(n,t){Z$n(BB(n,37),t)},vX(j1n,"SelfLoopPreProcessor",1587),wAn(1588,1,{},Hi),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,101).f,1))},vX(j1n,"SelfLoopPreProcessor/lambda$0$Type",1588),wAn(1589,1,{},qi),MWn.Kb=function(n){return BB(n,409).a},vX(j1n,"SelfLoopPreProcessor/lambda$1$Type",1589),wAn(1590,1,lVn,Gi),MWn.td=function(n){q$(BB(n,17))},vX(j1n,"SelfLoopPreProcessor/lambda$2$Type",1590),wAn(1606,1,n1n,xR),MWn.pf=function(n,t){sSn(this,BB(n,37),t)},vX(j1n,"SelfLoopRouter",1606),wAn(1607,1,{},zi),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,29).a,16))},vX(j1n,"SelfLoopRouter/lambda$0$Type",1607),wAn(1608,1,DVn,Ui),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Cut)},vX(j1n,"SelfLoopRouter/lambda$1$Type",1608),wAn(1609,1,DVn,Xi),MWn.Mb=function(n){return Lx(BB(n,10),(hWn(),Olt))},vX(j1n,"SelfLoopRouter/lambda$2$Type",1609),wAn(1610,1,{},Wi),MWn.Kb=function(n){return BB(mMn(BB(n,10),(hWn(),Olt)),403)},vX(j1n,"SelfLoopRouter/lambda$3$Type",1610),wAn(1611,1,lVn,eP),MWn.td=function(n){QV(this.a,this.b,BB(n,403))},vX(j1n,"SelfLoopRouter/lambda$4$Type",1611),wAn(1612,1,n1n,Vi),MWn.pf=function(n,t){fxn(BB(n,37),t)},vX(j1n,"SemiInteractiveCrossMinProcessor",1612),wAn(1613,1,DVn,Qi),MWn.Mb=function(n){return BB(n,10).k==(uSn(),Cut)},vX(j1n,"SemiInteractiveCrossMinProcessor/lambda$0$Type",1613),wAn(1614,1,DVn,Yi),MWn.Mb=function(n){return Gq(BB(n,10))._b((HXn(),spt))},vX(j1n,"SemiInteractiveCrossMinProcessor/lambda$1$Type",1614),wAn(1615,1,MYn,Ji),MWn.ue=function(n,t){return drn(BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(j1n,"SemiInteractiveCrossMinProcessor/lambda$2$Type",1615),wAn(1616,1,{},Zi),MWn.Ce=function(n,t){return XQ(BB(n,10),BB(t,10))},vX(j1n,"SemiInteractiveCrossMinProcessor/lambda$3$Type",1616),wAn(1618,1,n1n,nr),MWn.pf=function(n,t){MBn(BB(n,37),t)},vX(j1n,"SortByInputModelProcessor",1618),wAn(1619,1,DVn,tr),MWn.Mb=function(n){return 0!=BB(n,11).g.c.length},vX(j1n,"SortByInputModelProcessor/lambda$0$Type",1619),wAn(1620,1,lVn,gd),MWn.td=function(n){fPn(this.a,BB(n,11))},vX(j1n,"SortByInputModelProcessor/lambda$1$Type",1620),wAn(1693,803,{},grn),MWn.Me=function(n){var t,e,i,r;switch(this.c=n,this.a.g){case 2:t=new Np,JT(AV(new Rq(null,new w1(this.c.a.b,16)),new dr),new uP(this,t)),pCn(this,new rr),Otn(t,new cr),t.c=x8(Ant,HWn,1,0,5,1),JT(AV(new Rq(null,new w1(this.c.a.b,16)),new ar),new vd(t)),pCn(this,new ur),Otn(t,new or),t.c=x8(Ant,HWn,1,0,5,1),e=j$(icn(LV(new Rq(null,new w1(this.c.a.b,16)),new md(this))),new sr),JT(new Rq(null,new w1(this.c.a.a,16)),new rP(e,t)),pCn(this,new fr),Otn(t,new er),t.c=x8(Ant,HWn,1,0,5,1);break;case 3:i=new Np,pCn(this,new ir),r=j$(icn(LV(new Rq(null,new w1(this.c.a.b,16)),new pd(this))),new hr),JT(AV(new Rq(null,new w1(this.c.a.b,16)),new lr),new aP(r,i)),pCn(this,new br),Otn(i,new wr),i.c=x8(Ant,HWn,1,0,5,1);break;default:throw Hp(new kv)}},MWn.b=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation",1693),wAn(1694,1,qYn,ir),MWn.Lb=function(n){return cL(BB(n,57).g,145)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return cL(BB(n,57).g,145)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$0$Type",1694),wAn(1695,1,{},pd),MWn.Fe=function(n){return GCn(this.a,BB(n,57))},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$1$Type",1695),wAn(1703,1,RVn,iP),MWn.Vd=function(){Fkn(this.a,this.b,-1)},MWn.b=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$10$Type",1703),wAn(1705,1,qYn,rr),MWn.Lb=function(n){return cL(BB(n,57).g,145)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return cL(BB(n,57).g,145)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$11$Type",1705),wAn(1706,1,lVn,cr),MWn.td=function(n){BB(n,365).Vd()},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$12$Type",1706),wAn(1707,1,DVn,ar),MWn.Mb=function(n){return cL(BB(n,57).g,10)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$13$Type",1707),wAn(1709,1,lVn,vd),MWn.td=function(n){Ebn(this.a,BB(n,57))},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$14$Type",1709),wAn(1708,1,RVn,lP),MWn.Vd=function(){Fkn(this.b,this.a,-1)},MWn.a=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$15$Type",1708),wAn(1710,1,qYn,ur),MWn.Lb=function(n){return cL(BB(n,57).g,10)},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return cL(BB(n,57).g,10)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$16$Type",1710),wAn(1711,1,lVn,or),MWn.td=function(n){BB(n,365).Vd()},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$17$Type",1711),wAn(1712,1,{},md),MWn.Fe=function(n){return zCn(this.a,BB(n,57))},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$18$Type",1712),wAn(1713,1,{},sr),MWn.De=function(){return 0},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$19$Type",1713),wAn(1696,1,{},hr),MWn.De=function(){return 0},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$2$Type",1696),wAn(1715,1,lVn,rP),MWn.td=function(n){HG(this.a,this.b,BB(n,307))},MWn.a=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$20$Type",1715),wAn(1714,1,RVn,cP),MWn.Vd=function(){VAn(this.a,this.b,-1)},MWn.b=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$21$Type",1714),wAn(1716,1,qYn,fr),MWn.Lb=function(n){return BB(n,57),!0},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return BB(n,57),!0},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$22$Type",1716),wAn(1717,1,lVn,er),MWn.td=function(n){BB(n,365).Vd()},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$23$Type",1717),wAn(1697,1,DVn,lr),MWn.Mb=function(n){return cL(BB(n,57).g,10)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$3$Type",1697),wAn(1699,1,lVn,aP),MWn.td=function(n){qG(this.a,this.b,BB(n,57))},MWn.a=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$4$Type",1699),wAn(1698,1,RVn,bP),MWn.Vd=function(){Fkn(this.b,this.a,-1)},MWn.a=0,vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$5$Type",1698),wAn(1700,1,qYn,br),MWn.Lb=function(n){return BB(n,57),!0},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return BB(n,57),!0},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$6$Type",1700),wAn(1701,1,lVn,wr),MWn.td=function(n){BB(n,365).Vd()},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$7$Type",1701),wAn(1702,1,DVn,dr),MWn.Mb=function(n){return cL(BB(n,57).g,145)},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$8$Type",1702),wAn(1704,1,lVn,uP),MWn.td=function(n){Ttn(this.a,this.b,BB(n,57))},vX(A1n,"EdgeAwareScanlineConstraintCalculation/lambda$9$Type",1704),wAn(1521,1,n1n,ox),MWn.pf=function(n,t){cqn(this,BB(n,37),t)},vX(A1n,"HorizontalGraphCompactor",1521),wAn(1522,1,{},yd),MWn.Oe=function(n,t){var e,i;return Z7(n,t)?0:(e=f2(n),i=f2(t),e&&e.k==(uSn(),Mut)||i&&i.k==(uSn(),Mut)?0:UN(BB(mMn(this.a.a,(hWn(),Alt)),304),e?e.k:(uSn(),Put),i?i.k:(uSn(),Put)))},MWn.Pe=function(n,t){var e,i;return Z7(n,t)?1:(e=f2(n),i=f2(t),XN(BB(mMn(this.a.a,(hWn(),Alt)),304),e?e.k:(uSn(),Put),i?i.k:(uSn(),Put)))},vX(A1n,"HorizontalGraphCompactor/1",1522),wAn(1523,1,{},gr),MWn.Ne=function(n,t){return MM(),0==n.a.i},vX(A1n,"HorizontalGraphCompactor/lambda$0$Type",1523),wAn(1524,1,{},kd),MWn.Ne=function(n,t){return _Q(this.a,n,t)},vX(A1n,"HorizontalGraphCompactor/lambda$1$Type",1524),wAn(1664,1,{},I7),vX(A1n,"LGraphToCGraphTransformer",1664),wAn(1672,1,DVn,pr),MWn.Mb=function(n){return null!=n},vX(A1n,"LGraphToCGraphTransformer/0methodref$nonNull$Type",1672),wAn(1665,1,{},vr),MWn.Kb=function(n){return G_(),Bbn(mMn(BB(BB(n,57).g,10),(hWn(),dlt)))},vX(A1n,"LGraphToCGraphTransformer/lambda$0$Type",1665),wAn(1666,1,{},mr),MWn.Kb=function(n){return G_(),mfn(BB(BB(n,57).g,145))},vX(A1n,"LGraphToCGraphTransformer/lambda$1$Type",1666),wAn(1675,1,DVn,yr),MWn.Mb=function(n){return G_(),cL(BB(n,57).g,10)},vX(A1n,"LGraphToCGraphTransformer/lambda$10$Type",1675),wAn(1676,1,lVn,kr),MWn.td=function(n){KQ(BB(n,57))},vX(A1n,"LGraphToCGraphTransformer/lambda$11$Type",1676),wAn(1677,1,DVn,jr),MWn.Mb=function(n){return G_(),cL(BB(n,57).g,145)},vX(A1n,"LGraphToCGraphTransformer/lambda$12$Type",1677),wAn(1681,1,lVn,Er),MWn.td=function(n){vfn(BB(n,57))},vX(A1n,"LGraphToCGraphTransformer/lambda$13$Type",1681),wAn(1678,1,lVn,jd),MWn.td=function(n){uA(this.a,BB(n,8))},MWn.a=0,vX(A1n,"LGraphToCGraphTransformer/lambda$14$Type",1678),wAn(1679,1,lVn,Ed),MWn.td=function(n){sA(this.a,BB(n,110))},MWn.a=0,vX(A1n,"LGraphToCGraphTransformer/lambda$15$Type",1679),wAn(1680,1,lVn,Td),MWn.td=function(n){oA(this.a,BB(n,8))},MWn.a=0,vX(A1n,"LGraphToCGraphTransformer/lambda$16$Type",1680),wAn(1682,1,{},Tr),MWn.Kb=function(n){return G_(),new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(A1n,"LGraphToCGraphTransformer/lambda$17$Type",1682),wAn(1683,1,DVn,Mr),MWn.Mb=function(n){return G_(),b5(BB(n,17))},vX(A1n,"LGraphToCGraphTransformer/lambda$18$Type",1683),wAn(1684,1,lVn,Md),MWn.td=function(n){Snn(this.a,BB(n,17))},vX(A1n,"LGraphToCGraphTransformer/lambda$19$Type",1684),wAn(1668,1,lVn,Sd),MWn.td=function(n){l0(this.a,BB(n,145))},vX(A1n,"LGraphToCGraphTransformer/lambda$2$Type",1668),wAn(1685,1,{},Sr),MWn.Kb=function(n){return G_(),new Rq(null,new w1(BB(n,29).a,16))},vX(A1n,"LGraphToCGraphTransformer/lambda$20$Type",1685),wAn(1686,1,{},Pr),MWn.Kb=function(n){return G_(),new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(A1n,"LGraphToCGraphTransformer/lambda$21$Type",1686),wAn(1687,1,{},Cr),MWn.Kb=function(n){return G_(),BB(mMn(BB(n,17),(hWn(),Nlt)),15)},vX(A1n,"LGraphToCGraphTransformer/lambda$22$Type",1687),wAn(1688,1,DVn,Ir),MWn.Mb=function(n){return tx(BB(n,15))},vX(A1n,"LGraphToCGraphTransformer/lambda$23$Type",1688),wAn(1689,1,lVn,Pd),MWn.td=function(n){PCn(this.a,BB(n,15))},vX(A1n,"LGraphToCGraphTransformer/lambda$24$Type",1689),wAn(1667,1,lVn,oP),MWn.td=function(n){H3(this.a,this.b,BB(n,145))},vX(A1n,"LGraphToCGraphTransformer/lambda$3$Type",1667),wAn(1669,1,{},Or),MWn.Kb=function(n){return G_(),new Rq(null,new w1(BB(n,29).a,16))},vX(A1n,"LGraphToCGraphTransformer/lambda$4$Type",1669),wAn(1670,1,{},Ar),MWn.Kb=function(n){return G_(),new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(A1n,"LGraphToCGraphTransformer/lambda$5$Type",1670),wAn(1671,1,{},$r),MWn.Kb=function(n){return G_(),BB(mMn(BB(n,17),(hWn(),Nlt)),15)},vX(A1n,"LGraphToCGraphTransformer/lambda$6$Type",1671),wAn(1673,1,lVn,Cd),MWn.td=function(n){KIn(this.a,BB(n,15))},vX(A1n,"LGraphToCGraphTransformer/lambda$8$Type",1673),wAn(1674,1,lVn,sP),MWn.td=function(n){x$(this.a,this.b,BB(n,145))},vX(A1n,"LGraphToCGraphTransformer/lambda$9$Type",1674),wAn(1663,1,{},Lr),MWn.Le=function(n){var t,e,i,r,c;for(this.a=n,this.d=new Fv,this.c=x8(qit,HWn,121,this.a.a.a.c.length,0,1),this.b=0,e=new Wb(this.a.a.a);e.a<e.c.c.length;)(t=BB(n0(e),307)).d=this.b,c=AN(oM(new qv,t),this.d),this.c[this.b]=c,++this.b;for(JGn(this),AUn(this),ZLn(this),WKn(B_(this.d),new Xm),r=new Wb(this.a.a.b);r.a<r.c.c.length;)(i=BB(n0(r),57)).d.c=this.c[i.a.d].e+i.b.a},MWn.b=0,vX(A1n,"NetworkSimplexCompaction",1663),wAn(145,1,{35:1,145:1},PBn),MWn.wd=function(n){return Lnn(this,BB(n,145))},MWn.Ib=function(){return mfn(this)},vX(A1n,"VerticalSegment",145),wAn(827,1,{},zEn),MWn.c=0,MWn.e=0,MWn.i=0,vX($1n,"BetweenLayerEdgeTwoNodeCrossingsCounter",827),wAn(663,1,{663:1},kcn),MWn.Ib=function(){return"AdjacencyList [node="+this.d+", adjacencies= "+this.a+"]"},MWn.b=0,MWn.c=0,MWn.f=0,vX($1n,"BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList",663),wAn(287,1,{35:1,287:1},Gx),MWn.wd=function(n){return aq(this,BB(n,287))},MWn.Ib=function(){return"Adjacency [position="+this.c+", cardinality="+this.a+", currentCardinality="+this.b+"]"},MWn.a=0,MWn.b=0,MWn.c=0,vX($1n,"BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency",287),wAn(1929,1,{},ZSn),MWn.b=0,MWn.e=!1,vX($1n,"CrossingMatrixFiller",1929);var vst,mst,yst,kst,jst=bq(L1n,"IInitializable");wAn(1804,1,N1n,vP),MWn.Nf=function(n,t,e,i,r,c){},MWn.Pf=function(n,t,e){},MWn.Lf=function(){return this.c!=(oin(),Amt)},MWn.Mf=function(){this.e=x8(ANt,hQn,25,this.d,15,1)},MWn.Of=function(n,t){t[n][0].c.p=n},MWn.Qf=function(n,t,e,i){++this.d},MWn.Rf=function(){return!0},MWn.Sf=function(n,t,e,i){return Yhn(this,n,t,e),Z4(this,t)},MWn.Tf=function(n,t){var e;return Yhn(this,n,e=hj(t,n.length),t),bon(this,e)},MWn.d=0,vX($1n,"GreedySwitchHeuristic",1804),wAn(1930,1,{},lG),MWn.b=0,MWn.d=0,vX($1n,"NorthSouthEdgeNeighbouringNodeCrossingsCounter",1930),wAn(1917,1,{},uRn),MWn.a=!1,vX($1n,"SwitchDecider",1917),wAn(101,1,{101:1},pPn),MWn.a=null,MWn.c=null,MWn.i=null,vX(x1n,"SelfHyperLoop",101),wAn(1916,1,{},epn),MWn.c=0,MWn.e=0,vX(x1n,"SelfHyperLoopLabels",1916),wAn(411,22,{3:1,35:1,22:1,411:1},mP);var Est,Tst,Mst,Sst,Pst,Cst,Ist=Ben(x1n,"SelfHyperLoopLabels/Alignment",411,Unt,r3,U_);wAn(409,1,{409:1},j6),vX(x1n,"SelfLoopEdge",409),wAn(403,1,{403:1},Ogn),MWn.a=!1,vX(x1n,"SelfLoopHolder",403),wAn(1724,1,DVn,qr),MWn.Mb=function(n){return b5(BB(n,17))},vX(x1n,"SelfLoopHolder/lambda$0$Type",1724),wAn(113,1,{113:1},ipn),MWn.a=!1,MWn.c=!1,vX(x1n,"SelfLoopPort",113),wAn(1792,1,DVn,Gr),MWn.Mb=function(n){return b5(BB(n,17))},vX(x1n,"SelfLoopPort/lambda$0$Type",1792),wAn(363,22,{3:1,35:1,22:1,363:1},yP);var Ost,Ast,$st,Lst,Nst,xst,Dst,Rst,Kst=Ben(x1n,"SelfLoopType",363,Unt,x5,Y_);wAn(1732,1,{},uf),vX(D1n,"PortRestorer",1732),wAn(361,22,{3:1,35:1,22:1,361:1},kP);var _st,Fst,Bst,Hst,qst,Gst,zst,Ust,Xst,Wst=Ben(D1n,"PortRestorer/PortSideArea",361,Unt,P1,J_);wAn(1733,1,{},Wr),MWn.Kb=function(n){return _Mn(),BB(n,15).Oc()},vX(D1n,"PortRestorer/lambda$0$Type",1733),wAn(1734,1,lVn,Vr),MWn.td=function(n){_Mn(),BB(n,113).c=!1},vX(D1n,"PortRestorer/lambda$1$Type",1734),wAn(1743,1,DVn,Qr),MWn.Mb=function(n){return _Mn(),BB(n,11).j==(kUn(),CIt)},vX(D1n,"PortRestorer/lambda$10$Type",1743),wAn(1744,1,{},Yr),MWn.Kb=function(n){return _Mn(),BB(n,113).d},vX(D1n,"PortRestorer/lambda$11$Type",1744),wAn(1745,1,lVn,Id),MWn.td=function(n){Nj(this.a,BB(n,11))},vX(D1n,"PortRestorer/lambda$12$Type",1745),wAn(1735,1,lVn,Od),MWn.td=function(n){Ax(this.a,BB(n,101))},vX(D1n,"PortRestorer/lambda$2$Type",1735),wAn(1736,1,MYn,Jr),MWn.ue=function(n,t){return oen(BB(n,113),BB(t,113))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(D1n,"PortRestorer/lambda$3$Type",1736),wAn(1737,1,DVn,Zr),MWn.Mb=function(n){return _Mn(),BB(n,113).c},vX(D1n,"PortRestorer/lambda$4$Type",1737),wAn(1738,1,DVn,xr),MWn.Mb=function(n){return Acn(BB(n,11))},vX(D1n,"PortRestorer/lambda$5$Type",1738),wAn(1739,1,DVn,Nr),MWn.Mb=function(n){return _Mn(),BB(n,11).j==(kUn(),sIt)},vX(D1n,"PortRestorer/lambda$6$Type",1739),wAn(1740,1,DVn,Dr),MWn.Mb=function(n){return _Mn(),BB(n,11).j==(kUn(),oIt)},vX(D1n,"PortRestorer/lambda$7$Type",1740),wAn(1741,1,DVn,Rr),MWn.Mb=function(n){return c3(BB(n,11))},vX(D1n,"PortRestorer/lambda$8$Type",1741),wAn(1742,1,DVn,Kr),MWn.Mb=function(n){return _Mn(),BB(n,11).j==(kUn(),SIt)},vX(D1n,"PortRestorer/lambda$9$Type",1742),wAn(270,22,{3:1,35:1,22:1,270:1},WV);var Vst,Qst,Yst,Jst,Zst,nht,tht,eht,iht=Ben(D1n,"PortSideAssigner/Target",270,Unt,Ftn,X_);wAn(1725,1,{},_r),MWn.Kb=function(n){return AV(new Rq(null,new w1(BB(n,101).j,16)),new Xr)},vX(D1n,"PortSideAssigner/lambda$1$Type",1725),wAn(1726,1,{},Fr),MWn.Kb=function(n){return BB(n,113).d},vX(D1n,"PortSideAssigner/lambda$2$Type",1726),wAn(1727,1,lVn,Br),MWn.td=function(n){qCn(BB(n,11),(kUn(),sIt))},vX(D1n,"PortSideAssigner/lambda$3$Type",1727),wAn(1728,1,{},Hr),MWn.Kb=function(n){return BB(n,113).d},vX(D1n,"PortSideAssigner/lambda$4$Type",1728),wAn(1729,1,lVn,Ad),MWn.td=function(n){tv(this.a,BB(n,11))},vX(D1n,"PortSideAssigner/lambda$5$Type",1729),wAn(1730,1,MYn,zr),MWn.ue=function(n,t){return MW(BB(n,101),BB(t,101))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(D1n,"PortSideAssigner/lambda$6$Type",1730),wAn(1731,1,MYn,Ur),MWn.ue=function(n,t){return oH(BB(n,113),BB(t,113))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(D1n,"PortSideAssigner/lambda$7$Type",1731),wAn(805,1,DVn,Xr),MWn.Mb=function(n){return BB(n,113).c},vX(D1n,"PortSideAssigner/lambda$8$Type",805),wAn(2009,1,{}),vX(R1n,"AbstractSelfLoopRouter",2009),wAn(1750,1,MYn,nc),MWn.ue=function(n,t){return IK(BB(n,101),BB(t,101))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(R1n,bJn,1750),wAn(1751,1,MYn,tc),MWn.ue=function(n,t){return CK(BB(n,101),BB(t,101))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(R1n,wJn,1751),wAn(1793,2009,{},ec),MWn.Uf=function(n,t,e){return e},vX(R1n,"OrthogonalSelfLoopRouter",1793),wAn(1795,1,lVn,wP),MWn.td=function(n){pgn(this.b,this.a,BB(n,8))},vX(R1n,"OrthogonalSelfLoopRouter/lambda$0$Type",1795),wAn(1794,1793,{},ic),MWn.Uf=function(n,t,e){var i,r;return Kx(e,0,UR(B$((i=n.c.d).n),i.a)),DH(e,UR(B$((r=n.d.d).n),r.a)),E_n(e)},vX(R1n,"PolylineSelfLoopRouter",1794),wAn(1746,1,{},nf),MWn.a=null,vX(R1n,"RoutingDirector",1746),wAn(1747,1,MYn,rc),MWn.ue=function(n,t){return wH(BB(n,113),BB(t,113))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(R1n,"RoutingDirector/lambda$0$Type",1747),wAn(1748,1,{},cc),MWn.Kb=function(n){return SM(),BB(n,101).j},vX(R1n,"RoutingDirector/lambda$1$Type",1748),wAn(1749,1,lVn,ac),MWn.td=function(n){SM(),BB(n,15).ad(Qst)},vX(R1n,"RoutingDirector/lambda$2$Type",1749),wAn(1752,1,{},uc),vX(R1n,"RoutingSlotAssigner",1752),wAn(1753,1,DVn,$d),MWn.Mb=function(n){return CC(this.a,BB(n,101))},vX(R1n,"RoutingSlotAssigner/lambda$0$Type",1753),wAn(1754,1,MYn,Ld),MWn.ue=function(n,t){return Uq(this.a,BB(n,101),BB(t,101))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(R1n,"RoutingSlotAssigner/lambda$1$Type",1754),wAn(1796,1793,{},oc),MWn.Uf=function(n,t,e){var i,r,c,a;return i=Gy(MD(gpn(n.b.g.b,(HXn(),jpt)))),nLn(n,t,e,a=new Ux(Pun(Gk(PMt,1),sVn,8,0,[(c=n.c.d,UR(new wA(c.n),c.a))])),i),DH(a,UR(new wA((r=n.d.d).n),r.a)),Fvn(new oBn(a))},vX(R1n,"SplineSelfLoopRouter",1796),wAn(578,1,MYn,Grn,kH),MWn.ue=function(n,t){return fXn(this,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(K1n,"ModelOrderNodeComparator",578),wAn(1755,1,DVn,sc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(K1n,"ModelOrderNodeComparator/lambda$0$Type",1755),wAn(1756,1,{},hc),MWn.Kb=function(n){return BB(xq(BB(n,11).e,0),17).c},vX(K1n,"ModelOrderNodeComparator/lambda$1$Type",1756),wAn(1757,1,DVn,fc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(K1n,"ModelOrderNodeComparator/lambda$2$Type",1757),wAn(1758,1,{},lc),MWn.Kb=function(n){return BB(xq(BB(n,11).e,0),17).c},vX(K1n,"ModelOrderNodeComparator/lambda$3$Type",1758),wAn(1759,1,DVn,bc),MWn.Mb=function(n){return 0!=BB(n,11).e.c.length},vX(K1n,"ModelOrderNodeComparator/lambda$4$Type",1759),wAn(806,1,MYn,O7,pP),MWn.ue=function(n,t){return Nz(this,n,t)},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(K1n,"ModelOrderPortComparator",806),wAn(801,1,{},wc),MWn.Vf=function(n,t){var i,r,c,a;for(c=PSn(t),i=new Np,a=t.f/c,r=1;r<c;++r)WB(i,iln(dG(fan(e.Math.round(r*a)))));return i},MWn.Wf=function(){return!1},vX(_1n,"ARDCutIndexHeuristic",801),wAn(1479,1,n1n,dc),MWn.pf=function(n,t){oKn(BB(n,37),t)},vX(_1n,"BreakingPointInserter",1479),wAn(305,1,{305:1},v3),MWn.Ib=function(){var n;return(n=new Ck).a+="BPInfo[",n.a+="\n\tstart=",uO(n,this.i),n.a+="\n\tend=",uO(n,this.a),n.a+="\n\tnodeStartEdge=",uO(n,this.e),n.a+="\n\tstartEndEdge=",uO(n,this.j),n.a+="\n\toriginalEdge=",uO(n,this.f),n.a+="\n\tstartInLayerDummy=",uO(n,this.k),n.a+="\n\tstartInLayerEdge=",uO(n,this.n),n.a+="\n\tendInLayerDummy=",uO(n,this.b),n.a+="\n\tendInLayerEdge=",uO(n,this.c),n.a},vX(_1n,"BreakingPointInserter/BPInfo",305),wAn(652,1,{652:1},Hd),MWn.a=!1,MWn.b=0,MWn.c=0,vX(_1n,"BreakingPointInserter/Cut",652),wAn(1480,1,n1n,gc),MWn.pf=function(n,t){mLn(BB(n,37),t)},vX(_1n,"BreakingPointProcessor",1480),wAn(1481,1,DVn,pc),MWn.Mb=function(n){return Jnn(BB(n,10))},vX(_1n,"BreakingPointProcessor/0methodref$isEnd$Type",1481),wAn(1482,1,DVn,vc),MWn.Mb=function(n){return Znn(BB(n,10))},vX(_1n,"BreakingPointProcessor/1methodref$isStart$Type",1482),wAn(1483,1,n1n,mc),MWn.pf=function(n,t){rNn(this,BB(n,37),t)},vX(_1n,"BreakingPointRemover",1483),wAn(1484,1,lVn,yc),MWn.td=function(n){BB(n,128).k=!0},vX(_1n,"BreakingPointRemover/lambda$0$Type",1484),wAn(797,1,{},MAn),MWn.b=0,MWn.e=0,MWn.f=0,MWn.j=0,vX(_1n,"GraphStats",797),wAn(798,1,{},kc),MWn.Ce=function(n,t){return e.Math.max(Gy(MD(n)),Gy(MD(t)))},vX(_1n,"GraphStats/0methodref$max$Type",798),wAn(799,1,{},jc),MWn.Ce=function(n,t){return e.Math.max(Gy(MD(n)),Gy(MD(t)))},vX(_1n,"GraphStats/2methodref$max$Type",799),wAn(1660,1,{},Ec),MWn.Ce=function(n,t){return vB(MD(n),MD(t))},vX(_1n,"GraphStats/lambda$1$Type",1660),wAn(1661,1,{},Nd),MWn.Kb=function(n){return wpn(this.a,BB(n,29))},vX(_1n,"GraphStats/lambda$2$Type",1661),wAn(1662,1,{},xd),MWn.Kb=function(n){return VLn(this.a,BB(n,29))},vX(_1n,"GraphStats/lambda$6$Type",1662),wAn(800,1,{},Tc),MWn.Vf=function(n,t){return BB(mMn(n,(HXn(),_pt)),15)||(SQ(),SQ(),set)},MWn.Wf=function(){return!1},vX(_1n,"ICutIndexCalculator/ManualCutIndexCalculator",800),wAn(802,1,{},Mc),MWn.Vf=function(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k;for(null==t.n&&Dmn(t),k=t.n,null==t.d&&Dmn(t),s=t.d,(y=x8(xNt,qQn,25,k.length,15,1))[0]=k[0],v=k[0],h=1;h<k.length;h++)y[h]=y[h-1]+k[h],v+=k[h];for(c=PSn(t)-1,u=BB(mMn(n,(HXn(),Fpt)),19).a,r=KQn,i=new Np,b=e.Math.max(0,c-u);b<=e.Math.min(t.f-1,c+u);b++){if(g=v/(b+1),p=0,f=1,a=new Np,m=KQn,l=0,o=0,d=s[0],0==b)m=v,null==t.g&&(t.g=Xrn(t,new jc)),o=Gy(t.g);else{for(;f<t.f;)y[f-1]-p>=g&&(WB(a,iln(f)),m=e.Math.max(m,y[f-1]-l),o+=d,p+=y[f-1]-p,l=y[f-1],d=s[f]),d=e.Math.max(d,s[f]),++f;o+=d}(w=e.Math.min(1/m,1/t.b/o))>r&&(r=w,i=a)}return i},MWn.Wf=function(){return!1},vX(_1n,"MSDCutIndexHeuristic",802),wAn(1617,1,n1n,Sc),MWn.pf=function(n,t){bBn(BB(n,37),t)},vX(_1n,"SingleEdgeGraphWrapper",1617),wAn(227,22,{3:1,35:1,22:1,227:1},jP);var rht,cht,aht,uht=Ben(F1n,"CenterEdgeLabelPlacementStrategy",227,Unt,Z8,W_);wAn(422,22,{3:1,35:1,22:1,422:1},EP);var oht,sht,hht,fht,lht=Ben(F1n,"ConstraintCalculationStrategy",422,Unt,GY,V_);wAn(314,22,{3:1,35:1,22:1,314:1,246:1,234:1},TP),MWn.Kf=function(){return sIn(this)},MWn.Xf=function(){return sIn(this)};var bht,wht,dht,ght,pht=Ben(F1n,"CrossingMinimizationStrategy",314,Unt,T1,Q_);wAn(337,22,{3:1,35:1,22:1,337:1},MP);var vht,mht,yht,kht,jht,Eht,Tht=Ben(F1n,"CuttingStrategy",337,Unt,M1,Z_);wAn(335,22,{3:1,35:1,22:1,335:1,246:1,234:1},SP),MWn.Kf=function(){return RAn(this)},MWn.Xf=function(){return RAn(this)};var Mht,Sht,Pht,Cht=Ben(F1n,"CycleBreakingStrategy",335,Unt,L5,nF);wAn(419,22,{3:1,35:1,22:1,419:1},PP);var Iht,Oht,Aht,$ht,Lht=Ben(F1n,"DirectionCongruency",419,Unt,qY,tF);wAn(450,22,{3:1,35:1,22:1,450:1},CP);var Nht,xht,Dht,Rht,Kht,_ht,Fht,Bht=Ben(F1n,"EdgeConstraint",450,Unt,S1,eF);wAn(276,22,{3:1,35:1,22:1,276:1},IP);var Hht,qht,Ght,zht=Ben(F1n,"EdgeLabelSideSelection",276,Unt,i9,iF);wAn(479,22,{3:1,35:1,22:1,479:1},OP);var Uht,Xht,Wht,Vht,Qht,Yht,Jht,Zht=Ben(F1n,"EdgeStraighteningStrategy",479,Unt,HY,rF);wAn(274,22,{3:1,35:1,22:1,274:1},AP);var nft,tft,eft,ift,rft,cft,aft,uft=Ben(F1n,"FixedAlignment",274,Unt,t9,cF);wAn(275,22,{3:1,35:1,22:1,275:1},$P);var oft,sft,hft,fft,lft,bft,wft,dft,gft,pft,vft,mft=Ben(F1n,"GraphCompactionStrategy",275,Unt,n9,aF);wAn(256,22,{3:1,35:1,22:1,256:1},LP);var yft,kft,jft,Eft,Tft=Ben(F1n,"GraphProperties",256,Unt,bcn,uF);wAn(292,22,{3:1,35:1,22:1,292:1},NP);var Mft,Sft,Pft,Cft,Ift=Ben(F1n,"GreedySwitchType",292,Unt,I1,oF);wAn(303,22,{3:1,35:1,22:1,303:1},xP);var Oft,Aft,$ft,Lft=Ben(F1n,"InLayerConstraint",303,Unt,C1,sF);wAn(420,22,{3:1,35:1,22:1,420:1},DP);var Nft,xft,Dft,Rft,Kft,_ft,Fft,Bft,Hft,qft,Gft,zft,Uft,Xft,Wft,Vft,Qft,Yft,Jft,Zft,nlt,tlt,elt,ilt,rlt,clt,alt,ult,olt,slt,hlt,flt,llt,blt,wlt,dlt,glt,plt,vlt,mlt,ylt,klt,jlt,Elt,Tlt,Mlt,Slt,Plt,Clt,Ilt,Olt,Alt,$lt,Llt,Nlt,xlt,Dlt,Rlt,Klt,_lt,Flt,Blt,Hlt,qlt,Glt=Ben(F1n,"InteractiveReferencePoint",420,Unt,zY,hF);wAn(163,22,{3:1,35:1,22:1,163:1},BP);var zlt,Ult,Xlt,Wlt,Vlt,Qlt,Ylt,Jlt,Zlt,nbt,tbt,ebt,ibt,rbt,cbt,abt,ubt,obt,sbt,hbt,fbt,lbt,bbt,wbt,dbt,gbt,pbt,vbt,mbt,ybt,kbt,jbt,Ebt,Tbt,Mbt,Sbt,Pbt,Cbt,Ibt,Obt,Abt,$bt,Lbt,Nbt,xbt,Dbt,Rbt,Kbt,_bt,Fbt,Bbt,Hbt,qbt,Gbt,zbt,Ubt,Xbt,Wbt,Vbt,Qbt,Ybt,Jbt,Zbt,nwt,twt,ewt,iwt,rwt,cwt,awt,uwt,owt,swt,hwt,fwt,lwt,bwt,wwt,dwt,gwt,pwt,vwt,mwt,ywt,kwt,jwt,Ewt,Twt,Mwt,Swt,Pwt,Cwt,Iwt,Owt,Awt,$wt,Lwt,Nwt,xwt,Dwt,Rwt,Kwt,_wt,Fwt,Bwt,Hwt,qwt,Gwt,zwt,Uwt,Xwt,Wwt,Vwt,Qwt,Ywt,Jwt,Zwt,ndt,tdt,edt,idt,rdt,cdt,adt,udt,odt,sdt,hdt,fdt,ldt,bdt,wdt,ddt,gdt,pdt,vdt,mdt,ydt,kdt,jdt,Edt,Tdt,Mdt,Sdt,Pdt,Cdt,Idt,Odt,Adt,$dt,Ldt,Ndt,xdt,Ddt,Rdt,Kdt,_dt,Fdt,Bdt,Hdt,qdt,Gdt,zdt,Udt,Xdt,Wdt,Vdt,Qdt,Ydt,Jdt,Zdt,ngt,tgt,egt,igt,rgt,cgt,agt,ugt,ogt,sgt,hgt,fgt,lgt,bgt,wgt,dgt,ggt,pgt,vgt,mgt,ygt,kgt,jgt,Egt,Tgt,Mgt,Sgt,Pgt,Cgt,Igt,Ogt,Agt,$gt,Lgt,Ngt,xgt,Dgt,Rgt,Kgt,_gt,Fgt,Bgt,Hgt,qgt,Ggt,zgt,Ugt,Xgt,Wgt,Vgt,Qgt,Ygt,Jgt,Zgt,npt,tpt,ept,ipt,rpt,cpt,apt,upt,opt,spt,hpt,fpt,lpt,bpt,wpt,dpt,gpt,ppt,vpt,mpt,ypt,kpt,jpt,Ept,Tpt,Mpt,Spt,Ppt,Cpt,Ipt,Opt,Apt,$pt,Lpt,Npt,xpt,Dpt,Rpt,Kpt,_pt,Fpt,Bpt,Hpt,qpt,Gpt,zpt,Upt,Xpt,Wpt,Vpt,Qpt,Ypt,Jpt,Zpt,nvt,tvt,evt,ivt=Ben(F1n,"LayerConstraint",163,Unt,D5,fF);wAn(848,1,QYn,hf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,U1n),""),"Direction Congruency"),"Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."),Pbt),(PPn(),gMt)),Lht),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,X1n),""),"Feedback Edges"),"Whether feedback edges should be highlighted by routing around the nodes."),(hN(),!1)),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,W1n),""),"Interactive Reference Point"),"Determines which point of a node is considered by interactive layout phases."),Qbt),gMt),Glt),nbn(hMt)))),a2(n,W1n,e0n,Jbt),a2(n,W1n,l0n,Ybt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,V1n),""),"Merge Edges"),"Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Q1n),""),"Merge Hierarchy-Crossing Edges"),"If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."),!0),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Pj(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Y1n),""),"Allow Non-Flow Ports To Switch Sides"),"Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."),!1),wMt),ktt),nbn(fMt)),Pun(Gk(Qtt,1),sVn,2,6,["org.eclipse.elk.layered.northOrSouthPort"])))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,J1n),""),"Port Sorting Strategy"),"Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."),xwt),gMt),zvt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Z1n),""),"Thoroughness"),"How much effort should be spent to produce a nice layout."),iln(7)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,n0n),""),"Add Unnecessary Bendpoints"),"Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,t0n),""),"Generate Position and Layer IDs"),"If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,e0n),"cycleBreaking"),"Cycle Breaking Strategy"),"Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."),Mbt),gMt),Cht),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,i0n),f2n),"Node Layering Strategy"),"Strategy for node layering."),bwt),gMt),ovt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,r0n),f2n),"Layer Constraint"),"Determines a constraint on the placement of the node regarding the layering."),iwt),gMt),ivt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,c0n),f2n),"Layer Choice Constraint"),"Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,a0n),f2n),"Layer ID"),"Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,u0n),l2n),"Upper Bound On Width [MinWidth Layerer]"),"Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."),iln(4)),vMt),Att),nbn(hMt)))),a2(n,u0n,i0n,awt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,o0n),l2n),"Upper Layer Estimation Scaling Factor [MinWidth Layerer]"),"Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."),iln(2)),vMt),Att),nbn(hMt)))),a2(n,o0n,i0n,owt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,s0n),b2n),"Node Promotion Strategy"),"Reduces number of dummy nodes after layering phase (if possible)."),fwt),gMt),Dvt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,h0n),b2n),"Max Node Promotion Iterations"),"Limits the number of iterations for node promotion."),iln(0)),vMt),Att),nbn(hMt)))),a2(n,h0n,s0n,null),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,f0n),"layering.coffmanGraham"),"Layer Bound"),"The maximum number of nodes allowed per layer."),iln(DWn)),vMt),Att),nbn(hMt)))),a2(n,f0n,i0n,nwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,l0n),w2n),"Crossing Minimization Strategy"),"Strategy for crossing minimization."),Ebt),gMt),pht),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,b0n),w2n),"Force Node Model Order"),"The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,w0n),w2n),"Hierarchical Sweepiness"),"How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."),.1),dMt),Ptt),nbn(hMt)))),a2(n,w0n,d2n,pbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,d0n),w2n),"Semi-Interactive Crossing Minimization"),"Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."),!1),wMt),ktt),nbn(hMt)))),a2(n,d0n,l0n,kbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,g0n),w2n),"Position Choice Constraint"),"Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,p0n),w2n),"Position ID"),"Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,v0n),g2n),"Greedy Switch Activation Threshold"),"By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."),iln(40)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,m0n),g2n),"Greedy Switch Crossing Minimization"),"Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."),wbt),gMt),Ift),nbn(hMt)))),a2(n,m0n,l0n,dbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,y0n),"crossingMinimization.greedySwitchHierarchical"),"Greedy Switch Crossing Minimization (hierarchical)"),"Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."),hbt),gMt),Ift),nbn(hMt)))),a2(n,y0n,l0n,fbt),a2(n,y0n,d2n,lbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,k0n),p2n),"Node Placement Strategy"),"Strategy for node placement."),Lwt),gMt),Avt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,j0n),p2n),"Favor Straight Edges Over Balancing"),"Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."),wMt),ktt),nbn(hMt)))),a2(n,j0n,k0n,Ewt),a2(n,j0n,k0n,Twt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,E0n),v2n),"BK Edge Straightening"),"Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."),pwt),gMt),Zht),nbn(hMt)))),a2(n,E0n,k0n,vwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,T0n),v2n),"BK Fixed Alignment"),"Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."),ywt),gMt),uft),nbn(hMt)))),a2(n,T0n,k0n,kwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,M0n),"nodePlacement.linearSegments"),"Linear Segments Deflection Dampening"),"Dampens the movement of nodes to keep the diagram from getting too large."),.3),dMt),Ptt),nbn(hMt)))),a2(n,M0n,k0n,Swt),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,S0n),"nodePlacement.networkSimplex"),"Node Flexibility"),"Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."),gMt),kvt),nbn(sMt)))),a2(n,S0n,k0n,Awt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,P0n),"nodePlacement.networkSimplex.nodeFlexibility"),"Node Flexibility Default"),"Default value of the 'nodeFlexibility' option for the children of a hierarchical node."),Iwt),gMt),kvt),nbn(hMt)))),a2(n,P0n,k0n,Owt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,C0n),m2n),"Self-Loop Distribution"),"Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."),xbt),gMt),nmt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,I0n),m2n),"Self-Loop Ordering"),"Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."),Rbt),gMt),cmt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,O0n),"edgeRouting.splines"),"Spline Routing Mode"),"Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."),_bt),gMt),hmt),nbn(hMt)))),a2(n,O0n,y2n,Fbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,A0n),"edgeRouting.splines.sloppy"),"Sloppy Spline Layer Spacing Factor"),"Spacing factor for routing area between layers when using sloppy spline routing."),.2),dMt),Ptt),nbn(hMt)))),a2(n,A0n,y2n,Hbt),a2(n,A0n,O0n,qbt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,$0n),"edgeRouting.polyline"),"Sloped Edge Zone Width"),"Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."),2),dMt),Ptt),nbn(hMt)))),a2(n,$0n,y2n,Lbt),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,L0n),k2n),"Spacing Base Value"),"An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,N0n),k2n),"Edge Node Between Layers Spacing"),"The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."),10),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,x0n),k2n),"Edge Edge Between Layer Spacing"),"Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."),10),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,D0n),k2n),"Node Node Between Layers Spacing"),"The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."),20),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,R0n),j2n),"Direction Priority"),"Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."),iln(0)),vMt),Att),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,K0n),j2n),"Shortness Priority"),"Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."),iln(0)),vMt),Att),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,_0n),j2n),"Straightness Priority"),"Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."),iln(0)),vMt),Att),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,F0n),E2n),DJn),"Tries to further compact components (disconnected sub-graphs)."),!1),wMt),ktt),nbn(hMt)))),a2(n,F0n,kZn,!0),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,B0n),T2n),"Post Compaction Strategy"),M2n),Ylt),gMt),mft),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,H0n),T2n),"Post Compaction Constraint Calculation"),M2n),Vlt),gMt),lht),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,q0n),S2n),"High Degree Node Treatment"),"Makes room around high degree nodes to place leafs and trees."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,G0n),S2n),"High Degree Node Threshold"),"Whether a node is considered to have a high degree."),iln(16)),vMt),Att),nbn(hMt)))),a2(n,G0n,q0n,!0),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,z0n),S2n),"High Degree Node Maximum Tree Height"),"Maximum height of a subtree connected to a high degree node to be moved to separate layers."),iln(5)),vMt),Att),nbn(hMt)))),a2(n,z0n,q0n,!0),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,U0n),P2n),"Graph Wrapping Strategy"),"For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."),bdt),gMt),Smt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,X0n),P2n),"Additional Wrapped Edges Spacing"),"To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."),10),dMt),Ptt),nbn(hMt)))),a2(n,X0n,U0n,Uwt),a2(n,X0n,U0n,Xwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,W0n),P2n),"Correction Factor for Wrapping"),"At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."),1),dMt),Ptt),nbn(hMt)))),a2(n,W0n,U0n,Vwt),a2(n,W0n,U0n,Qwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,V0n),C2n),"Cutting Strategy"),"The strategy by which the layer indexes are determined at which the layering crumbles into chunks."),idt),gMt),Tht),nbn(hMt)))),a2(n,V0n,U0n,rdt),a2(n,V0n,U0n,cdt),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,Q0n),C2n),"Manually Specified Cuts"),"Allows the user to specify her own cuts for a certain graph."),mMt),Rnt),nbn(hMt)))),a2(n,Q0n,V0n,Jwt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Y0n),"wrapping.cutting.msd"),"MSD Freedom"),"The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."),ndt),vMt),Att),nbn(hMt)))),a2(n,Y0n,V0n,tdt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,J0n),I2n),"Validification Strategy"),"When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."),vdt),gMt),dmt),nbn(hMt)))),a2(n,J0n,U0n,mdt),a2(n,J0n,U0n,ydt),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,Z0n),I2n),"Valid Indices for Wrapping"),null),mMt),Rnt),nbn(hMt)))),a2(n,Z0n,U0n,ddt),a2(n,Z0n,U0n,gdt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,n2n),O2n),"Improve Cuts"),"For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."),!0),wMt),ktt),nbn(hMt)))),a2(n,n2n,U0n,sdt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,t2n),O2n),"Distance Penalty When Improving Cuts"),null),2),dMt),Ptt),nbn(hMt)))),a2(n,t2n,U0n,udt),a2(n,t2n,n2n,!0),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,e2n),O2n),"Improve Wrapped Edges"),"The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."),!0),wMt),ktt),nbn(hMt)))),a2(n,e2n,U0n,fdt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,i2n),A2n),"Edge Label Side Selection"),"Method to decide on edge label sides."),Abt),gMt),zht),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,r2n),A2n),"Edge Center Label Placement Strategy"),"Determines in which layer center labels of long edges should be placed."),Ibt),gMt),uht),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,c2n),$2n),"Consider Model Order"),"Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."),abt),gMt),Fvt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,a2n),$2n),"No Model Order"),"Set on a node to not set a model order for this node even though it is a real node."),!1),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,u2n),$2n),"Consider Model Order for Components"),"If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."),Zlt),gMt),mut),nbn(hMt)))),a2(n,u2n,kZn,null),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,o2n),$2n),"Long Edge Ordering Strategy"),"Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."),ibt),gMt),wvt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,s2n),$2n),"Crossing Counter Node Order Influence"),"Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."),0),dMt),Ptt),nbn(hMt)))),a2(n,s2n,c2n,null),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,h2n),$2n),"Crossing Counter Port Order Influence"),"Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."),0),dMt),Ptt),nbn(hMt)))),a2(n,h2n,c2n,null),vWn((new bf,n))},vX(F1n,"LayeredMetaDataProvider",848),wAn(986,1,QYn,bf),MWn.Qe=function(n){vWn(n)},vX(F1n,"LayeredOptions",986),wAn(987,1,{},Cc),MWn.$e=function(){return new Uv},MWn._e=function(n){},vX(F1n,"LayeredOptions/LayeredFactory",987),wAn(1372,1,{}),MWn.a=0,vX(y3n,"ElkSpacings/AbstractSpacingsBuilder",1372),wAn(779,1372,{},uwn),vX(F1n,"LayeredSpacings/LayeredSpacingsBuilder",779),wAn(313,22,{3:1,35:1,22:1,313:1,246:1,234:1},RP),MWn.Kf=function(){return rLn(this)},MWn.Xf=function(){return rLn(this)};var rvt,cvt,avt,uvt,ovt=Ben(F1n,"LayeringStrategy",313,Unt,e9,lF);wAn(378,22,{3:1,35:1,22:1,378:1},KP);var svt,hvt,fvt,lvt,bvt,wvt=Ben(F1n,"LongEdgeOrderingStrategy",378,Unt,E1,bF);wAn(197,22,{3:1,35:1,22:1,197:1},_P);var dvt,gvt,pvt,vvt,mvt,yvt,kvt=Ben(F1n,"NodeFlexibility",197,Unt,k3,wF);wAn(315,22,{3:1,35:1,22:1,315:1,246:1,234:1},FP),MWn.Kf=function(){return DAn(this)},MWn.Xf=function(){return DAn(this)};var jvt,Evt,Tvt,Mvt,Svt,Pvt,Cvt,Ivt,Ovt,Avt=Ben(F1n,"NodePlacementStrategy",315,Unt,$5,yF);wAn(260,22,{3:1,35:1,22:1,260:1},HP);var $vt,Lvt,Nvt,xvt,Dvt=Ben(F1n,"NodePromotionStrategy",260,Unt,Btn,gF);wAn(339,22,{3:1,35:1,22:1,339:1},qP);var Rvt,Kvt,_vt,Fvt=Ben(F1n,"OrderingStrategy",339,Unt,A1,pF);wAn(421,22,{3:1,35:1,22:1,421:1},GP);var Bvt,Hvt,qvt,Gvt,zvt=Ben(F1n,"PortSortingStrategy",421,Unt,UY,vF);wAn(452,22,{3:1,35:1,22:1,452:1},zP);var Uvt,Xvt,Wvt,Vvt,Qvt=Ben(F1n,"PortType",452,Unt,O1,dF);wAn(375,22,{3:1,35:1,22:1,375:1},UP);var Yvt,Jvt,Zvt,nmt=Ben(F1n,"SelfLoopDistributionStrategy",375,Unt,$1,mF);wAn(376,22,{3:1,35:1,22:1,376:1},XP);var tmt,emt,imt,rmt,cmt=Ben(F1n,"SelfLoopOrderingStrategy",376,Unt,BY,kF);wAn(304,1,{304:1},sGn),vX(F1n,"Spacings",304),wAn(336,22,{3:1,35:1,22:1,336:1},WP);var amt,umt,omt,smt,hmt=Ben(F1n,"SplineRoutingMode",336,Unt,N1,jF);wAn(338,22,{3:1,35:1,22:1,338:1},VP);var fmt,lmt,bmt,wmt,dmt=Ben(F1n,"ValidifyStrategy",338,Unt,x1,EF);wAn(377,22,{3:1,35:1,22:1,377:1},QP);var gmt,pmt,vmt,mmt,ymt,kmt,jmt,Emt,Tmt,Mmt,Smt=Ben(F1n,"WrappingStrategy",377,Unt,L1,TF);wAn(1383,1,E3n,wf),MWn.Yf=function(n){return BB(n,37),pmt},MWn.pf=function(n,t){JHn(this,BB(n,37),t)},vX(T3n,"DepthFirstCycleBreaker",1383),wAn(782,1,E3n,KG),MWn.Yf=function(n){return BB(n,37),vmt},MWn.pf=function(n,t){UXn(this,BB(n,37),t)},MWn.Zf=function(n){return BB(xq(n,pvn(this.d,n.c.length)),10)},vX(T3n,"GreedyCycleBreaker",782),wAn(1386,782,E3n,TI),MWn.Zf=function(n){var t,e,i,r;for(r=null,t=DWn,i=new Wb(n);i.a<i.c.c.length;)Lx(e=BB(n0(i),10),(hWn(),wlt))&&BB(mMn(e,wlt),19).a<t&&(t=BB(mMn(e,wlt),19).a,r=e);return r||BB(xq(n,pvn(this.d,n.c.length)),10)},vX(T3n,"GreedyModelOrderCycleBreaker",1386),wAn(1384,1,E3n,rf),MWn.Yf=function(n){return BB(n,37),mmt},MWn.pf=function(n,t){Iqn(this,BB(n,37),t)},vX(T3n,"InteractiveCycleBreaker",1384),wAn(1385,1,E3n,cf),MWn.Yf=function(n){return BB(n,37),ymt},MWn.pf=function(n,t){Lqn(this,BB(n,37),t)},MWn.a=0,MWn.b=0,vX(T3n,"ModelOrderCycleBreaker",1385),wAn(1389,1,E3n,$M),MWn.Yf=function(n){return BB(n,37),kmt},MWn.pf=function(n,t){JXn(this,BB(n,37),t)},vX(M3n,"CoffmanGrahamLayerer",1389),wAn(1390,1,MYn,Dd),MWn.ue=function(n,t){return BIn(this.a,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(M3n,"CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type",1390),wAn(1391,1,MYn,Rd),MWn.ue=function(n,t){return zG(this.a,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(M3n,"CoffmanGrahamLayerer/lambda$1$Type",1391),wAn(1392,1,E3n,Ic),MWn.Yf=function(n){return BB(n,37),dq(dq(dq(new B2,(yMn(),Rat),(lWn(),kot)),Kat,Oot),_at,Iot)},MWn.pf=function(n,t){EUn(this,BB(n,37),t)},vX(M3n,"InteractiveLayerer",1392),wAn(569,1,{569:1},im),MWn.a=0,MWn.c=0,vX(M3n,"InteractiveLayerer/LayerSpan",569),wAn(1388,1,E3n,ef),MWn.Yf=function(n){return BB(n,37),jmt},MWn.pf=function(n,t){qxn(this,BB(n,37),t)},vX(M3n,"LongestPathLayerer",1388),wAn(1395,1,E3n,sf),MWn.Yf=function(n){return BB(n,37),dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),Kat,Oot),_at,Iot)},MWn.pf=function(n,t){iXn(this,BB(n,37),t)},MWn.a=0,MWn.b=0,MWn.d=0,vX(M3n,"MinWidthLayerer",1395),wAn(1396,1,MYn,Kd),MWn.ue=function(n,t){return dan(this,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(M3n,"MinWidthLayerer/MinOutgoingEdgesComparator",1396),wAn(1387,1,E3n,of),MWn.Yf=function(n){return BB(n,37),Mmt},MWn.pf=function(n,t){mGn(this,BB(n,37),t)},vX(M3n,"NetworkSimplexLayerer",1387),wAn(1393,1,E3n,RR),MWn.Yf=function(n){return BB(n,37),dq(dq(dq(new B2,(yMn(),Rat),(lWn(),cot)),Kat,Oot),_at,Iot)},MWn.pf=function(n,t){$zn(this,BB(n,37),t)},MWn.d=0,MWn.f=0,MWn.g=0,MWn.i=0,MWn.s=0,MWn.t=0,MWn.u=0,vX(M3n,"StretchWidthLayerer",1393),wAn(1394,1,MYn,Oc),MWn.ue=function(n,t){return R6(BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(M3n,"StretchWidthLayerer/1",1394),wAn(402,1,S3n),MWn.Nf=function(n,t,e,i,r,c){},MWn._f=function(n,t,e){return r_n(this,n,t,e)},MWn.Mf=function(){this.g=x8(DNt,P3n,25,this.d,15,1),this.f=x8(DNt,P3n,25,this.d,15,1)},MWn.Of=function(n,t){this.e[n]=x8(ANt,hQn,25,t[n].length,15,1)},MWn.Pf=function(n,t,e){e[n][t].p=t,this.e[n][t]=t},MWn.Qf=function(n,t,e,i){BB(xq(i[n][t].j,e),11).p=this.d++},MWn.b=0,MWn.c=0,MWn.d=0,vX(C3n,"AbstractBarycenterPortDistributor",402),wAn(1633,1,MYn,_d),MWn.ue=function(n,t){return qgn(this.a,BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(C3n,"AbstractBarycenterPortDistributor/lambda$0$Type",1633),wAn(817,1,N1n,G2),MWn.Nf=function(n,t,e,i,r,c){},MWn.Pf=function(n,t,e){},MWn.Qf=function(n,t,e,i){},MWn.Lf=function(){return!1},MWn.Mf=function(){this.c=this.e.a,this.g=this.f.g},MWn.Of=function(n,t){t[n][0].c.p=n},MWn.Rf=function(){return!1},MWn.ag=function(n,t,e,i){e?sjn(this,n):(Djn(this,n,i),ZGn(this,n,t)),n.c.length>1&&(qy(TD(mMn(vW((l1(0,n.c.length),BB(n.c[0],10))),(HXn(),xdt))))?R$n(n,this.d,BB(this,660)):(SQ(),m$(n,this.d)),Ban(this.e,n))},MWn.Sf=function(n,t,e,i){var r,c,a,u,o,s,h;for(t!=Jq(e,n.length)&&(c=n[t-(e?1:-1)],G6(this.f,c,e?(ain(),qvt):(ain(),Hvt))),r=n[t][0],h=!i||r.k==(uSn(),Mut),s=u6(n[t]),this.ag(s,h,!1,e),a=0,o=new Wb(s);o.a<o.c.c.length;)u=BB(n0(o),10),n[t][a++]=u;return!1},MWn.Tf=function(n,t){var e,i,r,c,a;for(c=u6(n[a=Jq(t,n.length)]),this.ag(c,!1,!0,t),e=0,r=new Wb(c);r.a<r.c.c.length;)i=BB(n0(r),10),n[a][e++]=i;return!1},vX(C3n,"BarycenterHeuristic",817),wAn(658,1,{658:1},Bd),MWn.Ib=function(){return"BarycenterState [node="+this.c+", summedWeight="+this.d+", degree="+this.b+", barycenter="+this.a+", visited="+this.e+"]"},MWn.b=0,MWn.d=0,MWn.e=!1;var Pmt=vX(C3n,"BarycenterHeuristic/BarycenterState",658);wAn(1802,1,MYn,Fd),MWn.ue=function(n,t){return MEn(this.a,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(C3n,"BarycenterHeuristic/lambda$0$Type",1802),wAn(816,1,N1n,UEn),MWn.Mf=function(){},MWn.Nf=function(n,t,e,i,r,c){},MWn.Qf=function(n,t,e,i){},MWn.Of=function(n,t){this.a[n]=x8(Pmt,{3:1,4:1,5:1,2018:1},658,t[n].length,0,1),this.b[n]=x8(Lmt,{3:1,4:1,5:1,2019:1},233,t[n].length,0,1)},MWn.Pf=function(n,t,e){Dgn(this,e[n][t],!0)},MWn.c=!1,vX(C3n,"ForsterConstraintResolver",816),wAn(233,1,{233:1},DY,uGn),MWn.Ib=function(){var n,t;for((t=new Ck).a+="[",n=0;n<this.d.length;n++)oO(t,$pn(this.d[n])),null!=lL(this.g,this.d[0]).a&&oO(oO((t.a+="<",t),ZI(lL(this.g,this.d[0]).a)),">"),n<this.d.length-1&&(t.a+=FWn);return(t.a+="]",t).a},MWn.a=0,MWn.c=0,MWn.f=0;var Cmt,Imt,Omt,Amt,$mt,Lmt=vX(C3n,"ForsterConstraintResolver/ConstraintGroup",233);wAn(1797,1,lVn,qd),MWn.td=function(n){Dgn(this.a,BB(n,10),!1)},vX(C3n,"ForsterConstraintResolver/lambda$0$Type",1797),wAn(214,1,{214:1,225:1},CGn),MWn.Nf=function(n,t,e,i,r,c){},MWn.Of=function(n,t){},MWn.Mf=function(){this.r=x8(ANt,hQn,25,this.n,15,1)},MWn.Pf=function(n,t,e){var i;(i=e[n][t].e)&&WB(this.b,i)},MWn.Qf=function(n,t,e,i){++this.n},MWn.Ib=function(){return izn(this.e,new Rv)},MWn.g=!1,MWn.i=!1,MWn.n=0,MWn.s=!1,vX(C3n,"GraphInfoHolder",214),wAn(1832,1,N1n,Pc),MWn.Nf=function(n,t,e,i,r,c){},MWn.Of=function(n,t){},MWn.Qf=function(n,t,e,i){},MWn._f=function(n,t,e){return e&&t>0?uZ(this.a,n[t-1],n[t]):!e&&t<n.length-1?uZ(this.a,n[t],n[t+1]):yrn(this.a,n[t],e?(kUn(),CIt):(kUn(),oIt)),bLn(this,n,t,e)},MWn.Mf=function(){this.d=x8(ANt,hQn,25,this.c,15,1),this.a=new QK(this.d)},MWn.Pf=function(n,t,e){var i;i=e[n][t],this.c+=i.j.c.length},MWn.c=0,vX(C3n,"GreedyPortDistributor",1832),wAn(1401,1,E3n,df),MWn.Yf=function(n){return Xhn(BB(n,37))},MWn.pf=function(n,t){XGn(BB(n,37),t)},vX(C3n,"InteractiveCrossingMinimizer",1401),wAn(1402,1,MYn,Gd),MWn.ue=function(n,t){return Hjn(this,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(C3n,"InteractiveCrossingMinimizer/1",1402),wAn(507,1,{507:1,123:1,51:1},Ny),MWn.Yf=function(n){var t;return BB(n,37),dq(t=kA(Imt),(yMn(),_at),(lWn(),Bot)),t},MWn.pf=function(n,t){P_n(this,BB(n,37),t)},MWn.e=0,vX(C3n,"LayerSweepCrossingMinimizer",507),wAn(1398,1,lVn,zd),MWn.td=function(n){wBn(this.a,BB(n,214))},vX(C3n,"LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type",1398),wAn(1399,1,lVn,Ud),MWn.td=function(n){Ohn(this.a,BB(n,214))},vX(C3n,"LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type",1399),wAn(1400,1,lVn,Xd),MWn.td=function(n){pFn(this.a,BB(n,214))},vX(C3n,"LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type",1400),wAn(454,22,{3:1,35:1,22:1,454:1},YP);var Nmt,xmt=Ben(C3n,"LayerSweepCrossingMinimizer/CrossMinType",454,Unt,D1,MF);wAn(1397,1,DVn,Ac),MWn.Mb=function(n){return _cn(),0==BB(n,29).a.c.length},vX(C3n,"LayerSweepCrossingMinimizer/lambda$0$Type",1397),wAn(1799,1,N1n,aZ),MWn.Mf=function(){},MWn.Nf=function(n,t,e,i,r,c){},MWn.Qf=function(n,t,e,i){},MWn.Of=function(n,t){t[n][0].c.p=n,this.b[n]=x8(_mt,{3:1,4:1,5:1,1944:1},659,t[n].length,0,1)},MWn.Pf=function(n,t,e){e[n][t].p=t,$X(this.b[n],t,new $c)},vX(C3n,"LayerSweepTypeDecider",1799),wAn(659,1,{659:1},$c),MWn.Ib=function(){return"NodeInfo [connectedEdges="+this.a+", hierarchicalInfluence="+this.b+", randomInfluence="+this.c+"]"},MWn.a=0,MWn.b=0,MWn.c=0;var Dmt,Rmt,Kmt,_mt=vX(C3n,"LayerSweepTypeDecider/NodeInfo",659);wAn(1800,1,qYn,Lc),MWn.Lb=function(n){return zN(new m6(BB(n,11).b))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return zN(new m6(BB(n,11).b))},vX(C3n,"LayerSweepTypeDecider/lambda$0$Type",1800),wAn(1801,1,qYn,Nc),MWn.Lb=function(n){return zN(new m6(BB(n,11).b))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return zN(new m6(BB(n,11).b))},vX(C3n,"LayerSweepTypeDecider/lambda$1$Type",1801),wAn(1833,402,S3n,Dj),MWn.$f=function(n,t,e){var i,r,c,a,u,o,s,h,f;switch(s=this.g,e.g){case 1:for(i=0,r=0,o=new Wb(n.j);o.a<o.c.c.length;)0!=(a=BB(n0(o),11)).e.c.length&&(++i,a.j==(kUn(),sIt)&&++r);for(c=t+r,f=t+i,u=xwn(n,(ain(),Hvt)).Kc();u.Ob();)(a=BB(u.Pb(),11)).j==(kUn(),sIt)?(s[a.p]=c,--c):(s[a.p]=f,--f);return i;case 2:for(h=0,u=xwn(n,(ain(),qvt)).Kc();u.Ob();)++h,s[(a=BB(u.Pb(),11)).p]=t+h;return h;default:throw Hp(new wv)}},vX(C3n,"LayerTotalPortDistributor",1833),wAn(660,817,{660:1,225:1},prn),MWn.ag=function(n,t,e,i){e?sjn(this,n):(Djn(this,n,i),ZGn(this,n,t)),n.c.length>1&&(qy(TD(mMn(vW((l1(0,n.c.length),BB(n.c[0],10))),(HXn(),xdt))))?R$n(n,this.d,this):(SQ(),m$(n,this.d)),qy(TD(mMn(vW((l1(0,n.c.length),BB(n.c[0],10))),xdt)))||Ban(this.e,n))},vX(C3n,"ModelOrderBarycenterHeuristic",660),wAn(1803,1,MYn,Wd),MWn.ue=function(n,t){return KSn(this.a,BB(n,10),BB(t,10))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(C3n,"ModelOrderBarycenterHeuristic/lambda$0$Type",1803),wAn(1403,1,E3n,jf),MWn.Yf=function(n){var t;return BB(n,37),dq(t=kA(Dmt),(yMn(),_at),(lWn(),Bot)),t},MWn.pf=function(n,t){mY((BB(n,37),t))},vX(C3n,"NoCrossingMinimizer",1403),wAn(796,402,S3n,Rj),MWn.$f=function(n,t,e){var i,r,c,a,u,o,s,h,f,l,b;switch(f=this.g,e.g){case 1:for(r=0,c=0,h=new Wb(n.j);h.a<h.c.c.length;)0!=(o=BB(n0(h),11)).e.c.length&&(++r,o.j==(kUn(),sIt)&&++c);for(a=t+c*(i=1/(r+1)),b=t+1-i,s=xwn(n,(ain(),Hvt)).Kc();s.Ob();)(o=BB(s.Pb(),11)).j==(kUn(),sIt)?(f[o.p]=a,a-=i):(f[o.p]=b,b-=i);break;case 2:for(u=0,h=new Wb(n.j);h.a<h.c.c.length;)0==(o=BB(n0(h),11)).g.c.length||++u;for(l=t+(i=1/(u+1)),s=xwn(n,(ain(),qvt)).Kc();s.Ob();)f[(o=BB(s.Pb(),11)).p]=l,l+=i;break;default:throw Hp(new _y("Port type is undefined"))}return 1},vX(C3n,"NodeRelativePortDistributor",796),wAn(807,1,{},Vz,HMn),vX(C3n,"SweepCopy",807),wAn(1798,1,N1n,wdn),MWn.Of=function(n,t){},MWn.Mf=function(){var n;n=x8(ANt,hQn,25,this.f,15,1),this.d=new eg(n),this.a=new QK(n)},MWn.Nf=function(n,t,e,i,r,c){var a;a=BB(xq(c[n][t].j,e),11),r.c==a&&r.c.i.c==r.d.i.c&&++this.e[n]},MWn.Pf=function(n,t,e){var i;i=e[n][t],this.c[n]=this.c[n]|i.k==(uSn(),Iut)},MWn.Qf=function(n,t,e,i){var r;(r=BB(xq(i[n][t].j,e),11)).p=this.f++,r.g.c.length+r.e.c.length>1&&(r.j==(kUn(),oIt)?this.b[n]=!0:r.j==CIt&&n>0&&(this.b[n-1]=!0))},MWn.f=0,vX(L1n,"AllCrossingsCounter",1798),wAn(587,1,{},mrn),MWn.b=0,MWn.d=0,vX(L1n,"BinaryIndexedTree",587),wAn(524,1,{},QK),vX(L1n,"CrossingsCounter",524),wAn(1906,1,MYn,Vd),MWn.ue=function(n,t){return Xq(this.a,BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(L1n,"CrossingsCounter/lambda$0$Type",1906),wAn(1907,1,MYn,Qd),MWn.ue=function(n,t){return Wq(this.a,BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(L1n,"CrossingsCounter/lambda$1$Type",1907),wAn(1908,1,MYn,Yd),MWn.ue=function(n,t){return Vq(this.a,BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(L1n,"CrossingsCounter/lambda$2$Type",1908),wAn(1909,1,MYn,Jd),MWn.ue=function(n,t){return Qq(this.a,BB(n,11),BB(t,11))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(L1n,"CrossingsCounter/lambda$3$Type",1909),wAn(1910,1,lVn,Zd),MWn.td=function(n){p7(this.a,BB(n,11))},vX(L1n,"CrossingsCounter/lambda$4$Type",1910),wAn(1911,1,DVn,ng),MWn.Mb=function(n){return yI(this.a,BB(n,11))},vX(L1n,"CrossingsCounter/lambda$5$Type",1911),wAn(1912,1,lVn,tg),MWn.td=function(n){mI(this,n)},vX(L1n,"CrossingsCounter/lambda$6$Type",1912),wAn(1913,1,lVn,ZP),MWn.td=function(n){var t;hH(),d3(this.b,(t=this.a,BB(n,11),t))},vX(L1n,"CrossingsCounter/lambda$7$Type",1913),wAn(826,1,qYn,xc),MWn.Lb=function(n){return hH(),Lx(BB(n,11),(hWn(),Elt))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return hH(),Lx(BB(n,11),(hWn(),Elt))},vX(L1n,"CrossingsCounter/lambda$8$Type",826),wAn(1905,1,{},eg),vX(L1n,"HyperedgeCrossingsCounter",1905),wAn(467,1,{35:1,467:1},DR),MWn.wd=function(n){return vgn(this,BB(n,467))},MWn.b=0,MWn.c=0,MWn.e=0,MWn.f=0;var Fmt=vX(L1n,"HyperedgeCrossingsCounter/Hyperedge",467);wAn(362,1,{35:1,362:1},qV),MWn.wd=function(n){return l$n(this,BB(n,362))},MWn.b=0,MWn.c=0;var Bmt,Hmt,qmt=vX(L1n,"HyperedgeCrossingsCounter/HyperedgeCorner",362);wAn(523,22,{3:1,35:1,22:1,523:1},JP);var Gmt,zmt,Umt,Xmt,Wmt,Vmt=Ben(L1n,"HyperedgeCrossingsCounter/HyperedgeCorner/Type",523,Unt,XY,SF);wAn(1405,1,E3n,lf),MWn.Yf=function(n){return BB(mMn(BB(n,37),(hWn(),Zft)),21).Hc((bDn(),lft))?zmt:null},MWn.pf=function(n,t){ljn(this,BB(n,37),t)},vX(I3n,"InteractiveNodePlacer",1405),wAn(1406,1,E3n,ff),MWn.Yf=function(n){return BB(mMn(BB(n,37),(hWn(),Zft)),21).Hc((bDn(),lft))?Umt:null},MWn.pf=function(n,t){jmn(this,BB(n,37),t)},vX(I3n,"LinearSegmentsNodePlacer",1406),wAn(257,1,{35:1,257:1},rm),MWn.wd=function(n){return uj(this,BB(n,257))},MWn.Fb=function(n){var t;return!!cL(n,257)&&(t=BB(n,257),this.b==t.b)},MWn.Hb=function(){return this.b},MWn.Ib=function(){return"ls"+LMn(this.e)},MWn.a=0,MWn.b=0,MWn.c=-1,MWn.d=-1,MWn.g=0;var Qmt,Ymt=vX(I3n,"LinearSegmentsNodePlacer/LinearSegment",257);wAn(1408,1,E3n,_G),MWn.Yf=function(n){return BB(mMn(BB(n,37),(hWn(),Zft)),21).Hc((bDn(),lft))?Qmt:null},MWn.pf=function(n,t){SXn(this,BB(n,37),t)},MWn.b=0,MWn.g=0,vX(I3n,"NetworkSimplexPlacer",1408),wAn(1427,1,MYn,Dc),MWn.ue=function(n,t){return E$(BB(n,19).a,BB(t,19).a)},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(I3n,"NetworkSimplexPlacer/0methodref$compare$Type",1427),wAn(1429,1,MYn,Rc),MWn.ue=function(n,t){return E$(BB(n,19).a,BB(t,19).a)},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(I3n,"NetworkSimplexPlacer/1methodref$compare$Type",1429),wAn(649,1,{649:1},nC);var Jmt=vX(I3n,"NetworkSimplexPlacer/EdgeRep",649);wAn(401,1,{401:1},GV),MWn.b=!1;var Zmt,nyt,tyt,eyt=vX(I3n,"NetworkSimplexPlacer/NodeRep",401);wAn(508,12,{3:1,4:1,20:1,28:1,52:1,12:1,14:1,15:1,54:1,508:1},um),vX(I3n,"NetworkSimplexPlacer/Path",508),wAn(1409,1,{},Kc),MWn.Kb=function(n){return BB(n,17).d.i.k},vX(I3n,"NetworkSimplexPlacer/Path/lambda$0$Type",1409),wAn(1410,1,DVn,_c),MWn.Mb=function(n){return BB(n,267)==(uSn(),Put)},vX(I3n,"NetworkSimplexPlacer/Path/lambda$1$Type",1410),wAn(1411,1,{},Fc),MWn.Kb=function(n){return BB(n,17).d.i},vX(I3n,"NetworkSimplexPlacer/Path/lambda$2$Type",1411),wAn(1412,1,DVn,ig),MWn.Mb=function(n){return HD(tdn(BB(n,10)))},vX(I3n,"NetworkSimplexPlacer/Path/lambda$3$Type",1412),wAn(1413,1,DVn,Bc),MWn.Mb=function(n){return hq(BB(n,11))},vX(I3n,"NetworkSimplexPlacer/lambda$0$Type",1413),wAn(1414,1,lVn,tC),MWn.td=function(n){D$(this.a,this.b,BB(n,11))},vX(I3n,"NetworkSimplexPlacer/lambda$1$Type",1414),wAn(1423,1,lVn,rg),MWn.td=function(n){WCn(this.a,BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$10$Type",1423),wAn(1424,1,{},Hc),MWn.Kb=function(n){return BZ(),new Rq(null,new w1(BB(n,29).a,16))},vX(I3n,"NetworkSimplexPlacer/lambda$11$Type",1424),wAn(1425,1,lVn,cg),MWn.td=function(n){BDn(this.a,BB(n,10))},vX(I3n,"NetworkSimplexPlacer/lambda$12$Type",1425),wAn(1426,1,{},qc),MWn.Kb=function(n){return BZ(),iln(BB(n,121).e)},vX(I3n,"NetworkSimplexPlacer/lambda$13$Type",1426),wAn(1428,1,{},Gc),MWn.Kb=function(n){return BZ(),iln(BB(n,121).e)},vX(I3n,"NetworkSimplexPlacer/lambda$15$Type",1428),wAn(1430,1,DVn,zc),MWn.Mb=function(n){return BZ(),BB(n,401).c.k==(uSn(),Cut)},vX(I3n,"NetworkSimplexPlacer/lambda$17$Type",1430),wAn(1431,1,DVn,Uc),MWn.Mb=function(n){return BZ(),BB(n,401).c.j.c.length>1},vX(I3n,"NetworkSimplexPlacer/lambda$18$Type",1431),wAn(1432,1,lVn,zV),MWn.td=function(n){cwn(this.c,this.b,this.d,this.a,BB(n,401))},MWn.c=0,MWn.d=0,vX(I3n,"NetworkSimplexPlacer/lambda$19$Type",1432),wAn(1415,1,{},Xc),MWn.Kb=function(n){return BZ(),new Rq(null,new w1(BB(n,29).a,16))},vX(I3n,"NetworkSimplexPlacer/lambda$2$Type",1415),wAn(1433,1,lVn,ag),MWn.td=function(n){N$(this.a,BB(n,11))},MWn.a=0,vX(I3n,"NetworkSimplexPlacer/lambda$20$Type",1433),wAn(1434,1,{},Wc),MWn.Kb=function(n){return BZ(),new Rq(null,new w1(BB(n,29).a,16))},vX(I3n,"NetworkSimplexPlacer/lambda$21$Type",1434),wAn(1435,1,lVn,ug),MWn.td=function(n){dL(this.a,BB(n,10))},vX(I3n,"NetworkSimplexPlacer/lambda$22$Type",1435),wAn(1436,1,DVn,Vc),MWn.Mb=function(n){return HD(n)},vX(I3n,"NetworkSimplexPlacer/lambda$23$Type",1436),wAn(1437,1,{},Qc),MWn.Kb=function(n){return BZ(),new Rq(null,new w1(BB(n,29).a,16))},vX(I3n,"NetworkSimplexPlacer/lambda$24$Type",1437),wAn(1438,1,DVn,og),MWn.Mb=function(n){return EO(this.a,BB(n,10))},vX(I3n,"NetworkSimplexPlacer/lambda$25$Type",1438),wAn(1439,1,lVn,eC),MWn.td=function(n){MPn(this.a,this.b,BB(n,10))},vX(I3n,"NetworkSimplexPlacer/lambda$26$Type",1439),wAn(1440,1,DVn,Yc),MWn.Mb=function(n){return BZ(),!b5(BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$27$Type",1440),wAn(1441,1,DVn,Jc),MWn.Mb=function(n){return BZ(),!b5(BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$28$Type",1441),wAn(1442,1,{},sg),MWn.Ce=function(n,t){return sL(this.a,BB(n,29),BB(t,29))},vX(I3n,"NetworkSimplexPlacer/lambda$29$Type",1442),wAn(1416,1,{},Zc),MWn.Kb=function(n){return BZ(),new Rq(null,new zU(new oz(ZL(lbn(BB(n,10)).a.Kc(),new h))))},vX(I3n,"NetworkSimplexPlacer/lambda$3$Type",1416),wAn(1417,1,DVn,na),MWn.Mb=function(n){return BZ(),t2(BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$4$Type",1417),wAn(1418,1,lVn,hg),MWn.td=function(n){iBn(this.a,BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$5$Type",1418),wAn(1419,1,{},ta),MWn.Kb=function(n){return BZ(),new Rq(null,new w1(BB(n,29).a,16))},vX(I3n,"NetworkSimplexPlacer/lambda$6$Type",1419),wAn(1420,1,DVn,ea),MWn.Mb=function(n){return BZ(),BB(n,10).k==(uSn(),Cut)},vX(I3n,"NetworkSimplexPlacer/lambda$7$Type",1420),wAn(1421,1,{},ia),MWn.Kb=function(n){return BZ(),new Rq(null,new zU(new oz(ZL(hbn(BB(n,10)).a.Kc(),new h))))},vX(I3n,"NetworkSimplexPlacer/lambda$8$Type",1421),wAn(1422,1,DVn,ra),MWn.Mb=function(n){return BZ(),UH(BB(n,17))},vX(I3n,"NetworkSimplexPlacer/lambda$9$Type",1422),wAn(1404,1,E3n,Cf),MWn.Yf=function(n){return BB(mMn(BB(n,37),(hWn(),Zft)),21).Hc((bDn(),lft))?Zmt:null},MWn.pf=function(n,t){kHn(BB(n,37),t)},vX(I3n,"SimpleNodePlacer",1404),wAn(180,1,{180:1},qKn),MWn.Ib=function(){var n;return n="",this.c==(gJ(),tyt)?n+=aJn:this.c==nyt&&(n+=cJn),this.o==(oZ(),ryt)?n+=pJn:this.o==cyt?n+="UP":n+="BALANCED",n},vX($3n,"BKAlignedLayout",180),wAn(516,22,{3:1,35:1,22:1,516:1},cC);var iyt,ryt,cyt,ayt=Ben($3n,"BKAlignedLayout/HDirection",516,Unt,VY,PF);wAn(515,22,{3:1,35:1,22:1,515:1},rC);var uyt,oyt,syt,hyt,fyt,lyt,byt,wyt,dyt,gyt,pyt,vyt,myt,yyt,kyt,jyt,Eyt,Tyt,Myt,Syt=Ben($3n,"BKAlignedLayout/VDirection",515,Unt,QY,CF);wAn(1634,1,{},iC),vX($3n,"BKAligner",1634),wAn(1637,1,{},Jyn),vX($3n,"BKCompactor",1637),wAn(654,1,{654:1},ca),MWn.a=0,vX($3n,"BKCompactor/ClassEdge",654),wAn(458,1,{458:1},cm),MWn.a=null,MWn.b=0,vX($3n,"BKCompactor/ClassNode",458),wAn(1407,1,E3n,jI),MWn.Yf=function(n){return BB(mMn(BB(n,37),(hWn(),Zft)),21).Hc((bDn(),lft))?oyt:null},MWn.pf=function(n,t){rWn(this,BB(n,37),t)},MWn.d=!1,vX($3n,"BKNodePlacer",1407),wAn(1635,1,{},aa),MWn.d=0,vX($3n,"NeighborhoodInformation",1635),wAn(1636,1,MYn,fg),MWn.ue=function(n,t){return Mtn(this,BB(n,46),BB(t,46))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX($3n,"NeighborhoodInformation/NeighborComparator",1636),wAn(808,1,{}),vX($3n,"ThresholdStrategy",808),wAn(1763,808,{},dm),MWn.bg=function(n,t,e){return this.a.o==(oZ(),cyt)?RQn:KQn},MWn.cg=function(){},vX($3n,"ThresholdStrategy/NullThresholdStrategy",1763),wAn(579,1,{579:1},aC),MWn.c=!1,MWn.d=!1,vX($3n,"ThresholdStrategy/Postprocessable",579),wAn(1764,808,{},gm),MWn.bg=function(n,t,e){var i,r,c;return r=t==e,i=this.a.a[e.p]==t,r||i?(c=n,this.a.c,gJ(),r&&(c=THn(this,t,!0)),!isNaN(c)&&!isFinite(c)&&i&&(c=THn(this,e,!1)),c):n},MWn.cg=function(){for(var n,t,e;0!=this.d.b;)(t=cFn(this,e=BB(PJ(this.d),579))).a&&(n=t.a,(qy(this.a.f[this.a.g[e.b.p].p])||b5(n)||n.c.i.c!=n.d.i.c)&&(b$n(this,e)||rA(this.e,e)));for(;0!=this.e.a.c.length;)b$n(this,BB(thn(this.e),579))},vX($3n,"ThresholdStrategy/SimpleThresholdStrategy",1764),wAn(635,1,{635:1,246:1,234:1},ua),MWn.Kf=function(){return Tan(this)},MWn.Xf=function(){return Tan(this)},vX(L3n,"EdgeRouterFactory",635),wAn(1458,1,E3n,If),MWn.Yf=function(n){return Uxn(BB(n,37))},MWn.pf=function(n,t){DHn(BB(n,37),t)},vX(L3n,"OrthogonalEdgeRouter",1458),wAn(1451,1,E3n,EI),MWn.Yf=function(n){return Ejn(BB(n,37))},MWn.pf=function(n,t){OUn(this,BB(n,37),t)},vX(L3n,"PolylineEdgeRouter",1451),wAn(1452,1,qYn,oa),MWn.Lb=function(n){return Qan(BB(n,10))},MWn.Fb=function(n){return this===n},MWn.Mb=function(n){return Qan(BB(n,10))},vX(L3n,"PolylineEdgeRouter/1",1452),wAn(1809,1,DVn,sa),MWn.Mb=function(n){return BB(n,129).c==(O6(),Tyt)},vX(N3n,"HyperEdgeCycleDetector/lambda$0$Type",1809),wAn(1810,1,{},ha),MWn.Ge=function(n){return BB(n,129).d},vX(N3n,"HyperEdgeCycleDetector/lambda$1$Type",1810),wAn(1811,1,DVn,fa),MWn.Mb=function(n){return BB(n,129).c==(O6(),Tyt)},vX(N3n,"HyperEdgeCycleDetector/lambda$2$Type",1811),wAn(1812,1,{},la),MWn.Ge=function(n){return BB(n,129).d},vX(N3n,"HyperEdgeCycleDetector/lambda$3$Type",1812),wAn(1813,1,{},ba),MWn.Ge=function(n){return BB(n,129).d},vX(N3n,"HyperEdgeCycleDetector/lambda$4$Type",1813),wAn(1814,1,{},wa),MWn.Ge=function(n){return BB(n,129).d},vX(N3n,"HyperEdgeCycleDetector/lambda$5$Type",1814),wAn(112,1,{35:1,112:1},Fan),MWn.wd=function(n){return oj(this,BB(n,112))},MWn.Fb=function(n){var t;return!!cL(n,112)&&(t=BB(n,112),this.g==t.g)},MWn.Hb=function(){return this.g},MWn.Ib=function(){var n,t,e,i;for(n=new lN("{"),i=new Wb(this.n);i.a<i.c.c.length;)null==(t=gyn((e=BB(n0(i),11)).i))&&(t="n"+AK(e.i)),n.a+=""+t,i.a<i.c.c.length&&(n.a+=",");return n.a+="}",n.a},MWn.a=0,MWn.b=0,MWn.c=NaN,MWn.d=0,MWn.g=0,MWn.i=0,MWn.o=0,MWn.s=NaN,vX(N3n,"HyperEdgeSegment",112),wAn(129,1,{129:1},zZ),MWn.Ib=function(){return this.a+"->"+this.b+" ("+wx(this.c)+")"},MWn.d=0,vX(N3n,"HyperEdgeSegmentDependency",129),wAn(520,22,{3:1,35:1,22:1,520:1},uC);var Pyt,Cyt,Iyt,Oyt,Ayt,$yt,Lyt,Nyt,xyt=Ben(N3n,"HyperEdgeSegmentDependency/DependencyType",520,Unt,WY,IF);wAn(1815,1,{},lg),vX(N3n,"HyperEdgeSegmentSplitter",1815),wAn(1816,1,{},zj),MWn.a=0,MWn.b=0,vX(N3n,"HyperEdgeSegmentSplitter/AreaRating",1816),wAn(329,1,{329:1},kB),MWn.a=0,MWn.b=0,MWn.c=0,vX(N3n,"HyperEdgeSegmentSplitter/FreeArea",329),wAn(1817,1,MYn,ja),MWn.ue=function(n,t){return OK(BB(n,112),BB(t,112))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(N3n,"HyperEdgeSegmentSplitter/lambda$0$Type",1817),wAn(1818,1,lVn,XV),MWn.td=function(n){n4(this.a,this.d,this.c,this.b,BB(n,112))},MWn.b=0,vX(N3n,"HyperEdgeSegmentSplitter/lambda$1$Type",1818),wAn(1819,1,{},Ea),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,112).e,16))},vX(N3n,"HyperEdgeSegmentSplitter/lambda$2$Type",1819),wAn(1820,1,{},Ta),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,112).j,16))},vX(N3n,"HyperEdgeSegmentSplitter/lambda$3$Type",1820),wAn(1821,1,{},Ma),MWn.Fe=function(n){return Gy(MD(n))},vX(N3n,"HyperEdgeSegmentSplitter/lambda$4$Type",1821),wAn(655,1,{},fX),MWn.a=0,MWn.b=0,MWn.c=0,vX(N3n,"OrthogonalRoutingGenerator",655),wAn(1638,1,{},Sa),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,112).e,16))},vX(N3n,"OrthogonalRoutingGenerator/lambda$0$Type",1638),wAn(1639,1,{},Pa),MWn.Kb=function(n){return new Rq(null,new w1(BB(n,112).j,16))},vX(N3n,"OrthogonalRoutingGenerator/lambda$1$Type",1639),wAn(661,1,{}),vX(x3n,"BaseRoutingDirectionStrategy",661),wAn(1807,661,{},pm),MWn.dg=function(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g;if(!n.r||n.q)for(f=t+n.o*i,h=new Wb(n.n);h.a<h.c.c.length;)for(s=BB(n0(h),11),l=Aon(Pun(Gk(PMt,1),sVn,8,0,[s.i.n,s.n,s.a])).a,o=new Wb(s.g);o.a<o.c.c.length;)b5(u=BB(n0(o),17))||(d=u.d,g=Aon(Pun(Gk(PMt,1),sVn,8,0,[d.i.n,d.n,d.a])).a,e.Math.abs(l-g)>lZn&&(c=n,r=new xC(l,a=f),DH(u.a,r),F_n(this,u,c,r,!1),(b=n.r)&&(r=new xC(w=Gy(MD(Dpn(b.e,0))),a),DH(u.a,r),F_n(this,u,c,r,!1),c=b,r=new xC(w,a=t+b.o*i),DH(u.a,r),F_n(this,u,c,r,!1)),r=new xC(g,a),DH(u.a,r),F_n(this,u,c,r,!1)))},MWn.eg=function(n){return n.i.n.a+n.n.a+n.a.a},MWn.fg=function(){return kUn(),SIt},MWn.gg=function(){return kUn(),sIt},vX(x3n,"NorthToSouthRoutingStrategy",1807),wAn(1808,661,{},vm),MWn.dg=function(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g;if(!n.r||n.q)for(f=t-n.o*i,h=new Wb(n.n);h.a<h.c.c.length;)for(s=BB(n0(h),11),l=Aon(Pun(Gk(PMt,1),sVn,8,0,[s.i.n,s.n,s.a])).a,o=new Wb(s.g);o.a<o.c.c.length;)b5(u=BB(n0(o),17))||(d=u.d,g=Aon(Pun(Gk(PMt,1),sVn,8,0,[d.i.n,d.n,d.a])).a,e.Math.abs(l-g)>lZn&&(c=n,r=new xC(l,a=f),DH(u.a,r),F_n(this,u,c,r,!1),(b=n.r)&&(r=new xC(w=Gy(MD(Dpn(b.e,0))),a),DH(u.a,r),F_n(this,u,c,r,!1),c=b,r=new xC(w,a=t-b.o*i),DH(u.a,r),F_n(this,u,c,r,!1)),r=new xC(g,a),DH(u.a,r),F_n(this,u,c,r,!1)))},MWn.eg=function(n){return n.i.n.a+n.n.a+n.a.a},MWn.fg=function(){return kUn(),sIt},MWn.gg=function(){return kUn(),SIt},vX(x3n,"SouthToNorthRoutingStrategy",1808),wAn(1806,661,{},mm),MWn.dg=function(n,t,i){var r,c,a,u,o,s,h,f,l,b,w,d,g;if(!n.r||n.q)for(f=t+n.o*i,h=new Wb(n.n);h.a<h.c.c.length;)for(s=BB(n0(h),11),l=Aon(Pun(Gk(PMt,1),sVn,8,0,[s.i.n,s.n,s.a])).b,o=new Wb(s.g);o.a<o.c.c.length;)b5(u=BB(n0(o),17))||(d=u.d,g=Aon(Pun(Gk(PMt,1),sVn,8,0,[d.i.n,d.n,d.a])).b,e.Math.abs(l-g)>lZn&&(c=n,r=new xC(a=f,l),DH(u.a,r),F_n(this,u,c,r,!0),(b=n.r)&&(r=new xC(a,w=Gy(MD(Dpn(b.e,0)))),DH(u.a,r),F_n(this,u,c,r,!0),c=b,r=new xC(a=t+b.o*i,w),DH(u.a,r),F_n(this,u,c,r,!0)),r=new xC(a,g),DH(u.a,r),F_n(this,u,c,r,!0)))},MWn.eg=function(n){return n.i.n.b+n.n.b+n.a.b},MWn.fg=function(){return kUn(),oIt},MWn.gg=function(){return kUn(),CIt},vX(x3n,"WestToEastRoutingStrategy",1806),wAn(813,1,{},oBn),MWn.Ib=function(){return LMn(this.a)},MWn.b=0,MWn.c=!1,MWn.d=!1,MWn.f=0,vX(R3n,"NubSpline",813),wAn(407,1,{407:1},Exn,wJ),vX(R3n,"NubSpline/PolarCP",407),wAn(1453,1,E3n,hyn),MWn.Yf=function(n){return rTn(BB(n,37))},MWn.pf=function(n,t){cXn(this,BB(n,37),t)},vX(R3n,"SplineEdgeRouter",1453),wAn(268,1,{268:1},S6),MWn.Ib=function(){return this.a+" ->("+this.c+") "+this.b},MWn.c=0,vX(R3n,"SplineEdgeRouter/Dependency",268),wAn(455,22,{3:1,35:1,22:1,455:1},oC);var Dyt,Ryt,Kyt,_yt,Fyt,Byt=Ben(R3n,"SplineEdgeRouter/SideToProcess",455,Unt,YY,OF);wAn(1454,1,DVn,ya),MWn.Mb=function(n){return gxn(),!BB(n,128).o},vX(R3n,"SplineEdgeRouter/lambda$0$Type",1454),wAn(1455,1,{},ma),MWn.Ge=function(n){return gxn(),BB(n,128).v+1},vX(R3n,"SplineEdgeRouter/lambda$1$Type",1455),wAn(1456,1,lVn,sC),MWn.td=function(n){iq(this.a,this.b,BB(n,46))},vX(R3n,"SplineEdgeRouter/lambda$2$Type",1456),wAn(1457,1,lVn,hC),MWn.td=function(n){rq(this.a,this.b,BB(n,46))},vX(R3n,"SplineEdgeRouter/lambda$3$Type",1457),wAn(128,1,{35:1,128:1},tCn,hqn),MWn.wd=function(n){return sj(this,BB(n,128))},MWn.b=0,MWn.e=!1,MWn.f=0,MWn.g=0,MWn.j=!1,MWn.k=!1,MWn.n=0,MWn.o=!1,MWn.p=!1,MWn.q=!1,MWn.s=0,MWn.u=0,MWn.v=0,MWn.F=0,vX(R3n,"SplineSegment",128),wAn(459,1,{459:1},ka),MWn.a=0,MWn.b=!1,MWn.c=!1,MWn.d=!1,MWn.e=!1,MWn.f=0,vX(R3n,"SplineSegment/EdgeInformation",459),wAn(1234,1,{},da),vX(H3n,iZn,1234),wAn(1235,1,MYn,ga),MWn.ue=function(n,t){return IIn(BB(n,135),BB(t,135))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(H3n,rZn,1235),wAn(1233,1,{},AE),vX(H3n,"MrTree",1233),wAn(393,22,{3:1,35:1,22:1,393:1,246:1,234:1},fC),MWn.Kf=function(){return AIn(this)},MWn.Xf=function(){return AIn(this)};var Hyt,qyt=Ben(H3n,"TreeLayoutPhases",393,Unt,j3,AF);wAn(1130,209,NJn,_R),MWn.Ze=function(n,t){var e,i,r,c,a,u;for(qy(TD(ZAn(n,(CAn(),Ckt))))||jJ(new Tw((GM(),new Dy(n)))),qan(a=new P6,n),hon(a,(qqn(),skt),n),v_n(n,a,u=new xp),W_n(n,a,u),c=a,i=new Wb(r=x_n(this.a,c));i.a<i.c.c.length;)e=BB(n0(i),135),WEn(this.b,e,mcn(t,1/r.c.length));Izn(c=tWn(r))},vX(H3n,"TreeLayoutProvider",1130),wAn(1847,1,pVn,pa),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return SQ(),LT(),bet},vX(H3n,"TreeUtil/1",1847),wAn(1848,1,pVn,va),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return SQ(),LT(),bet},vX(H3n,"TreeUtil/2",1848),wAn(502,134,{3:1,502:1,94:1,134:1}),MWn.g=0,vX(q3n,"TGraphElement",502),wAn(188,502,{3:1,188:1,502:1,94:1,134:1},UQ),MWn.Ib=function(){return this.b&&this.c?g0(this.b)+"->"+g0(this.c):"e_"+nsn(this)},vX(q3n,"TEdge",188),wAn(135,134,{3:1,135:1,94:1,134:1},P6),MWn.Ib=function(){var n,t,e,i,r;for(r=null,i=spn(this.b,0);i.b!=i.d.c;)r+=(null==(e=BB(b3(i),86)).c||0==e.c.length?"n_"+e.g:"n_"+e.c)+"\n";for(t=spn(this.a,0);t.b!=t.d.c;)r+=((n=BB(b3(t),188)).b&&n.c?g0(n.b)+"->"+g0(n.c):"e_"+nsn(n))+"\n";return r};var Gyt=vX(q3n,"TGraph",135);wAn(633,502,{3:1,502:1,633:1,94:1,134:1}),vX(q3n,"TShape",633),wAn(86,633,{3:1,502:1,86:1,633:1,94:1,134:1},csn),MWn.Ib=function(){return g0(this)};var zyt,Uyt,Xyt,Wyt,Vyt,Qyt,Yyt=vX(q3n,"TNode",86);wAn(255,1,pVn,bg),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return new wg(spn(this.a.d,0))},vX(q3n,"TNode/2",255),wAn(358,1,QWn,wg),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return BB(b3(this.a),188).c},MWn.Ob=function(){return EE(this.a)},MWn.Qb=function(){mtn(this.a)},vX(q3n,"TNode/2/1",358),wAn(1840,1,n1n,KR),MWn.pf=function(n,t){xFn(this,BB(n,135),t)},vX(G3n,"FanProcessor",1840),wAn(327,22,{3:1,35:1,22:1,327:1,234:1},lC),MWn.Kf=function(){switch(this.g){case 0:return new Qm;case 1:return new KR;case 2:return new Oa;case 3:return new Ca;case 4:return new $a;case 5:return new La;default:throw Hp(new _y(M1n+(null!=this.f?this.f:""+this.g)))}};var Jyt,Zyt,nkt,tkt,ekt,ikt,rkt,ckt,akt,ukt,okt,skt,hkt,fkt,lkt,bkt,wkt,dkt,gkt,pkt,vkt,mkt,ykt,kkt,jkt,Ekt,Tkt,Mkt,Skt,Pkt,Ckt,Ikt,Okt,Akt,$kt,Lkt,Nkt,xkt,Dkt,Rkt,Kkt,_kt=Ben(G3n,S1n,327,Unt,r9,$F);wAn(1843,1,n1n,Ca),MWn.pf=function(n,t){u$n(this,BB(n,135),t)},MWn.a=0,vX(G3n,"LevelHeightProcessor",1843),wAn(1844,1,pVn,Ia),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return SQ(),LT(),bet},vX(G3n,"LevelHeightProcessor/1",1844),wAn(1841,1,n1n,Oa),MWn.pf=function(n,t){QPn(this,BB(n,135),t)},MWn.a=0,vX(G3n,"NeighborsProcessor",1841),wAn(1842,1,pVn,Aa),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return SQ(),LT(),bet},vX(G3n,"NeighborsProcessor/1",1842),wAn(1845,1,n1n,$a),MWn.pf=function(n,t){a$n(this,BB(n,135),t)},MWn.a=0,vX(G3n,"NodePositionProcessor",1845),wAn(1839,1,n1n,Qm),MWn.pf=function(n,t){ZHn(this,BB(n,135))},vX(G3n,"RootProcessor",1839),wAn(1846,1,n1n,La),MWn.pf=function(n,t){dln(BB(n,135))},vX(G3n,"Untreeifyer",1846),wAn(851,1,QYn,Pf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,X3n),""),"Weighting of Nodes"),"Which weighting to use when computing a node order."),kkt),(PPn(),gMt)),qkt),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,W3n),""),"Search Order"),"Which search order to use when computing a spanning tree."),mkt),gMt),Jkt),nbn(hMt)))),KGn((new Sf,n))},vX(V3n,"MrTreeMetaDataProvider",851),wAn(994,1,QYn,Sf),MWn.Qe=function(n){KGn(n)},vX(V3n,"MrTreeOptions",994),wAn(995,1,{},Na),MWn.$e=function(){return new _R},MWn._e=function(n){},vX(V3n,"MrTreeOptions/MrtreeFactory",995),wAn(480,22,{3:1,35:1,22:1,480:1},bC);var Fkt,Bkt,Hkt,qkt=Ben(V3n,"OrderWeighting",480,Unt,ZY,LF);wAn(425,22,{3:1,35:1,22:1,425:1},wC);var Gkt,zkt,Ukt,Xkt,Wkt,Vkt,Qkt,Ykt,Jkt=Ben(V3n,"TreeifyingOrder",425,Unt,JY,xF);wAn(1459,1,E3n,pf),MWn.Yf=function(n){return BB(n,135),zkt},MWn.pf=function(n,t){ycn(this,BB(n,135),t)},vX("org.eclipse.elk.alg.mrtree.p1treeify","DFSTreeifyer",1459),wAn(1460,1,E3n,vf),MWn.Yf=function(n){return BB(n,135),Ukt},MWn.pf=function(n,t){fCn(this,BB(n,135),t)},vX("org.eclipse.elk.alg.mrtree.p2order","NodeOrderer",1460),wAn(1461,1,E3n,gf),MWn.Yf=function(n){return BB(n,135),Xkt},MWn.pf=function(n,t){nRn(this,BB(n,135),t)},MWn.a=0,vX("org.eclipse.elk.alg.mrtree.p3place","NodePlacer",1461),wAn(1462,1,E3n,mf),MWn.Yf=function(n){return BB(n,135),Wkt},MWn.pf=function(n,t){xkn(BB(n,135),t)},vX("org.eclipse.elk.alg.mrtree.p4route","EdgeRouter",1462),wAn(495,22,{3:1,35:1,22:1,495:1,246:1,234:1},dC),MWn.Kf=function(){return bwn(this)},MWn.Xf=function(){return bwn(this)};var Zkt,njt,tjt,ejt,ijt=Ben(J3n,"RadialLayoutPhases",495,Unt,nJ,NF);wAn(1131,209,NJn,OE),MWn.Ze=function(n,t){var e,i,r;if(OTn(t,"Radial layout",ECn(this,n).c.length),qy(TD(ZAn(n,(Uyn(),Ajt))))||jJ(new Tw((GM(),new Dy(n)))),r=uTn(n),Ypn(n,(wD(),Vkt),r),!r)throw Hp(new _y("The given graph is not a tree!"));for(0==(e=Gy(MD(ZAn(n,Djt))))&&(e=fIn(n)),Ypn(n,Djt,e),i=new Wb(ECn(this,n));i.a<i.c.c.length;)BB(n0(i),51).pf(n,mcn(t,1));HSn(t)},vX(J3n,"RadialLayoutProvider",1131),wAn(549,1,MYn,IE),MWn.ue=function(n,t){return DRn(this.a,this.b,BB(n,33),BB(t,33))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},MWn.a=0,MWn.b=0,vX(J3n,"RadialUtil/lambda$0$Type",549),wAn(1375,1,n1n,Da),MWn.pf=function(n,t){dGn(BB(n,33),t)},vX(t4n,"CalculateGraphSize",1375),wAn(442,22,{3:1,35:1,22:1,442:1,234:1},gC),MWn.Kf=function(){switch(this.g){case 0:return new Ba;case 1:return new xa;case 2:return new Da;default:throw Hp(new _y(M1n+(null!=this.f?this.f:""+this.g)))}};var rjt,cjt,ajt,ujt=Ben(t4n,S1n,442,Unt,R1,DF);wAn(645,1,{}),MWn.e=1,MWn.g=0,vX(e4n,"AbstractRadiusExtensionCompaction",645),wAn(1772,645,{},gD),MWn.hg=function(n){var t,e,i,r,c,a,u,o,s;for(this.c=BB(ZAn(n,(wD(),Vkt)),33),eb(this,this.c),this.d=Evn(BB(ZAn(n,(Uyn(),Rjt)),293)),(o=BB(ZAn(n,Mjt),19))&&tb(this,o.a),ib(this,(kW(u=MD(ZAn(n,(sWn(),LPt)))),u)),s=wDn(this.c),this.d&&this.d.lg(s),vKn(this,s),a=new Jy(Pun(Gk(UOt,1),i4n,33,0,[this.c])),e=0;e<2;e++)for(t=0;t<s.c.length;t++)r=new Jy(Pun(Gk(UOt,1),i4n,33,0,[(l1(t,s.c.length),BB(s.c[t],33))])),c=t<s.c.length-1?(l1(t+1,s.c.length),BB(s.c[t+1],33)):(l1(0,s.c.length),BB(s.c[0],33)),i=0==t?BB(xq(s,s.c.length-1),33):(l1(t-1,s.c.length),BB(s.c[t-1],33)),ZTn(this,(l1(t,s.c.length),BB(s.c[t],33),a),i,c,r)},vX(e4n,"AnnulusWedgeCompaction",1772),wAn(1374,1,n1n,xa),MWn.pf=function(n,t){bjn(BB(n,33),t)},vX(e4n,"GeneralCompactor",1374),wAn(1771,645,{},Ra),MWn.hg=function(n){var t,e,i,r;e=BB(ZAn(n,(wD(),Vkt)),33),this.f=e,this.b=Evn(BB(ZAn(n,(Uyn(),Rjt)),293)),(r=BB(ZAn(n,Mjt),19))&&tb(this,r.a),ib(this,(kW(i=MD(ZAn(n,(sWn(),LPt)))),i)),t=wDn(e),this.b&&this.b.lg(t),vPn(this,t)},MWn.a=0,vX(e4n,"RadialCompaction",1771),wAn(1779,1,{},Ka),MWn.ig=function(n){var t,e,i,r,c,a;for(this.a=n,t=0,i=0,c=new Wb(a=wDn(n));c.a<c.c.c.length;)for(r=BB(n0(c),33),e=++i;e<a.c.length;e++)YFn(this,r,(l1(e,a.c.length),BB(a.c[e],33)))&&(t+=1);return t},vX(r4n,"CrossingMinimizationPosition",1779),wAn(1777,1,{},_a),MWn.ig=function(n){var t,i,r,c,a,u,o,s,f,l,b,w,d;for(r=0,i=new oz(ZL(dLn(n).a.Kc(),new h));dAn(i);)t=BB(U5(i),79),f=(o=PTn(BB(Wtn((!t.c&&(t.c=new hK(KOt,t,5,8)),t.c),0),82))).i+o.g/2,l=o.j+o.f/2,c=n.i+n.g/2,a=n.j+n.f/2,(b=new Gj).a=f-c,b.b=l-a,Ukn(u=new xC(b.a,b.b),n.g,n.f),b.a-=u.a,b.b-=u.b,c=f-b.a,a=l-b.b,Ukn(s=new xC(b.a,b.b),o.g,o.f),b.a-=s.a,b.b-=s.b,w=(f=c+b.a)-c,d=(l=a+b.b)-a,r+=e.Math.sqrt(w*w+d*d);return r},vX(r4n,"EdgeLengthOptimization",1777),wAn(1778,1,{},Fa),MWn.ig=function(n){var t,i,r,c,a,u,o,s,f;for(r=0,i=new oz(ZL(dLn(n).a.Kc(),new h));dAn(i);)t=BB(U5(i),79),u=(a=PTn(BB(Wtn((!t.c&&(t.c=new hK(KOt,t,5,8)),t.c),0),82))).i+a.g/2,o=a.j+a.f/2,c=BB(ZAn(a,(sWn(),gPt)),8),s=u-(n.i+c.a+n.g/2),f=o-(n.j+c.b+n.f),r+=e.Math.sqrt(s*s+f*f);return r},vX(r4n,"EdgeLengthPositionOptimization",1778),wAn(1373,645,n1n,Ba),MWn.pf=function(n,t){fLn(this,BB(n,33),t)},vX("org.eclipse.elk.alg.radial.intermediate.overlaps","RadiusExtensionOverlapRemoval",1373),wAn(426,22,{3:1,35:1,22:1,426:1},pC);var ojt,sjt,hjt,fjt,ljt=Ben(a4n,"AnnulusWedgeCriteria",426,Unt,tJ,RF);wAn(380,22,{3:1,35:1,22:1,380:1},vC);var bjt,wjt,djt,gjt,pjt,vjt,mjt,yjt,kjt,jjt,Ejt,Tjt,Mjt,Sjt,Pjt,Cjt,Ijt,Ojt,Ajt,$jt,Ljt,Njt,xjt,Djt,Rjt,Kjt,_jt,Fjt,Bjt,Hjt,qjt,Gjt=Ben(a4n,FJn,380,Unt,K1,KF);wAn(852,1,QYn,yf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,u4n),""),"Order ID"),"The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."),iln(0)),(PPn(),vMt)),Att),nbn((rpn(),sMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,o4n),""),"Radius"),"The radius option can be used to set the initial radius for the radial layouter."),0),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,s4n),""),"Compaction"),"With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."),gjt),gMt),Gjt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,h4n),""),"Compaction Step Size"),"Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."),iln(1)),vMt),Att),nbn(hMt)))),a2(n,h4n,s4n,null),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,f4n),""),"Sorter"),"Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."),jjt),gMt),Yjt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,l4n),""),"Annulus Wedge Criteria"),"Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."),Tjt),gMt),ljt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,b4n),""),"Translation Optimization"),"Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."),vjt),gMt),Vjt),nbn(hMt)))),tUn((new kf,n))},vX(a4n,"RadialMetaDataProvider",852),wAn(996,1,QYn,kf),MWn.Qe=function(n){tUn(n)},vX(a4n,"RadialOptions",996),wAn(997,1,{},Ha),MWn.$e=function(){return new OE},MWn._e=function(n){},vX(a4n,"RadialOptions/RadialFactory",997),wAn(340,22,{3:1,35:1,22:1,340:1},mC);var zjt,Ujt,Xjt,Wjt,Vjt=Ben(a4n,"RadialTranslationStrategy",340,Unt,E3,_F);wAn(293,22,{3:1,35:1,22:1,293:1},yC);var Qjt,Yjt=Ben(a4n,"SortingStrategy",293,Unt,F1,FF);wAn(1449,1,E3n,qa),MWn.Yf=function(n){return BB(n,33),null},MWn.pf=function(n,t){SLn(this,BB(n,33),t)},MWn.c=0,vX("org.eclipse.elk.alg.radial.p1position","EadesRadial",1449),wAn(1775,1,{},Ga),MWn.jg=function(n){return Upn(n)},vX(d4n,"AnnulusWedgeByLeafs",1775),wAn(1776,1,{},za),MWn.jg=function(n){return VEn(this,n)},vX(d4n,"AnnulusWedgeByNodeSpace",1776),wAn(1450,1,E3n,Ua),MWn.Yf=function(n){return BB(n,33),null},MWn.pf=function(n,t){bEn(this,BB(n,33),t)},vX("org.eclipse.elk.alg.radial.p2routing","StraightLineEdgeRouter",1450),wAn(811,1,{},Jm),MWn.kg=function(n){},MWn.lg=function(n){nv(this,n)},vX(g4n,"IDSorter",811),wAn(1774,1,MYn,Xa),MWn.ue=function(n,t){return Qrn(BB(n,33),BB(t,33))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(g4n,"IDSorter/lambda$0$Type",1774),wAn(1773,1,{},Arn),MWn.kg=function(n){c2(this,n)},MWn.lg=function(n){n.dc()||(this.e||c2(this,nG(BB(n.Xb(0),33))),nv(this.e,n))},vX(g4n,"PolarCoordinateSorter",1773),wAn(1136,209,NJn,Wa),MWn.Ze=function(n,t){var i,r,c,a,u,o,s,h,f,l,b,w,d,g,p,v,m,y,k,j,E,T;if(OTn(t,"Rectangle Packing",1),t.n&&t.n&&n&&y0(t,o2(n),(Bsn(),uOt)),i=Gy(MD(ZAn(n,(W$n(),lEt)))),w=BB(ZAn(n,PEt),381),p=qy(TD(ZAn(n,yEt))),y=qy(TD(ZAn(n,SEt))),f=qy(TD(ZAn(n,gEt))),k=BB(ZAn(n,CEt),116),m=Gy(MD(ZAn(n,$Et))),r=qy(TD(ZAn(n,AEt))),l=qy(TD(ZAn(n,pEt))),g=qy(TD(ZAn(n,vEt))),T=Gy(MD(ZAn(n,LEt))),!n.a&&(n.a=new eU(UOt,n,10,11)),Trn(E=n.a),g){for(b=new Np,o=new AL(E);o.e!=o.i.gc();)P8(a=BB(kpn(o),33),dEt)&&(b.c[b.c.length]=a);for(s=new Wb(b);s.a<s.c.c.length;)snn(E,a=BB(n0(s),33));for(SQ(),m$(b,new Va),h=new Wb(b);h.a<h.c.c.length;)a=BB(n0(h),33),j=BB(ZAn(a,dEt),19).a,sln(E,j=e.Math.min(j,E.i),a);for(d=0,u=new AL(E);u.e!=u.i.gc();)Ypn(a=BB(kpn(u),33),wEt,iln(d)),++d}(v=XPn(n)).a-=k.b+k.c,v.b-=k.d+k.a,v.a,T<0||T<v.a?(c=OKn(new jB(i,w,p),E,m,k),t.n&&t.n&&n&&y0(t,o2(n),(Bsn(),uOt))):c=new eq(i,T,0,(YLn(),_Et)),v.a+=k.b+k.c,v.b+=k.d+k.a,y||(Trn(E),c=kzn(new m3(i,f,l,r,m),E,e.Math.max(v.a,c.c),v,t,n,k)),pan(E,k),KUn(n,c.c+(k.b+k.c),c.b+(k.d+k.a),!1,!0),qy(TD(ZAn(n,MEt)))||jJ(new Tw((GM(),new Dy(n)))),t.n&&t.n&&n&&y0(t,o2(n),(Bsn(),uOt)),HSn(t)},vX(y4n,"RectPackingLayoutProvider",1136),wAn(1137,1,MYn,Va),MWn.ue=function(n,t){return wsn(BB(n,33),BB(t,33))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(y4n,"RectPackingLayoutProvider/lambda$0$Type",1137),wAn(1256,1,{},jB),MWn.a=0,MWn.c=!1,vX(k4n,"AreaApproximation",1256);var Jjt,Zjt,nEt,tEt=bq(k4n,"BestCandidateFilter");wAn(638,1,{526:1},Qa),MWn.mg=function(n,t,i){var r,c,a,u,o,s;for(s=new Np,a=RQn,o=new Wb(n);o.a<o.c.c.length;)u=BB(n0(o),220),a=e.Math.min(a,(u.c+(i.b+i.c))*(u.b+(i.d+i.a)));for(c=new Wb(n);c.a<c.c.c.length;)((r=BB(n0(c),220)).c+(i.b+i.c))*(r.b+(i.d+i.a))==a&&(s.c[s.c.length]=r);return s},vX(k4n,"AreaFilter",638),wAn(639,1,{526:1},Ya),MWn.mg=function(n,t,i){var r,c,a,u,o,s;for(o=new Np,s=RQn,u=new Wb(n);u.a<u.c.c.length;)a=BB(n0(u),220),s=e.Math.min(s,e.Math.abs((a.c+(i.b+i.c))/(a.b+(i.d+i.a))-t));for(c=new Wb(n);c.a<c.c.c.length;)r=BB(n0(c),220),e.Math.abs((r.c+(i.b+i.c))/(r.b+(i.d+i.a))-t)==s&&(o.c[o.c.length]=r);return o},vX(k4n,"AspectRatioFilter",639),wAn(637,1,{526:1},Ja),MWn.mg=function(n,t,i){var r,c,a,u,o,s;for(s=new Np,a=KQn,o=new Wb(n);o.a<o.c.c.length;)u=BB(n0(o),220),a=e.Math.max(a,Yq(u.c+(i.b+i.c),u.b+(i.d+i.a),u.a));for(c=new Wb(n);c.a<c.c.c.length;)Yq((r=BB(n0(c),220)).c+(i.b+i.c),r.b+(i.d+i.a),r.a)==a&&(s.c[s.c.length]=r);return s},vX(k4n,"ScaleMeasureFilter",637),wAn(381,22,{3:1,35:1,22:1,381:1},kC);var eEt,iEt,rEt,cEt,aEt,uEt,oEt,sEt,hEt,fEt,lEt,bEt,wEt,dEt,gEt,pEt,vEt,mEt,yEt,kEt,jEt,EEt,TEt,MEt,SEt,PEt,CEt,IEt,OEt,AEt,$Et,LEt,NEt=Ben(j4n,"OptimizationGoal",381,Unt,_1,BF);wAn(856,1,QYn,Of),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,E4n),""),"Optimization Goal"),"Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."),sEt),(PPn(),gMt)),NEt),nbn((rpn(),sMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,T4n),""),"Shift Last Placed."),"When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."),(hN(),!0)),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,M4n),""),"Current position of a node in the order of nodes"),"The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,S4n),""),"Desired index of node"),"The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."),iln(-1)),vMt),Att),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,P4n),""),"Only Area Approximation"),"If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place."),!1),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,C4n),""),"Compact Rows"),"Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows."),!0),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,I4n),""),"Fit Aspect Ratio"),"Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion."),!1),wMt),ktt),nbn(sMt)))),a2(n,I4n,A4n,null),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,O4n),""),"Target Width"),"Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."),-1),dMt),Ptt),nbn(sMt)))),NXn((new Af,n))},vX(j4n,"RectPackingMetaDataProvider",856),wAn(1004,1,QYn,Af),MWn.Qe=function(n){NXn(n)},vX(j4n,"RectPackingOptions",1004),wAn(1005,1,{},Za),MWn.$e=function(){return new Wa},MWn._e=function(n){},vX(j4n,"RectPackingOptions/RectpackingFactory",1005),wAn(1257,1,{},m3),MWn.a=0,MWn.b=!1,MWn.c=0,MWn.d=0,MWn.e=!1,MWn.f=!1,MWn.g=0,vX("org.eclipse.elk.alg.rectpacking.seconditeration","RowFillingAndCompaction",1257),wAn(187,1,{187:1},asn),MWn.a=0,MWn.c=!1,MWn.d=0,MWn.e=0,MWn.f=0,MWn.g=0,MWn.i=0,MWn.k=!1,MWn.o=RQn,MWn.p=RQn,MWn.r=0,MWn.s=0,MWn.t=0,vX(L4n,"Block",187),wAn(211,1,{211:1},RJ),MWn.a=0,MWn.b=0,MWn.d=0,MWn.e=0,MWn.f=0,vX(L4n,"BlockRow",211),wAn(443,1,{443:1},KJ),MWn.b=0,MWn.c=0,MWn.d=0,MWn.e=0,MWn.f=0,vX(L4n,"BlockStack",443),wAn(220,1,{220:1},eq,awn),MWn.a=0,MWn.b=0,MWn.c=0,MWn.d=0,MWn.e=0;var xEt,DEt,REt,KEt,_Et,FEt=vX(L4n,"DrawingData",220);wAn(355,22,{3:1,35:1,22:1,355:1},jC);var BEt,HEt,qEt,GEt,zEt=Ben(L4n,"DrawingDataDescriptor",355,Unt,N5,HF);wAn(200,1,{200:1},x0),MWn.b=0,MWn.c=0,MWn.e=0,MWn.f=0,vX(L4n,"RectRow",200),wAn(756,1,{},Ehn),MWn.j=0,vX(x4n,g1n,756),wAn(1245,1,{},nu),MWn.Je=function(n){return W8(n.a,n.b)},vX(x4n,p1n,1245),wAn(1246,1,{},dg),MWn.Je=function(n){return p6(this.a,n)},vX(x4n,v1n,1246),wAn(1247,1,{},gg),MWn.Je=function(n){return Opn(this.a,n)},vX(x4n,m1n,1247),wAn(1248,1,{},pg),MWn.Je=function(n){return uon(this.a,n)},vX(x4n,"ElkGraphImporter/lambda$3$Type",1248),wAn(1249,1,{},vg),MWn.Je=function(n){return iOn(this.a,n)},vX(x4n,y1n,1249),wAn(1133,209,NJn,$E),MWn.Ze=function(n,t){var e,i,r,c,a,u,o,s,h,f;for(P8(n,(MMn(),kTt))&&(f=SD(ZAn(n,(Bvn(),qTt))),(c=XRn(cin(),f))&&BB(sJ(c.f),209).Ze(n,mcn(t,1))),Ypn(n,gTt,($6(),ZEt)),Ypn(n,pTt,($Sn(),cTt)),Ypn(n,vTt,(Lun(),WTt)),a=BB(ZAn(n,(Bvn(),_Tt)),19).a,OTn(t,"Overlap removal",1),qy(TD(ZAn(n,KTt))),o=new mg(u=new Rv),e=GXn(i=new Ehn,n),s=!0,r=0;r<a&&s;){if(qy(TD(ZAn(n,FTt)))){if(u.a.$b(),HPn(new I$(o),e.i),0==u.a.gc())break;e.e=u}for(h2(this.b),CU(this.b,(Pbn(),HEt),(OM(),GTt)),CU(this.b,qEt,e.g),CU(this.b,GEt,(IM(),QEt)),this.a=$qn(this.b,e),h=new Wb(this.a);h.a<h.c.c.length;)BB(n0(h),51).pf(e,mcn(t,1));cjn(i,e),s=qy(TD(mMn(e,(Xcn(),Yrt)))),++r}DGn(i,e),HSn(t)},vX(x4n,"OverlapRemovalLayoutProvider",1133),wAn(1134,1,{},mg),vX(x4n,"OverlapRemovalLayoutProvider/lambda$0$Type",1134),wAn(437,22,{3:1,35:1,22:1,437:1},EC);var UEt,XEt,WEt=Ben(x4n,"SPOrEPhases",437,Unt,B1,qF);wAn(1255,1,{},LE),vX(x4n,"ShrinkTree",1255),wAn(1135,209,NJn,Zm),MWn.Ze=function(n,t){var e,i,r,c;P8(n,(MMn(),kTt))&&(c=SD(ZAn(n,kTt)),(r=XRn(cin(),c))&&BB(sJ(r.f),209).Ze(n,mcn(t,1))),e=GXn(i=new Ehn,n),$Ln(this.a,e,mcn(t,1)),DGn(i,e)},vX(x4n,"ShrinkTreeLayoutProvider",1135),wAn(300,134,{3:1,300:1,94:1,134:1},DJ),MWn.c=!1,vX("org.eclipse.elk.alg.spore.graph","Graph",300),wAn(482,22,{3:1,35:1,22:1,482:1,246:1,234:1},LM),MWn.Kf=function(){return esn(this)},MWn.Xf=function(){return esn(this)};var VEt,QEt,YEt=Ben(D4n,FJn,482,Unt,KV,GF);wAn(551,22,{3:1,35:1,22:1,551:1,246:1,234:1},vD),MWn.Kf=function(){return new ru},MWn.Xf=function(){return new ru};var JEt,ZEt,nTt,tTt=Ben(D4n,"OverlapRemovalStrategy",551,Unt,_V,zF);wAn(430,22,{3:1,35:1,22:1,430:1},TC);var eTt,iTt,rTt,cTt,aTt,uTt,oTt=Ben(D4n,"RootSelection",430,Unt,iJ,UF);wAn(316,22,{3:1,35:1,22:1,316:1},MC);var sTt,hTt,fTt,lTt,bTt,wTt,dTt,gTt,pTt,vTt,mTt,yTt,kTt,jTt,ETt,TTt,MTt,STt,PTt,CTt,ITt,OTt,ATt,$Tt,LTt,NTt,xTt,DTt,RTt,KTt,_Tt,FTt,BTt,HTt,qTt,GTt,zTt=Ben(D4n,"SpanningTreeCostFunction",316,Unt,A5,XF);wAn(1002,1,QYn,Ef),MWn.Qe=function(n){yHn(n)},vX(D4n,"SporeCompactionOptions",1002),wAn(1003,1,{},tu),MWn.$e=function(){return new Zm},MWn._e=function(n){},vX(D4n,"SporeCompactionOptions/SporeCompactionFactory",1003),wAn(855,1,QYn,Tf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,K4n),""),"Underlying Layout Algorithm"),"A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."),(PPn(),yMt)),Qtt),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,q4n),"structure"),"Structure Extraction Strategy"),"This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."),DTt),gMt),VTt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,_4n),W4n),"Tree Construction Strategy"),"Whether a minimum spanning tree or a maximum spanning tree should be constructed."),NTt),gMt),YTt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,F4n),W4n),"Cost Function for Spanning Tree"),"The cost function is used in the creation of the spanning tree."),$Tt),gMt),zTt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,B4n),W4n),"Root node for spanning tree construction"),"The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."),null),yMt),Qtt),nbn(hMt)))),a2(n,B4n,H4n,CTt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,H4n),W4n),"Root selection for spanning tree"),"This sets the method used to select a root node for the construction of a spanning tree"),OTt),gMt),oTt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,G4n),E2n),"Compaction Strategy"),"This option defines how the compaction is applied."),ETt),gMt),YEt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,z4n),E2n),"Orthogonal Compaction"),"Restricts the translation of nodes to orthogonal directions in the compaction phase."),(hN(),!1)),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,U4n),V4n),"Upper limit for iterations of overlap removal"),null),iln(64)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,X4n),V4n),"Whether to run a supplementary scanline overlap check."),null),!0),wMt),ktt),nbn(hMt)))),AKn((new Mf,n)),yHn((new Ef,n))},vX(D4n,"SporeMetaDataProvider",855),wAn(VVn,1,QYn,Mf),MWn.Qe=function(n){AKn(n)},vX(D4n,"SporeOverlapRemovalOptions",VVn),wAn(1001,1,{},eu),MWn.$e=function(){return new $E},MWn._e=function(n){},vX(D4n,"SporeOverlapRemovalOptions/SporeOverlapFactory",1001),wAn(530,22,{3:1,35:1,22:1,530:1,246:1,234:1},XW),MWn.Kf=function(){return isn(this)},MWn.Xf=function(){return isn(this)};var UTt,XTt,WTt,VTt=Ben(D4n,"StructureExtractionStrategy",530,Unt,FV,WF);wAn(429,22,{3:1,35:1,22:1,429:1,246:1,234:1},SC),MWn.Kf=function(){return wwn(this)},MWn.Xf=function(){return wwn(this)};var QTt,YTt=Ben(D4n,"TreeConstructionStrategy",429,Unt,eJ,VF);wAn(1443,1,E3n,iu),MWn.Yf=function(n){return BB(n,300),new B2},MWn.pf=function(n,t){Tjn(BB(n,300),t)},vX(Y4n,"DelaunayTriangulationPhase",1443),wAn(1444,1,lVn,yg),MWn.td=function(n){WB(this.a,BB(n,65).a)},vX(Y4n,"DelaunayTriangulationPhase/lambda$0$Type",1444),wAn(783,1,E3n,Vm),MWn.Yf=function(n){return BB(n,300),new B2},MWn.pf=function(n,t){this.ng(BB(n,300),t)},MWn.ng=function(n,t){var e;OTn(t,"Minimum spanning tree construction",1),e=n.d?n.d.a:BB(xq(n.i,0),65).a,Kun(this,(qy(TD(mMn(n,(Xcn(),Qrt)))),YHn(n.e,e,n.b)),n),HSn(t)},vX(J4n,"MinSTPhase",783),wAn(1446,783,E3n,ym),MWn.ng=function(n,t){var e,i;OTn(t,"Maximum spanning tree construction",1),e=new kg(n),i=n.d?n.d.c:BB(xq(n.i,0),65).c,Kun(this,(qy(TD(mMn(n,(Xcn(),Qrt)))),YHn(n.e,i,e)),n),HSn(t)},vX(J4n,"MaxSTPhase",1446),wAn(1447,1,{},kg),MWn.Je=function(n){return IC(this.a,n)},vX(J4n,"MaxSTPhase/lambda$0$Type",1447),wAn(1445,1,lVn,jg),MWn.td=function(n){R$(this.a,BB(n,65))},vX(J4n,"MinSTPhase/lambda$0$Type",1445),wAn(785,1,E3n,ru),MWn.Yf=function(n){return BB(n,300),new B2},MWn.pf=function(n,t){WTn(this,BB(n,300),t)},MWn.a=!1,vX(Z4n,"GrowTreePhase",785),wAn(786,1,lVn,EB),MWn.td=function(n){eun(this.a,this.b,this.c,BB(n,221))},vX(Z4n,"GrowTreePhase/lambda$0$Type",786),wAn(1448,1,E3n,cu),MWn.Yf=function(n){return BB(n,300),new B2},MWn.pf=function(n,t){tmn(this,BB(n,300),t)},vX(Z4n,"ShrinkTreeCompactionPhase",1448),wAn(784,1,lVn,TB),MWn.td=function(n){lAn(this.a,this.b,this.c,BB(n,221))},vX(Z4n,"ShrinkTreeCompactionPhase/lambda$0$Type",784);var JTt,ZTt,nMt=bq(y3n,"IGraphElementVisitor");wAn(860,1,{527:1},R0),MWn.og=function(n){var t;qan(t=hRn(this,n),BB(RX(this.b,n),94)),yLn(this,n,t)},vX(xJn,"LayoutConfigurator",860);var tMt,eMt,iMt,rMt=bq(xJn,"LayoutConfigurator/IPropertyHolderOptionFilter");wAn(932,1,{1933:1},au),MWn.pg=function(n,t){return Nun(),!n.Xe(t)},vX(xJn,"LayoutConfigurator/lambda$0$Type",932),wAn(933,1,{1933:1},uu),MWn.pg=function(n,t){return SE(n,t)},vX(xJn,"LayoutConfigurator/lambda$1$Type",933),wAn(931,1,{831:1},ou),MWn.qg=function(n,t){return Nun(),!n.Xe(t)},vX(xJn,"LayoutConfigurator/lambda$2$Type",931),wAn(934,1,DVn,LC),MWn.Mb=function(n){return YW(this.a,this.b,BB(n,1933))},vX(xJn,"LayoutConfigurator/lambda$3$Type",934),wAn(858,1,{},su),vX(xJn,"RecursiveGraphLayoutEngine",858),wAn(296,60,BVn,kv,rk),vX(xJn,"UnsupportedConfigurationException",296),wAn(453,60,BVn,ck),vX(xJn,"UnsupportedGraphException",453),wAn(754,1,{}),vX(y3n,"AbstractRandomListAccessor",754),wAn(500,754,{},CNn),MWn.rg=function(){return null},MWn.d=!0,MWn.e=!0,MWn.f=0,vX(t5n,"AlgorithmAssembler",500),wAn(1236,1,DVn,hu),MWn.Mb=function(n){return!!BB(n,123)},vX(t5n,"AlgorithmAssembler/lambda$0$Type",1236),wAn(1237,1,{},Eg),MWn.Kb=function(n){return bj(this.a,BB(n,123))},vX(t5n,"AlgorithmAssembler/lambda$1$Type",1237),wAn(1238,1,DVn,fu),MWn.Mb=function(n){return!!BB(n,80)},vX(t5n,"AlgorithmAssembler/lambda$2$Type",1238),wAn(1239,1,lVn,Tg),MWn.td=function(n){Jcn(this.a,BB(n,80))},vX(t5n,"AlgorithmAssembler/lambda$3$Type",1239),wAn(1240,1,lVn,NC),MWn.td=function(n){Dx(this.a,this.b,BB(n,234))},vX(t5n,"AlgorithmAssembler/lambda$4$Type",1240),wAn(1355,1,MYn,lu),MWn.ue=function(n,t){return FQ(BB(n,234),BB(t,234))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(t5n,"EnumBasedFactoryComparator",1355),wAn(80,754,{80:1},B2),MWn.rg=function(){return new Rv},MWn.a=0,vX(t5n,"LayoutProcessorConfiguration",80),wAn(1013,1,{527:1},$f),MWn.og=function(n){nan(eMt,new Mg(n))},vX(zYn,"DeprecatedLayoutOptionReplacer",1013),wAn(1014,1,lVn,bu),MWn.td=function(n){N9(BB(n,160))},vX(zYn,"DeprecatedLayoutOptionReplacer/lambda$0$Type",1014),wAn(1015,1,lVn,wu),MWn.td=function(n){Twn(BB(n,160))},vX(zYn,"DeprecatedLayoutOptionReplacer/lambda$1$Type",1015),wAn(1016,1,{},Mg),MWn.Od=function(n,t){Rx(this.a,BB(n,146),BB(t,38))},vX(zYn,"DeprecatedLayoutOptionReplacer/lambda$2$Type",1016),wAn(149,1,{686:1,149:1},MTn),MWn.Fb=function(n){return j5(this,n)},MWn.sg=function(){return this.b},MWn.tg=function(){return this.c},MWn.ne=function(){return this.e},MWn.Hb=function(){return vvn(this.c)},MWn.Ib=function(){return"Layout Algorithm: "+this.c};var cMt,aMt=vX(zYn,"LayoutAlgorithmData",149);wAn(263,1,{},du),vX(zYn,"LayoutAlgorithmData/Builder",263),wAn(1017,1,{527:1},gu),MWn.og=function(n){cL(n,239)&&!qy(TD(n.We((sWn(),zSt))))&&KFn(BB(n,33))},vX(zYn,"LayoutAlgorithmResolver",1017),wAn(229,1,{686:1,229:1},UZ),MWn.Fb=function(n){return!!cL(n,229)&&mK(this.b,BB(n,229).b)},MWn.sg=function(){return this.a},MWn.tg=function(){return this.b},MWn.ne=function(){return this.d},MWn.Hb=function(){return vvn(this.b)},MWn.Ib=function(){return"Layout Type: "+this.b},vX(zYn,"LayoutCategoryData",229),wAn(344,1,{},pu),vX(zYn,"LayoutCategoryData/Builder",344),wAn(867,1,{},ORn),vX(zYn,"LayoutMetaDataService",867),wAn(868,1,{},UX),vX(zYn,"LayoutMetaDataService/Registry",868),wAn(478,1,{478:1},vu),vX(zYn,"LayoutMetaDataService/Registry/Triple",478),wAn(869,1,e5n,mu),MWn.ug=function(){return new Gj},vX(zYn,"LayoutMetaDataService/lambda$0$Type",869),wAn(870,1,i5n,yu),MWn.vg=function(n){return B$(BB(n,8))},vX(zYn,"LayoutMetaDataService/lambda$1$Type",870),wAn(879,1,e5n,ku),MWn.ug=function(){return new Np},vX(zYn,"LayoutMetaDataService/lambda$10$Type",879),wAn(880,1,i5n,ju),MWn.vg=function(n){return new t_(BB(n,12))},vX(zYn,"LayoutMetaDataService/lambda$11$Type",880),wAn(881,1,e5n,Eu),MWn.ug=function(){return new YT},vX(zYn,"LayoutMetaDataService/lambda$12$Type",881),wAn(882,1,i5n,Tu),MWn.vg=function(n){return zB(BB(n,68))},vX(zYn,"LayoutMetaDataService/lambda$13$Type",882),wAn(883,1,e5n,Mu),MWn.ug=function(){return new Rv},vX(zYn,"LayoutMetaDataService/lambda$14$Type",883),wAn(884,1,i5n,Su),MWn.vg=function(n){return JQ(BB(n,53))},vX(zYn,"LayoutMetaDataService/lambda$15$Type",884),wAn(885,1,e5n,Pu),MWn.ug=function(){return new fA},vX(zYn,"LayoutMetaDataService/lambda$16$Type",885),wAn(886,1,i5n,Cu),MWn.vg=function(n){return S4(BB(n,53))},vX(zYn,"LayoutMetaDataService/lambda$17$Type",886),wAn(887,1,e5n,Iu),MWn.ug=function(){return new zv},vX(zYn,"LayoutMetaDataService/lambda$18$Type",887),wAn(888,1,i5n,Ou),MWn.vg=function(n){return GB(BB(n,208))},vX(zYn,"LayoutMetaDataService/lambda$19$Type",888),wAn(871,1,e5n,Au),MWn.ug=function(){return new km},vX(zYn,"LayoutMetaDataService/lambda$2$Type",871),wAn(872,1,i5n,$u),MWn.vg=function(n){return new Kj(BB(n,74))},vX(zYn,"LayoutMetaDataService/lambda$3$Type",872),wAn(873,1,e5n,Lu),MWn.ug=function(){return new lm},vX(zYn,"LayoutMetaDataService/lambda$4$Type",873),wAn(874,1,i5n,Nu),MWn.vg=function(n){return new A_(BB(n,142))},vX(zYn,"LayoutMetaDataService/lambda$5$Type",874),wAn(875,1,e5n,Du),MWn.ug=function(){return new bm},vX(zYn,"LayoutMetaDataService/lambda$6$Type",875),wAn(876,1,i5n,Ru),MWn.vg=function(n){return new O_(BB(n,116))},vX(zYn,"LayoutMetaDataService/lambda$7$Type",876),wAn(877,1,e5n,Ku),MWn.ug=function(){return new Yu},vX(zYn,"LayoutMetaDataService/lambda$8$Type",877),wAn(878,1,i5n,_u),MWn.vg=function(n){return new rnn(BB(n,373))},vX(zYn,"LayoutMetaDataService/lambda$9$Type",878);var uMt,oMt,sMt,hMt,fMt,lMt=bq(IJn,"IProperty");wAn(23,1,{35:1,686:1,23:1,146:1},bPn),MWn.wd=function(n){return gL(this,BB(n,146))},MWn.Fb=function(n){return cL(n,23)?mK(this.f,BB(n,23).f):cL(n,146)&&mK(this.f,BB(n,146).tg())},MWn.wg=function(){var n;if(cL(this.b,4)){if(null==(n=Jdn(this.b)))throw Hp(new Fy(o5n+this.f+"'. Make sure it's type is registered with the "+(ED(bAt),bAt.k)+c5n));return n}return this.b},MWn.sg=function(){return this.d},MWn.tg=function(){return this.f},MWn.ne=function(){return this.i},MWn.Hb=function(){return vvn(this.f)},MWn.Ib=function(){return"Layout Option: "+this.f},vX(zYn,"LayoutOptionData",23),wAn(24,1,{},Fu),vX(zYn,"LayoutOptionData/Builder",24),wAn(175,22,{3:1,35:1,22:1,175:1},AC);var bMt,wMt,dMt,gMt,pMt,vMt,mMt,yMt,kMt,jMt=Ben(zYn,"LayoutOptionData/Target",175,Unt,O5,QF);wAn(277,22,{3:1,35:1,22:1,277:1},$C);var EMt,TMt,MMt,SMt=Ben(zYn,"LayoutOptionData/Type",277,Unt,_tn,YF);wAn(110,1,{110:1},bA,UV,gY),MWn.Fb=function(n){var t;return!(null==n||!cL(n,110))&&(t=BB(n,110),cV(this.c,t.c)&&cV(this.d,t.d)&&cV(this.b,t.b)&&cV(this.a,t.a))},MWn.Hb=function(){return fhn(Pun(Gk(Ant,1),HWn,1,5,[this.c,this.d,this.b,this.a]))},MWn.Ib=function(){return"Rect[x="+this.c+",y="+this.d+",w="+this.b+",h="+this.a+"]"},MWn.a=0,MWn.b=0,MWn.c=0,MWn.d=0,vX(f1n,"ElkRectangle",110),wAn(8,1,{3:1,4:1,8:1,414:1},Gj,XZ,xC,wA),MWn.Fb=function(n){return nrn(this,n)},MWn.Hb=function(){return VO(this.a)+byn(VO(this.b))},MWn.Jf=function(n){var t,e,i;for(e=0;e<n.length&&xhn((b1(e,n.length),n.charCodeAt(e)),o1n);)++e;for(t=n.length;t>0&&xhn((b1(t-1,n.length),n.charCodeAt(t-1)),s1n);)--t;if(e>=t)throw Hp(new _y("The given string does not contain any numbers."));if(2!=(i=kKn(n.substr(e,t-e),",|;|\r|\n")).length)throw Hp(new _y("Exactly two numbers are expected, "+i.length+" were found."));try{this.a=bSn(RMn(i[0])),this.b=bSn(RMn(i[1]))}catch(r){throw cL(r=lun(r),127)?Hp(new _y(h1n+r)):Hp(r)}},MWn.Ib=function(){return"("+this.a+","+this.b+")"},MWn.a=0,MWn.b=0;var PMt=vX(f1n,"KVector",8);wAn(74,68,{3:1,4:1,20:1,28:1,52:1,14:1,68:1,15:1,74:1,414:1},km,Kj,Ux),MWn.Pc=function(){return Vsn(this)},MWn.Jf=function(n){var t,e,i,r,c;e=kKn(n,",|;|\\(|\\)|\\[|\\]|\\{|\\}| |\t|\n"),yQ(this);try{for(t=0,r=0,i=0,c=0;t<e.length;)null!=e[t]&&RMn(e[t]).length>0&&(r%2==0?i=bSn(e[t]):c=bSn(e[t]),r>0&&r%2!=0&&DH(this,new xC(i,c)),++r),++t}catch(a){throw cL(a=lun(a),127)?Hp(new _y("The given string does not match the expected format for vectors."+a)):Hp(a)}},MWn.Ib=function(){var n,t,e;for(n=new lN("("),t=spn(this,0);t.b!=t.d.c;)oO(n,(e=BB(b3(t),8)).a+","+e.b),t.b!=t.d.c&&(n.a+="; ");return(n.a+=")",n).a};var CMt,IMt,OMt,AMt,$Mt,LMt,NMt=vX(f1n,"KVectorChain",74);wAn(248,22,{3:1,35:1,22:1,248:1},DC);var xMt,DMt,RMt,KMt,_Mt,FMt,BMt,HMt,qMt,GMt,zMt,UMt,XMt,WMt,VMt,QMt,YMt,JMt,ZMt,nSt=Ben(h5n,"Alignment",248,Unt,J8,JF);wAn(979,1,QYn,Lf),MWn.Qe=function(n){G_n(n)},vX(h5n,"BoxLayouterOptions",979),wAn(980,1,{},xu),MWn.$e=function(){return new Gu},MWn._e=function(n){},vX(h5n,"BoxLayouterOptions/BoxFactory",980),wAn(291,22,{3:1,35:1,22:1,291:1},RC);var tSt,eSt,iSt,rSt,cSt,aSt,uSt,oSt,sSt,hSt,fSt,lSt,bSt,wSt,dSt,gSt,pSt,vSt,mSt,ySt,kSt,jSt,ESt,TSt,MSt,SSt,PSt,CSt,ISt,OSt,ASt,$St,LSt,NSt,xSt,DSt,RSt,KSt,_St,FSt,BSt,HSt,qSt,GSt,zSt,USt,XSt,WSt,VSt,QSt,YSt,JSt,ZSt,nPt,tPt,ePt,iPt,rPt,cPt,aPt,uPt,oPt,sPt,hPt,fPt,lPt,bPt,wPt,dPt,gPt,pPt,vPt,mPt,yPt,kPt,jPt,EPt,TPt,MPt,SPt,PPt,CPt,IPt,OPt,APt,$Pt,LPt,NPt,xPt,DPt,RPt,KPt,_Pt,FPt,BPt,HPt,qPt=Ben(h5n,"ContentAlignment",291,Unt,Y8,ZF);wAn(684,1,QYn,Nf),MWn.Qe=function(n){Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,w5n),""),"Layout Algorithm"),"Select a specific layout algorithm."),(PPn(),yMt)),Qtt),nbn((rpn(),hMt))))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,d5n),""),"Resolved Layout Algorithm"),"Meta data associated with the selected algorithm."),mMt),aMt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,W2n),""),"Alignment"),"Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."),rSt),gMt),nSt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,VJn),""),"Aspect Ratio"),"The desired aspect ratio of the drawing, that is the quotient of width by height."),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,g5n),""),"Bend Points"),"A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."),mMt),NMt),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,u3n),""),"Content Alignment"),"Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."),fSt),pMt),qPt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,X2n),""),"Debug Mode"),"Whether additional debug information shall be generated."),(hN(),!1)),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,J2n),""),TJn),"Overall direction of edges: horizontal (right / left) or vertical (down / up)."),wSt),gMt),WPt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,y2n),""),"Edge Routing"),"What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."),mSt),gMt),oCt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,A4n),""),"Expand Nodes"),"If active, nodes are expanded to fill the area of their parent."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,d2n),""),"Hierarchy Handling"),"Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."),TSt),gMt),SCt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,QJn),""),"Padding"),"The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."),WSt),mMt),_ut),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,jZn),""),"Interactive"),"Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,m3n),""),"interactive Layout"),"Whether the graph should be changeable interactively and by setting constraints"),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,MZn),""),"Omit Node Micro Layout"),"Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,EZn),""),"Port Constraints"),"Defines constraints of the position of the ports of a node."),oPt),gMt),aIt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,g3n),""),"Position"),"The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."),mMt),PMt),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[fMt,oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,pZn),""),"Priority"),"Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."),vMt),Att),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[uMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,yZn),""),"Randomization Seed"),"Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,kZn),""),"Separate Connected Components"),"Whether each connected component should be processed separately."),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,o3n),""),"Junction Points"),"This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."),ASt),mMt),NMt),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,f3n),""),"Comment Box"),"Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."),!1),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,l3n),""),"Hypernode"),"Whether the node should be handled as a hypernode."),!1),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,p5n),""),"Label Manager"),"Label managers can shorten labels upon a layout algorithm's request."),mMt),KNt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,p3n),""),"Margins"),"Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."),LSt),mMt),Eut),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,z2n),""),"No Layout"),"No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."),!1),wMt),ktt),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[uMt,fMt,oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,v5n),""),"Scale Factor"),"The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."),1),dMt),Ptt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,m5n),""),"Animate"),"Whether the shift from the old layout to the new computed layout shall be animated."),!0),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,y5n),""),"Animation Time Factor"),"Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."),iln(100)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,k5n),""),"Layout Ancestors"),"Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,j5n),""),"Maximal Animation Time"),"The maximal time for animations, in milliseconds."),iln(4e3)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,E5n),""),"Minimal Animation Time"),"The minimal time for animations, in milliseconds."),iln(400)),vMt),Att),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,T5n),""),"Progress Bar"),"Whether a progress bar shall be displayed during layout computations."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,M5n),""),"Validate Graph"),"Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,S5n),""),"Validate Options"),"Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."),!0),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,P5n),""),"Zoom to Fit"),"Whether the zoom level shall be set to view the whole diagram after layout."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,b5n),"box"),"Box Layout Mode"),"Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."),oSt),gMt),cOt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,L2n),k2n),"Comment Comment Spacing"),"Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."),10),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,N2n),k2n),"Comment Node Spacing"),"Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."),10),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,XJn),k2n),"Components Spacing"),"Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."),20),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,x2n),k2n),"Edge Spacing"),"Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."),10),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,mZn),k2n),"Edge Label Spacing"),"The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."),2),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,D2n),k2n),"Edge Node Spacing"),"Spacing to be preserved between nodes and edges."),10),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,R2n),k2n),"Label Spacing"),"Determines the amount of space to be left between two labels of the same graph element."),0),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,F2n),k2n),"Label Node Spacing"),"Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."),5),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,K2n),k2n),"Horizontal spacing between Label and Port"),"Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,_2n),k2n),"Vertical spacing between Label and Port"),"Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."),1),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,vZn),k2n),"Node Spacing"),"The minimal distance to be preserved between each two nodes."),20),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,B2n),k2n),"Node Self Loop Spacing"),"Spacing to be preserved between a node and its self loops."),10),dMt),Ptt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,H2n),k2n),"Port Spacing"),"Spacing between pairs of ports of the same node."),10),dMt),Ptt),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,q2n),k2n),"Individual Spacing"),"Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."),mMt),hOt),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[uMt,fMt,oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,v3n),k2n),"Additional Port Space"),"Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."),DPt),mMt),Eut),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,d3n),A5n),"Layout Partition"),"Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."),vMt),Att),EG(hMt,Pun(Gk(jMt,1),$Vn,175,0,[sMt]))))),a2(n,d3n,w3n,JSt),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,w3n),A5n),"Layout Partitioning"),"Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."),QSt),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Z2n),$5n),"Node Label Padding"),"Define padding for node labels that are placed inside of a node."),xSt),mMt),_ut),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,CZn),$5n),"Node Label Placement"),"Hints for where node labels are to be placed; if empty, the node label's position is not modified."),RSt),pMt),GCt),EG(sMt,Pun(Gk(jMt,1),$Vn,175,0,[oMt]))))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,e3n),L5n),"Port Alignment"),"Defines the default port distribution for a node. May be overridden for each side individually."),nPt),gMt),JCt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,i3n),L5n),"Port Alignment (North)"),"Defines how ports on the northern side are placed, overriding the node's general port alignment."),gMt),JCt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,r3n),L5n),"Port Alignment (South)"),"Defines how ports on the southern side are placed, overriding the node's general port alignment."),gMt),JCt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,c3n),L5n),"Port Alignment (West)"),"Defines how ports on the western side are placed, overriding the node's general port alignment."),gMt),JCt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,a3n),L5n),"Port Alignment (East)"),"Defines how ports on the eastern side are placed, overriding the node's general port alignment."),gMt),JCt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,PZn),N5n),"Node Size Constraints"),"What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."),_St),pMt),YIt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,SZn),N5n),"Node Size Options"),"Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."),GSt),pMt),iOt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,BZn),N5n),"Node Size Minimum"),"The minimal size to which a node can be reduced."),HSt),mMt),PMt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Y2n),N5n),"Fixed Graph Size"),"By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."),!1),wMt),ktt),nbn(hMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,s3n),A2n),"Edge Label Placement"),"Gives a hint on where to put edge labels."),pSt),gMt),nCt),nbn(oMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,TZn),A2n),"Inline Edge Labels"),"If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."),!1),wMt),ktt),nbn(oMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,C5n),"font"),"Font Name"),"Font name used for a label."),yMt),Qtt),nbn(oMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,I5n),"font"),"Font Size"),"Font size used for a label."),vMt),Att),nbn(oMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,b3n),x5n),"Port Anchor Offset"),"The offset to the port position where connections shall be attached."),mMt),PMt),nbn(fMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,h3n),x5n),"Port Index"),"The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."),vMt),Att),nbn(fMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,U2n),x5n),"Port Side"),"The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."),dPt),gMt),FIt),nbn(fMt)))),Abn(n,new bPn(Oj(Ij(Aj(Ej(Cj(Mj(Sj(new Fu,G2n),x5n),"Port Border Offset"),"The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."),dMt),Ptt),nbn(fMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,IZn),D5n),"Port Label Placement"),"Decides on a placement method for port labels; if empty, the node label's position is not modified."),lPt),pMt),IIt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,n3n),D5n),"Port Labels Next to Port"),"Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."),!1),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,t3n),D5n),"Treat Port Labels as Group"),"If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."),!0),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,V2n),R5n),"Activate Inside Self Loops"),"Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."),!1),wMt),ktt),nbn(sMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,Q2n),R5n),"Inside Self Loop"),"Whether a self loop should be routed inside a node instead of around that node."),!1),wMt),ktt),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,WJn),"edge"),"Edge Thickness"),"The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."),1),dMt),Ptt),nbn(uMt)))),Abn(n,new bPn(Oj(Ij(Aj(Tj(Ej(Cj(Mj(Sj(new Fu,O5n),"edge"),"Edge Type"),"The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."),kSt),gMt),yCt),nbn(uMt)))),xM(n,new UZ(yj(jj(kj(new pu,w1n),"Layered"),'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.'))),xM(n,new UZ(yj(jj(kj(new pu,"org.eclipse.elk.orthogonal"),"Orthogonal"),'Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia \'86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.'))),xM(n,new UZ(yj(jj(kj(new pu,gZn),"Force"),"Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984."))),xM(n,new UZ(yj(jj(kj(new pu,"org.eclipse.elk.circle"),"Circle"),"Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph."))),xM(n,new UZ(yj(jj(kj(new pu,Y3n),"Tree"),"Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type."))),xM(n,new UZ(yj(jj(kj(new pu,"org.eclipse.elk.planar"),"Planar"),"Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable."))),xM(n,new UZ(yj(jj(kj(new pu,w4n),"Radial"),"Radial layout algorithms usually position the nodes of the graph on concentric circles."))),bKn((new xf,n)),G_n((new Lf,n)),RDn((new Df,n))},vX(h5n,"CoreOptions",684),wAn(103,22,{3:1,35:1,22:1,103:1},KC);var GPt,zPt,UPt,XPt,WPt=Ben(h5n,TJn,103,Unt,C5,eB);wAn(272,22,{3:1,35:1,22:1,272:1},_C);var VPt,QPt,YPt,JPt,ZPt,nCt=Ben(h5n,"EdgeLabelPlacement",272,Unt,q1,iB);wAn(218,22,{3:1,35:1,22:1,218:1},FC);var tCt,eCt,iCt,rCt,cCt,aCt,uCt,oCt=Ben(h5n,"EdgeRouting",218,Unt,S3,rB);wAn(312,22,{3:1,35:1,22:1,312:1},BC);var sCt,hCt,fCt,lCt,bCt,wCt,dCt,gCt,pCt,vCt,mCt,yCt=Ben(h5n,"EdgeType",312,Unt,a9,cB);wAn(977,1,QYn,xf),MWn.Qe=function(n){bKn(n)},vX(h5n,"FixedLayouterOptions",977),wAn(978,1,{},Vu),MWn.$e=function(){return new Hu},MWn._e=function(n){},vX(h5n,"FixedLayouterOptions/FixedFactory",978),wAn(334,22,{3:1,35:1,22:1,334:1},HC);var kCt,jCt,ECt,TCt,MCt,SCt=Ben(h5n,"HierarchyHandling",334,Unt,H1,aB);wAn(285,22,{3:1,35:1,22:1,285:1},qC);var PCt,CCt,ICt,OCt,ACt,$Ct,LCt,NCt,xCt,DCt,RCt=Ben(h5n,"LabelSide",285,Unt,M3,uB);wAn(93,22,{3:1,35:1,22:1,93:1},GC);var KCt,_Ct,FCt,BCt,HCt,qCt,GCt=Ben(h5n,"NodeLabelPlacement",93,Unt,ken,oB);wAn(249,22,{3:1,35:1,22:1,249:1},zC);var zCt,UCt,XCt,WCt,VCt,QCt,YCt,JCt=Ben(h5n,"PortAlignment",249,Unt,I5,sB);wAn(98,22,{3:1,35:1,22:1,98:1},UC);var ZCt,nIt,tIt,eIt,iIt,rIt,cIt,aIt=Ben(h5n,"PortConstraints",98,Unt,S8,hB);wAn(273,22,{3:1,35:1,22:1,273:1},XC);var uIt,oIt,sIt,hIt,fIt,lIt,bIt,wIt,dIt,gIt,pIt,vIt,mIt,yIt,kIt,jIt,EIt,TIt,MIt,SIt,PIt,CIt,IIt=Ben(h5n,"PortLabelPlacement",273,Unt,c9,fB);wAn(61,22,{3:1,35:1,22:1,61:1},WC);var OIt,AIt,$It,LIt,NIt,xIt,DIt,RIt,KIt,_It,FIt=Ben(h5n,"PortSide",61,Unt,h5,wB);wAn(981,1,QYn,Df),MWn.Qe=function(n){RDn(n)},vX(h5n,"RandomLayouterOptions",981),wAn(982,1,{},Qu),MWn.$e=function(){return new no},MWn._e=function(n){},vX(h5n,"RandomLayouterOptions/RandomFactory",982),wAn(374,22,{3:1,35:1,22:1,374:1},VC);var BIt,HIt,qIt,GIt,zIt,UIt,XIt,WIt,VIt,QIt,YIt=Ben(h5n,"SizeConstraint",374,Unt,T3,lB);wAn(259,22,{3:1,35:1,22:1,259:1},QC);var JIt,ZIt,nOt,tOt,eOt,iOt=Ben(h5n,"SizeOptions",259,Unt,Ein,bB);wAn(370,1,{1949:1},Xm),MWn.b=!1,MWn.c=0,MWn.d=-1,MWn.e=null,MWn.f=null,MWn.g=-1,MWn.j=!1,MWn.k=!1,MWn.n=!1,MWn.o=0,MWn.q=0,MWn.r=0,vX(y3n,"BasicProgressMonitor",370),wAn(972,209,NJn,Gu),MWn.Ze=function(n,t){var e,i,r,c,a,u,o,s,h;OTn(t,"Box layout",2),r=zy(MD(ZAn(n,(SMn(),XMt)))),c=BB(ZAn(n,GMt),116),e=qy(TD(ZAn(n,_Mt))),i=qy(TD(ZAn(n,FMt))),0===BB(ZAn(n,RMt),311).g?(u=new t_((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a)),SQ(),m$(u,new Sg(i)),a=u,o=XPn(n),(null==(s=MD(ZAn(n,DMt)))||(kW(s),s<=0))&&(s=1.3),KUn(n,(h=HUn(a,r,c,o.a,o.b,e,(kW(s),s))).a,h.b,!1,!0)):kqn(n,r,c,e),HSn(t)},vX(y3n,"BoxLayoutProvider",972),wAn(973,1,MYn,Sg),MWn.ue=function(n,t){return hNn(this,BB(n,33),BB(t,33))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},MWn.a=!1,vX(y3n,"BoxLayoutProvider/1",973),wAn(157,1,{157:1},Gtn,zx),MWn.Ib=function(){return this.c?zRn(this.c):LMn(this.b)},vX(y3n,"BoxLayoutProvider/Group",157),wAn(311,22,{3:1,35:1,22:1,311:1},YC);var rOt,cOt=Ben(y3n,"BoxLayoutProvider/PackingMode",311,Unt,P3,dB);wAn(974,1,MYn,zu),MWn.ue=function(n,t){return DQ(BB(n,157),BB(t,157))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(y3n,"BoxLayoutProvider/lambda$0$Type",974),wAn(975,1,MYn,Uu),MWn.ue=function(n,t){return cQ(BB(n,157),BB(t,157))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(y3n,"BoxLayoutProvider/lambda$1$Type",975),wAn(976,1,MYn,Xu),MWn.ue=function(n,t){return aQ(BB(n,157),BB(t,157))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(y3n,"BoxLayoutProvider/lambda$2$Type",976),wAn(1365,1,{831:1},Wu),MWn.qg=function(n,t){return AM(),!cL(t,160)||SE((Nun(),BB(n,160)),t)},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type",1365),wAn(1366,1,lVn,Pg),MWn.td=function(n){Jsn(this.a,BB(n,146))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type",1366),wAn(1367,1,lVn,qu),MWn.td=function(n){BB(n,94),AM()},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type",1367),wAn(1371,1,lVn,Cg),MWn.td=function(n){Orn(this.a,BB(n,94))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type",1371),wAn(1369,1,DVn,JC),MWn.Mb=function(n){return Von(this.a,this.b,BB(n,146))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type",1369),wAn(1368,1,DVn,ZC),MWn.Mb=function(n){return $x(this.a,this.b,BB(n,831))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type",1368),wAn(1370,1,lVn,nI),MWn.td=function(n){Fz(this.a,this.b,BB(n,146))},vX(y3n,"ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type",1370),wAn(935,1,{},Bu),MWn.Kb=function(n){return yA(n)},MWn.Fb=function(n){return this===n},vX(y3n,"ElkUtil/lambda$0$Type",935),wAn(936,1,lVn,tI),MWn.td=function(n){rOn(this.a,this.b,BB(n,79))},MWn.a=0,MWn.b=0,vX(y3n,"ElkUtil/lambda$1$Type",936),wAn(937,1,lVn,eI),MWn.td=function(n){Ey(this.a,this.b,BB(n,202))},MWn.a=0,MWn.b=0,vX(y3n,"ElkUtil/lambda$2$Type",937),wAn(938,1,lVn,iI),MWn.td=function(n){t$(this.a,this.b,BB(n,137))},MWn.a=0,MWn.b=0,vX(y3n,"ElkUtil/lambda$3$Type",938),wAn(939,1,lVn,Ig),MWn.td=function(n){cq(this.a,BB(n,469))},vX(y3n,"ElkUtil/lambda$4$Type",939),wAn(342,1,{35:1,342:1},$p),MWn.wd=function(n){return vL(this,BB(n,236))},MWn.Fb=function(n){var t;return!!cL(n,342)&&(t=BB(n,342),this.a==t.a)},MWn.Hb=function(){return CJ(this.a)},MWn.Ib=function(){return this.a+" (exclusive)"},MWn.a=0,vX(y3n,"ExclusiveBounds/ExclusiveLowerBound",342),wAn(1138,209,NJn,Hu),MWn.Ze=function(n,t){var i,r,c,a,u,o,s,f,l,b,w,d,g,p,v,m,y,k,j,E,T;for(OTn(t,"Fixed Layout",1),a=BB(ZAn(n,(sWn(),vSt)),218),b=0,w=0,v=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));v.e!=v.i.gc();){for(g=BB(kpn(v),33),(T=BB(ZAn(g,(Xsn(),gCt)),8))&&(SA(g,T.a,T.b),BB(ZAn(g,fCt),174).Hc((mdn(),DIt))&&(d=BB(ZAn(g,bCt),8)).a>0&&d.b>0&&KUn(g,d.a,d.b,!0,!0)),b=e.Math.max(b,g.i+g.g),w=e.Math.max(w,g.j+g.f),f=new AL((!g.n&&(g.n=new eU(zOt,g,1,7)),g.n));f.e!=f.i.gc();)o=BB(kpn(f),137),(T=BB(ZAn(o,gCt),8))&&SA(o,T.a,T.b),b=e.Math.max(b,g.i+o.i+o.g),w=e.Math.max(w,g.j+o.j+o.f);for(k=new AL((!g.c&&(g.c=new eU(XOt,g,9,9)),g.c));k.e!=k.i.gc();)for(y=BB(kpn(k),118),(T=BB(ZAn(y,gCt),8))&&SA(y,T.a,T.b),j=g.i+y.i,E=g.j+y.j,b=e.Math.max(b,j+y.g),w=e.Math.max(w,E+y.f),s=new AL((!y.n&&(y.n=new eU(zOt,y,1,7)),y.n));s.e!=s.i.gc();)o=BB(kpn(s),137),(T=BB(ZAn(o,gCt),8))&&SA(o,T.a,T.b),b=e.Math.max(b,j+o.i+o.g),w=e.Math.max(w,E+o.j+o.f);for(c=new oz(ZL(dLn(g).a.Kc(),new h));dAn(c);)l=_Un(i=BB(U5(c),79)),b=e.Math.max(b,l.a),w=e.Math.max(w,l.b);for(r=new oz(ZL(wLn(g).a.Kc(),new h));dAn(r);)JJ(PMn(i=BB(U5(r),79)))!=n&&(l=_Un(i),b=e.Math.max(b,l.a),w=e.Math.max(w,l.b))}if(a==(Mbn(),QPt))for(p=new AL((!n.a&&(n.a=new eU(UOt,n,10,11)),n.a));p.e!=p.i.gc();)for(r=new oz(ZL(dLn(g=BB(kpn(p),33)).a.Kc(),new h));dAn(r);)0==(u=rFn(i=BB(U5(r),79))).b?Ypn(i,OSt,null):Ypn(i,OSt,u);qy(TD(ZAn(n,(Xsn(),lCt))))||KUn(n,b+(m=BB(ZAn(n,wCt),116)).b+m.c,w+m.d+m.a,!0,!0),HSn(t)},vX(y3n,"FixedLayoutProvider",1138),wAn(373,134,{3:1,414:1,373:1,94:1,134:1},Yu,rnn),MWn.Jf=function(n){var t,e,i,r,c,a,u;if(n)try{for(a=kKn(n,";,;"),r=0,c=(i=a).length;r<c;++r){if(t=kKn(i[r],"\\:"),!(e=pGn(cin(),t[0])))throw Hp(new _y("Invalid option id: "+t[0]));if(null==(u=Zqn(e,t[1])))throw Hp(new _y("Invalid option value: "+t[1]));null==u?(!this.q&&(this.q=new xp),v6(this.q,e)):(!this.q&&(this.q=new xp),VW(this.q,e,u))}}catch(o){throw cL(o=lun(o),102)?Hp(new Fsn(o)):Hp(o)}},MWn.Ib=function(){return SD(P4($V((this.q?this.q:(SQ(),SQ(),het)).vc().Oc(),new Ju),x7(new YB,new Z,new W,new V,Pun(Gk(nit,1),$Vn,132,0,[]))))};var aOt,uOt,oOt,sOt,hOt=vX(y3n,"IndividualSpacings",373);wAn(971,1,{},Ju),MWn.Kb=function(n){return RQ(BB(n,42))},vX(y3n,"IndividualSpacings/lambda$0$Type",971),wAn(709,1,{},sG),MWn.c=0,vX(y3n,"InstancePool",709),wAn(1275,1,{},Zu),vX(y3n,"LoggedGraph",1275),wAn(396,22,{3:1,35:1,22:1,396:1},cI);var fOt,lOt,bOt,wOt=Ben(y3n,"LoggedGraph/Type",396,Unt,C3,gB);wAn(46,1,{20:1,46:1},rI),MWn.Jc=function(n){e5(this,n)},MWn.Fb=function(n){var t,e,i;return!!cL(n,46)&&(e=BB(n,46),t=null==this.a?null==e.a:Nfn(this.a,e.a),i=null==this.b?null==e.b:Nfn(this.b,e.b),t&&i)},MWn.Hb=function(){var n,t,e;return n=-65536&(t=null==this.a?0:nsn(this.a)),t&QVn^(-65536&(e=null==this.b?0:nsn(this.b)))>>16&QVn|n^(e&QVn)<<16},MWn.Kc=function(){return new Og(this)},MWn.Ib=function(){return null==this.a&&null==this.b?"pair(null,null)":null==this.a?"pair(null,"+Bbn(this.b)+")":null==this.b?"pair("+Bbn(this.a)+",null)":"pair("+Bbn(this.a)+","+Bbn(this.b)+")"},vX(y3n,"Pair",46),wAn(983,1,QWn,Og),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return!this.c&&(!this.b&&null!=this.a.a||null!=this.a.b)},MWn.Pb=function(){if(!this.c&&!this.b&&null!=this.a.a)return this.b=!0,this.a.a;if(!this.c&&null!=this.a.b)return this.c=!0,this.a.b;throw Hp(new yv)},MWn.Qb=function(){throw this.c&&null!=this.a.b?this.a.b=null:this.b&&null!=this.a.a&&(this.a.a=null),Hp(new dv)},MWn.b=!1,MWn.c=!1,vX(y3n,"Pair/1",983),wAn(448,1,{448:1},VV),MWn.Fb=function(n){return cV(this.a,BB(n,448).a)&&cV(this.c,BB(n,448).c)&&cV(this.d,BB(n,448).d)&&cV(this.b,BB(n,448).b)},MWn.Hb=function(){return fhn(Pun(Gk(Ant,1),HWn,1,5,[this.a,this.c,this.d,this.b]))},MWn.Ib=function(){return"("+this.a+FWn+this.c+FWn+this.d+FWn+this.b+")"},vX(y3n,"Quadruple",448),wAn(1126,209,NJn,no),MWn.Ze=function(n,t){var e;OTn(t,"Random Layout",1),0!=(!n.a&&(n.a=new eU(UOt,n,10,11)),n.a).i?(iUn(n,(e=BB(ZAn(n,(vdn(),NIt)),19))&&0!=e.a?new C4(e.a):new sbn,zy(MD(ZAn(n,AIt))),zy(MD(ZAn(n,xIt))),BB(ZAn(n,$It),116)),HSn(t)):HSn(t)},vX(y3n,"RandomLayoutProvider",1126),wAn(553,1,{}),MWn.qf=function(){return new xC(this.f.i,this.f.j)},MWn.We=function(n){return EY(n,(sWn(),aPt))?ZAn(this.f,bOt):ZAn(this.f,n)},MWn.rf=function(){return new xC(this.f.g,this.f.f)},MWn.sf=function(){return this.g},MWn.Xe=function(n){return P8(this.f,n)},MWn.tf=function(n){Pen(this.f,n.a),Cen(this.f,n.b)},MWn.uf=function(n){Sen(this.f,n.a),Men(this.f,n.b)},MWn.vf=function(n){this.g=n},MWn.g=0,vX(H5n,"ElkGraphAdapters/AbstractElkGraphElementAdapter",553),wAn(554,1,{839:1},Ag),MWn.wf=function(){var n,t;if(!this.b)for(this.b=C2(mV(this.a).i),t=new AL(mV(this.a));t.e!=t.i.gc();)n=BB(kpn(t),137),WB(this.b,new Ry(n));return this.b},MWn.b=null,vX(H5n,"ElkGraphAdapters/ElkEdgeAdapter",554),wAn(301,553,{},Dy),MWn.xf=function(){return eyn(this)},MWn.a=null,vX(H5n,"ElkGraphAdapters/ElkGraphAdapter",301),wAn(630,553,{181:1},Ry),vX(H5n,"ElkGraphAdapters/ElkLabelAdapter",630),wAn(629,553,{680:1},JN),MWn.wf=function(){return nyn(this)},MWn.Af=function(){var n;return!(n=BB(ZAn(this.f,(sWn(),$St)),142))&&(n=new lm),n},MWn.Cf=function(){return tyn(this)},MWn.Ef=function(n){var t;t=new A_(n),Ypn(this.f,(sWn(),$St),t)},MWn.Ff=function(n){Ypn(this.f,(sWn(),XSt),new O_(n))},MWn.yf=function(){return this.d},MWn.zf=function(){var n,t;if(!this.a)for(this.a=new Np,t=new oz(ZL(wLn(BB(this.f,33)).a.Kc(),new h));dAn(t);)n=BB(U5(t),79),WB(this.a,new Ag(n));return this.a},MWn.Bf=function(){var n,t;if(!this.c)for(this.c=new Np,t=new oz(ZL(dLn(BB(this.f,33)).a.Kc(),new h));dAn(t);)n=BB(U5(t),79),WB(this.c,new Ag(n));return this.c},MWn.Df=function(){return 0!=YQ(BB(this.f,33)).i||qy(TD(BB(this.f,33).We((sWn(),SSt))))},MWn.Gf=function(){_7(this,(GM(),lOt))},MWn.a=null,MWn.b=null,MWn.c=null,MWn.d=null,MWn.e=null,vX(H5n,"ElkGraphAdapters/ElkNodeAdapter",629),wAn(1266,553,{838:1},op),MWn.wf=function(){return kyn(this)},MWn.zf=function(){var n,t;if(!this.a)for(this.a=sx(BB(this.f,118).xg().i),t=new AL(BB(this.f,118).xg());t.e!=t.i.gc();)n=BB(kpn(t),79),WB(this.a,new Ag(n));return this.a},MWn.Bf=function(){var n,t;if(!this.c)for(this.c=sx(BB(this.f,118).yg().i),t=new AL(BB(this.f,118).yg());t.e!=t.i.gc();)n=BB(kpn(t),79),WB(this.c,new Ag(n));return this.c},MWn.Hf=function(){return BB(BB(this.f,118).We((sWn(),wPt)),61)},MWn.If=function(){var n,t,e,i,r,c,a;for(i=WJ(BB(this.f,118)),e=new AL(BB(this.f,118).yg());e.e!=e.i.gc();)for(a=new AL((!(n=BB(kpn(e),79)).c&&(n.c=new hK(KOt,n,5,8)),n.c));a.e!=a.i.gc();){if(Ctn(PTn(c=BB(kpn(a),82)),i))return!0;if(PTn(c)==i&&qy(TD(ZAn(n,(sWn(),PSt)))))return!0}for(t=new AL(BB(this.f,118).xg());t.e!=t.i.gc();)for(r=new AL((!(n=BB(kpn(t),79)).b&&(n.b=new hK(KOt,n,4,7)),n.b));r.e!=r.i.gc();)if(Ctn(PTn(BB(kpn(r),82)),i))return!0;return!1},MWn.a=null,MWn.b=null,MWn.c=null,vX(H5n,"ElkGraphAdapters/ElkPortAdapter",1266),wAn(1267,1,MYn,to),MWn.ue=function(n,t){return GRn(BB(n,118),BB(t,118))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(H5n,"ElkGraphAdapters/PortComparator",1267);var dOt,gOt,pOt,vOt,mOt,yOt,kOt,jOt,EOt,TOt,MOt,SOt,POt,COt,IOt,OOt,AOt,$Ot,LOt=bq(q5n,"EObject"),NOt=bq(G5n,z5n),xOt=bq(G5n,U5n),DOt=bq(G5n,X5n),ROt=bq(G5n,"ElkShape"),KOt=bq(G5n,W5n),_Ot=bq(G5n,V5n),FOt=bq(G5n,Q5n),BOt=bq(q5n,Y5n),HOt=bq(q5n,"EFactory"),qOt=bq(q5n,J5n),GOt=bq(q5n,"EPackage"),zOt=bq(G5n,Z5n),UOt=bq(G5n,n6n),XOt=bq(G5n,t6n);wAn(90,1,e6n),MWn.Jg=function(){return this.Kg(),null},MWn.Kg=function(){return null},MWn.Lg=function(){return this.Kg(),!1},MWn.Mg=function(){return!1},MWn.Ng=function(n){ban(this,n)},vX(i6n,"BasicNotifierImpl",90),wAn(97,90,f6n),MWn.nh=function(){return mA(this)},MWn.Og=function(n,t){return n},MWn.Pg=function(){throw Hp(new pv)},MWn.Qg=function(n){var t;return t=Cvn(BB(itn(this.Tg(),this.Vg()),18)),this.eh().ih(this,t.n,t.f,n)},MWn.Rg=function(n,t){throw Hp(new pv)},MWn.Sg=function(n,t,e){return T_n(this,n,t,e)},MWn.Tg=function(){var n;return this.Pg()&&(n=this.Pg().ck())?n:this.zh()},MWn.Ug=function(){return cAn(this)},MWn.Vg=function(){throw Hp(new pv)},MWn.Wg=function(){var n,t;return!(t=this.ph().dk())&&this.Pg().ik((QM(),t=null==(n=lJ(qFn(this.Tg())))?N$t:new QN(this,n))),t},MWn.Xg=function(n,t){return n},MWn.Yg=function(n){return n.Gj()?n.aj():Awn(this.Tg(),n)},MWn.Zg=function(){var n;return(n=this.Pg())?n.fk():null},MWn.$g=function(){return this.Pg()?this.Pg().ck():null},MWn._g=function(n,t,e){return Zpn(this,n,t,e)},MWn.ah=function(n){return S9(this,n)},MWn.bh=function(n,t){return V5(this,n,t)},MWn.dh=function(){var n;return!!(n=this.Pg())&&n.gk()},MWn.eh=function(){throw Hp(new pv)},MWn.fh=function(){return Ydn(this)},MWn.gh=function(n,t,e,i){return Npn(this,n,t,i)},MWn.hh=function(n,t,e){return BB(itn(this.Tg(),t),66).Nj().Qj(this,this.yh(),t-this.Ah(),n,e)},MWn.ih=function(n,t,e,i){return oJ(this,n,t,i)},MWn.jh=function(n,t,e){return BB(itn(this.Tg(),t),66).Nj().Rj(this,this.yh(),t-this.Ah(),n,e)},MWn.kh=function(){return!!this.Pg()&&!!this.Pg().ek()},MWn.lh=function(n){return vpn(this,n)},MWn.mh=function(n){return ZJ(this,n)},MWn.oh=function(n){return _qn(this,n)},MWn.ph=function(){throw Hp(new pv)},MWn.qh=function(){return this.Pg()?this.Pg().ek():null},MWn.rh=function(){return Ydn(this)},MWn.sh=function(n,t){yCn(this,n,t)},MWn.th=function(n){this.ph().hk(n)},MWn.uh=function(n){this.ph().kk(n)},MWn.vh=function(n){this.ph().jk(n)},MWn.wh=function(n,t){var e,i,r,c;return(c=this.Zg())&&n&&(t=_pn(c.Vk(),this,t),c.Zk(this)),(i=this.eh())&&(0!=(gKn(this,this.eh(),this.Vg()).Bb&BQn)?(r=i.fh())&&(n?!c&&r.Zk(this):r.Yk(this)):(t=(e=this.Vg())>=0?this.Qg(t):this.eh().ih(this,-1-e,null,t),t=this.Sg(null,-1,t))),this.uh(n),t},MWn.xh=function(n){var t,e,i,r,c,a,u;if((c=Awn(e=this.Tg(),n))>=(t=this.Ah()))return BB(n,66).Nj().Uj(this,this.yh(),c-t);if(c<=-1){if(!(a=Fqn((IPn(),Z$t),e,n)))throw Hp(new _y(r6n+n.ne()+u6n));if(ZM(),BB(a,66).Oj()||(a=Z1(B7(Z$t,a))),r=BB((i=this.Yg(a))>=0?this._g(i,!0,!0):cOn(this,a,!0),153),(u=a.Zj())>1||-1==u)return BB(BB(r,215).hl(n,!1),76)}else if(n.$j())return BB((i=this.Yg(n))>=0?this._g(i,!1,!0):cOn(this,n,!1),76);return new II(this,n)},MWn.yh=function(){return Q7(this)},MWn.zh=function(){return(QX(),t$t).S},MWn.Ah=function(){return bX(this.zh())},MWn.Bh=function(n){mPn(this,n)},MWn.Ib=function(){return P$n(this)},vX(l6n,"BasicEObjectImpl",97),wAn(114,97,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1}),MWn.Ch=function(n){return Y7(this)[n]},MWn.Dh=function(n,t){$X(Y7(this),n,t)},MWn.Eh=function(n){$X(Y7(this),n,null)},MWn.Jg=function(){return BB(yan(this,4),126)},MWn.Kg=function(){throw Hp(new pv)},MWn.Lg=function(){return 0!=(4&this.Db)},MWn.Pg=function(){throw Hp(new pv)},MWn.Fh=function(n){hgn(this,2,n)},MWn.Rg=function(n,t){this.Db=t<<16|255&this.Db,this.Fh(n)},MWn.Tg=function(){return jY(this)},MWn.Vg=function(){return this.Db>>16},MWn.Wg=function(){var n;return QM(),null==(n=lJ(qFn(BB(yan(this,16),26)||this.zh())))?N$t:new QN(this,n)},MWn.Mg=function(){return 0==(1&this.Db)},MWn.Zg=function(){return BB(yan(this,128),1935)},MWn.$g=function(){return BB(yan(this,16),26)},MWn.dh=function(){return 0!=(32&this.Db)},MWn.eh=function(){return BB(yan(this,2),49)},MWn.kh=function(){return 0!=(64&this.Db)},MWn.ph=function(){throw Hp(new pv)},MWn.qh=function(){return BB(yan(this,64),281)},MWn.th=function(n){hgn(this,16,n)},MWn.uh=function(n){hgn(this,128,n)},MWn.vh=function(n){hgn(this,64,n)},MWn.yh=function(){return fgn(this)},MWn.Db=0,vX(l6n,"MinimalEObjectImpl",114),wAn(115,114,{105:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),MWn.Fh=function(n){this.Cb=n},MWn.eh=function(){return this.Cb},vX(l6n,"MinimalEObjectImpl/Container",115),wAn(1985,115,{105:1,413:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),MWn._g=function(n,t,e){return Eyn(this,n,t,e)},MWn.jh=function(n,t,e){return eSn(this,n,t,e)},MWn.lh=function(n){return m0(this,n)},MWn.sh=function(n,t){rsn(this,n,t)},MWn.zh=function(){return CXn(),POt},MWn.Bh=function(n){zun(this,n)},MWn.Ve=function(){return lpn(this)},MWn.We=function(n){return ZAn(this,n)},MWn.Xe=function(n){return P8(this,n)},MWn.Ye=function(n,t){return Ypn(this,n,t)},vX(b6n,"EMapPropertyHolderImpl",1985),wAn(567,115,{105:1,469:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},ro),MWn._g=function(n,t,e){switch(n){case 0:return this.a;case 1:return this.b}return Zpn(this,n,t,e)},MWn.lh=function(n){switch(n){case 0:return 0!=this.a;case 1:return 0!=this.b}return vpn(this,n)},MWn.sh=function(n,t){switch(n){case 0:return void jen(this,Gy(MD(t)));case 1:return void Een(this,Gy(MD(t)))}yCn(this,n,t)},MWn.zh=function(){return CXn(),pOt},MWn.Bh=function(n){switch(n){case 0:return void jen(this,0);case 1:return void Een(this,0)}mPn(this,n)},MWn.Ib=function(){var n;return 0!=(64&this.Db)?P$n(this):((n=new fN(P$n(this))).a+=" (x: ",vE(n,this.a),n.a+=", y: ",vE(n,this.b),n.a+=")",n.a)},MWn.a=0,MWn.b=0,vX(b6n,"ElkBendPointImpl",567),wAn(723,1985,{105:1,413:1,160:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),MWn._g=function(n,t,e){return _fn(this,n,t,e)},MWn.hh=function(n,t,e){return FTn(this,n,t,e)},MWn.jh=function(n,t,e){return run(this,n,t,e)},MWn.lh=function(n){return Ean(this,n)},MWn.sh=function(n,t){Gjn(this,n,t)},MWn.zh=function(){return CXn(),kOt},MWn.Bh=function(n){ofn(this,n)},MWn.zg=function(){return this.k},MWn.Ag=function(){return mV(this)},MWn.Ib=function(){return Yln(this)},MWn.k=null,vX(b6n,"ElkGraphElementImpl",723),wAn(724,723,{105:1,413:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),MWn._g=function(n,t,e){return Rbn(this,n,t,e)},MWn.lh=function(n){return fwn(this,n)},MWn.sh=function(n,t){zjn(this,n,t)},MWn.zh=function(){return CXn(),SOt},MWn.Bh=function(n){Dwn(this,n)},MWn.Bg=function(){return this.f},MWn.Cg=function(){return this.g},MWn.Dg=function(){return this.i},MWn.Eg=function(){return this.j},MWn.Fg=function(n,t){MA(this,n,t)},MWn.Gg=function(n,t){SA(this,n,t)},MWn.Hg=function(n){Pen(this,n)},MWn.Ig=function(n){Cen(this,n)},MWn.Ib=function(){return mSn(this)},MWn.f=0,MWn.g=0,MWn.i=0,MWn.j=0,vX(b6n,"ElkShapeImpl",724),wAn(725,724,{105:1,413:1,82:1,160:1,470:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1}),MWn._g=function(n,t,e){return Hvn(this,n,t,e)},MWn.hh=function(n,t,e){return djn(this,n,t,e)},MWn.jh=function(n,t,e){return gjn(this,n,t,e)},MWn.lh=function(n){return Gon(this,n)},MWn.sh=function(n,t){LAn(this,n,t)},MWn.zh=function(){return CXn(),vOt},MWn.Bh=function(n){xpn(this,n)},MWn.xg=function(){return!this.d&&(this.d=new hK(_Ot,this,8,5)),this.d},MWn.yg=function(){return!this.e&&(this.e=new hK(_Ot,this,7,4)),this.e},vX(b6n,"ElkConnectableShapeImpl",725),wAn(352,723,{105:1,413:1,79:1,160:1,352:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},io),MWn.Qg=function(n){return Mkn(this,n)},MWn._g=function(n,t,e){switch(n){case 3:return XJ(this);case 4:return!this.b&&(this.b=new hK(KOt,this,4,7)),this.b;case 5:return!this.c&&(this.c=new hK(KOt,this,5,8)),this.c;case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),this.a;case 7:return hN(),!this.b&&(this.b=new hK(KOt,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new hK(KOt,this,5,8)),this.c.i<=1));case 8:return hN(),!!nAn(this);case 9:return hN(),!!QIn(this);case 10:return hN(),!this.b&&(this.b=new hK(KOt,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new hK(KOt,this,5,8)),0!=this.c.i)}return _fn(this,n,t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 3:return this.Cb&&(e=(i=this.Db>>16)>=0?Mkn(this,e):this.Cb.ih(this,-1-i,null,e)),VD(this,BB(n,33),e);case 4:return!this.b&&(this.b=new hK(KOt,this,4,7)),Ywn(this.b,n,e);case 5:return!this.c&&(this.c=new hK(KOt,this,5,8)),Ywn(this.c,n,e);case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),Ywn(this.a,n,e)}return FTn(this,n,t,e)},MWn.jh=function(n,t,e){switch(t){case 3:return VD(this,null,e);case 4:return!this.b&&(this.b=new hK(KOt,this,4,7)),_pn(this.b,n,e);case 5:return!this.c&&(this.c=new hK(KOt,this,5,8)),_pn(this.c,n,e);case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),_pn(this.a,n,e)}return run(this,n,t,e)},MWn.lh=function(n){switch(n){case 3:return!!XJ(this);case 4:return!!this.b&&0!=this.b.i;case 5:return!!this.c&&0!=this.c.i;case 6:return!!this.a&&0!=this.a.i;case 7:return!this.b&&(this.b=new hK(KOt,this,4,7)),!(this.b.i<=1&&(!this.c&&(this.c=new hK(KOt,this,5,8)),this.c.i<=1));case 8:return nAn(this);case 9:return QIn(this);case 10:return!this.b&&(this.b=new hK(KOt,this,4,7)),0!=this.b.i&&(!this.c&&(this.c=new hK(KOt,this,5,8)),0!=this.c.i)}return Ean(this,n)},MWn.sh=function(n,t){switch(n){case 3:return void HLn(this,BB(t,33));case 4:return!this.b&&(this.b=new hK(KOt,this,4,7)),sqn(this.b),!this.b&&(this.b=new hK(KOt,this,4,7)),void pX(this.b,BB(t,14));case 5:return!this.c&&(this.c=new hK(KOt,this,5,8)),sqn(this.c),!this.c&&(this.c=new hK(KOt,this,5,8)),void pX(this.c,BB(t,14));case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),sqn(this.a),!this.a&&(this.a=new eU(FOt,this,6,6)),void pX(this.a,BB(t,14))}Gjn(this,n,t)},MWn.zh=function(){return CXn(),mOt},MWn.Bh=function(n){switch(n){case 3:return void HLn(this,null);case 4:return!this.b&&(this.b=new hK(KOt,this,4,7)),void sqn(this.b);case 5:return!this.c&&(this.c=new hK(KOt,this,5,8)),void sqn(this.c);case 6:return!this.a&&(this.a=new eU(FOt,this,6,6)),void sqn(this.a)}ofn(this,n)},MWn.Ib=function(){return lHn(this)},vX(b6n,"ElkEdgeImpl",352),wAn(439,1985,{105:1,413:1,202:1,439:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},co),MWn.Qg=function(n){return skn(this,n)},MWn._g=function(n,t,e){switch(n){case 1:return this.j;case 2:return this.k;case 3:return this.b;case 4:return this.c;case 5:return!this.a&&(this.a=new $L(xOt,this,5)),this.a;case 6:return VJ(this);case 7:return t?Pvn(this):this.i;case 8:return t?Svn(this):this.f;case 9:return!this.g&&(this.g=new hK(FOt,this,9,10)),this.g;case 10:return!this.e&&(this.e=new hK(FOt,this,10,9)),this.e;case 11:return this.d}return Eyn(this,n,t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?skn(this,e):this.Cb.ih(this,-1-i,null,e)),QD(this,BB(n,79),e);case 9:return!this.g&&(this.g=new hK(FOt,this,9,10)),Ywn(this.g,n,e);case 10:return!this.e&&(this.e=new hK(FOt,this,10,9)),Ywn(this.e,n,e)}return BB(itn(BB(yan(this,16),26)||(CXn(),yOt),t),66).Nj().Qj(this,fgn(this),t-bX((CXn(),yOt)),n,e)},MWn.jh=function(n,t,e){switch(t){case 5:return!this.a&&(this.a=new $L(xOt,this,5)),_pn(this.a,n,e);case 6:return QD(this,null,e);case 9:return!this.g&&(this.g=new hK(FOt,this,9,10)),_pn(this.g,n,e);case 10:return!this.e&&(this.e=new hK(FOt,this,10,9)),_pn(this.e,n,e)}return eSn(this,n,t,e)},MWn.lh=function(n){switch(n){case 1:return 0!=this.j;case 2:return 0!=this.k;case 3:return 0!=this.b;case 4:return 0!=this.c;case 5:return!!this.a&&0!=this.a.i;case 6:return!!VJ(this);case 7:return!!this.i;case 8:return!!this.f;case 9:return!!this.g&&0!=this.g.i;case 10:return!!this.e&&0!=this.e.i;case 11:return null!=this.d}return m0(this,n)},MWn.sh=function(n,t){switch(n){case 1:return void Ien(this,Gy(MD(t)));case 2:return void Aen(this,Gy(MD(t)));case 3:return void Ten(this,Gy(MD(t)));case 4:return void Oen(this,Gy(MD(t)));case 5:return!this.a&&(this.a=new $L(xOt,this,5)),sqn(this.a),!this.a&&(this.a=new $L(xOt,this,5)),void pX(this.a,BB(t,14));case 6:return void FLn(this,BB(t,79));case 7:return void Nin(this,BB(t,82));case 8:return void Lin(this,BB(t,82));case 9:return!this.g&&(this.g=new hK(FOt,this,9,10)),sqn(this.g),!this.g&&(this.g=new hK(FOt,this,9,10)),void pX(this.g,BB(t,14));case 10:return!this.e&&(this.e=new hK(FOt,this,10,9)),sqn(this.e),!this.e&&(this.e=new hK(FOt,this,10,9)),void pX(this.e,BB(t,14));case 11:return void crn(this,SD(t))}rsn(this,n,t)},MWn.zh=function(){return CXn(),yOt},MWn.Bh=function(n){switch(n){case 1:return void Ien(this,0);case 2:return void Aen(this,0);case 3:return void Ten(this,0);case 4:return void Oen(this,0);case 5:return!this.a&&(this.a=new $L(xOt,this,5)),void sqn(this.a);case 6:return void FLn(this,null);case 7:return void Nin(this,null);case 8:return void Lin(this,null);case 9:return!this.g&&(this.g=new hK(FOt,this,9,10)),void sqn(this.g);case 10:return!this.e&&(this.e=new hK(FOt,this,10,9)),void sqn(this.e);case 11:return void crn(this,null)}zun(this,n)},MWn.Ib=function(){return ROn(this)},MWn.b=0,MWn.c=0,MWn.d=null,MWn.j=0,MWn.k=0,vX(b6n,"ElkEdgeSectionImpl",439),wAn(150,115,{105:1,92:1,90:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),MWn._g=function(n,t,e){return 0==n?(!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab):U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.hh=function(n,t,e){return 0==t?(!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e)):BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Qj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.jh=function(n,t,e){return 0==t?(!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e)):BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Rj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.lh=function(n){return 0==n?!!this.Ab&&0!=this.Ab.i:O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.oh=function(n){return hUn(this,n)},MWn.sh=function(n,t){if(0===n)return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.uh=function(n){hgn(this,128,n)},MWn.zh=function(){return gWn(),b$t},MWn.Bh=function(n){if(0===n)return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.Gh=function(){this.Bb|=1},MWn.Hh=function(n){return N_n(this,n)},MWn.Bb=0,vX(l6n,"EModelElementImpl",150),wAn(704,150,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},Rf),MWn.Ih=function(n,t){return qGn(this,n,t)},MWn.Jh=function(n){var t,e,i,r;if(this.a!=Utn(n)||0!=(256&n.Bb))throw Hp(new _y(m6n+n.zb+g6n));for(e=kY(n);0!=a4(e.a).i;){if(iyn(t=BB(eGn(e,0,cL(r=BB(Wtn(a4(e.a),0),87).c,88)?BB(r,26):(gWn(),d$t)),26)))return BB(i=Utn(t).Nh().Jh(t),49).th(n),i;e=kY(t)}return"java.util.Map$Entry"==(null!=n.D?n.D:n.B)?new fq(n):new jH(n)},MWn.Kh=function(n,t){return xXn(this,n,t)},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.a}return U9(this,n-bX((gWn(),h$t)),itn(BB(yan(this,16),26)||h$t,n),t,e)},MWn.hh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 1:return this.a&&(e=BB(this.a,49).ih(this,4,GOt,e)),Jhn(this,BB(n,235),e)}return BB(itn(BB(yan(this,16),26)||(gWn(),h$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),h$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 1:return Jhn(this,null,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),h$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),h$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return!!this.a}return O3(this,n-bX((gWn(),h$t)),itn(BB(yan(this,16),26)||h$t,n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void xMn(this,BB(t,235))}Lbn(this,n-bX((gWn(),h$t)),itn(BB(yan(this,16),26)||h$t,n),t)},MWn.zh=function(){return gWn(),h$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void xMn(this,null)}qfn(this,n-bX((gWn(),h$t)),itn(BB(yan(this,16),26)||h$t,n))},vX(l6n,"EFactoryImpl",704),wAn(k6n,704,{105:1,2014:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1},ao),MWn.Ih=function(n,t){switch(n.yj()){case 12:return BB(t,146).tg();case 13:return Bbn(t);default:throw Hp(new _y(d6n+n.ne()+g6n))}},MWn.Jh=function(n){var t;switch(-1==n.G&&(n.G=(t=Utn(n))?uvn(t.Mh(),n):-1),n.G){case 4:return new uo;case 6:return new jm;case 7:return new Em;case 8:return new io;case 9:return new ro;case 10:return new co;case 11:return new so;default:throw Hp(new _y(m6n+n.zb+g6n))}},MWn.Kh=function(n,t){switch(n.yj()){case 13:case 12:return null;default:throw Hp(new _y(d6n+n.ne()+g6n))}},vX(b6n,"ElkGraphFactoryImpl",k6n),wAn(438,150,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1}),MWn.Wg=function(){var n;return null==(n=lJ(qFn(BB(yan(this,16),26)||this.zh())))?(QM(),QM(),N$t):new Wx(this,n)},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.ne()}return U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb}return O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void this.Lh(SD(t))}Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.zh=function(){return gWn(),w$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void this.Lh(null)}qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.ne=function(){return this.zb},MWn.Lh=function(n){Nrn(this,n)},MWn.Ib=function(){return kfn(this)},MWn.zb=null,vX(l6n,"ENamedElementImpl",438),wAn(179,438,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},vY),MWn.Qg=function(n){return wkn(this,n)},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return this.yb;case 3:return this.xb;case 4:return this.sb;case 5:return!this.rb&&(this.rb=new Jz(this,HAt,this)),this.rb;case 6:return!this.vb&&(this.vb=new eK(GOt,this,6,7)),this.vb;case 7:return t?this.Db>>16==7?BB(this.Cb,235):null:QJ(this)}return U9(this,n-bX((gWn(),v$t)),itn(BB(yan(this,16),26)||v$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 4:return this.sb&&(e=BB(this.sb,49).ih(this,1,HOt,e)),jfn(this,BB(n,471),e);case 5:return!this.rb&&(this.rb=new Jz(this,HAt,this)),Ywn(this.rb,n,e);case 6:return!this.vb&&(this.vb=new eK(GOt,this,6,7)),Ywn(this.vb,n,e);case 7:return this.Cb&&(e=(i=this.Db>>16)>=0?wkn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,7,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),v$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),v$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 4:return jfn(this,null,e);case 5:return!this.rb&&(this.rb=new Jz(this,HAt,this)),_pn(this.rb,n,e);case 6:return!this.vb&&(this.vb=new eK(GOt,this,6,7)),_pn(this.vb,n,e);case 7:return T_n(this,null,7,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),v$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),v$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.yb;case 3:return null!=this.xb;case 4:return!!this.sb;case 5:return!!this.rb&&0!=this.rb.i;case 6:return!!this.vb&&0!=this.vb.i;case 7:return!!QJ(this)}return O3(this,n-bX((gWn(),v$t)),itn(BB(yan(this,16),26)||v$t,n))},MWn.oh=function(n){return LNn(this,n)||hUn(this,n)},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void Nrn(this,SD(t));case 2:return void Drn(this,SD(t));case 3:return void xrn(this,SD(t));case 4:return void iSn(this,BB(t,471));case 5:return!this.rb&&(this.rb=new Jz(this,HAt,this)),sqn(this.rb),!this.rb&&(this.rb=new Jz(this,HAt,this)),void pX(this.rb,BB(t,14));case 6:return!this.vb&&(this.vb=new eK(GOt,this,6,7)),sqn(this.vb),!this.vb&&(this.vb=new eK(GOt,this,6,7)),void pX(this.vb,BB(t,14))}Lbn(this,n-bX((gWn(),v$t)),itn(BB(yan(this,16),26)||v$t,n),t)},MWn.vh=function(n){var t,e;if(n&&this.rb)for(e=new AL(this.rb);e.e!=e.i.gc();)cL(t=kpn(e),351)&&(BB(t,351).w=null);hgn(this,64,n)},MWn.zh=function(){return gWn(),v$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void Nrn(this,null);case 2:return void Drn(this,null);case 3:return void xrn(this,null);case 4:return void iSn(this,null);case 5:return!this.rb&&(this.rb=new Jz(this,HAt,this)),void sqn(this.rb);case 6:return!this.vb&&(this.vb=new eK(GOt,this,6,7)),void sqn(this.vb)}qfn(this,n-bX((gWn(),v$t)),itn(BB(yan(this,16),26)||v$t,n))},MWn.Gh=function(){Tyn(this)},MWn.Mh=function(){return!this.rb&&(this.rb=new Jz(this,HAt,this)),this.rb},MWn.Nh=function(){return this.sb},MWn.Oh=function(){return this.ub},MWn.Ph=function(){return this.xb},MWn.Qh=function(){return this.yb},MWn.Rh=function(n){this.ub=n},MWn.Ib=function(){var n;return 0!=(64&this.Db)?kfn(this):((n=new fN(kfn(this))).a+=" (nsURI: ",cO(n,this.yb),n.a+=", nsPrefix: ",cO(n,this.xb),n.a+=")",n.a)},MWn.xb=null,MWn.yb=null,vX(l6n,"EPackageImpl",179),wAn(555,179,{105:1,2016:1,555:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1},sAn),MWn.q=!1,MWn.r=!1;var WOt=!1;vX(b6n,"ElkGraphPackageImpl",555),wAn(354,724,{105:1,413:1,160:1,137:1,470:1,354:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},uo),MWn.Qg=function(n){return hkn(this,n)},MWn._g=function(n,t,e){switch(n){case 7:return YJ(this);case 8:return this.a}return Rbn(this,n,t,e)},MWn.hh=function(n,t,e){var i;return 7===t?(this.Cb&&(e=(i=this.Db>>16)>=0?hkn(this,e):this.Cb.ih(this,-1-i,null,e)),VG(this,BB(n,160),e)):FTn(this,n,t,e)},MWn.jh=function(n,t,e){return 7==t?VG(this,null,e):run(this,n,t,e)},MWn.lh=function(n){switch(n){case 7:return!!YJ(this);case 8:return!mK("",this.a)}return fwn(this,n)},MWn.sh=function(n,t){switch(n){case 7:return void INn(this,BB(t,160));case 8:return void xin(this,SD(t))}zjn(this,n,t)},MWn.zh=function(){return CXn(),jOt},MWn.Bh=function(n){switch(n){case 7:return void INn(this,null);case 8:return void xin(this,"")}Dwn(this,n)},MWn.Ib=function(){return cPn(this)},MWn.a="",vX(b6n,"ElkLabelImpl",354),wAn(239,725,{105:1,413:1,82:1,160:1,33:1,470:1,239:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},jm),MWn.Qg=function(n){return Skn(this,n)},MWn._g=function(n,t,e){switch(n){case 9:return!this.c&&(this.c=new eU(XOt,this,9,9)),this.c;case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),this.a;case 11:return JJ(this);case 12:return!this.b&&(this.b=new eU(_Ot,this,12,3)),this.b;case 13:return hN(),!this.a&&(this.a=new eU(UOt,this,10,11)),this.a.i>0}return Hvn(this,n,t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 9:return!this.c&&(this.c=new eU(XOt,this,9,9)),Ywn(this.c,n,e);case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),Ywn(this.a,n,e);case 11:return this.Cb&&(e=(i=this.Db>>16)>=0?Skn(this,e):this.Cb.ih(this,-1-i,null,e)),zR(this,BB(n,33),e);case 12:return!this.b&&(this.b=new eU(_Ot,this,12,3)),Ywn(this.b,n,e)}return djn(this,n,t,e)},MWn.jh=function(n,t,e){switch(t){case 9:return!this.c&&(this.c=new eU(XOt,this,9,9)),_pn(this.c,n,e);case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),_pn(this.a,n,e);case 11:return zR(this,null,e);case 12:return!this.b&&(this.b=new eU(_Ot,this,12,3)),_pn(this.b,n,e)}return gjn(this,n,t,e)},MWn.lh=function(n){switch(n){case 9:return!!this.c&&0!=this.c.i;case 10:return!!this.a&&0!=this.a.i;case 11:return!!JJ(this);case 12:return!!this.b&&0!=this.b.i;case 13:return!this.a&&(this.a=new eU(UOt,this,10,11)),this.a.i>0}return Gon(this,n)},MWn.sh=function(n,t){switch(n){case 9:return!this.c&&(this.c=new eU(XOt,this,9,9)),sqn(this.c),!this.c&&(this.c=new eU(XOt,this,9,9)),void pX(this.c,BB(t,14));case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),sqn(this.a),!this.a&&(this.a=new eU(UOt,this,10,11)),void pX(this.a,BB(t,14));case 11:return void nNn(this,BB(t,33));case 12:return!this.b&&(this.b=new eU(_Ot,this,12,3)),sqn(this.b),!this.b&&(this.b=new eU(_Ot,this,12,3)),void pX(this.b,BB(t,14))}LAn(this,n,t)},MWn.zh=function(){return CXn(),EOt},MWn.Bh=function(n){switch(n){case 9:return!this.c&&(this.c=new eU(XOt,this,9,9)),void sqn(this.c);case 10:return!this.a&&(this.a=new eU(UOt,this,10,11)),void sqn(this.a);case 11:return void nNn(this,null);case 12:return!this.b&&(this.b=new eU(_Ot,this,12,3)),void sqn(this.b)}xpn(this,n)},MWn.Ib=function(){return zRn(this)},vX(b6n,"ElkNodeImpl",239),wAn(186,725,{105:1,413:1,82:1,160:1,118:1,470:1,186:1,94:1,92:1,90:1,56:1,108:1,49:1,97:1,114:1,115:1},Em),MWn.Qg=function(n){return fkn(this,n)},MWn._g=function(n,t,e){return 9==n?WJ(this):Hvn(this,n,t,e)},MWn.hh=function(n,t,e){var i;return 9===t?(this.Cb&&(e=(i=this.Db>>16)>=0?fkn(this,e):this.Cb.ih(this,-1-i,null,e)),YD(this,BB(n,33),e)):djn(this,n,t,e)},MWn.jh=function(n,t,e){return 9==t?YD(this,null,e):gjn(this,n,t,e)},MWn.lh=function(n){return 9==n?!!WJ(this):Gon(this,n)},MWn.sh=function(n,t){9!==n?LAn(this,n,t):BLn(this,BB(t,33))},MWn.zh=function(){return CXn(),TOt},MWn.Bh=function(n){9!==n?xpn(this,n):BLn(this,null)},MWn.Ib=function(){return URn(this)},vX(b6n,"ElkPortImpl",186);var VOt=bq(B6n,"BasicEMap/Entry");wAn(1092,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,114:1,115:1},so),MWn.Fb=function(n){return this===n},MWn.cd=function(){return this.b},MWn.Hb=function(){return PN(this)},MWn.Uh=function(n){Din(this,BB(n,146))},MWn._g=function(n,t,e){switch(n){case 0:return this.b;case 1:return this.c}return Zpn(this,n,t,e)},MWn.lh=function(n){switch(n){case 0:return!!this.b;case 1:return null!=this.c}return vpn(this,n)},MWn.sh=function(n,t){switch(n){case 0:return void Din(this,BB(t,146));case 1:return void _in(this,t)}yCn(this,n,t)},MWn.zh=function(){return CXn(),MOt},MWn.Bh=function(n){switch(n){case 0:return void Din(this,null);case 1:return void _in(this,null)}mPn(this,n)},MWn.Sh=function(){var n;return-1==this.a&&(n=this.b,this.a=n?nsn(n):0),this.a},MWn.dd=function(){return this.c},MWn.Th=function(n){this.a=n},MWn.ed=function(n){var t;return t=this.c,_in(this,n),t},MWn.Ib=function(){var n;return 0!=(64&this.Db)?P$n(this):(oO(oO(oO(n=new Ck,this.b?this.b.tg():zWn),e1n),kN(this.c)),n.a)},MWn.a=-1,MWn.c=null;var QOt,YOt,JOt,ZOt,nAt,tAt,eAt,iAt,rAt=vX(b6n,"ElkPropertyToValueMapEntryImpl",1092);wAn(984,1,{},lo),vX(G6n,"JsonAdapter",984),wAn(210,60,BVn,ek),vX(G6n,"JsonImportException",210),wAn(857,1,{},dkn),vX(G6n,"JsonImporter",857),wAn(891,1,{},aI),vX(G6n,"JsonImporter/lambda$0$Type",891),wAn(892,1,{},uI),vX(G6n,"JsonImporter/lambda$1$Type",892),wAn(900,1,{},$g),vX(G6n,"JsonImporter/lambda$10$Type",900),wAn(902,1,{},oI),vX(G6n,"JsonImporter/lambda$11$Type",902),wAn(903,1,{},sI),vX(G6n,"JsonImporter/lambda$12$Type",903),wAn(909,1,{},fQ),vX(G6n,"JsonImporter/lambda$13$Type",909),wAn(908,1,{},hQ),vX(G6n,"JsonImporter/lambda$14$Type",908),wAn(904,1,{},hI),vX(G6n,"JsonImporter/lambda$15$Type",904),wAn(905,1,{},fI),vX(G6n,"JsonImporter/lambda$16$Type",905),wAn(906,1,{},lI),vX(G6n,"JsonImporter/lambda$17$Type",906),wAn(907,1,{},bI),vX(G6n,"JsonImporter/lambda$18$Type",907),wAn(912,1,{},Lg),vX(G6n,"JsonImporter/lambda$19$Type",912),wAn(893,1,{},Ng),vX(G6n,"JsonImporter/lambda$2$Type",893),wAn(910,1,{},xg),vX(G6n,"JsonImporter/lambda$20$Type",910),wAn(911,1,{},Dg),vX(G6n,"JsonImporter/lambda$21$Type",911),wAn(915,1,{},Rg),vX(G6n,"JsonImporter/lambda$22$Type",915),wAn(913,1,{},Kg),vX(G6n,"JsonImporter/lambda$23$Type",913),wAn(914,1,{},_g),vX(G6n,"JsonImporter/lambda$24$Type",914),wAn(917,1,{},Fg),vX(G6n,"JsonImporter/lambda$25$Type",917),wAn(916,1,{},Bg),vX(G6n,"JsonImporter/lambda$26$Type",916),wAn(918,1,lVn,wI),MWn.td=function(n){E9(this.b,this.a,SD(n))},vX(G6n,"JsonImporter/lambda$27$Type",918),wAn(919,1,lVn,dI),MWn.td=function(n){T9(this.b,this.a,SD(n))},vX(G6n,"JsonImporter/lambda$28$Type",919),wAn(920,1,{},gI),vX(G6n,"JsonImporter/lambda$29$Type",920),wAn(896,1,{},Hg),vX(G6n,"JsonImporter/lambda$3$Type",896),wAn(921,1,{},pI),vX(G6n,"JsonImporter/lambda$30$Type",921),wAn(922,1,{},qg),vX(G6n,"JsonImporter/lambda$31$Type",922),wAn(923,1,{},Gg),vX(G6n,"JsonImporter/lambda$32$Type",923),wAn(924,1,{},zg),vX(G6n,"JsonImporter/lambda$33$Type",924),wAn(925,1,{},Ug),vX(G6n,"JsonImporter/lambda$34$Type",925),wAn(859,1,{},Xg),vX(G6n,"JsonImporter/lambda$35$Type",859),wAn(929,1,{},MB),vX(G6n,"JsonImporter/lambda$36$Type",929),wAn(926,1,lVn,Wg),MWn.td=function(n){Y4(this.a,BB(n,469))},vX(G6n,"JsonImporter/lambda$37$Type",926),wAn(927,1,lVn,SI),MWn.td=function(n){lO(this.a,this.b,BB(n,202))},vX(G6n,"JsonImporter/lambda$38$Type",927),wAn(928,1,lVn,PI),MWn.td=function(n){bO(this.a,this.b,BB(n,202))},vX(G6n,"JsonImporter/lambda$39$Type",928),wAn(894,1,{},Vg),vX(G6n,"JsonImporter/lambda$4$Type",894),wAn(930,1,lVn,Qg),MWn.td=function(n){J4(this.a,BB(n,8))},vX(G6n,"JsonImporter/lambda$40$Type",930),wAn(895,1,{},Yg),vX(G6n,"JsonImporter/lambda$5$Type",895),wAn(899,1,{},Jg),vX(G6n,"JsonImporter/lambda$6$Type",899),wAn(897,1,{},Zg),vX(G6n,"JsonImporter/lambda$7$Type",897),wAn(898,1,{},np),vX(G6n,"JsonImporter/lambda$8$Type",898),wAn(901,1,{},tp),vX(G6n,"JsonImporter/lambda$9$Type",901),wAn(948,1,lVn,ep),MWn.td=function(n){nW(this.a,new GX(SD(n)))},vX(G6n,"JsonMetaDataConverter/lambda$0$Type",948),wAn(949,1,lVn,ip),MWn.td=function(n){_X(this.a,BB(n,237))},vX(G6n,"JsonMetaDataConverter/lambda$1$Type",949),wAn(950,1,lVn,rp),MWn.td=function(n){t1(this.a,BB(n,149))},vX(G6n,"JsonMetaDataConverter/lambda$2$Type",950),wAn(951,1,lVn,cp),MWn.td=function(n){FX(this.a,BB(n,175))},vX(G6n,"JsonMetaDataConverter/lambda$3$Type",951),wAn(237,22,{3:1,35:1,22:1,237:1},MI);var cAt,aAt=Ben(IJn,"GraphFeature",237,Unt,Ktn,pB);wAn(13,1,{35:1,146:1},up,iR,$O,XA),MWn.wd=function(n){return pL(this,BB(n,146))},MWn.Fb=function(n){return EY(this,n)},MWn.wg=function(){return mpn(this)},MWn.tg=function(){return this.b},MWn.Hb=function(){return vvn(this.b)},MWn.Ib=function(){return this.b},vX(IJn,"Property",13),wAn(818,1,MYn,ap),MWn.ue=function(n,t){return _ln(this,BB(n,94),BB(t,94))},MWn.Fb=function(n){return this===n},MWn.ve=function(){return new nw(this)},vX(IJn,"PropertyHolderComparator",818),wAn(695,1,QWn,sp),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return A9(this)},MWn.Qb=function(){uE()},MWn.Ob=function(){return!!this.a},vX(c8n,"ElkGraphUtil/AncestorIterator",695);var uAt=bq(B6n,"EList");wAn(67,52,{20:1,28:1,52:1,14:1,15:1,67:1,58:1}),MWn.Vc=function(n,t){sln(this,n,t)},MWn.Fc=function(n){return f9(this,n)},MWn.Wc=function(n,t){return oon(this,n,t)},MWn.Gc=function(n){return pX(this,n)},MWn.Zh=function(){return new ax(this)},MWn.$h=function(){return new ux(this)},MWn._h=function(n){return sin(this,n)},MWn.ai=function(){return!0},MWn.bi=function(n,t){},MWn.ci=function(){},MWn.di=function(n,t){L8(this,n,t)},MWn.ei=function(n,t,e){},MWn.fi=function(n,t){},MWn.gi=function(n,t,e){},MWn.Fb=function(n){return QDn(this,n)},MWn.Hb=function(){return Mun(this)},MWn.hi=function(){return!1},MWn.Kc=function(){return new AL(this)},MWn.Yc=function(){return new cx(this)},MWn.Zc=function(n){var t;if(t=this.gc(),n<0||n>t)throw Hp(new tK(n,t));return new GU(this,n)},MWn.ji=function(n,t){this.ii(n,this.Xc(t))},MWn.Mc=function(n){return snn(this,n)},MWn.li=function(n,t){return t},MWn._c=function(n,t){return ovn(this,n,t)},MWn.Ib=function(){return Jbn(this)},MWn.ni=function(){return!0},MWn.oi=function(n,t){return xsn(this,t)},vX(B6n,"AbstractEList",67),wAn(63,67,h8n,go,gtn,jcn),MWn.Vh=function(n,t){return BTn(this,n,t)},MWn.Wh=function(n){return bmn(this,n)},MWn.Xh=function(n,t){Ifn(this,n,t)},MWn.Yh=function(n){c6(this,n)},MWn.pi=function(n){return F9(this,n)},MWn.$b=function(){a6(this)},MWn.Hc=function(n){return Sjn(this,n)},MWn.Xb=function(n){return Wtn(this,n)},MWn.qi=function(n){var t,e,i;++this.j,n>(e=null==this.g?0:this.g.length)&&(i=this.g,(t=e+(e/2|0)+4)<n&&(t=n),this.g=this.ri(t),null!=i&&aHn(i,0,this.g,0,this.i))},MWn.Xc=function(n){return Wyn(this,n)},MWn.dc=function(){return 0==this.i},MWn.ii=function(n,t){return YIn(this,n,t)},MWn.ri=function(n){return x8(Ant,HWn,1,n,5,1)},MWn.ki=function(n){return this.g[n]},MWn.$c=function(n){return Lyn(this,n)},MWn.mi=function(n,t){return onn(this,n,t)},MWn.gc=function(){return this.i},MWn.Pc=function(){return N3(this)},MWn.Qc=function(n){return Qwn(this,n)},MWn.i=0;var oAt=vX(B6n,"BasicEList",63),sAt=bq(B6n,"TreeIterator");wAn(694,63,f8n),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return null!=this.g||this.c?null==this.g||0!=this.i&&BB(this.g[this.i-1],47).Ob():tZ(this)},MWn.Pb=function(){return aLn(this)},MWn.Qb=function(){if(!this.e)throw Hp(new Fy("There is no valid object to remove."));this.e.Qb()},MWn.c=!1,vX(B6n,"AbstractTreeIterator",694),wAn(685,694,f8n,OA),MWn.si=function(n){var t;return cL(t=BB(n,56).Wg().Kc(),279)&&BB(t,279).Nk(new bo),t},vX(c8n,"ElkGraphUtil/PropertiesSkippingTreeIterator",685),wAn(952,1,{},bo),vX(c8n,"ElkGraphUtil/PropertiesSkippingTreeIterator/1",952);var hAt,fAt,lAt,bAt=vX(c8n,"ElkReflect",null);wAn(889,1,i5n,wo),MWn.vg=function(n){return hZ(),B6(BB(n,174))},vX(c8n,"ElkReflect/lambda$0$Type",889),bq(B6n,"ResourceLocator"),wAn(1051,1,{}),vX(B6n,"DelegatingResourceLocator",1051),wAn(1052,1051,{}),vX("org.eclipse.emf.common","EMFPlugin",1052);var wAt,dAt=bq(J8n,"Adapter"),gAt=bq(J8n,"Notification");wAn(1153,1,Z8n),MWn.ti=function(){return this.d},MWn.ui=function(n){},MWn.vi=function(n){this.d=n},MWn.wi=function(n){this.d==n&&(this.d=null)},MWn.d=null,vX(i6n,"AdapterImpl",1153),wAn(1995,67,n9n),MWn.Vh=function(n,t){return kwn(this,n,t)},MWn.Wh=function(n){var t,e,i;if(++this.j,n.dc())return!1;for(t=this.Vi(),i=n.Kc();i.Ob();)e=i.Pb(),this.Ii(this.oi(t,e)),++t;return!0},MWn.Xh=function(n,t){ZD(this,n,t)},MWn.Yh=function(n){eW(this,n)},MWn.Gi=function(){return this.Ji()},MWn.$b=function(){JD(this,this.Vi(),this.Wi())},MWn.Hc=function(n){return this.Li(n)},MWn.Ic=function(n){return this.Mi(n)},MWn.Hi=function(n,t){this.Si().jm()},MWn.Ii=function(n){this.Si().jm()},MWn.Ji=function(){return this.Si()},MWn.Ki=function(){this.Si().jm()},MWn.Li=function(n){return this.Si().jm()},MWn.Mi=function(n){return this.Si().jm()},MWn.Ni=function(n){return this.Si().jm()},MWn.Oi=function(n){return this.Si().jm()},MWn.Pi=function(){return this.Si().jm()},MWn.Qi=function(n){return this.Si().jm()},MWn.Ri=function(){return this.Si().jm()},MWn.Ti=function(n){return this.Si().jm()},MWn.Ui=function(n,t){return this.Si().jm()},MWn.Vi=function(){return this.Si().jm()},MWn.Wi=function(){return this.Si().jm()},MWn.Xi=function(n){return this.Si().jm()},MWn.Yi=function(){return this.Si().jm()},MWn.Fb=function(n){return this.Ni(n)},MWn.Xb=function(n){return this.li(n,this.Oi(n))},MWn.Hb=function(){return this.Pi()},MWn.Xc=function(n){return this.Qi(n)},MWn.dc=function(){return this.Ri()},MWn.ii=function(n,t){return AMn(this,n,t)},MWn.ki=function(n){return this.Oi(n)},MWn.$c=function(n){return wq(this,n)},MWn.Mc=function(n){var t;return(t=this.Xc(n))>=0&&(this.$c(t),!0)},MWn.mi=function(n,t){return this.Ui(n,this.oi(n,t))},MWn.gc=function(){return this.Vi()},MWn.Pc=function(){return this.Wi()},MWn.Qc=function(n){return this.Xi(n)},MWn.Ib=function(){return this.Yi()},vX(B6n,"DelegatingEList",1995),wAn(1996,1995,n9n),MWn.Vh=function(n,t){return uFn(this,n,t)},MWn.Wh=function(n){return this.Vh(this.Vi(),n)},MWn.Xh=function(n,t){eAn(this,n,t)},MWn.Yh=function(n){OOn(this,n)},MWn.ai=function(){return!this.bj()},MWn.$b=function(){vqn(this)},MWn.Zi=function(n,t,e,i,r){return new NY(this,n,t,e,i,r)},MWn.$i=function(n){ban(this.Ai(),n)},MWn._i=function(){return null},MWn.aj=function(){return-1},MWn.Ai=function(){return null},MWn.bj=function(){return!1},MWn.cj=function(n,t){return t},MWn.dj=function(n,t){return t},MWn.ej=function(){return!1},MWn.fj=function(){return!this.Ri()},MWn.ii=function(n,t){var e,i;return this.ej()?(i=this.fj(),e=AMn(this,n,t),this.$i(this.Zi(7,iln(t),e,n,i)),e):AMn(this,n,t)},MWn.$c=function(n){var t,e,i,r;return this.ej()?(e=null,i=this.fj(),t=this.Zi(4,r=wq(this,n),null,n,i),this.bj()&&r?(e=this.dj(r,e))?(e.Ei(t),e.Fi()):this.$i(t):e?(e.Ei(t),e.Fi()):this.$i(t),r):(r=wq(this,n),this.bj()&&r&&(e=this.dj(r,null))&&e.Fi(),r)},MWn.mi=function(n,t){return oFn(this,n,t)},vX(i6n,"DelegatingNotifyingListImpl",1996),wAn(143,1,t9n),MWn.Ei=function(n){return KEn(this,n)},MWn.Fi=function(){$7(this)},MWn.xi=function(){return this.d},MWn._i=function(){return null},MWn.gj=function(){return null},MWn.yi=function(n){return-1},MWn.zi=function(){return Rxn(this)},MWn.Ai=function(){return null},MWn.Bi=function(){return Kxn(this)},MWn.Ci=function(){return this.o<0?this.o<-2?-2-this.o-1:-1:this.o},MWn.hj=function(){return!1},MWn.Di=function(n){var t,e,i,r,c,a,u,o;switch(this.d){case 1:case 2:switch(n.xi()){case 1:case 2:if(GI(n.Ai())===GI(this.Ai())&&this.yi(null)==n.yi(null))return this.g=n.zi(),1==n.xi()&&(this.d=1),!0}case 4:if(4===n.xi()&&GI(n.Ai())===GI(this.Ai())&&this.yi(null)==n.yi(null))return a=tGn(this),c=this.o<0?this.o<-2?-2-this.o-1:-1:this.o,i=n.Ci(),this.d=6,o=new gtn(2),c<=i?(f9(o,this.n),f9(o,n.Bi()),this.g=Pun(Gk(ANt,1),hQn,25,15,[this.o=c,i+1])):(f9(o,n.Bi()),f9(o,this.n),this.g=Pun(Gk(ANt,1),hQn,25,15,[this.o=i,c])),this.n=o,a||(this.o=-2-this.o-1),!0;break;case 6:if(4===n.xi()&&GI(n.Ai())===GI(this.Ai())&&this.yi(null)==n.yi(null)){for(a=tGn(this),i=n.Ci(),u=BB(this.g,48),e=x8(ANt,hQn,25,u.length+1,15,1),t=0;t<u.length&&(r=u[t])<=i;)e[t++]=r,++i;for(BB(this.n,15).Vc(t,n.Bi()),e[t]=i;++t<e.length;)e[t]=u[t-1];return this.g=e,a||(this.o=-2-e[0]),!0}}return!1},MWn.Ib=function(){var n,t,e;switch((e=new fN(nE(this.gm)+"@"+(nsn(this)>>>0).toString(16))).a+=" (eventType: ",this.d){case 1:e.a+="SET";break;case 2:e.a+="UNSET";break;case 3:e.a+="ADD";break;case 5:e.a+="ADD_MANY";break;case 4:e.a+="REMOVE";break;case 6:e.a+="REMOVE_MANY";break;case 7:e.a+="MOVE";break;case 8:e.a+="REMOVING_ADAPTER";break;case 9:e.a+="RESOLVE";break;default:mE(e,this.d)}if(lKn(this)&&(e.a+=", touch: true"),e.a+=", position: ",mE(e,this.o<0?this.o<-2?-2-this.o-1:-1:this.o),e.a+=", notifier: ",rO(e,this.Ai()),e.a+=", feature: ",rO(e,this._i()),e.a+=", oldValue: ",rO(e,Kxn(this)),e.a+=", newValue: ",6==this.d&&cL(this.g,48)){for(t=BB(this.g,48),e.a+="[",n=0;n<t.length;)e.a+=t[n],++n<t.length&&(e.a+=FWn);e.a+="]"}else rO(e,Rxn(this));return e.a+=", isTouch: ",yE(e,lKn(this)),e.a+=", wasSet: ",yE(e,tGn(this)),e.a+=")",e.a},MWn.d=0,MWn.e=0,MWn.f=0,MWn.j=0,MWn.k=0,MWn.o=0,MWn.p=0,vX(i6n,"NotificationImpl",143),wAn(1167,143,t9n,NY),MWn._i=function(){return this.a._i()},MWn.yi=function(n){return this.a.aj()},MWn.Ai=function(){return this.a.Ai()},vX(i6n,"DelegatingNotifyingListImpl/1",1167),wAn(242,63,h8n,po,Fj),MWn.Fc=function(n){return Mwn(this,BB(n,366))},MWn.Ei=function(n){return Mwn(this,n)},MWn.Fi=function(){var n,t,e;for(n=0;n<this.i;++n)null!=(e=(t=BB(this.g[n],366)).Ai())&&-1!=t.xi()&&BB(e,92).Ng(t)},MWn.ri=function(n){return x8(gAt,HWn,366,n,0,1)},vX(i6n,"NotificationChainImpl",242),wAn(1378,90,e6n),MWn.Kg=function(){return this.e},MWn.Mg=function(){return 0!=(1&this.f)},MWn.f=1,vX(i6n,"NotifierImpl",1378),wAn(1993,63,h8n),MWn.Vh=function(n,t){return LFn(this,n,t)},MWn.Wh=function(n){return this.Vh(this.i,n)},MWn.Xh=function(n,t){qOn(this,n,t)},MWn.Yh=function(n){tAn(this,n)},MWn.ai=function(){return!this.bj()},MWn.$b=function(){sqn(this)},MWn.Zi=function(n,t,e,i,r){return new xY(this,n,t,e,i,r)},MWn.$i=function(n){ban(this.Ai(),n)},MWn._i=function(){return null},MWn.aj=function(){return-1},MWn.Ai=function(){return null},MWn.bj=function(){return!1},MWn.ij=function(){return!1},MWn.cj=function(n,t){return t},MWn.dj=function(n,t){return t},MWn.ej=function(){return!1},MWn.fj=function(){return 0!=this.i},MWn.ii=function(n,t){return Iln(this,n,t)},MWn.$c=function(n){return fDn(this,n)},MWn.mi=function(n,t){return fBn(this,n,t)},MWn.jj=function(n,t){return t},MWn.kj=function(n,t){return t},MWn.lj=function(n,t,e){return e},vX(i6n,"NotifyingListImpl",1993),wAn(1166,143,t9n,xY),MWn._i=function(){return this.a._i()},MWn.yi=function(n){return this.a.aj()},MWn.Ai=function(){return this.a.Ai()},vX(i6n,"NotifyingListImpl/1",1166),wAn(953,63,h8n,aR),MWn.Hc=function(n){return this.i>10?(this.b&&this.c.j==this.a||(this.b=new $q(this),this.a=this.j),FT(this.b,n)):Sjn(this,n)},MWn.ni=function(){return!0},MWn.a=0,vX(B6n,"AbstractEList/1",953),wAn(295,73,NQn,tK),vX(B6n,"AbstractEList/BasicIndexOutOfBoundsException",295),wAn(40,1,QWn,AL),MWn.Nb=function(n){fU(this,n)},MWn.mj=function(){if(this.i.j!=this.f)throw Hp(new vv)},MWn.nj=function(){return kpn(this)},MWn.Ob=function(){return this.e!=this.i.gc()},MWn.Pb=function(){return this.nj()},MWn.Qb=function(){Qjn(this)},MWn.e=0,MWn.f=0,MWn.g=-1,vX(B6n,"AbstractEList/EIterator",40),wAn(278,40,cVn,cx,GU),MWn.Qb=function(){Qjn(this)},MWn.Rb=function(n){odn(this,n)},MWn.oj=function(){var n;try{return n=this.d.Xb(--this.e),this.mj(),this.g=this.e,n}catch(t){throw cL(t=lun(t),73)?(this.mj(),Hp(new yv)):Hp(t)}},MWn.pj=function(n){kmn(this,n)},MWn.Sb=function(){return 0!=this.e},MWn.Tb=function(){return this.e},MWn.Ub=function(){return this.oj()},MWn.Vb=function(){return this.e-1},MWn.Wb=function(n){this.pj(n)},vX(B6n,"AbstractEList/EListIterator",278),wAn(341,40,QWn,ax),MWn.nj=function(){return jpn(this)},MWn.Qb=function(){throw Hp(new pv)},vX(B6n,"AbstractEList/NonResolvingEIterator",341),wAn(385,278,cVn,ux,RK),MWn.Rb=function(n){throw Hp(new pv)},MWn.nj=function(){var n;try{return n=this.c.ki(this.e),this.mj(),this.g=this.e++,n}catch(t){throw cL(t=lun(t),73)?(this.mj(),Hp(new yv)):Hp(t)}},MWn.oj=function(){var n;try{return n=this.c.ki(--this.e),this.mj(),this.g=this.e,n}catch(t){throw cL(t=lun(t),73)?(this.mj(),Hp(new yv)):Hp(t)}},MWn.Qb=function(){throw Hp(new pv)},MWn.Wb=function(n){throw Hp(new pv)},vX(B6n,"AbstractEList/NonResolvingEListIterator",385),wAn(1982,67,r9n),MWn.Vh=function(n,t){var e,i,r,c,a,u,o,s,h;if(0!=(i=t.gc())){for(e=Psn(this,(s=null==(o=BB(yan(this.a,4),126))?0:o.length)+i),(h=s-n)>0&&aHn(o,n,e,n+i,h),u=t.Kc(),c=0;c<i;++c)JA(e,n+c,xsn(this,a=u.Pb()));for(Fgn(this,e),r=0;r<i;++r)a=e[n],this.bi(n,a),++n;return!0}return++this.j,!1},MWn.Wh=function(n){var t,e,i,r,c,a,u,o,s;if(0!=(i=n.gc())){for(t=Psn(this,s=(o=null==(e=BB(yan(this.a,4),126))?0:e.length)+i),u=n.Kc(),c=o;c<s;++c)JA(t,c,xsn(this,a=u.Pb()));for(Fgn(this,t),r=o;r<s;++r)a=t[r],this.bi(r,a);return!0}return++this.j,!1},MWn.Xh=function(n,t){var e,i,r,c;e=Psn(this,(r=null==(i=BB(yan(this.a,4),126))?0:i.length)+1),c=xsn(this,t),n!=r&&aHn(i,n,e,n+1,r-n),$X(e,n,c),Fgn(this,e),this.bi(n,t)},MWn.Yh=function(n){var t,e,i;JA(t=Psn(this,(i=null==(e=BB(yan(this.a,4),126))?0:e.length)+1),i,xsn(this,n)),Fgn(this,t),this.bi(i,n)},MWn.Zh=function(){return new S5(this)},MWn.$h=function(){return new Yz(this)},MWn._h=function(n){var t,e;if(e=null==(t=BB(yan(this.a,4),126))?0:t.length,n<0||n>e)throw Hp(new tK(n,e));return new BW(this,n)},MWn.$b=function(){var n,t;++this.j,t=null==(n=BB(yan(this.a,4),126))?0:n.length,Fgn(this,null),L8(this,t,n)},MWn.Hc=function(n){var t,e,i,r;if(null!=(t=BB(yan(this.a,4),126)))if(null!=n){for(i=0,r=(e=t).length;i<r;++i)if(Nfn(n,e[i]))return!0}else for(i=0,r=(e=t).length;i<r;++i)if(GI(e[i])===GI(n))return!0;return!1},MWn.Xb=function(n){var t,e;if(n>=(e=null==(t=BB(yan(this.a,4),126))?0:t.length))throw Hp(new tK(n,e));return t[n]},MWn.Xc=function(n){var t,e,i;if(null!=(t=BB(yan(this.a,4),126)))if(null!=n){for(e=0,i=t.length;e<i;++e)if(Nfn(n,t[e]))return e}else for(e=0,i=t.length;e<i;++e)if(GI(t[e])===GI(n))return e;return-1},MWn.dc=function(){return null==BB(yan(this.a,4),126)},MWn.Kc=function(){return new M5(this)},MWn.Yc=function(){return new Qz(this)},MWn.Zc=function(n){var t,e;if(e=null==(t=BB(yan(this.a,4),126))?0:t.length,n<0||n>e)throw Hp(new tK(n,e));return new FW(this,n)},MWn.ii=function(n,t){var e,i,r;if(n>=(r=null==(e=$dn(this))?0:e.length))throw Hp(new Ay(u8n+n+o8n+r));if(t>=r)throw Hp(new Ay(s8n+t+o8n+r));return i=e[t],n!=t&&(n<t?aHn(e,n,e,n+1,t-n):aHn(e,t+1,e,t,n-t),$X(e,n,i),Fgn(this,e)),i},MWn.ki=function(n){return BB(yan(this.a,4),126)[n]},MWn.$c=function(n){return EOn(this,n)},MWn.mi=function(n,t){var e,i;return i=(e=$dn(this))[n],JA(e,n,xsn(this,t)),Fgn(this,e),i},MWn.gc=function(){var n;return null==(n=BB(yan(this.a,4),126))?0:n.length},MWn.Pc=function(){var n,t,e;return e=null==(n=BB(yan(this.a,4),126))?0:n.length,t=x8(dAt,i9n,415,e,0,1),e>0&&aHn(n,0,t,0,e),t},MWn.Qc=function(n){var t,e;return(e=null==(t=BB(yan(this.a,4),126))?0:t.length)>0&&(n.length<e&&(n=Den(tsn(n).c,e)),aHn(t,0,n,0,e)),n.length>e&&$X(n,e,null),n},vX(B6n,"ArrayDelegatingEList",1982),wAn(1038,40,QWn,M5),MWn.mj=function(){if(this.b.j!=this.f||GI(BB(yan(this.b.a,4),126))!==GI(this.a))throw Hp(new vv)},MWn.Qb=function(){Qjn(this),this.a=BB(yan(this.b.a,4),126)},vX(B6n,"ArrayDelegatingEList/EIterator",1038),wAn(706,278,cVn,Qz,FW),MWn.mj=function(){if(this.b.j!=this.f||GI(BB(yan(this.b.a,4),126))!==GI(this.a))throw Hp(new vv)},MWn.pj=function(n){kmn(this,n),this.a=BB(yan(this.b.a,4),126)},MWn.Qb=function(){Qjn(this),this.a=BB(yan(this.b.a,4),126)},vX(B6n,"ArrayDelegatingEList/EListIterator",706),wAn(1039,341,QWn,S5),MWn.mj=function(){if(this.b.j!=this.f||GI(BB(yan(this.b.a,4),126))!==GI(this.a))throw Hp(new vv)},vX(B6n,"ArrayDelegatingEList/NonResolvingEIterator",1039),wAn(707,385,cVn,Yz,BW),MWn.mj=function(){if(this.b.j!=this.f||GI(BB(yan(this.b.a,4),126))!==GI(this.a))throw Hp(new vv)},vX(B6n,"ArrayDelegatingEList/NonResolvingEListIterator",707),wAn(606,295,NQn,LO),vX(B6n,"BasicEList/BasicIndexOutOfBoundsException",606),wAn(696,63,h8n,DI),MWn.Vc=function(n,t){throw Hp(new pv)},MWn.Fc=function(n){throw Hp(new pv)},MWn.Wc=function(n,t){throw Hp(new pv)},MWn.Gc=function(n){throw Hp(new pv)},MWn.$b=function(){throw Hp(new pv)},MWn.qi=function(n){throw Hp(new pv)},MWn.Kc=function(){return this.Zh()},MWn.Yc=function(){return this.$h()},MWn.Zc=function(n){return this._h(n)},MWn.ii=function(n,t){throw Hp(new pv)},MWn.ji=function(n,t){throw Hp(new pv)},MWn.$c=function(n){throw Hp(new pv)},MWn.Mc=function(n){throw Hp(new pv)},MWn._c=function(n,t){throw Hp(new pv)},vX(B6n,"BasicEList/UnmodifiableEList",696),wAn(705,1,{3:1,20:1,14:1,15:1,58:1,589:1}),MWn.Vc=function(n,t){Q$(this,n,BB(t,42))},MWn.Fc=function(n){return aD(this,BB(n,42))},MWn.Jc=function(n){e5(this,n)},MWn.Xb=function(n){return BB(Wtn(this.c,n),133)},MWn.ii=function(n,t){return BB(this.c.ii(n,t),42)},MWn.ji=function(n,t){Y$(this,n,BB(t,42))},MWn.Lc=function(){return new Rq(null,new w1(this,16))},MWn.$c=function(n){return BB(this.c.$c(n),42)},MWn._c=function(n,t){return uX(this,n,BB(t,42))},MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.Oc=function(){return new Rq(null,new w1(this,16))},MWn.Wc=function(n,t){return this.c.Wc(n,t)},MWn.Gc=function(n){return this.c.Gc(n)},MWn.$b=function(){this.c.$b()},MWn.Hc=function(n){return this.c.Hc(n)},MWn.Ic=function(n){return oun(this.c,n)},MWn.qj=function(){var n,t;if(null==this.d){for(this.d=x8(oAt,c9n,63,2*this.f+1,0,1),t=this.e,this.f=0,n=this.c.Kc();n.e!=n.i.gc();)Ivn(this,BB(n.nj(),133));this.e=t}},MWn.Fb=function(n){return NK(this,n)},MWn.Hb=function(){return Mun(this.c)},MWn.Xc=function(n){return this.c.Xc(n)},MWn.rj=function(){this.c=new hp(this)},MWn.dc=function(){return 0==this.f},MWn.Kc=function(){return this.c.Kc()},MWn.Yc=function(){return this.c.Yc()},MWn.Zc=function(n){return this.c.Zc(n)},MWn.sj=function(){return A8(this)},MWn.tj=function(n,t,e){return new SB(n,t,e)},MWn.uj=function(){return new vo},MWn.Mc=function(n){return hin(this,n)},MWn.gc=function(){return this.f},MWn.bd=function(n,t){return new s1(this.c,n,t)},MWn.Pc=function(){return this.c.Pc()},MWn.Qc=function(n){return this.c.Qc(n)},MWn.Ib=function(){return Jbn(this.c)},MWn.e=0,MWn.f=0,vX(B6n,"BasicEMap",705),wAn(1033,63,h8n,hp),MWn.bi=function(n,t){Av(this,BB(t,133))},MWn.ei=function(n,t,e){var i;++(i=this,BB(t,133),i).a.e},MWn.fi=function(n,t){$v(this,BB(t,133))},MWn.gi=function(n,t,e){VN(this,BB(t,133),BB(e,133))},MWn.di=function(n,t){aan(this.a)},vX(B6n,"BasicEMap/1",1033),wAn(1034,63,h8n,vo),MWn.ri=function(n){return x8(vAt,a9n,612,n,0,1)},vX(B6n,"BasicEMap/2",1034),wAn(1035,nVn,tVn,fp),MWn.$b=function(){this.a.c.$b()},MWn.Hc=function(n){return rdn(this.a,n)},MWn.Kc=function(){return 0==this.a.f?(dD(),pAt.a):new Bj(this.a)},MWn.Mc=function(n){var t;return t=this.a.f,Wdn(this.a,n),this.a.f!=t},MWn.gc=function(){return this.a.f},vX(B6n,"BasicEMap/3",1035),wAn(1036,28,ZWn,lp),MWn.$b=function(){this.a.c.$b()},MWn.Hc=function(n){return YDn(this.a,n)},MWn.Kc=function(){return 0==this.a.f?(dD(),pAt.a):new Hj(this.a)},MWn.gc=function(){return this.a.f},vX(B6n,"BasicEMap/4",1036),wAn(1037,nVn,tVn,bp),MWn.$b=function(){this.a.c.$b()},MWn.Hc=function(n){var t,e,i,r,c,a,u,o,s;if(this.a.f>0&&cL(n,42)&&(this.a.qj(),r=null==(u=(o=BB(n,42)).cd())?0:nsn(u),c=eR(this.a,r),t=this.a.d[c]))for(e=BB(t.g,367),s=t.i,a=0;a<s;++a)if((i=e[a]).Sh()==r&&i.Fb(o))return!0;return!1},MWn.Kc=function(){return 0==this.a.f?(dD(),pAt.a):new pQ(this.a)},MWn.Mc=function(n){return IAn(this,n)},MWn.gc=function(){return this.a.f},vX(B6n,"BasicEMap/5",1037),wAn(613,1,QWn,pQ),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return-1!=this.b},MWn.Pb=function(){var n;if(this.f.e!=this.c)throw Hp(new vv);if(-1==this.b)throw Hp(new yv);return this.d=this.a,this.e=this.b,ujn(this),n=BB(this.f.d[this.d].g[this.e],133),this.vj(n)},MWn.Qb=function(){if(this.f.e!=this.c)throw Hp(new vv);if(-1==this.e)throw Hp(new dv);this.f.c.Mc(Wtn(this.f.d[this.d],this.e)),this.c=this.f.e,this.e=-1,this.a==this.d&&-1!=this.b&&--this.b},MWn.vj=function(n){return n},MWn.a=0,MWn.b=-1,MWn.c=0,MWn.d=0,MWn.e=0,vX(B6n,"BasicEMap/BasicEMapIterator",613),wAn(1031,613,QWn,Bj),MWn.vj=function(n){return n.cd()},vX(B6n,"BasicEMap/BasicEMapKeyIterator",1031),wAn(1032,613,QWn,Hj),MWn.vj=function(n){return n.dd()},vX(B6n,"BasicEMap/BasicEMapValueIterator",1032),wAn(1030,1,JWn,wp),MWn.wc=function(n){nan(this,n)},MWn.yc=function(n,t,e){return Zln(this,n,t,e)},MWn.$b=function(){this.a.c.$b()},MWn._b=function(n){return BI(this,n)},MWn.uc=function(n){return YDn(this.a,n)},MWn.vc=function(){return I8(this.a)},MWn.Fb=function(n){return NK(this.a,n)},MWn.xc=function(n){return cdn(this.a,n)},MWn.Hb=function(){return Mun(this.a.c)},MWn.dc=function(){return 0==this.a.f},MWn.ec=function(){return O8(this.a)},MWn.zc=function(n,t){return vjn(this.a,n,t)},MWn.Bc=function(n){return Wdn(this.a,n)},MWn.gc=function(){return this.a.f},MWn.Ib=function(){return Jbn(this.a.c)},MWn.Cc=function(){return C8(this.a)},vX(B6n,"BasicEMap/DelegatingMap",1030),wAn(612,1,{42:1,133:1,612:1},SB),MWn.Fb=function(n){var t;return!!cL(n,42)&&(t=BB(n,42),(null!=this.b?Nfn(this.b,t.cd()):GI(this.b)===GI(t.cd()))&&(null!=this.c?Nfn(this.c,t.dd()):GI(this.c)===GI(t.dd())))},MWn.Sh=function(){return this.a},MWn.cd=function(){return this.b},MWn.dd=function(){return this.c},MWn.Hb=function(){return this.a^(null==this.c?0:nsn(this.c))},MWn.Th=function(n){this.a=n},MWn.Uh=function(n){throw Hp(new sv)},MWn.ed=function(n){var t;return t=this.c,this.c=n,t},MWn.Ib=function(){return this.b+"->"+this.c},MWn.a=0;var pAt,vAt=vX(B6n,"BasicEMap/EntryImpl",612);wAn(536,1,{},oo),vX(B6n,"BasicEMap/View",536),wAn(768,1,{}),MWn.Fb=function(n){return NAn((SQ(),set),n)},MWn.Hb=function(){return Fon((SQ(),set))},MWn.Ib=function(){return LMn((SQ(),set))},vX(B6n,"ECollections/BasicEmptyUnmodifiableEList",768),wAn(1312,1,cVn,mo),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){throw Hp(new pv)},MWn.Ob=function(){return!1},MWn.Sb=function(){return!1},MWn.Pb=function(){throw Hp(new yv)},MWn.Tb=function(){return 0},MWn.Ub=function(){throw Hp(new yv)},MWn.Vb=function(){return-1},MWn.Qb=function(){throw Hp(new pv)},MWn.Wb=function(n){throw Hp(new pv)},vX(B6n,"ECollections/BasicEmptyUnmodifiableEList/1",1312),wAn(1310,768,{20:1,14:1,15:1,58:1},Tm),MWn.Vc=function(n,t){NE()},MWn.Fc=function(n){return xE()},MWn.Wc=function(n,t){return DE()},MWn.Gc=function(n){return RE()},MWn.$b=function(){KE()},MWn.Hc=function(n){return!1},MWn.Ic=function(n){return!1},MWn.Jc=function(n){e5(this,n)},MWn.Xb=function(n){return yO((SQ(),n)),null},MWn.Xc=function(n){return-1},MWn.dc=function(){return!0},MWn.Kc=function(){return this.a},MWn.Yc=function(){return this.a},MWn.Zc=function(n){return this.a},MWn.ii=function(n,t){return _E()},MWn.ji=function(n,t){FE()},MWn.Lc=function(){return new Rq(null,new w1(this,16))},MWn.$c=function(n){return BE()},MWn.Mc=function(n){return HE()},MWn._c=function(n,t){return qE()},MWn.gc=function(){return 0},MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.Oc=function(){return new Rq(null,new w1(this,16))},MWn.bd=function(n,t){return SQ(),new s1(set,n,t)},MWn.Pc=function(){return cz((SQ(),set))},MWn.Qc=function(n){return SQ(),Emn(set,n)},vX(B6n,"ECollections/EmptyUnmodifiableEList",1310),wAn(1311,768,{20:1,14:1,15:1,58:1,589:1},Mm),MWn.Vc=function(n,t){NE()},MWn.Fc=function(n){return xE()},MWn.Wc=function(n,t){return DE()},MWn.Gc=function(n){return RE()},MWn.$b=function(){KE()},MWn.Hc=function(n){return!1},MWn.Ic=function(n){return!1},MWn.Jc=function(n){e5(this,n)},MWn.Xb=function(n){return yO((SQ(),n)),null},MWn.Xc=function(n){return-1},MWn.dc=function(){return!0},MWn.Kc=function(){return this.a},MWn.Yc=function(){return this.a},MWn.Zc=function(n){return this.a},MWn.ii=function(n,t){return _E()},MWn.ji=function(n,t){FE()},MWn.Lc=function(){return new Rq(null,new w1(this,16))},MWn.$c=function(n){return BE()},MWn.Mc=function(n){return HE()},MWn._c=function(n,t){return qE()},MWn.gc=function(){return 0},MWn.ad=function(n){_rn(this,n)},MWn.Nc=function(){return new w1(this,16)},MWn.Oc=function(){return new Rq(null,new w1(this,16))},MWn.bd=function(n,t){return SQ(),new s1(set,n,t)},MWn.Pc=function(){return cz((SQ(),set))},MWn.Qc=function(n){return SQ(),Emn(set,n)},MWn.sj=function(){return SQ(),SQ(),het},vX(B6n,"ECollections/EmptyUnmodifiableEMap",1311);var mAt,yAt=bq(B6n,"Enumerator");wAn(281,1,{281:1},rRn),MWn.Fb=function(n){var t;return this===n||!!cL(n,281)&&(t=BB(n,281),this.f==t.f&&vG(this.i,t.i)&&pG(this.a,0!=(256&this.f)?0!=(256&t.f)?t.a:null:0!=(256&t.f)?null:t.a)&&pG(this.d,t.d)&&pG(this.g,t.g)&&pG(this.e,t.e)&&Spn(this,t))},MWn.Hb=function(){return this.f},MWn.Ib=function(){return M_n(this)},MWn.f=0;var kAt,jAt,EAt,TAt=0,MAt=0,SAt=0,PAt=0,CAt=0,IAt=0,OAt=0,AAt=0,$At=0,LAt=0,NAt=0,xAt=0,DAt=0;vX(B6n,"URI",281),wAn(1091,43,tYn,Sm),MWn.zc=function(n,t){return BB(mZ(this,SD(n),BB(t,281)),281)},vX(B6n,"URI/URICache",1091),wAn(497,63,h8n,fo,rG),MWn.hi=function(){return!0},vX(B6n,"UniqueEList",497),wAn(581,60,BVn,L7),vX(B6n,"WrappedException",581);var RAt,KAt=bq(q5n,s9n),_At=bq(q5n,h9n),FAt=bq(q5n,f9n),BAt=bq(q5n,l9n),HAt=bq(q5n,b9n),qAt=bq(q5n,"EClass"),GAt=bq(q5n,"EDataType");wAn(1183,43,tYn,Pm),MWn.xc=function(n){return XI(n)?SJ(this,n):qI(AY(this.f,n))},vX(q5n,"EDataType/Internal/ConversionDelegate/Factory/Registry/Impl",1183);var zAt,UAt,XAt=bq(q5n,"EEnum"),WAt=bq(q5n,w9n),VAt=bq(q5n,d9n),QAt=bq(q5n,g9n),YAt=bq(q5n,p9n),JAt=bq(q5n,v9n);wAn(1029,1,{},ho),MWn.Ib=function(){return"NIL"},vX(q5n,"EStructuralFeature/Internal/DynamicValueHolder/1",1029),wAn(1028,43,tYn,Cm),MWn.xc=function(n){return XI(n)?SJ(this,n):qI(AY(this.f,n))},vX(q5n,"EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl",1028);var ZAt,n$t,t$t,e$t,i$t,r$t,c$t,a$t,u$t,o$t,s$t,h$t,f$t,l$t,b$t,w$t,d$t,g$t,p$t,v$t,m$t,y$t,k$t,j$t,E$t,T$t,M$t,S$t,P$t,C$t,I$t,O$t=bq(q5n,m9n),A$t=bq(q5n,"EValidator/PatternMatcher"),$$t=bq(y9n,"FeatureMap/Entry");wAn(535,1,{72:1},CI),MWn.ak=function(){return this.a},MWn.dd=function(){return this.b},vX(l6n,"BasicEObjectImpl/1",535),wAn(1027,1,k9n,II),MWn.Wj=function(n){return V5(this.a,this.b,n)},MWn.fj=function(){return ZJ(this.a,this.b)},MWn.Wb=function(n){NJ(this.a,this.b,n)},MWn.Xj=function(){PW(this.a,this.b)},vX(l6n,"BasicEObjectImpl/4",1027),wAn(1983,1,{108:1}),MWn.bk=function(n){this.e=0==n?M$t:x8(Ant,HWn,1,n,5,1)},MWn.Ch=function(n){return this.e[n]},MWn.Dh=function(n,t){this.e[n]=t},MWn.Eh=function(n){this.e[n]=null},MWn.ck=function(){return this.c},MWn.dk=function(){throw Hp(new pv)},MWn.ek=function(){throw Hp(new pv)},MWn.fk=function(){return this.d},MWn.gk=function(){return null!=this.e},MWn.hk=function(n){this.c=n},MWn.ik=function(n){throw Hp(new pv)},MWn.jk=function(n){throw Hp(new pv)},MWn.kk=function(n){this.d=n},vX(l6n,"BasicEObjectImpl/EPropertiesHolderBaseImpl",1983),wAn(185,1983,{108:1},Kf),MWn.dk=function(){return this.a},MWn.ek=function(){return this.b},MWn.ik=function(n){this.a=n},MWn.jk=function(n){this.b=n},vX(l6n,"BasicEObjectImpl/EPropertiesHolderImpl",185),wAn(506,97,f6n,yo),MWn.Kg=function(){return this.f},MWn.Pg=function(){return this.k},MWn.Rg=function(n,t){this.g=n,this.i=t},MWn.Tg=function(){return 0==(2&this.j)?this.zh():this.ph().ck()},MWn.Vg=function(){return this.i},MWn.Mg=function(){return 0!=(1&this.j)},MWn.eh=function(){return this.g},MWn.kh=function(){return 0!=(4&this.j)},MWn.ph=function(){return!this.k&&(this.k=new Kf),this.k},MWn.th=function(n){this.ph().hk(n),n?this.j|=2:this.j&=-3},MWn.vh=function(n){this.ph().jk(n),n?this.j|=4:this.j&=-5},MWn.zh=function(){return(QX(),t$t).S},MWn.i=0,MWn.j=1,vX(l6n,"EObjectImpl",506),wAn(780,506,{105:1,92:1,90:1,56:1,108:1,49:1,97:1},jH),MWn.Ch=function(n){return this.e[n]},MWn.Dh=function(n,t){this.e[n]=t},MWn.Eh=function(n){this.e[n]=null},MWn.Tg=function(){return this.d},MWn.Yg=function(n){return Awn(this.d,n)},MWn.$g=function(){return this.d},MWn.dh=function(){return null!=this.e},MWn.ph=function(){return!this.k&&(this.k=new ko),this.k},MWn.th=function(n){this.d=n},MWn.yh=function(){var n;return null==this.e&&(n=bX(this.d),this.e=0==n?S$t:x8(Ant,HWn,1,n,5,1)),this},MWn.Ah=function(){return 0},vX(l6n,"DynamicEObjectImpl",780),wAn(1376,780,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1},fq),MWn.Fb=function(n){return this===n},MWn.Hb=function(){return PN(this)},MWn.th=function(n){this.d=n,this.b=NNn(n,"key"),this.c=NNn(n,E6n)},MWn.Sh=function(){var n;return-1==this.a&&(n=J7(this,this.b),this.a=null==n?0:nsn(n)),this.a},MWn.cd=function(){return J7(this,this.b)},MWn.dd=function(){return J7(this,this.c)},MWn.Th=function(n){this.a=n},MWn.Uh=function(n){NJ(this,this.b,n)},MWn.ed=function(n){var t;return t=J7(this,this.c),NJ(this,this.c,n),t},MWn.a=0,vX(l6n,"DynamicEObjectImpl/BasicEMapEntry",1376),wAn(1377,1,{108:1},ko),MWn.bk=function(n){throw Hp(new pv)},MWn.Ch=function(n){throw Hp(new pv)},MWn.Dh=function(n,t){throw Hp(new pv)},MWn.Eh=function(n){throw Hp(new pv)},MWn.ck=function(){throw Hp(new pv)},MWn.dk=function(){return this.a},MWn.ek=function(){return this.b},MWn.fk=function(){return this.c},MWn.gk=function(){throw Hp(new pv)},MWn.hk=function(n){throw Hp(new pv)},MWn.ik=function(n){this.a=n},MWn.jk=function(n){this.b=n},MWn.kk=function(n){this.c=n},vX(l6n,"DynamicEObjectImpl/DynamicEPropertiesHolderImpl",1377),wAn(510,150,{105:1,92:1,90:1,590:1,147:1,56:1,108:1,49:1,97:1,510:1,150:1,114:1,115:1},jo),MWn.Qg=function(n){return bkn(this,n)},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.d;case 2:return e?(!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),this.b):(!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),A8(this.b));case 3:return bZ(this);case 4:return!this.a&&(this.a=new $L(LOt,this,4)),this.a;case 5:return!this.c&&(this.c=new RL(LOt,this,5)),this.c}return U9(this,n-bX((gWn(),e$t)),itn(BB(yan(this,16),26)||e$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 3:return this.Cb&&(e=(i=this.Db>>16)>=0?bkn(this,e):this.Cb.ih(this,-1-i,null,e)),QG(this,BB(n,147),e)}return BB(itn(BB(yan(this,16),26)||(gWn(),e$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),e$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 2:return!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),BK(this.b,n,e);case 3:return QG(this,null,e);case 4:return!this.a&&(this.a=new $L(LOt,this,4)),_pn(this.a,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),e$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),e$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.d;case 2:return!!this.b&&0!=this.b.f;case 3:return!!bZ(this);case 4:return!!this.a&&0!=this.a.i;case 5:return!!this.c&&0!=this.c.i}return O3(this,n-bX((gWn(),e$t)),itn(BB(yan(this,16),26)||e$t,n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void pq(this,SD(t));case 2:return!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),void tan(this.b,t);case 3:return void ONn(this,BB(t,147));case 4:return!this.a&&(this.a=new $L(LOt,this,4)),sqn(this.a),!this.a&&(this.a=new $L(LOt,this,4)),void pX(this.a,BB(t,14));case 5:return!this.c&&(this.c=new RL(LOt,this,5)),sqn(this.c),!this.c&&(this.c=new RL(LOt,this,5)),void pX(this.c,BB(t,14))}Lbn(this,n-bX((gWn(),e$t)),itn(BB(yan(this,16),26)||e$t,n),t)},MWn.zh=function(){return gWn(),e$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void Bin(this,null);case 2:return!this.b&&(this.b=new Jx((gWn(),k$t),X$t,this)),void this.b.c.$b();case 3:return void ONn(this,null);case 4:return!this.a&&(this.a=new $L(LOt,this,4)),void sqn(this.a);case 5:return!this.c&&(this.c=new RL(LOt,this,5)),void sqn(this.c)}qfn(this,n-bX((gWn(),e$t)),itn(BB(yan(this,16),26)||e$t,n))},MWn.Ib=function(){return Vfn(this)},MWn.d=null,vX(l6n,"EAnnotationImpl",510),wAn(151,705,j9n,y9),MWn.Xh=function(n,t){n$(this,n,BB(t,42))},MWn.lk=function(n,t){return FK(this,BB(n,42),t)},MWn.pi=function(n){return BB(BB(this.c,69).pi(n),133)},MWn.Zh=function(){return BB(this.c,69).Zh()},MWn.$h=function(){return BB(this.c,69).$h()},MWn._h=function(n){return BB(this.c,69)._h(n)},MWn.mk=function(n,t){return BK(this,n,t)},MWn.Wj=function(n){return BB(this.c,76).Wj(n)},MWn.rj=function(){},MWn.fj=function(){return BB(this.c,76).fj()},MWn.tj=function(n,t,e){var i;return(i=BB(Utn(this.b).Nh().Jh(this.b),133)).Th(n),i.Uh(t),i.ed(e),i},MWn.uj=function(){return new Ip(this)},MWn.Wb=function(n){tan(this,n)},MWn.Xj=function(){BB(this.c,76).Xj()},vX(y9n,"EcoreEMap",151),wAn(158,151,j9n,Jx),MWn.qj=function(){var n,t,e,i,r;if(null==this.d){for(r=x8(oAt,c9n,63,2*this.f+1,0,1),e=this.c.Kc();e.e!=e.i.gc();)!(n=r[i=((t=BB(e.nj(),133)).Sh()&DWn)%r.length])&&(n=r[i]=new Ip(this)),n.Fc(t);this.d=r}},vX(l6n,"EAnnotationImpl/1",158),wAn(284,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,472:1,49:1,97:1,150:1,284:1,114:1,115:1}),MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),!!this.$j();case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q}return U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 9:return gX(this,e)}return BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Rj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i)}return O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.sh=function(n,t){var e;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void this.Lh(SD(t));case 2:return void Yfn(this,qy(TD(t)));case 3:return void nln(this,qy(TD(t)));case 4:return void Len(this,BB(t,19).a);case 5:return void this.ok(BB(t,19).a);case 8:return void Ihn(this,BB(t,138));case 9:return void((e=HTn(this,BB(t,87),null))&&e.Fi())}Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.zh=function(){return gWn(),E$t},MWn.Bh=function(n){var t;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void this.Lh(null);case 2:return void Yfn(this,!0);case 3:return void nln(this,!0);case 4:return void Len(this,0);case 5:return void this.ok(1);case 8:return void Ihn(this,null);case 9:return void((t=HTn(this,null,null))&&t.Fi())}qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.Gh=function(){Ikn(this),this.Bb|=1},MWn.Yj=function(){return Ikn(this)},MWn.Zj=function(){return this.t},MWn.$j=function(){var n;return(n=this.t)>1||-1==n},MWn.hi=function(){return 0!=(512&this.Bb)},MWn.nk=function(n,t){return Pfn(this,n,t)},MWn.ok=function(n){Nen(this,n)},MWn.Ib=function(){return KOn(this)},MWn.s=0,MWn.t=1,vX(l6n,"ETypedElementImpl",284),wAn(449,284,{105:1,92:1,90:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,449:1,284:1,114:1,115:1,677:1}),MWn.Qg=function(n){return Nyn(this,n)},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),!!this.$j();case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q;case 10:return hN(),0!=(this.Bb&k6n);case 11:return hN(),0!=(this.Bb&M9n);case 12:return hN(),0!=(this.Bb&_Qn);case 13:return this.j;case 14:return qLn(this);case 15:return hN(),0!=(this.Bb&T9n);case 16:return hN(),0!=(this.Bb&hVn);case 17:return dZ(this)}return U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 17:return this.Cb&&(e=(i=this.Db>>16)>=0?Nyn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,17,e)}return BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Qj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 9:return gX(this,e);case 17:return T_n(this,null,17,e)}return BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Rj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return this.$j();case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i);case 10:return 0==(this.Bb&k6n);case 11:return 0!=(this.Bb&M9n);case 12:return 0!=(this.Bb&_Qn);case 13:return null!=this.j;case 14:return null!=qLn(this);case 15:return 0!=(this.Bb&T9n);case 16:return 0!=(this.Bb&hVn);case 17:return!!dZ(this)}return O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.sh=function(n,t){var e;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void JZ(this,SD(t));case 2:return void Yfn(this,qy(TD(t)));case 3:return void nln(this,qy(TD(t)));case 4:return void Len(this,BB(t,19).a);case 5:return void this.ok(BB(t,19).a);case 8:return void Ihn(this,BB(t,138));case 9:return void((e=HTn(this,BB(t,87),null))&&e.Fi());case 10:return void Aln(this,qy(TD(t)));case 11:return void Nln(this,qy(TD(t)));case 12:return void $ln(this,qy(TD(t)));case 13:return void _I(this,SD(t));case 15:return void Lln(this,qy(TD(t)));case 16:return void qln(this,qy(TD(t)))}Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.zh=function(){return gWn(),j$t},MWn.Bh=function(n){var t;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&ACn(P5(BB(this.Cb,88)),4),void Nrn(this,null);case 2:return void Yfn(this,!0);case 3:return void nln(this,!0);case 4:return void Len(this,0);case 5:return void this.ok(1);case 8:return void Ihn(this,null);case 9:return void((t=HTn(this,null,null))&&t.Fi());case 10:return void Aln(this,!0);case 11:return void Nln(this,!1);case 12:return void $ln(this,!1);case 13:return this.i=null,void arn(this,null);case 15:return void Lln(this,!1);case 16:return void qln(this,!1)}qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.Gh=function(){kV(B7((IPn(),Z$t),this)),Ikn(this),this.Bb|=1},MWn.Gj=function(){return this.f},MWn.zj=function(){return qLn(this)},MWn.Hj=function(){return dZ(this)},MWn.Lj=function(){return null},MWn.pk=function(){return this.k},MWn.aj=function(){return this.n},MWn.Mj=function(){return oEn(this)},MWn.Nj=function(){var n,t,e,i,r,c,a,u,o;return this.p||((null==(e=dZ(this)).i&&qFn(e),e.i).length,(i=this.Lj())&&bX(dZ(i)),n=(a=(r=Ikn(this)).Bj())?0!=(1&a.i)?a==$Nt?ktt:a==ANt?Att:a==DNt?Ctt:a==xNt?Ptt:a==LNt?Rtt:a==RNt?_tt:a==NNt?Ttt:Stt:a:null,t=qLn(this),u=r.zj(),bbn(this),0!=(this.Bb&hVn)&&((c=mjn((IPn(),Z$t),e))&&c!=this||(c=Z1(B7(Z$t,this))))?this.p=new AI(this,c):this.$j()?this.rk()?i?0!=(this.Bb&T9n)?n?this.sk()?this.p=new lQ(47,n,this,i):this.p=new lQ(5,n,this,i):this.sk()?this.p=new w4(46,this,i):this.p=new w4(4,this,i):n?this.sk()?this.p=new lQ(49,n,this,i):this.p=new lQ(7,n,this,i):this.sk()?this.p=new w4(48,this,i):this.p=new w4(6,this,i):0!=(this.Bb&T9n)?n?n==Hnt?this.p=new PB(50,VOt,this):this.sk()?this.p=new PB(43,n,this):this.p=new PB(1,n,this):this.sk()?this.p=new RY(42,this):this.p=new RY(0,this):n?n==Hnt?this.p=new PB(41,VOt,this):this.sk()?this.p=new PB(45,n,this):this.p=new PB(3,n,this):this.sk()?this.p=new RY(44,this):this.p=new RY(2,this):cL(r,148)?n==$$t?this.p=new RY(40,this):0!=(512&this.Bb)?0!=(this.Bb&T9n)?this.p=n?new PB(9,n,this):new RY(8,this):this.p=n?new PB(11,n,this):new RY(10,this):0!=(this.Bb&T9n)?this.p=n?new PB(13,n,this):new RY(12,this):this.p=n?new PB(15,n,this):new RY(14,this):i?(o=i.t)>1||-1==o?this.sk()?0!=(this.Bb&T9n)?this.p=n?new lQ(25,n,this,i):new w4(24,this,i):this.p=n?new lQ(27,n,this,i):new w4(26,this,i):0!=(this.Bb&T9n)?this.p=n?new lQ(29,n,this,i):new w4(28,this,i):this.p=n?new lQ(31,n,this,i):new w4(30,this,i):this.sk()?0!=(this.Bb&T9n)?this.p=n?new lQ(33,n,this,i):new w4(32,this,i):this.p=n?new lQ(35,n,this,i):new w4(34,this,i):0!=(this.Bb&T9n)?this.p=n?new lQ(37,n,this,i):new w4(36,this,i):this.p=n?new lQ(39,n,this,i):new w4(38,this,i):this.sk()?0!=(this.Bb&T9n)?this.p=n?new PB(17,n,this):new RY(16,this):this.p=n?new PB(19,n,this):new RY(18,this):0!=(this.Bb&T9n)?this.p=n?new PB(21,n,this):new RY(20,this):this.p=n?new PB(23,n,this):new RY(22,this):this.qk()?this.sk()?this.p=new CB(BB(r,26),this,i):this.p=new mJ(BB(r,26),this,i):cL(r,148)?n==$$t?this.p=new RY(40,this):0!=(this.Bb&T9n)?this.p=n?new nz(t,u,this,(Bwn(),a==ANt?q$t:a==$Nt?K$t:a==LNt?G$t:a==DNt?H$t:a==xNt?B$t:a==RNt?U$t:a==NNt?_$t:a==ONt?F$t:z$t)):new dQ(BB(r,148),t,u,this):this.p=n?new ZG(t,u,this,(Bwn(),a==ANt?q$t:a==$Nt?K$t:a==LNt?G$t:a==DNt?H$t:a==xNt?B$t:a==RNt?U$t:a==NNt?_$t:a==ONt?F$t:z$t)):new wQ(BB(r,148),t,u,this):this.rk()?i?0!=(this.Bb&T9n)?this.sk()?this.p=new NB(BB(r,26),this,i):this.p=new LB(BB(r,26),this,i):this.sk()?this.p=new $B(BB(r,26),this,i):this.p=new IB(BB(r,26),this,i):0!=(this.Bb&T9n)?this.sk()?this.p=new eD(BB(r,26),this):this.p=new tD(BB(r,26),this):this.sk()?this.p=new nD(BB(r,26),this):this.p=new Zx(BB(r,26),this):this.sk()?i?0!=(this.Bb&T9n)?this.p=new xB(BB(r,26),this,i):this.p=new OB(BB(r,26),this,i):0!=(this.Bb&T9n)?this.p=new rD(BB(r,26),this):this.p=new iD(BB(r,26),this):i?0!=(this.Bb&T9n)?this.p=new DB(BB(r,26),this,i):this.p=new AB(BB(r,26),this,i):0!=(this.Bb&T9n)?this.p=new cD(BB(r,26),this):this.p=new cG(BB(r,26),this)),this.p},MWn.Ij=function(){return 0!=(this.Bb&k6n)},MWn.qk=function(){return!1},MWn.rk=function(){return!1},MWn.Jj=function(){return 0!=(this.Bb&hVn)},MWn.Oj=function(){return hnn(this)},MWn.sk=function(){return!1},MWn.Kj=function(){return 0!=(this.Bb&T9n)},MWn.tk=function(n){this.k=n},MWn.Lh=function(n){JZ(this,n)},MWn.Ib=function(){return ERn(this)},MWn.e=!1,MWn.n=0,vX(l6n,"EStructuralFeatureImpl",449),wAn(322,449,{105:1,92:1,90:1,34:1,147:1,191:1,56:1,170:1,66:1,108:1,472:1,49:1,97:1,322:1,150:1,449:1,284:1,114:1,115:1,677:1},Om),MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),!!NIn(this);case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q;case 10:return hN(),0!=(this.Bb&k6n);case 11:return hN(),0!=(this.Bb&M9n);case 12:return hN(),0!=(this.Bb&_Qn);case 13:return this.j;case 14:return qLn(this);case 15:return hN(),0!=(this.Bb&T9n);case 16:return hN(),0!=(this.Bb&hVn);case 17:return dZ(this);case 18:return hN(),0!=(this.Bb&h6n);case 19:return t?uun(this):x6(this)}return U9(this,n-bX((gWn(),i$t)),itn(BB(yan(this,16),26)||i$t,n),t,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return NIn(this);case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i);case 10:return 0==(this.Bb&k6n);case 11:return 0!=(this.Bb&M9n);case 12:return 0!=(this.Bb&_Qn);case 13:return null!=this.j;case 14:return null!=qLn(this);case 15:return 0!=(this.Bb&T9n);case 16:return 0!=(this.Bb&hVn);case 17:return!!dZ(this);case 18:return 0!=(this.Bb&h6n);case 19:return!!x6(this)}return O3(this,n-bX((gWn(),i$t)),itn(BB(yan(this,16),26)||i$t,n))},MWn.sh=function(n,t){var e;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void JZ(this,SD(t));case 2:return void Yfn(this,qy(TD(t)));case 3:return void nln(this,qy(TD(t)));case 4:return void Len(this,BB(t,19).a);case 5:return void Uj(this,BB(t,19).a);case 8:return void Ihn(this,BB(t,138));case 9:return void((e=HTn(this,BB(t,87),null))&&e.Fi());case 10:return void Aln(this,qy(TD(t)));case 11:return void Nln(this,qy(TD(t)));case 12:return void $ln(this,qy(TD(t)));case 13:return void _I(this,SD(t));case 15:return void Lln(this,qy(TD(t)));case 16:return void qln(this,qy(TD(t)));case 18:return void Gln(this,qy(TD(t)))}Lbn(this,n-bX((gWn(),i$t)),itn(BB(yan(this,16),26)||i$t,n),t)},MWn.zh=function(){return gWn(),i$t},MWn.Bh=function(n){var t;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&ACn(P5(BB(this.Cb,88)),4),void Nrn(this,null);case 2:return void Yfn(this,!0);case 3:return void nln(this,!0);case 4:return void Len(this,0);case 5:return this.b=0,void Nen(this,1);case 8:return void Ihn(this,null);case 9:return void((t=HTn(this,null,null))&&t.Fi());case 10:return void Aln(this,!0);case 11:return void Nln(this,!1);case 12:return void $ln(this,!1);case 13:return this.i=null,void arn(this,null);case 15:return void Lln(this,!1);case 16:return void qln(this,!1);case 18:return void Gln(this,!1)}qfn(this,n-bX((gWn(),i$t)),itn(BB(yan(this,16),26)||i$t,n))},MWn.Gh=function(){uun(this),kV(B7((IPn(),Z$t),this)),Ikn(this),this.Bb|=1},MWn.$j=function(){return NIn(this)},MWn.nk=function(n,t){return this.b=0,this.a=null,Pfn(this,n,t)},MWn.ok=function(n){Uj(this,n)},MWn.Ib=function(){var n;return 0!=(64&this.Db)?ERn(this):((n=new fN(ERn(this))).a+=" (iD: ",yE(n,0!=(this.Bb&h6n)),n.a+=")",n.a)},MWn.b=0,vX(l6n,"EAttributeImpl",322),wAn(351,438,{105:1,92:1,90:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1}),MWn.uk=function(n){return n.Tg()==this},MWn.Qg=function(n){return fyn(this,n)},MWn.Rg=function(n,t){this.w=null,this.Db=t<<16|255&this.Db,this.Cb=n},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return iyn(this);case 4:return this.zj();case 5:return this.F;case 6:return t?Utn(this):wZ(this);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),this.A}return U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?fyn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,6,e)}return BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Qj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 6:return T_n(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),_pn(this.A,n,e)}return BB(itn(BB(yan(this,16),26)||this.zh(),t),66).Nj().Rj(this,fgn(this),t-bX(this.zh()),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!iyn(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!wZ(this);case 7:return!!this.A&&0!=this.A.i}return O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void IA(this,SD(t));case 5:return void Yqn(this,SD(t));case 7:return!this.A&&(this.A=new NL(O$t,this,7)),sqn(this.A),!this.A&&(this.A=new NL(O$t,this,7)),void pX(this.A,BB(t,14))}Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.zh=function(){return gWn(),c$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,179)&&(BB(this.Cb,179).tb=null),void Nrn(this,null);case 2:return Dsn(this,null),void xen(this,this.D);case 5:return void Yqn(this,null);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),void sqn(this.A)}qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.yj=function(){var n;return-1==this.G&&(this.G=(n=Utn(this))?uvn(n.Mh(),this):-1),this.G},MWn.zj=function(){return null},MWn.Aj=function(){return Utn(this)},MWn.vk=function(){return this.v},MWn.Bj=function(){return iyn(this)},MWn.Cj=function(){return null!=this.D?this.D:this.B},MWn.Dj=function(){return this.F},MWn.wj=function(n){return SFn(this,n)},MWn.wk=function(n){this.v=n},MWn.xk=function(n){Urn(this,n)},MWn.yk=function(n){this.C=n},MWn.Lh=function(n){ZZ(this,n)},MWn.Ib=function(){return Cwn(this)},MWn.C=null,MWn.D=null,MWn.G=-1,vX(l6n,"EClassifierImpl",351),wAn(88,351,{105:1,92:1,90:1,26:1,138:1,147:1,191:1,56:1,108:1,49:1,97:1,88:1,351:1,150:1,473:1,114:1,115:1,676:1},_f),MWn.uk=function(n){return QR(this,n.Tg())},MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return iyn(this);case 4:return null;case 5:return this.F;case 6:return t?Utn(this):wZ(this);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),this.A;case 8:return hN(),0!=(256&this.Bb);case 9:return hN(),0!=(512&this.Bb);case 10:return kY(this);case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),this.q;case 12:return YBn(this);case 13:return RBn(this);case 14:return RBn(this),this.r;case 15:return YBn(this),this.k;case 16:return WPn(this);case 17:return gBn(this);case 18:return qFn(this);case 19:return CLn(this);case 20:return YBn(this),this.o;case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),this.s;case 22:return a4(this);case 23:return HDn(this)}return U9(this,n-bX((gWn(),r$t)),itn(BB(yan(this,16),26)||r$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?fyn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,6,e);case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),Ywn(this.q,n,e);case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),Ywn(this.s,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),r$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),r$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 6:return T_n(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),_pn(this.A,n,e);case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),_pn(this.q,n,e);case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),_pn(this.s,n,e);case 22:return _pn(a4(this),n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),r$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),r$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!iyn(this);case 4:return!1;case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!wZ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0!=(256&this.Bb);case 9:return 0!=(512&this.Bb);case 10:return!(!this.u||0==a4(this.u.a).i||this.n&&Rvn(this.n));case 11:return!!this.q&&0!=this.q.i;case 12:return 0!=YBn(this).i;case 13:return 0!=RBn(this).i;case 14:return RBn(this),0!=this.r.i;case 15:return YBn(this),0!=this.k.i;case 16:return 0!=WPn(this).i;case 17:return 0!=gBn(this).i;case 18:return 0!=qFn(this).i;case 19:return 0!=CLn(this).i;case 20:return YBn(this),!!this.o;case 21:return!!this.s&&0!=this.s.i;case 22:return!!this.n&&Rvn(this.n);case 23:return 0!=HDn(this).i}return O3(this,n-bX((gWn(),r$t)),itn(BB(yan(this,16),26)||r$t,n))},MWn.oh=function(n){return(null==this.i||this.q&&0!=this.q.i?null:NNn(this,n))||hUn(this,n)},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void IA(this,SD(t));case 5:return void Yqn(this,SD(t));case 7:return!this.A&&(this.A=new NL(O$t,this,7)),sqn(this.A),!this.A&&(this.A=new NL(O$t,this,7)),void pX(this.A,BB(t,14));case 8:return void Jfn(this,qy(TD(t)));case 9:return void tln(this,qy(TD(t)));case 10:return vqn(kY(this)),void pX(kY(this),BB(t,14));case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),sqn(this.q),!this.q&&(this.q=new eU(QAt,this,11,10)),void pX(this.q,BB(t,14));case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),sqn(this.s),!this.s&&(this.s=new eU(FAt,this,21,17)),void pX(this.s,BB(t,14));case 22:return sqn(a4(this)),void pX(a4(this),BB(t,14))}Lbn(this,n-bX((gWn(),r$t)),itn(BB(yan(this,16),26)||r$t,n),t)},MWn.zh=function(){return gWn(),r$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,179)&&(BB(this.Cb,179).tb=null),void Nrn(this,null);case 2:return Dsn(this,null),void xen(this,this.D);case 5:return void Yqn(this,null);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),void sqn(this.A);case 8:return void Jfn(this,!1);case 9:return void tln(this,!1);case 10:return void(this.u&&vqn(this.u));case 11:return!this.q&&(this.q=new eU(QAt,this,11,10)),void sqn(this.q);case 21:return!this.s&&(this.s=new eU(FAt,this,21,17)),void sqn(this.s);case 22:return void(this.n&&sqn(this.n))}qfn(this,n-bX((gWn(),r$t)),itn(BB(yan(this,16),26)||r$t,n))},MWn.Gh=function(){var n,t;if(YBn(this),RBn(this),WPn(this),gBn(this),qFn(this),CLn(this),HDn(this),a6(XB(P5(this))),this.s)for(n=0,t=this.s.i;n<t;++n)vx(Wtn(this.s,n));if(this.q)for(n=0,t=this.q.i;n<t;++n)vx(Wtn(this.q,n));Cfn((IPn(),Z$t),this).ne(),this.Bb|=1},MWn.Ib=function(){return dEn(this)},MWn.k=null,MWn.r=null,vX(l6n,"EClassImpl",88),wAn(1994,1993,D9n),MWn.Vh=function(n,t){return LFn(this,n,t)},MWn.Wh=function(n){return LFn(this,this.i,n)},MWn.Xh=function(n,t){qOn(this,n,t)},MWn.Yh=function(n){tAn(this,n)},MWn.lk=function(n,t){return Ywn(this,n,t)},MWn.pi=function(n){return F9(this,n)},MWn.mk=function(n,t){return _pn(this,n,t)},MWn.mi=function(n,t){return fBn(this,n,t)},MWn.Zh=function(){return new ax(this)},MWn.$h=function(){return new ux(this)},MWn._h=function(n){return sin(this,n)},vX(y9n,"NotifyingInternalEListImpl",1994),wAn(622,1994,R9n),MWn.Hc=function(n){return bqn(this,n)},MWn.Zi=function(n,t,e,i,r){return yZ(this,n,t,e,i,r)},MWn.$i=function(n){Lv(this,n)},MWn.Wj=function(n){return this},MWn.ak=function(){return itn(this.e.Tg(),this.aj())},MWn._i=function(){return this.ak()},MWn.aj=function(){return Awn(this.e.Tg(),this.ak())},MWn.zk=function(){return BB(this.ak().Yj(),26).Bj()},MWn.Ak=function(){return Cvn(BB(this.ak(),18)).n},MWn.Ai=function(){return this.e},MWn.Bk=function(){return!0},MWn.Ck=function(){return!1},MWn.Dk=function(){return!1},MWn.Ek=function(){return!1},MWn.Xc=function(n){return uvn(this,n)},MWn.cj=function(n,t){var e;return e=BB(n,49),this.Dk()?this.Bk()?e.gh(this.e,this.Ak(),this.zk(),t):e.gh(this.e,Awn(e.Tg(),Cvn(BB(this.ak(),18))),null,t):e.gh(this.e,-1-this.aj(),null,t)},MWn.dj=function(n,t){var e;return e=BB(n,49),this.Dk()?this.Bk()?e.ih(this.e,this.Ak(),this.zk(),t):e.ih(this.e,Awn(e.Tg(),Cvn(BB(this.ak(),18))),null,t):e.ih(this.e,-1-this.aj(),null,t)},MWn.rk=function(){return!1},MWn.Fk=function(){return!0},MWn.wj=function(n){return x3(this.d,n)},MWn.ej=function(){return mA(this.e)},MWn.fj=function(){return 0!=this.i},MWn.ri=function(n){return Den(this.d,n)},MWn.li=function(n,t){return this.Fk()&&this.Ek()?GOn(this,n,BB(t,56)):t},MWn.Gk=function(n){return n.kh()?tfn(this.e,BB(n,49)):n},MWn.Wb=function(n){J$(this,n)},MWn.Pc=function(){return H9(this)},MWn.Qc=function(n){var t;if(this.Ek())for(t=this.i-1;t>=0;--t)Wtn(this,t);return Qwn(this,n)},MWn.Xj=function(){sqn(this)},MWn.oi=function(n,t){return _en(this,n,t)},vX(y9n,"EcoreEList",622),wAn(496,622,R9n,yH),MWn.ai=function(){return!1},MWn.aj=function(){return this.c},MWn.bj=function(){return!1},MWn.Fk=function(){return!0},MWn.hi=function(){return!0},MWn.li=function(n,t){return t},MWn.ni=function(){return!1},MWn.c=0,vX(y9n,"EObjectEList",496),wAn(85,496,R9n,$L),MWn.bj=function(){return!0},MWn.Dk=function(){return!1},MWn.rk=function(){return!0},vX(y9n,"EObjectContainmentEList",85),wAn(545,85,R9n,LL),MWn.ci=function(){this.b=!0},MWn.fj=function(){return this.b},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.b,this.b=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.b=!1},MWn.b=!1,vX(y9n,"EObjectContainmentEList/Unsettable",545),wAn(1140,545,R9n,YG),MWn.ii=function(n,t){var e,i;return e=BB(Iln(this,n,t),87),mA(this.e)&&Lv(this,new j9(this.a,7,(gWn(),a$t),iln(t),cL(i=e.c,88)?BB(i,26):d$t,n)),e},MWn.jj=function(n,t){return Zwn(this,BB(n,87),t)},MWn.kj=function(n,t){return Jwn(this,BB(n,87),t)},MWn.lj=function(n,t,e){return _jn(this,BB(n,87),BB(t,87),e)},MWn.Zi=function(n,t,e,i,r){switch(n){case 3:return yZ(this,n,t,e,i,this.i>1);case 5:return yZ(this,n,t,e,i,this.i-BB(e,15).gc()>0);default:return new N7(this.e,n,this.c,t,e,i,!0)}},MWn.ij=function(){return!0},MWn.fj=function(){return Rvn(this)},MWn.Xj=function(){sqn(this)},vX(l6n,"EClassImpl/1",1140),wAn(1154,1153,Z8n),MWn.ui=function(n){var t,e,i,r,c,a,u;if(8!=(e=n.xi())){if(0==(i=apn(n)))switch(e){case 1:case 9:null!=(u=n.Bi())&&(!(t=P5(BB(u,473))).c&&(t.c=new Bo),snn(t.c,n.Ai())),null!=(a=n.zi())&&0==(1&(r=BB(a,473)).Bb)&&(!(t=P5(r)).c&&(t.c=new Bo),f9(t.c,BB(n.Ai(),26)));break;case 3:null!=(a=n.zi())&&0==(1&(r=BB(a,473)).Bb)&&(!(t=P5(r)).c&&(t.c=new Bo),f9(t.c,BB(n.Ai(),26)));break;case 5:if(null!=(a=n.zi()))for(c=BB(a,14).Kc();c.Ob();)0==(1&(r=BB(c.Pb(),473)).Bb)&&(!(t=P5(r)).c&&(t.c=new Bo),f9(t.c,BB(n.Ai(),26)));break;case 4:null!=(u=n.Bi())&&0==(1&(r=BB(u,473)).Bb)&&(!(t=P5(r)).c&&(t.c=new Bo),snn(t.c,n.Ai()));break;case 6:if(null!=(u=n.Bi()))for(c=BB(u,14).Kc();c.Ob();)0==(1&(r=BB(c.Pb(),473)).Bb)&&(!(t=P5(r)).c&&(t.c=new Bo),snn(t.c,n.Ai()))}this.Hk(i)}},MWn.Hk=function(n){dRn(this,n)},MWn.b=63,vX(l6n,"ESuperAdapter",1154),wAn(1155,1154,Z8n,dp),MWn.Hk=function(n){ACn(this,n)},vX(l6n,"EClassImpl/10",1155),wAn(1144,696,R9n),MWn.Vh=function(n,t){return BTn(this,n,t)},MWn.Wh=function(n){return bmn(this,n)},MWn.Xh=function(n,t){Ifn(this,n,t)},MWn.Yh=function(n){c6(this,n)},MWn.pi=function(n){return F9(this,n)},MWn.mi=function(n,t){return onn(this,n,t)},MWn.lk=function(n,t){throw Hp(new pv)},MWn.Zh=function(){return new ax(this)},MWn.$h=function(){return new ux(this)},MWn._h=function(n){return sin(this,n)},MWn.mk=function(n,t){throw Hp(new pv)},MWn.Wj=function(n){return this},MWn.fj=function(){return 0!=this.i},MWn.Wb=function(n){throw Hp(new pv)},MWn.Xj=function(){throw Hp(new pv)},vX(y9n,"EcoreEList/UnmodifiableEList",1144),wAn(319,1144,R9n,NO),MWn.ni=function(){return!1},vX(y9n,"EcoreEList/UnmodifiableEList/FastCompare",319),wAn(1147,319,R9n,don),MWn.Xc=function(n){var t,e;if(cL(n,170)&&-1!=(t=BB(n,170).aj()))for(e=this.i;t<e;++t)if(GI(this.g[t])===GI(n))return t;return-1},vX(l6n,"EClassImpl/1EAllStructuralFeaturesList",1147),wAn(1141,497,h8n,Eo),MWn.ri=function(n){return x8(VAt,B9n,87,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/1EGenericSuperTypeEList",1141),wAn(623,497,h8n,To),MWn.ri=function(n){return x8(FAt,N9n,170,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/1EStructuralFeatureUniqueEList",623),wAn(741,497,h8n,Mo),MWn.ri=function(n){return x8(JAt,N9n,18,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/1ReferenceList",741),wAn(1142,497,h8n,gp),MWn.bi=function(n,t){tz(this,BB(t,34))},MWn.ri=function(n){return x8(BAt,N9n,34,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/2",1142),wAn(1143,497,h8n,So),MWn.ri=function(n){return x8(BAt,N9n,34,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/3",1143),wAn(1145,319,R9n,EH),MWn.Fc=function(n){return mB(this,BB(n,34))},MWn.Yh=function(n){JE(this,BB(n,34))},vX(l6n,"EClassImpl/4",1145),wAn(1146,319,R9n,TH),MWn.Fc=function(n){return yB(this,BB(n,18))},MWn.Yh=function(n){ZE(this,BB(n,18))},vX(l6n,"EClassImpl/5",1146),wAn(1148,497,h8n,Po),MWn.ri=function(n){return x8(QAt,x9n,59,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/6",1148),wAn(1149,497,h8n,Co),MWn.ri=function(n){return x8(JAt,N9n,18,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/7",1149),wAn(1997,1996,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,67:1,58:1,69:1}),MWn.Vh=function(n,t){return uFn(this,n,t)},MWn.Wh=function(n){return uFn(this,this.Vi(),n)},MWn.Xh=function(n,t){eAn(this,n,t)},MWn.Yh=function(n){OOn(this,n)},MWn.lk=function(n,t){return wmn(this,n,t)},MWn.mk=function(n,t){return Fpn(this,n,t)},MWn.mi=function(n,t){return oFn(this,n,t)},MWn.pi=function(n){return this.Oi(n)},MWn.Zh=function(){return new ax(this)},MWn.Gi=function(){return this.Ji()},MWn.$h=function(){return new ux(this)},MWn._h=function(n){return sin(this,n)},vX(y9n,"DelegatingNotifyingInternalEListImpl",1997),wAn(742,1997,H9n),MWn.ai=function(){var n;return cL(n=itn(jY(this.b),this.aj()).Yj(),148)&&!cL(n,457)&&0==(1&n.Bj().i)},MWn.Hc=function(n){var t,e,i,r,c,a,u;if(this.Fk()){if((u=this.Vi())>4){if(!this.wj(n))return!1;if(this.rk()){if(a=(t=(e=BB(n,49)).Ug())==this.b&&(this.Dk()?e.Og(e.Vg(),BB(itn(jY(this.b),this.aj()).Yj(),26).Bj())==Cvn(BB(itn(jY(this.b),this.aj()),18)).n:-1-e.Vg()==this.aj()),this.Ek()&&!a&&!t&&e.Zg())for(i=0;i<u;++i)if(GI(Gz(this,this.Oi(i)))===GI(n))return!0;return a}if(this.Dk()&&!this.Ck()){if(GI(r=BB(n,56).ah(Cvn(BB(itn(jY(this.b),this.aj()),18))))===GI(this.b))return!0;if(null==r||!BB(r,56).kh())return!1}}if(c=this.Li(n),this.Ek()&&!c)for(i=0;i<u;++i)if(GI(e=Gz(this,this.Oi(i)))===GI(n))return!0;return c}return this.Li(n)},MWn.Zi=function(n,t,e,i,r){return new N7(this.b,n,this.aj(),t,e,i,r)},MWn.$i=function(n){ban(this.b,n)},MWn.Wj=function(n){return this},MWn._i=function(){return itn(jY(this.b),this.aj())},MWn.aj=function(){return Awn(jY(this.b),itn(jY(this.b),this.aj()))},MWn.Ai=function(){return this.b},MWn.Bk=function(){return!!itn(jY(this.b),this.aj()).Yj().Bj()},MWn.bj=function(){var n;return!(!cL(n=itn(jY(this.b),this.aj()),99)||0==(BB(n,18).Bb&h6n)&&!Cvn(BB(n,18)))},MWn.Ck=function(){var n,t,e;return!!cL(n=itn(jY(this.b),this.aj()),99)&&!!(t=Cvn(BB(n,18)))&&((e=t.t)>1||-1==e)},MWn.Dk=function(){var n;return!!cL(n=itn(jY(this.b),this.aj()),99)&&!!Cvn(BB(n,18))},MWn.Ek=function(){var n;return!!cL(n=itn(jY(this.b),this.aj()),99)&&0!=(BB(n,18).Bb&BQn)},MWn.Xc=function(n){var t,e,i;if((e=this.Qi(n))>=0)return e;if(this.Fk())for(t=0,i=this.Vi();t<i;++t)if(GI(Gz(this,this.Oi(t)))===GI(n))return t;return-1},MWn.cj=function(n,t){var e;return e=BB(n,49),this.Dk()?this.Bk()?e.gh(this.b,Cvn(BB(itn(jY(this.b),this.aj()),18)).n,BB(itn(jY(this.b),this.aj()).Yj(),26).Bj(),t):e.gh(this.b,Awn(e.Tg(),Cvn(BB(itn(jY(this.b),this.aj()),18))),null,t):e.gh(this.b,-1-this.aj(),null,t)},MWn.dj=function(n,t){var e;return e=BB(n,49),this.Dk()?this.Bk()?e.ih(this.b,Cvn(BB(itn(jY(this.b),this.aj()),18)).n,BB(itn(jY(this.b),this.aj()).Yj(),26).Bj(),t):e.ih(this.b,Awn(e.Tg(),Cvn(BB(itn(jY(this.b),this.aj()),18))),null,t):e.ih(this.b,-1-this.aj(),null,t)},MWn.rk=function(){var n;return!!cL(n=itn(jY(this.b),this.aj()),99)&&0!=(BB(n,18).Bb&h6n)},MWn.Fk=function(){return cL(itn(jY(this.b),this.aj()).Yj(),88)},MWn.wj=function(n){return itn(jY(this.b),this.aj()).Yj().wj(n)},MWn.ej=function(){return mA(this.b)},MWn.fj=function(){return!this.Ri()},MWn.hi=function(){return itn(jY(this.b),this.aj()).hi()},MWn.li=function(n,t){return eGn(this,n,t)},MWn.Wb=function(n){vqn(this),pX(this,BB(n,15))},MWn.Pc=function(){var n;if(this.Ek())for(n=this.Vi()-1;n>=0;--n)eGn(this,n,this.Oi(n));return this.Wi()},MWn.Qc=function(n){var t;if(this.Ek())for(t=this.Vi()-1;t>=0;--t)eGn(this,t,this.Oi(t));return this.Xi(n)},MWn.Xj=function(){vqn(this)},MWn.oi=function(n,t){return B9(this,n,t)},vX(y9n,"DelegatingEcoreEList",742),wAn(1150,742,H9n,uR),MWn.Hi=function(n,t){lD(this,n,BB(t,26))},MWn.Ii=function(n){e$(this,BB(n,26))},MWn.Oi=function(n){var t;return cL(t=BB(Wtn(a4(this.a),n),87).c,88)?BB(t,26):(gWn(),d$t)},MWn.Ti=function(n){var t;return cL(t=BB(fDn(a4(this.a),n),87).c,88)?BB(t,26):(gWn(),d$t)},MWn.Ui=function(n,t){return dmn(this,n,BB(t,26))},MWn.ai=function(){return!1},MWn.Zi=function(n,t,e,i,r){return null},MWn.Ji=function(){return new pp(this)},MWn.Ki=function(){sqn(a4(this.a))},MWn.Li=function(n){return Ufn(this,n)},MWn.Mi=function(n){var t;for(t=n.Kc();t.Ob();)if(!Ufn(this,t.Pb()))return!1;return!0},MWn.Ni=function(n){var t,e,i;if(cL(n,15)&&(i=BB(n,15)).gc()==a4(this.a).i){for(t=i.Kc(),e=new AL(this);t.Ob();)if(GI(t.Pb())!==GI(kpn(e)))return!1;return!0}return!1},MWn.Pi=function(){var n,t,e,i;for(t=1,n=new AL(a4(this.a));n.e!=n.i.gc();)t=31*t+((e=cL(i=BB(kpn(n),87).c,88)?BB(i,26):(gWn(),d$t))?PN(e):0);return t},MWn.Qi=function(n){var t,e,i,r;for(i=0,e=new AL(a4(this.a));e.e!=e.i.gc();){if(t=BB(kpn(e),87),GI(n)===GI(cL(r=t.c,88)?BB(r,26):(gWn(),d$t)))return i;++i}return-1},MWn.Ri=function(){return 0==a4(this.a).i},MWn.Si=function(){return null},MWn.Vi=function(){return a4(this.a).i},MWn.Wi=function(){var n,t,e,i,r,c;for(c=a4(this.a).i,r=x8(Ant,HWn,1,c,5,1),e=0,t=new AL(a4(this.a));t.e!=t.i.gc();)n=BB(kpn(t),87),r[e++]=cL(i=n.c,88)?BB(i,26):(gWn(),d$t);return r},MWn.Xi=function(n){var t,e,i,r;for(r=a4(this.a).i,n.length<r&&(n=Den(tsn(n).c,r)),n.length>r&&$X(n,r,null),e=0,t=new AL(a4(this.a));t.e!=t.i.gc();)$X(n,e++,cL(i=BB(kpn(t),87).c,88)?BB(i,26):(gWn(),d$t));return n},MWn.Yi=function(){var n,t,e,i,r;for((r=new Sk).a+="[",n=a4(this.a),t=0,i=a4(this.a).i;t<i;)cO(r,kN(cL(e=BB(Wtn(n,t),87).c,88)?BB(e,26):(gWn(),d$t))),++t<i&&(r.a+=FWn);return r.a+="]",r.a},MWn.$i=function(n){},MWn.aj=function(){return 10},MWn.Bk=function(){return!0},MWn.bj=function(){return!1},MWn.Ck=function(){return!1},MWn.Dk=function(){return!1},MWn.Ek=function(){return!0},MWn.rk=function(){return!1},MWn.Fk=function(){return!0},MWn.wj=function(n){return cL(n,88)},MWn.fj=function(){return Q0(this.a)},MWn.hi=function(){return!0},MWn.ni=function(){return!0},vX(l6n,"EClassImpl/8",1150),wAn(1151,1964,LVn,pp),MWn.Zc=function(n){return sin(this.a,n)},MWn.gc=function(){return a4(this.a.a).i},vX(l6n,"EClassImpl/8/1",1151),wAn(1152,497,h8n,Io),MWn.ri=function(n){return x8(HAt,HWn,138,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"EClassImpl/9",1152),wAn(1139,53,eYn,Im),vX(l6n,"EClassImpl/MyHashSet",1139),wAn(566,351,{105:1,92:1,90:1,138:1,148:1,834:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,150:1,114:1,115:1,676:1},Ev),MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return iyn(this);case 4:return this.zj();case 5:return this.F;case 6:return t?Utn(this):wZ(this);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),this.A;case 8:return hN(),0!=(256&this.Bb)}return U9(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!iyn(this);case 4:return null!=this.zj();case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!wZ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0==(256&this.Bb)}return O3(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void IA(this,SD(t));case 5:return void Yqn(this,SD(t));case 7:return!this.A&&(this.A=new NL(O$t,this,7)),sqn(this.A),!this.A&&(this.A=new NL(O$t,this,7)),void pX(this.A,BB(t,14));case 8:return void Zfn(this,qy(TD(t)))}Lbn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n),t)},MWn.zh=function(){return gWn(),u$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,179)&&(BB(this.Cb,179).tb=null),void Nrn(this,null);case 2:return Dsn(this,null),void xen(this,this.D);case 5:return void Yqn(this,null);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),void sqn(this.A);case 8:return void Zfn(this,!0)}qfn(this,n-bX(this.zh()),itn(BB(yan(this,16),26)||this.zh(),n))},MWn.Gh=function(){Cfn((IPn(),Z$t),this).ne(),this.Bb|=1},MWn.Fj=function(){var n,t;if(!this.c&&!(n=G$n(Utn(this))).dc())for(t=n.Kc();t.Ob();)N_n(this,SD(t.Pb()))&&Rln(this);return this.b},MWn.zj=function(){var n;if(!this.e){n=null;try{n=iyn(this)}catch(t){if(!cL(t=lun(t),102))throw Hp(t)}this.d=null,n&&0!=(1&n.i)&&(this.d=n==$Nt?(hN(),ptt):n==ANt?iln(0):n==DNt?new Nb(0):n==xNt?0:n==LNt?jgn(0):n==RNt?rln(0):n==NNt?Pnn(0):fun(0)),this.e=!0}return this.d},MWn.Ej=function(){return 0!=(256&this.Bb)},MWn.Ik=function(n){n&&(this.D="org.eclipse.emf.common.util.AbstractEnumerator")},MWn.xk=function(n){Urn(this,n),this.Ik(n)},MWn.yk=function(n){this.C=n,this.e=!1},MWn.Ib=function(){var n;return 0!=(64&this.Db)?Cwn(this):((n=new fN(Cwn(this))).a+=" (serializable: ",yE(n,0!=(256&this.Bb)),n.a+=")",n.a)},MWn.c=!1,MWn.d=null,MWn.e=!1,vX(l6n,"EDataTypeImpl",566),wAn(457,566,{105:1,92:1,90:1,138:1,148:1,834:1,671:1,147:1,191:1,56:1,108:1,49:1,97:1,351:1,457:1,150:1,114:1,115:1,676:1},Am),MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return null!=this.D?this.D:this.B;case 3:return iyn(this);case 4:return Qsn(this);case 5:return this.F;case 6:return t?Utn(this):wZ(this);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),this.A;case 8:return hN(),0!=(256&this.Bb);case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),this.a}return U9(this,n-bX((gWn(),o$t)),itn(BB(yan(this,16),26)||o$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 6:return this.Cb&&(e=(i=this.Db>>16)>=0?fyn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,6,e);case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),Ywn(this.a,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),o$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),o$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 6:return T_n(this,null,6,e);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),_pn(this.A,n,e);case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),_pn(this.a,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),o$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),o$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return null!=this.D&&this.D==this.F;case 3:return!!iyn(this);case 4:return!!Qsn(this);case 5:return null!=this.F&&this.F!=this.D&&this.F!=this.B;case 6:return!!wZ(this);case 7:return!!this.A&&0!=this.A.i;case 8:return 0==(256&this.Bb);case 9:return!!this.a&&0!=this.a.i}return O3(this,n-bX((gWn(),o$t)),itn(BB(yan(this,16),26)||o$t,n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void ZZ(this,SD(t));case 2:return void IA(this,SD(t));case 5:return void Yqn(this,SD(t));case 7:return!this.A&&(this.A=new NL(O$t,this,7)),sqn(this.A),!this.A&&(this.A=new NL(O$t,this,7)),void pX(this.A,BB(t,14));case 8:return void Zfn(this,qy(TD(t)));case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),sqn(this.a),!this.a&&(this.a=new eU(WAt,this,9,5)),void pX(this.a,BB(t,14))}Lbn(this,n-bX((gWn(),o$t)),itn(BB(yan(this,16),26)||o$t,n),t)},MWn.zh=function(){return gWn(),o$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,179)&&(BB(this.Cb,179).tb=null),void Nrn(this,null);case 2:return Dsn(this,null),void xen(this,this.D);case 5:return void Yqn(this,null);case 7:return!this.A&&(this.A=new NL(O$t,this,7)),void sqn(this.A);case 8:return void Zfn(this,!0);case 9:return!this.a&&(this.a=new eU(WAt,this,9,5)),void sqn(this.a)}qfn(this,n-bX((gWn(),o$t)),itn(BB(yan(this,16),26)||o$t,n))},MWn.Gh=function(){var n,t;if(this.a)for(n=0,t=this.a.i;n<t;++n)vx(Wtn(this.a,n));Cfn((IPn(),Z$t),this).ne(),this.Bb|=1},MWn.zj=function(){return Qsn(this)},MWn.wj=function(n){return null!=n},MWn.Ik=function(n){},vX(l6n,"EEnumImpl",457),wAn(573,438,{105:1,92:1,90:1,1940:1,678:1,147:1,191:1,56:1,108:1,49:1,97:1,573:1,150:1,114:1,115:1},jv),MWn.ne=function(){return this.zb},MWn.Qg=function(n){return lkn(this,n)},MWn._g=function(n,t,e){var i;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return iln(this.d);case 3:return this.b?this.b:this.a;case 4:return null==(i=this.c)?this.zb:i;case 5:return this.Db>>16==5?BB(this.Cb,671):null}return U9(this,n-bX((gWn(),s$t)),itn(BB(yan(this,16),26)||s$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 5:return this.Cb&&(e=(i=this.Db>>16)>=0?lkn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,5,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),s$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),s$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 5:return T_n(this,null,5,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),s$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),s$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0!=this.d;case 3:return!!this.b;case 4:return null!=this.c;case 5:return!(this.Db>>16!=5||!BB(this.Cb,671))}return O3(this,n-bX((gWn(),s$t)),itn(BB(yan(this,16),26)||s$t,n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void Nrn(this,SD(t));case 2:return void $en(this,BB(t,19).a);case 3:return void gOn(this,BB(t,1940));case 4:return void Fin(this,SD(t))}Lbn(this,n-bX((gWn(),s$t)),itn(BB(yan(this,16),26)||s$t,n),t)},MWn.zh=function(){return gWn(),s$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void Nrn(this,null);case 2:return void $en(this,0);case 3:return void gOn(this,null);case 4:return void Fin(this,null)}qfn(this,n-bX((gWn(),s$t)),itn(BB(yan(this,16),26)||s$t,n))},MWn.Ib=function(){var n;return null==(n=this.c)?this.zb:n},MWn.b=null,MWn.c=null,MWn.d=0,vX(l6n,"EEnumLiteralImpl",573);var L$t,N$t,x$t,D$t=bq(l6n,"EFactoryImpl/InternalEDateTimeFormat");wAn(489,1,{2015:1},vp),vX(l6n,"EFactoryImpl/1ClientInternalEDateTimeFormat",489),wAn(241,115,{105:1,92:1,90:1,87:1,56:1,108:1,49:1,97:1,241:1,114:1,115:1},Kp),MWn.Sg=function(n,t,e){var i;return e=T_n(this,n,t,e),this.e&&cL(n,170)&&(i=kLn(this,this.e))!=this.c&&(e=azn(this,i,e)),e},MWn._g=function(n,t,e){switch(n){case 0:return this.f;case 1:return!this.d&&(this.d=new $L(VAt,this,1)),this.d;case 2:return t?lFn(this):this.c;case 3:return this.b;case 4:return this.e;case 5:return t?qvn(this):this.a}return U9(this,n-bX((gWn(),f$t)),itn(BB(yan(this,16),26)||f$t,n),t,e)},MWn.jh=function(n,t,e){switch(t){case 0:return nfn(this,null,e);case 1:return!this.d&&(this.d=new $L(VAt,this,1)),_pn(this.d,n,e);case 3:return Zhn(this,null,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),f$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),f$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.f;case 1:return!!this.d&&0!=this.d.i;case 2:return!!this.c;case 3:return!!this.b;case 4:return!!this.e;case 5:return!!this.a}return O3(this,n-bX((gWn(),f$t)),itn(BB(yan(this,16),26)||f$t,n))},MWn.sh=function(n,t){switch(n){case 0:return void jEn(this,BB(t,87));case 1:return!this.d&&(this.d=new $L(VAt,this,1)),sqn(this.d),!this.d&&(this.d=new $L(VAt,this,1)),void pX(this.d,BB(t,14));case 3:return void kEn(this,BB(t,87));case 4:return void DMn(this,BB(t,836));case 5:return void cen(this,BB(t,138))}Lbn(this,n-bX((gWn(),f$t)),itn(BB(yan(this,16),26)||f$t,n),t)},MWn.zh=function(){return gWn(),f$t},MWn.Bh=function(n){switch(n){case 0:return void jEn(this,null);case 1:return!this.d&&(this.d=new $L(VAt,this,1)),void sqn(this.d);case 3:return void kEn(this,null);case 4:return void DMn(this,null);case 5:return void cen(this,null)}qfn(this,n-bX((gWn(),f$t)),itn(BB(yan(this,16),26)||f$t,n))},MWn.Ib=function(){var n;return(n=new lN(P$n(this))).a+=" (expression: ",bHn(this,n),n.a+=")",n.a},vX(l6n,"EGenericTypeImpl",241),wAn(1969,1964,q9n),MWn.Xh=function(n,t){nR(this,n,t)},MWn.lk=function(n,t){return nR(this,this.gc(),n),t},MWn.pi=function(n){return Dpn(this.Gi(),n)},MWn.Zh=function(){return this.$h()},MWn.Gi=function(){return new Pp(this)},MWn.$h=function(){return this._h(0)},MWn._h=function(n){return this.Gi().Zc(n)},MWn.mk=function(n,t){return ywn(this,n,!0),t},MWn.ii=function(n,t){var e;return e=tkn(this,t),this.Zc(n).Rb(e),e},MWn.ji=function(n,t){ywn(this,t,!0),this.Zc(n).Rb(t)},vX(y9n,"AbstractSequentialInternalEList",1969),wAn(486,1969,q9n,QN),MWn.pi=function(n){return Dpn(this.Gi(),n)},MWn.Zh=function(){return null==this.b?(YM(),YM(),x$t):this.Jk()},MWn.Gi=function(){return new DO(this.a,this.b)},MWn.$h=function(){return null==this.b?(YM(),YM(),x$t):this.Jk()},MWn._h=function(n){var t,e;if(null==this.b){if(n<0||n>1)throw Hp(new Ay(e9n+n+", size=0"));return YM(),YM(),x$t}for(e=this.Jk(),t=0;t<n;++t)Man(e);return e},MWn.dc=function(){var n,t,e,i,r,c;if(null!=this.b)for(e=0;e<this.b.length;++e)if(n=this.b[e],!this.Mk()||this.a.mh(n))if(c=this.a.bh(n,!1),ZM(),BB(n,66).Oj()){for(i=0,r=(t=BB(c,153)).gc();i<r;++i)if(wX(t.il(i))&&null!=t.jl(i))return!1}else if(n.$j()){if(!BB(c,14).dc())return!1}else if(null!=c)return!1;return!0},MWn.Kc=function(){return Ern(this)},MWn.Zc=function(n){var t,e;if(null==this.b){if(0!=n)throw Hp(new Ay(e9n+n+", size=0"));return YM(),YM(),x$t}for(e=this.Lk()?this.Kk():this.Jk(),t=0;t<n;++t)Man(e);return e},MWn.ii=function(n,t){throw Hp(new pv)},MWn.ji=function(n,t){throw Hp(new pv)},MWn.Jk=function(){return new YN(this.a,this.b)},MWn.Kk=function(){return new Vx(this.a,this.b)},MWn.Lk=function(){return!0},MWn.gc=function(){var n,t,e,i,r,c,a;if(r=0,null!=this.b)for(e=0;e<this.b.length;++e)if(n=this.b[e],!this.Mk()||this.a.mh(n))if(a=this.a.bh(n,!1),ZM(),BB(n,66).Oj())for(i=0,c=(t=BB(a,153)).gc();i<c;++i)wX(t.il(i))&&null!=t.jl(i)&&++r;else n.$j()?r+=BB(a,14).gc():null!=a&&++r;return r},MWn.Mk=function(){return!0},vX(y9n,"EContentsEList",486),wAn(1156,486,q9n,Wx),MWn.Jk=function(){return new Qx(this.a,this.b)},MWn.Kk=function(){return new Yx(this.a,this.b)},MWn.Mk=function(){return!1},vX(l6n,"ENamedElementImpl/1",1156),wAn(279,1,G9n,YN),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){throw Hp(new pv)},MWn.Nk=function(n){if(0!=this.g||this.e)throw Hp(new Fy("Iterator already in use or already filtered"));this.e=n},MWn.Ob=function(){var n,t,e,i,r,c;switch(this.g){case 3:case 2:return!0;case 1:return!1;case-3:this.p?this.p.Pb():++this.n;default:if(this.k&&(this.p?kPn(this,this.p):pOn(this)))return r=this.p?this.p.Pb():this.j?this.j.pi(this.n++):this.k.Xb(this.n++),this.f?((n=BB(r,72)).ak(),e=n.dd(),this.i=e):(e=r,this.i=e),this.g=3,!0;for(;this.d<this.c.length;)if(t=this.c[this.d++],(!this.e||t.Gj()!=NOt||0!=t.aj())&&(!this.Mk()||this.b.mh(t)))if(c=this.b.bh(t,this.Lk()),this.f=(ZM(),BB(t,66).Oj()),this.f||t.$j()){if(this.Lk()?(i=BB(c,15),this.k=i):(i=BB(c,69),this.k=this.j=i),cL(this.k,54)?(this.p=null,this.o=this.k.gc(),this.n=0):this.p=this.j?this.j.$h():this.k.Yc(),this.p?kPn(this,this.p):pOn(this))return r=this.p?this.p.Pb():this.j?this.j.pi(this.n++):this.k.Xb(this.n++),this.f?((n=BB(r,72)).ak(),e=n.dd(),this.i=e):(e=r,this.i=e),this.g=3,!0}else if(null!=c)return this.k=null,this.p=null,e=c,this.i=e,this.g=2,!0;return this.k=null,this.p=null,this.f=!1,this.g=1,!1}},MWn.Sb=function(){var n,t,e,i,r,c;switch(this.g){case-3:case-2:return!0;case-1:return!1;case 3:this.p?this.p.Ub():--this.n;default:if(this.k&&(this.p?jPn(this,this.p):wCn(this)))return r=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((n=BB(r,72)).ak(),e=n.dd(),this.i=e):(e=r,this.i=e),this.g=-3,!0;for(;this.d>0;)if(t=this.c[--this.d],(!this.e||t.Gj()!=NOt||0!=t.aj())&&(!this.Mk()||this.b.mh(t)))if(c=this.b.bh(t,this.Lk()),this.f=(ZM(),BB(t,66).Oj()),this.f||t.$j()){if(this.Lk()?(i=BB(c,15),this.k=i):(i=BB(c,69),this.k=this.j=i),cL(this.k,54)?(this.o=this.k.gc(),this.n=this.o):this.p=this.j?this.j._h(this.k.gc()):this.k.Zc(this.k.gc()),this.p?jPn(this,this.p):wCn(this))return r=this.p?this.p.Ub():this.j?this.j.pi(--this.n):this.k.Xb(--this.n),this.f?((n=BB(r,72)).ak(),e=n.dd(),this.i=e):(e=r,this.i=e),this.g=-3,!0}else if(null!=c)return this.k=null,this.p=null,e=c,this.i=e,this.g=-2,!0;return this.k=null,this.p=null,this.g=-1,!1}},MWn.Pb=function(){return Man(this)},MWn.Tb=function(){return this.a},MWn.Ub=function(){var n;if(this.g<-1||this.Sb())return--this.a,this.g=0,n=this.i,this.Sb(),n;throw Hp(new yv)},MWn.Vb=function(){return this.a-1},MWn.Qb=function(){throw Hp(new pv)},MWn.Lk=function(){return!1},MWn.Wb=function(n){throw Hp(new pv)},MWn.Mk=function(){return!0},MWn.a=0,MWn.d=0,MWn.f=!1,MWn.g=0,MWn.n=0,MWn.o=0,vX(y9n,"EContentsEList/FeatureIteratorImpl",279),wAn(697,279,G9n,Vx),MWn.Lk=function(){return!0},vX(y9n,"EContentsEList/ResolvingFeatureIteratorImpl",697),wAn(1157,697,G9n,Yx),MWn.Mk=function(){return!1},vX(l6n,"ENamedElementImpl/1/1",1157),wAn(1158,279,G9n,Qx),MWn.Mk=function(){return!1},vX(l6n,"ENamedElementImpl/1/2",1158),wAn(36,143,t9n,f4,l4,nU,k9,N7,t6,Hen,S0,qen,P0,J5,C0,Uen,I0,Z5,O0,Gen,A0,tU,j9,GQ,zen,$0,n6,L0),MWn._i=function(){return h9(this)},MWn.gj=function(){var n;return(n=h9(this))?n.zj():null},MWn.yi=function(n){return-1==this.b&&this.a&&(this.b=this.c.Xg(this.a.aj(),this.a.Gj())),this.c.Og(this.b,n)},MWn.Ai=function(){return this.c},MWn.hj=function(){var n;return!!(n=h9(this))&&n.Kj()},MWn.b=-1,vX(l6n,"ENotificationImpl",36),wAn(399,284,{105:1,92:1,90:1,147:1,191:1,56:1,59:1,108:1,472:1,49:1,97:1,150:1,399:1,284:1,114:1,115:1},$m),MWn.Qg=function(n){return Pkn(this,n)},MWn._g=function(n,t,e){var i;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),(i=this.t)>1||-1==i;case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?BB(this.Cb,26):null;case 11:return!this.d&&(this.d=new NL(O$t,this,11)),this.d;case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),this.c;case 13:return!this.a&&(this.a=new oR(this,this)),this.a;case 14:return H7(this)}return U9(this,n-bX((gWn(),g$t)),itn(BB(yan(this,16),26)||g$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 10:return this.Cb&&(e=(i=this.Db>>16)>=0?Pkn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,10,e);case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),Ywn(this.c,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),g$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),g$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 9:return gX(this,e);case 10:return T_n(this,null,10,e);case 11:return!this.d&&(this.d=new NL(O$t,this,11)),_pn(this.d,n,e);case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),_pn(this.c,n,e);case 14:return _pn(H7(this),n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),g$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),g$t)),n,e)},MWn.lh=function(n){var t;switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(t=this.t)>1||-1==t;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i);case 10:return!(this.Db>>16!=10||!BB(this.Cb,26));case 11:return!!this.d&&0!=this.d.i;case 12:return!!this.c&&0!=this.c.i;case 13:return!(!this.a||0==H7(this.a.a).i||this.b&&Kvn(this.b));case 14:return!!this.b&&Kvn(this.b)}return O3(this,n-bX((gWn(),g$t)),itn(BB(yan(this,16),26)||g$t,n))},MWn.sh=function(n,t){var e;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void Nrn(this,SD(t));case 2:return void Yfn(this,qy(TD(t)));case 3:return void nln(this,qy(TD(t)));case 4:return void Len(this,BB(t,19).a);case 5:return void Nen(this,BB(t,19).a);case 8:return void Ihn(this,BB(t,138));case 9:return void((e=HTn(this,BB(t,87),null))&&e.Fi());case 11:return!this.d&&(this.d=new NL(O$t,this,11)),sqn(this.d),!this.d&&(this.d=new NL(O$t,this,11)),void pX(this.d,BB(t,14));case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),sqn(this.c),!this.c&&(this.c=new eU(YAt,this,12,10)),void pX(this.c,BB(t,14));case 13:return!this.a&&(this.a=new oR(this,this)),vqn(this.a),!this.a&&(this.a=new oR(this,this)),void pX(this.a,BB(t,14));case 14:return sqn(H7(this)),void pX(H7(this),BB(t,14))}Lbn(this,n-bX((gWn(),g$t)),itn(BB(yan(this,16),26)||g$t,n),t)},MWn.zh=function(){return gWn(),g$t},MWn.Bh=function(n){var t;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void Nrn(this,null);case 2:return void Yfn(this,!0);case 3:return void nln(this,!0);case 4:return void Len(this,0);case 5:return void Nen(this,1);case 8:return void Ihn(this,null);case 9:return void((t=HTn(this,null,null))&&t.Fi());case 11:return!this.d&&(this.d=new NL(O$t,this,11)),void sqn(this.d);case 12:return!this.c&&(this.c=new eU(YAt,this,12,10)),void sqn(this.c);case 13:return void(this.a&&vqn(this.a));case 14:return void(this.b&&sqn(this.b))}qfn(this,n-bX((gWn(),g$t)),itn(BB(yan(this,16),26)||g$t,n))},MWn.Gh=function(){var n,t;if(this.c)for(n=0,t=this.c.i;n<t;++n)vx(Wtn(this.c,n));Ikn(this),this.Bb|=1},vX(l6n,"EOperationImpl",399),wAn(505,742,H9n,oR),MWn.Hi=function(n,t){fD(this,n,BB(t,138))},MWn.Ii=function(n){i$(this,BB(n,138))},MWn.Oi=function(n){return BB(Wtn(H7(this.a),n),87).c||(gWn(),l$t)},MWn.Ti=function(n){return BB(fDn(H7(this.a),n),87).c||(gWn(),l$t)},MWn.Ui=function(n,t){return bgn(this,n,BB(t,138))},MWn.ai=function(){return!1},MWn.Zi=function(n,t,e,i,r){return null},MWn.Ji=function(){return new mp(this)},MWn.Ki=function(){sqn(H7(this.a))},MWn.Li=function(n){return oln(this,n)},MWn.Mi=function(n){var t;for(t=n.Kc();t.Ob();)if(!oln(this,t.Pb()))return!1;return!0},MWn.Ni=function(n){var t,e,i;if(cL(n,15)&&(i=BB(n,15)).gc()==H7(this.a).i){for(t=i.Kc(),e=new AL(this);t.Ob();)if(GI(t.Pb())!==GI(kpn(e)))return!1;return!0}return!1},MWn.Pi=function(){var n,t,e;for(t=1,n=new AL(H7(this.a));n.e!=n.i.gc();)t=31*t+((e=BB(kpn(n),87).c||(gWn(),l$t))?nsn(e):0);return t},MWn.Qi=function(n){var t,e,i;for(i=0,e=new AL(H7(this.a));e.e!=e.i.gc();){if(t=BB(kpn(e),87),GI(n)===GI(t.c||(gWn(),l$t)))return i;++i}return-1},MWn.Ri=function(){return 0==H7(this.a).i},MWn.Si=function(){return null},MWn.Vi=function(){return H7(this.a).i},MWn.Wi=function(){var n,t,e,i,r;for(r=H7(this.a).i,i=x8(Ant,HWn,1,r,5,1),e=0,t=new AL(H7(this.a));t.e!=t.i.gc();)n=BB(kpn(t),87),i[e++]=n.c||(gWn(),l$t);return i},MWn.Xi=function(n){var t,e,i;for(i=H7(this.a).i,n.length<i&&(n=Den(tsn(n).c,i)),n.length>i&&$X(n,i,null),e=0,t=new AL(H7(this.a));t.e!=t.i.gc();)$X(n,e++,BB(kpn(t),87).c||(gWn(),l$t));return n},MWn.Yi=function(){var n,t,e,i;for((i=new Sk).a+="[",n=H7(this.a),t=0,e=H7(this.a).i;t<e;)cO(i,kN(BB(Wtn(n,t),87).c||(gWn(),l$t))),++t<e&&(i.a+=FWn);return i.a+="]",i.a},MWn.$i=function(n){},MWn.aj=function(){return 13},MWn.Bk=function(){return!0},MWn.bj=function(){return!1},MWn.Ck=function(){return!1},MWn.Dk=function(){return!1},MWn.Ek=function(){return!0},MWn.rk=function(){return!1},MWn.Fk=function(){return!0},MWn.wj=function(n){return cL(n,138)},MWn.fj=function(){return V0(this.a)},MWn.hi=function(){return!0},MWn.ni=function(){return!0},vX(l6n,"EOperationImpl/1",505),wAn(1340,1964,LVn,mp),MWn.Zc=function(n){return sin(this.a,n)},MWn.gc=function(){return H7(this.a.a).i},vX(l6n,"EOperationImpl/1/1",1340),wAn(1341,545,R9n,JG),MWn.ii=function(n,t){var e;return e=BB(Iln(this,n,t),87),mA(this.e)&&Lv(this,new j9(this.a,7,(gWn(),p$t),iln(t),e.c||l$t,n)),e},MWn.jj=function(n,t){return Mfn(this,BB(n,87),t)},MWn.kj=function(n,t){return Sfn(this,BB(n,87),t)},MWn.lj=function(n,t,e){return Wgn(this,BB(n,87),BB(t,87),e)},MWn.Zi=function(n,t,e,i,r){switch(n){case 3:return yZ(this,n,t,e,i,this.i>1);case 5:return yZ(this,n,t,e,i,this.i-BB(e,15).gc()>0);default:return new N7(this.e,n,this.c,t,e,i,!0)}},MWn.ij=function(){return!0},MWn.fj=function(){return Kvn(this)},MWn.Xj=function(){sqn(this)},vX(l6n,"EOperationImpl/2",1341),wAn(498,1,{1938:1,498:1},OI),vX(l6n,"EPackageImpl/1",498),wAn(16,85,R9n,eU),MWn.zk=function(){return this.d},MWn.Ak=function(){return this.b},MWn.Dk=function(){return!0},MWn.b=0,vX(y9n,"EObjectContainmentWithInverseEList",16),wAn(353,16,R9n,eK),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectContainmentWithInverseEList/Resolving",353),wAn(298,353,R9n,Jz),MWn.ci=function(){this.a.tb=null},vX(l6n,"EPackageImpl/2",298),wAn(1228,1,{},Oo),vX(l6n,"EPackageImpl/3",1228),wAn(718,43,tYn,Nm),MWn._b=function(n){return XI(n)?eY(this,n):!!AY(this.f,n)},vX(l6n,"EPackageRegistryImpl",718),wAn(509,284,{105:1,92:1,90:1,147:1,191:1,56:1,2017:1,108:1,472:1,49:1,97:1,150:1,509:1,284:1,114:1,115:1},Lm),MWn.Qg=function(n){return Ckn(this,n)},MWn._g=function(n,t,e){var i;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),(i=this.t)>1||-1==i;case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q;case 10:return this.Db>>16==10?BB(this.Cb,59):null}return U9(this,n-bX((gWn(),m$t)),itn(BB(yan(this,16),26)||m$t,n),t,e)},MWn.hh=function(n,t,e){var i;switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),Ywn(this.Ab,n,e);case 10:return this.Cb&&(e=(i=this.Db>>16)>=0?Ckn(this,e):this.Cb.ih(this,-1-i,null,e)),T_n(this,n,10,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),m$t),t),66).Nj().Qj(this,fgn(this),t-bX((gWn(),m$t)),n,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 9:return gX(this,e);case 10:return T_n(this,null,10,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),m$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),m$t)),n,e)},MWn.lh=function(n){var t;switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(t=this.t)>1||-1==t;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i);case 10:return!(this.Db>>16!=10||!BB(this.Cb,59))}return O3(this,n-bX((gWn(),m$t)),itn(BB(yan(this,16),26)||m$t,n))},MWn.zh=function(){return gWn(),m$t},vX(l6n,"EParameterImpl",509),wAn(99,449,{105:1,92:1,90:1,147:1,191:1,56:1,18:1,170:1,66:1,108:1,472:1,49:1,97:1,150:1,99:1,449:1,284:1,114:1,115:1,677:1},pD),MWn._g=function(n,t,e){var i,r;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return hN(),0!=(256&this.Bb);case 3:return hN(),0!=(512&this.Bb);case 4:return iln(this.s);case 5:return iln(this.t);case 6:return hN(),(r=this.t)>1||-1==r;case 7:return hN(),this.s>=1;case 8:return t?Ikn(this):this.r;case 9:return this.q;case 10:return hN(),0!=(this.Bb&k6n);case 11:return hN(),0!=(this.Bb&M9n);case 12:return hN(),0!=(this.Bb&_Qn);case 13:return this.j;case 14:return qLn(this);case 15:return hN(),0!=(this.Bb&T9n);case 16:return hN(),0!=(this.Bb&hVn);case 17:return dZ(this);case 18:return hN(),0!=(this.Bb&h6n);case 19:return hN(),!(!(i=Cvn(this))||0==(i.Bb&h6n));case 20:return hN(),0!=(this.Bb&BQn);case 21:return t?Cvn(this):this.b;case 22:return t?Ion(this):K5(this);case 23:return!this.a&&(this.a=new RL(BAt,this,23)),this.a}return U9(this,n-bX((gWn(),y$t)),itn(BB(yan(this,16),26)||y$t,n),t,e)},MWn.lh=function(n){var t,e;switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return 0==(256&this.Bb);case 3:return 0==(512&this.Bb);case 4:return 0!=this.s;case 5:return 1!=this.t;case 6:return(e=this.t)>1||-1==e;case 7:return this.s>=1;case 8:return!!this.r&&!this.q.e&&0==yW(this.q).i;case 9:return!(!this.q||this.r&&!this.q.e&&0==yW(this.q).i);case 10:return 0==(this.Bb&k6n);case 11:return 0!=(this.Bb&M9n);case 12:return 0!=(this.Bb&_Qn);case 13:return null!=this.j;case 14:return null!=qLn(this);case 15:return 0!=(this.Bb&T9n);case 16:return 0!=(this.Bb&hVn);case 17:return!!dZ(this);case 18:return 0!=(this.Bb&h6n);case 19:return!!(t=Cvn(this))&&0!=(t.Bb&h6n);case 20:return 0==(this.Bb&BQn);case 21:return!!this.b;case 22:return!!K5(this);case 23:return!!this.a&&0!=this.a.i}return O3(this,n-bX((gWn(),y$t)),itn(BB(yan(this,16),26)||y$t,n))},MWn.sh=function(n,t){var e;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void JZ(this,SD(t));case 2:return void Yfn(this,qy(TD(t)));case 3:return void nln(this,qy(TD(t)));case 4:return void Len(this,BB(t,19).a);case 5:return void Nen(this,BB(t,19).a);case 8:return void Ihn(this,BB(t,138));case 9:return void((e=HTn(this,BB(t,87),null))&&e.Fi());case 10:return void Aln(this,qy(TD(t)));case 11:return void Nln(this,qy(TD(t)));case 12:return void $ln(this,qy(TD(t)));case 13:return void _I(this,SD(t));case 15:return void Lln(this,qy(TD(t)));case 16:return void qln(this,qy(TD(t)));case 18:return void YZ(this,qy(TD(t)));case 20:return void Uln(this,qy(TD(t)));case 21:return void rrn(this,BB(t,18));case 23:return!this.a&&(this.a=new RL(BAt,this,23)),sqn(this.a),!this.a&&(this.a=new RL(BAt,this,23)),void pX(this.a,BB(t,14))}Lbn(this,n-bX((gWn(),y$t)),itn(BB(yan(this,16),26)||y$t,n),t)},MWn.zh=function(){return gWn(),y$t},MWn.Bh=function(n){var t;switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return cL(this.Cb,88)&&ACn(P5(BB(this.Cb,88)),4),void Nrn(this,null);case 2:return void Yfn(this,!0);case 3:return void nln(this,!0);case 4:return void Len(this,0);case 5:return void Nen(this,1);case 8:return void Ihn(this,null);case 9:return void((t=HTn(this,null,null))&&t.Fi());case 10:return void Aln(this,!0);case 11:return void Nln(this,!1);case 12:return void $ln(this,!1);case 13:return this.i=null,void arn(this,null);case 15:return void Lln(this,!1);case 16:return void qln(this,!1);case 18:return zln(this,!1),void(cL(this.Cb,88)&&ACn(P5(BB(this.Cb,88)),2));case 20:return void Uln(this,!0);case 21:return void rrn(this,null);case 23:return!this.a&&(this.a=new RL(BAt,this,23)),void sqn(this.a)}qfn(this,n-bX((gWn(),y$t)),itn(BB(yan(this,16),26)||y$t,n))},MWn.Gh=function(){Ion(this),kV(B7((IPn(),Z$t),this)),Ikn(this),this.Bb|=1},MWn.Lj=function(){return Cvn(this)},MWn.qk=function(){var n;return!!(n=Cvn(this))&&0!=(n.Bb&h6n)},MWn.rk=function(){return 0!=(this.Bb&h6n)},MWn.sk=function(){return 0!=(this.Bb&BQn)},MWn.nk=function(n,t){return this.c=null,Pfn(this,n,t)},MWn.Ib=function(){var n;return 0!=(64&this.Db)?ERn(this):((n=new fN(ERn(this))).a+=" (containment: ",yE(n,0!=(this.Bb&h6n)),n.a+=", resolveProxies: ",yE(n,0!=(this.Bb&BQn)),n.a+=")",n.a)},vX(l6n,"EReferenceImpl",99),wAn(548,115,{105:1,42:1,92:1,90:1,133:1,56:1,108:1,49:1,97:1,548:1,114:1,115:1},Ao),MWn.Fb=function(n){return this===n},MWn.cd=function(){return this.b},MWn.dd=function(){return this.c},MWn.Hb=function(){return PN(this)},MWn.Uh=function(n){vq(this,SD(n))},MWn.ed=function(n){return $H(this,SD(n))},MWn._g=function(n,t,e){switch(n){case 0:return this.b;case 1:return this.c}return U9(this,n-bX((gWn(),k$t)),itn(BB(yan(this,16),26)||k$t,n),t,e)},MWn.lh=function(n){switch(n){case 0:return null!=this.b;case 1:return null!=this.c}return O3(this,n-bX((gWn(),k$t)),itn(BB(yan(this,16),26)||k$t,n))},MWn.sh=function(n,t){switch(n){case 0:return void mq(this,SD(t));case 1:return void Kin(this,SD(t))}Lbn(this,n-bX((gWn(),k$t)),itn(BB(yan(this,16),26)||k$t,n),t)},MWn.zh=function(){return gWn(),k$t},MWn.Bh=function(n){switch(n){case 0:return void Rin(this,null);case 1:return void Kin(this,null)}qfn(this,n-bX((gWn(),k$t)),itn(BB(yan(this,16),26)||k$t,n))},MWn.Sh=function(){var n;return-1==this.a&&(n=this.b,this.a=null==n?0:vvn(n)),this.a},MWn.Th=function(n){this.a=n},MWn.Ib=function(){var n;return 0!=(64&this.Db)?P$n(this):((n=new fN(P$n(this))).a+=" (key: ",cO(n,this.b),n.a+=", value: ",cO(n,this.c),n.a+=")",n.a)},MWn.a=-1,MWn.b=null,MWn.c=null;var R$t,K$t,_$t,F$t,B$t,H$t,q$t,G$t,z$t,U$t,X$t=vX(l6n,"EStringToStringMapEntryImpl",548),W$t=bq(y9n,"FeatureMap/Entry/Internal");wAn(565,1,z9n),MWn.Ok=function(n){return this.Pk(BB(n,49))},MWn.Pk=function(n){return this.Ok(n)},MWn.Fb=function(n){var t,e;return this===n||!!cL(n,72)&&(t=BB(n,72)).ak()==this.c&&(null==(e=this.dd())?null==t.dd():Nfn(e,t.dd()))},MWn.ak=function(){return this.c},MWn.Hb=function(){var n;return n=this.dd(),nsn(this.c)^(null==n?0:nsn(n))},MWn.Ib=function(){var n,t;return t=Utn((n=this.c).Hj()).Ph(),n.ne(),(null!=t&&0!=t.length?t+":"+n.ne():n.ne())+"="+this.dd()},vX(l6n,"EStructuralFeatureImpl/BasicFeatureMapEntry",565),wAn(776,565,z9n,rR),MWn.Pk=function(n){return new rR(this.c,n)},MWn.dd=function(){return this.a},MWn.Qk=function(n,t,e){return Scn(this,n,this.a,t,e)},MWn.Rk=function(n,t,e){return Pcn(this,n,this.a,t,e)},vX(l6n,"EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry",776),wAn(1314,1,{},AI),MWn.Pj=function(n,t,e,i,r){return BB(S9(n,this.b),215).nl(this.a).Wj(i)},MWn.Qj=function(n,t,e,i,r){return BB(S9(n,this.b),215).el(this.a,i,r)},MWn.Rj=function(n,t,e,i,r){return BB(S9(n,this.b),215).fl(this.a,i,r)},MWn.Sj=function(n,t,e){return BB(S9(n,this.b),215).nl(this.a).fj()},MWn.Tj=function(n,t,e,i){BB(S9(n,this.b),215).nl(this.a).Wb(i)},MWn.Uj=function(n,t,e){return BB(S9(n,this.b),215).nl(this.a)},MWn.Vj=function(n,t,e){BB(S9(n,this.b),215).nl(this.a).Xj()},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator",1314),wAn(89,1,{},PB,lQ,RY,w4),MWn.Pj=function(n,t,e,i,r){var c;if(null==(c=t.Ch(e))&&t.Dh(e,c=iWn(this,n)),!r)switch(this.e){case 50:case 41:return BB(c,589).sj();case 40:return BB(c,215).kl()}return c},MWn.Qj=function(n,t,e,i,r){var c;return null==(c=t.Ch(e))&&t.Dh(e,c=iWn(this,n)),BB(c,69).lk(i,r)},MWn.Rj=function(n,t,e,i,r){var c;return null!=(c=t.Ch(e))&&(r=BB(c,69).mk(i,r)),r},MWn.Sj=function(n,t,e){var i;return null!=(i=t.Ch(e))&&BB(i,76).fj()},MWn.Tj=function(n,t,e,i){var r;!(r=BB(t.Ch(e),76))&&t.Dh(e,r=iWn(this,n)),r.Wb(i)},MWn.Uj=function(n,t,e){var i;return null==(i=t.Ch(e))&&t.Dh(e,i=iWn(this,n)),cL(i,76)?BB(i,76):new Ep(BB(t.Ch(e),15))},MWn.Vj=function(n,t,e){var i;!(i=BB(t.Ch(e),76))&&t.Dh(e,i=iWn(this,n)),i.Xj()},MWn.b=0,MWn.e=0,vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateMany",89),wAn(504,1,{}),MWn.Qj=function(n,t,e,i,r){throw Hp(new pv)},MWn.Rj=function(n,t,e,i,r){throw Hp(new pv)},MWn.Uj=function(n,t,e){return new bQ(this,n,t,e)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingle",504),wAn(1331,1,k9n,bQ),MWn.Wj=function(n){return this.a.Pj(this.c,this.d,this.b,n,!0)},MWn.fj=function(){return this.a.Sj(this.c,this.d,this.b)},MWn.Wb=function(n){this.a.Tj(this.c,this.d,this.b,n)},MWn.Xj=function(){this.a.Vj(this.c,this.d,this.b)},MWn.b=0,vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingle/1",1331),wAn(769,504,{},mJ),MWn.Pj=function(n,t,e,i,r){return gKn(n,n.eh(),n.Vg())==this.b?this.sk()&&i?cAn(n):n.eh():null},MWn.Qj=function(n,t,e,i,r){var c,a;return n.eh()&&(r=(c=n.Vg())>=0?n.Qg(r):n.eh().ih(n,-1-c,null,r)),a=Awn(n.Tg(),this.e),n.Sg(i,a,r)},MWn.Rj=function(n,t,e,i,r){var c;return c=Awn(n.Tg(),this.e),n.Sg(null,c,r)},MWn.Sj=function(n,t,e){var i;return i=Awn(n.Tg(),this.e),!!n.eh()&&n.Vg()==i},MWn.Tj=function(n,t,e,i){var r,c,a,u,o;if(null!=i&&!SFn(this.a,i))throw Hp(new Ky(U9n+(cL(i,56)?dEn(BB(i,56).Tg()):utn(tsn(i)))+X9n+this.a+"'"));if(r=n.eh(),a=Awn(n.Tg(),this.e),GI(i)!==GI(r)||n.Vg()!=a&&null!=i){if(vkn(n,BB(i,56)))throw Hp(new _y(w6n+n.Ib()));o=null,r&&(o=(c=n.Vg())>=0?n.Qg(o):n.eh().ih(n,-1-c,null,o)),(u=BB(i,49))&&(o=u.gh(n,Awn(u.Tg(),this.b),null,o)),(o=n.Sg(u,a,o))&&o.Fi()}else n.Lg()&&n.Mg()&&ban(n,new nU(n,1,a,i,i))},MWn.Vj=function(n,t,e){var i,r,c;n.eh()?(c=(i=n.Vg())>=0?n.Qg(null):n.eh().ih(n,-1-i,null,null),r=Awn(n.Tg(),this.e),(c=n.Sg(null,r,c))&&c.Fi()):n.Lg()&&n.Mg()&&ban(n,new tU(n,1,this.e,null,null))},MWn.sk=function(){return!1},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainer",769),wAn(1315,769,{},CB),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving",1315),wAn(563,504,{}),MWn.Pj=function(n,t,e,i,r){var c;return null==(c=t.Ch(e))?this.b:GI(c)===GI(R$t)?null:c},MWn.Sj=function(n,t,e){var i;return null!=(i=t.Ch(e))&&(GI(i)===GI(R$t)||!Nfn(i,this.b))},MWn.Tj=function(n,t,e,i){var r,c;n.Lg()&&n.Mg()?(r=null==(c=t.Ch(e))?this.b:GI(c)===GI(R$t)?null:c,null==i?null!=this.c?(t.Dh(e,null),i=this.b):null!=this.b?t.Dh(e,R$t):t.Dh(e,null):(this.Sk(i),t.Dh(e,i)),ban(n,this.d.Tk(n,1,this.e,r,i))):null==i?null!=this.c?t.Dh(e,null):null!=this.b?t.Dh(e,R$t):t.Dh(e,null):(this.Sk(i),t.Dh(e,i))},MWn.Vj=function(n,t,e){var i,r;n.Lg()&&n.Mg()?(i=null==(r=t.Ch(e))?this.b:GI(r)===GI(R$t)?null:r,t.Eh(e),ban(n,this.d.Tk(n,1,this.e,i,this.b))):t.Eh(e)},MWn.Sk=function(n){throw Hp(new bv)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData",563),wAn(W9n,1,{},$o),MWn.Tk=function(n,t,e,i,r){return new tU(n,t,e,i,r)},MWn.Uk=function(n,t,e,i,r,c){return new GQ(n,t,e,i,r,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator",W9n),wAn(1332,W9n,{},Lo),MWn.Tk=function(n,t,e,i,r){return new n6(n,t,e,qy(TD(i)),qy(TD(r)))},MWn.Uk=function(n,t,e,i,r,c){return new L0(n,t,e,qy(TD(i)),qy(TD(r)),c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1",1332),wAn(1333,W9n,{},No),MWn.Tk=function(n,t,e,i,r){return new Hen(n,t,e,BB(i,217).a,BB(r,217).a)},MWn.Uk=function(n,t,e,i,r,c){return new S0(n,t,e,BB(i,217).a,BB(r,217).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2",1333),wAn(1334,W9n,{},xo),MWn.Tk=function(n,t,e,i,r){return new qen(n,t,e,BB(i,172).a,BB(r,172).a)},MWn.Uk=function(n,t,e,i,r,c){return new P0(n,t,e,BB(i,172).a,BB(r,172).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3",1334),wAn(1335,W9n,{},Do),MWn.Tk=function(n,t,e,i,r){return new J5(n,t,e,Gy(MD(i)),Gy(MD(r)))},MWn.Uk=function(n,t,e,i,r,c){return new C0(n,t,e,Gy(MD(i)),Gy(MD(r)),c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4",1335),wAn(1336,W9n,{},Ro),MWn.Tk=function(n,t,e,i,r){return new Uen(n,t,e,BB(i,155).a,BB(r,155).a)},MWn.Uk=function(n,t,e,i,r,c){return new I0(n,t,e,BB(i,155).a,BB(r,155).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5",1336),wAn(1337,W9n,{},Ko),MWn.Tk=function(n,t,e,i,r){return new Z5(n,t,e,BB(i,19).a,BB(r,19).a)},MWn.Uk=function(n,t,e,i,r,c){return new O0(n,t,e,BB(i,19).a,BB(r,19).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6",1337),wAn(1338,W9n,{},_o),MWn.Tk=function(n,t,e,i,r){return new Gen(n,t,e,BB(i,162).a,BB(r,162).a)},MWn.Uk=function(n,t,e,i,r,c){return new A0(n,t,e,BB(i,162).a,BB(r,162).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7",1338),wAn(1339,W9n,{},Fo),MWn.Tk=function(n,t,e,i,r){return new zen(n,t,e,BB(i,184).a,BB(r,184).a)},MWn.Uk=function(n,t,e,i,r,c){return new $0(n,t,e,BB(i,184).a,BB(r,184).a,c)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8",1339),wAn(1317,563,{},wQ),MWn.Sk=function(n){if(!this.a.wj(n))throw Hp(new Ky(U9n+tsn(n)+X9n+this.a+"'"))},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic",1317),wAn(1318,563,{},ZG),MWn.Sk=function(n){},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic",1318),wAn(770,563,{}),MWn.Sj=function(n,t,e){return null!=t.Ch(e)},MWn.Tj=function(n,t,e,i){var r,c;n.Lg()&&n.Mg()?(r=!0,null==(c=t.Ch(e))?(r=!1,c=this.b):GI(c)===GI(R$t)&&(c=null),null==i?null!=this.c?(t.Dh(e,null),i=this.b):t.Dh(e,R$t):(this.Sk(i),t.Dh(e,i)),ban(n,this.d.Uk(n,1,this.e,c,i,!r))):null==i?null!=this.c?t.Dh(e,null):t.Dh(e,R$t):(this.Sk(i),t.Dh(e,i))},MWn.Vj=function(n,t,e){var i,r;n.Lg()&&n.Mg()?(i=!0,null==(r=t.Ch(e))?(i=!1,r=this.b):GI(r)===GI(R$t)&&(r=null),t.Eh(e),ban(n,this.d.Uk(n,2,this.e,r,this.b,i))):t.Eh(e)},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable",770),wAn(1319,770,{},dQ),MWn.Sk=function(n){if(!this.a.wj(n))throw Hp(new Ky(U9n+tsn(n)+X9n+this.a+"'"))},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic",1319),wAn(1320,770,{},nz),MWn.Sk=function(n){},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic",1320),wAn(398,504,{},cG),MWn.Pj=function(n,t,e,i,r){var c,a,u,o,s;if(s=t.Ch(e),this.Kj()&&GI(s)===GI(R$t))return null;if(this.sk()&&i&&null!=s){if((u=BB(s,49)).kh()&&u!=(o=tfn(n,u))){if(!SFn(this.a,o))throw Hp(new Ky(U9n+tsn(o)+X9n+this.a+"'"));t.Dh(e,s=o),this.rk()&&(c=BB(o,49),a=u.ih(n,this.b?Awn(u.Tg(),this.b):-1-Awn(n.Tg(),this.e),null,null),!c.eh()&&(a=c.gh(n,this.b?Awn(c.Tg(),this.b):-1-Awn(n.Tg(),this.e),null,a)),a&&a.Fi()),n.Lg()&&n.Mg()&&ban(n,new tU(n,9,this.e,u,o))}return s}return s},MWn.Qj=function(n,t,e,i,r){var c,a;return GI(a=t.Ch(e))===GI(R$t)&&(a=null),t.Dh(e,i),this.bj()?GI(a)!==GI(i)&&null!=a&&(r=(c=BB(a,49)).ih(n,Awn(c.Tg(),this.b),null,r)):this.rk()&&null!=a&&(r=BB(a,49).ih(n,-1-Awn(n.Tg(),this.e),null,r)),n.Lg()&&n.Mg()&&(!r&&(r=new Fj(4)),r.Ei(new tU(n,1,this.e,a,i))),r},MWn.Rj=function(n,t,e,i,r){var c;return GI(c=t.Ch(e))===GI(R$t)&&(c=null),t.Eh(e),n.Lg()&&n.Mg()&&(!r&&(r=new Fj(4)),this.Kj()?r.Ei(new tU(n,2,this.e,c,null)):r.Ei(new tU(n,1,this.e,c,null))),r},MWn.Sj=function(n,t,e){return null!=t.Ch(e)},MWn.Tj=function(n,t,e,i){var r,c,a,u,o;if(null!=i&&!SFn(this.a,i))throw Hp(new Ky(U9n+(cL(i,56)?dEn(BB(i,56).Tg()):utn(tsn(i)))+X9n+this.a+"'"));u=null!=(o=t.Ch(e)),this.Kj()&&GI(o)===GI(R$t)&&(o=null),a=null,this.bj()?GI(o)!==GI(i)&&(null!=o&&(a=(r=BB(o,49)).ih(n,Awn(r.Tg(),this.b),null,a)),null!=i&&(a=(r=BB(i,49)).gh(n,Awn(r.Tg(),this.b),null,a))):this.rk()&&GI(o)!==GI(i)&&(null!=o&&(a=BB(o,49).ih(n,-1-Awn(n.Tg(),this.e),null,a)),null!=i&&(a=BB(i,49).gh(n,-1-Awn(n.Tg(),this.e),null,a))),null==i&&this.Kj()?t.Dh(e,R$t):t.Dh(e,i),n.Lg()&&n.Mg()?(c=new GQ(n,1,this.e,o,i,this.Kj()&&!u),a?(a.Ei(c),a.Fi()):ban(n,c)):a&&a.Fi()},MWn.Vj=function(n,t,e){var i,r,c,a,u;a=null!=(u=t.Ch(e)),this.Kj()&&GI(u)===GI(R$t)&&(u=null),c=null,null!=u&&(this.bj()?c=(i=BB(u,49)).ih(n,Awn(i.Tg(),this.b),null,c):this.rk()&&(c=BB(u,49).ih(n,-1-Awn(n.Tg(),this.e),null,c))),t.Eh(e),n.Lg()&&n.Mg()?(r=new GQ(n,this.Kj()?2:1,this.e,u,null,a),c?(c.Ei(r),c.Fi()):ban(n,r)):c&&c.Fi()},MWn.bj=function(){return!1},MWn.rk=function(){return!1},MWn.sk=function(){return!1},MWn.Kj=function(){return!1},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObject",398),wAn(564,398,{},Zx),MWn.rk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment",564),wAn(1323,564,{},nD),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving",1323),wAn(772,564,{},tD),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable",772),wAn(1325,772,{},eD),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving",1325),wAn(640,564,{},IB),MWn.bj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse",640),wAn(1324,640,{},$B),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving",1324),wAn(773,640,{},LB),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable",773),wAn(1326,773,{},NB),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving",1326),wAn(641,398,{},iD),MWn.sk=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving",641),wAn(1327,641,{},rD),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable",1327),wAn(774,641,{},OB),MWn.bj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse",774),wAn(1328,774,{},xB),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable",1328),wAn(1321,398,{},cD),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable",1321),wAn(771,398,{},AB),MWn.bj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse",771),wAn(1322,771,{},DB),MWn.Kj=function(){return!0},vX(l6n,"EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable",1322),wAn(775,565,z9n,aW),MWn.Pk=function(n){return new aW(this.a,this.c,n)},MWn.dd=function(){return this.b},MWn.Qk=function(n,t,e){return D8(this,n,this.b,e)},MWn.Rk=function(n,t,e){return R8(this,n,this.b,e)},vX(l6n,"EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry",775),wAn(1329,1,k9n,Ep),MWn.Wj=function(n){return this.a},MWn.fj=function(){return cL(this.a,95)?BB(this.a,95).fj():!this.a.dc()},MWn.Wb=function(n){this.a.$b(),this.a.Gc(BB(n,15))},MWn.Xj=function(){cL(this.a,95)?BB(this.a,95).Xj():this.a.$b()},vX(l6n,"EStructuralFeatureImpl/SettingMany",1329),wAn(1330,565,z9n,g4),MWn.Ok=function(n){return new cR((Uqn(),FLt),this.b.Ih(this.a,n))},MWn.dd=function(){return null},MWn.Qk=function(n,t,e){return e},MWn.Rk=function(n,t,e){return e},vX(l6n,"EStructuralFeatureImpl/SimpleContentFeatureMapEntry",1330),wAn(642,565,z9n,cR),MWn.Ok=function(n){return new cR(this.c,n)},MWn.dd=function(){return this.a},MWn.Qk=function(n,t,e){return e},MWn.Rk=function(n,t,e){return e},vX(l6n,"EStructuralFeatureImpl/SimpleFeatureMapEntry",642),wAn(391,497,h8n,Bo),MWn.ri=function(n){return x8(qAt,HWn,26,n,0,1)},MWn.ni=function(){return!1},vX(l6n,"ESuperAdapter/1",391),wAn(444,438,{105:1,92:1,90:1,147:1,191:1,56:1,108:1,836:1,49:1,97:1,150:1,444:1,114:1,115:1},Ho),MWn._g=function(n,t,e){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),this.Ab;case 1:return this.zb;case 2:return!this.a&&(this.a=new aG(this,VAt,this)),this.a}return U9(this,n-bX((gWn(),T$t)),itn(BB(yan(this,16),26)||T$t,n),t,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),_pn(this.Ab,n,e);case 2:return!this.a&&(this.a=new aG(this,VAt,this)),_pn(this.a,n,e)}return BB(itn(BB(yan(this,16),26)||(gWn(),T$t),t),66).Nj().Rj(this,fgn(this),t-bX((gWn(),T$t)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.Ab&&0!=this.Ab.i;case 1:return null!=this.zb;case 2:return!!this.a&&0!=this.a.i}return O3(this,n-bX((gWn(),T$t)),itn(BB(yan(this,16),26)||T$t,n))},MWn.sh=function(n,t){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),sqn(this.Ab),!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void pX(this.Ab,BB(t,14));case 1:return void Nrn(this,SD(t));case 2:return!this.a&&(this.a=new aG(this,VAt,this)),sqn(this.a),!this.a&&(this.a=new aG(this,VAt,this)),void pX(this.a,BB(t,14))}Lbn(this,n-bX((gWn(),T$t)),itn(BB(yan(this,16),26)||T$t,n),t)},MWn.zh=function(){return gWn(),T$t},MWn.Bh=function(n){switch(n){case 0:return!this.Ab&&(this.Ab=new eU(KAt,this,0,3)),void sqn(this.Ab);case 1:return void Nrn(this,null);case 2:return!this.a&&(this.a=new aG(this,VAt,this)),void sqn(this.a)}qfn(this,n-bX((gWn(),T$t)),itn(BB(yan(this,16),26)||T$t,n))},vX(l6n,"ETypeParameterImpl",444),wAn(445,85,R9n,aG),MWn.cj=function(n,t){return LTn(this,BB(n,87),t)},MWn.dj=function(n,t){return NTn(this,BB(n,87),t)},vX(l6n,"ETypeParameterImpl/1",445),wAn(634,43,tYn,xm),MWn.ec=function(){return new Tp(this)},vX(l6n,"ETypeParameterImpl/2",634),wAn(556,nVn,tVn,Tp),MWn.Fc=function(n){return YR(this,BB(n,87))},MWn.Gc=function(n){var t,e,i;for(i=!1,e=n.Kc();e.Ob();)t=BB(e.Pb(),87),null==VW(this.a,t,"")&&(i=!0);return i},MWn.$b=function(){$U(this.a)},MWn.Hc=function(n){return hU(this.a,n)},MWn.Kc=function(){return new Mp(new usn(new Pb(this.a).a))},MWn.Mc=function(n){return _6(this,n)},MWn.gc=function(){return NT(this.a)},vX(l6n,"ETypeParameterImpl/2/1",556),wAn(557,1,QWn,Mp),MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return BB(ten(this.a).cd(),87)},MWn.Ob=function(){return this.a.b},MWn.Qb=function(){o9(this.a)},vX(l6n,"ETypeParameterImpl/2/1/1",557),wAn(1276,43,tYn,Dm),MWn._b=function(n){return XI(n)?eY(this,n):!!AY(this.f,n)},MWn.xc=function(n){var t;return cL(t=XI(n)?SJ(this,n):qI(AY(this.f,n)),837)?(t=BB(t,837)._j(),VW(this,BB(n,235),t),t):null!=t?t:null==n?(JM(),rLt):null},vX(l6n,"EValidatorRegistryImpl",1276),wAn(1313,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,1941:1,49:1,97:1,150:1,114:1,115:1},qo),MWn.Ih=function(n,t){switch(n.yj()){case 21:case 22:case 23:case 24:case 26:case 31:case 32:case 37:case 38:case 39:case 40:case 43:case 44:case 48:case 49:case 20:return null==t?null:Bbn(t);case 25:return Xtn(t);case 27:return X9(t);case 28:return W9(t);case 29:return null==t?null:H$(IOt[0],BB(t,199));case 41:return null==t?"":nE(BB(t,290));case 42:return Bbn(t);case 50:return SD(t);default:throw Hp(new _y(d6n+n.ne()+g6n))}},MWn.Jh=function(n){var t;switch(-1==n.G&&(n.G=(t=Utn(n))?uvn(t.Mh(),n):-1),n.G){case 0:return new Om;case 1:return new jo;case 2:return new _f;case 4:return new Ev;case 5:return new Am;case 6:return new jv;case 7:return new Rf;case 10:return new yo;case 11:return new $m;case 12:return new vY;case 13:return new Lm;case 14:return new pD;case 17:return new Ao;case 18:return new Kp;case 19:return new Ho;default:throw Hp(new _y(m6n+n.zb+g6n))}},MWn.Kh=function(n,t){switch(n.yj()){case 20:return null==t?null:new wE(t);case 21:return null==t?null:new $A(t);case 23:case 22:return null==t?null:Zdn(t);case 26:case 24:return null==t?null:Pnn(l_n(t,-128,127)<<24>>24);case 25:return d$n(t);case 27:return Syn(t);case 28:return Pyn(t);case 29:return gMn(t);case 32:case 31:return null==t?null:bSn(t);case 38:case 37:return null==t?null:new Dv(t);case 40:case 39:return null==t?null:iln(l_n(t,_Vn,DWn));case 41:case 42:return null;case 44:case 43:return null==t?null:jgn(rUn(t));case 49:case 48:return null==t?null:rln(l_n(t,Q9n,32767)<<16>>16);case 50:return t;default:throw Hp(new _y(d6n+n.ne()+g6n))}},vX(l6n,"EcoreFactoryImpl",1313),wAn(547,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,1939:1,49:1,97:1,150:1,179:1,547:1,114:1,115:1,675:1},UW),MWn.gb=!1,MWn.hb=!1;var V$t,Q$t=!1;vX(l6n,"EcorePackageImpl",547),wAn(1184,1,{837:1},Go),MWn._j=function(){return sN(),cLt},vX(l6n,"EcorePackageImpl/1",1184),wAn(1193,1,s7n,zo),MWn.wj=function(n){return cL(n,147)},MWn.xj=function(n){return x8(BOt,HWn,147,n,0,1)},vX(l6n,"EcorePackageImpl/10",1193),wAn(1194,1,s7n,Uo),MWn.wj=function(n){return cL(n,191)},MWn.xj=function(n){return x8(qOt,HWn,191,n,0,1)},vX(l6n,"EcorePackageImpl/11",1194),wAn(1195,1,s7n,Xo),MWn.wj=function(n){return cL(n,56)},MWn.xj=function(n){return x8(LOt,HWn,56,n,0,1)},vX(l6n,"EcorePackageImpl/12",1195),wAn(1196,1,s7n,Wo),MWn.wj=function(n){return cL(n,399)},MWn.xj=function(n){return x8(QAt,x9n,59,n,0,1)},vX(l6n,"EcorePackageImpl/13",1196),wAn(1197,1,s7n,Vo),MWn.wj=function(n){return cL(n,235)},MWn.xj=function(n){return x8(GOt,HWn,235,n,0,1)},vX(l6n,"EcorePackageImpl/14",1197),wAn(1198,1,s7n,Qo),MWn.wj=function(n){return cL(n,509)},MWn.xj=function(n){return x8(YAt,HWn,2017,n,0,1)},vX(l6n,"EcorePackageImpl/15",1198),wAn(1199,1,s7n,Yo),MWn.wj=function(n){return cL(n,99)},MWn.xj=function(n){return x8(JAt,N9n,18,n,0,1)},vX(l6n,"EcorePackageImpl/16",1199),wAn(1200,1,s7n,Jo),MWn.wj=function(n){return cL(n,170)},MWn.xj=function(n){return x8(FAt,N9n,170,n,0,1)},vX(l6n,"EcorePackageImpl/17",1200),wAn(1201,1,s7n,Zo),MWn.wj=function(n){return cL(n,472)},MWn.xj=function(n){return x8(_At,HWn,472,n,0,1)},vX(l6n,"EcorePackageImpl/18",1201),wAn(1202,1,s7n,ns),MWn.wj=function(n){return cL(n,548)},MWn.xj=function(n){return x8(X$t,a9n,548,n,0,1)},vX(l6n,"EcorePackageImpl/19",1202),wAn(1185,1,s7n,ts),MWn.wj=function(n){return cL(n,322)},MWn.xj=function(n){return x8(BAt,N9n,34,n,0,1)},vX(l6n,"EcorePackageImpl/2",1185),wAn(1203,1,s7n,es),MWn.wj=function(n){return cL(n,241)},MWn.xj=function(n){return x8(VAt,B9n,87,n,0,1)},vX(l6n,"EcorePackageImpl/20",1203),wAn(1204,1,s7n,is),MWn.wj=function(n){return cL(n,444)},MWn.xj=function(n){return x8(O$t,HWn,836,n,0,1)},vX(l6n,"EcorePackageImpl/21",1204),wAn(1205,1,s7n,rs),MWn.wj=function(n){return zI(n)},MWn.xj=function(n){return x8(ktt,sVn,476,n,8,1)},vX(l6n,"EcorePackageImpl/22",1205),wAn(1206,1,s7n,cs),MWn.wj=function(n){return cL(n,190)},MWn.xj=function(n){return x8(NNt,sVn,190,n,0,2)},vX(l6n,"EcorePackageImpl/23",1206),wAn(1207,1,s7n,as),MWn.wj=function(n){return cL(n,217)},MWn.xj=function(n){return x8(Ttt,sVn,217,n,0,1)},vX(l6n,"EcorePackageImpl/24",1207),wAn(1208,1,s7n,us),MWn.wj=function(n){return cL(n,172)},MWn.xj=function(n){return x8(Stt,sVn,172,n,0,1)},vX(l6n,"EcorePackageImpl/25",1208),wAn(1209,1,s7n,os),MWn.wj=function(n){return cL(n,199)},MWn.xj=function(n){return x8(mtt,sVn,199,n,0,1)},vX(l6n,"EcorePackageImpl/26",1209),wAn(1210,1,s7n,ss),MWn.wj=function(n){return!1},MWn.xj=function(n){return x8(_Nt,HWn,2110,n,0,1)},vX(l6n,"EcorePackageImpl/27",1210),wAn(1211,1,s7n,hs),MWn.wj=function(n){return UI(n)},MWn.xj=function(n){return x8(Ptt,sVn,333,n,7,1)},vX(l6n,"EcorePackageImpl/28",1211),wAn(1212,1,s7n,fs),MWn.wj=function(n){return cL(n,58)},MWn.xj=function(n){return x8(uAt,nZn,58,n,0,1)},vX(l6n,"EcorePackageImpl/29",1212),wAn(1186,1,s7n,ls),MWn.wj=function(n){return cL(n,510)},MWn.xj=function(n){return x8(KAt,{3:1,4:1,5:1,1934:1},590,n,0,1)},vX(l6n,"EcorePackageImpl/3",1186),wAn(1213,1,s7n,bs),MWn.wj=function(n){return cL(n,573)},MWn.xj=function(n){return x8(yAt,HWn,1940,n,0,1)},vX(l6n,"EcorePackageImpl/30",1213),wAn(1214,1,s7n,ws),MWn.wj=function(n){return cL(n,153)},MWn.xj=function(n){return x8(oLt,nZn,153,n,0,1)},vX(l6n,"EcorePackageImpl/31",1214),wAn(1215,1,s7n,ds),MWn.wj=function(n){return cL(n,72)},MWn.xj=function(n){return x8($$t,h7n,72,n,0,1)},vX(l6n,"EcorePackageImpl/32",1215),wAn(1216,1,s7n,gs),MWn.wj=function(n){return cL(n,155)},MWn.xj=function(n){return x8(Ctt,sVn,155,n,0,1)},vX(l6n,"EcorePackageImpl/33",1216),wAn(1217,1,s7n,ps),MWn.wj=function(n){return cL(n,19)},MWn.xj=function(n){return x8(Att,sVn,19,n,0,1)},vX(l6n,"EcorePackageImpl/34",1217),wAn(1218,1,s7n,vs),MWn.wj=function(n){return cL(n,290)},MWn.xj=function(n){return x8($nt,HWn,290,n,0,1)},vX(l6n,"EcorePackageImpl/35",1218),wAn(1219,1,s7n,ms),MWn.wj=function(n){return cL(n,162)},MWn.xj=function(n){return x8(Rtt,sVn,162,n,0,1)},vX(l6n,"EcorePackageImpl/36",1219),wAn(1220,1,s7n,ys),MWn.wj=function(n){return cL(n,83)},MWn.xj=function(n){return x8(Nnt,HWn,83,n,0,1)},vX(l6n,"EcorePackageImpl/37",1220),wAn(1221,1,s7n,ks),MWn.wj=function(n){return cL(n,591)},MWn.xj=function(n){return x8(iLt,HWn,591,n,0,1)},vX(l6n,"EcorePackageImpl/38",1221),wAn(1222,1,s7n,js),MWn.wj=function(n){return!1},MWn.xj=function(n){return x8(FNt,HWn,2111,n,0,1)},vX(l6n,"EcorePackageImpl/39",1222),wAn(1187,1,s7n,Es),MWn.wj=function(n){return cL(n,88)},MWn.xj=function(n){return x8(qAt,HWn,26,n,0,1)},vX(l6n,"EcorePackageImpl/4",1187),wAn(1223,1,s7n,Ts),MWn.wj=function(n){return cL(n,184)},MWn.xj=function(n){return x8(_tt,sVn,184,n,0,1)},vX(l6n,"EcorePackageImpl/40",1223),wAn(1224,1,s7n,Ms),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(l6n,"EcorePackageImpl/41",1224),wAn(1225,1,s7n,Ss),MWn.wj=function(n){return cL(n,588)},MWn.xj=function(n){return x8(sAt,HWn,588,n,0,1)},vX(l6n,"EcorePackageImpl/42",1225),wAn(1226,1,s7n,Ps),MWn.wj=function(n){return!1},MWn.xj=function(n){return x8(BNt,sVn,2112,n,0,1)},vX(l6n,"EcorePackageImpl/43",1226),wAn(1227,1,s7n,Cs),MWn.wj=function(n){return cL(n,42)},MWn.xj=function(n){return x8(Hnt,kVn,42,n,0,1)},vX(l6n,"EcorePackageImpl/44",1227),wAn(1188,1,s7n,Is),MWn.wj=function(n){return cL(n,138)},MWn.xj=function(n){return x8(HAt,HWn,138,n,0,1)},vX(l6n,"EcorePackageImpl/5",1188),wAn(1189,1,s7n,Os),MWn.wj=function(n){return cL(n,148)},MWn.xj=function(n){return x8(GAt,HWn,148,n,0,1)},vX(l6n,"EcorePackageImpl/6",1189),wAn(1190,1,s7n,As),MWn.wj=function(n){return cL(n,457)},MWn.xj=function(n){return x8(XAt,HWn,671,n,0,1)},vX(l6n,"EcorePackageImpl/7",1190),wAn(1191,1,s7n,$s),MWn.wj=function(n){return cL(n,573)},MWn.xj=function(n){return x8(WAt,HWn,678,n,0,1)},vX(l6n,"EcorePackageImpl/8",1191),wAn(1192,1,s7n,Ls),MWn.wj=function(n){return cL(n,471)},MWn.xj=function(n){return x8(HOt,HWn,471,n,0,1)},vX(l6n,"EcorePackageImpl/9",1192),wAn(1025,1982,r9n,xy),MWn.bi=function(n,t){Afn(this,BB(t,415))},MWn.fi=function(n,t){eCn(this,n,BB(t,415))},vX(l6n,"MinimalEObjectImpl/1ArrayDelegatingAdapterList",1025),wAn(1026,143,t9n,uW),MWn.Ai=function(){return this.a.a},vX(l6n,"MinimalEObjectImpl/1ArrayDelegatingAdapterList/1",1026),wAn(1053,1052,{},o$),vX("org.eclipse.emf.ecore.plugin","EcorePlugin",1053);var Y$t,J$t,Z$t,nLt,tLt,eLt,iLt=bq(f7n,"Resource");wAn(781,1378,l7n),MWn.Yk=function(n){},MWn.Zk=function(n){},MWn.Vk=function(){return!this.a&&(this.a=new Sp(this)),this.a},MWn.Wk=function(n){var t,e,i,r,c;if((i=n.length)>0){if(b1(0,n.length),47==n.charCodeAt(0)){for(c=new J6(4),r=1,t=1;t<i;++t)b1(t,n.length),47==n.charCodeAt(t)&&(WB(c,r==t?"":n.substr(r,t-r)),r=t+1);return WB(c,n.substr(r)),ojn(this,c)}b1(i-1,n.length),63==n.charCodeAt(i-1)&&(e=MK(n,YTn(63),i-2))>0&&(n=n.substr(0,e))}return jIn(this,n)},MWn.Xk=function(){return this.c},MWn.Ib=function(){return nE(this.gm)+"@"+(nsn(this)>>>0).toString(16)+" uri='"+this.d+"'"},MWn.b=!1,vX(b7n,"ResourceImpl",781),wAn(1379,781,l7n,Cp),vX(b7n,"BinaryResourceImpl",1379),wAn(1169,694,f8n),MWn.si=function(n){return cL(n,56)?TY(this,BB(n,56)):cL(n,591)?new AL(BB(n,591).Vk()):GI(n)===GI(this.f)?BB(n,14).Kc():(dD(),pAt.a)},MWn.Ob=function(){return bOn(this)},MWn.a=!1,vX(y9n,"EcoreUtil/ContentTreeIterator",1169),wAn(1380,1169,f8n,rU),MWn.si=function(n){return GI(n)===GI(this.f)?BB(n,15).Kc():new F2(BB(n,56))},vX(b7n,"ResourceImpl/5",1380),wAn(648,1994,D9n,Sp),MWn.Hc=function(n){return this.i<=4?Sjn(this,n):cL(n,49)&&BB(n,49).Zg()==this.a},MWn.bi=function(n,t){n==this.i-1&&(this.a.b||(this.a.b=!0))},MWn.di=function(n,t){0==n?this.a.b||(this.a.b=!0):L8(this,n,t)},MWn.fi=function(n,t){},MWn.gi=function(n,t,e){},MWn.aj=function(){return 2},MWn.Ai=function(){return this.a},MWn.bj=function(){return!0},MWn.cj=function(n,t){return t=BB(n,49).wh(this.a,t)},MWn.dj=function(n,t){return BB(n,49).wh(null,t)},MWn.ej=function(){return!1},MWn.hi=function(){return!0},MWn.ri=function(n){return x8(LOt,HWn,56,n,0,1)},MWn.ni=function(){return!1},vX(b7n,"ResourceImpl/ContentsEList",648),wAn(957,1964,LVn,Pp),MWn.Zc=function(n){return this.a._h(n)},MWn.gc=function(){return this.a.gc()},vX(y9n,"AbstractSequentialInternalEList/1",957),wAn(624,1,{},SH),vX(y9n,"BasicExtendedMetaData",624),wAn(1160,1,{},$I),MWn.$k=function(){return null},MWn._k=function(){return-2==this.a&&ob(this,aMn(this.d,this.b)),this.a},MWn.al=function(){return null},MWn.bl=function(){return SQ(),SQ(),set},MWn.ne=function(){return this.c==C7n&&hb(this,Egn(this.d,this.b)),this.c},MWn.cl=function(){return 0},MWn.a=-2,MWn.c=C7n,vX(y9n,"BasicExtendedMetaData/EClassExtendedMetaDataImpl",1160),wAn(1161,1,{},_0),MWn.$k=function(){return this.a==(R5(),tLt)&&sb(this,vNn(this.f,this.b)),this.a},MWn._k=function(){return 0},MWn.al=function(){return this.c==(R5(),tLt)&&fb(this,mNn(this.f,this.b)),this.c},MWn.bl=function(){return!this.d&&lb(this,SKn(this.f,this.b)),this.d},MWn.ne=function(){return this.e==C7n&&bb(this,Egn(this.f,this.b)),this.e},MWn.cl=function(){return-2==this.g&&wb(this,YEn(this.f,this.b)),this.g},MWn.e=C7n,MWn.g=-2,vX(y9n,"BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl",1161),wAn(1159,1,{},RI),MWn.b=!1,MWn.c=!1,vX(y9n,"BasicExtendedMetaData/EPackageExtendedMetaDataImpl",1159),wAn(1162,1,{},K0),MWn.c=-2,MWn.e=C7n,MWn.f=C7n,vX(y9n,"BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl",1162),wAn(585,622,R9n,MH),MWn.aj=function(){return this.c},MWn.Fk=function(){return!1},MWn.li=function(n,t){return t},MWn.c=0,vX(y9n,"EDataTypeEList",585);var rLt,cLt,aLt,uLt,oLt=bq(y9n,"FeatureMap");wAn(75,585,{3:1,4:1,20:1,28:1,52:1,14:1,15:1,54:1,67:1,63:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},Ecn),MWn.Vc=function(n,t){lNn(this,n,BB(t,72))},MWn.Fc=function(n){return uLn(this,BB(n,72))},MWn.Yh=function(n){dX(this,BB(n,72))},MWn.cj=function(n,t){return HK(this,BB(n,72),t)},MWn.dj=function(n,t){return qK(this,BB(n,72),t)},MWn.ii=function(n,t){return a_n(this,n,t)},MWn.li=function(n,t){return hGn(this,n,BB(t,72))},MWn._c=function(n,t){return Pxn(this,n,BB(t,72))},MWn.jj=function(n,t){return GK(this,BB(n,72),t)},MWn.kj=function(n,t){return zK(this,BB(n,72),t)},MWn.lj=function(n,t,e){return gEn(this,BB(n,72),BB(t,72),e)},MWn.oi=function(n,t){return sTn(this,n,BB(t,72))},MWn.dl=function(n,t){return xKn(this,n,t)},MWn.Wc=function(n,t){var e,i,r,c,a,u,o,s,h;for(s=new gtn(t.gc()),r=t.Kc();r.Ob();)if(c=(i=BB(r.Pb(),72)).ak(),$xn(this.e,c))(!c.hi()||!G3(this,c,i.dd())&&!Sjn(s,i))&&f9(s,i);else{for(h=axn(this.e.Tg(),c),e=BB(this.g,119),a=!0,u=0;u<this.i;++u)if(o=e[u],h.rl(o.ak())){BB(ovn(this,u,i),72),a=!1;break}a&&f9(s,i)}return oon(this,n,s)},MWn.Gc=function(n){var t,e,i,r,c,a,u,o,s;for(o=new gtn(n.gc()),i=n.Kc();i.Ob();)if(r=(e=BB(i.Pb(),72)).ak(),$xn(this.e,r))(!r.hi()||!G3(this,r,e.dd())&&!Sjn(o,e))&&f9(o,e);else{for(s=axn(this.e.Tg(),r),t=BB(this.g,119),c=!0,a=0;a<this.i;++a)if(u=t[a],s.rl(u.ak())){BB(ovn(this,a,e),72),c=!1;break}c&&f9(o,e)}return pX(this,o)},MWn.Wh=function(n){return this.j=-1,LFn(this,this.i,n)},MWn.el=function(n,t,e){return PRn(this,n,t,e)},MWn.mk=function(n,t){return TKn(this,n,t)},MWn.fl=function(n,t,e){return ZBn(this,n,t,e)},MWn.gl=function(){return this},MWn.hl=function(n,t){return rHn(this,n,t)},MWn.il=function(n){return BB(Wtn(this,n),72).ak()},MWn.jl=function(n){return BB(Wtn(this,n),72).dd()},MWn.kl=function(){return this.b},MWn.bj=function(){return!0},MWn.ij=function(){return!0},MWn.ll=function(n){return!adn(this,n)},MWn.ri=function(n){return x8(W$t,h7n,332,n,0,1)},MWn.Gk=function(n){return hD(this,n)},MWn.Wb=function(n){tX(this,n)},MWn.ml=function(n,t){MHn(this,n,t)},MWn.nl=function(n){return zin(this,n)},MWn.ol=function(n){Kmn(this,n)},vX(y9n,"BasicFeatureMap",75),wAn(1851,1,cVn),MWn.Nb=function(n){fU(this,n)},MWn.Rb=function(n){if(-1==this.g)throw Hp(new dv);mz(this);try{Axn(this.e,this.b,this.a,n),this.d=this.e.j,cvn(this)}catch(t){throw cL(t=lun(t),73)?Hp(new vv):Hp(t)}},MWn.Ob=function(){return Ksn(this)},MWn.Sb=function(){return _sn(this)},MWn.Pb=function(){return cvn(this)},MWn.Tb=function(){return this.a},MWn.Ub=function(){var n;if(_sn(this))return mz(this),this.g=--this.a,this.Lk()&&(n=FIn(this.e,this.b,this.c,this.a,this.j),this.j=n),this.i=0,this.j;throw Hp(new yv)},MWn.Vb=function(){return this.a-1},MWn.Qb=function(){if(-1==this.g)throw Hp(new dv);mz(this);try{aPn(this.e,this.b,this.g),this.d=this.e.j,this.g<this.a&&(--this.a,--this.c),--this.g}catch(n){throw cL(n=lun(n),73)?Hp(new vv):Hp(n)}},MWn.Lk=function(){return!1},MWn.Wb=function(n){if(-1==this.g)throw Hp(new dv);mz(this);try{XFn(this.e,this.b,this.g,n),this.d=this.e.j}catch(t){throw cL(t=lun(t),73)?Hp(new vv):Hp(t)}},MWn.a=0,MWn.c=0,MWn.d=0,MWn.f=!1,MWn.g=0,MWn.i=0,vX(y9n,"FeatureMapUtil/BasicFeatureEIterator",1851),wAn(410,1851,cVn,Aan),MWn.pl=function(){var n,t,e;for(e=this.e.i,n=BB(this.e.g,119);this.c<e;){if(t=n[this.c],this.k.rl(t.ak()))return this.j=this.f?t:t.dd(),this.i=2,!0;++this.c}return this.i=1,this.g=-1,!1},MWn.ql=function(){var n,t;for(n=BB(this.e.g,119);--this.c>=0;)if(t=n[this.c],this.k.rl(t.ak()))return this.j=this.f?t:t.dd(),this.i=-2,!0;return this.i=-1,this.g=-1,!1},vX(y9n,"BasicFeatureMap/FeatureEIterator",410),wAn(662,410,cVn,xO),MWn.Lk=function(){return!0},vX(y9n,"BasicFeatureMap/ResolvingFeatureEIterator",662),wAn(955,486,q9n,z$),MWn.Gi=function(){return this},vX(y9n,"EContentsEList/1",955),wAn(956,486,q9n,DO),MWn.Lk=function(){return!1},vX(y9n,"EContentsEList/2",956),wAn(954,279,G9n,U$),MWn.Nk=function(n){},MWn.Ob=function(){return!1},MWn.Sb=function(){return!1},vX(y9n,"EContentsEList/FeatureIteratorImpl/1",954),wAn(825,585,R9n,KL),MWn.ci=function(){this.a=!0},MWn.fj=function(){return this.a},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.a,this.a=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.a=!1},MWn.a=!1,vX(y9n,"EDataTypeEList/Unsettable",825),wAn(1849,585,R9n,_L),MWn.hi=function(){return!0},vX(y9n,"EDataTypeUniqueEList",1849),wAn(1850,825,R9n,FL),MWn.hi=function(){return!0},vX(y9n,"EDataTypeUniqueEList/Unsettable",1850),wAn(139,85,R9n,NL),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectContainmentEList/Resolving",139),wAn(1163,545,R9n,xL),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectContainmentEList/Unsettable/Resolving",1163),wAn(748,16,R9n,iK),MWn.ci=function(){this.a=!0},MWn.fj=function(){return this.a},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.a,this.a=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.a=!1},MWn.a=!1,vX(y9n,"EObjectContainmentWithInverseEList/Unsettable",748),wAn(1173,748,R9n,rK),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectContainmentWithInverseEList/Unsettable/Resolving",1173),wAn(743,496,R9n,DL),MWn.ci=function(){this.a=!0},MWn.fj=function(){return this.a},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.a,this.a=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.a=!1},MWn.a=!1,vX(y9n,"EObjectEList/Unsettable",743),wAn(328,496,R9n,RL),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectResolvingEList",328),wAn(1641,743,R9n,BL),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectResolvingEList/Unsettable",1641),wAn(1381,1,{},Ns),vX(y9n,"EObjectValidator",1381),wAn(546,496,R9n,iU),MWn.zk=function(){return this.d},MWn.Ak=function(){return this.b},MWn.bj=function(){return!0},MWn.Dk=function(){return!0},MWn.b=0,vX(y9n,"EObjectWithInverseEList",546),wAn(1176,546,R9n,cK),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseEList/ManyInverse",1176),wAn(625,546,R9n,aK),MWn.ci=function(){this.a=!0},MWn.fj=function(){return this.a},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.a,this.a=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.a=!1},MWn.a=!1,vX(y9n,"EObjectWithInverseEList/Unsettable",625),wAn(1175,625,R9n,oK),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseEList/Unsettable/ManyInverse",1175),wAn(749,546,R9n,uK),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectWithInverseResolvingEList",749),wAn(31,749,R9n,hK),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseResolvingEList/ManyInverse",31),wAn(750,625,R9n,sK),MWn.Ek=function(){return!0},MWn.li=function(n,t){return GOn(this,n,BB(t,56))},vX(y9n,"EObjectWithInverseResolvingEList/Unsettable",750),wAn(1174,750,R9n,fK),MWn.Ck=function(){return!0},vX(y9n,"EObjectWithInverseResolvingEList/Unsettable/ManyInverse",1174),wAn(1164,622,R9n),MWn.ai=function(){return 0==(1792&this.b)},MWn.ci=function(){this.b|=1},MWn.Bk=function(){return 0!=(4&this.b)},MWn.bj=function(){return 0!=(40&this.b)},MWn.Ck=function(){return 0!=(16&this.b)},MWn.Dk=function(){return 0!=(8&this.b)},MWn.Ek=function(){return 0!=(this.b&M9n)},MWn.rk=function(){return 0!=(32&this.b)},MWn.Fk=function(){return 0!=(this.b&k6n)},MWn.wj=function(n){return this.d?x3(this.d,n):this.ak().Yj().wj(n)},MWn.fj=function(){return 0!=(2&this.b)?0!=(1&this.b):0!=this.i},MWn.hi=function(){return 0!=(128&this.b)},MWn.Xj=function(){var n;sqn(this),0!=(2&this.b)&&(mA(this.e)?(n=0!=(1&this.b),this.b&=-2,Lv(this,new t6(this.e,2,Awn(this.e.Tg(),this.ak()),n,!1))):this.b&=-2)},MWn.ni=function(){return 0==(1536&this.b)},MWn.b=0,vX(y9n,"EcoreEList/Generic",1164),wAn(1165,1164,R9n,zQ),MWn.ak=function(){return this.a},vX(y9n,"EcoreEList/Dynamic",1165),wAn(747,63,h8n,Ip),MWn.ri=function(n){return Den(this.a.a,n)},vX(y9n,"EcoreEMap/1",747),wAn(746,85,R9n,Zz),MWn.bi=function(n,t){Ivn(this.b,BB(t,133))},MWn.di=function(n,t){aan(this.b)},MWn.ei=function(n,t,e){var i;++(i=this.b,BB(t,133),i).e},MWn.fi=function(n,t){Oln(this.b,BB(t,133))},MWn.gi=function(n,t,e){Oln(this.b,BB(e,133)),GI(e)===GI(t)&&BB(e,133).Th(c$(BB(t,133).cd())),Ivn(this.b,BB(t,133))},vX(y9n,"EcoreEMap/DelegateEObjectContainmentEList",746),wAn(1171,151,j9n,yin),vX(y9n,"EcoreEMap/Unsettable",1171),wAn(1172,746,R9n,lK),MWn.ci=function(){this.a=!0},MWn.fj=function(){return this.a},MWn.Xj=function(){var n;sqn(this),mA(this.e)?(n=this.a,this.a=!1,ban(this.e,new t6(this.e,2,this.c,n,!1))):this.a=!1},MWn.a=!1,vX(y9n,"EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList",1172),wAn(1168,228,tYn,lX),MWn.a=!1,MWn.b=!1,vX(y9n,"EcoreUtil/Copier",1168),wAn(745,1,QWn,F2),MWn.Nb=function(n){fU(this,n)},MWn.Ob=function(){return udn(this)},MWn.Pb=function(){var n;return udn(this),n=this.b,this.b=null,n},MWn.Qb=function(){this.a.Qb()},vX(y9n,"EcoreUtil/ProperContentIterator",745),wAn(1382,1381,{},Ff),vX(y9n,"EcoreValidator",1382),bq(y9n,"FeatureMapUtil/Validator"),wAn(1260,1,{1942:1},xs),MWn.rl=function(n){return!0},vX(y9n,"FeatureMapUtil/1",1260),wAn(757,1,{1942:1},cUn),MWn.rl=function(n){var t;return this.c==n||(null==(t=TD(RX(this.a,n)))?xRn(this,n)?(r6(this.a,n,(hN(),vtt)),!0):(r6(this.a,n,(hN(),ptt)),!1):t==(hN(),vtt))},MWn.e=!1,vX(y9n,"FeatureMapUtil/BasicValidator",757),wAn(758,43,tYn,X$),vX(y9n,"FeatureMapUtil/BasicValidator/Cache",758),wAn(501,52,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,69:1,95:1},xI),MWn.Vc=function(n,t){Axn(this.c,this.b,n,t)},MWn.Fc=function(n){return xKn(this.c,this.b,n)},MWn.Wc=function(n,t){return jHn(this.c,this.b,n,t)},MWn.Gc=function(n){return Z$(this,n)},MWn.Xh=function(n,t){htn(this.c,this.b,n,t)},MWn.lk=function(n,t){return PRn(this.c,this.b,n,t)},MWn.pi=function(n){return iHn(this.c,this.b,n,!1)},MWn.Zh=function(){return jA(this.c,this.b)},MWn.$h=function(){return EA(this.c,this.b)},MWn._h=function(n){return $8(this.c,this.b,n)},MWn.mk=function(n,t){return tR(this,n,t)},MWn.$b=function(){Nv(this)},MWn.Hc=function(n){return G3(this.c,this.b,n)},MWn.Ic=function(n){return Mcn(this.c,this.b,n)},MWn.Xb=function(n){return iHn(this.c,this.b,n,!0)},MWn.Wj=function(n){return this},MWn.Xc=function(n){return z3(this.c,this.b,n)},MWn.dc=function(){return HI(this)},MWn.fj=function(){return!adn(this.c,this.b)},MWn.Kc=function(){return cnn(this.c,this.b)},MWn.Yc=function(){return ann(this.c,this.b)},MWn.Zc=function(n){return lln(this.c,this.b,n)},MWn.ii=function(n,t){return mFn(this.c,this.b,n,t)},MWn.ji=function(n,t){Q6(this.c,this.b,n,t)},MWn.$c=function(n){return aPn(this.c,this.b,n)},MWn.Mc=function(n){return CKn(this.c,this.b,n)},MWn._c=function(n,t){return XFn(this.c,this.b,n,t)},MWn.Wb=function(n){AOn(this.c,this.b),Z$(this,BB(n,15))},MWn.gc=function(){return Kln(this.c,this.b)},MWn.Pc=function(){return G1(this.c,this.b)},MWn.Qc=function(n){return U3(this.c,this.b,n)},MWn.Ib=function(){var n,t;for((t=new Sk).a+="[",n=jA(this.c,this.b);Ksn(n);)cO(t,kN(cvn(n))),Ksn(n)&&(t.a+=FWn);return t.a+="]",t.a},MWn.Xj=function(){AOn(this.c,this.b)},vX(y9n,"FeatureMapUtil/FeatureEList",501),wAn(627,36,t9n,b4),MWn.yi=function(n){return eln(this,n)},MWn.Di=function(n){var t,e,i,r;switch(this.d){case 1:case 2:if(GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return this.g=n.zi(),1==n.xi()&&(this.d=1),!0;break;case 3:if(3===n.xi()&&GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return this.d=5,f9(t=new gtn(2),this.g),f9(t,n.zi()),this.g=t,!0;break;case 5:if(3===n.xi()&&GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return BB(this.g,14).Fc(n.zi()),!0;break;case 4:switch(n.xi()){case 3:if(GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return this.d=1,this.g=n.zi(),!0;break;case 4:if(GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return this.d=6,f9(r=new gtn(2),this.n),f9(r,n.Bi()),this.n=r,i=Pun(Gk(ANt,1),hQn,25,15,[this.o,n.Ci()]),this.g=i,!0}break;case 6:if(4===n.xi()&&GI(n.Ai())===GI(this.c)&&eln(this,null)==n.yi(null))return BB(this.n,14).Fc(n.Bi()),aHn(i=BB(this.g,48),0,e=x8(ANt,hQn,25,i.length+1,15,1),0,i.length),e[i.length]=n.Ci(),this.g=e,!0}return!1},vX(y9n,"FeatureMapUtil/FeatureENotificationImpl",627),wAn(552,501,{20:1,28:1,52:1,14:1,15:1,58:1,76:1,153:1,215:1,1937:1,69:1,95:1},lq),MWn.dl=function(n,t){return xKn(this.c,n,t)},MWn.el=function(n,t,e){return PRn(this.c,n,t,e)},MWn.fl=function(n,t,e){return ZBn(this.c,n,t,e)},MWn.gl=function(){return this},MWn.hl=function(n,t){return rHn(this.c,n,t)},MWn.il=function(n){return BB(iHn(this.c,this.b,n,!1),72).ak()},MWn.jl=function(n){return BB(iHn(this.c,this.b,n,!1),72).dd()},MWn.kl=function(){return this.a},MWn.ll=function(n){return!adn(this.c,n)},MWn.ml=function(n,t){MHn(this.c,n,t)},MWn.nl=function(n){return zin(this.c,n)},MWn.ol=function(n){Kmn(this.c,n)},vX(y9n,"FeatureMapUtil/FeatureFeatureMap",552),wAn(1259,1,k9n,KI),MWn.Wj=function(n){return iHn(this.b,this.a,-1,n)},MWn.fj=function(){return!adn(this.b,this.a)},MWn.Wb=function(n){MHn(this.b,this.a,n)},MWn.Xj=function(){AOn(this.b,this.a)},vX(y9n,"FeatureMapUtil/FeatureValue",1259);var sLt,hLt,fLt,lLt,bLt,wLt=bq(O7n,"AnyType");wAn(666,60,BVn,ik),vX(O7n,"InvalidDatatypeValueException",666);var dLt,gLt,pLt,vLt,mLt,yLt,kLt,jLt,ELt,TLt,MLt,SLt,PLt,CLt,ILt,OLt,ALt,$Lt,LLt,NLt,xLt,DLt,RLt,KLt,_Lt,FLt,BLt,HLt,qLt,GLt,zLt=bq(O7n,A7n),ULt=bq(O7n,$7n),XLt=bq(O7n,L7n);wAn(830,506,{105:1,92:1,90:1,56:1,49:1,97:1,843:1},Rm),MWn._g=function(n,t,e){switch(n){case 0:return e?(!this.c&&(this.c=new Ecn(this,0)),this.c):(!this.c&&(this.c=new Ecn(this,0)),this.c.b);case 1:return e?(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)):(!this.c&&(this.c=new Ecn(this,0)),BB(BB(n1(this.c,(Uqn(),vLt)),153),215)).kl();case 2:return e?(!this.b&&(this.b=new Ecn(this,2)),this.b):(!this.b&&(this.b=new Ecn(this,2)),this.b.b)}return U9(this,n-bX(this.zh()),itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new Kf),this.k).ck(),n),t,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.c&&(this.c=new Ecn(this,0)),TKn(this.c,n,e);case 1:return(!this.c&&(this.c=new Ecn(this,0)),BB(BB(n1(this.c,(Uqn(),vLt)),153),69)).mk(n,e);case 2:return!this.b&&(this.b=new Ecn(this,2)),TKn(this.b,n,e)}return BB(itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new Kf),this.k).ck(),t),66).Nj().Rj(this,Q7(this),t-bX(this.zh()),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.c&&0!=this.c.i;case 1:return!(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)).dc();case 2:return!!this.b&&0!=this.b.i}return O3(this,n-bX(this.zh()),itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.c&&(this.c=new Ecn(this,0)),void tX(this.c,t);case 1:return void(!this.c&&(this.c=new Ecn(this,0)),BB(BB(n1(this.c,(Uqn(),vLt)),153),215)).Wb(t);case 2:return!this.b&&(this.b=new Ecn(this,2)),void tX(this.b,t)}Lbn(this,n-bX(this.zh()),itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new Kf),this.k).ck(),n),t)},MWn.zh=function(){return Uqn(),pLt},MWn.Bh=function(n){switch(n){case 0:return!this.c&&(this.c=new Ecn(this,0)),void sqn(this.c);case 1:return void(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)).$b();case 2:return!this.b&&(this.b=new Ecn(this,2)),void sqn(this.b)}qfn(this,n-bX(this.zh()),itn(0==(2&this.j)?this.zh():(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.Ib=function(){var n;return 0!=(4&this.j)?P$n(this):((n=new fN(P$n(this))).a+=" (mixed: ",rO(n,this.c),n.a+=", anyAttribute: ",rO(n,this.b),n.a+=")",n.a)},vX(N7n,"AnyTypeImpl",830),wAn(667,506,{105:1,92:1,90:1,56:1,49:1,97:1,2021:1,667:1},Rs),MWn._g=function(n,t,e){switch(n){case 0:return this.a;case 1:return this.b}return U9(this,n-bX((Uqn(),OLt)),itn(0==(2&this.j)?OLt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t,e)},MWn.lh=function(n){switch(n){case 0:return null!=this.a;case 1:return null!=this.b}return O3(this,n-bX((Uqn(),OLt)),itn(0==(2&this.j)?OLt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.sh=function(n,t){switch(n){case 0:return void kb(this,SD(t));case 1:return void jb(this,SD(t))}Lbn(this,n-bX((Uqn(),OLt)),itn(0==(2&this.j)?OLt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t)},MWn.zh=function(){return Uqn(),OLt},MWn.Bh=function(n){switch(n){case 0:return void(this.a=null);case 1:return void(this.b=null)}qfn(this,n-bX((Uqn(),OLt)),itn(0==(2&this.j)?OLt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.Ib=function(){var n;return 0!=(4&this.j)?P$n(this):((n=new fN(P$n(this))).a+=" (data: ",cO(n,this.a),n.a+=", target: ",cO(n,this.b),n.a+=")",n.a)},MWn.a=null,MWn.b=null,vX(N7n,"ProcessingInstructionImpl",667),wAn(668,830,{105:1,92:1,90:1,56:1,49:1,97:1,843:1,2022:1,668:1},_m),MWn._g=function(n,t,e){switch(n){case 0:return e?(!this.c&&(this.c=new Ecn(this,0)),this.c):(!this.c&&(this.c=new Ecn(this,0)),this.c.b);case 1:return e?(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)):(!this.c&&(this.c=new Ecn(this,0)),BB(BB(n1(this.c,(Uqn(),vLt)),153),215)).kl();case 2:return e?(!this.b&&(this.b=new Ecn(this,2)),this.b):(!this.b&&(this.b=new Ecn(this,2)),this.b.b);case 3:return!this.c&&(this.c=new Ecn(this,0)),SD(rHn(this.c,(Uqn(),LLt),!0));case 4:return gK(this.a,(!this.c&&(this.c=new Ecn(this,0)),SD(rHn(this.c,(Uqn(),LLt),!0))));case 5:return this.a}return U9(this,n-bX((Uqn(),$Lt)),itn(0==(2&this.j)?$Lt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t,e)},MWn.lh=function(n){switch(n){case 0:return!!this.c&&0!=this.c.i;case 1:return!(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)).dc();case 2:return!!this.b&&0!=this.b.i;case 3:return!this.c&&(this.c=new Ecn(this,0)),null!=SD(rHn(this.c,(Uqn(),LLt),!0));case 4:return null!=gK(this.a,(!this.c&&(this.c=new Ecn(this,0)),SD(rHn(this.c,(Uqn(),LLt),!0))));case 5:return!!this.a}return O3(this,n-bX((Uqn(),$Lt)),itn(0==(2&this.j)?$Lt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.c&&(this.c=new Ecn(this,0)),void tX(this.c,t);case 1:return void(!this.c&&(this.c=new Ecn(this,0)),BB(BB(n1(this.c,(Uqn(),vLt)),153),215)).Wb(t);case 2:return!this.b&&(this.b=new Ecn(this,2)),void tX(this.b,t);case 3:return void F0(this,SD(t));case 4:return void F0(this,pK(this.a,t));case 5:return void Eb(this,BB(t,148))}Lbn(this,n-bX((Uqn(),$Lt)),itn(0==(2&this.j)?$Lt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t)},MWn.zh=function(){return Uqn(),$Lt},MWn.Bh=function(n){switch(n){case 0:return!this.c&&(this.c=new Ecn(this,0)),void sqn(this.c);case 1:return void(!this.c&&(this.c=new Ecn(this,0)),BB(n1(this.c,(Uqn(),vLt)),153)).$b();case 2:return!this.b&&(this.b=new Ecn(this,2)),void sqn(this.b);case 3:return!this.c&&(this.c=new Ecn(this,0)),void MHn(this.c,(Uqn(),LLt),null);case 4:return void F0(this,pK(this.a,null));case 5:return void(this.a=null)}qfn(this,n-bX((Uqn(),$Lt)),itn(0==(2&this.j)?$Lt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},vX(N7n,"SimpleAnyTypeImpl",668),wAn(669,506,{105:1,92:1,90:1,56:1,49:1,97:1,2023:1,669:1},Km),MWn._g=function(n,t,e){switch(n){case 0:return e?(!this.a&&(this.a=new Ecn(this,0)),this.a):(!this.a&&(this.a=new Ecn(this,0)),this.a.b);case 1:return e?(!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),this.b):(!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),A8(this.b));case 2:return e?(!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),this.c):(!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),A8(this.c));case 3:return!this.a&&(this.a=new Ecn(this,0)),n1(this.a,(Uqn(),DLt));case 4:return!this.a&&(this.a=new Ecn(this,0)),n1(this.a,(Uqn(),RLt));case 5:return!this.a&&(this.a=new Ecn(this,0)),n1(this.a,(Uqn(),_Lt));case 6:return!this.a&&(this.a=new Ecn(this,0)),n1(this.a,(Uqn(),FLt))}return U9(this,n-bX((Uqn(),xLt)),itn(0==(2&this.j)?xLt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t,e)},MWn.jh=function(n,t,e){switch(t){case 0:return!this.a&&(this.a=new Ecn(this,0)),TKn(this.a,n,e);case 1:return!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),BK(this.b,n,e);case 2:return!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),BK(this.c,n,e);case 5:return!this.a&&(this.a=new Ecn(this,0)),tR(n1(this.a,(Uqn(),_Lt)),n,e)}return BB(itn(0==(2&this.j)?(Uqn(),xLt):(!this.k&&(this.k=new Kf),this.k).ck(),t),66).Nj().Rj(this,Q7(this),t-bX((Uqn(),xLt)),n,e)},MWn.lh=function(n){switch(n){case 0:return!!this.a&&0!=this.a.i;case 1:return!!this.b&&0!=this.b.f;case 2:return!!this.c&&0!=this.c.f;case 3:return!this.a&&(this.a=new Ecn(this,0)),!HI(n1(this.a,(Uqn(),DLt)));case 4:return!this.a&&(this.a=new Ecn(this,0)),!HI(n1(this.a,(Uqn(),RLt)));case 5:return!this.a&&(this.a=new Ecn(this,0)),!HI(n1(this.a,(Uqn(),_Lt)));case 6:return!this.a&&(this.a=new Ecn(this,0)),!HI(n1(this.a,(Uqn(),FLt)))}return O3(this,n-bX((Uqn(),xLt)),itn(0==(2&this.j)?xLt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.sh=function(n,t){switch(n){case 0:return!this.a&&(this.a=new Ecn(this,0)),void tX(this.a,t);case 1:return!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),void tan(this.b,t);case 2:return!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),void tan(this.c,t);case 3:return!this.a&&(this.a=new Ecn(this,0)),Nv(n1(this.a,(Uqn(),DLt))),!this.a&&(this.a=new Ecn(this,0)),void Z$(n1(this.a,DLt),BB(t,14));case 4:return!this.a&&(this.a=new Ecn(this,0)),Nv(n1(this.a,(Uqn(),RLt))),!this.a&&(this.a=new Ecn(this,0)),void Z$(n1(this.a,RLt),BB(t,14));case 5:return!this.a&&(this.a=new Ecn(this,0)),Nv(n1(this.a,(Uqn(),_Lt))),!this.a&&(this.a=new Ecn(this,0)),void Z$(n1(this.a,_Lt),BB(t,14));case 6:return!this.a&&(this.a=new Ecn(this,0)),Nv(n1(this.a,(Uqn(),FLt))),!this.a&&(this.a=new Ecn(this,0)),void Z$(n1(this.a,FLt),BB(t,14))}Lbn(this,n-bX((Uqn(),xLt)),itn(0==(2&this.j)?xLt:(!this.k&&(this.k=new Kf),this.k).ck(),n),t)},MWn.zh=function(){return Uqn(),xLt},MWn.Bh=function(n){switch(n){case 0:return!this.a&&(this.a=new Ecn(this,0)),void sqn(this.a);case 1:return!this.b&&(this.b=new y9((gWn(),k$t),X$t,this,1)),void this.b.c.$b();case 2:return!this.c&&(this.c=new y9((gWn(),k$t),X$t,this,2)),void this.c.c.$b();case 3:return!this.a&&(this.a=new Ecn(this,0)),void Nv(n1(this.a,(Uqn(),DLt)));case 4:return!this.a&&(this.a=new Ecn(this,0)),void Nv(n1(this.a,(Uqn(),RLt)));case 5:return!this.a&&(this.a=new Ecn(this,0)),void Nv(n1(this.a,(Uqn(),_Lt)));case 6:return!this.a&&(this.a=new Ecn(this,0)),void Nv(n1(this.a,(Uqn(),FLt)))}qfn(this,n-bX((Uqn(),xLt)),itn(0==(2&this.j)?xLt:(!this.k&&(this.k=new Kf),this.k).ck(),n))},MWn.Ib=function(){var n;return 0!=(4&this.j)?P$n(this):((n=new fN(P$n(this))).a+=" (mixed: ",rO(n,this.a),n.a+=")",n.a)},vX(N7n,"XMLTypeDocumentRootImpl",669),wAn(1919,704,{105:1,92:1,90:1,471:1,147:1,56:1,108:1,49:1,97:1,150:1,114:1,115:1,2024:1},Ds),MWn.Ih=function(n,t){switch(n.yj()){case 7:case 8:case 9:case 10:case 16:case 22:case 23:case 24:case 25:case 26:case 32:case 33:case 34:case 36:case 37:case 44:case 45:case 50:case 51:case 53:case 55:case 56:case 57:case 58:case 60:case 61:case 4:return null==t?null:Bbn(t);case 19:case 28:case 29:case 35:case 38:case 39:case 41:case 46:case 52:case 54:case 5:return SD(t);case 6:return mD(BB(t,190));case 12:case 47:case 49:case 11:return qGn(this,n,t);case 13:return null==t?null:GBn(BB(t,240));case 15:case 14:return null==t?null:RU(Gy(MD(t)));case 17:return EEn((Uqn(),t));case 18:return EEn(t);case 21:case 20:return null==t?null:KU(BB(t,155).a);case 27:return yD(BB(t,190));case 30:return _mn((Uqn(),BB(t,15)));case 31:return _mn(BB(t,15));case 40:return jD((Uqn(),t));case 42:return TEn((Uqn(),t));case 43:return TEn(t);case 59:case 48:return kD((Uqn(),t));default:throw Hp(new _y(d6n+n.ne()+g6n))}},MWn.Jh=function(n){var t;switch(-1==n.G&&(n.G=(t=Utn(n))?uvn(t.Mh(),n):-1),n.G){case 0:return new Rm;case 1:return new Rs;case 2:return new _m;case 3:return new Km;default:throw Hp(new _y(m6n+n.zb+g6n))}},MWn.Kh=function(n,t){var e,i,r,c,a,u,o,s,h,f,l,b,w,d,g,p;switch(n.yj()){case 5:case 52:case 4:return t;case 6:return ypn(t);case 8:case 7:return null==t?null:_En(t);case 9:return null==t?null:Pnn(l_n((i=FBn(t,!0)).length>0&&(b1(0,i.length),43==i.charCodeAt(0))?i.substr(1):i,-128,127)<<24>>24);case 10:return null==t?null:Pnn(l_n((r=FBn(t,!0)).length>0&&(b1(0,r.length),43==r.charCodeAt(0))?r.substr(1):r,-128,127)<<24>>24);case 11:return SD(xXn(this,(Uqn(),kLt),t));case 12:return SD(xXn(this,(Uqn(),jLt),t));case 13:return null==t?null:new wE(FBn(t,!0));case 15:case 14:return gLn(t);case 16:return SD(xXn(this,(Uqn(),ELt),t));case 17:return Hdn((Uqn(),t));case 18:return Hdn(t);case 28:case 29:case 35:case 38:case 39:case 41:case 54:case 19:return FBn(t,!0);case 21:case 20:return ILn(t);case 22:return SD(xXn(this,(Uqn(),TLt),t));case 23:return SD(xXn(this,(Uqn(),MLt),t));case 24:return SD(xXn(this,(Uqn(),SLt),t));case 25:return SD(xXn(this,(Uqn(),PLt),t));case 26:return SD(xXn(this,(Uqn(),CLt),t));case 27:return Zgn(t);case 30:return qdn((Uqn(),t));case 31:return qdn(t);case 32:return null==t?null:iln(l_n((h=FBn(t,!0)).length>0&&(b1(0,h.length),43==h.charCodeAt(0))?h.substr(1):h,_Vn,DWn));case 33:return null==t?null:new $A((f=FBn(t,!0)).length>0&&(b1(0,f.length),43==f.charCodeAt(0))?f.substr(1):f);case 34:return null==t?null:iln(l_n((l=FBn(t,!0)).length>0&&(b1(0,l.length),43==l.charCodeAt(0))?l.substr(1):l,_Vn,DWn));case 36:return null==t?null:jgn(rUn((b=FBn(t,!0)).length>0&&(b1(0,b.length),43==b.charCodeAt(0))?b.substr(1):b));case 37:return null==t?null:jgn(rUn((w=FBn(t,!0)).length>0&&(b1(0,w.length),43==w.charCodeAt(0))?w.substr(1):w));case 40:return Vwn((Uqn(),t));case 42:return Gdn((Uqn(),t));case 43:return Gdn(t);case 44:return null==t?null:new $A((d=FBn(t,!0)).length>0&&(b1(0,d.length),43==d.charCodeAt(0))?d.substr(1):d);case 45:return null==t?null:new $A((g=FBn(t,!0)).length>0&&(b1(0,g.length),43==g.charCodeAt(0))?g.substr(1):g);case 46:return FBn(t,!1);case 47:return SD(xXn(this,(Uqn(),ILt),t));case 59:case 48:return Wwn((Uqn(),t));case 49:return SD(xXn(this,(Uqn(),ALt),t));case 50:return null==t?null:rln(l_n((p=FBn(t,!0)).length>0&&(b1(0,p.length),43==p.charCodeAt(0))?p.substr(1):p,Q9n,32767)<<16>>16);case 51:return null==t?null:rln(l_n((c=FBn(t,!0)).length>0&&(b1(0,c.length),43==c.charCodeAt(0))?c.substr(1):c,Q9n,32767)<<16>>16);case 53:return SD(xXn(this,(Uqn(),NLt),t));case 55:return null==t?null:rln(l_n((a=FBn(t,!0)).length>0&&(b1(0,a.length),43==a.charCodeAt(0))?a.substr(1):a,Q9n,32767)<<16>>16);case 56:return null==t?null:rln(l_n((u=FBn(t,!0)).length>0&&(b1(0,u.length),43==u.charCodeAt(0))?u.substr(1):u,Q9n,32767)<<16>>16);case 57:return null==t?null:jgn(rUn((o=FBn(t,!0)).length>0&&(b1(0,o.length),43==o.charCodeAt(0))?o.substr(1):o));case 58:return null==t?null:jgn(rUn((s=FBn(t,!0)).length>0&&(b1(0,s.length),43==s.charCodeAt(0))?s.substr(1):s));case 60:return null==t?null:iln(l_n((e=FBn(t,!0)).length>0&&(b1(0,e.length),43==e.charCodeAt(0))?e.substr(1):e,_Vn,DWn));case 61:return null==t?null:iln(l_n(FBn(t,!0),_Vn,DWn));default:throw Hp(new _y(d6n+n.ne()+g6n))}},vX(N7n,"XMLTypeFactoryImpl",1919),wAn(586,179,{105:1,92:1,90:1,147:1,191:1,56:1,235:1,108:1,49:1,97:1,150:1,179:1,114:1,115:1,675:1,1945:1,586:1},zW),MWn.N=!1,MWn.O=!1;var WLt,VLt,QLt,YLt,JLt,ZLt=!1;vX(N7n,"XMLTypePackageImpl",586),wAn(1852,1,{837:1},Ks),MWn._j=function(){return fFn(),TNt},vX(N7n,"XMLTypePackageImpl/1",1852),wAn(1861,1,s7n,_s),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/10",1861),wAn(1862,1,s7n,Fs),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/11",1862),wAn(1863,1,s7n,Bs),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/12",1863),wAn(1864,1,s7n,Hs),MWn.wj=function(n){return UI(n)},MWn.xj=function(n){return x8(Ptt,sVn,333,n,7,1)},vX(N7n,"XMLTypePackageImpl/13",1864),wAn(1865,1,s7n,qs),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/14",1865),wAn(1866,1,s7n,Gs),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/15",1866),wAn(1867,1,s7n,zs),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/16",1867),wAn(1868,1,s7n,Us),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/17",1868),wAn(1869,1,s7n,Xs),MWn.wj=function(n){return cL(n,155)},MWn.xj=function(n){return x8(Ctt,sVn,155,n,0,1)},vX(N7n,"XMLTypePackageImpl/18",1869),wAn(1870,1,s7n,Ws),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/19",1870),wAn(1853,1,s7n,Vs),MWn.wj=function(n){return cL(n,843)},MWn.xj=function(n){return x8(wLt,HWn,843,n,0,1)},vX(N7n,"XMLTypePackageImpl/2",1853),wAn(1871,1,s7n,Qs),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/20",1871),wAn(1872,1,s7n,Ys),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/21",1872),wAn(1873,1,s7n,Js),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/22",1873),wAn(1874,1,s7n,Zs),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/23",1874),wAn(1875,1,s7n,nh),MWn.wj=function(n){return cL(n,190)},MWn.xj=function(n){return x8(NNt,sVn,190,n,0,2)},vX(N7n,"XMLTypePackageImpl/24",1875),wAn(1876,1,s7n,th),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/25",1876),wAn(1877,1,s7n,eh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/26",1877),wAn(1878,1,s7n,ih),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/27",1878),wAn(1879,1,s7n,rh),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/28",1879),wAn(1880,1,s7n,ch),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/29",1880),wAn(1854,1,s7n,ah),MWn.wj=function(n){return cL(n,667)},MWn.xj=function(n){return x8(zLt,HWn,2021,n,0,1)},vX(N7n,"XMLTypePackageImpl/3",1854),wAn(1881,1,s7n,uh),MWn.wj=function(n){return cL(n,19)},MWn.xj=function(n){return x8(Att,sVn,19,n,0,1)},vX(N7n,"XMLTypePackageImpl/30",1881),wAn(1882,1,s7n,oh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/31",1882),wAn(1883,1,s7n,sh),MWn.wj=function(n){return cL(n,162)},MWn.xj=function(n){return x8(Rtt,sVn,162,n,0,1)},vX(N7n,"XMLTypePackageImpl/32",1883),wAn(1884,1,s7n,hh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/33",1884),wAn(1885,1,s7n,fh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/34",1885),wAn(1886,1,s7n,lh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/35",1886),wAn(1887,1,s7n,bh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/36",1887),wAn(1888,1,s7n,wh),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/37",1888),wAn(1889,1,s7n,dh),MWn.wj=function(n){return cL(n,15)},MWn.xj=function(n){return x8(Rnt,nZn,15,n,0,1)},vX(N7n,"XMLTypePackageImpl/38",1889),wAn(1890,1,s7n,gh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/39",1890),wAn(1855,1,s7n,ph),MWn.wj=function(n){return cL(n,668)},MWn.xj=function(n){return x8(ULt,HWn,2022,n,0,1)},vX(N7n,"XMLTypePackageImpl/4",1855),wAn(1891,1,s7n,vh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/40",1891),wAn(1892,1,s7n,mh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/41",1892),wAn(1893,1,s7n,yh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/42",1893),wAn(1894,1,s7n,kh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/43",1894),wAn(1895,1,s7n,jh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/44",1895),wAn(1896,1,s7n,Eh),MWn.wj=function(n){return cL(n,184)},MWn.xj=function(n){return x8(_tt,sVn,184,n,0,1)},vX(N7n,"XMLTypePackageImpl/45",1896),wAn(1897,1,s7n,Th),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/46",1897),wAn(1898,1,s7n,Mh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/47",1898),wAn(1899,1,s7n,Sh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/48",1899),wAn(sQn,1,s7n,Ph),MWn.wj=function(n){return cL(n,184)},MWn.xj=function(n){return x8(_tt,sVn,184,n,0,1)},vX(N7n,"XMLTypePackageImpl/49",sQn),wAn(1856,1,s7n,Ch),MWn.wj=function(n){return cL(n,669)},MWn.xj=function(n){return x8(XLt,HWn,2023,n,0,1)},vX(N7n,"XMLTypePackageImpl/5",1856),wAn(1901,1,s7n,Ih),MWn.wj=function(n){return cL(n,162)},MWn.xj=function(n){return x8(Rtt,sVn,162,n,0,1)},vX(N7n,"XMLTypePackageImpl/50",1901),wAn(1902,1,s7n,Oh),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/51",1902),wAn(1903,1,s7n,Ah),MWn.wj=function(n){return cL(n,19)},MWn.xj=function(n){return x8(Att,sVn,19,n,0,1)},vX(N7n,"XMLTypePackageImpl/52",1903),wAn(1857,1,s7n,$h),MWn.wj=function(n){return XI(n)},MWn.xj=function(n){return x8(Qtt,sVn,2,n,6,1)},vX(N7n,"XMLTypePackageImpl/6",1857),wAn(1858,1,s7n,Lh),MWn.wj=function(n){return cL(n,190)},MWn.xj=function(n){return x8(NNt,sVn,190,n,0,2)},vX(N7n,"XMLTypePackageImpl/7",1858),wAn(1859,1,s7n,Nh),MWn.wj=function(n){return zI(n)},MWn.xj=function(n){return x8(ktt,sVn,476,n,8,1)},vX(N7n,"XMLTypePackageImpl/8",1859),wAn(1860,1,s7n,xh),MWn.wj=function(n){return cL(n,217)},MWn.xj=function(n){return x8(Ttt,sVn,217,n,0,1)},vX(N7n,"XMLTypePackageImpl/9",1860),wAn(50,60,BVn,ak),vX(ant,"RegEx/ParseException",50),wAn(820,1,{},Dh),MWn.sl=function(n){return n<this.j&&63==fV(this.i,n)},MWn.tl=function(){var n,t,e,i,r;if(10!=this.c)throw Hp(new ak(kWn((u$(),g8n))));switch(n=this.a){case 101:n=27;break;case 102:n=12;break;case 110:n=10;break;case 114:n=13;break;case 116:n=9;break;case 120:if(QXn(this),0!=this.c)throw Hp(new ak(kWn((u$(),B8n))));if(123==this.a){for(r=0,e=0;;){if(QXn(this),0!=this.c)throw Hp(new ak(kWn((u$(),B8n))));if((r=Gvn(this.a))<0)break;if(e>16*e)throw Hp(new ak(kWn((u$(),H8n))));e=16*e+r}if(125!=this.a)throw Hp(new ak(kWn((u$(),q8n))));if(e>unt)throw Hp(new ak(kWn((u$(),G8n))));n=e}else{if(r=0,0!=this.c||(r=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(e=r,QXn(this),0!=this.c||(r=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));n=e=16*e+r}break;case 117:if(i=0,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));n=t=16*t+i;break;case 118:if(QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if(t=16*t+i,QXn(this),0!=this.c||(i=Gvn(this.a))<0)throw Hp(new ak(kWn((u$(),B8n))));if((t=16*t+i)>unt)throw Hp(new ak(kWn((u$(),"parser.descappe.4"))));n=t;break;case 65:case 90:case 122:throw Hp(new ak(kWn((u$(),z8n))))}return n},MWn.ul=function(n){var t;switch(n){case 100:t=32==(32&this.e)?ZUn("Nd",!0):(wWn(),uNt);break;case 68:t=32==(32&this.e)?ZUn("Nd",!1):(wWn(),lNt);break;case 119:t=32==(32&this.e)?ZUn("IsWord",!0):(wWn(),kNt);break;case 87:t=32==(32&this.e)?ZUn("IsWord",!1):(wWn(),wNt);break;case 115:t=32==(32&this.e)?ZUn("IsSpace",!0):(wWn(),gNt);break;case 83:t=32==(32&this.e)?ZUn("IsSpace",!1):(wWn(),bNt);break;default:throw Hp(new dy(ont+n.toString(16)))}return t},MWn.vl=function(n){var t,e,i,r,c,a,u,o,s,h,f;for(this.b=1,QXn(this),t=null,0==this.c&&94==this.a?(QXn(this),n?(wWn(),wWn(),s=new M0(5)):(wWn(),wWn(),Yxn(t=new M0(4),0,unt),s=new M0(4))):(wWn(),wWn(),s=new M0(4)),r=!0;1!=(f=this.c)&&(0!=f||93!=this.a||r);){if(r=!1,e=this.a,i=!1,10==f)switch(e){case 100:case 68:case 119:case 87:case 115:case 83:sHn(s,this.ul(e)),i=!0;break;case 105:case 73:case 99:case 67:(e=this.Ll(s,e))<0&&(i=!0);break;case 112:case 80:if(!(h=DIn(this,e)))throw Hp(new ak(kWn((u$(),O8n))));sHn(s,h),i=!0;break;default:e=this.tl()}else if(20==f){if((c=lx(this.i,58,this.d))<0)throw Hp(new ak(kWn((u$(),A8n))));if(a=!0,94==fV(this.i,this.d)&&(++this.d,a=!1),!(u=b9(fx(this.i,this.d,c),a,512==(512&this.e))))throw Hp(new ak(kWn((u$(),L8n))));if(sHn(s,u),i=!0,c+1>=this.j||93!=fV(this.i,c+1))throw Hp(new ak(kWn((u$(),A8n))));this.d=c+2}if(QXn(this),!i)if(0!=this.c||45!=this.a)Yxn(s,e,e);else{if(QXn(this),1==(f=this.c))throw Hp(new ak(kWn((u$(),$8n))));0==f&&93==this.a?(Yxn(s,e,e),Yxn(s,45,45)):(o=this.a,10==f&&(o=this.tl()),QXn(this),Yxn(s,e,o))}(this.e&k6n)==k6n&&0==this.c&&44==this.a&&QXn(this)}if(1==this.c)throw Hp(new ak(kWn((u$(),$8n))));return t&&(WGn(t,s),s=t),T$n(s),qHn(s),this.b=0,QXn(this),s},MWn.wl=function(){var n,t,e,i;for(e=this.vl(!1);7!=(i=this.c);){if(n=this.a,(0!=i||45!=n&&38!=n)&&4!=i)throw Hp(new ak(kWn((u$(),_8n))));if(QXn(this),9!=this.c)throw Hp(new ak(kWn((u$(),K8n))));if(t=this.vl(!1),4==i)sHn(e,t);else if(45==n)WGn(e,t);else{if(38!=n)throw Hp(new dy("ASSERT"));kGn(e,t)}}return QXn(this),e},MWn.xl=function(){var n,t;return n=this.a-48,wWn(),wWn(),t=new vJ(12,null,n),!this.g&&(this.g=new _v),Cv(this.g,new Op(n)),QXn(this),t},MWn.yl=function(){return QXn(this),wWn(),pNt},MWn.zl=function(){return QXn(this),wWn(),dNt},MWn.Al=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Bl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Cl=function(){return QXn(this),fsn()},MWn.Dl=function(){return QXn(this),wWn(),mNt},MWn.El=function(){return QXn(this),wWn(),jNt},MWn.Fl=function(){var n;if(this.d>=this.j||64!=(65504&(n=fV(this.i,this.d++))))throw Hp(new ak(kWn((u$(),S8n))));return QXn(this),wWn(),wWn(),new oG(0,n-64)},MWn.Gl=function(){return QXn(this),RFn()},MWn.Hl=function(){return QXn(this),wWn(),ENt},MWn.Il=function(){var n;return wWn(),wWn(),n=new oG(0,105),QXn(this),n},MWn.Jl=function(){return QXn(this),wWn(),yNt},MWn.Kl=function(){return QXn(this),wWn(),vNt},MWn.Ll=function(n,t){return this.tl()},MWn.Ml=function(){return QXn(this),wWn(),hNt},MWn.Nl=function(){var n,t,e,i,r;if(this.d+1>=this.j)throw Hp(new ak(kWn((u$(),E8n))));if(i=-1,t=null,49<=(n=fV(this.i,this.d))&&n<=57){if(i=n-48,!this.g&&(this.g=new _v),Cv(this.g,new Op(i)),++this.d,41!=fV(this.i,this.d))throw Hp(new ak(kWn((u$(),y8n))));++this.d}else switch(63==n&&--this.d,QXn(this),(t=OXn(this)).e){case 20:case 21:case 22:case 23:break;case 8:if(7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));break;default:throw Hp(new ak(kWn((u$(),T8n))))}if(QXn(this),e=null,2==(r=Vdn(this)).e){if(2!=r.em())throw Hp(new ak(kWn((u$(),M8n))));e=r.am(1),r=r.am(0)}if(7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),wWn(),wWn(),new jnn(i,t,r,e)},MWn.Ol=function(){return QXn(this),wWn(),fNt},MWn.Pl=function(){var n;if(QXn(this),n=uU(24,Vdn(this)),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Ql=function(){var n;if(QXn(this),n=uU(20,Vdn(this)),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Rl=function(){var n;if(QXn(this),n=uU(22,Vdn(this)),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Sl=function(){var n,t,e,i,r;for(n=0,e=0,t=-1;this.d<this.j&&0!=(r=QOn(t=fV(this.i,this.d)));)n|=r,++this.d;if(this.d>=this.j)throw Hp(new ak(kWn((u$(),k8n))));if(45==t){for(++this.d;this.d<this.j&&0!=(r=QOn(t=fV(this.i,this.d)));)e|=r,++this.d;if(this.d>=this.j)throw Hp(new ak(kWn((u$(),k8n))))}if(58==t){if(++this.d,QXn(this),i=AX(Vdn(this),n,e),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));QXn(this)}else{if(41!=t)throw Hp(new ak(kWn((u$(),j8n))));++this.d,QXn(this),i=AX(Vdn(this),n,e)}return i},MWn.Tl=function(){var n;if(QXn(this),n=uU(21,Vdn(this)),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Ul=function(){var n;if(QXn(this),n=uU(23,Vdn(this)),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Vl=function(){var n,t;if(QXn(this),n=this.f++,t=oU(Vdn(this),n),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),t},MWn.Wl=function(){var n;if(QXn(this),n=oU(Vdn(this),0),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Xl=function(n){return QXn(this),5==this.c?(QXn(this),gG(n,(wWn(),wWn(),new h4(9,n)))):gG(n,(wWn(),wWn(),new h4(3,n)))},MWn.Yl=function(n){var t;return QXn(this),wWn(),wWn(),t=new r$(2),5==this.c?(QXn(this),tqn(t,sNt),tqn(t,n)):(tqn(t,n),tqn(t,sNt)),t},MWn.Zl=function(n){return QXn(this),5==this.c?(QXn(this),wWn(),wWn(),new h4(9,n)):(wWn(),wWn(),new h4(3,n))},MWn.a=0,MWn.b=0,MWn.c=0,MWn.d=0,MWn.e=0,MWn.f=1,MWn.g=null,MWn.j=0,vX(ant,"RegEx/RegexParser",820),wAn(1824,820,{},Fm),MWn.sl=function(n){return!1},MWn.tl=function(){return qDn(this)},MWn.ul=function(n){return d_n(n)},MWn.vl=function(n){return ZXn(this)},MWn.wl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.xl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.yl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.zl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Al=function(){return QXn(this),d_n(67)},MWn.Bl=function(){return QXn(this),d_n(73)},MWn.Cl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Dl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.El=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Fl=function(){return QXn(this),d_n(99)},MWn.Gl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Hl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Il=function(){return QXn(this),d_n(105)},MWn.Jl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Kl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Ll=function(n,t){return sHn(n,d_n(t)),-1},MWn.Ml=function(){return QXn(this),wWn(),wWn(),new oG(0,94)},MWn.Nl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Ol=function(){return QXn(this),wWn(),wWn(),new oG(0,36)},MWn.Pl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Ql=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Rl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Sl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Tl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Ul=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Vl=function(){var n;if(QXn(this),n=oU(Vdn(this),0),7!=this.c)throw Hp(new ak(kWn((u$(),y8n))));return QXn(this),n},MWn.Wl=function(){throw Hp(new ak(kWn((u$(),U8n))))},MWn.Xl=function(n){return QXn(this),gG(n,(wWn(),wWn(),new h4(3,n)))},MWn.Yl=function(n){var t;return QXn(this),wWn(),wWn(),tqn(t=new r$(2),n),tqn(t,sNt),t},MWn.Zl=function(n){return QXn(this),wWn(),wWn(),new h4(3,n)};var nNt=null,tNt=null;vX(ant,"RegEx/ParserForXMLSchema",1824),wAn(117,1,ynt,Ap),MWn.$l=function(n){throw Hp(new dy("Not supported."))},MWn._l=function(){return-1},MWn.am=function(n){return null},MWn.bm=function(){return null},MWn.cm=function(n){},MWn.dm=function(n){},MWn.em=function(){return 0},MWn.Ib=function(){return this.fm(0)},MWn.fm=function(n){return 11==this.e?".":""},MWn.e=0;var eNt,iNt,rNt,cNt,aNt,uNt,oNt,sNt,hNt,fNt,lNt,bNt,wNt,dNt,gNt,pNt,vNt,mNt,yNt,kNt,jNt,ENt,TNt,MNt,SNt=null,PNt=null,CNt=null,INt=vX(ant,"RegEx/Token",117);wAn(136,117,{3:1,136:1,117:1},M0),MWn.fm=function(n){var t,e,i;if(4==this.e)if(this==oNt)e=".";else if(this==uNt)e="\\d";else if(this==kNt)e="\\w";else if(this==gNt)e="\\s";else{for((i=new Sk).a+="[",t=0;t<this.b.length;t+=2)0!=(n&k6n)&&t>0&&(i.a+=","),this.b[t]===this.b[t+1]?cO(i,aBn(this.b[t])):(cO(i,aBn(this.b[t])),i.a+="-",cO(i,aBn(this.b[t+1])));i.a+="]",e=i.a}else if(this==lNt)e="\\D";else if(this==wNt)e="\\W";else if(this==bNt)e="\\S";else{for((i=new Sk).a+="[^",t=0;t<this.b.length;t+=2)0!=(n&k6n)&&t>0&&(i.a+=","),this.b[t]===this.b[t+1]?cO(i,aBn(this.b[t])):(cO(i,aBn(this.b[t])),i.a+="-",cO(i,aBn(this.b[t+1])));i.a+="]",e=i.a}return e},MWn.a=!1,MWn.c=!1,vX(ant,"RegEx/RangeToken",136),wAn(584,1,{584:1},Op),MWn.a=0,vX(ant,"RegEx/RegexParser/ReferencePosition",584),wAn(583,1,{3:1,583:1},XE),MWn.Fb=function(n){var t;return null!=n&&!!cL(n,583)&&(t=BB(n,583),mK(this.b,t.b)&&this.a==t.a)},MWn.Hb=function(){return vvn(this.b+"/"+txn(this.a))},MWn.Ib=function(){return this.c.fm(this.a)},MWn.a=0,vX(ant,"RegEx/RegularExpression",583),wAn(223,117,ynt,oG),MWn._l=function(){return this.a},MWn.fm=function(n){var t,e;switch(this.e){case 0:switch(this.a){case 124:case 42:case 43:case 63:case 40:case 41:case 46:case 91:case 123:case 92:e="\\"+PR(this.a&QVn);break;case 12:e="\\f";break;case 10:e="\\n";break;case 13:e="\\r";break;case 9:e="\\t";break;case 27:e="\\e";break;default:e=this.a>=BQn?"\\v"+fx(t="0"+(this.a>>>0).toString(16),t.length-6,t.length):""+PR(this.a&QVn)}break;case 8:e=this==hNt||this==fNt?""+PR(this.a&QVn):"\\"+PR(this.a&QVn);break;default:e=null}return e},MWn.a=0,vX(ant,"RegEx/Token/CharToken",223),wAn(309,117,ynt,h4),MWn.am=function(n){return this.a},MWn.cm=function(n){this.b=n},MWn.dm=function(n){this.c=n},MWn.em=function(){return 1},MWn.fm=function(n){var t;if(3==this.e)if(this.c<0&&this.b<0)t=this.a.fm(n)+"*";else if(this.c==this.b)t=this.a.fm(n)+"{"+this.c+"}";else if(this.c>=0&&this.b>=0)t=this.a.fm(n)+"{"+this.c+","+this.b+"}";else{if(!(this.c>=0&&this.b<0))throw Hp(new dy("Token#toString(): CLOSURE "+this.c+FWn+this.b));t=this.a.fm(n)+"{"+this.c+",}"}else if(this.c<0&&this.b<0)t=this.a.fm(n)+"*?";else if(this.c==this.b)t=this.a.fm(n)+"{"+this.c+"}?";else if(this.c>=0&&this.b>=0)t=this.a.fm(n)+"{"+this.c+","+this.b+"}?";else{if(!(this.c>=0&&this.b<0))throw Hp(new dy("Token#toString(): NONGREEDYCLOSURE "+this.c+FWn+this.b));t=this.a.fm(n)+"{"+this.c+",}?"}return t},MWn.b=0,MWn.c=0,vX(ant,"RegEx/Token/ClosureToken",309),wAn(821,117,ynt,UU),MWn.am=function(n){return 0==n?this.a:this.b},MWn.em=function(){return 2},MWn.fm=function(n){return 3==this.b.e&&this.b.am(0)==this.a?this.a.fm(n)+"+":9==this.b.e&&this.b.am(0)==this.a?this.a.fm(n)+"+?":this.a.fm(n)+""+this.b.fm(n)},vX(ant,"RegEx/Token/ConcatToken",821),wAn(1822,117,ynt,jnn),MWn.am=function(n){if(0==n)return this.d;if(1==n)return this.b;throw Hp(new dy("Internal Error: "+n))},MWn.em=function(){return this.b?2:1},MWn.fm=function(n){var t;return t=this.c>0?"(?("+this.c+")":8==this.a.e?"(?("+this.a+")":"(?"+this.a,this.b?t+=this.d+"|"+this.b+")":t+=this.d+")",t},MWn.c=0,vX(ant,"RegEx/Token/ConditionToken",1822),wAn(1823,117,ynt,T0),MWn.am=function(n){return this.b},MWn.em=function(){return 1},MWn.fm=function(n){return"(?"+(0==this.a?"":txn(this.a))+(0==this.c?"":txn(this.c))+":"+this.b.fm(n)+")"},MWn.a=0,MWn.c=0,vX(ant,"RegEx/Token/ModifierToken",1823),wAn(822,117,ynt,cW),MWn.am=function(n){return this.a},MWn.em=function(){return 1},MWn.fm=function(n){var t;switch(t=null,this.e){case 6:t=0==this.b?"(?:"+this.a.fm(n)+")":"("+this.a.fm(n)+")";break;case 20:t="(?="+this.a.fm(n)+")";break;case 21:t="(?!"+this.a.fm(n)+")";break;case 22:t="(?<="+this.a.fm(n)+")";break;case 23:t="(?<!"+this.a.fm(n)+")";break;case 24:t="(?>"+this.a.fm(n)+")"}return t},MWn.b=0,vX(ant,"RegEx/Token/ParenToken",822),wAn(521,117,{3:1,117:1,521:1},vJ),MWn.bm=function(){return this.b},MWn.fm=function(n){return 12==this.e?"\\"+this.a:iAn(this.b)},MWn.a=0,vX(ant,"RegEx/Token/StringToken",521),wAn(465,117,ynt,r$),MWn.$l=function(n){tqn(this,n)},MWn.am=function(n){return BB(bW(this.a,n),117)},MWn.em=function(){return this.a?this.a.a.c.length:0},MWn.fm=function(n){var t,e,i,r,c;if(1==this.e){if(2==this.a.a.c.length)t=BB(bW(this.a,0),117),r=3==(e=BB(bW(this.a,1),117)).e&&e.am(0)==t?t.fm(n)+"+":9==e.e&&e.am(0)==t?t.fm(n)+"+?":t.fm(n)+""+e.fm(n);else{for(c=new Sk,i=0;i<this.a.a.c.length;i++)cO(c,BB(bW(this.a,i),117).fm(n));r=c.a}return r}if(2==this.a.a.c.length&&7==BB(bW(this.a,1),117).e)r=BB(bW(this.a,0),117).fm(n)+"?";else if(2==this.a.a.c.length&&7==BB(bW(this.a,0),117).e)r=BB(bW(this.a,1),117).fm(n)+"??";else{for(cO(c=new Sk,BB(bW(this.a,0),117).fm(n)),i=1;i<this.a.a.c.length;i++)c.a+="|",cO(c,BB(bW(this.a,i),117).fm(n));r=c.a}return r},vX(ant,"RegEx/Token/UnionToken",465),wAn(518,1,{592:1},UE),MWn.Ib=function(){return this.a.b},vX(knt,"XMLTypeUtil/PatternMatcherImpl",518),wAn(1622,1381,{},Rh),vX(knt,"XMLTypeValidator",1622),wAn(264,1,pVn,hz),MWn.Jc=function(n){e5(this,n)},MWn.Kc=function(){return(this.b-this.a)*this.c<0?MNt:new XL(this)},MWn.a=0,MWn.b=0,MWn.c=0,vX(Ent,"ExclusiveRange",264),wAn(1068,1,cVn,Kh),MWn.Rb=function(n){BB(n,19),l$()},MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return GE()},MWn.Ub=function(){return zE()},MWn.Wb=function(n){BB(n,19),w$()},MWn.Ob=function(){return!1},MWn.Sb=function(){return!1},MWn.Tb=function(){return-1},MWn.Vb=function(){return-1},MWn.Qb=function(){throw Hp(new tk(Snt))},vX(Ent,"ExclusiveRange/1",1068),wAn(254,1,cVn,XL),MWn.Rb=function(n){BB(n,19),b$()},MWn.Nb=function(n){fU(this,n)},MWn.Pb=function(){return Fhn(this)},MWn.Ub=function(){return O9(this)},MWn.Wb=function(n){BB(n,19),d$()},MWn.Ob=function(){return this.c.c<0?this.a>=this.c.b:this.a<=this.c.b},MWn.Sb=function(){return this.b>0},MWn.Tb=function(){return this.b},MWn.Vb=function(){return this.b-1},MWn.Qb=function(){throw Hp(new tk(Snt))},MWn.a=0,MWn.b=0,vX(Ent,"ExclusiveRange/RangeIterator",254);var ONt=RW(P9n,"C"),ANt=RW(O9n,"I"),$Nt=RW($Wn,"Z"),LNt=RW(A9n,"J"),NNt=RW(S9n,"B"),xNt=RW(C9n,"D"),DNt=RW(I9n,"F"),RNt=RW($9n,"S"),KNt=bq("org.eclipse.elk.core.labels","ILabelManager"),_Nt=bq(B6n,"DiagnosticChain"),FNt=bq(f7n,"ResourceSet"),BNt=vX(B6n,"InvocationTargetException",null),HNt=(Dk(),f5),qNt=qNt=hEn;Zen(Qp),scn("permProps",[[[Pnt,Cnt],[Int,"gecko1_8"]],[[Pnt,Cnt],[Int,"ie10"]],[[Pnt,Cnt],[Int,"ie8"]],[[Pnt,Cnt],[Int,"ie9"]],[[Pnt,Cnt],[Int,"safari"]]]),qNt(null,"elk",null)}).call(this)}).call(this,void 0!==e.g?e.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(n,t,e){"use strict";function i(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function r(n,t){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?n:t}function c(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(n,t):n.__proto__=t)}var a=function(t){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e);var c=Object.assign({},t),a=!1;try{n.resolve("web-worker"),a=!0}catch(s){}if(t.workerUrl)if(a){var u=n("web-worker");c.workerFactory=function(n){return new u(n)}}else console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version.");if(!c.workerFactory){var o=n("./elk-worker.min.js").Worker;c.workerFactory=function(n){return new o(n)}}return r(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,c))}return c(e,t),e}(n("./elk-api.js").default);Object.defineProperty(t.exports,"__esModule",{value:!0}),t.exports=a,a.default=a},{"./elk-api.js":1,"./elk-worker.min.js":2,"web-worker":4}],4:[function(n,t,e){t.exports=Worker},{}]},{},[3])(3)},19487:(n,t,e)=>{"use strict";e.r(t),e.d(t,{diagram:()=>k});var i=e(16432),r=e(59373),c=e(43349),a=e(17295),u=e.n(a);e(27484),e(17967),e(27856),e(70277),e(45625),e(39354),e(91518),e(59542),e(10285),e(28734);const o=new(u()),s={},h={};let f={};const l=(n,t,e)=>{const r={TB:{in:{north:"north"},out:{south:"west",west:"east",east:"south"}},LR:{in:{west:"west"},out:{east:"south",south:"north",north:"east"}},RL:{in:{east:"east"},out:{west:"north",north:"south",south:"west"}},BT:{in:{south:"south"},out:{north:"east",east:"west",west:"north"}}};return r.TD=r.TB,i.l.info("abc88",e,t,n),r[e][t][n]},b=(n,t,e)=>{if(i.l.info("getNextPort abc88",{node:n,edgeDirection:t,graphDirection:e}),!s[n])switch(e){case"TB":case"TD":s[n]={inPosition:"north",outPosition:"south"};break;case"BT":s[n]={inPosition:"south",outPosition:"north"};break;case"RL":s[n]={inPosition:"east",outPosition:"west"};break;case"LR":s[n]={inPosition:"west",outPosition:"east"}}const r="in"===t?s[n].inPosition:s[n].outPosition;return"in"===t?s[n].inPosition=l(s[n].inPosition,t,e):s[n].outPosition=l(s[n].outPosition,t,e),r},w=function(n,t,e,c){i.l.info("abc78 edges = ",n);const a=c.insert("g").attr("class","edgeLabels");let u,o,s={},l=t.db.getDirection();if(void 0!==n.defaultStyle){const t=(0,i.a)(n.defaultStyle);u=t.style,o=t.labelStyle}return n.forEach((function(t){var c="L-"+t.start+"-"+t.end;void 0===s[c]?(s[c]=0,i.l.info("abc78 new entry",c,s[c])):(s[c]++,i.l.info("abc78 new entry",c,s[c]));let w=c+"-"+s[c];i.l.info("abc78 new link id to be used is",c,w,s[c]);var d="LS-"+t.start,g="LE-"+t.end;const p={style:"",labelStyle:""};switch(p.minlen=t.length||1,"arrow_open"===t.type?p.arrowhead="none":p.arrowhead="normal",p.arrowTypeStart="arrow_open",p.arrowTypeEnd="arrow_open",t.type){case"double_arrow_cross":p.arrowTypeStart="arrow_cross";case"arrow_cross":p.arrowTypeEnd="arrow_cross";break;case"double_arrow_point":p.arrowTypeStart="arrow_point";case"arrow_point":p.arrowTypeEnd="arrow_point";break;case"double_arrow_circle":p.arrowTypeStart="arrow_circle";case"arrow_circle":p.arrowTypeEnd="arrow_circle"}let v="",m="";switch(t.stroke){case"normal":v="fill:none;",void 0!==u&&(v=u),void 0!==o&&(m=o),p.thickness="normal",p.pattern="solid";break;case"dotted":p.thickness="normal",p.pattern="dotted",p.style="fill:none;stroke-width:2px;stroke-dasharray:3;";break;case"thick":p.thickness="thick",p.pattern="solid",p.style="stroke-width: 3.5px;fill:none;"}if(void 0!==t.style){const n=(0,i.a)(t.style);v=n.style,m=n.labelStyle}p.style=p.style+=v,p.labelStyle=p.labelStyle+=m,void 0!==t.interpolate?p.curve=(0,i.d)(t.interpolate,r.c_6):void 0!==n.defaultInterpolate?p.curve=(0,i.d)(n.defaultInterpolate,r.c_6):p.curve=(0,i.d)(h.curve,r.c_6),void 0===t.text?void 0!==t.style&&(p.arrowheadStyle="fill: #333"):(p.arrowheadStyle="fill: #333",p.labelpos="c"),p.labelType="text",p.label=t.text.replace(i.c.lineBreakRegex,"\n"),void 0===t.style&&(p.style=p.style||"stroke: #333; stroke-width: 1.5px;fill:none;"),p.labelStyle=p.labelStyle.replace("color:","fill:"),p.id=w,p.classes="flowchart-link "+d+" "+g;const y=(0,i.f)(a,p),{source:k,target:j}=((n,t)=>{let e=n.start,i=n.end;const r=f[e],c=f[i];return r&&c?("diamond"===r.type&&(e=`${e}-${b(e,"out",t)}`),"diamond"===c.type&&(i=`${i}-${b(i,"in",t)}`),{source:e,target:i}):{source:e,target:i}})(t,l);i.l.debug("abc78 source and target",k,j),e.edges.push({id:"e"+t.start+t.end,sources:[k],targets:[j],labelEl:y,labels:[{width:p.width,height:p.height,orgWidth:p.width,orgHeight:p.height,text:p.label,layoutOptions:{"edgeLabels.inline":"true","edgeLabels.placement":"CENTER"}}],edgeData:p})})),e},d=function(n,t,e){const i=((n,t,e)=>{const{parentById:i}=e,r=new Set;let c=n;for(;c;){if(r.add(c),c===t)return c;c=i[c]}for(c=t;c;){if(r.has(c))return c;c=i[c]}return"root"})(n,t,e);if(void 0===i||"root"===i)return{x:0,y:0};const r=f[i].offset;return{x:r.posX,y:r.posY}},g=function(n,t,e,i,c){const a=d(t.sources[0],t.targets[0],c),u=t.sections[0].startPoint,o=t.sections[0].endPoint,s=(t.sections[0].bendPoints?t.sections[0].bendPoints:[]).map((n=>[n.x+a.x,n.y+a.y])),h=[[u.x+a.x,u.y+a.y],...s,[o.x+a.x,o.y+a.y]],f=(0,r.jvg)().curve(r.c_6),l=n.insert("path").attr("d",f(h)).attr("class","path").attr("fill","none"),b=n.insert("g").attr("class","edgeLabel"),w=(0,r.Ys)(b.node().appendChild(t.labelEl)),g=w.node().firstChild.getBoundingClientRect();w.attr("width",g.width),w.attr("height",g.height),b.attr("transform",`translate(${t.labels[0].x+a.x}, ${t.labels[0].y+a.y})`),function(n,t,e,i){let r="";switch(i&&(r=window.location.protocol+"//"+window.location.host+window.location.pathname+window.location.search,r=r.replace(/\(/g,"\\("),r=r.replace(/\)/g,"\\)")),t.arrowTypeStart){case"arrow_cross":n.attr("marker-start","url("+r+"#"+e+"-crossStart)");break;case"arrow_point":n.attr("marker-start","url("+r+"#"+e+"-pointStart)");break;case"arrow_barb":n.attr("marker-start","url("+r+"#"+e+"-barbStart)");break;case"arrow_circle":n.attr("marker-start","url("+r+"#"+e+"-circleStart)");break;case"aggregation":n.attr("marker-start","url("+r+"#"+e+"-aggregationStart)");break;case"extension":n.attr("marker-start","url("+r+"#"+e+"-extensionStart)");break;case"composition":n.attr("marker-start","url("+r+"#"+e+"-compositionStart)");break;case"dependency":n.attr("marker-start","url("+r+"#"+e+"-dependencyStart)");break;case"lollipop":n.attr("marker-start","url("+r+"#"+e+"-lollipopStart)")}switch(t.arrowTypeEnd){case"arrow_cross":n.attr("marker-end","url("+r+"#"+e+"-crossEnd)");break;case"arrow_point":n.attr("marker-end","url("+r+"#"+e+"-pointEnd)");break;case"arrow_barb":n.attr("marker-end","url("+r+"#"+e+"-barbEnd)");break;case"arrow_circle":n.attr("marker-end","url("+r+"#"+e+"-circleEnd)");break;case"aggregation":n.attr("marker-end","url("+r+"#"+e+"-aggregationEnd)");break;case"extension":n.attr("marker-end","url("+r+"#"+e+"-extensionEnd)");break;case"composition":n.attr("marker-end","url("+r+"#"+e+"-compositionEnd)");break;case"dependency":n.attr("marker-end","url("+r+"#"+e+"-dependencyEnd)");break;case"lollipop":n.attr("marker-end","url("+r+"#"+e+"-lollipopEnd)")}}(l,e,i.type,i.arrowMarkerAbsolute)},p=(n,t)=>{n.forEach((n=>{n.children||(n.children=[]);const e=t.childrenById[n.id];e&&e.forEach((t=>{n.children.push(f[t])})),p(n.children,t)}))},v=(n,t,e,r,c,a,u)=>{e.forEach((function(e){if(e)if(f[e.id].offset={posX:e.x+n,posY:e.y+t,x:n,y:t,depth:u,width:e.width,height:e.height},"group"===e.type){const r=c.insert("g").attr("class","subgraph");r.insert("rect").attr("class","subgraph subgraph-lvl-"+u%5+" node").attr("x",e.x+n).attr("y",e.y+t).attr("width",e.width).attr("height",e.height);const a=r.insert("g").attr("class","label");a.attr("transform",`translate(${e.labels[0].x+n+e.x}, ${e.labels[0].y+t+e.y})`),a.node().appendChild(e.labelData.labelNode),i.l.info("Id (UGH)= ",e.type,e.labels)}else i.l.info("Id (UGH)= ",e.id),e.el.attr("transform",`translate(${e.x+n+e.width/2}, ${e.y+t+e.height/2})`)})),e.forEach((function(e){e&&"group"===e.type&&v(n+e.x,t+e.y,e.children,r,c,a,u+1)}))},m={getClasses:function(n,t){i.l.info("Extracting classes"),t.db.clear("ver-2");try{return t.parse(n),t.db.getClasses()}catch(e){return{}}},draw:async function(n,t,e,a){var u;a.db.clear(),f={},a.db.setGen("gen-2"),a.parser.parse(n);const s=(0,r.Ys)("body").append("div").attr("style","height:400px").attr("id","cy");let h={id:"root",layoutOptions:{"elk.hierarchyHandling":"INCLUDE_CHILDREN","org.eclipse.elk.padding":"[top=100, left=100, bottom=110, right=110]","elk.layered.spacing.edgeNodeBetweenLayers":"30","elk.direction":"DOWN"},children:[],edges:[]};switch(i.l.info("Drawing flowchart using v3 renderer",o),a.db.getDirection()){case"BT":h.layoutOptions["elk.direction"]="UP";break;case"TB":h.layoutOptions["elk.direction"]="DOWN";break;case"LR":h.layoutOptions["elk.direction"]="RIGHT";break;case"RL":h.layoutOptions["elk.direction"]="LEFT"}const{securityLevel:l,flowchart:b}=(0,i.g)();let d;"sandbox"===l&&(d=(0,r.Ys)("#i"+t));const m="sandbox"===l?(0,r.Ys)(d.nodes()[0].contentDocument.body):(0,r.Ys)("body"),y="sandbox"===l?d.nodes()[0].contentDocument:document,k=m.select(`[id="${t}"]`);(0,i.i)(k,["point","circle","cross"],a.type,a.arrowMarkerAbsolute);const j=a.db.getVertices();let E;const T=a.db.getSubGraphs();i.l.info("Subgraphs - ",T);for(let i=T.length-1;i>=0;i--)E=T[i],a.db.addVertex(E.id,E.title,"group",void 0,E.classes,E.dir);const M=k.insert("g").attr("class","subgraphs"),S=function(n){const t={parentById:{},childrenById:{}},e=n.getSubGraphs();return i.l.info("Subgraphs - ",e),e.forEach((function(n){n.nodes.forEach((function(e){t.parentById[e]=n.id,void 0===t.childrenById[n.id]&&(t.childrenById[n.id]=[]),t.childrenById[n.id].push(e)}))})),e.forEach((function(n){n.id,void 0!==t.parentById[n.id]&&t.parentById[n.id]})),t}(a.db);h=function(n,t,e,r,a,u,o){const s=e.select(`[id="${t}"]`),h=s.insert("g").attr("class","nodes");return Object.keys(n).forEach((function(t){const e=n[t];let o="default";e.classes.length>0&&(o=e.classes.join(" "));const l=(0,i.a)(e.styles);let b,w=void 0!==e.text?e.text:e.id;const d={width:0,height:0};if((0,i.e)((0,i.g)().flowchart.htmlLabels)){const n={label:w.replace(/fa[blrs]?:fa-[\w-]+/g,(n=>`<i class='${n.replace(":"," ")}'></i>`))};b=(0,c.a)(s,n).node();const t=b.getBBox();d.width=t.width,d.height=t.height,d.labelNode=b,b.parentNode.removeChild(b)}else{const n=r.createElementNS("http://www.w3.org/2000/svg","text");n.setAttribute("style",l.labelStyle.replace("color:","fill:"));const t=w.split(i.c.lineBreakRegex);for(const i of t){const t=r.createElementNS("http://www.w3.org/2000/svg","tspan");t.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),t.setAttribute("dy","1em"),t.setAttribute("x","1"),t.textContent=i,n.appendChild(t)}b=n;const e=b.getBBox();d.width=e.width,d.height=e.height,d.labelNode=b}const g=[{id:e.id+"-west",layoutOptions:{"port.side":"WEST"}},{id:e.id+"-east",layoutOptions:{"port.side":"EAST"}},{id:e.id+"-south",layoutOptions:{"port.side":"SOUTH"}},{id:e.id+"-north",layoutOptions:{"port.side":"NORTH"}}];let p=0,v="",m={};switch(e.type){case"round":p=5,v="rect";break;case"square":case"group":default:v="rect";break;case"diamond":v="question",m={portConstraints:"FIXED_SIDE"};break;case"hexagon":v="hexagon";break;case"odd":case"odd_right":v="rect_left_inv_arrow";break;case"lean_right":v="lean_right";break;case"lean_left":v="lean_left";break;case"trapezoid":v="trapezoid";break;case"inv_trapezoid":v="inv_trapezoid";break;case"circle":v="circle";break;case"ellipse":v="ellipse";break;case"stadium":v="stadium";break;case"subroutine":v="subroutine";break;case"cylinder":v="cylinder";break;case"doublecircle":v="doublecircle"}const y={labelStyle:l.labelStyle,shape:v,labelText:w,rx:p,ry:p,class:o,style:l.style,id:e.id,link:e.link,linkTarget:e.linkTarget,tooltip:a.db.getTooltip(e.id)||"",domId:a.db.lookUpDomId(e.id),haveCallback:e.haveCallback,width:"group"===e.type?500:void 0,dir:e.dir,type:e.type,props:e.props,padding:(0,i.g)().flowchart.padding};let k,j;"group"!==y.type&&(j=(0,i.b)(h,y,e.dir),k=j.node().getBBox());const E={id:e.id,ports:"diamond"===e.type?g:[],layoutOptions:m,labelText:w,labelData:d,domId:a.db.lookUpDomId(e.id),width:null==k?void 0:k.width,height:null==k?void 0:k.height,type:e.type,el:j,parent:u.parentById[e.id]};f[y.id]=E})),o}(j,t,m,y,a,S,h);const P=k.insert("g").attr("class","edges edgePath"),C=a.db.getEdges();h=w(C,a,h,k);Object.keys(f).forEach((n=>{const t=f[n];t.parent||h.children.push(t),void 0!==S.childrenById[n]&&(t.labels=[{text:t.labelText,layoutOptions:{"nodeLabels.placement":"[H_CENTER, V_TOP, INSIDE]"},width:t.labelData.width,height:t.labelData.height}],delete t.x,delete t.y,delete t.width,delete t.height)})),p(h.children,S),i.l.info("after layout",JSON.stringify(h,null,2));const I=await o.layout(h);v(0,0,I.children,k,M,a,0),i.l.info("after layout",I),null==(u=I.edges)||u.map((n=>{g(P,n,n.edgeData,a,S)})),(0,i.s)({},k,b.diagramPadding,b.useMaxWidth),s.remove()}},y=n=>`.label {\n font-family: ${n.fontFamily};\n color: ${n.nodeTextColor||n.textColor};\n }\n .cluster-label text {\n fill: ${n.titleColor};\n }\n .cluster-label span {\n color: ${n.titleColor};\n }\n\n .label text,span {\n fill: ${n.nodeTextColor||n.textColor};\n color: ${n.nodeTextColor||n.textColor};\n }\n\n .node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${n.mainBkg};\n stroke: ${n.nodeBorder};\n stroke-width: 1px;\n }\n\n .node .label {\n text-align: center;\n }\n .node.clickable {\n cursor: pointer;\n }\n\n .arrowheadPath {\n fill: ${n.arrowheadColor};\n }\n\n .edgePath .path {\n stroke: ${n.lineColor};\n stroke-width: 2.0px;\n }\n\n .flowchart-link {\n stroke: ${n.lineColor};\n fill: none;\n }\n\n .edgeLabel {\n background-color: ${n.edgeLabelBackground};\n rect {\n opacity: 0.5;\n background-color: ${n.edgeLabelBackground};\n fill: ${n.edgeLabelBackground};\n }\n text-align: center;\n }\n\n .cluster rect {\n fill: ${n.clusterBkg};\n stroke: ${n.clusterBorder};\n stroke-width: 1px;\n }\n\n .cluster text {\n fill: ${n.titleColor};\n }\n\n .cluster span {\n color: ${n.titleColor};\n }\n /* .cluster div {\n color: ${n.titleColor};\n } */\n\n div.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: ${n.fontFamily};\n font-size: 12px;\n background: ${n.tertiaryColor};\n border: 1px solid ${n.border2};\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n }\n\n .flowchartTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${n.textColor};\n }\n .subgraph {\n stroke-width:2;\n rx:3;\n }\n // .subgraph-lvl-1 {\n // fill:#ccc;\n // // stroke:black;\n // }\n ${(n=>{let t="";for(let e=0;e<5;e++)t+=`\n .subgraph-lvl-${e} {\n fill: ${n[`surface${e}`]};\n stroke: ${n[`surfacePeer${e}`]};\n }\n `;return t})(n)}\n`,k={db:i.h,renderer:m,parser:i.p,styles:y}}}]); \ No newline at end of file diff --git a/assets/js/9506.368ed619.js b/assets/js/9506.368ed619.js new file mode 100644 index 00000000000..1d9b4d9e8e7 --- /dev/null +++ b/assets/js/9506.368ed619.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9506],{29506:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>m});var o=r(87462),s=(r(67294),r(3905));const a={title:"Better Flow Error Messages for the JavaScript Ecosystem","short-title":"Better Error Messages",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/better-flow-error-messages-for-the-javascript-ecosystem-73b6da948ae2"},n=void 0,i={permalink:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem",source:"@site/blog/2018-02-20-Better-Flow-Error-Messages-for-the-Javascript-Ecosystem.md",title:"Better Flow Error Messages for the JavaScript Ecosystem",description:"Over the last year, the Flow team has been slowly auditing and improving all the",date:"2018-02-20T00:00:00.000Z",formattedDate:"February 20, 2018",tags:[],hasTruncateMarker:!1,authors:[{name:"Caleb Meredith"}],frontMatter:{title:"Better Flow Error Messages for the JavaScript Ecosystem","short-title":"Better Error Messages",author:"Caleb Meredith","medium-link":"https://medium.com/flow-type/better-flow-error-messages-for-the-javascript-ecosystem-73b6da948ae2"},prevItem:{title:"New Flow Errors on Unknown Property Access in Conditionals",permalink:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals"},nextItem:{title:"Typing Higher-Order Components in Recompose With Flow",permalink:"/blog/2017/09/03/Flow-Support-in-Recompose"}},l={authorsImageUrls:[void 0]},m=[],c={toc:m};function p(e){let{components:t,...r}=e;return(0,s.mdx)("wrapper",(0,o.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Over the last year, the Flow team has been slowly auditing and improving all the\npossible error messages generated by the type checker. In Flow 0.66 we\u2019re\nexcited to announce a new error message format designed to decrease the time it\ntakes you to read and fix each bug Flow finds."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9537.02320fdb.js b/assets/js/9537.02320fdb.js new file mode 100644 index 00000000000..4f96ad69ba5 --- /dev/null +++ b/assets/js/9537.02320fdb.js @@ -0,0 +1,2 @@ +/*! For license information please see 9537.02320fdb.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9537],{79537:(e,n,o)=>{o.r(n),o.d(n,{conf:()=>t,language:()=>s});var t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},s={defaultToken:"",tokenPostfix:".objective-c",keywords:["#import","#include","#define","#else","#endif","#if","#ifdef","#ifndef","#ident","#undef","@class","@defs","@dynamic","@encode","@end","@implementation","@interface","@package","@private","@protected","@property","@protocol","@public","@selector","@synthesize","__declspec","assign","auto","BOOL","break","bycopy","byref","case","char","Class","const","copy","continue","default","do","double","else","enum","extern","FALSE","false","float","for","goto","if","in","int","id","inout","IMP","long","nil","nonatomic","NULL","oneway","out","private","public","protected","readwrite","readonly","register","return","SEL","self","short","signed","sizeof","static","struct","super","switch","typedef","TRUE","true","union","unsigned","volatile","void","while"],decpart:/\d(_?\d)*/,decimal:/0|@decpart/,tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/[,:;]/,"delimiter"],[/[{}\[\]()<>]/,"@brackets"],[/[a-zA-Z@#]\w*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[<>=\\+\\-\\*\\/\\^\\|\\~,]|and\\b|or\\b|not\\b]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],numbers:[[/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/,"number.hex"],[/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)[fF]*/,{cases:{"(\\d)*":"number",$0:"number.float"}}]],strings:[[/'$/,"string.escape","@popall"],[/'/,"string.escape","@stringBody"],[/"$/,"string.escape","@popall"],[/"/,"string.escape","@dblStringBody"]],stringBody:[[/[^\\']+$/,"string","@popall"],[/[^\\']+/,"string"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],dblStringBody:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]]}}}}]); \ No newline at end of file diff --git a/assets/js/9537.02320fdb.js.LICENSE.txt b/assets/js/9537.02320fdb.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9537.02320fdb.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9537.18e73c82.js b/assets/js/9537.18e73c82.js new file mode 100644 index 00000000000..2963bce9fae --- /dev/null +++ b/assets/js/9537.18e73c82.js @@ -0,0 +1,207 @@ +"use strict"; +exports.id = 9537; +exports.ids = [9537]; +exports.modules = { + +/***/ 79537: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/objective-c/objective-c.ts +var conf = { + comments: { + lineComment: "//", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".objective-c", + keywords: [ + "#import", + "#include", + "#define", + "#else", + "#endif", + "#if", + "#ifdef", + "#ifndef", + "#ident", + "#undef", + "@class", + "@defs", + "@dynamic", + "@encode", + "@end", + "@implementation", + "@interface", + "@package", + "@private", + "@protected", + "@property", + "@protocol", + "@public", + "@selector", + "@synthesize", + "__declspec", + "assign", + "auto", + "BOOL", + "break", + "bycopy", + "byref", + "case", + "char", + "Class", + "const", + "copy", + "continue", + "default", + "do", + "double", + "else", + "enum", + "extern", + "FALSE", + "false", + "float", + "for", + "goto", + "if", + "in", + "int", + "id", + "inout", + "IMP", + "long", + "nil", + "nonatomic", + "NULL", + "oneway", + "out", + "private", + "public", + "protected", + "readwrite", + "readonly", + "register", + "return", + "SEL", + "self", + "short", + "signed", + "sizeof", + "static", + "struct", + "super", + "switch", + "typedef", + "TRUE", + "true", + "union", + "unsigned", + "volatile", + "void", + "while" + ], + decpart: /\d(_?\d)*/, + decimal: /0|@decpart/, + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@numbers" }, + { include: "@strings" }, + [/[,:;]/, "delimiter"], + [/[{}\[\]()<>]/, "@brackets"], + [ + /[a-zA-Z@#]\w*/, + { + cases: { + "@keywords": "keyword", + "@default": "identifier" + } + } + ], + [/[<>=\\+\\-\\*\\/\\^\\|\\~,]|and\\b|or\\b|not\\b]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + ["\\/\\*", "comment", "@comment"], + ["\\/\\/+.*", "comment"] + ], + comment: [ + ["\\*\\/", "comment", "@pop"], + [".", "comment"] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*(_?[0-9a-fA-F])*/, "number.hex"], + [ + /@decimal((\.@decpart)?([eE][\-+]?@decpart)?)[fF]*/, + { + cases: { + "(\\d)*": "number", + $0: "number.float" + } + } + ] + ], + strings: [ + [/'$/, "string.escape", "@popall"], + [/'/, "string.escape", "@stringBody"], + [/"$/, "string.escape", "@popall"], + [/"/, "string.escape", "@dblStringBody"] + ], + stringBody: [ + [/[^\\']+$/, "string", "@popall"], + [/[^\\']+/, "string"], + [/\\./, "string"], + [/'/, "string.escape", "@popall"], + [/\\$/, "string"] + ], + dblStringBody: [ + [/[^\\"]+$/, "string", "@popall"], + [/[^\\"]+/, "string"], + [/\\./, "string"], + [/"/, "string.escape", "@popall"], + [/\\$/, "string"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9541.4560e197.js b/assets/js/9541.4560e197.js new file mode 100644 index 00000000000..aabc026076e --- /dev/null +++ b/assets/js/9541.4560e197.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9541],{99541:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var o=n(87462),i=(n(67294),n(3905));const a={title:"Clarity on Flow's Direction and Open Source Engagement","short-title":"Flow Direction Update",author:"Vladan Djeric","medium-link":"https://medium.com/flow-type/clarity-on-flows-direction-and-open-source-engagement-e721a4eb4d8b"},r=void 0,l={permalink:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement",source:"@site/blog/2021-05-25-Clarity-on-Flows-Direction-and-Open-Source-Engagement.md",title:"Clarity on Flow's Direction and Open Source Engagement",description:"An update on Flow's direction and open source engagement.",date:"2021-05-25T00:00:00.000Z",formattedDate:"May 25, 2021",tags:[],hasTruncateMarker:!1,authors:[{name:"Vladan Djeric"}],frontMatter:{title:"Clarity on Flow's Direction and Open Source Engagement","short-title":"Flow Direction Update",author:"Vladan Djeric","medium-link":"https://medium.com/flow-type/clarity-on-flows-direction-and-open-source-engagement-e721a4eb4d8b"},prevItem:{title:"Sound Typing for 'this' in Flow",permalink:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow"},nextItem:{title:"Types-First the only supported mode in Flow (Jan 2021)",permalink:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow"}},s={authorsImageUrls:[void 0]},d=[],c={toc:d};function p(e){let{components:t,...n}=e;return(0,i.mdx)("wrapper",(0,o.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"An update on Flow's direction and open source engagement."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/957.de39d01c.js b/assets/js/957.de39d01c.js new file mode 100644 index 00000000000..158df863dec --- /dev/null +++ b/assets/js/957.de39d01c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[957],{80957:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var a=t(87462),r=(t(67294),t(3905));const o={title:"Typing Generators with Flow","short-title":"Generators",author:"Sam Goldman",hide_table_of_contents:!0},i=void 0,l={permalink:"/blog/2015/11/09/Generators",source:"@site/blog/2015-11-09-Generators.md",title:"Typing Generators with Flow",description:"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.",date:"2015-11-09T00:00:00.000Z",formattedDate:"November 9, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Sam Goldman"}],frontMatter:{title:"Typing Generators with Flow","short-title":"Generators",author:"Sam Goldman",hide_table_of_contents:!0},prevItem:{title:"Version-0.19.0",permalink:"/blog/2015/12/01/Version-0.19.0"},nextItem:{title:"Version-0.17.0",permalink:"/blog/2015/10/07/Version-0.17.0"}},s={authorsImageUrls:[void 0]},d=[],p={toc:d};function m(e){let{components:n,...t}=e;return(0,r.mdx)("wrapper",(0,a.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an ",(0,r.mdx)("a",{parentName:"p",href:"https://github.com/tc39/ecmascript-asyncawait"},"upcoming feature")," already supported by Flow."),(0,r.mdx)("p",null,"So much wonderful material has already been produced describing generators. I am going to focus on the interaction of static typing with generators. Please refer to the following materials for information about generators:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},"Jafar Husain gave an ",(0,r.mdx)("a",{parentName:"li",href:"https://www.youtube.com/watch?v=DqMFX91ToLw#t=970"},"incredibly lucid and well-illustrated talk")," that covers generators. I have linked to the point where he gets into generators, but I highly recommend the entire talk."),(0,r.mdx)("li",{parentName:"ul"},"Exploring ES6, a comprehensive book by Axel Rauschmayer, who has generously made the contents available for free online, has a ",(0,r.mdx)("a",{parentName:"li",href:"http://exploringjs.com/es6/ch_generators.html"},"chapter on generators"),"."),(0,r.mdx)("li",{parentName:"ul"},"The venerable MDN has a ",(0,r.mdx)("a",{parentName:"li",href:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators"},"useful page")," describing the ",(0,r.mdx)("inlineCode",{parentName:"li"},"Iterator")," interface and generators.")),(0,r.mdx)("p",null,"In Flow, the ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator")," interface has three type parameters: ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield"),", ",(0,r.mdx)("inlineCode",{parentName:"p"},"Return"),", and ",(0,r.mdx)("inlineCode",{parentName:"p"},"Next"),". ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield")," is the type of values which are yielded from the generator function. ",(0,r.mdx)("inlineCode",{parentName:"p"},"Return")," is the type of the value which is returned from the generator function. ",(0,r.mdx)("inlineCode",{parentName:"p"},"Next")," is the type of values which are passed into the generator via the ",(0,r.mdx)("inlineCode",{parentName:"p"},"next")," method on the ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator")," itself. For example, a generator value of type ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator<string,number,boolean>")," will yield ",(0,r.mdx)("inlineCode",{parentName:"p"},"string"),"s, return a ",(0,r.mdx)("inlineCode",{parentName:"p"},"number"),", and will receive ",(0,r.mdx)("inlineCode",{parentName:"p"},"boolean"),"s from its caller."),(0,r.mdx)("p",null,"For any type ",(0,r.mdx)("inlineCode",{parentName:"p"},"T"),", a ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator<T,void,void>")," is both an ",(0,r.mdx)("inlineCode",{parentName:"p"},"Iterable<T>")," and an ",(0,r.mdx)("inlineCode",{parentName:"p"},"Iterator<T>"),"."),(0,r.mdx)("p",null,"The unique nature of generators allows us to represent infinite sequences naturally. Consider the infinite sequence of natural numbers:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"function *nats() {\n let i = 0;\n while (true) {\n yield i++;\n }\n}\n")),(0,r.mdx)("p",null,"Because generators are also iterators, we can manually iterate the generator:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"const gen = nats();\nconsole.log(gen.next()); // { done: false, value: 0 }\nconsole.log(gen.next()); // { done: false, value: 1 }\nconsole.log(gen.next()); // { done: false, value: 2 }\n")),(0,r.mdx)("p",null,"When ",(0,r.mdx)("inlineCode",{parentName:"p"},"done")," is false, ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," will have the generator's ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield")," type. When ",(0,r.mdx)("inlineCode",{parentName:"p"},"done")," is true, ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," will have the generator's ",(0,r.mdx)("inlineCode",{parentName:"p"},"Return")," type or ",(0,r.mdx)("inlineCode",{parentName:"p"},"void")," if the consumer iterates past the completion value."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'function *test() {\n yield 1;\n return "complete";\n}\nconst gen = test();\nconsole.log(gen.next()); // { done: false, value: 1 }\nconsole.log(gen.next()); // { done: true, value: "complete" }\nconsole.log(gen.next()); // { done: true, value: undefined }\n')),(0,r.mdx)("p",null,"Because of this behavior, manually iterating poses typing difficulties. Let's try to take the first 10 values from the ",(0,r.mdx)("inlineCode",{parentName:"p"},"nats")," generator through manual iteration:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"const gen = nats();\nconst take10: number[] = [];\nfor (let i = 0; i < 10; i++) {\n const { done, value } = gen.next();\n if (done) {\n break;\n } else {\n take10.push(value); // error!\n }\n}\n")),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"test.js:13\n 13: const { done, value } = gen.next();\n ^^^^^^^^^^ call of method `next`\n 17: take10.push(value); // error!\n ^^^^^ undefined. This type is incompatible with\n 11: const take10: number[] = [];\n ^^^^^^ number\n")),(0,r.mdx)("p",null,"Flow is complaining that ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," might be ",(0,r.mdx)("inlineCode",{parentName:"p"},"undefined"),". This is because the type of ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," is ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield | Return | void"),", which simplifies in the instance of ",(0,r.mdx)("inlineCode",{parentName:"p"},"nats")," to ",(0,r.mdx)("inlineCode",{parentName:"p"},"number | void"),". We can introduce a dynamic type test to convince Flow of the invariant that ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," will always be ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," when ",(0,r.mdx)("inlineCode",{parentName:"p"},"done")," is false."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'const gen = nats();\nconst take10: number[] = [];\nfor (let i = 0; i < 10; i++) {\n const { done, value } = gen.next();\n if (done) {\n break;\n } else {\n if (typeof value === "undefined") {\n throw new Error("`value` must be a number.");\n }\n take10.push(value); // no error\n }\n}\n')),(0,r.mdx)("p",null,"There is an ",(0,r.mdx)("a",{parentName:"p",href:"https://github.com/facebook/flow/issues/577"},"open issue")," which would make the dynamic type test above unnecessary, by using the ",(0,r.mdx)("inlineCode",{parentName:"p"},"done")," value as a sentinel to refine a tagged union. That is, when ",(0,r.mdx)("inlineCode",{parentName:"p"},"done")," is ",(0,r.mdx)("inlineCode",{parentName:"p"},"true"),", Flow would know that ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," is always of type ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield")," and otherwise of type ",(0,r.mdx)("inlineCode",{parentName:"p"},"Return | void"),"."),(0,r.mdx)("p",null,"Even without the dynamic type test, this code is quite verbose and it's hard to see the intent. Because generators are also iterable, we can also use ",(0,r.mdx)("inlineCode",{parentName:"p"},"for...of")," loops:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"const take10: number[] = [];\nlet i = 0;\nfor (let nat of nats()) {\n if (i === 10) break;\n take10.push(nat);\n i++;\n}\n")),(0,r.mdx)("p",null,"That's much better. The ",(0,r.mdx)("inlineCode",{parentName:"p"},"for...of")," looping construct ignores completion values, so Flow understands that ",(0,r.mdx)("inlineCode",{parentName:"p"},"nat")," will always be ",(0,r.mdx)("inlineCode",{parentName:"p"},"number"),". Let's generalize this pattern further using generator functions:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"function *take<T>(n: number, xs: Iterable<T>): Iterable<T> {\n if (n <= 0) return;\n let i = 0;\n for (let x of xs) {\n yield x;\n if (++i === n) return;\n }\n}\n\nfor (let n of take(10, nats())) {\n console.log(n); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\n}\n")),(0,r.mdx)("p",null,"Note that we explicitly annotated the parameters and return type of the ",(0,r.mdx)("inlineCode",{parentName:"p"},"take")," generator. This is necessary to ensure Flow understands the fully generic type. This is because Flow does not currently infer a fully generic type, but instead accumulates lower bounds, resulting in a union type."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'function identity(x) { return x }\nvar a: string = identity(""); // error\nvar b: number = identity(0); // error\n')),(0,r.mdx)("p",null,"The above code produces errors because Flow adds ",(0,r.mdx)("inlineCode",{parentName:"p"},"string")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," as lower bounds to the type variable describing the type of the value bound by ",(0,r.mdx)("inlineCode",{parentName:"p"},"x"),". That is, Flow believes the type of ",(0,r.mdx)("inlineCode",{parentName:"p"},"identity")," is ",(0,r.mdx)("inlineCode",{parentName:"p"},"(x: string | number) => string | number")," because those are the types which actually passed through the function."),(0,r.mdx)("p",null,"Another important feature of generators is the ability to pass values into the generator from the consumer. Let's consider a generator ",(0,r.mdx)("inlineCode",{parentName:"p"},"scan"),", which reduces values passed into the generator using a provided function. Our ",(0,r.mdx)("inlineCode",{parentName:"p"},"scan")," is similar to ",(0,r.mdx)("inlineCode",{parentName:"p"},"Array.prototype.reduce"),", but it returns each intermediate value and the values are provided imperatively via ",(0,r.mdx)("inlineCode",{parentName:"p"},"next"),"."),(0,r.mdx)("p",null,"As a first pass, we might write this:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {\n let acc = init;\n while (true) {\n const next = yield acc;\n acc = f(acc, next);\n }\n}\n")),(0,r.mdx)("p",null,"We can use this definition to implement an imperative sum procedure:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"let sum = scan(0, (a,b) => a + b);\nconsole.log(sum.next()); // { done: false, value: 0 }\nconsole.log(sum.next(1)); // { done: false, value: 1 }\nconsole.log(sum.next(2)); // { done: false, value: 3 }\nconsole.log(sum.next(3)); // { done: false, value: 6 }\n")),(0,r.mdx)("p",null,"However, when we try to check the above definition of ",(0,r.mdx)("inlineCode",{parentName:"p"},"scan"),", Flow complains:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},"test.js:7\n 7: acc = f(acc, next);\n ^^^^^^^^^^^^ function call\n 7: acc = f(acc, next);\n ^^^^ undefined. This type is incompatible with\n 3: function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {\n ^ some incompatible instantiation of T\n")),(0,r.mdx)("p",null,"Flow is complaining that our value, ",(0,r.mdx)("inlineCode",{parentName:"p"},"next"),", may be ",(0,r.mdx)("inlineCode",{parentName:"p"},"void")," instead of the expected ",(0,r.mdx)("inlineCode",{parentName:"p"},"T"),", which is ",(0,r.mdx)("inlineCode",{parentName:"p"},"number")," in the ",(0,r.mdx)("inlineCode",{parentName:"p"},"sum")," example. This behavior is necessary to ensure type safety. In order to prime the generator, our consumer must first call ",(0,r.mdx)("inlineCode",{parentName:"p"},"next")," without an argument. To accommodate this, Flow understands the argument to ",(0,r.mdx)("inlineCode",{parentName:"p"},"next")," to be optional. This means Flow will allow the following code:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},"let sum = scan(0, (a,b) => a + b);\nconsole.log(sum.next()); // first call primes the generator\nconsole.log(sum.next()); // we should pass a value, but don't need to\n")),(0,r.mdx)("p",null,'In general, Flow doesn\'t know which invocation is "first." While it should be an error to pass a value to the first ',(0,r.mdx)("inlineCode",{parentName:"p"},"next"),", and an error to ",(0,r.mdx)("em",{parentName:"p"},"not")," pass a value to subsequent ",(0,r.mdx)("inlineCode",{parentName:"p"},"next"),"s, Flow compromises and forces your generator to deal with a potentially ",(0,r.mdx)("inlineCode",{parentName:"p"},"void")," value. In short, given a generator of type ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator<Y,R,N>")," and a value ",(0,r.mdx)("inlineCode",{parentName:"p"},"x")," of type ",(0,r.mdx)("inlineCode",{parentName:"p"},"Y"),", the type of the expression ",(0,r.mdx)("inlineCode",{parentName:"p"},"yield x")," is ",(0,r.mdx)("inlineCode",{parentName:"p"},"N | void"),"."),(0,r.mdx)("p",null,"We can update our definition to use a dynamic type test that enforces the non-",(0,r.mdx)("inlineCode",{parentName:"p"},"void")," invariant at runtime:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {\n let acc = init;\n while (true) {\n const next = yield acc;\n if (typeof next === "undefined") {\n throw new Error("Caller must provide an argument to `next`.");\n }\n acc = f(acc, next);\n }\n}\n')),(0,r.mdx)("p",null,"There is one more important caveat when dealing with typed generators. Every value yielded from the generator must be described by a single type. Similarly, every value passed to the generator via ",(0,r.mdx)("inlineCode",{parentName:"p"},"next")," must be described by a single type."),(0,r.mdx)("p",null,"Consider the following generator:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'function *foo() {\n yield 0;\n yield "";\n}\n\nconst gen = foo();\nconst a: number = gen.next().value; // error\nconst b: string = gen.next().value; // error\n')),(0,r.mdx)("p",null,"This is perfectly legal JavaScript and the values ",(0,r.mdx)("inlineCode",{parentName:"p"},"a")," and ",(0,r.mdx)("inlineCode",{parentName:"p"},"b")," do have the correct types at runtime. However, Flow rejects this program. Our generator's ",(0,r.mdx)("inlineCode",{parentName:"p"},"Yield")," type parameter has a concrete type of ",(0,r.mdx)("inlineCode",{parentName:"p"},"number | string"),". The ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," property of the iterator result object has the type ",(0,r.mdx)("inlineCode",{parentName:"p"},"number | string | void"),"."),(0,r.mdx)("p",null,"We can observe similar behavior for values passed into the generator:"),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre"},'function *bar() {\n var a = yield;\n var b = yield;\n return {a,b};\n}\n\nconst gen = bar();\ngen.next(); // prime the generator\ngen.next(0);\nconst ret: { a: number, b: string } = gen.next("").value; // error\n')),(0,r.mdx)("p",null,"The value ",(0,r.mdx)("inlineCode",{parentName:"p"},"ret")," has the annotated type at runtime, but Flow also rejects this program. Our generator's ",(0,r.mdx)("inlineCode",{parentName:"p"},"Next")," type parameter has a concrete type of ",(0,r.mdx)("inlineCode",{parentName:"p"},"number | string"),". The ",(0,r.mdx)("inlineCode",{parentName:"p"},"value")," property of the iterator result object thus has the type ",(0,r.mdx)("inlineCode",{parentName:"p"},"void | { a: void | number | string, b: void | number | string }"),"."),(0,r.mdx)("p",null,"While it may be possible to use dynamic type tests to resolve these issues, another practical option is to use ",(0,r.mdx)("inlineCode",{parentName:"p"},"any")," to take on the type safety responsibility yourself."),(0,r.mdx)("pre",null,(0,r.mdx)("code",{parentName:"pre",className:"language-javascript"},'function *bar(): Generator {\n var a = yield;\n var b = yield;\n return {a,b};\n}\n\nconst gen = bar();\ngen.next(); // prime the generator\ngen.next(0);\nconst ret: void | { a: number, b: string } = gen.next("").value; // OK\n')),(0,r.mdx)("p",null,"(Note that the annotation ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator")," is equivalent to ",(0,r.mdx)("inlineCode",{parentName:"p"},"Generator<any,any,any>"),".)"),(0,r.mdx)("p",null,"Phew! I hope that this will help you use generators in your own code. I also hope this gave you a little insight into the difficulties of applying static analysis to a highly dynamic language such as JavaScript."),(0,r.mdx)("p",null,"To summarize, here are some of the lessons we've learned for using generators in statically typed JS:"),(0,r.mdx)("ul",null,(0,r.mdx)("li",{parentName:"ul"},"Use generators to implement custom iterables."),(0,r.mdx)("li",{parentName:"ul"},"Use dynamic type tests to unpack the optional return type of yield expressions."),(0,r.mdx)("li",{parentName:"ul"},"Avoid generators that yield or receive values of multiple types, or use ",(0,r.mdx)("inlineCode",{parentName:"li"},"any"),".")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9607.622810b9.js b/assets/js/9607.622810b9.js new file mode 100644 index 00000000000..4e4f4130e8d --- /dev/null +++ b/assets/js/9607.622810b9.js @@ -0,0 +1,2 @@ +/*! For license information please see 9607.622810b9.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9607],{52798:(e,n,s)=>{s.r(n),s.d(n,{conf:()=>t,language:()=>i});var t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},i={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}}}}]); \ No newline at end of file diff --git a/assets/js/9607.622810b9.js.LICENSE.txt b/assets/js/9607.622810b9.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9607.622810b9.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9647.b1861c7a.js b/assets/js/9647.b1861c7a.js new file mode 100644 index 00000000000..0232b8d93c2 --- /dev/null +++ b/assets/js/9647.b1861c7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9647],{29647:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>i,contentTitle:()=>n,default:()=>g,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var a=t(87462),r=(t(67294),t(3905));const s={title:"Upgrading Flow Codebases","short-title":"Upgrading Flow Codebases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/upgrading-flow-codebases-40ef8dd3ccd8"},n=void 0,d={permalink:"/blog/2019/4/9/Upgrading-Flow-Codebases",source:"@site/blog/2019-4-9-Upgrading-Flow-Codebases.md",title:"Upgrading Flow Codebases",description:"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!",date:"2019-04-09T00:00:00.000Z",formattedDate:"April 9, 2019",tags:[],hasTruncateMarker:!1,authors:[{name:"Jordan Brown"}],frontMatter:{title:"Upgrading Flow Codebases","short-title":"Upgrading Flow Codebases",author:"Jordan Brown","medium-link":"https://medium.com/flow-type/upgrading-flow-codebases-40ef8dd3ccd8"},prevItem:{title:"Coming Soon: Changes to Object Spreads",permalink:"/blog/2019/08/20/Changes-to-Object-Spreads"},nextItem:{title:"A More Responsive Flow",permalink:"/blog/2019/2/8/A-More-Responsive-Flow"}},i={authorsImageUrls:[void 0]},l=[],p={toc:l};function g(e){let{components:o,...t}=e;return(0,r.mdx)("wrapper",(0,a.Z)({},p,t,{components:o,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!"))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9684.19d777f5.js b/assets/js/9684.19d777f5.js new file mode 100644 index 00000000000..f60a8a0ab91 --- /dev/null +++ b/assets/js/9684.19d777f5.js @@ -0,0 +1,2 @@ +/*! For license information please see 9684.19d777f5.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9684],{69684:(e,t,n)=>{n.r(t),n.d(t,{conf:()=>r,language:()=>s});var r={comments:{lineComment:"#",blockComment:["=begin","=end"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],indentationRules:{increaseIndentPattern:new RegExp("^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|(\"|'|/).*\\4)*(#.*)?$"),decreaseIndentPattern:new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)")}},s={tokenPostfix:".ruby",keywords:["__LINE__","__ENCODING__","__FILE__","BEGIN","END","alias","and","begin","break","case","class","def","defined?","do","else","elsif","end","ensure","for","false","if","in","module","next","nil","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield"],keywordops:["::","..","...","?",":","=>"],builtins:["require","public","private","include","extend","attr_reader","protected","private_class_method","protected_class_method","new"],declarations:["module","class","def","case","do","begin","for","if","while","until","unless"],linedecls:["def","case","do","begin","for","if","while","until","unless"],operators:["^","&","|","<=>","==","===","!~","=~",">",">=","<","<=","<<",">>","+","-","*","/","%","**","~","+@","-@","[]","[]=","`","+=","-=","*=","**=","/=","^=","%=","<<=",">>=","&=","&&=","||=","|="],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],symbols:/[=><!~?:&|+\-*\/\^%\.]+/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,decpart:/\d(_?\d)*/,decimal:/0|@decpart/,delim:/[^a-zA-Z0-9\s\n\r]/,heredelim:/(?:\w+|'[^']*'|"[^"]*"|`[^`]*`)/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[AzZbBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/,tokenizer:{root:[[/^(\s*)([a-z_]\w*[!?=]?)/,["white",{cases:{"for|until|while":{token:"keyword.$2",next:"@dodecl.$2"},"@declarations":{token:"keyword.$2",next:"@root.$2"},end:{token:"keyword.$S2",next:"@pop"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}]],[/[a-z_]\w*[!?=]?/,{cases:{"if|unless|while|until":{token:"keyword.$0x",next:"@modifier.$0x"},for:{token:"keyword.$2",next:"@dodecl.$2"},"@linedecls":{token:"keyword.$0",next:"@root.$0"},end:{token:"keyword.$S2",next:"@pop"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],[/[A-Z][\w]*[!?=]?/,"constructor.identifier"],[/\$[\w]*/,"global.constant"],[/@[\w]*/,"namespace.instance.identifier"],[/@@@[\w]*/,"namespace.class.identifier"],[/<<[-~](@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],[/[ \t\r\n]+<<(@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],[/^<<(@heredelim).*/,{token:"string.heredoc.delimiter",next:"@heredoc.$1"}],{include:"@whitespace"},[/"/,{token:"string.d.delim",next:'@dstring.d."'}],[/'/,{token:"string.sq.delim",next:"@sstring.sq"}],[/%([rsqxwW]|Q?)/,{token:"@rematch",next:"pstring"}],[/`/,{token:"string.x.delim",next:"@dstring.x.`"}],[/:(\w|[$@])\w*[!?=]?/,"string.s"],[/:"/,{token:"string.s.delim",next:'@dstring.s."'}],[/:'/,{token:"string.s.delim",next:"@sstring.s"}],[/\/(?=(\\\/|[^\/\n])+\/)/,{token:"regexp.delim",next:"@regexp"}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@keywordops":"keyword","@operators":"operator","@default":""}}],[/[;,]/,"delimiter"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,"number.hex"],[/0[_oO][0-7](_?[0-7])*/,"number.octal"],[/0[bB][01](_?[01])*/,"number.binary"],[/0[dD]@decpart/,"number"],[/@decimal((\.@decpart)?([eE][\-+]?@decpart)?)/,{cases:{$1:"number.float","@default":"number"}}]],dodecl:[[/^/,{token:"",switchTo:"@root.$S2"}],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:"keyword.$S2",next:"@pop"},do:{token:"keyword",switchTo:"@root.$S2"},"@linedecls":{token:"@rematch",switchTo:"@root.$S2"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],{include:"@root"}],modifier:[[/^/,"","@pop"],[/[a-z_]\w*[!?=]?/,{cases:{end:{token:"keyword.$S2",next:"@pop"},"then|else|elsif|do":{token:"keyword",switchTo:"@root.$S2"},"@linedecls":{token:"@rematch",switchTo:"@root.$S2"},"@keywords":"keyword","@builtins":"predefined","@default":"identifier"}}],{include:"@root"}],sstring:[[/[^\\']+/,"string.$S2"],[/\\\\|\\'|\\$/,"string.$S2.escape"],[/\\./,"string.$S2.invalid"],[/'/,{token:"string.$S2.delim",next:"@pop"}]],dstring:[[/[^\\`"#]+/,"string.$S2"],[/#/,"string.$S2.escape","@interpolated"],[/\\$/,"string.$S2.escape"],[/@escapes/,"string.$S2.escape"],[/\\./,"string.$S2.escape.invalid"],[/[`"]/,{cases:{"$#==$S3":{token:"string.$S2.delim",next:"@pop"},"@default":"string.$S2"}}]],heredoc:[[/^(\s*)(@heredelim)$/,{cases:{"$2==$S2":["string.heredoc",{token:"string.heredoc.delimiter",next:"@pop"}],"@default":["string.heredoc","string.heredoc"]}}],[/.*/,"string.heredoc"]],interpolated:[[/\$\w*/,"global.constant","@pop"],[/@\w*/,"namespace.class.identifier","@pop"],[/@@@\w*/,"namespace.instance.identifier","@pop"],[/[{]/,{token:"string.escape.curly",switchTo:"@interpolated_compound"}],["","","@pop"]],interpolated_compound:[[/[}]/,{token:"string.escape.curly",next:"@pop"}],{include:"@root"}],pregexp:[{include:"@whitespace"},[/[^\(\{\[\\]/,{cases:{"$#==$S3":{token:"regexp.delim",next:"@pop"},"$#==$S2":{token:"regexp.delim",next:"@push"},"~[)}\\]]":"@brackets.regexp.escape.control","~@regexpctl":"regexp.escape.control","@default":"regexp"}}],{include:"@regexcontrol"}],regexp:[{include:"@regexcontrol"},[/[^\\\/]/,"regexp"],["/[ixmp]*",{token:"regexp.delim"},"@pop"]],regexcontrol:[[/(\{)(\d+(?:,\d*)?)(\})/,["@brackets.regexp.escape.control","regexp.escape.control","@brackets.regexp.escape.control"]],[/(\[)(\^?)/,["@brackets.regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?[:=!])/,["@brackets.regexp.escape.control","regexp.escape.control"]],[/\(\?#/,{token:"regexp.escape.control",next:"@regexpcomment"}],[/[()]/,"@brackets.regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/\\$/,"regexp.escape"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/#/,"regexp.escape","@interpolated"]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/\\$/,"regexp.escape"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,"@brackets.regexp.escape.control","@pop"]],regexpcomment:[[/[^)]+/,"comment"],[/\)/,{token:"regexp.escape.control",next:"@pop"}]],pstring:[[/%([qws])\(/,{token:"string.$1.delim",switchTo:"@qstring.$1.(.)"}],[/%([qws])\[/,{token:"string.$1.delim",switchTo:"@qstring.$1.[.]"}],[/%([qws])\{/,{token:"string.$1.delim",switchTo:"@qstring.$1.{.}"}],[/%([qws])</,{token:"string.$1.delim",switchTo:"@qstring.$1.<.>"}],[/%([qws])(@delim)/,{token:"string.$1.delim",switchTo:"@qstring.$1.$2.$2"}],[/%r\(/,{token:"regexp.delim",switchTo:"@pregexp.(.)"}],[/%r\[/,{token:"regexp.delim",switchTo:"@pregexp.[.]"}],[/%r\{/,{token:"regexp.delim",switchTo:"@pregexp.{.}"}],[/%r</,{token:"regexp.delim",switchTo:"@pregexp.<.>"}],[/%r(@delim)/,{token:"regexp.delim",switchTo:"@pregexp.$1.$1"}],[/%(x|W|Q?)\(/,{token:"string.$1.delim",switchTo:"@qqstring.$1.(.)"}],[/%(x|W|Q?)\[/,{token:"string.$1.delim",switchTo:"@qqstring.$1.[.]"}],[/%(x|W|Q?)\{/,{token:"string.$1.delim",switchTo:"@qqstring.$1.{.}"}],[/%(x|W|Q?)</,{token:"string.$1.delim",switchTo:"@qqstring.$1.<.>"}],[/%(x|W|Q?)(@delim)/,{token:"string.$1.delim",switchTo:"@qqstring.$1.$2.$2"}],[/%([rqwsxW]|Q?)./,{token:"invalid",next:"@pop"}],[/./,{token:"invalid",next:"@pop"}]],qstring:[[/\\$/,"string.$S2.escape"],[/\\./,"string.$S2.escape"],[/./,{cases:{"$#==$S4":{token:"string.$S2.delim",next:"@pop"},"$#==$S3":{token:"string.$S2.delim",next:"@push"},"@default":"string.$S2"}}]],qqstring:[[/#/,"string.$S2.escape","@interpolated"],{include:"@qstring"}],whitespace:[[/[ \t\r\n]+/,""],[/^\s*=begin\b/,"comment","@comment"],[/#.*$/,"comment"]],comment:[[/[^=]+/,"comment"],[/^\s*=begin\b/,"comment.invalid"],[/^\s*=end\b.*/,"comment","@pop"],[/[=]/,"comment"]]}}}}]); \ No newline at end of file diff --git a/assets/js/9684.19d777f5.js.LICENSE.txt b/assets/js/9684.19d777f5.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9684.19d777f5.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/9684.2bbdb36e.js b/assets/js/9684.2bbdb36e.js new file mode 100644 index 00000000000..114a6456d37 --- /dev/null +++ b/assets/js/9684.2bbdb36e.js @@ -0,0 +1,463 @@ +"use strict"; +exports.id = 9684; +exports.ids = [9684]; +exports.modules = { + +/***/ 69684: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/ruby/ruby.ts +var conf = { + comments: { + lineComment: "#", + blockComment: ["=begin", "=end"] + }, + brackets: [ + ["(", ")"], + ["{", "}"], + ["[", "]"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + indentationRules: { + increaseIndentPattern: new RegExp(`^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|("|'|/).*\\4)*(#.*)?$`), + decreaseIndentPattern: new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)") + } +}; +var language = { + tokenPostfix: ".ruby", + keywords: [ + "__LINE__", + "__ENCODING__", + "__FILE__", + "BEGIN", + "END", + "alias", + "and", + "begin", + "break", + "case", + "class", + "def", + "defined?", + "do", + "else", + "elsif", + "end", + "ensure", + "for", + "false", + "if", + "in", + "module", + "next", + "nil", + "not", + "or", + "redo", + "rescue", + "retry", + "return", + "self", + "super", + "then", + "true", + "undef", + "unless", + "until", + "when", + "while", + "yield" + ], + keywordops: ["::", "..", "...", "?", ":", "=>"], + builtins: [ + "require", + "public", + "private", + "include", + "extend", + "attr_reader", + "protected", + "private_class_method", + "protected_class_method", + "new" + ], + declarations: [ + "module", + "class", + "def", + "case", + "do", + "begin", + "for", + "if", + "while", + "until", + "unless" + ], + linedecls: ["def", "case", "do", "begin", "for", "if", "while", "until", "unless"], + operators: [ + "^", + "&", + "|", + "<=>", + "==", + "===", + "!~", + "=~", + ">", + ">=", + "<", + "<=", + "<<", + ">>", + "+", + "-", + "*", + "/", + "%", + "**", + "~", + "+@", + "-@", + "[]", + "[]=", + "`", + "+=", + "-=", + "*=", + "**=", + "/=", + "^=", + "%=", + "<<=", + ">>=", + "&=", + "&&=", + "||=", + "|=" + ], + brackets: [ + { open: "(", close: ")", token: "delimiter.parenthesis" }, + { open: "{", close: "}", token: "delimiter.curly" }, + { open: "[", close: "]", token: "delimiter.square" } + ], + symbols: /[=><!~?:&|+\-*\/\^%\.]+/, + escape: /(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/, + escapes: /\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/, + decpart: /\d(_?\d)*/, + decimal: /0|@decpart/, + delim: /[^a-zA-Z0-9\s\n\r]/, + heredelim: /(?:\w+|'[^']*'|"[^"]*"|`[^`]*`)/, + regexpctl: /[(){}\[\]\$\^|\-*+?\.]/, + regexpesc: /\\(?:[AzZbBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})?/, + tokenizer: { + root: [ + [ + /^(\s*)([a-z_]\w*[!?=]?)/, + [ + "white", + { + cases: { + "for|until|while": { + token: "keyword.$2", + next: "@dodecl.$2" + }, + "@declarations": { + token: "keyword.$2", + next: "@root.$2" + }, + end: { token: "keyword.$S2", next: "@pop" }, + "@keywords": "keyword", + "@builtins": "predefined", + "@default": "identifier" + } + } + ] + ], + [ + /[a-z_]\w*[!?=]?/, + { + cases: { + "if|unless|while|until": { + token: "keyword.$0x", + next: "@modifier.$0x" + }, + for: { token: "keyword.$2", next: "@dodecl.$2" }, + "@linedecls": { token: "keyword.$0", next: "@root.$0" }, + end: { token: "keyword.$S2", next: "@pop" }, + "@keywords": "keyword", + "@builtins": "predefined", + "@default": "identifier" + } + } + ], + [/[A-Z][\w]*[!?=]?/, "constructor.identifier"], + [/\$[\w]*/, "global.constant"], + [/@[\w]*/, "namespace.instance.identifier"], + [/@@@[\w]*/, "namespace.class.identifier"], + [/<<[-~](@heredelim).*/, { token: "string.heredoc.delimiter", next: "@heredoc.$1" }], + [/[ \t\r\n]+<<(@heredelim).*/, { token: "string.heredoc.delimiter", next: "@heredoc.$1" }], + [/^<<(@heredelim).*/, { token: "string.heredoc.delimiter", next: "@heredoc.$1" }], + { include: "@whitespace" }, + [/"/, { token: "string.d.delim", next: '@dstring.d."' }], + [/'/, { token: "string.sq.delim", next: "@sstring.sq" }], + [/%([rsqxwW]|Q?)/, { token: "@rematch", next: "pstring" }], + [/`/, { token: "string.x.delim", next: "@dstring.x.`" }], + [/:(\w|[$@])\w*[!?=]?/, "string.s"], + [/:"/, { token: "string.s.delim", next: '@dstring.s."' }], + [/:'/, { token: "string.s.delim", next: "@sstring.s" }], + [/\/(?=(\\\/|[^\/\n])+\/)/, { token: "regexp.delim", next: "@regexp" }], + [/[{}()\[\]]/, "@brackets"], + [ + /@symbols/, + { + cases: { + "@keywordops": "keyword", + "@operators": "operator", + "@default": "" + } + } + ], + [/[;,]/, "delimiter"], + [/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/, "number.hex"], + [/0[_oO][0-7](_?[0-7])*/, "number.octal"], + [/0[bB][01](_?[01])*/, "number.binary"], + [/0[dD]@decpart/, "number"], + [ + /@decimal((\.@decpart)?([eE][\-+]?@decpart)?)/, + { + cases: { + $1: "number.float", + "@default": "number" + } + } + ] + ], + dodecl: [ + [/^/, { token: "", switchTo: "@root.$S2" }], + [ + /[a-z_]\w*[!?=]?/, + { + cases: { + end: { token: "keyword.$S2", next: "@pop" }, + do: { token: "keyword", switchTo: "@root.$S2" }, + "@linedecls": { + token: "@rematch", + switchTo: "@root.$S2" + }, + "@keywords": "keyword", + "@builtins": "predefined", + "@default": "identifier" + } + } + ], + { include: "@root" } + ], + modifier: [ + [/^/, "", "@pop"], + [ + /[a-z_]\w*[!?=]?/, + { + cases: { + end: { token: "keyword.$S2", next: "@pop" }, + "then|else|elsif|do": { + token: "keyword", + switchTo: "@root.$S2" + }, + "@linedecls": { + token: "@rematch", + switchTo: "@root.$S2" + }, + "@keywords": "keyword", + "@builtins": "predefined", + "@default": "identifier" + } + } + ], + { include: "@root" } + ], + sstring: [ + [/[^\\']+/, "string.$S2"], + [/\\\\|\\'|\\$/, "string.$S2.escape"], + [/\\./, "string.$S2.invalid"], + [/'/, { token: "string.$S2.delim", next: "@pop" }] + ], + dstring: [ + [/[^\\`"#]+/, "string.$S2"], + [/#/, "string.$S2.escape", "@interpolated"], + [/\\$/, "string.$S2.escape"], + [/@escapes/, "string.$S2.escape"], + [/\\./, "string.$S2.escape.invalid"], + [ + /[`"]/, + { + cases: { + "$#==$S3": { token: "string.$S2.delim", next: "@pop" }, + "@default": "string.$S2" + } + } + ] + ], + heredoc: [ + [ + /^(\s*)(@heredelim)$/, + { + cases: { + "$2==$S2": ["string.heredoc", { token: "string.heredoc.delimiter", next: "@pop" }], + "@default": ["string.heredoc", "string.heredoc"] + } + } + ], + [/.*/, "string.heredoc"] + ], + interpolated: [ + [/\$\w*/, "global.constant", "@pop"], + [/@\w*/, "namespace.class.identifier", "@pop"], + [/@@@\w*/, "namespace.instance.identifier", "@pop"], + [ + /[{]/, + { + token: "string.escape.curly", + switchTo: "@interpolated_compound" + } + ], + ["", "", "@pop"] + ], + interpolated_compound: [ + [/[}]/, { token: "string.escape.curly", next: "@pop" }], + { include: "@root" } + ], + pregexp: [ + { include: "@whitespace" }, + [ + /[^\(\{\[\\]/, + { + cases: { + "$#==$S3": { token: "regexp.delim", next: "@pop" }, + "$#==$S2": { token: "regexp.delim", next: "@push" }, + "~[)}\\]]": "@brackets.regexp.escape.control", + "~@regexpctl": "regexp.escape.control", + "@default": "regexp" + } + } + ], + { include: "@regexcontrol" } + ], + regexp: [ + { include: "@regexcontrol" }, + [/[^\\\/]/, "regexp"], + ["/[ixmp]*", { token: "regexp.delim" }, "@pop"] + ], + regexcontrol: [ + [ + /(\{)(\d+(?:,\d*)?)(\})/, + [ + "@brackets.regexp.escape.control", + "regexp.escape.control", + "@brackets.regexp.escape.control" + ] + ], + [ + /(\[)(\^?)/, + ["@brackets.regexp.escape.control", { token: "regexp.escape.control", next: "@regexrange" }] + ], + [/(\()(\?[:=!])/, ["@brackets.regexp.escape.control", "regexp.escape.control"]], + [/\(\?#/, { token: "regexp.escape.control", next: "@regexpcomment" }], + [/[()]/, "@brackets.regexp.escape.control"], + [/@regexpctl/, "regexp.escape.control"], + [/\\$/, "regexp.escape"], + [/@regexpesc/, "regexp.escape"], + [/\\\./, "regexp.invalid"], + [/#/, "regexp.escape", "@interpolated"] + ], + regexrange: [ + [/-/, "regexp.escape.control"], + [/\^/, "regexp.invalid"], + [/\\$/, "regexp.escape"], + [/@regexpesc/, "regexp.escape"], + [/[^\]]/, "regexp"], + [/\]/, "@brackets.regexp.escape.control", "@pop"] + ], + regexpcomment: [ + [/[^)]+/, "comment"], + [/\)/, { token: "regexp.escape.control", next: "@pop" }] + ], + pstring: [ + [/%([qws])\(/, { token: "string.$1.delim", switchTo: "@qstring.$1.(.)" }], + [/%([qws])\[/, { token: "string.$1.delim", switchTo: "@qstring.$1.[.]" }], + [/%([qws])\{/, { token: "string.$1.delim", switchTo: "@qstring.$1.{.}" }], + [/%([qws])</, { token: "string.$1.delim", switchTo: "@qstring.$1.<.>" }], + [/%([qws])(@delim)/, { token: "string.$1.delim", switchTo: "@qstring.$1.$2.$2" }], + [/%r\(/, { token: "regexp.delim", switchTo: "@pregexp.(.)" }], + [/%r\[/, { token: "regexp.delim", switchTo: "@pregexp.[.]" }], + [/%r\{/, { token: "regexp.delim", switchTo: "@pregexp.{.}" }], + [/%r</, { token: "regexp.delim", switchTo: "@pregexp.<.>" }], + [/%r(@delim)/, { token: "regexp.delim", switchTo: "@pregexp.$1.$1" }], + [/%(x|W|Q?)\(/, { token: "string.$1.delim", switchTo: "@qqstring.$1.(.)" }], + [/%(x|W|Q?)\[/, { token: "string.$1.delim", switchTo: "@qqstring.$1.[.]" }], + [/%(x|W|Q?)\{/, { token: "string.$1.delim", switchTo: "@qqstring.$1.{.}" }], + [/%(x|W|Q?)</, { token: "string.$1.delim", switchTo: "@qqstring.$1.<.>" }], + [/%(x|W|Q?)(@delim)/, { token: "string.$1.delim", switchTo: "@qqstring.$1.$2.$2" }], + [/%([rqwsxW]|Q?)./, { token: "invalid", next: "@pop" }], + [/./, { token: "invalid", next: "@pop" }] + ], + qstring: [ + [/\\$/, "string.$S2.escape"], + [/\\./, "string.$S2.escape"], + [ + /./, + { + cases: { + "$#==$S4": { token: "string.$S2.delim", next: "@pop" }, + "$#==$S3": { token: "string.$S2.delim", next: "@push" }, + "@default": "string.$S2" + } + } + ] + ], + qqstring: [[/#/, "string.$S2.escape", "@interpolated"], { include: "@qstring" }], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/^\s*=begin\b/, "comment", "@comment"], + [/#.*$/, "comment"] + ], + comment: [ + [/[^=]+/, "comment"], + [/^\s*=begin\b/, "comment.invalid"], + [/^\s*=end\b.*/, "comment", "@pop"], + [/[=]/, "comment"] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9701.b0601203.js b/assets/js/9701.b0601203.js new file mode 100644 index 00000000000..2d2beba0418 --- /dev/null +++ b/assets/js/9701.b0601203.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9701],{19701:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>l,frontMatter:()=>s,metadata:()=>n,toc:()=>u});var i=o(87462),r=(o(67294),o(3905));o(45475);const s={title:"Editors",description:"Detailed guides, tips, and resources on how to integrate Flow with different code editors.",slug:"/editors"},d=void 0,n={unversionedId:"editors/index",id:"editors/index",title:"Editors",description:"Detailed guides, tips, and resources on how to integrate Flow with different code editors.",source:"@site/docs/editors/index.md",sourceDirName:"editors",slug:"/editors",permalink:"/en/docs/editors",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/editors/index.md",tags:[],version:"current",frontMatter:{title:"Editors",description:"Detailed guides, tips, and resources on how to integrate Flow with different code editors.",slug:"/editors"},sidebar:"docsSidebar",previous:{title:"flow-remove-types",permalink:"/en/docs/tools/flow-remove-types"},next:{title:"Visual Studio Code",permalink:"/en/docs/editors/vscode"}},a={},u=[],c={toc:u};function l(e){let{components:t,...o}=e;return(0,r.mdx)("wrapper",(0,i.Z)({},c,o,{components:t,mdxType:"MDXLayout"}),(0,r.mdx)("p",null,"You can benefit from having Flow run as you develop by integrating into your editor."),(0,r.mdx)("p",null,"Editor plugins are provided and maintained by the community. If you have trouble configuring or using a specific plugin for your IDE, please visit the project's repo or search for a community provided answer."))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/972.de4b56d9.js b/assets/js/972.de4b56d9.js new file mode 100644 index 00000000000..75a167983af --- /dev/null +++ b/assets/js/972.de4b56d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[972],{30972:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>l});var a=t(87462),i=(t(67294),t(3905));t(45475);const o={title:"Subsets & Subtypes",slug:"/lang/subtypes"},s=void 0,p={unversionedId:"lang/subtypes",id:"lang/subtypes",title:"Subsets & Subtypes",description:"What is a subtype?",source:"@site/docs/lang/subtypes.md",sourceDirName:"lang",slug:"/lang/subtypes",permalink:"/en/docs/lang/subtypes",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/lang/subtypes.md",tags:[],version:"current",frontMatter:{title:"Subsets & Subtypes",slug:"/lang/subtypes"},sidebar:"docsSidebar",previous:{title:"Variable Declarations",permalink:"/en/docs/lang/variables"},next:{title:"Type Hierarchy",permalink:"/en/docs/lang/type-hierarchy"}},r={},l=[{value:"What is a subtype?",id:"toc-what-is-a-subtype",level:2},{value:"When are subtypes used?",id:"toc-when-are-subtypes-used",level:2},{value:"Subtypes of complex types",id:"toc-subtypes-of-complex-types",level:2},{value:"Subtypes of objects",id:"toc-subtypes-of-objects",level:3},{value:"Subtypes of functions",id:"toc-subtypes-of-functions",level:3}],m={toc:l};function d(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,a.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("h2",{id:"toc-what-is-a-subtype"},"What is a subtype?"),(0,i.mdx)("p",null,"A type like ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"boolean"),", or ",(0,i.mdx)("inlineCode",{parentName:"p"},"string")," describes a set of possible\nvalues. A ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," describes every possible number, so a single number\n(such as ",(0,i.mdx)("inlineCode",{parentName:"p"},"42"),") would be a ",(0,i.mdx)("em",{parentName:"p"},"subtype")," of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," type. Conversely, ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"\nwould be a ",(0,i.mdx)("em",{parentName:"p"},"supertype")," of the type ",(0,i.mdx)("inlineCode",{parentName:"p"},"42"),"."),(0,i.mdx)("p",null,"If we want to know whether one type is the subtype of another, we need to look at\nall the possible values for both types and figure out if the other has a\n",(0,i.mdx)("em",{parentName:"p"},"subset")," of the values."),(0,i.mdx)("p",null,"For example, if we had a ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeA")," which described the numbers 1 through 3\n(a ",(0,i.mdx)("a",{parentName:"p",href:"../../types/unions"},"union")," of ",(0,i.mdx)("a",{parentName:"p",href:"../../types/literals"},"literal types"),"), and\na ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeB")," which described the numbers 1 through 5: ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeA")," would be considered\na ",(0,i.mdx)("em",{parentName:"p"},"subtype")," of ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeB"),", because ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeA")," is a subset of ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeB"),"."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type TypeA = 1 | 2 | 3;\ntype TypeB = 1 | 2 | 3 | 4 | 5;\n")),(0,i.mdx)("p",null,"Consider a ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeLetters"),' which described the strings: "A", "B", "C", and a\n',(0,i.mdx)("inlineCode",{parentName:"p"},"TypeNumbers")," which described the numbers: 1, 2, 3. Neither of them would\nbe a subtype of the other, as they each contain a completely different set of\nvalues."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},'type TypeLetters = "A" | "B" | "C";\ntype TypeNumbers = 1 | 2 | 3;\n')),(0,i.mdx)("p",null,"Finally, if we had a ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeA")," which described the numbers 1 through 3, and a\n",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeB")," which described the numbers 3 through 5. Neither of them would be a\nsubtype of the other. Even though they both have 3 and describe numbers, they\neach have some unique items."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type TypeA = 1 | 2 | 3;\ntype TypeB = 3 | 4 | 5;\n")),(0,i.mdx)("h2",{id:"toc-when-are-subtypes-used"},"When are subtypes used?"),(0,i.mdx)("p",null,"Most of the work that Flow does is comparing types against one another."),(0,i.mdx)("p",null,"For example, in order to know if you are calling a function correctly, Flow\nneeds to compare the arguments you are passing with the parameters the\nfunction expects."),(0,i.mdx)("p",null,"This often means figuring out if the value you are passing in is a subtype of\nthe value you are expecting."),(0,i.mdx)("p",null,"So if you write a function that expects the numbers 1 through 5, any subtype of\nthat set will be acceptable."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":9,"startColumn":3,"endLine":9,"endColumn":11,"description":"Cannot call `f` with `fiveOrSix` bound to `param` because number literal `6` [1] is incompatible with literal union [2]. [incompatible-call]"}]','[{"startLine":9,"startColumn":3,"endLine":9,"endColumn":11,"description":"Cannot':!0,call:!0,"`f`":!0,with:!0,"`fiveOrSix`":!0,bound:!0,to:!0,"`param`":!0,because:!0,number:!0,literal:!0,"`6`":!0,"[1]":!0,is:!0,incompatible:!0,union:!0,"[2].":!0,'[incompatible-call]"}]':!0},"function f(param: 1 | 2 | 3 | 4 | 5) {\n // ...\n}\n\ndeclare const oneOrTwo: 1 | 2; // Subset of the input parameters type.\ndeclare const fiveOrSix: 5 | 6; // Not a subset of the input parameters type.\n\nf(oneOrTwo); // Works!\nf(fiveOrSix); // Error!\n")),(0,i.mdx)("h2",{id:"toc-subtypes-of-complex-types"},"Subtypes of complex types"),(0,i.mdx)("p",null,"Flow needs to compare more than just sets of primitive values, it also needs to\nbe able to compare objects, functions, and every other type that appears in the\nlanguage."),(0,i.mdx)("h3",{id:"toc-subtypes-of-objects"},"Subtypes of objects"),(0,i.mdx)("p",null,"You can start to compare two objects by their keys. If one object contains all\nthe keys of another object, then it may be a subtype."),(0,i.mdx)("p",null,"For example, if we had an ",(0,i.mdx)("inlineCode",{parentName:"p"},"ObjectA")," which contained the key ",(0,i.mdx)("inlineCode",{parentName:"p"},"foo"),", and an\n",(0,i.mdx)("inlineCode",{parentName:"p"},"ObjectB")," which contained the keys ",(0,i.mdx)("inlineCode",{parentName:"p"},"foo")," and ",(0,i.mdx)("inlineCode",{parentName:"p"},"bar"),". Then it's possible that\n",(0,i.mdx)("inlineCode",{parentName:"p"},"ObjectB")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"ObjectA"),", if ",(0,i.mdx)("inlineCode",{parentName:"p"},"ObjectA")," is inexact."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ObjectA = {foo: string, ...};\ntype ObjectB = {foo: string, bar: number};\n\nlet objectB: ObjectB = {foo: 'test', bar: 42};\nlet objectA: ObjectA = objectB; // Works!\n")),(0,i.mdx)("p",null,"But we also need to compare the types of the values. If both objects had a key\n",(0,i.mdx)("inlineCode",{parentName:"p"},"foo")," but one was a ",(0,i.mdx)("inlineCode",{parentName:"p"},"number")," and the other was a ",(0,i.mdx)("inlineCode",{parentName:"p"},"string"),", then one would not\nbe the subtype of the other."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":24,"endLine":5,"endColumn":30,"description":"Cannot assign `objectB` to `objectA` because number [1] is incompatible with string [2] in property `foo`. [incompatible-type]"}]','[{"startLine":5,"startColumn":24,"endLine":5,"endColumn":30,"description":"Cannot':!0,assign:!0,"`objectB`":!0,to:!0,"`objectA`":!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,string:!0,"[2]":!0,in:!0,property:!0,"`foo`.":!0,'[incompatible-type]"}]':!0},"type ObjectA = {foo: string, ...};\ntype ObjectB = {foo: number, bar: number};\n\nlet objectB: ObjectB = { foo: 1, bar: 2 };\nlet objectA: ObjectA = objectB; // Error!\n")),(0,i.mdx)("p",null,"If these values on the object happen to be other objects, we would have to\ncompare those against one another. We need to compare every value\nrecursively until we can decide if we have a subtype or not."),(0,i.mdx)("h3",{id:"toc-subtypes-of-functions"},"Subtypes of functions"),(0,i.mdx)("p",null,"Subtyping rules for functions are more complicated. So far, we've seen that ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),"\nis a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," if ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," contains all possible values for ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),". For functions,\nit's not clear how this relationship would apply. To simplify things, you can think\nof a function type ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," as being a subtype of a function type ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," if functions of type\n",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," can be used wherever a function of type ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," is expected."),(0,i.mdx)("p",null,"Let's say we have a function type and a few functions. Which of the functions can\nbe used safely in code that expects the given function type?"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":7,"startColumn":2,"endLine":7,"endColumn":3,"description":"Cannot cast `f1` to `FuncType` because string literal `C` [1] is incompatible with literal union [2] in the return value. [incompatible-cast]"},{"startLine":8,"startColumn":2,"endLine":8,"endColumn":3,"description":"Cannot cast `f2` to `FuncType` because literal union [1] is incompatible with number literal `2` [2] in the first parameter. [incompatible-cast]"}]','[{"startLine":7,"startColumn":2,"endLine":7,"endColumn":3,"description":"Cannot':!0,cast:!0,"`f1`":!0,to:!0,"`FuncType`":!0,because:!0,string:!0,literal:!0,"`C`":!0,"[1]":!0,is:!0,incompatible:!0,with:!0,union:!0,"[2]":!0,in:!0,the:!0,return:!0,"value.":!0,'[incompatible-cast]"},{"startLine":8,"startColumn":2,"endLine":8,"endColumn":3,"description":"Cannot':!0,"`f2`":!0,number:!0,"`2`":!0,first:!0,"parameter.":!0,'[incompatible-cast]"}]':!0},'type FuncType = (1 | 2) => "A" | "B";\n\ndeclare function f1(1 | 2): "A" | "B" | "C";\ndeclare function f2(1 | null): "A" | "B";\ndeclare function f3(1 | 2 | 3): "A";\n\n(f1: FuncType); // Error\n(f2: FuncType); // Error\n(f3: FuncType); // Works!\n')),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"f1")," can return a value that ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType")," never does, so code that relies on ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType"),"\nmight not be safe if ",(0,i.mdx)("inlineCode",{parentName:"li"},"f1")," is used. Its type is not a subtype of ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType"),"."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"f2")," can't handle all the argument values that ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType")," does, so code that relies on\n",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType")," can't safely use ",(0,i.mdx)("inlineCode",{parentName:"li"},"f2"),". Its type is also not a subtype of ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType"),"."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"f3")," can accept all the argument values that ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType")," does, and only returns\nvalues that ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType")," does, so its type is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"li"},"FuncType"),".")),(0,i.mdx)("p",null,"In general, the function subtyping rule is this: a function type ",(0,i.mdx)("inlineCode",{parentName:"p"},"B")," is a subtype\nof a function type ",(0,i.mdx)("inlineCode",{parentName:"p"},"A")," if and only if ",(0,i.mdx)("inlineCode",{parentName:"p"},"B"),"'s inputs are a superset of ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),"'s, and ",(0,i.mdx)("inlineCode",{parentName:"p"},"B"),"'s outputs\nare a subset of ",(0,i.mdx)("inlineCode",{parentName:"p"},"A"),"'s. The subtype must accept ",(0,i.mdx)("em",{parentName:"p"},"at least")," the same inputs as its parent,\nand must return ",(0,i.mdx)("em",{parentName:"p"},"at most")," the same outputs."),(0,i.mdx)("p",null,"The decision of which direction to apply the subtyping rule on inputs and outputs is\ngoverned by ",(0,i.mdx)("a",{parentName:"p",href:"../variance"},"variance"),", which is the topic of the next section."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9837.a4f6fb00.js b/assets/js/9837.a4f6fb00.js new file mode 100644 index 00000000000..399513dfe75 --- /dev/null +++ b/assets/js/9837.a4f6fb00.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9837],{29837:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>p});var a=t(87462),s=(t(67294),t(3905));t(45475);const o={title:"Type Casting Expressions",slug:"/types/casting"},i=void 0,r={unversionedId:"types/casting",id:"types/casting",title:"Type Casting Expressions",description:"Sometimes it is useful to assert a type without using something like a function",source:"@site/docs/types/casting.md",sourceDirName:"types",slug:"/types/casting",permalink:"/en/docs/types/casting",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/casting.md",tags:[],version:"current",frontMatter:{title:"Type Casting Expressions",slug:"/types/casting"},sidebar:"docsSidebar",previous:{title:"Typeof Types",permalink:"/en/docs/types/typeof"},next:{title:"Utility Types",permalink:"/en/docs/types/utilities"}},l={},p=[{value:"Type Cast Expression Syntax",id:"toc-type-cast-expression-syntax",level:2},{value:"Type Assertions",id:"toc-type-assertions",level:2},{value:"Type Casting",id:"toc-type-casting",level:2},{value:"Using type cast expressions",id:"toc-using-type-cast-expressions",level:2},{value:"Type Casting through any",id:"toc-type-casting-through-any",level:3}],u={toc:p};function c(e){let{components:n,...t}=e;return(0,s.mdx)("wrapper",(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"Sometimes it is useful to assert a type without using something like a function\nor a variable to do so. For this Flow supports an inline type cast expression\nsyntax which can be used in a number of different ways."),(0,s.mdx)("h2",{id:"toc-type-cast-expression-syntax"},"Type Cast Expression Syntax"),(0,s.mdx)("p",null,"In order to create a type cast expression around a ",(0,s.mdx)("inlineCode",{parentName:"p"},"value"),", add a colon ",(0,s.mdx)("inlineCode",{parentName:"p"},":"),"\nwith the ",(0,s.mdx)("inlineCode",{parentName:"p"},"Type")," and wrap the expression with parentheses ",(0,s.mdx)("inlineCode",{parentName:"p"},"(")," ",(0,s.mdx)("inlineCode",{parentName:"p"},")"),"."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"(value: Type)\n")),(0,s.mdx)("blockquote",null,(0,s.mdx)("p",{parentName:"blockquote"},(0,s.mdx)("strong",{parentName:"p"},"Note:")," The parentheses are necessary to avoid ambiguity with other syntax.")),(0,s.mdx)("p",null,"Type cast expressions can appear anywhere an expression can appear."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"let val = (value: Type);\nlet obj = { prop: (value: Type) };\nlet arr = ([(value: Type), (value: Type)]: Array<Type>);\n")),(0,s.mdx)("p",null,"The value itself can also be an expression:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"(2 + 2: number);\n")),(0,s.mdx)("p",null,"When you strip the types all that is left is the value."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"(value: Type);\n")),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-js"},"value;\n")),(0,s.mdx)("h2",{id:"toc-type-assertions"},"Type Assertions"),(0,s.mdx)("p",null,"Using type cast expressions you can assert that values are certain types."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":2,"endLine":5,"endColumn":6,"description":"Cannot cast `value` to string because number [1] is incompatible with string [2]. [incompatible-cast]"}]','[{"startLine":5,"startColumn":2,"endLine":5,"endColumn":6,"description":"Cannot':!0,cast:!0,"`value`":!0,to:!0,string:!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"let value = 42;\n\n(value: 42); // Works!\n(value: number); // Works!\n(value: string); // Error!\n")),(0,s.mdx)("p",null,"Asserting types in this way works the same as types do anywhere else."),(0,s.mdx)("h2",{id:"toc-type-casting"},"Type Casting"),(0,s.mdx)("p",null,"When you write a type cast expression, the result of that expression is the\nvalue with the provided type. If you hold onto the resulting value, it will\nhave the new type."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":8,"startColumn":2,"endLine":8,"endColumn":9,"description":"Cannot cast `newValue` to number literal `42` because number [1] is incompatible with number literal `42` [2]. [incompatible-cast]"}]','[{"startLine":8,"startColumn":2,"endLine":8,"endColumn":9,"description":"Cannot':!0,cast:!0,"`newValue`":!0,to:!0,number:!0,literal:!0,"`42`":!0,because:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"}]':!0},"let value = 42;\n\n(value: 42); // Works!\n(value: number); // Works!\n\nlet newValue = (value: number);\n\n(newValue: 42); // Error!\n(newValue: number); // Works!\n")),(0,s.mdx)("h2",{id:"toc-using-type-cast-expressions"},"Using type cast expressions"),(0,s.mdx)("blockquote",null,(0,s.mdx)("p",{parentName:"blockquote"},(0,s.mdx)("strong",{parentName:"p"},"Note:")," We're going to go through a stripped down example for\ndemonstrating how to make use of type cast expressions. This example is not\nsolved well in practice.")),(0,s.mdx)("h3",{id:"toc-type-casting-through-any"},"Type Casting through any"),(0,s.mdx)("p",null,"Because type casts work the same as all other type annotations, you can only\ncast values to less specific types. You cannot change the type or make it\nsomething more specific."),(0,s.mdx)("p",null,"But you can use ",(0,s.mdx)("a",{parentName:"p",href:"../any"},"any")," to cast to whatever type you want."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":4,"startColumn":2,"endLine":4,"endColumn":6,"description":"Cannot cast `value` to string because number [1] is incompatible with string [2]. [incompatible-cast]"},{"startLine":8,"startColumn":2,"endLine":8,"endColumn":9,"description":"Cannot cast `newValue` to number because string [1] is incompatible with number [2]. [incompatible-cast]"}]','[{"startLine":4,"startColumn":2,"endLine":4,"endColumn":6,"description":"Cannot':!0,cast:!0,"`value`":!0,to:!0,string:!0,because:!0,number:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,"[2].":!0,'[incompatible-cast]"},{"startLine":8,"startColumn":2,"endLine":8,"endColumn":9,"description":"Cannot':!0,"`newValue`":!0,'[incompatible-cast]"}]':!0},"let value = 42;\n\n(value: number); // Works!\n(value: string); // Error!\n\nlet newValue = ((value: any): string);\n\n(newValue: number); // Error!\n(newValue: string); // Works!\n")),(0,s.mdx)("p",null,"By casting the value to any, you can then cast to whatever you want."),(0,s.mdx)("p",null,"This is unsafe and not recommended. But it's sometimes useful when you are\ndoing something with a value which is very difficult or impossible to type and\nwant to make sure that the result has the desired type."),(0,s.mdx)("p",null,"For example, the following function for cloning an object."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function cloneObject(obj: any) {\n const clone: {[string]: mixed} = {};\n\n Object.keys(obj).forEach(key => {\n clone[key] = obj[key];\n });\n\n return clone;\n}\n")),(0,s.mdx)("p",null,"It would be hard to create a type for this because we're creating a new object\nbased on another object."),(0,s.mdx)("p",null,"If we cast through any, we can return a type which is more useful."),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"function cloneObject<T: {+[key: string]: mixed }>(obj: T): T {\n const clone: {[string]: mixed} = {};\n\n Object.keys(obj).forEach(key => {\n clone[key] = obj[key];\n });\n\n return ((clone: any): T);\n}\n\nconst clone = cloneObject({\n foo: 1,\n bar: true,\n baz: 'three'\n});\n\n(clone.foo: 1); // Works!\n(clone.bar: true); // Works!\n(clone.baz: 'three'); // Works!\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9850.0f22bc6f.js b/assets/js/9850.0f22bc6f.js new file mode 100644 index 00000000000..3a8fa93564e --- /dev/null +++ b/assets/js/9850.0f22bc6f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9850],{79850:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>c,frontMatter:()=>r,metadata:()=>p,toc:()=>l});var n=a(87462),s=(a(67294),a(3905));const r={title:"Announcing Typecasts","short-title":"Typecasts",author:"Basil Hosmer",hide_table_of_contents:!0},o=void 0,p={permalink:"/blog/2015/02/18/Typecasts",source:"@site/blog/2015-02-18-Typecasts.md",title:"Announcing Typecasts",description:"As of version 0.3.0, Flow supports typecast expression.",date:"2015-02-18T00:00:00.000Z",formattedDate:"February 18, 2015",tags:[],hasTruncateMarker:!0,authors:[{name:"Basil Hosmer"}],frontMatter:{title:"Announcing Typecasts","short-title":"Typecasts",author:"Basil Hosmer",hide_table_of_contents:!0},prevItem:{title:"Announcing Import Type",permalink:"/blog/2015/02/18/Import-Types"}},i={authorsImageUrls:[void 0]},l=[],m={toc:l};function c(e){let{components:t,...a}=e;return(0,s.mdx)("wrapper",(0,n.Z)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,s.mdx)("p",null,"As of version 0.3.0, Flow supports typecast expression."),(0,s.mdx)("p",null,"A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"(1 + 1 : number);\nvar a = { name: (null: ?string) };\n([1, 'a', true]: Array<mixed>).map(fn);\n")),(0,s.mdx)("p",null,"For any JavaScript expression ",(0,s.mdx)("inlineCode",{parentName:"p"},"<expr>")," and any Flow type ",(0,s.mdx)("inlineCode",{parentName:"p"},"<type>"),", you can write"),(0,s.mdx)("pre",null,(0,s.mdx)("code",{parentName:"pre",className:"language-JavaScript"},"(<expr> : <type>)\n")),(0,s.mdx)("p",null,(0,s.mdx)("strong",{parentName:"p"},"Note:")," the parentheses are necessary."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9907.6f8b4686.js b/assets/js/9907.6f8b4686.js new file mode 100644 index 00000000000..fbafa88686b --- /dev/null +++ b/assets/js/9907.6f8b4686.js @@ -0,0 +1,383 @@ +"use strict"; +exports.id = 9907; +exports.ids = [9907]; +exports.modules = { + +/***/ 39907: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/vb/vb.ts +var conf = { + comments: { + lineComment: "'", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"], + ["addhandler", "end addhandler"], + ["class", "end class"], + ["enum", "end enum"], + ["event", "end event"], + ["function", "end function"], + ["get", "end get"], + ["if", "end if"], + ["interface", "end interface"], + ["module", "end module"], + ["namespace", "end namespace"], + ["operator", "end operator"], + ["property", "end property"], + ["raiseevent", "end raiseevent"], + ["removehandler", "end removehandler"], + ["select", "end select"], + ["set", "end set"], + ["structure", "end structure"], + ["sub", "end sub"], + ["synclock", "end synclock"], + ["try", "end try"], + ["while", "end while"], + ["with", "end with"], + ["using", "end using"], + ["do", "loop"], + ["for", "next"] + ], + autoClosingPairs: [ + { open: "{", close: "}", notIn: ["string", "comment"] }, + { open: "[", close: "]", notIn: ["string", "comment"] }, + { open: "(", close: ")", notIn: ["string", "comment"] }, + { open: '"', close: '"', notIn: ["string", "comment"] }, + { open: "<", close: ">", notIn: ["string", "comment"] } + ], + folding: { + markers: { + start: new RegExp("^\\s*#Region\\b"), + end: new RegExp("^\\s*#End Region\\b") + } + } +}; +var language = { + defaultToken: "", + tokenPostfix: ".vb", + ignoreCase: true, + brackets: [ + { token: "delimiter.bracket", open: "{", close: "}" }, + { token: "delimiter.array", open: "[", close: "]" }, + { token: "delimiter.parenthesis", open: "(", close: ")" }, + { token: "delimiter.angle", open: "<", close: ">" }, + { + token: "keyword.tag-addhandler", + open: "addhandler", + close: "end addhandler" + }, + { token: "keyword.tag-class", open: "class", close: "end class" }, + { token: "keyword.tag-enum", open: "enum", close: "end enum" }, + { token: "keyword.tag-event", open: "event", close: "end event" }, + { + token: "keyword.tag-function", + open: "function", + close: "end function" + }, + { token: "keyword.tag-get", open: "get", close: "end get" }, + { token: "keyword.tag-if", open: "if", close: "end if" }, + { + token: "keyword.tag-interface", + open: "interface", + close: "end interface" + }, + { token: "keyword.tag-module", open: "module", close: "end module" }, + { + token: "keyword.tag-namespace", + open: "namespace", + close: "end namespace" + }, + { + token: "keyword.tag-operator", + open: "operator", + close: "end operator" + }, + { + token: "keyword.tag-property", + open: "property", + close: "end property" + }, + { + token: "keyword.tag-raiseevent", + open: "raiseevent", + close: "end raiseevent" + }, + { + token: "keyword.tag-removehandler", + open: "removehandler", + close: "end removehandler" + }, + { token: "keyword.tag-select", open: "select", close: "end select" }, + { token: "keyword.tag-set", open: "set", close: "end set" }, + { + token: "keyword.tag-structure", + open: "structure", + close: "end structure" + }, + { token: "keyword.tag-sub", open: "sub", close: "end sub" }, + { + token: "keyword.tag-synclock", + open: "synclock", + close: "end synclock" + }, + { token: "keyword.tag-try", open: "try", close: "end try" }, + { token: "keyword.tag-while", open: "while", close: "end while" }, + { token: "keyword.tag-with", open: "with", close: "end with" }, + { token: "keyword.tag-using", open: "using", close: "end using" }, + { token: "keyword.tag-do", open: "do", close: "loop" }, + { token: "keyword.tag-for", open: "for", close: "next" } + ], + keywords: [ + "AddHandler", + "AddressOf", + "Alias", + "And", + "AndAlso", + "As", + "Async", + "Boolean", + "ByRef", + "Byte", + "ByVal", + "Call", + "Case", + "Catch", + "CBool", + "CByte", + "CChar", + "CDate", + "CDbl", + "CDec", + "Char", + "CInt", + "Class", + "CLng", + "CObj", + "Const", + "Continue", + "CSByte", + "CShort", + "CSng", + "CStr", + "CType", + "CUInt", + "CULng", + "CUShort", + "Date", + "Decimal", + "Declare", + "Default", + "Delegate", + "Dim", + "DirectCast", + "Do", + "Double", + "Each", + "Else", + "ElseIf", + "End", + "EndIf", + "Enum", + "Erase", + "Error", + "Event", + "Exit", + "False", + "Finally", + "For", + "Friend", + "Function", + "Get", + "GetType", + "GetXMLNamespace", + "Global", + "GoSub", + "GoTo", + "Handles", + "If", + "Implements", + "Imports", + "In", + "Inherits", + "Integer", + "Interface", + "Is", + "IsNot", + "Let", + "Lib", + "Like", + "Long", + "Loop", + "Me", + "Mod", + "Module", + "MustInherit", + "MustOverride", + "MyBase", + "MyClass", + "NameOf", + "Namespace", + "Narrowing", + "New", + "Next", + "Not", + "Nothing", + "NotInheritable", + "NotOverridable", + "Object", + "Of", + "On", + "Operator", + "Option", + "Optional", + "Or", + "OrElse", + "Out", + "Overloads", + "Overridable", + "Overrides", + "ParamArray", + "Partial", + "Private", + "Property", + "Protected", + "Public", + "RaiseEvent", + "ReadOnly", + "ReDim", + "RemoveHandler", + "Resume", + "Return", + "SByte", + "Select", + "Set", + "Shadows", + "Shared", + "Short", + "Single", + "Static", + "Step", + "Stop", + "String", + "Structure", + "Sub", + "SyncLock", + "Then", + "Throw", + "To", + "True", + "Try", + "TryCast", + "TypeOf", + "UInteger", + "ULong", + "UShort", + "Using", + "Variant", + "Wend", + "When", + "While", + "Widening", + "With", + "WithEvents", + "WriteOnly", + "Xor" + ], + tagwords: [ + "If", + "Sub", + "Select", + "Try", + "Class", + "Enum", + "Function", + "Get", + "Interface", + "Module", + "Namespace", + "Operator", + "Set", + "Structure", + "Using", + "While", + "With", + "Do", + "Loop", + "For", + "Next", + "Property", + "Continue", + "AddHandler", + "RemoveHandler", + "Event", + "RaiseEvent", + "SyncLock" + ], + symbols: /[=><!~?;\.,:&|+\-*\/\^%]+/, + integersuffix: /U?[DI%L&S@]?/, + floatsuffix: /[R#F!]?/, + tokenizer: { + root: [ + { include: "@whitespace" }, + [/next(?!\w)/, { token: "keyword.tag-for" }], + [/loop(?!\w)/, { token: "keyword.tag-do" }], + [ + /end\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/, + { token: "keyword.tag-$1" } + ], + [ + /[a-zA-Z_]\w*/, + { + cases: { + "@tagwords": { token: "keyword.tag-$0" }, + "@keywords": { token: "keyword.$0" }, + "@default": "identifier" + } + } + ], + [/^\s*#\w+/, "keyword"], + [/\d*\d+e([\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/\d*\.\d+(e[\-+]?\d+)?(@floatsuffix)/, "number.float"], + [/&H[0-9a-f]+(@integersuffix)/, "number.hex"], + [/&0[0-7]+(@integersuffix)/, "number.octal"], + [/\d+(@integersuffix)/, "number"], + [/#.*#/, "number"], + [/[{}()\[\]]/, "@brackets"], + [/@symbols/, "delimiter"], + [/["\u201c\u201d]/, { token: "string.quote", next: "@string" }] + ], + whitespace: [ + [/[ \t\r\n]+/, ""], + [/(\'|REM(?!\w)).*$/, "comment"] + ], + string: [ + [/[^"\u201c\u201d]+/, "string"], + [/["\u201c\u201d]{2}/, "string.escape"], + [/["\u201c\u201d]C?/, { token: "string.quote", next: "@pop" }] + ] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9907.ddc37b5f.js b/assets/js/9907.ddc37b5f.js new file mode 100644 index 00000000000..46bf2f8f5ff --- /dev/null +++ b/assets/js/9907.ddc37b5f.js @@ -0,0 +1,2 @@ +/*! For license information please see 9907.ddc37b5f.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9907],{39907:(e,n,t)=>{t.r(n),t.d(n,{conf:()=>o,language:()=>r});var o={comments:{lineComment:"'",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"],["addhandler","end addhandler"],["class","end class"],["enum","end enum"],["event","end event"],["function","end function"],["get","end get"],["if","end if"],["interface","end interface"],["module","end module"],["namespace","end namespace"],["operator","end operator"],["property","end property"],["raiseevent","end raiseevent"],["removehandler","end removehandler"],["select","end select"],["set","end set"],["structure","end structure"],["sub","end sub"],["synclock","end synclock"],["try","end try"],["while","end while"],["with","end with"],["using","end using"],["do","loop"],["for","next"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"<",close:">",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*#Region\\b"),end:new RegExp("^\\s*#End Region\\b")}}},r={defaultToken:"",tokenPostfix:".vb",ignoreCase:!0,brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.angle",open:"<",close:">"},{token:"keyword.tag-addhandler",open:"addhandler",close:"end addhandler"},{token:"keyword.tag-class",open:"class",close:"end class"},{token:"keyword.tag-enum",open:"enum",close:"end enum"},{token:"keyword.tag-event",open:"event",close:"end event"},{token:"keyword.tag-function",open:"function",close:"end function"},{token:"keyword.tag-get",open:"get",close:"end get"},{token:"keyword.tag-if",open:"if",close:"end if"},{token:"keyword.tag-interface",open:"interface",close:"end interface"},{token:"keyword.tag-module",open:"module",close:"end module"},{token:"keyword.tag-namespace",open:"namespace",close:"end namespace"},{token:"keyword.tag-operator",open:"operator",close:"end operator"},{token:"keyword.tag-property",open:"property",close:"end property"},{token:"keyword.tag-raiseevent",open:"raiseevent",close:"end raiseevent"},{token:"keyword.tag-removehandler",open:"removehandler",close:"end removehandler"},{token:"keyword.tag-select",open:"select",close:"end select"},{token:"keyword.tag-set",open:"set",close:"end set"},{token:"keyword.tag-structure",open:"structure",close:"end structure"},{token:"keyword.tag-sub",open:"sub",close:"end sub"},{token:"keyword.tag-synclock",open:"synclock",close:"end synclock"},{token:"keyword.tag-try",open:"try",close:"end try"},{token:"keyword.tag-while",open:"while",close:"end while"},{token:"keyword.tag-with",open:"with",close:"end with"},{token:"keyword.tag-using",open:"using",close:"end using"},{token:"keyword.tag-do",open:"do",close:"loop"},{token:"keyword.tag-for",open:"for",close:"next"}],keywords:["AddHandler","AddressOf","Alias","And","AndAlso","As","Async","Boolean","ByRef","Byte","ByVal","Call","Case","Catch","CBool","CByte","CChar","CDate","CDbl","CDec","Char","CInt","Class","CLng","CObj","Const","Continue","CSByte","CShort","CSng","CStr","CType","CUInt","CULng","CUShort","Date","Decimal","Declare","Default","Delegate","Dim","DirectCast","Do","Double","Each","Else","ElseIf","End","EndIf","Enum","Erase","Error","Event","Exit","False","Finally","For","Friend","Function","Get","GetType","GetXMLNamespace","Global","GoSub","GoTo","Handles","If","Implements","Imports","In","Inherits","Integer","Interface","Is","IsNot","Let","Lib","Like","Long","Loop","Me","Mod","Module","MustInherit","MustOverride","MyBase","MyClass","NameOf","Namespace","Narrowing","New","Next","Not","Nothing","NotInheritable","NotOverridable","Object","Of","On","Operator","Option","Optional","Or","OrElse","Out","Overloads","Overridable","Overrides","ParamArray","Partial","Private","Property","Protected","Public","RaiseEvent","ReadOnly","ReDim","RemoveHandler","Resume","Return","SByte","Select","Set","Shadows","Shared","Short","Single","Static","Step","Stop","String","Structure","Sub","SyncLock","Then","Throw","To","True","Try","TryCast","TypeOf","UInteger","ULong","UShort","Using","Variant","Wend","When","While","Widening","With","WithEvents","WriteOnly","Xor"],tagwords:["If","Sub","Select","Try","Class","Enum","Function","Get","Interface","Module","Namespace","Operator","Set","Structure","Using","While","With","Do","Loop","For","Next","Property","Continue","AddHandler","RemoveHandler","Event","RaiseEvent","SyncLock"],symbols:/[=><!~?;\.,:&|+\-*\/\^%]+/,integersuffix:/U?[DI%L&S@]?/,floatsuffix:/[R#F!]?/,tokenizer:{root:[{include:"@whitespace"},[/next(?!\w)/,{token:"keyword.tag-for"}],[/loop(?!\w)/,{token:"keyword.tag-do"}],[/end\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/,{token:"keyword.tag-$1"}],[/[a-zA-Z_]\w*/,{cases:{"@tagwords":{token:"keyword.tag-$0"},"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/^\s*#\w+/,"keyword"],[/\d*\d+e([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+(e[\-+]?\d+)?(@floatsuffix)/,"number.float"],[/&H[0-9a-f]+(@integersuffix)/,"number.hex"],[/&0[0-7]+(@integersuffix)/,"number.octal"],[/\d+(@integersuffix)/,"number"],[/#.*#/,"number"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/["\u201c\u201d]/,{token:"string.quote",next:"@string"}]],whitespace:[[/[ \t\r\n]+/,""],[/(\'|REM(?!\w)).*$/,"comment"]],string:[[/[^"\u201c\u201d]+/,"string"],[/["\u201c\u201d]{2}/,"string.escape"],[/["\u201c\u201d]C?/,{token:"string.quote",next:"@pop"}]]}}}}]); \ No newline at end of file diff --git a/assets/js/9907.ddc37b5f.js.LICENSE.txt b/assets/js/9907.ddc37b5f.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/9907.ddc37b5f.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/996.a97ccabb.js b/assets/js/996.a97ccabb.js new file mode 100644 index 00000000000..852f4f73d5b --- /dev/null +++ b/assets/js/996.a97ccabb.js @@ -0,0 +1,2 @@ +/*! For license information please see 996.a97ccabb.js.LICENSE.txt */ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[996],{20996:(e,_,t)=>{t.r(_),t.d(_,{conf:()=>s,language:()=>r});var s={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},r={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ALL","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","ASYMMETRIC","AUTHORIZATION","BINARY","BOTH","CASE","CAST","CHECK","COLLATE","COLLATION","COLUMN","CONCURRENTLY","CONSTRAINT","CREATE","CROSS","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","END","EXCEPT","FALSE","FETCH","FOR","FOREIGN","FREEZE","FROM","FULL","GRANT","GROUP","HAVING","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LATERAL","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","NATURAL","NOT","NOTNULL","NULL","OFFSET","ON","ONLY","OR","ORDER","OUTER","OVERLAPS","PLACING","PRIMARY","REFERENCES","RETURNING","RIGHT","SELECT","SESSION_USER","SIMILAR","SOME","SYMMETRIC","TABLE","TABLESAMPLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","USER","USING","VARIADIC","VERBOSE","WHEN","WHERE","WINDOW","WITH"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["abbrev","abs","acldefault","aclexplode","acos","acosd","acosh","age","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","ascii","asin","asind","asinh","atan","atan2","atan2d","atand","atanh","avg","bit","bit_and","bit_count","bit_length","bit_or","bit_xor","bool_and","bool_or","bound_box","box","brin_desummarize_range","brin_summarize_new_values","brin_summarize_range","broadcast","btrim","cardinality","cbrt","ceil","ceiling","center","char_length","character_length","chr","circle","clock_timestamp","coalesce","col_description","concat","concat_ws","convert","convert_from","convert_to","corr","cos","cosd","cosh","cot","cotd","count","covar_pop","covar_samp","cume_dist","current_catalog","current_database","current_date","current_query","current_role","current_schema","current_schemas","current_setting","current_time","current_timestamp","current_user","currval","cursor_to_xml","cursor_to_xmlschema","date_bin","date_part","date_trunc","database_to_xml","database_to_xml_and_xmlschema","database_to_xmlschema","decode","degrees","dense_rank","diagonal","diameter","div","encode","enum_first","enum_last","enum_range","every","exp","extract","factorial","family","first_value","floor","format","format_type","gcd","gen_random_uuid","generate_series","generate_subscripts","get_bit","get_byte","get_current_ts_config","gin_clean_pending_list","greatest","grouping","has_any_column_privilege","has_column_privilege","has_database_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_schema_privilege","has_sequence_privilege","has_server_privilege","has_table_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","initcap","isclosed","isempty","isfinite","isopen","json_agg","json_array_elements","json_array_elements_text","json_array_length","json_build_array","json_build_object","json_each","json_each_text","json_extract_path","json_extract_path_text","json_object","json_object_agg","json_object_keys","json_populate_record","json_populate_recordset","json_strip_nulls","json_to_record","json_to_recordset","json_to_tsvector","json_typeof","jsonb_agg","jsonb_array_elements","jsonb_array_elements_text","jsonb_array_length","jsonb_build_array","jsonb_build_object","jsonb_each","jsonb_each_text","jsonb_extract_path","jsonb_extract_path_text","jsonb_insert","jsonb_object","jsonb_object_agg","jsonb_object_keys","jsonb_path_exists","jsonb_path_match","jsonb_path_query","jsonb_path_query_array","jsonb_path_exists_tz","jsonb_path_query_first","jsonb_path_query_array_tz","jsonb_path_query_first_tz","jsonb_path_query_tz","jsonb_path_match_tz","jsonb_populate_record","jsonb_populate_recordset","jsonb_pretty","jsonb_set","jsonb_set_lax","jsonb_strip_nulls","jsonb_to_record","jsonb_to_recordset","jsonb_to_tsvector","jsonb_typeof","justify_days","justify_hours","justify_interval","lag","last_value","lastval","lcm","lead","least","left","length","line","ln","localtime","localtimestamp","log","log10","lower","lower_inc","lower_inf","lpad","lseg","ltrim","macaddr8_set7bit","make_date","make_interval","make_time","make_timestamp","make_timestamptz","makeaclitem","masklen","max","md5","min","min_scale","mod","mode","multirange","netmask","network","nextval","normalize","now","npoints","nth_value","ntile","nullif","num_nonnulls","num_nulls","numnode","obj_description","octet_length","overlay","parse_ident","path","pclose","percent_rank","percentile_cont","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backend_pid","pg_backup_start_time","pg_blocking_pids","pg_cancel_backend","pg_client_encoding","pg_collation_actual_version","pg_collation_is_visible","pg_column_compression","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_copy_logical_replication_slot","pg_copy_physical_replication_slot","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_logfile","pg_current_snapshot","pg_current_wal_flush_lsn","pg_current_wal_insert_lsn","pg_current_wal_lsn","pg_current_xact_id","pg_current_xact_id_if_assigned","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_event_trigger_ddl_commands","pg_event_trigger_dropped_objects","pg_event_trigger_table_rewrite_oid","pg_event_trigger_table_rewrite_reason","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_catalog_foreign_keys","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_statisticsobjdef","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_get_wal_replay_pause_state","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_import_system_collations","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_wal_replay_paused","pg_is_xlog_replay_paused","pg_jit_available","pg_last_committed_xact","pg_last_wal_receive_lsn","pg_last_wal_replay_lsn","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_log_backend_memory_contexts","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_archive_statusdir","pg_ls_dir","pg_ls_logdir","pg_ls_tmpdir","pg_ls_waldir","pg_mcv_list_items","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_partition_ancestors","pg_partition_root","pg_partition_tree","pg_postmaster_start_time","pg_promote","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_advance","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_replication_slot_advance","pg_rotate_logfile","pg_safe_snapshot_blocking_pids","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_snapshot_xip","pg_snapshot_xmax","pg_snapshot_xmin","pg_start_backup","pg_stat_file","pg_statistics_obj_is_visible","pg_stop_backup","pg_switch_wal","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_terminate_backend","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_visible_in_snapshot","pg_wal_lsn_diff","pg_wal_replay_pause","pg_wal_replay_resume","pg_walfile_name","pg_walfile_name_offset","pg_xact_commit_timestamp","pg_xact_commit_timestamp_origin","pg_xact_status","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","pi","plainto_tsquery","point","polygon","popen","position","power","pqserverversion","query_to_xml","query_to_xml_and_xmlschema","query_to_xmlschema","querytree","quote_ident","quote_literal","quote_nullable","radians","radius","random","range_agg","range_intersect_agg","range_merge","rank","regexp_match","regexp_matches","regexp_replace","regexp_split_to_array","regexp_split_to_table","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","repeat","replace","reverse","right","round","row_number","row_security_active","row_to_json","rpad","rtrim","scale","schema_to_xml","schema_to_xml_and_xmlschema","schema_to_xmlschema","session_user","set_bit","set_byte","set_config","set_masklen","setseed","setval","setweight","sha224","sha256","sha384","sha512","shobj_description","sign","sin","sind","sinh","slope","split_part","sprintf","sqrt","starts_with","statement_timestamp","stddev","stddev_pop","stddev_samp","string_agg","string_to_array","string_to_table","strip","strpos","substr","substring","sum","suppress_redundant_updates_trigger","table_to_xml","table_to_xml_and_xmlschema","table_to_xmlschema","tan","tand","tanh","text","timeofday","timezone","to_ascii","to_char","to_date","to_hex","to_json","to_number","to_regclass","to_regcollation","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_timestamp","to_tsquery","to_tsvector","transaction_timestamp","translate","trim","trim_array","trim_scale","trunc","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_if_assigned","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_status","txid_visible_in_snapshot","unistr","unnest","upper","upper_inc","upper_inf","user","var_pop","var_samp","variance","version","websearch_to_tsquery","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}}}}]); \ No newline at end of file diff --git a/assets/js/996.a97ccabb.js.LICENSE.txt b/assets/js/996.a97ccabb.js.LICENSE.txt new file mode 100644 index 00000000000..2229fce0e0f --- /dev/null +++ b/assets/js/996.a97ccabb.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ diff --git a/assets/js/996.b4571109.js b/assets/js/996.b4571109.js new file mode 100644 index 00000000000..32425f2a7ff --- /dev/null +++ b/assets/js/996.b4571109.js @@ -0,0 +1,862 @@ +"use strict"; +exports.id = 996; +exports.ids = [996]; +exports.modules = { + +/***/ 20996: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "conf": () => (/* binding */ conf), +/* harmony export */ "language": () => (/* binding */ language) +/* harmony export */ }); +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.34.0(9d278685b078158491964f8fd7ac9628fffa0f30) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ + +// src/basic-languages/pgsql/pgsql.ts +var conf = { + comments: { + lineComment: "--", + blockComment: ["/*", "*/"] + }, + brackets: [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + autoClosingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ], + surroundingPairs: [ + { open: "{", close: "}" }, + { open: "[", close: "]" }, + { open: "(", close: ")" }, + { open: '"', close: '"' }, + { open: "'", close: "'" } + ] +}; +var language = { + defaultToken: "", + tokenPostfix: ".sql", + ignoreCase: true, + brackets: [ + { open: "[", close: "]", token: "delimiter.square" }, + { open: "(", close: ")", token: "delimiter.parenthesis" } + ], + keywords: [ + "ALL", + "ANALYSE", + "ANALYZE", + "AND", + "ANY", + "ARRAY", + "AS", + "ASC", + "ASYMMETRIC", + "AUTHORIZATION", + "BINARY", + "BOTH", + "CASE", + "CAST", + "CHECK", + "COLLATE", + "COLLATION", + "COLUMN", + "CONCURRENTLY", + "CONSTRAINT", + "CREATE", + "CROSS", + "CURRENT_CATALOG", + "CURRENT_DATE", + "CURRENT_ROLE", + "CURRENT_SCHEMA", + "CURRENT_TIME", + "CURRENT_TIMESTAMP", + "CURRENT_USER", + "DEFAULT", + "DEFERRABLE", + "DESC", + "DISTINCT", + "DO", + "ELSE", + "END", + "EXCEPT", + "FALSE", + "FETCH", + "FOR", + "FOREIGN", + "FREEZE", + "FROM", + "FULL", + "GRANT", + "GROUP", + "HAVING", + "ILIKE", + "IN", + "INITIALLY", + "INNER", + "INTERSECT", + "INTO", + "IS", + "ISNULL", + "JOIN", + "LATERAL", + "LEADING", + "LEFT", + "LIKE", + "LIMIT", + "LOCALTIME", + "LOCALTIMESTAMP", + "NATURAL", + "NOT", + "NOTNULL", + "NULL", + "OFFSET", + "ON", + "ONLY", + "OR", + "ORDER", + "OUTER", + "OVERLAPS", + "PLACING", + "PRIMARY", + "REFERENCES", + "RETURNING", + "RIGHT", + "SELECT", + "SESSION_USER", + "SIMILAR", + "SOME", + "SYMMETRIC", + "TABLE", + "TABLESAMPLE", + "THEN", + "TO", + "TRAILING", + "TRUE", + "UNION", + "UNIQUE", + "USER", + "USING", + "VARIADIC", + "VERBOSE", + "WHEN", + "WHERE", + "WINDOW", + "WITH" + ], + operators: [ + "AND", + "BETWEEN", + "IN", + "LIKE", + "NOT", + "OR", + "IS", + "NULL", + "INTERSECT", + "UNION", + "INNER", + "JOIN", + "LEFT", + "OUTER", + "RIGHT" + ], + builtinFunctions: [ + "abbrev", + "abs", + "acldefault", + "aclexplode", + "acos", + "acosd", + "acosh", + "age", + "any", + "area", + "array_agg", + "array_append", + "array_cat", + "array_dims", + "array_fill", + "array_length", + "array_lower", + "array_ndims", + "array_position", + "array_positions", + "array_prepend", + "array_remove", + "array_replace", + "array_to_json", + "array_to_string", + "array_to_tsvector", + "array_upper", + "ascii", + "asin", + "asind", + "asinh", + "atan", + "atan2", + "atan2d", + "atand", + "atanh", + "avg", + "bit", + "bit_and", + "bit_count", + "bit_length", + "bit_or", + "bit_xor", + "bool_and", + "bool_or", + "bound_box", + "box", + "brin_desummarize_range", + "brin_summarize_new_values", + "brin_summarize_range", + "broadcast", + "btrim", + "cardinality", + "cbrt", + "ceil", + "ceiling", + "center", + "char_length", + "character_length", + "chr", + "circle", + "clock_timestamp", + "coalesce", + "col_description", + "concat", + "concat_ws", + "convert", + "convert_from", + "convert_to", + "corr", + "cos", + "cosd", + "cosh", + "cot", + "cotd", + "count", + "covar_pop", + "covar_samp", + "cume_dist", + "current_catalog", + "current_database", + "current_date", + "current_query", + "current_role", + "current_schema", + "current_schemas", + "current_setting", + "current_time", + "current_timestamp", + "current_user", + "currval", + "cursor_to_xml", + "cursor_to_xmlschema", + "date_bin", + "date_part", + "date_trunc", + "database_to_xml", + "database_to_xml_and_xmlschema", + "database_to_xmlschema", + "decode", + "degrees", + "dense_rank", + "diagonal", + "diameter", + "div", + "encode", + "enum_first", + "enum_last", + "enum_range", + "every", + "exp", + "extract", + "factorial", + "family", + "first_value", + "floor", + "format", + "format_type", + "gcd", + "gen_random_uuid", + "generate_series", + "generate_subscripts", + "get_bit", + "get_byte", + "get_current_ts_config", + "gin_clean_pending_list", + "greatest", + "grouping", + "has_any_column_privilege", + "has_column_privilege", + "has_database_privilege", + "has_foreign_data_wrapper_privilege", + "has_function_privilege", + "has_language_privilege", + "has_schema_privilege", + "has_sequence_privilege", + "has_server_privilege", + "has_table_privilege", + "has_tablespace_privilege", + "has_type_privilege", + "height", + "host", + "hostmask", + "inet_client_addr", + "inet_client_port", + "inet_merge", + "inet_same_family", + "inet_server_addr", + "inet_server_port", + "initcap", + "isclosed", + "isempty", + "isfinite", + "isopen", + "json_agg", + "json_array_elements", + "json_array_elements_text", + "json_array_length", + "json_build_array", + "json_build_object", + "json_each", + "json_each_text", + "json_extract_path", + "json_extract_path_text", + "json_object", + "json_object_agg", + "json_object_keys", + "json_populate_record", + "json_populate_recordset", + "json_strip_nulls", + "json_to_record", + "json_to_recordset", + "json_to_tsvector", + "json_typeof", + "jsonb_agg", + "jsonb_array_elements", + "jsonb_array_elements_text", + "jsonb_array_length", + "jsonb_build_array", + "jsonb_build_object", + "jsonb_each", + "jsonb_each_text", + "jsonb_extract_path", + "jsonb_extract_path_text", + "jsonb_insert", + "jsonb_object", + "jsonb_object_agg", + "jsonb_object_keys", + "jsonb_path_exists", + "jsonb_path_match", + "jsonb_path_query", + "jsonb_path_query_array", + "jsonb_path_exists_tz", + "jsonb_path_query_first", + "jsonb_path_query_array_tz", + "jsonb_path_query_first_tz", + "jsonb_path_query_tz", + "jsonb_path_match_tz", + "jsonb_populate_record", + "jsonb_populate_recordset", + "jsonb_pretty", + "jsonb_set", + "jsonb_set_lax", + "jsonb_strip_nulls", + "jsonb_to_record", + "jsonb_to_recordset", + "jsonb_to_tsvector", + "jsonb_typeof", + "justify_days", + "justify_hours", + "justify_interval", + "lag", + "last_value", + "lastval", + "lcm", + "lead", + "least", + "left", + "length", + "line", + "ln", + "localtime", + "localtimestamp", + "log", + "log10", + "lower", + "lower_inc", + "lower_inf", + "lpad", + "lseg", + "ltrim", + "macaddr8_set7bit", + "make_date", + "make_interval", + "make_time", + "make_timestamp", + "make_timestamptz", + "makeaclitem", + "masklen", + "max", + "md5", + "min", + "min_scale", + "mod", + "mode", + "multirange", + "netmask", + "network", + "nextval", + "normalize", + "now", + "npoints", + "nth_value", + "ntile", + "nullif", + "num_nonnulls", + "num_nulls", + "numnode", + "obj_description", + "octet_length", + "overlay", + "parse_ident", + "path", + "pclose", + "percent_rank", + "percentile_cont", + "percentile_disc", + "pg_advisory_lock", + "pg_advisory_lock_shared", + "pg_advisory_unlock", + "pg_advisory_unlock_all", + "pg_advisory_unlock_shared", + "pg_advisory_xact_lock", + "pg_advisory_xact_lock_shared", + "pg_backend_pid", + "pg_backup_start_time", + "pg_blocking_pids", + "pg_cancel_backend", + "pg_client_encoding", + "pg_collation_actual_version", + "pg_collation_is_visible", + "pg_column_compression", + "pg_column_size", + "pg_conf_load_time", + "pg_control_checkpoint", + "pg_control_init", + "pg_control_recovery", + "pg_control_system", + "pg_conversion_is_visible", + "pg_copy_logical_replication_slot", + "pg_copy_physical_replication_slot", + "pg_create_logical_replication_slot", + "pg_create_physical_replication_slot", + "pg_create_restore_point", + "pg_current_logfile", + "pg_current_snapshot", + "pg_current_wal_flush_lsn", + "pg_current_wal_insert_lsn", + "pg_current_wal_lsn", + "pg_current_xact_id", + "pg_current_xact_id_if_assigned", + "pg_current_xlog_flush_location", + "pg_current_xlog_insert_location", + "pg_current_xlog_location", + "pg_database_size", + "pg_describe_object", + "pg_drop_replication_slot", + "pg_event_trigger_ddl_commands", + "pg_event_trigger_dropped_objects", + "pg_event_trigger_table_rewrite_oid", + "pg_event_trigger_table_rewrite_reason", + "pg_export_snapshot", + "pg_filenode_relation", + "pg_function_is_visible", + "pg_get_catalog_foreign_keys", + "pg_get_constraintdef", + "pg_get_expr", + "pg_get_function_arguments", + "pg_get_function_identity_arguments", + "pg_get_function_result", + "pg_get_functiondef", + "pg_get_indexdef", + "pg_get_keywords", + "pg_get_object_address", + "pg_get_owned_sequence", + "pg_get_ruledef", + "pg_get_serial_sequence", + "pg_get_statisticsobjdef", + "pg_get_triggerdef", + "pg_get_userbyid", + "pg_get_viewdef", + "pg_get_wal_replay_pause_state", + "pg_has_role", + "pg_identify_object", + "pg_identify_object_as_address", + "pg_import_system_collations", + "pg_index_column_has_property", + "pg_index_has_property", + "pg_indexam_has_property", + "pg_indexes_size", + "pg_is_in_backup", + "pg_is_in_recovery", + "pg_is_other_temp_schema", + "pg_is_wal_replay_paused", + "pg_is_xlog_replay_paused", + "pg_jit_available", + "pg_last_committed_xact", + "pg_last_wal_receive_lsn", + "pg_last_wal_replay_lsn", + "pg_last_xact_replay_timestamp", + "pg_last_xlog_receive_location", + "pg_last_xlog_replay_location", + "pg_listening_channels", + "pg_log_backend_memory_contexts", + "pg_logical_emit_message", + "pg_logical_slot_get_binary_changes", + "pg_logical_slot_get_changes", + "pg_logical_slot_peek_binary_changes", + "pg_logical_slot_peek_changes", + "pg_ls_archive_statusdir", + "pg_ls_dir", + "pg_ls_logdir", + "pg_ls_tmpdir", + "pg_ls_waldir", + "pg_mcv_list_items", + "pg_my_temp_schema", + "pg_notification_queue_usage", + "pg_opclass_is_visible", + "pg_operator_is_visible", + "pg_opfamily_is_visible", + "pg_options_to_table", + "pg_partition_ancestors", + "pg_partition_root", + "pg_partition_tree", + "pg_postmaster_start_time", + "pg_promote", + "pg_read_binary_file", + "pg_read_file", + "pg_relation_filenode", + "pg_relation_filepath", + "pg_relation_size", + "pg_reload_conf", + "pg_replication_origin_advance", + "pg_replication_origin_create", + "pg_replication_origin_drop", + "pg_replication_origin_oid", + "pg_replication_origin_progress", + "pg_replication_origin_session_is_setup", + "pg_replication_origin_session_progress", + "pg_replication_origin_session_reset", + "pg_replication_origin_session_setup", + "pg_replication_origin_xact_reset", + "pg_replication_origin_xact_setup", + "pg_replication_slot_advance", + "pg_rotate_logfile", + "pg_safe_snapshot_blocking_pids", + "pg_size_bytes", + "pg_size_pretty", + "pg_sleep", + "pg_sleep_for", + "pg_sleep_until", + "pg_snapshot_xip", + "pg_snapshot_xmax", + "pg_snapshot_xmin", + "pg_start_backup", + "pg_stat_file", + "pg_statistics_obj_is_visible", + "pg_stop_backup", + "pg_switch_wal", + "pg_switch_xlog", + "pg_table_is_visible", + "pg_table_size", + "pg_tablespace_databases", + "pg_tablespace_location", + "pg_tablespace_size", + "pg_terminate_backend", + "pg_total_relation_size", + "pg_trigger_depth", + "pg_try_advisory_lock", + "pg_try_advisory_lock_shared", + "pg_try_advisory_xact_lock", + "pg_try_advisory_xact_lock_shared", + "pg_ts_config_is_visible", + "pg_ts_dict_is_visible", + "pg_ts_parser_is_visible", + "pg_ts_template_is_visible", + "pg_type_is_visible", + "pg_typeof", + "pg_visible_in_snapshot", + "pg_wal_lsn_diff", + "pg_wal_replay_pause", + "pg_wal_replay_resume", + "pg_walfile_name", + "pg_walfile_name_offset", + "pg_xact_commit_timestamp", + "pg_xact_commit_timestamp_origin", + "pg_xact_status", + "pg_xlog_location_diff", + "pg_xlog_replay_pause", + "pg_xlog_replay_resume", + "pg_xlogfile_name", + "pg_xlogfile_name_offset", + "phraseto_tsquery", + "pi", + "plainto_tsquery", + "point", + "polygon", + "popen", + "position", + "power", + "pqserverversion", + "query_to_xml", + "query_to_xml_and_xmlschema", + "query_to_xmlschema", + "querytree", + "quote_ident", + "quote_literal", + "quote_nullable", + "radians", + "radius", + "random", + "range_agg", + "range_intersect_agg", + "range_merge", + "rank", + "regexp_match", + "regexp_matches", + "regexp_replace", + "regexp_split_to_array", + "regexp_split_to_table", + "regr_avgx", + "regr_avgy", + "regr_count", + "regr_intercept", + "regr_r2", + "regr_slope", + "regr_sxx", + "regr_sxy", + "regr_syy", + "repeat", + "replace", + "reverse", + "right", + "round", + "row_number", + "row_security_active", + "row_to_json", + "rpad", + "rtrim", + "scale", + "schema_to_xml", + "schema_to_xml_and_xmlschema", + "schema_to_xmlschema", + "session_user", + "set_bit", + "set_byte", + "set_config", + "set_masklen", + "setseed", + "setval", + "setweight", + "sha224", + "sha256", + "sha384", + "sha512", + "shobj_description", + "sign", + "sin", + "sind", + "sinh", + "slope", + "split_part", + "sprintf", + "sqrt", + "starts_with", + "statement_timestamp", + "stddev", + "stddev_pop", + "stddev_samp", + "string_agg", + "string_to_array", + "string_to_table", + "strip", + "strpos", + "substr", + "substring", + "sum", + "suppress_redundant_updates_trigger", + "table_to_xml", + "table_to_xml_and_xmlschema", + "table_to_xmlschema", + "tan", + "tand", + "tanh", + "text", + "timeofday", + "timezone", + "to_ascii", + "to_char", + "to_date", + "to_hex", + "to_json", + "to_number", + "to_regclass", + "to_regcollation", + "to_regnamespace", + "to_regoper", + "to_regoperator", + "to_regproc", + "to_regprocedure", + "to_regrole", + "to_regtype", + "to_timestamp", + "to_tsquery", + "to_tsvector", + "transaction_timestamp", + "translate", + "trim", + "trim_array", + "trim_scale", + "trunc", + "ts_debug", + "ts_delete", + "ts_filter", + "ts_headline", + "ts_lexize", + "ts_parse", + "ts_rank", + "ts_rank_cd", + "ts_rewrite", + "ts_stat", + "ts_token_type", + "tsquery_phrase", + "tsvector_to_array", + "tsvector_update_trigger", + "tsvector_update_trigger_column", + "txid_current", + "txid_current_if_assigned", + "txid_current_snapshot", + "txid_snapshot_xip", + "txid_snapshot_xmax", + "txid_snapshot_xmin", + "txid_status", + "txid_visible_in_snapshot", + "unistr", + "unnest", + "upper", + "upper_inc", + "upper_inf", + "user", + "var_pop", + "var_samp", + "variance", + "version", + "websearch_to_tsquery", + "width", + "width_bucket", + "xml_is_well_formed", + "xml_is_well_formed_content", + "xml_is_well_formed_document", + "xmlagg", + "xmlcomment", + "xmlconcat", + "xmlelement", + "xmlexists", + "xmlforest", + "xmlparse", + "xmlpi", + "xmlroot", + "xmlserialize", + "xpath", + "xpath_exists" + ], + builtinVariables: [], + pseudoColumns: [], + tokenizer: { + root: [ + { include: "@comments" }, + { include: "@whitespace" }, + { include: "@pseudoColumns" }, + { include: "@numbers" }, + { include: "@strings" }, + { include: "@complexIdentifiers" }, + { include: "@scopes" }, + [/[;,.]/, "delimiter"], + [/[()]/, "@brackets"], + [ + /[\w@#$]+/, + { + cases: { + "@operators": "operator", + "@builtinVariables": "predefined", + "@builtinFunctions": "predefined", + "@keywords": "keyword", + "@default": "identifier" + } + } + ], + [/[<>=!%&+\-*/|~^]/, "operator"] + ], + whitespace: [[/\s+/, "white"]], + comments: [ + [/--+.*/, "comment"], + [/\/\*/, { token: "comment.quote", next: "@comment" }] + ], + comment: [ + [/[^*/]+/, "comment"], + [/\*\//, { token: "comment.quote", next: "@pop" }], + [/./, "comment"] + ], + pseudoColumns: [ + [ + /[$][A-Za-z_][\w@#$]*/, + { + cases: { + "@pseudoColumns": "predefined", + "@default": "identifier" + } + } + ] + ], + numbers: [ + [/0[xX][0-9a-fA-F]*/, "number"], + [/[$][+-]*\d*(\.\d*)?/, "number"], + [/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/, "number"] + ], + strings: [[/'/, { token: "string", next: "@string" }]], + string: [ + [/[^']+/, "string"], + [/''/, "string"], + [/'/, { token: "string", next: "@pop" }] + ], + complexIdentifiers: [[/"/, { token: "identifier.quote", next: "@quotedIdentifier" }]], + quotedIdentifier: [ + [/[^"]+/, "identifier"], + [/""/, "identifier"], + [/"/, { token: "identifier.quote", next: "@pop" }] + ], + scopes: [] + } +}; + + + +/***/ }) + +}; +; \ No newline at end of file diff --git a/assets/js/9963.4a87e5a1.js b/assets/js/9963.4a87e5a1.js new file mode 100644 index 00000000000..4c619e7e884 --- /dev/null +++ b/assets/js/9963.4a87e5a1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9963,4972],{19963:(e,t,a)=>{a.r(t),a.d(t,{default:()=>Se});var n=a(67294),l=a(86010),r=a(10833),o=a(35281),i=a(43320),c=a(53438),s=a(74477),d=a(1116),m=a(89007),u=a(95999),b=a(12466),p=a(85936);const h="backToTopButton_sjWU",f="backToTopButtonShow_xfvO";function E(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[a,l]=(0,n.useState)(!1),r=(0,n.useRef)(!1),{startScroll:o,cancelScroll:i}=(0,b.Ct)();return(0,b.RF)(((e,a)=>{let{scrollY:n}=e;const o=null==a?void 0:a.scrollY;o&&(r.current?r.current=!1:n>=o?(i(),l(!1)):n<t?l(!1):n+window.innerHeight<document.documentElement.scrollHeight&&l(!0))})),(0,p.S)((e=>{e.location.hash&&(r.current=!0,l(!1))})),{shown:a,scrollToTop:()=>o(0)}}({threshold:300});return n.createElement("button",{"aria-label":(0,u.translate)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.default)("clean-btn",o.k.common.backToTopButton,h,e&&f),type:"button",onClick:t})}var g=a(91442),v=a(76775),_=a(87524),k=a(86668),C=a(21327),S=a(87462);function N(e){return n.createElement("svg",(0,S.Z)({width:"20",height:"20","aria-hidden":"true"},e),n.createElement("g",{fill:"#7a7a7a"},n.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),n.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const I="collapseSidebarButton_PEFL",T="collapseSidebarButtonIcon_kv0_";function y(e){let{onClick:t}=e;return n.createElement("button",{type:"button",title:(0,u.translate)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.translate)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.default)("button button--secondary button--outline",I),onClick:t},n.createElement(N,{className:T}))}var w=a(59689),x=a(902);const L=Symbol("EmptyContext"),A=n.createContext(L);function M(e){let{children:t}=e;const[a,l]=(0,n.useState)(null),r=(0,n.useMemo)((()=>({expandedItem:a,setExpandedItem:l})),[a]);return n.createElement(A.Provider,{value:r},t)}var B=a(86043),F=a(48596),H=a(39960),P=a(72389);function Z(e){let{categoryLabel:t,onClick:a}=e;return n.createElement("button",{"aria-label":(0,u.translate)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:a})}function W(e){let{item:t,onItemClick:a,activePath:r,level:i,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,k.L)(),E=function(e){const t=(0,P.default)();return(0,n.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,c.Wl)(e):void 0),[e,t])}(t),g=(0,c._F)(t,r),v=(0,F.Mg)(h,r),{collapsed:_,setCollapsed:C}=(0,B.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:N,setExpandedItem:I}=function(){const e=(0,n.useContext)(A);if(e===L)throw new x.i6("DocSidebarItemsExpandedStateProvider");return e}(),T=function(e){void 0===e&&(e=!_),I(e?null:s),C(e)};return function(e){let{isActive:t,collapsed:a,updateCollapsed:l}=e;const r=(0,x.D9)(t);(0,n.useEffect)((()=>{t&&!r&&a&&l(!1)}),[t,r,a,l])}({isActive:g,collapsed:_,updateCollapsed:T}),(0,n.useEffect)((()=>{b&&null!=N&&N!==s&&f&&C(!0)}),[b,N,s,C,f]),n.createElement("li",{className:(0,l.default)(o.k.docs.docSidebarItemCategory,o.k.docs.docSidebarItemCategoryLevel(i),"menu__list-item",{"menu__list-item--collapsed":_},p)},n.createElement("div",{className:(0,l.default)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v})},n.createElement(H.default,(0,S.Z)({className:(0,l.default)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{null==a||a(t),h?T(!1):(e.preventDefault(),T())}:()=>{null==a||a(t)},"aria-current":v?"page":void 0,"aria-expanded":b?!_:void 0,href:b?null!=E?E:"#":E},d),u),h&&b&&n.createElement(Z,{categoryLabel:u,onClick:e=>{e.preventDefault(),T()}})),n.createElement(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:_},n.createElement(Y,{items:m,tabIndex:_?-1:0,onItemClick:a,activePath:r,level:i+1})))}var D=a(13919),R=a(39471);const V="menuExternalLink_NmtK";function z(e){let{item:t,onItemClick:a,activePath:r,level:i,index:s,...d}=e;const{href:m,label:u,className:b,autoAddBaseUrl:p}=t,h=(0,c._F)(t,r),f=(0,D.Z)(m);return n.createElement("li",{className:(0,l.default)(o.k.docs.docSidebarItemLink,o.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",b),key:u},n.createElement(H.default,(0,S.Z)({className:(0,l.default)("menu__link",!f&&V,{"menu__link--active":h}),autoAddBaseUrl:p,"aria-current":h?"page":void 0,to:m},f&&{onClick:a?()=>a(t):void 0},d),u,!f&&n.createElement(R.Z,null)))}const U="menuHtmlItem_M9Kj";function K(e){let{item:t,level:a,index:r}=e;const{value:i,defaultStyle:c,className:s}=t;return n.createElement("li",{className:(0,l.default)(o.k.docs.docSidebarItemLink,o.k.docs.docSidebarItemLinkLevel(a),c&&[U,"menu__list-item"],s),key:r,dangerouslySetInnerHTML:{__html:i}})}function j(e){let{item:t,...a}=e;switch(t.type){case"category":return n.createElement(W,(0,S.Z)({item:t},a));case"html":return n.createElement(K,(0,S.Z)({item:t},a));default:return n.createElement(z,(0,S.Z)({item:t},a))}}function G(e){let{items:t,...a}=e;return n.createElement(M,null,t.map(((e,t)=>n.createElement(j,(0,S.Z)({key:t,item:e,index:t},a)))))}const Y=(0,n.memo)(G),q="menu_SIkG",O="menuWithAnnouncementBar_GW3s";function X(e){let{path:t,sidebar:a,className:r}=e;const i=function(){const{isActive:e}=(0,w.nT)(),[t,a]=(0,n.useState)(e);return(0,b.RF)((t=>{let{scrollY:n}=t;e&&a(0===n)}),[e]),e&&t}();return n.createElement("nav",{"aria-label":(0,u.translate)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,l.default)("menu thin-scrollbar",q,i&&O,r)},n.createElement("ul",{className:(0,l.default)(o.k.docs.docSidebarMenu,"menu__list")},n.createElement(Y,{items:a,activePath:t,level:1})))}const J="sidebar_njMd",Q="sidebarWithHideableNavbar_wUlq",$="sidebarHidden_VK0M",ee="sidebarLogo_isFc";function te(e){let{path:t,sidebar:a,onCollapse:r,isHidden:o}=e;const{navbar:{hideOnScroll:i},docs:{sidebar:{hideable:c}}}=(0,k.L)();return n.createElement("div",{className:(0,l.default)(J,i&&Q,o&&$)},i&&n.createElement(C.Z,{tabIndex:-1,className:ee}),n.createElement(X,{path:t,sidebar:a}),c&&n.createElement(y,{onClick:r}))}const ae=n.memo(te);var ne=a(13102),le=a(93163);const re=e=>{let{sidebar:t,path:a}=e;const r=(0,le.e)();return n.createElement("ul",{className:(0,l.default)(o.k.docs.docSidebarMenu,"menu__list")},n.createElement(Y,{items:t,activePath:a,onItemClick:e=>{"category"===e.type&&e.href&&r.toggle(),"link"===e.type&&r.toggle()},level:1}))};function oe(e){return n.createElement(ne.Zo,{component:re,props:e})}const ie=n.memo(oe);function ce(e){const t=(0,_.i)(),a="desktop"===t||"ssr"===t,l="mobile"===t;return n.createElement(n.Fragment,null,a&&n.createElement(ae,e),l&&n.createElement(ie,e))}const se="expandButton_m80_",de="expandButtonIcon_BlDH";function me(e){let{toggleSidebar:t}=e;return n.createElement("div",{className:se,title:(0,u.translate)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.translate)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},n.createElement(N,{className:de}))}const ue={docSidebarContainer:"docSidebarContainer_b6E3",docSidebarContainerHidden:"docSidebarContainerHidden_b3ry",sidebarViewport:"sidebarViewport_Xe31"};function be(e){var t;let{children:a}=e;const l=(0,d.V)();return n.createElement(n.Fragment,{key:null!=(t=null==l?void 0:l.name)?t:"noSidebar"},a)}function pe(e){let{sidebar:t,hiddenSidebarContainer:a,setHiddenSidebarContainer:r}=e;const{pathname:i}=(0,v.TH)(),[c,s]=(0,n.useState)(!1),d=(0,n.useCallback)((()=>{c&&s(!1),!c&&(0,g.n)()&&s(!0),r((e=>!e))}),[r,c]);return n.createElement("aside",{className:(0,l.default)(o.k.docs.docSidebarContainer,ue.docSidebarContainer,a&&ue.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ue.docSidebarContainer)&&a&&s(!0)}},n.createElement(be,null,n.createElement("div",{className:(0,l.default)(ue.sidebarViewport,c&&ue.sidebarViewportHidden)},n.createElement(ce,{sidebar:t,path:i,onCollapse:d,isHidden:c}),c&&n.createElement(me,{toggleSidebar:d}))))}const he={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function fe(e){let{hiddenSidebarContainer:t,children:a}=e;const r=(0,d.V)();return n.createElement("main",{className:(0,l.default)(he.docMainContainer,(t||!r)&&he.docMainContainerEnhanced)},n.createElement("div",{className:(0,l.default)("container padding-top--md padding-bottom--lg",he.docItemWrapper,t&&he.docItemWrapperEnhanced)},a))}const Ee="docPage__5DB",ge="docsWrapper_BCFX";function ve(e){let{children:t}=e;const a=(0,d.V)(),[l,r]=(0,n.useState)(!1);return n.createElement(m.Z,{wrapperClassName:ge},n.createElement(E,null),n.createElement("div",{className:Ee},a&&n.createElement(pe,{sidebar:a.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:r}),n.createElement(fe,{hiddenSidebarContainer:l},t)))}var _e=a(4972),ke=a(90197);function Ce(e){const{versionMetadata:t}=e;return n.createElement(n.Fragment,null,n.createElement(ke.Z,{version:t.version,tag:(0,i.os)(t.pluginId,t.version)}),n.createElement(r.d,null,t.noIndex&&n.createElement("meta",{name:"robots",content:"noindex, nofollow"})))}function Se(e){const{versionMetadata:t}=e,a=(0,c.hI)(e);if(!a)return n.createElement(_e.default,null);const{docElement:i,sidebarName:m,sidebarItems:u}=a;return n.createElement(n.Fragment,null,n.createElement(Ce,e),n.createElement(r.FG,{className:(0,l.default)(o.k.wrapper.docsPages,o.k.page.docsDocPage,e.versionMetadata.className)},n.createElement(s.q,{version:t},n.createElement(d.b,{name:m,items:u},n.createElement(ve,null,i)))))}},4972:(e,t,a)=>{a.r(t),a.d(t,{default:()=>i});var n=a(67294),l=a(95999),r=a(10833),o=a(89007);function i(){return n.createElement(n.Fragment,null,n.createElement(r.d,{title:(0,l.translate)({id:"theme.NotFound.title",message:"Page Not Found"})}),n.createElement(o.Z,null,n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(l.default,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(l.default,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(l.default,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/9993.dfbc0bca.js b/assets/js/9993.dfbc0bca.js new file mode 100644 index 00000000000..96956e7cea1 --- /dev/null +++ b/assets/js/9993.dfbc0bca.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[9993],{89993:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>s});var a=t(87462),i=(t(67294),t(3905));t(45475);const o={title:"Conditional Types",slug:"/types/conditional"},l=void 0,r={unversionedId:"types/conditional",id:"types/conditional",title:"Conditional Types",description:"Flow's conditional type allows you to conditionally choose between two different output types by inspecting an input type. It is useful to extract parts of a type, or to describe a complex overload.",source:"@site/docs/types/conditional.md",sourceDirName:"types",slug:"/types/conditional",permalink:"/en/docs/types/conditional",draft:!1,editUrl:"https://github.com/facebook/flow/edit/main/website/docs/types/conditional.md",tags:[],version:"current",frontMatter:{title:"Conditional Types",slug:"/types/conditional"},sidebar:"docsSidebar",previous:{title:"Indexed Access Types",permalink:"/en/docs/types/indexed-access"},next:{title:"Mapped Types",permalink:"/en/docs/types/mapped-types"}},p={},s=[{value:"Basic Usage",id:"toc-basic-usage",level:2},{value:"Generic Conditional Types",id:"toc-generic-conditional-types",level:2},{value:"Function return types dependent on input types",id:"toc-dependent-function-return",level:2},{value:"Inferring Within Conditional Types",id:"toc-infer-type",level:2},{value:"Distributive Conditional Types",id:"toc-distributive-conditional-type",level:2},{value:"Adoption",id:"toc-adoption",level:2}],d={toc:s};function u(e){let{components:n,...t}=e;return(0,i.mdx)("wrapper",(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,i.mdx)("p",null,"Flow's conditional type allows you to conditionally choose between two different output types by inspecting an input type. It is useful to extract parts of a type, or to describe a complex overload."),(0,i.mdx)("h2",{id:"toc-basic-usage"},"Basic Usage"),(0,i.mdx)("p",null,"It has a syntax that is similar to conditional expressions: ",(0,i.mdx)("inlineCode",{parentName:"p"},"CheckType extends ExtendsType ? TrueType : FalseType"),"."),(0,i.mdx)("p",null,"If ",(0,i.mdx)("inlineCode",{parentName:"p"},"CheckType")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"ExtendsType"),", the conditional type will be evaluated to ",(0,i.mdx)("inlineCode",{parentName:"p"},"TrueType"),". Otherwise, it will be evaluated to ",(0,i.mdx)("inlineCode",{parentName:"p"},"FalseType"),"."),(0,i.mdx)("p",null,"The following example illustrates both cases."),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"class Animal {}\nclass Dog extends Animal {}\n\ntype TypeofAnimal = Dog extends Animal ? 'animal' : 'unknown'; // evaluates to 'animal'\ntype TypeofString = string extends Animal ? 'animal' : 'unknown'; // evaluates to 'unknown'\n")),(0,i.mdx)("h2",{id:"toc-generic-conditional-types"},"Generic Conditional Types"),(0,i.mdx)("p",null,"This might not look very useful, since you already know what type it will evaluate to. However, combining with generics, you can perform complex computations over types. For example, you can write down a type-level ",(0,i.mdx)("inlineCode",{parentName:"p"},"typeof")," operator:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type TypeOf<T> =\n T extends null ? 'null' :\n T extends void ? 'undefined' :\n T extends string ? 'string' :\n T extends number ? 'number' :\n T extends boolean ? 'boolean' :\n T extends (...$ReadOnlyArray<empty>)=>mixed ? 'function' : 'object'\n\ntype T1 = TypeOf<null>; // evaluates to 'null'\ntype T2 = TypeOf<void>; // evaluates to 'undefined'\ntype T3 = TypeOf<string>; // evaluates to 'string'\ntype T4 = TypeOf<number>; // evaluates to 'number'\ntype T5 = TypeOf<boolean>; // evaluates to 'boolean'\ntype T6 = TypeOf<(string)=>boolean>; // evaluates to 'function'\ntype T7 = TypeOf<{foo: string}>; // evaluates to 'object'\n")),(0,i.mdx)("h2",{id:"toc-dependent-function-return"},"Function return types dependent on input types"),(0,i.mdx)("p",null,"Conditional types also allow you to intuitively describe the conditions for choosing different function overloads:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare function wrap<T>(value: T): T extends string ? { type: 'string', value: string }\n : T extends number ? { type: 'number', value: number }\n : { type: 'unsupported' }\n\nconst v1 = wrap(3); // has type { type: 'number', value: number }\nconst v2 = wrap('4'); // has type { type: 'string', value: string }\nconst v3 = wrap({}); // has type { type: 'unsupported' }\n")),(0,i.mdx)("p",null,"The above example can also be written with function overload:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"declare function wrap(value: string): { type: 'string', value: string }\ndeclare function wrap(value: number): { type: 'number', value: number }\ndeclare function wrap(value: mixed): { type: 'unsupported' }\n\nconst v1 = wrap(3); // has type { type: 'number', value: number }\nconst v2 = wrap('4'); // has type { type: 'string', value: string }\nconst v3 = wrap({}); // has type { type: 'unsupported' }\n")),(0,i.mdx)("h2",{id:"toc-infer-type"},"Inferring Within Conditional Types"),(0,i.mdx)("p",null,"You can use the power of conditional types to extract parts of a type using ",(0,i.mdx)("inlineCode",{parentName:"p"},"infer")," types. For example, the builtin ",(0,i.mdx)("inlineCode",{parentName:"p"},"ReturnType")," is powered by conditional types:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ReturnType<T> = T extends (...args: $ReadOnlyArray<empty>) => infer Return ? Return : empty;\n\ntype N = ReturnType<(string) => number>; // evaluates to `number`\ntype S = ReturnType<(number) => string>; // evaluates to `string`\n")),(0,i.mdx)("p",null,"We used the infer type here to introduce a new generic type variable named ",(0,i.mdx)("inlineCode",{parentName:"p"},"Return"),", which can be used in the type branch of the conditional type. Infer types can only appear on the right hand side of the ",(0,i.mdx)("inlineCode",{parentName:"p"},"extends")," clause in conditional types. Flow will perform a subtyping check between the check type and the extends type to automatically figure out its type based on the input type ",(0,i.mdx)("inlineCode",{parentName:"p"},"T"),"."),(0,i.mdx)("p",null,"In the example of ",(0,i.mdx)("inlineCode",{parentName:"p"},"type N = ReturnType<(string) => number>"),", Flow checks if ",(0,i.mdx)("inlineCode",{parentName:"p"},"(string) => number")," is a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"(...args: $ReadOnlyArray<empty>) => infer Return"),", and during this process ",(0,i.mdx)("inlineCode",{parentName:"p"},"Return")," is constrained to ",(0,i.mdx)("inlineCode",{parentName:"p"},"number"),"."),(0,i.mdx)("p",null,"When doing extractions like the above example, you usually want the conditional type to always choose the true branch where the type is successfully extracted. For example, silently choosing the false branch is not great:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type ExtractReturnTypeNoValidation<T> =\n T extends (...args: $ReadOnlyArray<empty>) => infer Return ? Return : any;\n\n(1: ExtractReturnTypeNoValidation<string>); // no error :(\n")),(0,i.mdx)("p",null,"Instead, you might want Flow to error when the input is not a function type. This can be accomplished by adding constraints to the type parameter:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:'[{"startLine":5,"startColumn":16,"endLine":5,"endColumn":21,"description":"Cannot instantiate `ReturnType` because string [1] is incompatible with function type [2] in type argument `T`. [incompatible-type-arg]"}]','[{"startLine":5,"startColumn":16,"endLine":5,"endColumn":21,"description":"Cannot':!0,instantiate:!0,"`ReturnType`":!0,because:!0,string:!0,"[1]":!0,is:!0,incompatible:!0,with:!0,function:!0,type:!0,"[2]":!0,in:!0,argument:!0,"`T`.":!0,'[incompatible-type-arg]"}]':!0},"type ReturnType<T: (...args: $ReadOnlyArray<empty>) => mixed> =\n T extends (...args: $ReadOnlyArray<empty>) => infer Return ? Return : any;\n\n(1: ReturnType<(string) => number>);\n(1: ReturnType<string>);\n")),(0,i.mdx)("h2",{id:"toc-distributive-conditional-type"},"Distributive Conditional Types"),(0,i.mdx)("p",null,"When a generic conditional type is given a union type as a type argument, the conditional ",(0,i.mdx)("em",{parentName:"p"},"distributes")," over the union's members. For example, the ",(0,i.mdx)("inlineCode",{parentName:"p"},"TypeOf")," example above can distribute over a union:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type TypeOf<T> =\n T extends null ? 'null' :\n T extends void ? 'undefined' :\n T extends string ? 'string' : 'other';\n\ntype StringOrNull = TypeOf<string | null>; // evaluates to 'string' | 'null'\n")),(0,i.mdx)("p",null,"This works by first breaking up the union type, and then passing each type to the conditional type to be evaluated separately. In the example above, this looks something like:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre"},"TypeOf<string | null>\n--\x3e (break up the union) --\x3e TypeOf<string> | TypeOf<null>\n--\x3e (evaluate each conditional type separately) --\x3e 'string' | 'null'\n")),(0,i.mdx)("p",null,"If you want to avoid this behavior, you can wrap the check type and extends type with unary tuple type:"),(0,i.mdx)("pre",null,(0,i.mdx)("code",{parentName:"pre",className:"language-flow",metastring:"[]","[]":!0},"type NonDistributiveTypeOf<T> =\n [T] extends [null] ? 'null' :\n [T] extends [void] ? 'undefined' :\n [T] extends [string] ? 'string' : 'other';\n\ntype Other = NonDistributiveTypeOf<string | null>; // evaluates to 'other'\n")),(0,i.mdx)("p",null,"This trick works because Flow will only enable the distributive behavior of conditional type if the check type is a generic type. The example above does not choose any true branch of the conditional type, because ",(0,i.mdx)("inlineCode",{parentName:"p"},"[string | null]")," is not a subtype of ",(0,i.mdx)("inlineCode",{parentName:"p"},"[null]"),", ",(0,i.mdx)("inlineCode",{parentName:"p"},"[void]"),", or ",(0,i.mdx)("inlineCode",{parentName:"p"},"[string]"),", since tuples are ",(0,i.mdx)("a",{parentName:"p",href:"../../lang/variance/#toc-invariance"},"invariantly")," typed."),(0,i.mdx)("h2",{id:"toc-adoption"},"Adoption"),(0,i.mdx)("p",null,"To use conditional types, you need to upgrade your infrastructure so that it supports the syntax:"),(0,i.mdx)("ul",null,(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"flow")," and ",(0,i.mdx)("inlineCode",{parentName:"li"},"flow-parser"),": 0.208.0. Between v0.208 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the ",(0,i.mdx)("inlineCode",{parentName:"li"},"[options]")," heading, add ",(0,i.mdx)("inlineCode",{parentName:"li"},"conditional_type=true"),"."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"prettier"),": 3"),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"babel")," with ",(0,i.mdx)("inlineCode",{parentName:"li"},"babel-plugin-syntax-hermes-parser"),". See ",(0,i.mdx)("a",{parentName:"li",href:"../../tools/babel/"},"our Babel guide")," for setup instructions."),(0,i.mdx)("li",{parentName:"ul"},(0,i.mdx)("inlineCode",{parentName:"li"},"eslint")," with ",(0,i.mdx)("inlineCode",{parentName:"li"},"hermes-eslint"),". See ",(0,i.mdx)("a",{parentName:"li",href:"../../tools/eslint/"},"our ESLint guide")," for setup instructions.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/common.1e30ee28.js b/assets/js/common.1e30ee28.js new file mode 100644 index 00000000000..731b44a79c8 --- /dev/null +++ b/assets/js/common.1e30ee28.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[8592],{3905:(e,t,n)=>{n.r(t),n.d(t,{MDXContext:()=>i,MDXProvider:()=>y,mdx:()=>f,useMDXComponents:()=>u,withMDXComponents:()=>p});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(){return a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),p=function(e){return function(t){var n=u(t.components);return r.createElement(e,a({},t,{components:n}))}},u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},y=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,i=s(e,["components","mdxType","originalType","parentName"]),p=u(n),y=o,d=p["".concat(l,".").concat(y)]||p[y]||m[y]||a;return n?r.createElement(d,c(c({ref:t},i),{},{components:n})):r.createElement(d,c({ref:t},i))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,l[1]=c;for(var i=2;i<a;i++)l[i]=n[i];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},66412:(e,t,n)=>{n.d(t,{p:()=>a});var r=n(92949),o=n(86668);function a(){const{prism:e}=(0,o.L)(),{colorMode:t}=(0,r.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}},45475:(e,t,n)=>{n.d(t,{Z:()=>w});var r=n(87462),o=n(67294),a=n(86010),l=n(23746),c=n(10195),s=n(66412),i=n(95999);const p="codeBlockContainer_r6yT",u="codeBlockContent_Ttwj",y="codeBlock_ec6o",m="copyButton_Szi8",d="codeBlockLines_pvST",f="codeBlockLine_WHOb",g="codeBlockLineNumber_gZUW",h="codeBlockLineContent_Nema",v="flowErrors_qefp",b="flowErrorUnderlineContainer_r80d",k="flowErrorUnderlineLeftPadding_BT3g",O="flowErrorUnderline_swOQ";var E=n(86668);function w(e){let{children:t,metastring:n}=e;const w=JSON.parse(n||"[]"),{prism:P}=(0,E.L)(),[j,C]=(0,o.useState)(!1),[N,T]=(0,o.useState)(!1);(0,o.useEffect)((()=>{T(!0)}),[]);const L=(0,o.useRef)(null),x=(0,s.p)(),D=Array.isArray(t)?t.join(""):t,_=D.replace(/\n$/,""),S=_.split("\n").map((e=>e.length)),B=()=>{(0,c.Z)(_),C(!0),setTimeout((()=>C(!1)),2e3)};return o.createElement(l.ZP,(0,r.Z)({},l.lG,{key:String(N),theme:x,code:_,language:"tsx"}),(e=>{let{className:t,style:n,tokens:l,getLineProps:c,getTokenProps:s}=e;return o.createElement("div",{className:p},o.createElement("div",{className:(0,a.default)(u,"tsx")},o.createElement("pre",{tabIndex:0,className:(0,a.default)(t,y,"thin-scrollbar"),style:n},o.createElement("code",{className:d},l.map(((e,t)=>{1===e.length&&""===e[0].content&&(e[0].content="\n");const n=c({line:e,key:t});return n.className+=" "+f,o.createElement("span",(0,r.Z)({key:t},n),o.createElement("span",{className:g},t+1),o.createElement("span",{className:h},e.map(((e,t)=>o.createElement("span",(0,r.Z)({key:t},s({token:e,key:t}))))),function(e,t,n){return e.map((e=>{if(!(e.startLine<=t&&t<=e.endLine))return null;const r={start:e.startColumn-1,end:e.endColumn};return e.startLine<t&&(r.start=1),t<e.endLine&&(r.end=n),r})).filter(Boolean)}(w,t+1,S[t]).map(((e,t)=>o.createElement("div",{key:t,className:b},o.createElement("span",{className:k}," ".repeat(e.start)),o.createElement("span",{key:t,className:O}," ".repeat(e.end-e.start)))))))})))),o.createElement("button",{ref:L,type:"button","aria-label":(0,i.translate)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"",description:"The ARIA label for copy code blocks button"}),className:(0,a.default)(m,"clean-btn"),onClick:B},j?o.createElement(i.default,{id:"theme.CodeBlock.copied",description:"The copied button label on code blocks"},"Copied"):o.createElement(i.default,{id:"theme.CodeBlock.copy",description:"The copy button label on code blocks"},"Copy")),w.length>0&&o.createElement("pre",{className:v},w.map(((e,t)=>{let{startLine:n,startColumn:r,endLine:a,endColumn:l,description:c}=e;return o.createElement("div",{key:t},n+":"+r+"-"+a+":"+l+": "+c)})))))}))}},23746:(e,t,n)=>{n.d(t,{ZP:()=>d,lG:()=>l});var r=n(87410);const o={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var a=n(67294),l={Prism:r.Z,theme:o};function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(){return s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}var i=/\r\n|\r|\n/,p=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},u=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},y=function(e,t){var n=e.plain,r=Object.create(null),o=e.styles.reduce((function(e,n){var r=n.languages,o=n.style;return r&&!r.includes(t)||n.types.forEach((function(t){var n=s({},e[t],o);e[t]=n})),e}),r);return o.root=n,o.plain=s({},n,{backgroundColor:null}),o};function m(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&-1===t.indexOf(r)&&(n[r]=e[r]);return n}const d=function(e){function t(){for(var t=this,n=[],r=arguments.length;r--;)n[r]=arguments[r];e.apply(this,n),c(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?y(e.theme,e.language):void 0;return t.themeDict=n})),c(this,"getLineProps",(function(e){var n=e.key,r=e.className,o=e.style,a=s({},m(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),l=t.getThemeDict(t.props);return void 0!==l&&(a.style=l.plain),void 0!==o&&(a.style=void 0!==a.style?s({},a.style,o):o),void 0!==n&&(a.key=n),r&&(a.className+=" "+r),a})),c(this,"getStyleForToken",(function(e){var n=e.types,r=e.empty,o=n.length,a=t.getThemeDict(t.props);if(void 0!==a){if(1===o&&"plain"===n[0])return r?{display:"inline-block"}:void 0;if(1===o&&!r)return a[n[0]];var l=r?{display:"inline-block"}:{},c=n.map((function(e){return a[e]}));return Object.assign.apply(Object,[l].concat(c))}})),c(this,"getTokenProps",(function(e){var n=e.key,r=e.className,o=e.style,a=e.token,l=s({},m(e,["key","className","style","token"]),{className:"token "+a.types.join(" "),children:a.content,style:t.getStyleForToken(a),key:void 0});return void 0!==o&&(l.style=void 0!==l.style?s({},l.style,o):o),void 0!==n&&(l.key=n),r&&(l.className+=" "+r),l})),c(this,"tokenize",(function(e,t,n,r){var o={code:t,grammar:n,language:r,tokens:[]};e.hooks.run("before-tokenize",o);var a=o.tokens=e.tokenize(o.code,o.grammar,o.language);return e.hooks.run("after-tokenize",o),a}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,r=e.code,o=e.children,a=this.getThemeDict(this.props),l=t.languages[n];return o({tokens:function(e){for(var t=[[]],n=[e],r=[0],o=[e.length],a=0,l=0,c=[],s=[c];l>-1;){for(;(a=r[l]++)<o[l];){var y=void 0,m=t[l],d=n[l][a];if("string"==typeof d?(m=l>0?m:["plain"],y=d):(m=u(m,d.type),d.alias&&(m=u(m,d.alias)),y=d.content),"string"==typeof y){var f=y.split(i),g=f.length;c.push({types:m,content:f[0]});for(var h=1;h<g;h++)p(c),s.push(c=[]),c.push({types:m,content:f[h]})}else l++,t.push(m),n.push(y),r.push(0),o.push(y.length)}l--,t.pop(),n.pop(),r.pop(),o.pop()}return p(c),s}(void 0!==l?this.tokenize(t,r,l,n):[r]),className:"prism-code language-"+n,style:void 0!==a?a.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(a.Component)},10195:(e,t,n)=>{function r(e,t){let{target:n=document.body}=void 0===t?{}:t;const r=document.createElement("textarea"),o=document.activeElement;r.value=e,r.setAttribute("readonly",""),r.style.contain="strict",r.style.position="absolute",r.style.left="-9999px",r.style.fontSize="12pt";const a=document.getSelection();let l=!1;a.rangeCount>0&&(l=a.getRangeAt(0)),n.append(r),r.select(),r.selectionStart=0,r.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}return r.remove(),l&&(a.removeAllRanges(),a.addRange(l)),o&&o.focus(),c}n.d(t,{Z:()=>r})}}]); \ No newline at end of file diff --git a/assets/js/main.71ee4c5c.js b/assets/js/main.71ee4c5c.js new file mode 100644 index 00000000000..db3db6d7c72 --- /dev/null +++ b/assets/js/main.71ee4c5c.js @@ -0,0 +1,2 @@ +/*! For license information please see main.71ee4c5c.js.LICENSE.txt */ +(self.webpackChunknew_website=self.webpackChunknew_website||[]).push([[179],{20830:(e,t,n)=>{"use strict";n.d(t,{W:()=>o});var r=n(67294);function o(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(67294),o=n(87462),a=n(68356),i=n.n(a),l=n(16887);const s={"03f7d77f":[()=>Promise.all([n.e(532),n.e(8592),n.e(3426)]).then(n.bind(n,23426)),"@site/docs/types/functions.md",23426],"0480b142":[()=>Promise.all([n.e(532),n.e(8592),n.e(3584)]).then(n.bind(n,43584)),"@site/docs/faq.md",43584],"05615bb4":[()=>Promise.all([n.e(532),n.e(8592),n.e(4397)]).then(n.bind(n,14397)),"@site/docs/types/literals.md",14397],"062e05b4":[()=>Promise.all([n.e(532),n.e(8592),n.e(8880)]).then(n.bind(n,18880)),"@site/docs/types/tuples.md",18880],"06d7817c":[()=>Promise.all([n.e(8592),n.e(7357)]).then(n.bind(n,87357)),"@site/blog/2021-09-27-Introducing-Local-Type-Inference-for-Flow.md?truncated=true",87357],"06f797e0":[()=>n.e(3769).then(n.t.bind(n,83769,19)),"/home/circleci/flow/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769],"0801aa48":[()=>Promise.all([n.e(532),n.e(8592),n.e(2040)]).then(n.bind(n,32040)),"@site/docs/lang/nominal-structural.md",32040],"0821ba19":[()=>Promise.all([n.e(8592),n.e(3490)]).then(n.bind(n,83490)),"@site/blog/2020-03-09-What-were-building-in-2020.md",83490],"08b677a9":[()=>Promise.all([n.e(8592),n.e(4370)]).then(n.bind(n,34370)),"@site/blog/2023-02-16-Exact-object-types-by-default-by-default.md?truncated=true",34370],"0abc5904":[()=>Promise.all([n.e(532),n.e(8592),n.e(3808)]).then(n.bind(n,73808)),"@site/docs/types/utilities.md",73808],"0b9b5b1e":[()=>Promise.all([n.e(8592),n.e(1992)]).then(n.bind(n,61992)),"@site/blog/2018-10-18-Exact-Objects-By-Default.md?truncated=true",61992],"0d31b876":[()=>Promise.all([n.e(8592),n.e(6329)]).then(n.bind(n,46329)),"@site/blog/2022-08-05-New-Flow-Language-Rule-Constrained-Writes.md",46329],"0d725906":[()=>Promise.all([n.e(8592),n.e(6065)]).then(n.bind(n,26065)),"@site/blog/2016-10-13-Flow-Typed.md?truncated=true",26065],"0d9d4513":[()=>Promise.all([n.e(8592),n.e(5975)]).then(n.bind(n,55975)),"@site/blog/2016-08-01-Windows-Support.md?truncated=true",55975],"0eb64d46":[()=>Promise.all([n.e(532),n.e(8592),n.e(3851)]).then(n.bind(n,93851)),"@site/docs/lang/types-first.md",93851],"0f5f1bf5":[()=>Promise.all([n.e(8592),n.e(4702)]).then(n.bind(n,94702)),"@site/blog/2023-08-17-Announcing-5-new-Flow-tuple-type-features.md?truncated=true",94702],"145fd8c8":[()=>Promise.all([n.e(532),n.e(8592),n.e(6686)]).then(n.bind(n,56686)),"@site/docs/lang/variables.md",56686],"149f1a8f":[()=>Promise.all([n.e(8592),n.e(8748)]).then(n.bind(n,28748)),"@site/blog/2016-02-02-Version-0.21.0.md?truncated=true",28748],"14a09451":[()=>Promise.all([n.e(8592),n.e(4588)]).then(n.bind(n,54588)),"@site/blog/2023-04-10-Unused-Promise.md?truncated=true",54588],"1686a5bc":[()=>Promise.all([n.e(532),n.e(8592),n.e(4860)]).then(n.bind(n,34860)),"@site/docs/react/multiplatform.md",34860],"16da00f1":[()=>Promise.all([n.e(8592),n.e(4840)]).then(n.bind(n,24840)),"@site/blog/2018-10-29-Asking-for-Required-Annotations.md?truncated=true",24840],"16eb21a1":[()=>Promise.all([n.e(8592),n.e(9506)]).then(n.bind(n,29506)),"@site/blog/2018-02-20-Better-Flow-Error-Messages-for-the-Javascript-Ecosystem.md",29506],17896441:[()=>Promise.all([n.e(532),n.e(8592),n.e(6894),n.e(5414)]).then(n.t.bind(n,62466,23)),"@theme/DocItem",62466],"17f3f5fa":[()=>Promise.all([n.e(8592),n.e(565)]).then(n.bind(n,60565)),"@site/blog/2021-06-02-Sound-Typing-for-this-in-Flow.md?truncated=true",60565],"188153c4":[()=>Promise.all([n.e(532),n.e(8592),n.e(5562)]).then(n.bind(n,35562)),"@site/docs/linting/rule-reference.md",35562],"18a5105d":[()=>Promise.all([n.e(8592),n.e(3271)]).then(n.bind(n,53271)),"@site/blog/2018-10-29-Asking-for-Required-Annotations.md",53271],"1a4e3797":[()=>Promise.all([n.e(532),n.e(9172)]).then(n.bind(n,39172)),"@theme/SearchPage",39172],"1a87007a":[()=>Promise.all([n.e(8592),n.e(4896)]).then(n.bind(n,74896)),"@site/blog/2015-02-20-Flow-Comments.md",74896],"1b0eafb0":[()=>Promise.all([n.e(8592),n.e(3377)]).then(n.bind(n,73377)),"@site/blog/2018-02-20-Better-Flow-Error-Messages-for-the-Javascript-Ecosystem.md?truncated=true",73377],"1be78505":[()=>Promise.all([n.e(532),n.e(9963)]).then(n.bind(n,19963)),"@theme/DocPage",19963],"1c79b411":[()=>Promise.all([n.e(8592),n.e(9541)]).then(n.bind(n,99541)),"@site/blog/2021-05-25-Clarity-on-Flows-Direction-and-Open-Source-Engagement.md",99541],"1d1d2623":[()=>Promise.all([n.e(8592),n.e(6990)]).then(n.bind(n,66990)),"@site/blog/2020-03-16-Making-Flow-error-suppressions-more-specific.md?truncated=true",66990],"1dec3c22":[()=>Promise.all([n.e(532),n.e(8592),n.e(5237)]).then(n.bind(n,45237)),"@site/docs/linting/flowlint-comments.md",45237],"1deff68a":[()=>Promise.all([n.e(8592),n.e(529)]).then(n.bind(n,10529)),"@site/blog/2022-10-20-Improved-handling-of-the-empty-object-in-Flow.md?truncated=true",10529],"1e640efa":[()=>Promise.all([n.e(8592),n.e(2524)]).then(n.bind(n,22524)),"@site/blog/2019-08-20-Changes-to-Object-Spreads.md",22524],"1fea74a6":[()=>Promise.all([n.e(532),n.e(8592),n.e(7550)]).then(n.bind(n,57550)),"@site/docs/types/opaque-types.md",57550],21198339:[()=>Promise.all([n.e(8592),n.e(957)]).then(n.bind(n,80957)),"@site/blog/2015-11-09-Generators.md",80957],22864986:[()=>Promise.all([n.e(532),n.e(8592),n.e(8063)]).then(n.bind(n,78063)),"@site/docs/config/libs.md",78063],"22d19fd2":[()=>Promise.all([n.e(8592),n.e(5097)]).then(n.bind(n,65097)),"@site/blog/2015-07-29-Version-0.14.0.md?truncated=true",65097],"23d108aa":[()=>Promise.all([n.e(8592),n.e(9647)]).then(n.bind(n,29647)),"@site/blog/2019-4-9-Upgrading-Flow-Codebases.md?truncated=true",29647],"2758e022":[()=>Promise.all([n.e(8592),n.e(4392)]).then(n.bind(n,54392)),"@site/blog/2017-08-04-Linting-in-Flow.md",54392],"2882eb4d":[()=>Promise.all([n.e(8592),n.e(486)]).then(n.bind(n,10486)),"@site/blog/2020-02-19-Improvements-to-Flow-in-2019.md?truncated=true",10486],"2981723c":[()=>Promise.all([n.e(532),n.e(8592),n.e(3698)]).then(n.bind(n,3698)),"@site/docs/tools/eslint.md",3698],"2a98dbd2":[()=>Promise.all([n.e(8592),n.e(8713)]).then(n.bind(n,40974)),"@site/blog/2021-09-13-Introducing-Flow-Enums.md",40974],"2cfb3ef2":[()=>Promise.all([n.e(8592),n.e(2378)]).then(n.bind(n,12378)),"@site/blog/2016-10-13-Flow-Typed.md",12378],"2d59284f":[()=>Promise.all([n.e(8592),n.e(1345)]).then(n.bind(n,28592)),"@site/blog/2015-09-22-Version-0.16.0.md?truncated=true",28592],"2dc2c6fe":[()=>Promise.all([n.e(8592),n.e(6956)]).then(n.bind(n,86956)),"@site/blog/2017-08-25-Private-Object-Properties-Using-Flows-Opaque-Type-Aliases.md",86956],"2e83a3f1":[()=>Promise.all([n.e(8592),n.e(6641)]).then(n.bind(n,56641)),"@site/blog/2017-05-07-Strict-Function-Call-Arity.md?truncated=true",56641],"2e848c4d":[()=>Promise.all([n.e(532),n.e(8592),n.e(4170)]).then(n.bind(n,14170)),"@site/docs/react/events.md",14170],"2fb2f756":[()=>Promise.all([n.e(532),n.e(8592),n.e(2394)]).then(n.bind(n,82394)),"@site/docs/config/options.md",82394],"2fccebec":[()=>Promise.all([n.e(532),n.e(8592),n.e(5221)]).then(n.bind(n,35221)),"@site/docs/enums/index.md",35221],"3098e178":[()=>Promise.all([n.e(532),n.e(8592),n.e(3292)]).then(n.bind(n,53292)),"@site/docs/types/typeof.md",53292],"31b1f40d":[()=>Promise.all([n.e(8592),n.e(6479)]).then(n.bind(n,56479)),"@site/blog/2015-11-09-Generators.md?truncated=true",56479],"3436f537":[()=>Promise.all([n.e(8592),n.e(3903)]).then(n.bind(n,23903)),"@site/blog/2020-03-09-What-were-building-in-2020.md?truncated=true",23903],"3546858d":[()=>Promise.all([n.e(8592),n.e(4352)]).then(n.bind(n,44352)),"@site/blog/2017-08-04-Linting-in-Flow.md?truncated=true",44352],"3696a2ba":[()=>Promise.all([n.e(8592),n.e(9850)]).then(n.bind(n,79850)),"@site/blog/2015-02-18-Typecasts.md?truncated=true",79850],"36dd8a2a":[()=>Promise.all([n.e(8592),n.e(7454)]).then(n.bind(n,87454)),"@site/blog/2015-03-12-Bounded-Polymorphism.md",87454],"38b6d82d":[()=>Promise.all([n.e(532),n.e(8592),n.e(6393)]).then(n.bind(n,46393)),"@site/docs/libdefs/index.md",46393],"38bf0af0":[()=>Promise.all([n.e(8592),n.e(3103)]).then(n.bind(n,92879)),"@site/blog/2023-03-15-Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations.md?truncated=true",92879],39814850:[()=>Promise.all([n.e(532),n.e(8592),n.e(6432)]).then(n.bind(n,6432)),"@site/docs/declarations/index.md",6432],"3a0474a4":[()=>Promise.all([n.e(532),n.e(8592),n.e(1151)]).then(n.bind(n,1151)),"@site/docs/types/index.md",1151],"3c67c6f1":[()=>Promise.all([n.e(8592),n.e(6290)]).then(n.bind(n,86290)),"@site/blog/2021-07-21-Introducing-Flow-Indexed-Access-Types.md",86290],"3c73173e":[()=>Promise.all([n.e(532),n.e(8592),n.e(6798)]).then(n.bind(n,16798)),"@site/docs/config/include.md",16798],"3fde744a":[()=>Promise.all([n.e(532),n.e(8592),n.e(3835)]).then(n.bind(n,63835)),"@site/docs/react/components.md",63835],"400005bc":[()=>Promise.all([n.e(532),n.e(8592),n.e(1091)]).then(n.bind(n,21091)),"@site/docs/lang/lazy-modes.md",21091],41545044:[()=>Promise.all([n.e(532),n.e(8592),n.e(813)]).then(n.bind(n,10813)),"@site/docs/editors/vim.md",10813],43854727:[()=>Promise.all([n.e(532),n.e(8592),n.e(5789)]).then(n.bind(n,5789)),"@site/docs/types/mapped-types.md",5789],"43b0182c":[()=>Promise.all([n.e(532),n.e(8592),n.e(3430)]).then(n.bind(n,63430)),"@site/docs/types/unions.md",63430],"4499f1d5":[()=>Promise.all([n.e(532),n.e(8592),n.e(9277)]).then(n.bind(n,69277)),"@site/docs/react/hoc.md",69277],"45e3d4a1":[()=>Promise.all([n.e(8592),n.e(8506)]).then(n.bind(n,18506)),"@site/blog/2018-12-13-React-Abstract-Component.md?truncated=true",18506],"45f3947e":[()=>Promise.all([n.e(532),n.e(8592),n.e(6586)]).then(n.bind(n,6586)),"@site/docs/types/primitives.md",6586],"47fceb5c":[()=>Promise.all([n.e(8592),n.e(1706)]).then(n.bind(n,1706)),"@site/blog/2018-10-18-Exact-Objects-By-Default.md",1706],"4854ca19":[()=>Promise.all([n.e(532),n.e(8592),n.e(4506)]).then(n.bind(n,64506)),"@site/docs/config/version.md",64506],"4981a61b":[()=>Promise.all([n.e(532),n.e(8592),n.e(3418)]).then(n.bind(n,53418)),"@site/docs/types/type-guards.md",53418],"498260da":[()=>Promise.all([n.e(8592),n.e(753)]).then(n.bind(n,50753)),"@site/blog/2016-02-02-Version-0.21.0.md",50753],"49f38925":[()=>Promise.all([n.e(532),n.e(8592),n.e(2601)]).then(n.bind(n,52601)),"@site/docs/react/index.md",52601],"49fc8451":[()=>Promise.all([n.e(8592),n.e(5172)]).then(n.bind(n,45172)),"@site/blog/2020-11-16-Flows-Improved-Handling-of-Generic-Types.md",45172],"4a874b56":[()=>Promise.all([n.e(532),n.e(8592),n.e(1540)]).then(n.bind(n,31540)),"@site/docs/types/mixed.md",31540],"4b798296":[()=>Promise.all([n.e(532),n.e(8592),n.e(3470)]).then(n.bind(n,73470)),"@site/docs/strict/index.md",73470],"4ca37602":[()=>Promise.all([n.e(8592),n.e(8757)]).then(n.bind(n,28757)),"@site/blog/2022-09-30-Requiring-More-Annotations-on-Functions-and-Classes.md",28757],"4da00481":[()=>Promise.all([n.e(532),n.e(8592),n.e(9993)]).then(n.bind(n,89993)),"@site/docs/types/conditional.md",89993],"4e1bb112":[()=>Promise.all([n.e(532),n.e(8592),n.e(6522)]).then(n.bind(n,66522)),"@site/docs/lang/annotation-requirement.md",66522],"4f679c8d":[()=>Promise.all([n.e(532),n.e(8592),n.e(4721)]).then(n.bind(n,74721)),"@site/docs/tools/babel.md",74721],"534636ef":[()=>Promise.all([n.e(8592),n.e(3590)]).then(n.bind(n,83590)),"@site/blog/2021-09-13-TypeScript-Enums-vs-Flow-Enums.md",83590],"53bdc07c":[()=>Promise.all([n.e(532),n.e(8592),n.e(9206)]).then(n.bind(n,89206)),"@site/docs/react/refs.md",89206],"57c2009f":[()=>Promise.all([n.e(532),n.e(8592),n.e(6923)]).then(n.bind(n,66923)),"@site/docs/editors/emacs.md",66923],"57cbb641":[()=>Promise.all([n.e(8592),n.e(2259)]).then(n.bind(n,82259)),"@site/blog/2015-07-03-Disjoint-Unions.md",82259],"5a63fcc7":[()=>Promise.all([n.e(532),n.e(8592),n.e(1209)]).then(n.bind(n,41209)),"@site/docs/editors/sublime-text.md",41209],"5af46b94":[()=>Promise.all([n.e(532),n.e(8592),n.e(3397)]).then(n.bind(n,3397)),"@site/docs/config/lints.md",3397],"5b39b3b8":[()=>n.e(4469).then(n.t.bind(n,24469,19)),"/home/circleci/flow/website/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",24469],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,36809)),"@generated/docusaurus.config",36809],"627ee67b":[()=>Promise.all([n.e(8592),n.e(728)]).then(n.bind(n,20728)),"@site/blog/2020-05-18-Types-First-A-Scalable-New-Architecture-for-Flow.md?truncated=true",20728],"6283dc52":[()=>Promise.all([n.e(8592),n.e(1217)]).then(n.bind(n,91217)),"@site/blog/2015-07-29-Version-0.14.0.md",91217],"6476eba6":[()=>Promise.all([n.e(532),n.e(8592),n.e(2175)]).then(n.bind(n,22175)),"@site/docs/usage.md",22175],"67fab80a":[()=>Promise.all([n.e(8592),n.e(5215)]).then(n.bind(n,90908)),"@site/blog/2020-01-29-How-to-Upgrade-to-exact-by-default-object-type-syntax.md?truncated=true",90908],"685b7887":[()=>Promise.all([n.e(8592),n.e(2974)]).then(n.bind(n,2974)),"@site/blog/2019-1-28-What-the-flow-team-has-been-up-to.md?truncated=true",2974],"6baa791a":[()=>Promise.all([n.e(8592),n.e(4099)]).then(n.bind(n,74099)),"@site/blog/2015-02-18-Import-Types.md?truncated=true",74099],"6bd3f849":[()=>Promise.all([n.e(532),n.e(8592),n.e(7210)]).then(n.bind(n,97210)),"@site/docs/config/ignore.md",97210],"6e17e746":[()=>Promise.all([n.e(532),n.e(8592),n.e(588)]).then(n.bind(n,90588)),"@site/docs/types/maybe.md",90588],"6f13cf50":[()=>Promise.all([n.e(8592),n.e(3482)]).then(n.bind(n,13482)),"@site/blog/2017-08-25-Private-Object-Properties-Using-Flows-Opaque-Type-Aliases.md?truncated=true",13482],"6fbe3924":[()=>Promise.all([n.e(8592),n.e(6104)]).then(n.bind(n,56104)),"@site/blog/2019-10-25-Live-Flow-Errors-in-your-IDE.md",56104],"708dfd19":[()=>Promise.all([n.e(532),n.e(8592),n.e(9837)]).then(n.bind(n,29837)),"@site/docs/types/casting.md",29837],"716a2b3a":[()=>Promise.all([n.e(8592),n.e(836)]).then(n.bind(n,80836)),"@site/blog/2020-12-01-Types-first-the-only-supported-mode-in-flow.md?truncated=true",80836],"7355e963":[()=>Promise.all([n.e(532),n.e(8592),n.e(3361)]).then(n.bind(n,93361)),"@site/docs/enums/migrating-legacy-patterns.md",93361],"754aff6f":[()=>Promise.all([n.e(532),n.e(8592),n.e(7758)]).then(n.bind(n,57758)),"@site/docs/tools/flow-remove-types.md",57758],"75d6ea67":[()=>Promise.all([n.e(532),n.e(8592),n.e(8073)]).then(n.bind(n,88073)),"@site/docs/enums/enabling-enums.md",88073],"7760e989":[()=>Promise.all([n.e(532),n.e(8592),n.e(7997)]).then(n.bind(n,97997)),"@site/docs/cli/index.md",97997],"797bdcb3":[()=>Promise.all([n.e(532),n.e(8592),n.e(4367)]).then(n.bind(n,43634)),"@site/docs/lang/width-subtyping.md",43634],"7a0b48af":[()=>Promise.all([n.e(532),n.e(8592),n.e(2565)]).then(n.bind(n,42565)),"@site/docs/types/any.md",42565],"7c31194e":[()=>Promise.all([n.e(8592),n.e(4314)]).then(n.bind(n,74314)),"@site/blog/2022-08-05-New-Flow-Language-Rule-Constrained-Writes.md?truncated=true",74314],"7db70a13":[()=>Promise.all([n.e(8592),n.e(7678)]).then(n.bind(n,67678)),"@site/blog/2023-04-10-Unused-Promise.md",67678],"814f3328":[()=>n.e(5641).then(n.t.bind(n,45641,19)),"~blog/default/blog-post-list-prop-default.json",45641],"835b28c9":[()=>Promise.all([n.e(8592),n.e(1e3)]).then(n.bind(n,91e3)),"@site/blog/2015-12-01-Version-0.19.0.md?truncated=true",91e3],"8450619c":[()=>Promise.all([n.e(8592),n.e(7966)]).then(n.bind(n,87966)),"@site/blog/2017-08-16-Even-Better-Support-for-React-in-Flow.md",87966],"849c3168":[()=>Promise.all([n.e(8592),n.e(5501)]).then(n.bind(n,55501)),"@site/blog/2021-09-13-Introducing-Flow-Enums.md?truncated=true",55501],"855f8093":[()=>Promise.all([n.e(532),n.e(8592),n.e(8985)]).then(n.bind(n,48985)),"@site/docs/lang/variance.md",48985],"87ccf64d":[()=>Promise.all([n.e(532),n.e(8592),n.e(4502)]).then(n.bind(n,64502)),"@site/docs/linting/index.md",64502],"8ad8f3b7":[()=>Promise.all([n.e(8592),n.e(8899)]).then(n.bind(n,68899)),"@site/blog/2021-07-21-Introducing-Flow-Indexed-Access-Types.md?truncated=true",68899],"8c284244":[()=>Promise.all([n.e(8592),n.e(5898)]).then(n.bind(n,15898)),"@site/blog/2015-10-07-Version-0.17.0.md",15898],"8d4addf8":[()=>Promise.all([n.e(532),n.e(8592),n.e(9701)]).then(n.bind(n,19701)),"@site/docs/editors/index.md",19701],"8d8646df":[()=>Promise.all([n.e(8592),n.e(2886)]).then(n.bind(n,62886)),"@site/blog/2021-09-27-Introducing-Local-Type-Inference-for-Flow.md",62886],"8eb4e46b":[()=>n.e(2638).then(n.t.bind(n,82638,19)),"~blog/default/blog-page-2-677.json",82638],"9202bab2":[()=>Promise.all([n.e(8592),n.e(4340)]).then(n.bind(n,64340)),"@site/blog/2020-12-01-Types-first-the-only-supported-mode-in-flow.md",64340],"9271a7d9":[()=>Promise.all([n.e(8592),n.e(6272)]).then(n.bind(n,36272)),"@site/blog/2019-4-9-Upgrading-Flow-Codebases.md",36272],"935f2afb":[()=>n.e(1109).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"945c2ff6":[()=>Promise.all([n.e(8592),n.e(5691)]).then(n.bind(n,45691)),"@site/blog/2019-1-28-What-the-flow-team-has-been-up-to.md",45691],"96e46681":[()=>Promise.all([n.e(532),n.e(8592),n.e(8528)]).then(n.bind(n,98528)),"@site/docs/config/index.md",98528],"96f8b763":[()=>Promise.all([n.e(532),n.e(8592),n.e(2657)]).then(n.bind(n,52657)),"@site/docs/tools/index.md",52657],"9b7118e6":[()=>Promise.all([n.e(8592),n.e(3175)]).then(n.bind(n,53175)),"@site/blog/2015-03-12-Bounded-Polymorphism.md?truncated=true",53175],"9d1a18d2":[()=>Promise.all([n.e(8592),n.e(8071)]).then(n.bind(n,68071)),"@site/blog/2016-07-01-New-Unions-Intersections.md",68071],"9d6b221c":[()=>Promise.all([n.e(532),n.e(8592),n.e(4784)]).then(n.bind(n,34784)),"@site/docs/lang/types-and-expressions.md",34784],"9e4087bc":[()=>n.e(3169).then(n.bind(n,63169)),"@theme/BlogArchivePage",63169],"9f241a4b":[()=>Promise.all([n.e(532),n.e(8592),n.e(7521)]).then(n.bind(n,93632)),"@site/docs/types/interfaces.md",93632],a0f1eb17:[()=>Promise.all([n.e(8592),n.e(6618)]).then(n.bind(n,36618)),"@site/blog/2023-03-15-Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations.md",36618],a1182569:[()=>Promise.all([n.e(8592),n.e(8819)]).then(n.bind(n,98819)),"@site/blog/2015-12-01-Version-0.19.0.md",98819],a34bf502:[()=>Promise.all([n.e(8592),n.e(2160)]).then(n.bind(n,92160)),"@site/blog/2016-10-04-Property-Variance.md?truncated=true",92160],a45c950d:[()=>Promise.all([n.e(532),n.e(8592),n.e(7667)]).then(n.bind(n,7667)),"@site/docs/lang/refinements.md",7667],a4903c78:[()=>Promise.all([n.e(8592),n.e(6943)]).then(n.bind(n,56943)),"@site/blog/2019-2-8-A-More-Responsive-Flow.md",56943],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(8592),n.e(6894),n.e(908)]).then(n.bind(n,93269)),"@theme/BlogListPage",93269],a6ec1ca4:[()=>Promise.all([n.e(532),n.e(8592),n.e(972)]).then(n.bind(n,30972)),"@site/docs/lang/subtypes.md",30972],a7997f86:[()=>Promise.all([n.e(8592),n.e(650)]).then(n.bind(n,30650)),"@site/blog/2017-07-27-Opaque-Types.md?truncated=true",30650],a81db0a3:[()=>Promise.all([n.e(8592),n.e(1049)]).then(n.bind(n,11049)),"@site/blog/2021-05-25-Clarity-on-Flows-Direction-and-Open-Source-Engagement.md?truncated=true",11049],a914a609:[()=>Promise.all([n.e(532),n.e(8592),n.e(2490)]).then(n.bind(n,52490)),"@site/docs/cli/annotate-exports.md",52490],ab2e47c1:[()=>Promise.all([n.e(532),n.e(8592),n.e(3939)]).then(n.bind(n,93939)),"@site/docs/types/generators.md",93939],aca2d3c0:[()=>Promise.all([n.e(532),n.e(8592),n.e(8480)]).then(n.bind(n,78480)),"@site/docs/types/empty.md",78480],ad260ef5:[()=>Promise.all([n.e(8592),n.e(8118)]).then(n.bind(n,48118)),"@site/blog/2020-01-29-How-to-Upgrade-to-exact-by-default-object-type-syntax.md",48118],ad9c98c9:[()=>Promise.all([n.e(8592),n.e(4244)]).then(n.bind(n,64244)),"@site/blog/2015-09-10-Version-0.15.0.md",64244],ada421c5:[()=>Promise.all([n.e(8592),n.e(7473)]).then(n.bind(n,57473)),"@site/blog/2017-09-03-Flow-Support-in-Recompose.md?truncated=true",57473],ae57f6c5:[()=>Promise.all([n.e(8592),n.e(385)]).then(n.bind(n,385)),"@site/blog/2015-09-10-Version-0.15.0.md?truncated=true",385],aeadb6e0:[()=>Promise.all([n.e(8592),n.e(6136)]).then(n.bind(n,26136)),"@site/blog/2015-07-03-Disjoint-Unions.md?truncated=true",26136],af591461:[()=>Promise.all([n.e(532),n.e(8592),n.e(1930)]).then(n.bind(n,71930)),"@site/docs/react/types.md",71930],b2b675dd:[()=>n.e(8017).then(n.t.bind(n,28017,19)),"~blog/default/blog-c06.json",28017],b2f554cd:[()=>n.e(10).then(n.t.bind(n,30010,19)),"~blog/default/blog-archive-80c.json",30010],b5e58b9e:[()=>Promise.all([n.e(8592),n.e(4132)]).then(n.bind(n,64132)),"@site/blog/2020-03-16-Making-Flow-error-suppressions-more-specific.md",64132],b638890a:[()=>Promise.all([n.e(8592),n.e(7493)]).then(n.bind(n,37493)),"@site/blog/2016-07-01-New-Unions-Intersections.md?truncated=true",37493],b8605767:[()=>Promise.all([n.e(8592),n.e(7322)]).then(n.bind(n,87322)),"@site/blog/2017-07-27-Opaque-Types.md",87322],ba134b70:[()=>Promise.all([n.e(8592),n.e(3619)]).then(n.bind(n,43619)),"@site/blog/2020-05-18-Types-First-A-Scalable-New-Architecture-for-Flow.md",43619],ba3cba1f:[()=>Promise.all([n.e(8592),n.e(1908)]).then(n.bind(n,11908)),"@site/blog/2015-10-07-Version-0.17.0.md?truncated=true",11908],ba769f8c:[()=>Promise.all([n.e(8592),n.e(7324)]).then(n.bind(n,97324)),"@site/blog/2023-08-17-Announcing-5-new-Flow-tuple-type-features.md",97324],ba8405e9:[()=>Promise.all([n.e(8592),n.e(287)]).then(n.bind(n,60287)),"@site/blog/2023-01-17-Local-Type-Inference.md?truncated=true",60287],bac2ecab:[()=>Promise.all([n.e(8592),n.e(1466)]).then(n.bind(n,11466)),"@site/blog/2017-05-07-Strict-Function-Call-Arity.md",11466],bc1ef7db:[()=>Promise.all([n.e(8592),n.e(1848)]).then(n.bind(n,1848)),"@site/blog/2018-03-16-New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals.md?truncated=true",1848],bd2c9af2:[()=>Promise.all([n.e(532),n.e(8592),n.e(9466)]).then(n.bind(n,29466)),"@site/docs/types/modules.md",29466],bd3efcef:[()=>Promise.all([n.e(532),n.e(8592),n.e(3389)]).then(n.bind(n,23389)),"@site/docs/types/arrays.md",23389],bda0a621:[()=>Promise.all([n.e(8592),n.e(168)]).then(n.bind(n,10168)),"@site/blog/2023-01-17-Local-Type-Inference.md",10168],c0c47fbb:[()=>Promise.all([n.e(8592),n.e(1105)]).then(n.bind(n,41105)),"@site/blog/2019-10-30-Spreads-Common-Errors-and-Fixes.md?truncated=true",41105],c28c9f4c:[()=>Promise.all([n.e(8592),n.e(8641)]).then(n.bind(n,58641)),"@site/blog/2021-09-13-TypeScript-Enums-vs-Flow-Enums.md?truncated=true",58641],c3387ac1:[()=>Promise.all([n.e(532),n.e(8592),n.e(5131)]).then(n.bind(n,45131)),"@site/docs/types/indexed-access.md",45131],c377a04b:[()=>Promise.all([n.e(532),n.e(8592),n.e(3847)]).then(n.bind(n,73847)),"@site/docs/index.md",73847],c4de80f8:[()=>Promise.all([n.e(532),n.e(8592),n.e(7520)]).then(n.bind(n,7520)),"@site/docs/install.md",7520],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(5239)]).then(n.bind(n,95239)),"@site/src/pages/index.js",95239],c56ec64d:[()=>Promise.all([n.e(8592),n.e(6470)]).then(n.bind(n,46470)),"@site/blog/2017-08-16-Even-Better-Support-for-React-in-Flow.md?truncated=true",46470],c61e173e:[()=>Promise.all([n.e(8592),n.e(9307)]).then(n.bind(n,19307)),"@site/blog/2023-02-16-Exact-object-types-by-default-by-default.md",19307],c935ef9f:[()=>Promise.all([n.e(532),n.e(8592),n.e(2860)]).then(n.bind(n,2860)),"@site/docs/lang/type-hierarchy.md",2860],c9e6dd55:[()=>Promise.all([n.e(8592),n.e(6020)]).then(n.bind(n,16020)),"@site/blog/2015-02-20-Flow-Comments.md?truncated=true",16020],ccc49370:[()=>Promise.all([n.e(532),n.e(8592),n.e(6894),n.e(3539)]).then(n.bind(n,65203)),"@theme/BlogPostPage",65203],ccf70fff:[()=>Promise.all([n.e(8592),n.e(1313)]).then(n.bind(n,61313)),"@site/blog/2022-10-20-Improved-handling-of-the-empty-object-in-Flow.md",61313],cdf37a1d:[()=>Promise.all([n.e(8592),n.e(2837)]).then(n.bind(n,52837)),"@site/blog/2015-02-18-Import-Types.md",52837],ce2beed8:[()=>Promise.all([n.e(532),n.e(8592),n.e(6081)]).then(n.bind(n,66081)),"@site/docs/types/classes.md",66081],cee75076:[()=>Promise.all([n.e(8592),n.e(7466)]).then(n.bind(n,7466)),"@site/blog/2018-12-13-React-Abstract-Component.md",7466],d25022d5:[()=>n.e(5745).then(n.t.bind(n,15745,19)),"/home/circleci/flow/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],d589d3a7:[()=>Promise.all([n.e(532),n.e(8592),n.e(9390)]).then(n.bind(n,99390)),"@site/docs/getting-started.md",99390],d94d234a:[()=>Promise.all([n.e(8592),n.e(3905)]).then(n.bind(n,73905)),"@site/blog/2019-10-25-Live-Flow-Errors-in-your-IDE.md?truncated=true",73905],db9c8b69:[()=>Promise.all([n.e(532),n.e(8592),n.e(1086)]).then(n.bind(n,61086)),"@site/docs/enums/using-enums.md",61086],deed17e4:[()=>Promise.all([n.e(532),n.e(8592),n.e(3898)]).then(n.bind(n,73898)),"@site/docs/types/aliases.md",73898],e06cc5ae:[()=>Promise.all([n.e(532),n.e(8592),n.e(4991)]).then(n.bind(n,94991)),"@site/docs/config/declarations.md",94991],e1d0b0e7:[()=>Promise.all([n.e(8592),n.e(4422)]).then(n.bind(n,74422)),"@site/blog/2018-03-16-New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals.md",74422],e23ef6ec:[()=>Promise.all([n.e(532),n.e(8592),n.e(1958)]).then(n.bind(n,1958)),"@site/docs/types/comments.md",1958],e2c2b05a:[()=>Promise.all([n.e(532),n.e(8592),n.e(3525)]).then(n.bind(n,73525)),"@site/docs/libdefs/creation.md",73525],e3555d4f:[()=>Promise.all([n.e(532),n.e(8592),n.e(9337)]).then(n.bind(n,89337)),"@site/docs/enums/defining-enums.md",89337],e58aeffb:[()=>n.e(7085).then(n.t.bind(n,7085,19)),"/home/circleci/flow/website/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],ec7083e4:[()=>Promise.all([n.e(532),n.e(8592),n.e(2798)]).then(n.bind(n,22798)),"@site/docs/lang/depth-subtyping.md",22798],ec748175:[()=>Promise.all([n.e(8592),n.e(1984)]).then(n.bind(n,81984)),"@site/blog/2019-10-30-Spreads-Common-Errors-and-Fixes.md",81984],ed6c4993:[()=>Promise.all([n.e(532),n.e(8592),n.e(2975)]).then(n.bind(n,2975)),"@site/docs/errors/index.md",2975],ef1d3ef7:[()=>Promise.all([n.e(8592),n.e(3818)]).then(n.bind(n,23818)),"@site/blog/2016-08-01-Windows-Support.md",23818],f0993487:[()=>Promise.all([n.e(8592),n.e(6778)]).then(n.bind(n,16778)),"@site/blog/2020-02-19-Improvements-to-Flow-in-2019.md",16778],f1ce6d33:[()=>Promise.all([n.e(8592),n.e(8712)]).then(n.bind(n,68712)),"@site/blog/2019-2-8-A-More-Responsive-Flow.md?truncated=true",68712],f3aa7666:[()=>Promise.all([n.e(532),n.e(8592),n.e(8396)]).then(n.bind(n,88396)),"@site/docs/types/generics.md",88396],f3ccad72:[()=>Promise.all([n.e(532),n.e(8592),n.e(3997)]).then(n.bind(n,13997)),"@site/docs/cli/coverage.md",13997],f3f01bf9:[()=>Promise.all([n.e(8592),n.e(2625)]).then(n.bind(n,12625)),"@site/blog/2021-06-02-Sound-Typing-for-this-in-Flow.md",12625],f4043d76:[()=>Promise.all([n.e(8592),n.e(2108)]).then(n.bind(n,22108)),"@site/blog/2016-10-04-Property-Variance.md",22108],f5c59384:[()=>Promise.all([n.e(8592),n.e(776)]).then(n.bind(n,10776)),"@site/blog/2020-11-16-Flows-Improved-Handling-of-Generic-Types.md?truncated=true",10776],f6a97d3f:[()=>Promise.all([n.e(532),n.e(8592),n.e(7216)]).then(n.bind(n,17216)),"@site/docs/config/untyped.md",17216],f7269812:[()=>Promise.all([n.e(8592),n.e(3031)]).then(n.bind(n,33031)),"@site/blog/2015-09-22-Version-0.16.0.md",33031],f73cdd84:[()=>Promise.all([n.e(8592),n.e(6094)]).then(n.bind(n,56094)),"@site/blog/2015-02-18-Typecasts.md",56094],f7710724:[()=>Promise.all([n.e(532),n.e(8592),n.e(9225)]).then(n.bind(n,79225)),"@site/docs/types/intersections.md",79225],f8222af9:[()=>Promise.all([n.e(532),n.e(8592),n.e(8027)]).then(n.bind(n,38027)),"@site/docs/editors/webstorm.md",38027],f85b6e96:[()=>Promise.all([n.e(532),n.e(8592),n.e(64)]).then(n.bind(n,40064)),"@site/docs/editors/vscode.md",40064],f8910b2d:[()=>n.e(1661).then(n.bind(n,51661)),"@site/src/pages/try.js",51661],f9dfb1df:[()=>Promise.all([n.e(8592),n.e(6567)]).then(n.bind(n,96567)),"@site/blog/2022-09-30-Requiring-More-Annotations-on-Functions-and-Classes.md?truncated=true",96567],fad02e7a:[()=>Promise.all([n.e(8592),n.e(2554)]).then(n.bind(n,52554)),"@site/blog/2017-09-03-Flow-Support-in-Recompose.md",52554],fe33e49c:[()=>Promise.all([n.e(8592),n.e(4511)]).then(n.bind(n,4511)),"@site/blog/2019-08-20-Changes-to-Object-Spreads.md?truncated=true",4511],fed34737:[()=>Promise.all([n.e(532),n.e(8592),n.e(4508)]).then(n.bind(n,94508)),"@site/docs/types/objects.md",94508]};function c(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(99670),d=n(30226);function p(e,t){if("*"===e)return i()({loading:c,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const a=l[e+"-"+t],p={},f=[],m=[],h=(0,u.Z)(a);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:c,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error("The page component at "+e+" doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.");"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let a=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{a=a[e]})),a[l[l.length-1]]=o}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,o.Z)({},i,n)))}})}const f=[{path:"/blog/",component:p("/blog/","739"),exact:!0},{path:"/blog/2015/02/18/Import-Types/",component:p("/blog/2015/02/18/Import-Types/","296"),exact:!0},{path:"/blog/2015/02/18/Typecasts/",component:p("/blog/2015/02/18/Typecasts/","7b4"),exact:!0},{path:"/blog/2015/02/20/Flow-Comments/",component:p("/blog/2015/02/20/Flow-Comments/","618"),exact:!0},{path:"/blog/2015/03/12/Bounded-Polymorphism/",component:p("/blog/2015/03/12/Bounded-Polymorphism/","a7c"),exact:!0},{path:"/blog/2015/07/03/Disjoint-Unions/",component:p("/blog/2015/07/03/Disjoint-Unions/","db3"),exact:!0},{path:"/blog/2015/07/29/Version-0.14.0/",component:p("/blog/2015/07/29/Version-0.14.0/","2ba"),exact:!0},{path:"/blog/2015/09/10/Version-0.15.0/",component:p("/blog/2015/09/10/Version-0.15.0/","202"),exact:!0},{path:"/blog/2015/09/22/Version-0.16.0/",component:p("/blog/2015/09/22/Version-0.16.0/","87a"),exact:!0},{path:"/blog/2015/10/07/Version-0.17.0/",component:p("/blog/2015/10/07/Version-0.17.0/","f21"),exact:!0},{path:"/blog/2015/11/09/Generators/",component:p("/blog/2015/11/09/Generators/","e2d"),exact:!0},{path:"/blog/2015/12/01/Version-0.19.0/",component:p("/blog/2015/12/01/Version-0.19.0/","c77"),exact:!0},{path:"/blog/2016/02/02/Version-0.21.0/",component:p("/blog/2016/02/02/Version-0.21.0/","779"),exact:!0},{path:"/blog/2016/07/01/New-Unions-Intersections/",component:p("/blog/2016/07/01/New-Unions-Intersections/","a42"),exact:!0},{path:"/blog/2016/08/01/Windows-Support/",component:p("/blog/2016/08/01/Windows-Support/","605"),exact:!0},{path:"/blog/2016/10/04/Property-Variance/",component:p("/blog/2016/10/04/Property-Variance/","de3"),exact:!0},{path:"/blog/2016/10/13/Flow-Typed/",component:p("/blog/2016/10/13/Flow-Typed/","5b7"),exact:!0},{path:"/blog/2017/05/07/Strict-Function-Call-Arity/",component:p("/blog/2017/05/07/Strict-Function-Call-Arity/","625"),exact:!0},{path:"/blog/2017/07/27/Opaque-Types/",component:p("/blog/2017/07/27/Opaque-Types/","ec2"),exact:!0},{path:"/blog/2017/08/04/Linting-in-Flow/",component:p("/blog/2017/08/04/Linting-in-Flow/","33e"),exact:!0},{path:"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/",component:p("/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/","469"),exact:!0},{path:"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/",component:p("/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/","61d"),exact:!0},{path:"/blog/2017/09/03/Flow-Support-in-Recompose/",component:p("/blog/2017/09/03/Flow-Support-in-Recompose/","045"),exact:!0},{path:"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/",component:p("/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/","2ff"),exact:!0},{path:"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/",component:p("/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/","f09"),exact:!0},{path:"/blog/2018/10/18/Exact-Objects-By-Default/",component:p("/blog/2018/10/18/Exact-Objects-By-Default/","f68"),exact:!0},{path:"/blog/2018/10/29/Asking-for-Required-Annotations/",component:p("/blog/2018/10/29/Asking-for-Required-Annotations/","558"),exact:!0},{path:"/blog/2018/12/13/React-Abstract-Component/",component:p("/blog/2018/12/13/React-Abstract-Component/","5d1"),exact:!0},{path:"/blog/2019/08/20/Changes-to-Object-Spreads/",component:p("/blog/2019/08/20/Changes-to-Object-Spreads/","9cd"),exact:!0},{path:"/blog/2019/1/28/What-the-flow-team-has-been-up-to/",component:p("/blog/2019/1/28/What-the-flow-team-has-been-up-to/","f39"),exact:!0},{path:"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/",component:p("/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/","b62"),exact:!0},{path:"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/",component:p("/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/","6ad"),exact:!0},{path:"/blog/2019/2/8/A-More-Responsive-Flow/",component:p("/blog/2019/2/8/A-More-Responsive-Flow/","2f8"),exact:!0},{path:"/blog/2019/4/9/Upgrading-Flow-Codebases/",component:p("/blog/2019/4/9/Upgrading-Flow-Codebases/","46e"),exact:!0},{path:"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/",component:p("/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/","892"),exact:!0},{path:"/blog/2020/02/19/Improvements-to-Flow-in-2019/",component:p("/blog/2020/02/19/Improvements-to-Flow-in-2019/","2d9"),exact:!0},{path:"/blog/2020/03/09/What-were-building-in-2020/",component:p("/blog/2020/03/09/What-were-building-in-2020/","51b"),exact:!0},{path:"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/",component:p("/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/","566"),exact:!0},{path:"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/",component:p("/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/","f26"),exact:!0},{path:"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/",component:p("/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/","d53"),exact:!0},{path:"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/",component:p("/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/","41b"),exact:!0},{path:"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/",component:p("/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/","5d9"),exact:!0},{path:"/blog/2021/06/02/Sound-Typing-for-this-in-Flow/",component:p("/blog/2021/06/02/Sound-Typing-for-this-in-Flow/","584"),exact:!0},{path:"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/",component:p("/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/","74f"),exact:!0},{path:"/blog/2021/09/13/Introducing-Flow-Enums/",component:p("/blog/2021/09/13/Introducing-Flow-Enums/","4f6"),exact:!0},{path:"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/",component:p("/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/","2b4"),exact:!0},{path:"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/",component:p("/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/","c88"),exact:!0},{path:"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/",component:p("/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/","8f4"),exact:!0},{path:"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/",component:p("/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/","382"),exact:!0},{path:"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/",component:p("/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/","03f"),exact:!0},{path:"/blog/2023/01/17/Local-Type-Inference/",component:p("/blog/2023/01/17/Local-Type-Inference/","662"),exact:!0},{path:"/blog/2023/02/16/Exact-object-types-by-default-by-default/",component:p("/blog/2023/02/16/Exact-object-types-by-default-by-default/","6cd"),exact:!0},{path:"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/",component:p("/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/","f6c"),exact:!0},{path:"/blog/2023/04/10/Unused-Promise/",component:p("/blog/2023/04/10/Unused-Promise/","77d"),exact:!0},{path:"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/",component:p("/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/","27f"),exact:!0},{path:"/blog/archive/",component:p("/blog/archive/","6f6"),exact:!0},{path:"/blog/page/2/",component:p("/blog/page/2/","e19"),exact:!0},{path:"/search/",component:p("/search/","6a7"),exact:!0},{path:"/try/",component:p("/try/","4ee"),exact:!0},{path:"/en/docs/",component:p("/en/docs/","397"),routes:[{path:"/en/docs/",component:p("/en/docs/","afb"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/cli/",component:p("/en/docs/cli/","2b2"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/cli/annotate-exports/",component:p("/en/docs/cli/annotate-exports/","28e"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/cli/coverage/",component:p("/en/docs/cli/coverage/","341"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/",component:p("/en/docs/config/","2a9"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/declarations/",component:p("/en/docs/config/declarations/","9bc"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/ignore/",component:p("/en/docs/config/ignore/","5a7"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/include/",component:p("/en/docs/config/include/","8c0"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/libs/",component:p("/en/docs/config/libs/","175"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/lints/",component:p("/en/docs/config/lints/","690"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/options/",component:p("/en/docs/config/options/","4ed"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/untyped/",component:p("/en/docs/config/untyped/","d06"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/config/version/",component:p("/en/docs/config/version/","38c"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/declarations/",component:p("/en/docs/declarations/","38e"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/",component:p("/en/docs/editors/","de9"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/emacs/",component:p("/en/docs/editors/emacs/","05a"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/sublime-text/",component:p("/en/docs/editors/sublime-text/","615"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/vim/",component:p("/en/docs/editors/vim/","427"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/vscode/",component:p("/en/docs/editors/vscode/","71c"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/editors/webstorm/",component:p("/en/docs/editors/webstorm/","ecd"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/enums/",component:p("/en/docs/enums/","613"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/enums/defining-enums/",component:p("/en/docs/enums/defining-enums/","a51"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/enums/enabling-enums/",component:p("/en/docs/enums/enabling-enums/","616"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/enums/migrating-legacy-patterns/",component:p("/en/docs/enums/migrating-legacy-patterns/","329"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/enums/using-enums/",component:p("/en/docs/enums/using-enums/","cc2"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/errors/",component:p("/en/docs/errors/","06a"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/faq/",component:p("/en/docs/faq/","9fc"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/getting-started/",component:p("/en/docs/getting-started/","ba1"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/install/",component:p("/en/docs/install/","d51"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/annotation-requirement/",component:p("/en/docs/lang/annotation-requirement/","c98"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/depth-subtyping/",component:p("/en/docs/lang/depth-subtyping/","902"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/lazy-modes/",component:p("/en/docs/lang/lazy-modes/","4b6"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/nominal-structural/",component:p("/en/docs/lang/nominal-structural/","5a3"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/refinements/",component:p("/en/docs/lang/refinements/","5f1"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/subtypes/",component:p("/en/docs/lang/subtypes/","eac"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/type-hierarchy/",component:p("/en/docs/lang/type-hierarchy/","145"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/types-and-expressions/",component:p("/en/docs/lang/types-and-expressions/","31d"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/types-first/",component:p("/en/docs/lang/types-first/","774"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/variables/",component:p("/en/docs/lang/variables/","b43"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/variance/",component:p("/en/docs/lang/variance/","a0b"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/lang/width-subtyping/",component:p("/en/docs/lang/width-subtyping/","412"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/libdefs/",component:p("/en/docs/libdefs/","8aa"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/libdefs/creation/",component:p("/en/docs/libdefs/creation/","f58"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/linting/",component:p("/en/docs/linting/","250"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/linting/flowlint-comments/",component:p("/en/docs/linting/flowlint-comments/","d2a"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/linting/rule-reference/",component:p("/en/docs/linting/rule-reference/","288"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/",component:p("/en/docs/react/","235"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/components/",component:p("/en/docs/react/components/","2cc"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/events/",component:p("/en/docs/react/events/","0b4"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/hoc/",component:p("/en/docs/react/hoc/","6e8"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/multiplatform/",component:p("/en/docs/react/multiplatform/","fe6"),exact:!0},{path:"/en/docs/react/refs/",component:p("/en/docs/react/refs/","353"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/react/types/",component:p("/en/docs/react/types/","e09"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/strict/",component:p("/en/docs/strict/","ead"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/tools/",component:p("/en/docs/tools/","605"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/tools/babel/",component:p("/en/docs/tools/babel/","226"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/tools/eslint/",component:p("/en/docs/tools/eslint/","d1a"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/tools/flow-remove-types/",component:p("/en/docs/tools/flow-remove-types/","64a"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/",component:p("/en/docs/types/","04d"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/aliases/",component:p("/en/docs/types/aliases/","c04"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/any/",component:p("/en/docs/types/any/","31c"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/arrays/",component:p("/en/docs/types/arrays/","b21"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/casting/",component:p("/en/docs/types/casting/","a86"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/classes/",component:p("/en/docs/types/classes/","458"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/comments/",component:p("/en/docs/types/comments/","ddf"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/conditional/",component:p("/en/docs/types/conditional/","075"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/empty/",component:p("/en/docs/types/empty/","ea1"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/functions/",component:p("/en/docs/types/functions/","3ea"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/generators/",component:p("/en/docs/types/generators/","695"),exact:!0},{path:"/en/docs/types/generics/",component:p("/en/docs/types/generics/","375"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/indexed-access/",component:p("/en/docs/types/indexed-access/","601"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/interfaces/",component:p("/en/docs/types/interfaces/","d50"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/intersections/",component:p("/en/docs/types/intersections/","3bf"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/literals/",component:p("/en/docs/types/literals/","8c4"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/mapped-types/",component:p("/en/docs/types/mapped-types/","685"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/maybe/",component:p("/en/docs/types/maybe/","99c"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/mixed/",component:p("/en/docs/types/mixed/","a27"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/modules/",component:p("/en/docs/types/modules/","0b1"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/objects/",component:p("/en/docs/types/objects/","83b"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/opaque-types/",component:p("/en/docs/types/opaque-types/","699"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/primitives/",component:p("/en/docs/types/primitives/","90e"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/tuples/",component:p("/en/docs/types/tuples/","e39"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/type-guards/",component:p("/en/docs/types/type-guards/","613"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/typeof/",component:p("/en/docs/types/typeof/","38e"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/unions/",component:p("/en/docs/types/unions/","438"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/types/utilities/",component:p("/en/docs/types/utilities/","231"),exact:!0,sidebar:"docsSidebar"},{path:"/en/docs/usage/",component:p("/en/docs/usage/","6bd"),exact:!0,sidebar:"docsSidebar"}]},{path:"/",component:p("/","f2c"),exact:!0},{path:"*",component:p("*")}]},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>a});var r=n(67294);const o=r.createContext(!1);function a(e){let{children:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{a(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},49383:(e,t,n)=>{"use strict";var r=n(67294),o=n(73935),a=n(73727),i=n(70405),l=n(10412);const s=[n(74367),n(32497),n(3310),n(18320),n(52295),n(92509)];var c=n(723),u=n(76775),d=n(18790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(87462),m=n(35742),h=n(52263),g=n(44996),b=n(86668),v=n(10833),y=n(94711),w=n(19727),k=n(43320),S=n(90197);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.default)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.default)(),o=function(){const{siteConfig:{url:e}}=(0,h.default)(),{pathname:t}=(0,u.TH)();return e+(0,g.default)(t)}(),a=t?""+n+t:o;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function x(){const{i18n:{currentLocale:e}}=(0,h.default)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(_,null),r.createElement(E,null),r.createElement(S.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var P=n(98934),A=n(58940);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const o=s.map((t=>{var r,o;const a=null!=(r=null==(o=t.default)?void 0:o[e])?r:t[e];return null==a?void 0:a(...n)}));return()=>o.forEach((e=>null==e?void 0:e()))}const L=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);null==t||t.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:o}),R("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>null==e.route.component.preload?void 0:e.route.component.preload())))}class N extends r.Component{constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.default.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(L,{previousLocation:this.previousLocation,location:t},r.createElement(u.AW,{location:t,render:()=>e}))}}const I=N,D="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner-suggestion-container",M="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return"\nwindow['"+M+"'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['"+M+"'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('"+D+"');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = "+JSON.stringify(function(e){return'\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">'+e+"</span> "+("/"===e?" (default value)":"")+'</p>\n <p>We suggest trying baseUrl = <span id="'+F+'" style="font-weight: bold; color: green;"></span></p>\n</div>\n'}(e)).replace(/</g,"\\<")+";\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('"+F+"');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n"}function B(){const{siteConfig:{baseUrl:e}}=(0,h.default)();return(0,r.useLayoutEffect)((()=>{window[M]=!1}),[]),r.createElement(r.Fragment,null,!l.default.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.default)(),{pathname:n}=(0,u.TH)();return t&&n===e?r.createElement(B,null):null}function z(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:a}}=(0,h.default)(),i=(0,g.default)(e),{htmlLang:l,direction:s}=a[o];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(44763);function G(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return r.createElement(q.Z,null,r.createElement(A.M,null,r.createElement(P.t,null,r.createElement(p,null,r.createElement(z,null),r.createElement(x,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var H=n(16887);const $=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{var r,o;if("undefined"==typeof document)return void n();const a=document.createElement("link");a.setAttribute("rel","prefetch"),a.setAttribute("href",e),a.onload=()=>t(),a.onerror=()=>n();const i=null!=(r=document.getElementsByTagName("head")[0])?r:null==(o=document.getElementsByName("script")[0])?void 0:o.parentNode;null==i||i.appendChild(a)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(99670);const W=new Set,Z=new Set,K=()=>{var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},Y={prefetch(e){if(!(e=>!K()&&!Z.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?$(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!K()&&!Z.has(e))(e)&&(Z.add(e),O(e))},Q=Object.freeze(Y);if(l.default.canUseDOM){window.docusaurus=Q;const e=o.hydrate;O(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(a.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>d});var r=n(67294),o=n(36809);const a=JSON.parse('{"internaldocs-fb":{"default":{"opts":{"docs":{"routeBasePath":"en/docs","sidebarPath":"/home/circleci/flow/website/sidebars.js","editUrl":"https://github.com/facebook/flow/edit/main/website/","remarkPlugins":[[null,{"sync":true}],null,[null,{"strippedFilePattern":{}}],[null,{}],[null,{"version":"v1"}],null]},"staticDocsProject":"flow","blog":{"path":"blog","postsPerPage":50,"showReadingTime":false,"blogSidebarCount":"ALL","blogSidebarTitle":"All our posts"},"theme":{"customCss":"/home/circleci/flow/website/src/css/custom.css"},"googleAnalytics":{"trackingID":"UA-49208336-4","anonymizeIP":true},"id":"default"},"docsDir":"/home/circleci/flow/website/docs","repoRootToWebsiteRoot":"home/circleci/flow/website"}},"docusaurus-plugin-content-docs":{"default":{"path":"/en/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/en/docs","mainDocId":"index","docs":[{"id":"cli/annotate-exports","path":"/en/docs/cli/annotate-exports","sidebar":"docsSidebar"},{"id":"cli/coverage","path":"/en/docs/cli/coverage","sidebar":"docsSidebar"},{"id":"cli/index","path":"/en/docs/cli","sidebar":"docsSidebar"},{"id":"config/declarations","path":"/en/docs/config/declarations","sidebar":"docsSidebar"},{"id":"config/ignore","path":"/en/docs/config/ignore","sidebar":"docsSidebar"},{"id":"config/include","path":"/en/docs/config/include","sidebar":"docsSidebar"},{"id":"config/index","path":"/en/docs/config","sidebar":"docsSidebar"},{"id":"config/libs","path":"/en/docs/config/libs","sidebar":"docsSidebar"},{"id":"config/lints","path":"/en/docs/config/lints","sidebar":"docsSidebar"},{"id":"config/options","path":"/en/docs/config/options","sidebar":"docsSidebar"},{"id":"config/untyped","path":"/en/docs/config/untyped","sidebar":"docsSidebar"},{"id":"config/version","path":"/en/docs/config/version","sidebar":"docsSidebar"},{"id":"declarations/index","path":"/en/docs/declarations","sidebar":"docsSidebar"},{"id":"editors/emacs","path":"/en/docs/editors/emacs","sidebar":"docsSidebar"},{"id":"editors/index","path":"/en/docs/editors","sidebar":"docsSidebar"},{"id":"editors/sublime-text","path":"/en/docs/editors/sublime-text","sidebar":"docsSidebar"},{"id":"editors/vim","path":"/en/docs/editors/vim","sidebar":"docsSidebar"},{"id":"editors/vscode","path":"/en/docs/editors/vscode","sidebar":"docsSidebar"},{"id":"editors/webstorm","path":"/en/docs/editors/webstorm","sidebar":"docsSidebar"},{"id":"enums/defining-enums","path":"/en/docs/enums/defining-enums","sidebar":"docsSidebar"},{"id":"enums/enabling-enums","path":"/en/docs/enums/enabling-enums","sidebar":"docsSidebar"},{"id":"enums/index","path":"/en/docs/enums","sidebar":"docsSidebar"},{"id":"enums/migrating-legacy-patterns","path":"/en/docs/enums/migrating-legacy-patterns","sidebar":"docsSidebar"},{"id":"enums/using-enums","path":"/en/docs/enums/using-enums","sidebar":"docsSidebar"},{"id":"errors/index","path":"/en/docs/errors","sidebar":"docsSidebar"},{"id":"faq","path":"/en/docs/faq","sidebar":"docsSidebar"},{"id":"getting-started","path":"/en/docs/getting-started","sidebar":"docsSidebar"},{"id":"index","path":"/en/docs/","sidebar":"docsSidebar"},{"id":"install","path":"/en/docs/install","sidebar":"docsSidebar"},{"id":"lang/annotation-requirement","path":"/en/docs/lang/annotation-requirement","sidebar":"docsSidebar"},{"id":"lang/depth-subtyping","path":"/en/docs/lang/depth-subtyping","sidebar":"docsSidebar"},{"id":"lang/lazy-modes","path":"/en/docs/lang/lazy-modes","sidebar":"docsSidebar"},{"id":"lang/nominal-structural","path":"/en/docs/lang/nominal-structural","sidebar":"docsSidebar"},{"id":"lang/refinements","path":"/en/docs/lang/refinements","sidebar":"docsSidebar"},{"id":"lang/subtypes","path":"/en/docs/lang/subtypes","sidebar":"docsSidebar"},{"id":"lang/type-hierarchy","path":"/en/docs/lang/type-hierarchy","sidebar":"docsSidebar"},{"id":"lang/types-and-expressions","path":"/en/docs/lang/types-and-expressions","sidebar":"docsSidebar"},{"id":"lang/types-first","path":"/en/docs/lang/types-first","sidebar":"docsSidebar"},{"id":"lang/variables","path":"/en/docs/lang/variables","sidebar":"docsSidebar"},{"id":"lang/variance","path":"/en/docs/lang/variance","sidebar":"docsSidebar"},{"id":"lang/width-subtyping","path":"/en/docs/lang/width-subtyping","sidebar":"docsSidebar"},{"id":"libdefs/creation","path":"/en/docs/libdefs/creation","sidebar":"docsSidebar"},{"id":"libdefs/index","path":"/en/docs/libdefs","sidebar":"docsSidebar"},{"id":"linting/flowlint-comments","path":"/en/docs/linting/flowlint-comments","sidebar":"docsSidebar"},{"id":"linting/index","path":"/en/docs/linting","sidebar":"docsSidebar"},{"id":"linting/rule-reference","path":"/en/docs/linting/rule-reference","sidebar":"docsSidebar"},{"id":"react/components","path":"/en/docs/react/components","sidebar":"docsSidebar"},{"id":"react/events","path":"/en/docs/react/events","sidebar":"docsSidebar"},{"id":"react/hoc","path":"/en/docs/react/hoc","sidebar":"docsSidebar"},{"id":"react/index","path":"/en/docs/react","sidebar":"docsSidebar"},{"id":"react/multiplatform","path":"/en/docs/react/multiplatform"},{"id":"react/refs","path":"/en/docs/react/refs","sidebar":"docsSidebar"},{"id":"react/types","path":"/en/docs/react/types","sidebar":"docsSidebar"},{"id":"strict/index","path":"/en/docs/strict","sidebar":"docsSidebar"},{"id":"tools/babel","path":"/en/docs/tools/babel","sidebar":"docsSidebar"},{"id":"tools/eslint","path":"/en/docs/tools/eslint","sidebar":"docsSidebar"},{"id":"tools/flow-remove-types","path":"/en/docs/tools/flow-remove-types","sidebar":"docsSidebar"},{"id":"tools/index","path":"/en/docs/tools","sidebar":"docsSidebar"},{"id":"types/aliases","path":"/en/docs/types/aliases","sidebar":"docsSidebar"},{"id":"types/any","path":"/en/docs/types/any","sidebar":"docsSidebar"},{"id":"types/arrays","path":"/en/docs/types/arrays","sidebar":"docsSidebar"},{"id":"types/casting","path":"/en/docs/types/casting","sidebar":"docsSidebar"},{"id":"types/classes","path":"/en/docs/types/classes","sidebar":"docsSidebar"},{"id":"types/comments","path":"/en/docs/types/comments","sidebar":"docsSidebar"},{"id":"types/conditional","path":"/en/docs/types/conditional","sidebar":"docsSidebar"},{"id":"types/empty","path":"/en/docs/types/empty","sidebar":"docsSidebar"},{"id":"types/functions","path":"/en/docs/types/functions","sidebar":"docsSidebar"},{"id":"types/generators","path":"/en/docs/types/generators"},{"id":"types/generics","path":"/en/docs/types/generics","sidebar":"docsSidebar"},{"id":"types/index","path":"/en/docs/types","sidebar":"docsSidebar"},{"id":"types/indexed-access","path":"/en/docs/types/indexed-access","sidebar":"docsSidebar"},{"id":"types/interfaces","path":"/en/docs/types/interfaces","sidebar":"docsSidebar"},{"id":"types/intersections","path":"/en/docs/types/intersections","sidebar":"docsSidebar"},{"id":"types/literals","path":"/en/docs/types/literals","sidebar":"docsSidebar"},{"id":"types/mapped-types","path":"/en/docs/types/mapped-types","sidebar":"docsSidebar"},{"id":"types/maybe","path":"/en/docs/types/maybe","sidebar":"docsSidebar"},{"id":"types/mixed","path":"/en/docs/types/mixed","sidebar":"docsSidebar"},{"id":"types/modules","path":"/en/docs/types/modules","sidebar":"docsSidebar"},{"id":"types/objects","path":"/en/docs/types/objects","sidebar":"docsSidebar"},{"id":"types/opaque-types","path":"/en/docs/types/opaque-types","sidebar":"docsSidebar"},{"id":"types/primitives","path":"/en/docs/types/primitives","sidebar":"docsSidebar"},{"id":"types/tuples","path":"/en/docs/types/tuples","sidebar":"docsSidebar"},{"id":"types/type-guards","path":"/en/docs/types/type-guards","sidebar":"docsSidebar"},{"id":"types/typeof","path":"/en/docs/types/typeof","sidebar":"docsSidebar"},{"id":"types/unions","path":"/en/docs/types/unions","sidebar":"docsSidebar"},{"id":"types/utilities","path":"/en/docs/types/utilities","sidebar":"docsSidebar"},{"id":"usage","path":"/en/docs/usage","sidebar":"docsSidebar"}],"draftIds":[],"sidebars":{"docsSidebar":{"link":{"path":"/en/docs/getting-started","label":"getting-started"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(57529);const s=JSON.parse('{"docusaurusVersion":"2.4.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.1"},"docusaurus-plugin-google-analytics":{"type":"package","name":"@docusaurus/plugin-google-analytics","version":"2.4.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.1"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.1"},"internaldocs-fb":{"type":"package","name":"docusaurus-plugin-internaldocs-fb","version":"1.4.0"},"polyfillNodeBuiltinsForFlowJS":{"type":"local"},"enableWasm":{"type":"local"},"enableSomeEnvVarsAsBuildTimeConstants":{"type":"local"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"2.4.1"}}}'),c={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},u=r.createContext(c);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:c},t)}},44763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),o=n(10412),a=n(35742),i=n(18780),l=n(89007);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(c,{error:t}))}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function u(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(a.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(u,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.default.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){var n;const e={error:t,tryAgain:()=>this.setState({error:null})};return(null!=(n=this.props.fallback)?n:d)(e)}return null!=e?e:null}}},10412:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(70405);function a(e){return r.createElement(o.ql,e)}},39960:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n(87462),o=n(67294),a=n(73727),i=n(18780),l=n(52263),s=n(13919),c=n(10412);const u=o.createContext({collectLink:()=>{}});var d=n(44996);function p(e,t){var n,p;let{isNavLink:f,to:m,href:h,activeClassName:g,isActive:b,"data-noBrokenLinkCheck":v,autoAddBaseUrl:y=!0,...w}=e;const{siteConfig:{trailingSlash:k,baseUrl:S}}=(0,l.default)(),{withBaseUrl:E}=(0,d.useBaseUrlUtils)(),_=(0,o.useContext)(u),x=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>x.current));const C=m||h;const T=(0,s.Z)(C),P=null==C?void 0:C.replace("pathname://","");let A=void 0!==P?(R=P,y&&(e=>e.startsWith("/"))(R)?E(R):R):void 0;var R;A&&T&&(A=(0,i.applyTrailingSlash)(A,{trailingSlash:k,baseUrl:S}));const L=(0,o.useRef)(!1),O=f?a.OL:a.rU,N=c.default.canUseIntersectionObserver,I=(0,o.useRef)(),D=()=>{L.current||null==A||(window.docusaurus.preload(A),L.current=!0)};(0,o.useEffect)((()=>(!N&&T&&null!=A&&window.docusaurus.prefetch(A),()=>{N&&I.current&&I.current.disconnect()})),[I,A,N,T]);const F=null!=(n=null==(p=A)?void 0:p.startsWith("#"))&&n,M=!A||!T||F;return M||v||_.collectLink(A),M?o.createElement("a",(0,r.Z)({ref:x,href:A},C&&!T&&{target:"_blank",rel:"noopener noreferrer"},w)):o.createElement(O,(0,r.Z)({},w,{onMouseEnter:D,onTouchStart:D,innerRef:e=>{x.current=e,N&&e&&T&&(I.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(I.current.unobserve(e),I.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),I.current.observe(e))},to:A},f&&{isActive:b,activeClassName:g}))}const f=o.forwardRef(p)},95999:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,translate:()=>l});var r=n(67294);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=null==t?void 0:t[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var a=n(57529);function i(e){var t,n;let{id:r,message:o}=e;if(void 0===r&&void 0===o)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return null!=(t=null!=(n=a[null!=r?r:o])?n:o)?t:r}function l(e,t){let{message:n,id:r}=e;return o(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:a}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,o(l,a))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},44996:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l,useBaseUrlUtils:()=>i});var r=n(67294),o=n(52263),a=n(13919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.default)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(67294),o=n(58940);function a(){return(0,r.useContext)(o._)}},28084:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a,useAllPluginInstancesData:()=>i,usePluginData:()=>l});var r=n(52263),o=n(29935);function a(){const{globalData:e}=(0,r.default)();return e}function i(e,t){void 0===t&&(t={});const n=a()[e];if(!n&&t.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}function l(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=null==r?void 0:r[t];if(!a&&n.failfast)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+t+'".');return a}},72389:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(67294),o=n(98934);function a(){return(0,r.useContext)(o._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[o,a]=n;const i=r?r+"."+o:o;var l;"object"==typeof(l=a)&&l&&Object.keys(l).length>0?e(a,i):t[i]=a}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>a});var r=n(67294);const o=r.createContext(null);function a(e){let{children:t,value:n}=e;const a=r.useContext(o),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...null==n?void 0:n.data};return{plugin:t.plugin,data:r}}({parent:a,value:n})),[a,n]);return r.createElement(o.Provider,{value:i},t)}},94104:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>h,gA:()=>d,WS:()=>p,_r:()=>c,Jo:()=>g,zh:()=>u,yW:()=>m,gB:()=>f});var r=n(76775),o=n(28084);const a=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=a(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function l(e,t){const n=i(e,t),o=null==n?void 0:n.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const s={},c=()=>{var e;return null!=(e=(0,o.useAllPluginInstancesData)("docusaurus-plugin-content-docs"))?e:s},u=e=>(0,o.usePluginData)("docusaurus-plugin-content-docs",e,{failfast:!0});function d(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error("Can't find active docs plugin for \""+t+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((e=>e.path)).join(", "));return a}(t,n,e)}function p(e){void 0===e&&(e={});const t=d(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:i(t.pluginData,n)}}function f(e){return u(e).versions}function m(e){const t=u(e);return a(t)}function h(e){const t=u(e),{pathname:n}=(0,r.TH)();return l(t,n)}function g(e){const t=u(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=a(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},74367:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||(window.ga("set","page",t.pathname+t.search+t.hash),window.ga("send","pageview"))}}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(74865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),o=n(36809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)("./prism-"+e)})),delete globalThis.Prism}(r.Z)},97245:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(87462),o=n(67294);function a(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:i=1.2,className:l,...s}=e;return o.createElement("svg",(0,r.Z)({viewBox:"0 0 15 15",width:t,height:n},s),o.createElement("g",{stroke:a,strokeWidth:i},o.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294);const o="iconExternalLink_nPIU";function a(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},89007:(e,t,n)=>{"use strict";n.d(t,{Z:()=>oe});var r=n(67294),o=n(86010),a=n(44763),i=n(10833),l=n(55225),s=n(35281),c=n(19727);const u="skipToContent_fXgn";function d(){return r.createElement(l.l,{className:u})}var p=n(86668),f=n(59689),m=n(87462),h=n(95999),g=n(97245);const b="closeButton_CVFx";function v(e){return r.createElement("button",(0,m.Z)({type:"button","aria-label":(0,h.translate)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.default)("clean-btn close",b,e.className)}),r.createElement(g.Z,{width:14,height:14,strokeWidth:3.1}))}const y="content_knG7";function w(e){const{announcementBar:t}=(0,p.L)(),{content:n}=t;return r.createElement("div",(0,m.Z)({},e,{className:(0,o.default)(y,e.className),dangerouslySetInnerHTML:{__html:n}}))}const k="announcementBar_mb4j",S="announcementBarPlaceholder_vyr4",E="announcementBarClose_gvF7",_="announcementBarContent_xLdY";function x(){const{announcementBar:e}=(0,p.L)(),{isActive:t,close:n}=(0,f.nT)();if(!t)return null;const{backgroundColor:o,textColor:a,isCloseable:i}=e;return r.createElement("div",{className:k,style:{backgroundColor:o,color:a},role:"banner"},i&&r.createElement("div",{className:S}),r.createElement(w,{className:_}),i&&r.createElement(v,{onClick:n,className:E}))}var C=n(51854),T=n(42489),P=n(39960),A=n(44996),R=n(13919),L=n(39471);function O(e){let{item:t}=e;const{to:n,href:o,label:a,prependBaseUrlToHref:i,...l}=t,s=(0,A.default)(n),c=(0,A.default)(o,{forcePrependBaseUrl:!0});return r.createElement(P.default,(0,m.Z)({className:"footer__link-item"},o?{href:i?c:o}:{to:s},l),a,o&&!(0,R.Z)(o)&&r.createElement(L.Z,null))}function N(e){var t;let{item:n}=e;return n.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:n.html}}):r.createElement("li",{key:null!=(t=n.href)?t:n.to,className:"footer__item"},r.createElement(O,{item:n}))}function I(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(N,{key:t,item:e})))))}function D(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(I,{key:t,column:e}))))}function F(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function M(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(O,{item:t})}function j(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(M,{item:e}),t.length!==n+1&&r.createElement(F,null))))))}function B(e){let{links:t}=e;return(0,T.a)(t)?r.createElement(D,{columns:t}):r.createElement(j,{links:t})}var U=n(50941);const z="footerLogoLink_BH7S";function q(e){var t;let{logo:n}=e;const{withBaseUrl:a}=(0,A.useBaseUrlUtils)(),i={light:a(n.src),dark:a(null!=(t=n.srcDark)?t:n.src)};return r.createElement(U.Z,{className:(0,o.default)("footer__logo",n.className),alt:n.alt,sources:i,width:n.width,height:n.height,style:n.style})}function G(e){let{logo:t}=e;return t.href?r.createElement(P.default,{href:t.href,className:z,target:t.target},r.createElement(q,{logo:t})):r.createElement(q,{logo:t})}function H(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function $(e){let{style:t,links:n,logo:a,copyright:i}=e;return r.createElement("footer",{className:(0,o.default)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(a||i)&&r.createElement("div",{className:"footer__bottom text--center"},a&&r.createElement("div",{className:"margin-bottom--sm"},a),i)))}function V(){const{footer:e}=(0,p.L)();if(!e)return null;const{copyright:t,links:n,logo:o,style:a}=e;return r.createElement($,{style:a,links:n&&n.length>0&&r.createElement(B,{links:n}),logo:o&&r.createElement(G,{logo:o}),copyright:t&&r.createElement(H,{copyright:t})})}const W=r.memo(V);var Z=n(902),K=n(92949),Y=n(12466),Q=n(60373),X=n(58978);const J=(0,Z.Qc)([K.S,f.pl,Y.OC,Q.L5,i.VC,X.V]);function ee(e){let{children:t}=e;return r.createElement(J,null,t)}var te=n(69690);function ne(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(h.default,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(te.Cw,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(te.aG,{error:t})))))}const re="mainWrapper_z2l0";function oe(e){const{children:t,noFooter:n,wrapperClassName:u,title:p,description:f}=e;return(0,c.t)(),r.createElement(ee,null,r.createElement(i.d,{title:p,description:f}),r.createElement(d,null),r.createElement(x,null),r.createElement(C.Z,null),r.createElement("div",{id:l.u,className:(0,o.default)(s.k.wrapper.main,re,u)},r.createElement(a.Z,{fallback:e=>r.createElement(ne,e)},t)),!n&&r.createElement(W,null))}},21327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(87462),o=n(67294),a=n(39960),i=n(44996),l=n(52263),s=n(86668),c=n(50941);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,i.default)(t.src),dark:(0,i.default)(t.srcDark||t.src)},l=o.createElement(c.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},l):l}function d(e){var t;const{siteConfig:{title:n}}=(0,l.default)(),{navbar:{title:c,logo:d}}=(0,s.L)(),{imageClassName:p,titleClassName:f,...m}=e,h=(0,i.default)((null==d?void 0:d.href)||"/"),g=c?"":n,b=null!=(t=null==d?void 0:d.alt)?t:g;return o.createElement(a.default,(0,r.Z)({to:h},m,(null==d?void 0:d.target)&&{target:d.target}),d&&o.createElement(u,{logo:d,alt:b,imageClassName:p}),null!=c&&o.createElement("b",{className:f},c))}},51854:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Me});var r=n(67294),o=n(87462),a=n(86010),i=n(86668),l=n(93163),s=n(85936),c=n(12466);var u=n(95999);var d=n(76857);function p(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=(0,d.Y)();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.default)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var f=n(92949),m=n(72389);function h(e){return r.createElement("svg",(0,o.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function g(e){return r.createElement("svg",(0,o.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const b={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function v(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,m.default)(),s=(0,u.translate)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.translate)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.translate)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.default)(b.toggle,t)},r.createElement("button",{className:(0,a.default)("clean-btn",b.toggleButton,!l&&b.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(h,{className:(0,a.default)(b.toggleIcon,b.lightToggleIcon)}),r.createElement(g,{className:(0,a.default)(b.toggleIcon,b.darkToggleIcon)})))}const y=r.memo(v),w="darkNavbarColorModeToggle_X3D1";function k(e){let{className:t}=e;const n=(0,i.L)().navbar.style,o=(0,i.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:l}=(0,f.I)();return o?null:r.createElement(y,{className:t,buttonClassName:"dark"===n?w:void 0,value:a,onChange:l})}var S=n(97245),E=n(21327);function _(){return r.createElement(E.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function x(){const e=(0,l.e)();return r.createElement("button",{type:"button","aria-label":(0,u.translate)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S.Z,{color:"var(--ifm-color-emphasis-600)"}))}function C(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(_,null),r.createElement(k,{className:"margin-right--md"}),r.createElement(x,null))}var T=n(39960),P=n(44996),A=n(13919),R=n(98022),L=n(39471);function O(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:i,label:l,html:s,isDropdownLink:c,prependBaseUrlToHref:u,...d}=e;const p=(0,P.default)(a),f=(0,P.default)(t),m=(0,P.default)(i,{forcePrependBaseUrl:!0}),h=l&&i&&!(0,A.Z)(i),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,l,h&&r.createElement(L.Z,c&&{width:12,height:12}))};return i?r.createElement(T.default,(0,o.Z)({href:u?m:i},d,g)):r.createElement(T.default,(0,o.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,R.F)(n,t.pathname):t.pathname.startsWith(f)},d,g))}function N(e){let{className:t,isDropdownItem:n=!1,...i}=e;const l=r.createElement(O,(0,o.Z)({className:(0,a.default)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},i));return n?r.createElement("li",null,l):l}function I(e){let{className:t,isDropdownItem:n,...i}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(O,(0,o.Z)({className:(0,a.default)("menu__link",t)},i)))}function D(e){var t;let{mobile:n=!1,position:a,...i}=e;const l=n?I:N;return r.createElement(l,(0,o.Z)({},i,{activeClassName:null!=(t=i.activeClassName)?t:n?"menu__link--active":"navbar__link--active"}))}var F=n(86043),M=n(48596),j=n(76775),B=n(52263);function U(e,t){return e.some((e=>function(e,t){return!!(0,M.Mg)(e.to,t)||!!(0,R.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function z(e){var t;let{items:n,position:i,className:l,onClick:s,...c}=e;const u=(0,r.useRef)(null),[d,p]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&p(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.default)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===i,"dropdown--show":d})},r.createElement(O,(0,o.Z)({"aria-haspopup":"true","aria-expanded":d,role:"button",href:c.to?void 0:"#",className:(0,a.default)("navbar__link",l)},c,{onClick:c.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),p(!d))}}),null!=(t=c.children)?t:c.label),r.createElement("ul",{className:"dropdown__menu"},n.map(((e,t)=>r.createElement(we,(0,o.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function q(e){var t;let{items:n,className:i,position:l,onClick:s,...c}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,B.default)(),{pathname:t}=(0,j.TH)();return t.replace(e,"/")}(),d=U(n,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,F.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),r.createElement("li",{className:(0,a.default)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(O,(0,o.Z)({role:"button",className:(0,a.default)("menu__link menu__link--sublist menu__link--sublist-caret",i)},c,{onClick:e=>{e.preventDefault(),f()}}),null!=(t=c.children)?t:c.label),r.createElement(F.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},n.map(((e,t)=>r.createElement(we,(0,o.Z)({mobile:!0,isDropdownItem:!0,onClick:s,activeClassName:"menu__link--active"},e,{key:t}))))))}function G(e){let{mobile:t=!1,...n}=e;const o=t?q:z;return r.createElement(o,n)}var H=n(94711);function $(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,o.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const V="iconLanguage_nlXk";function W(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var Z=n(20830),K=["translations"];function Y(){return Y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Y.apply(this,arguments)}function Q(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,o,a=[],i=!0,l=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(s){l=!0,o=s}finally{try{i||null==n.return||n.return()}finally{if(l)throw o}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return X(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return X(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function X(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function J(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ee="Ctrl";var te=r.forwardRef((function(e,t){var n=e.translations,o=void 0===n?{}:n,a=J(e,K),i=o.buttonText,l=void 0===i?"Search":i,s=o.buttonAriaLabel,c=void 0===s?"Search":s,u=Q((0,r.useState)(null),2),d=u[0],p=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(ee))}),[]),r.createElement("button",Y({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},a,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(Z.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===ee?r.createElement(W,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),ne=n(35742),re=n(66177),oe=n(239),ae=n(43320);var ie=n(73935);const le={button:{buttonText:(0,u.translate)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.translate)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.translate)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.translate)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.translate)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.translate)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.translate)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.translate)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.translate)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.translate)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.translate)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.translate)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.translate)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.translate)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.translate)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.translate)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.translate)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.translate)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.translate)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.translate)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.translate)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.translate)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.translate)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.translate)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.translate)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.translate)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.translate)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let se=null;function ce(e){let{hit:t,children:n}=e;return r.createElement(T.default,{to:t.url},n)}function ue(e){let{state:t,onClose:n}=e;const o=(0,re.M)();return r.createElement(T.default,{to:o(t.query),onClick:n},r.createElement(u.default,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function de(e){var t,a;let{contextualSearch:i,externalUrlRegex:l,...s}=e;const{siteMetadata:c}=(0,B.default)(),u=(0,oe.l)(),d=function(){const{locale:e,tags:t}=(0,ae._q)();return["language:"+e,t.map((e=>"docusaurus_tag:"+e))]}(),p=null!=(t=null==(a=s.searchParameters)?void 0:a.facetFilters)?t:[],f=i?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(d,p):p,m={...s.searchParameters,facetFilters:f},h=(0,j.k6)(),g=(0,r.useRef)(null),b=(0,r.useRef)(null),[v,y]=(0,r.useState)(!1),[w,k]=(0,r.useState)(void 0),S=(0,r.useCallback)((()=>se?Promise.resolve():Promise.all([n.e(6780).then(n.bind(n,76780)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,46945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,18894))]).then((e=>{let[{DocSearchModal:t}]=e;se=t}))),[]),E=(0,r.useCallback)((()=>{S().then((()=>{g.current=document.createElement("div"),document.body.insertBefore(g.current,document.body.firstChild),y(!0)}))}),[S,y]),_=(0,r.useCallback)((()=>{var e;y(!1),null==(e=g.current)||e.remove()}),[y]),x=(0,r.useCallback)((e=>{S().then((()=>{y(!0),k(e.key)}))}),[S,y,k]),C=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,R.F)(l,t)?window.location.href=t:h.push(t)}}).current,T=(0,r.useRef)((e=>s.transformItems?s.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,P=(0,r.useMemo)((()=>e=>r.createElement(ue,(0,o.Z)({},e,{onClose:_}))),[_]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",c.docusaurusVersion),e)),[c.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,o=e.onClose,a=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){(27===e.keyCode&&t||"k"===e.key&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?o():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&a&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&a(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,o,a,i])}({isOpen:v,onOpen:E,onClose:_,onInput:x,searchButtonRef:b}),r.createElement(r.Fragment,null,r.createElement(ne.Z,null,r.createElement("link",{rel:"preconnect",href:"https://"+s.appId+"-dsn.algolia.net",crossOrigin:"anonymous"})),r.createElement(te,{onTouchStart:S,onFocus:S,onMouseOver:S,onClick:E,ref:b,translations:le.button}),v&&se&&g.current&&(0,ie.createPortal)(r.createElement(se,(0,o.Z)({onClose:_,initialScrollY:window.scrollY,initialQuery:w,navigator:C,transformItems:T,hitComponent:ce,transformSearchClient:A},s.searchPagePath&&{resultsFooterComponent:P},s,{searchParameters:m,placeholder:le.placeholder,translations:le.modal})),g.current))}function pe(){const{siteConfig:e}=(0,B.default)();return r.createElement(de,e.themeConfig.algolia)}const fe="searchBox_ZlJk";function me(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.default)(n,fe)},t)}var he=n(94104),ge=n(53438);var be=n(60373);const ve=e=>e.docs.find((t=>t.id===e.mainDocId));const ye={default:D,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...i}=e;const{i18n:{currentLocale:l,locales:s,localeConfigs:c}}=(0,B.default)(),d=(0,H.l)(),{search:p,hash:f}=(0,j.TH)(),m=[...n,...s.map((e=>{const n=""+("pathname://"+d.createUrl({locale:e,fullyQualified:!1}))+p+f;return{label:c[e].label,lang:c[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===l?t?"menu__link--active":"dropdown__link--active":""}})),...a],h=t?(0,u.translate)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):c[l].label;return r.createElement(G,(0,o.Z)({},i,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement($,{className:V}),h),items:m}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(me,{className:n},r.createElement(pe,null))},dropdown:G,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.default)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:l}=(0,he.Iw)(a),s=(0,ge.vY)(t,a);return null===s?null:r.createElement(D,(0,o.Z)({exact:!0},i,{isActive:()=>(null==l?void 0:l.path)===s.path||!(null==l||!l.sidebar)&&l.sidebar===s.sidebar,label:null!=n?n:s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:l}=(0,he.Iw)(a),s=(0,ge.oz)(t,a).link;if(!s)throw new Error('DocSidebarNavbarItem: Sidebar with ID "'+t+"\" doesn't have anything to be linked to.");return r.createElement(D,(0,o.Z)({exact:!0},i,{isActive:()=>(null==l?void 0:l.sidebar)===t,label:null!=n?n:s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...i}=e;const l=(0,ge.lO)(a)[0],s=null!=t?t:l.label,c=null!=n?n:(e=>e.docs.find((t=>t.id===e.mainDocId)))(l).path;return r.createElement(D,(0,o.Z)({},i,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:i,dropdownItemsAfter:l,...s}=e;const{search:c,hash:d}=(0,j.TH)(),p=(0,he.Iw)(n),f=(0,he.gB)(n),{savePreferredVersionName:m}=(0,be.J)(n),h=[...i,...f.map((e=>{var t;const n=null!=(t=p.alternateDocVersions[e.name])?t:ve(e);return{label:e.label,to:""+n.path+c+d,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...l],g=(0,ge.lO)(n)[0],b=t&&h.length>1?(0,u.translate)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,v=t&&h.length>1?void 0:ve(g).path;return h.length<=1?r.createElement(D,(0,o.Z)({},s,{mobile:t,label:b,to:v,isActive:a?()=>!1:void 0})):r.createElement(G,(0,o.Z)({},s,{mobile:t,label:b,to:v,items:h,isActive:a?()=>!1:void 0}))}};function we(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=ye[o];if(!a)throw new Error('No NavbarItem component found for type "'+t+'".');return r.createElement(a,n)}function ke(){const e=(0,l.e)(),t=(0,i.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(we,(0,o.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Se(e){return r.createElement("button",(0,o.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.default,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ee(){const e=0===(0,i.L)().navbar.items.length,t=(0,d.Y)();return r.createElement(r.Fragment,null,!e&&r.createElement(Se,{onClick:()=>t.hide()}),t.content)}function _e(){const e=(0,l.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(p,{header:r.createElement(C,null),primaryMenu:r.createElement(ke,null),secondaryMenu:r.createElement(Ee,null)}):null}const xe="navbarHideable_m1mJ",Ce="navbarHidden_jGov";function Te(e){return r.createElement("div",(0,o.Z)({role:"presentation"},e,{className:(0,a.default)("navbar-sidebar__backdrop",e.className)}))}function Pe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,i.L)(),d=(0,l.e)(),{navbarRef:p,isNavbarVisible:f}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,c.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<a.current)return void n(!0);if(o.current)return void(o.current=!1);const l=null==r?void 0:r.scrollY,s=document.documentElement.scrollHeight-a.current,c=window.innerHeight;l&&i>=l?n(!1):i+c<s&&n(!0)})),(0,s.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:p,"aria-label":(0,u.translate)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.default)("navbar","navbar--fixed-top",n&&[xe,!f&&Ce],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":d.shown})},t,r.createElement(Te,{onClick:d.toggle}),r.createElement(_e,null))}var Ae=n(69690),Re=n(58978);function Le(e){let{width:t=30,height:n=30,className:a,...i}=e;return r.createElement("svg",(0,o.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},i),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Oe(){const{toggle:e,shown:t}=(0,l.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.translate)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(Le,null))}const Ne="colorModeToggle_DEke";function Ie(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(Ae.QW,{key:t,onError:t=>new Error("A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n"+JSON.stringify(e,null,2),{cause:t})},r.createElement(we,e)))))}function De(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function Fe(){const e=(0,l.e)(),t=(0,i.L)().navbar.items,[n,o]=(0,Re.A)(t),a=t.find((e=>"search"===e.type));return r.createElement(De,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Oe,null),r.createElement(_,null),r.createElement(Ie,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(Ie,{items:o}),r.createElement(k,{className:Ne}),!a&&r.createElement(me,null,r.createElement(pe,null)))})}function Me(){return r.createElement(Pe,null,r.createElement(Fe,null))}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(35742);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return r.createElement(o.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},50941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(87462),o=n(67294),a=n(86010),i=n(72389),l=n(92949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function c(e){const t=(0,i.default)(),{colorMode:n}=(0,l.I)(),{sources:c,className:u,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,f.map((e=>o.createElement("img",(0,r.Z)({key:e,src:c[e],alt:d,className:(0,a.default)(s.themedImage,s["themedImage--"+e],u)},p)))))}},86043:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>h});var r=n(87462),o=n(67294),a=n(10412),i=n(91442);function l(e){let{initialState:t}=e;const[n,r]=(0,o.useState)(null!=t&&t),a=(0,o.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:a}}const s={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function u(e,t){const n=t?s:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const a=(0,o.useRef)(!1);(0,o.useEffect)((()=>{const e=t.current;function o(){var t,n;const o=e.scrollHeight,a=null!=(t=null==r?void 0:r.duration)?t:function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(o);return{transition:"height "+a+"ms "+(null!=(n=null==r?void 0:r.easing)?n:"ease-in-out"),height:o+"px"}}function l(){const t=o();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return u(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!a.default.canUseDOM)return e?s:c}function f(e){let{as:t="div",collapsed:n,children:r,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const c=(0,o.useRef)(null);return d({collapsibleRef:c,collapsed:n,animation:a}),o.createElement(t,{ref:c,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(u(c.current,n),null==i||i(n))},className:l},r)}function m(e){let{collapsed:t,...n}=e;const[a,i]=(0,o.useState)(!t),[l,s]=(0,o.useState)(t);return(0,o.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,o.useLayoutEffect)((()=>{a&&s(t)}),[a,t]),a?o.createElement(f,(0,r.Z)({},n,{collapsed:l})):null}function h(e){let{lazy:t,...n}=e;const r=t?m:f;return o.createElement(r,n)}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(67294),o=n(72389),a=n(50012),i=n(902),l=n(86668);const s=(0,a.WA)("docusaurus.announcement.dismiss"),c=(0,a.WA)("docusaurus.announcement.id"),u=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,o.default)(),[n,a]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{a(u())}),[]);const i=(0,r.useCallback)((()=>{d(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&d(!1),!r&&u()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(67294),o=n(10412),a=n(902),i=n(50012),l=n(86668);const s=r.createContext(void 0),c="theme",u=(0,i.WA)(c),d="light",p="dark",f=e=>e===p?p:d;function m(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,i]=(0,r.useState)((e=>o.default.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e))(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const s=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(i(t),o&&(e=>{u.set(f(e))})(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p:d:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=u.get();null!==t&&s(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,s]);const m=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||m.current?m.current=window.matchMedia("print").matches:s(null)};return e.addListener(r),()=>e.removeListener(r)}),[s,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:s,get isDarkTheme(){return a===p},setLightTheme(){s(d)},setDarkTheme(){s(p)}})),[a,s])}function h(e){let{children:t}=e;const n=m();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>b,Oh:()=>w});var r=n(67294),o=n(94104),a=n(29935),i=n(86668),l=n(53438),s=n(902),c=n(50012);const u=e=>"docs-preferred-version-"+e,d=(e,t,n)=>{(0,c.WA)(u(e),{persistence:t}).set(n)},p=(e,t)=>(0,c.WA)(u(e),{persistence:t}).get(),f=(e,t)=>{(0,c.WA)(u(e),{persistence:t}).del()};const m=r.createContext(null);function h(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return r.createElement(m.Provider,{value:n},t)}function b(e){let{children:t}=e;return l.cE?r.createElement(g,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(m);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function y(e){var t;void 0===e&&(e=a.m);const n=(0,o.zh)(e),[i,l]=v(),{preferredVersionName:s}=i[e];return{preferredVersion:null!=(t=n.versions.find((e=>e.name===s)))?t:null,savePreferredVersionName:(0,r.useCallback)((t=>{l.savePreferredVersion(e,t)}),[l,e])}}function w(){const e=(0,o._r)(),[t]=v();function n(n){var r;const o=e[n],{preferredVersionName:a}=t[n];return null!=(r=o.versions.find((e=>e.name===a)))?r:null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(67294),o=n(902);const a=Symbol("EmptyContext"),i=r.createContext(a);function l(e){let{children:t,name:n,items:o}=e;const a=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(i.Provider,{value:a},t)}function s(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocsSidebarProvider");return e}},74477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(67294),o=n(902);const a=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(null===e)throw new o.i6("DocsVersionProvider");return e}},93163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>p});var r=n(67294),o=n(13102),a=n(87524),i=n(91980),l=n(86668),s=n(902);const c=r.createContext(void 0);function u(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[s,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:s})),[e,n,u,s])}function d(e){let{children:t}=e;const n=u();return r.createElement(c.Provider,{value:n},t)}function p(){const e=r.useContext(c);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(67294),o=n(902);const a=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,o.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},76857:(e,t,n)=>{"use strict";n.d(t,{P:()=>s,Y:()=>u});var r=n(67294),o=n(902),a=n(93163),i=n(13102);const l=r.createContext(null);function s(e){let{children:t}=e;const n=function(){const e=(0,a.e)(),t=(0,i.HY)(),[n,l]=(0,r.useState)(!1),s=null!==t.component,c=(0,o.D9)(s);return(0,r.useEffect)((()=>{s&&!c&&l(!0)}),[s,c]),(0,r.useEffect)((()=>{s?e.shown||l(!0):l(!1)}),[e.shown,s]),(0,r.useMemo)((()=>[n,l]),[n])}();return r.createElement(l.Provider,{value:n},t)}function c(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function u(){const e=(0,r.useContext)(l);if(!e)throw new o.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),s=(0,i.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:c(s)})),[a,s,t])}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(67294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},66177:(e,t,n)=>{"use strict";n.d(t,{K:()=>i,M:()=>l});var r=n(67294),o=n(52263),a=n(91980);function i(){return(0,a.Nc)("q")}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,o.default)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>""+e+n+"?q="+encodeURIComponent(t)),[e,n])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>c});var r=n(67294),o=n(10412);const a="desktop",i="mobile",l="ssr";function s(){return o.default.canUseDOM?window.innerWidth>996?a:i:l}function c(){const[e,t]=(0,r.useState)((()=>s()));return(0,r.useEffect)((()=>{function e(){t(s())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>"theme-admonition-"+e},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>"theme-doc-sidebar-item-category-level-"+e,docSidebarItemLinkLevel:e=>"theme-doc-sidebar-item-link-level-"+e},blog:{}}},91442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},53438:(e,t,n)=>{"use strict";n.d(t,{MN:()=>E,Wl:()=>m,_F:()=>b,cE:()=>p,hI:()=>S,jA:()=>h,lO:()=>y,oz:()=>w,vY:()=>k,xz:()=>f});var r=n(67294),o=n(76775),a=n(18790),i=n(94104),l=n(60373),s=n(74477),c=n(1116),u=n(67392),d=n(48596);const p=!!i._r;function f(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error("no version doc found by id="+e);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function h(){const{pathname:e}=(0,o.TH)(),t=(0,c.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=v({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(e+" is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.");return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t);function b(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||((e,t)=>e.some((e=>b(e,t))))(e.items,t))}function v(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function y(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,u.j)([t,n,o].filter(Boolean))),[t,n,o])}function w(e,t){const n=y(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error("Can't find any sidebar with id \""+e+'" in version'+(n.length>1?"s":"")+" "+n.map((e=>e.name)).join(", ")+'".\nAvailable sidebar ids are:\n- '+t.map((e=>e[0])).join("\n- "));return r[1]}),[e,n])}function k(e,t){const n=y(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error("Couldn't find any doc with id \""+e+'" in version'+(n.length>1?"s":"")+' "'+n.map((e=>e.name)).join(", ")+'".\nAvailable doc ids are:\n- '+(0,u.j)(t.map((e=>e.id))).join("\n- "))}return r}),[e,n])}function S(e){let{route:t,versionMetadata:n}=e;const r=(0,o.TH)(),i=t.routes,l=i.find((e=>(0,o.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,c=s?n.docsSidebars[s]:void 0;return{docElement:(0,a.H)(i),sidebarName:s,sidebarItems:c}}function E(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},69690:(e,t,n)=>{"use strict";n.d(t,{aG:()=>c,Cw:()=>s,QW:()=>u});var r=n(87462),o=n(67294),a=n(95999),i=n(18780);const l="errorBoundaryError_a6uf";function s(e){return o.createElement("button",(0,r.Z)({type:"button"},e),o.createElement(a.default,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return o.createElement("p",{className:l},n)}class u extends o.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},42489:(e,t,n)=>{"use strict";function r(e){return"title"in e[0]}n.d(t,{a:()=>r})},82128:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(52263);function o(e){const{siteConfig:t}=(0,r.default)(),{title:n,titleDelimiter:o}=t;return null!=e&&e.trim().length?e.trim()+" "+o+" "+n:n}},91980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>c,Rb:()=>l,_X:()=>s});var r=n(67294),o=n(76775),a=n(61688),i=n(902);function l(e){!function(e){const t=(0,o.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,o.k6)();return(0,a.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function c(e){var t;const n=null!=(t=s(e))?t:"",a=function(){const e=(0,o.k6)();return(0,r.useCallback)(((t,n,r)=>{const o=new URLSearchParams(e.location.search);n?o.set(t,n):o.delete(t),(null!=r&&r.push?e.push:e.replace)({search:o.toString()})}),[e])}();return[n,(0,r.useCallback)(((t,n)=>{a(e,t,n)}),[a,e])]}},67392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function o(e){return Array.from(new Set(e))}n.d(t,{j:()=>o,l:()=>r})},10833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>u,VC:()=>f});var r=n(67294),o=n(86010),a=n(35742),i=n(30226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(44996),c=n(82128);function u(e){let{title:t,description:n,keywords:o,image:i,children:l}=e;const u=(0,c.p)(t),{withBaseUrl:d}=(0,s.useBaseUrlUtils)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,o.default)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(a.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),a="plugin-"+n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"");const i="plugin-id-"+n.plugin.id;return r.createElement(p,{className:(0,o.default)(a,i)},t)}},58978:(e,t,n)=>{"use strict";n.d(t,{A:()=>l,V:()=>s});var r=n(67294),o=n(93163),a=n(13102),i=n(76857);function l(e){function t(e){var t;return"left"===(null!=(t=e.position)?t:"right")}return[e.filter(t),e.filter((e=>!t(e)))]}function s(e){let{children:t}=e;return r.createElement(a.n2,null,r.createElement(o.M,null,r.createElement(i.P,null,t)))}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,LI:()=>o,Qc:()=>c,Ql:()=>s,i6:()=>l,zX:()=>a});var r=n(67294);const o=n(10412).default.canUseDOM?r.useLayoutEffect:r.useEffect;function a(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return o((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){var n,r,o,a;super(),this.name="ReactContextError",this.message="Hook "+(null!=(n=null==(r=this.stack)||null==(o=r.split("\n")[1])||null==(a=o.match(/at (?:\w+\.)?(?<name>\w+)/))?void 0:a.groups.name)?n:"")+" is called outside the <"+e+">. "+(null!=t?t:"")}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},98022:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>r});n(67294),n(723),n(52263);function r(e,t){const n=e=>{var t;return null==(t=!e||e.endsWith("/")?e:e+"/")?void 0:t.toLowerCase()};return n(e)===n(t)}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d,o5:()=>p});var r=n(67294),o=n(10412),a=n(72389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function c(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const u=()=>o.default.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),o=(0,r.useRef)(u()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function p(){const e=c(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),o=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>null==n.current?void 0:n.current()))})),{blockElementScrollPositionUntilNextRender:o}}function f(){const e=(0,r.useRef)(null),t=(0,a.default)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>null==e.current?void 0:e.current()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(94104),o=n(52263),a=n(60373);const i="default";function l(e,t){return"docs-"+e+"-"+t}function s(){const{i18n:e}=(0,o.default)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,a.Oh)();const c=[i,...Object.keys(t).map((function(e){var r;const o=(null==n?void 0:n.activePlugin.pluginId)===e?n.activeVersion:void 0,a=s[e],i=t[e].versions.find((e=>e.isLast));return l(e,(null!=(r=null!=o?o:a)?r:i).name)}))];return{locale:e.currentLocale,tags:c}}},55225:(e,t,n)=>{"use strict";n.d(t,{l:()=>p,u:()=>s});var r=n(87462),o=n(67294),a=n(76775),i=n(95999),l=n(85936);const s="__docusaurus_skipToContent_fallback";function c(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function u(){const e=(0,o.useRef)(null),{action:t}=(0,a.k6)(),n=(0,o.useCallback)((e=>{e.preventDefault();const t=null!=(n=document.querySelector("main:first-of-type"))?n:document.getElementById(s);var n;t&&c(t)}),[]);return(0,l.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&c(e.current)})),{containerRef:e,onClick:n}}const d=(0,i.translate)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function p(e){var t;const n=null!=(t=e.children)?t:d,{containerRef:a,onClick:i}=u();return o.createElement("div",{ref:a,role:"region","aria-label":d},o.createElement("a",(0,r.Z)({},e,{href:"#"+s,onClick:i}),n))}},50012:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>u,_f:()=>p});var r=n(67294),o=n(61688);const a="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function l(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const c={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:t,set:t,del:t,listen:t}}(e);const n=l(null==t?void 0:t.persistence);return null===n?c:{get:()=>{try{return n.getItem(e)}catch(t){return console.error("Docusaurus storage error, can't get key="+e,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error("Docusaurus storage error, can't set "+e+"="+t,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error("Docusaurus storage error, can't delete key="+e,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error("Docusaurus storage error, can't listen for changes of key="+e,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?c:u(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,o.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}function p(e){void 0===e&&(e=a);const t=l(e);if(!t)return[];const n=[];for(let r=0;r<t.length;r+=1){const e=t.key(r);null!==e&&n.push(e)}return n}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>a});var r=n(52263),o=n(76775);function a(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:a}}=(0,r.default)(),{pathname:i}=(0,o.TH)(),l=a===n?e:e.replace("/"+a+"/","/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:o}=e;return""+(o?t:"")+function(e){return e===n?""+l:""+l+e+"/"}(r)+s}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(67294),o=n(76775),a=n(902);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(52263);function o(){return(0,r.default)().siteConfig.themeConfig}},6278:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(52263);function o(){const{siteConfig:{themeConfig:e}}=(0,r.default)();return e}},239:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(67294),o=n(98022),a=n(44996),i=n(6278);function l(){const{withBaseUrl:e}=(0,a.useBaseUrlUtils)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const a=new URL(r);if((0,o.F)(t,a.href))return r;const i=""+(a.pathname+a.hash);return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:e+"/"}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},54143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},18780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},88991:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSpecInfo=void 0;const r=n(38157);t.getSpecInfo=function(e){return(0,r.call)({module:"bloks",api:"getSpecInfo",args:{styleId:e}})}},38157:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.call=void 0;let n=!1,r=0;const o={},a=["staticdocs.thefacebook.com","localhost"];const i="undefined"!=typeof window&&new URL(window.location.href).searchParams.get("parentHostname")||"https://www.internalfb.com";t.call=function(e){if(!a.includes(window.location.hostname)&&!window.location.hostname.endsWith(".internalfb.com"))return Promise.reject(new Error("Not running on static docs"));n||(n=!0,window.addEventListener("message",(e=>{if("static-docs-bridge-response"!==e.data.event)return;const t=e.data.id;t in o||console.error("Recieved response for id: "+t+" with no matching receiver"),"response"in e.data?o[t].resolve(e.data.response):o[t].reject(new Error(e.data.error)),delete o[t]})));const t=r++,l=new Promise(((e,n)=>{o[t]={resolve:e,reject:n}})),s={event:"static-docs-bridge-call",id:t,module:e.module,api:e.api,args:e.args},c="localhost"===window.location.hostname?"*":i;return window.parent.postMessage(s,c),l}},86735:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.gk=t.getGKs=void 0;const r=n(38157);function o(){return(0,r.call)({module:"gks",api:"getGKs",args:{}})}t.getGKs=o;const a={};t.gk=function(e){return e in a?Promise.resolve(a[e]):o().then((t=>(a[e]=-1!==t.xfb_static_docs_query.static_docs_gks.findIndex((t=>t.name==e)),a[e]))).catch((()=>(a[e]=!1,a[e])))}},75707:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reportContentSelected=t.reportFeatureUsage=t.reportContentCopied=void 0;const r=n(38157),o=()=>{};t.reportContentCopied=function(e){const{textContent:t}=e;return(0,r.call)({module:"feedback",api:"reportContentCopied",args:{textContent:t}}).then(o).catch(o)},t.reportFeatureUsage=function(e){const{featureName:t,id:n}=e;return console.log("used feature"),(0,r.call)({module:"feedback",api:"reportFeatureUsage",args:{featureName:t,id:n}}).then(o).catch(o)},t.reportContentSelected=function(e){const{textContent:t}=e;return(0,r.call)({module:"feedback",api:"reportContentSelected",args:{textContent:t}}).then(o).catch(o)}},86341:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.OssOnly=t.FbInternalOnly=t.getEphemeralDiffNumber=t.hasEphemeralDiffNumber=t.isInternal=t.validateFbContentArgs=t.fbInternalOnly=t.fbContent=t.checkGKs=t.inpageeditor=t.feedback=t.uidocs=t.bloks=void 0,t.bloks=a(n(88991)),t.uidocs=a(n(87688)),t.feedback=a(n(75707)),t.inpageeditor=a(n(19445)),t.checkGKs=a(n(86735));const i=["internal","external"];function l(e){return c(e),u()?"internal"in e?s(e.internal):[]:"external"in e?s(e.external):[]}function s(e){return"function"==typeof e?e():e}function c(e){if("object"!=typeof e)throw new Error("fbContent() args must be an object containing keys: "+i+". Instead got "+e);if(!Object.keys(e).find((e=>i.find((t=>t===e)))))throw new Error("No valid args found in "+JSON.stringify(e)+". Accepted keys: "+i);const t=Object.keys(e).filter((e=>!i.find((t=>t===e))));if(t.length>0)throw new Error("Unexpected keys "+t+" found in fbContent() args. Accepted keys: "+i)}function u(){try{return Boolean(!1)}catch(e){return console.log("process.env.FB_INTERNAL couldn't be read, maybe you forgot to add the required webpack EnvironmentPlugin config?",e),!1}}function d(){try{return null}catch(e){return console.log("process.env.PHABRICATOR_DIFF_NUMBER couldn't be read, maybe you forgot to add the required webpack EnvironmentPlugin config?",e),null}}t.fbContent=l,t.fbInternalOnly=function(e){return l({internal:e})},t.validateFbContentArgs=c,t.isInternal=u,t.hasEphemeralDiffNumber=function(){return Boolean(d())},t.getEphemeralDiffNumber=d,t.FbInternalOnly=function(e){return u()?e.children:null},t.OssOnly=function(e){return u()?null:e.children}},19445:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.submitDiff=t.DiffKind=void 0;const r=n(38157);!function(e){e.modify="modify",e.add="add"}(t.DiffKind||(t.DiffKind={})),t.submitDiff=function(e){const{file_path:t,new_content:n,project_name:o,diff_number:a,diff_kind:i}=e;return(0,r.call)({module:"inpageeditor",api:"createPhabricatorDiffApi",args:{file_path:t,new_content:n,project_name:o,diff_number:a,diff_kind:i}}).catch((e=>{throw new Error("Error occurred while trying to submit diff. Stack trace: "+e)}))}},87688:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getApi=t.docsets=void 0;const r=n(38157);t.docsets={BLOKS_CORE:"887372105406659"},t.getApi=function(e){const{name:t,framework:n,docset:o}=e;return(0,r.call)({module:"uidocs",api:"getApi",args:{name:t,framework:n,docset:o}})}},92509:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(n(10412)),a=n(86341),i=/^\//,l=/\/$/,s="__internaldocs_auto_redirect",c="internalfb.com",u="/intern/staticdocs",d="disableRedirect",p="[docusaurus-plugin-internaldocs-fb]";function f(e){const t=new URLSearchParams(window.location.search).get(e);return console.log('query "'+e+'": '+t),null!==t}t.default=function(){function e(e){if(window.location.hostname.endsWith(c))return;if(window.top==window.self&&window.location.hostname.endsWith(".thefacebook.com")&&!f(d)){const t=new URL(window.location.href);return t.hostname=c,t.port="","staticdocs.thefacebook.com"===window.location.hostname?t.pathname=u+e.pathname:t.pathname=u+window.location.hostname.split(".")[0]+e.pathname,console.log(p+" Redirecting to "+t.href),void(window.location.href=t.href)}const t=new AbortController,o=setTimeout((()=>t.abort()),2e3);fetch("https://staticdocs.thefacebook.com/ping",{signal:t.signal}).then((()=>{clearTimeout(o),fetch("https://www.internalfb.com/intern/internaldocs/check",{credentials:"include",referrerPolicy:"no-referrer-when-downgrade"}).then((e=>e.json())).then((e=>function(e){if(!e.showBanner||!e.redirectTo||!e.template)return;const t=document.getElementById("internaldocs-banner");if(t){const o=location.href,a=new URL(o).host,s=o.slice(o.indexOf(a)+a.length),c=e.redirectTo.replace(l,"")+"/"+(s?s.replace(i,""):"");f(d)&&(console.log(p+" Disabling redirect because of query parameter"),r(!1)),e.autoRedirectEnabled&&n()&&(console.log(p+" Redirecting to "+c),window.location.href=c),function(e,t,o,a){const i=t.match(/(.*)\{\{([^}]+)\}\}(.*)/);if(!i)return;const l=i[1]||"",s=i[2]||"",c=i[3]||"";Array.from(e.childNodes).map((t=>e.removeChild(t))),e.appendChild(document.createTextNode(l));const u=document.createElement("a");u.href=o,u.style.color="#3578e5",u.appendChild(document.createTextNode(s)),e.appendChild(u),e.appendChild(document.createTextNode(c));const d=document.createElement("p");d.style.fontSize="11px",d.style.marginBottom="3px";const p=document.createElement("input");p.id="internaldocs-remember-checkbox",p.type="checkbox",p.style.height="8px",p.checked=n(),p.addEventListener("change",(()=>{r(Boolean(p.checked))})),d.appendChild(p),a&&e.appendChild(d);const f=document.createElement("label");f.htmlFor="internaldocs-remember-checkbox",f.appendChild(document.createTextNode("Redirect me automatically in future")),d.appendChild(f),e.style.display="block"}(t,e.template,c,e.autoRedirectEnabled)}}(e))).catch((()=>{}))})).catch((()=>{}))}function t(){setTimeout((()=>{var e;null===(e=window.parent)||void 0===e||e.postMessage({event:"page-update",title:document.title,location:window.location.href,version:2},"*")}),0)}function n(){const e=localStorage.getItem(s);return"true"===e?(console.log(p+" opted in to auto redirects"),!0):"false"===e?(console.log(p+" opted out of auto redirects"),!1):(console.log(p+" using default auto-redirect behaviour: true"),!0)}function r(e){localStorage.setItem(s,e?"true":"false")}o.default.canUseDOM&&(e(window.location),t(),document.addEventListener("copy",(()=>{const e=document.getSelection();e&&a.feedback.reportContentCopied({textContent:e.toString()})})));return{onRouteUpdate:n=>{let{location:r}=n;e(r),t()}}}()},86010:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function o(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}n.r(t),n.d(t,{clsx:()=>o,default:()=>a});const a=o},99318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>P,Ep:()=>p});var r=n(87462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&o(e),s=t&&o(t),c=l||s;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(2177);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,c=i.forceRefresh,w=void 0!==c&&c,k=i.getUserConfirmation,S=void 0===k?g:k,E=i.keyLength,_=void 0===E?6:E,x=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return x&&(a=u(a,x)),f(a,r,n)}function T(){return Math.random().toString(36).substr(2,_)}var P=m();function A(e){(0,r.Z)(z,e),z.length=n.length,P.notifyListeners(z.location,z.action)}function R(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||N(C(e.state))}function L(){N(C(y()))}var O=!1;function N(e){if(O)O=!1,A();else{P.confirmTransitionTo(e,"POP",S,(function(t){t?A({action:"POP",location:e}):function(e){var t=z.location,n=D.indexOf(t.key);-1===n&&(n=0);var r=D.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(O=!0,M(o))}(e)}))}}var I=C(y()),D=[I.key];function F(e){return x+p(e)}function M(e){n.go(e)}var j=0;function B(e){1===(j+=e)&&1===e?(window.addEventListener(b,R),a&&window.addEventListener(v,L)):0===j&&(window.removeEventListener(b,R),a&&window.removeEventListener(v,L))}var U=!1;var z={length:n.length,action:"POP",location:I,createHref:F,push:function(e,t){var r="PUSH",a=f(e,t,T(),z.location);P.confirmTransitionTo(a,r,S,(function(e){if(e){var t=F(a),i=a.key,l=a.state;if(o)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=D.indexOf(z.location.key),c=D.slice(0,s+1);c.push(a.key),D=c,A({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,T(),z.location);P.confirmTransitionTo(a,r,S,(function(e){if(e){var t=F(a),i=a.key,l=a.state;if(o)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=D.indexOf(z.location.key);-1!==s&&(D[s]=a.key),A({action:r,location:a})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=P.setPrompt(e);return U||(B(1),U=!0),function(){return U&&(U=!1,B(-1)),t()}},listen:function(e){var t=P.appendListener(e);return B(1),function(){B(-1),t()}}};return z}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:s},slash:{encodePath:s,decodePath:s}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function _(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function x(e){window.location.replace(E(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?g:o,i=n.hashType,c=void 0===i?"slash":i,b=e.basename?d(s(e.basename)):"",v=S[c],y=v.encodePath,w=v.decodePath;function C(){var e=w(_());return b&&(e=u(e,b)),f(e)}var T=m();function P(e){(0,r.Z)(U,e),U.length=t.length,T.notifyListeners(U.location,U.action)}var A=!1,R=null;function L(){var e,t,n=_(),r=y(n);if(n!==r)x(r);else{var o=C(),i=U.location;if(!A&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(R===p(o))return;R=null,function(e){if(A)A=!1,P();else{var t="POP";T.confirmTransitionTo(e,t,a,(function(n){n?P({action:t,location:e}):function(e){var t=U.location,n=D.lastIndexOf(p(t));-1===n&&(n=0);var r=D.lastIndexOf(p(e));-1===r&&(r=0);var o=n-r;o&&(A=!0,F(o))}(e)}))}}(o)}}var O=_(),N=y(O);O!==N&&x(N);var I=C(),D=[p(I)];function F(e){t.go(e)}var M=0;function j(e){1===(M+=e)&&1===e?window.addEventListener(k,L):0===M&&window.removeEventListener(k,L)}var B=!1;var U={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,U.location);T.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);if(_()!==o){R=t,function(e){window.location.hash=e}(o);var a=D.lastIndexOf(p(U.location)),i=D.slice(0,a+1);i.push(t),D=i,P({action:n,location:r})}else P()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,U.location);T.confirmTransitionTo(r,n,a,(function(e){if(e){var t=p(r),o=y(b+t);_()!==o&&(R=t,x(o));var a=D.indexOf(p(U.location));-1!==a&&(D[a]=t),P({action:n,location:r})}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(j(1),B=!0),function(){return B&&(B=!1,j(-1)),t()}},listen:function(e){var t=T.appendListener(e);return j(1),function(){j(-1),t()}}};return U}function T(e,t,n){return Math.min(Math.max(e,t),n)}function P(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,c=void 0===s?6:s,u=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,c)}var g=T(l,0,a.length-1),b=a.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(59864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g<i.length;++g){var b=i[g];if(!(a[b]||r&&r[b]||h&&h[b]||l&&l[b])){var v=p(n,b);try{c(t,b,v)}catch(y){}}}}return t}},41143:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},32497:(e,t,n)=>{"use strict";n.r(t)},52295:(e,t,n)=>{"use strict";n.r(t)},74865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,a){for(var i,l,s=o(e),c=1;c<arguments.length;c++){for(var u in i=Object(arguments[c]))n.call(i,u)&&(s[u]=i[u]);if(t){l=t(i);for(var d=0;d<l.length;d++)r.call(i,l[d])&&(s[l[d]]=i[l[d]])}}return s}},87410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var l in a)if(a.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=a[l])}var c=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],o||l);var s=t[l],c=r.util.type(s);"Object"!==c||a[i(s)]?"Array"!==c||a[i(s)]||(a[i(s)]=!0,e(s,n,l,a)):(a[i(s)]=!0,e(s,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",a),a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new l;return s(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,l,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=l.next,E=u;S!==t.tail&&!(d&&E>=d.reach);E+=S.value.length,S=S.next){var _=S.value;if(t.length>e.length)return;if(!(_ instanceof o)){var x,C=1;if(v){if(!(x=a(k,E,e,b))||x.index>=e.length)break;var T=x.index,P=x.index+x[0].length,A=E;for(A+=S.value.length;T>=A;)A+=(S=S.next).value.length;if(E=A-=S.value.length,S.value instanceof o)continue;for(var R=S;R!==t.tail&&(A<P||"string"==typeof R.value);R=R.next)C++,A+=R.value.length;C--,_=e.slice(E,A),x.index-=E}else if(!(x=a(k,0,_,b)))continue;T=x.index;var L=x[0],O=_.slice(0,T),N=_.slice(T+L.length),I=E+_.length;d&&I>d.reach&&(d.reach=I);var D=S.prev;if(O&&(D=s(t,D,O),E+=O.length),c(t,D,C),S=s(t,D,new o(p,g?r.tokenize(L,g):L,y,L)),N&&s(t,S,N),C>1){var F={cause:p+","+m,reach:I};i(e,t,n,S.prev,E,F),d&&F.reach>d.reach&&(d.reach=F.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function c(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var l="";for(var s in a.attributes)l+=" "+s+'="'+(a.attributes[s]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+l+">"+a.content+"</"+a.tag+">"},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.shell=e.languages.bash}(o),o.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o=t[n];if("code"===o.type){var a=o.content[1],i=o.content[3];if(a&&i&&"code-language"===a.type&&"code-block"===i.type&&"string"==typeof a.content){var l=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(o.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r],c=/language-(.+)/.exec(a);if(c){n=c[1];break}}var u,d=e.languages[n];if(d)t.content=e.highlight((u=t.content,u.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var a=p(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),o.length>0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var c=t[s];"variable"===c.type&&o.indexOf(c.content)>=0&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))o++;else if(r.test(l)&&0===--o)return a}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),o.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function c(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,s(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function u(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,u={},d=s(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=l(i++,r)););return u[n]=o,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[i],a="string"==typeof r?r:r.content,l=a.indexOf(o);if(-1!==l){++i;var s=a.substring(0,l),d=c(u[o]),f=a.substring(l+o.length),m=[];if(s&&m.push(s),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r<o;r++){var a=n[r];if("string"!=typeof a){var i=a.content;if(Array.isArray(i))if("template-string"===a.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=p(l),c=l.alias,d=Array.isArray(c)?c[0]:c,f=e.languages[d];if(!f)continue;i[1]=u(s,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(o),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];"RegExp"===e.util.type(a)&&(a=e.languages.javascript[o]={pattern:a});var i=a.inside||{};a.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(o),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;if("string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(o);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}o.content&&"string"!=typeof o.content&&l(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(o>=a.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof c?l.splice.apply(l,[s,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:"shell",aliasTitles:{shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (Scss)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(29901),o=n(39642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6726},16500:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var l={},s=e[r];if(s){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,c),t(s.optional,c),t(s.modify,c)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(c),l=(l||[]).map(c);var u=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(s),m=u;o(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function c(e){if(e in l)return l[e];s[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete s[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return l[e]=o}for(var u in n)c(u);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},92703:(e,t,n)=>{"use strict";var r=n(50414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),o=n(27418),a=n(63840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function c(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f=Object.prototype.hasOwnProperty,m={},h={};function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){b[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];b[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){b[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){b[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){b[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){b[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){b[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){b[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){b[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var o=b.hasOwnProperty(t)?b[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!f.call(h,e)||!f.call(m,e)&&(p.test(e)?h[e]=!0:(m[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(v,y);b[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),b.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){b[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var k=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=60103,E=60106,_=60107,x=60108,C=60114,T=60109,P=60110,A=60112,R=60113,L=60120,O=60115,N=60116,I=60121,D=60128,F=60129,M=60130,j=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;S=B("react.element"),E=B("react.portal"),_=B("react.fragment"),x=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),P=B("react.context"),A=B("react.forward_ref"),R=B("react.suspense"),L=B("react.suspense_list"),O=B("react.memo"),N=B("react.lazy"),I=B("react.block"),B("react.scope"),D=B("react.opaque.id"),F=B("react.debug_trace_mode"),M=B("react.offscreen"),j=B("react.legacy_hidden")}var U,z="function"==typeof Symbol&&Symbol.iterator;function q(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=z&&e[z]||e["@@iterator"])?e:null}function G(e){if(void 0===U)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);U=t&&t[1]||""}return"\n"+U+e}var H=!1;function $(e,t){if(!e||H)return"";H=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var o=s.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,l=a.length-1;1<=i&&0<=l&&o[i]!==a[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==a[l]){if(1!==i||1!==l)do{if(i--,0>--l||o[i]!==a[l])return"\n"+o[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{H=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?G(e):""}function V(e){switch(e.tag){case 5:return G(e.type);case 16:return G("Lazy");case 13:return G("Suspense");case 19:return G("SuspenseList");case 0:case 2:case 15:return e=$(e.type,!1);case 11:return e=$(e.type.render,!1);case 22:return e=$(e.type._render,!1);case 1:return e=$(e.type,!0);default:return""}}function W(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case _:return"Fragment";case E:return"Portal";case C:return"Profiler";case x:return"StrictMode";case R:return"Suspense";case L:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case P:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case A:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case O:return W(e.type);case I:return W(e._render);case N:t=e._payload,e=e._init;try{return W(e(t))}catch(n){}}return null}function Z(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function K(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=K(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=K(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function X(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Z(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Z(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,Z(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function oe(e,t,n){"number"===t&&X(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ae(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Z(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Z(n)}}function ce(e,t){var n=Z(t.value),r=Z(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ue(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de="http://www.w3.org/1999/xhtml",pe="http://www.w3.org/2000/svg";function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function me(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,ge,be=(ge=function(e,t){if(e.namespaceURI!==pe||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ge(e,t)}))}:ge);function ve(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var ye={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},we=["Webkit","ms","Moz","O"];function ke(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||ye.hasOwnProperty(e)&&ye[e]?(""+t).trim():t+"px"}function Se(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=ke(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(ye).forEach((function(e){we.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ye[t]=ye[e]}))}));var Ee=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function _e(e,t){if(t){if(Ee[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function xe(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Ce(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Te=null,Pe=null,Ae=null;function Re(e){if(e=ro(e)){if("function"!=typeof Te)throw Error(i(280));var t=e.stateNode;t&&(t=ao(t),Te(e.stateNode,e.type,t))}}function Le(e){Pe?Ae?Ae.push(e):Ae=[e]:Pe=e}function Oe(){if(Pe){var e=Pe,t=Ae;if(Ae=Pe=null,Re(e),t)for(e=0;e<t.length;e++)Re(t[e])}}function Ne(e,t){return e(t)}function Ie(e,t,n,r,o){return e(t,n,r,o)}function De(){}var Fe=Ne,Me=!1,je=!1;function Be(){null===Pe&&null===Ae||(De(),Oe())}function Ue(e,t){var n=e.stateNode;if(null===n)return null;var r=ao(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var qe={};Object.defineProperty(qe,"passive",{get:function(){ze=!0}}),window.addEventListener("test",qe,qe),window.removeEventListener("test",qe,qe)}catch(ge){ze=!1}function Ge(e,t,n,r,o,a,i,l,s){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var He=!1,$e=null,Ve=!1,We=null,Ze={onError:function(e){He=!0,$e=e}};function Ke(e,t,n,r,o,a,i,l,s){He=!1,$e=null,Ge.apply(Ze,arguments)}function Ye(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Ye(e)!==e)throw Error(i(188))}function Je(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ye(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return Xe(o),e;if(a===r)return Xe(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var l=!1,s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l){for(s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function et(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var tt,nt,rt,ot,at=!1,it=[],lt=null,st=null,ct=null,ut=new Map,dt=new Map,pt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function mt(e,t,n,r,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":lt=null;break;case"dragenter":case"dragleave":st=null;break;case"mouseover":case"mouseout":ct=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":dt.delete(t.pointerId)}}function gt(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e=mt(t,n,r,o,a),null!==t&&(null!==(t=ro(t))&&nt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function bt(e){var t=no(e.target);if(null!==t){var n=Ye(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Qe(n)))return e.blockedOn=t,void ot(e.lanePriority,(function(){a.unstable_runWithPriority(e.priority,(function(){rt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function vt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ro(n))&&nt(t),e.blockedOn=n,!1;t.shift()}return!0}function yt(e,t,n){vt(e)&&n.delete(t)}function wt(){for(at=!1;0<it.length;){var e=it[0];if(null!==e.blockedOn){null!==(e=ro(e.blockedOn))&&tt(e);break}for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&it.shift()}null!==lt&&vt(lt)&&(lt=null),null!==st&&vt(st)&&(st=null),null!==ct&&vt(ct)&&(ct=null),ut.forEach(yt),dt.forEach(yt)}function kt(e,t){e.blockedOn===t&&(e.blockedOn=null,at||(at=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,wt)))}function St(e){function t(t){return kt(t,e)}if(0<it.length){kt(it[0],e);for(var n=1;n<it.length;n++){var r=it[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==lt&&kt(lt,e),null!==st&&kt(st,e),null!==ct&&kt(ct,e),ut.forEach(t),dt.forEach(t),n=0;n<pt.length;n++)(r=pt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<pt.length&&null===(n=pt[0]).blockedOn;)bt(n),null===n.blockedOn&&pt.shift()}function Et(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var _t={animationend:Et("Animation","AnimationEnd"),animationiteration:Et("Animation","AnimationIteration"),animationstart:Et("Animation","AnimationStart"),transitionend:Et("Transition","TransitionEnd")},xt={},Ct={};function Tt(e){if(xt[e])return xt[e];if(!_t[e])return e;var t,n=_t[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ct)return xt[e]=n[t];return e}d&&(Ct=document.createElement("div").style,"AnimationEvent"in window||(delete _t.animationend.animation,delete _t.animationiteration.animation,delete _t.animationstart.animation),"TransitionEvent"in window||delete _t.transitionend.transition);var Pt=Tt("animationend"),At=Tt("animationiteration"),Rt=Tt("animationstart"),Lt=Tt("transitionend"),Ot=new Map,Nt=new Map,It=["abort","abort",Pt,"animationEnd",At,"animationIteration",Rt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Lt,"transitionEnd","waiting","waiting"];function Dt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),Nt.set(r,t),Ot.set(r,o),c(o,[r])}}(0,a.unstable_now)();var Ft=8;function Mt(e){if(0!=(1&e))return Ft=15,1;if(0!=(2&e))return Ft=14,2;if(0!=(4&e))return Ft=13,4;var t=24&e;return 0!==t?(Ft=12,t):0!=(32&e)?(Ft=11,32):0!==(t=192&e)?(Ft=10,t):0!=(256&e)?(Ft=9,256):0!==(t=3584&e)?(Ft=8,t):0!=(4096&e)?(Ft=7,4096):0!==(t=4186112&e)?(Ft=6,t):0!==(t=62914560&e)?(Ft=5,t):67108864&e?(Ft=4,67108864):0!=(134217728&e)?(Ft=3,134217728):0!==(t=805306368&e)?(Ft=2,t):0!=(1073741824&e)?(Ft=1,1073741824):(Ft=8,e)}function jt(e,t){var n=e.pendingLanes;if(0===n)return Ft=0;var r=0,o=0,a=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==a)r=a,o=Ft=15;else if(0!==(a=134217727&n)){var s=a&~i;0!==s?(r=Mt(s),o=Ft):0!==(l&=a)&&(r=Mt(l),o=Ft)}else 0!==(a=n&~i)?(r=Mt(a),o=Ft):0!==l&&(r=Mt(l),o=Ft);if(0===r)return 0;if(r=n&((0>(r=31-Ht(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(Mt(t),o<=Ft)return t;Ft=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-Ht(t)),r|=e[n],t&=~o;return r}function Bt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Ut(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?Ut(10,t):e;case 10:return 0===(e=zt(192&~t))?Ut(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function qt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Gt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Ht(t)]=n}var Ht=Math.clz32?Math.clz32:function(e){return 0===e?32:31-($t(e)/Vt|0)|0},$t=Math.log,Vt=Math.LN2;var Wt=a.unstable_UserBlockingPriority,Zt=a.unstable_runWithPriority,Kt=!0;function Yt(e,t,n,r){Me||De();var o=Xt,a=Me;Me=!0;try{Ie(o,e,t,n,r)}finally{(Me=a)||Be()}}function Qt(e,t,n,r){Zt(Wt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var o;if(Kt)if((o=0==(4&t))&&0<it.length&&-1<ft.indexOf(e))e=mt(null,e,t,n,r),it.push(e);else{var a=Jt(e,t,n,r);if(null===a)o&&ht(e,r);else{if(o){if(-1<ft.indexOf(e))return e=mt(a,e,t,n,r),void it.push(e);if(function(e,t,n,r,o){switch(t){case"focusin":return lt=gt(lt,e,t,n,r,o),!0;case"dragenter":return st=gt(st,e,t,n,r,o),!0;case"mouseover":return ct=gt(ct,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return ut.set(a,gt(ut.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,dt.set(a,gt(dt.get(a)||null,e,t,n,r,o)),!0}return!1}(a,e,t,n,r))return;ht(e,r)}Dr(e,t,r,null,n)}}}function Jt(e,t,n,r){var o=Ce(r);if(null!==(o=no(o))){var a=Ye(o);if(null===a)o=null;else{var i=a.tag;if(13===i){if(null!==(o=Qe(a)))return o;o=null}else if(3===i){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null)}}return Dr(e,t,r,o,n),null}var en=null,tn=null,nn=null;function rn(){if(nn)return nn;var e,t,n=tn,r=n.length,o="value"in en?en.value:en.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return nn=o.slice(e,1<t?1-t:void 0)}function on(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function an(){return!0}function ln(){return!1}function sn(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?an:ln,this.isPropagationStopped=ln,this}return o(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=an)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=an)},persist:function(){},isPersistent:an}),t}var cn,un,dn,pn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=sn(pn),mn=o({},pn,{view:0,detail:0}),hn=sn(mn),gn=o({},mn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Pn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==dn&&(dn&&"mousemove"===e.type?(cn=e.screenX-dn.screenX,un=e.screenY-dn.screenY):un=cn=0,dn=e),cn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),bn=sn(gn),vn=sn(o({},gn,{dataTransfer:0})),yn=sn(o({},mn,{relatedTarget:0})),wn=sn(o({},pn,{animationName:0,elapsedTime:0,pseudoElement:0})),kn=o({},pn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Sn=sn(kn),En=sn(o({},pn,{data:0})),_n={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Cn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Tn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Cn[e])&&!!t[e]}function Pn(){return Tn}var An=o({},mn,{key:function(e){if(e.key){var t=_n[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=on(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Pn,charCode:function(e){return"keypress"===e.type?on(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?on(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Rn=sn(An),Ln=sn(o({},gn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),On=sn(o({},mn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Pn})),Nn=sn(o({},pn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=o({},gn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Dn=sn(In),Fn=[9,13,27,32],Mn=d&&"CompositionEvent"in window,jn=null;d&&"documentMode"in document&&(jn=document.documentMode);var Bn=d&&"TextEvent"in window&&!jn,Un=d&&(!Mn||jn&&8<jn&&11>=jn),zn=String.fromCharCode(32),qn=!1;function Gn(e,t){switch(e){case"keyup":return-1!==Fn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var $n=!1;var Vn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Vn[e.type]:"textarea"===t}function Zn(e,t,n,r){Le(r),0<(t=Mr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Kn=null,Yn=null;function Qn(e){Ar(e,0)}function Xn(e){if(Q(oo(e)))return e}function Jn(e,t){if("change"===e)return t}var er=!1;if(d){var tr;if(d){var nr="oninput"in document;if(!nr){var rr=document.createElement("div");rr.setAttribute("oninput","return;"),nr="function"==typeof rr.oninput}tr=nr}else tr=!1;er=tr&&(!document.documentMode||9<document.documentMode)}function or(){Kn&&(Kn.detachEvent("onpropertychange",ar),Yn=Kn=null)}function ar(e){if("value"===e.propertyName&&Xn(Yn)){var t=[];if(Zn(t,Yn,e,Ce(e)),e=Qn,Me)e(t);else{Me=!0;try{Ne(e,t)}finally{Me=!1,Be()}}}}function ir(e,t,n){"focusin"===e?(or(),Yn=n,(Kn=t).attachEvent("onpropertychange",ar)):"focusout"===e&&or()}function lr(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Yn)}function sr(e,t){if("click"===e)return Xn(t)}function cr(e,t){if("input"===e||"change"===e)return Xn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},dr=Object.prototype.hasOwnProperty;function pr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!dr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function mr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function gr(){for(var e=window,t=X();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=X((e=t.contentWindow).document)}return t}function br(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var vr=d&&"documentMode"in document&&11>=document.documentMode,yr=null,wr=null,kr=null,Sr=!1;function Er(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;Sr||null==yr||yr!==X(r)||("selectionStart"in(r=yr)&&br(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},kr&&pr(kr,r)||(kr=r,0<(r=Mr(wr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=yr)))}Dt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Dt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Dt(It,2);for(var _r="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),xr=0;xr<_r.length;xr++)Nt.set(_r[xr],0);u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Cr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Tr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Cr));function Pr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,l,s,c){if(Ke.apply(this,arguments),He){if(!He)throw Error(i(198));var u=$e;He=!1,$e=null,Ve||(Ve=!0,We=u)}}(r,t,void 0,e),e.currentTarget=null}function Ar(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,c=l.currentTarget;if(l=l.listener,s!==a&&o.isPropagationStopped())break e;Pr(o,l,c),a=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,c=l.currentTarget,l=l.listener,s!==a&&o.isPropagationStopped())break e;Pr(o,l,c),a=s}}}if(Ve)throw e=We,Ve=!1,We=null,e}function Rr(e,t){var n=io(t),r=e+"__bubble";n.has(r)||(Ir(t,e,2,!1),n.add(r))}var Lr="_reactListening"+Math.random().toString(36).slice(2);function Or(e){e[Lr]||(e[Lr]=!0,l.forEach((function(t){Tr.has(t)||Nr(t,!1,e,null),Nr(t,!0,e,null)})))}function Nr(e,t,n,r){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,a=n;if("selectionchange"===e&&9!==n.nodeType&&(a=n.ownerDocument),null!==r&&!t&&Tr.has(e)){if("scroll"!==e)return;o|=2,a=r}var i=io(a),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(o|=4),Ir(a,e,o,t),i.add(l))}function Ir(e,t,n,r){var o=Nt.get(t);switch(void 0===o?2:o){case 0:o=Yt;break;case 1:o=Qt;break;default:o=Xt}n=o.bind(null,t,n,e),o=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Dr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o||8===l.nodeType&&l.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===o||8===s.nodeType&&s.parentNode===o))return;i=i.return}for(;null!==l;){if(null===(i=no(l)))return;if(5===(s=i.tag)||6===s){r=a=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(je)return e(t,n);je=!0;try{Fe(e,t,n)}finally{je=!1,Be()}}((function(){var r=a,o=Ce(n),i=[];e:{var l=Ot.get(e);if(void 0!==l){var s=fn,c=e;switch(e){case"keypress":if(0===on(n))break e;case"keydown":case"keyup":s=Rn;break;case"focusin":c="focus",s=yn;break;case"focusout":c="blur",s=yn;break;case"beforeblur":case"afterblur":s=yn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=bn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=On;break;case Pt:case At:case Rt:s=wn;break;case Lt:s=Nn;break;case"scroll":s=hn;break;case"wheel":s=Dn;break;case"copy":case"cut":case"paste":s=Sn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Ln}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==l?l+"Capture":null:l;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Ue(m,p))&&u.push(Fr(m,h,f)))),d)break;m=m.return}0<u.length&&(l=new s(l,c,null,n,o),i.push({event:l,listeners:u}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(c=n.relatedTarget||n.fromElement)||!no(c)&&!c[eo])&&(s||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(c=(c=n.relatedTarget||n.toElement)?no(c):null)&&(c!==(d=Ye(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(s=null,c=r),s!==c)){if(u=bn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=Ln,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:oo(s),f=null==c?l:oo(c),(l=new u(h,m+"leave",s,n,o)).target=d,l.relatedTarget=f,h=null,no(o)===r&&((u=new u(p,m+"enter",c,n,o)).target=f,u.relatedTarget=d,h=u),d=h,s&&c)e:{for(p=c,m=0,f=u=s;f;f=jr(f))m++;for(f=0,h=p;h;h=jr(h))f++;for(;0<m-f;)u=jr(u),m--;for(;0<f-m;)p=jr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=jr(u),p=jr(p)}u=null}else u=null;null!==s&&Br(i,l,s,u,!1),null!==c&&null!==d&&Br(i,d,c,u,!0)}if("select"===(s=(l=r?oo(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Jn;else if(Wn(l))if(er)g=cr;else{g=lr;var b=ir}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=sr);switch(g&&(g=g(e,r))?Zn(i,g,n,o):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&oe(l,"number",l.value)),b=r?oo(r):window,e){case"focusin":(Wn(b)||"true"===b.contentEditable)&&(yr=b,wr=r,kr=null);break;case"focusout":kr=wr=yr=null;break;case"mousedown":Sr=!0;break;case"contextmenu":case"mouseup":case"dragend":Sr=!1,Er(i,n,o);break;case"selectionchange":if(vr)break;case"keydown":case"keyup":Er(i,n,o)}var v;if(Mn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else $n?Gn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Un&&"ko"!==n.locale&&($n||"onCompositionStart"!==y?"onCompositionEnd"===y&&$n&&(v=rn()):(tn="value"in(en=o)?en.value:en.textContent,$n=!0)),0<(b=Mr(r,y)).length&&(y=new En(y,e,null,n,o),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=Hn(n))&&(y.data=v))),(v=Bn?function(e,t){switch(e){case"compositionend":return Hn(t);case"keypress":return 32!==t.which?null:(qn=!0,zn);case"textInput":return(e=t.data)===zn&&qn?null:e;default:return null}}(e,n):function(e,t){if($n)return"compositionend"===e||!Mn&&Gn(e,t)?(e=rn(),nn=tn=en=null,$n=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Un&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Mr(r,"onBeforeInput")).length&&(o=new En("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=v))}Ar(i,t)}))}function Fr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Mr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Ue(e,n))&&r.unshift(Fr(e,a,o)),null!=(a=Ue(e,t))&&r.push(Fr(e,a,o))),e=e.return}return r}function jr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Br(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,c=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==c&&(l=c,o?null!=(s=Ue(n,a))&&i.unshift(Fr(n,s,l)):o||null!=(s=Ue(n,a))&&i.push(Fr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Ur(){}var zr=null,qr=null;function Gr(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Hr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var $r="function"==typeof setTimeout?setTimeout:void 0,Vr="function"==typeof clearTimeout?clearTimeout:void 0;function Wr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Zr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Kr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Yr=0;var Qr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Qr,Jr="__reactProps$"+Qr,eo="__reactContainer$"+Qr,to="__reactEvents$"+Qr;function no(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[eo]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Kr(e);null!==e;){if(n=e[Xr])return n;e=Kr(e)}return t}n=(e=n).parentNode}return null}function ro(e){return!(e=e[Xr]||e[eo])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function oo(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function ao(e){return e[Jr]||null}function io(e){var t=e[to];return void 0===t&&(t=e[to]=new Set),t}var lo=[],so=-1;function co(e){return{current:e}}function uo(e){0>so||(e.current=lo[so],lo[so]=null,so--)}function po(e,t){so++,lo[so]=e.current,e.current=t}var fo={},mo=co(fo),ho=co(!1),go=fo;function bo(e,t){var n=e.type.contextTypes;if(!n)return fo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function vo(e){return null!=(e=e.childContextTypes)}function yo(){uo(ho),uo(mo)}function wo(e,t,n){if(mo.current!==fo)throw Error(i(168));po(mo,t),po(ho,n)}function ko(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(i(108,W(t)||"Unknown",a));return o({},n,r)}function So(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||fo,go=mo.current,po(mo,e),po(ho,ho.current),!0}function Eo(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=ko(e,t,go),r.__reactInternalMemoizedMergedChildContext=e,uo(ho),uo(mo),po(mo,e)):uo(ho),po(ho,n)}var _o=null,xo=null,Co=a.unstable_runWithPriority,To=a.unstable_scheduleCallback,Po=a.unstable_cancelCallback,Ao=a.unstable_shouldYield,Ro=a.unstable_requestPaint,Lo=a.unstable_now,Oo=a.unstable_getCurrentPriorityLevel,No=a.unstable_ImmediatePriority,Io=a.unstable_UserBlockingPriority,Do=a.unstable_NormalPriority,Fo=a.unstable_LowPriority,Mo=a.unstable_IdlePriority,jo={},Bo=void 0!==Ro?Ro:function(){},Uo=null,zo=null,qo=!1,Go=Lo(),Ho=1e4>Go?Lo:function(){return Lo()-Go};function $o(){switch(Oo()){case No:return 99;case Io:return 98;case Do:return 97;case Fo:return 96;case Mo:return 95;default:throw Error(i(332))}}function Vo(e){switch(e){case 99:return No;case 98:return Io;case 97:return Do;case 96:return Fo;case 95:return Mo;default:throw Error(i(332))}}function Wo(e,t){return e=Vo(e),Co(e,t)}function Zo(e,t,n){return e=Vo(e),To(e,t,n)}function Ko(){if(null!==zo){var e=zo;zo=null,Po(e)}Yo()}function Yo(){if(!qo&&null!==Uo){qo=!0;var e=0;try{var t=Uo;Wo(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Uo=null}catch(n){throw null!==Uo&&(Uo=Uo.slice(e+1)),To(No,Ko),n}finally{qo=!1}}}var Qo=k.ReactCurrentBatchConfig;function Xo(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Jo=co(null),ea=null,ta=null,na=null;function ra(){na=ta=ea=null}function oa(e){var t=Jo.current;uo(Jo),e.type._context._currentValue=t}function aa(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function ia(e,t){ea=e,na=ta=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(Mi=!0),e.firstContext=null)}function la(e,t){if(na!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(na=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ta){if(null===ea)throw Error(i(308));ta=t,ea.dependencies={lanes:0,firstContext:t,responders:null}}else ta=ta.next=t;return e._currentValue}var sa=!1;function ca(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function ua(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function da(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function pa(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ma(e,t,n,r){var a=e.updateQueue;sa=!1;var i=a.firstBaseUpdate,l=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var c=s,u=c.next;c.next=null,null===l?i=u:l.next=u,l=c;var d=e.alternate;if(null!==d){var p=(d=d.updateQueue).lastBaseUpdate;p!==l&&(null===p?d.firstBaseUpdate=u:p.next=u,d.lastBaseUpdate=c)}}if(null!==i){for(p=a.baseState,l=0,d=u=c=null;;){s=i.lane;var f=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:f,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var m=e,h=i;switch(s=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){p=m.call(f,p,s);break e}p=m;break e;case 3:m.flags=-4097&m.flags|64;case 0:if(null==(s="function"==typeof(m=h.payload)?m.call(f,p,s):m))break e;p=o({},p,s);break e;case 2:sa=!0}}null!==i.callback&&(e.flags|=32,null===(s=a.effects)?a.effects=[i]:s.push(i))}else f={eventTime:f,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(u=d=f,c=p):d=d.next=f,l|=s;if(null===(i=i.next)){if(null===(s=a.shared.pending))break;i=s.next,s.next=null,a.lastBaseUpdate=s,a.shared.pending=null}}null===d&&(c=p),a.baseState=c,a.firstBaseUpdate=u,a.lastBaseUpdate=d,zl|=l,e.lanes=l,e.memoizedState=p}}function ha(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(i(191,o));o.call(r)}}}var ga=(new r.Component).refs;function ba(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var va={isMounted:function(e){return!!(e=e._reactInternals)&&Ye(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ps(),o=fs(e),a=da(r,o);a.payload=t,null!=n&&(a.callback=n),pa(e,a),ms(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ps(),o=fs(e),a=da(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),pa(e,a),ms(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ps(),r=fs(e),o=da(n,r);o.tag=2,null!=t&&(o.callback=t),pa(e,o),ms(e,r,n)}};function ya(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!pr(n,r)||!pr(o,a))}function wa(e,t,n){var r=!1,o=fo,a=t.contextType;return"object"==typeof a&&null!==a?a=la(a):(o=vo(t)?go:mo.current,a=(r=null!=(r=t.contextTypes))?bo(e,o):fo),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=va,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ka(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&va.enqueueReplaceState(t,t.state,null)}function Sa(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=ga,ca(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=la(a):(a=vo(t)?go:mo.current,o.context=bo(e,a)),ma(e,n,o,r),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(ba(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&va.enqueueReplaceState(o,o.state,null),ma(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var Ea=Array.isArray;function _a(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=r.refs;t===ga&&(t=r.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function xa(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Ca(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Vs(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ys(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=_a(e,t,n),r.return=e,r):((r=Ws(n.type,n.key,n.props,null,e.mode,r)).ref=_a(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Qs(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Zs(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ys(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return(n=Ws(t.type,t.key,t.props,null,e.mode,n)).ref=_a(e,null,t),n.return=e,n;case E:return(t=Qs(t,e.mode,n)).return=e,t}if(Ea(t)||q(t))return(t=Zs(t,e.mode,n,null)).return=e,t;xa(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===o?n.type===_?d(e,t,n.props.children,r,o):c(e,t,n,r):null;case E:return n.key===o?u(e,t,n,r):null}if(Ea(n)||q(n))return null!==o?null:d(e,t,n,r,null);xa(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return e=e.get(null===r.key?n:r.key)||null,r.type===_?d(t,e,r.props.children,o,r.key):c(t,e,r,o);case E:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(Ea(r)||q(r))return d(t,e=e.get(n)||null,r,o,null);xa(t,r)}return null}function h(o,i,l,s){for(var c=null,u=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(o,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),i=a(b,i,h),null===u?c=b:u.sibling=b,u=b,d=g}if(h===l.length)return n(o,d),c;if(null===d){for(;h<l.length;h++)null!==(d=p(o,l[h],s))&&(i=a(d,i,h),null===u?c=d:u.sibling=d,u=d);return c}for(d=r(o,d);h<l.length;h++)null!==(g=m(d,o,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=a(g,i,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),c}function g(o,l,s,c){var u=q(s);if("function"!=typeof u)throw Error(i(150));if(null==(s=u.call(s)))throw Error(i(151));for(var d=u=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(o,h,v.value,c);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(o,h),l=a(y,l,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(o,h),u;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=p(o,v.value,c))&&(l=a(v,l,g),null===d?u=v:d.sibling=v,d=v);return u}for(h=r(o,h);!v.done;g++,v=s.next())null!==(v=m(h,o,g,v.value,c))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=a(v,l,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(o,e)})),u}return function(e,r,a,s){var c="object"==typeof a&&null!==a&&a.type===_&&null===a.key;c&&(a=a.props.children);var u="object"==typeof a&&null!==a;if(u)switch(a.$$typeof){case S:e:{for(u=a.key,c=r;null!==c;){if(c.key===u){if(7===c.tag){if(a.type===_){n(e,c.sibling),(r=o(c,a.props.children)).return=e,e=r;break e}}else if(c.elementType===a.type){n(e,c.sibling),(r=o(c,a.props)).ref=_a(e,c,a),r.return=e,e=r;break e}n(e,c);break}t(e,c),c=c.sibling}a.type===_?((r=Zs(a.props.children,e.mode,s,a.key)).return=e,e=r):((s=Ws(a.type,a.key,a.props,null,e.mode,s)).ref=_a(e,r,a),s.return=e,e=s)}return l(e);case E:e:{for(c=a.key;null!==r;){if(r.key===c){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Qs(a,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=Ys(a,e.mode,s)).return=e,e=r),l(e);if(Ea(a))return h(e,r,a,s);if(q(a))return g(e,r,a,s);if(u&&xa(e,a),void 0===a&&!c)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,W(e.type)||"Component"))}return n(e,r)}}var Ta=Ca(!0),Pa=Ca(!1),Aa={},Ra=co(Aa),La=co(Aa),Oa=co(Aa);function Na(e){if(e===Aa)throw Error(i(174));return e}function Ia(e,t){switch(po(Oa,t),po(La,e),po(Ra,Aa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:me(null,"");break;default:t=me(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}uo(Ra),po(Ra,t)}function Da(){uo(Ra),uo(La),uo(Oa)}function Fa(e){Na(Oa.current);var t=Na(Ra.current),n=me(t,e.type);t!==n&&(po(La,e),po(Ra,n))}function Ma(e){La.current===e&&(uo(Ra),uo(La))}var ja=co(0);function Ba(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ua=null,za=null,qa=!1;function Ga(e,t){var n=Hs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Ha(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function $a(e){if(qa){var t=za;if(t){var n=t;if(!Ha(e,t)){if(!(t=Zr(n.nextSibling))||!Ha(e,t))return e.flags=-1025&e.flags|2,qa=!1,void(Ua=e);Ga(Ua,n)}Ua=e,za=Zr(t.firstChild)}else e.flags=-1025&e.flags|2,qa=!1,Ua=e}}function Va(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Ua=e}function Wa(e){if(e!==Ua)return!1;if(!qa)return Va(e),qa=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Hr(t,e.memoizedProps))for(t=za;t;)Ga(e,t),t=Zr(t.nextSibling);if(Va(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){za=Zr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}za=null}}else za=Ua?Zr(e.stateNode.nextSibling):null;return!0}function Za(){za=Ua=null,qa=!1}var Ka=[];function Ya(){for(var e=0;e<Ka.length;e++)Ka[e]._workInProgressVersionPrimary=null;Ka.length=0}var Qa=k.ReactCurrentDispatcher,Xa=k.ReactCurrentBatchConfig,Ja=0,ei=null,ti=null,ni=null,ri=!1,oi=!1;function ai(){throw Error(i(321))}function ii(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function li(e,t,n,r,o,a){if(Ja=a,ei=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Qa.current=null===e||null===e.memoizedState?Ni:Ii,e=n(r,o),oi){a=0;do{if(oi=!1,!(25>a))throw Error(i(301));a+=1,ni=ti=null,t.updateQueue=null,Qa.current=Di,e=n(r,o)}while(oi)}if(Qa.current=Oi,t=null!==ti&&null!==ti.next,Ja=0,ni=ti=ei=null,ri=!1,t)throw Error(i(300));return e}function si(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ni?ei.memoizedState=ni=e:ni=ni.next=e,ni}function ci(){if(null===ti){var e=ei.alternate;e=null!==e?e.memoizedState:null}else e=ti.next;var t=null===ni?ei.memoizedState:ni.next;if(null!==t)ni=t,ti=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ti=e).memoizedState,baseState:ti.baseState,baseQueue:ti.baseQueue,queue:ti.queue,next:null},null===ni?ei.memoizedState=ni=e:ni=ni.next=e}return ni}function ui(e,t){return"function"==typeof t?t(e):t}function di(e){var t=ci(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ti,o=r.baseQueue,a=n.pending;if(null!==a){if(null!==o){var l=o.next;o.next=a.next,a.next=l}r.baseQueue=o=a,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var s=l=a=null,c=o;do{var u=c.lane;if((Ja&u)===u)null!==s&&(s=s.next={lane:0,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null}),r=c.eagerReducer===e?c.eagerState:e(r,c.action);else{var d={lane:u,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null};null===s?(l=s=d,a=r):s=s.next=d,ei.lanes|=u,zl|=u}c=c.next}while(null!==c&&c!==o);null===s?a=r:s.next=l,ur(r,t.memoizedState)||(Mi=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function pi(e){var t=ci(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{a=e(a,l.action),l=l.next}while(l!==o);ur(a,t.memoizedState)||(Mi=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===r:(e=e.mutableReadLanes,(e=(Ja&e)===e)&&(t._workInProgressVersionPrimary=r,Ka.push(t))),e)return n(t._source);throw Ka.push(t),Error(i(350))}function mi(e,t,n,r){var o=Nl;if(null===o)throw Error(i(349));var a=t._getVersion,l=a(t._source),s=Qa.current,c=s.useState((function(){return fi(o,t,n)})),u=c[1],d=c[0];c=ni;var p=e.memoizedState,f=p.refs,m=f.getSnapshot,h=p.source;p=p.subscribe;var g=ei;return e.memoizedState={refs:f,source:t,subscribe:r},s.useEffect((function(){f.getSnapshot=n,f.setSnapshot=u;var e=a(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(u(e),e=fs(g),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,i=e;0<i;){var s=31-Ht(i),c=1<<s;r[s]|=e,i&=~c}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=f.getSnapshot,n=f.setSnapshot;try{n(e(t._source));var r=fs(g);o.mutableReadLanes|=r&o.pendingLanes}catch(a){n((function(){throw a}))}}))}),[t,r]),ur(m,n)&&ur(h,t)&&ur(p,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=u=Li.bind(null,ei,e),c.queue=e,c.baseQueue=null,d=fi(o,t,n),c.memoizedState=c.baseState=d),d}function hi(e,t,n){return mi(ci(),e,t,n)}function gi(e){var t=si();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Li.bind(null,ei,e),[t.memoizedState,e]}function bi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=ei.updateQueue)?(t={lastEffect:null},ei.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function vi(e){return e={current:e},si().memoizedState=e}function yi(){return ci().memoizedState}function wi(e,t,n,r){var o=si();ei.flags|=e,o.memoizedState=bi(1|t,n,void 0,void 0===r?null:r)}function ki(e,t,n,r){var o=ci();r=void 0===r?null:r;var a=void 0;if(null!==ti){var i=ti.memoizedState;if(a=i.destroy,null!==r&&ii(r,i.deps))return void bi(t,n,a,r)}ei.flags|=e,o.memoizedState=bi(1|t,n,a,r)}function Si(e,t){return wi(516,4,e,t)}function Ei(e,t){return ki(516,4,e,t)}function _i(e,t){return ki(4,2,e,t)}function xi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ci(e,t,n){return n=null!=n?n.concat([e]):null,ki(4,2,xi.bind(null,t,e),n)}function Ti(){}function Pi(e,t){var n=ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ai(e,t){var n=ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ii(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ri(e,t){var n=$o();Wo(98>n?98:n,(function(){e(!0)})),Wo(97<n?97:n,(function(){var n=Xa.transition;Xa.transition=1;try{e(!1),t()}finally{Xa.transition=n}}))}function Li(e,t,n){var r=ps(),o=fs(e),a={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?a.next=a:(a.next=i.next,i.next=a),t.pending=a,i=e.alternate,e===ei||null!==i&&i===ei)oi=ri=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(a.eagerReducer=i,a.eagerState=s,ur(s,l))return}catch(c){}ms(e,o,r)}}var Oi={readContext:la,useCallback:ai,useContext:ai,useEffect:ai,useImperativeHandle:ai,useLayoutEffect:ai,useMemo:ai,useReducer:ai,useRef:ai,useState:ai,useDebugValue:ai,useDeferredValue:ai,useTransition:ai,useMutableSource:ai,useOpaqueIdentifier:ai,unstable_isNewReconciler:!1},Ni={readContext:la,useCallback:function(e,t){return si().memoizedState=[e,void 0===t?null:t],e},useContext:la,useEffect:Si,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,xi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return wi(4,2,e,t)},useMemo:function(e,t){var n=si();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=si();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Li.bind(null,ei,e),[r.memoizedState,e]},useRef:vi,useState:gi,useDebugValue:Ti,useDeferredValue:function(e){var t=gi(e),n=t[0],r=t[1];return Si((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=gi(!1),t=e[0];return vi(e=Ri.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=si();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},mi(r,e,t,n)},useOpaqueIdentifier:function(){if(qa){var e=!1,t=function(e){return{$$typeof:D,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Yr++).toString(36))),Error(i(355))})),n=gi(t)[1];return 0==(2&ei.mode)&&(ei.flags|=516,bi(5,(function(){n("r:"+(Yr++).toString(36))}),void 0,null)),t}return gi(t="r:"+(Yr++).toString(36)),t},unstable_isNewReconciler:!1},Ii={readContext:la,useCallback:Pi,useContext:la,useEffect:Ei,useImperativeHandle:Ci,useLayoutEffect:_i,useMemo:Ai,useReducer:di,useRef:yi,useState:function(){return di(ui)},useDebugValue:Ti,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return Ei((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Di={readContext:la,useCallback:Pi,useContext:la,useEffect:Ei,useImperativeHandle:Ci,useLayoutEffect:_i,useMemo:Ai,useReducer:pi,useRef:yi,useState:function(){return pi(ui)},useDebugValue:Ti,useDeferredValue:function(e){var t=pi(ui),n=t[0],r=t[1];return Ei((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=pi(ui)[0];return[yi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return pi(ui)[0]},unstable_isNewReconciler:!1},Fi=k.ReactCurrentOwner,Mi=!1;function ji(e,t,n,r){t.child=null===e?Pa(t,null,n,r):Ta(t,e.child,n,r)}function Bi(e,t,n,r,o){n=n.render;var a=t.ref;return ia(t,o),r=li(e,t,n,r,a,o),null===e||Mi?(t.flags|=1,ji(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function Ui(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||$s(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ws(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,o,a))}return i=e.child,0==(o&a)&&(o=i.memoizedProps,(n=null!==(n=n.compare)?n:pr)(o,r)&&e.ref===t.ref)?al(e,t,a):(t.flags|=1,(e=Vs(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,o,a){if(null!==e&&pr(e.memoizedProps,r)&&e.ref===t.ref){if(Mi=!1,0==(a&o))return t.lanes=e.lanes,al(e,t,a);0!=(16384&e.flags)&&(Mi=!0)}return Hi(e,t,n,r,a)}function qi(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},Ss(t,n);else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},Ss(t,e),null;t.memoizedState={baseLanes:0},Ss(t,null!==a?a.baseLanes:n)}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,Ss(t,r);return ji(e,t,o,n),t.child}function Gi(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Hi(e,t,n,r,o){var a=vo(n)?go:mo.current;return a=bo(t,a),ia(t,o),n=li(e,t,n,r,a,o),null===e||Mi?(t.flags|=1,ji(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function $i(e,t,n,r,o){if(vo(n)){var a=!0;So(t)}else a=!1;if(ia(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),wa(t,n,r),Sa(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=la(c):c=bo(t,c=vo(n)?go:mo.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==c)&&ka(t,i,r,c),sa=!1;var p=t.memoizedState;i.state=p,ma(t,r,i,o),s=t.memoizedState,l!==r||p!==s||ho.current||sa?("function"==typeof u&&(ba(t,n,u,r),s=t.memoizedState),(l=sa||ya(t,n,l,r,p,s,c))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=c,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,ua(e,t),l=t.memoizedProps,c=t.type===t.elementType?l:Xo(t.type,l),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=la(s):s=bo(t,s=vo(n)?go:mo.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&ka(t,i,r,s),sa=!1,p=t.memoizedState,i.state=p,ma(t,r,i,o);var m=t.memoizedState;l!==d||p!==m||ho.current||sa?("function"==typeof f&&(ba(t,n,f,r),m=t.memoizedState),(c=sa||ya(t,n,c,r,p,m,s))?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=c):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=256),r=!1)}return Vi(e,t,n,r,a,o)}function Vi(e,t,n,r,o,a){Gi(e,t);var i=0!=(64&t.flags);if(!r&&!i)return o&&Eo(t,n,!1),al(e,t,a);r=t.stateNode,Fi.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ta(t,e.child,null,a),t.child=Ta(t,null,l,a)):ji(e,t,l,a),t.memoizedState=r.state,o&&Eo(t,n,!0),t.child}function Wi(e){var t=e.stateNode;t.pendingContext?wo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&wo(0,t.context,!1),Ia(e,t.containerInfo)}var Zi,Ki,Yi,Qi={dehydrated:null,retryLane:0};function Xi(e,t,n){var r,o=t.pendingProps,a=ja.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&a)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(a|=1),po(ja,1&a),null===e?(void 0!==o.fallback&&$a(t),e=o.children,a=o.fallback,i?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qi,e):"number"==typeof o.unstable_expectedLoadTime?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Qi,t.lanes=33554432,e):((n=Ks({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(o=tl(e,t,o.children,o.fallback,n),i=t.child,a=e.child.memoizedState,i.memoizedState=null===a?{baseLanes:n}:{baseLanes:a.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Qi,o):(n=el(e,t,o.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var o=e.mode,a=e.child;return t={mode:"hidden",children:t},0==(2&o)&&null!==a?(a.childLanes=0,a.pendingProps=t):a=Ks(t,o,0,null),n=Zs(n,o,r,null),a.return=e,n.return=e,a.sibling=n,e.child=a,n}function el(e,t,n,r){var o=e.child;return e=o.sibling,n=Vs(o,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,o){var a=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&a)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Vs(i,l),null!==e?r=Vs(e,r):(r=Zs(r,a,o,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),aa(e.return,t)}function rl(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,lastEffect:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.lastEffect=a)}function ol(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(ji(e,t,r.children,n),0!=(2&(r=ja.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(po(ja,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Ba(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),rl(t,!1,o,n,a,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Ba(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}rl(t,!0,n,null,a,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function al(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),zl|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Vs(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Vs(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!qa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return vo(t.type)&&yo(),null;case 3:return Da(),uo(ho),uo(mo),Ya(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Wa(t)?t.flags|=4:r.hydrate||(t.flags|=256)),null;case 5:Ma(t);var a=Na(Oa.current);if(n=t.type,null!==e&&null!=t.stateNode)Ki(e,t,n,r),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Na(Ra.current),Wa(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Jr]=l,n){case"dialog":Rr("cancel",r),Rr("close",r);break;case"iframe":case"object":case"embed":Rr("load",r);break;case"video":case"audio":for(e=0;e<Cr.length;e++)Rr(Cr[e],r);break;case"source":Rr("error",r);break;case"img":case"image":case"link":Rr("error",r),Rr("load",r);break;case"details":Rr("toggle",r);break;case"input":ee(r,l),Rr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Rr("invalid",r);break;case"textarea":se(r,l),Rr("invalid",r)}for(var c in _e(n,l),e=null,l)l.hasOwnProperty(c)&&(a=l[c],"children"===c?"string"==typeof a?r.textContent!==a&&(e=["children",a]):"number"==typeof a&&r.textContent!==""+a&&(e=["children",""+a]):s.hasOwnProperty(c)&&null!=a&&"onScroll"===c&&Rr("scroll",r));switch(n){case"input":Y(r),re(r,l,!0);break;case"textarea":Y(r),ue(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Ur)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(c=9===a.nodeType?a:a.ownerDocument,e===de&&(e=fe(n)),e===de?"script"===n?((e=c.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=c.createElement(n,{is:r.is}):(e=c.createElement(n),"select"===n&&(c=e,r.multiple?c.multiple=!0:r.size&&(c.size=r.size))):e=c.createElementNS(e,n),e[Xr]=t,e[Jr]=r,Zi(e,t),t.stateNode=e,c=xe(n,r),n){case"dialog":Rr("cancel",e),Rr("close",e),a=r;break;case"iframe":case"object":case"embed":Rr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Cr.length;a++)Rr(Cr[a],e);a=r;break;case"source":Rr("error",e),a=r;break;case"img":case"image":case"link":Rr("error",e),Rr("load",e),a=r;break;case"details":Rr("toggle",e),a=r;break;case"input":ee(e,r),a=J(e,r),Rr("invalid",e);break;case"option":a=ae(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=o({},r,{value:void 0}),Rr("invalid",e);break;case"textarea":se(e,r),a=le(e,r),Rr("invalid",e);break;default:a=r}_e(n,a);var u=a;for(l in u)if(u.hasOwnProperty(l)){var d=u[l];"style"===l?Se(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&be(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&ve(e,d):"number"==typeof d&&ve(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Rr("scroll",e):null!=d&&w(e,l,d,c))}switch(n){case"input":Y(e),re(e,r,!1);break;case"textarea":Y(e),ue(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Z(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Ur)}Gr(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Yi(0,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Na(Oa.current),Na(Ra.current),Wa(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return uo(ja),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Wa(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&ja.current)?0===jl&&(jl=3):(0!==jl&&3!==jl||(jl=4),null===Nl||0==(134217727&zl)&&0==(134217727&ql)||vs(Nl,Dl))),(r||n)&&(t.flags|=4),null);case 4:return Da(),null===e&&Or(t.stateNode.containerInfo),null;case 10:return oa(t),null;case 19:if(uo(ja),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(c=r.rendering))if(l)il(r,!1);else{if(0!==jl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(c=Ba(e))){for(t.flags|=64,il(r,!1),null!==(l=c.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(c=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=c.childLanes,l.lanes=c.lanes,l.child=c.child,l.memoizedProps=c.memoizedProps,l.memoizedState=c.memoizedState,l.updateQueue=c.updateQueue,l.type=c.type,e=c.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return po(ja,1&ja.current|2),t.child}e=e.sibling}null!==r.tail&&Ho()>Vl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Ba(c))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!c.alternate&&!qa)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Ho()-r.renderingStartTime>Vl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(c.sibling=t.child,t.child=c):(null!==(n=r.last)?n.sibling=c:t.child=c,r.last=c)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Ho(),n.sibling=null,t=ja.current,po(ja,l?1&t|2:1&t),n):null;case 23:case 24:return Es(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:vo(e.type)&&yo();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Da(),uo(ho),uo(mo),Ya(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return Ma(e),null;case 13:return uo(ja),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return uo(ja),null;case 4:return Da(),null;case 10:return oa(e),null;case 23:case 24:return Es(),null;default:return null}}function cl(e,t){try{var n="",r=t;do{n+=V(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o}}function ul(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Zi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ki=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Na(Ra.current);var i,l=null;switch(n){case"input":a=J(e,a),r=J(e,r),l=[];break;case"option":a=ae(e,a),r=ae(e,r),l=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),l=[];break;case"textarea":a=le(e,a),r=le(e,r),l=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Ur)}for(d in _e(n,r),n=null,a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&null!=a[d])if("style"===d){var c=a[d];for(i in c)c.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var u=r[d];if(c=null!=a?a[d]:void 0,r.hasOwnProperty(d)&&u!==c&&(null!=u||null!=c))if("style"===d)if(c){for(i in c)!c.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in u)u.hasOwnProperty(i)&&c[i]!==u[i]&&(n||(n={}),n[i]=u[i])}else n||(l||(l=[]),l.push(d,n)),n=u;else"dangerouslySetInnerHTML"===d?(u=u?u.__html:void 0,c=c?c.__html:void 0,null!=u&&c!==u&&(l=l||[]).push(d,u)):"children"===d?"string"!=typeof u&&"number"!=typeof u||(l=l||[]).push(d,""+u):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=u&&"onScroll"===d&&Rr("scroll",e),l||c===u||(l=[])):"object"==typeof u&&null!==u&&u.$$typeof===D?u.toString():(l=l||[]).push(d,u))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Yi=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function pl(e,t,n){(n=da(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Yl||(Yl=!0,Ql=r),ul(0,t)},n}function fl(e,t,n){(n=da(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return ul(0,t),r(o)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Xl?Xl=new Set([this]):Xl.add(this),ul(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var ml="function"==typeof WeakSet?WeakSet:Set;function hl(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){Us(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Xo(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Wr(t.stateNode.containerInfo))}throw Error(i(163))}function bl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;r=o.next,0!=(4&(o=o.tag))&&0!=(1&o)&&(Ms(n,e),Fs(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Xo(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ha(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ha(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Gr(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&St(n)))))}throw Error(i(163))}function vl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,r.style.display=ke("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(xo&&"function"==typeof xo.onCommitFiberUnmount)try{xo.onCommitFiberUnmount(_o,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,void 0!==o)if(0!=(4&r))Ms(t,n);else{r=t;try{o()}catch(a){Us(r,a)}}n=n.next}while(n!==e)}break;case 1:if(hl(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){Us(t,a)}break;case 5:hl(t);break;case 4:xl(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kl(e){return 5===e.tag||3===e.tag||4===e.tag}function Sl(e){e:{for(var t=e.return;null!==t;){if(kl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(ve(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||kl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?El(e,n,t):_l(e,n,t)}function El(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Ur));else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function _l(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(_l(e,t,n),e=e.sibling;null!==e;)_l(e,t,n),e=e.sibling}function xl(e,t){for(var n,r,o=t,a=!1;;){if(!a){a=o.return;e:for(;;){if(null===a)throw Error(i(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===o.tag||6===o.tag){e:for(var l=e,s=o,c=s;;)if(yl(l,c),null!==c.child&&4!==c.tag)c.child.return=c,c=c.child;else{if(c===s)break e;for(;null===c.sibling;){if(null===c.return||c.return===s)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}r?(l=n,s=o.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,r=!0,o.child.return=o,o=o.child;continue}}else if(yl(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(a=!1)}o.sibling.return=o.return,o=o.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var o=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Jr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),xe(e,o),t=xe(e,r),o=0;o<a.length;o+=2){var l=a[o],s=a[o+1];"style"===l?Se(n,s):"dangerouslySetInnerHTML"===l?be(n,s):"children"===l?ve(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ce(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(a=r.value)?ie(n,!!r.multiple,a,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,St(n.containerInfo)));case 13:return null!==t.memoizedState&&($l=Ho(),vl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void vl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new ml),t.forEach((function(t){var r=qs.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Pl(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Al=Math.ceil,Rl=k.ReactCurrentDispatcher,Ll=k.ReactCurrentOwner,Ol=0,Nl=null,Il=null,Dl=0,Fl=0,Ml=co(0),jl=0,Bl=null,Ul=0,zl=0,ql=0,Gl=0,Hl=null,$l=0,Vl=1/0;function Wl(){Vl=Ho()+500}var Zl,Kl=null,Yl=!1,Ql=null,Xl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],os=null,as=0,is=null,ls=-1,ss=0,cs=0,us=null,ds=!1;function ps(){return 0!=(48&Ol)?Ho():-1!==ls?ls:ls=Ho()}function fs(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===$o()?1:2;if(0===ss&&(ss=Ul),0!==Qo.transition){0!==cs&&(cs=null!==Hl?Hl.pendingLanes:0),e=ss;var t=4186112&~cs;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=$o(),0!=(4&Ol)&&98===e?e=Ut(12,ss):e=Ut(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function ms(e,t,n){if(50<as)throw as=0,is=null,Error(i(185));if(null===(e=hs(e,t)))return null;Gt(e,t,n),e===Nl&&(ql|=t,4===jl&&vs(e,Dl));var r=$o();1===t?0!=(8&Ol)&&0==(48&Ol)?ys(e):(gs(e,n),0===Ol&&(Wl(),Ko())):(0==(4&Ol)||98!==r&&99!==r||(null===os?os=new Set([e]):os.add(e)),gs(e,n)),Hl=e}function hs(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,a=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-Ht(l),c=1<<s,u=a[s];if(-1===u){if(0==(c&r)||0!=(c&o)){u=t,Mt(c);var d=Ft;a[s]=10<=d?u+250:6<=d?u+5e3:-1}}else u<=t&&(e.expiredLanes|=c);l&=~c}if(r=jt(e,e===Nl?Dl:0),t=Ft,0===r)null!==n&&(n!==jo&&Po(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==jo&&Po(n)}15===t?(n=ys.bind(null,e),null===Uo?(Uo=[n],zo=To(No,Yo)):Uo.push(n),n=jo):14===t?n=Zo(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Zo(n,bs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function bs(e){if(ls=-1,cs=ss=0,0!=(48&Ol))throw Error(i(327));var t=e.callbackNode;if(Ds()&&e.callbackNode!==t)return null;var n=jt(e,e===Nl?Dl:0);if(0===n)return null;var r=n,o=Ol;Ol|=16;var a=Cs();for(Nl===e&&Dl===r||(Wl(),_s(e,r));;)try{As();break}catch(s){xs(e,s)}if(ra(),Rl.current=a,Ol=o,null!==Il?r=0:(Nl=null,Dl=0,r=jl),0!=(Ul&ql))_s(e,0);else if(0!==r){if(2===r&&(Ol|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(n=Bt(e))&&(r=Ts(e,n))),1===r)throw t=Bl,_s(e,0),vs(e,n),gs(e,Ho()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Os(e);break;case 3:if(vs(e,n),(62914560&n)===n&&10<(r=$l+500-Ho())){if(0!==jt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){ps(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=$r(Os.bind(null,e),r);break}Os(e);break;case 4:if(vs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,o=-1;0<n;){var l=31-Ht(n);a=1<<l,(l=r[l])>o&&(o=l),n&=~a}if(n=o,10<(n=(120>(n=Ho()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Al(n/1960))-n)){e.timeoutHandle=$r(Os.bind(null,e),n);break}Os(e);break;default:throw Error(i(329))}}return gs(e,Ho()),e.callbackNode===t?bs.bind(null,e):null}function vs(e,t){for(t&=~Gl,t&=~ql,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Ht(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Ol))throw Error(i(327));if(Ds(),e===Nl&&0!=(e.expiredLanes&Dl)){var t=Dl,n=Ts(e,t);0!=(Ul&ql)&&(n=Ts(e,t=jt(e,t)))}else n=Ts(e,t=jt(e,0));if(0!==e.tag&&2===n&&(Ol|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(t=Bt(e))&&(n=Ts(e,t))),1===n)throw n=Bl,_s(e,0),vs(e,t),gs(e,Ho()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Os(e),gs(e,Ho()),null}function ws(e,t){var n=Ol;Ol|=1;try{return e(t)}finally{0===(Ol=n)&&(Wl(),Ko())}}function ks(e,t){var n=Ol;Ol&=-2,Ol|=8;try{return e(t)}finally{0===(Ol=n)&&(Wl(),Ko())}}function Ss(e,t){po(Ml,Fl),Fl|=t,Ul|=t}function Es(){Fl=Ml.current,uo(Ml)}function _s(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,Vr(n)),null!==Il)for(n=Il.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&yo();break;case 3:Da(),uo(ho),uo(mo),Ya();break;case 5:Ma(r);break;case 4:Da();break;case 13:case 19:uo(ja);break;case 10:oa(r);break;case 23:case 24:Es()}n=n.return}Nl=e,Il=Vs(e.current,null),Dl=Fl=Ul=t,jl=0,Bl=null,Gl=ql=zl=0}function xs(e,t){for(;;){var n=Il;try{if(ra(),Qa.current=Oi,ri){for(var r=ei.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ri=!1}if(Ja=0,ni=ti=ei=null,oi=!1,Ll.current=null,null===n||null===n.return){jl=1,Bl=t,Il=null;break}e:{var a=e,i=n.return,l=n,s=t;if(t=Dl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var c=s;if(0==(2&l.mode)){var u=l.alternate;u?(l.updateQueue=u.updateQueue,l.memoizedState=u.memoizedState,l.lanes=u.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&ja.current),p=i;do{var f;if(f=13===p.tag){var m=p.memoizedState;if(null!==m)f=null!==m.dehydrated;else{var h=p.memoizedProps;f=void 0!==h.fallback&&(!0!==h.unstable_avoidThisFallback||!d)}}if(f){var g=p.updateQueue;if(null===g){var b=new Set;b.add(c),p.updateQueue=b}else g.add(c);if(0==(2&p.mode)){if(p.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var v=da(-1,1);v.tag=2,pa(l,v)}l.lanes|=1;break e}s=void 0,l=t;var y=a.pingCache;if(null===y?(y=a.pingCache=new dl,s=new Set,y.set(c,s)):void 0===(s=y.get(c))&&(s=new Set,y.set(c,s)),!s.has(l)){s.add(l);var w=zs.bind(null,a,c,l);c.then(w,w)}p.flags|=4096,p.lanes=t;break e}p=p.return}while(null!==p);s=Error((W(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==jl&&(jl=2),s=cl(s,l),p=i;do{switch(p.tag){case 3:a=s,p.flags|=4096,t&=-t,p.lanes|=t,fa(p,pl(0,a,t));break e;case 1:a=s;var k=p.type,S=p.stateNode;if(0==(64&p.flags)&&("function"==typeof k.getDerivedStateFromError||null!==S&&"function"==typeof S.componentDidCatch&&(null===Xl||!Xl.has(S)))){p.flags|=4096,t&=-t,p.lanes|=t,fa(p,fl(p,a,t));break e}}p=p.return}while(null!==p)}Ls(n)}catch(E){t=E,Il===n&&null!==n&&(Il=n=n.return);continue}break}}function Cs(){var e=Rl.current;return Rl.current=Oi,null===e?Oi:e}function Ts(e,t){var n=Ol;Ol|=16;var r=Cs();for(Nl===e&&Dl===t||_s(e,t);;)try{Ps();break}catch(o){xs(e,o)}if(ra(),Ol=n,Rl.current=r,null!==Il)throw Error(i(261));return Nl=null,Dl=0,jl}function Ps(){for(;null!==Il;)Rs(Il)}function As(){for(;null!==Il&&!Ao();)Rs(Il)}function Rs(e){var t=Zl(e.alternate,e,Fl);e.memoizedProps=e.pendingProps,null===t?Ls(e):Il=t,Ll.current=null}function Ls(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,Fl)))return void(Il=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&Fl)||0==(4&n.mode)){for(var r=0,o=n.child;null!==o;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Il=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Il=t);Il=t=e}while(null!==t);0===jl&&(jl=5)}function Os(e){var t=$o();return Wo(99,Ns.bind(null,e,t)),null}function Ns(e,t){do{Ds()}while(null!==es);if(0!=(48&Ol))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,o=r,a=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<a;){var c=31-Ht(a),u=1<<c;o[c]=0,l[c]=-1,s[c]=-1,a&=~u}if(null!==os&&0==(24&r)&&os.has(e)&&os.delete(e),e===Nl&&(Il=Nl=null,Dl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(o=Ol,Ol|=32,Ll.current=null,zr=Kt,br(l=gr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(u=s.getSelection&&s.getSelection())&&0!==u.rangeCount){s=u.anchorNode,a=u.anchorOffset,c=u.focusNode,u=u.focusOffset;try{s.nodeType,c.nodeType}catch(C){s=null;break e}var d=0,p=-1,f=-1,m=0,h=0,g=l,b=null;t:for(;;){for(var v;g!==s||0!==a&&3!==g.nodeType||(p=d+a),g!==c||0!==u&&3!==g.nodeType||(f=d+u),3===g.nodeType&&(d+=g.nodeValue.length),null!==(v=g.firstChild);)b=g,g=v;for(;;){if(g===l)break t;if(b===s&&++m===a&&(p=d),b===c&&++h===u&&(f=d),null!==(v=g.nextSibling))break;b=(g=b).parentNode}g=v}s=-1===p||-1===f?null:{start:p,end:f}}else s=null;s=s||{start:0,end:0}}else s=null;qr={focusedElem:l,selectionRange:s},Kt=!1,us=null,ds=!1,Kl=r;do{try{Is()}catch(C){if(null===Kl)throw Error(i(330));Us(Kl,C),Kl=Kl.nextEffect}}while(null!==Kl);us=null,Kl=r;do{try{for(l=e;null!==Kl;){var y=Kl.flags;if(16&y&&ve(Kl.stateNode,""),128&y){var w=Kl.alternate;if(null!==w){var k=w.ref;null!==k&&("function"==typeof k?k(null):k.current=null)}}switch(1038&y){case 2:Sl(Kl),Kl.flags&=-3;break;case 6:Sl(Kl),Kl.flags&=-3,Cl(Kl.alternate,Kl);break;case 1024:Kl.flags&=-1025;break;case 1028:Kl.flags&=-1025,Cl(Kl.alternate,Kl);break;case 4:Cl(Kl.alternate,Kl);break;case 8:xl(l,s=Kl);var S=s.alternate;wl(s),null!==S&&wl(S)}Kl=Kl.nextEffect}}catch(C){if(null===Kl)throw Error(i(330));Us(Kl,C),Kl=Kl.nextEffect}}while(null!==Kl);if(k=qr,w=gr(),y=k.focusedElem,l=k.selectionRange,w!==y&&y&&y.ownerDocument&&hr(y.ownerDocument.documentElement,y)){null!==l&&br(y)&&(w=l.start,void 0===(k=l.end)&&(k=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(k,y.value.length)):(k=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(k=k.getSelection(),s=y.textContent.length,S=Math.min(l.start,s),l=void 0===l.end?S:Math.min(l.end,s),!k.extend&&S>l&&(s=l,l=S,S=s),s=mr(y,S),a=mr(y,l),s&&a&&(1!==k.rangeCount||k.anchorNode!==s.node||k.anchorOffset!==s.offset||k.focusNode!==a.node||k.focusOffset!==a.offset)&&((w=w.createRange()).setStart(s.node,s.offset),k.removeAllRanges(),S>l?(k.addRange(w),k.extend(a.node,a.offset)):(w.setEnd(a.node,a.offset),k.addRange(w))))),w=[];for(k=y;k=k.parentNode;)1===k.nodeType&&w.push({element:k,left:k.scrollLeft,top:k.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(k=w[y]).element.scrollLeft=k.left,k.element.scrollTop=k.top}Kt=!!zr,qr=zr=null,e.current=n,Kl=r;do{try{for(y=e;null!==Kl;){var E=Kl.flags;if(36&E&&bl(y,Kl.alternate,Kl),128&E){w=void 0;var _=Kl.ref;if(null!==_){var x=Kl.stateNode;Kl.tag,w=x,"function"==typeof _?_(w):_.current=w}}Kl=Kl.nextEffect}}catch(C){if(null===Kl)throw Error(i(330));Us(Kl,C),Kl=Kl.nextEffect}}while(null!==Kl);Kl=null,Bo(),Ol=o}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Kl=r;null!==Kl;)t=Kl.nextEffect,Kl.nextEffect=null,8&Kl.flags&&((E=Kl).sibling=null,E.stateNode=null),Kl=t;if(0===(r=e.pendingLanes)&&(Xl=null),1===r?e===is?as++:(as=0,is=e):as=0,n=n.stateNode,xo&&"function"==typeof xo.onCommitFiberRoot)try{xo.onCommitFiberRoot(_o,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,Ho()),Yl)throw Yl=!1,e=Ql,Ql=null,e;return 0!=(8&Ol)||Ko(),null}function Is(){for(;null!==Kl;){var e=Kl.alternate;ds||null===us||(0!=(8&Kl.flags)?et(Kl,us)&&(ds=!0):13===Kl.tag&&Pl(e,Kl)&&et(Kl,us)&&(ds=!0));var t=Kl.flags;0!=(256&t)&&gl(e,Kl),0==(512&t)||Jl||(Jl=!0,Zo(97,(function(){return Ds(),null}))),Kl=Kl.nextEffect}}function Ds(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Wo(e,js)}return!1}function Fs(e,t){ns.push(t,e),Jl||(Jl=!0,Zo(97,(function(){return Ds(),null})))}function Ms(e,t){rs.push(t,e),Jl||(Jl=!0,Zo(97,(function(){return Ds(),null})))}function js(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Ol))throw Error(i(331));var t=Ol;Ol|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var o=n[r],a=n[r+1],l=o.destroy;if(o.destroy=void 0,"function"==typeof l)try{l()}catch(c){if(null===a)throw Error(i(330));Us(a,c)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){o=n[r],a=n[r+1];try{var s=o.create;o.destroy=s()}catch(c){if(null===a)throw Error(i(330));Us(a,c)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Ol=t,Ko(),!0}function Bs(e,t,n){pa(e,t=pl(0,t=cl(n,t),1)),t=ps(),null!==(e=hs(e,1))&&(Gt(e,1,t),gs(e,t))}function Us(e,t){if(3===e.tag)Bs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r))){var o=fl(n,e=cl(t,e),1);if(pa(n,o),o=ps(),null!==(n=hs(n,1)))Gt(n,1,o),gs(n,o);else if("function"==typeof r.componentDidCatch&&(null===Xl||!Xl.has(r)))try{r.componentDidCatch(t,e)}catch(a){}break}}n=n.return}}function zs(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ps(),e.pingedLanes|=e.suspendedLanes&n,Nl===e&&(Dl&n)===n&&(4===jl||3===jl&&(62914560&Dl)===Dl&&500>Ho()-$l?_s(e,0):Gl|=n),gs(e,t)}function qs(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===$o()?1:2:(0===ss&&(ss=Ul),0===(t=zt(62914560&~ss))&&(t=4194304))),n=ps(),null!==(e=hs(e,t))&&(Gt(e,t,n),gs(e,n))}function Gs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Hs(e,t,n,r){return new Gs(e,t,n,r)}function $s(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Vs(e,t){var n=e.alternate;return null===n?((n=Hs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ws(e,t,n,r,o,a){var l=2;if(r=e,"function"==typeof e)$s(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case _:return Zs(n.children,o,a,t);case F:l=8,o|=16;break;case x:l=8,o|=1;break;case C:return(e=Hs(12,n,t,8|o)).elementType=C,e.type=C,e.lanes=a,e;case R:return(e=Hs(13,n,t,o)).type=R,e.elementType=R,e.lanes=a,e;case L:return(e=Hs(19,n,t,o)).elementType=L,e.lanes=a,e;case M:return Ks(n,o,a,t);case j:return(e=Hs(24,n,t,o)).elementType=j,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case P:l=9;break e;case A:l=11;break e;case O:l=14;break e;case N:l=16,r=null;break e;case I:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Hs(l,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Zs(e,t,n,r){return(e=Hs(7,e,r,t)).lanes=n,e}function Ks(e,t,n,r){return(e=Hs(23,e,r,t)).elementType=M,e.lanes=n,e}function Ys(e,t,n){return(e=Hs(6,e,null,t)).lanes=n,e}function Qs(e,t,n){return(t=Hs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Xs(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=qt(0),this.expirationTimes=qt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=qt(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}function ec(e,t,n,r){var o=t.current,a=ps(),l=fs(o);e:if(n){t:{if(Ye(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(vo(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var c=n.type;if(vo(c)){n=ko(n,c,s);break e}}n=s}else n=fo;return null===t.context?t.context=n:t.pendingContext=n,(t=da(a,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),pa(o,t),ms(o,l,a),l}function tc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function nc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function rc(e,t){nc(e,t),(e=e.alternate)&&nc(e,t)}function oc(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Xs(e,t,null!=n&&!0===n.hydrate),t=Hs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,ca(t),e[eo]=n.current,Or(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var o=(t=r[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function ac(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function ic(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a._internalRoot;if("function"==typeof o){var l=o;o=function(){var e=tc(i);l.call(e)}}ec(t,i,e,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new oc(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var s=o;o=function(){var e=tc(i);s.call(e)}}ks((function(){ec(t,i,e,o)}))}return tc(i)}function lc(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ac(t))throw Error(i(200));return Js(e,t,null,n)}Zl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ho.current)Mi=!0;else{if(0==(n&r)){switch(Mi=!1,t.tag){case 3:Wi(t),Za();break;case 5:Fa(t);break;case 1:vo(t.type)&&So(t);break;case 4:Ia(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;po(Jo,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Xi(e,t,n):(po(ja,1&ja.current),null!==(t=al(e,t,n))?t.sibling:null);po(ja,1&ja.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return ol(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),po(ja,ja.current),r)break;return null;case 23:case 24:return t.lanes=0,qi(e,t,n)}return al(e,t,n)}Mi=0!=(16384&e.flags)}else Mi=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=bo(t,mo.current),ia(t,n),o=li(null,t,r,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,vo(r)){var a=!0;So(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,ca(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&ba(t,r,l,e),o.updater=va,t.stateNode=o,o._reactInternals=t,Sa(t,r,e,n),t=Vi(null,t,r,!0,a,n)}else t.tag=0,ji(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(a=o._init)(o._payload),t.type=o,a=t.tag=function(e){if("function"==typeof e)return $s(e)?1:0;if(null!=e){if((e=e.$$typeof)===A)return 11;if(e===O)return 14}return 2}(o),e=Xo(o,e),a){case 0:t=Hi(null,t,o,e,n);break e;case 1:t=$i(null,t,o,e,n);break e;case 11:t=Bi(null,t,o,e,n);break e;case 14:t=Ui(null,t,o,Xo(o.type,e),r,n);break e}throw Error(i(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,Hi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 1:return r=t.type,o=t.pendingProps,$i(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 3:if(Wi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,ua(e,t),ma(t,r,null,n),(r=t.memoizedState.element)===o)Za(),t=al(e,t,n);else{if((a=(o=t.stateNode).hydrate)&&(za=Zr(t.stateNode.containerInfo.firstChild),Ua=t,a=qa=!0),a){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(a=e[o])._workInProgressVersionPrimary=e[o+1],Ka.push(a);for(n=Pa(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else ji(e,t,r,n),Za();t=t.child}return t;case 5:return Fa(t),null===e&&$a(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,l=o.children,Hr(r,o)?l=null:null!==a&&Hr(r,a)&&(t.flags|=16),Gi(e,t),ji(e,t,l,n),t.child;case 6:return null===e&&$a(t),null;case 13:return Xi(e,t,n);case 4:return Ia(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ta(t,null,r,n):ji(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Bi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 7:return ji(e,t,t.pendingProps,n),t.child;case 8:case 12:return ji(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,l=t.memoizedProps,a=o.value;var s=t.type._context;if(po(Jo,s._currentValue),s._currentValue=a,null!==l)if(s=l.value,0===(a=ur(s,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,a):1073741823))){if(l.children===o.children&&!ho.current){t=al(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var c=s.dependencies;if(null!==c){l=s.child;for(var u=c.firstContext;null!==u;){if(u.context===r&&0!=(u.observedBits&a)){1===s.tag&&((u=da(-1,n&-n)).tag=2,pa(s,u)),s.lanes|=n,null!==(u=s.alternate)&&(u.lanes|=n),aa(s.return,n),c.lanes|=n;break}u=u.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}ji(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,ia(t,n),r=r(o=la(o,a.unstable_observedBits)),t.flags|=1,ji(e,t,r,n),t.child;case 14:return a=Xo(o=t.type,t.pendingProps),Ui(e,t,o,a=Xo(o.type,a),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Xo(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,vo(r)?(e=!0,So(t)):e=!1,ia(t,n),wa(t,r,o),Sa(t,r,o,n),Vi(null,t,r,!0,e,n);case 19:return ol(e,t,n);case 23:case 24:return qi(e,t,n)}throw Error(i(156,t.tag))},oc.prototype.render=function(e){ec(e,this._internalRoot,null,null)},oc.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;ec(null,e,null,(function(){t[eo]=null}))},tt=function(e){13===e.tag&&(ms(e,4,ps()),rc(e,4))},nt=function(e){13===e.tag&&(ms(e,67108864,ps()),rc(e,67108864))},rt=function(e){if(13===e.tag){var t=ps(),n=fs(e);ms(e,n,t),rc(e,n)}},ot=function(e,t){return t()},Te=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=ao(r);if(!o)throw Error(i(90));Q(r),ne(r,o)}}}break;case"textarea":ce(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ne=ws,Ie=function(e,t,n,r,o){var a=Ol;Ol|=4;try{return Wo(98,e.bind(null,t,n,r,o))}finally{0===(Ol=a)&&(Wl(),Ko())}},De=function(){0==(49&Ol)&&(function(){if(null!==os){var e=os;os=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,Ho())}))}Ko()}(),Ds())},Fe=function(e,t){var n=Ol;Ol|=2;try{return e(t)}finally{0===(Ol=n)&&(Wl(),Ko())}};var sc={Events:[ro,oo,ao,Le,Oe,Ds,{current:!1}]},cc={findFiberByHostInstance:no,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uc={bundleType:cc.bundleType,version:cc.version,rendererPackageName:cc.rendererPackageName,rendererConfig:cc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:k.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Je(e))?null:e.stateNode},findFiberByHostInstance:cc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var dc=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!dc.isDisabled&&dc.supportsFiber)try{_o=dc.inject(uc),xo=dc}catch(ge){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sc,t.createPortal=lc,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw Error(i(268,Object.keys(e)))}return e=null===(e=Je(t))?null:e.stateNode},t.flushSync=function(e,t){var n=Ol;if(0!=(48&n))return e(t);Ol|=1;try{if(e)return Wo(99,e.bind(null,t))}finally{Ol=n,Ko()}},t.hydrate=function(e,t,n){if(!ac(t))throw Error(i(200));return ic(null,e,t,!0,n)},t.render=function(e,t,n){if(!ac(t))throw Error(i(200));return ic(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!ac(e))throw Error(i(40));return!!e._reactRootContainer&&(ks((function(){ic(null,null,e,!1,(function(){e._reactRootContainer=null,e[eo]=null}))})),!0)},t.unstable_batchedUpdates=ws,t.unstable_createPortal=function(e,t){return lc(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!ac(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return ic(e,t,n,!1,r)},t.version="17.0.2"},73935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(64448)},69590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,c,u;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!a(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;for(u=e.entries();!(s=u.next()).done;)if(!a(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((l=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,c[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==c[s]&&"__v"!==c[s]&&"__o"!==c[s]||!e.$$typeof)&&!a(e[c[s]],i[c[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},70405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>$,ql:()=>J});var r=n(67294),o=n(45697),a=n.n(o),i=n(69590),l=n.n(i),s=n(41143),c=n.n(s),u=n(96774),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),E=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},_=function(e){var t=E(e,g.TITLE),n=E(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=E(e,"defaultTitle");return t||r||void 0},x=function(e){return E(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},P=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var l=a[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][c]&&(o[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var l=a[i],s=p({},r[l],o[l]);r[l]=s}return e}),[]).reverse()},A=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},R=function(e){return Array.isArray(e)?e.join(""):e},L=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},O=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},N=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},F=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},j=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=F(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=D(n),a=R(t);return o?"<"+e+' data-rh="true" '+o+">"+I(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return F(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===N.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=L(e.metaTags,y),a=L(t,b),i=L(n,v);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,o.priority),M(g.LINK,a.priority),M(g.SCRIPT,i.priority))},toString:function(){return j(g.META,o.priority,r)+" "+j(g.LINK,a.priority,r)+" "+j(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:j(g.BASE,t,r),bodyAttributes:j("bodyAttributes",n,r),htmlAttributes:j("htmlAttributes",o,r),link:j(g.LINK,u,r),meta:j(g.META,d,r),noscript:j(g.NOSCRIPT,a,r),script:j(g.SCRIPT,p,r),style:j(g.STYLE,i,r),title:j(g.TITLE,{title:s,titleAttributes:c},r)}},U=[],z=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?U:n.instances},add:function(e){(n.canUseDOM?U:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?U:n.instances).indexOf(e);(n.canUseDOM?U:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},q=r.createContext({}),G=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),H="undefined"!=typeof document,$=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new z(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(q.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);$.canUseDOM=H,$.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},$.defaultProps={context:{}},$.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],c=t[s]||"";n.getAttribute(s)!==c&&n.setAttribute(s,c),-1===o.indexOf(s)&&o.push(s);var u=a.indexOf(s);-1!==u&&a.splice(u,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Z=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=R(e)),W(g.TITLE,t)}(u,d);var p={baseTag:V(g.BASE,n),linkTags:V(g.LINK,o),metaTags:V(g.META,a),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,s),styleTags:V(g.STYLE,c)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},K=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:E(e,"defer"),encode:E(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:P(g.LINK,["rel","href"],e),metaTags:P(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:P(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:x(e),scriptTags:P(g.SCRIPT,["src","innerHTML"],e),styleTags:P(g.STYLE,["cssText"],e),title:_(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:A(e,"prioritizeSeoTags")});$.canUseDOM?(t=a,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){Z(t,(function(){K=null}))})):(Z(t),K=null)):B&&(o=B(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:G.isRequired},Y.displayName="HelmetDispatcher";var Q=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(O(this.props,"helmetData"),O(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case g.BODY:return p({},o,{bodyAttributes:p({},a)});case g.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return c()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=h(r,Q),l=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,a),s){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:l,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof z||(a=new z(a.context,a.instances)),a?r.createElement(Y,p({},o,{context:a.value,helmetData:void 0})):r.createElement(q.Consumer,null,(function(e){return r.createElement(Y,p({},o,{context:e}))}))},t}(r.Component);J.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},69921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case h:case s:return e;default:return t}}case o:return t}}}function S(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=h,t.Portal=o,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return S(e)||k(e)===u},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===a},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===o},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},59864:(e,t,n)=>{"use strict";e.exports=n(69921)},68356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(67294),s=n(45697),c=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return c.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(l.Component),a(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}a(g,"propTypes",{report:s.func.isRequired}),a(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},18790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(76775),o=n(87462),a=n(67294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.rs,n,e.map((function(e,n){return a.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.Z)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.Z)({},n,t,{route:e}))}})}))):null}},73727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>u,rU:()=>g});var r=n(76775),o=n(75068),a=n(67294),i=n(99318),l=n(87462),s=n(63366),c=n(2177),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,o.Z)(t,e),t.prototype.render=function(){return a.createElement(r.F0,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=a.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,l.Z)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,a.createElement("a",u)}));var g=m((function(e,t){var n=e.component,o=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,s.Z)(e,["component","replace","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),s=r?n.createHref(r):"",h=(0,l.Z)({},v,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,a.createElement(o,h)}))})),b=function(e){return e},v=a.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,E=e.style,_=e.to,x=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=w||e.location,i=p(d(_,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),P=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,A=!!(y?y(P,n):P),R="function"==typeof m?m(A):m,L="function"==typeof E?E(A):E;A&&(R=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(R,u),L=(0,l.Z)({},L,f));var O=(0,l.Z)({"aria-current":A&&o||null,className:R,style:L,to:i},C);return b!==v?O.ref=t||x:O.innerRef=x,a.createElement(g,O)}))}))},76775:(e,t,n)=>{"use strict";n.d(t,{AW:()=>x,F0:()=>k,rs:()=>L,s6:()=>w,LX:()=>_,k6:()=>N,TH:()=>I});var r=n(75068),o=n(67294),a=n(99318),i=n(45697),l=n.n(i),s=1073741823,c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};function u(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}var d=o.createContext||function(e,t){var n,a,i="__create-react-context-"+function(){var e="__global_unique_id__";return c[e]=(c[e]||0)+1}()+"__",d=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).emitter=u(t.props.value),t}(0,r.Z)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[i]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):s,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);d.childContextTypes=((n={})[i]=l().object.isRequired,n);var p=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?s:t},o.componentDidMount=function(){this.context[i]&&this.context[i].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?s:e},o.componentWillUnmount=function(){this.context[i]&&this.context[i].off(this.onUpdate)},o.getValue=function(){return this.context[i]?this.context[i].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return p.contextTypes=((a={})[i]=l().object,a),{Provider:d,Consumer:p}};const p=d;var f=n(2177),m=n(87462),h=n(39658),g=n.n(h),b=(n(59864),n(63366)),v=(n(8679),function(e){var t=p();return t.displayName=e,t}),y=v("Router-History"),w=v("Router"),k=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(w.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(y.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;o.Component;var S={},E=0;function _(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,l=void 0!==i&&i,s=n.sensitive,c=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=S[n]||(S[n]={});if(r[e])return r[e];var o=[],a={regexp:g()(e,o,t),keys:o};return E<1e4&&(r[e]=a,E++),a}(n,{end:a,strict:l,sensitive:c}),o=r.regexp,i=r.keys,s=o.exec(e);if(!s)return null;var u=s[0],d=s.slice(1),p=e===u;return a&&!p?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=d[n],e}),{})}}),null)}var x=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(w.Consumer,null,(function(t){t||(0,f.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?_(n.pathname,e.props):t.match,a=(0,m.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,s=i.component,c=i.render;return Array.isArray(l)&&function(e){return 0===o.Children.count(e)}(l)&&(l=null),o.createElement(w.Provider,{value:a},a.match?l?"function"==typeof l?l(a):l:s?o.createElement(s,a):c?c(a):null:"function"==typeof l?l(a):null)}))},t}(o.Component);function C(e){return"/"===e.charAt(0)?e:"/"+e}function T(e,t){if(!e)return t;var n=C(e);return 0!==t.pathname.indexOf(n)?t:(0,m.Z)({},t,{pathname:t.pathname.substr(n.length)})}function P(e){return"string"==typeof e?e:(0,a.Ep)(e)}function A(e){return function(){(0,f.Z)(!1)}}function R(){}o.Component;var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(w.Consumer,null,(function(t){t||(0,f.Z)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?_(a.pathname,(0,m.Z)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var O=o.useContext;function N(){return O(y)}function I(){return O(w).location}},39658:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return l(a(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,_=n[2]||u,x=b||v;r.push({name:g||a++,prefix:h||"",delimiter:_,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:x?c(x):w?".*":"[^"+s(_)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",d(t)));return function(t,o){for(var a="",l=t||{},s=(o||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=l[u.name];if(null==p){if(u.optional){u.partial&&(a+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=s(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');a+=u.prefix+d}}else a+=u}return a}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",l=0;l<e.length;l++){var c=e[l];if("string"==typeof c)i+=s(c);else{var p=s(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=s(n.delimiter||"/"),h=i.slice(-m.length)===m;return o||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=a?"$":o&&h?"":"(?="+m+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(f(e[o],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(a(e,n),t,n)}(e,t,n)}},72408:(e,t,n)=>{"use strict";var r=n(27418),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var c=60115,u=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;o=d("react.element"),a=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),c=d("react.memo"),u=d("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function f(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h={};function g(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(f(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var y=v.prototype=new b;y.constructor=v,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},k=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var r,a={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,r)&&!S.hasOwnProperty(r)&&(a[r]=t[r]);var s=arguments.length-2;if(1===s)a.children=n;else if(1<s){for(var c=Array(s),u=0;u<s;u++)c[u]=arguments[u+2];a.children=c}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===a[r]&&(a[r]=s[r]);return{$$typeof:o,type:e,key:i,ref:l,props:a,_owner:w.current}}function _(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var x=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case o:case a:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(x,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(_(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(x,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var c=0;c<e.length;c++){var u=r+C(l=e[c],c);s+=T(l,t,n,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,u=r+C(l,c++),i);else if("object"===l)throw t=""+e,Error(f(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function P(e,t,n){if(null==e)return e;var r=[],o=0;return T(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function A(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var R={current:null};function L(){var e=R.current;if(null===e)throw Error(f(321));return e}var O={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:P,forEach:function(e,t,n){P(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return P(e,(function(){t++})),t},toArray:function(e){return P(e,(function(e){return e}))||[]},only:function(e){if(!_(e))throw Error(f(143));return e}},t.Component=g,t.PureComponent=v,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,n){if(null==e)throw Error(f(267,e));var a=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(u in t)k.call(t,u)&&!S.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==c?c[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=n;else if(1<u){c=Array(u);for(var d=0;d<u;d++)c[d]=arguments[d+2];a.children=c}return{$$typeof:o,type:e.type,key:i,ref:l,props:a,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=_,t.lazy=function(e){return{$$typeof:u,_payload:{_status:-1,_result:e},_init:A}},t.memo=function(e,t){return{$$typeof:c,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return L().useCallback(e,t)},t.useContext=function(e,t){return L().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return L().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return L().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return L().useLayoutEffect(e,t)},t.useMemo=function(e,t){return L().useMemo(e,t)},t.useReducer=function(e,t,n){return L().useReducer(e,t,n)},t.useRef=function(e){return L().useRef(e)},t.useState=function(e){return L().useState(e)},t.version="17.0.2"},67294:(e,t,n)=>{"use strict";e.exports=n(72408)},60053:(e,t)=>{"use strict";var n,r,o,a;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var c=null,u=null,d=function(){if(null!==c)try{var e=t.unstable_now();c(!0,e),c=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==c?setTimeout(n,0,e):(c=e,setTimeout(d,0))},r=function(e,t){u=setTimeout(e,t)},o=function(){clearTimeout(u)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,f=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var h=!1,g=null,b=-1,v=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):v=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,k=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+v;try{g(!0,e)?k.postMessage(null):(h=!1,g=null)}catch(n){throw k.postMessage(null),n}}else h=!1},n=function(e){g=e,h||(h=!0,k.postMessage(null))},r=function(e,n){b=p((function(){e(t.unstable_now())}),n)},o=function(){f(b),b=-1}}function S(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<x(o,t)))break e;e[r]=t,e[n]=o,n=r}}function E(e){return void 0===(e=e[0])?null:e}function _(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var a=2*(r+1)-1,i=e[a],l=a+1,s=e[l];if(void 0!==i&&0>x(i,n))void 0!==s&&0>x(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==s&&0>x(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function x(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],P=1,A=null,R=3,L=!1,O=!1,N=!1;function I(e){for(var t=E(T);null!==t;){if(null===t.callback)_(T);else{if(!(t.startTime<=e))break;_(T),t.sortIndex=t.expirationTime,S(C,t)}t=E(T)}}function D(e){if(N=!1,I(e),!O)if(null!==E(C))O=!0,n(F);else{var t=E(T);null!==t&&r(D,t.startTime-e)}}function F(e,n){O=!1,N&&(N=!1,o()),L=!0;var a=R;try{for(I(n),A=E(C);null!==A&&(!(A.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=A.callback;if("function"==typeof i){A.callback=null,R=A.priorityLevel;var l=i(A.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?A.callback=l:A===E(C)&&_(C),I(n)}else _(C);A=E(C)}if(null!==A)var s=!0;else{var c=E(T);null!==c&&r(D,c.startTime-n),s=!1}return s}finally{A=null,R=a,L=!1}}var M=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){O||L||(O=!0,n(F))},t.unstable_getCurrentPriorityLevel=function(){return R},t.unstable_getFirstCallbackNode=function(){return E(C)},t.unstable_next=function(e){switch(R){case 1:case 2:case 3:var t=3;break;default:t=R}var n=R;R=t;try{return e()}finally{R=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=R;R=e;try{return t()}finally{R=n}},t.unstable_scheduleCallback=function(e,a,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:P++,callback:a,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,S(T,e),null===E(C)&&e===E(T)&&(N?o():N=!0,r(D,i-l))):(e.sortIndex=s,S(C,e),O||L||(O=!0,n(F))),e},t.unstable_wrapCallback=function(e){var t=R;return function(){var n=R;R=t;try{return e.apply(this,arguments)}finally{R=n}}}},63840:(e,t,n)=>{"use strict";e.exports=n(60053)},96774:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<a.length;s++){var c=a[s];if(!l(c))return!1;var u=e[c],d=t[c];if(!1===(o=n?n.call(r,u,d,c):void 0)||void 0===o&&u!==d)return!1}return!0}},2177:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r="Invariant failed";function o(e,t){if(!e)throw new Error(r)}},53250:(e,t,n)=>{"use strict";var r=n(67294);var o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(r){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,u=r[1];return l((function(){o.value=n,o.getSnapshot=t,c(o)&&u({inst:o})}),[e,n,t]),i((function(){return c(o)&&u({inst:o}),e((function(){c(o)&&u({inst:o})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:u},61688:(e,t,n)=>{"use strict";e.exports=n(53250)},36809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Flow",tagline:"A Static Type Checker for JavaScript",url:"https://flow.org",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.png",organizationName:"facebook",projectName:"flow",trailingSlash:!0,markdown:{mermaid:!0},themes:["@docusaurus/theme-mermaid"],plugins:[null,null,null],themeConfig:{algolia:{appId:"P6T3E8XPGT",apiKey:"01f111c0b2980e54f1307e982fa2c218",indexName:"flow",contextualSearch:!0,searchParameters:{},searchPagePath:"search"},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!0,respectPrefersColorScheme:!1},navbar:{logo:{alt:"My Facebook Project Logo",src:"img/logo.svg"},items:[{to:"en/docs/getting-started",activeBasePath:"en/docs/getting-started",label:"Getting Started",position:"left"},{to:"en/docs/",activeBasePath:"en/docs",label:"Docs",position:"left"},{to:"try/",activeBasePath:"try",label:"Try",position:"left"},{to:"blog/",label:"Blog",position:"left"},{href:"https://twitter.com/flowtype","aria-label":"Twitter",position:"right",className:"navbar__icon twitter__link"},{href:"http://stackoverflow.com/questions/tagged/flowtype","aria-label":"Stack Overflow",position:"right",className:"navbar__icon stackoverflow__link"},{href:"https://github.com/facebook/flow","aria-label":"GitHub",position:"right",className:"navbar__icon github__link"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Learn",items:[{label:"Getting Started",to:"en/docs/getting-started"}]},{title:"Community",items:[{label:"Twitter",href:"https://twitter.com/flowtype"},{label:"Discord",href:"https://discordapp.com/invite/8ezwRUK"}]},{title:"More",items:[{label:"Medium",to:"https://medium.com/flow-type"},{label:"GitHub",href:"https://github.com/facebook/flow"}]},{title:"Legal",items:[{label:"Privacy",href:"https://opensource.facebook.com/legal/privacy/"},{label:"Terms",href:"https://opensource.facebook.com/legal/terms/"},{label:"Data Policy",href:"https://opensource.facebook.com/legal/data-policy/"},{label:"Cookie Policy",href:"https://opensource.facebook.com/legal/cookie-policy/"}]}],logo:{alt:"Facebook Open Source Logo",src:"img/oss_logo.png",href:"https://opensource.facebook.com"},copyright:"Copyright \xa9 2024 Meta Platforms, Inc. Built with Docusaurus."},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},customFields:{flowVersion:"v0.225.1",allFlowVersions:["master","v0.225.1","v0.225.0","v0.224.0","v0.223.3","v0.223.2","v0.223.0","v0.222.0","v0.221.0","v0.220.1","v0.220.0","v0.219.5","v0.219.4","v0.219.3","v0.219.2","v0.219.0","v0.218.1","v0.218.0","v0.217.2","v0.217.1","v0.217.0","v0.216.1","v0.216.0","v0.215.1","v0.215.0","v0.214.0","v0.213.1","v0.213.0","v0.212.0","v0.211.1","v0.211.0","v0.210.2","v0.210.1","v0.210.0","v0.209.1","v0.209.0","v0.208.1","v0.208.0","v0.207.0","v0.206.0","v0.205.1","v0.205.0","v0.204.1","v0.204.0","v0.203.1","v0.203.0","v0.202.1","v0.202.0","v0.201.0","v0.200.1","v0.200.0","v0.199.1","v0.199.0","v0.198.2","v0.198.1","v0.198.0","v0.197.0","v0.196.3","v0.196.2","v0.196.1","v0.196.0","v0.195.2","v0.195.1","v0.195.0","v0.194.0","v0.193.0","v0.192.0","v0.191.0","v0.190.1","v0.190.0","v0.189.0","v0.188.2","v0.188.1","v0.188.0","v0.187.1","v0.187.0","v0.186.0","v0.185.2","v0.185.1","v0.185.0","v0.184.0"],fbRepoName:"fbsource"},presets:[["/home/circleci/flow/website/node_modules/docusaurus-plugin-internaldocs-fb/docusaurus-preset.js",{docs:{routeBasePath:"en/docs",sidebarPath:"/home/circleci/flow/website/sidebars.js",editUrl:"https://github.com/facebook/flow/edit/main/website/",remarkPlugins:[[null,{sync:!0}],null,[null,{strippedFilePattern:{}}],[null,{}],[null,{version:"v1"}],null]},staticDocsProject:"flow",blog:{path:"blog",postsPerPage:50,showReadingTime:!1,blogSidebarCount:"ALL",blogSidebarTitle:"All our posts"},theme:{customCss:"/home/circleci/flow/website/src/css/custom.css"},googleAnalytics:{trackingID:"UA-49208336-4",anonymizeIP:!0}}]],baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1}},87462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},75068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>o})},63366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:()=>r})},57529:e=>{"use strict";e.exports={}},16887:e=>{"use strict";e.exports=JSON.parse('{"/blog/-739":{"__comp":"a6aa9e1f","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","items":[{"content":"0f5f1bf5"},{"content":"14a09451"},{"content":"38bf0af0"},{"content":"08b677a9"},{"content":"ba8405e9"},{"content":"1deff68a"},{"content":"f9dfb1df"},{"content":"7c31194e"},{"content":"06d7817c"},{"content":"849c3168"},{"content":"c28c9f4c"},{"content":"8ad8f3b7"},{"content":"17f3f5fa"},{"content":"a81db0a3"},{"content":"716a2b3a"},{"content":"f5c59384"},{"content":"627ee67b"},{"content":"1d1d2623"},{"content":"3436f537"},{"content":"2882eb4d"},{"content":"67fab80a"},{"content":"c0c47fbb"},{"content":"d94d234a"},{"content":"fe33e49c"},{"content":"23d108aa"},{"content":"f1ce6d33"},{"content":"685b7887"},{"content":"45e3d4a1"},{"content":"16da00f1"},{"content":"0b9b5b1e"},{"content":"bc1ef7db"},{"content":"1b0eafb0"},{"content":"ada421c5"},{"content":"6f13cf50"},{"content":"c56ec64d"},{"content":"3546858d"},{"content":"a7997f86"},{"content":"2e83a3f1"},{"content":"0d725906"},{"content":"a34bf502"},{"content":"0d9d4513"},{"content":"b638890a"},{"content":"149f1a8f"},{"content":"835b28c9"},{"content":"31b1f40d"},{"content":"ba3cba1f"},{"content":"2d59284f"},{"content":"ae57f6c5"},{"content":"22d19fd2"},{"content":"aeadb6e0"}],"metadata":"b2b675dd"},"/blog/2015/02/18/Import-Types/-296":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"cdf37a1d"},"/blog/2015/02/18/Typecasts/-7b4":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"f73cdd84"},"/blog/2015/02/20/Flow-Comments/-618":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"1a87007a"},"/blog/2015/03/12/Bounded-Polymorphism/-a7c":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"36dd8a2a"},"/blog/2015/07/03/Disjoint-Unions/-db3":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"57cbb641"},"/blog/2015/07/29/Version-0.14.0/-2ba":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"6283dc52"},"/blog/2015/09/10/Version-0.15.0/-202":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ad9c98c9"},"/blog/2015/09/22/Version-0.16.0/-87a":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"f7269812"},"/blog/2015/10/07/Version-0.17.0/-f21":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"8c284244"},"/blog/2015/11/09/Generators/-e2d":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"21198339"},"/blog/2015/12/01/Version-0.19.0/-c77":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"a1182569"},"/blog/2016/02/02/Version-0.21.0/-779":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"498260da"},"/blog/2016/07/01/New-Unions-Intersections/-a42":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"9d1a18d2"},"/blog/2016/08/01/Windows-Support/-605":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ef1d3ef7"},"/blog/2016/10/04/Property-Variance/-de3":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"f4043d76"},"/blog/2016/10/13/Flow-Typed/-5b7":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"2cfb3ef2"},"/blog/2017/05/07/Strict-Function-Call-Arity/-625":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"bac2ecab"},"/blog/2017/07/27/Opaque-Types/-ec2":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"b8605767"},"/blog/2017/08/04/Linting-in-Flow/-33e":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"2758e022"},"/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/-469":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"8450619c"},"/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/-61d":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"2dc2c6fe"},"/blog/2017/09/03/Flow-Support-in-Recompose/-045":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"fad02e7a"},"/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/-2ff":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"16eb21a1"},"/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/-f09":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"e1d0b0e7"},"/blog/2018/10/18/Exact-Objects-By-Default/-f68":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"47fceb5c"},"/blog/2018/10/29/Asking-for-Required-Annotations/-558":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"18a5105d"},"/blog/2018/12/13/React-Abstract-Component/-5d1":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"cee75076"},"/blog/2019/08/20/Changes-to-Object-Spreads/-9cd":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"1e640efa"},"/blog/2019/1/28/What-the-flow-team-has-been-up-to/-f39":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"945c2ff6"},"/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/-b62":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"6fbe3924"},"/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/-6ad":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ec748175"},"/blog/2019/2/8/A-More-Responsive-Flow/-2f8":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"a4903c78"},"/blog/2019/4/9/Upgrading-Flow-Codebases/-46e":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"9271a7d9"},"/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/-892":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ad260ef5"},"/blog/2020/02/19/Improvements-to-Flow-in-2019/-2d9":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"f0993487"},"/blog/2020/03/09/What-were-building-in-2020/-51b":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"0821ba19"},"/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/-566":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"b5e58b9e"},"/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/-f26":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ba134b70"},"/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/-d53":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"49fc8451"},"/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/-41b":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"9202bab2"},"/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/-5d9":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"1c79b411"},"/blog/2021/06/02/Sound-Typing-for-this-in-Flow/-584":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"f3f01bf9"},"/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/-74f":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"3c67c6f1"},"/blog/2021/09/13/Introducing-Flow-Enums/-4f6":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"2a98dbd2"},"/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/-2b4":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"534636ef"},"/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/-c88":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"8d8646df"},"/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/-8f4":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"0d31b876"},"/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/-382":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"4ca37602"},"/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/-03f":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ccf70fff"},"/blog/2023/01/17/Local-Type-Inference/-662":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"bda0a621"},"/blog/2023/02/16/Exact-object-types-by-default-by-default/-6cd":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"c61e173e"},"/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/-f6c":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"a0f1eb17"},"/blog/2023/04/10/Unused-Promise/-77d":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"7db70a13"},"/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/-27f":{"__comp":"ccc49370","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","content":"ba769f8c"},"/blog/archive/-6f6":{"__comp":"9e4087bc","__context":{"plugin":"5b39b3b8"},"archive":"b2f554cd"},"/blog/page/2/-e19":{"__comp":"a6aa9e1f","__context":{"plugin":"5b39b3b8"},"sidebar":"814f3328","items":[{"content":"9b7118e6"},{"content":"c9e6dd55"},{"content":"6baa791a"},{"content":"3696a2ba"}],"metadata":"8eb4e46b"},"/search/-6a7":{"__comp":"1a4e3797","__context":{"plugin":"e58aeffb"}},"/try/-4ee":{"__comp":"f8910b2d","__context":{"plugin":"d25022d5"},"config":"5e9f5e1a"},"/en/docs/-397":{"__comp":"1be78505","__context":{"plugin":"06f797e0"},"versionMetadata":"935f2afb"},"/en/docs/-afb":{"__comp":"17896441","content":"c377a04b"},"/en/docs/cli/-2b2":{"__comp":"17896441","content":"7760e989"},"/en/docs/cli/annotate-exports/-28e":{"__comp":"17896441","content":"a914a609"},"/en/docs/cli/coverage/-341":{"__comp":"17896441","content":"f3ccad72"},"/en/docs/config/-2a9":{"__comp":"17896441","content":"96e46681"},"/en/docs/config/declarations/-9bc":{"__comp":"17896441","content":"e06cc5ae"},"/en/docs/config/ignore/-5a7":{"__comp":"17896441","content":"6bd3f849"},"/en/docs/config/include/-8c0":{"__comp":"17896441","content":"3c73173e"},"/en/docs/config/libs/-175":{"__comp":"17896441","content":"22864986"},"/en/docs/config/lints/-690":{"__comp":"17896441","content":"5af46b94"},"/en/docs/config/options/-4ed":{"__comp":"17896441","content":"2fb2f756"},"/en/docs/config/untyped/-d06":{"__comp":"17896441","content":"f6a97d3f"},"/en/docs/config/version/-38c":{"__comp":"17896441","content":"4854ca19"},"/en/docs/declarations/-38e":{"__comp":"17896441","content":"39814850"},"/en/docs/editors/-de9":{"__comp":"17896441","content":"8d4addf8"},"/en/docs/editors/emacs/-05a":{"__comp":"17896441","content":"57c2009f"},"/en/docs/editors/sublime-text/-615":{"__comp":"17896441","content":"5a63fcc7"},"/en/docs/editors/vim/-427":{"__comp":"17896441","content":"41545044"},"/en/docs/editors/vscode/-71c":{"__comp":"17896441","content":"f85b6e96"},"/en/docs/editors/webstorm/-ecd":{"__comp":"17896441","content":"f8222af9"},"/en/docs/enums/-613":{"__comp":"17896441","content":"2fccebec"},"/en/docs/enums/defining-enums/-a51":{"__comp":"17896441","content":"e3555d4f"},"/en/docs/enums/enabling-enums/-616":{"__comp":"17896441","content":"75d6ea67"},"/en/docs/enums/migrating-legacy-patterns/-329":{"__comp":"17896441","content":"7355e963"},"/en/docs/enums/using-enums/-cc2":{"__comp":"17896441","content":"db9c8b69"},"/en/docs/errors/-06a":{"__comp":"17896441","content":"ed6c4993"},"/en/docs/faq/-9fc":{"__comp":"17896441","content":"0480b142"},"/en/docs/getting-started/-ba1":{"__comp":"17896441","content":"d589d3a7"},"/en/docs/install/-d51":{"__comp":"17896441","content":"c4de80f8"},"/en/docs/lang/annotation-requirement/-c98":{"__comp":"17896441","content":"4e1bb112"},"/en/docs/lang/depth-subtyping/-902":{"__comp":"17896441","content":"ec7083e4"},"/en/docs/lang/lazy-modes/-4b6":{"__comp":"17896441","content":"400005bc"},"/en/docs/lang/nominal-structural/-5a3":{"__comp":"17896441","content":"0801aa48"},"/en/docs/lang/refinements/-5f1":{"__comp":"17896441","content":"a45c950d"},"/en/docs/lang/subtypes/-eac":{"__comp":"17896441","content":"a6ec1ca4"},"/en/docs/lang/type-hierarchy/-145":{"__comp":"17896441","content":"c935ef9f"},"/en/docs/lang/types-and-expressions/-31d":{"__comp":"17896441","content":"9d6b221c"},"/en/docs/lang/types-first/-774":{"__comp":"17896441","content":"0eb64d46"},"/en/docs/lang/variables/-b43":{"__comp":"17896441","content":"145fd8c8"},"/en/docs/lang/variance/-a0b":{"__comp":"17896441","content":"855f8093"},"/en/docs/lang/width-subtyping/-412":{"__comp":"17896441","content":"797bdcb3"},"/en/docs/libdefs/-8aa":{"__comp":"17896441","content":"38b6d82d"},"/en/docs/libdefs/creation/-f58":{"__comp":"17896441","content":"e2c2b05a"},"/en/docs/linting/-250":{"__comp":"17896441","content":"87ccf64d"},"/en/docs/linting/flowlint-comments/-d2a":{"__comp":"17896441","content":"1dec3c22"},"/en/docs/linting/rule-reference/-288":{"__comp":"17896441","content":"188153c4"},"/en/docs/react/-235":{"__comp":"17896441","content":"49f38925"},"/en/docs/react/components/-2cc":{"__comp":"17896441","content":"3fde744a"},"/en/docs/react/events/-0b4":{"__comp":"17896441","content":"2e848c4d"},"/en/docs/react/hoc/-6e8":{"__comp":"17896441","content":"4499f1d5"},"/en/docs/react/multiplatform/-fe6":{"__comp":"17896441","content":"1686a5bc"},"/en/docs/react/refs/-353":{"__comp":"17896441","content":"53bdc07c"},"/en/docs/react/types/-e09":{"__comp":"17896441","content":"af591461"},"/en/docs/strict/-ead":{"__comp":"17896441","content":"4b798296"},"/en/docs/tools/-605":{"__comp":"17896441","content":"96f8b763"},"/en/docs/tools/babel/-226":{"__comp":"17896441","content":"4f679c8d"},"/en/docs/tools/eslint/-d1a":{"__comp":"17896441","content":"2981723c"},"/en/docs/tools/flow-remove-types/-64a":{"__comp":"17896441","content":"754aff6f"},"/en/docs/types/-04d":{"__comp":"17896441","content":"3a0474a4"},"/en/docs/types/aliases/-c04":{"__comp":"17896441","content":"deed17e4"},"/en/docs/types/any/-31c":{"__comp":"17896441","content":"7a0b48af"},"/en/docs/types/arrays/-b21":{"__comp":"17896441","content":"bd3efcef"},"/en/docs/types/casting/-a86":{"__comp":"17896441","content":"708dfd19"},"/en/docs/types/classes/-458":{"__comp":"17896441","content":"ce2beed8"},"/en/docs/types/comments/-ddf":{"__comp":"17896441","content":"e23ef6ec"},"/en/docs/types/conditional/-075":{"__comp":"17896441","content":"4da00481"},"/en/docs/types/empty/-ea1":{"__comp":"17896441","content":"aca2d3c0"},"/en/docs/types/functions/-3ea":{"__comp":"17896441","content":"03f7d77f"},"/en/docs/types/generators/-695":{"__comp":"17896441","content":"ab2e47c1"},"/en/docs/types/generics/-375":{"__comp":"17896441","content":"f3aa7666"},"/en/docs/types/indexed-access/-601":{"__comp":"17896441","content":"c3387ac1"},"/en/docs/types/interfaces/-d50":{"__comp":"17896441","content":"9f241a4b"},"/en/docs/types/intersections/-3bf":{"__comp":"17896441","content":"f7710724"},"/en/docs/types/literals/-8c4":{"__comp":"17896441","content":"05615bb4"},"/en/docs/types/mapped-types/-685":{"__comp":"17896441","content":"43854727"},"/en/docs/types/maybe/-99c":{"__comp":"17896441","content":"6e17e746"},"/en/docs/types/mixed/-a27":{"__comp":"17896441","content":"4a874b56"},"/en/docs/types/modules/-0b1":{"__comp":"17896441","content":"bd2c9af2"},"/en/docs/types/objects/-83b":{"__comp":"17896441","content":"fed34737"},"/en/docs/types/opaque-types/-699":{"__comp":"17896441","content":"1fea74a6"},"/en/docs/types/primitives/-90e":{"__comp":"17896441","content":"45f3947e"},"/en/docs/types/tuples/-e39":{"__comp":"17896441","content":"062e05b4"},"/en/docs/types/type-guards/-613":{"__comp":"17896441","content":"4981a61b"},"/en/docs/types/typeof/-38e":{"__comp":"17896441","content":"3098e178"},"/en/docs/types/unions/-438":{"__comp":"17896441","content":"43b0182c"},"/en/docs/types/utilities/-231":{"__comp":"17896441","content":"0abc5904"},"/en/docs/usage/-6bd":{"__comp":"17896441","content":"6476eba6"},"/-f2c":{"__comp":"c4f5d8e4","__context":{"plugin":"d25022d5"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=49383,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.71ee4c5c.js.LICENSE.txt b/assets/js/main.71ee4c5c.js.LICENSE.txt new file mode 100644 index 00000000000..eb75d69107c --- /dev/null +++ b/assets/js/main.71ee4c5c.js.LICENSE.txt @@ -0,0 +1,63 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + */ + +/** @license React v0.20.2 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** @license React v17.0.2 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/assets/js/runtime~main.e6de3bd4.js b/assets/js/runtime~main.e6de3bd4.js new file mode 100644 index 00000000000..58b1de55c72 --- /dev/null +++ b/assets/js/runtime~main.e6de3bd4.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,a,f,d,c,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(f.exports,f,f.exports,r),f.loaded=!0,f.exports}r.m=b,r.c=t,r.amdO={},e=[],r.O=(a,f,d,c)=>{if(!f){var b=1/0;for(i=0;i<e.length;i++){f=e[i][0],d=e[i][1],c=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&c||b>=c)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,c<b&&(b=c));if(t){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}c=c||0;for(var i=e.length;i>0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[f,d,c]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};a=a||[null,f({}),f([]),f(f)];for(var t=2&d&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(c,b),c},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+(8592===e?"common":e)+"."+{10:"5cab9749",64:"d7c257b8",168:"4084be54",180:"f35ada22",249:"b447d2e4",287:"79aaf96f",385:"c9dbdd20",486:"d9b07c81",525:"a08afd69",529:"44b442f7",565:"69ec915e",588:"e5ea213f",650:"f276d9bc",665:"79c8901c",728:"1f188d20",753:"c21fceb8",776:"52166cee",813:"efa2999f",836:"b690b489",848:"6ccac2fb",854:"8e35156d",908:"7a4eb83a",911:"cb5ea3c2",931:"d69b8a0f",957:"de39d01c",972:"de4b56d9",996:"a97ccabb",1e3:"14e9de8a",1049:"9e530d57",1065:"de3b9f15",1086:"14a78e6c",1091:"b8bfd1e4",1105:"80237606",1109:"53b35ea5",1134:"8c5472d2",1147:"9c78ae5a",1151:"03a36ca2",1156:"414b1ab6",1209:"76276011",1217:"6123c62f",1259:"ec012273",1313:"d10cc958",1345:"d7ea927e",1448:"3246558a",1466:"b69bd1b6",1471:"0d410d50",1540:"23466b6d",1661:"a4318a63",1706:"b21a58bf",1848:"6e365ebf",1886:"622d7f2a",1908:"2c382ba8",1930:"0b17c84b",1958:"d7cfea40",1960:"e580ef88",1961:"6af70c85",1984:"9797305a",1992:"689143a6",2040:"39c04ae1",2060:"1ce6877c",2075:"42cb52d9",2108:"c89cbfba",2140:"0307ae92",2160:"b1954ec2",2175:"a467d67a",2240:"a40b3926",2259:"ff9afb23",2378:"08f000fc",2394:"d9de10ba",2490:"26bb2f27",2524:"7afc641b",2554:"0673177f",2565:"75cc8af7",2571:"e348d774",2601:"785852cd",2625:"8dd63d43",2638:"edecc05b",2657:"35cf273e",2798:"58a5b297",2814:"5021f04e",2837:"c1fc15db",2860:"ccd1e606",2886:"f51502cb",2892:"fda2dc1b",2911:"c5e65e38",2954:"39c6182a",2955:"f3b20e35",2974:"5a120feb",2975:"1a577c1a",3031:"07faec4d",3036:"cbfd34be",3103:"d424af1a",3169:"75d3a922",3175:"4623d4bd",3271:"c17eb19a",3292:"37fedcae",3361:"a09822ec",3377:"4e54056b",3389:"50bd094d",3397:"d81097d9",3418:"fe6aa13b",3426:"7a8d681d",3430:"3a4d3a20",3470:"1f5577ea",3482:"f5cd412a",3490:"7c9a646b",3525:"b75f8037",3539:"8e41f2f8",3584:"b7d0f7d5",3585:"589fa714",3590:"380dfa4c",3619:"0c068931",3632:"512d8b35",3682:"78f44c31",3698:"df8b743d",3760:"70ebeccd",3769:"c0a74c56",3808:"9cc0ee5e",3818:"52e10916",3835:"10b298c2",3847:"5182a5d7",3851:"4a9ebda0",3898:"a25efbec",3903:"181d5c6e",3905:"294ba8eb",3919:"4432453c",3939:"7eaae777",3997:"380b744e",4028:"c8601f49",4099:"d293f4c8",4129:"b574e251",4132:"cf0d068b",4170:"1dc21c14",4188:"c58fea82",4244:"296d7732",4314:"ca390dec",4340:"d90bec6c",4352:"37108b95",4367:"f9d15811",4368:"6242d162",4370:"b23daaa9",4386:"e5410b3b",4392:"88be3c03",4397:"c0bddcab",4407:"f24a98c4",4422:"1cb367d3",4469:"b5252e80",4502:"f5fec547",4506:"77a2991a",4508:"81b19c11",4511:"4e5e46a7",4588:"f2f9f239",4702:"38902698",4721:"175dbe5c",4784:"6b9d1e1e",4840:"4be9bbc8",4860:"a333a6da",4896:"a33bc4d6",4902:"0f5edc01",4912:"6e0d306b",4946:"53bdd182",4972:"a00ed942",4991:"033580af",5062:"190662bd",5097:"c41b7b2f",5131:"8b42d5f9",5172:"55cc621c",5215:"9ac72533",5221:"d6f374a8",5237:"407b1995",5239:"5d7ca55a",5288:"f6c54409",5316:"27fe3ba9",5377:"42a21e45",5414:"65f24c3a",5501:"b615e78d",5562:"cd4ead74",5593:"2e65fb56",5641:"2eef5e08",5691:"cef8c333",5703:"e6d4941d",5745:"ffd36961",5789:"7ab12558",5849:"5c57243a",5880:"2cab3cef",5898:"367d7429",5962:"cf4e9fcb",5975:"ba58926b",6020:"fd5de0c7",6065:"9ee332e5",6081:"624ea89b",6082:"4af8a070",6094:"dd70aa33",6104:"007d544c",6136:"dfc4bfad",6241:"2e9f5bdf",6272:"f9b3cdc6",6290:"068917a8",6316:"3a9fab01",6329:"369e2ba8",6393:"7cb3deb5",6423:"a0154131",6424:"828d0aa7",6432:"8f67f499",6449:"3e8636c3",6470:"33bec0d3",6479:"5de341cd",6489:"897c8385",6522:"00dd2490",6567:"031c15cf",6586:"89a16f93",6587:"1466021b",6618:"901a3e8a",6641:"0726fefc",6686:"555ef1a4",6717:"c41df2f5",6778:"a7f9f534",6780:"e538d469",6798:"a0a87077",6894:"61d518cf",6923:"4bd4b036",6943:"36e5dcf5",6945:"7839b727",6956:"75567b7a",6990:"60c608ae",7043:"6c28e0ba",7085:"2da88da6",7131:"af65a3d6",7210:"dccd8a9d",7216:"82683887",7287:"851fbdcc",7322:"62a440b9",7324:"55dbe265",7357:"60f17144",7454:"c4cbd7ac",7466:"0592b0a0",7473:"75d32f9d",7493:"35ce4f7a",7520:"80cb00fd",7521:"710cbe18",7550:"c71fbb00",7562:"8aeb83c2",7637:"a10259f0",7667:"b9d7153f",7678:"09b0f00f",7724:"ccc7d3de",7758:"dda2fbc1",7778:"70985237",7835:"fed695f5",7966:"b4ef84f5",7997:"402d61b8",8017:"5a10ad1f",8027:"0a3be280",8063:"96e4bd2b",8070:"b2932ef2",8071:"e0b453f4",8073:"856ade5f",8084:"1629b62c",8118:"3febc31b",8180:"b2381f36",8396:"b75cac9d",8401:"a31483a7",8424:"b47120a1",8480:"07b41f57",8506:"dc7fd971",8528:"45e71d7f",8592:"1e30ee28",8641:"3df11c4b",8670:"522cc23d",8712:"1d41ff09",8713:"c204a0f9",8715:"172094c4",8719:"644b750e",8748:"af6aff9f",8757:"e063498f",8819:"8f01a10a",8880:"0e52c112",8894:"52aa9cfa",8899:"b1fe8204",8906:"90c5de7a",8946:"a7036c9d",8985:"e67ce2b4",9172:"7f698d9b",9206:"16398572",9225:"872a1216",9277:"9908b298",9307:"228f79a3",9337:"6c20da2f",9343:"bdc8d465",9390:"f01d7d65",9398:"a4b8a2d7",9400:"1d5fbae2",9466:"2e6a88ec",9487:"c9fbf014",9506:"368ed619",9537:"02320fdb",9541:"4560e197",9607:"622810b9",9647:"b1861c7a",9684:"19d777f5",9701:"b0601203",9837:"a4f6fb00",9850:"0f22bc6f",9907:"ddc37b5f",9963:"4a87e5a1",9993:"dfbc0bca"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),d={},c="new-website:",r.l=(e,a,f,b)=>{if(d[e])d[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var l=n[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==c+f){t=l;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",c+f),t.src=e),d[e]=[a];var u=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var c=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(f))),a)return a(f)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={common:"8592"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var d=r.o(e,a)?e[a]:void 0;if(0!==d)if(d)f.push(d[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var c=new Promise(((f,c)=>d=e[a]=[f,c]));f.push(d[2]=c);var b=r.p+r.u(a),t=new Error;r.l(b,(f=>{if(r.o(e,a)&&(0!==(d=e[a])&&(e[a]=void 0),d)){var c=f&&("load"===f.type?"missing":f.type),b=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,d[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var d,c,b=f[0],t=f[1],o=f[2],n=0;if(b.some((a=>0!==e[a]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(a&&a(f);n<b.length;n++)c=b[n],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0;return r.O(i)},f=self.webpackChunknew_website=self.webpackChunknew_website||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})(); \ No newline at end of file diff --git a/blog/2015/02/18/Import-Types/index.html b/blog/2015/02/18/Import-Types/index.html new file mode 100644 index 00000000000..436b4811e89 --- /dev/null +++ b/blog/2015/02/18/Import-Types/index.html @@ -0,0 +1,26 @@ +<!doctype html> +<html lang="en" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v2.4.1"> +<title data-rh="true">Announcing Import Type | Flow + + + + + + + + + + + + + + +
    +

    Announcing Import Type

    As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.

    Motivation

    Has this ever happened to you:

    // @flow

    // Post-transformation lint error: Unused variable 'URI'
    import URI from "URI";

    // But if you delete the require you get a Flow error:
    // identifier URI - Unknown global name
    module.exports = function(x: URI): URI {
    return x;
    }

    Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new import type syntax. With import type, you can convey what you really mean here — that you want to import the type of the class and not really the class itself.

    Enter Import Type

    So instead of the above code, you can now write this:

    // @flow

    import type URI from 'URI';
    module.exports = function(x: URI): URI {
    return x;
    };

    If you have a module that exports multiple classes (like, say, a Crayon and a Marker class), you can import the type for each of them together or separately like this:

    // @flow

    import type {Crayon, Marker} from 'WritingUtensils';
    module.exports = function junkDrawer(x: Crayon, y: Marker): void {}

    Transformations

    Like type annotations and other Flow features, import type need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

    npm install react-tools@0.13.0-beta.2

    Anticipatory Q&A

    Wait, but what happens at runtime after I've added an import type declaration?

    Nothing! All import type declarations get stripped away just like other flow syntax.

    Can I use import type to pull in type aliases from another module, too?

    Not quite yet...but soon! There are a few other moving parts that we need to build first, but we're working on it.

    EDIT: Yes! As of Flow 0.10 you can use the export type MyType = ... ; syntax to compliment the import type syntax. Here's a trivial example:

    // @flow

    // MyTypes.js
    export type UserID = number;
    export type User = {
    id: UserID,
    firstName: string,
    lastName: string
    };
    // @flow

    // User.js
    import type {UserID, User} from "MyTypes";

    function getUserID(user: User): UserID {
    return user.id;
    }

    Note that we only support the explicit named-export statements for now (i.e. export type UserID = number;). In a future version we can add support for latent named-export statements (i.e. type UserID = number; export {UserID};) and default type exports (i.e. export default type MyType = ... ;)...but for now these forms aren't yet supported for type exports.

    + + + + \ No newline at end of file diff --git a/blog/2015/02/18/Typecasts/index.html b/blog/2015/02/18/Typecasts/index.html new file mode 100644 index 00000000000..3c5711b753f --- /dev/null +++ b/blog/2015/02/18/Typecasts/index.html @@ -0,0 +1,26 @@ + + + + + +Announcing Typecasts | Flow + + + + + + + + + + + + + + +
    +

    Announcing Typecasts

    As of version 0.3.0, Flow supports typecast expression.

    A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:

    (1 + 1 : number);
    var a = { name: (null: ?string) };
    ([1, 'a', true]: Array<mixed>).map(fn);

    For any JavaScript expression <expr> and any Flow type <type>, you can write

    (<expr> : <type>)

    Note: the parentheses are necessary.

    How Typecasts Work

    To evaluate a typecast expression, Flow will first check that <expr> is a <type>.

    (1+1: number); // this is fine
    (1+1: string); // but this is is an error

    Second, Flow will infer that the typecast expression (<expr>: <type>) has the type <type>.

    [(0: ?number)]; // Flow will infer the type Array<?number>
    [0]; // Without the typecast, Flow infers the type Array<number>

    Safety

    Typecasts obey the same rules as other type annotations, so they provide the same safety guarantees. This means they are safe unless you explicitly use the any type to defeat Flow's typechecking. Here are examples of upcasting (which is allowed), downcasting (which is forbidden), and using any.

    class Base {}
    class Child extends Base {}
    var child: Child = new Child();

    // Upcast from Child to Base, a more general type: OK
    var base: Base = new Child();

    // Upcast from Child to Base, a more general type: OK
    (child: Base);

    // Downcast from Base to Child: unsafe, ERROR
    (base: Child);

    // Upcast base to any then downcast any to Child.
    // Unsafe downcasting from any is allowed: OK
    ((base: any): Child);

    More examples

    Typecasts are particularly useful to check assumptions and help Flow infer the types you intend. Here are some examples:

    (x: number) // Make Flow check that x is a number
    (0: ?number) // Tells Flow that this expression is actually nullable.
    (null: ?number) // Tells Flow that this expression is a nullable number.

    Transformations

    Like type annotations and other Flow features, typecasts need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

    npm install react-tools@0.13.0-beta.2
    + + + + \ No newline at end of file diff --git a/blog/2015/02/20/Flow-Comments/index.html b/blog/2015/02/20/Flow-Comments/index.html new file mode 100644 index 00000000000..3b043562bd5 --- /dev/null +++ b/blog/2015/02/20/Flow-Comments/index.html @@ -0,0 +1,26 @@ + + + + + +Announcing Flow Comments | Flow + + + + + + + + + + + + + + +
    +

    Announcing Flow Comments

    As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!

    This feature introduces 3 special comments: /*:, /*::, and /*flow-include. Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments.

    The Flow Comment Syntax

    There are 3 special comments that Flow currently supports. You may recognize this syntax from Jarno Rantanen's excellent project, flotate.

    1. /*:

    /*: <your code> */ is interpreted by Flow as : <your code>

    function foo(x/*: number*/)/* : string */ { ... }

    is interpreted by Flow as

    function foo(x: number): string { ... }

    but appears to the JavaScript engine (ignoring comments) as

    function foo(x) { ... }

    2. /*::

    /*:: <your code> */ is interpreted by Flow as <your code>

    /*:: type foo = number; */

    is interpreted by Flow as

    type foo = number;

    but appears to the runtime (ignoring comments) as


    3. /*flow-include

    /*flow-include <your code> */ is interpreted by Flow as <your code>. It behaves the same as /*::

    /*flow-include type foo = number; */

    is interpreted by Flow as

    type foo = number;

    but appears to the runtime (ignoring comments) as


    Note: whitespace is ignored after the /* but before the :, ::, or flow-include. So you can write things like

    /* : number */
    /* :: type foo = number */
    /* flow-include type foo = number */

    Future Work

    We plan to update our Flow transformation to wrap Flow syntax with these special comments, rather than stripping it away completely. This will help people write Flow code but publish code that works with or without Flow.

    Thanks

    Special thanks to Jarno Rantanen for building flotate and supporting us merging his syntax upstream into Flow.

    + + + + \ No newline at end of file diff --git a/blog/2015/03/12/Bounded-Polymorphism/index.html b/blog/2015/03/12/Bounded-Polymorphism/index.html new file mode 100644 index 00000000000..e8a5e18042c --- /dev/null +++ b/blog/2015/03/12/Bounded-Polymorphism/index.html @@ -0,0 +1,26 @@ + + + + + +Announcing Bounded Polymorphism | Flow + + + + + + + + + + + + + + +
    +

    Announcing Bounded Polymorphism

    As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like

    class BagOfBones<T: Bone> { ... }
    function eat<T: Food>(meal: T): Indigestion<T> { ... }

    The problem

    Consider the following code that defines a polymorphic function in Flow:

    function fooBad<T>(obj: T): T {
    console.log(Math.abs(obj.x));
    return obj;
    }

    This code does not (and should not!) type check. Not all values obj: T have a property x, let alone a property x that is a number, given the additional requirement imposed by Math.abs().

    But what if you wanted T to not range over all types, but instead over only the types of objects with an x property that has the type number? Intuitively, given that condition, the body should type check. Unfortunately, the only way you could enforce this condition prior to Flow 0.5.0 was by giving up on polymorphism entirely! For example you could write:

    // Old lame workaround
    function fooStillBad(obj: { x: number }): {x: number } {
    console.log(Math.abs(obj.x));
    return obj;
    }

    But while this change would make the body type check, it would cause Flow to lose information across call sites. For example:

    // The return type of fooStillBad() is {x: number}
    // so Flow thinks result has the type {x: number}
    var result = fooStillBad({x: 42, y: "oops"});

    // This will be an error since result's type
    // doesn't have a property "y"
    var test: {x: number; y: string} = result;

    The solution

    As of version 0.5.0, such typing problems can be solved elegantly using bounded polymorphism. Type parameters such as T can specify bounds that constrain the types that the type parameters range over. For example, we can write:

    function fooGood<T: { x: number }>(obj: T): T {
    console.log(Math.abs(obj.x));
    return obj;
    }

    Now the body type checks under the assumption that T is a subtype of { x: number }. Furthermore, no information is lost across call sites. Using the example from above:

    // With bounded polymorphism, Flow knows the return
    // type is {x: number; y: string}
    var result = fooGood({x: 42, y: "yay"});

    // This works!
    var test: {x: number; y: string} = result;

    Of course, polymorphic classes may also specify bounds. For example, the following code type checks:

    class Store<T: { x: number }> {
    obj: T;
    constructor(obj: T) { this.obj = obj; }
    foo() { console.log(Math.abs(this.obj.x)); }
    }

    Instantiations of the class are appropriately constrained. If you write

    var store = new Store({x: 42, y: "hi"});

    Then store.obj has type {x: number; y: string}.

    Any type may be used as a type parameter's bound. The type does not need to be an object type (as in the examples above). It may even be another type parameter that is in scope. For example, consider adding the following method to the above Store class:

    class Store<T: { x: number }> {
    ...
    bar<U: T>(obj: U): U {
    this.obj = obj;
    console.log(Math.abs(obj.x));
    return obj;
    }
    }

    Since U is a subtype of T, the method body type checks (as you may expect, U must also satisfy T's bound, by transitivity of subtyping). Now the following code type checks:

      // store is a Store<{x: number; y: string}>
    var store = new Store({x: 42, y: "yay"});

    var result = store.bar({x: 0, y: "hello", z: "world"});

    // This works!
    var test: {x: number; y: string; z: string } = result;

    Also, in a polymorphic definition with multiple type parameters, any type parameter may appear in the bound of any following type parameter. This is useful for type checking examples like the following:

    function copyArray<T, S: T>(from: Array<S>, to: Array<T>) {
    from.forEach(elem => to.push(elem));
    }

    Why we built this

    The addition of bounded polymorphism significantly increases the expressiveness of Flow's type system, by enabling signatures and definitions to specify relationships between their type parameters, without having to sacrifice the benefits of generics. We expect that the increased expressiveness will be particularly useful to library writers, and will also allow us to write better declarations for framework APIs such as those provided by React.

    Transformations

    Like type annotations and other Flow features, polymorphic function and class definitions need to be transformed before the code can be run. The transforms are available in react-tools 0.13.0, which was recently released

    + + + + \ No newline at end of file diff --git a/blog/2015/07/03/Disjoint-Unions/index.html b/blog/2015/07/03/Disjoint-Unions/index.html new file mode 100644 index 00000000000..167d9578d56 --- /dev/null +++ b/blog/2015/07/03/Disjoint-Unions/index.html @@ -0,0 +1,41 @@ + + + + + +Announcing Disjoint Unions | Flow + + + + + + + + + + + + + + +
    +

    Announcing Disjoint Unions

    Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:

    • Specifying such data by a set of disjoint cases, distinguished by “tags”, where each tag is associated with a different “record” of properties. (These descriptions are called “disjoint union” or “variant” types.)
    • Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)

    Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!

    As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.

    Flow's syntax for disjoint unions looks like:

    type BinaryTree =
    { kind: "leaf", value: number } |
    { kind: "branch", left: BinaryTree, right: BinaryTree }

    function sumLeaves(tree: BinaryTree): number {
    if (tree.kind === "leaf") {
    return tree.value;
    } else {
    return sumLeaves(tree.left) + sumLeaves(tree.right);
    }
    }

    The problem

    Consider the following function that returns different objects depending on the data passed into it:

    type Result = { status: string, errorCode?: number }

    function getResult(op): Result {
    var statusCode = op();
    if (statusCode === 0) {
    return { status: 'done' };
    } else {
    return { status: 'error', errorCode: statusCode };
    }
    }

    The result contains a status property that is either 'done' or 'error', +and an optional errorCode property that holds a numeric status code when the +status is 'error'.

    One may now try to write another function that gets the error code from a result:

    function getErrorCode(result: Result): number {
    switch (result.status) {
    case 'error':
    return result.errorCode;
    default:
    return 0;
    }
    }

    Unfortunately, this code does not typecheck. The Result type does not precisely +capture the relationship between the status property and the errorCode property. +Namely it doesn't capture that when the status property is 'error', the errorCode +property will be present and defined on the object. As a result, Flow thinks that +result.errorCode in the above function may return undefined instead of number.

    Prior to version 0.13.1 there was no way to express this relationship, which meant +that it was not possible to check the type safety of this simple, familiar idiom!

    The solution

    As of version 0.13.1 it is possible to write a more precise type for Result +that better captures the intent and helps Flow narrow down the possible shapes +of an object based on the outcome of a dynamic === check. Now, we can write:

    type Result = Done | Error
    type Done = { status: 'done' }
    type Error = { status: 'error', errorCode: number }

    In other words, we can explicitly list out the possible shapes of results. These +cases are distinguished by the value of the status property. Note that here +we use the string literal types 'done' and 'error'. These match exactly the strings +'done' and 'error', which means that === checks on those values are enough for +Flow to narrow down the corresponding type cases. With this additional reasoning, the +function getErrorCode now typechecks, without needing any changes to the code!

    In addition to string literals, Flow also supports number literals as singleton types +so they can also be used in disjoint unions and case analyses.

    Why we built this

    Disjoint unions are at the heart of several good programming practices pervasive in functional programming languages. Supporting them in Flow means that JavaScript can use these practices in a type-safe manner. For example, disjoint unions can be used to write type-safe Flux dispatchers. They are also heavily used in a recently released reference implementation of GraphQL.

    + + + + \ No newline at end of file diff --git a/blog/2015/07/29/Version-0.14.0/index.html b/blog/2015/07/29/Version-0.14.0/index.html new file mode 100644 index 00000000000..187cd2a9241 --- /dev/null +++ b/blog/2015/07/29/Version-0.14.0/index.html @@ -0,0 +1,26 @@ + + + + + +Version-0.14.0 | Flow + + + + + + + + + + + + + + +
    +

    Version-0.14.0

    It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.

    So here is Flow v0.14.0! Check out the Changelog for the canonical list of what has changed.

    + + + + \ No newline at end of file diff --git a/blog/2015/09/10/Version-0.15.0/index.html b/blog/2015/09/10/Version-0.15.0/index.html new file mode 100644 index 00000000000..d8997d08f86 --- /dev/null +++ b/blog/2015/09/10/Version-0.15.0/index.html @@ -0,0 +1,26 @@ + + + + + +Version-0.15.0 | Flow + + + + + + + + + + + + + + +
    +

    Version-0.15.0

    Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!

    Check out the Changelog to see what's new.

    + + + + \ No newline at end of file diff --git a/blog/2015/09/22/Version-0.16.0/index.html b/blog/2015/09/22/Version-0.16.0/index.html new file mode 100644 index 00000000000..7193fc1b4b4 --- /dev/null +++ b/blog/2015/09/22/Version-0.16.0/index.html @@ -0,0 +1,26 @@ + + + + + +Version-0.16.0 | Flow + + + + + + + + + + + + + + +
    +

    Version-0.16.0

    On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!

    As always, the Changelog is best at summing up the big changes.

    + + + + \ No newline at end of file diff --git a/blog/2015/10/07/Version-0.17.0/index.html b/blog/2015/10/07/Version-0.17.0/index.html new file mode 100644 index 00000000000..fd1cd2acad5 --- /dev/null +++ b/blog/2015/10/07/Version-0.17.0/index.html @@ -0,0 +1,26 @@ + + + + + +Version-0.17.0 | Flow + + + + + + + + + + + + + + +
    +

    Version-0.17.0

    Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:

    ![New error format]({{ site.baseurl }}/static/new_error_format_v0_17_0.png)

    This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to @frantic for building this feature!

    There are a whole bunch of other features and fixes in this release! Head on over to our Release for the full list!

    + + + + \ No newline at end of file diff --git a/blog/2015/11/09/Generators/index.html b/blog/2015/11/09/Generators/index.html new file mode 100644 index 00000000000..ea12a0bb7cf --- /dev/null +++ b/blog/2015/11/09/Generators/index.html @@ -0,0 +1,26 @@ + + + + + +Typing Generators with Flow | Flow + + + + + + + + + + + + + + +
    +

    Typing Generators with Flow

    Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.

    So much wonderful material has already been produced describing generators. I am going to focus on the interaction of static typing with generators. Please refer to the following materials for information about generators:

    • Jafar Husain gave an incredibly lucid and well-illustrated talk that covers generators. I have linked to the point where he gets into generators, but I highly recommend the entire talk.
    • Exploring ES6, a comprehensive book by Axel Rauschmayer, who has generously made the contents available for free online, has a chapter on generators.
    • The venerable MDN has a useful page describing the Iterator interface and generators.

    In Flow, the Generator interface has three type parameters: Yield, Return, and Next. Yield is the type of values which are yielded from the generator function. Return is the type of the value which is returned from the generator function. Next is the type of values which are passed into the generator via the next method on the Generator itself. For example, a generator value of type Generator<string,number,boolean> will yield strings, return a number, and will receive booleans from its caller.

    For any type T, a Generator<T,void,void> is both an Iterable<T> and an Iterator<T>.

    The unique nature of generators allows us to represent infinite sequences naturally. Consider the infinite sequence of natural numbers:

    function *nats() {
    let i = 0;
    while (true) {
    yield i++;
    }
    }

    Because generators are also iterators, we can manually iterate the generator:

    const gen = nats();
    console.log(gen.next()); // { done: false, value: 0 }
    console.log(gen.next()); // { done: false, value: 1 }
    console.log(gen.next()); // { done: false, value: 2 }

    When done is false, value will have the generator's Yield type. When done is true, value will have the generator's Return type or void if the consumer iterates past the completion value.

    function *test() {
    yield 1;
    return "complete";
    }
    const gen = test();
    console.log(gen.next()); // { done: false, value: 1 }
    console.log(gen.next()); // { done: true, value: "complete" }
    console.log(gen.next()); // { done: true, value: undefined }

    Because of this behavior, manually iterating poses typing difficulties. Let's try to take the first 10 values from the nats generator through manual iteration:

    const gen = nats();
    const take10: number[] = [];
    for (let i = 0; i < 10; i++) {
    const { done, value } = gen.next();
    if (done) {
    break;
    } else {
    take10.push(value); // error!
    }
    }
    test.js:13
    13: const { done, value } = gen.next();
    ^^^^^^^^^^ call of method `next`
    17: take10.push(value); // error!
    ^^^^^ undefined. This type is incompatible with
    11: const take10: number[] = [];
    ^^^^^^ number

    Flow is complaining that value might be undefined. This is because the type of value is Yield | Return | void, which simplifies in the instance of nats to number | void. We can introduce a dynamic type test to convince Flow of the invariant that value will always be number when done is false.

    const gen = nats();
    const take10: number[] = [];
    for (let i = 0; i < 10; i++) {
    const { done, value } = gen.next();
    if (done) {
    break;
    } else {
    if (typeof value === "undefined") {
    throw new Error("`value` must be a number.");
    }
    take10.push(value); // no error
    }
    }

    There is an open issue which would make the dynamic type test above unnecessary, by using the done value as a sentinel to refine a tagged union. That is, when done is true, Flow would know that value is always of type Yield and otherwise of type Return | void.

    Even without the dynamic type test, this code is quite verbose and it's hard to see the intent. Because generators are also iterable, we can also use for...of loops:

    const take10: number[] = [];
    let i = 0;
    for (let nat of nats()) {
    if (i === 10) break;
    take10.push(nat);
    i++;
    }

    That's much better. The for...of looping construct ignores completion values, so Flow understands that nat will always be number. Let's generalize this pattern further using generator functions:

    function *take<T>(n: number, xs: Iterable<T>): Iterable<T> {
    if (n <= 0) return;
    let i = 0;
    for (let x of xs) {
    yield x;
    if (++i === n) return;
    }
    }

    for (let n of take(10, nats())) {
    console.log(n); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    }

    Note that we explicitly annotated the parameters and return type of the take generator. This is necessary to ensure Flow understands the fully generic type. This is because Flow does not currently infer a fully generic type, but instead accumulates lower bounds, resulting in a union type.

    function identity(x) { return x }
    var a: string = identity(""); // error
    var b: number = identity(0); // error

    The above code produces errors because Flow adds string and number as lower bounds to the type variable describing the type of the value bound by x. That is, Flow believes the type of identity is (x: string | number) => string | number because those are the types which actually passed through the function.

    Another important feature of generators is the ability to pass values into the generator from the consumer. Let's consider a generator scan, which reduces values passed into the generator using a provided function. Our scan is similar to Array.prototype.reduce, but it returns each intermediate value and the values are provided imperatively via next.

    As a first pass, we might write this:

    function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
    let acc = init;
    while (true) {
    const next = yield acc;
    acc = f(acc, next);
    }
    }

    We can use this definition to implement an imperative sum procedure:

    let sum = scan(0, (a,b) => a + b);
    console.log(sum.next()); // { done: false, value: 0 }
    console.log(sum.next(1)); // { done: false, value: 1 }
    console.log(sum.next(2)); // { done: false, value: 3 }
    console.log(sum.next(3)); // { done: false, value: 6 }

    However, when we try to check the above definition of scan, Flow complains:

    test.js:7
    7: acc = f(acc, next);
    ^^^^^^^^^^^^ function call
    7: acc = f(acc, next);
    ^^^^ undefined. This type is incompatible with
    3: function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
    ^ some incompatible instantiation of T

    Flow is complaining that our value, next, may be void instead of the expected T, which is number in the sum example. This behavior is necessary to ensure type safety. In order to prime the generator, our consumer must first call next without an argument. To accommodate this, Flow understands the argument to next to be optional. This means Flow will allow the following code:

    let sum = scan(0, (a,b) => a + b);
    console.log(sum.next()); // first call primes the generator
    console.log(sum.next()); // we should pass a value, but don't need to

    In general, Flow doesn't know which invocation is "first." While it should be an error to pass a value to the first next, and an error to not pass a value to subsequent nexts, Flow compromises and forces your generator to deal with a potentially void value. In short, given a generator of type Generator<Y,R,N> and a value x of type Y, the type of the expression yield x is N | void.

    We can update our definition to use a dynamic type test that enforces the non-void invariant at runtime:

    function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
    let acc = init;
    while (true) {
    const next = yield acc;
    if (typeof next === "undefined") {
    throw new Error("Caller must provide an argument to `next`.");
    }
    acc = f(acc, next);
    }
    }

    There is one more important caveat when dealing with typed generators. Every value yielded from the generator must be described by a single type. Similarly, every value passed to the generator via next must be described by a single type.

    Consider the following generator:

    function *foo() {
    yield 0;
    yield "";
    }

    const gen = foo();
    const a: number = gen.next().value; // error
    const b: string = gen.next().value; // error

    This is perfectly legal JavaScript and the values a and b do have the correct types at runtime. However, Flow rejects this program. Our generator's Yield type parameter has a concrete type of number | string. The value property of the iterator result object has the type number | string | void.

    We can observe similar behavior for values passed into the generator:

    function *bar() {
    var a = yield;
    var b = yield;
    return {a,b};
    }

    const gen = bar();
    gen.next(); // prime the generator
    gen.next(0);
    const ret: { a: number, b: string } = gen.next("").value; // error

    The value ret has the annotated type at runtime, but Flow also rejects this program. Our generator's Next type parameter has a concrete type of number | string. The value property of the iterator result object thus has the type void | { a: void | number | string, b: void | number | string }.

    While it may be possible to use dynamic type tests to resolve these issues, another practical option is to use any to take on the type safety responsibility yourself.

    function *bar(): Generator {
    var a = yield;
    var b = yield;
    return {a,b};
    }

    const gen = bar();
    gen.next(); // prime the generator
    gen.next(0);
    const ret: void | { a: number, b: string } = gen.next("").value; // OK

    (Note that the annotation Generator is equivalent to Generator<any,any,any>.)

    Phew! I hope that this will help you use generators in your own code. I also hope this gave you a little insight into the difficulties of applying static analysis to a highly dynamic language such as JavaScript.

    To summarize, here are some of the lessons we've learned for using generators in statically typed JS:

    • Use generators to implement custom iterables.
    • Use dynamic type tests to unpack the optional return type of yield expressions.
    • Avoid generators that yield or receive values of multiple types, or use any.
    + + + + \ No newline at end of file diff --git a/blog/2015/12/01/Version-0.19.0/index.html b/blog/2015/12/01/Version-0.19.0/index.html new file mode 100644 index 00000000000..9dd3c1ce333 --- /dev/null +++ b/blog/2015/12/01/Version-0.19.0/index.html @@ -0,0 +1,48 @@ + + + + + +Version-0.19.0 | Flow + + + + + + + + + + + + + + +
    +

    Version-0.19.0

    Flow v0.19.0 was deployed today! It has a ton of changes, which the +Changelog +summarizes. The Changelog can be a little concise, though, so here are some +longer explanations for some of the changes. Hope this helps!

    @noflow

    Flow is opt-in by default (you add @flow to a file). However we noticed that +sometimes people would add Flow annotations to files that were missing @flow. +Often, these people didn't notice that the file was being ignored by Flow. So +we decided to stop allowing Flow syntax in non-Flow files. This is easily fixed +by adding either @flow or @noflow to your file. The former will make the +file a Flow file. The latter will tell Flow to completely ignore the file.

    Declaration files

    Files that end with .flow are now treated specially. They are the preferred +provider of modules. That is if both foo.js and foo.js.flow exist, then +when you write import Foo from './foo', Flow will use the type exported from +foo.js.flow rather than foo.js.

    We imagine two main ways people will use .flow files.

    1. As interface files. Maybe you have some library coolLibrary.js that is +really hard to type with inline Flow types. You could put +coolLibrary.js.flow next to it and declare the types that coolLibrary.js +exports.

      // coolLibrary.js.flow
      declare export var coolVar: number;
      declare export function coolFunction(): void;
      declare export class coolClass {}
    2. As the original source. Maybe you want to ship the minified, transformed +version of awesomeLibrary.js, but people who use awesomeLibrary.js also +use Flow. Well you could do something like

      cp awesomeLibraryOriginalCode.js awesomeLibrary.js.flow
      babel awesomeLibraryOriginalCode --out-file awesomeLibrary.js

    Order of precedence for lib files

    Now your local lib files will override the builtin lib files. Is one of the +builtin flow libs wrong? Send a pull request! But then while you're waiting for +the next release, you can use your own definition! The order of precedence is +as follows:

    1. Any paths supplied on the command line via --lib
    2. The files found in the paths specified in the .flowconfig [libs] (in +listing order)
    3. The Flow core library files

    For example, if I want to override the builtin definition of Array and instead +use my own version, I could update my .flowconfig to contain

    // .flowconfig
    [libs]
    myArray.js
    // myArray.js
    declare class Array<T> {
    // Put whatever you like in here!
    }

    Deferred initialization

    Previously the following code was an error, because the initialization of +myString happens later. Now Flow is fine with it.

    function foo(someFlag: boolean): string {
    var myString:string;
    if (someFlag) {
    myString = "yup";
    } else {
    myString = "nope";
    }
    return myString;
    }
    + + + + \ No newline at end of file diff --git a/blog/2016/02/02/Version-0.21.0/index.html b/blog/2016/02/02/Version-0.21.0/index.html new file mode 100644 index 00000000000..ec2ef61c1c2 --- /dev/null +++ b/blog/2016/02/02/Version-0.21.0/index.html @@ -0,0 +1,46 @@ + + + + + +Version 0.21.0 | Flow + + + + + + + + + + + + + + +
    +

    Version 0.21.0

    Yesterday we deployed Flow v0.21.0! As always, we've listed out the most +interesting changes in the +Changelog. +However, since I'm on a plane and can't sleep, I thought it might be fun to +dive into a couple of the changes! Hope this blog post turns out interesting +and legible!

    JSX Intrinsics

    If you're writing JSX, it's probably a mix of your own React Components and +some intrinsics. For example, you might write

    render() {
    return <div><FluffyBunny name="Fifi" /></div>;
    }

    In this example, FluffyBunny is a React Component you wrote and div is a +JSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React +and by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the +type any. This meant Flow let you set any property on JSX intrinsics. Flow +v0.21.0 will, by default, do the same thing as v0.20.0, However now you can +also configure Flow to properly type your JSX intrinsics!

    Example of how to use JSX intrinsics

    .flowconfig

    [libs]
    myLib.js

    myLib.js

    // JSXHelper is a type alias to make this example more concise.
    // There's nothing special or magic here.
    // JSXHelper<{name: string}> is a React component
    // with the single string property "name", which has a default
    type JSXHelper<T> = Class<ReactComponent<T,T,mixed>>;

    // $JSXIntrinsics is special and magic.
    // This declares the types for `div` and `span`
    type $JSXIntrinsics = {
    div: JSXHelper<{id: string}>,
    span: JSXHelper<{id: string, class: string}>,
    };

    myCode.js

    <div id="asdf" />; // No error
    <div id={42} />; // Error: `id` prop is a string, not a number!

    What is going on here?

    The new bit of magic is this $JSXIntrinsics type alias. When Flow sees +<foo /> it will look to see if $JSXIntrinsics exists and if so will grab +the type of $JSXIntrinsics['foo']. It will use this type to figure out which +properties are available and need to be set.

    We haven't hardcoded the intrinsics into Flow since the available intrinsics +will depend on your environment. For example, React native would have different +intrinsics than React for the web would.

    Smarter string refinements

    One of the main ways that we make Flow smarter is by teaching it to recognize +more ways that JavaScript programmers refine types. Here's an example of a +common way to refine nullable values:

    class Person {
    name: ?string;
    ...
    getName(): string {
    // Before the if, this.name could be null, undefined, or a string
    if (this.name != null) {
    // But now the programmer has refined this.name to definitely be a string
    return this.name;
    }
    // And now we know that this.name is null or undefined.
    return 'You know who';
    }
    }

    New string refinements

    In v0.21.0, one of the refinements we added is the ability to refine types by +comparing them to strings.

    This is useful for refining unions of string literals into string literals

    function test(x: 'foo' | 'bar'): 'foo' {
    if (x === 'foo') {
    // Now Flow understands that x has the type 'foo'
    return x;
    } else {
    return 'foo';
    }
    }

    And can also narrow the value of strings:

    function test(x: string): 'foo' {
    if (x === 'foo') {
    // Now Flow knows x has the type 'foo'
    return x;
    } else {
    return 'foo';
    }
    }

    This is one of the many refinements that Flow currently can recognize and +follow, and we'll keep adding more! Stay tuned!

    + + + + \ No newline at end of file diff --git a/blog/2016/07/01/New-Unions-Intersections/index.html b/blog/2016/07/01/New-Unions-Intersections/index.html new file mode 100644 index 00000000000..87520afe75c --- /dev/null +++ b/blog/2016/07/01/New-Unions-Intersections/index.html @@ -0,0 +1,64 @@ + + + + + +New Implementation of Unions and Intersections | Flow + + + + + + + + + + + + + + +
    +

    New Implementation of Unions and Intersections

    Summary

    Before Flow 0.28, the implementation of union/intersection types had serious +bugs and was the root cause of +a lot of weird behaviors you +may have run into with Flow in the past. These bugs have now been addressed in +a diff landing in 0.28.

    As you might expect after a major rewrite of a tricky part of the type system +implementation, there will be a short period of adjustment: you may run into +kinks that we will try to iron out promptly, and you may run into some +unfamiliar error messages.

    New Error Messages

    <error location> Could not decide which case to select
    <location of union/intersection type>

    Case 1 may work:
    <location of 1st case of union/intersection type>

    But if it doesn't, case 2 looks promising too:
    <location of 2nd case of union/intersection type>

    Please provide additional annotation(s) to determine whether case 1 works
    (or consider merging it with case 2):
    <location to annotate>
    <location to annotate>
    ...

    What this means is that at <error location>, Flow needs to make a choice: one +of the members of the union/intersection type at +<location of union/intersection type> must be applied, but Flow can't choose +safely based on available information. In particular, it cannot decide between +case 1 and 2, so Flow lists a bunch of annotations that can help it +disambiguate the two cases.

    Actions Needed

    You can fix the errors in two ways:

    • Actually go and annotate the listed locations. This should be by far the most +common fix.
    • Discover that there is real, unintentional ambiguity between case 1 and 2, +and rewrite the two cases in the union type to remove the ambiguity. When +this happens, typically it will fix a large number of errors.

    There are two more possibilities, however:

    • There's no real ambiguity and Flow is being too conservative / dumb. In this +case, go ahead and do the annotations anyway and file an issue on GitHub. We +plan to do a lot of short-term follow-up work to disambiguate more cases +automatically, so over time you should see less of (3).
    • You have no idea what's going on. The cases being pointed to don't make sense. +They don't correspond to what you have at <error location>. Hopefully you +won't run into (4) too often, but if you do please file an issue, since +this means there are still latent bugs in the implementation.

    If you file an issue on GitHub, please include code to reproduce the issue. You +can use Try Flow to share your repro case easily.

    If you're curious about the whys and hows of these new error messages, here's +an excerpt from the commit message of the "fate of the union" diff:

    Problem

    Flow's inference engine is designed to find more errors over time as +constraints are added...but it is not designed to backtrack. Unfortunately, +checking the type of an expression against a union type does need backtracking: +if some branch of the union doesn't work out, the next branch must be tried, +and so on. (The same is true for checks that involve intersection types.)

    The situation is further complicated by the fact that the type of the +expression may not be completely known at the point of checking, so that a +branch that looks promising now might turn out to be incorrect later.

    Solution

    The basic idea is to delay trying a branch until a point where we can decide +whether the branch will definitely fail or succeed, without further +information. If trying a branch results in failure, we can move on to the next +branch without needing to backtrack. If a branch succeeds, we are done. The +final case is where the branch looks promising, but we cannot be sure without +adding constraints: in this case we try other branches, and bail when we run +into ambiguities...requesting additional annotations to decide which branch to +select. Overall, this means that (1) we never commit to a branch that might +turn out to be incorrect and (2) can always select a correct branch (if such +exists) given enough annotations.

    + + + + \ No newline at end of file diff --git a/blog/2016/08/01/Windows-Support/index.html b/blog/2016/08/01/Windows-Support/index.html new file mode 100644 index 00000000000..6f980ccf028 --- /dev/null +++ b/blog/2016/08/01/Windows-Support/index.html @@ -0,0 +1,55 @@ + + + + + +Windows Support is Here! | Flow + + + + + + + + + + + + + + +
    +

    Windows Support is Here!

    We are excited to announce that Flow is now officially available on 64-bit +Windows! Starting with +Flow v0.30.0, we will +publish a Windows binary with each release. You can download the Windows binary +in a .zip file directly from the +GitHub releases page or install it +using the flow-bin npm package. Try +it out and report any issues you +come across!

    ![Windows Support GIF]({{ site.baseurl }}/static/windows.gif)

    Getting Flow working on Windows was not easy, and it was made possible by the +hard work of Grégoire, +Çagdas and +Fabrice from +OCamlPro.

    Getting Started with Windows

    Getting Started with flow-bin on Windows

    Does your JavaScript project use npm to manage dependencies? Well, then the +easiest way for you to install Flow is with npm! Just run

    > npm install --save-dev flow-bin

    (Note: on Windows, it is recommended to use npm v3, to avoid the long +node_modules paths that npm v2 creates)

    This will install the +flow-bin npm package and +automatically add it to your package.json. Once installed, there are a few ways +to use the Flow binary. One is to use ./node_modules/.bin/flow directly. For +example, every Flow project needs a .flowconfig file in the root directory. +If you don't already have a .flowconfig, you could create it with Powershell, +like

    > New-Item .flowconfig

    or you could run the flow init command, using ./node_modules/.bin/flow

    > ./node_modules/.bin/flow init

    Another way to run Flow is via an npm script. In your package.json file, there +is a "scripts" section. Maybe it looks like this:

    "scripts": {
    "test": "make test"
    }

    You can run the Flow binary directly from a script by referencing flow in a +script, like so:

    "scripts": {
    "test": "make test",
    "flow_check": "flow check || exit 0"
    }

    and then running that script via npm run

    > npm run flow_check

    (Note: the || exit 0 part of the script is optional, but npm run will show +an error message if the script finishes with a non-zero exit code)

    You can also install flow-bin globally with

    > npm install --global flow-bin

    Getting Started with flow.exe

    Each GitHub release of Flow +starting with v0.30.0 will have a zipped Windows binary. For example, the +v0.30.0 release +includes flow-win64-v0.30.0.zip. +If you download and unzip that, you will find a flow/ directory, which +contains flow.exe. flow.exe is the Flow binary, so if you put that +somewhere in your path, and you should be good to go.

    > mkdir demo
    > cd demo
    > flow.exe init
    > "/* @flow */ var x: number = true;" | Out-File -Encoding ascii test.js
    > flow.exe check
    test.js:1
    1: /* @flow */ var x: number = true;
    ^^^^ boolean. This type is incompatible with

    1: /* @flow */ var x: number = true;
    ^^^^^^ number
    + + + + \ No newline at end of file diff --git a/blog/2016/10/04/Property-Variance/index.html b/blog/2016/10/04/Property-Variance/index.html new file mode 100644 index 00000000000..1cba3bebdce --- /dev/null +++ b/blog/2016/10/04/Property-Variance/index.html @@ -0,0 +1,77 @@ + + + + + +Property Variance and Other Upcoming Changes | Flow + + + + + + + + + + + + + + +
    +

    Property Variance and Other Upcoming Changes

    The next release of Flow, 0.34, will include a few important changes to object +types:

    • property variance,
    • invariant-by-default dictionary types,
    • covariant-by-default method types,
    • and more flexible getters and setters.

    What is Variance?

    Defining the subtype relationship between types is a core responsibility of Flow +as a type system. These relationships are determined either directly for +simple types or, for complex types, defined in terms of their parts.

    Variance describes the subtyping relationship for complex types as it relates +to the subtyping relationships of their parts.

    For example, Flow directly encodes the knowledge that string is a subtype of +?string. Intuitively, a string type contains string values while a ?string +type contains null, undefined, and also string values, so membership in the +former naturally implies membership in the later.

    The subtype relationships between two function types is not as direct. Rather, +it is derived from the subtype relationships between the functions' parameter +and return types.

    Let's see how this works for two simple function types:

    type F1 = (x: P1) => R1;
    type F2 = (x: P2) => R2;

    Whether F2 is a subtype of F1 depends on the relationships between P1 and +P2 and R1 and R2. Let's use the notation B <: A to mean B is a +subtype of A.

    It turns out that F2 <: F1 if P1 <: P2 and R2 <: R1. Notice that the +relationship for parameters is reversed? In technical terms, we can say that +function types are "contravariant" with respect to their parameter types and +"covariant" with respect to their return types.

    Let's look at an example:

    function f(callback: (x: string) => ?number): number {
    return callback("hi") || 0;
    }

    What kinds of functions can we pass to f? Based on the subtyping rule above, +then we can pass a function whose parameter type is a supertype of string and +whose return type is a subtype of ?number.

    function g(x: ?string): number {
    return x ? x.length : 0;
    }
    f(g);

    The body of f will only ever pass string values into g, which is safe +because g takes at least string by taking ?string. Conversely, g will +only ever return number values to f, which is safe because f handles at +least number by handling ?number.

    Input and Output

    One convenient way to remember when something is covariant vs. contravariant is +to think about "input" and "output."

    Parameters are in an input position, often called a "negative" position. +Complex types are contravariant in their input positions.

    Return is an output position, often called a "positive" position. Complex +types are covariant in their output positions.

    Property Invariance

    Just as function types are composed of parameter and return types, so too are +object types composed of property types. Thus, the subtyping relationship +between objects is derived from the subtyping relationships of their +properties.

    However, unlike functions which have input parameters and an output return, +object properties can be read and written. That is, properties are both input +and output.

    Let's see how this works for two simple object types:

    type O1 = {p: T1};
    type O2 = {p: T2};

    As with function types, whether O2 is a subtype of O1 depends on the +relationship between its parts, T1 and T2.

    Here it turns out that O2 <: O1 if T2 <: T1 and T1 <: T2. In technical +terms, object types are "invariant" with respect to their property types.

    Let's look at an example:

    function f(o: {p: ?string}): void {
    // We can read p from o
    let len: number;
    if (o.p) {
    len = o.p.length;
    } else {
    len = 0;
    }

    // We can also write into p
    o.p = null;
    }

    What kinds of objects can we pass into f, then? If we try to pass in an +object with a subtype property, we get an error:

    var o1: {p: string} = {p: ""};
    f(o1);
    function f(o: {p: ?string}) {}
    ^ null. This type is incompatible with
    var o1: {p: string} = {p: ""};
    ^ string
    function f(o: {p: ?string}) {}
    ^ undefined. This type is incompatible with
    var o1: {p: string} = {p: ""};
    ^ string

    Flow has correctly identified an error here. If the body of f writes null +into o.p, then o1.p would no longer have type string.

    If we try to pass an object with a supertype property, we again get an error:

    var o2: {p: ?(string|number)} = {p: 0};
    f(o2);
    var o1: {p: ?(string|number)} = {p: ""};
    ^ number. This type is incompatible with
    function f(o: {p: ?string}) {}
    ^ string

    Again, Flow correctly identifies an error, because if f tried to read p +from o, it would find a number.

    Property Variance

    So objects have to be invariant with respect to their property types because +properties can be read from and written to. But just because you can read and +write, doesn't mean you always do.

    Consider a function that gets the length of an nullable string property:

    function f(o: {p: ?string}): number {
    return o.p ? o.p.length : 0;
    }

    We never write into o.p, so we should be able to pass in an object where the +type of property p is a subtype of ?string. Until now, this wasn't possible +in Flow.

    With property variance, you can explicitly annotate object properties as being +covariant and contravariant. For example, we can rewrite the above function:

    function f(o: {+p: ?string}): number {
    return o.p ? o.p.length : 0;
    }

    var o: {p: string} = {p: ""};
    f(o); // no type error!

    It's crucial that covariant properties only ever appear in output positions. It +is an error to write to a covariant property:

    function f(o: {+p: ?string}) {
    o.p = null;
    }
    o.p = null;
    ^ object type. Covariant property `p` incompatible with contravariant use in
    o.p = null;
    ^ assignment of property `p`

    Conversely, if a function only ever writes to a property, we can annotate the +property as contravariant. This might come up in a function that initializes an +object with default values, for example.

    function g(o: {-p: string}): void {
    o.p = "default";
    }
    var o: {p: ?string} = {p: null};
    g(o);

    Contravariant properties can only ever appear in input positions. It is an +error to read from a contravariant property:

    function f(o: {-p: string}) {
    o.p.length;
    }
    o.p.length;
    ^ object type. Contravariant property `p` incompatible with covariant use in
    o.p.length;
    ^ property `p`

    Invariant-by-default Dictionary Types

    The object type {[key: string]: ?number} describes an object that can be used +as a map. We can read any property and Flow will infer the result type as +?number. We can also write null or undefined or number into any +property.

    In Flow 0.33 and earlier, these dictionary types were treated covariantly by +the type system. For example, Flow accepted the following code:

    function f(o: {[key: string]: ?number}) {
    o.p = null;
    }
    declare var o: {p: number};
    f(o);

    This is unsound because f can overwrite property p with null. In Flow +0.34, dictionaries are invariant, like named properties. The same code now +results in the following type error:

    function f(o: {[key: string]: ?number}) {}
    ^ null. This type is incompatible with
    declare var o: {p: number};
    ^ number
    function f(o: {[key: string]: ?number}) {}
    ^ undefined. This type is incompatible with
    declare var o: {p: number};
    ^ number

    Covariant and contravariant dictionaries can be incredibly useful, though. To +support this, the same syntax used to support variance for named properties can +be used for dictionaries as well.

    function f(o: {+[key: string]: ?number}) {}
    declare var o: {p: number};
    f(o); // no type error!

    Covariant-by-default Method Types

    ES6 gave us a shorthand way to write object properties which are functions.

    var o = {
    m(x) {
    return x * 2
    }
    }

    Flow now interprets properties which use this shorthand method syntax as +covariant by default. This means it is an error to write to the property m.

    If you don't want covariance, you can use the long form syntax:

    var o = {
    m: function(x) {
    return x * 2;
    }
    }

    More Flexible Getters and Setters

    In Flow 0.33 and earlier, getters and setters had to agree exactly on their +return type and parameter type, respectively. Flow 0.34 lifts that restriction.

    This means you can write code like the following:

    // @flow
    declare var x: string;

    var o = {
    get x(): string {
    return x;
    },
    set x(value: ?string) {
    x = value || "default";
    }
    }
    + + + + \ No newline at end of file diff --git a/blog/2016/10/13/Flow-Typed/index.html b/blog/2016/10/13/Flow-Typed/index.html new file mode 100644 index 00000000000..3cd83af0127 --- /dev/null +++ b/blog/2016/10/13/Flow-Typed/index.html @@ -0,0 +1,98 @@ + + + + + +Introducing Flow-Typed | Flow + + + + + + + + + + + + + + +
    +

    Introducing Flow-Typed

    Having high-quality and community-driven library definitions (“libdefs”) are +important for having a great experience with Flow. Today, we are introducing +flow-typed: A repository and +CLI tool that represent the first parts +of a new workflow for building, sharing, and distributing Flow libdefs.

    The goal of this project is to grow an ecosystem of libdefs that +allows Flow's type inference to shine +and that aligns with Flow's mission: To extract precise and accurate types +from real-world JavaScript. We've learned a lot from similar efforts like +DefinitelyTyped for TypeScript and we want to bring some of the lessons we've +learned to the Flow ecosystem.

    Here are some of the objectives of this project:

    • Libdefs should be versioned — both against the libraries they describe +and against the version(s) of Flow they are compatible with.
    • Libdefs should meet a high quality bar, including libdef tests to +ensure that their quality persists over time.
    • There must be a straightforward way to contribute libdef improvements over +time and for developers to benefit from those improvements over time.
    • The process of managing libdefs for a Flow project should be automated, +simple, and easy to get right.

    Versioned & Tested Libdefs

    Anyone can contribute a libdef (or improve on an existing one), but when doing +so it's important that we maintain a high quality bar so that all developers +feel confident in the libdefs they are using. To address this, flow-typed +requires that all libdef contributions are explicitly versioned against both +the version of the library they are describing and the version(s) of Flow the +libdef is compatible with.

    Additionally, all libdefs must be accompanied by tests that exercise the +important parts of the API and assert that they yield the correct types. By +including both version information and tests with each libdef, we can +automatically verify in Travis that the tests work as expected for all versions +of Flow a libdef is compatible with. Tests also help to ensure that future +changes to the libdef don't regress its features over time.

    Automating Libdef Installation

    We've built a simple CLI tool called flow-typed that helps to automate the +process of finding, installing, and upgrading libdefs in your Flow projects. It +uses the explicit version info associated with each libdef to find all +necessary libdefs based on your project's package.json dependencies. This +minimizes the work you need to do in order to pull in and update libdefs in +your projects.

    You can get the flow-typed CLI using either yarn (yarn global add flow-typed) +or npm (npm install -g flow-typed).

    Installing Libdefs

    Installing libdefs from the flow-typed repository is a matter of running a +single command on your project after installing your dependencies:

    > yarn install # Or `npm install` if you're old-school :)
    > flow-typed install

    The flow-typed install command reads your project's package.json file, +queries the flow-typed repository for libdefs matching your dependencies, and +installs the correctly-versioned libdefs into the flow-typed/ directory for +you. By default, Flow knows to look in the flow-typed/ directory for libdefs +— so there is no additional configuration necessary.

    Note that it's necessary to run this command after running yarn or +npm install. This is because this command will also generate stub libdefs for +you if one of your dependencies doesn't have types.

    Once libdefs have been installed, we recommend that you check them in to your +project's repo. Libdefs in the flow-typed repository may be improved over +time (fixing a bug, more precise types, etc). If this happens for a libdef that +you depend on, you'll want to have control over when that update is applied to +your project. Periodically you can run flow-typed update to download any +libdef updates, verify that your project still typechecks, and the commit the +updates.

    Why Not Just Use Npm To Distribute Libdefs?

    Over time libdefs in the flow-typed repo may be updated to fix bugs, improve +accuracy, or make use of new Flow features that better describe the types of +the library. As a result, there are really 3 versions that apply to each +libdef: The version of the library being described, the current version of the +libdef in the flow-typed repo, and the version(s) of Flow the libdef is +compatible with.

    If an update is made to some libdef that you use in your project after you've +already installed it, there's a good chance that update may find new type +errors in your project that were previously unknown. While it is certainly a +good thing to find errors that were previously missed, you'll want to have +control over when those changes get pulled in to your project.

    This is the reason we advise that you commit your installed libdefs to version +control rather than rely on a system like npm+semver to download and install a +non-deterministic semver-ranged version from npm. Checking in your libdefs +ensures that all collaborators on your project have consistent output from Flow +at any given commit in version history.

    Building a Community

    This is first and foremost a community project. It was started by a community +member (hey @splodingsocks!) and has +already benefitted from hours of work by many others. Moreover, this will +continue to be a community effort: Anyone can create and/or help maintain a +libdef for any npm library. Authors may create libdefs for their packages when +publishing, and/or consumers can create them when someone else hasn't already +done so. Either way, everyone benefits!

    We'd like to send a big shout-out to @marudor for +contributing so many of his own libdefs and spending time helping others to +write and contribute libdefs. Additionally we'd like to thank +@ryyppy for helping to design and iterate on the +CLI and installation workflow as well as manage libdef reviews.

    The Flow core team intends to stay invested in developing and improving this +project, but in order for it to truly succeed we need your help! If you've +already written some libdefs for Flow projects that you work on, we encourage +you to contribute +them for others to benefit from them as well. By managing libdefs in a +community-driven repository, the community as a whole can work together to +extend Flow's capabilities beyond just explicitly-typed JS.

    It's still early days and there's still a lot to do, so we're excited to hear +your ideas/feedback and read your pull requests! :)

    Happy typing!

    + + + + \ No newline at end of file diff --git a/blog/2017/05/07/Strict-Function-Call-Arity/index.html b/blog/2017/05/07/Strict-Function-Call-Arity/index.html new file mode 100644 index 00000000000..df2248cf651 --- /dev/null +++ b/blog/2017/05/07/Strict-Function-Call-Arity/index.html @@ -0,0 +1,68 @@ + + + + + +Strict Checking of Function Call Arity | Flow + + + + + + + + + + + + + + +
    +

    Strict Checking of Function Call Arity

    One of Flow's original goals was to be able to understand idiomatic JavaScript. +In JavaScript, you can call a function with more arguments than the function +expects. Therefore, Flow never complained about calling a function with +extraneous arguments.

    We are changing this behavior.

    What is arity?

    A function's arity is the number of arguments it expects. Since some functions +have optional parameters and some use rest parameters, we can define the +minimum arity as the smallest number of arguments it expects and the maximum +arity as the largest number of arguments it expects.

    function no_args() {} // arity of 0
    function two_args(a, b) {} // arity of 2
    function optional_args(a, b?) {} // min arity of 1, max arity of 2
    function many_args(a, ...rest) {} // min arity of 1, no max arity

    Motivation

    Consider the following code:

    function add(a, b) { return a + b; }
    const sum = add(1, 1, 1, 1);

    The author apparently thought the add() function adds up all its +arguments, and that sum will have the value 4. However, only the first two +arguments are summed, and sum actually will have the value 2. This is +obviously a bug, so why doesn't JavaScript or Flow complain?

    And while the error in the above example is easy to see, in real code it's often +a lot harder to notice. For example, what is the value of total here:

    const total = parseInt("10", 2) + parseFloat("10.1", 2);

    "10" in base 2 is 2 in decimal and "10.1" in base 2 is 2.5 in decimal. +So the author probably thought that total would be 4.5. However, the correct +answer is 12.1. parseInt("10", 2) does evaluates to 2, as expected. +However, parseFloat("10.1", 2) evaluates to 10.1. parseFloat() only takes +a single argument. The second argument is ignored!

    Why JavaScript allows extraneous arguments

    At this point, you might feel like this is just an example of JavaScript making +terrible life decisions. However, this behavior is very convenient in a bunch of +situations!

    Callbacks

    If you couldn't call a function with more arguments than it handles, then +mapping over an array would look like

    const doubled_arr = [1, 2, 3].map((element, index, arr) => element * 2);

    When you call Array.prototype.map, you pass in a callback. For each element in +the array, that callback is invoked and passed 3 arguments:

    1. The element
    2. The index of the element
    3. The array over which you're mapping

    However, your callback often only needs to reference the first argument: the +element. It's really nice that you can write

    const doubled_arr = [1, 2, 3].map(element => element * 2);

    Stubbing

    Sometimes I come across code like this

    let log = () => {};
    if (DEBUG) {
    log = (message) => console.log(message);
    }
    log("Hello world");

    The idea is that in a development environment, calling log() will output a +message, but in production it does nothing. Since you can call a +function with more arguments than it expects, it is easy to stub out log() in +production.

    Variadic functions using arguments

    A variadic function is a function that can take an indefinite number of +arguments. The old-school way to write variadic functions in JavaScript is by +using arguments. For example

    function sum_all() {
    let ret = 0;
    for (let i = 0; i < arguments.length; i++) { ret += arguments[i]; }
    return ret;
    }
    const total = sum_all(1, 2, 3); // returns 6

    For all intents and purposes, sum_all appears like it takes no arguments. So +even though it appears to have an arity of 0, it is convenient that we can call +it with more arguments.

    Changes to Flow

    We think we have found a compromise which catches the motivating bugs without +breaking the convenience of JavaScript.

    Calling a function

    If a function has a maximum arity of N, then Flow will start complaining if you +call it with more than N arguments.

    test:1
    1: const num = parseFloat("10.5", 2);
    ^ unused function argument
    19: declare function parseFloat(string: mixed): number;
    ^^^^^^^^^^^^^^^^^^^^^^^ function type expects no more than 1 argument. See lib: <BUILTINS>/core.js:19

    Function subtyping

    Flow will not change its function subtyping behavior. A function +with a smaller maximum arity is still a subtype of a function with a larger +maximum arity. This allows callbacks to still work as before.

    class Array<T> {
    ...
    map<U>(callbackfn: (value: T, index: number, array: Array<T>) => U, thisArg?: any): Array<U>;
    ...
    }
    const arr = [1,2,3].map(() => 4); // No error, evaluates to [4,4,4]

    In this example, () => number is a subtype of (number, number, Array<number>) => number.

    Stubbing and variadic functions

    This will, unfortunately, cause Flow to complain about stubs and variadic +functions which are written using arguments. However, you can fix these by +using rest parameters

    let log (...rest) => {};

    function sum_all(...rest) {
    let ret = 0;
    for (let i = 0; i < rest.length; i++) { ret += rest[i]; }
    return ret;
    }

    Rollout plan

    Flow v0.46.0 will ship with strict function call arity turned off by default. It +can be enabled via your .flowconfig with the flag

    experimental.strict_call_arity=true

    Flow v0.47.0 will ship with strict function call arity turned on and the +experimental.strict_call_arity flag will be removed.

    Why turn this on over two releases?

    This decouples the switch to strict checking of function call arity from the +release.

    Why not keep the experimental.strict_call_arity flag?

    This is a pretty core change. If we kept both behaviors, we'd have to test that +everything works with and without this change. As we add more flags, the number +of combinations grows exponentially, and Flow's behavior gets harder to reason +about. For this reason, we're choosing only one behavior: strict checking of +function call arity.

    What do you think?

    This change was motivated by feedback from Flow users. We really appreciate +all the members of our community who take the time to share their feedback with +us. This feedback is invaluable and helps us make Flow better, so please keep +it coming!

    + + + + \ No newline at end of file diff --git a/blog/2017/07/27/Opaque-Types/index.html b/blog/2017/07/27/Opaque-Types/index.html new file mode 100644 index 00000000000..d627955d065 --- /dev/null +++ b/blog/2017/07/27/Opaque-Types/index.html @@ -0,0 +1,27 @@ + + + + + +Opaque Type Aliases | Flow + + + + + + + + + + + + + + +
    +

    Do you ever wish that you could hide your implementation details away +from your users? Find out how opaque type aliases can get the job done!

    + + + + \ No newline at end of file diff --git a/blog/2017/08/04/Linting-in-Flow/index.html b/blog/2017/08/04/Linting-in-Flow/index.html new file mode 100644 index 00000000000..ea76d0b5c47 --- /dev/null +++ b/blog/2017/08/04/Linting-in-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +Linting in Flow | Flow + + + + + + + + + + + + + + +
    +

    Flow’s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.

    + + + + \ No newline at end of file diff --git a/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/index.html b/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/index.html new file mode 100644 index 00000000000..3ea43537b20 --- /dev/null +++ b/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/index.html @@ -0,0 +1,28 @@ + + + + + +Even Better Support for React in Flow | Flow + + + + + + + + + + + + + + +
    +

    The first version of Flow support for React was a magical implementation of +React.createClass(). Since then, React has evolved significantly. It is time +to rethink how Flow models React.

    + + + + \ No newline at end of file diff --git a/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/index.html b/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/index.html new file mode 100644 index 00000000000..64bac5c35df --- /dev/null +++ b/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/index.html @@ -0,0 +1,31 @@ + + + + + +Private Object Properties Using Flow’s Opaque Type Aliases | Flow + + + + + + + + + + + + + + +
    +

    In the last few weeks, a proposal for private class fields in Javascript reached +stage 3. This is going to be a great way to hide implementation details away +from users of your classes. However, locking yourself in to an OOP style of +programming is not always ideal if you prefer a more functional style. Let’s +talk about how you can use Flow’s opaque type aliases to get private properties +on any object type.

    + + + + \ No newline at end of file diff --git a/blog/2017/09/03/Flow-Support-in-Recompose/index.html b/blog/2017/09/03/Flow-Support-in-Recompose/index.html new file mode 100644 index 00000000000..5f3b3d1eaf5 --- /dev/null +++ b/blog/2017/09/03/Flow-Support-in-Recompose/index.html @@ -0,0 +1,29 @@ + + + + + +Typing Higher-Order Components in Recompose With Flow | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/index.html b/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/index.html new file mode 100644 index 00000000000..3e8f6cdecfa --- /dev/null +++ b/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/index.html @@ -0,0 +1,29 @@ + + + + + +Better Flow Error Messages for the JavaScript Ecosystem | Flow + + + + + + + + + + + + + + +
    +

    Over the last year, the Flow team has been slowly auditing and improving all the +possible error messages generated by the type checker. In Flow 0.66 we’re +excited to announce a new error message format designed to decrease the time it +takes you to read and fix each bug Flow finds.

    + + + + \ No newline at end of file diff --git a/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/index.html b/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/index.html new file mode 100644 index 00000000000..3e68ecc8ea7 --- /dev/null +++ b/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/index.html @@ -0,0 +1,27 @@ + + + + + +New Flow Errors on Unknown Property Access in Conditionals | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2018/10/18/Exact-Objects-By-Default/index.html b/blog/2018/10/18/Exact-Objects-By-Default/index.html new file mode 100644 index 00000000000..31a57d839f9 --- /dev/null +++ b/blog/2018/10/18/Exact-Objects-By-Default/index.html @@ -0,0 +1,26 @@ + + + + + +On the Roadmap: Exact Objects by Default | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2018/10/29/Asking-for-Required-Annotations/index.html b/blog/2018/10/29/Asking-for-Required-Annotations/index.html new file mode 100644 index 00000000000..2555d68dc67 --- /dev/null +++ b/blog/2018/10/29/Asking-for-Required-Annotations/index.html @@ -0,0 +1,27 @@ + + + + + +Asking for Required Annotations | Flow + + + + + + + + + + + + + + +
    +

    Flow will be asking for more annotations starting in 0.85.0. Learn how +to deal with these errors in our latest blog post.

    + + + + \ No newline at end of file diff --git a/blog/2018/12/13/React-Abstract-Component/index.html b/blog/2018/12/13/React-Abstract-Component/index.html new file mode 100644 index 00000000000..68ef91d38e0 --- /dev/null +++ b/blog/2018/12/13/React-Abstract-Component/index.html @@ -0,0 +1,27 @@ + + + + + +Supporting React.forwardRef and Beyond | Flow + + + + + + + + + + + + + + +
    +

    We made some major changes to our React model to better model new React components. Let's +talk about React.AbstractComponent!

    + + + + \ No newline at end of file diff --git a/blog/2019/08/20/Changes-to-Object-Spreads/index.html b/blog/2019/08/20/Changes-to-Object-Spreads/index.html new file mode 100644 index 00000000000..c2c90882c66 --- /dev/null +++ b/blog/2019/08/20/Changes-to-Object-Spreads/index.html @@ -0,0 +1,26 @@ + + + + + +Coming Soon: Changes to Object Spreads | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2019/1/28/What-the-flow-team-has-been-up-to/index.html b/blog/2019/1/28/What-the-flow-team-has-been-up-to/index.html new file mode 100644 index 00000000000..651131deaad --- /dev/null +++ b/blog/2019/1/28/What-the-flow-team-has-been-up-to/index.html @@ -0,0 +1,26 @@ + + + + + +What the Flow Team Has Been Up To | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/index.html b/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/index.html new file mode 100644 index 00000000000..5d07bb0823c --- /dev/null +++ b/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/index.html @@ -0,0 +1,26 @@ + + + + + +Live Flow errors in your IDE | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/index.html b/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/index.html new file mode 100644 index 00000000000..66b176db376 --- /dev/null +++ b/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/index.html @@ -0,0 +1,26 @@ + + + + + +Spreads: Common Errors & Fixes | Flow + + + + + + + + + + + + + + +
    +

    Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.

    + + + + \ No newline at end of file diff --git a/blog/2019/2/8/A-More-Responsive-Flow/index.html b/blog/2019/2/8/A-More-Responsive-Flow/index.html new file mode 100644 index 00000000000..62a67dff5ec --- /dev/null +++ b/blog/2019/2/8/A-More-Responsive-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +A More Responsive Flow | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2019/4/9/Upgrading-Flow-Codebases/index.html b/blog/2019/4/9/Upgrading-Flow-Codebases/index.html new file mode 100644 index 00000000000..776c704b058 --- /dev/null +++ b/blog/2019/4/9/Upgrading-Flow-Codebases/index.html @@ -0,0 +1,26 @@ + + + + + +Upgrading Flow Codebases | Flow + + + + + + + + + + + + + + +
    +

    Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!

    + + + + \ No newline at end of file diff --git a/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/index.html b/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/index.html new file mode 100644 index 00000000000..2dae1a4d742 --- /dev/null +++ b/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/index.html @@ -0,0 +1,26 @@ + + + + + +How to upgrade to exact-by-default object type syntax | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2020/02/19/Improvements-to-Flow-in-2019/index.html b/blog/2020/02/19/Improvements-to-Flow-in-2019/index.html new file mode 100644 index 00000000000..1af9dbf4136 --- /dev/null +++ b/blog/2020/02/19/Improvements-to-Flow-in-2019/index.html @@ -0,0 +1,26 @@ + + + + + +Improvements to Flow in 2019 | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2020/03/09/What-were-building-in-2020/index.html b/blog/2020/03/09/What-were-building-in-2020/index.html new file mode 100644 index 00000000000..f3a8b12918e --- /dev/null +++ b/blog/2020/03/09/What-were-building-in-2020/index.html @@ -0,0 +1,26 @@ + + + + + +What we’re building in 2020 | Flow + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/index.html b/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/index.html new file mode 100644 index 00000000000..1090b054759 --- /dev/null +++ b/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/index.html @@ -0,0 +1,26 @@ + + + + + +Making Flow error suppressions more specific | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/index.html b/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/index.html new file mode 100644 index 00000000000..41487858b07 --- /dev/null +++ b/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +Types-First: A Scalable New Architecture for Flow | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/index.html b/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/index.html new file mode 100644 index 00000000000..514fc2e8b25 --- /dev/null +++ b/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/index.html @@ -0,0 +1,26 @@ + + + + + +Flow's Improved Handling of Generic Types | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/index.html b/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/index.html new file mode 100644 index 00000000000..e8d508cd74f --- /dev/null +++ b/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/index.html @@ -0,0 +1,26 @@ + + + + + +Types-First the only supported mode in Flow (Jan 2021) | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/index.html b/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/index.html new file mode 100644 index 00000000000..f0055472d4f --- /dev/null +++ b/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/index.html @@ -0,0 +1,26 @@ + + + + + +Clarity on Flow's Direction and Open Source Engagement | Flow + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2021/06/02/Sound-Typing-for-this-in-Flow/index.html b/blog/2021/06/02/Sound-Typing-for-this-in-Flow/index.html new file mode 100644 index 00000000000..4ce8f2a096a --- /dev/null +++ b/blog/2021/06/02/Sound-Typing-for-this-in-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +Sound Typing for 'this' in Flow | Flow + + + + + + + + + + + + + + +
    +

    Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.

    + + + + \ No newline at end of file diff --git a/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/index.html b/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/index.html new file mode 100644 index 00000000000..b8fb5dd5b64 --- /dev/null +++ b/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/index.html @@ -0,0 +1,26 @@ + + + + + +Introducing Flow Indexed Access Types | Flow + + + + + + + + + + + + + + +
    +

    Flow’s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.

    + + + + \ No newline at end of file diff --git a/blog/2021/09/13/Introducing-Flow-Enums/index.html b/blog/2021/09/13/Introducing-Flow-Enums/index.html new file mode 100644 index 00000000000..c01f4f6d76c --- /dev/null +++ b/blog/2021/09/13/Introducing-Flow-Enums/index.html @@ -0,0 +1,26 @@ + + + + + +Introducing Flow Enums | Flow + + + + + + + + + + + + + + +
    +

    Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.

    + + + + \ No newline at end of file diff --git a/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/index.html b/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/index.html new file mode 100644 index 00000000000..4fefc896fe3 --- /dev/null +++ b/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/index.html @@ -0,0 +1,26 @@ + + + + + +TypeScript Enums vs. Flow Enums | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/index.html b/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/index.html new file mode 100644 index 00000000000..61abf4fb0e0 --- /dev/null +++ b/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +Introducing: Local Type Inference for Flow | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/index.html b/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/index.html new file mode 100644 index 00000000000..384bb619dc2 --- /dev/null +++ b/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/index.html @@ -0,0 +1,26 @@ + + + + + +New Flow Language Rule: Constrained Writes | Flow + + + + + + + + + + + + + + +
    +

    Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.

    + + + + \ No newline at end of file diff --git a/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/index.html b/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/index.html new file mode 100644 index 00000000000..b06ed8cc5f6 --- /dev/null +++ b/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/index.html @@ -0,0 +1,26 @@ + + + + + +Requiring More Annotations to Functions and Classes in Flow | Flow + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/index.html b/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/index.html new file mode 100644 index 00000000000..754dab570d9 --- /dev/null +++ b/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/index.html @@ -0,0 +1,26 @@ + + + + + +Improved handling of the empty object in Flow | Flow + + + + + + + + + + + + + + +
    +

    Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.

    + + + + \ No newline at end of file diff --git a/blog/2023/01/17/Local-Type-Inference/index.html b/blog/2023/01/17/Local-Type-Inference/index.html new file mode 100644 index 00000000000..ab0daa2dbc3 --- /dev/null +++ b/blog/2023/01/17/Local-Type-Inference/index.html @@ -0,0 +1,26 @@ + + + + + +Local Type Inference for Flow | Flow + + + + + + + + + + + + + + +
    +

    Local Type Inference makes Flow’s inference behavior more reliable and predictable, by modestly increasing Flow’s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.

    + + + + \ No newline at end of file diff --git a/blog/2023/02/16/Exact-object-types-by-default-by-default/index.html b/blog/2023/02/16/Exact-object-types-by-default-by-default/index.html new file mode 100644 index 00000000000..730c4635bf2 --- /dev/null +++ b/blog/2023/02/16/Exact-object-types-by-default-by-default/index.html @@ -0,0 +1,26 @@ + + + + + +Exact object types by default, by default | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/index.html b/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/index.html new file mode 100644 index 00000000000..427802b7ba4 --- /dev/null +++ b/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/index.html @@ -0,0 +1,27 @@ + + + + + +Announcing Partial & Required Flow utility types + catch annotations | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/2023/04/10/Unused-Promise/index.html b/blog/2023/04/10/Unused-Promise/index.html new file mode 100644 index 00000000000..34261c11a0b --- /dev/null +++ b/blog/2023/04/10/Unused-Promise/index.html @@ -0,0 +1,28 @@ + + + + + +Flow can now detect unused Promises | Flow + + + + + + + + + + + + + + +
    +

    As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous, +because errors are potentially unhandled, and the code may not execute in the intended order. They are +usually mistakes that Flow is perfectly positioned to warn you about.

    + + + + \ No newline at end of file diff --git a/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/index.html b/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/index.html new file mode 100644 index 00000000000..e6391df7d4e --- /dev/null +++ b/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/index.html @@ -0,0 +1,26 @@ + + + + + +Announcing 5 new Flow tuple type features | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/blog/archive/index.html b/blog/archive/index.html new file mode 100644 index 00000000000..0d0cfffd9df --- /dev/null +++ b/blog/archive/index.html @@ -0,0 +1,26 @@ + + + + + +Archive | Flow + + + + + + + + + + + + + + +
    +

    Archive

    Archive

    + + + + \ No newline at end of file diff --git a/blog/atom.xml b/blog/atom.xml new file mode 100644 index 00000000000..8694a3a1ef7 --- /dev/null +++ b/blog/atom.xml @@ -0,0 +1,913 @@ + + + https://flow.org/blog + Flow Blog + 2023-08-17T00:00:00.000Z + https://github.com/jpmonette/feed + + Flow Blog + https://flow.org/img/favicon.png + + <![CDATA[Announcing 5 new Flow tuple type features]]> + https://flow.org/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features + + 2023-08-17T00:00:00.000Z + + Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.

    ]]>
    + + George Zahariev + +
    + + <![CDATA[Flow can now detect unused Promises]]> + https://flow.org/blog/2023/04/10/Unused-Promise + + 2023-04-10T00:00:00.000Z + + As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous, +because errors are potentially unhandled, and the code may not execute in the intended order. They are +usually mistakes that Flow is perfectly positioned to warn you about.

    ]]>
    + + David Richey + +
    + + <![CDATA[Announcing Partial & Required Flow utility types + catch annotations]]> + https://flow.org/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations + + 2023-03-15T00:00:00.000Z + + Starting in Flow version 0.201, make an object type’s fields all optional using Partial<ObjType> (use instead of the unsafe $Shape), +and make an object type’s optional fields required with Required<ObjType>.

    ]]>
    + + George Zahariev + +
    + + <![CDATA[Exact object types by default, by default]]> + https://flow.org/blog/2023/02/16/Exact-object-types-by-default-by-default + + 2023-02-16T00:00:00.000Z + + We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.

    ]]>
    + + George Zahariev + +
    + + <![CDATA[Local Type Inference for Flow]]> + https://flow.org/blog/2023/01/17/Local-Type-Inference + + 2023-01-17T00:00:00.000Z + + Local Type Inference makes Flow’s inference behavior more reliable and predictable, by modestly increasing Flow’s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.

    ]]>
    + + Sam Zhou + +
    + + <![CDATA[Improved handling of the empty object in Flow]]> + https://flow.org/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow + + 2022-10-20T00:00:00.000Z + + Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.

    ]]>
    + + George Zahariev + +
    + + <![CDATA[Requiring More Annotations to Functions and Classes in Flow]]> + https://flow.org/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes + + 2022-09-30T00:00:00.000Z + + Flow will now require more annotations to functions and classes.

    ]]>
    + + Sam Zhou + +
    + + <![CDATA[New Flow Language Rule: Constrained Writes]]> + https://flow.org/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes + + 2022-08-05T00:00:00.000Z + + Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.

    ]]>
    + + Jordan Brown + +
    + + <![CDATA[Introducing: Local Type Inference for Flow]]> + https://flow.org/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow + + 2021-09-27T00:00:00.000Z + + We're replacing Flow’s current inference engine with a system that behaves more predictably and can be reasoned about more locally.

    ]]>
    + + Michael Vitousek + +
    + + <![CDATA[Introducing Flow Enums]]> + https://flow.org/blog/2021/09/13/Introducing-Flow-Enums + + 2021-09-13T00:00:00.000Z + + Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.

    ]]>
    + + George Zahariev + +
    + + <![CDATA[TypeScript Enums vs. Flow Enums]]> + https://flow.org/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums + + 2021-09-13T00:00:00.000Z + + A comparison of the enums features of TypeScript and Flow.

    ]]>
    + + George Zahariev + +
    + + <![CDATA[Introducing Flow Indexed Access Types]]> + https://flow.org/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types + + 2021-07-21T00:00:00.000Z + + Flow’s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.

    ]]>
    + + George Zahariev + +
    + + <![CDATA[Sound Typing for 'this' in Flow]]> + https://flow.org/blog/2021/06/02/Sound-Typing-for-this-in-Flow + + 2021-06-02T00:00:00.000Z + + Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.

    ]]>
    + + Daniel Sainati + +
    + + <![CDATA[Clarity on Flow's Direction and Open Source Engagement]]> + https://flow.org/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement + + 2021-05-25T00:00:00.000Z + + An update on Flow's direction and open source engagement.

    ]]>
    + + Vladan Djeric + +
    + + <![CDATA[Types-First the only supported mode in Flow (Jan 2021)]]> + https://flow.org/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow + + 2020-12-01T00:00:00.000Z + + Types-First will become the only mode in Flow in v0.143 (mid Jan 2021).

    ]]>
    + + Panagiotis Vekris + +
    + + <![CDATA[Flow's Improved Handling of Generic Types]]> + https://flow.org/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types + + 2020-11-16T00:00:00.000Z + + Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages.

    ]]>
    + + Michael Vitousek + +
    + + <![CDATA[Types-First: A Scalable New Architecture for Flow]]> + https://flow.org/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow + + 2020-05-18T00:00:00.000Z + + Flow Types-First mode is out! It unlocks Flow’s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post.

    ]]>
    + + Panagiotis Vekris + +
    + + <![CDATA[Making Flow error suppressions more specific]]> + https://flow.org/blog/2020/03/16/Making-Flow-error-suppressions-more-specific + + 2020-03-16T00:00:00.000Z + + We’re improving Flow error suppressions so that they don’t accidentally hide errors.

    ]]>
    + + Daniel Sainati + +
    + + <![CDATA[What we’re building in 2020]]> + https://flow.org/blog/2020/03/09/What-were-building-in-2020 + + 2020-03-09T00:00:00.000Z + + Learn about how Flow will improve in 2020.

    ]]>
    + + Andrew Pardoe + +
    + + <![CDATA[Improvements to Flow in 2019]]> + https://flow.org/blog/2020/02/19/Improvements-to-Flow-in-2019 + + 2020-02-19T00:00:00.000Z + + Take a look back at improvements we made to Flow in 2019.

    ]]>
    + + Andrew Pardoe + +
    + + <![CDATA[How to upgrade to exact-by-default object type syntax]]> + https://flow.org/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax + + 2020-01-29T00:00:00.000Z + + Object types will become exact-by-default. Read this post to learn how to get your code ready!

    ]]>
    + + Jordan Brown + +
    + + <![CDATA[Spreads: Common Errors & Fixes]]> + https://flow.org/blog/2019/10/30/Spreads-Common-Errors-and-Fixes + + 2019-10-30T00:00:00.000Z + + Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.

    ]]>
    + + Jordan Brown + +
    + + <![CDATA[Live Flow errors in your IDE]]> + https://flow.org/blog/2019/10/25/Live-Flow-Errors-in-your-IDE + + 2019-10-25T00:00:00.000Z + + Live errors while you type makes Flow feel faster in your IDE!

    ]]>
    + + Gabe Levi + +
    + + <![CDATA[Coming Soon: Changes to Object Spreads]]> + https://flow.org/blog/2019/08/20/Changes-to-Object-Spreads + + 2019-08-20T00:00:00.000Z + + Changes are coming to how Flow models object spreads! Learn more in this post.

    ]]>
    + + Jordan Brown + +
    + + <![CDATA[Upgrading Flow Codebases]]> + https://flow.org/blog/2019/4/9/Upgrading-Flow-Codebases + + 2019-04-09T00:00:00.000Z + + Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!

    ]]>
    + + Jordan Brown + +
    + + <![CDATA[A More Responsive Flow]]> + https://flow.org/blog/2019/2/8/A-More-Responsive-Flow + + 2019-02-08T00:00:00.000Z + + Flow 0.92 improves on the Flow developer experience.

    ]]>
    + + Gabe Levi + +
    + + <![CDATA[What the Flow Team Has Been Up To]]> + https://flow.org/blog/2019/1/28/What-the-flow-team-has-been-up-to + + 2019-01-28T00:00:00.000Z + + Take a look at what the Flow was up to in 2018.

    ]]>
    + + Avik Chaudhuri + +
    + + <![CDATA[Supporting React.forwardRef and Beyond]]> + https://flow.org/blog/2018/12/13/React-Abstract-Component + + 2018-12-13T00:00:00.000Z + + We made some major changes to our React model to better model new React components. Let's +talk about React.AbstractComponent!

    ]]>
    + + Jordan Brown + +
    + + <![CDATA[Asking for Required Annotations]]> + https://flow.org/blog/2018/10/29/Asking-for-Required-Annotations + + 2018-10-29T00:00:00.000Z + + Flow will be asking for more annotations starting in 0.85.0. Learn how +to deal with these errors in our latest blog post.

    ]]>
    + + Sam Goldman + +
    + + <![CDATA[On the Roadmap: Exact Objects by Default]]> + https://flow.org/blog/2018/10/18/Exact-Objects-By-Default + + 2018-10-18T00:00:00.000Z + + We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade.

    ]]>
    + + Jordan Brown + +
    + + <![CDATA[New Flow Errors on Unknown Property Access in Conditionals]]> + https://flow.org/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals + + 2018-03-16T00:00:00.000Z + + TL;DR: Starting in 0.68.0, Flow will now error when you access unknown +properties in conditionals.

    ]]>
    + + Gabe Levi + +
    + + <![CDATA[Better Flow Error Messages for the JavaScript Ecosystem]]> + https://flow.org/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem + + 2018-02-20T00:00:00.000Z + + Over the last year, the Flow team has been slowly auditing and improving all the +possible error messages generated by the type checker. In Flow 0.66 we’re +excited to announce a new error message format designed to decrease the time it +takes you to read and fix each bug Flow finds.

    ]]>
    + + Caleb Meredith + +
    + + <![CDATA[Typing Higher-Order Components in Recompose With Flow]]> + https://flow.org/blog/2017/09/03/Flow-Support-in-Recompose + + 2017-09-03T00:00:00.000Z + + One month ago Recompose landed an +official Flow library definition. The definitions were a long time coming, +considering the original PR was created by +@GiulioCanti a year ago.

    ]]>
    + + Ivan Starkov + +
    + + <![CDATA[Private Object Properties Using Flow’s Opaque Type Aliases]]> + https://flow.org/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases + + 2017-08-25T00:00:00.000Z + + In the last few weeks, a proposal for private class fields in Javascript reached +stage 3. This is going to be a great way to hide implementation details away +from users of your classes. However, locking yourself in to an OOP style of +programming is not always ideal if you prefer a more functional style. Let’s +talk about how you can use Flow’s opaque type aliases to get private properties +on any object type.

    ]]>
    + + Jordan Brown + +
    + + <![CDATA[Even Better Support for React in Flow]]> + https://flow.org/blog/2017/08/16/Even-Better-Support-for-React-in-Flow + + 2017-08-16T00:00:00.000Z + + The first version of Flow support for React was a magical implementation of +React.createClass(). Since then, React has evolved significantly. It is time +to rethink how Flow models React.

    ]]>
    + + Caleb Meredith + +
    + + <![CDATA[Linting in Flow]]> + https://flow.org/blog/2017/08/04/Linting-in-Flow + + 2017-08-04T00:00:00.000Z + + Flow’s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.

    ]]>
    + + Roger Ballard + +
    + + <![CDATA[Opaque Type Aliases]]> + https://flow.org/blog/2017/07/27/Opaque-Types + + 2017-07-27T00:00:00.000Z + + Do you ever wish that you could hide your implementation details away +from your users? Find out how opaque type aliases can get the job done!

    ]]>
    + + Jordan Brown + +
    + + <![CDATA[Strict Checking of Function Call Arity]]> + https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity + + 2017-05-07T00:00:00.000Z + + One of Flow's original goals was to be able to understand idiomatic JavaScript. +In JavaScript, you can call a function with more arguments than the function +expects. Therefore, Flow never complained about calling a function with +extraneous arguments.

    We are changing this behavior.

    What is arity?

    A function's arity is the number of arguments it expects. Since some functions +have optional parameters and some use rest parameters, we can define the +minimum arity as the smallest number of arguments it expects and the maximum +arity as the largest number of arguments it expects.

    function no_args() {} // arity of 0
    function two_args(a, b) {} // arity of 2
    function optional_args(a, b?) {} // min arity of 1, max arity of 2
    function many_args(a, ...rest) {} // min arity of 1, no max arity

    Motivation

    Consider the following code:

    function add(a, b) { return a + b; }
    const sum = add(1, 1, 1, 1);

    The author apparently thought the add() function adds up all its +arguments, and that sum will have the value 4. However, only the first two +arguments are summed, and sum actually will have the value 2. This is +obviously a bug, so why doesn't JavaScript or Flow complain?

    And while the error in the above example is easy to see, in real code it's often +a lot harder to notice. For example, what is the value of total here:

    const total = parseInt("10", 2) + parseFloat("10.1", 2);

    "10" in base 2 is 2 in decimal and "10.1" in base 2 is 2.5 in decimal. +So the author probably thought that total would be 4.5. However, the correct +answer is 12.1. parseInt("10", 2) does evaluates to 2, as expected. +However, parseFloat("10.1", 2) evaluates to 10.1. parseFloat() only takes +a single argument. The second argument is ignored!

    Why JavaScript allows extraneous arguments

    At this point, you might feel like this is just an example of JavaScript making +terrible life decisions. However, this behavior is very convenient in a bunch of +situations!

    Callbacks

    If you couldn't call a function with more arguments than it handles, then +mapping over an array would look like

    const doubled_arr = [1, 2, 3].map((element, index, arr) => element * 2);

    When you call Array.prototype.map, you pass in a callback. For each element in +the array, that callback is invoked and passed 3 arguments:

    1. The element
    2. The index of the element
    3. The array over which you're mapping

    However, your callback often only needs to reference the first argument: the +element. It's really nice that you can write

    const doubled_arr = [1, 2, 3].map(element => element * 2);

    Stubbing

    Sometimes I come across code like this

    let log = () => {};
    if (DEBUG) {
    log = (message) => console.log(message);
    }
    log("Hello world");

    The idea is that in a development environment, calling log() will output a +message, but in production it does nothing. Since you can call a +function with more arguments than it expects, it is easy to stub out log() in +production.

    Variadic functions using arguments

    A variadic function is a function that can take an indefinite number of +arguments. The old-school way to write variadic functions in JavaScript is by +using arguments. For example

    function sum_all() {
    let ret = 0;
    for (let i = 0; i < arguments.length; i++) { ret += arguments[i]; }
    return ret;
    }
    const total = sum_all(1, 2, 3); // returns 6

    For all intents and purposes, sum_all appears like it takes no arguments. So +even though it appears to have an arity of 0, it is convenient that we can call +it with more arguments.

    Changes to Flow

    We think we have found a compromise which catches the motivating bugs without +breaking the convenience of JavaScript.

    Calling a function

    If a function has a maximum arity of N, then Flow will start complaining if you +call it with more than N arguments.

    test:1
    1: const num = parseFloat("10.5", 2);
    ^ unused function argument
    19: declare function parseFloat(string: mixed): number;
    ^^^^^^^^^^^^^^^^^^^^^^^ function type expects no more than 1 argument. See lib: <BUILTINS>/core.js:19

    Function subtyping

    Flow will not change its function subtyping behavior. A function +with a smaller maximum arity is still a subtype of a function with a larger +maximum arity. This allows callbacks to still work as before.

    class Array<T> {
    ...
    map<U>(callbackfn: (value: T, index: number, array: Array<T>) => U, thisArg?: any): Array<U>;
    ...
    }
    const arr = [1,2,3].map(() => 4); // No error, evaluates to [4,4,4]

    In this example, () => number is a subtype of (number, number, Array<number>) => number.

    Stubbing and variadic functions

    This will, unfortunately, cause Flow to complain about stubs and variadic +functions which are written using arguments. However, you can fix these by +using rest parameters

    let log (...rest) => {};

    function sum_all(...rest) {
    let ret = 0;
    for (let i = 0; i < rest.length; i++) { ret += rest[i]; }
    return ret;
    }

    Rollout plan

    Flow v0.46.0 will ship with strict function call arity turned off by default. It +can be enabled via your .flowconfig with the flag

    experimental.strict_call_arity=true

    Flow v0.47.0 will ship with strict function call arity turned on and the +experimental.strict_call_arity flag will be removed.

    Why turn this on over two releases?

    This decouples the switch to strict checking of function call arity from the +release.

    Why not keep the experimental.strict_call_arity flag?

    This is a pretty core change. If we kept both behaviors, we'd have to test that +everything works with and without this change. As we add more flags, the number +of combinations grows exponentially, and Flow's behavior gets harder to reason +about. For this reason, we're choosing only one behavior: strict checking of +function call arity.

    What do you think?

    This change was motivated by feedback from Flow users. We really appreciate +all the members of our community who take the time to share their feedback with +us. This feedback is invaluable and helps us make Flow better, so please keep +it coming!

    ]]>
    + + Gabe Levi + +
    + + <![CDATA[Introducing Flow-Typed]]> + https://flow.org/blog/2016/10/13/Flow-Typed + + 2016-10-13T00:00:00.000Z + + Having high-quality and community-driven library definitions (“libdefs”) are +important for having a great experience with Flow. Today, we are introducing +flow-typed: A repository and +CLI tool that represent the first parts +of a new workflow for building, sharing, and distributing Flow libdefs.

    The goal of this project is to grow an ecosystem of libdefs that +allows Flow's type inference to shine +and that aligns with Flow's mission: To extract precise and accurate types +from real-world JavaScript. We've learned a lot from similar efforts like +DefinitelyTyped for TypeScript and we want to bring some of the lessons we've +learned to the Flow ecosystem.

    Here are some of the objectives of this project:

    • Libdefs should be versioned — both against the libraries they describe +and against the version(s) of Flow they are compatible with.
    • Libdefs should meet a high quality bar, including libdef tests to +ensure that their quality persists over time.
    • There must be a straightforward way to contribute libdef improvements over +time and for developers to benefit from those improvements over time.
    • The process of managing libdefs for a Flow project should be automated, +simple, and easy to get right.

    Versioned & Tested Libdefs

    Anyone can contribute a libdef (or improve on an existing one), but when doing +so it's important that we maintain a high quality bar so that all developers +feel confident in the libdefs they are using. To address this, flow-typed +requires that all libdef contributions are explicitly versioned against both +the version of the library they are describing and the version(s) of Flow the +libdef is compatible with.

    Additionally, all libdefs must be accompanied by tests that exercise the +important parts of the API and assert that they yield the correct types. By +including both version information and tests with each libdef, we can +automatically verify in Travis that the tests work as expected for all versions +of Flow a libdef is compatible with. Tests also help to ensure that future +changes to the libdef don't regress its features over time.

    Automating Libdef Installation

    We've built a simple CLI tool called flow-typed that helps to automate the +process of finding, installing, and upgrading libdefs in your Flow projects. It +uses the explicit version info associated with each libdef to find all +necessary libdefs based on your project's package.json dependencies. This +minimizes the work you need to do in order to pull in and update libdefs in +your projects.

    You can get the flow-typed CLI using either yarn (yarn global add flow-typed) +or npm (npm install -g flow-typed).

    Installing Libdefs

    Installing libdefs from the flow-typed repository is a matter of running a +single command on your project after installing your dependencies:

    > yarn install # Or `npm install` if you're old-school :)
    > flow-typed install

    The flow-typed install command reads your project's package.json file, +queries the flow-typed repository for libdefs matching your dependencies, and +installs the correctly-versioned libdefs into the flow-typed/ directory for +you. By default, Flow knows to look in the flow-typed/ directory for libdefs +— so there is no additional configuration necessary.

    Note that it's necessary to run this command after running yarn or +npm install. This is because this command will also generate stub libdefs for +you if one of your dependencies doesn't have types.

    Once libdefs have been installed, we recommend that you check them in to your +project's repo. Libdefs in the flow-typed repository may be improved over +time (fixing a bug, more precise types, etc). If this happens for a libdef that +you depend on, you'll want to have control over when that update is applied to +your project. Periodically you can run flow-typed update to download any +libdef updates, verify that your project still typechecks, and the commit the +updates.

    Why Not Just Use Npm To Distribute Libdefs?

    Over time libdefs in the flow-typed repo may be updated to fix bugs, improve +accuracy, or make use of new Flow features that better describe the types of +the library. As a result, there are really 3 versions that apply to each +libdef: The version of the library being described, the current version of the +libdef in the flow-typed repo, and the version(s) of Flow the libdef is +compatible with.

    If an update is made to some libdef that you use in your project after you've +already installed it, there's a good chance that update may find new type +errors in your project that were previously unknown. While it is certainly a +good thing to find errors that were previously missed, you'll want to have +control over when those changes get pulled in to your project.

    This is the reason we advise that you commit your installed libdefs to version +control rather than rely on a system like npm+semver to download and install a +non-deterministic semver-ranged version from npm. Checking in your libdefs +ensures that all collaborators on your project have consistent output from Flow +at any given commit in version history.

    Building a Community

    This is first and foremost a community project. It was started by a community +member (hey @splodingsocks!) and has +already benefitted from hours of work by many others. Moreover, this will +continue to be a community effort: Anyone can create and/or help maintain a +libdef for any npm library. Authors may create libdefs for their packages when +publishing, and/or consumers can create them when someone else hasn't already +done so. Either way, everyone benefits!

    We'd like to send a big shout-out to @marudor for +contributing so many of his own libdefs and spending time helping others to +write and contribute libdefs. Additionally we'd like to thank +@ryyppy for helping to design and iterate on the +CLI and installation workflow as well as manage libdef reviews.

    The Flow core team intends to stay invested in developing and improving this +project, but in order for it to truly succeed we need your help! If you've +already written some libdefs for Flow projects that you work on, we encourage +you to contribute +them for others to benefit from them as well. By managing libdefs in a +community-driven repository, the community as a whole can work together to +extend Flow's capabilities beyond just explicitly-typed JS.

    It's still early days and there's still a lot to do, so we're excited to hear +your ideas/feedback and read your pull requests! :)

    Happy typing!

    ]]>
    + + Jeff Morrison + +
    + + <![CDATA[Property Variance and Other Upcoming Changes]]> + https://flow.org/blog/2016/10/04/Property-Variance + + 2016-10-04T00:00:00.000Z + + The next release of Flow, 0.34, will include a few important changes to object +types:

    • property variance,
    • invariant-by-default dictionary types,
    • covariant-by-default method types,
    • and more flexible getters and setters.

    What is Variance?

    Defining the subtype relationship between types is a core responsibility of Flow +as a type system. These relationships are determined either directly for +simple types or, for complex types, defined in terms of their parts.

    Variance describes the subtyping relationship for complex types as it relates +to the subtyping relationships of their parts.

    For example, Flow directly encodes the knowledge that string is a subtype of +?string. Intuitively, a string type contains string values while a ?string +type contains null, undefined, and also string values, so membership in the +former naturally implies membership in the later.

    The subtype relationships between two function types is not as direct. Rather, +it is derived from the subtype relationships between the functions' parameter +and return types.

    Let's see how this works for two simple function types:

    type F1 = (x: P1) => R1;
    type F2 = (x: P2) => R2;

    Whether F2 is a subtype of F1 depends on the relationships between P1 and +P2 and R1 and R2. Let's use the notation B <: A to mean B is a +subtype of A.

    It turns out that F2 <: F1 if P1 <: P2 and R2 <: R1. Notice that the +relationship for parameters is reversed? In technical terms, we can say that +function types are "contravariant" with respect to their parameter types and +"covariant" with respect to their return types.

    Let's look at an example:

    function f(callback: (x: string) => ?number): number {
    return callback("hi") || 0;
    }

    What kinds of functions can we pass to f? Based on the subtyping rule above, +then we can pass a function whose parameter type is a supertype of string and +whose return type is a subtype of ?number.

    function g(x: ?string): number {
    return x ? x.length : 0;
    }
    f(g);

    The body of f will only ever pass string values into g, which is safe +because g takes at least string by taking ?string. Conversely, g will +only ever return number values to f, which is safe because f handles at +least number by handling ?number.

    Input and Output

    One convenient way to remember when something is covariant vs. contravariant is +to think about "input" and "output."

    Parameters are in an input position, often called a "negative" position. +Complex types are contravariant in their input positions.

    Return is an output position, often called a "positive" position. Complex +types are covariant in their output positions.

    Property Invariance

    Just as function types are composed of parameter and return types, so too are +object types composed of property types. Thus, the subtyping relationship +between objects is derived from the subtyping relationships of their +properties.

    However, unlike functions which have input parameters and an output return, +object properties can be read and written. That is, properties are both input +and output.

    Let's see how this works for two simple object types:

    type O1 = {p: T1};
    type O2 = {p: T2};

    As with function types, whether O2 is a subtype of O1 depends on the +relationship between its parts, T1 and T2.

    Here it turns out that O2 <: O1 if T2 <: T1 and T1 <: T2. In technical +terms, object types are "invariant" with respect to their property types.

    Let's look at an example:

    function f(o: {p: ?string}): void {
    // We can read p from o
    let len: number;
    if (o.p) {
    len = o.p.length;
    } else {
    len = 0;
    }

    // We can also write into p
    o.p = null;
    }

    What kinds of objects can we pass into f, then? If we try to pass in an +object with a subtype property, we get an error:

    var o1: {p: string} = {p: ""};
    f(o1);
    function f(o: {p: ?string}) {}
    ^ null. This type is incompatible with
    var o1: {p: string} = {p: ""};
    ^ string
    function f(o: {p: ?string}) {}
    ^ undefined. This type is incompatible with
    var o1: {p: string} = {p: ""};
    ^ string

    Flow has correctly identified an error here. If the body of f writes null +into o.p, then o1.p would no longer have type string.

    If we try to pass an object with a supertype property, we again get an error:

    var o2: {p: ?(string|number)} = {p: 0};
    f(o2);
    var o1: {p: ?(string|number)} = {p: ""};
    ^ number. This type is incompatible with
    function f(o: {p: ?string}) {}
    ^ string

    Again, Flow correctly identifies an error, because if f tried to read p +from o, it would find a number.

    Property Variance

    So objects have to be invariant with respect to their property types because +properties can be read from and written to. But just because you can read and +write, doesn't mean you always do.

    Consider a function that gets the length of an nullable string property:

    function f(o: {p: ?string}): number {
    return o.p ? o.p.length : 0;
    }

    We never write into o.p, so we should be able to pass in an object where the +type of property p is a subtype of ?string. Until now, this wasn't possible +in Flow.

    With property variance, you can explicitly annotate object properties as being +covariant and contravariant. For example, we can rewrite the above function:

    function f(o: {+p: ?string}): number {
    return o.p ? o.p.length : 0;
    }

    var o: {p: string} = {p: ""};
    f(o); // no type error!

    It's crucial that covariant properties only ever appear in output positions. It +is an error to write to a covariant property:

    function f(o: {+p: ?string}) {
    o.p = null;
    }
    o.p = null;
    ^ object type. Covariant property `p` incompatible with contravariant use in
    o.p = null;
    ^ assignment of property `p`

    Conversely, if a function only ever writes to a property, we can annotate the +property as contravariant. This might come up in a function that initializes an +object with default values, for example.

    function g(o: {-p: string}): void {
    o.p = "default";
    }
    var o: {p: ?string} = {p: null};
    g(o);

    Contravariant properties can only ever appear in input positions. It is an +error to read from a contravariant property:

    function f(o: {-p: string}) {
    o.p.length;
    }
    o.p.length;
    ^ object type. Contravariant property `p` incompatible with covariant use in
    o.p.length;
    ^ property `p`

    Invariant-by-default Dictionary Types

    The object type {[key: string]: ?number} describes an object that can be used +as a map. We can read any property and Flow will infer the result type as +?number. We can also write null or undefined or number into any +property.

    In Flow 0.33 and earlier, these dictionary types were treated covariantly by +the type system. For example, Flow accepted the following code:

    function f(o: {[key: string]: ?number}) {
    o.p = null;
    }
    declare var o: {p: number};
    f(o);

    This is unsound because f can overwrite property p with null. In Flow +0.34, dictionaries are invariant, like named properties. The same code now +results in the following type error:

    function f(o: {[key: string]: ?number}) {}
    ^ null. This type is incompatible with
    declare var o: {p: number};
    ^ number
    function f(o: {[key: string]: ?number}) {}
    ^ undefined. This type is incompatible with
    declare var o: {p: number};
    ^ number

    Covariant and contravariant dictionaries can be incredibly useful, though. To +support this, the same syntax used to support variance for named properties can +be used for dictionaries as well.

    function f(o: {+[key: string]: ?number}) {}
    declare var o: {p: number};
    f(o); // no type error!

    Covariant-by-default Method Types

    ES6 gave us a shorthand way to write object properties which are functions.

    var o = {
    m(x) {
    return x * 2
    }
    }

    Flow now interprets properties which use this shorthand method syntax as +covariant by default. This means it is an error to write to the property m.

    If you don't want covariance, you can use the long form syntax:

    var o = {
    m: function(x) {
    return x * 2;
    }
    }

    More Flexible Getters and Setters

    In Flow 0.33 and earlier, getters and setters had to agree exactly on their +return type and parameter type, respectively. Flow 0.34 lifts that restriction.

    This means you can write code like the following:

    // @flow
    declare var x: string;

    var o = {
    get x(): string {
    return x;
    },
    set x(value: ?string) {
    x = value || "default";
    }
    }
    ]]>
    + + Sam Goldman + +
    + + <![CDATA[Windows Support is Here!]]> + https://flow.org/blog/2016/08/01/Windows-Support + + 2016-08-01T00:00:00.000Z + + We are excited to announce that Flow is now officially available on 64-bit +Windows! Starting with +Flow v0.30.0, we will +publish a Windows binary with each release. You can download the Windows binary +in a .zip file directly from the +GitHub releases page or install it +using the flow-bin npm package. Try +it out and report any issues you +come across!

    ![Windows Support GIF]({{ site.baseurl }}/static/windows.gif)

    Getting Flow working on Windows was not easy, and it was made possible by the +hard work of Grégoire, +Çagdas and +Fabrice from +OCamlPro.

    Getting Started with Windows

    Getting Started with flow-bin on Windows

    Does your JavaScript project use npm to manage dependencies? Well, then the +easiest way for you to install Flow is with npm! Just run

    > npm install --save-dev flow-bin

    (Note: on Windows, it is recommended to use npm v3, to avoid the long +node_modules paths that npm v2 creates)

    This will install the +flow-bin npm package and +automatically add it to your package.json. Once installed, there are a few ways +to use the Flow binary. One is to use ./node_modules/.bin/flow directly. For +example, every Flow project needs a .flowconfig file in the root directory. +If you don't already have a .flowconfig, you could create it with Powershell, +like

    > New-Item .flowconfig

    or you could run the flow init command, using ./node_modules/.bin/flow

    > ./node_modules/.bin/flow init

    Another way to run Flow is via an npm script. In your package.json file, there +is a "scripts" section. Maybe it looks like this:

    "scripts": {
    "test": "make test"
    }

    You can run the Flow binary directly from a script by referencing flow in a +script, like so:

    "scripts": {
    "test": "make test",
    "flow_check": "flow check || exit 0"
    }

    and then running that script via npm run

    > npm run flow_check

    (Note: the || exit 0 part of the script is optional, but npm run will show +an error message if the script finishes with a non-zero exit code)

    You can also install flow-bin globally with

    > npm install --global flow-bin

    Getting Started with flow.exe

    Each GitHub release of Flow +starting with v0.30.0 will have a zipped Windows binary. For example, the +v0.30.0 release +includes flow-win64-v0.30.0.zip. +If you download and unzip that, you will find a flow/ directory, which +contains flow.exe. flow.exe is the Flow binary, so if you put that +somewhere in your path, and you should be good to go.

    > mkdir demo
    > cd demo
    > flow.exe init
    > "/* @flow */ var x: number = true;" | Out-File -Encoding ascii test.js
    > flow.exe check
    test.js:1
    1: /* @flow */ var x: number = true;
    ^^^^ boolean. This type is incompatible with

    1: /* @flow */ var x: number = true;
    ^^^^^^ number
    ]]>
    + + Gabe Levi + +
    + + <![CDATA[New Implementation of Unions and Intersections]]> + https://flow.org/blog/2016/07/01/New-Unions-Intersections + + 2016-07-01T00:00:00.000Z + + Summary

    Before Flow 0.28, the implementation of union/intersection types had serious +bugs and was the root cause of +a lot of weird behaviors you +may have run into with Flow in the past. These bugs have now been addressed in +a diff landing in 0.28.

    As you might expect after a major rewrite of a tricky part of the type system +implementation, there will be a short period of adjustment: you may run into +kinks that we will try to iron out promptly, and you may run into some +unfamiliar error messages.

    New Error Messages

    <error location> Could not decide which case to select
    <location of union/intersection type>

    Case 1 may work:
    <location of 1st case of union/intersection type>

    But if it doesn't, case 2 looks promising too:
    <location of 2nd case of union/intersection type>

    Please provide additional annotation(s) to determine whether case 1 works
    (or consider merging it with case 2):
    <location to annotate>
    <location to annotate>
    ...

    What this means is that at <error location>, Flow needs to make a choice: one +of the members of the union/intersection type at +<location of union/intersection type> must be applied, but Flow can't choose +safely based on available information. In particular, it cannot decide between +case 1 and 2, so Flow lists a bunch of annotations that can help it +disambiguate the two cases.

    Actions Needed

    You can fix the errors in two ways:

    • Actually go and annotate the listed locations. This should be by far the most +common fix.
    • Discover that there is real, unintentional ambiguity between case 1 and 2, +and rewrite the two cases in the union type to remove the ambiguity. When +this happens, typically it will fix a large number of errors.

    There are two more possibilities, however:

    • There's no real ambiguity and Flow is being too conservative / dumb. In this +case, go ahead and do the annotations anyway and file an issue on GitHub. We +plan to do a lot of short-term follow-up work to disambiguate more cases +automatically, so over time you should see less of (3).
    • You have no idea what's going on. The cases being pointed to don't make sense. +They don't correspond to what you have at <error location>. Hopefully you +won't run into (4) too often, but if you do please file an issue, since +this means there are still latent bugs in the implementation.

    If you file an issue on GitHub, please include code to reproduce the issue. You +can use Try Flow to share your repro case easily.

    If you're curious about the whys and hows of these new error messages, here's +an excerpt from the commit message of the "fate of the union" diff:

    Problem

    Flow's inference engine is designed to find more errors over time as +constraints are added...but it is not designed to backtrack. Unfortunately, +checking the type of an expression against a union type does need backtracking: +if some branch of the union doesn't work out, the next branch must be tried, +and so on. (The same is true for checks that involve intersection types.)

    The situation is further complicated by the fact that the type of the +expression may not be completely known at the point of checking, so that a +branch that looks promising now might turn out to be incorrect later.

    Solution

    The basic idea is to delay trying a branch until a point where we can decide +whether the branch will definitely fail or succeed, without further +information. If trying a branch results in failure, we can move on to the next +branch without needing to backtrack. If a branch succeeds, we are done. The +final case is where the branch looks promising, but we cannot be sure without +adding constraints: in this case we try other branches, and bail when we run +into ambiguities...requesting additional annotations to decide which branch to +select. Overall, this means that (1) we never commit to a branch that might +turn out to be incorrect and (2) can always select a correct branch (if such +exists) given enough annotations.

    ]]>
    + + Sam Goldman + +
    + + <![CDATA[Version 0.21.0]]> + https://flow.org/blog/2016/02/02/Version-0.21.0 + + 2016-02-02T00:00:00.000Z + + Yesterday we deployed Flow v0.21.0! As always, we've listed out the most +interesting changes in the +Changelog. +However, since I'm on a plane and can't sleep, I thought it might be fun to +dive into a couple of the changes! Hope this blog post turns out interesting +and legible!

    JSX Intrinsics

    If you're writing JSX, it's probably a mix of your own React Components and +some intrinsics. For example, you might write

    render() {
    return <div><FluffyBunny name="Fifi" /></div>;
    }

    In this example, FluffyBunny is a React Component you wrote and div is a +JSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React +and by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the +type any. This meant Flow let you set any property on JSX intrinsics. Flow +v0.21.0 will, by default, do the same thing as v0.20.0, However now you can +also configure Flow to properly type your JSX intrinsics!

    Example of how to use JSX intrinsics

    .flowconfig

    [libs]
    myLib.js

    myLib.js

    // JSXHelper is a type alias to make this example more concise.
    // There's nothing special or magic here.
    // JSXHelper<{name: string}> is a React component
    // with the single string property "name", which has a default
    type JSXHelper<T> = Class<ReactComponent<T,T,mixed>>;

    // $JSXIntrinsics is special and magic.
    // This declares the types for `div` and `span`
    type $JSXIntrinsics = {
    div: JSXHelper<{id: string}>,
    span: JSXHelper<{id: string, class: string}>,
    };

    myCode.js

    <div id="asdf" />; // No error
    <div id={42} />; // Error: `id` prop is a string, not a number!

    What is going on here?

    The new bit of magic is this $JSXIntrinsics type alias. When Flow sees +<foo /> it will look to see if $JSXIntrinsics exists and if so will grab +the type of $JSXIntrinsics['foo']. It will use this type to figure out which +properties are available and need to be set.

    We haven't hardcoded the intrinsics into Flow since the available intrinsics +will depend on your environment. For example, React native would have different +intrinsics than React for the web would.

    Smarter string refinements

    One of the main ways that we make Flow smarter is by teaching it to recognize +more ways that JavaScript programmers refine types. Here's an example of a +common way to refine nullable values:

    class Person {
    name: ?string;
    ...
    getName(): string {
    // Before the if, this.name could be null, undefined, or a string
    if (this.name != null) {
    // But now the programmer has refined this.name to definitely be a string
    return this.name;
    }
    // And now we know that this.name is null or undefined.
    return 'You know who';
    }
    }

    New string refinements

    In v0.21.0, one of the refinements we added is the ability to refine types by +comparing them to strings.

    This is useful for refining unions of string literals into string literals

    function test(x: 'foo' | 'bar'): 'foo' {
    if (x === 'foo') {
    // Now Flow understands that x has the type 'foo'
    return x;
    } else {
    return 'foo';
    }
    }

    And can also narrow the value of strings:

    function test(x: string): 'foo' {
    if (x === 'foo') {
    // Now Flow knows x has the type 'foo'
    return x;
    } else {
    return 'foo';
    }
    }

    This is one of the many refinements that Flow currently can recognize and +follow, and we'll keep adding more! Stay tuned!

    ]]>
    + + Gabe Levi + +
    + + <![CDATA[Version-0.19.0]]> + https://flow.org/blog/2015/12/01/Version-0.19.0 + + 2015-12-01T00:00:00.000Z + + Flow v0.19.0 was deployed today! It has a ton of changes, which the +Changelog +summarizes. The Changelog can be a little concise, though, so here are some +longer explanations for some of the changes. Hope this helps!

    @noflow

    Flow is opt-in by default (you add @flow to a file). However we noticed that +sometimes people would add Flow annotations to files that were missing @flow. +Often, these people didn't notice that the file was being ignored by Flow. So +we decided to stop allowing Flow syntax in non-Flow files. This is easily fixed +by adding either @flow or @noflow to your file. The former will make the +file a Flow file. The latter will tell Flow to completely ignore the file.

    Declaration files

    Files that end with .flow are now treated specially. They are the preferred +provider of modules. That is if both foo.js and foo.js.flow exist, then +when you write import Foo from './foo', Flow will use the type exported from +foo.js.flow rather than foo.js.

    We imagine two main ways people will use .flow files.

    1. As interface files. Maybe you have some library coolLibrary.js that is +really hard to type with inline Flow types. You could put +coolLibrary.js.flow next to it and declare the types that coolLibrary.js +exports.

      // coolLibrary.js.flow
      declare export var coolVar: number;
      declare export function coolFunction(): void;
      declare export class coolClass {}
    2. As the original source. Maybe you want to ship the minified, transformed +version of awesomeLibrary.js, but people who use awesomeLibrary.js also +use Flow. Well you could do something like

      cp awesomeLibraryOriginalCode.js awesomeLibrary.js.flow
      babel awesomeLibraryOriginalCode --out-file awesomeLibrary.js

    Order of precedence for lib files

    Now your local lib files will override the builtin lib files. Is one of the +builtin flow libs wrong? Send a pull request! But then while you're waiting for +the next release, you can use your own definition! The order of precedence is +as follows:

    1. Any paths supplied on the command line via --lib
    2. The files found in the paths specified in the .flowconfig [libs] (in +listing order)
    3. The Flow core library files

    For example, if I want to override the builtin definition of Array and instead +use my own version, I could update my .flowconfig to contain

    // .flowconfig
    [libs]
    myArray.js
    // myArray.js
    declare class Array<T> {
    // Put whatever you like in here!
    }

    Deferred initialization

    Previously the following code was an error, because the initialization of +myString happens later. Now Flow is fine with it.

    function foo(someFlag: boolean): string {
    var myString:string;
    if (someFlag) {
    myString = "yup";
    } else {
    myString = "nope";
    }
    return myString;
    }
    ]]>
    + + Gabe Levi + +
    + + <![CDATA[Typing Generators with Flow]]> + https://flow.org/blog/2015/11/09/Generators + + 2015-11-09T00:00:00.000Z + + Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.

    So much wonderful material has already been produced describing generators. I am going to focus on the interaction of static typing with generators. Please refer to the following materials for information about generators:

    • Jafar Husain gave an incredibly lucid and well-illustrated talk that covers generators. I have linked to the point where he gets into generators, but I highly recommend the entire talk.
    • Exploring ES6, a comprehensive book by Axel Rauschmayer, who has generously made the contents available for free online, has a chapter on generators.
    • The venerable MDN has a useful page describing the Iterator interface and generators.

    In Flow, the Generator interface has three type parameters: Yield, Return, and Next. Yield is the type of values which are yielded from the generator function. Return is the type of the value which is returned from the generator function. Next is the type of values which are passed into the generator via the next method on the Generator itself. For example, a generator value of type Generator<string,number,boolean> will yield strings, return a number, and will receive booleans from its caller.

    For any type T, a Generator<T,void,void> is both an Iterable<T> and an Iterator<T>.

    The unique nature of generators allows us to represent infinite sequences naturally. Consider the infinite sequence of natural numbers:

    function *nats() {
    let i = 0;
    while (true) {
    yield i++;
    }
    }

    Because generators are also iterators, we can manually iterate the generator:

    const gen = nats();
    console.log(gen.next()); // { done: false, value: 0 }
    console.log(gen.next()); // { done: false, value: 1 }
    console.log(gen.next()); // { done: false, value: 2 }

    When done is false, value will have the generator's Yield type. When done is true, value will have the generator's Return type or void if the consumer iterates past the completion value.

    function *test() {
    yield 1;
    return "complete";
    }
    const gen = test();
    console.log(gen.next()); // { done: false, value: 1 }
    console.log(gen.next()); // { done: true, value: "complete" }
    console.log(gen.next()); // { done: true, value: undefined }

    Because of this behavior, manually iterating poses typing difficulties. Let's try to take the first 10 values from the nats generator through manual iteration:

    const gen = nats();
    const take10: number[] = [];
    for (let i = 0; i < 10; i++) {
    const { done, value } = gen.next();
    if (done) {
    break;
    } else {
    take10.push(value); // error!
    }
    }
    test.js:13
    13: const { done, value } = gen.next();
    ^^^^^^^^^^ call of method `next`
    17: take10.push(value); // error!
    ^^^^^ undefined. This type is incompatible with
    11: const take10: number[] = [];
    ^^^^^^ number

    Flow is complaining that value might be undefined. This is because the type of value is Yield | Return | void, which simplifies in the instance of nats to number | void. We can introduce a dynamic type test to convince Flow of the invariant that value will always be number when done is false.

    const gen = nats();
    const take10: number[] = [];
    for (let i = 0; i < 10; i++) {
    const { done, value } = gen.next();
    if (done) {
    break;
    } else {
    if (typeof value === "undefined") {
    throw new Error("`value` must be a number.");
    }
    take10.push(value); // no error
    }
    }

    There is an open issue which would make the dynamic type test above unnecessary, by using the done value as a sentinel to refine a tagged union. That is, when done is true, Flow would know that value is always of type Yield and otherwise of type Return | void.

    Even without the dynamic type test, this code is quite verbose and it's hard to see the intent. Because generators are also iterable, we can also use for...of loops:

    const take10: number[] = [];
    let i = 0;
    for (let nat of nats()) {
    if (i === 10) break;
    take10.push(nat);
    i++;
    }

    That's much better. The for...of looping construct ignores completion values, so Flow understands that nat will always be number. Let's generalize this pattern further using generator functions:

    function *take<T>(n: number, xs: Iterable<T>): Iterable<T> {
    if (n <= 0) return;
    let i = 0;
    for (let x of xs) {
    yield x;
    if (++i === n) return;
    }
    }

    for (let n of take(10, nats())) {
    console.log(n); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    }

    Note that we explicitly annotated the parameters and return type of the take generator. This is necessary to ensure Flow understands the fully generic type. This is because Flow does not currently infer a fully generic type, but instead accumulates lower bounds, resulting in a union type.

    function identity(x) { return x }
    var a: string = identity(""); // error
    var b: number = identity(0); // error

    The above code produces errors because Flow adds string and number as lower bounds to the type variable describing the type of the value bound by x. That is, Flow believes the type of identity is (x: string | number) => string | number because those are the types which actually passed through the function.

    Another important feature of generators is the ability to pass values into the generator from the consumer. Let's consider a generator scan, which reduces values passed into the generator using a provided function. Our scan is similar to Array.prototype.reduce, but it returns each intermediate value and the values are provided imperatively via next.

    As a first pass, we might write this:

    function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
    let acc = init;
    while (true) {
    const next = yield acc;
    acc = f(acc, next);
    }
    }

    We can use this definition to implement an imperative sum procedure:

    let sum = scan(0, (a,b) => a + b);
    console.log(sum.next()); // { done: false, value: 0 }
    console.log(sum.next(1)); // { done: false, value: 1 }
    console.log(sum.next(2)); // { done: false, value: 3 }
    console.log(sum.next(3)); // { done: false, value: 6 }

    However, when we try to check the above definition of scan, Flow complains:

    test.js:7
    7: acc = f(acc, next);
    ^^^^^^^^^^^^ function call
    7: acc = f(acc, next);
    ^^^^ undefined. This type is incompatible with
    3: function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
    ^ some incompatible instantiation of T

    Flow is complaining that our value, next, may be void instead of the expected T, which is number in the sum example. This behavior is necessary to ensure type safety. In order to prime the generator, our consumer must first call next without an argument. To accommodate this, Flow understands the argument to next to be optional. This means Flow will allow the following code:

    let sum = scan(0, (a,b) => a + b);
    console.log(sum.next()); // first call primes the generator
    console.log(sum.next()); // we should pass a value, but don't need to

    In general, Flow doesn't know which invocation is "first." While it should be an error to pass a value to the first next, and an error to not pass a value to subsequent nexts, Flow compromises and forces your generator to deal with a potentially void value. In short, given a generator of type Generator<Y,R,N> and a value x of type Y, the type of the expression yield x is N | void.

    We can update our definition to use a dynamic type test that enforces the non-void invariant at runtime:

    function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
    let acc = init;
    while (true) {
    const next = yield acc;
    if (typeof next === "undefined") {
    throw new Error("Caller must provide an argument to `next`.");
    }
    acc = f(acc, next);
    }
    }

    There is one more important caveat when dealing with typed generators. Every value yielded from the generator must be described by a single type. Similarly, every value passed to the generator via next must be described by a single type.

    Consider the following generator:

    function *foo() {
    yield 0;
    yield "";
    }

    const gen = foo();
    const a: number = gen.next().value; // error
    const b: string = gen.next().value; // error

    This is perfectly legal JavaScript and the values a and b do have the correct types at runtime. However, Flow rejects this program. Our generator's Yield type parameter has a concrete type of number | string. The value property of the iterator result object has the type number | string | void.

    We can observe similar behavior for values passed into the generator:

    function *bar() {
    var a = yield;
    var b = yield;
    return {a,b};
    }

    const gen = bar();
    gen.next(); // prime the generator
    gen.next(0);
    const ret: { a: number, b: string } = gen.next("").value; // error

    The value ret has the annotated type at runtime, but Flow also rejects this program. Our generator's Next type parameter has a concrete type of number | string. The value property of the iterator result object thus has the type void | { a: void | number | string, b: void | number | string }.

    While it may be possible to use dynamic type tests to resolve these issues, another practical option is to use any to take on the type safety responsibility yourself.

    function *bar(): Generator {
    var a = yield;
    var b = yield;
    return {a,b};
    }

    const gen = bar();
    gen.next(); // prime the generator
    gen.next(0);
    const ret: void | { a: number, b: string } = gen.next("").value; // OK

    (Note that the annotation Generator is equivalent to Generator<any,any,any>.)

    Phew! I hope that this will help you use generators in your own code. I also hope this gave you a little insight into the difficulties of applying static analysis to a highly dynamic language such as JavaScript.

    To summarize, here are some of the lessons we've learned for using generators in statically typed JS:

    • Use generators to implement custom iterables.
    • Use dynamic type tests to unpack the optional return type of yield expressions.
    • Avoid generators that yield or receive values of multiple types, or use any.
    ]]>
    + + Sam Goldman + +
    + + <![CDATA[Version-0.17.0]]> + https://flow.org/blog/2015/10/07/Version-0.17.0 + + 2015-10-07T00:00:00.000Z + + Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:

    ![New error format]({{ site.baseurl }}/static/new_error_format_v0_17_0.png)

    This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to @frantic for building this feature!

    There are a whole bunch of other features and fixes in this release! Head on over to our Release for the full list!

    ]]>
    + + Gabe Levi + +
    + + <![CDATA[Version-0.16.0]]> + https://flow.org/blog/2015/09/22/Version-0.16.0 + + 2015-09-22T00:00:00.000Z + + On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!

    As always, the Changelog is best at summing up the big changes.

    ]]>
    + + Jeff Morrison + +
    + + <![CDATA[Version-0.15.0]]> + https://flow.org/blog/2015/09/10/Version-0.15.0 + + 2015-09-10T00:00:00.000Z + + Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!

    Check out the Changelog to see what's new.

    ]]>
    + + Gabe Levi + +
    + + <![CDATA[Version-0.14.0]]> + https://flow.org/blog/2015/07/29/Version-0.14.0 + + 2015-07-29T00:00:00.000Z + + It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.

    So here is Flow v0.14.0! Check out the Changelog for the canonical list of what has changed.

    ]]>
    + + Gabe Levi + +
    + + <![CDATA[Announcing Disjoint Unions]]> + https://flow.org/blog/2015/07/03/Disjoint-Unions + + 2015-07-03T00:00:00.000Z + + Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:

    • Specifying such data by a set of disjoint cases, distinguished by “tags”, where each tag is associated with a different “record” of properties. (These descriptions are called “disjoint union” or “variant” types.)
    • Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)

    Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!

    As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.

    Flow's syntax for disjoint unions looks like:

    type BinaryTree =
    { kind: "leaf", value: number } |
    { kind: "branch", left: BinaryTree, right: BinaryTree }

    function sumLeaves(tree: BinaryTree): number {
    if (tree.kind === "leaf") {
    return tree.value;
    } else {
    return sumLeaves(tree.left) + sumLeaves(tree.right);
    }
    }

    The problem

    Consider the following function that returns different objects depending on the data passed into it:

    type Result = { status: string, errorCode?: number }

    function getResult(op): Result {
    var statusCode = op();
    if (statusCode === 0) {
    return { status: 'done' };
    } else {
    return { status: 'error', errorCode: statusCode };
    }
    }

    The result contains a status property that is either 'done' or 'error', +and an optional errorCode property that holds a numeric status code when the +status is 'error'.

    One may now try to write another function that gets the error code from a result:

    function getErrorCode(result: Result): number {
    switch (result.status) {
    case 'error':
    return result.errorCode;
    default:
    return 0;
    }
    }

    Unfortunately, this code does not typecheck. The Result type does not precisely +capture the relationship between the status property and the errorCode property. +Namely it doesn't capture that when the status property is 'error', the errorCode +property will be present and defined on the object. As a result, Flow thinks that +result.errorCode in the above function may return undefined instead of number.

    Prior to version 0.13.1 there was no way to express this relationship, which meant +that it was not possible to check the type safety of this simple, familiar idiom!

    The solution

    As of version 0.13.1 it is possible to write a more precise type for Result +that better captures the intent and helps Flow narrow down the possible shapes +of an object based on the outcome of a dynamic === check. Now, we can write:

    type Result = Done | Error
    type Done = { status: 'done' }
    type Error = { status: 'error', errorCode: number }

    In other words, we can explicitly list out the possible shapes of results. These +cases are distinguished by the value of the status property. Note that here +we use the string literal types 'done' and 'error'. These match exactly the strings +'done' and 'error', which means that === checks on those values are enough for +Flow to narrow down the corresponding type cases. With this additional reasoning, the +function getErrorCode now typechecks, without needing any changes to the code!

    In addition to string literals, Flow also supports number literals as singleton types +so they can also be used in disjoint unions and case analyses.

    Why we built this

    Disjoint unions are at the heart of several good programming practices pervasive in functional programming languages. Supporting them in Flow means that JavaScript can use these practices in a type-safe manner. For example, disjoint unions can be used to write type-safe Flux dispatchers. They are also heavily used in a recently released reference implementation of GraphQL.

    ]]>
    + + Avik Chaudhuri + +
    + + <![CDATA[Announcing Bounded Polymorphism]]> + https://flow.org/blog/2015/03/12/Bounded-Polymorphism + + 2015-03-12T00:00:00.000Z + + As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like

    class BagOfBones<T: Bone> { ... }
    function eat<T: Food>(meal: T): Indigestion<T> { ... }

    The problem

    Consider the following code that defines a polymorphic function in Flow:

    function fooBad<T>(obj: T): T {
    console.log(Math.abs(obj.x));
    return obj;
    }

    This code does not (and should not!) type check. Not all values obj: T have a property x, let alone a property x that is a number, given the additional requirement imposed by Math.abs().

    But what if you wanted T to not range over all types, but instead over only the types of objects with an x property that has the type number? Intuitively, given that condition, the body should type check. Unfortunately, the only way you could enforce this condition prior to Flow 0.5.0 was by giving up on polymorphism entirely! For example you could write:

    // Old lame workaround
    function fooStillBad(obj: { x: number }): {x: number } {
    console.log(Math.abs(obj.x));
    return obj;
    }

    But while this change would make the body type check, it would cause Flow to lose information across call sites. For example:

    // The return type of fooStillBad() is {x: number}
    // so Flow thinks result has the type {x: number}
    var result = fooStillBad({x: 42, y: "oops"});

    // This will be an error since result's type
    // doesn't have a property "y"
    var test: {x: number; y: string} = result;

    The solution

    As of version 0.5.0, such typing problems can be solved elegantly using bounded polymorphism. Type parameters such as T can specify bounds that constrain the types that the type parameters range over. For example, we can write:

    function fooGood<T: { x: number }>(obj: T): T {
    console.log(Math.abs(obj.x));
    return obj;
    }

    Now the body type checks under the assumption that T is a subtype of { x: number }. Furthermore, no information is lost across call sites. Using the example from above:

    // With bounded polymorphism, Flow knows the return
    // type is {x: number; y: string}
    var result = fooGood({x: 42, y: "yay"});

    // This works!
    var test: {x: number; y: string} = result;

    Of course, polymorphic classes may also specify bounds. For example, the following code type checks:

    class Store<T: { x: number }> {
    obj: T;
    constructor(obj: T) { this.obj = obj; }
    foo() { console.log(Math.abs(this.obj.x)); }
    }

    Instantiations of the class are appropriately constrained. If you write

    var store = new Store({x: 42, y: "hi"});

    Then store.obj has type {x: number; y: string}.

    Any type may be used as a type parameter's bound. The type does not need to be an object type (as in the examples above). It may even be another type parameter that is in scope. For example, consider adding the following method to the above Store class:

    class Store<T: { x: number }> {
    ...
    bar<U: T>(obj: U): U {
    this.obj = obj;
    console.log(Math.abs(obj.x));
    return obj;
    }
    }

    Since U is a subtype of T, the method body type checks (as you may expect, U must also satisfy T's bound, by transitivity of subtyping). Now the following code type checks:

      // store is a Store<{x: number; y: string}>
    var store = new Store({x: 42, y: "yay"});

    var result = store.bar({x: 0, y: "hello", z: "world"});

    // This works!
    var test: {x: number; y: string; z: string } = result;

    Also, in a polymorphic definition with multiple type parameters, any type parameter may appear in the bound of any following type parameter. This is useful for type checking examples like the following:

    function copyArray<T, S: T>(from: Array<S>, to: Array<T>) {
    from.forEach(elem => to.push(elem));
    }

    Why we built this

    The addition of bounded polymorphism significantly increases the expressiveness of Flow's type system, by enabling signatures and definitions to specify relationships between their type parameters, without having to sacrifice the benefits of generics. We expect that the increased expressiveness will be particularly useful to library writers, and will also allow us to write better declarations for framework APIs such as those provided by React.

    Transformations

    Like type annotations and other Flow features, polymorphic function and class definitions need to be transformed before the code can be run. The transforms are available in react-tools 0.13.0, which was recently released

    ]]>
    + + Avik Chaudhuri + +
    + + <![CDATA[Announcing Flow Comments]]> + https://flow.org/blog/2015/02/20/Flow-Comments + + 2015-02-20T00:00:00.000Z + + As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!

    This feature introduces 3 special comments: /*:, /*::, and /*flow-include. Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments.

    The Flow Comment Syntax

    There are 3 special comments that Flow currently supports. You may recognize this syntax from Jarno Rantanen's excellent project, flotate.

    1. /*:

    /*: <your code> */ is interpreted by Flow as : <your code>

    function foo(x/*: number*/)/* : string */ { ... }

    is interpreted by Flow as

    function foo(x: number): string { ... }

    but appears to the JavaScript engine (ignoring comments) as

    function foo(x) { ... }

    2. /*::

    /*:: <your code> */ is interpreted by Flow as <your code>

    /*:: type foo = number; */

    is interpreted by Flow as

    type foo = number;

    but appears to the runtime (ignoring comments) as


    3. /*flow-include

    /*flow-include <your code> */ is interpreted by Flow as <your code>. It behaves the same as /*::

    /*flow-include type foo = number; */

    is interpreted by Flow as

    type foo = number;

    but appears to the runtime (ignoring comments) as


    Note: whitespace is ignored after the /* but before the :, ::, or flow-include. So you can write things like

    /* : number */
    /* :: type foo = number */
    /* flow-include type foo = number */

    Future Work

    We plan to update our Flow transformation to wrap Flow syntax with these special comments, rather than stripping it away completely. This will help people write Flow code but publish code that works with or without Flow.

    Thanks

    Special thanks to Jarno Rantanen for building flotate and supporting us merging his syntax upstream into Flow.

    ]]>
    + + Gabe Levi + +
    + + <![CDATA[Announcing Import Type]]> + https://flow.org/blog/2015/02/18/Import-Types + + 2015-02-18T00:00:00.000Z + + As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.

    Motivation

    Has this ever happened to you:

    // @flow

    // Post-transformation lint error: Unused variable 'URI'
    import URI from "URI";

    // But if you delete the require you get a Flow error:
    // identifier URI - Unknown global name
    module.exports = function(x: URI): URI {
    return x;
    }

    Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new import type syntax. With import type, you can convey what you really mean here — that you want to import the type of the class and not really the class itself.

    Enter Import Type

    So instead of the above code, you can now write this:

    // @flow

    import type URI from 'URI';
    module.exports = function(x: URI): URI {
    return x;
    };

    If you have a module that exports multiple classes (like, say, a Crayon and a Marker class), you can import the type for each of them together or separately like this:

    // @flow

    import type {Crayon, Marker} from 'WritingUtensils';
    module.exports = function junkDrawer(x: Crayon, y: Marker): void {}

    Transformations

    Like type annotations and other Flow features, import type need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

    npm install react-tools@0.13.0-beta.2

    Anticipatory Q&A

    Wait, but what happens at runtime after I've added an import type declaration?

    Nothing! All import type declarations get stripped away just like other flow syntax.

    Can I use import type to pull in type aliases from another module, too?

    Not quite yet...but soon! There are a few other moving parts that we need to build first, but we're working on it.

    EDIT: Yes! As of Flow 0.10 you can use the export type MyType = ... ; syntax to compliment the import type syntax. Here's a trivial example:

    // @flow

    // MyTypes.js
    export type UserID = number;
    export type User = {
    id: UserID,
    firstName: string,
    lastName: string
    };
    // @flow

    // User.js
    import type {UserID, User} from "MyTypes";

    function getUserID(user: User): UserID {
    return user.id;
    }

    Note that we only support the explicit named-export statements for now (i.e. export type UserID = number;). In a future version we can add support for latent named-export statements (i.e. type UserID = number; export {UserID};) and default type exports (i.e. export default type MyType = ... ;)...but for now these forms aren't yet supported for type exports.

    ]]>
    + + Jeff Morrison + +
    + + <![CDATA[Announcing Typecasts]]> + https://flow.org/blog/2015/02/18/Typecasts + + 2015-02-18T00:00:00.000Z + + As of version 0.3.0, Flow supports typecast expression.

    A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:

    (1 + 1 : number);
    var a = { name: (null: ?string) };
    ([1, 'a', true]: Array<mixed>).map(fn);

    For any JavaScript expression <expr> and any Flow type <type>, you can write

    (<expr> : <type>)

    Note: the parentheses are necessary.

    How Typecasts Work

    To evaluate a typecast expression, Flow will first check that <expr> is a <type>.

    (1+1: number); // this is fine
    (1+1: string); // but this is is an error

    Second, Flow will infer that the typecast expression (<expr>: <type>) has the type <type>.

    [(0: ?number)]; // Flow will infer the type Array<?number>
    [0]; // Without the typecast, Flow infers the type Array<number>

    Safety

    Typecasts obey the same rules as other type annotations, so they provide the same safety guarantees. This means they are safe unless you explicitly use the any type to defeat Flow's typechecking. Here are examples of upcasting (which is allowed), downcasting (which is forbidden), and using any.

    class Base {}
    class Child extends Base {}
    var child: Child = new Child();

    // Upcast from Child to Base, a more general type: OK
    var base: Base = new Child();

    // Upcast from Child to Base, a more general type: OK
    (child: Base);

    // Downcast from Base to Child: unsafe, ERROR
    (base: Child);

    // Upcast base to any then downcast any to Child.
    // Unsafe downcasting from any is allowed: OK
    ((base: any): Child);

    More examples

    Typecasts are particularly useful to check assumptions and help Flow infer the types you intend. Here are some examples:

    (x: number) // Make Flow check that x is a number
    (0: ?number) // Tells Flow that this expression is actually nullable.
    (null: ?number) // Tells Flow that this expression is a nullable number.

    Transformations

    Like type annotations and other Flow features, typecasts need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

    npm install react-tools@0.13.0-beta.2
    ]]>
    + + Basil Hosmer + +
    +
    \ No newline at end of file diff --git a/blog/index.html b/blog/index.html new file mode 100644 index 00000000000..48b8ee25f8a --- /dev/null +++ b/blog/index.html @@ -0,0 +1,97 @@ + + + + + +Blog | Flow + + + + + + + + + + + + + + +
    +

    As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous, +because errors are potentially unhandled, and the code may not execute in the intended order. They are +usually mistakes that Flow is perfectly positioned to warn you about.

    Local Type Inference makes Flow’s inference behavior more reliable and predictable, by modestly increasing Flow’s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.

    Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.

    Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.

    Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.

    Flow’s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.

    Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.

    Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.

    Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!

    We made some major changes to our React model to better model new React components. Let's +talk about React.AbstractComponent!

    Flow will be asking for more annotations starting in 0.85.0. Learn how +to deal with these errors in our latest blog post.

    Over the last year, the Flow team has been slowly auditing and improving all the +possible error messages generated by the type checker. In Flow 0.66 we’re +excited to announce a new error message format designed to decrease the time it +takes you to read and fix each bug Flow finds.

    In the last few weeks, a proposal for private class fields in Javascript reached +stage 3. This is going to be a great way to hide implementation details away +from users of your classes. However, locking yourself in to an OOP style of +programming is not always ideal if you prefer a more functional style. Let’s +talk about how you can use Flow’s opaque type aliases to get private properties +on any object type.

    The first version of Flow support for React was a magical implementation of +React.createClass(). Since then, React has evolved significantly. It is time +to rethink how Flow models React.

    Flow’s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.

    Do you ever wish that you could hide your implementation details away +from your users? Find out how opaque type aliases can get the job done!

    Strict Checking of Function Call Arity

    One of Flow's original goals was to be able to understand idiomatic JavaScript. +In JavaScript, you can call a function with more arguments than the function +expects. Therefore, Flow never complained about calling a function with +extraneous arguments.

    We are changing this behavior.

    Introducing Flow-Typed

    Having high-quality and community-driven library definitions (“libdefs”) are +important for having a great experience with Flow. Today, we are introducing +flow-typed: A repository and +CLI tool that represent the first parts +of a new workflow for building, sharing, and distributing Flow libdefs.

    The goal of this project is to grow an ecosystem of libdefs that +allows Flow's type inference to shine +and that aligns with Flow's mission: To extract precise and accurate types +from real-world JavaScript. We've learned a lot from similar efforts like +DefinitelyTyped for TypeScript and we want to bring some of the lessons we've +learned to the Flow ecosystem.

    Here are some of the objectives of this project:

    Property Variance and Other Upcoming Changes

    The next release of Flow, 0.34, will include a few important changes to object +types:

    • property variance,
    • invariant-by-default dictionary types,
    • covariant-by-default method types,
    • and more flexible getters and setters.

    Windows Support is Here!

    We are excited to announce that Flow is now officially available on 64-bit +Windows! Starting with +Flow v0.30.0, we will +publish a Windows binary with each release. You can download the Windows binary +in a .zip file directly from the +GitHub releases page or install it +using the flow-bin npm package. Try +it out and report any issues you +come across!

    ![Windows Support GIF]({{ site.baseurl }}/static/windows.gif)

    Getting Flow working on Windows was not easy, and it was made possible by the +hard work of Grégoire, +Çagdas and +Fabrice from +OCamlPro.

    New Implementation of Unions and Intersections

    Summary

    Before Flow 0.28, the implementation of union/intersection types had serious +bugs and was [the][gh1759] [root][gh1664] [cause][gh1663] [of][gh1462] +[a][gh1455] [lot][gh1371] [of][gh1349] [weird][gh842] [behaviors][gh815] you +may have run into with Flow in the past. These bugs have now been addressed in +[a diff landing in 0.28][fotu].

    Version 0.21.0

    Yesterday we deployed Flow v0.21.0! As always, we've listed out the most +interesting changes in the +Changelog. +However, since I'm on a plane and can't sleep, I thought it might be fun to +dive into a couple of the changes! Hope this blog post turns out interesting +and legible!

    JSX Intrinsics

    If you're writing JSX, it's probably a mix of your own React Components and +some intrinsics. For example, you might write

    render() {
    return <div><FluffyBunny name="Fifi" /></div>;
    }

    In this example, FluffyBunny is a React Component you wrote and div is a +JSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React +and by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the +type any. This meant Flow let you set any property on JSX intrinsics. Flow +v0.21.0 will, by default, do the same thing as v0.20.0, However now you can +also configure Flow to properly type your JSX intrinsics!

    Version-0.19.0

    Flow v0.19.0 was deployed today! It has a ton of changes, which the +Changelog +summarizes. The Changelog can be a little concise, though, so here are some +longer explanations for some of the changes. Hope this helps!

    @noflow

    Flow is opt-in by default (you add @flow to a file). However we noticed that +sometimes people would add Flow annotations to files that were missing @flow. +Often, these people didn't notice that the file was being ignored by Flow. So +we decided to stop allowing Flow syntax in non-Flow files. This is easily fixed +by adding either @flow or @noflow to your file. The former will make the +file a Flow file. The latter will tell Flow to completely ignore the file.

    Declaration files

    Files that end with .flow are now treated specially. They are the preferred +provider of modules. That is if both foo.js and foo.js.flow exist, then +when you write import Foo from './foo', Flow will use the type exported from +foo.js.flow rather than foo.js.

    We imagine two main ways people will use .flow files.

    Typing Generators with Flow

    Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.

    Version-0.17.0

    Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:

    ![New error format]({{ site.baseurl }}/static/new_error_format_v0_17_0.png)

    This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to @frantic for building this feature!

    There are a whole bunch of other features and fixes in this release! Head on over to our Release for the full list!

    Version-0.16.0

    On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!

    As always, the Changelog is best at summing up the big changes.

    Version-0.15.0

    Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!

    Check out the Changelog to see what's new.

    Version-0.14.0

    It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.

    So here is Flow v0.14.0! Check out the Changelog for the canonical list of what has changed.

    Announcing Disjoint Unions

    Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:

    • Specifying such data by a set of disjoint cases, distinguished by “tags”, where each tag is associated with a different “record” of properties. (These descriptions are called “disjoint union” or “variant” types.)
    • Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)

    Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!

    As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.

    Flow's syntax for disjoint unions looks like:

    type BinaryTree =
    { kind: "leaf", value: number } |
    { kind: "branch", left: BinaryTree, right: BinaryTree }

    function sumLeaves(tree: BinaryTree): number {
    if (tree.kind === "leaf") {
    return tree.value;
    } else {
    return sumLeaves(tree.left) + sumLeaves(tree.right);
    }
    }
    + + + + \ No newline at end of file diff --git a/blog/page/2/index.html b/blog/page/2/index.html new file mode 100644 index 00000000000..c9909e13621 --- /dev/null +++ b/blog/page/2/index.html @@ -0,0 +1,26 @@ + + + + + +Blog | Flow + + + + + + + + + + + + + + +
    +

    Announcing Bounded Polymorphism

    As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like

    class BagOfBones<T: Bone> { ... }
    function eat<T: Food>(meal: T): Indigestion<T> { ... }

    The problem

    Consider the following code that defines a polymorphic function in Flow:

    function fooBad<T>(obj: T): T {
    console.log(Math.abs(obj.x));
    return obj;
    }

    This code does not (and should not!) type check. Not all values obj: T have a property x, let alone a property x that is a number, given the additional requirement imposed by Math.abs().

    Announcing Flow Comments

    As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!

    This feature introduces 3 special comments: /*:, /*::, and /*flow-include. Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments.

    Announcing Import Type

    As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.

    Motivation

    Has this ever happened to you:

    // @flow

    // Post-transformation lint error: Unused variable 'URI'
    import URI from "URI";

    // But if you delete the require you get a Flow error:
    // identifier URI - Unknown global name
    module.exports = function(x: URI): URI {
    return x;
    }

    Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new import type syntax. With import type, you can convey what you really mean here — that you want to import the type of the class and not really the class itself.

    Announcing Typecasts

    As of version 0.3.0, Flow supports typecast expression.

    A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:

    (1 + 1 : number);
    var a = { name: (null: ?string) };
    ([1, 'a', true]: Array<mixed>).map(fn);

    For any JavaScript expression <expr> and any Flow type <type>, you can write

    (<expr> : <type>)

    Note: the parentheses are necessary.

    + + + + \ No newline at end of file diff --git a/blog/rss.xml b/blog/rss.xml new file mode 100644 index 00000000000..4950e43754a --- /dev/null +++ b/blog/rss.xml @@ -0,0 +1,753 @@ + + + + Flow Blog + https://flow.org/blog + Flow Blog + Thu, 17 Aug 2023 00:00:00 GMT + https://validator.w3.org/feed/docs/rss2.html + https://github.com/jpmonette/feed + en + + <![CDATA[Announcing 5 new Flow tuple type features]]> + https://flow.org/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features + https://flow.org/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features + Thu, 17 Aug 2023 00:00:00 GMT + + Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.

    ]]>
    +
    + + <![CDATA[Flow can now detect unused Promises]]> + https://flow.org/blog/2023/04/10/Unused-Promise + https://flow.org/blog/2023/04/10/Unused-Promise + Mon, 10 Apr 2023 00:00:00 GMT + + As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous, +because errors are potentially unhandled, and the code may not execute in the intended order. They are +usually mistakes that Flow is perfectly positioned to warn you about.

    ]]>
    +
    + + <![CDATA[Announcing Partial & Required Flow utility types + catch annotations]]> + https://flow.org/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations + https://flow.org/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations + Wed, 15 Mar 2023 00:00:00 GMT + + Starting in Flow version 0.201, make an object type’s fields all optional using Partial<ObjType> (use instead of the unsafe $Shape), +and make an object type’s optional fields required with Required<ObjType>.

    ]]>
    +
    + + <![CDATA[Exact object types by default, by default]]> + https://flow.org/blog/2023/02/16/Exact-object-types-by-default-by-default + https://flow.org/blog/2023/02/16/Exact-object-types-by-default-by-default + Thu, 16 Feb 2023 00:00:00 GMT + + We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.

    ]]>
    +
    + + <![CDATA[Local Type Inference for Flow]]> + https://flow.org/blog/2023/01/17/Local-Type-Inference + https://flow.org/blog/2023/01/17/Local-Type-Inference + Tue, 17 Jan 2023 00:00:00 GMT + + Local Type Inference makes Flow’s inference behavior more reliable and predictable, by modestly increasing Flow’s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.

    ]]>
    +
    + + <![CDATA[Improved handling of the empty object in Flow]]> + https://flow.org/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow + https://flow.org/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow + Thu, 20 Oct 2022 00:00:00 GMT + + Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.

    ]]>
    +
    + + <![CDATA[Requiring More Annotations to Functions and Classes in Flow]]> + https://flow.org/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes + https://flow.org/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes + Fri, 30 Sep 2022 00:00:00 GMT + + Flow will now require more annotations to functions and classes.

    ]]>
    +
    + + <![CDATA[New Flow Language Rule: Constrained Writes]]> + https://flow.org/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes + https://flow.org/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes + Fri, 05 Aug 2022 00:00:00 GMT + + Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.

    ]]>
    +
    + + <![CDATA[Introducing: Local Type Inference for Flow]]> + https://flow.org/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow + https://flow.org/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow + Mon, 27 Sep 2021 00:00:00 GMT + + We're replacing Flow’s current inference engine with a system that behaves more predictably and can be reasoned about more locally.

    ]]>
    +
    + + <![CDATA[Introducing Flow Enums]]> + https://flow.org/blog/2021/09/13/Introducing-Flow-Enums + https://flow.org/blog/2021/09/13/Introducing-Flow-Enums + Mon, 13 Sep 2021 00:00:00 GMT + + Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.

    ]]>
    +
    + + <![CDATA[TypeScript Enums vs. Flow Enums]]> + https://flow.org/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums + https://flow.org/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums + Mon, 13 Sep 2021 00:00:00 GMT + + A comparison of the enums features of TypeScript and Flow.

    ]]>
    +
    + + <![CDATA[Introducing Flow Indexed Access Types]]> + https://flow.org/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types + https://flow.org/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types + Wed, 21 Jul 2021 00:00:00 GMT + + Flow’s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.

    ]]>
    +
    + + <![CDATA[Sound Typing for 'this' in Flow]]> + https://flow.org/blog/2021/06/02/Sound-Typing-for-this-in-Flow + https://flow.org/blog/2021/06/02/Sound-Typing-for-this-in-Flow + Wed, 02 Jun 2021 00:00:00 GMT + + Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.

    ]]>
    +
    + + <![CDATA[Clarity on Flow's Direction and Open Source Engagement]]> + https://flow.org/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement + https://flow.org/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement + Tue, 25 May 2021 00:00:00 GMT + + An update on Flow's direction and open source engagement.

    ]]>
    +
    + + <![CDATA[Types-First the only supported mode in Flow (Jan 2021)]]> + https://flow.org/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow + https://flow.org/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow + Tue, 01 Dec 2020 00:00:00 GMT + + Types-First will become the only mode in Flow in v0.143 (mid Jan 2021).

    ]]>
    +
    + + <![CDATA[Flow's Improved Handling of Generic Types]]> + https://flow.org/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types + https://flow.org/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types + Mon, 16 Nov 2020 00:00:00 GMT + + Flow has improved its handling of generic types by banning unsafe behaviors previously allowed and clarifying error messages.

    ]]>
    +
    + + <![CDATA[Types-First: A Scalable New Architecture for Flow]]> + https://flow.org/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow + https://flow.org/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow + Mon, 18 May 2020 00:00:00 GMT + + Flow Types-First mode is out! It unlocks Flow’s potential at scale by leveraging fully typed module boundaries. Read more in our latest blog post.

    ]]>
    +
    + + <![CDATA[Making Flow error suppressions more specific]]> + https://flow.org/blog/2020/03/16/Making-Flow-error-suppressions-more-specific + https://flow.org/blog/2020/03/16/Making-Flow-error-suppressions-more-specific + Mon, 16 Mar 2020 00:00:00 GMT + + We’re improving Flow error suppressions so that they don’t accidentally hide errors.

    ]]>
    +
    + + <![CDATA[What we’re building in 2020]]> + https://flow.org/blog/2020/03/09/What-were-building-in-2020 + https://flow.org/blog/2020/03/09/What-were-building-in-2020 + Mon, 09 Mar 2020 00:00:00 GMT + + Learn about how Flow will improve in 2020.

    ]]>
    +
    + + <![CDATA[Improvements to Flow in 2019]]> + https://flow.org/blog/2020/02/19/Improvements-to-Flow-in-2019 + https://flow.org/blog/2020/02/19/Improvements-to-Flow-in-2019 + Wed, 19 Feb 2020 00:00:00 GMT + + Take a look back at improvements we made to Flow in 2019.

    ]]>
    +
    + + <![CDATA[How to upgrade to exact-by-default object type syntax]]> + https://flow.org/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax + https://flow.org/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax + Wed, 29 Jan 2020 00:00:00 GMT + + Object types will become exact-by-default. Read this post to learn how to get your code ready!

    ]]>
    +
    + + <![CDATA[Spreads: Common Errors & Fixes]]> + https://flow.org/blog/2019/10/30/Spreads-Common-Errors-and-Fixes + https://flow.org/blog/2019/10/30/Spreads-Common-Errors-and-Fixes + Wed, 30 Oct 2019 00:00:00 GMT + + Fixes to object spreads will expose errors in your codebase. Read more about common errors and how to fix them.

    ]]>
    +
    + + <![CDATA[Live Flow errors in your IDE]]> + https://flow.org/blog/2019/10/25/Live-Flow-Errors-in-your-IDE + https://flow.org/blog/2019/10/25/Live-Flow-Errors-in-your-IDE + Fri, 25 Oct 2019 00:00:00 GMT + + Live errors while you type makes Flow feel faster in your IDE!

    ]]>
    +
    + + <![CDATA[Coming Soon: Changes to Object Spreads]]> + https://flow.org/blog/2019/08/20/Changes-to-Object-Spreads + https://flow.org/blog/2019/08/20/Changes-to-Object-Spreads + Tue, 20 Aug 2019 00:00:00 GMT + + Changes are coming to how Flow models object spreads! Learn more in this post.

    ]]>
    +
    + + <![CDATA[Upgrading Flow Codebases]]> + https://flow.org/blog/2019/4/9/Upgrading-Flow-Codebases + https://flow.org/blog/2019/4/9/Upgrading-Flow-Codebases + Tue, 09 Apr 2019 00:00:00 GMT + + Having trouble upgrading from 0.84.0? Read about how the Flow team upgrades Flow at Facebook!

    ]]>
    +
    + + <![CDATA[A More Responsive Flow]]> + https://flow.org/blog/2019/2/8/A-More-Responsive-Flow + https://flow.org/blog/2019/2/8/A-More-Responsive-Flow + Fri, 08 Feb 2019 00:00:00 GMT + + Flow 0.92 improves on the Flow developer experience.

    ]]>
    +
    + + <![CDATA[What the Flow Team Has Been Up To]]> + https://flow.org/blog/2019/1/28/What-the-flow-team-has-been-up-to + https://flow.org/blog/2019/1/28/What-the-flow-team-has-been-up-to + Mon, 28 Jan 2019 00:00:00 GMT + + Take a look at what the Flow was up to in 2018.

    ]]>
    +
    + + <![CDATA[Supporting React.forwardRef and Beyond]]> + https://flow.org/blog/2018/12/13/React-Abstract-Component + https://flow.org/blog/2018/12/13/React-Abstract-Component + Thu, 13 Dec 2018 00:00:00 GMT + + We made some major changes to our React model to better model new React components. Let's +talk about React.AbstractComponent!

    ]]>
    +
    + + <![CDATA[Asking for Required Annotations]]> + https://flow.org/blog/2018/10/29/Asking-for-Required-Annotations + https://flow.org/blog/2018/10/29/Asking-for-Required-Annotations + Mon, 29 Oct 2018 00:00:00 GMT + + Flow will be asking for more annotations starting in 0.85.0. Learn how +to deal with these errors in our latest blog post.

    ]]>
    +
    + + <![CDATA[On the Roadmap: Exact Objects by Default]]> + https://flow.org/blog/2018/10/18/Exact-Objects-By-Default + https://flow.org/blog/2018/10/18/Exact-Objects-By-Default + Thu, 18 Oct 2018 00:00:00 GMT + + We are changing object types to be exact by default. We'll be releasing codemods to help you upgrade.

    ]]>
    +
    + + <![CDATA[New Flow Errors on Unknown Property Access in Conditionals]]> + https://flow.org/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals + https://flow.org/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals + Fri, 16 Mar 2018 00:00:00 GMT + + TL;DR: Starting in 0.68.0, Flow will now error when you access unknown +properties in conditionals.

    ]]>
    +
    + + <![CDATA[Better Flow Error Messages for the JavaScript Ecosystem]]> + https://flow.org/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem + https://flow.org/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem + Tue, 20 Feb 2018 00:00:00 GMT + + Over the last year, the Flow team has been slowly auditing and improving all the +possible error messages generated by the type checker. In Flow 0.66 we’re +excited to announce a new error message format designed to decrease the time it +takes you to read and fix each bug Flow finds.

    ]]>
    +
    + + <![CDATA[Typing Higher-Order Components in Recompose With Flow]]> + https://flow.org/blog/2017/09/03/Flow-Support-in-Recompose + https://flow.org/blog/2017/09/03/Flow-Support-in-Recompose + Sun, 03 Sep 2017 00:00:00 GMT + + One month ago Recompose landed an +official Flow library definition. The definitions were a long time coming, +considering the original PR was created by +@GiulioCanti a year ago.

    ]]>
    +
    + + <![CDATA[Private Object Properties Using Flow’s Opaque Type Aliases]]> + https://flow.org/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases + https://flow.org/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases + Fri, 25 Aug 2017 00:00:00 GMT + + In the last few weeks, a proposal for private class fields in Javascript reached +stage 3. This is going to be a great way to hide implementation details away +from users of your classes. However, locking yourself in to an OOP style of +programming is not always ideal if you prefer a more functional style. Let’s +talk about how you can use Flow’s opaque type aliases to get private properties +on any object type.

    ]]>
    +
    + + <![CDATA[Even Better Support for React in Flow]]> + https://flow.org/blog/2017/08/16/Even-Better-Support-for-React-in-Flow + https://flow.org/blog/2017/08/16/Even-Better-Support-for-React-in-Flow + Wed, 16 Aug 2017 00:00:00 GMT + + The first version of Flow support for React was a magical implementation of +React.createClass(). Since then, React has evolved significantly. It is time +to rethink how Flow models React.

    ]]>
    +
    + + <![CDATA[Linting in Flow]]> + https://flow.org/blog/2017/08/04/Linting-in-Flow + https://flow.org/blog/2017/08/04/Linting-in-Flow + Fri, 04 Aug 2017 00:00:00 GMT + + Flow’s type information is useful for so much more than just proving your programs are correct. Introducing Flow linter.

    ]]>
    +
    + + <![CDATA[Opaque Type Aliases]]> + https://flow.org/blog/2017/07/27/Opaque-Types + https://flow.org/blog/2017/07/27/Opaque-Types + Thu, 27 Jul 2017 00:00:00 GMT + + Do you ever wish that you could hide your implementation details away +from your users? Find out how opaque type aliases can get the job done!

    ]]>
    +
    + + <![CDATA[Strict Checking of Function Call Arity]]> + https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity + https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity + Sun, 07 May 2017 00:00:00 GMT + + One of Flow's original goals was to be able to understand idiomatic JavaScript. +In JavaScript, you can call a function with more arguments than the function +expects. Therefore, Flow never complained about calling a function with +extraneous arguments.

    We are changing this behavior.

    What is arity?

    A function's arity is the number of arguments it expects. Since some functions +have optional parameters and some use rest parameters, we can define the +minimum arity as the smallest number of arguments it expects and the maximum +arity as the largest number of arguments it expects.

    function no_args() {} // arity of 0
    function two_args(a, b) {} // arity of 2
    function optional_args(a, b?) {} // min arity of 1, max arity of 2
    function many_args(a, ...rest) {} // min arity of 1, no max arity

    Motivation

    Consider the following code:

    function add(a, b) { return a + b; }
    const sum = add(1, 1, 1, 1);

    The author apparently thought the add() function adds up all its +arguments, and that sum will have the value 4. However, only the first two +arguments are summed, and sum actually will have the value 2. This is +obviously a bug, so why doesn't JavaScript or Flow complain?

    And while the error in the above example is easy to see, in real code it's often +a lot harder to notice. For example, what is the value of total here:

    const total = parseInt("10", 2) + parseFloat("10.1", 2);

    "10" in base 2 is 2 in decimal and "10.1" in base 2 is 2.5 in decimal. +So the author probably thought that total would be 4.5. However, the correct +answer is 12.1. parseInt("10", 2) does evaluates to 2, as expected. +However, parseFloat("10.1", 2) evaluates to 10.1. parseFloat() only takes +a single argument. The second argument is ignored!

    Why JavaScript allows extraneous arguments

    At this point, you might feel like this is just an example of JavaScript making +terrible life decisions. However, this behavior is very convenient in a bunch of +situations!

    Callbacks

    If you couldn't call a function with more arguments than it handles, then +mapping over an array would look like

    const doubled_arr = [1, 2, 3].map((element, index, arr) => element * 2);

    When you call Array.prototype.map, you pass in a callback. For each element in +the array, that callback is invoked and passed 3 arguments:

    1. The element
    2. The index of the element
    3. The array over which you're mapping

    However, your callback often only needs to reference the first argument: the +element. It's really nice that you can write

    const doubled_arr = [1, 2, 3].map(element => element * 2);

    Stubbing

    Sometimes I come across code like this

    let log = () => {};
    if (DEBUG) {
    log = (message) => console.log(message);
    }
    log("Hello world");

    The idea is that in a development environment, calling log() will output a +message, but in production it does nothing. Since you can call a +function with more arguments than it expects, it is easy to stub out log() in +production.

    Variadic functions using arguments

    A variadic function is a function that can take an indefinite number of +arguments. The old-school way to write variadic functions in JavaScript is by +using arguments. For example

    function sum_all() {
    let ret = 0;
    for (let i = 0; i < arguments.length; i++) { ret += arguments[i]; }
    return ret;
    }
    const total = sum_all(1, 2, 3); // returns 6

    For all intents and purposes, sum_all appears like it takes no arguments. So +even though it appears to have an arity of 0, it is convenient that we can call +it with more arguments.

    Changes to Flow

    We think we have found a compromise which catches the motivating bugs without +breaking the convenience of JavaScript.

    Calling a function

    If a function has a maximum arity of N, then Flow will start complaining if you +call it with more than N arguments.

    test:1
    1: const num = parseFloat("10.5", 2);
    ^ unused function argument
    19: declare function parseFloat(string: mixed): number;
    ^^^^^^^^^^^^^^^^^^^^^^^ function type expects no more than 1 argument. See lib: <BUILTINS>/core.js:19

    Function subtyping

    Flow will not change its function subtyping behavior. A function +with a smaller maximum arity is still a subtype of a function with a larger +maximum arity. This allows callbacks to still work as before.

    class Array<T> {
    ...
    map<U>(callbackfn: (value: T, index: number, array: Array<T>) => U, thisArg?: any): Array<U>;
    ...
    }
    const arr = [1,2,3].map(() => 4); // No error, evaluates to [4,4,4]

    In this example, () => number is a subtype of (number, number, Array<number>) => number.

    Stubbing and variadic functions

    This will, unfortunately, cause Flow to complain about stubs and variadic +functions which are written using arguments. However, you can fix these by +using rest parameters

    let log (...rest) => {};

    function sum_all(...rest) {
    let ret = 0;
    for (let i = 0; i < rest.length; i++) { ret += rest[i]; }
    return ret;
    }

    Rollout plan

    Flow v0.46.0 will ship with strict function call arity turned off by default. It +can be enabled via your .flowconfig with the flag

    experimental.strict_call_arity=true

    Flow v0.47.0 will ship with strict function call arity turned on and the +experimental.strict_call_arity flag will be removed.

    Why turn this on over two releases?

    This decouples the switch to strict checking of function call arity from the +release.

    Why not keep the experimental.strict_call_arity flag?

    This is a pretty core change. If we kept both behaviors, we'd have to test that +everything works with and without this change. As we add more flags, the number +of combinations grows exponentially, and Flow's behavior gets harder to reason +about. For this reason, we're choosing only one behavior: strict checking of +function call arity.

    What do you think?

    This change was motivated by feedback from Flow users. We really appreciate +all the members of our community who take the time to share their feedback with +us. This feedback is invaluable and helps us make Flow better, so please keep +it coming!

    ]]>
    +
    + + <![CDATA[Introducing Flow-Typed]]> + https://flow.org/blog/2016/10/13/Flow-Typed + https://flow.org/blog/2016/10/13/Flow-Typed + Thu, 13 Oct 2016 00:00:00 GMT + + Having high-quality and community-driven library definitions (“libdefs”) are +important for having a great experience with Flow. Today, we are introducing +flow-typed: A repository and +CLI tool that represent the first parts +of a new workflow for building, sharing, and distributing Flow libdefs.

    The goal of this project is to grow an ecosystem of libdefs that +allows Flow's type inference to shine +and that aligns with Flow's mission: To extract precise and accurate types +from real-world JavaScript. We've learned a lot from similar efforts like +DefinitelyTyped for TypeScript and we want to bring some of the lessons we've +learned to the Flow ecosystem.

    Here are some of the objectives of this project:

    • Libdefs should be versioned — both against the libraries they describe +and against the version(s) of Flow they are compatible with.
    • Libdefs should meet a high quality bar, including libdef tests to +ensure that their quality persists over time.
    • There must be a straightforward way to contribute libdef improvements over +time and for developers to benefit from those improvements over time.
    • The process of managing libdefs for a Flow project should be automated, +simple, and easy to get right.

    Versioned & Tested Libdefs

    Anyone can contribute a libdef (or improve on an existing one), but when doing +so it's important that we maintain a high quality bar so that all developers +feel confident in the libdefs they are using. To address this, flow-typed +requires that all libdef contributions are explicitly versioned against both +the version of the library they are describing and the version(s) of Flow the +libdef is compatible with.

    Additionally, all libdefs must be accompanied by tests that exercise the +important parts of the API and assert that they yield the correct types. By +including both version information and tests with each libdef, we can +automatically verify in Travis that the tests work as expected for all versions +of Flow a libdef is compatible with. Tests also help to ensure that future +changes to the libdef don't regress its features over time.

    Automating Libdef Installation

    We've built a simple CLI tool called flow-typed that helps to automate the +process of finding, installing, and upgrading libdefs in your Flow projects. It +uses the explicit version info associated with each libdef to find all +necessary libdefs based on your project's package.json dependencies. This +minimizes the work you need to do in order to pull in and update libdefs in +your projects.

    You can get the flow-typed CLI using either yarn (yarn global add flow-typed) +or npm (npm install -g flow-typed).

    Installing Libdefs

    Installing libdefs from the flow-typed repository is a matter of running a +single command on your project after installing your dependencies:

    > yarn install # Or `npm install` if you're old-school :)
    > flow-typed install

    The flow-typed install command reads your project's package.json file, +queries the flow-typed repository for libdefs matching your dependencies, and +installs the correctly-versioned libdefs into the flow-typed/ directory for +you. By default, Flow knows to look in the flow-typed/ directory for libdefs +— so there is no additional configuration necessary.

    Note that it's necessary to run this command after running yarn or +npm install. This is because this command will also generate stub libdefs for +you if one of your dependencies doesn't have types.

    Once libdefs have been installed, we recommend that you check them in to your +project's repo. Libdefs in the flow-typed repository may be improved over +time (fixing a bug, more precise types, etc). If this happens for a libdef that +you depend on, you'll want to have control over when that update is applied to +your project. Periodically you can run flow-typed update to download any +libdef updates, verify that your project still typechecks, and the commit the +updates.

    Why Not Just Use Npm To Distribute Libdefs?

    Over time libdefs in the flow-typed repo may be updated to fix bugs, improve +accuracy, or make use of new Flow features that better describe the types of +the library. As a result, there are really 3 versions that apply to each +libdef: The version of the library being described, the current version of the +libdef in the flow-typed repo, and the version(s) of Flow the libdef is +compatible with.

    If an update is made to some libdef that you use in your project after you've +already installed it, there's a good chance that update may find new type +errors in your project that were previously unknown. While it is certainly a +good thing to find errors that were previously missed, you'll want to have +control over when those changes get pulled in to your project.

    This is the reason we advise that you commit your installed libdefs to version +control rather than rely on a system like npm+semver to download and install a +non-deterministic semver-ranged version from npm. Checking in your libdefs +ensures that all collaborators on your project have consistent output from Flow +at any given commit in version history.

    Building a Community

    This is first and foremost a community project. It was started by a community +member (hey @splodingsocks!) and has +already benefitted from hours of work by many others. Moreover, this will +continue to be a community effort: Anyone can create and/or help maintain a +libdef for any npm library. Authors may create libdefs for their packages when +publishing, and/or consumers can create them when someone else hasn't already +done so. Either way, everyone benefits!

    We'd like to send a big shout-out to @marudor for +contributing so many of his own libdefs and spending time helping others to +write and contribute libdefs. Additionally we'd like to thank +@ryyppy for helping to design and iterate on the +CLI and installation workflow as well as manage libdef reviews.

    The Flow core team intends to stay invested in developing and improving this +project, but in order for it to truly succeed we need your help! If you've +already written some libdefs for Flow projects that you work on, we encourage +you to contribute +them for others to benefit from them as well. By managing libdefs in a +community-driven repository, the community as a whole can work together to +extend Flow's capabilities beyond just explicitly-typed JS.

    It's still early days and there's still a lot to do, so we're excited to hear +your ideas/feedback and read your pull requests! :)

    Happy typing!

    ]]>
    +
    + + <![CDATA[Property Variance and Other Upcoming Changes]]> + https://flow.org/blog/2016/10/04/Property-Variance + https://flow.org/blog/2016/10/04/Property-Variance + Tue, 04 Oct 2016 00:00:00 GMT + + The next release of Flow, 0.34, will include a few important changes to object +types:

    • property variance,
    • invariant-by-default dictionary types,
    • covariant-by-default method types,
    • and more flexible getters and setters.

    What is Variance?

    Defining the subtype relationship between types is a core responsibility of Flow +as a type system. These relationships are determined either directly for +simple types or, for complex types, defined in terms of their parts.

    Variance describes the subtyping relationship for complex types as it relates +to the subtyping relationships of their parts.

    For example, Flow directly encodes the knowledge that string is a subtype of +?string. Intuitively, a string type contains string values while a ?string +type contains null, undefined, and also string values, so membership in the +former naturally implies membership in the later.

    The subtype relationships between two function types is not as direct. Rather, +it is derived from the subtype relationships between the functions' parameter +and return types.

    Let's see how this works for two simple function types:

    type F1 = (x: P1) => R1;
    type F2 = (x: P2) => R2;

    Whether F2 is a subtype of F1 depends on the relationships between P1 and +P2 and R1 and R2. Let's use the notation B <: A to mean B is a +subtype of A.

    It turns out that F2 <: F1 if P1 <: P2 and R2 <: R1. Notice that the +relationship for parameters is reversed? In technical terms, we can say that +function types are "contravariant" with respect to their parameter types and +"covariant" with respect to their return types.

    Let's look at an example:

    function f(callback: (x: string) => ?number): number {
    return callback("hi") || 0;
    }

    What kinds of functions can we pass to f? Based on the subtyping rule above, +then we can pass a function whose parameter type is a supertype of string and +whose return type is a subtype of ?number.

    function g(x: ?string): number {
    return x ? x.length : 0;
    }
    f(g);

    The body of f will only ever pass string values into g, which is safe +because g takes at least string by taking ?string. Conversely, g will +only ever return number values to f, which is safe because f handles at +least number by handling ?number.

    Input and Output

    One convenient way to remember when something is covariant vs. contravariant is +to think about "input" and "output."

    Parameters are in an input position, often called a "negative" position. +Complex types are contravariant in their input positions.

    Return is an output position, often called a "positive" position. Complex +types are covariant in their output positions.

    Property Invariance

    Just as function types are composed of parameter and return types, so too are +object types composed of property types. Thus, the subtyping relationship +between objects is derived from the subtyping relationships of their +properties.

    However, unlike functions which have input parameters and an output return, +object properties can be read and written. That is, properties are both input +and output.

    Let's see how this works for two simple object types:

    type O1 = {p: T1};
    type O2 = {p: T2};

    As with function types, whether O2 is a subtype of O1 depends on the +relationship between its parts, T1 and T2.

    Here it turns out that O2 <: O1 if T2 <: T1 and T1 <: T2. In technical +terms, object types are "invariant" with respect to their property types.

    Let's look at an example:

    function f(o: {p: ?string}): void {
    // We can read p from o
    let len: number;
    if (o.p) {
    len = o.p.length;
    } else {
    len = 0;
    }

    // We can also write into p
    o.p = null;
    }

    What kinds of objects can we pass into f, then? If we try to pass in an +object with a subtype property, we get an error:

    var o1: {p: string} = {p: ""};
    f(o1);
    function f(o: {p: ?string}) {}
    ^ null. This type is incompatible with
    var o1: {p: string} = {p: ""};
    ^ string
    function f(o: {p: ?string}) {}
    ^ undefined. This type is incompatible with
    var o1: {p: string} = {p: ""};
    ^ string

    Flow has correctly identified an error here. If the body of f writes null +into o.p, then o1.p would no longer have type string.

    If we try to pass an object with a supertype property, we again get an error:

    var o2: {p: ?(string|number)} = {p: 0};
    f(o2);
    var o1: {p: ?(string|number)} = {p: ""};
    ^ number. This type is incompatible with
    function f(o: {p: ?string}) {}
    ^ string

    Again, Flow correctly identifies an error, because if f tried to read p +from o, it would find a number.

    Property Variance

    So objects have to be invariant with respect to their property types because +properties can be read from and written to. But just because you can read and +write, doesn't mean you always do.

    Consider a function that gets the length of an nullable string property:

    function f(o: {p: ?string}): number {
    return o.p ? o.p.length : 0;
    }

    We never write into o.p, so we should be able to pass in an object where the +type of property p is a subtype of ?string. Until now, this wasn't possible +in Flow.

    With property variance, you can explicitly annotate object properties as being +covariant and contravariant. For example, we can rewrite the above function:

    function f(o: {+p: ?string}): number {
    return o.p ? o.p.length : 0;
    }

    var o: {p: string} = {p: ""};
    f(o); // no type error!

    It's crucial that covariant properties only ever appear in output positions. It +is an error to write to a covariant property:

    function f(o: {+p: ?string}) {
    o.p = null;
    }
    o.p = null;
    ^ object type. Covariant property `p` incompatible with contravariant use in
    o.p = null;
    ^ assignment of property `p`

    Conversely, if a function only ever writes to a property, we can annotate the +property as contravariant. This might come up in a function that initializes an +object with default values, for example.

    function g(o: {-p: string}): void {
    o.p = "default";
    }
    var o: {p: ?string} = {p: null};
    g(o);

    Contravariant properties can only ever appear in input positions. It is an +error to read from a contravariant property:

    function f(o: {-p: string}) {
    o.p.length;
    }
    o.p.length;
    ^ object type. Contravariant property `p` incompatible with covariant use in
    o.p.length;
    ^ property `p`

    Invariant-by-default Dictionary Types

    The object type {[key: string]: ?number} describes an object that can be used +as a map. We can read any property and Flow will infer the result type as +?number. We can also write null or undefined or number into any +property.

    In Flow 0.33 and earlier, these dictionary types were treated covariantly by +the type system. For example, Flow accepted the following code:

    function f(o: {[key: string]: ?number}) {
    o.p = null;
    }
    declare var o: {p: number};
    f(o);

    This is unsound because f can overwrite property p with null. In Flow +0.34, dictionaries are invariant, like named properties. The same code now +results in the following type error:

    function f(o: {[key: string]: ?number}) {}
    ^ null. This type is incompatible with
    declare var o: {p: number};
    ^ number
    function f(o: {[key: string]: ?number}) {}
    ^ undefined. This type is incompatible with
    declare var o: {p: number};
    ^ number

    Covariant and contravariant dictionaries can be incredibly useful, though. To +support this, the same syntax used to support variance for named properties can +be used for dictionaries as well.

    function f(o: {+[key: string]: ?number}) {}
    declare var o: {p: number};
    f(o); // no type error!

    Covariant-by-default Method Types

    ES6 gave us a shorthand way to write object properties which are functions.

    var o = {
    m(x) {
    return x * 2
    }
    }

    Flow now interprets properties which use this shorthand method syntax as +covariant by default. This means it is an error to write to the property m.

    If you don't want covariance, you can use the long form syntax:

    var o = {
    m: function(x) {
    return x * 2;
    }
    }

    More Flexible Getters and Setters

    In Flow 0.33 and earlier, getters and setters had to agree exactly on their +return type and parameter type, respectively. Flow 0.34 lifts that restriction.

    This means you can write code like the following:

    // @flow
    declare var x: string;

    var o = {
    get x(): string {
    return x;
    },
    set x(value: ?string) {
    x = value || "default";
    }
    }
    ]]>
    +
    + + <![CDATA[Windows Support is Here!]]> + https://flow.org/blog/2016/08/01/Windows-Support + https://flow.org/blog/2016/08/01/Windows-Support + Mon, 01 Aug 2016 00:00:00 GMT + + We are excited to announce that Flow is now officially available on 64-bit +Windows! Starting with +Flow v0.30.0, we will +publish a Windows binary with each release. You can download the Windows binary +in a .zip file directly from the +GitHub releases page or install it +using the flow-bin npm package. Try +it out and report any issues you +come across!

    ![Windows Support GIF]({{ site.baseurl }}/static/windows.gif)

    Getting Flow working on Windows was not easy, and it was made possible by the +hard work of Grégoire, +Çagdas and +Fabrice from +OCamlPro.

    Getting Started with Windows

    Getting Started with flow-bin on Windows

    Does your JavaScript project use npm to manage dependencies? Well, then the +easiest way for you to install Flow is with npm! Just run

    > npm install --save-dev flow-bin

    (Note: on Windows, it is recommended to use npm v3, to avoid the long +node_modules paths that npm v2 creates)

    This will install the +flow-bin npm package and +automatically add it to your package.json. Once installed, there are a few ways +to use the Flow binary. One is to use ./node_modules/.bin/flow directly. For +example, every Flow project needs a .flowconfig file in the root directory. +If you don't already have a .flowconfig, you could create it with Powershell, +like

    > New-Item .flowconfig

    or you could run the flow init command, using ./node_modules/.bin/flow

    > ./node_modules/.bin/flow init

    Another way to run Flow is via an npm script. In your package.json file, there +is a "scripts" section. Maybe it looks like this:

    "scripts": {
    "test": "make test"
    }

    You can run the Flow binary directly from a script by referencing flow in a +script, like so:

    "scripts": {
    "test": "make test",
    "flow_check": "flow check || exit 0"
    }

    and then running that script via npm run

    > npm run flow_check

    (Note: the || exit 0 part of the script is optional, but npm run will show +an error message if the script finishes with a non-zero exit code)

    You can also install flow-bin globally with

    > npm install --global flow-bin

    Getting Started with flow.exe

    Each GitHub release of Flow +starting with v0.30.0 will have a zipped Windows binary. For example, the +v0.30.0 release +includes flow-win64-v0.30.0.zip. +If you download and unzip that, you will find a flow/ directory, which +contains flow.exe. flow.exe is the Flow binary, so if you put that +somewhere in your path, and you should be good to go.

    > mkdir demo
    > cd demo
    > flow.exe init
    > "/* @flow */ var x: number = true;" | Out-File -Encoding ascii test.js
    > flow.exe check
    test.js:1
    1: /* @flow */ var x: number = true;
    ^^^^ boolean. This type is incompatible with

    1: /* @flow */ var x: number = true;
    ^^^^^^ number
    ]]>
    +
    + + <![CDATA[New Implementation of Unions and Intersections]]> + https://flow.org/blog/2016/07/01/New-Unions-Intersections + https://flow.org/blog/2016/07/01/New-Unions-Intersections + Fri, 01 Jul 2016 00:00:00 GMT + + Summary

    Before Flow 0.28, the implementation of union/intersection types had serious +bugs and was the root cause of +a lot of weird behaviors you +may have run into with Flow in the past. These bugs have now been addressed in +a diff landing in 0.28.

    As you might expect after a major rewrite of a tricky part of the type system +implementation, there will be a short period of adjustment: you may run into +kinks that we will try to iron out promptly, and you may run into some +unfamiliar error messages.

    New Error Messages

    <error location> Could not decide which case to select
    <location of union/intersection type>

    Case 1 may work:
    <location of 1st case of union/intersection type>

    But if it doesn't, case 2 looks promising too:
    <location of 2nd case of union/intersection type>

    Please provide additional annotation(s) to determine whether case 1 works
    (or consider merging it with case 2):
    <location to annotate>
    <location to annotate>
    ...

    What this means is that at <error location>, Flow needs to make a choice: one +of the members of the union/intersection type at +<location of union/intersection type> must be applied, but Flow can't choose +safely based on available information. In particular, it cannot decide between +case 1 and 2, so Flow lists a bunch of annotations that can help it +disambiguate the two cases.

    Actions Needed

    You can fix the errors in two ways:

    • Actually go and annotate the listed locations. This should be by far the most +common fix.
    • Discover that there is real, unintentional ambiguity between case 1 and 2, +and rewrite the two cases in the union type to remove the ambiguity. When +this happens, typically it will fix a large number of errors.

    There are two more possibilities, however:

    • There's no real ambiguity and Flow is being too conservative / dumb. In this +case, go ahead and do the annotations anyway and file an issue on GitHub. We +plan to do a lot of short-term follow-up work to disambiguate more cases +automatically, so over time you should see less of (3).
    • You have no idea what's going on. The cases being pointed to don't make sense. +They don't correspond to what you have at <error location>. Hopefully you +won't run into (4) too often, but if you do please file an issue, since +this means there are still latent bugs in the implementation.

    If you file an issue on GitHub, please include code to reproduce the issue. You +can use Try Flow to share your repro case easily.

    If you're curious about the whys and hows of these new error messages, here's +an excerpt from the commit message of the "fate of the union" diff:

    Problem

    Flow's inference engine is designed to find more errors over time as +constraints are added...but it is not designed to backtrack. Unfortunately, +checking the type of an expression against a union type does need backtracking: +if some branch of the union doesn't work out, the next branch must be tried, +and so on. (The same is true for checks that involve intersection types.)

    The situation is further complicated by the fact that the type of the +expression may not be completely known at the point of checking, so that a +branch that looks promising now might turn out to be incorrect later.

    Solution

    The basic idea is to delay trying a branch until a point where we can decide +whether the branch will definitely fail or succeed, without further +information. If trying a branch results in failure, we can move on to the next +branch without needing to backtrack. If a branch succeeds, we are done. The +final case is where the branch looks promising, but we cannot be sure without +adding constraints: in this case we try other branches, and bail when we run +into ambiguities...requesting additional annotations to decide which branch to +select. Overall, this means that (1) we never commit to a branch that might +turn out to be incorrect and (2) can always select a correct branch (if such +exists) given enough annotations.

    ]]>
    +
    + + <![CDATA[Version 0.21.0]]> + https://flow.org/blog/2016/02/02/Version-0.21.0 + https://flow.org/blog/2016/02/02/Version-0.21.0 + Tue, 02 Feb 2016 00:00:00 GMT + + Yesterday we deployed Flow v0.21.0! As always, we've listed out the most +interesting changes in the +Changelog. +However, since I'm on a plane and can't sleep, I thought it might be fun to +dive into a couple of the changes! Hope this blog post turns out interesting +and legible!

    JSX Intrinsics

    If you're writing JSX, it's probably a mix of your own React Components and +some intrinsics. For example, you might write

    render() {
    return <div><FluffyBunny name="Fifi" /></div>;
    }

    In this example, FluffyBunny is a React Component you wrote and div is a +JSX intrinsic. Lower-cased JSX elements are assumed to be intrinsics by React +and by Flow. Up until Flow v0.21.0, Flow ignored intrinsics and gave them the +type any. This meant Flow let you set any property on JSX intrinsics. Flow +v0.21.0 will, by default, do the same thing as v0.20.0, However now you can +also configure Flow to properly type your JSX intrinsics!

    Example of how to use JSX intrinsics

    .flowconfig

    [libs]
    myLib.js

    myLib.js

    // JSXHelper is a type alias to make this example more concise.
    // There's nothing special or magic here.
    // JSXHelper<{name: string}> is a React component
    // with the single string property "name", which has a default
    type JSXHelper<T> = Class<ReactComponent<T,T,mixed>>;

    // $JSXIntrinsics is special and magic.
    // This declares the types for `div` and `span`
    type $JSXIntrinsics = {
    div: JSXHelper<{id: string}>,
    span: JSXHelper<{id: string, class: string}>,
    };

    myCode.js

    <div id="asdf" />; // No error
    <div id={42} />; // Error: `id` prop is a string, not a number!

    What is going on here?

    The new bit of magic is this $JSXIntrinsics type alias. When Flow sees +<foo /> it will look to see if $JSXIntrinsics exists and if so will grab +the type of $JSXIntrinsics['foo']. It will use this type to figure out which +properties are available and need to be set.

    We haven't hardcoded the intrinsics into Flow since the available intrinsics +will depend on your environment. For example, React native would have different +intrinsics than React for the web would.

    Smarter string refinements

    One of the main ways that we make Flow smarter is by teaching it to recognize +more ways that JavaScript programmers refine types. Here's an example of a +common way to refine nullable values:

    class Person {
    name: ?string;
    ...
    getName(): string {
    // Before the if, this.name could be null, undefined, or a string
    if (this.name != null) {
    // But now the programmer has refined this.name to definitely be a string
    return this.name;
    }
    // And now we know that this.name is null or undefined.
    return 'You know who';
    }
    }

    New string refinements

    In v0.21.0, one of the refinements we added is the ability to refine types by +comparing them to strings.

    This is useful for refining unions of string literals into string literals

    function test(x: 'foo' | 'bar'): 'foo' {
    if (x === 'foo') {
    // Now Flow understands that x has the type 'foo'
    return x;
    } else {
    return 'foo';
    }
    }

    And can also narrow the value of strings:

    function test(x: string): 'foo' {
    if (x === 'foo') {
    // Now Flow knows x has the type 'foo'
    return x;
    } else {
    return 'foo';
    }
    }

    This is one of the many refinements that Flow currently can recognize and +follow, and we'll keep adding more! Stay tuned!

    ]]>
    +
    + + <![CDATA[Version-0.19.0]]> + https://flow.org/blog/2015/12/01/Version-0.19.0 + https://flow.org/blog/2015/12/01/Version-0.19.0 + Tue, 01 Dec 2015 00:00:00 GMT + + Flow v0.19.0 was deployed today! It has a ton of changes, which the +Changelog +summarizes. The Changelog can be a little concise, though, so here are some +longer explanations for some of the changes. Hope this helps!

    @noflow

    Flow is opt-in by default (you add @flow to a file). However we noticed that +sometimes people would add Flow annotations to files that were missing @flow. +Often, these people didn't notice that the file was being ignored by Flow. So +we decided to stop allowing Flow syntax in non-Flow files. This is easily fixed +by adding either @flow or @noflow to your file. The former will make the +file a Flow file. The latter will tell Flow to completely ignore the file.

    Declaration files

    Files that end with .flow are now treated specially. They are the preferred +provider of modules. That is if both foo.js and foo.js.flow exist, then +when you write import Foo from './foo', Flow will use the type exported from +foo.js.flow rather than foo.js.

    We imagine two main ways people will use .flow files.

    1. As interface files. Maybe you have some library coolLibrary.js that is +really hard to type with inline Flow types. You could put +coolLibrary.js.flow next to it and declare the types that coolLibrary.js +exports.

      // coolLibrary.js.flow
      declare export var coolVar: number;
      declare export function coolFunction(): void;
      declare export class coolClass {}
    2. As the original source. Maybe you want to ship the minified, transformed +version of awesomeLibrary.js, but people who use awesomeLibrary.js also +use Flow. Well you could do something like

      cp awesomeLibraryOriginalCode.js awesomeLibrary.js.flow
      babel awesomeLibraryOriginalCode --out-file awesomeLibrary.js

    Order of precedence for lib files

    Now your local lib files will override the builtin lib files. Is one of the +builtin flow libs wrong? Send a pull request! But then while you're waiting for +the next release, you can use your own definition! The order of precedence is +as follows:

    1. Any paths supplied on the command line via --lib
    2. The files found in the paths specified in the .flowconfig [libs] (in +listing order)
    3. The Flow core library files

    For example, if I want to override the builtin definition of Array and instead +use my own version, I could update my .flowconfig to contain

    // .flowconfig
    [libs]
    myArray.js
    // myArray.js
    declare class Array<T> {
    // Put whatever you like in here!
    }

    Deferred initialization

    Previously the following code was an error, because the initialization of +myString happens later. Now Flow is fine with it.

    function foo(someFlag: boolean): string {
    var myString:string;
    if (someFlag) {
    myString = "yup";
    } else {
    myString = "nope";
    }
    return myString;
    }
    ]]>
    +
    + + <![CDATA[Typing Generators with Flow]]> + https://flow.org/blog/2015/11/09/Generators + https://flow.org/blog/2015/11/09/Generators + Mon, 09 Nov 2015 00:00:00 GMT + + Flow 0.14.0 included support for generator functions. Generator functions provide a unique ability to JavaScript programs: the ability to suspend and resume execution. This kind of control paves the way for async/await, an upcoming feature already supported by Flow.

    So much wonderful material has already been produced describing generators. I am going to focus on the interaction of static typing with generators. Please refer to the following materials for information about generators:

    • Jafar Husain gave an incredibly lucid and well-illustrated talk that covers generators. I have linked to the point where he gets into generators, but I highly recommend the entire talk.
    • Exploring ES6, a comprehensive book by Axel Rauschmayer, who has generously made the contents available for free online, has a chapter on generators.
    • The venerable MDN has a useful page describing the Iterator interface and generators.

    In Flow, the Generator interface has three type parameters: Yield, Return, and Next. Yield is the type of values which are yielded from the generator function. Return is the type of the value which is returned from the generator function. Next is the type of values which are passed into the generator via the next method on the Generator itself. For example, a generator value of type Generator<string,number,boolean> will yield strings, return a number, and will receive booleans from its caller.

    For any type T, a Generator<T,void,void> is both an Iterable<T> and an Iterator<T>.

    The unique nature of generators allows us to represent infinite sequences naturally. Consider the infinite sequence of natural numbers:

    function *nats() {
    let i = 0;
    while (true) {
    yield i++;
    }
    }

    Because generators are also iterators, we can manually iterate the generator:

    const gen = nats();
    console.log(gen.next()); // { done: false, value: 0 }
    console.log(gen.next()); // { done: false, value: 1 }
    console.log(gen.next()); // { done: false, value: 2 }

    When done is false, value will have the generator's Yield type. When done is true, value will have the generator's Return type or void if the consumer iterates past the completion value.

    function *test() {
    yield 1;
    return "complete";
    }
    const gen = test();
    console.log(gen.next()); // { done: false, value: 1 }
    console.log(gen.next()); // { done: true, value: "complete" }
    console.log(gen.next()); // { done: true, value: undefined }

    Because of this behavior, manually iterating poses typing difficulties. Let's try to take the first 10 values from the nats generator through manual iteration:

    const gen = nats();
    const take10: number[] = [];
    for (let i = 0; i < 10; i++) {
    const { done, value } = gen.next();
    if (done) {
    break;
    } else {
    take10.push(value); // error!
    }
    }
    test.js:13
    13: const { done, value } = gen.next();
    ^^^^^^^^^^ call of method `next`
    17: take10.push(value); // error!
    ^^^^^ undefined. This type is incompatible with
    11: const take10: number[] = [];
    ^^^^^^ number

    Flow is complaining that value might be undefined. This is because the type of value is Yield | Return | void, which simplifies in the instance of nats to number | void. We can introduce a dynamic type test to convince Flow of the invariant that value will always be number when done is false.

    const gen = nats();
    const take10: number[] = [];
    for (let i = 0; i < 10; i++) {
    const { done, value } = gen.next();
    if (done) {
    break;
    } else {
    if (typeof value === "undefined") {
    throw new Error("`value` must be a number.");
    }
    take10.push(value); // no error
    }
    }

    There is an open issue which would make the dynamic type test above unnecessary, by using the done value as a sentinel to refine a tagged union. That is, when done is true, Flow would know that value is always of type Yield and otherwise of type Return | void.

    Even without the dynamic type test, this code is quite verbose and it's hard to see the intent. Because generators are also iterable, we can also use for...of loops:

    const take10: number[] = [];
    let i = 0;
    for (let nat of nats()) {
    if (i === 10) break;
    take10.push(nat);
    i++;
    }

    That's much better. The for...of looping construct ignores completion values, so Flow understands that nat will always be number. Let's generalize this pattern further using generator functions:

    function *take<T>(n: number, xs: Iterable<T>): Iterable<T> {
    if (n <= 0) return;
    let i = 0;
    for (let x of xs) {
    yield x;
    if (++i === n) return;
    }
    }

    for (let n of take(10, nats())) {
    console.log(n); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    }

    Note that we explicitly annotated the parameters and return type of the take generator. This is necessary to ensure Flow understands the fully generic type. This is because Flow does not currently infer a fully generic type, but instead accumulates lower bounds, resulting in a union type.

    function identity(x) { return x }
    var a: string = identity(""); // error
    var b: number = identity(0); // error

    The above code produces errors because Flow adds string and number as lower bounds to the type variable describing the type of the value bound by x. That is, Flow believes the type of identity is (x: string | number) => string | number because those are the types which actually passed through the function.

    Another important feature of generators is the ability to pass values into the generator from the consumer. Let's consider a generator scan, which reduces values passed into the generator using a provided function. Our scan is similar to Array.prototype.reduce, but it returns each intermediate value and the values are provided imperatively via next.

    As a first pass, we might write this:

    function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
    let acc = init;
    while (true) {
    const next = yield acc;
    acc = f(acc, next);
    }
    }

    We can use this definition to implement an imperative sum procedure:

    let sum = scan(0, (a,b) => a + b);
    console.log(sum.next()); // { done: false, value: 0 }
    console.log(sum.next(1)); // { done: false, value: 1 }
    console.log(sum.next(2)); // { done: false, value: 3 }
    console.log(sum.next(3)); // { done: false, value: 6 }

    However, when we try to check the above definition of scan, Flow complains:

    test.js:7
    7: acc = f(acc, next);
    ^^^^^^^^^^^^ function call
    7: acc = f(acc, next);
    ^^^^ undefined. This type is incompatible with
    3: function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
    ^ some incompatible instantiation of T

    Flow is complaining that our value, next, may be void instead of the expected T, which is number in the sum example. This behavior is necessary to ensure type safety. In order to prime the generator, our consumer must first call next without an argument. To accommodate this, Flow understands the argument to next to be optional. This means Flow will allow the following code:

    let sum = scan(0, (a,b) => a + b);
    console.log(sum.next()); // first call primes the generator
    console.log(sum.next()); // we should pass a value, but don't need to

    In general, Flow doesn't know which invocation is "first." While it should be an error to pass a value to the first next, and an error to not pass a value to subsequent nexts, Flow compromises and forces your generator to deal with a potentially void value. In short, given a generator of type Generator<Y,R,N> and a value x of type Y, the type of the expression yield x is N | void.

    We can update our definition to use a dynamic type test that enforces the non-void invariant at runtime:

    function *scan<T,U>(init: U, f: (acc: U, x: T) => U): Generator<U,void,T> {
    let acc = init;
    while (true) {
    const next = yield acc;
    if (typeof next === "undefined") {
    throw new Error("Caller must provide an argument to `next`.");
    }
    acc = f(acc, next);
    }
    }

    There is one more important caveat when dealing with typed generators. Every value yielded from the generator must be described by a single type. Similarly, every value passed to the generator via next must be described by a single type.

    Consider the following generator:

    function *foo() {
    yield 0;
    yield "";
    }

    const gen = foo();
    const a: number = gen.next().value; // error
    const b: string = gen.next().value; // error

    This is perfectly legal JavaScript and the values a and b do have the correct types at runtime. However, Flow rejects this program. Our generator's Yield type parameter has a concrete type of number | string. The value property of the iterator result object has the type number | string | void.

    We can observe similar behavior for values passed into the generator:

    function *bar() {
    var a = yield;
    var b = yield;
    return {a,b};
    }

    const gen = bar();
    gen.next(); // prime the generator
    gen.next(0);
    const ret: { a: number, b: string } = gen.next("").value; // error

    The value ret has the annotated type at runtime, but Flow also rejects this program. Our generator's Next type parameter has a concrete type of number | string. The value property of the iterator result object thus has the type void | { a: void | number | string, b: void | number | string }.

    While it may be possible to use dynamic type tests to resolve these issues, another practical option is to use any to take on the type safety responsibility yourself.

    function *bar(): Generator {
    var a = yield;
    var b = yield;
    return {a,b};
    }

    const gen = bar();
    gen.next(); // prime the generator
    gen.next(0);
    const ret: void | { a: number, b: string } = gen.next("").value; // OK

    (Note that the annotation Generator is equivalent to Generator<any,any,any>.)

    Phew! I hope that this will help you use generators in your own code. I also hope this gave you a little insight into the difficulties of applying static analysis to a highly dynamic language such as JavaScript.

    To summarize, here are some of the lessons we've learned for using generators in statically typed JS:

    • Use generators to implement custom iterables.
    • Use dynamic type tests to unpack the optional return type of yield expressions.
    • Avoid generators that yield or receive values of multiple types, or use any.
    ]]>
    +
    + + <![CDATA[Version-0.17.0]]> + https://flow.org/blog/2015/10/07/Version-0.17.0 + https://flow.org/blog/2015/10/07/Version-0.17.0 + Wed, 07 Oct 2015 00:00:00 GMT + + Today we released Flow v0.17.0! The first thing you may notice is that we changed the way we display errors at the command line. The new errors look like this:

    ![New error format]({{ site.baseurl }}/static/new_error_format_v0_17_0.png)

    This should hopefully help our command line users understand many errors without having to refer to their source code. We'll keep iterating on this format, so tell us what you like and what you don't like! Thanks to @frantic for building this feature!

    There are a whole bunch of other features and fixes in this release! Head on over to our Release for the full list!

    ]]>
    +
    + + <![CDATA[Version-0.16.0]]> + https://flow.org/blog/2015/09/22/Version-0.16.0 + https://flow.org/blog/2015/09/22/Version-0.16.0 + Tue, 22 Sep 2015 00:00:00 GMT + + On Friday we released Flow v0.16.0! We had some major perf improvements that we wanted to get into a release, plus let/const support was ready (thanks again @samwgoldman)!

    As always, the Changelog is best at summing up the big changes.

    ]]>
    +
    + + <![CDATA[Version-0.15.0]]> + https://flow.org/blog/2015/09/10/Version-0.15.0 + https://flow.org/blog/2015/09/10/Version-0.15.0 + Thu, 10 Sep 2015 00:00:00 GMT + + Today we released Flow v0.15.0! A lot has changed in the last month and we're excited to get the hard work of all our contributors in front of people! Big thanks to everyone who contributed to this release!

    Check out the Changelog to see what's new.

    ]]>
    +
    + + <![CDATA[Version-0.14.0]]> + https://flow.org/blog/2015/07/29/Version-0.14.0 + https://flow.org/blog/2015/07/29/Version-0.14.0 + Wed, 29 Jul 2015 00:00:00 GMT + + It has come to our attention that not everyone obsessively checks GitHub for Flow releases. This came as a surprise, but we would like to support these users too. Therefore, we will start announcing each Flow release on the blog, starting with this release.

    So here is Flow v0.14.0! Check out the Changelog for the canonical list of what has changed.

    ]]>
    +
    + + <![CDATA[Announcing Disjoint Unions]]> + https://flow.org/blog/2015/07/03/Disjoint-Unions + https://flow.org/blog/2015/07/03/Disjoint-Unions + Fri, 03 Jul 2015 00:00:00 GMT + + Sometimes programs need to deal with different kinds of data all at once, where the shape of the data can be different based on what kind of data the code is looking at. This kind of programming is so common in functional programming languages that almost all such languages come with a way of:

    • Specifying such data by a set of disjoint cases, distinguished by “tags”, where each tag is associated with a different “record” of properties. (These descriptions are called “disjoint union” or “variant” types.)
    • Doing case analysis on such data, by checking tags and then directly accessing the associated record of properties. (The common way to do such case analysis is by pattern matching.)

    Examples of programs that analyze or transform such data range from compilers working with abstract syntax trees, to operations that may return exceptional values, with much more in between!

    As of Flow 0.13.1 it is now possible to program in this style in JavaScript in a type-safe manner. You can define a disjoint union of object types and do case analysis on objects of that type by switching on the value of some common property (called a "sentinel") in those object types.

    Flow's syntax for disjoint unions looks like:

    type BinaryTree =
    { kind: "leaf", value: number } |
    { kind: "branch", left: BinaryTree, right: BinaryTree }

    function sumLeaves(tree: BinaryTree): number {
    if (tree.kind === "leaf") {
    return tree.value;
    } else {
    return sumLeaves(tree.left) + sumLeaves(tree.right);
    }
    }

    The problem

    Consider the following function that returns different objects depending on the data passed into it:

    type Result = { status: string, errorCode?: number }

    function getResult(op): Result {
    var statusCode = op();
    if (statusCode === 0) {
    return { status: 'done' };
    } else {
    return { status: 'error', errorCode: statusCode };
    }
    }

    The result contains a status property that is either 'done' or 'error', +and an optional errorCode property that holds a numeric status code when the +status is 'error'.

    One may now try to write another function that gets the error code from a result:

    function getErrorCode(result: Result): number {
    switch (result.status) {
    case 'error':
    return result.errorCode;
    default:
    return 0;
    }
    }

    Unfortunately, this code does not typecheck. The Result type does not precisely +capture the relationship between the status property and the errorCode property. +Namely it doesn't capture that when the status property is 'error', the errorCode +property will be present and defined on the object. As a result, Flow thinks that +result.errorCode in the above function may return undefined instead of number.

    Prior to version 0.13.1 there was no way to express this relationship, which meant +that it was not possible to check the type safety of this simple, familiar idiom!

    The solution

    As of version 0.13.1 it is possible to write a more precise type for Result +that better captures the intent and helps Flow narrow down the possible shapes +of an object based on the outcome of a dynamic === check. Now, we can write:

    type Result = Done | Error
    type Done = { status: 'done' }
    type Error = { status: 'error', errorCode: number }

    In other words, we can explicitly list out the possible shapes of results. These +cases are distinguished by the value of the status property. Note that here +we use the string literal types 'done' and 'error'. These match exactly the strings +'done' and 'error', which means that === checks on those values are enough for +Flow to narrow down the corresponding type cases. With this additional reasoning, the +function getErrorCode now typechecks, without needing any changes to the code!

    In addition to string literals, Flow also supports number literals as singleton types +so they can also be used in disjoint unions and case analyses.

    Why we built this

    Disjoint unions are at the heart of several good programming practices pervasive in functional programming languages. Supporting them in Flow means that JavaScript can use these practices in a type-safe manner. For example, disjoint unions can be used to write type-safe Flux dispatchers. They are also heavily used in a recently released reference implementation of GraphQL.

    ]]>
    +
    + + <![CDATA[Announcing Bounded Polymorphism]]> + https://flow.org/blog/2015/03/12/Bounded-Polymorphism + https://flow.org/blog/2015/03/12/Bounded-Polymorphism + Thu, 12 Mar 2015 00:00:00 GMT + + As of Flow 0.5.0, you can define polymorphic functions and classes with bounds on their type parameters. This is extremely useful for writing functions and classes that need some constraints on their type parameters. Flow's bounded polymorphism syntax looks like

    class BagOfBones<T: Bone> { ... }
    function eat<T: Food>(meal: T): Indigestion<T> { ... }

    The problem

    Consider the following code that defines a polymorphic function in Flow:

    function fooBad<T>(obj: T): T {
    console.log(Math.abs(obj.x));
    return obj;
    }

    This code does not (and should not!) type check. Not all values obj: T have a property x, let alone a property x that is a number, given the additional requirement imposed by Math.abs().

    But what if you wanted T to not range over all types, but instead over only the types of objects with an x property that has the type number? Intuitively, given that condition, the body should type check. Unfortunately, the only way you could enforce this condition prior to Flow 0.5.0 was by giving up on polymorphism entirely! For example you could write:

    // Old lame workaround
    function fooStillBad(obj: { x: number }): {x: number } {
    console.log(Math.abs(obj.x));
    return obj;
    }

    But while this change would make the body type check, it would cause Flow to lose information across call sites. For example:

    // The return type of fooStillBad() is {x: number}
    // so Flow thinks result has the type {x: number}
    var result = fooStillBad({x: 42, y: "oops"});

    // This will be an error since result's type
    // doesn't have a property "y"
    var test: {x: number; y: string} = result;

    The solution

    As of version 0.5.0, such typing problems can be solved elegantly using bounded polymorphism. Type parameters such as T can specify bounds that constrain the types that the type parameters range over. For example, we can write:

    function fooGood<T: { x: number }>(obj: T): T {
    console.log(Math.abs(obj.x));
    return obj;
    }

    Now the body type checks under the assumption that T is a subtype of { x: number }. Furthermore, no information is lost across call sites. Using the example from above:

    // With bounded polymorphism, Flow knows the return
    // type is {x: number; y: string}
    var result = fooGood({x: 42, y: "yay"});

    // This works!
    var test: {x: number; y: string} = result;

    Of course, polymorphic classes may also specify bounds. For example, the following code type checks:

    class Store<T: { x: number }> {
    obj: T;
    constructor(obj: T) { this.obj = obj; }
    foo() { console.log(Math.abs(this.obj.x)); }
    }

    Instantiations of the class are appropriately constrained. If you write

    var store = new Store({x: 42, y: "hi"});

    Then store.obj has type {x: number; y: string}.

    Any type may be used as a type parameter's bound. The type does not need to be an object type (as in the examples above). It may even be another type parameter that is in scope. For example, consider adding the following method to the above Store class:

    class Store<T: { x: number }> {
    ...
    bar<U: T>(obj: U): U {
    this.obj = obj;
    console.log(Math.abs(obj.x));
    return obj;
    }
    }

    Since U is a subtype of T, the method body type checks (as you may expect, U must also satisfy T's bound, by transitivity of subtyping). Now the following code type checks:

      // store is a Store<{x: number; y: string}>
    var store = new Store({x: 42, y: "yay"});

    var result = store.bar({x: 0, y: "hello", z: "world"});

    // This works!
    var test: {x: number; y: string; z: string } = result;

    Also, in a polymorphic definition with multiple type parameters, any type parameter may appear in the bound of any following type parameter. This is useful for type checking examples like the following:

    function copyArray<T, S: T>(from: Array<S>, to: Array<T>) {
    from.forEach(elem => to.push(elem));
    }

    Why we built this

    The addition of bounded polymorphism significantly increases the expressiveness of Flow's type system, by enabling signatures and definitions to specify relationships between their type parameters, without having to sacrifice the benefits of generics. We expect that the increased expressiveness will be particularly useful to library writers, and will also allow us to write better declarations for framework APIs such as those provided by React.

    Transformations

    Like type annotations and other Flow features, polymorphic function and class definitions need to be transformed before the code can be run. The transforms are available in react-tools 0.13.0, which was recently released

    ]]>
    +
    + + <![CDATA[Announcing Flow Comments]]> + https://flow.org/blog/2015/02/20/Flow-Comments + https://flow.org/blog/2015/02/20/Flow-Comments + Fri, 20 Feb 2015 00:00:00 GMT + + As of Flow 0.4.0, you can put your Flow-specific syntax in special comments. If you use these special comments then you do not need to transform away Flow-specific syntax before running your code. While we strongly recommend that you write your code without the special comments, this feature will help people who can't fit a Flow-stripping transformation into their setup. This was one of our most requested features and hopefully it will enable even more people to use Flow!

    This feature introduces 3 special comments: /*:, /*::, and /*flow-include. Flow will read the code inside these special comments and treat the code as if the special comment tokens didn't exist. These special comments are valid JavaScript block comments, so your JavaScript engine will ignore the code inside the comments.

    The Flow Comment Syntax

    There are 3 special comments that Flow currently supports. You may recognize this syntax from Jarno Rantanen's excellent project, flotate.

    1. /*:

    /*: <your code> */ is interpreted by Flow as : <your code>

    function foo(x/*: number*/)/* : string */ { ... }

    is interpreted by Flow as

    function foo(x: number): string { ... }

    but appears to the JavaScript engine (ignoring comments) as

    function foo(x) { ... }

    2. /*::

    /*:: <your code> */ is interpreted by Flow as <your code>

    /*:: type foo = number; */

    is interpreted by Flow as

    type foo = number;

    but appears to the runtime (ignoring comments) as


    3. /*flow-include

    /*flow-include <your code> */ is interpreted by Flow as <your code>. It behaves the same as /*::

    /*flow-include type foo = number; */

    is interpreted by Flow as

    type foo = number;

    but appears to the runtime (ignoring comments) as


    Note: whitespace is ignored after the /* but before the :, ::, or flow-include. So you can write things like

    /* : number */
    /* :: type foo = number */
    /* flow-include type foo = number */

    Future Work

    We plan to update our Flow transformation to wrap Flow syntax with these special comments, rather than stripping it away completely. This will help people write Flow code but publish code that works with or without Flow.

    Thanks

    Special thanks to Jarno Rantanen for building flotate and supporting us merging his syntax upstream into Flow.

    ]]>
    +
    + + <![CDATA[Announcing Import Type]]> + https://flow.org/blog/2015/02/18/Import-Types + https://flow.org/blog/2015/02/18/Import-Types + Wed, 18 Feb 2015 00:00:00 GMT + + As of Flow 0.3.0, it's now possible to import types from another module. So, for example, if you're only importing a class for purposes of referencing it in a type annotation, you can now use the new import type syntax to do this.

    Motivation

    Has this ever happened to you:

    // @flow

    // Post-transformation lint error: Unused variable 'URI'
    import URI from "URI";

    // But if you delete the require you get a Flow error:
    // identifier URI - Unknown global name
    module.exports = function(x: URI): URI {
    return x;
    }

    Now you have an out! To solve this problem (and with an eye toward a near future with ES6 module syntax), we've added the new import type syntax. With import type, you can convey what you really mean here — that you want to import the type of the class and not really the class itself.

    Enter Import Type

    So instead of the above code, you can now write this:

    // @flow

    import type URI from 'URI';
    module.exports = function(x: URI): URI {
    return x;
    };

    If you have a module that exports multiple classes (like, say, a Crayon and a Marker class), you can import the type for each of them together or separately like this:

    // @flow

    import type {Crayon, Marker} from 'WritingUtensils';
    module.exports = function junkDrawer(x: Crayon, y: Marker): void {}

    Transformations

    Like type annotations and other Flow features, import type need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

    npm install react-tools@0.13.0-beta.2

    Anticipatory Q&A

    Wait, but what happens at runtime after I've added an import type declaration?

    Nothing! All import type declarations get stripped away just like other flow syntax.

    Can I use import type to pull in type aliases from another module, too?

    Not quite yet...but soon! There are a few other moving parts that we need to build first, but we're working on it.

    EDIT: Yes! As of Flow 0.10 you can use the export type MyType = ... ; syntax to compliment the import type syntax. Here's a trivial example:

    // @flow

    // MyTypes.js
    export type UserID = number;
    export type User = {
    id: UserID,
    firstName: string,
    lastName: string
    };
    // @flow

    // User.js
    import type {UserID, User} from "MyTypes";

    function getUserID(user: User): UserID {
    return user.id;
    }

    Note that we only support the explicit named-export statements for now (i.e. export type UserID = number;). In a future version we can add support for latent named-export statements (i.e. type UserID = number; export {UserID};) and default type exports (i.e. export default type MyType = ... ;)...but for now these forms aren't yet supported for type exports.

    ]]>
    +
    + + <![CDATA[Announcing Typecasts]]> + https://flow.org/blog/2015/02/18/Typecasts + https://flow.org/blog/2015/02/18/Typecasts + Wed, 18 Feb 2015 00:00:00 GMT + + As of version 0.3.0, Flow supports typecast expression.

    A typecast expression is a simple way to type-annotate any JavaScript expression. Here are some examples of typecasts:

    (1 + 1 : number);
    var a = { name: (null: ?string) };
    ([1, 'a', true]: Array<mixed>).map(fn);

    For any JavaScript expression <expr> and any Flow type <type>, you can write

    (<expr> : <type>)

    Note: the parentheses are necessary.

    How Typecasts Work

    To evaluate a typecast expression, Flow will first check that <expr> is a <type>.

    (1+1: number); // this is fine
    (1+1: string); // but this is is an error

    Second, Flow will infer that the typecast expression (<expr>: <type>) has the type <type>.

    [(0: ?number)]; // Flow will infer the type Array<?number>
    [0]; // Without the typecast, Flow infers the type Array<number>

    Safety

    Typecasts obey the same rules as other type annotations, so they provide the same safety guarantees. This means they are safe unless you explicitly use the any type to defeat Flow's typechecking. Here are examples of upcasting (which is allowed), downcasting (which is forbidden), and using any.

    class Base {}
    class Child extends Base {}
    var child: Child = new Child();

    // Upcast from Child to Base, a more general type: OK
    var base: Base = new Child();

    // Upcast from Child to Base, a more general type: OK
    (child: Base);

    // Downcast from Base to Child: unsafe, ERROR
    (base: Child);

    // Upcast base to any then downcast any to Child.
    // Unsafe downcasting from any is allowed: OK
    ((base: any): Child);

    More examples

    Typecasts are particularly useful to check assumptions and help Flow infer the types you intend. Here are some examples:

    (x: number) // Make Flow check that x is a number
    (0: ?number) // Tells Flow that this expression is actually nullable.
    (null: ?number) // Tells Flow that this expression is a nullable number.

    Transformations

    Like type annotations and other Flow features, typecasts need to be transformed away before the code can be run. The transforms will be available in react-tools 0.13.0 when it is published soon, but for now they're available in 0.13.0-beta.2, which you can install with

    npm install react-tools@0.13.0-beta.2
    ]]>
    +
    +
    +
    \ No newline at end of file diff --git a/cd3c4b260f85aac6f600f3c017046ef9.wasm b/cd3c4b260f85aac6f600f3c017046ef9.wasm new file mode 100644 index 0000000000000000000000000000000000000000..7879f1df2168ddc2ddbf5f2730a4d48994dd666e GIT binary patch literal 471543 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

    @HaF7Wcj&!5T2e&hA34L-Xb2E6*ERIw-PY$0p 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 literal 0 HcmV?d00001 diff --git a/en/docs/cli/annotate-exports/index.html b/en/docs/cli/annotate-exports/index.html new file mode 100644 index 00000000000..235e648eaf9 --- /dev/null +++ b/en/docs/cli/annotate-exports/index.html @@ -0,0 +1,53 @@ + + + + + +Flow Annotate-Exports | Flow + + + + + + + + + + + + + + +

    +

    Flow Annotate-Exports

    Upgrading to Types-First mode may require a substantial +number of type annotations at module boundaries. To help with the process of +upgrading large codebases, we are providing a codemod command, whose goal is to +fill in these missing annotations. This command is included in the Flow binary +in versions >= 0.125.

    Note: As of version 0.134, types-first is the default mode. If you are using a +version >=0.134, make sure you set types_first=false in your .flowconfig while +running this codemod.

    This command uses types that Flow infers, to fill in positions that would otherwise +raise signature-verification failures. It will include the necessary type import +statements, as long as the respective types are exported from their defining modules.

    It is designed for use on multiple files at once, rather than one file at a time. +For this reason it doesn't connect to an existing Flow server, but rather starts +a checking process of its own.

    As is typical with such mechanized approaches, it comes with a few caveats:

    1. It won’t be able to fill in every required type annotation. Some cases will +require manual effort.
    2. Inserted annotations may cause new flow errors, since it’s not always possible +to match inferred type with types that can be written as annotations.
    3. File formatting may be affected. If a code formatter (e.g. prettier) is used, +it is recommended that you run it after the codemod has finished running.

    How to apply the codemod

    A typical way to invoke this command is

    flow codemod annotate-exports \
    --write \
    --repeat \
    --log-level info \
    /path/to/folder \
    2> out.log

    This command will transform files under /path/to/folder. This does not need to +be the root directory (the one containing .flowconfig).

    It uses the following flags:

    • --write will update files that require annotations under /path/to/folder +in-place. Without this flag the resulting files will be printed on the command line.

    • --repeat ensures that the transformation will be applied until no more files +change. This mode is necessary here, because each new type the codemod adds may +require new locations to be annotated.

    • --log-level info outputs useful debugging information in the standard error stream. +This option might lead to verbose output, so we're redirecting the error output +to a log file out.log.

    Another convenient way to provide the input is by passing the flag

    --input-file file.txt

    where file.txt contains a specific list of files to be transformed.

    Codemod output

    After each iteration of the codemod, a summary will be printed on the CLI. This +summary includes statistical information about the number of annotations that were +added, and how many locations were skipped. It also prints counts for various kinds +of errors that were encountered. These can be matched to the errors printed in the +logs.

    A common error case is when a type A, defined in a file a.js, but not exported, +is inferred in file b.js. The codemod will skip adding this annotation and report +an error in the logs. The fix this case, you can export A in a.js. Note that +it is not necessary to manually import A in b.js. The codemod will do this +automatically.

    + + + + \ No newline at end of file diff --git a/en/docs/cli/coverage/index.html b/en/docs/cli/coverage/index.html new file mode 100644 index 00000000000..22b2a3fa565 --- /dev/null +++ b/en/docs/cli/coverage/index.html @@ -0,0 +1,60 @@ + + + + + +Flow Coverage | Flow + + + + + + + + + + + + + + +
    +

    Flow Coverage

    The coverage command provides a metric of the amount of checking that Flow has +performed on each part of your code. A program with high Flow coverage should +increase your confidence that Flow has detected any potential runtime errors.

    The determining factor for this is the presence of any in the +inferred type of each expression. An expression whose inferred type is any is +considered uncovered, otherwise it is considered covered.

    To see why this metric was chosen for determining Flow's effectiveness, consider +the example

    1const one: any = 1;2one();

    This code leads to a runtime type error, since we are attempting to perform a call +on a number. Flow, however, does not flag an error here, because we have annotated +variable one as any. Flow's checking is effectively turned off whenever any +is involved, so it will silently allow the call. The use of this unsafe type has +rendered the type checker ineffective, and the coverage metric is here to surface +this, by reporting all instances of one as uncovered.

    Design Space

    Which types should be "covered"?

    What was described above is a rather coarse grained way to determine coverage. One +could imagine a criterion that flags expressions as uncovered if any part of their +type includes any, for example Array<any>. While there is value in a metric like +this, the "uncovered" part of the type will typically be uncovered through various +operations on values of this type. For example, in the code

    1declare const arr: Array<any>;2arr.forEach(x => {});

    the parameter x will be flagged as uncovered. Also, in practice, a strict criterion +like this would be too noisy and rather expensive to compute on the fly.

    Union types

    An exception to this principle are union types: the type number | any is considered +uncovered, even though technically any is not the top-level constructor. +Unions merely encode an option among a set of other types. In that sense we are +conservatively viewing an expression as uncovered, when at least one possible type +of that expression causes limited checking. For example, in the code

    1let x: number | any = 1;2x = "a";

    Flow will let you assign anything to x, which reduces confidence in the use +of x as a number. Thus x is considered uncovered.

    The empty type

    An interesting type from a coverage perspective is the empty type. +This type roughly corresponds to dead code. As such checking around expressions with +type empty is more relaxed, but for a good reason: this code will not be executed at +runtime. Since it is a common practice to clean up such code, Flow coverage will +also report code whose type is inferred to be empty, but distinguishes it from +the case of any.

    Command Line Use

    To find out the coverage of a file foo.js with the following contents

    1function add(one: any, two: any): number {2  return one + two;3}4
    +5add(1, 2);

    you can issue the following command

    $ flow coverage file.js
    Covered: 50.00% (5 of 10 expressions)

    This output means that 5 out of the 10 nodes of this program were inferred to have type +any. To see exactly which parts are uncovered you can also pass one of the following +flags:

    • --color: This will print foo.js on the terminal with the uncovered locations in +red color. E.g. flow coverage --color file.js
    • --json: This will list out all location spans that are uncovered under +the tag "uncovered_locs". E.g. flow coverage --json file.js

    Finally, as an example of dead code, consider the code:

    1function f(x: 'a' | 'b') {2  if (x === 'a') {3    // ...4  } else if (x === 'b') {5    // ...6  } else {7    x;8  }9}

    The final else clause should never be reached, as we've already checked for both members of the union. +Because of this, x is inferred to have the type empty in that branch.

    In the colored version of this command, these parts appear in blue color, +and in the JSON version they are under the field "empty_locs".

    Use on multiple files

    If you want to check coverage of multiple files at once, Flow offers the +batch-coverage command:

    $ flow batch-coverage dir/

    will report coverage statistics for each file under dir/, as well as aggregate +results.

    Note that batch-coverage requires a non-lazy Flow server.

    + + + + \ No newline at end of file diff --git a/en/docs/cli/index.html b/en/docs/cli/index.html new file mode 100644 index 00000000000..1a21d757dc0 --- /dev/null +++ b/en/docs/cli/index.html @@ -0,0 +1,33 @@ + + + + + +Flow CLI | Flow + + + + + + + + + + + + + + +
    +

    Flow CLI

    The flow command line tool is made to be easy-to-use for simple cases.

    Using the command flow will type-check your current directory if the +.flowconfig file is present. A flow server will automatically be started if +needed.

    The CLI tool also provides several other options and commands that allow you to +control the server and build tools that integrate with Flow. For example, this +is how the Nuclide editor integrates with Flow to +provide autocompletion, type errors, etc. in its UI.

    To find out more about the CLI just type:

    flow --help

    This will give you information about everything that flow can do. Running this +command should print something like this:

    Usage: flow [COMMAND] [PROJECT_ROOT]

    Valid values for COMMAND:
    ast Print the AST
    autocomplete Queries autocompletion information
    batch-coverage Shows aggregate coverage information for a group of files or directories
    check Does a full Flow check and prints the results
    check-contents Run typechecker on contents from stdin
    config Read or write the .flowconfig file
    coverage Shows coverage information for a given file
    cycle Output .dot file for cycle containing the given file
    find-module Resolves a module reference to a file
    find-refs Gets the reference locations of a variable or property
    force-recheck Forces the server to recheck a given list of files
    get-def Gets the definition location of a variable or property
    graph Outputs dependency graphs of flow repositories
    init Initializes a directory to be used as a flow root directory
    ls Lists files visible to Flow
    lsp Acts as a server for the Language Server Protocol over stdin/stdout [experimental]
    print-signature Prints the type signature of a file as extracted in types-first mode
    server Runs a Flow server in the foreground
    start Starts a Flow server
    status (default) Shows current Flow errors by asking the Flow server
    stop Stops a Flow server
    type-at-pos Shows the type at a given file and position
    version Print version information

    Default values if unspecified:
    COMMAND status
    PROJECT_ROOT current folder

    Status command options:
    --color Display terminal output in color. never, always, auto (default: auto)
    --from Specify client (for use by editor plugins)
    --help This list of options
    --json Output results in JSON format
    --no-auto-start If the server is not running, do not start it; just exit
    --old-output-format Use old output format (absolute file names, line and column numbers)
    --one-line Escapes newlines so that each error prints on one line
    --quiet Suppresses the server-status information that would have been printed to stderr
    --retries Set the number of retries. (default: 3)
    --show-all-errors Print all errors (the default is to truncate after 50 errors)
    --strip-root Print paths without the root
    --temp-dir Directory in which to store temp files (default: /tmp/flow/)
    --timeout Maximum time to wait, in seconds
    --version Print version number and exit

    Example with custom project root:

    mydir
    ├── frontend
    │ ├── .flowconfig
    │ └── app.js
    └── backend
    flow check frontend

    You can then, further dig into particular COMMANDs by adding the --help flag.

    So, for example, if you want to know more about how the autocomplete works, you +can use this command:

    flow autocomplete --help
    + + + + \ No newline at end of file diff --git a/en/docs/config/declarations/index.html b/en/docs/config/declarations/index.html new file mode 100644 index 00000000000..5827b72d943 --- /dev/null +++ b/en/docs/config/declarations/index.html @@ -0,0 +1,41 @@ + + + + + +.flowconfig [declarations] | Flow + + + + + + + + + + + + + + +
    +

    .flowconfig [declarations]

    Often third-party libraries have broken type definitions or have type +definitions only compatible with a certain version of Flow. In those cases it +may be useful to use type information from the third-party libraries without +typechecking their contents.

    The [declarations] section in a .flowconfig file tells Flow to parse files +matching the specified regular expressions in declaration mode. In declaration +mode the code is not typechecked. However, the signatures of functions, classes, +etc are extracted and used by the typechecker when checking other code.

    Conceptually one can think of declaration mode as if Flow still typechecks the +files but acts as if there is a $FlowFixMe comment on every line.

    See also [untyped] for not typechecking files, and instead using any for all contents.

    Things to keep in mind:

    1. Declaration mode should only be used for existing third-party code. You +should never use this for code under your control.
    2. These are OCaml regular expressions.
    3. These regular expressions match against absolute paths. They probably should +start with .*

    An example [declarations] section might look like:

    [declarations]
    .*/third_party/.*
    .*/src/\(foo\|bar\)/.*
    .*\.decl\.js

    This [declarations] section will parse in declaration mode:

    1. Any file or directory under a directory named third_party
    2. Any file or directory under .*/src/foo or under .*/src/bar
    3. Any file that ends with the extension .decl.js

    You may use the <PROJECT_ROOT> placeholder in your regular expressions. +At runtime, Flow will treat the placeholder as if it were the absolute +path to the project's root directory. This is useful for writing regular +expressions that are relative rather than absolute.

    For example, you can write:

    [declarations]
    <PROJECT_ROOT>/third_party/.*

    Which would parse in declaration mode any file or directory under the directory +named third_party/ within the project root. However, unlike the previous +example's .*/third_party/.*, it would NOT parse files or directories under +directories named third_party/, like src/third_party/.

    + + + + \ No newline at end of file diff --git a/en/docs/config/ignore/index.html b/en/docs/config/ignore/index.html new file mode 100644 index 00000000000..b9715776e03 --- /dev/null +++ b/en/docs/config/ignore/index.html @@ -0,0 +1,36 @@ + + + + + +.flowconfig [ignore] | Flow + + + + + + + + + + + + + + +
    +

    .flowconfig [ignore]

    The [ignore] section in a .flowconfig file tells Flow to ignore files +matching the specified regular expressions when type checking your code. By +default, nothing is ignored.

    Things to keep in mind:

    1. These are OCaml regular expressions.
    2. These regular expressions match against absolute paths. They probably should +start with .*
    3. Ignores are processed AFTER includes. If you both include and ignore a file +it will be ignored.

    An example [ignore] section might look like:

    [ignore]
    .*/__tests__/.*
    .*/src/\(foo\|bar\)/.*
    .*\.ignore\.js

    This [ignore] section will ignore:

    1. Any file or directory under a directory named __tests__
    2. Any file or directory under .*/src/foo or under .*/src/bar
    3. Any file that ends with the extension .ignore.js

    You may use the <PROJECT_ROOT> placeholder in your regular expressions. +At runtime, Flow will treat the placeholder as if it were the absolute +path to the project's root directory. This is useful for writing regular +expressions that are relative rather than absolute.

    For example, you can write:

    [ignore]
    <PROJECT_ROOT>/__tests__/.*

    Which would ignore any file or directory under the directory named __tests__/ +within the project root. However, unlike the previous example's +.*/__tests__/.*, it would NOT ignore files or directories under other +directories named __tests__/, like src/__tests__/.

    Exclusions

    Sometimes you may want to ignore all files inside a directory with the exception of a few. An optional prefix "!" which negates the pattern may help. With this, any matching file excluded by a previous pattern will become included again.

    [ignore]
    <PROJECT_ROOT>/node_modules/.*
    !<PROJECT_ROOT>/node_modules/not-ignored-package-A/.*
    !<PROJECT_ROOT>/node_modules/not-ignored-package-B/.*
    + + + + \ No newline at end of file diff --git a/en/docs/config/include/index.html b/en/docs/config/include/index.html new file mode 100644 index 00000000000..a38af2f706e --- /dev/null +++ b/en/docs/config/include/index.html @@ -0,0 +1,33 @@ + + + + + +.flowconfig [include] | Flow + + + + + + + + + + + + + + +
    +

    .flowconfig [include]

    The [include] section in a .flowconfig file tells Flow to include the +specified files or directories. Including a directory recursively includes all +the files under that directory. Symlinks are followed as long as they lead to a +file or directory that is also included. Each line in the include section is a +path to include. These paths can be relative to the root directory or absolute, +and support both single and double star wildcards.

    The project root directory (where your .flowconfig lives) is automatically +included.

    For example, if /path/to/root/.flowconfig contains the following [include] +section:

    [include]
    ../externalFile.js
    ../externalDir/
    ../otherProject/*.js
    ../otherProject/**/coolStuff/

    Then when Flow checks the project in /path/to/root, it will read and watch

    1. /path/to/root/ (automatically included)
    2. /path/to/externalFile.js
    3. /path/to/externalDir/
    4. Any file in /path/to/otherProject/ that ends in .js
    5. Any directory under /path/to/otherProject named coolStuff/
    + + + + \ No newline at end of file diff --git a/en/docs/config/index.html b/en/docs/config/index.html new file mode 100644 index 00000000000..a0aa7fb870b --- /dev/null +++ b/en/docs/config/index.html @@ -0,0 +1,38 @@ + + + + + +.flowconfig | Flow + + + + + + + + + + + + + + +
    +

    .flowconfig

    Every Flow project contains a .flowconfig file. You can configure Flow by +modifying .flowconfig. New projects or projects that are starting to use Flow +can generate a default .flowconfig by running flow init.

    .flowconfig format

    The .flowconfig uses a custom format that vaguely resembles INI files.

    The .flowconfig consists of different sections:

    Comments

    Lines beginning with zero or more spaces followed by an # or ; or 💩 are +ignored. For example:

    # This is a comment
    # This is a comment
    ; This is a comment
    ; This is a comment
    💩 This is a comment
    💩 This is a comment

    Where to put the .flowconfig

    The location of the .flowconfig is significant. Flow treats the directory that +contains the .flowconfig as the project root. By default Flow includes all +the source code under the project root. The paths in the +[include] section are relative to the project root. Some other +configuration also lets you reference the project root via the macro +<PROJECT_ROOT>.

    Most people put the .flowconfig in the root of their project (i.e. next to the +package.json). Some people put all their code in a src/ directory and +therefore put the .flowconfig at src/.flowconfig.

    Example

    Say you have the following directory structure, with your .flowconfig in +mydir:

    otherdir
    └── src
    ├── othercode.js
    mydir
    ├── .flowconfig
    ├── build
    │ ├── first.js
    │ └── shim.js
    ├── lib
    │ └── flow
    ├── node_modules
    │ └── es6-shim
    └── src
    ├── first.js
    └── shim.js

    Here is an example of how you could use the .flowconfig directives.

    [include]
    ../otherdir/src

    [ignore]
    .*/build/.*

    [libs]
    ./lib

    Now flow will include a directory outside the .flowconfig path in its +check, ignore the build directory and use the declarations in lib.

    + + + + \ No newline at end of file diff --git a/en/docs/config/libs/index.html b/en/docs/config/libs/index.html new file mode 100644 index 00000000000..822d7eb3b96 --- /dev/null +++ b/en/docs/config/libs/index.html @@ -0,0 +1,35 @@ + + + + + +.flowconfig [libs] | Flow + + + + + + + + + + + + + + +
    +

    .flowconfig [libs]

    The [libs] section in a .flowconfig file tells Flow to include the +specified library definitions when type +checking your code. Multiple libraries can be specified. By default, the +flow-typed folder in your project root directory is included as a library +directory. This default allows you to use +flow-typed to install library +definitions without additional configuration.

    Each line in the [libs] section is a path to the library file or directory +which you would like to include. These paths can be relative to the project +root directory or absolute. Including a directory recursively includes all the +files under that directory as library files.

    + + + + \ No newline at end of file diff --git a/en/docs/config/lints/index.html b/en/docs/config/lints/index.html new file mode 100644 index 00000000000..199fafebc26 --- /dev/null +++ b/en/docs/config/lints/index.html @@ -0,0 +1,27 @@ + + + + + +.flowconfig [lints] | Flow + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/en/docs/config/options/index.html b/en/docs/config/options/index.html new file mode 100644 index 00000000000..a604059b3b2 --- /dev/null +++ b/en/docs/config/options/index.html @@ -0,0 +1,130 @@ + + + + + +.flowconfig [options] | Flow + + + + + + + + + + + + + + +
    +

    .flowconfig [options]

    The [options] section in a .flowconfig file can contain several key-value +pairs of the form:

    [options]
    keyA=valueA
    keyB=valueB

    Any options that are omitted will use their default values. Some options +can be overridden with command line flags.

    Available options

    all

    Type: boolean

    Set this to true to check all files, not just those with @flow.

    The default value for all is false.

    autoimports 0.143.0

    Type: boolean

    When enabled, IDE autocomplete suggests the exports of other files, and the necessary import statements are automatically inserted. A "quick fix" code action is also provided on undefined variables that suggests matching imports.

    The default value for autoimports is true as of Flow v0.155.0.

    babel_loose_array_spread

    Type: boolean

    Set this to true to check that array spread syntax is only used with arrays, not arbitrary iterables (such as Map or Set). This is useful if you transform your code with Babel in loose mode which makes this non-spec-compliant assumption at runtime.

    For example:

    const set = new Set();
    const values = [...set]; // Valid ES2015, but Set is not compatible with $ReadOnlyArray in Babel loose mode

    The default value for babel_loose_array_spread is false.

    emoji

    Type: boolean

    Set this to true to add emoji to the status messages that Flow +outputs when it's busy checking your project.

    The default value for emoji is false.

    enums

    Type: boolean

    Set this to true to enable Flow Enums. +Additional steps are required beyond just enabling the .flowconfig option.

    The default value for enums is false.

    exact_by_default

    Type: boolean

    When set to true (the default as of version 0.202), Flow interprets object types as exact by default:

    1type O1 = {foo: number} // exact2type O2 = {| foo: number |} // exact3type O3 = {foo: number, ...} // inexact

    When this flag is false, Flow has the following behavior:

    1type O1 = {foo: number} // inexact2type O2 = {| foo: number |} // exact3type O3 = {foo: number, ...} // inexact
    • From inception to Flow version 0.199, the default value of the flag was false.
    • In versions 0.200 and 0.201, the flag was required to be explicitly set to either true or false.
    • From version 0.202, the default value is true.

    You can read more about this change in our blog post about making exact by object types by default, by default.

    experimental.const_params

    Type: boolean

    Setting this to true makes Flow treat all function parameters as const +bindings. Reassigning a param is an error which lets Flow be less conservative +with refinements.

    The default value is false.

    include_warnings

    Type: boolean

    Setting this to true makes Flow commands include warnings in the error output. +Warnings are hidden by default in the CLI to avoid console spew. (An IDE is a +much better interface to show warnings.)

    The default value is false.

    lazy_mode

    Type: boolean

    For more on lazy modes, see the lazy modes docs.

    Setting lazy_mode in the .flowconfig will cause new Flow servers for that +root to use lazy mode (or no lazy mode if set to false). This option can +be overridden from the CLI using the --lazy-mode flag.

    The default value is false.

    max_header_tokens

    Type: integer

    Flow tries to avoid parsing non-flow files. This means Flow needs to +start lexing a file to see if it has @flow or @noflow in it. This option +lets you configure how much of the file Flow lexes before it decides there is +no relevant docblock.

    • Neither @flow nor @noflow - Parse this file with Flow syntax disallowed and do not typecheck it.
    • @flow - Parse this file with Flow syntax allowed and typecheck it.
    • @noflow - Parse this file with Flow syntax allowed and do not typecheck it. This is meant as an escape hatch to suppress Flow in a file without having to delete all the Flow-specific syntax.

    The default value of max_header_tokens is 10.

    module.file_ext

    By default, Flow will look for files with the extensions .js, .jsx, .mjs, +.cjs and .json. You can override this behavior with this option.

    For example, if you do:

    [options]
    module.file_ext=.foo
    module.file_ext=.bar

    Then Flow will instead look for the file extensions .foo and .bar.

    Note: you can specify module.file_ext multiple times

    module.ignore_non_literal_requires

    Type: boolean

    Set this to true and Flow will no longer complain when you use require() +with something other than a string literal.

    The default value is false.

    module.name_mapper

    Type: regex -> string

    Specify a regular expression to match against module names, and a replacement +pattern, separated by a ->.

    For example:

    module.name_mapper='^image![a-zA-Z0-9$_]+$' -> 'ImageStub'

    This makes Flow treat require('image!foo.jpg') as if it were +require('ImageStub').

    These are OCaml regular expressions. +Use \( and \) (slashes required!) to create a capturing group, which you +can refer to in the replacement pattern as \1 (up to \9).

    Note: you can specify module.name_mapper multiple times

    module.name_mapper.extension

    Type: string -> string

    Specify a file extension to match, and a replacement module name, separated by +a ->.

    Note: This is just shorthand for +module.name_mapper='^\(.*\)\.EXTENSION$' -> 'TEMPLATE')

    For example:

    module.name_mapper.extension='css' -> '<PROJECT_ROOT>/CSSFlowStub.js.flow'

    Makes Flow treat require('foo.css') as if it were +require(PROJECT_ROOT + '/CSSFlowStub').

    Note: You can specify module.name_mapper.extension multiple times for +different extensions.

    module.system

    Type: node | haste

    The module system to use to resolve import and require. +Haste mode is used by Meta.

    The default is node.

    module.system.node.main_field

    Type: string

    Flow reads package.json files for the "name" and "main" fields to figure +out the name of the module and which file should be used to provide that +module.

    So if Flow sees this in the .flowconfig:

    [options]
    module.system.node.main_field=foo
    module.system.node.main_field=bar
    module.system.node.main_field=baz

    and then it comes across a package.json with

    {
    "name": "kittens",
    "main": "main.js",
    "bar": "bar.js",
    "baz": "baz.js"
    }

    Flow will use bar.js to provide the "kittens" module.

    If this option is unspecified, Flow will always use the "main" field.

    See this GitHub issue for the original motivation

    module.system.node.resolve_dirname

    Type: string

    By default, Flow will look in directories named node_modules for node +modules. You can configure this behavior with this option.

    For example, if you do:

    [options]
    module.system.node.resolve_dirname=node_modules
    module.system.node.resolve_dirname=custom_node_modules

    Then Flow will look in directories named node_modules or +custom_node_modules.

    Note: you can specify module.system.node.resolve_dirname multiple times

    module.use_strict

    Type: boolean

    Set this to true if you use a transpiler that adds "use strict"; to the top +of every module.

    The default value is false.

    munge_underscores

    Type: boolean

    Set this to true to have Flow treat underscore-prefixed class properties and +methods as private. This should be used in conjunction with jstransform's +ES6 class transform, +which enforces the same privacy at runtime.

    The default value is false.

    no_flowlib

    Type: boolean

    Flow has builtin library definitions. Setting this to true will tell Flow to +ignore the builtin library definitions.

    The default value is false.

    react.runtime 0.123.0

    Type: automatic | classic

    Set this to automatic if you are using React's automatic runtime in @babel/plugin-transform-react-jsx. +Otherwise, use classic. See the babel documentation +for details about the transform.

    The default value is classic.

    server.max_workers

    Type: integer

    The maximum number of workers the Flow server can start. By default, the server +will use all available cores.

    sharedmemory.hash_table_pow

    Type: unsigned integer

    The 3 largest parts of the shared memory are a dependency table, a hash table, +and a heap. While the heap grows and shrinks, the two tables are allocated in +full. This option lets you change the size of the hash table.

    Setting this option to X means the table will support up to 2^X elements, +which is 16*2^X bytes.

    By default, this is set to 19 (Table size is 2^19, which is 8 megabytes)

    sharedmemory.heap_size

    Type: unsigned integer

    This option configures the maximum possible size for the shared heap. You should +most likely not need to configure this, as it doesn't really affect how much +RSS Flow uses. However, if you are working on a massive codebase you might see +the following error after init: "Heap init size is too close to max heap size; +GC will never get triggered!" In this case, you may need to increase the size +of the heap.

    By default, this is set to 26843545600 (25 * 2^30 bytes, which is 25GiB)

    suppress_type

    Type: string

    This option lets you alias any with a given string. This is useful for +explaining why you're using any. For example, let's say you sometimes want +to sometimes use any to suppress an error and sometimes to mark a TODO. +Your code might look like

    const myString: any = 1 + 1;
    const myBoolean: any = 1 + 1;

    If you add the following to your configuration:

    [options]
    suppress_type=$FlowFixMe
    suppress_type=$FlowTODO

    You can update your code to the more readable:

    const myString: $FlowFixMe = 1 + 1;
    const myBoolean: $FlowTODO = 1 + 1;

    Note: You can specify suppress_type multiple times.

    traces

    Type: integer

    Enables traces on all error output (showing additional details about the flow +of types through the system), to the depth specified. This can be very +expensive, so is disabled by default.

    use_mixed_in_catch_variables 0.201

    Type: boolean

    Changes the default type of catch variables from any to mixed. E.g.

    1try {2} catch (e) {3}

    in the above example, if the option is true, catch will be typed as mixed as it lacks an explicit type annotation.

    Deprecated options

    The following options no longer exist in the latest version of Flow:

    esproposal.class_instance_fields 0.148

    Type: enable | ignore | warn

    Set this to warn to indicate that Flow should give a warning on use of +instance class fields +per the pending spec.

    You may also set this to ignore to indicate that Flow should simply ignore +the syntax (i.e. Flow will not use this syntax to indicate the presence of a +property on instances of the class).

    The default value of this option is enable, which allows use of this proposed +syntax.

    esproposal.class_static_fields 0.148

    Type: enable | ignore | warn

    Set this to warn to indicate that Flow should give a warning on use of static +class fields +per the pending spec.

    You may also set this to ignore to indicate that Flow should simply ignore +the syntax (i.e. Flow will not use this syntax to indicate the presence of a +static property on the class).

    The default value of this option is enable, which allows use of this proposed +syntax.

    esproposal.decorators 0.148

    Type: ignore | warn

    Set this to ignore to indicate that Flow should ignore decorators.

    The default value of this option is warn, which gives a warning on use since +this proposal is still very early-stage.

    esproposal.export_star_as 0.148

    Type: enable | ignore | warn

    Set this to enable to indicate that Flow should support the export * as +syntax from leebyron's proposal.

    You may also set this to ignore to indicate that Flow should simply ignore +the syntax. The default value of this option is warn, which gives a warning +on use since this proposal is still very early-stage.

    esproposal.optional_chaining 0.148

    Type: enable | ignore | warn

    Set this to enable to indicate that Flow should support the use of +optional chaining +per the pending spec.

    You may also set this to ignore to indicate that Flow should simply ignore +the syntax.

    The default value of this option is warn, which gives a warning on +use since this proposal is still very early-stage.

    esproposal.nullish_coalescing 0.148

    Type: enable | ignore | warn

    Set this to enable to indicate that Flow should support the use of +nullish coalescing +per the pending spec.

    You may also set this to ignore to indicate that Flow should simply ignore +the syntax.

    The default value of this option is warn, which gives a warning on +use since this proposal is still very early-stage.

    inference_mode 0.184.0 0.202.0

    Type: classic | constrain-writes

    Setting this to constrain-writes will enable the constrained-writes inference mode.

    For more info, see the variable declaration docs.

    The default value is classic

    log.file

    Type: string

    The path to the log file (defaults to /tmp/flow/<escaped root path>.log).

    sharedmemory.dirs

    Type: string

    This affects Linux only.

    Flow's shared memory lives in a memory mapped file. On more modern versions of +Linux (3.17+), there is a system call memfd_create which allows Flow to create +the file anonymously and only in memory. However, in older kernels, Flow needs +to create a file on the file system. Ideally this file lives on a memory-backed +tmpfs. This option lets you decide where that file is created.

    By default this option is set to /dev/shm and /tmp

    Note: You can specify sharedmemory.dirs multiple times.

    sharedmemory.minimum_available

    Type: unsigned integer

    This affects Linux only.

    As explained in the sharedmemory.dirs option's description, Flow needs to +create a file on a filesystem for older kernels. sharedmemory.dirs specifies +a list of locations where the shared memory file can be created. For each +location, Flow will check to make sure the filesystem has enough space for the +shared memory file. If Flow will likely run out of space, it skips that location +and tries the next. This option lets you configure the minimum amount of space +needed on a filesystem for shared memory.

    By default it is 536870912 (2^29 bytes, which is half a gigabyte).

    strip_root 0.48

    Type: boolean

    Obsolete. Set this to true to always strip the root directory from file paths +in error messages when using --json, --from emacs, and --from vim. +Do not use this option. Instead, pass the command line flag --strip-root.

    By default this is false.

    suppress_comment 0.126

    Type: regex

    Defines a magical comment that suppresses any Flow errors on the following +line. For example:

    suppress_comment= \\(.\\|\n\\)*\\$FlowFixMe

    will match a comment like this:

    // $FlowFixMe: suppressing this error until we can refactor
    var x : string = 123;

    and suppress the error. If there is no error on the next line (the suppression +is unnecessary), an "Unused suppression" warning will be shown instead.

    If no suppression comments are specified in your config, Flow will apply one +default: // $FlowFixMe.

    Note: You can specify suppress_comment multiple times. If you do define +any suppress_comments, the built-in $FlowFixMe suppression will be erased +in favor of the regexps you specify. If you wish to use $FlowFixMe with +some additional custom suppression comments, you must manually specify +\\(.\\|\n\\)*\\$FlowFixMe in your custom list of suppressions.

    Note: In version v0.127.0, the option to specify the suppression comment +syntax was removed. $FlowFixMe, $FlowIssue, $FlowExpectedError, +and $FlowIgnore became the only standard suppressions.

    temp_dir

    Type: string

    Tell Flow which directory to use as a temp directory. Can be overridden with the +command line flag --temp-dir.

    The default value is /tmp/flow.

    types_first 0.125.0 0.142

    Type: boolean

    For more on types-first mode, see the types-first docs.

    Flow builds intermediate artifacts to represent signatures of modules as they are +checked. If this option is set to false, then these artifacts are built using +inferred type information. If this option is set to true, then they are built +using type annotations at module boundaries.

    The default value for types_first is true (as of version 0.134).

    well_formed_exports 0.125.0 0.142

    Type: boolean

    Enforce the following restrictions on file exports:

    • Statements manipulating module.exports and the exports alias may only appear +as top-level statements.
    • Parts of the source that are visible from a file's exports need to be annotated +unless their type can be trivially inferred (e.g. the exported expression is a +numeric literal). This is a requirement for types-first mode to function properly. +Failure to properly annotate exports raise signature-verification-failures.

    This option is set to true by default, since it is implied by types_first, +but the option is useful on its own when upgrading a project from classic mode to +types-first mode.

    well_formed_exports.includes 0.128.0 0.142

    Type: string

    Limit the scope of the well_formed_exports requirement to a specific directory +of this project. For example

    well_formed_exports=true
    well_formed_exports.includes=<PROJECT_ROOT>/dirA
    well_formed_exports.includes=<PROJECT_ROOT>/dirB

    will only report export related errors in files under dirA and dirB. This option +requires well_formed_exports to be set to true.

    The purpose of this option is to help prepare a codebase for Flow types-first mode.

    Between versions v0.125.0 and v0.127.0, this option was named well_formed_exports.whitelist.

    + + + + \ No newline at end of file diff --git a/en/docs/config/untyped/index.html b/en/docs/config/untyped/index.html new file mode 100644 index 00000000000..2dca9548b0c --- /dev/null +++ b/en/docs/config/untyped/index.html @@ -0,0 +1,39 @@ + + + + + +.flowconfig [untyped] | Flow + + + + + + + + + + + + + + +
    +

    .flowconfig [untyped]

    The [untyped] section in a .flowconfig file tells Flow to not typecheck files +matching the specified regular expressions and instead throw away types and treat modules as any.

    This is different from the [ignore] config section that causes matching files to be ignored by the module resolver, +which inherently makes them un-typechecked, and also unresolvable by import or require. +When ignored, [libs] must then be specified for each import using flow-typed, which may not always be desired.

    It is also different from the [declarations] section. +This also does not typecheck the file contents, but [declarations] does extract and use the signatures of functions, classes, etc, when checking other code.

    [untyped] instead causes a file to be ignored by the typechecker as if it had @noflow in it, +resolve modules as any type, but allow them to NOT be ignored by the module resolver. +Any matching file is skipped by Flow (not even parsed, like other @noflow files!), but can still be require()'d.

    Things to keep in mind:

    1. These are OCaml regular expressions.
    2. These regular expressions match against absolute paths. They probably should +start with .*

    An example [untyped] section might look like:

    [untyped]
    .*/third_party/.*
    .*/src/\(foo\|bar\)/.*
    .*\.untyped\.js

    This [untyped] section will parse:

    1. Any file or directory under a directory named third_party
    2. Any file or directory under .*/src/foo or under .*/src/bar
    3. Any file that ends with the extension .untyped.js

    You may use the <PROJECT_ROOT> placeholder in your regular expressions. +At runtime, Flow will treat the placeholder as if it were the absolute path +to the project's root directory. This is useful for writing regular +expressions that are relative rather than absolute.

    For example, you can write:

    [untyped]
    <PROJECT_ROOT>/third_party/.*

    Which would parse in declaration mode any file or directory under the directory +named third_party/ within the project root. However, unlike the previous +example's .*/third_party/.*, it would NOT parse files or directories under +directories named third_party/, like src/third_party/.

    + + + + \ No newline at end of file diff --git a/en/docs/config/version/index.html b/en/docs/config/version/index.html new file mode 100644 index 00000000000..6831e2a28aa --- /dev/null +++ b/en/docs/config/version/index.html @@ -0,0 +1,34 @@ + + + + + +.flowconfig [version] | Flow + + + + + + + + + + + + + + +
    +

    .flowconfig [version]

    You can specify in the .flowconfig which version of Flow you expect to use. +You do this with the [version] section. If this section is omitted or left +blank, then any version is allowed. If a version is specified and not matched, +then Flow will immediately error and exit.

    So if you have the following in your .flowconfig:

    [version]
    0.22.0

    and you try to use Flow v0.21.0, then Flow will immediately error with the +message

    "Wrong version of Flow. The config specifies version 0.22.0 but this is version +0.21.0"

    So far, we support the following ways to specify supported versions

    • Explicit versions, (e.g. 0.22.0, which only matches 0.22.0).
    • Intersection ranges, which are ANDed together, (e.g. >=0.13.0 <0.14.0, +which matches 0.13.0 and 0.13.5 but not 0.14.0).
    • Caret ranges, which allow changes that do not modify the left-most non-zero +digit (e.g. ^0.13.0 expands into >=0.13.0 <0.14.0, and ^0.13.1 expands +into >=0.13.1 <0.14.0, whereas ^1.2.3 expands into >=1.2.3 <2.0.0).
    + + + + \ No newline at end of file diff --git a/en/docs/declarations/index.html b/en/docs/declarations/index.html new file mode 100644 index 00000000000..04da052a869 --- /dev/null +++ b/en/docs/declarations/index.html @@ -0,0 +1,48 @@ + + + + + +Declaration Files | Flow + + + + + + + + + + + + + + +
    +

    Declaration Files

    What's a Declaration File?

    Let's look at a more general, and sometimes more convenient way to +declare types for modules: .flow files.

    There are two possible use cases, depending on whether an implementation file exists +or not.

    In the first case, the exported types of a module are declared in a declaration +file <FILENAME>.flow, that is located in the same directory as the corresponding implementation +file <FILENAME>. The declaration file completely shadows the colocated +implementation. In other words, Flow will completely ignore <FILENAME> and just +read <FILENAME>.flow instead.

    In the second case, the implementation file is missing entirely. <FILENAME>.flow +is treated as if it is named <FILENAME>.

    Note that the .flow extension applies both to .js files as well as .json +ones. The corresponding declaration files have extensions .js.flow and .json.flow, +respectively.

    Now let's see an example of the first case documented above. Suppose we have the +following code in a file src/LookBeforeYouLeap.js:

    import { isLeapYear } from "./Misc";
    if (isLeapYear("2020")) console.log("Yay!");

    and suppose that src/Misc.js has an incompatible implementation of isLeapYear:

    1export function isLeapYear(year: number): boolean {2  return year % 4 == 0; // yeah, this is approximate3}

    If we now create a declaration file src/Misc.js.flow, the declarations in it +will be used instead of the code in src/Misc.js. Let's say we have the +following declarations in src/Misc.js.flow.

    NOTE: The syntax for declarations in a declaration file is the same as we've seen in +Creating Library Definitions section.

    1declare export function isLeapYear(year: string): boolean;

    What do you think will happen?

    Right, the isLeapYear call in src/LookBeforeYouLeap.js will typecheck, since +the year parameter expects a string in the declaration file.

    As this example shows, declaration files must be written with care: it is up +to the programmer to ensure they are correct, otherwise they may hide type +errors.

    Inlining declarations in regular code

    Sometimes it is useful to make declarations inline, as part of the source of +an implementation file.

    In the following example, say you want to finish writing +the function fooList without bothering to mock up its dependencies first: a +function foo that takes a number and returns a string, and a class +List that has a map method. You can do this by including declarations for +List and foo:

    1declare class List<T> {2  map<U>(f: (x: T) => U): List<U>;3}4declare function foo(n: number): string;5
    +6function fooList(ns: List<number>): List<string> {7  return ns.map(foo);8}

    Just don't forget to replace the declarations with proper implementations.

    + + + + \ No newline at end of file diff --git a/en/docs/editors/emacs/index.html b/en/docs/editors/emacs/index.html new file mode 100644 index 00000000000..fe54a3ada20 --- /dev/null +++ b/en/docs/editors/emacs/index.html @@ -0,0 +1,26 @@ + + + + + +Emacs | Flow + + + + + + + + + + + + + + +
    +

    Emacs

    flow-for-emacs

    You can add support for Flow in Emacs by using flow-for-emacs

    Requirements

    • Requires Flow to be installed and available on your path.
    • Requires projects containing JavaScript files to be initialised with flow init.
    • Requires JavaScript files to be marked with / @flow / at the top.

    Installation

    cd ~/.emacs.d/
    git clone https://github.com/flowtype/flow-for-emacs.git
    echo -e "\n(load-file \"~/.emacs.d/flow-for-emacs/flow.el\")" >> ~/.emacs
    + + + + \ No newline at end of file diff --git a/en/docs/editors/index.html b/en/docs/editors/index.html new file mode 100644 index 00000000000..5e97db175f8 --- /dev/null +++ b/en/docs/editors/index.html @@ -0,0 +1,26 @@ + + + + + +Editors | Flow + + + + + + + + + + + + + + +
    +

    Editors

    You can benefit from having Flow run as you develop by integrating into your editor.

    Editor plugins are provided and maintained by the community. If you have trouble configuring or using a specific plugin for your IDE, please visit the project's repo or search for a community provided answer.

    + + + + \ No newline at end of file diff --git a/en/docs/editors/sublime-text/index.html b/en/docs/editors/sublime-text/index.html new file mode 100644 index 00000000000..05e554b3e23 --- /dev/null +++ b/en/docs/editors/sublime-text/index.html @@ -0,0 +1,26 @@ + + + + + +Sublime Text | Flow + + + + + + + + + + + + + + +
    +

    Sublime Text

    Flow For Sublime Text 2 and 3

    Sublime Text can be integrated with Flow by using Package Control

    • Install the Package Control plugin if you don't have it
    • Press Ctrl+Shift+P to bring up the Command Palette (or use Tools > Command Palette menu)
    • Select Package Control: Install Package
    • Type 'Flow' to find 'Flow for Sublime Text 2 and 3'
    • Select 'Flow for Sublime Text 2 and 3' to install

    SublimeLinter-flow

    You may also wish to install a popular SublimeLinter plugin for Flow like SublimeLinter-flow.

    + + + + \ No newline at end of file diff --git a/en/docs/editors/vim/index.html b/en/docs/editors/vim/index.html new file mode 100644 index 00000000000..7a88c8c8e4e --- /dev/null +++ b/en/docs/editors/vim/index.html @@ -0,0 +1,26 @@ + + + + + +Vim | Flow + + + + + + + + + + + + + + +
    +

    Vim

    Flow's editor integration is primarily via the Language Server Protocol. There are many vim LSP clients to choose from, such as ALE.

    ALE

    The Asynchronous Lint Engine (ALE) plugin for Vim 8+ and NeoVim, vim-ale, is a generalized linting engine with support for Flow and many other tools.

    Installation

    Follow the instructions in the ALE README.

    Configure ALE to use the flow-language-server linter for JavaScript files:

    " In ~/.vim/ftplugin/javascript.vim, or somewhere similar.

    " Enables only Flow for JavaScript. See :ALEInfo for a list of other available
    " linters. NOTE: the `flow` linter uses an old API; prefer `flow-language-server`.
    let b:ale_linters = ['flow-language-server']

    " Or in ~/.vim/vimrc:
    let g:ale_linters = {
    \ 'javascript': ['flow-language-server'],
    \}

    coc.nvim-neovim

    Coc is an intellisense engine for vim8 & neovim.

    Setup

    set nocompatible
    filetype off

    " install coc.nvim using Plug or preffered plugin manager
    call plug#begin('~/.vim/plugged')
    Plug 'neoclide/coc.nvim', {'branch': 'release'}
    call plug#end()

    filetype plugin indent on

    " ======= coc settings
    set updatetime=300
    set shortmess+=c

    " Use leader T to show documentation in preview window
    nnoremap <leader>t :call <SID>show_documentation()<CR>


    function! s:show_documentation()
    if (index(['vim','help'], &filetype) >= 0)
    execute 'h '.expand('&lt;cword&gt;')
    else
    call CocAction('doHover')
    endif
    endfunction

    " instead of having ~/.vim/coc-settings.json
    let s:LSP_CONFIG = {
    \ 'flow': {
    \ 'command': exepath('flow'),
    \ 'args': ['lsp'],
    \ 'filetypes': ['javascript', 'javascriptreact'],
    \ 'initializationOptions': {},
    \ 'requireRootPattern': 1,
    \ 'settings': {},
    \ 'rootPatterns': ['.flowconfig']
    \ }
    \}

    let s:languageservers = {}
    for [lsp, config] in items(s:LSP_CONFIG)
    let s:not_empty_cmd = !empty(get(config, 'command'))
    if s:not_empty_cmd | let s:languageservers[lsp] = config | endif
    endfor

    if !empty(s:languageservers)
    call coc#config('languageserver', s:languageservers)
    endif

    LanguageClient-neovim

    Another way to add support for Flow in Vim is to use LanguageClient-neovim.

    • Suports vim 8 and neovim
    • Adds completions to omnifunc
    • Checks JavaScript files for type errors on save
    • Look up types under cursor

    Requirements

    • Requires Flow to be installed and available on your path.
    • Requires projects containing JavaScript files to be initialised with flow init.
    • Requires JavaScript files to be marked with / @flow / at the top.

    Pathogen

    cd ~/.vim/bundle
    git clone git://github.com/autozimu/LanguageClient-neovim.git

    NeoBundle

    Add this to your ~/.vimrc

      NeoBundleLazy 'autozimu/LanguageClient-neovim', {
    \ 'autoload': {
    \ 'filetypes': 'javascript'
    \ }}

    With Flow build step, using flow-bin

      NeoBundleLazy 'autozimu/LanguageClient-neovim', {
    \ 'autoload': {
    \ 'filetypes': 'javascript'
    \ },
    \ 'build': {
    \ 'mac': 'npm install -g flow-bin',
    \ 'unix': 'npm install -g flow-bin'
    \ }}

    VimPlug

      Plug 'autozimu/LanguageClient-neovim', {
    \ 'branch': 'next',
    \ 'do': 'bash install.sh && npm install -g flow-bin',
    \ }

    Setup

    let g:LanguageClient_rootMarkers = {
    \ 'javascript': ['.flowconfig', 'package.json']
    \ }
    let g:LanguageClient_serverCommands={
    \ 'javascript': ['flow', 'lsp'],
    \ 'javascript.jsx': ['flow', 'lsp']
    \}

    " check the type under cursor w/ leader T
    nnoremap <leader>t :call LanguageClient_textDocument_hover()<CR>
    nnoremap <leader>y :call LanguageClient_textDocument_definition()<CR>
    + + + + \ No newline at end of file diff --git a/en/docs/editors/vscode/index.html b/en/docs/editors/vscode/index.html new file mode 100644 index 00000000000..787b25dd996 --- /dev/null +++ b/en/docs/editors/vscode/index.html @@ -0,0 +1,28 @@ + + + + + +Visual Studio Code | Flow + + + + + + + + + + + + + + +
    +

    Visual Studio Code

    Screenshot of Flow Language Support

    Support for Flow in Visual Studio Code is provided by +the Flow Language Support +extension. It provides all the functionality you would expect:

    • IntelliSense (Autocomplete)
    • Go to Definition / Peek Definition
    • Diagnostics (Errors, Warnings)
    • Hover type information
    • Toggleable code coverage reports

    Installation

    Search for "Flow Language Support" in the VS Code extensions panel or install through the Marketplace.

    + + + + \ No newline at end of file diff --git a/en/docs/editors/webstorm/index.html b/en/docs/editors/webstorm/index.html new file mode 100644 index 00000000000..bd463d4de50 --- /dev/null +++ b/en/docs/editors/webstorm/index.html @@ -0,0 +1,26 @@ + + + + + +WebStorm | Flow + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/en/docs/enums/defining-enums/index.html b/en/docs/enums/defining-enums/index.html new file mode 100644 index 00000000000..8468d97a275 --- /dev/null +++ b/en/docs/enums/defining-enums/index.html @@ -0,0 +1,52 @@ + + + + + +Defining enums | Flow + + + + + + + + + + + + + + +
    +

    Defining enums

    Learn how to define a Flow Enum. Looking for a quick overview? Check out the Quickstart Guide.

    An enum declaration is a statement. Its name defines both a value (from which to access its members, +and call its methods), and a type (which can be used as an annotation for the type of its members).

    Enum members must all be of the same type, and those members can be one of four types: +string, number, boolean, and symbol.

    Every enum has some common properties:

    Consistent member type

    The type of the enum members must be consistent. For example, you can’t mix string and number members in one enum. +They must all be strings, numbers, or booleans (you do not provide values for symbol based enums).

    Member name starting character

    Member names must be valid identifiers (e.g. not start with numbers), and must not start with lowercase a through z. +Names starting with those letters are reserved for enum methods (e.g. Status.cast(...)).

    This is not allowed:

    1enum Status {2  active, // Error: names can't start with lowercase 'a' through 'z'
    3}
    2:3-2:8: Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `active`, consider using `Active`, in enum `Status`.

    Unique member names

    Member names must be unique. This is not allowed:

    1enum Status {2  Active,3  Active, // Error: the name 'Active` was already used above
    4}
    3:3-3:8: Enum member names need to be unique, but the name `Active` has already been used before in enum `Status`.

    Literal member values

    If you specify a value for an enum member, it must be a literal (string, number, or boolean), not a computed value. This is not allowed:

    1enum Status {2  Active = 1 + 2, // Error: the value must be a literal
    3}
    2:12-2:12: The enum member initializer for `Active` needs to be a literal (either a boolean, number, or string) in enum `Status`.

    Unique member values

    Member values must be unique. This is not allowed:

    1enum Status {2  Active = 1,3  Paused = 1, // Error: the value has already been used above
    4}
    3:12-3:12: Invalid enum member initializer. Initializers need to be unique, but this one has already been used for a previous member [1] of enum `Status` [2]. [duplicate-enum-init]

    Fixed at declaration

    An enum is not extendable, so you can’t add new members after the fact while your code is running. +At runtime, enum member values can’t change and the members can’t be deleted. In this way they act like a frozen object.

    String enums

    String enums are the default. If you don’t specify an of clause (e.g. enum Status of number {}, enum Status of symbol {}, etc.), +and do not specify any values (e.g. enum Status {Active = 1}) then the definition will default to be a string enum.

    Unlike the other types of enums (e.g. number enums), you can either specify values for the enum members, or not specify values and allow them to be defaulted.

    If you don’t specify values for your enum members, they default to strings which are the same as the name of your members.

    1enum Status {2  Active,3  Paused,4  Off,5}

    Is the same as:

    1enum Status {2  Active = 'Active',3  Paused = 'Paused',4  Off = 'Off',5}

    You must consistently either specify the value for all members, or none of the members. This is not allowed:

    1enum Status {2  Active = 'active',3  Paused = 'paused',4  Off, // Error: you must specify a value for all members (or none of the members)
    5}
    4:3-4:5: String enum members need to consistently either all use initializers, or use no initializers, in enum Status.

    Optionally, you can use an of clause:

    1enum Status of string {2  Active,3  Paused,4  Off,5}

    We infer the type of the enum based on its values if there is no of clause. +Using an of clause will ensure that if you use incorrect values, the error message will always interpret it as an enum of that type.

    Number enums

    Number enums must have their values specified.

    You can specify a number enum like this:

    1enum Status {2  Active = 1,3  Paused = 2,4  Off = 3,5}

    Optionally, you can use an of clause. +This does not affect the type-checking behavior of a valid Flow Enum, +it just ensures that all enum members are numbers as the definition site.

    1enum Status of number {2  Active = 1,3  Paused = 2,4  Off = 3,5}

    We do not allow defaulting of number enums (unlike some other languages), because if a member from the middle of such an enum is added or removed, +all subsequent member values would be changed. This can be unsafe (e.g. push safety, serialization, logging). +Requiring the user to be explicit about the renumbering makes them think about the consequences of doing so.

    The value provided must be a number literal. (Note: there is no literal for negative numbers in JavaScript, they are the application of a unary - operation on a number literal.) +We could expand allowed values in the future to include certain non-literals, if requests to do so arise.

    Boolean enums

    Boolean enums must have their values specified. Boolean enums can only have two members.

    You can specify a boolean enum like this:

    1enum Status {2  Active = true,3  Off = false,4}

    Optionally, you can use an of clause. +This does not affect the type-checking behavior of a valid Flow Enum, +it just ensures that all enum members are booleans as the definition site.

    1enum Status of boolean {2  Active = true,3  Off = false,4}

    Symbol enums

    Symbol enums can’t have their values specified. Each member is a new symbol, with the symbol description set to the name of the member. +You must use the of clause with symbol enums, to distinguish them from string enums, which are the default when omitting values.

    You can specify a symbol enum like this:

    1enum Status of symbol {2  Active,3  Paused,4  Off,5}

    Flow Enums with Unknown Members

    You can specify that your enum contains "unknown members" by adding a ... to the end of the declaration:

    1enum Status {2  Active,3  Paused,4  Off,5  ...6}7const status: Status = Status.Active;8
    +9switch (status) {
    10 case Status.Active: break;11 case Status.Paused: break;12 case Status.Off: break;13}
    9:9-9:14: Missing `default` case in the check of `status`. `Status` [1] has unknown members (specified using `...`) so checking it requires the use of a `default` case to cover those members. [invalid-exhaustive-check]

    When this is used, Flow will always require a default when switching over the enum, +even if all known enum members are checked. The default checks for "unknown" members you haven't explicitly listed.

    This feature is useful when an enum value crosses some boundary and the enum declaration on each side may have different memebers. +For example, an enum definition which is used on both the client and the server: an enum member could be added, which would be immediately seen by the server, +but could be sent to an outdated client which isn't yet aware of the new member.

    One use case for this would be the JS output of GraphQL Enums: +Flow Enums with unknown members could be used instead of the added '%future added value' member.

    Enums at runtime

    Enums exist as values at runtime. We use a Babel transform to transform +Flow Enum declarations into calls to the enums runtime (read more in the enabling enums documentation). +We use a runtime so all enums can share an implementation of the enum methods.

    We use Object.create(null) for enums' prototype (which has the enum methods), so properties in Object.prototype will not pollute enums. +The only own properties of the enum object are the enum members. The members are non-enumerable (use the .members() method for that). +The entire enum object is frozen, so it cannot be modified.

    Style guide

    Naming enums

    We encourage you to define enum names in PascalCase, following the naming conventions of other types. All caps names (e.g. STATUS) are harder to read and discouraged.

    We encourage you to name enums in the singular. E.g. Status, not Statuses. Just like the type of true and false is boolean, not booleans.

    Don't append Enum to the name (e.g. don't name your enum StatusEnum). This is unnecessary, just like we don't append Class to every class name, and Type to every type alias.

    Naming enum members

    We encourage you to define enum member names in PascalCase. All caps names (e.g. ACTIVE) are harder to read and discouraged. +Additionally, since Flow enforces that these are constants, you don't need to use the name to signal that intent to the programmer.

    See also: the rule about enum member name starting characters.

    Don't create a separate type

    A Flow Enum, like a class, is both a type and a value. You don't need to create a separate type alias, you can use the enum name.

    Use dot access for accessing members

    Prefer Status.Active vs. const {Active} = Status;. This makes it easier find uses of the enum with text search, and makes it clearer to the reader what enum is involved. +Additionally, this is required for switch statements involving enums.

    + + + + \ No newline at end of file diff --git a/en/docs/enums/enabling-enums/index.html b/en/docs/enums/enabling-enums/index.html new file mode 100644 index 00000000000..1e23f44e52f --- /dev/null +++ b/en/docs/enums/enabling-enums/index.html @@ -0,0 +1,40 @@ + + + + + +Enabling enums in your project | Flow + + + + + + + + + + + + + + +
    +

    Enabling enums in your project

    Upgrade tooling

    To enable Flow Enums in your repo, you must first update the following packages:

    • Upgrade to at least Flow 0.159
      • Flow needs to have some configuration set to enable enums - see below.
    • Upgrade Prettier to at least version 2.2
      • As of that version, Prettier can handle parsing and pretty printing Flow Enums out of the box.
      • You must use the flow parser option for JavaScript files to be able to format Flow Enums.
    • Upgrade Babel to at least version 7.13.0
      • As of that version, Babel can parse Flow Enums. However, to enable this parsing some configuration needs to be supplied, +and additionally it does not include the transform required - see below.
    • Upgrade jscodeshift to at least version 0.11.0
    • Upgrade hermes-parser to at least version 0.4.8
    • For ESLint, either:
      • Use hermes-eslint as your ESLint parser, at least version 0.4.8
      • Or upgrade babel-eslint to version 10.1.0
        • As of that version, babel-eslint can handle Flow Enums out of the box.
        • Do not upgrade to 11.x, this branch does not support Flow Enums.
      • Or use another solution using Babel 7.13.0 or later, with Flow enabled - this may also work

    If you have any other tool which examines your code, you need to update it as well. If it uses flow-parser, +hermes-parser or @babel/parser, upgrade those as per the instructions above. +If it uses some other parser, you will need to implement parsing Flow Enums in that parser. You can look at the existing code in Babel, Flow, and Hermes parsers to guide your work.

    Enable enums

    • In your .flowconfig, under the [options] heading, add enums=true
    • Add the Flow Enums Babel transform. It turns enum declaration AST nodes into calls to the runtime: +babel-plugin-transform-flow-enums. +Add it to your development dependencies and adjust your Babel configuration to use the transform. +The transform by default requires the runtime package directly (below), but you can configure this.
    • Add the Flow Enum runtime package to your production dependencies. +This will be required and used at runtime to create Flow Enums: flow-enums-runtime

    Enable suggested ESLint rules

    Enums can be exhaustively checked in switch statements, so may increase the use of switch statements compared to before. +To prevent common issues with switch statements, we suggest you enable these ESLint rules (at least as warnings):

    • no-fallthrough: +This prevents the user from accidentally forgetting a break statement at the end of their switch case, while supporting common use-cases.
    • no-case-declarations: +This prevents lexicaly scoped declarations (let, const) from being introduced in a switch case, without wrapping that case in a new block. +Otherwise, declarations in different cases could conflict.

    We also have some Flow Enums specific rules as part of eslint-plugin-fb-flow:

    • use-flow-enums: +Suggests that enum-like Object.freeze and keyMirror usage be turned into Flow Enums instead.
    • flow-enums-default-if-possible: +Auto-fixes string enums with specified values identical to the member names to defaulted enums.
    • no-flow-enums-object-mapping: +Suggests using a function with a switch to map enum values to other values, instead of an object literal.
    + + + + \ No newline at end of file diff --git a/en/docs/enums/index.html b/en/docs/enums/index.html new file mode 100644 index 00000000000..8d9d4f583be --- /dev/null +++ b/en/docs/enums/index.html @@ -0,0 +1,32 @@ + + + + + +Flow Enums | Flow + + + + + + + + + + + + + + +
    +

    Flow Enums

    Flow Enums define a fixed set of constants which create their own type.

    Unlike other features of Flow, Flow Enums exist as values at runtime, as well as existing as types.

    Read how to enable Flow Enums in your project.

    Benefits

    Enums provide several benefits over existing patterns:

    • Reduce repetition: Enum declarations provide both the type and the value of the enum.
    • Improve Flow performance: Enums are guaranteed to have good type-checking performance, +unlike unions which may be expensive to type-check in certain situations.
    • Enable new functionality: Enums come with a cast method, which converts from a primitive type to an enum type safely.
    • Enhance safety: Enums define their own type which does not implicitly coerce to and from other types (e.g. from strings), +and are required to be exhaustively checked in switch statements. These properties can help prevent logic bugs.

    Quickstart

    Defining enums

    An enum named Status with three members: Active, Paused, and Off.

    1enum Status {2  Active,3  Paused,4  Off,5}

    By default, enums define members with string values which mirror their names. You can also explicitly set values:

    1enum Status {2  Active = 'active',3  Paused = 'paused',4  Off = 'off',5}

    You can use numbers as well:

    1enum Status {2  Active = 1,3  Paused = 2,4  Off = 3,5}

    Values must be unique, literals, and all of the same type. Check out the full docs on defining enums to learn more.

    Using enums

    To access an enum member, use dot access:

    Status.Active

    To use the enum type as an annotation, use the enum name:

    const status: Status = Status.Active;

    Cast from the representation type (in this case, a string) to the enum type:

    const status: Status | void = Status.cast(someString);

    You can easily provide a default value with the ?? operator:

    const status: Status = Status.cast(someString) ?? Status.Off;

    Read more about the other methods enums provide, including isValid, members, and getName.

    Cast an enum type to its representation type (must be done explicitly):

    (status: string)

    Checks of enums in switch statements are exhaustive - we ensure you check all members:

    1enum Status {2  Active,3  Paused,4  Off,5}6const status: Status = Status.Active;7
    +8// ERROR: Incomplete exhaustive check9switch (status) {
    10 case Status.Active: break;11 case Status.Paused: break;12 // We forgot to add `case: Status.Off:` here, resulting in error above.13 // Using `default:` would also work to check all remaining members.14}
    9:9-9:14: Incomplete exhaustive check: the member `Off` of enum `Status` [1] has not been considered in check of `status`. [invalid-exhaustive-check]

    Read more about exhaustively checking enums.

    Check out the the full docs on using enums to learn more.

    When to use Flow Enums

    If you previously defined a union type of literals, you can use an enum to define that type instead. Instead of

    1type Status =2  | 'Active'3  | 'Paused'4  | 'Off';5
    +6const x: Status = 'Active';

    or

    1const Status = Object.freeze({2  Active: 'Active',3  Paused: 'Paused',4  Off: 'Off',5});6type StatusType = $Keys<typeof Status>;7const x: StatusType = Status.Active;

    you can use:

    1enum Status {2  Active,3  Paused,4  Off,5}6const x: Status = Status.Active;

    See migrating from legacy patterns to learn more about migrating legacy JavaScript enum patterns to Flow Enums.

    When to not use Flow Enums

    Enums are designed to cover many use cases and exhibit certain benefits. The design makes a variety of trade-offs to make this happen, and in certain situations, +these trade-offs might not be right for you. In those cases, you can continue to use existing patterns to satisfy your use cases. +Read more about those situations.

    + + + + \ No newline at end of file diff --git a/en/docs/enums/migrating-legacy-patterns/index.html b/en/docs/enums/migrating-legacy-patterns/index.html new file mode 100644 index 00000000000..22d64951181 --- /dev/null +++ b/en/docs/enums/migrating-legacy-patterns/index.html @@ -0,0 +1,37 @@ + + + + + +Migrating from legacy patterns | Flow + + + + + + + + + + + + + + +
    +

    Migrating from legacy patterns

    Learn how to migrate to Flow Enums from legacy JavaScript enum patterns like Object.freeze.

    First, learn how to update the enum definition site, and next learn how to update files that import and use the enum.

    Updating definitions

    Object.freeze

    If you are using Object.freeze, you can migrate to an enum if the values of the object are:

    • All the same primitive type, and that type is boolean, string, number, or symbol.
    • All literals.
    • Contain no duplicate values.

    Replace

    1const Status = Object.freeze({2  Active: 1,3  Paused: 2,4  Off: 3,5});6
    +7export type StatusType = $Values<typeof Status>;8
    +9export default Status;

    with

    1export default enum Status {2  Active = 1,3  Paused = 2,4  Off = 3,5}
    • Check to ensure that the key names do not start with lowercase ‘a’-‘z’ (disallowed in enums). If they do, you’ll need to rename the member names.
    • Remove any usage of $Keys<...> or $Values<...> on the enum type, these are no longer needed as a Flow Enum defines a type itself (its name).
    • Delete any type exports based on the enum, as you just need to export the Flow Enum. A Flow Enum acts as both a type and a value (like a class).

    Then, take a look at how to update files that import and use the enum.

    keyMirror

    The keyMirror utility creates an object whose values are mirrors of its key names. You can replace keyMirror usage with a string based enum.

    Replace

    import keyMirror from 'keyMirror';

    const Status = keyMirror({
    Active: null,
    Paused: null,
    Off: null,
    });

    export type StatusType = $Keys<typeof Status>;

    export default Status;

    with

    1export default enum Status {2  Active,3  Paused,4  Off,5}
    • Check to ensure that the key names do not start with lowercase ‘a’-‘z’ (disallowed in enums). If they do, you’ll need to rename the member names.
    • Remove any usage of $Keys<...> on the enum type, it's no longer needed as a Flow Enum defines a type itself (its name).
    • Delete any type exports based on the enum, you just need to export the Flow Enum. A Flow Enum acts as both a type and a value (like a class).

    Then, take a look at how to update files that import and use the enum.

    Updating usage

    Fix type imports

    Previous patterns required you to export (and then import) a type separate from the enum itself. +Flow Enums are both types and values (like a class), so you just need to export the Flow Enum itself. Since there is now one export, you only need one import. +Read more about exporting enums and importing enums.

    If you previously had:

    1const Status = Object.freeze({2  Active: 1,3  Paused: 2,4  Off: 3,5});6export type StatusType = $Values<typeof Status>;7export default Status;

    And you've replaced it with:

    1export default enum Status {2  Active = 1,3  Paused = 2,4  Off = 3,5}

    Then you need to fix the imports as well:

    If both type and value were imported

    For a user of the enum, if you previously imported both the type and the value, you can delete the type import and update annotations used.

    Change

    import type {StatusType} from 'status';

    import Status from 'status';

    const myStatus: StatusType = Status.Active;

    to

    // Type import is deleted

    import Status from 'status';

    const myStatus: Status = Status.Active; // Changed type annotation to just `Status`
    If only the type was imported

    For a user of the enum, if you previously imported just the type, change the type import to a default import rather than a named import.

    Change

    import type {StatusType} from 'status';

    function isActive(status: StatusType) { ... }

    to

    // Remove the braces `{` `}` and changed the name - this is a default import now
    import type Status from 'status';

    function isActive(status: Status) { ... } // Changed type annotation to just `Status`

    Mapping enums to other values

    Sometimes you want to map from an enum value to some other value. Previously, we sometimes used object literals for this. +With Flow Enums, use a function with a switch instead. The switch is exhaustively checked, +so Flow will ensure you update your mapping when you add or remove Flow Enum members.

    Replace this pattern

    const STATUS_ICON: {[Status]: string} = {
    [Status.Active]: 'green-checkmark',
    [Status.Paused]: 'grey-pause',
    [Status.Off]: 'red-x',
    };
    const icon = STATUS_ICON[status];

    with

    function statusIcon(status: Status): string {
    switch (status) {
    case Status.Active:
    return 'green-checkmark';
    case Status.Paused:
    return 'grey-pause';
    case Status.Off:
    return 'red-x';
    }
    }
    const icon = statusIcon(status);

    Read more about mapping enums to other values.

    Usage as the representation type (e.g. a string)

    You can't use a Flow Enum directly as its representation type (e.g. a string). +If you get Flow errors about using an enum as its representation type, first try to refactor your code so that it expects the enum type instead of the representation type +(e.g. change annotations from string to Status). If you really want to use the enum as its representation type, you can add in explicit casts. +See casting to represetation type.

    Casting to the enum type

    If before you cast from an enum's representation type (e.g. string) to the enum type with something like this:

    function castToStatus(input: number): StatusType | void {
    switch(input) {
    case 1: return Status.Active;
    case 2: return Status.Paused;
    case 3: return Status.Off;
    default: return undefined;
    }
    }

    castToStatus(x);

    You can now just use the cast method:

    Status.cast(x);

    Update switch statements

    Flow Enums are exhaustively checked in switch statements. You might need to update your code when you are switching over an enum value. +Read more at exhaustively checking enums in switch statements.

    Operations over enum members

    If previously you used functionality like Object.values, Object.keys, or for-in loops to get and operate on the enum members, +you can use the members method instead.

    + + + + \ No newline at end of file diff --git a/en/docs/enums/using-enums/index.html b/en/docs/enums/using-enums/index.html new file mode 100644 index 00000000000..bc47df23d53 --- /dev/null +++ b/en/docs/enums/using-enums/index.html @@ -0,0 +1,53 @@ + + + + + +Using enums | Flow + + + + + + + + + + + + + + +
    +

    Using enums

    Flow Enums are not a syntax for union types. They are their own type, and each member of a Flow Enum has the same type. +Large union types can cause performance issues, as Flow has to consider each member as a separate type. With Flow Enums, no matter how large your enum is, +Flow will always exhibit good performance as it only has one type to keep track of.

    We use the following enum in the examples below:

    enum Status {
    Active,
    Paused,
    Off,
    }

    Accessing enum members

    Access members with the dot syntax:

    const status = Status.Active;

    You can’t use computed access:

    1enum Status {2  Active,3  Paused,4  Off,5}6const x = "Active";7Status[x]; // Error: computed access on enums is not allowed
    7:8-7:8: Cannot access `x` on enum `Status` [1] because computed access is not allowed on enums. [invalid-enum-access]

    Using as a type annotation

    The enum declaration defines both a value (from which you can access the enum members and methods) and a type of the same name, which is the type of the enum members.

    function calculateStatus(): Status {
    ...
    }

    const status: Status = calculateStatus();

    Casting to representation type

    Enums do not implicitly coerce to their representation type or vice-versa. +If you want to convert from the enum type to the representation type, you can use an explicit cast (x: string):

    1enum Status {2  Active,3  Paused,4  Off,5}6
    +7const s: string = Status.Active; // Error: 'Status' is not compatible with 'string'
    8const statusString: string = (Status.Active: string);
    7:19-7:31: Cannot assign `Status.Active` to `s` because `Status` [1] is incompatible with string [2]. You can explicitly cast your enum value to a string using `(<expression>: string)`. [incompatible-type]

    To convert from a nullable enum type to nullable string, you can do:

    const maybeStatus: ?Status = ....;
    const maybeStatusString: ?string = maybeStatus && (maybeStatus: string);

    If you want to convert from the representation type (e.g. string) to an enum type (if valid), check out the cast method.

    Methods

    Enum declarations also define some helpful methods.

    Below, TEnum is the type of the enum (e.g. Status), and TRepresentationType is the type of the representation type for that enum (e.g. string).

    .cast

    Type: cast(input: ?TRepresentationType): TEnum | void

    The cast method allows you to safely convert a primitive value, like a string, to the enum type (if it is a valid value of the enum), and undefined otherwise.

    const data: string = getData();
    const maybeStatus: Status | void = Status.cast(data);
    if (maybeStatus != null) {
    const status: Status = maybeStatus;
    // do stuff with status
    }

    Set a default value in one line with the ?? operator:

    const status: Status = Status.cast(data) ?? Status.Off;

    The type of the argument of cast depends on the type of enum. If it is a string enum, the type of the argument will be string. +If it is a number enum, the type of the argument will be number, and so on. +If you wish to cast a mixed value, first use a typeof refinement:

    const data: mixed = ...;
    if (typeof data === 'string') {
    const maybeStatus: Status | void = Status.cast(data);
    }

    cast uses this (representing the object of enum members), so if you want to pass the function itself as a value, you should use an arrow function. For example:

    const strings: Array<string> = ...;
    // WRONG: const statuses: Array<?Status> = strings.map(Status.cast);
    const statuses: Array<?Status> = strings.map((input) => Status.cast(input)); // Correct

    Runtime cost: For mirrored string enums (e.g enum E {A, B}), as the member names are the same as the values, the runtime cost is constant - +equivalent to calling .hasOwnProperty. For other enums, a Map is created on the first call, and subsequent calls simply call .has on the cached map. +Thus the cost is amoritzed constant.

    .isValid

    Type: isValid(input: ?TRepresentationType): boolean

    The isValid method is like cast, but simply returns a boolean: true if the input supplied is a valid enum value, and false if it is not.

    const data: string = getData();
    const isStatus: boolean = Status.isValid(data);

    isValid uses this (representing the object of enum members), so if you want to pass the function itself as a value, you should use an arrow function. For example:

    const strings: Array<string> = ...;
    // WRONG: const statusStrings = strings.filter(Status.isValid);
    const statusStrings = strings.filter((input) => Status.isValid(input)); // Correct

    Runtime cost: The same as described under .cast above.

    .members

    Type: members(): Iterator<TEnum>

    The members method returns an iterator (that is iterable) of all the enum members.

    const buttons = [];
    function getButtonForStatus(status: Status) { ... }

    for (const status of Status.members()) {
    buttons.push(getButtonForStatus(status));
    }

    The iteration order is guaranteed to be the same as the order of the members in the declaration.

    The enum is not enumerable or iterable itself (e.g. a for-in/for-of loop over the enum will not iterate over its members), you have to use the .members() method for that purpose.

    You can convert the iterable into an Array using: Array.from(Status.members()). +You can make use of Array.from's second argument to map over the values at +the same time you construct the array: e.g.

    const buttonArray = Array.from(
    Status.members(),
    status => getButtonForStatus(status),
    );

    .getName

    Type: getName(value: TEnum): string

    The getName method maps enum values to the string name of that value's enum member. When using number/boolean/symbol enums, +this can be useful for debugging and for generating internal CRUD UIs. For example:

    enum Status {
    Active = 1,
    Paused = 2,
    Off = 3,
    }
    const status: Status = ...;

    console.log(Status.getName(status));
    // Will print a string, either "Active", "Paused", or "Off" depending on the value.

    Runtime cost: The same as described under .cast above. A single cached reverse map from enum value to enum name is used for .cast, .isValid, and .getName. +The first call of any of those methods will create this cached map.

    Exhaustively checking enums with a switch

    When checking an enum value in a switch statement, we enforce that you check against all possible enum members, and don’t include redundant cases. +This helps ensure you consider all possibilities when writing code that uses enums. It especially helps with refactoring when adding or removing members, +by pointing out the different places you need to update.

    const status: Status = ...;

    switch (status) { // Good, all members checked
    case Status.Active:
    break;
    case Status.Paused:
    break;
    case Status.Off:
    break;
    }

    You can use default to match all members not checked so far:

    switch (status) {
    case Status.Active:
    break;
    default: // When `Status.Paused` or `Status.Off`
    break;
    }

    You can check multiple enum members in one switch case:

    switch (status) {
    case Status.Active:
    case Status.Paused:
    break;
    case Status.Off:
    break;
    }

    You must match against all of the members of the enum (or supply a default case):

    1enum Status {2  Active = 1,3  Paused = 2,4  Off = 3,5}6const status: Status = Status.Active;7
    +8// Error: you haven't checked 'Status.Off' in the switch9switch (status) {
    10 case Status.Active:11 break;12 case Status.Paused:13 break;14}
    9:9-9:14: Incomplete exhaustive check: the member `Off` of enum `Status` [1] has not been considered in check of `status`. [invalid-exhaustive-check]

    You can’t repeat cases (as this would be dead code!):

    1enum Status {2  Active = 1,3  Paused = 2,4  Off = 3,5}6const status: Status = Status.Active;7
    +8switch (status) {9  case Status.Active:10    break;11  case Status.Paused:12    break;13  case Status.Off:14    break;15  case Status.Paused: // Error: you already checked for 'Status.Paused'
    16 break;17}
    15:8-15:20: Invalid exhaustive check: case checks for enum member `Paused` of `Status` [1], but member `Paused` was already checked at case [2]. [invalid-exhaustive-check]

    A default case is redundant if you’ve already matched all cases:

    1enum Status {2  Active = 1,3  Paused = 2,4  Off = 3,5}6const status: Status = Status.Active;7
    +8switch (status) {9  case Status.Active:10    break;11  case Status.Paused:12    break;13  case Status.Off:14    break;15  default: // Error: you've already checked all cases, the 'default' is redundant
    16 break;
    17}18// The following is OK because the `default` covers the `Status.Off` case:19switch (status) {20 case Status.Active:21 break;22 case Status.Paused:23 break;24 default:25 break;26}
    15:3-16:10: Invalid exhaustive check: default case checks for additional enum members of `Status` [1], but all of its members have already been checked. [invalid-exhaustive-check]

    Except if you are switching over an enum with unknown members.

    If you nest exhaustively checked switches inside exhaustively checked switches, and are returning from each branch, you must add a break; after the nested switch:

    switch (status) {
    case Status.Active:
    return 1;
    case Status.Paused:
    return 2;
    case Status.Off:
    switch (otherStatus) {
    case Status.Active:
    return 1;
    case Status.Paused:
    return 2;
    case Status.Off:
    return 3;
    }
    break;
    }

    Remember, you can add blocks to your switch cases. They are useful if you want to use local variables:

    switch (status) {
    case Status.Active: {
    const x = f();
    ...
    break;
    }
    case Status.Paused: {
    const x = g();
    ...
    break;
    }
    case Status.Off: {
    const y = ...;
    ...
    break;
    }
    }

    If you didn't add blocks in this example, the two declarations of const x would conflict and result in an error.

    Enums are not checked exhaustively in if statements or other contexts other than switch statements.

    Exhaustive checking with unknown members

    If your enum has unknown members (specified with the ...), e.g.

    enum Status {
    Active,
    Paused,
    Off,
    ...
    }

    Then a default is always required when switching over the enum. The default checks for "unknown" members you haven't explicitly listed.

    switch (status) {
    case Status.Active:
    break;
    case Status.Paused:
    break;
    case Status.Off:
    break;
    default:
    // Checks for members not explicitly listed
    }

    You can use the require-explicit-enum-switch-cases Flow Lint to require that all known members are explicitly listed as cases. For example:

    1enum Status {2  Active = 1,3  Paused = 2,4  Off = 3,5}6const status: Status = Status.Active;7
    +8// flowlint-next-line require-explicit-enum-switch-cases:error9switch (status) {
    10 case Status.Active:11 break;12 case Status.Paused:13 break;14 default:15 break;16}
    9:9-9:14: Incomplete exhaustive check: the member `Off` of enum `Status` [1] has not been considered in check of `status`. The default case [2] does not check for the missing members as the `require-explicit-enum-switch-cases` lint has been enabled. [require-explicit-enum-switch-cases]

    You can fix if by doing:

    // flowlint-next-line require-explicit-enum-switch-cases:error
    switch (status) {
    case Status.Active:
    break;
    case Status.Paused:
    break;
    case Status.Off: // Added the missing `Status.Off` case
    break;
    default:
    break;
    }

    The require-explicit-enum-switch-cases lint is not one to enable globally, but rather on a per-switch basis when you want the behavior. +With normal enums, for each switch statement on it, you can either provide a default or not, and thus decide if you want to require each case explicitly listed or not. +Similarly for Flow Enums with unknown members, you can also enable this lint on a per-switch basis.

    The lint works for switches of regular Flow Enum types as well. +It in effect bans the usage of default in that switch statement, by requiring the explicit listing of all enum members as cases.

    Mapping enums to other values

    There are a variety of reasons you may want to map an enum value to another value, e.g. a label, icon, element, and so on.

    With previous patterns, it was common to use object literals for this purpose, however with Flow Enums we prefer functions which contain a switch, which we can exhaustively check.

    Instead of:

    const STATUS_ICON: {[Status]: string} = {
    [Status.Active]: 'green-checkmark',
    [Status.Paused]: 'grey-pause',
    [Status.Off]: 'red-x',
    };
    const icon = STATUS_ICON[status];

    Which doesn't actually guarantee that we are mapping each Status to some value, use:

    function getStatusIcon(status: Status): string {
    switch (status) {
    case Status.Active:
    return 'green-checkmark';
    case Status.Paused:
    return 'grey-pause';
    case Status.Off:
    return 'red-x';
    }
    }
    const icon = getStatusIcon(status);

    In the future if you add or remove an enum member, Flow will tell you to update the switch as well so it's always accurate.

    If you actually want a dictionary which is not exhaustive, you can use a Map:

    const counts = new Map<Status, number>([
    [Status.Active, 2],
    [Status.Off, 5],
    ]);
    const activeCount: Status | void = counts.get(Status.Active);

    Flow Enums cannot be used as keys in object literals, as explained later on this page.

    Enums in a union

    If your enum value is in a union (e.g. ?Status), first refine to only the enum type:

    const status: ?Status = ...;

    if (status != null) {
    (status: Status); // 'status' is refined to 'Status' at this point
    switch (status) {
    case Status.Active: break;
    case Status.Paused: break;
    case Status.Off: break;
    }
    }

    If you want to refine to the enum value, you can use typeof with the representation type, for example:

    const val: Status | number = ...;

    // 'Status' is a string enum
    if (typeof val === 'string') {
    (val: Status); // 'val' is refined to 'Status' at this point
    switch (val) {
    case Status.Active: break;
    case Status.Paused: break;
    case Status.Off: break;
    }
    }

    Exporting enums

    An enum is a type and a value (like a class is). To export both the type and the value, export it like a you would a value:

    1export enum Status {}

    Or, as the default export (note: you must always specify an enum name, export default enum {} is not allowed):

    1export default enum Status {}

    Using CommonJS:

    1enum Status {}2module.exports = Status;

    To export only its type, but not the value, you can do:

    1enum Status {}2export type {Status};

    Other functions within the file will still have access to the enum implementation.

    Importing enums

    If you have exported an enum like this:

    1// status.js2export default enum Status {3  Active,4  Paused,5  Off,6}

    You can import it as both a value and a type like this:

    import Status from 'status';

    const x: Status /* used as type */ = Status.Active /* used as value */;

    If you only need to use the type, you can import it as a type:

    import type Status from 'status';

    function printStatus(status: Status) {
    ...
    }

    Using CommonJS:

    const Status = require('status');

    Generic enums

    There is currently no way to specify a generic enum type, but there have been enough requests that it is something we will look into in the future.

    For some use cases of generic enums, you can currently ask users to supply functions which call the enum methods instead (rather than passing in the enum itself), for example:

    function castToEnumArray<TRepresentationType, TEnum>(
    f: TRepresentationType => TEnum,
    xs: Array<TRepresentationType>,
    ): Array<TEnum | void> {
    return xs.map(f);
    }

    castToEnumArray((input) => Status.cast(input), ["Active", "Paused", "Invalid"]);

    When to not use enums

    Enums are designed to cover many use cases and exhibit certain benefits. The design makes a variety of trade-offs to make this happen, and in certain situations, +these trade-offs might not be right for you. In these cases, you can continue to use existing patterns to satisfy your use cases.

    Distinct object keys

    You can’t use enum members as distinct object keys.

    The following pattern works because the types of LegacyStatus.Active and LegacyStatus.Off are different. One has the type 'Active' and one has the type 'Off'.

    1const LegacyStatus = Object.freeze({2  Active: 'Active',3  Paused: 'Paused',4  Off: 'Off',5});6const o = {7  [LegacyStatus.Active]: "hi",8  [LegacyStatus.Off]: 1,9};10const x: string = o[LegacyStatus.Active]; // OK11const y: number = o[LegacyStatus.Off]; // OK12const z: boolean = o[LegacyStatus.Active]; // Error - as expected
    12:20-12:41: Cannot assign `o[LegacyStatus.Active]` to `z` because string [1] is incompatible with boolean [2]. [incompatible-type]

    We can’t use the same pattern with enums. All enum members have the same type, the enum type, so Flow can’t track the relationship between keys and values.

    If you wish to map from an enum value to another value, you should use a function with an exhaustively-checked switch instead.

    Disjoint object unions

    A defining feature of enums is that unlike unions, each enum member does not form its own separate type. Every member has the same type, the enum type. +This allows enum usage to be analyzed by Flow in a consistently fast way, however it means that in certain situations which require separate types, we can’t use enums. +Consider the following union, following the disjoint object union pattern:

    1type Action =2  | {type: 'Upload', data: string}3  | {type: 'Delete', id: number};

    Each object type in the union has a single common field (type) which is used to distinguish which object type we are dealing with.

    We can’t use enum types for this field, because for this mechanism to work, the type of that field must be different in each member of the union, +but enum members all have the same type.

    In the future, we might add the ability for enums to encapsulate additional data besides a key and a primitive value - this would allow us to replace disjoint object unions.

    Guaranteed inlining

    Flow Enums are designed to allow for inlining (e.g. member values must be literals, +enums are frozen), however the inlining itself needs to be part of the build system (whatever you use) rather than Flow itself.

    While enum member access (e.g. Status.Active) can be inlined (other than symbol enums which cannot be inlined due to the nature of symbols), +usage of its methods (e.g. Status.cast(x)) cannot be inlined.

    + + + + \ No newline at end of file diff --git a/en/docs/errors/index.html b/en/docs/errors/index.html new file mode 100644 index 00000000000..3672dc41c17 --- /dev/null +++ b/en/docs/errors/index.html @@ -0,0 +1,32 @@ + + + + + +Error Suppressions | Flow + + + + + + + + + + + + + + +
    +

    Error Suppressions

    Flow reports many different kinds of errors for many common programming mistakes, but not every JavaScript pattern can be understood by Flow. +If you are confident your code is correct, and that Flow is +erroring too conservatively, you can suppress the error so that +Flow does not report it.

    What is a Suppression?

    A suppression is a special kind of comment that you can place on the line before a type +error. It tells Flow not to report that error when checking your code. Suppression +comments look like the following:

    // <SUPPRESSOR>[<CODE>] extra text

    A suppressor can be one of the following:

    • $FlowFixMe: for type errors that you intend to fix later
    • $FlowIssue: for a type error that you suspect is an issue with Flow
    • $FlowExpectedError: for a location where you expect Flow to produce a type error (for instance, when performing an invalid type cast).
    • $FlowIgnore: for locations where you want Flow to ignore your code

    Note that all of the suppressors behave identically; we simply recommend using them as described here for your own ease of reference.

    The <CODE> portion of a suppression is optional, but when included specifies which error code the suppression affects.

    Some examples of suppression comments:

    // $FlowFixMe

    // $FlowIssue[incompatible-type]

    /* $FlowIgnore[prop-missing] some other text here */

    /* $FlowFixMe[incompatible-cast] this
    is a multi-line
    comment */

    { /* $FlowIssue this is how you suppress errors inside JSX */ }

    In order to be a valid suppression comment, there are also some conditions that must be true:

    • No text can precede the suppressor, or come between the suppressor and the code. For example: // some text then $FlowFixMe is not a valid suppression, nor is // $FlowIssue some text [incompatible-type] or //$FlowFixMe [prop-missing] (note the space here!).
    • Suppressions must be on the line immediately before the error they suppress, otherwise they will not apply.

    Making Suppressions More Granular with Error Codes

    Suppressible Flow errors will also have an error code associated with them (after version 0.127). This code concisely describes the type of issue the error is reporting, and is different between different kinds of errors.

    In order to prevent suppressions from suppressing different kinds of type errors on the same line (by default suppressions without codes suppress every error on the following line), you can add an error code to your suppression. For example: // $FlowFixMe[incompatible-type] would only suppress errors with the incompatible-type code. So:

    1//$FlowFixMe[incompatible-type]2(3 : string);
    2:2-2:2: Cannot cast `3` to string because number [1] is incompatible with string [2]. [incompatible-cast]

    would report no errors, but

    1//$FlowFixMe[prop-missing]2(3 : string);
    2:2-2:2: Cannot cast `3` to string because number [1] is incompatible with string [2]. [incompatible-cast]

    would still report a type incompatibility.

    To suppress multiple error codes on the same line, you can stack suppression comments one after another, and they will all apply to the first non-comment line like so:

    1let y : number | { x : number }  = 1;2
    +3// $FlowFixMe[incompatible-type]4// $FlowFixMe[prop-missing]5(y.x : string);
    5:2-5:4: Cannot cast `y.x` to string because number [1] is incompatible with string [2]. [incompatible-cast]

    This will suppress both of the two errors on this line.

    + + + + \ No newline at end of file diff --git a/en/docs/faq/index.html b/en/docs/faq/index.html new file mode 100644 index 00000000000..ddd99d4c046 --- /dev/null +++ b/en/docs/faq/index.html @@ -0,0 +1,51 @@ + + + + + +FAQ | Flow + + + + + + + + + + + + + + +
    +

    FAQ

    I checked that foo.bar is not null, but Flow still thinks it is. Why does this happen and how can I fix it?

    Flow does not keep track of side effects, so any function call may potentially nullify your check. +This is called refinement invalidation. Example:

    1type Param = {2  bar: ?string,3}4function myFunc(foo: Param): string {5  if (foo.bar) {6    console.log("checked!");7    return foo.bar; // Flow errors. If you remove the console.log, it works
    8 }9 +10 return "default string";11}
    7:12-7:18: Cannot return `foo.bar` because null or undefined [1] is incompatible with string [2]. [incompatible-return]

    You can get around this by storing your checked values in local variables:

    1type Param = {2  bar: ?string,3}4function myFunc(foo: Param): string {5  if (foo.bar) {6    const bar = foo.bar;7    console.log("checked!");8    return bar; // Ok!9  }10
    +11  return "default string";12}

    I checked that my value is of type A, so why does Flow still believe it's A | B?

    Refinement invalidation can also occur variables are updated:

    1type T = string | number;2
    +3let x: T = 'hi';4
    +5function f() {6  x = 1;7}8
    +9if (typeof x === 'string') {10  f();11  (x: string);
    12}
    11:4-11:4: Cannot cast `x` to string because number [1] is incompatible with string [2]. [incompatible-cast]

    A work around would be to make the variable const and refactor your code to avoid the reassignment:

    1type T = string | number;2
    +3const x: T = 'hi';4
    +5function f(x: T): number {6  return 1;7}8
    +9if (typeof x === 'string') {10  const xUpdated = f(x);11  (xUpdated: number);12  (x: string);13}

    I'm in a closure and Flow ignores the if check that asserts that foo.bar is defined. Why?

    In the previous section we showed how refinements are lost after a function call. The exact same thing happens within closures, since +Flow does not track how your value might change before the closure is called:

    1const people = [{age: 12}, {age: 18}, {age: 24}];2const oldPerson: {age: ?number} = {age: 70};3if (oldPerson.age) {4  people.forEach(person => {5    console.log(`The person is ${person.age} and the old one is ${oldPerson.age}`);
    6 })7}
    5:67-5:79: Cannot coerce `oldPerson.age` to string because null or undefined [1] should not be coerced. [incompatible-type]

    The solution here is to move the if check in the forEach, or to assign the age to an intermediate variable:

    1const people = [{age: 12}, {age: 18}, {age: 24}];2const oldPerson: {age: ?number} = {age: 70};3if (oldPerson.age) {4  const age = oldPerson.age;5  people.forEach(person => {6    console.log(`The person is ${person.age} and the old one is ${age}`);7  })8}

    But Flow should understand that this function cannot invalidate this refinement, right?

    Flow is not complete, so it cannot check all code perfectly. Instead, +Flow will make conservative assumptions to try to be sound.

    Why can't I use a function in my if-clause to check the type of a property?

    Flow doesn't track refinements made in separated function calls:

    1const add = (first: number, second: number) => first + second;2const val: string | number = 1;3const isNumber = (valueToRefine: mixed) => typeof valueToRefine === 'number';4if (isNumber(val)) {5  add(val, 2);
    6}
    5:7-5:9: Cannot call `add` with `val` bound to `first` because string [1] is incompatible with number [2]. [incompatible-call]

    However, Flow has predicates functions that can do these checks via %checks:

    1const add = (first: number, second: number) => first + second;2const val: string | number = 1;3const isNumber = (valueToRefine: mixed): %checks => typeof valueToRefine === 'number';4if (isNumber(val)) {5  add(val, 2);6}

    Why can't I pass an Array<string> to a function that takes an Array<string | number>

    The function's argument allows string values in its array, but in this case Flow prevents the original array from receiving a number. +Inside the function, you would be able to push a number to the argument array, causing the type of the original array to no longer be accurate.

    You can fix this error by changing the type of the argument to $ReadOnlyArray<string | number>, making it covariant. +This prevents the function body from pushing anything to the array, allowing it to accept narrower types.

    As an example, this would not work:

    1const fn = (arr: Array<string | number>) => {2  arr.push(123); // Oops! Array<string> was passed in - now inaccurate3  return arr;4};5
    +6const arr: Array<string> = ['abc'];7
    +8fn(arr); // Error!
    8:4-8:6: Cannot call `fn` with `arr` bound to `arr` because number [1] is incompatible with string [2] in array element. Arrays are invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number. [incompatible-call]

    but with $ReadOnlyArray you can achieve what you were looking for:

    1const fn = (arr: $ReadOnlyArray<string | number>) => {2  // arr.push(321); NOTE! Since you are using $ReadOnlyArray<...> you cannot push anything to it3  return arr;4};5
    +6const arr: Array<string> = ['abc'];7
    +8fn(arr);

    Why can't I pass {a: string} to a function that takes {a: string | number}

    The function argument allows string values in its field, but in this case Flow prevents the original object from having a number written to it. +Within the body of the function you would be able to mutate the object so that the property a would receive a number, causing the type of the original object to no longer be accurate.

    You can fix this error by making the property covariant (read-only): {+a: string | number}. +This prevents the function body from writing to the property, making it safe to pass more restricted types to the function.

    As an example, this would not work:

    1const fn = (obj: {a: string | number}) => {2  obj.a = 123; // Oops! {a: string} was passed in - now inaccurate3  return obj;4};5
    +6const object: {a: string} = {a: 'str' };7
    +8fn(object); // Error!
    8:4-8:9: Cannot call `fn` with `object` bound to `obj` because number [1] is incompatible with string [2] in property `a`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-call]

    but with a covariant property you can achieve what you were looking for:

    1const fn = (obj: {+a: string | number}) => {2  // obj.a = 123 NOTE! Since you are using covariant {+a: string | number}, you can't mutate it3  return obj;4};5
    +6const object: {a: string} = { a: 'str' };7
    +8fn(object);

    Why can't I refine a union of objects?

    There are two potential reasons:

    1. You are using inexact objects.
    2. You are destructuring the object. When destructuring, Flow loses track of object properties.

    Broken example:

    1type Action =2  | {type: 'A', payload: string}3  | {type: 'B', payload: number};4
    +5// Not OK6const fn = ({type, payload}: Action) => {7  switch (type) {8    case 'A': return payload.length; // Error!
    9 case 'B': return payload + 10;10 }11}
    8:30-8:35: Cannot get `payload.length` because property `length` is missing in `Number` [1]. [prop-missing]

    Fixed example:

    1type Action =2  | {type: 'A', payload: string}3  | {type: 'B', payload: number};4
    +5// OK6const fn = (action: Action) => {7  switch (action.type) {8    case 'A': return action.payload.length;9    case 'B': return action.payload + 10;10  }11}

    I got a "Missing type annotation" error. Where does it come from?

    Flow requires type annotations at module boundaries to make sure it can scale. To read more about that, check out our blog post about that.

    The most common case you'll encounter is when exporting a function or React component. Flow requires you to annotate inputs. For instance in this example, Flow will complain:

    1export const add = a => a + 1;
    1:20-1:20: Cannot build a typed interface for this module. You should annotate the exports of this module with types. Missing type annotation at array pattern: [signature-verification-failure]
    1:20-1:20: Missing an annotation on `a`. [missing-local-annot]
    1:21-1:20: Cannot build a typed interface for this module. You should annotate the exports of this module with types. Missing type annotation at function return: [signature-verification-failure]

    The fix here is to add types to the parameters of add:

    1export const add = (a: number): number => a + 1;

    To see how you can annotate exported React components, check out our docs on HOCs.

    There are other cases where this happens, and they might be harder to understand. You'll get an error like Missing type annotation for U For instance, you wrote this code:

    1const array = ['a', 'b']2export const genericArray = array.map(a => a)
    2:29-2:45: Cannot build a typed interface for this module. You should annotate the exports of this module with types. Cannot determine the type of this call expression. Please provide an annotation, e.g., by adding a type cast around this expression. [signature-verification-failure]

    Here, Flow will complain on the export, asking for a type annotation. Flow wants you to annotate exports returned by a generic function. The type of Array.prototype.map is map<U>(callbackfn: (value: T, index: number, array: Array<T>) => U, thisArg?: any): Array<U>. The <U> corresponds to what is called a generic, to express the fact that the type of the function passed to map is linked to the type of the array.

    Understanding the logic behind generics might be useful, but what you really need to know to make your typings valid is that you need to help Flow to understand the type of genericArray.

    You can do that by annotating the exported constant:

    1const array = ['a', 'b']2export const genericArray: Array<string> = array.map(a => a)
    + + + + \ No newline at end of file diff --git a/en/docs/getting-started/index.html b/en/docs/getting-started/index.html new file mode 100644 index 00000000000..a5ab90188d1 --- /dev/null +++ b/en/docs/getting-started/index.html @@ -0,0 +1,31 @@ + + + + + +Getting Started | Flow + + + + + + + + + + + + + + +
    +

    Getting Started

    Flow is a static type checker for your JavaScript code. It does a lot of work +to make you more productive. Making you code faster, smarter, more confidently, +and to a bigger scale.

    Flow checks your code for errors through static type annotations. These +types allow you to tell Flow how you want your code to work, and Flow will +make sure it does work that way.

    1function square(n: number): number {2  return n * n;3}4
    +5square("2"); // Error!
    5:8-5:10: Cannot call `square` with `"2"` bound to `n` because string [1] is incompatible with number [2]. [incompatible-call]

    First step: install Flow.

    + + + + \ No newline at end of file diff --git a/en/docs/index.html b/en/docs/index.html new file mode 100644 index 00000000000..72eda85fa07 --- /dev/null +++ b/en/docs/index.html @@ -0,0 +1,26 @@ + + + + + +Documentation | Flow + + + + + + + + + + + + + + +
    +

    Documentation

    Guides and references for all you need to know about Flow.

    + + + + \ No newline at end of file diff --git a/en/docs/install/index.html b/en/docs/install/index.html new file mode 100644 index 00000000000..95925a860de --- /dev/null +++ b/en/docs/install/index.html @@ -0,0 +1,43 @@ + + + + + +Installation | Flow + + + + + + + + + + + + + + +
    +

    Installation

    Setup Compiler

    First you'll need to setup a compiler to strip away Flow types. You can +choose between Babel and +flow-remove-types.

    Babel is a compiler for JavaScript code that has +support for Flow. Babel will take your Flow code and strip out any type +annotations. Read more about using Babel.

    First install @babel/core, @babel/cli, and @babel/preset-flow with +either Yarn or npm.

    npm install --save-dev @babel/core @babel/cli @babel/preset-flow

    Next you need to create a .babelrc file at the root of your project with +"@babel/preset-flow" in your "presets".

    { "presets": ["@babel/preset-flow"] }

    If you then put all your source files in a src directory you can compile them +to another directory by running:

    ./node_modules/.bin/babel src/ -d lib/

    You can add this to your package.json scripts easily, alongside your "devDependencies" on Babel.

    {
    "name": "my-project",
    "main": "lib/index.js",
    "scripts": {
    "build": "babel src/ -d lib/",
    "prepublish": "yarn run build"
    }
    }

    Note: You'll probably want to add a prepublish script that runs this +transform as well, so that it runs before you publish your code to the npm +registry.

    Setup Flow

    Flow works best when installed per-project with explicit versioning rather than +globally.

    Luckily, if you're already familiar with npm or yarn, this process should +be pretty familiar!

    Add a devDependency on the flow-bin npm package

    npm install --save-dev flow-bin

    Add a "flow" script to your package.json

    {
    "name": "my-flow-project",
    "version": "1.0.0",
    "devDependencies": {
    "flow-bin": "^0.225.1"
    },
    "scripts": {
    "flow": "flow"
    }
    }

    Run Flow

    The first time, run:

    npm run flow init
    > my-flow-project@1.0.0 flow /Users/Projects/my-flow-project
    > flow "init"

    After running flow with init the first time, run:

    npm run flow
    > my-flow-project@1.0.0 flow /Users/Projects/my-flow-project
    > flow

    No errors!

    Setup ESLint

    If you use ESLint, you can read our page on ESLint to set it up to support Flow.

    + + + + \ No newline at end of file diff --git a/en/docs/lang/annotation-requirement/index.html b/en/docs/lang/annotation-requirement/index.html new file mode 100644 index 00000000000..c9b6e2b0c9c --- /dev/null +++ b/en/docs/lang/annotation-requirement/index.html @@ -0,0 +1,101 @@ + + + + + +Annotation Requirement | Flow + + + + + + + + + + + + + + +
    +

    Annotation Requirement

    Note: As of version 0.199 Flow uses Local Type Inference as its inference algorithm. +The rules in this section reflect the main design features in this inference scheme.

    Flow tries to avoid requiring type annotation for parts of programs where types can easily +be inferred from the immediate context of an expression, variable, parameter, etc.

    Variable declarations

    Take for example the following variable definition

    const len = "abc".length;

    All information necessary to infer the type of len is included in the initializer +"abc".length. Flow will first determine that "abc" is a string, and then that the +length property of a string is a number.

    The same logic can be applied for all const-like initializations. Where things +get a little more complicated is when variable initialization spans across multiple statements, +for example in

    1declare var maybeString: ?string;2
    +3let len;4if (typeof maybeString === "string") {5  len = maybeString.length;6} else {7  len = 0;8}

    Flow can still determine that len is a number, but in order to do so it looks +ahead to multiple initializer statements. See section on variable declarations +for details on how various initializer patterns determine the type of a variable, +and when an annotation on a variable declaration is necessary.

    Function Parameters

    Unlike variable declarations, this kind of "lookahead" reasoning cannot be used to determine +the type of function parameters. Consider the function

    function getLength(x) {
    return x.length;
    }

    There are many kinds of x on which we could access and return a length property: +an object with a length property, or a string, just to name a few. If later on in +the program we had the following calls to getLength

    getLength("abc");
    getLength({ length: 1 });

    one possible inference would be that x is a string | { length: number }. What this implies, +however, is that the type of getLength is determined by any part of the current +program. This kind of global reasoning can lead to surprising action-at-a-distance +behavior, and so is avoided. Instead, Flow requires that function parameters are annotated. Failure to +provide such a type annotation manifests as a [missing-local-annot] error on the parameter x, +and the body of the function is checked with x: any:

    1function getLength(x) {
    2 return x.length;3}4 +5const n = getLength(1); // no error since getLength's parameter type is 'any'
    1:20-1:20: Missing an annotation on `x`. [missing-local-annot]

    To fix this error, one can simply annotate x as

    1function getLength(x: string) {2  return x.length;3}

    The same requirement holds for class methods

    1class WrappedString {2  data: string;3  setStringNoAnnotation(x) {
    4 this.data = x;5 }6 setString(x: string) {7 this.data = x;8 }9}
    3:25-3:25: Missing an annotation on `x`. [missing-local-annot]

    Contextual Typing

    Function parameters do not always need to be explicitly annotated. In the case of a +callback function to a function call, the parameter type can easily +be inferred from the immediate context. Consider for example the following code

    const arr = [0, 1, 2];
    const arrPlusOne = arr.find(x => x % 2 === 1);

    Flow infers that the type of arr is Array<number>. Combining this with the builtin +information for Array.find, Flow can determine that the type of x => x % 2 + 1 +needs to be number => mixed. This type acts as a hint for Flow and provides enough +information to determine the type of x as number.

    Any attendant annotation can potentially act as a hint to a function parameter, for example

    1const fn1: (x: number) => number = x => x + 1;

    However, it is also possible that an annotation cannot be used as a function +parameter hint:

    1const fn2: mixed = x => x + 1;
    1:20-1:20: An annotation on `x` is required because Flow cannot infer its type from local context. [missing-local-annot]

    In this example the mixed type simply does not include enough information to +extract a candidate type for x.

    Flow can infer the types for unannotated parameters even when they are nested within +other expressions like objects. For example in +in

    1const fn3: { f: (number) => void } = { f: (x) => {(x: string)} };
    1:52-1:52: Cannot cast `x` to string because number [1] is incompatible with string [2]. [incompatible-cast]

    Flow will infer number as the type of x, and so the cast fails.

    Function Return Types

    Unlike function parameters, a function's return type does not need to be annotated in general. +So the above definition of getLength won't raise any Flow errors.

    There are, however, a couple of notable exceptions to this rule. The first one is +class methods. If we included to the WrappedString class a getString method +that returns the internal data property:

    1class WrappedString {2  data: string;3  getString(x: string) {
    4 return this.data;5 }6}
    3:23-3:22: Missing an annotation on return. [missing-local-annot]

    Flow would complain that getString is missing an annotation on the return.

    The second exception is recursive definitions. A trivial example of this would be

    1function foo() {
    2 return bar();3}4 +5function bar() {6 return foo();7}
    1:1-1:14: The following definitions recursively depend on each other, and Flow cannot compute their types: + - function [1] depends on other definition [2] + - function [3] depends on other definition [4] +Please add type annotations to these definitions [5] [6] [definition-cycle]

    The above code raises a [definition-cycle] error, which points to the two locations +that form a dependency cycle, the two missing return annotations. Adding +a return annotation to either function would resolve the issue.

    Effectively, the requirement on an annotation for method returns is a special-case +of the recursive definition restriction. The recursion is possible through access on +this.

    Generic Calls

    In calls to generic functions the type of the result may +depend on the types of the values passed in as arguments. +This section discusses how this result is computed, when type arguments are not +explicitly provided.

    Consider for example the definition

    declare function map<T, U>(
    f: (T) => U,
    array: $ReadOnlyArray<T>,
    ): Array<U>;

    and a potential call with arguments x => x + 1 and [1, 2, 3]:

    map(x => x + 1, [1, 2, 3]);

    Here Flow infers that the type of x is number.

    Some other common examples of generic calls are calling the constructor of the generic +Set class +or calling useState from the React library:

    1const set = new Set([1, 2, 3]);2
    +3import { useState } from 'react';4const [num, setNum] = useState(42);

    Flow here infers that the type of set is Set<number>, and that num and setNum +are number and (number) => void, respectively.

    Computing a Solution

    Computing the result of a generic call amounts to:

    1. coming up with a solution for T and U that does not contain generic parts,
    2. replacing T and U with the solution in the signature of map, and
    3. performing a call to this new signature of map.

    This process is designed with two goals in mind:

    • Soundness. The results need to lead to a correct call when we reach step (3).
    • Completeness. The types Flow produces need to be as precise and informative as possible, +to ensure that other parts of the program will be successfully checked.

    Let's see how these two goals come into play in the map example from above.

    Flow detects that $ReadOnlyArray<T> needs to be compatible with the type of [1, 2, 3]. +It can therefore infer that T is number.

    With the knowledge of T it can now successfully check x => x + 1. The parameter x +is contextually typed as number, and thus the result x + 1 is also a number. +This final constraint allows us to compute U as a number too.

    The new signature of map after replacing the generic parts with the above solution +is

    (f: (number) => number, array: $ReadOnlyArray<number>) => Array<number>

    It is easy to see that the call would be successfully checked.

    Errors during Polymorphic Calls

    If the above process goes on smoothly, you should not be seeing any errors associated with the call. +What happens though when this process fails?

    There are two reasons why this process could fail:

    Under-constrained Type Parameters

    There are cases where Flow might not have enough information to decide the type of a type parameter. +Let's examine again a call to the builtin generic +Set class +constructor, this time without passing any arguments:

    1const set = new Set();
    2set.add("abc");
    1:17-1:19: Cannot call `Set` because `T` [1] is underconstrained by new `Set` [2]. Either add explicit type arguments or cast the expression to your expected type. [underconstrained-implicit-instantiation]

    During the call to new Set, we are not providing enough information for Flow to +determine the type for T, even though the subsequent call to set.add clearly +implies that T will be a string. Remember that inference of type arguments is +local to the call, so Flow will not attempt to look ahead in later statements +to determine this.

    In the absence of information, Flow would be at liberty to infer any type +as T: any, mixed, empty, etc. +This kind of decision is undesirable, as it can lead to surprising results. +For example, if we silently decided on Set<empty> then the call to set.add("abc") would +fail with an incompatibility between string and empty, without a clear indication +of where the empty came from.

    So instead, in situations like this, you'll get an [underconstrained-implicit-instantiation] error. +The way to fix this error is by adding a type annotation. There a few potential ways to do this:

    • Add an annotation at the call-site in one of two ways:

      • an explicit type argument
        const set = new Set<string>();
      • an annotation on the initialization variable:
        const set: Set<string> = new Set();
    • Add a default type on the type parameter T at the definition of the class:

      declare class SetWithDefault<T = string> extends $ReadOnlySet<T> {
      constructor(iterable?: ?Iterable<T>): void;
      // more methods ...
      }

      In the absence of any type information at the call-site, Flow will use the default +type of T as the inferred type argument:

      const defaultSet = new SetWithDefault(); // defaultSet is SetWithDefault<string>

    Incompatibility Errors

    Even when Flow manages to infer non-generic types for the type parameters in a generic +call, these types might still lead to incompatibilities either in the current call or in +code later on.

    For example, if we had the following call to map:

    1declare function map<T, U>(f: (T) => U, array: $ReadOnlyArray<T>): Array<U>;2map(x => x + 1, [{}]);
    2:10-2:14: Cannot use operator `+` with operands object literal [1] and number [2] [unsafe-addition]

    Flow will infer T as {}, and therefore type x as {}. This will cause an error when checking the arrow function +since the + operation is not allowed on objects.

    Finally, a common source of errors is the case where the inferred type in a generic +call is correct for the call itself, but not indicative of the expected use later in the code. +For example, consider

    1import { useState } from 'react';2const [str, setStr] = useState("");3
    +4declare var maybeString: ?string;5setStr(maybeString);
    5:8-5:18: Cannot call `setStr` with `maybeString` bound to the first parameter because: [incompatible-call] Either null or undefined [1] is incompatible with function type [2]. Or null or undefined [1] is incompatible with string [3].

    Passing the string "" to the call to useState makes Flow infer string as the type +of the state. So setStr will also expect a string as input when called later on, +and therefore passing a ?string will be an error.

    Again, to fix this error it suffices to annotate the expected "wider" type of state +when calling useState:

    const [str, setStr] = useState<?string>("");

    Empty Array Literals

    Empty array literals ([]) are handled specially in Flow. You can read about their behavior and requirements.

    + + + + \ No newline at end of file diff --git a/en/docs/lang/depth-subtyping/index.html b/en/docs/lang/depth-subtyping/index.html new file mode 100644 index 00000000000..fc44ccb9ff9 --- /dev/null +++ b/en/docs/lang/depth-subtyping/index.html @@ -0,0 +1,39 @@ + + + + + +Depth Subtyping | Flow + + + + + + + + + + + + + + +
    +

    Depth Subtyping

    Assume we have two classes, which have a subtype relationship using extends:

    1class Person {2  name: string;3}4class Employee extends Person {5  department: string;6}

    It's valid to use an Employee instance where a Person instance is expected.

    1class Person { name: string }2class Employee extends Person { department: string }3
    +4const employee: Employee = new Employee();5const person: Person = employee; // OK

    However, it is not valid to use an object containing an Employee instance +where an object containing a Person instance is expected.

    1class Person { name: string }2class Employee extends Person { department: string }3
    +4const employee: {who: Employee} = {who: new Employee()};5const person: {who: Person} = employee; // Error
    5:31-5:38: Cannot assign `employee` to `person` because `Person` [1] is incompatible with `Employee` [2] in property `who`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-type]

    This is an error because objects are mutable. The value referenced by the +employee variable is the same as the value referenced by the person +variable.

    person.who = new Person();

    If we write into the who property of the person object, we've also changed +the value of employee.who, which is explicitly annotated to be an Employee +instance.

    If we prevented any code from ever writing a new value to the object through +the person variable, it would be safe to use the employee variable. Flow +provides a syntax for this:

    1class Person { name: string }2class Employee extends Person { department: string }3
    +4const employee: {who: Employee} = {who: new Employee()};5const person: {+who: Person} = employee; // OK6person.who = new Person(); // Error!
    6:8-6:10: Cannot assign `new Person()` to `person.who` because property `who` is not writable. [cannot-write]

    The plus sign + indicates that the who property is covariant. +Using a covariant property allows us to use objects which have subtype-compatible +values for that property. By default, object properties are invariant, which allow +both reads and writes, but are more restrictive in the values they accept.

    Read more about property variance.

    + + + + \ No newline at end of file diff --git a/en/docs/lang/lazy-modes/index.html b/en/docs/lang/lazy-modes/index.html new file mode 100644 index 00000000000..e1d833e9d43 --- /dev/null +++ b/en/docs/lang/lazy-modes/index.html @@ -0,0 +1,46 @@ + + + + + +Lazy Mode | Flow + + + + + + + + + + + + + + +
    +

    Lazy Mode

    By default, the Flow server will typecheck all your code. This way it can answer +questions like "are there any Flow errors anywhere in my code". This is very +useful for tooling, like a continuous integration hook which prevents code +changes which introduce Flow errors.

    However, sometimes a Flow user might not care about all the code. If they are +editing a file foo.js, they might only want Flow to typecheck the subset of +the repository needed to answer questions about foo.js. Since Flow would only +check a smaller number of files, this would be faster. This is the motivation +behind Flow's lazy mode.

    Classifying Files

    Lazy mode classifes your code into four categories:

    1. Focused files. These are the files which the user cares about.
    2. Dependent files. These are the files which depend on the focused files. +Changes to the focused files might cause type errors in the dependent files.
    3. Dependency files. These are the files which are needed in order to +typecheck the focused or dependent files.
    4. Unchecked files. All other files.

    Lazy mode will still find all the JavaScript files and parse them. But it won't +typecheck the unchecked files.

    Choosing Focused Files

    Flow will focus files when they change on disk, using Flow's built-in file watcher +("dfind") or Watchman.

    So, all files that change while Flow is running will be focused. But what about +files that change when Flow is not running? If you're using Git or Mercurial, +Flow will ask it for all of the files that have changed since the mergebase +with "master" (the common ancestor of the current commit and the master branch).

    If you're not using "master" (e.g. "main" instead), you can change this with +the file_watcher.mergebase_with config. If you're working from a clone, you +might want to set this to "origin/master" (for Git), which will focus all files +that have changed locally, even if you commit to your local "master" branch.

    The net result is that Flow will find the same errors in lazy mode as in a full +check, so long as there are no errors upstream. For example, if your CI ensures +that there are no errors in "master," then it's redundant for Flow to check all +of the unchanged files for errors that can't exist.

    Using Lazy Mode

    To enable lazy mode, set lazy_mode=true in the .flowconfig.

    To start Flow in lazy mode manually, run

    flow start --lazy-mode true

    Forcing Flow to Treat a File as Focused

    You can force Flow to treat one or more files as focused from the CLI.

    flow force-recheck --focus path/to/A.js path/to/B.js
    + + + + \ No newline at end of file diff --git a/en/docs/lang/nominal-structural/index.html b/en/docs/lang/nominal-structural/index.html new file mode 100644 index 00000000000..a778f9bdb5c --- /dev/null +++ b/en/docs/lang/nominal-structural/index.html @@ -0,0 +1,39 @@ + + + + + +Nominal & Structural Typing | Flow + + + + + + + + + + + + + + +
    +

    Nominal & Structural Typing

    A static type checker can use either the name (nominal typing) or the structure (structural typing) +of types when comparing them against other types (like when checking if one is a subtype of another).

    Nominal typing

    Languages like C++, Java, and Swift have primarily nominal type systems.

    // Pseudo code: nominal system
    class Foo { method(input: string) { /* ... */ } }
    class Bar { method(input: string) { /* ... */ } }

    let foo: Foo = new Bar(); // Error!

    In this pseudo-code example, the nominal type system errors even though both classes have a method of the same name and type. +This is because the name (and declaration location) of the classes is different.

    Structural typing

    Languages like Go and Elm have primarily structural type systems.

    // Pseudo code: structural system
    class Foo { method(input: string) { /* ... */ } }
    class Bar { method(input: string) { /* ... */ } }

    let foo: Foo = new Bar(); // Works!

    In this pseudo-code example, the structural type system allows a Bar to be used as a Foo, +since both classes have methods and fields of the same name and type.

    If the shape of the classes differ however, then a structural system would produce an error:

    // Pseudo code
    class Foo { method(input: string) { /* ... */ } }
    class Bar { method(input: number) { /* ... */ } }

    let foo: Foo = new Bar(); // Error!

    We've demonstrated both nominal and structural typing of classes, but there are +also other complex types like objects and functions which can also be either +nominally or structurally compared. +Additionally, a type system may have aspects of both structural and nominal systems.

    In Flow

    Flow uses structural typing for objects and functions, but nominal typing for classes.

    Functions are structurally typed

    When comparing a function type with a function it must have the same structure +in order to be considered valid.

    1type FuncType = (input: string) => void;2function func(input: string) { /* ... */ }3let test: FuncType = func; // Works!

    Objects are structurally typed

    When comparing an object type with an object it must have the same structure +in order to be considered valid.

    1type ObjType = {property: string};2let obj = {property: "value"};3let test: ObjType = obj; // Works

    Classes are nominally typed

    When you have two classes with the same structure, they still are not +considered equivalent because Flow uses nominal typing for classes.

    1class Foo { method(input: string) { /* ... */ } }2class Bar { method(input: string) { /* ... */ } }3let test: Foo = new Bar(); // Error!
    3:17-3:25: Cannot assign `new Bar()` to `test` because `Bar` [1] is incompatible with `Foo` [2]. [incompatible-type]

    If you wanted to use a class structurally you could do that using an interface:

    1interface Interface {2  method(value: string): void;3};4
    +5class Foo { method(input: string) { /* ... */ } }6class Bar { method(input: string) { /* ... */ } }7
    +8let test1: Interface = new Foo(); // Works9let test2: Interface = new Bar(); // Works

    Opaque types

    You can use opaque types to turn a previously structurally typed alias into a nominal one (outside of the file that it is defined).

    1// A.js2export type MyTypeAlias = string;3export opaque type MyOpaqueType = string;4
    +5const x: MyTypeAlias = "hi"; // Works6const y: MyOpaqueType = "hi"; // Works

    In a different file:

    // B.js
    import type {MyTypeAlias, MyOpaqueType} from "A.js";

    const x: MyTypeAlias = "hi"; // Works
    const y: MyOpaqueType = "hi"; // Error! `MyOpaqueType` is not interchangable with `string`
    // ^^^^ Cannot assign "hi" to y because string is incompatible with MyOpaqueType

    Flow Enums

    Flow Enums do not allow enum members with the same value, but which belong to different enums, to be used interchangeably.

    1enum A {2  X = "x",3}4enum B {5  X = "x",6}7
    +8const a: A = B.X; // Error!
    8:14-8:16: Cannot assign `B.X` to `a` because `B` [1] is incompatible with `A` [2]. [incompatible-type]
    + + + + \ No newline at end of file diff --git a/en/docs/lang/refinements/index.html b/en/docs/lang/refinements/index.html new file mode 100644 index 00000000000..f99c6680046 --- /dev/null +++ b/en/docs/lang/refinements/index.html @@ -0,0 +1,56 @@ + + + + + +Type Refinements | Flow + + + + + + + + + + + + + + +
    +

    Type Refinements

    Refinements allow us to narrow the type of a value based on conditional tests.

    For example, in the function below value is a union of "A" or "B".

    1function func(value: "A" | "B") {2  if (value === "A") {3    (value: "A");4  }5}

    Inside of the if block we know that value must be "A" because that's the only +time the if-statement will be true.

    The ability for a static type checker to be able to tell that the value inside +the if statement must be "A" is known as a refinement.

    Next we'll add an else block to our if statement.

    1function func(value: "A" | "B") {2  if (value === "A") {3    (value: "A");4  } else {5    (value: "B");6  }7}

    Inside of the else block we know that value must be "B" because it can only +be "A" or "B" and we've removed "A" from the possibilities.

    Ways to refine in Flow

    typeof checks

    You can use a typeof value === "<type>" check to refine a value to one of the categories supported by the typeof operator.

    The typeof operator can output "undefined","boolean", "number", "bigint", "string", "symbol", "function", or "object".

    Keep in mind that the typeof operator will return "object" for objects, but also null and arrays as well.

    1function func(value: mixed) {2  if (typeof value === "string") {3    (value: string);4  } else if (typeof value === "boolean") {5    (value: boolean);6  } else if (typeof value === "object") {7    // `value` could be null, an array, or an object8    (value: null | interface {} | $ReadOnlyArray<mixed>);9  }10}

    To check for null, use a value === null equality check.

    1function func(value: mixed) {2  if (value === null) {3    (value: null); // `value` is null4  }5}

    To check for arrays, use Array.isArray:

    1function func(value: mixed) {2  if (Array.isArray(value)) {3    (value: $ReadOnlyArray<mixed>); // `value` is an array4  }5}

    Equality checks

    As shown in the introductory example, you can use an equality check to narrow a value to a specific type. +This also applies to equality checks made in switch statements.

    1function func(value: "A" | "B" | "C") {2  if (value === "A") {3    (value: "A");4  } else {5    (value: "B" | "C");6  }7
    +8  switch (value) {9    case "A":10      (value: "A");11      break;12    case "B":13      (value: "B");14      break;15    case "C":16      (value: "C");17      break;18  }19}

    While in general it is not recommended to use == in JavaScript, due to the coercions it performs, +doing value == null (or value != null) checks value exactly for null and void. +This works well with Flow's maybe types, which create a union with null and void.

    1function func(value: ?string) {2  if (value != null) {3    (value: string);4  } else {5    (value: null | void);6  }7}

    You can refine a union of object types based on a common tag, which we call disjoint object unions:

    1type A = {type: "A", s: string};2type B = {type: "B", n: number};3
    +4function func(value: A | B) {5  if (value.type === "A") {6    // `value` is A7    (value.s: string); // Works8  } else {9    // `value` is B10    (value.n: number); // Works11  }12}

    Truthiness checks

    You can use non-booleans in JavaScript conditionals. +0, NaN, "", null, and undefined will all coerce to false (and so are considered "falsey"). +Other values will coerce to true (and so are considered "truthy").

    1function func(value: ?string) {2  if (value) {3    (value: string); // Works4  } else {5    (value: null | void); // Error! Could still be the empty string ""
    6 }7}
    5:6-5:10: Cannot cast `value` to union type because string [1] is incompatible with literal union [2]. [incompatible-cast]

    You can see in the above example why doing a truthy check when your value can be a string or number is not suggested: +it is possible to unintentionally check against the "" or 0. +We created a Flow lint called sketchy-null to guard against this scenario:

    1// flowlint sketchy-null:error2function func(value: ?string) {3  if (value) { // Error!
    4 }5}
    3:7-3:11: Sketchy null check on string [1] which is potentially an empty string. Perhaps you meant to check for null or undefined [2]? [sketchy-null-string]

    instanceof checks

    You can use the instanceof operator to narrow a value as well. +It checks if the supplied constructor's prototype is anywhere in a value's prototype chain.

    1class A {2  amaze(): void {}3}4class B extends A {5  build(): void {}6}7
    +8function func(value: mixed) {9  if (value instanceof B) {10    value.amaze(); // Works11    value.build(); // Works12  }13
    +14  if (value instanceof A) {15    value.amaze(); // Works16    value.build(); // Error
    17 }18 +19 if (value instanceof Object) {20 value.toString(); // Works21 }22}
    16:11-16:15: Cannot call `value.build` because property `build` is missing in `A` [1]. [prop-missing]

    Assignments

    Flow follows your control flow and narrows the type of a variable after you have assigned to it.

    1declare const b: boolean;2
    +3let x: ?string = b ? "str" : null;4
    +5(x: ?string);6
    +7x = "hi";8
    +9// We know `x` must now be a string after the assignment10(x: string); // Works

    Type Guards

    You can create a reusable refinement by defining a function which is a type guard.

    1function nonMaybe<T>(x: ?T): x is T {2  return x != null;3}4
    +5function func(value: ?string) {6  if (nonMaybe(value)) {7    (value: string); // Works!8  }9}

    Refinement Invalidations

    It is also possible to invalidate refinements, for example:

    1function otherFunc() { /* ... */ }2
    +3function func(value: {prop?: string}) {4  if (value.prop) {5    otherFunc();6    value.prop.charAt(0); // Error!
    7 }8}
    6:16-6:21: Cannot call `value.prop.charAt` because property `charAt` is missing in undefined [1]. [incompatible-use]

    The reason for this is that we don't know that otherFunc() hasn't done +something to our value. Imagine the following scenario:

    1const obj: {prop?: string} = {prop: "test"};2
    +3function otherFunc() {4  if (Math.random() > 0.5) {5    delete obj.prop;6  }7}8
    +9function func(value: {prop?: string}) {10  if (value.prop) {11    otherFunc();12    value.prop.charAt(0); // Error!
    13 }14}15 +16func(obj);
    12:16-12:21: Cannot call `value.prop.charAt` because property `charAt` is missing in undefined [1]. [incompatible-use]

    Inside of otherFunc() we sometimes remove prop. Flow doesn't know if the +if (value.prop) check is still true, so it invalidates the refinement.

    There's a straightforward way to get around this. Store the value before +calling another function and use the stored value instead. This way you can +prevent the refinement from invalidating.

    1function otherFunc() { /* ... */ }2
    +3function func(value: {prop?: string}) {4  if (value.prop) {5    const prop = value.prop;6    otherFunc();7    prop.charAt(0);8  }9}
    + + + + \ No newline at end of file diff --git a/en/docs/lang/subtypes/index.html b/en/docs/lang/subtypes/index.html new file mode 100644 index 00000000000..2fd4d2b013c --- /dev/null +++ b/en/docs/lang/subtypes/index.html @@ -0,0 +1,71 @@ + + + + + +Subsets & Subtypes | Flow + + + + + + + + + + + + + + +
    +

    Subsets & Subtypes

    What is a subtype?

    A type like number, boolean, or string describes a set of possible +values. A number describes every possible number, so a single number +(such as 42) would be a subtype of the number type. Conversely, number +would be a supertype of the type 42.

    If we want to know whether one type is the subtype of another, we need to look at +all the possible values for both types and figure out if the other has a +subset of the values.

    For example, if we had a TypeA which described the numbers 1 through 3 +(a union of literal types), and +a TypeB which described the numbers 1 through 5: TypeA would be considered +a subtype of TypeB, because TypeA is a subset of TypeB.

    1type TypeA = 1 | 2 | 3;2type TypeB = 1 | 2 | 3 | 4 | 5;

    Consider a TypeLetters which described the strings: "A", "B", "C", and a +TypeNumbers which described the numbers: 1, 2, 3. Neither of them would +be a subtype of the other, as they each contain a completely different set of +values.

    1type TypeLetters = "A" | "B" | "C";2type TypeNumbers =  1  |  2  |  3;

    Finally, if we had a TypeA which described the numbers 1 through 3, and a +TypeB which described the numbers 3 through 5. Neither of them would be a +subtype of the other. Even though they both have 3 and describe numbers, they +each have some unique items.

    1type TypeA = 1 | 2 | 3;2type TypeB = 3 | 4 | 5;

    When are subtypes used?

    Most of the work that Flow does is comparing types against one another.

    For example, in order to know if you are calling a function correctly, Flow +needs to compare the arguments you are passing with the parameters the +function expects.

    This often means figuring out if the value you are passing in is a subtype of +the value you are expecting.

    So if you write a function that expects the numbers 1 through 5, any subtype of +that set will be acceptable.

    1function f(param: 1 | 2 | 3 | 4 | 5) {2  // ...3}4
    +5declare const oneOrTwo: 1 |  2; // Subset of the input parameters type.6declare const fiveOrSix: 5 | 6; // Not a subset of the input parameters type.7
    +8f(oneOrTwo); // Works!9f(fiveOrSix); // Error!
    9:3-9:11: Cannot call `f` with `fiveOrSix` bound to `param` because number literal `6` [1] is incompatible with literal union [2]. [incompatible-call]

    Subtypes of complex types

    Flow needs to compare more than just sets of primitive values, it also needs to +be able to compare objects, functions, and every other type that appears in the +language.

    Subtypes of objects

    You can start to compare two objects by their keys. If one object contains all +the keys of another object, then it may be a subtype.

    For example, if we had an ObjectA which contained the key foo, and an +ObjectB which contained the keys foo and bar. Then it's possible that +ObjectB is a subtype of ObjectA, if ObjectA is inexact.

    1type ObjectA = {foo: string, ...};2type ObjectB = {foo: string, bar: number};3
    +4let objectB: ObjectB = {foo: 'test', bar: 42};5let objectA: ObjectA = objectB; // Works!

    But we also need to compare the types of the values. If both objects had a key +foo but one was a number and the other was a string, then one would not +be the subtype of the other.

    1type ObjectA = {foo: string, ...};2type ObjectB = {foo: number, bar: number};3
    +4let objectB: ObjectB = { foo: 1, bar: 2 };5let objectA: ObjectA = objectB; // Error!
    5:24-5:30: Cannot assign `objectB` to `objectA` because number [1] is incompatible with string [2] in property `foo`. [incompatible-type]

    If these values on the object happen to be other objects, we would have to +compare those against one another. We need to compare every value +recursively until we can decide if we have a subtype or not.

    Subtypes of functions

    Subtyping rules for functions are more complicated. So far, we've seen that A +is a subtype of B if B contains all possible values for A. For functions, +it's not clear how this relationship would apply. To simplify things, you can think +of a function type A as being a subtype of a function type B if functions of type +A can be used wherever a function of type B is expected.

    Let's say we have a function type and a few functions. Which of the functions can +be used safely in code that expects the given function type?

    1type FuncType = (1 | 2) => "A" | "B";2
    +3declare function f1(1 | 2): "A" | "B" | "C";4declare function f2(1 | null): "A" | "B";5declare function f3(1 | 2 | 3): "A";6
    +7(f1: FuncType); // Error
    8(f2: FuncType); // Error
    9(f3: FuncType); // Works!
    7:2-7:3: Cannot cast `f1` to `FuncType` because string literal `C` [1] is incompatible with literal union [2] in the return value. [incompatible-cast]
    8:2-8:3: Cannot cast `f2` to `FuncType` because literal union [1] is incompatible with number literal `2` [2] in the first parameter. [incompatible-cast]
    • f1 can return a value that FuncType never does, so code that relies on FuncType +might not be safe if f1 is used. Its type is not a subtype of FuncType.
    • f2 can't handle all the argument values that FuncType does, so code that relies on +FuncType can't safely use f2. Its type is also not a subtype of FuncType.
    • f3 can accept all the argument values that FuncType does, and only returns +values that FuncType does, so its type is a subtype of FuncType.

    In general, the function subtyping rule is this: a function type B is a subtype +of a function type A if and only if B's inputs are a superset of A's, and B's outputs +are a subset of A's. The subtype must accept at least the same inputs as its parent, +and must return at most the same outputs.

    The decision of which direction to apply the subtyping rule on inputs and outputs is +governed by variance, which is the topic of the next section.

    + + + + \ No newline at end of file diff --git a/en/docs/lang/type-hierarchy/index.html b/en/docs/lang/type-hierarchy/index.html new file mode 100644 index 00000000000..b69e2a491d8 --- /dev/null +++ b/en/docs/lang/type-hierarchy/index.html @@ -0,0 +1,28 @@ + + + + + +Type Hierarchy | Flow + + + + + + + + + + + + + + +
    +

    Type Hierarchy

    Types in Flow form a hierarchy based on subtyping:

    Click on a node to go to the documentation for that type.

    Types appearing higher in this graph are more general, while those appearing lower are more specific. +An arrow pointing from type A to type B means that A is a subtype of B. +For example, the type string is a subtype of ?string.

    How can any be at both the top and the bottom? Because it is unsafe. This is denoted with a dotted line.

    + + + + \ No newline at end of file diff --git a/en/docs/lang/types-and-expressions/index.html b/en/docs/lang/types-and-expressions/index.html new file mode 100644 index 00000000000..4115132c69b --- /dev/null +++ b/en/docs/lang/types-and-expressions/index.html @@ -0,0 +1,55 @@ + + + + + +Types & Expressions | Flow + + + + + + + + + + + + + + +
    +

    Types & Expressions

    In JavaScript there are many types of values: numbers, strings, booleans, +functions, objects, and more.

    1(1234: number);2("hi": string);3(true: boolean);4([1, 2]: Array<number>);5({prop: "value"}: {prop: string});6(function func(s: string) {}: string => void);

    These values can be used in many different ways:

    11 + 2;2"foo" + "bar";3!true;4[1, 2].push(3);5const obj = {prop: "s"};6let value = obj.prop;7obj.prop = "value";8function func(s: string) {}9func("value");

    All of these different expressions create a new type which is a result of the +types of values and the operations run on them.

    1let num: number = 1 + 2;2let str: string = "foo" + "bar";

    In Flow every value and expression has a type.

    Figuring out types statically

    Flow needs a way to be able to figure out the type of every expression. But it +can't just run your code to figure it out, if it did it would be affected by +any issues that your code has. For example, if you created an infinite loop +Flow would wait for it to finish forever.

    Instead, Flow needs to be able to figure out the type of a value by analyzing +it without running it (static analysis). It works its way through every known +type and starts to figure out what all the expressions around them result in.

    For example, to figure out the result of the following expression, Flow needs to +figure out what its values are first.

    val1 + val2;

    If the values are numbers, then the expression results in a number. If the +values are strings, then the expression results in a string. There are a number +of different possibilities here, so Flow must look up what the values are.

    If Flow is unable to figure out what the exact type is for each value, Flow +must figure out what every possible value is and check to make sure that the +code around it will still work with all of the possible types.

    Soundness and Completeness

    When you run your code, a single expression will only be run with a limited set +of values. But still Flow checks every possible value. In this way Flow is +checking too many things or over-approximating what will be valid code.

    By checking every possible value, Flow might catch errors that will not +actually occur when the code is run. Flow does this in order to be "sound".

    In type systems, soundness is the ability for a type checker to catch +every single error that might happen at runtime. This comes at the cost of +sometimes catching errors that will not actually happen at runtime.

    On the flip-side, completeness is the ability for a type checker to only +ever catch errors that would happen at runtime. This comes at the cost of +sometimes missing errors that will happen at runtime.

    In an ideal world, every type checker would be both sound and complete so +that it catches every error that will happen at runtime.

    Flow tries to be as sound and complete as possible. But because JavaScript was +not designed around a type system, Flow sometimes has to make a tradeoff. When +this happens Flow tends to favor soundness over completeness, ensuring that +code doesn't have any bugs.

    Soundness is fine as long as Flow isn't being too noisy and preventing you from +being productive. Sometimes when soundness would get in your way too much, Flow +will favor completeness instead. There's only a handful of cases where Flow +does this.

    Other type systems will favor completeness instead, only reporting real errors +in favor of possibly missing errors. Unit/Integration testing is an extreme +form of this approach. Often this comes at the cost of missing the errors that +are the most complicated to find, leaving that part up to the developer.

    + + + + \ No newline at end of file diff --git a/en/docs/lang/types-first/index.html b/en/docs/lang/types-first/index.html new file mode 100644 index 00000000000..e45d1cb251b --- /dev/null +++ b/en/docs/lang/types-first/index.html @@ -0,0 +1,80 @@ + + + + + +File Signatures (Types-First) | Flow + + + + + + + + + + + + + + +
    +

    File Signatures (Types-First)

    Flow checks codebases by processing each file separately in dependency +order. For every file containing important typing information for the checking +process, a signature needs to be extracted and stored in +main memory, to be used for files that depend on it. Flow relies on annotations +available at the boundaries of files to build these signatures. We call this +requirement of Flow's architecture Types-First.

    The benefit of this architecture is dual:

    1. It dramatically improves performance, in particular when it comes to +rechecks. Suppose we want Flow to check a file foo.js, for which it hasn't +checked its dependencies yet. Flow extracts the dependency signatures just by +looking at the annotations around the exports. This process is mostly +syntactic, and therefore much faster than full type inference that legacy versions +of Flow (prior to v0.125) used to perform in order to generate signatures.

    2. It improves error reliability. Inferred types often become complicated, and may +lead to errors being reported in downstream files, far away from their actual source. +Type annotations at file boundaries of files can help localize such errors, and +address them in the file that introduced them.

    The trade-off for this performance benefit is that exported parts of the code need to be +annotated with types, or to be expressions whose type can be trivially inferred +(for example numbers and strings).

    More information on the Types-First architecture can be found in this post.

    How to upgrade your codebase to Types-First

    Note: Types-first has been the default mode since v0.134 and the only available +mode since v0.143. No .flowconfig options are necessary to enable it since then. +In case you're upgrading your codebase from a much earlier version here are some +useful tools.

    Upgrade Flow version

    Types-first mode was officially released with version 0.125, but has been available in +experimental status as of version 0.102. If you are currently on an older +Flow version, you’d have to first upgrade Flow. Using the latest Flow version +is the best way to benefit from the performance benefits outlined above.

    Prepare your codebase for Types-First

    Types-first requires annotations at module boundaries in order to build type +signature for files. If these annotations are missing, then a signature-verification-failure +is raised, and the exported type for the respective part of the code will be any.

    To see what types are missing to make your codebase types-first ready, add the +following line to the [options] section of the .flowconfig file:

    well_formed_exports=true

    Consider for example a file foo.js that exports a function call to foo

    declare function foo<T>(x: T): T;
    module.exports = foo(1);

    The return type of function calls is currently not trivially inferable (due to +features like polymorphism, overloading etc.). Their result needs to be annotated +and so you’d see the following error:

    Cannot build a typed interface for this module. You should annotate the exports
    of this module with types. Cannot determine the type of this call expression. Please
    provide an annotation, e.g., by adding a type cast around this expression.
    (`signature-verification-failure`)

    4│ module.exports = foo(1);
    ^^^^^^

    To resolve this, you can add an annotation like the following:

    declare function foo<T>(x: T): T;
    module.exports = (foo(1): number);

    Note: As of version 0.134, types-first is the default mode. This mode automatically +enables well_formed_exports, so you would see these errors without explicitly +setting this flag. It is advisable to set types_first=false during this part of +the upgrade.

    Seal your intermediate results

    As you make progress adding types to your codebase, you can include directories +so that they don’t regress as new code gets committed, and until the entire project +has well-formed exports. You can do this by adding lines like the following to your +.flowconfig:

    well_formed_exports.includes=<PROJECT_ROOT>/path/to/directory

    Warning: That this is a substring check, not a regular expression (for performance +reasons).

    A codemod for large codebases

    Adding the necessary annotations to large codebases can be quite tedious. To ease +this burden, we are providing a codemod based on Flow's inference, that can be +used to annotate multiple files in bulk. See this tutorial for more.

    Enable the types-first flag

    Once you have eliminated signature verification errors, you can turn on the types-first +mode, by adding the following line to the [options] section of the .flowconfig file:

    types_first=true

    You can also pass --types-first to the flow check or flow start commands.

    The well_formed_exports flag from before is implied by types_first. Once +this process is completed and types-first has been enabled, you can remove +well_formed_exports.

    Unfortunately, it is not possible to enable types-first mode for part of your repo; this switch +affects all files managed by the current .flowconfig.

    Note: The above flags are available in versions of Flow >=0.102 with the experimental. +prefix (and prior to v0.128, it used whitelist in place of includes):

    experimental.well_formed_exports=true
    experimental.well_formed_exports.whitelist=<PROJECT_ROOT>/path/to/directory
    experimental.types_first=true

    Note: If you are using a version where types-first is enabled by default (ie. >=0.134), +make sure you set types_first=false in your .flowconfig while running the codemods.

    Deal with newly introduced errors

    Switching between classic and types-first mode may cause some new Flow errors, +besides signature-verification failures that we mentioned earlier. These errors +are due differences in the way types based on annotations are interpreted, compared +to their respective inferred types.

    Below are some common error patterns and how to overcome them.

    Array tuples treated as regular arrays in exports

    In types-first, an array literal in an export position

    module.exports = [e1, e2];

    is treated as having type Array<t1 | t2>, where e1 and e2 have types t1 +and t2, instead of the tuple type [t1, t2].

    In classic mode, the inferred type encompassed both types at the same time. This +might cause errors in importing files that expect for example to find type t1 +in the first position of the import.

    Fix: If a tuple type is expected, then the annotation [t1, t2] needs to be +explicitly added on the export side.

    Indirect object assignments in exports

    Flow allows the code

    function foo(): void {}
    foo.x = () => {};
    foo.x.y = 2;
    module.exports = foo;

    but in types-first the exported type will be

    {
    (): void;
    x: () => void;
    }

    In other words it won’t take into account the update on y.

    Fix: To include the update on y in the exported type, the export will need +to be annotated with the type

    {
    (): void;
    x: { (): void; y: number; };
    };

    The same holds for more complex assignment patterns like

    function foo(): void {}
    Object.assign(foo, { x: 1});
    module.exports = foo;

    where you’ll need to manually annotate the export with { (): void; x: number }, +or assignments preceding the function definition

    foo.x = 1;
    function foo(): void {}
    module.exports = foo;

    Note that in the last example, Flow types-first will pick up the static update if +it was after the definition:

    function foo(): void {}
    foo.x = 1;
    module.exports = foo;

    Exported variables with updates

    The types-first signature extractor will not pick up subsequent update of an exported +let-bound variables. Consider the example

    let foo: number | string = 1;
    foo = "blah";
    module.exports = foo;

    In classic mode the exported type would be string. In types-first it will be +number | string, so if downstream typing depends on the more precise type, then +you might get some errors.

    Fix: Introduce a new variable on the update and export that one. For example

    const foo1: number | string = 1;
    const foo2 = "blah";
    module.exports = foo2;
    + + + + \ No newline at end of file diff --git a/en/docs/lang/variables/index.html b/en/docs/lang/variables/index.html new file mode 100644 index 00000000000..5b71eba7a7a --- /dev/null +++ b/en/docs/lang/variables/index.html @@ -0,0 +1,72 @@ + + + + + +Variable Declarations | Flow + + + + + + + + + + + + + + +
    +

    Variable Declarations

    When you are declaring a new variable, you may optionally declare its type.

    JavaScript has three ways of declaring local variables:

    • var - declares a variable, optionally assigning a value. +(MDN)
    • let - declares a block-scoped variable, optionally assigning a value. +(MDN)
    • const - declares a block-scoped variable, assigning a value that cannot be re-assigned. +(MDN)

    In Flow these fall into two groups:

    • let and var - variables that can be reassigned.
    • const - variables that cannot be reassigned.
    1var varVariable = 1;2let letVariable = 1;3const constVariable = 1;4
    +5varVariable = 2;   // Works!6letVariable = 2;   // Works!7constVariable = 2; // Error!
    7:1-7:13: Cannot reassign constant `constVariable` [1]. [reassign-const]

    const

    Since a const variable cannot be re-assigned at a later time it is fairly +simple.

    Flow can either infer the type from the value you are assigning to it or you +can provide it with a type.

    1const foo /* : number */ = 1;2const bar: number = 2;

    var and let 0.186

    Since var and let can be re-assigned, there's a few more rules you'll need +to know about.

    When you provide a type, you will be able to re-assign the value, but it must +always be of a compatible type.

    1let foo: number = 1;2foo = 2;   // Works!3foo = "3"; // Error!
    3:7-3:9: Cannot assign `"3"` to `foo` because string [1] is incompatible with number [2]. [incompatible-type]

    When the variable has no annotation, Flow infers a precise type based on +their initializer or initial assignment. All subsequent assignments +to that variable will be constrained by this type. This section shows some examples +of how Flow determines what type an unannotated variable is inferred to have.

    If you want a variable to have a different type than what Flow infers for it, +you can always add a type annotation to the variable’s declaration. That will +override everything discussed in this page!

    Variables initialized at their declarations

    The common case for unannotated variables is very straightforward: when a +variable is declared with an initializer that is not the literal null, that +variable will from then on have the type of the initializer, and future writes +to the variable will be constrained by that type.

    1import * as React from 'react';2
    +3type Props = $ReadOnly<{ prop: string }>;4
    +5declare var x: number;6declare var y: number;7declare var props: Props;8
    +9let product = Math.sqrt(x) + y;10// `product` has type `number`11
    +12let Component = ({prop}: Props): React.Node => { return <div/> }13// `Component` has type`React.ComponentType<Props>`14
    +15let element = <Component {...props} />16// `element` has type `React.Element<React.ComponentType<Props>>`17
    +18/* Let's define a new component */19
    +20type OtherProps = $ReadOnly<{ ...Props, extra_prop: number }>;21declare var OtherComponent: (OtherProps) => React.Node;22declare var other_props: OtherProps23
    +24/* Any subsequent assignments to `product`, `Component`, or `element` will be25 * checked against the types that Flow infers for the initializers, and if26 * conflicting types are assigned, Flow will signal an error. */27
    +28product = "Our new product is...";
    29Component = ({prop}: OtherProps): React.Node => { return <div/> };
    30element = <OtherComponent {...other_props} />;
    28:11-28:33: Cannot assign `'Our new pr...'` to `product` because string [1] is incompatible with number [2]. All writes to `product` must be compatible with the type of its initializer [3]. Add an annotation to `product` [3] if a different type is desired. [incompatible-type]
    29:13-29:65: Cannot assign function to `Component` because property `extra_prop` is missing in object type [1] but exists in object type [2] in the first parameter. All writes to `Component` must be compatible with the type of its initializer [3]. Add an annotation to `Component` [3] if a different type is desired. [prop-missing]
    30:11-30:45: Cannot assign `<OtherComponent />` to `element` because property `extra_prop` is missing in object type [1] but exists in object type [2] in type argument `P` [3]. All writes to `element` must be compatible with the type of its initializer [4]. Add an annotation to `element` [4] if a different type is desired. [prop-missing]
    30:12-30:25: Cannot assign `<OtherComponent />` to `element` because property `extra_prop` is missing in object type [1] but exists in object type [2] in the first parameter of type argument `ElementType` [3]. All writes to `element` must be compatible with the type of its initializer [4]. Add an annotation to `element` [4] if a different type is desired. [prop-missing]

    If you want these examples to typecheck, and for Flow to realize that different +kinds of values can be written to these variables, you must add a type +annotation reflecting this more general type to their declarations:

    let product: number | string = ...
    let Component: mixed = ... // No good type to represent this! Consider restructuring
    let element: React.Node = ...

    Variables declared without initializers

    Often variables are declared without initializers. In such cases, Flow will try +to choose the "first" assignment or assignments to the variable to define its +type. "First" here means both top-to-bottom and nearer-scope to +deeper-scope—we’ll try to choose an assignment that happens in the same function +scope as the variable’s declaration, and only look inside nested functions if we +don’t find any assignments locally:

    1let topLevelAssigned;2function helper() {3  topLevelAssigned = 42; // Error: `topLevelAssigned` has type `string`
    4}5topLevelAssigned = "Hello world"; // This write determines the var's type6topLevelAssigned = true; // Error: `topLevelAssigned` has type `string`
    3:22-3:23: Cannot assign `42` to `topLevelAssigned` because number [1] is incompatible with string [2]. All writes to `topLevelAssigned` must be compatible with the type of its initial assignment [3]. Add an annotation to `topLevelAssigned` [4] if a different type is desired. [incompatible-type]
    6:20-6:23: Cannot assign `true` to `topLevelAssigned` because boolean [1] is incompatible with string [2]. All writes to `topLevelAssigned` must be compatible with the type of its initial assignment [3]. Add an annotation to `topLevelAssigned` [4] if a different type is desired. [incompatible-type]

    If there are two or more possible "first assignments," due to an if- or +switch-statement, they’ll both count—this is one of the few ways that Flow +will still infer unions for variable types:

    1let myNumberOrString;2declare var condition: boolean;3if (condition) {4  myNumberOrString = 42; // Determines type5} else {6  myNumberOrString = "Hello world"; // Determines type7}8myNumberOrString = 21; // fine, compatible with type9myNumberOrString = "Goodbye"; // fine, compatible with type10myNumberOrString = false; // Error: `myNumberOrString` has type `number | string`
    10:20-10:24: Cannot assign `false` to `myNumberOrString` because: [incompatible-type] Either boolean [1] is incompatible with number [2]. Or boolean [1] is incompatible with string [3]. +All writes to `myNumberOrString` must be compatible with the type of one of its initial assignments [4], [5]. Add an annotation to `myNumberOrString` [6] if a different type is desired.

    This only applies when the variable is written to in both branches, however. If +only one branch contains a write, that write becomes the type of the variable +afterwards (though Flow will still check to make sure that the variable is +definitely initialized):

    1let oneBranchAssigned;2declare var condition: boolean;3if (condition) {4  oneBranchAssigned = "Hello world!";5}6oneBranchAssigned.toUpperCase(); // Error: `oneBranchAssigned` may be uninitialized
    7oneBranchAssigned = 42; // Error: `oneBranchAssigned` has type `string`
    6:19-6:29: Cannot call `oneBranchAssigned.toUpperCase` because property `toUpperCase` is missing in possibly uninitialized variable [1]. [incompatible-use]
    7:21-7:22: Cannot assign `42` to `oneBranchAssigned` because number [1] is incompatible with string [2]. All writes to `oneBranchAssigned` must be compatible with the type of its initial assignment [3]. Add an annotation to `oneBranchAssigned` [4] if a different type is desired. [incompatible-type]

    Variables initialized to null

    Finally, the one exception to the general principle that variable’s types are +determined by their first assignment(s) is when a variable is initialized as (or +whose first assignment is) the literal value null. In such cases, the next +non-null assignment (using the same rules as above) determines the rest of the +variable’s type, and the overall type of the variable becomes a union of null +and the type of the subsequent assignment. This supports the common pattern +where a variable starts off as null before getting assigned by a value of some +other type:

    1function findIDValue<T>(dict: {[key: string]: T}): T {2  let idVal = null; // initialized as `null`3  for (const key in dict) {4    if (key === 'ID') {5      idVal = dict[key]; // Infer that `idVal` has type `null | T`6    }7  }8  if (idVal === null) {9    throw new Error("No entry for ID!");10  }11  return idVal;12}

    Catch variables 0.197

    If a catch variable does not have an annotation, its default type is any.

    You can optionally annotate it with exactly mixed or any. E.g.

    1try {2} catch (e: mixed) {3  if (e instanceof TypeError) {4    (e: TypeError); // OK5  } else if (e instanceof Error) {6    (e: Error); // OK7  } else {8    throw e;9  }10}

    By using mixed, you can improve your safety and Flow coverage, +at the trade-off of increased runtime checks.

    You can change the default type of catch variables when there is no annotation by setting the use_mixed_in_catch_variables option to true.

    + + + + \ No newline at end of file diff --git a/en/docs/lang/variance/index.html b/en/docs/lang/variance/index.html new file mode 100644 index 00000000000..c969f9e3d8f --- /dev/null +++ b/en/docs/lang/variance/index.html @@ -0,0 +1,63 @@ + + + + + +Type Variance | Flow + + + + + + + + + + + + + + +
    +

    Type Variance

    Variance is a topic that comes up fairly often in type systems. It is used to determine +how type parameters behave with respect to subtyping.

    First we'll setup a couple of classes that extend one another.

    class Noun {}
    class City extends Noun {}
    class SanFrancisco extends City {}

    We saw in the section on generic types +that it is possible to +use variance sigils to describe when a type parameter is used in an output position, +when it is used in an input position, and when it is used in either one.

    Here we'll dive deeper into each one of these cases.

    Covariance

    Consider for example the type

    type CovariantOf<X> = {
    +prop: X;
    getter(): X;
    }

    Here, X appears strictly in output positions: it is used to read out information +from objects o of type CovariantOf<X>, either through property accesses o.prop, +or through calls to o.getter().

    Notably, there is no way to input data through the reference to the object o, +given that prop is a readonly property.

    When these conditions hold, we can use the sigil + to annotate X in the definition +of CovariantOf:

    type CovariantOf<+X> = {
    +prop: X;
    getter(): X;
    }

    These conditions have important implications on the way that we can treat an object +of type CovariantOf<T> with respect to subtyping. As a reminder, subtyping rules +help us answer the question: "given some context that expects values of type +T, is it safe to pass in values of type S?" If this is the case, then S is a +subtype of T.

    Using our CovariantOf definition, and given that City is a subtype of Noun, it is +also the case that CovariantOf<City> is a subtype of CovariantOf<Noun>. Indeed

    • it is safe to read a property prop of type City when a property +of type Noun is expected, and
    • it is safe to return values of type City when calling getter(), when +values of type Noun are expected.

    Combining these two, it will always be safe to use CovariantOf<City> whenever a +CovariantOf<Noun> is expected.

    A commonly used example where covariance is used is $ReadOnlyArray<T>. +Just like with the prop property, one cannot use a $ReadOnlyArray reference to write data +to an array. This allows more flexible subtyping rules: Flow only needs to prove that +S is a subtype of T to determine that $ReadOnlyArray<S> is also a subtype +of $ReadOnlyArray<T>.

    Invariance

    Let's see what happens if we try to relax the restrictions on the use of X and make, +for example, prop be a read-write property. We arrive at the type definition

    type NonCovariantOf<X> = {
    prop: X;
    getter(): X;
    };

    Let's also declare a variable nonCovariantCity of type NonCovariantOf<City>

    declare var nonCovariantCity: NonCovariantOf<City>;

    Now, it is not safe to consider nonCovariantCity as an object of type NonCovariantOf<Noun>. +Were we allowed to do this, we could have the following declaration:

    const nonCovariantNoun: NonCovariantOf<Noun> = nonCovariantCity;

    This type permits the following assignment:

    nonCovariantNoun.prop = new Noun;

    which would invalidate the original type for nonCovariantCity as it would now be storing +a Noun in its prop field.

    What distinguishes NonCovariantOf from the CovariantOf definition is that type parameter X is used both +in input and output positions, as it is being used to both read and write to +property prop. Such a type parameter is called invariant and is the default case +of variance, thus requiring no prepending sigil:

    type InvariantOf<X> = {
    prop: X;
    getter(): X;
    setter(X): void;
    };

    Assuming a variable

    declare var invariantCity: InvariantOf<City>;

    it is not safe to use invariantCity in a context where:

    • an InvariantOf<Noun> is needed, because we should not be able to write a Noun to property +prop.
    • an InvariantOf<SanFrancisco> is needed, because reading prop could return a City which +may not be SanFrancisco.

    In orther words, InvariantOf<City> is neither a subtype of InvariantOf<Noun> nor +a subtype of InvariantOf<SanFrancisco>.

    Contravariance

    When a type parameter is only used in input positions, we say that it is used in +a contravariant way. This means that it only appears in positions through which +we write data to the structure. We use the sigil - to describe this kind of type +parameters:

    type ContravariantOf<-X> = {
    -prop: X;
    setter(X): void;
    };

    Common contravariant positions are write-only properties and "setter" functions.

    An object of type ContravariantOf<City> can be used whenever an object of type +ContravariantOf<SanFrancisco> is expected, but not when a ContravariantOf<Noun> is. +In other words, ContravariantOf<City> is a subtype of ContravariantOf<SanFrancisco>, but not +ContravariantOf<Noun>. +This is because it is fine to write SanFrancisco into a property that can have any City written +to, but it is not safe to write just any Noun.

    + + + + \ No newline at end of file diff --git a/en/docs/lang/width-subtyping/index.html b/en/docs/lang/width-subtyping/index.html new file mode 100644 index 00000000000..770dad827e1 --- /dev/null +++ b/en/docs/lang/width-subtyping/index.html @@ -0,0 +1,37 @@ + + + + + +Width Subtyping | Flow + + + + + + + + + + + + + + +
    +

    Width Subtyping

    It's safe to use an object with "extra" properties in a position that is +annotated with a specific set of properties, if that object type is inexact.

    1function func(obj: {foo: string, ...}) {2  // ...3}4
    +5func({6  foo: "test", // Works!7  bar: 42      // Works!8});

    Within func, we know that obj has at least a property foo and the +property access expression obj.foo will have type string.

    This is a kind of subtyping commonly referred to as "width subtyping" because +a type that is "wider" (i.e., has more properties) is a subtype of a +narrower type.

    So in the following example, obj2 is a subtype of obj1.

    1let obj1: {foo: string, ...}  = {foo: 'test'};2let obj2 = {foo: 'test', bar: 42};3(obj2: {foo: string, ...});

    However, it's often useful to know that a property is definitely absent.

    1function func(obj: {foo: string, ...} | {bar: number, ...}) {2  if (obj.foo) {3    (obj.foo: string); // Error!
    4 }5}
    3:6-3:12: Cannot cast `obj.foo` to string because property `foo` of unknown type [1] is incompatible with string [2]. [incompatible-cast]

    The above code has a type error because Flow would also allow the call +expression func({foo: 1, bar: 2}), because {foo: number, bar: number} +is a subtype of {bar: number, ...}, one of the members of the parameter's union +type.

    For cases like this where it's useful to assert the absence of a property, +You can use exact object types.

    1function func(obj: {foo: string} | {bar: number}) {2  if (obj.foo) {3    (obj.foo: string); // Works!4  }5}

    Exact object types disable width +subtyping, and do not allow additional properties to exist.

    Using exact object types lets Flow know that no extra properties will exist at +runtime, which allows refinements to get more specific.

    + + + + \ No newline at end of file diff --git a/en/docs/libdefs/creation/index.html b/en/docs/libdefs/creation/index.html new file mode 100644 index 00000000000..5282f564b7f --- /dev/null +++ b/en/docs/libdefs/creation/index.html @@ -0,0 +1,70 @@ + + + + + +Creating Library Definitions | Flow + + + + + + + + + + + + + + +
    +

    Creating Library Definitions

    Before spending the time to write your own libdef, we recommend that you look to +see if there is already a libdef for the third-party code that you're addressing. +flow-typed is a tool and repository +for sharing common libdefs within the Flow community -- so it's a good way to +knock out a good chunk of any public libdefs you might need for your project.

    However sometimes there isn't a pre-existing libdef or you have third-party +code that isn't public and/or you really just need to write a libdef yourself. +To do this you'll start by creating a .js file for each libdef you're going to +write and put them in the /flow-typed directory at the root of your project. +In these libdef file(s) you'll use a special set of Flow syntax (explained +below) to describe the interfaces of the relevant third-party code.

    Declaring A Global Function

    To declare a global function that should be accessible throughout your project, +use the declare function syntax in a libdef file:

    flow-typed/myLibDef.js

    1declare function foo(a: number): string;

    This tells Flow that any code within the project can reference the +foo global function, and that the function takes one argument (a number) and +it returns a string.

    Declaring A Global Class

    To declare a global class that should be accessible throughout your project, +use the declare class syntax in a libdef file:

    flow-typed/myLibDef.js

    1declare class URL {2  constructor(urlStr: string): URL;3  toString(): string;4
    +5  static compare(url1: URL, url2: URL): boolean;6}

    This tells Flow that any code within the project can reference the URL global +class. Note that this class definition does not have any implementation details +-- it exclusively defines the interface of the class.

    Declaring A Global Variable

    To declare a global variable that should be accessible throughout your project, +use the declare var, declare let, or declare const syntax in a libdef file:

    flow-typed/myLibDef.js

    1declare const PI: number;

    This tells Flow that any code within the project can reference the PI global +variable -- which, in this case, is a number.

    Declaring A Global Type

    To declare a global type that should be accessible throughout your project, +use the declare type syntax in a libdef file:

    flow-typed/myLibDef.js

    1declare type UserID = number;

    This tells Flow that any code within the project can reference the UserID +global type -- which, in this case, is just an alias for number.

    Declaring A Module

    Often, third-party code is organized in terms of modules rather than globals. To +write a libdef that declares the presence of a module you'll want to use the +declare module syntax:

    1declare module "some-third-party-library" {2  // This is where we'll list the module's exported interface(s)3}

    The name specified in quotes after declare module can be any string, but it +should correspond to the same string you'd use to require or import the +third-party module into your project. For defining modules that are accessed via +a relative require/import path, please see the docs on the .flow files

    Within the body of a declare module block, you can specify the set of exports +for that module. However, before we start talking about exports we have to talk +about the two kinds of modules that Flow supports: CommonJS and ES modules.

    Flow can handle both CommonJS and ES modules, but there are some relevant +differences between the two that need to be considered when using +declare module.

    Declaring An ES Module

    ES modules +have two kinds of exports: A named export and a default export. Flow supports the ability +to declare either or both of these kinds of exports within a declare module body as follows:

    Named Exports

    flow-typed/some-es-module.js

    1declare module "some-es-module" {2  // Declares a named "concatPath" export3  declare export function concatPath(dirA: string, dirB: string): string;4}

    Note that you can also declare other things inside the body of the +declare module, and those things will be scoped to the body of the +declare module -- but they will not be exported from the module:

    flow-typed/some-es-module.js

    1declare module "some-es-module" {2  // Defines the type of a Path class within this `declare module` body, but3  // does not export it. It can only be referenced by other things inside the4  // body of this `declare module`5  declare class Path {6    toString(): string;7  }8
    +9  // Declares a named "concatPath" export which returns an instance of the10  // `Path` class (defined above)11  declare export function concatPath(dirA: string, dirB: string): Path;12}
    Default Exports

    flow-typed/some-es-module.js

    1declare module "some-es-module" {2  declare class URL {3    constructor(urlStr: string): URL;4    toString(): string;5
    +6    static compare(url1: URL, url2: URL): boolean;7  }8
    +9  // Declares a default export whose type is `typeof URL`10  declare export default typeof URL;11}

    It is also possible to declare both named and default exports in the +same declare module body.

    Declaring A CommonJS Module

    CommonJS modules have a single value that is exported (the module.exports +value). To describe the type of this single value within a declare module +body, you'll use the declare module.exports syntax:

    flow-typed/some-commonjs-module.js

    1declare module "some-commonjs-module" {2  // The export of this module is an object with a "concatPath" method3  declare module.exports: {4    concatPath(dirA: string, dirB: string): string;5  };6}

    Note that you can also declare other things inside the body of the +declare module, and those things will be scoped to the body of the +declare module, but they will not be exported from the module:

    flow-typed/some-commonjs-module.js

    1declare module "some-commonjs-module" {2  // Defines the type of a Path class within this `declare module` body, but3  // does not export it. It can only be referenced by other things inside the4  // body of this `declare module`5  declare class Path {6    toString(): string;7  }8
    +9  // The "concatPath" function now returns an instance of the `Path` class10  // (defined above).11  declare module.exports: {12    concatPath(dirA: string, dirB: string): Path13  };14}

    NOTE: Because a given module cannot be both an ES module and a CommonJS module, +it is an error to mix declare export [...] with +declare module.exports: ... in the same declare module body.

    + + + + \ No newline at end of file diff --git a/en/docs/libdefs/index.html b/en/docs/libdefs/index.html new file mode 100644 index 00000000000..dfe726a763a --- /dev/null +++ b/en/docs/libdefs/index.html @@ -0,0 +1,47 @@ + + + + + +Library Definitions | Flow + + + + + + + + + + + + + + +
    +

    Library Definitions

    What's a "Library Definition"?

    Most real JavaScript programs depend on third-party code and not just code +immediately under the control of the project. That means a project using Flow +may need to reference outside code that either doesn't have type information or +doesn't have accurate and/or precise type information. In order to handle this, +Flow supports the concept of a "library definition" (a.k.a. "libdef").

    A libdef is a special file that informs Flow about the type signature of some +specific third-party module or package of modules that your application uses. +If you're familiar with languages that have header files (like C++), you can +think of libdefs as a similar concept.

    These special files use the same .js extension as normal JS code, but they are +placed in a directory called flow-typed in the root directory of your project. +Placement in this directory tells Flow to interpret them as libdefs rather than +normal JS files.

    NOTE: Using the /flow-typed directory for libdefs is a convention that +enables Flow to JustWork™ out of the box and encourages consistency +across projects that use Flow, but it is also possible to explicitly +configure Flow to look elsewhere for libdefs using the [libs] section +of your .flowconfig.

    You can also learn about declaration files.

    General Best Practices

    Try to provide a libdef for each third-party library your project uses.

    If a third-party library that has no type information is used by your project, +Flow will treat it like any other untyped dependency and mark all of its exports +as any.

    Because of this behavior, it is a best practice to find or write libdefs for as +many of the third-party libraries that you use as you can. We recommend checking +out the flow-typed +tool and repository +, which helps you quickly find and install pre-existing libdefs for your +third-party dependencies.

    + + + + \ No newline at end of file diff --git a/en/docs/linting/flowlint-comments/index.html b/en/docs/linting/flowlint-comments/index.html new file mode 100644 index 00000000000..4e41d95ba80 --- /dev/null +++ b/en/docs/linting/flowlint-comments/index.html @@ -0,0 +1,39 @@ + + + + + +Flowlint Comments | Flow + + + + + + + + + + + + + + +
    +

    Flowlint Comments

    You can use flowlint comments to specify more granular lint settings within a file. +These comments come in three froms:

    In all forms, whitespace and asterisks between words are ignored, allowing for flexible formatting.

    flowlint

    The basic flowlint comment takes a comma-delimited list of rule:severity pairs and +applies those settings for the rest of the source file until overridden. This has +three primary purposes: applying settings over a block, applying settings over a file, +and applying settings over part of a line.

    settings over a block of code: +A pair of flowlint comments can be used to apply a certain setting over a block of code. +For example, to disable the untyped-type-import lint over a block of type imports would look like this:

    import type {
    // flowlint untyped-type-import:off
    Foo,
    Bar,
    Baz,
    // flowlint untyped-type-import:error
    } from './untyped.js';

    settings over a file: +A flowlint comment doesn't have to have a matching comment to form a block. +An unmatched comment simply applies its settings to the rest of the file. You +could use this, for example, to suppress all sketchy-null-check lints in a particular file:

    // flowlint sketchy-null:off
    ...

    settings over part of a line: +The settings applied by flowlint start and end right at the comment itself. This +means that you can do things like

    function foo(a: ?boolean, b: ?boolean) {
    if (/* flowlint sketchy-null-bool:off */a/* flowlint sketchy-null-bool:warn */ && b) {
    ...
    } else {
    ...
    }
    }

    if you want control at an even finer level than you get from the line-based comments.

    flowlint-line

    A flowlint-line comment works similarly to a flowlint comment, except it only +applies its settings to the current line instead of applying them for the rest of the file. +The primary use for flowlint-line comments is to suppress a lint on a particular line:

    function foo(x: ?boolean) {
    if (x) { // flowlint-line sketchy-null-bool:off
    ...
    } else {
    ...
    }
    }

    flowlint-next-line

    flowlint-next-line works the same as flowlint-line, except it applies its settings to the next line instead of the current line:

    function foo(x: ?boolean) {
    // flowlint-next-line sketchy-null-bool:off
    if (x) {
    ...
    } else {
    ...
    }
    }
    + + + + \ No newline at end of file diff --git a/en/docs/linting/index.html b/en/docs/linting/index.html new file mode 100644 index 00000000000..0e176fdcc4b --- /dev/null +++ b/en/docs/linting/index.html @@ -0,0 +1,39 @@ + + + + + +Linting Overview | Flow + + + + + + + + + + + + + + +
    +

    Linting Overview

    Flow contains a linting framework that can tell you about more than just type errors. This framework is highly configurable in order to show you the information you want and hide the information you don't.

    Configuring Lints in the .flowconfig

    Lint settings can be specified in the [lints] section of the .flowconfig as a list of rule=severity pairs. These settings apply globally to the entire project.

    [lints]
    all=warn
    untyped-type-import=error
    sketchy-null-bool=off

    Configuring Lints from the CLI

    Lint settings can be specified using the --lints flag of a Flow server command as a comma-delimited list of rule=severity pairs. These settings apply globally to the entire project.

    flow start --lints "all=warn, untyped-type-import=error, sketchy-null-bool=off"

    Configuring Lints with Comments

    Lint settings can be specified inside a file using flowlint comments. These +settings apply to a region of a file, or a single line, or part of a line. For +more details see Flowlint Comments.

    1// flowlint sketchy-null:error2const x: ?number = 0;3
    +4if (x) {} // Error
    5 +6// flowlint-next-line sketchy-null:off7if (x) {} // No Error8 +9if (x) {} /* flowlint-line sketchy-null:off */ // No Error10 +11// flowlint sketchy-null:off12if (x) {} // No Error13if (x) {} // No Error
    4:5-4:5: Sketchy null check on number [1] which is potentially 0. Perhaps you meant to check for null or undefined [2]? [sketchy-null-number]

    Lint Settings Precedence

    Lint settings in flowlint comments have the highest priority, followed by lint rules in the --lints flag, followed by the .flowconfig. +This order allows you to use flowlint comments for fine-grained linting control, the --lints flag for trying out new lint settings, and the .flowconfig for stable project-wide settings.

    Within the --lints flag and the .flowconfig, rules lower down override rules higher up, allowing you to write things like

    [lints]
    # warn on all sketchy-null checks
    sketchy-null=warn
    # ... except for booleans
    sketchy-null-bool=off

    The lint settings parser is fairly intelligent and will stop you if you write a redundant rule, a rule that gets completely overwritten, or an unused flowlint suppression. This should prevent most accidental misconfigurations of lint rules.

    Severity Levels and Meanings

    off: +The lint is ignored. Setting a lint to off is similar to suppressing a type error with a suppression comment, except with much more granularity.

    warn: +Warnings are a new severity level introduced by the linting framework. They are treated differently than errors in a couple of ways:

    • Warnings don't affect the exit code of Flow. If Flow finds warnings but no errors, it still returns 0.
    • Warnings aren't shown on the CLI by default, to avoid spew. CLI warnings can be +enabled by passing the --include-warnings flag to the Flow server or the +Flow client, or by setting include_warnings=true in the .flowconfig. +This is good for smaller projects that want to see all project warnings at once.

    error: +Lints with severity error are treated exactly the same as any other Flow error.

    + + + + \ No newline at end of file diff --git a/en/docs/linting/rule-reference/index.html b/en/docs/linting/rule-reference/index.html new file mode 100644 index 00000000000..42dcb338601 --- /dev/null +++ b/en/docs/linting/rule-reference/index.html @@ -0,0 +1,48 @@ + + + + + +Lint Rule Reference | Flow + + + + + + + + + + + + + + +
    +

    Lint Rule Reference

    all

    While all isn't technically a lint rule, it's worth mentioning here. all sets the default +level for lint rules that don't have a level set explicitly. all can only +occur as the first entry in a .flowconfig or as the first rule in a --lints +flag. It's not allowed in comments at all because it would have different +semantics than would be expected.

    ambiguous-object-type

    Triggers when you use object type syntax without explicitly specifying exactness or inexactness.

    This lint setting is ignored when exact_by_default is set to false.

    1// flowlint ambiguous-object-type:error2
    +3type A = {x: number}; // Error
    4type B = {x: number, ...} // Ok5type C = {| x: number |} // Ok
    3:10-3:20: Please write this object type as explicitly exact (use `{|` and `|}` instead of `{` and `}`) or as explicitly inexact (add `...` to the end of the list of properties). [ambiguous-object-type]

    deprecated-type

    Triggered on the bool type, which is just an alias for boolean. Just use boolean instead.

    1// flowlint deprecated-type:error2
    +3type A = Array<bool>; // Error
    3:16-3:19: Deprecated type. Use `boolean` instead. [deprecated-type]

    implicit-inexact-object

    Like ambiguous-object-type, except triggers even when the exact_by_default option is set to false.

    nonstrict-import

    Used in conjuction with Flow Strict. Triggers when importing a non @flow strict module. When enabled, dependencies of a @flow strict module must also be @flow strict.

    sketchy-null

    Triggers when you do an existence check on a value that can be either null/undefined or falsey.

    For example:

    1// flowlint sketchy-null:error2
    +3const x: ?number = 5;4if (x) {} // sketchy because x could be either null or 0.
    5 +6const y: number = 5;7if (y) {} // not sketchy because y can't be null, only 0.8 +9const z: ?{foo: number} = {foo: 5};10if (z) {} // not sketchy, because z can't be falsey, only null/undefined.
    4:5-4:5: Sketchy null check on number [1] which is potentially 0. Perhaps you meant to check for null or undefined [2]? [sketchy-null-number]

    Setting sketchy-null sets the level for all sketchy null checks, but there are more granular rules for particular types. These are:

    • sketchy-null-bool
    • sketchy-null-number
    • sketchy-null-string
    • sketchy-null-mixed
    • sketchy-null-bigint

    The type-specific variants are useful for specifying that some types of sketchy null checks are acceptable while others should be errors/warnings. For example, if you want to allow boolean sketchy null checks (for the pattern of treating undefined optional booleans as false) but forbid other types of sketchy null checks, you can do so with this .flowconfig [lints] section:

    [lints]
    sketchy-null=warn
    sketchy-null-bool=off

    and now

    function foo (bar: ?bool): void {
    if (bar) {
    ...
    } else {
    ...
    }
    }

    doesn't report a warning.

    Suppressing one type of sketchy null check only suppresses that type, so, for example

    1// flowlint sketchy-null:error, sketchy-null-bool:off2const x: ?(number | bool) = 0;3if (x) {}
    3:5-3:5: Sketchy null check on number [1] which is potentially 0. Perhaps you meant to check for null or undefined [2]? [sketchy-null-number]

    would still have a sketchy-null-number error on line 3.

    sketchy-number

    Triggers when a number is used in a manner which may lead to unexpected results if the value is falsy. +Currently, this lint triggers if a number appears in:

    • the left-hand side of an && expression.

    As a motivating example, consider this common idiom in React:

    {showFoo && <Foo />}

    Here, showFoo is a boolean which controls whether or not to display the <Foo /> element. If showFoo is true, then this evaluates to {<Foo />}. If showFoo is false, then this evaluates to {false}, which doesn't display anything.

    Now suppose that instead of a boolean, we have a numerical value representing, say, the number of comments on a post. We want to display a count of the comments, unless there are no comments. We might naively try to do something similar to the boolean case:

    {count && <>[{count} comments]</>}

    If count is, say, 5, then this displays "[5 comments]". However, if count is 0, then this displays "0" instead of displaying nothing. (This problem is unique to number because 0 and NaN are the only falsy values which React renders with a visible result.) This could be subtly dangerous: if this immediately follows another numerical value, it might appear to the user that we have multiplied that value by 10! Instead, we should do a proper conditional check:

    {count ? <>[{count} comments]</> : null}

    unclear-type

    Triggers when you use any, Object, or Function as type annotations. These +types are unsafe.

    1// flowlint unclear-type:error2
    +3declare const a: any; // Error
    4declare const c: Object; // Error
    5declare const d: Function; // Error
    3:18-3:20: Unclear type. Using `any`, `Object`, or `Function` types is not safe! [unclear-type]
    4:18-4:23: Unclear type. Using `any`, `Object`, or `Function` types is not safe! [unclear-type]
    5:18-5:25: Unclear type. Using `any`, `Object`, or `Function` types is not safe! [unclear-type]

    unnecessary-invariant

    Triggers when you use invariant to check a condition which we know must be truthy based on the available type information. This is quite conservative: for example, if all we know about the condition is that it is a boolean, then the lint will not fire even if the condition must be true at runtime.

    Note that this lint does not trigger when we know a condition is always false. It is a common idiom to use invariant() or invariant(false, ...) to throw in code that should be unreachable.

    1// flowlint unnecessary-invariant:error2declare function invariant(boolean): void;3
    +4declare const x: Array<string>; // Array is truthy5invariant(x);
    5:1-5:12: This use of `invariant` is unnecessary because array type [1] is always truthy. [unnecessary-invariant]

    unnecessary-optional-chain

    Triggers when you use ?. where it isn't needed. This comes in two main flavors. The first is when the left-hand-side cannot be nullish:

    1// flowlint unnecessary-optional-chain:error2type Foo = {3  bar: number4}5
    +6declare var foo: Foo;7foo?.bar; // Error
    7:1-7:8: This use of optional chaining (`?.`) is unnecessary because `foo` [1] cannot be nullish or because an earlier `?.` will short-circuit the nullish case. [unnecessary-optional-chain]

    The second is when the left-hand-side could be nullish, but the short-circuiting behavior of ?. is sufficient to handle it anyway:

    1// flowlint unnecessary-optional-chain:error2type Foo = {3  bar: {4    baz: number5  }6}7
    +8declare var foo: ?Foo;9foo?.bar?.baz; // Error
    9:1-9:13: This use of optional chaining (`?.`) is unnecessary because `foo?.bar` [1] cannot be nullish or because an earlier `?.` will short-circuit the nullish case. [unnecessary-optional-chain]

    In the second example, the first use of ?. is valid, since foo is potentially nullish, but the second use of ?. is unnecessary. The left-hand-side of the second ?. (foo?.bar) can only be nullish as a result of foo being nullish, and when foo is nullish, short-circuiting lets us avoid the second ?. altogether!

    foo?.bar.baz;

    This makes it clear to the reader that bar is not a potentially nullish property.

    unsafe-getters-setters

    Triggers when you use getters or setters. Getters and setters can have side +effects and are unsafe.

    For example:

    1// flowlint unsafe-getters-setters:error2let a = 1;3const o = {4  get a() { return a; }, // Error: unsafe-getters-setters
    5 set b(x: number) { a = x; }, // Error: unsafe-getters-setters
    6 c: 10,7};
    4:3-4:23: Getters and setters can have side effects and are unsafe. [unsafe-getters-setters]
    5:3-5:29: Getters and setters can have side effects and are unsafe. [unsafe-getters-setters]

    untyped-import

    Triggers when you import from an untyped file. Importing from an untyped file +results in those imports being typed as any, which is unsafe.

    untyped-type-import

    Triggers when you import a type from an untyped file. Importing a type from an +untyped file results in an any alias, which is typically not the intended behavior. +Enabling this lint brings extra attention to this case and can help improve Flow +coverage of typed files by limiting the spread of implicit any types.

    unused-promise

    Triggers when a Promise is unused. This can be dangerous, because errors are potentially unhandled, and the code may not execute in the desired order.

    A promise can be "used" by...

    • awaiting it
    • Calling .then with a rejection handler (i.e., with two arguments)
    • Calling .catch
    • Calling .finally
    • Storing it in a variable, passing it to a function, etc.

    For example:

    1// flowlint unused-promise:error2declare function foo(): Promise<void>;3
    +4async function bar() {5  await foo(); // ok6  foo(); // error, we forgot to await!
    7}8 +9function baz() {10 foo().catch(err => {console.log(err)}); // ok11 foo(); // error
    12}
    6:3-6:8: `Promise` in async scope is unused. Did you mean to `await` it? [unused-promise]
    11:3-11:8: `Promise` in sync scope is unused. Promises must be handled by calling .then with a rejection handler, .catch, or .finally. [unused-promise]

    You can explicitly ignore the promise with the void operator (e.g., void foo();).

    Note: As of v0.201.0, this rule subsumed the unused-promise-in-async-scope and unused-promise-in-sync-scope rules.

    + + + + \ No newline at end of file diff --git a/en/docs/react/components/index.html b/en/docs/react/components/index.html new file mode 100644 index 00000000000..e1c6f8a5f5a --- /dev/null +++ b/en/docs/react/components/index.html @@ -0,0 +1,74 @@ + + + + + +Components | Flow + + + + + + + + + + + + + + +
    +

    Components

    Adding Flow types to your React components is incredibly powerful. After typing +your component, Flow will statically ensure that you are using the component in +the way it was designed to be used.

    Functional Components

    Adding Flow types to a functional component is the same as adding types to a standard function. +Just create an object type for the props and Flow will ensure that the props passed to the component match up with what is expected.

    1import * as React from 'react';2
    +3type Props = {4  foo: number,5  bar?: string,6};7
    +8function MyComponent(props: Props) {9  props.doesNotExist; // Error! You did not define a `doesNotExist` prop.
    10 +11 return <div>{props.bar}</div>;12}13 +14<MyComponent foo={42} />
    9:9-9:20: Cannot get `props.doesNotExist` because property `doesNotExist` is missing in `Props` [1]. [prop-missing]

    Note: We import React as a namespace here with +import * as React from 'react' instead of as a default with +import React from 'react'. When importing React as an ES module you may use +either style, but importing as a namespace gives you access to React's +utility types.

    Adding Default Props to Functional Components

    A nice pattern to add default props to functional components is to use +destructuring with default values. +By destructuring the props in the function parameter, you can assign a value to any props that are not passed +to the component (or passed with the value undefined).

    1import * as React from 'react';2
    +3type Props = {4  foo?: number, // foo is optional to pass in.5  bar: string, // bar is required.6};7
    +8function MyComponent({foo = 42, bar}: Props) {9  // Flow knows that foo is not null or undefined10  const baz = foo + 1;11}12
    +13// And we don't need to include foo.14<MyComponent bar={"abc"} />;

    Class Components

    To Flowify a class component, the type of the props can be passed as the first +argument to the React.Component type. This will have the same effect as adding types +to the props parameter of a function component.

    1import * as React from 'react';2
    +3type Props = {4  foo: number,5  bar?: string,6};7
    +8class MyComponent extends React.Component<Props> {9  render(): React.Node {10    this.props.doesNotExist; // Error! You did not define a `doesNotExist` prop.
    11 +12 return <div>{this.props.bar}</div>;13 }14}15 +16<MyComponent foo={42} />;
    10:16-10:27: Cannot get `this.props.doesNotExist` because property `doesNotExist` is missing in `Props` [1]. [prop-missing]

    Now wherever we use this.props in our React component Flow will treat it as +the Props type we defined.

    Note: If you don't need to use the Props type again you could also +define it inline: extends React.Component<{ foo: number, bar?: string }>.

    React.Component<Props, State> is a generic type that takes two type +arguments: props and state. The second type argument, State, is optional. By +default it is undefined so you can see in the example above we did not include +State. We will learn more about state in the next section...

    Adding State

    To add a type for state to your React class component: create a new object +type, in the example below we name it State, and pass it as the second type +argument to React.Component.

    1import * as React from 'react';2
    +3type Props = { /* ... */ };4
    +5type State = {6  count: number,7};8
    +9class MyComponent extends React.Component<Props, State> {10  state: State = {11    count: 0,12  };13
    +14  componentDidMount() {15    setInterval(() => {16      this.setState(prevState => ({17        count: prevState.count + 1,18      }));19    }, 1000);20  }21
    +22  render(): React.Node {23    return <div>Count: {this.state.count}</div>;24  }25}26
    +27<MyComponent />;

    In the example above we are using a React setState() updater function +but you could also pass a partial state object to setState().

    Note: If you don't need to use the State type again you could also +define it inline: extends React.Component<{}, { count: number }>.

    Using Default Props for Class Components

    React supports the notion of defaultProps which you can think of as default +function arguments. When you create an element and do not include a prop +which has a default then React will substitute that prop with its corresponding +value from defaultProps. Flow supports this notion as well. To type default +props add a static defaultProps property to your class.

    1import * as React from 'react';2
    +3type Props = {4  foo: number, // foo is required.5  bar: string, // bar is required.6};7
    +8class MyComponent extends React.Component<Props> {9  static defaultProps: {foo: number} = {10    foo: 42, // ...but we have a default prop for foo.11  };12}13
    +14// So we don't need to include foo.15<MyComponent bar={"abc"} />

    Note: You don't need to make foo nullable in your Props type. Flow +will make sure that foo is optional if you have a default prop for foo.

    If you add a type annotation to defaultProps you can define the type as

    1type DefaultProps = {2  foo: number,3};

    and spread that into the Props type:

    type Props = {
    ...DefaultProps,
    bar: string,
    };

    This way you avoid duplicating the properties that happen to have a default value.

    Note: You can also apply this format of default props to functional components +by adding a defaultProps property to a the component function. However, it is generally +simpler to use the destructuring pattern described above.

    1function MyComponent(props: {foo: number}) {}2MyComponent.defaultProps = {foo: 42};
    + + + + \ No newline at end of file diff --git a/en/docs/react/events/index.html b/en/docs/react/events/index.html new file mode 100644 index 00000000000..df8515696ff --- /dev/null +++ b/en/docs/react/events/index.html @@ -0,0 +1,42 @@ + + + + + +Event Handling | Flow + + + + + + + + + + + + + + +
    +

    Event Handling

    The React docs for handling events show how an event handler can be attached to +a React element. To type these event handlers you may use the SyntheticEvent<T> +types like this:

    1import {useState} from 'react';2import * as React from 'react';3
    +4function MyComponent(): React.Node {5  const [state, setState] = useState({count: 0});6
    +7  const handleClick = (event: SyntheticEvent<HTMLButtonElement>) => {8    // To access your button instance use `event.currentTarget`.9    (event.currentTarget: HTMLButtonElement);10
    +11    setState(prevState => ({12      count: prevState.count + 1,13    }));14  };15
    +16  return (17    <div>18      <p>Count: {state.count}</p>19      <button onClick={handleClick}>Increment</button>20    </div>21  );22}

    There are also more specific synthetic event types like +SyntheticKeyboardEvent<T>, SyntheticMouseEvent<T>, or +SyntheticTouchEvent<T>. The SyntheticEvent<T> types all take a single type +argument: the type of the HTML element the event handler was placed on.

    If you don't want to add the type of your element instance you can also use +SyntheticEvent with no type arguments like so: SyntheticEvent<>.

    Note: To get the element instance, like HTMLButtonElement in the example +above, it is a common mistake to use event.target instead of +event.currentTarget. The reason you want to use event.currentTarget is +that event.target may be the wrong element due to event propagation.

    Note: React uses its own event system so it is important to use the +SyntheticEvent types instead of the DOM types such as Event, +KeyboardEvent, and MouseEvent.

    The SyntheticEvent<T> types that React provides and the DOM events they are +related to are:

    + + + + \ No newline at end of file diff --git a/en/docs/react/hoc/index.html b/en/docs/react/hoc/index.html new file mode 100644 index 00000000000..119203676e5 --- /dev/null +++ b/en/docs/react/hoc/index.html @@ -0,0 +1,66 @@ + + + + + +Higher-order Components | Flow + + + + + + + + + + + + + + +
    +

    Higher-order Components

    A popular pattern in React is the higher-order component pattern, so it's +important that we can provide effective types for higher-order components in +Flow. If you don't already know what a higher-order component is then make sure +to read the React documentation on higher-order components before +continuing.

    You can make use of the React.AbstractComponent type to annotate your higher order components.

    The Trivial HOC

    Let's start with the simplest HOC:

    1import * as React from 'react';2
    +3function trivialHOC<Config: {...}>(4  Component: React.AbstractComponent<Config>5): React.AbstractComponent<Config> {6  return Component;7}

    This is a basic template for what your HOCs might look like. At runtime, this HOC doesn't +do anything at all. Let's take a look at some more complex examples.

    Injecting Props

    A common use case for higher-order components is to inject a prop. +The HOC automatically sets a prop and returns a component which no longer requires +that prop. For example, consider a navigation prop. How would one type this?

    To remove a prop from the config, we can take a component that includes the +prop and return a component that does not. It's best to construct these +types using object type spread.

    1import * as React from 'react';2
    +3type InjectedProps = {foo: number}4
    +5function injectProp<Config>(6  Component: React.AbstractComponent<{...Config, ...InjectedProps}>7): React.AbstractComponent<Config> {8  return function WrapperComponent(9    props: Config,10  ) {11    return <Component {...props} foo={42} />;12  };13}14
    +15function MyComponent(props: {16  a: number,17  b: number,18  ...InjectedProps,19}): React.Node {}20
    +21const MyEnhancedComponent = injectProp(MyComponent);22
    +23// We don't need to pass in `foo` even though `MyComponent` requires it:24<MyEnhancedComponent a={1} b={2} />; // OK25
    +26// We still require `a` and `b`:27<MyEnhancedComponent a={1} />; // ERROR
    27:2-27:20: Cannot create `MyEnhancedComponent` element because property `b` is missing in props [1] but exists in object type [2]. [prop-missing]

    Preserving the Instance Type of a Component

    Recall that the instance type of a function component is void. Our example +above wraps a component in a function, so the returned component has the instance +type void.

    1import * as React from 'react';2
    +3type InjectedProps = {foo: number}4
    +5function injectProp<Config>(6  Component: React.AbstractComponent<{...Config, ...InjectedProps}>7): React.AbstractComponent<Config> {8  return function WrapperComponent(9    props: Config,10  ) {11    return <Component {...props} foo={42} />;12  };13}14
    +15// A class component in this example16class MyComponent extends React.Component<{17  a: number,18  b: number,19  ...InjectedProps,20}> {}21
    +22const MyEnhancedComponent = injectProp(MyComponent);23
    +24// If we create a ref object for the component, it will never be assigned25// an instance of MyComponent!26const ref = React.createRef<MyComponent>();27
    +28// Error, mixed is incompatible with MyComponent.29<MyEnhancedComponent ref={ref} a={1} b={2} />;
    29:27-29:29: Cannot create `MyEnhancedComponent` element because in property `ref`: [incompatible-type] Either mixed [1] is incompatible with `MyComponent` [2] in property `current`. Or a call signature declaring the expected parameter / return type is missing in object type [3] but exists in function type [4].

    We get this error message because React.AbstractComponent<Config> doesn't set the Instance type +parameter, so it is automatically set to mixed. If we wanted to preserve the instance type +of the component, we can use React.forwardRef:

    1import * as React from 'react';2
    +3type InjectedProps = {foo: number}4
    +5function injectAndPreserveInstance<Config, Instance>(6  Component: React.AbstractComponent<{...Config, ...InjectedProps}, Instance>7): React.AbstractComponent<Config, Instance> {8  return React.forwardRef<Config, Instance>((props, ref) =>9      <Component ref={ref} foo={3} {...props} />10  );11}12
    +13class MyComponent extends React.Component<{14  a: number,15  b: number,16  ...InjectedProps,17}> {}18
    +19const MyEnhancedComponent = injectAndPreserveInstance(MyComponent);20
    +21const ref = React.createRef<MyComponent>();22
    +23// All good! The ref is forwarded.24<MyEnhancedComponent ref={ref} a={1} b={2} />;

    Exporting Wrapped Components

    If you try to export a wrapped component, chances are that you'll run into a missing annotation error:

    1import * as React from 'react';2
    +3function trivialHOC<Config: {...}>(4  Component: React.AbstractComponent<Config>,5): React.AbstractComponent<Config> {6  return Component;7}8
    +9type Props = $ReadOnly<{bar: number, foo?: number}>;10
    +11function MyComponent({bar, foo = 3}: Props): React.Node {}12
    +13export const MyEnhancedComponent = trivialHOC(MyComponent); // ERROR
    13:36-13:58: Cannot build a typed interface for this module. You should annotate the exports of this module with types. Cannot determine the type of this call expression. Please provide an annotation, e.g., by adding a type cast around this expression. [signature-verification-failure]

    You can add an annotation to your exported component using React.AbstractComponent:

    1import * as React from 'react';2
    +3function trivialHOC<Config: {...}>(4  Component: React.AbstractComponent<Config>,5): React.AbstractComponent<Config> {6  return Component;7}8
    +9type Props = $ReadOnly<{bar: number, foo?: number}>;10
    +11function MyComponent({bar, foo = 3}: Props): React.Node {}12
    +13export const MyEnhancedComponent: React.AbstractComponent<Props> = trivialHOC(MyComponent); // OK
    + + + + \ No newline at end of file diff --git a/en/docs/react/index.html b/en/docs/react/index.html new file mode 100644 index 00000000000..f224caf6344 --- /dev/null +++ b/en/docs/react/index.html @@ -0,0 +1,35 @@ + + + + + +Getting Started | Flow + + + + + + + + + + + + + + +
    +

    Getting Started

    Developers will often use Flow and React together, so it is important that Flow +can effectively type both common and advanced React patterns. This guide will +teach you how to use Flow to create safer React applications.

    In this guide we will assume you know the React basics and focus on adding +types for patterns you are already familiar with. We will be using examples +based on react-dom, but all of these patterns work in other environments +like react-native as well.

    Setup Flow with React

    Flow and Babel work well together, so it doesn't take much to adopt Flow as a +React user who already uses Babel. If you need to setup Babel with Flow, you can +follow this guide.

    React Runtimes

    Flow supports the @babel/plugin-transform-react-jsx runtime options required +to use JSX without explicitly importing the React namespace.

    If you are using the new automatic runtime, use this configuration in your .flowconfig so +that Flow knows to auto-import jsx:

    [options]
    react.runtime=automatic
    + + + + \ No newline at end of file diff --git a/en/docs/react/multiplatform/index.html b/en/docs/react/multiplatform/index.html new file mode 100644 index 00000000000..bfafd063587 --- /dev/null +++ b/en/docs/react/multiplatform/index.html @@ -0,0 +1,26 @@ + + + + + +Multi-platform Support for React Native | Flow + + + + + + + + + + + + + + +
    +

    Multi-platform Support for React Native

    caution

    The feature is still experimental. Behaviors might change in the future.

    Benefits

    React Native supports conditional bundling of files with platform specific extensions. For example, if you have different implementations of an Image component for iOS and Android, you can have an Image.ios.js file and Image.android.js file, and an import of Image can be resolved to either file based on the platform you are targeting.

    These platform specific files live under the same repository, but it would normally require two flowconfigs to check them like the following setup:

    .flowconfig
    ; for ios
    [ignore]
    .*\.android\.js$
    [options]
    module.file_ext=.js
    module.file_ext=.ios.js
    .flowconfig.android
    ; for android
    [ignore]
    ; Ignore other platform suffixes
    .*\.ios\.js$
    [options]
    module.file_ext=.js
    module.file_ext=.android.js

    Flow's optional React Native multi-platform support allows you to check your entire project with mixed platforms under a single Flow root, so that during the development of a module with both .ios and .android files, you no longer have to run both Flow servers and constantly switch between different servers to see type errors on different platforms.

    Quick Start

    You can start by deleting the flowconfig for all other platforms, deleting all the platform specific configs in the only remaining flowconfig, and add the following new lines to the options section:

    experimental.multi_platform=true
    experimental.multi_platform.extensions=.ios
    experimental.multi_platform.extensions=.android

    For example, these are the required changes for the .flowconfig example above:

    .flowconfig
    [ignore]
    - .*\.android\.js$
    [options]
    module.file_ext=.js
    - module.file_ext=.ios.js
    + experimental.multi_platform=true
    + experimental.multi_platform.extensions=.ios
    + experimental.multi_platform.extensions=.android

    After enabling the new configurations, there will likely be new errors. The sections below explain the additional rules that Flow imposes to check a multiplatform React Native project.

    Common Interface Files

    Suppose you have a file that imports the Image module, but Image module has different iOS and Android implementations as follows:

    MyReactNativeApp.js
    import * as React from 'react';
    import Image from './Image';

    <Image src="/hello.png" />;
    <Image src="/world.png" lazyLoading={true} />;
    Image.ios.js
    import * as React from 'react';

    type Props = { src: string, lazyLoading?: boolean };

    export default function Image(props: Props): React.Node { /* ... */ }
    Image.android.js
    import * as React from 'react';

    type Props = { src: string, lazyLoading: boolean };

    export default class Image extends React.Components<Props> {
    static defaultProps: { lazyLoading: boolean } = { lazyLoading: false };
    render(): React.Node { /* ... */ }
    }

    When you enabled multiplatform support, you will likely see that error that the ./Image module cannot be resolved. To fix the error, you need to create a common interface file under the same directory:

    Common Interface File in .js.flow

    One option is to write a common interface file in .js.flow:

    Image.js.flow
    import * as React from 'react';

    type Props = { src: string, lazyLoading?: boolean };

    declare const Image: React.AbstractComponent<Image>;
    export default Image;

    Flow will ensure that the module types of both Image.ios.js and ./Image.android.js are subtype of the module type of ./Image.js.flow. Flow will also ensure that there exists an implementation for each platform you declared in your .flowconfig.

    Common Interface File in .js

    Sometimes you might target desktop platforms in addition to iOS and Android, and you only have a special implementation for one platform, and all the other platforms will use the fallback implementation in a .js file. For example:

    Image.js
    import * as React from 'react';
    import DefaultImage from 'react-native/Libraries/Image';

    export default DefaultImage;
    Image.ios.js
    import * as React from 'react';

    type Props = { src: string, lazyLoading: boolean };

    export default function Image(props: Props): React.Node {
    // Custom implementation to take advantage of some unique iOS capabilities
    }

    In this case, Flow will use the .js file as the common interface file, and check all other platform-specific implementation files' against the .js file. Since the .js file is already a fallback implementation, Flow will no longer require that platform-specific implementation files exist for all platforms.

    + + + + \ No newline at end of file diff --git a/en/docs/react/refs/index.html b/en/docs/react/refs/index.html new file mode 100644 index 00000000000..df9313f0787 --- /dev/null +++ b/en/docs/react/refs/index.html @@ -0,0 +1,35 @@ + + + + + +Ref Functions | Flow + + + + + + + + + + + + + + +
    +

    Ref Functions

    React allows you to grab the instance of an element or component with refs.

    Refs in Functional Components

    Inside a functional component, refs are accessed with the useRef hook:

    1import {useRef} from 'react';2import * as React from 'react';3
    +4function MyComponent() {5  const buttonRef = useRef<null | HTMLButtonElement>(null);6  (buttonRef: {current: null | HTMLButtonElement}); // useRef wraps the ref value in an object7  return <button ref={buttonRef}>Toggle</button>;8}

    Note that useRef wraps the ref value in an object with a current property. This must be +reflected in the type of anything accepting the ref value.

    Refs in Class Components

    Refs in class components are similar to function components. To create one, add a +property to your class and assign the result of React.createRef to it.

    1import * as React from 'react';2
    +3class MyComponent extends React.Component<{}> {4  // The `null` here is important because you may not always have the instance.5  buttonRef: {current: null | HTMLButtonElement};6
    +7  constructor() {8    super();9    this.buttonRef = React.createRef<HTMLButtonElement>();10  }11
    +12  render(): React.Node {13    return <button ref={this.buttonRef}>Toggle</button>;14  }15}

    One notable difference between useRef and createRef is that createRef does not accept +a default value. It will initialize the ref with the value null. This is because +DOM elements will not exist until the first render of MyComponent and so a null value +must be used.

    Again, note that the ref value is wrapped in an object with a current property.

    + + + + \ No newline at end of file diff --git a/en/docs/react/types/index.html b/en/docs/react/types/index.html new file mode 100644 index 00000000000..cc9d27f0f41 --- /dev/null +++ b/en/docs/react/types/index.html @@ -0,0 +1,92 @@ + + + + + +Type Reference | Flow + + + + + + + + + + + + + + +
    +

    Type Reference

    React exports a handful of utility types that may be useful to you when typing +advanced React patterns. In previous sections we have seen a few of them. The +following is a complete reference for each of these types along with some +examples for how/where to use them.

    These types are all exported as named type exports from the react module. If +you want to access them as members on the React object (e.g. +React.Node) and +you are importing React as an ES module then you should import React as a +namespace:

    import * as React from 'react';

    If you are using CommonJS you can also require React:

    const React = require('react');

    You can also use named type imports in either an ES module environment or a +CommonJS environment:

    import type {Node} from 'react';

    We will refer to all the types in the following reference as if we imported them +with:

    import * as React from 'react';

    Note: While importing React with a default import works:

    import React from 'react';

    You will have access to all of the values that React exports, but you will +not have access to the types documented below! This is because Flow will +not add types to a default export since the default export could be any value +(like a number). Flow will add exported named types to an ES namespace object +which you can get with import * as React from 'react' since Flow knows if +you export a value with the same name as an exported type.

    Again, if you import React with: import React from 'react' you will be able +to access React.Component, React.createElement(), React.Children, and +other JavaScript values. However, you will not be able to access +React.Node, React.ChildrenArray or +other Flow types. You will need to use a named type import like: +import type {Node} from 'react' in addition to your default import.

    React.Node

    This represents any node that can be rendered in a React application. +React.Node can be null, a boolean, a number, a string, a React +element, or an array of any of those types recursively.

    React.Node is a good default to use to annotate the return type of a function component +and class render methods. You can also use it to type elements your component takes in as children.

    Here is an example of React.Node being used as the return type to a function component:

    function MyComponent(props: {}): React.Node {
    // ...
    }

    It may also be used as the return type of a class render method:

    class MyComponent extends React.Component<{}> {
    render(): React.Node {
    // ...
    }
    }

    Here is an example of React.Node as the prop type for children:

    function MyComponent({ children }: { children: React.Node }) {
    return <div>{children}</div>;
    }

    All react-dom JSX intrinsics have React.Node as their children type. +<div>, <span>, and all the rest.

    React.MixedElement

    The most general type of all React elements (similar to mixed for all values). React.MixedElement is defined as +React.Element<React.ElementType>.

    A common use case of this type is when we want to annotate an element with a type that hides the element details. For example

    const element: React.MixedElement = <div />;

    React.Element<typeof Component>

    A React element is the type for the value of a JSX element:

    const element: React.Element<'div'> = <div />;

    React.Element<typeof Component> is also the return type of +React.createElement()/React.jsx().

    A React.Element takes a single type argument, +typeof Component. typeof Component is the component type of the React +element. For an intrinsic element, typeof Component will be the string literal +for the intrinsic you used. Here are a few examples with DOM intrinsics:

    (<div />: React.Element<'div'>); // OK
    (<span />: React.Element<'span'>); // OK
    (<div />: React.Element<'span'>); // Error: div is not a span.

    typeof Component can also be your React class component or function component.

    function Foo(props: {}) {}
    class Bar extends React.Component<{}> {}

    (<Foo />: React.Element<typeof Foo>); // OK
    (<Bar />: React.Element<typeof Bar>); // OK
    (<Foo />: React.Element<typeof Bar>); // Error: Foo is not Bar

    Take note of the typeof, it is required! We want to get the +type of the value Foo. (Foo: Foo) is an error because Foo cannot be used +as a type, so the following is correct: (Foo: typeof Foo).

    Bar without typeof would be the type of an instance of Bar: (new Bar(): Bar). +We want the type of Bar not the type of an instance of Bar. +Class<Bar> would also work here, but we prefer typeof for consistency +with function components.

    React.ChildrenArray<T>

    A React children array can be a single value or an array nested to any level. +It is designed to be used with the React.Children API.

    For example if you want to get a normal JavaScript array from a +React.ChildrenArray<T> see the following example:

    import * as React from 'react';

    // A children array can be a single value...
    const children: React.ChildrenArray<number> = 42;
    // ...or an arbitrarily nested array.
    const children: React.ChildrenArray<number> = [[1, 2], 3, [4, 5]];

    // Using the `React.Children` API can flatten the array.
    const array: Array<number> = React.Children.toArray(children);

    React.AbstractComponent<Config, Instance>

    React.AbstractComponent<Config, Instance> represents a component with +a config of type Config and instance of type Instance.

    The Config of a component is the type of the object you need to pass in to JSX in order +to create an element with that component. The Instance of a component is the type of the value +that is written to the current field of a ref object passed into the ref prop in JSX.

    Config is required, but Instance is optional and defaults to mixed.

    A class or function component with config Config may be used in places that expect +React.AbstractComponent<Config>.

    This is Flow's most abstract representation of a React component, and is most useful for +writing HOCs and library definitions.

    React.ComponentType<Config>

    This is the same as React.AbstractComponent, but only specifies the first type argument.

    React.ElementType

    Similar to React.AbstractComponent<Props> except it also +includes JSX intrinsics (strings).

    The definition for React.ElementType is roughly:

    type ElementType =
    | string
    | React.AbstractComponent<empty, mixed>;

    React.Key

    The type of the key prop on React elements. It is a union of strings and +numbers defined as:

    type Key = string | number;

    React.Ref<typeof Component>

    The type of the ref prop on React elements. React.Ref<typeof Component> +could be a string, ref object, or ref function.

    The ref function will take one and only argument which will be the element +instance which is retrieved using +React.ElementRef<typeof Component> or null since +React will pass null into a ref function when unmounting.

    Like React.Element<typeof Component>, typeof Component +must be the type of a React component so you need to use typeof as in +React.Ref<typeof MyComponent>.

    The definition for React.Ref<typeof Component> is roughly:

    type Ref<C> =
    | string
    | (instance: React.ElementRef<C> | null) => mixed;
    | { -current: React$ElementRef<ElementType> | null, ... }

    React.ElementConfig<typeof Component>

    This utility gets the type of the object that you must pass in to a +component in order to instantiate it via createElement() or jsx().

    Importantly, props with defaults are optional in the resulting type.

    For example,

    import * as React from 'react';

    class MyComponent extends React.Component<{foo: number}> {
    static defaultProps = {foo: 42};

    render() {
    return this.props.foo;
    }
    }

    // `React.ElementProps<>` requires `foo` even though it has a `defaultProp`.
    ({foo: 42}: React.ElementProps<typeof MyComponent>);

    // `React.ElementConfig<>` does not require `foo` since it has a `defaultProp`.
    ({}: React.ElementConfig<typeof MyComponent>);

    Like React.Element<typeof Component>, typeof Component must be the +type of a React component so you need to use typeof as in +React.ElementProps<typeof MyComponent>.

    React.ElementProps<typeof Component>

    Note: Because React.ElementProps does not preserve the optionality of defaultProps, React.ElementConfig (which does) is more often the right choice, especially for simple props pass-through as with higher-order components. +You probably should not use ElementProps.

    Gets the props for a React element type, without preserving the optionality of defaultProps. +typeof Component could be the type of a React class component, a function component, or a JSX intrinsic string. +This type is used for the props property on React.Element<typeof Component>.

    Like React.Element<typeof Component>, typeof Component must be the +type of a React component so you need to use typeof as in +React.ElementProps<typeof MyComponent>.

    React.ElementRef<typeof Component>

    Gets the instance type for a React element. The instance will be different for +various component types:

    • React.AbstractComponent<Config, Instance> will return the Instance type.
    • React class components will be the class instance. So if you had +class Foo extends React.Component<{}> {} and used +React.ElementRef<typeof Foo> then the type would be the instance of Foo.
    • React function components do not have a backing instance and so +React.ElementRef<typeof Bar> (when Bar is function Bar() {}) will give +you the undefined type.
    • JSX intrinsics like div will give you their DOM instance. For +React.ElementRef<'div'> that would be HTMLDivElement. For +React.ElementRef<'input'> that would be HTMLInputElement.

    Like React.Element<typeof Component>, typeof Component must be the +type of a React component so you need to use typeof as in +React.ElementRef<typeof MyComponent>.

    React.Config<Props, DefaultProps>

    Calculates a config object from props and default props. This is most useful for annotating +HOCs that are abstracted over configs. See our docs on writing HOCs for more information.

    + + + + \ No newline at end of file diff --git a/en/docs/strict/index.html b/en/docs/strict/index.html new file mode 100644 index 00000000000..79a02981a98 --- /dev/null +++ b/en/docs/strict/index.html @@ -0,0 +1,27 @@ + + + + + +Flow Strict | Flow + + + + + + + + + + + + + + +
    +

    Flow Strict

    You can enable stronger safety guarantees in Flow (such as banning any/Object/Function types and requiring all dependencies to be typed) by adding @flow strict to your files.

    Overview

    Flow was designed for easy adoption, so it allows you opt-out of type checking in certain situations, permitting unsafe behaviors. But since many codebases now have a high adoption of Flow types, this trade-off can be flipped. You can use Flow Strict to disallow previously-allowed unsafe patterns. This gives you improved safety guarantees that catch more bugs and make refactoring easier. And you can implement these stronger guarantees incrementally, on a file-by-file basis.

    Features

    Enabling Flow Strict for a file means that several previously-allowed patterns will now trigger a Flow error. Each disallowed pattern has a corresponding Flow Lint rule which triggers the error. The list of rules enabled for @flow strict is configured in each .flowconfig. Here are the recommended rules:

    • nonstrict-import: Triggers an error when importing from a module which is not also @flow strict. This is very important, because it means that when a file is marked as strict, all of its dependencies are strict as well.
    • unclear-type: Triggers an error when using Object, Function, or any in a type annotation.
    • untyped-import: Triggers an error when importing from an untyped module.
    • untyped-type-import: Triggers an error when importing a type from an untyped module.
    • unsafe-getters-setters: Triggers an error when using getters and setters, which can be unsafe.
    • sketchy-null: Triggers an error when doing an existence check on a value that could be null/undefined or falsey.

    For a full list of available lint rules, see the Lint Rule Reference.

    Additionally, note that function parameters are considered const (i.e., treated as if they were declared with const rather than let). This feature is not yet configurable in Flow Strict; it is always on.

    Enabling Flow Strict in a .flowconfig

    Flow Strict is configured in each .flowconfig. To enable:

    1. Add a [strict] section to the .flowconfig.
    2. List the lint rules to enable . These are strongly recommended:
    [strict]
    nonstrict-import
    unclear-type
    unsafe-getters-setters
    untyped-import
    untyped-type-import

    Also recommended, but optional as it may be too noisy in some codebases: +sketchy-null

    We recommend you enable all your desired rules from the beginning, then adopt Flow Strict file-by-file. This works better than enabling a single rule, adding @flow strict to many files, and then adding more rules to the config.

    Adoption

    Add @flow strict to a file and fix all errors that appear. Because Flow Strict requires dependencies to also be strict (if the nonstrict-import rule is enabled), start at the leaves of the dependency tree and work up from there. Do not add $FlowFixMe to suppress the new errors as they appear; just add @flow strict once all issues have been resolved. Since the most common reasons for using $FlowFixMe stem from reliance on untyped dependencies or behavior, future issues should be greatly reduced once Flow Strict is enabled.

    Be liberal with enabling Flow Strict. Unlike adding or removing @flow, adding or removing @flow strict (by itself) does not change Flow coverage. It only prevents or allows certain new unsafe behavior from being added in the future. Even if in the future Flow Strict has to be disabled for the file, at least unsafe behavior was prevented from being added in the meantime.

    Library definitions are considered strict (as they can be included in many different projects with contradicting strict configurations).

    Strict Local

    If you enable the nonstrict-import rule in your Flow Strict configuration (recommended), then all dependencies of a strict file must also be strict. While this the optimal goal, for large pre-existing codebases it may be beneficial to allow some of the benefits of Flow Strict to be put in use before all dependencies are strict.

    @flow strict-local is the same as @flow strict, except it does not require its dependencies to also be strict (i.e. it is "locally" strict). It does not have a separate configuration: it uses the same configuration as Flow Strict, just without the nonstrict-import rule.

    Once all the dependencies of a @flow strict-local file are strict, the file can be upgraded to a @flow strict file. A @flow strict file cannot depend on a @flow strict-local file as this would break the nonstrict-import rule.

    What's Ahead

    Eventually, some features of Flow Strict could become the default behavior of Flow, if those features prove successful and achieve widespread adoption.

    + + + + \ No newline at end of file diff --git a/en/docs/tools/babel/index.html b/en/docs/tools/babel/index.html new file mode 100644 index 00000000000..a3de68076eb --- /dev/null +++ b/en/docs/tools/babel/index.html @@ -0,0 +1,29 @@ + + + + + +Babel | Flow + + + + + + + + + + + + + + +
    +

    Babel

    Flow and Babel are designed to work great together. It +takes just a few steps to set them up together.

    If you don't have Babel setup already, you can do that by following +this guide.

    Once you have Babel setup, install @babel/preset-flow and babel-plugin-syntax-hermes-parser with either +Yarn or npm.

    yarn add --dev @babel/preset-flow babel-plugin-syntax-hermes-parser
    # or
    npm install --save-dev @babel/preset-flow babel-plugin-syntax-hermes-parser

    Then add the @babel/preset-flow preset and babel-plugin-syntax-hermes-parser plugin to your Babel config.

    {
    "presets": ["@babel/preset-flow"],
    "plugins": ["babel-plugin-syntax-hermes-parser"],
    }

    You can read the documentation of babel-plugin-syntax-hermes-parser to see how to configure it. This website's Babel config provides an example with custom parser options.

    + + + + \ No newline at end of file diff --git a/en/docs/tools/eslint/index.html b/en/docs/tools/eslint/index.html new file mode 100644 index 00000000000..c22fd99a833 --- /dev/null +++ b/en/docs/tools/eslint/index.html @@ -0,0 +1,35 @@ + + + + + +ESLint | Flow + + + + + + + + + + + + + + +
    +

    ESLint

    ESLint is a static analysis tool which can help you quickly find and +fix bugs and stylistic errors in your code. The rules ESLint provide +complement the checks provided by Flow's type system.

    You can quick-start setup ESLint, install hermes-eslint with either +Yarn or npm.

    yarn add --dev eslint hermes-eslint eslint-plugin-ft-flow
    # or
    npm install --save-dev eslint hermes-eslint eslint-plugin-ft-flow

    Then create a .eslintrc.js file in your project root with the following:

    module.exports = {
    root: true,
    parser: 'hermes-eslint',
    plugins: [
    'ft-flow'
    ],
    extends: [
    'eslint:recommended',
    'plugin:ft-flow/recommended',
    ],
    };

    In the above config the order of the extends plugins is important as plugin:ft-flow/recommended +disables some rules from eslint:recommended so it needs to be defined after to work correctly.

    For more information about configuring ESLint, check out the ESLint docs.

    You can then lint your codebase with:

    yarn run eslint . --ext .js,.jsx
    # or
    npm run eslint . --ext .js,.jsx

    Usage With Prettier

    If you use prettier, there is also +a helpful config to help ensure ESLint doesn't report on formatting issues that +prettier will fix: eslint-config-prettier.

    Using this config by adding it to the end of your extends:

      module.exports = {
    root: true,
    parser: 'hermes-eslint',
    plugins: [
    'ft-flow'
    ],
    extends: [
    'eslint:recommended',
    'plugin:ft-flow/recommended',
    + 'prettier',
    ],
    };

    Additional Plugins

    ESLint plugins provide additional rules and other functionality on top of ESLint. +Below are just a few examples that might be useful:

    Every plugin that is out there includes documentation on the various configurations and rules they offer. +A typical plugin might be used like:

      module.exports = {
    root: true,
    parser: 'hermes-eslint',
    plugins: [
    'ft-flow'
    + 'jest',
    ],
    extends: [
    'eslint:recommended',
    'plugin:ft-flow/recommended',
    + 'plugin:jest/recommended',
    ],
    };

    Search "eslint-plugin" on npm for more.

    + + + + \ No newline at end of file diff --git a/en/docs/tools/flow-remove-types/index.html b/en/docs/tools/flow-remove-types/index.html new file mode 100644 index 00000000000..b8c95d28203 --- /dev/null +++ b/en/docs/tools/flow-remove-types/index.html @@ -0,0 +1,32 @@ + + + + + +flow-remove-types | Flow + + + + + + + + + + + + + + +
    +

    flow-remove-types

    flow-remove-types is a small +CLI tool for stripping Flow type annotations from files. It's a lighter-weight +alternative to Babel for projects that don't need everything Babel provides.

    First install flow-remove-types with either +Yarn or npm.

    yarn add --dev flow-remove-types
    # or
    npm install --save-dev flow-remove-types

    If you then put all your source files in a src directory you can compile them +to another directory by running:

    yarn run flow-remove-types src/ -d lib/

    You can add this to your package.json scripts easily.

    {
    "name": "my-project",
    "main": "lib/index.js",
    "scripts": {
    "build": "flow-remove-types src/ -d lib/",
    "prepublish": "yarn run build"
    }
    }

    Note: You'll probably want to add a prepublish script that runs this +transform as well, so that it runs before you publish your code to the npm +registry.

    + + + + \ No newline at end of file diff --git a/en/docs/tools/index.html b/en/docs/tools/index.html new file mode 100644 index 00000000000..f5761eefb26 --- /dev/null +++ b/en/docs/tools/index.html @@ -0,0 +1,26 @@ + + + + + +Tools | Flow + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/en/docs/types/aliases/index.html b/en/docs/types/aliases/index.html new file mode 100644 index 00000000000..bc8a265027c --- /dev/null +++ b/en/docs/types/aliases/index.html @@ -0,0 +1,33 @@ + + + + + +Type Aliases | Flow + + + + + + + + + + + + + + +
    +

    Type Aliases

    When you have complicated types that you want to reuse in multiple places, you +can alias them in Flow using a type alias.

    1type MyObject = {2  foo: number,3  bar: boolean,4  baz: string,5};

    These type aliases can be used anywhere a type can be used.

    1type MyObject = {2  // ...3};4
    +5const val: MyObject = { /* ... */ };6function method(val: MyObject) { /* ... */ }7class Foo { constructor(val: MyObject) { /* ... */ } }

    Type aliases are just that: aliases. They don't create a different type, just another name for one. +This means that a type alias is completely interchangeable with the type it is equal to.

    1type MyNumber = number;2declare const x: MyNumber;3declare function foo(x: number): void;4foo(x); // ok, because MyNumber = number

    Opaque type aliases offer an alternative for when you don't want to treat the +types as the same.

    Type Alias Syntax

    Type aliases are created using the keyword type followed by its name, an +equals sign =, and a type definition.

    type Alias = Type;

    Any type can appear inside a type alias.

    1type NumberAlias = number;2type ObjectAlias = {3  property: string,4  method(): number,5};6type UnionAlias = 1 | 2 | 3;7type AliasAlias = ObjectAlias;

    Type Alias Generics

    Type aliases can also have their own generics.

    1type MyObject<A, B, C> = {2  property: A,3  method(val: B): C,4};

    Type alias generics are parameterized. +When you use a type alias you need to pass parameters for each of its generics.

    1type MyObject<A, B, C> = {2  foo: A,3  bar: B,4  baz: C,5};6
    +7var val: MyObject<number, boolean, string> = {8  foo: 1,9  bar: true,10  baz: 'three',11};
    + + + + \ No newline at end of file diff --git a/en/docs/types/any/index.html b/en/docs/types/any/index.html new file mode 100644 index 00000000000..3f64214f2e1 --- /dev/null +++ b/en/docs/types/any/index.html @@ -0,0 +1,39 @@ + + + + + +Any | Flow + + + + + + + + + + + + + + +
    +

    Any

    Warning: Do not mistake any with mixed. It's also not the same as empty.

    If you want a way to opt-out of using the type checker, any is the way to do +it. Using any is completely unsafe, and should be avoided whenever +possible.

    For example, the following code will not report any errors:

    1function add(one: any, two: any): number {2  return one + two;3}4
    +5add(1, 2);     // Works.6add("1", "2"); // Works.7add({}, []);   // Works.

    Even code that will cause runtime errors will not be caught by Flow:

    1function getNestedProperty(obj: any) {2  return obj.foo.bar.baz;3}4
    +5getNestedProperty({});

    There are only a couple of scenarios where you might consider using any:

    1. When you are in the process of converting existing code to using Flow +types and you are currently blocked on having the code type checked (maybe +other code needs to be converted first).
    2. When you are certain your code works and for some reason Flow is unable to +type check it correctly. There are a (decreasing) number of idioms in +JavaScript that Flow is unable to statically type.

    You can ban any by enabling the unclear-type lint rule.

    You can use the coverage command to identify code typed as any.

    Avoid leaking any

    When you have a value with the type any, you can cause Flow to infer any +for the results of all of the operations you perform.

    For example, if you get a property on an object typed any, the resulting +value will also have the type any.

    1function fn(obj: any) {2  let foo = obj.foo; // Results in `any` type3}

    You could then use the resulting value in another operation, such as adding it +as if it were a number and the result will also be any.

    1function fn(obj: any) {2  let foo = obj.foo; // Results in `any` type3  let bar = foo * 2; // Results in `any` type4}

    You could continue this process until any has leaked all over your code.

    1function fn(obj: any) {2  let foo = obj.foo;3  let bar = foo * 2;4  return bar; // Results in `any` type5}6
    +7let bar = fn({ foo: 2 }); // Results in `any` type8let baz = "baz:" + bar; // Results in `any` type

    Prevent this from happening by cutting any off as soon as possible by casting +it to another type.

    1function fn(obj: any) {2  let foo: number = obj.foo;3}

    Now your code will not leak any.

    + + + + \ No newline at end of file diff --git a/en/docs/types/arrays/index.html b/en/docs/types/arrays/index.html new file mode 100644 index 00000000000..6438dc45af1 --- /dev/null +++ b/en/docs/types/arrays/index.html @@ -0,0 +1,71 @@ + + + + + +Arrays | Flow + + + + + + + + + + + + + + +
    +

    Arrays

    Array types represent lists of unknown length, where all items have the same type. +This is in contrast to tuple types, which have a fixed length and where each element can have a different type.

    JavaScript array literal values can be used to create both tuple and array types:

    1const arr: Array<number> = [1, 2, 3]; // As an array type2const tup: [number, number, number] = [1, 2, 3]; // As a tuple type

    Array Type

    The type Array<T> represents an array of items of type T. +For example, an array of numbers would be Array<number>:

    1const arr: Array<number> = [1, 2, 3];

    You can put any type within Array<T>:

    1const arr1: Array<boolean> = [true, false, true];2const arr2: Array<string> = ["A", "B", "C"];3const arr3: Array<mixed> = [1, true, "three"];

    $ReadOnlyArray Type

    You can use the type $ReadOnlyArray<T> instead of Array<T> to represent a read-only array which cannot be mutated. +You can't write to a read-only array directly, and can't use methods which mutate the array like .push(), .push(), etc.

    1const readonlyArray: $ReadOnlyArray<number> = [1, 2, 3]2
    +3const first = readonlyArray[0]; // OK to read4readonlyArray[1] = 20;          // Error!
    5readonlyArray.push(4); // Error!
    4:1-4:16: Cannot assign `20` to `readonlyArray[1]` because read-only arrays cannot be written to. [cannot-write]
    5:15-5:18: Cannot call `readonlyArray.push` because property `push` is missing in `$ReadOnlyArray` [1]. [prop-missing]

    Note that an array of type $ReadOnlyArray<T> can still have mutable elements:

    1const readonlyArray: $ReadOnlyArray<{x: number}> = [{x: 1}];2readonlyArray[0] = {x: 42}; // Error!
    3readonlyArray[0].x = 42; // Works
    2:1-2:16: Cannot assign object literal to `readonlyArray[0]` because read-only arrays cannot be written to. [cannot-write]

    The main advantage to using $ReadOnlyArray instead of Array is that $ReadOnlyArray's +type parameter is covariant +while Array's type parameter is invariant. +That means that $ReadOnlyArray<number> is a subtype of $ReadOnlyArray<number | string> while +Array<number> is NOT a subtype of Array<number | string>. So it's often useful to use +$ReadOnlyArray in type annotations for arrays of various types of elements. +Take, for instance, the following scenario:

    1const someOperation = (arr: Array<number | string>) => {2  // Here we could do `arr.push('a string')`3}4
    +5const array: Array<number> = [1];6someOperation(array) // Error!
    6:15-6:19: Cannot call `someOperation` with `array` bound to `arr` because string [1] is incompatible with number [2] in array element. Arrays are invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number. [incompatible-call]

    Since the parameter arr of the someOperation function is typed as a mutable +Array, pushing a string into it would be possible inside that scope, which +would then break the type contract of the outside array variable. By +annotating the parameter as $ReadOnlyArray instead in this case, Flow can be +sure this won't happen and no errors will occur:

    1const someOperation = (arr: $ReadOnlyArray<number | string>) => {2  // Nothing can be added to `arr`3}4
    +5const array: Array<number> = [1];6someOperation(array); // Works

    $ReadOnlyArray<mixed> represents the supertype of all arrays and all tuples:

    1const tup: [number, string] = [1, 'hi'];2const arr: Array<number> = [1, 2];3
    +4function f(xs: $ReadOnlyArray<mixed>) { /* ... */ }5
    +6f(tup); // Works7f(arr); // Works

    Empty Array Literals

    Empty array literals ([]) are handled specially in Flow when it comes to their annotation requirements. +What makes them special is that they do not contain enough information to +determine their type, and at the same time they are too common to always +require type annotations in their immediate context.

    So, to type empty arrays Flow follows these rules:

    Contextual Inference

    First, if contextual information exists, +we'll use it to determine the array element type:

    1function takesStringArray(x: Array<string>): void {}2
    +3const arr1: Array<string> = [];4takesStringArray([]);

    In both cases, the [] will be typed as an Array<string>.

    Note that for the contextual information to work, the type needs to be available +right at the definition of the array. This means that the last two lines in the following +code will error:

    1function takesStringArray(x: Array<string>): void {}2
    +3const arr2 = [];
    4takesStringArray(arr2);
    3:7-3:10: Cannot determine type of empty array literal. Please provide an annotation. [missing-empty-array-annot]
    4:18-4:21: Cannot call `takesStringArray` with `arr2` bound to `x` because string [1] is incompatible with unknown element of empty array [2] in array element. Arrays are invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number. [incompatible-call]

    The second error is due to arr2 being inferred as Array<empty> which leads to another error at the call +to takesStringArray.

    Initializer Inference

    Flow allows another way to determine the types of empty arrays when they are immediately assigned to a variable:

    const arr3 = [];

    The way it does this is reminiscent of the typing of +variables without initializers: +Flow tries to choose the "first" assignment or assignments +to the variable to define its type. In the case of empty arrays, an assignment is either

    • an indexed write statement a[i] = e;, or
    • an array push call a.push(e).

    In either case the type of e is used as the type of the array element.

    Here are some examples:

    Straight-line Code

    Once the first assignemnt has been found, the type of the array element is pinned to that of the +assigned expression. Subsequent writes to array with elements of +a different type are errors:

    1const arr3 = [];2arr3.push(42); // arr3 is inferred as Array<number>3arr3.push("abc"); // Error!
    3:11-3:15: Cannot call `arr3.push` because string [1] is incompatible with number [2] in array element. [incompatible-call]

    Conditional Code

    If the array is assigned in sibling branches of conditional statements, the type +of the array element is pinned to the union of the assigned types:

    1declare const cond: boolean;2
    +3const arr4 = [];4if (cond) {5  arr4[0] = 42;6} else {7  arr4.push("abc");8}9// arr4 is inferred as Array<number | string>10arr4.push("def"); // Works11arr4[0] = true; // Error!
    11:11-11:14: Cannot assign `true` to `arr4[0]` because: [incompatible-type] Either boolean [1] is incompatible with number [2]. Or boolean [1] is incompatible with string [3].

    Nearer Scope Wins

    Shallow scope of assignment is prefered when there are multiple scopes where assignments happen:

    1const arr5 = [];2function f() {3  arr5.push(42); // Error!
    4}5f();6arr5.push("abc"); // This assignment wins. arr5 is inferred as Array<string>7arr5.push(1); // Error!
    3:13-3:14: Cannot call `arr5.push` because number [1] is incompatible with string [2] in array element. [incompatible-call]
    7:11-7:11: Cannot call `arr5.push` because number [1] is incompatible with string [2] in array element. [incompatible-call]

    Array access is unsafe

    When you retrieve an element from an array there is always a possibility that +it is undefined. You could have either accessed an index which is out of the +bounds of the array, or the element could not exist because it is a "sparse +array".

    For example, you could be accessing an element that is out of the bounds of the +array:

    1const array: Array<number> = [0, 1, 2];2const value: number = array[3]; // Works3                         // ^ undefined

    Or you could be accessing an element that does not exist if it is a "sparse array":

    1const array: Array<number> = [];2
    +3array[0] = 0;4array[2] = 2;5
    +6const value: number = array[1]; // Works7                         // ^ undefined

    In order to make this safe, Flow would have to mark every single array access +as "possibly undefined".

    Flow does not do this because it would be extremely inconvenient to use. You +would be forced to refine the type of every value you get when accessing an +array.

    1const array: Array<number> = [0, 1, 2];2const value: number | void = array[1];3
    +4if (value !== undefined) {5  // number6}

    Discouraged Array Type Shorthand Syntax

    There is an alternative to the Array<T> syntax: T[]. +This syntax is discouraged and may be deprecated in the future.

    1const arr: number[] = [0, 1, 2, 3];

    Just note that ?Type[] is the equivalent of ?Array<T> and not Array<?T>.

    1const arr1: ?number[] = null;   // Works2const arr2: ?number[] = [1, 2]; // Works3const arr3: ?number[] = [null]; // Error!
    3:26-3:29: Cannot assign array literal to `arr3` because null [1] is incompatible with number [2] in array element. [incompatible-type]

    If you want to make it Array<?T> you can use parenthesis like: (?Type)[]

    1const arr1: (?number)[] = null;   // Error!
    2const arr2: (?number)[] = [1, 2]; // Works3const arr3: (?number)[] = [null]; // Works
    1:27-1:30: Cannot assign `null` to `arr1` because null [1] is incompatible with array type [2]. [incompatible-type]
    + + + + \ No newline at end of file diff --git a/en/docs/types/casting/index.html b/en/docs/types/casting/index.html new file mode 100644 index 00000000000..99d479f2972 --- /dev/null +++ b/en/docs/types/casting/index.html @@ -0,0 +1,51 @@ + + + + + +Type Casting Expressions | Flow + + + + + + + + + + + + + + +
    +

    Type Casting Expressions

    Sometimes it is useful to assert a type without using something like a function +or a variable to do so. For this Flow supports an inline type cast expression +syntax which can be used in a number of different ways.

    Type Cast Expression Syntax

    In order to create a type cast expression around a value, add a colon : +with the Type and wrap the expression with parentheses ( ).

    (value: Type)

    Note: The parentheses are necessary to avoid ambiguity with other syntax.

    Type cast expressions can appear anywhere an expression can appear.

    let val = (value: Type);
    let obj = { prop: (value: Type) };
    let arr = ([(value: Type), (value: Type)]: Array<Type>);

    The value itself can also be an expression:

    (2 + 2: number);

    When you strip the types all that is left is the value.

    (value: Type);
    value;

    Type Assertions

    Using type cast expressions you can assert that values are certain types.

    1let value = 42;2
    +3(value: 42);     // Works!4(value: number); // Works!5(value: string); // Error!
    5:2-5:6: Cannot cast `value` to string because number [1] is incompatible with string [2]. [incompatible-cast]

    Asserting types in this way works the same as types do anywhere else.

    Type Casting

    When you write a type cast expression, the result of that expression is the +value with the provided type. If you hold onto the resulting value, it will +have the new type.

    1let value = 42;2
    +3(value: 42);     // Works!4(value: number); // Works!5
    +6let newValue = (value: number);7
    +8(newValue: 42);     // Error!
    9(newValue: number); // Works!
    8:2-8:9: Cannot cast `newValue` to number literal `42` because number [1] is incompatible with number literal `42` [2]. [incompatible-cast]

    Using type cast expressions

    Note: We're going to go through a stripped down example for +demonstrating how to make use of type cast expressions. This example is not +solved well in practice.

    Type Casting through any

    Because type casts work the same as all other type annotations, you can only +cast values to less specific types. You cannot change the type or make it +something more specific.

    But you can use any to cast to whatever type you want.

    1let value = 42;2
    +3(value: number); // Works!4(value: string); // Error!
    5 +6let newValue = ((value: any): string);7 +8(newValue: number); // Error!
    9(newValue: string); // Works!
    4:2-4:6: Cannot cast `value` to string because number [1] is incompatible with string [2]. [incompatible-cast]
    8:2-8:9: Cannot cast `newValue` to number because string [1] is incompatible with number [2]. [incompatible-cast]

    By casting the value to any, you can then cast to whatever you want.

    This is unsafe and not recommended. But it's sometimes useful when you are +doing something with a value which is very difficult or impossible to type and +want to make sure that the result has the desired type.

    For example, the following function for cloning an object.

    1function cloneObject(obj: any) {2  const clone: {[string]: mixed} = {};3
    +4  Object.keys(obj).forEach(key => {5    clone[key] = obj[key];6  });7
    +8  return clone;9}

    It would be hard to create a type for this because we're creating a new object +based on another object.

    If we cast through any, we can return a type which is more useful.

    1function cloneObject<T: {+[key: string]: mixed }>(obj: T): T {2  const clone: {[string]: mixed} = {};3
    +4  Object.keys(obj).forEach(key => {5    clone[key] = obj[key];6  });7
    +8  return ((clone: any): T);9}10
    +11const clone = cloneObject({12  foo: 1,13  bar: true,14  baz: 'three'15});16
    +17(clone.foo: 1);       // Works!18(clone.bar: true);    // Works!19(clone.baz: 'three'); // Works!
    + + + + \ No newline at end of file diff --git a/en/docs/types/classes/index.html b/en/docs/types/classes/index.html new file mode 100644 index 00000000000..d889da90f0c --- /dev/null +++ b/en/docs/types/classes/index.html @@ -0,0 +1,66 @@ + + + + + +Classes | Flow + + + + + + + + + + + + + + +
    +

    Classes

    JavaScript classes +in Flow operate both as a value and a type. You can use the name of the class as the type of its instances:

    1class MyClass {2  // ...3}4
    +5const myInstance: MyClass = new MyClass(); // Works!

    This is because classes in Flow are nominally typed.

    This means two classes with identical shapes are not compatible:

    1class A {2  x: number;3}4class B {5  x: number;6}7const foo: B = new A(); // Error!
    8const bar: A = new B(); // Error!
    7:16-7:22: Cannot assign `new A()` to `foo` because `A` [1] is incompatible with `B` [2]. [incompatible-type]
    8:16-8:22: Cannot assign `new B()` to `bar` because `B` [1] is incompatible with `A` [2]. [incompatible-type]

    You also cannot use an object type to describe an instance of a class:

    1class MyClass {2  x: number;3}4const foo: {x: number, ...} = new MyClass(); // Error!
    4:31-4:43: Cannot assign `new MyClass()` to `foo` because `MyClass` [1] is not a subtype of object type [2]. Class instances are not subtypes of object types; consider rewriting object type [2] as an interface. [class-object-subtyping]

    You can use interfaces to accomplish this instead:

    1class A {2  x: number;3}4class B {5  x: number;6}7
    +8interface WithXNum {9  x: number;10}11
    +12const foo: WithXNum = new A(); // Works!13const bar: WithXNum = new B(); // Works!14
    +15const n: number = foo.x; // Works!

    Class Syntax

    Classes in Flow are just like normal JavaScript classes, but with added types.

    Class Methods

    Just like in functions, class methods can have annotations for both parameters +(input) and returns (output):

    1class MyClass {2  method(value: string): number {3    return 0;4  }5}

    Also just like regular functions, class methods may have this annotations as well. +However, if one is not provided, Flow will infer the class instance type (or the class type for static methods) +instead of mixed. When an explicit this parameter is provided, it must be a supertype of +the class instance type (or class type for static methods).

    1class MyClass {2  method(this: interface {x: string}) { /* ... */ } // Error!
    3}
    2:3-2:8: Cannot define method `method` [1] on `MyClass` because property `x` is missing in `MyClass` [2] but exists in interface type [3]. [prop-missing]

    Unlike class properties, however, class methods cannot be unbound or rebound from +the class on which you defined them. So all of the following are errors in Flow:

    1class MyClass { method() {} }2const a = new MyClass();3a.method; // Error!
    4const {method} = a; // Error!
    5a.method.bind({}); // Error!
    3:3-3:8: Cannot get `a.method` because property `method` [1] cannot be unbound from the context [2] where it was defined. [method-unbinding]
    4:8-4:13: property `method` [1] cannot be unbound from the context [2] where it was defined. [method-unbinding]
    5:3-5:8: Cannot get `a.method` because property `method` [1] cannot be unbound from the context [2] where it was defined. [method-unbinding]

    Methods are considered read-only:

    1class MyClass {2  method() {}3}4
    +5const a = new MyClass();6a.method = function() {}; // Error!
    6:3-6:8: Cannot assign function to `a.method` because property `method` is not writable. [cannot-write]

    Flow supports private methods, +a feature of ES2022. Private methods start with a hash symbol #:

    1class MyClass {2  #internalMethod() {3    return 1;4  }5  publicApi() {6    return this.#internalMethod();7  }8}9
    +10const a = new MyClass();11a.#internalMethod(); // Error!
    12a.publicApi(); // Works!
    11:3-11:17: Private fields can only be referenced from within a class.

    Flow requires return type annotations on methods in most cases. +This is because it is common to reference this inside of a method, and this is typed as the instance of the class - +but to know the type of the class we need to know the return type of its methods!

    1class MyClass {2  foo() { // Error!
    3 return this.bar();4 }5 bar() { // Error!
    6 return 1;7 }8}
    2:8-2:7: Missing an annotation on return. [missing-local-annot]
    5:8-5:7: Missing an annotation on return. [missing-local-annot]
    1class MyClassFixed {2  foo(): number { // Works!3    return this.bar();4  }5  bar(): number { // Works!6    return 1;7  }8}

    Class Fields (Properties)

    Whenever you want to use a class field in Flow you must first give it an +annotation:

    1class MyClass {2  method() {3    this.prop = 42; // Error!
    4 }5}
    3:10-3:13: Cannot assign `42` to `this.prop` because property `prop` is missing in `MyClass` [1]. [prop-missing]

    Fields are annotated within the body of the class with the field name followed +by a colon : and the type:

    1class MyClass {2  prop: number;3  method() {4    this.prop = 42;5  }6}

    Fields added outside of the class definition need to be annotated within the body +of the class:

    1function func(x: number): number {2  return x + 1;3}4
    +5class MyClass {6  static constant: number;7  static helper: (number) => number;8  prop: number => number;9}10MyClass.helper = func11MyClass.constant = 4212MyClass.prototype.prop = func

    Flow also supports using the class properties syntax:

    1class MyClass {2  prop = 42;3}

    When using this syntax, you are not required to give it a type annotation. But +you still can if you need to:

    1class MyClass {2  prop: number = 42;3}

    You can mark a class field as read-only (or write-only) using variance annotations. +These can only be written to in the constructor:

    1class MyClass {2  +prop: number;3
    +4  constructor() {5    this.prop = 1; // Works!6  }7
    +8  method() {9    this.prop = 1; // Error!
    10 }11}12 +13const a = new MyClass();14const n: number = a.prop; // Works!15a.prop = 1; // Error!
    9:10-9:13: Cannot assign `1` to `this.prop` because property `prop` is not writable. [cannot-write]
    15:3-15:6: Cannot assign `1` to `a.prop` because property `prop` is not writable. [cannot-write]

    Flow supports private fields, +a feature of ES2022. Private fields start with a hash symbol #:

    1class MyClass {2  #internalValue: number;3
    +4  constructor() {5    this.#internalValue = 1;6  }7
    +8  publicApi() {9    return this.#internalValue;10  }11}12
    +13const a = new MyClass();14const x: number = a.#internalValue; // Error!
    15const y: number = a.publicApi(); // Works!
    14:21-14:34: Private fields can only be referenced from within a class.

    Extending classes and implementing interfaces

    You can optionally extend one other class:

    1class Base {2  x: number;3}4
    +5class MyClass extends Base {6  y: string;7}

    And also implement multiple interfaces:

    1interface WithXNum {2  x: number;3}4interface Readable {5  read(): string;6}7
    +8class MyClass implements WithXNum, Readable {9  x: number;10  read(): string {11    return String(this.x);12  }13}

    You don't need to implement an interface to be a subtype of it, but doing so enforces that your class meets the requirements:

    1interface WithXNum {2  x: number;3}4
    +5class MyClass implements WithXNum { // Error!
    6}
    5:7-5:13: Cannot implement `WithXNum` [1] with `MyClass` because property `x` is missing in `MyClass` [2] but exists in `WithXNum` [1]. [prop-missing]

    Class Constructors

    You can initialize your class properties in class constructors:

    1class MyClass {2  foo: number;3
    +4  constructor() {5    this.foo = 1;6  }7}

    You must first call super(...) in a derived class before you can access this and super:

    1class Base {2  bar: number;3}4
    +5class MyClass extends Base {6  foo: number;7
    +8  constructor() {9    this.foo; // Error
    10 this.bar; // Error
    11 super.bar; // Error
    12 super();13 this.foo; // OK14 this.bar; // OK15 super.bar; // OK16 }17}
    9:5-9:8: Must call `super` before accessing this [1] in a derived constructor. [reference-before-declaration]
    10:5-10:8: Must call `super` before accessing this [1] in a derived constructor. [reference-before-declaration]
    11:5-11:9: Must call `super` before accessing super [1] in a derived constructor. [reference-before-declaration]

    However, Flow will not enforce that all class properties are initialized in constructors:

    1class MyClass {2  foo: number;3  bar: number;4
    +5  constructor() {6    this.foo = 1;7  }8
    +9  useBar() {10    (this.bar: number); // No errors.11  }12}

    Class Generics

    Classes can also have their own generics:

    1class MyClass<A, B, C> {2  property: A;3  method(val: B): C {4    throw new Error();5  }6}

    Class generics are parameterized. +When you use a class as a type you need to pass parameters for each of its +generics:

    1class MyClass<A, B, C> {2  constructor(arg1: A, arg2: B, arg3: C) {3    // ...4  }5}6
    +7const val: MyClass<number, boolean, string> = new MyClass(1, true, 'three');

    Classes in annotations

    When you use the name of your class in an annotation, it means an instance of your class:

    class MyClass {}

    const b: MyClass = new MyClass(); // Works!
    const a: MyClass = MyClass; // Error!

    See here for details on Class<T>, which allows you +to refer to the type of the class in an annotation.

    + + + + \ No newline at end of file diff --git a/en/docs/types/comments/index.html b/en/docs/types/comments/index.html new file mode 100644 index 00000000000..ae4b8a1c8dc --- /dev/null +++ b/en/docs/types/comments/index.html @@ -0,0 +1,39 @@ + + + + + +Comment Types | Flow + + + + + + + + + + + + + + +
    +

    Comment Types

    Flow supports a comment-based syntax, which makes it possible to use Flow +without having to compile your files.

    1/*::2type MyAlias = {3  foo: number,4  bar: boolean,5  baz: string,6};7*/8
    +9function method(value /*: MyAlias */) /*: boolean */ {10  return value.bar;11}12
    +13method({foo: 1, bar: true, baz: ["oops"]});
    13:33-13:40: Cannot call `method` with object literal bound to `value` because array literal [1] is incompatible with string [2] in property `baz`. [incompatible-call]

    These comments allow Flow to work in plain JavaScript files without any +additional work.

    Comment types syntax

    There are two primary pieces of the syntax: type includes and type annotations.

    Type include comments

    If you want to have Flow treat a comment as if it were normal syntax, you can +do so by adding a double colon :: to the start of the comment:

    1/*::2type MyAlias = {3  foo: number,4  bar: boolean,5  baz: string,6};7*/8
    +9class MyClass {10  /*:: prop: string; */11}

    This includes the code into the syntax that Flow sees:

    1type MyAlias = {2  foo: number,3  bar: boolean,4  baz: string,5};6
    +7class MyClass {8  prop: string;9}

    But JavaScript ignores these comments, so your code is valid JavaScript syntax:

    1class MyClass {2
    +3}

    This syntax is also available in a flow-include form:

    1/*flow-include2type MyAlias = {3  foo: number,4  bar: boolean,5  baz: string,6};7*/8
    +9class MyClass {10  /*flow-include prop: string; */11}

    Type annotation comments

    Instead of typing out a full include every time, you can also use the type +annotation shorthand with a single colon : at the start of the comment.

    1function method(param /*: string */) /*: number */ {2  return 1;3}

    This would be the same as including a type annotation inside an include comment.

    1function method(param /*:: : string */) /*:: : number */ {2  return 1;3}

    Note: If you want to use optional function parameters you'll need to use +the include comment form.


    Special thanks to: Jarno Rantanen for +building flotate and supporting us +merging his syntax upstream into Flow.

    + + + + \ No newline at end of file diff --git a/en/docs/types/conditional/index.html b/en/docs/types/conditional/index.html new file mode 100644 index 00000000000..005b630026f --- /dev/null +++ b/en/docs/types/conditional/index.html @@ -0,0 +1,35 @@ + + + + + +Conditional Types | Flow + + + + + + + + + + + + + + +
    +

    Conditional Types

    Flow's conditional type allows you to conditionally choose between two different output types by inspecting an input type. It is useful to extract parts of a type, or to describe a complex overload.

    Basic Usage

    It has a syntax that is similar to conditional expressions: CheckType extends ExtendsType ? TrueType : FalseType.

    If CheckType is a subtype of ExtendsType, the conditional type will be evaluated to TrueType. Otherwise, it will be evaluated to FalseType.

    The following example illustrates both cases.

    1class Animal {}2class Dog extends Animal {}3
    +4type TypeofAnimal = Dog extends Animal ? 'animal' : 'unknown'; // evaluates to 'animal'5type TypeofString = string extends Animal ? 'animal' : 'unknown'; // evaluates to 'unknown'

    Generic Conditional Types

    This might not look very useful, since you already know what type it will evaluate to. However, combining with generics, you can perform complex computations over types. For example, you can write down a type-level typeof operator:

    1type TypeOf<T> =2  T extends null ? 'null' :3  T extends void ? 'undefined' :4  T extends string ? 'string' :5  T extends number ? 'number' :6  T extends boolean ? 'boolean' :7  T extends (...$ReadOnlyArray<empty>)=>mixed ? 'function' : 'object'8
    +9type T1 = TypeOf<null>; // evaluates to 'null'10type T2 = TypeOf<void>; // evaluates to 'undefined'11type T3 = TypeOf<string>; // evaluates to 'string'12type T4 = TypeOf<number>; // evaluates to 'number'13type T5 = TypeOf<boolean>; // evaluates to 'boolean'14type T6 = TypeOf<(string)=>boolean>; // evaluates to 'function'15type T7 = TypeOf<{foo: string}>; // evaluates to 'object'

    Function return types dependent on input types

    Conditional types also allow you to intuitively describe the conditions for choosing different function overloads:

    1declare function wrap<T>(value: T): T extends string ? { type: 'string', value: string }2                                  : T extends number ? { type: 'number', value: number }3                                  : { type: 'unsupported' }4
    +5const v1 = wrap(3);   // has type { type: 'number', value: number }6const v2 = wrap('4'); // has type { type: 'string', value: string }7const v3 = wrap({});  // has type { type: 'unsupported' }

    The above example can also be written with function overload:

    1declare function wrap(value: string): { type: 'string', value: string }2declare function wrap(value: number): { type: 'number', value: number }3declare function wrap(value: mixed): { type: 'unsupported' }4
    +5const v1 = wrap(3);   // has type { type: 'number', value: number }6const v2 = wrap('4'); // has type { type: 'string', value: string }7const v3 = wrap({});  // has type { type: 'unsupported' }

    Inferring Within Conditional Types

    You can use the power of conditional types to extract parts of a type using infer types. For example, the builtin ReturnType is powered by conditional types:

    1type ReturnType<T> = T extends (...args: $ReadOnlyArray<empty>) => infer Return ? Return : empty;2
    +3type N = ReturnType<(string) => number>; // evaluates to `number`4type S = ReturnType<(number) => string>; // evaluates to `string`

    We used the infer type here to introduce a new generic type variable named Return, which can be used in the type branch of the conditional type. Infer types can only appear on the right hand side of the extends clause in conditional types. Flow will perform a subtyping check between the check type and the extends type to automatically figure out its type based on the input type T.

    In the example of type N = ReturnType<(string) => number>, Flow checks if (string) => number is a subtype of (...args: $ReadOnlyArray<empty>) => infer Return, and during this process Return is constrained to number.

    When doing extractions like the above example, you usually want the conditional type to always choose the true branch where the type is successfully extracted. For example, silently choosing the false branch is not great:

    1type ExtractReturnTypeNoValidation<T> =2  T extends (...args: $ReadOnlyArray<empty>) => infer Return ? Return : any;3
    +4(1: ExtractReturnTypeNoValidation<string>); // no error :(

    Instead, you might want Flow to error when the input is not a function type. This can be accomplished by adding constraints to the type parameter:

    1type ReturnType<T: (...args: $ReadOnlyArray<empty>) => mixed> =2  T extends (...args: $ReadOnlyArray<empty>) => infer Return ? Return : any;3
    +4(1: ReturnType<(string) => number>);5(1: ReturnType<string>);
    5:16-5:21: Cannot instantiate `ReturnType` because string [1] is incompatible with function type [2] in type argument `T`. [incompatible-type-arg]

    Distributive Conditional Types

    When a generic conditional type is given a union type as a type argument, the conditional distributes over the union's members. For example, the TypeOf example above can distribute over a union:

    1type TypeOf<T> =2  T extends null ? 'null' :3  T extends void ? 'undefined' :4  T extends string ? 'string' : 'other';5
    +6type StringOrNull = TypeOf<string | null>; // evaluates to 'string' | 'null'

    This works by first breaking up the union type, and then passing each type to the conditional type to be evaluated separately. In the example above, this looks something like:

    TypeOf<string | null>
    --> (break up the union) --> TypeOf<string> | TypeOf<null>
    --> (evaluate each conditional type separately) --> 'string' | 'null'

    If you want to avoid this behavior, you can wrap the check type and extends type with unary tuple type:

    1type NonDistributiveTypeOf<T> =2  [T] extends [null] ? 'null' :3  [T] extends [void] ? 'undefined' :4  [T] extends [string] ? 'string' : 'other';5
    +6type Other = NonDistributiveTypeOf<string | null>; // evaluates to 'other'

    This trick works because Flow will only enable the distributive behavior of conditional type if the check type is a generic type. The example above does not choose any true branch of the conditional type, because [string | null] is not a subtype of [null], [void], or [string], since tuples are invariantly typed.

    Adoption

    To use conditional types, you need to upgrade your infrastructure so that it supports the syntax:

    • flow and flow-parser: 0.208.0. Between v0.208 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the [options] heading, add conditional_type=true.
    • prettier: 3
    • babel with babel-plugin-syntax-hermes-parser. See our Babel guide for setup instructions.
    • eslint with hermes-eslint. See our ESLint guide for setup instructions.
    + + + + \ No newline at end of file diff --git a/en/docs/types/empty/index.html b/en/docs/types/empty/index.html new file mode 100644 index 00000000000..b03df309000 --- /dev/null +++ b/en/docs/types/empty/index.html @@ -0,0 +1,32 @@ + + + + + +Empty | Flow + + + + + + + + + + + + + + +
    +

    Empty

    The empty type has no values. It is the subtype of all other types (i.e. the bottom type). +In this way it is the opposite of mixed, which is the supertype of all types.

    It is not common to annotate your code using empty. However, there are a couple of situations that it might be useful:

    If you have a function that always throws, you can annotate the return as empty, as the function never returns:

    1function throwIt(msg: string): empty {2  throw new Error(msg);3}

    You can use a cast to empty to assert that you have refined away all members of a union:

    1function f(x: 'a' | 'b'): number {2  switch (x) {3    case 'a':4      return 1;5    case 'b':6      return 2;7    default:8      return (x: empty);9  }10}

    If you had not checked for all members of the union (for example, changed x to be of type 'a' | 'b' | 'c'), +then x would no longer be empty in the default, and Flow would error.

    Note: If you want exhaustively checked enums by defualt, without having to cast to empty, +you could enable and use Flow Enums in your project.

    Since empty is the subtype of all types, all operations are permitted on something that has the empty type. +However since no values can be empty, this is "safe", unlike with any.

    1const str = "hello";2
    +3if (typeof str === "string") {4  (str: string); // Yes it's a string5} else {6  // Works! Since we will never enter this branch7  (str: empty);8  const n: number = str + 1;9}

    We put "safe" in quotes above, as due type safety holes in your code or bugs within Flow itself, +it is possible to get values which are empty typed.

    You can use the coverage command to identify code typed as empty.

    + + + + \ No newline at end of file diff --git a/en/docs/types/functions/index.html b/en/docs/types/functions/index.html new file mode 100644 index 00000000000..fa589535ecd --- /dev/null +++ b/en/docs/types/functions/index.html @@ -0,0 +1,73 @@ + + + + + +Functions | Flow + + + + + + + + + + + + + + +
    +

    Functions

    Functions have two places where types are applied: parameters (input) and the return value (output).

    1function concat(a: string, b: string): string {2  return a + b;3}4
    +5concat("foo", "bar"); // Works!6concat(true, false);  // Error!
    6:8-6:11: Cannot call `concat` with `true` bound to `a` because boolean [1] is incompatible with string [2]. [incompatible-call]
    6:14-6:18: Cannot call `concat` with `false` bound to `b` because boolean [1] is incompatible with string [2]. [incompatible-call]

    Using inference, return types are often optional:

    1function concat(a: string, b: string) {2  return a + b;3}4
    +5const s: string = concat("foo", "bar"); // Works!

    If defined where we can get the type from the context of the expression, type annotations can be optional:

    1[1, 2, 3].map(x => x * x); // From the context, we know parameter `x` has type `number`

    Syntax of functions

    There are three forms of functions that each have their own slightly different syntax.

    Function Declarations

    1function func(str: string, bool?: boolean, ...nums: Array<number>): void {2  // ...3}

    Arrow Functions

    1let func = (str: string, bool?: boolean, ...nums: Array<number>): void => {2  // ...3};

    Function Types

    1type T = (str: string, bool?: boolean, ...nums: Array<number>) => void;

    You may also optionally leave out the parameter names.

    1type T = (string, boolean | void, Array<number>) => void;

    You might use these functions types for something like a callback.

    1function func(callback: (error: Error | null, value: string | null) => void) {2  // ...3}

    Type arguments

    Functions can have type arguments:

    1function f<T>(x: T): Array<T> {2  return [x];3}4
    +5const g = <T>(x: T): Array<T> => [x];6
    +7type H = <T>(T) => Array<T>;

    Function Parameters

    Function parameters can have types by adding a colon : followed by the type +after the name of the parameter.

    1function func(param1: string, param2: boolean) {2  // ...3}

    Optional Parameters

    You can also have optional parameters by adding a question mark ? after the +name of the parameter and before the colon :.

    1function func(optionalValue?: string) {2  // ...3}

    Optional parameters will accept missing, undefined, or matching types. But +they will not accept null.

    1function func(optionalValue?: string) {2  // ...3}4
    +5func();          // Works.6func(undefined); // Works.7func("string");  // Works.8
    +9func(null);      // Error!
    9:6-9:9: Cannot call `func` with `null` bound to `optionalValue` because null [1] is incompatible with string [2]. [incompatible-call]

    Rest Parameters

    JavaScript also supports having rest parameters or parameters that collect an +array of arguments at the end of a list of parameters. These have an ellipsis +... before them.

    You can also add type annotations for rest parameters using the same syntax but +with an Array.

    1function func(...args: Array<number>) {2  // ...3}

    You can pass as many arguments as you want into a rest parameter.

    1function func(...args: Array<number>) {2  // ...3}4
    +5func();        // Works.6func(1);       // Works.7func(1, 2);    // Works.8func(1, 2, 3); // Works.

    Note: If you add a type annotation to a rest parameter, it must always +explicitly be an Array of $ReadOnlyArray type.

    this parameter

    Every function in JavaScript can be called with a special context named this. +You can call a function with any context that you want. Flow allows you to annotate +the type for this context by adding a special parameter at the start of the function's parameter list:

    1function func<T>(this: { x: T }) : T {2  return this.x;3}4
    +5const num: number = func.call({x : 42});6const str: string = func.call({x : 42}); // Error!
    6:21-6:39: Cannot assign `func.call(...)` to `str` because number [1] is incompatible with string [2]. [incompatible-type]

    This parameter has no effect at runtime, and is erased along with types when Flow is transformed into JavaScript. +When present, this parameters must always appear at the very beginning of the function's parameter list, and must +have an annotation. Additionally, arrow functions may not have a this parameter annotation, as +these functions bind their this parameter at the definition site, rather than the call site.

    If an explicit this parameter is not provided, Flow will attempt to infer one based on usage. If this is not mentioned +in the body of the function, Flow will infer mixed for its this parameter.

    Function Returns

    Function returns can also add a type using a colon : followed by the type +after the list of parameters.

    1function func(): number {2  return 1;3}

    Return types ensure that every branch of your function returns the same type. +This prevents you from accidentally not returning a value under certain +conditions.

    1function func(): boolean {
    2 if (Math.random() > 0.5) {3 return true;4 }5}
    1:18-1:24: Cannot expect boolean as the return type of function because boolean [1] is incompatible with implicitly-returned undefined. [incompatible-return]

    Async functions implicitly return a promise, so the return type must always be a Promise.

    1async function func(): Promise<number> {2  return 123;3}

    Predicate Functions

    Sometimes you will want to move the condition from an if statement into a function:

    1function concat(a: ?string, b: ?string): string {2  if (a != null && b != null) {3    return a + b;4  }5  return '';6}

    However, Flow will error in the code below:

    1function truthy(a: ?string, b: ?string): boolean {2  return a != null && b != null;3}4
    +5function concat(a: ?string, b: ?string): string {6  if (truthy(a, b)) {7    return a + b; // Error!
    8 }9 return '';10}
    7:12-7:16: Cannot use operator `+` with operands null or undefined [1] and null or undefined [2] [unsafe-addition]
    7:12-7:16: Cannot use operator `+` with operands null or undefined [1] and string [2] [unsafe-addition]
    7:12-7:16: Cannot use operator `+` with operands string [1] and null or undefined [2] [unsafe-addition]

    This is because the refinement information of a and b as string instead of ?string is lost when returning from the truthy function.

    You can fix this by making truthy a predicate function, by using the %checks annotation like so:

    1function truthy(a: ?string, b: ?string): boolean %checks {2  return a != null && b != null;3}4
    +5function concat(a: ?string, b: ?string): string {6  if (truthy(a, b)) {7    return a + b;8  }9  return '';10}

    Limitations of predicate functions

    The body of these predicate functions need to be expressions (i.e. local variable declarations are not supported). +But it's possible to call other predicate functions inside a predicate function. +For example:

    1function isString(y: mixed): %checks {2  return typeof y === "string";3}4
    +5function isNumber(y: mixed): %checks {6  return typeof y === "number";7}8
    +9function isNumberOrString(y: mixed): %checks {10  return isString(y) || isNumber(y);11}12
    +13function foo(x: string | number | Array<mixed>): string | number {14  if (isNumberOrString(x)) {15    return x + x;16  } else {17    return x.length; // no error, because Flow infers that x can only be an array18  }19}20
    +21foo('a');22foo(5);23foo([]);

    Another limitation is on the range of predicates that can be encoded. The refinements +that are supported in a predicate function must refer directly to the value that +is passed in as an argument to the respective call.

    For example, consider the inlined refinement

    1declare var obj: { n?: number };2
    +3if (obj.n != null) {4  const n: number = obj.n;5}

    Here, Flow will let you refine obj.n from ?number to number. Note that the +refinement here is on the property n of obj, rather than obj itself.

    If you tried to create a predicate function to encode the same condition, +then the following refinement would fail

    1function bar(a: {n?: number, ...}): %checks {2  return a.n != null;3}4
    +5declare var obj: {n?: number};6
    +7if (bar(obj)) {8  const n: number = obj.n; // Error
    9}
    8:21-8:25: Cannot assign `obj.n` to `n` because undefined [1] is incompatible with number [2]. [incompatible-type]

    This is because the only refinements supported through bar would be on obj itself.

    Callable Objects

    Callable objects can be typed, for example:

    1type CallableObj = {2  (number, number): number,3  bar: string,4  ...5};6
    +7function add(x: number, y: number) {8  return x + y;9}10
    +11add.bar = "hello world";12
    +13(add: CallableObj);

    In general, functions can have properties assigned to them if they are function declarations, or +simple variable declarations of the form const f = () => .... The properties must be assigned in +the format f.prop = <expr>;, in the same statement list as the function definition (i.e. not conditionally).

    Note that the object representing the static properties assigned to the function is inexact.

    Overloaded functions

    You can use intersection types to define overloaded function types:

    1declare const fn:2  & ((x: 'string') => string)3  & ((x: 'number') => number)4
    +5const s: string = fn('string');6const n: number = fn('number');

    Any function

    If you want to specify you want to allow any function, and do not care what it is, you can use this pattern:

    1function useCallback<T: (...$ReadOnlyArray<empty>) => mixed>(2  callback: T,3  inputs: ?$ReadOnlyArray<mixed>,4): T {5  return callback;6}7useCallback((x: string) => true); // OK8useCallback((x: number) => [1]); // OK

    You could use type arguments to capture the arguments and return type, to do more complicated transformations:

    1function func<TArgs: $ReadOnlyArray<mixed>, TReturn>(2  callback: (...TArgs) => TReturn,3): (boolean, ...TArgs) => Array<TReturn> {4  return (b, ...args): Array<TReturn> => {5    if (b) {6      return [callback(...args)];7    } else {8      return [];9    }10  };11}12
    +13const f: (boolean, string, number) => Array<string> =14  func((x: string, y: number) => x.slice(y)); // OK

    The type Function is just an alias for any, and is unsafe. +You can ban its use in your code with the unclear-type lint.

    + + + + \ No newline at end of file diff --git a/en/docs/types/generators/index.html b/en/docs/types/generators/index.html new file mode 100644 index 00000000000..4e66c1d2c72 --- /dev/null +++ b/en/docs/types/generators/index.html @@ -0,0 +1,26 @@ + + + + + +generators | Flow + + + + + + + + + + + + + + +
    +
    + + + + \ No newline at end of file diff --git a/en/docs/types/generics/index.html b/en/docs/types/generics/index.html new file mode 100644 index 00000000000..07bf6497d23 --- /dev/null +++ b/en/docs/types/generics/index.html @@ -0,0 +1,90 @@ + + + + + +Generics | Flow + + + + + + + + + + + + + + +
    +

    Generics

    Generics (sometimes referred to as polymorphic types) are a way of abstracting +a type away.

    Imagine writing the following identity function which returns whatever value +was passed.

    function identity(value) {
    return value;
    }

    We would have a lot of trouble trying to write specific types for this function +since it could be anything.

    1function identity(value: string): string {2  return value;3}

    Instead we can create a generic (or polymorphic type) in our function and use +it in place of other types.

    1function identity<T>(value: T): T {2  return value;3}

    Generics can be used within functions, function types, classes, type aliases, +and interfaces.

    Warning: Flow does not infer generic types. If you want something to have a +generic type, annotate it. Otherwise, Flow may infer a type that is less +polymorphic than you expect.

    Syntax of generics

    There are a number of different places where generic types appear in syntax.

    Functions with generics

    Functions can create generics by adding the type parameter list <T> before +the function parameter list.

    You can use generics in the same places you'd add any other type in a function +(parameter or return types).

    1function method<T>(param: T): T {2  return param;3}4
    +5const f = function<T>(param: T): T {6  return param;7}

    Function types with generics

    Function types can create generics in the same way as normal functions, by +adding the type parameter list <T> before the function type parameter list.

    You can use generics in the same places you'd add any other type in a function +type (parameter or return types).

    <T>(param: T) => T

    Which then gets used as its own type.

    1function method(func: <T>(param: T) => T) {2  // ...3}

    Classes with generics

    Classes can create generics by placing the type parameter list before the body +of the class.

    1class Item<T> {2  // ...3}

    You can use generics in the same places you'd add any other type in a class +(property types and method parameter/return types).

    1class Item<T> {2  prop: T;3
    +4  constructor(param: T) {5    this.prop = param;6  }7
    +8  method(): T {9    return this.prop;10  }11}

    Type aliases with generics

    1type Item<T> = {2  foo: T,3  bar: T,4};

    Interfaces with generics

    1interface Item<T> {2  foo: T,3  bar: T,4}

    Supplying Type Arguments to Callables

    You can give callable entities type arguments for their generics directly in the call:

    1function doSomething<T>(param: T): T {2  // ...3  return param;4}5
    +6doSomething<number>(3);

    You can also give generic classes type arguments directly in the new expression:

    1class GenericClass<T> {}2const c = new GenericClass<number>();

    If you only want to specify some of the type arguments, you can use _ to let flow infer a type for you:

    1class GenericClass<T, U=string, V=number>{}2const c = new GenericClass<boolean, _, string>();

    Warning: For performance purposes, we always recommend you annotate with +concrete arguments when you can. _ is not unsafe, but it is slower than explicitly +specifying the type arguments.

    Behavior of generics

    Generics act like variables

    Generic types work a lot like variables or function parameters except that they +are used for types. You can use them whenever they are in scope.

    1function constant<T>(value: T): () => T {2  return function(): T {3    return value;4  };5}

    Create as many generics as you need

    You can have as many of these generics as you need in the type parameter list, +naming them whatever you want:

    1function identity<One, Two, Three>(one: One, two: Two, three: Three) {2  // ...3}

    Generics track values around

    When using a generic type for a value, Flow will track the value and make sure +that you aren't replacing it with something else.

    1function identity<T>(value: T): T {2  return "foo"; // Error!
    3}4 +5function identity<T>(value: T): T {
    6 value = "foo"; // Error!
    7 return value; // Error!
    8}
    2:10-2:14: Cannot return `"foo"` because string [1] is incompatible with `T` [2]. [incompatible-return]
    5:10-5:17: Cannot declare `identity` [1] because the name is already bound. [name-already-bound]
    6:11-6:15: Cannot assign `"foo"` to `value` because string [1] is incompatible with `T` [2]. [incompatible-type]
    7:10-7:14: Cannot return `value` because string [1] is incompatible with `T` [2]. [incompatible-return]

    Flow tracks the specific type of the value you pass through a generic, letting +you use it later.

    1function identity<T>(value: T): T {2  return value;3}4
    +5let one: 1 = identity(1);6let two: 2 = identity(2);7let three: 3 = identity(42); // Error
    7:16-7:27: Cannot assign `identity(...)` to `three` because number [1] is incompatible with number literal `3` [2]. [incompatible-type]

    Adding types to generics

    Similar to mixed, generics have an "unknown" type. You're not allowed to use +a generic as if it were a specific type.

    1function logFoo<T>(obj: T): T {2  console.log(obj.foo); // Error!
    3 return obj;4}
    2:19-2:21: Cannot get `obj.foo` because property `foo` is missing in mixed [1]. [incompatible-use]

    You could refine the type, but the generic will still allow any type to be +passed in.

    1function logFoo<T>(obj: T): T {2  if (obj && obj.foo) {3    console.log(obj.foo); // Works.4  }5  return obj;6}7
    +8logFoo({ foo: 'foo', bar: 'bar' });  // Works.9logFoo({ bar: 'bar' }); // Works. :(

    Instead, you could add a type to your generic like you would with a function +parameter.

    1function logFoo<T: {foo: string, ...}>(obj: T): T {2  console.log(obj.foo); // Works!3  return obj;4}5
    +6logFoo({ foo: 'foo', bar: 'bar' });  // Works!7logFoo({ bar: 'bar' }); // Error!
    7:8-7:21: Cannot call `logFoo` because property `foo` is missing in object literal [1] but exists in object type [2] in type argument `T`. [prop-missing]

    This way you can keep the behavior of generics while only allowing certain +types to be used.

    1function identity<T: number>(value: T): T {2  return value;3}4
    +5let one: 1 = identity(1);6let two: 2 = identity(2);7// $ExpectError8let three: "three" = identity("three");
    8:31-8:37: Cannot call `identity` because string [1] is incompatible with number [2] in type argument `T`. [incompatible-call]

    Generic types act as bounds

    1function identity<T>(val: T): T {2  return val;3}4
    +5let foo: 'foo' = 'foo';           // Works!6let bar: 'bar' = identity('bar'); // Works!

    In Flow, most of the time when you pass one type into another you lose the +original type. So that when you pass a specific type into a less specific one +Flow "forgets" it was once something more specific.

    1function identity(val: string): string {2  return val;3}4
    +5let foo: 'foo' = 'foo';           // Works!6// $ExpectError7let bar: 'bar' = identity('bar'); // Error!
    7:18-7:32: Cannot assign `identity(...)` to `bar` because string [1] is incompatible with string literal `bar` [2]. [incompatible-type]

    Generics allow you to hold onto the more specific type while adding a +constraint. In this way types on generics act as "bounds".

    1function identity<T: string>(val: T): T {2  return val;3}4
    +5let foo: 'foo' = 'foo';           // Works!6let bar: 'bar' = identity('bar'); // Works!

    Note that when you have a value with a bound generic type, you can't use it as +if it were a more specific type.

    1function identity<T: string>(val: T): T {2  let str: string = val; // Works!3  let bar: 'bar'  = val; // Error!
    4 return val;5}6 +7identity('bar');
    3:21-3:23: Cannot assign `val` to `bar` because string [1] is incompatible with string literal `bar` [2]. [incompatible-type]

    Parameterized generics

    Generics sometimes allow you to pass types in like arguments to a function. +These are known as parameterized generics (or parametric polymorphism).

    For example, a type alias with a generic is parameterized. When you go to use +it you will have to provide a type argument.

    1type Item<T> = {2  prop: T,3}4
    +5let item: Item<string> = {6  prop: "value"7};

    You can think of this like passing arguments to a function, only the return +value is a type that you can use.

    Classes (when being used as a type), type aliases, and interfaces all require +that you pass type arguments. Functions and function types do not have +parameterized generics.

    Classes

    1class Item<T> {2  prop: T;3  constructor(param: T) {4    this.prop = param;5  }6}7
    +8let item1: Item<number> = new Item(42); // Works!9let item2: Item = new Item(42); // Error!
    9:12-9:15: Cannot use `Item` [1] without 1 type argument. [missing-type-arg]

    Type Aliases

    1type Item<T> = {2  prop: T,3};4
    +5let item1: Item<number> = { prop: 42 }; // Works!6let item2: Item = { prop: 42 }; // Error!
    6:12-6:15: Cannot use `Item` [1] without 1 type argument. [missing-type-arg]

    Interfaces

    1interface HasProp<T> {2  prop: T,3}4
    +5class Item {6  prop: string;7}8
    +9(Item.prototype: HasProp<string>); // Works!10(Item.prototype: HasProp); // Error!
    10:18-10:24: Cannot use `HasProp` [1] without 1 type argument. [missing-type-arg]

    Adding defaults to parameterized generics

    You can also provide defaults for parameterized generics just like parameters +of a function.

    1type Item<T: number = 1> = {2  prop: T,3};4
    +5let foo: Item<> = { prop: 1 };6let bar: Item<2> = { prop: 2 };

    You must always include the brackets <> when using the type (just like +parentheses for a function call).

    Variance Sigils

    You can also specify the subtyping behavior of a generic via variance sigils. +By default, generics behave invariantly, but you may add a + to their +declaration to make them behave covariantly, or a - to their declaration to +make them behave contravariantly. See our docs on variance +for a more information on variance in Flow.

    Variance sigils allow you to be more specific about how you intend to +use your generics, giving Flow the power to do more precise type checking. +For example, you may want this relationship to hold:

    1type GenericBox<+T> = T;2
    +3var x: GenericBox<number> = 3;4(x: GenericBox<number| string>);

    The example above could not be accomplished without the + variance sigil:

    1type GenericBoxError<T> = T;2
    +3var x: GenericBoxError<number> = 3;4(x: GenericBoxError<number| string>); // number | string is not compatible with number.
    4:2-4:2: Cannot cast `x` to `GenericBoxError` because string [1] is incompatible with number [2] in type argument `T` [3]. [incompatible-cast]

    Note that if you annotate your generic with variance sigils then Flow will +check to make sure those types only appear in positions that make sense for +that variance sigil. For example, you cannot declare a generic type parameter +to behave covariantly and use it in a contravariant position:

    1type NotActuallyCovariant<+T> = (T) => void;
    1:34-1:34: Cannot use `T` [1] in an input position because `T` [1] is expected to occur only in output positions. [incompatible-variance]
    + + + + \ No newline at end of file diff --git a/en/docs/types/index.html b/en/docs/types/index.html new file mode 100644 index 00000000000..da7b80d569a --- /dev/null +++ b/en/docs/types/index.html @@ -0,0 +1,31 @@ + + + + + +Type Annotations | Flow + + + + + + + + + + + + + + +
    +

    Type Annotations

    Adding type annotations is an important part of your interaction with Flow.

    Flow has a powerful ability to infer the types of your programs. The majority +For example, you don't have to produce annotations for common patterns like Array.map:

    1["foo", "bar"].map(s => ( // s is inferred to have type string2  s.length3));

    Still, there are places where you'll want to add types.

    Imagine the following concat function for concatenating two strings together.

    1function concat(a, b) {
    2 return a + b;3}
    1:17-1:17: Missing an annotation on `a`. [missing-local-annot]
    1:20-1:20: Missing an annotation on `b`. [missing-local-annot]

    You need to add annotations on parameters of concat, so that Flow can type +check its body. Now you'll get a warning from Flow if you are calling this +function with unexpected types.

    1function concat(a: string, b: string) {2  return a + b;3}4
    +5concat("A", "B"); // Works!6concat(1, 2); // Error!
    6:8-6:8: Cannot call `concat` with `1` bound to `a` because number [1] is incompatible with string [2]. [incompatible-call]
    6:11-6:11: Cannot call `concat` with `2` bound to `b` because number [1] is incompatible with string [2]. [incompatible-call]

    This guide will teach you the syntax and semantics of all the different types +you can have in Flow.

    + + + + \ No newline at end of file diff --git a/en/docs/types/indexed-access/index.html b/en/docs/types/indexed-access/index.html new file mode 100644 index 00000000000..45b84bfe2a3 --- /dev/null +++ b/en/docs/types/indexed-access/index.html @@ -0,0 +1,42 @@ + + + + + +Indexed Access Types | Flow + + + + + + + + + + + + + + +
    +

    Indexed Access Types

    Flow’s Indexed Access Types allow you to get the type of a property from an object, array, or tuple type.

    Usage

    Access an object type's property:

    1type Cat = {2  name: string,3  age: number,4  hungry: boolean,5};6
    +7type Hungry = Cat['hungry']; // type Hungry = boolean8const isHungry: Hungry = true; // OK - `Hungry` is an alias for `boolean`9
    +10// The index can be a type, not just a literal:11type AgeProp = 'age';12type Age = Cat[AgeProp]; // type Age = number13const catAge: Age = 6; // OK - `Age` is an alias for `number`

    Access an array type's element, by getting the type at the array's indices (which are numbers):

    1type CatNames = Array<string>;2
    +3type CatName = CatNames[number]; // type CatName = string4const myCatsName: CatName = 'whiskers'; // OK - `CatName` is an alias for `string`

    Access a tuple type's elements:

    1type Pair = [string, number];2
    +3const name: Pair[0] = 'whiskers'; // OK - `Pair[0]` is an alias for `string`4const age: Pair[1] = 6; // OK - `Pair[1]` is an alias for `number`5const wrong: Pair[2] = true; // Error - `Pair` only has two elements
    5:19-5:19: Cannot access number literal `2` on `Pair` because `Pair` [1] only has 2 elements, so index 2 is out of bounds. [invalid-tuple-index]

    The index can be a union, including the result of calling $Keys<...>:

    1type Cat = {2  name: string,3  age: number,4  hungry: boolean,5};6
    +7type Values = Cat[$Keys<Cat>]; // type Values = string | number | boolean

    The index can also be a generic:

    1function getProp<O: {+[string]: mixed}, K: $Keys<O>>(o: O, k: K): O[K] {2  return o[k];3}4
    +5const x: number = getProp({a: 42}, 'a'); // OK6const y: string = getProp({a: 42}, 'a'); // Error - `number` is not a `string`
    7getProp({a: 42}, 'b'); // Error - `b` does not exist in object type
    6:19-6:39: Cannot assign `getProp(...)` to `y` because number [1] is incompatible with string [2]. [incompatible-type]
    7:18-7:20: Cannot call `getProp` because property `b` is missing in object literal [1]. [prop-missing]
    7:18-7:20: Cannot call `getProp` because property `b` is missing in object literal [1] in type argument `K`. [prop-missing]

    You can nest these accesses:

    1type Cat = {2  name: string,3  age: number,4  hungry: boolean,5  personality: {6    friendly: boolean,7    hungerLevel: number,8  }9};10
    +11type Friendly = Cat['personality']['friendly']; // type Friendly = boolean12const isFriendly: Friendly = true; // Pet the cat

    Optional Indexed Access Types

    Optional Indexed Access Types work like optional chaining. They allow you to access properties from nullable object types. +If before you did:

    type T = $ElementType<$NonMaybeType<Obj>, 'prop'> | void;

    You can now do:

    type T = Obj?.['prop'];

    Like optional chaining, the resulting types of Optional Indexed Access Types include void. +If you have a long chain of nested optional accesses, you can wrap the entire thing with a $NonMaybeType<...> if you don’t want void in your resulting type.

    Example:

    1type TasksContent = ?{2  tasks?: Array<{3    items?: {4      metadata?: {5        title: string,6        completed: boolean,7      },8    },9  }>,10};11
    +12type TaskData = TasksContent?.['tasks']?.[number]?.['items']?.['metadata'];

    There is one small difference between optional chaining and Optional Indexed Access Types. +If the object type you access is not nullable, the resulting type in optional chaining will not include void. +With Optional Indexed Access Types, for implementation reasons, the resulting type will always include void. +However, if your object type is not nullable then you don’t need to use an Optional Indexed Access Type, but should just use a regular Indexed Access Type.

    Adoption

    To use Indexed Access Types, you need to upgrade your infrastructure so that it supports the syntax:

    • flow and flow-parser: 0.155
    • prettier: 2.3.2
    • babel: 7.14

    Indexed Access Types are a replacement for the $PropertyType and $ElementType utility types. +If you're familiar with those utility types already, here is a quick conversion guide:

    • $PropertyType<Obj, 'prop'> Obj['prop']
    • $ElementType<Obj, T> Obj[T]
    • $ElementType<$PropertyType<Obj, 'prop'>, T> Obj['prop'][T]

    We have created an ESLint rule that warns on $ElementType and $PropertyType usage and recommends Indexed Access Types instead. +It includes an auto-fixer that can handle most cases. You can simply enable this rule on your codebase and autofix all existing issues.

    Install eslint-plugin-fb-flow, and add fb-flow to your ESLint plugin list. +Then enable the rule in your ESLint config:

    'fb-flow/use-indexed-access-type': 1,
    + + + + \ No newline at end of file diff --git a/en/docs/types/interfaces/index.html b/en/docs/types/interfaces/index.html new file mode 100644 index 00000000000..0444da10731 --- /dev/null +++ b/en/docs/types/interfaces/index.html @@ -0,0 +1,65 @@ + + + + + +Interfaces | Flow + + + + + + + + + + + + + + +
    +

    Interfaces

    Classes in Flow are nominally typed. This means that when you have two separate +classes you cannot use one in place of the other even when they have the same +exact properties and methods:

    1class Foo {2  serialize(): string { return '[Foo]'; }3}4
    +5class Bar {6  serialize(): string { return '[Bar]'; }7}8
    +9const foo: Foo = new Bar(); // Error!
    9:18-9:26: Cannot assign `new Bar()` to `foo` because `Bar` [1] is incompatible with `Foo` [2]. [incompatible-type]

    Instead, you can use interface in order to declare the structure of the class +that you are expecting.

    1interface Serializable {2  serialize(): string;3}4
    +5class Foo {6  serialize(): string { return '[Foo]'; }7}8
    +9class Bar {10  serialize(): string { return '[Bar]'; }11}12
    +13const foo: Serializable = new Foo(); // Works!14const bar: Serializable = new Bar(); // Works!

    You can also declare an anonymous interface:

    1class Foo {2  a: number;3}4
    +5function getNumber(o: interface {a: number}): number {6  return o.a;7}8
    +9getNumber(new Foo()); // Works!

    You can also use implements to tell Flow that you want the class to match an +interface. This prevents you from making incompatible changes when editing the +class.

    1interface Serializable {2  serialize(): string;3}4
    +5class Foo implements Serializable {6  serialize(): string { return '[Foo]'; } // Works!7}8
    +9class Bar implements Serializable {10  serialize(): number { return 42; } // Error!
    11}
    10:16-10:21: Cannot implement `Serializable` [1] with `Bar` because number [2] is incompatible with string [3] in the return value of property `serialize`. [incompatible-type]

    You can also use implements with multiple interfaces.

    class Foo implements Bar, Baz {
    // ...
    }

    Interfaces can describe both instances and objects, unlike object types which can only describe objects:

    1class Foo {2  a: number;3}4const foo = new Foo();5const o: {a: number} = {a: 1};6
    +7interface MyInterface {8  a: number;9}10
    +11function acceptsMyInterface(x: MyInterface) { /* ... */ }12acceptsMyInterface(o); // Works!13acceptsMyInterface(foo); // Works!14
    +15function acceptsObj(x: {a: number, ...}) { /* ... */ }16acceptsObj(o); // Works!17acceptsObj(foo); // Error!
    17:12-17:14: Cannot call `acceptsObj` with `foo` bound to `x` because `Foo` [1] is not a subtype of object type [2]. Class instances are not subtypes of object types; consider rewriting object type [2] as an interface. [class-object-subtyping]

    Unlike objects, interfaces cannot be exact, as they can always have other, unknown properties.

    Interface Syntax

    Interfaces are created using the keyword interface followed by its name and +a block which contains the body of the type definition.

    1interface MyInterface {2  // ...3}

    The syntax of the block matches the syntax of object types.

    Interface Methods

    You can add methods to interfaces following the same syntax as class methods. Any this parameters you +provide are also subject to the same restrictions as class methods.

    1interface MyInterface {2  method(value: string): number;3}

    Also like class methods, interface methods must also remain bound to the interface on which they were defined.

    You can define overloaded methods by declaring the same method name multiple times with different type signatures:

    1interface MyInterface {2  method(value: string): string;3  method(value: boolean): boolean;4}5
    +6function func(a: MyInterface) {7  const x: string = a.method('hi'); // Works!8  const y: boolean = a.method(true); // Works!9
    +10  const z: boolean = a.method('hi'); // Error!
    11}
    10:22-10:35: Cannot assign `a.method(...)` to `z` because string [1] is incompatible with boolean [2]. [incompatible-type]

    Interface Properties

    You can add properties to interfaces following the same syntax as class +properties:

    1interface MyInterface {2  property: string;3}

    Interface properties can be optional as well:

    1interface MyInterface {2  property?: string;3}

    Interfaces as maps

    You can create indexer properties the same +way as with objects:

    1interface MyInterface {2  [key: string]: number;3}

    Interface Generics

    Interfaces can also have their own generics:

    1interface MyInterface<A, B, C> {2  property: A;3  method(val: B): C;4}

    Interface generics are parameterized. +When you use an interface you need to pass parameters for each of its generics:

    1interface MyInterface<A, B, C> {2  foo: A;3  bar: B;4  baz: C;5}6
    +7const val: MyInterface<number, boolean, string> = {8  foo: 1,9  bar: true,10  baz: 'three',11};

    Interface property variance (read-only and write-only)

    Interface properties are invariant by default. But you +can add modifiers to make them covariant (read-only) or contravariant +(write-only).

    1interface MyInterface {2  +covariant: number;     // read-only3  -contravariant: number; // write-only4}

    Covariant (read-only) properties on interfaces

    You can make a property covariant by adding a plus symbol + in front of the +property name:

    1interface MyInterface {2  +readOnly: number | string;3}

    This allows you to pass a more specific type in place of that property:

    1interface Invariant {2  property: number | string;3}4interface Covariant {5  +readOnly: number | string;6}7
    +8const x: {property: number} = {property: 42};9const y: {readOnly: number} = {readOnly: 42};10
    +11const value1: Invariant = x; // Error!
    12const value2: Covariant = y; // Works
    11:27-11:27: Cannot assign `x` to `value1` because string [1] is incompatible with number [2] in property `property`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-type]

    Because of how covariance works, covariant properties also become read-only +when used. Which can be useful over normal properties.

    1interface Invariant {2  property: number | string;3}4interface Covariant {5  +readOnly: number | string;6}7
    +8function func1(value: Invariant) {9  value.property;        // Works!10  value.property = 3.14; // Works!11}12
    +13function func2(value: Covariant) {14  value.readOnly;        // Works!15  value.readOnly = 3.14; // Error!
    16}
    15:9-15:16: Cannot assign `3.14` to `value.readOnly` because property `readOnly` is not writable. [cannot-write]

    Contravariant (write-only) properties on interfaces

    You can make a property contravariant by adding a minus symbol - in front of +the property name.

    1interface InterfaceName {2  -writeOnly: number;3}

    This allows you to pass a less specific type in place of that property.

    1interface Invariant {2  property: number;3}4interface Contravariant {5  -writeOnly: number;6}7
    +8const numberOrString = Math.random() > 0.5 ? 42 : 'forty-two';9
    +10const value1: Invariant     = {property: numberOrString};  // Error!
    11const value2: Contravariant = {writeOnly: numberOrString}; // Works!
    10:42-10:55: Cannot assign object literal to `value1` because string [1] is incompatible with number [2] in property `property`. [incompatible-type]

    Because of how contravariance works, contravariant properties also become +write-only when used. Which can be useful over normal properties.

    1interface Invariant {2  property: number;3}4interface Contravariant {5  -writeOnly: number;6}7
    +8function func1(value: Invariant) {9  value.property;        // Works!10  value.property = 3.14; // Works!11}12
    +13function func2(value: Contravariant) {14  value.writeOnly;        // Error!
    15 value.writeOnly = 3.14; // Works!16}
    14:9-14:17: Cannot get `value.writeOnly` because property `writeOnly` is not readable. [cannot-read]
    + + + + \ No newline at end of file diff --git a/en/docs/types/intersections/index.html b/en/docs/types/intersections/index.html new file mode 100644 index 00000000000..ecf848856b4 --- /dev/null +++ b/en/docs/types/intersections/index.html @@ -0,0 +1,79 @@ + + + + + +Intersections | Flow + + + + + + + + + + + + + + +
    +

    Intersections

    Sometimes it is useful to create a type which is all of a set of other +types. For example, you might want to write a function which accepts a value that +implements two different interfaces:

    1interface Serializable {2  serialize(): string;3}4
    +5interface HasLength {6  length: number;7}8
    +9function func(value: Serializable & HasLength) {10  // ...11}12
    +13func({14  length: 3,15  serialize() {16    return '3';17  },18}); // Works19
    +20func({length: 3}); // Error! Doesn't implement both interfaces
    20:6-20:16: Cannot call `func` with object literal bound to `value` because property `serialize` is missing in object literal [1] but exists in `Serializable` [2]. [prop-missing]

    Intersection type syntax

    Intersection types are any number of types which are joined by an ampersand &.

    Type1 & Type2 & ... & TypeN

    You may also add a leading ampersand which is useful when breaking intersection +types onto multiple lines.

    type Foo =
    & Type1
    & Type2
    & ...
    & TypeN

    Each of the members of a intersection type can be any type, even another +intersection type.

    type Foo = Type1 & Type2;
    type Bar = Type3 & Type4;

    type Baz = Foo & Bar;

    Intersection types require all in, but one out

    Intersection types are the opposite of union types. When calling a function +that accepts an intersection type, we must pass in all of those types. But +inside of our function we only have to treat it as any one of those +types.

    1type A = {a: number, ...};2type B = {b: boolean, ...};3type C = {c: string, ...};4
    +5function func(value: A & B & C) {6  const a: A = value;7  const b: B = value;8  const c: C = value;9}

    Even as we treat our value as just one of the types, we do not get an error +because it satisfies all of them.

    Intersection of function types

    A common use of intersection types is to express functions that return +different results based on the input we pass in. Suppose for example +that we want to write the type of a function that:

    • returns a string, when we pass in the value "string",
    • returns a number, when we pass in the value "number", and
    • returns any possible type (mixed), when we pass in any other string.

    The type of this function will be

    1type Fn =2  & ((x: "string") => string)3  & ((x: "number") => number)4  & ((x: string) => mixed);

    Each line in the above definition is called an overload, and we say that functions +of type Fn are overloaded.

    Note the use of parentheses around the arrow types. These are necessary to override +the precedence of the "arrow" constructor over the intersection.

    Calling an overloaded function

    Using the above definition we can declare a function fn that has the following behavior:

    1declare const fn:2  & ((x: "string") => string)3  & ((x: "number") => number)4  & ((x: string) => mixed);5
    +6const s: string = fn("string"); // Works7const n: number = fn("number"); // Works8const b: boolean = fn("boolean"); // Error!
    8:20-8:32: Cannot assign `fn(...)` to `b` because mixed [1] is incompatible with boolean [2]. [incompatible-type]

    Flow achieves this behavior by matching the type of the argument to the first +overload with a compatible parameter type. Notice for example that the argument +"string" matches both the first and the last overload. Flow will +just pick the first one. If no overload matches, Flow will raise an error at the +call site.

    Declaring overloaded functions

    An equivalent way to declare the same function fn would be by using consecutive +"declare function" statements

    1declare function fn(x: "string"): string;2declare function fn(x: "number"): number;3declare function fn(x: string): mixed;

    A limitation in Flow is that it can't check the body of a function against +an intersection type. In other words, if we provided the following implementation +for fn right after the above declarations

    1function fn(x: mixed) {2  if (x === "string") { return ""; }3  else if (x === "number") { return 0; }4  else { return null; }5}

    Flow silently accepts it (and uses Fn as the inferred type), but does not check +the implementation against this signature. This makes this kind of declaration +a better suited candidate for library definitions, where implementations are omitted.

    Intersections of object types

    When you create an intersection of inexact object types, +you are saying that your object satisfies each member of the intersection.

    For example, when you create an intersection of two inexact objects with different sets +of properties, it will result in an object with all of the properties.

    1type One = {foo: number, ...};2type Two = {bar: boolean, ...};3
    +4type Both = One & Two;5
    +6const value: Both = {7  foo: 1,8  bar: true9};

    When you have properties that overlap by having the same name, Flow follows the same +strategy as with overloaded functions: it will return the type of the first property +that matches this name.

    For example, if you merge two inexact objects with a property named prop, first with a +type of number and second with a type of boolean, accessing prop will return +number.

    1type One = {prop: number, ...};2type Two = {prop: boolean, ...};3
    +4declare const both: One & Two;5
    +6const prop1: number = both.prop; // Works7const prop2: boolean = both.prop; // Error!
    7:24-7:32: Cannot assign `both.prop` to `prop2` because number [1] is incompatible with boolean [2]. [incompatible-type]

    To combine exact object types, you should use object type spread instead:

    1type One = {foo: number};2type Two = {bar: boolean};3
    +4type Both = {5  ...One,6  ...Two,7};8
    +9const value: Both = {10  foo: 1,11  bar: true12};

    Note: When it comes to objects, the order-specific way in which intersection +types are implemented in Flow, may often seem counter-intuitive from a set theoretic +point of view. In sets, the operands of intersection can change order arbitrarily +(commutative property). For this reason, it is a better practice to define this +kind of operation over object types using object type spread where the ordering +semantics are better specified.

    Impossible intersection types

    Using intersection types, it is possible to create types which are impossible +to create at runtime. Intersection types will allow you to combine any set of +types, even ones that conflict with one another.

    For example, you can create an intersection of a number and a string.

    1type NumberAndString = number & string;2
    +3function func(value: NumberAndString) { /* ... */ }4
    +5func(3.14); // Error!
    6func('hi'); // Error!
    5:6-5:9: Cannot call `func` with `3.14` bound to `value` because number [1] is incompatible with string [2]. [incompatible-call]
    6:6-6:9: Cannot call `func` with `'hi'` bound to `value` because string [1] is incompatible with number [2]. [incompatible-call]

    But you can't possibly create a value which is both a number and a string, +but you can create a type for it. There's no practical use for creating types +like this, but it's a side effect of how intersection types work.

    An accidental way to create an impossible type is to create an intersection of +exact object types. For example:

    1function func(obj: {a: number} & {b: string}) { /* ... */ }2
    +3func({a: 1}); // Error!
    4func({b: 'hi'}); // Error!
    5func({a: 1, b: 'hi'}); // Error!
    3:6-3:11: Cannot call `func` with object literal bound to `obj` because property `a` is missing in object type [1] but exists in object literal [2]. [prop-missing]
    3:6-3:11: Cannot call `func` with object literal bound to `obj` because property `b` is missing in object literal [1] but exists in object type [2]. [prop-missing]
    4:6-4:14: Cannot call `func` with object literal bound to `obj` because property `a` is missing in object literal [1] but exists in object type [2]. [prop-missing]
    4:6-4:14: Cannot call `func` with object literal bound to `obj` because property `b` is missing in object type [1] but exists in object literal [2]. [prop-missing]
    5:6-5:20: Cannot call `func` with object literal bound to `obj` because property `a` is missing in object type [1] but exists in object literal [2]. [prop-missing]
    5:6-5:20: Cannot call `func` with object literal bound to `obj` because property `b` is missing in object type [1] but exists in object literal [2]. [prop-missing]

    It's not possible for an object to have exactly the property a and no other +properties, and simultaneously exactly the property b and no other properties.

    + + + + \ No newline at end of file diff --git a/en/docs/types/literals/index.html b/en/docs/types/literals/index.html new file mode 100644 index 00000000000..10b015eddf1 --- /dev/null +++ b/en/docs/types/literals/index.html @@ -0,0 +1,32 @@ + + + + + +Literal Types | Flow + + + + + + + + + + + + + + +
    +

    Literal Types

    Flow has primitive types for +literal values, but can also use literal values as types.

    For example, instead of accepting number type, we could accept only the +literal value 2.

    1function acceptsTwo(value: 2) { /* ... */ }2
    +3acceptsTwo(2);   // Works!4
    +5acceptsTwo(3);   // Error!
    6acceptsTwo("2"); // Error!
    5:12-5:12: Cannot call `acceptsTwo` with `3` bound to `value` because number [1] is incompatible with number literal `2` [2]. [incompatible-call]
    6:12-6:14: Cannot call `acceptsTwo` with `"2"` bound to `value` because string [1] is incompatible with number literal `2` [2]. [incompatible-call]

    You can use primitive values for these types:

    • Booleans: like true or false
    • Numbers: like 42 or 3.14
    • Strings: like "foo" or "bar"
    • BigInts: like 42n

    Using these with union types is powerful:

    1function getColor(name: "success" | "warning" | "danger") {2  switch (name) {3    case "success" : return "green";4    case "warning" : return "yellow";5    case "danger"  : return "red";6  }7}8
    +9getColor("success"); // Works!10getColor("danger");  // Works!11
    +12getColor("error");   // Error!
    12:10-12:16: Cannot call `getColor` with `"error"` bound to `name` because string [1] is incompatible with literal union [2]. [incompatible-call]

    Consider using Flow Enums instead of unions of literal types, if they fit your use-case.

    + + + + \ No newline at end of file diff --git a/en/docs/types/mapped-types/index.html b/en/docs/types/mapped-types/index.html new file mode 100644 index 00000000000..ded66cdd1d2 --- /dev/null +++ b/en/docs/types/mapped-types/index.html @@ -0,0 +1,38 @@ + + + + + +Mapped Types | Flow + + + + + + + + + + + + + + +
    +

    Mapped Types

    Flow's mapped types allow you to transform object types. They are useful for modeling complex runtime operations over objects.

    Basic Usage

    Mapped Types have syntax similar to indexed object types but use the in keyword:

    1type O = {foo: number, bar: string};2
    +3type Methodify<T> = () => T;4
    +5type MappedType = {[key in keyof O]: Methodify<O[key]>};

    In this example, MappedType has all of the keys from O with all of the value types transformed by +Methoditfy<O[key]>. The key variable is substituted for each key in O when creating the property, so +this type evaluates to:

    {
    foo: Methodify<O['foo']>,
    bar: Methodify<O['bar']>,
    }
    = {
    foo: () => number,
    bar: () => string,
    }

    Mapped Type Sources

    We call the type that comes after the in keyword the source of the mapped type. The source of +a mapped type must be a subtype of string | number | symbol:

    1type MappedType = {[key in boolean]: number}; // ERROR!
    1:28-1:34: Cannot instantiate mapped type [1] because boolean [2] is incompatible with `string | number | symbol`, so it cannot be used to generate keys for mapped type [1]. [incompatible-type]

    Typically, you'll want to create a mapped type based on another object type. In this case, you +should write your mapped type using an inline keyof:

    1type GetterOf<T> = () => T;2type Obj = {foo: number, bar: string};3type MappedObj = {[key in keyof Obj]: GetterOf<Obj[key]>};

    NOTE: keyof only works inline in mapped types for now. Full support for keyof is not yet available.

    But you do not need to use an object to generate a mapped type. You can also use a union of string +literal types to represent the keys of an object type:

    1type Union = 'foo' | 'bar' | 'baz';2type MappedType = {[key in Union]: number};3// = {foo: number, bar: number, baz: number};

    Importantly, when using string literals the union is collapsed into a single object type:

    1type MappedTypeFromKeys<Keys: string> = {[key in Keys]: number};2type MappedFooAndBar = MappedTypeFromKeys<'foo' | 'bar'>;3// = {foo: number, bar: number}, not {foo: number} | {bar: number}

    If you use a type like number or string in the source of your mapped type then Flow will create +an indexer:

    1type MappedTypeFromKeys<Keys: string> = {[key in Keys]: number};2type MappedFooAndBarWithIndexer = MappedTypeFromKeys<'foo' | 'bar' | string>;3// = {foo: number, bar: number, [string]: number}

    Distributive Mapped Types

    When the mapped type uses an inline keyof or a type parameter bound by a $Keys +Flow will distribute the mapped type over unions of object types.

    For example:

    1// This mapped type uses keyof inline2type MakeAllValuesNumber<O: {...}> = {[key in keyof O]: number};3type ObjWithFoo = {foo: string};4type ObjWithBar = {bar: string};5
    +6type DistributedMappedType = MakeAllValuesNumber<7  | ObjWithFoo8  | ObjWithBar9>; // = {foo: number} | {bar: number};10
    +11// This mapped type uses a type parameter bound by $Keys12type Pick<O: {...}, Keys: $Keys<O>> = {[key in Keys]: O[key]};13type O1 = {foo: number, bar: number};14type O2 = {bar: string, baz: number};15type PickBar = Pick<O1 | O2, 'bar'>; // = {bar: number} | {bar: string};

    Distributive mapped types will also distribute over null and undefined:

    1type Distributive<O: ?{...}> = {[key in keyof O]: O[key]};2type Obj = {foo: number};3type MaybeMapped = Distributive<?Obj>;// = ?{foo: number}4(null: MaybeMapped); // OK5(undefined: MaybeMapped); // OK6({foo: 3}: MaybeMapped); // OK

    Property Modifiers

    You can also add + or - variance modifiers and the optionality modifier ? in mapped types:

    1type O = {foo: number, bar: string}2type ReadOnlyPartialO = {+[key in keyof O]?: O[key]}; // = {+foo?: number, +bar?: string};

    When no variance nor optionality modifiers are provided and the mapped type is distributive, +the variance and optionality are determined by the input object:

    1type O = {+foo: number, bar?: string};2type Mapped = {[key in keyof O]: O[key]}; // = {+foo: number, bar?: string}

    Otherwise, the properties are read-write and required when no property modifiers are present:

    1type Union = 'foo' | 'bar' | 'baz';2type MappedType = {[key in Union]: number};3// = {foo: number, bar: number, baz: number};

    NOTE: Flow does not yet support removing variance or optionality modifiers.

    Adoption

    To use mapped types, you need to upgrade your infrastructure so that it supports the syntax:

    • flow and flow-parser: 0.210.0. Between v0.210.0 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the [options] heading, add mapped_type=true.
    • prettier: 3
    • babel with babel-plugin-syntax-hermes-parser. See our Babel guide for setup instructions.
    • eslint with hermes-eslint. See our ESLint guide for setup instructions.
    + + + + \ No newline at end of file diff --git a/en/docs/types/maybe/index.html b/en/docs/types/maybe/index.html new file mode 100644 index 00000000000..9179bbad908 --- /dev/null +++ b/en/docs/types/maybe/index.html @@ -0,0 +1,35 @@ + + + + + +Maybe Types | Flow + + + + + + + + + + + + + + +
    +

    Maybe Types

    You can prefix a type with ? to make it a union with null and void: +?T is equivalent to the union T | null | void.

    For example, ?number is equivalent to number | null | void, and allows for numbers, null, and undefined as values. It's "maybe" a number.

    1function acceptsMaybeNumber(value: ?number) {2  // ...3}4
    +5acceptsMaybeNumber(42);        // Works!6acceptsMaybeNumber();          // Works! (implicitly undefined)7acceptsMaybeNumber(undefined); // Works!8acceptsMaybeNumber(null);      // Works!9acceptsMaybeNumber("42");      // Error!
    9:20-9:23: Cannot call `acceptsMaybeNumber` with `"42"` bound to `value` because string [1] is incompatible with number [2]. [incompatible-call]

    In the case of objects, a missing property is not the same thing as an explicitly undefined property.

    1function acceptsMaybeProp({value}: {value: ?number}) {2  // ...3}4
    +5acceptsMaybeProp({value: undefined}); // Works!6acceptsMaybeProp({});                 // Error!
    6:18-6:19: Cannot call `acceptsMaybeProp` with object literal bound to the first parameter because property `value` is missing in object literal [1] but exists in object type [2]. [prop-missing]

    If you want to allow missing properties, use optional property syntax, where the ? is placed before the colon. +It is also possible to combine both syntaxes for an optional maybe type, for example {value?: ?number}.

    Refining maybe types

    Imagine we have the type ?number, if we want to use that value as a number +we'll need to first check that it is not null or undefined.

    1function acceptsMaybeNumber(value: ?number): number {2  if (value !== null && value !== undefined) {3    return value * 2;4  }5  return 0;6}

    You can simplify the two checks against null and undefined using a single +!= null check which will do both.

    1function acceptsMaybeNumber(value: ?number): number {2  if (value != null) {3    return value * 2;4  }5  return 0;6}

    Most double equal checks are discouraged in JavaScript, but the above pattern is safe (it checks for exactly null and undefined).

    You could also flip it around, and check to make sure that the value has a type +of number before using it.

    1function acceptsMaybeNumber(value: ?number): number {2  if (typeof value === 'number') {3    return value * 2;4  }5  return 0;6}

    However, type refinements can be lost. For instance, calling a function after refining the type of an object's property will invalidate this refinement. +Consult the refinement invalidations docs for more details, to understand why Flow works this way, +and how you can avoid this common pitfall.

    + + + + \ No newline at end of file diff --git a/en/docs/types/mixed/index.html b/en/docs/types/mixed/index.html new file mode 100644 index 00000000000..c46c1fa7007 --- /dev/null +++ b/en/docs/types/mixed/index.html @@ -0,0 +1,38 @@ + + + + + +Mixed | Flow + + + + + + + + + + + + + + +
    +

    Mixed

    mixed is the supertype of all types. All values are mixed. +However, this means that very few operations are permitted on it, without refining to some more specific type. +That's because the valid operations on mixed must be valid for all types.

    In general, programs have several different categories of types:

    A single type:

    Here the input value can only be a number.

    1function square(n: number) {2  return n * n;3}

    A group of different possible types:

    Here the input value could be either a string or a number.

    1function stringifyBasicValue(value: string | number) {2  return '' + value;3}

    A type based on another type:

    Here the return type will be the same as the type of whatever value is passed +into the function.

    1function identity<T>(value: T): T {2  return value;3}

    These three are the most common categories of types. They will make up the +majority of the types you'll be writing.

    However, there is also a fourth category.

    An arbitrary type that could be anything:

    Here the passed in value is an unknown type, it could be any type and the +function would still work.

    1function getTypeOf(value: mixed): string {2  return typeof value;3}

    These unknown types are less common, but are still useful at times.

    You should represent these values with mixed.

    Anything goes in, Nothing comes out

    mixed will accept any type of value. Strings, numbers, objects, functions– +anything will work.

    1function stringify(value: mixed) {2  // ...3}4
    +5stringify("foo");6stringify(3.14);7stringify(null);8stringify({});

    When you try to use a value of a mixed type you must first figure out what +the actual type is or you'll end up with an error.

    1function stringify(value: mixed) {2  return "" + value; // Error!
    3}4 +5stringify("foo");
    2:10-2:19: Cannot use operator `+` with operands string [1] and mixed [2] [unsafe-addition]

    Instead you must ensure the value is a certain type by refining it.

    1function stringify(value: mixed) {2  if (typeof value === 'string') {3    return "" + value; // Works!4  } else {5    return "";6  }7}8
    +9stringify("foo");

    Because of the typeof value === 'string' check, Flow knows the value can +only be a string inside of the if statement. This is known as a +refinement.

    Versus any

    mixed is safe, while any is not. Both accept all values, but any also unsafely allows all operations.

    Versus empty

    mixed is the opposite of empty:

    • Everything is a mixed, but few operations are permitted on it without first refining to a specific type. It is the supertype of all types.
    • Nothing is empty, but any operation is permitted on it. It is the subtype of all types.
    + + + + \ No newline at end of file diff --git a/en/docs/types/modules/index.html b/en/docs/types/modules/index.html new file mode 100644 index 00000000000..4c1862bd0ba --- /dev/null +++ b/en/docs/types/modules/index.html @@ -0,0 +1,28 @@ + + + + + +Module Types | Flow + + + + + + + + + + + + + + +
    +

    Module Types

    Importing and exporting types

    It is often useful to share types between modules (files). +In Flow, you can export type aliases, interfaces, and classes from one file and import them in another.

    exports.js

    1export default class MyClass {};2export type MyObject = { /* ... */ };3export interface MyInterface { /* ... */ };

    imports.js

    import type MyClass, {MyObject, MyInterface} from './exports';

    Don't forget to add @flow at the top of your file, otherwise Flow won't report errors.

    Importing and exporting values as types

    Flow also supports importing the type of values exported by other modules using typeof.

    exports.js

    1const myNumber = 42;2export default myNumber;3export class MyClass { /* ... */ };

    imports.js

    import typeof MyNumber from './exports';
    import typeof {MyClass} from './exports';

    const x: MyNumber = 1; // Works: like using `number`

    Just like other type imports, this code can be stripped away by a compiler so +that it does not add a runtime dependency on the other module.

    + + + + \ No newline at end of file diff --git a/en/docs/types/objects/index.html b/en/docs/types/objects/index.html new file mode 100644 index 00000000000..b7b6a86b4ba --- /dev/null +++ b/en/docs/types/objects/index.html @@ -0,0 +1,92 @@ + + + + + +Objects | Flow + + + + + + + + + + + + + + +
    +

    Objects

    Objects can be used in many different ways in JavaScript. +There are a number of ways to type them in order to support the different use cases.

    • Exact object types: An object which has exactly a set of properties, e.g. {a: number}. We recommend using exact object types rather than inexact ones, as they are more precise and interact better with other type system features, like spreads.
    • Inexact object types: An object with at least a set of properties, but potentially other, unknown ones, e.g. {a: number, ...}.
    • Objects with indexers: An object that can used as a map from a key type to a value type, e.g. {[string]: boolean}.
    • Interfaces: Interfaces are separate from object types. Only they can describe instances of classes. E.g. interfaces {a: number}.

    Object types try to match the syntax for objects in JavaScript as much as +possible. Using curly braces {} and name-value pairs using a colon : split +by commas ,.

    1const obj1: {foo: boolean} = {foo: true};2const obj2: {3  foo: number,4  bar: boolean,5  baz: string,6} = {7  foo: 1,8  bar: true,9  baz: 'three',10};

    Optional object type properties

    In JavaScript, accessing a property that doesn't exist evaluates to +undefined. This is a common source of errors in JavaScript programs, so Flow +turns these into type errors.

    1const obj = {foo: "bar"};2obj.bar; // Error!
    2:5-2:7: Cannot get `obj.bar` because property `bar` is missing in object literal [1]. [prop-missing]

    If you have an object that sometimes does not have a property you can make it +an optional property by adding a question mark ? after the property name in +the object type.

    1const obj: {foo?: boolean} = {};2
    +3obj.foo = true;    // Works!4obj.foo = 'hello'; // Error!
    4:11-4:17: Cannot assign `'hello'` to `obj.foo` because string [1] is incompatible with boolean [2]. [incompatible-type]

    In addition to their set value type, these optional properties can either be +void or omitted altogether. However, they cannot be null.

    1function acceptsObject(value: {foo?: string}) { /* ... */ }2
    +3acceptsObject({foo: "bar"});     // Works!4acceptsObject({foo: undefined}); // Works!5acceptsObject({});               // Works!6
    +7acceptsObject({foo: null});      // Error!
    7:21-7:24: Cannot call `acceptsObject` with object literal bound to `value` because null [1] is incompatible with string [2] in property `foo`. [incompatible-call]

    To make all properties in an object type optional, you can use the Partial utility type:

    1type Obj = {2  foo: string,3};4
    +5type PartialObj = Partial<Obj>; // Same as `{foo?: string}`

    To make all properties in an object type required, you can use the Required utility type:

    1type PartialObj = {2  foo?: string,3};4
    +5type Obj = Required<PartialObj>; // Same as `{foo: string}`

    Read-only object properties

    You can add variance annotations to your object properties.

    To mark a property as read-only, you can use the +:

    1type Obj = {2  +foo: string,3};4
    +5function func(o: Obj) {6  const x: string = o.foo; // Works!7  o.foo = 'hi'; // Error!
    8}
    7:5-7:7: Cannot assign `'hi'` to `o.foo` because property `foo` is not writable. [cannot-write]

    To make all object properties in an object type read-only, you can use the $ReadOnly utility type:

    1type Obj = {2  foo: string,3};4
    +5type ReadOnlyObj = $ReadOnly<Obj>; // Same as `{+foo: string}`

    You can also mark your properties as write-only with -:

    1type Obj = {2  -foo: string,3};4
    +5function func(o: Obj) {6  const x: string = o.foo; // Error!
    7 o.foo = 'hi'; // Works!8}
    6:23-6:25: Cannot get `o.foo` because property `foo` is not readable. [cannot-read]

    Object methods

    Method syntax in objects has the same runtime behavior as a function property. These two objects are equivalent at runtime:

    1const a = {2  foo: function () { return 3; }3};4const b = {5  foo() { return 3; }6}

    However, despite their equivalent runtime behavior, Flow checks them slightly differently. In particular, object +properties written with method syntax are read-only; Flow will not allow you to write a new value to them.

    1const b = {2  foo() { return 3; }3}4b.foo = () => { return 2; } // Error!
    4:3-4:5: Cannot assign function to `b.foo` because property `foo` is not writable. [cannot-write]

    Additionally, object methods do not allow the use of this in their bodies, in order to guarantee simple behavior +for their this parameters. Prefer to reference the object by name instead of using this.

    1const a = {2  x: 3,3  foo() { return this.x; } // Error!
    4}5const b = {6 x: 3,7 foo(): number { return b.x; } // Works!8}
    3:18-3:21: Cannot reference `this` from within method `foo` [1]. For safety, Flow restricts access to `this` inside object methods since these methods may be unbound and rebound. Consider replacing the reference to `this` with the name of the object, or rewriting the object as a class. [object-this-reference]

    Object type inference

    NOTE: The behavior of empty object literals has changed in version 0.191 - +see this blog post for more details.

    When you create an object value, its type is set at the creation point. You cannot add new properties, +or modify the type of existing properties.

    1const obj = {2  foo: 1,3  bar: true,4};5
    +6const n: number  = obj.foo; // Works!7const b: boolean = obj.bar; // Works!8
    +9obj.UNKNOWN; // Error - prop `UNKNOWN` is not in the object value
    10obj.foo = true; // Error - `foo` is of type `number`
    9:5-9:11: Cannot get `obj.UNKNOWN` because property `UNKNOWN` is missing in object literal [1]. [prop-missing]
    10:11-10:14: Cannot assign `true` to `obj.foo` because boolean [1] is incompatible with number [2]. [incompatible-type]

    If you supply a type annotation, you can add properties missing in the object value as optional properties:

    1const obj: {2  foo?: number,3  bar: boolean,4} = {5  // `foo` is not set here6  bar: true,7};8
    +9const n: number | void = obj.foo; // Works!10const b: boolean = obj.bar; // Works!11
    +12if (b) {13  obj.foo = 3; // Works!14}

    You can also give a wider type for a particular property:

    1const obj: {2  foo: number | string,3} = {4  foo: 1,5};6
    +7const foo: number | string = obj.foo; // Works!8obj.foo = "hi"; // Works!

    The empty object can be interpreted as a dictionary, if you supply the appropriate type annotation:

    1const dict: {[string]: number} = {}; // Works!

    You may need to add type annotations to an object literal, if it references itself recursively (beyond simple cases):

    1const Utils = { // Error
    2 foo() {3 return Utils.bar();4 },5 bar() {6 return 1;7 }8};9 +10const FixedUtils = { // Works!11 foo(): number {12 return FixedUtils.bar();13 },14 bar(): number {15 return 1;16 }17};
    1:7-1:11: Cannot compute a type for `Utils` because its definition includes references to itself [1]. Please add an annotation to these definitions [2] [3] [recursive-definition]

    Exact and inexact object types

    Exact object types are the default (as of version 0.202), unless you have set exact_by_default=false in your .flowconfig.

    Inexact objects (denoted with the ...) allow extra properties to be passed in:

    1function method(obj: {foo: string, ...}) { /* ... */ }2
    +3method({foo: "test", bar: 42}); // Works!

    Note: This is because of "width subtyping".

    But exact object types do not:

    1function method(obj: {foo: string}) { /* ... */ }2
    +3method({foo: "test", bar: 42}); // Error!
    3:8-3:29: Cannot call `method` with object literal bound to `obj` because property `bar` is missing in object type [1] but exists in object literal [2]. [prop-missing]

    If you have set exact_by_default=false, you can denote exact object types by adding a pair of "vertical bars" or "pipes" to the inside of the curly braces:

    1const x: {|foo: string|} = {foo: "Hello", bar: "World!"}; // Error!
    1:28-1:56: Cannot assign object literal to `x` because property `bar` is missing in object type [1] but exists in object literal [2]. [prop-missing]

    Intersections of exact object types may not work as you expect. If you need to combine exact object types, use object type spread:

    1type FooT = {foo: string};2type BarT = {bar: number};3
    +4type FooBarT = {...FooT, ...BarT};5const fooBar: FooBarT = {foo: '123', bar: 12}; // Works!6
    +7type FooBarFailT = FooT & BarT;8const fooBarFail: FooBarFailT = {foo: '123', bar: 12}; // Error!
    8:33-8:53: Cannot assign object literal to `fooBarFail` because property `bar` is missing in `FooT` [1] but exists in object literal [2]. [prop-missing]
    8:33-8:53: Cannot assign object literal to `fooBarFail` because property `foo` is missing in `BarT` [1] but exists in object literal [2]. [prop-missing]

    Object type spread

    Just like you can spread object values, you can also spread object types:

    1type ObjA = {2  a: number,3  b: string,4};5
    +6const x: ObjA = {a: 1, b: "hi"};7
    +8type ObjB = {9  ...ObjA,10  c: boolean,11};12
    +13const y: ObjB = {a: 1, b: 'hi', c: true}; // Works!14const z: ObjB = {...x, c: true}; // Works!

    You have to be careful spreading inexact objects. +The resulting object must also be inexact, +and the spread inexact object may have unknown properties that can override previous properties in unknown ways:

    1type Inexact = {2  a: number,3  b: string,4  ...5};6
    +7type ObjB = { // Error!
    8 c: boolean,
    9 ...Inexact,
    10};
    11 +12const x: ObjB = {a:1, b: 'hi', c: true};
    7:13-10:1: Flow cannot determine a type for object type [1]. `Inexact` [2] is inexact, so it may contain `c` with a type that conflicts with `c`'s definition in object type [1]. Try making `Inexact` [2] exact. [cannot-spread-inexact]
    9:6-9:12: inexact `Inexact` [1] is incompatible with exact object type [2]. [incompatible-exact]

    The same issue exists with objects with indexers, as they also have unknown keys:

    1type Dict = {2  [string]: number,3};4
    +5type ObjB = { // Error!
    6 c: boolean,
    7 ...Dict,
    8};
    9 +10const x: ObjB = {a: 1, b: 2, c: true};
    5:13-8:1: Flow cannot determine a type for object type [1]. `Dict` [2] cannot be spread because the indexer string [3] may overwrite properties with explicit keys in a way that Flow cannot track. Try spreading `Dict` [2] first or remove the indexer. [cannot-spread-indexer]

    Spreading an object value at runtime only spreads "own" properties, that is properties that are on the object directly, not the prototype chain. +Object type spread works in the same way. +Because of this, you can't spread interfaces, as they don't track whether a property is "own" or not:

    1interface Iface {2  a: number;3  b: string;4}5
    +6type ObjB = { // Error!
    7 c: boolean,
    8 ...Iface,
    9};
    10 +11const x: ObjB = {a: 1, b: 'hi', c: true};
    6:13-9:1: Flow cannot determine a type for object type [1]. `Iface` [2] cannot be spread because interfaces do not track the own-ness of their properties. Try using an object type instead. [cannot-spread-interface]

    Objects as maps

    JavaScript includes a Map class, +but it is still very common to use objects as maps as well. In this use case, an object +will likely have properties added to it and retrieved throughout its lifecycle. +Furthermore, the property keys may not even be known statically, so writing out +a type annotation would not be possible.

    For objects like these, Flow provides a special kind of property, called an +"indexer property." An indexer property allows reads and writes using any key +that matches the indexer key type.

    1const o: {[string]: number} = {};2o["foo"] = 0;3o["bar"] = 1;4const foo: number = o["foo"];

    An indexer can be optionally named, for documentation purposes:

    1const obj: {[user_id: number]: string} = {};2obj[1] = "Julia";3obj[2] = "Camille";4obj[3] = "Justin";5obj[4] = "Mark";

    When an object type has an indexer property, property accesses are assumed to +have the annotated type, even if the object does not have a value in that slot +at runtime. It is the programmer's responsibility to ensure the access is safe, +as with arrays.

    1const obj: {[number]: string} = {};2obj[42].length; // No type error, but will throw at runtime

    Indexer properties can be mixed with named properties:

    1const obj: {2  size: number,3  [id: number]: string4} = {5  size: 06};7
    +8function add(id: number, name: string) {9  obj[id] = name;10  obj.size++;11}

    You can mark an indexer property as read-only (or write-only) using variance annotations:

    1type ReadOnly = {+[string]: number};2type WriteOnly = {-[string]: number};

    Keys, values, and indexed access

    You can extract the keys of an object type using the $Keys utility type:

    1type Obj = {2  foo: string,3  bar: number,4};5
    +6type T = $Keys<Obj>;7
    +8function acceptsKeys(k: T) { /* ... */ }9
    +10acceptsKeys('foo'); // Works!11acceptsKeys('bar'); // Works!12acceptsKeys('hi'); // Error!
    12:13-12:16: Cannot call `acceptsKeys` with `'hi'` bound to `k` because property `hi` is missing in `Obj` [1]. [prop-missing]

    You can extract the values of an object type using the $Values utility type:

    1type Obj = {2  foo: string,3  bar: number,4};5
    +6type T = $Values<Obj>;7
    +8function acceptsValues(v: T) { /* ... */ }9
    +10acceptsValues(2); // Works!11acceptsValues('hi'); // Works!12acceptsValues(true); // Error!
    12:15-12:18: Cannot call `acceptsValues` with `true` bound to `v` because: [incompatible-call] Either boolean [1] is incompatible with string [2]. Or boolean [1] is incompatible with number [3].

    You can get the type of an object type's specific property using indexed access types:

    1type Obj = {2  foo: string,3  bar: number,4};5
    +6type T = Obj['foo'];7
    +8function acceptsStr(x: T) { /* ... */ }9
    +10acceptsStr('hi'); // Works!11acceptsStr(1); // Error!
    11:12-11:12: Cannot call `acceptsStr` with `1` bound to `x` because number [1] is incompatible with string [2]. [incompatible-call]

    Arbitrary objects

    If you want to accept an arbitrary object safely, there are a couple of patterns you could use.

    An empty inexact object {...} accepts any object:

    1function func(obj: {...}) {2  // ...3}4
    +5func({}); // Works!6func({a: 1, b: "foo"}); // Works!

    It's often the right choice for a generic bounded to accept any object:

    1function func<T: {...}>(obj: T) {2  // ...3}4
    +5func({}); // Works!6func({a: 1, b: "foo"}); // Works!

    However, you can't access any properties off of {...}.

    You can also try using a dictionary with mixed values, which would allow you to access any property (with a resulting mixed type):

    1function func(obj: {+[string]: mixed}) {2  const x: mixed = obj['bar'];3}4
    +5func({}); // Works!6func({a: 1, b: "foo"}); // Works!

    The type Object is just an alias for any, and is unsafe. +You can ban its use in your code with the unclear-type lint.

    + + + + \ No newline at end of file diff --git a/en/docs/types/opaque-types/index.html b/en/docs/types/opaque-types/index.html new file mode 100644 index 00000000000..bc8294d30df --- /dev/null +++ b/en/docs/types/opaque-types/index.html @@ -0,0 +1,42 @@ + + + + + +Opaque Type Aliases | Flow + + + + + + + + + + + + + + +
    +

    Opaque Type Aliases

    Opaque type aliases are type aliases that do not allow access to their +underlying type outside of the file in which they are defined.

    1opaque type ID = string;

    Opaque type aliases, like regular type aliases, may be used anywhere a type can +be used.

    1opaque type ID = string;2
    +3function identity(x: ID): ID {4  return x;5}6export type {ID};

    Opaque Type Alias Syntax

    Opaque type aliases are created using the words opaque type followed by its +name, an equals sign =, and a type definition.

    opaque type Alias = Type;

    You can optionally add a subtyping constraint to an opaque type alias by adding +a colon : and a type after the name.

    opaque type Alias: SuperType = Type;

    Any type can appear as the super type or type of an opaque type alias.

    1opaque type StringAlias = string;2opaque type ObjectAlias = {3  property: string,4  method(): number,5};6opaque type UnionAlias = 1 | 2 | 3;7opaque type AliasAlias: ObjectAlias = ObjectAlias;8opaque type VeryOpaque: AliasAlias = ObjectAlias;

    Opaque Type Alias Type Checking

    Within the Defining File

    When in the same file the alias is defined, opaque type aliases behave exactly +as regular type aliases do.

    1opaque type NumberAlias = number;2
    +3(0: NumberAlias);4
    +5function add(x: NumberAlias, y: NumberAlias): NumberAlias {6    return x + y;7}8function toNumberAlias(x: number): NumberAlias { return x; }9function toNumber(x: NumberAlias): number { return x; }

    Outside the Defining File

    When importing an opaque type alias, it behaves like a +nominal type, hiding its +underlying type.

    exports.js

    export opaque type NumberAlias = number;

    imports.js

    import type {NumberAlias} from './exports';

    (0: NumberAlias) // Error: 0 is not a NumberAlias!

    function convert(x: NumberAlias): number {
    return x; // Error: x is not a number!
    }

    Subtyping Constraints

    When you add a subtyping constraint to an opaque type alias, we allow the opaque +type to be used as the super type when outside of the defining file.

    exports.js

    1export opaque type ID: string = string;

    imports.js

    import type {ID} from './exports';

    function formatID(x: ID): string {
    return "ID: " + x; // Ok! IDs are strings.
    }

    function toID(x: string): ID {
    return x; // Error: strings are not IDs.
    }

    When you create an opaque type alias with a subtyping constraint, the type in +the type position must be a subtype of the type in the super type position.

    1opaque type Bad: string = number; // Error: number is not a subtype of string
    2opaque type Good: {x: string, ...} = {x: string, y: number};
    1:27-1:32: number [1] is incompatible with string [2]. [incompatible-type]

    Generics

    Opaque type aliases can also have their own generics, +and they work exactly as generics do in regular type aliases

    1opaque type MyObject<A, B, C>: {foo: A, bar: B, ...} = {2  foo: A,3  bar: B,4  baz: C,5};6
    +7var val: MyObject<number, boolean, string> = {8  foo: 1,9  bar: true,10  baz: 'three',11};

    Library Definitions

    You can also declare opaque type aliases in +libdefs. There, you omit the underlying +type, but may still optionally include a super type.

    1declare opaque type Foo;2declare opaque type PositiveNumber: number;
    + + + + \ No newline at end of file diff --git a/en/docs/types/primitives/index.html b/en/docs/types/primitives/index.html new file mode 100644 index 00000000000..0f08d308bd3 --- /dev/null +++ b/en/docs/types/primitives/index.html @@ -0,0 +1,77 @@ + + + + + +Primitive Types | Flow + + + + + + + + + + + + + + +
    +

    Primitive Types

    JavaScript has a number of different primitive types +(MDN):

    ExampleFlow type
    Booleanstrue or falseboolean
    Strings'foo'string
    Numbers123number
    Nullnullnull
    Undefinedundefinedvoid
    Symbols (new in ES2015)Symbol('foo')symbol
    BigInts (new in ES2020)123nbigint

    Some primitive types appear in the language as literal values:

    1true;2"hello";33.14;4null;5undefined;63n;

    BigInts and Symbols can be created with calls to BigInt and Symbol, respectively:

    1BigInt("2364023476023");2Symbol("hello");

    The Flow types of literal values are lowercase (mirroring the output of JavaScript's +typeof expression):

    1function func(a: number, b: string, c: boolean, d: bigint) { /* ... */ }2
    +3func(3.14, "hello", true, 3n);

    Some literals can also be used as literal types:

    1function acceptTwo(x: 2) { /* ... */ }2
    +3acceptTwo(2); // Works!4acceptTwo(1); // Error!
    4:11-4:11: Cannot call `acceptTwo` with `1` bound to `x` because number [1] is incompatible with number literal `2` [2]. [incompatible-call]

    Some primitives can also be wrapped as objects:

    NOTE: You probably never want to use the wrapper object variants.

    1new Boolean(false);2new String("world");3new Number(42);

    Types for the wrapper objects are capitalized (the same as their constructor):

    1function func(x: Number, y: String, z: Boolean) {2  // ...3}4
    +5func(new Number(42), new String("world"), new Boolean(false));

    These wrapper objects are rarely used.

    Booleans

    Booleans are true and false values in JavaScript. The boolean type in +Flow accepts these values.

    1function acceptsBoolean(value: boolean) { /* ... */ }2
    +3acceptsBoolean(true);  // Works!4acceptsBoolean(false); // Works!5
    +6acceptsBoolean("foo"); // Error!
    6:16-6:20: Cannot call `acceptsBoolean` with `"foo"` bound to `value` because string [1] is incompatible with boolean [2]. [incompatible-call]

    JavaScript can also implicitly convert other types of values into booleans.

    if (42) {} // 42 => true
    if ("") {} // "" => false

    Flow understands these coercions and will allow them as part of an +if statement's test or other conditional contexts.

    To explicitly convert non-booleans to a boolean, you can use Boolean(x) or !!x.

    1function acceptsBoolean(value: boolean) { /* ... */ }2
    +3acceptsBoolean(0);          // Error!
    4 +5acceptsBoolean(Boolean(0)); // Works!6acceptsBoolean(!!0); // Works!
    3:16-3:16: Cannot call `acceptsBoolean` with `0` bound to `value` because number [1] is incompatible with boolean [2]. [incompatible-call]

    You can refine a value to boolean using a typeof check:

    1function acceptsBoolean(value: boolean) { /* ... */ }2
    +3function func(value: mixed) {4  if (typeof value === 'boolean') {5    acceptsBoolean(value); // Works: `value` is `boolean`6  }7}

    Remember that boolean and Boolean are different types.

    • A boolean is a literal value like true or false or the result of an +expression like a === b.
    • A Boolean is a wrapper object created by the global new Boolean(x) +constructor. You probably don't want to use this!

    Numbers

    Number literals in JavaScript are floating point numbers, for example 42 or 3.14. +JavaScript also considers Infinity and NaN to be numbers. +These are represented by the number type. JavaScript also has a separate BigInt type.

    1function acceptsNumber(value: number) { /* ... */ }2
    +3acceptsNumber(42);       // Works!4acceptsNumber(3.14);     // Works!5acceptsNumber(NaN);      // Works!6acceptsNumber(Infinity); // Works!7
    +8acceptsNumber("foo");    // Error!
    9acceptsNumber(123n); // Error!
    8:15-8:19: Cannot call `acceptsNumber` with `"foo"` bound to `value` because string [1] is incompatible with number [2]. [incompatible-call]
    9:15-9:18: Cannot call `acceptsNumber` with `123n` bound to `value` because bigint [1] is incompatible with number [2]. [incompatible-call]

    You can refine a value to number using a typeof check:

    1function acceptsNumber(value: number) { /* ... */ }2
    +3function func(value: mixed) {4  if (typeof value === 'number') {5    acceptsNumber(value); // Works: `value` is `number`6  }7}

    Remember that number and Number are different types.

    • A number is a literal value like 42 or 3.14 or the result of an +expression like parseFloat(x).
    • A Number is a wrapper object created by the global new Number(x) constructor. You probably don't want to use this!

    Strings

    Strings are "foo" values in JavaScript. The string type in Flow accepts these values.

    1function acceptsString(value: string) { /* ... */ }2
    +3acceptsString("foo"); // Works!4acceptsString(`template literal`); // Works!5
    +6acceptsString(false); // Error!
    6:15-6:19: Cannot call `acceptsString` with `false` bound to `value` because boolean [1] is incompatible with string [2]. [incompatible-call]

    JavaScript implicitly converts other types of values into strings by +concatenating them.

    "foo" + 42; // "foo42"
    "foo" + {}; // "foo[object Object]"

    Flow will only accept strings and numbers when concatenating them to strings.

    1"foo" + "foo"; // Works!2"foo" + 42;    // Works!3`foo ${42}`;   // Works!4
    +5"foo" + {};    // Error!
    6"foo" + []; // Error!
    7`foo ${[]}`; // Error!
    5:1-5:10: Cannot use operator `+` with operands string [1] and object literal [2] [unsafe-addition]
    6:1-6:10: Cannot use operator `+` with operands string [1] and empty array literal [2] [unsafe-addition]
    7:8-7:9: Cannot coerce array literal to string because empty array literal [1] should not be coerced. [incompatible-type]

    You must be explicit and convert other types into strings. You can do this by +using the String function or using another method for stringifying values.

    1"foo" + String({});     // Works!2"foo" + [].toString();  // Works!3"" + JSON.stringify({}) // Works!

    You can refine a value to string using a typeof check:

    1function acceptsString(value: string) { /* ... */ }2
    +3function func(value: mixed) {4  if (typeof value === 'string') {5    acceptsString(value); // Works: `value` is `string`6  }7}

    Remember that string and String are different types.

    • A string is a literal value like "foo" or the result of an expression +like "" + 42.
    • A String is a wrapper object created by the global new String(x) constructor. You probably don't want to use this!

    null and undefined

    JavaScript has both null and undefined. Flow treats these as separate +types: null and void (for undefined).

    1function acceptsNull(value: null) { /* ... */ }2
    +3acceptsNull(null);      // Works!4acceptsNull(undefined); // Error!
    5 +6function acceptsUndefined(value: void) { /* ... */ }7 +8acceptsUndefined(undefined); // Works!9acceptsUndefined(null); // Error!
    4:13-4:21: Cannot call `acceptsNull` with `undefined` bound to `value` because undefined [1] is incompatible with null [2]. [incompatible-call]
    9:18-9:21: Cannot call `acceptsUndefined` with `null` bound to `value` because null [1] is incompatible with undefined [2]. [incompatible-call]

    You can refine a value to null or void using equality checks:

    1function acceptsNull(value: null) { /* ... */ }2
    +3function func(value: mixed) {4  if (value === null) {5    acceptsNull(value); // Works: `value` is `null`6  }7}
    1function acceptsUndefined(value: void) { /* ... */ }2
    +3function func(value: mixed) {4  if (value === undefined) {5    acceptsUndefined(value); // Works: `value` is `void`6  }7}

    null and void also appear in other types:

    Maybe types

    Maybe types are for places where a value is optional and you can create them by +adding a question mark in front of the type such as ?string or ?number.

    ?T is equivalent to T | null | void.

    1function acceptsMaybeString(value: ?string) { /* ... */ }2
    +3acceptsMaybeString("bar");     // Works!4acceptsMaybeString(undefined); // Works!5acceptsMaybeString(null);      // Works!6acceptsMaybeString();          // Works!

    To refine, value == null checks exactly for both null and undefined.

    Read the maybe type docs for more details.

    Optional object properties

    Object types can have optional properties where a question mark ? comes after +the property name.

    {propertyName?: string}

    In addition to their set value type, these optional properties can either be +void or omitted altogether. However, they cannot be null.

    1function acceptsObject(value: {foo?: string}) { /* ... */ }2
    +3acceptsObject({foo: "bar"});     // Works!4acceptsObject({foo: undefined}); // Works!5acceptsObject({});               // Works!6
    +7acceptsObject({foo: null});      // Error!
    7:21-7:24: Cannot call `acceptsObject` with object literal bound to `value` because null [1] is incompatible with string [2] in property `foo`. [incompatible-call]

    Optional function parameters

    Functions can have optional parameters where a question mark ? comes after +the parameter name.

    function func(param?: string) { /* ... */ }

    In addition to their set type, these optional parameters can either be void +or omitted altogether. However, they cannot be null.

    1function acceptsOptionalString(value?: string) { /* ... */ }2
    +3acceptsOptionalString("bar");     // Works!4acceptsOptionalString(undefined); // Works!5acceptsOptionalString();          // Works!6
    +7acceptsOptionalString(null);      // Error!
    7:23-7:26: Cannot call `acceptsOptionalString` with `null` bound to `value` because null [1] is incompatible with string [2]. [incompatible-call]

    Function parameters with defaults

    Function parameters can also have defaults. This is a feature of ES2015.

    function func(value: string = "default") { /* ... */ }

    In addition to their set type, default parameters can also be void or omitted +altogether. However, they cannot be null.

    1function acceptsOptionalString(value: string = "foo") { /* ... */ }2
    +3acceptsOptionalString("bar");     // Works!4acceptsOptionalString(undefined); // Works!5acceptsOptionalString();          // Works!6
    +7acceptsOptionalString(null);      // Error!
    7:23-7:26: Cannot call `acceptsOptionalString` with `null` bound to `value` because null [1] is incompatible with string [2]. [incompatible-call]

    Symbols

    Symbols are created with Symbol() in JavaScript. Flow has basic support for symbols, using the symbol type.

    1function acceptsSymbol(value: symbol) { /* ... */ }2
    +3acceptsSymbol(Symbol()); // Works!4acceptsSymbol(Symbol.isConcatSpreadable); // Works!5
    +6acceptsSymbol(false); // Error!
    6:15-6:19: Cannot call `acceptsSymbol` with `false` bound to `value` because boolean [1] is incompatible with symbol [2]. [incompatible-call]

    You can refine a value to symbol using a typeof check:

    1function acceptsSymbol(value: symbol) { /* ... */ }2
    +3function func(value: mixed) {4  if (typeof value === 'symbol') {5    acceptsSymbol(value); // Works: `value` is `symbol`6  }7}

    BigInts

    BigInts can be used to represent integers of arbitrary precision. In other words, they can store integers which are too large to store as a number.

    A bigint literal is just a number literal along with an n suffix.

    Note that bigint and number are incompatible types. That is, a bigint cannot be used where a number is expected, and vice versa.

    1function acceptsBigInt(value: bigint) { /* ... */ }2
    +3acceptsBigInt(42n); // Works!4acceptsBigInt(42); // Error!
    4:15-4:16: Cannot call `acceptsBigInt` with `42` bound to `value` because number [1] is incompatible with bigint [2]. [incompatible-call]

    You can refine a value to bigint using a typeof check:

    1function acceptsBigInt(value: bigint) { /* ... */ }2
    +3function func(value: mixed) {4  if (typeof value === 'bigint') {5    acceptsBigInt(value); // Works: `value` is `bigint`6  }7}
    + + + + \ No newline at end of file diff --git a/en/docs/types/tuples/index.html b/en/docs/types/tuples/index.html new file mode 100644 index 00000000000..e486cacb33c --- /dev/null +++ b/en/docs/types/tuples/index.html @@ -0,0 +1,52 @@ + + + + + +Tuples | Flow + + + + + + + + + + + + + + +
    +

    Tuples

    Tuple types represent a fixed length list, where the elements can have different types. +This is in contrast to array types, which have an unknown length and all elements have the same type.

    Tuple Basics

    JavaScript array literal values can be used to create both tuple and array types:

    1const arr: Array<number> = [1, 2, 3]; // As an array type2const tup: [number, number, number] = [1, 2, 3]; // As a tuple type

    In Flow you can create tuple types using the [type1, type2, type3] syntax:

    1const tuple1: [number] = [1];2const tuple2: [number, boolean] = [1, true];3const tuple3: [number, boolean, string] = [1, true, "three"];

    When you get a value from a tuple at a specific index, it will return the +type at that index:

    1const tuple: [number, boolean, string] = [1, true, "three"];2
    +3const num: number = tuple[0]; // Works!4const bool: boolean = tuple[1]; // Works!5const str: string  = tuple[2]; // Works!

    Trying to access an index that does not exist results in an index-out-of-bounds error:

    1const tuple: [number, boolean, string] = [1, true, "three"];2
    +3const none = tuple[3]; // Error!
    3:14-3:21: Cannot get `tuple[3]` because tuple type [1] only has 3 elements, so index 3 is out of bounds. [invalid-tuple-index]

    If Flow doesn't know which index you are trying to access it will return all +possible types:

    1const tuple: [number, boolean, string] = [1, true, "three"];2
    +3function getItem(n: number) {4  const val: number | boolean | string = tuple[n];5  // ...6}

    When setting a new value inside a tuple, the new value must match the type at +that index:

    1const tuple: [number, boolean, string] = [1, true, "three"];2
    +3tuple[0] = 2;     // Works!4tuple[1] = false; // Works!5tuple[2] = "foo"; // Works!6
    +7tuple[0] = "bar"; // Error!
    8tuple[1] = 42; // Error!
    9tuple[2] = false; // Error!
    7:12-7:16: Cannot assign `"bar"` to `tuple[0]` because string [1] is incompatible with number [2]. [incompatible-type]
    8:12-8:13: Cannot assign `42` to `tuple[1]` because number [1] is incompatible with boolean [2]. [incompatible-type]
    9:12-9:16: Cannot assign `false` to `tuple[2]` because boolean [1] is incompatible with string [2]. [incompatible-type]

    Strictly enforced tuple length (arity)

    The length of the tuple is known as the "arity". The length of a tuple is +strictly enforced in Flow.

    This means that a shorter tuple can't be used in place of a longer one:

    1const tuple1: [number, boolean] = [1, true];2
    +3const tuple2: [number, boolean, void] = tuple1; // Error!
    3:41-3:46: Cannot assign `tuple1` to `tuple2` because tuple type [1] has 2 elements but tuple type [2] has 3 elements. [invalid-tuple-arity]

    Also, a longer tuple can't be used in place of a shorter one:

    1const tuple1: [number, boolean, void] = [1, true, undefined];2
    +3const tuple2: [number, boolean] = tuple1; // Error!
    3:35-3:40: Cannot assign `tuple1` to `tuple2` because tuple type [1] has 3 elements but tuple type [2] has 2 elements. [invalid-tuple-arity]

    Optional elements make the arity into a range.

    Tuples don't match array types

    Since Flow does not know the length of an array, an Array<T> type cannot be +passed into a tuple:

    1const array: Array<number> = [1, 2];2
    +3const tuple: [number, number] = array; // Error!
    3:33-3:37: Cannot assign `array` to `tuple` because array type [1] has an unknown number of elements, so is incompatible with tuple type [2]. [invalid-tuple-arity]

    Also a tuple type cannot be passed into to an Array<T> type, since then you +could mutate the tuple in an unsafe way (for example, pushing a third item onto it):

    1const tuple: [number, number] = [1, 2];2
    +3const array: Array<number> = tuple; // Error!
    3:30-3:34: Cannot assign `tuple` to `array` because tuple type [1] is incompatible with array type [2]. [incompatible-type]

    However, you can pass it to a $ReadOnlyArray type, since mutation is disallowed:

    1const tuple: [number, number] = [1, 2];2
    +3const array: $ReadOnlyArray<number> = tuple; // Works!

    Cannot use mutating array methods on tuples

    You cannot use Array.prototype methods that mutate the tuple, only ones that do not:

    1const tuple: [number, number] = [1, 2];2tuple.join(', '); // Works!3
    +4tuple.push(3); // Error!
    4:7-4:10: Cannot call `tuple.push` because property `push` is missing in `$ReadOnlyArray` [1]. [prop-missing]

    Length refinement

    You can refine a union of tuples by their length:

    1type Union = [number, string] | [boolean];2function f(x: Union) {3  if (x.length === 2) {4    // `x` is `[number, string]`5    const n: number = x[0]; // OK6    const s: string = x[1]; // OK7  } else {8    // `x` is `[boolean]`9    const b: boolean = x[0];10  }11}

    Tuple element labels

    NOTE: This and the following sections require your tooling to be updated as described in the "Adoption" section at the end of this page.

    You can add a label to tuple elements. This label does not affect the type of the tuple element, +but is useful in self-documenting the purpose of the tuple elements, especially when multiple elements have the same type.

    1type Range = [x: number, y: number];

    The label is also necessary to add a variance annotation or optionality modifier to an element (as without the label we would have parsing ambiguities).

    Variance annotations and read-only tuples

    You can add variance annotations (to denote read-only/write-only) on labeled tuple elements, just like on object properties:

    1type T = [+foo: number, -bar: string];

    This allows you to mark elements as read-only or write-only. For example:

    1function f(readOnlyTuple: [+foo: number, +bar: string]) {2  const n: number = readOnlyTuple[0]; // OK to read3  readOnlyTuple[1] = 1; // ERROR! Cannot write
    4}
    3:3-3:18: Cannot assign `1` to `readOnlyTuple[1]` because tuple element at index `1` [1] labeled `bar` is not writable. [cannot-write]
    3:22-3:22: Cannot assign `1` to `readOnlyTuple[1]` because number [1] is incompatible with string [2]. [incompatible-type]

    You can also use the $ReadOnly on tuple types as a shorthand for marking each property as read-only:

    1type T = $ReadOnly<[number, string]>; // Same as `[+a: number, +b: string]`

    Optional tuple elements

    You can mark tuple elements as optional with ? after an element’s label. This allows you to omit the optional elements. +Optional elements must be at the end of the tuple type, after all required elements.

    1type T = [foo: number, bar?: string];2([1, "s"]: T); // OK: has all elements3([1]: T); // OK: skipping optional element

    You cannot write undefined to the optional element - add | void to the element type if you want to do so:

    1type T = [foo?: number, bar?: number | void];2declare const x: T;3x[0] = undefined; // ERROR
    4([undefined]: T); // ERROR
    5 +6x[1] = undefined; // OK: we've added `| void` to the element type
    3:8-3:16: Cannot assign `undefined` to `x[0]` because you cannot assign undefined [1] to optional tuple element [2] (to do so, add `| void` to the tuple element type). [incompatible-type]
    4:3-4:11: Cannot cast array literal to `T` because you cannot assign undefined [1] to optional tuple element [2] (to do so, add `| void` to the tuple element type) in index 0. [incompatible-cast]

    You can also use the Partial and Required utility types to make all elements optional or required respectively:

    1type AllRequired = [number, string];2([]: Partial<AllRequired>); // OK: like `[a?: number, b?: string]` now3
    +4type AllOptional = [a?: number, b?: string];5([]: Required<AllOptional>); // ERROR: like `[a: number, b: string]` now
    5:2-5:3: Cannot cast array literal to required of `AllOptional` because empty array literal [1] has 0 elements but `AllOptional` [2] has 2 elements. [invalid-tuple-arity]

    Tuples with optional elements have an arity (length) that is a range rather than a single number. For example, [number, b?: string] has an length of 1-2.

    Tuple spread

    You can spread a tuple type into another tuple type to make a longer tuple type:

    1type A = [number, string];2type T = [...A, boolean]; // Same as `[number, string, boolean]`3([1, "s", true]: T); // OK

    Tuple spreads preserve labels, variance, and optionality. You cannot spread arrays into tuples, only other tuples.

    At the value level, if you spread a tuple with optional elements into an array literal, then you cannot have anything after that spread and retain the tuple view of the array value. +That is because a tuple with optional elements has a length that's a range, so we don't know at what index any subsequent values would be at. +You can still type this value as the appropriate Array<T> type - only the tuple view of the value is affected.

    1const a: [foo?: 1] = [];2const b = [0, ...a, 2]; // At runtime this is `[0, 2]`3(b: [0, 1 | void, 2]); // ERROR
    4(b: Array<number | void>); // OK5 +6const c: [0, foo?: 1] = [0];7const d: [bar?: 2] = [2];8const e = [...c, ...d]; // At runtime this is `[0, 2]`9(e: [0, foo?: 1, bar?: 2]); // ERROR
    10(e: Array<number | void>); // OK
    3:2-3:2: Cannot cast `b` to tuple type because array literal [1] has an unknown number of elements, so is incompatible with tuple type [2]. [invalid-tuple-arity]
    9:2-9:2: Cannot cast `e` to tuple type because array literal [1] has an unknown number of elements, so is incompatible with tuple type [2]. [invalid-tuple-arity]

    Adoption

    To use labeled tuple elements (including optional elements and variance annotations on elements) and tuple spread elements, +you need to upgrade your infrastructure so that it supports the syntax:

    • flow and flow-parser: 0.212.0
    • prettier: 3
    • babel with babel-plugin-syntax-hermes-parser. See our Babel guide for setup instructions.
    • eslint with hermes-eslint. See our ESLint guide for setup instructions.
    + + + + \ No newline at end of file diff --git a/en/docs/types/type-guards/index.html b/en/docs/types/type-guards/index.html new file mode 100644 index 00000000000..d43160c6d98 --- /dev/null +++ b/en/docs/types/type-guards/index.html @@ -0,0 +1,36 @@ + + + + + +Type Guards | Flow + + + + + + + + + + + + + + +
    +

    Type Guards

    Flow lets you define functions whose return expression encodes some type predicate over a parameter param. This predicate is annotated in place of a return type annotation as param is PredicateType. It declares that if the function returns true then param is of type PredicateType.

    The syntax for a function like this is:

    function predicate(param: InputType): param is PredicateType {
    return <some_expression>;
    }

    The type of this function can also be written in terms of a type guard annotation:

    type PredicateFunc = (param: InputType) => param is PredicateType;

    Basic Usage

    Let's see a simple example where we define a type guard function and then use it to refine some values.

    Defining a type guard function

    1type A = { type: "A"; data: string };2type B = { type: "B"; data: number };3type AorB = A | B;4
    +5function isA(value: AorB): value is A {6  return value.type === "A";7}

    We have defined a data type AorB that is a disjoint union of two types A and B that each have a property type used as tag.

    We have also written a user defined type guard function isA defined over objects of type AorB. This function returns true when the value of of the type property of its input is "A". Using the definitions of A and B, Flow can prove that when the value of type is "A" then the type of value will be A.

    Using a type guard function to refine values

    Functions that have a declared type guard can be used to refine values in conditionals. In the example above, we can use isA to refine a variable of type AorB to just A:

    1type A = { type: "A"; data: string };2type B = { type: "B"; data: number };3type AorB = A | B;4
    +5function isA(value: AorB): value is A {6  return value.type === "A";7}8
    +9function test(x: AorB) {10  if (isA(x)) {11    // `x` has now been refined to type A.12    // We can assign it variables of type A ...13    const y: A = x;14    // ...and access A's properties through `x`15    const stringData: string = x.data;16
    +17    // As a sanity check, the following assignment to B will error18    const error: B = x;
    19 }20}
    18:22-18:22: Cannot assign `x` to `error` because string [1] is incompatible with number [2] in property `data`. [incompatible-type]
    18:22-18:22: Cannot assign `x` to `error` because string literal `A` [1] is incompatible with string literal `B` [2] in property `type`. [incompatible-type]

    In the then-branch of the conditional if (isA(x)), x will have the type A.

    Refine with Array.filter

    Flow recognizes when you call filter on an array of type Array<T> with a callback function that holds a type guard with type (value: T) => value is S. +It will use this to produce an output array of type Array<S>. Note that S needs to be a subtype of the type of the array element T.

    For example

    1type Success = $ReadOnly<{type: 'success', value: 23}>;2type Error = $ReadOnly<{type: 'error', error: string}>;3
    +4type Response =5  | Success6  | Error7
    +8function filterSuccess(response: Array<Response>): Array<Success> {9  return response.filter(10    (response): response is Success => response.type === 'success'11  );12}13
    +14function filterError1(response: Array<Response>): Array<Error> {15  const result = response.filter(16    (response): response is Success => response.type === 'success'17  );18  // The following is expected to error19  return result;
    20}21 +22function filterError2(response: Array<Response>): Array<Error> {23 const result = response.filter(24 // The following is expected to error25 (response): response is Error => response.type === 'success'
    26 );27 return result;28}
    19:10-19:15: Cannot return `result` because property `error` is missing in object type [1] but exists in object type [2] in array element. [prop-missing]
    19:10-19:15: Cannot return `result` because property `value` is missing in object type [1] but exists in object type [2] in array element. [prop-missing]
    19:10-19:15: Cannot return `result` because string literal `success` [1] is incompatible with string literal `error` [2] in property `type` of array element. [incompatible-return]
    25:38-25:64: Cannot return `response.type === 'success'` because property `error` is missing in object type [1] but exists in object type [2] in the type inferred for type guard parameter `response` [3]. [prop-missing]
    25:38-25:64: Cannot return `response.type === 'success'` because property `value` is missing in object type [1] but exists in object type [2] in the type inferred for type guard parameter `response` [3]. [prop-missing]
    25:38-25:64: Cannot return `response.type === 'success'` because string literal `success` [1] is incompatible with string literal `error` [2] in property `type` of the type inferred for type guard parameter `response` [3]. [incompatible-return]

    In filterError1, filtering produces Array<Success> that is not compatible with the expected return type Array<Error>.

    In filterError2, the predicate response.type === 'success' is used to refine Responses to Successs, not Errors.

    Defining Type Guard Functions

    To ensure that refinement with type guard functions is sound, Flow runs a number of checks associated with these functions.

    Predicate parameter is a regular parameter to the function

    In a type guard annotation of the form parameter is Type, parameter needs to belong to the current function's parameter list.

    1function missing(param: mixed): prop is number {
    2 return typeof param === "number";3}
    1:33-1:36: Cannot find type guard parameter `prop` [1] in the parameters of this function (type). [function-predicate]

    It cannot be a parameter bound in a destructuring pattern, or a rest paramter:

    1function destructuring({prop}: {prop: mixed}): prop is number {
    2 return typeof prop === "number";3}
    1:48-1:51: A type guard parameter `prop` [1] cannot reference pattern parameter `prop` [2]. [function-predicate]
    1function rest(...value: Array<mixed>): value is Array<mixed> {
    2 return Array.isArray(value);3}
    1:40-1:44: A type guard parameter `value` [1] cannot reference rest parameter `value` [2]. [function-predicate]

    Predicate type is consistent with the parameter type

    The type guard Type needs to be compatible with the type of the parameter. In other words, given a definition

    function isT(x: ParamType): x is Type {
    return ...
    }

    Flow will check that Type is a subtype of ParamType. So the following will be an error:

    1function isNumber(x: string): x is number {
    2 return typeof x === "number";3}
    1:36-1:41: Cannot use number [1] as type prediate for parameter `x` because number [1] is incompatible with string [2]. A user defined type guard needs to be compatible with its parameter's type. [incompatible-type-guard]

    Type guard function returns boolean

    A type guard function needs to return a boolean expression. The following are invalid declarations:

    1function isNumberNoReturn(x: string): x is string {}
    1:39-1:49: Cannot declare a type predicate [1] for function [2] because boolean [1] is incompatible with implicitly-returned undefined. [incompatible-return]
    1function nonMaybe<V: {...}>(x: ?V): x is V {2  return x;
    3}
    2:10-2:10: Cannot return `x` because null or undefined [1] is incompatible with boolean [2]. [incompatible-return]
    2:10-2:10: Cannot return `x` because object type [1] is incompatible with boolean [2]. [incompatible-return]

    A correct version of nonMaybe would be

    1function nonMaybe<V: {...}>(x: ?V): x is V {2  return !!x;3}

    Predicate type is consistent with refined type

    In addition to the above checks, Flow also ensures that the declared type guard is consistent with the check happening in the body of the function. To establish this it needs to guarantee two things:

    1. The type of the refined parameter at the return location after the predicate of the return expression has been applied is a subtype of the guard type. For example, the following definitions are correct:
    1function numOrStr(x: mixed): x is number | string {2  return (typeof x === "number" || typeof x === "string");3}4
    +5function numOrStrWithException(x: mixed): x is number | string {6  if (typeof x === "number") {7    return true;8  } else {9    if (typeof x === "string") {10        return true;11    } else {12        throw new Error("");13    }14  }15}

    But in the following Flow will raise errors:

    1function numOrStrError(x: mixed): x is number | string {2  return (typeof x === "number" || typeof x === "boolean");
    3}
    2:36-2:57: Cannot return `((typeof x) === "number") || ((typeof x) === "boolean")` because in the type inferred for type guard parameter `x` [1]: [incompatible-return] Either boolean [2] is incompatible with number [3]. Or boolean [2] is incompatible with string [4].
    1. The parameter that is refined cannot be reassigned in the body of the type guard function. Therefore the following are errors:
    1function isNumberError1(x: mixed): x is number {2  x = 1;3  return typeof x === "number";
    4}
    3:10-3:30: Cannot use type guard parameter `x` [1] because at this return point it is writen to in [2]. [function-predicate]
    1function isNumberError2(x: mixed): x is number {
    2 function foo() {3 x = 1;4 }5 foo();6 return typeof x === "number";7}
    1:36-1:36: Cannot use type guard parameter `x`, because `x` [1] is reassigned in [2]. [function-predicate]

    Adoption

    To use type guards, you need to upgrade your infrastructure so that it supports the syntax:

    • flow and flow-parser: 0.209.1. Between v0.209.1 to v0.211.1, you need to explicitly enable it in your .flowconfig, under the [options] heading, add type_guards=true.
    • prettier: 3
    • babel with babel-plugin-syntax-hermes-parser. See our Babel guide for setup instructions.
    • eslint with hermes-eslint. See our ESLint guide for setup instructions.
    + + + + \ No newline at end of file diff --git a/en/docs/types/typeof/index.html b/en/docs/types/typeof/index.html new file mode 100644 index 00000000000..1ee5919fb65 --- /dev/null +++ b/en/docs/types/typeof/index.html @@ -0,0 +1,46 @@ + + + + + +Typeof Types | Flow + + + + + + + + + + + + + + +
    +

    Typeof Types

    JavaScript has a typeof operator which returns a string describing a value.

    1typeof 1 === 'number'2typeof true === 'boolean'3typeof 'three' === 'string'

    However it is limited in that this string only describes so much about the type.

    1typeof {foo: true} === 'object'2typeof null === 'object'3typeof [true, false] === 'object'

    In Flow, there is a similar typeof type operator, but it's much more powerful.

    typeof type syntax

    The typeof operator returns the Flow type of a given value to be used as a type.

    1let num1 = 42;2let num2: typeof num1 = 3.14;     // Works!3let num3: typeof num1 = 'world';  // Error!
    4 +5let bool1 = true;6let bool2: typeof bool1 = false; // Works!7let bool3: typeof bool1 = 42; // Error!
    8 +9let str1 = 'hello';10let str2: typeof str1 = 'world'; // Works!11let str3: typeof str1 = false; // Error!
    3:25-3:31: Cannot assign `'world'` to `num3` because string [1] is incompatible with number [2]. [incompatible-type]
    7:27-7:28: Cannot assign `42` to `bool3` because number [1] is incompatible with boolean [2]. [incompatible-type]
    11:25-11:29: Cannot assign `false` to `str3` because boolean [1] is incompatible with string [2]. [incompatible-type]

    You can use any value with typeof, as long as the arugment itself is a variable or member access:

    1let obj1 = {foo: 1, bar: true, baz: 'three'};2let obj2: typeof obj1 = {foo: 42, bar: false, baz: 'hello'};3let num: typeof obj1.bar = 1;4
    +5let arr1 = [1, 2, 3];6let arr2: typeof arr1 = [3, 2, 1];7
    +8type T = typeof {a: 1}; // Invalid!
    8:17-8:17: `typeof` can only be used to get the type of variables.

    typeof inherits behaviors of inference

    When you use typeof, you're taking the results of Flow's inference and +asserting it as a type. While this can be very useful, it can also lead to some +unexpected results.

    For example, when you use literal values in Flow, their inferred type is the +primitive that it belongs to. Thus, the number 42 has the inferred type of +number. You can see this when you use typeof.

    1let num1 = 42;2let num2: typeof num1 = 3.14;    // Works!3
    +4let bool1 = true;5let bool2: typeof bool1 = false; // Works!6
    +7let str1 = 'hello';8let str2: typeof str1 = 'world'; // Works!

    However, this only happens with the inferred type. If you specify the literal +type, it will be used in typeof.

    1let num1: 42 = 42;2let num2: typeof num1 = 3.14;    // Error!
    3 +4let bool1: true = true;5let bool2: typeof bool1 = false; // Error!
    6 +7let str1: 'hello' = 'hello';8let str2: typeof str1 = 'world'; // Error!
    2:25-2:28: Cannot assign `3.14` to `num2` because number [1] is incompatible with number literal `42` [2]. [incompatible-type]
    5:27-5:31: Cannot assign `false` to `bool2` because boolean [1] is incompatible with boolean literal `true` [2]. [incompatible-type]
    8:25-8:31: Cannot assign `'world'` to `str2` because string [1] is incompatible with string literal `hello` [2]. [incompatible-type]

    typeof inherits behaviors of other types

    There are many different types in Flow, some of these types behave differently +than others. These differences make sense for that particular type but not for +others.

    When you use typeof, you're inserting another type with all of its behaviors. +This can make typeof seem inconsistent where it is not.

    For example, if you use typeof with a class you need to remember that classes +are nominally typed instead of structurally typed. So that two classes with +the same exact shape are not considered equivalent.

    1class MyClass {2  method(val: number) { /* ... */ }3}4
    +5class YourClass {6  method(val: number) { /* ... */ }7}8
    +9let test1: typeof MyClass = YourClass; // Error!
    10let test2: typeof MyClass = MyClass; // Works!
    9:29-9:37: Cannot assign `YourClass` to `test1` because `YourClass` [1] is incompatible with `MyClass` [2]. [incompatible-type]
    + + + + \ No newline at end of file diff --git a/en/docs/types/unions/index.html b/en/docs/types/unions/index.html new file mode 100644 index 00000000000..fd55d9b7a1b --- /dev/null +++ b/en/docs/types/unions/index.html @@ -0,0 +1,63 @@ + + + + + +Unions | Flow + + + + + + + + + + + + + + +
    +

    Unions

    Sometimes it's useful to create a type which is one of a set of other +types. For example, you might want to write a function which accepts a set of +primitive value types. For this Flow supports union types.

    1function toStringPrimitives(value: number | boolean | string): string {2  return String(value);3}4
    +5toStringPrimitives(1);       // Works!6toStringPrimitives(true);    // Works!7toStringPrimitives('three'); // Works!8
    +9toStringPrimitives({prop: 'val'}); // Error!
    10toStringPrimitives([1, 2, 3, 4, 5]); // Error!
    9:20-9:32: Cannot call `toStringPrimitives` with object literal bound to `value` because: [incompatible-call] Either object literal [1] is incompatible with number [2]. Or object literal [1] is incompatible with boolean [3]. Or object literal [1] is incompatible with string [4].
    10:20-10:34: Cannot call `toStringPrimitives` with array literal bound to `value` because: [incompatible-call] Either array literal [1] is incompatible with number [2]. Or array literal [1] is incompatible with boolean [3]. Or array literal [1] is incompatible with string [4].

    Union type syntax

    Union types are any number of types which are joined by a vertical bar |.

    Type1 | Type2 | ... | TypeN

    You may also add a leading vertical bar which is useful when breaking union +types onto multiple lines.

    type Foo =
    | Type1
    | Type2
    | ...
    | TypeN

    Each of the members of a union type can be any type, even another union type.

    1type Numbers = 1 | 2;2type Colors = 'red' | 'blue'3
    +4type Fish = Numbers | Colors;

    If you have enabled Flow Enums, they may be an alternative to unions of literal types.

    Union shorthands

    The union of some type T with null or void is common, so we provide a shorthand called maybe types, by using the ? prefix. The type ?T is equivalent to T | null | void:

    1function maybeString(x: ?string) { /* ... */ }2maybeString('hi'); // Works!3maybeString(null); // Works!4maybeString(undefined); // Works!

    The union of every single type that exists is the mixed type:

    1function everything(x: mixed) { /* ... */ }2everything(1); // Works!3everything(true); // Works!4everything(null); // Works!5everything({foo: 1}); // Works!6everything(new Error()); // Works!

    Unions & Refinements

    When you have a value which is a union type it's often useful to break it apart +and handle each individual type separately. With union types in Flow you can +refine the value down to a single type.

    For example, if we have a value with a union type that is a number, a +boolean, or a string, we can treat the number case separately by using +JavaScript's typeof operator.

    1function toStringPrimitives(value: number | boolean | string) {2  if (typeof value === 'number') {3    return value.toLocaleString([], {maximumSignificantDigits: 3}); // Works!4  }5  // ...6}

    By checking the typeof our value and testing to see if it is a number, Flow +knows that inside of that block it is only a number. We can then write code +which treats our value as a number inside of that block.

    Union types requires one in, but all out

    When calling a function that accepts a union type we must pass in one of +those types. But inside of the function we are required to handle all of +the possible types.

    Let's rewrite the function to handle each type individually using refinements.

    1function toStringPrimitives(value: number | boolean | string): string {2  if (typeof value === 'number') {3    return String(value);4  } else if (typeof value === 'boolean') {5    return String(value);6  }7  return value; // If we got here, it's a `string`!8}

    If we do not handle each possible type of our value, Flow will give us an error:

    1function toStringPrimitives(value: number | boolean | string): string {2  if (typeof value === 'number') {3    return String(value);4  }5  return value; // Error!
    6}
    5:10-5:14: Cannot return `value` because boolean [1] is incompatible with string [2]. [incompatible-return]

    Disjoint Object Unions

    There's a special type of union in Flow known as a "disjoint object union" which can +be used with refinements. These disjoint object unions are +made up of any number of object types which are each tagged by a single property.

    For example, imagine we have a function for handling a response from a server +after we've sent it a request. When the request is successful, we'll get back +an object with a type property set to 'success' and a value that we've +updated.

    {type: 'success', value: 23}

    When the request fails, we'll get back an object with type set to 'error' +and an error property describing the error.

    {type: 'error', error: 'Bad request'}

    We can try to express both of these objects in a single object type. However, +we'll quickly run into issues where we know a property exists based on the +type property but Flow does not.

    1type Response = {2  type: 'success' | 'error',3  value?: number,4  error?: string5};6
    +7function handleResponse(response: Response) {8  if (response.type === 'success') {9    const value: number = response.value; // Error!
    10 } else {11 const error: string = response.error; // Error!
    12 }13}
    9:27-9:40: Cannot assign `response.value` to `value` because undefined [1] is incompatible with number [2]. [incompatible-type]
    11:27-11:40: Cannot assign `response.error` to `error` because undefined [1] is incompatible with string [2]. [incompatible-type]

    Trying to combine these two separate types into a single one will only cause us +trouble.

    Instead, if we create a union type of both object types, Flow will be able to +know which object we're using based on the type property.

    1type Response =2  | {type: 'success', value: 23}3  | {type: 'error', error: string};4
    +5function handleResponse(response: Response) {6  if (response.type === 'success') {7    const value: number = response.value; // Works!8  } else {9    const error: string = response.error; // Works!10  }11}

    In order to use this pattern, there must be a key that is in every object in your union (in our example above, type), +and every object must set a different literal type for that key (in our example, the string 'success', and the string 'error'). +You can use any kind of literal type, including numbers and booleans.

    Disjoint object unions with exact types

    Disjoint unions require you to use a single property to distinguish each object +type. You cannot distinguish two different inexact objects by different properties.

    1type Success = {success: true, value: boolean, ...};2type Failed  = {error: true, message: string, ...};3
    +4function handleResponse(response:  Success | Failed) {5  if (response.success) {6    const value: boolean = response.value; // Error!
    7 }8}
    6:37-6:41: Cannot get `response.value` because property `value` is missing in object type [1]. [prop-missing]

    This is because in Flow it is okay to pass an object value with more properties +than the inexact object type expects (because of width subtyping).

    1type Success = {success: true, value: boolean, ...};2type Failed  = {error: true, message: string, ...};3
    +4function handleResponse(response:  Success | Failed) {5  // ...6}7
    +8handleResponse({9  success: true,10  error: true,11  value: true,12  message: 'hi'13});

    Unless the objects somehow conflict with one another there is no way to +distinguish them.

    However, to get around this you could use exact object types.

    1type Success = {success: true, value: boolean};2type Failed  = {error: true, message: string};3
    +4type Response = Success | Failed;5
    +6function handleResponse(response: Response) {7  if (response.success) {8    const value: boolean = response.value;9  } else {10    const message: string = response.message;11  }12}

    With exact object types, we cannot have additional properties, so the objects +conflict with one another and we are able to distinguish which is which.

    + + + + \ No newline at end of file diff --git a/en/docs/types/utilities/index.html b/en/docs/types/utilities/index.html new file mode 100644 index 00000000000..5b1a86178ec --- /dev/null +++ b/en/docs/types/utilities/index.html @@ -0,0 +1,116 @@ + + + + + +Utility Types | Flow + + + + + + + + + + + + + + +
    +

    Utility Types

    Flow provides a set of utility types to operate on other types to create new types.

    $Keys<T>

    You can extract the type of the keys from an object type. Typically this will be a union of string literal types:

    1const countries = {2  US: "United States",3  IT: "Italy",4  FR: "France"5};6
    +7type Country = $Keys<typeof countries>;8
    +9const italy: Country = 'IT'; // Works10const nope: Country = 'nope'; // Error!
    10:23-10:28: Cannot assign `'nope'` to `nope` because property `nope` is missing in object literal [1]. [prop-missing]

    In the example above, the type of Country is equivalent to type Country = 'US' | 'IT' | 'FR', but Flow was able to extract it from the keys of countries.

    If you want to create an enum type, Flow Enums might be a better fit for your use-case.

    $Values<T>

    $Values<T> represents the union type of all the value types of the enumerable properties in an object type:

    1type Props = {2  name: string,3  age: number,4};5
    +6// The following two types are equivalent:7type PropValues = string | number;8type Prop$Values = $Values<Props>;9
    +10const name: Prop$Values = 'Jon';  // Works11const age: Prop$Values = 42;  // Works12const fn: Prop$Values = true; // Error!
    12:25-12:28: Cannot assign `true` to `fn` because: [incompatible-type] Either boolean [1] is incompatible with string [2]. Or boolean [1] is incompatible with number [3].

    Note that using $Values on the typeof an object literal will result in a type more general than you might expect:

    1const obj = {2  foo: 1,3  bar: 2,4};5
    +6function acceptsValues(x: $Values<typeof obj>) { /* ... */ }7
    +8acceptsValues(1); // Works9acceptsValues(3); // Works, because the type was interpreted as `number`.

    This behavior changes if you use Object.freeze on the object literal expression:

    1const obj = Object.freeze({2  foo: 1,3  bar: 2,4});5
    +6function acceptsValues(x: $Values<typeof obj>) { /* ... */ }7
    +8acceptsValues(1); // Works9acceptsValues(3); // Error! Because the type was interpreted as `1 | 2`.
    9:15-9:15: Cannot call `acceptsValues` with `3` bound to `x` because number [1] is incompatible with literal union [2]. [incompatible-call]

    If you want to create an enum type, Flow Enums might be a better fit for your use-case.

    $ReadOnly<T>

    $ReadOnly<T> is a type that represents the read-only version of a given object type +or tuple type T (support for tuples is for Flow 0.212). +A read-only object type is an object type whose keys are all read-only. +Similarly, a read-only tuple is one where each element is read-only.

    This means that the following are equivalent:

    1type ReadOnlyObj = {2  +key: number,  // read-only field, marked by the `+` annotation3};4type ReadOnlyTuple = [+foo: number];

    1type ReadOnlyObj = $ReadOnly<{2  key: number,3}>;4type ReadOnlyTuple = $ReadOnly<[number]>;

    This is useful when you need to use a read-only version of an object type you've already defined, without manually having to re-define and annotate each key as read-only. For example:

    1type Props = {2  name: string,3  age: number,4};5
    +6type ReadOnlyProps = $ReadOnly<Props>;7
    +8function render(props: ReadOnlyProps) {9  const {name, age} = props;  // Works10  props.age = 42;             // Error!
    11}
    10:9-10:11: Cannot assign `42` to `props.age` because property `age` is not writable. [cannot-write]

    Additionally, other utility types, such as $ObjMap<T>, may strip any read/write annotations, so $ReadOnly<T> is a handy way to quickly make the object read-only again after operating on it:

    1type Obj = {2  +key: number,3};4
    +5type MappedObj = $ReadOnly<$ObjMap<Obj, <T>(T) => Array<T>>> // Still read-only

    The $ReadOnly utility works on object and tuple types. +If you want to make other types read-only, you can use one of the following:

    • Array<T> -> $ReadOnlyArray<T>
    • Set<T> -> $ReadOnlySet<T>
    • Map<K, V> -> $ReadOnlyMap<K, V>
    • WeakSet<T> -> $ReadOnlyWeakSet<T>
    • WeakMap<K, V> -> $ReadOnlyWeakMap<K, V>

    Partial<T> 0.201

    This utility converts all of an object or interface's named fields to be optional, +while maintaining all the object's other properties (e.g. exactness, variance). +Use this utility instead of $Shape.

    Since Flow 0.212, it also converts all of a tuple type's elements to be optional.

    Example for objects:

    1type Person = {2  name: string,3  age: number,4};5type PartialPerson = Partial<Person>;6// Above equivalent to `{name?: string, age?: number}`7
    +8const a: PartialPerson = {}; // OK9const b: PartialPerson = {name: 'George'}; // OK10const c: PartialPerson = {name: 'George', age: 123}; // OK11
    +12(c: Person); // ERROR: `PersonDetails` is not a `Person` (unlike with `$Shape`)
    12:2-12:2: Cannot cast `c` to `Person` because undefined [1] is incompatible with number [1] in property `age`. [incompatible-cast]
    12:2-12:2: Cannot cast `c` to `Person` because undefined [1] is incompatible with string [1] in property `name`. [incompatible-cast]

    For tuples:

    1type AllRequired = [number, string];2([]: Partial<AllRequired>); // OK: like `[a?: number, b?: string]` now

    A object or tuple of type T cannot be supplied to Partial<T>, due to mutability. You can resolve this by making the object read-only:

    1type Person = {2  name: string,3  age: number,4};5
    +6const person: Person = {name: 'George', age: 123};7
    +8function noPerson(o: Partial<Person>) {9  // Can mutate:10  o.name = undefined;11}12noPerson(person); // Error!
    13 +14function okPerson(o: $ReadOnly<Partial<Person>>) {15 // Can't mutate - it's read-only!16}17okPerson(person); // Works
    12:10-12:15: Cannot call `noPerson` with `person` bound to `o` because undefined [1] is incompatible with number [1] in property `age`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-call]
    12:10-12:15: Cannot call `noPerson` with `person` bound to `o` because undefined [1] is incompatible with string [1] in property `name`. This property is invariantly typed. See https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number. [incompatible-call]

    Note: Up until Flow version 0.201, this utility type was named $Partial.

    Required<T> 0.201

    The Required utility type is the opposite of Partial: +it converts all of an object or interface’s optional fields to be required.

    Since Flow 0.212, it also converts all of a tuple type's elements to be required.

    Example for objects:

    1type PartialPerson = {2  name?: string,3  age?: number,4};5type Person = Required<PartialPerson>;6// Above equivalent to `{name: string, age: number}`7
    +8const a: Person = {name: 'George', age: 123}; // OK9const b: Person = {age: 123}; // ERROR: missing `name` property
    9:19-9:28: Cannot assign object literal to `b` because property `name` is missing in object literal [1] but exists in `PartialPerson` [2]. [prop-missing]

    For tuples:

    1type AllOptional = [a?: number, b?: string];2([]: Required<AllOptional>); // ERROR: like `[a: number, b: string]` now
    2:2-2:3: Cannot cast array literal to required of `AllOptional` because empty array literal [1] has 0 elements but `AllOptional` [2] has 2 elements. [invalid-tuple-arity]

    ReturnType<F> 0.209

    This utility type extracts the return type from a given function type.

    1declare function f(s: string, n: number): boolean;2type Bool = ReturnType<typeof f>;3(true: Bool);4(1: Bool); // Error: number is not boolean
    4:2-4:2: Cannot cast `1` to `Bool` because number [1] is incompatible with boolean [2]. [incompatible-cast]

    Parameters<F> 0.209

    This utility type extracts the parameter types from a given function type into a tuple type.

    1declare function f(s: string, n: number): boolean;2type Tuple = Parameters<typeof f>; // Evaluates to [string, number]3('s': Tuple[0]);4(1: Tuple[1]);5(false: Tuple[2]); // Error: tuple type only has two elements
    5:15-5:15: Cannot access number literal `2` on `Tuple` because tuple type [1] only has 2 elements, so index 2 is out of bounds. [invalid-tuple-index]

    Exclude<T, U> 0.209

    This utility type excludes all subtypes of U from T.

    1type T = Exclude<1 | 2 | 3 | 4, 1 | 3>; // evaluates to 2 | 42(1: T); // error
    3(2: T); // ok4(3: T); // error
    5(4: T); // ok
    2:2-2:2: Cannot cast `1` to `T` because number [1] is incompatible with literal union [2]. [incompatible-cast]
    4:2-4:2: Cannot cast `3` to `T` because number [1] is incompatible with literal union [2]. [incompatible-cast]

    Extract<T, U> 0.209

    This utility type retains only subtypes of U from T.

    1declare class Car {}2declare class Animal {}3declare class Dog extends Animal {}4declare class Cat extends Animal {}5type T = Extract<Car | Dog | Cat, Animal>; // evaluates to Dog | Cat6(new Car(): T); // error
    7(new Dog(): T); // ok8(new Cat(): T); // ok
    6:2-6:10: Cannot cast `new Car()` to `T` because: [incompatible-cast] Either `Car` [1] is incompatible with `Dog` [2]. Or `Car` [1] is incompatible with `Cat` [3].

    ThisParameterType<F> 0.209

    This utility type extracts the type of the this parameter of a given function type.

    1type T = ThisParameterType<(this: number, bar: string) => void>; // Evaluates to number2('1': T); // error
    3(2: T); // ok
    2:2-2:4: Cannot cast `'1'` to `T` because string [1] is incompatible with number [2]. [incompatible-cast]

    OmitThisParameter<F> 0.209

    This utility type removes the this parameter from a given function type.

    1type HasThisParamFun = (this: number, bar: string) => void;2type NoThisParamFun = OmitThisParameter<HasThisParamFun> // Evaluates to (bar: string) => void3declare const hasThisParam: HasThisParamFun;4declare const noThisParam: NoThisParamFun;5
    +6hasThisParam(''); // error: global object is not number
    7noThisParam(''); // ok: no this type requirement
    6:1-6:12: Cannot call `hasThisParam` because global object [1] is incompatible with number [2]. [incompatible-call]

    Pick<O, Keys> 0.211

    This utility type allows you to generate an object type using a subset of the fields from +another object type.

    1type O = {foo: number, bar: string, baz: boolean};2type FooAndBar = Pick<O, 'foo' | 'bar'>;3
    +4declare const fooAndBar: FooAndBar;5fooAndBar.baz; // error: baz is missing
    6(fooAndBar.foo: number); // ok7(fooAndBar.bar: string); // ok
    5:11-5:13: Cannot get `fooAndBar.baz` because property `baz` (did you mean `bar`?) is missing in `Pick` [1]. [prop-missing]

    Omit<O, Keys> 0.211

    This utility type allows you to generate an object type by omitting the specified fields from +another object type.

    1type O = {foo: number, bar: string, baz: boolean};2type JustBaz= Omit<O, 'foo' | 'bar'>;3
    +4declare const justBaz: JustBaz;5(justBaz.baz: boolean); // ok6justBaz.foo; // error: missing foo
    7justBaz.bar; // error: missing bar
    6:9-6:11: Cannot get `justBaz.foo` because property `foo` is missing in `Pick` [1]. [prop-missing]
    7:9-7:11: Cannot get `justBaz.bar` because property `bar` (did you mean `baz`?) is missing in `Pick` [1]. [prop-missing]

    Record<Keys, Type> 0.211

    This utility type allows you to generate an object type from a union of keys with the given +Type for each field.

    1type NumberRecord = Record<'foo' | 'bar', number>;2declare const numberRecord: NumberRecord;3(numberRecord.foo: number); // ok4(numberRecord.bar: number); // ok5numberRecord.baz; // error
    5:14-5:16: Cannot get `numberRecord.baz` because property `baz` (did you mean `bar`?) is missing in `Record` [1]. [prop-missing]

    Note that Record is different than using an indexer:

    1type NumberRecord = Record<'foo' | 'bar', number>;2type IndexedObject = {['foo' | 'bar']: number};3
    +4// Record uses explicit fields, which means they are all required5const rec: Record = {}; // error
    6// Indexers do not have this same requirement7const idx: IndexedObject = {}; // no error
    5:12-5:17: Cannot use `Record` [1] without 2 type arguments. [missing-type-arg]

    $Exact<T>

    You can use $Exact to make an inexact object type exact:

    1type InexactUser = {name: string, ...};2type ExactUser = $Exact<InexactUser>;3
    +4const user = {name: 'John Wilkes Booth'};5// These will both be satisfied because they are equivalent:6const a: ExactUser = user;7const b: {name: string} = user;

    This is an utility type to avoid, as it's clearer and more concinse to start off with an exact object type and make it inexact using object type spread +(if you wish to have both inexact and exact variants of one object type):

    1type ExactUser = {name: string};2type InexactUser = {...ExactUser, ...};3
    +4const user = {name: 'John Wilkes Booth'};5const a: ExactUser = user;

    $Diff<A, B>

    As the name hints, $Diff<A, B> is the type representing the set difference of A and B, i.e. A \ B, where A and B are both object types. Here's an example:

    1type Props = {name: string, age: number, ...};2type DefaultProps = {age: number};3type RequiredProps = $Diff<Props, DefaultProps>;4
    +5function setProps(props: RequiredProps) {6  // ...7}8
    +9setProps({name: 'foo'}); // Works10setProps({name: 'foo', age: 42, baz: false}); // Works, you can pass extra props too11setProps({age: 42}); // Error! `name` is required
    11:10-11:18: Cannot call `setProps` with object literal bound to `props` because property `name` is missing in object literal [1] but exists in `Props` [2]. [prop-missing]

    As you may have noticed, the example is not a random one. +$Diff is exactly what the React definition file uses to define the type of the props accepted by a React Component.

    Note that $Diff<A, B> will error if the object you are removing properties from does not have the property being removed, i.e. if B has a key that doesn't exist in A:

    1type Props = {name: string, age: number};2type DefaultProps = {age: number, other: string};3type RequiredProps = $Diff<Props, DefaultProps>; // Error!
    4 +5function setProps(props: RequiredProps) {6 props.name;7 // ...8}
    3:28-3:32: Cannot instantiate `$Diff` because undefined property `other` [1] is incompatible with string [2]. [incompatible-type]

    As a workaround, you can specify the property not present in A as optional. For example:

    1type A = $Diff<{}, {nope: number}>; // Error!
    2type B = $Diff<{}, {nope: number | void}>; // Works3 +4const a: A = {};5const b: B = {};
    1:16-1:17: Cannot instantiate `$Diff` because undefined property `nope` [1] is incompatible with number [2]. [incompatible-type]

    $Rest<A, B>

    $Rest<A, B> is the type that represents the runtime object rest operation, e.g.: const {foo, ...rest} = obj, where A and B are both object types. +The resulting type from this operation will be an object type containing A's own properties that are not own properties in B. +In flow, we treat all properties on exact object types as own. +For inexact objects, a property may or may not be own.

    For example:

    1type Props = {name: string, age: number};2
    +3const props: Props = {name: 'Jon', age: 42};4const {age, ...otherProps} = props;5(otherProps: $Rest<Props, {age: number}>);6otherProps.age;  // Error!
    6:12-6:14: Cannot get `otherProps.age` because property `age` is missing in rest of object pattern [1]. [prop-missing]

    The main difference with $Diff<A, B>, is that $Rest<A, B> aims to represent the true runtime rest operation, +which implies that exact object types are treated differently in $Rest<A, B>. +For example, $Rest<{n: number}, {...}> will result in {n?: number} because an in-exact empty object may have an n property, +while $Diff<{n: number}, {...}> will result in {n: number}.

    $NonMaybeType<T>

    $NonMaybeType<T> converts a type T to a non-maybe type. +In other words, the values of $NonMaybeType<T> are the values of T except for null and undefined.

    1type MaybeName = ?string;2type Name = $NonMaybeType<MaybeName>;3
    +4('Gabriel': MaybeName); // Works5(null: MaybeName); // Works6('Gabriel': Name); // Works7(null: Name); // Error! `null` can't be annotated as Name because Name is not a maybe type
    7:2-7:5: Cannot cast `null` to `Name` because null [1] is incompatible with string [2]. [incompatible-cast]

    $KeyMirror<O>

    $KeyMirror<Obj> is a special case of $ObjMapi<Obj, F>, when F is the identity +function type, ie. <K>(K) => K. In other words, it maps each property of an object +to the type of the property key. Instead of writing $ObjMapi<Obj, <K>(K) => K>, +you can write $KeyMirror<Obj>. For example:

    const obj = {
    a: true,
    b: 'foo'
    };

    declare function run<O: {...}>(o: O): $KeyMirror<O>;

    // newObj is of type {a: 'a', b: 'b'}
    const newObj = run(obj);

    (newObj.a: 'a'); // Works
    (newObj.b: 'a'); // Error! String 'b' is incompatible with 'a'

    Tip: Prefer using $KeyMirror instead of $ObjMapi (if possible) to fix certain +kinds of [invalid-exported-annotation] errors.

    $TupleMap<T, F>

    $TupleMap<T, F> takes an iterable type T (e.g.: Tuple or Array), and a function type F, +and returns the iterable type obtained by mapping the type of each value in the iterable with the provided function type F. +This is analogous to the JavaScript function map.

    Following our example from $ObjMap<T>, let's assume that run takes an array of functions, instead of an object, and maps over them returning an array of the function call results. We could annotate its return type like this:

    1// Function type that takes a `() => V` and returns a `V` (its return type)2type ExtractReturnType = <V>(() => V) => V3
    +4function run<A, I: Array<() => A>>(iter: I): $TupleMap<I, ExtractReturnType> {5  return iter.map(fn => fn());6}7
    +8const arr = [() => 'foo', () => 'bar'];9(run(arr)[0]: string); // Works10(run(arr)[1]: string); // Works11(run(arr)[1]: boolean); // Error!
    11:2-11:12: Cannot cast `run(...)[1]` to boolean because string [1] is incompatible with boolean [2]. [incompatible-cast]

    Class<T>

    Given a type T representing instances of a class C, the type Class<T> is the type of the class C. +For example:

    1class Store {}2class ExtendedStore extends Store {}3class Model {}4
    +5function makeStore(storeClass: Class<Store>) {6  return new storeClass();7}8
    +9(makeStore(Store): Store);10(makeStore(ExtendedStore): Store);11(makeStore(Model): Model); // Error!
    11:2-11:17: Cannot cast `makeStore(...)` to `Model` because `Store` [1] is incompatible with `Model` [2]. [incompatible-cast]
    11:12-11:16: Cannot call `makeStore` with `Model` bound to `storeClass` because `Model` [1] is incompatible with `Store` [2]. [incompatible-call]

    For classes that take type parameters, you must also provide the parameter. For example:

    1class ParamStore<T> {2  constructor(data: T) {}3}4
    +5function makeParamStore<T>(storeClass: Class<ParamStore<T>>, data: T): ParamStore<T> {6  return new storeClass(data);7}8(makeParamStore(ParamStore, 1): ParamStore<number>);9(makeParamStore(ParamStore, 1): ParamStore<boolean>); // Error!
    9:29-9:29: Cannot call `makeParamStore` with `1` bound to `data` because number [1] is incompatible with boolean [2]. [incompatible-call]

    $Exports<T>

    The following are functionally equivalent

    import typeof * as T from 'my-module';
    type T = $Exports<'my-module'>;

    The advantage of the $Exports syntax is that you can export the type on the same line

    export type T = $Exports<'my-module'>;

    where as you would otherwise need to export an alias in the import typeof case

    import typeof * as T from 'my-module';
    export type MyModuleType = T;

    Deprecated utility types

    $PropertyType<T, k>

    WARNING: $PropertyType is deprecated as of Flow version 0.155, and will be removed in a future version of Flow.

    $PropertyType<T, 'k'> is equivalent to the T['k'] indexed access type.

    $ElementType<T, K>

    WARNING: $ElementType is deprecated as of Flow version 0.155, and will be removed in a future version of Flow.

    $ElementType<T, K> is equivalent to the T[K] indexed access type.

    $Partial 0.202

    A former alias of Partial. Support was removed in version 0.203.

    $Shape<T>

    NOTE: Deprecated! This utility is unsafe - please use Partial documented above to make all of an object's fields optional.

    A variable of type $Shape<T>, where T is some object type, can be assigned objects o +that contain a subset of the properties included in T. For each property p: S of T, +the type of a potential binding of p in o must be compatible with S.

    For example

    1type Person = {2  age: number,3  name: string,4}5type PersonDetails = $Shape<Person>;
    6 +7const person1: Person = {age: 28}; // ERROR: missing `name`
    8const person2: Person = {name: 'a'}; // ERROR: missing `age`
    9const person3: PersonDetails = {age: 28}; // OK10const person4: PersonDetails = {name: 'a'}; // OK11const person5: PersonDetails = {age: 28, name: 'a'}; // OK12const person6: PersonDetails = {age: '28'}; // ERROR: string is incompatible with number
    5:22-5:35: The utility type `$Shape` is deprecated, use `Partial` instead. [deprecated-utility]
    7:25-7:33: Cannot assign object literal to `person1` because property `name` is missing in object literal [1] but exists in `Person` [2]. [prop-missing]
    8:25-8:35: Cannot assign object literal to `person2` because property `age` is missing in object literal [1] but exists in `Person` [2]. [prop-missing]

    NOTE: $Shape<T> is not equivalent to T with all its fields marked as optional. +In particular, Flow unsoundly allows $Shape<T> to be used as a T in several +contexts. For example in

    const personShape: PersonDetails = {age: 28};
    (personShape: Person);

    Flow will unsoundly allow this last cast to succeed.

    It is also not equivalent to itself in some contexts:

    1function f<T>(input: $Shape<T>): $Shape<T> {
    2 return input; // ERROR: `T` is incompatible with `$Shape` of `T`3}
    1:22-1:30: The utility type `$Shape` is deprecated, use `Partial` instead. [deprecated-utility]
    1:34-1:42: The utility type `$Shape` is deprecated, use `Partial` instead. [deprecated-utility]

    This utility type is deprecated and will be deleted in the future - +use Partial instead.

    $Call<F, T...>

    NOTE: Deprecated! This utility is deprecated as of Flow version 0.208 - please use Conditional Types or Indexed Access Types to extract types instead.

    $Call<F, T...> is a type that represents the result of calling the given function type F with 0 or more arguments T.... +This is analogous to calling a function at runtime (or more specifically, it's analogous to calling Function.prototype.call), but at the type level; this means that function type calls happens statically, i.e. not at runtime.

    Let's see a couple of examples:

    1// Takes an object type, returns the type of its `prop` key2type ExtractPropType = <T>({prop: T, ...}) => T;3type Obj = {prop: number};4type PropType = $Call<ExtractPropType, Obj>;  // Call `ExtractPropType` with `Obj` as an argument5type Nope = $Call<ExtractPropType, {nope: number}>;  // Error! Argument doesn't match `Obj`.
    6 +7(5: PropType); // Works8(true: PropType); // Error! PropType is a number
    5:36-5:49: Cannot instantiate `$Call` because property `prop` is missing in object type [1] but exists in object type [2] in the first argument. [prop-missing]
    8:2-8:5: Cannot cast `true` to `PropType` because boolean [1] is incompatible with number [2]. [incompatible-cast]
    1// Takes a function type, and returns its return type2type ExtractReturnType = <R>(() => R) => R;3type Fn = () => number;4type ReturnType = $Call<ExtractReturnType, Fn>;5
    +6(5: ReturnType);  // Works7(true: ReturnType);  // Error! ReturnType is a number
    7:2-7:5: Cannot cast `true` to `ReturnType` because boolean [1] is incompatible with number [2]. [incompatible-cast]

    $Call can be very powerful because it allows you to make calls in type-land that you would otherwise have to do at runtime. +The type-land calls happen statically and will be erased at runtime.

    1// Getting return types:2function getFirstValue<V>(map: Map<string, V>): ?V {3  for (const [key, value] of map.entries()) {4    return value;5  }6  return null;7}8
    +9// Using $Call, we can get the actual return type of the function above:10type Value = $Call<typeof getFirstValue, Map<string, number>>;11
    +12(5: Value);13(true: Value);  // Error! Value is a `number`
    14 +15// We could generalize it further:16type GetMapValue<M> =17 $Call<typeof getFirstValue, M>;18 +19(5: GetMapValue<Map<string, number>>);20(true: GetMapValue<Map<string, boolean>>);21(true: GetMapValue<Map<string, number>>); // Error! value is a `number`
    13:2-13:5: Cannot cast `true` to `Value` because boolean [1] is incompatible with number [2]. [incompatible-cast]
    21:2-21:5: Cannot cast `true` to `GetMapValue` because boolean [1] is incompatible with number [2]. [incompatible-cast]

    $ObjMap<T, F>

    NOTE: Deprecated! This utility is deprecated as of Flow version 0.211- please use Mapped Types instead.

    ObjMap<T, F> takes an object type T, and a function type F, and returns the object type obtained by mapping the type of each value in the object with the provided function type F. In other words, $ObjMap will call (at the type level) the given function type F for every property value type in T, and return the resulting object type from those calls.

    Let's see an example. Suppose you have a function called run that takes an object of thunks (functions in the form () => A) as input:

    1function run<O: {[key: string]: (...$ReadOnlyArray<mixed>) => mixed}>(o: O): $FlowFixMe {2  return Object.keys(o).reduce<{[string]: (...$ReadOnlyArray<mixed>) => mixed}>(3    (acc, k) => ({...acc, [(k: string)]: o[k]()}),4    {},5  );6}

    The function's purpose is to run all the thunks and return an object made of values. What's the return type of this function?

    The keys are the same, but the values have a different type, namely the return type of each function. +At a value level (the implementation of the function) we're essentially mapping over the object to produce new values for the keys. +How to express this at a type level?

    This is where ObjMap<T, F> comes in handy

    1// let's write a function type that takes a `() => V` and returns a `V` (its return type)2type ExtractReturnType = <V>(() => V) => V;3
    +4declare function run<O: {[key: string]: (...$ReadOnlyArray<mixed>) => mixed}>(o: O): $ObjMap<O, ExtractReturnType>;5
    +6const o = {7  a: () => true,8  b: () => 'foo'9};10
    +11(run(o).a: boolean); // Works12(run(o).b: string);  // Works13(run(o).b: boolean); // Error! `b` is a string
    14run(o).c; // Error! `c` was not in the original object
    13:2-13:9: Cannot cast `run(...).b` to boolean because string [1] is incompatible with boolean [2]. [incompatible-cast]
    14:8-14:8: Cannot get `run(...).c` because property `c` is missing in object type [1]. [prop-missing]

    This is extremely useful for expressing the return type of functions that manipulate objects values. +You could use a similar approach (for instance) to provide the return type of bluebird's Promise.props function, +which is like Promise.all but takes an object as input.

    Here's a possible declaration of this function, which is very similar to our first example:

    1declare function props<A, O: {[key: string]: A}>(promises: O): Promise<$ObjMap<O, typeof $await>>;2
    +3const promises = {a: Promise.resolve(42)};4props(promises).then(o => {5  (o.a: 42); // Works6  (o.a: 43); // Error! Flow knows it's 42
    7});
    6:4-6:6: Cannot cast `o.a` to number literal `43` because number [1] is incompatible with number literal `43` [2]. [incompatible-cast]

    $ObjMapi<T, F>

    NOTE: Deprecated! This utility is deprecated as of Flow version 0.211- please use Mapped Types instead.

    ObjMapi<T, F> is similar to ObjMap<T, F>. The difference is that function +type F will be called with both the key and value types of the elements of +the object type T, instead of just the value types. For example:

    1const o = {2  a: () => true,3  b: () => 'foo'4};5
    +6type ExtractReturnObjectType = <K, V>(K, () => V) => { k: K, v: V };7
    +8declare function run<O: {...}>(o: O): $ObjMapi<O, ExtractReturnObjectType>;9
    +10(run(o).a: {k: 'a', v: boolean}); // Works11(run(o).b: {k: 'b', v: string});  // Works12(run(o).a: {k: 'b', v: boolean}); // Error! `a.k` is "a"
    13(run(o).b: {k: 'b', v: number}); // Error! `b.v` is a string
    14run(o).c; // Error! `c` was not in the original object
    12:2-12:9: Cannot cast `run(...).a` to object type because string literal `a` [1] is incompatible with string literal `b` [2] in property `k`. [incompatible-cast]
    13:2-13:9: Cannot cast `run(...).b` to object type because string [1] is incompatible with number [2] in property `v`. [incompatible-cast]
    14:8-14:8: Cannot get `run(...).c` because property `c` is missing in object type [1]. [prop-missing]

    $ObjMapConst<O, T>

    NOTE: Deprecated! This utility is deprecated as of Flow version 0.211- please use Mapped Types instead.

    $ObjMapConst<Obj, T> is a special case of $ObjMap<Obj, F>, when F is a constant +function type, e.g. () => T. Instead of writing $ObjMap<Obj, () => T>, you +can write $ObjMapConst<Obj, T>. For example:

    const obj = {
    a: true,
    b: 'foo'
    };

    declare function run<O: {...}>(o: O): $ObjMapConst<O, number>;

    // newObj is of type {a: number, b: number}
    const newObj = run(obj);

    (newObj.a: number); // Works
    (newObj.b: string); // Error! Property `b` is a number

    Tip: Prefer using $ObjMapConst instead of $ObjMap (if possible) to fix certain +kinds of [invalid-exported-annotation] errors.

    + + + + \ No newline at end of file diff --git a/en/docs/usage/index.html b/en/docs/usage/index.html new file mode 100644 index 00000000000..d1c5a37ac43 --- /dev/null +++ b/en/docs/usage/index.html @@ -0,0 +1,26 @@ + + + + + +Usage | Flow + + + + + + + + + + + + + + +
    +

    Usage

    Once you have installed Flow, you will want to get a feel of how to use Flow at the most basic level. For most new Flow projects, you will follow this general pattern:

    Initialize Your Project

    Preparing a project for Flow requires only one command:

    flow init

    Run this command at the top level of your project to create one, empty file called .flowconfig. At its most basic level, .flowconfig tells the Flow background process the root of where to begin checking Flow code for errors.

    And that is it. Your project is now Flow-enabled.

    It is common to have an empty .flowconfig file for your project. However, you can configure and customize Flow in many ways through options available to be added to .flowconfig.

    Run the Flow Background Process

    The core benefit to Flow is its ability to quickly check your code for errors. Once you have enabled your project for Flow, you can start the process that allows Flow to check your code incrementally and with great speed.

    flow status

    This command first starts a background process that will check all Flow files for errors. The background process continues running, monitoring changes to your code and checking those changes incrementally for errors.

    You can also type flow to accomplish the same effect as status is the default flag to the flow binary.

    Only one background process will be running at any given time, so if you run flow status multiple times, it will use the same process.

    To stop the background process, run flow stop.

    Prepare Your Code for Flow

    The Flow background process monitors all Flow files. However, how does it know which files are Flow files and, thus, should be checked? Placing the following before any code in a JavaScript file is the flag the process uses to answer that question.

    1// @flow

    This flag is in the form of a normal JavaScript comment annotated with @flow. The Flow background process gathers all the files with this flag and uses the type information available from all of these files to ensure consistency and error free programming.

    You can also use the form /* @flow */ for the flag as well.

    For files in your project without this flag, the Flow background process skips and ignores the code (unless you call flow check --all, which is beyond the scope of basic usage).

    Write Flow Code

    Now that all the setup and initialization is complete, you are ready to write actual Flow code. For each file that you have flagged with // @flow, you now have the full power of Flow and its type-checking available to you. Here is an example Flow file:

    1function foo(x: ?number): string {2  if (x) {3    return x;
    4 }5 return "default string";6}
    3:12-3:12: Cannot return `x` because number [1] is incompatible with string [2]. [incompatible-return]

    Notice the types added to the parameter of the function along with a return type at the end of the function. You might be able to tell from looking at this code that there is an error in the return type since the function can also return a number. However, you do not need to visually inspect the code since the Flow background process will be able to catch this error for you when you check your code.

    Check Your Code

    The great thing about Flow is that you can get near real-time feedback on the state of your code. At any point that you want to check for errors, just run:

    # equivalent to `flow status`
    flow

    The first time this is run, the Flow background process will be spawned and all of your Flow files will be checked. Then, as you continue to iterate on your project, the background process will continuously monitor your code such that when you run flow again, the updated result will be near instantaneous.

    For the code above, running flow will yield:

    3:12-3:12: Cannot return `x` because number is incompatible with string. [incompatible-return]
    + + + + \ No newline at end of file diff --git a/flow/master/flow.js b/flow/master/flow.js new file mode 100644 index 00000000000..adbb6480c39 --- /dev/null +++ b/flow/master/flow.js @@ -0,0 +1,52428 @@ +// Generated by js_of_ocaml +//# buildInfo:effects=false, kind=exe, use-js-string=true, version=5.1.1+git-v0.24.0-14437-g924766a +(function(a){typeof +globalThis!=="object"&&(this?b():(a.defineProperty(a.prototype,"_T_",{configurable:true,get:b}),_T_));function +b(){var +b=this||self;b.globalThis=b;delete +a.prototype._T_}}(Object));(function(gA){"use strict";var +zI=271,nP="on_StrLit",qW="renders",ai7=71127,If="tag_of_elt",nO="on_InlineInterface",aqf=65007,vu=273,qr=151,amu=66517,wX=" of ",a1n=376,atw=119980,a1m="read of ",aVE=" elements",b="<2>",Ie="??",aVD=857423934,SD=72163,z$="fail_builtin_or_symbol",aqe=71723,amt=183969,a1l="module.exports",aVC="Cannot implement ",atv=124903,zq=261,UY=241,ai6=120074,ai5="visit_ref",b5="type_guard_annotation",SC="sense",pl="on_Call",aqd=67897,sO=179,aVB="ENOTCONN",DJ=" on ",ams="isArray",aVA="%i",amr=43702,aYx="%s, (%s), (%s, %s)",lj=126,a4w="rev_bound_tparams",ai4=110947,Id="tag_of_unsoundness_kind",IN=") from location ",a4v="predicate_refinement_maps",fa="function_identifier",UX=119893,aVz="global object",aqc=70366,amq=65547,atu=43743,UW=-43,a1k=-9007199254740991.,t_=201,amp=69289,ai3="element ",ai2=70479,att=319,amo=11623,aqb=390,ats=69572,e$="tuple_spread_element",c2="component_type_rest_param",aVy="",nN="on_SpreadProp",ai1=42993,SB="Map.bal",a4u="o",aYw="])",zp="%F",UV=-32,b4="for_in_assignment_pattern",oB="on_TypeGuard",iU=103,aqa=12292,UU="Invalid ",aYv="is_global_undefined",xk="",RE=120597,c1="tuple_type",oA=170,ap$=67413,ag="%S",ap_="Assert_failure",sz=127343600,ai0="(%s)",oz="on_unsoundness_kind",a4t=325,aiZ=67646,aVx="EDESTADDRREQ",aYu="parse error",Ic=" Only elements of a component-syntax components can appear in renders. ",a4s="havoc_heap_refinements_using_name",atr="ENOTEMPTY",ap9="Zero",a4q=391,a4r="module reference",aiY=" or ",amn=70187,ap8=72160,Jd="React$ElementConfig",tS="annot_with_tparams",a4p="ENOMEM",HL="obj_type",amm=70312,Jc=281,vo="new",a4o="spread",aiX=66256,a1i=408,a1j=" takes more than one argument. See ",Tx=68296,a4n=404,aVw="hint_pred_kind",RD=126579,Ib="freeze",Tw=70107,fy=248,hO="on_type_annot",d4="union_type",Dm="the ",oy="on_EnumKind",c0="class_declaration",pk="on_prop",aiW=258357551,d3="optional_call",aVv="ETOOMANYREFS",a4m="ENOSYS",aVu="a string",a4l="unexpected expression pattern in param",atq="reading ",UT=11703,b3="object_property_type",aml=68023,a1h=328,IM="$ElementType",ap6=67669,ap7=8318,Tv="prefix",f0="this",a1g="ENODEV",aiV=126578,b2="if_consequent_statement",aVt=-696510241,SA=72967,nM="on_any_kind",iK=101,Sz="Variable ",ap5="buffer.ml",aiU=74649,rK=0xffff,Ia="$Iterable",a1f="// @flow",tL=175,r0="component",atp="===",d2="jsx_identifier",a4k="ENETDOWN",DX="%s%s",aiT=126633,ato=66965,a1e="\\t",b1="member_property_expression",ox="on_ReactElementPropsType",atn=101589,aiS=64274,pj="function",aiR=42954,amk=72191,ap4=66303,gb="set_acc",rZ="any_identifier",aiP=72144,aiQ="message",aVs="==",ap3=" but ",xy=-744106340,atm=43359,Ao="obj",aVr="ECONNABORTED",aYt="Error",hU="on_loc_annot",aiO=74879,Tu=120629,aVq="uninitialized-instance-property",aYs="Read the docs on Flow's multi-platform support for more information: ",gJ=") (",aiN="$Exports",Sy=126503,Tt=-690252370,a1d="&=",e_="pattern_number_literal",aiM=43470,ap2=77711,Ts=70302,aVp=353,amj="add_let_binding",t="@])",US=126515,aVn=3954798,aVo="element",a4j=394,ami=74751,amh="rmdir",cZ="for_in_statement",ap1=94177,wW=269,aYq="sketchy-null-string",aYr=12520,a1c="**=",atl=120126,Sx=": No such file or directory",e9="export_named_declaration_specifier",Dl=310,qq="annot",aYp="class_element_annotated",Sw=64319,na="on_UnresolvedName",aVm="add_pred_func_info",ap0=72847,RC=126590,aiL="visit_unit",aVl="_method",m$="on_mapped_type_optional_flag",z_="let",An=12288,pi="on_Any",li="/",pM="typeof",UR="config",Tr=68116,t2=182,H$="compare",a4i="env_snapshot_without_latest_refinements",a1b=417,sN="class",apZ=842685896,Tq=70281,lf=255,l9="key",amg=69955,apY=43587,aW="block",aVk="havoc_heap_refinements",apX=100351,aYo="module `%s`",Tp="ENOTDIR",aYn="import typeof",a="@ ",apW=43334,zH="fail_prop",d1="if_alternate_statement",b0="type_args",aYm="+=",cY="typeof_identifier",Sv=65595,zG=338,aYl="Unexpectedly encountered a location without a source",atk="add_declared_function_binding",apV=64286,q_="true",amf=69423,e8="catch_clause",Dk="asserts",l8=131,apU=-12,aVj="string `%s`",aiK=43887,ame=120779,atj="Object not synthesizable",sW=190,tK="hoist_annotations",a1a="ECONNREFUSED",aiJ="Cannot delete ",Su=-42,ow="on_ObjKeyMirror",ph="on_Partial",amd="BigInt",apT=12703,RB=126547,aYk="ENFILE",amc=11742,d0="infer_type",apS=65597,DI="Unix.Unix_error",amb=124911,aYj="to_map",a4h=805689508,ati=72959,aVi="inexact",To="opaque",e7="object_internal_slot_property_type",aVg="Fragment",aVh="Enum `",aVf="\\u%4x",IL=-883944824,aVe="importKind",cX="remote_identifier",HK="Cannot import ",aVd="instance_test",dZ="labeled_statement",ath="automatic",ama=120770,aYi=351,al$="exportKind",a4g="\\b",bZ="binary",atg="thisArg",al_=42511,aYh="React$FragmentType",bY="jsx_spread_attribute",aB="import",aVc=419,aYg="i",atf=69414,aVb=345,apR=19967,pg="on_Exports",H_=209,apQ=93823,ate=71903,w7=291,aVa="declare module",IK=539863042,a4f="ENOSPC",UQ="typeArguments",bW="type_identifier",bX="pattern_array_element_pattern",al9=125124,aYf="-?",t9="src/typing/type.ml",e6="object_call_property_type",aiI="abstract",al8="], [",aU_=402,aU$="interpreter",apP=123565,q5=186,m_="on_NoLowerWithUpper",cW="class_implements_interface",a0$="EINTR",al7=69749,a0_="Invalid exhaustive check: ",tJ=" to ",aYe="string `",aU9="start_refinement",al6=-61,dY="pattern_expression",a4e="new_entry",UP=65141,aiH=11694,cV="update_expression",aP="debugger",a09="ESRCH",atd=71352,al5=123627,St=64322,pf="on_NominalComponentDecl",RA=43471,Jb="Generator",Rz=126589,aiG=43784,nL="on_return_t",aYd="is_simple_object_destructuring",al4="unnecessary-optional-chain",aiF="graphql",atc=183983,hx="id",a08=369,aU8="defined",DH="finally",atb=72095,e5="as_expression",aU7="Placeholder",a4d="push_pred",aiE=110591,aU6="attributes",aYa="readable",aYb="typeof ",aYc=-10,a4c=1054678640,a4b=" `",al3=126543,rS="$call",apO=64316,ata=8454,aU5="EWOULDBLOCK",hQ="syntax_with_internal",a4a=-48266744,as$=68607,al2="src/int_conversions.ml",aX$="visit_new_expression",a3$="visit_conditional",UO="out",aiD=68799,aU4=383,nK="null",aU2="src/typing/statement.ml",aU3="import {",al1=72249,aU1=-608348336,rY=0x80,apN=66207,as_=43583,Ss=11735,sM="extends_in_infer_type",ou=158,ov="on_Symbol",as9=64911,a3_="",e4="jsx_attribute_name_namespaced",aiC="exact",HJ="!",al0=42539,zF="camlinternalOO.ml",cU="pattern_object_property_key",as8=8507,UN=120134,alY=120596,alZ=43002,IJ="while",Ja="protected",apM=43395,a39="v",hP="type_param_identifier",a07="EMLINK",alX="React$CloneElement",au="()",UM=8488,aX_=382,a38="sketchy-null-bool",aiB="React$CreateElement",nJ="on_Obj",a06=424,Sq=" for documentation",Sr="./",apL="push",I$="th",e3="for_of_left_declaration",Ry="Failure",apK=44031,pS="bigint",la=256,alW="!==",alV=73008,nI="on_Inter",as7=72283,UL=126500,a37="sketchy-null-number",UK=120127,bU="jsx_attribute_name",bV="for_statement_init",t1=564146209,a36=406,DG="case",bT="import_specifier",as6=64279,aiA=119974,bS="pattern_string_literal",II=" type ",aU0="!=",aX9="[LIB] %s",zo="enter_possibly_polymorphic_scope",H9="ssa_switch_case",sy="implements",alU=71039,t8=211,vn=240,bR="function_type_return_annotation",ot="on_ExactObj",aUZ="ConvertEmptyPropsToMixedT",a35="Array ",vm="rest",cT="readonly_type",alT=68095,H8="tag_of_gen_kind",apJ=512,Rx=126563,hH="object_key_private_name",w6=297,alS="this.#",xj=301,apI=120003,alR=870828711,Tn=71236,aiz=70105,as5="React$AbstractComponent",aiy="React$ElementFactory",aUY="T_RENDERS_QUESTION",cS="assignment_pattern",aX8=710,DF="specifiers",lL=145,aX7="JSX fragment",sx="as",as4=11507,aUX=" to assign a computed property.",a34="reset_env",pe="on_ReturnType",cQ="pattern_object_property_string_literal_key",cR="class_expression",alQ=44002,os="on_named_prop",xx="test",aUW=-67,UJ="package",aix=-2147483648,alP=125183,as3=42606,aX="tuple_element",zE="fail_named_prop",aiw="Cannot assign ",as2=65495,UI=120085,HI="this definition",aX6=-80,lK=138,z9="fail_option",DW=" with ",as1="$ComposeReverse",Tm=126555,or="on_TSymbol",gO=128,H7="if",dX="for_statement",alO=71131,apH=72001,apG=42888,apF=11502,sw="src/typing/type_annotation.ml",zn=292,aiv=64913,aUV="Division_by_zero",oq="on_Recursive",tR="expecting_abrupt_completions",a05="; name = ",DV=65535,aX5=": file descriptor already closed",alN=-21476009,apE=11889464,op="on_Other",as0="Please provide an annotation, e.g., by adding a type cast around this expression.",xw=223,a33="*=",dW="switch_case",e2="enum_string_member",dV="pattern_object_property_bigint_literal_key",a32="visit_trailing_comment",Sp=43823,aiu=43792,alM=70726,apD=42527,aX4=".%s of %s",So=72349,cP="program",a31=951,aUU="mixed-import-and-require",dU="member_type_identifier",a04="Win32",e1="for_of_statement_lhs",Rv=126554,Rw=8526,Tl=43880,oo="on_Method",alL=43822,tQ="readonly",ait=68119,alK=120121,aUT="export-renamed-default",UH="context",zm=829480150,aUS="info",Tk="Class",mf=142,a30="expression_refinement",cO="declare_class",apC=177976,a3Z="[/\\\\]",ais=65489,Sn=336,a3Y="pred_func_map",zl="fail_unsoundness_kind",UG="custom_return",air="Cannot instantiate ",aiq=66463,aip=43187,a3X="Unexpected env state for maybe_exhaustively_checked",aUR="binary_refinement",sG=308,a3W="typeof_test",tI="\n",Sm="$Keys",aio=66383,e0="declare_interface",a3V="default-import-access",aim=-24,ad="@ }@]",ain="(Program not linked with -g, cannot print stack backtrace)\n",z8="fail_obj_kind",aUQ="cases",pR=176,Sl=65548,IH=";",on="on_MappedTypeObj",dT="number_literal",ail=43704,aUP="post_assignment_heap_refinement_havoc",Ru=126584,a03="visit_program",UF="||",aik="unclear-type",I_=-983546630,aij=120712,q1="void",z7="mixins",w5=303,rR=215,apB=92783,a02=104758188,a01="%ni",Dj=16777215,sL=">",asZ=8516,dS="typeof_type",a3U="ESOCKTNOSUPPORT",dR="spread_element",aUO="optional_chain",cN="component_params",UE="@[",a3T="expecting_return_or_throw",I9="for",a00="ETIMEDOUT",aUN=393,aX3=-256222388,vl="], ",Rt=65575,a3S="win32",Rs="^",alJ=358,a0Z="@",lQ=164,iu="optional",Sk=-976970511,HH="%s, %s, %s",alI="Not_found",a0Y="extend_refinement",eZ="expression_statement",UD="EBADF",bQ="module_ref_literal",a0X="React$Component",UC=70279,zD=233,apA=110580,rJ="<",aUM="EFAULT",IG=" element",Di=262,aX2="visit_leading_comment",kx="src/parser/flow_ast.ml",apz=66855,a0W=" of enum ",apy=111355,w4=206,Sj="src/typing/fix_statement.ml",apx="--",C2="",apw=65497,asY="; branches = _ }",aii="element %d",tP=298,Si=11711,m9="on_Bound",ig="constructor",aUL="$Refine",aX1="Function.prototype.bind",asX=92991,a3R="covers_target",UB=126544,aih=101640,a0V="function_rest_param_annotated",asW=67583,mb="typeParameters",aig="[...]",aX0="Sys_blocked_io",apv=71423,eY="interface_declaration",a3Q="class_method_annotated",bP="variable_declaration",lD="type",HG="tag_of_mapped_type_homomorphic_flag",aUK=865262517,HF="never",bO="with_",HE="object_kit_spread_operand_slice",H6=939392865,mj=": ",apu=726928360,UA=70441,aUJ="\\'",H5=311,a0U="Generics unsatisfied, with ",eX="object_property_value_type",aif=69687,aUI=-49,aUH="length mismatch in ",aXZ="Encountered placeholder type: %s",cM="array_element",asV=120744,aUG="Encountered placeholder type: ",aUF="havoc_current_env",alH=70461,a0T="under_uninitialized_env",a3P="implicit-inexact-object",y="%a",H4="object_kit_spread_operand",apt=72348,a3O="let_kind",pd="on_Keys",om="on_mapped_type_homomorphic_flag",alG=65663,asU=124907,a3N="supertype",eW="member_property_identifier",a3M="Function.prototype",bN="catch_clause_pattern",aie=429,aps=43019,asT=67455,Uz=126628,z6=123118767,a0R=331416730,a0S="keyof ",a3L="the start of a statement",a3K="find_loc",pc="on_Homomorphic",asS=43595,pb="on_arr_t",asR=11710,lP="on_int",eV="typeof_qualified_identifier",aUD="elementType",aUE="EADDRNOTAVAIL",apr=72750,kt="typeAnnotation",Uy=11559,aid=67382,IF="target",dQ="component_type",apq="All multiflows show have a trace",q4=189,asQ="visit_int32",aic=173823,a0Q="sketchy-null-bigint",aXX=") => ",aXY="src/list.ml",m8="t",aia=43700,aib=12783,m7="on_Bool",aN="break",kw=141,a3J="length mismatch in %s: %d <> %d",ah$="argArray",ol="on_InstanceOfRefinement",asP=70460,ah_="dict",m6="on_obj_t",a3I="match on expr makes this impossible",aXW="non-const-var-export",xi="; reason_upper = ",ok="on_FunProtoCall",a3H="add_binding",alF=55215,asO="Object$GetPrototypeOf",asN=">(",ah9="src/analysis/env_builder/find_providers.ml",bM="import_declaration",Rq=94031,Rr="ENOENT",app=69634,asM=8457,eU="function_this_param",ah8=66993,ar="type_",Ux="Flow cannot determine a type for ",apo=12799,ah7=93026,DU=-594953737,ah6=66559,eT="class_property_value",lC=150,a0P="children array or %s",aUC="sketchy-null",ah5=42959,apn="Object$SetPrototypeOf",C1="method",ah4=11498,zk=247,fg="@[<2>[",rQ=0xffffff,Rp=" type in Flow is ",aUB="component %s",jY=116,aXV="initialize_property",cL="type_identifier_reference",a0O="find_writes",alE="{%s}",Tj=126634,asL=68029,DT="$NonMaybeType",k$=121,asK="@jsx",a0N=403,asJ=126562,aXU="Obj.extension_constructor",ah3=-45,Ro=64297,Rn=126523,m5="on_Constructor",Sh="jsx_function_call",alD=126498,a0M="React$AbstractComponentStatics",ah2="Object$Assign",alC=119892,aUA="each",asI=43807,a3G="nd",ld=252,sF=0xff,asH=68295,z5="catch",oj="on_Void",alB=312,asG=120654,E=125,asF=11263,w3="React$Element",xh="havoc_current_ssa_env",a1="assignment",a0L=355,a3E="map_val_with_lookup_result",a3F="While TypeScript uses ",apm="$TupleMap",IE="tag_of_utility",aUz="ENOTSOCK",alA=191456,aXT="ReadonlyArray",rP="targs",ah1="visit_float",aXS="%u",a3D=" against ",ahZ=110927,ah0=65479,aXR=362,fM="acc",pa="def",tO=224,asD=120084,asE=42890,a3C="add_single_refinement",cK="object_key",HD=4003188,aUy="ENOBUFS",apk=43761,apl=12295,aUx="ReadOnly",qd=191,xv="generator",bL="for_of_statement",aXQ="caller",apj=123583,asC="$ObjMap",aXP="compose intermediate value",ahY=378,Uw="b",api=119969,Ti=64318,Uv=126602,a3B=237101932,aXO="identifier_refinement",xg=231,a3A="reading from location ",aUw="comment_bounds",kN="-",zC="fail_any_error_kind",Th=-602162310,aph=8471,aXN=" <> ",oi=187,Tg=120745,asA=71959,asB=66863,sE='"',ID="React$ElementProps",a0K="there is no ",dP="jsx_attribute_value_literal",aUv="the",a0J="List.fold_left2",Rm=872614471,dO="jsx_attribute",cJ="binding_pattern",ff="@,))@]",dN="ts_type_cast",eS="statement_fork_point",rV="_",ahX=65500,aUu=">>>>",aXM=-410448143,a0I=".flowconfig",bK="statement_list",apg=68220,Sg=43815,asz=410,ahW=67514,Rl=274,H3="Unexpected ",alz="visit_bytes",a0H="Property",Uu=72713,asy="visit_function_or_component_param_pattern",a3z=", characters ",aly=42537,aXL="type argument ",bJ="component_declaration",alx=329,cI="object_key_number_literal",I8="(%s, %s)",a3y="ComposeReverse",HC=912068366,DE="delete",asx=120076,apf=65370,Rk="%n type %s.",asw=65481,Ut="$CharSet",alw=-364566281,g8="value",jb="call_prop",Dh="const",DD="operator",aUt=645277092,C0=283,jw=109,sV="any",aUr="] #",aUs="ELOOP",alv=72767,ape=70831,I7="tag_of_mapped_type_optional_flag",aXK=" section of your ",Rj="|}",o$="on_RendersStar",gE="loc",aXJ="\n}",apd=67071,Tf=120004,a3x="component ",o_="on_Conditional",aUq="ReactCheckComponentConfig",rO=188,Sf=72272,Am=-455772979,w2=286,Dg=737456202,aXI="function_param_pattern_array_e_annotated",qm=251,a3w="keys",Ri=1114111,aUp="%s (%s%s%s)",a0G="UnionT ~> IntersectionT slow case",ahV=70301,xu="0x",apc=69967,a0F="Fatal error: exception %s\n",a3v="Some(",aUo="EIO",nH="component_body_with_params",Te="unexpected AST node",aUn=" : ",alu=69295,Us=120093,aUm=">=",aUl="ERANGE",ahU="$Compose",bI="enum_boolean_body",HB="end",aUk="assign_expression",bH="super_expression",alt=126514,me="values",ahT=66939,asv=12591,kM="on_symbol",Ur=126538,hG="object_property_or_spread_property",Uq="providers",H2="tag_of_tuple_element",ql=0x00,asu=72703,a3u="int64",Rh=65598,als=73727,Up=126504,HA=", (",ahS=70143,Hz="inst_type",xf="havoc_uninitialized_ssa_env",IC="from",eR="class_property",zj="fail_any_kind",dM="enum_number_body",Df=225,a0E=420776873,ao$=93759,apa=66994,apb="visit_bool",ahQ=65473,ahR=43697,a0D="env_read_opt",u$=304,Rg=70855,aXH="prop `",aUj="function_param_pattern_object_rest_property_annotated",zB=" [",cH="export_batch_specifier",ao_=178205,dL="call_type_args",a3t="Str.replace: reference to unmatched group",sD=" and ",eQ="component_type_param",jW=782176664,w1="get",DC=228,fF="object_mapped_type_property",CZ="make_typeparam",xe=220,a3s="writable",aXG="<<=",a0C="defineProperties",Uo="): ",ahP=71956,ast=71942,aXF="impltype",oh="on_Unspecialized",ao9="visit_result",sv=254,a0B="ObjectMap",ahO=70412,aXE="EOVERFLOW",DB="@[<2>[|",a0A="unary_refinement",DA="renders?",dK="try_catch",dJ="declare_module_exports",aUi="Annot",ass=94175,a0y="merge_self_env",a0z=" already includes React nodes that render nothing.",ahN=120069,Td="Syntactically valid for-in loops must have exactly one left declaration",dI="while_",lJ="on_bool",DS="pop_ssa_env",Un=119996,ahM=73097,Rf="..",ao8=131071,Re="bound",asr=11492,alr=73029,asq=113770,sC="binding_infer_type_identifier",Tc="$EnumProto",a0x="calls",ji="tvar",a3r=" from within ",eP="tagged_template",bF="jsx_element_name",bG="for_init_declaration",aXD="See type parameters of definition here",De="Partial",ao7=123213,bE="object_spread_property_type",a0w="t1",zi="var",qc="scoped_for_of_statement",ao5=-157659337,ao6=110930,H1=485324847,m4="on_FunProtoApply",xd=309,alp=119972,alq="Cannot compare ",ao4=69622,kn="id_loc",md=143,Dd="computed",a3q="React$RefSetter",ao3=67461,Se="base_pattern",asp=65140,ao1=126651,ao2=71947,aUh="the type ",je="def_type",aUg=" export in ",ao0=78894,aso=", _)",ahL=64262,a0v="EHOSTUNREACH",Sd=237,nG="on_bot_kind",aXC="refinement_of_id",nF="on_ElementType",aE="interface",asn="Match_failure",aoZ=42962,a3p="quasi",Dc="list_fold_left",Um=12592,aXB="finalizer",hN="t_comment",a3o="function type",asm=119807,ahK=66348,m3="on_DummyStatic",a3n="recursive",iJ=120,nE="on_any_error_kind",alo=70851,aXA="target_expression",Rd=126468,o9="on_fun_param",aXz=" is pinned to ",cG="binding_type_identifier",qp=157,ahJ=120132,cF="function_params",o8="on_ClassKind",t0=1024,asl=42783,ahI="@{",a3m=380,ahH=12352,aln=" | ",DR=307,ahF="@flow strict",ahG="<...>",ask=42653,aXy="Void",ahE=120628,z4=264,eO="declare_function",ahD="You can use ",alm=72271,ahB=67826,ahC="statics",a3l="List.nth",all=94032,a3k=418,aXx="UseT (%s, %s)",I6="length",aUf="array element",o7="on_Values",ahA=8511,I5="unknown",o6="on_RendersNormal",alk=11670,jv="?",aUe="refinement_may_be_undefined",Ul=11631,IB=272,a0u="add_multiplatform_synthetic_imports",z3="line",ahz="new ",ahx=72202,ahy="literal",a0t="handle_continues",gj=" ",jx=115,aoY=-673950933,dH="intersection_type",aoW=178207,aoX=100343,a3j="f",Uk=8455,CX=299,CY=", [",aXw=324,I4="write_entries",bD="pattern_object_property_number_literal_key",aXv="Internal Error: Found private field in object props",z2="fail_gen_kind",asj=8543,a0s="visit_function_expr",Uj=119995,og="on_TypeAliasKind",m2="on_NoUpper",aXu="sig_loc",dG="export_named_specifier",a0r=0xe0,iL=-1021547620,Rc=126530,asi=113788,aoV="require-explicit-enum-switch-cases",tZ="children",ahv=71958,ahw=65613,aoU=126583,a3i="visited_requires_with_bindings",ahu=69599,bC="type_params",dF="object_key_computed",aoT=124910,ay="variance",Hy=" is ",alj=66954,bB="catch_body",aht=69445,aUd="str.ml",as="type_param",qh=". ",cE="component_type_params",ash=124902,asg=0xf,asf=70416,ahs="src/typing/flow_js.ml",ase=125259,eN="jsx_namespaced_name",Tb="invariant",lI="; use_op = ",asd=72712,Ui=12448,aUc="Or",CW="String",cD="jsx_member_expression_object",zh=-97,aUb="ENOTTY",sK="unbound_names",a3h="visit_annotation_in_pattern",dE="pattern_object_property_identifier_key",CV=219,eM="opaque_type",ahr=43009,a0q="SpreadElement",tN=202,m1="on_Diff",aXt="$Flow$ModuleRef",eL="jsx_opening_element",o5="on_Exact",asc=8477,bA="object_type_property",ahq=110882,dD="function_body",CU="@,|]@]",a3g=" is not an object, null, or undefined.",le="module",aUa=": closedir failed",qk="kind",z1="fail_utility",ali=67640,cC="declare_type_alias",ahp=-742103074,lB="on_option",aXr="empty_env_snapshot",aXs="ReadonlySet",a3f="Compose",qo="scoped_for_statement",hM="syntax_with_internal_opt",aoS="this.",aho="\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01",a3e="rd",of="on_FunProtoBind",alh="deprecated-type",aT_=431,aT$="scoped_for_in_or_of_statement",m0="on_Renders",Sc="visit",eK="function_expression",asb=11505,gK="exports",o4="on_tuple_element",lH="tparams",hz="implicit",nD="on_t",aoR="Invalid_argument",a3d="base_expression",aT9="get ",wV=" because ",asa=43738,aoQ=113817,alg=278,a3c="p",a3b="default_loc",a3a=9007199254740991.,Uh=42622,aT8="EDEADLK",cB="computed_key",aT7="fd ",aXp=-1045824777,aXq="EBUSY",alf="use_desc=",pO="index",ahn=126619,q9=140,sU="prototype",aT6=">>>=",Dz=242,Ug="Not (%s)",k_="raw",I3="arr_type",zA="*",aT5="member_expression_refinement",H0="compare_elt",a0p="rest_param",Rb="Cannot call ",Uf="remote",ar$=67807,aoP=70753,eJ="boolean_literal",ahm="add_declared_var_binding",aXo=") => (",Ta="$ReadOnly",ar_=65437,jX=124,aoO=67002,a2="conditional",S$=43260,ar9=123135,ar8=64109,eI="pattern_array_rest_element",Sb=67644,IA=315,ar7=43255,ahl="\\n",a0="sequence",aT4=401,ale=67643,cA="predicate_expression",aoN=65855,ar6=110951,aT3="EMFILE",HZ=263,a0o="left operand of ",a0n="for...in",Ud=64317,Ue="@[{",Uc=126558,a2$="directive",eH="meta_property",ald=11564,eG="declare_enum",a0m="ENETUNREACH",jg="fun_type",a0l=347,S_=120133,ks=132,oe="on_NonMaybeType",hT="class_method_key",aoM=124927,ar5=43137,aXn="pos",bz="component_rest_param",alc=125251,a2_="%li",qV="in",aoL="\\\\",i2=":",aoK=77823,Sa=70162,ahk=72966,ju=129,a0k="add_exported_this_errors",pK=146,aT2=" ? ",aXm="Optional",aXl=341,alb=42964,Ra=120655,ahj=11702,ala=2048,nC="on_utility",ar4="expressions",aT1="toString",ak$=55238,dC="class_body",a29=330,z0=1073741823,ak_=43311,Db=235,ak9=64829,ahh=68735,ahi="++",Q$="{",ahg="qualification",zg="in_context",nB="on_obj_kind",aXk=0xdfff,dB="default_opt",aXj="$FlowFixMe",ar3="add_declared_class_binding",ak8=43711,S9="Not (",ar1=64284,ar2=43754,aXi="The parameter passed to ",I2=313,eF="pattern_array_rest_element_pattern",cz="statement",zZ="decorators",su=" (",a0j=" >",CT="[|",aXh="EPERM",aoJ="Some %s",S8=73062,dA="jsx_children",ar0=64255,ahf=1255,S7=64311,Ub=12539,aT0="arrtype",Q_=120513,HY="a",zY="proto",a0i="havoc_changed_refinement_keys",aoI="unnecessary-invariant",ak6=126588,ak7=73458,a0h="?.[",ak5=43714,sT=288,CS=236,Da=-253313196,HX="label",ae="@[<2>{ ",R$=126539,Iz="tag_of_polarity",aXg="Out_of_memory",aoH=120487,Al=268,a28="type_export_keys",aXf="ENOPROTOOPT",a0g="nested-component",arZ=605857695,vk=267,Ua=126496,q3="async",R_=126560,ahe=68287,aTZ="unexpected default export declaration",aXe="in this function",aoG=69762,aoF=126502,arY=197880433,S6="property `",o3="on_elt",eE="template_literal",eD="nullable_type",vt="int_of_string",aTY="source_type",mZ="on_Set",qj="string",a0f="camlinternalMod.ml",arX=110575,Iy="fn_loc",jZ="extends",aTX=-692038429,aXd=" into the ",aTW="ECONNRESET",Ak=210,zf="fail_mapped_type_optional_flag",Dy=227,hF="pattern_assignment_pattern",mY=4845889,ahd=70497,R9=-634224089,xt=0x3f,qU="switch_cases",ak4=92909,aXc="T_JSX_TEXT",aoE="Fatal error: exception ",arW=120137,a27="function_param_pattern_annotated",by="pattern_array_e",ak2=119964,ak3="Some ",arV=92862,a0e="key_tparam",aTV="add_refinement_to_expr",aoD=519471418,zX="fail_t",ak1="OCAMLRUNPARAM",a26="get_val_of_expression",o2="on_InexactObj",fE="null_literal",aoC=66811,Hx="tag_of_prop_source",ak0=11686,aoB=67504,hS="type_alias_identifier",aXb=346,akZ="; reason_op = ",nA="on_ResolveSpread",arU=43741,tY="for_in_or_of_left_declaration",I1="tag_of_obj_kind",a25="${",Ix="&&",eC="type_cast",aTU="ReactConfig",ahc="$ObjMapi",aXa="RHS of `instanceof` operator",T$=8484,vj=207,ahb=70066,a0d=364,aoA=68324,S5=120713,R8=126556,pN=155,mc=135,T_="'",fh="@,]@]",aTT="%s:%s",T9="React",cy="jsx_element_name_namespaced",arT=69551,bw="object_key_string_literal",bx="function_this_param_type",aW$="Empty list already handled",cx="pattern_object_property_pattern",arS=" />",akY=333,aM="throw",a0c="EMSGSIZE",aTS="merge_conditional_branches_with_refinements",aW_="EDOM",T8=119970,dz="toplevel_statement_list",aoz=12438,dy="class_implements",eB="variable_declarator",aoy=70457,Iw="selector",aox=11734,a0b="-=",a23="EnumObjectT",a24="metadata_of_read_loc",wU="The equivalent of TypeScript's ",vi=279,qb=200,bv="jsx_attribute_name_identifier",aW9=412,rU="symbol",Q9=126548,aW8="sketchy-number",cw="member_property",eA="jsx_attribute_value_expression",dx="function_declaration",arR=68466,aW7="%=",aow=415,aha=70080,aR="identifier",aW6="propname",akX="abrupt_completion_envs",Iv="&",lO=-201766268,T7="properties",ag$=323,aov=68223,ez="function_return_annotation",akW=70106,sB="(",xc=213,a22="for-in",akV=71679,aou=70708,o1="on_RemoveOptional",a0a="Function$Prototype$Call",ey="logical",km="camlinternalFormat.ml",akU=92975,aW5=">>>",nz="on_ComputedNonLiteralKey",ag9="RestElement",ag_="extends_type",mX="on_BoolLit",aW4="add_ordinary_binding",Dx="start",aZ$="ENAMETOOLONG",arQ=113775,T6=126521,aTR="E2BIG",vs="`",arP="#",ag8="Null",aW3="untyped-import",jh="eval_id",aZ_=3072,aW2="%s\n",aTQ="add_provider",kl=",",R7="call_arg",zW=8238,Aj=8286,cv="keyof_type",ag7=66717,T5=12336,aTP="before all class properties are definitely initialized.",aot="UseT (",I0="Boolean",aos=71338,t7=270,o0="on_FunProto",aTO="",R6=11558,aoq=64310,c="@]",iw="prop",Iu="public",akT=71450,Dw="Literal",dw="jsx_member_expression_identifier",T4=126557,ag4=110579,akS=12348,cu="export_default_declaration_decl",arO=13311,aTN=331,aop=113663,av="comments",akR=12341,aTM="; prop_name = ",C$="<>",It="$Values",st="class_identifier_opt",akQ="flags",a20=" must be a string literal.",akP=12343,Dv=222,aW0="Cannot iterate using a ",aoo=332,HW=2147483647,ag3=126624,aon=43442,mW="on_Annotated",aWZ="reading %s from illegal write location %s",bu="interface_type",akO=124908,C_=249,aom=71167,aZ9="ENOEXEC",aol=126546,bt="enum_bigint_member",ma=133,ag2=67871,aWY=1027,aok=66955,aZ8="class_body_annotated",aWX="uncaught exception: ",xr="__proto__",R5=126564,aZ7="<<",bs="jsx_element",mV="on_TypeOf",aWV="0n",vh=" instead.",aWW=" 2>&1",aoj=94207,dv="enum_declaration",hL="object_mapped_type",nx="on_ObjMapi",zV="accumulate_branch_env",nw="on_RendersMaybe",Is=339,akN=66963,gF="default",zU="fail_mapped_type_homomorphic_flag",oZ="on_Type",aTL="async return",aZ6="ENXIO",arN=43709,aZ5=", [...]",lG="Object",kL=117,aZ4="EnumDefaultedMember",S3=70006,arM=70161,aWU="]: ",a2Z="async iteration expected on AsyncIterable",nv="lambda",arL=126529,akM="elems_rev",du="new_",pQ=153,a2Y="merge_remote_env",qn="scoped_for_in_statement",ag1=64433,aWT="add_tparam",S2=126559,rI=171,aWS="Printexc.handle_uncaught_exception",ag0=66735,akL="error",arK=126534,aoi=42785,IZ="0o",aoh="visit_option",q8="Promise",Ai="fail_upper_bound_kind",arJ="End_of_file",Q8=320,akK="nan",aog=66175,arI=321,a2X="export default",ex="import_namespace_specifier",dt="component_param",oY="on_ComponentKind",aTK="get %s",agZ="visit_string",arH="visit_char",mU="on_ModuleDecl",rX="zero",IY=306,kv=118,akJ=43798,aO="continue",r=";@ ",agY="src/parser/statement_parser.ml",a2W="function_component_body",akI="React$Ref",aTJ="TypeParameterInstantiation",g="",wT=197,aZ3="$FlowExpectedError",arG=67829,Q7="_bigarr02",od="on_Generic",ew="render_type",br="pattern_object_p",aof=69926,oX="on_Field",aTI="TypeAnnotation",ev="array_type",aTH=290,e="@[%s =@ ",aZ2="ECHILD",ds="export_default_declaration",arE=42774,arF=": Not a directory",Ah="fail_prop_source",jJ="argument",aWR="TryRenderTypePromotionT",R4="an identifier",aTG=9142065,eu="declare_export_declaration_decl",aoe=67589,aod=66771,aTF="tokens",akH=43638,Du=-983660142,aTE=">>",aZ1="handle_assignment",bq="function_expression_or_method",aZ0=0x7F,zz="truthy",vg="mixed",aWQ="all_comments",arC=66503,a2V="%s%s%s: %s",arD="Neg",arB=65135,ct="string_literal",HV="tag_of_return_t",nu="on_PrimitiveProto",akG=70448,Q6=8485,bp="if_statement",aoc=69864,Ag=" is incompatible with ",CR="with",aWP="argument must be a string literal.",t6="$ReadOnlyArray",arA=71086,aob="e",mT="on_ReactElementConfigType",aZY="create",aZZ=">>=",aoa=43388,jt=-48,qT=194,bo="pattern_bigint_literal",aWO=397,akE=71351,akF=65629,nt="on_Rest",aJ="call",an$=409,aTD="check_type",Q5=126553,mS="on_ReactElementRefType",agX="visit_int64",akD=43695,vr=177,akC=12442,an_=42124,oc="on_NamedProp",arz=11718,T3=70449,a2U=398,rN="left",an9=67462,aZX="cooked",aTC="legacy_interop",aWN="Object.prototype",ary=122623,IX=") is out of range or NaN",h3="; ",zy=275,tX="from_completion",Af=65279,agW=12329,an8=71983,hr=110,dr="spread_property",d=" =",aWM="add_destructure_binding",aZW=" expects the provided function type to take only one argument, the value type ",agV="visit_lazy_t",xb="fresh_ssa_env",bn="jsx_fragment",hy=112,dq="function_param",a2T=" variance annotation is ",aZV="neg",zT="fail_decl",vq="`.",aZU="<=",a2S=" exact",et="typeof_member_identifier",aWL=317,a2R=428,Q4=11687,akB=67714067,arx="@supportsPlatform",Q3="of",akA=72000,aWK="function_params_annotated",IW="defer_use_type",ob="on_Unchecked",a2Q="Function.prototype.apply",aTB="EXDEV",Hw=334,R3=69744,aZT="Generics unsatisfied, with %s unmatched on upper bound",a2P="React.Fragment",bm="class_element",cs="export_source",aZS="React.",lN=192,es="component_param_pattern",arw=42508,t5="merge_completion_states",bl="for_in_left_declaration",aZR="Unexpected token `",rH=154,akz="add_declared_const_binding",aZQ="right operand of ",a2O=395,agU=8584,aky=68786,ns="on_interface_t",R2=123214,an7=71999,aTA="Empty",a2N="ESPIPE",a2M="env_loop",R1=126536,aWJ="EFBIG",aTz="Invalid legacy octal ",akx=71295,aZP=413,arv=66927,akw=11679,vf="[%s]",aZO="module `",oa="on_UnresolvedType",bk="@]}",aZN="minus",agT=65470,oW="number",cr="for_of_assignment_pattern",T2=314,iv="Cannot use ",aZM=388,a2L="%s=%s",a2K="Internal Error: Found object private prop",akv=123190,R0=120070,dp="syntax",oV="on_Positive",aTy="cjs_exports_state",hE="interpreter_directive",ve=300,qg="false",bj="typeof_expression",S1="AssignmentPattern",aru=43764,aku="[LIB] ",aZL="FunctionTypeParam",bi="function_body_any",akt=71998,n$="on_type_param",art=126627,dn="call_type_arg",T1=64285,lF=137,aWI="enums",agS="**",er="object_type_property_setter",a2J="NonNullable",lh="on_aloc",i1=108,agR="Pos",nr="on_gen_kind",cq="jsx_member_expression",Ae=65278,aks=92728,aWH=350,ars="strict",akr=66431,an6="parse",aWG="EISDIR",Q2=119994,RY="else",RZ=94179,mR="on_dict",a2I="with_env_state",arr="import type",sJ=15500,a2H=-294881163,agQ=72250,arq=71215,akq=69746,an5=65487,_=", ",akp=8505,Ad="=",ako=64111,aWF="type_stars",akn=-33,agP=68479,n_="on_MakeOptional",arp=68252,a2G="component_def",mi=152,an4=70278,oU="on_ReactCheckComponentRef",Hv="mk_ssa_env",aWE="React$MixedElement",RX=120145,an3="rendersType",aro=70853,agO=69297,akm=73112,mQ="on_ObjProto",aTw="proto_props",aTx=" in Flow.",agM=68351,agN=42655,arn=92159,eq="object_key_identifier",tW=195,cp="member",dm="import_default_specifier",a2F="$TEMPORARY$string",bh="component_identifier",a2E="ReactCreateElement",CQ=951901561,Q0="), (",Q1="[]",akl=67711,co="private_name",IV="?.",aTv="class_property_annotated",QZ=8489,akk=94098,nq=148,qS=193,an2=72969,S0=126520,agL=71944,tH=259,an1="unsafe-getters-setters",an0=42191,dl="generic_qualified_identifier_type",akj=194559,aWD="%",aZK="component_ref_param_maybe",a2D="maybe_prop_nullish",agK="$TEMPORARY$object",aZJ=-314680622,Hu="hasUnknownMembers",rM="init",arm=83526,ep="jsx_attribute_value",aTu="untyped-type-import",w="@,",aki=70271,aZI="; reason_arity=",agJ="$Flow$DebugThrow",C9="next",Ir="tag_of_upper_bound_kind",aWC="force_add_binding",tV="commit_abrupt_completion_matching",arl=70018,aZH="character set `%s`",agI=69375,mP="on_FunctionPrototype",ark=68850,zd="), ",anZ=43866,vd=888960333,arj=43013,qi="ref",RW="unreachable",akh=120570,aZG="error_assignment",ari="visit_list",QY=260,aWB=16389,w0=204,a2B="type_exports",a2C="ts",cn="jsx_element_name_identifier",aWA="add_write_locs",xa=257,n9="on_EmptyType",a2A="Function$Prototype$Bind",aTt="$FlowIssue",RV="and",a2z=-663447790,Ht="Number",agH="$Flow$DebugSleep",arh=82943,CP="src/parser/type_parser.ml",arg=64217,f8="eval",a2x="collect_comments",a2y="Pervasives.do_at_exit",cm="enum_boolean_member",a2w=" as a value. ",np="on_AnyError",agG=65312,QX=119981,aTs="function_def",zc="fail_list",no="on_Top",anY="PropertyDescriptor",aZF="Cannot ",an="(@[",aZD=" missing in map",aZE="EPROTOTYPE",mO="on_Utility",aWz="../",aWx=855101296,aWy="%s: ",a2v="predicate_maps",agF="AbstractComponent",aZC=356,anX=65276,ac="{ ",eo="class_method",cl="generic_type",aZB=366,akg=43071,gt=113,akf=70002,zS="renders*",aTr="tuple element at index ",QW=8469,wS="instanceof",tG="raise_abrupt_completion",Iq="tag_of_any_kind",T0=94178,agE=64321,oT="on_BoundFunctionThis",ake=92879,agD=71945,jH=185,akd=66938,arf=113800,aTq=487025328,agC="this_escape_errors",QV="nonlexical_statement",nn="on_BigIntLit",w$=-703661335,zR="fail_renders_kind",hR="t_identifier",anW=68899,en="pattern_array_element",TZ="; index = ",HU="export",n8="on_InterfaceKind",aTp="JSX text",QU=120122,are=".%s",bg="enum_defaulted_member",aZA="EROFS",ard=68497,arc=", but ",sS="object",aTo="add_errors",nm="on_EnumDecl",aTn="<<<<",QT="src/typing/annotation_inference.ml",akc=113791,agB=67391,dk="jsx_spread_child",n7="with_bindings",RU=69415,zQ="fail_tuple_element",akb=93052,dj="pattern_identifier",gi="name",arb=71494,QS=8486,ja="destructor",aTm=2047,ck="enum_symbol_body",ara="; reason = ",a2u="PropertyDefinition",aq_=72367,aq$=70440,aWw="Popping lex mode from empty stack",di="import_named_specifier",anV=68111,QR=400,RT="lit",aTl="class %s",aZz="*-/",QQ=8487,aka=11567,zx="fail_polarity",agA=67861,aWv=" for ",q7=159,CO=337,anT=-24976191,anU=326,xq=238,hK="class_key",aq9=43645,TY=" as a type. ",QP=69959,aj$=126519,anS=119976,aWu="trailingComments",lM="on_string",i0=449540197,aTk="Function declaration AST has unexpected shape",a2t="EISCONN",aj_="instance",anR=8467,QO=11695,aTj="\t",TX="exported",oS="on_SemiHomomorphic",a2s="EHOSTDOWN",a2r=0x3FFFFFFF,cj="body_expression",ci="jsx_child",a2q=-908856609,dh="optional_indexed_access_type",aq8=42963,RS="update",aWt="\\r",aj9=43042,QN="\x01\x02",ch="function_",aq7="$Exact",aZy="component_rest_param_annotated",aTi=" seconds)",kc=168,kQ="params",aTh="ExitRendersT",zb=8202,aWs="itself",a2p="collected_infer_types",qR="boolean",Hs="tag_of_t",anQ=65574,pP=139,a2o="handler",anP=12548,aZx="ReadonlyMap",TW=120539,oR="on_Num",O=246,C8="polarity",anO=66815,aTg="null_test",aj8=73064,anN=55203,dg="function_param_type",aj7=66966,agz=66499,zw=296,aWr="$FlowIgnore",aj6=68680,a2n=" unmatched on upper bound",aWp="class ",aWq="off",TV="Set.bal",em="function_param_pattern",aq6=5760,a2m="infinity",aTf="T",TU=43642,aq5="fs",Hr="React$ElementRef",nl="on_decl",n6="on_generic_t",TT=72162,TS=8468,aWo="elements",aj5=959246196,aWn="Cannot access ",aq4=" See https://flow.org/en/docs/types/literals/ for more information on literal types.",aj4="Invalid number ",df="function_rest_param",aZw="tout",aj3=" : flags Open_rdonly and Open_wronly are not compatible",Ac="%s",anM="tail",C7="keyof",anL=69404,de="jsx_element_name_member_expression",CN=285,aZv="call_refinement",sI=0x8000,a2l="|=",agy="fbt",RR=70404,aj2=42969,CM="declare",aj1=73061,aj0="use_desc=%b, %s",el="object_type",kP="on_name",a2k="Invalid binary/octal ",QM=230,ajZ=64324,aWl="range",aWm="ESHUTDOWN",oQ="on_Class",CL="infer",aWk="EOPNOTSUPP",a2j="own_props",agx=70730,mN="on_Negative",ajY=43641,lg=166,anK=69890,n5="on_Neutral",a2i="then",ajX=69487,agw=68149,aWj=" <",anJ=74862,SZ=73065,aZu="filtered_out",mM="on_mapped_type_flags",Ip="AsyncGenerator",vp=172,dd="jsx_expression",anI=126495,DQ=245,wR=226,aq3=43615,ek="comment",jd="targ",SY=119965,a2h=-301701320,ej="object_type_property_getter",pJ=136,aZs="Renders (",aZt="property ",anH=122654,DP="shorthand",kp=162,aq2=124895,aWi="??=",Hq="tag_of_builtin_or_symbol",HT=284,q0=180,anG=72329,w_="assert_ssa_env",aWh=8206,za="fail_bot_kind",zv="fail_return_t",anF=43513,aZr="%s.members()",zP=" in ",aTe="input",a2g="component_params_annotated",anE=126467,aZq="elem",dc="type_guard",cg="type_annotation",TR=8305,aWg="namespace",SX=42999,G="None",anD=65019,kO=160,bf="expression_or_spread",F=")",aWf="invalid-import-star-use",ei="class_private_field",RQ=335,anC=65338,a2f=923236811,aTd="Cannot resolve name ",aq1=40981,DO="members",a2e=-154590259,anB="satisfies",n4="on_fun_t",eh="generic_identifier_type",aq0=67423,agu="defineProperty",agv="false_type",anA=11557,wQ=239,anz=66377,aqZ=123180,Ab=221,agt=67967,QL=342,ajW=43586,a2d="ENETRESET",i$=105,aWe="delegate",aZp="src/parser/flow_lexer.ml",aWd="frozen",oP="on_ObjMap",aqY=67637,a2c="closedir",any=43010,oO="on_Placeholder",ajV=8521,TQ=69956,a2b="%S: ",xp=212,aqX=92735,IU="$Rest",y$="}",ga="update_acc",aWc="InlineInterface (",oN="on_Str",aI="empty",k9=161,aqW=42887,a2a=0xFE,CK=305,aZo=405,aqV="regexp",cf="template_literal_element",anx=70414,aTc=" is missing in ",anw=8449,n3="on_prop_source",zO=12287,mL="on_CharSet",ajU=43301,Io="resolve_havocs",iT=111,ajT=" instead of ",aZm="character set `",aZn="Missing an annotation on ",aTb="Readonly",aWb="https://flow.org/en/docs/react/multiplatform",anv=43776,ags="EEXIST",anu="not",mK="on_TupleMap",aqU=4096,HS=318,be="variable_declarator_pattern",db="do_while",ant=66962,aZl="JSX element",aZk="merge_heap_refinements",aTa="CharSet (",ce="label_identifier",ans=8525,aZj="imported",ajS=374,TP="ref_loc",agr=43273,agq=65381,l7="%s, %s",tF="await",ajR=71487,anr=120538,In="Symbol",aqT="jsError",agp="visit_int",aqS=110588,a1$="Should not be hit",ajQ=43696,ago=73647,xo="merge_remote_ssa_env",iS=" }",nk="on_Fun",anq=64967,aZi="one of its initial ",a1_="map_val_with_lookup",SW=11647,hB=123,aWa="havoc_all_heap_refinements",eg="enum_bigint_body",oM="on_BigInt",agm=110959,agn=92995,agl=120686,TO=126522,agk="src/typing/flow_js_utils.ml",aqR=71839,Im="@flow",a19="function_param_pattern_object_property_annotated",anp=65908,Dt=65536,aS$="nonstrict-import",hJ="type_params_opt",a18=-55,ef="pattern_object_property",ano=43493,aV$="$TEMPORARY$boolean",ann=69505,fj="%B",zN=277,wP="merge_ssa_env",ee="enum_member_identifier",agj=65594,zu=253,n2="on_InferenceHooks",a17="sketchy-null-mixed",ajP=68447,aZh=-208580312,SV=70286,ajO="index out of bounds",lA="src/sexp_conv.ml",ed="declare_export_declaration",gN=122,ec="class_extends",hq=106,ajN=113807,k8=119,ajM=8335,anl=93951,aZg="apply_latent_refinements",anm="types",aV_="ReactCloneElement",eb="function_type",aZf=375,a16="fbs",rW=4846113,CJ=-835925911,ajK=123535,vc=258,ajL="import ",a15="record_hint",tE=199,TN=120571,HR="export_types",aS_="scout_changed_refinement_keys",lc=169,ank=" parameter",QK=43867,SU="current",aV9=" : is a directory",aqQ="add_component_binding",aZe=-839587415,gx=127,kK=-36,iR=114,bd="regexp_literal",aV8="EINVAL",anj=68405,aS9="%s %s %s",agi=69958,aqP=73111,ajJ="Identifier",cd="jsx_opening_attribute",da="conditional_type",QI=-146152921,QJ="explicit_type",agh=43492,aqO=70005,ajI=73055,ani=11389,TM=70280,aV7="Untyped",agg=66421,aS8="Stack_overflow",ajH="possible_labeled_continues",a14="component declaration",sR="plus",ajG=19903,ajF=12447,aZd="Some(%s)",ST=66512,SS=340,vb=1000,qf=149,TL=64325,nj="on_renders_kind",cc="class_identifier",aZc=386,oL="on_SomeKnownUpper",ang=119967,anh=68415,oK="on_Merged",cb="member_private_name",ajE=71955,aS7=" from illegal write location ",QH=67593,ni="on_Required",agf=110590,bc="component_renders_annotation",age=72105,aZb="%s `%s`",TK=202657151,aS6="void_test",QG=126551,CI="require",agd=42559,mh="right",agc=67702,aV6=411,a13="obj_kind",C6="|]",anf=119993,a12="env_read",ane=72103,a11=423,aqN=66511,y_="local",TJ=" (try adding a type annotation to ",c$="class_decorator",a10="...(%s)",mJ="on_Unsound",bb="enum_body",ajD=69839,aS5="[%s], %s",wO="[",jc="super",aZa="to_list",ajC=173791,aV5="merge_env",agb=759637122,az="expression",aga=72440,aY$="t0",a1Z="env_snapshot",aV4=594682744,sH="this_binding_function_id_opt",aY_=316,a1Y="ENOLCK",aS4=" from ",Ds=294,oJ="on_IndexedAccess",a1X=0x7ff0,mI="on_TypeAliasDecl",and=12320,jI=134,sQ="enum",aS3="React$CreateClass",wN=196,mH="on_NumLit",ba="import_source",aqM=43814,a1W="EADDRINUSE",RP=126537,ca="function_rest_param_type",anc=43262,ajB=66378,n1="on_builtin_or_symbol",nh="on_CallProp",c_="declare_component",ajA=43503,aqL=70783,anb=432,aY9="] ",ana=92766,xn=173,RO=322,TI=-810089502,aqK='"%s"',af$=66978,aqJ="visit_nativeint",am$="unused-promise",a1V="mapped type",a$="object_indexer_property_type",RN=72970,TH=70854,aS2="visit_component_declaration",n0="on_SomeUnknownUpper",a1U="$JSXIntrinsics",aY8="logical_refinement",tU=217,ajz=42237,aqI=63743,C5="%LdL",hI="declare_opaque_type",am_=870530776,QF="returnType",aS1=0xdc00,HQ="type_map",am9=42735,ea="arg_list",am8="$Call",d$="export_named_declaration",af_=72817,aS0="assign_member",af9=73439,am7=43782,af8=66775,aqH=70655,IT="bool",am6=75075,aY7=352,Il="tag_of_bot_kind",tM="run_to_completion",am5=42961,IS="Invariant violated",af7=12735,lz="on_list",fe="))",ng="on_Unimplemented",af6="unexpected expression pattern",aSZ="PromoteRendersRepresentationT",k7=147,aY6=372,aqG=69748,aSY="leadingComments",a_="this_expression",SR=" argument",HP=461894857,a1T="conditional type",TG="flowmin_compatibility_statement",aSX=8204,TF="}@]",aSW=" in an export position. ",aV3=-11,c9="declare_variable",aqF=8348,d_="optional_member",RM=" ~> ",aY5="(s)",d9="arrow_function",af5="visit_array",wM="reset_ssa_env",am4=72768,aY4="function_param_annotated",aS="array",af4=43249,ajx="\r",ajy="compare: functional value",am3=177983,mG="on_TupleSpread",ajw=64847,am2=126550,oI="on_MappedTypeProp",ajv=207474456,am1=93071,q2="]",aV1=1039100673,aV2="visit_expression_for_expression_writes",a1S="[%s]%s",rG=0xFF,aY3="assignment_refinement",aju="s",b$="for_in_statement_lhs",nZ="on_MissingAnnotation",a1R="; _ }",af3=69807,b9="syntax_opt",b_="object_key_bigint_literal",Dr=243,Hp=265,aSU="TypeParamKind",aSV="Undefined_recursive_module",Ho=-1053382366,af2=72242,a9="variance_opt",pL="arguments",aqE=101631,af1=72161,af0=43560,aST="the end of an expression statement (`;`)",ajt=12543,aY1="st",aY2=1026,aqD=69247,aqC="$Partial",aSS="{|%s|}",mF="on_Decl",a8="pattern_object_rest_property",a1Q="class_private_field_annotated",oH="on_Arr",ajs=43487,aSR="static_props",am0=120144,aY0=" because the first type ",CH="is",a1P="||=",aV0=421,HO="tag_of_named_prop",amZ="add_const_binding",iZ=102,ajr="\\u",a1O=374637448,ajq=70418,w9="merge_self_ssa_env",TE=126540,oG="on_TupleElement",aSQ=-132732155,zM=8287,c8="indexed_access_type",a1N="add_destructure_bindings",aSP="sketchy-number-and",wZ=266,ajp=124926,va=287,aYZ="post_loop_refinements",aSO="or",k6=167,RL=65344,amY=-103,afZ=67505,y8="property",y9="enter_scope",aqB=43014,aD="return",u_=-85,amW=126601,amX="$TEMPORARY$array",b8="type_alias",rT=214,ajo=67431,SQ=43259,TD=126535,mE="on_upper_bound_kind",aVZ="/dev/null",IR="\\",SP=11727,Hn="$PropertyType",amV=126463,Dq=293,jf="dict_type",aSM=367,aSN="createElement",nf="in_toplevel_scope",aVY="collect_comments_opt",SO=120687,a1M="Cannot declare ",aqA=120485,a1L="Function.prototype.call",TC="{|",ajn=43712,IQ="$Diff",aqz="~",afY=" declaration. Only one per ",a1K="EINPROGRESS",SN=126499,aqy=399,aVX=-34,aYY=" in the form ",d8="component_body",fr=".",a1J="env_read_into_snapshot_from_below",DN="consequent",a1I="Function$Prototype$Apply",he="body",wY=178,nY="on_InterfaceDecl",aYX="EPIPE",aSL="in ",rL="`%s`",aYW=" (consider adding a type annotation to ",a1H=",\n",Dp=295,hA="props",c7="declare_module",aYV="EALREADY",QE=67638,amU="file is allowed.",ne="on_Tup",aVW=-512962225,amT=94111,Ik="tag_of_prop",QD="alternate",ajm=67839,y7=8191,afX=43881,zt=-46,c6="tuple_labeled_element",xm="empty_ssa_env",TB="%s: %s",aVV=-91,aYU="[options]",aYT="unexpected setter",TA=70750,afW=77808,b7="jsx_closing_element",zL="column",amS=66977,aYS="partial_env_snapshot_read",RK=-1071146961,amR="<>",afV=65786,qZ="Function",l$="React$Node",iQ=104,SM=11719,aVU="iteration expected on Iterable",aqx="mkdir",amQ=70319,aSK="{...}",a1G="%s<%s>",nd="on_Interface",Aa="fail_elt",d7="bigint_literal",mD="on_Untyped",amP=70084,aYR="EAFNOSUPPORT",aqw=126566,aSJ="react-intrinsic-overlap",QC="do",hD="class_property_key",a1F="$ReadOnlyArray",d6="pattern_object_property_computed_key",afU="React$Config",aVT="DebugThrow",nc="on_Infer",aqv="$Shape",QB=126571,RJ=937565914,aSI="type_guard_consistency_maps",Do=208,amO=67004,ajl=68863,kr=130,afT=11726,ajk=64466,a1E=1023,hb=107,aYQ=" 2>",SL="base_statement",aYP="literal_test",nX="on_ReadOnly",aSH="custom_fun_kind",C4=244,aVS="unreachable jsxtext",amN=67679,c5="enum_string_body",afS=66335,ajj=126570,zs=229,aji=" : file already exists",l_=184,Ij="fn",sA="ssa_env",ajh="Cannot create ",nW="on_ReactConfigType",afR=70451,y6=302,aqu="Sys_error",CG="meta",aVR="EAGAIN",b6="pattern_object_rest_property_pattern",aSG="unexpected property expression",t4="run",aSF=" has ",ko="static",ajg=120512,aSE="Cannot reference ",HN="declaration",aqt=68437,aYO="getOwnPropertyNames",aYN="Cannot determine the type of this ",aV="pattern",a1D="Invariant Violation: spread list has two slices in a row",C3=216,zK=282,sP=289,mC="on_NonBindingPattern",amM=68191,kq="undefined",SK=8319,DM=459313508,a1C="one of its initial %ss",oF="on_EmptyMatchingPropT",afQ=42239,aYM=-99,aqs=120092,aSD="visit_function_declaration",mg=144,a1B="expected *",aSC="$await",amK=55242,amL=12294,a7="enum_number_member",ajf="$ObjMapConst",aje="@jsxRuntime",amI=68115,amJ="case ",nV="on_polarity",aYL="Cygwin",ajd=65615,aVQ="The closest equivalent of TypeScript's ",amH="add_function_binding",aYK="/static/",aqr=11519,IP="push_ssa_env",nU="on_IndexedObj",lE=165,aYJ="this-in-exported-function",aqq=12686,oE=183,aVP=": (",SJ=72192,Hm="try",RI="$KeyMirror",aYI="Invalid AST structure",a1A=0xf0,amG=66915,amF=43018,aSB="([^/]+)",amE=73648,nT="on_ClassDecl",aqp=125258,qe=163,aSA=931,ajc=71235,aSz=8472,Hl=-961894220,aSy="jsx_base_name",a1z=".members()",aVO="property `%s`",amD=71934,Dn=205,xl=218,aVN="callee",aqo=43790,DL="has_unknown_members",a1y="%Li",ajb=8304,a1x="$AsyncIterable",afP=379,aja=70492,afO=332064784,aSx="`...`",afN=11630,RH=276,Tz=67592,wL="mk_unresolved",QA=43519,aqn=354,ai_=68031,ai$="$Flow$DebugPrint",aVM="internal",qY="source",afM=93047,aVL="empty string",aqm=92927,aYH="children array or ",a1w=55296,afL="...%s",nb="...",amC=67742,aYG="...(",aYF="platform_availability_set",aSw="name_loc",Qz=126552,H="(Some ",afK=370,aql="true_type",ai9=94026,zr=203,aqk="add_declared_let_binding",l6=156,d5="unary_expression",u9=-26065557,aVK="function_param_pattern_object_p_annotated",amB=110587,DK=280,SI=120771,Ii="tag_of_any_error_kind",aZ="object_",zJ="set",a1v="EPFNOSUPPORT",afJ=43258,aYE="eq_test",aSu="null or undefined",aSv="^=",ax="predicate",aVJ="EACCES",Ih=847855481,aYD="and is not safe! Did you mean to add ",RG=8450,aqj=70285,mB="+",aYC="maybe_sentinel",tT=198,a1u="` of unknown type",Ig="tag_of_decl",SH=67827,RF="explicitType",aqi="src/exn.ml",Qy=70452,a1t=414,HM="private",aSt="add",amA=64296,aqh=67591,aYB="function_param_pattern_array_rest_element_annotated",nS="on_KeepOptionality",Qx=68120,a1s=291350696,amz=66461,aYA="&&=",nR="on_Union",t3=174,kJ=8231,SG="Required",a1r="/=",aVI="function_param_pattern_array_element_annotated",q6="Array",SF=70108,afI=" : flags Open_text and Open_binary are not compatible",amy=67001,aSs=1900,ai8="(computed)",afH=66204,ku=8233,a6="type_annotation_hint",afG=123197,aSr="its ",a5="object_property",aVH="Unreachable",Qw=70480,a1q="ambiguous-object-type",IO="obj_flags",aqg="(...)",I=",@ ",aSq=416,iP="%d",aYz="EPROTONOSUPPORT",lb="0",aH="yield",aSp="object_pattern_default_property",aVG=427,hZ=100,SE=126591,Hk=232,aSo="src/float0.ml",aK="switch",aVF="ObjectRep",a1p=0x800,ah=250,Qv=68096,amx=43713,oD="on_VariableDecl",aYy="$TEMPORARY$number",amw=12538,w8=234,a1o="callable object type",oC="on_Get",c4="component_param_name",amv=43123,c3="class_",Ty="|",aSn="maybe_exhaustively_checked",afF="final_ssa_env",nQ="on_Null",afD=43518,afE=8483,aSm="\n\n",mA="on_Bot",qX=181;function +foj(a){return 0}function +xE(a,b){return Math.imul(a,b)}function +lS(a,b){b=xE(b,0xcc9e2d51|0);b=b<<15|b>>>32-15;b=xE(b,0x1b873593);a^=b;a=a<<13|a>>>32-13;return(a+(a<<2)|0)+(0xe6546b64|0)|0}var +Ap=lS;function +atF(a,b){var +e=b.length,c,d;for(c=0;c+4<=e;c+=4){d=b.charCodeAt(c)|b.charCodeAt(c+1)<<8|b.charCodeAt(c+2)<<16|b.charCodeAt(c+3)<<24;a=lS(a,d)}d=0;switch(e&3){case +3:d=b.charCodeAt(c+2)<<16;case +2:d|=b.charCodeAt(c+1)<<8;case +1:d|=b.charCodeAt(c);a=lS(a,d)}a^=e;return a}function +pT(a){return a}function +a4P(a,b){return atF(a,pT(b))}var +fok=a4P;function +a4O(a){a^=a>>>16;a=xE(a,0x85ebca6b|0);a^=a>>>13;a=xE(a,0xc2b2ae35|0);a^=a>>>16;return a}function +fol(a){var +b=a4O(a);return b&a2r}function +foq(a,b,c,d,e){if(d<=b)for(var +f=1;f<=e;f++)c[d+f]=a[b+f];else +for(var +f=e;f>=1;f--)c[d+f]=a[b+f];return 0}function +fos(a){var +c=[0];while(a!==0){var +d=a[1];for(var +b=1;b=c.l||c.t==2&&e>=c.c.length)){c.c=a.t==4?Jo(a.c,b,e):b==0&&a.c.length==e?a.c:a.c.substr(b,e);c.t=c.c.length==c.l?0:2}else if(c.t==2&&d==c.c.length){c.c+=a.t==4?Jo(a.c,b,e):b==0&&a.c.length==e?a.c:a.c.substr(b,e);c.t=c.c.length==c.l?0:2}else{if(c.t!=4)U1(c);var +g=a.c,h=c.c;if(a.t==4)if(d<=b)for(var +f=0;f=0;f--)h[d+f]=g[b+f];else{var +i=Math.min(e,g.length-b);for(var +f=0;f>=1;if(a==0)return d;b+=b;c++;if(c==9)b.slice(0,1)}}function +As(a){if(a.t==2)a.c+=D6(a.l-a.c.length,"\0");else +a.c=Jo(a.c,0,a.c.length);a.t=0}function +atR(a){if(a.length<24){for(var +b=0;bgx)return false;return true}else +return!/[^\x00-\x7f]/.test(a)}function +a46(a){for(var +k=g,d=g,h,f,i,b,c=0,j=a.length;capJ){d.substr(0,1);k+=d;d=g;k+=a.slice(c,e)}else +d+=a.slice(c,e);if(e==j)break;c=e}b=1;if(++c=0xd7ff&&b<0xe000)b=2}else{b=3;if(++c0x10ffff)b=3}}}}}if(b<4){c-=b;d+="\ufffd"}else if(b>rK)d+=String.fromCharCode(0xd7c0+(b>>10),aS1+(b&0x3FF));else +d+=String.fromCharCode(b);if(d.length>t0){d.substr(0,1);k+=d;d=g}}return k+d}function +vv(a,b,c){this.t=a;this.c=b;this.l=c}vv.prototype.toString=function(){switch(this.t){case +9:return this.c;default:As(this);case +0:if(atR(this.c)){this.t=9;return this.c}this.t=8;case +8:return this.c}};vv.prototype.toUtf16=function(){var +a=this.toString();if(this.t==9)return a;return a46(a)};vv.prototype.slice=function(){var +a=this.t==4?this.c.slice():this.c;return new +vv(this.t,a,this.l)};function +a4H(a){return new +vv(0,a,a.length)}function +pn(a){return a4H(pT(a))}function +sY(a,b,c,d,e){vw(pn(a),b,c,d,e);return 0}function +Jf(a,b){if(a===b)return 1;a.t&6&&As(a);b.t&6&&As(b);return a.c==b.c?1:0}function +a49(a){var +b=gA.process;if(b&&b.env&&b.env[a]!=undefined)return b.env[a];if(gA.jsoo_static_env&&gA.jsoo_static_env[a])return gA.jsoo_static_env[a]}var +Vc=0;(function(){var +c=a49(ak1);if(c!==undefined){var +b=c.split(kl);for(var +a=0;a=a.c.length)return 0;case +0:return a.c.charCodeAt(b);case +4:return a.c[b]}}function +sZ(a,b){if(b>>>0>=a.l)a4G();return lR(a,b)}function +gI(a,b,c){c&=sF;if(a.t!=4){if(b==a.c.length){a.c+=String.fromCharCode(c);if(b+1==a.l)a.t=0;return 0}U1(a)}a.c[b]=c;return 0}function +qs(a,b,c){if(b>>>0>=a.l)a4G();return gI(a,b,c)}function +po(d,c){var +f=d.l>=0?d.l:d.l=d.length,e=c.length,b=f-e;if(b==0)return d.apply(null,c);else if(b<0){var +a=d.apply(null,c.slice(0,f));if(typeof +a!=="function")return a;return po(a,c.slice(f))}else{switch(b){case +1:{var +a=function(a){var +f=new +Array(e+1);for(var +b=0;b>>0>=a.length-1)DZ();return a}function +foz(a){if(isFinite(a)){if(Math.abs(a)>=2.2250738585072014e-308)return 0;if(a!=0)return 1;return 2}return isNaN(a)?4:3}function +a4T(a){return 0}var +fpG=Math.log2&&Math.log2(1.1235582092889474E+307)==1020;function +fpF(a){if(fpG)return Math.floor(Math.log2(a));var +b=0;if(a==0)return-Infinity;if(a>=1)while(a>=2){a/=2;b++}else +while(a<1){a*=2;b--}return b}function +atG(a){var +b=new +Float32Array(1);b[0]=a;var +c=new +Int32Array(b.buffer);return c[0]|0}var +Jk=Math.pow(2,-24);function +a42(a){throw a}function +Vb(){a42(mk.Division_by_zero)}function +gH(a,b,c){this.lo=a&rQ;this.mi=b&rQ;this.hi=c&rK}gH.prototype.caml_custom="_j";gH.prototype.copy=function(){return new +gH(this.lo,this.mi,this.hi)};gH.prototype.ucompare=function(a){if(this.hi>a.hi)return 1;if(this.hia.mi)return 1;if(this.mia.lo)return 1;if(this.loc)return 1;if(ba.mi)return 1;if(this.mia.lo)return 1;if(this.lo>24),c=-this.hi+(b>>24);return new +gH(a,b,c)};gH.prototype.add=function(a){var +b=this.lo+a.lo,c=this.mi+a.mi+(b>>24),d=this.hi+a.hi+(c>>24);return new +gH(b,c,d)};gH.prototype.sub=function(a){var +b=this.lo-a.lo,c=this.mi-a.mi+(b>>24),d=this.hi-a.hi+(c>>24);return new +gH(b,c,d)};gH.prototype.mul=function(a){var +b=this.lo*a.lo,c=(b*Jk|0)+this.mi*a.lo+this.lo*a.mi,d=(c*Jk|0)+this.hi*a.lo+this.mi*a.mi+this.lo*a.hi;return new +gH(b,c,d)};gH.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0};gH.prototype.isNeg=function(){return this.hi<<16<0};gH.prototype.and=function(a){return new +gH(this.lo&a.lo,this.mi&a.mi,this.hi&a.hi)};gH.prototype.or=function(a){return new +gH(this.lo|a.lo,this.mi|a.mi,this.hi|a.hi)};gH.prototype.xor=function(a){return new +gH(this.lo^a.lo,this.mi^a.mi,this.hi^a.hi)};gH.prototype.shift_left=function(a){a=a&63;if(a==0)return this;if(a<24)return new +gH(this.lo<>24-a,this.hi<>24-a);if(a<48)return new +gH(0,this.lo<>48-a);return new +gH(0,0,this.lo<>a|this.mi<<24-a,this.mi>>a|this.hi<<24-a,this.hi>>a);if(a<48)return new +gH(this.mi>>a-24|this.hi<<48-a,this.hi>>a-24,0);return new +gH(this.hi>>a-48,0,0)};gH.prototype.shift_right=function(a){a=a&63;if(a==0)return this;var +c=this.hi<<16>>16;if(a<24)return new +gH(this.lo>>a|this.mi<<24-a,this.mi>>a|c<<24-a,this.hi<<16>>a>>>16);var +b=this.hi<<16>>31;if(a<48)return new +gH(this.mi>>a-24|this.hi<<48-a,this.hi<<16>>a-24>>16,b&rK);return new +gH(this.hi<<16>>a-32,b,b)};gH.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23;this.mi=(this.mi<<1|this.lo>>23)&rQ;this.lo=this.lo<<1&rQ};gH.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&rQ;this.mi=(this.mi>>>1|this.hi<<23)&rQ;this.hi=this.hi>>>1};gH.prototype.udivmod=function(a){var +d=0,c=this.copy(),b=a.copy(),e=new +gH(0,0,0);while(c.ucompare(b)>0){d++;b.lsl1()}while(d>=0){d--;e.lsl1();if(c.ucompare(b)>=0){e.lo++;c=c.sub(b)}b.lsr1()}return{quotient:e,modulus:c}};gH.prototype.div=function(a){var +b=this;if(a.isZero())Vb();var +d=b.hi^a.hi;if(b.hi&sI)b=b.neg();if(a.hi&sI)a=a.neg();var +c=b.udivmod(a).quotient;if(d&sI)c=c.neg();return c};gH.prototype.mod=function(a){var +b=this;if(a.isZero())Vb();var +d=b.hi;if(b.hi&sI)b=b.neg();if(a.hi&sI)a=a.neg();var +c=b.udivmod(a).modulus;if(d&sI)c=c.neg();return c};gH.prototype.toInt=function(){return this.lo|this.mi<<24};gH.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo};gH.prototype.toArray=function(){return[this.hi>>8,this.hi&sF,this.mi>>16,this.mi>>8&sF,this.mi&sF,this.lo>>16,this.lo>>8&sF,this.lo&sF]};gH.prototype.lo32=function(){return this.lo|(this.mi&sF)<<24};gH.prototype.hi32=function(){return this.mi>>>8&rK|this.hi<<16};function +kd(a,b,c){return new +gH(a,b,c)}function +xA(a){if(!isFinite(a)){if(isNaN(a))return kd(1,0,a1X);return a>0?kd(0,0,a1X):kd(0,0,0xfff0)}var +f=a==0&&1/a==-Infinity?sI:a>=0?0:sI;if(f)a=-a;var +b=fpF(a)+a1E;if(b<=0){b=0;a/=Math.pow(2,-aY2)}else{a/=Math.pow(2,b-aWY);if(a<16){a*=2;b-=1}if(b==0)a/=2}var +d=Math.pow(2,24),c=a|0;a=(a-c)*d;var +e=a|0;a=(a-e)*d;var +g=a|0;c=c&asg|f|b<<4;return kd(g,e,c)}function +Jm(a){return a.toArray()}function +a4F(a,b,c){a.write(32,b.dims.length);a.write(32,b.kind|b.layout<<8);if(b.caml_custom==Q7)for(var +d=0;d>4;if(d==aTm)return(f|g|c&asg)==0?c&sI?-Infinity:Infinity:NaN;var +e=Math.pow(2,-24),b=(f*e+g)*e+(c&asg);if(d>0){b+=16;b*=Math.pow(2,d-aWY)}else +b*=Math.pow(2,-aY2);if(c&sI)b=-b;return b}function +atx(a){var +d=a.length,c=1;for(var +b=0;b>>24&sF|(b&rK)<<8,b>>>16&rK)}function +atI(a){return a.hi32()}function +atJ(a){return a.lo32()}var +fow=Q7;function +xz(a,b,c,d){this.kind=a;this.layout=b;this.dims=c;this.data=d}xz.prototype.caml_custom=fow;xz.prototype.offset=function(a){var +c=0;if(typeof +a==="number")a=[a];if(!(a +instanceof +Array))jj("bigarray.js: invalid offset");if(this.dims.length!=a.length)jj("Bigarray.get/set: bad number of dimensions");if(this.layout==0)for(var +b=0;b=this.dims[b])DZ();c=c*this.dims[b]+a[b]}else +for(var +b=this.dims.length-1;b>=0;b--){if(a[b]<1||a[b]>this.dims[b])DZ();c=c*this.dims[b]+(a[b]-1)}return c};xz.prototype.get=function(a){switch(this.kind){case +7:var +d=this.data[a*2+0],b=this.data[a*2+1];return foU(d,b);case +10:case +11:var +e=this.data[a*2+0],c=this.data[a*2+1];return[sv,e,c];default:return this.data[a]}};xz.prototype.set=function(a,b){switch(this.kind){case +7:this.data[a*2+0]=atJ(b);this.data[a*2+1]=atI(b);break;case +10:case +11:this.data[a*2+0]=b[1];this.data[a*2+1]=b[2];break;default:this.data[a]=b;break}return 0};xz.prototype.fill=function(a){switch(this.kind){case +7:var +c=atJ(a),e=atI(a);if(c==e)this.data.fill(c);else +for(var +b=0;be)return 1;if(d!=e){if(!b)return NaN;if(d==d)return 1;if(e==e)return-1}}break;case +7:for(var +c=0;ca.data[c+1])return 1;if(this.data[c]>>>0>>0)return-1;if(this.data[c]>>>0>a.data[c]>>>0)return 1}break;case +2:case +3:case +4:case +5:case +6:case +8:case +9:case +12:for(var +c=0;ca.data[c])return 1}break}return 0};function +DY(a,b,c,d){this.kind=a;this.layout=b;this.dims=c;this.data=d}DY.prototype=new +xz();DY.prototype.offset=function(a){if(typeof +a!=="number")if(a +instanceof +Array&&a.length==1)a=a[0];else +jj("Ml_Bigarray_c_1_1.offset");if(a<0||a>=this.dims[0])DZ();return a};DY.prototype.get=function(a){return this.data[a]};DY.prototype.set=function(a,b){this.data[a]=b;return 0};DY.prototype.fill=function(a){this.data.fill(a);return 0};function +a4B(a,b,c,d){var +e=a4D(a);if(atx(c)*e!=d.length)jj("length doesn't match dims");if(b==0&&c.length==1&&e==1)return new +DY(a,b,c,d);return new +xz(a,b,c,d)}function +kz(a){if(!mk.Failure)mk.Failure=[fy,mm(Ry),-3];atP(mk.Failure,a)}function +a4C(a,b,c){var +k=a.read32s();if(k<0||k>16)kz("input_value: wrong number of bigarray dimensions");var +r=a.read32s(),l=r&sF,q=r>>8&1,j=[];if(c==Q7)for(var +d=0;dla)c=la;var +e=0,b=0;for(b=0;b+4<=a.data.length;b+=4){e=a.data[b+0]|a.data[b+1]<<8|a.data[b+2]<<16|a.data[b+3]<<24;d=lS(d,e)}e=0;switch(c&3){case +3:e=a.data[b+2]<<16;case +2:e|=a.data[b+1]<<8;case +1:e|=a.data[b+0];d=lS(d,e)}break;case +4:case +5:if(c>gO)c=gO;var +e=0,b=0;for(b=0;b+2<=a.data.length;b+=2){e=a.data[b+0]|a.data[b+1]<<16;d=lS(d,e)}if((c&1)!=0)d=lS(d,a.data[b]);break;case +6:if(c>64)c=64;for(var +b=0;b64)c=64;for(var +b=0;b32)c=32;c*=2;for(var +b=0;b64)c=64;for(var +b=0;b32)c=32;for(var +b=0;b0?f(b,a,d):f(a,b,d);if(d&&e!=e)return c;if(+e!=+e)return+e;if((e|0)!=0)return e|0}return c}function +U8(a){return typeof +a==="string"&&!/[^\x00-\xff]/.test(a)}function +U7(a){return a +instanceof +vv}function +a4J(a){if(typeof +a==="number")return vb;else if(U7(a))return ld;else if(U8(a))return 1252;else if(a +instanceof +Array&&a[0]===a[0]>>>0&&a[0]<=lf){var +b=a[0]|0;return b==sv?0:b}else if(a +instanceof +String)return aYr;else if(typeof +a=="string")return aYr;else if(a +instanceof +Number)return vb;else if(a&&a.caml_custom)return ahf;else if(a&&a.compare)return 1256;else if(typeof +a=="function")return 1247;else if(typeof +a=="symbol")return 1251;return 1001}function +ix(a,b){if(ab?1:0}function +foy(a,b){a.t&6&&As(a);b.t&6&&As(b);return a.cb.c?1:0}function +Ar(a,b,c){var +f=[];for(;;){if(!(c&&a===b)){var +e=a4J(a);if(e==ah){a=a[1];continue}var +g=a4J(b);if(g==ah){b=b[1];continue}if(e!==g){if(e==vb){if(g==ahf)return a4I(a,b,-1,c);return-1}if(g==vb){if(e==ahf)return a4I(b,a,1,c);return 1}return eb)return 1;if(a!=b){if(!c)return NaN;if(a==a)return 1;if(b==b)return-1}break;case +1001:if(ab)return 1;if(a!=b){if(!c)return NaN;if(a==a)return 1;if(b==b)return-1}break;case +1251:if(a!==b){if(!c)return NaN;return 1}break;case +1252:var +a=pT(a),b=pT(b);if(a!==b){if(ab)return 1}break;case +12520:var +a=a.toString(),b=b.toString();if(a!==b){if(ab)return 1}break;case +246:case +254:default:if(a4T(e)){jj("compare: continuation value");break}if(a.length!=b.length)return a.length1)f.push(a,b,1);break}}if(f.length==0)return 0;var +h=f.pop();b=f.pop();a=f.pop();if(h+11)b.pop();break;case".":break;case"":break;default:b.push(d[c]);break}b.unshift(e[0]);b.orig=a;return b}function +fpD(a){for(var +f=g,c=f,b,i,d=0,h=a.length;dapJ){c.substr(0,1);f+=c;c=g;f+=a.slice(d,e)}else +c+=a.slice(d,e);if(e==h)break;d=e}if(b>6);c+=String.fromCharCode(rY|b&xt)}else if(b<0xd800||b>=aXk)c+=String.fromCharCode(a0r|b>>12,rY|b>>6&xt,rY|b&xt);else if(b>=0xdbff||d+1==h||(i=a.charCodeAt(d+1))aXk)c+="\xef\xbf\xbd";else{d++;b=(b<<10)+i-0x35fdc00;c+=String.fromCharCode(a1A|b>>18,rY|b>>12&xt,rY|b>>6&xt,rY|b&xt)}if(c.length>t0){c.substr(0,1);f+=c;c=g}}return f+c}function +jy(a){return atR(a)?mm(a):mm(fpD(a))}var +fpM=[aTR,aVJ,aVR,UD,aXq,aZ2,aT8,aW_,ags,aUM,aWJ,a0$,aV8,aUo,aWG,aT3,a07,aZ$,aYk,a1g,Rr,aZ9,a1Y,a4p,a4f,a4m,Tp,atr,aUb,aZ6,aXh,aYX,aUl,aZA,a2N,a09,aTB,aU5,a1K,aYV,aUz,aVx,a0c,aZE,aXf,aYz,a3U,aWk,a1v,aYR,a1W,aUE,a4k,a0m,a2d,aVr,aTW,aUy,a2t,aVB,aWm,aVv,a00,a1a,a2s,a0v,aUs,aXE];function +vA(a,b,c,d){var +e=fpM.indexOf(a);if(e<0){if(d==null)d=-9999;e=[0,d]}var +f=[e,jy(b||g),jy(c||g)];return f}var +a4Z={};function +xF(a){return a4Z[a]}function +vz(a,b){throw B([0,a].concat(b))}function +aty(a){if(!(a +instanceof +Uint8Array))a=new +Uint8Array(a);return new +vv(4,a,a.length)}function +hf(a){atP(mk.Sys_error,a)}function +a43(a){hf(a+Sx)}function +Vf(a){if(a.t!=4)U1(a);return a.c}function +ml(a){return a.l}function +a4x(){}function +pm(a){this.data=a}pm.prototype=new +a4x();pm.prototype.constructor=pm;pm.prototype.truncate=function(a){var +b=this.data;this.data=hV(a|0);vw(b,0,this.data,0,a)};pm.prototype.length=function(){return ml(this.data)};pm.prototype.write=function(a,b,c,d){var +e=this.length();if(a+d>=e){var +f=hV(a+d),g=this.data;this.data=f;vw(g,0,this.data,0,e)}vw(aty(b),c,this.data,a,d);return 0};pm.prototype.read=function(a,b,c,d){var +e=this.length();if(a+d>=e)d=e-a;if(d){var +f=hV(d|0);vw(this.data,a,f,0,d);b.set(Vf(f),c)}return d};function +Aq(a,b,c){this.file=b;this.name=a;this.flags=c}Aq.prototype.err_closed=function(){hf(this.name+aX5)};Aq.prototype.length=function(){if(this.file)return this.file.length();this.err_closed()};Aq.prototype.write=function(a,b,c,d){if(this.file)return this.file.write(a,b,c,d);this.err_closed()};Aq.prototype.read=function(a,b,c,d){if(this.file)return this.file.read(a,b,c,d);this.err_closed()};Aq.prototype.close=function(){this.file=undefined};function +lk(a,b){this.content={};this.root=a;this.lookupFun=b}lk.prototype.nm=function(a){return this.root+a};lk.prototype.create_dir_if_needed=function(a){var +d=a.split(li),c=g;for(var +b=0;b=a.length)jj("Weak.get_key");var +c=a[vx+b];if(gA.WeakRef&&c +instanceof +gA.WeakRef)c=c.deref();return c===undefined?0:[0,c]}function +foI(a){if(gA.FinalizationRegistry&&gA.WeakRef)if(a[1]instanceof +gA.FinalizationRegistry)for(var +c=vx;c=a.length)jj("Weak.set");if(c +instanceof +Object&&gA.WeakRef){if(a[1].register)a[1].register(c,undefined,c);a[vx+b]=new +gA.WeakRef(c)}else +a[vx+b]=c;return 0}function +ao(a,b){return+(Ar(a,b,false)==0)}function +U3(a,b){return hs(a,b)}function +foL(a,b,c,d){if(c>0)if(b==0&&(c>=a.l||a.t==2&&c>=a.c.length))if(d==0){a.c=g;a.t=2}else{a.c=D6(c,String.fromCharCode(d));a.t=c==a.l?0:2}else{if(a.t!=4)U1(a);for(c+=b;bb)return 1;if(a===a)return 1;if(b===b)return-1;return 0}function +D1(a){var +b;a=pT(a);b=+a;if(a.length>0&&b===b)return b;a=a.replace(/_/g,g);b=+a;if(a.length>0&&b===b||/^[+-]?nan$/i.test(a))return b;var +c=/^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?/i.exec(a);if(c){var +d=c[3].replace(/0+$/,g),f=parseInt(c[1]+c[2]+d,16),e=(c[5]|0)-4*d.length;b=f*Math.pow(2,e);return b}if(/^\+?inf(inity)?$/i.test(a))return Infinity;if(/^-inf(inity)?$/i.test(a))return-Infinity;kz("float_of_string")}function +atO(a){a=pT(a);var +e=a.length;if(e>31)jj("format_int: format too long");var +b={justify:mB,signstyle:kN,filler:gj,alternate:false,base:0,signedconv:false,width:0,uppercase:false,sign:1,prec:-1,conv:a3j};for(var +d=0;d=0&&c<=9){b.width=b.width*10+c;d++}d--;break;case".":b.prec=0;d++;while(c=a.charCodeAt(d)-48,c>=0&&c<=9){b.prec=b.prec*10+c;d++}d--;case"d":case"i":b.signedconv=true;case"u":b.base=10;break;case"x":b.base=16;break;case"X":b.base=16;b.uppercase=true;break;case"o":b.base=8;break;case"e":case"f":case"g":b.signedconv=true;b.conv=c;break;case"E":case"F":case"G":b.signedconv=true;b.uppercase=true;b.conv=c.toLowerCase();break}}return b}function +atB(a,b){if(a.uppercase)b=b.toUpperCase();var +e=b.length;if(a.signedconv&&(a.sign<0||a.signstyle!=kN))e++;if(a.alternate){if(a.base==8)e+=1;if(a.base==16)e+=2}var +c=g;if(a.justify==mB&&a.filler==gj)for(var +d=e;d20){c-=20;a/=Math.pow(10,c);a+=new +Array(c+1).join(lb);if(b>0)a=a+fr+new +Array(b+1).join(lb);return a}else +return a.toFixed(b)}}var +c,f=atO(a),e=f.prec<0?6:f.prec;if(b<0||b==0&&1/b==-Infinity){f.sign=-1;b=-b}if(isNaN(b)){c=akK;f.filler=gj}else if(!isFinite(b)){c="inf";f.filler=gj}else +switch(f.conv){case"e":var +c=b.toExponential(e),d=c.length;if(c.charAt(d-3)==aob)c=c.slice(0,d-1)+lb+c.slice(d-1);break;case"f":c=j(b,e);break;case"g":e=e?e:1;c=b.toExponential(e-1);var +i=c.indexOf(aob),h=+c.slice(i+1);if(h<-4||b>=1e21||b.toFixed(0).length>e){var +d=i-1;while(c.charAt(d)==lb)d--;if(c.charAt(d)==fr)d--;c=c.slice(0,d+1)+c.slice(i);d=c.length;if(c.charAt(d-3)==aob)c=c.slice(0,d-1)+lb+c.slice(d-1);break}else{var +g=e;if(h<0){g-=h+1;c=b.toFixed(g)}else +while(c=b.toFixed(g),c.length>e+1)g--;if(g){var +d=c.length-1;while(c.charAt(d)==lb)d--;if(c.charAt(d)==fr)d--;c=c.slice(0,d+1)}}break}return atB(f,c)}function +D2(a,b){if(pT(a)==iP)return mm(g+b);var +c=atO(a);if(b<0)if(c.signedconv){c.sign=-1;b=-b}else +b>>>=0;var +d=b.toString(c.base);if(c.prec>=0){c.filler=gj;var +e=c.prec-d.length;if(e>0)d=D6(e,lb)+d}return atB(c,d)}var +a40=0;function +ge(){return a40++}function +a48(a,b){var +a=mm(a),b=mm(b);return a4K(a,b)}function +foN(){var +b=gA.caml_fs_tmp;if(b)for(var +a=0;a>1|1;if(b=0)}function +U4(a,b){return+(Ar(a,b,false)>0)}function +foQ(a,b){var +e=b.length,c,d;for(c=0;c+4<=e;c+=4){d=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24;a=lS(a,d)}d=0;switch(e&3){case +3:d=b[c+2]<<16;case +2:d|=b[c+1]<<8;case +1:d|=b[c];a=lS(a,d)}a^=e;return a}function +fo9(a){switch(a.t&6){default:As(a);case +0:return a.c;case +4:return a.c}}function +foP(a,b){var +c=fo9(b);return typeof +c==="string"?atF(a,c):foQ(a,c)}function +a4N(a,b,c,d){var +j,k,l,h,g,f,e,i,m;h=b;if(h<0||h>la)h=la;g=a;f=c;j=[d];k=0;l=1;while(k0){e=j[k++];if(e&&e.caml_custom){if(Jg[e.caml_custom]&&Jg[e.caml_custom].hash){var +n=Jg[e.caml_custom].hash(e);f=lS(f,n);g--}}else if(e +instanceof +Array&&e[0]===(e[0]|0))switch(e[0]){case +248:f=lS(f,e[2]);g--;break;case +250:j[--k]=e[1];break;default:if(a4T(e[0]))break;var +o=e.length-1<<10|e[0];f=lS(f,o);for(i=1,m=e.length;i=h)break;j[l++]=e[i]}break}else if(U7(e)){f=foP(f,e);g--}else if(U8(e)){f=a4P(f,e);g--}else if(typeof +e==="string"){f=atF(f,e);g--}else if(e===(e|0)){f=lS(f,e+e+1);g--}else if(e===+e){f=atE(f,e);g--}}f=a4O(f);return f&a2r}function +foS(a,b,c){if(!isFinite(a)){if(isNaN(a))return jy(akK);return jy(a>0?a2m:"-infinity")}var +k=a==0&&1/a==-Infinity?1:a>=0?0:1;if(k)a=-a;var +e=0;if(a==0);else if(a<1)while(a<1&&e>-1022){a*=2;e--}else +while(a>=2){a/=2;e++}var +l=e<0?g:mB,f=g;if(k)f=kN;else +switch(c){case +43:f=mB;break;case +32:f=gj;break;default:break}if(b>=0&&b<13){var +i=Math.pow(2,b*4);a=Math.round(a*i)/i}var +d=a.toString(16);if(b>=0){var +j=d.indexOf(fr);if(j<0)d+=fr+D6(b,lb);else{var +h=j+1+b;if(d.length>24&rQ,a>>31&rK)}function +fo0(a){return a.toInt()}function +foW(a){return+a.isNeg()}function +s0(a){return a.neg()}function +U6(a,b){var +c=atO(a);if(c.signedconv&&foW(b)){c.sign=-1;b=s0(b)}var +d=g,i=xB(c.base),h="0123456789abcdef";do{var +f=b.udivmod(i);b=f.quotient;d=h.charAt(fo0(f.modulus))+d}while(!foX(b));if(c.prec>=0){c.filler=gj;var +e=c.prec-d.length;if(e>0)d=D6(e,lb)+d}return atB(c,d)}function +a4R(a,b){return a.mod(b)}function +Ji(a,b){return a.mul(b)}function +a4S(a){if(a<0)a=Math.ceil(a);return new +gH(a&rQ,Math.floor(a*Jk)&rQ,Math.floor(a*Jk*Jk)&rK)}function +atL(a,b){return a.ucompare(b)<0}function +a41(a){var +b=0,e=Z(a),c=10,d=1;if(e>0)switch(aF(a,b)){case +45:b++;d=-1;break;case +43:b++;d=1;break}if(b+1=48&&a<=57)return a-48;if(a>=65&&a<=90)return a-55;if(a>=97&&a<=gN)return a-87;return-1}function +xC(a){var +g=a41(a),f=g[0],i=g[1],d=g[2],h=xB(d),j=new +gH(rQ,0xfffffff,rK).udivmod(h).quotient,e=aF(a,f),b=Va(e);if(b<0||b>=d)kz(vt);var +c=xB(b);for(;;){f++;e=aF(a,f);if(e==95)continue;b=Va(e);if(b<0||b>=d)break;if(atL(j,c))kz(vt);b=xB(b);c=U5(Ji(h,c),b);if(atL(c,b))kz(vt)}if(f!=Z(a))kz(vt);if(d==10&&atL(new +gH(0,0,sI),c))kz(vt);if(i<0)c=s0(c);return c}function +foZ(a,b){return a.shift_left(b)}function +Jl(a,b){return a.shift_right(b)}function +atK(a,b){return a.sub(b)}function +D4(a){return a.toFloat()}function +kR(a){var +h=a41(a),d=h[0],i=h[1],e=h[2],g=Z(a),j=-1>>>0,f=d=e)kz(vt);var +b=c;for(d++;d=e)break;b=e*b+c;if(b>j)kz(vt)}if(d!=g)kz(vt);b=i*b;if(e==10&&(b|0)!=b)kz(vt);return b|0}function +U9(a){return a.slice(1)}function +a4U(a){var +c={};for(var +b=1;b0){var +c=new +Array(d);for(var +b=0;b>>32-e,c)}function +g(a,b,c,d,e,f,g){return l(b&c|~b&d,a,b,e,f,g)}function +h(a,b,c,d,e,f,g){return l(b&d|c&~d,a,b,e,f,g)}function +i(a,b,c,d,e,f,g){return l(b^c^d,a,b,e,f,g)}function +j(a,b,c,d,e,f,g){return l(c^(b|~d),a,b,e,f,g)}return function(a,b){var +c=a[0],d=a[1],e=a[2],f=a[3];c=g(c,d,e,f,b[0],7,0xD76AA478);f=g(f,c,d,e,b[1],12,0xE8C7B756);e=g(e,f,c,d,b[2],17,0x242070DB);d=g(d,e,f,c,b[3],22,0xC1BDCEEE);c=g(c,d,e,f,b[4],7,0xF57C0FAF);f=g(f,c,d,e,b[5],12,0x4787C62A);e=g(e,f,c,d,b[6],17,0xA8304613);d=g(d,e,f,c,b[7],22,0xFD469501);c=g(c,d,e,f,b[8],7,0x698098D8);f=g(f,c,d,e,b[9],12,0x8B44F7AF);e=g(e,f,c,d,b[10],17,0xFFFF5BB1);d=g(d,e,f,c,b[11],22,0x895CD7BE);c=g(c,d,e,f,b[12],7,0x6B901122);f=g(f,c,d,e,b[13],12,0xFD987193);e=g(e,f,c,d,b[14],17,0xA679438E);d=g(d,e,f,c,b[15],22,0x49B40821);c=h(c,d,e,f,b[1],5,0xF61E2562);f=h(f,c,d,e,b[6],9,0xC040B340);e=h(e,f,c,d,b[11],14,0x265E5A51);d=h(d,e,f,c,b[0],20,0xE9B6C7AA);c=h(c,d,e,f,b[5],5,0xD62F105D);f=h(f,c,d,e,b[10],9,0x02441453);e=h(e,f,c,d,b[15],14,0xD8A1E681);d=h(d,e,f,c,b[4],20,0xE7D3FBC8);c=h(c,d,e,f,b[9],5,0x21E1CDE6);f=h(f,c,d,e,b[14],9,0xC33707D6);e=h(e,f,c,d,b[3],14,0xF4D50D87);d=h(d,e,f,c,b[8],20,0x455A14ED);c=h(c,d,e,f,b[13],5,0xA9E3E905);f=h(f,c,d,e,b[2],9,0xFCEFA3F8);e=h(e,f,c,d,b[7],14,0x676F02D9);d=h(d,e,f,c,b[12],20,0x8D2A4C8A);c=i(c,d,e,f,b[5],4,0xFFFA3942);f=i(f,c,d,e,b[8],11,0x8771F681);e=i(e,f,c,d,b[11],16,0x6D9D6122);d=i(d,e,f,c,b[14],23,0xFDE5380C);c=i(c,d,e,f,b[1],4,0xA4BEEA44);f=i(f,c,d,e,b[4],11,0x4BDECFA9);e=i(e,f,c,d,b[7],16,0xF6BB4B60);d=i(d,e,f,c,b[10],23,0xBEBFBC70);c=i(c,d,e,f,b[13],4,0x289B7EC6);f=i(f,c,d,e,b[0],11,0xEAA127FA);e=i(e,f,c,d,b[3],16,0xD4EF3085);d=i(d,e,f,c,b[6],23,0x04881D05);c=i(c,d,e,f,b[9],4,0xD9D4D039);f=i(f,c,d,e,b[12],11,0xE6DB99E5);e=i(e,f,c,d,b[15],16,0x1FA27CF8);d=i(d,e,f,c,b[2],23,0xC4AC5665);c=j(c,d,e,f,b[0],6,0xF4292244);f=j(f,c,d,e,b[7],10,0x432AFF97);e=j(e,f,c,d,b[14],15,0xAB9423A7);d=j(d,e,f,c,b[5],21,0xFC93A039);c=j(c,d,e,f,b[12],6,0x655B59C3);f=j(f,c,d,e,b[3],10,0x8F0CCC92);e=j(e,f,c,d,b[10],15,0xFFEFF47D);d=j(d,e,f,c,b[1],21,0x85845DD1);c=j(c,d,e,f,b[8],6,0x6FA87E4F);f=j(f,c,d,e,b[15],10,0xFE2CE6E0);e=j(e,f,c,d,b[6],15,0xA3014314);d=j(d,e,f,c,b[13],21,0x4E0811A1);c=j(c,d,e,f,b[4],6,0xF7537E82);f=j(f,c,d,e,b[11],10,0xBD3AF235);e=j(e,f,c,d,b[2],15,0x2AD7D2BB);d=j(d,e,f,c,b[9],21,0xEB86D391);a[0]=k(c,a[0]);a[1]=k(d,a[1]);a[2]=k(e,a[2]);a[3]=k(f,a[3])}}();function +fop(a,b,c){var +e=a.len&xt,d=0;a.len+=c;if(e){var +f=64-e;if(c=64){a.b8.set(b.subarray(d,d+64),0);UZ(a.w,a.b32);c-=64;d+=64}if(c)a.b8.set(b.subarray(d,d+c),0)}function +fon(a){var +c=a.len&xt;a.b8[c]=rY;c++;if(c>56){for(var +b=c;b<64;b++)a.b8[b]=0;UZ(a.w,a.b32);for(var +b=0;b<56;b++)a.b8[b]=0}else +for(var +b=c;b<56;b++)a.b8[b]=0;a.b32[14]=a.len<<3;a.b32[15]=a.len>>29&0x1FFFFFFF;UZ(a.w,a.b32);var +e=new +Uint8Array(16);for(var +d=0;d<4;d++)for(var +b=0;b<4;b++)e[d*4+b]=a.w[d]>>8*b&rG;return e}function +fpq(a){return mm(Jo(a,0,a.length))}function +fo7(a,b,c){var +d=foo(),e=Vf(a);fop(d,e.subarray(b,b+c),c);return fpq(fon(d))}function +fo8(a,b,c){return fo7(pn(a),b,c)}var +q$=new +Array();function +fo_(a){var +b=q$[a];return b.file.length()}var +D7=new +Array(3);function +fps(a){var +b=D7[a];if(b)b.close();delete +D7[a];return 0}function +t$(a){var +b=q$[a];if(!b.opened)hf("Cannot flush a closed channel");if(!b.buffer||b.buffer_curr==0)return 0;if(b.output)b.output(Jo(b.buffer,0,b.buffer_curr));else +b.file.write(b.offset,b.buffer,0,b.buffer_curr);b.offset+=b.buffer_curr;b.buffer_curr=0;return 0}function +a4V(a){var +b=q$[a];b.opened=false;fps(b.fd);return 0}function +fo$(){return 0}function +fpl(a){if(a.refill!=null){var +e=a.refill(),b=a45(e);if(b.length==0)a.refill=null;else{if(a.buffer.length0){b.set(e.buffer.subarray(e.buffer_curr,e.buffer_curr+f),c);e.buffer_curr+=f;g=f}else{e.buffer_curr=0;e.buffer_max=0;fpl(e);var +f=e.buffer_max-e.buffer_curr;if(g>f)g=f;b.set(e.buffer.subarray(e.buffer_curr,e.buffer_curr+g),c);e.buffer_curr+=g}return g|0}function +fpa(a,b,c,d){var +e=Vf(b);return fpb(a,e,c,d)}function +fpz(a,b){if(b.name)try{var +d=require(aq5),c=d.openSync(b.name,"rs");return new +sX(c,b)}catch(f){}return new +sX(a,b)}function +Je(a,b){pm.call(this,hV(0));this.log=function(a){return 0};if(a==1&&typeof +console.log=="function")this.log=console.log;else if(a==2&&typeof +console.error=="function")this.log=console.error;else if(typeof +console.log=="function")this.log=console.log;this.flags=b}Je.prototype.length=function(){return 0};Je.prototype.write=function(a,b,c,d){if(this.log){if(d>0&&c>=0&&c+d<=b.length&&b[c+d-1]==10)d--;var +e=hV(d);vw(aty(b),c,e,0,d);this.log(e.toUtf16());return 0}hf(this.fd+aX5)};Je.prototype.read=function(a,b,c,d){hf(this.fd+": file descriptor is write only")};Je.prototype.close=function(){this.log=undefined};function +Ve(a,b){if(b==undefined)b=D7.length;D7[b]=a;return b|0}function +fpy(a,b,c){var +d={};while(b){switch(b[1]){case +0:d.rdonly=1;break;case +1:d.wronly=1;break;case +2:d.append=1;break;case +3:d.create=1;break;case +4:d.truncate=1;break;case +5:d.excl=1;break;case +6:d.binary=1;break;case +7:d.text=1;break;case +8:d.nonblock=1;break}b=b[2]}if(d.rdonly&&d.wronly)hf(pT(a)+aj3);if(d.text&&d.binary)hf(pT(a)+afI);var +e=a5a(a),f=e.device.open(e.rest,d);return Ve(f,undefined)}(function(){function +a(a,b){return Jq()?fpz(a,b):new +Je(a,b)}Ve(a(0,{rdonly:1,altname:"/dev/stdin",isCharacterDevice:true}),0);Ve(a(1,{buffered:2,wronly:1,isCharacterDevice:true}),1);Ve(a(2,{buffered:2,wronly:1,isCharacterDevice:true}),2)}());function +a4W(a){var +b=D7[a];if(b.flags.wronly)hf(aT7+a+" is writeonly");var +d=null,c={file:b,offset:b.flags.append?b.length():0,fd:a,opened:true,out:false,buffer_curr:0,buffer_max:0,buffer:new +Uint8Array(Dt),refill:d};q$[c.fd]=c;return c.fd}function +a4X(a){var +b=D7[a];if(b.flags.rdonly)hf(aT7+a+" is readonly");var +d=b.flags.buffered!==undefined?b.flags.buffered:1,c={file:b,offset:b.flags.append?b.length():0,fd:a,opened:true,out:true,buffer_curr:0,buffer:new +Uint8Array(Dt),buffered:d};q$[c.fd]=c;return c.fd}function +fpc(){var +b=0;for(var +a=0;ae.buffer.length){var +g=new +Uint8Array(e.buffer_curr+b.length);g.set(e.buffer);e.buffer=g}switch(e.buffered){case +0:e.buffer.set(b,e.buffer_curr);e.buffer_curr+=b.length;t$(a);break;case +1:e.buffer.set(b,e.buffer_curr);e.buffer_curr+=b.length;if(e.buffer_curr>=e.buffer.length)t$(a);break;case +2:var +f=b.lastIndexOf(10);if(f<0){e.buffer.set(b,e.buffer_curr);e.buffer_curr+=b.length;if(e.buffer_curr>=e.buffer.length)t$(a)}else{e.buffer.set(b.subarray(0,f+1),e.buffer_curr);e.buffer_curr+=f+1;t$(a);e.buffer.set(b.subarray(f+1),e.buffer_curr);e.buffer_curr+=b.length-f-1}break}return 0}function +atM(a,b,c,d){return fpd(a,pn(b),c,d)}function +a4Y(a,b){var +c=mm(String.fromCharCode(b));atM(a,c,0,1);return 0}function +fpe(a,b){var +c=q$[a];c.name=b;return 0}function +U$(a,b){if(b==0)Vb();return a%b}function +j1(a,b){return+(Ar(a,b,false)!=0)}function +atN(a,b){var +d=new +Array(b+1);d[0]=a;for(var +c=1;c<=b;c++)d[c]=0;return d}function +fph(a,b){a[0]=ah;a[1]=b;return 0}function +ai(a){if(a +instanceof +Array&&a[0]==a[0]>>>0)return a[0];else if(U7(a))return ld;else if(U8(a))return ld;else if(a +instanceof +Function||typeof +a=="function")return zk;else if(a&&a.caml_custom)return lf;else +return vb}function +fpk(a){Vc=a;return 0}function +fox(a){var +b;while(a)if(gk(a[1][1])=="SYJS"){b=a[1][2];break}else +a=a[2];var +d={};if(b)for(var +c=1;c=0)a=e;else +kz("caml_register_global: cannot locate "+d)}}mk[a+1]=b;if(c)mk[c]=b}function +atQ(a,b){a4Z[pT(a)]=b;return 0}function +fpm(a,b){return 0}function +fpn(a){a[2]=a40++;return a}function +af(a,b){if(a===b)return 1;return 0}function +fpp(){jj(ajO)}function +fl(a,b){if(b>>>0>=Z(a))fpp();return aF(a,b)}function +q(a,b){return 1-af(a,b)}var +a4y=function(){var +a=gA.process,f="a.out",b=[];if(a&&a.argv&&a.argv.length>1){var +e=a.argv;f=e[1];b=e.slice(2)}var +g=jy(f),d=[0,g];for(var +c=0;c=a.length-1)DZ();return a[b+1]}function +fpJ(a,b,c){var +a=pT(a),k=a.length,c=pT(c),e=g,h=0,d,i,j,f;while(h=b.length-1)kz(a3t);i=a4z(b,f*2);j=a4z(b,f*2+1);if(i==-1)kz(a3t);e+=c.slice(i,j);break;default:e+=IR+d}}}return mm(e)}var +a4$=function(){var +b=[ql,ql,ql,ql,ql,ql,rG,0x03,a2a,rG,rG,0x87,a2a,rG,rG,0x07,ql,ql,ql,ql,ql,ql,ql,ql,rG,rG,aZ0,rG,rG,rG,aZ0,rG],e={CHAR:0,CHARNORM:1,STRING:2,STRINGNORM:3,CHARCLASS:4,BOL:5,EOL:6,WORDBOUNDARY:7,BEGGROUP:8,ENDGROUP:9,REFGROUP:10,ACCEPT:11,SIMPLEOPT:12,SIMPLESTAR:13,SIMPLEPLUS:14,GOTO:15,PUSHBACK:16,SETMARK:17,CHECKPROGRESS:18};function +q(a){return b[a>>3]>>(a&7)&1}function +o(a,b){return fl(a,b>>3)>>(b&7)&1}function +a(a,b,c,d){var +x=U9(a[1]),m=U9(a[2]),w=pT(a[3]),z=a[4]|0,A=a[5]|0,C=a[6]|0,b=a45(b),n=0,y=false,u=[],k=new +Array(z),s=new +Array(A);for(var +h=0;h>8,f=t&sF,i=b[c],j;n++;switch(B){case +e.CHAR:if(c===b.length){l();break}if(i===f)c++;else +g();break;case +e.CHARNORM:if(c===b.length){l();break}if(w.charCodeAt(i)===f)c++;else +g();break;case +e.STRING:for(var +p=pT(m[f]),h=0;h0&&b[c-1]!=10)g();break;case +e.EOL:if(cZ(b))jj("Str.search_forward");while(c<=Z(b)){var +d=a4$(a,b,c,0);if(d)return d;c++}return[0]}function +fpL(a,b,c){if(c<0||c>Z(b))jj("Str.string_match");var +d=a4$(a,b,c,0);return d?d:[0]}function +fpN(){return 0}function +fo2(a){switch(a[2]){case-8:case-11:case-12:return 1;default:return 0}}function +foM(a){var +b=g;if(a[0]==0){b+=a[1][1];if(a.length==3&&a[2][0]==0&&fo2(a[1]))var +e=a[2],f=1;else +var +f=2,e=a;b+=sB;for(var +d=f;df)b+=_;var +c=e[d];if(typeof +c=="number")b+=c.toString();else if(c +instanceof +vv)b+=sE+c.toString()+sE;else if(typeof +c=="string")b+=sE+c.toString()+sE;else +b+=rV}b+=F}else if(a[0]==fy)b+=a[1];return b}function +a4L(a){if(a +instanceof +Array&&(a[0]==0||a[0]==fy)){var +c=xF(aWS);if(c)U0(c,[a,false]);else{var +d=foM(a),b=xF(a2y);if(b)U0(b,[0]);console.error(aoE+d+"\n");if(a.js_error)throw a.js_error}}else +throw a}function +fpo(){var +c=gA.process;if(c&&c.on)c.on("uncaughtException",function(a,b){a4L(a);c.exit(2)});else if(gA.addEventListener)gA.addEventListener(akL,function(a){if(a.error)a4L(a.error)})}fpo();function +m(a,b){return(a.l>=0?a.l:a.l=a.length)==1?a(b):po(a,[b])}function +n(a,b,c){return(a.l>=0?a.l:a.l=a.length)==2?a(b,c):po(a,[b,c])}function +l(a,b,c,d){return(a.l>=0?a.l:a.l=a.length)==3?a(b,c,d):po(a,[b,c,d])}function +o(a,b,c,d,e){return(a.l>=0?a.l:a.l=a.length)==4?a(b,c,d,e):po(a,[b,c,d,e])}function +p(a,b,c,d,e,f){return(a.l>=0?a.l:a.l=a.length)==5?a(b,c,d,e,f):po(a,[b,c,d,e,f])}function +x(a,b,c,d,e,f,g){return(a.l>=0?a.l:a.l=a.length)==6?a(b,c,d,e,f,g):po(a,[b,c,d,e,f,g])}function +ap(a,b,c,d,e,f,g,h){return(a.l>=0?a.l:a.l=a.length)==7?a(b,c,d,e,f,g,h):po(a,[b,c,d,e,f,g,h])}function +fU(a,b,c,d,e,f,g,h,i){return(a.l>=0?a.l:a.l=a.length)==8?a(b,c,d,e,f,g,h,i):po(a,[b,c,d,e,f,g,h,i])}function +js(a,b,c,d,e,f,g,h,i,j){return(a.l>=0?a.l:a.l=a.length)==9?a(b,c,d,e,f,g,h,i,j):po(a,[b,c,d,e,f,g,h,i,j])}function +pI(a,b,c,d,e,f,g,h,i,j,k){return(a.l>=0?a.l:a.l=a.length)==10?a(b,c,d,e,f,g,h,i,j,k):po(a,[b,c,d,e,f,g,h,i,j,k])}function +Qu(a,b,c,d,e,f,g,h,i,j,k,l){return(a.l>=0?a.l:a.l=a.length)==11?a(b,c,d,e,f,g,h,i,j,k,l):po(a,[b,c,d,e,f,g,h,i,j,k,l])}function +y5(a,b,c,d,e,f,g,h,i,j,k,l,m){return(a.l>=0?a.l:a.l=a.length)==12?a(b,c,d,e,f,g,h,i,j,k,l,m):po(a,[b,c,d,e,f,g,h,i,j,k,l,m])}function +afC(a,b,c,d,e,f,g,h,i,j,k,l,m,n){return(a.l>=0?a.l:a.l=a.length)==13?a(b,c,d,e,f,g,h,i,j,k,l,m,n):po(a,[b,c,d,e,f,g,h,i,j,k,l,m,n])}foN();var +Vj=[fy,aXg,-1],Au=[fy,aqu,-2],j2=[fy,Ry,-3],vB=[fy,aoR,-4],D_=[fy,arJ,-5],gf=[fy,alI,-7],Js=[fy,asn,-8],atT=[fy,aS8,-9],aL=[fy,ap_,aV3],D$=[fy,aSV,apU],aug=kd(0,0,0),VH=kd(1,0,0),fn7=[4,0,0,0,[12,45,[4,0,0,0,0]]],VS=[0,[11,'File "',[2,0,[11,'", line ',[4,0,0,0,[11,a3z,[4,0,0,0,[12,45,[4,0,0,0,[11,mj,[2,0,0]]]]]]]]]],'File "%s", line %d, characters %d-%d: %s'],Wd=fr,Wg=fr,Wi=fr,AL="sign0.ml.t",g6=[0,0,[0,0,0],[0,0,0]],A6=[0,0,0,0,1,0,0,0],aE2=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],r_=[0,0,0],fn8=[12,58,[4,0,[0,2,2],0,[12,46,[4,0,[0,2,3],0,[12,93,0]]]]],fn9=[0,2,2],yd=g,uA=[0,rX,sR],FI=[0,aiL,agZ,ao9,ai5,aoh,aqJ,ari,agV,agX,asQ,agp,ah1,arH,alz,apb,af5],$1=[0,rX,aiL,agZ,ao9,ai5,aoh,aqJ,ari,agV,agX,asQ,agp,ah1,arH,alz,apb,af5,sR],Bo=[0,0,0,0],$4=".flow",$$=[60,"unknown element type of empty array"],aIk=fr,aad=[0,0,0,0,0,0],aIs=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],aIt=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],aIu=[0,fM],aIy=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,Se,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,SL,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,QV,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,TG,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],NX=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],aam=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,fM],aan=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],NY=[0,fM],aIL=[0,fM,zV,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,zo,y9,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,zg,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],aar=[0,fM],aI9=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],aI_=[0,fM],A=[0,0],Oo=[0,0],Ou=[0,"https://flow.org/en/docs/types/utilities/#toc-call","https://flow.org/en/docs/types/utilities/#toc-tuplemap","https://flow.org/en/docs/types/utilities/#toc-objmap","https://flow.org/en/docs/types/utilities/#toc-objmapi"],aKF=" as ",aKG="(: )",aKO=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,sC,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,st,dy,cW,eo,ei,eR,eT,ek,d8,nH,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,sM,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,tK,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,nf,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,nv,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,qn,qc,qo,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,qU,dp,b9,eP,eE,cf,sH,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,n7,aH],aKP=[0,fM],wj="",abi="",aK0=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],aK1=[0,fM],jS=[5,gj],aMm=[8,0,1],acs=[0,rX,sR],aMv=[0,rX,sR,kM,lM,lB,kP,lz,lP,lJ,lh,Dc],act=[0,kM,lM,lB,kP,lz,lP,lJ,lh],aMy=[0,rX,sR],acv=[0,nC,mE,oz,n$,o4,nD,kM,lM,nL,nj,n3,pk,nV,lB,m6,nB,os,kP,m$,om,mM,lz,ns,lP,n6,nr,n4,o9,o3,mR,nl,n1,nG,lJ,pb,nM,nE,lh,oj,oD,o7,mO,mD,oh,mJ,oa,na,nR,ng,ob,mV,oB,og,mI,oZ,mG,mK,oG,ne,no,or,ov,nP,oN,nN,n0,oL,mZ,oS,pe,nt,nA,ni,o$,o6,nw,m0,o1,oq,nX,mS,ox,mT,nW,oU,nu,oV,oO,ph,op,mQ,nx,ny,oP,ow,nJ,mH,oR,nQ,oe,mC,pf,m2,m_,n5,mN,oc,mU,nZ,oo,oK,oI,on,n_,pd,nS,n8,nY,nd,nI,ol,nO,n2,nc,o2,nU,oJ,pc,oC,od,mP,ok,of,m4,o0,nk,oX,pg,ot,o5,oy,nm,n9,oF,nF,m3,m1,mF,m5,o_,nz,oY,o8,nT,oQ,mL,nh,pl,oT,m9,mA,mX,m7,nn,oM,oH,np,pi,mW],aMz=[0,rX,sR,nC,mE,oz,n$,o4,nD,kM,lM,nL,nj,n3,pk,nV,lB,m6,nB,os,kP,m$,om,mM,lz,ns,lP,n6,nr,n4,o9,o3,mR,nl,n1,nG,lJ,pb,nM,nE,lh,oj,oD,o7,mO,mD,oh,mJ,oa,na,nR,ng,ob,mV,oB,og,mI,oZ,mG,mK,oG,ne,no,or,ov,nP,oN,nN,n0,oL,mZ,oS,pe,nt,nA,ni,o$,o6,nw,m0,o1,oq,nX,mS,ox,mT,nW,oU,nu,oV,oO,ph,op,mQ,nx,ny,oP,ow,nJ,mH,oR,nQ,oe,mC,pf,m2,m_,n5,mN,oc,mU,nZ,oo,oK,oI,on,n_,pd,nS,n8,nY,nd,nI,ol,nO,n2,nc,o2,nU,oJ,pc,oC,od,mP,ok,of,m4,o0,nk,oX,pg,ot,o5,oy,nm,n9,oF,nF,m3,m1,mF,m5,o_,nz,oY,o8,nT,oQ,mL,nh,pl,oT,m9,mA,mX,m7,nn,oM,oH,np,pi,mW,Dc],aMA=[0,Dc,lh,lJ,lP,lz,kP,lB,lM,kM],acw=[0,lh,lJ,lP,lz,kP,lB,lM,kM],aMJ=[0,mW,pi,np,oH,oM,nn,m7,mX,mA,m9,oT,pl,nh,mL,oQ,nT,o8,oY,nz,o_,m5,mF,m1,m3,nF,oF,n9,nm,oy,o5,ot,pg,oX,nk,o0,m4,of,ok,mP,od,oC,pc,oJ,nU,o2,nc,n2,nO,ol,nI,nd,nY,n8,nS,pd,n_,on,oI,oK,oo,nZ,mU,oc,mN,n5,m_,m2,pf,mC,oe,nQ,oR,mH,nJ,ow,oP,ny,nx,mQ,op,ph,oO,oV,nu,oU,nW,mT,ox,mS,nX,oq,o1,m0,nw,o6,o$,ni,nA,nt,pe,oS,mZ,oL,n0,nN,oN,nP,ov,or,no,ne,oG,mK,mG,oZ,mI,og,oB,mV,ob,ng,nR,na,oa,mJ,oh,mD,mO,o7,oD,oj,lh,nE,nM,pb,lJ,nG,n1,nl,mR,o3,o9,n4,nr,n6,lP,ns,lz,mM,om,m$,kP,os,nB,m6,lB,nV,pk,n3,nj,nL,lM,kM,nD,o4,n$,oz,mE,nC],aMK=[0,IE,Ir,Id,H2,Hs,HV,Hx,Ik,Iz,I1,HO,I7,HG,H8,If,Ig,Hq,Il,Iq,Ii,nC,mE,oz,n$,o4,nD,kM,lM,nL,nj,n3,pk,nV,lB,m6,nB,os,kP,m$,om,mM,lz,ns,lP,n6,nr,n4,o9,o3,mR,nl,n1,nG,lJ,pb,nM,nE,lh,oj,oD,o7,mO,mD,oh,mJ,oa,na,nR,ng,ob,mV,oB,og,mI,oZ,mG,mK,oG,ne,no,or,ov,nP,oN,nN,n0,oL,mZ,oS,pe,nt,nA,ni,o$,o6,nw,m0,o1,oq,nX,mS,ox,mT,nW,oU,nu,oV,oO,ph,op,mQ,nx,ny,oP,ow,nJ,mH,oR,nQ,oe,mC,pf,m2,m_,n5,mN,oc,mU,nZ,oo,oK,oI,on,n_,pd,nS,n8,nY,nd,nI,ol,nO,n2,nc,o2,nU,oJ,pc,oC,od,mP,ok,of,m4,o0,nk,oX,pg,ot,o5,oy,nm,n9,oF,nF,m3,m1,mF,m5,o_,nz,oY,o8,nT,oQ,mL,nh,pl,oT,m9,mA,mX,m7,nn,oM,oH,np,pi,mW,z1,Ai,zl,zQ,zX,zv,zR,Ah,zH,zx,z9,z8,zE,zf,zU,zc,z2,Aa,zT,z$,za,zj,zC,H0,H$],aML=[0,od,mI,mM,o4,oP,m5,o0,mS,og,ot,mK,nm,nO,nD,pb,oY,oy,n_,oD,n$,mH,oz,n2,m6,nj,ns,o$,ni,n0,n6,ol,mL,m_,nB,nC,on,nW,nR,m7,pl,mF,m1,m4,nN,n1,oU,oO,n3,nA,pd,oJ,n9,ox,nz,nQ,nY,nt,oV,oZ,ob,nU,oj,o2,ow,n8,op,m9,m3,mN,mC,ph,n5,pi,oH,mA,nk,oC,oR,nJ,mZ,oN,no,ne,o3,nc,nI,nl,mR,mU,nS,o7,nx,oT,oe,pk,oF,oQ,of,mV,o9,ok,or,m2,m$,mJ,pc,mX,m0,o_,oc,nG,nX,np,nh,oM,mQ,nd,os,ov,ny,nF,ng,oG,oI,pf,mP,mD,nn,nE,mT,nr,nV,o6,mO,mW,nZ,oq,oL,nM,n4,oS,pe,o5,na,oh,nL,pg,nT,oa,oK,nu,nw,oo,o8,oX,o1,om,mE,mG,nP,oB],aMM=[0,od,mI,mM,o4,oP,m5,o0,mS,Hq,og,ot,mK,nm,nO,nD,H0,Il,pb,oY,oy,n_,oD,n$,mH,oz,n2,m6,nj,ns,o$,ni,n0,n6,z2,Hs,zx,ol,mL,m_,nB,zj,If,nC,on,I7,zQ,nW,nR,zv,m7,H8,pl,mF,m1,m4,Iz,nN,n1,oU,oO,Iq,kM,n3,nA,zX,pd,H2,oJ,n9,ox,nz,nQ,zT,nY,nt,oV,HV,oZ,ob,nU,oj,o2,ow,n8,op,m9,m3,zH,mN,mC,zR,Aa,ph,n5,lh,pi,oH,mA,nk,oC,oR,nJ,mZ,oN,no,ne,o3,nc,nI,nl,mR,mU,nS,o7,nx,oT,z$,kP,oe,pk,oF,zC,oQ,H$,of,mV,o9,ok,or,m2,m$,mJ,pc,mX,m0,z8,HO,o_,oc,Ai,nG,zU,nX,np,zE,nh,oM,Ii,I1,mQ,nd,os,Hx,ov,ny,nF,ng,Ah,oG,oI,zf,Ir,pf,Ig,mP,mD,nn,zl,nE,Ik,mT,nr,nV,o6,mO,mW,nZ,oq,oL,nM,HG,n4,oS,IE,pe,o5,na,Id,oh,nL,pg,nT,oa,oK,nu,nw,oo,o8,oX,o1,om,z1,mE,mG,nP,za,oB],aMN=[0,H$,H0,zC,zj,za,z$,zT,Aa,z2,zc,zU,zf,zE,z8,z9,zx,zH,Ah,zR,zv,zX,zQ,zl,Ai,z1,mW,pi,np,oH,oM,nn,m7,mX,mA,m9,oT,pl,nh,mL,oQ,nT,o8,oY,nz,o_,m5,mF,m1,m3,nF,oF,n9,nm,oy,o5,ot,pg,oX,nk,o0,m4,of,ok,mP,od,oC,pc,oJ,nU,o2,nc,n2,nO,ol,nI,nd,nY,n8,nS,pd,n_,on,oI,oK,oo,nZ,mU,oc,mN,n5,m_,m2,pf,mC,oe,nQ,oR,mH,nJ,ow,oP,ny,nx,mQ,op,ph,oO,oV,nu,oU,nW,mT,ox,mS,nX,oq,o1,m0,nw,o6,o$,ni,nA,nt,pe,oS,mZ,oL,n0,nN,oN,nP,ov,or,no,ne,oG,mK,mG,oZ,mI,og,oB,mV,ob,ng,nR,na,oa,mJ,oh,mD,mO,o7,oD,oj,lh,nE,nM,pb,lJ,nG,n1,nl,mR,o3,o9,n4,nr,n6,lP,ns,lz,mM,om,m$,kP,os,nB,m6,lB,nV,pk,n3,nj,nL,lM,kM,nD,o4,n$,oz,mE,nC,Ii,Iq,Il,Hq,Ig,If,H8,HG,I7,HO,I1,Iz,Ik,Hx,HV,Hs,H2,Id,Ir,IE],fn_=[12,41,0],Pg=[0,0,0,0,0,0,0,0,0,0,0],iI=[0,0,0],fn$=[12,E,0],foa=[2,0,0],fob=[11,iS,0],foc=[12,41,0],fod=[12,45,[4,0,0,0,[11,_,[2,0,[12,41,0]]]]],foe=[11,iS,0],fof=[11,lI,[2,0,[11,iS,0]]],fog=[12,41,0],foh=[12,41,0],adX=[0,as,ar,ji,jd,hA,iw,jg,gK,jh,jf,ja,je,jb],PS=[0,jb,je,ja,jf,jh,gK,jg,iw,hA,jd,ji,ar,as],adY=[0,jg,hA,iw,jd,ji,jf,jb,as,je,ja,ar,gK,jh],aO5=[2,a1T,0],ad7=[0,1,0,0],aPs=[0,l9],aPt=[0,qi],aPo=[0,"defaultProps"],aPn="render",aee=[0,[0,rS]],aed=[0,[0,rS]],aea=[0,[0,rS]],aeb=[0,[0,rS]],aPv=rS,aPK=[0,[0,rS]],aPJ=[0,[0,rS]],aQd=[0,tS,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,hK,eo,hT,ei,eR,hD,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,hI,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,hz,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,hE,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,CZ,cp,cb,cw,b1,eW,dU,eH,bQ,du,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,hH,bw,hL,a5,hG,b3,eX,bE,el,bA,ej,er,hU,hO,eM,d3,dh,d_,aV,by,en,bX,eI,eF,hF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,hQ,hM,hN,hR,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,hS,cg,a6,b0,eC,dc,b5,bW,cL,as,hP,bC,hJ,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],aeB=[0,cz,eA,dg,cl,ez,aJ,eD,tS,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,ee,bO,bo,bR,dX,e_,eL,bz,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,hF,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],aeC=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,CZ,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,tS],aeD=[0,a4w],aeF=[0,tS,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,hK,eo,hT,ei,eR,hD,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,hI,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,hz,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,hE,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,CZ,cp,cb,cw,b1,eW,dU,eH,bQ,du,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,hH,bw,hL,a5,hG,b3,eX,bE,el,bA,ej,er,hU,hO,eM,d3,dh,d_,aV,by,en,bX,eI,eF,hF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,hQ,hM,hN,hR,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,hS,cg,a6,b0,eC,dc,b5,bW,cL,as,hP,bC,hJ,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],G4=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,hK,eo,hT,ei,eR,hD,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,hI,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,hz,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,hE,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,hH,bw,hL,a5,hG,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,hF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,hQ,hM,hN,hR,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,hS,cg,a6,b0,eC,dc,b5,bW,cL,as,hP,bC,hJ,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],G5=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],G6=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,ee,bO,bo,bR,dX,e_,eL,bz,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,hF,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],G7=[0,hO,hU],aeG=[0,a4w],aRL=[0,aSN],aRV=[0,f0],aRW=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,hK,eo,hT,ei,eR,hD,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,hI,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,hz,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,hE,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,hH,bw,hL,a5,hG,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,hF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,hQ,hM,hN,hR,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,hS,cg,a6,b0,eC,dc,b5,bW,cL,as,hP,bC,hJ,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],aRX=[0,hO,hU],afj=" \t\n\r*",u8=[0,0,0,0,1,0,1,0,0,[0,50],0],aR9=[13,[0,0,0,0,0,0]],aR8=[3,0],afo=[0,1],pH=[0,0],aR$=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],aSa=[0,fM];r1(11,D$,aSV);r1(10,aL,ap_);r1(9,[fy,aX0,aYc],aX0);r1(8,atT,aS8);r1(7,Js,asn);r1(6,gf,alI);r1(5,[fy,aUV,-6],aUV);r1(4,D_,arJ);r1(3,vB,aoR);r1(2,j2,Ry);r1(1,Au,aqu);r1(0,Vj,aXg);var +a5m=aTe,a5l=[0,0,[0,6,0]],a5k="output_substring",a5h=fr,a5f=q_,a5g=qg,a5b="Stdlib.Exit",a5d=kd(1,0,32752),a5q="Stdlib.Sys.Break",a5x="Obj.Ephemeron.check_key",a5w="Obj.Ephemeron.set_key",a5v="Obj.Ephemeron.get_key",a5u="Obj.Ephemeron.create",a5s=aXU,a5r=aXU,a5y="CamlinternalLazy.Undefined",a5A="result is Error _",a5C=aoL,a5D=aUJ,a5E=a4g,a5F=a1e,a5G=ahl,a5H=aWt,a5B="Char.chr",a5O="List.map2",a5P="List.iter2",a5Q=a0J,a5R=[0,0,0],a5N=a3l,a5L="nth",a5M=a3l,a5K="tl",a5J="hd",a5V="String.blit / Bytes.blit_string",a5U="Bytes.blit",a5T="String.sub / Bytes.sub",a50="String.contains_from / Bytes.contains_from",a5Z="String.index_from_opt / Bytes.index_from_opt",a5Y="String.index_from / Bytes.index_from",a5X=g,a5W="String.concat",a54="Array.blit",a53="Array.fill",a52="Array.sub",a51="Array.init",a58=kd(0,0,0),a57=kd(Dj,Dj,DV),a59=kd(0,0,32768),a5_=kd(Dj,Dj,32767),a6b="Stdlib.Parsing.Parse_error",a6c=TV,a6d=TV,a6e=TV,a6f=TV,a6l="Map.remove_min_elt",a6m=[0,0,0,0],a6n=[0,"map.ml",QR,10],a6o=[0,0,0],a6h=SB,a6i=SB,a6j=SB,a6k=SB,a6p="Stdlib.Stack.Empty",a6q="Stdlib.Queue.Empty",a6x="Buffer.add_channel",a6w=[0,ap5,xp,2],a6v="Buffer.add_substring/add_subbytes",a6u="Buffer.add: cannot grow buffer",a6t=[0,ap5,93,2],a6s=[0,ap5,94,2],a6r="Buffer.sub",a6G="%c",a6H=Ac,a6I=aVA,a6J=a2_,a6K=a01,a6L=a1y,a6M="%f",a6N=fj,a6O="%{",a6P="%}",a6Q="%(",a6R="%)",a6S=y,a6T="%t",a6U="%?",a6V="%r",a6W="%_r",a6X=[0,km,850,23],a68=[0,km,814,21],a60=[0,km,815,21],a69=[0,km,818,21],a61=[0,km,819,21],a6_=[0,km,822,19],a62=[0,km,823,19],a6$=[0,km,826,22],a63=[0,km,827,22],a7a=[0,km,831,30],a64=[0,km,832,30],a66=[0,km,836,26],a6Y=[0,km,837,26],a67=[0,km,846,28],a6Z=[0,km,847,28],a65=[0,km,851,23],a8c=[0,km,1558,4],a8d="Printf: bad conversion %[",a8e=[0,km,1626,39],a8f=[0,km,1649,31],a8g=[0,km,1650,31],a8h="Printf: bad conversion %_",a8j=[0,km,1830,8],a8k=ahI,a8l=UE,a8m=ahI,a8n=UE,a8o=ahI,a8p=UE,a8r=[0,[11,"invalid box description ",[3,0,0]],"invalid box description %S"],a8q=[0,0,4],a7$=akK,a79="neg_infinity",a7_=a2m,a78=fr,a73=[0,iU],a7R="%+nd",a7S="% nd",a7U="%+ni",a7V="% ni",a7W="%nx",a7X="%#nx",a7Y="%nX",a7Z="%#nX",a70="%no",a71="%#no",a7Q="%nd",a7T=a01,a72="%nu",a7E="%+ld",a7F="% ld",a7H="%+li",a7I="% li",a7J="%lx",a7K="%#lx",a7L="%lX",a7M="%#lX",a7N="%lo",a7O="%#lo",a7D="%ld",a7G=a2_,a7P="%lu",a7r="%+Ld",a7s="% Ld",a7u="%+Li",a7v="% Li",a7w="%Lx",a7x="%#Lx",a7y="%LX",a7z="%#LX",a7A="%Lo",a7B="%#Lo",a7q="%Ld",a7t=a1y,a7C="%Lu",a7e="%+d",a7f="% d",a7h="%+i",a7i="% i",a7j="%x",a7k="%#x",a7l="%X",a7m="%#X",a7n="%o",a7o="%#o",a7d=iP,a7g=aVA,a7p=aXS,a6y=c,a6z="@}",a6A="@?",a6B="@\n",a6C="@.",a6D="@@",a6E="@%",a6F=a0Z,a7b="CamlinternalFormat.Type_mismatch",a8s="Stdlib.Arg.Bad",a8t="Stdlib.Arg.Help",a8x=g,a8y=[0,[11,_,[2,0,[2,0,0]]],", %s%s"],a8Z=[0,[11,aoE,[2,0,[12,10,0]]],a0F],a80=[0,[11,"Fatal error in uncaught exception handler: exception ",[2,0,[12,10,0]]],"Fatal error in uncaught exception handler: exception %s\n"],a8Y="Fatal error: out of memory in uncaught exception handler",a8W=[0,[11,aoE,[2,0,[12,10,0]]],a0F],a8S=[0,[2,0,[12,10,0]],aW2],a8T=ain,a8Q=[0,[2,0,[12,10,0]],aW2],a8R=[0,[11,ain,0],ain],a8I="Raised at",a8J="Re-raised at",a8K="Raised by primitive operation at",a8L="Called from",a8M=" (inlined)",a8O=g,a8N=[0,[2,0,[12,32,[2,0,[11,' in file "',[2,0,[12,34,[2,0,[11,", line ",[4,0,0,0,[11,a3z,fn7]]]]]]]]]],'%s %s in file "%s"%s, line %d, characters %d-%d'],a8P=[0,[2,0,[11," unknown location",0]],"%s unknown location"],a8D="Out of memory",a8E="Stack overflow",a8F="Pattern matching failed",a8G="Assertion failed",a8H="Undefined recursive module",a8z=[0,[12,40,[2,0,[2,0,[12,41,0]]]],"(%s%s)"],a8A=g,a8B=g,a8C=[0,[12,40,[2,0,[12,41,0]]],ai0],a8w=[0,[4,0,0,0,0],iP],a8u=[0,[3,0,0],ag],a8v=rV,a8U=[0,g,"(Cannot print locations:\n bytecode executable program file not found)","(Cannot print locations:\n bytecode executable program file appears to be corrupt)","(Cannot print locations:\n bytecode executable program file has wrong magic number)","(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)"],a83="Fun.Finally_raised: ",a81="Stdlib.Fun.Finally_raised",a84="x",a85=[0,987910699,495797812,364182224,414272206,318284740,990407751,383018966,270373319,840823159,24560019,536292337,512266505,189156120,730249596,143776328,51606627,140166561,366354223,1003410265,700563762,981890670,913149062,526082594,1021425055,784300257,667753350,630144451,949649812,48546892,415514493,258888527,511570777,89983870,283659902,308386020,242688715,482270760,865188196,1027664170,207196989,193777847,619708188,671350186,149669678,257044018,87658204,558145612,183450813,28133145,901332182,710253903,510646120,652377910,409934019,801085050],a89="Hashtbl: unsupported hash table format",a88=[0,0],a86=g,a9v=[3,0,3],a9w=fr,a9q=sL,a9r="<\/",a9s=g,a9m=sL,a9n=rJ,a9o=g,a9k=tI,a9g=g,a9h=g,a9i=g,a9j=g,a9f=[0,g],a9b=g,a9c=g,a9d=g,a9e=g,a8$=[0,g,0,g],a8_="Stdlib.Format.String_tag",a9B="Stdlib.Scanf.Scan_failure",a9M=[0,zF,439,17],a9L=[0,zF,aV0,13],a9K=[0,zF,a3k,13],a9J=[0,zF,aow,13],a9I=[0,zF,aW9,13],a9H=[0,zF,an$,13],a9G=[0,zF,Jc,50],a9O=[0,a0f,72,5],a9P=[0,a0f,81,2],a9Q="CamlinternalMod.update_mod: not a module",a9N="CamlinternalMod.init_mod: not a module",a9T=[0,0],a_E="Filename.chop_suffix",a_u=g,a_i=[0,sE,0],a_j=aWW,a_s=aYQ,a_t=g,a_k=a0j,a_r=g,a_l=aWj,a_q=g,a_m=gj,a_n=gj,a_o=sE,a_p=g,a_e="Filename.quote_command: bad file name ",a_f=sE,a_g=sE,a92=aWW,a98=aYQ,a99=g,a93=a0j,a97=g,a94=aWj,a96=g,a95=gj,a9U=aVZ,a9V=Rf,a9W=li,a90="/tmp",a91="'\\''",a_a="NUL",a_b=Rf,a_c=IR,a_d=fr,a_x=aVZ,a_y=Rf,a_z=li,a_L=sB,a_M=au,a_N=F,a_O=[0,[15,[17,2,0]],"%a@?"],a_H=IR,a_I=ahl,a_J=' "',a_K=sE,a_F="Sexplib0__Sexp.Not_found_s",a_G="Sexplib0__Sexp.Of_sexp_error",a$W=[0,0],a$X=[0,1],a$T=[0,"Sexplib.Conv.Of_sexp_error"],a$U=[0,lA,asz,15],a$Q=[0,0],a$R=[0,0],a$N=ap_,a$O=[0,lA,Hw,15],a$K=[0,"Exit"],a$L=[0,lA,zG,15],a$H=[0,arJ],a$I=[0,lA,QL,15],a$E=[0,Ry],a$F=[0,lA,aXb,15],a$B=[0,alI],a$C=[0,lA,aWH,15],a$y=[0,aoR],a$z=[0,lA,aqn,15],a$v=asn,a$w=[0,lA,alJ,15],a$s=[0,"Not_found_s"],a$t=[0,lA,aXR,15],a$p=[0,aqu],a$q=[0,lA,aZB,15],a$m=[0,"Arg.Help"],a$n=[0,lA,afK,15],a$j=[0,"Arg.Bad"],a$k=[0,lA,ajS,15],a$g=[0,"Lazy.Undefined"],a$h=[0,lA,ahY,15],a$d=[0,"Parsing.Parse_error"],a$e=[0,lA,aX_,15],a$a=[0,"Queue.Empty"],a$b=[0,lA,aZc,15],a_9=[0,"Scanf.Scan_failure"],a__=[0,lA,aqb,15],a_6=[0,"Stack.Empty"],a_7=[0,lA,a4j,15],a_3=[0,"Sys.Break"],a_4=[0,lA,a2U,15],a_1=[0,[2,0,[12,32,[2,0,[12,58,[4,0,0,0,[12,58,[4,0,0,0,0]]]]]]],"%s %s:%d:%d"],a_Z="char_of_sexp: atom string must contain one character only",a_0="char_of_sexp: atom needed",a_X="string_of_sexp: atom needed",a_W="unit_of_sexp: empty list needed",a_U=[0,2],a_T=[1,0],a_Q=[1,0],a$1="_of_sexp: unexpected variant constructor",a$0="_of_sexp: expected a variant type, saw an empty list",a$Z="_of_sexp: expected a variant type, saw a nested list",a$Y="_of_sexp: this constructor does not take arguments",bae=a0J,baf="List.for_all2",bag="List.rev_map2",bam=".pp",bal=[0,"Base.Sexp.pp_hum",0],bau=[0,aqi,53,6],bar=[0,"exn.ml.Reraised"],bas=[0,aqi,32,11],bao=[0,"exn.ml.Finally"],bap=[0,aqi,19,11],ban="Base__Exn.Finally",baq="Base__Exn.Reraised",bat="Base__Exn.Sexp",bav="Base.Exn",bax="use of [return] from a [with_return] that already returned",baw="Return",baz=g,bay=g,baA=i2,baB=i2,baD=[0,[11,"Negative position: ",[4,0,0,0,0]],"Negative position: %d"],baE=[0,[11,"Negative length: ",[4,0,0,0,0]],"Negative length: %d"],baF=[0,[11,"pos + len past end: ",[4,0,0,0,[11," + ",[4,0,0,0,[11," > ",[4,0,0,0,0]]]]]],"pos + len past end: %d + %d > %d"],baS=[0,"list.ml.Transpose_got_lists_of_different_lengths"],baT=[0,aXY,1387,13],baQ=[0,aXY,a31,4],baP=[0,[11,"List.init ",[4,0,0,0,0]],"List.init %d"],baN="map2_exn",baK="for_all2_exn",baJ="fold2_exn",baI=[0,[11,aUH,[2,0,[11,mj,[4,0,0,0,[11,aXN,[4,0,0,0,0]]]]]],a3J],baH="List.range': stride function cannot change direction",baG="List.range': stride function cannot return the same value",baL=[0,"List.find_exn: not found"],baR="Base__List.Transpose_got_lists_of_different_lengths",ba4=[0,"src/info.ml",CV,6],baU=[0,"Could_not_construct"],baV=[0,CW],baW=[0,"Exn"],baX=[0,"Sexp"],baY=[0,"Tag_sexp"],baZ=[0,"Tag_t"],ba0=[0,"Tag_arg"],ba1=[0,"Of_list"],ba2=[0,"With_backtrace"],ba3="Base__Info.Exn",ba5="Base.Info",ba6="Base.Error",ba7=[0,arD],ba8=[0,ap9],ba9=[0,agR],bbd="Base.Sign",bbf="max",bbg="min",bbh="clamp requires [min <= max]",bbe=[0,"src/comparable.ml",mc,4],bbm=au,bbl="Base.Unit.of_string: () expected",bbn="Base.Unit",bbo=g,bbp="Option.value_exn",bbq="Option.value_exn None",bbt="Base.Bool",bbv="Array.fold2_exn",bbu=[0,[11,aUH,[2,0,[11,mj,[4,0,0,0,[11,aXN,[4,0,0,0,0]]]]]],a3J],bbB=[0,aSo,q0,4],bbA=[0,aSo,l_,4],bby=kd(Dj,Dj,DV),bbz=kd(1,0,0),bbx=kd(0,0,0),bbw=[0,kd(0,0,0)],bbE=[0,[11,"Char.of_string: ",[3,0,0]],"Char.of_string: %S"],bbF="Base.Char",bbO=[0,[11,"String.chop_prefix_exn ",[3,0,[12,32,[3,0,0]]]],"String.chop_prefix_exn %S %S"],bbN=Tv,bbL=g,bbM="drop_prefix",bbK=" expecting nonnegative argument",bbJ=[0,[11,"String.is_substring_at: invalid index ",[4,0,0,0,[11," for string of length ",[4,0,0,0,0]]]],"String.is_substring_at: invalid index %d for string of length %d"],bbG=g,bbH=[0,"String.index_exn: not found"],bbQ=[0,[3,0,0],ag],bbP="Base.Bytes",bbZ="int63",bb0=a3u,bbT="int",bbU=a3u,bbR=[0,[11,"conversion from ",[2,0,[11,tJ,[2,0,[11," failed: ",[2,0,[11," is out of range",0]]]]]]],"conversion from %s to %s failed: %s is out of range"],fnY=[0,al2,96,9],fnX=[0,al2,nq,9],fnW=[0,al2,pR,9],bb3=[0,HW,HW,46340,1290,rR,73,35,21,14,10,8,7,5,5,4,4,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],bb5=[0,[2,0,[11," /",[12,37,[12,32,[2,0,[11," in core_int.ml: divisor should be positive",0]]]]]],"%s /%% %s in core_int.ml: divisor should be positive"],bb4=[0,[2,0,[12,32,[12,37,[12,32,[2,0,[11," in core_int.ml: modulus should be positive",0]]]]]],"%s %% %s in core_int.ml: modulus should be positive"],bca=[0,[11,"Int.of_float: argument (",[8,[0,0,0],0,0,[11,IX,0]]],"Int.of_float: argument (%f) is out of range or NaN"],bb7=[0,[11,"Int.of_string: ",[3,0,0]],"Int.of_string: %S"],bcc="Base.Int",bcy=[0,[11,"Nativeint.of_float: argument (",[8,[0,0,0],0,0,[11,IX,0]]],"Nativeint.of_float: argument (%f) is out of range or NaN"],bcs="Base.Nativeint",bcI=[0,[11,"Int64.of_float: argument (",[8,[0,0,0],0,0,[11,IX,0]]],"Int64.of_float: argument (%f) is out of range or NaN"],bcJ="Base.Int64",bc2=[0,[11,"Int63.of_float: argument (",[8,[0,0,0],0,0,[11,IX,0]]],"Int63.of_float: argument (%f) is out of range or NaN"],bcU=kd(0,0,0),bcT=[0,[11,"Int63.of_string: invalid input ",[3,0,0]],"Int63.of_string: invalid input %S"],bcL=kd(2,0,0),bcK=kd(2,0,0),bcP=kd(1,0,0),bc4="Base.Int63",bc$=[0,[11,"Int32.of_float: argument (",[8,[0,0,0],0,0,[11,IX,0]]],"Int32.of_float: argument (%f) is out of range or NaN"],bdk="Base.Int32",bdl=fr,bdn="Base.Float",bdp=Uw,bdq=[0,"src/wtf8.ml",65,9],bds=[0,"src/third-party/sedlex/flow_sedlexing.ml",C_,4],bdr="Flow_sedlexing.MalFormed",bdz=[0,0,0,0],bdA=[0,"src/hack_forked/utils/collections/third-party/flow_map.ml",728,36],bdB=[0,0,0],bdE=[0,[12,59,[17,[0,a,1,0],0]],r],bdF=[0,[18,[1,[0,0,g]],0],UE],bdG=[0,[11," ->",[17,[0,a,1,0],0]]," ->@ "],bdH=[0,[17,0,0],c],bdC=[0,[18,[1,[0,[11,xk,0],xk]],[12,hB,0]],Ue],bdD=[0,[12,32,0],gj],bdI=[0,[12,32,0],gj],bdJ=[0,[12,E,[17,0,0]],TF],bdQ="Union_find.Tvar_not_found",bdR=[0,[3,0,0],ag],bdW="Set.remove_min_elt",bd0=[0,[12,59,[17,[0,a,1,0],0]],r],bdY=[0,[18,[1,[0,[11,b,0],b]],[12,hB,0]],"@[<2>{"],bdZ=[0,[12,32,0],gj],bd1=[0,[12,32,0],gj],bd2=[0,[17,[0,w,0,0],[12,E,[17,0,0]]],"@,}@]"],bdX=[0,"src/hack_forked/utils/collections/third-party/flow_set.ml",afP,14],bd6=[0,[15,0],y],bed=qR,bee=oW,bef=qj,beg=rU,beh=pS,bei=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"File_key.LibFile",[17,[0,a,1,0],0]]]],"(@[<2>File_key.LibFile@ "],bej=[0,[3,0,0],ag],bek=[0,[17,0,[12,41,0]],t],bel=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"File_key.SourceFile",[17,[0,a,1,0],0]]]],"(@[<2>File_key.SourceFile@ "],bem=[0,[3,0,0],ag],ben=[0,[17,0,[12,41,0]],t],beo=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"File_key.JsonFile",[17,[0,a,1,0],0]]]],"(@[<2>File_key.JsonFile@ "],bep=[0,[3,0,0],ag],beq=[0,[17,0,[12,41,0]],t],ber=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"File_key.ResourceFile",[17,[0,a,1,0],0]]]],"(@[<2>File_key.ResourceFile@ "],bes=[0,[3,0,0],ag],bet=[0,[17,0,[12,41,0]],t],coR=[0,[15,0],y],coN=[0,[12,59,[17,[0,a,1,0],0]],r],coM=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],coO=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],coF=au,coE=H,coG=F,coH=G,cou=[0,[12,40,[18,[1,[0,0,g]],0]],an],cov=[0,[12,44,[17,[0,a,1,0],0]],I],cow=[0,[3,0,0],ag],cox=[0,[17,0,[12,41,0]],t],cot=H,coy=F,coz=G,con=[0,[12,59,[17,[0,a,1,0],0]],r],com=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],coo=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],coj=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cok="Flow_ast.Program.statements",col=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cop=[0,[17,0,0],c],coq=[0,[12,59,[17,[0,a,1,0],0]],r],cor=aU$,cos=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],coA=[0,[17,0,0],c],coB=[0,[12,59,[17,[0,a,1,0],0]],r],coC=av,coD=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],coI=[0,[17,0,0],c],coJ=[0,[12,59,[17,[0,a,1,0],0]],r],coK=aWQ,coL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],coP=[0,[17,0,0],c],coQ=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],coi=[0,[15,0],y],cof=[0,[12,40,[18,[1,[0,0,g]],0]],an],cog=[0,[12,44,[17,[0,a,1,0],0]],I],coh=[0,[17,0,[12,41,0]],t],cod=[0,[15,0],y],cn9=[0,[12,40,[18,[1,[0,0,g]],0]],an],cn_=[0,[12,44,[17,[0,a,1,0],0]],I],cn$=[0,[17,0,[12,41,0]],t],cn8=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Function.BodyBlock",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Function.BodyBlock@ "],coa=[0,[17,0,[12,41,0]],t],cob=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Function.BodyExpression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Function.BodyExpression@ "],coc=[0,[17,0,[12,41,0]],t],cn7=[0,[15,0],y],cnY=au,cnX=H,cnZ=F,cn0=G,cnQ=H,cnR=F,cnS=G,cnF=H,cnG=F,cnH=G,cng=H,cnh=F,cni=G,cnd=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cne="Flow_ast.Function.id",cnf=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cnj=[0,[17,0,0],c],cnk=[0,[12,59,[17,[0,a,1,0],0]],r],cnl=kQ,cnm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cnn=[0,[17,0,0],c],cno=[0,[12,59,[17,[0,a,1,0],0]],r],cnp=he,cnq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cnr=[0,[17,0,0],c],cns=[0,[12,59,[17,[0,a,1,0],0]],r],cnt=q3,cnu=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cnv=[0,[9,0,0],fj],cnw=[0,[17,0,0],c],cnx=[0,[12,59,[17,[0,a,1,0],0]],r],cny=xv,cnz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cnA=[0,[9,0,0],fj],cnB=[0,[17,0,0],c],cnC=[0,[12,59,[17,[0,a,1,0],0]],r],cnD=ax,cnE=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cnI=[0,[17,0,0],c],cnJ=[0,[12,59,[17,[0,a,1,0],0]],r],cnK=aD,cnL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cnM=[0,[17,0,0],c],cnN=[0,[12,59,[17,[0,a,1,0],0]],r],cnO=lH,cnP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cnT=[0,[17,0,0],c],cnU=[0,[12,59,[17,[0,a,1,0],0]],r],cnV=av,cnW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cn1=[0,[17,0,0],c],cn2=[0,[12,59,[17,[0,a,1,0],0]],r],cn3=aXu,cn4=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cn5=[0,[17,0,0],c],cn6=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cnc=[0,[15,0],y],cm8=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Function.ReturnAnnot.Missing",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Function.ReturnAnnot.Missing@ "],cm9=[0,[17,0,[12,41,0]],t],cm_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Function.ReturnAnnot.Available",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Function.ReturnAnnot.Available@ "],cm$=[0,[17,0,[12,41,0]],t],cna=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Function.ReturnAnnot.TypeGuard",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Function.ReturnAnnot.TypeGuard@ "],cnb=[0,[17,0,[12,41,0]],t],cm7=[0,[15,0],y],cm1=[0,[12,59,[17,[0,a,1,0],0]],r],cm0=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],cm2=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],cmZ=H,cm3=F,cm4=G,cmS=H,cmT=F,cmU=G,cmM=[0,[12,59,[17,[0,a,1,0],0]],r],cmL=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],cmN=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],cmE=H,cmF=F,cmG=G,cmB=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cmC="Flow_ast.Function.Params.this_",cmD=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cmH=[0,[17,0,0],c],cmI=[0,[12,59,[17,[0,a,1,0],0]],r],cmJ=kQ,cmK=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cmO=[0,[17,0,0],c],cmP=[0,[12,59,[17,[0,a,1,0],0]],r],cmQ=vm,cmR=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cmV=[0,[17,0,0],c],cmW=[0,[12,59,[17,[0,a,1,0],0]],r],cmX=av,cmY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cm5=[0,[17,0,0],c],cm6=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cmA=[0,[15,0],y],cmx=[0,[12,40,[18,[1,[0,0,g]],0]],an],cmy=[0,[12,44,[17,[0,a,1,0],0]],I],cmz=[0,[17,0,[12,41,0]],t],cmw=[0,[15,0],y],cmr=au,cmq=H,cms=F,cmt=G,cmj=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cmk="Flow_ast.Function.ThisParam.annot",cml=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cmm=[0,[17,0,0],c],cmn=[0,[12,59,[17,[0,a,1,0],0]],r],cmo=av,cmp=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cmu=[0,[17,0,0],c],cmv=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cmi=[0,[15,0],y],cmf=[0,[12,40,[18,[1,[0,0,g]],0]],an],cmg=[0,[12,44,[17,[0,a,1,0],0]],I],cmh=[0,[17,0,[12,41,0]],t],cme=[0,[15,0],y],cl$=H,cma=F,cmb=G,cl4=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cl5="Flow_ast.Function.Param.argument",cl6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cl7=[0,[17,0,0],c],cl8=[0,[12,59,[17,[0,a,1,0],0]],r],cl9=gF,cl_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cmc=[0,[17,0,0],c],cmd=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cl3=[0,[15,0],y],cl0=[0,[12,40,[18,[1,[0,0,g]],0]],an],cl1=[0,[12,44,[17,[0,a,1,0],0]],I],cl2=[0,[17,0,[12,41,0]],t],clZ=[0,[15,0],y],clU=au,clT=H,clV=F,clW=G,clM=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],clN="Flow_ast.Function.RestParam.argument",clO=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],clP=[0,[17,0,0],c],clQ=[0,[12,59,[17,[0,a,1,0],0]],r],clR=av,clS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],clX=[0,[17,0,0],c],clY=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],clL=[0,[15,0],y],clI=[0,[12,40,[18,[1,[0,0,g]],0]],an],clJ=[0,[12,44,[17,[0,a,1,0],0]],I],clK=[0,[17,0,[12,41,0]],t],clG=[0,[15,0],y],clB=au,clA=H,clC=F,clD=G,clu=[0,[12,59,[17,[0,a,1,0],0]],r],clt=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],clv=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],clm=H,cln=F,clo=G,clf=H,clg=F,clh=G,ck_=H,ck$=F,cla=G,ckZ=H,ck0=F,ck1=G,ckW=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],ckX="Flow_ast.Class.id",ckY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ck2=[0,[17,0,0],c],ck3=[0,[12,59,[17,[0,a,1,0],0]],r],ck4=he,ck5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ck6=[0,[17,0,0],c],ck7=[0,[12,59,[17,[0,a,1,0],0]],r],ck8=lH,ck9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],clb=[0,[17,0,0],c],clc=[0,[12,59,[17,[0,a,1,0],0]],r],cld=jZ,cle=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cli=[0,[17,0,0],c],clj=[0,[12,59,[17,[0,a,1,0],0]],r],clk=sy,cll=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],clp=[0,[17,0,0],c],clq=[0,[12,59,[17,[0,a,1,0],0]],r],clr="class_decorators",cls=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],clw=[0,[17,0,0],c],clx=[0,[12,59,[17,[0,a,1,0],0]],r],cly=av,clz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],clE=[0,[17,0,0],c],clF=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],ckV=[0,[15,0],y],ckQ=au,ckP=H,ckR=F,ckS=G,ckI=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],ckJ="Flow_ast.Class.Decorator.expression",ckK=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ckL=[0,[17,0,0],c],ckM=[0,[12,59,[17,[0,a,1,0],0]],r],ckN=av,ckO=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ckT=[0,[17,0,0],c],ckU=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],ckH=[0,[15,0],y],ckE=[0,[12,40,[18,[1,[0,0,g]],0]],an],ckF=[0,[12,44,[17,[0,a,1,0],0]],I],ckG=[0,[17,0,[12,41,0]],t],ckC=[0,[15,0],y],ckw=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Class.Body.Method",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Class.Body.Method@ "],ckx=[0,[17,0,[12,41,0]],t],cky=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Class.Body.Property",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Class.Body.Property@ "],ckz=[0,[17,0,[12,41,0]],t],ckA=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Class.Body.PrivateField",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Class.Body.PrivateField@ "],ckB=[0,[17,0,[12,41,0]],t],ckv=[0,[15,0],y],ckq=au,ckp=H,ckr=F,cks=G,ckj=[0,[12,59,[17,[0,a,1,0],0]],r],cki=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],ckk=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ckf=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],ckg="Flow_ast.Class.Body.body",ckh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ckl=[0,[17,0,0],c],ckm=[0,[12,59,[17,[0,a,1,0],0]],r],ckn=av,cko=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ckt=[0,[17,0,0],c],cku=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cke=[0,[15,0],y],ckb=[0,[12,40,[18,[1,[0,0,g]],0]],an],ckc=[0,[12,44,[17,[0,a,1,0],0]],I],ckd=[0,[17,0,[12,41,0]],t],cka=[0,[15,0],y],cj7=au,cj6=H,cj8=F,cj9=G,cj0=[0,[12,59,[17,[0,a,1,0],0]],r],cjZ=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],cj1=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],cjW=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cjX="Flow_ast.Class.Implements.interfaces",cjY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cj2=[0,[17,0,0],c],cj3=[0,[12,59,[17,[0,a,1,0],0]],r],cj4=av,cj5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cj_=[0,[17,0,0],c],cj$=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cjV=[0,[15,0],y],cjS=[0,[12,40,[18,[1,[0,0,g]],0]],an],cjT=[0,[12,44,[17,[0,a,1,0],0]],I],cjU=[0,[17,0,[12,41,0]],t],cjR=[0,[15,0],y],cjM=H,cjN=F,cjO=G,cjF=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cjG="Flow_ast.Class.Implements.Interface.id",cjH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cjI=[0,[17,0,0],c],cjJ=[0,[12,59,[17,[0,a,1,0],0]],r],cjK=rP,cjL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cjP=[0,[17,0,0],c],cjQ=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cjE=[0,[15,0],y],cjB=[0,[12,40,[18,[1,[0,0,g]],0]],an],cjC=[0,[12,44,[17,[0,a,1,0],0]],I],cjD=[0,[17,0,[12,41,0]],t],cjA=[0,[15,0],y],cjv=au,cju=H,cjw=F,cjx=G,cjn=H,cjo=F,cjp=G,cjg=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cjh="Flow_ast.Class.Extends.expr",cji=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cjj=[0,[17,0,0],c],cjk=[0,[12,59,[17,[0,a,1,0],0]],r],cjl=rP,cjm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cjq=[0,[17,0,0],c],cjr=[0,[12,59,[17,[0,a,1,0],0]],r],cjs=av,cjt=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cjy=[0,[17,0,0],c],cjz=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cjf=[0,[15,0],y],cjc=[0,[12,40,[18,[1,[0,0,g]],0]],an],cjd=[0,[12,44,[17,[0,a,1,0],0]],I],cje=[0,[17,0,[12,41,0]],t],cjb=[0,[15,0],y],ci8=au,ci7=H,ci9=F,ci_=G,ci1=[0,[12,59,[17,[0,a,1,0],0]],r],ci0=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],ci2=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ciT=H,ciU=F,ciV=G,ciz=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],ciA="Flow_ast.Class.PrivateField.key",ciB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ciC=[0,[17,0,0],c],ciD=[0,[12,59,[17,[0,a,1,0],0]],r],ciE=g8,ciF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ciG=[0,[17,0,0],c],ciH=[0,[12,59,[17,[0,a,1,0],0]],r],ciI=qq,ciJ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ciK=[0,[17,0,0],c],ciL=[0,[12,59,[17,[0,a,1,0],0]],r],ciM=ko,ciN=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ciO=[0,[9,0,0],fj],ciP=[0,[17,0,0],c],ciQ=[0,[12,59,[17,[0,a,1,0],0]],r],ciR=ay,ciS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ciW=[0,[17,0,0],c],ciX=[0,[12,59,[17,[0,a,1,0],0]],r],ciY=zZ,ciZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ci3=[0,[17,0,0],c],ci4=[0,[12,59,[17,[0,a,1,0],0]],r],ci5=av,ci6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ci$=[0,[17,0,0],c],cja=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],ciy=[0,[15,0],y],civ=[0,[12,40,[18,[1,[0,0,g]],0]],an],ciw=[0,[12,44,[17,[0,a,1,0],0]],I],cix=[0,[17,0,[12,41,0]],t],ciu=[0,[15,0],y],ciq="Flow_ast.Class.Property.Uninitialized",cir="Flow_ast.Class.Property.Declared",cis=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Class.Property.Initialized",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Class.Property.Initialized@ "],cit=[0,[17,0,[12,41,0]],t],cip=[0,[15,0],y],cik=au,cij=H,cil=F,cim=G,cid=[0,[12,59,[17,[0,a,1,0],0]],r],cic=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],cie=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ch7=H,ch8=F,ch9=G,chN=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],chO="Flow_ast.Class.Property.key",chP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],chQ=[0,[17,0,0],c],chR=[0,[12,59,[17,[0,a,1,0],0]],r],chS=g8,chT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],chU=[0,[17,0,0],c],chV=[0,[12,59,[17,[0,a,1,0],0]],r],chW=qq,chX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],chY=[0,[17,0,0],c],chZ=[0,[12,59,[17,[0,a,1,0],0]],r],ch0=ko,ch1=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ch2=[0,[9,0,0],fj],ch3=[0,[17,0,0],c],ch4=[0,[12,59,[17,[0,a,1,0],0]],r],ch5=ay,ch6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ch_=[0,[17,0,0],c],ch$=[0,[12,59,[17,[0,a,1,0],0]],r],cia=zZ,cib=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cif=[0,[17,0,0],c],cig=[0,[12,59,[17,[0,a,1,0],0]],r],cih=av,cii=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cin=[0,[17,0,0],c],cio=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],chM=[0,[15,0],y],chJ=[0,[12,40,[18,[1,[0,0,g]],0]],an],chK=[0,[12,44,[17,[0,a,1,0],0]],I],chL=[0,[17,0,[12,41,0]],t],chI=[0,[15,0],y],chD=au,chC=H,chE=F,chF=G,chw=[0,[12,59,[17,[0,a,1,0],0]],r],chv=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],chx=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],chj=[0,[12,40,[18,[1,[0,0,g]],0]],an],chk=[0,[12,44,[17,[0,a,1,0],0]],I],chl=[0,[17,0,[12,41,0]],t],cg_=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cg$="Flow_ast.Class.Method.kind",cha=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],chb=[0,[17,0,0],c],chc=[0,[12,59,[17,[0,a,1,0],0]],r],chd=l9,che=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],chf=[0,[17,0,0],c],chg=[0,[12,59,[17,[0,a,1,0],0]],r],chh=g8,chi=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],chm=[0,[17,0,0],c],chn=[0,[12,59,[17,[0,a,1,0],0]],r],cho=ko,chp=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],chq=[0,[9,0,0],fj],chr=[0,[17,0,0],c],chs=[0,[12,59,[17,[0,a,1,0],0]],r],cht=zZ,chu=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],chy=[0,[17,0,0],c],chz=[0,[12,59,[17,[0,a,1,0],0]],r],chA=av,chB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],chG=[0,[17,0,0],c],chH=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cg9=[0,[15,0],y],cg5="Flow_ast.Class.Method.Constructor",cg6="Flow_ast.Class.Method.Method",cg7="Flow_ast.Class.Method.Get",cg8="Flow_ast.Class.Method.Set",cg4=[0,[15,0],y],cg1=[0,[12,40,[18,[1,[0,0,g]],0]],an],cg2=[0,[12,44,[17,[0,a,1,0],0]],I],cg3=[0,[17,0,[12,41,0]],t],cgZ=[0,[15,0],y],cgK=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cgL="Flow_ast.Comment.kind",cgM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cgN=[0,[17,0,0],c],cgO=[0,[12,59,[17,[0,a,1,0],0]],r],cgP="text",cgQ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cgR=[0,[3,0,0],ag],cgS=[0,[17,0,0],c],cgT=[0,[12,59,[17,[0,a,1,0],0]],r],cgU="on_newline",cgV=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cgW=[0,[9,0,0],fj],cgX=[0,[17,0,0],c],cgY=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cgJ=[0,[15,0],y],cgH="Flow_ast.Comment.Line",cgI="Flow_ast.Comment.Block",cgG=[0,[15,0],y],cgD=[0,[12,40,[18,[1,[0,0,g]],0]],an],cgE=[0,[12,44,[17,[0,a,1,0],0]],I],cgF=[0,[17,0,[12,41,0]],t],cgB=[0,[15,0],y],cgt=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Object",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Object@ "],cgu=[0,[17,0,[12,41,0]],t],cgv=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Array",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Array@ "],cgw=[0,[17,0,[12,41,0]],t],cgx=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Identifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Identifier@ "],cgy=[0,[17,0,[12,41,0]],t],cgz=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Expression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Expression@ "],cgA=[0,[17,0,[12,41,0]],t],cgs=[0,[15,0],y],cgp=[0,[12,40,[18,[1,[0,0,g]],0]],an],cgq=[0,[12,44,[17,[0,a,1,0],0]],I],cgr=[0,[17,0,[12,41,0]],t],cgo=[0,[15,0],y],cga=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cgb="Flow_ast.Pattern.Identifier.name",cgc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cgd=[0,[17,0,0],c],cge=[0,[12,59,[17,[0,a,1,0],0]],r],cgf=qq,cgg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cgh=[0,[17,0,0],c],cgi=[0,[12,59,[17,[0,a,1,0],0]],r],cgj=iu,cgk=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cgl=[0,[9,0,0],fj],cgm=[0,[17,0,0],c],cgn=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cf$=[0,[15,0],y],cf5=[0,[12,59,[17,[0,a,1,0],0]],r],cf4=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],cf6=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],cf3=H,cf7=F,cf8=G,cfT=[0,[12,59,[17,[0,a,1,0],0]],r],cfS=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],cfU=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],cfP=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cfQ="Flow_ast.Pattern.Array.elements",cfR=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cfV=[0,[17,0,0],c],cfW=[0,[12,59,[17,[0,a,1,0],0]],r],cfX=qq,cfY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cfZ=[0,[17,0,0],c],cf0=[0,[12,59,[17,[0,a,1,0],0]],r],cf1=av,cf2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cf9=[0,[17,0,0],c],cf_=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cfO=[0,[15,0],y],cfI=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Array.Element",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Array.Element@ "],cfJ=[0,[17,0,[12,41,0]],t],cfK=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Array.RestElement",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Array.RestElement@ "],cfL=[0,[17,0,[12,41,0]],t],cfM=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Array.Hole",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Array.Hole@ "],cfN=[0,[17,0,[12,41,0]],t],cfH=[0,[15,0],y],cfC=H,cfD=F,cfE=G,cfv=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cfw="Flow_ast.Pattern.Array.Element.argument",cfx=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cfy=[0,[17,0,0],c],cfz=[0,[12,59,[17,[0,a,1,0],0]],r],cfA=gF,cfB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cfF=[0,[17,0,0],c],cfG=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cfu=[0,[15,0],y],cfr=[0,[12,40,[18,[1,[0,0,g]],0]],an],cfs=[0,[12,44,[17,[0,a,1,0],0]],I],cft=[0,[17,0,[12,41,0]],t],cfq=[0,[15,0],y],cfk=[0,[12,59,[17,[0,a,1,0],0]],r],cfj=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],cfl=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],cfi=H,cfm=F,cfn=G,ce_=[0,[12,59,[17,[0,a,1,0],0]],r],ce9=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],ce$=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ce6=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],ce7="Flow_ast.Pattern.Object.properties",ce8=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cfa=[0,[17,0,0],c],cfb=[0,[12,59,[17,[0,a,1,0],0]],r],cfc=qq,cfd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cfe=[0,[17,0,0],c],cff=[0,[12,59,[17,[0,a,1,0],0]],r],cfg=av,cfh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cfo=[0,[17,0,0],c],cfp=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],ce5=[0,[15,0],y],ce1=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Object.Property",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Object.Property@ "],ce2=[0,[17,0,[12,41,0]],t],ce3=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Object.RestElement",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Object.RestElement@ "],ce4=[0,[17,0,[12,41,0]],t],ce0=[0,[15,0],y],ceQ=H,ceR=F,ceS=G,ceF=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],ceG="Flow_ast.Pattern.Object.Property.key",ceH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ceI=[0,[17,0,0],c],ceJ=[0,[12,59,[17,[0,a,1,0],0]],r],ceK=aV,ceL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ceM=[0,[17,0,0],c],ceN=[0,[12,59,[17,[0,a,1,0],0]],r],ceO=gF,ceP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ceT=[0,[17,0,0],c],ceU=[0,[12,59,[17,[0,a,1,0],0]],r],ceV=DP,ceW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ceX=[0,[9,0,0],fj],ceY=[0,[17,0,0],c],ceZ=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],ceE=[0,[15,0],y],ceB=[0,[12,40,[18,[1,[0,0,g]],0]],an],ceC=[0,[12,44,[17,[0,a,1,0],0]],I],ceD=[0,[17,0,[12,41,0]],t],ceA=[0,[15,0],y],ces=[0,[12,40,[18,[1,[0,0,g]],0]],an],cet=[0,[12,44,[17,[0,a,1,0],0]],I],ceu=[0,[17,0,[12,41,0]],t],cen=[0,[12,40,[18,[1,[0,0,g]],0]],an],ceo=[0,[12,44,[17,[0,a,1,0],0]],I],cep=[0,[17,0,[12,41,0]],t],cei=[0,[12,40,[18,[1,[0,0,g]],0]],an],cej=[0,[12,44,[17,[0,a,1,0],0]],I],cek=[0,[17,0,[12,41,0]],t],ceh=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Object.Property.StringLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Object.Property.StringLiteral@ "],cel=[0,[17,0,[12,41,0]],t],cem=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Object.Property.NumberLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Object.Property.NumberLiteral@ "],ceq=[0,[17,0,[12,41,0]],t],cer=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Object.Property.BigIntLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Object.Property.BigIntLiteral@ "],cev=[0,[17,0,[12,41,0]],t],cew=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Object.Property.Identifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Object.Property.Identifier@ "],cex=[0,[17,0,[12,41,0]],t],cey=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Pattern.Object.Property.Computed",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Pattern.Object.Property.Computed@ "],cez=[0,[17,0,[12,41,0]],t],ceg=[0,[15,0],y],ceb=au,cea=H,cec=F,ced=G,cd5=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cd6="Flow_ast.Pattern.RestElement.argument",cd7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cd8=[0,[17,0,0],c],cd9=[0,[12,59,[17,[0,a,1,0],0]],r],cd_=av,cd$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cee=[0,[17,0,0],c],cef=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cd4=[0,[15,0],y],cd1=[0,[12,40,[18,[1,[0,0,g]],0]],an],cd2=[0,[12,44,[17,[0,a,1,0],0]],I],cd3=[0,[17,0,[12,41,0]],t],cdZ=[0,[15,0],y],cdU=au,cdT=H,cdV=F,cdW=G,cdM=[0,[12,59,[17,[0,a,1,0],0]],r],cdL=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],cdN=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],cdJ=[0,[12,40,[18,[1,[0,0,g]],0]],an],cdK=[0,[12,44,[17,[0,a,1,0],0]],I],cdO=[0,[17,0,[12,41,0]],t],cdy=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cdz="Flow_ast.JSX.frag_opening_element",cdA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cdB=[0,[17,0,0],c],cdC=[0,[12,59,[17,[0,a,1,0],0]],r],cdD="frag_closing_element",cdE=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cdF=[0,[17,0,0],c],cdG=[0,[12,59,[17,[0,a,1,0],0]],r],cdH="frag_children",cdI=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cdP=[0,[17,0,0],c],cdQ=[0,[12,59,[17,[0,a,1,0],0]],r],cdR="frag_comments",cdS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cdX=[0,[17,0,0],c],cdY=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cdx=[0,[15,0],y],cds=au,cdr=H,cdt=F,cdu=G,cdk=[0,[12,59,[17,[0,a,1,0],0]],r],cdj=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],cdl=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],cdh=[0,[12,40,[18,[1,[0,0,g]],0]],an],cdi=[0,[12,44,[17,[0,a,1,0],0]],I],cdm=[0,[17,0,[12,41,0]],t],cda=H,cdb=F,cdc=G,cc5=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cc6="Flow_ast.JSX.opening_element",cc7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cc8=[0,[17,0,0],c],cc9=[0,[12,59,[17,[0,a,1,0],0]],r],cc_="closing_element",cc$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cdd=[0,[17,0,0],c],cde=[0,[12,59,[17,[0,a,1,0],0]],r],cdf=tZ,cdg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cdn=[0,[17,0,0],c],cdo=[0,[12,59,[17,[0,a,1,0],0]],r],cdp=av,cdq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cdv=[0,[17,0,0],c],cdw=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cc4=[0,[15,0],y],ccU=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.Element",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.Element@ "],ccV=[0,[17,0,[12,41,0]],t],ccW=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.Fragment",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.Fragment@ "],ccX=[0,[17,0,[12,41,0]],t],ccY=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.ExpressionContainer",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.ExpressionContainer@ "],ccZ=[0,[17,0,[12,41,0]],t],cc0=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.SpreadChild",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.SpreadChild@ "],cc1=[0,[17,0,[12,41,0]],t],cc2=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.Text",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.Text@ "],cc3=[0,[17,0,[12,41,0]],t],ccT=[0,[15,0],y],ccQ=[0,[12,40,[18,[1,[0,0,g]],0]],an],ccR=[0,[12,44,[17,[0,a,1,0],0]],I],ccS=[0,[17,0,[12,41,0]],t],ccP=[0,[15,0],y],ccK=au,ccJ=H,ccL=F,ccM=G,ccC=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],ccD="Flow_ast.JSX.SpreadChild.expression",ccE=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ccF=[0,[17,0,0],c],ccG=[0,[12,59,[17,[0,a,1,0],0]],r],ccH=av,ccI=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ccN=[0,[17,0,0],c],ccO=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],ccB=[0,[15,0],y],ccw=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],ccx="Flow_ast.JSX.Closing.name",ccy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ccz=[0,[17,0,0],c],ccA=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],ccv=[0,[15,0],y],ccs=[0,[12,40,[18,[1,[0,0,g]],0]],an],cct=[0,[12,44,[17,[0,a,1,0],0]],I],ccu=[0,[17,0,[12,41,0]],t],ccr=[0,[15,0],y],ccn=[0,[12,59,[17,[0,a,1,0],0]],r],ccm=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],cco=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],cca=H,ccb=F,ccc=G,cb5=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cb6="Flow_ast.JSX.Opening.name",cb7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cb8=[0,[17,0,0],c],cb9=[0,[12,59,[17,[0,a,1,0],0]],r],cb_=rP,cb$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ccd=[0,[17,0,0],c],cce=[0,[12,59,[17,[0,a,1,0],0]],r],ccf="self_closing",ccg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cch=[0,[9,0,0],fj],cci=[0,[17,0,0],c],ccj=[0,[12,59,[17,[0,a,1,0],0]],r],cck=aU6,ccl=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ccp=[0,[17,0,0],c],ccq=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cb4=[0,[15,0],y],cb0=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.Opening.Attribute",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.Opening.Attribute@ "],cb1=[0,[17,0,[12,41,0]],t],cb2=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.Opening.SpreadAttribute",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.Opening.SpreadAttribute@ "],cb3=[0,[17,0,[12,41,0]],t],cbZ=[0,[15,0],y],cbW=[0,[12,40,[18,[1,[0,0,g]],0]],an],cbX=[0,[12,44,[17,[0,a,1,0],0]],I],cbY=[0,[17,0,[12,41,0]],t],cbV=[0,[15,0],y],cbP=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.Identifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.Identifier@ "],cbQ=[0,[17,0,[12,41,0]],t],cbR=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.NamespacedName",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.NamespacedName@ "],cbS=[0,[17,0,[12,41,0]],t],cbT=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.MemberExpression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.MemberExpression@ "],cbU=[0,[17,0,[12,41,0]],t],cbO=[0,[15,0],y],cbF=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cbG="Flow_ast.JSX.MemberExpression._object",cbH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cbI=[0,[17,0,0],c],cbJ=[0,[12,59,[17,[0,a,1,0],0]],r],cbK=y8,cbL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cbM=[0,[17,0,0],c],cbN=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cbE=[0,[15,0],y],cbA=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.MemberExpression.Identifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.MemberExpression.Identifier@ "],cbB=[0,[17,0,[12,41,0]],t],cbC=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.MemberExpression.MemberExpression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.MemberExpression.MemberExpression@ "],cbD=[0,[17,0,[12,41,0]],t],cbz=[0,[15,0],y],cbw=[0,[12,40,[18,[1,[0,0,g]],0]],an],cbx=[0,[12,44,[17,[0,a,1,0],0]],I],cby=[0,[17,0,[12,41,0]],t],cbv=[0,[15,0],y],cbq=au,cbp=H,cbr=F,cbs=G,cbi=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cbj="Flow_ast.JSX.SpreadAttribute.argument",cbk=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cbl=[0,[17,0,0],c],cbm=[0,[12,59,[17,[0,a,1,0],0]],r],cbn=av,cbo=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cbt=[0,[17,0,0],c],cbu=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cbh=[0,[15,0],y],cbe=[0,[12,40,[18,[1,[0,0,g]],0]],an],cbf=[0,[12,44,[17,[0,a,1,0],0]],I],cbg=[0,[17,0,[12,41,0]],t],cbd=[0,[15,0],y],ca_=H,ca$=F,cba=G,ca3=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],ca4="Flow_ast.JSX.Attribute.name",ca5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ca6=[0,[17,0,0],c],ca7=[0,[12,59,[17,[0,a,1,0],0]],r],ca8=g8,ca9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cbb=[0,[17,0,0],c],cbc=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],ca2=[0,[15,0],y],caY=[0,[12,40,[18,[1,[0,0,g]],0]],an],caZ=[0,[12,44,[17,[0,a,1,0],0]],I],ca0=[0,[17,0,[12,41,0]],t],caT=[0,[12,40,[18,[1,[0,0,g]],0]],an],caU=[0,[12,44,[17,[0,a,1,0],0]],I],caV=[0,[17,0,[12,41,0]],t],caS=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.Attribute.StringLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.Attribute.StringLiteral@ "],caW=[0,[17,0,[12,41,0]],t],caX=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.Attribute.ExpressionContainer",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.Attribute.ExpressionContainer@ "],ca1=[0,[17,0,[12,41,0]],t],caR=[0,[15,0],y],caN=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.Attribute.Identifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.Attribute.Identifier@ "],caO=[0,[17,0,[12,41,0]],t],caP=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.Attribute.NamespacedName",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.Attribute.NamespacedName@ "],caQ=[0,[17,0,[12,41,0]],t],caM=[0,[15,0],y],caJ=[0,[12,40,[18,[1,[0,0,g]],0]],an],caK=[0,[12,44,[17,[0,a,1,0],0]],I],caL=[0,[17,0,[12,41,0]],t],cax=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cay="Flow_ast.JSX.Text.value",caz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],caA=[0,[3,0,0],ag],caB=[0,[17,0,0],c],caC=[0,[12,59,[17,[0,a,1,0],0]],r],caD=k_,caE=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],caF=[0,[3,0,0],ag],caG=[0,[17,0,0],c],caH=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],caI=[0,[15,0],y],caw=[0,[15,0],y],cat=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.JSX.ExpressionContainer.Expression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.JSX.ExpressionContainer.Expression@ "],cau=[0,[17,0,[12,41,0]],t],cav="Flow_ast.JSX.ExpressionContainer.EmptyExpression",cas=[0,[15,0],y],cam=[0,[12,59,[17,[0,a,1,0],0]],r],cal=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],can=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],cak=H,cao=F,cap=G,cad=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cae="Flow_ast.JSX.ExpressionContainer.expression",caf=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cag=[0,[17,0,0],c],cah=[0,[12,59,[17,[0,a,1,0],0]],r],cai=av,caj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],caq=[0,[17,0,0],c],car=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],cac=[0,[15,0],y],b$5=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b$6="Flow_ast.JSX.NamespacedName.namespace",b$7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b$8=[0,[17,0,0],c],b$9=[0,[12,59,[17,[0,a,1,0],0]],r],b$_=gi,b$$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],caa=[0,[17,0,0],c],cab=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b$4=[0,[15,0],y],b$1=[0,[12,40,[18,[1,[0,0,g]],0]],an],b$2=[0,[12,44,[17,[0,a,1,0],0]],I],b$3=[0,[17,0,[12,41,0]],t],b$0=[0,[15,0],y],b$V=au,b$U=H,b$W=F,b$X=G,b$M=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b$N="Flow_ast.JSX.Identifier.name",b$O=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b$P=[0,[3,0,0],ag],b$Q=[0,[17,0,0],c],b$R=[0,[12,59,[17,[0,a,1,0],0]],r],b$S=av,b$T=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b$Y=[0,[17,0,0],c],b$Z=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b$L=[0,[15,0],y],b$I=[0,[12,40,[18,[1,[0,0,g]],0]],an],b$J=[0,[12,44,[17,[0,a,1,0],0]],I],b$K=[0,[17,0,[12,41,0]],t],b$G=[0,[15,0],y],b_Y=au,b_X=H,b_Z=F,b_0=G,b_s=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Array",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Array@ "],b_t=[0,[17,0,[12,41,0]],t],b_u=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.ArrowFunction",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.ArrowFunction@ "],b_v=[0,[17,0,[12,41,0]],t],b_w=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.AsExpression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.AsExpression@ "],b_x=[0,[17,0,[12,41,0]],t],b_y=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Assignment",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Assignment@ "],b_z=[0,[17,0,[12,41,0]],t],b_A=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Binary",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Binary@ "],b_B=[0,[17,0,[12,41,0]],t],b_C=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Call",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Call@ "],b_D=[0,[17,0,[12,41,0]],t],b_E=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Class",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Class@ "],b_F=[0,[17,0,[12,41,0]],t],b_G=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Conditional",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Conditional@ "],b_H=[0,[17,0,[12,41,0]],t],b_I=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Function",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Function@ "],b_J=[0,[17,0,[12,41,0]],t],b_K=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Identifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Identifier@ "],b_L=[0,[17,0,[12,41,0]],t],b_M=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Import",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Import@ "],b_N=[0,[17,0,[12,41,0]],t],b_O=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.JSXElement",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.JSXElement@ "],b_P=[0,[17,0,[12,41,0]],t],b_Q=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.JSXFragment",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.JSXFragment@ "],b_R=[0,[17,0,[12,41,0]],t],b_S=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.StringLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.StringLiteral@ "],b_T=[0,[17,0,[12,41,0]],t],b_U=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.BooleanLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.BooleanLiteral@ "],b_V=[0,[17,0,[12,41,0]],t],b_W=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.NullLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.NullLiteral@ "],b_1=[0,[17,0,[12,41,0]],t],b_2=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.NumberLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.NumberLiteral@ "],b_3=[0,[17,0,[12,41,0]],t],b_4=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.BigIntLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.BigIntLiteral@ "],b_5=[0,[17,0,[12,41,0]],t],b_6=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.RegExpLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.RegExpLiteral@ "],b_7=[0,[17,0,[12,41,0]],t],b_8=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.ModuleRefLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.ModuleRefLiteral@ "],b_9=[0,[17,0,[12,41,0]],t],b__=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Logical",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Logical@ "],b_$=[0,[17,0,[12,41,0]],t],b$a=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Member",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Member@ "],b$b=[0,[17,0,[12,41,0]],t],b$c=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.MetaProperty",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.MetaProperty@ "],b$d=[0,[17,0,[12,41,0]],t],b$e=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.New",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.New@ "],b$f=[0,[17,0,[12,41,0]],t],b$g=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Object@ "],b$h=[0,[17,0,[12,41,0]],t],b$i=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.OptionalCall",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.OptionalCall@ "],b$j=[0,[17,0,[12,41,0]],t],b$k=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.OptionalMember",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.OptionalMember@ "],b$l=[0,[17,0,[12,41,0]],t],b$m=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Sequence",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Sequence@ "],b$n=[0,[17,0,[12,41,0]],t],b$o=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Super",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Super@ "],b$p=[0,[17,0,[12,41,0]],t],b$q=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.TaggedTemplate",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.TaggedTemplate@ "],b$r=[0,[17,0,[12,41,0]],t],b$s=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.TemplateLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.TemplateLiteral@ "],b$t=[0,[17,0,[12,41,0]],t],b$u=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.This",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.This@ "],b$v=[0,[17,0,[12,41,0]],t],b$w=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.TypeCast",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.TypeCast@ "],b$x=[0,[17,0,[12,41,0]],t],b$y=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.TSTypeCast",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.TSTypeCast@ "],b$z=[0,[17,0,[12,41,0]],t],b$A=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Unary",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Unary@ "],b$B=[0,[17,0,[12,41,0]],t],b$C=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Update",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Update@ "],b$D=[0,[17,0,[12,41,0]],t],b$E=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Yield",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Yield@ "],b$F=[0,[17,0,[12,41,0]],t],b_r=[0,[15,0],y],b_o=[0,[12,40,[18,[1,[0,0,g]],0]],an],b_p=[0,[12,44,[17,[0,a,1,0],0]],I],b_q=[0,[17,0,[12,41,0]],t],b_n=[0,[15,0],y],b_i=au,b_h=H,b_j=F,b_k=G,b_a=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b_b="Flow_ast.Expression.Import.argument",b_c=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b_d=[0,[17,0,0],c],b_e=[0,[12,59,[17,[0,a,1,0],0]],r],b_f=av,b_g=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b_l=[0,[17,0,0],c],b_m=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b9$=[0,[15,0],y],b96=au,b95=H,b97=F,b98=G,b92=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b93="Flow_ast.Expression.Super.comments",b94=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b99=[0,[17,0,0],c],b9_=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b91=[0,[15,0],y],b9W=au,b9V=H,b9X=F,b9Y=G,b9S=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b9T="Flow_ast.Expression.This.comments",b9U=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b9Z=[0,[17,0,0],c],b90=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b9R=[0,[15,0],y],b9M=au,b9L=H,b9N=F,b9O=G,b9A=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b9B="Flow_ast.Expression.MetaProperty.meta",b9C=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b9D=[0,[17,0,0],c],b9E=[0,[12,59,[17,[0,a,1,0],0]],r],b9F=y8,b9G=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b9H=[0,[17,0,0],c],b9I=[0,[12,59,[17,[0,a,1,0],0]],r],b9J=av,b9K=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b9P=[0,[17,0,0],c],b9Q=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b9z=[0,[15,0],y],b9u=au,b9t=H,b9v=F,b9w=G,b9i=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b9j="Flow_ast.Expression.TSTypeCast.expression",b9k=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b9l=[0,[17,0,0],c],b9m=[0,[12,59,[17,[0,a,1,0],0]],r],b9n=qk,b9o=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b9p=[0,[17,0,0],c],b9q=[0,[12,59,[17,[0,a,1,0],0]],r],b9r=av,b9s=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b9x=[0,[17,0,0],c],b9y=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b9h=[0,[15,0],y],b9e=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.TSTypeCast.Satisfies",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.TSTypeCast.Satisfies@ "],b9f=[0,[17,0,[12,41,0]],t],b9g="Flow_ast.Expression.TSTypeCast.AsConst",b9d=[0,[15,0],y],b8_=au,b89=H,b8$=F,b9a=G,b8Y=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b8Z="Flow_ast.Expression.AsExpression.expression",b80=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b81=[0,[17,0,0],c],b82=[0,[12,59,[17,[0,a,1,0],0]],r],b83=qq,b84=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b85=[0,[17,0,0],c],b86=[0,[12,59,[17,[0,a,1,0],0]],r],b87=av,b88=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b9b=[0,[17,0,0],c],b9c=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b8X=[0,[15,0],y],b8S=au,b8R=H,b8T=F,b8U=G,b8G=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b8H="Flow_ast.Expression.TypeCast.expression",b8I=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b8J=[0,[17,0,0],c],b8K=[0,[12,59,[17,[0,a,1,0],0]],r],b8L=qq,b8M=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b8N=[0,[17,0,0],c],b8O=[0,[12,59,[17,[0,a,1,0],0]],r],b8P=av,b8Q=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b8V=[0,[17,0,0],c],b8W=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b8F=[0,[15,0],y],b8r=au,b8q=H,b8s=F,b8t=G,b8j=H,b8k=F,b8l=G,b8g=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b8h="Flow_ast.Expression.Yield.argument",b8i=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b8m=[0,[17,0,0],c],b8n=[0,[12,59,[17,[0,a,1,0],0]],r],b8o=av,b8p=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b8u=[0,[17,0,0],c],b8v=[0,[12,59,[17,[0,a,1,0],0]],r],b8w=aWe,b8x=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b8y=[0,[9,0,0],fj],b8z=[0,[17,0,0],c],b8A=[0,[12,59,[17,[0,a,1,0],0]],r],b8B="result_out",b8C=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b8D=[0,[17,0,0],c],b8E=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b8f=[0,[15,0],y],b73=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b74="Flow_ast.Expression.OptionalMember.member",b75=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b76=[0,[17,0,0],c],b77=[0,[12,59,[17,[0,a,1,0],0]],r],b78=aZu,b79=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b7_=[0,[17,0,0],c],b7$=[0,[12,59,[17,[0,a,1,0],0]],r],b8a=iu,b8b=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b8c=[0,[9,0,0],fj],b8d=[0,[17,0,0],c],b8e=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b72=[0,[15,0],y],b7X=au,b7W=H,b7Y=F,b7Z=G,b7L=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b7M="Flow_ast.Expression.Member._object",b7N=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b7O=[0,[17,0,0],c],b7P=[0,[12,59,[17,[0,a,1,0],0]],r],b7Q=y8,b7R=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b7S=[0,[17,0,0],c],b7T=[0,[12,59,[17,[0,a,1,0],0]],r],b7U=av,b7V=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b70=[0,[17,0,0],c],b71=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b7K=[0,[15,0],y],b7E=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Member.PropertyIdentifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Member.PropertyIdentifier@ "],b7F=[0,[17,0,[12,41,0]],t],b7G=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Member.PropertyPrivateName",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Member.PropertyPrivateName@ "],b7H=[0,[17,0,[12,41,0]],t],b7I=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Member.PropertyExpression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Member.PropertyExpression@ "],b7J=[0,[17,0,[12,41,0]],t],b7D=[0,[15,0],y],b7p=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b7q="Flow_ast.Expression.OptionalCall.call",b7r=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b7s=[0,[17,0,0],c],b7t=[0,[12,59,[17,[0,a,1,0],0]],r],b7u=aZu,b7v=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b7w=[0,[17,0,0],c],b7x=[0,[12,59,[17,[0,a,1,0],0]],r],b7y=iu,b7z=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b7A=[0,[9,0,0],fj],b7B=[0,[17,0,0],c],b7C=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b7o=[0,[15,0],y],b7j=au,b7i=H,b7k=F,b7l=G,b69=H,b6_=F,b6$=G,b62=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b63="Flow_ast.Expression.Call.callee",b64=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b65=[0,[17,0,0],c],b66=[0,[12,59,[17,[0,a,1,0],0]],r],b67=rP,b68=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b7a=[0,[17,0,0],c],b7b=[0,[12,59,[17,[0,a,1,0],0]],r],b7c=pL,b7d=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b7e=[0,[17,0,0],c],b7f=[0,[12,59,[17,[0,a,1,0],0]],r],b7g=av,b7h=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b7m=[0,[17,0,0],c],b7n=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b61=[0,[15,0],y],b6W=au,b6V=H,b6X=F,b6Y=G,b6O=H,b6P=F,b6Q=G,b6H=H,b6I=F,b6J=G,b6A=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b6B="Flow_ast.Expression.New.callee",b6C=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b6D=[0,[17,0,0],c],b6E=[0,[12,59,[17,[0,a,1,0],0]],r],b6F=rP,b6G=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b6K=[0,[17,0,0],c],b6L=[0,[12,59,[17,[0,a,1,0],0]],r],b6M=pL,b6N=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b6R=[0,[17,0,0],c],b6S=[0,[12,59,[17,[0,a,1,0],0]],r],b6T=av,b6U=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b6Z=[0,[17,0,0],c],b60=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b6z=[0,[15,0],y],b6t=[0,[12,59,[17,[0,a,1,0],0]],r],b6s=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],b6u=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],b6r=H,b6v=F,b6w=G,b6l=[0,[12,59,[17,[0,a,1,0],0]],r],b6k=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],b6m=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],b6h=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b6i="Flow_ast.Expression.ArgList.arguments",b6j=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b6n=[0,[17,0,0],c],b6o=[0,[12,59,[17,[0,a,1,0],0]],r],b6p=av,b6q=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b6x=[0,[17,0,0],c],b6y=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b6g=[0,[15,0],y],b6d=[0,[12,40,[18,[1,[0,0,g]],0]],an],b6e=[0,[12,44,[17,[0,a,1,0],0]],I],b6f=[0,[17,0,[12,41,0]],t],b6c=[0,[15,0],y],b5_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Expression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Expression@ "],b5$=[0,[17,0,[12,41,0]],t],b6a=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Spread",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Spread@ "],b6b=[0,[17,0,[12,41,0]],t],b59=[0,[15,0],y],b54=au,b53=H,b55=F,b56=G,b5O=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b5P="Flow_ast.Expression.Conditional.test",b5Q=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b5R=[0,[17,0,0],c],b5S=[0,[12,59,[17,[0,a,1,0],0]],r],b5T=DN,b5U=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b5V=[0,[17,0,0],c],b5W=[0,[12,59,[17,[0,a,1,0],0]],r],b5X=QD,b5Y=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b5Z=[0,[17,0,0],c],b50=[0,[12,59,[17,[0,a,1,0],0]],r],b51=av,b52=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b57=[0,[17,0,0],c],b58=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b5N=[0,[15,0],y],b5I=au,b5H=H,b5J=F,b5K=G,b5s=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b5t="Flow_ast.Expression.Logical.operator",b5u=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b5v=[0,[17,0,0],c],b5w=[0,[12,59,[17,[0,a,1,0],0]],r],b5x=rN,b5y=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b5z=[0,[17,0,0],c],b5A=[0,[12,59,[17,[0,a,1,0],0]],r],b5B=mh,b5C=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b5D=[0,[17,0,0],c],b5E=[0,[12,59,[17,[0,a,1,0],0]],r],b5F=av,b5G=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b5L=[0,[17,0,0],c],b5M=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b5r=[0,[15,0],y],b5o="Flow_ast.Expression.Logical.Or",b5p="Flow_ast.Expression.Logical.And",b5q="Flow_ast.Expression.Logical.NullishCoalesce",b5n=[0,[15,0],y],b5i=au,b5h=H,b5j=F,b5k=G,b43=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b44="Flow_ast.Expression.Update.operator",b45=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b46=[0,[17,0,0],c],b47=[0,[12,59,[17,[0,a,1,0],0]],r],b48=jJ,b49=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b4_=[0,[17,0,0],c],b4$=[0,[12,59,[17,[0,a,1,0],0]],r],b5a=Tv,b5b=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b5c=[0,[9,0,0],fj],b5d=[0,[17,0,0],c],b5e=[0,[12,59,[17,[0,a,1,0],0]],r],b5f=av,b5g=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b5l=[0,[17,0,0],c],b5m=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b42=[0,[15,0],y],b40="Flow_ast.Expression.Update.Decrement",b41="Flow_ast.Expression.Update.Increment",b4Z=[0,[15,0],y],b4U=au,b4T=H,b4V=F,b4W=G,b4E=H,b4F=F,b4G=G,b4B=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b4C="Flow_ast.Expression.Assignment.operator",b4D=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b4H=[0,[17,0,0],c],b4I=[0,[12,59,[17,[0,a,1,0],0]],r],b4J=rN,b4K=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b4L=[0,[17,0,0],c],b4M=[0,[12,59,[17,[0,a,1,0],0]],r],b4N=mh,b4O=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b4P=[0,[17,0,0],c],b4Q=[0,[12,59,[17,[0,a,1,0],0]],r],b4R=av,b4S=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b4X=[0,[17,0,0],c],b4Y=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b4A=[0,[15,0],y],b4l="Flow_ast.Expression.Assignment.PlusAssign",b4m="Flow_ast.Expression.Assignment.MinusAssign",b4n="Flow_ast.Expression.Assignment.MultAssign",b4o="Flow_ast.Expression.Assignment.ExpAssign",b4p="Flow_ast.Expression.Assignment.DivAssign",b4q="Flow_ast.Expression.Assignment.ModAssign",b4r="Flow_ast.Expression.Assignment.LShiftAssign",b4s="Flow_ast.Expression.Assignment.RShiftAssign",b4t="Flow_ast.Expression.Assignment.RShift3Assign",b4u="Flow_ast.Expression.Assignment.BitOrAssign",b4v="Flow_ast.Expression.Assignment.BitXorAssign",b4w="Flow_ast.Expression.Assignment.BitAndAssign",b4x="Flow_ast.Expression.Assignment.NullishAssign",b4y="Flow_ast.Expression.Assignment.AndAssign",b4z="Flow_ast.Expression.Assignment.OrAssign",b4k=[0,[15,0],y],b4f=au,b4e=H,b4g=F,b4h=G,b31=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b32="Flow_ast.Expression.Binary.operator",b33=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b34=[0,[17,0,0],c],b35=[0,[12,59,[17,[0,a,1,0],0]],r],b36=rN,b37=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b38=[0,[17,0,0],c],b39=[0,[12,59,[17,[0,a,1,0],0]],r],b3_=mh,b3$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b4a=[0,[17,0,0],c],b4b=[0,[12,59,[17,[0,a,1,0],0]],r],b4c=av,b4d=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b4i=[0,[17,0,0],c],b4j=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b30=[0,[15,0],y],b3E="Flow_ast.Expression.Binary.Equal",b3F="Flow_ast.Expression.Binary.NotEqual",b3G="Flow_ast.Expression.Binary.StrictEqual",b3H="Flow_ast.Expression.Binary.StrictNotEqual",b3I="Flow_ast.Expression.Binary.LessThan",b3J="Flow_ast.Expression.Binary.LessThanEqual",b3K="Flow_ast.Expression.Binary.GreaterThan",b3L="Flow_ast.Expression.Binary.GreaterThanEqual",b3M="Flow_ast.Expression.Binary.LShift",b3N="Flow_ast.Expression.Binary.RShift",b3O="Flow_ast.Expression.Binary.RShift3",b3P="Flow_ast.Expression.Binary.Plus",b3Q="Flow_ast.Expression.Binary.Minus",b3R="Flow_ast.Expression.Binary.Mult",b3S="Flow_ast.Expression.Binary.Exp",b3T="Flow_ast.Expression.Binary.Div",b3U="Flow_ast.Expression.Binary.Mod",b3V="Flow_ast.Expression.Binary.BitOr",b3W="Flow_ast.Expression.Binary.Xor",b3X="Flow_ast.Expression.Binary.BitAnd",b3Y="Flow_ast.Expression.Binary.In",b3Z="Flow_ast.Expression.Binary.Instanceof",b3D=[0,[15,0],y],b3y=au,b3x=H,b3z=F,b3A=G,b3m=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b3n="Flow_ast.Expression.Unary.operator",b3o=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b3p=[0,[17,0,0],c],b3q=[0,[12,59,[17,[0,a,1,0],0]],r],b3r=jJ,b3s=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b3t=[0,[17,0,0],c],b3u=[0,[12,59,[17,[0,a,1,0],0]],r],b3v=av,b3w=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b3B=[0,[17,0,0],c],b3C=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b3l=[0,[15,0],y],b3d="Flow_ast.Expression.Unary.Minus",b3e="Flow_ast.Expression.Unary.Plus",b3f="Flow_ast.Expression.Unary.Not",b3g="Flow_ast.Expression.Unary.BitNot",b3h="Flow_ast.Expression.Unary.Typeof",b3i="Flow_ast.Expression.Unary.Void",b3j="Flow_ast.Expression.Unary.Delete",b3k="Flow_ast.Expression.Unary.Await",b3c=[0,[15,0],y],b29=au,b28=H,b2_=F,b2$=G,b22=[0,[12,59,[17,[0,a,1,0],0]],r],b21=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],b23=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],b2Y=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b2Z="Flow_ast.Expression.Sequence.expressions",b20=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b24=[0,[17,0,0],c],b25=[0,[12,59,[17,[0,a,1,0],0]],r],b26=av,b27=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b3a=[0,[17,0,0],c],b3b=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b2X=[0,[15,0],y],b2R=[0,[12,59,[17,[0,a,1,0],0]],r],b2Q=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],b2S=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],b2P=H,b2T=F,b2U=G,b2J=[0,[12,59,[17,[0,a,1,0],0]],r],b2I=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],b2K=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],b2F=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b2G="Flow_ast.Expression.Object.properties",b2H=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b2L=[0,[17,0,0],c],b2M=[0,[12,59,[17,[0,a,1,0],0]],r],b2N=av,b2O=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b2V=[0,[17,0,0],c],b2W=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b2E=[0,[15,0],y],b2A=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.Property",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Object.Property@ "],b2B=[0,[17,0,[12,41,0]],t],b2C=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.SpreadProperty",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Object.SpreadProperty@ "],b2D=[0,[17,0,[12,41,0]],t],b2z=[0,[15,0],y],b2u=au,b2t=H,b2v=F,b2w=G,b2m=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b2n="Flow_ast.Expression.Object.SpreadProperty.argument",b2o=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b2p=[0,[17,0,0],c],b2q=[0,[12,59,[17,[0,a,1,0],0]],r],b2r=av,b2s=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b2x=[0,[17,0,0],c],b2y=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b2l=[0,[15,0],y],b2i=[0,[12,40,[18,[1,[0,0,g]],0]],an],b2j=[0,[12,44,[17,[0,a,1,0],0]],I],b2k=[0,[17,0,[12,41,0]],t],b2h=[0,[15,0],y],b2c=au,b2b=H,b2d=F,b2e=G,b16=[0,[12,40,[18,[1,[0,0,g]],0]],an],b17=[0,[12,44,[17,[0,a,1,0],0]],I],b18=[0,[17,0,[12,41,0]],t],b1U=au,b1T=H,b1V=F,b1W=G,b1M=[0,[12,40,[18,[1,[0,0,g]],0]],an],b1N=[0,[12,44,[17,[0,a,1,0],0]],I],b1O=[0,[17,0,[12,41,0]],t],b1A=[0,[12,40,[18,[1,[0,0,g]],0]],an],b1B=[0,[12,44,[17,[0,a,1,0],0]],I],b1C=[0,[17,0,[12,41,0]],t],b1f=[0,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.Property.Init {",[17,[0,w,0,0],0]]],"@[<2>Flow_ast.Expression.Object.Property.Init {@,"],b1g=l9,b1h=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b1i=[0,[17,0,0],c],b1j=[0,[12,59,[17,[0,a,1,0],0]],r],b1k=g8,b1l=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b1m=[0,[17,0,0],c],b1n=[0,[12,59,[17,[0,a,1,0],0]],r],b1o=DP,b1p=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b1q=[0,[9,0,0],fj],b1r=[0,[17,0,0],c],b1s=[0,[17,0,[12,E,0]],bk],b1t=[0,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.Property.Method {",[17,[0,w,0,0],0]]],"@[<2>Flow_ast.Expression.Object.Property.Method {@,"],b1u=l9,b1v=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b1w=[0,[17,0,0],c],b1x=[0,[12,59,[17,[0,a,1,0],0]],r],b1y=g8,b1z=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b1D=[0,[17,0,0],c],b1E=[0,[17,0,[12,E,0]],bk],b1F=[0,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.Property.Get {",[17,[0,w,0,0],0]]],"@[<2>Flow_ast.Expression.Object.Property.Get {@,"],b1G=l9,b1H=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b1I=[0,[17,0,0],c],b1J=[0,[12,59,[17,[0,a,1,0],0]],r],b1K=g8,b1L=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b1P=[0,[17,0,0],c],b1Q=[0,[12,59,[17,[0,a,1,0],0]],r],b1R=av,b1S=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b1X=[0,[17,0,0],c],b1Y=[0,[17,0,[12,E,0]],bk],b1Z=[0,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.Property.Set {",[17,[0,w,0,0],0]]],"@[<2>Flow_ast.Expression.Object.Property.Set {@,"],b10=l9,b11=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b12=[0,[17,0,0],c],b13=[0,[12,59,[17,[0,a,1,0],0]],r],b14=g8,b15=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b19=[0,[17,0,0],c],b1_=[0,[12,59,[17,[0,a,1,0],0]],r],b1$=av,b2a=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b2f=[0,[17,0,0],c],b2g=[0,[17,0,[12,E,0]],bk],b1e=[0,[15,0],y],b1b=[0,[12,40,[18,[1,[0,0,g]],0]],an],b1c=[0,[12,44,[17,[0,a,1,0],0]],I],b1d=[0,[17,0,[12,41,0]],t],b1a=[0,[15,0],y],b02=[0,[12,40,[18,[1,[0,0,g]],0]],an],b03=[0,[12,44,[17,[0,a,1,0],0]],I],b04=[0,[17,0,[12,41,0]],t],b0X=[0,[12,40,[18,[1,[0,0,g]],0]],an],b0Y=[0,[12,44,[17,[0,a,1,0],0]],I],b0Z=[0,[17,0,[12,41,0]],t],b0S=[0,[12,40,[18,[1,[0,0,g]],0]],an],b0T=[0,[12,44,[17,[0,a,1,0],0]],I],b0U=[0,[17,0,[12,41,0]],t],b0R=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.Property.StringLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Object.Property.StringLiteral@ "],b0V=[0,[17,0,[12,41,0]],t],b0W=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.Property.NumberLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Object.Property.NumberLiteral@ "],b00=[0,[17,0,[12,41,0]],t],b01=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.Property.BigIntLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Object.Property.BigIntLiteral@ "],b05=[0,[17,0,[12,41,0]],t],b06=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.Property.Identifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Object.Property.Identifier@ "],b07=[0,[17,0,[12,41,0]],t],b08=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.Property.PrivateName",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Object.Property.PrivateName@ "],b09=[0,[17,0,[12,41,0]],t],b0_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Object.Property.Computed",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Object.Property.Computed@ "],b0$=[0,[17,0,[12,41,0]],t],b0Q=[0,[15,0],y],b0L=au,b0K=H,b0M=F,b0N=G,b0D=[0,[12,40,[18,[1,[0,0,g]],0]],an],b0E=[0,[12,44,[17,[0,a,1,0],0]],I],b0F=[0,[17,0,[12,41,0]],t],b0w=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],b0x="Flow_ast.Expression.TaggedTemplate.tag",b0y=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b0z=[0,[17,0,0],c],b0A=[0,[12,59,[17,[0,a,1,0],0]],r],b0B=a3p,b0C=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b0G=[0,[17,0,0],c],b0H=[0,[12,59,[17,[0,a,1,0],0]],r],b0I=av,b0J=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b0O=[0,[17,0,0],c],b0P=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],b0v=[0,[15,0],y],b0q=au,b0p=H,b0r=F,b0s=G,b0j=[0,[12,59,[17,[0,a,1,0],0]],r],b0i=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],b0k=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],b0c=[0,[12,59,[17,[0,a,1,0],0]],r],b0b=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],b0d=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bZ_=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bZ$="Flow_ast.Expression.TemplateLiteral.quasis",b0a=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b0e=[0,[17,0,0],c],b0f=[0,[12,59,[17,[0,a,1,0],0]],r],b0g=ar4,b0h=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b0l=[0,[17,0,0],c],b0m=[0,[12,59,[17,[0,a,1,0],0]],r],b0n=av,b0o=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],b0t=[0,[17,0,0],c],b0u=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bZ9=[0,[15,0],y],bZZ=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bZ0="Flow_ast.Expression.TemplateLiteral.Element.value",bZ1=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bZ2=[0,[17,0,0],c],bZ3=[0,[12,59,[17,[0,a,1,0],0]],r],bZ4=anM,bZ5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bZ6=[0,[9,0,0],fj],bZ7=[0,[17,0,0],c],bZ8=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bZY=[0,[15,0],y],bZV=[0,[12,40,[18,[1,[0,0,g]],0]],an],bZW=[0,[12,44,[17,[0,a,1,0],0]],I],bZX=[0,[17,0,[12,41,0]],t],bZU=[0,[15,0],y],bZJ=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bZK="Flow_ast.Expression.TemplateLiteral.Element.raw",bZL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bZM=[0,[3,0,0],ag],bZN=[0,[17,0,0],c],bZO=[0,[12,59,[17,[0,a,1,0],0]],r],bZP=aZX,bZQ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bZR=[0,[3,0,0],ag],bZS=[0,[17,0,0],c],bZT=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bZI=[0,[15,0],y],bZC=[0,[12,59,[17,[0,a,1,0],0]],r],bZB=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bZD=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bZA=H,bZE=F,bZF=G,bZu=[0,[12,59,[17,[0,a,1,0],0]],r],bZt=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bZv=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bZq=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bZr="Flow_ast.Expression.Array.elements",bZs=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bZw=[0,[17,0,0],c],bZx=[0,[12,59,[17,[0,a,1,0],0]],r],bZy=av,bZz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bZG=[0,[17,0,0],c],bZH=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bZp=[0,[15,0],y],bZj=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Array.Expression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Array.Expression@ "],bZk=[0,[17,0,[12,41,0]],t],bZl=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Array.Spread",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Array.Spread@ "],bZm=[0,[17,0,[12,41,0]],t],bZn=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.Array.Hole",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.Array.Hole@ "],bZo=[0,[17,0,[12,41,0]],t],bZi=[0,[15,0],y],bZd=au,bZc=H,bZe=F,bZf=G,bY7=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bY8="Flow_ast.Expression.SpreadElement.argument",bY9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bY_=[0,[17,0,0],c],bY$=[0,[12,59,[17,[0,a,1,0],0]],r],bZa=av,bZb=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bZg=[0,[17,0,0],c],bZh=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bY6=[0,[15,0],y],bY3=[0,[12,40,[18,[1,[0,0,g]],0]],an],bY4=[0,[12,44,[17,[0,a,1,0],0]],I],bY5=[0,[17,0,[12,41,0]],t],bY1=[0,[15,0],y],bYV=[0,[12,59,[17,[0,a,1,0],0]],r],bYU=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bYW=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bYT=H,bYX=F,bYY=G,bYN=[0,[12,59,[17,[0,a,1,0],0]],r],bYM=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bYO=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bYJ=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bYK="Flow_ast.Expression.CallTypeArgs.arguments",bYL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bYP=[0,[17,0,0],c],bYQ=[0,[12,59,[17,[0,a,1,0],0]],r],bYR=av,bYS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bYZ=[0,[17,0,0],c],bY0=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bYI=[0,[15,0],y],bYF=[0,[12,40,[18,[1,[0,0,g]],0]],an],bYG=[0,[12,44,[17,[0,a,1,0],0]],I],bYH=[0,[17,0,[12,41,0]],t],bYE=[0,[15,0],y],bYA=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.CallTypeArg.Explicit",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.CallTypeArg.Explicit@ "],bYB=[0,[17,0,[12,41,0]],t],bYC=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Expression.CallTypeArg.Implicit",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Expression.CallTypeArg.Implicit@ "],bYD=[0,[17,0,[12,41,0]],t],bYz=[0,[15,0],y],bYu=au,bYt=H,bYv=F,bYw=G,bYq=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bYr="Flow_ast.Expression.CallTypeArg.Implicit.comments",bYs=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bYx=[0,[17,0,0],c],bYy=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bYp=[0,[15,0],y],bYm=[0,[12,40,[18,[1,[0,0,g]],0]],an],bYn=[0,[12,44,[17,[0,a,1,0],0]],I],bYo=[0,[17,0,[12,41,0]],t],bYk=[0,[15,0],y],bW6=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.Block",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.Block@ "],bW7=[0,[17,0,[12,41,0]],t],bW8=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.Break",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.Break@ "],bW9=[0,[17,0,[12,41,0]],t],bW_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ClassDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ClassDeclaration@ "],bW$=[0,[17,0,[12,41,0]],t],bXa=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ComponentDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ComponentDeclaration@ "],bXb=[0,[17,0,[12,41,0]],t],bXc=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.Continue",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.Continue@ "],bXd=[0,[17,0,[12,41,0]],t],bXe=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.Debugger",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.Debugger@ "],bXf=[0,[17,0,[12,41,0]],t],bXg=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareClass",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareClass@ "],bXh=[0,[17,0,[12,41,0]],t],bXi=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareComponent",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareComponent@ "],bXj=[0,[17,0,[12,41,0]],t],bXk=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareEnum",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareEnum@ "],bXl=[0,[17,0,[12,41,0]],t],bXm=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareExportDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareExportDeclaration@ "],bXn=[0,[17,0,[12,41,0]],t],bXo=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareFunction",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareFunction@ "],bXp=[0,[17,0,[12,41,0]],t],bXq=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareInterface",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareInterface@ "],bXr=[0,[17,0,[12,41,0]],t],bXs=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareModule",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareModule@ "],bXt=[0,[17,0,[12,41,0]],t],bXu=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareModuleExports",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareModuleExports@ "],bXv=[0,[17,0,[12,41,0]],t],bXw=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareTypeAlias",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareTypeAlias@ "],bXx=[0,[17,0,[12,41,0]],t],bXy=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareOpaqueType",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareOpaqueType@ "],bXz=[0,[17,0,[12,41,0]],t],bXA=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareVariable",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareVariable@ "],bXB=[0,[17,0,[12,41,0]],t],bXC=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DoWhile",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DoWhile@ "],bXD=[0,[17,0,[12,41,0]],t],bXE=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.Empty",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.Empty@ "],bXF=[0,[17,0,[12,41,0]],t],bXG=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.EnumDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.EnumDeclaration@ "],bXH=[0,[17,0,[12,41,0]],t],bXI=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ExportDefaultDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ExportDefaultDeclaration@ "],bXJ=[0,[17,0,[12,41,0]],t],bXK=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ExportNamedDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ExportNamedDeclaration@ "],bXL=[0,[17,0,[12,41,0]],t],bXM=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.Expression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.Expression@ "],bXN=[0,[17,0,[12,41,0]],t],bXO=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.For",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.For@ "],bXP=[0,[17,0,[12,41,0]],t],bXQ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ForIn",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ForIn@ "],bXR=[0,[17,0,[12,41,0]],t],bXS=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ForOf",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ForOf@ "],bXT=[0,[17,0,[12,41,0]],t],bXU=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.FunctionDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.FunctionDeclaration@ "],bXV=[0,[17,0,[12,41,0]],t],bXW=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.If",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.If@ "],bXX=[0,[17,0,[12,41,0]],t],bXY=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ImportDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ImportDeclaration@ "],bXZ=[0,[17,0,[12,41,0]],t],bX0=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.InterfaceDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.InterfaceDeclaration@ "],bX1=[0,[17,0,[12,41,0]],t],bX2=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.Labeled",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.Labeled@ "],bX3=[0,[17,0,[12,41,0]],t],bX4=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.Return",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.Return@ "],bX5=[0,[17,0,[12,41,0]],t],bX6=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.Switch",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.Switch@ "],bX7=[0,[17,0,[12,41,0]],t],bX8=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.Throw",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.Throw@ "],bX9=[0,[17,0,[12,41,0]],t],bX_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.Try",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.Try@ "],bX$=[0,[17,0,[12,41,0]],t],bYa=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.TypeAlias",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.TypeAlias@ "],bYb=[0,[17,0,[12,41,0]],t],bYc=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.OpaqueType",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.OpaqueType@ "],bYd=[0,[17,0,[12,41,0]],t],bYe=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.VariableDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.VariableDeclaration@ "],bYf=[0,[17,0,[12,41,0]],t],bYg=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.While",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.While@ "],bYh=[0,[17,0,[12,41,0]],t],bYi=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.With",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.With@ "],bYj=[0,[17,0,[12,41,0]],t],bW5=[0,[15,0],y],bW2=[0,[12,40,[18,[1,[0,0,g]],0]],an],bW3=[0,[12,44,[17,[0,a,1,0],0]],I],bW4=[0,[17,0,[12,41,0]],t],bW1=[0,[15,0],y],bWZ="Flow_ast.Statement.ExportValue",bW0="Flow_ast.Statement.ExportType",bWY=[0,[15,0],y],bWT=au,bWS=H,bWU=F,bWV=G,bWP=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bWQ="Flow_ast.Statement.Empty.comments",bWR=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bWW=[0,[17,0,0],c],bWX=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bWO=[0,[15,0],y],bWJ=au,bWI=H,bWK=F,bWL=G,bWA=H,bWB=[0,[3,0,0],ag],bWC=F,bWD=G,bWt=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bWu="Flow_ast.Statement.Expression.expression",bWv=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bWw=[0,[17,0,0],c],bWx=[0,[12,59,[17,[0,a,1,0],0]],r],bWy=a2$,bWz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bWE=[0,[17,0,0],c],bWF=[0,[12,59,[17,[0,a,1,0],0]],r],bWG=av,bWH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bWM=[0,[17,0,0],c],bWN=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bWs=[0,[15,0],y],bWn=au,bWm=H,bWo=F,bWp=G,bWf=H,bWg=F,bWh=G,bV_=H,bV$=F,bWa=G,bV3=[0,[12,40,[18,[1,[0,0,g]],0]],an],bV4=[0,[12,44,[17,[0,a,1,0],0]],I],bV5=[0,[17,0,[12,41,0]],t],bVW=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bVX="Flow_ast.Statement.ImportDeclaration.import_kind",bVY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bVZ=[0,[17,0,0],c],bV0=[0,[12,59,[17,[0,a,1,0],0]],r],bV1=qY,bV2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bV6=[0,[17,0,0],c],bV7=[0,[12,59,[17,[0,a,1,0],0]],r],bV8=gF,bV9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bWb=[0,[17,0,0],c],bWc=[0,[12,59,[17,[0,a,1,0],0]],r],bWd=DF,bWe=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bWi=[0,[17,0,0],c],bWj=[0,[12,59,[17,[0,a,1,0],0]],r],bWk=av,bWl=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bWq=[0,[17,0,0],c],bWr=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bVV=[0,[15,0],y],bVQ=H,bVR=F,bVS=G,bVJ=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bVK="Flow_ast.Statement.ImportDeclaration.identifier",bVL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bVM=[0,[17,0,0],c],bVN=[0,[12,59,[17,[0,a,1,0],0]],r],bVO="remote_default_name_def_loc",bVP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bVT=[0,[17,0,0],c],bVU=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bVI=[0,[15,0],y],bVD=H,bVE=F,bVF=G,bVs=H,bVt=F,bVu=G,bVl=H,bVm=F,bVn=G,bVi=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bVj="Flow_ast.Statement.ImportDeclaration.kind",bVk=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bVo=[0,[17,0,0],c],bVp=[0,[12,59,[17,[0,a,1,0],0]],r],bVq=y_,bVr=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bVv=[0,[17,0,0],c],bVw=[0,[12,59,[17,[0,a,1,0],0]],r],bVx=Uf,bVy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bVz=[0,[17,0,0],c],bVA=[0,[12,59,[17,[0,a,1,0],0]],r],bVB="remote_name_def_loc",bVC=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bVG=[0,[17,0,0],c],bVH=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bVh=[0,[15,0],y],bVd=[0,[12,40,[18,[1,[0,0,g]],0]],an],bVe=[0,[12,44,[17,[0,a,1,0],0]],I],bVf=[0,[17,0,[12,41,0]],t],bU$=[0,[12,59,[17,[0,a,1,0],0]],r],bU_=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bVa=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bU9=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamedSpecifiers@ "],bVb=[0,[17,0,[12,41,0]],t],bVc=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ImportDeclaration.ImportNamespaceSpecifier@ "],bVg=[0,[17,0,[12,41,0]],t],bU8=[0,[15,0],y],bU5="Flow_ast.Statement.ImportDeclaration.ImportType",bU6="Flow_ast.Statement.ImportDeclaration.ImportTypeof",bU7="Flow_ast.Statement.ImportDeclaration.ImportValue",bU4=[0,[15,0],y],bUZ=au,bUY=H,bU0=F,bU1=G,bUP=[0,[12,40,[18,[1,[0,0,g]],0]],an],bUQ=[0,[12,44,[17,[0,a,1,0],0]],I],bUR=[0,[17,0,[12,41,0]],t],bUO=H,bUS=F,bUT=G,bUH=H,bUI=F,bUJ=G,bUA=H,bUB=F,bUC=G,bUt=H,bUu=F,bUv=G,bUq=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bUr="Flow_ast.Statement.DeclareExportDeclaration.default",bUs=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bUw=[0,[17,0,0],c],bUx=[0,[12,59,[17,[0,a,1,0],0]],r],bUy=HN,bUz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bUD=[0,[17,0,0],c],bUE=[0,[12,59,[17,[0,a,1,0],0]],r],bUF=DF,bUG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bUK=[0,[17,0,0],c],bUL=[0,[12,59,[17,[0,a,1,0],0]],r],bUM=qY,bUN=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bUU=[0,[17,0,0],c],bUV=[0,[12,59,[17,[0,a,1,0],0]],r],bUW=av,bUX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bU2=[0,[17,0,0],c],bU3=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bUp=[0,[15,0],y],bUl=[0,[12,40,[18,[1,[0,0,g]],0]],an],bUm=[0,[12,44,[17,[0,a,1,0],0]],I],bUn=[0,[17,0,[12,41,0]],t],bUg=[0,[12,40,[18,[1,[0,0,g]],0]],an],bUh=[0,[12,44,[17,[0,a,1,0],0]],I],bUi=[0,[17,0,[12,41,0]],t],bUb=[0,[12,40,[18,[1,[0,0,g]],0]],an],bUc=[0,[12,44,[17,[0,a,1,0],0]],I],bUd=[0,[17,0,[12,41,0]],t],bT8=[0,[12,40,[18,[1,[0,0,g]],0]],an],bT9=[0,[12,44,[17,[0,a,1,0],0]],I],bT_=[0,[17,0,[12,41,0]],t],bT1=[0,[12,40,[18,[1,[0,0,g]],0]],an],bT2=[0,[12,44,[17,[0,a,1,0],0]],I],bT3=[0,[17,0,[12,41,0]],t],bTW=[0,[12,40,[18,[1,[0,0,g]],0]],an],bTX=[0,[12,44,[17,[0,a,1,0],0]],I],bTY=[0,[17,0,[12,41,0]],t],bTR=[0,[12,40,[18,[1,[0,0,g]],0]],an],bTS=[0,[12,44,[17,[0,a,1,0],0]],I],bTT=[0,[17,0,[12,41,0]],t],bTM=[0,[12,40,[18,[1,[0,0,g]],0]],an],bTN=[0,[12,44,[17,[0,a,1,0],0]],I],bTO=[0,[17,0,[12,41,0]],t],bTL=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareExportDeclaration.Variable",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Variable@ "],bTP=[0,[17,0,[12,41,0]],t],bTQ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareExportDeclaration.Function",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Function@ "],bTU=[0,[17,0,[12,41,0]],t],bTV=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareExportDeclaration.Class",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Class@ "],bTZ=[0,[17,0,[12,41,0]],t],bT0=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareExportDeclaration.Component",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Component@ "],bT4=[0,[17,0,[12,41,0]],t],bT5=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareExportDeclaration.DefaultType",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.DefaultType@ "],bT6=[0,[17,0,[12,41,0]],t],bT7=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareExportDeclaration.NamedType",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedType@ "],bT$=[0,[17,0,[12,41,0]],t],bUa=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.NamedOpaqueType@ "],bUe=[0,[17,0,[12,41,0]],t],bUf=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareExportDeclaration.Interface",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Interface@ "],bUj=[0,[17,0,[12,41,0]],t],bUk=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareExportDeclaration.Enum",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareExportDeclaration.Enum@ "],bUo=[0,[17,0,[12,41,0]],t],bTK=[0,[15,0],y],bTG=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ExportDefaultDeclaration.Declaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Declaration@ "],bTH=[0,[17,0,[12,41,0]],t],bTI=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ExportDefaultDeclaration.Expression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ExportDefaultDeclaration.Expression@ "],bTJ=[0,[17,0,[12,41,0]],t],bTF=[0,[15,0],y],bTA=au,bTz=H,bTB=F,bTC=G,bTo=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bTp="Flow_ast.Statement.ExportDefaultDeclaration.default",bTq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bTr=[0,[17,0,0],c],bTs=[0,[12,59,[17,[0,a,1,0],0]],r],bTt=HN,bTu=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bTv=[0,[17,0,0],c],bTw=[0,[12,59,[17,[0,a,1,0],0]],r],bTx=av,bTy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bTD=[0,[17,0,0],c],bTE=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bTn=[0,[15,0],y],bTi=[0,[12,59,[17,[0,a,1,0],0]],r],bTh=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bTj=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bTg=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifiers@ "],bTk=[0,[17,0,[12,41,0]],t],bTl=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ExportNamedDeclaration.ExportBatchSpecifier@ "],bTm=[0,[17,0,[12,41,0]],t],bTf=[0,[15,0],y],bTa=au,bS$=H,bTb=F,bTc=G,bSY=[0,[12,40,[18,[1,[0,0,g]],0]],an],bSZ=[0,[12,44,[17,[0,a,1,0],0]],I],bS0=[0,[17,0,[12,41,0]],t],bSX=H,bS1=F,bS2=G,bSQ=H,bSR=F,bSS=G,bSJ=H,bSK=F,bSL=G,bSG=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bSH="Flow_ast.Statement.ExportNamedDeclaration.declaration",bSI=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bSM=[0,[17,0,0],c],bSN=[0,[12,59,[17,[0,a,1,0],0]],r],bSO=DF,bSP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bST=[0,[17,0,0],c],bSU=[0,[12,59,[17,[0,a,1,0],0]],r],bSV=qY,bSW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bS3=[0,[17,0,0],c],bS4=[0,[12,59,[17,[0,a,1,0],0]],r],bS5="export_kind",bS6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bS7=[0,[17,0,0],c],bS8=[0,[12,59,[17,[0,a,1,0],0]],r],bS9=av,bS_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bTd=[0,[17,0,0],c],bTe=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bSF=[0,[15,0],y],bSB=H,bSC=F,bSD=G,bSz=[0,[12,40,[18,[1,[0,0,g]],0]],an],bSA=[0,[12,44,[17,[0,a,1,0],0]],I],bSE=[0,[17,0,[12,41,0]],t],bSy=[0,[15,0],y],bSt=H,bSu=F,bSv=G,bSm=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bSn="Flow_ast.Statement.ExportNamedDeclaration.ExportSpecifier.local",bSo=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bSp=[0,[17,0,0],c],bSq=[0,[12,59,[17,[0,a,1,0],0]],r],bSr=TX,bSs=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bSw=[0,[17,0,0],c],bSx=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bSl=[0,[15,0],y],bSi=[0,[12,40,[18,[1,[0,0,g]],0]],an],bSj=[0,[12,44,[17,[0,a,1,0],0]],I],bSk=[0,[17,0,[12,41,0]],t],bSh=[0,[15,0],y],bSc=au,bSb=H,bSd=F,bSe=G,bR6=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bR7="Flow_ast.Statement.DeclareModuleExports.annot",bR8=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bR9=[0,[17,0,0],c],bR_=[0,[12,59,[17,[0,a,1,0],0]],r],bR$=av,bSa=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bSf=[0,[17,0,0],c],bSg=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bR5=[0,[15,0],y],bR0=au,bRZ=H,bR1=F,bR2=G,bRO=[0,[12,40,[18,[1,[0,0,g]],0]],an],bRP=[0,[12,44,[17,[0,a,1,0],0]],I],bRQ=[0,[17,0,[12,41,0]],t],bRH=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bRI="Flow_ast.Statement.DeclareModule.id",bRJ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bRK=[0,[17,0,0],c],bRL=[0,[12,59,[17,[0,a,1,0],0]],r],bRM=he,bRN=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bRR=[0,[17,0,0],c],bRS=[0,[12,59,[17,[0,a,1,0],0]],r],bRT=qk,bRU=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bRV=[0,[17,0,0],c],bRW=[0,[12,59,[17,[0,a,1,0],0]],r],bRX=av,bRY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bR3=[0,[17,0,0],c],bR4=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bRG=[0,[15,0],y],bRE="Flow_ast.Statement.DeclareModule.ES",bRF="Flow_ast.Statement.DeclareModule.CommonJS",bRD=[0,[15,0],y],bRz=[0,[12,40,[18,[1,[0,0,g]],0]],an],bRA=[0,[12,44,[17,[0,a,1,0],0]],I],bRB=[0,[17,0,[12,41,0]],t],bRw=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareModule.Identifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareModule.Identifier@ "],bRx=[0,[17,0,[12,41,0]],t],bRy=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.DeclareModule.Literal",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.DeclareModule.Literal@ "],bRC=[0,[17,0,[12,41,0]],t],bRv=[0,[15,0],y],bRq=au,bRp=H,bRr=F,bRs=G,bRi=H,bRj=F,bRk=G,bQ9=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bQ_="Flow_ast.Statement.DeclareFunction.id",bQ$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bRa=[0,[17,0,0],c],bRb=[0,[12,59,[17,[0,a,1,0],0]],r],bRc=qq,bRd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bRe=[0,[17,0,0],c],bRf=[0,[12,59,[17,[0,a,1,0],0]],r],bRg=ax,bRh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bRl=[0,[17,0,0],c],bRm=[0,[12,59,[17,[0,a,1,0],0]],r],bRn=av,bRo=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bRt=[0,[17,0,0],c],bRu=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bQ8=[0,[15,0],y],bQ3=au,bQ2=H,bQ4=F,bQ5=G,bQN=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bQO="Flow_ast.Statement.DeclareVariable.id",bQP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bQQ=[0,[17,0,0],c],bQR=[0,[12,59,[17,[0,a,1,0],0]],r],bQS=qq,bQT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bQU=[0,[17,0,0],c],bQV=[0,[12,59,[17,[0,a,1,0],0]],r],bQW=qk,bQX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bQY=[0,[17,0,0],c],bQZ=[0,[12,59,[17,[0,a,1,0],0]],r],bQ0=av,bQ1=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bQ6=[0,[17,0,0],c],bQ7=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bQM=[0,[15,0],y],bQH=au,bQG=H,bQI=F,bQJ=G,bQr=H,bQs=F,bQt=G,bQk=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bQl="Flow_ast.Statement.DeclareComponent.id",bQm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bQn=[0,[17,0,0],c],bQo=[0,[12,59,[17,[0,a,1,0],0]],r],bQp=lH,bQq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bQu=[0,[17,0,0],c],bQv=[0,[12,59,[17,[0,a,1,0],0]],r],bQw=kQ,bQx=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bQy=[0,[17,0,0],c],bQz=[0,[12,59,[17,[0,a,1,0],0]],r],bQA=qW,bQB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bQC=[0,[17,0,0],c],bQD=[0,[12,59,[17,[0,a,1,0],0]],r],bQE=av,bQF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bQK=[0,[17,0,0],c],bQL=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bQj=[0,[15,0],y],bQe=au,bQd=H,bQf=F,bQg=G,bP8=H,bP9=F,bP_=G,bP0=[0,[12,40,[18,[1,[0,0,g]],0]],an],bP1=[0,[12,44,[17,[0,a,1,0],0]],I],bP2=[0,[17,0,[12,41,0]],t],bPZ=[0,[12,59,[17,[0,a,1,0],0]],r],bPY=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bP3=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bPP=[0,[12,40,[18,[1,[0,0,g]],0]],an],bPQ=[0,[12,44,[17,[0,a,1,0],0]],I],bPR=[0,[17,0,[12,41,0]],t],bPO=H,bPS=F,bPT=G,bPH=[0,[12,40,[18,[1,[0,0,g]],0]],an],bPI=[0,[12,44,[17,[0,a,1,0],0]],I],bPJ=[0,[17,0,[12,41,0]],t],bPA=H,bPB=F,bPC=G,bPt=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bPu="Flow_ast.Statement.DeclareClass.id",bPv=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bPw=[0,[17,0,0],c],bPx=[0,[12,59,[17,[0,a,1,0],0]],r],bPy=lH,bPz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bPD=[0,[17,0,0],c],bPE=[0,[12,59,[17,[0,a,1,0],0]],r],bPF=he,bPG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bPK=[0,[17,0,0],c],bPL=[0,[12,59,[17,[0,a,1,0],0]],r],bPM=jZ,bPN=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bPU=[0,[17,0,0],c],bPV=[0,[12,59,[17,[0,a,1,0],0]],r],bPW=z7,bPX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bP4=[0,[17,0,0],c],bP5=[0,[12,59,[17,[0,a,1,0],0]],r],bP6=sy,bP7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bP$=[0,[17,0,0],c],bQa=[0,[12,59,[17,[0,a,1,0],0]],r],bQb=av,bQc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bQh=[0,[17,0,0],c],bQi=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bPs=[0,[15,0],y],bPn=au,bPm=H,bPo=F,bPp=G,bPf=[0,[12,40,[18,[1,[0,0,g]],0]],an],bPg=[0,[12,44,[17,[0,a,1,0],0]],I],bPh=[0,[17,0,[12,41,0]],t],bO9=[0,[12,40,[18,[1,[0,0,g]],0]],an],bO_=[0,[12,44,[17,[0,a,1,0],0]],I],bO$=[0,[17,0,[12,41,0]],t],bO8=[0,[12,59,[17,[0,a,1,0],0]],r],bO7=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bPa=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bO0=H,bO1=F,bO2=G,bOT=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bOU="Flow_ast.Statement.Interface.id",bOV=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bOW=[0,[17,0,0],c],bOX=[0,[12,59,[17,[0,a,1,0],0]],r],bOY=lH,bOZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bO3=[0,[17,0,0],c],bO4=[0,[12,59,[17,[0,a,1,0],0]],r],bO5=jZ,bO6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bPb=[0,[17,0,0],c],bPc=[0,[12,59,[17,[0,a,1,0],0]],r],bPd=he,bPe=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bPi=[0,[17,0,0],c],bPj=[0,[12,59,[17,[0,a,1,0],0]],r],bPk=av,bPl=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bPq=[0,[17,0,0],c],bPr=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bOS=[0,[15,0],y],bOJ=au,bOI=H,bOK=F,bOL=G,bOB=[0,[12,40,[18,[1,[0,0,g]],0]],an],bOC=[0,[12,44,[17,[0,a,1,0],0]],I],bOD=[0,[17,0,[12,41,0]],t],bOm=H,bOn=F,bOo=G,bOf=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bOg="Flow_ast.Statement.ComponentDeclaration.id",bOh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bOi=[0,[17,0,0],c],bOj=[0,[12,59,[17,[0,a,1,0],0]],r],bOk=lH,bOl=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bOp=[0,[17,0,0],c],bOq=[0,[12,59,[17,[0,a,1,0],0]],r],bOr=kQ,bOs=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bOt=[0,[17,0,0],c],bOu=[0,[12,59,[17,[0,a,1,0],0]],r],bOv=qW,bOw=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bOx=[0,[17,0,0],c],bOy=[0,[12,59,[17,[0,a,1,0],0]],r],bOz=he,bOA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bOE=[0,[17,0,0],c],bOF=[0,[12,59,[17,[0,a,1,0],0]],r],bOG=av,bOH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bOM=[0,[17,0,0],c],bON=[0,[12,59,[17,[0,a,1,0],0]],r],bOO=aXu,bOP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bOQ=[0,[17,0,0],c],bOR=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bOe=[0,[15,0],y],bN_=[0,[12,59,[17,[0,a,1,0],0]],r],bN9=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bN$=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bN8=H,bOa=F,bOb=G,bN1=H,bN2=F,bN3=G,bNV=[0,[12,59,[17,[0,a,1,0],0]],r],bNU=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bNW=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bNR=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bNS="Flow_ast.Statement.ComponentDeclaration.Params.params",bNT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bNX=[0,[17,0,0],c],bNY=[0,[12,59,[17,[0,a,1,0],0]],r],bNZ=vm,bN0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bN4=[0,[17,0,0],c],bN5=[0,[12,59,[17,[0,a,1,0],0]],r],bN6=av,bN7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bOc=[0,[17,0,0],c],bOd=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bNQ=[0,[15,0],y],bNN=[0,[12,40,[18,[1,[0,0,g]],0]],an],bNO=[0,[12,44,[17,[0,a,1,0],0]],I],bNP=[0,[17,0,[12,41,0]],t],bNM=[0,[15,0],y],bNI=[0,[12,40,[18,[1,[0,0,g]],0]],an],bNJ=[0,[12,44,[17,[0,a,1,0],0]],I],bNK=[0,[17,0,[12,41,0]],t],bNF=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ComponentDeclaration.Param.Identifier",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ComponentDeclaration.Param.Identifier@ "],bNG=[0,[17,0,[12,41,0]],t],bNH=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ComponentDeclaration.Param.StringLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ComponentDeclaration.Param.StringLiteral@ "],bNL=[0,[17,0,[12,41,0]],t],bNE=[0,[15,0],y],bNu=H,bNv=F,bNw=G,bNj=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bNk="Flow_ast.Statement.ComponentDeclaration.Param.name",bNl=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bNm=[0,[17,0,0],c],bNn=[0,[12,59,[17,[0,a,1,0],0]],r],bNo=y_,bNp=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bNq=[0,[17,0,0],c],bNr=[0,[12,59,[17,[0,a,1,0],0]],r],bNs=gF,bNt=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bNx=[0,[17,0,0],c],bNy=[0,[12,59,[17,[0,a,1,0],0]],r],bNz=DP,bNA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bNB=[0,[9,0,0],fj],bNC=[0,[17,0,0],c],bND=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bNi=[0,[15,0],y],bNf=[0,[12,40,[18,[1,[0,0,g]],0]],an],bNg=[0,[12,44,[17,[0,a,1,0],0]],I],bNh=[0,[17,0,[12,41,0]],t],bNe=[0,[15,0],y],bM$=au,bM_=H,bNa=F,bNb=G,bM3=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bM4="Flow_ast.Statement.ComponentDeclaration.RestParam.argument",bM5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bM6=[0,[17,0,0],c],bM7=[0,[12,59,[17,[0,a,1,0],0]],r],bM8=av,bM9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bNc=[0,[17,0,0],c],bNd=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bM2=[0,[15,0],y],bMZ=[0,[12,40,[18,[1,[0,0,g]],0]],an],bM0=[0,[12,44,[17,[0,a,1,0],0]],I],bM1=[0,[17,0,[12,41,0]],t],bMY=[0,[15,0],y],bMO=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.EnumDeclaration.BooleanBody",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.EnumDeclaration.BooleanBody@ "],bMP=[0,[17,0,[12,41,0]],t],bMQ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.EnumDeclaration.NumberBody",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.EnumDeclaration.NumberBody@ "],bMR=[0,[17,0,[12,41,0]],t],bMS=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.EnumDeclaration.StringBody",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody@ "],bMT=[0,[17,0,[12,41,0]],t],bMU=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.EnumDeclaration.SymbolBody",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.EnumDeclaration.SymbolBody@ "],bMV=[0,[17,0,[12,41,0]],t],bMW=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.EnumDeclaration.BigIntBody",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.EnumDeclaration.BigIntBody@ "],bMX=[0,[17,0,[12,41,0]],t],bMN=[0,[15,0],y],bMK=[0,[12,40,[18,[1,[0,0,g]],0]],an],bML=[0,[12,44,[17,[0,a,1,0],0]],I],bMM=[0,[17,0,[12,41,0]],t],bMJ=[0,[15,0],y],bME=au,bMD=H,bMF=F,bMG=G,bMs=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bMt="Flow_ast.Statement.EnumDeclaration.id",bMu=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bMv=[0,[17,0,0],c],bMw=[0,[12,59,[17,[0,a,1,0],0]],r],bMx=he,bMy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bMz=[0,[17,0,0],c],bMA=[0,[12,59,[17,[0,a,1,0],0]],r],bMB=av,bMC=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bMH=[0,[17,0,0],c],bMI=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bMr=[0,[15,0],y],bMl=[0,[12,59,[17,[0,a,1,0],0]],r],bMk=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bMm=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bMj=H,bMn=F,bMo=G,bL5=[0,[12,59,[17,[0,a,1,0],0]],r],bL4=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bL6=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bL1=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bL2="Flow_ast.Statement.EnumDeclaration.BigIntBody.members",bL3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bL7=[0,[17,0,0],c],bL8=[0,[12,59,[17,[0,a,1,0],0]],r],bL9=QJ,bL_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bL$=[0,[9,0,0],fj],bMa=[0,[17,0,0],c],bMb=[0,[12,59,[17,[0,a,1,0],0]],r],bMc=DL,bMd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bMe=[0,[9,0,0],fj],bMf=[0,[17,0,0],c],bMg=[0,[12,59,[17,[0,a,1,0],0]],r],bMh=av,bMi=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bMp=[0,[17,0,0],c],bMq=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bL0=[0,[15,0],y],bLU=[0,[12,59,[17,[0,a,1,0],0]],r],bLT=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bLV=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bLS=H,bLW=F,bLX=G,bLH=[0,[12,59,[17,[0,a,1,0],0]],r],bLG=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bLI=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bLD=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bLE="Flow_ast.Statement.EnumDeclaration.SymbolBody.members",bLF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bLJ=[0,[17,0,0],c],bLK=[0,[12,59,[17,[0,a,1,0],0]],r],bLL=DL,bLM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bLN=[0,[9,0,0],fj],bLO=[0,[17,0,0],c],bLP=[0,[12,59,[17,[0,a,1,0],0]],r],bLQ=av,bLR=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bLY=[0,[17,0,0],c],bLZ=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bLC=[0,[15,0],y],bLz=[0,[12,59,[17,[0,a,1,0],0]],r],bLy=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bLA=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bLu=[0,[12,59,[17,[0,a,1,0],0]],r],bLt=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bLv=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bLs=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Defaulted@ "],bLw=[0,[17,0,[12,41,0]],t],bLx=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.EnumDeclaration.StringBody.Initialized",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.EnumDeclaration.StringBody.Initialized@ "],bLB=[0,[17,0,[12,41,0]],t],bLr=[0,[15,0],y],bLl=[0,[12,59,[17,[0,a,1,0],0]],r],bLk=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bLm=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bLj=H,bLn=F,bLo=G,bK4=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bK5="Flow_ast.Statement.EnumDeclaration.StringBody.members",bK6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bK7=[0,[17,0,0],c],bK8=[0,[12,59,[17,[0,a,1,0],0]],r],bK9=QJ,bK_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bK$=[0,[9,0,0],fj],bLa=[0,[17,0,0],c],bLb=[0,[12,59,[17,[0,a,1,0],0]],r],bLc=DL,bLd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bLe=[0,[9,0,0],fj],bLf=[0,[17,0,0],c],bLg=[0,[12,59,[17,[0,a,1,0],0]],r],bLh=av,bLi=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bLp=[0,[17,0,0],c],bLq=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bK3=[0,[15,0],y],bKX=[0,[12,59,[17,[0,a,1,0],0]],r],bKW=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bKY=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bKV=H,bKZ=F,bK0=G,bKF=[0,[12,59,[17,[0,a,1,0],0]],r],bKE=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bKG=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bKB=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bKC="Flow_ast.Statement.EnumDeclaration.NumberBody.members",bKD=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bKH=[0,[17,0,0],c],bKI=[0,[12,59,[17,[0,a,1,0],0]],r],bKJ=QJ,bKK=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bKL=[0,[9,0,0],fj],bKM=[0,[17,0,0],c],bKN=[0,[12,59,[17,[0,a,1,0],0]],r],bKO=DL,bKP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bKQ=[0,[9,0,0],fj],bKR=[0,[17,0,0],c],bKS=[0,[12,59,[17,[0,a,1,0],0]],r],bKT=av,bKU=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bK1=[0,[17,0,0],c],bK2=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bKA=[0,[15,0],y],bKu=[0,[12,59,[17,[0,a,1,0],0]],r],bKt=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bKv=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bKs=H,bKw=F,bKx=G,bKc=[0,[12,59,[17,[0,a,1,0],0]],r],bKb=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bKd=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bJ_=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bJ$="Flow_ast.Statement.EnumDeclaration.BooleanBody.members",bKa=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bKe=[0,[17,0,0],c],bKf=[0,[12,59,[17,[0,a,1,0],0]],r],bKg=QJ,bKh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bKi=[0,[9,0,0],fj],bKj=[0,[17,0,0],c],bKk=[0,[12,59,[17,[0,a,1,0],0]],r],bKl=DL,bKm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bKn=[0,[9,0,0],fj],bKo=[0,[17,0,0],c],bKp=[0,[12,59,[17,[0,a,1,0],0]],r],bKq=av,bKr=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bKy=[0,[17,0,0],c],bKz=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bJ9=[0,[15,0],y],bJ4=[0,[12,40,[18,[1,[0,0,g]],0]],an],bJ5=[0,[12,44,[17,[0,a,1,0],0]],I],bJ6=[0,[17,0,[12,41,0]],t],bJX=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bJY="Flow_ast.Statement.EnumDeclaration.InitializedMember.id",bJZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bJ0=[0,[17,0,0],c],bJ1=[0,[12,59,[17,[0,a,1,0],0]],r],bJ2=rM,bJ3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bJ7=[0,[17,0,0],c],bJ8=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bJW=[0,[15,0],y],bJT=[0,[12,40,[18,[1,[0,0,g]],0]],an],bJU=[0,[12,44,[17,[0,a,1,0],0]],I],bJV=[0,[17,0,[12,41,0]],t],bJS=[0,[15,0],y],bJN=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bJO="Flow_ast.Statement.EnumDeclaration.DefaultedMember.id",bJP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bJQ=[0,[17,0,0],c],bJR=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bJM=[0,[15,0],y],bJJ=[0,[12,40,[18,[1,[0,0,g]],0]],an],bJK=[0,[12,44,[17,[0,a,1,0],0]],I],bJL=[0,[17,0,[12,41,0]],t],bJI=[0,[15,0],y],bJC=[0,[12,40,[18,[1,[0,0,g]],0]],an],bJD=[0,[12,44,[17,[0,a,1,0],0]],I],bJE=[0,[17,0,[12,41,0]],t],bJB=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ForOf.LeftDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ForOf.LeftDeclaration@ "],bJF=[0,[17,0,[12,41,0]],t],bJG=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ForOf.LeftPattern",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ForOf.LeftPattern@ "],bJH=[0,[17,0,[12,41,0]],t],bJA=[0,[15,0],y],bJv=au,bJu=H,bJw=F,bJx=G,bJa=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bJb="Flow_ast.Statement.ForOf.left",bJc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bJd=[0,[17,0,0],c],bJe=[0,[12,59,[17,[0,a,1,0],0]],r],bJf=mh,bJg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bJh=[0,[17,0,0],c],bJi=[0,[12,59,[17,[0,a,1,0],0]],r],bJj=he,bJk=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bJl=[0,[17,0,0],c],bJm=[0,[12,59,[17,[0,a,1,0],0]],r],bJn=tF,bJo=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bJp=[0,[9,0,0],fj],bJq=[0,[17,0,0],c],bJr=[0,[12,59,[17,[0,a,1,0],0]],r],bJs=av,bJt=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bJy=[0,[17,0,0],c],bJz=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bI$=[0,[15,0],y],bI5=[0,[12,40,[18,[1,[0,0,g]],0]],an],bI6=[0,[12,44,[17,[0,a,1,0],0]],I],bI7=[0,[17,0,[12,41,0]],t],bI4=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ForIn.LeftDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ForIn.LeftDeclaration@ "],bI8=[0,[17,0,[12,41,0]],t],bI9=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.ForIn.LeftPattern",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.ForIn.LeftPattern@ "],bI_=[0,[17,0,[12,41,0]],t],bI3=[0,[15,0],y],bIY=au,bIX=H,bIZ=F,bI0=G,bID=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bIE="Flow_ast.Statement.ForIn.left",bIF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bIG=[0,[17,0,0],c],bIH=[0,[12,59,[17,[0,a,1,0],0]],r],bII=mh,bIJ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bIK=[0,[17,0,0],c],bIL=[0,[12,59,[17,[0,a,1,0],0]],r],bIM=he,bIN=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bIO=[0,[17,0,0],c],bIP=[0,[12,59,[17,[0,a,1,0],0]],r],bIQ=aUA,bIR=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bIS=[0,[9,0,0],fj],bIT=[0,[17,0,0],c],bIU=[0,[12,59,[17,[0,a,1,0],0]],r],bIV=av,bIW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bI1=[0,[17,0,0],c],bI2=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bIC=[0,[15,0],y],bIw=[0,[12,40,[18,[1,[0,0,g]],0]],an],bIx=[0,[12,44,[17,[0,a,1,0],0]],I],bIy=[0,[17,0,[12,41,0]],t],bIv=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.For.InitDeclaration",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.For.InitDeclaration@ "],bIz=[0,[17,0,[12,41,0]],t],bIA=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Statement.For.InitExpression",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Statement.For.InitExpression@ "],bIB=[0,[17,0,[12,41,0]],t],bIu=[0,[15,0],y],bIp=au,bIo=H,bIq=F,bIr=G,bId=H,bIe=F,bIf=G,bH8=H,bH9=F,bH_=G,bH1=H,bH2=F,bH3=G,bHY=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bHZ="Flow_ast.Statement.For.init",bH0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bH4=[0,[17,0,0],c],bH5=[0,[12,59,[17,[0,a,1,0],0]],r],bH6=xx,bH7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bH$=[0,[17,0,0],c],bIa=[0,[12,59,[17,[0,a,1,0],0]],r],bIb=RS,bIc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bIg=[0,[17,0,0],c],bIh=[0,[12,59,[17,[0,a,1,0],0]],r],bIi=he,bIj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bIk=[0,[17,0,0],c],bIl=[0,[12,59,[17,[0,a,1,0],0]],r],bIm=av,bIn=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bIs=[0,[17,0,0],c],bIt=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bHX=[0,[15,0],y],bHS=au,bHR=H,bHT=F,bHU=G,bHG=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bHH="Flow_ast.Statement.DoWhile.body",bHI=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bHJ=[0,[17,0,0],c],bHK=[0,[12,59,[17,[0,a,1,0],0]],r],bHL=xx,bHM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bHN=[0,[17,0,0],c],bHO=[0,[12,59,[17,[0,a,1,0],0]],r],bHP=av,bHQ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bHV=[0,[17,0,0],c],bHW=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bHF=[0,[15,0],y],bHA=au,bHz=H,bHB=F,bHC=G,bHo=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bHp="Flow_ast.Statement.While.test",bHq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bHr=[0,[17,0,0],c],bHs=[0,[12,59,[17,[0,a,1,0],0]],r],bHt=he,bHu=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bHv=[0,[17,0,0],c],bHw=[0,[12,59,[17,[0,a,1,0],0]],r],bHx=av,bHy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bHD=[0,[17,0,0],c],bHE=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bHn=[0,[15,0],y],bHi=au,bHh=H,bHj=F,bHk=G,bG9=[0,[12,59,[17,[0,a,1,0],0]],r],bG8=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bG_=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bG5=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bG6="Flow_ast.Statement.VariableDeclaration.declarations",bG7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bG$=[0,[17,0,0],c],bHa=[0,[12,59,[17,[0,a,1,0],0]],r],bHb=qk,bHc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bHd=[0,[17,0,0],c],bHe=[0,[12,59,[17,[0,a,1,0],0]],r],bHf=av,bHg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bHl=[0,[17,0,0],c],bHm=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bG4=[0,[15,0],y],bGZ=H,bG0=F,bG1=G,bGS=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bGT="Flow_ast.Statement.VariableDeclaration.Declarator.id",bGU=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bGV=[0,[17,0,0],c],bGW=[0,[12,59,[17,[0,a,1,0],0]],r],bGX=rM,bGY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bG2=[0,[17,0,0],c],bG3=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bGR=[0,[15,0],y],bGO=[0,[12,40,[18,[1,[0,0,g]],0]],an],bGP=[0,[12,44,[17,[0,a,1,0],0]],I],bGQ=[0,[17,0,[12,41,0]],t],bGN=[0,[15,0],y],bGI=au,bGH=H,bGJ=F,bGK=G,bGy=[0,[12,40,[18,[1,[0,0,g]],0]],an],bGz=[0,[12,44,[17,[0,a,1,0],0]],I],bGA=[0,[17,0,[12,41,0]],t],bGx=H,bGB=F,bGC=G,bGq=H,bGr=F,bGs=G,bGj=[0,[12,40,[18,[1,[0,0,g]],0]],an],bGk=[0,[12,44,[17,[0,a,1,0],0]],I],bGl=[0,[17,0,[12,41,0]],t],bGg=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bGh="Flow_ast.Statement.Try.block",bGi=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bGm=[0,[17,0,0],c],bGn=[0,[12,59,[17,[0,a,1,0],0]],r],bGo=a2o,bGp=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bGt=[0,[17,0,0],c],bGu=[0,[12,59,[17,[0,a,1,0],0]],r],bGv=aXB,bGw=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bGD=[0,[17,0,0],c],bGE=[0,[12,59,[17,[0,a,1,0],0]],r],bGF=av,bGG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bGL=[0,[17,0,0],c],bGM=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bGf=[0,[15,0],y],bGa=au,bF$=H,bGb=F,bGc=G,bF4=[0,[12,40,[18,[1,[0,0,g]],0]],an],bF5=[0,[12,44,[17,[0,a,1,0],0]],I],bF6=[0,[17,0,[12,41,0]],t],bFX=H,bFY=F,bFZ=G,bFU=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bFV="Flow_ast.Statement.Try.CatchClause.param",bFW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bF0=[0,[17,0,0],c],bF1=[0,[12,59,[17,[0,a,1,0],0]],r],bF2=he,bF3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bF7=[0,[17,0,0],c],bF8=[0,[12,59,[17,[0,a,1,0],0]],r],bF9=av,bF_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bGd=[0,[17,0,0],c],bGe=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bFT=[0,[15,0],y],bFQ=[0,[12,40,[18,[1,[0,0,g]],0]],an],bFR=[0,[12,44,[17,[0,a,1,0],0]],I],bFS=[0,[17,0,[12,41,0]],t],bFP=[0,[15,0],y],bFK=au,bFJ=H,bFL=F,bFM=G,bFC=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bFD="Flow_ast.Statement.Throw.argument",bFE=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bFF=[0,[17,0,0],c],bFG=[0,[12,59,[17,[0,a,1,0],0]],r],bFH=av,bFI=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bFN=[0,[17,0,0],c],bFO=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bFB=[0,[15,0],y],bFs=au,bFr=H,bFt=F,bFu=G,bFk=H,bFl=F,bFm=G,bFh=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bFi="Flow_ast.Statement.Return.argument",bFj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bFn=[0,[17,0,0],c],bFo=[0,[12,59,[17,[0,a,1,0],0]],r],bFp=av,bFq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bFv=[0,[17,0,0],c],bFw=[0,[12,59,[17,[0,a,1,0],0]],r],bFx="return_out",bFy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bFz=[0,[17,0,0],c],bFA=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bFg=[0,[15,0],y],bE9=au,bE8=H,bE_=F,bE$=G,bE2=[0,[12,59,[17,[0,a,1,0],0]],r],bE1=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bE3=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bEU=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bEV="Flow_ast.Statement.Switch.discriminant",bEW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bEX=[0,[17,0,0],c],bEY=[0,[12,59,[17,[0,a,1,0],0]],r],bEZ=aUQ,bE0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bE4=[0,[17,0,0],c],bE5=[0,[12,59,[17,[0,a,1,0],0]],r],bE6=av,bE7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bFa=[0,[17,0,0],c],bFb=[0,[12,59,[17,[0,a,1,0],0]],r],bFc="exhaustive_out",bFd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bFe=[0,[17,0,0],c],bFf=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bET=[0,[15,0],y],bEO=au,bEN=H,bEP=F,bEQ=G,bEH=[0,[12,59,[17,[0,a,1,0],0]],r],bEG=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bEI=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bEz=H,bEA=F,bEB=G,bEw=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bEx="Flow_ast.Statement.Switch.Case.test",bEy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bEC=[0,[17,0,0],c],bED=[0,[12,59,[17,[0,a,1,0],0]],r],bEE=DN,bEF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bEJ=[0,[17,0,0],c],bEK=[0,[12,59,[17,[0,a,1,0],0]],r],bEL=av,bEM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bER=[0,[17,0,0],c],bES=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bEv=[0,[15,0],y],bEs=[0,[12,40,[18,[1,[0,0,g]],0]],an],bEt=[0,[12,44,[17,[0,a,1,0],0]],I],bEu=[0,[17,0,[12,41,0]],t],bEr=[0,[15,0],y],bEm=au,bEl=H,bEn=F,bEo=G,bEe=H,bEf=F,bEg=G,bD9=H,bD_=F,bD$=G,bD2=H,bD3=F,bD4=G,bDV=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bDW="Flow_ast.Statement.OpaqueType.id",bDX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bDY=[0,[17,0,0],c],bDZ=[0,[12,59,[17,[0,a,1,0],0]],r],bD0=lH,bD1=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bD5=[0,[17,0,0],c],bD6=[0,[12,59,[17,[0,a,1,0],0]],r],bD7=aXF,bD8=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bEa=[0,[17,0,0],c],bEb=[0,[12,59,[17,[0,a,1,0],0]],r],bEc=a3N,bEd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bEh=[0,[17,0,0],c],bEi=[0,[12,59,[17,[0,a,1,0],0]],r],bEj=av,bEk=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bEp=[0,[17,0,0],c],bEq=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bDU=[0,[15,0],y],bDP=au,bDO=H,bDQ=F,bDR=G,bDD=H,bDE=F,bDF=G,bDw=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bDx="Flow_ast.Statement.TypeAlias.id",bDy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bDz=[0,[17,0,0],c],bDA=[0,[12,59,[17,[0,a,1,0],0]],r],bDB=lH,bDC=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bDG=[0,[17,0,0],c],bDH=[0,[12,59,[17,[0,a,1,0],0]],r],bDI=mh,bDJ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bDK=[0,[17,0,0],c],bDL=[0,[12,59,[17,[0,a,1,0],0]],r],bDM=av,bDN=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bDS=[0,[17,0,0],c],bDT=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bDv=[0,[15,0],y],bDq=au,bDp=H,bDr=F,bDs=G,bDe=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bDf="Flow_ast.Statement.With._object",bDg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bDh=[0,[17,0,0],c],bDi=[0,[12,59,[17,[0,a,1,0],0]],r],bDj=he,bDk=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bDl=[0,[17,0,0],c],bDm=[0,[12,59,[17,[0,a,1,0],0]],r],bDn=av,bDo=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bDt=[0,[17,0,0],c],bDu=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bDd=[0,[15,0],y],bC_=au,bC9=H,bC$=F,bDa=G,bC6=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bC7="Flow_ast.Statement.Debugger.comments",bC8=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bDb=[0,[17,0,0],c],bDc=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bC5=[0,[15,0],y],bC0=au,bCZ=H,bC1=F,bC2=G,bCS=H,bCT=F,bCU=G,bCP=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bCQ="Flow_ast.Statement.Continue.label",bCR=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bCV=[0,[17,0,0],c],bCW=[0,[12,59,[17,[0,a,1,0],0]],r],bCX=av,bCY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bC3=[0,[17,0,0],c],bC4=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bCO=[0,[15,0],y],bCJ=au,bCI=H,bCK=F,bCL=G,bCB=H,bCC=F,bCD=G,bCy=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bCz="Flow_ast.Statement.Break.label",bCA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bCE=[0,[17,0,0],c],bCF=[0,[12,59,[17,[0,a,1,0],0]],r],bCG=av,bCH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bCM=[0,[17,0,0],c],bCN=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bCx=[0,[15,0],y],bCs=au,bCr=H,bCt=F,bCu=G,bCg=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bCh="Flow_ast.Statement.Labeled.label",bCi=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bCj=[0,[17,0,0],c],bCk=[0,[12,59,[17,[0,a,1,0],0]],r],bCl=he,bCm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bCn=[0,[17,0,0],c],bCo=[0,[12,59,[17,[0,a,1,0],0]],r],bCp=av,bCq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bCv=[0,[17,0,0],c],bCw=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bCf=[0,[15,0],y],bCa=au,bB$=H,bCb=F,bCc=G,bB4=H,bB5=F,bB6=G,bBT=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bBU="Flow_ast.Statement.If.test",bBV=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bBW=[0,[17,0,0],c],bBX=[0,[12,59,[17,[0,a,1,0],0]],r],bBY=DN,bBZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bB0=[0,[17,0,0],c],bB1=[0,[12,59,[17,[0,a,1,0],0]],r],bB2=QD,bB3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bB7=[0,[17,0,0],c],bB8=[0,[12,59,[17,[0,a,1,0],0]],r],bB9=av,bB_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bCd=[0,[17,0,0],c],bCe=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bBS=[0,[15,0],y],bBN=au,bBM=H,bBO=F,bBP=G,bBF=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bBG="Flow_ast.Statement.If.Alternate.body",bBH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bBI=[0,[17,0,0],c],bBJ=[0,[12,59,[17,[0,a,1,0],0]],r],bBK=av,bBL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bBQ=[0,[17,0,0],c],bBR=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bBE=[0,[15,0],y],bBB=[0,[12,40,[18,[1,[0,0,g]],0]],an],bBC=[0,[12,44,[17,[0,a,1,0],0]],I],bBD=[0,[17,0,[12,41,0]],t],bBA=[0,[15,0],y],bBu=[0,[12,59,[17,[0,a,1,0],0]],r],bBt=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bBv=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bBs=H,bBw=F,bBx=G,bBm=[0,[12,59,[17,[0,a,1,0],0]],r],bBl=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bBn=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bBi=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bBj="Flow_ast.Statement.Block.body",bBk=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bBo=[0,[17,0,0],c],bBp=[0,[12,59,[17,[0,a,1,0],0]],r],bBq=av,bBr=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bBy=[0,[17,0,0],c],bBz=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bBg=[0,[15,0],y],bBa=[0,[12,59,[17,[0,a,1,0],0]],r],bA$=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bBb=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bA_=H,bBc=F,bBd=G,bA2=H,bA3=F,bA4=G,bA0=[0,[12,40,[18,[1,[0,0,g]],0]],an],bA1=[0,[12,44,[17,[0,a,1,0],0]],I],bA5=[0,[17,0,[12,41,0]],t],bAS=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bAT="Flow_ast.Type.TypeGuard.asserts",bAU=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bAV=[0,[9,0,0],fj],bAW=[0,[17,0,0],c],bAX=[0,[12,59,[17,[0,a,1,0],0]],r],bAY="guard",bAZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bA6=[0,[17,0,0],c],bA7=[0,[12,59,[17,[0,a,1,0],0]],r],bA8=av,bA9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bBe=[0,[17,0,0],c],bBf=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bAR=[0,[15,0],y],bAO=[0,[12,40,[18,[1,[0,0,g]],0]],an],bAP=[0,[12,44,[17,[0,a,1,0],0]],I],bAQ=[0,[17,0,[12,41,0]],t],bAM=[0,[15,0],y],bAJ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Predicate.Declared",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Predicate.Declared@ "],bAK=[0,[17,0,[12,41,0]],t],bAL="Flow_ast.Type.Predicate.Inferred",bAI=[0,[15,0],y],bAD=au,bAC=H,bAE=F,bAF=G,bAv=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bAw="Flow_ast.Type.Predicate.kind",bAx=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bAy=[0,[17,0,0],c],bAz=[0,[12,59,[17,[0,a,1,0],0]],r],bAA=av,bAB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bAG=[0,[17,0,0],c],bAH=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bAu=[0,[15,0],y],bAr=[0,[12,40,[18,[1,[0,0,g]],0]],an],bAs=[0,[12,44,[17,[0,a,1,0],0]],I],bAt=[0,[17,0,[12,41,0]],t],bAp=[0,[15,0],y],bAj=[0,[12,59,[17,[0,a,1,0],0]],r],bAi=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bAk=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bAh=H,bAl=F,bAm=G,bAb=[0,[12,59,[17,[0,a,1,0],0]],r],bAa=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bAc=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bz9=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bz_="Flow_ast.Type.TypeArgs.arguments",bz$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bAd=[0,[17,0,0],c],bAe=[0,[12,59,[17,[0,a,1,0],0]],r],bAf=av,bAg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bAn=[0,[17,0,0],c],bAo=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bz8=[0,[15,0],y],bz5=[0,[12,40,[18,[1,[0,0,g]],0]],an],bz6=[0,[12,44,[17,[0,a,1,0],0]],I],bz7=[0,[17,0,[12,41,0]],t],bz3=[0,[15,0],y],bzX=[0,[12,59,[17,[0,a,1,0],0]],r],bzW=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bzY=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bzV=H,bzZ=F,bz0=G,bzP=[0,[12,59,[17,[0,a,1,0],0]],r],bzO=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bzQ=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bzL=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bzM="Flow_ast.Type.TypeParams.params",bzN=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bzR=[0,[17,0,0],c],bzS=[0,[12,59,[17,[0,a,1,0],0]],r],bzT=av,bzU=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bz1=[0,[17,0,0],c],bz2=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bzK=[0,[15,0],y],bzH=[0,[12,40,[18,[1,[0,0,g]],0]],an],bzI=[0,[12,44,[17,[0,a,1,0],0]],I],bzJ=[0,[17,0,[12,41,0]],t],by_="Flow_ast.Type.TypeParam.Extends",by$="Flow_ast.Type.TypeParam.Colon",bza=[0,[15,0],y],bzG=[0,[15,0],y],bzB=H,bzC=F,bzD=G,bzu=H,bzv=F,bzw=G,bzf=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bzg="Flow_ast.Type.TypeParam.name",bzh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bzi=[0,[17,0,0],c],bzj=[0,[12,59,[17,[0,a,1,0],0]],r],bzk=Re,bzl=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bzm=[0,[17,0,0],c],bzn=[0,[12,59,[17,[0,a,1,0],0]],r],bzo="bound_kind",bzp=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bzq=[0,[17,0,0],c],bzr=[0,[12,59,[17,[0,a,1,0],0]],r],bzs=ay,bzt=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bzx=[0,[17,0,0],c],bzy=[0,[12,59,[17,[0,a,1,0],0]],r],bzz=gF,bzA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bzE=[0,[17,0,0],c],bzF=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bze=[0,[15,0],y],bzb=[0,[12,40,[18,[1,[0,0,g]],0]],an],bzc=[0,[12,44,[17,[0,a,1,0],0]],I],bzd=[0,[17,0,[12,41,0]],t],by8=[0,[15,0],y],by3=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.MissingRenders",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.MissingRenders@ "],by4=[0,[17,0,[12,41,0]],t],by5=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.AvailableRenders (",[17,[0,w,0,0],0]]]],"(@[<2>Flow_ast.Type.AvailableRenders (@,"],by6=[0,[12,44,[17,[0,a,1,0],0]],I],by7=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],by2=[0,[15,0],y],byY=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Missing",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Missing@ "],byZ=[0,[17,0,[12,41,0]],t],by0=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Available",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Available@ "],by1=[0,[17,0,[12,41,0]],t],byX=[0,[15,0],y],byU=[0,[12,40,[18,[1,[0,0,g]],0]],an],byV=[0,[12,44,[17,[0,a,1,0],0]],I],byW=[0,[17,0,[12,41,0]],t],byT=[0,[15,0],y],byQ=[0,[12,40,[18,[1,[0,0,g]],0]],an],byR=[0,[12,44,[17,[0,a,1,0],0]],I],byS=[0,[17,0,[12,41,0]],t],byP=[0,[15,0],y],byL=au,byK=H,byM=F,byN=G,byF=au,byE=H,byG=F,byH=G,byz=au,byy=H,byA=F,byB=G,bxN=au,bxM=H,bxO=F,bxP=G,bxH=au,bxG=H,bxI=F,bxJ=G,bxA=au,bxz=H,bxB=F,bxC=G,bxt="`Bool",bxu="`Boolean",bxm=au,bxl=H,bxn=F,bxo=G,bxg=au,bxf=H,bxh=F,bxi=G,bxa=au,bw$=H,bxb=F,bxc=G,bw6=au,bw5=H,bw7=F,bw8=G,bw0=au,bwZ=H,bw1=F,bw2=G,bwU=au,bwT=H,bwV=F,bwW=G,bwO=au,bwN=H,bwP=F,bwQ=G,bwI=au,bwH=H,bwJ=F,bwK=G,bwG=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Any",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Any@ "],bwL=[0,[17,0,[12,41,0]],t],bwM=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Mixed",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Mixed@ "],bwR=[0,[17,0,[12,41,0]],t],bwS=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Empty",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Empty@ "],bwX=[0,[17,0,[12,41,0]],t],bwY=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Void",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Void@ "],bw3=[0,[17,0,[12,41,0]],t],bw4=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Null",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Null@ "],bw9=[0,[17,0,[12,41,0]],t],bw_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Number",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Number@ "],bxd=[0,[17,0,[12,41,0]],t],bxe=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.BigInt",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.BigInt@ "],bxj=[0,[17,0,[12,41,0]],t],bxk=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.String",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.String@ "],bxp=[0,[17,0,[12,41,0]],t],bxq=[0,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Boolean {",[17,[0,w,0,0],0]]],"@[<2>Flow_ast.Type.Boolean {@,"],bxr=k_,bxs=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bxv=[0,[17,0,0],c],bxw=[0,[12,59,[17,[0,a,1,0],0]],r],bxx=av,bxy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bxD=[0,[17,0,0],c],bxE=[0,[17,0,[12,E,0]],bk],bxF=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Symbol",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Symbol@ "],bxK=[0,[17,0,[12,41,0]],t],bxL=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Exists",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Exists@ "],bxQ=[0,[17,0,[12,41,0]],t],bxR=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Nullable",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Nullable@ "],bxS=[0,[17,0,[12,41,0]],t],bxT=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Function",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Function@ "],bxU=[0,[17,0,[12,41,0]],t],bxV=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Component",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Component@ "],bxW=[0,[17,0,[12,41,0]],t],bxX=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Object",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Object@ "],bxY=[0,[17,0,[12,41,0]],t],bxZ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Interface",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Interface@ "],bx0=[0,[17,0,[12,41,0]],t],bx1=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Array",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Array@ "],bx2=[0,[17,0,[12,41,0]],t],bx3=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Conditional",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Conditional@ "],bx4=[0,[17,0,[12,41,0]],t],bx5=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Infer",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Infer@ "],bx6=[0,[17,0,[12,41,0]],t],bx7=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Generic",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Generic@ "],bx8=[0,[17,0,[12,41,0]],t],bx9=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.IndexedAccess",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.IndexedAccess@ "],bx_=[0,[17,0,[12,41,0]],t],bx$=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.OptionalIndexedAccess",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.OptionalIndexedAccess@ "],bya=[0,[17,0,[12,41,0]],t],byb=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Union",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Union@ "],byc=[0,[17,0,[12,41,0]],t],byd=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Intersection",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Intersection@ "],bye=[0,[17,0,[12,41,0]],t],byf=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Typeof",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Typeof@ "],byg=[0,[17,0,[12,41,0]],t],byh=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Keyof",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Keyof@ "],byi=[0,[17,0,[12,41,0]],t],byj=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Renders",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Renders@ "],byk=[0,[17,0,[12,41,0]],t],byl=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.ReadOnly",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.ReadOnly@ "],bym=[0,[17,0,[12,41,0]],t],byn=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Tuple",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Tuple@ "],byo=[0,[17,0,[12,41,0]],t],byp=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.StringLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.StringLiteral@ "],byq=[0,[17,0,[12,41,0]],t],byr=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.NumberLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.NumberLiteral@ "],bys=[0,[17,0,[12,41,0]],t],byt=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.BigIntLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.BigIntLiteral@ "],byu=[0,[17,0,[12,41,0]],t],byv=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.BooleanLiteral",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.BooleanLiteral@ "],byw=[0,[17,0,[12,41,0]],t],byx=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Unknown",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Unknown@ "],byC=[0,[17,0,[12,41,0]],t],byD=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Never",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Never@ "],byI=[0,[17,0,[12,41,0]],t],byJ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Undefined",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Undefined@ "],byO=[0,[17,0,[12,41,0]],t],bwF=[0,[15,0],y],bwC=[0,[12,40,[18,[1,[0,0,g]],0]],an],bwD=[0,[12,44,[17,[0,a,1,0],0]],I],bwE=[0,[17,0,[12,41,0]],t],bwB=[0,[15,0],y],bww=au,bwv=H,bwx=F,bwy=G,bwo=[0,[12,59,[17,[0,a,1,0],0]],r],bwn=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bwp=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bwk=[0,[12,40,[18,[1,[0,0,g]],0]],an],bwl=[0,[12,44,[17,[0,a,1,0],0]],I],bwm=[0,[12,44,[17,[0,a,1,0],0]],I],bwq=[0,[17,0,[12,41,0]],t],bwh=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bwi="Flow_ast.Type.Intersection.types",bwj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bwr=[0,[17,0,0],c],bws=[0,[12,59,[17,[0,a,1,0],0]],r],bwt=av,bwu=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bwz=[0,[17,0,0],c],bwA=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bwg=[0,[15,0],y],bwb=au,bwa=H,bwc=F,bwd=G,bv5=[0,[12,59,[17,[0,a,1,0],0]],r],bv4=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bv6=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bv1=[0,[12,40,[18,[1,[0,0,g]],0]],an],bv2=[0,[12,44,[17,[0,a,1,0],0]],I],bv3=[0,[12,44,[17,[0,a,1,0],0]],I],bv7=[0,[17,0,[12,41,0]],t],bvY=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bvZ="Flow_ast.Type.Union.types",bv0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bv8=[0,[17,0,0],c],bv9=[0,[12,59,[17,[0,a,1,0],0]],r],bv_=av,bv$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bwe=[0,[17,0,0],c],bwf=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bvX=[0,[15,0],y],bvS=au,bvR=H,bvT=F,bvU=G,bvK=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bvL="Flow_ast.Type.Array.argument",bvM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bvN=[0,[17,0,0],c],bvO=[0,[12,59,[17,[0,a,1,0],0]],r],bvP=av,bvQ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bvV=[0,[17,0,0],c],bvW=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bvJ=[0,[15,0],y],bvE=au,bvD=H,bvF=F,bvG=G,bvx=[0,[12,59,[17,[0,a,1,0],0]],r],bvw=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bvy=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bvt=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bvu="Flow_ast.Type.Tuple.elements",bvv=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bvz=[0,[17,0,0],c],bvA=[0,[12,59,[17,[0,a,1,0],0]],r],bvB=av,bvC=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bvH=[0,[17,0,0],c],bvI=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bvs=[0,[15,0],y],bvm=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Tuple.UnlabeledElement",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Tuple.UnlabeledElement@ "],bvn=[0,[17,0,[12,41,0]],t],bvo=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Tuple.LabeledElement",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Tuple.LabeledElement@ "],bvp=[0,[17,0,[12,41,0]],t],bvq=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Tuple.SpreadElement",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Tuple.SpreadElement@ "],bvr=[0,[17,0,[12,41,0]],t],bvl=[0,[15,0],y],bvi=[0,[12,40,[18,[1,[0,0,g]],0]],an],bvj=[0,[12,44,[17,[0,a,1,0],0]],I],bvk=[0,[17,0,[12,41,0]],t],bvh=[0,[15,0],y],bu_=H,bu$=F,bva=G,bu7=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bu8="Flow_ast.Type.Tuple.SpreadElement.name",bu9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bvb=[0,[17,0,0],c],bvc=[0,[12,59,[17,[0,a,1,0],0]],r],bvd=qq,bve=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bvf=[0,[17,0,0],c],bvg=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bu6=[0,[15,0],y],buW=H,buX=F,buY=G,buL=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],buM="Flow_ast.Type.Tuple.LabeledElement.name",buN=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],buO=[0,[17,0,0],c],buP=[0,[12,59,[17,[0,a,1,0],0]],r],buQ=qq,buR=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],buS=[0,[17,0,0],c],buT=[0,[12,59,[17,[0,a,1,0],0]],r],buU=ay,buV=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],buZ=[0,[17,0,0],c],bu0=[0,[12,59,[17,[0,a,1,0],0]],r],bu1=iu,bu2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bu3=[0,[9,0,0],fj],bu4=[0,[17,0,0],c],bu5=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],buK=[0,[15,0],y],buF=au,buE=H,buG=F,buH=G,bux=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],buy="Flow_ast.Type.ReadOnly.argument",buz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],buA=[0,[17,0,0],c],buB=[0,[12,59,[17,[0,a,1,0],0]],r],buC=av,buD=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],buI=[0,[17,0,0],c],buJ=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bt9="Flow_ast.Type.Renders.Normal",bt_="Flow_ast.Type.Renders.Maybe",bt$="Flow_ast.Type.Renders.Star",bua=[0,[15,0],y],buw=[0,[15,0],y],bun=au,bum=H,buo=F,bup=G,bub=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],buc="Flow_ast.Type.Renders.operator_loc",bud=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bue=[0,[17,0,0],c],buf=[0,[12,59,[17,[0,a,1,0],0]],r],bug=jJ,buh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bui=[0,[17,0,0],c],buj=[0,[12,59,[17,[0,a,1,0],0]],r],buk=av,bul=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],buq=[0,[17,0,0],c],bur=[0,[12,59,[17,[0,a,1,0],0]],r],bus="variant",but=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],buu=[0,[17,0,0],c],buv=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bt7=[0,[15,0],y],bt2=au,bt1=H,bt3=F,bt4=G,btU=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],btV="Flow_ast.Type.Keyof.argument",btW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],btX=[0,[17,0,0],c],btY=[0,[12,59,[17,[0,a,1,0],0]],r],btZ=av,bt0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bt5=[0,[17,0,0],c],bt6=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],btT=[0,[15,0],y],btO=au,btN=H,btP=F,btQ=G,btG=H,btH=F,btI=G,btz=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],btA="Flow_ast.Type.Typeof.argument",btB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],btC=[0,[17,0,0],c],btD=[0,[12,59,[17,[0,a,1,0],0]],r],btE=rP,btF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],btJ=[0,[17,0,0],c],btK=[0,[12,59,[17,[0,a,1,0],0]],r],btL=av,btM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],btR=[0,[17,0,0],c],btS=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bty=[0,[15,0],y],btv=[0,[12,40,[18,[1,[0,0,g]],0]],an],btw=[0,[12,44,[17,[0,a,1,0],0]],I],btx=[0,[17,0,[12,41,0]],t],btu=[0,[15,0],y],btl=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],btm="Flow_ast.Type.Typeof.Target.qualification",btn=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bto=[0,[17,0,0],c],btp=[0,[12,59,[17,[0,a,1,0],0]],r],btq=hx,btr=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bts=[0,[17,0,0],c],btt=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],btk=[0,[15,0],y],btg=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Typeof.Target.Unqualified",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Typeof.Target.Unqualified@ "],bth=[0,[17,0,[12,41,0]],t],bti=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Typeof.Target.Qualified",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Typeof.Target.Qualified@ "],btj=[0,[17,0,[12,41,0]],t],btf=[0,[15,0],y],bta=au,bs$=H,btb=F,btc=G,bs4=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bs5="Flow_ast.Type.Nullable.argument",bs6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bs7=[0,[17,0,0],c],bs8=[0,[12,59,[17,[0,a,1,0],0]],r],bs9=av,bs_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],btd=[0,[17,0,0],c],bte=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bs3=[0,[15,0],y],bsY=au,bsX=H,bsZ=F,bs0=G,bsP=[0,[12,40,[18,[1,[0,0,g]],0]],an],bsQ=[0,[12,44,[17,[0,a,1,0],0]],I],bsR=[0,[17,0,[12,41,0]],t],bsO=[0,[12,59,[17,[0,a,1,0],0]],r],bsN=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bsS=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bsG=[0,[12,40,[18,[1,[0,0,g]],0]],an],bsH=[0,[12,44,[17,[0,a,1,0],0]],I],bsI=[0,[17,0,[12,41,0]],t],bsD=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bsE="Flow_ast.Type.Interface.body",bsF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bsJ=[0,[17,0,0],c],bsK=[0,[12,59,[17,[0,a,1,0],0]],r],bsL=jZ,bsM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bsT=[0,[17,0,0],c],bsU=[0,[12,59,[17,[0,a,1,0],0]],r],bsV=av,bsW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bs1=[0,[17,0,0],c],bs2=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bsC=[0,[15,0],y],bsq=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Object.Property",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Object.Property@ "],bsr=[0,[17,0,[12,41,0]],t],bss=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Object.SpreadProperty",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Object.SpreadProperty@ "],bst=[0,[17,0,[12,41,0]],t],bsu=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Object.Indexer",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Object.Indexer@ "],bsv=[0,[17,0,[12,41,0]],t],bsw=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Object.CallProperty",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Object.CallProperty@ "],bsx=[0,[17,0,[12,41,0]],t],bsy=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Object.InternalSlot",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Object.InternalSlot@ "],bsz=[0,[17,0,[12,41,0]],t],bsA=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Object.MappedType",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Object.MappedType@ "],bsB=[0,[17,0,[12,41,0]],t],bsp=[0,[15,0],y],bsj=[0,[12,59,[17,[0,a,1,0],0]],r],bsi=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bsk=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bsh=H,bsl=F,bsm=G,bsb=[0,[12,59,[17,[0,a,1,0],0]],r],bsa=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bsc=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],brZ=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],br0="Flow_ast.Type.Object.exact",br1=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],br2=[0,[9,0,0],fj],br3=[0,[17,0,0],c],br4=[0,[12,59,[17,[0,a,1,0],0]],r],br5=aVi,br6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],br7=[0,[9,0,0],fj],br8=[0,[17,0,0],c],br9=[0,[12,59,[17,[0,a,1,0],0]],r],br_=T7,br$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bsd=[0,[17,0,0],c],bse=[0,[12,59,[17,[0,a,1,0],0]],r],bsf=av,bsg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bsn=[0,[17,0,0],c],bso=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],brY=[0,[15,0],y],brT=au,brS=H,brU=F,brV=G,brs=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],brt="Flow_ast.Type.Object.InternalSlot.id",bru=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],brv=[0,[17,0,0],c],brw=[0,[12,59,[17,[0,a,1,0],0]],r],brx=g8,bry=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],brz=[0,[17,0,0],c],brA=[0,[12,59,[17,[0,a,1,0],0]],r],brB=iu,brC=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],brD=[0,[9,0,0],fj],brE=[0,[17,0,0],c],brF=[0,[12,59,[17,[0,a,1,0],0]],r],brG=ko,brH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],brI=[0,[9,0,0],fj],brJ=[0,[17,0,0],c],brK=[0,[12,59,[17,[0,a,1,0],0]],r],brL=aVl,brM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],brN=[0,[9,0,0],fj],brO=[0,[17,0,0],c],brP=[0,[12,59,[17,[0,a,1,0],0]],r],brQ=av,brR=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],brW=[0,[17,0,0],c],brX=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],brr=[0,[15,0],y],bro=[0,[12,40,[18,[1,[0,0,g]],0]],an],brp=[0,[12,44,[17,[0,a,1,0],0]],I],brq=[0,[17,0,[12,41,0]],t],brn=[0,[15,0],y],bri=au,brh=H,brj=F,brk=G,bq7=[0,[12,40,[18,[1,[0,0,g]],0]],an],bq8=[0,[12,44,[17,[0,a,1,0],0]],I],bq9=[0,[17,0,[12,41,0]],t],bq4=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bq5="Flow_ast.Type.Object.CallProperty.value",bq6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bq_=[0,[17,0,0],c],bq$=[0,[12,59,[17,[0,a,1,0],0]],r],bra=ko,brb=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],brc=[0,[9,0,0],fj],brd=[0,[17,0,0],c],bre=[0,[12,59,[17,[0,a,1,0],0]],r],brf=av,brg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],brl=[0,[17,0,0],c],brm=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bq3=[0,[15,0],y],bq0=[0,[12,40,[18,[1,[0,0,g]],0]],an],bq1=[0,[12,44,[17,[0,a,1,0],0]],I],bq2=[0,[17,0,[12,41,0]],t],bqk="Flow_ast.Type.Object.MappedType.PlusOptional",bql="Flow_ast.Type.Object.MappedType.MinusOptional",bqm="Flow_ast.Type.Object.MappedType.Optional",bqn="Flow_ast.Type.Object.MappedType.NoOptionalFlag",bqo=[0,[15,0],y],bqZ=[0,[15,0],y],bqW=[0,[12,40,[18,[1,[0,0,g]],0]],an],bqX=[0,[12,44,[17,[0,a,1,0],0]],I],bqY=[0,[17,0,[12,41,0]],t],bqV=[0,[15,0],y],bqQ=au,bqP=H,bqR=F,bqS=G,bqE=H,bqF=F,bqG=G,bqp=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bqq="Flow_ast.Type.Object.MappedType.key_tparam",bqr=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bqs=[0,[17,0,0],c],bqt=[0,[12,59,[17,[0,a,1,0],0]],r],bqu="prop_type",bqv=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bqw=[0,[17,0,0],c],bqx=[0,[12,59,[17,[0,a,1,0],0]],r],bqy=aTY,bqz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bqA=[0,[17,0,0],c],bqB=[0,[12,59,[17,[0,a,1,0],0]],r],bqC=ay,bqD=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bqH=[0,[17,0,0],c],bqI=[0,[12,59,[17,[0,a,1,0],0]],r],bqJ=iu,bqK=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bqL=[0,[17,0,0],c],bqM=[0,[12,59,[17,[0,a,1,0],0]],r],bqN=av,bqO=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bqT=[0,[17,0,0],c],bqU=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bqi=[0,[15,0],y],bqf=[0,[12,40,[18,[1,[0,0,g]],0]],an],bqg=[0,[12,44,[17,[0,a,1,0],0]],I],bqh=[0,[17,0,[12,41,0]],t],bqe=[0,[15,0],y],bp$=au,bp_=H,bqa=F,bqb=G,bp3=H,bp4=F,bp5=G,bpJ=H,bpK=F,bpL=G,bpG=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bpH="Flow_ast.Type.Object.Indexer.id",bpI=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bpM=[0,[17,0,0],c],bpN=[0,[12,59,[17,[0,a,1,0],0]],r],bpO=l9,bpP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bpQ=[0,[17,0,0],c],bpR=[0,[12,59,[17,[0,a,1,0],0]],r],bpS=g8,bpT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bpU=[0,[17,0,0],c],bpV=[0,[12,59,[17,[0,a,1,0],0]],r],bpW=ko,bpX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bpY=[0,[9,0,0],fj],bpZ=[0,[17,0,0],c],bp0=[0,[12,59,[17,[0,a,1,0],0]],r],bp1=ay,bp2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bp6=[0,[17,0,0],c],bp7=[0,[12,59,[17,[0,a,1,0],0]],r],bp8=av,bp9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bqc=[0,[17,0,0],c],bqd=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bpF=[0,[15,0],y],bpA=au,bpz=H,bpB=F,bpC=G,bps=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bpt="Flow_ast.Type.Object.SpreadProperty.argument",bpu=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bpv=[0,[17,0,0],c],bpw=[0,[12,59,[17,[0,a,1,0],0]],r],bpx=av,bpy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bpD=[0,[17,0,0],c],bpE=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bpr=[0,[15,0],y],bpo=[0,[12,40,[18,[1,[0,0,g]],0]],an],bpp=[0,[12,44,[17,[0,a,1,0],0]],I],bpq=[0,[17,0,[12,41,0]],t],bpn=[0,[15,0],y],bpj=[0,[12,40,[18,[1,[0,0,g]],0]],an],bpk=[0,[12,44,[17,[0,a,1,0],0]],I],bpl=[0,[17,0,[12,41,0]],t],bpe=[0,[12,40,[18,[1,[0,0,g]],0]],an],bpf=[0,[12,44,[17,[0,a,1,0],0]],I],bpg=[0,[17,0,[12,41,0]],t],bpb=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Object.Property.Init",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Object.Property.Init@ "],bpc=[0,[17,0,[12,41,0]],t],bpd=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Object.Property.Get",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Object.Property.Get@ "],bph=[0,[17,0,[12,41,0]],t],bpi=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Object.Property.Set",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Object.Property.Set@ "],bpm=[0,[17,0,[12,41,0]],t],bpa=[0,[15,0],y],bo7=au,bo6=H,bo8=F,bo9=G,boZ=H,bo0=F,bo1=G,bou=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bov="Flow_ast.Type.Object.Property.key",bow=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],box=[0,[17,0,0],c],boy=[0,[12,59,[17,[0,a,1,0],0]],r],boz=g8,boA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],boB=[0,[17,0,0],c],boC=[0,[12,59,[17,[0,a,1,0],0]],r],boD=iu,boE=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],boF=[0,[9,0,0],fj],boG=[0,[17,0,0],c],boH=[0,[12,59,[17,[0,a,1,0],0]],r],boI=ko,boJ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],boK=[0,[9,0,0],fj],boL=[0,[17,0,0],c],boM=[0,[12,59,[17,[0,a,1,0],0]],r],boN=zY,boO=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],boP=[0,[9,0,0],fj],boQ=[0,[17,0,0],c],boR=[0,[12,59,[17,[0,a,1,0],0]],r],boS=aVl,boT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],boU=[0,[9,0,0],fj],boV=[0,[17,0,0],c],boW=[0,[12,59,[17,[0,a,1,0],0]],r],boX=ay,boY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bo2=[0,[17,0,0],c],bo3=[0,[12,59,[17,[0,a,1,0],0]],r],bo4=av,bo5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bo_=[0,[17,0,0],c],bo$=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bot=[0,[15,0],y],boq=[0,[12,40,[18,[1,[0,0,g]],0]],an],bor=[0,[12,44,[17,[0,a,1,0],0]],I],bos=[0,[17,0,[12,41,0]],t],bop=[0,[15,0],y],bof=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bog="Flow_ast.Type.OptionalIndexedAccess.indexed_access",boh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],boi=[0,[17,0,0],c],boj=[0,[12,59,[17,[0,a,1,0],0]],r],bok=iu,bol=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bom=[0,[9,0,0],fj],bon=[0,[17,0,0],c],boo=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],boe=[0,[15,0],y],bn$=au,bn_=H,boa=F,bob=G,bnZ=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bn0="Flow_ast.Type.IndexedAccess._object",bn1=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bn2=[0,[17,0,0],c],bn3=[0,[12,59,[17,[0,a,1,0],0]],r],bn4=pO,bn5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bn6=[0,[17,0,0],c],bn7=[0,[12,59,[17,[0,a,1,0],0]],r],bn8=av,bn9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],boc=[0,[17,0,0],c],bod=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bnY=[0,[15,0],y],bnT=au,bnS=H,bnU=F,bnV=G,bnL=H,bnM=F,bnN=G,bnE=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bnF="Flow_ast.Type.Generic.id",bnG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bnH=[0,[17,0,0],c],bnI=[0,[12,59,[17,[0,a,1,0],0]],r],bnJ=rP,bnK=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bnO=[0,[17,0,0],c],bnP=[0,[12,59,[17,[0,a,1,0],0]],r],bnQ=av,bnR=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bnW=[0,[17,0,0],c],bnX=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bnD=[0,[15,0],y],bnu=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bnv="Flow_ast.Type.Generic.Identifier.qualification",bnw=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bnx=[0,[17,0,0],c],bny=[0,[12,59,[17,[0,a,1,0],0]],r],bnz=hx,bnA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bnB=[0,[17,0,0],c],bnC=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bnt=[0,[15,0],y],bnq=[0,[12,40,[18,[1,[0,0,g]],0]],an],bnr=[0,[12,44,[17,[0,a,1,0],0]],I],bns=[0,[17,0,[12,41,0]],t],bnp=[0,[15,0],y],bnl=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Generic.Identifier.Unqualified",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Generic.Identifier.Unqualified@ "],bnm=[0,[17,0,[12,41,0]],t],bnn=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Generic.Identifier.Qualified",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Generic.Identifier.Qualified@ "],bno=[0,[17,0,[12,41,0]],t],bnk=[0,[15,0],y],bnf=au,bne=H,bng=F,bnh=G,bm1=H,bm2=F,bm3=G,bmY=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bmZ="Flow_ast.Type.Component.tparams",bm0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bm4=[0,[17,0,0],c],bm5=[0,[12,59,[17,[0,a,1,0],0]],r],bm6=kQ,bm7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bm8=[0,[17,0,0],c],bm9=[0,[12,59,[17,[0,a,1,0],0]],r],bm_=qW,bm$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bna=[0,[17,0,0],c],bnb=[0,[12,59,[17,[0,a,1,0],0]],r],bnc=av,bnd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bni=[0,[17,0,0],c],bnj=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bmX=[0,[15,0],y],bmR=[0,[12,59,[17,[0,a,1,0],0]],r],bmQ=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bmS=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bmP=H,bmT=F,bmU=G,bmI=H,bmJ=F,bmK=G,bmC=[0,[12,59,[17,[0,a,1,0],0]],r],bmB=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bmD=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bmy=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bmz="Flow_ast.Type.Component.Params.params",bmA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bmE=[0,[17,0,0],c],bmF=[0,[12,59,[17,[0,a,1,0],0]],r],bmG=vm,bmH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bmL=[0,[17,0,0],c],bmM=[0,[12,59,[17,[0,a,1,0],0]],r],bmN=av,bmO=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bmV=[0,[17,0,0],c],bmW=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bmx=[0,[15,0],y],bmu=[0,[12,40,[18,[1,[0,0,g]],0]],an],bmv=[0,[12,44,[17,[0,a,1,0],0]],I],bmw=[0,[17,0,[12,41,0]],t],bmt=[0,[15,0],y],bmo=au,bmn=H,bmp=F,bmq=G,bl9=H,bl_=F,bl$=G,bl6=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bl7="Flow_ast.Type.Component.RestParam.argument",bl8=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bma=[0,[17,0,0],c],bmb=[0,[12,59,[17,[0,a,1,0],0]],r],bmc=qq,bmd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bme=[0,[17,0,0],c],bmf=[0,[12,59,[17,[0,a,1,0],0]],r],bmg=iu,bmh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bmi=[0,[9,0,0],fj],bmj=[0,[17,0,0],c],bmk=[0,[12,59,[17,[0,a,1,0],0]],r],bml=av,bmm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bmr=[0,[17,0,0],c],bms=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bl5=[0,[15,0],y],bl2=[0,[12,40,[18,[1,[0,0,g]],0]],an],bl3=[0,[12,44,[17,[0,a,1,0],0]],I],bl4=[0,[17,0,[12,41,0]],t],bl1=[0,[15,0],y],blN=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],blO="Flow_ast.Type.Component.Param.name",blP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],blQ=[0,[17,0,0],c],blR=[0,[12,59,[17,[0,a,1,0],0]],r],blS=qq,blT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],blU=[0,[17,0,0],c],blV=[0,[12,59,[17,[0,a,1,0],0]],r],blW=iu,blX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],blY=[0,[9,0,0],fj],blZ=[0,[17,0,0],c],bl0=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],blM=[0,[15,0],y],blJ=[0,[12,40,[18,[1,[0,0,g]],0]],an],blK=[0,[12,44,[17,[0,a,1,0],0]],I],blL=[0,[17,0,[12,41,0]],t],blI=[0,[15,0],y],blE=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Function.TypeAnnotation",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Function.TypeAnnotation@ "],blF=[0,[17,0,[12,41,0]],t],blG=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Flow_ast.Type.Function.TypeGuard",[17,[0,a,1,0],0]]]],"(@[<2>Flow_ast.Type.Function.TypeGuard@ "],blH=[0,[17,0,[12,41,0]],t],blD=[0,[15,0],y],bly=au,blx=H,blz=F,blA=G,bli=H,blj=F,blk=G,blf=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],blg="Flow_ast.Type.Function.tparams",blh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bll=[0,[17,0,0],c],blm=[0,[12,59,[17,[0,a,1,0],0]],r],bln=kQ,blo=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],blp=[0,[17,0,0],c],blq=[0,[12,59,[17,[0,a,1,0],0]],r],blr=aD,bls=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],blt=[0,[17,0,0],c],blu=[0,[12,59,[17,[0,a,1,0],0]],r],blv=av,blw=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],blB=[0,[17,0,0],c],blC=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],ble=[0,[15,0],y],bk_=[0,[12,59,[17,[0,a,1,0],0]],r],bk9=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bk$=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bk8=H,bla=F,blb=G,bk1=H,bk2=F,bk3=G,bkV=[0,[12,59,[17,[0,a,1,0],0]],r],bkU=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bkW=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bkN=H,bkO=F,bkP=G,bkK=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bkL="Flow_ast.Type.Function.Params.this_",bkM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bkQ=[0,[17,0,0],c],bkR=[0,[12,59,[17,[0,a,1,0],0]],r],bkS=kQ,bkT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bkX=[0,[17,0,0],c],bkY=[0,[12,59,[17,[0,a,1,0],0]],r],bkZ=vm,bk0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bk4=[0,[17,0,0],c],bk5=[0,[12,59,[17,[0,a,1,0],0]],r],bk6=av,bk7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],blc=[0,[17,0,0],c],bld=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bkJ=[0,[15,0],y],bkG=[0,[12,40,[18,[1,[0,0,g]],0]],an],bkH=[0,[12,44,[17,[0,a,1,0],0]],I],bkI=[0,[17,0,[12,41,0]],t],bkF=[0,[15,0],y],bkA=au,bkz=H,bkB=F,bkC=G,bks=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bkt="Flow_ast.Type.Function.ThisParam.annot",bku=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bkv=[0,[17,0,0],c],bkw=[0,[12,59,[17,[0,a,1,0],0]],r],bkx=av,bky=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bkD=[0,[17,0,0],c],bkE=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bkr=[0,[15,0],y],bko=[0,[12,40,[18,[1,[0,0,g]],0]],an],bkp=[0,[12,44,[17,[0,a,1,0],0]],I],bkq=[0,[17,0,[12,41,0]],t],bkn=[0,[15,0],y],bki=au,bkh=H,bkj=F,bkk=G,bka=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bkb="Flow_ast.Type.Function.RestParam.argument",bkc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bkd=[0,[17,0,0],c],bke=[0,[12,59,[17,[0,a,1,0],0]],r],bkf=av,bkg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bkl=[0,[17,0,0],c],bkm=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bj$=[0,[15,0],y],bj8=[0,[12,40,[18,[1,[0,0,g]],0]],an],bj9=[0,[12,44,[17,[0,a,1,0],0]],I],bj_=[0,[17,0,[12,41,0]],t],bj7=[0,[15,0],y],bjT=H,bjU=F,bjV=G,bjQ=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bjR="Flow_ast.Type.Function.Param.name",bjS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bjW=[0,[17,0,0],c],bjX=[0,[12,59,[17,[0,a,1,0],0]],r],bjY=qq,bjZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bj0=[0,[17,0,0],c],bj1=[0,[12,59,[17,[0,a,1,0],0]],r],bj2=iu,bj3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bj4=[0,[9,0,0],fj],bj5=[0,[17,0,0],c],bj6=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bjP=[0,[15,0],y],bjM=[0,[12,40,[18,[1,[0,0,g]],0]],an],bjN=[0,[12,44,[17,[0,a,1,0],0]],I],bjO=[0,[17,0,[12,41,0]],t],bjL=[0,[15,0],y],bjG=au,bjF=H,bjH=F,bjI=G,bjy=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bjz="Flow_ast.Type.Infer.tparam",bjA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bjB=[0,[17,0,0],c],bjC=[0,[12,59,[17,[0,a,1,0],0]],r],bjD=av,bjE=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bjJ=[0,[17,0,0],c],bjK=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bjx=[0,[15,0],y],bjs=au,bjr=H,bjt=F,bju=G,bi_=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bi$="Flow_ast.Type.Conditional.check_type",bja=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bjb=[0,[17,0,0],c],bjc=[0,[12,59,[17,[0,a,1,0],0]],r],bjd=ag_,bje=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bjf=[0,[17,0,0],c],bjg=[0,[12,59,[17,[0,a,1,0],0]],r],bjh=aql,bji=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bjj=[0,[17,0,0],c],bjk=[0,[12,59,[17,[0,a,1,0],0]],r],bjl=agv,bjm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bjn=[0,[17,0,0],c],bjo=[0,[12,59,[17,[0,a,1,0],0]],r],bjp=av,bjq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bjv=[0,[17,0,0],c],bjw=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bi5="Flow_ast.Variable.Var",bi6="Flow_ast.Variable.Let",bi7="Flow_ast.Variable.Const",bi8=[0,[15,0],y],bi3=[0,[15,0],y],biY=au,biX=H,biZ=F,bi0=G,biQ=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],biR="Flow_ast.ComputedKey.expression",biS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],biT=[0,[17,0,0],c],biU=[0,[12,59,[17,[0,a,1,0],0]],r],biV=av,biW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bi1=[0,[17,0,0],c],bi2=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],biP=[0,[15,0],y],biM=[0,[12,40,[18,[1,[0,0,g]],0]],an],biN=[0,[12,44,[17,[0,a,1,0],0]],I],biO=[0,[17,0,[12,41,0]],t],biK=[0,[15,0],y],biF=au,biE=H,biG=F,biH=G,bix=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],biy="Flow_ast.Variance.kind",biz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],biA=[0,[17,0,0],c],biB=[0,[12,59,[17,[0,a,1,0],0]],r],biC=av,biD=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],biI=[0,[17,0,0],c],biJ=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],biw=[0,[15,0],y],biq="Flow_ast.Variance.Plus",bir="Flow_ast.Variance.Minus",bis="Flow_ast.Variance.Readonly",bit="Flow_ast.Variance.In",biu="Flow_ast.Variance.Out",biv="Flow_ast.Variance.InOut",bip=[0,[15,0],y],bim=[0,[12,40,[18,[1,[0,0,g]],0]],an],bin=[0,[12,44,[17,[0,a,1,0],0]],I],bio=[0,[17,0,[12,41,0]],t],bik=[0,[15,0],y],bif=au,bie=H,big=F,bih=G,bhP=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bhQ="Flow_ast.ModuleRefLiteral.value",bhR=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bhS=[0,[3,0,0],ag],bhT=[0,[17,0,0],c],bhU=[0,[12,59,[17,[0,a,1,0],0]],r],bhV="require_out",bhW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bhX=[0,[17,0,0],c],bhY=[0,[12,59,[17,[0,a,1,0],0]],r],bhZ="prefix_len",bh0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bh1=[0,[4,0,0,0,0],iP],bh2=[0,[17,0,0],c],bh3=[0,[12,59,[17,[0,a,1,0],0]],r],bh4=aTC,bh5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bh6=[0,[9,0,0],fj],bh7=[0,[17,0,0],c],bh8=[0,[12,59,[17,[0,a,1,0],0]],r],bh9=k_,bh_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bh$=[0,[3,0,0],ag],bia=[0,[17,0,0],c],bib=[0,[12,59,[17,[0,a,1,0],0]],r],bic=av,bid=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bii=[0,[17,0,0],c],bij=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bhN=[0,[15,0],y],bhI=au,bhH=H,bhJ=F,bhK=G,bhp=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bhq="Flow_ast.RegExpLiteral.pattern",bhr=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bhs=[0,[3,0,0],ag],bht=[0,[17,0,0],c],bhu=[0,[12,59,[17,[0,a,1,0],0]],r],bhv=akQ,bhw=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bhx=[0,[3,0,0],ag],bhy=[0,[17,0,0],c],bhz=[0,[12,59,[17,[0,a,1,0],0]],r],bhA=k_,bhB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bhC=[0,[3,0,0],ag],bhD=[0,[17,0,0],c],bhE=[0,[12,59,[17,[0,a,1,0],0]],r],bhF=av,bhG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bhL=[0,[17,0,0],c],bhM=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bhn=[0,[15,0],y],bhi=au,bhh=H,bhj=F,bhk=G,bg$=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bha="Flow_ast.BooleanLiteral.value",bhb=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bhc=[0,[9,0,0],fj],bhd=[0,[17,0,0],c],bhe=[0,[12,59,[17,[0,a,1,0],0]],r],bhf=av,bhg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bhl=[0,[17,0,0],c],bhm=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bg9=[0,[15,0],y],bg4=au,bg3=H,bg5=F,bg6=G,bgQ=H,bgR=[0,[7,0,0,0,[12,76,0]],C5],bgS=F,bgT=G,bgN=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bgO="Flow_ast.BigIntLiteral.value",bgP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bgU=[0,[17,0,0],c],bgV=[0,[12,59,[17,[0,a,1,0],0]],r],bgW=k_,bgX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bgY=[0,[3,0,0],ag],bgZ=[0,[17,0,0],c],bg0=[0,[12,59,[17,[0,a,1,0],0]],r],bg1=av,bg2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bg7=[0,[17,0,0],c],bg8=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bgL=[0,[15,0],y],bgG=au,bgF=H,bgH=F,bgI=G,bgs=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bgt="Flow_ast.NumberLiteral.value",bgu=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bgv=[0,[8,[0,0,5],0,0,0],zp],bgw=[0,[17,0,0],c],bgx=[0,[12,59,[17,[0,a,1,0],0]],r],bgy=k_,bgz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bgA=[0,[3,0,0],ag],bgB=[0,[17,0,0],c],bgC=[0,[12,59,[17,[0,a,1,0],0]],r],bgD=av,bgE=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bgJ=[0,[17,0,0],c],bgK=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bgq=[0,[15,0],y],bgl=au,bgk=H,bgm=F,bgn=G,bf9=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bf_="Flow_ast.StringLiteral.value",bf$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bga=[0,[3,0,0],ag],bgb=[0,[17,0,0],c],bgc=[0,[12,59,[17,[0,a,1,0],0]],r],bgd=k_,bge=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bgf=[0,[3,0,0],ag],bgg=[0,[17,0,0],c],bgh=[0,[12,59,[17,[0,a,1,0],0]],r],bgi=av,bgj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bgo=[0,[17,0,0],c],bgp=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bf7=[0,[15,0],y],bf2=au,bf1=H,bf3=F,bf4=G,bfT=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bfU="Flow_ast.PrivateName.name",bfV=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bfW=[0,[3,0,0],ag],bfX=[0,[17,0,0],c],bfY=[0,[12,59,[17,[0,a,1,0],0]],r],bfZ=av,bf0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bf5=[0,[17,0,0],c],bf6=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bfS=[0,[15,0],y],bfP=[0,[12,40,[18,[1,[0,0,g]],0]],an],bfQ=[0,[12,44,[17,[0,a,1,0],0]],I],bfR=[0,[17,0,[12,41,0]],t],bfN=[0,[15,0],y],bfI=au,bfH=H,bfJ=F,bfK=G,bfz=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bfA="Flow_ast.Identifier.name",bfB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bfC=[0,[3,0,0],ag],bfD=[0,[17,0,0],c],bfE=[0,[12,59,[17,[0,a,1,0],0]],r],bfF=av,bfG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bfL=[0,[17,0,0],c],bfM=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bfy=[0,[15,0],y],bfv=[0,[12,40,[18,[1,[0,0,g]],0]],an],bfw=[0,[12,44,[17,[0,a,1,0],0]],I],bfx=[0,[17,0,[12,41,0]],t],bft=[0,[15,0],y],bfl=[0,[12,59,[17,[0,a,1,0],0]],r],bfk=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bfm=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bfe=[0,[12,59,[17,[0,a,1,0],0]],r],bfd=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],bff=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],bfa=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],bfb="Flow_ast.Syntax.leading",bfc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bfg=[0,[17,0,0],c],bfh=[0,[12,59,[17,[0,a,1,0],0]],r],bfi="trailing",bfj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bfn=[0,[17,0,0],c],bfo=[0,[12,59,[17,[0,a,1,0],0]],r],bfp=aVM,bfq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],bfr=[0,[17,0,0],c],bfs=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],bev=[0,[0,0,0]],bew=[0,kx,17,2],bex=[0,[0,0,0,0,0]],bey=[0,kx,28,2],bez=[0,[0,0,0,0,0]],beA=[0,kx,39,2],beB=[0,[0,0,0]],beC=[0,kx,49,2],beD=[0,[0,0,0]],beE=[0,kx,59,2],beF=[0,[0,0,0]],beG=[0,kx,70,2],beH=[0,[0,0,0]],beI=[0,kx,79,2],beJ=[0,[0,0,0]],beK=[0,kx,90,2],beL=[0,[0,0,0]],beM=[0,kx,iU,2],beN=[0,[0,0,0,0,0,0,0]],beO=[0,kx,gN,2],beP=[0,[0,0,0,0,0]],beQ=[0,kx,ma,2],beR=[0,[0,0,0]],beS=[0,kx,mf,2],beT=[0,[0,[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,0,0,0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]]]],beU=[0,kx,676,2],beV=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],beW=[0,kx,1302,2],beX=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],beY=[0,kx,1744,2],beZ=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],be0=[0,kx,1889,2],be1=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],be2=[0,kx,1976,2],be3=[0,[0,0,0,0,0,0,0]],be4=[0,kx,1992,2],be5=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],be6=[0,kx,2117,2],be7=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],be8=[0,kx,2192,2],be9=[0,[0,0,0,0,0]],be_=[0,kx,2205,2],bfu=[0,[0,0,0]],bfO=[0,[0,0,0,0,0]],bf8=[0,[0,0,0,0,0]],bgr=[0,[0,0,0]],bgM=[0,[0,0,0]],bg_=[0,[0,0,0]],bho=[0,[0,0,0]],bhO=[0,[0,0,0]],bil=[0,[0,0,0]],biL=[0,[0,0,0,0,0,0,0]],bi4=[0,[0,0,0,0,0]],bi9=[0,[0,0,0]],bBh=[0,[0,[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0,0,0,0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]]]],bYl=[0,[0,[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0,0,0]],b$H=[0,[0,[0,[0,[0,[0,0,0,0,0]],0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0]],[0,[0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],[0,[0,0,0]],0,0,0,0]],cd0=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],[0,[0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],0,0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0,0,0,0,0]],cgC=[0,[0,[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0,0,0]],0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0]],0,0,0,0]],cg0=[0,[0,0,0,0,0,0,0]],clH=[0,[0,[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,[0,[0,0,0,0,0]],0,0,0,0]],[0,[0,0,0,0,0,0,0]],[0,[0,0,0,0,0]],0,0]],coe=[0,[0,[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0,0,0]],[0,[0,0,0]],0,0,0,0]],coS=[0,[0,0,0,0,0]],co7=[0,1],co6=[0,0],co5=[0,1],co4=[0,2],co3=[0,0],co2=[0,1],co1=[0,1],co0=[0,1],coZ=[0,1],coY=[0,1],coX=[0,1],coW=[0,0,0],coV=[0,0,0],coT=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],coU=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],cpK="Flow_ast_utils.ExpressionSort.Array",cpL="Flow_ast_utils.ExpressionSort.ArrowFunction",cpM="Flow_ast_utils.ExpressionSort.Assignment",cpN="Flow_ast_utils.ExpressionSort.Binary",cpO="Flow_ast_utils.ExpressionSort.Call",cpP="Flow_ast_utils.ExpressionSort.Class",cpQ="Flow_ast_utils.ExpressionSort.Conditional",cpR="Flow_ast_utils.ExpressionSort.Function",cpS="Flow_ast_utils.ExpressionSort.Identifier",cpT="Flow_ast_utils.ExpressionSort.Import",cpU="Flow_ast_utils.ExpressionSort.JSXElement",cpV="Flow_ast_utils.ExpressionSort.JSXFragment",cpW="Flow_ast_utils.ExpressionSort.Literal",cpX="Flow_ast_utils.ExpressionSort.Logical",cpY="Flow_ast_utils.ExpressionSort.Member",cpZ="Flow_ast_utils.ExpressionSort.MetaProperty",cp0="Flow_ast_utils.ExpressionSort.New",cp1="Flow_ast_utils.ExpressionSort.Object",cp2="Flow_ast_utils.ExpressionSort.OptionalCall",cp3="Flow_ast_utils.ExpressionSort.OptionalMember",cp4="Flow_ast_utils.ExpressionSort.Sequence",cp5="Flow_ast_utils.ExpressionSort.Super",cp6="Flow_ast_utils.ExpressionSort.TaggedTemplate",cp7="Flow_ast_utils.ExpressionSort.TemplateLiteral",cp8="Flow_ast_utils.ExpressionSort.This",cp9="Flow_ast_utils.ExpressionSort.TypeCast",cp_="Flow_ast_utils.ExpressionSort.Unary",cp$="Flow_ast_utils.ExpressionSort.Update",cqa="Flow_ast_utils.ExpressionSort.Yield",cqb=aS,cqc="arrow function",cqd="assignment expression",cqe="binary expression",cqf="call expression",cqg=sN,cqh="conditional expression",cqi=pj,cqj=aR,cqk="import expression",cql=aZl,cqm=aX7,cqn=ahy,cqo="logical expression",cqp="member expression",cqq="metaproperty expression",cqr="new expression",cqs=sS,cqt="optional call expression",cqu="optional member expression",cqv=a0,cqw="`super` reference",cqx="tagged template expression",cqy="template literal",cqz="`this` reference",cqA="type cast",cqB="unary expression",cqC="update expression",cqD="yield expression",cpo=aVs,cpp=aU0,cpq=atp,cpr=alW,cps=rJ,cpt=aZU,cpu=sL,cpv=aUm,cpw=aZ7,cpx=aTE,cpy=aW5,cpz=mB,cpA=kN,cpB=zA,cpC=agS,cpD=li,cpE=aWD,cpF=Ty,cpG=Rs,cpH=Iv,cpI=qV,cpJ=wS,co$=aYm,cpa=a0b,cpb=a33,cpc=a1c,cpd=a1r,cpe=aW7,cpf=aXG,cpg=aZZ,cph=aT6,cpi=a2l,cpj=aSv,cpk=a1d,cpl=aWi,cpm=aYA,cpn=a1P,co_=kN,cqE=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cqF="Loc.line",cqG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cqH=[0,[4,0,0,0,0],iP],cqI=[0,[17,0,0],c],cqJ=[0,[12,59,[17,[0,a,1,0],0]],r],cqK=zL,cqL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cqM=[0,[4,0,0,0,0],iP],cqN=[0,[17,0,0],c],cqO=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],crc="0:0",cq$=[0,[4,0,0,0,[12,58,[4,0,0,0,0]]],"%d:%d"],cra=[0,[4,0,0,0,[12,58,[4,0,0,0,[12,44,[4,0,0,0,[12,58,[4,0,0,0,0]]]]]]],"%d:%d,%d:%d"],crb=[0,[4,0,0,0,[12,58,[4,0,0,0,[12,45,[4,0,0,0,0]]]]],"%d:%d-%d"],cq9=aVy,cq7=[0,[3,0,[11,mj,0]],a2b],cq_=g,cq8=[0,[12,40,[4,0,0,0,[11,_,[4,0,0,0,[11,") to (",[4,0,0,0,[11,_,[4,0,0,0,[12,41,0]]]]]]]]],"(%d, %d) to (%d, %d)"],cq6=[0,[15,0],y],cqT=H,cqU=F,cqV=G,cqQ=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],cqR="Loc.source",cqS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cqW=[0,[17,0,0],c],cqX=[0,[12,59,[17,[0,a,1,0],0]],r],cqY=Dx,cqZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cq0=[0,[17,0,0],c],cq1=[0,[12,59,[17,[0,a,1,0],0]],r],cq2="_end",cq3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],cq4=[0,[17,0,0],c],cq5=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],crd=g,crf="Object literal may not have data and accessor property with the same name",crg="Object literal may not have multiple get/set accessors with the same name",crh="Unexpected token <. Remember, adjacent JSX elements must be wrapped in an enclosing parent tag",cri="Modules can only have 1 since they are either an ES module xor they are a CommonJS module.",crj="Found both `declare module.exports` and `declare export` in the same module. ",crk="`let [` is ambiguous in this position because it is either a `let` binding pattern, or a member expression.",crl="Async functions can only be declared at top level or immediately within another function.",crm="`await` is an invalid identifier in async functions",crn="`await` is not allowed in async function parameters.",cro="Computed properties must have a value.",crp="Constructor can't be an accessor.",crq="Constructor can't be an async function.",crr="Constructor can't be a generator.",crs="It is sufficient for your declare function to just have a Promise return type.",crt="async is an implementation detail and isn't necessary for your declare function statement. ",cru="`declare` modifier can only appear on class fields.",crv="Unexpected token `=`. Initializers are not allowed in a `declare`.",crw="`declare export interface` is not supported. Use `export interface` instead.",crx="`declare export type` is not supported. Use `export type` instead.",cry="Unexpected token `=`. Initializers are not allowed in a `declare opaque type`.",crz="Classes may only have one constructor",crA="Duplicate `declare module.exports` statement!",crB="Rest element must be final element of an array pattern",crC="Cannot export an enum with `export type`, try `export enum E {}` or `module.exports = E;` instead.",crD="Enum members are separated with `,`. Replace `;` with `,`.",crE="`const` enums are not supported. Flow Enums are designed to allow for inlining, however the inlining itself needs to be part of the build system (whatever you use) rather than Flow itself.",crF="Expected an object pattern, array pattern, or an identifier but found an expression instead",crG="Missing comma between export specifiers",crH="Generators can only be declared at top level or immediately within another function.",crI="Getter should have zero parameters",crJ="A getter cannot have a `this` parameter.",crK="Illegal break statement",crL="Illegal continue statement",crM="Illegal return statement",crN="Illegal Unicode escape",crO="Missing comma between import specifiers",crP="It cannot be used with `import type` or `import typeof` statements",crQ="The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. ",crR="Explicit inexact syntax cannot appear inside an explicit exact object type",crS="Explicit inexact syntax can only appear inside an object type",crT="Component params must be an identifier. If you'd like to destructure, you should use `name as {destructure}`",crU="Components use `renders` instead of `:` to annotate the render type of a component.",crV="A bigint literal must be an integer",crW="JSX value should be either an expression or a quoted JSX text",crX="Invalid left-hand side in assignment",crY="Invalid left-hand side in exponentiation expression",crZ="Invalid left-hand side in for-in",cr0="Invalid left-hand side in for-of",cr1="Imports within a `declare module` body must always be `import type` or `import typeof`!",cr2="Invalid optional indexed access. Indexed access uses bracket notation. Use the format `T?.[K]`.",cr3="Invalid regular expression",cr4="A bigint literal cannot use exponential notation",cr5="Tuple spread elements cannot be optional.",cr6="Tuple variance annotations can only be used with labeled tuple elements, e.g. `[+foo: number]`",cr7="`typeof` can only be used to get the type of variables.",cr8="JSX attributes must only be assigned a non-empty expression",cr9="Literals cannot be used as shorthand properties.",cr_="Malformed unicode",cr$="Object pattern can't contain methods",csa="Expected at least one type parameter.",csb="Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",csc="More than one default clause in switch statement",csd="Illegal newline after throw",cse="Illegal newline before arrow",csf="Missing catch or finally after try",csg="Const must be initialized",csh="Destructuring assignment must be initialized",csi="An optional chain may not be used in a `new` expression.",csj="Template literals may not be used in an optional chain.",csk="Rest parameter must be final parameter of an argument list",csl="Private fields may not be deleted.",csm="Private fields can only be referenced from within a class.",csn="Rest property must be final property of an object pattern",cso="Setter should have exactly one parameter",csp="A setter cannot have a `this` parameter.",csq="Catch variable may not be eval or arguments in strict mode",csr="Delete of an unqualified identifier in strict mode.",css="Duplicate data property in object literal not allowed in strict mode",cst="Function name may not be eval or arguments in strict mode",csu="Assignment to eval or arguments is not allowed in strict mode",csv="Postfix increment/decrement may not have eval or arguments operand in strict mode",csw="Prefix increment/decrement may not have eval or arguments operand in strict mode",csx="Strict mode code may not include a with statement",csy="Number literals with leading zeros are not allowed in strict mode.",csz="Octal literals are not allowed in strict mode.",csA="Strict mode function may not have duplicate parameter names",csB="Parameter name eval or arguments is not allowed in strict mode",csC='Illegal "use strict" directive in function with non-simple parameter list',csD="Use of reserved word in strict mode",csE="Variable name may not be eval or arguments in strict mode",csF="You may not access a private field through the `super` keyword.",csG="Flow does not support abstract classes.",csH="Flow does not support template literal types.",csI="A type annotation is required for the `this` parameter.",csJ="Arrow functions cannot have a `this` parameter; arrow functions automatically bind `this` when declared.",csK="Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",csL="The `this` parameter cannot be optional.",csM="The `this` parameter must be the first function parameter.",csN="A trailing comma is not permitted after the rest element",csO="Unexpected end of input",csP="Explicit inexact syntax must come at the end of an object type",csQ="Opaque type aliases are not allowed in untyped mode",csR="Unexpected proto modifier",csS="Unexpected reserved word",csT="Unexpected reserved type",csU="Spreading a type is only allowed inside an object type",csV="Unexpected static modifier",csW="Unexpected `super` outside of a class method",csX="`super()` is only valid in a class constructor",csY="Type aliases are not allowed in untyped mode",csZ="Type annotations are not allowed in untyped mode",cs0="Type declarations are not allowed in untyped mode",cs1="Type exports are not allowed in untyped mode",cs2="Type imports are not allowed in untyped mode",cs3="Interfaces are not allowed in untyped mode",cs4="Unexpected variance sigil",cs5="Found a decorator in an unsupported position.",cs6="Invalid regular expression: missing /",cs7="Unexpected whitespace between `#` and identifier",cs8="`yield` is an invalid identifier in generators",cs9="Yield expression not allowed in formal parameter",cs_=[0,[11,"Duplicate export for `",[2,0,[12,96,0]]],"Duplicate export for `%s`"],cs$=[0,[11,"Private fields may only be declared once. `#",[2,0,[11,"` is declared more than once.",0]]],"Private fields may only be declared once. `#%s` is declared more than once."],cta=[0,[11,"bigint enum members need to be initialized, e.g. `",[2,0,[11," = 1n,` in enum `",[2,0,[11,vq,0]]]]],"bigint enum members need to be initialized, e.g. `%s = 1n,` in enum `%s`."],ctb=[0,[11,"Boolean enum members need to be initialized. Use either `",[2,0,[11," = true,` or `",[2,0,[11," = false,` in enum `",[2,0,[11,vq,0]]]]]]],"Boolean enum members need to be initialized. Use either `%s = true,` or `%s = false,` in enum `%s`."],ctc=[0,[11,"Enum member names need to be unique, but the name `",[2,0,[11,"` has already been used before in enum `",[2,0,[11,vq,0]]]]],"Enum member names need to be unique, but the name `%s` has already been used before in enum `%s`."],ctd=[0,[11,aVh,[2,0,[11,"` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.",0]]],"Enum `%s` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."],cte="The `...` must come at the end of the enum body. Remove the trailing comma.",ctf="The `...` must come after all enum members. Move it to the end of the enum body.",ctg=[0,[11,"Use one of `boolean`, `number`, `string`, `symbol`, or `bigint` in enum `",[2,0,[11,vq,0]]],"Use one of `boolean`, `number`, `string`, `symbol`, or `bigint` in enum `%s`."],cth=[0,[11,"Enum type `",[2,0,[11,"` is not valid. ",[2,0,0]]]],"Enum type `%s` is not valid. %s"],cti=[0,[11,"Supplied enum type is not valid. ",[2,0,0]],"Supplied enum type is not valid. %s"],ctj=[0,[11,"Enum member names and initializers are separated with `=`. Replace `",[2,0,[11,":` with `",[2,0,[11," =`.",0]]]]],"Enum member names and initializers are separated with `=`. Replace `%s:` with `%s =`."],ctl=[0,[11,aVh,[2,0,[11,"` has type `",[2,0,[11,"`, so the initializer of `",[2,0,[11,"` needs to be a ",[2,0,[11," literal.",0]]]]]]]]],"Enum `%s` has type `%s`, so the initializer of `%s` needs to be a %s literal."],ctk=[0,[11,"Symbol enum members cannot be initialized. Use `",[2,0,[11,",` in enum `",[2,0,[11,vq,0]]]]],"Symbol enum members cannot be initialized. Use `%s,` in enum `%s`."],ctm=[0,[11,"The enum member initializer for `",[2,0,[11,"` needs to be a literal (either a boolean, number, or string) in enum `",[2,0,[11,vq,0]]]]],"The enum member initializer for `%s` needs to be a literal (either a boolean, number, or string) in enum `%s`."],ctn=[0,[11,"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `",[2,0,[11,"`, consider using `",[2,0,[11,"`, in enum `",[2,0,[11,vq,0]]]]]]],"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%s`, consider using `%s`, in enum `%s`."],cto=[0,[11,"Number enum members need to be initialized, e.g. `",[2,0,[11," = 1,` in enum `",[2,0,[11,vq,0]]]]],"Number enum members need to be initialized, e.g. `%s = 1,` in enum `%s`."],ctp=[0,[11,"String enum members need to consistently either all use initializers, or use no initializers, in enum ",[2,0,[12,46,0]]],"String enum members need to consistently either all use initializers, or use no initializers, in enum %s."],ctq=[0,[11,"Expected corresponding JSX closing tag for ",[2,0,0]],"Expected corresponding JSX closing tag for %s"],ctr="immediately within another function.",cts="In strict mode code, functions can only be declared at top level or ",ctt="inside a block, or as the body of an if statement.",ctu="In non-strict mode code, functions can only be declared at top level, ",ctv="static ",ctA=g,ctw="methods",ctz="fields",ctx=arP,cty=[0,[11,"Classes may not have ",[2,0,[2,0,[11," named `",[2,0,[11,vq,0]]]]]],"Classes may not have %s%s named `%s`."],ctB=jv,ctD=g,ctC=[0,[11,"String params require local bindings using `as` renaming. You can use `'",[2,0,[11,"' as ",[2,0,[2,0,[11,": ` ",0]]]]]],"String params require local bindings using `as` renaming. You can use `'%s' as %s%s: ` "],ctE="Remove the period.",ctG="Indexed access uses bracket notation.",ctF=[0,[11,"Invalid indexed access. ",[2,0,[11," Use the format `T[K]`.",0]]],"Invalid indexed access. %s Use the format `T[K]`."],ctH=[0,[11,"Invalid flags supplied to RegExp constructor '",[2,0,[12,39,0]]],"Invalid flags supplied to RegExp constructor '%s'"],ctI=[0,[11,"JSX element ",[2,0,[11," has no corresponding closing tag.",0]]],"JSX element %s has no corresponding closing tag."],ctJ=[0,[11,aZR,[2,0,[11,"`. Parentheses are required to combine `??` with `&&` or `||` expressions.",0]]],"Unexpected token `%s`. Parentheses are required to combine `??` with `&&` or `||` expressions."],ctK=[0,[2,0,[11," '",[2,0,[11,"' has already been declared",0]]]],"%s '%s' has already been declared"],ctO=g,ctP=Ja,ctQ=" You can try using JavaScript private fields by prepending `#` to the field name.",ctR=HM,ctL=" Fields and methods are public by default. You can simply omit the `public` keyword.",ctM=Iu,ctN=[0,[11,"Flow does not support using `",[2,0,[11,"` in classes.",[2,0,0]]]],"Flow does not support using `%s` in classes.%s"],ctS=[0,[11,"Private fields must be declared before they can be referenced. `#",[2,0,[11,"` has not been declared.",0]]],"Private fields must be declared before they can be referenced. `#%s` has not been declared."],ctT=[0,[11,H3,[2,0,0]],"Unexpected %s"],ctU=[0,[11,aZR,[2,0,[11,"`. Did you mean `",[2,0,[11,"`?",0]]]]],"Unexpected token `%s`. Did you mean `%s`?"],ctV=[0,[11,H3,[2,0,[11,", expected ",[2,0,0]]]],"Unexpected %s, expected %s"],ctW=[0,[11,"Undefined label '",[2,0,[12,39,0]]],"Undefined label '%s'"],cre="Parse_error.Error",ctX=[0,[0,36,37],[0,48,58],[0,65,91],[0,95,96],[0,97,hB],[0,oA,rI],[0,qX,t2],[0,oE,l_],[0,q5,oi],[0,lN,rR],[0,C3,zk],[0,fy,706],[0,aX8,722],[0,736,741],[0,748,749],[0,750,751],[0,768,885],[0,886,888],[0,890,894],[0,895,896],[0,902,907],[0,908,909],[0,910,930],[0,aSA,1014],[0,1015,1154],[0,1155,1160],[0,1162,1328],[0,1329,1367],[0,1369,1370],[0,1376,1417],[0,1425,1470],[0,1471,1472],[0,1473,1475],[0,1476,1478],[0,1479,1480],[0,1488,1515],[0,1519,1523],[0,1552,1563],[0,1568,1642],[0,1646,1748],[0,1749,1757],[0,1759,1769],[0,1770,1789],[0,1791,1792],[0,1808,1867],[0,1869,1970],[0,1984,2038],[0,2042,2043],[0,2045,2046],[0,ala,2094],[0,2112,2140],[0,2144,2155],[0,2208,2229],[0,2230,2238],[0,2259,2274],[0,2275,2404],[0,2406,2416],[0,2417,2436],[0,2437,2445],[0,2447,2449],[0,2451,2473],[0,2474,2481],[0,2482,2483],[0,2486,2490],[0,2492,2501],[0,2503,2505],[0,2507,2511],[0,2519,2520],[0,2524,2526],[0,2527,2532],[0,2534,2546],[0,2556,2557],[0,2558,2559],[0,2561,2564],[0,2565,2571],[0,2575,2577],[0,2579,2601],[0,2602,2609],[0,2610,2612],[0,2613,2615],[0,2616,2618],[0,2620,2621],[0,2622,2627],[0,2631,2633],[0,2635,2638],[0,2641,2642],[0,2649,2653],[0,2654,2655],[0,2662,2678],[0,2689,2692],[0,2693,2702],[0,2703,2706],[0,2707,2729],[0,2730,2737],[0,2738,2740],[0,2741,2746],[0,2748,2758],[0,2759,2762],[0,2763,2766],[0,2768,2769],[0,2784,2788],[0,2790,2800],[0,2809,2816],[0,2817,2820],[0,2821,2829],[0,2831,2833],[0,2835,2857],[0,2858,2865],[0,2866,2868],[0,2869,2874],[0,2876,2885],[0,2887,2889],[0,2891,2894],[0,2902,2904],[0,2908,2910],[0,2911,2916],[0,2918,2928],[0,2929,2930],[0,2946,2948],[0,2949,2955],[0,2958,2961],[0,2962,2966],[0,2969,2971],[0,2972,2973],[0,2974,2976],[0,2979,2981],[0,2984,2987],[0,2990,3002],[0,3006,3011],[0,3014,3017],[0,3018,3022],[0,3024,3025],[0,3031,3032],[0,3046,3056],[0,aZ_,3085],[0,3086,3089],[0,3090,3113],[0,3114,3130],[0,3133,3141],[0,3142,3145],[0,3146,3150],[0,3157,3159],[0,3160,3163],[0,3168,3172],[0,3174,3184],[0,3200,3204],[0,3205,3213],[0,3214,3217],[0,3218,3241],[0,3242,3252],[0,3253,3258],[0,3260,3269],[0,3270,3273],[0,3274,3278],[0,3285,3287],[0,3294,3295],[0,3296,3300],[0,3302,3312],[0,3313,3315],[0,3328,3332],[0,3333,3341],[0,3342,3345],[0,3346,3397],[0,3398,3401],[0,3402,3407],[0,3412,3416],[0,3423,3428],[0,3430,3440],[0,3450,3456],[0,3458,3460],[0,3461,3479],[0,3482,3506],[0,3507,3516],[0,3517,3518],[0,3520,3527],[0,3530,3531],[0,3535,3541],[0,3542,3543],[0,3544,3552],[0,3558,3568],[0,3570,3572],[0,3585,3643],[0,3648,3663],[0,3664,3674],[0,3713,3715],[0,3716,3717],[0,3718,3723],[0,3724,3748],[0,3749,3750],[0,3751,3774],[0,3776,3781],[0,3782,3783],[0,3784,3790],[0,3792,3802],[0,3804,3808],[0,3840,3841],[0,3864,3866],[0,3872,3882],[0,3893,3894],[0,3895,3896],[0,3897,3898],[0,3902,3912],[0,3913,3949],[0,3953,3973],[0,3974,3992],[0,3993,4029],[0,4038,4039],[0,aqU,4170],[0,4176,4254],[0,4256,4294],[0,4295,4296],[0,4301,4302],[0,4304,4347],[0,4348,4681],[0,4682,4686],[0,4688,4695],[0,4696,4697],[0,4698,4702],[0,4704,4745],[0,4746,4750],[0,4752,4785],[0,4786,4790],[0,4792,4799],[0,4800,4801],[0,4802,4806],[0,4808,4823],[0,4824,4881],[0,4882,4886],[0,4888,4955],[0,4957,4960],[0,4969,4978],[0,4992,5008],[0,5024,5110],[0,5112,5118],[0,5121,5741],[0,5743,aq6],[0,5761,5787],[0,5792,5867],[0,5870,5881],[0,5888,5901],[0,5902,5909],[0,5920,5941],[0,5952,5972],[0,5984,5997],[0,5998,6001],[0,6002,6004],[0,6016,6100],[0,6103,6104],[0,6108,6110],[0,6112,6122],[0,6155,6158],[0,6160,6170],[0,6176,6265],[0,6272,6315],[0,6320,6390],[0,6400,6431],[0,6432,6444],[0,6448,6460],[0,6470,6510],[0,6512,6517],[0,6528,6572],[0,6576,6602],[0,6608,6619],[0,6656,6684],[0,6688,6751],[0,6752,6781],[0,6783,6794],[0,6800,6810],[0,6823,6824],[0,6832,6846],[0,6912,6988],[0,6992,7002],[0,7019,7028],[0,7040,7156],[0,7168,7224],[0,7232,7242],[0,7245,7294],[0,7296,7305],[0,7312,7355],[0,7357,7360],[0,7376,7379],[0,7380,7419],[0,7424,7674],[0,7675,7958],[0,7960,7966],[0,7968,8006],[0,8008,8014],[0,8016,8024],[0,8025,8026],[0,8027,8028],[0,8029,8030],[0,8031,8062],[0,8064,8117],[0,8118,8125],[0,8126,8127],[0,8130,8133],[0,8134,8141],[0,8144,8148],[0,8150,8156],[0,8160,8173],[0,8178,8181],[0,8182,8189],[0,aSX,aWh],[0,8255,8257],[0,8276,8277],[0,TR,8306],[0,SK,8320],[0,8336,8349],[0,8400,8413],[0,8417,8418],[0,8421,8433],[0,RG,8451],[0,Uk,8456],[0,8458,TS],[0,QW,8470],[0,aSz,8478],[0,T$,Q6],[0,QS,QQ],[0,UM,QZ],[0,8490,8506],[0,8508,8512],[0,8517,8522],[0,Rw,8527],[0,8544,8585],[0,11264,11311],[0,11312,11359],[0,11360,11493],[0,11499,11508],[0,11520,R6],[0,Uy,11560],[0,S4,11566],[0,11568,11624],[0,Ul,11632],[0,SW,11671],[0,11680,Q4],[0,11688,QO],[0,11696,UT],[0,11704,Si],[0,11712,SM],[0,11720,SP],[0,11728,Ss],[0,11736,11743],[0,11744,11776],[0,12293,12296],[0,12321,T5],[0,12337,12342],[0,12344,12349],[0,12353,12439],[0,12441,Ui],[0,12449,Ub],[0,12540,12544],[0,12549,Um],[0,12593,12687],[0,12704,12731],[0,12784,12800],[0,13312,19894],[0,19968,40944],[0,40960,42125],[0,42192,42238],[0,42240,42509],[0,42512,42540],[0,42560,42608],[0,42612,Uh],[0,42623,42738],[0,42775,42784],[0,42786,42889],[0,42891,42944],[0,42946,42951],[0,SX,43048],[0,43072,43124],[0,43136,43206],[0,43216,43226],[0,43232,43256],[0,SQ,S$],[0,43261,43310],[0,43312,43348],[0,43360,43389],[0,43392,43457],[0,RA,43482],[0,43488,QA],[0,43520,43575],[0,43584,43598],[0,43600,43610],[0,43616,43639],[0,TU,43715],[0,43739,43742],[0,43744,43760],[0,43762,43767],[0,43777,43783],[0,43785,43791],[0,43793,43799],[0,43808,Sg],[0,43816,Sp],[0,43824,QK],[0,43868,Tl],[0,43888,44011],[0,44012,44014],[0,44016,44026],[0,44032,55204],[0,55216,55239],[0,55243,55292],[0,63744,64110],[0,64112,64218],[0,64256,64263],[0,64275,64280],[0,T1,Ro],[0,64298,S7],[0,64312,Ud],[0,Ti,Sw],[0,64320,St],[0,64323,TL],[0,64326,64434],[0,64467,64830],[0,64848,64912],[0,64914,64968],[0,65008,65020],[0,65024,65040],[0,65056,65072],[0,65075,65077],[0,65101,65104],[0,65136,UP],[0,65142,65277],[0,65296,65306],[0,65313,65339],[0,65343,RL],[0,65345,65371],[0,65382,65471],[0,65474,65480],[0,65482,65488],[0,65490,65496],[0,65498,65501],[0,Dt,Sl],[0,65549,Rt],[0,65576,Sv],[0,65596,Rh],[0,65599,65614],[0,65616,65630],[0,65664,65787],[0,65856,65909],[0,66045,66046],[0,66176,66205],[0,66208,66257],[0,66272,66273],[0,66304,66336],[0,66349,66379],[0,66384,66427],[0,66432,66462],[0,66464,66500],[0,66504,ST],[0,66513,66518],[0,66560,66718],[0,66720,66730],[0,66736,66772],[0,66776,66812],[0,66816,66856],[0,66864,66916],[0,67072,67383],[0,67392,67414],[0,67424,67432],[0,67584,67590],[0,Tz,QH],[0,67594,QE],[0,67639,67641],[0,Sb,67645],[0,67647,67670],[0,67680,67703],[0,67712,67743],[0,67808,SH],[0,67828,67830],[0,67840,67862],[0,67872,67898],[0,67968,68024],[0,68030,68032],[0,Qv,68100],[0,68101,68103],[0,68108,Tr],[0,68117,Qx],[0,68121,68150],[0,68152,68155],[0,68159,68160],[0,68192,68221],[0,68224,68253],[0,68288,Tx],[0,68297,68327],[0,68352,68406],[0,68416,68438],[0,68448,68467],[0,68480,68498],[0,68608,68681],[0,68736,68787],[0,68800,68851],[0,68864,68904],[0,68912,68922],[0,69376,69405],[0,RU,69416],[0,69424,69457],[0,69600,69623],[0,69632,69703],[0,69734,R3],[0,69759,69819],[0,69840,69865],[0,69872,69882],[0,69888,69941],[0,69942,69952],[0,TQ,QP],[0,69968,70004],[0,S3,70007],[0,70016,70085],[0,70089,70093],[0,70096,Tw],[0,SF,70109],[0,70144,Sa],[0,70163,70200],[0,70206,70207],[0,70272,UC],[0,TM,Tq],[0,70282,SV],[0,70287,Ts],[0,70303,70313],[0,70320,70379],[0,70384,70394],[0,70400,RR],[0,70405,70413],[0,70415,70417],[0,70419,UA],[0,70442,T3],[0,70450,Qy],[0,70453,70458],[0,70459,70469],[0,70471,70473],[0,70475,70478],[0,Qw,70481],[0,70487,70488],[0,70493,70500],[0,70502,70509],[0,70512,70517],[0,70656,70731],[0,70736,70746],[0,TA,70752],[0,70784,TH],[0,Rg,70856],[0,70864,70874],[0,71040,71094],[0,71096,71105],[0,71128,71134],[0,71168,71233],[0,Tn,71237],[0,71248,71258],[0,71296,71353],[0,71360,71370],[0,71424,71451],[0,71453,71468],[0,71472,71482],[0,71680,71739],[0,71840,71914],[0,71935,71936],[0,72096,72104],[0,72106,72152],[0,72154,TT],[0,SD,72165],[0,SJ,72255],[0,72263,72264],[0,Sf,72346],[0,So,72350],[0,72384,72441],[0,72704,Uu],[0,72714,72759],[0,72760,72769],[0,72784,72794],[0,72818,72848],[0,72850,72872],[0,72873,72887],[0,72960,SA],[0,72968,RN],[0,72971,73015],[0,73018,73019],[0,73020,73022],[0,73023,73032],[0,73040,73050],[0,73056,S8],[0,73063,SZ],[0,73066,73103],[0,73104,73106],[0,73107,73113],[0,73120,73130],[0,73440,73463],[0,73728,74650],[0,74752,74863],[0,74880,75076],[0,77824,78895],[0,82944,83527],[0,92160,92729],[0,92736,92767],[0,92768,92778],[0,92880,92910],[0,92912,92917],[0,92928,92983],[0,92992,92996],[0,93008,93018],[0,93027,93048],[0,93053,93072],[0,93760,93824],[0,93952,94027],[0,Rq,94088],[0,94095,94112],[0,94176,T0],[0,RZ,94180],[0,94208,100344],[0,100352,101107],[0,110592,110879],[0,110928,110931],[0,110948,110952],[0,110960,111356],[0,113664,113771],[0,113776,113789],[0,113792,113801],[0,113808,113818],[0,113821,113823],[0,119141,119146],[0,119149,119155],[0,119163,119171],[0,119173,119180],[0,119210,119214],[0,119362,119365],[0,119808,UX],[0,119894,SY],[0,119966,119968],[0,T8,119971],[0,119973,119975],[0,119977,QX],[0,119982,Q2],[0,Uj,Un],[0,119997,Tf],[0,120005,R0],[0,120071,120075],[0,120077,UI],[0,120086,Us],[0,120094,QU],[0,120123,UK],[0,120128,S_],[0,UN,120135],[0,120138,RX],[0,120146,120486],[0,120488,Q_],[0,120514,TW],[0,120540,TN],[0,120572,RE],[0,120598,Tu],[0,120630,Ra],[0,120656,SO],[0,120688,S5],[0,120714,Tg],[0,120746,SI],[0,120772,120780],[0,120782,120832],[0,121344,121399],[0,121403,121453],[0,121461,121462],[0,121476,121477],[0,121499,121504],[0,121505,121520],[0,122880,122887],[0,122888,122905],[0,122907,122914],[0,122915,122917],[0,122918,122923],[0,123136,123181],[0,123184,123198],[0,123200,123210],[0,R2,123215],[0,123584,123642],[0,124928,125125],[0,125136,125143],[0,125184,125260],[0,125264,125274],[0,126464,Rd],[0,126469,Ua],[0,126497,SN],[0,UL,126501],[0,Sy,Up],[0,126505,US],[0,126516,S0],[0,T6,TO],[0,Rn,126524],[0,Rc,126531],[0,TD,R1],[0,RP,Ur],[0,R$,TE],[0,126541,UB],[0,126545,RB],[0,Q9,126549],[0,QG,Qz],[0,Q5,Rv],[0,Tm,R8],[0,T4,Uc],[0,S2,R_],[0,126561,Rx],[0,R5,126565],[0,126567,QB],[0,126572,RD],[0,126580,Ru],[0,126585,Rz],[0,RC,SE],[0,126592,Uv],[0,126603,126620],[0,126625,Uz],[0,126629,Tj],[0,126635,126652],[0,131072,173783],[0,173824,177973],[0,177984,178206],[0,178208,183970],[0,183984,191457],[0,194560,195102],[0,917760,918000]],ctZ=[0,1,0],ctY=[0,0,[0,1,0],[0,1,0]],cyz=aUv,cyA="end of input",cyH=HY,cyI="template literal part",cyL=HY,cyM=aqV,cyx=aUv,cyB=HY,cyC=oW,cyD=HY,cyE=pS,cyF=HY,cyG=qj,cyJ="an",cyK=aR,cyy=gj,cyw=[0,[11,"token `",[2,0,[12,96,0]]],"token `%s`"],cwg=Q$,cwh=y$,cwi=TC,cwj=Rj,cwk=sB,cwl=F,cwm=wO,cwn=q2,cwo=IH,cwp=kl,cwq=fr,cwr=a21,cws=nb,cwt=a0Z,cwu=arP,cwv=pj,cww=H7,cwx=qV,cwy=wS,cwz=aD,cwA=aK,cwB=f0,cwC=aM,cwD=Hm,cwE=zi,cwF=IJ,cwG=CR,cwH=Dh,cwI=z_,cwJ=nK,cwK=qg,cwL=q_,cwM=aN,cwN=DG,cwO=z5,cwP=aO,cwQ=gF,cwR=QC,cwS=DH,cwT=I9,cwU=sN,cwV=jZ,cwW=ko,cwX=RY,cwY=vo,cwZ=DE,cw0=pM,cw1=q1,cw2=sQ,cw3=HU,cw4=aB,cw5=jc,cw6=sy,cw7=aE,cw8=UJ,cw9=HM,cw_=Ja,cw$=Iu,cxa=aH,cxb=aP,cxc=CM,cxd=lD,cxe=To,cxf=Q3,cxg=q3,cxh=tF,cxi="%checks",cxj=aT6,cxk=aZZ,cxl=aXG,cxm=aSv,cxn=a2l,cxo=a1d,cxp=aW7,cxq=a1r,cxr=a33,cxs=a1c,cxt=a0b,cxu=aYm,cxv=aWi,cxw=aYA,cxx=a1P,cxy=Ad,cxz=IV,cxA=Ie,cxB=jv,cxC=i2,cxD=UF,cxE=Ix,cxF=Ty,cxG=Rs,cxH=Iv,cxI=aVs,cxJ=aU0,cxK=atp,cxL=alW,cxM=aZU,cxN=aUm,cxO=rJ,cxP=sL,cxQ=aZ7,cxR=aTE,cxS=aW5,cxT=mB,cxU=kN,cxV=li,cxW=zA,cxX=agS,cxY=aWD,cxZ=HJ,cx0=aqz,cx1=ahi,cx2=apx,cx3=g,cx4=sV,cx5=vg,cx6=aI,cx7=oW,cx8=pS,cx9=qj,cx_=q1,cx$=rU,cya=I5,cyb=HF,cyc=kq,cyd=C7,cye=tQ,cyf=CL,cyg=CH,cyh=Dk,cyi=DA,cyj=zS,cyk=vs,cyl=vs,cym=a25,cyn=vs,cyo=vs,cyp=y$,cyq=y$,cyr=a25,cys=li,cyt=li,cyu=qR,cyv=IT,ct0="T_LCURLY",ct1="T_RCURLY",ct2="T_LCURLYBAR",ct3="T_RCURLYBAR",ct4="T_LPAREN",ct5="T_RPAREN",ct6="T_LBRACKET",ct7="T_RBRACKET",ct8="T_SEMICOLON",ct9="T_COMMA",ct_="T_PERIOD",ct$="T_ARROW",cua="T_ELLIPSIS",cub="T_AT",cuc="T_POUND",cud="T_FUNCTION",cue="T_IF",cuf="T_IN",cug="T_INSTANCEOF",cuh="T_RETURN",cui="T_SWITCH",cuj="T_THIS",cuk="T_THROW",cul="T_TRY",cum="T_VAR",cun="T_WHILE",cuo="T_WITH",cup="T_CONST",cuq="T_LET",cur="T_NULL",cus="T_FALSE",cut="T_TRUE",cuu="T_BREAK",cuv="T_CASE",cuw="T_CATCH",cux="T_CONTINUE",cuy="T_DEFAULT",cuz="T_DO",cuA="T_FINALLY",cuB="T_FOR",cuC="T_CLASS",cuD="T_EXTENDS",cuE="T_STATIC",cuF="T_ELSE",cuG="T_NEW",cuH="T_DELETE",cuI="T_TYPEOF",cuJ="T_VOID",cuK="T_ENUM",cuL="T_EXPORT",cuM="T_IMPORT",cuN="T_SUPER",cuO="T_IMPLEMENTS",cuP="T_INTERFACE",cuQ="T_PACKAGE",cuR="T_PRIVATE",cuS="T_PROTECTED",cuT="T_PUBLIC",cuU="T_YIELD",cuV="T_DEBUGGER",cuW="T_DECLARE",cuX="T_TYPE",cuY="T_OPAQUE",cuZ="T_OF",cu0="T_ASYNC",cu1="T_AWAIT",cu2="T_CHECKS",cu3="T_RSHIFT3_ASSIGN",cu4="T_RSHIFT_ASSIGN",cu5="T_LSHIFT_ASSIGN",cu6="T_BIT_XOR_ASSIGN",cu7="T_BIT_OR_ASSIGN",cu8="T_BIT_AND_ASSIGN",cu9="T_MOD_ASSIGN",cu_="T_DIV_ASSIGN",cu$="T_MULT_ASSIGN",cva="T_EXP_ASSIGN",cvb="T_MINUS_ASSIGN",cvc="T_PLUS_ASSIGN",cvd="T_NULLISH_ASSIGN",cve="T_AND_ASSIGN",cvf="T_OR_ASSIGN",cvg="T_ASSIGN",cvh="T_PLING_PERIOD",cvi="T_PLING_PLING",cvj="T_PLING",cvk="T_COLON",cvl="T_OR",cvm="T_AND",cvn="T_BIT_OR",cvo="T_BIT_XOR",cvp="T_BIT_AND",cvq="T_EQUAL",cvr="T_NOT_EQUAL",cvs="T_STRICT_EQUAL",cvt="T_STRICT_NOT_EQUAL",cvu="T_LESS_THAN_EQUAL",cvv="T_GREATER_THAN_EQUAL",cvw="T_LESS_THAN",cvx="T_GREATER_THAN",cvy="T_LSHIFT",cvz="T_RSHIFT",cvA="T_RSHIFT3",cvB="T_PLUS",cvC="T_MINUS",cvD="T_DIV",cvE="T_MULT",cvF="T_EXP",cvG="T_MOD",cvH="T_NOT",cvI="T_BIT_NOT",cvJ="T_INCR",cvK="T_DECR",cvL="T_EOF",cvM="T_ANY_TYPE",cvN="T_MIXED_TYPE",cvO="T_EMPTY_TYPE",cvP="T_NUMBER_TYPE",cvQ="T_BIGINT_TYPE",cvR="T_STRING_TYPE",cvS="T_VOID_TYPE",cvT="T_SYMBOL_TYPE",cvU="T_UNKNOWN_TYPE",cvV="T_NEVER_TYPE",cvW="T_UNDEFINED_TYPE",cvX="T_KEYOF",cvY="T_READONLY",cvZ="T_INFER",cv0="T_IS",cv1="T_ASSERTS",cv2=aUY,cv3=aUY,cv4="T_NUMBER",cv5="T_BIGINT",cv6="T_STRING",cv7="T_TEMPLATE_PART",cv8="T_IDENTIFIER",cv9="T_REGEXP",cv_="T_INTERPRETER",cv$="T_ERROR",cwa="T_JSX_IDENTIFIER",cwb=aXc,cwc=aXc,cwd="T_BOOLEAN_TYPE",cwe="T_NUMBER_SINGLETON_TYPE",cwf="T_BIGINT_SINGLETON_TYPE",cyQ=[0,aZp,q4,9],cyR=[0,aZp,w4,9],cy0=aZz,cy1="*/",cy2=aZz,cy3="unreachable line_comment",czg="unreachable string_quote",czh=IR,czi="unreachable template_part",czj="\r\n",czk=tI,czD="unreachable regexp_class",czE=aoL,czG="unreachable regexp_body",czH=g,czI=g,czJ=g,czK=g,cDK=aVS,cDL="{'>'}",cDM=sL,cDN="{'}'}",cDO=y$,cDP=xu,cDQ=IH,cDR=Iv,cDS=aVS,cDT=xu,cDU=IH,cDV=Iv,cEf="unreachable type_token wholenumber",cEe="unreachable type_token wholebigint",cEd="unreachable type_token floatbigint",cEc="unreachable type_token scinumber",cEb="unreachable type_token scibigint",cEa="unreachable type_token hexnumber",cD$="unreachable type_token hexbigint",cD_="unreachable type_token legacyoctnumber",cD9="unreachable type_token octnumber",cD8="unreachable type_token octbigint",cD7="unreachable type_token binnumber",cD6="unreachable type_token bigbigint",cD4="unreachable type_token",cD5=a1B,cEg=[11,1],cEh=[11,0],cD0="unreachable template_tail",cD1=g,cD2=g,cDY="unreachable jsx_child",cDX="unreachable jsx_tag",cDD=[0,wT],cDE=[0,913],cDF=[0,lN],cDG=[0,qT],cDH=[0,qS],cDI=[0,tT],cDJ=[0,8747],cDv=[0,Do],cDw=[0,916],cDx=[0,8225],cDy=[0,935],cDz=[0,tE],cDA=[0,914],cDB=[0,wN],cDC=[0,tW],cDn=[0,Dn],cDo=[0,915],cDp=[0,zr],cDq=[0,919],cDr=[0,917],cDs=[0,qb],cDt=[0,tN],cDf=[0,H_],cDg=[0,924],cDh=[0,923],cDi=[0,922],cDj=[0,vj],cDk=[0,921],cDl=[0,w0],cDm=[0,w4],cDu=[0,t_],cC9=[0,C3],cC_=[0,927],cC$=[0,937],cDa=[0,Ak],cDb=[0,xp],cDc=[0,t8],cDd=[0,zG],cC1=[0,aY7],cC2=[0,929],cC3=[0,936],cC4=[0,8243],cC5=[0,928],cC6=[0,934],cC7=[0,rT],cC8=[0,xc],cCT=[0,933],cCU=[0,tU],cCV=[0,CV],cCW=[0,xl],cCX=[0,920],cCY=[0,932],cCZ=[0,Dv],cCL=[0,q0],cCM=[0,wR],cCN=[0,Df],cCO=[0,918],cCP=[0,a1n],cCQ=[0,Ab],cCR=[0,926],cCS=[0,xe],cC0=[0,aSA],cDe=[0,925],cCD=[0,39],cCE=[0,8736],cCF=[0,8743],cCG=[0,38],cCH=[0,945],cCI=[0,8501],cCJ=[0,tO],cCv=[0,8226],cCw=[0,lg],cCx=[0,946],cCy=[0,8222],cCz=[0,DC],cCA=[0,Dy],cCB=[0,8776],cCC=[0,zs],cCn=[0,8773],cCo=[0,9827],cCp=[0,aX8],cCq=[0,967],cCr=[0,kp],cCs=[0,l_],cCt=[0,xg],cCf=[0,pR],cCg=[0,8595],cCh=[0,8224],cCi=[0,8659],cCj=[0,lQ],cCk=[0,8746],cCl=[0,8629],cCm=[0,lc],cCu=[0,8745],cB9=[0,8195],cB_=[0,8709],cB$=[0,Hk],cCa=[0,w8],cCb=[0,zD],cCc=[0,zk],cCd=[0,9830],cB1=[0,8707],cB2=[0,8364],cB3=[0,Db],cB4=[0,vn],cB5=[0,a31],cB6=[0,8801],cB7=[0,949],cB8=[0,8194],cBT=[0,8805],cBU=[0,947],cBV=[0,8260],cBW=[0,sW],cBX=[0,rO],cBY=[0,q4],cBZ=[0,8704],cBM=[0,xq],cBN=[0,Sd],cBO=[0,8230],cBP=[0,9829],cBQ=[0,8596],cBR=[0,8660],cBS=[0,62],cB0=[0,aU_],cCe=[0,948],cCK=[0,QM],cBE=[0,wQ],cBF=[0,8712],cBG=[0,qd],cBH=[0,953],cBI=[0,8734],cBJ=[0,8465],cBK=[0,CS],cBw=[0,8220],cBx=[0,8968],cBy=[0,8592],cBz=[0,rI],cBA=[0,10216],cBB=[0,955],cBC=[0,8656],cBD=[0,954],cBo=[0,60],cBp=[0,8216],cBq=[0,8249],cBr=[0,aWh],cBs=[0,9674],cBt=[0,8727],cBu=[0,8970],cBg=[0,kO],cBh=[0,8711],cBi=[0,956],cBj=[0,8722],cBk=[0,oE],cBl=[0,qX],cBm=[0,8212],cBn=[0,tL],cBv=[0,8804],cA_=[0,957],cA$=[0,UY],cBa=[0,8836],cBb=[0,8713],cBc=[0,vp],cBd=[0,8715],cBe=[0,8800],cA2=[0,8853],cA3=[0,959],cA4=[0,969],cA5=[0,8254],cA6=[0,Dz],cA7=[0,Is],cA8=[0,C4],cA9=[0,Dr],cAU=[0,t2],cAV=[0,O],cAW=[0,8855],cAX=[0,DQ],cAY=[0,fy],cAZ=[0,q5],cA0=[0,oA],cAM=[0,qe],cAN=[0,vr],cAO=[0,982],cAP=[0,960],cAQ=[0,966],cAR=[0,8869],cAS=[0,8240],cAT=[0,8706],cA1=[0,8744],cBf=[0,8211],cAE=[0,10217],cAF=[0,8730],cAG=[0,8658],cAH=[0,34],cAI=[0,968],cAJ=[0,8733],cAK=[0,8719],cAw=[0,961],cAx=[0,8971],cAy=[0,t3],cAz=[0,8476],cAA=[0,8221],cAB=[0,8969],cAC=[0,8594],cAD=[0,oi],cAo=[0,xn],cAp=[0,k6],cAq=[0,8901],cAr=[0,aVp],cAs=[0,8218],cAt=[0,8217],cAu=[0,8250],cAg=[0,8835],cAh=[0,8721],cAi=[0,8838],cAj=[0,8834],cAk=[0,9824],cAl=[0,8764],cAm=[0,962],cAn=[0,963],cAv=[0,8207],cz_=[0,952],cz$=[0,8756],cAa=[0,964],cAb=[0,xw],cAc=[0,8839],cAd=[0,sO],cAe=[0,wY],cz2=[0,ah],cz3=[0,8657],cz4=[0,8482],cz5=[0,rR],cz6=[0,732],cz7=[0,sv],cz8=[0,8201],cz9=[0,977],czU=[0,aSz],czV=[0,ld],czW=[0,965],czX=[0,978],czY=[0,kc],czZ=[0,C_],cz0=[0,qm],czN=[0,aSX],czO=[0,8205],czP=[0,950],czQ=[0,lf],czR=[0,lE],czS=[0,zu],czT=[0,958],cz1=[0,8593],cAf=[0,jH],cAL=[0,8242],cBL=[0,k9],czM="unreachable regexp",czB="unreachable token wholenumber",czA="unreachable token wholebigint",czz="unreachable token floatbigint",czy="unreachable token scinumber",czx="unreachable token scibigint",czw="unreachable token hexnumber",czv="unreachable token hexbigint",czu="unreachable token legacyoctnumber",czt="unreachable token legacynonoctnumber",czs="unreachable token octnumber",czr="unreachable token octbigint",czq="unreachable token bignumber",czp="unreachable token bigint",czm="unreachable token",czn=a1B,czo=[7,"#!"],czC="expected ?",cy4="unreachable string_escape",cy5=lb,cy6=IZ,cy7=IZ,cy8=lb,cy9=Uw,cy_=a3j,cy$="n",cza="r",czb=m8,czc=a39,czd=IZ,cze=xu,czf=xu,cyX="unreachable id_char",cyY=xu,cyZ=xu,cyV=IZ,cyU=aTz,cyT=a2k,cyW=aj4,cyS=[24,"token ILLEGAL"],cEz=[0,[11,"the identifier `",[2,0,[12,96,0]]],"the identifier `%s`"],cEy=[0,1],cEx=[0,1],cEw=aWw,cEv=aWw,cEt=[0,[11,"an identifier. When exporting a ",[2,0,[11," as a named export, you must specify a ",[2,0,[11," name. Did you mean `export default ",[2,0,[11," ...`?",0]]]]]]],"an identifier. When exporting a %s as a named export, you must specify a %s name. Did you mean `export default %s ...`?"],cEu=R4,cEs="Peeking current location when not available",cEr=[0,"src/parser/parser_env.ml",aYi,9],cEq="Internal Error: Tried to add_declared_private with outside of class scope.",cEp="Internal Error: `exit_class` called before a matching `enter_class`",cEm=g,cEn=[0,0,0],cEo=[0,0,0],cEA="Parser_env.Try.Rollback",cEI=g,cEG=g,cEB=[0,"first_leading","last_trailing"],cEC=[0,aH,bO,dI,a32,aX2,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,aUw,ek,aVY,a2x,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],cED=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],cEE=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],cEF=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,aX2,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,aVY,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,a2x,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aUw,aS,eB,dB,e8,eC,a32,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],cEL=pj,cEM=H7,cEN=qV,cEO=wS,cEP=aD,cEQ=aK,cER=f0,cES=aM,cET=Hm,cEU=zi,cEV=IJ,cEW=CR,cEX=Dh,cEY=z_,cEZ=nK,cE0=qg,cE1=q_,cE2=aN,cE3=DG,cE4=z5,cE5=aO,cE6=gF,cE7=QC,cE8=DH,cE9=I9,cE_=sN,cE$=jZ,cFa=ko,cFb=RY,cFc=vo,cFd=DE,cFe=pM,cFf=q1,cFg=sQ,cFh=HU,cFi=aB,cFj=jc,cFk=sy,cFl=aE,cFm=UJ,cFn=HM,cFo=Ja,cFp=Iu,cFq=aH,cFr=aP,cFs=CM,cFt=lD,cFu=To,cFv=Q3,cFw=q3,cFx=tF,cFy=sV,cFz=vg,cFA=aI,cFB=oW,cFC=pS,cFD=qj,cFE=q1,cFF=rU,cFG=I5,cFH=HF,cFI=kq,cFJ=C7,cFK=tQ,cFL=CH,cFM=Dk,cFN=qR,cFO=IT,cEJ=[0,R4],cEK=g,cGg=[0,1],cF9=[0,CP,1416,6],cF_=[0,CP,1419,6],cGc=[0,CP,1522,8],cGd=[0,1],cGe=[0,CP,1539,8],cF$="Can not have both `static` and `proto`",cGa=ko,cGb=zY,cGf=[0,0,0,0],cF7=[0,0],cF6=[0,[0,0,0,0,0]],cF5="You should only call render_type after making sure the next token is a renders variant",cF3=CH,cF4=Dk,cF1=[0,"a number literal type"],cF2=[0,0],cFZ=r0,cF0=[0,0],cFX=[0,"a type"],cFY=[0,0],cFW=[0,0],cFU=[17,1],cFV=[17,0],cFT=[0,CP,DQ,15],cFS=[0,CP,xp,15],cFR=kN,cFQ=kN,cGq=z3,cGr=zL,cGp=[0,[11,"Failure while looking up ",[2,0,[11,". Index: ",[4,0,0,0,[11,". Length: ",[4,0,0,0,[12,46,0]]]]]]],"Failure while looking up %s. Index: %d. Length: %d."],cGn=[0,0,0,0],cGo="Offset_utils.Offset_lookup_failed",cGs=g8,cGt=aWl,cGu=zL,cGv=z3,cGw=HB,cGx=zL,cGy=z3,cGz=Dx,cGA=gE,cGB="normal",cGE=lD,cGF="jsxTag",cGG="jsxChild",cGH="template",cGI=aqV,cGC=UH,cGD=lD,cGK=[6,0],cGQ=[0,0],cGL=[0,1],cGM=[0,4],cGN=[0,2],cGO=[0,3],cGP=[0,0],cGJ=[0,0,0,0,0,0],cHa=r0,cHb=[0,75],cG7=[0,g,0],cG6=sx,cGZ=[0,75],cG0=[0,75],cG1=pj,cG2=[0,g,0],cGX=[0,0,0],cGW=[0,0,0],cIC=[0,83],cIy=li,cIz=li,cIu=[0,"a regular expression"],cIv=g,cIw=g,cIx=g,cIr=[0,"src/parser/expression_parser.ml",1388,17],cIs=[0,"a template literal part"],cIt=[0,[0,g,g],1],cIq=[0,0],cIn=IZ,cIm=aTz,cIo=aj4,cIp=aj4,cIl=a2k,cIk=[0,75],cIh=[0,1],cIi=[0,1],cIf=[0,1],cIg=[0,1],cIj=[0,1],cIc=rV,cH$=vo,cIa=[0,"the identifier `target`"],cIb=[0,0],cH8=aB,cH9=CG,cH_=CG,cH6=jc,cH5=[0,"either a call or access of `super`"],cH7=jc,cH4=[0,1],cH3=[0,0],cH2=[0,1],cH1=[0,0],cHT=[0,1],cHU=[0,0],cHV=[0,2],cHW=[0,3],cHX=[0,7],cHY=[0,6],cHZ=[0,4],cH0=[0,5],cHS=[0,6],cHw=[0,[0,17,[0,2]]],cHx=[0,[0,18,[0,3]]],cHy=[0,[0,19,[0,4]]],cHz=[0,[0,0,[0,5]]],cHA=[0,[0,1,[0,5]]],cHB=[0,[0,2,[0,5]]],cHC=[0,[0,3,[0,5]]],cHD=[0,[0,5,[0,6]]],cHE=[0,[0,7,[0,6]]],cHF=[0,[0,4,[0,6]]],cHG=[0,[0,6,[0,6]]],cHH=[0,[0,8,[0,7]]],cHI=[0,[0,9,[0,7]]],cHJ=[0,[0,10,[0,7]]],cHK=[0,[0,11,[0,8]]],cHL=[0,[0,12,[0,8]]],cHM=[0,[0,15,[0,9]]],cHN=[0,[0,13,[0,9]]],cHO=[0,[0,14,[1,10]]],cHP=[0,[0,16,[0,9]]],cHQ=[0,[0,21,[0,6]]],cHR=[0,[0,20,[0,6]]],cHv=[20,Ie],cHf=[0,[0,8]],cHg=[0,[0,7]],cHh=[0,[0,6]],cHi=[0,[0,10]],cHj=[0,[0,9]],cHk=[0,[0,11]],cHl=[0,[0,5]],cHm=[0,[0,4]],cHn=[0,[0,2]],cHo=[0,[0,3]],cHp=[0,[0,1]],cHq=[0,[0,0]],cHr=[0,[0,12]],cHs=[0,[0,13]],cHt=[0,[0,14]],cHu=[0,0],cIT=sN,cIU=[0,g,0],cIR="unexpected PrivateName in Property, expected a PrivateField",cIS=[0,0,0],cIK=sU,cIQ="Must be one of the above",cIO=[0,1],cIP=[0,1],cIN=[0,1],cIJ=sU,cII=sU,cIF=Ad,cIE="Internal Error: private name found in object props",cJ2=[0,1],cJ1=[0,agY,1854,21],cJ0=[0,"a declaration, statement or export specifiers"],cJZ=[0,86],cJW=IC,cJX=[0,g,g,0],cJY=[0,aVu],cJV=gK,cJR=[0,1],cJS=[0,1],cJT=[0,0],cJU=le,cJQ=[0,86],cJO=r0,cJP=[0,75],cJN=[0,0],cJM=[0,1],cJJ=[0,"the keyword `as`"],cJI=[0,34],cJH=[0,34],cJG=[0,0],cJF=[0,1],cJD=[0,aVu],cJC=[0,"the keyword `from`"],cJB=[0,g,g,0],cJz=[0,aST],cJw="Label",cJv=[0,aST],cJg=[0,0,0],cI9=[0,44],cI_=[0,agY,aie,22],cI7=[0,43],cI8=[0,agY,448,22],cI4=[0,0],cI0="the token `;`",cIZ=[0,0],cIY=[0,0],cJ5=a2K,cJ6=[0,R4],cJ3=a2K,cJ4=[24,aR],cKa=i2,cKb=fr,cKc=[13,aX7],cJ$=[0,sz],cJ_=[1,sz],cJ9=[0,g,g,0],cJ7=[0,R4],cJ8=g,cKr=[0,0],cKs=[0,0],cKn=[0,a3L],cKo=[18,[0,0]],cKm=[0,a3L],cKl=[0,0,0,0],cKi=tI,cKj="Nooo: ",cKe=gF,cKd="Parser error: No such thing as an expression pattern!",cKf=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],cKg=[0,"src/parser/parser_flow.ml",lc,28],cKp=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],cKA=aWl,cKB=gE,cKC=aWu,cKD=aSY,cKF=aSY,cKG=aWu,cKE=lD,cKH=av,cKI=he,cKJ=g8,cKK="InterpreterDirective",cKL=aU$,cKM="Program",cKN=HX,cKO="BreakStatement",cKP=HX,cKQ="ContinueStatement",cKR="DebuggerStatement",cKX=qY,cKY="DeclareExportAllDeclaration",cKS=qY,cKT=DF,cKU=HN,cKV=gF,cKW="DeclareExportDeclaration",cKZ=qk,cK0=he,cK1=hx,cK2="DeclareModule",cK3=kt,cK4="DeclareModuleExports",cK5=xx,cK6=he,cK7="DoWhileStatement",cK8="EmptyStatement",cK9=al$,cK_=HN,cK$="ExportDefaultDeclaration",cLf=al$,cLg=TX,cLh=qY,cLi="ExportAllDeclaration",cLa=al$,cLb=qY,cLc=DF,cLd=HN,cLe="ExportNamedDeclaration",cLj=a2$,cLk=az,cLl="ExpressionStatement",cLm=he,cLn=RS,cLo=xx,cLp=rM,cLq="ForStatement",cLr=aUA,cLs=he,cLt=mh,cLu=rN,cLv="ForInStatement",cLw=tF,cLx=he,cLy=mh,cLz=rN,cLA="ForOfStatement",cLB=QD,cLC=DN,cLD=xx,cLE="IfStatement",cLF=lD,cLK=pM,cLL=g8,cLG=aVe,cLH=qY,cLI=DF,cLJ="ImportDeclaration",cLM=he,cLN=HX,cLO="LabeledStatement",cLP=jJ,cLQ="ReturnStatement",cLR=aUQ,cLS="discriminant",cLT="SwitchStatement",cLU=jJ,cLV="ThrowStatement",cLW=aXB,cLX=a2o,cLY=aW,cLZ="TryStatement",cL0=he,cL1=xx,cL2="WhileStatement",cL3=he,cL4=sS,cL5="WithStatement",cL6=aWo,cL7="ArrayExpression",cL8=mb,cL9=QF,cL_=az,cL$=ax,cMa=xv,cMb=q3,cMc=he,cMd=kQ,cMe=hx,cMf="ArrowFunctionExpression",cMg=kt,cMh=az,cMi="AsExpression",cMn=Ad,cMj=mh,cMk=rN,cMl=DD,cMm="AssignmentExpression",cMo=mh,cMp=rN,cMq=DD,cMr="BinaryExpression",cMs="CallExpression",cMt=QD,cMu=DN,cMv=xx,cMw="ConditionalExpression",cMx=qY,cMy="ImportExpression",cMz=UF,cME=Ix,cMF=Ie,cMA=mh,cMB=rN,cMC=DD,cMD="LogicalExpression",cMG="MemberExpression",cMH=y8,cMI=CG,cMJ="MetaProperty",cMK=pL,cML=UQ,cMM=aVN,cMN="NewExpression",cMO=T7,cMP="ObjectExpression",cMQ=iu,cMR="OptionalCallExpression",cMS=iu,cMT="OptionalMemberExpression",cMU=ar4,cMV="SequenceExpression",cMW="Super",cMX="ThisExpression",cMY=kt,cMZ=az,cM0="TypeCastExpression",cM1=kt,cM2=az,cM3="SatisfiesExpression",cM4=az,cM5="AsConstExpression",cM6=jJ,cM7="AwaitExpression",cM8=kN,cNb=mB,cNc=HJ,cNd=aqz,cNe=pM,cNf=q1,cNg=DE,cNh="matched above",cM9=jJ,cM_=Tv,cM$=DD,cNa="UnaryExpression",cNi=apx,cNn=ahi,cNj=Tv,cNk=jJ,cNl=DD,cNm="UpdateExpression",cNo=aWe,cNp=jJ,cNq="YieldExpression",cNB="Unexpected FunctionDeclaration with BodyExpression",cNr=mb,cNs=QF,cNt=az,cNu=ax,cNv=xv,cNw=q3,cNx=he,cNy=kQ,cNz=hx,cNA="FunctionDeclaration",cNM="Unexpected FunctionExpression with BodyExpression",cNC=mb,cND=QF,cNE=az,cNF=ax,cNG=xv,cNH=q3,cNI=he,cNJ=kQ,cNK=hx,cNL="FunctionExpression",cNN=iu,cNO=kt,cNP=gi,cNQ=ajJ,cNR=iu,cNS=kt,cNT=gi,cNU="PrivateIdentifier",cNV=iu,cNW=kt,cNX=gi,cNY=ajJ,cNZ=DN,cN0=xx,cN1="SwitchCase",cN2=he,cN3="param",cN4="CatchClause",cN5=he,cN6="BlockStatement",cN7=qk,cN8=hx,cN9="DeclareVariable",cN_=ax,cN$=hx,cOa="DeclareFunction",cOb=z7,cOc=sy,cOd=jZ,cOe=he,cOf=mb,cOg=hx,cOh="DeclareClass",cOi=mb,cOj=an3,cOk=kQ,cOl=vm,cOm=kQ,cOn=hx,cOo="DeclareComponent",cOp=mb,cOq=an3,cOr=vm,cOs=kQ,cOt="ComponentTypeAnnotation",cOu=iu,cOv=kt,cOw=gi,cOx="ComponentTypeParameter",cOy=he,cOz=hx,cOA="DeclareEnum",cOB=jZ,cOC=he,cOD=mb,cOE=hx,cOF="DeclareInterface",cOG=g8,cOH=lD,cOI=TX,cOJ="ExportNamespaceSpecifier",cOK=mh,cOL=mb,cOM=hx,cON="DeclareTypeAlias",cOO=mh,cOP=mb,cOQ=hx,cOR="TypeAlias",cOS="DeclareOpaqueType",cOX="OpaqueType",cOT=a3N,cOU=aXF,cOV=mb,cOW=hx,cOY="ClassDeclaration",cOZ="ClassExpression",cO0=zZ,cO1=sy,cO2="superTypeParameters",cO3="superClass",cO4=mb,cO5=he,cO6=hx,cO7=az,cO8="Decorator",cO9=mb,cO_=hx,cO$="ClassImplements",cPa=he,cPb="ClassBody",cPc=ig,cPk=C1,cPl=w1,cPm=zJ,cPd=zZ,cPe=Dd,cPf=ko,cPg=qk,cPh=g8,cPi=l9,cPj="MethodDefinition",cPn=CM,cPv=zZ,cPo=ay,cPp=ko,cPq=Dd,cPr=kt,cPs=g8,cPt=l9,cPu=a2u,cPF="Internal Error: Private name found in class prop",cPw=CM,cPE=zZ,cPx=ay,cPy=ko,cPz=Dd,cPA=kt,cPB=g8,cPC=l9,cPD=a2u,cPG=mb,cPH=an3,cPI=kQ,cPJ=hx,cPK=he,cPL="ComponentDeclaration",cPM=jJ,cPN=ag9,cPO=mh,cPP=rN,cPQ=S1,cPR=DP,cPS=y_,cPT=gi,cPU="ComponentParameter",cQn=rM,cQo=hx,cQp="EnumBigIntMember",cQh=hx,cQi=aZ4,cQd=rM,cQe=hx,cQf="EnumStringMember",cP9=hx,cP_=aZ4,cP4=rM,cP5=hx,cP6="EnumNumberMember",cPX=rM,cPY=hx,cPZ="EnumBooleanMember",cPV=Hu,cPW=RF,cP0=DO,cP1="EnumBooleanBody",cP2=Hu,cP3=RF,cP7=DO,cP8="EnumNumberBody",cP$=Hu,cQa=RF,cQb=DO,cQc="EnumStringBody",cQg=Hu,cQj=DO,cQk="EnumSymbolBody",cQl=Hu,cQm=RF,cQq=DO,cQr="EnumBigIntBody",cQs=he,cQt=hx,cQu="EnumDeclaration",cQv=jZ,cQw=he,cQx=mb,cQy=hx,cQz="InterfaceDeclaration",cQA=mb,cQB=hx,cQC="InterfaceExtends",cQD=kt,cQE=T7,cQF="ObjectPattern",cQG=kt,cQH=aWo,cQI="ArrayPattern",cQJ=mh,cQK=rN,cQL=S1,cQM=kt,cQN=gi,cQO=ajJ,cQP=jJ,cQQ=ag9,cQR=jJ,cQS=ag9,cQT=mh,cQU=rN,cQV=S1,cQW=rM,cQ5=rM,cQ6=w1,cQ7=zJ,cQ4=aXv,cQX=Dd,cQY=DP,cQZ=C1,cQ0=qk,cQ1=g8,cQ2=l9,cQ3=a0H,cQ8=jJ,cQ9=a0q,cQ_=mh,cQ$=rN,cRa=S1,cRb=Dd,cRc=DP,cRd=C1,cRe=qk,cRf=g8,cRg=l9,cRh=a0H,cRi=jJ,cRj=a0q,cRk=k_,cRl=g8,cRm=Dw,cRn=k_,cRo=pS,cRp=g8,cRq=Dw,cRr=k_,cRs=g8,cRt=Dw,cRu=q_,cRy=qg,cRv=k_,cRw=g8,cRx=Dw,cRz=akQ,cRA=aV,cRB="regex",cRC=k_,cRD=g8,cRE=Dw,cRF=k_,cRG=g8,cRH=Dw,cRI=ar4,cRJ="quasis",cRK="TemplateLiteral",cRL=aZX,cRM=k_,cRN=anM,cRO=g8,cRP="TemplateElement",cRQ=a3p,cRR="tag",cRS="TaggedTemplateExpression",cRT=zi,cRU=z_,cRV=Dh,cRW=qk,cRX="declarations",cRY="VariableDeclaration",cRZ=rM,cR0=hx,cR1="VariableDeclarator",cR2=sR,cR5=aZN,cR6=tQ,cR7=qV,cR8=UO,cR9="in-out",cR3=qk,cR4="Variance",cR_="AnyTypeAnnotation",cR$="MixedTypeAnnotation",cSa="EmptyTypeAnnotation",cSb="VoidTypeAnnotation",cSc="NullLiteralTypeAnnotation",cSd="SymbolTypeAnnotation",cSe="NumberTypeAnnotation",cSf="BigIntTypeAnnotation",cSg="StringTypeAnnotation",cSh="BooleanTypeAnnotation",cSi=kt,cSj="NullableTypeAnnotation",cSk="UnknownTypeAnnotation",cSl="NeverTypeAnnotation",cSm="UndefinedTypeAnnotation",cSn=Dk,cSo=kt,cSp="parameterName",cSq="TypePredicate",cSr=mb,cSs=vm,cSt=QF,cSu=f0,cSv=kQ,cSw="FunctionTypeAnnotation",cSx=iu,cSy=kt,cSz=gi,cSA=aZL,cSB=iu,cSC=kt,cSD=gi,cSE=aZL,cSF=[0,0,0,0,0],cSG="internalSlots",cSH="callProperties",cSI="indexers",cSJ=T7,cSK=aiC,cSL=aVi,cSM="ObjectTypeAnnotation",cSZ=aXv,cS0="There should not be computed object type property keys",cSN=rM,cSX=w1,cSY=zJ,cSO=qk,cSP=ay,cSQ=zY,cSR=ko,cSS=iu,cST=C1,cSU=g8,cSV=l9,cSW="ObjectTypeProperty",cS1=jJ,cS2="ObjectTypeSpreadProperty",cS3=ay,cS4=ko,cS5=g8,cS6=l9,cS7=hx,cS8="ObjectTypeIndexer",cS9=ko,cS_=g8,cS$="ObjectTypeCallProperty",cTa=iu,cTb=ay,cTc="sourceType",cTd="propType",cTe="keyTparam",cTf="ObjectTypeMappedTypeProperty",cTg=g8,cTh=C1,cTi=ko,cTj=iu,cTk=hx,cTl="ObjectTypeInternalSlot",cTm=he,cTn=jZ,cTo="InterfaceTypeAnnotation",cTp=aUD,cTq="ArrayTypeAnnotation",cTr="falseType",cTs="trueType",cTt="extendsType",cTu="checkType",cTv="ConditionalTypeAnnotation",cTw="typeParameter",cTx="InferTypeAnnotation",cTy=hx,cTz=ahg,cTA="QualifiedTypeIdentifier",cTB=mb,cTC=hx,cTD="GenericTypeAnnotation",cTE="indexType",cTF="objectType",cTG="IndexedAccessType",cTH=iu,cTI="OptionalIndexedAccessType",cTJ=anm,cTK="UnionTypeAnnotation",cTL=anm,cTM="IntersectionTypeAnnotation",cTN=UQ,cTO=jJ,cTP="TypeofTypeAnnotation",cTQ=hx,cTR=ahg,cTS="QualifiedTypeofIdentifier",cTT=jJ,cTU="KeyofTypeAnnotation",cTV=qW,cTW=DA,cTX=zS,cTY=kt,cTZ=DD,cT0="TypeOperator",cT1=jJ,cT2="ReadOnlyTypeAnnotation",cT3="elementTypes",cT4="TupleTypeAnnotation",cT5=iu,cT6=ay,cT7=aUD,cT8=HX,cT9="TupleTypeLabeledElement",cT_=kt,cT$=HX,cUa="TupleTypeSpreadElement",cUb=k_,cUc=g8,cUd="StringLiteralTypeAnnotation",cUe=k_,cUf=g8,cUg="NumberLiteralTypeAnnotation",cUh=k_,cUi=g8,cUj="BigIntLiteralTypeAnnotation",cUk=q_,cUo=qg,cUl=k_,cUm=g8,cUn="BooleanLiteralTypeAnnotation",cUp="ExistsTypeAnnotation",cUq=kt,cUr=aTI,cUs=kt,cUt=aTI,cUu=kQ,cUv="TypeParameterDeclaration",cUw="usesExtendsBound",cUx=gF,cUy=ay,cUz=Re,cUA=gi,cUB="TypeParameter",cUC=kQ,cUD=aTJ,cUE=kQ,cUF=aTJ,cUG=rV,cUH=tZ,cUI="closingElement",cUJ="openingElement",cUK="JSXElement",cUL="closingFragment",cUM=tZ,cUN="openingFragment",cUO="JSXFragment",cUP=UQ,cUQ="selfClosing",cUR=aU6,cUS=gi,cUT="JSXOpeningElement",cUU="JSXOpeningFragment",cUV=gi,cUW="JSXClosingElement",cUX="JSXClosingFragment",cUY=g8,cUZ=gi,cU0="JSXAttribute",cU1=jJ,cU2="JSXSpreadAttribute",cU5="JSXEmptyExpression",cU3=az,cU4="JSXExpressionContainer",cU6=az,cU7="JSXSpreadChild",cU8=k_,cU9=g8,cU_="JSXText",cU$=y8,cVa=sS,cVb="JSXMemberExpression",cVc=gi,cVd=aWg,cVe="JSXNamespacedName",cVf=gi,cVg="JSXIdentifier",cVh=TX,cVi=y_,cVj="ExportSpecifier",cVk=y_,cVl="ImportDefaultSpecifier",cVm=y_,cVn="ImportNamespaceSpecifier",cVo=aVe,cVp=y_,cVq=aZj,cVr="ImportSpecifier",cVs="Line",cVu="Block",cVt=g8,cVv=g8,cVw="DeclaredPredicate",cVx="InferredPredicate",cVy=pL,cVz=UQ,cVA=aVN,cVB=Dd,cVC=y8,cVD=sS,cKy=aiQ,cKz=gE,cKv=HB,cKw=Dx,cKx=qY,cKt=zL,cKu=z3,cVE=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],cVF=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],cVG=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],cVI=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],cVJ=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,fM],cVK=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],cVL=[0,fM],cV$=g,cV_="Str.matched_group",cV9="Str.group_end",cV4=[0,92],cV6="\\( group not closed by \\)",cV5=[0,aUd,521,10],cV7="[ class not closed by ]",cV8="spurious \\) in regular expression",cV1="too many r* or r+ where r is nullable",cV2=g,cVZ=[0,aUd,rT,11],cWe=aTR,cWg=aVJ,cWh=aVR,cWi=UD,cWj=aXq,cWk=aZ2,cWl=aT8,cWm=aW_,cWn=ags,cWo=aUM,cWp=aWJ,cWq=a0$,cWr=aV8,cWs=aUo,cWt=aWG,cWu=aT3,cWv=a07,cWw=aZ$,cWx=aYk,cWy=a1g,cWz=Rr,cWA=aZ9,cWB=a1Y,cWC=a4p,cWD=a4f,cWE=a4m,cWF=Tp,cWG=atr,cWH=aUb,cWI=aZ6,cWJ=aXh,cWK=aYX,cWL=aUl,cWM=aZA,cWN=a2N,cWO=a09,cWP=aTB,cWQ=aU5,cWR=a1K,cWS=aYV,cWT=aUz,cWU=aVx,cWV=a0c,cWW=aZE,cWX=aXf,cWY=aYz,cWZ=a3U,cW0=aWk,cW1=a1v,cW2=aYR,cW3=a1W,cW4=aUE,cW5=a4k,cW6=a0m,cW7=a2d,cW8=aVr,cW9=aTW,cW_=aUy,cW$=a2t,cXa=aVB,cXb=aWm,cXc=aVv,cXd=a00,cXe=a1a,cXf=a2s,cXg=a0v,cXh=aUs,cXi=aXE,cXj=[0,[11,"EUNKNOWNERR ",[4,0,0,0,0]],"EUNKNOWNERR %d"],cWf=[0,[11,"Unix.Unix_error(Unix.",[2,0,[11,_,[3,0,[11,_,[3,0,[12,41,0]]]]]]],"Unix.Unix_error(Unix.%s, %S, %S)"],cWa=DI,cWb=g,cWc=g,cWd=DI,cXl=g,cXm=tI,cXk=[0,0,[0,0,0]],cXr=tI,cXu=g,cXw="\n Backtrace:\n",cXv=[0,[11,"\n Exception: ",[2,0,[2,0,0]]],"\n Exception: %s%s"],cXx=g,cXy=[0,[2,0,[12,32,[2,0,[2,0,[2,0,[12,10,[10,0]]]]]]],"%s %s%s%s\n%!"],cXt=g,cXs=[0,[12,91,[4,0,0,0,[12,45,[4,0,[0,2,2],0,[12,45,[4,0,[0,2,2],0,[12,32,[4,0,[0,2,2],0,[12,58,[4,0,fn9,0,fn8]]]]]]]]]],"[%d-%02d-%02d %02d:%02d:%02d.%03d]"],cXD=gj,cXE=[0,"\xf0\x9f\x98\xa1",[0,"\xf0\x9f\x98\x82",[0,"\xf0\x9f\xa4\x94",[0,"\xf0\x9f\x92\xaf",0]]]],cXH=[0,0,0],cXI=gj,cXG=g,cXF=g,cXP=I$,cXQ=aY1,cXR=a3G,cXS=a3e,cXT="first",cXU="second",cXV="third",cXW="fourth",cXX="fifth",cXY="sixth",cXZ="seventh",cX0="eigth",cX1="ninth",cXK=aUu,cXL=aUu,cXM=aTn,cXN=aTn,cXO=[0,[2,0,[2,0,[12,10,[2,0,[11,":\n",[2,0,[2,0,[2,0,0]]]]]]]],"%s%s\n%s:\n%s%s%s"],cX2=[0,0,0],cX6=[0,[12,59,[17,[0,a,1,0],0]],r],cX5=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],cX7=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],cX3=[0,[12,40,[18,[1,[0,0,g]],0]],an],cX4=[0,[12,44,[17,[0,a,1,0],0]],I],cX8=[0,[17,0,[12,41,0]],t],cYd="impossible: dedup must have removed a nonduplicate",cYc=xs,cYb=xs,cYa=xs,cX$=xs,cX_=xs,cX9="of_list_exn given empty list",cYe=[0,[3,0,0],ag],cYf="Comparing bitsets of different sizes",cYr=aYl,cYo=[0,1],cYp=[0,1],cYq=[0,[11,"Unable to compare a keyed location with a concrete one. loc1: ",[2,0,[11,", loc2: ",[2,0,0]]]],"Unable to compare a keyed location with a concrete one. loc1: %s, loc2: %s"],cYm=aVy,cYl=[0,[3,0,[11,mj,0]],a2b],cYn=g,cYk=aYl,cYj="to_loc_safe: File mismatch between location and table",cYi="",cYh="loc must be concrete",cYg="Can only get the key from a keyed location",cYB=[0,[12,40,[2,0,[11,_,[2,0,[12,41,0]]]]],I8],cYx=[0,[15,0],y],cYt=[0,[12,40,[18,[1,[0,0,g]],0]],an],cYu=[0,[12,44,[17,[0,a,1,0],0]],I],cYv=[0,[4,0,0,0,0],iP],cYw=[0,[17,0,[12,41,0]],t],c2P=[0,[15,0],y],c2M=[0,[12,59,[17,[0,a,1,0],0]],r],c2K=[0,[18,[1,[0,[11,xk,0],xk]],[12,hB,0]],Ue],c2L=[0,[12,32,0],gj],c2N=[0,[12,32,0],gj],c2O=[0,[12,E,[17,0,0]],TF],c1$=[0,[15,0],y],c1q=[0,[15,0],y],c1p=[0,[15,0],y],c1m=[0,[12,59,[17,[0,a,1,0],0]],r],c1k=[0,[18,[1,[0,[11,xk,0],xk]],[12,hB,0]],Ue],c1l=[0,[12,32,0],gj],c1n=[0,[12,32,0],gj],c1o=[0,[12,E,[17,0,0]],TF],c0L=[0,[15,0],y],cZ2=[0,[15,0],y],cZ1=[0,[15,0],y],cZY=[0,[12,59,[17,[0,a,1,0],0]],r],cZW=[0,[18,[1,[0,[11,xk,0],xk]],[12,hB,0]],Ue],cZX=[0,[12,32,0],gj],cZZ=[0,[12,32,0],gj],cZ0=[0,[12,E,[17,0,0]],TF],cZl=[0,[15,0],y],cYC=[0,[15,0],y],c3e=[0,[0,16,0]],c3f=[0,[0,[2,3],0]],c3g=[0,[0,[2,2],0]],c3h=[0,[0,[2,1],0]],c3i=[0,[0,[2,0],0]],c3j=[0,[0,[2,0],[0,[2,1],[0,[2,2],[0,[2,3],0]]]]],c3k=[0,[0,11,0]],c3l=[0,[0,9,0]],c28=[0,[0,10,0]],c29=[0,[0,18,0]],c2_=[0,[0,2,0]],c2$=[0,[0,13,0]],c3a=[0,[0,19,0]],c3b=[0,[0,15,0]],c3c=[0,[0,12,0]],c3d=[0,[0,7,0]],c2Z=[0,[0,14,0]],c20=[0,[0,[1,0],0]],c21=[0,[0,[1,0],0]],c22=[0,[0,[0,1],[0,[0,6],0]]],c23=[0,[0,[0,2],[0,[0,7],0]]],c24=[0,[0,[0,4],0]],c25=[0,[0,[0,0],[0,[0,5],0]]],c26=[0,[0,[0,3],[0,[0,8],0]]],c2R=[0,[0,17,0]],c2S=[0,[0,0,0]],c2T=[0,[0,1,0]],c2U=[0,[0,4,0]],c2V=[0,[0,5,0]],c2W=[0,[0,6,0]],c2X=[0,[0,8,0]],c2Y=[0,[0,3,0]],c27=[0,[0,[0,0],[0,[0,1],[0,[0,2],[0,[0,3],[0,[0,4],[0,[0,5],[0,[0,6],[0,[0,7],[0,[0,8],0]]]]]]]]]],c2Q=aoV,c3r=[0,1],c3s=[0,0],c3t=[0,2],c3o=aWq,c3p="warning",c3q=akL,c3u=[0,2,0],c3x="Remove is only called on entries that exist in the builder.",c3w=[0,0,0],c3z=[0,"runtime/VisitorsRuntime.ml",35,2],c3y=[0,rX,aiL,agZ,ao9,ai5,aoh,aqJ,ari,agV,agX,asQ,agp,ah1,arH,alz,apb,af5,sR,Dc],c3A="VisitorsRuntime.StructuralMismatch",c34=[0,[15,0],y],c31=[0,[12,59,[17,[0,a,1,0],0]],r],c30=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],c32=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],c3P=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Subst_name.Name.Name",[17,[0,a,1,0],0]]]],"(@[<2>Subst_name.Name.Name@ "],c3Q=[0,[3,0,0],ag],c3R=[0,[17,0,[12,41,0]],t],c3S=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Subst_name.Name.Id (",[17,[0,w,0,0],0]]]],"(@[<2>Subst_name.Name.Id (@,"],c3T=[0,[4,0,0,0,0],iP],c3U=[0,[12,44,[17,[0,a,1,0],0]],I],c3V=[0,[3,0,0],ag],c3W=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c3X=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Subst_name.Name.Synthetic (",[17,[0,w,0,0],0]]]],"(@[<2>Subst_name.Name.Synthetic (@,"],c3Y=[0,[3,0,0],ag],c3Z=[0,[12,44,[17,[0,a,1,0],0]],I],c33=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c36="^[^*?]*[*?]",c37=zA,c38=agS,c39=jv,c3_=a3Z,c4h=li,c4f=HJ,c4a=Sr,c3$=[0,"node_modules",0],c4b=a3Z,c4d="^\\(/\\|[A-Za-z]:[/\\\\]\\)",c4e="",c4i=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.OrdinaryName",[17,[0,a,1,0],0]]]],"(@[<2>Reason.OrdinaryName@ "],c4j=[0,[3,0,0],ag],c4k=[0,[17,0,[12,41,0]],t],c4l=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.InternalName",[17,[0,a,1,0],0]]]],"(@[<2>Reason.InternalName@ "],c4m=[0,[3,0,0],ag],c4n=[0,[17,0,[12,41,0]],t],c4o=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.InternalModuleName",[17,[0,a,1,0],0]]]],"(@[<2>Reason.InternalModuleName@ "],c4p=[0,[3,0,0],ag],c4q=[0,[17,0,[12,41,0]],t],c$Q="explicit 'any'",c$R="implicit 'any'",c$S=oW,c$T=pS,c$V=qR,c$W=vg,c$X=aI,c$Y="unknown element of empty array",c$Z=kq,c$0=nK,c$1="undefined (result of null short-circuiting an optional chain)",c$2=rU,c$3=gK,c$4=aSu,c$5=a1T,c$6=sS,c$7="object literal",c$8="object type",c$9=a1V,c$_=lG,c$$="interface type",daa=aS,dab="array literal",dac="empty array literal",dad="array type",dae=aUf,daf="read-only array type",dag="tuple type",dah=a3o,dai="function body",daj="`$Call`",dak="unused function argument",dal="JSX child",dam=[0,[11,aTp,0],aTp],dan="``",dao="template string",dap="some string with unknown value",daq="literal union",dar=f0,das="`this` type",dat="implicit instantiation",dau="undefined (too few arguments)",dav="undefined (too few arguments, expected default/rest parameters)",daw="constructor void return",dax="new object",day="union",daz="union type",daA="intersection",daB="intersection type",daC="key set",daD=RV,daE=a2,daF=sU,daG="object prototype",daH="function prototype",daI="destructuring",daJ="default value",daK=ig,daL="default constructor",daM=aD,daN=aqV,daO=jc,daP="empty super object",daQ="empty prototype object",daR="bound `this` in method",daS="`$TupleMap`",daT="`$ObjMap`",daU="`$ObjMapi`",daV="`$KeyMirror`",daW="`$ObjMapConst`",daX="some property",daY="async import",daZ="`$ReadOnly`",da0="rest of object pattern",da1="rest of array pattern",da2="optional chain",da3=hA,da4="React class",da5="React component",da6="statics of React class",da7="default props of React component",da8="state of React component",da9="children array",da_="React component ref",da$="React stateless functional component",dba="config of React component",dbb="uninitialized variable",dbc="possibly uninitialized variable",dbd="undefined (default `next` of unannotated generator function)",dbe=r0,dbf="a value that renders nothing",dbh=aVL,dbg=[0,[11,"string literal `",[2,0,[12,96,0]]],"string literal `%s`"],dbi=[0,[11,"number literal `",[2,0,[12,96,0]]],"number literal `%s`"],dbj=[0,[11,"bigint literal `",[2,0,[12,96,0]]],"bigint literal `%s`"],dbk=[0,[11,"boolean literal `",[2,0,[12,96,0]]],"boolean literal `%s`"],dbl="optional indexed access",dbm="indexed access",dbn=[0,[11,"infer type `",[2,0,[12,96,0]]],"infer type `%s`"],dbo=[0,[11,"object with property `",[2,0,[11,"` that matches ",[2,0,0]]]],"object with property `%s` that matches %s"],dbp="(alternatively, provide an annotation to summarize the array element type)",dbq="inferred union of array element types ",dbr=[0,[11," (labeled '",[2,0,[11,"')",0]]]," (labeled '%s')"],dbu=g,dbs="tuple element",dbt=[0,[2,0,[2,0,0]],DX],dbv=[0,[11,"length `",[4,0,0,0,[11,"` (number) of tuple",0]]],"length `%d` (number) of tuple"],dbw=[0,[11,"undefined (out of bounds tuple access at index ",[4,0,0,0,[12,41,0]]],"undefined (out of bounds tuple access at index %d)"],dbx=[0,[2,0,[11,pj,0]],"%sfunction"],dby=[0,[11,"call of ",[2,0,0]],"call of %s"],dbz=[0,[12,96,[2,0,[11,"(...)`",0]]],"`%s(...)`"],dbA=[0,[12,96,[2,0,[12,96,0]]],rL],dbB=hA,dbC=[0,[11,"JSX element `",[2,0,[12,96,0]]],"JSX element `%s`"],dbD=aZl,dbE=[0,[2,0,[12,32,[2,0,0]]],"%s %s"],dbF=[0,[2,0,[12,32,[2,0,[12,32,[2,0,0]]]]],aS9],dbG=[0,[2,0,[12,32,[2,0,[12,32,[2,0,0]]]]],aS9],dbH=[0,[11,"enum `",[2,0,[12,96,0]]],"enum `%s`"],dbI=[0,[2,0,[11," enum",0]],"%s enum"],dbJ=[0,[11,ahz,[2,0,0]],"new %s"],dbK=[0,[11,"implicit `this` parameter of ",[2,0,0]],"implicit `this` parameter of %s"],dbL=[0,[12,96,[2,0,[12,96,0]]],rL],dbM=[0,[12,96,[2,0,[12,96,0]]],rL],dbN=[0,[12,96,[2,0,[12,96,0]]],rL],dbO=[0,[12,96,[2,0,[12,96,0]]],rL],dbP=[0,[2,0,[11," (inferred from type parameter's default)",0]],"%s (inferred from type parameter's default)"],dbQ=[0,[2,0,[11," (inferred from type parameter's bound)",0]],"%s (inferred from type parameter's bound)"],dbR=[0,[11,"`typeof ",[2,0,[12,96,0]]],"`typeof %s`"],dbS=[0,[11,"method `",[2,0,[12,96,0]]],"method `%s`"],dbT="computed method",dbU=[0,[11,"call of method `",[2,0,[12,96,0]]],"call of method `%s`"],dbV="call of computed property",dbW=[0,[12,96,[2,0,[12,96,0]]],rL],dbX="parameter",dbY=[0,[11,"rest parameter `",[2,0,[12,96,0]]],"rest parameter `%s`"],dbZ="rest parameter",db0=[0,[11,"pattern parameter `",[2,0,[12,96,0]]],"pattern parameter `%s`"],db1=[0,[12,96,[2,0,[12,96,0]]],rL],db2=[0,[11,"parameter `",[2,0,[11,a1u,0]]],"parameter `%s` of unknown type"],db3=[0,[11,"assignment of identifier `",[2,0,[12,96,0]]],"assignment of identifier `%s`"],db4=[0,[11,"assignment of property `",[2,0,[12,96,0]]],"assignment of property `%s`"],db5="assignment of computed property/element",db6=[0,[11,S6,[2,0,[12,96,0]]],aVO],db7="computed property",db8=[0,[11,"property `#",[2,0,[12,96,0]]],"property `#%s`"],db9=[0,[12,96,[2,0,[2,0,[12,96,0]]]],"`%s%s`"],db_=[0,[11,S6,[2,0,[11,"` of ",[2,0,0]]]],"property `%s` of %s"],dca=aVL,db$=[0,[11,aYe,[2,0,[12,96,0]]],aVj],dcb=[0,[11,"`void` (due to access of non-existent property `",[2,0,[11,"`)",0]]],"`void` (due to access of non-existent property `%s`)"],dcc="`void` (due to access of a computed property which does not exist)",dcd=[0,[11,S6,[2,0,[11,a1u,0]]],"property `%s` of unknown type"],dce="computed property of unknown type",dcf=[0,[11,"an unknown property that may exist on the inexact ",[2,0,0]],"an unknown property that may exist on the inexact %s"],dcg=[0,[11,"undefined property `",[2,0,[12,96,0]]],"undefined property `%s`"],dch=[0,[11,"property `name` of ",[2,0,0]],"property `name` of %s"],dci=[0,[11,"undefined. Did you forget to declare ",[2,0,[12,63,0]]],"undefined. Did you forget to declare %s?"],dcj=[0,[11,"field initializer for `",[2,0,[12,96,0]]],"field initializer for `%s`"],dck=[0,[11,"import from untyped module `",[2,0,[12,96,0]]],"import from untyped module `%s`"],dcl=[0,[11,"Named import from module `",[2,0,[12,96,0]]],"Named import from module `%s`"],dcm=[0,[11,"import type * as ",[2,0,0]],"import type * as %s"],dcn=[0,[11,"import typeof * as ",[2,0,0]],"import typeof * as %s"],dco=[0,[11,"import * as ",[2,0,0]],"import * as %s"],dcp=[0,[11,"Default import from `",[2,0,[12,96,0]]],"Default import from `%s`"],dcq=vs,dcr=vs,dcs=[0,[11,"optional ",[2,0,0]],"optional %s"],dct=[0,[11,"nullable ",[2,0,0]],"nullable %s"],dcu="rest array",dcv=[0,[11,"abstract ",[2,0,0]],"abstract %s"],dcw=[0,[11,"this instantiation of ",[2,0,0]],"this instantiation of %s"],dcx=[0,[11,"extends ",[2,0,0]],"extends %s"],dcy=[0,[11,aWp,[2,0,0]],aTl],dcz=[0,[11,"statics of ",[2,0,0]],"statics of %s"],dcA=[0,[11,"super of ",[2,0,0]],"super of %s"],dcB=[0,[11,"frozen ",[2,0,0]],"frozen %s"],dcC=[0,[11,"bound ",[2,0,0]],"bound %s"],dcD=[0,[11,"predicate encoded in ",[2,0,0]],"predicate encoded in %s"],dcE=[0,[11,"predicate call to ",[2,0,0]],"predicate call to %s"],dcF=[0,[11,"negation of predicate call to ",[2,0,0]],"negation of predicate call to %s"],dcG=[0,[11,"refined ",[2,0,0]],"refined %s"],dcH=[0,[11,"array element of refined ",[2,0,0]],"array element of refined %s"],dcI=[0,[12,96,[2,0,[12,96,0]]],rL],dcJ=[0,[11,"spread of ",[2,0,0]],"spread of %s"],dcK=[0,[11,"partial ",[2,0,0]],"partial %s"],dcL=[0,[11,"required of ",[2,0,0]],"required of %s"],dcM=[0,[11,aZO,[2,0,[12,96,0]]],aYo],dcN=[0,[11,aZO,[2,0,[12,96,0]]],aYo],dcO=[0,[12,96,[2,0,[11,"` element",0]]],"`%s` element"],dcP="React element",dcQ=[0,[11,aYH,[2,0,0]],a0P],dcR=[0,[11,aYH,[2,0,0]],a0P],dcS=[0,[11,"possibly missing property `",[2,0,[11,"` in ",[2,0,0]]]],"possibly missing property `%s` in %s"],dcT=[0,[11,"type guard parameter `",[2,0,[12,96,0]]],"type guard parameter `%s`"],dcU=[0,[11,a3x,[2,0,0]],aUB],dcV=[0,[11,"props of ",[2,0,0]],"props of %s"],dcW=[0,[11,"instance of ",[2,0,0]],"instance of %s"],dcX=[0,[11,"render type of ",[2,0,0]],"render type of %s"],dcY=I$,dc0=aY1,dc1=a3G,dc2=a3e,dc3=I$,dc4=I$,dc5=I$,dcZ=[0,[2,0,[11," (default type argument for ",[2,0,[11,"'s ",[4,3,0,0,[2,0,[11," position)",0]]]]]]],"%s (default type argument for %s's %i%s position)"],dc6=[0,[11,"renders ",[2,0,0]],"renders %s"],dc7=[0,[11,"renders? ",[2,0,0]],"renders? %s"],dc8=[0,[11,"renders* ",[2,0,0]],"renders* %s"],c$U=qj,deA=[1,[0,g]],deC=[25,[0,w3]],deB=[0,1],det=IV,deu=fr,dev="?.#",dew=".#",dex=q2,dey=a0h,dez=wO,dep=fr,deq=fr,dek=arS,del=rJ,dem=arS,den=i2,deo=rJ,der=arS,des=rJ,dei=gj,dej=gj,def=[0,t1,14],deg=[0,t1,16],deh=[0,t1,16],dec=UF,ded=Ix,dee=Ie,dea=aSK,deb=aig,ddc=F,ddd=sB,dde=aig,ddf=Q1,ddg="(...) => { ... }",ddh="(...) => ",ddi=F,ddj="(...) => (",ddm=Ad,ddk=gj,ddl=gj,ddn=ahG,ddq=amR,ddr=g,ddo=aqg,ddp=au,dds="class { ... }",ddt=aUn,ddu=aT2,ddv="function () { ... }",ddw=F,ddx="import(",ddy="<>...<\/>",ddz="...'",ddA=T_,ddB=q_,ddC=qg,ddD=nK,ddE=fr,ddF=ahG,ddK=amR,ddL=g,ddG=aqg,ddI=au,ddJ=g,ddH=ahz,ddM=aSK,ddN=ahG,ddS=amR,ddT=g,ddO=aqg,ddR=au,ddP=IV,ddQ=g,ddU=jc,ddV=aSx,ddW=aSx,ddX=f0,ddY=kN,ddZ=mB,dd0=HJ,dd1=aqz,dd2=aYb,dd3="void ",dd4="delete ",dd5="await ",dd6=apx,dd7=ahi,dd8="yield* ",dd9="yield ",dd_="yield*",dd$=aH,ddb=[0,0],dda=[0,0],dc_=[0,[2,0,[11,mj,[3,0,0]]],"%s: %S"],dc9=[0,[2,0,[11,mj,[2,0,0]]],TB],c$P=aZS,c$K="async ",c$L="generator ",c$M="async generator ",c$N=g,c$O="unknown ",c$A="offset",c$B=zL,c$C=z3,c$D=zL,c$E=z3,c$F=HB,c$G=Dx,c$H=lD,c$I=qY,c$w=[2,"LibFile"],c$x=[2,"SourceFile"],c$y=[2,"JsonFile"],c$z=[2,"ResourceFile"],c$u=[0,[2,0,[12,58,[2,0,0]]],aTT],c$v=g,c$t=[0,[2,0,[2,0,0]],DX],c$q=[0,[2,0,[2,0,0]],DX],c$r=[0,[11,aku,[2,0,0]],aX9],c$s=[0,[11,aku,[2,0,0]],aX9],c$p=[0,[15,0],y],c$k="Reason.RAsync",c$l="Reason.RGenerator",c$m="Reason.RAsyncGenerator",c$n="Reason.RNormal",c$o="Reason.RUnknown",c$j=[0,[15,0],y],c_v=H,c_w=F,c_x=G,c8X=H,c8Y=F,c8Z=G,c8S=H,c8T=F,c8U=G,c8u=H,c8v=F,c8w=G,c8o=H,c8p=[0,[3,0,0],ag],c8q=F,c8r=G,c79=H,c7_=[0,[3,0,0],ag],c7$=F,c8a=G,c73=H,c74=[0,[3,0,0],ag],c75=F,c76=G,c7X=H,c7Y=[0,[3,0,0],ag],c7Z=F,c70=G,c7R=H,c7S=[0,[3,0,0],ag],c7T=F,c7U=G,c7F=[0,[12,40,[18,[1,[0,0,g]],0]],an],c7G=[0,[12,44,[17,[0,a,1,0],0]],I],c7H=[0,[17,0,[12,41,0]],t],c7B=[0,[12,40,[18,[1,[0,0,g]],0]],an],c7C=[0,[12,44,[17,[0,a,1,0],0]],I],c7D=[0,[17,0,[12,41,0]],t],c7r=H,c7s=F,c7t=G,c6W=H,c6X=[0,[3,0,0],ag],c6Y=F,c6Z=G,c6u=H,c6v=[0,[3,0,0],ag],c6w=F,c6x=G,c4u="Reason.RAnyExplicit",c4v="Reason.RAnyImplicit",c4w="Reason.RNumber",c4x="Reason.RBigInt",c4y="Reason.RString",c4z="Reason.RBoolean",c4A="Reason.RMixed",c4B="Reason.REmpty",c4C="Reason.REmptyArrayElement",c4D="Reason.RVoid",c4E="Reason.RNull",c4F="Reason.RVoidedNull",c4G="Reason.RSymbol",c4H="Reason.RExports",c4I="Reason.RNullOrVoid",c4J="Reason.RConditionalType",c4K="Reason.RObject",c4L="Reason.RObjectLit",c4M="Reason.RObjectType",c4N="Reason.RMappedType",c4O="Reason.RObjectClassName",c4P="Reason.RInterfaceType",c4Q="Reason.RArray",c4R="Reason.RArrayLit",c4S="Reason.REmptyArrayLit",c4T="Reason.RArrayType",c4U="Reason.RArrayElement",c4V="Reason.RROArrayType",c4W="Reason.RTupleType",c4X="Reason.RFunctionType",c4Y="Reason.RFunctionBody",c4Z="Reason.RFunctionCallType",c40="Reason.RFunctionUnusedArgument",c41="Reason.RJSXChild",c42="Reason.RJSXText",c43="Reason.RFbt",c44="Reason.RTemplateString",c45="Reason.RUnknownString",c46="Reason.RUnionEnum",c47="Reason.RThis",c48="Reason.RThisType",c49="Reason.RImplicitInstantiation",c4_="Reason.RTooFewArgs",c4$="Reason.RTooFewArgsExpectedRest",c5a="Reason.RConstructorVoidReturn",c5b="Reason.RNewObject",c5c="Reason.RUnion",c5d="Reason.RUnionType",c5e="Reason.RIntersection",c5f="Reason.RIntersectionType",c5g="Reason.RKeySet",c5h="Reason.RAnd",c5i="Reason.RConditional",c5j="Reason.RPrototype",c5k="Reason.RObjectPrototype",c5l="Reason.RFunctionPrototype",c5m="Reason.RDestructuring",c5n="Reason.RDefaultValue",c5o="Reason.RConstructor",c5p="Reason.RDefaultConstructor",c5q="Reason.RReturn",c5r="Reason.RRegExp",c5s="Reason.RSuper",c5t="Reason.RNoSuper",c5u="Reason.RDummyPrototype",c5v="Reason.RDummyThis",c5w="Reason.RTupleMap",c5x="Reason.RObjectMap",c5y="Reason.RObjectMapi",c5z="Reason.RObjectKeyMirror",c5A="Reason.RObjectMapConst",c5B="Reason.RSomeProperty",c5C="Reason.RAsyncImport",c5D="Reason.RReadOnlyType",c5E="Reason.RObjectPatternRestProp",c5F="Reason.RArrayPatternRestProp",c5G="Reason.ROptionalChain",c5H="Reason.RReactProps",c5I="Reason.RReactClass",c5J="Reason.RReactComponent",c5K="Reason.RReactStatics",c5L="Reason.RReactDefaultProps",c5M="Reason.RReactState",c5N="Reason.RReactChildren",c5O="Reason.RReactRef",c5P="Reason.RReactSFC",c5Q="Reason.RReactConfig",c5R="Reason.RUninitialized",c5S="Reason.RPossiblyUninitialized",c5T="Reason.RUnannotatedNext",c5U="Reason.RComponentType",c5V="Reason.RRendersNothing",c5W=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RLongStringLit",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RLongStringLit@ "],c5X=[0,[4,0,0,0,0],iP],c5Y=[0,[17,0,[12,41,0]],t],c5Z=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RStringLit",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RStringLit@ "],c50=[0,[17,0,[12,41,0]],t],c51=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RNumberLit",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RNumberLit@ "],c52=[0,[3,0,0],ag],c53=[0,[17,0,[12,41,0]],t],c54=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RBigIntLit",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RBigIntLit@ "],c55=[0,[3,0,0],ag],c56=[0,[17,0,[12,41,0]],t],c57=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RBooleanLit",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RBooleanLit@ "],c58=[0,[9,0,0],fj],c59=[0,[17,0,[12,41,0]],t],c5_=[0,[18,[1,[0,[11,b,0],b]],[11,"Reason.RIndexedAccess {",[17,[0,w,0,0],0]]],"@[<2>Reason.RIndexedAccess {@,"],c5$=iu,c6a=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],c6b=[0,[9,0,0],fj],c6c=[0,[17,0,0],c],c6d=[0,[17,0,[12,E,0]],bk],c6e=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RInferType",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RInferType@ "],c6f=[0,[3,0,0],ag],c6g=[0,[17,0,[12,41,0]],t],c6h=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RMatchingProp (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RMatchingProp (@,"],c6i=[0,[3,0,0],ag],c6j=[0,[12,44,[17,[0,a,1,0],0]],I],c6k=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c6l=[0,[18,[1,[0,[11,b,0],b]],[11,"Reason.RInferredUnionElemArray {",[17,[0,w,0,0],0]]],"@[<2>Reason.RInferredUnionElemArray {@,"],c6m="instantiable",c6n=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],c6o=[0,[9,0,0],fj],c6p=[0,[17,0,0],c],c6q=[0,[17,0,[12,E,0]],bk],c6r=[0,[18,[1,[0,[11,b,0],b]],[11,"Reason.RTupleElement {",[17,[0,w,0,0],0]]],"@[<2>Reason.RTupleElement {@,"],c6s=gi,c6t=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],c6y=[0,[17,0,0],c],c6z=[0,[17,0,[12,E,0]],bk],c6A=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RTupleLength",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RTupleLength@ "],c6B=[0,[4,0,0,0,0],iP],c6C=[0,[17,0,[12,41,0]],t],c6D=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RTupleOutOfBoundsAccess",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RTupleOutOfBoundsAccess@ "],c6E=[0,[4,0,0,0,0],iP],c6F=[0,[17,0,[12,41,0]],t],c6G=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RFunction",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RFunction@ "],c6H=[0,[17,0,[12,41,0]],t],c6I=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RFunctionCall",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RFunctionCall@ "],c6J=[0,[17,0,[12,41,0]],t],c6K=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RJSXFunctionCall",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RJSXFunctionCall@ "],c6L=[0,[3,0,0],ag],c6M=[0,[17,0,[12,41,0]],t],c6N=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RJSXIdentifier (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RJSXIdentifier (@,"],c6O=[0,[3,0,0],ag],c6P=[0,[12,44,[17,[0,a,1,0],0]],I],c6Q=[0,[3,0,0],ag],c6R=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c6S=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RJSXElementProps",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RJSXElementProps@ "],c6T=[0,[3,0,0],ag],c6U=[0,[17,0,[12,41,0]],t],c6V=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RJSXElement",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RJSXElement@ "],c60=[0,[17,0,[12,41,0]],t],c61=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RUnaryOperator (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RUnaryOperator (@,"],c62=[0,[3,0,0],ag],c63=[0,[12,44,[17,[0,a,1,0],0]],I],c64=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c65=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RBinaryOperator (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RBinaryOperator (@,"],c66=[0,[3,0,0],ag],c67=[0,[12,44,[17,[0,a,1,0],0]],I],c68=[0,[12,44,[17,[0,a,1,0],0]],I],c69=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c6_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RLogical (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RLogical (@,"],c6$=[0,[3,0,0],ag],c7a=[0,[12,44,[17,[0,a,1,0],0]],I],c7b=[0,[12,44,[17,[0,a,1,0],0]],I],c7c=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c7d=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.REnum",[17,[0,a,1,0],0]]]],"(@[<2>Reason.REnum@ "],c7e=[0,[3,0,0],ag],c7f=[0,[17,0,[12,41,0]],t],c7g=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.REnumRepresentation",[17,[0,a,1,0],0]]]],"(@[<2>Reason.REnumRepresentation@ "],c7h=[0,[17,0,[12,41,0]],t],c7i=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RConstructorCall",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RConstructorCall@ "],c7j=[0,[17,0,[12,41,0]],t],c7k=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RImplicitThis",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RImplicitThis@ "],c7l=[0,[17,0,[12,41,0]],t],c7m=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RType",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RType@ "],c7n=[0,[17,0,[12,41,0]],t],c7o=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RTypeAlias (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RTypeAlias (@,"],c7p=[0,[3,0,0],ag],c7q=[0,[12,44,[17,[0,a,1,0],0]],I],c7u=[0,[12,44,[17,[0,a,1,0],0]],I],c7v=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c7w=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.ROpaqueType",[17,[0,a,1,0],0]]]],"(@[<2>Reason.ROpaqueType@ "],c7x=[0,[3,0,0],ag],c7y=[0,[17,0,[12,41,0]],t],c7z=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RTypeParam (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RTypeParam (@,"],c7A=[0,[12,44,[17,[0,a,1,0],0]],I],c7E=[0,[12,44,[17,[0,a,1,0],0]],I],c7I=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c7J=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RTypeParamDefault",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RTypeParamDefault@ "],c7K=[0,[17,0,[12,41,0]],t],c7L=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RTypeParamBound",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RTypeParamBound@ "],c7M=[0,[17,0,[12,41,0]],t],c7N=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RTypeof",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RTypeof@ "],c7O=[0,[3,0,0],ag],c7P=[0,[17,0,[12,41,0]],t],c7Q=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RMethod",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RMethod@ "],c7V=[0,[17,0,[12,41,0]],t],c7W=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RMethodCall",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RMethodCall@ "],c71=[0,[17,0,[12,41,0]],t],c72=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RParameter",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RParameter@ "],c77=[0,[17,0,[12,41,0]],t],c78=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RRestParameter",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RRestParameter@ "],c8b=[0,[17,0,[12,41,0]],t],c8c=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPatternParameter",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RPatternParameter@ "],c8d=[0,[3,0,0],ag],c8e=[0,[17,0,[12,41,0]],t],c8f=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RIdentifier",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RIdentifier@ "],c8g=[0,[17,0,[12,41,0]],t],c8h=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RUnknownParameter",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RUnknownParameter@ "],c8i=[0,[3,0,0],ag],c8j=[0,[17,0,[12,41,0]],t],c8k=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RIdentifierAssignment",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RIdentifierAssignment@ "],c8l=[0,[3,0,0],ag],c8m=[0,[17,0,[12,41,0]],t],c8n=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPropertyAssignment",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RPropertyAssignment@ "],c8s=[0,[17,0,[12,41,0]],t],c8t=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RProperty",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RProperty@ "],c8x=[0,[17,0,[12,41,0]],t],c8y=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPrivateProperty",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RPrivateProperty@ "],c8z=[0,[3,0,0],ag],c8A=[0,[17,0,[12,41,0]],t],c8B=[0,[18,[1,[0,[11,b,0],b]],[11,"Reason.RMember {",[17,[0,w,0,0],0]]],"@[<2>Reason.RMember {@,"],c8C=aZ,c8D=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],c8E=[0,[3,0,0],ag],c8F=[0,[17,0,0],c],c8G=[0,[12,59,[17,[0,a,1,0],0]],r],c8H=y8,c8I=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],c8J=[0,[3,0,0],ag],c8K=[0,[17,0,0],c],c8L=[0,[17,0,[12,E,0]],bk],c8M=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPropertyOf (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RPropertyOf (@,"],c8N=[0,[12,44,[17,[0,a,1,0],0]],I],c8O=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c8P=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPropertyIsAString",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RPropertyIsAString@ "],c8Q=[0,[17,0,[12,41,0]],t],c8R=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RMissingProperty",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RMissingProperty@ "],c8V=[0,[17,0,[12,41,0]],t],c8W=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RUnknownProperty",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RUnknownProperty@ "],c80=[0,[17,0,[12,41,0]],t],c81=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RUnknownUnspecifiedProperty",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RUnknownUnspecifiedProperty@ "],c82=[0,[17,0,[12,41,0]],t],c83=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RUndefinedProperty",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RUndefinedProperty@ "],c84=[0,[17,0,[12,41,0]],t],c85=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RNameProperty",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RNameProperty@ "],c86=[0,[17,0,[12,41,0]],t],c87=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RMissingAbstract",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RMissingAbstract@ "],c88=[0,[17,0,[12,41,0]],t],c89=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RFieldInitializer",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RFieldInitializer@ "],c8_=[0,[3,0,0],ag],c8$=[0,[17,0,[12,41,0]],t],c9a=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RUntypedModule",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RUntypedModule@ "],c9b=[0,[3,0,0],ag],c9c=[0,[17,0,[12,41,0]],t],c9d=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RNamedImportedType (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RNamedImportedType (@,"],c9e=[0,[3,0,0],ag],c9f=[0,[12,44,[17,[0,a,1,0],0]],I],c9g=[0,[3,0,0],ag],c9h=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c9i=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RImportStarType",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RImportStarType@ "],c9j=[0,[3,0,0],ag],c9k=[0,[17,0,[12,41,0]],t],c9l=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RImportStarTypeOf",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RImportStarTypeOf@ "],c9m=[0,[3,0,0],ag],c9n=[0,[17,0,[12,41,0]],t],c9o=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RImportStar",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RImportStar@ "],c9p=[0,[3,0,0],ag],c9q=[0,[17,0,[12,41,0]],t],c9r=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RDefaultImportedType (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RDefaultImportedType (@,"],c9s=[0,[3,0,0],ag],c9t=[0,[12,44,[17,[0,a,1,0],0]],I],c9u=[0,[3,0,0],ag],c9v=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c9w=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RCode",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RCode@ "],c9x=[0,[3,0,0],ag],c9y=[0,[17,0,[12,41,0]],t],c9z=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RCustom",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RCustom@ "],c9A=[0,[3,0,0],ag],c9B=[0,[17,0,[12,41,0]],t],c9C=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPolyType",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RPolyType@ "],c9D=[0,[17,0,[12,41,0]],t],c9E=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RExactType",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RExactType@ "],c9F=[0,[17,0,[12,41,0]],t],c9G=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.ROptional",[17,[0,a,1,0],0]]]],"(@[<2>Reason.ROptional@ "],c9H=[0,[17,0,[12,41,0]],t],c9I=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RMaybe",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RMaybe@ "],c9J=[0,[17,0,[12,41,0]],t],c9K=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RRestArrayLit",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RRestArrayLit@ "],c9L=[0,[17,0,[12,41,0]],t],c9M=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RAbstract",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RAbstract@ "],c9N=[0,[17,0,[12,41,0]],t],c9O=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RTypeApp",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RTypeApp@ "],c9P=[0,[17,0,[12,41,0]],t],c9Q=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RTypeAppImplicit",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RTypeAppImplicit@ "],c9R=[0,[17,0,[12,41,0]],t],c9S=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RThisTypeApp",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RThisTypeApp@ "],c9T=[0,[17,0,[12,41,0]],t],c9U=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RExtends",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RExtends@ "],c9V=[0,[17,0,[12,41,0]],t],c9W=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RClass",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RClass@ "],c9X=[0,[17,0,[12,41,0]],t],c9Y=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RStatics",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RStatics@ "],c9Z=[0,[17,0,[12,41,0]],t],c90=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RSuperOf",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RSuperOf@ "],c91=[0,[17,0,[12,41,0]],t],c92=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RFrozen",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RFrozen@ "],c93=[0,[17,0,[12,41,0]],t],c94=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RBound",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RBound@ "],c95=[0,[17,0,[12,41,0]],t],c96=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPredicateOf",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RPredicateOf@ "],c97=[0,[17,0,[12,41,0]],t],c98=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPredicateCall",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RPredicateCall@ "],c99=[0,[17,0,[12,41,0]],t],c9_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPredicateCallNeg",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RPredicateCallNeg@ "],c9$=[0,[17,0,[12,41,0]],t],c_a=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RRefined",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RRefined@ "],c_b=[0,[17,0,[12,41,0]],t],c_c=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RRefinedElement",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RRefinedElement@ "],c_d=[0,[17,0,[12,41,0]],t],c_e=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RIncompatibleInstantiation",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RIncompatibleInstantiation@ "],c_f=[0,[3,0,0],ag],c_g=[0,[17,0,[12,41,0]],t],c_h=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RSpreadOf",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RSpreadOf@ "],c_i=[0,[17,0,[12,41,0]],t],c_j=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPartialOf",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RPartialOf@ "],c_k=[0,[17,0,[12,41,0]],t],c_l=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RRequiredOf",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RRequiredOf@ "],c_m=[0,[17,0,[12,41,0]],t],c_n=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RCommonJSExports",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RCommonJSExports@ "],c_o=[0,[3,0,0],ag],c_p=[0,[17,0,[12,41,0]],t],c_q=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RModule",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RModule@ "],c_r=[0,[17,0,[12,41,0]],t],c_s=[0,[18,[1,[0,[11,b,0],b]],[11,"Reason.RReactElement {",[17,[0,w,0,0],0]]],"@[<2>Reason.RReactElement {@,"],c_t="name_opt",c_u=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],c_y=[0,[17,0,0],c],c_z=[0,[12,59,[17,[0,a,1,0],0]],r],c_A="from_component_syntax",c_B=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],c_C=[0,[9,0,0],fj],c_D=[0,[17,0,0],c],c_E=[0,[17,0,[12,E,0]],bk],c_F=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RReactChildrenOrType",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RReactChildrenOrType@ "],c_G=[0,[17,0,[12,41,0]],t],c_H=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RReactChildrenOrUndefinedOrType",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RReactChildrenOrUndefinedOrType@ "],c_I=[0,[17,0,[12,41,0]],t],c_J=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPossiblyMissingPropFromObj (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RPossiblyMissingPropFromObj (@,"],c_K=[0,[12,44,[17,[0,a,1,0],0]],I],c_L=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c_M=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RUnionBranching (",[17,[0,w,0,0],0]]]],"(@[<2>Reason.RUnionBranching (@,"],c_N=[0,[12,44,[17,[0,a,1,0],0]],I],c_O=[0,[4,0,0,0,0],iP],c_P=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],c_Q=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RTypeGuardParam",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RTypeGuardParam@ "],c_R=[0,[3,0,0],ag],c_S=[0,[17,0,[12,41,0]],t],c_T=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RComponent",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RComponent@ "],c_U=[0,[17,0,[12,41,0]],t],c_V=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RPropsOfComponent",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RPropsOfComponent@ "],c_W=[0,[17,0,[12,41,0]],t],c_X=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RInstanceOfComponent",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RInstanceOfComponent@ "],c_Y=[0,[17,0,[12,41,0]],t],c_Z=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RRenderTypeOfComponent",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RRenderTypeOfComponent@ "],c_0=[0,[17,0,[12,41,0]],t],c_1=[0,[18,[1,[0,[11,b,0],b]],[11,"Reason.RDefaultTypeArgumentAtIndex {",[17,[0,w,0,0],0]]],"@[<2>Reason.RDefaultTypeArgumentAtIndex {@,"],c_2="desc_type",c_3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],c_4=[0,[17,0,0],c],c_5=[0,[12,59,[17,[0,a,1,0],0]],r],c_6="desc_default",c_7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],c_8=[0,[17,0,0],c],c_9=[0,[12,59,[17,[0,a,1,0],0]],r],c__="position",c_$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],c$a=[0,[4,0,0,0,0],iP],c$b=[0,[17,0,0],c],c$c=[0,[17,0,[12,E,0]],bk],c$d=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RRenderType",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RRenderType@ "],c$e=[0,[17,0,[12,41,0]],t],c$f=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RRenderMaybeType",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RRenderMaybeType@ "],c$g=[0,[17,0,[12,41,0]],t],c$h=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Reason.RRenderStarType",[17,[0,a,1,0],0]]]],"(@[<2>Reason.RRenderStarType@ "],c$i=[0,[17,0,[12,41,0]],t],c4r=[0,[12,46,[2,0,0]],are],c4s=[0,[11,".$module__",[2,0,0]],".$module__%s"],deG=Sr,deF=fr,deE=[0,[15,0],y],dfc="Hint_Placeholder",dfd=[0,[11,"Hint_t (",[2,0,[12,41,0]]],"Hint_t (%s)"],dfe=_,dff=[0,[11,"Hint_Decomp (",[2,0,[11,")(",[2,0,[12,41,0]]]]],"Hint_Decomp (%s)(%s)"],dfg=[0,kl],dfh=[0,[12,91,[2,0,[12,93,0]]],vf],de7=rV,de4=rV,deK="Decomp_ObjSpread",deL="Decomp_EmptyArrayElement",deM="Decomp_Await",deN="Decomp_MethodElem",deO="Decomp_CallNew",deP="Decomp_CallSuper",deQ="Decomp_FuncReturn",deR="Comp_ImmediateFuncCall",deS="Comp_MaybeT",deT="Decomp_JsxProps",deU="Decomp_JsxRef",deV="Decomp_Promise",deW="Decomp_ObjProp",deX="Decomp_ObjComputed",deY="Decomp_PrivateProp",deZ=[0,[11,"Decomp_ArrElement (",[4,0,0,0,[12,41,0]]],"Decomp_ArrElement (%d)"],de0="Decomp_ArrElement (no index)",de1=[0,[11,"Decomp_ArrSpread (",[4,0,0,0,[12,41,0]]],"Decomp_ArrSpread (%d)"],de2="Decomp_MethodName",de3="Decomp_MethodPrivateName",de5=_,de6=[0,[11,"Decomp_FuncParam ([",[2,0,[11,vl,[4,0,0,0,[11,_,[2,0,[12,41,0]]]]]]],"Decomp_FuncParam ([%s], %d, %s)"],de8=_,de9=[0,[11,"Decomp_FuncRest (",[2,0,[11,_,[2,0,[12,41,0]]]]],"Decomp_FuncRest (%s, %s)"],de_="Decomp_SentinelRefinement",de$="Simplify_Callee",dfa="Instantiate_Callee",dfb="Instantiate_Component",deH="type guard kind",deI="pred kind",deJ="no pred",dfi="unexpected empty stack",dfj=[0,"src/common/tarjan/tarjan.ml",87,4],dfk="Expected_annotation_sort.ArrayPattern",dfl="Expected_annotation_sort.ObjectPattern",dfm="Expected_annotation_sort.FunctionReturn",dfn=[0,[18,[1,[0,[11,b,0],b]],[11,"Expected_annotation_sort.Property {",[17,[0,w,0,0],0]]],"@[<2>Expected_annotation_sort.Property {@,"],dfo=gi,dfp=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dfq=[0,[3,0,0],ag],dfr=[0,[17,0,0],c],dfs=[0,[17,0,[12,E,0]],bk],dft=[0,[18,[1,[0,[11,b,0],b]],[11,"Expected_annotation_sort.VariableDefinition {",[17,[0,w,0,0],0]]],"@[<2>Expected_annotation_sort.VariableDefinition {@,"],dfu=gi,dfv=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dfw=[0,[3,0,0],ag],dfx=[0,[17,0,0],c],dfy=[0,[17,0,[12,E,0]],bk],dfz="array pattern",dfA="object pattern",dfB="function return",dfC=[0,[11,S6,[2,0,[12,96,0]]],aVO],dfD=[0,[11,"declaration of variable `",[2,0,[12,96,0]]],"declaration of variable `%s`"],dfX=[0,[15,0],y],dfF=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Signature_error.ExpectedAnnotation (",[17,[0,w,0,0],0]]]],"(@[<2>Signature_error.ExpectedAnnotation (@,"],dfG=[0,[12,44,[17,[0,a,1,0],0]],I],dfH=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],dfI=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Signature_error.UnexpectedObjectKey (",[17,[0,w,0,0],0]]]],"(@[<2>Signature_error.UnexpectedObjectKey (@,"],dfJ=[0,[12,44,[17,[0,a,1,0],0]],I],dfK=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],dfL=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Signature_error.UnexpectedArraySpread (",[17,[0,w,0,0],0]]]],"(@[<2>Signature_error.UnexpectedArraySpread (@,"],dfM=[0,[12,44,[17,[0,a,1,0],0]],I],dfN=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],dfO=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Signature_error.UnexpectedArrayHole",[17,[0,a,1,0],0]]]],"(@[<2>Signature_error.UnexpectedArrayHole@ "],dfP=[0,[17,0,[12,41,0]],t],dfQ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Signature_error.EmptyArray",[17,[0,a,1,0],0]]]],"(@[<2>Signature_error.EmptyArray@ "],dfR=[0,[17,0,[12,41,0]],t],dfS=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Signature_error.EmptyObject",[17,[0,a,1,0],0]]]],"(@[<2>Signature_error.EmptyObject@ "],dfT=[0,[17,0,[12,41,0]],t],dfU=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Signature_error.UnexpectedExpression (",[17,[0,w,0,0],0]]]],"(@[<2>Signature_error.UnexpectedExpression (@,"],dfV=[0,[12,44,[17,[0,a,1,0],0]],I],dfW=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],dfY="Polarity.Negative",dfZ="Polarity.Neutral",df0="Polarity.Positive",df4=kN,df5=g,df6=mB,df1="contravariant",df2=Tb,df3="covariant",df$=g,df7=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],df8=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,fM],df9=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],df_=[0,fM],dga=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,"no",du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,fM],dgb=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,fM],dgp=[0,0],dgo=[0,1],dgn="Illegal mapped type",dgm=[0,0],dgl=[0,1],dgk=[0,1],dgj=[0,1],dgi=[0,1],dgh=[0,1],dge=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],dgq=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,hK,eo,hT,ei,eR,hD,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,hI,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,hz,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,hE,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,hH,bw,hL,a5,hG,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,hF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,hQ,hM,hN,hR,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,hS,cg,a6,b0,eC,dc,b5,bW,cL,as,hP,bC,hJ,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],dgr=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,a2p,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],dgs=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,ee,bO,bo,bR,dX,e_,eL,bz,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,hF,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,a2p,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],dgt=[0,hO,hU],dgu=[0,"infer_types_rev"],dgB=[0,[2,0,[11,".graphql",0]],"%s.graphql"],dgC=g,dgD=[1,1],dgA=[1,0],dgw="^[ \t\n\r,]*#.*",dgy="^[ \t\n\r,]*\\(query\\|mutation\\|subscription\\|fragment\\)[ \t\n\r,]+\\([_A-Za-z][_0-9A-Za-z]*\\)",dgH=aTk,dgG=aTk,dgF="Internal error: malformed predicate declare function",dgE=rV,dgJ="Internal error: Cannot have both predicates and type guards",dgI=[0,0,0],dgK=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,hK,eo,hT,ei,eR,hD,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,hI,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,hz,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,hE,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,hH,bw,hL,a5,hG,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,hF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,hQ,hM,hN,hR,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,hS,cg,a6,b0,eC,dc,b5,bW,cL,as,hP,bC,hJ,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],dgL=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],dgM=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,ee,bO,bo,bR,dX,e_,eL,bz,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,hF,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],dgN=[0,hO,hU],dgS="Bindings.Var",dgT="Bindings.Let",dgU="Bindings.ThisAnnot",dgV="Bindings.Const",dgW="Bindings.DeclaredVar",dgX="Bindings.DeclaredLet",dgY="Bindings.DeclaredConst",dgZ="Bindings.Enum",dg0="Bindings.Function",dg1="Bindings.Class",dg2="Bindings.DeclaredClass",dg3="Bindings.Parameter",dg4="Bindings.CatchParameter",dg5="Bindings.Import",dg6="Bindings.Internal",dg7="Bindings.GeneratorNext",dg8="Bindings.Component",dg9="Bindings.ComponentParameter",dg_=[0,[18,[1,[0,[11,b,0],b]],[11,"Bindings.Type {",[17,[0,w,0,0],0]]],"@[<2>Bindings.Type {@,"],dg$=aZj,dha=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dhb=[0,[9,0,0],fj],dhc=[0,[17,0,0],c],dhd=[0,[17,0,[12,E,0]],bk],dhe=[0,[18,[1,[0,[11,b,0],b]],[11,"Bindings.DeclaredFunction {",[17,[0,w,0,0],0]]],"@[<2>Bindings.DeclaredFunction {@,"],dhf=ax,dhg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dhh=[0,[9,0,0],fj],dhi=[0,[17,0,0],c],dhj=[0,[17,0,[12,E,0]],bk],dhE=[0,13],dhD=[0,13],dhC=[0,13],dhA=g,dhB=g,dhz="Only lets and consts allowed",dhy=[0,1],dhx=[0,1],dhw=[0,1],dhv=[0,9],dhu=[0,7],dhs=g,dht=g,dhk=[0,a3O],dhl=[0,"lexical"],dhm=[0,fM,aqQ,amZ,ar3,akz,atk,aqk,ahm,amH,amj,ea,aS,cM,ev,d9,e5,a1,cS,Se,SL,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,TG,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,QV,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],dhn=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],dho=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,QV,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,TG,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,SL,Se,cS,a1,e5,d9,ev,cM,aS,ea,amj,amH,ahm,aqk,atk,akz,ar3,amZ,aqQ,fM],dhp=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,QV,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,TG,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,SL,Se,cS,a1,e5,d9,ev,cM,aS,ea,"add_var_binding","add_type_binding",amj,amH,ahm,aqk,atk,akz,ar3,amZ,aqQ,fM],dhq=[0,a3O,fM],dhr=[0,fM],diH=" not found",diI="Scope ",diF=[0,1],diD=[0,[15,0],y],dit=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],diu="Scope_api.Make.max_distinct",div=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],diw=[0,[4,0,0,0,0],iP],dix=[0,[17,0,0],c],diy=[0,[12,59,[17,[0,a,1,0],0]],r],diz="scopes",diA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],diB=[0,[17,0,0],c],diC=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],dis=[0,[15,0],y],dh8=H,dh9=[0,[4,0,0,0,0],iP],dh_=F,dh$=G,dh0=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],dh1="Scope_api.Make.Scope.lexical",dh2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dh3=[0,[9,0,0],fj],dh4=[0,[17,0,0],c],dh5=[0,[12,59,[17,[0,a,1,0],0]],r],dh6="parent",dh7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dia=[0,[17,0,0],c],dib=[0,[12,59,[17,[0,a,1,0],0]],r],dic="defs",did=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],die=[0,[17,0,0],c],dif=[0,[12,59,[17,[0,a,1,0],0]],r],dig="locals",dih=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dii=[0,[17,0,0],c],dij=[0,[12,59,[17,[0,a,1,0],0]],r],dik="globals",dil=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dim=[0,[17,0,0],c],din=[0,[12,59,[17,[0,a,1,0],0]],r],dio=gE,dip=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],diq=[0,[17,0,0],c],dir=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],dhZ=[0,[15,0],y],dhY=[0,[15,0],y],dhF=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],dhG="Scope_api.Make.Def.locs",dhH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dhI=[0,[17,0,0],c],dhJ=[0,[12,59,[17,[0,a,1,0],0]],r],dhK=gi,dhL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dhM=[0,[4,0,0,0,0],iP],dhN=[0,[17,0,0],c],dhO=[0,[12,59,[17,[0,a,1,0],0]],r],dhP="actual_name",dhQ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dhR=[0,[3,0,0],ag],dhS=[0,[17,0,0],c],dhT=[0,[12,59,[17,[0,a,1,0],0]],r],dhU=qk,dhV=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dhW=[0,[17,0,0],c],dhX=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],diE="Scope_api.Make(L).Missing_def",diG=[0,0,0],di2=[0,2],di1=[0,1],di0=[0,1],diZ=[0,1],diY=[0,1],diX=[0,1],diW=[0,1],diV=[0,1],diU=[0,0],diT=[0,0],diS=[0,1],diR=[0,1],diN=g,diO=g,diP=g,diQ=g,di3=g,diK=[0,aH,n7,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,sH,cf,eE,eP,b9,dp,qU,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,"scoped_type_params","scoped_infer_type_params",qo,qc,qn,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,C9,"new_scope",du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,nv,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,nf,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,tK,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,"function_expression_without_name",bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,sM,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,nH,d8,ek,eT,eR,ei,eo,cW,dy,st,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,sC,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,fM],diL=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,nf,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,n7,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,nH,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],diM=[0,"env","current_scope_opt","scope_counter","uses","counter"],djf=[0,"src/analysis/ssa_builder.ml",qm,11],djg=[0,0],djj=Te,dji=Td,djh=g,dja="Only an unresolved REF can be resolved",djb=[1,0],djd="An unresolved REF cannot be simplified",djc="A normalized value cannot be a PHI or a resolved REF",di$=[1,0],di_=[1,0],dje="Ssa_builder.Make(L)(Ssa_api)(Scope_builder).AbruptCompletion.Exn",di4=[0,cz,eA,dg,cl,ez,aJ,sA,eD,xo,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,xh,cm,dU,aR,tY,a9,me,nv,b$,d6,eO,dL,em,wM,bB,bF,ck,bS,bx,e1,dW,nf,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,w9,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,t5,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,xf,rZ,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,n7,dA,e5,e$,dH,xb,bg,b4,ej,e9,dk,eI,tG,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,t4,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,qo,cY,cL,bH,ga,dY,tM,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,wL,eo,cs,dq,tV,ep,eU,et,dM,cA,dD,dm,nH,c5,cu,qn,cE,a$,wP,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,qc,bN,e0,cG,bU,tX,b9,bt,aX,eb,co,sK,bM,bw,dC,e7,cn,qU,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,w_,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,xm,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,tR,bG,c2,dV,a_,b1],di5=[0,me,sK,hx,sA,akX,ajH],di6=[0,aH,n7,bO,dI,a9,ay,be,eB,bP,me,cV,ga,d4,sK,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,sH,cf,eE,eP,b9,dp,qU,dW,aK,bH,ct,bK,eS,cz,H9,sA,dr,dR,gb,a0,qo,qc,qn,tM,t4,aD,Io,wM,ew,cX,bd,cT,tG,IP,cP,co,cA,ax,DS,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,wL,Hv,eH,wP,w9,xo,t5,dU,eW,b1,cw,cb,cp,ey,nv,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,nf,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,tK,xf,xh,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,tX,xb,bV,dX,e1,bL,e3,cr,bG,b$,cZ,tY,bl,b4,sM,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,tR,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,xm,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,nH,d8,tV,ek,eT,eR,ei,eo,cW,dy,st,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,sC,bZ,d7,cS,a1,w_,e5,d9,ev,cM,aS,ea,rZ,fM],di7=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,sC,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,st,dy,cW,eo,ei,eR,eT,ek,d8,nH,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,sM,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,tK,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,nf,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,nv,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,qn,qc,qo,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,qU,dp,b9,eP,eE,cf,sH,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,n7,aH],di8=[0,fM],djx=alS,djy=alS,djz=aoS,djA=aoS,djw=[0,0,0],dju=a3I,djt=a3I,djs="match on expr.callee makes this impossible",djr=g,djq=alS,djp=aoS,djk=[0,fM,rZ,ea,aS,cM,ev,d9,e5,w_,a1,cS,d7,bZ,sC,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,st,dy,cW,eo,ei,eR,eT,ek,tV,d8,nH,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,xm,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,tR,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,sM,b4,bl,tY,cZ,b$,bG,cr,e3,bL,e1,dX,bV,xb,tX,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,xh,xf,tK,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,nf,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,nv,ey,cp,cb,cw,b1,eW,dU,t5,xo,w9,wP,eH,Hv,wL,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,DS,ax,cA,co,cP,IP,tG,cT,bd,cX,ew,wM,Io,aD,t4,tM,qn,qc,qo,a0,gb,dR,dr,sA,H9,cz,eS,bK,ct,bH,aK,dW,qU,dp,b9,eP,eE,cf,sH,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,sK,d4,ga,cV,me,bP,eB,be,ay,a9,dI,bO,n7,aH],djl=[0,afF,"read_loc_metadata",agC],djm=[0,aH,n7,bO,dI,a9,ay,be,eB,bP,me,cV,ga,d4,sK,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,agC,sH,cf,eE,eP,b9,dp,qU,dW,aK,bH,ct,bK,eS,cz,H9,sA,dr,dR,gb,a0,qo,qc,qn,tM,t4,aD,Io,wM,ew,cX,bd,cT,tG,IP,cP,co,cA,ax,DS,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,wL,Hv,a24,eH,wP,w9,xo,t5,dU,eW,b1,cw,cb,cp,ey,nv,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,aXV,d0,c8,nf,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,tK,xf,xh,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,tX,xb,bV,dX,e1,bL,e3,cr,bG,b$,cZ,tY,bl,b4,afF,sM,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,a3T,tR,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,xm,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,nH,d8,tV,ek,eT,eR,ei,eo,cW,dy,st,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,sC,bZ,d7,cS,a1,w_,e5,d9,ev,cM,aS,ea,rZ,"add_this_escape_error",fM],djn=[0,me,sK,sA,ajH,hx,fM,akX],djo=[0,cz,eA,dg,agC,cl,ez,aJ,sA,eD,xo,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,xh,cm,dU,aR,tY,a9,me,nv,b$,d6,eO,dL,em,wM,bB,bF,ck,bS,bx,e1,dW,nf,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,w9,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,t5,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,aXV,xf,rZ,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,n7,afF,dA,e5,e$,dH,xb,bg,b4,ej,a3T,e9,dk,eI,tG,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,t4,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,DS,c4,cw,aB,aD,qo,cY,cL,bH,ga,dY,tM,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,wL,eo,cs,dq,tV,ep,eU,et,dM,cA,dD,dm,nH,c5,cu,qn,cE,a$,a24,wP,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,qc,bN,e0,cG,bU,tX,b9,bt,aX,eb,co,sK,bM,bw,dC,e7,cn,qU,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,w_,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,xm,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,tR,bG,c2,dV,a_,b1],djO=gF,djN=RW,djM=[1,0],djL=[1,0],djJ=g,djK=g,djB=[0,"scope_info",a3i],djC=[0,aH,bO,dI,a3i,"visit_requires_with_bindings",a9,ay,be,eB,bP,"update_file_sig",cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,"set_cjs_exports",gb,a0,aD,"require_pattern",ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,"handle_require","handle_cjs_default_export","handle_call",aZ1,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,"add_tolerable_error","add_require",a0u,"add_exports","add_cjs_export",fM],djD=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],djE=[0,cz,eA,dg,cl,a0u,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,aZ1,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],djF=[0,fM],djG=[0,0,[0,0]],djQ="Jsoo_runtime.Error.Exn",djR=aqT,djT="parseInt",djU="5.1.1",djV="v0.24.0-14437-g924766a",fnT=mB,dj3=[0,0],djX="use_strict",djY=anm,djZ="esproposal_decorators",dj0=aWI,dj1="components",dj$=fr,dka=[0,3],dkb=[0,0],dkc=[0,1],dkd=[1,0],dkg=[0,2],dkh=[0,1],dkf=[0,0],dke=[0,0],dki=[0,[11,"File ",[2,0,[11," is malformed",0]]],"File %s is malformed"],dkj=g,dj4="[ \t\r\n\\*/]+",dj6="\\(\r\n\\|\n\\|\r\\)",dj8="^@",dkJ=IS,dkL=IS,dkM=IS,dkK=IS,dkI=IS,dkN=g,dkH="Missing lexical child at expected position",dk6=[0,[1,0]],dk5=[0,[0,0,0]],dk4=[0,0,0],dk3=[3,0],dk2=[1,0],dk1=[1,0],dk0=[1,0],dkZ=[0,0,0],dkY=f0,dkV=[1,0],dkW=[0,0,0],dkX=Te,dkU=Td,dkR=[1,0],dkS=[0,0,0],dkT=Te,dkQ=Td,dkP=[0,0,0],dkO=g,dk7=g,dk8=g,dkG="Popping to empty stack",dkE=[0,ah9,481,10],dkC="Inconsistent states",dkD=[0,ah9,437,10],dkF=[0,ah9,494,6],dkA="Root environment should always be Var",dkB=aVH,dky="Root environment should always be in Var",dkz=aVH,dkx="No valid scope for variable",dkw="Environment invariant violated: ",dku=[0,0],dkv=[0,0],dkk=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],dkl=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,zg,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,y9,zo,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,zV,fM],dkm=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,a4e,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,zg,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,y9,zo,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,zV,fM],dkn=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,zg,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,y9,zo,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,aTQ,zV,fM],dko=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,zg,cK,b2,bK,ba,bb,bY,eH,ec,eR,zV,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,zo,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,y9,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],dkp=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,zg,cK,b2,bK,ba,bb,bY,eH,ec,eR,zV,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,a4e,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,zo,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,y9,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],dkq=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,aTQ,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,zg,cK,b2,bK,ba,bb,bY,eH,ec,eR,zV,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,zo,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,y9,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],dkr="Find_providers.ImpossibleState",dk$="Env_api.Make.OrdinaryNameLoc",dla="Env_api.Make.FunctionParamLoc",dlb="Env_api.Make.PatternLoc",dlc="Env_api.Make.ExpressionLoc",dld="Env_api.Make.ArrayProviderLoc",dle="Env_api.Make.FunctionThisLoc",dlf="Env_api.Make.ClassSelfLoc",dlg="Env_api.Make.ClassInstanceThisLoc",dlh="Env_api.Make.ClassStaticThisLoc",dli="Env_api.Make.ClassInstanceSuperLoc",dlj="Env_api.Make.ClassStaticSuperLoc",dlk="Env_api.Make.CJSModuleExportsLoc",dll=[0,[15,0],y],dnD="Truthy",dnE=ag8,dnF="Undefined",dnG="Maybe",dnH=ams,dnI=pj,dnJ=sS,dnK=[0,[11,"And (",[2,0,[11,_,[2,0,[12,41,0]]]]],"And (%s, %s)"],dnL=[0,[11,"Or (",[2,0,[11,_,[2,0,[12,41,0]]]]],"Or (%s, %s)"],dnM=[0,[11,S9,[2,0,[12,41,0]]],Ug],dnN=wS,dnO=IT,dnP=oW,dnQ=pS,dnR=qj,dnS=rU,dnT=[0,[11,S9,[2,0,[12,41,0]]],Ug],dnU=[0,[11,S9,[2,0,[12,41,0]]],Ug],dnV=[0,[11,S9,[2,0,[12,41,0]]],Ug],dnW=[0,[11,"SentinelR ",[2,0,0]],"SentinelR %s"],dnX=[0,[11,"PropNullishR ",[2,0,0]],"PropNullishR %s"],dnY=[0,[11,"LatentR (index = ",[4,3,0,0,[12,41,0]]],"LatentR (index = %i)"],dnZ=[0,[11,"PropExistsR (",[2,0,[12,41,0]]],"PropExistsR (%s)"],dnC=[1,"Empty env info"],dnB=[0,[15,0],y],dnd=H,dne=F,dnf=G,dmL=H,dmM=[0,[7,0,0,0,[12,76,0]],C5],dmN=F,dmO=G,dmK=[0,[12,40,[18,[1,[0,0,g]],0]],an],dmP=[0,[12,44,[17,[0,a,1,0],0]],I],dmQ=[0,[3,0,0],ag],dmR=[0,[17,0,[12,41,0]],t],dmr=[0,[12,40,[18,[1,[0,0,g]],0]],an],dms=[0,[8,[0,0,5],0,0,0],zp],dmt=[0,[12,44,[17,[0,a,1,0],0]],I],dmu=[0,[3,0,0],ag],dmv=[0,[17,0,[12,41,0]],t],dlm="TruthyR",dln="NullR",dlo="UndefinedR",dlp="MaybeR",dlq="IsArrayR",dlr="FunctionR",dls="ObjectR",dlt=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"AndR (",[17,[0,w,0,0],0]]]],"(@[<2>AndR (@,"],dlu=[0,[12,44,[17,[0,a,1,0],0]],I],dlv=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],dlw=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"OrR (",[17,[0,w,0,0],0]]]],"(@[<2>OrR (@,"],dlx=[0,[12,44,[17,[0,a,1,0],0]],I],dly=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],dlz=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"NotR",[17,[0,a,1,0],0]]]],"(@[<2>NotR@ "],dlA=[0,[17,0,[12,41,0]],t],dlB=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"InstanceOfR",[17,[0,a,1,0],0]]]],"(@[<2>InstanceOfR@ "],dlC=[0,[17,0,[12,41,0]],t],dlD=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"BoolR",[17,[0,a,1,0],0]]]],"(@[<2>BoolR@ "],dlE=[0,[17,0,[12,41,0]],t],dlF=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"NumberR",[17,[0,a,1,0],0]]]],"(@[<2>NumberR@ "],dlG=[0,[17,0,[12,41,0]],t],dlH=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"BigIntR",[17,[0,a,1,0],0]]]],"(@[<2>BigIntR@ "],dlI=[0,[17,0,[12,41,0]],t],dlJ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"StringR",[17,[0,a,1,0],0]]]],"(@[<2>StringR@ "],dlK=[0,[17,0,[12,41,0]],t],dlL=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SymbolR",[17,[0,a,1,0],0]]]],"(@[<2>SymbolR@ "],dlM=[0,[17,0,[12,41,0]],t],dlN=[0,[18,[1,[0,[11,b,0],b]],[11,"SingletonBoolR {",[17,[0,w,0,0],0]]],"@[<2>SingletonBoolR {@,"],dlO=gE,dlP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dlQ=[0,[17,0,0],c],dlR=[0,[12,59,[17,[0,a,1,0],0]],r],dlS=SC,dlT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dlU=[0,[9,0,0],fj],dlV=[0,[17,0,0],c],dlW=[0,[12,59,[17,[0,a,1,0],0]],r],dlX=RT,dlY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dlZ=[0,[9,0,0],fj],dl0=[0,[17,0,0],c],dl1=[0,[17,0,[12,E,0]],bk],dl2=[0,[18,[1,[0,[11,b,0],b]],[11,"SingletonStrR {",[17,[0,w,0,0],0]]],"@[<2>SingletonStrR {@,"],dl3=gE,dl4=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dl5=[0,[17,0,0],c],dl6=[0,[12,59,[17,[0,a,1,0],0]],r],dl7=SC,dl8=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dl9=[0,[9,0,0],fj],dl_=[0,[17,0,0],c],dl$=[0,[12,59,[17,[0,a,1,0],0]],r],dma=RT,dmb=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dmc=[0,[3,0,0],ag],dmd=[0,[17,0,0],c],dme=[0,[17,0,[12,E,0]],bk],dmf=[0,[18,[1,[0,[11,b,0],b]],[11,"SingletonNumR {",[17,[0,w,0,0],0]]],"@[<2>SingletonNumR {@,"],dmg=gE,dmh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dmi=[0,[17,0,0],c],dmj=[0,[12,59,[17,[0,a,1,0],0]],r],dmk=SC,dml=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dmm=[0,[9,0,0],fj],dmn=[0,[17,0,0],c],dmo=[0,[12,59,[17,[0,a,1,0],0]],r],dmp=RT,dmq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dmw=[0,[17,0,0],c],dmx=[0,[17,0,[12,E,0]],bk],dmy=[0,[18,[1,[0,[11,b,0],b]],[11,"SingletonBigIntR {",[17,[0,w,0,0],0]]],"@[<2>SingletonBigIntR {@,"],dmz=gE,dmA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dmB=[0,[17,0,0],c],dmC=[0,[12,59,[17,[0,a,1,0],0]],r],dmD=SC,dmE=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dmF=[0,[9,0,0],fj],dmG=[0,[17,0,0],c],dmH=[0,[12,59,[17,[0,a,1,0],0]],r],dmI=RT,dmJ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dmS=[0,[17,0,0],c],dmT=[0,[17,0,[12,E,0]],bk],dmU=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SentinelR (",[17,[0,w,0,0],0]]]],"(@[<2>SentinelR (@,"],dmV=[0,[3,0,0],ag],dmW=[0,[12,44,[17,[0,a,1,0],0]],I],dmX=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],dmY=[0,[18,[1,[0,[11,b,0],b]],[11,"PropNullishR {",[17,[0,w,0,0],0]]],"@[<2>PropNullishR {@,"],dmZ=aW6,dm0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dm1=[0,[3,0,0],ag],dm2=[0,[17,0,0],c],dm3=[0,[12,59,[17,[0,a,1,0],0]],r],dm4=gE,dm5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dm6=[0,[17,0,0],c],dm7=[0,[17,0,[12,E,0]],bk],dm8=[0,[18,[1,[0,[11,b,0],b]],[11,"LatentR {",[17,[0,w,0,0],0]]],"@[<2>LatentR {@,"],dm9="func",dm_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dm$=[0,[17,0,0],c],dna=[0,[12,59,[17,[0,a,1,0],0]],r],dnb=rP,dnc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dng=[0,[17,0,0],c],dnh=[0,[12,59,[17,[0,a,1,0],0]],r],dni=pL,dnj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dnk=[0,[17,0,0],c],dnl=[0,[12,59,[17,[0,a,1,0],0]],r],dnm=pO,dnn=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dno=[0,[4,0,0,0,0],iP],dnp=[0,[17,0,0],c],dnq=[0,[17,0,[12,E,0]],bk],dnr=[0,[18,[1,[0,[11,b,0],b]],[11,"PropExistsR {",[17,[0,w,0,0],0]]],"@[<2>PropExistsR {@,"],dns=aW6,dnt=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dnu=[0,[3,0,0],ag],dnv=[0,[17,0,0],c],dnw=[0,[12,59,[17,[0,a,1,0],0]],r],dnx=gE,dny=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],dnz=[0,[17,0,0],c],dnA=[0,[17,0,[12,E,0]],bk],dk_="Env_api.Make(L)(Ssa_api)(Scope_api)(Provider_api).Env_invariant",dn5="(uninitialized)",dn6="(undeclared)",dn7="(declared but skipped)",dn8=[0,[11,"projection at ",[2,0,0]],"projection at %s"],dn9="This(function)",dn_="This(global)",dn$="This(illegal)",doa="This(instance)",dob="This(static)",doc="Super(instance)",dod="Super(static)",doe="ModuleScoped ",dof="Global ",dog=[0,[2,0,[11,aVP,[2,0,[12,41,0]]]],"%s: (%s)"],doh=[0,[11,"(empty array) ",[2,0,[11,aVP,[2,0,[12,41,0]]]]],"(empty array) %s: (%s)"],doi=[0,[11,"illegal write at ",[2,0,0]],"illegal write at %s"],doj=kl,dok=[0,[12,91,[2,0,[12,93,0]]],vf],dol=[0,[11,"{refinement = ",[2,0,[11,"; write = ",[2,0,[12,E,0]]]]],"{refinement = %s; write = %s}"],dom=kq,don=oW,doo=[0,[11,"declared function ",[2,0,0]],"declared function %s"],dop=gj,dos=[1,"A normalized value cannot be a PHI"],dot=[0,0],dor=[16,0],doq=[16,0],dou=[0,[12,46,[2,0,0]],are],dov=[0,[12,91,[2,0,[12,93,0]]],vf],dow=[0,[11,"private.",[2,0,0]],"private.%s"],dox=g,doB=[41,0],doy=[0,[11,"{loc = ",[2,0,[11,"; lookup = ",[2,0,[12,E,0]]]]],"{loc = %s; lookup = %s}"],doz=[0,f0,0],doA=[0,jc,0],doC=[0,fM,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,gb,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,ga,cV,bP,eB,be,ay,a9,dI,bO,aH],doD=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,fM],doE=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],doF=[0,fM],doW=[0,[12,40,[2,0,[12,41,[2,0,0]]]],"(%s)%s"],dpd=[0,[2,0,[11,mj,[2,0,0]]],TB],dpe=[0,[11,aYG,[2,0,[12,41,0]]],a10],do$=[0,[12,40,[2,0,[12,41,0]]],ai0],dpa=[0,[11,aYG,[2,0,[12,41,0]]],a10],do4="annot hint",do5="value hint",do6="providers hint",do7="write loc hint",do8="string literal hint: ",do9="builtin type hint",do_="any type hint",dpb=[0,_],dpc=[0,[12,91,[2,0,[12,93,0]]],vf],dpf=[0,_],dpg=[0,[12,hB,[2,0,[12,E,0]]],alE],dph="this (missing)",dpi=[0,[11,"exp ",[2,0,[11," (hint = ",[2,0,[12,41,0]]]]],"exp %s (hint = %s)"],dpj="member_assign",dpk="opassign",dpl="[in/de]crement",dpm=a3_,dpn=[0,[11,"fun ",[2,0,0]],"fun %s"],dpo=[0,[11,a3x,[2,0,0]],aUB],dpp=a3_,dpq=[0,[11,aWp,[2,0,0]],aTl],dpr=[0,[11,"declared class ",[2,0,0]],"declared class %s"],dps=[0,[11,"declared component ",[2,0,0]],"declared component %s"],dpt=[0,[11,"alias ",[2,0,0]],"alias %s"],dpu=[0,[11,"opaque ",[2,0,0]],"opaque %s"],dpv=[0,[11,"tparam ",[2,0,0]],"tparam %s"],dpw=aE,dpx=[0,[11,"enum ",[2,0,0]],"enum %s"],dpy=[0,[11,ajL,[2,0,[2,0,[11,aS4,[2,0,0]]]]],"import %s%s from %s"],dpz=C9,dpA=aVa,dpB=a1l,do0=aWg,do1=g,do2=[0,[2,0,[2,0,0]],DX],do3=gF,doX="type ",doY=aYb,doZ=g,doQ="",doR=[0,[12,91,[4,0,0,0,[12,93,0]]],"[%d]"],doS=[0,[12,46,[2,0,0]],are],doT=".[computed]",doU="{ ... }",doV=aig,doH="unannotated catch param",doI=[0,[11,"annot ",[2,0,0]],"annot %s"],doJ=[0,[11,"val ",[2,0,0]],"val %s"],doK=[0,[11,"function val ",[2,0,0]],"function val %s"],doL=sS,doM=Q1,doN="contextual",doO=[0,[11,"for of ",[2,0,0]],"for of %s"],doP=[0,[11,"for in ",[2,0,0]],"for in %s"],dpF=[0,[1,1]],dpE="not a bigint literal",dpD=kN,dpC=[1,"not a number literal"],dpN=[1,0],dpP=[1,0],dpO=[1,0],dpQ=[1,0],dpM=[1,0],dqv="Should be visited by visit_function_param",dqu=[60,"contextual variable"],dqt=[0,[0,[5,l$],0],0],dqs=[0,1],dqr=[0,1],dqq=[0,0],dqp=[60,C9],dqn=f0,dqo=[25,[0,C$]],dqm=[0,1],dql="Should be visited by visit_assignment_expression",dqi=[1,0],dqh=[1,0],dqj=[1,0],dqg=[1,0],dqf=[1,0],dqk=[60,"unsupported syntax"],dqe=[1,aYI],dqd=[1,aYI],dqc="Should be visited by visit_call_expression",dqb="Should be visited by visit_optional_call_expression",dqa="Should be visited by visit_new_expression",dp$=[0,0,0],dp_="Should be visited by visit_member_expression",dp9="Should be visited by visit_optional_member_expression",dp8="Should be visited by visit_unary_expression",dp5=fr,dp6=fr,dp7=[0,tZ],dp2=[0,[0,[5,aYh],0],0],dp3=[7,[0,0,0],0,0],dp4=[0,tZ],dp1="Should be visited by visit_array_expression",dp0="Should be visited by visit_conditional",dpZ="Should be visited by visit_binary_expression",dpY="Should be visited by visit_logical_expression",dpX="Should be visited by visit_object_expression",dpU=g,dpV=g,dpW=g,dpG=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,fM],dpH=[0,aH,bO,dI,"visit_unary_expression","visit_type_param","visit_optional_member_expression","visit_optional_call_expression","visit_object_expression",aX$,"visit_member_expression","visit_logical_expression","visit_jsx_expression","visit_jsx_children","visit_function_rest_param","visit_function_param",a0s,aSD,"visit_function","visit_expression",a3$,"visit_component_rest_param","visit_component_param",aS2,"visit_component","visit_class_property_value","visit_call_expression","visit_call_arguments","visit_binary_expression","visit_assignment_expression","visit_array_expression",a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,a15,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,"params_list_to_str_opt",d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,"name_of_param",bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,"in_scope","in_new_tparams_env",bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,aVw,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,aWC,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,"cast",dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,aWT,aW4,a1N,aWM,a3H,fM],dpI=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],dpJ=[0,lH,"scope_kind","class_stack","return_hint_stack","in_declare_module"],dpK=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,aVw,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,aS2,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,aX$,es,aWM,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,aW4,dY,aM,a3H,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,a1N,c5,cu,a15,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,aWT,aWC,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,a3$,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,aSD,bG,c2,a0s,dV,a_,b1],dpS=[0,aT1,[0,pL,[0,aXQ,[0,I6,[0,gi,0]]]]],dqy=[41,0],dqC=[0,[2,0,[12,58,[2,0,0]]],aTT],dqD=", ...",dqE=[0,[11,"{ ...",[2,0,[11,iS,0]]],"{ ...%s }"],dqP=[0,"Generics unsatisfied: single bound cannot satisfy spread with multiple elements",0],dqO=[0,"Generics unsatisfied: at least one element of spread unsatisfied",0],dqN=[0,"Generics satisfied: all elements of spread satisfied",0],dqM=[0,[11,"Checking generics compatibility (from spread): ",[2,0,[11,RM,[2,0,0]]]],"Checking generics compatibility (from spread): %s ~> %s"],dqL=[0,"Generics unsatisfied: more elements in upper bound than lower bound",0],dqK=[0,[11,"Checking generics compatibility: ",[2,0,[11,RM,[2,0,0]]]],"Checking generics compatibility: %s ~> %s"],dqJ=[0,[11,a0U,[2,0,[11,a2n,0]]],aZT],dqI=[0,"Generics satisfied",0],dqH=[0,[11,a0U,[2,0,[11,a2n,0]]],aZT],dqG=[0,[11,"Generics satisfied, with ",[2,0,[11," unmatched on lower bound",0]]],"Generics satisfied, with %s unmatched on lower bound"],dqQ=[0,[2,0,[11," (type_sig: ",[9,0,[12,41,0]]]],"%s (type_sig: %b)"],dxa=zz,dxb=nK,dxc=aSu,dxd=pj,dxe=sS,dxf=kq,dxg=aS,dxh=" && ",dxi=" || ",dxj="not ",dxl=[0,[11,a0o,[2,0,[11," with right operand = ",[2,0,0]]]],"left operand of %s with right operand = %s"],dxk=[0,[11,a0o,[2,0,[11," with right operand = OpenT(",[4,0,0,0,[12,41,0]]]]],"left operand of %s with right operand = OpenT(%d)"],dxn=[0,[11,aZQ,[2,0,[11," with left operand = ",[2,0,0]]]],"right operand of %s with left operand = %s"],dxm=[0,[11,aZQ,[2,0,[11," with left operand = OpenT(",[4,0,0,0,[12,41,0]]]]],"right operand of %s with left operand = OpenT(%d)"],dxo=q_,dxp=qg,dxq=[0,[11,aYe,[2,0,[12,96,0]]],aVj],dxr=[0,[11,"number `",[2,0,[12,96,0]]],"number `%s`"],dxs=[0,[11,"bigint `",[2,0,[12,96,0]]],"bigint `%s`"],dxt=qR,dxu=oW,dxv=pS,dxw=qj,dxx=rU,dxy=[0,[11,aXH,[2,0,[11,"` is truthy",0]]],"prop `%s` is truthy"],dxz=[0,[11,aXH,[2,0,[11,"` is not null or undefined",0]]],"prop `%s` is not null or undefined"],dxB=[0,[11,"LatentPred(",[2,0,[11,_,[4,0,0,0,[12,41,0]]]]],"LatentPred(%s, %d)"],dxA=[0,[11,"LatentPred(TYPE_",[4,0,0,0,[11,_,[4,0,0,0,[12,41,0]]]]],"LatentPred(TYPE_%d, %d)"],dxR=[0,[0,0]],dxQ=[60,aVz],dxM="Getter property with unexpected type",dxL="Setter property with unexpected type",dxC="TypeAliasKind",dxD=aSU,dxE="OpaqueKind",dxF="ImportTypeofKind",dxG="ImportClassKind",dxH="ImportEnumKind",dxI="InstanceKind",dxJ="MappedTypeKind",dxK="RenderTypeKind",dw_="sentinel prop ",dw$=wS,dvj=[0,[11,"UseT(",[2,0,[11,_,[2,0,[12,41,0]]]]],"UseT(%s, %s)"],dvk="BindT",dvl="CallT",dvm="ConditionalT",dvn="MethodT",dvo="PrivateMethodT",dvp="SetPropT",dvq="SetPrivatePropT",dvr="GetPropT",dvs="GetPrivatePropT",dvt="TestPropT",dvu="SetElemT",dvv="GetElemT",dvw="CallElemT",dvx="GetStaticsT",dvy="GetProtoT",dvz="SetProtoT",dvA="ReposLowerT",dvB="ReposUseT",dvC="ConstructorT",dvD="SuperT",dvE="ImplementsT",dvF="MixinT",dvG="ToStringT",dvH="ArithT",dvI="ComparatorT",dvJ="UnaryArithT",dvK="AssertBinaryInLHST",dvL="AssertBinaryInRHST",dvM="AssertForInRHST",dvN="AssertInstanceofRHST",dvO="AssertIterableT",dvP="AssertNonComponentLikeT",dvQ="PredicateT",dvR="GuardT",dvS="StrictEqT",dvT="EqT",dvU="AndT",dvV="OrT",dvW="NullishCoalesceT",dvX="NotT",dvY="SpecializeT",dvZ="ThisSpecializeT",dv0="VarianceCheckT",dv1="ConcretizeTypeAppsT",dv2="LookupT",dv3="ObjAssignToT",dv4="ObjAssignFromT",dv5="ObjRestT",dv6="ObjTestProtoT",dv7="ObjTestT",dv8="ArrRestT",dv9="BecomeT",dv_="GetKeysT",dv$="HasOwnPropT",dwa="GetValuesT",dwb="GetDictValuesT",dwc="ElemT",dwd="MakeExactT",dwe="CJSRequireT",dwf="ImportModuleNsT",dwg="AssertImportIsValueT",dwh="CJSExtractNamedExportsT",dwi="CopyNamedExportsT",dwj="CopyTypeExportsT",dwk="CheckUntypedImportT",dwl="ExportNamedT",dwm="ExportTypeT",dwn="AssertExportIsTypeT",dwo="MapTypeT",dwp="ObjKitT",dwq="ReactKitT",dwr="FullyResolveType",dwt="TryFlow",dws=[0,[11,"ChoiceKitUseT ",[2,0,0]],"ChoiceKitUseT %s"],dwu="ConcretizeTypes",dww="SentinelPropTest",dwx="PropExistsTest",dwv=[0,[11,"PreprocessKitT ",[2,0,0]],"PreprocessKitT %s"],dwy="DebugPrintT",dwz="DebugSleepT",dwA="SentinelPropTestT",dwB="OptionalChainT",dwC="InvariantT",dwD="CallLatentPredT",dwE=[0,[11,"ResolveSpreadsToTupleType (",[4,0,0,0,[12,41,0]]],"ResolveSpreadsToTupleType (%d)"],dwG=[0,[11,"ResolveSpreadsToArrayLiteral (",[4,0,0,0,[12,41,0]]],"ResolveSpreadsToArrayLiteral (%d)"],dwH="ResolveSpreadsToArray",dwI="ResolveSpreadsToMultiflowCallFull",dwJ="ResolveSpreadsToMultiflowSubtypeFull",dwK="ResolveSpreadsToCustomFunCall",dwL="ResolveSpreadsToMultiflowPartial",dwM="ResolveSpreadsToCallT",dwF=[0,[11,"ResolveSpreadT(",[2,0,[12,41,0]]],"ResolveSpreadT(%s)"],dwN="CondT",dwO="ExtendsUseT",dwP="ReactPropsToOut",dwQ="ReactInToProps",dwR="DestructuringT",dwS="ResolveUnionT",dwT="TypeCastT",dwU="EnumCastT",dwV="EnumExhaustiveCheckT",dwW="FilterOptionalT",dwX="FilterMaybeT",dwY="DeepReadOnlyT",dwZ="ImplicitVoidReturnT",dw0="SealGenericT",dw1="OptionalIndexedAccessT",dw2="CheckUnusedPromiseT",dw3="ExtractReactRefT",dw4="WriteComputedObjPropCheckT",dw5=aSZ,dw6=aUZ,dw7=aWR,dw8=aTh,dw9="EvalTypeDestructorT",dvi=[0,[2,0,[12,40,[2,0,[12,41,0]]]],"%s(%s)"],duR="ImplicitTypeParam",duS="ReactConfigCheck",duT="TypePredicateCompatibility",duU="RendersCompatibility",duV="UnifyFlip",duW="ConstrainedAssignment",duX="ReactDeepReadOnly",duY="ArrayElementCompatibility",duZ="FunCompatibility",du0="FunMissingArg",du1="FunParam",du2="FunRestParam",du3="FunReturn",du4="IndexerKeyCompatibility",du5="CallFunCompatibility",du6="TupleMapFunCompatibility",du7="ObjMapFunCompatibility",du8="ObjMapiFunCompatibility",du9="OpaqueTypeSuperCompatibility",du_="MappedTypeKeyCompatibility",du$="PropertyCompatibility",dva="ReactGetConfig",dvb="TupleElementCompatibility",dvc="TupleAssignment",dvd="TypeArgCompatibility",dve="TypeParamBound",dvf="OpaqueTypeBound",dvg="InferredTypeForTypeGuardParameter",due="UnknownUse",duf="ObjectSpread",dug="ObjectRest",duh="ObjectChain",dui="Arith",duj="AssignVar",duk="Cast",dul="ClassExtendsCheck",dum="ClassImplementsCheck",dun="ClassOwnProtoCheck",duo="ClassMethodDefinition",dup="Coercion",duq="ConformToCommonInterface",dur="DeclareComponentRef",dus="DeleteProperty",dut="DeleteVar",duu="FunCall",duv="FunCallMethod",duw="FunReturnStatement",dux="FunImplicitReturn",duy="GeneratorYield",duz="GetProperty",duA="IndexedTypeAccess",duB="ConditionalTypeEval",duC="InitField",duD="InferBoundCompatibilityCheck",duE="JSXCreateElement",duF="ReactCreateElementCall",duG="ReactGetIntrinsic",duH="Speculation",duI="TypeApplication",duJ="SetProperty",duK="UpdateProperty",duL="RefinementCheck",duM="MatchingProp",duN="EvalMappedType",duO="TypeGuardIncompatibility",duP="RenderTypeInstantiation",duQ="ComponentRestParamCompatibility",dtK="OpenT",dtL="EvalT",dtM="GenericT",dtN="ThisClassT",dtO="ThisTypeAppT",dtP="TypeAppT",dtQ="ExactT",dtR="FunProtoT",dtS="ObjProtoT",dtT="NullProtoT",dtU="FunProtoApplyT",dtV="FunProtoBindT",dtW="FunProtoCallT",dtX="MatchingPropT",dtY="IntersectionT",dtZ="UnionT",dt0="MaybeT",dt1="OptionalT",dt2="KeysT",dt3="AnnotT",dt4="OpaqueT",dt5="ModuleT",dt6="Trigger",dt7=[0,[11,"ChoiceKitT ",[2,0,0]],"ChoiceKitT %s"],dt8="ExtendsT",dt9="CustomFunT",dt_="AnyT (catch)",dt$="AnyT (annotated)",dua="AnyT (untyped)",dub="AnyT (placeholder)",duc="AnyT (error)",dud="AnyT (unsound)",dtk="EmptyT",dtl="NullT",dtm="VoidT",dtn="SymbolT",dto="NumT",dtp="StrT",dtq="BoolT",dtr="BigIntT",dts="MixedT",dtt="FunT",dtu="ObjT",dtv="ArrT",dtw="ClassT",dtx="InstanceT",dty="SingletonStrT",dtz="NumericStrKeyT",dtA="SingletonNumT",dtB="SingletonBoolT",dtC="SingletonBigIntT",dtD="CharSetT",dtE="TypeT",dtF="PolyT",dtG="ReactAbstractComponentT",dtH="RendersT",dtI="EnumT",dtJ=a23,ds9="not an any type",ds6=[4,0],ds3=[3,1],ds1=[2,0],dsZ=[1,1],dsX=[0,1],dsV=[0,t9,3561,9],dsU="to_annot_op_exn on unresolved",dsF=[60,ahC],dsG=[60,aiC],dsH=tQ,dsI="partial",dsJ="required",dsK=sS,dsL=a4o,dsM=vm,dsN="react config",dsO="react check component config",dsP=a1V,dsQ=[60,z7],dsR=[60,"unary minus"],dsS=[60,"unary not"],dsT=[60,vm],dr8="Annot_ConcretizeForImportsExports",dr9="Annot_ImportNamedT",dr_="Annot_ImportModuleNsT",dr$="Annot_ImportTypeofT",dsa="Annot_ImportDefaultT",dsb="Annot_CJSRequireT",dsc="Annot_CJSExtractNamedExportsT",dsd="Annot_ExportNamedT",dse="Annot_ExportTypeT",dsf="Annot_AssertExportIsTypeT",dsg="Annot_CopyNamedExportsT",dsh="Annot_CopyTypeExportsT",dsi="Annot_SpecializeT",dsj="Annot_ThisSpecializeT",dsk="Annot_UseT_TypeT",dsl="Annot_GetPropT",dsm="Annot_GetElemT",dsn="Annot_ElemT",dso="Annot_GetStaticsT",dsp="Annot_LookupT",dsq="Annot_MakeExactT",dsr="Annot_ObjKitT",dss="Annot_ObjTestProtoT",dst="Annot_MixinT",dsu="Annot_ArithT",dsv="Annot_UnaryArithT",dsw="Annot_NotT",dsx="Annot_ObjKeyMirror",dsy="Annot_ObjMapConst",dsz="Annot_DeepReadOnlyT",dsA="Annot_GetKeysT",dsB="Annot_ToStringT",dsC="Annot_ObjRestT",dsD="Annot_GetValuesT",dsE="Annot__Future_added_value__",drN=aTA,drO="Unoptimized",drP="Enum",drQ="Partially Optimized Enum",drR="Disjoint Union",drS="Partially Optimized Disjoint Union",drT="Singleton",drU="No Specialization",drL="quick_mem_disjoint_union is defined only on object / exact object types",drJ="quick_mem_enum is defined only for canonizable type",drD=[0,0,0],drw=xs,drp=[0,1],drq=[0,0],drn="Unexpected field type",drc="Illegal property_type",dqS=[0,[0]],dqT=[0,t9,1846,2],dqU=[0,[0,0]],dqV=[0,t9,1862,6],dqW=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],dqX=[0,t9,1916,6],dqY=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],dqZ=[0,t9,2374,6],dq0=[0,[0,0,0,0,0,0,0]],dq1=[0,t9,2798,6],dq2=[0,[0,[0,[0]],[0,[0]],[0,[0]]]],dq3=[0,t9,2963,2],dq4=[0,[0,[0,[0]]]],dq5=[0,t9,3021,2],dq6=[0,[0,0,0,0]],dq7=[0,t9,3036,6],dq8=[0,[0]],dq9=[0,t9,aZ_,2],dq_=[0,[0]],dq$=[0,[0,0]],dro=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],drV=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],dr1=[0,[0,0,0,0,0,0,0]],dr2=[0,[0,[0,[0]],[0,[0]],[0,[0]]]],dr3=[0,[0,[0,[0]]]],dr6=[0,[0,0,0,0]],dr7=[0,[0]],ds8=[0,0],ds_=[1,8],ds$=[1,12],dta=[1,4],dtb=[1,0],dtc=[1,3],dxS=[0,0,0,0],dx0=[0,a02],dxZ=[0,0],dxY=[0,0],dxX=[0,0],dxW=[0,0],dx1=a1q,dx2="react-rule-unsafe-mutation",dx3="react-rule-hook-mutation",dx4="cannot-delete",dx5="cannot-implement",dx6="cannot-infer-type",dx7="cannot-read",dx8="cannot-reassign",dx9="cannot-resolve-module",dx_="cannot-resolve-name",dx$="cannot-spread-indexer",dya="cannot-spread-inexact",dyb="cannot-spread-interface",dyc="cannot-write",dyd="cannot-write-enum",dye="class-object-subtyping",dyf="component-case",dyg="component-missing-return",dyh="component-this-reference",dyi=a3V,dyj=alh,dyk="deprecated-utility",dyl="duplicate-class-member",dym="duplicate-enum-init",dyn="duplicate-flow-decl",dyo="duplicate-jsx-decl",dyp="duplicate-jsx-runtime-decl",dyq="duplicate-module",dyr="missing-empty-array-annot",dys="enum-value-as-type",dyt="escaped-generic",dyu="exponential-spread",dyv=aUT,dyw="export-value-as-type",dyx="extra-arg",dyy="extra-type-arg",dyz="function-predicate",dyA="illegal-enum",dyB="illegal-get-set",dyC="illegal-key",dyD="illegal-new-array",dyE="illegal-this",dyF="illegal-typeof",dyG=a3P,dyH="import-type-as-value",dyI="import-value-as-type",dyJ="incompatible-call",dyK="incompatible-cast",dyL="incompatible-exact",dyM="incompatible-extend",dyN="incompatible-function-indexer",dyO="incompatible-indexer",dyP="incompatible-return",dyQ="incompatible-type",dyR="incompatible-type-arg",dyS="incompatible-type-guard",dyT="incompatible-use",dyU="incompatible-variance",dyV="invalid-call-util",dyW="invalid-catch-parameter-annotation",dyX="invalid-charset-type-arg",dyY="invalid-compare",dyZ="invalid-computed-prop",dy0="invalid-constructor",dy1="invalid-enum-access",dy2="invalid-exact",dy3="invalid-exhaustive-check",dy4="invalid-export",dy5="invalid-exports-type-arg",dy6="invalid-extends",dy7="invalid-flow-mode",dy8="invalid-graphql",dy9="invalid-exported-annotation",dy_="invalid-recursive-exported-annotation",dy$="invalid-idx",dza=aWf,dzb="invalid-import-type",dzc="invalid-infer",dzd="invalid-in-lhs",dze="invalid-in-rhs",dzf="invalid-jsx-decl",dzg="invalid-jsx-runtime-decl",dzh="invalid-lhs",dzi="invalid-mapped-type",dzj="invalid-module",dzk="invalid-obj-map",dzl="invalid-obj-mapi",dzm="invalid-property-type-arg",dzn="invalid-prop-type",dzo="invalid-react-config",dzp="invalid-render",dzq="invalid-supports-platform",dzr="invalid-tuple-arity",dzs="invalid-tuple-index",dzt="invalid-tuple-map",dzu="invalid-type-arg",dzv="invalid-type-cast-syntax",dzw="invalid-typeof",dzx="invalid-temp-type",dzy="lint-setting",dzz="malformed-package",dzA="method-unbinding",dzB="missing-annot",dzC="missing-local-annot",dzD="missing-this-annot",dzE="missing-arg",dzF="missing-export",dzG="missing-platform-support",dzH="missing-type-arg",dzI=aUU,dzJ="module-type-conflict",dzK="name-already-bound",dzL=aXW,dzM="nonpolymorphic-type-app",dzN="nonpolymorphic-type-arg",dzO=aS$,dzP="not-a-class",dzQ="not-a-component",dzR="not-a-function",dzS="not-an-array",dzT="not-an-object",dzU="not-iterable",dzV="object-this-reference",dzW="prop-missing",dzX="reassign-const",dzY="reassign-enum",dzZ="reassign-import",dz0="reference-before-declaration",dz1=aoV,dz2="signature-verification-failure",dz3=a38,dz4=a17,dz5=a37,dz6=aYq,dz7=a0Q,dz8=aSP,dz9="speculation",dz_="speculation-ambiguous",dz$="ts-syntax",dAa=aYJ,dAb="toplevel-library-import",dAc="tuple-invalid-type-spread",dAd="tuple-required-after-optional",dAe="type-as-value",dAf="unclear-addition",dAg=aik,dAh="underconstrained-implicit-instantiation",dAi=aVq,dAj=aoI,dAk=al4,dAl="unreachable-code",dAm="unsafe-addition",dAn="unsafe-arithmetic",dAo=an1,dAp="unsupported-syntax",dAq="unsupported-statement-in-lib",dAr="unsupported-variance-annotation",dAs=aW3,dAt=aTu,dAu="value-as-type",dAv="invalid-declaration",dAw="definition-cycle",dAx="recursive-definition",dAy="logical-assignment-operators-not-supported",dAz=am$,dAA="bigint-unsigned-right-shift",dAB="bigint-num-coerce",dAC="invalid-component-prop",dAD=aSJ,dAE=a0g,dAF="invalid-ref",dAG="react-rule-unsafe-ref",dBM=tZ,dBN=aiQ,dBS=[0,1],dBT=gE,dBR=an6,dBY=an6,dBZ=CL,dB0=aVM,dB1="duplicate provider",dB2="recursion limit exceeded",dB3=CL,dB4="lint",dBU="suppressions",dBV="level",dBW=qk,dBX="trace",dBO="error_codes",dBP=aiQ,dBQ="extra",dBL=UH,dBF="Blame",dBK="Comment",dBG=[0,1],dBH=gE,dBI=lD,dBJ="descr",dBE=[2,g],dBz=HB,dBA=Dx,dBB="endline",dBC=z3,dBD="path",dBx=[0,[0,F],0],dBy=[0,". (FLOW BUG: This is a misplaced error. The original error was raised in file "],dBw=[0,[11,"Expected absolute location, got ",[2,0,0]],"Expected absolute location, got %s"],dBv="can't choose negative line",dBt=[0,[2,0,[2,0,0]],DX],dBu=[0,[11,"",[2,0,[2,0,0]]],"%s%s"],dBs=g,dBo=q2,dBp=wO,dBm=q2,dBn=zB,dBl=g,dBq=[0,"References:",0],dBk=gj,dA9="Either",dA_=aUc,dBg=q2,dBh=zB,dA7=q2,dA8=zB,dAY=q2,dAZ=zB,dAV=gj,dA3=q2,dA4=zB,dA2=wV,dA1=zP,dA0=qh,dAW=wV,dAX=fr,dA5=aSm,dA6="all branches are incompatible:",dBj=aSL,dBe=" because",dBi=wV,dBf=i2,dBb=fr,dBc=aSm,dBd="\nOnly showing the the first 50 branches. To see all branches, re-run Flow with --show-all-branches.",dA$=fr,dBa=tI,dAU=fr,dAT=wX,dAS=gj,dAL=[0,[0,[0,[0,_],0]],0],dAM=gj,dAN=_,dAO=RW,dAR=RV,dAP=gj,dAQ=gj,dAJ=vs,dAK=vs,dAH=g,dB5=[0,gj,[0,tI,[0,aTj,[0,ajx,[0,zA,0]]]]],dB6=[0,aXj,[0,aTt,[0,aZ3,[0,aWr,0]]]],dCa=[0,0],dB7=[0,gj,[0,tI,[0,aTj,[0,ajx,0]]]],dB8=wO,dB_=[1,0],dB$=[1,0],dB9=[1,0],dWs=[0,56],dWt=[0,53],dWu=[0,33],dWv=[0,45],dWw=[0,76],dWx=[0,44],dWy=[0,hq],dWz=[0,hq],dWA=[0,hq],dWB=[0,i1],dWD=[0,hB],dWE=[0,6],dWF=[0,57],dWG=[0,57],dWH=[0,8],dWI=[0,9],dWJ=[0,hB],dWK=[0,8],dWL=[0,mg],dWN=[0,30],dWO=[0,92],dWP=[0,92],dWQ=[0,93],dWR=[0,93],dWS=[0,93],dWT=[0,6],dWU=[0,13],dWV=[0,57],dWW=[0,mf],dWX=[0,kw],dWY=[0,lF],dWZ=[0,48],dW0=[0,51],dW1=[0,50],dW2=[0,65],dW3=[0,41],dW4=[0,gt],dW5=[0,iR],dW6=[0,i1],dW7=[0,35],dW8=[0,i1],dW9=[0,77],dW_=[0,95],dW$=[0,69],dXa=[0,87],dXb=[0,68],dXc=[0,60],dXd=[0,60],dXe=[0,63],dXf=[0,39],dXg=[0,39],dXi=[0,rH],dXj=[0,40],dXk=[0,iZ],dXm=[0,iQ],dXl=[0,iU],dXn=[0,iT],dXo=[0,iT],dXp=[0,gx],dXs=[0,lj],dXt=[0,E],dXq=[0,md],dXr=[0,jX],dXu=[0,37],dXv=[0,38],dXw=[0,hr],dXx=[0,67],dXy=[0,67],dXz=[0,19],dXA=[0,19],dXB=[0,75],dXC=[0,hy],dXD=[0,pP],dXE=[0,jw],dXF=[0,q9],dXG=[0,pN],dXH=[0,l6],dXI=[0,32],dXJ=[0,lC],dXK=[0,iJ],dXL=[0,oA],dXM=[0,42],dXN=[0,78],dXO=[0,79],dXP=[0,mi],dXQ=[0,79],dXR=[0,79],dXS=[0,62],dXT=[0,62],dXU=[0,82],dXV=[0,4],dXW=[0,kL],dXX=[0,89],dXY=[0,i$],dXZ=[0,rI],dX0=[0,34],dX1=[0,13],dX2=[0,27],dX3=[0,24],dX4=[0,25],dX5=[0,26],dX6=[0,81],dX7=[0,91],dX8=[0,70],dX9=[0,80],dX_=[0,91],dX$=[0,lK],dYa=[0,21],dYb=[0,99],dYc=[0,iJ],dYd=[0,98],dYe=[0,3],dYf=[0,ju],dYg=[0,53],dYh=[0,12],dYi=[0,10],dYj=[0,11],dYk=[0,10],dYl=[0,11],dYm=[0,31],dYn=[0,62],dYo=[0,64],dYp=[0,14],dYq=[0,23],dYr=[0,iJ],dYs=[0,iJ],dYt=[0,k$],dYu=[0,66],dYv=[0,66],dYw=[0,gO],dYx=[0,66],dYy=[0,66],dYz=[0,66],dYA=[0,29],dYB=[0,7],dYC=[0,5],dYD=[0,pK],dYE=[0,15],dYF=[0,iK],dYG=[0,gN],dYH=[0,18],dYI=[0,16],dYJ=[0,17],dYK=[0,kO],dYL=[0,71],dYM=[0,72],dYN=[0,73],dYO=[0,k9],dYP=[0,kp],dYQ=[0,kp],dYR=[0,22],dYS=[0,28],dYT=[0,lE],dYU=[0,lg],dYV=[0,59],dYW=[0,lK],dYX=[0,mi],dYY=[0,qr],dYZ=[0,83],dY0=[0,k6],dY1=[0,k6],dY2=[0,k6],dY3=[0,90],dY4=[0,96],dY5=[0,hb],dWM=[0,61],dXh=[0,36],dWC=[0,q7],dWn=[0,kv],dWm=[0,56],dWo=[0,k8],dWp=[0,iJ],dWq=[0,jY],dWh=[0,58],dWi=[0,94],dWj=[0,85],dWk=[0,86],dWl=[0,54],dWc=[0,47],dWd=[0,49],dWg=[0,55],dWe=[0,46],dWf=[0,52],dWa=[0,1],dWb=[0,2],dV3=_,dV4="the following platforms: ",dV5=" platform",dV6=Dm,dV7="no platforms",dVC=_,dVD=sD,dS1=[60,g],dS7=[60,g],dTa=[60,g],dSX=[60,g],dSY=_,dSS=[60,g],dSL=[60,g],dSM=kl,dSJ=" - ...\n",dSK=aZ5,dSN=tI,dSO=[60,"other definition"],dSP=" depends on ",dSQ=" - ",dSs=[60,g],dSe=[60,g],dRH=_,dRI=sD,dRJ="cannot have empty reason list",dQ4=_,dQc=jv,dQd=" Did you mean the member ",dP1=aln,dP2="inferred union from ",dK2=vh,dK3=a2X,dK4=" and then ",dK5=aB,dK6="If you intended to set the default export please ",dJu="Types are erased and don't exist at runtime.",dJv=a2w,dJw="Cannot use type ",dIe=[60,g],dH8=[60,g],dHv=" is duplicated",dHw=" is not a member of the set",dGs="to ",dFZ=[0,[4,0,0,0,[11,IG,0]],"%d element"],dF0=[0,[4,0,0,0,[11,aVE,0]],"%d elements"],dF1=[0,[4,0,0,0,[12,45,[4,0,0,0,[11,aVE,0]]]],"%d-%d elements"],dFX=F,dFY=TJ,dFR=F,dFS=TJ,dFL=F,dFM=TJ,dFF=F,dFG=TJ,dE4=aTe,dE5="input/output",dE6="output",dDW="the default export",dDX=g,dDY=" as a type.",dDZ="Cannot export the value ",dD0="the value ",dD1=vh,dD2=aYn,dD3="value use ",dD4="interfaces, and classes. If you intended to import the type of a ",dD5=" only works on type exports like type aliases, ",dD6=arr,dD7=TY,dD8=HK,dD9=aUh,dD_=vh,dD$=arr,dEa="functions, and classes. If you intended to import a type use ",dEb=" only works on value exports like variables, ",dEc=aYn,dEd=TY,dEe=HK,dEf=aUh,dEg=vh,dEh=arr,dEi="Use ",dEj=a2w,dEk=HK,dEl=jv,dEm=[0,[11,aU3,[2,0,[11,'} from "',[2,0,[12,34,0]]]]],'import {%s} from "%s"'],dEn="Did you mean ",dEo=gj,dEp=fr,dEq=aSL,dEr="Cannot import a default export because there is no default export ",dEs=jv,dEt=[0,[11,ajL,[2,0,[11,' from "..."',0]]],'import %s from "..."'],dEu=". Did you mean ",dEv=aUg,dEw=a0K,dEx=wV,dEy=HK,dEz=jv,dEA=" Did you mean ",dEB=fr,dEC=aUg,dED=a0K,dEE=wV,dEF=HK,dEG=jJ,dEK=pL,dEH=[0,[4,0,0,0,0],iP],dEL=pL,dEM=[0,[4,0,0,0,[12,45,[4,0,0,0,0]]],"%d-%d"],dEI=[0,[11," without ",[2,0,[11,II,[2,0,[12,46,0]]]]]," without %s type %s."],dEJ=iv,dEN="-typed, to use it as an annotation.",dEO=sV,dEP=" properly, so it is no longer ",dEQ="Type ",dER="-typed value. ",dES=sV,dET=" as a type because it is an ",dEU=iv,dEV=fr,dEW=pM,dEX="To get the type of a non-class value, use ",dEY="a type, interface, class, or enum definition. ",dEZ="A name can be used as a type only if it refers to ",dE0=TY,dE1=iv,dE2=" is not readable",dE3=" is not writable",dE7=" positions.",dE8=" is expected to occur only in ",dE9="position because ",dE_=gj,dE$=" in an ",dFa=iv,dFb=" to generate the missing module.",dFc=" Try running the command ",dFd=fr,dFe="Cannot resolve module ",dFf=fr,dFg=aTd,dFh=fr,dFi=aTd,dFj=arP,dFk=aWb,dFl=aYs,dFm="All platform-specific implementations must exist for this interface. ",dFn=qh,dFo="Cannot resolve platform-specific implementation module ",dFp=" could either behave like a string or like a number",dFq=fr,dFr=tJ,dFs=alq,dFt=") instead.",dFu=alW,dFv=aiY,dFw=atp,dFx="or try using strict equality (",dFy="Make sure the arguments are valid, ",dFz=" with a non-strict equality check. ",dFA=tJ,dFB=alq,dFC=[60,sN],dFD=" cannot escape from its ",dFE=[0,[12,96,[2,0,[12,96,0]]],rL],dFH=[60,sN],dFI=" which cannot escape from its ",dFJ=[0,[12,96,[2,0,[12,96,0]]],rL],dFK=" contains ",dFN=[60,aU8],dFO=" cannot escape from the scope in which it was ",dFP=[0,[12,96,[2,0,[12,96,0]]],rL],dFQ="type variable ",dFT=[60,aU8],dFU=" which cannot escape from the scope in which it was ",dFV=[0,[12,96,[2,0,[12,96,0]]],rL],dFW=" contains type variable ",dF2=aSF,dF3=ap3,dF4=aSF,dF5="incompatible with ",dF6=" has an unknown number of elements, so is ",dF7=g,dF9=aju,dF8=[0,[11," only has ",[4,0,0,0,[11,IG,[2,0,[11,", so index ",[2,0,[11," is out of bounds",0]]]]]]]," only has %d element%s, so index %s is out of bounds"],dF_=" is not an integer",dF$="the index into a tuple must be an integer, but ",dGa="the index must be statically known to write a tuple element",dGb=aYa,dGc=a3s,dGd=zP,dGe=ap3,dGf=zP,dGg=Hy,dGh=aTr,dGi=fr,dGj=" must be after optional ",dGk=", required ",dGl=UU,dGm=") into tuple type.",dGn="Cannot spread non-tuple (",dGo="read-only arrays cannot be written to",dGp=amJ,dGq=amJ,dGr=fr,dGt=[0,aSO],dGu="too. To fix add a type annotation ",dGv=" looks promising ",dGw="may work but if it doesn't ",dGx=gj,dGy="Could not decide which case to select, since ",dGz="inexact ",dGB="indexed ",dGA=" is incompatible with exact ",dGC=" is incompatible with indexed ",dGD=fr,dGE="Cannot create exact type from ",dGF=" type.",dGG=f0,dGH="Unexpected use of ",dGI="Cannot apply type because it is not a polymorphic type.",dGJ=jJ,dGM=pL,dGK=[0,[21,1,[11,II,[2,0,[12,46,0]]]],Rk],dGL="Cannot use type without exactly ",dGN="construct ",dGW="call ",dGO=" with type arguments.",dGP="non-polymorphic ",dGQ=aZF,dGR=g,dGV=aju,dGS=[0,[21,1,[11," type argument",[2,0,[12,46,0]]]],"%n type argument%s."],dGT=" without exactly ",dGU=aZF,dGX=jJ,dG0=pL,dGY=[0,[21,1,[11,II,[2,0,[12,46,0]]]],Rk],dGZ="Cannot use type without at least ",dG1=jJ,dG5=pL,dG2=[0,[21,1,[11,II,[2,0,[12,46,0]]]],Rk],dG3=" with more than ",dG4=iv,dG6=jJ,dG_=pL,dG7=[0,[21,1,[11,II,[2,0,[12,46,0]]]],Rk],dG8=" with fewer than ",dG9=iv,dG$=" clause of a conditional type.",dHa=jZ,dHb=" declarations are only permitted in the ",dHc=CL,dHd="Invalid infer type declaration. ",dHe=SR,dHf=DW,dHg=iv,dHh=" as a superclass. Only variables and member expressions may be extended",dHi=iv,dHj="type argument must be a string literal.",dHk=" because the second ",dHl=Hn,dHm=iv,dHn=aWP,dHo=aY0,dHp=aiN,dHq=iv,dHr=aWP,dHs=aY0,dHt=Ut,dHu=iv,dHx=[0,RV],dHy=" since ",dHz=Ag,dHA=". Only classes can be constructed.",dHB=DJ,dHC=vo,dHD=iv,dHE=" Only identifier, string literal, and number literal keys are allowed.",dHF=lD,dHI=ahy,dHG=fr,dHH="Unsupported key in object ",dHJ="Consider using a string literal key name to disambiguate.",dHK="making positive the number literal. ",dHL="as the variance annotation could be interpreted as negating or ",dHM="Cannot mix number literal keys and variance annotations, ",dHN=" parameters.",dHO=" only accepts ",dHP=" operation, because ",dHQ=aUL,dHR=" as the index in a ",dHS="Cannot pass in ",dHT=wX,dHU=" is incompatible with arity ",dHV=wX,dHW="arity ",dHX=", which is a predicate function",dHY=", a non-predicate function, is incompatible with ",dHZ=fr,dH0=" cannot reference ",dH1="A ",dH2=" type needs to be a positive integer.",dH3=aUL,dH4="The index position of a ",dH5=" does not appear in the same position as ",dH6=" in the parameters of this function (type).",dH7="Cannot find ",dH9="in the following statements:",dIb=[60,g],dIc=qV,dId=aXe,dH_=fr,dH$=" because at this return point it is writen to ",dIa=iv,dIf="in the following expressions:",dIk=[60,g],dIl=qV,dIm=aXe,dIg=fr,dIh=" is reassigned ",dIi=", because ",dIj=iv,dIn=" function.",dIo="Cannot declare a type guard on a(n) ",dIp=[0,[11,"Internal error: ",[2,0,0]],"Internal error: %s"],dIq=fr,dIr="const [a, b]: [number, string] = ...",dIs=" do ",dIt="const [a: number, b: string] = ...",dIu="For example, instead of the invalid ",dIv="Annotate the top-level pattern instead. ",dIw="Annotations inside of destructuring are not supported. ",dIx=" is deprecated. This syntax is no longer supported.",dIy=zA,dIz="The existential type ",dIA="Not supported.",dIB="Get/set properties not yet supported.",dIC="Computed getters and setters are not yet supported.",dID=fr,dIE=Tb,dIF="Unsupported arguments in call to ",dIG="Literal properties not yet supported.",dIH="Computed property keys not supported.",dII=a20,dIJ=CI,dIK=aXi,dIL="Unsupported catch parameter declaration.",dIM="Unsupported non-string literal object property in destructuring.",dIN="Unsupported expression pattern in destructuring.",dIO="Flow doesn't support JSX type arguments.",dIP="Cannot declare predicate when a function body is present.",dIQ="predicate expression.",dIR="Predicate function declarations need to declare a ",dIS="function parameters.",dIT="Predicate function declarations cannot use anonymous ",dIU="statement as body.",dIV="Invalid body for predicate function. Expected a simple return ",dIW="Multiple indexers are not supported.",dIX="Multiple prototypes specified.",dIY="Unexpected call property after explicit prototype.",dIZ="Unexpected prototype after call property.",dI0="A spread argument is unsupported here.",dI1=a20,dI2=aB,dI3=aXi,dI4="Illegal name.",dI5="User defined type guards are not yet supported.",dI6=" statements.",dI7=CR,dI8="Flow doesn't support ",dI9="Component syntax is not enabled.",dI_="The type arguments will be ignored.",dI$=" annotation with type arguments is not supported yet. ",dJa=pM,dJb=fr,dJc="Unsupported static internal slot ",dJd=fr,dJe="Unsupported internal slot ",dJf=fr,dJg="new Array(...)",dJh="Use an array literal instead of ",dJi=fr,dJj="Missing type annotation for ",dJk=fr,dJl=" and was implicitly instantiated at ",dJm=" is a type parameter declared in ",dJn=gj,dJo=" is required because Flow cannot infer its type from local context.",dJp="An annotation on ",dJq=" because generic functions must be fully annotated.",dJr=aZn,dJs=fr,dJt=aZn,dJx=" because the name is already bound.",dJy=a1M,dJz=" because var redeclaration is not supported.",dJA=a1M,dJB=" in a derived constructor.",dJC=" before accessing ",dJD=jc,dJE="Must call ",dJF="either comes later or was skipped.",dJG=" because the declaration ",dJH="Cannot use variable ",dJK=fr,dJL="Cannot reassign import ",dJM=fr,dJN="Cannot reassign enum ",dJO=fr,dJP=[0,[11,"import type {",[2,0,[12,E,0]]],"import type {%s}"],dJQ=ajT,dJR=[0,[11,aU3,[2,0,[12,E,0]]],"import {%s}"],dJS=sD,dJT=[0,[11,"import type ",[2,0,0]],"import type %s"],dJU=ajT,dJV=[0,[11,ajL,[2,0,0]],"import %s"],dJW=" If the exported binding can also be used as a value, try importing it using ",dJI=fr,dJJ="Cannot reassign constant ",dJX="*** Recursion limit exceeded ***",dJY="Can you add an assignment to the property declaration?",dJZ="Class property not definitely initialized in the constructor. ",dJ0="definitely initialized.",dJ1="It is unsafe to read from a class property before it is ",dJ2="class properties are definitely initialized.",dJ3="It is unsafe to call a method in the constructor before all ",dJ4=aTP,dJ5=" in the constructor ",dJ6=f0,dJ7="It is unsafe to use ",dJ8=aTP,dJ9="It is unsafe to call a property function in the constructor ",dJ_=fr,dJ$=a0I,dKa=aXK,dKb=aYU,dKc=aXd,dKd="enums=true",dKe="You may opt-in to using enums by putting ",dKf="Flow Enums are not enabled. ",dKg=fr,dKh=a0I,dKi=aXK,dKj=aYU,dKk=aXd,dKl="unsafe.enable_getters_and_setters",dKm="opt-in to using them anyway by putting ",dKn="effects are potentially unsafe and so disabled by default. You may ",dKo="Potentially unsafe get/set usage. Getters and setters with side ",dKp="same module!",dKq=" are used in the ",dKr=a1l,dKs="statement and ",dKt="Unable to determine module type (CommonJS vs ES) if both an export ",dKu="Exports can only appear at the top level",dKv=" may only be used as part of a legal top level export statement",dKw=" object. To use the default export you must import it directly.",dKx="The default export of a module cannot be accessed from an ",dKy="To use the default export you must import it directly.",dKz="The default export of a module cannot be accessed from import destructuring. ",dKA=" with a member access or destructuring.",dKB=" object can only be used by accessing one of its named exports",dKC="variable ",dKL="variable",dKD=fr,dKE=Dh,dKF=". All exported variables must be ",dKG=z_,dKH=aiY,dKI=zi,dKJ=" declared using ",dKK="Cannot export ",dKM=" in an exported function.",dKN=f0,dKO=iv,dKP=" statements in the same file.",dKQ=CI,dKR=sD,dKS="Cannot use a mix of non-type toplevel ",dKT=". The statement will be ignored.",dKU=aVa,dKV="Import statements may only appear inside a ",dKW="Cannot use an import statement at the toplevel of a library file. ",dKX="The statement will be ignored.",dKY=" statements in a library file. ",dKZ=iv,dK0=fr,dK1="Variance modifiers cannot appear on a type parameter of a ",dK7=qh,dK8=gF,dK9=" as ",dK_="Cannot set the default export of a module by re-exporting ",dK$=vh,dLa=[0,[11,"export default ",[2,0,0]],"export default %s"],dLb=". If you intended to set the default export use ",dLc=gF,dLd=tJ,dLe="Cannot set the default export of a module by renaming ",dLf=" property. ",dLg=gF,dLh="Cannot set the default export of a module by re-exporting the ",dLi="Unreachable code.",dLj=" is not an object",dLk=" property cannot be generic.",dLl=qi,dLm=" property because it is a type parameter. The ",dLn=qi,dLo=" in a ",dLp=iv,dLq=" return value.",dLr=pM,dLs=" because it is not a valid ",dLt="literal ",dLu=" to string ",dLv=pM,dLw="Cannot compare the result of ",dLx=" must be a string or number.",dLy=" because on the left-hand side, ",dLz=qV,dLA=iv,dLB=" must be an object or array.",dLC=" because on the right-hand side, ",dLD=qV,dLE=iv,dLF="is not a number or bigint.",dLG=gj,dLH="Cannot perform arithmetic operation because ",dLI=a3g,dLJ="because ",dLK=" statement ",dLL=a0n,dLM=aW0,dLN=fr,dLO=" expression must be an object, but got ",dLP=wS,dLQ="The right-hand side of an ",dLR=fr,dLS="Cannot access object with computed property using ",dLV=aq4,dLW=jv,dLX=". Can you add an appropriate type annotation to ",dLY=" but this one is a ",dLZ=" Computed properties may only be numeric or string literal values,",dLT=aUX,dLU=iv,dL0=aq4,dL1=" Computed properties may only be numeric or string literal values.",dL2=aUX,dL3=iv,dL4="Invalid left-hand side in assignment expression.",dL5=" because it is not an interface.",dL6=aVC,dL7=" is not a React component",dL8=" cannot calculate config",dL9=g,dMc=aju,dL_=[0,[11,"without at least ",[4,0,0,0,[11,SR,[2,0,[12,46,0]]]]],"without at least %d argument%s."],dL$=gj,dMa=aZS,dMb=Rb,dMd=" values may not be read during render. (https://react.dev/reference/react/useRef).",dMe=qi,dMf=wV,dMg=aS4,dMh=SU,dMi="Cannot read ",dMj=") property) during render. (https://react.dev/reference/react/useRef).",dMk=SU,dMl=" values may not be passed to functions because they could read the ref value (",dMm=qi,dMn=" as an argument because ",dMo="Cannot pass ",dMs=[0,[11,"no more than ",[4,0,0,0,[11," arguments are expected by",0]]],"no more than %d arguments are expected by"],dMr="no more than 1 argument is expected by",dMp="no arguments are expected by",dMq=gj,dMt="Mutating this prototype is unsupported.",dMu=".js",dMv="in the same directory with the same base name.",dMw=". This file can only be shadowed by a js.flow file ",dMx=[60,"js.flow file"],dMy="This file is being illegally shadowed by the ",dMz=fr,dMA=[60,"current module provider"],dMB="either this module provider or the ",dMC=". Change ",dMD="Duplicate module provider for ",dME=amU,dMF=afY,dMG=Im,dMH=H3,dMI=amU,dMJ=afY,dMK=asK,dML=H3,dMM=amU,dMN=afY,dMO=aje,dMP=H3,dMQ=fr,dMR=ath,dMS=sD,dMT=aor,dMU=" declaration. The only supported values are ",dMV=aje,dMW=UU,dMX=" declaration is disallowed in platform specific files.",dMY=arx,dMZ=fr,dM0="@flow strict-local",dM1=", and ",dM2=ahF,dM3=_,dM4=Im,dM5=" mode. Valid ones are: ",dM6=Im,dM7=" is not a valid ",dM8=[0,[17,[2,iZ],[11,"low ",[2,0,0]]],"@flow %s"],dM9=[0,[11," Parse error: ",[2,0,[12,46,0]]]," Parse error: %s."],dM_=" with no spaces.",dM$="@jsx LeftHandSideExpression",dNa=" declaration. Should have the form ",dNb=asK,dNc=UU,dNd=" in your flow config.",dNe="experimental.multi_platform.extensions",dNf=" is not configured in ",dNg=" declaration. ",dNh=arx,dNi=UU,dNj="properties to express an inexact object type.",dNk=" to the end of the list of ",dNl=nb,dNm="Please add ",dNn=" to the end of the list of properties).",dNo=nb,dNp=") or as explicitly inexact (add ",dNq=y$,dNr=sD,dNs=Q$,dNt=ajT,dNu=Rj,dNv=sD,dNw=TC,dNx="Please write this object type as explicitly exact (use ",dNy=jv,dNz="the top of ",dNA=tJ,dNB=a1f,dNC=aYD,dND=gj,dNE=sV,dNF="Importing a type from an untyped module makes it ",dNG=jv,dNH="to the top of ",dNI=gj,dNJ=a1f,dNK=aYD,dNL=gj,dNM=sV,dNN="Importing from an untyped module makes it ",dNO=HJ,dNP=ahF,dNQ="also be ",dNR=" module must ",dNS=ahF,dNT="Dependencies of a ",dNU=" types is not safe!",dNV=qZ,dNW=", or ",dNX=lG,dNY=_,dNZ=sV,dN0="Unclear type. Using ",dN1=vh,dN2=qR,dN3="Deprecated type. Use ",dN4="See https://flow.org/en/docs/types/conditional/ for more information on conditional types.",dN5="Deprecated type. Use conditional types instead. ",dN6="See https://flow.org/en/docs/types/mapped-types/ for more information on mapped types.",dN7="Deprecated type. Use mapped types instead. ",dN8="See https://flow.org/en/docs/types/type-guards/ for more information on type guards.",dN9="Deprecated type. Use type guards instead. ",dN_=fr,dN$=Rp,dOa=wU,dOb=vh,dOc=" is deprecated, use ",dOd="The utility type ",dOe="Getters and setters can have side effects and are unsafe.",dOf="Unused suppression comment.",dOg=q2,dOh="$FlowFixMe[",dOi="Suppression is missing a code. Please update this suppression to use an error code: ",dOj="Invalid setting. Valid settings are error, warn, and off.",dOk=jv,dOl=kl,dOm=" character. Perhaps you have a missing/extra ",dOn=i2,dOo="Malformed lint rule. Properly formed rules contain a single ",dOp="Malformed lint rule. At least one argument is required.",dOq=jv,dOr=kl,dOs="missing/extra ",dOt="Nonexistent/misspelled lint rule. Perhaps you have a ",dOu="overwritten later in this comment.",dOv="Redundant argument. The values set by this argument are ",dOw="Redundant argument. This argument doesn't change any lint settings.",dOx=qg,dOy=qR,dOF="an empty string",dOG=qj,dOH=lb,dOI=oW,dOJ=aWV,dOK=pS,dOL=qg,dOM=vg,dON="false at runtime",dOO="boolean enum",dOP="an empty string at runtime",dOQ="string enum",dOR="0 at runtime",dOS="number enum",dOT="0n at runtime",dOU="bigint enum",dOz=jv,dOA="check for ",dOB=". Perhaps you meant to ",dOC="which is potentially ",dOD=gj,dOE="Sketchy null check on ",dOV="explicit default instead.",dOW="Consider handling falsy values (0 and NaN) by using a conditional to choose an ",dOX=qh,dOY=" to check the value of ",dOZ=Ix,dO0="Avoid using ",dO1=" as a prototype. Expected an object or null.",dO2=iv,dO3=" will short-circuit the nullish case.",dO4=IV,dO5=" cannot be nullish or because an earlier ",dO6=") is unnecessary because ",dO7=IV,dO8="This use of optional chaining (",dO9=" is always truthy.",dO_="This use of `invariant` is unnecessary because ",dO$="The type argument of a temporary base type must be a compatible literal type",dPa=" because only member expressions and variables can be deleted.",dPb=aiJ,dPc=[0,[11,"Missing type annotation at ",[2,0,[12,58,0]]],"Missing type annotation at %s:"],dPf="Expected simple key in object:",dPg="Unexpected spread in array:",dPh="Unexpected array hole:",dPi=as0,dPj="Cannot determine the element type of an empty array. ",dPk=as0,dPl="Cannot determine types of initialized properties of an empty object. ",dPm=as0,dPn=[0,[11,aYN,[2,0,[11,qh,0]]],"Cannot determine the type of this %s. "],dPd="You should annotate the exports of this module with types. ",dPe="Cannot build a typed interface for this module. ",dPu=Ht,dPv=CW,dPo=I0,dPp=" to turn it into an object and attempt to use it as a subtype of an interface",dPq=[0,[11,ahz,[2,0,[11,"(...))",0]]],"new %s(...))"],dPr="You can wrap it in ",dPs=qh,dPt=", a primitive, cannot be used as a subtype of ",dPw="track the own-ness of their properties. Try using an object type instead",dPx=" cannot be spread because interfaces do not ",dPy=qh,dPz=Ux,dPA=" first or remove the indexer",dPB="Try spreading ",dPC=" may overwrite properties with explicit keys in a way that Flow cannot track. ",dPD=" cannot be spread because the indexer ",dPE=qh,dPF=Ux,dPG=a2S,dPH=" Try making ",dPI="is inexact",dPQ=" a required property",dPR=" or make ",dPS=" Try removing the indexer in ",dPT="has an indexer",dPJ=fr,dPK="'s definition in ",dPL=" with a type that conflicts with ",dPM=", so it may contain ",dPN=gj,dPO=qh,dPP=Ux,dPU=a2S,dPV=". Try making ",dPW=" or a property value that conflicts with ",dPX="have a property key that conflicts with ",dPY=" is inexact and may ",dPZ=qh,dP0=Ux,dP3=sD,dP4=" You may be able to get rid of a union by specifying a more general type that captures all of the branches of the union.",dP5=" are both unions. Please use at most one union type per spread to simplify reasoning about the spread result.",dP6=" may lead to an exponentially large number of cases to reason about because ",dP7="Computing ",dP8=aq4,dP9=jv,dP_=" is a union. Can you add a literal type annotation to ",dP$=" Computed properties may only be primitive literal values, but the type of ",dQa=" as a computed property.",dQb=iv,dQe=fr,dQf=" is not a member of ",dQg=wV,dQi=" because computed access is not allowed on enums.",dQj=DJ,dQh=aWn,dQk=" because enums are frozen.",dQl="Cannot change member of ",dQm=fr,dQn=wX,dQo=[60,"previous member"],dQp="has already been used for a ",dQq="Invalid enum member initializer. Initializers need to be unique, but this one ",dQr=" as the type of its members.",dQs="You can use the enum's name ",dQt=gj,dQu=" is not an object.",dQv=wV,dQw=air,dQx=", which optionally takes a second argument if you wish to also map over the result.",dQy="Array.from",dQz="You can turn that into an array using ",dQA=" to get an iterator of the enum's members. ",dQB=[0,[2,0,[11,a1z,0]],aZr],dQC=ahD,dQD=gj,dQE=" because it is not an object.",dQF=" with argument ",dQG="Cannot call function ",dQH=" to iterate over the enum's members.",dQI=[0,[11,"for (... of ",[2,0,[11,".members()) { ... }",0]]],"for (... of %s.members()) { ... }"],dQJ=ahD,dQK=gj,dQL=a3g,dQM=" loop because ",dQN=a0n,dQO=aW0,dQP=" to get an iterator for the enum's members.",dQQ=[0,[2,0,[11,a1z,0]],aZr],dQR=ahD,dQS=gj,dQT=" is not an iterable.",dQU=fr,dQV=" was already checked at ",dQW=", but member ",dQX=wX,dQY=" checks for enum member ",dQZ=a0_,dQ0=", but all of its members have already been checked.",dQ1=" checks for additional enum members of ",dQ2=a0_,dRc=" has",dRd=a0W,dRe="the member ",dQ3=[0,[11,"and ",[4,0,0,0,[11," others",0]]],"and %d others"],dQ5=" have",dQ6=a0W,dQ7="the members ",dQ8=" lint has been enabled.",dQ9=" does not check for the missing members as the ",dQ_=" The ",dQ$=fr,dRa=" not been considered in check of ",dRb="Incomplete exhaustive check: ",dRf=" case to cover those members.",dRg=gF,dRh=") so checking it requires the use of a ",dRi=nb,dRj=" has unknown members (specified using ",dRk=qh,dRl=" case in the check of ",dRm=gF,dRn="Missing ",dRo="A",dRp=fr,dRq=[0,[11,amJ,[2,0,[12,46,[2,0,[12,58,0]]]]],"case %s.%s:"],dRr="For example ",dRs=gj,dRt=fr,dRu=". Check must be dot-access of a member of ",dRv="Invalid enum member check at ",dRw=", is a type.",dRx="Only the enum itself, ",dRy="Enum members are not separate types. ",dRz=TY,dRA=iv,dRB=[0,[11,"(: ",[2,0,[12,41,0]]],"(: %s)"],dRC=" using ",dRD="You can explicitly cast your enum value to a ",dRE=fr,dRF=" binding ",dRG="Cannot reassign ",dRK=". Please provide an annotation for ",dRL="Flow cannot infer the type of ",dRM=fr,dRN="$FlowFixMe[]",dRO="should be formatted as ",dRP="Suppression contains a malformed error code. Suppressions with error codes ",dRQ=". Either add explicit type arguments or cast the expression to your expected type",dRR=" is underconstrained by ",dRS=" as an interface",dRT=". Class instances are not subtypes of object types; consider rewriting ",dRU=" is not a subtype of ",dRV=[0,[0,UH],0],dRW=" where it was defined",dRX=" cannot be unbound from the ",dRY=" with the name of the object, or rewriting the object as a class.",dRZ=f0,dR0=" Consider replacing the reference to ",dR1=" inside object methods since these methods may be unbound and rebound.",dR2=f0,dR3=". For safety, Flow restricts access to ",dR4=a3r,dR5=f0,dR6=aSE,dR7=[60,a14],dR8=a3r,dR9=f0,dR_=aSE,dR$="Component identifiers must begin with an upper-case character",dSa=" is not guaranteed to reach a return statement. An explicit return statement must be included for all possible branches.",dSb="Cannot declare component because ",dSc="Components may not be nested directly within other components.",dSd=nK,dSj=[59,nK],dSf=kl,dSg=" and in generic context",dSh=" should be annotated, because it is only ever assigned to by ",dSi=Sz,dSk=nK,dSr=[59,nK],dSl=" to disambiguate.",dSm=": null",dSn=DW,dSo=". This is likely unintended; if it is intended, annotate ",dSp=" is only ever assigned to by ",dSq=Sz,dSt=kl,dSu=" should be annotated, because it is only initialized in a generic context",dSv=Sz,dSw=" is never initialized, annotated, or assigned to.",dSx=Sz,dSy="Expected a GraphQL fragment, query, mutation, or subscription.",dSz="Template literal substitutions are not allowed in GraphQL literals.",dSA=" utility type instead.)",dSB=" (Try using the ",dSC=fr,dSD="Please provide an (alternative) annotation for ",dSE=aSW,dSF=DJ,dSG=iv,dSH=aSW,dSI="Invalid trivially recursive definition of ",dSR=[0,0,0],dST="Please add type annotations to these definitions",dSU="The following definitions recursively depend on each other, and Flow cannot compute their types:\n",dSV=" or to these object properties",dSW=aZ5,dSZ=[60,aWs],dTh=aWs,dS$=[60,HI],dTb=" or to its properties",dTc=[60,HI],dTd=[60,"its property"],dTe="or to",dTf=[60,HI],dTg=HI,dS0=[0,0,0],dS6="these object properties",dS9="this object property",dS8=" or to ",dS2="these definitions",dS_=[60,HI],dS3=". Please add an annotation to ",dS4=" because its definition includes references to ",dS5="Cannot compute a type for ",dTi=" to the binding being declared.",dTj=[60,"reference"],dTk=". It contains a ",dTl="Invalid type annotation for ",dTm="Static class",dTp=Tk,dTn=" member names must be unique.",dTo=" has already been declared in this class. ",dTq="Cannot determine type of empty array literal. Please provide an annotation.",dTr=" it?",dTs=tF,dTt=" in async scope is unused. Did you mean to ",dTu=q8,dTv=" in sync scope is unused. Promises must be handled by calling .then with a rejection handler, .catch, or .finally.",dTw=q8,dTx="is a bigint, and all bigints are signed.",dTy=gj,dTz="Cannot perform unsigned right shift because ",dTA="cannot be coerced to number.",dTB=gj,dTC="Cannot perform unary plus because a ",dTD=" if specified.",dTE=vg,dTF=aiY,dTG=sV,dTH="Annotation must be ",dTI="Invalid catch parameter type annotation. ",dTJ=fr,dTK=vg,dTL=Rp,dTM=I5,dTN=wU,dTO=fr,dTP=aI,dTQ=Rp,dTR=HF,dTS=aVQ,dTT=" types.",dTU=kq,dTV=sD,dTW=q1,dTX="Flow does not have separate ",dTY=qh,dTZ=q1,dT0=Rp,dT1=kq,dT2=wU,dT3=fr,dT4="$Keys",dT5=" utility type, used in the form ",dT6=Sm,dT7=" type operator in Flow is the ",dT8=C7,dT9=wU,dT_=" is only supported when used inline in a mapped type. ",dT$=C7,dUa=fr,dUb="type T = ...",dUc=aYY,dUd=i2,dUe=" to specify type parameter bounds, Flow uses ",dUf=jZ,dUg=a3F,dUh=" for dictionaries.",dUi="+[string]: T",dUj=" for class and object type properties, and ",dUk="+foo: T",dUl=aYY,dUm=mB,dUn=" to specify read only properties, Flow uses ",dUo=tQ,dUp=a3F,dUv=aTx,dUw=mB,dUx=a2T,dUy=UO,dUz=wU,dUA="it's the default if you don't have a variance annotation.",dUB=" variance annotation in Flow is to simply leave it out - ",dUC="in out",dUD=wU,dUq=aTx,dUr=kN,dUs=a2T,dUt=qV,dUu=wU,dUE=fr,dUF="You can cast an expression to a type using the form ",dUG="Try adding a type annotation instead. ",dUH=qh,dUI="as const",dUJ="Flow does not have an equivalent of ",dUK=fr,dUL=" expression in Flow is to do a cast in the form ",dUM=anB,dUN=aVQ,dUO=a1F,dUP="an array",dUV="$ReadOnly<[T, S]>",dUW="a tuple",dUQ=fr,dUR=" type is ",dUS=" type operator applied to ",dUT=tQ,dUU=wU,dUX=fr,dUY="$ReadOnly",dUZ=". For object and tuple types you can use ",dU0=a1F,dU1="For array types, you can use ",dU2=" type operator is not valid in Flow. ",dU3=tQ,dU4="TypeScript's ",dU5=sD,dU6="` with operands ",dU7="Cannot use operator `",dU8="Mapped Types are not supported in interfaces or declared classes.",dU9="Mapped Types cannot be used when other properties or indexers are present.",dU_=fr,dU$="{[key in keyof O]: T}",dVa="Fully general mapped types are not supported yet. All mapped types must use an inline keyof: ",dVb="support explicit exact or inexact syntax.",dVc="Mapped Types take on the exactness of the argument passed to keyof. They do not ",dVd="Mapped Types do not yet support optionality removal.",dVe=". Property names may only be have one definition within a component",dVf=[60,a4o],dVg=" within a ",dVh=[60,"re-declared"],dVi=Hy,dVj="Component property ",dVk=[60,"spreads"],dVl=" within ",dVm=[60,"ref properties"],dVn="Components do not support ",dVo=" be instantiated as an element. To avoid confusion between this definition and the intrinsic, rename the definition",dVp="may",dVw="can",dVq=" that ",dVr=[60,lD],dVs=" which has a ",dVt=[60,"local definition"],dVu=" overlaps with a ",dVv="The name of intrinsic element ",dVx="You may only use an identifier or a destructured object as a component rest param.",dVy=vh,dVz=DA,dVA="If you want to express the idea of rendering zero or one item, please use ",dVB=Ic,dVG=a0z,dVH=DA,dVI=Ic,dVJ=a0z,dVK=zS,dVL=Ic,dVM=" already models rendering any amount of children in all possible nesting structures.",dVN=zS,dVO=Ic,dVP=vh,dVQ=zS,dVR="If you want to express the idea of rendering zero or more items, please use ",dVS=Ic,dVT=" Generic type renders are only allowed in rendering declaration of component syntax components.",dVU=" is not a render type.",dVV=" when the third type argument is a render type and ",dVW=agF,dVX=" You can only use an element of ",dVY=" is not a component-syntax component.",dVZ=" Only elements of a component-syntax components can appear in renders but ",dVE=" as the type argument of renders type.",dVF=iv,dV0=fr,dV1=" instead of the form ",dV2="Invalid type cast syntax. Use the form ",dV8=" is missing.",dV9=". Support for ",dV_=", but the current module requires the support of ",dV$="The imported module supports ",dDr="expected function type",dDs="optional methods are not supported",dDt="unexpected property in properties object",dDu="unexpected LHS in for...in",dDv="unexpected LHS in for...of",dDw="unexpected open computed property element type",dDx="unexpected literal computed property element type",dDy="unexpected rest parameter, expected an identifier pattern",dDz="unexpected spread property in interface",dDA="debug throw",dDB=[0,[11,"unsupported guard predicate (",[2,0,[12,41,0]]],"unsupported guard predicate (%s)"],dDC=aWX,dDD=[0,[11,"check job timed out after ",[8,[0,0,0],[0,1,0],[0,2],[11," seconds",0]]],"check job timed out after %0.2f seconds"],dDE=aWX,dDF=" in annotation inference",dDG="unexpected ",dDH="missing env entry for read at ",dDI="expected env entry for write location",dDJ=[0,[11,"unexpected module type: ",[2,0,0]],"unexpected module type: %s"],dDK=[0,[11,a1m,[2,0,[11," entry which has not been prepared for typechecking",0]]],"read of %s entry which has not been prepared for typechecking"],dDL=[0,[11,a1m,[2,0,[11," entry from previous component is not FullyResolved",0]]],"read of %s entry from previous component is not FullyResolved"],dDM="EnvMap.find missed, please report this to the Flow team",dDN=kl,dDO=kl,dDP=kl,dDQ=[0,[11,"Please report this error to the Flow team: Env_api tarjan failure, all: { ",[2,0,[11," } roots: { ",[2,0,[11," } missing_roots: { ",[2,0,[11,iS,0]]]]]]],"Please report this error to the Flow team: Env_api tarjan failure, all: { %s } roots: { %s } missing_roots: { %s }"],dDR="Internal state should be impossible, please report this to the Flow team: ",dDS="AST visitor issue, please report this to the Flow team: ",dDT=[0,[11,"Did not find ",[2,0,[11," in name_resolver environment, please report this to the Flow team",0]]],"Did not find %s in name_resolver environment, please report this to the Flow team"],dDU="Implicit instantiation issue, please report this to the Flow team: ",dDo=" labeled ",dDp=" is not ",dDq=aTr,dDm="a call signature declaring the expected parameter / return type",dDl=aZt,dDn="an index signature declaring the expected key / value type",dDg="write-only",dDh=aYa,dDi=RW,dDj=a3s,dDk="read-only",dCS=[1,8],dCV=[1,11],dCW=[1,11],dCX=[1,12],dCY=[1,13],dCZ=[1,14],dC0=[1,15],dC1=[1,16],dC2=[1,7],dC3=[1,9],dC4=[1,0],dC5=[1,1],dC6=[1,2],dC7=[1,3],dC8=[1,[2,0]],dC9=[1,[2,1]],dC_=[1,[2,2]],dC$=[1,[2,3]],dDa=[1,4],dDb=[1,5],dDc=[1,6],dDd=[1,10],dDe=[1,17],dDf=[1,18],dCU=[0,0],dCT=[0,1],dCK="null | void | false",dCL="iterable",dCM="generic",dCN="uncategorized",dCO="non-nominal-return",dCP="non-nominal",dCG=sN,dCH=pj,dCI="declared function",dCJ=r0,dCw=" in general.",dCx=oW,dCy=" Only number literals are allowed, not ",dCz=" Only integer-like number literals are allowed.",dCA=fr,dCB="Number.MAX_SAFE_INTEGER",dCC=" Number literals must not be larger than ",dCD=fr,dCE="Number.MIN_SAFE_INTEGER",dCF=" Number literals must not be smaller than ",dCr="other",dCs="number not literal",dCt="number non-int",dCu="number too large",dCv="number too small",dCk=De,dCl=De,dCm=Ta,dCn=t6,dCo="$ReadOnlyMap",dCp="$ReadOnlySet",dCq=DT,dCd=aqC,dCe=aqv,dCf=aTb,dCg=aXT,dCh=aZx,dCi=aXs,dCj=a2J,dCb="Error_message.EDebugThrow",d2q=zP,d2r=ap3,d2s=zP,d2t=Hy,d2a=gj,d2c="is not a function",d2d=" are unknown",d2e="the parameter types of an ",d2f="is not an array index",d2i="is not inheritable",d2l="is not a number",d2m=" is not a valid argument of ",d2n="is not an instance type",d2o="is not a function type",d2p=[0,[11,"is not supported by unclassified use ",[2,0,0]],"is not supported by unclassified use %s"],d2b="is not a class with private properties",d2g="is not an array",d2h="is not an object",d2j="is not a class",d2k="is not a polymorphic type",d16="?)",d17=" (did you mean ",d18=" but exists in ",d19=aTc,d1$=" does not have properties",d1_=aTc,d1G=[12,3],d1o=qh,d1D=" should not be coerced",d1E=" does not render ",d1H=" requires another argument",d1I="one argument",d1M=" arguments",d1J=Sq,d1K=[0,[11," expects more than ",[2,0,[11,". See ",0]]]," expects more than %s. See "],d1L=[0,[11," passes only ",[2,0,[11," to the provided function type, but ",0]]]," passes only %s to the provided function type, but "],d1N=Sq,d1O=a1j,d1P=arc,d1Q=aZW,d1R=Sq,d1S=a1j,d1T=arc,d1U=aZW,d1V=Sq,d1W=" takes more than two arguments. See ",d1X=arc,d1Y=" and the value type ",d1Z=" expects the provided function type to take only two arguments, the key type ",d1F=" requires another argument from ",d10=[9,0],d11=" to the tuple element type)",d12="| void",d13=" (to do so, add ",d14=" to optional ",d15="you cannot assign ",d1z="implicitly-returned ",d1A=Ag,d1B=" as a component rest param. Component rest params must use an object type and cannot be optional",d1C=iv,d1t=" characters are not treated as literals",d1u=" because strings longer than ",d1v=Ag,d1w=F,d1x=aYW,d1y=Ag,d1q=F,d1r=aYW,d1s=Ag,d1p=Ag,d1j=[0,1],d1l=", so it cannot be used to generate keys for ",d1m="string | number | symbol",d1n=Ag,d1k=[0,2],d1h=[0,0],d1i=[0,0],d07=[0,rS],d08=fr,d0w=[60,g],dZg="Cannot spread ",dZh="Cannot get rest of ",dZi="Incorrect arguments passed to ",dZj=sD,dZk="Cannot add ",dZl=tJ,dZm=aiw,dZn=" to variable",dZo=aiw,dZp=tJ,dZq="Cannot cast ",dZr=DW,dZs="Cannot extend ",dZt=DW,dZu=aVC,dZv="Cannot shadow proto ",dZw="Cannot shadow proto property",dZx="Cannot define shadowed proto property",dZy=DJ,dZz="Cannot define ",dZA=tJ,dZB="Cannot coerce ",dZC=aWb,dZD=aYs,dZE="Cannot conform to common interface module",dZF="React.RefSetter",dZG=" parameter must be a subtype of ",dZH=qi,dZI="The ",dZJ="Cannot declare ref",dZK=aiJ,dZL=aiJ,dZM=Rb,dZN=Rb,dZO="Cannot return ",dZP=aWv,dZQ=[60,"type predicate"],dZR="Cannot declare a ",dZS=" as the return type of ",dZT="Cannot expect ",dZU="Cannot yield ",dZV="Cannot get ",dZW=DJ,dZX=aWn,dZY=a3D,dZZ="Cannot check ",dZ0=DW,dZ1="Cannot initialize ",dZ2=" as the bound of infer type ",dZ3=iv,dZ6=IG,dZ7=ajh,dZ8=IG,dZ9=ajh,dZ_=air,dZ$=tJ,d0a=aiw,d0b="Cannot update ",d0c=a3D,d0d="Invalid check of ",d0e=wX,d0f=" with property ",d0g=alq,d0h=air,d0i=[0,[11," as type prediate for parameter `",[2,0,[12,96,0]]]," as type prediate for parameter `%s`"],d0j=iv,d0k="A user defined type guard needs to be compatible with its parameter's type",d0l=" or a reference to a component-syntax component",d0m="React.Node",d0n="Render types must be a subtype of ",d0o=" as a render type",d0p=iv,d0q="the type predicate",d0r="https://flow.org/en/docs/faq/#why-cant-i-pass-an-arraystring-to-a-function-that-takes-an-arraystring-number",d0s="Arrays are invariantly typed. See ",d0t="https://flow.org/en/docs/faq/#why-cant-i-pass-a-string-to-a-function-that-takes-a-string-number",d0u="This property is invariantly typed. See ",d0v=aVo,d0J=a1,d0x=kl,d0y=[0,[11,aZi,[2,0,[12,jx,0]]],a1C],d0D="initial element",d0F="initializer",d0E=aSr,d0G="initial ",d0H=aSr,d0I=[0,[11,aZi,[2,0,[12,jx,0]]],a1C],d0z=" if a different type is desired",d0A=". Add an annotation to ",d0B=" must be compatible with the type of ",d0C="All writes to ",d0K=" cannot be written to",d0L=[60,"React hook"],d0M="The return value of a ",d0N=" and their nested props and elements cannot be written to",d0O=[60,"component properties"],d0P="React ",d0Q=aUf,d0Z=[0,[11,Dm,[2,0,[11,ank,0]]],"the %s parameter"],d0W=" bound to ",d0X=DW,d0Y=Rb,d02=ank,d03=f0,d04=Dm,d00=ank,d01=Dm,d0T=SR,d0U=f0,d0V=Dm,d0R=SR,d0S=Dm,d05="the return value",d06="the indexer property's key",d0_="the callable signature",d09=aZt,d0$="the indexer property",d1a="index ",d1b=aXL,d1c=aXL,d1d="function with a single conditional expression",d1e=". Consider replacing the body of this predicate ",d1f="the type inferred for ",dZ4=IG,dZ5=ajh,d1g=[0,0,0],dZc=[0,1,1],dZd=[0,1,1],dZe=[0,1,0],dZf=[0,1,0],dZb=[0,0,0],dY$=[0,0],dY_=[1,-1],dY6="Flow_error.ImproperlyFormattedError",d2w=[0,1],d2u="Error_suppressions.No_source",d3k=[0,0],d3u=f0,d3t=jc,d3s=[0,0],d3r=[0,0],d3q=[0,0],d3o=[0,0],d3p=[0,0,0],d3l=g,d3m=g,d3n=g,d4k=f0,d4l=jc,d4m=[1,"Cannot bind super in function env"],d4n=[1,"It's impossible to bind super under IllegalThisEnv"],d4o=[60,C9],d4j=[0,0],d4i=[1,"Cannot have an undeclared or skipped binding without a def loc"],d4h=f0,d4g=jc,d4e=gK,d4d=le,d4f=[60,"<>"],d4c=[2,3],d4b=[0,0],d4a=[1,Te],d3$=[1,Td],d3_=[60,aK],d39=[0,1],d38=[60,"<>"],d37=f0,d35=[1,a3X],d34=[0,0,0],d36=[0,0,0],d30=[1,a3X],d3Z=[0,0,0],d31=[0,0,0],d32=f0,d33=f0,d3Y=[25,[0,C$]],d3W=f0,d3X=jc,d3U=[0,f0,0],d3V=[0,jc,0],d3T=[0,f0,0],d3S=[1,"Negations not resolved"],d3R=[1,"Loc mismatch"],d3Q=[2,3],d3P=[2,3],d3O=kq,d3M=[2,2],d3N=[2,3],d3J=[0,2],d3K=[0,6],d3L=[0,5],d3I=[0,3],d3G=[1,"member_expression_refinement can only be called on OptionalMember or Member"],d3H=[2,3],d3F=[2,3],d3v=g,d3w=g,d3x=g,d3y=g,d3z=g,d3A=g,d3B=g,d3C=g,d3D=g,d3E=g,d3d=[0,T9],d27=[60,aVz],d28=f0,d29=gK,d2_=[0,[0,gK],0],d2$=le,d3a=le,d3b=le,d26=[0,f8,[0,pL,0]],d22=[0,f0,0],d23=[0,jc,0],d2X=f0,d2Y=jc,d2Z=f0,d20=jc,d2V=f0,d2W=jc,d2U=f0,d2T=jc,d2Q=g,d2R=g,d2S=g,d2N=[0,[4,0,0,0,[11,aZD,0]],"%d missing in map"],d2M=[1,"heap entry missing in map"],d2L=[0,[2,0,[11,aZD,0]],"%s missing in map"],d2y=[0,fM,rZ,ea,aS,cM,ev,d9,e5,w_,a1,cS,d7,bZ,sC,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,st,dy,cW,eo,ei,eR,eT,ek,tV,d8,nH,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,xm,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,f8,tR,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,sM,b4,bl,tY,cZ,b$,bG,cr,e3,bL,e1,dX,bV,xb,tX,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,xh,xf,tK,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,nf,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,nv,ey,cp,cb,cw,b1,eW,dU,t5,xo,w9,wP,eH,Hv,wL,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,DS,ax,cA,co,cP,IP,tG,cT,bd,cX,ew,wM,Io,aD,t4,tM,qn,qc,qo,a0,gb,dR,dr,sA,H9,cz,eS,bK,ct,bH,aK,dW,qU,dp,b9,eP,eE,cf,sH,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,sK,d4,ga,cV,me,bP,eB,be,ay,a9,dI,bO,n7,aH],d2z=[0,"this_read_loc_list","super_read_loc_list","super_call_loc_list"],d2A=[0,cz,eA,dg,cl,ez,aJ,sA,eD,xo,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,xh,cm,dU,aR,tY,a9,me,nv,b$,d6,eO,dL,em,wM,bB,bF,ck,bS,bx,e1,dW,nf,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,aTo,ea,cx,dt,dc,eq,a8,cq,cW,el,w9,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,t5,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,xf,rZ,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,n7,dA,e5,e$,dH,xb,bg,b4,ej,e9,dk,eI,tG,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,t4,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,qo,cY,cL,bH,ga,dY,tM,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,wL,eo,cs,dq,tV,ep,eU,et,dM,cA,dD,dm,nH,c5,cu,qn,cE,a$,wP,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,qc,bN,e0,cG,bU,tX,b9,bt,aX,eb,co,sK,bM,bw,dC,e7,cn,qU,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,w_,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,xm,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,tR,bG,c2,dV,a_,b1],d2B=[0,aH,n7,bO,dI,a9,ay,be,eB,bP,me,cV,ga,d4,sK,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,sH,cf,eE,eP,b9,dp,qU,dW,aK,bH,ct,bK,eS,cz,H9,sA,dr,dR,gb,a0,qo,qc,qn,tM,t4,aD,Io,wM,ew,cX,bd,cT,tG,IP,cP,co,cA,ax,DS,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,wL,Hv,eH,wP,w9,xo,t5,dU,eW,b1,cw,cb,cp,ey,nv,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,"init_this_super","init_internal_name",d0,c8,nf,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,tK,xf,xh,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,tX,xb,bV,dX,e1,bL,e3,cr,bG,b$,cZ,tY,bl,b4,sM,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,tR,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,xm,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,nH,d8,tV,ek,eT,eR,ei,eo,cW,dy,st,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,sC,bZ,d7,cS,a1,w_,e5,d9,ev,cM,aS,ea,rZ,aTo,fM],d2C=[0,me,sK,sA,ajH,hx,fM,akX],d2D=[0,aH,I4,"with_scoped_bindings",a2I,"with_current_pattern_bindings","with_current_id_binding",n7,bO,dI,aS6,a03,asy,a9,ay,be,eB,bP,me,cV,ga,d4,a0T,a0A,d5,dS,a3W,eV,et,cY,bj,bC,as,cL,bW,aSI,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,sH,cf,eE,eP,"synthesize_read",b9,dp,"switch_completeness","switch_cases_with_lexical_bindings",qU,dW,aK,bH,ct,"statements_with_bindings",bK,eS,cz,aU9,dr,dR,"should_invalidate","should_havoc_val_to_initialized",gb,a0,aS_,qo,qc,qn,aT$,tM,t4,aD,a34,ew,cX,bd,aXC,aUe,"recursively_record_member_read","record_type_guard_maps","record_predicate_refinement_maps","record_pattern_loc_writes","record_member_read",cT,tG,"push_refinement_scope","push_env","providers_of_def_loc",cP,co,a4v,cA,ax,a3Y,aYZ,aUP,"pop_refinement_scope_without_unrefining","pop_refinement_scope_after_loop","pop_refinement_scope","pop_env","peek_new_refinements",bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,"pattern_identifier_with_annot_check",dj,dY,bo,eF,eI,bX,en,by,aV,aYS,d_,dh,aUO,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,aTg,fE,"normalize_total_refinements","non_this_binding_function","new_id",du,"negate_refinements","negate_new_refinements",bQ,"mk_env",eH,"merge_vals_with_havoc","merge_self_refinement_scope",a0y,a2Y,"merge_refinement_scopes",aZk,aV5,aTS,t5,"merge",dU,eW,b1,cw,cb,aT5,cp,aYC,a2D,a3E,a1_,aY8,ey,aYP,nv,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,Sh,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,aSy,dP,eA,ep,e4,bv,bU,dO,aYv,"is_excluded_ordinary_name","is_excluded","is_assigning_write",dH,bu,eY,aE,aVd,d0,c8,nf,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aXO,aR,tK,a4s,aVk,aUF,a0i,aWa,a0t,"handle_array_providers",a26,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,tX,bV,dX,e1,bL,e3,cr,bG,b$,cZ,tY,bl,b4,sM,a0Y,eZ,a30,bf,az,cs,dG,e9,d$,cu,ds,cH,tR,f8,"error_on_reference_to_currently_declared_id",aZG,aYE,"env_switch_case",a4i,a1Z,a0D,a1J,a12,a2M,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aXr,aI,db,DE,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,"debug_val",aO,"conjunct_all_refinements",da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,nH,d8,"commit_refinement",tV,ek,eT,eR,ei,eo,cW,dy,st,cc,ec,cR,bm,c$,c0,dC,c3,aTy,"chain_to_refinement",bN,e8,bB,dL,dn,aZv,aJ,aN,eJ,cj,aW,cG,"binding_pattern_track_object_destructuring",cJ,sC,"bind_pattern_identifier_customized",aUR,bZ,d7,aY3,cS,a1,aS0,aUk,e5,d9,ev,cM,aS,ea,aZg,rZ,a3C,"add_sentinel_check_writes",aTV,aVm,fM],d2E=[0,aH,I4,n7,bO,dI,asy,a9,ay,be,eB,bP,me,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,sH,cf,eE,eP,b9,dp,qU,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,qo,qc,qn,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,"mark_dead_write",ey,nv,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,Sh,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,nf,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,tK,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,sM,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,nH,d8,ek,eT,eR,ei,eo,cW,dy,st,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,sC,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,rZ,fM],d2F=[0,cz,eA,dg,cl,ez,aJ,eD,f8,asy,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,me,nv,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,nf,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,rZ,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,n7,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,nH,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,I4,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],d2G=[0,me,I4],d2H=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,a4i,er,dG,c$,fF,b7,du,d0,aYv,ci,a3C,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,tY,a9,me,a3E,aYZ,nv,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,nf,cK,aT$,b2,bK,ba,aWa,bb,bY,a30,eH,aUe,ec,eR,aY3,aVd,sM,d_,ea,cx,dt,aYP,dc,a1Z,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,Sh,cy,a26,bs,dl,dZ,a2,b8,a7,d2,a0A,ce,cF,dE,ev,c7,ds,t5,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,aTy,bj,aS_,cX,a0i,bp,aXr,bZ,aXC,bV,dz,bv,bm,e6,dp,aI,rZ,a0y,cr,cg,a0Y,aH,aSI,cv,dK,ed,bD,a3W,dS,bX,c_,cP,d7,d5,eT,eu,dT,st,bP,n7,a4v,dA,e5,e$,dH,bg,a2D,b4,ej,e9,aZv,dk,eI,aV5,tG,sC,cZ,aYS,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,a1_,fM,bL,t4,ei,ey,df,bJ,cV,aTg,ek,aZ,eN,aUP,bc,aYC,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,qo,cY,cL,bH,aU9,aT5,ga,dY,tM,a3Y,aZg,aM,aUO,sH,aP,fE,d1,eM,bf,dP,aV,aZk,aS6,eJ,eK,dv,bT,a0t,eo,a2I,aVk,cs,dq,tV,ep,eU,a1J,et,dM,cA,dD,dm,aYE,nH,a2M,c5,cu,qn,cE,a$,dR,gb,b_,ex,a34,a0T,eX,ef,aTS,ar,cI,aTV,cQ,b3,bW,dJ,a12,qc,bN,I4,e0,cG,bU,tX,aS0,a2Y,b9,bt,aX,eb,co,aZG,bM,bw,a03,dC,e7,cn,cc,eY,db,b0,a4s,aS,eB,dB,e8,eC,c9,de,aSy,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,aY8,aUF,cJ,az,en,aUR,d8,eZ,dN,aUk,dx,bi,eS,aO,fa,cN,aVm,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,a0D,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,tR,bG,c2,dV,a_,b1,aXO],d2I=[0,"invalidation_caches","env_state"],d2P="Name_resolver.AbruptCompletion.Exn",d4L=[1,"Duplicate name defs for the same location"],d4K=[0,0,0],d4F=[0,1],d4J=[0,1],d4I=[0,1],d4G=[0,1],d4H=[1,atj],d4V=[0,1],d4U=[0,1],d4M=g,d4N=g,d4O=g,d4P=g,d4Q=g,d4R=g,d4S=g,d4T=g,d4y=a1H,d4z=[0,[11,"{(recursive cycle)\n",[2,0,[11,aXJ,0]]],"{(recursive cycle)\n%s\n}"],d4A=a1H,d4B=[0,[11,"{(illegal cycle)\n",[2,0,[11,aXJ,0]]],"{(illegal cycle)\n%s\n}"],d4v=[0,[12,91,[2,0,[11,su,[2,0,[11,Uo,[2,0,[12,93,0]]]]]]],"[%s (%s): %s]"],d4w=[0,[11,"[recursive ",[2,0,[11,su,[2,0,[11,Uo,[2,0,[12,93,0]]]]]]],"[recursive %s (%s): %s]"],d4x=[0,[11,"[illegal ",[2,0,[11,su,[2,0,[11,Uo,[2,0,[12,93,0]]]]]]],"[illegal %s (%s): %s]"],d4u="MISSING DEFINITION",d4p=[0,aH,bO,dI,aV2,a3h,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,Sh,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,a0V,df,aWK,cF,dg,aUj,a19,aVK,aYB,aVI,aXI,a27,em,aY4,dq,fa,bq,eK,aTs,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,a0O,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,aZy,bz,bc,aZK,a2g,cN,es,c4,aW1,dt,bh,a2G,bJ,d8,ek,"class_property_value_annotated",eT,aTv,eR,a1Q,ei,a3Q,eo,cW,dy,cc,ec,cR,aYp,bm,c$,c0,aZ8,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,aWA,aSt,fM],d4q=[0,cz,eA,dg,cl,ez,aJ,eD,f8,aWK,dF,dd,aW1,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,aVI,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aZ8,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,aY4,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,a19,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,aVK,aTv,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,aUj,bp,a0V,bZ,bV,dz,bv,bm,a3Q,e6,dp,aI,cr,cg,aH,cv,a2G,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,aZy,cZ,aYp,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,aSt,bL,ei,aWA,ey,df,bJ,cV,ek,aZ,eN,bc,aYB,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,a0O,b9,a2g,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,aXI,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,a1Q,e3,d3,aW,di,c0,bn,a3h,bE,aZK,bq,cO,ew,e2,aN,d9,aE,aV2,aTs,da,dI,dQ,bd,bG,c2,a27,dV,a_,b1],d4r=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,fM],d4s=[0,"seen"],d4t=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],d4W=[0,0],d4X=[0,[4,0,0,0,0],iP],d4Y=[0,[15,0],y],d40=[0,"src/parser_utils/type_sig/compact_table.ml",l8,4],d4Z="tail_exn: empty builder",d44=[0,[12,59,[17,[0,a,1,0],0]],r],d43=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],d45=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],d46=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ImplicitArg",[17,[0,a,1,0],0]]]],"(@[<2>ImplicitArg@ "],d47=[0,[17,0,[12,41,0]],t],d48=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ExplicitArg",[17,[0,a,1,0],0]]]],"(@[<2>ExplicitArg@ "],d49=[0,[17,0,[12,41,0]],t],d4_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Arg",[17,[0,a,1,0],0]]]],"(@[<2>Arg@ "],d4$=[0,[17,0,[12,41,0]],t],d5a=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SpreadArg",[17,[0,a,1,0],0]]]],"(@[<2>SpreadArg@ "],d5b=[0,[17,0,[12,41,0]],t],d8o=H,d8p=[0,[3,0,0],ag],d8q=F,d8r=G,d8l=[0,[18,[1,[0,[11,b,0],b]],[11,"FunParam {",[17,[0,w,0,0],0]]],"@[<2>FunParam {@,"],d8m=gi,d8n=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d8s=[0,[17,0,0],c],d8t=[0,[12,59,[17,[0,a,1,0],0]],r],d8u=m8,d8v=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d8w=[0,[17,0,0],c],d8x=[0,[17,0,[12,E,0]],bk],d8B=H,d8C=[0,[3,0,0],ag],d8D=F,d8E=G,d8y=[0,[18,[1,[0,[11,b,0],b]],[11,"FunRestParam {",[17,[0,w,0,0],0]]],"@[<2>FunRestParam {@,"],d8z=gi,d8A=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d8F=[0,[17,0,0],c],d8G=[0,[12,59,[17,[0,a,1,0],0]],r],d8H=gE,d8I=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d8J=[0,[17,0,0],c],d8K=[0,[12,59,[17,[0,a,1,0],0]],r],d8L=m8,d8M=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d8N=[0,[17,0,0],c],d8O=[0,[17,0,[12,E,0]],bk],d9q=[0,[18,[1,[0,[11,b,0],b]],[11,"ComponentParam {",[17,[0,w,0,0],0]]],"@[<2>ComponentParam {@,"],d9r=gi,d9s=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d9t=[0,[3,0,0],ag],d9u=[0,[17,0,0],c],d9v=[0,[12,59,[17,[0,a,1,0],0]],r],d9w=aSw,d9x=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d9y=[0,[17,0,0],c],d9z=[0,[12,59,[17,[0,a,1,0],0]],r],d9A=m8,d9B=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d9C=[0,[17,0,0],c],d9D=[0,[17,0,[12,E,0]],bk],d9E=[0,[18,[1,[0,[11,b,0],b]],[11,"ComponentRestParam {",[17,[0,w,0,0],0]]],"@[<2>ComponentRestParam {@,"],d9F=m8,d9G=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d9H=[0,[17,0,0],c],d9I=[0,[17,0,[12,E,0]],bk],d_4=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Get (",[17,[0,w,0,0],0]]]],"(@[<2>Get (@,"],d_5=[0,[12,44,[17,[0,a,1,0],0]],I],d_6=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d_7=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Set (",[17,[0,w,0,0],0]]]],"(@[<2>Set (@,"],d_8=[0,[12,44,[17,[0,a,1,0],0]],I],d_9=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d__=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"GetSet (",[17,[0,w,0,0],0]]]],"(@[<2>GetSet (@,"],d_$=[0,[12,44,[17,[0,a,1,0],0]],I],d$a=[0,[12,44,[17,[0,a,1,0],0]],I],d$b=[0,[12,44,[17,[0,a,1,0],0]],I],d$c=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],ebm=[0,[12,59,[17,[0,a,1,0],0]],r],ebl=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],ebn=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ea1="ClassImplicitExtends",ea2="ObjectPrototypeExtendsNull",ea3=[0,[18,[1,[0,[11,b,0],b]],[11,"ClassExplicitExtends {",[17,[0,w,0,0],0]]],"@[<2>ClassExplicitExtends {@,"],ea4=gE,ea5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ea6=[0,[17,0,0],c],ea7=[0,[12,59,[17,[0,a,1,0],0]],r],ea8=m8,ea9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ea_=[0,[17,0,0],c],ea$=[0,[17,0,[12,E,0]],bk],eba=[0,[18,[1,[0,[11,b,0],b]],[11,"ClassExplicitExtendsApp {",[17,[0,w,0,0],0]]],"@[<2>ClassExplicitExtendsApp {@,"],ebb=gE,ebc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ebd=[0,[17,0,0],c],ebe=[0,[12,59,[17,[0,a,1,0],0]],r],ebf=m8,ebg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ebh=[0,[17,0,0],c],ebi=[0,[12,59,[17,[0,a,1,0],0]],r],ebj=rP,ebk=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ebo=[0,[17,0,0],c],ebp=[0,[17,0,[12,E,0]],bk],ebL=[0,[12,59,[17,[0,a,1,0],0]],r],ebK=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],ebM=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ebq=[0,[18,[1,[0,[11,b,0],b]],[11,"ClassMixin {",[17,[0,w,0,0],0]]],"@[<2>ClassMixin {@,"],ebr=gE,ebs=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ebt=[0,[17,0,0],c],ebu=[0,[12,59,[17,[0,a,1,0],0]],r],ebv=m8,ebw=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ebx=[0,[17,0,0],c],eby=[0,[17,0,[12,E,0]],bk],ebz=[0,[18,[1,[0,[11,b,0],b]],[11,"ClassMixinApp {",[17,[0,w,0,0],0]]],"@[<2>ClassMixinApp {@,"],ebA=gE,ebB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ebC=[0,[17,0,0],c],ebD=[0,[12,59,[17,[0,a,1,0],0]],r],ebE=m8,ebF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ebG=[0,[17,0,0],c],ebH=[0,[12,59,[17,[0,a,1,0],0]],r],ebI=rP,ebJ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ebN=[0,[17,0,0],c],ebO=[0,[17,0,[12,E,0]],bk],edM=H,edN=[0,[9,0,0],fj],edO=F,edP=G,edK="SymbolRep",edL=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"BoolRep",[17,[0,a,1,0],0]]]],"(@[<2>BoolRep@ "],edQ=[0,[17,0,[12,41,0]],t],edR=[0,[18,[1,[0,[11,b,0],b]],[11,"NumberRep {",[17,[0,w,0,0],0]]],"@[<2>NumberRep {@,"],edS=zz,edT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],edU=[0,[9,0,0],fj],edV=[0,[17,0,0],c],edW=[0,[17,0,[12,E,0]],bk],edX=[0,[18,[1,[0,[11,b,0],b]],[11,"StringRep {",[17,[0,w,0,0],0]]],"@[<2>StringRep {@,"],edY=zz,edZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ed0=[0,[9,0,0],fj],ed1=[0,[17,0,0],c],ed2=[0,[17,0,[12,E,0]],bk],ed3=[0,[18,[1,[0,[11,b,0],b]],[11,"BigIntRep {",[17,[0,w,0,0],0]]],"@[<2>BigIntRep {@,"],ed4=zz,ed5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ed6=[0,[9,0,0],fj],ed7=[0,[17,0,0],c],ed8=[0,[17,0,[12,E,0]],bk],esj=[0,[15,0],y],esh=[0,[15,0],y],ese=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SigError",[17,[0,a,1,0],0]]]],"(@[<2>SigError@ "],esf=[0,[17,0,[12,41,0]],t],esg="CheckError",esc=[0,[15,0],y],er3="Update",er4=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Arith (",[17,[0,w,0,0],0]]]],"(@[<2>Arith (@,"],er5=[0,[12,44,[17,[0,a,1,0],0]],I],er6=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],er7=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"GetProp",[17,[0,a,1,0],0]]]],"(@[<2>GetProp@ "],er8=[0,[3,0,0],ag],er9=[0,[17,0,[12,41,0]],t],er_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"GetElem",[17,[0,a,1,0],0]]]],"(@[<2>GetElem@ "],er$=[0,[17,0,[12,41,0]],t],esa=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Unary",[17,[0,a,1,0],0]]]],"(@[<2>Unary@ "],esb=[0,[17,0,[12,41,0]],t],er1=[0,[15,0],y],eqf=H,eqg=F,eqh=G,ep_=H,ep$=F,eqa=G,eoB=[0,[12,59,[17,[0,a,1,0],0]],r],eoA=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eoC=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],en2=H,en3=F,en4=G,elQ=[0,[12,59,[17,[0,a,1,0],0]],r],elP=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],elR=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],elO=H,elS=F,elT=G,elD=[0,[12,59,[17,[0,a,1,0],0]],r],elE=[0,[3,0,0],ag],elC=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],elF=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],elk=H,ell=[0,[7,0,0,0,[12,76,0]],C5],elm=F,eln=G,ejY=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Any",[17,[0,a,1,0],0]]]],"(@[<2>Any@ "],ejZ=[0,[17,0,[12,41,0]],t],ej0=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Mixed",[17,[0,a,1,0],0]]]],"(@[<2>Mixed@ "],ej1=[0,[17,0,[12,41,0]],t],ej2=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,aTA,[17,[0,a,1,0],0]]]],"(@[<2>Empty@ "],ej3=[0,[17,0,[12,41,0]],t],ej4=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,aXy,[17,[0,a,1,0],0]]]],"(@[<2>Void@ "],ej5=[0,[17,0,[12,41,0]],t],ej6=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,ag8,[17,[0,a,1,0],0]]]],"(@[<2>Null@ "],ej7=[0,[17,0,[12,41,0]],t],ej8=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,In,[17,[0,a,1,0],0]]]],"(@[<2>Symbol@ "],ej9=[0,[17,0,[12,41,0]],t],ej_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,Ht,[17,[0,a,1,0],0]]]],"(@[<2>Number@ "],ej$=[0,[17,0,[12,41,0]],t],eka=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,amd,[17,[0,a,1,0],0]]]],"(@[<2>BigInt@ "],ekb=[0,[17,0,[12,41,0]],t],ekc=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,CW,[17,[0,a,1,0],0]]]],"(@[<2>String@ "],ekd=[0,[17,0,[12,41,0]],t],eke=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,I0,[17,[0,a,1,0],0]]]],"(@[<2>Boolean@ "],ekf=[0,[17,0,[12,41,0]],t],ekg=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Exists",[17,[0,a,1,0],0]]]],"(@[<2>Exists@ "],ekh=[0,[17,0,[12,41,0]],t],eki=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,aXm,[17,[0,a,1,0],0]]]],"(@[<2>Optional@ "],ekj=[0,[17,0,[12,41,0]],t],ekk=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Maybe (",[17,[0,w,0,0],0]]]],"(@[<2>Maybe (@,"],ekl=[0,[12,44,[17,[0,a,1,0],0]],I],ekm=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],ekn=[0,[18,[1,[0,[11,b,0],b]],[11,"Union {",[17,[0,w,0,0],0]]],"@[<2>Union {@,"],eko=gE,ekp=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ekq=[0,[17,0,0],c],ekr=[0,[12,59,[17,[0,a,1,0],0]],r],eks=aY$,ekt=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eku=[0,[17,0,0],c],ekv=[0,[12,59,[17,[0,a,1,0],0]],r],ekw=a0w,ekx=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eky=[0,[17,0,0],c],ekz=[0,[12,59,[17,[0,a,1,0],0]],r],ekA=a2C,ekB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ekC=[0,[17,0,0],c],ekD=[0,[17,0,[12,E,0]],bk],ekE=[0,[18,[1,[0,[11,b,0],b]],[11,"Intersection {",[17,[0,w,0,0],0]]],"@[<2>Intersection {@,"],ekF=gE,ekG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ekH=[0,[17,0,0],c],ekI=[0,[12,59,[17,[0,a,1,0],0]],r],ekJ=aY$,ekK=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ekL=[0,[17,0,0],c],ekM=[0,[12,59,[17,[0,a,1,0],0]],r],ekN=a0w,ekO=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ekP=[0,[17,0,0],c],ekQ=[0,[12,59,[17,[0,a,1,0],0]],r],ekR=a2C,ekS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ekT=[0,[17,0,0],c],ekU=[0,[17,0,[12,E,0]],bk],ekV=[0,[18,[1,[0,[11,b,0],b]],[11,"Tuple {",[17,[0,w,0,0],0]]],"@[<2>Tuple {@,"],ekW=gE,ekX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ekY=[0,[17,0,0],c],ekZ=[0,[12,59,[17,[0,a,1,0],0]],r],ek0=akM,ek1=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ek2=[0,[17,0,0],c],ek3=[0,[17,0,[12,E,0]],bk],ek4=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Array (",[17,[0,w,0,0],0]]]],"(@[<2>Array (@,"],ek5=[0,[12,44,[17,[0,a,1,0],0]],I],ek6=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],ek7=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ReadOnlyArray (",[17,[0,w,0,0],0]]]],"(@[<2>ReadOnlyArray (@,"],ek8=[0,[12,44,[17,[0,a,1,0],0]],I],ek9=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],ek_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SingletonString (",[17,[0,w,0,0],0]]]],"(@[<2>SingletonString (@,"],ek$=[0,[12,44,[17,[0,a,1,0],0]],I],ela=[0,[3,0,0],ag],elb=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],elc=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SingletonNumber (",[17,[0,w,0,0],0]]]],"(@[<2>SingletonNumber (@,"],eld=[0,[12,44,[17,[0,a,1,0],0]],I],ele=[0,[8,[0,0,5],0,0,0],zp],elf=[0,[12,44,[17,[0,a,1,0],0]],I],elg=[0,[3,0,0],ag],elh=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eli=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SingletonBigInt (",[17,[0,w,0,0],0]]]],"(@[<2>SingletonBigInt (@,"],elj=[0,[12,44,[17,[0,a,1,0],0]],I],elo=[0,[12,44,[17,[0,a,1,0],0]],I],elp=[0,[3,0,0],ag],elq=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],elr=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SingletonBoolean (",[17,[0,w,0,0],0]]]],"(@[<2>SingletonBoolean (@,"],els=[0,[12,44,[17,[0,a,1,0],0]],I],elt=[0,[9,0,0],fj],elu=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],elv=[0,[18,[1,[0,[11,b,0],b]],[11,"Typeof {",[17,[0,w,0,0],0]]],"@[<2>Typeof {@,"],elw=gE,elx=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ely=[0,[17,0,0],c],elz=[0,[12,59,[17,[0,a,1,0],0]],r],elA="qname",elB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],elG=[0,[17,0,0],c],elH=[0,[12,59,[17,[0,a,1,0],0]],r],elI=m8,elJ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],elK=[0,[17,0,0],c],elL=[0,[12,59,[17,[0,a,1,0],0]],r],elM=rP,elN=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],elU=[0,[17,0,0],c],elV=[0,[17,0,[12,E,0]],bk],elW=[0,[18,[1,[0,[11,b,0],b]],[11,"Bound {",[17,[0,w,0,0],0]]],"@[<2>Bound {@,"],elX=TP,elY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],elZ=[0,[17,0,0],c],el0=[0,[12,59,[17,[0,a,1,0],0]],r],el1=gi,el2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],el3=[0,[3,0,0],ag],el4=[0,[17,0,0],c],el5=[0,[17,0,[12,E,0]],bk],el6=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"TEMPORARY_Number (",[17,[0,w,0,0],0]]]],"(@[<2>TEMPORARY_Number (@,"],el7=[0,[12,44,[17,[0,a,1,0],0]],I],el8=[0,[8,[0,0,5],0,0,0],zp],el9=[0,[12,44,[17,[0,a,1,0],0]],I],el_=[0,[3,0,0],ag],el$=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],ema=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"TEMPORARY_String (",[17,[0,w,0,0],0]]]],"(@[<2>TEMPORARY_String (@,"],emb=[0,[12,44,[17,[0,a,1,0],0]],I],emc=[0,[3,0,0],ag],emd=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eme=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"TEMPORARY_LongString",[17,[0,a,1,0],0]]]],"(@[<2>TEMPORARY_LongString@ "],emf=[0,[17,0,[12,41,0]],t],emg=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"TEMPORARY_Boolean (",[17,[0,w,0,0],0]]]],"(@[<2>TEMPORARY_Boolean (@,"],emh=[0,[12,44,[17,[0,a,1,0],0]],I],emi=[0,[9,0,0],fj],emj=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],emk=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"TEMPORARY_Object",[17,[0,a,1,0],0]]]],"(@[<2>TEMPORARY_Object@ "],eml=[0,[17,0,[12,41,0]],t],emm=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"TEMPORARY_Array (",[17,[0,w,0,0],0]]]],"(@[<2>TEMPORARY_Array (@,"],emn=[0,[12,44,[17,[0,a,1,0],0]],I],emo=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],emp=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"AnyWithLowerBound (",[17,[0,w,0,0],0]]]],"(@[<2>AnyWithLowerBound (@,"],emq=[0,[12,44,[17,[0,a,1,0],0]],I],emr=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],ems=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"AnyWithUpperBound (",[17,[0,w,0,0],0]]]],"(@[<2>AnyWithUpperBound (@,"],emt=[0,[12,44,[17,[0,a,1,0],0]],I],emu=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],emv=[0,[18,[1,[0,[11,b,0],b]],[11,"PropertyType {",[17,[0,w,0,0],0]]],"@[<2>PropertyType {@,"],emw=gE,emx=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],emy=[0,[17,0,0],c],emz=[0,[12,59,[17,[0,a,1,0],0]],r],emA=Ao,emB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],emC=[0,[17,0,0],c],emD=[0,[12,59,[17,[0,a,1,0],0]],r],emE=iw,emF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],emG=[0,[3,0,0],ag],emH=[0,[17,0,0],c],emI=[0,[17,0,[12,E,0]],bk],emJ=[0,[18,[1,[0,[11,b,0],b]],[11,"ElementType {",[17,[0,w,0,0],0]]],"@[<2>ElementType {@,"],emK=gE,emL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],emM=[0,[17,0,0],c],emN=[0,[12,59,[17,[0,a,1,0],0]],r],emO=Ao,emP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],emQ=[0,[17,0,0],c],emR=[0,[12,59,[17,[0,a,1,0],0]],r],emS=aZq,emT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],emU=[0,[17,0,0],c],emV=[0,[17,0,[12,E,0]],bk],emW=[0,[18,[1,[0,[11,b,0],b]],[11,"OptionalIndexedAccessNonMaybeType {",[17,[0,w,0,0],0]]],"@[<2>OptionalIndexedAccessNonMaybeType {@,"],emX=gE,emY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],emZ=[0,[17,0,0],c],em0=[0,[12,59,[17,[0,a,1,0],0]],r],em1=Ao,em2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],em3=[0,[17,0,0],c],em4=[0,[12,59,[17,[0,a,1,0],0]],r],em5=pO,em6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],em7=[0,[17,0,0],c],em8=[0,[17,0,[12,E,0]],bk],em9=[0,[18,[1,[0,[11,b,0],b]],[11,"OptionalIndexedAccessResultType {",[17,[0,w,0,0],0]]],"@[<2>OptionalIndexedAccessResultType {@,"],em_=gE,em$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ena=[0,[17,0,0],c],enb=[0,[12,59,[17,[0,a,1,0],0]],r],enc="non_maybe_result",end=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ene=[0,[17,0,0],c],enf=[0,[12,59,[17,[0,a,1,0],0]],r],eng="void_loc",enh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eni=[0,[17,0,0],c],enj=[0,[17,0,[12,E,0]],bk],enk=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"NonMaybeType (",[17,[0,w,0,0],0]]]],"(@[<2>NonMaybeType (@,"],enl=[0,[12,44,[17,[0,a,1,0],0]],I],enm=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],enn=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Diff (",[17,[0,w,0,0],0]]]],"(@[<2>Diff (@,"],eno=[0,[12,44,[17,[0,a,1,0],0]],I],enp=[0,[12,44,[17,[0,a,1,0],0]],I],enq=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],enr=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ReadOnly (",[17,[0,w,0,0],0]]]],"(@[<2>ReadOnly (@,"],ens=[0,[12,44,[17,[0,a,1,0],0]],I],ent=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],enu=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Partial (",[17,[0,w,0,0],0]]]],"(@[<2>Partial (@,"],env=[0,[12,44,[17,[0,a,1,0],0]],I],enw=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],enx=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Required (",[17,[0,w,0,0],0]]]],"(@[<2>Required (@,"],eny=[0,[12,44,[17,[0,a,1,0],0]],I],enz=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],enA=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Keys (",[17,[0,w,0,0],0]]]],"(@[<2>Keys (@,"],enB=[0,[12,44,[17,[0,a,1,0],0]],I],enC=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],enD=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,aZs,[17,[0,w,0,0],0]]]],"(@[<2>Renders (@,"],enE=[0,[12,44,[17,[0,a,1,0],0]],I],enF=[0,[12,44,[17,[0,a,1,0],0]],I],enG=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],enH=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Values (",[17,[0,w,0,0],0]]]],"(@[<2>Values (@,"],enI=[0,[12,44,[17,[0,a,1,0],0]],I],enJ=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],enK=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Exact (",[17,[0,w,0,0],0]]]],"(@[<2>Exact (@,"],enL=[0,[12,44,[17,[0,a,1,0],0]],I],enM=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],enN=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Rest (",[17,[0,w,0,0],0]]]],"(@[<2>Rest (@,"],enO=[0,[12,44,[17,[0,a,1,0],0]],I],enP=[0,[12,44,[17,[0,a,1,0],0]],I],enQ=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],enR=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ExportsT (",[17,[0,w,0,0],0]]]],"(@[<2>ExportsT (@,"],enS=[0,[12,44,[17,[0,a,1,0],0]],I],enT=[0,[3,0,0],ag],enU=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],enV=[0,[18,[1,[0,[11,b,0],b]],[11,"Conditional {",[17,[0,w,0,0],0]]],"@[<2>Conditional {@,"],enW=gE,enX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],enY=[0,[17,0,0],c],enZ=[0,[12,59,[17,[0,a,1,0],0]],r],en0="distributive_tparam",en1=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],en5=[0,[17,0,0],c],en6=[0,[12,59,[17,[0,a,1,0],0]],r],en7="infer_tparams",en8=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],en9=[0,[17,0,0],c],en_=[0,[12,59,[17,[0,a,1,0],0]],r],en$=aTD,eoa=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eob=[0,[17,0,0],c],eoc=[0,[12,59,[17,[0,a,1,0],0]],r],eod=ag_,eoe=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eof=[0,[17,0,0],c],eog=[0,[12,59,[17,[0,a,1,0],0]],r],eoh=aql,eoi=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eoj=[0,[17,0,0],c],eok=[0,[12,59,[17,[0,a,1,0],0]],r],eol=agv,eom=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eon=[0,[17,0,0],c],eoo=[0,[17,0,[12,E,0]],bk],eop=[0,[18,[1,[0,[11,b,0],b]],[11,"Call {",[17,[0,w,0,0],0]]],"@[<2>Call {@,"],eoq=gE,eor=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eos=[0,[17,0,0],c],eot=[0,[12,59,[17,[0,a,1,0],0]],r],eou=Ij,eov=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eow=[0,[17,0,0],c],eox=[0,[12,59,[17,[0,a,1,0],0]],r],eoy="args",eoz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eoD=[0,[17,0,0],c],eoE=[0,[17,0,[12,E,0]],bk],eoF=[0,[18,[1,[0,[11,b,0],b]],[11,"TupleMap {",[17,[0,w,0,0],0]]],"@[<2>TupleMap {@,"],eoG=gE,eoH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eoI=[0,[17,0,0],c],eoJ=[0,[12,59,[17,[0,a,1,0],0]],r],eoK="tup",eoL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eoM=[0,[17,0,0],c],eoN=[0,[12,59,[17,[0,a,1,0],0]],r],eoO=Ij,eoP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eoQ=[0,[17,0,0],c],eoR=[0,[17,0,[12,E,0]],bk],eoS=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjMap {",[17,[0,w,0,0],0]]],"@[<2>ObjMap {@,"],eoT=gE,eoU=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eoV=[0,[17,0,0],c],eoW=[0,[12,59,[17,[0,a,1,0],0]],r],eoX=Ao,eoY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eoZ=[0,[17,0,0],c],eo0=[0,[12,59,[17,[0,a,1,0],0]],r],eo1=Ij,eo2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eo3=[0,[17,0,0],c],eo4=[0,[17,0,[12,E,0]],bk],eo5=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjMapi {",[17,[0,w,0,0],0]]],"@[<2>ObjMapi {@,"],eo6=gE,eo7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eo8=[0,[17,0,0],c],eo9=[0,[12,59,[17,[0,a,1,0],0]],r],eo_=Ao,eo$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],epa=[0,[17,0,0],c],epb=[0,[12,59,[17,[0,a,1,0],0]],r],epc=Ij,epd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],epe=[0,[17,0,0],c],epf=[0,[17,0,[12,E,0]],bk],epg=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjKeyMirror {",[17,[0,w,0,0],0]]],"@[<2>ObjKeyMirror {@,"],eph=gE,epi=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],epj=[0,[17,0,0],c],epk=[0,[12,59,[17,[0,a,1,0],0]],r],epl=Ao,epm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],epn=[0,[17,0,0],c],epo=[0,[17,0,[12,E,0]],bk],epp=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjMapConst {",[17,[0,w,0,0],0]]],"@[<2>ObjMapConst {@,"],epq=gE,epr=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eps=[0,[17,0,0],c],ept=[0,[12,59,[17,[0,a,1,0],0]],r],epu=Ao,epv=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],epw=[0,[17,0,0],c],epx=[0,[12,59,[17,[0,a,1,0],0]],r],epy=m8,epz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],epA=[0,[17,0,0],c],epB=[0,[17,0,[12,E,0]],bk],epC=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,aTa,[17,[0,w,0,0],0]]]],"(@[<2>CharSet (@,"],epD=[0,[12,44,[17,[0,a,1,0],0]],I],epE=[0,[3,0,0],ag],epF=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],epG=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ClassT (",[17,[0,w,0,0],0]]]],"(@[<2>ClassT (@,"],epH=[0,[12,44,[17,[0,a,1,0],0]],I],epI=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],epJ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Function_apply",[17,[0,a,1,0],0]]]],"(@[<2>Function_apply@ "],epK=[0,[17,0,[12,41,0]],t],epL=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Function_bind",[17,[0,a,1,0],0]]]],"(@[<2>Function_bind@ "],epM=[0,[17,0,[12,41,0]],t],epN=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Function_call",[17,[0,a,1,0],0]]]],"(@[<2>Function_call@ "],epO=[0,[17,0,[12,41,0]],t],epP=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Object_assign",[17,[0,a,1,0],0]]]],"(@[<2>Object_assign@ "],epQ=[0,[17,0,[12,41,0]],t],epR=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Object_getPrototypeOf",[17,[0,a,1,0],0]]]],"(@[<2>Object_getPrototypeOf@ "],epS=[0,[17,0,[12,41,0]],t],epT=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Object_setPrototypeOf",[17,[0,a,1,0],0]]]],"(@[<2>Object_setPrototypeOf@ "],epU=[0,[17,0,[12,41,0]],t],epV=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,a3f,[17,[0,a,1,0],0]]]],"(@[<2>Compose@ "],epW=[0,[17,0,[12,41,0]],t],epX=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,a3y,[17,[0,a,1,0],0]]]],"(@[<2>ComposeReverse@ "],epY=[0,[17,0,[12,41,0]],t],epZ=[0,[18,[1,[0,[11,b,0],b]],[11,"ReactAbstractComponent {",[17,[0,w,0,0],0]]],"@[<2>ReactAbstractComponent {@,"],ep0=gE,ep1=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ep2=[0,[17,0,0],c],ep3=[0,[12,59,[17,[0,a,1,0],0]],r],ep4=UR,ep5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ep6=[0,[17,0,0],c],ep7=[0,[12,59,[17,[0,a,1,0],0]],r],ep8=aj_,ep9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eqb=[0,[17,0,0],c],eqc=[0,[12,59,[17,[0,a,1,0],0]],r],eqd=qW,eqe=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eqi=[0,[17,0,0],c],eqj=[0,[17,0,[12,E,0]],bk],eqk=[0,[18,[1,[0,[11,b,0],b]],[11,"ReactConfig {",[17,[0,w,0,0],0]]],"@[<2>ReactConfig {@,"],eql=gE,eqm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eqn=[0,[17,0,0],c],eqo=[0,[12,59,[17,[0,a,1,0],0]],r],eqp=hA,eqq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eqr=[0,[17,0,0],c],eqs=[0,[12,59,[17,[0,a,1,0],0]],r],eqt=gF,equ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eqv=[0,[17,0,0],c],eqw=[0,[17,0,[12,E,0]],bk],eqx=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ReactCreateClass",[17,[0,a,1,0],0]]]],"(@[<2>ReactCreateClass@ "],eqy=[0,[17,0,[12,41,0]],t],eqz=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,a2E,[17,[0,a,1,0],0]]]],"(@[<2>ReactCreateElement@ "],eqA=[0,[17,0,[12,41,0]],t],eqB=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,aV_,[17,[0,a,1,0],0]]]],"(@[<2>ReactCloneElement@ "],eqC=[0,[17,0,[12,41,0]],t],eqD=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ReactElementFactory (",[17,[0,w,0,0],0]]]],"(@[<2>ReactElementFactory (@,"],eqE=[0,[12,44,[17,[0,a,1,0],0]],I],eqF=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eqG=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ReactElementProps (",[17,[0,w,0,0],0]]]],"(@[<2>ReactElementProps (@,"],eqH=[0,[12,44,[17,[0,a,1,0],0]],I],eqI=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eqJ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ReactElementConfig (",[17,[0,w,0,0],0]]]],"(@[<2>ReactElementConfig (@,"],eqK=[0,[12,44,[17,[0,a,1,0],0]],I],eqL=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eqM=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ReactElementRef (",[17,[0,w,0,0],0]]]],"(@[<2>ReactElementRef (@,"],eqN=[0,[12,44,[17,[0,a,1,0],0]],I],eqO=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eqP=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"FlowDebugPrint",[17,[0,a,1,0],0]]]],"(@[<2>FlowDebugPrint@ "],eqQ=[0,[17,0,[12,41,0]],t],eqR=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"FlowDebugThrow",[17,[0,a,1,0],0]]]],"(@[<2>FlowDebugThrow@ "],eqS=[0,[17,0,[12,41,0]],t],eqT=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"FlowDebugSleep",[17,[0,a,1,0],0]]]],"(@[<2>FlowDebugSleep@ "],eqU=[0,[17,0,[12,41,0]],t],eqV=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"FunAnnot (",[17,[0,w,0,0],0]]]],"(@[<2>FunAnnot (@,"],eqW=[0,[12,44,[17,[0,a,1,0],0]],I],eqX=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eqY=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ComponentAnnot (",[17,[0,w,0,0],0]]]],"(@[<2>ComponentAnnot (@,"],eqZ=[0,[12,44,[17,[0,a,1,0],0]],I],eq0=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eq1=[0,[18,[1,[0,[11,b,0],b]],[11,"MappedTypeAnnot {",[17,[0,w,0,0],0]]],"@[<2>MappedTypeAnnot {@,"],eq2=gE,eq3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eq4=[0,[17,0,0],c],eq5=[0,[12,59,[17,[0,a,1,0],0]],r],eq6=aTY,eq7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eq8=[0,[17,0,0],c],eq9=[0,[12,59,[17,[0,a,1,0],0]],r],eq_="property_type",eq$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],era=[0,[17,0,0],c],erb=[0,[12,59,[17,[0,a,1,0],0]],r],erc=a0e,erd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ere=[0,[17,0,0],c],erf=[0,[12,59,[17,[0,a,1,0],0]],r],erg=ay,erh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eri=[0,[17,0,0],c],erj=[0,[12,59,[17,[0,a,1,0],0]],r],erk=iu,erl=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],erm=[0,[17,0,0],c],ern=[0,[12,59,[17,[0,a,1,0],0]],r],ero="inline_keyof",erp=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],erq=[0,[9,0,0],fj],err=[0,[17,0,0],c],ers=[0,[17,0,[12,E,0]],bk],ert=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjAnnot {",[17,[0,w,0,0],0]]],"@[<2>ObjAnnot {@,"],eru=gE,erv=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],erw=[0,[17,0,0],c],erx=[0,[12,59,[17,[0,a,1,0],0]],r],ery=a13,erz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],erA=[0,[17,0,0],c],erB=[0,[12,59,[17,[0,a,1,0],0]],r],erC=hA,erD=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],erE=[0,[17,0,0],c],erF=[0,[12,59,[17,[0,a,1,0],0]],r],erG=zY,erH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],erI=[0,[17,0,0],c],erJ=[0,[17,0,[12,E,0]],bk],erK=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjSpreadAnnot {",[17,[0,w,0,0],0]]],"@[<2>ObjSpreadAnnot {@,"],erL=gE,erM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],erN=[0,[17,0,0],c],erO=[0,[12,59,[17,[0,a,1,0],0]],r],erP=aiC,erQ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],erR=[0,[9,0,0],fj],erS=[0,[17,0,0],c],erT=[0,[12,59,[17,[0,a,1,0],0]],r],erU=akM,erV=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],erW=[0,[17,0,0],c],erX=[0,[17,0,[12,E,0]],bk],erY=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,aWc,[17,[0,w,0,0],0]]]],"(@[<2>InlineInterface (@,"],erZ=[0,[12,44,[17,[0,a,1,0],0]],I],er0=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],ejV=[0,[15,0],y],ejR="InexactObj",ejS="ExactObj",ejT=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"IndexedObj",[17,[0,a,1,0],0]]]],"(@[<2>IndexedObj@ "],ejU=[0,[17,0,[12,41,0]],t],ejP=[0,[15,0],y],ejA=[0,[12,40,[18,[1,[0,0,g]],0]],an],ejB=[0,[12,44,[17,[0,a,1,0],0]],I],ejC=[0,[17,0,[12,41,0]],t],ejz=H,ejD=F,ejE=G,ejc=[0,[12,40,[18,[1,[0,0,g]],0]],an],ejd=[0,[12,44,[17,[0,a,1,0],0]],I],eje=[0,[17,0,[12,41,0]],t],ejb=H,ejf=F,ejg=G,eiy=H,eiz=[0,[7,0,0,0,[12,76,0]],C5],eiA=F,eiB=G,eh$=[0,[12,40,[18,[1,[0,0,g]],0]],an],eia=[0,[12,44,[17,[0,a,1,0],0]],I],eib=[0,[17,0,[12,41,0]],t],ehN=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ClassExpr (",[17,[0,w,0,0],0]]]],"(@[<2>ClassExpr (@,"],ehO=[0,[12,44,[17,[0,a,1,0],0]],I],ehP=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],ehQ=[0,[18,[1,[0,[11,b,0],b]],[11,"FunExpr {",[17,[0,w,0,0],0]]],"@[<2>FunExpr {@,"],ehR=gE,ehS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ehT=[0,[17,0,0],c],ehU=[0,[12,59,[17,[0,a,1,0],0]],r],ehV=q3,ehW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ehX=[0,[9,0,0],fj],ehY=[0,[17,0,0],c],ehZ=[0,[12,59,[17,[0,a,1,0],0]],r],eh0=xv,eh1=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eh2=[0,[9,0,0],fj],eh3=[0,[17,0,0],c],eh4=[0,[12,59,[17,[0,a,1,0],0]],r],eh5=pa,eh6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eh7=[0,[17,0,0],c],eh8=[0,[12,59,[17,[0,a,1,0],0]],r],eh9=ahC,eh_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eic=[0,[17,0,0],c],eid=[0,[17,0,[12,E,0]],bk],eie=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"StringVal",[17,[0,a,1,0],0]]]],"(@[<2>StringVal@ "],eif=[0,[17,0,[12,41,0]],t],eig=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"StringLit (",[17,[0,w,0,0],0]]]],"(@[<2>StringLit (@,"],eih=[0,[12,44,[17,[0,a,1,0],0]],I],eii=[0,[3,0,0],ag],eij=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eik=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"LongStringLit",[17,[0,a,1,0],0]]]],"(@[<2>LongStringLit@ "],eil=[0,[17,0,[12,41,0]],t],eim=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"NumberVal",[17,[0,a,1,0],0]]]],"(@[<2>NumberVal@ "],ein=[0,[17,0,[12,41,0]],t],eio=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"NumberLit (",[17,[0,w,0,0],0]]]],"(@[<2>NumberLit (@,"],eip=[0,[12,44,[17,[0,a,1,0],0]],I],eiq=[0,[8,[0,0,5],0,0,0],zp],eir=[0,[12,44,[17,[0,a,1,0],0]],I],eis=[0,[3,0,0],ag],eit=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eiu=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"BigIntVal",[17,[0,a,1,0],0]]]],"(@[<2>BigIntVal@ "],eiv=[0,[17,0,[12,41,0]],t],eiw=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"BigIntLit (",[17,[0,w,0,0],0]]]],"(@[<2>BigIntLit (@,"],eix=[0,[12,44,[17,[0,a,1,0],0]],I],eiC=[0,[12,44,[17,[0,a,1,0],0]],I],eiD=[0,[3,0,0],ag],eiE=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eiF=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"BooleanVal",[17,[0,a,1,0],0]]]],"(@[<2>BooleanVal@ "],eiG=[0,[17,0,[12,41,0]],t],eiH=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"BooleanLit (",[17,[0,w,0,0],0]]]],"(@[<2>BooleanLit (@,"],eiI=[0,[12,44,[17,[0,a,1,0],0]],I],eiJ=[0,[9,0,0],fj],eiK=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eiL=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"NullLit",[17,[0,a,1,0],0]]]],"(@[<2>NullLit@ "],eiM=[0,[17,0,[12,41,0]],t],eiN=[0,[18,[1,[0,[11,b,0],b]],[11,"DeclareModuleImplicitlyExportedObject {",[17,[0,w,0,0],0]]],"@[<2>DeclareModuleImplicitlyExportedObject {@,"],eiO=gE,eiP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eiQ=[0,[17,0,0],c],eiR=[0,[12,59,[17,[0,a,1,0],0]],r],eiS="module_name",eiT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eiU=[0,[3,0,0],ag],eiV=[0,[17,0,0],c],eiW=[0,[12,59,[17,[0,a,1,0],0]],r],eiX=hA,eiY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eiZ=[0,[17,0,0],c],ei0=[0,[17,0,[12,E,0]],bk],ei1=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjLit {",[17,[0,w,0,0],0]]],"@[<2>ObjLit {@,"],ei2=gE,ei3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ei4=[0,[17,0,0],c],ei5=[0,[12,59,[17,[0,a,1,0],0]],r],ei6=aWd,ei7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ei8=[0,[9,0,0],fj],ei9=[0,[17,0,0],c],ei_=[0,[12,59,[17,[0,a,1,0],0]],r],ei$=zY,eja=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ejh=[0,[17,0,0],c],eji=[0,[12,59,[17,[0,a,1,0],0]],r],ejj=hA,ejk=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ejl=[0,[17,0,0],c],ejm=[0,[17,0,[12,E,0]],bk],ejn=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjSpreadLit {",[17,[0,w,0,0],0]]],"@[<2>ObjSpreadLit {@,"],ejo=gE,ejp=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ejq=[0,[17,0,0],c],ejr=[0,[12,59,[17,[0,a,1,0],0]],r],ejs=aWd,ejt=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eju=[0,[9,0,0],fj],ejv=[0,[17,0,0],c],ejw=[0,[12,59,[17,[0,a,1,0],0]],r],ejx=zY,ejy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ejF=[0,[17,0,0],c],ejG=[0,[12,59,[17,[0,a,1,0],0]],r],ejH=akM,ejI=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ejJ=[0,[17,0,0],c],ejK=[0,[17,0,[12,E,0]],bk],ejL=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ArrayLit (",[17,[0,w,0,0],0]]]],"(@[<2>ArrayLit (@,"],ejM=[0,[12,44,[17,[0,a,1,0],0]],I],ejN=[0,[12,44,[17,[0,a,1,0],0]],I],ejO=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],ehL=[0,[15,0],y],egt=[0,[12,40,[18,[1,[0,0,g]],0]],an],egu=[0,[12,44,[17,[0,a,1,0],0]],I],egv=[0,[12,44,[17,[0,a,1,0],0]],I],egw=[0,[17,0,[12,41,0]],t],egs=[0,[12,59,[17,[0,a,1,0],0]],r],egr=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],egx=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ef4=[0,[12,40,[18,[1,[0,0,g]],0]],an],ef5=[0,[12,44,[17,[0,a,1,0],0]],I],ef6=[0,[17,0,[12,41,0]],t],eeN=H,eeO=F,eeP=G,eeG=H,eeH=F,eeI=G,ed_=[0,[18,[1,[0,[11,b,0],b]],[11,"TypeAlias {",[17,[0,w,0,0],0]]],"@[<2>TypeAlias {@,"],ed$=kn,eea=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eeb=[0,[17,0,0],c],eec=[0,[12,59,[17,[0,a,1,0],0]],r],eed=gi,eee=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eef=[0,[3,0,0],ag],eeg=[0,[17,0,0],c],eeh=[0,[12,59,[17,[0,a,1,0],0]],r],eei=lH,eej=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eek=[0,[17,0,0],c],eel=[0,[12,59,[17,[0,a,1,0],0]],r],eem=he,een=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eeo=[0,[17,0,0],c],eep=[0,[17,0,[12,E,0]],bk],eeq=[0,[18,[1,[0,[11,b,0],b]],[11,"OpaqueType {",[17,[0,w,0,0],0]]],"@[<2>OpaqueType {@,"],eer=kn,ees=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eet=[0,[17,0,0],c],eeu=[0,[12,59,[17,[0,a,1,0],0]],r],eev=gi,eew=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eex=[0,[3,0,0],ag],eey=[0,[17,0,0],c],eez=[0,[12,59,[17,[0,a,1,0],0]],r],eeA=lH,eeB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eeC=[0,[17,0,0],c],eeD=[0,[12,59,[17,[0,a,1,0],0]],r],eeE=Re,eeF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eeJ=[0,[17,0,0],c],eeK=[0,[12,59,[17,[0,a,1,0],0]],r],eeL=he,eeM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eeQ=[0,[17,0,0],c],eeR=[0,[17,0,[12,E,0]],bk],eeS=[0,[18,[1,[0,[11,b,0],b]],[11,"Interface {",[17,[0,w,0,0],0]]],"@[<2>Interface {@,"],eeT=kn,eeU=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eeV=[0,[17,0,0],c],eeW=[0,[12,59,[17,[0,a,1,0],0]],r],eeX=gi,eeY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eeZ=[0,[3,0,0],ag],ee0=[0,[17,0,0],c],ee1=[0,[12,59,[17,[0,a,1,0],0]],r],ee2=lH,ee3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ee4=[0,[17,0,0],c],ee5=[0,[12,59,[17,[0,a,1,0],0]],r],ee6=pa,ee7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ee8=[0,[17,0,0],c],ee9=[0,[17,0,[12,E,0]],bk],ee_=[0,[18,[1,[0,[11,b,0],b]],[11,"ClassBinding {",[17,[0,w,0,0],0]]],"@[<2>ClassBinding {@,"],ee$=kn,efa=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],efb=[0,[17,0,0],c],efc=[0,[12,59,[17,[0,a,1,0],0]],r],efd=gi,efe=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eff=[0,[3,0,0],ag],efg=[0,[17,0,0],c],efh=[0,[12,59,[17,[0,a,1,0],0]],r],efi=pa,efj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],efk=[0,[17,0,0],c],efl=[0,[17,0,[12,E,0]],bk],efm=[0,[18,[1,[0,[11,b,0],b]],[11,"DeclareClassBinding {",[17,[0,w,0,0],0]]],"@[<2>DeclareClassBinding {@,"],efn=kn,efo=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],efp=[0,[17,0,0],c],efq=[0,[12,59,[17,[0,a,1,0],0]],r],efr=gi,efs=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eft=[0,[3,0,0],ag],efu=[0,[17,0,0],c],efv=[0,[12,59,[17,[0,a,1,0],0]],r],efw=pa,efx=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],efy=[0,[17,0,0],c],efz=[0,[17,0,[12,E,0]],bk],efA=[0,[18,[1,[0,[11,b,0],b]],[11,"FunBinding {",[17,[0,w,0,0],0]]],"@[<2>FunBinding {@,"],efB=kn,efC=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],efD=[0,[17,0,0],c],efE=[0,[12,59,[17,[0,a,1,0],0]],r],efF=gi,efG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],efH=[0,[3,0,0],ag],efI=[0,[17,0,0],c],efJ=[0,[12,59,[17,[0,a,1,0],0]],r],efK=q3,efL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],efM=[0,[9,0,0],fj],efN=[0,[17,0,0],c],efO=[0,[12,59,[17,[0,a,1,0],0]],r],efP=xv,efQ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],efR=[0,[9,0,0],fj],efS=[0,[17,0,0],c],efT=[0,[12,59,[17,[0,a,1,0],0]],r],efU=Iy,efV=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],efW=[0,[17,0,0],c],efX=[0,[12,59,[17,[0,a,1,0],0]],r],efY=pa,efZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ef0=[0,[17,0,0],c],ef1=[0,[12,59,[17,[0,a,1,0],0]],r],ef2=ahC,ef3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ef7=[0,[17,0,0],c],ef8=[0,[17,0,[12,E,0]],bk],ef9=[0,[18,[1,[0,[11,b,0],b]],[11,"DeclareFun {",[17,[0,w,0,0],0]]],"@[<2>DeclareFun {@,"],ef_=kn,ef$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ega=[0,[17,0,0],c],egb=[0,[12,59,[17,[0,a,1,0],0]],r],egc=gi,egd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ege=[0,[3,0,0],ag],egf=[0,[17,0,0],c],egg=[0,[12,59,[17,[0,a,1,0],0]],r],egh=Iy,egi=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],egj=[0,[17,0,0],c],egk=[0,[12,59,[17,[0,a,1,0],0]],r],egl=pa,egm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],egn=[0,[17,0,0],c],ego=[0,[12,59,[17,[0,a,1,0],0]],r],egp=anM,egq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],egy=[0,[17,0,0],c],egz=[0,[17,0,[12,E,0]],bk],egA=[0,[18,[1,[0,[11,b,0],b]],[11,"ComponentBinding {",[17,[0,w,0,0],0]]],"@[<2>ComponentBinding {@,"],egB=kn,egC=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],egD=[0,[17,0,0],c],egE=[0,[12,59,[17,[0,a,1,0],0]],r],egF=gi,egG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],egH=[0,[3,0,0],ag],egI=[0,[17,0,0],c],egJ=[0,[12,59,[17,[0,a,1,0],0]],r],egK=Iy,egL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],egM=[0,[17,0,0],c],egN=[0,[12,59,[17,[0,a,1,0],0]],r],egO=pa,egP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],egQ=[0,[17,0,0],c],egR=[0,[17,0,[12,E,0]],bk],egS=[0,[18,[1,[0,[11,b,0],b]],[11,"DisabledComponentBinding {",[17,[0,w,0,0],0]]],"@[<2>DisabledComponentBinding {@,"],egT=kn,egU=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],egV=[0,[17,0,0],c],egW=[0,[12,59,[17,[0,a,1,0],0]],r],egX=gi,egY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],egZ=[0,[3,0,0],ag],eg0=[0,[17,0,0],c],eg1=[0,[17,0,[12,E,0]],bk],eg2=[0,[18,[1,[0,[11,b,0],b]],[11,"Variable {",[17,[0,w,0,0],0]]],"@[<2>Variable {@,"],eg3=kn,eg4=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eg5=[0,[17,0,0],c],eg6=[0,[12,59,[17,[0,a,1,0],0]],r],eg7=gi,eg8=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eg9=[0,[3,0,0],ag],eg_=[0,[17,0,0],c],eg$=[0,[12,59,[17,[0,a,1,0],0]],r],eha=pa,ehb=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ehc=[0,[17,0,0],c],ehd=[0,[17,0,[12,E,0]],bk],ehe=[0,[18,[1,[0,[11,b,0],b]],[11,"EnumBinding {",[17,[0,w,0,0],0]]],"@[<2>EnumBinding {@,"],ehf=kn,ehg=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ehh=[0,[17,0,0],c],ehi=[0,[12,59,[17,[0,a,1,0],0]],r],ehj=gi,ehk=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ehl=[0,[3,0,0],ag],ehm=[0,[17,0,0],c],ehn=[0,[12,59,[17,[0,a,1,0],0]],r],eho="rep",ehp=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ehq=[0,[17,0,0],c],ehr=[0,[12,59,[17,[0,a,1,0],0]],r],ehs=DO,eht=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ehu=[0,[17,0,0],c],ehv=[0,[12,59,[17,[0,a,1,0],0]],r],ehw=DL,ehx=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ehy=[0,[9,0,0],fj],ehz=[0,[17,0,0],c],ehA=[0,[17,0,[12,E,0]],bk],ehB=[0,[18,[1,[0,[11,b,0],b]],[11,"DisabledEnumBinding {",[17,[0,w,0,0],0]]],"@[<2>DisabledEnumBinding {@,"],ehC=kn,ehD=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ehE=[0,[17,0,0],c],ehF=[0,[12,59,[17,[0,a,1,0],0]],r],ehG=gi,ehH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ehI=[0,[3,0,0],ag],ehJ=[0,[17,0,0],c],ehK=[0,[17,0,[12,E,0]],bk],edJ=[0,[15,0],y],edE=H,edF=F,edG=G,edy=[0,[12,59,[17,[0,a,1,0],0]],r],edx=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],edz=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],edn=[0,[12,59,[17,[0,a,1,0],0]],r],edm=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],edo=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],edj=[0,[18,[1,[0,[11,b,0],b]],[11,"InterfaceSig {",[17,[0,w,0,0],0]]],"@[<2>InterfaceSig {@,"],edk=jZ,edl=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],edp=[0,[17,0,0],c],edq=[0,[12,59,[17,[0,a,1,0],0]],r],edr=hA,eds=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],edt=[0,[17,0,0],c],edu=[0,[12,59,[17,[0,a,1,0],0]],r],edv=a0x,edw=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],edA=[0,[17,0,0],c],edB=[0,[12,59,[17,[0,a,1,0],0]],r],edC=ah_,edD=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],edH=[0,[17,0,0],c],edI=[0,[17,0,[12,E,0]],bk],edh=[0,[15,0],y],edc=H,edd=F,ede=G,ec7=H,ec8=F,ec9=G,ec1=[0,[12,59,[17,[0,a,1,0],0]],r],ec0=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],ec2=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ecU=[0,[12,59,[17,[0,a,1,0],0]],r],ecT=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],ecV=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ecB=[0,[12,59,[17,[0,a,1,0],0]],r],ecA=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],ecC=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ecu=[0,[12,59,[17,[0,a,1,0],0]],r],ect=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],ecv=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eci=[0,[18,[1,[0,[11,b,0],b]],[11,"DeclareClassSig {",[17,[0,w,0,0],0]]],"@[<2>DeclareClassSig {@,"],ecj=lH,eck=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ecl=[0,[17,0,0],c],ecm=[0,[12,59,[17,[0,a,1,0],0]],r],ecn=jZ,eco=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ecp=[0,[17,0,0],c],ecq=[0,[12,59,[17,[0,a,1,0],0]],r],ecr=z7,ecs=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ecw=[0,[17,0,0],c],ecx=[0,[12,59,[17,[0,a,1,0],0]],r],ecy=sy,ecz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ecD=[0,[17,0,0],c],ecE=[0,[12,59,[17,[0,a,1,0],0]],r],ecF=aSR,ecG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ecH=[0,[17,0,0],c],ecI=[0,[12,59,[17,[0,a,1,0],0]],r],ecJ=a2j,ecK=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ecL=[0,[17,0,0],c],ecM=[0,[12,59,[17,[0,a,1,0],0]],r],ecN=aTw,ecO=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ecP=[0,[17,0,0],c],ecQ=[0,[12,59,[17,[0,a,1,0],0]],r],ecR="static_calls",ecS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ecW=[0,[17,0,0],c],ecX=[0,[12,59,[17,[0,a,1,0],0]],r],ecY=a0x,ecZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ec3=[0,[17,0,0],c],ec4=[0,[12,59,[17,[0,a,1,0],0]],r],ec5=ah_,ec6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ec_=[0,[17,0,0],c],ec$=[0,[12,59,[17,[0,a,1,0],0]],r],eda="static_dict",edb=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],edf=[0,[17,0,0],c],edg=[0,[17,0,[12,E,0]],bk],ecg=[0,[15,0],y],eb2=[0,[12,59,[17,[0,a,1,0],0]],r],eb1=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eb3=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ebQ=[0,[18,[1,[0,[11,b,0],b]],[11,"ClassSig {",[17,[0,w,0,0],0]]],"@[<2>ClassSig {@,"],ebR=lH,ebS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ebT=[0,[17,0,0],c],ebU=[0,[12,59,[17,[0,a,1,0],0]],r],ebV=jZ,ebW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ebX=[0,[17,0,0],c],ebY=[0,[12,59,[17,[0,a,1,0],0]],r],ebZ=sy,eb0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eb4=[0,[17,0,0],c],eb5=[0,[12,59,[17,[0,a,1,0],0]],r],eb6=aSR,eb7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eb8=[0,[17,0,0],c],eb9=[0,[12,59,[17,[0,a,1,0],0]],r],eb_=aTw,eb$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eca=[0,[17,0,0],c],ecb=[0,[12,59,[17,[0,a,1,0],0]],r],ecc=a2j,ecd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ece=[0,[17,0,0],c],ecf=[0,[17,0,[12,E,0]],bk],ea0=[0,[15,0],y],eaW=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ObjValueSpreadElem",[17,[0,a,1,0],0]]]],"(@[<2>ObjValueSpreadElem@ "],eaX=[0,[17,0,[12,41,0]],t],eaY=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ObjValueSpreadSlice",[17,[0,a,1,0],0]]]],"(@[<2>ObjValueSpreadSlice@ "],eaZ=[0,[17,0,[12,41,0]],t],eaU=[0,[15,0],y],eaL=H,eaM=F,eaN=G,eaG=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ObjSpreadAnnotElem",[17,[0,a,1,0],0]]]],"(@[<2>ObjSpreadAnnotElem@ "],eaH=[0,[17,0,[12,41,0]],t],eaI=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjSpreadAnnotSlice {",[17,[0,w,0,0],0]]],"@[<2>ObjSpreadAnnotSlice {@,"],eaJ=ah_,eaK=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eaO=[0,[17,0,0],c],eaP=[0,[12,59,[17,[0,a,1,0],0]],r],eaQ=hA,eaR=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eaS=[0,[17,0,0],c],eaT=[0,[17,0,[12,E,0]],bk],eaE=[0,[15,0],y],eam=H,ean=[0,[3,0,0],ag],eao=F,eap=G,eaj=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjDict {",[17,[0,w,0,0],0]]],"@[<2>ObjDict {@,"],eak=gi,eal=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eaq=[0,[17,0,0],c],ear=[0,[12,59,[17,[0,a,1,0],0]],r],eas=C8,eat=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eau=[0,[17,0,0],c],eav=[0,[12,59,[17,[0,a,1,0],0]],r],eaw=l9,eax=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eay=[0,[17,0,0],c],eaz=[0,[12,59,[17,[0,a,1,0],0]],r],eaA=g8,eaB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eaC=[0,[17,0,0],c],eaD=[0,[17,0,[12,E,0]],bk],eah=[0,[15,0],y],eac=[0,[12,40,[18,[1,[0,0,g]],0]],an],ead=[0,[12,44,[17,[0,a,1,0],0]],I],eae=[0,[12,44,[17,[0,a,1,0],0]],I],eaf=[0,[17,0,[12,41,0]],t],d$5=H,d$6=F,d$7=G,d$4=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"InterfaceField (",[17,[0,w,0,0],0]]]],"(@[<2>InterfaceField (@,"],d$8=[0,[12,44,[17,[0,a,1,0],0]],I],d$9=[0,[12,44,[17,[0,a,1,0],0]],I],d$_=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d$$=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"InterfaceAccess",[17,[0,a,1,0],0]]]],"(@[<2>InterfaceAccess@ "],eaa=[0,[17,0,[12,41,0]],t],eab=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"InterfaceMethod",[17,[0,a,1,0],0]]]],"(@[<2>InterfaceMethod@ "],eag=[0,[17,0,[12,41,0]],t],d$2=[0,[15,0],y],d$J=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ObjAnnotField (",[17,[0,w,0,0],0]]]],"(@[<2>ObjAnnotField (@,"],d$K=[0,[12,44,[17,[0,a,1,0],0]],I],d$L=[0,[12,44,[17,[0,a,1,0],0]],I],d$M=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d$N=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ObjAnnotAccess",[17,[0,a,1,0],0]]]],"(@[<2>ObjAnnotAccess@ "],d$O=[0,[17,0,[12,41,0]],t],d$P=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjAnnotMethod {",[17,[0,w,0,0],0]]],"@[<2>ObjAnnotMethod {@,"],d$Q=kn,d$R=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d$S=[0,[17,0,0],c],d$T=[0,[12,59,[17,[0,a,1,0],0]],r],d$U=Iy,d$V=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d$W=[0,[17,0,0],c],d$X=[0,[12,59,[17,[0,a,1,0],0]],r],d$Y=pa,d$Z=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d$0=[0,[17,0,0],c],d$1=[0,[17,0,[12,E,0]],bk],d$H=[0,[15,0],y],d$e=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ObjValueField (",[17,[0,w,0,0],0]]]],"(@[<2>ObjValueField (@,"],d$f=[0,[12,44,[17,[0,a,1,0],0]],I],d$g=[0,[12,44,[17,[0,a,1,0],0]],I],d$h=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d$i=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ObjValueAccess",[17,[0,a,1,0],0]]]],"(@[<2>ObjValueAccess@ "],d$j=[0,[17,0,[12,41,0]],t],d$k=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjValueMethod {",[17,[0,w,0,0],0]]],"@[<2>ObjValueMethod {@,"],d$l=kn,d$m=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d$n=[0,[17,0,0],c],d$o=[0,[12,59,[17,[0,a,1,0],0]],r],d$p=Iy,d$q=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d$r=[0,[17,0,0],c],d$s=[0,[12,59,[17,[0,a,1,0],0]],r],d$t=q3,d$u=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d$v=[0,[9,0,0],fj],d$w=[0,[17,0,0],c],d$x=[0,[12,59,[17,[0,a,1,0],0]],r],d$y=xv,d$z=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d$A=[0,[9,0,0],fj],d$B=[0,[17,0,0],c],d$C=[0,[12,59,[17,[0,a,1,0],0]],r],d$D=pa,d$E=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d$F=[0,[17,0,0],c],d$G=[0,[17,0,[12,E,0]],bk],d_3=[0,[15,0],y],d_U="ObjAnnotImplicitProto",d_V=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ObjAnnotExplicitProto (",[17,[0,w,0,0],0]]]],"(@[<2>ObjAnnotExplicitProto (@,"],d_W=[0,[12,44,[17,[0,a,1,0],0]],I],d_X=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d_Y=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjAnnotCallable {",[17,[0,w,0,0],0]]],"@[<2>ObjAnnotCallable {@,"],d_Z="ts_rev",d_0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d_1=[0,[17,0,0],c],d_2=[0,[17,0,[12,E,0]],bk],d_S=[0,[15,0],y],d_I=H,d_J=[0,[3,0,0],ag],d_K=F,d_L=G,d_i=H,d_j=[0,[3,0,0],ag],d_k=F,d_l=G,d_b=[0,[18,[1,[0,[11,b,0],b]],[11,"TupleElement {",[17,[0,w,0,0],0]]],"@[<2>TupleElement {@,"],d_c=gE,d_d=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d_e=[0,[17,0,0],c],d_f=[0,[12,59,[17,[0,a,1,0],0]],r],d_g=gi,d_h=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d_m=[0,[17,0,0],c],d_n=[0,[12,59,[17,[0,a,1,0],0]],r],d_o=m8,d_p=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d_q=[0,[17,0,0],c],d_r=[0,[12,59,[17,[0,a,1,0],0]],r],d_s=C8,d_t=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d_u=[0,[17,0,0],c],d_v=[0,[12,59,[17,[0,a,1,0],0]],r],d_w=iu,d_x=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d_y=[0,[9,0,0],fj],d_z=[0,[17,0,0],c],d_A=[0,[17,0,[12,E,0]],bk],d_B=[0,[18,[1,[0,[11,b,0],b]],[11,"TupleSpread {",[17,[0,w,0,0],0]]],"@[<2>TupleSpread {@,"],d_C=gE,d_D=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d_E=[0,[17,0,0],c],d_F=[0,[12,59,[17,[0,a,1,0],0]],r],d_G=gi,d_H=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d_M=[0,[17,0,0],c],d_N=[0,[12,59,[17,[0,a,1,0],0]],r],d_O=m8,d_P=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d_Q=[0,[17,0,0],c],d_R=[0,[17,0,[12,E,0]],bk],d9$=[0,[15,0],y],d92=H,d93=F,d94=G,d9W=[0,[12,59,[17,[0,a,1,0],0]],r],d9V=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],d9X=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],d9K=[0,[18,[1,[0,[11,b,0],b]],[11,"ComponentSig {",[17,[0,w,0,0],0]]],"@[<2>ComponentSig {@,"],d9L="params_loc",d9M=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d9N=[0,[17,0,0],c],d9O=[0,[12,59,[17,[0,a,1,0],0]],r],d9P=lH,d9Q=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d9R=[0,[17,0,0],c],d9S=[0,[12,59,[17,[0,a,1,0],0]],r],d9T=kQ,d9U=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d9Y=[0,[17,0,0],c],d9Z=[0,[12,59,[17,[0,a,1,0],0]],r],d90=a0p,d91=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d95=[0,[17,0,0],c],d96=[0,[12,59,[17,[0,a,1,0],0]],r],d97=qW,d98=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d99=[0,[17,0,0],c],d9_=[0,[17,0,[12,E,0]],bk],d9p=[0,[15,0],y],d9k=H,d9l=F,d9m=G,d8$=H,d9a=F,d9b=G,d84=H,d85=F,d86=G,d8Y=[0,[12,59,[17,[0,a,1,0],0]],r],d8X=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],d8Z=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],d8Q=[0,[18,[1,[0,[11,b,0],b]],[11,"FunSig {",[17,[0,w,0,0],0]]],"@[<2>FunSig {@,"],d8R=lH,d8S=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d8T=[0,[17,0,0],c],d8U=[0,[12,59,[17,[0,a,1,0],0]],r],d8V=kQ,d8W=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d80=[0,[17,0,0],c],d81=[0,[12,59,[17,[0,a,1,0],0]],r],d82=a0p,d83=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d87=[0,[17,0,0],c],d88=[0,[12,59,[17,[0,a,1,0],0]],r],d89="this_param",d8_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d9c=[0,[17,0,0],c],d9d=[0,[12,59,[17,[0,a,1,0],0]],r],d9e=aD,d9f=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d9g=[0,[17,0,0],c],d9h=[0,[12,59,[17,[0,a,1,0],0]],r],d9i=ax,d9j=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d9n=[0,[17,0,0],c],d9o=[0,[17,0,[12,E,0]],bk],d8k=[0,[15,0],y],d8g=[0,[12,59,[17,[0,a,1,0],0]],r],d8f=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],d8h=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],d8c=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Poly (",[17,[0,w,0,0],0]]]],"(@[<2>Poly (@,"],d8d=[0,[12,44,[17,[0,a,1,0],0]],I],d8e=[0,[12,44,[17,[0,a,1,0],0]],I],d8i=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d8j="Mono",d8a=[0,[15,0],y],d77=H,d78=F,d79=G,d70=H,d71=F,d72=G,d7K=[0,[18,[1,[0,[11,b,0],b]],[11,"TParam {",[17,[0,w,0,0],0]]],"@[<2>TParam {@,"],d7L=aSw,d7M=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d7N=[0,[17,0,0],c],d7O=[0,[12,59,[17,[0,a,1,0],0]],r],d7P=gi,d7Q=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d7R=[0,[3,0,0],ag],d7S=[0,[17,0,0],c],d7T=[0,[12,59,[17,[0,a,1,0],0]],r],d7U=C8,d7V=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d7W=[0,[17,0,0],c],d7X=[0,[12,59,[17,[0,a,1,0],0]],r],d7Y=Re,d7Z=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d73=[0,[17,0,0],c],d74=[0,[12,59,[17,[0,a,1,0],0]],r],d75=gF,d76=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],d7_=[0,[17,0,0],c],d7$=[0,[17,0,[12,E,0]],bk],d7I=[0,[15,0],y],d7B=[0,[12,40,[18,[1,[0,0,g]],0]],an],d7C=[0,[12,44,[17,[0,a,1,0],0]],I],d7D=[0,[3,0,0],ag],d7E=[0,[17,0,[12,41,0]],t],d7A=[0,[12,40,[18,[1,[0,0,g]],0]],an],d7F=[0,[12,44,[17,[0,a,1,0],0]],I],d7G=[0,[17,0,[12,41,0]],t],d7v=[0,[3,0,0],ag],d7u=H,d7w=F,d7x=G,d7s=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Predicate (",[17,[0,w,0,0],0]]]],"(@[<2>Predicate (@,"],d7t=[0,[12,44,[17,[0,a,1,0],0]],I],d7y=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d7z=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"TypeGuard",[17,[0,a,1,0],0]]]],"(@[<2>TypeGuard@ "],d7H=[0,[17,0,[12,41,0]],t],d7q=[0,[15,0],y],d7l=[0,[12,40,[18,[1,[0,0,g]],0]],an],d7m=[0,[12,44,[17,[0,a,1,0],0]],I],d7n=[0,[4,0,0,0,0],iP],d7o=[0,[17,0,[12,41,0]],t],d7i=[0,[12,59,[17,[0,a,1,0],0]],r],d7h=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],d7j=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],d7c=[0,[12,59,[17,[0,a,1,0],0]],r],d7b=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],d7d=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],d7a=H,d7e=F,d7f=G,d6H=H,d6I=[0,[7,0,0,0,[12,76,0]],C5],d6J=F,d6K=G,d5W=H,d5X=[0,[7,0,0,0,[12,76,0]],C5],d5Y=F,d5Z=G,d5d=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"AndP (",[17,[0,w,0,0],0]]]],"(@[<2>AndP (@,"],d5e=[0,[12,44,[17,[0,a,1,0],0]],I],d5f=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d5g=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"OrP (",[17,[0,w,0,0],0]]]],"(@[<2>OrP (@,"],d5h=[0,[12,44,[17,[0,a,1,0],0]],I],d5i=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d5j=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"NotP",[17,[0,a,1,0],0]]]],"(@[<2>NotP@ "],d5k=[0,[17,0,[12,41,0]],t],d5l=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ExistsP",[17,[0,a,1,0],0]]]],"(@[<2>ExistsP@ "],d5m=[0,[17,0,[12,41,0]],t],d5n=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"InstanceofP (",[17,[0,w,0,0],0]]]],"(@[<2>InstanceofP (@,"],d5o=[0,[12,44,[17,[0,a,1,0],0]],I],d5p=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d5q=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ArrP",[17,[0,a,1,0],0]]]],"(@[<2>ArrP@ "],d5r=[0,[17,0,[12,41,0]],t],d5s=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"NullP",[17,[0,a,1,0],0]]]],"(@[<2>NullP@ "],d5t=[0,[17,0,[12,41,0]],t],d5u=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"MaybeP",[17,[0,a,1,0],0]]]],"(@[<2>MaybeP@ "],d5v=[0,[17,0,[12,41,0]],t],d5w=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SingletonStrP (",[17,[0,w,0,0],0]]]],"(@[<2>SingletonStrP (@,"],d5x=[0,[12,44,[17,[0,a,1,0],0]],I],d5y=[0,[12,44,[17,[0,a,1,0],0]],I],d5z=[0,[9,0,0],fj],d5A=[0,[12,44,[17,[0,a,1,0],0]],I],d5B=[0,[3,0,0],ag],d5C=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d5D=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SingletonBoolP (",[17,[0,w,0,0],0]]]],"(@[<2>SingletonBoolP (@,"],d5E=[0,[12,44,[17,[0,a,1,0],0]],I],d5F=[0,[12,44,[17,[0,a,1,0],0]],I],d5G=[0,[9,0,0],fj],d5H=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d5I=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SingletonNumP (",[17,[0,w,0,0],0]]]],"(@[<2>SingletonNumP (@,"],d5J=[0,[12,44,[17,[0,a,1,0],0]],I],d5K=[0,[12,44,[17,[0,a,1,0],0]],I],d5L=[0,[9,0,0],fj],d5M=[0,[12,44,[17,[0,a,1,0],0]],I],d5N=[0,[8,[0,0,5],0,0,0],zp],d5O=[0,[12,44,[17,[0,a,1,0],0]],I],d5P=[0,[3,0,0],ag],d5Q=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d5R=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SingletonBigIntP (",[17,[0,w,0,0],0]]]],"(@[<2>SingletonBigIntP (@,"],d5S=[0,[12,44,[17,[0,a,1,0],0]],I],d5T=[0,[12,44,[17,[0,a,1,0],0]],I],d5U=[0,[9,0,0],fj],d5V=[0,[12,44,[17,[0,a,1,0],0]],I],d50=[0,[12,44,[17,[0,a,1,0],0]],I],d51=[0,[3,0,0],ag],d52=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d53=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"BoolP (",[17,[0,w,0,0],0]]]],"(@[<2>BoolP (@,"],d54=[0,[12,44,[17,[0,a,1,0],0]],I],d55=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d56=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"FunP",[17,[0,a,1,0],0]]]],"(@[<2>FunP@ "],d57=[0,[17,0,[12,41,0]],t],d58=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"NumP (",[17,[0,w,0,0],0]]]],"(@[<2>NumP (@,"],d59=[0,[12,44,[17,[0,a,1,0],0]],I],d5_=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d5$=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"BigIntP (",[17,[0,w,0,0],0]]]],"(@[<2>BigIntP (@,"],d6a=[0,[12,44,[17,[0,a,1,0],0]],I],d6b=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d6c=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ObjP",[17,[0,a,1,0],0]]]],"(@[<2>ObjP@ "],d6d=[0,[17,0,[12,41,0]],t],d6e=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"StrP (",[17,[0,w,0,0],0]]]],"(@[<2>StrP (@,"],d6f=[0,[12,44,[17,[0,a,1,0],0]],I],d6g=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d6h=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SymbolP (",[17,[0,w,0,0],0]]]],"(@[<2>SymbolP (@,"],d6i=[0,[12,44,[17,[0,a,1,0],0]],I],d6j=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d6k=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"VoidP",[17,[0,a,1,0],0]]]],"(@[<2>VoidP@ "],d6l=[0,[17,0,[12,41,0]],t],d6m=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SentinelStrP (",[17,[0,w,0,0],0]]]],"(@[<2>SentinelStrP (@,"],d6n=[0,[12,44,[17,[0,a,1,0],0]],I],d6o=[0,[3,0,0],ag],d6p=[0,[12,44,[17,[0,a,1,0],0]],I],d6q=[0,[12,44,[17,[0,a,1,0],0]],I],d6r=[0,[3,0,0],ag],d6s=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d6t=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SentinelNumP (",[17,[0,w,0,0],0]]]],"(@[<2>SentinelNumP (@,"],d6u=[0,[12,44,[17,[0,a,1,0],0]],I],d6v=[0,[3,0,0],ag],d6w=[0,[12,44,[17,[0,a,1,0],0]],I],d6x=[0,[12,44,[17,[0,a,1,0],0]],I],d6y=[0,[8,[0,0,5],0,0,0],zp],d6z=[0,[12,44,[17,[0,a,1,0],0]],I],d6A=[0,[3,0,0],ag],d6B=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d6C=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SentinelBigIntP (",[17,[0,w,0,0],0]]]],"(@[<2>SentinelBigIntP (@,"],d6D=[0,[12,44,[17,[0,a,1,0],0]],I],d6E=[0,[3,0,0],ag],d6F=[0,[12,44,[17,[0,a,1,0],0]],I],d6G=[0,[12,44,[17,[0,a,1,0],0]],I],d6L=[0,[12,44,[17,[0,a,1,0],0]],I],d6M=[0,[3,0,0],ag],d6N=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d6O=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SentinelBoolP (",[17,[0,w,0,0],0]]]],"(@[<2>SentinelBoolP (@,"],d6P=[0,[12,44,[17,[0,a,1,0],0]],I],d6Q=[0,[3,0,0],ag],d6R=[0,[12,44,[17,[0,a,1,0],0]],I],d6S=[0,[12,44,[17,[0,a,1,0],0]],I],d6T=[0,[9,0,0],fj],d6U=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d6V=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SentinelNullP (",[17,[0,w,0,0],0]]]],"(@[<2>SentinelNullP (@,"],d6W=[0,[12,44,[17,[0,a,1,0],0]],I],d6X=[0,[3,0,0],ag],d6Y=[0,[12,44,[17,[0,a,1,0],0]],I],d6Z=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d60=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SentinelVoidP (",[17,[0,w,0,0],0]]]],"(@[<2>SentinelVoidP (@,"],d61=[0,[12,44,[17,[0,a,1,0],0]],I],d62=[0,[3,0,0],ag],d63=[0,[12,44,[17,[0,a,1,0],0]],I],d64=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d65=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"SentinelExprP (",[17,[0,w,0,0],0]]]],"(@[<2>SentinelExprP (@,"],d66=[0,[12,44,[17,[0,a,1,0],0]],I],d67=[0,[3,0,0],ag],d68=[0,[12,44,[17,[0,a,1,0],0]],I],d69=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d6_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"LatentP (",[17,[0,w,0,0],0]]]],"(@[<2>LatentP (@,"],d6$=[0,[12,44,[17,[0,a,1,0],0]],I],d7g=[0,[12,44,[17,[0,a,1,0],0]],I],d7k=[0,[12,44,[17,[0,a,1,0],0]],I],d7p=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],d42=[0,[15,0],y],esx="unexpected empty sequence",es7=aTZ,es6="unexpected export declaration",es5=[2,1],es0=[0,kd(0,0,0)],esV=gF,esU="unexpected declare function annot",esT=af6,esS=af6,esR=f0,esQ="unexpected computed field key",esP="unexpected private field in object literal",esO=f0,esN=kN,esF=[0,a4c],esG=[0,aV4],esH=[0,Sk],esI=[0,a2q],esJ=[0,w$],esK=[0,a2h],esL=[0,IL],esM=[0,H1],esE=l$,esD=af6,esC="unexpected private name outside class",esB=aYT,esA="unexpected method",esz=aYT,esy=l$,esq="expected DeclareModule to still be the scope",esr="only call finalize_declare_module_exports_exn once per DeclareModule",esp="unexpected export type * as",eso=gF,esn=gF,esm="unexpected import type *",ez_="unexpected remote builtin",ez5=[0,[15,0],y],ezu=[0,[12,59,[17,[0,a,1,0],0]],r],ezv=[0,[3,0,0],ag],ezt=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],ezw=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eyX=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"PDef",[17,[0,a,1,0],0]]]],"(@[<2>PDef@ "],eyY=[0,[17,0,[12,41,0]],t],eyZ=[0,[18,[1,[0,[11,b,0],b]],[11,"PropP {",[17,[0,w,0,0],0]]],"@[<2>PropP {@,"],ey0=kn,ey1=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ey2=[0,[17,0,0],c],ey3=[0,[12,59,[17,[0,a,1,0],0]],r],ey4=gi,ey5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ey6=[0,[3,0,0],ag],ey7=[0,[17,0,0],c],ey8=[0,[12,59,[17,[0,a,1,0],0]],r],ey9=pa,ey_=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ey$=[0,[17,0,0],c],eza=[0,[17,0,[12,E,0]],bk],ezb=[0,[18,[1,[0,[11,b,0],b]],[11,"ComputedP {",[17,[0,w,0,0],0]]],"@[<2>ComputedP {@,"],ezc=aZq,ezd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eze=[0,[17,0,0],c],ezf=[0,[12,59,[17,[0,a,1,0],0]],r],ezg=pa,ezh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ezi=[0,[17,0,0],c],ezj=[0,[17,0,[12,E,0]],bk],ezk=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"UnsupportedLiteralP",[17,[0,a,1,0],0]]]],"(@[<2>UnsupportedLiteralP@ "],ezl=[0,[17,0,[12,41,0]],t],ezm=[0,[18,[1,[0,[11,b,0],b]],[11,"ObjRestP {",[17,[0,w,0,0],0]]],"@[<2>ObjRestP {@,"],ezn=gE,ezo=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ezp=[0,[17,0,0],c],ezq=[0,[12,59,[17,[0,a,1,0],0]],r],ezr="xs",ezs=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ezx=[0,[17,0,0],c],ezy=[0,[12,59,[17,[0,a,1,0],0]],r],ezz=pa,ezA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ezB=[0,[17,0,0],c],ezC=[0,[17,0,[12,E,0]],bk],ezD=[0,[18,[1,[0,[11,b,0],b]],[11,"IndexP {",[17,[0,w,0,0],0]]],"@[<2>IndexP {@,"],ezE=gE,ezF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ezG=[0,[17,0,0],c],ezH=[0,[12,59,[17,[0,a,1,0],0]],r],ezI=aYg,ezJ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ezK=[0,[4,0,0,0,0],iP],ezL=[0,[17,0,0],c],ezM=[0,[12,59,[17,[0,a,1,0],0]],r],ezN=pa,ezO=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ezP=[0,[17,0,0],c],ezQ=[0,[17,0,[12,E,0]],bk],ezR=[0,[18,[1,[0,[11,b,0],b]],[11,"ArrRestP {",[17,[0,w,0,0],0]]],"@[<2>ArrRestP {@,"],ezS=gE,ezT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ezU=[0,[17,0,0],c],ezV=[0,[12,59,[17,[0,a,1,0],0]],r],ezW=aYg,ezX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ezY=[0,[4,0,0,0,0],iP],ezZ=[0,[17,0,0],c],ez0=[0,[12,59,[17,[0,a,1,0],0]],r],ez1=pa,ez2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ez3=[0,[17,0,0],c],ez4=[0,[17,0,[12,E,0]],bk],eyV=[0,[15,0],y],eyN=[0,[12,59,[17,[0,a,1,0],0]],r],eyM=[0,[18,[1,[0,[11,b,0],b]],[11,CT,0]],DB],eyO=[0,[17,[0,w,0,0],[11,C6,[17,0,0]]],CU],eyG=[0,[12,59,[17,[0,a,1,0],0]],r],eyF=[0,[18,[1,[0,[11,b,0],b]],[11,CT,0]],DB],eyH=[0,[17,[0,w,0,0],[11,C6,[17,0,0]]],CU],eyt=H,eyu=F,eyv=G,eyn=[0,[12,59,[17,[0,a,1,0],0]],r],eym=[0,[18,[1,[0,[11,b,0],b]],[11,CT,0]],DB],eyo=[0,[17,[0,w,0,0],[11,C6,[17,0,0]]],CU],eyj=[0,[18,[1,[0,[11,b,0],b]],[11,"CJSModule {",[17,[0,w,0,0],0]]],"@[<2>CJSModule {@,"],eyk=a2B,eyl=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eyp=[0,[17,0,0],c],eyq=[0,[12,59,[17,[0,a,1,0],0]],r],eyr=gK,eys=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eyw=[0,[17,0,0],c],eyx=[0,[12,59,[17,[0,a,1,0],0]],r],eyy=aUS,eyz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eyA=[0,[17,0,0],c],eyB=[0,[17,0,[12,E,0]],bk],eyC=[0,[18,[1,[0,[11,b,0],b]],[11,"ESModule {",[17,[0,w,0,0],0]]],"@[<2>ESModule {@,"],eyD=a2B,eyE=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eyI=[0,[17,0,0],c],eyJ=[0,[12,59,[17,[0,a,1,0],0]],r],eyK=gK,eyL=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eyP=[0,[17,0,0],c],eyQ=[0,[12,59,[17,[0,a,1,0],0]],r],eyR=aUS,eyS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eyT=[0,[17,0,0],c],eyU=[0,[17,0,[12,E,0]],bk],eyh=[0,[15,0],y],eyc=H,eyd=F,eye=G,ex1=[0,[12,40,[18,[1,[0,0,g]],0]],an],ex2=[0,[12,44,[17,[0,a,1,0],0]],I],ex3=[0,[17,0,[12,41,0]],t],ex0=[0,[12,59,[17,[0,a,1,0],0]],r],exZ=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],ex4=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],exS=[0,[12,59,[17,[0,a,1,0],0]],r],exT=[0,[3,0,0],ag],exR=[0,[18,[1,[0,[11,b,0],b]],[11,CT,0]],DB],exU=[0,[17,[0,w,0,0],[11,C6,[17,0,0]]],CU],exJ=[0,[12,40,[18,[1,[0,0,g]],0]],an],exK=[0,[12,44,[17,[0,a,1,0],0]],I],exL=[0,[17,0,[12,41,0]],t],exI=[0,[12,59,[17,[0,a,1,0],0]],r],exH=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],exM=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],exA=[0,[12,59,[17,[0,a,1,0],0]],r],exB=[0,[3,0,0],ag],exz=[0,[18,[1,[0,[11,b,0],b]],[11,CT,0]],DB],exC=[0,[17,[0,w,0,0],[11,C6,[17,0,0]]],CU],exw=[0,[18,[1,[0,[11,b,0],b]],[11,"ESModuleInfo {",[17,[0,w,0,0],0]]],"@[<2>ESModuleInfo {@,"],exx=a28,exy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],exD=[0,[17,0,0],c],exE=[0,[12,59,[17,[0,a,1,0],0]],r],exF=aWF,exG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],exN=[0,[17,0,0],c],exO=[0,[12,59,[17,[0,a,1,0],0]],r],exP="export_keys",exQ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],exV=[0,[17,0,0],c],exW=[0,[12,59,[17,[0,a,1,0],0]],r],exX="stars",exY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ex5=[0,[17,0,0],c],ex6=[0,[12,59,[17,[0,a,1,0],0]],r],ex7=ars,ex8=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ex9=[0,[9,0,0],fj],ex_=[0,[17,0,0],c],ex$=[0,[12,59,[17,[0,a,1,0],0]],r],eya=aYF,eyb=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eyf=[0,[17,0,0],c],eyg=[0,[17,0,[12,E,0]],bk],exu=[0,[15,0],y],exp=H,exq=F,exr=G,exc=[0,[12,40,[18,[1,[0,0,g]],0]],an],exd=[0,[12,44,[17,[0,a,1,0],0]],I],exe=[0,[17,0,[12,41,0]],t],exb=[0,[12,59,[17,[0,a,1,0],0]],r],exa=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],exf=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],ew5=[0,[12,59,[17,[0,a,1,0],0]],r],ew6=[0,[3,0,0],ag],ew4=[0,[18,[1,[0,[11,b,0],b]],[11,CT,0]],DB],ew7=[0,[17,[0,w,0,0],[11,C6,[17,0,0]]],CU],ew1=[0,[18,[1,[0,[11,b,0],b]],[11,"CJSModuleInfo {",[17,[0,w,0,0],0]]],"@[<2>CJSModuleInfo {@,"],ew2=a28,ew3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ew8=[0,[17,0,0],c],ew9=[0,[12,59,[17,[0,a,1,0],0]],r],ew_=aWF,ew$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],exg=[0,[17,0,0],c],exh=[0,[12,59,[17,[0,a,1,0],0]],r],exi=ars,exj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],exk=[0,[9,0,0],fj],exl=[0,[17,0,0],c],exm=[0,[12,59,[17,[0,a,1,0],0]],r],exn=aYF,exo=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],exs=[0,[17,0,0],c],ext=[0,[17,0,[12,E,0]],bk],ewZ=[0,[15,0],y],ewT=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ExportTypeRef",[17,[0,a,1,0],0]]]],"(@[<2>ExportTypeRef@ "],ewU=[0,[17,0,[12,41,0]],t],ewV=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ExportTypeBinding",[17,[0,a,1,0],0]]]],"(@[<2>ExportTypeBinding@ "],ewW=[0,[17,0,[12,41,0]],t],ewX=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ExportTypeFrom",[17,[0,a,1,0],0]]]],"(@[<2>ExportTypeFrom@ "],ewY=[0,[17,0,[12,41,0]],t],ewR=[0,[15,0],y],ewt=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ExportRef",[17,[0,a,1,0],0]]]],"(@[<2>ExportRef@ "],ewu=[0,[17,0,[12,41,0]],t],ewv=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ExportBinding",[17,[0,a,1,0],0]]]],"(@[<2>ExportBinding@ "],eww=[0,[17,0,[12,41,0]],t],ewx=[0,[18,[1,[0,[11,b,0],b]],[11,"ExportDefault {",[17,[0,w,0,0],0]]],"@[<2>ExportDefault {@,"],ewy=a3b,ewz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ewA=[0,[17,0,0],c],ewB=[0,[12,59,[17,[0,a,1,0],0]],r],ewC=pa,ewD=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ewE=[0,[17,0,0],c],ewF=[0,[17,0,[12,E,0]],bk],ewG=[0,[18,[1,[0,[11,b,0],b]],[11,"ExportDefaultBinding {",[17,[0,w,0,0],0]]],"@[<2>ExportDefaultBinding {@,"],ewH=a3b,ewI=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ewJ=[0,[17,0,0],c],ewK=[0,[12,59,[17,[0,a,1,0],0]],r],ewL=pO,ewM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ewN=[0,[17,0,0],c],ewO=[0,[17,0,[12,E,0]],bk],ewP=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"ExportFrom",[17,[0,a,1,0],0]]]],"(@[<2>ExportFrom@ "],ewQ=[0,[17,0,[12,41,0]],t],ewr=[0,[15,0],y],ewp=[0,[15,0],y],ewo=[0,[15,0],y],ewn=[0,[15,0],y],evF=[0,[12,59,[17,[0,a,1,0],0]],r],evE=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],evG=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],evl=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,aUi,[17,[0,a,1,0],0]]]],"(@[<2>Annot@ "],evm=[0,[17,0,[12,41,0]],t],evn=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Value",[17,[0,a,1,0],0]]]],"(@[<2>Value@ "],evo=[0,[17,0,[12,41,0]],t],evp=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ref",[17,[0,a,1,0],0]]]],"(@[<2>Ref@ "],evq=[0,[17,0,[12,41,0]],t],evr=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"TyRef",[17,[0,a,1,0],0]]]],"(@[<2>TyRef@ "],evs=[0,[17,0,[12,41,0]],t],evt=[0,[18,[1,[0,[11,b,0],b]],[11,"TyRefApp {",[17,[0,w,0,0],0]]],"@[<2>TyRefApp {@,"],evu=gE,evv=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],evw=[0,[17,0,0],c],evx=[0,[12,59,[17,[0,a,1,0],0]],r],evy=gi,evz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],evA=[0,[17,0,0],c],evB=[0,[12,59,[17,[0,a,1,0],0]],r],evC=rP,evD=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],evH=[0,[17,0,0],c],evI=[0,[17,0,[12,E,0]],bk],evJ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"AsyncVoidReturn",[17,[0,a,1,0],0]]]],"(@[<2>AsyncVoidReturn@ "],evK=[0,[17,0,[12,41,0]],t],evL=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Pattern",[17,[0,a,1,0],0]]]],"(@[<2>Pattern@ "],evM=[0,[17,0,[12,41,0]],t],evN=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Err",[17,[0,a,1,0],0]]]],"(@[<2>Err@ "],evO=[0,[17,0,[12,41,0]],t],evP=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Eval (",[17,[0,w,0,0],0]]]],"(@[<2>Eval (@,"],evQ=[0,[12,44,[17,[0,a,1,0],0]],I],evR=[0,[12,44,[17,[0,a,1,0],0]],I],evS=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],evT=[0,[18,[1,[0,[11,b,0],b]],[11,"Require {",[17,[0,w,0,0],0]]],"@[<2>Require {@,"],evU=gE,evV=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],evW=[0,[17,0,0],c],evX=[0,[12,59,[17,[0,a,1,0],0]],r],evY=pO,evZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ev0=[0,[17,0,0],c],ev1=[0,[17,0,[12,E,0]],bk],ev2=[0,[18,[1,[0,[11,b,0],b]],[11,"ImportDynamic {",[17,[0,w,0,0],0]]],"@[<2>ImportDynamic {@,"],ev3=gE,ev4=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ev5=[0,[17,0,0],c],ev6=[0,[12,59,[17,[0,a,1,0],0]],r],ev7=pO,ev8=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ev9=[0,[17,0,0],c],ev_=[0,[17,0,[12,E,0]],bk],ev$=[0,[18,[1,[0,[11,b,0],b]],[11,"ModuleRef {",[17,[0,w,0,0],0]]],"@[<2>ModuleRef {@,"],ewa=gE,ewb=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ewc=[0,[17,0,0],c],ewd=[0,[12,59,[17,[0,a,1,0],0]],r],ewe=pO,ewf=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ewg=[0,[17,0,0],c],ewh=[0,[12,59,[17,[0,a,1,0],0]],r],ewi=aTC,ewj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ewk=[0,[9,0,0],fj],ewl=[0,[17,0,0],c],ewm=[0,[17,0,[12,E,0]],bk],evh=[0,[15,0],y],euZ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Unqualified",[17,[0,a,1,0],0]]]],"(@[<2>Unqualified@ "],eu0=[0,[17,0,[12,41,0]],t],eu1=[0,[18,[1,[0,[11,b,0],b]],[11,"Qualified {",[17,[0,w,0,0],0]]],"@[<2>Qualified {@,"],eu2=gE,eu3=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eu4=[0,[17,0,0],c],eu5=[0,[12,59,[17,[0,a,1,0],0]],r],eu6=kn,eu7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eu8=[0,[17,0,0],c],eu9=[0,[12,59,[17,[0,a,1,0],0]],r],eu_=gi,eu$=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eva=[0,[3,0,0],ag],evb=[0,[17,0,0],c],evc=[0,[12,59,[17,[0,a,1,0],0]],r],evd=ahg,eve=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],evf=[0,[17,0,0],c],evg=[0,[17,0,[12,E,0]],bk],euX=[0,[15,0],y],euv=[0,[18,[1,[0,[11,b,0],b]],[11,"LocalRef {",[17,[0,w,0,0],0]]],"@[<2>LocalRef {@,"],euw=TP,eux=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],euy=[0,[17,0,0],c],euz=[0,[12,59,[17,[0,a,1,0],0]],r],euA=pO,euB=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],euC=[0,[17,0,0],c],euD=[0,[17,0,[12,E,0]],bk],euE=[0,[18,[1,[0,[11,b,0],b]],[11,"RemoteRef {",[17,[0,w,0,0],0]]],"@[<2>RemoteRef {@,"],euF=TP,euG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],euH=[0,[17,0,0],c],euI=[0,[12,59,[17,[0,a,1,0],0]],r],euJ=pO,euK=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],euL=[0,[17,0,0],c],euM=[0,[17,0,[12,E,0]],bk],euN=[0,[18,[1,[0,[11,b,0],b]],[11,"BuiltinRef {",[17,[0,w,0,0],0]]],"@[<2>BuiltinRef {@,"],euO=TP,euP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],euQ=[0,[17,0,0],c],euR=[0,[12,59,[17,[0,a,1,0],0]],r],euS=gi,euT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],euU=[0,[3,0,0],ag],euV=[0,[17,0,0],c],euW=[0,[17,0,[12,E,0]],bk],eut=[0,[15,0],y],es_=[0,[18,[1,[0,[11,b,0],b]],[11,"Import {",[17,[0,w,0,0],0]]],"@[<2>Import {@,"],es$=kn,eta=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],etb=[0,[17,0,0],c],etc=[0,[12,59,[17,[0,a,1,0],0]],r],etd=gi,ete=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],etf=[0,[3,0,0],ag],etg=[0,[17,0,0],c],eth=[0,[12,59,[17,[0,a,1,0],0]],r],eti=pO,etj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],etk=[0,[17,0,0],c],etl=[0,[12,59,[17,[0,a,1,0],0]],r],etm=Uf,etn=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eto=[0,[3,0,0],ag],etp=[0,[17,0,0],c],etq=[0,[17,0,[12,E,0]],bk],etr=[0,[18,[1,[0,[11,b,0],b]],[11,"ImportType {",[17,[0,w,0,0],0]]],"@[<2>ImportType {@,"],ets=kn,ett=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],etu=[0,[17,0,0],c],etv=[0,[12,59,[17,[0,a,1,0],0]],r],etw=gi,etx=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],ety=[0,[3,0,0],ag],etz=[0,[17,0,0],c],etA=[0,[12,59,[17,[0,a,1,0],0]],r],etB=pO,etC=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],etD=[0,[17,0,0],c],etE=[0,[12,59,[17,[0,a,1,0],0]],r],etF=Uf,etG=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],etH=[0,[3,0,0],ag],etI=[0,[17,0,0],c],etJ=[0,[17,0,[12,E,0]],bk],etK=[0,[18,[1,[0,[11,b,0],b]],[11,"ImportTypeof {",[17,[0,w,0,0],0]]],"@[<2>ImportTypeof {@,"],etL=kn,etM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],etN=[0,[17,0,0],c],etO=[0,[12,59,[17,[0,a,1,0],0]],r],etP=gi,etQ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],etR=[0,[3,0,0],ag],etS=[0,[17,0,0],c],etT=[0,[12,59,[17,[0,a,1,0],0]],r],etU=pO,etV=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],etW=[0,[17,0,0],c],etX=[0,[12,59,[17,[0,a,1,0],0]],r],etY=Uf,etZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],et0=[0,[3,0,0],ag],et1=[0,[17,0,0],c],et2=[0,[17,0,[12,E,0]],bk],et3=[0,[18,[1,[0,[11,b,0],b]],[11,"ImportTypeofNs {",[17,[0,w,0,0],0]]],"@[<2>ImportTypeofNs {@,"],et4=kn,et5=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],et6=[0,[17,0,0],c],et7=[0,[12,59,[17,[0,a,1,0],0]],r],et8=gi,et9=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],et_=[0,[3,0,0],ag],et$=[0,[17,0,0],c],eua=[0,[12,59,[17,[0,a,1,0],0]],r],eub=pO,euc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eud=[0,[17,0,0],c],eue=[0,[17,0,[12,E,0]],bk],euf=[0,[18,[1,[0,[11,b,0],b]],[11,"ImportNs {",[17,[0,w,0,0],0]]],"@[<2>ImportNs {@,"],eug=kn,euh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eui=[0,[17,0,0],c],euj=[0,[12,59,[17,[0,a,1,0],0]],r],euk=gi,eul=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eum=[0,[3,0,0],ag],eun=[0,[17,0,0],c],euo=[0,[12,59,[17,[0,a,1,0],0]],r],eup=pO,euq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eur=[0,[17,0,0],c],eus=[0,[17,0,[12,E,0]],bk],eAd="Cannot get list from frozen holder",eAa=[0,0],eAb="Sourcemap.MappingHolder.MappingHolderException",eAh=tI,eAg="",eAe=[0,0,0],eAf=[0,1,0],eAm=[0,1,1],eAl=[0,0,0],eAk=[0,0,[0,1,1],0],eAj=[7,0,1],eAC=aoL,eAx=aUJ,eAD='\\"',eAF="\\x00",eAE="\\0",eAG=a4g,eAH=a1e,eAI=ahl,eAJ="\\v",eAK="\\f",eAL=aWt,eAB=[0,[11,"\\x",[4,6,[0,2,2],0,0]],"\\x%02x"],eAA=[0,[11,ajr,[4,6,[0,2,4],0,0]],"\\u%04x"],eAy=[0,[11,ajr,[4,6,[0,1,4],0,0]],aVf],eAz=[0,[11,ajr,[4,6,[0,1,4],0,0]],aVf],eAu=[0,0,0],eAv=sE,eAw=T_,eAt=g,eAq=[0,[5,sB],[5,F]],eAr=[0,[5,F],0],eAs=[5,sB],eAn=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],eAo=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],eAp=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],eBu=[0,[15,0],y],eBc=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],eBd="Ty_symbol.sym_provenance",eBe=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eBf=[0,[17,0,0],c],eBg=[0,[12,59,[17,[0,a,1,0],0]],r],eBh="sym_def_loc",eBi=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eBj=[0,[17,0,0],c],eBk=[0,[12,59,[17,[0,a,1,0],0]],r],eBl="sym_name",eBm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eBn=[0,[17,0,0],c],eBo=[0,[12,59,[17,[0,a,1,0],0]],r],eBp="sym_anonymous",eBq=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eBr=[0,[9,0,0],fj],eBs=[0,[17,0,0],c],eBt=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],eBb=[0,[2,0,0],Ac],eBa=[0,[15,0],y],eA6="Ty_symbol.Local",eA7="Ty_symbol.Builtin",eA8=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty_symbol.Remote",[17,[0,a,1,0],0]]]],"(@[<2>Ty_symbol.Remote@ "],eA9=[0,[17,0,[12,41,0]],t],eA_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty_symbol.Library",[17,[0,a,1,0],0]]]],"(@[<2>Ty_symbol.Library@ "],eA$=[0,[17,0,[12,41,0]],t],eA5=[0,[15,0],y],eA0=H,eA1=F,eA2=G,eAX=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],eAY="Ty_symbol.imported_as",eAZ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eA3=[0,[17,0,0],c],eA4=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],eAW=[0,[15,0],y],eAV=[0,[2,0,0],Ac],eAU=[0,[15,0],y],eAR="Ty_symbol.ValueMode",eAS="Ty_symbol.TypeMode",eAT="Ty_symbol.TypeofMode",eBv=[0,kM,lM,lB,kP,lz,lP,lJ,lh,z9,zc],eNk=Sm,eNl=It,eNm=Ta,eNn=De,eNo=SG,eNp=aq7,eNq=IQ,eNr=IU,eNs=IM,eNt=DT,eNu=asC,eNv=ahc,eNw=RI,eNx="$ObjectMapConst",eNy=apm,eNz=am8,eNA=Tk,eNB=ID,eNC=Jd,eND=Hr,eNE=akI,eNF=afU,eNf=sN,eNg=aE,eNh="type alias",eNi=sQ,eNj=r0,eNd=[0,[15,0],y],eM$=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Type",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Type@ "],eNa=[0,[17,0,[12,41,0]],t],eNb=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Decl",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Decl@ "],eNc=[0,[17,0,[12,41,0]],t],eM_=[0,[15,0],y],eM5=H,eM6=F,eM7=G,eMZ=[0,[12,59,[17,[0,a,1,0],0]],r],eMY=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eM0=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eMR=H,eMS=F,eMT=G,eMD=[0,[12,59,[17,[0,a,1,0],0]],r],eMC=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eME=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eMB=H,eMF=F,eMG=G,eMn=[0,[12,59,[17,[0,a,1,0],0]],r],eMm=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eMo=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eMl=H,eMp=F,eMq=G,eMe=[0,[12,59,[17,[0,a,1,0],0]],r],eMd=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eMf=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eMc=H,eMg=F,eMh=G,eL7=H,eL8=F,eL9=G,eLZ=[0,[12,59,[17,[0,a,1,0],0]],r],eLY=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eL0=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eLX=H,eL1=F,eL2=G,eLI=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.VariableDecl (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.VariableDecl (@,"],eLJ=[0,[12,44,[17,[0,a,1,0],0]],I],eLK=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eLL=[0,[18,[1,[0,[11,b,0],b]],[11,"Ty.TypeAliasDecl {",[17,[0,w,0,0],0]]],"@[<2>Ty.TypeAliasDecl {@,"],eLM=aB,eLN=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eLO=[0,[9,0,0],fj],eLP=[0,[17,0,0],c],eLQ=[0,[12,59,[17,[0,a,1,0],0]],r],eLR=gi,eLS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eLT=[0,[17,0,0],c],eLU=[0,[12,59,[17,[0,a,1,0],0]],r],eLV=lH,eLW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eL3=[0,[17,0,0],c],eL4=[0,[12,59,[17,[0,a,1,0],0]],r],eL5=ar,eL6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eL_=[0,[17,0,0],c],eL$=[0,[17,0,[12,E,0]],bk],eMa=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ClassDecl (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.ClassDecl (@,"],eMb=[0,[12,44,[17,[0,a,1,0],0]],I],eMi=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eMj=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.InterfaceDecl (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.InterfaceDecl (@,"],eMk=[0,[12,44,[17,[0,a,1,0],0]],I],eMr=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eMs=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.EnumDecl",[17,[0,a,1,0],0]]]],"(@[<2>Ty.EnumDecl@ "],eMt=[0,[17,0,[12,41,0]],t],eMu=[0,[18,[1,[0,[11,b,0],b]],[11,"Ty.NominalComponentDecl {",[17,[0,w,0,0],0]]],"@[<2>Ty.NominalComponentDecl {@,"],eMv=gi,eMw=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eMx=[0,[17,0,0],c],eMy=[0,[12,59,[17,[0,a,1,0],0]],r],eMz=lH,eMA=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eMH=[0,[17,0,0],c],eMI=[0,[12,59,[17,[0,a,1,0],0]],r],eMJ="is_type",eMK=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eML=[0,[9,0,0],fj],eMM=[0,[17,0,0],c],eMN=[0,[17,0,[12,E,0]],bk],eMO=[0,[18,[1,[0,[11,b,0],b]],[11,"Ty.ModuleDecl {",[17,[0,w,0,0],0]]],"@[<2>Ty.ModuleDecl {@,"],eMP=gi,eMQ=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eMU=[0,[17,0,0],c],eMV=[0,[12,59,[17,[0,a,1,0],0]],r],eMW=gK,eMX=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eM1=[0,[17,0,0],c],eM2=[0,[12,59,[17,[0,a,1,0],0]],r],eM3=gF,eM4=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eM8=[0,[17,0,0],c],eM9=[0,[17,0,[12,E,0]],bk],eLH=[0,[15,0],y],eLA="Ty.FunProto",eLB="Ty.ObjProto",eLC="Ty.FunProtoApply",eLD="Ty.FunProtoBind",eLE="Ty.FunProtoCall",eLF=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.TSymbol",[17,[0,a,1,0],0]]]],"(@[<2>Ty.TSymbol@ "],eLG=[0,[17,0,[12,41,0]],t],eLz=[0,[15,0],y],eLw="Ty.Positive",eLx="Ty.Negative",eLy="Ty.Neutral",eLv=[0,[15,0],y],eLs="Ty.RendersNormal",eLt="Ty.RendersMaybe",eLu="Ty.RendersStar",eLr=[0,[15,0],y],eLb=[0,[12,59,[17,[0,a,1,0],0]],r],eLa=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eLc=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eKz=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Keys",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Keys@ "],eKA=[0,[17,0,[12,41,0]],t],eKB=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Values",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Values@ "],eKC=[0,[17,0,[12,41,0]],t],eKD=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ReadOnly",[17,[0,a,1,0],0]]]],"(@[<2>Ty.ReadOnly@ "],eKE=[0,[17,0,[12,41,0]],t],eKF=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Partial",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Partial@ "],eKG=[0,[17,0,[12,41,0]],t],eKH=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Required",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Required@ "],eKI=[0,[17,0,[12,41,0]],t],eKJ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Exact",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Exact@ "],eKK=[0,[17,0,[12,41,0]],t],eKL=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Diff (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.Diff (@,"],eKM=[0,[12,44,[17,[0,a,1,0],0]],I],eKN=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eKO=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Rest (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.Rest (@,"],eKP=[0,[12,44,[17,[0,a,1,0],0]],I],eKQ=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eKR=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ElementType (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.ElementType (@,"],eKS=[0,[12,44,[17,[0,a,1,0],0]],I],eKT=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eKU=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.NonMaybeType",[17,[0,a,1,0],0]]]],"(@[<2>Ty.NonMaybeType@ "],eKV=[0,[17,0,[12,41,0]],t],eKW=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ObjMap (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.ObjMap (@,"],eKX=[0,[12,44,[17,[0,a,1,0],0]],I],eKY=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eKZ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ObjMapi (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.ObjMapi (@,"],eK0=[0,[12,44,[17,[0,a,1,0],0]],I],eK1=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eK2=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ObjKeyMirror",[17,[0,a,1,0],0]]]],"(@[<2>Ty.ObjKeyMirror@ "],eK3=[0,[17,0,[12,41,0]],t],eK4=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ObjMapConst (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.ObjMapConst (@,"],eK5=[0,[12,44,[17,[0,a,1,0],0]],I],eK6=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eK7=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.TupleMap (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.TupleMap (@,"],eK8=[0,[12,44,[17,[0,a,1,0],0]],I],eK9=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eK_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Call (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.Call (@,"],eK$=[0,[12,44,[17,[0,a,1,0],0]],I],eLd=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eLe=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Class",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Class@ "],eLf=[0,[17,0,[12,41,0]],t],eLg=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ReactElementPropsType",[17,[0,a,1,0],0]]]],"(@[<2>Ty.ReactElementPropsType@ "],eLh=[0,[17,0,[12,41,0]],t],eLi=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ReactElementConfigType",[17,[0,a,1,0],0]]]],"(@[<2>Ty.ReactElementConfigType@ "],eLj=[0,[17,0,[12,41,0]],t],eLk=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ReactElementRefType",[17,[0,a,1,0],0]]]],"(@[<2>Ty.ReactElementRefType@ "],eLl=[0,[17,0,[12,41,0]],t],eLm=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ReactCheckComponentRef",[17,[0,a,1,0],0]]]],"(@[<2>Ty.ReactCheckComponentRef@ "],eLn=[0,[17,0,[12,41,0]],t],eLo=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ReactConfigType (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.ReactConfigType (@,"],eLp=[0,[12,44,[17,[0,a,1,0],0]],I],eLq=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eKy=[0,[15,0],y],eKt=H,eKu=F,eKv=G,eKi=H,eKj=F,eKk=G,eKa=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],eKb="Ty.tp_name",eKc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eKd=[0,[3,0,0],ag],eKe=[0,[17,0,0],c],eKf=[0,[12,59,[17,[0,a,1,0],0]],r],eKg="tp_bound",eKh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eKl=[0,[17,0,0],c],eKm=[0,[12,59,[17,[0,a,1,0],0]],r],eKn="tp_polarity",eKo=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eKp=[0,[17,0,0],c],eKq=[0,[12,59,[17,[0,a,1,0],0]],r],eKr="tp_default",eKs=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eKw=[0,[17,0,0],c],eKx=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],eJ$=[0,[15,0],y],eJX=H,eJY=[0,[3,0,0],ag],eJZ=F,eJ0=G,eJQ=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],eJR="Ty.dict_polarity",eJS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eJT=[0,[17,0,0],c],eJU=[0,[12,59,[17,[0,a,1,0],0]],r],eJV="dict_name",eJW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eJ1=[0,[17,0,0],c],eJ2=[0,[12,59,[17,[0,a,1,0],0]],r],eJ3="dict_key",eJ4=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eJ5=[0,[17,0,0],c],eJ6=[0,[12,59,[17,[0,a,1,0],0]],r],eJ7="dict_value",eJ8=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eJ9=[0,[17,0,0],c],eJ_=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],eJP=[0,[15,0],y],eJG=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],eJH="Ty.optional",eJI=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eJJ=[0,[17,0,0],c],eJK=[0,[12,59,[17,[0,a,1,0],0]],r],eJL=C8,eJM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eJN=[0,[17,0,0],c],eJO=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],eJF=[0,[15,0],y],eJC="Ty.RemoveOptional",eJD="Ty.KeepOptionality",eJE="Ty.MakeOptional",eJB=[0,[15,0],y],eJw="Ty.Other",eJx="Ty.Interface",eJy=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.PrimitiveProto",[17,[0,a,1,0],0]]]],"(@[<2>Ty.PrimitiveProto@ "],eJz=[0,[3,0,0],ag],eJA=[0,[17,0,[12,41,0]],t],eJv=[0,[15,0],y],eJb=[0,[18,[1,[0,[11,b,0],b]],[11,"Ty.Field {",[17,[0,w,0,0],0]]],"@[<2>Ty.Field {@,"],eJc=m8,eJd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eJe=[0,[17,0,0],c],eJf=[0,[12,59,[17,[0,a,1,0],0]],r],eJg=C8,eJh=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eJi=[0,[17,0,0],c],eJj=[0,[12,59,[17,[0,a,1,0],0]],r],eJk=iu,eJl=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eJm=[0,[9,0,0],fj],eJn=[0,[17,0,0],c],eJo=[0,[17,0,[12,E,0]],bk],eJp=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Method",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Method@ "],eJq=[0,[17,0,[12,41,0]],t],eJr=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Get",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Get@ "],eJs=[0,[17,0,[12,41,0]],t],eJt=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Set",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Set@ "],eJu=[0,[17,0,[12,41,0]],t],eJa=[0,[15,0],y],eI8="Ty.Unspecialized",eI9="Ty.Homomorphic",eI_=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.SemiHomomorphic",[17,[0,a,1,0],0]]]],"(@[<2>Ty.SemiHomomorphic@ "],eI$=[0,[17,0,[12,41,0]],t],eI7=[0,[15,0],y],eIE=[0,[12,59,[17,[0,a,1,0],0]],r],eID=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eIF=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eIj=[0,[18,[1,[0,[11,b,0],b]],[11,"Ty.NamedProp {",[17,[0,w,0,0],0]]],"@[<2>Ty.NamedProp {@,"],eIk=gi,eIl=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eIm=[0,[17,0,0],c],eIn=[0,[12,59,[17,[0,a,1,0],0]],r],eIo=iw,eIp=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eIq=[0,[17,0,0],c],eIr=[0,[12,59,[17,[0,a,1,0],0]],r],eIs="inherited",eIt=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eIu=[0,[9,0,0],fj],eIv=[0,[17,0,0],c],eIw=[0,[12,59,[17,[0,a,1,0],0]],r],eIx=qY,eIy=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eIz=[0,[17,0,0],c],eIA=[0,[12,59,[17,[0,a,1,0],0]],r],eIB="def_locs",eIC=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eIG=[0,[17,0,0],c],eIH=[0,[17,0,[12,E,0]],bk],eII=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.CallProp",[17,[0,a,1,0],0]]]],"(@[<2>Ty.CallProp@ "],eIJ=[0,[17,0,[12,41,0]],t],eIK=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.SpreadProp",[17,[0,a,1,0],0]]]],"(@[<2>Ty.SpreadProp@ "],eIL=[0,[17,0,[12,41,0]],t],eIM=[0,[18,[1,[0,[11,b,0],b]],[11,"Ty.MappedTypeProp {",[17,[0,w,0,0],0]]],"@[<2>Ty.MappedTypeProp {@,"],eIN=a0e,eIO=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eIP=[0,[17,0,0],c],eIQ=[0,[12,59,[17,[0,a,1,0],0]],r],eIR=qY,eIS=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eIT=[0,[17,0,0],c],eIU=[0,[12,59,[17,[0,a,1,0],0]],r],eIV=iw,eIW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eIX=[0,[17,0,0],c],eIY=[0,[12,59,[17,[0,a,1,0],0]],r],eIZ=akQ,eI0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eI1=[0,[17,0,0],c],eI2=[0,[12,59,[17,[0,a,1,0],0]],r],eI3="homomorphic",eI4=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eI5=[0,[17,0,0],c],eI6=[0,[17,0,[12,E,0]],bk],eIi=[0,[15,0],y],eIc=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],eId="Ty.prm_optional",eIe=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eIf=[0,[9,0,0],fj],eIg=[0,[17,0,0],c],eIh=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],eIb=[0,[15,0],y],eH8=H,eH9=F,eH_=G,eH2=[0,[12,59,[17,[0,a,1,0],0]],r],eH1=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eH3=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eHV=[0,[12,59,[17,[0,a,1,0],0]],r],eHU=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eHW=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eHR=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],eHS="Ty.if_extends",eHT=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eHX=[0,[17,0,0],c],eHY=[0,[12,59,[17,[0,a,1,0],0]],r],eHZ="if_props",eH0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eH4=[0,[17,0,0],c],eH5=[0,[12,59,[17,[0,a,1,0],0]],r],eH6="if_dict",eH7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eH$=[0,[17,0,0],c],eIa=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],eHQ=[0,[15,0],y],eHG=H,eHH=[0,[3,0,0],ag],eHI=F,eHJ=G,eHk=H,eHl=[0,[3,0,0],ag],eHm=F,eHn=G,eHh=[0,[18,[1,[0,[11,b,0],b]],[11,"Ty.TupleElement {",[17,[0,w,0,0],0]]],"@[<2>Ty.TupleElement {@,"],eHi=gi,eHj=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eHo=[0,[17,0,0],c],eHp=[0,[12,59,[17,[0,a,1,0],0]],r],eHq=m8,eHr=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eHs=[0,[17,0,0],c],eHt=[0,[12,59,[17,[0,a,1,0],0]],r],eHu=C8,eHv=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eHw=[0,[17,0,0],c],eHx=[0,[12,59,[17,[0,a,1,0],0]],r],eHy=iu,eHz=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eHA=[0,[9,0,0],fj],eHB=[0,[17,0,0],c],eHC=[0,[17,0,[12,E,0]],bk],eHD=[0,[18,[1,[0,[11,b,0],b]],[11,"Ty.TupleSpread {",[17,[0,w,0,0],0]]],"@[<2>Ty.TupleSpread {@,"],eHE=gi,eHF=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eHK=[0,[17,0,0],c],eHL=[0,[12,59,[17,[0,a,1,0],0]],r],eHM=m8,eHN=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eHO=[0,[17,0,0],c],eHP=[0,[17,0,[12,E,0]],bk],eHg=[0,[15,0],y],eG8=H,eG9=[0,[9,0,0],fj],eG_=F,eG$=G,eG0=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],eG1="Ty.arr_readonly",eG2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eG3=[0,[9,0,0],fj],eG4=[0,[17,0,0],c],eG5=[0,[12,59,[17,[0,a,1,0],0]],r],eG6="arr_literal",eG7=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eHa=[0,[17,0,0],c],eHb=[0,[12,59,[17,[0,a,1,0],0]],r],eHc="arr_elt_t",eHd=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eHe=[0,[17,0,0],c],eHf=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],eGZ=[0,[15,0],y],eGR=[0,[12,59,[17,[0,a,1,0],0]],r],eGQ=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eGS=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eGI=H,eGJ=[0,[9,0,0],fj],eGK=F,eGL=G,eGw=H,eGx=F,eGy=G,eGt=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],eGu="Ty.obj_def_loc",eGv=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eGz=[0,[17,0,0],c],eGA=[0,[12,59,[17,[0,a,1,0],0]],r],eGB="obj_frozen",eGC=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eGD=[0,[9,0,0],fj],eGE=[0,[17,0,0],c],eGF=[0,[12,59,[17,[0,a,1,0],0]],r],eGG="obj_literal",eGH=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eGM=[0,[17,0,0],c],eGN=[0,[12,59,[17,[0,a,1,0],0]],r],eGO="obj_props",eGP=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eGT=[0,[17,0,0],c],eGU=[0,[12,59,[17,[0,a,1,0],0]],r],eGV=a13,eGW=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eGX=[0,[17,0,0],c],eGY=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],eGs=[0,[15,0],y],eGn="Ty.ExactObj",eGo="Ty.InexactObj",eGp="Ty.MappedTypeObj",eGq=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.IndexedObj",[17,[0,a,1,0],0]]]],"(@[<2>Ty.IndexedObj@ "],eGr=[0,[17,0,[12,41,0]],t],eGm=[0,[15,0],y],eGg=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.ReturnType",[17,[0,a,1,0],0]]]],"(@[<2>Ty.ReturnType@ "],eGh=[0,[17,0,[12,41,0]],t],eGi=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.TypeGuard (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.TypeGuard (@,"],eGj=[0,[3,0,0],ag],eGk=[0,[12,44,[17,[0,a,1,0],0]],I],eGl=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eGf=[0,[15,0],y],eF7=[0,[12,59,[17,[0,a,1,0],0]],r],eF6=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eF8=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eF5=H,eF9=F,eF_=G,eFP=H,eFQ=[0,[3,0,0],ag],eFR=F,eFS=G,eFO=[0,[12,40,[18,[1,[0,0,g]],0]],an],eFT=[0,[12,44,[17,[0,a,1,0],0]],I],eFU=[0,[17,0,[12,41,0]],t],eFN=H,eFV=F,eFW=G,eFB=H,eFC=[0,[3,0,0],ag],eFD=F,eFE=G,eFA=[0,[12,40,[18,[1,[0,0,g]],0]],an],eFF=[0,[12,44,[17,[0,a,1,0],0]],I],eFG=[0,[12,44,[17,[0,a,1,0],0]],I],eFH=[0,[17,0,[12,41,0]],t],eFz=[0,[12,59,[17,[0,a,1,0],0]],r],eFy=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eFI=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eFv=[0,[18,[1,[0,[11,b,0],b]],[11,ac,0]],ae],eFw="Ty.fun_params",eFx=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eFJ=[0,[17,0,0],c],eFK=[0,[12,59,[17,[0,a,1,0],0]],r],eFL="fun_rest_param",eFM=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eFX=[0,[17,0,0],c],eFY=[0,[12,59,[17,[0,a,1,0],0]],r],eFZ="fun_return",eF0=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eF1=[0,[17,0,0],c],eF2=[0,[12,59,[17,[0,a,1,0],0]],r],eF3="fun_type_params",eF4=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eF$=[0,[17,0,0],c],eGa=[0,[12,59,[17,[0,a,1,0],0]],r],eGb="fun_static",eGc=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eGd=[0,[17,0,0],c],eGe=[0,[17,[0,a,1,0],[12,E,[17,0,0]]],ad],eFu=[0,[15,0],y],eFp="Ty.ClassKind",eFq="Ty.InterfaceKind",eFr="Ty.TypeAliasKind",eFs="Ty.EnumKind",eFt="Ty.ComponentKind",eFo=[0,[15,0],y],eFk="Ty.EmptyMatchingPropT",eFl="Ty.EmptyType",eFm=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.NoLowerWithUpper",[17,[0,a,1,0],0]]]],"(@[<2>Ty.NoLowerWithUpper@ "],eFn=[0,[17,0,[12,41,0]],t],eFj=[0,[15,0],y],eFd="Ty.NoUpper",eFe=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.SomeKnownUpper",[17,[0,a,1,0],0]]]],"(@[<2>Ty.SomeKnownUpper@ "],eFf=[0,[17,0,[12,41,0]],t],eFg=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.SomeUnknownUpper",[17,[0,a,1,0],0]]]],"(@[<2>Ty.SomeUnknownUpper@ "],eFh=[0,[3,0,0],ag],eFi=[0,[17,0,[12,41,0]],t],eFc=[0,[15,0],y],eE0="Ty.BoundFunctionThis",eE1="Ty.ComputedNonLiteralKey",eE2="Ty.Constructor",eE3="Ty.DummyStatic",eE4="Ty.Exports",eE5="Ty.FunctionPrototype",eE6="Ty.InferenceHooks",eE7="Ty.InstanceOfRefinement",eE8="Ty.Merged",eE9="Ty.ResolveSpread",eE_="Ty.Unchecked",eE$="Ty.Unimplemented",eFa="Ty.UnresolvedType",eFb="Ty.NonBindingPattern",eEZ=[0,[15,0],y],eEX="Ty.MissingAnnotation",eEY="Ty.UnresolvedName",eEW=[0,[15,0],y],eEQ=H,eER=F,eES=G,eEK="Ty.Recursive",eEL="Ty.Untyped",eEM="Ty.Placeholder",eEN=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Annotated",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Annotated@ "],eEO=[0,[17,0,[12,41,0]],t],eEP=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.AnyError",[17,[0,a,1,0],0]]]],"(@[<2>Ty.AnyError@ "],eET=[0,[17,0,[12,41,0]],t],eEU=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Unsound",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Unsound@ "],eEV=[0,[17,0,[12,41,0]],t],eEJ=[0,[15,0],y],eEE=[0,[12,59,[17,[0,a,1,0],0]],r],eED=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eEF=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eEC=H,eEG=F,eEH=G,eEz=[0,[12,40,[18,[1,[0,0,g]],0]],an],eEA=[0,[12,44,[17,[0,a,1,0],0]],I],eEB=[0,[12,44,[17,[0,a,1,0],0]],I],eEI=[0,[17,0,[12,41,0]],t],eEy=[0,[15,0],y],eEr=H,eEs=F,eEt=G,eDM=[0,[12,59,[17,[0,a,1,0],0]],r],eDL=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eDN=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eDK=H,eDO=F,eDP=G,eDD=[0,[12,59,[17,[0,a,1,0],0]],r],eDC=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eDE=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eDw=[0,[12,59,[17,[0,a,1,0],0]],r],eDv=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eDx=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eDn=[0,[12,59,[17,[0,a,1,0],0]],r],eDm=[0,[18,[1,[0,[11,b,0],b]],[12,91,0]],fg],eDo=[0,[17,[0,w,0,0],[12,93,[17,0,0]]],fh],eC1=H,eC2=[0,[3,0,0],ag],eC3=F,eC4=G,eCV=H,eCW=[0,[9,0,0],fj],eCX=F,eCY=G,eCQ=H,eCR=F,eCS=G,eCK=H,eCL=[0,[3,0,0],ag],eCM=F,eCN=G,eCv="Ty.Top",eCw="Ty.Void",eCx="Ty.Null",eCy="Ty.Symbol",eCz=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Bound (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.Bound (@,"],eCA=[0,[12,44,[17,[0,a,1,0],0]],I],eCB=[0,[3,0,0],ag],eCC=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eCD=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Generic",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Generic@ "],eCE=[0,[17,0,[12,41,0]],t],eCF=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Any",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Any@ "],eCG=[0,[17,0,[12,41,0]],t],eCH=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Bot",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Bot@ "],eCI=[0,[17,0,[12,41,0]],t],eCJ=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Num",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Num@ "],eCO=[0,[17,0,[12,41,0]],t],eCP=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Str",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Str@ "],eCT=[0,[17,0,[12,41,0]],t],eCU=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Bool",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Bool@ "],eCZ=[0,[17,0,[12,41,0]],t],eC0=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.BigInt",[17,[0,a,1,0],0]]]],"(@[<2>Ty.BigInt@ "],eC5=[0,[17,0,[12,41,0]],t],eC6=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.NumLit",[17,[0,a,1,0],0]]]],"(@[<2>Ty.NumLit@ "],eC7=[0,[3,0,0],ag],eC8=[0,[17,0,[12,41,0]],t],eC9=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.StrLit",[17,[0,a,1,0],0]]]],"(@[<2>Ty.StrLit@ "],eC_=[0,[17,0,[12,41,0]],t],eC$=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.BoolLit",[17,[0,a,1,0],0]]]],"(@[<2>Ty.BoolLit@ "],eDa=[0,[9,0,0],fj],eDb=[0,[17,0,[12,41,0]],t],eDc=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.BigIntLit",[17,[0,a,1,0],0]]]],"(@[<2>Ty.BigIntLit@ "],eDd=[0,[3,0,0],ag],eDe=[0,[17,0,[12,41,0]],t],eDf=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Fun",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Fun@ "],eDg=[0,[17,0,[12,41,0]],t],eDh=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Obj",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Obj@ "],eDi=[0,[17,0,[12,41,0]],t],eDj=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Arr",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Arr@ "],eDk=[0,[17,0,[12,41,0]],t],eDl=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Tup",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Tup@ "],eDp=[0,[17,0,[12,41,0]],t],eDq=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Union (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.Union (@,"],eDr=[0,[9,0,0],fj],eDs=[0,[12,44,[17,[0,a,1,0],0]],I],eDt=[0,[12,44,[17,[0,a,1,0],0]],I],eDu=[0,[12,44,[17,[0,a,1,0],0]],I],eDy=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eDz=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Inter (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.Inter (@,"],eDA=[0,[12,44,[17,[0,a,1,0],0]],I],eDB=[0,[12,44,[17,[0,a,1,0],0]],I],eDF=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eDG=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.InlineInterface",[17,[0,a,1,0],0]]]],"(@[<2>Ty.InlineInterface@ "],eDH=[0,[17,0,[12,41,0]],t],eDI=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.TypeOf (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.TypeOf (@,"],eDJ=[0,[12,44,[17,[0,a,1,0],0]],I],eDQ=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eDR=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Utility",[17,[0,a,1,0],0]]]],"(@[<2>Ty.Utility@ "],eDS=[0,[17,0,[12,41,0]],t],eDT=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.CharSet",[17,[0,a,1,0],0]]]],"(@[<2>Ty.CharSet@ "],eDU=[0,[3,0,0],ag],eDV=[0,[17,0,[12,41,0]],t],eDW=[0,[18,[1,[0,[11,b,0],b]],[11,"Ty.IndexedAccess {",[17,[0,w,0,0],0]]],"@[<2>Ty.IndexedAccess {@,"],eDX="_object",eDY=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eDZ=[0,[17,0,0],c],eD0=[0,[12,59,[17,[0,a,1,0],0]],r],eD1=pO,eD2=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eD3=[0,[17,0,0],c],eD4=[0,[12,59,[17,[0,a,1,0],0]],r],eD5=iu,eD6=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eD7=[0,[9,0,0],fj],eD8=[0,[17,0,0],c],eD9=[0,[17,0,[12,E,0]],bk],eD_=[0,[18,[1,[0,[11,b,0],b]],[11,"Ty.Conditional {",[17,[0,w,0,0],0]]],"@[<2>Ty.Conditional {@,"],eD$=aTD,eEa=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eEb=[0,[17,0,0],c],eEc=[0,[12,59,[17,[0,a,1,0],0]],r],eEd=ag_,eEe=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eEf=[0,[17,0,0],c],eEg=[0,[12,59,[17,[0,a,1,0],0]],r],eEh=aql,eEi=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eEj=[0,[17,0,0],c],eEk=[0,[12,59,[17,[0,a,1,0],0]],r],eEl=agv,eEm=[0,[18,[1,[0,0,g]],[2,0,[11,d,[17,[0,a,1,0],0]]]],e],eEn=[0,[17,0,0],c],eEo=[0,[17,0,[12,E,0]],bk],eEp=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Infer (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.Infer (@,"],eEq=[0,[12,44,[17,[0,a,1,0],0]],I],eEu=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eEv=[0,[12,40,[18,[1,[0,[11,b,0],b]],[11,"Ty.Renders (",[17,[0,w,0,0],0]]]],"(@[<2>Ty.Renders (@,"],eEw=[0,[12,44,[17,[0,a,1,0],0]],I],eEx=[0,[17,[0,w,0,0],[11,fe,[17,0,0]]],ff],eBN=[0,[15,0],y],eBM=[0,[2,0,0],Ac],eBG=[0,nC,mE,oz,n$,o4,nD,kM,lM,nL,nj,n3,pk,nV,lB,m6,nB,os,kP,m$,om,mM,lz,ns,lP,n6,nr,n4,o9,o3,mR,nl,n1,nG,lJ,pb,nM,nE,lh,oj,oD,o7,mO,mD,oh,mJ,oa,na,nR,ng,ob,mV,oB,og,mI,oZ,mG,mK,oG,ne,no,or,ov,nP,oN,nN,n0,oL,mZ,oS,pe,nt,nA,ni,o$,o6,nw,m0,o1,oq,nX,mS,ox,mT,nW,oU,nu,oV,oO,ph,op,mQ,nx,ny,oP,ow,nJ,mH,oR,nQ,oe,mC,pf,m2,m_,n5,mN,oc,mU,nZ,oo,oK,oI,on,n_,pd,nS,n8,nY,nd,nI,ol,nO,n2,nc,o2,nU,oJ,pc,oC,od,mP,ok,of,m4,o0,nk,oX,pg,ot,o5,oy,nm,n9,oF,nF,m3,m1,mF,m5,o_,nz,oY,o8,nT,oQ,mL,nh,pl,oT,m9,mA,mX,m7,nn,oM,oH,np,pi,mW,z1,Ai,zl,zQ,zX,zv,zR,Ah,zH,zx,z9,z8,zE,zf,zU,zc,z2,Aa,zT,z$,za,zj,zC],eBH=[0,IE,Ir,Id,H2,Hs,HV,Hx,Ik,Iz,I1,HO,I7,HG,H8,If,Ig,Hq,Il,Iq,Ii,nC,mE,oz,n$,o4,nD,kM,lM,nL,nj,n3,pk,nV,lB,m6,nB,os,kP,m$,om,mM,lz,ns,lP,n6,nr,n4,o9,o3,mR,nl,n1,nG,lJ,pb,nM,nE,lh,oj,oD,o7,mO,mD,oh,mJ,oa,na,nR,ng,ob,mV,oB,og,mI,oZ,mG,mK,oG,ne,no,or,ov,nP,oN,nN,n0,oL,mZ,oS,pe,nt,nA,ni,o$,o6,nw,m0,o1,oq,nX,mS,ox,mT,nW,oU,nu,oV,oO,ph,op,mQ,nx,ny,oP,ow,nJ,mH,oR,nQ,oe,mC,pf,m2,m_,n5,mN,oc,mU,nZ,oo,oK,oI,on,n_,pd,nS,n8,nY,nd,nI,ol,nO,n2,nc,o2,nU,oJ,pc,oC,od,mP,ok,of,m4,o0,nk,oX,pg,ot,o5,oy,nm,n9,oF,nF,m3,m1,mF,m5,o_,nz,oY,o8,nT,oQ,mL,nh,pl,oT,m9,mA,mX,m7,nn,oM,oH,np,pi,mW,z1,Ai,zl,zQ,zX,zv,zR,Ah,zH,zx,z9,z8,zE,zf,zU,zc,z2,Aa,zT,z$,za,zj,zC,H0,H$],eBI=[0,zc,z9,lh,lJ,lP,lz,kP,lB,lM,kM],eBJ=[0,zC,zj,za,z$,zT,Aa,z2,zc,zU,zf,zE,z8,z9,zx,zH,Ah,zR,zv,zX,zQ,zl,Ai,z1,mW,pi,np,oH,oM,nn,m7,mX,mA,m9,oT,pl,nh,mL,oQ,nT,o8,oY,nz,o_,m5,mF,m1,m3,nF,oF,n9,nm,oy,o5,ot,pg,oX,nk,o0,m4,of,ok,mP,od,oC,pc,oJ,nU,o2,nc,n2,nO,ol,nI,nd,nY,n8,nS,pd,n_,on,oI,oK,oo,nZ,mU,oc,mN,n5,m_,m2,pf,mC,oe,nQ,oR,mH,nJ,ow,oP,ny,nx,mQ,op,ph,oO,oV,nu,oU,nW,mT,ox,mS,nX,oq,o1,m0,nw,o6,o$,ni,nA,nt,pe,oS,mZ,oL,n0,nN,oN,nP,ov,or,no,ne,oG,mK,mG,oZ,mI,og,oB,mV,ob,ng,nR,na,oa,mJ,oh,mD,mO,o7,oD,oj,lh,nE,nM,pb,lJ,nG,n1,nl,mR,o3,o9,n4,nr,n6,lP,ns,lz,mM,om,m$,kP,os,nB,m6,lB,nV,pk,n3,nj,nL,lM,kM,nD,o4,n$,oz,mE,nC],eBK=[0,od,mI,mM,o4,oP,m5,o0,mS,Hq,og,ot,mK,nm,nO,nD,H0,Il,pb,oY,oy,n_,oD,n$,mH,oz,n2,m6,nj,ns,o$,ni,n0,n6,z2,Hs,zx,ol,mL,m_,nB,zj,If,nC,on,I7,zQ,nW,nR,zv,m7,H8,pl,mF,m1,m4,Iz,nN,n1,oU,oO,Iq,n3,nA,zX,pd,H2,oJ,n9,ox,nz,nQ,zT,nY,nt,oV,HV,oZ,ob,nU,oj,o2,ow,n8,op,m9,m3,zH,mN,mC,zR,Aa,ph,n5,pi,oH,mA,nk,oC,oR,nJ,mZ,oN,no,ne,o3,nc,nI,nl,mR,mU,nS,o7,nx,oT,z$,kP,oe,pk,oF,zC,oQ,H$,of,mV,o9,ok,or,m2,m$,mJ,pc,mX,m0,z8,HO,o_,oc,Ai,nG,zU,nX,np,zE,nh,oM,Ii,I1,mQ,nd,os,Hx,ov,ny,nF,ng,Ah,oG,oI,zf,Ir,pf,Ig,mP,mD,nn,zl,nE,Ik,mT,nr,nV,o6,mO,mW,nZ,oq,oL,nM,HG,n4,oS,IE,pe,o5,na,Id,oh,nL,pg,nT,oa,oK,nu,nw,oo,o8,oX,o1,om,z1,mE,mG,nP,za,oB],eBO="Ty.Difference",eNG=[0,rX,sR],eNH=[0,nC,mE,oz,n$,o4,nD,kM,lM,nL,nj,n3,pk,nV,lB,m6,nB,os,kP,m$,om,mM,lz,ns,lP,n6,nr,n4,o9,o3,mR,nl,n1,nG,lJ,pb,nM,nE,lh,oj,oD,o7,mO,mD,oh,mJ,oa,na,nR,ng,ob,mV,oB,og,mI,oZ,mG,mK,oG,ne,no,or,ov,nP,oN,nN,n0,oL,mZ,oS,pe,nt,nA,ni,o$,o6,nw,m0,o1,oq,nX,mS,ox,mT,nW,oU,nu,oV,oO,ph,op,mQ,nx,ny,oP,ow,nJ,mH,oR,nQ,oe,mC,pf,m2,m_,n5,mN,oc,mU,nZ,oo,oK,oI,on,n_,pd,nS,n8,nY,nd,nI,ol,nO,n2,nc,o2,nU,oJ,pc,oC,od,mP,ok,of,m4,o0,nk,oX,pg,ot,o5,oy,nm,n9,oF,nF,m3,m1,mF,m5,o_,nz,oY,o8,nT,oQ,mL,nh,pl,oT,m9,mA,mX,m7,nn,oM,oH,np,pi,mW],eNI=[0,od,mI,mM,o4,oP,m5,o0,mS,og,ot,mK,nm,nO,nD,sR,pb,oY,oy,n_,oD,n$,mH,oz,rX,n2,m6,nj,ns,o$,ni,n0,n6,ol,mL,m_,nB,nC,on,nW,nR,m7,pl,mF,m1,m4,nN,n1,oU,oO,kM,n3,nA,pd,oJ,n9,ox,nz,nQ,nY,nt,oV,oZ,ob,nU,oj,o2,ow,n8,op,m9,m3,mN,mC,ph,n5,pi,oH,mA,nk,oC,oR,nJ,mZ,oN,no,ne,o3,nc,nI,nl,mR,mU,nS,o7,nx,oT,oe,pk,oF,oQ,of,mV,o9,ok,or,m2,m$,mJ,pc,mX,m0,o_,oc,nG,nX,np,nh,oM,mQ,nd,os,ov,ny,nF,ng,oG,oI,pf,mP,mD,nn,nE,mT,nr,nV,o6,mO,mW,nZ,oq,oL,nM,n4,oS,pe,o5,na,oh,nL,pg,nT,oa,oK,nu,nw,oo,o8,oX,o1,om,mE,mG,nP,oB],eNJ=[0,rX,sR,nC,mE,oz,n$,o4,nD,kM,lM,nL,nj,n3,pk,nV,lB,m6,nB,os,kP,m$,om,mM,lz,ns,lP,n6,nr,n4,o9,o3,mR,nl,n1,nG,lJ,pb,nM,nE,lh,oj,oD,o7,mO,mD,oh,mJ,oa,na,nR,ng,ob,mV,oB,og,mI,oZ,mG,mK,oG,ne,no,or,ov,nP,oN,nN,n0,oL,mZ,oS,pe,nt,nA,ni,o$,o6,nw,m0,o1,oq,nX,mS,ox,mT,nW,oU,nu,oV,oO,ph,op,mQ,nx,ny,oP,ow,nJ,mH,oR,nQ,oe,mC,pf,m2,m_,n5,mN,oc,mU,nZ,oo,oK,oI,on,n_,pd,nS,n8,nY,nd,nI,ol,nO,n2,nc,o2,nU,oJ,pc,oC,od,mP,ok,of,m4,o0,nk,oX,pg,ot,o5,oy,nm,n9,oF,nF,m3,m1,mF,m5,o_,nz,oY,o8,nT,oQ,mL,nh,pl,oT,m9,mA,mX,m7,nn,oM,oH,np,pi,mW,Dc],eNK=[0,Dc,mW,pi,np,oH,oM,nn,m7,mX,mA,m9,oT,pl,nh,mL,oQ,nT,o8,oY,nz,o_,m5,mF,m1,m3,nF,oF,n9,nm,oy,o5,ot,pg,oX,nk,o0,m4,of,ok,mP,od,oC,pc,oJ,nU,o2,nc,n2,nO,ol,nI,nd,nY,n8,nS,pd,n_,on,oI,oK,oo,nZ,mU,oc,mN,n5,m_,m2,pf,mC,oe,nQ,oR,mH,nJ,ow,oP,ny,nx,mQ,op,ph,oO,oV,nu,oU,nW,mT,ox,mS,nX,oq,o1,m0,nw,o6,o$,ni,nA,nt,pe,oS,mZ,oL,n0,nN,oN,nP,ov,or,no,ne,oG,mK,mG,oZ,mI,og,oB,mV,ob,ng,nR,na,oa,mJ,oh,mD,mO,o7,oD,oj,lh,nE,nM,pb,lJ,nG,n1,nl,mR,o3,o9,n4,nr,n6,lP,ns,lz,mM,om,m$,kP,os,nB,m6,lB,nV,pk,n3,nj,nL,lM,kM,nD,o4,n$,oz,mE,nC],eNL=[0,"simplify",nC,mE,oz,n$,o4,nD,kM,lM,nL,nj,n3,pk,nV,lB,m6,nB,"on_nel",os,kP,m$,om,mM,lz,ns,lP,n6,nr,n4,o9,o3,mR,nl,n1,nG,lJ,pb,nM,nE,lh,oj,oD,o7,mO,mD,oh,mJ,oa,na,nR,ng,ob,mV,oB,og,mI,oZ,mG,mK,oG,ne,no,or,ov,nP,oN,nN,n0,oL,mZ,oS,pe,nt,nA,ni,o$,o6,nw,m0,o1,oq,nX,mS,ox,mT,nW,oU,nu,oV,oO,ph,op,mQ,nx,ny,oP,ow,nJ,mH,oR,nQ,oe,mC,pf,m2,m_,n5,mN,oc,mU,nZ,oo,oK,oI,on,n_,pd,nS,n8,nY,nd,nI,ol,nO,n2,nc,o2,nU,oJ,pc,oC,od,mP,ok,of,m4,o0,nk,oX,pg,ot,o5,oy,nm,n9,oF,nF,m3,m1,mF,m5,o_,nz,oY,o8,nT,oQ,mL,nh,pl,oT,m9,mA,mX,m7,nn,oM,oH,np,pi,mW],eNM="Ty_utils.Size.SizeCutOff",eOM=_,eON=jv,eOO=g,eOP=[0,[2,0,[2,0,[11,mj,[2,0,0]]]],"%s%s: %s"],eOQ=[0,[2,0,[2,0,0]],DX],eOR=[0,0],eOS=[0,[11,nb,[2,0,0]],afL],eOT=g,eOU=[0,[11," <: ",[2,0,0]]," <: %s"],eOV=g,eOW=mB,eOX=kN,eOY=g,eOZ=[0,[11,"TParam(",[2,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]],"TParam(%s, %s, %s)"],eO0=[0,[11,"TypeParams(",[2,0,[12,41,0]]],"TypeParams(%s)"],eO1=g,eO2=g,eO3=[0,[11,"Fun(",[2,0,[11,_,[2,0,[11,_,[2,0,[11,_,[2,0,[11,", out: ",[2,0,fn_]]]]]]]]]],"Fun(%s, %s, %s, %s, out: %s)"],eO4=[0,[2,0,[11,Hy,[2,0,0]]],"%s is %s"],eO5=jv,eO8=g,eO6=[0,[11,"element_",[4,0,0,0,0]],"element_%d"],eO7=[0,[2,0,[2,0,[2,0,[11,mj,[2,0,0]]]]],a2V],eO9=[0,[2,0,[11,mj,0]],aWy],eO_=g,eO$=[0,[11,nb,[2,0,[2,0,0]]],"...%s%s"],ePa=jv,ePc=g,ePb=[0,[2,0,[2,0,[2,0,[11,mj,[2,0,0]]]]],a2V],ePd=[0,[11,aT9,[2,0,0]],aTK],ePe=[0,[11,aT9,[2,0,0]],aTK],ePf=[0,[2,0,[11,mj,0]],aWy],ePh=g,ePg=[0,[2,0,[12,91,[2,0,[2,0,[11,aWU,[2,0,0]]]]]],"%s[%s%s]: %s"],ePi=[0,[11,nb,[2,0,0]],afL],ePj=aYf,ePn=g,ePo=jv,ePm=a0S,ePk=g,ePl=[0,[2,0,[12,91,[2,0,[11,zP,[2,0,[2,0,[12,93,[2,0,[11,mj,[2,0,0]]]]]]]]]],"%s[%s in %s%s]%s: %s"],ePp=[0,[11,TC,[2,0,[11,Rj,0]]],aSS],ePq=[0,[12,hB,[2,0,[11,", ...}",0]]],"{%s, ...}"],ePr=[0,[12,hB,[2,0,[12,E,0]]],alE],ePs=[0,[12,hB,[2,0,[11,_,[2,0,[12,E,0]]]]],"{%s, %s}"],ePt=t6,ePv=q6,ePu=[0,[2,0,[12,60,[2,0,[12,62,0]]]],a1G],ePw=[0,[11,"Generic (",[2,0,[11,", kind= ",[2,0,[11,", params=",[2,0,[12,41,0]]]]]]],"Generic (%s, kind= %s, params=%s)"],ePx=sL,ePy=rJ,ePz=g,ePA=_,ePB=[0,[2,0,[11,su,[2,0,[12,41,0]]]],"%s (%s)"],eP$=nb,ePC="Top",ePD=aXy,ePE=ag8,ePF=In,ePG=[0,[11,"Bound(",[2,0,[12,41,0]]],"Bound(%s)"],ePH=[0,[11,"Any (",[2,0,[12,41,0]]],"Any (%s)"],ePI=[0,[11,"Bot (",[2,0,[12,41,0]]],"Bot (%s)"],ePJ=[0,[11,"Num (",[2,0,[12,41,0]]],"Num (%s)"],ePK="Num",ePL=[0,[11,"Str (",[2,0,[12,41,0]]],"Str (%s)"],ePM="Str",ePN=[0,[11,"Bool (",[9,0,[12,41,0]]],"Bool (%b)"],ePO="Bool",ePP=[0,[11,"BigInt (",[2,0,[12,41,0]]],"BigInt (%s)"],ePQ=amd,ePR=[0,[12,34,[2,0,[12,34,0]]],aqK],ePS=[0,[12,34,[2,0,[12,34,0]]],aqK],ePT=[0,[12,34,[9,0,[12,34,0]]],'"%b"'],ePU=[0,[12,34,[2,0,[12,34,0]]],aqK],ePV=[0,kl],ePW=[0,[11,"Tup (",[2,0,[12,41,0]]],"Tup (%s)"],ePX=[0,_],ePY=[0,[11,"Union (",[2,0,[12,41,0]]],"Union (%s)"],ePZ=[0,_],eP0=[0,[11,"Inter (",[2,0,[12,41,0]]],"Inter (%s)"],eP3=g,eP1=[0,[11,ac,[2,0,[12,32,[2,0,[11,iS,0]]]]],"{ %s %s }"],eP2=[0,[11,aWc,[2,0,[11,_,[2,0,[12,41,0]]]]],"InlineInterface (%s, %s)"],eP4=[0,[11,"Typeof (",[2,0,[11,_,[2,0,[12,41,0]]]]],"Typeof (%s, %s)"],eP5=[0,[11,aTa,[2,0,[12,41,0]]],"CharSet (%s)"],eP6=[0,[11,"IndexedAccess (",[2,0,[11,gJ,[2,0,[11,") (optional=",[9,0,[12,41,0]]]]]]],"IndexedAccess (%s) (%s) (optional=%b)"],eP7=[0,[11,"Conditional (",[2,0,[11,_,[2,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]]]],"Conditional (%s, %s, %s, %s)"],eP8=G,eP9=[0,[11,"Infer (",[2,0,[11,_,[2,0,[12,41,0]]]]],"Infer (%s, %s)"],eP_=[0,[11,aZs,[2,0,[12,41,0]]],"Renders (%s)"],eOH=a3M,eOI=aWN,eOJ=a2Q,eOK=aX1,eOL=a1L,eOG=[0,[2,0,[11,su,[2,0,[12,58,[2,0,[12,41,0]]]]]],"%s (%s:%s)"],eOA="Local",eOB="Builtin",eOC=[0,[11,"Imported as ",[2,0,0]],"Imported as %s"],eOD="Remote",eOE="Library (Imported)",eOF="Library (Remote)",eOz=[0,[12,96,[2,0,[11,"` (",[2,0,[12,41,0]]]]],"`%s` (%s)"],eOw=g8,eOx=lD,eOy=pM,eOt="EmptyMatchingPropT",eOu="EmptyType",eOv=[0,[11,"NoLowerWithUpper (",[2,0,[12,41,0]]],"NoLowerWithUpper (%s)"],eOq="NoUpper",eOr="SomeKnownUpper",eOs=[0,[11,"SomeUnknownUpper (",[2,0,[12,41,0]]],"SomeUnknownUpper (%s)"],eOk="Recursive",eOl=aV7,eOm=aU7,eOn="Annotated",eOo=[0,[11,"AnyError (",[2,0,[12,41,0]]],"AnyError (%s)"],eOp=[0,[11,"Unsound (",[2,0,[12,41,0]]],"Unsound (%s)"],eN8="BoundFunctionThis",eN9="ComputedNonLiteralKey",eN_="Constructor",eN$="DummyStatic",eOa="Exports",eOb="FunctionPrototype",eOc="InferenceHooks",eOd="InstanceOfRefinement",eOe="Merged",eOf="ResolveSpread",eOg="Unchecked",eOh="Unimplemented",eOi="UnresolvedType",eOj="NonBindingPattern",eN5="MissingAnnotation",eN6="UnresolvedName",eN7=C2,eR$=[0,1],eR_=[5,Ad],eR9=[5,le],eR6=[5,i2],eR7=[5,zi],eR8=[5,CM],eR4=[5,Ad],eR5=[5,lD],eR1=[5,r0],eR2=[5,Q3],eR3=[5,aVo],eR0=[5,aE],eRZ=[5,sN],eRY=[5,i2],eRX=[5,Ad],eRU=[0,0],eRV=[0,[5,kl]],eRW=[0,[0,[5,rJ],[5,sL]]],eRT=[5,sQ],eRQ=[0,[0,[5,sB],[5,F]]],eRR=[5,Iv],eRS=[0,[0,0,1]],eRP=[0,[3,0],0],eRL=[5,jv],eRM=[0,[0,[5,sB],[5,F]]],eRN=[5,Ty],eRO=[0,[0,0,1]],eRK=[5,kl],eRJ=[5,Ty],eRI=[0,[5,nb],0],eRC=[0,0],eRD=[0,[5,y$],0],eRE=[5,Q$],eRF=[0,[5,sL],0],eRG=[5,rJ],eRH=[5,agK],eRy=[5,i2],eRz=[5,q2],eRA=[5,i2],eRB=[5,wO],eRt=t6,eRw=amX,eRx=q6,eRu=[0,[5,sL],0],eRv=[5,rJ],eRa=[5,i2],eRb=[5,jv],eRc=[5,i2],eRd=[5,i2],eRe=[5,F],eRf=[5,sB],eRg=[5,w1],eRh=[5,i2],eRi=[0,[5,sB],[5,F]],eRj=[5,zJ],eRk=[5,i2],eRl=[5,nb],eRm=[5,aYf],eRs=[5,jv],eRn=[5,i2],eRo=[5,q2],eRr=[5,a0S],eRp=[5,zP],eRq=[5,wO],eQ$=[5,CH],eQ9=[5,i2],eQ_=[5,jv],eQ4=[0,0],eQ5=[5,nb],eQ6=[0,0],eQ7=[0,[5,kl]],eQ8=[0,[0,[5,sB],[5,F]]],eQY=[0,[5,kl]],eQZ=[5,jZ],eQ0=[0,0],eQ1=[0,[5,IH]],eQ2=[0,[0,[5,Q$],[5,y$]]],eQ3=[5,aE],eQT=a3n,eQW="placeholder",eQX="explicit",eQV=hz,eQU=[5,sV],eQR=[0,[5,kl]],eQS=[0,[0,[5,rJ],[5,sL]]],eQM=[5,jZ],eQv=[5,i2],eQw=[5,jv],eQx=[5,i2],eQy=[5,nb],eQj=[5,vg],eQk=[5,q1],eQl=[5,nK],eQm=[5,rU],eQn=[5,aI],eQo=[5,oW],eQp=[5,qj],eQq=[5,qR],eQr=[5,pS],eQs=q_,eQt=qg,eQu=[0,[5,a21],0],eQz=[0,0],eQA=[0,[5,kl]],eQB=[0,[0,[5,wO],[5,q2]]],eQC=[5,pM],eQD=[0,[5,sL],0],eQE=[5,rJ],eQF=[5,Ut],eQG=[5,a0h],eQI=[5,wO],eQH=[0,[5,q2],0],eQJ=[5,i2],eQK=[5,jv],eQL=[5,jZ],eQN=[5,CL],eQO=qW,eQP=DA,eQQ=zS,eQe=[5,a3M],eQf=[5,aWN],eQg=[5,a2Q],eQh=[5,aX1],eQi=[5,a1L],eQc=[5,mB],eQd=[5,kN],eQb="^[a-zA-Z\\$_][a-zA-Z0-9\\$_]*$",eQa=nb,eSa="WorkerCancel.Worker_should_cancel",eSb="worker_should_cancel",eSe="ordinary",eSf=q3,eSg=ig,eSh=xv,eSi="async generator",eSj="field initializer",eSk=ax,eSm=[0,[11,"expected node ",[4,0,0,0,[11," to exist",0]]],"expected node %d to exist"],eSo="Cannot update reason on non-existent entry",eSn=[0,[2,0,[11," already initialized",0]],"%s already initialized"],eSp=[0,0],eSr="Invariant violation: make sure can_spread is false before calling get_error_groups",eSD=[0,[12,91,[4,0,0,0,[11,aY9,0]]],"[%d] "],eSE=g,eSC="pop empty declare module",eSB="declare module must be one level deep",eSs="Context.Props_not_found",eSu="Context.Call_not_found",eSw="Context.Exports_not_found",eSy="Context.Require_not_found",eSN=[0,[11,"* path ",[4,0,0,0,[12,58,0]]],"* path %d:"],eSH=g,eSL=[0,[11," (from path ",[4,0,0,0,[12,41,0]]]," (from path %d)"],eSM=" (from [not shown])",eSI=[0,[11,"~> ",[2,0,[12,32,0]]],"~> %s "],eSJ=g,eSK=[0,[2,0,[12,32,0]],"%s "],eSG=[0,[2,0,[12,91,[2,0,[12,93,[2,0,0]]]]],"%s[%s]%s"],eUQ=[0,[2,0,[11,mj,[2,0,0]]],TB],eUN=[0,[2,0,[12,61,[2,0,0]]],a2L],eUL=[0,[11,su,[2,0,[12,41,0]]]," (%s)"],eUo=[0,[2,0,[12,61,[2,0,0]]],a2L],eT7=nb,eTM="ObjectAssign",eTN="ObjectGetPrototypeOf",eTO="ObjectSetPrototypeOf",eTP=a2E,eTQ=aV_,eTR="DebugPrint",eTS=aVT,eTT="DebugSleep",eTU=a3y,eTV=a3f,eTW="ReactElementFactory",eTG="CatchAny",eTH="AnnotatedAny",eTI=aV7,eTJ=aU7,eTK=aYt,eTL="Unsound",eTA="Mixed_everything",eTB="Mixed_truthy",eTC="Mixed_non_maybe",eTD="Mixed_non_null",eTE="Mixed_non_void",eTF="Mixed_function",eTz=[0,[2,0,[11,", TypeDestruct ",[2,0,[11,DJ,[2,0,0]]]]],"%s, TypeDestruct %s on %s"],eTy=g,eTt=_,eTx=g,eTu=[0,[3,0,0],ag],eTw=g,eTv=[0,[2,0,[11,su,[2,0,[2,0,[2,0,[12,41,0]]]]]],aUp],eTX=g,eTY=zz,eTZ=g,eT0=zz,eT1=[0,[3,0,0],ag],eT2=[0,[9,0,0],fj],eT3=g,eT4=g,eT5=zz,eT6=" %checks",eT$=[0,[12,32,[2,0,[11,Hy,[2,0,0]]]]," %s is %s"],eUa=g,eT8=g,eT9=h3,eT_=[0,[11,aTO,[2,0,[11,asN,[2,0,[2,0,[11,aXX,[2,0,[2,0,0]]]]]]]],"(%s%s) => %s%s"],eUb="Inexact",eUd="Exact",eUe=[0,0],eUf=[0,0],eUg=[0,[11,"Indexed {[",[2,0,[11,aWU,[2,0,[12,E,0]]]]],"Indexed {[%s]: %s}"],eUc=[0,[2,0,[11,_,[2,0,0]]],l7],eUh=_,eUi=[0,[12,91,[2,0,[12,93,0]]],vf],eUj=[0,[11,a35,[2,0,[11,_,[2,0,0]]]],"Array %s, %s"],eUk=[0,[11,a35,[2,0,0]],"Array %s"],eUl=_,eUm=[0,[11,"Tuple [",[2,0,[12,93,0]]],"Tuple [%s]"],eUn=[0,[11,"ReadOnlyArray ",[2,0,0]],"ReadOnlyArray %s"],eUp=_,eUq=[0,[12,91,[2,0,[11,aUr,[2,0,0]]]],"[%s] #%s"],eUr=[0,[3,0,0],ag],eUs=[0,[9,0,0],fj],eUt=[0,[12,60,[3,0,[12,62,0]]],"<%S>"],eUu=[0,[2,0,[11,_,[2,0,0]]],l7],eUv=h3,eUw=[0,[2,0,[11,zB,[2,0,[11,aUr,[2,0,0]]]]],"%s [%s] #%s"],eUx=[0,[11,"enum #",[2,0,0]],"enum #%s"],eUy=[0,[2,0,[11,_,[2,0,0]]],l7],eUz=[0,[2,0,[11,mj,[2,0,0]]],TB],eUA=h3,eUB=[0,[2,0,[11,_,[2,0,[11,CY,[2,0,[12,93,0]]]]]],"%s, %s, [%s]"],eUD=[0,[2,0,[11,_,[2,0,0]]],l7],eUC=[0,0],eUE=h3,eUF=[0,[2,0,[11,CY,[2,0,[12,93,0]]]],"%s, [%s]"],eUG=h3,eUH=[0,[12,91,[2,0,[12,93,0]]],vf],eUI=h3,eUJ=[0,[12,91,[2,0,[12,93,[2,0,0]]]],a1S],eUK=[0,[11,alf,[9,0,[11,_,[2,0,0]]]],aj0],eUM=g,eUO=h3,eUP=[0,[12,91,[2,0,[12,93,[2,0,0]]]],a1S],eUR=_,eUS=[0,[12,91,[2,0,[12,93,0]]],vf],eUT=[0,[2,0,[11,_,[2,0,0]]],l7],eWh=[0,[11,"distributive over ",[2,0,[11,mj,0]]],"distributive over %s: "],eV$="NoMethodAction",eV8=h3,eV9=G,eV_=[0,[11,aTO,[2,0,[11,asN,[2,0,[11,aXo,[2,0,[11,_,[2,0,[12,41,0]]]]]]]]],"(%s) => (%s, %s)"],eV7=[0,[12,40,[2,0,[11,_,[2,0,[12,41,0]]]]],I8],eV2=aUx,eV3=De,eV4=SG,eV5=aVF,eV6=aUq,eV1=[0,[11,"ObjectMap {prop_type: ",[2,0,[12,E,0]]],"ObjectMap {prop_type: %s}"],eVY="Config",eV0="Defaults",eVZ=[0,[12,40,[2,0,[12,41,0]]],ai0],eVR=[0,[11,"One (",[2,0,[12,41,0]]],"One (%s)"],eVX=[0,[11,"Done (",[2,0,[12,41,0]]],"Done (%s)"],eVS="Sound",eVU="IgnoreExactAndOwn",eVV="Omit",eVW="ReactConfigMerge",eVT=[0,[11,"Rest ({merge_mode=",[2,0,[11,"}, ",[2,0,[12,41,0]]]]],"Rest ({merge_mode=%s}, %s)"],eVK=[0,[11,"Value {make_seal=",[9,0,0]],"Value {make_seal=%b"],eVQ=[0,[11,"Annot { make_exact=",[9,0,[11,iS,0]]],"Annot { make_exact=%b }"],eVL=G,eVM=h3,eVN=h3,eVO=[0,[11,"{todo_rev=[",[2,0,[11,"]; acc=[",[2,0,[11,"]; spread_id=",[2,0,[11,"; curr_resolve_idx=",[2,0,[11,"; union_reason=",[2,0,fn$]]]]]]]]]],"{todo_rev=[%s]; acc=[%s]; spread_id=%s; curr_resolve_idx=%s; union_reason=%s}"],eVP=[0,[11,"Spread (",[2,0,[11,_,[2,0,[12,41,0]]]]],"Spread (%s, %s)"],eVI=[0,[11,"Resolve ",[2,0,0]],"Resolve %s"],eVJ=[0,[11,"Super (",[2,0,[11,_,[2,0,[12,41,0]]]]],"Super (%s, %s)"],eVC="Next",eVD=h3,eVE=[0,[11,"List0 ([",[2,0,[11,vl,[2,0,[12,41,0]]]]],"List0 ([%s], %s)"],eVF=h3,eVG=h3,eVH=[0,[11,"List ([",[2,0,[11,al8,[2,0,[11,vl,[2,0,[12,41,0]]]]]]],"List ([%s], [%s], %s)"],eVA=h3,eVB=[0,[12,91,[2,0,[12,93,0]]],vf],eVy=aUc,eVz="And",eVs=g,eVt=jv,eVx=Q1,eVu=h3,eVw=[0,[11,TC,[2,0,[11,Rj,0]]],aSS],eVv=[0,[12,hB,[2,0,[12,E,0]]],alE],eVn=[0,[11,"ConfigCheck (",[2,0,[12,41,0]]],"ConfigCheck (%s)"],eVo=[0,[11,"GetProps (",[2,0,[12,41,0]]],"GetProps (%s)"],eVp=[0,[11,"GetConfig (",[2,0,[12,41,0]]],"GetConfig (%s)"],eVq=[0,[11,"GetConfigType (",[2,0,[11,_,[2,0,[12,41,0]]]]],"GetConfigType (%s, %s)"],eVr=[0,[11,"GetRef (",[2,0,[12,41,0]]],"GetRef (%s)"],eVj=[0,[11,"; ...",[2,0,0]],"; ...%s"],eVm=g,eVk=h3,eVl=[0,[11,"CreateElement (",[2,0,[11,h3,[2,0,[2,0,[11,aXX,[2,0,0]]]]]]],"CreateElement (%s; %s%s) => %s"],eVe=h3,eVf=[0,[12,40,[2,0,[11,_,[2,0,[11,CY,[2,0,[11,aYw,0]]]]]]],"(%s, %s, [%s])"],eVg=h3,eVh=[0,[11,"([",[2,0,[11,vl,[2,0,[12,41,0]]]]],"([%s], %s)"],eVi=[0,[12,40,[2,0,[11,_,[2,0,[12,41,0]]]]],I8],eVc="Some cache",eVd=G,eU9=[0,[11,"Read (",[2,0,[11,_,[2,0,[12,41,0]]]]],"Read (%s, %s)"],eU_=[0,[11,"Write ",[2,0,0]],"Write %s"],eU$=[0,[11,"Lookup (",[2,0,[11,_,[2,0,[12,41,0]]]]],"Lookup (%s, %s)"],eVa=[0,[11,"Super ",[2,0,0]],"Super %s"],eVb=[0,[11,"Match ",[2,0,0]],"Match %s"],eU6=[0,[11," returning ",[2,0,0]]," returning %s"],eU4=[0,[11," for test id ",[4,0,0,0,0]]," for test id %d"],eU3=[0,[11,"Strict ",[3,0,0]],"Strict %S"],eU5=g,eU7=g,eU8=[0,[11,"Nonstrict",[2,0,[2,0,0]]],"Nonstrict%s%s"],eU2=[0,[3,0,[12,32,[2,0,0]]],"%S %s"],eU1=[0,[11,nb,[2,0,0]],afL],eU0=[0,[12,40,[2,0,[11,_,[2,0,[12,41,0]]]]],I8],eUZ=g,eUU=_,eUY=g,eUV=[0,[3,0,0],ag],eUX=g,eUW=[0,[2,0,[11,su,[2,0,[2,0,[2,0,[12,41,0]]]]]],aUp],eWc=[0,[11,aot,[2,0,[11,_,[2,0,[12,41,0]]]]],aXx],eWa=[0,[11,aot,[2,0,[11,", OpenT (",[3,0,[11,_,[4,0,0,0,[11,fe,0]]]]]]],"UseT (%s, OpenT (%S, %d))"],eWb=[0,[11,aot,[2,0,[11,_,[2,0,[12,41,0]]]]],aXx],eWd=h3,eWe=[0,[2,0,[11,", (%s) => (%s, %s)"],eWf=[0,[2,0,[11," ConcretizeCallee",0]],"%s ConcretizeCallee"],eWg=h3,eWi=g,eWj=[0,[2,0,[12,91,[2,0,[11,"] extends ",[2,0,[11,aT2,[2,0,[11,aUn,[2,0,[11," => ",foa]]]]]]]]]],"%s[%s] extends %s ? %s : %s => %s"],eWk=[0,[12,40,[2,0,[11,_,[2,0,[12,41,0]]]]],I8],eWl=[0,[12,40,[2,0,[11,Q0,[2,0,[12,41,0]]]]],"(%s), (%s)"],eWm=[0,[2,0,[11,HA,[2,0,[11,zd,[2,0,0]]]]],"%s, (%s), %s"],eWn=[0,[12,40,[2,0,[11,zd,[2,0,0]]]],"(%s), %s"],eWo=[0,[2,0,[11,HA,[2,0,[11,Q0,[2,0,[11,_,[2,0,[12,41,0]]]]]]]],aYx],eWp=[0,[12,40,[2,0,[11,Q0,[2,0,[11,_,[2,0,[12,41,0]]]]]]],"(%s), (%s, %s)"],eWq=[0,[2,0,[11,HA,[2,0,[11,Q0,[2,0,[11,_,[2,0,[12,41,0]]]]]]]],aYx],eWr=[0,[2,0,[11,_,[2,0,0]]],l7],eWs=[0,[2,0,[11,HA,[2,0,[11,_,[2,0,[11,"), from_annot=",[9,0,[11,", access_iterables=",[9,0,0]]]]]]]]],"%s, (%s, %s), from_annot=%b, access_iterables=%b"],eWt=[0,[11,alf,[9,0,[11,_,[2,0,0]]]],aj0],eWu=[0,[11,alf,[9,0,[11,_,[2,0,0]]]],aj0],eWv=[0,0],eWw=[0,[2,0,[11,_,[2,0,[11,_,[2,0,0]]]]],HH],eWx=[0,[2,0,[11,_,[2,0,0]]],l7],eWy=[0,0],eWz=[0,[2,0,[11,_,[2,0,[11,_,[2,0,0]]]]],HH],eWA=[0,0],eWB=[0,[2,0,[11,_,[2,0,0]]],l7],eWC=[0,[2,0,[11,_,[2,0,0]]],l7],eWD=[0,[2,0,[11,_,[2,0,0]]],l7],eWE=h3,eWF=[0,[2,0,[11,CY,[2,0,[11,vl,[2,0,0]]]]],"%s, [%s], %s"],eWG=[0,[2,0,[11,_,[2,0,0]]],l7],eWH=[0,[2,0,0],Ac],eWI=h3,eWJ=[0,[12,91,[2,0,[11,vl,[2,0,0]]]],aS5],eWK=h3,eWL=[0,[11,ak3,[2,0,0]],aoJ],eWN=G,eWM=[0,[3,0,[11,_,[2,0,[11,_,[2,0,[11,CY,[2,0,[12,93,0]]]]]]]],"%S, %s, %s, [%s]"],eWO=[0,[2,0,[11,_,[2,0,0]]],l7],eWP=[0,[2,0,[11,_,[2,0,0]]],l7],eWQ=h3,eWR=[0,[12,91,[2,0,[11,vl,[2,0,0]]]],aS5],eWS=[0,[11,"obj: ",[2,0,0]],"obj: %s"],eWT=[0,[11,"is_strict=",[9,0,0]],"is_strict=%b"],eWU=h3,eWV=[0,[2,0,[11,", {",[2,0,[12,E,0]]]],"%s, {%s}"],eWW=[0,[2,0,[11,_,[2,0,[11,_,[2,0,0]]]]],HH],eWX=[0,[2,0,[11,_,[2,0,0]]],l7],eWY=[0,[2,0,[11,_,[9,0,[11,_,[2,0,[11,_,[2,0,0]]]]]]],"%s, %b, %s, %s"],eWZ=[0,0],eW0=[0,[2,0,[11,_,[2,0,0]]],l7],eW1=[0,[11,"sense=",[9,0,0]],"sense=%b"],eW3=[0,[2,0,[11,_,[2,0,0]]],l7],eW4=[0,[2,0,[11,_,[2,0,0]]],l7],eW2=[0,[2,0,[11,_,[2,0,[11,_,[2,0,0]]]]],HH],eW5=[0,[11,"Some (",[2,0,[12,41,0]]],"Some (%s)"],eW7=G,eW6=[0,[2,0,[11,_,[2,0,[11,_,[2,0,0]]]]],HH],eW8=h3,eW9=[0,[12,91,[2,0,[11,vl,[2,0,[11,_,[2,0,0]]]]]],"[%s], %s, %s"],eW$=[0,[2,0,[11,_,[2,0,[11,HA,[2,0,[11,_,[2,0,[12,41,0]]]]]]]],"%s, %s, (%s, %s)"],eXa=h3,eXb=h3,eXc=[0,[4,0,0,0,[11,zB,[2,0,[11,al8,[2,0,[11,vl,[2,0,0]]]]]]],"%d [%s], [%s], %s"],eXd=[0,0],eXe=[0,0],eXf="EnumExhaustiveCheckPossiblyValid",eXg="EnumExhaustiveCheckInvalid",eXh=[0,0],eXi=[0,0],eXj=[0,[2,0,[11," <~ ",[2,0,0]]],"%s <~ %s"],eXk=[0,[2,0,[11,RM,[2,0,0]]],"%s ~> %s"],eXl=[0,[11,"CheckUnusedPromiseT (",[2,0,[12,41,0]]],"CheckUnusedPromiseT (%s)"],eXm=[0,0],eXn=[0,[11,"WriteComputedObjPropCheckT (",[2,0,[12,41,0]]],"WriteComputedObjPropCheckT (%s)"],eXo=aSZ,eXp=aUZ,eXq=aWR,eXr=aTh,eXs=[0,[2,0,[11," on upper, (",[2,0,[11,_,[2,0,[12,41,0]]]]]],"%s on upper, (%s, %s)"],eW_=[0,[2,0,0],Ac],eXt=[0,[4,0,0,0,[11,", ^",0]],"%d, ^"],eXv=[0,[4,0,0,0,[11,", Goto ",[4,0,0,0,0]]],"%d, Goto %d"],eXw=[0,[4,0,0,0,[11,", Resolved ",[2,0,0]]],"%d, Resolved %s"],eXx=[0,[4,0,0,0,0],iP],eXy=h3,eXz=h3,eXA=[0,[4,0,0,0,[11,CY,[2,0,[11,al8,[2,0,[12,93,0]]]]]],"%d, [%s], [%s]"],eXB=[0,[4,0,0,0,[11,", FullyResolved ",[2,0,0]]],"%d, FullyResolved %s"],eXu=[0,[11,"Not Found: ",[4,0,0,0,0]],"Not Found: %d"],eXC=G,eXD=[0,[11,"OrdinaryField (",[2,0,[11,") ",[2,0,0]]]],"OrdinaryField (%s) %s"],eXE=[0,[11,"SyntheticField(",[2,0,[11,_,[2,0,[12,41,0]]]]],"SyntheticField(%s, %s)"],e2L=d,e2J=[0,[11,RM,[2,0,0]]," ~> %s"],e2K=" ~>",e2I=g,e2G=[0,[12,10,[2,0,[2,0,[2,0,0]]]],"\n%s%s%s"],e2H=g,e1A=G,e1B=[0,[12,91,[2,0,[11,h3,[2,0,[12,93,0]]]]],"[%s; %s]"],eYy=[0,[11,a3v,[2,0,[12,41,0]]],aZd],eYA=G,eYz=[0,[11,"EIncompatible { lower = (",[2,0,[11,", _); upper = (",[2,0,[11,_,[2,0,[11,"); use_op = ",[2,0,[11,asY,0]]]]]]]]],"EIncompatible { lower = (%s, _); upper = (%s, %s); use_op = %s; branches = _ }"],eYB=[0,[11,"EIncompatibleDefs { reason_lower = ",[2,0,[11,xi,[2,0,[11,lI,[2,0,[11,asY,0]]]]]]],"EIncompatibleDefs { reason_lower = %s; reason_upper = %s; use_op = %s; branches = _ }"],eYC=[0,[11,"EIncompatibleProp { reason_prop = ",[2,0,[11,"; reason_obj = ",[2,0,[11,"; special = _; prop = _; use_op = _ }",0]]]]],"EIncompatibleProp { reason_prop = %s; reason_obj = %s; special = _; prop = _; use_op = _ }"],eYD=[0,[11,"EDebugPrint (",[2,0,[11,aso,0]]],"EDebugPrint (%s, _)"],eYE=[0,[11,"EExportValueAsType (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EExportValueAsType (%s, %s)"],eYF=[0,[11,"EImportValueAsType (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EImportValueAsType (%s, %s)"],eYG=[0,[11,"EImportTypeAsTypeof (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EImportTypeAsTypeof (%s, %s)"],eYH=[0,[11,"EImportTypeAsValue (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EImportTypeAsValue (%s, %s)"],eYI=[0,[11,"ENoDefaultExport (",[2,0,[11,_,[2,0,[12,41,0]]]]],"ENoDefaultExport (%s, %s)"],eYJ=[0,[11,"EOnlyDefaultExport (",[2,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]],"EOnlyDefaultExport (%s, %s, %s)"],eYK=[0,[11,"ENoNamedExport (",[2,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]],"ENoNamedExport (%s, %s, %s)"],eYL=[0,[11,"EMissingTypeArgs { reason_op=",[2,0,[11,"; reason_tapp=",[2,0,[11,aZI,[2,0,[11,"; min_arity=",[4,0,0,0,[11,"; max_arity=",[4,0,0,0,fob]]]]]]]]]],"EMissingTypeArgs { reason_op=%s; reason_tapp=%s; reason_arity=%s; min_arity=%d; max_arity=%d }"],eYM=[0,[11,"EAnyValueUsedAsType { use = ",[2,0,[11,iS,0]]],"EAnyValueUsedAsType { use = %s }"],eYN=[0,[11,"EValueUsedAsType { use = ",[2,0,[11,iS,0]]],"EValueUsedAsType { use = %s }"],eYO=[0,[11,"EExpectedStringLit { reason_lower = ",[2,0,[11,xi,[2,0,[11,lI,[2,0,[11,iS,0]]]]]]],"EExpectedStringLit { reason_lower = %s; reason_upper = %s; use_op = %s }"],eYP=[0,[11,"EExpectedNumberLit { reason_lower = ",[2,0,[11,xi,[2,0,[11,lI,[2,0,[11,iS,0]]]]]]],"EExpectedNumberLit { reason_lower = %s; reason_upper = %s; use_op = %s }"],eYQ=[0,[11,"EExpectedBooleanLit { reason_lower = ",[2,0,[11,xi,[2,0,[11,lI,[2,0,[11,iS,0]]]]]]],"EExpectedBooleanLit { reason_lower = %s; reason_upper = %s; use_op = %s }"],eYR=[0,[11,"EExpectedBigIntLit { reason_lower = ",[2,0,[11,xi,[2,0,[11,lI,[2,0,[11,iS,0]]]]]]],"EExpectedBigIntLit { reason_lower = %s; reason_upper = %s; use_op = %s }"],eYS=[0,[11,ak3,[2,0,0]],aoJ],eYW=G,eYT=[0,[11,ak3,[2,0,0]],aoJ],eYV=G,eYU=[0,[11,"EPropNotFound (",[2,0,[11,_,[2,0,[11,_,[2,0,[11,_,[2,0,[11,_,[2,0,foc]]]]]]]]]],"EPropNotFound (%s, %s, %s, %s, %s)"],eYX=[0,[3,0,0],ag],eYZ=ai8,eYY=[0,[11,"EPropNotReadable { reason_prop = ",[2,0,[11,aTM,[2,0,[11,lI,[2,0,[11,iS,0]]]]]]],"EPropNotReadable { reason_prop = %s; prop_name = %s; use_op = %s }"],eY0=[0,[3,0,0],ag],eY2=ai8,eY1=[0,[11,"EPropNotWritable { reason_prop = ",[2,0,[11,aTM,[2,0,[11,lI,[2,0,[11,iS,0]]]]]]],"EPropNotWritable { reason_prop = %s; prop_name = %s; use_op = %s }"],eY3=[0,[3,0,0],ag],eY5=ai8,eY4=[0,[11,"EPropPolarityMismatch ((",[2,0,[11,_,[2,0,[11,zd,[2,0,[11,", _, _)",0]]]]]]],"EPropPolarityMismatch ((%s, %s), %s, _, _)"],eY6=[0,[11,"EPolarityMismatch { reason=",[2,0,[11,"; name=",[3,0,[11,"; expected_polarity=",[2,0,[11,"; actual_polarity=",[2,0,[11,iS,0]]]]]]]]],"EPolarityMismatch { reason=%s; name=%S; expected_polarity=%s; actual_polarity=%s }"],eY7=[0,[11,a3v,[2,0,[12,41,0]]],aZd],eY9=G,eY8=[0,[11,"EBuiltinLookupFailed { reason = ",[2,0,[11,a05,[3,0,[11,"; potential_generator = ",[2,0,[11,iS,0]]]]]]],"EBuiltinLookupFailed { reason = %s; name = %S; potential_generator = %s }"],eY_=[0,[11,"EPrivateLookupFailed ((",[2,0,[11,_,[2,0,[11,zd,[2,0,[11,_,[2,0,[12,41,0]]]]]]]]],"EPrivateLookupFailed ((%s, %s), %s, %s)"],eY$=[0,[11,"EPlatformSpecificImplementationModuleLookupFailed(",[2,0,[12,41,0]]],"EPlatformSpecificImplementationModuleLookupFailed(%s)"],eZa=[0,[11,"EAdditionMixed (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EAdditionMixed (%s, %s)"],eZb=[0,[11,"EComparison (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EComparison (%s, %s)"],eZc=[0,[11,"ENonStrictEqualityComparison (",[2,0,[11,_,[2,0,[12,41,0]]]]],"ENonStrictEqualityComparison (%s, %s)"],eZd=[0,[11,"EEscapedGeneric { reason = ",[2,0,[11,lI,[2,0,[11,"; bound_name = ",[2,0,[11,a1R,0]]]]]]],"EEscapedGeneric { reason = %s; use_op = %s; bound_name = %s; _ }"],eZe=[0,[11,"ETupleArityMismatch (",[2,0,[11,_,[2,0,[11,_,[4,0,0,0,[12,45,[4,0,0,0,[11,_,[4,0,0,0,fod]]]]]]]]]],"ETupleArityMismatch (%s, %s, %d-%d, %d-%d, %s)"],eZf=[0,[11,"ENonLitArrayToTuple ((",[2,0,[11,_,[2,0,[11,zd,[2,0,[12,41,0]]]]]]],"ENonLitArrayToTuple ((%s, %s), %s)"],eZg=[0,[11,"ETupleOutOfBounds { use_op = ",[2,0,[11,ara,[2,0,[11,akZ,[2,0,[11,"; length = ",[4,0,0,0,[11,TZ,[2,0,foe]]]]]]]]]],"ETupleOutOfBounds { use_op = %s; reason = %s; reason_op = %s; length = %d; index = %s }"],eZh=[0,[11,"ETupleNonIntegerIndex { use_op = ",[2,0,[11,ara,[2,0,[11,TZ,[2,0,[11,iS,0]]]]]]],"ETupleNonIntegerIndex { use_op = %s; reason = %s; index = %s }"],eZi=[0,[11,"ETupleUnsafeWrite { reason = ",[2,0,[11,lI,[2,0,[11,iS,0]]]]],"ETupleUnsafeWrite { reason = %s; use_op = %s }"],eZj=[0,[11,"ETupleElementNotReadable { reason = ",[2,0,[11,TZ,[2,0,[11,lI,[2,0,[11,iS,0]]]]]]],"ETupleElementNotReadable { reason = %s; index = %s; use_op = %s }"],eZk=[0,[11,"ETupleElementNotWritable { reason = ",[2,0,[11,TZ,[2,0,[11,lI,[2,0,[11,iS,0]]]]]]],"ETupleElementNotWritable { reason = %s; index = %s; use_op = %s }"],eZl=[0,[11,"ETupleElementPolarityMismatch { index = ",[2,0,[11,"; reason_lower = ",[2,0,[11,"; polarity_lower = ",[2,0,[11,xi,[2,0,[11,"; polarity_upper = ",[2,0,fof]]]]]]]]]],"ETupleElementPolarityMismatch { index = %s; reason_lower = %s; polarity_lower = %s; reason_upper = %s; polarity_upper = %s; use_op = %s }"],eZm=[0,[11,"ETupleRequiredAfterOptional {reason_tuple = ",[2,0,[11,"; reason_required = ",[2,0,[11,"; reason_optional = ",[2,0,[12,E,0]]]]]]],"ETupleRequiredAfterOptional {reason_tuple = %s; reason_required = %s; reason_optional = %s}"],eZn=[0,[11,"ETupleInvalidTypeSpread {reason_spread = ",[2,0,[11,"; reason_arg = ",[2,0,[12,E,0]]]]],"ETupleInvalidTypeSpread {reason_spread = %s; reason_arg = %s}"],eZo=[0,[11,"EROArrayWrite (",[2,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]],"EROArrayWrite (%s, %s, %s)"],eZp=[0,[11,"EUnionSpeculationFailed { use_op = ",[2,0,[11,ara,[2,0,[11,akZ,[2,0,[11,asY,0]]]]]]],"EUnionSpeculationFailed { use_op = %s; reason = %s; reason_op = %s; branches = _ }"],eZq=[0,[11,"ESpeculationAmbiguous { reason = ",[2,0,[11,a1R,0]]],"ESpeculationAmbiguous { reason = %s; _ }"],eZr=[0,[11,"EIncompatibleWithExact ((",[2,0,[11,_,[2,0,[11,zd,[2,0,[12,41,0]]]]]]],"EIncompatibleWithExact ((%s, %s), %s)"],eZs=[0,[11,"EFunctionIncompatibleWithIndexer((",[2,0,[11,_,[2,0,[11,zd,[2,0,[12,41,0]]]]]]],"EFunctionIncompatibleWithIndexer((%s, %s), %s)"],eZt=[0,[11,"EUnsupportedExact (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EUnsupportedExact (%s, %s)"],eZu=[0,[11,"EUnexpectedThisType (",[2,0,[12,41,0]]],"EUnexpectedThisType (%s)"],eZv=[0,[11,"ETypeParamArity (",[2,0,[11,_,[4,0,0,0,[12,41,0]]]]],"ETypeParamArity (%s, %d)"],eZw=[0,[11,"ECallTypeArity { call_loc=",[2,0,[11,"; is_new=",[9,0,[11,aZI,[2,0,[11,"; expected_arity=",[4,0,0,0,[11,"; }",0]]]]]]]]],"ECallTypeArity { call_loc=%s; is_new=%b; reason_arity=%s; expected_arity=%d; }"],eZx=[0,[11,"ETypeParamMinArity (",[2,0,[11,_,[4,0,0,0,[12,41,0]]]]],"ETypeParamMinArity (%s, %d)"],eZy=[0,[11,"ETooManyTypeArgs (",[2,0,[11,_,[2,0,[11,_,[4,0,0,0,[12,41,0]]]]]]],"ETooManyTypeArgs (%s, %s, %d)"],eZz=[0,[11,"ETooFewTypeArgs (",[2,0,[11,_,[2,0,[11,_,[4,0,0,0,[12,41,0]]]]]]],"ETooFewTypeArgs (%s, %s, %d)"],eZA=[0,[11,"EInvalidInfer (",[2,0,[12,41,0]]],"EInvalidInfer (%s)"],eZB=[0,[11,"EInvalidTypeArgs (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EInvalidTypeArgs (%s, %s)"],eZC=[0,[11,"EInvalidExtends (",[2,0,[12,41,0]]],"EInvalidExtends (%s)"],eZD=[0,[11,"EPropertyTypeAnnot (",[2,0,[12,41,0]]],"EPropertyTypeAnnot (%s)"],eZE=[0,[11,"EExportsAnnot (",[2,0,[12,41,0]]],"EExportsAnnot (%s)"],eZF=[0,[11,"ECharSetAnnot (",[2,0,[12,41,0]]],"ECharSetAnnot (%s)"],eZG=[0,[11,"EInvalidCharSet { invalid = (",[2,0,[11,", _); valid = ",[2,0,[11,lI,[2,0,[11,iS,0]]]]]]],"EInvalidCharSet { invalid = (%s, _); valid = %s; use_op = %s }"],eZH=[0,[11,"EInvalidConstructor (",[2,0,[12,41,0]]],"EInvalidConstructor (%s)"],eZI=lD,eZK=ahy,eZJ=[0,[11,"EUnsupportedKeyInObject (",[2,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]],"EUnsupportedKeyInObject (%s, %s, %s)"],eZL=[0,[11,"EAmbiguousNumericKeyWithVariance (",[2,0,[12,41,0]]],"EAmbiguousNumericKeyWithVariance (%s)"],eZM=[0,[11,"EPredicateFuncTooShort (",[2,0,[12,41,0]]],"EPredicateFuncTooShort (%s)"],eZN=[0,[11,"EPredicateFuncArityMismatch (",[2,0,[12,41,0]]],"EPredicateFuncArityMismatch (%s)"],eZO=[0,[11,"EPredicateFuncIncompatibility (",[2,0,[12,41,0]]],"EPredicateFuncIncompatibility (%s)"],eZP=[0,[11,"EPredicateInvalidParameter (",[2,0,[12,41,0]]],"EPredicateInvalidParameter (%s)"],eZQ=[0,[11,"EFunPredInvalidIndex (",[2,0,[12,41,0]]],"EFunPredInvalidIndex (%s)"],eZR=[0,[11,"ETypeGuardIndexMismatch (",[2,0,[12,41,0]]],"ETypeGuardIndexMismatch (%s)"],eZS="ETypeGuardParamUnbound",eZT="ETypeGuardFunctionInvalidWrites",eZU="ETypeGuardFunctionParamHavoced",eZV="ETypeGuardIncompatibleWithFunctionKind",eZW=[0,[11,"EInternal (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EInternal (%s, %s)"],eZX=[0,[11,"EUnsupportedSyntax (",[2,0,[11,aso,0]]],"EUnsupportedSyntax (%s, _)"],eZY=[0,[11,"EUseArrayLiteral (",[2,0,[12,41,0]]],"EUseArrayLiteral (%s)"],eZZ=[0,[11,"EMissingAnnotation (",[2,0,[12,41,0]]],"EMissingAnnotation (%s)"],eZ0=[0,[11,"EMissingLocalAnnotation (",[2,0,[12,41,0]]],"EMissingLocalAnnotation (%s)"],eZ1=[0,[11,"EBindingError (_, ",[2,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]],"EBindingError (_, %s, %s, %s)"],eZ2=[0,[11,"ERecursionLimit (",[2,0,[11,_,[2,0,[12,41,0]]]]],"ERecursionLimit (%s, %s)"],eZ3="PropertyNotDefinitelyInitialized",eZ5="ReadFromUninitializedProperty",eZ6="MethodCallBeforeEverythingInitialized",eZ7="ThisBeforeEverythingInitialized",eZ8="PropertyFunctionCallBeforeEverythingInitialized",eZ4=[0,[11,"EUninitializedInstanceProperty (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EUninitializedInstanceProperty (%s, %s)"],eZ9=[0,[11,"EEnumsNotEnabled (",[2,0,[12,41,0]]],"EEnumsNotEnabled (%s)"],eZ_=[0,[11,"EUnsafeGetSet (",[2,0,[12,41,0]]],"EUnsafeGetSet (%s)"],eZ$=[0,[11,"EIndeterminateModuleType (",[2,0,[12,41,0]]],"EIndeterminateModuleType (%s)"],e0a=[0,[11,"EBadExportPosition (",[2,0,[12,41,0]]],"EBadExportPosition (%s)"],e0b=[0,[11,"EBadExportContext (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EBadExportContext (%s, %s)"],e0c=[0,[11,"EBadDefaultImportAccess (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EBadDefaultImportAccess (%s, %s)"],e0d=[0,[11,"EBadDefaultImportDestructuring (",[2,0,[12,41,0]]],"EBadDefaultImportDestructuring (%s)"],e0e=[0,[11,"EInvalidImportStarUse (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EInvalidImportStarUse (%s, %s)"],e0f=G,e0g=[0,[11,"ENonConstVarExport (",[2,0,[11,_,[2,0,[12,41,0]]]]],"ENonConstVarExport (%s, %s)"],e0h=[0,[11,"EThisInExportedFunction (",[2,0,[12,41,0]]],"EThisInExportedFunction (%s)"],e0i=[0,[11,"EMixedImportAndRequire (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EMixedImportAndRequire (%s, %s)"],e0j=[0,[11,"EToplevelLibraryImport (",[2,0,[12,41,0]]],"EToplevelLibraryImport (%s)"],e0k=[0,[11,"EUnsupportedStatementInLibdef (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EUnsupportedStatementInLibdef (%s, %s)"],e0l=[0,[11,"EUnsupportedVarianceAnnotation (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EUnsupportedVarianceAnnotation (%s, %s)"],e0m=G,e0n=[0,[11,"EExportRenamedDefault { loc = ",[2,0,[11,a05,[2,0,[11,"; is_reexport = ",[9,0,[11,iS,0]]]]]]],"EExportRenamedDefault { loc = %s; name = %s; is_reexport = %B }"],e0o=[0,[11,"EUnreachable (",[2,0,[12,41,0]]],"EUnreachable (%s)"],e0p=[0,[11,"EInvalidObjectKit { reason = ",[2,0,[11,akZ,[2,0,[11,lI,[2,0,[11,iS,0]]]]]]],"EInvalidObjectKit { reason = %s; reason_op = %s; use_op = %s }"],e0q=[0,[11,"EInvalidRef (",[2,0,[11,_,[3,0,[12,41,0]]]]],"EInvalidRef (%s, %S)"],e0r=[0,[11,"EInvalidTypeof (",[2,0,[11,_,[3,0,[12,41,0]]]]],"EInvalidTypeof (%s, %S)"],e0s=[0,[11,"EBinaryInLHS (",[2,0,[12,41,0]]],"EBinaryInLHS (%s)"],e0t=[0,[11,"EBinaryInRHS (",[2,0,[12,41,0]]],"EBinaryInRHS (%s)"],e0u=[0,[11,"EArithmeticOperand (",[2,0,[12,41,0]]],"EArithmeticOperand (%s)"],e0v=[0,[11,"EForInRHS (",[2,0,[12,41,0]]],"EForInRHS (%s)"],e0w=[0,[11,"EInstanceofRHS (",[2,0,[12,41,0]]],"EInstanceofRHS (%s)"],e0x=[0,[11,"EObjectComputedPropertyAccess (",[2,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]],"EObjectComputedPropertyAccess (%s, %s, %s)"],e0y="none",e0z=[0,[11,"EObjectComputedPropertyAssign (",[2,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]],"EObjectComputedPropertyAssign (%s, %s, %s)"],e0A=[0,[11,"EInvalidLHSInAssignment (",[2,0,[12,41,0]]],"EInvalidLHSInAssignment (%s)"],e0B=[0,[11,"EIncompatibleWithUseOp { reason_lower = ",[2,0,[11,xi,[2,0,[11,lI,[2,0,[11,iS,0]]]]]]],"EIncompatibleWithUseOp { reason_lower = %s; reason_upper = %s; use_op = %s }"],e0C=[0,[11,"EUnsupportedImplements (",[2,0,[12,41,0]]],"EUnsupportedImplements (%s)"],e0D=[0,[11,"ENotAReactComponent { reason = ",[2,0,[11,lI,[2,0,[11,iS,0]]]]],"ENotAReactComponent { reason = %s; use_op = %s }"],e0E=[0,[11,"EInvalidReactConfigType { reason = ",[2,0,[11,lI,[2,0,[11,iS,0]]]]],"EInvalidReactConfigType { reason = %s; use_op = %s }"],e0F=[0,[11,"EReactElementFunArity (",[2,0,[12,41,0]]],"EReactElementFunArity (%s)"],e0G="EReactRefInRender _",e0H=[0,[11,"EFunctionCallExtraArg (",[2,0,[11,_,[2,0,[11,_,[4,0,0,0,[11,_,[2,0,[12,41,0]]]]]]]]],"EFunctionCallExtraArg (%s, %s, %d, %s)"],e0I=[0,[11,"EUnsupportedSetProto (",[2,0,[12,41,0]]],"EUnsupportedSetProto (%s)"],e0J=[0,[11,"EDuplicateModuleProvider (",[3,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]],"EDuplicateModuleProvider (%S, %s, %s)"],e0K=[0,[11,"EParseError (",[2,0,[11,aso,0]]],"EParseError (%s, _)"],e0L="MultipleFlowAttributes",e0N="MultipleJSXAttributes",e0O="MultipleJSXRuntimeAttributes",e0P="InvalidJSXRuntimeAttribute",e0Q="DisallowedSupportsPlatform",e0R="InvalidFlowMode",e0S="InvalidJSXAttribute",e0T="InvalidSupportsPlatform",e0M=[0,[11,"EDocblockError (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EDocblockError (%s, %s)"],e0U=[0,[11,"EImplicitInexactObject (",[2,0,[12,41,0]]],"EImplicitInexactObject (%s)"],e0V=[0,[11,"EAmbiguousObjectType (",[2,0,[12,41,0]]],"EAmbiguousObjectType (%s)"],e0W=[0,[11,"EUntypedTypeImport (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EUntypedTypeImport (%s, %s)"],e0X=[0,[11,"EUntypedImport (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EUntypedImport (%s, %s)"],e0Y=[0,[11,"ENonstrictImport (",[2,0,[12,41,0]]],"ENonstrictImport (%s)"],e0Z=[0,[11,"EUnclearType (",[2,0,[12,41,0]]],"EUnclearType (%s)"],e00=[0,[11,"EDeprecatedBool (",[2,0,[12,41,0]]],"EDeprecatedBool (%s)"],e01=[0,[11,"EDeprecatedDollarCall (",[2,0,[12,41,0]]],"EDeprecatedDollarCall (%s)"],e02=[0,[11,"EDeprecatedDollarObjMap (",[2,0,[12,41,0]]],"EDeprecatedDollarObjMap (%s)"],e03=[0,[11,"EDeprecatedPredicate (",[2,0,[12,41,0]]],"EDeprecatedPredicate (%s)"],e04=[0,[11,"EIncorrectTypeWithReplacement (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EIncorrectTypeWithReplacement (%s) (%s)"],e05=[0,[11,"EUnclearGettersSetters (",[2,0,[12,41,0]]],"EUnclearGettersSetters (%s)"],e06=[0,[11,"EUnusedSuppression (",[2,0,[12,41,0]]],"EUnusedSuppression (%s)"],e07=[0,[11,"ECodelessSuppression (",[2,0,[11,_,[2,0,[12,41,0]]]]],"ECodelessSuppression (%s, %s)"],e08="Invalid_setting",e0_="Malformed_argument",e0$="Naked_comment",e1a="Nonexistent_rule",e1b="Overwritten_argument",e1c="Redundant_argument",e09=[0,[11,"ELintSetting (",[2,0,[11,_,[2,0,[12,41,0]]]]],"ELintSetting (%s, %s)"],e1d="SketchyNullBool",e1f="SketchyNullString",e1g="SketchyNullNumber",e1h="SketchyNullBigInt",e1i="SketchyNullMixed",e1j="SketchyNullEnumBool",e1k="SketchyNullEnumString",e1l="SketchyNullEnumNumber",e1m="SketchyNullEnumBigInt",e1e=[0,[11,"ESketchyNullLint {kind=",[2,0,[11,"; loc=",[2,0,[11,"; null_loc=",[2,0,[11,"; falsy_loc=",[2,0,[12,E,0]]]]]]]]],"ESketchyNullLint {kind=%s; loc=%s; null_loc=%s; falsy_loc=%s}"],e1n="SketchyNumberAnd",e1o=[0,[11,"ESketchyNumberLint (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"ESketchyNumberLint (%s) (%s)"],e1p=[0,[11,"EInvalidPrototype (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EInvalidPrototype (%s) (%s)"],e1q=[0,[11,"EUnnecessaryOptionalChain (",[2,0,[12,41,0]]],"EUnnecessaryOptionalChain (%s)"],e1r=[0,[11,"EUnnecessaryInvariant (",[2,0,[12,41,0]]],"EUnnecessaryInvariant (%s)"],e1s=[0,[11,"EUnexpectedTemporaryBaseType (",[2,0,[12,41,0]]],"EUnexpectedTemporaryBaseType (%s)"],e1t=[0,[11,"ECannotDelete (",[2,0,[11,_,[2,0,[12,41,0]]]]],"ECannotDelete (%s, %s)"],e1u=[0,[11,"ESignatureVerification (",[2,0,[12,41,0]]],"ESignatureVerification (%s)"],e1v=[0,[11,"EPrimitiveAsInterface (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]],"EPrimitiveAsInterface (%s) (%s) (%s)"],e1w=[0,[11,"ECannotSpreadInterface (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]],"ECannotSpreadInterface (%s) (%s) (%s)"],e1x=[0,[11,"ECannotSpreadIndexerOnRight (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]]]],"ECannotSpreadIndexerOnRight (%s) (%s) (%s) (%s)"],e1y=[0,[11,"EUnableToSpread (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[11,gJ,[2,0,fog]]]]]]]]]],"EUnableToSpread (%s) (%s) (%s) (%s) (%s)"],e1z=[0,[11,"EInexactMayOverwriteIndexer (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[11,gJ,[2,0,foh]]]]]]]]]],"EInexactMayOverwriteIndexer (%s) (%s) (%s) (%s) (%s)"],e1C=[0,[11,"EExponentialSpread ",[2,0,[11," ([",[2,0,[11,"]) ([",[2,0,[11,aYw,0]]]]]]],"EExponentialSpread %s ([%s]) ([%s])"],e1D=[0,[11,"EComputedPropertyWithUnion (",[2,0,[12,41,0]]],"EComputedPropertyWithUnion (%s)"],e1E=C2,e1F=C2,e1G=[0,[11,"EEnumInvalidMemberAccess (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]]]],"EEnumInvalidMemberAccess (%s) (%s) (%s) (%s)"],e1H=[0,[11,"EEnumModification (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EEnumModification (%s) (%s)"],e1I=[0,[11,"EEnumMemberDuplicateValue (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]],"EEnumMemberDuplicateValue (%s) (%s) (%s)"],e1J=[0,[11,"EEnumInvalidObjectUtilType (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EEnumInvalidObjectUtilType (%s) (%s)"],e1K=[0,[11,"EEnumInvalidObjectFunction (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EEnumInvalidObjectFunction (%s) (%s)"],e1L=[0,[11,"for_in = ",[9,0,0]],"for_in = %B"],e1M=[0,[11,"EEnumNotIterable (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EEnumNotIterable (%s) (%s)"],e1N=[0,[11,"EEnumMemberAlreadyChecked (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]]]],"EEnumMemberAlreadyChecked (%s) (%s) (%s) (%s)"],e1O=[0,[11,"EEnumAllMembersAlreadyChecked (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EEnumAllMembersAlreadyChecked (%s) (%s)"],e1P=C2,e1Q=_,e1R=[0,[11,"EEnumNotAllChecked (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]]]],"EEnumNotAllChecked (%s) (%s) (%s) (%s)"],e1S=[0,[11,"EEnumUnknownNotChecked (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EEnumUnknownNotChecked (%s) (%s)"],e1T=C2,e1U=[0,[11,"EEnumInvalidCheck (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]],"EEnumInvalidCheck (%s) (%s) (%s)"],e1V=[0,[11,"EEnumMemberUsedAsType (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EEnumMemberUsedAsType (%s) (%s)"],e1W=C2,e1X=[0,[11,"EEnumIncompatible { reason_lower = ",[2,0,[11,xi,[2,0,[11,lI,[2,0,[11,"; representation_type = ",[2,0,[11,iS,0]]]]]]]]],"EEnumIncompatible { reason_lower = %s; reason_upper = %s; use_op = %s; representation_type = %s }"],e1Y=[0,[11,"EAssignConstLikeBinding (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]],"EAssignConstLikeBinding (%s) (%s) (%s)"],e1Z=_,e10=[0,[11,"ECannotResolveOpenTvar (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]],"ECannotResolveOpenTvar (%s) (%s) (%s)"],e11=[0,[11,"EMalformedCode (",[2,0,[12,41,0]]],"EMalformedCode (%s)"],e12=[0,[11,"EImplicitInstantiationUnderconstrainedError (",[2,0,[12,41,0]]],"EImplicitInstantiationUnderconstrainedError (%s)"],e13="EClassToObject",e14=[0,[11,"EMethodUnbinding (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]],"EMethodUnbinding (%s) (%s) (%s)"],e15=[0,[11,"EObjectThisReference (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EObjectThisReference (%s, %s)"],e16=[0,[11,"EComponentThisReference (this=",[2,0,[11,", component=",[2,0,[12,41,0]]]]],"EComponentThisReference (this=%s, component=%s)"],e17=[0,[11,"EComponentCase (",[2,0,[12,41,0]]],"EComponentCase (%s)"],e18=[0,[11,"EComponentMissingReturn (",[2,0,[12,41,0]]],"EComponentMissingReturn (%s)"],e19=[0,[11,"ENestedComponent (",[2,0,[12,41,0]]],"ENestedComponent (%s)"],e1_=[0,[11,"EInvalidDeclaration ",[2,0,0]],"EInvalidDeclaration %s"],e1$="invalid graphql",e2b="invalid tagged template",e2a=[0,[11,"EInvalidGraphQL (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EInvalidGraphQL (%s) (%s)"],e2c=[0,[11,"EAnnotationInference (",[2,0,[11,gJ,[2,0,[11,gJ,[2,0,[12,41,0]]]]]]],"EAnnotationInference (%s) (%s) (%s)"],e2d=[0,[11,"EAnnotationInferenceRecursive (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EAnnotationInferenceRecursive (%s) (%s)"],e2e="EDefinitionCycle",e2f="ERecursiveDefinition",e2g="EReferenceInAnnotation",e2h=[0,[11,"EDuplicateClassMember (",[2,0,[11,gJ,[2,0,[12,41,0]]]]],"EDuplicateClassMember (%s) (%s)"],e2i=[0,[11,"EEmptyArrayNoProvider (",[2,0,[12,41,0]]],"EEmptyArrayNoProvider (%s)"],e2j=[0,[11,"EUnusedPromise (",[2,0,[12,41,0]]],"EUnusedPromise (%s)"],e2k=[0,[11,"EBigIntRShift3 (",[2,0,[12,41,0]]],"EBigIntRShift3 (%s)"],e2l=[0,[11,"EBigIntNumCoerce (",[2,0,[12,41,0]]],"EBigIntNumCoerce (%s)"],e2m=[0,[11,"EInvalidCatchParameterAnnotation (",[2,0,[12,41,0]]],"EInvalidCatchParameterAnnotation (%s)"],e2n=[0,[11,"ETSSyntax (",[2,0,[12,41,0]]],"ETSSyntax (%s)"],e2o=[0,[11,"EInvalidBinaryArith (",[2,0,[11,_,[2,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]]]],"EInvalidBinaryArith (%s, %s, %s, %s)"],e2p="InterfaceOrDeclaredClass",e2r="ExtraProperties",e2s="RequiredInlineKeyof",e2t="ExplicitExactOrInexact",e2u="RemoveOptionality",e2q=[0,[11,"EInvalidMappedType (",[2,0,[11,_,[2,0,[12,41,0]]]]],"EInvalidMappedType (%s, %s)"],e2v=[0,[11,"EDuplicateComponentProp (",[2,0,[12,41,0]]],"EDuplicateComponentProp (%s)"],e2w=[0,[11,"ERefComponentProp (",[2,0,[12,41,0]]],"ERefComponentProp (%s)"],e2x="EReactIntrinsicOverlap (_, _, _)",e2y=[0,[11,"EInvalidComponentRestParam (",[2,0,[12,41,0]]],"EInvalidComponentRestParam (%s)"],e2z=[0,_],e2A=qW,e2C=DA,e2D=zS,e2B=[0,[11,"EInvalidRendersTypeArgument { loc = ",[2,0,[11,"; renders_variant = ",[2,0,[11,", invalid_render_type_kind = ",[2,0,[11,"; invalid_type_reasons = [",[2,0,[11,"] }",0]]]]]]]]],"EInvalidRendersTypeArgument { loc = %s; renders_variant = %s, invalid_render_type_kind = %s; invalid_type_reasons = [%s] }"],e2E=[0,[11,"EInvalidTypeCastSyntax (",[2,0,[12,41,0]]],"EInvalidTypeCastSyntax (%s)"],e2F=[0,[11,"EMissingPlatformSupport(",[2,0,[11,_,[2,0,[11,_,[2,0,[12,41,0]]]]]]],"EMissingPlatformSupport(%s, %s, %s)"],eX8="IncompatibleGetPrivatePropT",eX9="IncompatibleSetPrivatePropT",eX_="IncompatibleCallT",eX$="IncompatibleMixedCallT",eYa="IncompatibleElemTOfArrT",eYb="IncompatibleObjAssignFromTSpread",eYc="IncompatibleObjAssignFromT",eYd="IncompatibleObjRestT",eYe="IncompatibleArrRestT",eYf="IncompatibleSuperT",eYg="IncompatibleMixinT",eYh="IncompatibleSpecializeT",eYi="IncompatibleThisSpecializeT",eYj="IncompatibleVarianceCheckT",eYk="IncompatibleGetKeysT",eYl="IncompatibleGetValuesT",eYm="IncompatibleUnaryArithT",eYn="IncompatibleMapTypeTObject",eYo="IncompatibleGetStaticsT",eYp="IncompatibleBindT",eYq="IncompatibleGetPropT",eYr="IncompatibleSetPropT",eYs="IncompatibleMethodT",eYt="IncompatibleGetElemT",eYu="IncompatibleSetElemT",eYv="IncompatibleCallElemT",eYw="IncompatibleHasOwnPropT",eYx=[0,[11,"IncompatibleUnclassified ",[3,0,0]],"IncompatibleUnclassified %S"],eXM="MethodNotAFunction",eXN="OptionalMethod",eXO="PropertyDescriptorPropertyCannotBeRead",eXP="ForInLHS",eXQ="ForOfLHS",eXR="PropRefComputedOpen",eXS="PropRefComputedLiteral",eXT="RestParameterNotIdentifierPattern",eXU="InterfaceTypeSpread",eXV=aVT,eXW="UnsupportedGuardPredicate",eXX="ParseJobException",eXY="CheckTimeout",eXZ="CheckJobException",eX0="UnexpectedAnnotationInference",eX1="MissingEnvRead",eX2="MissingEnvWrite",eX3="UnexpectedModuleT",eX4="ReadOfUnreachedTvar",eX5="ReadOfUnresolvedTvar",eX6="EnvInvariant",eX7="ImplicitInstantiationInvariant",eXF=[0,[11,"Expected annotation at ",[2,0,[12,32,[17,[0,a,1,0],[2,0,0]]]]],"Expected annotation at %s @ %s"],eXG=[0,[11,"Expected simple object key ",[17,[0,a,1,0],[2,0,0]]],"Expected simple object key @ %s"],eXH=[0,[11,"Unexpected array spread ",[17,[0,a,1,0],[2,0,0]]],"Unexpected array spread @ %s"],eXI=[0,[11,"Unexpected array hole ",[17,[0,a,1,0],[2,0,0]]],"Unexpected array hole @ %s"],eXJ=[0,[11,"Cannot determine the element type of an empty array ",[17,[0,a,1,0],[2,0,0]]],"Cannot determine the element type of an empty array @ %s"],eXK=[0,[11,"Cannot determine types of initialized properties of an empty object ",[17,[0,a,1,0],[2,0,0]]],"Cannot determine types of initialized properties of an empty object @ %s"],eXL=[0,[11,aYN,[2,0,[12,32,[17,[0,a,1,0],[2,0,0]]]]],"Cannot determine the type of this %s @ %s"],eTr="Infer",eTs=aUi,eS1="NonMaybeType",eS2=aUx,eS3="PartialType",eS4="RequiredType",eS5="Values",eS6="ReactElementProps",eS7="ReactElementConfig",eS8="ReactElementRef",eS9="ReactCheckComponentRef",eS_=[0,[11,"PropertyType ",[2,0,0]],"PropertyType %s"],eS$="ElementType",eTa="OptionalIndexedAccessNonMaybeType",eTb="OptionalIndexedAccessResultType",eTc="Spread",eTd="SpreadTupleType",eTe="Rest",eTf="CallType",eTg="ConditionalType",eTh="ObjectKeyMirror",eTi="TupleMap",eTj=a0B,eTk="ObjectMapi",eTl="ObjectMapConst",eTm="ReactPromoteRendersRepresentation",eTn=aTU,eTo=aUq,eTp="ReactDRO",eTq="MappedType",eSV="Default",eSW=[0,[11,"Prop ",[2,0,0]],"Prop %s"],eSX="Elem _",eSY=h3,eSZ=[0,[11,"ObjRest [",[2,0,[12,93,0]]],"ObjRest [%s]"],eS0=[0,[11,"ArrRest ",[4,3,0,0,0]],"ArrRest %i"],eSU=aln,eSO=q1,eSP=nK,eSQ=[0,[11,"string ",[2,0,0]],"string %s"],eSR=[0,[11,"number ",[8,[0,0,0],0,0,0]],"number %f"],eSS=[0,[11,"boolean ",[9,0,0]],"boolean %b"],eST=[0,[11,"bigint ",[2,0,0]],"bigint %s"],e2M=[0,[11,"TVAR ",[4,0,0,0,[11,su,[4,0,0,0,[11,Uo,[2,0,0]]]]]],"TVAR %d (%d): %s"],e2N=[0,as,HQ,ar,ji,aX,aZw,jd,"substmap","smap",Iw,hA,iw,a2v,ax,"opt",HE,H4,HL,IO,"nel","namemap","list",Hz,jg,"fun_predicate",gK,HR,jh,jf,ja,IW,je,aSH,jb,R7,I3],e2O=[0,jg,hA,iw,jd,ji,jf,jb,as,je,ja,ar,gK,jh],e21=[0,[11,"encountered the same TypeAppT again: ",[2,0,0]],"encountered the same TypeAppT again: %s"],e22=[0,[11,"typeapp stack entry: ",[2,0,0]],"typeapp stack entry: %s"],e2X=IH,e2Y=[0,[12,91,[2,0,[12,93,0]]],vf],e2Z=kl,e20=[0,[2,0,[12,60,[2,0,[12,62,0]]]],a1G],e2P=[0,as,ar,ji,jd,hA,iw,jg,gK,jh,jf,ja,je,jb,aT0],e2Q=[0,jb,je,ja,jf,jh,gK,jg,iw,hA,jd,ji,ar,as],e2R=[0,jg,aT0,hA,iw,jd,ji,jf,jb,as,je,ja,ar,gK,jh],e24=[0,[2,0,[11,"FlowConstraint cache hit on (",[2,0,[11,_,[2,0,[12,41,0]]]]]],"%sFlowConstraint cache hit on (%s, %s)"],e25=[0,1],e26="tvars of error actions don't make sense",e28=[0,as,HQ,ar,ji,aX,aZw,jd,Iw,hA,iw,a2v,ax,HE,H4,HL,IO,Hz,"func_predicate",jg,gK,HR,jh,sQ,jf,ja,IW,je,aSH,"canonical_renders_form",jb,R7,I3],e3I=[0,[11,"Cannot substitute through synthetic name ",[2,0,[11," at ",[2,0,[12,46,0]]]]],"Cannot substitute through synthetic name %s at %s."],e3J=[0,[11,"Unhandled type ctor: ",[2,0,0]],"Unhandled type ctor: %s"],e3H=[0,0],e3D=[0,0],e3E="Invariant violation: reachable targs are None after visiting an object",e3z=[0,"src/typing/type_subst.ml",anb,37],e3m=[0,[11,"Cannot rename synthetic name ",[2,0,0]],"Cannot rename synthetic name %s"],e2$=[0,"change_id","obj_reachable_targs"],e3a=[0,I3,je,IW,ja,jf,sQ,HR,jg,Hz,IO,HL,H4,HE,ax,iw,Iw,jd,ar,HQ,as],e3b=[0,jb,je,ja,jf,jh,gK,jg,iw,hA,jd,ji,ar,as],e3c=[0,ji,hA,gK,jh,jb],e3d=[0,HQ,sQ,I3,jg,hA,iw,jd,ji,jf,HR,ax,jb,as,je,HE,IO,ja,HL,ar,H4,Hz,gK,Iw,jh,IW],e3e=[0,as,HQ,ar,ji,jd,Iw,hA,iw,ax,HE,H4,HL,IO,Hz,jg,gK,HR,jh,sQ,"distributive_tparam_name",jf,ja,IW,je,jb,I3],e3f=[0,jg,hA,iw,jd,ji,jf,jb,as,je,ja,ar,gK,jh],e3g=[0,"with_distributive_tparam_name",as,ar,ji,jd,hA,iw,jg,gK,jh,jf,ja,je,jb],e4k=[0,1],e4q=[0,0,0,0],e4r=[9,0],e4p=[0,1,0,0,0],e4o=[0,1],e4n=[0,1],e4j=[0,gF],e4h=[0,gF],e4i=[0,gF],e4g=[0,gF],e4d=gF,e4e=gF,e4f=gF,e4c=[0,gF],e4b=[0,1],e3$=[0,1],e4a=[0,gF],e3_=[0,0],e39=[0,w3],e38=[0,Ia],e36=[0,q8],e33=[60,aXD],e32=[0,0],e30="union_compare slow",e3X=[0,[11,"\nspeculative_error: ",[2,0,0]],"\nspeculative_error: %s"],e3Y=[0,[11,"\nadd_output: ",[2,0,0]],"\nadd_output: %s"],e3Z=[0,[11,"add_output: no source for error: ",[2,0,0]],"add_output: no source for error: %s"],e3S=[0,0],e3T=[0,1],e3U=[0,2],e3P=[0,agk,Sn,6],e3Q=[0,agk,anU,8],e3R=[0,agk,SS,6],e3V="Flow_js_utils.SpeculativeError",e3W="Flow_js_utils.SpeculationSingletonError",e4l="^-?\\(0\\|[1-9][0-9]*\\)$",e4t=[0,1],e4u=[0,ig],e4s="Check_polarity.UnexpectedType",e4x=[4,0],e4w=[0,0],e4I=[0,"src/typing/speculation_kit.ml",637,8],e4H=[0,3],e4J=[0,0],e4y=[0,0],e4z=[0,0],e4A="union:",e4G=[0,[11,"union: ",[2,0,0]],"union: %s"],e4B=nb,e4C=aY5,e4D=[0,[2,0,[11," | ...",0]],"%s | ..."],e4E=[0,[2,0,[11,aY5,0]],"%s(s)"],e4F=[0,[2,0,[11,aln,[2,0,0]]],"%s | %s"],e4W=g,e4V=[0,[12,96,[2,0,[11,"` (resolved to type `empty`)",0]]],"`%s` (resolved to type `empty`)"],e4K=[0,as,ar,ji,jd,hA,iw,jg,gK,jh,jf,ja,je,jb,R7],e4L=[0,jg,hA,iw,jd,ji,jf,jb,R7,as,je,ja,ar,gK,jh],e4M="Tvar_resolver.EncounteredPlaceholderType",e4N="Tvar_resolver.EncounteredUnresolvedTvar",e5q=[0,"Conditional type refuses to evaluate because ",[0,"we are in implicit instantiation, and we don't have fully resolved inputs",0]],e5r=[0,"Conditional type evaluates to the true branch.",0],e5s=[0,"Conditional type evaluates to the false branch.",0],e5t=[0,"Conditional type evaluates to the false branch because we will always enter the false branch.",0],e5u=[0,"Conditional type is kept abstract.",0],e5p=[0,0],e5o=[0,a3q],e5m="Underconstrained due to upper_non_t",e5j=[0,3],e5k=[0,[11,"Type parameter ",[2,0,[11,aXz,[2,0,0]]]],"Type parameter %s is pinned to %s"],e5g=[0,3],e5h=[0,[11,"Constant type parameter ",[2,0,[11,aXz,[2,0,0]]]],"Constant type parameter %s is pinned to %s"],e4$=[0,g],e4_=[11,"Constant tparam is unsupported."],e42=[0,l$],e43=[0,0],e44=[0,0],e45=[0,0,0],e48=[1,0],e46=[0,0,0],e47=[0,0,0],e49=g,e4Y=[0,jb,je,ja,jf,jh,gK,jg,iw,hA,jd,ji,ar,as],e4Z=[0,"typeapp",as,ar,ji,jd,hA,iw,jg,gK,jh,jf,ja,je,jb],e40=[0,jg,hA,iw,jd,ji,jf,jb,as,je,ja,ar,gK,jh],e5a=[0,0],e5x=[60,aXP],e5y=[60,aXP],e5z="implemented elsewhere",e5A=[0,1],e5B=[0,0,0],e5C=aSN,e5D=[0,w3],e5E=[0,w3],e5F="cloneElement",e5G=[0,1],e5H=[0,0,0],e53=[0,0],e54=[0,0],e5Y=[0,1,0,0],e5Z=[0,0],e50=[0,0],e51=[0,0],e5X=[0,1,0,0],e52=[0,0],e5V=[0,0],e5U=[0,0],e5T=[0,0],e5S="Ref should have been extracted elsewhere",e5Q=[0,0],e5O=[0,0],e5N=[0,0],e5L=[47,0],e5M=[4,0],e5K=[4,0],e5J=[0,0],e5P="Slice_utils.CannotSpreadError",e5R="Slice_utils.InvalidConfig",e6d=[0,0],e6a=[0,tZ],e6b=[0,l9],e6c=[0,qi],e56=[0,0,0],e6y=[0,0],e6z=[0,1],e6A=[0,0],e6p=[0,0],e6q=[60,"React key"],e6r=[0,"React$Key"],e6s=[1,0,0],e6t=[60,"React ref"],e6u=[0,akI],e6v=[1,0,0],e6w=[0,w3],e6x=[0,1],e6o=[0,0],e6B="handled elsewhere",e6C=[0,0,0],e6n=[0,0],e6i=[25,[0,a1U]],e6j=[0,a1U],e6k=aj_,e6l=hA,e6h=[0,a0X],e6D=[0,1],e6E=[0,1],e6F=[2,[0,0]],e6G=[0,t6],e7b=[1,0,0],e69=[0,ig],e65=[0,0],e66=[4,2],e67=[0,f0],e68="Impossible",e6_=[0,l$],e6$="ObjT ~> ObjT fast path: yes",e7a="ObjT ~> ObjT fast path: no",e7c=[0,q6],e7d=[0,t6],e7e=[0,1],e7f="PolyT ~> PolyT fast path",e7g=[0,w3],e7h=[0,1],e64="UnionT ~> UnionT fast path (via an opaque type)",e62=a0G,e63="UnionT ~> UnionT fast path",e60=a0G,e61="UnionT ~> UnionT slow case",e6Z="IntersectionT ~> UnionT slow case",e6X=[0,l$],e6Y=[0,1],e6W=[1,0,0],e6V=[0,aWE],e6Q=[0,rU],e6R=[0,oW],e6S=[0,qj],e6T=[0,qR],e6U=[0,pS],e6P=[0,lG],e6N=[0,qZ],e6O=[0,lG],e6M=[0,qZ],e6K=[1,0,0],e6J=[1,0,0],e6I=[0,0],e6L=[4,0],e6H=[1,-432845892],e7j=[0,0],e7k=[1,0],e7l=[2,[0,1]],e7m=[4,1],e7n=[0,[0,0,[0,0.,lb]]],e7o=[1,[0,0,[0,g]]],e7p=[2,[0,0]],e7r=[4,1],e7s=[4,2],e7q=[4,2],e7u=[4,3],e7t=[4,2],e7w=[4,4],e7v=[4,2],e7S=[4,0],e7T=[4,5],e7U=[12,4],e7W=[0,6,0],e7V=[4,0],e7Q=[3,0],e7R=[3,1],e7O=[0,0],e7P=[0,1],e7M=[1,0],e7N=[1,1],e7K=[2,[0,1]],e7L=[2,0],e7I=[4,1],e7J=[2,[0,1]],e7E=[4,0],e7F=[2,[0,0]],e7G=[2,[0,0]],e7H=[2,[0,0]],e7C=[4,0],e7D=[2,[0,0]],e7y=[4,1],e7z=[2,[0,1]],e7A=[2,[0,1]],e7B=[2,[0,1]],e7x=[0,g],e7i=[4,0],e_P=[0,1],e9H=[60,aXD],e9I=[0,ahs,10174,6],e9G=[0,1],e9F=[0,1],e9D="handled below",e9E=[0,1],e9C=[0,0],e9B=apq,e9A=apq,e9z=apq,e9x=aW$,e9y=aW$,e9u=a1$,e9w=a1$,e9v=[0,0],e9t=[0,0,0,0],e9r=[0,1],e9s=[0,1],e9p=[0,1],e9q=[0,1],e9n=[0,1],e9o=[0,1],e9l=[0,1],e9m=[0,1],e9j=[0,[0,1]],e9k=[0,[0,0]],e9d=[0,q6],e9e=[0,qZ],e9f=[0,1],e9g=[0,lG],e9h=[0,1],e9i=[0,q6],e9c=[0,[2,2],2],e9b=[0,0,[2,0]],e8$="targs containing ImplicitArg should be handled by ImplicitInstantiationKit instead.",e9a=[0,0],e84=[0,0],e85=[0,0],e86=[0,0],e87=[0,0],e88=[0,0],e89=[0,0],e8_=[0,0],e83=[2,5],e82=[1,0,0],e81=[0,rS],e80="no any expansion defined for this case",e8Z="UnionT ~> UnionT fast path (via a generic)",e8Y=[0,1],e8P=[4,[1,0],0,0],e8N=[0,ig],e8J=[0,l$],e74=[0,"(cached)"],e75=[0,"deferred during speculation",0],e76=[0,1],e8H=[0,0],e8I=[4,2],e8G=[4,0],e8K=[0,[0,ig]],e8L=[0,q6],e8M=[0,t6],e8O=[0,0],e8R=[0,1],e8Q=[0,1],e8S=[0,a0M],e8T=[0,1],e8U="EvalT ~> EvalT fast path",e8W=[0,ahs,1787,10],e8X=[0,0],e8D=[0,10],e8C=[0,1],e8B=[0,1],e8y=[2,0],e8x=[2,0],e8z=[2,2],e8A=[2,2],e8v=[0,l$],e8w=[0,"React$ComponentRenders"],e8t="UnionT ~> StrictEqT fast path",e8u="UnionT ~> EqT fast path",e8r=[4,0],e8s=[2,[0,0]],e8m=[60,"Array expected for spread"],e8n=[0,"$ArrayLike"],e8o=[60,"Array-like object expected for apply"],e8p=[0,Ia],e8q=[60,"Iterable expected for spread"],e8l=[10,1,1,0,0],e8k=[0,"$iterate"],e8i=[0,a1x],e8j=[0,Ia],e8g=[0,qZ],e8h=[0,lG],e8f=[0,1],e8e=[4,0],e8c=[0,l$],e8a=[0,qZ],e8b=[0,lG],e77=[0,In],e78=[0,Ht],e79=[0,CW],e7_=[0,I0],e7$=[0,amd],e8V=[0,1],e8E=[4,1],e8F=[2,[0,1]],e8d=[0,aWE],e73=[0,Tc],e72="Expected concrete type",e71=[0,1],e70=[0,1],e7Y=[0,[11,"Did not expect ",[2,0,0]],"Did not expect %s"],e7X="Flow_js.RecursionCheck.LimitExceeded",e9J=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],e9K=[0,ahs,10274,36],e_z=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],e_0=[0,[11,a3A,[2,0,[11," (in sentinel refinement)",0]]],"reading from location %s (in sentinel refinement)"],e_Z=[0,[11,a3A,[2,0,[11," (in instanceof refinement)",0]]],"reading from location %s (in instanceof refinement)"],e_Y=[60,aXa],e_1=[0,[11,atq,[2,0,[11," from location ",[2,0,0]]]],"reading %s from location %s"],e_2=[0,[11,atq,[2,0,[11,aS7,[2,0,0]]]],aWZ],e_3=[0,0],e_4=[0,0],e_5=[0,[11,"reading function this(",[2,0,[11,IN,[2,0,0]]]],"reading function this(%s) from location %s"],e_6=[0,[11,"reading illegal this(",[2,0,[11,IN,[2,0,0]]]],"reading illegal this(%s) from location %s"],e_7=[0,0],e_8=[0,[11,"reading instance this(",[2,0,[11,IN,[2,0,0]]]],"reading instance this(%s) from location %s"],e_9=[0,[11,"reading static this(",[2,0,[11,IN,[2,0,0]]]],"reading static this(%s) from location %s"],e__=[0,[11,"reading instance super(",[2,0,[11,IN,[2,0,0]]]],"reading instance super(%s) from location %s"],e_$=[0,[11,atq,[2,0,[11,aS7,[2,0,0]]]],aWZ],e$a=[60,"unreachable value"],e$b=[0,1],e$c=[0,0],e$d=[0,[11,"LocEnvEntryNotFound ",[2,0,0]],"LocEnvEntryNotFound %s"],e$e=[0,0],e$f=[0,0,0],e$q=[1,C9],e$p=[60,"discriminant of switch"],e$o=[60,"non-assigning provider"],e$k=[0,0],e$l=[0,"src/typing/type_env.ml",734,4],e$j=[0,[11,"writing to ",[2,0,[12,32,[2,0,0]]]],"writing to %s %s"],e$i=[60,Uq],e$h=[0,0],e$g=[60,RW],e_U=[0,[11,"Missing provider write at ",[2,0,[11,aWv,[2,0,0]]]],"Missing provider write at %s for %s"],e_V=[60,Uq],e_W=[60,Uq],e_X=[60,"no providers"],e_T="Expect only OpenTs in env, instead we have ",e_R=[0,1],e_S=[0,[11,"Missing location entry: ",[2,0,0]],"Missing location entry: %s"],e_Q=[0,0],e$C=[0,q8],e$z=[0,q8],e$y=[0,[0,0,[0,0,0]]],e$w=[0,3],e$x=[0,[11,aUG,[2,0,0]],aXZ],e$A=[1,1],e$B=[0,akI],e$v=[0,ig],e$D=[0,3],e$E=[0,[11,aUG,[2,0,0]],aXZ],e$F=[60,"placeholder hint"],e$I="NoHint",e$L="EncounteredPlaceholder",e$M="DecompositionError",e$N=[0,3],e$O=[0,[11,"BestEffortHint: ",[2,0,0]],"BestEffortHint: %s"],e$P=[0,3],e$Q=[0,[11,"ExpectedTypeHint: ",[2,0,0]],"ExpectedTypeHint: %s"],e$J=[0,3],e$K=[0,[11,"Hint ",[2,0,[11," evaluates to",0]]],"Hint %s evaluates to"],e$G=[0,3],e$H=[0,[11,"Evaluating hint ",[2,0,0]],"Evaluating hint %s"],e$u=[0,0],e$s="Type_hint.UnconstrainedTvarException",e$t="Type_hint.DecompFuncParamOutOfBoundsException",e$3=g,e$Y=g,e$Z=g,e$V=[60,C$],e$W=[4,0],e$U=[0,f0],e$T=[0,f0],e$R=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,hK,eo,hT,ei,eR,hD,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,hI,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,hz,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,hE,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,hH,bw,hL,a5,hG,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,hF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,hQ,hM,hN,hR,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,hS,cg,a6,b0,eC,dc,b5,bW,cL,as,hP,bC,hJ,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],e$S=[0,hO,hU],e$X="Typed_ast_finder.ExactMatchQuery.Found",e$1="Typed_ast_finder.TparamsRevQuery.Found",fav=[1,10],faq=[1,11],fal=g,fak=[0,0],fad=[60,"jsx attr"],fab=g,fac=g,e$4=[0,cz,eA,dg,cl,ez,aJ,eD,tS,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,ee,bO,bo,bR,dX,e_,eL,bz,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,hF,e1,dW,a3R,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,a3K,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],e$5=[0,cz,eA,dg,cl,ez,aJ,eD,tS,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,ee,bO,bo,bR,dX,e_,eL,bz,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,hF,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,aYj,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],e$6=[0,cz,eA,dg,cl,ez,aJ,eD,tS,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,ee,bO,bo,bR,dX,e_,eL,bz,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,hF,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,aZa,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],e$7=[0,"l"],e$8=[0,"map"],e$9=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,CZ,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,a3K,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,a3R,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,tS],e$_=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aYj,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,CZ,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,tS],e$$=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aZa,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,CZ,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,tS],faa="Typed_ast_utils.Type_at_pos.Found",fbt=[0,0],fbs=[0,0],fbr=[0,0],fbq=[0,0],fbp=[0,0],fbm=aVF,fbn=aTU,fbo=a0B,fbe=[0,q6],fbf=[0,t6],fbg=[0,w3],fbh=[0,a0M],fbi=[0,ajf],fbj=[0,RI],fbk=[0,qZ],fbl=[0,lG],fba=[4,0],fbb=[2,[0,0]],fa_=[0,qZ],fa$=[0,lG],fa2=[0,In],fa3=[0,1],fa4=[0,Ht],fa5=[0,1],fa6=[0,CW],fa7=[0,1],fa8=[0,I0],fa9=[0,1],fbc=[4,1],fbd=[2,[0,1]],faZ=[0,Tc],faG=[0,QT,vj,14],faF=[0,QT,tE,14],faE=[0,QT,oi,14],faA="unexpected unresolved constraint in annotation inference",faB=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],faC=[0,QT,kp,25],fbu=[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],fbH=fr,fcu=[0,f0],fcv=f0,fcw=[0,f0],fct=[0,0],fcs=[76,[60,aD]],fcp=[0,f0],fcq=f0,fcr=[0,f0],fcm="unexpected class mixin",fco=[60,"class mixins"],fcn=fr,fcl=[60,"class extends"],fck=xs,fcj=[4,0],fci=[0,1],fch=[0,1],fcg="unexpected spread",fcf=[0,0],fb$=C$,fca=[1,1],fcb=[1,1],fcc=[0,1],fcd=[3,1],fce=[2,0],fb7=[62,18],fbM=fr,fbN=[1,1],fbO=[25,[0,Hn]],fbP=[25,[0,IM]],fbQ=[5,1],fbR=[5,1],fbS=[25,[0,DT]],fbT=[25,[0,IQ]],fbU=[0,1],fbV=[25,[0,It]],fbW=[25,[0,IU]],fbX=[9,0],fbY=[0,[11,aZm,[2,0,[12,96,0]]],aZH],fbZ=[0,0],fb0=[0,1],fb1=[60,agF],fb2=[37,[0,l$]],fb3=[0,l$],fb4=[25,[0,ID]],fb5=[25,[0,Jd]],fb6=[25,[0,Hr]],fb8=[60,a1o],fb9="unexpected adjacent slices",fb_="unexpected solo slice",fbI=[0,0],fbJ=[0,q8],fbK=[60,a4r],fbL=[0,aXt],fbE=[41,0],fbF=[0,0],fbG=[0,[11,ai3,[4,0,0,0,0]],aii],fbD=zA,fbC=gi,fbB=ig,fbz=[0,q8],fbA=[60,aTL],fby=[41,0],fbw=anu,fbx=[0,0],fbv=[74,17],fcD=[0,a3q],fcx=[0,as,ar,ji,jd,hA,iw,jg,gK,jh,jf,ja,je,jb],fcy=[0,jb,je,ja,jf,jh,gK,jg,iw,hA,jd,ji,ar,as],fcz=[0,jg,hA,iw,jd,ji,jf,jb,as,je,ja,ar,gK,jh],fcA="Component_params.Found",fcK=[0,1],fcF=[0,T9],fcG=[0,0],fcL=[0,1],fcM=[1,0],fcN=jc,fcO=f0,fcQ=[41,0],fcP=[0,[11,ai3,[4,0,0,0,0]],aii],fcT=[0,0],fcS="Abnormal.Exn",fc5=[0,1],fdl=g,fdj="tried to evaluate toplevel of interface",fdg=[0,1],fdh=[0,f0],fdi=[0,f0],fdf=xs,fde=[0,f0],fdd=[1,0],fdb=[0,[11,"static fields and methods must be disjoint: ",[2,0,0]],"static fields and methods must be disjoint: %s"],fdc="statics must be an ObjT",fc$=[1,0],fda=ig,fc_=gi,fdk="Class_sig.Make(CT)(C)(P)(F)(T).This.FoundInClass",fc7=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],fc8=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],fc9=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],fdu=[0,l$],fdq=[60,aSn],fdr=g,fds=g,fdt=g,fdm=[0,aH,bO,dI,Sc,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,UG,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],fdn=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,hK,eo,hT,ei,eR,hD,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,hI,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,hz,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,hE,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,hH,bw,hL,a5,hG,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,hF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,hQ,hM,hN,hR,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,hS,cg,a6,b0,eC,dc,b5,bW,cL,as,hP,bC,hJ,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],fdo=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,ee,bO,bo,bR,dX,e_,eL,bz,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,UG,bx,hF,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,Sc,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],fdp=[0,hO,hU],fd2="expected return body",fdR=[4,0],fdS=[60,"no next"],fdT=[4,0],fdU=[60,"no yield"],fd3=[60,aH],fd4=[60,C9],fd6=Jb,fd7=Ia,fd8=Ip,fd9=a1x,fd5="Bad kind",fdW=[25,[0,q8]],fdX=[0,q8],fdY=[25,[0,Jb]],fdZ=[0,Jb],fd0=[25,[0,Ip]],fd1=[0,Ip],fdV=[60,aSn],fdK=[0,aSC],fdJ=[60,aTL],fdL=[0,q8],fdM=[60,"generator return"],fdN=[0,Jb],fdO=[60,"async generator return"],fdP=[0,Ip],fdA=g,fdB=g,fdC=g,fdD=g,fdE=g,fdF=g,fdG=g,fdH=g,fdI=g,fdv=[0,aH,bO,dI,Sc,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,UG,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],fdw=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,hK,eo,hT,ei,eR,hD,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,hI,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,hz,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,hE,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,hH,bw,hL,a5,hG,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,hF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,hQ,hM,hN,hR,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,hS,cg,a6,b0,eC,dc,b5,bW,cL,as,hP,bC,hJ,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],fdx=[0,"no_return","has_throw","no_yield"],fdy=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,ee,bO,bo,bR,dX,e_,eL,bz,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,UG,bx,hF,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,Sc,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],fdz=[0,hO,hU],fea=[0,gF],fd_=[0,0],fd$=[0,1],ffF=[0,1],ffD=[0,f0],ffE=z7,ffC=z7,ffB=[0,0],ffA=[0,l$],ffy=[0,0],ffz=[0,0],ffx=jZ,ffw=[0,1],ffv=[0,0],ffu=[4,0],fft=[0,sw,2578,11],ffs=[0,[11,"Annotation cache hit at ",[2,0,0]],"Annotation cache hit at %s"],ffq=[25,[0,q8]],ffr=[0,q8],ffp=[0,0],ffo=[0,0],ffn=[9,0],ffm=[60,a1o],ffl=a1D,ffk="Unreachable until we support mapped types with additional properties",ffj="branch invariant",ffi=[62,18],ffg=[1,18],ffh=[1,20],fff=[1,17],ffe=[1,19],ffc=[0,1],ffd=[0,l$],ffa=[0,2],ffb=[0,[2,0,[11,a4b,[2,0,[12,96,0]]]],aZb],fe$=[0,[2,0,[11,a4b,[2,0,[12,96,0]]]],aZb],fe_=[0,0],fe9=[0,0,0],few=[25,[0,ID]],fev=[25,[0,Hr]],fez=[25,[0,Jd]],fex=[0,sw,1273,23],fey=[0,sw,1280,18],feF=[0,sw,1035,23],feE=[25,[0,It]],feL=[0,sw,1055,23],feH=[25,[0,IU]],feG=[0,sw,971,23],feK=[0,sw,1114,23],feJ=[0,sw,1075,23],feI=[25,[0,Hn]],feO=[9,0],feN=[0,sw,1094,23],feM=[25,[0,DT]],feV=[0,[11,aZm,[2,0,[12,96,0]]],aZH],feS=[25,[0,IQ]],feR=[0,sw,901,23],feQ=[25,[0,IM]],feP=[0,sw,849,21],feX=[0,f0],feu=[0,0,0],feq=a3o,fer=[0,0,0],fes=[0,0,0],fet=[60,"invalid infer type"],feW=[0,f0],feT=[0,1],feU=[0,0],feA=[60,agF],feB=[37,[0,l$]],feC=[0,l$],feD=[0,1],feY="type-annotation",feZ=[5,0],fe0="typeof-annotation",fe1=[0,0],fe3=[0,CQ],fe4=[0,apu],fe2=[0,0],fe5=[0,0,0],fe6=[0,0],fe7=[0,0],fe8=[0,0],fem=C1,fen=ig,feo="getter",fep="setter",fej=[0,aWB],fek=[0,aVn],fel=[0,-785241719],fei=[0,0],feh=fr,feg=fr,fiD=[0,kd(0,0,0)],fiw=[22,5],fix=[22,2],fiy=[22,4],fiz=[1,0],fiA=[22,4],fiB=[22,12],fiC=[22,3],fiu=[60,DG],fit=[60,DG],fiv=[60,"default case"],fis=[0,0,0,0,0],fir=kd(0,0,0),fiq=[0,[11,"Function cache hit at ",[2,0,0]],"Function cache hit at %s"],fin=pj,fio=[0,"getter/setter"],fip=[0,[0,1]],fil=[24,[12,3]],fim=[0,[0,1]],fik=a4l,fij="(async || generator) && pred",fii=[0,l$],fih=a4l,fig="Internal Error: Found non-private field with private name",fid=[0,3],fie=[0,1],fif=[0,4],fic=[0,1],fia=[0,[11,"Class sig cache hit at ",[2,0,0]],"Class sig cache hit at %s"],fib=[0,f0],fh9=[0,0],fh_=[0,0],fh8=[0,0],fh$=[1,0],fh7=[0,[0,1]],fh6=[0,[0,1]],fh5=[0,[11,"Class cache hit at ",[2,0,0]],"Class cache hit at %s"],fh4=[0,[12,46,[2,0,[11,wX,[2,0,0]]]],aX4],fh2=[0,[12,46,[2,0,[11,wX,[2,0,0]]]],aX4],fhR=[0,[11,"element of ",[2,0,0]],"element of %s"],fhQ=[0,[11,"`Object.",[2,0,[12,96,0]]],"`Object.%s`"],fhU=[74,17],fhV=[9,0],fhW=[0,2,2],fhX=[0,g8],fhY=[0,l9],fhZ="unexpected type argument to Object.defineProperty, match guard failed",fh0=[0,anY],fh1=[0,anY],fh3=[0,anY],fhS=[12,3],fhT=[0,0],fhP=f0,fhN=fr,fhO=fr,fhM=[0,0],fhI=[0,0],fhH=[0,0],fhJ=[0,T9],fhK=[0,0],fhL=[12,3],fhF=[8,0],fhE=[2,[0,1]],fhG=[0,tZ],fhx=[37,[0,a2P]],fhy=[0,T9],fhz=[0,0],fhA=aVg,fhC=[37,[0,aVg]],fhD=[0,aYh],fhB=a2P,fhw=[0,0,0],fhv="Unexpected operator",fhu=[40,0],fhr=UF,fhs=Ix,fht=Ie,fhn=[60,aXa],fho=[60,"LHS of `in` operator"],fhp=[60,"RHS of `in` operator"],fhq="arithmetic operation",fhm=[0,0],fhl=[60,RS],fhi=anu,fhj=[60,tF],fhk=[0,aSC],fhg=[0,0,0],fhf=[0,0,0],fha=[0,1],fg$=[0,ig],fg5=[12,3],fg6=[0,0],fg8=[0,1],fg9=[0,1],fg7=[0,0],fg_=[13,62],fg4=[0,0],fg2=[12,3],fg3=[0,0],fhd=[33,0],fhe=[41,0],fhc=aSG,fhb=aSG,fhh=[41,0],fgY=[0,[11,"return of child generator in ",[2,0,0]],"return of child generator in %s"],fgG=[0,1],fgH=[0,q8],fgB=[8,0],fgD=[0,[0,0,[0,0,0]]],fgC=[0,[0,0,[0,0,0]]],fgE=[0,0],fgF=C$,fgI=[60,"import.meta"],fgJ=[0,"Import$Meta"],fgK=[25,[0,qZ]],fgL=[0,0],fgM=[60,"new Function(..)"],fgN=[0,0],fgO=[60,"new Array(..)"],fgP=[60,"array length"],fgQ=[0,1],fgR=jc,fgU=[60,"graphql tag"],fgS=[60,"encaps tag"],fgT=[0,"TaggedTemplateLiteralArray"],fgV=[0,0],fgW=[0,0],fgX=[60,"yield* delegate"],fg1="delegate yield without argument",fgZ=[60,a2Z],fg0=[60,aVU],fgA=jc,fgz=f0,fgy=[0,[11,"Expression cache hit at ",[2,0,0]],"Expression cache hit at %s"],fgw=[0,1],fgx=[0,[12,91,[4,0,0,0,[11,"] Slow CHECK expression at ",[2,0,[11,su,[8,[0,0,0],0,0,[11,aTi,0]]]]]]],"[%d] Slow CHECK expression at %s (%f seconds)"],fgv=[0,aU2,2381,21],fgu="Internal Error: Non-private field with private name",fgt=[0,[11,"Declared component cache hit at ",[2,0,0]],"Declared component cache hit at %s"],fgs=[0,[11,"Declared class cache hit at ",[2,0,0]],"Declared class cache hit at %s"],fgr=[0,[11,"Interface cache hit at ",[2,0,0]],"Interface cache hit at %s"],fgq=[0,0],fgp=[0,[11,"Alias cache hit at ",[2,0,0]],"Alias cache hit at %s"],fgn=[60,a2Z],fgo=[60,aVU],fgm=[0,0,0],fgj=[60,"case test"],fgk=[60,"switch discriminant"],fgl=[0,aU2,1180,28],ff4="DeclareVariable typed AST doesn't preserve structure",ff5=[0,1],ff6="DeclareFunction typed AST doesn't preserve structure",ff7="DeclareClass typed AST doesn't preserve structure",ff8="DeclareComponent typed AST doesn't preserve structure",ff9=[0,gF],ff_="TypeAlias typed AST doesn't preserve structure",ff$="OpaqueType typed AST doesn't preserve structure",fga="InterfaceDeclaration typed AST doesn't preserve structure",ff2=[0,1],ff3=[0,gF],ff1="unexpected anonymous class declaration",fgb=aTZ,fge="*default*",fgd=[0,0],fgc=[0,gF],fgf="Parser Error: Invalid export-declaration type!",fgg=[60,a22],fgh=[60,"for-of element"],fgi=[60,"exhaustive check incomplete out"],ff0="unexpected anonymous function statement",ffZ=[60,z5],ffY=[0,[11,"Statement cache hit at ",[2,0,0]],"Statement cache hit at %s"],ffX=[60,"batch export"],ffW=gF,ffT=[0,3],ffU="import type * is a parse error",ffV=zA,ffS=[0,3],ffR=[0,[11,"Opaque type cache hit at ",[2,0,0]],"Opaque type cache hit at %s"],ffP=[60,a4r],ffQ=[0,aXt],ffO=[0,"RegExp"],ffN=[1,1],ffM=[0,0],ffL=[32,0],ffK=[0,0,0],ffJ="precondition not met",ffI=a1D,ffH=[0,0],fiE=[0,[0,[0,[0,[0,[0,[0,[0]],[0,[0,0,0,0,0,0,0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0,0,0,0,0]],[0,[0]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,[0,0,0]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,[0,0,0]]]],[0,[0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0]],[0,[0,0]],[0,[0,[0,[0]],0,0]],[0,[0,0,0,0,0]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],fiF=[0,Sj,9,2],fiG=[0,[0,0,0,0,0,0,0]],fiH=[0,Sj,11,43],fiI=[0,[0,0,0,0,0,0,0,0,0,0,0,0]],fiJ=[0,Sj,14,2],fiK=[0,[0,0,0,0,0,0]],fiL=[0,Sj,18,2],fiM=[0,[0,[0,[0,[0,[0,[0,[0]],[0,[0,0,0,0,0,0,0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0,0,0,0,0]],[0,[0]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,[0,0,0]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],[0,[0,0,0,0,0,0,0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,[0,0,0]]]],[0,[0,0,0,0,0,0]],[0,[0,[0,[0]],0,0,0,0,0]],[0,[0,0]],[0,[0,[0,[0]],0,0]],[0,[0,0,0,0,0]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],fiN=[0,[0,0,0,0,0,0,0]],fiO=[0,[0,0,0,0,0,0,0,0,0,0,0,0]],fiP=[0,[0,0,0,0,0,0]],fjx=[0,"Finished resolving component",0],fjw=[0,[12,91,[4,0,0,0,[11,"] Slow CHECK component ",[2,0,[11,su,[8,[0,0,0],0,0,[11,aTi,0]]]]]]],"[%d] Slow CHECK component %s (%f seconds)"],fjv=[0,[11,"Resolving component ",[2,0,0]],"Resolving component %s"],fju=[0,0],fjq=[4,0],fjr=[0,0],fjs=[4,0],fjt=[0,0],fjp=[0,f0],fjn=[0,1],fjo=[0,[11,"tparam_locs contain a non-tparam location: ",[2,0,0]],"tparam_locs contain a non-tparam location: %s"],fjm=[0,[11,"Setting variable at ",[2,0,[11,tJ,[2,0,0]]]],"Setting variable at %s to %s"],fjl=[0,0],fjh=[60,"unused return"],fji=[60,"unused yield"],fjg=Ip,fjj=Jb,fjf=[0,0],fje=[0,0],fjd=[0,0],fjc=[60,RS],fjb="Bad conditional guard",fi8=[2,5],fiZ=[8,0],fi1=atj,fi0=[0,[0,0,[0,0,0]]],fi2=atj,fiX=[60,"unannotated catch parameter"],fiY=[0,[0,1]],fi3="an empty array",fi6=[0,[0,0,[0,0,0]]],fi4=[0,[0,0,0]],fi5=[59,Q1],fi7=[0,[0,1]],fi9=[0,[0,1]],fi_=[60,a22],fi$=[0,0],fja=rV,fiV=[0,0],fiU=[8,0],fiT=[60,Uq],fiQ=[0,[11,ai3,[4,0,0,0,0]],aii],fiR=[41,0],fjD=g,fjy=[0,"cond",ax],fjz=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,hK,eo,hT,ei,eR,hD,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,hI,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,hz,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,hE,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,hH,bw,hL,a5,hG,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,hF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,hQ,hM,hN,hR,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,hS,cg,a6,b0,eC,dc,b5,bW,cL,as,hP,bC,hJ,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],fjA=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,a4d,apL,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,a3d,cS,a1,e5,d9,ev,cM,aS,ea],fjB=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,apL,ee,bO,bo,bR,dX,e_,eL,bz,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,hF,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,a3d,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,a4d,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],fjC=[0,hO,hU],fjM=[0,"React$RefObject"],fjL=[60,az],fjK=g,fjJ=g,fjF=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],fjG=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,hJ,bC,hP,as,cL,bW,b5,dc,eC,b0,a6,cg,hS,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,aXA,eP,hR,hN,hM,hQ,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,hF,eF,eI,bX,en,by,aV,d_,dh,d3,eM,hO,hU,er,ej,bA,el,bE,eX,b3,hG,a5,hL,bw,hH,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,hE,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,hz,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,a2W,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,hI,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,hD,eR,ei,hT,eo,hK,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],fjH=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,ee,bO,bo,bR,dX,e_,eL,bz,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,hF,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],fjI=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,b7,du,d0,ci,bI,hD,ee,bO,bo,bR,dX,e_,eL,bz,aXA,eh,hP,cm,dU,aR,a9,hN,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,hF,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,hE,b8,a7,d2,ce,cF,dE,ev,hz,c7,ds,hK,cb,cT,by,cM,eg,dn,a0,ay,a2W,b6,eG,bj,cX,hR,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,hT,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,hQ,cS,cp,c3,cR,es,eF,cD,hG,hI,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,hL,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,hM,e0,cG,bU,hJ,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,hH,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,hO,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,hS,hU,da,dI,dQ,bd,bG,c2,dV,a_,b1],fj0=aW,fj1=aN,fj2="class declaration",fj3=a14,fj4=aO,fj5=aP,fj6="do while",fj7=a2X,fj8=HU,fj9=az,fj_=I9,fj$="for in",fka="for of",fkb="function declaration",fkc=H7,fkd="labeled",fke=aD,fkf=aK,fkg=aM,fkh=Hm,fki="variable declaration",fkj=IJ,fkk=CR,fjZ=g,fjY=[0,"src/typing/type_inference_js.ml",469,2],fjV=[60,"common interface"],fjW=[60,"self"],fjU=[0,"Finished all components",0],fjN=[0,ea,aS,cM,ev,d9,e5,a1,cS,d7,bZ,cJ,cG,aW,cj,eJ,aN,aJ,dn,dL,bB,e8,bN,c3,dC,c0,c$,bm,cR,ec,cc,dy,cW,eo,ei,eR,eT,ek,d8,bJ,bh,dt,c4,es,cN,bc,bz,dQ,eQ,cE,c2,cB,a2,da,aO,aP,cO,c_,eG,ed,eu,eO,e0,c7,dJ,cC,c9,dB,db,aI,eg,bt,bb,bI,cm,dv,bg,ee,dM,a7,c5,e2,ck,cH,ds,cu,d$,e9,dG,cs,az,bf,eZ,b4,bl,cZ,b$,bG,cr,e3,bL,e1,dX,bV,ch,dD,bi,dx,eK,bq,fa,dq,em,dg,cF,df,ca,ez,eU,bx,eb,bR,eh,dl,cl,aR,d1,b2,bp,aB,bM,dm,di,ex,ba,bT,c8,d0,aE,eY,bu,dH,dO,bU,bv,e4,ep,eA,dP,ci,dA,b7,bs,bF,cn,de,cy,dd,bn,d2,cq,dw,cD,eN,cd,eL,bY,dk,cv,ce,dZ,ey,cp,cb,cw,b1,eW,dU,eH,bQ,du,fE,eD,dT,aZ,e6,a$,e7,cK,b_,dF,eq,cI,bw,fF,a5,b3,eX,bE,el,bA,ej,er,eM,d3,dh,d_,aV,by,en,bX,eI,eF,bo,dY,dj,e_,br,ef,dV,d6,dE,cU,bD,cx,cQ,a8,b6,bS,ax,cA,co,cP,cT,bd,cX,ew,aD,a0,dR,dr,cz,eS,bK,ct,bH,aK,dW,dp,b9,eP,eE,cf,a_,aM,dz,dK,dN,aX,c6,e$,c1,ar,b8,cg,a6,b0,eC,dc,b5,bW,cL,as,bC,bj,cY,et,eV,dS,d5,d4,cV,bP,eB,be,ay,a9,dI,bO,aH],fjO=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea],fjP=[0,cz,eA,dg,cl,ez,aJ,eD,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],fjS=[0,[0,"flowlint-line",1],[0,[0,"flowlint-next-line",2],[0,[0,"flowlint",0],0]]],fmN=[0,0],fmL=[2,0],fmK=[2,0],fmM=[0,1],fmH=[2,0],fmG=[2,0],fmF=[3,[0,0]],fmI=[6,0],fmJ=[3,[0,0]],fml=q6,fmm=t6,fmn=[0,1],fmp=[0,Tc],fmo=Tc,fmq=[0,0],fmC=[0,0],fmA=[2,0],fmz=[2,0],fmB=[0,1],fmt=[2,0],fms=[2,0],fmr=[3,[0,0]],fmu=In,fmv=Ht,fmw=CW,fmx=I0,fmy=[3,[0,0]],fmD=qZ,fmE=lG,fmk=[0,0],fmi=[0,"module-prop"],fmh=[0,gF],fmg=[0,gF],fmj=[0,0,0],fmf=[0,"Mapped Type properties should never appear in the toplevels"],fme=[0,0],fma=[0,a23],fmb=[0,aj_],fmc=[0,"Mapped Types should never be appear as a regular type alias"],fmd=[0,"render type"],fl$=[0,[11,"type param: ",[2,0,0]],"type param: %s"],fl_=[0,To],fl9=[0,1],fl8=[0,"spread-target-value"],fl7=[0,aiy],flX=[0,ah2],flY=[0,asO],flZ=[0,apn],fl0=[0,aiB],fl1=[0,alX],fl2=[0,ai$],fl3=[0,agJ],fl4=[0,agH],fl5=[0,as1],fl6=[0,ahU],flB=[0,"sources"],flC=[0,IF],flD=[0,a4u],flE=[0,a3c],flF=[0,a4u],flS=[0,1],flT=[0,rV],flU=[0,1],flV=[4,0],flW=[0,"seconds"],flG=aTf,flH=aTf,flI=[0,tZ],flJ=[0,UR],flK=[0,"ReactClass"],flL=[0,gi],flM=[0,w3],flN=[0,UH],flO=[0,UR],flP=[0,tZ],flQ=[0,UR],flR=[0,Ij],flx=[3,[0,0]],fly=[3,[0,0]],flz=[3,[0,0]],flA=[0,a3n],flw="PolyT:",flu=[0,aSU],flv=[0,"Mapped types should not be passed to type_t_app"],flt=[0,0],fls=[0,0],flp=[0,a0X],flq="state",flr=hA,fln=[0,1],flo=[0,0],flb=[2,0],fla=[2,0],fk_=[0,as5],fk5=[2,0],fk4=[2,0],fk3=[3,[0,0]],fk6=[4,0],fk7=[5,0],fk8=[6,0],fk9=[7,0],fk$=[3,[0,0]],flc=[19,0,0],fld=[19,1,0],fle=[0,ah$],flf=[0,atg],flg=[19,2,0],flh=[0,ah$],fli=[0,atg],flj=[19,3,0],flk=[0,ah$],fll=[0,atg],flm=[19,4,0],fk2=[0,0],fkW=g,fkX=[0,[2,[1,1],[11,"[Norm|run_id:",[4,0,0,0,[11,"|depth:",[4,0,0,0,[12,93,0]]]]]],"%*s[Norm|run_id:%d|depth:%d]"],fkY=[0,[2,0,[11," Input: ",[2,0,[12,10,0]]]],"%s Input: %s\n"],fkZ="[Ok] ",fk1="[Error] ",fk0=[0,[2,0,[11," Output: ",[2,0,[12,10,0]]]],"%s Output: %s\n"],fkV="could not extract module name from reason: ",fkU="could not extract instance name from reason: ",fkS="could not extract opaque name from reason: ",fkT=[0,0],fkQ="could not extract imported type alias name from reason: ",fkR=[0,0],fkO="could not extract local type alias name from reason: ",fkP=[0,0],fkN=[0,1],fkM=[0,C$],fkL=[19,0,0],fkJ=[0,"src/typing/ty_normalizer.ml",Dq,18],fkH=[0,[11,"Raised on type: ",[2,0,0]],"Raised on type: %s"],fkI=_,fkK=[3,1],fkE=[0,[12,91,[2,0,[11,aY9,[2,0,0]]]],"[%s] %s"],fkl="Bad method type",fkm="Unbound type parameter",fkn="Bad call property",fko="Bad class",fkp="Bad mapped type",fkq="Bad this class",fkr="Bad polymorphic type",fks="Bad type alias",fkt="Bad type application",fku="Bad inline interface extends",fkv="Bad internal type",fkw="Bad instance type",fkx="Bad eval",fky="Bad use",fkz="Shadowed type parameters",fkA="Unsupported type constructor",fkB="Unsupported use constructor",fkC="recursion limit",fkD=[0,[11,"Unexpected type constructor (",[2,0,[12,41,0]]],"Unexpected type constructor (%s)"],fkF="Ty_normalizer.Lookahead.RecursiveExn",fmU="=======================================\n",fmV=" Normalization ",fmW="\n========================================",fmX=[0,[2,0,0],Ac],fmQ=[60,"get keys"],fm$=[59,aB],fm9=[59,"import *"],fm5=g,fm6=g,fm7=g,fm8=g,fm3=[0,2],fmY=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,dH,bu,eY,aE,d0,c8,bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,fM],fmZ=[0,aH,bO,dI,a9,ay,be,eB,bP,cV,ga,d4,d5,dS,eV,et,cY,bj,bC,as,cL,bW,b5,dc,eC,b0,a6,cg,b8,ar,c1,e$,c6,aX,dN,dK,dz,aM,a_,cf,eE,eP,b9,dp,dW,aK,bH,ct,bK,eS,cz,dr,dR,gb,a0,aD,ew,cX,bd,cT,cP,co,cA,ax,bS,b6,a8,cQ,cx,bD,cU,dE,d6,dV,ef,br,e_,dj,dY,bo,eF,eI,bX,en,by,aV,d_,dh,d3,eM,er,ej,bA,el,bE,eX,b3,a5,aSp,fF,bw,cI,eq,dF,b_,cK,e7,a$,e6,aZ,dT,eD,fE,du,bQ,eH,dU,eW,b1,cw,cb,cp,ey,dZ,ce,cv,dk,bY,eL,cd,eN,cD,dw,cq,d2,bn,dd,cy,de,cn,bF,bs,b7,dA,ci,dP,eA,ep,e4,bv,bU,dO,aYd,"is_import_star_use",dH,bu,eY,aE,d0,c8,"import_star_reason","import_star_from_use",bT,ba,ex,di,dm,bM,aB,bp,b2,d1,aR,cl,dl,eh,bR,eb,bx,eU,ez,ca,df,cF,dg,em,dq,fa,bq,eK,dx,bi,dD,ch,bV,dX,e1,bL,e3,cr,bG,b$,cZ,bl,b4,eZ,bf,az,cs,dG,e9,d$,cu,ds,cH,f8,ck,e2,c5,a7,dM,ee,bg,dv,cm,bI,bb,bt,eg,aI,db,dB,c9,cC,dJ,c7,e0,eO,eu,ed,eG,c_,cO,aP,aO,da,a2,cB,c2,cE,eQ,dQ,bz,bc,cN,es,c4,dt,bh,bJ,d8,ek,eT,eR,ei,eo,cW,dy,cc,ec,cR,bm,c$,c0,dC,c3,bN,e8,bB,dL,dn,aJ,aN,eJ,cj,aW,cG,cJ,bZ,d7,cS,a1,e5,d9,ev,cM,aS,ea,"add_this_in_exported_function_error","add_non_const_var_export_error","add_invalid_import_star_use_error",a0k,"add_export_named_default_error","add_error","add_bad_default_import_destructuring_error","add_bad_default_import_access_error",fM],fm0=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,da,dI,dQ,bd,bG,c2,dV,a_,b1],fm1=[0,cz,eA,dg,cl,ez,aJ,eD,f8,dF,dd,bu,cj,a6,bA,aK,er,dG,c$,fF,b7,du,d0,ci,bI,ee,bO,bo,bR,dX,e_,eL,bz,eh,cm,dU,aR,a9,b$,d6,eO,dL,em,bB,bF,ck,bS,bx,e1,dW,cK,b2,bK,ba,bb,bY,eH,ec,eR,d_,ea,cx,dt,dc,eq,a8,cq,cW,el,ax,a5,ca,dh,eW,cy,bs,dl,dZ,a2,b8,a7,d2,ce,cF,dE,ev,c7,ds,cb,cT,by,cM,eg,dn,a0,ay,b6,eG,bj,cX,bp,bZ,bV,dz,bv,bm,e6,dp,aI,cr,cg,aH,cv,dK,ed,bD,dS,bX,c_,cP,d7,d5,eT,eu,dT,bP,dA,e5,e$,dH,bg,b4,ej,e9,dk,eI,cZ,as,c1,bh,be,c6,dr,bC,ct,d4,dy,c8,fM,bL,ei,ey,df,bJ,cV,ek,aZ,eN,bc,cS,cp,c3,cR,es,eF,cD,c4,cw,aB,aD,aSp,cY,cL,bH,ga,dY,aM,aP,fE,d1,eM,bf,dP,aV,eJ,eK,dv,bT,eo,cs,dq,ep,eU,et,dM,cA,dD,dm,c5,cu,cE,a$,dR,gb,b_,ex,eX,ef,ar,cI,cQ,b3,bW,dJ,bN,e0,cG,bU,b9,bt,aX,eb,co,bM,bw,dC,e7,cn,cc,eY,db,b0,aS,eB,dB,e8,eC,c9,de,e4,cB,cd,br,bQ,dO,bl,dw,b5,eE,a1,eQ,dj,a0k,cJ,az,en,d8,eZ,dN,dx,bi,eS,aO,fa,cN,cU,cH,cC,cf,eP,ch,d$,eV,e3,d3,aW,di,c0,bn,bE,bq,cO,ew,e2,aN,d9,aE,aYd,da,dI,dQ,bd,bG,c2,dV,a_,b1],fnx="unexpected unresolved constraint",fni=[0,2,0],fnh=[60,"render type argument"],fng=[0,Ia],fnf=[0,1],fnd=[60,"unused promise lint"],fna=[0,as,ar,ji,jd,hA,iw,jg,gK,jh,jf,ja,je,jb],fnb=[0,jb,je,ja,jf,jh,gK,jg,iw,hA,jd,ji,ar,as],fnc=[0,jg,hA,iw,jd,ji,jf,jb,as,je,ja,ar,gK,jh],fnS=aYt,fnQ=aYu,fnM=gE,fnN=[0,"reasons",[1,0]],fnO=lD,fnJ=[1,"No match"],fnK=[1,"Unparseable"],fnL=aYu,fnF=[0,2,0],fnD="Unsupported config option: ",fnB=[0,"src/flow_dot_js.ml",kO,4],fnC="builtins not initialized",fnA=[0,aXj,[0,aTt,[0,aWr,[0,aZ3,0]]]],fny=[0,[0,1,1,1,1,0,0,0]],fnz=[0,0],fnE=[0,alh,[0,aUC,[0,aW8,[0,aik,[0,aoI,[0,al4,[0,an1,[0,am$,0]]]]]]]];function +jz(a){if(typeof +a==="number")return 0;switch(a[0]){case +0:return[0,jz(a[1])];case +1:return[1,jz(a[1])];case +2:return[2,jz(a[1])];case +3:return[3,jz(a[1])];case +4:return[4,jz(a[1])];case +5:return[5,jz(a[1])];case +6:return[6,jz(a[1])];case +7:return[7,jz(a[1])];case +8:var +c=a[1];return[8,c,jz(a[2])];case +9:var +b=a[1];return[9,b,b,jz(a[3])];case +10:return[10,jz(a[1])];case +11:return[11,jz(a[1])];case +12:return[12,jz(a[1])];case +13:return[13,jz(a[1])];default:return[14,jz(a[1])]}}function +mn(a,b){if(typeof +a==="number")return b;switch(a[0]){case +0:return[0,mn(a[1],b)];case +1:return[1,mn(a[1],b)];case +2:return[2,mn(a[1],b)];case +3:return[3,mn(a[1],b)];case +4:return[4,mn(a[1],b)];case +5:return[5,mn(a[1],b)];case +6:return[6,mn(a[1],b)];case +7:return[7,mn(a[1],b)];case +8:var +c=a[1];return[8,c,mn(a[2],b)];case +9:var +d=a[2],e=a[1];return[9,e,d,mn(a[3],b)];case +10:return[10,mn(a[1],b)];case +11:return[11,mn(a[1],b)];case +12:return[12,mn(a[1],b)];case +13:return[13,mn(a[1],b)];default:return[14,mn(a[1],b)]}}function +iW(a,b){if(typeof +a==="number")return b;switch(a[0]){case +0:return[0,iW(a[1],b)];case +1:return[1,iW(a[1],b)];case +2:var +c=a[1];return[2,c,iW(a[2],b)];case +3:var +d=a[1];return[3,d,iW(a[2],b)];case +4:var +e=a[3],f=a[2],g=a[1];return[4,g,f,e,iW(a[4],b)];case +5:var +h=a[3],i=a[2],j=a[1];return[5,j,i,h,iW(a[4],b)];case +6:var +k=a[3],l=a[2],m=a[1];return[6,m,l,k,iW(a[4],b)];case +7:var +n=a[3],o=a[2],p=a[1];return[7,p,o,n,iW(a[4],b)];case +8:var +q=a[3],r=a[2],s=a[1];return[8,s,r,q,iW(a[4],b)];case +9:var +t=a[1];return[9,t,iW(a[2],b)];case +10:return[10,iW(a[1],b)];case +11:var +u=a[1];return[11,u,iW(a[2],b)];case +12:var +v=a[1];return[12,v,iW(a[2],b)];case +13:var +w=a[2],x=a[1];return[13,x,w,iW(a[3],b)];case +14:var +y=a[2],z=a[1];return[14,z,y,iW(a[3],b)];case +15:return[15,iW(a[1],b)];case +16:return[16,iW(a[1],b)];case +17:var +A=a[1];return[17,A,iW(a[2],b)];case +18:var +B=a[1];return[18,B,iW(a[2],b)];case +19:return[19,iW(a[1],b)];case +20:var +C=a[2],D=a[1];return[20,D,C,iW(a[3],b)];case +21:var +E=a[1];return[21,E,iW(a[2],b)];case +22:return[22,iW(a[1],b)];case +23:var +F=a[1];return[23,F,iW(a[2],b)];default:var +G=a[2],H=a[1];return[24,H,G,iW(a[3],b)]}}function +Vi(a,b,c){return a[1]===b?(a[1]=c,1):0}function +X(a){throw B([0,j2,a],1)}function +gv(a){throw B([0,vB,a],1)}var +Jr=[fy,a5b,ge(0)];function +qu(a,b){return Jn(a,b)?a:b}function +ua(a,b){return vy(a,b)?a:b}function +vC(a){return 0<=a?a:-a|0}var +atU=HW,a5c=aix,a5e=D3(a5d);function +P(a,b){var +c=Z(a),e=Z(b),d=hV(c+e|0);sY(a,0,d,0,c);sY(b,0,d,c,e);return iV(d)}function +Jt(a){return a?a5f:a5g}function +atV(a){return g+a}function +Ea(a){var +c=Jh("%.12g",a),b=0,f=Z(c);for(;;){if(f<=b)return P(c,a5h);var +d=fl(c,b),e=0;if(48<=d){if(58>d)e=1}else if(45===d)e=1;if(!e)return c;var +b=b+1|0}}function +V(a,b){if(!a)return b;var +c=a[1];return[0,c,V(a[2],b)]}a4W(0);var +a5i=a4X(1),s1=a4X(2);function +a5j(a){var +b=fpc(0);for(;;){if(!b)return 0;var +d=b[2],e=b[1];try{t$(e)}catch(f){var +c=fk(f);if(c[1]!==Au)throw B(c,0)}var +b=d}}function +Eb(a,b){return atM(a,b,0,Z(b))}function +atW(a,b,c,d){if(0<=c&&0<=d&&(ml(b)-d|0)>=c)return fpa(a,b,c,d);return gv(a5m)}function +kS(a){Eb(s1,a);a4Y(s1,10);return t$(s1)}var +Vk=[0,a5j];function +Vl(a){return m(Vk[1],0)}atQ(a2y,Vl);var +atY=fpw(0)[1],Vn=fpu(0),Av=fpt(0),Aw=(4*Av|0)-1|0,at0=[fy,a5q,ge(0)],a5o=fpv(0),Vm=32;function +Vo(a){return 1-(typeof +a==="number"?1:0)}var +a5t=Av-2|0;function +Vp(a,b,c){var +d=0<=b?1:0,f=d?b<(a.length-1-2|0)?1:0:d,e=1-f;return e?gv(c):e}var +Vq=[fy,a5y,ge(0)];function +a5z(a){throw B(Vq,1)}function +aq(a){var +d=a[1];a[1]=a5z;try{var +c=m(d,0);fph(a,c);return c}catch(f){var +b=fk(f);a[1]=function(a){throw B(b,0)};throw B(b,0)}}function +Ju(a){var +b=ai(a);if(b!==ah&&b!==O&&b!==zu)return a;return fo5(a)}function +vD(d,b){return[O,function(a){var +c=ai(b),e=ah===c?b[1]:O===c?aq(b):b;return m(d,e)}]}function +at1(a,b){return a?a[1]:b}function +vE(a,b){return b?[0,m(a,b[1])]:0}function +kA(a){return a?1:0}function +r2(a){if(0<=a&&lf>=a)return a;return gv(a5B)}function +Ec(a){var +b=a-192|0,c=0;if(30>>0){if(25>=b+gx>>>0)c=1}else if(23!==b)c=1;return c?a+32|0:a}function +at2(a){return 25>>0?a:a+32|0}function +at3(a){return 25>>0?a:a+UV|0}function +a5I(a,b){return a-b|0}function +Jv(a,b){return 0===(a-b|0)?1:0}function +fA(a){var +c=0,b=a;for(;;){if(!b)return c;var +c=c+1|0,b=b[2]}}function +g1(a){return a?a[1]:X(a5J)}function +mo(a){return a?a[2]:X(a5K)}function +ra(a,b){if(0>b)return gv(a5M);var +c=a,d=b;for(;;){if(!c)return X(a5L);var +e=c[2],f=c[1];if(0===d)return f;var +c=e,d=d-1|0}}function +Vr(a,b){if(0>b)return gv(a5N);var +c=a,d=b;for(;;){if(!c)return 0;var +e=c[2],f=c[1];if(0===d)return[0,f];var +c=e,d=d-1|0}}function +hh(a,b){var +c=a,d=b;for(;;){if(!c)return d;var +e=[0,c[1],d],c=c[2],d=e}}function +U(a){return hh(a,0)}function +pU(a){if(!a)return 0;var +b=a[1];return V(b,pU(a[2]))}function +fx(a,b){if(!b)return 0;var +c=b[2],d=m(a,b[1]);return[0,d,fx(a,c)]}function +at4(a,b,c){if(!c)return 0;var +d=c[2],e=n(b,a,c[1]);return[0,e,at4(a+1|0,b,d)]}function +at5(a,b){return at4(0,a,b)}function +jk(a,b){var +d=0,c=b;for(;;){if(!c)return d;var +e=c[2],d=[0,m(a,c[1]),d],c=e}}function +fo(a,b){var +c=b;for(;;){if(!c)return 0;var +d=c[2];m(a,c[1]);var +c=d}}function +Vs(a,b){var +d=0,c=b;for(;;){if(!c)return 0;var +e=c[2];n(a,d,c[1]);var +d=d+1|0,c=e}}function +M(a,b,c){var +e=b,d=c;for(;;){if(!d)return e;var +f=d[2],e=n(a,e,d[1]),d=f}}function +Ed(a,b,c){if(!b)return c;var +d=b[1];return n(a,d,Ed(a,b[2],c))}function +Vt(a,b,c){if(b){if(c){var +d=c[2],e=b[2],f=n(a,b[1],c[1]);return[0,f,Vt(a,e,d)]}}else if(!c)return 0;return gv(a5O)}function +vF(a,b,c){var +e=b,d=c;for(;;){if(e){if(d){var +f=d[2],g=e[2];n(a,e[1],d[1]);var +e=g,d=f;continue}}else if(!d)return 0;return gv(a5P)}}function +xG(a,b){var +c=b;for(;;){if(!c)return 1;var +e=c[2],d=m(a,c[1]);if(!d)return d;var +c=e}}function +ll(a,b){var +c=b;for(;;){if(!c)return 0;var +e=c[2],d=m(a,c[1]);if(d)return d;var +c=e}}function +s2(a,b){var +c=b;for(;;){if(!c)return 0;var +e=c[2],d=0===hs(c[1],a)?1:0;if(d)return d;var +c=e}}function +Vu(a,b){var +c=b;for(;;){if(!c)return 0;var +d=c[1],e=c[2];if(m(a,d))return[0,d];var +c=e}}function +qv(f){var +g=0;return function(a){var +c=g,b=a;for(;;){if(!b)return U(c);var +d=b[2],e=b[1];if(m(f,e)){var +c=[0,e,c],b=d;continue}var +b=d}}}function +Ee(a,b){var +e=0,d=0,c=b;for(;;){if(!c){var +h=U(d);return[0,U(e),h]}var +g=c[2],f=c[1];if(m(a,f)){var +e=[0,f,e],c=g;continue}var +d=[0,f,d],c=g}}function +r3(a){if(!a)return a5R;var +b=a[1],d=b[2],e=b[1],c=r3(a[2]);return[0,[0,e,c[1]],[0,d,c[2]]]}function +Jw(c,b){function +j(a,b){if(2===a){if(b){var +j=b[2];if(j){var +k=j[1],l=b[1],y=j[2],z=0>1,t=r(s,b),A=t[1],u=r(a-s|0,t[2]),i=A,h=u[1],g=0,B=u[2];for(;;){if(i){if(h){var +p=h[1],q=i[1],w=h[2],x=i[2];if(0>1,t=j(s,b),A=t[1],u=j(a-s|0,t[2]),i=A,h=u[1],g=0,B=u[2];for(;;){if(i){if(h){var +q=h[1],r=i[1],w=h[2],x=i[2];if(0=b){var +d=hV(c);vw(a,b,d,0,c);return d}return gv(a5T)}function +Ay(a,b,c){return iV(Vw(a,b,c))}function +at6(a,b,c,d,e){if(0<=e&&0<=b&&(ml(a)-e|0)>=b&&0<=d&&(ml(c)-e|0)>=d)return vw(a,b,c,d,e);return gv(a5U)}function +s3(a,b,c,d,e){if(0<=e&&0<=b&&(Z(a)-e|0)>=b&&0<=d&&(ml(c)-e|0)>=d)return sY(a,b,c,d,e);return gv(a5V)}function +at7(a){var +b=a-9|0,c=0;if(4>>0){if(23===b)c=1}else if(2!==b)c=1;return c?1:0}function +Jy(a,b){var +d=ml(b);if(0===d)return b;var +e=hV(d),f=d-1|0,g=0;if(f>=0){var +c=g;for(;;){gI(e,c,m(a,lR(b,c)));var +h=c+1|0;if(f!==c){var +c=h;continue}break}}return e}function +at8(a,b){if(0===ml(b))return b;var +c=Vv(b);gI(c,0,m(a,lR(b,0)));return c}function +rc(a,b){return iV(rb(a,b))}function +f1(a,b,c){return iV(Vw(pn(a),b,c))}function +f2(a,b){if(!b)return a5X;var +i=Z(a),e=0,d=b,p=0;for(;;){if(d){var +j=d[1];if(d[2]){var +k=(Z(j)+i|0)+e|0,m=d[2],n=e<=k?k:gv(a5W),e=n,d=m;continue}var +l=Z(j)+e|0}else +var +l=e;var +h=hV(l),g=p,f=b;for(;;){if(f){var +c=f[1];if(f[2]){var +o=f[2];sY(c,0,h,g,Z(c));sY(a,0,h,g+Z(c)|0,i);var +g=(g+Z(c)|0)+i|0,f=o;continue}sY(c,0,h,g,Z(c))}return iV(h)}}}function +Vx(a,b){var +d=Z(b)-1|0,e=0;if(d>=0){var +c=e;for(;;){m(a,aF(b,c));var +f=c+1|0;if(d!==c){var +c=f;continue}break}}return 0}function +at9(a,b){return iV(Jy(a,pn(b)))}function +at_(a){var +b=a-9|0,c=0;if(4>>0){if(23===b)c=1}else if(2!==b)c=1;return c?1:0}function +Vy(a,b,c,d){var +e=c;for(;;){if(b<=e)throw B(gf,1);if(aF(a,e)===d)return e;var +e=e+1|0}}function +at$(a,b){return Vy(a,Z(a),0,b)}function +Vz(a,b,c){var +d=Z(a);if(0<=b&&d>=b)return Vy(a,d,b,c);return gv(a5Y)}function +vG(a,b){var +c=Z(a),f=0;if(c<0)return gv(a50);try{Vy(a,c,f,b);var +e=1;return e}catch(f){var +d=fk(f);if(d===gf)return 0;throw B(d,0)}}function +VA(a){return iV(Jy(at3,pn(a)))}function +Jz(a){return iV(Jy(at2,pn(a)))}function +Az(a){return iV(at8(at3,pn(a)))}function +s4(a,b){var +d=Z(a),e=d<=Z(b)?1:0;if(!e)return e;var +c=0;for(;;){if(c===d)return 1;if(aF(b,c)!==aF(a,c))return 0;var +c=c+1|0}}function +JA(a,b){var +d=Z(a),e=Z(b)-d|0,f=0<=e?1:0;if(!f)return f;var +c=0;for(;;){if(c===d)return 1;if(aF(b,e+c|0)!==aF(a,c))return 0;var +c=c+1|0}}function +VB(a,b){var +d=[0,0],e=[0,Z(b)],f=Z(b)-1|0;if(f>=0){var +c=f;for(;;){if(aF(b,c)===a){var +h=d[1];d[1]=[0,f1(b,c+1|0,(e[1]-c|0)-1|0),h];e[1]=c}var +i=c-1|0;if(0!==c){var +c=i;continue}break}}var +g=d[1];return[0,f1(b,0,e[1]),g]}var +VC=aQ,VD=af;function +aua(a,b){if(0===a)return[0];if(0>a)return gv(a51);var +d=j0(a,m(b,0)),e=a-1|0,f=1;if(e>=1){var +c=f;for(;;){d[1+c]=m(b,c);var +g=c+1|0;if(e!==c){var +c=g;continue}break}}return d}function +aub(a,b,c){if(0<=b&&0<=c&&(a.length-1-c|0)>=b)return fou(a,b,c);return gv(a52)}function +VE(a,b,c,d,e){if(0<=e&&0<=b&&(a.length-1-e|0)>=b&&0<=d&&(c.length-1-e|0)>=d)return foq(a,b,c,d,e);return gv(a54)}function +VF(a,b){var +d=b.length-1-1|0,e=0;if(d>=0){var +c=e;for(;;){m(a,b[1+c]);var +f=c+1|0;if(d!==c){var +c=f;continue}break}}return 0}function +pV(a,b){var +d=b.length-1;if(0===d)return[0];var +e=j0(d,m(a,b[1])),f=d-1|0,g=1;if(f>=1){var +c=g;for(;;){e[1+c]=m(a,b[1+c]);var +h=c+1|0;if(f!==c){var +c=h;continue}break}}return e}function +auc(a,b){var +d=b.length-1-1|0,e=0;if(d>=0){var +c=e;for(;;){n(a,c,b[1+c]);var +f=c+1|0;if(d!==c){var +c=f;continue}break}}return 0}function +aud(a,b){var +d=b.length-1;if(0===d)return[0];var +e=j0(d,n(a,0,b[1])),f=d-1|0,g=1;if(f>=1){var +c=g;for(;;){e[1+c]=n(a,c,b[1+c]);var +h=c+1|0;if(f!==c){var +c=h;continue}break}}return e}function +VG(a){var +b=a.length-1-1|0,c=0;for(;;){if(0>b)return c;var +d=[0,a[1+b],c],b=b-1|0,c=d}}function +vH(a){if(!a)return[0];var +d=0,c=a,g=a[2],h=a[1];for(;;){if(c){var +d=d+1|0,c=c[2];continue}var +f=j0(d,h),e=1,b=g;for(;;){if(!b)return f;var +i=b[2];f[1+e]=b[1];var +e=e+1|0,b=i}}}function +xH(a,b,c){var +e=[0,b],f=c.length-1-1|0,g=0;if(f>=0){var +d=g;for(;;){e[1]=n(a,e[1],c[1+d]);var +h=d+1|0;if(f!==d){var +d=h;continue}break}}return e[1]}function +aue(a){var +b=a==fpB(a)?1:0;return b?a-a==0.?1:0:b}var +a55=0;function +a56(a){return vy(a,0)?a:-a|0}function +auf(a){return D2(iP,a)}function +auh(a){return vy(a,a58)?a:s0(a)}function +JB(a){return U6(iP,a)}function +aui(a){try{var +c=[0,xC(a)];return c}catch(f){var +b=fk(f);if(b[1]===j2)return 0;throw B(b,0)}}var +a5$=0;function +a6a(a){return vy(a,0)?a:-a|0}function +auj(a){return D2(iP,a)}var +auk=[fy,a6b,ge(0)];function +Ef(h){function +i(a){return a?a[5]:0}function +g(a,b,c,d){var +e=i(a),f=i(d),g=f<=e?e+1|0:f+1|0;return[0,a,b,c,d,g]}function +s(a,b){return[0,0,a,b,0,1]}function +e(a,b,c,d){var +h=a?a[5]:0,j=d?d[5]:0;if((j+2|0)=j){var +A=j<=h?h+1|0:j+1|0;return[0,a,b,c,d,A]}if(!d)return gv(a6k);var +l=d[4],o=d[3],p=d[2],f=d[1],v=i(f);if(v<=i(l))return g(g(a,b,c,f),p,o,l);if(!f)return gv(a6j);var +w=f[3],x=f[2],y=f[1],z=g(f[4],p,o,l);return g(g(a,b,c,y),x,w,z)}var +D=0;function +P(a){return a?0:1}function +q(a,b,c){if(!c)return[0,0,a,b,0,1];var +d=c[4],g=c[3],i=c[2],f=c[1],m=c[5],j=n(h[1],a,i);if(0===j)return g===b?c:[0,f,a,b,d,m];if(0<=j){var +k=q(a,b,d);return d===k?c:e(f,i,g,k)}var +l=q(a,b,f);return f===l?c:e(l,i,g,d)}function +Q(a,b){var +c=b;for(;;){if(!c)throw B(gf,1);var +e=c[4],f=c[3],g=c[1],d=n(h[1],a,c[2]);if(0===d)return f;var +i=0<=d?e:g,c=i}}function +R(a,b){var +d=b;for(;;){if(!d)throw B(gf,1);var +h=d[2],l=d[4],n=d[3],o=d[1];if(!m(a,h)){var +d=l;continue}var +f=h,e=n,c=o;for(;;){if(!c)return[0,f,e];var +g=c[2],i=c[4],j=c[3],k=c[1];if(m(a,g)){var +f=g,e=j,c=k;continue}var +c=i}}}function +S(a,b){var +d=b;for(;;){if(!d)return 0;var +h=d[2],l=d[4],n=d[3],o=d[1];if(!m(a,h)){var +d=l;continue}var +f=h,e=n,c=o;for(;;){if(!c)return[0,[0,f,e]];var +g=c[2],i=c[4],j=c[3],k=c[1];if(m(a,g)){var +f=g,e=j,c=k;continue}var +c=i}}}function +T(a,b){var +d=b;for(;;){if(!d)throw B(gf,1);var +h=d[2],l=d[4],n=d[3],o=d[1];if(!m(a,h)){var +d=o;continue}var +f=h,e=n,c=l;for(;;){if(!c)return[0,f,e];var +g=c[2],i=c[4],j=c[3],k=c[1];if(m(a,g)){var +f=g,e=j,c=i;continue}var +c=k}}}function +U(a,b){var +d=b;for(;;){if(!d)return 0;var +h=d[2],l=d[4],n=d[3],o=d[1];if(!m(a,h)){var +d=o;continue}var +f=h,e=n,c=l;for(;;){if(!c)return[0,[0,f,e]];var +g=c[2],i=c[4],j=c[3],k=c[1];if(m(a,g)){var +f=g,e=j,c=i;continue}var +c=k}}}function +V(a,b){var +c=b;for(;;){if(!c)return 0;var +e=c[4],f=c[3],g=c[1],d=n(h[1],a,c[2]);if(0===d)return[0,f];var +i=0<=d?e:g,c=i}}function +W(a,b){var +c=b;for(;;){if(!c)return 0;var +f=c[4],g=c[1],d=n(h[1],a,c[2]),e=0===d?1:0;if(e)return e;var +i=0<=d?f:g,c=i}}function +c(a){var +b=a;for(;;){if(!b)throw B(gf,1);var +c=b[1];if(!c)return[0,b[2],b[3]];var +b=c}}function +a(a){var +b=a;for(;;){if(!b)return 0;var +c=b[1];if(!c)return[0,[0,b[2],b[3]]];var +b=c}}function +X(a){var +b=a;for(;;){if(!b)throw B(gf,1);if(!b[4])return[0,b[2],b[3]];var +b=b[4]}}function +Y(a){var +b=a;for(;;){if(!b)return 0;if(!b[4])return[0,[0,b[2],b[3]]];var +b=b[4]}}function +t(a){if(!a)return gv(a6l);var +b=a[1];if(!b)return a[4];var +c=a[4],d=a[3],f=a[2];return e(t(b),f,d,c)}function +E(a,b){if(!a)return b;if(!b)return a;var +d=c(b),f=d[2],g=d[1];return e(a,g,f,t(b))}function +u(a,b){if(!b)return 0;var +c=b[4],g=b[3],f=b[2],d=b[1],i=n(h[1],a,f);if(0===i)return E(d,c);if(0<=i){var +j=u(a,c);return c===j?b:e(d,f,g,j)}var +k=u(a,d);return d===k?b:e(k,f,g,c)}function +v(a,b,c){if(!c){var +q=m(b,0);return q?[0,0,a,q[1],0,1]:0}var +d=c[4],g=c[3],i=c[2],f=c[1],r=c[5],j=n(h[1],a,i);if(0===j){var +k=m(b,[0,g]);if(!k)return E(f,d);var +l=k[1];return g===l?c:[0,f,a,l,d,r]}if(0<=j){var +o=v(a,b,d);return d===o?c:e(f,i,g,o)}var +p=v(a,b,f);return f===p?c:e(p,i,g,d)}function +F(a,b){var +c=b;for(;;){if(!c)return 0;var +d=c[4],e=c[3],f=c[2];F(a,c[1]);n(a,f,e);var +c=d}}function +w(a,b){if(!b)return 0;var +c=b[5],d=b[4],e=b[3],f=b[2],g=w(a,b[1]),h=m(a,e);return[0,g,f,h,w(a,d),c]}function +x(a,b){if(!b)return 0;var +c=b[2],d=b[5],e=b[4],f=b[3],g=x(a,b[1]),h=n(a,c,f);return[0,g,c,h,x(a,e),d]}function +G(a,b,c){var +d=b,e=c;for(;;){if(!d)return e;var +f=d[4],g=d[3],h=d[2],i=l(a,h,g,G(a,d[1],e)),d=f,e=i}}function +H(a,b){var +c=b;for(;;){if(!c)return 1;var +g=c[4],h=c[1],d=n(a,c[2],c[3]);if(d){var +e=H(a,h);if(e){var +c=g;continue}var +f=e}else +var +f=d;return f}}function +I(a,b){var +c=b;for(;;){if(!c)return 0;var +g=c[4],h=c[1],d=n(a,c[2],c[3]);if(d)var +e=d;else{var +f=I(a,h);if(!f){var +c=g;continue}var +e=f}return e}}function +J(a,b,c){if(!c)return s(a,b);var +d=c[4],f=c[3],g=c[2];return e(J(a,b,c[1]),g,f,d)}function +K(a,b,c){if(!c)return s(a,b);var +d=c[3],f=c[2],g=c[1];return e(g,f,d,K(a,b,c[4]))}function +f(a,b,c,d){if(!a)return J(b,c,d);if(!d)return K(b,c,a);var +h=d[5],i=a[5],j=d[4],k=d[3],l=d[2],m=d[1],n=a[4],o=a[3],p=a[2],q=a[1];return(h+2|0)a[3])throw B([0,aL,a6t],1);if((d+b|0)<=a[3])return 0;throw B([0,aL,a6s],1)}}function +iM(a,b){var +c=a[2];if(a[3]<=c)JD(a,1);gI(a[1],c,b);a[2]=c+1|0;return 0}function +auo(a,b,c,d){var +e=c<0?1:0;if(e)var +f=e;else +var +h=d<0?1:0,f=h||((Z(b)-d|0)=e+zh>>>0)f=1}else if(65<=e)f=1}else{var +i=0;if(32===e)i=1;else if(43<=e)switch(e+UW|0){case +5:if(c<(d+2|0)&&1>>0){if(33>>0)p=1}else if(2===n)p=1;if(!p){var +k=k+1|0;continue}var +f=pn(a),b=[0,0],r=ml(f)-1|0,w=0;if(r>=0){var +j=w;for(;;){var +g=lR(f,j),h=0;if(32<=g){var +l=g+aVX|0,q=0;if(58>>0){if(93>l)q=1}else if(56>>0)h=1;else +q=1;if(q){var +m=1;h=2}}else +if(11<=g){if(13===g)h=1}else if(8<=g)h=1;switch(h){case +0:var +m=4;break;case +1:var +m=2;break}b[1]=b[1]+m|0;var +z=j+1|0;if(r!==j){var +j=z;continue}break}}if(b[1]===ml(f))var +t=Vv(f);else{var +c=hV(b[1]);b[1]=0;var +s=ml(f)-1|0,x=0;if(s>=0){var +i=x;for(;;){var +d=lR(f,i),e=0;if(35<=d)if(92===d)e=2;else if(gx<=d)e=1;else +e=3;else if(32<=d)if(34<=d)e=2;else +e=3;else if(14<=d)e=1;else +switch(d){case +8:gI(c,b[1],92);b[1]++;gI(c,b[1],98);break;case +9:gI(c,b[1],92);b[1]++;gI(c,b[1],jY);break;case +10:gI(c,b[1],92);b[1]++;gI(c,b[1],hr);break;case +13:gI(c,b[1],92);b[1]++;gI(c,b[1],iR);break;default:e=1}switch(e){case +1:gI(c,b[1],92);b[1]++;gI(c,b[1],48+(d/hZ|0)|0);b[1]++;gI(c,b[1],48+((d/10|0)%10|0)|0);b[1]++;gI(c,b[1],48+(d%10|0)|0);break;case +2:gI(c,b[1],92);b[1]++;gI(c,b[1],d);break;case +3:gI(c,b[1],d);break}b[1]++;var +y=i+1|0;if(s!==i){var +i=y;continue}break}}var +t=c}var +o=iV(t)}var +u=Z(o),v=rb(u+2|0,34);sY(o,0,v,1,u);return iV(v)}}function +aut(a,b){var +f=vC(b),e=a73[1];switch(a[2]){case +0:var +c=iZ;break;case +1:var +c=iK;break;case +2:var +c=69;break;case +3:var +c=iU;break;case +4:var +c=71;break;case +5:var +c=e;break;case +6:var +c=iQ;break;case +7:var +c=72;break;default:var +c=70}var +d=aup(16);AC(d,37);switch(a[1]){case +0:break;case +1:AC(d,43);break;default:AC(d,32)}if(8<=a[2])AC(d,35);AC(d,46);lm(d,g+f);AC(d,c);return aur(d)}function +JG(a,b){if(13>a)return b;var +h=[0,0],i=Z(b)-1|0,n=0;if(i>=0){var +d=n;for(;;){if(9>=aF(b,d)+jt>>>0)h[1]++;var +q=d+1|0;if(i!==d){var +d=q;continue}break}}var +j=h[1],k=hV(Z(b)+((j-1|0)/3|0)|0),l=[0,0];function +e(a){qs(k,l[1],a);l[1]++;return 0}var +f=[0,((j-1|0)%3|0)+1|0],m=Z(b)-1|0,o=0;if(m>=0){var +c=o;for(;;){var +g=aF(b,c);if(9>>0)e(g);else{if(0===f[1]){e(95);f[1]=3}f[1]+=-1;e(g)}var +p=c+1|0;if(m!==c){var +c=p;continue}break}}return iV(k)}function +a74(a,b){switch(a){case +1:var +c=a7e;break;case +2:var +c=a7f;break;case +4:var +c=a7h;break;case +5:var +c=a7i;break;case +6:var +c=a7j;break;case +7:var +c=a7k;break;case +8:var +c=a7l;break;case +9:var +c=a7m;break;case +10:var +c=a7n;break;case +11:var +c=a7o;break;case +0:case +13:var +c=a7d;break;case +3:case +14:var +c=a7g;break;default:var +c=a7p}return JG(a,D2(c,b))}function +a75(a,b){switch(a){case +1:var +c=a7E;break;case +2:var +c=a7F;break;case +4:var +c=a7H;break;case +5:var +c=a7I;break;case +6:var +c=a7J;break;case +7:var +c=a7K;break;case +8:var +c=a7L;break;case +9:var +c=a7M;break;case +10:var +c=a7N;break;case +11:var +c=a7O;break;case +0:case +13:var +c=a7D;break;case +3:case +14:var +c=a7G;break;default:var +c=a7P}return JG(a,D2(c,b))}function +a76(a,b){switch(a){case +1:var +c=a7R;break;case +2:var +c=a7S;break;case +4:var +c=a7U;break;case +5:var +c=a7V;break;case +6:var +c=a7W;break;case +7:var +c=a7X;break;case +8:var +c=a7Y;break;case +9:var +c=a7Z;break;case +10:var +c=a70;break;case +11:var +c=a71;break;case +0:case +13:var +c=a7Q;break;case +3:case +14:var +c=a7T;break;default:var +c=a72}return JG(a,D2(c,b))}function +a77(a,b){switch(a){case +1:var +c=a7r;break;case +2:var +c=a7s;break;case +4:var +c=a7u;break;case +5:var +c=a7v;break;case +6:var +c=a7w;break;case +7:var +c=a7x;break;case +8:var +c=a7y;break;case +9:var +c=a7z;break;case +10:var +c=a7A;break;case +11:var +c=a7B;break;case +0:case +13:var +c=a7q;break;case +3:case +14:var +c=a7t;break;default:var +c=a7C}return JG(a,U6(c,b))}function +ub(d,b,c){function +f(a){switch(d[1]){case +0:var +e=45;break;case +1:var +e=43;break;default:var +e=32}return foS(c,b,e)}function +j(a){var +b=foz(c);return 3===b?c<0.?a79:a7_:4<=b?a7$:a}switch(d[2]){case +5:var +e=Jh(aut(d,b),c),a=0,k=Z(e);for(;;){if(a===k)var +i=0;else{var +g=fl(e,a)+zt|0,h=0;if(23>>0){if(55===g)h=1}else if(21>>0)h=1;if(!h){var +a=a+1|0;continue}var +i=1}var +l=i?e:P(e,a78);return j(l)}case +6:return f(0);case +7:return VA(f(0));case +8:return j(f(0));default:return Jh(aut(d,b),c)}}function +JH(j,i,h,d,e,f,g){if(typeof +d==="number"){if(typeof +e==="number")return e?function(a,b){return hg(j,[4,i,AD(a,n(f,g,b))],h)}:function(a){return hg(j,[4,i,n(f,g,a)],h)};var +b=e[1];return function(a){return hg(j,[4,i,AD(b,n(f,g,a))],h)}}if(0===d[0]){var +c=d[2],k=d[1];if(typeof +e==="number")return e?function(a,b){return hg(j,[4,i,pX(k,c,AD(a,n(f,g,b)))],h)}:function(a){return hg(j,[4,i,pX(k,c,n(f,g,a))],h)};var +m=e[1];return function(a){return hg(j,[4,i,pX(k,c,AD(m,n(f,g,a)))],h)}}var +l=d[1];if(typeof +e==="number")return e?function(a,b,c){return hg(j,[4,i,pX(l,a,AD(b,n(f,g,c)))],h)}:function(a,b){return hg(j,[4,i,pX(l,a,n(f,g,b))],h)};var +o=e[1];return function(a,b){return hg(j,[4,i,pX(l,a,AD(o,n(f,g,b)))],h)}}function +VP(g,f,c,d,e){if(typeof +d==="number")return function(a){return hg(g,[4,f,m(e,a)],c)};if(0===d[0]){var +b=d[2],h=d[1];return function(a){return hg(g,[4,f,pX(h,b,m(e,a))],c)}}var +i=d[1];return function(a,b){return hg(g,[4,f,pX(i,a,m(e,b))],c)}}function +Hi(a,b,c,d){var +g=b,f=c,e=d;for(;;){if(typeof +e==="number")return m(g,f);switch(e[0]){case +0:var +y=e[1];return function(a){return hg(g,[5,f,a],y)};case +1:var +z=e[1];return function(a){var +c=0;if(40<=a)if(92===a)var +b=a5C;else if(gx<=a)c=1;else +c=2;else if(32<=a)if(39<=a)var +b=a5D;else +c=2;else if(14<=a)c=1;else +switch(a){case +8:var +b=a5E;break;case +9:var +b=a5F;break;case +10:var +b=a5G;break;case +13:var +b=a5H;break;default:c=1}switch(c){case +1:var +d=hV(4);gI(d,0,92);gI(d,1,48+(a/hZ|0)|0);gI(d,2,48+((a/10|0)%10|0)|0);gI(d,3,48+(a%10|0)|0);var +b=iV(d);break;case +2:var +e=hV(1);gI(e,0,a);var +b=iV(e);break}var +h=Z(b),i=rb(h+2|0,39);sY(b,0,i,1,h);return hg(g,[4,f,iV(i)],z)};case +2:var +A=e[2],C=e[1];return VP(g,f,A,C,function(a){return a});case +3:return VP(g,f,e[2],e[1],a7c);case +4:return JH(g,f,e[4],e[2],e[3],a74,e[1]);case +5:return JH(g,f,e[4],e[2],e[3],a75,e[1]);case +6:return JH(g,f,e[4],e[2],e[3],a76,e[1]);case +7:return JH(g,f,e[4],e[2],e[3],a77,e[1]);case +8:var +i=e[4],j=e[3],k=e[2],h=e[1];if(typeof +k==="number"){if(typeof +j==="number")return j?function(a,b){return hg(g,[4,f,ub(h,a,b)],i)}:function(a){return hg(g,[4,f,ub(h,VM(h),a)],i)};var +T=j[1];return function(a){return hg(g,[4,f,ub(h,T,a)],i)}}if(0===k[0]){var +o=k[2],p=k[1];if(typeof +j==="number")return j?function(a,b){return hg(g,[4,f,pX(p,o,ub(h,a,b))],i)}:function(a){return hg(g,[4,f,pX(p,o,ub(h,VM(h),a))],i)};var +U=j[1];return function(a){return hg(g,[4,f,pX(p,o,ub(h,U,a))],i)}}var +q=k[1];if(typeof +j==="number")return j?function(a,b,c){return hg(g,[4,f,pX(q,a,ub(h,b,c))],i)}:function(a,b){return hg(g,[4,f,pX(q,a,ub(h,VM(h),b))],i)};var +V=j[1];return function(a,b){return hg(g,[4,f,pX(q,a,ub(h,V,b))],i)};case +9:return VP(g,f,e[2],e[1],Jt);case +10:var +f=[7,f],e=e[1];continue;case +11:var +f=[2,f,e[1]],e=e[2];continue;case +12:var +f=[3,f,e[1]],e=e[2];continue;case +13:var +D=e[3],E=e[2],r=aup(16);VO(r,E);var +x=aur(r);return function(a){return hg(g,[4,f,x],D)};case +14:var +F=e[3],G=e[2];return function(a){return hg(g,f,iW(aus(a[1],G),F))};case +15:var +H=e[1];return function(c,b){return hg(g,[6,f,function(a){return n(c,a,b)}],H)};case +16:var +I=e[1];return function(a){return hg(g,[6,f,a],I)};case +17:var +f=[0,f,e[1]],e=e[2];continue;case +18:var +l=e[1];if(0===l[0]){var +J=e[2],K=l[1][1],L=0,g=function(d,b,c){return function(a){return hg(b,[1,d,[0,a]],c)}}(f,g,J),f=L,e=K;continue}var +M=e[2],N=l[1][1],O=0,g=function(d,b,c){return function(a){return hg(b,[1,d,[1,a]],c)}}(f,g,M),f=O,e=N;continue;case +19:throw B([0,aL,a8c],1);case +20:var +P=e[3],Q=[8,f,a8d];return function(a){return hg(g,Q,P)};case +21:var +R=e[2];return function(a){return hg(g,[4,f,D2(aXS,a)],R)};case +22:var +S=e[1];return function(a){return hg(g,[5,f,a],S)};case +23:var +s=e[2],t=e[1];return a<50?afw(a+1|0,g,f,t,s):gu(afw,[0,g,f,t,s]);default:var +u=e[3],v=e[1],w=m(e[2],0);return a<50?afu(a+1|0,g,f,u,v,w):gu(afu,[0,g,f,u,v,w])}}}function +afw(a,b,c,d,e){if(typeof +d==="number")switch(d){case +0:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);case +1:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);case +2:throw B([0,aL,a8e],1);default:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e])}switch(d[0]){case +0:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);case +1:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);case +2:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);case +3:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);case +4:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);case +5:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);case +6:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);case +7:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);case +8:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);case +9:var +f=d[2];return a<50?afv(a+1|0,b,c,f,e):gu(afv,[0,b,c,f,e]);case +10:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e]);default:return a<50?it(a+1|0,b,c,e):gu(it,[0,b,c,e])}}function +afv(a,f,c,d,e){if(typeof +d==="number")return a<50?it(a+1|0,f,c,e):gu(it,[0,f,c,e]);switch(d[0]){case +0:var +b=d[1];return function(a){return qw(f,c,b,e)};case +1:var +g=d[1];return function(a){return qw(f,c,g,e)};case +2:var +h=d[1];return function(a){return qw(f,c,h,e)};case +3:var +i=d[1];return function(a){return qw(f,c,i,e)};case +4:var +j=d[1];return function(a){return qw(f,c,j,e)};case +5:var +k=d[1];return function(a){return qw(f,c,k,e)};case +6:var +l=d[1];return function(a){return qw(f,c,l,e)};case +7:var +m=d[1];return function(a){return qw(f,c,m,e)};case +8:var +n=d[2];return function(a){return qw(f,c,n,e)};case +9:var +o=d[3],p=d[2],q=kB(ke(d[1]),p);return function(a){return qw(f,c,mn(q,o),e)};case +10:var +r=d[1];return function(a,b){return qw(f,c,r,e)};case +11:var +s=d[1];return function(a){return qw(f,c,s,e)};case +12:var +t=d[1];return function(a){return qw(f,c,t,e)};case +13:throw B([0,aL,a8f],1);default:throw B([0,aL,a8g],1)}}function +it(a,b,c,d){var +e=[8,c,a8h];return a<50?Hi(a+1|0,b,e,d):gu(Hi,[0,b,e,d])}function +afu(a,b,c,d,e,f){if(e){var +h=e[1];return function(a){return a8b(b,c,d,h,m(f,a))}}var +g=[4,c,f];return a<50?Hi(a+1|0,b,g,d):gu(Hi,[0,b,g,d])}function +hg(a,b,c){return qt(Hi(0,a,b,c))}function +a8a(a,b,c,d){return qt(afw(0,a,b,c,d))}function +qw(a,b,c,d){return qt(afv(0,a,b,c,d))}function +a8b(a,b,c,d,e){return qt(afu(0,a,b,c,d,e))}function +Ek(a,b,c,d,e){if(typeof +d==="number"){if(typeof +e!=="number"){var +i=ih(a,b,c);return function(a){return i}}if(e){var +f=ih(a,b,c),g=function(a){return f};return function(a){return g}}var +h=ih(a,b,c);return function(a){return h}}if(0===d[0]){if(typeof +e!=="number"){var +m=ih(a,b,c);return function(a){return m}}if(e){var +j=ih(a,b,c),k=function(a){return j};return function(a){return k}}var +l=ih(a,b,c);return function(a){return l}}if(typeof +e!=="number"){var +s=ih(a,b,c),t=function(a){return s};return function(a){return t}}if(e){var +n=ih(a,b,c),o=function(a){return n},p=function(a){return o};return function(a){return p}}var +q=ih(a,b,c);function +r(a){return q}return function(a){return r}}function +aft(a,b,c,d){var +f=b,e=d;for(;;){if(typeof +e==="number")return m(f,c);switch(e[0]){case +0:var +n=ih(f,c,e[1]);return function(a){return n};case +1:var +o=ih(f,c,e[1]);return function(a){return o};case +2:var +h=e[1];if(typeof +h==="number"){var +p=ih(f,c,e[2]);return function(a){return p}}if(0===h[0]){var +q=ih(f,c,e[2]);return function(a){return q}}var +r=ih(f,c,e[2]),s=function(a){return r};return function(a){return s};case +3:var +i=e[1];if(typeof +i==="number"){var +t=ih(f,c,e[2]);return function(a){return t}}if(0===i[0]){var +u=ih(f,c,e[2]);return function(a){return u}}var +v=ih(f,c,e[2]),w=function(a){return v};return function(a){return w};case +4:return Ek(f,c,e[4],e[2],e[3]);case +5:return Ek(f,c,e[4],e[2],e[3]);case +6:return Ek(f,c,e[4],e[2],e[3]);case +7:return Ek(f,c,e[4],e[2],e[3]);case +8:return Ek(f,c,e[4],e[2],e[3]);case +9:var +j=e[1];if(typeof +j==="number"){var +x=ih(f,c,e[2]);return function(a){return x}}if(0===j[0]){var +y=ih(f,c,e[2]);return function(a){return y}}var +z=ih(f,c,e[2]),A=function(a){return z};return function(a){return A};case +10:var +e=e[1];continue;case +11:var +e=e[2];continue;case +12:var +e=e[2];continue;case +13:var +C=ih(f,c,e[3]);return function(a){return C};case +14:var +D=e[3],E=e[2];return function(a){return ih(f,c,iW(aus(a[1],E),D))};case +15:var +F=ih(f,c,e[1]),G=function(a){return F};return function(a){return G};case +16:var +H=ih(f,c,e[1]);return function(a){return H};case +17:var +e=e[2];continue;case +18:var +g=e[1];if(0===g[0]){var +I=e[2],J=g[1][1],f=function(c,b){return function(a){return ih(c,a,b)}}(f,I),e=J;continue}var +K=e[2],L=g[1][1],f=function(c,b){return function(a){return ih(c,a,b)}}(f,K),e=L;continue;case +19:throw B([0,aL,a8j],1);case +20:var +M=ih(f,c,e[3]);return function(a){return M};case +21:var +N=ih(f,c,e[2]);return function(a){return N};case +22:var +O=ih(f,c,e[1]);return function(a){return O};case +23:var +P=e[2],Q=e[1],R=0;return a8a(function(a){return m(f,c)},R,Q,P);default:var +k=e[3],l=e[1];return a<50?afs(a+1|0,f,c,k,l):gu(afs,[0,f,c,k,l])}}}function +afs(a,b,c,d,e){if(!e)return a<50?aft(a+1|0,b,c,d):gu(aft,[0,b,c,d]);var +f=a8i(b,c,d,e[1]);return function(a){return f}}function +ih(a,b,c){return qt(aft(0,a,b,c))}function +a8i(a,b,c,d){return qt(afs(0,a,b,c,d))}function +uc(a,b){var +c=b;for(;;){if(typeof +c==="number")return 0;switch(c[0]){case +0:var +f=c[1],g=VN(c[2]);uc(a,f);return Eb(a,g);case +1:var +d=c[2],e=c[1];if(0===d[0]){var +h=d[1];uc(a,e);Eb(a,a8k);var +c=h;continue}var +i=d[1];uc(a,e);Eb(a,a8l);var +c=i;continue;case +6:var +l=c[2];uc(a,c[1]);return m(l,a);case +7:uc(a,c[1]);return t$(a);case +8:var +n=c[2];uc(a,c[1]);return gv(n);case +2:case +4:var +j=c[2];uc(a,c[1]);return Eb(a,j);default:var +k=c[2];uc(a,c[1]);return a4Y(a,k)}}}function +vI(a,b){var +c=b;for(;;){if(typeof +c==="number")return 0;switch(c[0]){case +0:var +f=c[1],g=VN(c[2]);vI(a,f);return f6(a,g);case +1:var +d=c[2],e=c[1];if(0===d[0]){var +h=d[1];vI(a,e);f6(a,a8m);var +c=h;continue}var +i=d[1];vI(a,e);f6(a,a8n);var +c=i;continue;case +6:var +l=c[2];vI(a,c[1]);return m(l,a);case +7:var +c=c[1];continue;case +8:var +n=c[2];vI(a,c[1]);return gv(n);case +2:case +4:var +j=c[2];vI(a,c[1]);return f6(a,j);default:var +k=c[2];vI(a,c[1]);return iM(a,k)}}}function +ud(a,b){var +c=b;for(;;){if(typeof +c==="number")return 0;switch(c[0]){case +0:var +f=c[1],g=VN(c[2]);ud(a,f);return f6(a,g);case +1:var +d=c[2],e=c[1];if(0===d[0]){var +h=d[1];ud(a,e);f6(a,a8o);var +c=h;continue}var +i=d[1];ud(a,e);f6(a,a8p);var +c=i;continue;case +6:var +l=c[2];ud(a,c[1]);return f6(a,m(l,0));case +7:var +c=c[1];continue;case +8:var +n=c[2];ud(a,c[1]);return gv(n);case +2:case +4:var +j=c[2];ud(a,c[1]);return f6(a,j);default:var +k=c[2];ud(a,c[1]);return iM(a,k)}}}function +VQ(d,b){var +a=b[1],c=0;return hg(function(a){uc(d,a);return 0},c,a)}function +El(d,b){var +a=b[1],c=0;return hg(function(a){vI(d,a);return 0},c,a)}function +JI(a){return VQ(s1,a)}function +Em(c,b){var +a=b[1];return hg(function(a){var +b=g4(64);ud(b,a);return m(c,h0(b))},0,a)}function +k(a){return Em(function(a){return a},a)}var +auu=[fy,a8s,ge(0)],auv=[fy,a8t,ge(0)],VR=[0,0];function +VT(a,b){var +c=a[1+b];return Vo(c)?ai(c)===ld?m(k(a8u),c):ai(c)===zu?Ea(c):a8v:m(k(a8w),c)}function +auw(a,b){if(a.length-1<=b)return a8x;var +c=auw(a,b+1|0),d=VT(a,b);return n(k(a8y),d,c)}function +xJ(a){var +b=VR[1];for(;;){if(b){var +q=0,v=b[2],w=b[1];try{var +i=m(w,a)}catch(f){q=1}var +r=0;if(q||!i)r=1;else +var +g=[0,i[1]];if(r){var +b=v;continue}}else +var +g=0;if(g)return g[1];if(a===Vj)return a8D;if(a===atT)return a8E;if(a[1]===Js){var +d=a[2],j=d[3],x=d[2],y=d[1];return p(k(VS),y,x,j,j+5|0,a8F)}if(a[1]===aL){var +e=a[2],l=e[3],z=e[2],A=e[1];return p(k(VS),A,z,l,l+6|0,a8G)}if(a[1]===D$){var +f=a[2],o=f[3],B=f[2],C=f[1];return p(k(VS),C,B,o,o+6|0,a8H)}if(0!==ai(a))return a[1];var +h=a.length-1,D=a[1][1];if(2>>0)var +s=auw(a,2),t=VT(a,1),c=n(k(a8z),t,s);else +switch(h){case +0:var +c=a8A;break;case +1:var +c=a8B;break;default:var +u=VT(a,1),c=m(k(a8C),u)}return P(D,c)}}function +aux(a){return[0,foA(a)]}function +auy(c,b){function +a(a){return a?0===c?a8I:a8J:0===c?a8K:a8L}if(0===b[0]){var +d=b[5],e=b[4],f=b[3],g=b[6]?a8M:a8O,h=b[2],i=b[7],j=a(b[1]);return[0,ap(k(a8N),j,i,h,g,f,e,d)]}if(b[1])return 0;var +l=a(0);return[0,m(k(a8P),l)]}function +VU(a,b){var +g=aux(b);if(!g)return VQ(a,a8R);var +d=g[1],e=d.length-1-1|0,h=0;if(e>=0){var +c=h;for(;;){var +f=auy(c,fD(d,c)[1+c]);if(f){var +i=f[1];m(VQ(a,a8Q),i)}var +j=c+1|0;if(e!==c){var +c=j;continue}break}}return 0}function +auz(a){var +g=aux(a);if(!g)return a8T;var +c=g[1],d=g4(t0),e=c.length-1-1|0,h=0;if(e>=0){var +b=h;for(;;){var +f=auy(b,fD(c,b)[1+b]);if(f){var +i=f[1];m(El(d,a8S),i)}var +j=b+1|0;if(e!==b){var +b=j;continue}break}}return h0(d)}function +En(a){for(;;){var +b=VR[1],c=1-Vi(VR,b,[0,a,b]);if(c)continue;return c}}var +a8V=a8U.slice(),a8X=[0];atQ(aWS,function(a,b){try{try{var +g=b?a8X:atD(0);try{Vl(0)}catch(f){}try{var +f=xJ(a);m(JI(a8W),f);VU(s1,g);var +c=fo$(0);if(c<0){var +d=vC(c);kS(fD(a8V,d)[1+d])}var +j=t$(s1),h=j}catch(f){var +k=fk(f),l=xJ(a);m(JI(a8Z),l);VU(s1,g);var +n=xJ(k);m(JI(a80),n);VU(s1,atD(0));var +h=t$(s1)}var +i=h}catch(f){var +e=fk(f);if(e!==Vj)throw B(e,0);var +i=kS(a8Y)}return i}catch(f){return 0}});function +auA(a,b,c){return n(a,c,b)}var +a82=[fy,a81,ge(0)];En(function(a){return a[1]===a82?[0,P(a83,xJ(a[2]))]:0});function +auB(a){return[0,j0(55,0),0]}function +auC(a,b){var +j=0===b.length-1?[0,0]:b,k=j.length-1,c=0;for(;;){fD(a[1],c)[1+c]=c;var +v=c+1|0;if(54!==c){var +c=v;continue}var +h=[0,a84],l=54+Jx(55,k)|0,r=0;if(l>=0){var +d=r;for(;;){var +e=d%55|0,m=U$(d,k),s=fD(j,m)[1+m],i=P(h[1],g+s);h[1]=fo8(i,0,Z(i));var +f=h[1],n=fl(f,3)<<24,o=fl(f,2)<<16,p=fl(f,1)<<8,q=((fl(f,0)+p|0)+o|0)+n|0,t=(fD(a[1],e)[1+e]^q)&z0;fD(a[1],e)[1+e]=t;var +u=d+1|0;if(l!==d){var +d=u;continue}break}}a[2]=0;return 0}}function +auD(a){var +c=fpA(0),b=auB(0);auC(b,c);return b}function +auE(a){a[2]=(a[2]+1|0)%55|0;var +b=a[2],c=fD(a[1],b)[1+b],d=(a[2]+24|0)%55|0,e=(fD(a[1],d)[1+d]+(c^(c>>>25|0)&31)|0)&z0,f=a[2];fD(a[1],f)[1+f]=e;return e}var +VW=[0,a85.slice(),0];try{var +fn2=D8(ak1),auI=fn2}catch(f){var +auF=fk(f);if(auF!==gf)throw B(auF,0);try{var +fn1=D8("CAMLRUNPARAM"),auH=fn1}catch(f){var +auG=fk(f);if(auG!==gf)throw B(auG,0);var +auH=a86}var +auI=auH}var +a87=vG(auI,82),JJ=[O,function(a){return auD(0)}];function +vJ(a,b){var +f=a?a[1]:a87,c=16;for(;;){if(b>c&&Av>=(c*2|0)){var +c=c*2|0;continue}if(f)var +d=ai(JJ),g=ah===d?JJ[1]:O===d?aq(JJ):JJ,e=auE(g);else +var +e=0;return[0,0,j0(c,0),e,c]}}function +VX(a,b){var +i=b[2],t=(i.length-1)*2|0,u=t=0){var +f=z;a:for(;;){var +c=fD(i,f)[1+f];for(;;){if(c){var +n=c[1],x=c[2],y=c[3],h=k?c:[0,n,x,0],d=m(D,n),o=fD(g,d)[1+d];if(o)o[3]=h;else +fD(j,d)[1+d]=h;fD(g,d)[1+d]=h;var +c=y;continue}var +C=f+1|0;if(p!==f){var +f=C;continue a}break}break}}if(k){var +q=l-1|0,A=0;if(q>=0){var +e=A;for(;;){var +s=fD(g,e)[1+e];if(s)s[3]=0;var +B=e+1|0;if(q!==e){var +e=B;continue}break}}var +r=0}else +var +r=k;return r}function +JK(a,b){return 4<=a.length-1?a4N(10,hZ,a[3],b)&(a[2].length-1-1|0):gv(a89)}function +AE(a,b,c){var +d=JK(a,b),f=[0,b,c,fD(a[2],d)[1+d]];fD(a[2],d)[1+d]=f;a[1]=a[1]+1|0;var +e=a[2].length-1<<1B){var +g=M;continue}var +C=B}else +var +C=L;var +i=C;break}}else +var +i=h;var +D=i-h|0;return 0<=D?AF(a,[0,a9c,D+K|0,a9b]):xK(a,[0,a9e,i+J|0,a9d],a[6]);case +3:var +E=c[2],N=c[1];if(a[8]<(a[6]-a[9]|0)){var +j=AB(a[2]);if(j){var +k=j[1],l=k[2],G=k[1];if(a[9]=G-1>>>0)auM(a,l)}else +JM(a)}var +O=a[9]-N|0,P=1===E?1:a[9]=c)return l(a[17],auX,0,c);l(a[17],auX,0,80);var +c=c+aX6|0}}function +a9l(a){return a[1]===VZ?P(a9n,P(a[2],a9m)):a9o}function +a9p(a){return a[1]===VZ?P(a9r,P(a[2],a9q)):a9s}function +a9t(a){return 0}function +a9u(a){return 0}function +auZ(a,b){function +j(a){return 0}function +k(a){return 0}function +m(a){return 0}var +e=VK(0),f=[0,auJ,a9v,0];Ei(f,e);var +d=Eg(0);V1(d);xI([0,1,f],d);var +g=Eg(0),h=Eg(0),i=Eg(0),c=[0,d,Eg(0),i,h,g,78,10,68,78,0,1,1,1,1,atU,a9w,a,b,m,k,j,0,0,a9l,a9p,a9t,a9u,e];c[19]=function(a){return l(c[17],a9k,0,1)};c[20]=function(a){return auY(c,a)};c[21]=function(a){return auY(c,a)};return c}function +au0(d){function +a(a){return t$(d)}return auZ(function(a,b,c){if(0<=b&&0<=c&&(Z(a)-c|0)>=b)return atM(d,a,b,c);return gv(a5k)},a)}function +JP(d){function +a(a){return 0}return auZ(function(a,b,c){return auo(d,a,b,c)},a)}var +a9x=apJ;function +au1(a){return g4(a9x)}var +a9y=au1(0),a9z=au0(a5i),a9A=au0(s1);JP(a9y);function +au2(a,b){var +c=g4(16),e=JP(c);n(a,e,b);Es(e,0);var +f=c[2];if(2>f)return h0(c);var +d=f-2|0,g=1;if(0<=d&&(c[2]-d|0)>=1)return Ay(c[1],g,d);return gv(a6r)}function +pY(a,b){var +e=0;if(typeof +b==="number")return 0;switch(b[0]){case +0:var +j=b[2];pY(a,b[1]);if(typeof +j==="number")switch(j){case +0:return JO(a,0);case +1:return auR(a,0);case +2:return Es(a,0);case +3:return auV(a,0);case +4:V4(a,1);return m(a[18],0);case +5:return Er(a,64);default:return Er(a,37)}switch(j[0]){case +0:return auW(a,j[2],j[3]);case +1:return 0;default:var +ae=j[1];Er(a,64);return Er(a,ae)}case +1:var +x=b[2],N=b[1];if(0===x[0]){var +ag=x[1];pY(a,N);var +y=[0,VZ,au2(pY,ag)];if(a[22]){xI(y,a[4]);m(a[26],y)}var +M=a[23];return M?Eq(a,[0,JL,[5,y],0]):M}var +ah=x[1];pY(a,N);var +c=au2(pY,ah);if(af(c,g))var +z=a8q;else{var +p=Z(c),s=function(a){var +d=a8r[1],b=g4(la);return m(hg(function(a){ud(b,a);return X(h0(b))},0,d),c)},t=function(a){var +b=a;for(;;){if(b===p)return b;var +d=fl(c,b);if(9!==d&&32!==d)return b;var +b=b+1|0}},v=t(0),f=v;for(;;){if(f!==p&&25>=fl(c,f)+zh>>>0){var +f=f+1|0;continue}var +h=f1(c,v,f-v|0),r=t(f),d=r;for(;;){if(d!==p){var +u=fl(c,d),F=0;if(48<=u){if(58>u)F=1}else if(45===u)F=1;if(F){var +d=d+1|0;continue}}if(r===d)var +w=0;else +try{var +ad=kR(f1(c,r,d-r|0)),w=ad}catch(f){var +L=fk(f);if(L[1]!==j2)throw B(L,0);var +w=s(0)}if(t(d)!==p)s(0);var +_=0;if(q(h,g)&&q(h,Uw))var +K=q(h,"h")?q(h,"hov")?q(h,"hv")?q(h,a39)?s(0):1:2:3:0;else +_=1;if(_)var +K=4;var +z=[0,w,K];break}break}}return V3(a,z[1],z[2]);case +2:var +k=b[1],G=0;if(typeof +k==="number"||!(0===k[0]))G=1;else{var +A=k[2],$=0;if(typeof +A==="number"||!(1===A[0]))$=1;else +var +S=b[2],R=A[2],Q=k[1];if($)G=1}if(G){var +P=b[2],O=k;e=2}break;case +3:var +l=b[1],H=0;if(typeof +l==="number"||!(0===l[0]))H=1;else{var +C=l[2],aa=0;if(typeof +C==="number"||!(1===C[0]))aa=1;else{var +Y=b[2],W=C[2],V=l[1];e=1}if(aa)H=1}if(H){var +U=b[2],T=l;e=3}break;case +4:var +n=b[1],I=0;if(typeof +n==="number"||!(0===n[0]))I=1;else{var +D=n[2],ab=0;if(typeof +D==="number"||!(1===D[0]))ab=1;else +var +S=b[2],R=D[2],Q=n[1];if(ab)I=1}if(I){var +P=b[2],O=n;e=2}break;case +5:var +o=b[1],J=0;if(typeof +o==="number"||!(0===o[0]))J=1;else{var +E=o[2],ac=0;if(typeof +E==="number"||!(1===E[0]))ac=1;else{var +Y=b[2],W=E[2],V=o[1];e=1}if(ac)J=1}if(J){var +U=b[2],T=o;e=3}break;case +6:var +ai=b[2];pY(a,b[1]);return m(ai,a);case +7:pY(a,b[1]);return Es(a,0);default:var +aj=b[2];pY(a,b[1]);return gv(aj)}switch(e){case +0:pY(a,Q);return V5(a,R,S);case +1:pY(a,V);return V5(a,W,rc(1,Y));case +2:pY(a,O);return i(a,P);default:pY(a,T);return Er(a,U)}}function +f(d){return function(a){var +b=a[1],c=0;return hg(function(a){pY(d,a);return 0},c,b)}}function +z(a){var +d=a[1],b=au1(0),c=JP(b);return hg(function(a){pY(c,a);V4(c,0);var +d=h0(b);b[2]=0;b[1]=b[4];b[3]=ml(b[1]);return d},0,d)}for(;;){var +atX=Vk[1],a5n=[0,1];if(1-Vi(Vk,atX,function(c,b){return function(a){if(Vi(c,1,0)){Es(a9z,0);Es(a9A,0)}return m(b,0)}}(a5n,atX)))continue;var +au3=[fy,a9B,ge(0)],V6=function(a,b){var +c=ai(b)===fy?b:b[1];return atQ(a,c)},a9C=2,a9D=function(a){var +b=[0,0],d=Z(a)-1|0,e=0;if(d>=0){var +c=e;for(;;){var +g=fl(a,c);b[1]=(xw*b[1]|0)+g|0;var +h=c+1|0;if(d!==c){var +c=h;continue}break}}b[1]=b[1]&HW;var +f=z0=0){var +b=h;for(;;){var +f=(b*2|0)+3|0,i=fD(a,b)[1+b];fD(d,f)[1+f]=i;var +j=b+1|0;if(e!==b){var +b=j;continue}break}}return[0,a9C,d,xL[1],vK[1],0,0,ue[1],0]},V7=function(a,b){var +c=a[2].length-1,d=c=0){var +d=m;for(;;){var +q=Et(a,fD(h,d)[1+d]);fD(g,d)[1+d]=q;var +r=d+1|0;if(j!==d){var +d=r;continue}break}}var +k=i-1|0,n=0;if(k>=0){var +e=n;for(;;){var +l=e+f|0,o=fK(a,fD(c,e)[1+e]);fD(g,l)[1+l]=o;var +p=e+1|0;if(k!==e){var +e=p;continue}break}}return g},j3=function(a){if(0===a)return au6([0]);var +c=au6(pV(a9D,a));auc(function(a,b){var +d=(a*2|0)+2|0;c[3]=l(xL[4],b,d,c[3]);c[4]=l(vK[4],d,1,c[4]);return 0},a);return c},j4=function(a){au7[1]=(au7[1]+a[1]|0)-1|0;a[8]=U(a[8]);return V7(a,3+((fD(a[2],1)[2]*16|0)/32|0)|0)},fG=function(g,b,c,d,e,f){var +q=e[2],F=e[4],k=V9(b),o=V9(c),p=V9(d),j=fx(function(a){return Et(g,a)},o),r=fx(function(a){return Et(g,a)},p);g[5]=[0,[0,g[3],g[4],g[6],g[7],j,k],g[5]];var +s=ue[1],t=g[7];function +u(a,b,c){return s2(a,k)?l(ue[4],a,b,c):c}g[7]=l(ue[13],u,t,s);var +h=[0,xL[1]],i=[0,vK[1]];vF(function(a,b){h[1]=l(xL[4],a,b,h[1]);var +e=i[1];try{var +f=n(vK[28],b,g[4]),d=f}catch(f){var +c=fk(f);if(c!==gf)throw B(c,0);var +d=1}i[1]=l(vK[4],b,d,e);return 0},p,r);vF(function(a,b){h[1]=l(xL[4],a,b,h[1]);i[1]=l(vK[4],b,0,i[1]);return 0},o,j);g[3]=h[1];g[4]=i[1];var +v=0,w=g[6];g[6]=Ed(function(a,b){return s2(a[1],j)?b:[0,a,b]},w,v);var +G=f?n(q,g,F):m(q,g),a=g1(g[5]),x=a[6],y=a[5],z=a[4],A=a[3],C=a[2],D=a[1];g[5]=mo(g[5]);g[7]=M(function(a,b){var +c=n(ue[28],b,g[7]);return l(ue[4],b,c,a)},z,x);g[3]=D;g[4]=C;var +E=g[6];g[6]=Ed(function(a,b){return s2(a[1],y)?b:[0,a,b]},E,A);var +H=0,I=V_(d),J=[0,pV(function(a){var +c=Et(g,a);try{var +b=g[6];for(;;){if(!b)throw B(gf,1);var +d=b[1],f=b[2],h=d[2];if(0===hs(d[1],c))return h;var +b=f}}catch(f){var +e=fk(f);if(e===gf)return fD(g[2],c)[1+c];throw B(e,0)}},I),H],K=V_(b);return fos([0,[0,G],[0,pV(function(a){try{var +c=n(ue[28],a,g[7]);return c}catch(f){var +b=fk(f);if(b===gf)throw B([0,aL,a9G],1);throw B(b,0)}},K),J]])},gP=function(a,b){var +c=j3(a),d=m(b,c);j4(c);return[0,m(d,0),b,d,0]},pZ=function(a,b,c){var +d=j3(a),e=m(b,d);j4(d);c[2]=b;c[1]=e;return 0},fp=function(a,b){if(a)return a;var +c=atN(fy,b[1]);c[1]=b[2];return fpn(c)},fH=function(a,b,c){if(a)return b;var +e=c[8];if(0!==e){var +d=e;for(;;){if(d){var +f=d[2];m(d[1],b);var +d=f;continue}break}}return b},au8=function(a){if(a)return a[2];throw B([0,aL,a9K],1)},au9=function(a,b,c){var +f=[0,0,0,0],e=[0,f],g=0;if(a>=0){var +d=g;for(;;){var +i=e[1];e[1]=[0,fD(b,d)[1+d],i,0];var +j=d+1|0;if(a!==d){var +d=j;continue}break}}var +h=e[1];if(!c)throw B([0,aL,a9H],1);c[2]=h;return f},V$=function(a,b){var +j=au8(a);if(!j)return au9(b.length-1-1|0,b,a);var +d=b.length-1-1|0,e=j;a:for(;;){if(0>d)return e;var +g=fD(b,d)[1+d],c=e;for(;;){if(!c)throw B([0,aL,a9J],1);if(c[1]===g){var +h=au8(c);if(!h)throw B([0,aL,a9M],1);var +d=d-1|0,e=h;continue a}if(!c)throw B([0,aL,a9L],1);var +f=c[3];if(f){var +c=f;continue}var +i=[0,g,0,0];if(!c)throw B([0,aL,a9I],1);c[3]=i;return au9(d-1|0,b,i)}}},JQ=function(a){var +c=V8(a),d=0;if(0!==(c%2|0)&&(2+((fD(a[2],1)[2]*16|0)/32|0)|0)>=c){var +b=V8(a);d=1}if(!d)var +b=c;fD(a[2],b)[1+b]=0;return b},fC=function(a,b){var +e=[0,0],am=b.length-1;for(;;){if(e[1]>=am)return 0;var +g=e[1],an=fD(b,g)[1+g],c=function(a){e[1]++;var +c=e[1];return fD(b,c)[1+c]},f=c(0);if(typeof +f==="number")switch(f){case +0:var +h=c(0),d=function(b){return function(a){return b}}(h);break;case +1:var +i=c(0),d=function(b){return function(a){return a[1+b]}}(i);break;case +2:var +j=c(0),k=c(0),d=function(c,b){return function(a){return a[1+c][1+b]}}(j,k);break;case +3:var +l=c(0),d=function(b){return function(a){return m(a[1][1+b],a)}}(l);break;case +4:var +o=c(0),d=function(c){return function(a,b){a[1+c]=b;return 0}}(o);break;case +5:var +p=c(0),q=c(0),d=function(c,b){return function(a){return m(c,b)}}(p,q);break;case +6:var +r=c(0),s=c(0),d=function(c,b){return function(a){return m(c,a[1+b])}}(r,s);break;case +7:var +t=c(0),u=c(0),v=c(0),d=function(d,b,c){return function(a){return m(d,a[1+b][1+c])}}(t,u,v);break;case +8:var +w=c(0),x=c(0),d=function(c,b){return function(a){return m(c,m(a[1][1+b],a))}}(w,x);break;case +9:var +y=c(0),z=c(0),A=c(0),d=function(d,b,c){return function(a){return n(d,b,c)}}(y,z,A);break;case +10:var +B=c(0),C=c(0),E=c(0),d=function(d,b,c){return function(a){return n(d,b,a[1+c])}}(B,C,E);break;case +11:var +F=c(0),G=c(0),H=c(0),I=c(0),d=function(e,b,c,d){return function(a){return n(e,b,a[1+c][1+d])}}(F,G,H,I);break;case +12:var +J=c(0),K=c(0),L=c(0),d=function(d,b,c){return function(a){return n(d,b,m(a[1][1+c],a))}}(J,K,L);break;case +13:var +M=c(0),N=c(0),O=c(0),d=function(d,b,c){return function(a){return n(d,a[1+b],c)}}(M,N,O);break;case +14:var +P=c(0),Q=c(0),R=c(0),S=c(0),d=function(e,b,c,d){return function(a){return n(e,a[1+b][1+c],d)}}(P,Q,R,S);break;case +15:var +T=c(0),U=c(0),V=c(0),d=function(d,b,c){return function(a){return n(d,m(a[1][1+b],a),c)}}(T,U,V);break;case +16:var +W=c(0),X=c(0),d=function(c,b){return function(a){return n(a[1][1+c],a,b)}}(W,X);break;case +17:var +Y=c(0),Z=c(0),d=function(c,b){return function(a){return n(a[1][1+c],a,a[1+b])}}(Y,Z);break;case +18:var +_=c(0),$=c(0),aa=c(0),d=function(d,b,c){return function(a){return n(a[1][1+d],a,a[1+b][1+c])}}(_,$,aa);break;case +19:var +ab=c(0),ac=c(0),d=function(d,b){return function(a){var +c=m(a[1][1+b],a);return n(a[1][1+d],a,c)}}(ab,ac);break;case +20:var +ad=c(0),ae=c(0);JQ(a);var +d=function(c,b){return function(a){return m(D(b,c,0),b)}}(ad,ae);break;case +21:var +af=c(0),ag=c(0);JQ(a);var +d=function(d,b){return function(a){var +c=a[1+b];return m(D(c,d,0),c)}}(af,ag);break;case +22:var +ah=c(0),ai=c(0),aj=c(0);JQ(a);var +d=function(e,b,c){return function(a){var +d=a[1+b][1+c];return m(D(d,e,0),d)}}(ah,ai,aj);break;default:var +ak=c(0),al=c(0);JQ(a);var +d=function(d,b){return function(a){var +c=m(a[1][1+b],a);return m(D(c,d,0),c)}}(ak,al)}else +var +d=f;s6(a,an,d);e[1]++}},au_=function(e,b){var +j=b.length-1,f=atN(0,j),k=j-1|0,l=0;if(k>=0){var +a=l;for(;;){var +c=fD(b,a)[1+a];if(typeof +c==="number")switch(c){case +0:var +d=function(d){function +c(a){var +b=f[1+d];if(c===b)throw B([0,D$,e],1);return m(b,a)}return c}(a);break;case +1:var +i=[];h(i,[O,function(g,b){return function(a){var +c=f[1+b];if(g===c)throw B([0,D$,e],1);var +d=ai(c);return ah===d?c[1]:O===d?aq(c):c}}(i,a)]);var +d=i;break;default:var +g=function(a){throw B([0,D$,e],1)},d=[0,g,g,g,0]}else +var +d=0===c[0]?au_(e,c[1]):c[1];f[1+a]=d;var +n=a+1|0;if(k!==a){var +a=n;continue}break}}return f},hi=function(a,b){if(typeof +b!=="number"&&0===b[0])return au_(a,b[1]);return X(a9N)},au$=function(a,b,c){if(0===ai(c)&&a.length-1<=c.length-1){var +h=a.length-1-1|0,l=0;if(h>=0){var +d=l;for(;;){var +f=c[1+d],g=fD(a,d)[1+d];if(typeof +g==="number")if(2===g){var +i=0;if(0===ai(f)&&4===f.length-1){var +e=0,j=b[1+d];for(;;){j[1+e]=f[1+e];var +k=e+1|0;if(3!==e){var +e=k;continue}break}}else +i=1;if(i)throw B([0,aL,a9O],1)}else +b[1+d]=f;else if(0===g[0])au$(g[1],b[1+d],f);var +m=d+1|0;if(h!==d){var +d=m;continue}break}}return 0}throw B([0,aL,a9P],1)},hj=function(a,b,c){if(typeof +a!=="number"&&0===a[0])return au$(a[1],b,c);return X(a9Q)},Wb=function(a,b,c){if(af(c,g))return b;var +d=Z(c)-1|0;for(;;){if(0>d)return f1(c,0,1);if(n(a,c,d)){var +d=d-1|0;continue}var +f=d+1|0,e=d;for(;;){if(0>e)return f1(c,0,f);if(n(a,c,e))return f1(c,e+1|0,(f-e|0)-1|0);var +e=e-1|0}}},Wc=function(a,b,c){if(af(c,g))return b;var +d=Z(c)-1|0;for(;;){if(0>d)return f1(c,0,1);if(n(a,c,d)){var +d=d-1|0;continue}var +e=d;for(;;){if(0>e)return b;if(!n(a,c,e)){var +e=e-1|0;continue}var +f=e;for(;;){if(0>f)return f1(c,0,1);if(!n(a,c,f))return f1(c,0,f+1|0);var +f=f-1|0}}}},We=function(a,b){return 47===fl(a,b)?1:0},avd=function(a){var +b=Z(a)<1?1:0,c=b||(47!==fl(a,0)?1:0);return c},a9X=function(a){var +c=avd(a);if(c){var +e=Z(a)<2?1:0,d=e||q(f1(a,0,2),Sr);if(d)var +f=Z(a)<3?1:0,b=f||q(f1(a,0,3),aWz);else +var +b=d}else +var +b=c;return b},a9Y=function(a,b){return JA(b,a)},a9Z=function(a,b){var +c=Z(a),d=Z(b);return c<=d?af(f1(b,d-c|0,c),a)?[0,f1(b,0,d-c|0)]:0:0};try{var +fn0=D8("TMPDIR"),Wf=fn0}catch(f){var +ave=fk(f);if(ave!==gf)throw B(ave,0);var +Wf=a90}var +AH=function(a){var +d=Z(a),b=g4(d+20|0);iM(b,39);var +e=d-1|0,f=0;if(e>=0){var +c=f;for(;;){if(39===fl(a,c))f6(b,a91);else +iM(b,fl(a,c));var +g=c+1|0;if(e!==c){var +c=g;continue}break}}iM(b,39);return h0(b)},avf=function(a,b,c,d,e){if(d)var +g=d[1],h=ao(d,c)?a92:P(a98,AH(g)),f=h;else +var +f=a99;var +i=c?P(a93,AH(c[1])):a97,j=P(i,f),k=b?P(a94,AH(b[1])):a96,l=P(k,j);return P(f2(a95,fx(AH,[0,a,e])),l)},a9_=function(a){return Wb(We,Wd,a)},a9$=[0,a9U,Wd,a9V,a9W,We,avd,a9X,a9Y,a9Z,Wf,AH,avf,a9_,function(a){return Wc(We,Wd,a)}],AI=function(a,b){var +c=fl(a,b),d=47===c?1:0;if(d)var +e=d;else +var +f=92===c?1:0,e=f||(58===c?1:0);return e},Wh=function(a){var +e=Z(a)<1?1:0,c=e||(47!==fl(a,0)?1:0);if(c){var +f=Z(a)<1?1:0,d=f||(92!==fl(a,0)?1:0);if(d)var +g=Z(a)<2?1:0,b=g||(58!==fl(a,1)?1:0);else +var +b=d}else +var +b=c;return b},avg=function(a){var +c=Wh(a);if(c){var +g=Z(a)<2?1:0,d=g||q(f1(a,0,2),Sr);if(d){var +h=Z(a)<2?1:0,e=h||q(f1(a,0,2),".\\");if(e){var +i=Z(a)<3?1:0,f=i||q(f1(a,0,3),aWz);if(f)var +j=Z(a)<3?1:0,b=j||q(f1(a,0,3),"..\\");else +var +b=f}else +var +b=e}else +var +b=d}else +var +b=c;return b},avh=function(a,b){var +c=Z(b)<=Z(a)?1:0;if(c)var +e=f1(a,Z(a)-Z(b)|0,Z(b)),f=Jz(b),d=af(Jz(e),f);else +var +d=c;return d},avi=function(a,b){var +c=Z(a),d=Z(b);if(c>d)return 0;var +e=f1(b,d-c|0,c),f=Jz(a);return af(Jz(e),f)?[0,f1(b,0,d-c|0)]:0};try{var +fnZ=D8("TEMP"),avk=fnZ}catch(f){var +avj=fk(f);if(avj!==gf)throw B(avj,0);var +avk=a_d}var +avl=function(h){var +i=Z(h),d=g4(i+20|0);iM(d,34);function +j(a){var +c=1;if(a>=1){var +b=c;for(;;){iM(d,92);var +e=b+1|0;if(a!==b){var +b=e;continue}break}}return 0}function +g(a,b){var +c=b;for(;;){if(c===i)return iM(d,34);var +f=fl(h,c);if(34===f){var +g=0;return a<50?e(a+1|0,g,c):gu(e,[0,g,c])}if(92===f){var +j=0;return a<50?e(a+1|0,j,c):gu(e,[0,j,c])}iM(d,f);var +c=c+1|0}}function +e(a,b,c){var +f=b,e=c;for(;;){if(e===i){iM(d,34);return j(f)}var +k=fl(h,e);if(34===k){j((2*f|0)+1|0);iM(d,34);var +l=e+1|0;return a<50?g(a+1|0,l):gu(g,[0,l])}if(92===k){var +f=f+1|0,e=e+1|0;continue}j(f);return a<50?g(a+1|0,e):gu(g,[0,e])}}(function(a){return qt(g(0,a))}(0));return h0(d)},JS=function(a){if(!vG(a,34)&&!vG(a,37))return vG(a,32)?P(a_g,P(a,a_f)):a;return X(P(a_e,a))},a_h=function(a,b,c,d,e){if(d)var +i=d[1],j=ao(d,c)?a_j:P(a_s,JS(i)),g=j;else +var +g=a_t;var +k=[0,g,a_i],l=c?P(a_k,JS(c[1])):a_r,m=[0,l,k],n=b?P(a_l,JS(b[1])):a_q,h=f2(a_m,fx(avl,e)),f=g4(Z(h)+20|0),o=[0,n,m];Vx(function(a){var +b=0;if(62<=a){var +c=a-63|0;if(60>>0){if(62>c)b=1}else if(31===c)b=1}else +if(42<=a){if(60===a)b=1}else if(33<=a)switch(a+akn|0){case +2:case +3:case +6:break;default:b=1}return b?(iM(f,94),iM(f,a)):iM(f,a)},h);var +p=[0,a_n,[0,h0(f),o]];return f2(a_p,[0,a_o,[0,JS(a),p]])},avm=function(a){var +d=2<=Z(a)?1:0;if(d){var +b=fl(a,0),c=0;if(91<=b){if(25>=b+zh>>>0)c=1}else if(65<=b)c=1;var +e=c?1:0,f=e?58===fl(a,1)?1:0:e}else +var +f=d;if(!f)return[0,a_u,a];var +g=f1(a,2,Z(a)-2|0);return[0,f1(a,0,2),g]},a_v=function(a){var +b=avm(a),c=b[1];return P(c,Wc(AI,Wg,b[2]))},a_w=[0,a_a,Wg,a_b,a_c,AI,Wh,avg,avh,avi,avk,avl,a_h,function(a){return Wb(AI,Wg,avm(a)[2])},a_v],a_A=function(a){return Wb(AI,Wi,a)},a_B=[0,a_x,Wi,a_y,a_z,AI,Wh,avg,avh,avi,Wf,AH,avf,a_A,function(a){return Wc(AI,Wi,a)}],vL=q(atY,aYL)?q(atY,a04)?a9$:a_w:a_B,avn=vL[3],s7=vL[4],Wj=vL[6],avo=vL[8],AJ=vL[13],avp=vL[14],a_C=vL[2],a_D=vL[5],avq=function(a,b){var +c=Z(a);if(0!==c&&!a_D(a,c-1|0))return P(a,P(s7,b));return P(a,b)},Eu=[fy,a_F,ge(0)],Wk=[fy,a_G,ge(0)],avr=1,avs=function(a){var +f=Z(a),g=0===f?1:0;if(g)return g;var +b=f-1|0;for(;;){var +c=fl(a,b),d=0;if(92<=c){var +e=c-93|0;if(33>>0)if(0<=e)d=2;else +d=1;else if(31===e){var +h=0=0){var +i=o;for(;;){var +f=aF(a,i),g=0;if(32<=f){var +j=f+aVX|0,l=0;if(58>>0){if(93>j)l=1}else if(56>>0)g=1;else +l=1;if(l){var +k=1;g=2}}else +if(11<=f){if(13===f)g=1}else if(8<=f)g=1;switch(g){case +0:var +k=4;break;case +1:var +k=2;break}b[1]=b[1]+k|0;var +u=i+1|0;if(m!==i){var +i=u;continue}break}}if(b[1]===Z(a))return a;var +c=hV(b[1]);b[1]=0;var +n=Z(a)-1|0,p=0;if(n>=0){var +h=p;for(;;){var +d=aF(a,h),e=0;if(35<=d)if(92===d)e=2;else if(gx<=d)e=1;else +e=3;else if(32<=d)if(34<=d)e=2;else +e=3;else if(14<=d)e=1;else +switch(d){case +8:gI(c,b[1],92);b[1]++;gI(c,b[1],98);break;case +9:gI(c,b[1],92);b[1]++;gI(c,b[1],jY);break;case +10:gI(c,b[1],92);b[1]++;gI(c,b[1],hr);break;case +13:gI(c,b[1],92);b[1]++;gI(c,b[1],iR);break;default:e=1}switch(e){case +1:gI(c,b[1],92);b[1]++;var +r=r2(48+(d/hZ|0)|0);gI(c,b[1],r);b[1]++;var +s=r2(48+((d/10|0)%10|0)|0);gI(c,b[1],s);b[1]++;var +t=r2(48+(d%10|0)|0);gI(c,b[1],t);break;case +2:gI(c,b[1],92);b[1]++;gI(c,b[1],d);break;case +3:gI(c,b[1],d);break}b[1]++;var +q=h+1|0;if(n!==h){var +h=q;continue}break}}return iV(c)},avu=function(a){var +d=avt(a),c=Z(d),b=hV(c+2|0);s3(d,0,b,1,c);gI(b,0,34);gI(b,c+1|0,34);return iV(b)},Wl=function(a,b){var +d=Z(a);if(0<=b&&d>=b){var +c=b;for(;;){if(d<=c)return 0;if(aF(a,c)===10)return[0,c];var +c=c+1|0}}return gv(a5Z)},JT=function(a,b,c){if(0===c[0]){var +d=c[1];if(!avs(d))return i(b,d);var +j=Wl(d,0),l=j?(j[1]+1|0)===Z(d)?1:0:1;if(l)return i(b,avu(d));auU(b,0);i(b,a_J);var +e=0;for(;;){var +f=Wl(d,e),k=f?f[1]:Z(d);i(b,avt(f1(d,e,k-e|0)));if(f){var +m=f[1];i(b,a_H);auV(b,0);i(b,a_I);var +e=m+1|0;continue}i(b,a_K);return JO(b,0)}}var +h=c[1];if(!h)return i(b,a_M);var +n=h[2],o=h[1];auU(b,a);i(b,a_L);JT(a,b,o);var +g=n;for(;;){if(g){var +p=g[2],q=g[1];auW(b,1,0);JT(a,b,q);var +g=p;continue}i(b,a_N);return JO(b,0)}},avv=function(a,b){if(0===b[0]){var +c=b[1],i=Wl(c,0)?0:1;if(i)return avs(c)?avu(c):c}var +d=g4(t0),e=a?a[1]:avr,g=JP(d);function +h(a,b){return JT(e,a,b)}l(f(g),a_O,h,b);return h0(d)},a_P=function(a){return a_Q},a_R=function(a){return[0,a]},a_S=function(a){return[0,rc(1,a)]},avw=function(a){return[0,g+a]},avx=function(a,b){return b?[1,[0,m(a,b[1]),0]]:a_T},Wm=function(a,b){return[1,U(jk(a,b))]},avc=function(a,b){return b[2]},JR=[O,function(a){return auD(0)}],Wa=function(a,b){return b&(a[2].length-1-1|0)},AG=16,a9R=a9T[1];for(;;){if(17>AG&&Av>=(AG*2|0)){var +AG=AG*2|0;continue}if(a9R)var +ava=ai(JR),a9S=ah===ava?JR[1]:O===ava?aq(JR):JR,avb=auE(a9S);else +var +avb=0;var +lo=[0,0,j0(AG,0),avb,AG],xM=function(a,b,c,d){var +B=a?a[1]:1,u=avc(lo[3],c),h=Wa(lo,u),C=[0,d,B];if(1-(1<=a5t?1:0))gv(a5u);var +g=foD(1);foG(g,C);Vp(g,0,a5w);foH(g,0,c);var +A=[0,u,g,fD(lo[2],h)[1+h]];fD(lo[2],h)[1+h]=A;lo[1]=lo[1]+1|0;var +v=lo[2].length-1<<1=0){var +e=w;for(;;){i[1+e]=l(fD(i,e)[1+e]);var +x=e+1|0;if(m!==e){var +e=x;continue}break}}var +p=o>>1|0)<=lo[1]?1:0:p;if(q){var +k=j0(o,0);lo[2]=k;var +r=function(a){if(!a)return 0;var +c=a[1],d=a[2];r(a[3]);var +b=Wa(lo,c);k[1+b]=[0,c,d,fD(k,b)[1+b]];return 0},s=j-1|0,y=0;if(s>=0){var +f=y;for(;;){r(fD(n,f)[1+f]);var +z=f+1|0;if(s!==f){var +f=z;continue}break}}var +t=0}else +var +t=q;return t},avy=function(a,b){var +p=0;if(Vo(b)&&ai(b)!==fy&&1<=b.length-1){var +d=b[1];p=1}if(!p)var +d=b;var +q=0;if(Vo(d)&&ai(d)===fy){var +h=d[1];q=1}if(!q)var +h=gv(a5s);var +n=ai(h)===ld?d:gv(a5r),k=avc(lo[3],n),l=Wa(lo,k),c=fD(lo[2],l)[1+l];for(;;){if(c){var +e=c[3],f=c[2];if(k!==c[1]){var +c=c[3];continue}Vp(f,0,a5v);var +i=foF(f,0),r=i?n===i[1]?0:1:2;switch(r){case +0:var +j=foE(f);if(!j){var +c=e;continue}var +g=j;break;case +1:var +c=e;continue;default:var +c=e;continue}}else +var +g=0;if(!g)return 0;var +o=g[1],s=o[2],t=o[1];if(a&&!s)return 0;return[0,m(t,b)]}},avz=function(a){return avy(0,a)},xN=function(a){var +b=avz(a);return b?b[1]:[1,[0,[0,xJ(a)],0]]};En(function(a){var +b=avy(1,a);return b?[0,avv(a_U,b[1])]:0});var +vM=function(a,b){throw B([0,Wk,[0,j2,a],b],1)},a_V=function(a){if(1===a[0]&&!a[1])return 0;return vM(a_W,a)},a_Y=function(a){if(0!==a[0])return vM(a_0,a);var +b=a[1];if(1!==Z(b))vM(a_Z,a);return fl(b,0)},avA=function(a,b){var +c=b[3],d=b[2],e=b[1];return[0,o(k(a_1),a,e,d,c)]},a_2=0,a_5=[0,[0,at0,function(a){if(a===at0)return a_3;throw B([0,aL,a_4],1)}],a_2],a_8=[0,[0,aum,function(a){if(a===aum)return a_6;throw B([0,aL,a_7],1)}],a_5],a_$=[0,[0,au3,function(a){if(a[1]===au3)return[1,[0,a_9,[0,[0,a[2]],0]]];throw B([0,aL,a__],1)}],a_8],a$c=[0,[0,VJ,function(a){if(a===VJ)return a$a;throw B([0,aL,a$b],1)}],a_$],a$f=[0,[0,auk,function(a){if(a===auk)return a$d;throw B([0,aL,a$e],1)}],a$c],a$i=[0,[0,Vq,function(a){if(a===Vq)return a$g;throw B([0,aL,a$h],1)}],a$f],a$l=[0,[0,auu,function(a){if(a[1]===auu)return[1,[0,a$j,[0,[0,a[2]],0]]];throw B([0,aL,a$k],1)}],a$i],a$o=[0,[0,auv,function(a){if(a[1]===auv)return[1,[0,a$m,[0,[0,a[2]],0]]];throw B([0,aL,a$n],1)}],a$l],a$r=[0,[0,Au,function(a){if(a[1]===Au)return[1,[0,a$p,[0,[0,a[2]],0]]];throw B([0,aL,a$q],1)}],a$o],a$u=[0,[0,Eu,function(a){if(a[1]===Eu)return[1,[0,a$s,[0,a[2],0]]];throw B([0,aL,a$t],1)}],a$r],a$x=[0,[0,Js,function(a){if(a[1]===Js)return avA(a$v,a[2]);throw B([0,aL,a$w],1)}],a$u],a$A=[0,[0,vB,function(a){if(a[1]===vB)return[1,[0,a$y,[0,[0,a[2]],0]]];throw B([0,aL,a$z],1)}],a$x],a$D=[0,[0,gf,function(a){if(a===gf)return a$B;throw B([0,aL,a$C],1)}],a$A],a$G=[0,[0,j2,function(a){if(a[1]===j2)return[1,[0,a$E,[0,[0,a[2]],0]]];throw B([0,aL,a$F],1)}],a$D],a$J=[0,[0,D_,function(a){if(a===D_)return a$H;throw B([0,aL,a$I],1)}],a$G],a$M=[0,[0,Jr,function(a){if(a===Jr)return a$K;throw B([0,aL,a$L],1)}],a$J],a$P=[0,[0,aL,function(a){if(a[1]===aL)return avA(a$N,a[2]);throw B([0,aL,a$O],1)}],a$M];fo(function(a){return xM(a$R,a$Q,a[1],a[2])},a$P);var +a$S=0,a$V=[0,[0,Wk,function(a){if(a[1]!==Wk)throw B([0,aL,a$U],1);var +b=[0,a[3],0];return[1,[0,a$T,[0,xN(a[2]),b]]]}],a$S];fo(function(a){return xM(a$X,a$W,a[1],a[2])},a$V);var +Wn=function(a,b){return vM(P(a,a$Y),b)},a$2=D5,a$3=Jn,a$4=j1,a$5=ao,a$6=U4,a$7=vy,a$8=ix,avB=function(a,b){return a===b?1:0},a$9=atC,a$_=foj(0),JU=function(a){return Em(function(a,b){return X(a)},a)},pq=function(a){return Em(function(a,b){return gv(a)},a)};fpr(0);var +p0=function(a,b){var +c=a;for(;;){if(!c)return 0;var +d=c[2];if(m(b,c[1]))return 1;var +c=d}},fs=function(a,b,c){var +d=a,e=b;for(;;){if(!d)return e;var +f=d[2],g=n(c,e,d[1]),d=f,e=g}},p1=function(a,b){return 1-p0(a,function(a){return 1-m(b,a)})},avF=function(a,b,c){var +e=a,d=b;for(;;){if(e){if(d){var +g=d[2],h=e[2],f=n(c,e[1],d[1]);if(!f)return f;var +e=h,d=g;continue}}else if(!d)return 1;return gv(baf)}},fV=function(a,b){var +c=a;for(;;){if(!c)return 0;var +d=c[2];m(b,c[1]);var +c=d}},avG=function(a,b){if(!a)return 0;var +c=a[2],d=m(b,a[1]);return[0,d,avG(c,b)]},xO=function(a,b){var +d=0,c=a;for(;;){if(!c)return d;var +e=c[2],d=[0,m(b,c[1]),d],c=e}},JV=function(a,b){return Jw(b,a)},kf=function(a){if(a){var +b=a[2];if(b)return hh(b[2],[0,b[1],[0,a[1],0]])}return a},Ex=function(a,d,c){if(!a)return c;function +b(a,b){return n(d,b,a)}return fs(kf(a),c,b)},bah=function(a,b){return a},Wp=function +c(a,b){return c.fun(a,b)},bai=function(a,b){return Ap(a,b)},baj=ix,bak=function +b(a){return b.fun(a)};h(Wp,function(a,b){if(0===b[0]){var +g=b[1];return fok(Ap(a,0),g)}var +e=b[1],h=Ap(a,1),d=Ap(h,fA(e)),c=e;for(;;){if(!c)return d;var +f=c[2],d=n(Wp,d,c[1]),c=f}});h(bak,function(a){return fol(n(Wp,0,a))});var +avH=function(a){return a?64:32},avJ=[0,bal],avI=0,avK=function(a){var +b=a[1],c=a[2],d=P(a[2],bam);avJ[1]=[0,d,avJ[1]];return[0,b,c]},JW=function(a){return[0,avK(a)[1]]},vN=function(c){var +a=c[1];return[0,avK([0,function(a,b){return i(a,m(c[2],b))},a])[1]]},avL=[fy,ban,ge(0)];xM(0,0,avL,function(a){if(a[1]!==avL)throw B([0,aL,bap],1);var +b=a[3],c=xN(a[2]);return[1,[0,bao,[0,c,[0,xN(b),0]]]]});var +avM=[fy,baq,ge(0)];xM(0,0,avM,function(a){if(a[1]!==avM)throw B([0,aL,bas],1);var +b=[0,a[2]];return[1,[0,bar,[0,b,[0,xN(a[3]),0]]]]});var +avN=[fy,bat,ge(0)];xM(0,0,avN,function(a){if(a[1]===avN)return a[2];throw B([0,aL,bau],1)});JW([0,function(a,b){var +c=avz(b);return c?JT(avr,a,c[1]):i(a,xJ(b))},bav]);var +avO=function(a){var +d=[fy,baw,ge(0)],b=[0,1];function +e(a){if(1-b[1])X(bax);throw[0,d,a]}try{var +f=m(a,e);b[1]=0;return f}catch(f){var +c=fk(f);b[1]=0;if(c[1]===d)return c[2];throw B(c,0)}},Wq=function(a,b,c){return m(a,m(b,c))},avP=function(c){var +g=c[1],d=c[3];function +b(a,b){function +d(a){var +d=m(b,a);return m(c[3],d)}return n(c[1],a,d)}var +h=c[2],e=typeof +h==="number"?b:h[2];function +o(a,b){return n(g,a,b)}var +a=[0,o,function(a,b){return n(e,a,b)}],f=a[1],i=a[1],j=a[2],p=a[2],q=[0,d,i,j,[0,d,g,e,function(a,b){return n(i,a,function(c){return n(j,b,function(a){return[0,c,a]})})},[0]]];function +r(a){return n(f,a,function(a){return a})}function +s(a){return n(e,a,function(a){return 0})}function +k(c,b){if(!b)return m(d,kf(c));var +e=b[2],a=b[1];return n(f,a,function(a){return k([0,a,c],e)})}function +t(a){return k(0,a)}function +l(a){if(!a)return m(d,0);var +b=a[2],c=a[1];return n(f,c,function(a){return l(b)})}return[0,g,d,b,e,a,f,p,q,r,s,t,l]},Ey=function(a,b){var +c=a?a[1]:baz;return b?b[2]?f2(c,b):b[1]:bay},Ez=function(a){return[0,Ey(0,[0,a[1],[0,baB,[0,g+a[2],[0,baA,[0,g+(a[4]-a[3]|0),0]]]]])]},qx=function(a){return a?0:1},baC=function(a){return 0===a[0]?[0,a[1]]:0},avQ=function(a,b,c){var +e=a+b|0,f=(a|b|e|c-e|0)<0?1:0;if(!f)return f;if(a<0)n(pq(baD),a,0);if(b<0)n(pq(baE),b,0);var +d=(c-b|0)=b)return 0;var +e=b,c=a,d=0;for(;;){if(0===e)return kf(d);if(!c)return a;var +e=e-1|0,f=[0,c[1],d],c=c[2],d=f}},Wy=function(a,b){var +c=a,d=b;for(;;){if(c){var +e=c[2];if(0=0){var +e=j;for(;;){f[1]=l(d,f[1],a[1+e],b[1+e]);var +k=e+1|0;if(g!==e){var +e=k;continue}break}}return f[1]},WE=function(a,b){return fD(a,b)[1+b]},av_=function(a,b){var +d=b!=b?0:b==0.?bbw:0.>>0?0:1},J4=function(a,b,c){if(0===b&&c===Z(a))return a;avQ(b,c,Z(a));if(0===c)return bbG;var +d=hV(c);sY(a,b,d,0,c);return iV(d)},awb=function(a){return 0===Z(a)?1:0},bbI=[0,Eu,bbH],awc=function(a,b,c,d){var +g=Z(a),h=Z(c),j=b<0?1:0,k=j||(gb)return gv(P(c,bbK));try{var +f=J4(a,d,e);return f}catch(f){return g}},J5=function(a,b){return awf(a,b,bbM,b,Z(a)-b|0,bbL)},awg=function(a,b){return awf(a,b,bbN,0,b,a)},awh=function(a,b){return WH(a,b)?[0,J5(a,Z(b))]:0},WI=function(a){return rc(1,a)};JW([0,function(a,b){var +c=Ax(b);return n(f(a),bbQ,c)},bbP]);var +awi=function(a,b,c,d){var +e=m(d,a);return o(JU(bbR),b,c,e,0)},AM=avH(avI),bbS=function(a){return a},bbV=xB(aix),bbW=xB(HW);if(32>AM)throw B([0,aL,fnY],1);var +bbY=function(a){return a};AM<=32;if(32>AM)throw B([0,aL,fnX],1);AM<=32;if(AM>64)throw B([0,aL,fnW],1);64<=AM;var +WJ=bb3.slice(),Wo=WJ.length-1,bb1=Jl(a59,1),bb2=Jl(a5_,1);if(0!==Wo){var +avE=Wo-1|0,bab=j0(Wo,WJ[1]),bac=1;if(avE>=1){var +Ew=bac;for(;;){bab[1+Ew]=WJ[1+Ew];var +bad=Ew+1|0;if(avE!==Ew){var +Ew=bad;continue}break}}}var +EF=function(c){function +d(a,b){if(n(c[11],b,c[18])){var +e=m(c[4],b),f=m(c[4],a);l(pq(bb4),f,e,0)}var +d=n(c[20],a,b);return n(c[14],d,c[18])?n(c[5],d,b):d}var +g=m(c[19],1);function +a(a,b){if(n(c[11],b,c[18])){var +d=m(c[4],b),e=m(c[4],a);l(pq(bb5),e,d,0)}if(!n(c[14],a,c[18]))return n(c[8],a,b);var +f=n(c[5],a,g),h=n(c[8],f,b);return n(c[6],h,g)}function +b(a,b){var +d=m(c[2],b);return m(c[2],a)/d}function +e(a,b){var +e=d(a,b);return n(c[6],a,e)}function +f(a,b){var +e=d(a,b);if(n(c[12],e,c[18]))return a;var +f=n(c[5],a,b);return n(c[6],f,e)}function +h(a,b){return n(c[12],a,c[18])?c[18]:n(c[13],a,c[18])?e(a,b):f(a,b)}function +i(a,b){var +e=d(a,b),f=n(c[6],b,e);return n(c[11],f,e)?n(c[5],a,f):n(c[6],a,e)}return[0,d,a,b,function(a,b,c){var +d=a?a[1]:aVD;return aVD<=d?1003109192<=d?h(b,c):i(b,c):agb<=d?e(b,c):f(b,c)},h,e,f,i]};WC([0,ba_,ba$,bbc,av5,av6,bba,bbb,bbd]);var +bb6=function(a){try{var +b=kR(a);return b}catch(f){return n(JU(bb7),a,0)}},bb8=xT(Vm),bb9=EE(Vm),bb_=function(a){return a},bb$=function(a){if(bb8<=a&&a<=bb9)return a|0;return n(pq(bca),a+0.,0)};vN([0,bcc,atV]);var +bcb=0,bcd=function(a){return a},bce=function(a){return vC(a)},bcf=U$,bcg=function(a){return-a|0},bch=function(a,b){return a!==b?1:0},bci=function(a,b){return a>>0)d=1;else +switch(f){case +0:var +b=HD,c=1;break;case +1:d=1;break;default:var +b=3901488,c=1}if(d)var +b=HD,c=0}else +var +b=HD,c=0;if((c+2|0)>>0?[0,b,0]:[0,b,1]:[0,b,1];else +var +g=[0,b,1];if(g[2])var +j=AN(xC(a));else{var +m=HD<=b?a:J4(a,1,Z(a)-1|0),h=xC(m);if(D5(h,bcU))awn(a);var +i=WK(h),j=HD<=b?i:s0(i)}return j}catch(f){return awn(a)}},bcX=xT(63),bcY=EE(63);AN(a57);AN(VH);var +bcW=63,bcZ=AN(aug),bc0=function(a){return D4(Jl(a,1))},bc1=function(a){if(bcX<=a&&a<=bcY)return WK(a4S(a));return n(pq(bc2),a+0.,0)},awp=function(a){return AN(xB(a))},bc3=function(a){return awp(a)};vN([0,bc4,function(a){return awo(a)}]);EF([0,bc1,bc0,bcV,awo,bcM,bcN,bcQ,bcR,awm,vy,Jn,ao,U4,D5,j1,bcO,awm,bcZ,bc3,bcS]);var +bc6=xT(32),bc5=kR,bc7=EE(32),bc8=U$,awq=function(a){return-a|0},bc9=function(a){return a},bc_=function(a){if(bc6<=a&&a<=bc7)return a|0;return n(pq(bc$),a+0.,0)},bda=vy,bdb=Jn,bdc=ao,bdd=U4,bde=D5,bdf=j1,bdg=atA,bdh=xE,bdi=function(a,b){return a-b|0},bdj=function(a,b){return a+b|0};vN([0,bdk,auf]);EF([0,bc_,bc9,bc5,auf,bdj,bdi,bdh,bdg,awq,bda,bdb,bdc,bdd,bde,bdf,a56,awq,a55,bbS,bc8]);awp(-1);var +bdm=function(a){var +f=Jh("%.15g",a),c=D1(f)==a?f:Jh("%.17g",a),b=0,g=Z(c);for(;;){if(g<=b)return P(c,bdl);var +d=fl(c,b),e=0;if(48<=d){if(58>d)e=1}else if(45===d)e=1;if(!e)return c;var +b=b+1|0}};xT(Vm);xT(bcW);var +WL=atK(foZ(VH,11),VH),awj=At(bbV,WL)<=0?1:0,bbX=awj?At(WL,bbW)<=0?1:0:awj;if(!bbX)awi(WL,bbU,bbT,JB);vN([0,bdn,bdm]);var +aSk=0;try{var +a$$=D8(ak1)}catch(f){var +avC=fk(f);if(avC!==gf)throw B(avC,0);var +WM=0;aSk=1}if(!aSk)var +WM=[0,a$$];if(WM){var +J6=WM[1],awd=Z(J6),WG=0,WF=awd,vQ=awd-1|0,bdo=function(a){return WH(a,bdp)};for(;;){if(-1!==vQ){if(fl(J6,vQ)===44){var +awe=vQ+1|0,WG=[0,J4(J6,awe,WF-awe|0),WG],WF=vQ,vQ=vQ-1|0;continue}var +vQ=vQ-1|0;continue}var +awr=p0([0,J4(J6,0,WF),WG],bdo);break}}else +var +awr=0;if(1-awr)fpk(1);var +aws=function(a,b,c,d,e){var +n=a?a[1]:0,o=b?b[1]:Z(e)-n|0,g=pn(e),j=d,f=n;for(;;){if(f===o)return j;var +h=lR(g,f),p=0;if(0<=h&&!(gx=h){var +i=4;s=1}if(!s)var +i=0}}}if(0===i){var +j=l(c,j,f,0),f=f+1|0;continue}if((o-f|0)>>0)throw B([0,aL,bdq],1);switch(m){case +0:var +k=lR(g,f);break;case +1:var +k=(lR(g,f)&31)<<6|lR(g,f+1|0)&63;break;case +2:var +k=(lR(g,f)&15)<<12|(lR(g,f+1|0)&63)<<6|lR(g,f+2|0)&63;break;default:var +k=(lR(g,f)&7)<<18|(lR(g,f+1|0)&63)<<12|(lR(g,f+2|0)&63)<<6|lR(g,f+3|0)&63}var +j=l(c,j,f,[0,k]),f=t}},s$=function(c,b){function +a(a){return iM(c,a)}return Dt<=b?(a(vn|b>>>18|0),a(gO|(b>>>12|0)&63),a(gO|(b>>>6|0)&63),a(gO|b&63)):ala<=b?(a(tO|b>>>12|0),a(gO|(b>>>6|0)&63),a(gO|b&63)):gO<=b?(a(lN|b>>>6|0),a(gO|b&63)):a(b)},ug=[fy,bdr,ge(0)],awt=0,awu=0,awv=0,aww=0,awx=0,awy=0,awz=0,awA=0,awB=0,awC=0,u=function(a){if(a[3]===a[2])return-1;var +b=a[1][1+a[3]];a[3]=a[3]+1|0;if(10===b){if(0!==a[5])a[5]=a[5]+1|0;a[4]=a[3]}return b},N=function(a,b){a[9]=a[3];a[10]=a[4];a[11]=a[5];a[12]=b;return 0},gV=function(a){a[6]=a[3];a[7]=a[4];a[8]=a[5];return N(a,-1)},v=function(a){a[3]=a[9];a[4]=a[10];a[5]=a[11];return a[12]},AO=function(a){a[3]=a[6];a[4]=a[7];a[5]=a[8];return 0},WN=function(a,b){a[6]=b;return 0},J7=function(a){return a[3]-a[6]|0},ii=function(a){return aub(a[1],a[6],a[3]-a[6]|0)},awD=function(a){var +b=a[6];return fD(a[1],b)[1+b]},EG=function(a,b,c,d){var +g=[0,b],h=[0,c],e=[0,0];for(;;){if(0>=h[1])return e[1];var +f=a[1+g[1]];if(0>f)throw B(ug,1);if(gx>>18|0);gI(d,e[1]+1|0,gO|(f>>>12|0)&63);gI(d,e[1]+2|0,gO|(f>>>6|0)&63);gI(d,e[1]+3|0,gO|f&63);e[1]=e[1]+4|0}else{gI(d,e[1],tO|f>>>12|0);gI(d,e[1]+1|0,gO|(f>>>6|0)&63);gI(d,e[1]+2|0,gO|f&63);e[1]=e[1]+3|0}else{gI(d,e[1],lN|f>>>6|0);gI(d,e[1]+1|0,gO|f&63);e[1]=e[1]+2|0}else{gI(d,e[1],f);e[1]++}g[1]++;h[1]+=-1}},J8=function(a){var +t=Z(a),e=j0(t,0),b=[0,0],d=[0,0];for(;;){if(b[1]>=t)return[0,e,d[1],awC,awB,awA,awz,awy,awx,aww,awv,awu,awt];var +c=aF(a,b[1]),g=0;if(lN<=c)if(vn<=c)if(fy<=c)g=1;else{var +h=aF(a,b[1]+1|0),i=aF(a,b[1]+2|0),j=aF(a,b[1]+3|0),k=2!==(h>>>6|0)?1:0;if(k)var +l=k;else +var +u=2!==(i>>>6|0)?1:0,l=u||(2!==(j>>>6|0)?1:0);if(l)throw B(ug,1);var +m=(c&7)<<18|(h&63)<<12|(i&63)<<6|j&63;if(Ri>>6|0)?1:0,p=v||(2!==(o>>>6|0)?1:0);if(p)var +q=p;else +var +r=a1w<=f?1:0,q=r?f<=57343?1:0:r;if(q)throw B(ug,1);e[1+d[1]]=f;b[1]=b[1]+3|0}else{var +s=aF(a,b[1]+1|0);if(2!==(s>>>6|0))throw B(ug,1);e[1+d[1]]=(c&31)<<6|s&63;b[1]=b[1]+2|0}else if(gO<=c)g=1;else{e[1+d[1]]=c;b[1]++}if(g)throw B(ug,1);d[1]++}},EH=function(a,b,c){var +d=a[6]+b|0,e=hV(c*4|0),f=a[1];if((d+c|0)<=f.length-1)return Ay(e,0,EG(f,d,c,e));throw B([0,aL,bds],1)},f3=function(a){var +b=a[6],c=a[3]-b|0,d=hV(c*4|0);return Ay(d,0,EG(a[1],b,c,d))},J9=function(a,b){var +c=a[6],d=a[3]-c|0,e=hV(d*4|0);return JE(b,e,0,EG(a[1],c,d,e))},EI=function(a){var +b=a.length-1,c=hV(b*4|0);return Ay(c,0,EG(a,0,b,c))},awE=function(a,b){a[3]=a[3]-b|0;return 0},rd=function(a){return typeof +a==="number"?0:0===a[0]?1:a[1]},bdt=function(a,b){return[0,a,b]},EJ=function(a,b,c){return[1,2,b,c,a,0]},EK=function(a,b,c){return[1,2,a,b,0,c]},ta=function(a,b,c,d){var +e=rd(a),f=rd(d),g=f<=e?e+1|0:f+1|0;return 1===g?[0,b,c]:[1,g,b,c,a,d]},J_=function(a,b){if(0===b)return 0;if(1===b){var +c=m(a,0);return[0,c[1],c[2]]}var +d=b>>>1|0,e=J_(a,d),f=m(a,0),g=f[2],h=f[1],i=J_(a,(b-d|0)-1|0);return[1,rd(e)+1|0,h,g,e,i]},bdu=function(b){var +c=[0,0],a=b.length-1;return J_(function(a){var +d=c[1],e=fD(b,d)[1+d];c[1]++;return e},a)},J$=function(a,b,c,d){var +e=rd(a),f=rd(d),g=f<=e?e+1|0:f+1|0;return[1,g,b,c,a,d]},kU=function(a,b,c,d){var +i=rd(a),j=rd(d);if((j+2|0)=j)return ta(a,b,c,d);var +h=d[5],f=d[4],m=d[3],n=d[2],t=rd(f);if(t<=rd(h))return J$(ta(a,b,c,f),n,m,h);var +u=f[4],v=f[3],w=f[2],x=ta(f[5],n,m,h);return J$(ta(a,b,c,u),w,v,x)},mp=0,bdv=function(a){return typeof +a==="number"?1:0},vR=function(a,b){var +c=a,d=b;for(;;){if(typeof +c==="number")return d;if(0===c[0])return[0,c[1],c[2],mp,d];var +e=[0,c[2],c[3],c[5],d],c=c[4],d=e}},awF=function(a){var +b=a;for(;;){if(typeof +b==="number")throw B(gf,1);if(0===b[0])return b;if(typeof +b[4]==="number")return[0,b[2],b[3]];var +b=b[4]}},awG=function(a){var +b=a;for(;;){var +c=b[4],d=b[3],e=b[2];if(typeof +c==="number")return[0,e,d];if(0===c[0])return c;var +b=c}},awH=function(a){var +b=a;for(;;){if(typeof +b==="number")return 0;if(0===b[0])return[0,[0,b[1],b[2]]];if(typeof +b[4]==="number")return[0,[0,b[2],b[3]]];var +b=b[4]}},bdw=function(a){var +b=a;for(;;){if(typeof +b==="number")throw B(gf,1);if(0===b[0])return b;if(typeof +b[5]==="number")return[0,b[2],b[3]];var +b=b[5]}},bdx=function(a){var +b=a;for(;;){if(typeof +b==="number")return 0;if(0===b[0])return[0,[0,b[1],b[2]]];if(typeof +b[5]==="number")return[0,[0,b[2],b[3]]];var +b=b[5]}},WO=function(a){var +b=a[5],c=a[4],d=a[3],e=a[2];return typeof +c==="number"?b:0===c[0]?kU(0,e,d,b):kU(WO(c),e,d,b)},WP=function(a,b){if(typeof +b==="number")return a;if(0===b[0])return EJ(a,b[1],b[2]);var +c=b[5],d=b[3],e=b[2];return kU(WP(a,b[4]),e,d,c)},awI=function(a,b,c){if(typeof +c==="number")return[0,a,b];if(0===c[0])return EK(a,b,c);var +d=c[5],e=c[3],f=c[2];return kU(awI(a,b,c[4]),f,e,d)},WQ=function(a,b){if(typeof +b==="number")return a;if(0===b[0])return EK(b[1],b[2],a);var +c=b[4],d=b[3],e=b[2];return kU(c,e,d,WQ(a,b[5]))},awJ=function(a,b,c){if(typeof +c==="number")return[0,a,b];if(0===c[0])return EJ(c,a,b);var +d=c[4],e=c[3],f=c[2];return kU(d,f,e,awJ(a,b,c[5]))},awK=function(a,b){if(typeof +a==="number")return b;if(1===a[0]&&typeof +b!=="number"){if(0===b[0])return WQ(b,a);var +c=awG(b),d=c[2],e=c[1];return kU(a,e,d,WO(b))}return typeof +b==="number"?a:WP(a,b)},qB=function(a,b,c,d){if(typeof +a==="number")return awI(b,c,d);if(0===a[0]){if(typeof +d!=="number"){if(0===d[0])return[1,2,b,c,a,d];var +k=d[5],l=d[4],m=d[3],n=d[2];return 3>>1|0,d=Kd(a,c),e=m(a,0),f=Kd(a,(b-c|0)-1|0);return[1,uj(d)+1|0,e,d,f]},bdU=function(b){var +c=[0,0],a=b.length-1;return Kd(function(a){var +d=c[1],e=fD(b,d)[1+d];c[1]++;return e},a)},re=function(a,b,c){var +h=uj(a),i=uj(c);if((i+2|0)=i)return p4(a,b,c);var +g=c[4],e=c[3],k=c[2],p=uj(e);if(p<=uj(g))return vS(p4(a,b,e),k,g);var +q=e[3],r=e[2],s=p4(e[4],k,g);return vS(p4(a,b,q),r,s)},aw0=function(a,b){if(typeof +b==="number")return[0,a];if(0===b[0])return p4([0,a],b[1],0);var +c=b[4],d=b[2];return re(aw0(a,b[3]),d,c)},aw1=function(a,b){if(typeof +b==="number")return[0,a];if(0===b[0])return p4(0,b[1],[0,a]);var +c=b[3],d=b[2];return re(c,d,aw1(a,b[4]))},lU=function(a,b,c){if(typeof +a==="number")return aw0(b,c);if(0===a[0]){if(typeof +c!=="number"){if(0===c[0])return p4(a,b,c);var +i=c[4],j=c[3],k=c[2];return 3>1,A=x(z,b),L=A[1],B=x(a-z|0,A[2]),i=L,h=B[1],g=0,M=B[2];for(;;){if(i){if(h){var +t=h[2],u=h[1],v=i[2],k=i[1],w=n(e,k,u);if(0===w){var +i=v,h=t,g=[0,k,g];continue}if(0>1,A=l(z,b),L=A[1],B=l(a-z|0,A[2]),i=L,h=B[1],g=0,M=B[2];for(;;){if(i){if(h){var +u=h[2],v=h[1],w=i[2],k=i[1],x=n(e,k,v);if(0===x){var +i=w,h=u,g=[0,k,g];continue}if(0<=x){var +h=u,g=[0,v,g];continue}var +i=w,g=[0,k,g];continue}var +C=hh(i,g)}else +var +C=hh(h,g);return[0,C,M]}},o=fA(a),q=2<=o?l(o,a)[1]:a,g=function(a,b){if(3>=a>>>0)switch(a){case +0:return[0,0,b];case +1:if(b)return[0,[0,b[1]],b[2]];break;case +2:if(b){var +d=b[2];if(d)return[0,[1,2,d[1],[0,b[1]],0],d[2]]}break;default:if(b){var +e=b[2];if(e){var +f=e[2];if(f)return[0,[1,2,e[1],[0,b[1]],[0,f[1]]],f[2]]}}}var +h=a/2|0,i=g(h,b),c=i[2],k=i[1];if(!c)throw B([0,aL,bdX],1);var +l=c[1],j=g((a-h|0)-1|0,c[2]),m=j[2];return[0,vS(k,l,j[1]),m]};return g(fA(q),q)[1]}var +r=m[1];return d(r,d(p,d(k,d(f,[0,b]))))}function +A(e,d,c){m(f(d),bdY);var +a=aw5(c);if(a)m(f(d),bdZ);var +b=0;M(function(a,b){if(a)m(f(d),bd0);n(e,d,b);return 1},b,a);if(a)m(f(d),bd1);return m(f(d),bd2)}return[0,ij,W0,j,d,bdT,l,g,h,s,i,t,a,k,u,r,v,w,x,p,q,WZ,aw5,EM,aw2,aw3,bdV,EM,aw2,b,y,bdS,z,A,Kd,bdU,function(a,b){var +d=b;for(;;){if(typeof +d==="number")return 0;if(0===d[0]){var +h=d[1];return m(a,h)?[0,h]:0}var +i=d[2],l=d[4],n=d[3];if(!m(a,i)){var +d=l;continue}var +e=i,c=n;for(;;){if(typeof +c==="number")return[0,e];if(0===c[0]){var +f=c[1];return m(a,f)?[0,f]:[0,e]}var +g=c[2],j=c[4],k=c[3];if(m(a,g)){var +e=g,c=k;continue}var +c=j}}}]},qC=h$([0,awX]),g2=qC[1],xU=qC[3],mq=qC[4],aw6=qC[7],aw7=qC[8],aw8=qC[10],aw9=qC[16],W1=qC[22],AS=qC[32],bd3=qC[2],bd4=qC[17],bd5=qC[21],aw_=m(qC[33],awY),aw$=function(a){return n(z(bd6),aw_,a)},jl=h_([0,awX]),at=jl[1],Ke=jl[2],uk=jl[3],ps=jl[4],axa=jl[5],Kf=jl[6],j5=jl[7],hk=jl[11],j6=jl[12],axb=jl[14],axc=jl[18],r4=jl[26],jK=jl[27],ia=jl[28],ul=jl[29],fN=jl[31],xV=jl[32],EO=jl[35],r5=jl[37],axd=jl[42],bd7=jl[8],bd8=jl[15],bd9=jl[24],bd_=jl[34],bd$=jl[46],axe=function(a){return n(bd$,awY,a)},rf=h$([0,WW]),ik=rf[1],axf=rf[2],j7=rf[3],iz=rf[4],Kg=rf[5],W2=rf[6],AT=rf[7],AU=rf[14],bea=rf[15],beb=rf[16],bec=rf[19];m(rf[33],auT);var +axg=function(a,b){switch(b[0]){case +0:var +c=b[1];m(f(a),bei);m(m(f(a),bej),c);return m(f(a),bek);case +1:var +d=b[1];m(f(a),bel);m(m(f(a),bem),d);return m(f(a),ben);case +2:var +e=b[1];m(f(a),beo);m(m(f(a),bep),e);return m(f(a),beq);default:var +g=b[1];m(f(a),ber);m(m(f(a),bes),g);return m(f(a),bet)}},beu=function(a){return[0,a[1]]},axh=function(a){switch(a[0]){case +0:return 1;case +1:return 2;case +2:return 2;default:return 3}},Kh=function(a,b){var +d=axh(b),c=axh(a)-d|0;return 0===c?aQ(a[1],b[1]):c},EP=function(a,b){if(!a)return b?1:0;var +c=a[1];return b?Kh(c,b[1]):-1},um=function(a){switch(a[0]){case +0:return 1;case +1:return 0;case +2:return 0;default:return 0}},axi=function(a,b){switch(b[0]){case +0:return[0,m(a,b[1])];case +1:return[1,m(a,b[1])];case +2:return[2,m(a,b[1])];default:return[3,m(a,b[1])]}},xW=function(a,b){return avo(a[1],b)},EQ=function(a,b){return axi(function(a){return avo(a,b)?f1(a,0,Z(a)-Z(b)|0):gv(a_E)},a)},am=hi(bew,bev),gW=hi(bey,bex),Ki=hi(beA,bez),rg=hi(beC,beB),AV=hi(beE,beD),AW=hi(beG,beF),Kj=hi(beI,beH),axj=hi(beK,beJ),axk=hi(beM,beL),vT=hi(beO,beN),Kk=hi(beQ,beP),W3=hi(beS,beR),fu=hi(beU,beT),kV=hi(beW,beV),fW=hi(beY,beX),W4=hi(be0,beZ),qD=hi(be2,be1),jm=hi(be4,be3),un=hi(be6,be5),vU=hi(be8,be7),W5=function +e(a,b,c,d){return e.fun(a,b,c,d)},axl=function +d(a,b,c){return d.fun(a,b,c)},be$=hi(be_,be9);h(W5,function(e,b,c,d){m(f(c),bfa);n(f(c),bfc,bfb);var +a=d[1];m(f(c),bfd);var +g=0;M(function(a,b){if(a)m(f(c),bfe);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},g,a);m(f(c),bff);m(f(c),bfg);m(f(c),bfh);n(f(c),bfj,bfi);var +h=d[2];m(f(c),bfk);var +i=0;M(function(a,b){if(a)m(f(c),bfl);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},i,h);m(f(c),bfm);m(f(c),bfn);m(f(c),bfo);n(f(c),bfq,bfp);var +j=d[3];m(m(b,c),j);m(f(c),bfr);return m(f(c),bfs)});h(axl,function(a,b,c){var +d=m(m(W5,a),b);return n(z(bft),d,c)});hj(bfu,am,[0,W5,axl]);var +W6=function +e(a,b,c,d){return e.fun(a,b,c,d)},axm=function +d(a,b,c){return d.fun(a,b,c)},Kl=function +d(a,b,c){return d.fun(a,b,c)},axn=function +c(a,b){return c.fun(a,b)};h(W6,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bfv);m(m(b,c),g);m(f(c),bfw);m(n(Kl,function(a){return m(e,a)},c),a);return m(f(c),bfx)});h(axm,function(a,b,c){var +d=m(m(W6,a),b);return n(z(bfy),d,c)});h(Kl,function(d,b,c){m(f(b),bfz);n(f(b),bfB,bfA);var +e=c[1];m(m(f(b),bfC),e);m(f(b),bfD);m(f(b),bfE);n(f(b),bfG,bfF);var +a=c[2];if(a){var +g=a[1];i(b,bfH);var +h=function(a,b){return i(a,bfI)},j=function(a){return m(d,a)};m(l(am[1],j,h,b),g);i(b,bfJ)}else +i(b,bfK);m(f(b),bfL);return m(f(b),bfM)});h(axn,function(a,b){var +c=m(Kl,a);return n(z(bfN),c,b)});hj(bfO,gW,[0,W6,axm,Kl,axn]);var +W7=function +d(a,b,c){return d.fun(a,b,c)},axo=function +c(a,b){return c.fun(a,b)},Km=function +d(a,b,c){return d.fun(a,b,c)},axp=function +c(a,b){return c.fun(a,b)};h(W7,function(d,b,c){var +a=c[2],e=c[1];m(f(b),bfP);m(m(d,b),e);m(f(b),bfQ);m(n(Km,function(a){return m(d,a)},b),a);return m(f(b),bfR)});h(axo,function(a,b){var +c=m(W7,a);return n(z(bfS),c,b)});h(Km,function(d,b,c){m(f(b),bfT);n(f(b),bfV,bfU);var +e=c[1];m(m(f(b),bfW),e);m(f(b),bfX);m(f(b),bfY);n(f(b),bf0,bfZ);var +a=c[2];if(a){var +g=a[1];i(b,bf1);var +h=function(a,b){return i(a,bf2)},j=function(a){return m(d,a)};m(l(am[1],j,h,b),g);i(b,bf3)}else +i(b,bf4);m(f(b),bf5);return m(f(b),bf6)});h(axp,function(a,b){var +c=m(Km,a);return n(z(bf7),c,b)});hj(bf8,Ki,[0,W7,axo,Km,axp]);var +W8=function +d(a,b,c){return d.fun(a,b,c)},axq=function +c(a,b){return c.fun(a,b)};h(W8,function(d,b,c){m(f(b),bf9);n(f(b),bf$,bf_);var +e=c[1];m(m(f(b),bga),e);m(f(b),bgb);m(f(b),bgc);n(f(b),bge,bgd);var +g=c[2];m(m(f(b),bgf),g);m(f(b),bgg);m(f(b),bgh);n(f(b),bgj,bgi);var +a=c[3];if(a){var +h=a[1];i(b,bgk);var +j=function(a,b){return i(a,bgl)},k=function(a){return m(d,a)};m(l(am[1],k,j,b),h);i(b,bgm)}else +i(b,bgn);m(f(b),bgo);return m(f(b),bgp)});h(axq,function(a,b){var +c=m(W8,a);return n(z(bgq),c,b)});hj(bgr,rg,[0,W8,axq]);var +W9=function +d(a,b,c){return d.fun(a,b,c)},axr=function +c(a,b){return c.fun(a,b)};h(W9,function(d,b,c){m(f(b),bgs);n(f(b),bgu,bgt);var +e=c[1];m(m(f(b),bgv),e);m(f(b),bgw);m(f(b),bgx);n(f(b),bgz,bgy);var +g=c[2];m(m(f(b),bgA),g);m(f(b),bgB);m(f(b),bgC);n(f(b),bgE,bgD);var +a=c[3];if(a){var +h=a[1];i(b,bgF);var +j=function(a,b){return i(a,bgG)},k=function(a){return m(d,a)};m(l(am[1],k,j,b),h);i(b,bgH)}else +i(b,bgI);m(f(b),bgJ);return m(f(b),bgK)});h(axr,function(a,b){var +c=m(W9,a);return n(z(bgL),c,b)});hj(bgM,AV,[0,W9,axr]);var +W_=function +d(a,b,c){return d.fun(a,b,c)},axs=function +c(a,b){return c.fun(a,b)};h(W_,function(e,b,c){m(f(b),bgN);n(f(b),bgP,bgO);var +a=c[1];if(a){var +g=a[1];i(b,bgQ);m(m(f(b),bgR),g);i(b,bgS)}else +i(b,bgT);m(f(b),bgU);m(f(b),bgV);n(f(b),bgX,bgW);var +h=c[2];m(m(f(b),bgY),h);m(f(b),bgZ);m(f(b),bg0);n(f(b),bg2,bg1);var +d=c[3];if(d){var +j=d[1];i(b,bg3);var +k=function(a,b){return i(a,bg4)},o=function(a){return m(e,a)};m(l(am[1],o,k,b),j);i(b,bg5)}else +i(b,bg6);m(f(b),bg7);return m(f(b),bg8)});h(axs,function(a,b){var +c=m(W_,a);return n(z(bg9),c,b)});hj(bg_,AW,[0,W_,axs]);var +W$=function +d(a,b,c){return d.fun(a,b,c)},axt=function +c(a,b){return c.fun(a,b)};h(W$,function(d,b,c){m(f(b),bg$);n(f(b),bhb,bha);var +e=c[1];m(m(f(b),bhc),e);m(f(b),bhd);m(f(b),bhe);n(f(b),bhg,bhf);var +a=c[2];if(a){var +g=a[1];i(b,bhh);var +h=function(a,b){return i(a,bhi)},j=function(a){return m(d,a)};m(l(am[1],j,h,b),g);i(b,bhj)}else +i(b,bhk);m(f(b),bhl);return m(f(b),bhm)});h(axt,function(a,b){var +c=m(W$,a);return n(z(bhn),c,b)});hj(bho,Kj,[0,W$,axt]);var +Xa=function +d(a,b,c){return d.fun(a,b,c)},axu=function +c(a,b){return c.fun(a,b)};h(Xa,function(d,b,c){m(f(b),bhp);n(f(b),bhr,bhq);var +e=c[1];m(m(f(b),bhs),e);m(f(b),bht);m(f(b),bhu);n(f(b),bhw,bhv);var +g=c[2];m(m(f(b),bhx),g);m(f(b),bhy);m(f(b),bhz);n(f(b),bhB,bhA);var +h=c[3];m(m(f(b),bhC),h);m(f(b),bhD);m(f(b),bhE);n(f(b),bhG,bhF);var +a=c[4];if(a){var +j=a[1];i(b,bhH);var +k=function(a,b){return i(a,bhI)},o=function(a){return m(d,a)};m(l(am[1],o,k,b),j);i(b,bhJ)}else +i(b,bhK);m(f(b),bhL);return m(f(b),bhM)});h(axu,function(a,b){var +c=m(Xa,a);return n(z(bhN),c,b)});hj(bhO,axj,[0,Xa,axu]);var +Xb=function +e(a,b,c,d){return e.fun(a,b,c,d)},axv=function +d(a,b,c){return d.fun(a,b,c)};h(Xb,function(e,b,c,d){m(f(c),bhP);n(f(c),bhR,bhQ);var +g=d[1];m(m(f(c),bhS),g);m(f(c),bhT);m(f(c),bhU);n(f(c),bhW,bhV);var +h=d[2];m(m(b,c),h);m(f(c),bhX);m(f(c),bhY);n(f(c),bh0,bhZ);var +j=d[3];m(m(f(c),bh1),j);m(f(c),bh2);m(f(c),bh3);n(f(c),bh5,bh4);var +k=d[4];m(m(f(c),bh6),k);m(f(c),bh7);m(f(c),bh8);n(f(c),bh_,bh9);var +o=d[5];m(m(f(c),bh$),o);m(f(c),bia);m(f(c),bib);n(f(c),bid,bic);var +a=d[6];if(a){var +p=a[1];i(c,bie);var +q=function(a,b){return i(a,bif)},r=function(a){return m(e,a)};m(l(am[1],r,q,c),p);i(c,big)}else +i(c,bih);m(f(c),bii);return m(f(c),bij)});h(axv,function(a,b,c){var +d=m(m(Xb,a),b);return n(z(bik),d,c)});hj(bil,axk,[0,Xb,axv]);var +Xc=function +d(a,b,c){return d.fun(a,b,c)},axw=function +c(a,b){return c.fun(a,b)},Kn=function +c(a,b){return c.fun(a,b)},axx=function +b(a){return b.fun(a)},Ko=function +d(a,b,c){return d.fun(a,b,c)},axy=function +c(a,b){return c.fun(a,b)};h(Xc,function(d,b,c){var +a=c[2],e=c[1];m(f(b),bim);m(m(d,b),e);m(f(b),bin);m(n(Ko,function(a){return m(d,a)},b),a);return m(f(b),bio)});h(axw,function(a,b){var +c=m(Xc,a);return n(z(bip),c,b)});h(Kn,function(a,b){switch(b){case +0:return i(a,biq);case +1:return i(a,bir);case +2:return i(a,bis);case +3:return i(a,bit);case +4:return i(a,biu);default:return i(a,biv)}});h(axx,function(a){return n(z(biw),Kn,a)});h(Ko,function(d,b,c){m(f(b),bix);n(f(b),biz,biy);var +e=c[1];m(m(Kn,b),e);m(f(b),biA);m(f(b),biB);n(f(b),biD,biC);var +a=c[2];if(a){var +g=a[1];i(b,biE);var +h=function(a,b){return i(a,biF)},j=function(a){return m(d,a)};m(l(am[1],j,h,b),g);i(b,biG)}else +i(b,biH);m(f(b),biI);return m(f(b),biJ)});h(axy,function(a,b){var +c=m(Ko,a);return n(z(biK),c,b)});hj(biL,vT,[0,Xc,axw,Kn,axx,Ko,axy]);var +Xd=function +e(a,b,c,d){return e.fun(a,b,c,d)},axz=function +d(a,b,c){return d.fun(a,b,c)},Xe=function +e(a,b,c,d){return e.fun(a,b,c,d)},axA=function +d(a,b,c){return d.fun(a,b,c)};h(Xd,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),biM);m(m(e,c),g);m(f(c),biN);function +h(a){return m(b,a)}function +i(a){return m(e,a)}m(l(Kk[3],i,h,c),a);return m(f(c),biO)});h(axz,function(a,b,c){var +d=m(m(Xd,a),b);return n(z(biP),d,c)});h(Xe,function(e,b,c,d){m(f(c),biQ);n(f(c),biS,biR);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),biT);m(f(c),biU);n(f(c),biW,biV);var +a=d[2];if(a){var +k=a[1];i(c,biX);var +o=function(a,b){return i(a,biY)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,biZ)}else +i(c,bi0);m(f(c),bi1);return m(f(c),bi2)});h(axA,function(a,b,c){var +d=m(m(Xe,a),b);return n(z(bi3),d,c)});hj(bi4,Kk,[0,Xd,axz,Xe,axA]);var +axB=function(a,b){switch(b){case +0:return i(a,bi5);case +1:return i(a,bi6);default:return i(a,bi7)}};hj(bi9,W3,[0,axB,function(a){return n(z(bi8),axB,a)}]);var +Xf=function +e(a,b,c,d){return e.fun(a,b,c,d)},axC=function +d(a,b,c){return d.fun(a,b,c)};h(Xf,function(e,b,c,d){m(f(c),bi_);n(f(c),bja,bi$);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[19],j,h,c),g);m(f(c),bjb);m(f(c),bjc);n(f(c),bje,bjd);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(fu[19],p,o,c),k);m(f(c),bjf);m(f(c),bjg);n(f(c),bji,bjh);var +q=d[3];function +r(a){return m(b,a)}function +s(a){return m(e,a)}m(l(fu[19],s,r,c),q);m(f(c),bjj);m(f(c),bjk);n(f(c),bjm,bjl);var +t=d[4];function +u(a){return m(b,a)}function +v(a){return m(e,a)}m(l(fu[19],v,u,c),t);m(f(c),bjn);m(f(c),bjo);n(f(c),bjq,bjp);var +a=d[5];if(a){var +w=a[1];i(c,bjr);var +x=function(a,b){return i(a,bjs)},y=function(a){return m(e,a)};m(l(am[1],y,x,c),w);i(c,bjt)}else +i(c,bju);m(f(c),bjv);return m(f(c),bjw)});h(axC,function(a,b,c){var +d=m(m(Xf,a),b);return n(z(bjx),d,c)});var +axD=[0,Xf,axC],Xg=function +e(a,b,c,d){return e.fun(a,b,c,d)},axE=function +d(a,b,c){return d.fun(a,b,c)};h(Xg,function(e,b,c,d){m(f(c),bjy);n(f(c),bjA,bjz);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[31][3],j,h,c),g);m(f(c),bjB);m(f(c),bjC);n(f(c),bjE,bjD);var +a=d[2];if(a){var +k=a[1];i(c,bjF);var +o=function(a,b){return i(a,bjG)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bjH)}else +i(c,bjI);m(f(c),bjJ);return m(f(c),bjK)});h(axE,function(a,b,c){var +d=m(m(Xg,a),b);return n(z(bjL),d,c)});var +axF=[0,Xg,axE],Xh=function +e(a,b,c,d){return e.fun(a,b,c,d)},axG=function +d(a,b,c){return d.fun(a,b,c)},Kp=function +e(a,b,c,d){return e.fun(a,b,c,d)},axH=function +d(a,b,c){return d.fun(a,b,c)};h(Xh,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bjM);m(m(e,c),g);m(f(c),bjN);function +h(a){return m(b,a)}m(l(Kp,function(a){return m(e,a)},h,c),a);return m(f(c),bjO)});h(axG,function(a,b,c){var +d=m(m(Xh,a),b);return n(z(bjP),d,c)});h(Kp,function(e,b,c,d){m(f(c),bjQ);n(f(c),bjS,bjR);var +a=d[1];if(a){var +g=a[1];i(c,bjT);var +h=function(a){return m(b,a)},j=function(a){return m(e,a)};m(l(gW[1],j,h,c),g);i(c,bjU)}else +i(c,bjV);m(f(c),bjW);m(f(c),bjX);n(f(c),bjZ,bjY);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(fu[19],p,o,c),k);m(f(c),bj0);m(f(c),bj1);n(f(c),bj3,bj2);var +q=d[3];m(m(f(c),bj4),q);m(f(c),bj5);return m(f(c),bj6)});h(axH,function(a,b,c){var +d=m(m(Kp,a),b);return n(z(bj7),d,c)});var +Xi=[0,Xh,axG,Kp,axH],Xj=function +e(a,b,c,d){return e.fun(a,b,c,d)},axI=function +d(a,b,c){return d.fun(a,b,c)},Kq=function +e(a,b,c,d){return e.fun(a,b,c,d)},axJ=function +d(a,b,c){return d.fun(a,b,c)};h(Xj,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bj8);m(m(e,c),g);m(f(c),bj9);function +h(a){return m(b,a)}m(l(Kq,function(a){return m(e,a)},h,c),a);return m(f(c),bj_)});h(axI,function(a,b,c){var +d=m(m(Xj,a),b);return n(z(bj$),d,c)});h(Kq,function(e,b,c,d){m(f(c),bka);n(f(c),bkc,bkb);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(Xi[1],j,h,c),g);m(f(c),bkd);m(f(c),bke);n(f(c),bkg,bkf);var +a=d[2];if(a){var +k=a[1];i(c,bkh);var +o=function(a,b){return i(a,bki)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bkj)}else +i(c,bkk);m(f(c),bkl);return m(f(c),bkm)});h(axJ,function(a,b,c){var +d=m(m(Kq,a),b);return n(z(bkn),d,c)});var +axK=[0,Xj,axI,Kq,axJ],Xk=function +e(a,b,c,d){return e.fun(a,b,c,d)},axL=function +d(a,b,c){return d.fun(a,b,c)},Kr=function +e(a,b,c,d){return e.fun(a,b,c,d)},axM=function +d(a,b,c){return d.fun(a,b,c)};h(Xk,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bko);m(m(e,c),g);m(f(c),bkp);function +h(a){return m(b,a)}m(l(Kr,function(a){return m(e,a)},h,c),a);return m(f(c),bkq)});h(axL,function(a,b,c){var +d=m(m(Xk,a),b);return n(z(bkr),d,c)});h(Kr,function(e,b,c,d){m(f(c),bks);n(f(c),bku,bkt);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[23],j,h,c),g);m(f(c),bkv);m(f(c),bkw);n(f(c),bky,bkx);var +a=d[2];if(a){var +k=a[1];i(c,bkz);var +o=function(a,b){return i(a,bkA)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bkB)}else +i(c,bkC);m(f(c),bkD);return m(f(c),bkE)});h(axM,function(a,b,c){var +d=m(m(Kr,a),b);return n(z(bkF),d,c)});var +axN=[0,Xk,axL,Kr,axM],Xl=function +e(a,b,c,d){return e.fun(a,b,c,d)},axO=function +d(a,b,c){return d.fun(a,b,c)},Ks=function +e(a,b,c,d){return e.fun(a,b,c,d)},axP=function +d(a,b,c){return d.fun(a,b,c)};h(Xl,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bkG);m(m(e,c),g);m(f(c),bkH);function +h(a){return m(b,a)}m(l(Ks,function(a){return m(e,a)},h,c),a);return m(f(c),bkI)});h(axO,function(a,b,c){var +d=m(m(Xl,a),b);return n(z(bkJ),d,c)});h(Ks,function(e,g,c,d){m(f(c),bkK);n(f(c),bkM,bkL);var +a=d[1];if(a){var +j=a[1];i(c,bkN);var +k=function(a){return m(g,a)},o=function(a){return m(e,a)};m(l(axN[1],o,k,c),j);i(c,bkO)}else +i(c,bkP);m(f(c),bkQ);m(f(c),bkR);n(f(c),bkT,bkS);var +p=d[2];m(f(c),bkU);var +q=0;M(function(a,b){if(a)m(f(c),bkV);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(Xi[1],h,d,c),b);return 1},q,p);m(f(c),bkW);m(f(c),bkX);m(f(c),bkY);n(f(c),bk0,bkZ);var +b=d[3];if(b){var +r=b[1];i(c,bk1);var +s=function(a){return m(g,a)},t=function(a){return m(e,a)};m(l(axK[1],t,s,c),r);i(c,bk2)}else +i(c,bk3);m(f(c),bk4);m(f(c),bk5);n(f(c),bk7,bk6);var +h=d[4];if(h){var +u=h[1];i(c,bk8);var +v=function(c,b){m(f(c),bk9);var +a=0;M(function(a,b){if(a)m(f(c),bk_);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bk$)},w=function(a){return m(e,a)};m(l(am[1],w,v,c),u);i(c,bla)}else +i(c,blb);m(f(c),blc);return m(f(c),bld)});h(axP,function(a,b,c){var +d=m(m(Ks,a),b);return n(z(ble),d,c)});var +axQ=[0,Xl,axO,Ks,axP],Xm=function +e(a,b,c,d){return e.fun(a,b,c,d)},axR=function +d(a,b,c){return d.fun(a,b,c)},Kt=function +e(a,b,c,d){return e.fun(a,b,c,d)},axS=function +d(a,b,c){return d.fun(a,b,c)};h(Xm,function(e,b,c,d){m(f(c),blf);n(f(c),blh,blg);var +a=d[1];if(a){var +h=a[1];i(c,bli);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(fu[32][1],k,j,c),h);i(c,blj)}else +i(c,blk);m(f(c),bll);m(f(c),blm);n(f(c),blo,bln);var +o=d[2];function +p(a){return m(b,a)}function +q(a){return m(e,a)}m(l(axQ[1],q,p,c),o);m(f(c),blp);m(f(c),blq);n(f(c),bls,blr);var +r=d[3];function +s(a){return m(b,a)}m(l(Kt,function(a){return m(e,a)},s,c),r);m(f(c),blt);m(f(c),blu);n(f(c),blw,blv);var +g=d[4];if(g){var +t=g[1];i(c,blx);var +u=function(a,b){return i(a,bly)},v=function(a){return m(e,a)};m(l(am[1],v,u,c),t);i(c,blz)}else +i(c,blA);m(f(c),blB);return m(f(c),blC)});h(axR,function(a,b,c){var +d=m(m(Xm,a),b);return n(z(blD),d,c)});h(Kt,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),blE);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(fu[19],h,g,c),a);return m(f(c),blF)}var +i=d[1];m(f(c),blG);function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fu[35][1],k,j,c),i);return m(f(c),blH)});h(axS,function(a,b,c){var +d=m(m(Kt,a),b);return n(z(blI),d,c)});var +ER=[0,Xi,axK,axN,axQ,Xm,axR,Kt,axS],Xn=function +e(a,b,c,d){return e.fun(a,b,c,d)},axT=function +d(a,b,c){return d.fun(a,b,c)},Ku=function +e(a,b,c,d){return e.fun(a,b,c,d)},axU=function +d(a,b,c){return d.fun(a,b,c)};h(Xn,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),blJ);m(m(e,c),g);m(f(c),blK);function +h(a){return m(b,a)}m(l(Ku,function(a){return m(e,a)},h,c),a);return m(f(c),blL)});h(axT,function(a,b,c){var +d=m(m(Xn,a),b);return n(z(blM),d,c)});h(Ku,function(e,b,c,d){m(f(c),blN);n(f(c),blP,blO);var +a=d[1];function +g(a){return m(b,a)}function +h(a){return m(e,a)}m(l(kV[21][2][5],h,g,c),a);m(f(c),blQ);m(f(c),blR);n(f(c),blT,blS);var +i=d[2];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fu[23],k,j,c),i);m(f(c),blU);m(f(c),blV);n(f(c),blX,blW);var +o=d[3];m(m(f(c),blY),o);m(f(c),blZ);return m(f(c),bl0)});h(axU,function(a,b,c){var +d=m(m(Ku,a),b);return n(z(bl1),d,c)});var +axV=[0,Xn,axT,Ku,axU],Xo=function +e(a,b,c,d){return e.fun(a,b,c,d)},axW=function +d(a,b,c){return d.fun(a,b,c)},Kv=function +e(a,b,c,d){return e.fun(a,b,c,d)},axX=function +d(a,b,c){return d.fun(a,b,c)};h(Xo,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bl2);m(m(e,c),g);m(f(c),bl3);function +h(a){return m(b,a)}m(l(Kv,function(a){return m(e,a)},h,c),a);return m(f(c),bl4)});h(axW,function(a,b,c){var +d=m(m(Xo,a),b);return n(z(bl5),d,c)});h(Kv,function(e,b,c,d){m(f(c),bl6);n(f(c),bl8,bl7);var +a=d[1];if(a){var +h=a[1];i(c,bl9);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(gW[1],k,j,c),h);i(c,bl_)}else +i(c,bl$);m(f(c),bma);m(f(c),bmb);n(f(c),bmd,bmc);var +o=d[2];function +p(a){return m(b,a)}function +q(a){return m(e,a)}m(l(fu[19],q,p,c),o);m(f(c),bme);m(f(c),bmf);n(f(c),bmh,bmg);var +r=d[3];m(m(f(c),bmi),r);m(f(c),bmj);m(f(c),bmk);n(f(c),bmm,bml);var +g=d[4];if(g){var +s=g[1];i(c,bmn);var +t=function(a,b){return i(a,bmo)},u=function(a){return m(e,a)};m(l(am[1],u,t,c),s);i(c,bmp)}else +i(c,bmq);m(f(c),bmr);return m(f(c),bms)});h(axX,function(a,b,c){var +d=m(m(Kv,a),b);return n(z(bmt),d,c)});var +axY=[0,Xo,axW,Kv,axX],Xp=function +e(a,b,c,d){return e.fun(a,b,c,d)},axZ=function +d(a,b,c){return d.fun(a,b,c)},Kw=function +e(a,b,c,d){return e.fun(a,b,c,d)},ax0=function +d(a,b,c){return d.fun(a,b,c)};h(Xp,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bmu);m(m(e,c),g);m(f(c),bmv);function +h(a){return m(b,a)}m(l(Kw,function(a){return m(e,a)},h,c),a);return m(f(c),bmw)});h(axZ,function(a,b,c){var +d=m(m(Xp,a),b);return n(z(bmx),d,c)});h(Kw,function(e,g,c,d){m(f(c),bmy);n(f(c),bmA,bmz);var +h=d[1];m(f(c),bmB);var +j=0;M(function(a,b){if(a)m(f(c),bmC);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(axV[1],h,d,c),b);return 1},j,h);m(f(c),bmD);m(f(c),bmE);m(f(c),bmF);n(f(c),bmH,bmG);var +a=d[2];if(a){var +k=a[1];i(c,bmI);var +o=function(a){return m(g,a)},p=function(a){return m(e,a)};m(l(axY[1],p,o,c),k);i(c,bmJ)}else +i(c,bmK);m(f(c),bmL);m(f(c),bmM);n(f(c),bmO,bmN);var +b=d[3];if(b){var +q=b[1];i(c,bmP);var +r=function(c,b){m(f(c),bmQ);var +a=0;M(function(a,b){if(a)m(f(c),bmR);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bmS)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,bmT)}else +i(c,bmU);m(f(c),bmV);return m(f(c),bmW)});h(ax0,function(a,b,c){var +d=m(m(Kw,a),b);return n(z(bmX),d,c)});var +ax1=[0,Xp,axZ,Kw,ax0],Xq=function +e(a,b,c,d){return e.fun(a,b,c,d)},ax2=function +d(a,b,c){return d.fun(a,b,c)};h(Xq,function(e,b,c,d){m(f(c),bmY);n(f(c),bm0,bmZ);var +a=d[1];if(a){var +h=a[1];i(c,bm1);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(fu[32][1],k,j,c),h);i(c,bm2)}else +i(c,bm3);m(f(c),bm4);m(f(c),bm5);n(f(c),bm7,bm6);var +o=d[2];function +p(a){return m(b,a)}function +q(a){return m(e,a)}m(l(ax1[1],q,p,c),o);m(f(c),bm8);m(f(c),bm9);n(f(c),bm$,bm_);var +r=d[3];function +s(a){return m(b,a)}function +t(a){return m(e,a)}m(l(fu[29],t,s,c),r);m(f(c),bna);m(f(c),bnb);n(f(c),bnd,bnc);var +g=d[4];if(g){var +u=g[1];i(c,bne);var +v=function(a,b){return i(a,bnf)},w=function(a){return m(e,a)};m(l(am[1],w,v,c),u);i(c,bng)}else +i(c,bnh);m(f(c),bni);return m(f(c),bnj)});h(ax2,function(a,b,c){var +d=m(m(Xq,a),b);return n(z(bnk),d,c)});var +ax3=[0,axV,axY,ax1,Xq,ax2],Kx=function +e(a,b,c,d){return e.fun(a,b,c,d)},ax4=function +d(a,b,c){return d.fun(a,b,c)},Ky=function +e(a,b,c,d){return e.fun(a,b,c,d)},ax5=function +d(a,b,c){return d.fun(a,b,c)},Kz=function +e(a,b,c,d){return e.fun(a,b,c,d)},ax6=function +d(a,b,c){return d.fun(a,b,c)};h(Kx,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),bnl);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(gW[1],h,g,c),a);return m(f(c),bnm)}var +i=d[1];m(f(c),bnn);function +j(a){return m(b,a)}m(l(Ky,function(a){return m(e,a)},j,c),i);return m(f(c),bno)});h(ax4,function(a,b,c){var +d=m(m(Kx,a),b);return n(z(bnp),d,c)});h(Ky,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bnq);m(m(e,c),g);m(f(c),bnr);function +h(a){return m(b,a)}m(l(Kz,function(a){return m(e,a)},h,c),a);return m(f(c),bns)});h(ax5,function(a,b,c){var +d=m(m(Ky,a),b);return n(z(bnt),d,c)});h(Kz,function(e,b,c,d){m(f(c),bnu);n(f(c),bnw,bnv);var +a=d[1];function +g(a){return m(b,a)}m(l(Kx,function(a){return m(e,a)},g,c),a);m(f(c),bnx);m(f(c),bny);n(f(c),bnA,bnz);var +h=d[2];function +i(a){return m(b,a)}function +j(a){return m(e,a)}m(l(gW[1],j,i,c),h);m(f(c),bnB);return m(f(c),bnC)});h(ax6,function(a,b,c){var +d=m(m(Kz,a),b);return n(z(bnD),d,c)});var +ax7=[0,Kx,ax4,Ky,ax5,Kz,ax6],Xr=function +e(a,b,c,d){return e.fun(a,b,c,d)},ax8=function +d(a,b,c){return d.fun(a,b,c)};h(Xr,function(e,b,c,d){m(f(c),bnE);n(f(c),bnG,bnF);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(ax7[1],k,j,c),h);m(f(c),bnH);m(f(c),bnI);n(f(c),bnK,bnJ);var +a=d[2];if(a){var +o=a[1];i(c,bnL);var +p=function(a){return m(b,a)},q=function(a){return m(e,a)};m(l(fu[33][1],q,p,c),o);i(c,bnM)}else +i(c,bnN);m(f(c),bnO);m(f(c),bnP);n(f(c),bnR,bnQ);var +g=d[3];if(g){var +r=g[1];i(c,bnS);var +s=function(a,b){return i(a,bnT)},t=function(a){return m(e,a)};m(l(am[1],t,s,c),r);i(c,bnU)}else +i(c,bnV);m(f(c),bnW);return m(f(c),bnX)});h(ax8,function(a,b,c){var +d=m(m(Xr,a),b);return n(z(bnY),d,c)});var +Xs=[0,ax7,Xr,ax8],Xt=function +e(a,b,c,d){return e.fun(a,b,c,d)},ax9=function +d(a,b,c){return d.fun(a,b,c)};h(Xt,function(e,b,c,d){m(f(c),bnZ);n(f(c),bn1,bn0);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[19],j,h,c),g);m(f(c),bn2);m(f(c),bn3);n(f(c),bn5,bn4);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(fu[19],p,o,c),k);m(f(c),bn6);m(f(c),bn7);n(f(c),bn9,bn8);var +a=d[3];if(a){var +q=a[1];i(c,bn_);var +r=function(a,b){return i(a,bn$)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,boa)}else +i(c,bob);m(f(c),boc);return m(f(c),bod)});h(ax9,function(a,b,c){var +d=m(m(Xt,a),b);return n(z(boe),d,c)});var +Xu=[0,Xt,ax9],Xv=function +e(a,b,c,d){return e.fun(a,b,c,d)},ax_=function +d(a,b,c){return d.fun(a,b,c)};h(Xv,function(e,b,c,d){m(f(c),bof);n(f(c),boh,bog);var +a=d[1];function +g(a){return m(b,a)}function +h(a){return m(e,a)}m(l(Xu[1],h,g,c),a);m(f(c),boi);m(f(c),boj);n(f(c),bol,bok);var +i=d[2];m(m(f(c),bom),i);m(f(c),bon);return m(f(c),boo)});h(ax_,function(a,b,c){var +d=m(m(Xv,a),b);return n(z(bop),d,c)});var +ax$=[0,Xv,ax_],Xw=function +e(a,b,c,d){return e.fun(a,b,c,d)},aya=function +d(a,b,c){return d.fun(a,b,c)},KA=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayb=function +d(a,b,c){return d.fun(a,b,c)},KB=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayc=function +d(a,b,c){return d.fun(a,b,c)};h(Xw,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),boq);m(m(e,c),g);m(f(c),bor);function +h(a){return m(b,a)}m(l(KA,function(a){return m(e,a)},h,c),a);return m(f(c),bos)});h(aya,function(a,b,c){var +d=m(m(Xw,a),b);return n(z(bot),d,c)});h(KA,function(e,b,c,d){m(f(c),bou);n(f(c),bow,bov);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fW[7][1][1],k,j,c),h);m(f(c),box);m(f(c),boy);n(f(c),boA,boz);var +o=d[2];function +p(a){return m(b,a)}m(l(KB,function(a){return m(e,a)},p,c),o);m(f(c),boB);m(f(c),boC);n(f(c),boE,boD);var +q=d[3];m(m(f(c),boF),q);m(f(c),boG);m(f(c),boH);n(f(c),boJ,boI);var +r=d[4];m(m(f(c),boK),r);m(f(c),boL);m(f(c),boM);n(f(c),boO,boN);var +s=d[5];m(m(f(c),boP),s);m(f(c),boQ);m(f(c),boR);n(f(c),boT,boS);var +t=d[6];m(m(f(c),boU),t);m(f(c),boV);m(f(c),boW);n(f(c),boY,boX);var +a=d[7];if(a){var +u=a[1];i(c,boZ);var +v=function(a){return m(e,a)};m(n(vT[1],v,c),u);i(c,bo0)}else +i(c,bo1);m(f(c),bo2);m(f(c),bo3);n(f(c),bo5,bo4);var +g=d[8];if(g){var +w=g[1];i(c,bo6);var +x=function(a,b){return i(a,bo7)},y=function(a){return m(e,a)};m(l(am[1],y,x,c),w);i(c,bo8)}else +i(c,bo9);m(f(c),bo_);return m(f(c),bo$)});h(ayb,function(a,b,c){var +d=m(m(KA,a),b);return n(z(bpa),d,c)});h(KB,function(e,b,c,d){switch(d[0]){case +0:var +h=d[1];m(f(c),bpb);var +i=function(a){return m(b,a)},j=function(a){return m(e,a)};m(l(fu[19],j,i,c),h);return m(f(c),bpc);case +1:var +a=d[1];m(f(c),bpd);var +k=a[2],n=a[1];m(f(c),bpe);m(m(e,c),n);m(f(c),bpf);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(ER[5],p,o,c),k);m(f(c),bpg);return m(f(c),bph);default:var +g=d[1];m(f(c),bpi);var +q=g[2],r=g[1];m(f(c),bpj);m(m(e,c),r);m(f(c),bpk);var +s=function(a){return m(b,a)},t=function(a){return m(e,a)};m(l(ER[5],t,s,c),q);m(f(c),bpl);return m(f(c),bpm)}});h(ayc,function(a,b,c){var +d=m(m(KB,a),b);return n(z(bpn),d,c)});var +ayd=[0,Xw,aya,KA,ayb,KB,ayc],Xx=function +e(a,b,c,d){return e.fun(a,b,c,d)},aye=function +d(a,b,c){return d.fun(a,b,c)},KC=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayf=function +d(a,b,c){return d.fun(a,b,c)};h(Xx,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bpo);m(m(e,c),g);m(f(c),bpp);function +h(a){return m(b,a)}m(l(KC,function(a){return m(e,a)},h,c),a);return m(f(c),bpq)});h(aye,function(a,b,c){var +d=m(m(Xx,a),b);return n(z(bpr),d,c)});h(KC,function(e,b,c,d){m(f(c),bps);n(f(c),bpu,bpt);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[19],j,h,c),g);m(f(c),bpv);m(f(c),bpw);n(f(c),bpy,bpx);var +a=d[2];if(a){var +k=a[1];i(c,bpz);var +o=function(a,b){return i(a,bpA)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bpB)}else +i(c,bpC);m(f(c),bpD);return m(f(c),bpE)});h(ayf,function(a,b,c){var +d=m(m(KC,a),b);return n(z(bpF),d,c)});var +ayg=[0,Xx,aye,KC,ayf],KD=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayh=function +d(a,b,c){return d.fun(a,b,c)},Xy=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayi=function +d(a,b,c){return d.fun(a,b,c)};h(KD,function(e,b,c,d){m(f(c),bpG);n(f(c),bpI,bpH);var +a=d[1];if(a){var +j=a[1];i(c,bpJ);var +k=function(a){return m(e,a)},o=function(a){return m(e,a)};m(l(gW[1],o,k,c),j);i(c,bpK)}else +i(c,bpL);m(f(c),bpM);m(f(c),bpN);n(f(c),bpP,bpO);var +p=d[2];function +q(a){return m(b,a)}function +r(a){return m(e,a)}m(l(fu[19],r,q,c),p);m(f(c),bpQ);m(f(c),bpR);n(f(c),bpT,bpS);var +s=d[3];function +t(a){return m(b,a)}function +u(a){return m(e,a)}m(l(fu[19],u,t,c),s);m(f(c),bpU);m(f(c),bpV);n(f(c),bpX,bpW);var +v=d[4];m(m(f(c),bpY),v);m(f(c),bpZ);m(f(c),bp0);n(f(c),bp2,bp1);var +g=d[5];if(g){var +w=g[1];i(c,bp3);var +x=function(a){return m(e,a)};m(n(vT[1],x,c),w);i(c,bp4)}else +i(c,bp5);m(f(c),bp6);m(f(c),bp7);n(f(c),bp9,bp8);var +h=d[6];if(h){var +y=h[1];i(c,bp_);var +z=function(a,b){return i(a,bp$)},A=function(a){return m(e,a)};m(l(am[1],A,z,c),y);i(c,bqa)}else +i(c,bqb);m(f(c),bqc);return m(f(c),bqd)});h(ayh,function(a,b,c){var +d=m(m(KD,a),b);return n(z(bqe),d,c)});h(Xy,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bqf);m(m(e,c),g);m(f(c),bqg);function +h(a){return m(b,a)}m(l(KD,function(a){return m(e,a)},h,c),a);return m(f(c),bqh)});h(ayi,function(a,b,c){var +d=m(m(Xy,a),b);return n(z(bqi),d,c)});var +ayj=[0,KD,ayh,Xy,ayi],Xz=function(a,b){switch(b){case +0:return i(a,bqk);case +1:return i(a,bql);case +2:return i(a,bqm);default:return i(a,bqn)}},KE=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayk=function +d(a,b,c){return d.fun(a,b,c)},XA=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayl=function +d(a,b,c){return d.fun(a,b,c)},bqj=function(a){return n(z(bqo),Xz,a)};h(KE,function(e,b,c,d){m(f(c),bqp);n(f(c),bqr,bqq);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fu[31][3],k,j,c),h);m(f(c),bqs);m(f(c),bqt);n(f(c),bqv,bqu);var +o=d[2];function +p(a){return m(b,a)}function +q(a){return m(e,a)}m(l(fu[19],q,p,c),o);m(f(c),bqw);m(f(c),bqx);n(f(c),bqz,bqy);var +r=d[3];function +s(a){return m(b,a)}function +t(a){return m(e,a)}m(l(fu[19],t,s,c),r);m(f(c),bqA);m(f(c),bqB);n(f(c),bqD,bqC);var +a=d[4];if(a){var +u=a[1];i(c,bqE);var +v=function(a){return m(e,a)};m(n(vT[1],v,c),u);i(c,bqF)}else +i(c,bqG);m(f(c),bqH);m(f(c),bqI);n(f(c),bqK,bqJ);Xz(c,d[5]);m(f(c),bqL);m(f(c),bqM);n(f(c),bqO,bqN);var +g=d[6];if(g){var +w=g[1];i(c,bqP);var +x=function(a,b){return i(a,bqQ)},y=function(a){return m(e,a)};m(l(am[1],y,x,c),w);i(c,bqR)}else +i(c,bqS);m(f(c),bqT);return m(f(c),bqU)});h(ayk,function(a,b,c){var +d=m(m(KE,a),b);return n(z(bqV),d,c)});h(XA,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bqW);m(m(e,c),g);m(f(c),bqX);function +h(a){return m(b,a)}m(l(KE,function(a){return m(e,a)},h,c),a);return m(f(c),bqY)});h(ayl,function(a,b,c){var +d=m(m(XA,a),b);return n(z(bqZ),d,c)});var +aym=[0,Xz,bqj,KE,ayk,XA,ayl],XB=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayn=function +d(a,b,c){return d.fun(a,b,c)},KF=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayo=function +d(a,b,c){return d.fun(a,b,c)};h(XB,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bq0);m(m(e,c),g);m(f(c),bq1);function +h(a){return m(b,a)}m(l(KF,function(a){return m(e,a)},h,c),a);return m(f(c),bq2)});h(ayn,function(a,b,c){var +d=m(m(XB,a),b);return n(z(bq3),d,c)});h(KF,function(e,b,c,d){m(f(c),bq4);n(f(c),bq6,bq5);var +a=d[1],h=a[2],j=a[1];m(f(c),bq7);m(m(e,c),j);m(f(c),bq8);function +k(a){return m(b,a)}function +o(a){return m(e,a)}m(l(ER[5],o,k,c),h);m(f(c),bq9);m(f(c),bq_);m(f(c),bq$);n(f(c),brb,bra);var +p=d[2];m(m(f(c),brc),p);m(f(c),brd);m(f(c),bre);n(f(c),brg,brf);var +g=d[3];if(g){var +q=g[1];i(c,brh);var +r=function(a,b){return i(a,bri)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,brj)}else +i(c,brk);m(f(c),brl);return m(f(c),brm)});h(ayo,function(a,b,c){var +d=m(m(KF,a),b);return n(z(brn),d,c)});var +ayp=[0,XB,ayn,KF,ayo],XC=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayq=function +d(a,b,c){return d.fun(a,b,c)},KG=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayr=function +d(a,b,c){return d.fun(a,b,c)};h(XC,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bro);m(m(e,c),g);m(f(c),brp);function +h(a){return m(b,a)}m(l(KG,function(a){return m(e,a)},h,c),a);return m(f(c),brq)});h(ayq,function(a,b,c){var +d=m(m(XC,a),b);return n(z(brr),d,c)});h(KG,function(e,b,c,d){m(f(c),brs);n(f(c),bru,brt);var +g=d[1];function +h(a){return m(e,a)}function +j(a){return m(e,a)}m(l(gW[1],j,h,c),g);m(f(c),brv);m(f(c),brw);n(f(c),bry,brx);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(fu[19],p,o,c),k);m(f(c),brz);m(f(c),brA);n(f(c),brC,brB);var +q=d[3];m(m(f(c),brD),q);m(f(c),brE);m(f(c),brF);n(f(c),brH,brG);var +r=d[4];m(m(f(c),brI),r);m(f(c),brJ);m(f(c),brK);n(f(c),brM,brL);var +s=d[5];m(m(f(c),brN),s);m(f(c),brO);m(f(c),brP);n(f(c),brR,brQ);var +a=d[6];if(a){var +t=a[1];i(c,brS);var +u=function(a,b){return i(a,brT)},v=function(a){return m(e,a)};m(l(am[1],v,u,c),t);i(c,brU)}else +i(c,brV);m(f(c),brW);return m(f(c),brX)});h(ayr,function(a,b,c){var +d=m(m(KG,a),b);return n(z(brY),d,c)});var +ays=[0,XC,ayq,KG,ayr],XD=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayt=function +d(a,b,c){return d.fun(a,b,c)},KH=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayu=function +d(a,b,c){return d.fun(a,b,c)};h(XD,function(e,g,c,d){m(f(c),brZ);n(f(c),br1,br0);var +b=d[1];m(m(f(c),br2),b);m(f(c),br3);m(f(c),br4);n(f(c),br6,br5);var +h=d[2];m(m(f(c),br7),h);m(f(c),br8);m(f(c),br9);n(f(c),br$,br_);var +j=d[3];m(f(c),bsa);var +k=0;M(function(a,b){if(a)m(f(c),bsb);function +d(a){return m(g,a)}m(l(KH,function(a){return m(e,a)},d,c),b);return 1},k,j);m(f(c),bsc);m(f(c),bsd);m(f(c),bse);n(f(c),bsg,bsf);var +a=d[4];if(a){var +o=a[1];i(c,bsh);var +p=function(c,b){m(f(c),bsi);var +a=0;M(function(a,b){if(a)m(f(c),bsj);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bsk)},q=function(a){return m(e,a)};m(l(am[1],q,p,c),o);i(c,bsl)}else +i(c,bsm);m(f(c),bsn);return m(f(c),bso)});h(ayt,function(a,b,c){var +d=m(m(XD,a),b);return n(z(bsp),d,c)});h(KH,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),bsq);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(ayd[1],h,g,c),a);return m(f(c),bsr);case +1:var +i=d[1];m(f(c),bss);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(ayg[1],k,j,c),i);return m(f(c),bst);case +2:var +n=d[1];m(f(c),bsu);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(ayj[3],p,o,c),n);return m(f(c),bsv);case +3:var +q=d[1];m(f(c),bsw);var +r=function(a){return m(b,a)},s=function(a){return m(e,a)};m(l(ayp[1],s,r,c),q);return m(f(c),bsx);case +4:var +t=d[1];m(f(c),bsy);var +u=function(a){return m(b,a)},v=function(a){return m(e,a)};m(l(ays[1],v,u,c),t);return m(f(c),bsz);default:var +w=d[1];m(f(c),bsA);var +x=function(a){return m(b,a)},y=function(a){return m(e,a)};m(l(aym[5],y,x,c),w);return m(f(c),bsB)}});h(ayu,function(a,b,c){var +d=m(m(KH,a),b);return n(z(bsC),d,c)});var +XE=[0,ayd,ayg,ayj,aym,ayp,ays,XD,ayt,KH,ayu],XF=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayv=function +d(a,b,c){return d.fun(a,b,c)};h(XF,function(e,g,c,d){m(f(c),bsD);n(f(c),bsF,bsE);var +a=d[1],h=a[2],j=a[1];m(f(c),bsG);m(m(e,c),j);m(f(c),bsH);function +k(a){return m(g,a)}function +o(a){return m(e,a)}m(l(XE[7],o,k,c),h);m(f(c),bsI);m(f(c),bsJ);m(f(c),bsK);n(f(c),bsM,bsL);var +p=d[2];m(f(c),bsN);var +q=0;M(function(a,b){if(a)m(f(c),bsO);var +d=b[2],h=b[1];m(f(c),bsP);m(m(e,c),h);m(f(c),bsQ);function +i(a){return m(g,a)}function +j(a){return m(e,a)}m(l(Xs[2],j,i,c),d);m(f(c),bsR);return 1},q,p);m(f(c),bsS);m(f(c),bsT);m(f(c),bsU);n(f(c),bsW,bsV);var +b=d[3];if(b){var +r=b[1];i(c,bsX);var +s=function(a,b){return i(a,bsY)},t=function(a){return m(e,a)};m(l(am[1],t,s,c),r);i(c,bsZ)}else +i(c,bs0);m(f(c),bs1);return m(f(c),bs2)});h(ayv,function(a,b,c){var +d=m(m(XF,a),b);return n(z(bs3),d,c)});var +ayw=[0,XF,ayv],XG=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayx=function +d(a,b,c){return d.fun(a,b,c)};h(XG,function(e,b,c,d){m(f(c),bs4);n(f(c),bs6,bs5);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[19],j,h,c),g);m(f(c),bs7);m(f(c),bs8);n(f(c),bs_,bs9);var +a=d[2];if(a){var +k=a[1];i(c,bs$);var +o=function(a,b){return i(a,bta)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,btb)}else +i(c,btc);m(f(c),btd);return m(f(c),bte)});h(ayx,function(a,b,c){var +d=m(m(XG,a),b);return n(z(btf),d,c)});var +ayy=[0,XG,ayx],KI=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayz=function +d(a,b,c){return d.fun(a,b,c)},KJ=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayA=function +d(a,b,c){return d.fun(a,b,c)},KK=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayB=function +d(a,b,c){return d.fun(a,b,c)};h(KI,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),btg);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(gW[1],h,g,c),a);return m(f(c),bth)}var +i=d[1];m(f(c),bti);function +j(a){return m(b,a)}m(l(KK,function(a){return m(e,a)},j,c),i);return m(f(c),btj)});h(ayz,function(a,b,c){var +d=m(m(KI,a),b);return n(z(btk),d,c)});h(KJ,function(e,b,c,d){m(f(c),btl);n(f(c),btn,btm);var +a=d[1];function +g(a){return m(b,a)}m(l(KI,function(a){return m(e,a)},g,c),a);m(f(c),bto);m(f(c),btp);n(f(c),btr,btq);var +h=d[2];function +i(a){return m(b,a)}function +j(a){return m(e,a)}m(l(gW[1],j,i,c),h);m(f(c),bts);return m(f(c),btt)});h(ayA,function(a,b,c){var +d=m(m(KJ,a),b);return n(z(btu),d,c)});h(KK,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),btv);m(m(b,c),g);m(f(c),btw);function +h(a){return m(b,a)}m(l(KJ,function(a){return m(e,a)},h,c),a);return m(f(c),btx)});h(ayB,function(a,b,c){var +d=m(m(KK,a),b);return n(z(bty),d,c)});var +ayC=[0,KI,ayz,KJ,ayA,KK,ayB],XH=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayD=function +d(a,b,c){return d.fun(a,b,c)};h(XH,function(e,b,c,d){m(f(c),btz);n(f(c),btB,btA);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(ayC[1],k,j,c),h);m(f(c),btC);m(f(c),btD);n(f(c),btF,btE);var +a=d[2];if(a){var +o=a[1];i(c,btG);var +p=function(a){return m(b,a)},q=function(a){return m(e,a)};m(l(fu[33][1],q,p,c),o);i(c,btH)}else +i(c,btI);m(f(c),btJ);m(f(c),btK);n(f(c),btM,btL);var +g=d[3];if(g){var +r=g[1];i(c,btN);var +s=function(a,b){return i(a,btO)},t=function(a){return m(e,a)};m(l(am[1],t,s,c),r);i(c,btP)}else +i(c,btQ);m(f(c),btR);return m(f(c),btS)});h(ayD,function(a,b,c){var +d=m(m(XH,a),b);return n(z(btT),d,c)});var +ayE=[0,ayC,XH,ayD],XI=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayF=function +d(a,b,c){return d.fun(a,b,c)};h(XI,function(e,b,c,d){m(f(c),btU);n(f(c),btW,btV);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[19],j,h,c),g);m(f(c),btX);m(f(c),btY);n(f(c),bt0,btZ);var +a=d[2];if(a){var +k=a[1];i(c,bt1);var +o=function(a,b){return i(a,bt2)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bt3)}else +i(c,bt4);m(f(c),bt5);return m(f(c),bt6)});h(ayF,function(a,b,c){var +d=m(m(XI,a),b);return n(z(bt7),d,c)});var +ayG=[0,XI,ayF],XJ=function(a,b){switch(b){case +0:return i(a,bt9);case +1:return i(a,bt_);default:return i(a,bt$)}},XK=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayH=function +d(a,b,c){return d.fun(a,b,c)},bt8=function(a){return n(z(bua),XJ,a)};h(XK,function(e,b,c,d){m(f(c),bub);n(f(c),bud,buc);var +g=d[1];m(m(e,c),g);m(f(c),bue);m(f(c),buf);n(f(c),buh,bug);var +h=d[2];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fu[19],k,j,c),h);m(f(c),bui);m(f(c),buj);n(f(c),bul,buk);var +a=d[3];if(a){var +o=a[1];i(c,bum);var +p=function(a,b){return i(a,bun)},q=function(a){return m(e,a)};m(l(am[1],q,p,c),o);i(c,buo)}else +i(c,bup);m(f(c),buq);m(f(c),bur);n(f(c),but,bus);XJ(c,d[4]);m(f(c),buu);return m(f(c),buv)});h(ayH,function(a,b,c){var +d=m(m(XK,a),b);return n(z(buw),d,c)});var +ayI=[0,XJ,bt8,XK,ayH],XL=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayJ=function +d(a,b,c){return d.fun(a,b,c)};h(XL,function(e,b,c,d){m(f(c),bux);n(f(c),buz,buy);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[19],j,h,c),g);m(f(c),buA);m(f(c),buB);n(f(c),buD,buC);var +a=d[2];if(a){var +k=a[1];i(c,buE);var +o=function(a,b){return i(a,buF)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,buG)}else +i(c,buH);m(f(c),buI);return m(f(c),buJ)});h(ayJ,function(a,b,c){var +d=m(m(XL,a),b);return n(z(buK),d,c)});var +ayK=[0,XL,ayJ],XM=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayL=function +d(a,b,c){return d.fun(a,b,c)};h(XM,function(e,b,c,d){m(f(c),buL);n(f(c),buN,buM);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(gW[1],j,h,c),g);m(f(c),buO);m(f(c),buP);n(f(c),buR,buQ);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(fu[19],p,o,c),k);m(f(c),buS);m(f(c),buT);n(f(c),buV,buU);var +a=d[3];if(a){var +q=a[1];i(c,buW);var +r=function(a){return m(e,a)};m(n(vT[1],r,c),q);i(c,buX)}else +i(c,buY);m(f(c),buZ);m(f(c),bu0);n(f(c),bu2,bu1);var +s=d[4];m(m(f(c),bu3),s);m(f(c),bu4);return m(f(c),bu5)});h(ayL,function(a,b,c){var +d=m(m(XM,a),b);return n(z(bu6),d,c)});var +ayM=[0,XM,ayL],XN=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayN=function +d(a,b,c){return d.fun(a,b,c)};h(XN,function(e,b,c,d){m(f(c),bu7);n(f(c),bu9,bu8);var +a=d[1];if(a){var +g=a[1];i(c,bu_);var +h=function(a){return m(b,a)},j=function(a){return m(e,a)};m(l(gW[1],j,h,c),g);i(c,bu$)}else +i(c,bva);m(f(c),bvb);m(f(c),bvc);n(f(c),bve,bvd);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(fu[19],p,o,c),k);m(f(c),bvf);return m(f(c),bvg)});h(ayN,function(a,b,c){var +d=m(m(XN,a),b);return n(z(bvh),d,c)});var +ayO=[0,XN,ayN],KL=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayP=function +d(a,b,c){return d.fun(a,b,c)},KM=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayQ=function +d(a,b,c){return d.fun(a,b,c)},XO=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayR=function +d(a,b,c){return d.fun(a,b,c)};h(KL,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bvi);m(m(e,c),g);m(f(c),bvj);function +h(a){return m(b,a)}m(l(KM,function(a){return m(e,a)},h,c),a);return m(f(c),bvk)});h(ayP,function(a,b,c){var +d=m(m(KL,a),b);return n(z(bvl),d,c)});h(KM,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),bvm);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(fu[19],h,g,c),a);return m(f(c),bvn);case +1:var +i=d[1];m(f(c),bvo);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(ayM[1],k,j,c),i);return m(f(c),bvp);default:var +n=d[1];m(f(c),bvq);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(ayO[1],p,o,c),n);return m(f(c),bvr)}});h(ayQ,function(a,b,c){var +d=m(m(KM,a),b);return n(z(bvs),d,c)});h(XO,function(e,g,c,d){m(f(c),bvt);n(f(c),bvv,bvu);var +b=d[1];m(f(c),bvw);var +h=0;M(function(a,b){if(a)m(f(c),bvx);function +d(a){return m(g,a)}m(l(KL,function(a){return m(e,a)},d,c),b);return 1},h,b);m(f(c),bvy);m(f(c),bvz);m(f(c),bvA);n(f(c),bvC,bvB);var +a=d[2];if(a){var +j=a[1];i(c,bvD);var +k=function(a,b){return i(a,bvE)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,bvF)}else +i(c,bvG);m(f(c),bvH);return m(f(c),bvI)});h(ayR,function(a,b,c){var +d=m(m(XO,a),b);return n(z(bvJ),d,c)});var +ayS=[0,ayM,ayO,KL,ayP,KM,ayQ,XO,ayR],XP=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayT=function +d(a,b,c){return d.fun(a,b,c)};h(XP,function(e,b,c,d){m(f(c),bvK);n(f(c),bvM,bvL);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[19],j,h,c),g);m(f(c),bvN);m(f(c),bvO);n(f(c),bvQ,bvP);var +a=d[2];if(a){var +k=a[1];i(c,bvR);var +o=function(a,b){return i(a,bvS)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bvT)}else +i(c,bvU);m(f(c),bvV);return m(f(c),bvW)});h(ayT,function(a,b,c){var +d=m(m(XP,a),b);return n(z(bvX),d,c)});var +ayU=[0,XP,ayT],XQ=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayV=function +d(a,b,c){return d.fun(a,b,c)};h(XQ,function(e,g,c,d){m(f(c),bvY);n(f(c),bv0,bvZ);var +a=d[1],h=a[3],j=a[2],k=a[1];m(f(c),bv1);function +o(a){return m(g,a)}function +p(a){return m(e,a)}m(l(fu[19],p,o,c),k);m(f(c),bv2);function +q(a){return m(g,a)}function +r(a){return m(e,a)}m(l(fu[19],r,q,c),j);m(f(c),bv3);m(f(c),bv4);var +s=0;M(function(a,b){if(a)m(f(c),bv5);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(fu[19],h,d,c),b);return 1},s,h);m(f(c),bv6);m(f(c),bv7);m(f(c),bv8);m(f(c),bv9);n(f(c),bv$,bv_);var +b=d[2];if(b){var +t=b[1];i(c,bwa);var +u=function(a,b){return i(a,bwb)},v=function(a){return m(e,a)};m(l(am[1],v,u,c),t);i(c,bwc)}else +i(c,bwd);m(f(c),bwe);return m(f(c),bwf)});h(ayV,function(a,b,c){var +d=m(m(XQ,a),b);return n(z(bwg),d,c)});var +ayW=[0,XQ,ayV],XR=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayX=function +d(a,b,c){return d.fun(a,b,c)};h(XR,function(e,g,c,d){m(f(c),bwh);n(f(c),bwj,bwi);var +a=d[1],h=a[3],j=a[2],k=a[1];m(f(c),bwk);function +o(a){return m(g,a)}function +p(a){return m(e,a)}m(l(fu[19],p,o,c),k);m(f(c),bwl);function +q(a){return m(g,a)}function +r(a){return m(e,a)}m(l(fu[19],r,q,c),j);m(f(c),bwm);m(f(c),bwn);var +s=0;M(function(a,b){if(a)m(f(c),bwo);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(fu[19],h,d,c),b);return 1},s,h);m(f(c),bwp);m(f(c),bwq);m(f(c),bwr);m(f(c),bws);n(f(c),bwu,bwt);var +b=d[2];if(b){var +t=b[1];i(c,bwv);var +u=function(a,b){return i(a,bww)},v=function(a){return m(e,a)};m(l(am[1],v,u,c),t);i(c,bwx)}else +i(c,bwy);m(f(c),bwz);return m(f(c),bwA)});h(ayX,function(a,b,c){var +d=m(m(XR,a),b);return n(z(bwB),d,c)});var +ayY=[0,XR,ayX],KN=function +e(a,b,c,d){return e.fun(a,b,c,d)},ayZ=function +d(a,b,c){return d.fun(a,b,c)},KO=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay0=function +d(a,b,c){return d.fun(a,b,c)},XS=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay1=function +d(a,b,c){return d.fun(a,b,c)},XT=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay2=function +d(a,b,c){return d.fun(a,b,c)},XU=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay3=function +d(a,b,c){return d.fun(a,b,c)},XV=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay4=function +d(a,b,c){return d.fun(a,b,c)};h(KN,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bwC);m(m(b,c),g);m(f(c),bwD);function +h(a){return m(b,a)}m(l(KO,function(a){return m(e,a)},h,c),a);return m(f(c),bwE)});h(ayZ,function(a,b,c){var +d=m(m(KN,a),b);return n(z(bwF),d,c)});h(KO,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),bwG);if(a){var +x=a[1];i(c,bwH);var +y=function(a,b){return i(a,bwI)},z=function(a){return m(e,a)};m(l(am[1],z,y,c),x);i(c,bwJ)}else +i(c,bwK);return m(f(c),bwL);case +1:var +g=d[1];m(f(c),bwM);if(g){var +A=g[1];i(c,bwN);var +B=function(a,b){return i(a,bwO)},C=function(a){return m(e,a)};m(l(am[1],C,B,c),A);i(c,bwP)}else +i(c,bwQ);return m(f(c),bwR);case +2:var +h=d[1];m(f(c),bwS);if(h){var +D=h[1];i(c,bwT);var +E=function(a,b){return i(a,bwU)},F=function(a){return m(e,a)};m(l(am[1],F,E,c),D);i(c,bwV)}else +i(c,bwW);return m(f(c),bwX);case +3:var +j=d[1];m(f(c),bwY);if(j){var +G=j[1];i(c,bwZ);var +H=function(a,b){return i(a,bw0)},I=function(a){return m(e,a)};m(l(am[1],I,H,c),G);i(c,bw1)}else +i(c,bw2);return m(f(c),bw3);case +4:var +k=d[1];m(f(c),bw4);if(k){var +J=k[1];i(c,bw5);var +K=function(a,b){return i(a,bw6)},L=function(a){return m(e,a)};m(l(am[1],L,K,c),J);i(c,bw7)}else +i(c,bw8);return m(f(c),bw9);case +5:var +o=d[1];m(f(c),bw_);if(o){var +M=o[1];i(c,bw$);var +N=function(a,b){return i(a,bxa)},O=function(a){return m(e,a)};m(l(am[1],O,N,c),M);i(c,bxb)}else +i(c,bxc);return m(f(c),bxd);case +6:var +p=d[1];m(f(c),bxe);if(p){var +P=p[1];i(c,bxf);var +Q=function(a,b){return i(a,bxg)},R=function(a){return m(e,a)};m(l(am[1],R,Q,c),P);i(c,bxh)}else +i(c,bxi);return m(f(c),bxj);case +7:var +q=d[1];m(f(c),bxk);if(q){var +S=q[1];i(c,bxl);var +T=function(a,b){return i(a,bxm)},U=function(a){return m(e,a)};m(l(am[1],U,T,c),S);i(c,bxn)}else +i(c,bxo);return m(f(c),bxp);case +8:var +r=d[2],V=d[1];m(f(c),bxq);n(f(c),bxs,bxr);if(Dg<=V)i(c,bxt);else +i(c,bxu);m(f(c),bxv);m(f(c),bxw);n(f(c),bxy,bxx);if(r){var +W=r[1];i(c,bxz);var +X=function(a,b){return i(a,bxA)},Y=function(a){return m(e,a)};m(l(am[1],Y,X,c),W);i(c,bxB)}else +i(c,bxC);m(f(c),bxD);return m(f(c),bxE);case +9:var +s=d[1];m(f(c),bxF);if(s){var +Z=s[1];i(c,bxG);var +_=function(a,b){return i(a,bxH)},$=function(a){return m(e,a)};m(l(am[1],$,_,c),Z);i(c,bxI)}else +i(c,bxJ);return m(f(c),bxK);case +10:var +t=d[1];m(f(c),bxL);if(t){var +aa=t[1];i(c,bxM);var +ab=function(a,b){return i(a,bxN)},ac=function(a){return m(e,a)};m(l(am[1],ac,ab,c),aa);i(c,bxO)}else +i(c,bxP);return m(f(c),bxQ);case +11:var +ad=d[1];m(f(c),bxR);var +ae=function(a){return m(b,a)},af=function(a){return m(e,a)};m(l(ayy[1],af,ae,c),ad);return m(f(c),bxS);case +12:var +ag=d[1];m(f(c),bxT);var +ah=function(a){return m(b,a)},ai=function(a){return m(e,a)};m(l(ER[5],ai,ah,c),ag);return m(f(c),bxU);case +13:var +aj=d[1];m(f(c),bxV);var +ak=function(a){return m(b,a)},al=function(a){return m(e,a)};m(l(ax3[4],al,ak,c),aj);return m(f(c),bxW);case +14:var +an=d[1];m(f(c),bxX);var +ao=function(a){return m(b,a)},ap=function(a){return m(e,a)};m(l(XE[7],ap,ao,c),an);return m(f(c),bxY);case +15:var +aq=d[1];m(f(c),bxZ);var +ar=function(a){return m(b,a)},as=function(a){return m(e,a)};m(l(ayw[1],as,ar,c),aq);return m(f(c),bx0);case +16:var +at=d[1];m(f(c),bx1);var +au=function(a){return m(b,a)},av=function(a){return m(e,a)};m(l(ayU[1],av,au,c),at);return m(f(c),bx2);case +17:var +aw=d[1];m(f(c),bx3);var +ax=function(a){return m(b,a)},ay=function(a){return m(e,a)};m(l(axD[1],ay,ax,c),aw);return m(f(c),bx4);case +18:var +az=d[1];m(f(c),bx5);var +aA=function(a){return m(b,a)},aB=function(a){return m(e,a)};m(l(axF[1],aB,aA,c),az);return m(f(c),bx6);case +19:var +aC=d[1];m(f(c),bx7);var +aD=function(a){return m(b,a)},aE=function(a){return m(e,a)};m(l(Xs[2],aE,aD,c),aC);return m(f(c),bx8);case +20:var +aF=d[1];m(f(c),bx9);var +aG=function(a){return m(b,a)},aH=function(a){return m(e,a)};m(l(Xu[1],aH,aG,c),aF);return m(f(c),bx_);case +21:var +aI=d[1];m(f(c),bx$);var +aJ=function(a){return m(b,a)},aK=function(a){return m(e,a)};m(l(ax$[1],aK,aJ,c),aI);return m(f(c),bya);case +22:var +aL=d[1];m(f(c),byb);var +aM=function(a){return m(b,a)},aN=function(a){return m(e,a)};m(l(ayW[1],aN,aM,c),aL);return m(f(c),byc);case +23:var +aO=d[1];m(f(c),byd);var +aP=function(a){return m(b,a)},aQ=function(a){return m(e,a)};m(l(ayY[1],aQ,aP,c),aO);return m(f(c),bye);case +24:var +aR=d[1];m(f(c),byf);var +aS=function(a){return m(b,a)},aT=function(a){return m(e,a)};m(l(ayE[2],aT,aS,c),aR);return m(f(c),byg);case +25:var +aU=d[1];m(f(c),byh);var +aV=function(a){return m(b,a)},aW=function(a){return m(e,a)};m(l(ayG[1],aW,aV,c),aU);return m(f(c),byi);case +26:var +aX=d[1];m(f(c),byj);var +aY=function(a){return m(b,a)},aZ=function(a){return m(e,a)};m(l(ayI[3],aZ,aY,c),aX);return m(f(c),byk);case +27:var +a0=d[1];m(f(c),byl);var +a1=function(a){return m(b,a)},a2=function(a){return m(e,a)};m(l(ayK[1],a2,a1,c),a0);return m(f(c),bym);case +28:var +a3=d[1];m(f(c),byn);var +a4=function(a){return m(b,a)},a5=function(a){return m(e,a)};m(l(ayS[7],a5,a4,c),a3);return m(f(c),byo);case +29:var +a6=d[1];m(f(c),byp);var +a7=function(a){return m(e,a)};m(n(rg[1],a7,c),a6);return m(f(c),byq);case +30:var +a8=d[1];m(f(c),byr);var +a9=function(a){return m(e,a)};m(n(AV[1],a9,c),a8);return m(f(c),bys);case +31:var +a_=d[1];m(f(c),byt);var +a$=function(a){return m(e,a)};m(n(AW[1],a$,c),a_);return m(f(c),byu);case +32:var +ba=d[1];m(f(c),byv);var +bb=function(a){return m(e,a)};m(n(Kj[1],bb,c),ba);return m(f(c),byw);case +33:var +u=d[1];m(f(c),byx);if(u){var +bc=u[1];i(c,byy);var +bd=function(a,b){return i(a,byz)},be=function(a){return m(e,a)};m(l(am[1],be,bd,c),bc);i(c,byA)}else +i(c,byB);return m(f(c),byC);case +34:var +v=d[1];m(f(c),byD);if(v){var +bf=v[1];i(c,byE);var +bg=function(a,b){return i(a,byF)},bh=function(a){return m(e,a)};m(l(am[1],bh,bg,c),bf);i(c,byG)}else +i(c,byH);return m(f(c),byI);default:var +w=d[1];m(f(c),byJ);if(w){var +bi=w[1];i(c,byK);var +bj=function(a,b){return i(a,byL)},bk=function(a){return m(e,a)};m(l(am[1],bk,bj,c),bi);i(c,byM)}else +i(c,byN);return m(f(c),byO)}});h(ay0,function(a,b,c){var +d=m(m(KO,a),b);return n(z(byP),d,c)});h(XS,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),byQ);m(m(e,c),g);m(f(c),byR);function +h(a){return m(b,a)}m(l(KN,function(a){return m(e,a)},h,c),a);return m(f(c),byS)});h(ay1,function(a,b,c){var +d=m(m(XS,a),b);return n(z(byT),d,c)});h(XT,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),byU);m(m(e,c),g);m(f(c),byV);function +h(a){return m(b,a)}function +i(a){return m(e,a)}m(l(fu[35][1],i,h,c),a);return m(f(c),byW)});h(ay2,function(a,b,c){var +d=m(m(XT,a),b);return n(z(byX),d,c)});h(XU,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),byY);m(m(b,c),a);return m(f(c),byZ)}var +g=d[1];m(f(c),by0);function +h(a){return m(b,a)}function +i(a){return m(e,a)}m(l(fu[23],i,h,c),g);return m(f(c),by1)});h(ay3,function(a,b,c){var +d=m(m(XU,a),b);return n(z(by2),d,c)});h(XV,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),by3);m(m(b,c),a);return m(f(c),by4)}var +g=d[2],h=d[1];m(f(c),by5);m(m(e,c),h);m(f(c),by6);function +i(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[13][3],j,i,c),g);return m(f(c),by7)});h(ay4,function(a,b,c){var +d=m(m(XV,a),b);return n(z(by8),d,c)});var +XW=function(a,b){return b?i(a,by_):i(a,by$)},XX=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay5=function +d(a,b,c){return d.fun(a,b,c)},KP=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay6=function +d(a,b,c){return d.fun(a,b,c)},by9=function(a){return n(z(bza),XW,a)};h(XX,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bzb);m(m(e,c),g);m(f(c),bzc);function +h(a){return m(b,a)}m(l(KP,function(a){return m(e,a)},h,c),a);return m(f(c),bzd)});h(ay5,function(a,b,c){var +d=m(m(XX,a),b);return n(z(bze),d,c)});h(KP,function(e,b,c,d){m(f(c),bzf);n(f(c),bzh,bzg);var +h=d[1];function +j(a){return m(e,a)}function +k(a){return m(e,a)}m(l(gW[1],k,j,c),h);m(f(c),bzi);m(f(c),bzj);n(f(c),bzl,bzk);var +o=d[2];function +p(a){return m(b,a)}function +q(a){return m(e,a)}m(l(fu[27],q,p,c),o);m(f(c),bzm);m(f(c),bzn);n(f(c),bzp,bzo);XW(c,d[3]);m(f(c),bzq);m(f(c),bzr);n(f(c),bzt,bzs);var +a=d[4];if(a){var +r=a[1];i(c,bzu);var +s=function(a){return m(e,a)};m(n(vT[1],s,c),r);i(c,bzv)}else +i(c,bzw);m(f(c),bzx);m(f(c),bzy);n(f(c),bzA,bzz);var +g=d[5];if(g){var +t=g[1];i(c,bzB);var +u=function(a){return m(b,a)},v=function(a){return m(e,a)};m(l(fu[19],v,u,c),t);i(c,bzC)}else +i(c,bzD);m(f(c),bzE);return m(f(c),bzF)});h(ay6,function(a,b,c){var +d=m(m(KP,a),b);return n(z(bzG),d,c)});var +ay7=[0,XW,by9,XX,ay5,KP,ay6],XY=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay8=function +d(a,b,c){return d.fun(a,b,c)},KQ=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay9=function +d(a,b,c){return d.fun(a,b,c)};h(XY,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bzH);m(m(e,c),g);m(f(c),bzI);function +h(a){return m(b,a)}m(l(KQ,function(a){return m(e,a)},h,c),a);return m(f(c),bzJ)});h(ay8,function(a,b,c){var +d=m(m(XY,a),b);return n(z(bzK),d,c)});h(KQ,function(e,g,c,d){m(f(c),bzL);n(f(c),bzN,bzM);var +b=d[1];m(f(c),bzO);var +h=0;M(function(a,b){if(a)m(f(c),bzP);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(ay7[3],h,d,c),b);return 1},h,b);m(f(c),bzQ);m(f(c),bzR);m(f(c),bzS);n(f(c),bzU,bzT);var +a=d[2];if(a){var +j=a[1];i(c,bzV);var +k=function(c,b){m(f(c),bzW);var +a=0;M(function(a,b){if(a)m(f(c),bzX);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bzY)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,bzZ)}else +i(c,bz0);m(f(c),bz1);return m(f(c),bz2)});h(ay9,function(a,b,c){var +d=m(m(KQ,a),b);return n(z(bz3),d,c)});var +XZ=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay_=function +d(a,b,c){return d.fun(a,b,c)},KR=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay$=function +d(a,b,c){return d.fun(a,b,c)},bz4=[0,XY,ay8,KQ,ay9];h(XZ,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bz5);m(m(e,c),g);m(f(c),bz6);function +h(a){return m(b,a)}m(l(KR,function(a){return m(e,a)},h,c),a);return m(f(c),bz7)});h(ay_,function(a,b,c){var +d=m(m(XZ,a),b);return n(z(bz8),d,c)});h(KR,function(e,g,c,d){m(f(c),bz9);n(f(c),bz$,bz_);var +b=d[1];m(f(c),bAa);var +h=0;M(function(a,b){if(a)m(f(c),bAb);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(fu[19],h,d,c),b);return 1},h,b);m(f(c),bAc);m(f(c),bAd);m(f(c),bAe);n(f(c),bAg,bAf);var +a=d[2];if(a){var +j=a[1];i(c,bAh);var +k=function(c,b){m(f(c),bAi);var +a=0;M(function(a,b){if(a)m(f(c),bAj);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bAk)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,bAl)}else +i(c,bAm);m(f(c),bAn);return m(f(c),bAo)});h(ay$,function(a,b,c){var +d=m(m(KR,a),b);return n(z(bAp),d,c)});var +X0=function +e(a,b,c,d){return e.fun(a,b,c,d)},aza=function +d(a,b,c){return d.fun(a,b,c)},KS=function +e(a,b,c,d){return e.fun(a,b,c,d)},azb=function +d(a,b,c){return d.fun(a,b,c)},KT=function +e(a,b,c,d){return e.fun(a,b,c,d)},azc=function +d(a,b,c){return d.fun(a,b,c)},bAq=[0,XZ,ay_,KR,ay$];h(X0,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bAr);m(m(e,c),g);m(f(c),bAs);function +h(a){return m(b,a)}m(l(KS,function(a){return m(e,a)},h,c),a);return m(f(c),bAt)});h(aza,function(a,b,c){var +d=m(m(X0,a),b);return n(z(bAu),d,c)});h(KS,function(e,b,c,d){m(f(c),bAv);n(f(c),bAx,bAw);var +g=d[1];function +h(a){return m(b,a)}m(l(KT,function(a){return m(e,a)},h,c),g);m(f(c),bAy);m(f(c),bAz);n(f(c),bAB,bAA);var +a=d[2];if(a){var +j=a[1];i(c,bAC);var +k=function(a,b){return i(a,bAD)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,bAE)}else +i(c,bAF);m(f(c),bAG);return m(f(c),bAH)});h(azb,function(a,b,c){var +d=m(m(KS,a),b);return n(z(bAI),d,c)});h(KT,function(e,b,c,d){if(!d)return i(c,bAL);var +a=d[1];m(f(c),bAJ);function +g(a){return m(b,a)}function +h(a){return m(e,a)}m(l(fW[31],h,g,c),a);return m(f(c),bAK)});h(azc,function(a,b,c){var +d=m(m(KT,a),b);return n(z(bAM),d,c)});var +X1=function +e(a,b,c,d){return e.fun(a,b,c,d)},azd=function +d(a,b,c){return d.fun(a,b,c)},KU=function +e(a,b,c,d){return e.fun(a,b,c,d)},aze=function +d(a,b,c){return d.fun(a,b,c)},bAN=[0,X0,aza,KS,azb,KT,azc];h(X1,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bAO);m(m(e,c),g);m(f(c),bAP);function +h(a){return m(b,a)}m(l(KU,function(a){return m(e,a)},h,c),a);return m(f(c),bAQ)});h(azd,function(a,b,c){var +d=m(m(X1,a),b);return n(z(bAR),d,c)});h(KU,function(e,b,c,d){m(f(c),bAS);n(f(c),bAU,bAT);var +j=d[1];m(m(f(c),bAV),j);m(f(c),bAW);m(f(c),bAX);n(f(c),bAZ,bAY);var +a=d[2],g=a[2],k=a[1];m(f(c),bA0);function +o(a){return m(e,a)}function +p(a){return m(e,a)}m(l(gW[1],p,o,c),k);m(f(c),bA1);if(g){var +q=g[1];i(c,bA2);var +r=function(a){return m(b,a)},s=function(a){return m(e,a)};m(l(fu[19],s,r,c),q);i(c,bA3)}else +i(c,bA4);m(f(c),bA5);m(f(c),bA6);m(f(c),bA7);n(f(c),bA9,bA8);var +h=d[3];if(h){var +t=h[1];i(c,bA_);var +u=function(c,b){m(f(c),bA$);var +a=0;M(function(a,b){if(a)m(f(c),bBa);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bBb)},v=function(a){return m(e,a)};m(l(am[1],v,u,c),t);i(c,bBc)}else +i(c,bBd);m(f(c),bBe);return m(f(c),bBf)});h(aze,function(a,b,c){var +d=m(m(KU,a),b);return n(z(bBg),d,c)});hj(bBh,fu,[0,axD,axF,ER,ax3,Xs,Xu,ax$,XE,ayw,ayy,ayE,ayG,ayI,ayK,ayS,ayU,ayW,ayY,KN,ayZ,KO,ay0,XS,ay1,XT,ay2,XU,ay3,XV,ay4,ay7,bz4,bAq,bAN,[0,X1,azd,KU,aze]]);var +X2=function +e(a,b,c,d){return e.fun(a,b,c,d)},azf=function +d(a,b,c){return d.fun(a,b,c)};h(X2,function(e,g,c,d){m(f(c),bBi);n(f(c),bBk,bBj);var +b=d[1];m(f(c),bBl);var +h=0;M(function(a,b){if(a)m(f(c),bBm);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(kV[37],h,d,c),b);return 1},h,b);m(f(c),bBn);m(f(c),bBo);m(f(c),bBp);n(f(c),bBr,bBq);var +a=d[2];if(a){var +j=a[1];i(c,bBs);var +k=function(c,b){m(f(c),bBt);var +a=0;M(function(a,b){if(a)m(f(c),bBu);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bBv)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,bBw)}else +i(c,bBx);m(f(c),bBy);return m(f(c),bBz)});h(azf,function(a,b,c){var +d=m(m(X2,a),b);return n(z(bBA),d,c)});var +AX=[0,X2,azf],X3=function +e(a,b,c,d){return e.fun(a,b,c,d)},azg=function +d(a,b,c){return d.fun(a,b,c)},KV=function +e(a,b,c,d){return e.fun(a,b,c,d)},azh=function +d(a,b,c){return d.fun(a,b,c)};h(X3,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bBB);m(m(e,c),g);m(f(c),bBC);function +h(a){return m(b,a)}m(l(KV,function(a){return m(e,a)},h,c),a);return m(f(c),bBD)});h(azg,function(a,b,c){var +d=m(m(X3,a),b);return n(z(bBE),d,c)});h(KV,function(e,b,c,d){m(f(c),bBF);n(f(c),bBH,bBG);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(kV[37],j,h,c),g);m(f(c),bBI);m(f(c),bBJ);n(f(c),bBL,bBK);var +a=d[2];if(a){var +k=a[1];i(c,bBM);var +o=function(a,b){return i(a,bBN)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bBO)}else +i(c,bBP);m(f(c),bBQ);return m(f(c),bBR)});h(azh,function(a,b,c){var +d=m(m(KV,a),b);return n(z(bBS),d,c)});var +azi=[0,X3,azg,KV,azh],X4=function +e(a,b,c,d){return e.fun(a,b,c,d)},azj=function +d(a,b,c){return d.fun(a,b,c)};h(X4,function(e,b,c,d){m(f(c),bBT);n(f(c),bBV,bBU);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fW[31],k,j,c),h);m(f(c),bBW);m(f(c),bBX);n(f(c),bBZ,bBY);var +o=d[2];function +p(a){return m(b,a)}function +q(a){return m(e,a)}m(l(kV[37],q,p,c),o);m(f(c),bB0);m(f(c),bB1);n(f(c),bB3,bB2);var +a=d[3];if(a){var +r=a[1];i(c,bB4);var +s=function(a){return m(b,a)},t=function(a){return m(e,a)};m(l(azi[1],t,s,c),r);i(c,bB5)}else +i(c,bB6);m(f(c),bB7);m(f(c),bB8);n(f(c),bB_,bB9);var +g=d[4];if(g){var +u=g[1];i(c,bB$);var +v=function(a,b){return i(a,bCa)},w=function(a){return m(e,a)};m(l(am[1],w,v,c),u);i(c,bCb)}else +i(c,bCc);m(f(c),bCd);return m(f(c),bCe)});h(azj,function(a,b,c){var +d=m(m(X4,a),b);return n(z(bCf),d,c)});var +azk=[0,azi,X4,azj],X5=function +e(a,b,c,d){return e.fun(a,b,c,d)},azl=function +d(a,b,c){return d.fun(a,b,c)};h(X5,function(e,b,c,d){m(f(c),bCg);n(f(c),bCi,bCh);var +g=d[1];function +h(a){return m(e,a)}function +j(a){return m(e,a)}m(l(gW[1],j,h,c),g);m(f(c),bCj);m(f(c),bCk);n(f(c),bCm,bCl);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(kV[37],p,o,c),k);m(f(c),bCn);m(f(c),bCo);n(f(c),bCq,bCp);var +a=d[3];if(a){var +q=a[1];i(c,bCr);var +r=function(a,b){return i(a,bCs)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,bCt)}else +i(c,bCu);m(f(c),bCv);return m(f(c),bCw)});h(azl,function(a,b,c){var +d=m(m(X5,a),b);return n(z(bCx),d,c)});var +azm=[0,X5,azl],X6=function +d(a,b,c){return d.fun(a,b,c)},azn=function +c(a,b){return c.fun(a,b)};h(X6,function(d,b,c){m(f(b),bCy);n(f(b),bCA,bCz);var +a=c[1];if(a){var +g=a[1];i(b,bCB);var +h=function(a){return m(d,a)},j=function(a){return m(d,a)};m(l(gW[1],j,h,b),g);i(b,bCC)}else +i(b,bCD);m(f(b),bCE);m(f(b),bCF);n(f(b),bCH,bCG);var +e=c[2];if(e){var +k=e[1];i(b,bCI);var +o=function(a,b){return i(a,bCJ)},p=function(a){return m(d,a)};m(l(am[1],p,o,b),k);i(b,bCK)}else +i(b,bCL);m(f(b),bCM);return m(f(b),bCN)});h(azn,function(a,b){var +c=m(X6,a);return n(z(bCO),c,b)});var +azo=[0,X6,azn],X7=function +d(a,b,c){return d.fun(a,b,c)},azp=function +c(a,b){return c.fun(a,b)};h(X7,function(d,b,c){m(f(b),bCP);n(f(b),bCR,bCQ);var +a=c[1];if(a){var +g=a[1];i(b,bCS);var +h=function(a){return m(d,a)},j=function(a){return m(d,a)};m(l(gW[1],j,h,b),g);i(b,bCT)}else +i(b,bCU);m(f(b),bCV);m(f(b),bCW);n(f(b),bCY,bCX);var +e=c[2];if(e){var +k=e[1];i(b,bCZ);var +o=function(a,b){return i(a,bC0)},p=function(a){return m(d,a)};m(l(am[1],p,o,b),k);i(b,bC1)}else +i(b,bC2);m(f(b),bC3);return m(f(b),bC4)});h(azp,function(a,b){var +c=m(X7,a);return n(z(bC5),c,b)});var +azq=[0,X7,azp],X8=function +d(a,b,c){return d.fun(a,b,c)},azr=function +c(a,b){return c.fun(a,b)};h(X8,function(d,b,c){m(f(b),bC6);n(f(b),bC8,bC7);var +a=c[1];if(a){var +e=a[1];i(b,bC9);var +g=function(a,b){return i(a,bC_)},h=function(a){return m(d,a)};m(l(am[1],h,g,b),e);i(b,bC$)}else +i(b,bDa);m(f(b),bDb);return m(f(b),bDc)});h(azr,function(a,b){var +c=m(X8,a);return n(z(bDd),c,b)});var +azs=[0,X8,azr],X9=function +e(a,b,c,d){return e.fun(a,b,c,d)},azt=function +d(a,b,c){return d.fun(a,b,c)};h(X9,function(e,b,c,d){m(f(c),bDe);n(f(c),bDg,bDf);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),bDh);m(f(c),bDi);n(f(c),bDk,bDj);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(kV[37],p,o,c),k);m(f(c),bDl);m(f(c),bDm);n(f(c),bDo,bDn);var +a=d[3];if(a){var +q=a[1];i(c,bDp);var +r=function(a,b){return i(a,bDq)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,bDr)}else +i(c,bDs);m(f(c),bDt);return m(f(c),bDu)});h(azt,function(a,b,c){var +d=m(m(X9,a),b);return n(z(bDv),d,c)});var +azu=[0,X9,azt],X_=function +e(a,b,c,d){return e.fun(a,b,c,d)},azv=function +d(a,b,c){return d.fun(a,b,c)};h(X_,function(e,b,c,d){m(f(c),bDw);n(f(c),bDy,bDx);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(gW[1],k,j,c),h);m(f(c),bDz);m(f(c),bDA);n(f(c),bDC,bDB);var +a=d[2];if(a){var +o=a[1];i(c,bDD);var +p=function(a){return m(b,a)},q=function(a){return m(e,a)};m(l(fu[32][1],q,p,c),o);i(c,bDE)}else +i(c,bDF);m(f(c),bDG);m(f(c),bDH);n(f(c),bDJ,bDI);var +r=d[3];function +s(a){return m(b,a)}function +t(a){return m(e,a)}m(l(fu[19],t,s,c),r);m(f(c),bDK);m(f(c),bDL);n(f(c),bDN,bDM);var +g=d[4];if(g){var +u=g[1];i(c,bDO);var +v=function(a,b){return i(a,bDP)},w=function(a){return m(e,a)};m(l(am[1],w,v,c),u);i(c,bDQ)}else +i(c,bDR);m(f(c),bDS);return m(f(c),bDT)});h(azv,function(a,b,c){var +d=m(m(X_,a),b);return n(z(bDU),d,c)});var +KW=[0,X_,azv],X$=function +e(a,b,c,d){return e.fun(a,b,c,d)},azw=function +d(a,b,c){return d.fun(a,b,c)};h(X$,function(e,b,c,d){m(f(c),bDV);n(f(c),bDX,bDW);var +k=d[1];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(gW[1],p,o,c),k);m(f(c),bDY);m(f(c),bDZ);n(f(c),bD1,bD0);var +a=d[2];if(a){var +q=a[1];i(c,bD2);var +r=function(a){return m(b,a)},s=function(a){return m(e,a)};m(l(fu[32][1],s,r,c),q);i(c,bD3)}else +i(c,bD4);m(f(c),bD5);m(f(c),bD6);n(f(c),bD8,bD7);var +g=d[3];if(g){var +t=g[1];i(c,bD9);var +u=function(a){return m(b,a)},v=function(a){return m(e,a)};m(l(fu[19],v,u,c),t);i(c,bD_)}else +i(c,bD$);m(f(c),bEa);m(f(c),bEb);n(f(c),bEd,bEc);var +h=d[4];if(h){var +w=h[1];i(c,bEe);var +x=function(a){return m(b,a)},y=function(a){return m(e,a)};m(l(fu[19],y,x,c),w);i(c,bEf)}else +i(c,bEg);m(f(c),bEh);m(f(c),bEi);n(f(c),bEk,bEj);var +j=d[5];if(j){var +z=j[1];i(c,bEl);var +A=function(a,b){return i(a,bEm)},B=function(a){return m(e,a)};m(l(am[1],B,A,c),z);i(c,bEn)}else +i(c,bEo);m(f(c),bEp);return m(f(c),bEq)});h(azw,function(a,b,c){var +d=m(m(X$,a),b);return n(z(bEr),d,c)});var +KX=[0,X$,azw],Ya=function +e(a,b,c,d){return e.fun(a,b,c,d)},azx=function +d(a,b,c){return d.fun(a,b,c)},KY=function +e(a,b,c,d){return e.fun(a,b,c,d)},azy=function +d(a,b,c){return d.fun(a,b,c)};h(Ya,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bEs);m(m(e,c),g);m(f(c),bEt);function +h(a){return m(b,a)}m(l(KY,function(a){return m(e,a)},h,c),a);return m(f(c),bEu)});h(azx,function(a,b,c){var +d=m(m(Ya,a),b);return n(z(bEv),d,c)});h(KY,function(e,g,c,d){m(f(c),bEw);n(f(c),bEy,bEx);var +a=d[1];if(a){var +h=a[1];i(c,bEz);var +j=function(a){return m(g,a)},k=function(a){return m(e,a)};m(l(fW[31],k,j,c),h);i(c,bEA)}else +i(c,bEB);m(f(c),bEC);m(f(c),bED);n(f(c),bEF,bEE);var +o=d[2];m(f(c),bEG);var +p=0;M(function(a,b){if(a)m(f(c),bEH);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(kV[37],h,d,c),b);return 1},p,o);m(f(c),bEI);m(f(c),bEJ);m(f(c),bEK);n(f(c),bEM,bEL);var +b=d[3];if(b){var +q=b[1];i(c,bEN);var +r=function(a,b){return i(a,bEO)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,bEP)}else +i(c,bEQ);m(f(c),bER);return m(f(c),bES)});h(azy,function(a,b,c){var +d=m(m(KY,a),b);return n(z(bET),d,c)});var +azz=[0,Ya,azx,KY,azy],Yb=function +e(a,b,c,d){return e.fun(a,b,c,d)},azA=function +d(a,b,c){return d.fun(a,b,c)};h(Yb,function(g,e,c,d){m(f(c),bEU);n(f(c),bEW,bEV);var +b=d[1];function +h(a){return m(e,a)}function +j(a){return m(g,a)}m(l(fW[31],j,h,c),b);m(f(c),bEX);m(f(c),bEY);n(f(c),bE0,bEZ);var +k=d[2];m(f(c),bE1);var +o=0;M(function(a,b){if(a)m(f(c),bE2);function +d(a){return m(e,a)}function +h(a){return m(g,a)}m(l(azz[1],h,d,c),b);return 1},o,k);m(f(c),bE3);m(f(c),bE4);m(f(c),bE5);n(f(c),bE7,bE6);var +a=d[3];if(a){var +p=a[1];i(c,bE8);var +q=function(a,b){return i(a,bE9)},r=function(a){return m(g,a)};m(l(am[1],r,q,c),p);i(c,bE_)}else +i(c,bE$);m(f(c),bFa);m(f(c),bFb);n(f(c),bFd,bFc);var +s=d[4];m(m(e,c),s);m(f(c),bFe);return m(f(c),bFf)});h(azA,function(a,b,c){var +d=m(m(Yb,a),b);return n(z(bFg),d,c)});var +azB=[0,azz,Yb,azA],Yc=function +e(a,b,c,d){return e.fun(a,b,c,d)},azC=function +d(a,b,c){return d.fun(a,b,c)};h(Yc,function(e,b,c,d){m(f(c),bFh);n(f(c),bFj,bFi);var +a=d[1];if(a){var +h=a[1];i(c,bFk);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(fW[31],k,j,c),h);i(c,bFl)}else +i(c,bFm);m(f(c),bFn);m(f(c),bFo);n(f(c),bFq,bFp);var +g=d[2];if(g){var +o=g[1];i(c,bFr);var +p=function(a,b){return i(a,bFs)},q=function(a){return m(e,a)};m(l(am[1],q,p,c),o);i(c,bFt)}else +i(c,bFu);m(f(c),bFv);m(f(c),bFw);n(f(c),bFy,bFx);var +r=d[3];m(m(b,c),r);m(f(c),bFz);return m(f(c),bFA)});h(azC,function(a,b,c){var +d=m(m(Yc,a),b);return n(z(bFB),d,c)});var +azD=[0,Yc,azC],Yd=function +e(a,b,c,d){return e.fun(a,b,c,d)},azE=function +d(a,b,c){return d.fun(a,b,c)};h(Yd,function(e,b,c,d){m(f(c),bFC);n(f(c),bFE,bFD);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),bFF);m(f(c),bFG);n(f(c),bFI,bFH);var +a=d[2];if(a){var +k=a[1];i(c,bFJ);var +o=function(a,b){return i(a,bFK)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bFL)}else +i(c,bFM);m(f(c),bFN);return m(f(c),bFO)});h(azE,function(a,b,c){var +d=m(m(Yd,a),b);return n(z(bFP),d,c)});var +azF=[0,Yd,azE],Ye=function +e(a,b,c,d){return e.fun(a,b,c,d)},azG=function +d(a,b,c){return d.fun(a,b,c)},KZ=function +e(a,b,c,d){return e.fun(a,b,c,d)},azH=function +d(a,b,c){return d.fun(a,b,c)};h(Ye,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bFQ);m(m(e,c),g);m(f(c),bFR);function +h(a){return m(b,a)}m(l(KZ,function(a){return m(e,a)},h,c),a);return m(f(c),bFS)});h(azG,function(a,b,c){var +d=m(m(Ye,a),b);return n(z(bFT),d,c)});h(KZ,function(e,b,c,d){m(f(c),bFU);n(f(c),bFW,bFV);var +a=d[1];if(a){var +j=a[1];i(c,bFX);var +k=function(a){return m(b,a)},o=function(a){return m(e,a)};m(l(qD[5],o,k,c),j);i(c,bFY)}else +i(c,bFZ);m(f(c),bF0);m(f(c),bF1);n(f(c),bF3,bF2);var +g=d[2],p=g[2],q=g[1];m(f(c),bF4);m(m(e,c),q);m(f(c),bF5);function +r(a){return m(b,a)}function +s(a){return m(e,a)}m(l(AX[1],s,r,c),p);m(f(c),bF6);m(f(c),bF7);m(f(c),bF8);n(f(c),bF_,bF9);var +h=d[3];if(h){var +t=h[1];i(c,bF$);var +u=function(a,b){return i(a,bGa)},v=function(a){return m(e,a)};m(l(am[1],v,u,c),t);i(c,bGb)}else +i(c,bGc);m(f(c),bGd);return m(f(c),bGe)});h(azH,function(a,b,c){var +d=m(m(KZ,a),b);return n(z(bGf),d,c)});var +azI=[0,Ye,azG,KZ,azH],Yf=function +e(a,b,c,d){return e.fun(a,b,c,d)},azJ=function +d(a,b,c){return d.fun(a,b,c)};h(Yf,function(e,b,c,d){m(f(c),bGg);n(f(c),bGi,bGh);var +a=d[1],o=a[2],p=a[1];m(f(c),bGj);m(m(e,c),p);m(f(c),bGk);function +q(a){return m(b,a)}function +r(a){return m(e,a)}m(l(AX[1],r,q,c),o);m(f(c),bGl);m(f(c),bGm);m(f(c),bGn);n(f(c),bGp,bGo);var +g=d[2];if(g){var +s=g[1];i(c,bGq);var +t=function(a){return m(b,a)},u=function(a){return m(e,a)};m(l(azI[1],u,t,c),s);i(c,bGr)}else +i(c,bGs);m(f(c),bGt);m(f(c),bGu);n(f(c),bGw,bGv);var +h=d[3];if(h){var +j=h[1];i(c,bGx);var +v=j[2],w=j[1];m(f(c),bGy);m(m(e,c),w);m(f(c),bGz);var +x=function(a){return m(b,a)},y=function(a){return m(e,a)};m(l(AX[1],y,x,c),v);m(f(c),bGA);i(c,bGB)}else +i(c,bGC);m(f(c),bGD);m(f(c),bGE);n(f(c),bGG,bGF);var +k=d[4];if(k){var +z=k[1];i(c,bGH);var +A=function(a,b){return i(a,bGI)},B=function(a){return m(e,a)};m(l(am[1],B,A,c),z);i(c,bGJ)}else +i(c,bGK);m(f(c),bGL);return m(f(c),bGM)});h(azJ,function(a,b,c){var +d=m(m(Yf,a),b);return n(z(bGN),d,c)});var +azK=[0,azI,Yf,azJ],Yg=function +e(a,b,c,d){return e.fun(a,b,c,d)},azL=function +d(a,b,c){return d.fun(a,b,c)},K0=function +e(a,b,c,d){return e.fun(a,b,c,d)},azM=function +d(a,b,c){return d.fun(a,b,c)};h(Yg,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bGO);m(m(e,c),g);m(f(c),bGP);function +h(a){return m(b,a)}m(l(K0,function(a){return m(e,a)},h,c),a);return m(f(c),bGQ)});h(azL,function(a,b,c){var +d=m(m(Yg,a),b);return n(z(bGR),d,c)});h(K0,function(e,b,c,d){m(f(c),bGS);n(f(c),bGU,bGT);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(qD[5],j,h,c),g);m(f(c),bGV);m(f(c),bGW);n(f(c),bGY,bGX);var +a=d[2];if(a){var +k=a[1];i(c,bGZ);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(fW[31],p,o,c),k);i(c,bG0)}else +i(c,bG1);m(f(c),bG2);return m(f(c),bG3)});h(azM,function(a,b,c){var +d=m(m(K0,a),b);return n(z(bG4),d,c)});var +azN=[0,Yg,azL,K0,azM],Yh=function +e(a,b,c,d){return e.fun(a,b,c,d)},azO=function +d(a,b,c){return d.fun(a,b,c)};h(Yh,function(e,g,c,d){m(f(c),bG5);n(f(c),bG7,bG6);var +b=d[1];m(f(c),bG8);var +h=0;M(function(a,b){if(a)m(f(c),bG9);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(azN[1],h,d,c),b);return 1},h,b);m(f(c),bG_);m(f(c),bG$);m(f(c),bHa);n(f(c),bHc,bHb);var +j=d[2];m(m(W3[1],c),j);m(f(c),bHd);m(f(c),bHe);n(f(c),bHg,bHf);var +a=d[3];if(a){var +k=a[1];i(c,bHh);var +o=function(a,b){return i(a,bHi)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bHj)}else +i(c,bHk);m(f(c),bHl);return m(f(c),bHm)});h(azO,function(a,b,c){var +d=m(m(Yh,a),b);return n(z(bHn),d,c)});var +ES=[0,azN,Yh,azO],Yi=function +e(a,b,c,d){return e.fun(a,b,c,d)},azP=function +d(a,b,c){return d.fun(a,b,c)};h(Yi,function(e,b,c,d){m(f(c),bHo);n(f(c),bHq,bHp);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),bHr);m(f(c),bHs);n(f(c),bHu,bHt);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(kV[37],p,o,c),k);m(f(c),bHv);m(f(c),bHw);n(f(c),bHy,bHx);var +a=d[3];if(a){var +q=a[1];i(c,bHz);var +r=function(a,b){return i(a,bHA)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,bHB)}else +i(c,bHC);m(f(c),bHD);return m(f(c),bHE)});h(azP,function(a,b,c){var +d=m(m(Yi,a),b);return n(z(bHF),d,c)});var +azQ=[0,Yi,azP],Yj=function +e(a,b,c,d){return e.fun(a,b,c,d)},azR=function +d(a,b,c){return d.fun(a,b,c)};h(Yj,function(e,b,c,d){m(f(c),bHG);n(f(c),bHI,bHH);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(kV[37],j,h,c),g);m(f(c),bHJ);m(f(c),bHK);n(f(c),bHM,bHL);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(fW[31],p,o,c),k);m(f(c),bHN);m(f(c),bHO);n(f(c),bHQ,bHP);var +a=d[3];if(a){var +q=a[1];i(c,bHR);var +r=function(a,b){return i(a,bHS)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,bHT)}else +i(c,bHU);m(f(c),bHV);return m(f(c),bHW)});h(azR,function(a,b,c){var +d=m(m(Yj,a),b);return n(z(bHX),d,c)});var +azS=[0,Yj,azR],Yk=function +e(a,b,c,d){return e.fun(a,b,c,d)},azT=function +d(a,b,c){return d.fun(a,b,c)},K1=function +e(a,b,c,d){return e.fun(a,b,c,d)},azU=function +d(a,b,c){return d.fun(a,b,c)};h(Yk,function(e,b,c,d){m(f(c),bHY);n(f(c),bH0,bHZ);var +a=d[1];if(a){var +k=a[1];i(c,bH1);var +o=function(a){return m(b,a)};m(l(K1,function(a){return m(e,a)},o,c),k);i(c,bH2)}else +i(c,bH3);m(f(c),bH4);m(f(c),bH5);n(f(c),bH7,bH6);var +g=d[2];if(g){var +p=g[1];i(c,bH8);var +q=function(a){return m(b,a)},r=function(a){return m(e,a)};m(l(fW[31],r,q,c),p);i(c,bH9)}else +i(c,bH_);m(f(c),bH$);m(f(c),bIa);n(f(c),bIc,bIb);var +h=d[3];if(h){var +s=h[1];i(c,bId);var +t=function(a){return m(b,a)},u=function(a){return m(e,a)};m(l(fW[31],u,t,c),s);i(c,bIe)}else +i(c,bIf);m(f(c),bIg);m(f(c),bIh);n(f(c),bIj,bIi);var +v=d[4];function +w(a){return m(b,a)}function +x(a){return m(e,a)}m(l(kV[37],x,w,c),v);m(f(c),bIk);m(f(c),bIl);n(f(c),bIn,bIm);var +j=d[5];if(j){var +y=j[1];i(c,bIo);var +z=function(a,b){return i(a,bIp)},A=function(a){return m(e,a)};m(l(am[1],A,z,c),y);i(c,bIq)}else +i(c,bIr);m(f(c),bIs);return m(f(c),bIt)});h(azT,function(a,b,c){var +d=m(m(Yk,a),b);return n(z(bIu),d,c)});h(K1,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),bIv);var +g=a[2],h=a[1];m(f(c),bIw);m(m(e,c),h);m(f(c),bIx);var +i=function(a){return m(b,a)},j=function(a){return m(e,a)};m(l(ES[2],j,i,c),g);m(f(c),bIy);return m(f(c),bIz)}var +k=d[1];m(f(c),bIA);function +n(a){return m(b,a)}function +o(a){return m(e,a)}m(l(fW[31],o,n,c),k);return m(f(c),bIB)});h(azU,function(a,b,c){var +d=m(m(K1,a),b);return n(z(bIC),d,c)});var +azV=[0,Yk,azT,K1,azU],Yl=function +e(a,b,c,d){return e.fun(a,b,c,d)},azW=function +d(a,b,c){return d.fun(a,b,c)},K2=function +e(a,b,c,d){return e.fun(a,b,c,d)},azX=function +d(a,b,c){return d.fun(a,b,c)};h(Yl,function(e,b,c,d){m(f(c),bID);n(f(c),bIF,bIE);var +g=d[1];function +h(a){return m(b,a)}m(l(K2,function(a){return m(e,a)},h,c),g);m(f(c),bIG);m(f(c),bIH);n(f(c),bIJ,bII);var +j=d[2];function +k(a){return m(b,a)}function +o(a){return m(e,a)}m(l(fW[31],o,k,c),j);m(f(c),bIK);m(f(c),bIL);n(f(c),bIN,bIM);var +p=d[3];function +q(a){return m(b,a)}function +r(a){return m(e,a)}m(l(kV[37],r,q,c),p);m(f(c),bIO);m(f(c),bIP);n(f(c),bIR,bIQ);var +s=d[4];m(m(f(c),bIS),s);m(f(c),bIT);m(f(c),bIU);n(f(c),bIW,bIV);var +a=d[5];if(a){var +t=a[1];i(c,bIX);var +u=function(a,b){return i(a,bIY)},v=function(a){return m(e,a)};m(l(am[1],v,u,c),t);i(c,bIZ)}else +i(c,bI0);m(f(c),bI1);return m(f(c),bI2)});h(azW,function(a,b,c){var +d=m(m(Yl,a),b);return n(z(bI3),d,c)});h(K2,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),bI4);var +g=a[2],h=a[1];m(f(c),bI5);m(m(e,c),h);m(f(c),bI6);var +i=function(a){return m(b,a)},j=function(a){return m(e,a)};m(l(ES[2],j,i,c),g);m(f(c),bI7);return m(f(c),bI8)}var +k=d[1];m(f(c),bI9);function +n(a){return m(b,a)}function +o(a){return m(e,a)}m(l(qD[5],o,n,c),k);return m(f(c),bI_)});h(azX,function(a,b,c){var +d=m(m(K2,a),b);return n(z(bI$),d,c)});var +azY=[0,Yl,azW,K2,azX],Ym=function +e(a,b,c,d){return e.fun(a,b,c,d)},azZ=function +d(a,b,c){return d.fun(a,b,c)},K3=function +e(a,b,c,d){return e.fun(a,b,c,d)},az0=function +d(a,b,c){return d.fun(a,b,c)};h(Ym,function(e,b,c,d){m(f(c),bJa);n(f(c),bJc,bJb);var +g=d[1];function +h(a){return m(b,a)}m(l(K3,function(a){return m(e,a)},h,c),g);m(f(c),bJd);m(f(c),bJe);n(f(c),bJg,bJf);var +j=d[2];function +k(a){return m(b,a)}function +o(a){return m(e,a)}m(l(fW[31],o,k,c),j);m(f(c),bJh);m(f(c),bJi);n(f(c),bJk,bJj);var +p=d[3];function +q(a){return m(b,a)}function +r(a){return m(e,a)}m(l(kV[37],r,q,c),p);m(f(c),bJl);m(f(c),bJm);n(f(c),bJo,bJn);var +s=d[4];m(m(f(c),bJp),s);m(f(c),bJq);m(f(c),bJr);n(f(c),bJt,bJs);var +a=d[5];if(a){var +t=a[1];i(c,bJu);var +u=function(a,b){return i(a,bJv)},v=function(a){return m(e,a)};m(l(am[1],v,u,c),t);i(c,bJw)}else +i(c,bJx);m(f(c),bJy);return m(f(c),bJz)});h(azZ,function(a,b,c){var +d=m(m(Ym,a),b);return n(z(bJA),d,c)});h(K3,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),bJB);var +g=a[2],h=a[1];m(f(c),bJC);m(m(e,c),h);m(f(c),bJD);var +i=function(a){return m(b,a)},j=function(a){return m(e,a)};m(l(ES[2],j,i,c),g);m(f(c),bJE);return m(f(c),bJF)}var +k=d[1];m(f(c),bJG);function +n(a){return m(b,a)}function +o(a){return m(e,a)}m(l(qD[5],o,n,c),k);return m(f(c),bJH)});h(az0,function(a,b,c){var +d=m(m(K3,a),b);return n(z(bJI),d,c)});var +az1=[0,Ym,azZ,K3,az0],Yn=function +d(a,b,c){return d.fun(a,b,c)},az2=function +c(a,b){return c.fun(a,b)},K4=function +d(a,b,c){return d.fun(a,b,c)},az3=function +c(a,b){return c.fun(a,b)};h(Yn,function(d,b,c){var +a=c[2],e=c[1];m(f(b),bJJ);m(m(d,b),e);m(f(b),bJK);m(n(K4,function(a){return m(d,a)},b),a);return m(f(b),bJL)});h(az2,function(a,b){var +c=m(Yn,a);return n(z(bJM),c,b)});h(K4,function(d,b,c){m(f(b),bJN);n(f(b),bJP,bJO);var +a=c[1];function +e(a){return m(d,a)}function +g(a){return m(d,a)}m(l(gW[1],g,e,b),a);m(f(b),bJQ);return m(f(b),bJR)});h(az3,function(a,b){var +c=m(K4,a);return n(z(bJS),c,b)});var +Yo=[0,Yn,az2,K4,az3],Yp=function +e(a,b,c,d){return e.fun(a,b,c,d)},az4=function +d(a,b,c){return d.fun(a,b,c)},K5=function +e(a,b,c,d){return e.fun(a,b,c,d)},az5=function +d(a,b,c){return d.fun(a,b,c)};h(Yp,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bJT);m(m(b,c),g);m(f(c),bJU);function +h(a){return m(b,a)}m(l(K5,function(a){return m(e,a)},h,c),a);return m(f(c),bJV)});h(az4,function(a,b,c){var +d=m(m(Yp,a),b);return n(z(bJW),d,c)});h(K5,function(a,b,c,d){m(f(c),bJX);n(f(c),bJZ,bJY);var +g=d[1];function +h(a){return m(b,a)}function +i(a){return m(b,a)}m(l(gW[1],i,h,c),g);m(f(c),bJ0);m(f(c),bJ1);n(f(c),bJ3,bJ2);var +e=d[2],j=e[2],k=e[1];m(f(c),bJ4);m(m(b,c),k);m(f(c),bJ5);m(m(a,c),j);m(f(c),bJ6);m(f(c),bJ7);return m(f(c),bJ8)});h(az5,function(a,b,c){var +d=m(m(K5,a),b);return n(z(bJ9),d,c)});var +ET=[0,Yp,az4,K5,az5],Yq=function +d(a,b,c){return d.fun(a,b,c)},az6=function +c(a,b){return c.fun(a,b)};h(Yq,function(e,d,c){m(f(d),bJ_);n(f(d),bKa,bJ$);var +b=c[1];m(f(d),bKb);var +g=0;M(function(a,b){if(a)m(f(d),bKc);function +c(a){return m(e,a)}function +g(a){function +b(a){return m(e,a)}return n(Kj[1],b,a)}m(l(ET[1],g,c,d),b);return 1},g,b);m(f(d),bKd);m(f(d),bKe);m(f(d),bKf);n(f(d),bKh,bKg);var +h=c[2];m(m(f(d),bKi),h);m(f(d),bKj);m(f(d),bKk);n(f(d),bKm,bKl);var +j=c[3];m(m(f(d),bKn),j);m(f(d),bKo);m(f(d),bKp);n(f(d),bKr,bKq);var +a=c[4];if(a){var +k=a[1];i(d,bKs);var +o=function(c,b){m(f(c),bKt);var +a=0;M(function(a,b){if(a)m(f(c),bKu);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bKv)},p=function(a){return m(e,a)};m(l(am[1],p,o,d),k);i(d,bKw)}else +i(d,bKx);m(f(d),bKy);return m(f(d),bKz)});h(az6,function(a,b){var +c=m(Yq,a);return n(z(bKA),c,b)});var +az7=[0,Yq,az6],Yr=function +d(a,b,c){return d.fun(a,b,c)},az8=function +c(a,b){return c.fun(a,b)};h(Yr,function(e,d,c){m(f(d),bKB);n(f(d),bKD,bKC);var +b=c[1];m(f(d),bKE);var +g=0;M(function(a,b){if(a)m(f(d),bKF);function +c(a){return m(e,a)}function +g(a){function +b(a){return m(e,a)}return n(AV[1],b,a)}m(l(ET[1],g,c,d),b);return 1},g,b);m(f(d),bKG);m(f(d),bKH);m(f(d),bKI);n(f(d),bKK,bKJ);var +h=c[2];m(m(f(d),bKL),h);m(f(d),bKM);m(f(d),bKN);n(f(d),bKP,bKO);var +j=c[3];m(m(f(d),bKQ),j);m(f(d),bKR);m(f(d),bKS);n(f(d),bKU,bKT);var +a=c[4];if(a){var +k=a[1];i(d,bKV);var +o=function(c,b){m(f(c),bKW);var +a=0;M(function(a,b){if(a)m(f(c),bKX);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bKY)},p=function(a){return m(e,a)};m(l(am[1],p,o,d),k);i(d,bKZ)}else +i(d,bK0);m(f(d),bK1);return m(f(d),bK2)});h(az8,function(a,b){var +c=m(Yr,a);return n(z(bK3),c,b)});var +az9=[0,Yr,az8],Ys=function +d(a,b,c){return d.fun(a,b,c)},az_=function +c(a,b){return c.fun(a,b)},K6=function +e(a,b,c,d){return e.fun(a,b,c,d)},az$=function +d(a,b,c){return d.fun(a,b,c)};h(Ys,function(d,b,c){m(f(b),bK4);n(f(b),bK6,bK5);var +e=c[1];function +g(a){return m(d,a)}m(l(K6,function(a){function +b(a){return m(d,a)}return n(rg[1],b,a)},g,b),e);m(f(b),bK7);m(f(b),bK8);n(f(b),bK_,bK9);var +h=c[2];m(m(f(b),bK$),h);m(f(b),bLa);m(f(b),bLb);n(f(b),bLd,bLc);var +j=c[3];m(m(f(b),bLe),j);m(f(b),bLf);m(f(b),bLg);n(f(b),bLi,bLh);var +a=c[4];if(a){var +k=a[1];i(b,bLj);var +o=function(c,b){m(f(c),bLk);var +a=0;M(function(a,b){if(a)m(f(c),bLl);function +e(a){return m(d,a)}m(n(jm[1],e,c),b);return 1},a,b);return m(f(c),bLm)},p=function(a){return m(d,a)};m(l(am[1],p,o,b),k);i(b,bLn)}else +i(b,bLo);m(f(b),bLp);return m(f(b),bLq)});h(az_,function(a,b){var +c=m(Ys,a);return n(z(bLr),c,b)});h(K6,function(g,e,c,d){if(0===d[0]){var +a=d[1];m(f(c),bLs);m(f(c),bLt);var +b=0;M(function(a,b){if(a)m(f(c),bLu);function +d(a){return m(e,a)}m(n(Yo[1],d,c),b);return 1},b,a);m(f(c),bLv);return m(f(c),bLw)}var +h=d[1];m(f(c),bLx);m(f(c),bLy);var +i=0;M(function(a,b){if(a)m(f(c),bLz);function +d(a){return m(e,a)}function +h(a){return m(g,a)}m(l(ET[1],h,d,c),b);return 1},i,h);m(f(c),bLA);return m(f(c),bLB)});h(az$,function(a,b,c){var +d=m(m(K6,a),b);return n(z(bLC),d,c)});var +aAa=[0,Ys,az_,K6,az$],Yt=function +d(a,b,c){return d.fun(a,b,c)},aAb=function +c(a,b){return c.fun(a,b)};h(Yt,function(e,d,c){m(f(d),bLD);n(f(d),bLF,bLE);var +b=c[1];m(f(d),bLG);var +g=0;M(function(a,b){if(a)m(f(d),bLH);function +c(a){return m(e,a)}m(n(Yo[1],c,d),b);return 1},g,b);m(f(d),bLI);m(f(d),bLJ);m(f(d),bLK);n(f(d),bLM,bLL);var +h=c[2];m(m(f(d),bLN),h);m(f(d),bLO);m(f(d),bLP);n(f(d),bLR,bLQ);var +a=c[3];if(a){var +j=a[1];i(d,bLS);var +k=function(c,b){m(f(c),bLT);var +a=0;M(function(a,b){if(a)m(f(c),bLU);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bLV)},o=function(a){return m(e,a)};m(l(am[1],o,k,d),j);i(d,bLW)}else +i(d,bLX);m(f(d),bLY);return m(f(d),bLZ)});h(aAb,function(a,b){var +c=m(Yt,a);return n(z(bL0),c,b)});var +aAc=[0,Yt,aAb],Yu=function +d(a,b,c){return d.fun(a,b,c)},aAd=function +c(a,b){return c.fun(a,b)};h(Yu,function(e,d,c){m(f(d),bL1);n(f(d),bL3,bL2);var +b=c[1];m(f(d),bL4);var +g=0;M(function(a,b){if(a)m(f(d),bL5);function +c(a){return m(e,a)}function +g(a){function +b(a){return m(e,a)}return n(AW[1],b,a)}m(l(ET[1],g,c,d),b);return 1},g,b);m(f(d),bL6);m(f(d),bL7);m(f(d),bL8);n(f(d),bL_,bL9);var +h=c[2];m(m(f(d),bL$),h);m(f(d),bMa);m(f(d),bMb);n(f(d),bMd,bMc);var +j=c[3];m(m(f(d),bMe),j);m(f(d),bMf);m(f(d),bMg);n(f(d),bMi,bMh);var +a=c[4];if(a){var +k=a[1];i(d,bMj);var +o=function(c,b){m(f(c),bMk);var +a=0;M(function(a,b){if(a)m(f(c),bMl);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bMm)},p=function(a){return m(e,a)};m(l(am[1],p,o,d),k);i(d,bMn)}else +i(d,bMo);m(f(d),bMp);return m(f(d),bMq)});h(aAd,function(a,b){var +c=m(Yu,a);return n(z(bMr),c,b)});var +aAe=[0,Yu,aAd],Yv=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAf=function +d(a,b,c){return d.fun(a,b,c)},K7=function +d(a,b,c){return d.fun(a,b,c)},aAg=function +c(a,b){return c.fun(a,b)},K8=function +d(a,b,c){return d.fun(a,b,c)},aAh=function +c(a,b){return c.fun(a,b)};h(Yv,function(e,b,c,d){m(f(c),bMs);n(f(c),bMu,bMt);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(gW[1],j,h,c),g);m(f(c),bMv);m(f(c),bMw);n(f(c),bMy,bMx);var +k=d[2];m(n(K7,function(a){return m(e,a)},c),k);m(f(c),bMz);m(f(c),bMA);n(f(c),bMC,bMB);var +a=d[3];if(a){var +o=a[1];i(c,bMD);var +p=function(a,b){return i(a,bME)},q=function(a){return m(e,a)};m(l(am[1],q,p,c),o);i(c,bMF)}else +i(c,bMG);m(f(c),bMH);return m(f(c),bMI)});h(aAf,function(a,b,c){var +d=m(m(Yv,a),b);return n(z(bMJ),d,c)});h(K7,function(d,b,c){var +a=c[2],e=c[1];m(f(b),bMK);m(m(d,b),e);m(f(b),bML);m(n(K8,function(a){return m(d,a)},b),a);return m(f(b),bMM)});h(aAg,function(a,b){var +c=m(K7,a);return n(z(bMN),c,b)});h(K8,function(d,b,c){switch(c[0]){case +0:var +a=c[1];m(f(b),bMO);var +e=function(a){return m(d,a)};m(n(az7[1],e,b),a);return m(f(b),bMP);case +1:var +g=c[1];m(f(b),bMQ);var +h=function(a){return m(d,a)};m(n(az9[1],h,b),g);return m(f(b),bMR);case +2:var +i=c[1];m(f(b),bMS);var +j=function(a){return m(d,a)};m(n(aAa[1],j,b),i);return m(f(b),bMT);case +3:var +k=c[1];m(f(b),bMU);var +l=function(a){return m(d,a)};m(n(aAc[1],l,b),k);return m(f(b),bMV);default:var +o=c[1];m(f(b),bMW);var +p=function(a){return m(d,a)};m(n(aAe[1],p,b),o);return m(f(b),bMX)}});h(aAh,function(a,b){var +c=m(K8,a);return n(z(bMY),c,b)});var +K9=[0,Yo,ET,az7,az9,aAa,aAc,aAe,Yv,aAf,K7,aAg,K8,aAh],Yw=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAi=function +d(a,b,c){return d.fun(a,b,c)},K_=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAj=function +d(a,b,c){return d.fun(a,b,c)};h(Yw,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bMZ);m(m(e,c),g);m(f(c),bM0);function +h(a){return m(b,a)}m(l(K_,function(a){return m(e,a)},h,c),a);return m(f(c),bM1)});h(aAi,function(a,b,c){var +d=m(m(Yw,a),b);return n(z(bM2),d,c)});h(K_,function(e,b,c,d){m(f(c),bM3);n(f(c),bM5,bM4);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(qD[5],j,h,c),g);m(f(c),bM6);m(f(c),bM7);n(f(c),bM9,bM8);var +a=d[2];if(a){var +k=a[1];i(c,bM_);var +o=function(a,b){return i(a,bM$)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bNa)}else +i(c,bNb);m(f(c),bNc);return m(f(c),bNd)});h(aAj,function(a,b,c){var +d=m(m(K_,a),b);return n(z(bNe),d,c)});var +aAk=[0,Yw,aAi,K_,aAj],Yx=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAl=function +d(a,b,c){return d.fun(a,b,c)},K$=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAm=function +d(a,b,c){return d.fun(a,b,c)},La=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAn=function +d(a,b,c){return d.fun(a,b,c)};h(Yx,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bNf);m(m(e,c),g);m(f(c),bNg);function +h(a){return m(b,a)}m(l(K$,function(a){return m(e,a)},h,c),a);return m(f(c),bNh)});h(aAl,function(a,b,c){var +d=m(m(Yx,a),b);return n(z(bNi),d,c)});h(K$,function(e,b,c,d){m(f(c),bNj);n(f(c),bNl,bNk);var +g=d[1];function +h(a){return m(b,a)}m(l(La,function(a){return m(e,a)},h,c),g);m(f(c),bNm);m(f(c),bNn);n(f(c),bNp,bNo);var +j=d[2];function +k(a){return m(b,a)}function +o(a){return m(e,a)}m(l(qD[5],o,k,c),j);m(f(c),bNq);m(f(c),bNr);n(f(c),bNt,bNs);var +a=d[3];if(a){var +p=a[1];i(c,bNu);var +q=function(a){return m(b,a)},r=function(a){return m(e,a)};m(l(fW[31],r,q,c),p);i(c,bNv)}else +i(c,bNw);m(f(c),bNx);m(f(c),bNy);n(f(c),bNA,bNz);var +s=d[4];m(m(f(c),bNB),s);m(f(c),bNC);return m(f(c),bND)});h(aAm,function(a,b,c){var +d=m(m(K$,a),b);return n(z(bNE),d,c)});h(La,function(e,b,c,d){if(0===d[0]){var +g=d[1];m(f(c),bNF);var +h=function(a){return m(b,a)},i=function(a){return m(e,a)};m(l(gW[1],i,h,c),g);return m(f(c),bNG)}var +a=d[1];m(f(c),bNH);var +j=a[2],k=a[1];m(f(c),bNI);m(m(e,c),k);m(f(c),bNJ);function +o(a){return m(e,a)}m(n(rg[1],o,c),j);m(f(c),bNK);return m(f(c),bNL)});h(aAn,function(a,b,c){var +d=m(m(La,a),b);return n(z(bNM),d,c)});var +aAo=[0,Yx,aAl,K$,aAm,La,aAn],Yy=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAp=function +d(a,b,c){return d.fun(a,b,c)},Lb=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAq=function +d(a,b,c){return d.fun(a,b,c)};h(Yy,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bNN);m(m(e,c),g);m(f(c),bNO);function +h(a){return m(b,a)}m(l(Lb,function(a){return m(e,a)},h,c),a);return m(f(c),bNP)});h(aAp,function(a,b,c){var +d=m(m(Yy,a),b);return n(z(bNQ),d,c)});h(Lb,function(e,g,c,d){m(f(c),bNR);n(f(c),bNT,bNS);var +h=d[1];m(f(c),bNU);var +j=0;M(function(a,b){if(a)m(f(c),bNV);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(aAo[1],h,d,c),b);return 1},j,h);m(f(c),bNW);m(f(c),bNX);m(f(c),bNY);n(f(c),bN0,bNZ);var +a=d[2];if(a){var +k=a[1];i(c,bN1);var +o=function(a){return m(g,a)},p=function(a){return m(e,a)};m(l(aAk[1],p,o,c),k);i(c,bN2)}else +i(c,bN3);m(f(c),bN4);m(f(c),bN5);n(f(c),bN7,bN6);var +b=d[3];if(b){var +q=b[1];i(c,bN8);var +r=function(c,b){m(f(c),bN9);var +a=0;M(function(a,b){if(a)m(f(c),bN_);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bN$)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,bOa)}else +i(c,bOb);m(f(c),bOc);return m(f(c),bOd)});h(aAq,function(a,b,c){var +d=m(m(Lb,a),b);return n(z(bOe),d,c)});var +aAr=[0,Yy,aAp,Lb,aAq],Yz=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAs=function +d(a,b,c){return d.fun(a,b,c)};h(Yz,function(e,b,c,d){m(f(c),bOf);n(f(c),bOh,bOg);var +j=d[1];function +k(a){return m(b,a)}function +o(a){return m(e,a)}m(l(gW[1],o,k,c),j);m(f(c),bOi);m(f(c),bOj);n(f(c),bOl,bOk);var +a=d[2];if(a){var +p=a[1];i(c,bOm);var +q=function(a){return m(b,a)},r=function(a){return m(e,a)};m(l(fu[32][1],r,q,c),p);i(c,bOn)}else +i(c,bOo);m(f(c),bOp);m(f(c),bOq);n(f(c),bOs,bOr);var +s=d[3];function +t(a){return m(b,a)}function +u(a){return m(e,a)}m(l(aAr[1],u,t,c),s);m(f(c),bOt);m(f(c),bOu);n(f(c),bOw,bOv);var +v=d[4];function +w(a){return m(b,a)}function +x(a){return m(e,a)}m(l(fu[29],x,w,c),v);m(f(c),bOx);m(f(c),bOy);n(f(c),bOA,bOz);var +g=d[5],y=g[2],z=g[1];m(f(c),bOB);m(m(e,c),z);m(f(c),bOC);function +A(a){return m(b,a)}function +B(a){return m(e,a)}m(l(kV[1][1],B,A,c),y);m(f(c),bOD);m(f(c),bOE);m(f(c),bOF);n(f(c),bOH,bOG);var +h=d[6];if(h){var +C=h[1];i(c,bOI);var +D=function(a,b){return i(a,bOJ)},E=function(a){return m(e,a)};m(l(am[1],E,D,c),C);i(c,bOK)}else +i(c,bOL);m(f(c),bOM);m(f(c),bON);n(f(c),bOP,bOO);var +F=d[7];m(m(e,c),F);m(f(c),bOQ);return m(f(c),bOR)});h(aAs,function(a,b,c){var +d=m(m(Yz,a),b);return n(z(bOS),d,c)});var +aAt=[0,aAk,aAo,aAr,Yz,aAs],YA=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAu=function +d(a,b,c){return d.fun(a,b,c)};h(YA,function(e,g,c,d){m(f(c),bOT);n(f(c),bOV,bOU);var +j=d[1];function +k(a){return m(g,a)}function +o(a){return m(e,a)}m(l(gW[1],o,k,c),j);m(f(c),bOW);m(f(c),bOX);n(f(c),bOZ,bOY);var +a=d[2];if(a){var +p=a[1];i(c,bO0);var +q=function(a){return m(g,a)},r=function(a){return m(e,a)};m(l(fu[32][1],r,q,c),p);i(c,bO1)}else +i(c,bO2);m(f(c),bO3);m(f(c),bO4);n(f(c),bO6,bO5);var +s=d[3];m(f(c),bO7);var +t=0;M(function(a,b){if(a)m(f(c),bO8);var +d=b[2],h=b[1];m(f(c),bO9);m(m(e,c),h);m(f(c),bO_);function +i(a){return m(g,a)}function +j(a){return m(e,a)}m(l(fu[5][2],j,i,c),d);m(f(c),bO$);return 1},t,s);m(f(c),bPa);m(f(c),bPb);m(f(c),bPc);n(f(c),bPe,bPd);var +b=d[4],u=b[2],v=b[1];m(f(c),bPf);m(m(e,c),v);m(f(c),bPg);function +w(a){return m(g,a)}function +x(a){return m(e,a)}m(l(fu[8][7],x,w,c),u);m(f(c),bPh);m(f(c),bPi);m(f(c),bPj);n(f(c),bPl,bPk);var +h=d[5];if(h){var +y=h[1];i(c,bPm);var +z=function(a,b){return i(a,bPn)},A=function(a){return m(e,a)};m(l(am[1],A,z,c),y);i(c,bPo)}else +i(c,bPp);m(f(c),bPq);return m(f(c),bPr)});h(aAu,function(a,b,c){var +d=m(m(YA,a),b);return n(z(bPs),d,c)});var +Lc=[0,YA,aAu],YB=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAv=function +d(a,b,c){return d.fun(a,b,c)};h(YB,function(e,g,c,d){m(f(c),bPt);n(f(c),bPv,bPu);var +p=d[1];function +q(a){return m(g,a)}function +r(a){return m(e,a)}m(l(gW[1],r,q,c),p);m(f(c),bPw);m(f(c),bPx);n(f(c),bPz,bPy);var +a=d[2];if(a){var +s=a[1];i(c,bPA);var +t=function(a){return m(g,a)},u=function(a){return m(e,a)};m(l(fu[32][1],u,t,c),s);i(c,bPB)}else +i(c,bPC);m(f(c),bPD);m(f(c),bPE);n(f(c),bPG,bPF);var +b=d[3],v=b[2],w=b[1];m(f(c),bPH);m(m(e,c),w);m(f(c),bPI);function +x(a){return m(g,a)}function +y(a){return m(e,a)}m(l(fu[8][7],y,x,c),v);m(f(c),bPJ);m(f(c),bPK);m(f(c),bPL);n(f(c),bPN,bPM);var +h=d[4];if(h){var +j=h[1];i(c,bPO);var +z=j[2],A=j[1];m(f(c),bPP);m(m(e,c),A);m(f(c),bPQ);var +B=function(a){return m(g,a)},C=function(a){return m(e,a)};m(l(fu[5][2],C,B,c),z);m(f(c),bPR);i(c,bPS)}else +i(c,bPT);m(f(c),bPU);m(f(c),bPV);n(f(c),bPX,bPW);var +D=d[5];m(f(c),bPY);var +E=0;M(function(a,b){if(a)m(f(c),bPZ);var +d=b[2],h=b[1];m(f(c),bP0);m(m(e,c),h);m(f(c),bP1);function +i(a){return m(g,a)}function +j(a){return m(e,a)}m(l(fu[5][2],j,i,c),d);m(f(c),bP2);return 1},E,D);m(f(c),bP3);m(f(c),bP4);m(f(c),bP5);n(f(c),bP7,bP6);var +k=d[6];if(k){var +F=k[1];i(c,bP8);var +G=function(a){return m(g,a)},H=function(a){return m(e,a)};m(l(un[5][2],H,G,c),F);i(c,bP9)}else +i(c,bP_);m(f(c),bP$);m(f(c),bQa);n(f(c),bQc,bQb);var +o=d[7];if(o){var +I=o[1];i(c,bQd);var +J=function(a,b){return i(a,bQe)},K=function(a){return m(e,a)};m(l(am[1],K,J,c),I);i(c,bQf)}else +i(c,bQg);m(f(c),bQh);return m(f(c),bQi)});h(aAv,function(a,b,c){var +d=m(m(YB,a),b);return n(z(bQj),d,c)});var +YC=[0,YB,aAv],YD=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAw=function +d(a,b,c){return d.fun(a,b,c)};h(YD,function(e,b,c,d){m(f(c),bQk);n(f(c),bQm,bQl);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(gW[1],k,j,c),h);m(f(c),bQn);m(f(c),bQo);n(f(c),bQq,bQp);var +a=d[2];if(a){var +o=a[1];i(c,bQr);var +p=function(a){return m(b,a)},q=function(a){return m(e,a)};m(l(fu[32][1],q,p,c),o);i(c,bQs)}else +i(c,bQt);m(f(c),bQu);m(f(c),bQv);n(f(c),bQx,bQw);var +r=d[3];function +s(a){return m(b,a)}function +t(a){return m(e,a)}m(l(fu[4][3][1],t,s,c),r);m(f(c),bQy);m(f(c),bQz);n(f(c),bQB,bQA);var +u=d[4];function +v(a){return m(b,a)}function +w(a){return m(e,a)}m(l(fu[29],w,v,c),u);m(f(c),bQC);m(f(c),bQD);n(f(c),bQF,bQE);var +g=d[5];if(g){var +x=g[1];i(c,bQG);var +y=function(a,b){return i(a,bQH)},z=function(a){return m(e,a)};m(l(am[1],z,y,c),x);i(c,bQI)}else +i(c,bQJ);m(f(c),bQK);return m(f(c),bQL)});h(aAw,function(a,b,c){var +d=m(m(YD,a),b);return n(z(bQM),d,c)});var +YE=[0,YD,aAw],YF=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAx=function +d(a,b,c){return d.fun(a,b,c)};h(YF,function(e,b,c,d){m(f(c),bQN);n(f(c),bQP,bQO);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(gW[1],j,h,c),g);m(f(c),bQQ);m(f(c),bQR);n(f(c),bQT,bQS);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(fu[23],p,o,c),k);m(f(c),bQU);m(f(c),bQV);n(f(c),bQX,bQW);var +q=d[3];m(m(W3[1],c),q);m(f(c),bQY);m(f(c),bQZ);n(f(c),bQ1,bQ0);var +a=d[4];if(a){var +r=a[1];i(c,bQ2);var +s=function(a,b){return i(a,bQ3)},t=function(a){return m(e,a)};m(l(am[1],t,s,c),r);i(c,bQ4)}else +i(c,bQ5);m(f(c),bQ6);return m(f(c),bQ7)});h(aAx,function(a,b,c){var +d=m(m(YF,a),b);return n(z(bQ8),d,c)});var +YG=[0,YF,aAx],YH=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAy=function +d(a,b,c){return d.fun(a,b,c)};h(YH,function(e,b,c,d){m(f(c),bQ9);n(f(c),bQ$,bQ_);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(gW[1],k,j,c),h);m(f(c),bRa);m(f(c),bRb);n(f(c),bRd,bRc);var +o=d[2];function +p(a){return m(b,a)}function +q(a){return m(e,a)}m(l(fu[23],q,p,c),o);m(f(c),bRe);m(f(c),bRf);n(f(c),bRh,bRg);var +a=d[3];if(a){var +r=a[1];i(c,bRi);var +s=function(a){return m(b,a)},t=function(a){return m(e,a)};m(l(fu[34][1],t,s,c),r);i(c,bRj)}else +i(c,bRk);m(f(c),bRl);m(f(c),bRm);n(f(c),bRo,bRn);var +g=d[4];if(g){var +u=g[1];i(c,bRp);var +v=function(a,b){return i(a,bRq)},w=function(a){return m(e,a)};m(l(am[1],w,v,c),u);i(c,bRr)}else +i(c,bRs);m(f(c),bRt);return m(f(c),bRu)});h(aAy,function(a,b,c){var +d=m(m(YH,a),b);return n(z(bRv),d,c)});var +YI=[0,YH,aAy],Ld=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAz=function +d(a,b,c){return d.fun(a,b,c)},Le=function +c(a,b){return c.fun(a,b)},aAA=function +b(a){return b.fun(a)},YJ=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAB=function +d(a,b,c){return d.fun(a,b,c)};h(Ld,function(e,b,c,d){if(0===d[0]){var +g=d[1];m(f(c),bRw);var +h=function(a){return m(b,a)},i=function(a){return m(e,a)};m(l(gW[1],i,h,c),g);return m(f(c),bRx)}var +a=d[1];m(f(c),bRy);var +j=a[2],k=a[1];m(f(c),bRz);m(m(b,c),k);m(f(c),bRA);function +o(a){return m(e,a)}m(n(rg[1],o,c),j);m(f(c),bRB);return m(f(c),bRC)});h(aAz,function(a,b,c){var +d=m(m(Ld,a),b);return n(z(bRD),d,c)});h(Le,function(a,b){return b?i(a,bRE):i(a,bRF)});h(aAA,function(a){return n(z(bRG),Le,a)});h(YJ,function(e,b,c,d){m(f(c),bRH);n(f(c),bRJ,bRI);var +h=d[1];function +j(a){return m(b,a)}m(l(Ld,function(a){return m(e,a)},j,c),h);m(f(c),bRK);m(f(c),bRL);n(f(c),bRN,bRM);var +a=d[2],k=a[2],o=a[1];m(f(c),bRO);m(m(e,c),o);m(f(c),bRP);function +p(a){return m(b,a)}function +q(a){return m(e,a)}m(l(AX[1],q,p,c),k);m(f(c),bRQ);m(f(c),bRR);m(f(c),bRS);n(f(c),bRU,bRT);var +r=d[3];m(m(Le,c),r);m(f(c),bRV);m(f(c),bRW);n(f(c),bRY,bRX);var +g=d[4];if(g){var +s=g[1];i(c,bRZ);var +t=function(a,b){return i(a,bR0)},u=function(a){return m(e,a)};m(l(am[1],u,t,c),s);i(c,bR1)}else +i(c,bR2);m(f(c),bR3);return m(f(c),bR4)});h(aAB,function(a,b,c){var +d=m(m(YJ,a),b);return n(z(bR5),d,c)});var +aAC=[0,Ld,aAz,Le,aAA,YJ,aAB],YK=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAD=function +d(a,b,c){return d.fun(a,b,c)};h(YK,function(e,b,c,d){m(f(c),bR6);n(f(c),bR8,bR7);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[23],j,h,c),g);m(f(c),bR9);m(f(c),bR_);n(f(c),bSa,bR$);var +a=d[2];if(a){var +k=a[1];i(c,bSb);var +o=function(a,b){return i(a,bSc)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bSd)}else +i(c,bSe);m(f(c),bSf);return m(f(c),bSg)});h(aAD,function(a,b,c){var +d=m(m(YK,a),b);return n(z(bSh),d,c)});var +aAE=[0,YK,aAD],YL=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAF=function +d(a,b,c){return d.fun(a,b,c)},Lf=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAG=function +d(a,b,c){return d.fun(a,b,c)};h(YL,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bSi);m(m(e,c),g);m(f(c),bSj);function +h(a){return m(b,a)}m(l(Lf,function(a){return m(e,a)},h,c),a);return m(f(c),bSk)});h(aAF,function(a,b,c){var +d=m(m(YL,a),b);return n(z(bSl),d,c)});h(Lf,function(e,b,c,d){m(f(c),bSm);n(f(c),bSo,bSn);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(gW[1],j,h,c),g);m(f(c),bSp);m(f(c),bSq);n(f(c),bSs,bSr);var +a=d[2];if(a){var +k=a[1];i(c,bSt);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(gW[1],p,o,c),k);i(c,bSu)}else +i(c,bSv);m(f(c),bSw);return m(f(c),bSx)});h(aAG,function(a,b,c){var +d=m(m(Lf,a),b);return n(z(bSy),d,c)});var +aAH=[0,YL,aAF,Lf,aAG],YM=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAI=function +d(a,b,c){return d.fun(a,b,c)};h(YM,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bSz);m(m(e,c),g);m(f(c),bSA);if(a){var +h=a[1];i(c,bSB);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(gW[1],k,j,c),h);i(c,bSC)}else +i(c,bSD);return m(f(c),bSE)});h(aAI,function(a,b,c){var +d=m(m(YM,a),b);return n(z(bSF),d,c)});var +aAJ=[0,YM,aAI],YN=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAK=function +d(a,b,c){return d.fun(a,b,c)},Lg=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAL=function +d(a,b,c){return d.fun(a,b,c)};h(YN,function(e,b,c,d){m(f(c),bSG);n(f(c),bSI,bSH);var +a=d[1];if(a){var +o=a[1];i(c,bSJ);var +p=function(a){return m(b,a)},q=function(a){return m(e,a)};m(l(kV[37],q,p,c),o);i(c,bSK)}else +i(c,bSL);m(f(c),bSM);m(f(c),bSN);n(f(c),bSP,bSO);var +g=d[2];if(g){var +r=g[1];i(c,bSQ);var +s=function(a){return m(b,a)};m(l(Lg,function(a){return m(e,a)},s,c),r);i(c,bSR)}else +i(c,bSS);m(f(c),bST);m(f(c),bSU);n(f(c),bSW,bSV);var +h=d[3];if(h){var +j=h[1];i(c,bSX);var +t=j[2],u=j[1];m(f(c),bSY);m(m(b,c),u);m(f(c),bSZ);var +v=function(a){return m(e,a)};m(n(rg[1],v,c),t);m(f(c),bS0);i(c,bS1)}else +i(c,bS2);m(f(c),bS3);m(f(c),bS4);n(f(c),bS6,bS5);var +w=d[4];m(m(kV[35],c),w);m(f(c),bS7);m(f(c),bS8);n(f(c),bS_,bS9);var +k=d[5];if(k){var +x=k[1];i(c,bS$);var +y=function(a,b){return i(a,bTa)},z=function(a){return m(e,a)};m(l(am[1],z,y,c),x);i(c,bTb)}else +i(c,bTc);m(f(c),bTd);return m(f(c),bTe)});h(aAK,function(a,b,c){var +d=m(m(YN,a),b);return n(z(bTf),d,c)});h(Lg,function(g,e,c,d){if(0===d[0]){var +a=d[1];m(f(c),bTg);m(f(c),bTh);var +b=0;M(function(a,b){if(a)m(f(c),bTi);function +d(a){return m(e,a)}function +h(a){return m(g,a)}m(l(aAH[1],h,d,c),b);return 1},b,a);m(f(c),bTj);return m(f(c),bTk)}var +h=d[1];m(f(c),bTl);function +i(a){return m(e,a)}function +j(a){return m(g,a)}m(l(aAJ[1],j,i,c),h);return m(f(c),bTm)});h(aAL,function(a,b,c){var +d=m(m(Lg,a),b);return n(z(bTn),d,c)});var +YO=[0,aAH,aAJ,YN,aAK,Lg,aAL],YP=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAM=function +d(a,b,c){return d.fun(a,b,c)},Lh=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAN=function +d(a,b,c){return d.fun(a,b,c)};h(YP,function(e,b,c,d){m(f(c),bTo);n(f(c),bTq,bTp);var +g=d[1];m(m(e,c),g);m(f(c),bTr);m(f(c),bTs);n(f(c),bTu,bTt);var +h=d[2];function +j(a){return m(b,a)}m(l(Lh,function(a){return m(e,a)},j,c),h);m(f(c),bTv);m(f(c),bTw);n(f(c),bTy,bTx);var +a=d[3];if(a){var +k=a[1];i(c,bTz);var +o=function(a,b){return i(a,bTA)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bTB)}else +i(c,bTC);m(f(c),bTD);return m(f(c),bTE)});h(aAM,function(a,b,c){var +d=m(m(YP,a),b);return n(z(bTF),d,c)});h(Lh,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),bTG);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(kV[37],h,g,c),a);return m(f(c),bTH)}var +i=d[1];m(f(c),bTI);function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fW[31],k,j,c),i);return m(f(c),bTJ)});h(aAN,function(a,b,c){var +d=m(m(Lh,a),b);return n(z(bTK),d,c)});var +aAO=[0,YP,aAM,Lh,aAN],Li=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAP=function +d(a,b,c){return d.fun(a,b,c)},YQ=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAQ=function +d(a,b,c){return d.fun(a,b,c)};h(Li,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),bTL);var +p=a[2],q=a[1];m(f(c),bTM);m(m(e,c),q);m(f(c),bTN);var +r=function(a){return m(b,a)},s=function(a){return m(e,a)};m(l(YG[1],s,r,c),p);m(f(c),bTO);return m(f(c),bTP);case +1:var +g=d[1];m(f(c),bTQ);var +t=g[2],u=g[1];m(f(c),bTR);m(m(e,c),u);m(f(c),bTS);var +v=function(a){return m(b,a)},w=function(a){return m(e,a)};m(l(YI[1],w,v,c),t);m(f(c),bTT);return m(f(c),bTU);case +2:var +h=d[1];m(f(c),bTV);var +x=h[2],y=h[1];m(f(c),bTW);m(m(e,c),y);m(f(c),bTX);var +z=function(a){return m(b,a)},A=function(a){return m(e,a)};m(l(YC[1],A,z,c),x);m(f(c),bTY);return m(f(c),bTZ);case +3:var +i=d[1];m(f(c),bT0);var +B=i[2],C=i[1];m(f(c),bT1);m(m(e,c),C);m(f(c),bT2);var +D=function(a){return m(b,a)},E=function(a){return m(e,a)};m(l(YE[1],E,D,c),B);m(f(c),bT3);return m(f(c),bT4);case +4:var +F=d[1];m(f(c),bT5);var +G=function(a){return m(b,a)},H=function(a){return m(e,a)};m(l(fu[19],H,G,c),F);return m(f(c),bT6);case +5:var +j=d[1];m(f(c),bT7);var +I=j[2],J=j[1];m(f(c),bT8);m(m(e,c),J);m(f(c),bT9);var +K=function(a){return m(b,a)},L=function(a){return m(e,a)};m(l(KW[1],L,K,c),I);m(f(c),bT_);return m(f(c),bT$);case +6:var +k=d[1];m(f(c),bUa);var +M=k[2],N=k[1];m(f(c),bUb);m(m(e,c),N);m(f(c),bUc);var +O=function(a){return m(b,a)},P=function(a){return m(e,a)};m(l(KX[1],P,O,c),M);m(f(c),bUd);return m(f(c),bUe);case +7:var +n=d[1];m(f(c),bUf);var +Q=n[2],R=n[1];m(f(c),bUg);m(m(e,c),R);m(f(c),bUh);var +S=function(a){return m(b,a)},T=function(a){return m(e,a)};m(l(Lc[1],T,S,c),Q);m(f(c),bUi);return m(f(c),bUj);default:var +o=d[1];m(f(c),bUk);var +U=o[2],V=o[1];m(f(c),bUl);m(m(e,c),V);m(f(c),bUm);var +W=function(a){return m(b,a)},X=function(a){return m(e,a)};m(l(K9[8],X,W,c),U);m(f(c),bUn);return m(f(c),bUo)}});h(aAP,function(a,b,c){var +d=m(m(Li,a),b);return n(z(bUp),d,c)});h(YQ,function(e,b,c,d){m(f(c),bUq);n(f(c),bUs,bUr);var +a=d[1];if(a){var +p=a[1];i(c,bUt);m(m(e,c),p);i(c,bUu)}else +i(c,bUv);m(f(c),bUw);m(f(c),bUx);n(f(c),bUz,bUy);var +g=d[2];if(g){var +q=g[1];i(c,bUA);var +r=function(a){return m(b,a)};m(l(Li,function(a){return m(e,a)},r,c),q);i(c,bUB)}else +i(c,bUC);m(f(c),bUD);m(f(c),bUE);n(f(c),bUG,bUF);var +h=d[3];if(h){var +s=h[1];i(c,bUH);var +t=function(a){return m(b,a)},u=function(a){return m(e,a)};m(l(YO[5],u,t,c),s);i(c,bUI)}else +i(c,bUJ);m(f(c),bUK);m(f(c),bUL);n(f(c),bUN,bUM);var +j=d[4];if(j){var +k=j[1];i(c,bUO);var +v=k[2],w=k[1];m(f(c),bUP);m(m(b,c),w);m(f(c),bUQ);var +x=function(a){return m(e,a)};m(n(rg[1],x,c),v);m(f(c),bUR);i(c,bUS)}else +i(c,bUT);m(f(c),bUU);m(f(c),bUV);n(f(c),bUX,bUW);var +o=d[5];if(o){var +y=o[1];i(c,bUY);var +z=function(a,b){return i(a,bUZ)},A=function(a){return m(e,a)};m(l(am[1],A,z,c),y);i(c,bU0)}else +i(c,bU1);m(f(c),bU2);return m(f(c),bU3)});h(aAQ,function(a,b,c){var +d=m(m(YQ,a),b);return n(z(bU4),d,c)});var +aAR=[0,Li,aAP,YQ,aAQ],EU=function +c(a,b){return c.fun(a,b)},aAS=function +b(a){return b.fun(a)},Lj=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAT=function +d(a,b,c){return d.fun(a,b,c)},Lk=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAU=function +d(a,b,c){return d.fun(a,b,c)},Ll=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAV=function +d(a,b,c){return d.fun(a,b,c)},YR=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAW=function +d(a,b,c){return d.fun(a,b,c)};h(EU,function(a,b){switch(b){case +0:return i(a,bU5);case +1:return i(a,bU6);default:return i(a,bU7)}});h(aAS,function(a){return n(z(bU8),EU,a)});h(Lj,function(e,g,c,d){if(0===d[0]){var +b=d[1];m(f(c),bU9);m(f(c),bU_);var +h=0;M(function(a,b){if(a)m(f(c),bU$);function +d(a){return m(g,a)}m(l(Lk,function(a){return m(e,a)},d,c),b);return 1},h,b);m(f(c),bVa);return m(f(c),bVb)}var +a=d[1];m(f(c),bVc);var +i=a[2],j=a[1];m(f(c),bVd);m(m(e,c),j);m(f(c),bVe);function +k(a){return m(g,a)}function +n(a){return m(e,a)}m(l(gW[1],n,k,c),i);m(f(c),bVf);return m(f(c),bVg)});h(aAT,function(a,b,c){var +d=m(m(Lj,a),b);return n(z(bVh),d,c)});h(Lk,function(e,b,c,d){m(f(c),bVi);n(f(c),bVk,bVj);var +a=d[1];if(a){var +j=a[1];i(c,bVl);m(m(EU,c),j);i(c,bVm)}else +i(c,bVn);m(f(c),bVo);m(f(c),bVp);n(f(c),bVr,bVq);var +g=d[2];if(g){var +k=g[1];i(c,bVs);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(gW[1],p,o,c),k);i(c,bVt)}else +i(c,bVu);m(f(c),bVv);m(f(c),bVw);n(f(c),bVy,bVx);var +q=d[3];function +r(a){return m(b,a)}function +s(a){return m(e,a)}m(l(gW[1],s,r,c),q);m(f(c),bVz);m(f(c),bVA);n(f(c),bVC,bVB);var +h=d[4];if(h){var +t=h[1];i(c,bVD);m(m(e,c),t);i(c,bVE)}else +i(c,bVF);m(f(c),bVG);return m(f(c),bVH)});h(aAU,function(a,b,c){var +d=m(m(Lk,a),b);return n(z(bVI),d,c)});h(Ll,function(e,b,c,d){m(f(c),bVJ);n(f(c),bVL,bVK);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(gW[1],j,h,c),g);m(f(c),bVM);m(f(c),bVN);n(f(c),bVP,bVO);var +a=d[2];if(a){var +k=a[1];i(c,bVQ);m(m(e,c),k);i(c,bVR)}else +i(c,bVS);m(f(c),bVT);return m(f(c),bVU)});h(aAV,function(a,b,c){var +d=m(m(Ll,a),b);return n(z(bVV),d,c)});h(YR,function(e,b,c,d){m(f(c),bVW);n(f(c),bVY,bVX);var +k=d[1];m(m(EU,c),k);m(f(c),bVZ);m(f(c),bV0);n(f(c),bV2,bV1);var +a=d[2],o=a[2],p=a[1];m(f(c),bV3);m(m(b,c),p);m(f(c),bV4);function +q(a){return m(e,a)}m(n(rg[1],q,c),o);m(f(c),bV5);m(f(c),bV6);m(f(c),bV7);n(f(c),bV9,bV8);var +g=d[3];if(g){var +r=g[1];i(c,bV_);var +s=function(a){return m(b,a)};m(l(Ll,function(a){return m(e,a)},s,c),r);i(c,bV$)}else +i(c,bWa);m(f(c),bWb);m(f(c),bWc);n(f(c),bWe,bWd);var +h=d[4];if(h){var +t=h[1];i(c,bWf);var +u=function(a){return m(b,a)};m(l(Lj,function(a){return m(e,a)},u,c),t);i(c,bWg)}else +i(c,bWh);m(f(c),bWi);m(f(c),bWj);n(f(c),bWl,bWk);var +j=d[5];if(j){var +v=j[1];i(c,bWm);var +w=function(a,b){return i(a,bWn)},x=function(a){return m(e,a)};m(l(am[1],x,w,c),v);i(c,bWo)}else +i(c,bWp);m(f(c),bWq);return m(f(c),bWr)});h(aAW,function(a,b,c){var +d=m(m(YR,a),b);return n(z(bWs),d,c)});var +aAX=[0,EU,aAS,Lj,aAT,Lk,aAU,Ll,aAV,YR,aAW],YS=function +e(a,b,c,d){return e.fun(a,b,c,d)},aAY=function +d(a,b,c){return d.fun(a,b,c)};h(YS,function(e,b,c,d){m(f(c),bWt);n(f(c),bWv,bWu);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fW[31],k,j,c),h);m(f(c),bWw);m(f(c),bWx);n(f(c),bWz,bWy);var +a=d[2];if(a){var +o=a[1];i(c,bWA);m(m(f(c),bWB),o);i(c,bWC)}else +i(c,bWD);m(f(c),bWE);m(f(c),bWF);n(f(c),bWH,bWG);var +g=d[3];if(g){var +p=g[1];i(c,bWI);var +q=function(a,b){return i(a,bWJ)},r=function(a){return m(e,a)};m(l(am[1],r,q,c),p);i(c,bWK)}else +i(c,bWL);m(f(c),bWM);return m(f(c),bWN)});h(aAY,function(a,b,c){var +d=m(m(YS,a),b);return n(z(bWO),d,c)});var +aAZ=[0,YS,aAY],YT=function +d(a,b,c){return d.fun(a,b,c)},aA0=function +c(a,b){return c.fun(a,b)};h(YT,function(d,b,c){m(f(b),bWP);n(f(b),bWR,bWQ);var +a=c[1];if(a){var +e=a[1];i(b,bWS);var +g=function(a,b){return i(a,bWT)},h=function(a){return m(d,a)};m(l(am[1],h,g,b),e);i(b,bWU)}else +i(b,bWV);m(f(b),bWW);return m(f(b),bWX)});h(aA0,function(a,b){var +c=m(YT,a);return n(z(bWY),c,b)});var +aA1=[0,YT,aA0],YU=function +c(a,b){return c.fun(a,b)},aA2=function +b(a){return b.fun(a)},YV=function +e(a,b,c,d){return e.fun(a,b,c,d)},aA3=function +d(a,b,c){return d.fun(a,b,c)},Lm=function +e(a,b,c,d){return e.fun(a,b,c,d)},aA4=function +d(a,b,c){return d.fun(a,b,c)};h(YU,function(a,b){return b?i(a,bWZ):i(a,bW0)});h(aA2,function(a){return n(z(bW1),YU,a)});h(YV,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bW2);m(m(e,c),g);m(f(c),bW3);function +h(a){return m(b,a)}m(l(Lm,function(a){return m(e,a)},h,c),a);return m(f(c),bW4)});h(aA3,function(a,b,c){var +d=m(m(YV,a),b);return n(z(bW5),d,c)});h(Lm,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),bW6);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(AX[1],h,g,c),a);return m(f(c),bW7);case +1:var +i=d[1];m(f(c),bW8);var +j=function(a){return m(e,a)};m(n(azo[1],j,c),i);return m(f(c),bW9);case +2:var +k=d[1];m(f(c),bW_);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(un[8],p,o,c),k);return m(f(c),bW$);case +3:var +q=d[1];m(f(c),bXa);var +r=function(a){return m(b,a)},s=function(a){return m(e,a)};m(l(aAt[4],s,r,c),q);return m(f(c),bXb);case +4:var +t=d[1];m(f(c),bXc);var +u=function(a){return m(e,a)};m(n(azq[1],u,c),t);return m(f(c),bXd);case +5:var +v=d[1];m(f(c),bXe);var +w=function(a){return m(e,a)};m(n(azs[1],w,c),v);return m(f(c),bXf);case +6:var +x=d[1];m(f(c),bXg);var +y=function(a){return m(b,a)},z=function(a){return m(e,a)};m(l(YC[1],z,y,c),x);return m(f(c),bXh);case +7:var +A=d[1];m(f(c),bXi);var +B=function(a){return m(b,a)},C=function(a){return m(e,a)};m(l(YE[1],C,B,c),A);return m(f(c),bXj);case +8:var +D=d[1];m(f(c),bXk);var +E=function(a){return m(b,a)},F=function(a){return m(e,a)};m(l(K9[8],F,E,c),D);return m(f(c),bXl);case +9:var +G=d[1];m(f(c),bXm);var +H=function(a){return m(b,a)},I=function(a){return m(e,a)};m(l(aAR[3],I,H,c),G);return m(f(c),bXn);case +10:var +J=d[1];m(f(c),bXo);var +K=function(a){return m(b,a)},L=function(a){return m(e,a)};m(l(YI[1],L,K,c),J);return m(f(c),bXp);case +11:var +M=d[1];m(f(c),bXq);var +N=function(a){return m(b,a)},O=function(a){return m(e,a)};m(l(Lc[1],O,N,c),M);return m(f(c),bXr);case +12:var +P=d[1];m(f(c),bXs);var +Q=function(a){return m(b,a)},R=function(a){return m(e,a)};m(l(aAC[5],R,Q,c),P);return m(f(c),bXt);case +13:var +S=d[1];m(f(c),bXu);var +T=function(a){return m(b,a)},U=function(a){return m(e,a)};m(l(aAE[1],U,T,c),S);return m(f(c),bXv);case +14:var +V=d[1];m(f(c),bXw);var +W=function(a){return m(b,a)},X=function(a){return m(e,a)};m(l(KW[1],X,W,c),V);return m(f(c),bXx);case +15:var +Y=d[1];m(f(c),bXy);var +Z=function(a){return m(b,a)},_=function(a){return m(e,a)};m(l(KX[1],_,Z,c),Y);return m(f(c),bXz);case +16:var +$=d[1];m(f(c),bXA);var +aa=function(a){return m(b,a)},ab=function(a){return m(e,a)};m(l(YG[1],ab,aa,c),$);return m(f(c),bXB);case +17:var +ac=d[1];m(f(c),bXC);var +ad=function(a){return m(b,a)},ae=function(a){return m(e,a)};m(l(azS[1],ae,ad,c),ac);return m(f(c),bXD);case +18:var +af=d[1];m(f(c),bXE);var +ag=function(a){return m(e,a)};m(n(aA1[1],ag,c),af);return m(f(c),bXF);case +19:var +ah=d[1];m(f(c),bXG);var +ai=function(a){return m(b,a)},aj=function(a){return m(e,a)};m(l(K9[8],aj,ai,c),ah);return m(f(c),bXH);case +20:var +ak=d[1];m(f(c),bXI);var +al=function(a){return m(b,a)},am=function(a){return m(e,a)};m(l(aAO[1],am,al,c),ak);return m(f(c),bXJ);case +21:var +an=d[1];m(f(c),bXK);var +ao=function(a){return m(b,a)},ap=function(a){return m(e,a)};m(l(YO[3],ap,ao,c),an);return m(f(c),bXL);case +22:var +aq=d[1];m(f(c),bXM);var +ar=function(a){return m(b,a)},as=function(a){return m(e,a)};m(l(aAZ[1],as,ar,c),aq);return m(f(c),bXN);case +23:var +at=d[1];m(f(c),bXO);var +au=function(a){return m(b,a)},av=function(a){return m(e,a)};m(l(azV[1],av,au,c),at);return m(f(c),bXP);case +24:var +aw=d[1];m(f(c),bXQ);var +ax=function(a){return m(b,a)},ay=function(a){return m(e,a)};m(l(azY[1],ay,ax,c),aw);return m(f(c),bXR);case +25:var +az=d[1];m(f(c),bXS);var +aA=function(a){return m(b,a)},aB=function(a){return m(e,a)};m(l(az1[1],aB,aA,c),az);return m(f(c),bXT);case +26:var +aC=d[1];m(f(c),bXU);var +aD=function(a){return m(b,a)},aE=function(a){return m(e,a)};m(l(vU[6],aE,aD,c),aC);return m(f(c),bXV);case +27:var +aF=d[1];m(f(c),bXW);var +aG=function(a){return m(b,a)},aH=function(a){return m(e,a)};m(l(azk[2],aH,aG,c),aF);return m(f(c),bXX);case +28:var +aI=d[1];m(f(c),bXY);var +aJ=function(a){return m(b,a)},aK=function(a){return m(e,a)};m(l(aAX[9],aK,aJ,c),aI);return m(f(c),bXZ);case +29:var +aL=d[1];m(f(c),bX0);var +aM=function(a){return m(b,a)},aN=function(a){return m(e,a)};m(l(Lc[1],aN,aM,c),aL);return m(f(c),bX1);case +30:var +aO=d[1];m(f(c),bX2);var +aP=function(a){return m(b,a)},aQ=function(a){return m(e,a)};m(l(azm[1],aQ,aP,c),aO);return m(f(c),bX3);case +31:var +aR=d[1];m(f(c),bX4);var +aS=function(a){return m(b,a)},aT=function(a){return m(e,a)};m(l(azD[1],aT,aS,c),aR);return m(f(c),bX5);case +32:var +aU=d[1];m(f(c),bX6);var +aV=function(a){return m(b,a)},aW=function(a){return m(e,a)};m(l(azB[2],aW,aV,c),aU);return m(f(c),bX7);case +33:var +aX=d[1];m(f(c),bX8);var +aY=function(a){return m(b,a)},aZ=function(a){return m(e,a)};m(l(azF[1],aZ,aY,c),aX);return m(f(c),bX9);case +34:var +a0=d[1];m(f(c),bX_);var +a1=function(a){return m(b,a)},a2=function(a){return m(e,a)};m(l(azK[2],a2,a1,c),a0);return m(f(c),bX$);case +35:var +a3=d[1];m(f(c),bYa);var +a4=function(a){return m(b,a)},a5=function(a){return m(e,a)};m(l(KW[1],a5,a4,c),a3);return m(f(c),bYb);case +36:var +a6=d[1];m(f(c),bYc);var +a7=function(a){return m(b,a)},a8=function(a){return m(e,a)};m(l(KX[1],a8,a7,c),a6);return m(f(c),bYd);case +37:var +a9=d[1];m(f(c),bYe);var +a_=function(a){return m(b,a)},a$=function(a){return m(e,a)};m(l(ES[2],a$,a_,c),a9);return m(f(c),bYf);case +38:var +ba=d[1];m(f(c),bYg);var +bb=function(a){return m(b,a)},bc=function(a){return m(e,a)};m(l(azQ[1],bc,bb,c),ba);return m(f(c),bYh);default:var +bd=d[1];m(f(c),bYi);var +be=function(a){return m(b,a)},bf=function(a){return m(e,a)};m(l(azu[1],bf,be,c),bd);return m(f(c),bYj)}});h(aA4,function(a,b,c){var +d=m(m(Lm,a),b);return n(z(bYk),d,c)});hj(bYl,kV,[0,AX,azk,azm,azo,azq,azs,azu,KW,KX,azB,azD,azF,azK,ES,azQ,azS,azV,azY,az1,K9,aAt,Lc,YC,YE,YG,YI,aAC,aAE,YO,aAO,aAR,aAX,aAZ,aA1,YU,aA2,YV,aA3,Lm,aA4]);var +YW=function +e(a,b,c,d){return e.fun(a,b,c,d)},aA5=function +d(a,b,c){return d.fun(a,b,c)},Ln=function +d(a,b,c){return d.fun(a,b,c)},aA6=function +c(a,b){return c.fun(a,b)};h(YW,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bYm);m(m(b,c),g);m(f(c),bYn);m(n(Ln,function(a){return m(e,a)},c),a);return m(f(c),bYo)});h(aA5,function(a,b,c){var +d=m(m(YW,a),b);return n(z(bYp),d,c)});h(Ln,function(d,b,c){m(f(b),bYq);n(f(b),bYs,bYr);var +a=c[1];if(a){var +e=a[1];i(b,bYt);var +g=function(a,b){return i(a,bYu)},h=function(a){return m(d,a)};m(l(am[1],h,g,b),e);i(b,bYv)}else +i(b,bYw);m(f(b),bYx);return m(f(b),bYy)});h(aA6,function(a,b){var +c=m(Ln,a);return n(z(bYz),c,b)});var +aA7=[0,YW,aA5,Ln,aA6],YX=function +e(a,b,c,d){return e.fun(a,b,c,d)},aA8=function +d(a,b,c){return d.fun(a,b,c)};h(YX,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),bYA);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(fu[19],h,g,c),a);return m(f(c),bYB)}var +i=d[1];m(f(c),bYC);function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(aA7[1],k,j,c),i);return m(f(c),bYD)});h(aA8,function(a,b,c){var +d=m(m(YX,a),b);return n(z(bYE),d,c)});var +aA9=[0,aA7,YX,aA8],YY=function +e(a,b,c,d){return e.fun(a,b,c,d)},aA_=function +d(a,b,c){return d.fun(a,b,c)},Lo=function +e(a,b,c,d){return e.fun(a,b,c,d)},aA$=function +d(a,b,c){return d.fun(a,b,c)};h(YY,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bYF);m(m(e,c),g);m(f(c),bYG);function +h(a){return m(b,a)}m(l(Lo,function(a){return m(e,a)},h,c),a);return m(f(c),bYH)});h(aA_,function(a,b,c){var +d=m(m(YY,a),b);return n(z(bYI),d,c)});h(Lo,function(e,g,c,d){m(f(c),bYJ);n(f(c),bYL,bYK);var +b=d[1];m(f(c),bYM);var +h=0;M(function(a,b){if(a)m(f(c),bYN);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(aA9[2],h,d,c),b);return 1},h,b);m(f(c),bYO);m(f(c),bYP);m(f(c),bYQ);n(f(c),bYS,bYR);var +a=d[2];if(a){var +j=a[1];i(c,bYT);var +k=function(c,b){m(f(c),bYU);var +a=0;M(function(a,b){if(a)m(f(c),bYV);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bYW)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,bYX)}else +i(c,bYY);m(f(c),bYZ);return m(f(c),bY0)});h(aA$,function(a,b,c){var +d=m(m(Lo,a),b);return n(z(bY1),d,c)});var +YZ=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBa=function +d(a,b,c){return d.fun(a,b,c)},Lp=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBb=function +d(a,b,c){return d.fun(a,b,c)},bY2=[0,YY,aA_,Lo,aA$];h(YZ,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),bY3);m(m(e,c),g);m(f(c),bY4);function +h(a){return m(b,a)}m(l(Lp,function(a){return m(e,a)},h,c),a);return m(f(c),bY5)});h(aBa,function(a,b,c){var +d=m(m(YZ,a),b);return n(z(bY6),d,c)});h(Lp,function(e,b,c,d){m(f(c),bY7);n(f(c),bY9,bY8);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),bY_);m(f(c),bY$);n(f(c),bZb,bZa);var +a=d[2];if(a){var +k=a[1];i(c,bZc);var +o=function(a,b){return i(a,bZd)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,bZe)}else +i(c,bZf);m(f(c),bZg);return m(f(c),bZh)});h(aBb,function(a,b,c){var +d=m(m(Lp,a),b);return n(z(bZi),d,c)});var +Y0=[0,YZ,aBa,Lp,aBb],Lq=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBc=function +d(a,b,c){return d.fun(a,b,c)};h(Lq,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),bZj);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(fW[31],h,g,c),a);return m(f(c),bZk);case +1:var +i=d[1];m(f(c),bZl);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(Y0[1],k,j,c),i);return m(f(c),bZm);default:var +n=d[1];m(f(c),bZn);m(m(e,c),n);return m(f(c),bZo)}});h(aBc,function(a,b,c){var +d=m(m(Lq,a),b);return n(z(bZp),d,c)});var +Y1=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBd=function +d(a,b,c){return d.fun(a,b,c)};h(Y1,function(e,g,c,d){m(f(c),bZq);n(f(c),bZs,bZr);var +b=d[1];m(f(c),bZt);var +h=0;M(function(a,b){if(a)m(f(c),bZu);function +d(a){return m(g,a)}m(l(Lq,function(a){return m(e,a)},d,c),b);return 1},h,b);m(f(c),bZv);m(f(c),bZw);m(f(c),bZx);n(f(c),bZz,bZy);var +a=d[2];if(a){var +j=a[1];i(c,bZA);var +k=function(c,b){m(f(c),bZB);var +a=0;M(function(a,b){if(a)m(f(c),bZC);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),bZD)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,bZE)}else +i(c,bZF);m(f(c),bZG);return m(f(c),bZH)});h(aBd,function(a,b,c){var +d=m(m(Y1,a),b);return n(z(bZI),d,c)});var +aBe=[0,Lq,aBc,Y1,aBd],Lr=function +c(a,b){return c.fun(a,b)},aBf=function +b(a){return b.fun(a)},Y2=function +d(a,b,c){return d.fun(a,b,c)},aBg=function +c(a,b){return c.fun(a,b)},Ls=function +c(a,b){return c.fun(a,b)},aBh=function +b(a){return b.fun(a)};h(Lr,function(a,b){m(f(a),bZJ);n(f(a),bZL,bZK);var +c=b[1];m(m(f(a),bZM),c);m(f(a),bZN);m(f(a),bZO);n(f(a),bZQ,bZP);var +d=b[2];m(m(f(a),bZR),d);m(f(a),bZS);return m(f(a),bZT)});h(aBf,function(a){return n(z(bZU),Lr,a)});h(Y2,function(a,b,c){var +d=c[2],e=c[1];m(f(b),bZV);m(m(a,b),e);m(f(b),bZW);m(m(Ls,b),d);return m(f(b),bZX)});h(aBg,function(a,b){var +c=m(Y2,a);return n(z(bZY),c,b)});h(Ls,function(a,b){m(f(a),bZZ);n(f(a),bZ1,bZ0);var +c=b[1];m(m(Lr,a),c);m(f(a),bZ2);m(f(a),bZ3);n(f(a),bZ5,bZ4);var +d=b[2];m(m(f(a),bZ6),d);m(f(a),bZ7);return m(f(a),bZ8)});h(aBh,function(a){return n(z(bZ9),Ls,a)});var +aBi=[0,Lr,aBf,Y2,aBg,Ls,aBh],Y3=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBj=function +d(a,b,c){return d.fun(a,b,c)};h(Y3,function(e,g,c,d){m(f(c),bZ_);n(f(c),b0a,bZ$);var +b=d[1];m(f(c),b0b);var +h=0;M(function(a,b){if(a)m(f(c),b0c);function +d(a){return m(e,a)}m(n(aBi[3],d,c),b);return 1},h,b);m(f(c),b0d);m(f(c),b0e);m(f(c),b0f);n(f(c),b0h,b0g);var +j=d[2];m(f(c),b0i);var +k=0;M(function(a,b){if(a)m(f(c),b0j);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(fW[31],h,d,c),b);return 1},k,j);m(f(c),b0k);m(f(c),b0l);m(f(c),b0m);n(f(c),b0o,b0n);var +a=d[3];if(a){var +o=a[1];i(c,b0p);var +p=function(a,b){return i(a,b0q)},q=function(a){return m(e,a)};m(l(am[1],q,p,c),o);i(c,b0r)}else +i(c,b0s);m(f(c),b0t);return m(f(c),b0u)});h(aBj,function(a,b,c){var +d=m(m(Y3,a),b);return n(z(b0v),d,c)});var +Y4=[0,aBi,Y3,aBj],Y5=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBk=function +d(a,b,c){return d.fun(a,b,c)};h(Y5,function(e,b,c,d){m(f(c),b0w);n(f(c),b0y,b0x);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fW[31],k,j,c),h);m(f(c),b0z);m(f(c),b0A);n(f(c),b0C,b0B);var +a=d[2],o=a[2],p=a[1];m(f(c),b0D);m(m(e,c),p);m(f(c),b0E);function +q(a){return m(b,a)}function +r(a){return m(e,a)}m(l(Y4[2],r,q,c),o);m(f(c),b0F);m(f(c),b0G);m(f(c),b0H);n(f(c),b0J,b0I);var +g=d[3];if(g){var +s=g[1];i(c,b0K);var +t=function(a,b){return i(a,b0L)},u=function(a){return m(e,a)};m(l(am[1],u,t,c),s);i(c,b0M)}else +i(c,b0N);m(f(c),b0O);return m(f(c),b0P)});h(aBk,function(a,b,c){var +d=m(m(Y5,a),b);return n(z(b0Q),d,c)});var +aBl=[0,Y5,aBk],xX=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBm=function +d(a,b,c){return d.fun(a,b,c)},Y6=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBn=function +d(a,b,c){return d.fun(a,b,c)},Lt=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBo=function +d(a,b,c){return d.fun(a,b,c)};h(xX,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),b0R);var +i=a[2],j=a[1];m(f(c),b0S);m(m(b,c),j);m(f(c),b0T);var +k=function(a){return m(e,a)};m(n(rg[1],k,c),i);m(f(c),b0U);return m(f(c),b0V);case +1:var +g=d[1];m(f(c),b0W);var +o=g[2],p=g[1];m(f(c),b0X);m(m(b,c),p);m(f(c),b0Y);var +q=function(a){return m(e,a)};m(n(AV[1],q,c),o);m(f(c),b0Z);return m(f(c),b00);case +2:var +h=d[1];m(f(c),b01);var +r=h[2],s=h[1];m(f(c),b02);m(m(b,c),s);m(f(c),b03);var +t=function(a){return m(e,a)};m(n(AW[1],t,c),r);m(f(c),b04);return m(f(c),b05);case +3:var +u=d[1];m(f(c),b06);var +v=function(a){return m(b,a)},w=function(a){return m(e,a)};m(l(gW[1],w,v,c),u);return m(f(c),b07);case +4:var +x=d[1];m(f(c),b08);var +y=function(a){return m(e,a)};m(n(Ki[1],y,c),x);return m(f(c),b09);default:var +z=d[1];m(f(c),b0_);var +A=function(a){return m(b,a)},B=function(a){return m(e,a)};m(l(Kk[1],B,A,c),z);return m(f(c),b0$)}});h(aBm,function(a,b,c){var +d=m(m(xX,a),b);return n(z(b1a),d,c)});h(Y6,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),b1b);m(m(e,c),g);m(f(c),b1c);function +h(a){return m(b,a)}m(l(Lt,function(a){return m(e,a)},h,c),a);return m(f(c),b1d)});h(aBn,function(a,b,c){var +d=m(m(Y6,a),b);return n(z(b1e),d,c)});h(Lt,function(e,b,c,d){switch(d[0]){case +0:var +o=d[3],p=d[2],q=d[1];m(f(c),b1f);n(f(c),b1h,b1g);var +r=function(a){return m(b,a)};m(l(xX,function(a){return m(e,a)},r,c),q);m(f(c),b1i);m(f(c),b1j);n(f(c),b1l,b1k);var +s=function(a){return m(b,a)},t=function(a){return m(e,a)};m(l(fW[31],t,s,c),p);m(f(c),b1m);m(f(c),b1n);n(f(c),b1p,b1o);m(m(f(c),b1q),o);m(f(c),b1r);return m(f(c),b1s);case +1:var +a=d[2],u=d[1];m(f(c),b1t);n(f(c),b1v,b1u);var +v=function(a){return m(b,a)};m(l(xX,function(a){return m(e,a)},v,c),u);m(f(c),b1w);m(f(c),b1x);n(f(c),b1z,b1y);var +w=a[2],x=a[1];m(f(c),b1A);m(m(e,c),x);m(f(c),b1B);var +y=function(a){return m(b,a)},z=function(a){return m(e,a)};m(l(vU[6],z,y,c),w);m(f(c),b1C);m(f(c),b1D);return m(f(c),b1E);case +2:var +g=d[3],h=d[2],A=d[1];m(f(c),b1F);n(f(c),b1H,b1G);var +B=function(a){return m(b,a)};m(l(xX,function(a){return m(e,a)},B,c),A);m(f(c),b1I);m(f(c),b1J);n(f(c),b1L,b1K);var +C=h[2],D=h[1];m(f(c),b1M);m(m(e,c),D);m(f(c),b1N);var +E=function(a){return m(b,a)},F=function(a){return m(e,a)};m(l(vU[6],F,E,c),C);m(f(c),b1O);m(f(c),b1P);m(f(c),b1Q);n(f(c),b1S,b1R);if(g){var +G=g[1];i(c,b1T);var +H=function(a,b){return i(a,b1U)},I=function(a){return m(e,a)};m(l(am[1],I,H,c),G);i(c,b1V)}else +i(c,b1W);m(f(c),b1X);return m(f(c),b1Y);default:var +j=d[3],k=d[2],J=d[1];m(f(c),b1Z);n(f(c),b11,b10);var +K=function(a){return m(b,a)};m(l(xX,function(a){return m(e,a)},K,c),J);m(f(c),b12);m(f(c),b13);n(f(c),b15,b14);var +L=k[2],M=k[1];m(f(c),b16);m(m(e,c),M);m(f(c),b17);var +N=function(a){return m(b,a)},O=function(a){return m(e,a)};m(l(vU[6],O,N,c),L);m(f(c),b18);m(f(c),b19);m(f(c),b1_);n(f(c),b2a,b1$);if(j){var +P=j[1];i(c,b2b);var +Q=function(a,b){return i(a,b2c)},R=function(a){return m(e,a)};m(l(am[1],R,Q,c),P);i(c,b2d)}else +i(c,b2e);m(f(c),b2f);return m(f(c),b2g)}});h(aBo,function(a,b,c){var +d=m(m(Lt,a),b);return n(z(b2h),d,c)});var +aBp=[0,xX,aBm,Y6,aBn,Lt,aBo],Y7=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBq=function +d(a,b,c){return d.fun(a,b,c)},Lu=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBr=function +d(a,b,c){return d.fun(a,b,c)};h(Y7,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),b2i);m(m(e,c),g);m(f(c),b2j);function +h(a){return m(b,a)}m(l(Lu,function(a){return m(e,a)},h,c),a);return m(f(c),b2k)});h(aBq,function(a,b,c){var +d=m(m(Y7,a),b);return n(z(b2l),d,c)});h(Lu,function(e,b,c,d){m(f(c),b2m);n(f(c),b2o,b2n);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),b2p);m(f(c),b2q);n(f(c),b2s,b2r);var +a=d[2];if(a){var +k=a[1];i(c,b2t);var +o=function(a,b){return i(a,b2u)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,b2v)}else +i(c,b2w);m(f(c),b2x);return m(f(c),b2y)});h(aBr,function(a,b,c){var +d=m(m(Lu,a),b);return n(z(b2z),d,c)});var +aBs=[0,Y7,aBq,Lu,aBr],Lv=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBt=function +d(a,b,c){return d.fun(a,b,c)},Y8=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBu=function +d(a,b,c){return d.fun(a,b,c)};h(Lv,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),b2A);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(aBp[3],h,g,c),a);return m(f(c),b2B)}var +i=d[1];m(f(c),b2C);function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(aBs[1],k,j,c),i);return m(f(c),b2D)});h(aBt,function(a,b,c){var +d=m(m(Lv,a),b);return n(z(b2E),d,c)});h(Y8,function(e,g,c,d){m(f(c),b2F);n(f(c),b2H,b2G);var +b=d[1];m(f(c),b2I);var +h=0;M(function(a,b){if(a)m(f(c),b2J);function +d(a){return m(g,a)}m(l(Lv,function(a){return m(e,a)},d,c),b);return 1},h,b);m(f(c),b2K);m(f(c),b2L);m(f(c),b2M);n(f(c),b2O,b2N);var +a=d[2];if(a){var +j=a[1];i(c,b2P);var +k=function(c,b){m(f(c),b2Q);var +a=0;M(function(a,b){if(a)m(f(c),b2R);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),b2S)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,b2T)}else +i(c,b2U);m(f(c),b2V);return m(f(c),b2W)});h(aBu,function(a,b,c){var +d=m(m(Y8,a),b);return n(z(b2X),d,c)});var +aBv=[0,aBp,aBs,Lv,aBt,Y8,aBu],Y9=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBw=function +d(a,b,c){return d.fun(a,b,c)};h(Y9,function(e,g,c,d){m(f(c),b2Y);n(f(c),b20,b2Z);var +b=d[1];m(f(c),b21);var +h=0;M(function(a,b){if(a)m(f(c),b22);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(fW[31],h,d,c),b);return 1},h,b);m(f(c),b23);m(f(c),b24);m(f(c),b25);n(f(c),b27,b26);var +a=d[2];if(a){var +j=a[1];i(c,b28);var +k=function(a,b){return i(a,b29)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,b2_)}else +i(c,b2$);m(f(c),b3a);return m(f(c),b3b)});h(aBw,function(a,b,c){var +d=m(m(Y9,a),b);return n(z(b3c),d,c)});var +aBx=[0,Y9,aBw],Lw=function +c(a,b){return c.fun(a,b)},aBy=function +b(a){return b.fun(a)},Y_=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBz=function +d(a,b,c){return d.fun(a,b,c)};h(Lw,function(a,b){switch(b){case +0:return i(a,b3d);case +1:return i(a,b3e);case +2:return i(a,b3f);case +3:return i(a,b3g);case +4:return i(a,b3h);case +5:return i(a,b3i);case +6:return i(a,b3j);default:return i(a,b3k)}});h(aBy,function(a){return n(z(b3l),Lw,a)});h(Y_,function(e,b,c,d){m(f(c),b3m);n(f(c),b3o,b3n);var +g=d[1];m(m(Lw,c),g);m(f(c),b3p);m(f(c),b3q);n(f(c),b3s,b3r);var +h=d[2];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fW[31],k,j,c),h);m(f(c),b3t);m(f(c),b3u);n(f(c),b3w,b3v);var +a=d[3];if(a){var +o=a[1];i(c,b3x);var +p=function(a,b){return i(a,b3y)},q=function(a){return m(e,a)};m(l(am[1],q,p,c),o);i(c,b3z)}else +i(c,b3A);m(f(c),b3B);return m(f(c),b3C)});h(aBz,function(a,b,c){var +d=m(m(Y_,a),b);return n(z(b3D),d,c)});var +aBA=[0,Lw,aBy,Y_,aBz],Lx=function +c(a,b){return c.fun(a,b)},aBB=function +b(a){return b.fun(a)},Y$=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBC=function +d(a,b,c){return d.fun(a,b,c)};h(Lx,function(a,b){switch(b){case +0:return i(a,b3E);case +1:return i(a,b3F);case +2:return i(a,b3G);case +3:return i(a,b3H);case +4:return i(a,b3I);case +5:return i(a,b3J);case +6:return i(a,b3K);case +7:return i(a,b3L);case +8:return i(a,b3M);case +9:return i(a,b3N);case +10:return i(a,b3O);case +11:return i(a,b3P);case +12:return i(a,b3Q);case +13:return i(a,b3R);case +14:return i(a,b3S);case +15:return i(a,b3T);case +16:return i(a,b3U);case +17:return i(a,b3V);case +18:return i(a,b3W);case +19:return i(a,b3X);case +20:return i(a,b3Y);default:return i(a,b3Z)}});h(aBB,function(a){return n(z(b30),Lx,a)});h(Y$,function(e,b,c,d){m(f(c),b31);n(f(c),b33,b32);var +g=d[1];m(m(Lx,c),g);m(f(c),b34);m(f(c),b35);n(f(c),b37,b36);var +h=d[2];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fW[31],k,j,c),h);m(f(c),b38);m(f(c),b39);n(f(c),b3$,b3_);var +o=d[3];function +p(a){return m(b,a)}function +q(a){return m(e,a)}m(l(fW[31],q,p,c),o);m(f(c),b4a);m(f(c),b4b);n(f(c),b4d,b4c);var +a=d[4];if(a){var +r=a[1];i(c,b4e);var +s=function(a,b){return i(a,b4f)},t=function(a){return m(e,a)};m(l(am[1],t,s,c),r);i(c,b4g)}else +i(c,b4h);m(f(c),b4i);return m(f(c),b4j)});h(aBC,function(a,b,c){var +d=m(m(Y$,a),b);return n(z(b4k),d,c)});var +aBD=[0,Lx,aBB,Y$,aBC],Ly=function +c(a,b){return c.fun(a,b)},aBE=function +b(a){return b.fun(a)},Za=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBF=function +d(a,b,c){return d.fun(a,b,c)};h(Ly,function(a,b){switch(b){case +0:return i(a,b4l);case +1:return i(a,b4m);case +2:return i(a,b4n);case +3:return i(a,b4o);case +4:return i(a,b4p);case +5:return i(a,b4q);case +6:return i(a,b4r);case +7:return i(a,b4s);case +8:return i(a,b4t);case +9:return i(a,b4u);case +10:return i(a,b4v);case +11:return i(a,b4w);case +12:return i(a,b4x);case +13:return i(a,b4y);default:return i(a,b4z)}});h(aBE,function(a){return n(z(b4A),Ly,a)});h(Za,function(e,b,c,d){m(f(c),b4B);n(f(c),b4D,b4C);var +a=d[1];if(a){var +h=a[1];i(c,b4E);m(m(Ly,c),h);i(c,b4F)}else +i(c,b4G);m(f(c),b4H);m(f(c),b4I);n(f(c),b4K,b4J);var +j=d[2];function +k(a){return m(b,a)}function +o(a){return m(e,a)}m(l(qD[5],o,k,c),j);m(f(c),b4L);m(f(c),b4M);n(f(c),b4O,b4N);var +p=d[3];function +q(a){return m(b,a)}function +r(a){return m(e,a)}m(l(fW[31],r,q,c),p);m(f(c),b4P);m(f(c),b4Q);n(f(c),b4S,b4R);var +g=d[4];if(g){var +s=g[1];i(c,b4T);var +t=function(a,b){return i(a,b4U)},u=function(a){return m(e,a)};m(l(am[1],u,t,c),s);i(c,b4V)}else +i(c,b4W);m(f(c),b4X);return m(f(c),b4Y)});h(aBF,function(a,b,c){var +d=m(m(Za,a),b);return n(z(b4Z),d,c)});var +aBG=[0,Ly,aBE,Za,aBF],Lz=function +c(a,b){return c.fun(a,b)},aBH=function +b(a){return b.fun(a)},Zb=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBI=function +d(a,b,c){return d.fun(a,b,c)};h(Lz,function(a,b){return b?i(a,b40):i(a,b41)});h(aBH,function(a){return n(z(b42),Lz,a)});h(Zb,function(e,b,c,d){m(f(c),b43);n(f(c),b45,b44);var +g=d[1];m(m(Lz,c),g);m(f(c),b46);m(f(c),b47);n(f(c),b49,b48);var +h=d[2];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fW[31],k,j,c),h);m(f(c),b4_);m(f(c),b4$);n(f(c),b5b,b5a);var +o=d[3];m(m(f(c),b5c),o);m(f(c),b5d);m(f(c),b5e);n(f(c),b5g,b5f);var +a=d[4];if(a){var +p=a[1];i(c,b5h);var +q=function(a,b){return i(a,b5i)},r=function(a){return m(e,a)};m(l(am[1],r,q,c),p);i(c,b5j)}else +i(c,b5k);m(f(c),b5l);return m(f(c),b5m)});h(aBI,function(a,b,c){var +d=m(m(Zb,a),b);return n(z(b5n),d,c)});var +aBJ=[0,Lz,aBH,Zb,aBI],LA=function +c(a,b){return c.fun(a,b)},aBK=function +b(a){return b.fun(a)},Zc=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBL=function +d(a,b,c){return d.fun(a,b,c)};h(LA,function(a,b){switch(b){case +0:return i(a,b5o);case +1:return i(a,b5p);default:return i(a,b5q)}});h(aBK,function(a){return n(z(b5r),LA,a)});h(Zc,function(e,b,c,d){m(f(c),b5s);n(f(c),b5u,b5t);var +g=d[1];m(m(LA,c),g);m(f(c),b5v);m(f(c),b5w);n(f(c),b5y,b5x);var +h=d[2];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fW[31],k,j,c),h);m(f(c),b5z);m(f(c),b5A);n(f(c),b5C,b5B);var +o=d[3];function +p(a){return m(b,a)}function +q(a){return m(e,a)}m(l(fW[31],q,p,c),o);m(f(c),b5D);m(f(c),b5E);n(f(c),b5G,b5F);var +a=d[4];if(a){var +r=a[1];i(c,b5H);var +s=function(a,b){return i(a,b5I)},t=function(a){return m(e,a)};m(l(am[1],t,s,c),r);i(c,b5J)}else +i(c,b5K);m(f(c),b5L);return m(f(c),b5M)});h(aBL,function(a,b,c){var +d=m(m(Zc,a),b);return n(z(b5N),d,c)});var +aBM=[0,LA,aBK,Zc,aBL],Zd=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBN=function +d(a,b,c){return d.fun(a,b,c)};h(Zd,function(e,b,c,d){m(f(c),b5O);n(f(c),b5Q,b5P);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),b5R);m(f(c),b5S);n(f(c),b5U,b5T);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(fW[31],p,o,c),k);m(f(c),b5V);m(f(c),b5W);n(f(c),b5Y,b5X);var +q=d[3];function +r(a){return m(b,a)}function +s(a){return m(e,a)}m(l(fW[31],s,r,c),q);m(f(c),b5Z);m(f(c),b50);n(f(c),b52,b51);var +a=d[4];if(a){var +t=a[1];i(c,b53);var +u=function(a,b){return i(a,b54)},v=function(a){return m(e,a)};m(l(am[1],v,u,c),t);i(c,b55)}else +i(c,b56);m(f(c),b57);return m(f(c),b58)});h(aBN,function(a,b,c){var +d=m(m(Zd,a),b);return n(z(b59),d,c)});var +aBO=[0,Zd,aBN],LB=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBP=function +d(a,b,c){return d.fun(a,b,c)};h(LB,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),b5_);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(fW[31],h,g,c),a);return m(f(c),b5$)}var +i=d[1];m(f(c),b6a);function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(Y0[1],k,j,c),i);return m(f(c),b6b)});h(aBP,function(a,b,c){var +d=m(m(LB,a),b);return n(z(b6c),d,c)});var +Ze=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBQ=function +d(a,b,c){return d.fun(a,b,c)},LC=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBR=function +d(a,b,c){return d.fun(a,b,c)};h(Ze,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),b6d);m(m(e,c),g);m(f(c),b6e);function +h(a){return m(b,a)}m(l(LC,function(a){return m(e,a)},h,c),a);return m(f(c),b6f)});h(aBQ,function(a,b,c){var +d=m(m(Ze,a),b);return n(z(b6g),d,c)});h(LC,function(e,g,c,d){m(f(c),b6h);n(f(c),b6j,b6i);var +b=d[1];m(f(c),b6k);var +h=0;M(function(a,b){if(a)m(f(c),b6l);function +d(a){return m(g,a)}m(l(LB,function(a){return m(e,a)},d,c),b);return 1},h,b);m(f(c),b6m);m(f(c),b6n);m(f(c),b6o);n(f(c),b6q,b6p);var +a=d[2];if(a){var +j=a[1];i(c,b6r);var +k=function(c,b){m(f(c),b6s);var +a=0;M(function(a,b){if(a)m(f(c),b6t);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),b6u)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,b6v)}else +i(c,b6w);m(f(c),b6x);return m(f(c),b6y)});h(aBR,function(a,b,c){var +d=m(m(LC,a),b);return n(z(b6z),d,c)});var +Zf=[0,Ze,aBQ,LC,aBR],Zg=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBS=function +d(a,b,c){return d.fun(a,b,c)};h(Zg,function(e,b,c,d){m(f(c),b6A);n(f(c),b6C,b6B);var +j=d[1];function +k(a){return m(b,a)}function +o(a){return m(e,a)}m(l(fW[31],o,k,c),j);m(f(c),b6D);m(f(c),b6E);n(f(c),b6G,b6F);var +a=d[2];if(a){var +p=a[1];i(c,b6H);var +q=function(a){return m(b,a)},r=function(a){return m(e,a)};m(l(fW[2][1],r,q,c),p);i(c,b6I)}else +i(c,b6J);m(f(c),b6K);m(f(c),b6L);n(f(c),b6N,b6M);var +g=d[3];if(g){var +s=g[1];i(c,b6O);var +t=function(a){return m(b,a)},u=function(a){return m(e,a)};m(l(Zf[1],u,t,c),s);i(c,b6P)}else +i(c,b6Q);m(f(c),b6R);m(f(c),b6S);n(f(c),b6U,b6T);var +h=d[4];if(h){var +v=h[1];i(c,b6V);var +w=function(a,b){return i(a,b6W)},x=function(a){return m(e,a)};m(l(am[1],x,w,c),v);i(c,b6X)}else +i(c,b6Y);m(f(c),b6Z);return m(f(c),b60)});h(aBS,function(a,b,c){var +d=m(m(Zg,a),b);return n(z(b61),d,c)});var +aBT=[0,Zg,aBS],Zh=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBU=function +d(a,b,c){return d.fun(a,b,c)};h(Zh,function(e,b,c,d){m(f(c),b62);n(f(c),b64,b63);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fW[31],k,j,c),h);m(f(c),b65);m(f(c),b66);n(f(c),b68,b67);var +a=d[2];if(a){var +o=a[1];i(c,b69);var +p=function(a){return m(b,a)},q=function(a){return m(e,a)};m(l(fW[2][1],q,p,c),o);i(c,b6_)}else +i(c,b6$);m(f(c),b7a);m(f(c),b7b);n(f(c),b7d,b7c);var +r=d[3];function +s(a){return m(b,a)}function +t(a){return m(e,a)}m(l(Zf[1],t,s,c),r);m(f(c),b7e);m(f(c),b7f);n(f(c),b7h,b7g);var +g=d[4];if(g){var +u=g[1];i(c,b7i);var +v=function(a,b){return i(a,b7j)},w=function(a){return m(e,a)};m(l(am[1],w,v,c),u);i(c,b7k)}else +i(c,b7l);m(f(c),b7m);return m(f(c),b7n)});h(aBU,function(a,b,c){var +d=m(m(Zh,a),b);return n(z(b7o),d,c)});var +Zi=[0,Zh,aBU],Zj=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBV=function +d(a,b,c){return d.fun(a,b,c)};h(Zj,function(e,b,c,d){m(f(c),b7p);n(f(c),b7r,b7q);var +a=d[1];function +g(a){return m(b,a)}function +h(a){return m(e,a)}m(l(Zi[1],h,g,c),a);m(f(c),b7s);m(f(c),b7t);n(f(c),b7v,b7u);var +i=d[2];m(m(b,c),i);m(f(c),b7w);m(f(c),b7x);n(f(c),b7z,b7y);var +j=d[3];m(m(f(c),b7A),j);m(f(c),b7B);return m(f(c),b7C)});h(aBV,function(a,b,c){var +d=m(m(Zj,a),b);return n(z(b7D),d,c)});var +aBW=[0,Zj,aBV],LD=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBX=function +d(a,b,c){return d.fun(a,b,c)},Zk=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBY=function +d(a,b,c){return d.fun(a,b,c)};h(LD,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),b7E);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(gW[1],h,g,c),a);return m(f(c),b7F);case +1:var +i=d[1];m(f(c),b7G);var +j=function(a){return m(e,a)};m(n(Ki[1],j,c),i);return m(f(c),b7H);default:var +k=d[1];m(f(c),b7I);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(fW[31],p,o,c),k);return m(f(c),b7J)}});h(aBX,function(a,b,c){var +d=m(m(LD,a),b);return n(z(b7K),d,c)});h(Zk,function(e,b,c,d){m(f(c),b7L);n(f(c),b7N,b7M);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),b7O);m(f(c),b7P);n(f(c),b7R,b7Q);var +k=d[2];function +o(a){return m(b,a)}m(l(LD,function(a){return m(e,a)},o,c),k);m(f(c),b7S);m(f(c),b7T);n(f(c),b7V,b7U);var +a=d[3];if(a){var +p=a[1];i(c,b7W);var +q=function(a,b){return i(a,b7X)},r=function(a){return m(e,a)};m(l(am[1],r,q,c),p);i(c,b7Y)}else +i(c,b7Z);m(f(c),b70);return m(f(c),b71)});h(aBY,function(a,b,c){var +d=m(m(Zk,a),b);return n(z(b72),d,c)});var +Zl=[0,LD,aBX,Zk,aBY],Zm=function +e(a,b,c,d){return e.fun(a,b,c,d)},aBZ=function +d(a,b,c){return d.fun(a,b,c)};h(Zm,function(e,b,c,d){m(f(c),b73);n(f(c),b75,b74);var +a=d[1];function +g(a){return m(b,a)}function +h(a){return m(e,a)}m(l(Zl[3],h,g,c),a);m(f(c),b76);m(f(c),b77);n(f(c),b79,b78);var +i=d[2];m(m(b,c),i);m(f(c),b7_);m(f(c),b7$);n(f(c),b8b,b8a);var +j=d[3];m(m(f(c),b8c),j);m(f(c),b8d);return m(f(c),b8e)});h(aBZ,function(a,b,c){var +d=m(m(Zm,a),b);return n(z(b8f),d,c)});var +aB0=[0,Zm,aBZ],Zn=function +e(a,b,c,d){return e.fun(a,b,c,d)},aB1=function +d(a,b,c){return d.fun(a,b,c)};h(Zn,function(e,b,c,d){m(f(c),b8g);n(f(c),b8i,b8h);var +a=d[1];if(a){var +h=a[1];i(c,b8j);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(fW[31],k,j,c),h);i(c,b8k)}else +i(c,b8l);m(f(c),b8m);m(f(c),b8n);n(f(c),b8p,b8o);var +g=d[2];if(g){var +o=g[1];i(c,b8q);var +p=function(a,b){return i(a,b8r)},q=function(a){return m(e,a)};m(l(am[1],q,p,c),o);i(c,b8s)}else +i(c,b8t);m(f(c),b8u);m(f(c),b8v);n(f(c),b8x,b8w);var +r=d[3];m(m(f(c),b8y),r);m(f(c),b8z);m(f(c),b8A);n(f(c),b8C,b8B);var +s=d[4];m(m(b,c),s);m(f(c),b8D);return m(f(c),b8E)});h(aB1,function(a,b,c){var +d=m(m(Zn,a),b);return n(z(b8F),d,c)});var +aB2=[0,Zn,aB1],Zo=function +e(a,b,c,d){return e.fun(a,b,c,d)},aB3=function +d(a,b,c){return d.fun(a,b,c)};h(Zo,function(e,b,c,d){m(f(c),b8G);n(f(c),b8I,b8H);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),b8J);m(f(c),b8K);n(f(c),b8M,b8L);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(fu[23],p,o,c),k);m(f(c),b8N);m(f(c),b8O);n(f(c),b8Q,b8P);var +a=d[3];if(a){var +q=a[1];i(c,b8R);var +r=function(a,b){return i(a,b8S)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,b8T)}else +i(c,b8U);m(f(c),b8V);return m(f(c),b8W)});h(aB3,function(a,b,c){var +d=m(m(Zo,a),b);return n(z(b8X),d,c)});var +aB4=[0,Zo,aB3],Zp=function +e(a,b,c,d){return e.fun(a,b,c,d)},aB5=function +d(a,b,c){return d.fun(a,b,c)};h(Zp,function(e,b,c,d){m(f(c),b8Y);n(f(c),b80,b8Z);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),b81);m(f(c),b82);n(f(c),b84,b83);var +k=d[2];function +o(a){return m(b,a)}function +p(a){return m(e,a)}m(l(fu[23],p,o,c),k);m(f(c),b85);m(f(c),b86);n(f(c),b88,b87);var +a=d[3];if(a){var +q=a[1];i(c,b89);var +r=function(a,b){return i(a,b8_)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,b8$)}else +i(c,b9a);m(f(c),b9b);return m(f(c),b9c)});h(aB5,function(a,b,c){var +d=m(m(Zp,a),b);return n(z(b9d),d,c)});var +aB6=[0,Zp,aB5],LE=function +e(a,b,c,d){return e.fun(a,b,c,d)},aB7=function +d(a,b,c){return d.fun(a,b,c)};h(LE,function(e,b,c,d){if(!d)return i(c,b9g);var +a=d[1];m(f(c),b9e);function +g(a){return m(b,a)}function +h(a){return m(e,a)}m(l(fu[19],h,g,c),a);return m(f(c),b9f)});h(aB7,function(a,b,c){var +d=m(m(LE,a),b);return n(z(b9h),d,c)});var +Zq=function +e(a,b,c,d){return e.fun(a,b,c,d)},aB8=function +d(a,b,c){return d.fun(a,b,c)};h(Zq,function(e,b,c,d){m(f(c),b9i);n(f(c),b9k,b9j);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),b9l);m(f(c),b9m);n(f(c),b9o,b9n);var +k=d[2];function +o(a){return m(b,a)}m(l(LE,function(a){return m(e,a)},o,c),k);m(f(c),b9p);m(f(c),b9q);n(f(c),b9s,b9r);var +a=d[3];if(a){var +p=a[1];i(c,b9t);var +q=function(a,b){return i(a,b9u)},r=function(a){return m(e,a)};m(l(am[1],r,q,c),p);i(c,b9v)}else +i(c,b9w);m(f(c),b9x);return m(f(c),b9y)});h(aB8,function(a,b,c){var +d=m(m(Zq,a),b);return n(z(b9z),d,c)});var +aB9=[0,LE,aB7,Zq,aB8],Zr=function +d(a,b,c){return d.fun(a,b,c)},aB_=function +c(a,b){return c.fun(a,b)};h(Zr,function(d,b,c){m(f(b),b9A);n(f(b),b9C,b9B);var +e=c[1];function +g(a){return m(d,a)}function +h(a){return m(d,a)}m(l(gW[1],h,g,b),e);m(f(b),b9D);m(f(b),b9E);n(f(b),b9G,b9F);var +j=c[2];function +k(a){return m(d,a)}function +o(a){return m(d,a)}m(l(gW[1],o,k,b),j);m(f(b),b9H);m(f(b),b9I);n(f(b),b9K,b9J);var +a=c[3];if(a){var +p=a[1];i(b,b9L);var +q=function(a,b){return i(a,b9M)},r=function(a){return m(d,a)};m(l(am[1],r,q,b),p);i(b,b9N)}else +i(b,b9O);m(f(b),b9P);return m(f(b),b9Q)});h(aB_,function(a,b){var +c=m(Zr,a);return n(z(b9R),c,b)});var +aB$=[0,Zr,aB_],Zs=function +d(a,b,c){return d.fun(a,b,c)},aCa=function +c(a,b){return c.fun(a,b)};h(Zs,function(d,b,c){m(f(b),b9S);n(f(b),b9U,b9T);var +a=c[1];if(a){var +e=a[1];i(b,b9V);var +g=function(a,b){return i(a,b9W)},h=function(a){return m(d,a)};m(l(am[1],h,g,b),e);i(b,b9X)}else +i(b,b9Y);m(f(b),b9Z);return m(f(b),b90)});h(aCa,function(a,b){var +c=m(Zs,a);return n(z(b91),c,b)});var +aCb=[0,Zs,aCa],Zt=function +d(a,b,c){return d.fun(a,b,c)},aCc=function +c(a,b){return c.fun(a,b)};h(Zt,function(d,b,c){m(f(b),b92);n(f(b),b94,b93);var +a=c[1];if(a){var +e=a[1];i(b,b95);var +g=function(a,b){return i(a,b96)},h=function(a){return m(d,a)};m(l(am[1],h,g,b),e);i(b,b97)}else +i(b,b98);m(f(b),b99);return m(f(b),b9_)});h(aCc,function(a,b){var +c=m(Zt,a);return n(z(b9$),c,b)});var +aCd=[0,Zt,aCc],Zu=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCe=function +d(a,b,c){return d.fun(a,b,c)};h(Zu,function(e,b,c,d){m(f(c),b_a);n(f(c),b_c,b_b);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),b_d);m(f(c),b_e);n(f(c),b_g,b_f);var +a=d[2];if(a){var +k=a[1];i(c,b_h);var +o=function(a,b){return i(a,b_i)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,b_j)}else +i(c,b_k);m(f(c),b_l);return m(f(c),b_m)});h(aCe,function(a,b,c){var +d=m(m(Zu,a),b);return n(z(b_n),d,c)});var +aCf=[0,Zu,aCe],Zv=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCg=function +d(a,b,c){return d.fun(a,b,c)},LF=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCh=function +d(a,b,c){return d.fun(a,b,c)};h(Zv,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),b_o);m(m(b,c),g);m(f(c),b_p);function +h(a){return m(b,a)}m(l(LF,function(a){return m(e,a)},h,c),a);return m(f(c),b_q)});h(aCg,function(a,b,c){var +d=m(m(Zv,a),b);return n(z(b_r),d,c)});h(LF,function(e,b,c,d){switch(d[0]){case +0:var +g=d[1];m(f(c),b_s);var +h=function(a){return m(b,a)},j=function(a){return m(e,a)};m(l(aBe[3],j,h,c),g);return m(f(c),b_t);case +1:var +k=d[1];m(f(c),b_u);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(vU[6],p,o,c),k);return m(f(c),b_v);case +2:var +q=d[1];m(f(c),b_w);var +r=function(a){return m(b,a)},s=function(a){return m(e,a)};m(l(aB6[1],s,r,c),q);return m(f(c),b_x);case +3:var +t=d[1];m(f(c),b_y);var +u=function(a){return m(b,a)},v=function(a){return m(e,a)};m(l(aBG[3],v,u,c),t);return m(f(c),b_z);case +4:var +w=d[1];m(f(c),b_A);var +x=function(a){return m(b,a)},y=function(a){return m(e,a)};m(l(aBD[3],y,x,c),w);return m(f(c),b_B);case +5:var +z=d[1];m(f(c),b_C);var +A=function(a){return m(b,a)},B=function(a){return m(e,a)};m(l(Zi[1],B,A,c),z);return m(f(c),b_D);case +6:var +C=d[1];m(f(c),b_E);var +D=function(a){return m(b,a)},E=function(a){return m(e,a)};m(l(un[8],E,D,c),C);return m(f(c),b_F);case +7:var +F=d[1];m(f(c),b_G);var +G=function(a){return m(b,a)},H=function(a){return m(e,a)};m(l(aBO[1],H,G,c),F);return m(f(c),b_H);case +8:var +I=d[1];m(f(c),b_I);var +J=function(a){return m(b,a)},K=function(a){return m(e,a)};m(l(vU[6],K,J,c),I);return m(f(c),b_J);case +9:var +L=d[1];m(f(c),b_K);var +M=function(a){return m(b,a)},N=function(a){return m(e,a)};m(l(gW[1],N,M,c),L);return m(f(c),b_L);case +10:var +O=d[1];m(f(c),b_M);var +P=function(a){return m(b,a)},Q=function(a){return m(e,a)};m(l(aCf[1],Q,P,c),O);return m(f(c),b_N);case +11:var +R=d[1];m(f(c),b_O);var +S=function(a){return m(b,a)},T=function(a){return m(e,a)};m(l(W4[17],T,S,c),R);return m(f(c),b_P);case +12:var +U=d[1];m(f(c),b_Q);var +V=function(a){return m(b,a)},W=function(a){return m(e,a)};m(l(W4[19],W,V,c),U);return m(f(c),b_R);case +13:var +X=d[1];m(f(c),b_S);var +Y=function(a){return m(e,a)};m(n(rg[1],Y,c),X);return m(f(c),b_T);case +14:var +Z=d[1];m(f(c),b_U);var +_=function(a){return m(e,a)};m(n(Kj[1],_,c),Z);return m(f(c),b_V);case +15:var +a=d[1];m(f(c),b_W);if(a){var +$=a[1];i(c,b_X);var +aa=function(a,b){return i(a,b_Y)},ab=function(a){return m(e,a)};m(l(am[1],ab,aa,c),$);i(c,b_Z)}else +i(c,b_0);return m(f(c),b_1);case +16:var +ac=d[1];m(f(c),b_2);var +ad=function(a){return m(e,a)};m(n(AV[1],ad,c),ac);return m(f(c),b_3);case +17:var +ae=d[1];m(f(c),b_4);var +af=function(a){return m(e,a)};m(n(AW[1],af,c),ae);return m(f(c),b_5);case +18:var +ag=d[1];m(f(c),b_6);var +ah=function(a){return m(e,a)};m(n(axj[1],ah,c),ag);return m(f(c),b_7);case +19:var +ai=d[1];m(f(c),b_8);var +aj=function(a){return m(b,a)},ak=function(a){return m(e,a)};m(l(axk[1],ak,aj,c),ai);return m(f(c),b_9);case +20:var +al=d[1];m(f(c),b__);var +an=function(a){return m(b,a)},ao=function(a){return m(e,a)};m(l(aBM[3],ao,an,c),al);return m(f(c),b_$);case +21:var +ap=d[1];m(f(c),b$a);var +aq=function(a){return m(b,a)},ar=function(a){return m(e,a)};m(l(Zl[3],ar,aq,c),ap);return m(f(c),b$b);case +22:var +as=d[1];m(f(c),b$c);var +at=function(a){return m(e,a)};m(n(aB$[1],at,c),as);return m(f(c),b$d);case +23:var +au=d[1];m(f(c),b$e);var +av=function(a){return m(b,a)},aw=function(a){return m(e,a)};m(l(aBT[1],aw,av,c),au);return m(f(c),b$f);case +24:var +ax=d[1];m(f(c),b$g);var +ay=function(a){return m(b,a)},az=function(a){return m(e,a)};m(l(aBv[5],az,ay,c),ax);return m(f(c),b$h);case +25:var +aA=d[1];m(f(c),b$i);var +aB=function(a){return m(b,a)},aC=function(a){return m(e,a)};m(l(aBW[1],aC,aB,c),aA);return m(f(c),b$j);case +26:var +aD=d[1];m(f(c),b$k);var +aE=function(a){return m(b,a)},aF=function(a){return m(e,a)};m(l(aB0[1],aF,aE,c),aD);return m(f(c),b$l);case +27:var +aG=d[1];m(f(c),b$m);var +aH=function(a){return m(b,a)},aI=function(a){return m(e,a)};m(l(aBx[1],aI,aH,c),aG);return m(f(c),b$n);case +28:var +aJ=d[1];m(f(c),b$o);var +aK=function(a){return m(e,a)};m(n(aCd[1],aK,c),aJ);return m(f(c),b$p);case +29:var +aL=d[1];m(f(c),b$q);var +aM=function(a){return m(b,a)},aN=function(a){return m(e,a)};m(l(aBl[1],aN,aM,c),aL);return m(f(c),b$r);case +30:var +aO=d[1];m(f(c),b$s);var +aP=function(a){return m(b,a)},aQ=function(a){return m(e,a)};m(l(Y4[2],aQ,aP,c),aO);return m(f(c),b$t);case +31:var +aR=d[1];m(f(c),b$u);var +aS=function(a){return m(e,a)};m(n(aCb[1],aS,c),aR);return m(f(c),b$v);case +32:var +aT=d[1];m(f(c),b$w);var +aU=function(a){return m(b,a)},aV=function(a){return m(e,a)};m(l(aB4[1],aV,aU,c),aT);return m(f(c),b$x);case +33:var +aW=d[1];m(f(c),b$y);var +aX=function(a){return m(b,a)},aY=function(a){return m(e,a)};m(l(aB9[3],aY,aX,c),aW);return m(f(c),b$z);case +34:var +aZ=d[1];m(f(c),b$A);var +a0=function(a){return m(b,a)},a1=function(a){return m(e,a)};m(l(aBA[3],a1,a0,c),aZ);return m(f(c),b$B);case +35:var +a2=d[1];m(f(c),b$C);var +a3=function(a){return m(b,a)},a4=function(a){return m(e,a)};m(l(aBJ[3],a4,a3,c),a2);return m(f(c),b$D);default:var +a5=d[1];m(f(c),b$E);var +a6=function(a){return m(b,a)},a7=function(a){return m(e,a)};m(l(aB2[1],a7,a6,c),a5);return m(f(c),b$F)}});h(aCh,function(a,b,c){var +d=m(m(LF,a),b);return n(z(b$G),d,c)});hj(b$H,fW,[0,aA9,bY2,Y0,aBe,Y4,aBl,aBv,aBx,aBA,aBD,aBG,aBJ,aBM,aBO,LB,aBP,Zf,aBT,Zi,aBW,Zl,aB0,aB2,aB4,aB6,aB9,aB$,aCb,aCd,aCf,Zv,aCg,LF,aCh]);var +Zw=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCi=function +d(a,b,c){return d.fun(a,b,c)},LG=function +d(a,b,c){return d.fun(a,b,c)},aCj=function +c(a,b){return c.fun(a,b)};h(Zw,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),b$I);m(m(b,c),g);m(f(c),b$J);m(n(LG,function(a){return m(e,a)},c),a);return m(f(c),b$K)});h(aCi,function(a,b,c){var +d=m(m(Zw,a),b);return n(z(b$L),d,c)});h(LG,function(d,b,c){m(f(b),b$M);n(f(b),b$O,b$N);var +e=c[1];m(m(f(b),b$P),e);m(f(b),b$Q);m(f(b),b$R);n(f(b),b$T,b$S);var +a=c[2];if(a){var +g=a[1];i(b,b$U);var +h=function(a,b){return i(a,b$V)},j=function(a){return m(d,a)};m(l(am[1],j,h,b),g);i(b,b$W)}else +i(b,b$X);m(f(b),b$Y);return m(f(b),b$Z)});h(aCj,function(a,b){var +c=m(LG,a);return n(z(b$0),c,b)});var +xY=[0,Zw,aCi,LG,aCj],Zx=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCk=function +d(a,b,c){return d.fun(a,b,c)},LH=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCl=function +d(a,b,c){return d.fun(a,b,c)};h(Zx,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),b$1);m(m(e,c),g);m(f(c),b$2);function +h(a){return m(b,a)}m(l(LH,function(a){return m(e,a)},h,c),a);return m(f(c),b$3)});h(aCk,function(a,b,c){var +d=m(m(Zx,a),b);return n(z(b$4),d,c)});h(LH,function(e,b,c,d){m(f(c),b$5);n(f(c),b$7,b$6);var +a=d[1];function +g(a){return m(b,a)}function +h(a){return m(e,a)}m(l(xY[1],h,g,c),a);m(f(c),b$8);m(f(c),b$9);n(f(c),b$$,b$_);var +i=d[2];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(xY[1],k,j,c),i);m(f(c),caa);return m(f(c),cab)});h(aCl,function(a,b,c){var +d=m(m(LH,a),b);return n(z(cac),d,c)});var +Zy=[0,Zx,aCk,LH,aCl],Zz=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCm=function +d(a,b,c){return d.fun(a,b,c)},LI=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCn=function +d(a,b,c){return d.fun(a,b,c)};h(Zz,function(e,b,c,d){m(f(c),cad);n(f(c),caf,cae);var +g=d[1];function +h(a){return m(b,a)}m(l(LI,function(a){return m(e,a)},h,c),g);m(f(c),cag);m(f(c),cah);n(f(c),caj,cai);var +a=d[2];if(a){var +j=a[1];i(c,cak);var +k=function(c,b){m(f(c),cal);var +a=0;M(function(a,b){if(a)m(f(c),cam);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),can)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,cao)}else +i(c,cap);m(f(c),caq);return m(f(c),car)});h(aCm,function(a,b,c){var +d=m(m(Zz,a),b);return n(z(cas),d,c)});h(LI,function(e,b,c,d){if(!d)return i(c,cav);var +a=d[1];m(f(c),cat);function +g(a){return m(b,a)}function +h(a){return m(e,a)}m(l(fW[31],h,g,c),a);return m(f(c),cau)});h(aCn,function(a,b,c){var +d=m(m(LI,a),b);return n(z(caw),d,c)});var +ZA=[0,Zz,aCm,LI,aCn],aCo=function(a,b){m(f(a),cax);n(f(a),caz,cay);var +c=b[1];m(m(f(a),caA),c);m(f(a),caB);m(f(a),caC);n(f(a),caE,caD);var +d=b[2];m(m(f(a),caF),d);m(f(a),caG);return m(f(a),caH)},aCp=[0,aCo,function(a){return n(z(caI),aCo,a)}],ZB=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCq=function +d(a,b,c){return d.fun(a,b,c)},LJ=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCr=function +d(a,b,c){return d.fun(a,b,c)},LK=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCs=function +d(a,b,c){return d.fun(a,b,c)},LL=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCt=function +d(a,b,c){return d.fun(a,b,c)};h(ZB,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),caJ);m(m(e,c),g);m(f(c),caK);function +h(a){return m(b,a)}m(l(LL,function(a){return m(e,a)},h,c),a);return m(f(c),caL)});h(aCq,function(a,b,c){var +d=m(m(ZB,a),b);return n(z(caM),d,c)});h(LJ,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),caN);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(xY[1],h,g,c),a);return m(f(c),caO)}var +i=d[1];m(f(c),caP);function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(Zy[1],k,j,c),i);return m(f(c),caQ)});h(aCr,function(a,b,c){var +d=m(m(LJ,a),b);return n(z(caR),d,c)});h(LK,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),caS);var +h=a[2],i=a[1];m(f(c),caT);m(m(b,c),i);m(f(c),caU);var +j=function(a){return m(e,a)};m(n(rg[1],j,c),h);m(f(c),caV);return m(f(c),caW)}var +g=d[1];m(f(c),caX);var +k=g[2],o=g[1];m(f(c),caY);m(m(b,c),o);m(f(c),caZ);function +p(a){return m(b,a)}function +q(a){return m(e,a)}m(l(ZA[1],q,p,c),k);m(f(c),ca0);return m(f(c),ca1)});h(aCs,function(a,b,c){var +d=m(m(LK,a),b);return n(z(ca2),d,c)});h(LL,function(e,b,c,d){m(f(c),ca3);n(f(c),ca5,ca4);var +g=d[1];function +h(a){return m(b,a)}m(l(LJ,function(a){return m(e,a)},h,c),g);m(f(c),ca6);m(f(c),ca7);n(f(c),ca9,ca8);var +a=d[2];if(a){var +j=a[1];i(c,ca_);var +k=function(a){return m(b,a)};m(l(LK,function(a){return m(e,a)},k,c),j);i(c,ca$)}else +i(c,cba);m(f(c),cbb);return m(f(c),cbc)});h(aCt,function(a,b,c){var +d=m(m(LL,a),b);return n(z(cbd),d,c)});var +aCu=[0,ZB,aCq,LJ,aCr,LK,aCs,LL,aCt],ZC=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCv=function +d(a,b,c){return d.fun(a,b,c)},LM=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCw=function +d(a,b,c){return d.fun(a,b,c)};h(ZC,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cbe);m(m(e,c),g);m(f(c),cbf);function +h(a){return m(b,a)}m(l(LM,function(a){return m(e,a)},h,c),a);return m(f(c),cbg)});h(aCv,function(a,b,c){var +d=m(m(ZC,a),b);return n(z(cbh),d,c)});h(LM,function(e,b,c,d){m(f(c),cbi);n(f(c),cbk,cbj);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),cbl);m(f(c),cbm);n(f(c),cbo,cbn);var +a=d[2];if(a){var +k=a[1];i(c,cbp);var +o=function(a,b){return i(a,cbq)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,cbr)}else +i(c,cbs);m(f(c),cbt);return m(f(c),cbu)});h(aCw,function(a,b,c){var +d=m(m(LM,a),b);return n(z(cbv),d,c)});var +aCx=[0,ZC,aCv,LM,aCw],LN=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCy=function +d(a,b,c){return d.fun(a,b,c)},LO=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCz=function +d(a,b,c){return d.fun(a,b,c)},LP=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCA=function +d(a,b,c){return d.fun(a,b,c)};h(LN,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cbw);m(m(e,c),g);m(f(c),cbx);function +h(a){return m(b,a)}m(l(LP,function(a){return m(e,a)},h,c),a);return m(f(c),cby)});h(aCy,function(a,b,c){var +d=m(m(LN,a),b);return n(z(cbz),d,c)});h(LO,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),cbA);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(xY[1],h,g,c),a);return m(f(c),cbB)}var +i=d[1];m(f(c),cbC);function +j(a){return m(b,a)}m(l(LN,function(a){return m(e,a)},j,c),i);return m(f(c),cbD)});h(aCz,function(a,b,c){var +d=m(m(LO,a),b);return n(z(cbE),d,c)});h(LP,function(e,b,c,d){m(f(c),cbF);n(f(c),cbH,cbG);var +a=d[1];function +g(a){return m(b,a)}m(l(LO,function(a){return m(e,a)},g,c),a);m(f(c),cbI);m(f(c),cbJ);n(f(c),cbL,cbK);var +h=d[2];function +i(a){return m(b,a)}function +j(a){return m(e,a)}m(l(xY[1],j,i,c),h);m(f(c),cbM);return m(f(c),cbN)});h(aCA,function(a,b,c){var +d=m(m(LP,a),b);return n(z(cbO),d,c)});var +aCB=[0,LN,aCy,LO,aCz,LP,aCA],EV=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCC=function +d(a,b,c){return d.fun(a,b,c)};h(EV,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),cbP);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(xY[1],h,g,c),a);return m(f(c),cbQ);case +1:var +i=d[1];m(f(c),cbR);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(Zy[1],k,j,c),i);return m(f(c),cbS);default:var +n=d[1];m(f(c),cbT);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(aCB[1],p,o,c),n);return m(f(c),cbU)}});h(aCC,function(a,b,c){var +d=m(m(EV,a),b);return n(z(cbV),d,c)});var +ZD=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCD=function +d(a,b,c){return d.fun(a,b,c)},LQ=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCE=function +d(a,b,c){return d.fun(a,b,c)},LR=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCF=function +d(a,b,c){return d.fun(a,b,c)};h(ZD,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cbW);m(m(e,c),g);m(f(c),cbX);function +h(a){return m(b,a)}m(l(LR,function(a){return m(e,a)},h,c),a);return m(f(c),cbY)});h(aCD,function(a,b,c){var +d=m(m(ZD,a),b);return n(z(cbZ),d,c)});h(LQ,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),cb0);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(aCu[1],h,g,c),a);return m(f(c),cb1)}var +i=d[1];m(f(c),cb2);function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(aCx[1],k,j,c),i);return m(f(c),cb3)});h(aCE,function(a,b,c){var +d=m(m(LQ,a),b);return n(z(cb4),d,c)});h(LR,function(g,e,c,d){m(f(c),cb5);n(f(c),cb7,cb6);var +b=d[1];function +h(a){return m(e,a)}m(l(EV,function(a){return m(g,a)},h,c),b);m(f(c),cb8);m(f(c),cb9);n(f(c),cb$,cb_);var +a=d[2];if(a){var +j=a[1];i(c,cca);var +k=function(a){return m(e,a)},o=function(a){return m(g,a)};m(l(fW[2][1],o,k,c),j);i(c,ccb)}else +i(c,ccc);m(f(c),ccd);m(f(c),cce);n(f(c),ccg,ccf);var +p=d[3];m(m(f(c),cch),p);m(f(c),cci);m(f(c),ccj);n(f(c),ccl,cck);var +q=d[4];m(f(c),ccm);var +r=0;M(function(a,b){if(a)m(f(c),ccn);function +d(a){return m(e,a)}m(l(LQ,function(a){return m(g,a)},d,c),b);return 1},r,q);m(f(c),cco);m(f(c),ccp);return m(f(c),ccq)});h(aCF,function(a,b,c){var +d=m(m(LR,a),b);return n(z(ccr),d,c)});var +aCG=[0,ZD,aCD,LQ,aCE,LR,aCF],ZE=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCH=function +d(a,b,c){return d.fun(a,b,c)},LS=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCI=function +d(a,b,c){return d.fun(a,b,c)};h(ZE,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),ccs);m(m(e,c),g);m(f(c),cct);function +h(a){return m(b,a)}m(l(LS,function(a){return m(e,a)},h,c),a);return m(f(c),ccu)});h(aCH,function(a,b,c){var +d=m(m(ZE,a),b);return n(z(ccv),d,c)});h(LS,function(e,b,c,d){m(f(c),ccw);n(f(c),ccy,ccx);var +a=d[1];function +g(a){return m(b,a)}m(l(EV,function(a){return m(e,a)},g,c),a);m(f(c),ccz);return m(f(c),ccA)});h(aCI,function(a,b,c){var +d=m(m(LS,a),b);return n(z(ccB),d,c)});var +aCJ=[0,ZE,aCH,LS,aCI],ZF=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCK=function +d(a,b,c){return d.fun(a,b,c)};h(ZF,function(e,b,c,d){m(f(c),ccC);n(f(c),ccE,ccD);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),ccF);m(f(c),ccG);n(f(c),ccI,ccH);var +a=d[2];if(a){var +k=a[1];i(c,ccJ);var +o=function(a,b){return i(a,ccK)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,ccL)}else +i(c,ccM);m(f(c),ccN);return m(f(c),ccO)});h(aCK,function(a,b,c){var +d=m(m(ZF,a),b);return n(z(ccP),d,c)});var +aCL=[0,ZF,aCK],EW=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCM=function +d(a,b,c){return d.fun(a,b,c)},LT=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCN=function +d(a,b,c){return d.fun(a,b,c)},LU=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCO=function +d(a,b,c){return d.fun(a,b,c)},LV=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCP=function +d(a,b,c){return d.fun(a,b,c)};h(EW,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),ccQ);m(m(e,c),g);m(f(c),ccR);function +h(a){return m(b,a)}m(l(LT,function(a){return m(e,a)},h,c),a);return m(f(c),ccS)});h(aCM,function(a,b,c){var +d=m(m(EW,a),b);return n(z(ccT),d,c)});h(LT,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),ccU);var +g=function(a){return m(b,a)};m(l(LU,function(a){return m(e,a)},g,c),a);return m(f(c),ccV);case +1:var +h=d[1];m(f(c),ccW);var +i=function(a){return m(b,a)};m(l(LV,function(a){return m(e,a)},i,c),h);return m(f(c),ccX);case +2:var +j=d[1];m(f(c),ccY);var +k=function(a){return m(b,a)},n=function(a){return m(e,a)};m(l(ZA[1],n,k,c),j);return m(f(c),ccZ);case +3:var +o=d[1];m(f(c),cc0);var +p=function(a){return m(b,a)},q=function(a){return m(e,a)};m(l(aCL[1],q,p,c),o);return m(f(c),cc1);default:var +r=d[1];m(f(c),cc2);m(m(aCp[1],c),r);return m(f(c),cc3)}});h(aCN,function(a,b,c){var +d=m(m(LT,a),b);return n(z(cc4),d,c)});h(LU,function(e,g,c,d){m(f(c),cc5);n(f(c),cc7,cc6);var +j=d[1];function +k(a){return m(g,a)}function +o(a){return m(e,a)}m(l(aCG[1],o,k,c),j);m(f(c),cc8);m(f(c),cc9);n(f(c),cc$,cc_);var +a=d[2];if(a){var +p=a[1];i(c,cda);var +q=function(a){return m(g,a)},r=function(a){return m(e,a)};m(l(aCJ[1],r,q,c),p);i(c,cdb)}else +i(c,cdc);m(f(c),cdd);m(f(c),cde);n(f(c),cdg,cdf);var +b=d[3],s=b[2],t=b[1];m(f(c),cdh);m(m(e,c),t);m(f(c),cdi);m(f(c),cdj);var +u=0;M(function(a,b){if(a)m(f(c),cdk);function +d(a){return m(g,a)}m(l(EW,function(a){return m(e,a)},d,c),b);return 1},u,s);m(f(c),cdl);m(f(c),cdm);m(f(c),cdn);m(f(c),cdo);n(f(c),cdq,cdp);var +h=d[4];if(h){var +v=h[1];i(c,cdr);var +w=function(a,b){return i(a,cds)},x=function(a){return m(e,a)};m(l(am[1],x,w,c),v);i(c,cdt)}else +i(c,cdu);m(f(c),cdv);return m(f(c),cdw)});h(aCO,function(a,b,c){var +d=m(m(LU,a),b);return n(z(cdx),d,c)});h(LV,function(e,g,c,d){m(f(c),cdy);n(f(c),cdA,cdz);var +h=d[1];m(m(e,c),h);m(f(c),cdB);m(f(c),cdC);n(f(c),cdE,cdD);var +j=d[2];m(m(e,c),j);m(f(c),cdF);m(f(c),cdG);n(f(c),cdI,cdH);var +a=d[3],k=a[2],o=a[1];m(f(c),cdJ);m(m(e,c),o);m(f(c),cdK);m(f(c),cdL);var +p=0;M(function(a,b){if(a)m(f(c),cdM);function +d(a){return m(g,a)}m(l(EW,function(a){return m(e,a)},d,c),b);return 1},p,k);m(f(c),cdN);m(f(c),cdO);m(f(c),cdP);m(f(c),cdQ);n(f(c),cdS,cdR);var +b=d[4];if(b){var +q=b[1];i(c,cdT);var +r=function(a,b){return i(a,cdU)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,cdV)}else +i(c,cdW);m(f(c),cdX);return m(f(c),cdY)});h(aCP,function(a,b,c){var +d=m(m(LV,a),b);return n(z(cdZ),d,c)});hj(cd0,W4,[0,xY,Zy,ZA,aCp,aCu,aCx,aCB,EV,aCC,aCG,aCJ,aCL,EW,aCM,LT,aCN,LU,aCO,LV,aCP]);var +ZG=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCQ=function +d(a,b,c){return d.fun(a,b,c)},LW=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCR=function +d(a,b,c){return d.fun(a,b,c)};h(ZG,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cd1);m(m(e,c),g);m(f(c),cd2);function +h(a){return m(b,a)}m(l(LW,function(a){return m(e,a)},h,c),a);return m(f(c),cd3)});h(aCQ,function(a,b,c){var +d=m(m(ZG,a),b);return n(z(cd4),d,c)});h(LW,function(e,b,c,d){m(f(c),cd5);n(f(c),cd7,cd6);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(qD[5],j,h,c),g);m(f(c),cd8);m(f(c),cd9);n(f(c),cd$,cd_);var +a=d[2];if(a){var +k=a[1];i(c,cea);var +o=function(a,b){return i(a,ceb)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,cec)}else +i(c,ced);m(f(c),cee);return m(f(c),cef)});h(aCR,function(a,b,c){var +d=m(m(LW,a),b);return n(z(ceg),d,c)});var +ZH=[0,ZG,aCQ,LW,aCR],LX=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCS=function +d(a,b,c){return d.fun(a,b,c)},ZI=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCT=function +d(a,b,c){return d.fun(a,b,c)},LY=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCU=function +d(a,b,c){return d.fun(a,b,c)};h(LX,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),ceh);var +i=a[2],j=a[1];m(f(c),cei);m(m(e,c),j);m(f(c),cej);var +k=function(a){return m(e,a)};m(n(rg[1],k,c),i);m(f(c),cek);return m(f(c),cel);case +1:var +g=d[1];m(f(c),cem);var +o=g[2],p=g[1];m(f(c),cen);m(m(e,c),p);m(f(c),ceo);var +q=function(a){return m(e,a)};m(n(AV[1],q,c),o);m(f(c),cep);return m(f(c),ceq);case +2:var +h=d[1];m(f(c),cer);var +r=h[2],s=h[1];m(f(c),ces);m(m(e,c),s);m(f(c),cet);var +t=function(a){return m(e,a)};m(n(AW[1],t,c),r);m(f(c),ceu);return m(f(c),cev);case +3:var +u=d[1];m(f(c),cew);var +v=function(a){return m(b,a)},w=function(a){return m(e,a)};m(l(gW[1],w,v,c),u);return m(f(c),cex);default:var +x=d[1];m(f(c),cey);var +y=function(a){return m(b,a)},z=function(a){return m(e,a)};m(l(Kk[1],z,y,c),x);return m(f(c),cez)}});h(aCS,function(a,b,c){var +d=m(m(LX,a),b);return n(z(ceA),d,c)});h(ZI,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),ceB);m(m(e,c),g);m(f(c),ceC);function +h(a){return m(b,a)}m(l(LY,function(a){return m(e,a)},h,c),a);return m(f(c),ceD)});h(aCT,function(a,b,c){var +d=m(m(ZI,a),b);return n(z(ceE),d,c)});h(LY,function(e,b,c,d){m(f(c),ceF);n(f(c),ceH,ceG);var +g=d[1];function +h(a){return m(b,a)}m(l(LX,function(a){return m(e,a)},h,c),g);m(f(c),ceI);m(f(c),ceJ);n(f(c),ceL,ceK);var +j=d[2];function +k(a){return m(b,a)}function +o(a){return m(e,a)}m(l(qD[5],o,k,c),j);m(f(c),ceM);m(f(c),ceN);n(f(c),ceP,ceO);var +a=d[3];if(a){var +p=a[1];i(c,ceQ);var +q=function(a){return m(b,a)},r=function(a){return m(e,a)};m(l(fW[31],r,q,c),p);i(c,ceR)}else +i(c,ceS);m(f(c),ceT);m(f(c),ceU);n(f(c),ceW,ceV);var +s=d[4];m(m(f(c),ceX),s);m(f(c),ceY);return m(f(c),ceZ)});h(aCU,function(a,b,c){var +d=m(m(LY,a),b);return n(z(ce0),d,c)});var +aCV=[0,LX,aCS,ZI,aCT,LY,aCU],LZ=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCW=function +d(a,b,c){return d.fun(a,b,c)},ZJ=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCX=function +d(a,b,c){return d.fun(a,b,c)};h(LZ,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),ce1);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(aCV[3],h,g,c),a);return m(f(c),ce2)}var +i=d[1];m(f(c),ce3);function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(ZH[1],k,j,c),i);return m(f(c),ce4)});h(aCW,function(a,b,c){var +d=m(m(LZ,a),b);return n(z(ce5),d,c)});h(ZJ,function(e,g,c,d){m(f(c),ce6);n(f(c),ce8,ce7);var +b=d[1];m(f(c),ce9);var +h=0;M(function(a,b){if(a)m(f(c),ce_);function +d(a){return m(g,a)}m(l(LZ,function(a){return m(e,a)},d,c),b);return 1},h,b);m(f(c),ce$);m(f(c),cfa);m(f(c),cfb);n(f(c),cfd,cfc);var +j=d[2];function +k(a){return m(g,a)}function +o(a){return m(e,a)}m(l(fu[27],o,k,c),j);m(f(c),cfe);m(f(c),cff);n(f(c),cfh,cfg);var +a=d[3];if(a){var +p=a[1];i(c,cfi);var +q=function(c,b){m(f(c),cfj);var +a=0;M(function(a,b){if(a)m(f(c),cfk);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),cfl)},r=function(a){return m(e,a)};m(l(am[1],r,q,c),p);i(c,cfm)}else +i(c,cfn);m(f(c),cfo);return m(f(c),cfp)});h(aCX,function(a,b,c){var +d=m(m(ZJ,a),b);return n(z(cfq),d,c)});var +aCY=[0,aCV,LZ,aCW,ZJ,aCX],ZK=function +e(a,b,c,d){return e.fun(a,b,c,d)},aCZ=function +d(a,b,c){return d.fun(a,b,c)},L0=function +e(a,b,c,d){return e.fun(a,b,c,d)},aC0=function +d(a,b,c){return d.fun(a,b,c)};h(ZK,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cfr);m(m(e,c),g);m(f(c),cfs);function +h(a){return m(b,a)}m(l(L0,function(a){return m(e,a)},h,c),a);return m(f(c),cft)});h(aCZ,function(a,b,c){var +d=m(m(ZK,a),b);return n(z(cfu),d,c)});h(L0,function(e,b,c,d){m(f(c),cfv);n(f(c),cfx,cfw);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(qD[5],j,h,c),g);m(f(c),cfy);m(f(c),cfz);n(f(c),cfB,cfA);var +a=d[2];if(a){var +k=a[1];i(c,cfC);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(fW[31],p,o,c),k);i(c,cfD)}else +i(c,cfE);m(f(c),cfF);return m(f(c),cfG)});h(aC0,function(a,b,c){var +d=m(m(L0,a),b);return n(z(cfH),d,c)});var +aC1=[0,ZK,aCZ,L0,aC0],L1=function +e(a,b,c,d){return e.fun(a,b,c,d)},aC2=function +d(a,b,c){return d.fun(a,b,c)},ZL=function +e(a,b,c,d){return e.fun(a,b,c,d)},aC3=function +d(a,b,c){return d.fun(a,b,c)};h(L1,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),cfI);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(aC1[1],h,g,c),a);return m(f(c),cfJ);case +1:var +i=d[1];m(f(c),cfK);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(ZH[1],k,j,c),i);return m(f(c),cfL);default:var +n=d[1];m(f(c),cfM);m(m(e,c),n);return m(f(c),cfN)}});h(aC2,function(a,b,c){var +d=m(m(L1,a),b);return n(z(cfO),d,c)});h(ZL,function(e,g,c,d){m(f(c),cfP);n(f(c),cfR,cfQ);var +b=d[1];m(f(c),cfS);var +h=0;M(function(a,b){if(a)m(f(c),cfT);function +d(a){return m(g,a)}m(l(L1,function(a){return m(e,a)},d,c),b);return 1},h,b);m(f(c),cfU);m(f(c),cfV);m(f(c),cfW);n(f(c),cfY,cfX);var +j=d[2];function +k(a){return m(g,a)}function +o(a){return m(e,a)}m(l(fu[27],o,k,c),j);m(f(c),cfZ);m(f(c),cf0);n(f(c),cf2,cf1);var +a=d[3];if(a){var +p=a[1];i(c,cf3);var +q=function(c,b){m(f(c),cf4);var +a=0;M(function(a,b){if(a)m(f(c),cf5);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),cf6)},r=function(a){return m(e,a)};m(l(am[1],r,q,c),p);i(c,cf7)}else +i(c,cf8);m(f(c),cf9);return m(f(c),cf_)});h(aC3,function(a,b,c){var +d=m(m(ZL,a),b);return n(z(cf$),d,c)});var +aC4=[0,aC1,L1,aC2,ZL,aC3],ZM=function +e(a,b,c,d){return e.fun(a,b,c,d)},aC5=function +d(a,b,c){return d.fun(a,b,c)};h(ZM,function(e,b,c,d){m(f(c),cga);n(f(c),cgc,cgb);var +a=d[1];function +g(a){return m(b,a)}function +h(a){return m(e,a)}m(l(gW[1],h,g,c),a);m(f(c),cgd);m(f(c),cge);n(f(c),cgg,cgf);var +i=d[2];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fu[27],k,j,c),i);m(f(c),cgh);m(f(c),cgi);n(f(c),cgk,cgj);var +o=d[3];m(m(f(c),cgl),o);m(f(c),cgm);return m(f(c),cgn)});h(aC5,function(a,b,c){var +d=m(m(ZM,a),b);return n(z(cgo),d,c)});var +aC6=[0,ZM,aC5],ZN=function +e(a,b,c,d){return e.fun(a,b,c,d)},aC7=function +d(a,b,c){return d.fun(a,b,c)},L2=function +e(a,b,c,d){return e.fun(a,b,c,d)},aC8=function +d(a,b,c){return d.fun(a,b,c)};h(ZN,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cgp);m(m(b,c),g);m(f(c),cgq);function +h(a){return m(b,a)}m(l(L2,function(a){return m(e,a)},h,c),a);return m(f(c),cgr)});h(aC7,function(a,b,c){var +d=m(m(ZN,a),b);return n(z(cgs),d,c)});h(L2,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),cgt);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(aCY[4],h,g,c),a);return m(f(c),cgu);case +1:var +i=d[1];m(f(c),cgv);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(aC4[4],k,j,c),i);return m(f(c),cgw);case +2:var +n=d[1];m(f(c),cgx);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(aC6[1],p,o,c),n);return m(f(c),cgy);default:var +q=d[1];m(f(c),cgz);var +r=function(a){return m(b,a)},s=function(a){return m(e,a)};m(l(fW[31],s,r,c),q);return m(f(c),cgA)}});h(aC8,function(a,b,c){var +d=m(m(L2,a),b);return n(z(cgB),d,c)});hj(cgC,qD,[0,ZH,aCY,aC4,aC6,ZN,aC7,L2,aC8]);var +ZO=function +d(a,b,c){return d.fun(a,b,c)},aC9=function +c(a,b){return c.fun(a,b)},L3=function +c(a,b){return c.fun(a,b)},aC_=function +b(a){return b.fun(a)},L4=function +c(a,b){return c.fun(a,b)},aC$=function +b(a){return b.fun(a)};h(ZO,function(a,b,c){var +d=c[2],e=c[1];m(f(b),cgD);m(m(a,b),e);m(f(b),cgE);m(m(L4,b),d);return m(f(b),cgF)});h(aC9,function(a,b){var +c=m(ZO,a);return n(z(cgG),c,b)});h(L3,function(a,b){return b?i(a,cgH):i(a,cgI)});h(aC_,function(a){return n(z(cgJ),L3,a)});h(L4,function(a,b){m(f(a),cgK);n(f(a),cgM,cgL);var +c=b[1];m(m(L3,a),c);m(f(a),cgN);m(f(a),cgO);n(f(a),cgQ,cgP);var +d=b[2];m(m(f(a),cgR),d);m(f(a),cgS);m(f(a),cgT);n(f(a),cgV,cgU);var +e=b[3];m(m(f(a),cgW),e);m(f(a),cgX);return m(f(a),cgY)});h(aC$,function(a){return n(z(cgZ),L4,a)});hj(cg0,jm,[0,ZO,aC9,L3,aC_,L4,aC$]);var +ZP=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDa=function +d(a,b,c){return d.fun(a,b,c)},L5=function +c(a,b){return c.fun(a,b)},aDb=function +b(a){return b.fun(a)},L6=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDc=function +d(a,b,c){return d.fun(a,b,c)};h(ZP,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cg1);m(m(b,c),g);m(f(c),cg2);function +h(a){return m(b,a)}m(l(L6,function(a){return m(e,a)},h,c),a);return m(f(c),cg3)});h(aDa,function(a,b,c){var +d=m(m(ZP,a),b);return n(z(cg4),d,c)});h(L5,function(a,b){switch(b){case +0:return i(a,cg5);case +1:return i(a,cg6);case +2:return i(a,cg7);default:return i(a,cg8)}});h(aDb,function(a){return n(z(cg9),L5,a)});h(L6,function(e,g,c,d){m(f(c),cg_);n(f(c),cha,cg$);var +h=d[1];m(m(L5,c),h);m(f(c),chb);m(f(c),chc);n(f(c),che,chd);var +j=d[2];function +k(a){return m(g,a)}function +o(a){return m(e,a)}m(l(fW[7][1][1],o,k,c),j);m(f(c),chf);m(f(c),chg);n(f(c),chi,chh);var +a=d[3],p=a[2],q=a[1];m(f(c),chj);m(m(e,c),q);m(f(c),chk);function +r(a){return m(g,a)}function +s(a){return m(e,a)}m(l(vU[6],s,r,c),p);m(f(c),chl);m(f(c),chm);m(f(c),chn);n(f(c),chp,cho);var +t=d[4];m(m(f(c),chq),t);m(f(c),chr);m(f(c),chs);n(f(c),chu,cht);var +u=d[5];m(f(c),chv);var +v=0;M(function(a,b){if(a)m(f(c),chw);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(un[7][1],h,d,c),b);return 1},v,u);m(f(c),chx);m(f(c),chy);m(f(c),chz);n(f(c),chB,chA);var +b=d[6];if(b){var +w=b[1];i(c,chC);var +x=function(a,b){return i(a,chD)},y=function(a){return m(e,a)};m(l(am[1],y,x,c),w);i(c,chE)}else +i(c,chF);m(f(c),chG);return m(f(c),chH)});h(aDc,function(a,b,c){var +d=m(m(L6,a),b);return n(z(chI),d,c)});var +aDd=[0,ZP,aDa,L5,aDb,L6,aDc],ZQ=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDe=function +d(a,b,c){return d.fun(a,b,c)},L7=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDf=function +d(a,b,c){return d.fun(a,b,c)},L8=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDg=function +d(a,b,c){return d.fun(a,b,c)};h(ZQ,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),chJ);m(m(b,c),g);m(f(c),chK);function +h(a){return m(b,a)}m(l(L7,function(a){return m(e,a)},h,c),a);return m(f(c),chL)});h(aDe,function(a,b,c){var +d=m(m(ZQ,a),b);return n(z(chM),d,c)});h(L7,function(e,g,c,d){m(f(c),chN);n(f(c),chP,chO);var +h=d[1];function +j(a){return m(g,a)}function +k(a){return m(e,a)}m(l(fW[7][1][1],k,j,c),h);m(f(c),chQ);m(f(c),chR);n(f(c),chT,chS);var +o=d[2];function +p(a){return m(g,a)}m(l(L8,function(a){return m(e,a)},p,c),o);m(f(c),chU);m(f(c),chV);n(f(c),chX,chW);var +q=d[3];function +r(a){return m(g,a)}function +s(a){return m(e,a)}m(l(fu[27],s,r,c),q);m(f(c),chY);m(f(c),chZ);n(f(c),ch1,ch0);var +t=d[4];m(m(f(c),ch2),t);m(f(c),ch3);m(f(c),ch4);n(f(c),ch6,ch5);var +a=d[5];if(a){var +u=a[1];i(c,ch7);var +v=function(a){return m(e,a)};m(n(vT[1],v,c),u);i(c,ch8)}else +i(c,ch9);m(f(c),ch_);m(f(c),ch$);n(f(c),cib,cia);var +w=d[6];m(f(c),cic);var +x=0;M(function(a,b){if(a)m(f(c),cid);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(un[7][1],h,d,c),b);return 1},x,w);m(f(c),cie);m(f(c),cif);m(f(c),cig);n(f(c),cii,cih);var +b=d[7];if(b){var +y=b[1];i(c,cij);var +z=function(a,b){return i(a,cik)},A=function(a){return m(e,a)};m(l(am[1],A,z,c),y);i(c,cil)}else +i(c,cim);m(f(c),cin);return m(f(c),cio)});h(aDf,function(a,b,c){var +d=m(m(L7,a),b);return n(z(cip),d,c)});h(L8,function(e,b,c,d){if(typeof +d==="number")return d?i(c,ciq):i(c,cir);var +a=d[1];m(f(c),cis);function +g(a){return m(b,a)}function +h(a){return m(e,a)}m(l(fW[31],h,g,c),a);return m(f(c),cit)});h(aDg,function(a,b,c){var +d=m(m(L8,a),b);return n(z(ciu),d,c)});var +aDh=[0,ZQ,aDe,L7,aDf,L8,aDg],ZR=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDi=function +d(a,b,c){return d.fun(a,b,c)},L9=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDj=function +d(a,b,c){return d.fun(a,b,c)};h(ZR,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),civ);m(m(b,c),g);m(f(c),ciw);function +h(a){return m(b,a)}m(l(L9,function(a){return m(e,a)},h,c),a);return m(f(c),cix)});h(aDi,function(a,b,c){var +d=m(m(ZR,a),b);return n(z(ciy),d,c)});h(L9,function(e,g,c,d){m(f(c),ciz);n(f(c),ciB,ciA);var +h=d[1];function +j(a){return m(e,a)}m(n(Ki[1],j,c),h);m(f(c),ciC);m(f(c),ciD);n(f(c),ciF,ciE);var +k=d[2];function +o(a){return m(g,a)}function +p(a){return m(e,a)}m(l(un[2][5],p,o,c),k);m(f(c),ciG);m(f(c),ciH);n(f(c),ciJ,ciI);var +q=d[3];function +r(a){return m(g,a)}function +s(a){return m(e,a)}m(l(fu[27],s,r,c),q);m(f(c),ciK);m(f(c),ciL);n(f(c),ciN,ciM);var +t=d[4];m(m(f(c),ciO),t);m(f(c),ciP);m(f(c),ciQ);n(f(c),ciS,ciR);var +a=d[5];if(a){var +u=a[1];i(c,ciT);var +v=function(a){return m(e,a)};m(n(vT[1],v,c),u);i(c,ciU)}else +i(c,ciV);m(f(c),ciW);m(f(c),ciX);n(f(c),ciZ,ciY);var +w=d[6];m(f(c),ci0);var +x=0;M(function(a,b){if(a)m(f(c),ci1);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(un[7][1],h,d,c),b);return 1},x,w);m(f(c),ci2);m(f(c),ci3);m(f(c),ci4);n(f(c),ci6,ci5);var +b=d[7];if(b){var +y=b[1];i(c,ci7);var +z=function(a,b){return i(a,ci8)},A=function(a){return m(e,a)};m(l(am[1],A,z,c),y);i(c,ci9)}else +i(c,ci_);m(f(c),ci$);return m(f(c),cja)});h(aDj,function(a,b,c){var +d=m(m(L9,a),b);return n(z(cjb),d,c)});var +aDk=[0,ZR,aDi,L9,aDj],ZS=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDl=function +d(a,b,c){return d.fun(a,b,c)},L_=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDm=function +d(a,b,c){return d.fun(a,b,c)};h(ZS,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cjc);m(m(e,c),g);m(f(c),cjd);function +h(a){return m(b,a)}m(l(L_,function(a){return m(e,a)},h,c),a);return m(f(c),cje)});h(aDl,function(a,b,c){var +d=m(m(ZS,a),b);return n(z(cjf),d,c)});h(L_,function(e,b,c,d){m(f(c),cjg);n(f(c),cji,cjh);var +h=d[1];function +j(a){return m(b,a)}function +k(a){return m(e,a)}m(l(fW[31],k,j,c),h);m(f(c),cjj);m(f(c),cjk);n(f(c),cjm,cjl);var +a=d[2];if(a){var +o=a[1];i(c,cjn);var +p=function(a){return m(b,a)},q=function(a){return m(e,a)};m(l(fu[33][1],q,p,c),o);i(c,cjo)}else +i(c,cjp);m(f(c),cjq);m(f(c),cjr);n(f(c),cjt,cjs);var +g=d[3];if(g){var +r=g[1];i(c,cju);var +s=function(a,b){return i(a,cjv)},t=function(a){return m(e,a)};m(l(am[1],t,s,c),r);i(c,cjw)}else +i(c,cjx);m(f(c),cjy);return m(f(c),cjz)});h(aDm,function(a,b,c){var +d=m(m(L_,a),b);return n(z(cjA),d,c)});var +aDn=[0,ZS,aDl,L_,aDm],ZT=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDo=function +d(a,b,c){return d.fun(a,b,c)},L$=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDp=function +d(a,b,c){return d.fun(a,b,c)};h(ZT,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cjB);m(m(e,c),g);m(f(c),cjC);function +h(a){return m(b,a)}m(l(L$,function(a){return m(e,a)},h,c),a);return m(f(c),cjD)});h(aDo,function(a,b,c){var +d=m(m(ZT,a),b);return n(z(cjE),d,c)});h(L$,function(e,b,c,d){m(f(c),cjF);n(f(c),cjH,cjG);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(gW[1],j,h,c),g);m(f(c),cjI);m(f(c),cjJ);n(f(c),cjL,cjK);var +a=d[2];if(a){var +k=a[1];i(c,cjM);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(fu[33][1],p,o,c),k);i(c,cjN)}else +i(c,cjO);m(f(c),cjP);return m(f(c),cjQ)});h(aDp,function(a,b,c){var +d=m(m(L$,a),b);return n(z(cjR),d,c)});var +aDq=[0,ZT,aDo,L$,aDp],ZU=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDr=function +d(a,b,c){return d.fun(a,b,c)},Ma=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDs=function +d(a,b,c){return d.fun(a,b,c)};h(ZU,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cjS);m(m(e,c),g);m(f(c),cjT);function +h(a){return m(b,a)}m(l(Ma,function(a){return m(e,a)},h,c),a);return m(f(c),cjU)});h(aDr,function(a,b,c){var +d=m(m(ZU,a),b);return n(z(cjV),d,c)});h(Ma,function(e,g,c,d){m(f(c),cjW);n(f(c),cjY,cjX);var +b=d[1];m(f(c),cjZ);var +h=0;M(function(a,b){if(a)m(f(c),cj0);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(aDq[1],h,d,c),b);return 1},h,b);m(f(c),cj1);m(f(c),cj2);m(f(c),cj3);n(f(c),cj5,cj4);var +a=d[2];if(a){var +j=a[1];i(c,cj6);var +k=function(a,b){return i(a,cj7)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,cj8)}else +i(c,cj9);m(f(c),cj_);return m(f(c),cj$)});h(aDs,function(a,b,c){var +d=m(m(Ma,a),b);return n(z(cka),d,c)});var +aDt=[0,aDq,ZU,aDr,Ma,aDs],ZV=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDu=function +d(a,b,c){return d.fun(a,b,c)},Mb=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDv=function +d(a,b,c){return d.fun(a,b,c)},Mc=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDw=function +d(a,b,c){return d.fun(a,b,c)};h(ZV,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),ckb);m(m(e,c),g);m(f(c),ckc);function +h(a){return m(b,a)}m(l(Mb,function(a){return m(e,a)},h,c),a);return m(f(c),ckd)});h(aDu,function(a,b,c){var +d=m(m(ZV,a),b);return n(z(cke),d,c)});h(Mb,function(e,g,c,d){m(f(c),ckf);n(f(c),ckh,ckg);var +b=d[1];m(f(c),cki);var +h=0;M(function(a,b){if(a)m(f(c),ckj);function +d(a){return m(g,a)}m(l(Mc,function(a){return m(e,a)},d,c),b);return 1},h,b);m(f(c),ckk);m(f(c),ckl);m(f(c),ckm);n(f(c),cko,ckn);var +a=d[2];if(a){var +j=a[1];i(c,ckp);var +k=function(a,b){return i(a,ckq)},o=function(a){return m(e,a)};m(l(am[1],o,k,c),j);i(c,ckr)}else +i(c,cks);m(f(c),ckt);return m(f(c),cku)});h(aDv,function(a,b,c){var +d=m(m(Mb,a),b);return n(z(ckv),d,c)});h(Mc,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),ckw);var +g=function(a){return m(b,a)},h=function(a){return m(e,a)};m(l(aDd[1],h,g,c),a);return m(f(c),ckx);case +1:var +i=d[1];m(f(c),cky);var +j=function(a){return m(b,a)},k=function(a){return m(e,a)};m(l(aDh[1],k,j,c),i);return m(f(c),ckz);default:var +n=d[1];m(f(c),ckA);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(aDk[1],p,o,c),n);return m(f(c),ckB)}});h(aDw,function(a,b,c){var +d=m(m(Mc,a),b);return n(z(ckC),d,c)});var +ZW=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDx=function +d(a,b,c){return d.fun(a,b,c)},Md=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDy=function +d(a,b,c){return d.fun(a,b,c)},ckD=[0,ZV,aDu,Mb,aDv,Mc,aDw];h(ZW,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),ckE);m(m(e,c),g);m(f(c),ckF);function +h(a){return m(b,a)}m(l(Md,function(a){return m(e,a)},h,c),a);return m(f(c),ckG)});h(aDx,function(a,b,c){var +d=m(m(ZW,a),b);return n(z(ckH),d,c)});h(Md,function(e,b,c,d){m(f(c),ckI);n(f(c),ckK,ckJ);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fW[31],j,h,c),g);m(f(c),ckL);m(f(c),ckM);n(f(c),ckO,ckN);var +a=d[2];if(a){var +k=a[1];i(c,ckP);var +o=function(a,b){return i(a,ckQ)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,ckR)}else +i(c,ckS);m(f(c),ckT);return m(f(c),ckU)});h(aDy,function(a,b,c){var +d=m(m(Md,a),b);return n(z(ckV),d,c)});var +aDz=[0,ZW,aDx,Md,aDy],ZX=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDA=function +d(a,b,c){return d.fun(a,b,c)};h(ZX,function(e,g,c,d){m(f(c),ckW);n(f(c),ckY,ckX);var +a=d[1];if(a){var +o=a[1];i(c,ckZ);var +p=function(a){return m(g,a)},q=function(a){return m(e,a)};m(l(gW[1],q,p,c),o);i(c,ck0)}else +i(c,ck1);m(f(c),ck2);m(f(c),ck3);n(f(c),ck5,ck4);var +r=d[2];function +s(a){return m(g,a)}function +t(a){return m(e,a)}m(l(un[6][1],t,s,c),r);m(f(c),ck6);m(f(c),ck7);n(f(c),ck9,ck8);var +b=d[3];if(b){var +u=b[1];i(c,ck_);var +v=function(a){return m(g,a)},w=function(a){return m(e,a)};m(l(fu[32][1],w,v,c),u);i(c,ck$)}else +i(c,cla);m(f(c),clb);m(f(c),clc);n(f(c),cle,cld);var +h=d[4];if(h){var +x=h[1];i(c,clf);var +y=function(a){return m(g,a)},z=function(a){return m(e,a)};m(l(aDn[1],z,y,c),x);i(c,clg)}else +i(c,clh);m(f(c),cli);m(f(c),clj);n(f(c),cll,clk);var +j=d[5];if(j){var +A=j[1];i(c,clm);var +B=function(a){return m(g,a)},C=function(a){return m(e,a)};m(l(aDt[2],C,B,c),A);i(c,cln)}else +i(c,clo);m(f(c),clp);m(f(c),clq);n(f(c),cls,clr);var +D=d[6];m(f(c),clt);var +E=0;M(function(a,b){if(a)m(f(c),clu);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(aDz[1],h,d,c),b);return 1},E,D);m(f(c),clv);m(f(c),clw);m(f(c),clx);n(f(c),clz,cly);var +k=d[7];if(k){var +F=k[1];i(c,clA);var +G=function(a,b){return i(a,clB)},H=function(a){return m(e,a)};m(l(am[1],H,G,c),F);i(c,clC)}else +i(c,clD);m(f(c),clE);return m(f(c),clF)});h(aDA,function(a,b,c){var +d=m(m(ZX,a),b);return n(z(clG),d,c)});hj(clH,un,[0,aDd,aDh,aDk,aDn,aDt,ckD,aDz,ZX,aDA]);var +ZY=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDB=function +d(a,b,c){return d.fun(a,b,c)},Me=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDC=function +d(a,b,c){return d.fun(a,b,c)};h(ZY,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),clI);m(m(e,c),g);m(f(c),clJ);function +h(a){return m(b,a)}m(l(Me,function(a){return m(e,a)},h,c),a);return m(f(c),clK)});h(aDB,function(a,b,c){var +d=m(m(ZY,a),b);return n(z(clL),d,c)});h(Me,function(e,b,c,d){m(f(c),clM);n(f(c),clO,clN);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(qD[5],j,h,c),g);m(f(c),clP);m(f(c),clQ);n(f(c),clS,clR);var +a=d[2];if(a){var +k=a[1];i(c,clT);var +o=function(a,b){return i(a,clU)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,clV)}else +i(c,clW);m(f(c),clX);return m(f(c),clY)});h(aDC,function(a,b,c){var +d=m(m(Me,a),b);return n(z(clZ),d,c)});var +aDD=[0,ZY,aDB,Me,aDC],ZZ=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDE=function +d(a,b,c){return d.fun(a,b,c)},Mf=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDF=function +d(a,b,c){return d.fun(a,b,c)};h(ZZ,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cl0);m(m(e,c),g);m(f(c),cl1);function +h(a){return m(b,a)}m(l(Mf,function(a){return m(e,a)},h,c),a);return m(f(c),cl2)});h(aDE,function(a,b,c){var +d=m(m(ZZ,a),b);return n(z(cl3),d,c)});h(Mf,function(e,b,c,d){m(f(c),cl4);n(f(c),cl6,cl5);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(qD[5],j,h,c),g);m(f(c),cl7);m(f(c),cl8);n(f(c),cl_,cl9);var +a=d[2];if(a){var +k=a[1];i(c,cl$);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(fW[31],p,o,c),k);i(c,cma)}else +i(c,cmb);m(f(c),cmc);return m(f(c),cmd)});h(aDF,function(a,b,c){var +d=m(m(Mf,a),b);return n(z(cme),d,c)});var +aDG=[0,ZZ,aDE,Mf,aDF],Z0=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDH=function +d(a,b,c){return d.fun(a,b,c)},Mg=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDI=function +d(a,b,c){return d.fun(a,b,c)};h(Z0,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cmf);m(m(e,c),g);m(f(c),cmg);function +h(a){return m(b,a)}m(l(Mg,function(a){return m(e,a)},h,c),a);return m(f(c),cmh)});h(aDH,function(a,b,c){var +d=m(m(Z0,a),b);return n(z(cmi),d,c)});h(Mg,function(e,b,c,d){m(f(c),cmj);n(f(c),cml,cmk);var +g=d[1];function +h(a){return m(b,a)}function +j(a){return m(e,a)}m(l(fu[23],j,h,c),g);m(f(c),cmm);m(f(c),cmn);n(f(c),cmp,cmo);var +a=d[2];if(a){var +k=a[1];i(c,cmq);var +o=function(a,b){return i(a,cmr)},p=function(a){return m(e,a)};m(l(am[1],p,o,c),k);i(c,cms)}else +i(c,cmt);m(f(c),cmu);return m(f(c),cmv)});h(aDI,function(a,b,c){var +d=m(m(Mg,a),b);return n(z(cmw),d,c)});var +aDJ=[0,Z0,aDH,Mg,aDI],Z1=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDK=function +d(a,b,c){return d.fun(a,b,c)},Mh=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDL=function +d(a,b,c){return d.fun(a,b,c)};h(Z1,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cmx);m(m(e,c),g);m(f(c),cmy);function +h(a){return m(b,a)}m(l(Mh,function(a){return m(e,a)},h,c),a);return m(f(c),cmz)});h(aDK,function(a,b,c){var +d=m(m(Z1,a),b);return n(z(cmA),d,c)});h(Mh,function(e,g,c,d){m(f(c),cmB);n(f(c),cmD,cmC);var +a=d[1];if(a){var +j=a[1];i(c,cmE);var +k=function(a){return m(g,a)},o=function(a){return m(e,a)};m(l(aDJ[1],o,k,c),j);i(c,cmF)}else +i(c,cmG);m(f(c),cmH);m(f(c),cmI);n(f(c),cmK,cmJ);var +p=d[2];m(f(c),cmL);var +q=0;M(function(a,b){if(a)m(f(c),cmM);function +d(a){return m(g,a)}function +h(a){return m(e,a)}m(l(aDG[1],h,d,c),b);return 1},q,p);m(f(c),cmN);m(f(c),cmO);m(f(c),cmP);n(f(c),cmR,cmQ);var +b=d[3];if(b){var +r=b[1];i(c,cmS);var +s=function(a){return m(g,a)},t=function(a){return m(e,a)};m(l(aDD[1],t,s,c),r);i(c,cmT)}else +i(c,cmU);m(f(c),cmV);m(f(c),cmW);n(f(c),cmY,cmX);var +h=d[4];if(h){var +u=h[1];i(c,cmZ);var +v=function(c,b){m(f(c),cm0);var +a=0;M(function(a,b){if(a)m(f(c),cm1);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},a,b);return m(f(c),cm2)},w=function(a){return m(e,a)};m(l(am[1],w,v,c),u);i(c,cm3)}else +i(c,cm4);m(f(c),cm5);return m(f(c),cm6)});h(aDL,function(a,b,c){var +d=m(m(Mh,a),b);return n(z(cm7),d,c)});var +aDM=[0,Z1,aDK,Mh,aDL],Z2=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDN=function +d(a,b,c){return d.fun(a,b,c)};h(Z2,function(e,b,c,d){switch(d[0]){case +0:var +a=d[1];m(f(c),cm8);m(m(b,c),a);return m(f(c),cm9);case +1:var +g=d[1];m(f(c),cm_);var +h=function(a){return m(b,a)},i=function(a){return m(e,a)};m(l(fu[23],i,h,c),g);return m(f(c),cm$);default:var +j=d[1];m(f(c),cna);var +k=function(a){return m(b,a)},n=function(a){return m(e,a)};m(l(fu[25],n,k,c),j);return m(f(c),cnb)}});h(aDN,function(a,b,c){var +d=m(m(Z2,a),b);return n(z(cnc),d,c)});var +aDO=[0,Z2,aDN],Z3=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDP=function +d(a,b,c){return d.fun(a,b,c)},Mi=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDQ=function +d(a,b,c){return d.fun(a,b,c)};h(Z3,function(e,b,c,d){m(f(c),cnd);n(f(c),cnf,cne);var +a=d[1];if(a){var +k=a[1];i(c,cng);var +o=function(a){return m(b,a)},p=function(a){return m(e,a)};m(l(gW[1],p,o,c),k);i(c,cnh)}else +i(c,cni);m(f(c),cnj);m(f(c),cnk);n(f(c),cnm,cnl);var +q=d[2];function +r(a){return m(b,a)}function +s(a){return m(e,a)}m(l(aDM[1],s,r,c),q);m(f(c),cnn);m(f(c),cno);n(f(c),cnq,cnp);var +t=d[3];function +u(a){return m(b,a)}m(l(Mi,function(a){return m(e,a)},u,c),t);m(f(c),cnr);m(f(c),cns);n(f(c),cnu,cnt);var +v=d[4];m(m(f(c),cnv),v);m(f(c),cnw);m(f(c),cnx);n(f(c),cnz,cny);var +w=d[5];m(m(f(c),cnA),w);m(f(c),cnB);m(f(c),cnC);n(f(c),cnE,cnD);var +g=d[6];if(g){var +x=g[1];i(c,cnF);var +y=function(a){return m(b,a)},z=function(a){return m(e,a)};m(l(fu[34][1],z,y,c),x);i(c,cnG)}else +i(c,cnH);m(f(c),cnI);m(f(c),cnJ);n(f(c),cnL,cnK);var +A=d[7];function +B(a){return m(b,a)}function +C(a){return m(e,a)}m(l(aDO[1],C,B,c),A);m(f(c),cnM);m(f(c),cnN);n(f(c),cnP,cnO);var +h=d[8];if(h){var +D=h[1];i(c,cnQ);var +E=function(a){return m(b,a)},F=function(a){return m(e,a)};m(l(fu[32][1],F,E,c),D);i(c,cnR)}else +i(c,cnS);m(f(c),cnT);m(f(c),cnU);n(f(c),cnW,cnV);var +j=d[9];if(j){var +G=j[1];i(c,cnX);var +H=function(a,b){return i(a,cnY)},I=function(a){return m(e,a)};m(l(am[1],I,H,c),G);i(c,cnZ)}else +i(c,cn0);m(f(c),cn1);m(f(c),cn2);n(f(c),cn4,cn3);var +J=d[10];m(m(e,c),J);m(f(c),cn5);return m(f(c),cn6)});h(aDP,function(a,b,c){var +d=m(m(Z3,a),b);return n(z(cn7),d,c)});h(Mi,function(e,b,c,d){if(0===d[0]){var +a=d[1];m(f(c),cn8);var +g=a[2],h=a[1];m(f(c),cn9);m(m(e,c),h);m(f(c),cn_);var +i=function(a){return m(b,a)},j=function(a){return m(e,a)};m(l(kV[1][1],j,i,c),g);m(f(c),cn$);return m(f(c),coa)}var +k=d[1];m(f(c),cob);function +n(a){return m(b,a)}function +o(a){return m(e,a)}m(l(fW[31],o,n,c),k);return m(f(c),coc)});h(aDQ,function(a,b,c){var +d=m(m(Mi,a),b);return n(z(cod),d,c)});hj(coe,vU,[0,aDD,aDG,aDJ,aDM,aDO,Z3,aDP,Mi,aDQ]);var +Z4=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDR=function +d(a,b,c){return d.fun(a,b,c)},Mj=function +e(a,b,c,d){return e.fun(a,b,c,d)},aDS=function +d(a,b,c){return d.fun(a,b,c)};h(Z4,function(e,b,c,d){var +a=d[2],g=d[1];m(f(c),cof);m(m(e,c),g);m(f(c),cog);function +h(a){return m(b,a)}m(l(Mj,function(a){return m(e,a)},h,c),a);return m(f(c),coh)});h(aDR,function(a,b,c){var +d=m(m(Z4,a),b);return n(z(coi),d,c)});h(Mj,function(e,h,c,d){m(f(c),coj);n(f(c),col,cok);var +j=d[1];m(f(c),com);var +k=0;M(function(a,b){if(a)m(f(c),con);function +d(a){return m(h,a)}function +g(a){return m(e,a)}m(l(kV[37],g,d,c),b);return 1},k,j);m(f(c),coo);m(f(c),cop);m(f(c),coq);n(f(c),cos,cor);var +a=d[2];if(a){var +b=a[1];i(c,cot);var +o=b[2],p=b[1];m(f(c),cou);m(m(e,c),p);m(f(c),cov);m(m(f(c),cow),o);m(f(c),cox);i(c,coy)}else +i(c,coz);m(f(c),coA);m(f(c),coB);n(f(c),coD,coC);var +g=d[3];if(g){var +q=g[1];i(c,coE);var +r=function(a,b){return i(a,coF)},s=function(a){return m(e,a)};m(l(am[1],s,r,c),q);i(c,coG)}else +i(c,coH);m(f(c),coI);m(f(c),coJ);n(f(c),coL,coK);var +t=d[4];m(f(c),coM);var +u=0;M(function(a,b){if(a)m(f(c),coN);function +d(a){return m(e,a)}m(n(jm[1],d,c),b);return 1},u,t);m(f(c),coO);m(f(c),coP);return m(f(c),coQ)});h(aDS,function(a,b,c){var +d=m(m(Mj,a),b);return n(z(coR),d,c)});hj(coS,be$,[0,Z4,aDR,Mj,aDS]);var +a3=function(a,b){if(!b)return b;var +c=b[1],d=m(a,c);return c===d?b:[0,d]},fb=function(a,b,c,d,e){var +f=n(a,b,c);return c===f?d:m(e,f)},aw=function(a,b,c,d){var +e=m(a,b);return b===e?c:m(d,e)},ib=function(a,b){var +c=b[1],d=b[2];return fb(a,c,d,b,function(a){return[0,c,a]})},aDT=function(c,b){return a3(function(a){var +b=a[1],d=a[2];return fb(c,b,d,a,function(a){return[0,b,a]})},b)},gy=function(d,b){var +a=M(function(a,b){var +e=a[2],f=a[1],c=m(d,b),g=e||(c!==b?1:0);return[0,[0,c,f],g]},coV,b),c=a[1];return a[2]?U(c):b},vV=gP(coU,function(Z){var +a=fR(Z,coT),aR=a[1],aS=a[2],aT=a[3],p=a[4],aU=a[5],aV=a[6],aW=a[7],z=a[8],aX=a[9],aY=a[10],aZ=a[11],a0=a[12],a1=a[13],a2=a[14],a4=a[15],_=a[16],j=a[17],J=a[18],$=a[19],aa=a[20],a5=a[21],ab=a[22],a6=a[23],A=a[24],s=a[25],k=a[26],K=a[27],f=a[28],a7=a[29],a8=a[30],a9=a[31],a_=a[32],a$=a[33],ba=a[34],bb=a[35],bc=a[36],bd=a[37],be=a[38],ac=a[39],bf=a[40],d=a[41],b=a[42],bg=a[43],bh=a[44],bi=a[45],t=a[46],L=a[47],bj=a[48],h=a[49],bk=a[50],ad=a[51],bl=a[52],bm=a[53],ae=a[54],bn=a[55],bo=a[56],bp=a[57],N=a[59],v=a[60],ag=a[61],bq=a[62],br=a[63],bs=a[64],bt=a[65],bu=a[66],bv=a[67],bw=a[68],bx=a[69],by=a[70],bz=a[71],bA=a[72],bB=a[73],bC=a[74],i=a[75],bD=a[76],bE=a[77],bF=a[78],bG=a[79],bH=a[80],bI=a[81],bJ=a[82],u=a[83],bK=a[84],bL=a[85],bM=a[86],P=a[87],bN=a[88],bO=a[89],bP=a[90],B=a[91],bQ=a[92],bR=a[93],bS=a[94],bT=a[95],bU=a[96],bV=a[97],bW=a[98],bX=a[99],bY=a[hZ],bZ=a[iK],q=a[iZ],b0=a[iU],b1=a[iQ],b2=a[i$],b3=a[hq],C=a[hb],b4=a[i1],b5=a[jw],b6=a[hr],b7=a[iT],b8=a[hy],b9=a[gt],b_=a[iR],b$=a[jx],ca=a[jY],cb=a[kL],ai=a[kv],cc=a[k8],cd=a[iJ],Q=a[k$],ce=a[gN],cf=a[hB],cg=a[jX],ch=a[E],ci=a[lj],aj=a[gx],cj=a[gO],ck=a[ju],ak=a[kr],c=a[l8],al=a[ks],am=a[ma],cl=a[jI],cm=a[mc],an=a[pJ],ap=a[lF],aq=a[lK],cn=a[pP],ar=a[q9],co=a[kw],cp=a[mf],cq=a[md],cr=a[mg],cs=a[lL],ct=a[pK],cu=a[k7],cv=a[nq],cw=a[qf],cx=a[lC],cy=a[qr],R=a[mi],cz=a[pQ],as=a[rH],cA=a[pN],cB=a[l6],cC=a[qp],cD=a[ou],cE=a[q7],cF=a[kO],cG=a[k9],cH=a[kp],cI=a[qe],cJ=a[lQ],g=a[lE],w=a[lg],cK=a[k6],at=a[kc],cL=a[lc],D=a[oA],cM=a[rI],cN=a[vp],cO=a[xn],cP=a[t3],cQ=a[tL],cR=a[pR],au=a[vr],av=a[wY],cS=a[sO],ax=a[q0],x=a[qX],cT=a[t2],cU=a[oE],cV=a[l_],cW=a[jH],S=a[q5],cX=a[oi],cY=a[rO],cZ=a[q4],c0=a[sW],c1=a[qd],c2=a[lN],c3=a[qS],c4=a[qT],c5=a[tW],c6=a[wN],c7=a[wT],c8=a[tT],c9=a[tE],e=a[qb],ay=a[t_],az=a[tN],c_=a[zr],c$=a[w0],da=a[Dn],db=a[w4],dc=a[vj],dd=a[Do],de=a[H_],df=a[Ak],dg=a[t8],dh=a[xp],y=a[xc],aA=a[rT],T=a[rR],di=a[C3],dj=a[tU],dk=a[xl],dl=a[CV],dm=a[xe],dn=a[Ab],dp=a[Dv],F=a[xw],aB=a[tO],dq=a[Df],dr=a[wR],ds=a[Dy],dt=a[DC],aC=a[zs],du=a[QM],dv=a[xg],dw=a[Hk],aD=a[zD],aE=a[w8],dx=a[Db],dy=a[CS],dz=a[Sd],dA=a[xq],aF=a[wQ],dB=a[vn],aG=a[UY],dC=a[Dz],dD=a[Dr],dE=a[C4],V=a[DQ],dF=a[O],aH=a[zk],aI=a[fy],dG=a[C_],aJ=a[ah],dH=a[qm],dI=a[ld],W=a[zu],aK=a[sv],dJ=a[lf],dK=a[la],dL=a[xa],dM=a[vc],aL=a[tH],aM=a[QY],dN=a[zq],dO=a[Di],dP=a[HZ],G=a[z4],dQ=a[Hp],dR=a[wZ],aN=a[vk],dS=a[Al],dT=a[wW],dU=a[t7],X=a[zI],dV=a[IB],aO=a[vu],dW=a[Rl],aP=a[zy],dX=a[RH],r=a[zN],o=a[alg],H=a[vi],dY=a[DK],I=a[Jc],Y=a[zK],dZ=a[C0],d0=a[HT],d1=a[CN],d2=a[w2],d3=a[va],d4=a[sT],aQ=a[sP],d5=a[58];function +d6(a,b,c){var +f=c[2],g=c[1],j=c[4],k=c[3],h=a3(m(a[1][1+e],a),g),i=n(a[1][1+d],a,f);if(f===i&&g===h)return c;return[0,h,i,k,j]}function +d7(a,b,c){var +e=c[4],g=c[3],h=c[2],i=c[1],k=n(a[1][1+o],a,i),l=a3(m(a[1][1+j],a),h),p=n(a[1][1+f],a,g),q=n(a[1][1+d],a,e);if(i===k&&g===p&&h===l&&e===q)return c;return[0,k,l,p,q]}function +d8(a,b,c){var +f=c[3],g=c[2],i=c[1],j=n(a[1][1+e],a,i),k=n(a[1][1+h],a,g),l=n(a[1][1+d],a,f);if(i===j&&g===k&&f===l)return c;return[0,j,k,l]}function +d9(a,b,c){var +e=c[3],f=c[2],g=c[1],i=n(a[1][1+v],a,g),j=n(a[1][1+h],a,f),k=n(a[1][1+d],a,e);if(g===i&&f===j&&e===k)return c;return[0,i,j,k]}function +d_(a,b,c){var +d=c[2],f=d[2],g=d[1],j=c[1],h=l(a[1][1+aV],a,b,g),i=a3(m(a[1][1+e],a),f);if(g===h&&f===i)return c;return[0,j,[0,h,i]]}function +d$(a,b,c){var +e=c[3],f=c[2],g=c[1],h=gy(n(a[1][1+aW],a,f),g),i=n(a[1][1+d],a,e);if(g===h&&e===i)return c;return[0,h,f,i]}function +ea(a,b,c){var +f=c[4],g=c[2],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,c[1],h,c[3],i]}function +eb(a,b,c){var +f=c[3],g=c[2],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,c[1],h,i]}function +ec(a,b,c){var +h=c[3],g=c[2],i=c[1],j=n(a[1][1+e],a,i);if(g)var +k=g[1],l=n(a[1][1+f],a,k),p=k===l?g:[0,l],m=p;else +var +m=g;var +o=n(a[1][1+d],a,h);if(j===i&&o===h)return c;return[0,j,m,o]}function +ed(a,b,c){var +f=c[3],g=c[2],h=c[1],i=n(a[1][1+e],a,h),j=n(a[1][1+k],a,g),l=n(a[1][1+d],a,f);if(i===h&&j===g&&l===f)return c;return[0,i,j,l]}function +ee(a,b,c){var +i=c[4],e=c[3],f=c[2],j=c[1],k=ib(m(a[1][1+r],a),j);if(f)var +l=f[1],o=l[1],t=l[2],u=function(a){return[0,[0,o,a]]},g=fb(m(a[1][1+dT],a),o,t,f,u);else +var +g=f;if(e)var +p=e[1],q=p[1],v=p[2],w=function(a){return[0,[0,q,a]]},h=fb(m(a[1][1+r],a),q,v,e,w);else +var +h=e;var +s=n(a[1][1+d],a,i);if(j===k&&f===g&&e===h&&i===s)return c;return[0,k,g,h,s]}function +ef(a,b,c){var +f=c[2],g=c[1],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,h,i]}function +eg(a,b,c){var +e=c[1],f=n(a[1][1+d],a,e);return e===f?c:[0,f]}function +eh(a,b){return b}function +ei(a,b,c){var +f=c[3],g=c[2],h=c[1],i=gy(m(a[1][1+be],a),h),j=gy(m(a[1][1+e],a),g),k=n(a[1][1+d],a,f);if(h===i&&g===j&&f===k)return c;return[0,i,j,k]}function +ej(a,b,c){var +f=c[3],g=c[2],h=c[1],i=n(a[1][1+e],a,h),j=ib(m(a[1][1+ac],a),g),k=n(a[1][1+d],a,f);if(h===i&&g===j&&f===k)return c;return[0,i,j,k]}function +ek(a,b){var +c=b[2],f=c[3],g=c[2],h=c[1],l=b[1],i=a3(m(a[1][1+e],a),h),j=n(a[1][1+L],a,g),k=n(a[1][1+d],a,f);if(h===i&&g===j&&f===k)return b;return[0,l,[0,i,j,k]]}function +el(a,b,c){var +f=c[3],g=c[2],h=c[1],l=c[4],i=n(a[1][1+e],a,h),j=gy(m(a[1][1+bg],a),g),k=n(a[1][1+d],a,f);if(h===i&&g===j&&f===k)return c;return[0,i,j,k,l]}function +em(a,b,c){var +e=c[1],f=n(a[1][1+d],a,e);return e===f?c:[0,f]}function +en(a,b){var +c=b[2],f=c[2],g=c[1],j=b[1],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return b;return[0,j,[0,h,i]]}function +eo(a,b){var +c=b[2],f=c[2],g=c[1],j=b[1],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return b;return[0,j,[0,h,i]]}function +ep(a,b){return[0,n(a[1][1+h],a,b),0]}function +eq(a,b){var +h=m(a[1][1+bj],a),c=M(function(a,b){var +f=a[2],d=a[1],c=m(h,b);if(!c)return[0,d,1];if(c[2])return[0,hh(c,d),1];var +e=c[1],g=f||(b!==e?1:0);return[0,[0,e,d],g]},coW,b),d=c[1];return c[2]?U(d):b}function +er(a,b){return n(a[1][1+L],a,b)}function +es(a,b,c){var +f=c[2],g=c[1],h=gy(m(a[1][1+e],a),g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,h,i]}function +et(a,b,c){var +f=c[2],g=c[1],j=c[3],h=a3(m(a[1][1+e],a),g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,h,i,j]}function +eu(a,b){var +c=b[2],e=c[2],f=c[1],i=b[1],g=n(a[1][1+av],a,f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return b;return[0,i,[0,g,h]]}function +ev(a,b){var +c=b[2],e=c[3],h=c[2],i=h[2],j=h[1],p=c[1],q=b[1],k=n(a[1][1+g],a,j),l=a3(m(a[1][1+f],a),i),o=n(a[1][1+d],a,e);if(k===j&&l===i&&o===e)return b;return[0,q,[0,p,[0,k,l],o]]}function +ew(a,b){var +c=b[2],e=b[1],d=n(a[1][1+ab],a,c);return ao(d,c)?b:[0,e,d]}function +ex(a,b){return n(a[1][1+e],a,b)}function +ey(a,b){var +g=b[2],h=g[2],c=g[1],j=b[1];if(c)var +k=c[1],l=function(a){return[0,a]},f=aw(m(a[1][1+e],a),k,c,l);else +var +f=c;var +i=n(a[1][1+d],a,h);if(c===f&&h===i)return b;return[0,j,[0,f,i]]}function +ez(a,b){return n(a[1][1+e],a,b)}function +eA(a,b,c){return l(a[1][1+u],a,b,c)}function +eB(a,b,c){var +e=c[2],f=e[2],g=e[1],j=c[1],h=l(a[1][1+bF],a,b,g),i=n(a[1][1+d],a,f);if(h===g&&f===i)return c;return[0,j,[0,h,i]]}function +eC(a,b,c){return l(a[1][1+u],a,b,c)}function +eD(a,b,c){var +d=c[2],e=d[2],f=d[1],i=c[1],g=l(a[1][1+bH],a,b,f),h=n(a[1][1+F],a,e);if(f===g&&e===h)return c;return[0,i,[0,g,h]]}function +eE(a,b,c){switch(c[0]){case +0:var +d=c[1],e=function(a){return[0,a]};return aw(n(a[1][1+bI],a,b),d,c,e);case +1:var +f=c[1],g=function(a){return[1,a]};return aw(n(a[1][1+bG],a,b),f,c,g);default:return c}}function +eF(a,b,c){return l(a[1][1+u],a,b,c)}function +eG(a,b,c){return l(a[1][1+u],a,b,c)}function +eH(a,b,c){var +e=c[2],f=e[2],g=e[1],j=c[1],h=l(a[1][1+br],a,b,g),i=n(a[1][1+d],a,f);if(h===g&&f===i)return c;return[0,j,[0,h,i]]}function +eI(a,b,c){return n(a[1][1+aF],a,c)}function +eJ(a,b,c){return l(a[1][1+i],a,b,c)}function +eK(a,b,c){var +d=c[1],e=c[2];function +f(a){return[0,d,a]}return fb(n(a[1][1+bE],a,b),d,e,c,f)}function +eL(a,b,c){var +d=c[1],e=c[2];function +f(a){return[0,d,a]}return fb(n(a[1][1+bC],a,b),d,e,c,f)}function +eM(a,b,c){var +d=c[1],e=c[2];function +f(a){return[0,d,a]}return fb(n(a[1][1+bq],a,b),d,e,c,f)}function +eN(a,b,c){switch(c[0]){case +0:var +d=c[1],e=function(a){return[0,a]};return aw(n(a[1][1+bt],a,b),d,c,e);case +1:var +f=c[1],g=function(a){return[1,a]};return aw(n(a[1][1+bv],a,b),f,c,g);case +2:var +h=c[1],i=function(a){return[2,a]};return aw(n(a[1][1+bz],a,b),h,c,i);case +3:var +j=c[1],k=function(a){return[3,a]};return aw(n(a[1][1+bx],a,b),j,c,k);default:var +l=c[1],m=function(a){return[4,a]};return aw(n(a[1][1+by],a,b),l,c,m)}}function +eO(a,b,c){var +e=c[2],h=e[4],m=e[3],i=e[2],j=e[1],r=c[1],d=l(a[1][1+bw],a,b,j),f=l(a[1][1+bu],a,b,i),o=n(a[1][1+F],a,m);if(h){var +k=0;if(3===d[0]){var +q=f[2];if(2===q[0])var +g=af(d[1][2][1],q[1][1][2][1]);else +k=1}else +k=1;if(k)var +p=j===d?1:0,g=p?i===f?1:0:p}else +var +g=h;if(d===j&&f===i&&o===m&&h===g)return c;return[0,r,[0,d,f,o,g]]}function +eP(a,b,c){if(0===c[0]){var +d=c[1],e=function(a){return[0,a]};return aw(n(a[1][1+bA],a,b),d,c,e)}var +f=c[1];function +g(a){return[1,a]}return aw(n(a[1][1+bs],a,b),f,c,g)}function +eQ(a,b,c,d){return l(a[1][1+I],a,c,d)}function +eR(a,b,c,d){return l(a[1][1+C],a,c,d)}function +eS(a,b,c,d){return l(a[1][1+t],a,c,d)}function +eT(a,b,c){return n(a[1][1+g],a,c)}function +eU(a,b,c){var +e=c[2],K=c[1];switch(e[0]){case +0:var +g=e[1],k=g[3],o=g[2],p=g[1],q=gy(n(a[1][1+bB],a,b),p),r=n(a[1][1+s],a,o),t=n(a[1][1+d],a,k),H=0;if(q===p&&r===o&&t===k){var +u=e;H=1}if(!H)var +u=[0,[0,q,r,t]];var +f=u;break;case +1:var +h=e[1],v=h[3],w=h[2],x=h[1],y=gy(n(a[1][1+bJ],a,b),x),z=n(a[1][1+s],a,w),A=n(a[1][1+d],a,v),I=0;if(v===A&&y===x&&z===w){var +B=e;I=1}if(!I)var +B=[1,[0,y,z,A]];var +f=B;break;case +2:var +j=e[1],C=j[2],D=j[1],L=j[3],E=l(a[1][1+i],a,b,D),F=n(a[1][1+s],a,C),J=0;if(D===E&&C===F){var +G=e;J=1}if(!J)var +G=[2,[0,E,F,L]];var +f=G;break;default:var +M=e[1],N=function(a){return[3,a]},f=aw(m(a[1][1+bD],a),M,e,N)}return e===f?c:[0,K,f]}function +eV(a,b){return l(a[1][1+u],a,0,b)}function +eW(a,b,c){var +d=b?b[1]:0;return l(a[1][1+u],a,[0,d],c)}function +eX(a,b){return n(a[1][1+Y],a,b)}function +eY(a,b){return n(a[1][1+Y],a,b)}function +eZ(a,b){return l(a[1][1+H],a,coX,b)}function +e0(a,b,c){return l(a[1][1+H],a,[0,b],c)}function +e1(a,b){return l(a[1][1+H],a,coY,b)}function +e2(a,b,c){var +h=c[5],i=c[4],e=c[3],k=c[2],l=c[1],p=n(a[1][1+o],a,l),q=a3(m(a[1][1+j],a),k),g=a3(m(a[1][1+f],a),e),r=a3(m(a[1][1+f],a),i),s=n(a[1][1+d],a,h);if(l===p&&e===g&&k===q&&e===g&&i===r&&h===s)return c;return[0,p,q,g,r,s]}function +e3(a,b){return n(a[1][1+aF],a,b)}function +e4(a,b){return n(a[1][1+g],a,b)}function +e5(a,b){var +c=b[1],d=b[2];function +e(a){return[0,c,a]}return fb(m(a[1][1+I],a),c,d,b,e)}function +e6(a,b){var +c=b[1],d=b[2];function +e(a){return[0,c,a]}return fb(m(a[1][1+C],a),c,d,b,e)}function +e7(a,b){var +c=b[1],d=b[2];function +e(a){return[0,c,a]}return fb(m(a[1][1+t],a),c,d,b,e)}function +e8(a,b){switch(b[0]){case +0:var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+bV],a),c,b,d);case +1:var +e=b[1],f=function(a){return[1,a]};return aw(m(a[1][1+bW],a),e,b,f);case +2:var +g=b[1],h=function(a){return[2,a]};return aw(m(a[1][1+bZ],a),g,b,h);case +3:var +i=b[1],j=function(a){return[3,a]};return aw(m(a[1][1+bX],a),i,b,j);case +4:var +k=b[1],l=function(a){return[4,a]};return aw(m(a[1][1+N],a),k,b,l);default:var +n=b[1],o=function(a){return[5,a]};return aw(m(a[1][1+bY],a),n,b,o)}}function +e9(a,b){var +c=b[2],g=b[1];switch(c[0]){case +0:var +j=c[3],k=c[2],l=c[1],f=n(a[1][1+q],a,l),h=n(a[1][1+e],a,k);if(j){var +o=0;if(3===f[0]){var +r=h[2];if(9===r[0])var +i=af(f[1][2][1],r[1][2][1]);else +o=1}else +o=1;if(o)var +p=l===f?1:0,i=p?k===h?1:0:p}else +var +i=j;if(l===f&&k===h&&j===i)return b;return[0,g,[0,f,h,i]];case +1:var +s=c[2],t=c[1],u=n(a[1][1+q],a,t),v=ib(m(a[1][1+x],a),s);if(t===u&&s===v)return b;return[0,g,[1,u,v]];case +2:var +w=c[3],y=c[2],z=c[1],A=n(a[1][1+q],a,z),B=ib(m(a[1][1+x],a),y),C=n(a[1][1+d],a,w);if(z===A&&y===B&&w===C)return b;return[0,g,[2,A,B,C]];default:var +D=c[3],E=c[2],F=c[1],G=n(a[1][1+q],a,F),H=ib(m(a[1][1+x],a),E),I=n(a[1][1+d],a,D);if(F===G&&E===H&&D===I)return b;return[0,g,[3,G,H,I]]}}function +e_(e,b,c){var +a=c[2],f=c[1],g=gy(function(a){if(0===a[0]){var +b=a[1],c=n(e[1][1+bT],e,b);return b===c?a:[0,c]}var +d=a[1],f=n(e[1][1+bk],e,d);return d===f?a:[1,f]},f),h=n(e[1][1+d],e,a);if(f===g&&a===h)return c;return[0,g,h]}function +e$(a,b,c){var +f=c[4],g=c[3],h=c[2],i=c[1],j=n(a[1][1+e],a,i),k=a3(m(a[1][1+X],a),h),l=a3(m(a[1][1+aQ],a),g),o=n(a[1][1+d],a,f);if(i===j&&h===k&&g===l&&f===o)return c;return[0,j,k,l,o]}function +fa(a,b,c){var +e=c[3],f=c[2],h=c[1],i=n(a[1][1+g],a,h),j=n(a[1][1+g],a,f),k=n(a[1][1+d],a,e);if(h===i&&f===j&&e===k)return c;return[0,i,j,k]}function +fc(a,b){return n(a[1][1+e],a,b)}function +fd(a,b){return n(a[1][1+N],a,b)}function +fe(a,b){return n(a[1][1+g],a,b)}function +ff(a,b){switch(b[0]){case +0:var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+b_],a),c,b,d);case +1:var +e=b[1],f=function(a){return[1,a]};return aw(m(a[1][1+cb],a),e,b,f);default:var +g=b[1],h=function(a){return[2,a]};return aw(m(a[1][1+b$],a),g,b,h)}}function +fg(a,b,c){var +d=c[1],e=l(a[1][1+ai],a,b,d);return d===e?c:[0,e,c[2],c[3]]}function +fh(a,b,c){var +f=c[3],g=c[2],h=c[1],i=n(a[1][1+e],a,h),j=n(a[1][1+ca],a,g),k=n(a[1][1+d],a,f);if(h===i&&g===j&&f===k)return c;return[0,i,j,k]}function +fi(a,b,c){var +f=c[4],g=c[3],h=c[2],i=n(a[1][1+e],a,h),j=n(a[1][1+e],a,g),k=n(a[1][1+d],a,f);if(h===i&&g===j&&f===k)return c;return[0,c[1],i,j,k]}function +fj(a,b,c){var +e=c[3],f=c[2],g=c[1],i=n(a[1][1+Q],a,g),j=n(a[1][1+h],a,f),k=n(a[1][1+d],a,e);if(g===i&&f===j&&e===k)return c;return[0,i,j,k]}function +fk(a,b){var +c=b[2],e=c[2],g=c[1],h=b[1],f=n(a[1][1+d],a,e);return e===f?b:[0,h,[0,g,f]]}function +fl(a,b){return n(a[1][1+an],a,b)}function +fm(a,b){if(0===b[0]){var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+ck],a),c,b,d)}var +e=b[1];function +f(a){return[1,a]}return aw(m(a[1][1+ak],a),e,b,f)}function +fn(a,b){var +d=b[2],e=d[2],f=d[1],i=b[1],g=n(a[1][1+cj],a,f),h=n(a[1][1+c],a,e);if(f===g&&e===h)return b;return[0,i,[0,g,h]]}function +fo(a,b){var +d=b[2],e=d[2],f=d[1],i=b[1],g=n(a[1][1+c],a,f),h=n(a[1][1+c],a,e);if(f===g&&e===h)return b;return[0,i,[0,g,h]]}function +fq(a,b){return n(a[1][1+ak],a,b)}function +fr(a,b){return n(a[1][1+aj],a,b)}function +fs(a,b){return n(a[1][1+c],a,b)}function +ft(a,b){switch(b[0]){case +0:var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+an],a),c,b,d);case +1:var +e=b[1],f=function(a){return[1,a]};return aw(m(a[1][1+cl],a),e,b,f);default:var +g=b[1],h=function(a){return[2,a]};return aw(m(a[1][1+cm],a),g,b,h)}}function +fu(a,b){var +c=b[2],f=b[1],g=n(a[1][1+e],a,f),h=n(a[1][1+d],a,c);if(f===g&&c===h)return b;return[0,g,h]}function +fv(a,b,c){var +g=c[2],h=c[1],f=n(a[1][1+d],a,g);if(!h)return g===f?c:[0,0,f];var +i=h[1],j=n(a[1][1+e],a,i);if(i===j&&g===f)return c;return[0,[0,j],f]}function +fw(a,b){var +d=b[2],c=b[1];switch(d[0]){case +0:var +e=d[1],f=function(a){return[0,c,[0,a]]};return fb(m(a[1][1+aq],a),c,e,b,f);case +1:var +g=d[1],h=function(a){return[0,c,[1,a]]};return fb(m(a[1][1+al],a),c,g,b,h);case +2:var +i=d[1],j=function(a){return[0,c,[2,a]]};return fb(m(a[1][1+am],a),c,i,b,j);case +3:var +k=d[1],l=function(a){return[0,c,[3,a]]};return aw(m(a[1][1+cf],a),k,b,l);default:return b}}function +fx(a,b){var +c=b[2],e=b[1],d=gy(m(a[1][1+co],a),c);return c===d?b:[0,e,d]}function +fz(a,b,c){return l(a[1][1+t],a,b,c)}function +fA(a,b,c){return l(a[1][1+am],a,b,c)}function +fB(a,b){if(0===b[0]){var +c=b[1],d=c[1],g=c[2],h=function(a){return[0,[0,d,a]]};return fb(m(a[1][1+cp],a),d,g,b,h)}var +e=b[1],f=e[1],i=e[2];function +j(a){return[1,[0,f,a]]}return fb(m(a[1][1+cq],a),f,i,b,j)}function +fD(a,b){return n(a[1][1+aj],a,b)}function +fE(a,b){return n(a[1][1+c],a,b)}function +fF(a,b){if(0===b[0]){var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+ct],a),c,b,d)}var +e=b[1];function +f(a){return[1,a]}return aw(m(a[1][1+cs],a),e,b,f)}function +fG(a,b){var +c=b[2],d=c[2],e=c[1],h=b[1],f=n(a[1][1+cu],a,e),g=a3(m(a[1][1+cr],a),d);if(e===f&&d===g)return b;return[0,h,[0,f,g]]}function +fH(a,b,c){var +f=c[2],g=c[1],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,h,i]}function +fI(a,b){if(0===b[0]){var +e=b[1],f=function(a){return[0,a]};return aw(m(a[1][1+cv],a),e,b,f)}var +c=b[1],d=c[1],g=c[2];function +h(a){return[1,[0,d,a]]}return fb(m(a[1][1+cg],a),d,g,b,h)}function +fJ(a,b){var +c=b[2][1],e=b[1],d=n(a[1][1+ap],a,c);return c===d?b:[0,e,[0,d]]}function +fK(a,b){var +c=b[2],d=c[4],e=c[2],f=c[1],j=c[3],k=b[1],g=n(a[1][1+ap],a,f),h=a3(m(a[1][1+X],a),e),i=gy(m(a[1][1+ci],a),d);if(f===g&&e===h&&d===i)return b;return[0,k,[0,g,h,j,i]]}function +fL(a,b,c){var +e=c[4],f=c[3],g=n(a[1][1+ar],a,f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,c[1],c[2],g,h]}function +fM(a,b,c){var +e=c[4],f=c[3],g=c[2],h=c[1],i=n(a[1][1+ch],a,h),j=a3(m(a[1][1+cn],a),g),k=n(a[1][1+ar],a,f),l=n(a[1][1+d],a,e);if(h===i&&g===j&&f===k&&e===l)return c;return[0,i,j,k,l]}function +fN(a,b,c,d){var +e=2<=b?n(a[1][1+i],a,coZ):m(a[1][1+o],a);return m(e,d)}function +fO(a,b,c){var +d=2<=b?n(a[1][1+i],a,co0):m(a[1][1+o],a);return m(d,c)}function +fP(a,b,c){var +e=c[3],d=c[2],g=c[1],p=0,s=c[4];if(b){var +f=0;if(g)switch(g[1]){case +0:p=1;break;case +1:f=2;break;default:f=1}else +f=1;var +q=0;switch(f){case +0:break;case +1:if(2<=b)var +j=0,h=0;else +q=1;break;default:q=1}if(q)var +j=1,h=0}else +p=1;if(p)var +j=1,h=1;var +r=d?n(a[1][1+bn],a,e):h?n(a[1][1+o],a,e):l(a[1][1+i],a,co2,e);if(d)var +t=d[1],u=j?m(a[1][1+o],a):n(a[1][1+i],a,co1),k=aw(u,t,d,function(a){return[0,a]});else +var +k=0;if(d===k&&e===r)return c;return[0,g,k,r,s]}function +fQ(a,b){return n(a[1][1+g],a,b)}function +fS(a,b,c){if(0===c[0]){var +d=c[1],e=gy(n(a[1][1+cD],a,b),d);return d===e?c:[0,e]}var +f=c[1],g=f[1],h=f[2];function +i(a){return[1,[0,g,a]]}return fb(n(a[1][1+cC],a,b),g,h,c,i)}function +fT(a,b,c){var +e=c[3],g=c[2],h=c[1],f=n(a[1][1+d],a,e);return e===f?c:[0,h,g,f]}function +fU(e,b,c){var +a=c[5],g=c[4],h=c[3],i=c[2],f=c[1],j=ib(m(e[1][1+cB],e),i),k=a3(n(e[1][1+cA],e,f),g),o=a3(function(a){var +b=a[1],d=a[2],c=l(e[1][1+cE],e,f,b);return c===b?a:[0,c,d]},h),p=n(e[1][1+d],e,a);if(i===j&&g===k&&h===o&&a===p)return c;return[0,f,j,o,k,p]}function +fV(a,b,c){var +f=c[4],e=c[3],g=c[2],h=c[1],i=n(a[1][1+v],a,h),j=l(a[1][1+cI],a,0!==e?1:0,g),p=m(a[1][1+cJ],a),k=a3(function(a){return ib(p,a)},e),o=n(a[1][1+d],a,f);if(h===i&&g===j&&e===k&&f===o)return c;return[0,i,j,k,o]}function +fW(a,b,c){var +e=c[2],f=c[1],g=n(a[1][1+h],a,f),i=n(a[1][1+d],a,e);if(f===g&&e===i)return c;return[0,g,i]}function +fX(a,b,c){return n(a[1][1+h],a,c)}function +fY(a,b,c){var +f=c[2],g=c[1],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,h,i]}function +fZ(a,b){var +c=b[2],f=c[2],g=c[1],j=b[1],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return b;return[0,j,[0,h,i]]}function +f0(a,b){var +c=b[2],e=c[2],g=c[1],h=b[1],f=n(a[1][1+d],a,e);return e===f?b:[0,h,[0,g,f]]}function +f1(a,b,c){return l(a[1][1+R],a,b,c)}function +f2(a,b,c){var +e=c[5],f=c[4],g=c[3],h=c[2],i=c[1],k=n(a[1][1+o],a,i),l=a3(m(a[1][1+j],a),h),s=m(a[1][1+w],a),p=gy(function(a){return ib(s,a)},g),q=ib(m(a[1][1+B],a),f),r=n(a[1][1+d],a,e);if(k===i&&l===h&&p===g&&q===f&&r===e)return c;return[0,k,l,p,q,r]}function +f3(a,b){return n(a[1][1+aa],a,b)}function +f4(a,b){return n(a[1][1+aa],a,b)}function +f5(a,b){return n(a[1][1+g],a,b)}function +f6(a,b){var +c=b[2],e=c[2],g=c[1],h=b[1],f=n(a[1][1+d],a,e);return e===f?b:[0,h,[0,g,f]]}function +f7(a,b){return l(a[1][1+i],a,co3,b)}function +f8(a,b){return n(a[1][1+e],a,b)}function +f9(a,b){var +c=b[1],d=b[2];function +e(a){return[0,c,a]}return fb(m(a[1][1+r],a),c,d,b,e)}function +f_(a,b){if(0===b[0]){var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+cW],a),c,b,d)}var +e=b[1];function +f(a){return[1,a]}return aw(m(a[1][1+dX],a),e,b,f)}function +f$(a,b){switch(b[0]){case +0:return b;case +1:var +c=b[1],d=function(a){return[1,a]};return aw(m(a[1][1+k],a),c,b,d);default:var +e=b[1],f=function(a){return[2,a]};return aw(m(a[1][1+a5],a),e,b,f)}}function +ga(a,b){var +c=b[2],d=c[2],e=c[1],h=b[1],f=n(a[1][1+av],a,e),g=n(a[1][1+F],a,d);if(e===f&&d===g)return b;return[0,h,[0,f,g]]}function +gb(a,b){var +c=b[2],e=c[2],f=c[1],i=b[1],g=n(a[1][1+k],a,f),h=n(a[1][1+d],a,e);if(g===f&&h===e)return b;return[0,i,[0,g,h]]}function +gc(a,b){var +c=b[2],e=c[4],f=c[3],g=c[2],h=c[1],o=b[1],i=gy(m(a[1][1+cS],a),g),j=a3(m(a[1][1+cQ],a),f),k=a3(m(a[1][1+cN],a),h),l=n(a[1][1+d],a,e);if(g===i&&f===j&&e===l&&h===k)return b;return[0,o,[0,k,i,j,l]]}function +gd(a,b,c){var +e=c[9],f=c[8],g=c[7],h=c[6],i=c[3],k=c[2],l=c[1],v=c[10],w=c[5],x=c[4],o=a3(m(a[1][1+ax],a),l),p=a3(m(a[1][1+j],a),f),q=n(a[1][1+cR],a,k),r=n(a[1][1+cO],a,g),s=n(a[1][1+cV],a,i),t=a3(m(a[1][1+ag],a),h),u=n(a[1][1+d],a,e);if(l===o&&k===q&&i===s&&h===t&&g===r&&f===p&&e===u)return c;return[0,o,q,s,x,w,t,r,p,u,v]}function +ge(a,b,c){return l(a[1][1+S],a,b,c)}function +gf(a,b,c){return l(a[1][1+x],a,b,c)}function +gg(a,b,c){return l(a[1][1+S],a,b,c)}function +gh(a,b){if(0===b[0])return b;var +c=b[2],e=b[1],d=n(a[1][1+ae],a,c);return d===c?b:[1,e,d]}function +gi(a,b){if(0===b[0])return b;var +c=b[1];function +d(a){return[1,a]}return aw(m(a[1][1+k],a),c,b,d)}function +gj(a,b){var +c=b[2],d=b[1];function +e(a){return[0,d,a]}return aw(m(a[1][1+f],a),c,b,e)}function +gk(a,b){var +e=b[2],c=b[1];switch(e[0]){case +0:var +f=e[1],g=function(a){return[0,c,[0,a]]};return aw(m(a[1][1+d],a),f,b,g);case +1:var +h=e[1],i=function(a){return[0,c,[1,a]]};return aw(m(a[1][1+d],a),h,b,i);case +2:var +j=e[1],k=function(a){return[0,c,[2,a]]};return aw(m(a[1][1+d],a),j,b,k);case +3:var +l=e[1],n=function(a){return[0,c,[3,a]]};return aw(m(a[1][1+d],a),l,b,n);case +4:var +o=e[1],p=function(a){return[0,c,[4,a]]};return aw(m(a[1][1+d],a),o,b,p);case +5:var +q=e[1],r=function(a){return[0,c,[5,a]]};return aw(m(a[1][1+d],a),q,b,r);case +6:var +s=e[1],u=function(a){return[0,c,[6,a]]};return aw(m(a[1][1+d],a),s,b,u);case +7:var +v=e[1],x=function(a){return[0,c,[7,a]]};return aw(m(a[1][1+d],a),v,b,x);case +8:var +y=e[2],z=e[1],A=function(a){return[0,c,[8,z,a]]};return aw(m(a[1][1+d],a),y,b,A);case +9:var +E=e[1],F=function(a){return[0,c,[9,a]]};return aw(m(a[1][1+d],a),E,b,F);case +10:var +G=e[1],H=function(a){return[0,c,[10,a]]};return aw(m(a[1][1+d],a),G,b,H);case +11:var +J=e[1],K=function(a){return[0,c,[11,a]]};return aw(m(a[1][1+b4],a),J,b,K);case +12:var +L=e[1],M=function(a){return[0,c,[12,a]]};return fb(m(a[1][1+D],a),c,L,b,M);case +13:var +N=e[1],O=function(a){return[0,c,[13,a]]};return fb(m(a[1][1+dD],a),c,N,b,O);case +14:var +P=e[1],Q=function(a){return[0,c,[14,a]]};return fb(m(a[1][1+B],a),c,P,b,Q);case +15:var +R=e[1],S=function(a){return[0,c,[15,a]]};return fb(m(a[1][1+cx],a),c,R,b,S);case +16:var +T=e[1],U=function(a){return[0,c,[16,a]]};return aw(m(a[1][1+d2],a),T,b,U);case +17:var +V=e[1],W=function(a){return[0,c,[17,a]]};return aw(m(a[1][1+dz],a),V,b,W);case +18:var +X=e[1],Y=function(a){return[0,c,[18,a]]};return aw(m(a[1][1+cz],a),X,b,Y);case +19:var +Z=e[1],_=function(a){return[0,c,[19,a]]};return fb(m(a[1][1+w],a),c,Z,b,_);case +20:var +$=e[1],aa=function(a){return[0,c,[20,a]]};return fb(m(a[1][1+as],a),c,$,b,aa);case +21:var +ab=e[1],ac=function(a){return[0,c,[21,a]]};return fb(m(a[1][1+bL],a),c,ab,b,ac);case +22:var +ad=e[1],af=function(a){return[0,c,[22,a]]};return fb(m(a[1][1+aY],a),c,ad,b,af);case +23:var +ag=e[1],ah=function(a){return[0,c,[23,a]]};return fb(m(a[1][1+cw],a),c,ag,b,ah);case +24:var +ai=e[1],aj=function(a){return[0,c,[24,a]]};return aw(m(a[1][1+a0],a),ai,b,aj);case +25:var +ak=e[1],al=function(a){return[0,c,[25,a]]};return aw(m(a[1][1+ce],a),ak,b,al);case +26:var +am=e[1],an=function(a){return[0,c,[26,a]]};return aw(m(a[1][1+ae],a),am,b,an);case +27:var +ao=e[1],ap=function(a){return[0,c,[27,a]]};return aw(m(a[1][1+bp],a),ao,b,ap);case +28:var +aq=e[1],ar=function(a){return[0,c,[28,a]]};return aw(m(a[1][1+a7],a),aq,b,ar);case +29:var +at=e[1],au=function(a){return[0,c,[29,a]]};return fb(m(a[1][1+t],a),c,at,b,au);case +30:var +av=e[1],ax=function(a){return[0,c,[30,a]]};return fb(m(a[1][1+C],a),c,av,b,ax);case +31:var +ay=e[1],az=function(a){return[0,c,[31,a]]};return fb(m(a[1][1+I],a),c,ay,b,az);case +32:var +aA=e[1],aB=function(a){return[0,c,[32,a]]};return fb(m(a[1][1+aP],a),c,aA,b,aB);case +33:var +aC=e[1],aD=function(a){return[0,c,[33,a]]};return aw(m(a[1][1+d],a),aC,b,aD);case +34:var +aE=e[1],aF=function(a){return[0,c,[34,a]]};return aw(m(a[1][1+d],a),aE,b,aF);default:var +aG=e[1],aH=function(a){return[0,c,[35,a]]};return aw(m(a[1][1+d],a),aG,b,aH)}}function +gl(a,b,c){var +g=c[2],e=c[1],h=e[3],i=e[2],j=e[1],k=n(a[1][1+f],a,j),l=n(a[1][1+f],a,i),o=gy(m(a[1][1+f],a),h),p=n(a[1][1+d],a,g);if(k===j&&l===i&&o===h&&p===g)return c;return[0,[0,k,l,o],p]}function +gm(a,b,c){var +g=c[2],e=c[1],h=e[3],i=e[2],j=e[1],k=n(a[1][1+f],a,j),l=n(a[1][1+f],a,i),o=gy(m(a[1][1+f],a),h),p=n(a[1][1+d],a,g);if(k===j&&l===i&&o===h&&p===g)return c;return[0,[0,k,l,o],p]}function +gn(a,b){var +c=b[2],e=b[1],g=n(a[1][1+f],a,e),h=n(a[1][1+d],a,c);if(e===g&&c===h)return b;return[0,g,h]}function +go(a,b){var +c=b[2],e=b[1],d=n(a[1][1+f],a,c);return d===c?b:[0,e,d]}function +gp(a,b){var +c=b[3],d=b[2],h=b[4],i=b[1],e=n(a[1][1+f],a,d),g=n(a[1][1+p],a,c);if(e===d&&g===c)return b;return[0,i,e,g,h]}function +gq(a,b){var +c=b[2],d=b[1];switch(c[0]){case +0:var +e=c[1],g=function(a){return[0,d,[0,a]]};return aw(m(a[1][1+f],a),e,b,g);case +1:var +h=c[1],i=function(a){return[0,d,[1,a]]};return aw(m(a[1][1+a9],a),h,b,i);default:var +j=c[1],k=function(a){return[0,d,[2,a]]};return aw(m(a[1][1+a8],a),j,b,k)}}function +gr(a,b){var +c=b[2],e=b[1],f=gy(m(a[1][1+a_],a),e),g=n(a[1][1+d],a,c);if(e===f&&c===g)return b;return[0,f,g]}function +gs(a,b){var +c=b[2],e=b[1],g=n(a[1][1+f],a,e),h=n(a[1][1+d],a,c);if(e===g&&c===h)return b;return[0,g,h]}function +gu(a,b){var +c=b[3],e=b[2],i=b[4],j=b[1],g=n(a[1][1+f],a,e),h=n(a[1][1+d],a,c);if(e===g&&c===h)return b;return[0,j,g,h,i]}function +gv(a,b){var +c=b[2],e=b[1],g=n(a[1][1+f],a,e),h=n(a[1][1+d],a,c);if(e===g&&c===h)return b;return[0,g,h]}function +gw(a,b){var +c=b[2],d=c[2],e=c[1],h=b[1],f=n(a[1][1+_],a,e),g=n(a[1][1+a2],a,d);if(f===e&&g===d)return b;return[0,h,[0,f,g]]}function +gz(a,b){return n(a[1][1+g],a,b)}function +gA(a,b){return n(a[1][1+g],a,b)}function +gB(a,b){if(0===b[0]){var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+a4],a),c,b,d)}var +e=b[1];function +f(a){return[1,a]}return aw(m(a[1][1+a1],a),e,b,f)}function +gC(a,b){var +c=b[3],e=b[2],f=b[1],g=n(a[1][1+_],a,f),h=a3(m(a[1][1+A],a),e),i=n(a[1][1+d],a,c);if(f===g&&ao(e,h)&&c===i)return b;return[0,g,h,i]}function +gD(a,b){var +c=b[2],e=b[1],f=n(a[1][1+J],a,e),g=n(a[1][1+d],a,c);if(e===f&&c===g)return b;return[0,f,g]}function +gE(a,b){var +c=b[5],e=b[4],g=b[3],h=b[2],i=b[1],j=n(a[1][1+f],a,i),k=n(a[1][1+f],a,h),l=n(a[1][1+f],a,g),m=n(a[1][1+f],a,e),o=n(a[1][1+d],a,c);if(i===j&&h===k&&g===l&&e===m&&c===o)return b;return[0,j,k,l,m,o]}function +gF(a,b){var +c=b[2],e=b[1],g=n(a[1][1+f],a,e),h=n(a[1][1+d],a,c);if(e===g&&c===h)return b;return[0,g,h]}function +gG(a,b,c){var +e=c[6],f=c[5],g=c[4],h=c[3],i=c[2],j=c[1];return e===n(a[1][1+d],a,e)?c:[0,j,i,h,g,f,e]}function +gH(a,b,c){var +e=c[4],g=c[3],h=c[2],i=c[1],f=n(a[1][1+d],a,e);return e===f?c:[0,i,h,g,f]}function +gI(a,b,c){return n(a[1][1+d],a,c)}function +gJ(a,b,c){var +e=c[2],g=c[1],f=n(a[1][1+d],a,e);return e===f?c:[0,g,f]}function +gK(a,b,c){var +e=c[3],g=c[2],h=c[1],f=n(a[1][1+d],a,e);return e===f?c:[0,h,g,f]}function +gL(a,b,c){var +e=c[3],g=c[2],h=c[1],f=n(a[1][1+d],a,e);return e===f?c:[0,h,g,f]}function +gM(a,b,c){var +e=c[3],g=c[2],h=c[1],f=n(a[1][1+d],a,e);return e===f?c:[0,h,g,f]}function +gP(a,b,c){var +d=c[1],f=c[2],e=l(a[1][1+as],a,b,d);return e===d?c:[0,e,f]}function +gQ(a,b,c){var +e=c[3],g=c[2],h=c[1],i=n(a[1][1+f],a,h),j=n(a[1][1+f],a,g),k=n(a[1][1+d],a,e);if(i===h&&j===g&&k===e)return c;return[0,i,j,k]}function +gR(a,b,c){var +e=c[3],f=c[2],g=c[1],h=n(a[1][1+at],a,g),i=a3(m(a[1][1+A],a),f),j=n(a[1][1+d],a,e);if(h===g&&i===f&&j===e)return c;return[0,h,i,j]}function +gS(a,b){var +c=b[2],d=c[5],e=c[4],g=c[2],h=c[1],q=c[3],r=b[1],i=n(a[1][1+s],a,g),j=n(a[1][1+p],a,e),k=a3(m(a[1][1+f],a),d),l=n(a[1][1+o],a,h);if(l===h&&i===g&&j===e&&k===d)return b;return[0,r,[0,l,i,q,j,k]]}function +gT(a,b){var +c=b[2],e=c[2],f=c[1],i=b[1],g=gy(m(a[1][1+J],a),f),h=n(a[1][1+d],a,e);if(g===f&&h===e)return b;return[0,i,[0,g,h]]}function +gU(a,b){var +c=b[2],e=c[2],g=c[1],j=b[1],h=gy(m(a[1][1+f],a),g),i=n(a[1][1+d],a,e);if(g===h&&e===i)return b;return[0,j,[0,h,i]]}function +gV(a,b){return a3(m(a[1][1+aU],a),b)}function +gW(a,b){var +c=b[2],e=c[2],g=c[1],h=b[1],f=n(a[1][1+d],a,e);return e===f?b:[0,h,[0,g,f]]}function +gX(a,b){return n(a[1][1+g],a,b)}function +gY(a,b){var +c=b[2],d=c[2],e=c[1],h=b[1],f=n(a[1][1+at],a,e),g=n(a[1][1+b9],a,d);if(f===e&&g===d)return b;return[0,h,[0,f,g]]}function +gZ(a,b){if(0===b[0]){var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+$],a),c,b,d)}var +e=b[1];function +f(a){return[1,a]}return aw(m(a[1][1+cK],a),e,b,f)}function +g0(a,b,c){var +e=c[3],f=c[2],g=c[1],k=m(a[1][1+w],a),h=gy(function(a){return ib(k,a)},f),i=ib(m(a[1][1+B],a),g),j=n(a[1][1+d],a,e);if(h===f&&i===g&&e===j)return c;return[0,i,h,j]}function +g1(a,b){switch(b[0]){case +0:var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+bS],a),c,b,d);case +1:var +e=b[1],f=function(a){return[1,a]};return aw(m(a[1][1+bQ],a),e,b,f);case +2:var +g=b[1],h=function(a){return[2,a]};return aw(m(a[1][1+b1],a),g,b,h);case +3:var +i=b[1],j=function(a){return[3,a]};return aw(m(a[1][1+b2],a),i,b,j);case +4:var +k=b[1],l=function(a){return[4,a]};return aw(m(a[1][1+b0],a),k,b,l);default:var +n=b[1],o=function(a){return[5,a]};return aw(m(a[1][1+bU],a),n,b,o)}}function +g2(a,b,c){var +e=c[4],f=c[3],i=c[2],j=c[1],g=gy(m(a[1][1+bP],a),f),h=n(a[1][1+d],a,e);if(g===f&&e===h)return c;return[0,j,i,g,h]}function +g3(a,b){var +c=b[2],e=c[6],g=c[4],h=c[3],i=c[2],j=c[1],r=c[5],s=b[1],k=n(a[1][1+J],a,j),l=n(a[1][1+f],a,i),m=n(a[1][1+f],a,h),o=n(a[1][1+p],a,g),q=n(a[1][1+d],a,e);if(k===j&&l===i&&m===h&&o===g&&q===e)return b;return[0,s,[0,k,l,m,o,r,q]]}function +g4(a,b){var +c=b[2],e=c[3],f=c[1],g=f[2],h=f[1],k=c[2],m=b[1],i=l(a[1][1+D],a,h,g),j=n(a[1][1+d],a,e);if(g===i&&e===j)return b;return[0,m,[0,[0,h,i],k,j]]}function +g5(a,b){var +c=b[2],e=c[6],h=c[2],i=c[1],m=c[5],o=c[4],p=c[3],q=b[1],j=n(a[1][1+g],a,i),k=n(a[1][1+f],a,h),l=n(a[1][1+d],a,e);if(i===j&&h===k&&e===l)return b;return[0,q,[0,j,k,p,o,m,l]]}function +g6(a,b){var +c=b[2],e=c[6],g=c[5],h=c[3],i=c[2],o=c[4],q=c[1],r=b[1],j=n(a[1][1+f],a,i),k=n(a[1][1+f],a,h),l=n(a[1][1+p],a,g),m=n(a[1][1+d],a,e);if(j===i&&k===h&&l===g&&m===e)return b;return[0,r,[0,q,j,k,o,l,m]]}function +g7(a,b){var +c=b[2],e=c[2],g=c[1],j=b[1],h=n(a[1][1+f],a,g),i=n(a[1][1+d],a,e);if(h===g&&e===i)return b;return[0,j,[0,h,i]]}function +g8(a,b){var +c=b[2],e=c[8],f=c[7],g=c[2],h=c[1],m=c[6],o=c[5],r=c[4],s=c[3],t=b[1],i=n(a[1][1+q],a,h),j=n(a[1][1+bR],a,g),k=n(a[1][1+p],a,f),l=n(a[1][1+d],a,e);if(i===h&&j===g&&k===f&&l===e)return b;return[0,t,[0,i,j,s,r,o,m,k,l]]}function +g9(a,b){var +c=b[1],d=b[2];function +e(a){return[0,c,a]}return fb(m(a[1][1+D],a),c,d,b,e)}function +g_(a,b){var +c=b[1],d=b[2];function +e(a){return[0,c,a]}return fb(m(a[1][1+D],a),c,d,b,e)}function +g$(a,b){switch(b[0]){case +0:var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+f],a),c,b,d);case +1:var +e=b[1],g=function(a){return[1,a]};return aw(m(a[1][1+bO],a),e,b,g);default:var +h=b[1],i=function(a){return[2,a]};return aw(m(a[1][1+bN],a),h,b,i)}}function +ha(a,b){return n(a[1][1+g],a,b)}function +hc(a,b,c){var +f=c[4],g=c[3],h=c[2],e=h[2],i=e[4],k=e[3],l=e[2],o=e[1],p=c[1],x=h[1],q=a3(m(a[1][1+j],a),p),r=a3(m(a[1][1+cM],a),o),s=gy(m(a[1][1+au],a),l),t=a3(m(a[1][1+cP],a),k),u=n(a[1][1+cL],a,g),v=n(a[1][1+d],a,f),w=n(a[1][1+d],a,i);if(s===l&&t===k&&u===g&&q===p&&v===f&&w===i&&r===o)return c;return[0,q,[0,x,[0,r,s,t,w]],u,v]}function +hd(a,b){if(0===b[0]){var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+f],a),c,b,d)}var +e=b[1];function +g(a){return[1,a]}return aw(m(a[1][1+ab],a),e,b,g)}function +he(a,b){var +c=b[2],e=c[2],f=c[1],i=b[1],g=n(a[1][1+k],a,f),h=n(a[1][1+d],a,e);if(g===f&&h===e)return b;return[0,i,[0,g,h]]}function +hf(a,b){var +c=b[2],e=c[2],f=c[1],i=b[1],g=n(a[1][1+au],a,f),h=n(a[1][1+d],a,e);if(g===f&&h===e)return b;return[0,i,[0,g,h]]}function +hg(a,b){var +c=b[2],d=c[2],e=c[1],j=c[3],k=b[1],h=n(a[1][1+f],a,d),i=a3(m(a[1][1+g],a),e);if(h===d&&i===e)return b;return[0,k,[0,i,h,j]]}function +hi(a,b){var +c=b[1],d=b[2];function +e(a){return[0,c,a]}return fb(m(a[1][1+z],a),c,d,b,e)}function +hj(a,b){if(0===b[0]){var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+c3],a),c,b,d)}var +f=b[1];function +g(a){return[1,a]}return aw(m(a[1][1+e],a),f,b,g)}function +hk(a,b,c){var +f=c[5],g=c[4],i=c[3],j=c[2],k=c[1],l=a3(m(a[1][1+cX],a),k),o=a3(m(a[1][1+v],a),j),p=a3(m(a[1][1+e],a),i),q=n(a[1][1+h],a,g),r=n(a[1][1+d],a,f);if(k===l&&j===o&&i===p&&g===q&&f===r)return c;return[0,l,o,p,q,r]}function +hl(a,b){var +c=b[1],d=b[2];function +e(a){return[0,c,a]}return fb(m(a[1][1+z],a),c,d,b,e)}function +hm(a,b){if(0===b[0]){var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+c1],a),c,b,d)}var +e=b[1];function +f(a){return[1,a]}return aw(m(a[1][1+c2],a),e,b,f)}function +hn(a,b,c){var +f=c[5],g=c[3],i=c[2],j=c[1],p=c[4],k=n(a[1][1+cZ],a,j),l=n(a[1][1+e],a,i),m=n(a[1][1+h],a,g),o=n(a[1][1+d],a,f);if(j===k&&i===l&&g===m&&f===o)return c;return[0,k,l,m,p,o]}function +ho(a,b){var +c=b[1],d=b[2];function +e(a){return[0,c,a]}return fb(m(a[1][1+z],a),c,d,b,e)}function +hp(a,b){if(0===b[0]){var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+c6],a),c,b,d)}var +e=b[1];function +f(a){return[1,a]}return aw(m(a[1][1+c7],a),e,b,f)}function +hs(a,b,c){var +f=c[5],g=c[3],i=c[2],j=c[1],p=c[4],k=n(a[1][1+c4],a,j),l=n(a[1][1+e],a,i),m=n(a[1][1+h],a,g),o=n(a[1][1+d],a,f);if(j===k&&i===l&&g===m&&f===o)return c;return[0,k,l,m,p,o]}function +ht(a,b){if(0===b[0]){var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+e],a),c,b,d)}var +f=b[1];function +g(a){return[1,a]}return aw(m(a[1][1+ad],a),f,b,g)}function +hu(a,b,c){var +f=c[3],g=c[1],j=c[2],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,h,j,i]}function +hv(a,b,c){var +e=c[3],g=c[2],h=c[1],f=n(a[1][1+d],a,e);return e===f?c:[0,h,g,f]}function +hw(a,b){if(0===b[0]){var +c=b[1],d=gy(m(a[1][1+c_],a),c);return c===d?b:[0,d]}var +e=b[1],f=n(a[1][1+dc],a,e);return e===f?b:[1,f]}function +hx(a,b){var +c=b[2],e=b[1],d=a3(m(a[1][1+g],a),c);return c===d?b:[0,e,d]}function +hz(a,b){var +c=b[2],d=c[2],e=c[1],i=b[1],f=n(a[1][1+g],a,e),h=a3(m(a[1][1+g],a),d);if(e===f&&d===h)return b;return[0,i,[0,f,h]]}function +hA(a,b,c){var +e=c[5],f=c[3],g=c[2],i=c[1],p=c[4],j=aDT(m(a[1][1+ay],a),f),k=a3(m(a[1][1+az],a),g),l=a3(m(a[1][1+h],a),i),o=n(a[1][1+d],a,e);if(f===j&&g===k&&i===l&&e===o)return c;return[0,l,k,j,p,o]}function +hC(a,b){if(0===b[0]){var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+h],a),c,b,d)}var +f=b[1];function +g(a){return[1,a]}return aw(m(a[1][1+e],a),f,b,g)}function +hD(a,b,c){var +e=c[3],f=c[2],i=c[1],g=n(a[1][1+da],a,f),h=n(a[1][1+d],a,e);if(g===f&&h===e)return c;return[0,i,g,h]}function +hE(a,b){return n(a[1][1+g],a,b)}function +hF(a,b){var +c=b[2],d=c[1],f=c[2],g=b[1],e=n(a[1][1+y],a,d);return d===e?b:[0,g,[0,e,f]]}function +hG(a,b){var +c=b[2],d=c[1],f=c[2],g=b[1],e=n(a[1][1+y],a,d);return d===e?b:[0,g,[0,e,f]]}function +hH(a,b){var +c=b[2],d=c[1],f=c[2],g=b[1],e=n(a[1][1+y],a,d);return d===e?b:[0,g,[0,e,f]]}function +hI(a,b){var +c=b[2],d=c[1],f=c[2],g=b[1],e=n(a[1][1+y],a,d);return d===e?b:[0,g,[0,e,f]]}function +hJ(a,b){var +c=b[2][1],e=b[1],d=n(a[1][1+y],a,c);return c===d?b:[0,e,[0,d]]}function +hK(a,b){var +c=b[4],e=b[1],f=gy(m(a[1][1+dl],a),e),g=n(a[1][1+d],a,c);if(e===f&&c===g)return b;return[0,f,b[2],b[3],g]}function +hL(a,b){var +c=b[3],e=b[1],f=gy(m(a[1][1+aA],a),e),g=n(a[1][1+d],a,c);if(e===f&&c===g)return b;return[0,f,b[2],g]}function +hM(a,b){var +f=b[4],c=b[1];if(0===c[0])var +h=c[1],i=function(a){return[0,a]},j=m(a[1][1+aA],a),e=aw(function(a){return gy(j,a)},h,c,i);else +var +k=c[1],l=function(a){return[1,a]},o=m(a[1][1+de],a),e=aw(function(a){return gy(o,a)},k,c,l);var +g=n(a[1][1+d],a,f);if(c===e&&f===g)return b;return[0,e,b[2],b[3],g]}function +hN(a,b){var +c=b[4],e=b[1],f=gy(m(a[1][1+dg],a),e),g=n(a[1][1+d],a,c);if(e===f&&c===g)return b;return[0,f,b[2],b[3],g]}function +hO(a,b){var +c=b[4],e=b[1],f=gy(m(a[1][1+di],a),e),g=n(a[1][1+d],a,c);if(e===f&&c===g)return b;return[0,f,b[2],b[3],g]}function +hP(a,b){var +c=b[2],d=b[1];switch(c[0]){case +0:var +e=c[1],f=function(a){return[0,d,[0,a]]};return aw(m(a[1][1+dj],a),e,b,f);case +1:var +g=c[1],h=function(a){return[0,d,[1,a]]};return aw(m(a[1][1+dh],a),g,b,h);case +2:var +i=c[1],j=function(a){return[0,d,[2,a]]};return aw(m(a[1][1+df],a),i,b,j);case +3:var +k=c[1],l=function(a){return[0,d,[3,a]]};return aw(m(a[1][1+dd],a),k,b,l);default:var +n=c[1],o=function(a){return[0,d,[4,a]]};return aw(m(a[1][1+dm],a),n,b,o)}}function +hQ(a,b,c){var +e=c[3],f=c[2],g=c[1],h=l(a[1][1+i],a,co4,g),j=n(a[1][1+dk],a,f),k=n(a[1][1+d],a,e);if(g===h&&f===j&&e===k)return c;return[0,h,j,k]}function +hR(a,b,c){var +e=c[1],f=n(a[1][1+d],a,e);return e===f?c:[0,f]}function +hS(a,b,c){var +e=c[3],f=c[2],g=c[1],i=n(a[1][1+h],a,g),j=n(a[1][1+v],a,f),k=n(a[1][1+d],a,e);if(g===i&&f===j&&e===k)return c;return[0,i,j,k]}function +hT(a,b,c){var +e=c[4],f=c[3],g=c[2],h=c[1],j=l(a[1][1+i],a,[0,f],h),m=n(a[1][1+k],a,g),o=n(a[1][1+d],a,e);if(j===h&&m===g&&o===e)return c;return[0,j,m,f,o]}function +hU(a,b,c){return l(a[1][1+K],a,b,c)}function +hV(a,b,c){var +e=c[2],f=c[1],g=n(a[1][1+k],a,f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,g,h]}function +hW(a,b,c){var +e=c[4],f=c[2],i=c[3],j=c[1],g=ib(m(a[1][1+r],a),f),h=n(a[1][1+d],a,e);if(g===f&&e===h)return c;return[0,j,g,i,h]}function +hX(a,b,c){return l(a[1][1+R],a,b,c)}function +hY(a,b,c){var +e=c[4],f=c[3],g=c[2],h=c[1],i=n(a[1][1+ax],a,h),j=n(a[1][1+k],a,g),l=a3(m(a[1][1+ag],a),f),o=n(a[1][1+d],a,e);if(i===h&&j===g&&l===f&&o===e)return c;return[0,i,j,l,o]}function +h0(a,b){switch(b[0]){case +0:var +c=b[1],d=c[2],e=c[1],g=l(a[1][1+aB],a,e,d);return g===d?b:[0,[0,e,g]];case +1:var +h=b[1],i=h[2],j=h[1],k=l(a[1][1+aC],a,j,i);return k===i?b:[1,[0,j,k]];case +2:var +m=b[1],o=m[2],p=m[1],q=l(a[1][1+aE],a,p,o);return q===o?b:[2,[0,p,q]];case +3:var +r=b[1],s=r[2],t=r[1],u=l(a[1][1+aD],a,t,s);return u===s?b:[3,[0,t,u]];case +4:var +v=b[1],w=n(a[1][1+f],a,v);return w===v?b:[4,w];case +5:var +x=b[1],y=x[2],z=x[1],A=l(a[1][1+K],a,z,y);return A===y?b:[5,[0,z,A]];case +6:var +B=b[1],C=B[2],D=B[1],E=l(a[1][1+P],a,D,C);return E===C?b:[6,[0,D,E]];case +7:var +F=b[1],G=F[2],H=F[1],I=l(a[1][1+R],a,H,G);return I===G?b:[7,[0,H,I]];default:var +J=b[1],L=J[2],M=J[1],N=l(a[1][1+T],a,M,L);return N===L?b:[8,[0,M,N]]}}function +h1(a,b,c){var +e=c[5],f=c[4],g=c[3],h=c[2],o=c[1],i=aDT(m(a[1][1+ay],a),f),j=a3(m(a[1][1+az],a),g),k=a3(m(a[1][1+du],a),h),l=n(a[1][1+d],a,e);if(f===i&&g===j&&h===k&&e===l)return c;return[0,o,k,j,i,l]}function +h2(a,b,c){return l(a[1][1+T],a,b,c)}function +h3(a,b){var +c=b[2],e=c[4],h=c[2],i=c[1],o=c[3],p=b[1],j=a3(m(a[1][1+g],a),i),k=n(a[1][1+f],a,h),l=n(a[1][1+d],a,e);if(i===j&&h===k&&e===l)return b;return[0,p,[0,j,k,o,l]]}function +h4(a,b){var +c=b[2],d=c[2],e=c[1],h=c[3],i=b[1],f=n(a[1][1+aI],a,e),g=n(a[1][1+k],a,d);if(e===f&&d===g)return b;return[0,i,[0,f,g,h]]}function +h5(a,b){var +c=b[2],e=c[3],f=c[2],g=c[1],k=b[1],h=gy(m(a[1][1+dC],a),g),i=a3(m(a[1][1+dB],a),f),j=n(a[1][1+d],a,e);if(g===h&&f===i&&e===j)return b;return[0,k,[0,h,i,j]]}function +h6(a,b,c){var +e=c[4],f=c[3],g=c[2],h=c[1],i=a3(m(a[1][1+j],a),h),k=n(a[1][1+aG],a,g),l=n(a[1][1+V],a,f),o=n(a[1][1+d],a,e);if(h===i&&g===k&&f===l&&e===o)return c;return[0,i,k,l,o]}function +h7(a,b,c){var +e=c[5],f=c[4],g=c[3],h=c[2],i=c[1],k=n(a[1][1+aJ],a,i),l=a3(m(a[1][1+j],a),h),o=n(a[1][1+aG],a,g),p=n(a[1][1+V],a,f),q=n(a[1][1+d],a,e);if(i===k&&h===l&&g===o&&f===p&&e===q)return c;return[0,k,l,o,p,q]}function +h8(a,b,c){var +e=c[7],f=c[6],g=c[5],h=c[4],i=c[3],k=c[2],l=c[1],o=n(a[1][1+aM],a,l),p=a3(m(a[1][1+j],a),k),q=ib(m(a[1][1+B],a),i),v=m(a[1][1+w],a),r=a3(function(a){return ib(v,a)},h),x=m(a[1][1+w],a),s=gy(function(a){return ib(x,a)},g),t=a3(m(a[1][1+aL],a),f),u=n(a[1][1+d],a,e);if(o===l&&p===k&&q===i&&r===h&&s===g&&t===f&&u===e)return c;return[0,o,p,q,r,s,t,u]}function +h9(a,b,c){var +e=c[1],f=n(a[1][1+d],a,e);return e===f?c:[0,f]}function +h_(a,b,c){var +e=c[2],f=c[1],g=a3(m(a[1][1+Q],a),f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,g,h]}function +h$(a,b,c){var +f=c[4],g=c[3],h=c[2],i=c[1],j=n(a[1][1+v],a,i),k=n(a[1][1+e],a,h),l=n(a[1][1+e],a,g),m=n(a[1][1+d],a,f);if(i===j&&h===k&&g===l&&f===m)return c;return[0,j,k,l,m]}function +ia(a,b){var +c=b[1],d=b[2];function +e(a){return[0,c,a]}return fb(m(a[1][1+r],a),c,d,b,e)}function +ic(a,b){var +c=b[2],e=c[2],f=c[1],i=b[1],g=n(a[1][1+aH],a,f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return b;return[0,i,[0,g,h]]}function +id(a,b){return l(a[1][1+H],a,co5,b)}function +ie(a,b){if(0===b[0])return[0,n(a[1][1+g],a,b[1])];var +c=b[1],d=c[1];return[1,[0,d,l(a[1][1+t],a,d,c[2])]]}function +ig(a,b){var +c=b[2],d=c[3],e=c[2],f=c[1],j=c[4],k=b[1],g=n(a[1][1+aI],a,f),h=n(a[1][1+aH],a,e),i=n(a[1][1+F],a,d);if(f===g&&e===h&&d===i)return b;return[0,k,[0,g,h,i,j]]}function +ih(a,b){var +c=b[2],e=c[3],f=c[2],g=c[1],k=b[1],h=gy(m(a[1][1+dG],a),g),i=a3(m(a[1][1+dE],a),f),j=n(a[1][1+d],a,e);if(g===h&&f===i&&e===j)return b;return[0,k,[0,h,i,j]]}function +ii(a,b){return l(a[1][1+i],a,co6,b)}function +ij(a,b,c){var +e=c[6],f=c[5],g=c[4],h=c[3],i=c[2],k=c[1],t=c[7],l=n(a[1][1+aJ],a,k),o=a3(m(a[1][1+j],a),i),p=n(a[1][1+dF],a,h),q=n(a[1][1+dI],a,f),r=n(a[1][1+V],a,g),s=n(a[1][1+d],a,e);if(k===l&&i===o&&h===p&&f===q&&g===r&&e===s)return c;return[0,l,o,p,r,q,s,t]}function +ik(a,b){return a3(m(a[1][1+e],a),b)}function +il(a,b,c){var +e=c[7],f=c[6],g=c[5],h=c[3],i=c[2],j=c[1],k=n(a[1][1+N],a,j),l=n(a[1][1+aK],a,i),o=n(a[1][1+s],a,h),q=n(a[1][1+p],a,g),r=gy(m(a[1][1+G],a),f),t=n(a[1][1+d],a,e);if(j===k&&i===l&&o===h&&q===g&&r===f&&t===e)return c;return[0,k,l,o,c[4],q,r,t]}function +im(a,b){if(typeof +b==="number")return b?b:b;var +c=b[1],d=n(a[1][1+e],a,c);return c===d?b:[0,d]}function +io(a,b,c){var +e=c[7],f=c[6],g=c[5],h=c[3],i=c[2],j=c[1],k=n(a[1][1+q],a,j),l=n(a[1][1+aK],a,i),o=n(a[1][1+s],a,h),r=n(a[1][1+p],a,g),t=gy(m(a[1][1+G],a),f),u=n(a[1][1+d],a,e);if(j===k&&i===l&&o===h&&r===g&&t===f&&u===e)return c;return[0,k,l,o,c[4],r,t,u]}function +ip(a,b,c){var +e=c[6],f=c[5],g=c[3],h=c[2],i=n(a[1][1+q],a,h),j=ib(m(a[1][1+x],a),g),k=gy(m(a[1][1+G],a),f),l=n(a[1][1+d],a,e);if(h===i&&g===j&&f===k&&e===l)return c;return[0,c[1],i,j,c[4],k,l]}function +iq(a,b){var +c=b[2],d=c[2],e=c[1],h=b[1],f=n(a[1][1+$],a,e),g=a3(m(a[1][1+A],a),d);if(e===f&&d===g)return b;return[0,h,[0,f,g]]}function +ir(a,b){var +c=b[2],e=c[2],f=c[1],i=b[1],g=gy(m(a[1][1+dM],a),f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return b;return[0,i,[0,g,h]]}function +is(a,b){switch(b[0]){case +0:var +c=b[1],d=c[1],i=c[2],j=function(a){return[0,[0,d,a]]};return fb(m(a[1][1+dL],a),d,i,b,j);case +1:var +e=b[1],f=e[1],k=e[2],l=function(a){return[1,[0,f,a]]};return fb(m(a[1][1+dJ],a),f,k,b,l);default:var +g=b[1],h=g[1],n=g[2],o=function(a){return[2,[0,h,a]]};return fb(m(a[1][1+dK],a),h,n,b,o)}}function +it(a,b){var +c=b[2],f=c[2],g=c[1],j=b[1],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return b;return[0,j,[0,h,i]]}function +iu(a,b){var +c=b[2],e=c[2],f=c[1],i=b[1],g=gy(m(a[1][1+dP],a),f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return b;return[0,i,[0,g,h]]}function +iv(a,b){return l(a[1][1+i],a,co7,b)}function +iw(a,b,c){var +f=c[3],g=c[2],h=c[1],i=n(a[1][1+e],a,h),j=a3(m(a[1][1+A],a),g),k=n(a[1][1+d],a,f);if(h===i&&g===j&&f===k)return c;return[0,i,j,k]}function +ix(a,b,c){var +e=c[7],f=c[6],g=c[5],h=c[4],i=c[3],k=c[2],l=c[1],o=a3(m(a[1][1+aM],a),l),p=a3(m(a[1][1+j],a),i),q=n(a[1][1+dR],a,k),v=m(a[1][1+dN],a),r=a3(function(a){return ib(v,a)},h),s=a3(m(a[1][1+aL],a),g),t=gy(m(a[1][1+G],a),f),u=n(a[1][1+d],a,e);if(l===o&&k===q&&h===r&&g===s&&f===t&&e===u&&i===p)return c;return[0,o,q,p,r,s,t,u]}function +iy(a,b,c){return l(a[1][1+aN],a,b,c)}function +iz(a,b,c){return l(a[1][1+aN],a,b,c)}function +iA(a,b,c){var +e=c[3],f=c[2],g=c[1],h=a3(m(a[1][1+dS],a),g),i=n(a[1][1+dU],a,f),j=n(a[1][1+d],a,e);if(g===h&&f===i&&e===j)return c;return[0,h,i,j]}function +iB(a,b){return ib(m(a[1][1+r],a),b)}function +iC(a,b){if(0===b[0]){var +c=b[1],e=n(a[1][1+f],a,c);return e===c?b:[0,e]}var +g=b[1],h=g[2][1],j=g[1],i=n(a[1][1+d],a,h);return h===i?b:[1,[0,j,[0,i]]]}function +iD(a,b){var +c=b[2],e=c[2],f=c[1],i=b[1],g=gy(m(a[1][1+dV],a),f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return b;return[0,i,[0,g,h]]}function +iE(a,b,c){var +d=c[1],e=l(a[1][1+aO],a,b,d);return d===e?c:[0,e,c[2],c[3]]}function +iF(a,b){var +c=b[2],e=c[2],f=c[1],i=b[1],g=gy(m(a[1][1+c9],a),f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return b;return[0,i,[0,g,h]]}function +iG(a,b,c){var +f=c[4],g=c[3],h=c[2],i=c[1],j=n(a[1][1+e],a,i),k=a3(m(a[1][1+X],a),h),l=n(a[1][1+aQ],a,g),o=n(a[1][1+d],a,f);if(i===j&&h===k&&g===l&&f===o)return c;return[0,j,k,l,o]}function +iH(a,b,c){var +e=c[2],f=c[1],g=a3(m(a[1][1+Q],a),f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,g,h]}function +iI(a,b,c){var +e=c[2],f=c[1],g=n(a[1][1+L],a,f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,g,h]}function +iL(a,b,c){var +f=c[4],g=c[3],h=c[2],i=n(a[1][1+e],a,h),j=n(a[1][1+e],a,g),k=n(a[1][1+d],a,f);if(h===i&&g===j&&f===k)return c;return[0,c[1],i,j,k]}function +iM(a,b,c){var +f=c[4],g=c[3],h=c[2],i=n(a[1][1+Y],a,h),j=n(a[1][1+e],a,g),k=n(a[1][1+d],a,f);if(h===i&&g===j&&f===k)return c;return[0,c[1],i,j,k]}function +iN(a,b,c){var +f=c[3],g=c[2],h=c[1],i=n(a[1][1+e],a,h),j=n(a[1][1+k],a,g),l=n(a[1][1+d],a,f);if(i===h&&j===g&&l===f)return c;return[0,i,j,l]}function +iO(a,b,c){return l(a[1][1+S],a,b,c)}function +iP(a,b){switch(b[0]){case +0:var +c=b[1],d=function(a){return[0,a]};return aw(m(a[1][1+e],a),c,b,d);case +1:var +f=b[1],g=function(a){return[1,a]};return aw(m(a[1][1+ad],a),f,b,g);default:return b}}function +iS(a,b,c){var +e=c[2],f=c[1],g=gy(m(a[1][1+d3],a),f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,g,h]}function +iV(a,b){var +d=b[2],c=b[1];switch(d[0]){case +0:var +e=d[1],f=function(a){return[0,c,[0,a]]};return fb(m(a[1][1+d4],a),c,e,b,f);case +1:var +h=d[1],i=function(a){return[0,c,[1,a]]};return fb(m(a[1][1+d1],a),c,h,b,i);case +2:var +j=d[1],k=function(a){return[0,c,[2,a]]};return fb(m(a[1][1+d0],a),c,j,b,k);case +3:var +l=d[1],o=function(a){return[0,c,[3,a]]};return fb(m(a[1][1+dZ],a),c,l,b,o);case +4:var +p=d[1],q=function(a){return[0,c,[4,a]]};return fb(m(a[1][1+dY],a),c,p,b,q);case +5:var +r=d[1],s=function(a){return[0,c,[5,a]]};return fb(m(a[1][1+aO],a),c,r,b,s);case +6:var +u=d[1],v=function(a){return[0,c,[6,a]]};return fb(m(a[1][1+dO],a),c,u,b,v);case +7:var +w=d[1],x=function(a){return[0,c,[7,a]]};return fb(m(a[1][1+dA],a),c,w,b,x);case +8:var +y=d[1],z=function(a){return[0,c,[8,a]]};return fb(m(a[1][1+cT],a),c,y,b,z);case +9:var +A=d[1],B=function(a){return[0,c,[9,a]]};return aw(m(a[1][1+g],a),A,b,B);case +10:var +D=d[1],E=function(a){return[0,c,[10,a]]};return aw(n(a[1][1+cG],a,c),D,b,E);case +11:var +F=d[1],G=function(a){return[0,c,[11,a]]};return fb(m(a[1][1+aq],a),c,F,b,G);case +12:var +H=d[1],J=function(a){return[0,c,[12,a]]};return fb(m(a[1][1+al],a),c,H,b,J);case +13:var +K=d[1],L=function(a){return[0,c,[13,a]]};return fb(m(a[1][1+t],a),c,K,b,L);case +14:var +M=d[1],N=function(a){return[0,c,[14,a]]};return fb(m(a[1][1+aP],a),c,M,b,N);case +15:var +O=d[1],P=function(a){return[0,c,[15,a]]};return fb(m(a[1][1+b5],a),c,O,b,P);case +16:var +Q=d[1],R=function(a){return[0,c,[16,a]]};return fb(m(a[1][1+C],a),c,Q,b,R);case +17:var +S=d[1],T=function(a){return[0,c,[17,a]]};return fb(m(a[1][1+I],a),c,S,b,T);case +18:var +U=d[1],V=function(a){return[0,c,[18,a]]};return fb(m(a[1][1+bo],a),c,U,b,V);case +19:var +W=d[1],X=function(a){return[0,c,[19,a]]};return fb(m(a[1][1+b7],a),c,W,b,X);case +20:var +Y=d[1],Z=function(a){return[0,c,[20,a]]};return fb(m(a[1][1+cc],a),c,Y,b,Z);case +21:var +_=d[1],$=function(a){return[0,c,[21,a]]};return fb(m(a[1][1+ai],a),c,_,b,$);case +22:var +aa=d[1],ab=function(a){return[0,c,[22,a]]};return fb(m(a[1][1+b8],a),c,aa,b,ab);case +23:var +ad=d[1],ae=function(a){return[0,c,[23,a]]};return fb(m(a[1][1+b6],a),c,ad,b,ae);case +24:var +af=d[1],ag=function(a){return[0,c,[24,a]]};return fb(m(a[1][1+b3],a),c,af,b,ag);case +25:var +ah=d[1],aj=function(a){return[0,c,[25,a]]};return aw(n(a[1][1+bM],a,c),ah,b,aj);case +26:var +ak=d[1],am=function(a){return[0,c,[26,a]]};return fb(m(a[1][1+bK],a),c,ak,b,am);case +27:var +an=d[1],ao=function(a){return[0,c,[27,a]]};return fb(m(a[1][1+bl],a),c,an,b,ao);case +28:var +ap=d[1],ar=function(a){return[0,c,[28,a]]};return fb(m(a[1][1+bi],a),c,ap,b,ar);case +29:var +as=d[1],at=function(a){return[0,c,[29,a]]};return fb(m(a[1][1+bf],a),c,as,b,at);case +30:var +au=d[1],av=function(a){return[0,c,[30,a]]};return fb(m(a[1][1+ac],a),c,au,b,av);case +31:var +ax=d[1],ay=function(a){return[0,c,[31,a]]};return fb(m(a[1][1+bd],a),c,ax,b,ay);case +32:var +az=d[1],aA=function(a){return[0,c,[32,a]]};return fb(m(a[1][1+a6],a),c,az,b,aA);case +33:var +aB=d[1],aC=function(a){return[0,c,[33,a]]};return fb(m(a[1][1+a$],a),c,aB,b,aC);case +34:var +aD=d[1],aE=function(a){return[0,c,[34,a]]};return fb(m(a[1][1+aZ],a),c,aD,b,aE);case +35:var +aF=d[1],aG=function(a){return[0,c,[35,a]]};return fb(m(a[1][1+aX],a),c,aF,b,aG);default:var +aH=d[1],aI=function(a){return[0,c,[36,a]]};return fb(m(a[1][1+aR],a),c,aH,b,aI)}}function +iW(a,b){var +c=b[2],d=b[1],g=b[3],e=gy(m(a[1][1+W],a),d),f=gy(m(a[1][1+W],a),c);if(d===e&&c===f)return b;return[0,e,f,g]}function +iX(a){var +c=m(a[1][1+b],a);return function(a){return a3(c,a)}}function +iY(a,b){return b}function +i0(a,b){var +d=b[2],c=b[1];switch(d[0]){case +0:var +e=d[1],f=function(a){return[0,c,[0,a]]};return fb(m(a[1][1+r],a),c,e,b,f);case +1:var +g=d[1],h=function(a){return[0,c,[1,a]]};return fb(m(a[1][1+dW],a),c,g,b,h);case +2:var +i=d[1],j=function(a){return[0,c,[2,a]]};return fb(m(a[1][1+dQ],a),c,i,b,j);case +3:var +k=d[1],l=function(a){return[0,c,[3,a]]};return fb(m(a[1][1+dH],a),c,k,b,l);case +4:var +n=d[1],o=function(a){return[0,c,[4,a]]};return fb(m(a[1][1+dy],a),c,n,b,o);case +5:var +p=d[1],q=function(a){return[0,c,[5,a]]};return fb(m(a[1][1+dx],a),c,p,b,q);case +6:var +s=d[1],t=function(a){return[0,c,[6,a]]};return fb(m(a[1][1+aE],a),c,s,b,t);case +7:var +u=d[1],v=function(a){return[0,c,[7,a]]};return fb(m(a[1][1+aD],a),c,u,b,v);case +8:var +w=d[1],x=function(a){return[0,c,[8,a]]};return fb(m(a[1][1+dw],a),c,w,b,x);case +9:var +y=d[1],A=function(a){return[0,c,[9,a]]};return fb(m(a[1][1+dv],a),c,y,b,A);case +10:var +B=d[1],C=function(a){return[0,c,[10,a]]};return fb(m(a[1][1+aC],a),c,B,b,C);case +11:var +D=d[1],E=function(a){return[0,c,[11,a]]};return fb(m(a[1][1+dt],a),c,D,b,E);case +12:var +F=d[1],G=function(a){return[0,c,[12,a]]};return fb(m(a[1][1+ds],a),c,F,b,G);case +13:var +H=d[1],I=function(a){return[0,c,[13,a]]};return fb(m(a[1][1+dr],a),c,H,b,I);case +14:var +J=d[1],L=function(a){return[0,c,[14,a]]};return fb(m(a[1][1+dq],a),c,J,b,L);case +15:var +M=d[1],N=function(a){return[0,c,[15,a]]};return fb(m(a[1][1+P],a),c,M,b,N);case +16:var +O=d[1],Q=function(a){return[0,c,[16,a]]};return fb(m(a[1][1+aB],a),c,O,b,Q);case +17:var +R=d[1],S=function(a){return[0,c,[17,a]]};return fb(m(a[1][1+dp],a),c,R,b,S);case +18:var +U=d[1],V=function(a){return[0,c,[18,a]]};return fb(m(a[1][1+dn],a),c,U,b,V);case +19:var +W=d[1],X=function(a){return[0,c,[19,a]]};return fb(m(a[1][1+T],a),c,W,b,X);case +20:var +Y=d[1],Z=function(a){return[0,c,[20,a]]};return fb(m(a[1][1+db],a),c,Y,b,Z);case +21:var +_=d[1],$=function(a){return[0,c,[21,a]]};return fb(m(a[1][1+c$],a),c,_,b,$);case +22:var +aa=d[1],ab=function(a){return[0,c,[22,a]]};return fb(m(a[1][1+c8],a),c,aa,b,ab);case +23:var +ac=d[1],ad=function(a){return[0,c,[23,a]]};return fb(m(a[1][1+cY],a),c,ac,b,ad);case +24:var +ae=d[1],af=function(a){return[0,c,[24,a]]};return fb(m(a[1][1+c5],a),c,ae,b,af);case +25:var +ag=d[1],ah=function(a){return[0,c,[25,a]]};return fb(m(a[1][1+c0],a),c,ag,b,ah);case +26:var +ai=d[1],aj=function(a){return[0,c,[26,a]]};return fb(m(a[1][1+cU],a),c,ai,b,aj);case +27:var +ak=d[1],al=function(a){return[0,c,[27,a]]};return fb(m(a[1][1+cH],a),c,ak,b,al);case +28:var +am=d[1],an=function(a){return[0,c,[28,a]]};return fb(m(a[1][1+cF],a),c,am,b,an);case +29:var +ao=d[1],ap=function(a){return[0,c,[29,a]]};return fb(m(a[1][1+cy],a),c,ao,b,ap);case +30:var +aq=d[1],ar=function(a){return[0,c,[30,a]]};return fb(m(a[1][1+cd],a),c,aq,b,ar);case +31:var +as=d[1],at=function(a){return[0,c,[31,a]]};return fb(m(a[1][1+bm],a),c,as,b,at);case +32:var +au=d[1],av=function(a){return[0,c,[32,a]]};return fb(m(a[1][1+bh],a),c,au,b,av);case +33:var +aw=d[1],ax=function(a){return[0,c,[33,a]]};return fb(m(a[1][1+bc],a),c,aw,b,ax);case +34:var +ay=d[1],az=function(a){return[0,c,[34,a]]};return fb(m(a[1][1+ba],a),c,ay,b,az);case +35:var +aA=d[1],aF=function(a){return[0,c,[35,a]]};return fb(m(a[1][1+K],a),c,aA,b,aF);case +36:var +aG=d[1],aH=function(a){return[0,c,[36,a]]};return fb(m(a[1][1+P],a),c,aG,b,aH);case +37:var +aI=d[1],aJ=function(a){return[0,c,[37,a]]};return fb(m(a[1][1+z],a),c,aI,b,aJ);case +38:var +aK=d[1],aL=function(a){return[0,c,[38,a]]};return fb(m(a[1][1+aT],a),c,aK,b,aL);default:var +aM=d[1],aN=function(a){return[0,c,[39,a]]};return fb(m(a[1][1+aS],a),c,aM,b,aN)}}fC(Z,[0,d5,function(a,b){var +c=b[2],e=c[4],f=c[3],g=c[1],k=c[2],l=b[1],h=n(a[1][1+bb],a,g),i=n(a[1][1+d],a,f),j=gy(m(a[1][1+W],a),e);if(g===h&&f===i&&e===j)return b;return[0,l,[0,h,k,i,j]]},h,i0,W,iY,d,iX,b,iW,e,iV,d4,iS,d3,iP,d1,iO,d0,iN,dZ,iM,dY,iL,r,iI,dW,iH,aO,iG,aQ,iF,bM,iE,X,iD,dV,iC,dU,iB,dT,iA,dQ,iz,dO,iy,aN,ix,dN,iw,aM,iv,dR,iu,G,it,dP,is,aL,ir,dM,iq,dL,ip,dJ,io,aK,im,dK,il,F,ik,dH,ij,aJ,ii,dF,ih,dG,ig,aI,ie,aH,id,dE,ic,dI,ia,dA,h$,dy,h_,dx,h9,aE,h8,aD,h7,dD,h6,aG,h5,dC,h4,dB,h3,dw,h2,dv,h1,du,h0,aC,hY,dt,hX,ds,hW,dr,hV,dq,hU,aB,hT,dp,hS,dn,hR,T,hQ,dk,hP,dj,hO,dh,hN,df,hM,dd,hL,dm,hK,aA,hJ,di,hI,dg,hH,de,hG,dl,hF,y,hE,db,hD,da,hC,c$,hA,c_,hz,dc,hx,az,hw,ay,hv,c8,hu,c9,ht,c5,hs,c4,hp,c6,ho,c0,hn,cZ,hm,c1,hl,cY,hk,cX,hj,c3,hi,au,hg,cP,hf,cM,he,cL,hd,D,hc,Q,ha,bR,g$,bO,g_,bN,g9,bS,g8,bQ,g7,b1,g6,b0,g5,b2,g4,bU,g3,B,g2,bP,g1,cx,g0,at,gZ,cK,gY,b9,gX,aU,gW,p,gV,A,gU,j,gT,J,gS,w,gR,as,gQ,bL,gP,t,gM,C,gL,I,gK,aP,gJ,b5,gI,bo,gH,b7,gG,b4,gF,dz,gE,cz,gD,a0,gC,_,gB,a4,gA,a2,gz,a1,gw,ce,gv,ae,gu,bp,gs,a7,gr,a_,gq,a9,gp,a8,go,d2,gn,aY,gm,cw,gl,f,gk,k,gj,s,gi,V,gh,cU,gg,cT,gf,x,ge,S,gd,cR,gc,cN,gb,cS,ga,cO,f$,cV,f_,cW,f9,dX,f8,ax,f7,g,f6,aa,f5,$,f4,o,f3,R,f2,cy,f1,N,f0,aF,fZ,cG,fY,cI,fX,cJ,fW,cH,fV,cF,fU,cB,fT,cA,fS,bn,fQ,cD,fP,cE,fO,cC,fN,aq,fM,al,fL,ch,fK,cn,fJ,ci,fI,cg,fH,cv,fG,cu,fF,ct,fE,cs,fD,cr,fB,cq,fA,cp,fz,ar,fx,co,fw,am,fv,cf,fu,ap,ft,an,fs,cl,fr,cm,fq,aj,fo,ak,fn,cj,fm,ck,fl,c,fk,cd,fj,cc,fi,ai,fh,bK,fg,ca,ff,b_,fe,cb,fd,b$,fc,b8,fa,b6,e$,b3,e_,bT,e9,q,e8,bV,e7,bW,e6,bZ,e5,bX,e4,bY,e3,P,e2,av,e1,aV,e0,dS,eZ,c7,eY,c2,eX,H,eW,Y,eV,u,eU,i,eT,bq,eS,bC,eR,bE,eQ,bB,eP,bA,eO,bw,eN,bt,eM,bv,eL,bz,eK,bx,eJ,by,eI,bs,eH,bu,eG,br,eF,bJ,eE,bI,eD,bH,eC,bG,eB,bF,eA,bD,ez,ag,ey,v,ex,a5,ew,ab,ev,cQ,eu,bm,et,bl,es,bb,er,L,eq,bj,ep,ad,eo,bk,en,bi,em,bh,el,bg,ek,bf,ej,ac,ei,be,eh,bd,eg,bc,ef,ba,ee,a6,ed,a$,ec,aZ,eb,aX,ea,z,d$,aW,d_,aT,d9,aS,d8,K,d7,aR,d6]);return function(a,b){return fp(b,Z)}}),AY=function +d(a,b,c){return d.fun(a,b,c)};h(AY,function(d,b,c){var +a=c[2];switch(a[0]){case +0:var +e=a[1][1];return M(function(c){return function(a){var +b=0===a[0]?a[1][2][2]:a[1][2][1];return l(AY,d,c,b)}},b,e);case +1:var +f=a[1][1];return M(function(b){return function(a){return 2===a[0]?b:l(AY,d,b,a[1][2][1])}},b,f);case +2:return n(d,b,a[1][1]);default:return b}});var +aDU=function(f,b,c){return M(function(a,b){var +e=b[2][1],c=e[2],d=0;switch(c[0]){case +0:if(0!==c[1][2][0])d=1;break;case +1:if(0!==c[1][2][0])d=1;break;case +2:if(0!==c[1][2][0])d=1;break}var +g=d?1:0;return l(AY,m(f,g),a,e)},b,c)},xZ=function +b(a){return b.fun(a)},co8=function(a){var +b=0===a[0]?a[1][2][2]:a[1][2][1];return m(xZ,b)},co9=function(a){return 2===a[0]?0:m(xZ,a[1][2][1])};h(xZ,function(a){var +b=a[2];switch(b[0]){case +0:return ll(co8,b[1][1]);case +1:return ll(co9,b[1][1]);case +2:return 1;default:return 0}});var +aDV=function(a){var +b=Ee(function(a){var +c=a[2],b=0;switch(c[0]){case +9:var +f=c[1][2];if(f&&1===f[1][0])b=1;break;case +20:var +g=c[1][2];if(0===g[0]){var +h=g[1][2],d=0;switch(h[0]){case +26:if(h[1][1])d=1;break;case +3:d=1;break}if(d)b=1}break;case +21:var +i=c[1][1];if(i){var +j=i[1][2],e=0;switch(j[0]){case +26:if(j[1][1])e=1;break;case +3:e=1;break}if(e)b=1}break;case +26:if(c[1][1])b=1;break;case +3:case +10:b=1;break}return b?1:0},a);return V(b[1],b[2])},aDW=function(a){var +b=Z(a);if(0a)return 1;var +b=d+1|0}},aD8=0,aD9=function(a,b,c){return[0,a,b,ctZ,0,c,aD8,ctY]},aD_=function(a){var +b=a[2];return[0,a[1],[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12]],a[3],a[4],a[5],a[6],a[7]]},aD$=function(a){return a[3][1]},Mm=function(a,b){return a!==b[4]?[0,b[1],b[2],b[3],a,b[5],b[6],b[7]]:b},Z8=function +c(a,b){return c.fun(a,b)},aEa=function +c(a,b){return c.fun(a,b)},Z9=function +c(a,b){return c.fun(a,b)},Z_=function +c(a,b){return c.fun(a,b)};h(Z8,function(a,b){if(typeof +a==="number"){var +c=a;if(66<=c)if(99<=c)switch(c){case +99:if(typeof +b==="number"&&99===b)return 1;break;case +100:if(typeof +b==="number"&&hZ===b)return 1;break;case +101:if(typeof +b==="number"&&iK===b)return 1;break;case +102:if(typeof +b==="number"&&iZ===b)return 1;break;case +103:if(typeof +b==="number"&&iU===b)return 1;break;case +104:if(typeof +b==="number"&&iQ===b)return 1;break;case +105:if(typeof +b==="number"&&i$===b)return 1;break;case +106:if(typeof +b==="number"&&hq===b)return 1;break;case +107:if(typeof +b==="number"&&hb===b)return 1;break;case +108:if(typeof +b==="number"&&i1===b)return 1;break;case +109:if(typeof +b==="number"&&jw===b)return 1;break;case +110:if(typeof +b==="number"&&hr===b)return 1;break;case +111:if(typeof +b==="number"&&iT===b)return 1;break;case +112:if(typeof +b==="number"&&hy===b)return 1;break;case +113:if(typeof +b==="number"&>===b)return 1;break;case +114:if(typeof +b==="number"&&iR===b)return 1;break;case +115:if(typeof +b==="number"&&jx===b)return 1;break;case +116:if(typeof +b==="number"&&jY===b)return 1;break;case +117:if(typeof +b==="number"&&kL===b)return 1;break;case +118:if(typeof +b==="number"&&kv===b)return 1;break;case +119:if(typeof +b==="number"&&k8===b)return 1;break;case +120:if(typeof +b==="number"&&iJ===b)return 1;break;case +121:if(typeof +b==="number"&&k$===b)return 1;break;case +122:if(typeof +b==="number"&&gN===b)return 1;break;case +123:if(typeof +b==="number"&&hB===b)return 1;break;case +124:if(typeof +b==="number"&&jX===b)return 1;break;case +125:if(typeof +b==="number"&&E===b)return 1;break;case +126:if(typeof +b==="number"&&lj===b)return 1;break;case +127:if(typeof +b==="number"&&gx===b)return 1;break;case +128:if(typeof +b==="number"&&gO===b)return 1;break;case +129:if(typeof +b==="number"&&ju===b)return 1;break;case +130:if(typeof +b==="number"&&kr===b)return 1;break;default:if(typeof +b==="number"&&l8<=b)return 1}else +switch(c){case +66:if(typeof +b==="number"&&66===b)return 1;break;case +67:if(typeof +b==="number"&&67===b)return 1;break;case +68:if(typeof +b==="number"&&68===b)return 1;break;case +69:if(typeof +b==="number"&&69===b)return 1;break;case +70:if(typeof +b==="number"&&70===b)return 1;break;case +71:if(typeof +b==="number"&&71===b)return 1;break;case +72:if(typeof +b==="number"&&72===b)return 1;break;case +73:if(typeof +b==="number"&&73===b)return 1;break;case +74:if(typeof +b==="number"&&74===b)return 1;break;case +75:if(typeof +b==="number"&&75===b)return 1;break;case +76:if(typeof +b==="number"&&76===b)return 1;break;case +77:if(typeof +b==="number"&&77===b)return 1;break;case +78:if(typeof +b==="number"&&78===b)return 1;break;case +79:if(typeof +b==="number"&&79===b)return 1;break;case +80:if(typeof +b==="number"&&80===b)return 1;break;case +81:if(typeof +b==="number"&&81===b)return 1;break;case +82:if(typeof +b==="number"&&82===b)return 1;break;case +83:if(typeof +b==="number"&&83===b)return 1;break;case +84:if(typeof +b==="number"&&84===b)return 1;break;case +85:if(typeof +b==="number"&&85===b)return 1;break;case +86:if(typeof +b==="number"&&86===b)return 1;break;case +87:if(typeof +b==="number"&&87===b)return 1;break;case +88:if(typeof +b==="number"&&88===b)return 1;break;case +89:if(typeof +b==="number"&&89===b)return 1;break;case +90:if(typeof +b==="number"&&90===b)return 1;break;case +91:if(typeof +b==="number"&&91===b)return 1;break;case +92:if(typeof +b==="number"&&92===b)return 1;break;case +93:if(typeof +b==="number"&&93===b)return 1;break;case +94:if(typeof +b==="number"&&94===b)return 1;break;case +95:if(typeof +b==="number"&&95===b)return 1;break;case +96:if(typeof +b==="number"&&96===b)return 1;break;case +97:if(typeof +b==="number"&&97===b)return 1;break;default:if(typeof +b==="number"&&98===b)return 1}else if(33<=c)switch(c){case +33:if(typeof +b==="number"&&33===b)return 1;break;case +34:if(typeof +b==="number"&&34===b)return 1;break;case +35:if(typeof +b==="number"&&35===b)return 1;break;case +36:if(typeof +b==="number"&&36===b)return 1;break;case +37:if(typeof +b==="number"&&37===b)return 1;break;case +38:if(typeof +b==="number"&&38===b)return 1;break;case +39:if(typeof +b==="number"&&39===b)return 1;break;case +40:if(typeof +b==="number"&&40===b)return 1;break;case +41:if(typeof +b==="number"&&41===b)return 1;break;case +42:if(typeof +b==="number"&&42===b)return 1;break;case +43:if(typeof +b==="number"&&43===b)return 1;break;case +44:if(typeof +b==="number"&&44===b)return 1;break;case +45:if(typeof +b==="number"&&45===b)return 1;break;case +46:if(typeof +b==="number"&&46===b)return 1;break;case +47:if(typeof +b==="number"&&47===b)return 1;break;case +48:if(typeof +b==="number"&&48===b)return 1;break;case +49:if(typeof +b==="number"&&49===b)return 1;break;case +50:if(typeof +b==="number"&&50===b)return 1;break;case +51:if(typeof +b==="number"&&51===b)return 1;break;case +52:if(typeof +b==="number"&&52===b)return 1;break;case +53:if(typeof +b==="number"&&53===b)return 1;break;case +54:if(typeof +b==="number"&&54===b)return 1;break;case +55:if(typeof +b==="number"&&55===b)return 1;break;case +56:if(typeof +b==="number"&&56===b)return 1;break;case +57:if(typeof +b==="number"&&57===b)return 1;break;case +58:if(typeof +b==="number"&&58===b)return 1;break;case +59:if(typeof +b==="number"&&59===b)return 1;break;case +60:if(typeof +b==="number"&&60===b)return 1;break;case +61:if(typeof +b==="number"&&61===b)return 1;break;case +62:if(typeof +b==="number"&&62===b)return 1;break;case +63:if(typeof +b==="number"&&63===b)return 1;break;case +64:if(typeof +b==="number"&&64===b)return 1;break;default:if(typeof +b==="number"&&65===b)return 1}else +switch(c){case +0:if(typeof +b==="number"&&!b)return 1;break;case +1:if(typeof +b==="number"&&1===b)return 1;break;case +2:if(typeof +b==="number"&&2===b)return 1;break;case +3:if(typeof +b==="number"&&3===b)return 1;break;case +4:if(typeof +b==="number"&&4===b)return 1;break;case +5:if(typeof +b==="number"&&5===b)return 1;break;case +6:if(typeof +b==="number"&&6===b)return 1;break;case +7:if(typeof +b==="number"&&7===b)return 1;break;case +8:if(typeof +b==="number"&&8===b)return 1;break;case +9:if(typeof +b==="number"&&9===b)return 1;break;case +10:if(typeof +b==="number"&&10===b)return 1;break;case +11:if(typeof +b==="number"&&11===b)return 1;break;case +12:if(typeof +b==="number"&&12===b)return 1;break;case +13:if(typeof +b==="number"&&13===b)return 1;break;case +14:if(typeof +b==="number"&&14===b)return 1;break;case +15:if(typeof +b==="number"&&15===b)return 1;break;case +16:if(typeof +b==="number"&&16===b)return 1;break;case +17:if(typeof +b==="number"&&17===b)return 1;break;case +18:if(typeof +b==="number"&&18===b)return 1;break;case +19:if(typeof +b==="number"&&19===b)return 1;break;case +20:if(typeof +b==="number"&&20===b)return 1;break;case +21:if(typeof +b==="number"&&21===b)return 1;break;case +22:if(typeof +b==="number"&&22===b)return 1;break;case +23:if(typeof +b==="number"&&23===b)return 1;break;case +24:if(typeof +b==="number"&&24===b)return 1;break;case +25:if(typeof +b==="number"&&25===b)return 1;break;case +26:if(typeof +b==="number"&&26===b)return 1;break;case +27:if(typeof +b==="number"&&27===b)return 1;break;case +28:if(typeof +b==="number"&&28===b)return 1;break;case +29:if(typeof +b==="number"&&29===b)return 1;break;case +30:if(typeof +b==="number"&&30===b)return 1;break;case +31:if(typeof +b==="number"&&31===b)return 1;break;default:if(typeof +b==="number"&&32===b)return 1}}else +switch(a[0]){case +0:if(typeof +b!=="number"&&0===b[0]){var +K=b[2],L=b[1],M=a[2],l=m(m(Z9,a[1]),L);return l?af(M,K):l}break;case +1:if(typeof +b!=="number"&&1===b[0]){var +N=b[2],O=b[1],P=a[2],n=m(m(Z_,a[1]),O);return n?af(P,N):n}break;case +2:if(typeof +b!=="number"&&2===b[0]){var +f=b[1],g=a[1],Q=f[4],R=f[3],S=f[2],T=g[4],U=g[3],V=g[2],D=r6(g[1],f[1]),o=D?af(V,S):D,p=o?af(U,R):o;return p?T===Q?1:0:p}break;case +3:if(typeof +b!=="number"&&3===b[0]){var +d=b[1],e=a[1],W=d[5],X=d[4],Y=d[3],Z=d[2],_=e[5],$=e[4],aa=e[3],ab=e[2],C=r6(e[1],d[1]),q=C?af(ab,Z):C,r=q?af(aa,Y):q,s=r?$===X?1:0:r;return s?_===W?1:0:s}break;case +4:if(typeof +b!=="number"&&4===b[0]){var +ac=b[3],ad=b[2],ae=a[3],ag=a[2],F=r6(a[1],b[1]),t=F?af(ag,ad):F;return t?af(ae,ac):t}break;case +5:if(typeof +b!=="number"&&5===b[0]){var +ah=b[3],ai=b[2],aj=a[3],ak=a[2],G=r6(a[1],b[1]),u=G?af(ak,ai):G;return u?af(aj,ah):u}break;case +6:if(typeof +b!=="number"&&6===b[0]){var +al=b[2],am=a[2],H=r6(a[1],b[1]);return H?af(am,al):H}break;case +7:if(typeof +b!=="number"&&7===b[0])return af(a[1],b[1]);break;case +8:if(typeof +b!=="number"&&8===b[0]){var +v=af(a[1],b[1]),an=b[2],ap=a[2];return v?r6(ap,an):v}break;case +9:if(typeof +b!=="number"&&9===b[0]){var +aq=b[3],ar=b[2],as=a[3],at=a[2],I=r6(a[1],b[1]),w=I?af(at,ar):I;return w?af(as,aq):w}break;case +10:if(typeof +b!=="number"&&10===b[0]){var +au=b[3],av=b[2],aw=a[3],ax=a[2],J=r6(a[1],b[1]),x=J?af(ax,av):J;return x?af(aw,au):x}break;case +11:if(typeof +b!=="number"&&11===b[0]){var +ay=b[1];return m(m(aEa,a[1]),ay)}break;case +12:if(typeof +b!=="number"&&12===b[0]){var +az=b[3],aA=b[2],aB=b[1],aC=a[3],aD=a[2],y=m(m(Z9,a[1]),aB),z=y?aD==aA?1:0:y;return z?af(aC,az):z}break;default:if(typeof +b!=="number"&&13===b[0]){var +h=b[2],A=a[2],aE=b[3],aF=b[1],aG=a[3],B=m(m(Z_,a[1]),aF);if(B){var +k=0;if(A)if(h)var +i=ao(A[1],h[1]);else +k=1;else if(h)k=1;else +var +i=1;if(k)var +i=0;var +j=i}else +var +j=B;return j?af(aG,aE):j}}return 0});h(aEa,function(a,b){if(a){if(b)return 1}else if(!b)return 1;return 0});h(Z9,function(a,b){switch(a){case +0:if(!b)return 1;break;case +1:if(1===b)return 1;break;case +2:if(2===b)return 1;break;case +3:if(3===b)return 1;break;default:if(4<=b)return 1}return 0});h(Z_,function(a,b){switch(a){case +0:if(!b)return 1;break;case +1:if(1===b)return 1;break;default:if(2<=b)return 1}return 0});var +aEb=function(a){if(typeof +a!=="number")switch(a[0]){case +0:return cv4;case +1:return cv5;case +2:return cv6;case +3:return cv7;case +4:return cv8;case +5:return cv9;case +6:return cv_;case +7:return cv$;case +8:return cwa;case +9:return cwb;case +10:return cwc;case +11:return cwd;case +12:return cwe;default:return cwf}var +b=a;if(66<=b){if(99<=b)switch(b){case +99:return cvx;case +100:return cvy;case +101:return cvz;case +102:return cvA;case +103:return cvB;case +104:return cvC;case +105:return cvD;case +106:return cvE;case +107:return cvF;case +108:return cvG;case +109:return cvH;case +110:return cvI;case +111:return cvJ;case +112:return cvK;case +113:return cvL;case +114:return cvM;case +115:return cvN;case +116:return cvO;case +117:return cvP;case +118:return cvQ;case +119:return cvR;case +120:return cvS;case +121:return cvT;case +122:return cvU;case +123:return cvV;case +124:return cvW;case +125:return cvX;case +126:return cvY;case +127:return cvZ;case +128:return cv0;case +129:return cv1;case +130:return cv2;default:return cv3}switch(b){case +66:return cu2;case +67:return cu3;case +68:return cu4;case +69:return cu5;case +70:return cu6;case +71:return cu7;case +72:return cu8;case +73:return cu9;case +74:return cu_;case +75:return cu$;case +76:return cva;case +77:return cvb;case +78:return cvc;case +79:return cvd;case +80:return cve;case +81:return cvf;case +82:return cvg;case +83:return cvh;case +84:return cvi;case +85:return cvj;case +86:return cvk;case +87:return cvl;case +88:return cvm;case +89:return cvn;case +90:return cvo;case +91:return cvp;case +92:return cvq;case +93:return cvr;case +94:return cvs;case +95:return cvt;case +96:return cvu;case +97:return cvv;default:return cvw}}if(33<=b)switch(b){case +33:return cuv;case +34:return cuw;case +35:return cux;case +36:return cuy;case +37:return cuz;case +38:return cuA;case +39:return cuB;case +40:return cuC;case +41:return cuD;case +42:return cuE;case +43:return cuF;case +44:return cuG;case +45:return cuH;case +46:return cuI;case +47:return cuJ;case +48:return cuK;case +49:return cuL;case +50:return cuM;case +51:return cuN;case +52:return cuO;case +53:return cuP;case +54:return cuQ;case +55:return cuR;case +56:return cuS;case +57:return cuT;case +58:return cuU;case +59:return cuV;case +60:return cuW;case +61:return cuX;case +62:return cuY;case +63:return cuZ;case +64:return cu0;default:return cu1}switch(b){case +0:return ct0;case +1:return ct1;case +2:return ct2;case +3:return ct3;case +4:return ct4;case +5:return ct5;case +6:return ct6;case +7:return ct7;case +8:return ct8;case +9:return ct9;case +10:return ct_;case +11:return ct$;case +12:return cua;case +13:return cub;case +14:return cuc;case +15:return cud;case +16:return cue;case +17:return cuf;case +18:return cug;case +19:return cuh;case +20:return cui;case +21:return cuj;case +22:return cuk;case +23:return cul;case +24:return cum;case +25:return cun;case +26:return cuo;case +27:return cup;case +28:return cuq;case +29:return cur;case +30:return cus;case +31:return cut;default:return cuu}},Z$=function(a){if(typeof +a!=="number")switch(a[0]){case +0:return a[2];case +1:return a[2];case +2:return a[1][3];case +3:var +d=a[1],e=d[5],f=d[4],c=d[3];if(f&&e)return P(cyl,P(c,cyk));return f?P(cyn,P(c,cym)):e?P(cyp,P(c,cyo)):P(cyr,P(c,cyq));case +4:return a[3];case +5:var +g=a[2];return P(cyt,P(g,P(cys,a[3])));case +6:return a[2];case +7:return a[1];case +8:return a[1];case +9:return a[3];case +10:return a[3];case +11:return a[1]?cyu:cyv;case +12:return a[3];default:return a[3]}var +b=a;if(66<=b){if(99<=b)switch(b){case +99:return cxP;case +100:return cxQ;case +101:return cxR;case +102:return cxS;case +103:return cxT;case +104:return cxU;case +105:return cxV;case +106:return cxW;case +107:return cxX;case +108:return cxY;case +109:return cxZ;case +110:return cx0;case +111:return cx1;case +112:return cx2;case +113:return cx3;case +114:return cx4;case +115:return cx5;case +116:return cx6;case +117:return cx7;case +118:return cx8;case +119:return cx9;case +120:return cx_;case +121:return cx$;case +122:return cya;case +123:return cyb;case +124:return cyc;case +125:return cyd;case +126:return cye;case +127:return cyf;case +128:return cyg;case +129:return cyh;case +130:return cyi;default:return cyj}switch(b){case +66:return cxi;case +67:return cxj;case +68:return cxk;case +69:return cxl;case +70:return cxm;case +71:return cxn;case +72:return cxo;case +73:return cxp;case +74:return cxq;case +75:return cxr;case +76:return cxs;case +77:return cxt;case +78:return cxu;case +79:return cxv;case +80:return cxw;case +81:return cxx;case +82:return cxy;case +83:return cxz;case +84:return cxA;case +85:return cxB;case +86:return cxC;case +87:return cxD;case +88:return cxE;case +89:return cxF;case +90:return cxG;case +91:return cxH;case +92:return cxI;case +93:return cxJ;case +94:return cxK;case +95:return cxL;case +96:return cxM;case +97:return cxN;default:return cxO}}if(33<=b)switch(b){case +33:return cwN;case +34:return cwO;case +35:return cwP;case +36:return cwQ;case +37:return cwR;case +38:return cwS;case +39:return cwT;case +40:return cwU;case +41:return cwV;case +42:return cwW;case +43:return cwX;case +44:return cwY;case +45:return cwZ;case +46:return cw0;case +47:return cw1;case +48:return cw2;case +49:return cw3;case +50:return cw4;case +51:return cw5;case +52:return cw6;case +53:return cw7;case +54:return cw8;case +55:return cw9;case +56:return cw_;case +57:return cw$;case +58:return cxa;case +59:return cxb;case +60:return cxc;case +61:return cxd;case +62:return cxe;case +63:return cxf;case +64:return cxg;default:return cxh}switch(b){case +0:return cwg;case +1:return cwh;case +2:return cwi;case +3:return cwj;case +4:return cwk;case +5:return cwl;case +6:return cwm;case +7:return cwn;case +8:return cwo;case +9:return cwp;case +10:return cwq;case +11:return cwr;case +12:return cws;case +13:return cwt;case +14:return cwu;case +15:return cwv;case +16:return cww;case +17:return cwx;case +18:return cwy;case +19:return cwz;case +20:return cwA;case +21:return cwB;case +22:return cwC;case +23:return cwD;case +24:return cwE;case +25:return cwF;case +26:return cwG;case +27:return cwH;case +28:return cwI;case +29:return cwJ;case +30:return cwK;case +31:return cwL;default:return cwM}},Mn=function(a){return m(k(cyw),a)},_a=function(a,b){var +f=a?a[1]:0,e=0;if(typeof +b==="number")if(gt===b)var +d=cyz,c=cyA;else +e=1;else +switch(b[0]){case +3:var +d=cyH,c=cyI;break;case +5:var +d=cyL,c=cyM;break;case +0:case +12:var +d=cyB,c=cyC;break;case +1:case +13:var +d=cyD,c=cyE;break;case +4:case +8:var +d=cyJ,c=cyK;break;case +6:case +7:case +11:e=1;break;default:var +d=cyF,c=cyG}if(e)var +d=cyx,c=Mn(Z$(b));return f?P(d,P(cyy,c)):c},cyN=function(a){return y7>>0)var +b=v(a);else +switch(d){case +0:var +b=1;break;case +1:var +b=2;break;case +2:var +b=0;break;default:N(a,2);if(0===v1(u(a))){var +e=x2(u(a));if(0===e)var +b=0===g7(u(a))?0===g7(u(a))?0===g7(u(a))?0:v(a):v(a):v(a);else if(1===e&&0===g7(u(a)))for(;;){var +f=x1(u(a));if(0===f)continue;var +b=1===f?0:v(a);break}else +var +b=v(a)}else +var +b=v(a)}if(2>>0)throw B([0,aL,cyQ],1);switch(b){case +0:continue;case +1:return 1;default:if(Z7(awD(a)))continue;awE(a,1);return 0}}},MM=function(a,b){var +c=b-a[3][2]|0;return[0,aD$(a),c]},E0=function(a,b,c){var +d=MM(a,c),e=MM(a,b);return[0,a[1],e,d]},kX=function(a,b){return MM(a,b[6])},pw=function(a,b){return MM(a,b[3])},hC=function(a,b){return E0(a,b[6],b[3])},aEz=function(a,b){var +d=0;if(typeof +b==="number")d=1;else +switch(b[0]){case +2:var +c=b[1][1];break;case +3:return b[1][1];case +4:var +c=b[1];break;case +5:return b[1];case +8:var +c=b[2];break;case +9:return b[1];case +10:return b[1];default:d=1}return d?hC(a,a[2]):c},kY=function(a,b,c){return[0,a[1],a[2],a[3],a[4],a[5],[0,[0,b,c],a[6]],a[7]]},aEA=function(a,b,c){return kY(a,b,[24,Mn(c)])},_g=function(a,b,c,d){return kY(a,b,[25,c,d])},qE=function(a,b){return kY(a,b,cyS)},lW=function(a,b){var +c=b[3],d=[0,aD$(a)+1|0,c];return[0,a[1],a[2],d,a[4],a[5],a[6],a[7]]},rk=function(a,b,c,d,e){var +f=[0,a[1],b,c],g=h0(d),h=e?0:1;return[0,f,[0,h,g,a[7][3][1]>>0)var +e=v(c);else +switch(n){case +0:var +e=2;break;case +1:for(;;){N(c,3);var +h=u(c),x=-1>>0)return X(cyX);switch(e){case +0:var +q=aEC(d,w,c,2,0),r=q[1],f=kR(P(cyY,q[2])),i=0<=f?1:0,j=i?f<=55295?1:0:i;if(j)var +k=j;else +var +l=57344<=f?1:0,k=l?f<=Ri?1:0:l;var +y=k?aEB(d,r,f):kY(d,r,32);s$(g,f);var +d=y;continue;case +1:var +s=aEC(d,w,c,3,1),z=s[1],t=kR(P(cyZ,s[2])),A=aEB(d,z,t);s$(g,t);var +d=A;continue;case +2:return[0,d,h0(g)];default:J9(c,g);continue}}},jn=function(a,b,c){var +d=qE(a,hC(a,b));AO(b);return n(c,d,b)},x4=function(a,b,c){var +d=a;for(;;){gV(c);var +g=u(c),i=-1>>0)var +f=v(c);else +switch(i){case +0:for(;;){N(c,3);var +e=u(c),m=-1>>0){var +k=qE(d,hC(d,c));return[0,k,pw(k,c)]}switch(f){case +0:var +n=lW(d,c);J9(c,b);var +d=n;continue;case +1:var +l=d[4]?_g(d,hC(d,c),cy1,cy0):d;return[0,l,pw(l,c)];case +2:if(d[4])return[0,d,pw(d,c)];f6(b,cy2);continue;default:J9(c,b);continue}}},A5=function(a,b,c){for(;;){gV(c);var +f=u(c),g=13>>0)var +e=v(c);else +switch(g){case +0:var +e=0;break;case +1:for(;;){N(c,2);var +d=u(c),i=-1>>0)return X(cy3);switch(e){case +0:return[0,a,pw(a,c)];case +1:var +h=pw(a,c),j=h[2],k=h[1],l=lW(a,c);return[0,l,[0,k,j-J7(c)|0]];default:J9(c,b);continue}}},aEE=function(a,b){function +i(a){N(a,3);return 0===lV(u(a))?2:v(a)}gV(b);var +d=u(b),j=iJ>>0)var +c=v(b);else +switch(j){case +0:var +c=0;break;case +1:var +c=16;break;case +2:var +c=15;break;case +3:N(b,15);var +c=0===pv(u(b))?15:v(b);break;case +4:N(b,4);var +c=0===lV(u(b))?i(b):v(b);break;case +5:N(b,11);var +c=0===lV(u(b))?i(b):v(b);break;case +6:var +c=0;break;case +7:var +c=5;break;case +8:var +c=6;break;case +9:var +c=7;break;case +10:var +c=8;break;case +11:var +c=9;break;case +12:N(b,14);var +k=x2(u(b));if(0===k)var +c=0===g7(u(b))?0===g7(u(b))?0===g7(u(b))?12:v(b):v(b):v(b);else if(1===k&&0===g7(u(b)))for(;;){var +l=x1(u(b));if(0===l)continue;var +c=1===l?13:v(b);break}else +var +c=v(b);break;case +13:var +c=10;break;default:N(b,14);var +c=0===g7(u(b))?0===g7(u(b))?1:v(b):v(b)}if(16>>0)return X(cy4);switch(c){case +0:var +q=f3(b);return[0,a,q,ii(b),0];case +1:var +m=f3(b);return[0,a,m,[0,kR(P(cy5,m))],0];case +2:var +f=f3(b),e=kR(P(cy6,f));return la<=e?[0,a,f,[0,e>>>3|0,48+(e&7)|0],1]:[0,a,f,[0,e],1];case +3:var +n=f3(b);return[0,a,n,[0,kR(P(cy7,n))],1];case +4:return[0,a,cy8,[0,0],0];case +5:return[0,a,cy9,[0,8],0];case +6:return[0,a,cy_,[0,12],0];case +7:return[0,a,cy$,[0,10],0];case +8:return[0,a,cza,[0,13],0];case +9:return[0,a,czb,[0,9],0];case +10:return[0,a,czc,[0,11],0];case +11:var +o=f3(b);return[0,a,o,[0,kR(P(czd,o))],1];case +12:var +g=f3(b);return[0,a,g,[0,kR(P(cze,f1(g,1,Z(g)-1|0)))],0];case +13:var +h=f3(b),p=kR(P(czf,f1(h,2,Z(h)-3|0))),r=Ri>>0)var +h=v(f);else +switch(r){case +0:var +h=3;break;case +1:for(;;){N(f,4);var +j=u(f),y=-1>>0)return X(czg);switch(h){case +0:var +m=f3(f);f6(d,m);if(af(b,m))return[0,g,pw(g,f),i];f6(c,m);continue;case +1:f6(d,czh);var +k=aEE(g,f),z=k[4],A=k[3],B=k[2],C=k[1],D=z||i;f6(d,B);VF(function(a){return s$(c,a)},A);var +g=C,i=D;continue;case +2:var +s=f3(f);f6(d,s);var +t=lW(qE(g,hC(g,f)),f);f6(c,s);return[0,t,pw(t,f),i];case +3:var +w=f3(f);f6(d,w);var +x=qE(g,hC(g,f));f6(c,w);return[0,x,pw(x,f),i];default:var +n=f[6],o=f[3]-n|0,l=hV(o*4|0),p=EG(f[1],n,o,l);JE(d,l,0,p);JE(c,l,0,p);continue}}},aEG=function(a,b,c,d){var +e=a;for(;;){gV(d);var +i=u(d),j=96>>0)var +f=v(d);else +switch(j){case +0:var +f=0;break;case +1:for(;;){N(d,6);var +g=u(d),m=-1>>0)return X(czi);switch(f){case +0:return[0,qE(e,hC(e,d)),1];case +1:return[0,e,1];case +2:return[0,e,0];case +3:iM(c,92);var +h=aEE(e,d),o=h[3],p=h[1];f6(c,h[2]);VF(function(a){return s$(b,a)},o);var +e=p;continue;case +4:f6(c,czj);f6(b,czk);var +e=lW(e,d);continue;case +5:f6(c,f3(d));iM(b,10);var +e=lW(e,d);continue;default:var +l=f3(d);f6(c,l);f6(b,l);continue}}},czl=function(a,b){function +d(a){for(;;){N(a,33);if(0===gL(u(a)))continue;return v(a)}}function +i(a){N(a,32);var +b=jA(u(a));if(0!==b)return 1===b?d(a):v(a);for(;;){N(a,30);if(0===gL(u(a)))continue;return v(a)}}function +f(a){N(a,31);var +b=jA(u(a));if(0!==b)return 1===b?d(a):v(a);for(;;){N(a,29);if(0===gL(u(a)))continue;return v(a)}}function +h(a){N(a,34);var +b=A2(u(a));if(2>>0)return v(a);switch(b){case +0:return d(a);case +1:for(;;){N(a,34);var +c=td(u(a));if(3>>0)return v(a);switch(c){case +0:return d(a);case +1:continue;case +2:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,34);var +e=td(u(a));if(3>>0)return v(a);switch(e){case +0:return d(a);case +1:continue;case +2:continue b;default:return f(a)}}}default:return f(a)}}default:return f(a)}}function +I(a){a:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,34);var +b=aEp(u(a));if(4>>0)return v(a);switch(b){case +0:return d(a);case +1:return h(a);case +2:continue;case +3:continue a;default:return i(a)}}}}function +H(a){for(;;){N(a,23);if(0===gL(u(a)))continue;return v(a)}}function +G(a){for(;;){N(a,23);if(0===gL(u(a)))continue;return v(a)}}function +F(a){for(;;){N(a,15);if(0===gL(u(a)))continue;return v(a)}}function +E(a){for(;;){N(a,15);if(0===gL(u(a)))continue;return v(a)}}function +D(a){for(;;){N(a,11);if(0===gL(u(a)))continue;return v(a)}}function +C(a){for(;;){N(a,11);if(0===gL(u(a)))continue;return v(a)}}function +B(a){for(;;){N(a,17);if(0===gL(u(a)))continue;return v(a)}}function +A(a){for(;;){N(a,17);if(0===gL(u(a)))continue;return v(a)}}function +z(a){for(;;){N(a,19);if(0===gL(u(a)))continue;return v(a)}}function +k(a){for(;;){N(a,27);if(0===gL(u(a)))continue;return v(a)}}function +w(a){N(a,26);var +b=jA(u(a));if(0!==b)return 1===b?k(a):v(a);for(;;){N(a,25);if(0===gL(u(a)))continue;return v(a)}}function +g(a){for(;;){N(a,27);if(0===gL(u(a)))continue;return v(a)}}function +j(a){N(a,26);var +b=jA(u(a));if(0!==b)return 1===b?g(a):v(a);for(;;){N(a,25);if(0===gL(u(a)))continue;return v(a)}}function +t(a){a:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,28);var +b=td(u(a));if(3>>0)return v(a);switch(b){case +0:return g(a);case +1:continue;case +2:continue a;default:return j(a)}}}}function +e(a){N(a,33);var +b=aEr(u(a));if(3>>0)return v(a);switch(b){case +0:return d(a);case +1:var +c=vX(u(a));if(0===c)for(;;){N(a,28);var +e=A2(u(a));if(2>>0)return v(a);switch(e){case +0:return g(a);case +1:continue;default:return j(a)}}if(1!==c)return v(a);for(;;){N(a,28);var +f=td(u(a));if(3>>0)return v(a);switch(f){case +0:return g(a);case +1:continue;case +2:return t(a);default:return j(a)}}case +2:for(;;){N(a,28);var +h=A2(u(a));if(2>>0)return v(a);switch(h){case +0:return k(a);case +1:continue;default:return w(a)}}default:for(;;){N(a,28);var +i=td(u(a));if(3>>0)return v(a);switch(i){case +0:return k(a);case +1:continue;case +2:return t(a);default:return w(a)}}}}function +l(a){N(a,34);var +b=aEh(u(a));if(3>>0)return v(a);switch(b){case +0:return d(a);case +1:for(;;){N(a,34);var +c=vY(u(a));if(4>>0)return v(a);switch(c){case +0:return d(a);case +1:continue;case +2:return e(a);case +3:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,34);var +g=vY(u(a));if(4>>0)return v(a);switch(g){case +0:return d(a);case +1:continue;case +2:return e(a);case +3:continue b;default:return f(a)}}}default:return f(a)}}case +2:return e(a);default:return f(a)}}function +y(a){return 0===MF(u(a))?0===MB(u(a))?0===aEt(u(a))?0===aEj(u(a))?0===aEk(u(a))?0===MA(u(a))?0===EY(u(a))?0===MF(u(a))?0===v1(u(a))?0===_f(u(a))?0===x3(u(a))?3:v(a):v(a):v(a):v(a):v(a):v(a):v(a):v(a):v(a):v(a):v(a)}function +x(a){N(a,3);return 0===aEw(u(a))?3:v(a)}function +ar(a){var +o=cyN(u(a));if(36>>0)return v(a);switch(o){case +0:return 98;case +1:return 99;case +2:N(a,1);if(0!==tb(u(a)))return v(a);for(;;){N(a,1);if(0===tb(u(a)))continue;return v(a)}case +3:return 0;case +4:N(a,0);return 0===pv(u(a))?0:v(a);case +5:N(a,88);return 0===r7(u(a))?(N(a,58),0===r7(u(a))?54:v(a)):v(a);case +6:return 7;case +7:N(a,95);var +p=u(a),ax=32>>0)return v(a);switch(r){case +0:N(a,83);return 0===r7(u(a))?70:v(a);case +1:return 4;default:return 69}case +14:N(a,80);var +c=u(a),s=42>>0)return v(a);switch(J){case +0:return d(a);case +1:continue;case +2:return e(a);case +3:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,34);var +K=vY(u(a));if(4>>0)return v(a);switch(K){case +0:return d(a);case +1:continue;case +2:return e(a);case +3:continue b;default:return f(a)}}}default:return f(a)}}case +18:N(a,93);var +L=aEi(u(a));if(2>>0)return v(a);switch(L){case +0:N(a,2);var +M=Mu(u(a));if(2>>0)return v(a);switch(M){case +0:for(;;){var +O=Mu(u(a));if(2>>0)return v(a);switch(O){case +0:continue;case +1:return x(a);default:return y(a)}}case +1:return x(a);default:return y(a)}case +1:return 5;default:return 92}case +19:N(a,34);var +P=aEm(u(a));if(8

    >>0)return v(a);switch(P){case +0:return d(a);case +1:return l(a);case +2:for(;;){N(a,20);var +Q=aEs(u(a));if(4>>0)return v(a);switch(Q){case +0:return z(a);case +1:return h(a);case +2:continue;case +3:for(;;){N(a,18);var +R=Mt(u(a));if(3>>0)return v(a);switch(R){case +0:return A(a);case +1:return h(a);case +2:continue;default:N(a,17);var +S=jA(u(a));if(0!==S)return 1===S?A(a):v(a);for(;;){N(a,17);if(0===gL(u(a)))continue;return v(a)}}}default:N(a,19);var +T=jA(u(a));if(0!==T)return 1===T?z(a):v(a);for(;;){N(a,19);if(0===gL(u(a)))continue;return v(a)}}}case +3:for(;;){N(a,18);var +U=Mt(u(a));if(3>>0)return v(a);switch(U){case +0:return B(a);case +1:return h(a);case +2:continue;default:N(a,17);var +V=jA(u(a));if(0!==V)return 1===V?B(a):v(a);for(;;){N(a,17);if(0===gL(u(a)))continue;return v(a)}}}case +4:N(a,33);var +W=aEl(u(a));if(0===W)return d(a);if(1!==W)return v(a);for(;;){N(a,12);var +X=MJ(u(a));if(3>>0)return v(a);switch(X){case +0:return C(a);case +1:continue;case +2:b:for(;;){if(0!==tc(u(a)))return v(a);for(;;){N(a,12);var +Y=MJ(u(a));if(3>>0)return v(a);switch(Y){case +0:return D(a);case +1:continue;case +2:continue b;default:N(a,10);var +Z=jA(u(a));if(0!==Z)return 1===Z?D(a):v(a);for(;;){N(a,9);if(0===gL(u(a)))continue;return v(a)}}}}default:N(a,10);var +_=jA(u(a));if(0!==_)return 1===_?C(a):v(a);for(;;){N(a,9);if(0===gL(u(a)))continue;return v(a)}}}case +5:return e(a);case +6:N(a,33);var +$=aEn(u(a));if(0===$)return d(a);if(1!==$)return v(a);for(;;){N(a,16);var +aa=MH(u(a));if(3>>0)return v(a);switch(aa){case +0:return E(a);case +1:continue;case +2:b:for(;;){if(0!==lV(u(a)))return v(a);for(;;){N(a,16);var +ab=MH(u(a));if(3>>0)return v(a);switch(ab){case +0:return F(a);case +1:continue;case +2:continue b;default:N(a,14);var +ac=jA(u(a));if(0!==ac)return 1===ac?F(a):v(a);for(;;){N(a,13);if(0===gL(u(a)))continue;return v(a)}}}}default:N(a,14);var +ad=jA(u(a));if(0!==ad)return 1===ad?E(a):v(a);for(;;){N(a,13);if(0===gL(u(a)))continue;return v(a)}}}case +7:N(a,33);var +ae=aEe(u(a));if(0===ae)return d(a);if(1!==ae)return v(a);for(;;){N(a,24);var +af=MK(u(a));if(3>>0)return v(a);switch(af){case +0:return G(a);case +1:continue;case +2:b:for(;;){if(0!==g7(u(a)))return v(a);for(;;){N(a,24);var +ag=MK(u(a));if(3>>0)return v(a);switch(ag){case +0:return H(a);case +1:continue;case +2:continue b;default:N(a,22);var +ah=jA(u(a));if(0!==ah)return 1===ah?H(a):v(a);for(;;){N(a,21);if(0===gL(u(a)))continue;return v(a)}}}}default:N(a,22);var +ai=jA(u(a));if(0!==ai)return 1===ai?G(a):v(a);for(;;){N(a,21);if(0===gL(u(a)))continue;return v(a)}}}default:return i(a)}case +20:N(a,34);var +aj=Mw(u(a));if(5>>0)return v(a);switch(aj){case +0:return d(a);case +1:return l(a);case +2:for(;;){N(a,34);var +ak=Mw(u(a));if(5>>0)return v(a);switch(ak){case +0:return d(a);case +1:return l(a);case +2:continue;case +3:return e(a);case +4:return I(a);default:return i(a)}}case +3:return e(a);case +4:return I(a);default:return i(a)}case +21:return 46;case +22:return 44;case +23:N(a,78);var +j=u(a),al=59>>0)return X(czm);var +s=J;if(50>s)switch(s){case +0:return[2,lW(a,b)];case +1:return[2,a];case +2:var +as=kX(a,b),K=g4(gx),L=x4(a,K,b),M=L[1];return[1,M,rk(M,as,L[2],K,1)];case +3:var +m=f3(b);if(!a[5]){var +au=kX(a,b),n=g4(gx);f6(n,f1(m,2,Z(m)-2|0));var +Q=x4(a,n,b),R=Q[1];return[1,R,rk(R,au,Q[2],n,1)]}var +at=a[4]?aEA(a,hC(a,b),m):a,O=Mm(1,at),P=J7(b);if(af(EH(b,P-1|0,1),i2)&&q(EH(b,P-2|0,1),i2))return[0,O,86];return[2,O];case +4:if(a[4])return[2,Mm(0,a)];AO(b);gV(b);var +av=0===aEg(u(b))?0:v(b);return 0===av?[0,a,hq]:X(czn);case +5:var +aw=kX(a,b),S=g4(gx),T=A5(a,S,b),U=T[1];return[1,U,rk(U,aw,T[2],S,0)];case +6:if(0!==b[6])return[0,a,czo];var +ax=kX(a,b),V=g4(gx),W=A5(a,V,b),Y=W[1],ay=[0,Y[1],ax,W[2]];return[0,Y,[6,ay,h0(V)]];case +7:var +_=f3(b),az=kX(a,b),$=g4(gx),o=g4(gx);f6(o,_);var +p=aEF(a,_,$,o,0,b),aa=p[1],aA=p[3],aC=[0,aa[1],az,p[2]],aG=h0(o);return[0,aa,[2,[0,aC,h0($),aG,aA]]];case +8:var +ab=g4(gx),ac=g4(gx),aI=kX(a,b),ad=aEG(a,ab,ac,b),r=ad[1],aJ=ad[2],aL=pw(r,b),aR=[0,r[1],aI,aL],aS=h0(ac);return[0,r,[3,[0,aR,h0(ab),aS,1,aJ]]];case +9:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===My(u(b))&&0===tc(u(b)))for(;;){var +e=Mr(u(b));if(2>>0)var +c=v(b);else +switch(e){case +0:continue;case +1:b:for(;;){if(0===tc(u(b)))for(;;){var +f=Mr(u(b));if(2>>0)var +d=v(b);else +switch(f){case +0:continue;case +1:continue b;default:var +d=0}break}else +var +d=v(b);var +c=d;break}break;default:var +c=0}break}else +var +c=v(b);return 0===c?[0,a,[1,0,f3(b)]]:X(czp)});case +10:return[0,a,[1,0,f3(b)]];case +11:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===My(u(b))&&0===tc(u(b)))for(;;){N(b,0);var +d=Mq(u(b));if(0===d)continue;if(1===d)b:for(;;){if(0===tc(u(b)))for(;;){N(b,0);var +f=Mq(u(b));if(0===f)continue;if(1===f)continue b;var +e=v(b);break}else +var +e=v(b);var +c=e;break}else +var +c=v(b);break}else +var +c=v(b);return 0===c?[0,a,[0,0,f3(b)]]:X(czq)});case +12:return[0,a,[0,0,f3(b)]];case +13:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===MD(u(b))&&0===lV(u(b)))for(;;){var +e=Mx(u(b));if(2>>0)var +c=v(b);else +switch(e){case +0:continue;case +1:b:for(;;){if(0===lV(u(b)))for(;;){var +f=Mx(u(b));if(2>>0)var +d=v(b);else +switch(f){case +0:continue;case +1:continue b;default:var +d=0}break}else +var +d=v(b);var +c=d;break}break;default:var +c=0}break}else +var +c=v(b);return 0===c?[0,a,[1,1,f3(b)]]:X(czr)});case +14:return[0,a,[1,1,f3(b)]];case +15:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===MD(u(b))&&0===lV(u(b)))for(;;){N(b,0);var +d=Mv(u(b));if(0===d)continue;if(1===d)b:for(;;){if(0===lV(u(b)))for(;;){N(b,0);var +f=Mv(u(b));if(0===f)continue;if(1===f)continue b;var +e=v(b);break}else +var +e=v(b);var +c=e;break}else +var +c=v(b);break}else +var +c=v(b);return 0===c?[0,a,[0,3,f3(b)]]:X(czs)});case +16:return[0,a,[0,3,f3(b)]];case +17:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b)))for(;;){var +c=u(b),e=47>>0)var +c=v(b);else +switch(e){case +0:continue;case +1:b:for(;;){if(0===g7(u(b)))for(;;){var +f=Ms(u(b));if(2>>0)var +d=v(b);else +switch(f){case +0:continue;case +1:continue b;default:var +d=0}break}else +var +d=v(b);var +c=d;break}break;default:var +c=0}break}else +var +c=v(b);return 0===c?[0,a,[1,2,f3(b)]]:X(czv)});case +22:return[0,a,[1,2,f3(b)]];case +23:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===Mo(u(b))&&0===g7(u(b)))for(;;){N(b,0);var +d=MG(u(b));if(0===d)continue;if(1===d)b:for(;;){if(0===g7(u(b)))for(;;){N(b,0);var +f=MG(u(b));if(0===f)continue;if(1===f)continue b;var +e=v(b);break}else +var +e=v(b);var +c=e;break}else +var +c=v(b);break}else +var +c=v(b);return 0===c?[0,a,[0,4,f3(b)]]:X(czw)});case +24:return[0,a,[0,4,f3(b)]];case +25:return jn(a,b,function(a,b){function +g(a){for(;;){var +b=ri(u(a));if(2>>0)return v(a);switch(b){case +0:continue;case +1:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){var +c=ri(u(a));if(2>>0)return v(a);switch(c){case +0:continue;case +1:continue b;default:return 0}}}default:return 0}}}function +f(a){for(;;){var +b=A3(u(a));if(0===b)continue;return 1===b?0:v(a)}}function +d(a){var +b=ML(u(a));if(2>>0)return v(a);switch(b){case +0:var +c=vX(u(a));return 0===c?f(a):1===c?g(a):v(a);case +1:return f(a);default:return g(a)}}function +h(a){var +b=ME(u(a));if(0!==b)return 1===b?d(a):v(a);for(;;){var +c=mr(u(a));if(2>>0)return v(a);switch(c){case +0:continue;case +1:return d(a);default:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){var +e=mr(u(a));if(2>>0)return v(a);switch(e){case +0:continue;case +1:return d(a);default:continue b}}}}}}gV(b);var +i=vW(u(b));if(2>>0)var +c=v(b);else +switch(i){case +0:if(0===gX(u(b)))for(;;){var +j=mr(u(b));if(2>>0)var +c=v(b);else +switch(j){case +0:continue;case +1:var +c=d(b);break;default:b:for(;;){if(0===gX(u(b)))for(;;){var +k=mr(u(b));if(2>>0)var +e=v(b);else +switch(k){case +0:continue;case +1:var +e=d(b);break;default:continue b}break}else +var +e=v(b);var +c=e;break}}break}else +var +c=v(b);break;case +1:var +l=Mp(u(b)),c=0===l?h(b):1===l?d(b):v(b);break;default:for(;;){var +m=MC(u(b));if(2>>0)var +c=v(b);else +switch(m){case +0:var +c=h(b);break;case +1:continue;default:var +c=d(b)}break}}if(0!==c)return X(czx);var +n=kY(a,hC(a,b),48);return[0,n,[1,2,f3(b)]]});case +26:var +aT=kY(a,hC(a,b),48);return[0,aT,[1,2,f3(b)]];case +27:return jn(a,b,function(a,b){function +g(a){for(;;){N(a,0);var +b=vZ(u(a));if(0===b)continue;if(1!==b)return v(a);b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,0);var +c=vZ(u(a));if(0===c)continue;if(1===c)continue b;return v(a)}}}}function +f(a){for(;;){N(a,0);if(0===gX(u(a)))continue;return v(a)}}function +d(a){var +b=ML(u(a));if(2>>0)return v(a);switch(b){case +0:var +c=vX(u(a));return 0===c?f(a):1===c?g(a):v(a);case +1:return f(a);default:return g(a)}}function +h(a){var +b=ME(u(a));if(0!==b)return 1===b?d(a):v(a);for(;;){var +c=mr(u(a));if(2>>0)return v(a);switch(c){case +0:continue;case +1:return d(a);default:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){var +e=mr(u(a));if(2>>0)return v(a);switch(e){case +0:continue;case +1:return d(a);default:continue b}}}}}}gV(b);var +i=vW(u(b));if(2>>0)var +c=v(b);else +switch(i){case +0:if(0===gX(u(b)))for(;;){var +j=mr(u(b));if(2>>0)var +c=v(b);else +switch(j){case +0:continue;case +1:var +c=d(b);break;default:b:for(;;){if(0===gX(u(b)))for(;;){var +k=mr(u(b));if(2>>0)var +e=v(b);else +switch(k){case +0:continue;case +1:var +e=d(b);break;default:continue b}break}else +var +e=v(b);var +c=e;break}}break}else +var +c=v(b);break;case +1:var +l=Mp(u(b)),c=0===l?h(b):1===l?d(b):v(b);break;default:for(;;){var +m=MC(u(b));if(2>>0)var +c=v(b);else +switch(m){case +0:var +c=h(b);break;case +1:continue;default:var +c=d(b)}break}}return 0===c?[0,a,[0,4,f3(b)]]:X(czy)});case +28:return[0,a,[0,4,f3(b)]];case +29:return jn(a,b,function(a,b){function +f(a){for(;;){var +b=ri(u(a));if(2>>0)return v(a);switch(b){case +0:continue;case +1:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){var +c=ri(u(a));if(2>>0)return v(a);switch(c){case +0:continue;case +1:continue b;default:return 0}}}default:return 0}}}function +d(a){var +b=A3(u(a));return 0===b?f(a):1===b?0:v(a)}gV(b);var +g=vW(u(b));if(2>>0)var +c=v(b);else +switch(g){case +0:var +c=0===gX(u(b))?f(b):v(b);break;case +1:for(;;){var +h=A4(u(b));if(0===h)var +c=d(b);else{if(1===h)continue;var +c=v(b)}break}break;default:for(;;){var +i=v0(u(b));if(2>>0)var +c=v(b);else +switch(i){case +0:var +c=d(b);break;case +1:continue;default:b:for(;;){if(0===gX(u(b)))for(;;){var +j=v0(u(b));if(2>>0)var +e=v(b);else +switch(j){case +0:var +e=d(b);break;case +1:continue;default:continue b}break}else +var +e=v(b);var +c=e;break}}break}}if(0!==c)return X(czz);var +k=kY(a,hC(a,b),39);return[0,k,[1,2,f3(b)]]});case +30:return jn(a,b,function(a,b){gV(b);var +e=vX(u(b));if(0===e)for(;;){var +f=A3(u(b));if(0===f)continue;var +c=1===f?0:v(b);break}else if(1===e)for(;;){var +g=ri(u(b));if(2>>0)var +c=v(b);else +switch(g){case +0:continue;case +1:b:for(;;){if(0===gX(u(b)))for(;;){var +h=ri(u(b));if(2>>0)var +d=v(b);else +switch(h){case +0:continue;case +1:continue b;default:var +d=0}break}else +var +d=v(b);var +c=d;break}break;default:var +c=0}break}else +var +c=v(b);return 0===c?[0,a,[1,2,f3(b)]]:X(czA)});case +31:var +aU=kY(a,hC(a,b),39);return[0,aU,[1,2,f3(b)]];case +32:return[0,a,[1,2,f3(b)]];case +33:return jn(a,b,function(a,b){function +f(a){for(;;){N(a,0);var +b=vZ(u(a));if(0===b)continue;if(1!==b)return v(a);b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,0);var +c=vZ(u(a));if(0===c)continue;if(1===c)continue b;return v(a)}}}}function +d(a){N(a,0);return 0===gX(u(a))?f(a):v(a)}gV(b);var +g=vW(u(b));if(2>>0)var +c=v(b);else +switch(g){case +0:var +c=0===gX(u(b))?f(b):v(b);break;case +1:for(;;){N(b,0);var +h=A4(u(b));if(0===h)var +c=d(b);else{if(1===h)continue;var +c=v(b)}break}break;default:for(;;){N(b,0);var +i=v0(u(b));if(2>>0)var +c=v(b);else +switch(i){case +0:var +c=d(b);break;case +1:continue;default:b:for(;;){if(0===gX(u(b)))for(;;){N(b,0);var +j=v0(u(b));if(2>>0)var +e=v(b);else +switch(j){case +0:var +e=d(b);break;case +1:continue;default:continue b}break}else +var +e=v(b);var +c=e;break}}break}}return 0===c?[0,a,[0,4,f3(b)]]:X(czB)});case +34:return[0,a,[0,4,f3(b)]];case +35:var +aV=hC(a,b),ae=f3(b);return[0,a,[4,aV,ae,ae]];case +36:return[0,a,0];case +37:return[0,a,1];case +38:return[0,a,4];case +39:return[0,a,5];case +40:return[0,a,6];case +41:return[0,a,7];case +42:return[0,a,12];case +43:return[0,a,10];case +44:return[0,a,8];case +45:return[0,a,9];case +46:return[0,a,86];case +47:AO(b);gV(b);var +ag=u(b),aW=62=ai)return[0,a,18];var +aj=aQ(c,jc);if(0<=aj){if(0>=aj)return[0,a,51];var +ak=aQ(c,pM);if(0<=ak){if(0>=ak)return[0,a,46];if(!q(c,zi))return[0,a,24];if(!q(c,q1))return[0,a,47];if(!q(c,IJ))return[0,a,25];if(!q(c,CR))return[0,a,26];if(!q(c,aH))return[0,a,58]}else{if(!q(c,aK))return[0,a,20];if(!q(c,f0))return[0,a,21];if(!q(c,aM))return[0,a,22];if(!q(c,q_))return[0,a,31];if(!q(c,Hm))return[0,a,23];if(!q(c,lD))return[0,a,61]}}else{var +an=aQ(c,UJ);if(0<=an){if(0>=an)return[0,a,54];if(!q(c,HM))return[0,a,55];if(!q(c,Ja))return[0,a,56];if(!q(c,Iu))return[0,a,57];if(!q(c,aD))return[0,a,19];if(!q(c,ko))return[0,a,42]}else{if(!q(c,aE))return[0,a,53];if(!q(c,z_))return[0,a,28];if(!q(c,vo))return[0,a,44];if(!q(c,nK))return[0,a,29];if(!q(c,Q3))return[0,a,63];if(!q(c,To))return[0,a,62]}}}else{var +ao=aQ(c,QC);if(0<=ao){if(0>=ao)return[0,a,37];var +ap=aQ(c,I9);if(0<=ap){if(0>=ap)return[0,a,39];if(!q(c,pj))return[0,a,15];if(!q(c,H7))return[0,a,16];if(!q(c,sy))return[0,a,52];if(!q(c,aB))return[0,a,50];if(!q(c,qV))return[0,a,17]}else{if(!q(c,RY))return[0,a,43];if(!q(c,sQ))return[0,a,48];if(!q(c,HU))return[0,a,49];if(!q(c,jZ))return[0,a,41];if(!q(c,qg))return[0,a,30];if(!q(c,DH))return[0,a,38]}}else{var +aq=aQ(c,Dh);if(0<=aq){if(0>=aq)return[0,a,27];if(!q(c,aO))return[0,a,35];if(!q(c,aP))return[0,a,59];if(!q(c,CM))return[0,a,60];if(!q(c,gF))return[0,a,36];if(!q(c,DE))return[0,a,45]}else{if(!q(c,q3))return[0,a,64];if(!q(c,tF))return[0,a,65];if(!q(c,aN))return[0,a,32];if(!q(c,DG))return[0,a,33];if(!q(c,z5))return[0,a,34];if(!q(c,sN))return[0,a,40]}}}var +al=ii(b),am=aED(a,al),aZ=am[2],a0=am[1];return[0,a0,[4,aY,aZ,EI(al)]];case +98:var +a1=a[4]?kY(a,hC(a,b),96):a;return[0,a1,gt];default:var +a2=qE(a,hC(a,b));return[0,a2,[7,f3(b)]]}},czF=function(a,b,c){var +d=a;a:for(;;){gV(c);var +k=u(c),p=92>>0)var +e=v(c);else +switch(p){case +0:var +e=0;break;case +1:for(;;){N(c,7);var +h=u(c),t=-1>>0)var +e=v(c);else +switch(q){case +0:var +e=2;break;case +1:var +e=1;break;default:N(c,1);var +e=0===pv(u(c))?1:v(c)}}if(7>>0)return X(czG);switch(e){case +0:return[0,kY(d,hC(d,c),iR),czH];case +1:return[0,lW(kY(d,hC(d,c),iR),c),czI];case +2:f6(b,f3(c));continue;case +3:var +r=f3(c);return[0,d,f1(r,1,Z(r)-1|0)];case +4:return[0,d,czJ];case +5:iM(b,91);for(;;){gV(c);var +j=u(c),n=93>>0)var +f=v(c);else +switch(n){case +0:var +f=0;break;case +1:for(;;){N(c,5);var +g=u(c),s=-1>>0)var +l=X(czD);else +switch(f){case +0:var +l=d;break;case +1:f6(b,czE);continue;case +2:iM(b,92);iM(b,93);continue;case +3:iM(b,93);var +l=d;break;case +4:var +l=lW(kY(d,hC(d,c),iR),c);break;default:f6(b,f3(c));continue}var +d=l;continue a}case +6:return[0,lW(kY(d,hC(d,c),iR),c),czK];default:f6(b,f3(c));continue}}},czL=function(a,b){gV(b);var +c=u(b),f=y7>>0)var +d=v(b);else +switch(f){case +0:var +d=0;break;case +1:var +d=6;break;case +2:N(b,2);if(0===tb(u(b)))for(;;){N(b,2);if(0===tb(u(b)))continue;var +d=v(b);break}else +var +d=v(b);break;case +3:var +d=1;break;case +4:N(b,1);var +d=0===pv(u(b))?1:v(b);break;default:N(b,5);var +g=MI(u(b)),d=0===g?4:1===g?3:v(b)}if(6>>0)return X(czM);switch(d){case +0:return[0,a,gt];case +1:return[2,lW(a,b)];case +2:return[2,a];case +3:var +p=kX(a,b),h=g4(gx),i=A5(a,h,b),j=i[1];return[1,j,rk(j,p,i[2],h,0)];case +4:var +q=kX(a,b),k=g4(gx),l=x4(a,k,b),m=l[1];return[1,m,rk(m,q,l[2],k,1)];case +5:var +r=kX(a,b),n=g4(gx),o=czF(a,n,b),e=o[1],s=o[2],t=pw(e,b),w=[0,e[1],r,t];return[0,e,[5,w,h0(n),s]];default:var +x=qE(a,hC(a,b));return[0,x,[7,f3(b)]]}},aEH=function(a){var +b=aQ(a,"iexcl");if(0<=b){if(0>=b)return cBL;var +c=aQ(a,"prime");if(0<=c){if(0>=c)return cAL;var +d=aQ(a,"sup1");if(0<=d){if(0>=d)return cAf;var +e=aQ(a,"uarr");if(0<=e){if(0>=e)return cz1;var +f=aQ(a,"xi");if(0<=f){if(0>=f)return czT;if(!q(a,"yacute"))return czS;if(!q(a,"yen"))return czR;if(!q(a,"yuml"))return czQ;if(!q(a,"zeta"))return czP;if(!q(a,"zwj"))return czO;if(!q(a,"zwnj"))return czN}else{if(!q(a,"ucirc"))return cz0;if(!q(a,"ugrave"))return czZ;if(!q(a,"uml"))return czY;if(!q(a,"upsih"))return czX;if(!q(a,"upsilon"))return czW;if(!q(a,"uuml"))return czV;if(!q(a,"weierp"))return czU}}else{var +g=aQ(a,"thetasym");if(0<=g){if(0>=g)return cz9;if(!q(a,"thinsp"))return cz8;if(!q(a,"thorn"))return cz7;if(!q(a,"tilde"))return cz6;if(!q(a,"times"))return cz5;if(!q(a,"trade"))return cz4;if(!q(a,"uArr"))return cz3;if(!q(a,"uacute"))return cz2}else{if(!q(a,"sup2"))return cAe;if(!q(a,"sup3"))return cAd;if(!q(a,"supe"))return cAc;if(!q(a,"szlig"))return cAb;if(!q(a,"tau"))return cAa;if(!q(a,"there4"))return cz$;if(!q(a,"theta"))return cz_}}}else{var +h=aQ(a,"rlm");if(0<=h){if(0>=h)return cAv;var +i=aQ(a,"sigma");if(0<=i){if(0>=i)return cAn;if(!q(a,"sigmaf"))return cAm;if(!q(a,"sim"))return cAl;if(!q(a,"spades"))return cAk;if(!q(a,"sub"))return cAj;if(!q(a,"sube"))return cAi;if(!q(a,"sum"))return cAh;if(!q(a,"sup"))return cAg}else{if(!q(a,"rsaquo"))return cAu;if(!q(a,"rsquo"))return cAt;if(!q(a,"sbquo"))return cAs;if(!q(a,"scaron"))return cAr;if(!q(a,"sdot"))return cAq;if(!q(a,"sect"))return cAp;if(!q(a,"shy"))return cAo}}else{var +j=aQ(a,"raquo");if(0<=j){if(0>=j)return cAD;if(!q(a,"rarr"))return cAC;if(!q(a,"rceil"))return cAB;if(!q(a,"rdquo"))return cAA;if(!q(a,"real"))return cAz;if(!q(a,"reg"))return cAy;if(!q(a,"rfloor"))return cAx;if(!q(a,"rho"))return cAw}else{if(!q(a,"prod"))return cAK;if(!q(a,iw))return cAJ;if(!q(a,"psi"))return cAI;if(!q(a,"quot"))return cAH;if(!q(a,"rArr"))return cAG;if(!q(a,"radic"))return cAF;if(!q(a,"rang"))return cAE}}}}else{var +k=aQ(a,"ndash");if(0<=k){if(0>=k)return cBf;var +l=aQ(a,aSO);if(0<=l){if(0>=l)return cA1;var +m=aQ(a,"part");if(0<=m){if(0>=m)return cAT;if(!q(a,"permil"))return cAS;if(!q(a,"perp"))return cAR;if(!q(a,"phi"))return cAQ;if(!q(a,"pi"))return cAP;if(!q(a,"piv"))return cAO;if(!q(a,"plusmn"))return cAN;if(!q(a,"pound"))return cAM}else{if(!q(a,"ordf"))return cA0;if(!q(a,"ordm"))return cAZ;if(!q(a,"oslash"))return cAY;if(!q(a,"otilde"))return cAX;if(!q(a,"otimes"))return cAW;if(!q(a,"ouml"))return cAV;if(!q(a,"para"))return cAU}}else{var +n=aQ(a,"oacute");if(0<=n){if(0>=n)return cA9;if(!q(a,"ocirc"))return cA8;if(!q(a,"oelig"))return cA7;if(!q(a,"ograve"))return cA6;if(!q(a,"oline"))return cA5;if(!q(a,"omega"))return cA4;if(!q(a,"omicron"))return cA3;if(!q(a,"oplus"))return cA2}else{if(!q(a,"ne"))return cBe;if(!q(a,"ni"))return cBd;if(!q(a,anu))return cBc;if(!q(a,"notin"))return cBb;if(!q(a,"nsub"))return cBa;if(!q(a,"ntilde"))return cA$;if(!q(a,"nu"))return cA_}}}else{var +o=aQ(a,"le");if(0<=o){if(0>=o)return cBv;var +p=aQ(a,"macr");if(0<=p){if(0>=p)return cBn;if(!q(a,"mdash"))return cBm;if(!q(a,"micro"))return cBl;if(!q(a,"middot"))return cBk;if(!q(a,aZN))return cBj;if(!q(a,"mu"))return cBi;if(!q(a,"nabla"))return cBh;if(!q(a,"nbsp"))return cBg}else{if(!q(a,"lfloor"))return cBu;if(!q(a,"lowast"))return cBt;if(!q(a,"loz"))return cBs;if(!q(a,"lrm"))return cBr;if(!q(a,"lsaquo"))return cBq;if(!q(a,"lsquo"))return cBp;if(!q(a,"lt"))return cBo}}else{var +r=aQ(a,"kappa");if(0<=r){if(0>=r)return cBD;if(!q(a,"lArr"))return cBC;if(!q(a,nv))return cBB;if(!q(a,"lang"))return cBA;if(!q(a,"laquo"))return cBz;if(!q(a,"larr"))return cBy;if(!q(a,"lceil"))return cBx;if(!q(a,"ldquo"))return cBw}else{if(!q(a,"igrave"))return cBK;if(!q(a,"image"))return cBJ;if(!q(a,"infin"))return cBI;if(!q(a,"iota"))return cBH;if(!q(a,"iquest"))return cBG;if(!q(a,"isin"))return cBF;if(!q(a,"iuml"))return cBE}}}}}else{var +s=aQ(a,"aelig");if(0<=s){if(0>=s)return cCK;var +t=aQ(a,"delta");if(0<=t){if(0>=t)return cCe;var +u=aQ(a,"fnof");if(0<=u){if(0>=u)return cB0;var +v=aQ(a,"gt");if(0<=v){if(0>=v)return cBS;if(!q(a,"hArr"))return cBR;if(!q(a,"harr"))return cBQ;if(!q(a,"hearts"))return cBP;if(!q(a,"hellip"))return cBO;if(!q(a,"iacute"))return cBN;if(!q(a,"icirc"))return cBM}else{if(!q(a,"forall"))return cBZ;if(!q(a,"frac12"))return cBY;if(!q(a,"frac14"))return cBX;if(!q(a,"frac34"))return cBW;if(!q(a,"frasl"))return cBV;if(!q(a,"gamma"))return cBU;if(!q(a,"ge"))return cBT}}else{var +w=aQ(a,"ensp");if(0<=w){if(0>=w)return cB8;if(!q(a,"epsilon"))return cB7;if(!q(a,"equiv"))return cB6;if(!q(a,"eta"))return cB5;if(!q(a,"eth"))return cB4;if(!q(a,"euml"))return cB3;if(!q(a,"euro"))return cB2;if(!q(a,"exist"))return cB1}else{if(!q(a,"diams"))return cCd;if(!q(a,"divide"))return cCc;if(!q(a,"eacute"))return cCb;if(!q(a,"ecirc"))return cCa;if(!q(a,"egrave"))return cB$;if(!q(a,aI))return cB_;if(!q(a,"emsp"))return cB9}}}else{var +x=aQ(a,"cap");if(0<=x){if(0>=x)return cCu;var +y=aQ(a,"copy");if(0<=y){if(0>=y)return cCm;if(!q(a,"crarr"))return cCl;if(!q(a,"cup"))return cCk;if(!q(a,"curren"))return cCj;if(!q(a,"dArr"))return cCi;if(!q(a,"dagger"))return cCh;if(!q(a,"darr"))return cCg;if(!q(a,"deg"))return cCf}else{if(!q(a,"ccedil"))return cCt;if(!q(a,"cedil"))return cCs;if(!q(a,"cent"))return cCr;if(!q(a,"chi"))return cCq;if(!q(a,"circ"))return cCp;if(!q(a,"clubs"))return cCo;if(!q(a,"cong"))return cCn}}else{var +z=aQ(a,"aring");if(0<=z){if(0>=z)return cCC;if(!q(a,"asymp"))return cCB;if(!q(a,"atilde"))return cCA;if(!q(a,"auml"))return cCz;if(!q(a,"bdquo"))return cCy;if(!q(a,"beta"))return cCx;if(!q(a,"brvbar"))return cCw;if(!q(a,"bull"))return cCv}else{if(!q(a,"agrave"))return cCJ;if(!q(a,"alefsym"))return cCI;if(!q(a,"alpha"))return cCH;if(!q(a,"amp"))return cCG;if(!q(a,RV))return cCF;if(!q(a,"ang"))return cCE;if(!q(a,"apos"))return cCD}}}}else{var +A=aQ(a,"Nu");if(0<=A){if(0>=A)return cDe;var +B=aQ(a,"Sigma");if(0<=B){if(0>=B)return cC0;var +C=aQ(a,"Uuml");if(0<=C){if(0>=C)return cCS;if(!q(a,"Xi"))return cCR;if(!q(a,"Yacute"))return cCQ;if(!q(a,"Yuml"))return cCP;if(!q(a,"Zeta"))return cCO;if(!q(a,"aacute"))return cCN;if(!q(a,"acirc"))return cCM;if(!q(a,"acute"))return cCL}else{if(!q(a,"THORN"))return cCZ;if(!q(a,"Tau"))return cCY;if(!q(a,"Theta"))return cCX;if(!q(a,"Uacute"))return cCW;if(!q(a,"Ucirc"))return cCV;if(!q(a,"Ugrave"))return cCU;if(!q(a,"Upsilon"))return cCT}}else{var +D=aQ(a,"Otilde");if(0<=D){if(0>=D)return cC8;if(!q(a,"Ouml"))return cC7;if(!q(a,"Phi"))return cC6;if(!q(a,"Pi"))return cC5;if(!q(a,"Prime"))return cC4;if(!q(a,"Psi"))return cC3;if(!q(a,"Rho"))return cC2;if(!q(a,"Scaron"))return cC1}else{if(!q(a,"OElig"))return cDd;if(!q(a,"Oacute"))return cDc;if(!q(a,"Ocirc"))return cDb;if(!q(a,"Ograve"))return cDa;if(!q(a,"Omega"))return cC$;if(!q(a,"Omicron"))return cC_;if(!q(a,"Oslash"))return cC9}}}else{var +E=aQ(a,"Eacute");if(0<=E){if(0>=E)return cDu;var +F=aQ(a,"Icirc");if(0<=F){if(0>=F)return cDm;if(!q(a,"Igrave"))return cDl;if(!q(a,"Iota"))return cDk;if(!q(a,"Iuml"))return cDj;if(!q(a,"Kappa"))return cDi;if(!q(a,"Lambda"))return cDh;if(!q(a,"Mu"))return cDg;if(!q(a,"Ntilde"))return cDf}else{if(!q(a,"Ecirc"))return cDt;if(!q(a,"Egrave"))return cDs;if(!q(a,"Epsilon"))return cDr;if(!q(a,"Eta"))return cDq;if(!q(a,"Euml"))return cDp;if(!q(a,"Gamma"))return cDo;if(!q(a,"Iacute"))return cDn}}else{var +G=aQ(a,"Atilde");if(0<=G){if(0>=G)return cDC;if(!q(a,"Auml"))return cDB;if(!q(a,"Beta"))return cDA;if(!q(a,"Ccedil"))return cDz;if(!q(a,"Chi"))return cDy;if(!q(a,"Dagger"))return cDx;if(!q(a,"Delta"))return cDw;if(!q(a,"ETH"))return cDv}else{if(!q(a,"'int'"))return cDJ;if(!q(a,"AElig"))return cDI;if(!q(a,"Aacute"))return cDH;if(!q(a,"Acirc"))return cDG;if(!q(a,"Agrave"))return cDF;if(!q(a,"Alpha"))return cDE;if(!q(a,"Aring"))return cDD}}}}}return 0},aEI=function(a,b,c,d){var +f=a;for(;;){var +h=function(a){for(;;){N(a,8);if(0===_c(u(a)))continue;return v(a)}};gV(d);var +g=u(d),l=E>>0)var +e=v(d);else +switch(l){case +0:var +e=3;break;case +1:var +e=h(d);break;case +2:var +e=4;break;case +3:N(d,4);var +e=0===pv(u(d))?4:v(d);break;case +4:N(d,8);var +m=aEx(u(d));if(0===m){var +n=aEc(u(d));if(0===n)for(;;){var +o=aEd(u(d));if(0===o)continue;var +e=1===o?6:v(d);break}else if(1===n&&0===g7(u(d)))for(;;){var +p=aEu(u(d));if(0===p)continue;var +e=1===p?5:v(d);break}else +var +e=v(d)}else if(1===m&&0===gL(u(d))){var +q=rj(u(d));if(0===q){var +r=rj(u(d));if(0===r){var +s=rj(u(d));if(0===s){var +t=rj(u(d));if(0===t){var +w=rj(u(d));if(0===w)var +x=rj(u(d)),e=0===x?0===aEq(u(d))?7:v(d):1===x?7:v(d);else +var +e=1===w?7:v(d)}else +var +e=1===t?7:v(d)}else +var +e=1===s?7:v(d)}else +var +e=1===r?7:v(d)}else +var +e=1===q?7:v(d)}else +var +e=v(d);break;case +5:var +e=0;break;case +6:N(d,1);var +e=0===_c(u(d))?h(d):v(d);break;default:N(d,2);var +e=0===_c(u(d))?h(d):v(d)}if(8>>0)return X(cDK);switch(e){case +0:AO(d);return f;case +1:return _g(f,hC(f,d),cDM,cDL);case +2:return _g(f,hC(f,d),cDO,cDN);case +3:return qE(f,hC(f,d));case +4:var +y=f3(d);f6(c,y);f6(b,y);var +f=lW(f,d);continue;case +5:var +i=f3(d),C=f1(i,3,Z(i)-4|0);f6(c,i);s$(b,kR(P(cDP,C)));continue;case +6:var +j=f3(d),D=f1(j,2,Z(j)-3|0);f6(c,j);s$(b,kR(D));continue;case +7:var +k=f3(d),z=f1(k,1,Z(k)-2|0);f6(c,k);var +A=aEH(z);if(A)s$(b,A[1]);else +f6(b,P(cDR,P(z,cDQ)));continue;default:var +B=f3(d);f6(c,B);f6(b,B);continue}}},cDW=function(a,b){gV(b);var +L=cyP(u(b));if(14>>0)var +c=v(b);else +switch(L){case +0:var +c=0;break;case +1:var +c=14;break;case +2:N(b,2);if(0===tb(u(b)))for(;;){N(b,2);if(0===tb(u(b)))continue;var +c=v(b);break}else +var +c=v(b);break;case +3:var +c=1;break;case +4:N(b,1);var +c=0===pv(u(b))?1:v(b);break;case +5:var +c=12;break;case +6:var +c=13;break;case +7:var +c=10;break;case +8:N(b,6);var +M=MI(u(b)),c=0===M?4:1===M?3:v(b);break;case +9:var +c=9;break;case +10:var +c=5;break;case +11:var +c=11;break;case +12:var +c=7;break;case +13:N(b,14);if(0===v1(u(b))){var +O=x2(u(b));if(0===O)var +c=0===g7(u(b))?0===g7(u(b))?0===g7(u(b))?13:v(b):v(b):v(b);else if(1===O&&0===g7(u(b)))for(;;){var +Q=x1(u(b));if(0===Q)continue;var +c=1===Q?13:v(b);break}else +var +c=v(b)}else +var +c=v(b);break;default:var +c=8}if(14>>0)return X(cDX);switch(c){case +0:return[0,a,gt];case +1:return[2,lW(a,b)];case +2:return[2,a];case +3:var +ac=kX(a,b),R=g4(gx),S=A5(a,R,b),T=S[1];return[1,T,rk(T,ac,S[2],R,0)];case +4:var +ad=kX(a,b),U=g4(gx),V=x4(a,U,b),W=V[1];return[1,W,rk(W,ad,V[2],U,1)];case +5:return[0,a,98];case +6:return[0,a,i$];case +7:return[0,a,99];case +8:return[0,a,0];case +9:return[0,a,86];case +10:return[0,a,10];case +11:return[0,a,82];case +12:var +o=f3(b),ae=kX(a,b),g=g4(gx),e=g4(gx);f6(e,o);var +Y=af(o,T_),h=a;for(;;){gV(b);var +k=u(b),t=39>>0)var +d=v(b);else +switch(t){case +0:var +d=2;break;case +1:for(;;){N(b,7);var +i=u(b),$=-1>>0)var +j=X(cDS);else +switch(d){case +0:if(!Y){iM(e,39);iM(g,39);continue}var +j=h;break;case +1:if(Y){iM(e,34);iM(g,34);continue}var +j=h;break;case +2:var +j=qE(h,hC(h,b));break;case +3:var +H=f3(b);f6(e,H);f6(g,H);var +h=lW(h,b);continue;case +4:var +l=f3(b),aa=f1(l,3,Z(l)-4|0);f6(e,l);s$(g,kR(P(cDT,aa)));continue;case +5:var +m=f3(b),ab=f1(m,2,Z(m)-3|0);f6(e,m);s$(g,kR(ab));continue;case +6:var +n=f3(b),I=f1(n,1,Z(n)-2|0);f6(e,n);var +J=aEH(I);if(J)s$(g,J[1]);else +f6(g,P(cDV,P(I,cDU)));continue;default:var +K=f3(b);f6(e,K);f6(g,K);continue}var +ag=pw(j,b);f6(e,o);var +ah=h0(g),ai=h0(e);return[0,j,[10,[0,j[1],ae,ag],ah,ai]]}case +13:var +_=b[6];for(;;){gV(b);var +p=u(b),q=gN>>0)var +f=v(b);else +switch(q){case +0:var +f=1;break;case +1:var +f=2;break;case +2:var +f=0;break;default:N(b,2);if(0===v1(u(b))){var +r=x2(u(b));if(0===r)var +f=0===g7(u(b))?0===g7(u(b))?0===g7(u(b))?0:v(b):v(b):v(b);else if(1===r&&0===g7(u(b)))for(;;){var +s=x1(u(b));if(0===s)continue;var +f=1===s?0:v(b);break}else +var +f=v(b)}else +var +f=v(b)}if(2>>0)throw B([0,aL,cyR],1);switch(f){case +0:continue;case +1:break;default:if(Z7(awD(b)))continue;awE(b,1)}var +aj=b[3];WN(b,_);var +ak=ii(b),al=E0(a,_,aj);return[0,a,[8,EI(ak),al]]}default:return[0,a,[7,f3(b)]]}},cDZ=function(a,b){gV(b);var +c=u(b),f=-1>>0)var +d=v(b);else +switch(f){case +0:var +d=5;break;case +1:N(b,1);if(0===tb(u(b)))for(;;){N(b,1);if(0===tb(u(b)))continue;var +d=v(b);break}else +var +d=v(b);break;case +2:var +d=0;break;case +3:N(b,0);var +d=0===pv(u(b))?0:v(b);break;case +4:N(b,5);var +g=MI(u(b)),d=0===g?3:1===g?2:v(b);break;default:var +d=4}if(5>>0)return X(cD0);switch(d){case +0:return[2,lW(a,b)];case +1:return[2,a];case +2:var +r=kX(a,b),h=g4(gx),i=A5(a,h,b),j=i[1];return[1,j,rk(j,r,i[2],h,0)];case +3:var +s=kX(a,b),k=g4(gx),l=x4(a,k,b),m=l[1];return[1,m,rk(m,s,l[2],k,1)];case +4:var +t=kX(a,b),n=g4(gx),o=g4(gx),p=aEG(a,n,o,b),e=p[1],w=p[2],x=pw(e,b),y=[0,e[1],t,x],z=h0(o);return[0,e,[3,[0,y,h0(n),z,0,w]]];default:var +q=qE(a,hC(a,b));return[0,q,[3,[0,hC(q,b),cD2,cD1,0,1]]]}},cD3=function(a,b){function +e(a){for(;;){N(a,29);if(0===gL(u(a)))continue;return v(a)}}function +h(a){N(a,28);var +b=jA(u(a));if(0!==b)return 1===b?e(a):v(a);for(;;){N(a,26);if(0===gL(u(a)))continue;return v(a)}}function +g(a){N(a,27);var +b=jA(u(a));if(0!==b)return 1===b?e(a):v(a);for(;;){N(a,25);if(0===gL(u(a)))continue;return v(a)}}function +j(a){N(a,30);var +b=A2(u(a));if(2>>0)return v(a);switch(b){case +0:return e(a);case +1:for(;;){N(a,30);var +c=td(u(a));if(3>>0)return v(a);switch(c){case +0:return e(a);case +1:continue;case +2:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,30);var +d=td(u(a));if(3>>0)return v(a);switch(d){case +0:return e(a);case +1:continue;case +2:continue b;default:return g(a)}}}default:return g(a)}}default:return g(a)}}function +H(a){a:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,30);var +b=aEp(u(a));if(4>>0)return v(a);switch(b){case +0:return e(a);case +1:return j(a);case +2:continue;case +3:continue a;default:return h(a)}}}}function +G(a){for(;;){N(a,19);if(0===gL(u(a)))continue;return v(a)}}function +F(a){for(;;){N(a,19);if(0===gL(u(a)))continue;return v(a)}}function +D(a){for(;;){N(a,13);if(0===gL(u(a)))continue;return v(a)}}function +C(a){for(;;){N(a,13);if(0===gL(u(a)))continue;return v(a)}}function +B(a){for(;;){N(a,9);if(0===gL(u(a)))continue;return v(a)}}function +A(a){for(;;){N(a,9);if(0===gL(u(a)))continue;return v(a)}}function +n(a){for(;;){N(a,15);if(0===gL(u(a)))continue;return v(a)}}function +z(a){N(a,15);var +b=jA(u(a));if(0!==b)return 1===b?n(a):v(a);for(;;){N(a,15);if(0===gL(u(a)))continue;return v(a)}}function +l(a){for(;;){N(a,23);if(0===gL(u(a)))continue;return v(a)}}function +w(a){N(a,22);var +b=jA(u(a));if(0!==b)return 1===b?l(a):v(a);for(;;){N(a,21);if(0===gL(u(a)))continue;return v(a)}}function +i(a){for(;;){N(a,23);if(0===gL(u(a)))continue;return v(a)}}function +k(a){N(a,22);var +b=jA(u(a));if(0!==b)return 1===b?i(a):v(a);for(;;){N(a,21);if(0===gL(u(a)))continue;return v(a)}}function +t(a){a:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,24);var +b=td(u(a));if(3>>0)return v(a);switch(b){case +0:return i(a);case +1:continue;case +2:continue a;default:return k(a)}}}}function +f(a){N(a,29);var +b=aEr(u(a));if(3>>0)return v(a);switch(b){case +0:return e(a);case +1:var +c=vX(u(a));if(0===c)for(;;){N(a,24);var +d=A2(u(a));if(2>>0)return v(a);switch(d){case +0:return i(a);case +1:continue;default:return k(a)}}if(1!==c)return v(a);for(;;){N(a,24);var +f=td(u(a));if(3>>0)return v(a);switch(f){case +0:return i(a);case +1:continue;case +2:return t(a);default:return k(a)}}case +2:for(;;){N(a,24);var +g=A2(u(a));if(2>>0)return v(a);switch(g){case +0:return l(a);case +1:continue;default:return w(a)}}default:for(;;){N(a,24);var +h=td(u(a));if(3>>0)return v(a);switch(h){case +0:return l(a);case +1:continue;case +2:return t(a);default:return w(a)}}}}function +m(a){N(a,30);var +b=aEh(u(a));if(3>>0)return v(a);switch(b){case +0:return e(a);case +1:for(;;){N(a,30);var +c=vY(u(a));if(4>>0)return v(a);switch(c){case +0:return e(a);case +1:continue;case +2:return f(a);case +3:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,30);var +d=vY(u(a));if(4>>0)return v(a);switch(d){case +0:return e(a);case +1:continue;case +2:return f(a);case +3:continue b;default:return g(a)}}}default:return g(a)}}case +2:return f(a);default:return g(a)}}function +y(a){return 0===MF(u(a))?0===MB(u(a))?0===aEt(u(a))?0===aEj(u(a))?0===aEk(u(a))?0===MA(u(a))?0===EY(u(a))?0===MF(u(a))?0===v1(u(a))?0===_f(u(a))?0===x3(u(a))?3:v(a):v(a):v(a):v(a):v(a):v(a):v(a):v(a):v(a):v(a):v(a)}function +x(a){N(a,3);return 0===aEw(u(a))?3:v(a)}function +ad(a){var +d=cyO(u(a));if(31>>0)return v(a);switch(d){case +0:return 66;case +1:return 67;case +2:N(a,1);if(0!==tb(u(a)))return v(a);for(;;){N(a,1);if(0===tb(u(a)))continue;return v(a)}case +3:return 0;case +4:N(a,0);return 0===pv(u(a))?0:v(a);case +5:return 6;case +6:return 65;case +7:N(a,67);if(0!==EY(u(a)))return v(a);var +i=u(a),ah=iU>>0)return v(a);switch(p){case +0:return e(a);case +1:continue;case +2:return f(a);case +3:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,30);var +q=vY(u(a));if(4>>0)return v(a);switch(q){case +0:return e(a);case +1:continue;case +2:return f(a);case +3:continue b;default:return g(a)}}}default:return g(a)}}case +16:N(a,67);var +r=MI(u(a));if(0!==r)return 1===r?5:v(a);N(a,2);var +s=Mu(u(a));if(2>>0)return v(a);switch(s){case +0:for(;;){var +t=Mu(u(a));if(2>>0)return v(a);switch(t){case +0:continue;case +1:return x(a);default:return y(a)}}case +1:return x(a);default:return y(a)}case +17:N(a,30);var +w=aEm(u(a));if(8>>0)return v(a);switch(w){case +0:return e(a);case +1:return m(a);case +2:for(;;){N(a,16);var +I=aEs(u(a));if(4>>0)return v(a);switch(I){case +0:return n(a);case +1:return j(a);case +2:continue;case +3:for(;;){N(a,15);var +J=Mt(u(a));if(3>>0)return v(a);switch(J){case +0:return n(a);case +1:return j(a);case +2:continue;default:return z(a)}}default:return z(a)}}case +3:for(;;){N(a,30);var +K=Mt(u(a));if(3>>0)return v(a);switch(K){case +0:return e(a);case +1:return j(a);case +2:continue;default:return h(a)}}case +4:N(a,29);var +L=aEl(u(a));if(0===L)return e(a);if(1!==L)return v(a);for(;;){N(a,10);var +M=MJ(u(a));if(3>>0)return v(a);switch(M){case +0:return A(a);case +1:continue;case +2:b:for(;;){if(0!==tc(u(a)))return v(a);for(;;){N(a,10);var +O=MJ(u(a));if(3>>0)return v(a);switch(O){case +0:return B(a);case +1:continue;case +2:continue b;default:N(a,8);var +P=jA(u(a));if(0!==P)return 1===P?B(a):v(a);for(;;){N(a,7);if(0===gL(u(a)))continue;return v(a)}}}}default:N(a,8);var +Q=jA(u(a));if(0!==Q)return 1===Q?A(a):v(a);for(;;){N(a,7);if(0===gL(u(a)))continue;return v(a)}}}case +5:return f(a);case +6:N(a,29);var +R=aEn(u(a));if(0===R)return e(a);if(1!==R)return v(a);for(;;){N(a,14);var +S=MH(u(a));if(3>>0)return v(a);switch(S){case +0:return C(a);case +1:continue;case +2:b:for(;;){if(0!==lV(u(a)))return v(a);for(;;){N(a,14);var +T=MH(u(a));if(3>>0)return v(a);switch(T){case +0:return D(a);case +1:continue;case +2:continue b;default:N(a,12);var +U=jA(u(a));if(0!==U)return 1===U?D(a):v(a);for(;;){N(a,11);if(0===gL(u(a)))continue;return v(a)}}}}default:N(a,12);var +V=jA(u(a));if(0!==V)return 1===V?C(a):v(a);for(;;){N(a,11);if(0===gL(u(a)))continue;return v(a)}}}case +7:N(a,29);var +W=aEe(u(a));if(0===W)return e(a);if(1!==W)return v(a);for(;;){N(a,20);var +X=MK(u(a));if(3>>0)return v(a);switch(X){case +0:return F(a);case +1:continue;case +2:b:for(;;){if(0!==g7(u(a)))return v(a);for(;;){N(a,20);var +Y=MK(u(a));if(3>>0)return v(a);switch(Y){case +0:return G(a);case +1:continue;case +2:continue b;default:N(a,18);var +Z=jA(u(a));if(0!==Z)return 1===Z?G(a):v(a);for(;;){N(a,17);if(0===gL(u(a)))continue;return v(a)}}}}default:N(a,18);var +_=jA(u(a));if(0!==_)return 1===_?F(a):v(a);for(;;){N(a,17);if(0===gL(u(a)))continue;return v(a)}}}default:return h(a)}case +18:N(a,30);var +$=Mw(u(a));if(5<$>>>0)return v(a);switch($){case +0:return e(a);case +1:return m(a);case +2:for(;;){N(a,30);var +aa=Mw(u(a));if(5>>0)return v(a);switch(aa){case +0:return e(a);case +1:return m(a);case +2:continue;case +3:return f(a);case +4:return H(a);default:return h(a)}}case +3:return f(a);case +4:return H(a);default:return h(a)}case +19:return 44;case +20:return 42;case +21:return 49;case +22:N(a,51);var +ab=u(a),ak=61>>0)return X(cD4);var +s=I;if(34>s)switch(s){case +0:return[2,lW(a,b)];case +1:return[2,a];case +2:var +ae=kX(a,b),J=g4(gx),K=x4(a,J,b),L=K[1];return[1,L,rk(L,ae,K[2],J,1)];case +3:var +M=f3(b);if(!a[5]){var +ah=kX(a,b),o=g4(gx);f6(o,M);var +Q=x4(a,o,b),R=Q[1];return[1,R,rk(R,ah,Q[2],o,1)]}var +ag=a[4]?aEA(a,hC(a,b),M):a,O=Mm(1,ag),P=J7(b);if(af(EH(b,P-1|0,1),i2)&&q(EH(b,P-2|0,1),i2))return[0,O,86];return[2,O];case +4:if(a[4])return[2,Mm(0,a)];AO(b);gV(b);var +ai=0===aEg(u(b))?0:v(b);return 0===ai?[0,a,hq]:X(cD5);case +5:var +aj=kX(a,b),S=g4(gx),T=A5(a,S,b),U=T[1];return[1,U,rk(U,aj,T[2],S,0)];case +6:var +V=f3(b),ak=kX(a,b),W=g4(gx),p=g4(gx);f6(p,V);var +r=aEF(a,V,W,p,0,b),Y=r[1],al=r[3],am=[0,Y[1],ak,r[2]],an=h0(p);return[0,Y,[2,[0,am,h0(W),an,al]]];case +7:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===My(u(b))&&0===tc(u(b)))for(;;){var +e=Mr(u(b));if(2>>0)var +c=v(b);else +switch(e){case +0:continue;case +1:b:for(;;){if(0===tc(u(b)))for(;;){var +f=Mr(u(b));if(2>>0)var +d=v(b);else +switch(f){case +0:continue;case +1:continue b;default:var +d=0}break}else +var +d=v(b);var +c=d;break}break;default:var +c=0}break}else +var +c=v(b);return 0===c?[0,a,rm(0,ii(b))]:X(cD6)});case +8:return[0,a,rm(0,ii(b))];case +9:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===My(u(b))&&0===tc(u(b)))for(;;){N(b,0);var +d=Mq(u(b));if(0===d)continue;if(1===d)b:for(;;){if(0===tc(u(b)))for(;;){N(b,0);var +f=Mq(u(b));if(0===f)continue;if(1===f)continue b;var +e=v(b);break}else +var +e=v(b);var +c=e;break}else +var +c=v(b);break}else +var +c=v(b);return 0===c?[0,a,rl(0,ii(b))]:X(cD7)});case +10:return[0,a,rl(0,ii(b))];case +11:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===MD(u(b))&&0===lV(u(b)))for(;;){var +e=Mx(u(b));if(2>>0)var +c=v(b);else +switch(e){case +0:continue;case +1:b:for(;;){if(0===lV(u(b)))for(;;){var +f=Mx(u(b));if(2>>0)var +d=v(b);else +switch(f){case +0:continue;case +1:continue b;default:var +d=0}break}else +var +d=v(b);var +c=d;break}break;default:var +c=0}break}else +var +c=v(b);return 0===c?[0,a,rm(1,ii(b))]:X(cD8)});case +12:return[0,a,rm(1,ii(b))];case +13:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===MD(u(b))&&0===lV(u(b)))for(;;){N(b,0);var +d=Mv(u(b));if(0===d)continue;if(1===d)b:for(;;){if(0===lV(u(b)))for(;;){N(b,0);var +f=Mv(u(b));if(0===f)continue;if(1===f)continue b;var +e=v(b);break}else +var +e=v(b);var +c=e;break}else +var +c=v(b);break}else +var +c=v(b);return 0===c?[0,a,rl(3,ii(b))]:X(cD9)});case +14:return[0,a,rl(3,ii(b))];case +15:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===lV(u(b)))for(;;){N(b,0);if(0===lV(u(b)))continue;var +c=v(b);break}else +var +c=v(b);return 0===c?[0,a,rl(1,ii(b))]:X(cD_)});case +16:return[0,a,rl(1,ii(b))];case +17:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===Mo(u(b))&&0===g7(u(b)))for(;;){var +e=Ms(u(b));if(2>>0)var +c=v(b);else +switch(e){case +0:continue;case +1:b:for(;;){if(0===g7(u(b)))for(;;){var +f=Ms(u(b));if(2>>0)var +d=v(b);else +switch(f){case +0:continue;case +1:continue b;default:var +d=0}break}else +var +d=v(b);var +c=d;break}break;default:var +c=0}break}else +var +c=v(b);return 0===c?[0,a,rm(2,ii(b))]:X(cD$)});case +18:return[0,a,rm(2,ii(b))];case +19:return jn(a,b,function(a,b){gV(b);if(0===pu(u(b))&&0===Mo(u(b))&&0===g7(u(b)))for(;;){N(b,0);var +d=MG(u(b));if(0===d)continue;if(1===d)b:for(;;){if(0===g7(u(b)))for(;;){N(b,0);var +f=MG(u(b));if(0===f)continue;if(1===f)continue b;var +e=v(b);break}else +var +e=v(b);var +c=e;break}else +var +c=v(b);break}else +var +c=v(b);return 0===c?[0,a,rl(4,ii(b))]:X(cEa)});case +20:return[0,a,rl(4,ii(b))];case +21:return jn(a,b,function(a,b){function +g(a){for(;;){var +b=ri(u(a));if(2>>0)return v(a);switch(b){case +0:continue;case +1:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){var +c=ri(u(a));if(2>>0)return v(a);switch(c){case +0:continue;case +1:continue b;default:return 0}}}default:return 0}}}function +f(a){for(;;){var +b=A3(u(a));if(0===b)continue;return 1===b?0:v(a)}}function +d(a){var +b=ML(u(a));if(2>>0)return v(a);switch(b){case +0:var +c=vX(u(a));return 0===c?f(a):1===c?g(a):v(a);case +1:return f(a);default:return g(a)}}function +h(a){var +b=ME(u(a));if(0!==b)return 1===b?d(a):v(a);for(;;){var +c=mr(u(a));if(2>>0)return v(a);switch(c){case +0:continue;case +1:return d(a);default:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){var +e=mr(u(a));if(2>>0)return v(a);switch(e){case +0:continue;case +1:return d(a);default:continue b}}}}}}gV(b);var +i=vW(u(b));if(2>>0)var +c=v(b);else +switch(i){case +0:if(0===gX(u(b)))for(;;){var +j=mr(u(b));if(2>>0)var +c=v(b);else +switch(j){case +0:continue;case +1:var +c=d(b);break;default:b:for(;;){if(0===gX(u(b)))for(;;){var +k=mr(u(b));if(2>>0)var +e=v(b);else +switch(k){case +0:continue;case +1:var +e=d(b);break;default:continue b}break}else +var +e=v(b);var +c=e;break}}break}else +var +c=v(b);break;case +1:var +l=Mp(u(b)),c=0===l?h(b):1===l?d(b):v(b);break;default:for(;;){var +m=MC(u(b));if(2>>0)var +c=v(b);else +switch(m){case +0:var +c=h(b);break;case +1:continue;default:var +c=d(b)}break}}if(0!==c)return X(cEb);var +n=ii(b),o=kY(a,hC(a,b),48);return[0,o,rm(2,n)]});case +22:var +ao=ii(b),ap=kY(a,hC(a,b),48);return[0,ap,rm(2,ao)];case +23:return jn(a,b,function(a,b){function +g(a){for(;;){N(a,0);var +b=vZ(u(a));if(0===b)continue;if(1!==b)return v(a);b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,0);var +c=vZ(u(a));if(0===c)continue;if(1===c)continue b;return v(a)}}}}function +f(a){for(;;){N(a,0);if(0===gX(u(a)))continue;return v(a)}}function +d(a){var +b=ML(u(a));if(2>>0)return v(a);switch(b){case +0:var +c=vX(u(a));return 0===c?f(a):1===c?g(a):v(a);case +1:return f(a);default:return g(a)}}function +h(a){var +b=ME(u(a));if(0!==b)return 1===b?d(a):v(a);for(;;){var +c=mr(u(a));if(2>>0)return v(a);switch(c){case +0:continue;case +1:return d(a);default:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){var +e=mr(u(a));if(2>>0)return v(a);switch(e){case +0:continue;case +1:return d(a);default:continue b}}}}}}gV(b);var +i=vW(u(b));if(2>>0)var +c=v(b);else +switch(i){case +0:if(0===gX(u(b)))for(;;){var +j=mr(u(b));if(2>>0)var +c=v(b);else +switch(j){case +0:continue;case +1:var +c=d(b);break;default:b:for(;;){if(0===gX(u(b)))for(;;){var +k=mr(u(b));if(2>>0)var +e=v(b);else +switch(k){case +0:continue;case +1:var +e=d(b);break;default:continue b}break}else +var +e=v(b);var +c=e;break}}break}else +var +c=v(b);break;case +1:var +l=Mp(u(b)),c=0===l?h(b):1===l?d(b):v(b);break;default:for(;;){var +m=MC(u(b));if(2>>0)var +c=v(b);else +switch(m){case +0:var +c=h(b);break;case +1:continue;default:var +c=d(b)}break}}return 0===c?[0,a,rl(4,ii(b))]:X(cEc)});case +24:return[0,a,rl(4,ii(b))];case +25:return jn(a,b,function(a,b){function +f(a){for(;;){var +b=ri(u(a));if(2>>0)return v(a);switch(b){case +0:continue;case +1:b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){var +c=ri(u(a));if(2>>0)return v(a);switch(c){case +0:continue;case +1:continue b;default:return 0}}}default:return 0}}}function +d(a){var +b=A3(u(a));return 0===b?f(a):1===b?0:v(a)}gV(b);var +g=vW(u(b));if(2>>0)var +c=v(b);else +switch(g){case +0:var +c=0===gX(u(b))?f(b):v(b);break;case +1:for(;;){var +h=A4(u(b));if(0===h)var +c=d(b);else{if(1===h)continue;var +c=v(b)}break}break;default:for(;;){var +i=v0(u(b));if(2>>0)var +c=v(b);else +switch(i){case +0:var +c=d(b);break;case +1:continue;default:b:for(;;){if(0===gX(u(b)))for(;;){var +j=v0(u(b));if(2>>0)var +e=v(b);else +switch(j){case +0:var +e=d(b);break;case +1:continue;default:continue b}break}else +var +e=v(b);var +c=e;break}}break}}if(0!==c)return X(cEd);var +k=ii(b),l=kY(a,hC(a,b),39);return[0,l,rm(2,k)]});case +26:return jn(a,b,function(a,b){gV(b);var +e=vX(u(b));if(0===e)for(;;){var +f=A3(u(b));if(0===f)continue;var +c=1===f?0:v(b);break}else if(1===e)for(;;){var +g=ri(u(b));if(2>>0)var +c=v(b);else +switch(g){case +0:continue;case +1:b:for(;;){if(0===gX(u(b)))for(;;){var +h=ri(u(b));if(2>>0)var +d=v(b);else +switch(h){case +0:continue;case +1:continue b;default:var +d=0}break}else +var +d=v(b);var +c=d;break}break;default:var +c=0}break}else +var +c=v(b);return 0===c?[0,a,rm(2,ii(b))]:X(cEe)});case +27:var +aq=ii(b),ar=kY(a,hC(a,b),39);return[0,ar,rm(2,aq)];case +28:return[0,a,rm(2,ii(b))];case +29:return jn(a,b,function(a,b){function +f(a){for(;;){N(a,0);var +b=vZ(u(a));if(0===b)continue;if(1!==b)return v(a);b:for(;;){if(0!==gX(u(a)))return v(a);for(;;){N(a,0);var +c=vZ(u(a));if(0===c)continue;if(1===c)continue b;return v(a)}}}}function +d(a){N(a,0);return 0===gX(u(a))?f(a):v(a)}gV(b);var +g=vW(u(b));if(2>>0)var +c=v(b);else +switch(g){case +0:var +c=0===gX(u(b))?f(b):v(b);break;case +1:for(;;){N(b,0);var +h=A4(u(b));if(0===h)var +c=d(b);else{if(1===h)continue;var +c=v(b)}break}break;default:for(;;){N(b,0);var +i=v0(u(b));if(2>>0)var +c=v(b);else +switch(i){case +0:var +c=d(b);break;case +1:continue;default:b:for(;;){if(0===gX(u(b)))for(;;){N(b,0);var +j=v0(u(b));if(2>>0)var +e=v(b);else +switch(j){case +0:var +e=d(b);break;case +1:continue;default:continue b}break}else +var +e=v(b);var +c=e;break}}break}}return 0===c?[0,a,rl(4,ii(b))]:X(cEf)});case +30:return[0,a,rl(4,ii(b))];case +31:return[0,a,66];case +32:return[0,a,6];default:return[0,a,7]}switch(s){case +34:return[0,a,0];case +35:return[0,a,1];case +36:return[0,a,2];case +37:return[0,a,3];case +38:return[0,a,4];case +39:return[0,a,5];case +40:return[0,a,12];case +41:return[0,a,10];case +42:return[0,a,8];case +43:return[0,a,9];case +44:return[0,a,86];case +45:return[0,a,83];case +46:return[0,a,85];case +47:return[0,a,6];case +48:return[0,a,7];case +49:return[0,a,98];case +50:return[0,a,99];case +51:return[0,a,82];case +52:return[0,a,85];case +53:return[0,a,hq];case +54:return[0,a,86];case +55:return[0,a,88];case +56:return[0,a,87];case +57:return[0,a,89];case +58:return[0,a,91];case +59:return[0,a,11];case +60:return[0,a,82];case +61:return[0,a,iU];case +62:return[0,a,iQ];case +63:return[0,a,kr];case +64:return[0,a,l8];case +65:var +Z=b[6];aEy(b);var +as=E0(a,Z,b[3]);WN(b,Z);var +_=ii(b),$=aED(a,_),c=$[2],d=$[1],aa=aQ(c,vg);if(0<=aa){if(0>=aa)return[0,d,jx];var +ab=aQ(c,rU);if(0<=ab){if(0>=ab)return[0,d,k$];if(!q(c,q_))return[0,d,31];if(!q(c,pM))return[0,d,46];if(!q(c,kq))return[0,d,jX];if(!q(c,I5))return[0,d,gN];if(!q(c,q1))return[0,d,iJ]}else{if(!q(c,HF))return[0,d,hB];if(!q(c,nK))return[0,d,29];if(!q(c,oW))return[0,d,kL];if(!q(c,tQ))return[0,d,lj];if(!q(c,ko))return[0,d,42];if(!q(c,qj))return[0,d,k8]}}else{var +ac=aQ(c,jZ);if(0<=ac){if(0>=ac)return[0,d,41];if(!q(c,qg))return[0,d,30];if(!q(c,CL))return[0,d,gx];if(!q(c,aE))return[0,d,53];if(!q(c,CH))return[0,d,gO];if(!q(c,C7))return[0,d,E]}else{if(!q(c,sV))return[0,d,iR];if(!q(c,Dk))return[0,d,ju];if(!q(c,pS))return[0,d,kv];if(!q(c,IT))return[0,d,cEh];if(!q(c,qR))return[0,d,cEg];if(!q(c,aI))return[0,d,jY]}}return[0,d,[4,as,c,EI(_)]];case +66:var +at=a[4]?kY(a,hC(a,b),96):a;return[0,at,gt];default:return[0,a,[7,f3(b)]]}},E1=function(l){return function(a){var +f=0,e=a;for(;;){var +c=n(l,e,e[2]);switch(c[0]){case +0:var +h=c[2],b=c[1],g=aEz(b,h),i=0===f?0:U(f),j=b[6];if(0===j)return[0,[0,b[1],b[2],b[3],b[4],b[5],b[6],g],[0,h,g,0,i]];var +m=[0,h,g,U(j),i];return[0,[0,b[1],b[2],b[3],b[4],b[5],aD8,g],m];case +1:var +k=c[2],d=c[1],f=[0,k,f],e=[0,d[1],d[2],d[3],d[4],d[5],d[6],k[1]];continue;default:var +e=c[1];continue}}}},cEi=E1(czL),cEj=E1(cDW),cEk=E1(cDZ),cEl=E1(cD3),aEJ=E1(czl),kZ=h$([0,VC]),E2=function(a,b){return[0,0,0,b,aD_(a)]},MN=function(a){var +c=a[4];switch(a[3]){case +0:var +g=m(aEJ,c);break;case +1:var +g=m(cEl,c);break;case +2:var +g=m(cEj,c);break;case +3:var +r=pw(c,c[2]),h=g4(gx),i=g4(gx),b=c[2];gV(b);var +j=u(b),p=hB>>0)var +e=v(b);else +switch(p){case +0:var +e=1;break;case +1:var +e=4;break;case +2:var +e=0;break;case +3:N(b,0);var +e=0===pv(u(b))?0:v(b);break;case +4:var +e=2;break;default:var +e=3}if(4>>0)var +f=X(cDY);else +switch(e){case +0:var +q=f3(b);f6(i,q);f6(h,q);var +k=aEI(lW(c,b),h,i,b),y=pw(k,b),z=h0(h),A=h0(i),f=[0,k,[9,[0,k[1],r,y],z,A]];break;case +1:var +f=[0,c,gt];break;case +2:var +f=[0,c,98];break;case +3:var +f=[0,c,0];break;default:AO(b);var +l=aEI(c,h,i,b),B=pw(l,b),C=h0(h),D=h0(i),f=[0,l,[9,[0,l[1],r,B],C,D]]}var +n=f[2],d=f[1],s=aEz(d,n),t=d[6];if(0===t)var +x=[0,d,[0,n,s,0,0]];else +var +E=[0,n,s,U(t),0],x=[0,[0,d[1],d[2],d[3],d[4],d[5],0,d[7]],E];var +g=x;break;case +4:var +g=m(cEk,c);break;default:var +g=m(cEi,c)}var +w=g[1],F=g[2],o=[0,aD_(w),F];a[4]=w;if(a[1])a[2]=[0,o];else +a[1]=[0,o];return o},aEK=function(a){var +b=a[1];return b?b[1][2]:MN(a)[2]},aEL=function(a,b,c,d){var +k=a?a[1]:0,f=b?b[1]:0;try{var +n=0,o=J8(d),i=n,h=o}catch(f){var +g=fk(f);if(g!==ug)throw B(g,0);var +l=[0,[0,[0,c,g6[2],g6[3]],54],0],i=l,h=J8(cEm)}var +e=f?f[1]:A6,j=aD9(c,h,e[4]),m=[0,E2(j,0)];return[0,[0,i],[0,0],kZ[1],[0,0],e[5],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,[0,cEo],[0,j],m,[0,k],e,c,[0,0],[0,cEn]]},A7=function(a){return g1(a[24][1])},iX=function(a){return a[28][4]},fc=function(a,b){var +c=b[2];a[1][1]=[0,[0,b[1],c],a[1][1]];var +d=a[23];return d?n(d[1],a,c):0},E3=function(a,b){a[31][1]=b;return 0},v2=function(a,b){if(0===a)return aEK(b[26][1]);if(1!==a)throw B([0,aL,cEr],1);var +c=b[26][1];if(!c[1])MN(c);var +d=c[2];return d?d[1][2]:MN(c)[2]},up=function(a,b){return a===b[5]?b:[0,b[1],b[2],b[3],b[4],a,b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},aEM=function(a,b){return a===b[10]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],a,b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},_h=function(a,b){return a===b[18]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],a,b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},_i=function(a,b){return a===b[19]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],a,b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},aEN=function(a,b){return a===b[20]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],a,b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},x5=function(a,b){return a===b[22]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],a,b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},_j=function(a,b){return a===b[14]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],a,b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},E4=function(a,b){return a===b[8]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],a,b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},E5=function(a,b){return a===b[12]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],a,b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},x6=function(a,b){return a===b[15]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],a,b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},_k=function(a,b){return a===b[16]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],a,b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},aEO=function(a,b){return a===b[17]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],a,b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},aEP=function(a,b){return a===b[6]?b:[0,b[1],b[2],b[3],b[4],b[5],a,b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},aEQ=function(a,b){return a===b[7]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],a,b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},_l=function(a,b){return a===b[13]?b:[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],a,b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],b[23],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},MO=function(a,b){return[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19],b[20],b[21],b[22],[0,a],b[24],b[25],b[26],b[27],b[28],b[29],b[30],b[31]]},_m=function(b){function +c(a){return fc(b,a)}return function(a){return fo(c,a)}},A8=function(a){var +b=a[4][1];return b?[0,b[1][2]]:0},aER=function(a){var +b=a[4][1];return b?[0,b[1][1]]:0},aES=function(a){return[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19],a[20],a[21],a[22],0,a[24],a[25],a[26],a[27],a[28],a[29],a[30],a[31]]},aET=function(a,b,c,d){return[0,a[1],a[2],kZ[1],a[4],a[5],0,0,0,0,0,1,a[12],a[13],a[14],a[15],a[16],a[17],c,b,a[20],d,a[22],a[23],a[24],a[25],a[26],a[27],a[28],a[29],a[30],a[31]]},A9=function(a){if(q(a,sy)&&q(a,aE)&&q(a,z_)&&q(a,UJ)&&q(a,HM)&&q(a,Ja)&&q(a,Iu)&&q(a,ko)&&q(a,aH))return 0;return 1},x7=function(a){if(q(a,pL)&&q(a,f8))return 0;return 1},MP=function(a){var +c=aQ(a,H7),b=0;if(0<=c){if(0>>0){if(hy>=c+1>>>0)return 1}else if(6===c)return 0}return E7(a,b)},A_=function(a){return aEW(0,a)},v3=function(a,b){var +c=gQ(a,b),e=0;if(typeof +c==="number")switch(c){case +28:case +42:case +52:case +53:case +54:case +55:case +56:case +57:case +58:var +d=1;break;default:e=1}else if(4===c[0])var +d=A9(c[2]);else +e=1;if(e)var +d=0;if(d)return 1;var +f=0;if(typeof +c==="number")switch(c){case +14:case +48:case +60:case +61:case +62:case +63:case +64:case +65:case +126:f=1;break}else if(4===c[0])f=1;return f?1:0},MQ=function(a,b){return aEU(b,gQ(a,b))},aEX=function(a,b){var +c=v3(a,b);return c?c:MQ(a,b)},te=function(a){return v3(0,a)},v4=function(a){var +c=15===J(a)?1:0;if(c)var +b=c;else{var +d=64===J(a)?1:0;if(d){var +e=15===gQ(1,a)?1:0;if(e)var +f=E6(1,a)[2][1],b=fB(a)[3][1]===f?1:0;else +var +b=e}else +var +b=d}return b},E8=function(a){var +b=J(a);if(typeof +b==="number")switch(b){case +13:case +40:return 1}else if(4===b[0]&&!q(b[3],aiI)&&40===gQ(1,a))return 1;return 0},_p=function(a){var +c=a[28][1];if(c){var +b=J(a);if(typeof +b!=="number"&&4===b[0]&&!q(b[3],r0)&&v3(1,a))return 1;var +d=0}else +var +d=c;return d},_q=function(a){var +b=J(a);if(typeof +b!=="number"&&4===b[0]&&!q(b[3],qW))return 1;return 0},f4=function(a,b){return fc(a,[0,fB(a),b])},aEY=function(a,b){var +c=_a(0,b);return a?[26,c,a[1]]:[24,c]},i4=function(a,b){var +c=_o(b);m(_m(b),c);return f4(b,aEY(a,J(b)))},MR=function(b){function +c(a){return fc(b,[0,a[1],gt])}return function(a){return fo(c,a)}},aEZ=function(a,b){var +c=a[6]?l(k(cEt),b,b,b):cEu;return i4([0,c],a)},rn=function(a,b){var +c=a[5];return c?f4(a,b):c},qF=function(a,b){var +c=a[5],d=b[2],e=b[1];return c?fc(a,[0,e,d]):c},x8=function(a,b){return fc(a,[0,b,[14,a[5]]])},aA=function(a){var +e=a[27][1];if(e){var +f=e[1],g=A7(a),h=J(a);m(f,[0,fB(a),h,g])}var +d=a[26][1],c=d[1],i=c?c[1][1]:MN(d)[1];a[25][1]=i;var +j=_o(a);m(_m(a),j);var +k=a[2][1],l=hh(v2(0,a)[4],k);a[2][1]=l;var +n=[0,v2(0,a)];a[4][1]=n;var +b=a[26][1];return b[2]?(b[1]=b[2],b[2]=0,0):(aEK(b),b[1]=0,0)},iA=function(a,b){var +c=n(Z8,J(a),b);if(c)aA(a);return c},jM=function(a,b){a[24][1]=[0,b,a[24][1]];var +c=A7(a),d=E2(a[25][1],c);a[26][1]=d;return 0},j8=function(a){var +b=a[24][1],c=b?b[2]:X(cEv);a[24][1]=c;var +d=A7(a),e=E2(a[25][1],d);a[26][1]=e;return 0},fq=function(a){var +b=fB(a);if(9===J(a)&&E7(1,a)){var +c=ab(a),d=v2(1,a)[4],e=V(c,m(qv(function(a){return a[1][2][1]<=b[3][1]?1:0}),d));E3(a,[0,b[3][1]+1|0,0]);return e}var +f=ab(a);E3(a,b[3]);return f},v5=function(a){var +b=a[4][1];if(!b)return 0;var +c=b[1][2],d=ab(a),e=m(qv(function(a){return a[1][2][1]<=c[3][1]?1:0}),d);E3(a,[0,c[3][1]+1|0,0]);return e},ur=function(a,b){return i4([0,_a(cEy,b)],a)},Q=function(a,b){if(1-n(Z8,J(a),b))ur(a,b);return aA(a)},aE0=function(a,b){var +c=iA(a,b);if(1-c)ur(a,b);return c},MS=function(a,b){aE0(a,b);return 0},us=function(a,b){var +c=J(a),d=0;if(typeof +c!=="number"&&4===c[0]&&af(c[3],b))d=1;if(!d)i4([0,m(k(cEz),b)],a);return aA(a)},tf=[fy,cEA,ge(0)],aE1=function(a,b,c){if(!c)return 0;var +e=c[1],f=e[1],h=e[2];b[27][1]=[0,f];if(!a)return a;var +d=h[2];for(;;){if(!d)return 0;var +g=d[2];m(f,d[1]);var +d=g}},_r=function(a,b){var +d=a[27][1];if(d){var +f=d[1],e=VK(0),h=[0,function(a){return Ei(a,e)}];a[27][1]=h;var +c=[0,[0,f,e]]}else +var +c=0;var +i=a[31][1],j=a[25][1],k=a[24][1],l=a[4][1],n=a[2][1],o=a[1][1];try{var +s=m(b,a);aE1(1,a,c);var +r=[0,s];return r}catch(f){var +g=fk(f);if(g!==tf)throw B(g,0);aE1(0,a,c);a[1][1]=o;a[2][1]=n;a[4][1]=l;a[24][1]=k;a[25][1]=j;a[31][1]=i;var +p=A7(a),q=E2(a[25][1],p);a[26][1]=q;return 0}},MT=function(a,b,c){var +d=_r(a,c);return d?d[1]:b},E9=function(a,b){var +c=U(b);if(!c)return b;var +d=c[1],f=c[2],e=m(a,d);return d===e?b:U([0,e,f])},aE3=gP(cEE,function(f){var +i=fK(f,cEG),a=fR(f,cED),j=a[24],g=a[28],d=a[41],k=a[91],c=a[lE],e=a[qb],l=a[vc],o=a[wZ],p=a[zI],h=a[sP],q=a[6],b=a[7],r=a[10],s=a[17],t=a[23],u=a[29],v=a[39],w=a[42],x=a[52],y=a[61],z=a[hq],A=a[hr],B=a[jY],C=a[kv],D=a[k8],E=a[ks],F=a[lK],G=a[qf],H=a[lC],I=a[k9],J=a[kc],K=a[lc],L=a[oA],M=a[pR],N=a[l_],P=a[q5],Q=a[xq],R=a[wQ],S=a[O],T=a[qm],U=a[ld],V=a[tH],W=a[zq],X=a[vk],Y=a[vu],Z=a[zN],_=a[DK],$=a[C0],aa=a[w2],ab=a[sT],ac=fG(f,0,0,aE2,vV,1)[1];function +ad(a,b,c){var +f=c[2],d=f[2],g=f[1],h=c[1];if(d){var +i=d[1],j=function(a){return[0,h,[0,g,[0,a]]]};return aw(m(a[1][1+e],a),i,c,j)}function +k(a){return[0,h,[0,a,d]]}return aw(n(a[1][1+q],a,b),g,c,k)}function +ae(a,b,c){var +k=c[2],e=c[1],f=e[3],h=e[2],o=e[1];if(f)var +j=E9(m(a[1][1+g],a),f),i=h;else +var +j=0,i=n(a[1][1+g],a,h);var +l=n(a[1][1+d],a,k);if(h===i&&f===j&&k===l)return c;return[0,[0,o,i,j],l]}function +af(a,b){var +c=b[2],e=c[2],f=c[1],g=b[1];function +h(a){return[0,g,[0,f,a]]}return aw(m(a[1][1+d],a),e,b,h)}function +ag(a,b,c){var +e=c[3];function +f(a){return[0,c[1],c[2],a]}return aw(m(a[1][1+d],a),e,c,f)}function +ah(a,b){var +c=b[2];function +e(a){return[0,b[1],a]}return aw(m(a[1][1+d],a),c,b,e)}function +ai(a,b,c){var +e=c[3];function +f(a){return[0,c[1],c[2],a]}return aw(m(a[1][1+d],a),e,c,f)}function +aj(a,b,c){var +f=c[2],g=c[1],h=E9(m(a[1][1+e],a),g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,h,i]}function +ak(a,b){var +c=b[2],e=c[2],f=c[1],g=b[1];function +h(a){return[0,g,[0,f,a]]}return aw(m(a[1][1+d],a),e,b,h)}function +al(a,b,c){var +e=c[4];function +f(a){return[0,c[1],c[2],c[3],a]}return aw(m(a[1][1+d],a),e,c,f)}function +am(a,b,c){var +e=c[2];function +f(a){return[0,c[1],a]}return aw(m(a[1][1+d],a),e,c,f)}function +an(a,b,c){var +e=c[3],f=c[2],g=n(a[1][1+B],a,f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,c[1],g,h]}function +ao(a,b,c){var +g=c[4],i=c[3],j=c[2],k=c[1],f=n(a[1][1+d],a,g);if(i){var +l=a3(m(a[1][1+h],a),i);if(i===l&&g===f)return c;return[0,c[1],c[2],l,f]}if(j){var +o=a3(m(a[1][1+p],a),j);if(j===o&&g===f)return c;return[0,c[1],o,c[3],f]}var +q=n(a[1][1+e],a,k);if(k===q&&g===f)return c;return[0,q,c[2],c[3],f]}function +ap(a,b,c){var +f=c[4],g=c[3],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,c[1],c[2],h,i]}function +aq(a,b,c){var +e=c[4];function +f(a){return[0,c[1],c[2],c[3],a]}return aw(m(a[1][1+d],a),e,c,f)}function +ar(a,b,c){var +e=c[4];function +f(a){return[0,c[1],c[2],c[3],a]}return aw(m(a[1][1+d],a),e,c,f)}function +as(a,b,c){var +k=c[2],e=c[1],f=e[3],h=e[2],o=e[1];if(f)var +j=E9(m(a[1][1+g],a),f),i=h;else +var +j=0,i=n(a[1][1+g],a,h);var +l=n(a[1][1+d],a,k);if(h===i&&f===j&&k===l)return c;return[0,[0,o,i,j],l]}function +at(a,b,c){var +e=c[3],f=c[1],g=ib(m(a[1][1+k],a),f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,g,c[2],h]}function +au(a,b,c){var +e=c[2];function +f(a){return[0,c[1],a]}return aw(m(a[1][1+d],a),e,c,f)}function +av(a,b){if(0===b[0]){var +h=b[1],i=function(a){return[0,a]};return aw(m(a[1][1+c],a),h,b,i)}var +d=b[1],e=d[2],f=e[2],j=d[1],g=n(a[1][1+c],a,f);return f===g?b:[1,[0,j,[0,e[1],g]]]}function +ax(a,b,c){var +e=c[4],f=c[3],g=n(a[1][1+K],a,f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,c[1],c[2],g,h]}function +ay(a,b){var +c=b[2],e=b[1],f=c[4];function +g(a){return[0,e,[0,c[1],c[2],c[3],a]]}return aw(m(a[1][1+d],a),f,[0,e,c],g)}function +az(a,b,c){var +e=c[9],f=c[3],g=n(a[1][1+N],a,f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,c[1],c[2],g,c[4],c[5],c[6],c[7],c[8],h,c[10]]}function +aA(a,b,c){var +f=c[4],g=c[3],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,c[1],c[2],h,i]}function +aB(a,b){var +c=b[2],e=c[2],f=c[1],g=b[1];function +h(a){return[0,g,[0,f,a]]}return aw(m(a[1][1+d],a),e,b,h)}function +aC(a,b){var +c=b[2],e=b[1],f=c[3];function +g(a){return[0,e,[0,c[1],c[2],a]]}return aw(m(a[1][1+d],a),f,[0,e,c],g)}function +aD(a,b,c){var +e=c[6],f=c[5],g=n(a[1][1+U],a,f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,c[1],c[2],c[3],c[4],g,h,c[7]]}function +aE(a,b){var +e=b[2],d=e[2],f=e[1],g=b[1];if(0===d){var +h=function(a){return[0,g,[0,a,d]]};return aw(m(a[1][1+c],a),f,b,h)}function +i(a){return[0,g,[0,f,a]]}var +k=m(a[1][1+j],a);return aw(function(a){return a3(k,a)},d,b,i)}function +aF(a,b){var +c=b[2],d=c[2],e=c[1],f=b[1];function +g(a){return[0,f,[0,a,d]]}var +h=m(a[1][1+l],a);return aw(function(a){return E9(h,a)},e,b,g)}function +aG(a,b,c){var +d=c[2],f=c[1];if(0===d){var +g=function(a){return[0,a,c[2],c[3]]};return aw(m(a[1][1+e],a),f,c,g)}function +h(a){return[0,c[1],a,c[3]]}var +i=m(a[1][1+j],a);return aw(function(a){return a3(i,a)},d,c,h)}function +aH(a,b){var +c=b[2],e=c[2],f=c[1],g=b[1];function +h(a){return[0,g,[0,f,a]]}return aw(m(a[1][1+d],a),e,b,h)}function +aI(a,b,c){var +e=c[7],f=c[2],g=n(a[1][1+o],a,f),h=n(a[1][1+d],a,e);if(f===g&&e===h)return c;return[0,c[1],g,c[3],c[4],c[5],c[6],h]}function +aJ(a,b){var +c=b[2],e=c[2],f=c[1],g=b[1];function +h(a){return[0,g,[0,f,a]]}return aw(m(a[1][1+d],a),e,b,h)}function +aK(a,b){var +c=b[2],e=c[2],f=c[1],g=b[1];function +h(a){return[0,g,[0,f,a]]}return aw(m(a[1][1+d],a),e,b,h)}function +aL(a,b,c){var +e=c[4],f=c[3],g=n(a[1][1+h],a,f),i=n(a[1][1+d],a,e);if(f===g&&e===i)return c;return[0,c[1],c[2],g,i]}function +aM(a,b,c){var +e=c[2];function +f(a){return[0,c[1],a]}return aw(m(a[1][1+d],a),e,c,f)}function +aN(a,b,c){var +f=c[4],g=c[3],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,c[1],c[2],h,i]}function +aO(a,b,c){var +f=c[4],g=c[3],h=n(a[1][1+e],a,g),i=n(a[1][1+d],a,f);if(g===h&&f===i)return c;return[0,c[1],c[2],h,i]}function +aP(a,b){var +c=b[2];function +e(a){return[0,b[1],a]}return aw(m(a[1][1+d],a),c,b,e)}function +aQ(a,b,c){var +e=c[2];function +f(a){return[0,c[1],a]}return aw(m(a[1][1+d],a),e,c,f)}fC(f,[0,w,function(d,b){var +a=b[2],c=m(qv(function(a){return kW(a[1][2],d[1+i])<0?1:0}),a),e=fA(c);return fA(a)===e?b:[0,b[1],c,b[3]]},ab,aQ,aa,aP,$,aO,_,aN,Z,aM,Y,aL,h,aK,p,aJ,X,aI,o,aH,W,aG,V,aF,l,aE,T,aD,S,aC,R,aB,Q,aA,P,az,M,ay,L,ax,J,av,I,au,H,at,G,as,F,ar,E,aq,D,ap,A,ao,C,an,z,am,k,al,y,ak,x,aj,v,ai,u,ah,t,ag,s,af,r,ae,b,ad]);return function(a,b,c){var +d=fp(b,f);d[1+i]=c;m(ac,d);return fH(b,d,f)}}),MU=function(a){var +b=A8(a);if(b)var +d=b[1],e=aEV(a)?(E3(a,d[3]),[0,n(aE3[1],0,d[3])]):0,c=e;else +var +c=0;return[0,0,function(a,b){return c?n(b,c[1],a):a}]},E_=function(a){var +d=A8(a);if(d){var +e=d[1];if(aEV(a)){E3(a,e[3]);var +f=v5(a),c=[0,n(aE3[1],0,[0,e[3][1]+1|0,0])],b=f}else +var +c=0,b=v5(a)}else +var +c=0,b=0;return[0,b,function(a,b){return c?n(b,c[1],a):a}]},jo=function(a){return lX(a)?E_(a):MU(a)},r8=function(a,b){var +c=jo(a)[2];return n(c,b,function(a,b){return n(D(a,CJ,2),a,b)})},ms=function(a,b){if(!b)return 0;var +c=b[1],d=jo(a)[2];return[0,n(d,c,function(a,b){return n(D(a,u9,5),a,b)})]},_s=function(a,b){var +c=jo(a)[2];return n(c,b,function(a,b){return n(D(a,akB,8),a,b)})},A$=function(a,b){var +c=jo(a)[2];return n(c,b,function(a,b){return n(D(a,aXp,9),a,b)})},E$=function(a,b){var +c=jo(a)[2];return n(c,b,function(a,b){return n(D(a,Am,10),a,b)})},aE4=function(a,b){if(!b)return 0;var +c=b[1],d=jo(a)[2];return[0,n(d,c,function(a,b){return n(D(a,DU,13),a,b)})]},r9=function(a,b){var +c=jo(a)[2];return n(c,b,function(a,b){return n(D(a,aVt,14),a,b)})},aE5=function(a,b){var +c=jo(a)[2];return n(c,b,function(a,b){var +c=m(D(a,Ho,16),a);return E9(function(a){return ib(c,a)},b)})},aE6=function(a,b){var +c=jo(a)[2];return n(c,b,function(a,b){return n(D(a,alN,17),a,b)})},cEH=function(a,b){var +c=a[2],R=a[1];function +e(a){return lq(a,b)}switch(c[0]){case +0:var +M=c[1],S=Z5(M[2],b),d=[0,[0,M[1],S]];break;case +1:var +N=c[1],T=e(N[2]),d=[1,[0,N[1],T]];break;case +2:var +g=c[1],U=e(g[7]),d=[2,[0,g[1],g[2],g[3],g[4],g[5],g[6],U]];break;case +3:var +h=c[1],V=h[7],W=e(h[6]),d=[3,[0,h[1],h[2],h[3],h[4],h[5],W,V]];break;case +4:var +O=c[1],X=e(O[2]),d=[4,[0,O[1],X]];break;case +5:var +d=[5,[0,e(c[1][1])]];break;case +6:var +i=c[1],Y=e(i[7]),d=[6,[0,i[1],i[2],i[3],i[4],i[5],i[6],Y]];break;case +7:var +j=c[1],Z=e(j[5]),d=[7,[0,j[1],j[2],j[3],j[4],Z]];break;case +8:var +C=c[1],_=e(C[3]),d=[8,[0,C[1],C[2],_]];break;case +9:var +k=c[1],$=e(k[5]),d=[9,[0,k[1],k[2],k[3],k[4],$]];break;case +10:var +u=c[1],aa=e(u[4]),d=[10,[0,u[1],u[2],u[3],aa]];break;case +11:var +l=c[1],ab=e(l[5]),d=[11,[0,l[1],l[2],l[3],l[4],ab]];break;case +12:var +v=c[1],ac=e(v[4]),d=[12,[0,v[1],v[2],v[3],ac]];break;case +13:var +P=c[1],ad=e(P[2]),d=[13,[0,P[1],ad]];break;case +14:var +w=c[1],ae=e(w[4]),d=[14,[0,w[1],w[2],w[3],ae]];break;case +15:var +m=c[1],af=e(m[5]),d=[15,[0,m[1],m[2],m[3],m[4],af]];break;case +16:var +x=c[1],ag=e(x[4]),d=[16,[0,x[1],x[2],x[3],ag]];break;case +17:var +D=c[1],ah=e(D[3]),d=[17,[0,D[1],D[2],ah]];break;case +18:var +d=[18,[0,e(c[1][1])]];break;case +19:var +E=c[1],ai=e(E[3]),d=[19,[0,E[1],E[2],ai]];break;case +20:var +F=c[1],aj=e(F[3]),d=[20,[0,F[1],F[2],aj]];break;case +21:var +n=c[1],ak=e(n[5]),d=[21,[0,n[1],n[2],n[3],n[4],ak]];break;case +22:var +G=c[1],al=e(G[3]),d=[22,[0,G[1],G[2],al]];break;case +23:var +o=c[1],am=e(o[5]),d=[23,[0,o[1],o[2],o[3],o[4],am]];break;case +24:var +p=c[1],an=e(p[5]),d=[24,[0,p[1],p[2],p[3],p[4],an]];break;case +25:var +q=c[1],ao=e(q[5]),d=[25,[0,q[1],q[2],q[3],q[4],ao]];break;case +26:var +f=c[1],ap=f[10],aq=e(f[9]),d=[26,[0,f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],aq,ap]];break;case +27:var +y=c[1],ar=e(y[4]),d=[27,[0,y[1],y[2],y[3],ar]];break;case +28:var +r=c[1],as=e(r[5]),d=[28,[0,r[1],r[2],r[3],r[4],as]];break;case +29:var +s=c[1],at=e(s[5]),d=[29,[0,s[1],s[2],s[3],s[4],at]];break;case +30:var +H=c[1],au=e(H[3]),d=[30,[0,H[1],H[2],au]];break;case +31:var +I=c[1],av=I[3],aw=e(I[2]),d=[31,[0,I[1],aw,av]];break;case +32:var +z=c[1],ax=z[4],ay=e(z[3]),d=[32,[0,z[1],z[2],ay,ax]];break;case +33:var +Q=c[1],az=e(Q[2]),d=[33,[0,Q[1],az]];break;case +34:var +A=c[1],aA=e(A[4]),d=[34,[0,A[1],A[2],A[3],aA]];break;case +35:var +B=c[1],aB=e(B[4]),d=[35,[0,B[1],B[2],B[3],aB]];break;case +36:var +t=c[1],aC=e(t[5]),d=[36,[0,t[1],t[2],t[3],t[4],aC]];break;case +37:var +J=c[1],aD=e(J[3]),d=[37,[0,J[1],J[2],aD]];break;case +38:var +K=c[1],aE=e(K[3]),d=[38,[0,K[1],K[2],aE]];break;default:var +L=c[1],aF=e(L[3]),d=[39,[0,L[1],L[2],aF]]}return[0,R,d]};gP(cEF,function(d){var +h=fK(d,cEI),a=kC(d,cEC,cEB),g=a[4],i=a[5],j=a[xa],c=a[vc],e=a[Dp],f=a[zw],b=a[44],k=a[lf],l=a[zK],o=fG(d,0,0,aE2,vV,1)[1];function +p(a,b,c){n(a[1][1+j],a,c[2]);return c}function +q(a,b){n(a[1][1+c],a,b);return b}function +r(a,b){var +c=b[1],d=a[1+f];if(d){var +e=kW(d[1][1][2],c[2])<0?1:0,i=e?(a[1+f]=[0,b],0):e;return i}var +g=0<=kW(c[2],a[1+h][3])?1:0,j=g?(a[1+f]=[0,b],0):g;return j}function +s(a,b){var +c=b[1],d=a[1+e];if(d){var +f=kW(c[2],d[1][1][2])<0?1:0,i=f?(a[1+e]=[0,b],0):f;return i}var +g=kW(c[2],a[1+h][2])<0?1:0,j=g?(a[1+e]=[0,b],0):g;return j}function +t(a,b){return b?n(a[1][1+c],a,b[1]):0}function +u(a,b){var +c=b[2],d=b[1];fo(m(a[1][1+i],a),d);return fo(m(a[1][1+g],a),c)}fC(d,[0,k,function(a){return[0,a[1+e],a[1+f]]},c,u,j,t,i,s,g,r,b,q,l,p]);return function(a,b,c){var +g=fp(b,d);g[1+h]=c;m(o,g);g[1+e]=0;g[1+f]=0;return fH(b,g,d)}});var +aE7=function(a){var +c=J(a),d=0;if(typeof +c==="number"){var +e=c;if(49<=e)switch(e){case +49:var +b=cFh;break;case +50:var +b=cFi;break;case +51:var +b=cFj;break;case +52:var +b=cFk;break;case +53:var +b=cFl;break;case +54:var +b=cFm;break;case +55:var +b=cFn;break;case +56:var +b=cFo;break;case +57:var +b=cFp;break;case +58:var +b=cFq;break;case +59:var +b=cFr;break;case +60:var +b=cFs;break;case +61:var +b=cFt;break;case +62:var +b=cFu;break;case +63:var +b=cFv;break;case +64:var +b=cFw;break;case +65:var +b=cFx;break;case +114:var +b=cFy;break;case +115:var +b=cFz;break;case +116:var +b=cFA;break;case +117:var +b=cFB;break;case +118:var +b=cFC;break;case +119:var +b=cFD;break;case +120:var +b=cFE;break;case +121:var +b=cFF;break;case +122:var +b=cFG;break;case +123:var +b=cFH;break;case +124:var +b=cFI;break;case +125:var +b=cFJ;break;case +126:var +b=cFK;break;case +128:var +b=cFL;break;case +129:var +b=cFM;break;default:d=1}else +switch(e){case +15:var +b=cEL;break;case +16:var +b=cEM;break;case +17:var +b=cEN;break;case +18:var +b=cEO;break;case +19:var +b=cEP;break;case +20:var +b=cEQ;break;case +21:var +b=cER;break;case +22:var +b=cES;break;case +23:var +b=cET;break;case +24:var +b=cEU;break;case +25:var +b=cEV;break;case +26:var +b=cEW;break;case +27:var +b=cEX;break;case +28:var +b=cEY;break;case +29:var +b=cEZ;break;case +30:var +b=cE0;break;case +31:var +b=cE1;break;case +32:var +b=cE2;break;case +33:var +b=cE3;break;case +34:var +b=cE4;break;case +35:var +b=cE5;break;case +36:var +b=cE6;break;case +37:var +b=cE7;break;case +38:var +b=cE8;break;case +39:var +b=cE9;break;case +40:var +b=cE_;break;case +41:var +b=cE$;break;case +42:var +b=cFa;break;case +43:var +b=cFb;break;case +44:var +b=cFc;break;case +45:var +b=cFd;break;case +46:var +b=cFe;break;case +47:var +b=cFf;break;case +48:var +b=cFg;break;default:d=1}}else +switch(c[0]){case +4:var +b=c[2];break;case +11:var +f=c[1]?cFN:cFO,b=f;break;default:d=1}if(d){i4(cEJ,a);var +b=cEK}aA(a);return b},k0=function(a){var +b=fB(a),c=ab(a),d=aE7(a);return[0,b,[0,d,$([0,c],[0,fq(a)],0)]]},aE8=function(a){var +c=fB(a),h=ab(a);Q(a,14);var +d=fB(a),i=aE7(a),j=$([0,h],[0,fq(a)],0),e=h4(c,d),f=d[2],g=c[3],b=g[1]===f[1]?1:0,k=b?g[2]===f[2]?1:0:b;if(1-k)fc(a,[0,e,jx]);return[0,e,[0,i,j]]},cFP=function(a){var +b=a[2];if(2===b[1][2][0]&&!b[2])return 1;return 0},x9=function(a){var +b=a[2],c=0===b[3]?1:0,d=b[2];return c?xG(cFP,d):c},Fa=function(a){var +b=a;for(;;){var +c=b[2];if(30!==c[0])return 0;var +d=c[1][2];if(26===d[2][0])return 1;var +b=d}},MV=function(a,b,c){var +d=c[2][1],e=c[1];if(!q(d,tF)){var +f=b[19];return f?fc(b,[0,e,6]):f}if(q(d,z_)){if(!q(d,aH))return b[18]?fc(b,[0,e,hZ]):qF(b,[0,e,85])}else if(b[14])return fc(b,[0,e,[24,Mn(d)]]);if(A9(d))return qF(b,[0,e,85]);if(MP(d))return fc(b,[0,e,hZ]);if(a){var +g=a[1];if(x7(d))return qF(b,[0,e,g])}return 0},W=function(a,b,c){var +d=a?a[1]:fB(c),f=m(b,c),e=A8(c),g=e?h4(d,e[1]):d;return[0,g,f]},MW=function(a,b,c){var +d=W(a,b,c),e=d[2];return[0,[0,d[1],e[1]],e[2]]},MX=function(a){jM(a,0);var +c=J(a);j8(a);var +b=gQ(1,a),d=0;if(typeof +c==="number"){if(21===c)d=1}else if(4===c[0])if(q(c[3],Dk))d=1;else{var +f=0;if(typeof +b==="number"){if(21===b)f=1}else if(4===b[0])f=1;d=f?2:1}var +e=0;switch(d){case +1:if(typeof +b==="number"){if(gO===b)e=1}else if(4===b[0]&&!q(b[3],CH))e=1;break;case +0:break;default:e=1}return e?1:0},cGk=function(a){switch(a){case +0:return 1;case +1:return 2;case +2:return 3;case +3:return 4;case +4:return 1;case +5:return 1;case +6:return 1;default:return 3}},cGl=function(a){switch(a){case +3:return 2;case +4:return 1;case +5:return 1;case +6:return 1;case +7:return 1;default:return 1}},cGm=function(a,b,c){if(c){var +d=c[1],g=0;if(8232===d||ku===d)g=1;else +var +e=10===d?6:13===d?5:Dt<=d?3:ala<=d?2:gO<=d?1:0;if(g)var +e=7;var +f=e}else +var +f=4;return[0,f,a]},aFC=function(a,b){var +o=[0,6,aws(0,0,cGm,0,b)],j=a?cGl:cGk,d=cGn,c=U(o);for(;;){var +f=d[3],h=d[2],e=d[1];if(!c)return vH(U(f));var +g=c[1];if(5===g){var +i=c[2];if(i&&6===i[1]){var +k=i[2],d=[0,e+2|0,0,[0,vH(U([0,e,h])),f]],c=k;continue}}else if(6>g){var +n=c[2],d=[0,e+j(g)|0,[0,e,h],f],c=n;continue}var +l=c[2],m=[0,vH(U([0,e,h])),f],d=[0,e+j(g)|0,0,m],c=l}},aFD=[fy,cGo,ge(0)],aFE=function(a,b,c,d){try{var +f=fD(a,b)[1+b];return f}catch(f){var +e=fk(f);if(e[1]===vB)throw B([0,aFD,c,l(k(cGp),d,b,a.length-1)],1);throw B(e,0)}},Ff=function(a,b){if(0===b[1]&&0===b[2])return 0;var +c=aFE(a,b[1]-1|0,b,cGq);return aFE(c,b[2],b,cGr)},aFF=function(h){var +aw=[0,cGJ,kZ[1],0,0];function +d(a){var +b=J(a);if(typeof +b==="number"){var +c=0;if(8<=b){if(10>b)c=1}else if(1===b)c=1;if(c)return 1}return 0}function +e(a){var +c=fB(a),e=ab(a),b=J(a);if(typeof +b==="number")switch(b){case +30:case +31:aA(a);var +k=fq(a);return d(a)?[1,c,[0,31===b?1:0,$([0,e],[0,k],0)]]:[0,c]}else +switch(b[0]){case +0:var +g=b[2],m=l(h[24],a,b[1],g),n=fq(a);return d(a)?[2,c,[0,m,g,$([0,e],[0,n],0)]]:[0,c];case +1:var +i=b[2],o=l(h[26],a,b[1],i),p=fq(a);return d(a)?[4,c,[0,o,i,$([0,e],[0,p],0)]]:[0,c];case +2:var +f=b[1],j=f[1],q=f[3],r=f[2];if(f[4])rn(a,81);aA(a);var +s=fq(a);return d(a)?[3,j,[0,r,q,$([0,e],[0,s],0)]]:[0,j]}aA(a);return[0,c]}function +ax(a){var +f=k0(a),b=J(a),d=0;if(typeof +b==="number")if(82===b){Q(a,82);var +c=e(a)}else if(86===b){f4(a,[8,f[2][1]]);Q(a,86);var +c=e(a)}else +d=1;else +d=1;if(d)var +c=0;return[0,f,c]}var +ay=0;function +ai(h,b,c,d,e,f,g){var +a=fA(e),i=fA(f);function +j(a){return[2,[0,[0,f],c,d,g]]}function +k(a){return[2,[0,[1,e],c,d,g]]}return 0===a?j(0):0===i?k(0):a>>0){if(hy>=z+1>>>0){var +j=b[3],aF=b[4],s=U(b[1][5]),aG=U(b[1][4]),B=U(b[1][3]),C=U(b[1][2]),D=U(b[1][1]),aJ=V(aF,ab(c));Q(c,1);var +G=J(c),M=0;if(typeof +G==="number"){var +an=0;if(1===G||gt===G)an=1;else +M=1;if(an)var +aj=fq(c)}else +M=1;if(M)var +aj=lX(c)?v5(c):0;var +k=jL([0,aI],[0,aj],aJ,0);if(i){switch(i[1]){case +0:var +u=[0,[0,D,1,j,k]];break;case +1:var +u=[1,[0,C,1,j,k]];break;case +2:var +u=ai(c,d,1,j,B,s,k);break;case +3:var +u=[3,[0,s,j,k]];break;default:var +u=[4,[0,aG,1,j,k]]}var +ak=u}else{var +H=fA(D),I=fA(C),K=fA(B),L=fA(s),al=function(a){return[2,[0,cGQ,0,j,k]]},ao=0;if(0===H&&0===I){var +ap=0;if(0===K&&0===L)var +v=al(0);else +ap=1;if(ap)var +v=ai(c,d,0,j,B,s,k)}else +ao=1;if(ao){var +aq=0;if(0===I&&0===K&&L<=H){fo(function(a){return fc(c,[0,a[1],[3,d,a[2][1][2][1]]])},s);var +v=[0,[0,D,0,j,k]];aq=1}if(!aq){var +ar=0;if(0===H&&0===K&&L<=I){fo(function(a){return fc(c,[0,a[1],[11,d,a[2][1][2][1]]])},s);var +v=[1,[0,C,0,j,k]];ar=1}if(!ar){fc(c,[0,aK,[5,d]]);var +v=al(0)}}}var +ak=v}return ak}}else if(10===z){var +ae=fB(c),aH=ab(c);aA(c);var +ag=J(c),as=0;if(typeof +ag==="number"){var +E=ag-2|0,N=0;if(hr>>0){if(hy>=E+1>>>0)N=1}else if(7===E){Q(c,9);var +F=J(c),at=0;if(typeof +F==="number"){var +au=0;if(1===F||gt===F)au=1;if(au){var +ah=1;at=1}}if(!at)var +ah=0;fc(c,[0,ae,[6,ah]]);N=1}if(N)as=1}if(!as)fc(c,[0,ae,cGK]);var +b=[0,b[1],b[2],1,aH];continue}}var +S=b[2],a=b[1],am=W(ay,ax,c),T=am[2],e=T[2],m=T[1],l=am[1],f=m[2][1],X=m[1];if(af(f,g))var +h=b;else{var +Y=fl(f,0),R=97<=Y?1:0,az=R?Y<=gN?1:0:R;if(az)fc(c,[0,X,[10,d,f]]);if(n(kZ[3],f,S))fc(c,[0,X,[4,d,f]]);var +p=b[4],q=b[3],r=n(kZ[4],f,S),w=[0,b[1],r,q,p],x=function(e){return function(a,b){if(i&&i[1]!==a)return fc(c,[0,b,[9,d,i,e]]);return 0}}(f);if(typeof +e==="number"){var +O=0;if(i)switch(i[1]){case +0:fc(c,[0,l,[3,d,f]]);var +h=w;break;case +1:fc(c,[0,l,[11,d,f]]);var +h=w;break;case +4:fc(c,[0,l,[2,d,f]]);var +h=w;break;default:O=1}else +O=1;if(O)var +h=[0,[0,a[1],a[2],a[3],a[4],[0,[0,l,[0,m]],a[5]]],r,q,p]}else +switch(e[0]){case +0:fc(c,[0,e[1],[9,d,i,f]]);var +h=w;break;case +1:var +Z=e[1],aB=e[2];x(0,Z);var +h=[0,[0,[0,[0,l,[0,m,[0,Z,aB]]],a[1]],a[2],a[3],a[4],a[5]],r,q,p];break;case +2:var +_=e[1],aC=e[2];x(1,_);var +h=[0,[0,a[1],[0,[0,l,[0,m,[0,_,aC]]],a[2]],a[3],a[4],a[5]],r,q,p];break;case +3:var +$=e[1],aD=e[2];x(2,$);var +h=[0,[0,a[1],a[2],[0,[0,l,[0,m,[0,$,aD]]],a[3]],a[4],a[5]],r,q,p];break;default:var +aa=e[1],aE=e[2];x(4,aa);var +h=[0,[0,a[1],a[2],a[3],[0,[0,l,[0,m,[0,aa,aE]]],a[4]],a[5]],r,q,p]}}var +ad=J(c),av=0;if(typeof +ad==="number"){var +A=ad-2|0,P=0;if(hr>>0){if(hy>=A+1>>>0)P=1}else if(6===A){f4(c,22);Q(c,8);P=1}if(P)av=1}if(!av)Q(c,9);var +b=h}},b);return[0,c,i,$([0,f],0,0)]}]},Ng=uh([0,VC]),Bg=function(a){return[0,uq(a)]},$s=h$([0,function(a,b){var +d=b[2],e=a[2],c=pt(a[1],b[1]);return 0===c?n(aD5,e,d):c}]),Ft=function(a,b,c){var +d=c[2][1],e=c[1];return af(d,g)?b:n(kZ[3],d,b)?(fc(a,[0,e,[0,d]]),b):n(kZ[4],d,b)},$t=function(c){return function(a){var +b=a[2];switch(b[0]){case +0:var +d=b[1][1];return M(function(a,b){var +c=0===b[0]?b[1][2][2]:b[1][2][1];return m($t(a),c)},c,d);case +1:var +e=b[1][1];return M(function(a,b){if(2===b[0])return a;var +c=b[1][2][1];return m($t(a),c)},c,e);case +2:return[0,b[1][1],c];default:return X(cKd)}}},fm=hi(cKg,cKf),MY=function(a,b,c){var +l=a?a[1]:0,g=b?b[1]:0,d=fB(c),e=J(c);if(typeof +e==="number")switch(e){case +103:var +m=ab(c);aA(c);return[0,[0,d,[0,0,$([0,m],0,0)]]];case +104:var +n=ab(c);aA(c);return[0,[0,d,[0,1,$([0,n],0,0)]]];case +126:if(l){var +o=ab(c);aA(c);return[0,[0,d,[0,2,$([0,o],0,0)]]]}break}else if(4===e[0]){var +h=e[3];if(q(h,qV)){if(!q(h,UO)&&g&&MQ(1,c)){var +p=ab(c);aA(c);return[0,[0,d,[0,4,$([0,p],0,0)]]]}}else if(g&&MQ(1,c)){var +r=ab(c);aA(c);var +f=J(c),k=0;if(typeof +f!=="number"&&4===f[0]&&!q(f[3],UO)){var +s=fB(c);aA(c);var +j=h4(d,s),i=5;k=1}if(!k)var +j=d,i=3;return[0,[0,j,[0,i,$([0,r],0,0)]]]}}return 0},aE9=function(a,b,c,d,e){if(1===b)rn(e,81);var +f=ab(e);aA(e);var +g=fq(e);if(a)var +k=$([0,V(a[1],f)],[0,g],0),j=k,i=P(cFQ,d),h=-c;else +var +j=$([0,f],[0,g],0),i=d,h=c;return[30,[0,h,i,j]]},aE_=function(a,b,c,d){var +e=ab(d);aA(d);var +f=fq(d);if(a)var +j=$([0,V(a[1],e)],[0,f],0),k=P(cFR,c),i=j,h=k,g=vE(s0,b);else +var +i=$([0,e],[0,f],0),h=c,g=b;return[31,[0,g,h,i]]},h2=function +b(a){return b.fun(a)},Ba=function +b(a){return b.fun(a)},aE$=function +b(a){return b.fun(a)},aFa=function +b(a){return b.fun(a)},_t=function +d(a,b,c){return d.fun(a,b,c)},MZ=function +b(a){return b.fun(a)},_u=function +e(a,b,c,d){return e.fun(a,b,c,d)},_v=function +b(a){return b.fun(a)},_w=function +e(a,b,c,d){return e.fun(a,b,c,d)},_x=function +b(a){return b.fun(a)},_y=function +c(a,b){return c.fun(a,b)},M0=function +b(a){return b.fun(a)},aFb=function +b(a){return b.fun(a)},M1=function +e(a,b,c,d){return e.fun(a,b,c,d)},M2=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},aFc=function +b(a){return b.fun(a)},aFd=function +c(a,b){return c.fun(a,b)},_z=function +b(a){return b.fun(a)},aFe=function +b(a){return b.fun(a)},aFf=function +b(a){return b.fun(a)},aFg=function +b(a){return b.fun(a)},aFh=function +b(a){return b.fun(a)},_A=function +c(a,b){return c.fun(a,b)},aFi=function +b(a){return b.fun(a)},aFj=function +b(a){return b.fun(a)},_B=function +b(a){return b.fun(a)},Fb=function +c(a,b){return c.fun(a,b)},aFk=function +b(a){return b.fun(a)},ut=function +b(a){return b.fun(a)},M3=function +b(a){return b.fun(a)},aFl=function +c(a,b){return c.fun(a,b)},_C=function +b(a){return b.fun(a)},aFm=function +b(a){return b.fun(a)},aFn=function +b(a){return b.fun(a)},aFo=function +b(a){return b.fun(a)},aFp=function +b(a){return b.fun(a)},M4=function +e(a,b,c,d){return e.fun(a,b,c,d)},_D=function +b(a){return b.fun(a)},M5=function +b(a){return b.fun(a)},_E=function +c(a,b){return c.fun(a,b)},M6=function +e(a,b,c,d){return e.fun(a,b,c,d)},_F=function +b(a){return b.fun(a)},v6=function +b(a){return b.fun(a)},aFq=function +b(a){return b.fun(a)},x_=function +b(a){return b.fun(a)},M7=function +b(a){return b.fun(a)},M8=function +b(a){return b.fun(a)},_G=function +c(a,b){return c.fun(a,b)},aFr=function +c(a,b){return c.fun(a,b)},aFs=function +b(a){return b.fun(a)},aFt=function +b(a){return b.fun(a)},M9=function +b(a){return b.fun(a)},aFu=function +d(a,b,c){return d.fun(a,b,c)};h(h2,function(a){return m(aFa,a)});h(Ba,function(a){if(1-iX(a))f4(a,hb);return W(0,function(a){Q(a,86);return m(h2,a)},a)});h(aE$,function(a){if(1-iX(a))f4(a,hb);var +b=fB(a);Q(a,86);return MX(a)?[2,n(_E,a,b)]:[1,W([0,b],h2,a)]});h(aFa,function(a){var +c=fB(a),b=_k(0,a);return l(_t,b,c,m(MZ,b))});h(_t,function(a,b,c){var +d=J(a);if(typeof +d==="number"&&41===d)return W([0,b],function(a){Q(a,41);var +b=m(MZ,_k(1,a));MS(a,85);var +d=m(h2,a);MS(a,86);var +e=m(h2,a);return[17,[0,c,b,d,e,$(0,[0,fq(a)],0)]]},a);return c});h(MZ,function(a){var +c=fB(a);if(89===J(a)){var +d=ab(a);aA(a);var +b=d}else +var +b=0;return o(_u,a,[0,b],c,m(_v,a))});h(_u,function(a,b,c,d){var +h=b?b[1]:0;if(89!==J(a))return d;var +i=[0,d,0];return W([0,c],function(a){var +b=i;for(;;){if(iA(a,89)){var +b=[0,m(_v,a),b];continue}var +c=U(b);if(c){var +d=c[2];if(d){var +e=d[2],f=d[1],g=c[1];return[22,[0,[0,g,f,e],$([0,h],0,0)]]}}throw B([0,aL,cFS],1)}},a)});h(_v,function(a){var +c=fB(a);if(91===J(a)){var +d=ab(a);aA(a);var +b=d}else +var +b=0;return o(_w,a,[0,b],c,m(_x,a))});h(_w,function(a,b,c,d){var +h=b?b[1]:0;if(91!==J(a))return d;var +i=[0,d,0];return W([0,c],function(a){var +b=i;for(;;){if(iA(a,91)){var +b=[0,m(_x,a),b];continue}var +c=U(b);if(c){var +d=c[2];if(d){var +e=d[2],f=d[1],g=c[1];return[23,[0,[0,g,f,e],$([0,h],0,0)]]}}throw B([0,aL,cFT],1)}},a)});h(_x,function(a){return n(_y,a,m(M0,a))});h(_y,function(a,b){var +d=J(a);if(typeof +d==="number"&&11===d&&!a[15]){var +c=n(Fb,a,b);return o(M4,a,c[1],0,[0,c[1],[0,0,[0,c,0],0,0]])}return b});h(M0,function(a){var +b=J(a);if(typeof +b==="number"&&85===b)return W(0,function(a){var +b=ab(a);Q(a,85);var +c=$([0,b],0,0);return[11,[0,m(M0,a),c]]},a);return m(aFb,a)});h(aFb,function(a){var +b=fB(a);return o(M1,0,a,b,m(aFf,a))});h(M1,function(a,b,c,d){var +f=a?a[1]:0;if(lX(b))return d;var +e=J(b);if(typeof +e==="number"){if(6===e){aA(b);return p(M2,f,0,b,c,d)}if(10===e){var +g=gQ(1,b);if(typeof +g==="number"&&6===g){f4(b,cFU);Q(b,10);Q(b,6);return p(M2,f,0,b,c,d)}f4(b,cFV);return d}if(83===e){aA(b);if(6!==J(b))f4(b,46);Q(b,6);return p(M2,1,1,b,c,d)}}return d});h(M2,function(f,b,c,d,e){return o(M1,[0,f],c,d,W([0,d],function(a){if(!b&&iA(a,7))return[16,[0,e,$(0,[0,fq(a)],0)]];var +d=m(h2,a);Q(a,7);var +c=[0,e,d,$(0,[0,fq(a)],0)];return f?[21,[0,c,b]]:[20,c]},c))});h(aFc,function(a){return n(aFd,a,n(fm[13],0,a))});h(aFd,function(a,b){var +c=[0,b[1],[0,b]];for(;;){var +d=c[2],g=c[1];if(10===J(a)&&aEX(1,a)){var +e=W([0,g],function(b){return function(a){Q(a,10);return[0,b,k0(a)]}}(d),a),f=e[1],c=[0,f,[1,[0,f,e[2]]]];continue}return d}});h(_z,function(a){jM(a,0);if(4===J(a)){aA(a);var +c=m(_z,a);Q(a,5);var +b=c}else +var +b=te(a)?[0,m(aFc,a)]:(f4(a,51),0);j8(a);return b});h(aFe,function(a){return W(0,function(a){var +c=ab(a);Q(a,46);var +b=m(_z,a);if(!b)return cFW;var +d=b[1],e=lX(a)?0:m(M7,a);return[24,[0,d,e,$([0,c],0,0)]]},a)});h(aFf,function(a){var +d=fB(a),b=J(a),c=0;if(typeof +b==="number")switch(b){case +4:return m(aFo,a);case +6:return m(aFj,a);case +46:return m(aFe,a);case +53:return W(0,function(a){var +c=ab(a);aA(a);var +b=m(_F,a),d=b[2],e=b[1];return[15,[0,d,e,$([0,c],0,0)]]},a);case +98:return m(aFp,a);case +104:return W(0,aFg,a);case +106:var +k=ab(a);aA(a);return[0,d,[10,$([0,k],[0,fq(a)],0)]];case +125:return W(0,function(a){var +b=ab(a);aA(a);var +c=fq(a),d=m(h2,a);return[25,[0,d,$([0,b],[0,c],0)]]},a);case +126:return W(0,function(a){var +b=ab(a);aA(a);var +c=fq(a),d=m(h2,a);return[27,[0,d,$([0,b],[0,c],0)]]},a);case +127:return W(0,function(a){var +b=ab(a);aA(a);var +c=fq(a),d=W(0,function(a){var +b=m(v6,a);function +c(a){if(1-iA(a,41))throw B(tf,1);var +b=m(MZ,a);if(!a[16]&&85===J(a))throw B(tf,1);return[1,[0,b[1],b]]}return[0,b,MT(a,[0,fB(a)],c),1,0,0]},a);return[18,[0,d,$([0,b],[0,c],0)]]},a);case +0:case +2:var +f=o(M6,0,1,1,a);return[0,f[1],[14,f[2]]];case +130:case +131:c=2;break;case +41:case +42:c=1;break;case +30:case +31:var +j=ab(a);aA(a);return[0,d,[32,[0,31===b?1:0,$([0,j],[0,fq(a)],0)]]]}else +switch(b[0]){case +2:var +e=b[1],l=e[3],p=e[2],r=e[1];if(e[4])rn(a,81);var +s=ab(a);aA(a);return[0,r,[29,[0,p,l,$([0,s],[0,fq(a)],0)]]];case +4:var +i=b[3];if(q(i,r0))if(q(i,qW))c=1;else +c=2;else{if(a[28][1])return W(0,function(a){var +f=ab(a);us(a,cFZ);var +g=ms(a,m(x_,a)),b=m(_C,a);if(_q(a))var +d=_s(a,m(M9,a)),c=b;else +var +h=m(M9,a),e=jo(a)[2],d=h,c=n(e,b,function(a,b){return n(D(a,a0E,12),a,b)});return[13,[0,g,c,d,$([0,f],0,0)]]},a);c=1}break;case +7:if(!q(b[1],vs)){f4(a,89);return[0,d,cF0]}break;case +12:var +t=b[3],u=b[2],v=b[1],w=0;return W(0,function(a){return aE9(w,v,u,t,a)},a);case +13:var +x=b[3],y=b[2],z=0;return W(0,function(a){return aE_(z,y,x,a)},a)}switch(c){case +0:var +g=m(aFi,a);return g?[0,d,g[1]]:(i4(cFX,a),[0,d,cFY]);case +2:return W(0,function(a){return[26,m(_B,a)]},a);default:var +h=m(M8,a);return[0,h[1],[19,h[2]]]}});h(aFg,function(a){var +c=ab(a);aA(a);var +b=J(a);if(typeof +b!=="number")switch(b[0]){case +12:return aE9([0,c],b[1],b[2],b[3],a);case +13:return aE_([0,c],b[2],b[3],a)}i4(cF1,a);return cF2});h(aFh,function(a){var +b=0;if(typeof +a==="number")switch(a){case +29:case +114:case +115:case +116:case +117:case +118:case +119:case +120:case +121:case +122:case +123:case +124:b=1;break}else if(11===a[0])b=1;return b?1:0});h(_A,function(a,b){var +c=ab(a),d=W(0,aA,a)[1],e=$([0,c],[0,fq(a)],0);return[0,[19,[0,[0,rh(0,[0,d,b])],0,e]]]});h(aFi,function(a){var +b=ab(a),c=J(a);if(typeof +c==="number")switch(c){case +29:aA(a);return[0,[4,$([0,b],[0,fq(a)],0)]];case +114:aA(a);return[0,[0,$([0,b],[0,fq(a)],0)]];case +115:aA(a);return[0,[1,$([0,b],[0,fq(a)],0)]];case +116:aA(a);return[0,[2,$([0,b],[0,fq(a)],0)]];case +117:aA(a);return[0,[5,$([0,b],[0,fq(a)],0)]];case +118:aA(a);return[0,[6,$([0,b],[0,fq(a)],0)]];case +119:aA(a);return[0,[7,$([0,b],[0,fq(a)],0)]];case +120:aA(a);return[0,[3,$([0,b],[0,fq(a)],0)]];case +121:aA(a);return[0,[9,$([0,b],[0,fq(a)],0)]];case +122:aA(a);return[0,[33,$([0,b],[0,fq(a)],0)]];case +123:aA(a);return[0,[34,$([0,b],[0,fq(a)],0)]];case +124:aA(a);return[0,[35,$([0,b],[0,fq(a)],0)]];case +128:return n(_A,a,cF3);case +129:return n(_A,a,cF4)}else if(11===c[0]){var +d=c[1];aA(a);var +e=fq(a),f=d?IL:Dg;return[0,[8,f,$([0,b],[0,e],0)]]}return 0});h(aFj,function(a){return W(0,function(a){var +h=ab(a);Q(a,6);var +b=x6(0,a),c=0;for(;;){var +d=J(b);if(typeof +d==="number"){var +e=0;if(7!==d&>!==d)e=1;if(!e){var +f=U(c);Q(a,7);return[28,[0,f,$([0,h],[0,fq(a)],0)]]}}var +g=[0,W(0,function(a){if(!iA(a,12)){var +b=J(a),h=0;if(typeof +b==="number"&&(iU===b||iQ===b&&v3(1,a))){var +c=MY(0,0,a);h=1}if(!h)var +c=0;var +k=te(a),f=gQ(1,a);if(k&&typeof +f==="number"&&1>=f+u_>>>0){var +l=k0(a),n=iA(a,85);Q(a,86);return[1,[0,l,m(h2,a),c,n]]}if(kA(c))f4(a,50);return[0,m(h2,a)]}var +i=te(a),d=gQ(1,a),g=0;if(i&&typeof +d==="number"&&1>=d+u_>>>0){var +j=k0(a);if(85===J(a)){f4(a,49);aA(a)}Q(a,86);var +e=[0,j];g=1}if(!g)var +e=0;return[2,[0,e,m(h2,a)]]},b),c];if(7!==J(b))Q(b,9);var +c=g}},a)});h(_B,function(a){var +e=ab(a),b=J(a),d=0;if(typeof +b==="number")switch(b){case +130:var +c=1;break;case +131:var +c=2;break;default:d=1}else if(4===b[0]&&!q(b[3],qW))var +c=0;else +d=1;if(d)var +c=X(cF5);var +f=fB(a);aA(a);var +g=fq(a),h=m(M0,a);return[0,f,h,$([0,e],[0,g],0),c]});h(Fb,function(a,b){return[0,b[1],[0,0,b,0]]});h(aFk,function(a){return W(0,function(a){jM(a,0);var +b=n(fm[13],0,a);j8(a);if(1-iX(a))f4(a,hb);var +c=iA(a,85);Q(a,86);return[0,[0,b],m(h2,a),c]},a)});var +aFv=function(a){var +b=gQ(1,a);if(typeof +b==="number"&&1>=b+u_>>>0)return m(aFk,a);return n(Fb,a,m(h2,a))};h(ut,function(b){var +l=0;return function(a){var +e=l,d=a;for(;;){var +c=J(b);if(typeof +c==="number")switch(c){case +5:case +12:case +113:var +h=12===c?[0,W(0,function(a){var +b=ab(a);Q(a,12);var +c=$([0,b],0,0);return[0,aFv(a),c]},b)]:0;return[0,e,U(d),h,0]}else if(4===c[0]&&!q(c[3],f0)){var +f=0;if(86!==gQ(1,b)&&85!==gQ(1,b))f=1;if(!f){var +i=0!==e?1:0,j=i||(0!==d?1:0);if(j)f4(b,94);var +k=W(0,function(a){var +b=ab(a);aA(a);if(85===J(a))f4(a,93);var +c=$([0,b],0,0);return[0,m(Ba,a),c]},b);if(5!==J(b))Q(b,9);var +e=[0,k];continue}}var +g=[0,aFv(b),d];if(5!==J(b))Q(b,9);var +d=g}}});h(M3,function(a){return W(0,function(a){var +c=ab(a);Q(a,4);var +b=n(ut,a,0),d=ab(a);Q(a,5);var +e=jL([0,c],[0,fq(a)],d,0);return[0,b[1],b[2],b[3],e]},a)});h(aFl,function(a,b){var +c=b;for(;;){var +d=J(a);if(typeof +d==="number"){var +e=d-5|0,f=0;if(7>>0){if(i1===e)f=1}else if(5>>0)f=1;if(f){var +g=12===d?[0,W(0,function(a){var +f=ab(a);Q(a,12);var +b=gQ(1,a),e=0;if(typeof +b==="number")if(85===b){jM(a,0);var +g=n(fm[13],0,a);j8(a);Q(a,85);Q(a,86);var +d=1,c=[0,g]}else if(86===b){jM(a,0);var +i=n(fm[13],0,a);j8(a);Q(a,86);var +d=0,c=[0,i]}else +e=1;else +e=1;if(e)var +d=0,c=0;var +h=m(h2,a);return[0,c,h,d,$([0,f],0,0)]},a)]:0;return[0,U(c),g,0]}}var +h=[0,W(0,function(a){var +c=J(a),i=0;if(typeof +c!=="number"&&2===c[0]){var +b=c[1],d=b[4],e=b[3],f=b[2],g=b[1];if(d)rn(a,81);Q(a,[2,[0,g,f,e,d]]);var +h=[1,[0,g,[0,f,e,$(0,[0,fq(a)],0)]]];i=1}if(!i){jM(a,0);var +j=n(fm[13],0,a);j8(a);var +h=[0,j]}var +k=iA(a,85);return[0,h,m(Ba,a),k]},a),c];if(5!==J(a))Q(a,9);var +c=h}});h(_C,function(a){return W(0,function(a){var +c=ab(a);Q(a,4);var +b=n(aFl,a,0),d=ab(a);Q(a,5);var +e=jL([0,c],[0,fq(a)],d,0);return[0,b[1],b[2],e]},a)});h(aFm,function(a){var +o=ab(a);Q(a,4);var +b=x6(0,a),d=J(b),e=0;if(typeof +d==="number")switch(d){case +5:var +c=cF6;break;case +130:var +v=gQ(1,b),z=0;if(typeof +v==="number"&&86===v){var +w=[0,n(ut,b,0)];z=1}if(!z)var +w=[1,m(h2,b)];var +c=w;break;case +42:e=2;break;case +12:case +113:var +c=[0,n(ut,b,0)];break;default:e=1}else if(4===d[0])if(q(d[3],qW))e=2;else{var +x=gQ(1,b),A=0;if(typeof +x==="number"&&1>=x+u_>>>0){var +y=[0,n(ut,b,0)];A=1}if(!A)var +y=[1,m(h2,b)];var +c=y}else +e=1;switch(e){case +1:if(m(aFh,d)){var +p=gQ(1,b),B=0;if(typeof +p==="number"&&1>=p+u_>>>0){var +r=[0,n(ut,b,0)];B=1}if(!B)var +r=[1,m(h2,b)];var +c=r}else +var +c=[1,m(h2,b)];break;case +2:var +c=m(aFn,b);break}if(0===c[0])var +f=c;else{var +h=c[1];if(a[15])var +u=c;else{var +i=J(a),k=0;if(typeof +i==="number")if(5===i)var +j=11===gQ(1,a)?[0,n(ut,a,[0,n(Fb,a,h),0])]:[1,h];else if(9===i){Q(a,9);var +j=[0,n(ut,a,[0,n(Fb,a,h),0])]}else +k=1;else +k=1;if(k)var +j=c;var +u=j}var +f=u}var +C=ab(a);Q(a,5);var +s=fq(a);if(0===f[0])var +g=f[1],D=jL([0,o],[0,s],C,0),t=[0,[0,g[1],g[2],g[3],D]];else +var +t=[1,l(aFu,f[1],o,s)];return t});h(aFn,function(a){var +c=gQ(1,a);if(typeof +c==="number"&&1>=c+u_>>>0)return[0,n(ut,a,0)];var +b=fB(a),d=n(aFr,a,m(v6,a)),e=m(l(M1,0,a,b),d),f=m(m(_y,a),e),g=m(n(m(_w,a),0,b),f),h=m(n(m(_u,a),0,b),g);return[1,m(n(_t,_k(0,a),b),h)]});h(aFo,function(a){var +d=fB(a),c=W(0,aFm,a),b=c[2],e=c[1];return 0===b[0]?o(M4,a,d,0,[0,e,b[1]]):b[1]});h(aFp,function(a){var +b=fB(a),c=ms(a,m(x_,a));return o(M4,a,b,c,m(M3,a))});h(M4,function(a,b,c,d){return W([0,b],function(a){Q(a,11);return[12,[0,c,d,m(_D,a),0]]},a)});h(_D,function(a){return MX(a)?[1,m(M5,a)]:[0,m(h2,a)]});h(M5,function(a){return W(0,function(a){var +f=ab(a),g=iA(a,ju);jM(a,0);var +h=k0(a);j8(a);var +b=J(a),e=0;if(typeof +b==="number"&&gO===b){var +i=ab(a);Q(a,gO);var +j=V(i,ab(a)),d=j,c=[0,m(h2,a)];e=1}if(!e)var +d=0,c=0;return[0,g,[0,h,c],jL([0,f],0,d,0)]},a)});h(_E,function(a,b){return W([0,b],M5,a)});var +M_=function(a,b,c){return W([0,b],function(a){var +b=m(M3,a);Q(a,86);return[0,c,b,m(_D,a),0]},a)},aFw=function(a,b,c,d,e){var +h=r9(a,d),f=M_(a,b,ms(a,m(x_,a))),g=[0,f[1],[12,f[2]]],i=[0,h,[0,g],0,0!==c?1:0,0,1,0,$([0,e],0,0)];return[0,[0,g[1],i]]},M$=function(a,b,c,d,e,f,g){var +h=g[2],i=g[1];if(1-iX(a))f4(a,hb);return[0,W([0,b],function(a){var +b=iA(a,85),g=aE0(a,86)?m(h2,a):[0,i,cF7];return[0,h,[0,g],b,0!==d?1:0,0!==e?1:0,0,c,$([0,f],0,0)]},a)]},Fc=function(a,b){var +c=J(b);if(typeof +c==="number"&&10>c)switch(c){case +1:if(!a)return 0;break;case +3:if(a)return 0;break;case +8:case +9:return aA(b)}return ur(b,9)},Fd=function(a,b){return b?fc(a,[0,b[1][1],hy]):0},Fe=function(a,b){return b?fc(a,[0,b[1],99]):0},cF8=function(a,b,c,d,e,f,g,h,i){var +s=c,r=d,j=e,l=f,o=g,k=h;for(;;){var +p=J(a);if(typeof +p==="number")switch(p){case +6:Fe(a,o);var +N=gQ(1,a);if(typeof +N==="number"&&6===N){Fd(a,j);return[4,W([0,i],function(a){var +n=V(k,ab(a));Q(a,6);Q(a,6);var +o=k0(a);Q(a,7);Q(a,7);var +b=J(a),h=0;if(typeof +b==="number"){var +j=0;if(4===b||98===b)j=1;if(j){var +c=M_(a,i,ms(a,m(x_,a))),g=0,f=[0,c[1],[12,c[2]]],e=1,d=0;h=1}}if(!h){var +p=iA(a,85),q=fq(a);Q(a,86);var +g=q,f=m(h2,a),e=0,d=p}return[0,o,f,d,0!==l?1:0,e,$([0,n],[0,g],0)]},a)]}var +C=V(k,ab(a));Q(a,6);var +v=gQ(1,a);if(typeof +v!=="number"&&4===v[0]&&!q(v[3],qV)&&0===l)return[5,W([0,i],function(a){var +c=m(v6,a),d=c[1];aA(a);var +l=m(h2,a);Q(a,7);var +e=J(a),h=0,k=[0,c,[0,d],0,0,0];if(typeof +e==="number"){var +b=e+amY|0,i=0;if(1>>0)if(-18===b){aA(a);var +f=2}else +i=1;else +var +f=b?(aA(a),Q(a,85),1):(aA(a),Q(a,85),0);if(!i){var +g=f;h=1}}if(!h)var +g=3;Q(a,86);var +n=m(h2,a);return[0,[0,d,k],n,l,j,g,$([0,C],[0,fq(a)],0)]},a)];return[2,W([0,i],function(a){if(86===gQ(1,a)){var +c=k0(a);Q(a,86);var +b=[0,c]}else +var +b=0;var +d=m(h2,a);Q(a,7);var +e=fq(a);Q(a,86);var +f=m(h2,a);return[0,b,d,f,0!==l?1:0,j,$([0,C],[0,e],0)]},a)];case +42:if(s){if(0!==j)throw B([0,aL,cGc],1);var +Z=[0,fB(a)],_=V(k,ab(a));aA(a);var +s=0,r=0,l=Z,k=_;continue}break;case +126:if(0===j){var +O=0;if(v3(1,a)||6===gQ(1,a))O=1;if(O){var +s=0,r=0,j=MY(cGd,0,a);continue}}break;case +103:case +104:if(0===j){var +s=0,r=0,j=MY(0,0,a);continue}break;case +4:case +98:Fe(a,o);Fd(a,j);return[3,W([0,i],function(a){var +b=fB(a),c=M_(a,b,ms(a,m(x_,a)));return[0,c,0!==l?1:0,$([0,k],0,0)]},a)]}else if(4===p[0]&&!q(p[3],zY)&&r){if(0!==j)throw B([0,aL,cGe],1);var +aa=[0,fB(a)],ac=V(k,ab(a));aA(a);var +s=0,r=0,o=aa,k=ac;continue}if(l){var +F=l[1];if(o)return X(cF$);if(typeof +p==="number"&&1>=p+u_>>>0)return M$(a,i,j,0,o,0,[0,F,[3,rh($([0,k],0,0),[0,F,cGa])]])}else if(o){var +M=o[1];if(typeof +p==="number"&&1>=p+u_>>>0)return M$(a,i,j,l,0,0,[0,M,[3,rh($([0,k],0,0),[0,M,cGb])]])}var +G=function(a){jM(a,0);var +b=n(fm[20],0,a);j8(a);return b},U=ab(a),x=G(a),H=x[1],t=x[2];if(3===t[0]){var +z=t[1][2][1],P=0;if(q(z,w1)&&q(z,zJ))P=1;if(!P){var +I=J(a);if(typeof +I==="number"){var +A=I-5|0;if(92>>0){if(94>=A+1>>>0){Fe(a,o);Fd(a,j);return aFw(a,i,l,t,k)}}else if(1>=A+aX6>>>0)return M$(a,i,j,l,o,k,[0,H,t])}r9(a,t);var +K=G(a),L=af(z,w1),Y=V(k,U);Fe(a,o);Fd(a,j);return[0,W([0,i],function(a){var +b=K[1],n=r9(a,K[2]),c=M_(a,i,0),f=c[2][2];if(L){var +d=f[2],h=0;if(d[1]){fc(a,[0,b,28]);h=1}else{var +j=0;if(d[2]||d[3])j=1;else +h=1;if(j)fc(a,[0,b,27])}}else{var +e=f[2],v=0;if(e[1])fc(a,[0,b,71]);else{var +g=e[2],k=0;if(e[3]){fc(a,[0,b,70]);k=1}else{var +m=0;if(g&&!g[2])k=1;else +m=1;if(m){fc(a,[0,b,70]);v=1}}}}var +o=$([0,Y],0,0),p=0,q=0,r=0,s=0!==l?1:0,t=0,u=L?[1,c]:[2,c];return[0,n,u,t,s,r,q,p,o]},a)]}}var +u=x[2],y=J(a);if(typeof +y==="number"){var +R=0;if(4!==y&&98!==y)R=1;if(!R){Fe(a,o);Fd(a,j);return aFw(a,i,l,u,k)}}var +D=0!==l?1:0,ad=0;if(3===u[0]){var +E=u[1],w=E[2][1],ae=0,T=E[1];if(b){var +S=0;if(af(ig,w)||D&&af(sU,w))S=1;if(S){fc(a,[0,T,[15,w,D,0,0]]);ad=1;ae=1}}}return M$(a,i,j,l,o,k,[0,H,u])}};h(M6,function(n,b,c,d){var +e=b?2===J(d)?1:0:b,v=b?1-e:b;return W(0,function(a){var +z=ab(a),A=e?2:0;Q(a,A);var +b=x6(0,a),k=cGf;for(;;){var +g=k[3],h=k[2],d=k[1];if(n&&c)throw B([0,aL,cF9],1);if(v&&!c)throw B([0,aL,cF_],1);var +i=fB(b),l=J(b);if(typeof +l==="number"){var +j=0;if(13<=l){if(gt===l){var +f=[0,U(d),h,g];j=1}}else if(l)switch(l-1|0){case +0:if(!e){var +f=[0,U(d),h,g];j=1}break;case +2:if(e){var +f=[0,U(d),h,g];j=1}break;case +11:if(!c){aA(b);var +p=J(b);if(typeof +p==="number"&&10>p)switch(p){case +1:case +3:case +8:case +9:fc(b,[0,i,36]);Fc(e,b);continue}var +y=_o(b);m(_m(b),y);fc(b,[0,i,iZ]);aA(b);Fc(e,b);continue}var +s=ab(b);aA(b);var +o=J(b),q=0;if(typeof +o==="number"&&10>o)switch(o){case +1:case +3:case +8:case +9:Fc(e,b);var +t=J(b),r=0;if(typeof +t==="number"){var +u=t-1|0;if(2>=u>>>0)switch(u){case +0:if(v){var +f=[0,U(d),1,s];j=1;q=1;r=1}break;case +1:break;default:fc(b,[0,i,35]);var +f=[0,U(d),h,g];j=1;q=1;r=1}}if(!r){fc(b,[0,i,97]);continue}break}if(!q){var +w=[1,W([0,i],function(c){return function(a){var +b=$([0,c],0,0);return[0,m(h2,a),b]}}(s),b)];Fc(e,b);var +k=[0,[0,w,d],h,g];continue}break}if(j){var +C=f[3],D=f[2],E=f[1],F=V(C,ab(a)),G=e?3:1;Q(a,G);return[0,e,D,E,jL([0,z],[0,fq(a)],F,0)]}}var +x=cF8(b,n,n,n,0,0,0,0,i);Fc(e,b);var +k=[0,[0,x,d],h,g]}},d)});h(_F,function(a){if(iA(a,41)){var +b=0;for(;;){var +c=[0,m(M8,a),b],d=J(a);if(typeof +d==="number"&&9===d){Q(a,9);var +b=c;continue}var +e=aE5(a,U(c));break}}else +var +e=0;return[0,e,o(M6,0,0,0,a)]});h(v6,function(a){var +b=k0(a),c=b[2],d=c[1],e=b[1],f=c[2];if(_n(d))fc(a,[0,e,iK]);return[0,e,[0,d,f]]});h(aFq,function(a){return W(0,function(a){var +f=m(v6,a),b=J(a),e=0;if(typeof +b==="number")if(41===b)var +g=1,d=g,c=[1,W(0,function(a){aA(a);return m(h2,a)},a)];else if(86===b)var +d=0,c=[1,m(Ba,a)];else +e=1;else +e=1;if(e)var +d=0,c=[0,uq(a)];return[0,f,c,d]},a)});var +aFx=function(a,b){var +e=aEU(a,b);if(e)var +f=e;else{var +g=0;if(typeof +b==="number"&&1>=b+amY>>>0){var +c=1;g=1}if(!g)var +c=0;if(!c){var +d=0;if(typeof +b==="number")switch(b){case +15:case +29:case +30:case +31:case +41:case +42:case +46:case +53:case +114:case +115:case +116:case +117:case +118:case +119:case +120:case +121:case +122:case +123:case +124:case +125:case +126:d=1;break}else +switch(b[0]){case +4:if(_n(b[3]))return 1;break;case +11:d=1;break}return d?1:0}var +f=c}return f};h(x_,function(a){if(98!==J(a))return 0;if(1-iX(a))f4(a,hb);var +b=W(0,function(a){var +s=ab(a);Q(a,98);var +f=0,e=0;for(;;){if(aFx(a,J(a)))var +n=MW(0,function(g){return function(a){var +i=MY(0,cGg,a),c=m(aFq,a),b=c[2],j=b[3],k=b[2],l=b[1],n=c[1],d=J(a),h=0;if(typeof +d==="number"&&82===d){aA(a);var +f=1,e=[0,m(h2,a)];h=1}if(!h){if(g)fc(a,[0,n,57]);var +f=g,e=0}return[0,[0,l,k,j,i,e],f]}}(f),a),h=n[2],d=[0,n[1],e];else +var +h=f,d=e;var +b=J(a),p=0;if(typeof +b==="number"){var +j=b+aYM|0;if(14>>0){if(-90===j){aA(a);var +f=h,e=d;continue}}else if(12>>0){var +o=U(d);p=1}}if(!p){var +g=0;if(typeof +b==="number")switch(b){case +4:case +82:g=2;break}else if(4===b[0]){var +c=b[3],k=0;if(MP(c))k=1;else{var +r=0;if(q(c,tF)&&q(c,aH)){var +l=0;r=1}if(!r)var +l=1;if(l)k=1;else +if(q(c,sQ)){if(!q(c,sy)||!q(c,lD))g=2}else if(a[28][2]){var +i=1;g=1}}if(k){var +i=1;g=1}}switch(g){case +0:var +i=0;break;case +2:var +i=1;break}if(!i){if(aFx(a,b)){ur(a,9);var +f=h,e=d;continue}Q(a,9);var +f=h,e=d;continue}ur(a,99);var +o=U(d)}var +t=ab(a);MS(a,99);return[0,o,jL([0,s],[0,fq(a)],t,0)]}},a),c=b[1];if(!b[2][1])fc(a,[0,c,56]);return[0,b]});h(M7,function(a){return 98===J(a)?[0,W(0,function(a){var +h=ab(a);Q(a,98);var +b=x6(0,a),c=0;for(;;){var +d=J(b);if(typeof +d==="number"){var +e=0;if(99!==d&>!==d)e=1;if(!e){var +f=U(c),i=ab(b);Q(b,99);return[0,f,jL([0,h],[0,fq(b)],i,0)]}}var +g=[0,m(h2,b),c];if(99!==J(b))Q(b,9);var +c=g}},a)]:0});h(M8,function(a){return n(_G,a,m(v6,a))});h(_G,function(a,b){function +c(a){var +c=[0,b[1],[0,b]];for(;;){var +d=c[2],h=c[1];if(10===J(a)&&MQ(1,a)){var +e=W([0,h],function(b){return function(a){Q(a,10);return[0,b,m(v6,a)]}}(d),a),f=e[1],c=[0,f,[1,[0,f,e[2]]]];continue}if(98===J(a))var +i=jo(a)[2],g=n(i,d,function(a,b){return n(D(a,-860373976,61),a,b)});else +var +g=d;return[0,g,m(M7,a),0]}}return W([0,b[1]],c,a)});h(aFr,function(a,b){var +c=n(_G,a,b);return[0,c[1],[19,c[2]]]});h(aFs,function(a){var +b=J(a);if(typeof +b==="number"&&86===b)return m(aE$,a);return[0,uq(a)]});h(aFt,function(a){var +b=J(a);if(typeof +b==="number"&&86===b)return[1,m(Ba,a)];return[0,uq(a)]});h(M9,function(a){var +b=J(a),c=0;if(typeof +b==="number")switch(b){case +86:var +f=fB(a);if(1-iX(a))f4(a,hb);f4(a,38);aA(a);var +d=W(0,h2,a);return[1,d[1],[0,f,d[2],0,0]];case +130:case +131:c=1;break}else if(4===b[0]&&!q(b[3],qW))c=1;if(!c)return[0,uq(a)];if(1-iX(a))f4(a,hb);var +e=W([0,fB(a)],_B,a);return[1,e[1],e[2]]});h(aFu,function(a,b,c){var +d=a[2],D=a[1];function +f(a){return lq(a,$([0,b],[0,c],0))}switch(d[0]){case +0:var +e=[0,f(d[1])];break;case +1:var +e=[1,f(d[1])];break;case +2:var +e=[2,f(d[1])];break;case +3:var +e=[3,f(d[1])];break;case +4:var +e=[4,f(d[1])];break;case +5:var +e=[5,f(d[1])];break;case +6:var +e=[6,f(d[1])];break;case +7:var +e=[7,f(d[1])];break;case +8:var +F=f(d[2]),e=[8,d[1],F];break;case +9:var +e=[9,f(d[1])];break;case +10:var +e=[10,f(d[1])];break;case +11:var +t=d[1],G=f(t[2]),e=[11,[0,t[1],G]];break;case +12:var +h=d[1],H=f(h[4]),e=[12,[0,h[1],h[2],h[3],H]];break;case +13:var +i=d[1],I=f(i[4]),e=[13,[0,i[1],i[2],i[3],I]];break;case +14:var +j=d[1],J=j[4],E=Z5(J,$([0,b],[0,c],0)),e=[14,[0,j[1],j[2],j[3],E]];break;case +15:var +l=d[1],K=f(l[3]),e=[15,[0,l[1],l[2],K]];break;case +16:var +u=d[1],L=f(u[2]),e=[16,[0,u[1],L]];break;case +17:var +g=d[1],M=f(g[5]),e=[17,[0,g[1],g[2],g[3],g[4],M]];break;case +18:var +v=d[1],N=f(v[2]),e=[18,[0,v[1],N]];break;case +19:var +m=d[1],O=f(m[3]),e=[19,[0,m[1],m[2],O]];break;case +20:var +n=d[1],P=f(n[3]),e=[20,[0,n[1],n[2],P]];break;case +21:var +w=d[1],o=w[1],Q=w[2],R=f(o[3]),e=[21,[0,[0,o[1],o[2],R],Q]];break;case +22:var +x=d[1],S=f(x[2]),e=[22,[0,x[1],S]];break;case +23:var +y=d[1],T=f(y[2]),e=[23,[0,y[1],T]];break;case +24:var +p=d[1],U=f(p[3]),e=[24,[0,p[1],p[2],U]];break;case +25:var +z=d[1],V=f(z[2]),e=[25,[0,z[1],V]];break;case +26:var +k=d[1],W=k[4],X=f(k[3]),e=[26,[0,k[1],k[2],X,W]];break;case +27:var +A=d[1],Y=f(A[2]),e=[27,[0,A[1],Y]];break;case +28:var +B=d[1],Z=f(B[2]),e=[28,[0,B[1],Z]];break;case +29:var +q=d[1],_=f(q[3]),e=[29,[0,q[1],q[2],_]];break;case +30:var +r=d[1],aa=f(r[3]),e=[30,[0,r[1],r[2],aa]];break;case +31:var +s=d[1],ab=f(s[3]),e=[31,[0,s[1],s[2],ab]];break;case +32:var +C=d[1],ac=f(C[2]),e=[32,[0,C[1],ac]];break;case +33:var +e=[33,f(d[1])];break;case +34:var +e=[34,f(d[1])];break;default:var +e=[35,f(d[1])]}return[0,D,e]});var +aFy=function(a,b){if(4!==J(a))return[0,0,$([0,b],[0,fq(a)],0)];var +c=V(b,ab(a));Q(a,4);jM(a,0);var +d=m(fm[9],a);j8(a);Q(a,5);return[0,[0,d],$([0,c],[0,fq(a)],0)]},cGh=function(a){var +b=ab(a);Q(a,66);return aFy(a,b)},cGi=0,aFz=function(a){var +b=x6(0,a),c=J(b);if(typeof +c==="number"&&66===c)return[0,W(cGi,cGh,b)];return 0},cGj=function(a){var +e=J(a);if(typeof +e==="number"&&86===e){if(1-iX(a))f4(a,hb);var +g=uq(a),b=fB(a);Q(a,86);var +c=J(a);if(typeof +c==="number"&&66===c){var +f=x6(0,a);return[0,[0,g],[0,W([0,b],function(a){var +b=ab(a);Q(a,66);return aFy(a,b)},f)]]}if(MX(a))return[0,[2,n(_E,a,b)],0];var +d=[1,W([0,b],h2,a)],h=66===J(a)?A$(a,d):d;return[0,h,aFz(a)]}return[0,[0,uq(a)],0]},px=function(a,b){var +c=up(1,b);jM(c,1);var +d=m(a,c);j8(c);return d},uu=function(a){return px(h2,a)},tg=function(a){return px(v6,a)},p5=function(a){return px(x_,a)},aFA=function(a){return px(M7,a)},x$=function(a){return px(Ba,a)},_H=function(a){return px(aFt,a)},_I=function(a){return px(aFs,a)},_J=function(a){return px(cGj,a)},aFB=function(a){return px(M8,a)},_K=function(a){return px(M9,a)},cGR=aFF(fm),v7=function(a,b){var +c=b[2],j=b[1],k=a[1];switch(c[0]){case +0:return M(cGS,a,c[1][1]);case +1:return M(cGT,a,c[1][1]);case +2:var +d=c[1][1],f=d[2][1],g=a[2],e=a[1],l=d[1];if(n(kZ[3],f,g))fc(e,[0,l,82]);var +h=d[2][1],i=d[1];if(x7(h))qF(e,[0,i,83]);if(A9(h))qF(e,[0,i,85]);return[0,e,n(kZ[4],f,g)];default:fc(k,[0,j,24]);return a}},cGS=function(b){return function(a){return 0===a[0]?v7(b,a[1][2][2]):v7(b,a[1][2][1])}},cGT=function(b){return function(a){switch(a[0]){case +0:return v7(b,a[1][2][1]);case +1:return v7(b,a[1][2][1]);default:return b}}},aFG=function(a,b){var +c=b[2],d=c[3],e=c[2],f=[0,a,kZ[1]],g=M(function(a,b){return v7(a,b[2][1])},f,e);return d?(v7(g,d[1][2][1]),0):0},aFH=function(a,b,c,d){var +h=a[5],p=0===d[0]?x9(d[1]):0,e=h?up(0,a):up(b,a),i=b||h||1-p;if(!i)return i;if(c){var +j=c[1],k=j[2][1],l=j[1];if(x7(k))qF(e,[0,l,75]);if(A9(k))qF(e,[0,l,85])}if(0===d[0])return aFG(e,d[1]);var +f=d[1][2],g=f[2],m=f[1],n=[0,g6,[0,[0,fx(function(a){var +b=a[2],c=b[1],d=b[4],e=b[3],f=b[2],g=0===c[0]?[3,c[1]]:[0,[0,g6,c[1][2]]];return[0,[0,g6,[0,g,f,e,d]]]},m),[0,g6],0]]],o=v7([0,e,kZ[1]],n);return g?(v7(o,g[1][2][1]),0):0},Bb=function(a,b,c,d){return aFH(a,b,c,[0,d])},aFI=function(a,b){if(12!==b)return 0;var +d=ab(a),c=W(0,function(a){Q(a,12);return n(fm[18],a,83)},a),e=c[2],f=c[1];return[0,[0,f,e,$([0,d],0,0)]]},_L=function +c(a,b){return c.fun(a,b)},cGU=function(a){if(21===J(a))f4(a,94);var +b=n(fm[18],a,83),c=82===J(a)?(Q(a,82),[0,m(fm[10],a)]):0;return[0,b,c]},cGV=0;h(_L,function(a,b){var +c=J(a);if(typeof +c==="number"){var +d=c-5|0,e=0;if(7>>0){if(i1===d)e=1}else if(5>>0)e=1;if(e){var +f=aFI(a,c),g=vE(function(a){return[0,a[1],[0,a[2],a[3]]]},f);if(5!==J(a))f4(a,66);return[0,U(b),g]}}var +h=W(cGV,cGU,a);if(5!==J(a))Q(a,9);return n(_L,a,[0,h,b])});var +Bc=function(l,b){function +c(a){var +c=aEM(1,_h(b,_i(l,a))),m=ab(c);Q(c,4);var +h=0;if(iX(c)&&21===J(c)){var +i=ab(c),e=W(0,function(a){Q(a,21);return 86===J(a)?[0,x$(a)]:(f4(a,90),0)},c),f=e[2],j=e[1];if(f){var +k=f[1];if(9===J(c))aA(c);var +d=[0,[0,j,[0,k,$([0,i],0,0)]]]}else +var +d=0}else +h=1;if(h)var +d=0;var +g=n(_L,c,0),o=g[2],p=g[1],q=ab(c);Q(c,5);return[0,d,p,o,jL([0,m],[0,fq(c)],q,0)]}var +d=0;return function(a){return W(d,c,a)}},aFJ=function(a,b,c,d,e){var +f=aET(a,b,c,e);return n(fm[16],d,f)},Fg=function(a,b,c,d,e){var +f=aFJ(a,b,c,d,e);return[0,[0,f[1]],f[2]]},Bd=function(a){if(hq!==J(a))return cGW;var +b=ab(a);aA(a);return[0,1,b]},Na=function(a){if(64===J(a)&&!E7(1,a)){var +b=ab(a);aA(a);return[0,1,b]}return cGX},cGY=function(a){var +e=Na(a),c=e[1],q=e[2],f=W(0,function(a){var +r=ab(a);Q(a,15);var +h=Bd(a),i=h[1],s=pU([0,q,[0,r,[0,h[2],0]]]),t=a[7],b=J(a),g=0;if(t&&typeof +b==="number")if(4===b){var +e=0,d=0;g=1}else if(98===b){var +v=ms(a,p5(a)),w=4===J(a)?0:[0,r8(a,n(fm[13],cGZ,a))],e=w,d=v;g=1}if(!g)var +x=te(a)?r8(a,n(fm[13],cG0,a)):(aEZ(a,cG1),[0,fB(a),cG2]),e=[0,x],d=ms(a,p5(a));var +j=m(Bc(c,i),a),u=86===J(a)?j:E$(a,j),k=_J(a),f=k[2],l=k[1];if(f)var +p=aE4(a,f),o=l;else +var +p=f,o=A$(a,l);return[0,i,d,e,u,o,p,s]},a),b=f[2],d=b[4],g=b[3],h=b[1],j=b[7],k=b[6],l=b[5],o=b[2],p=f[1],i=Fg(a,c,h,0,x9(d)),r=i[1];Bb(a,i[2],g,d);return[26,[0,g,d,r,c,h,k,l,o,$([0,j],0,0),p]]},cG3=0,Fh=function(a){return W(cG3,cGY,a)},_M=function(a,b){var +p=ab(b);Q(b,a);var +j=b[28][2];if(j)var +k=27===a?1:0,l=k?48===J(b)?1:0:k;else +var +l=j;if(l)f4(b,23);var +g=0,c=0;for(;;){var +d=W(0,function(a){var +b=n(fm[18],a,86);if(iA(a,82))var +d=0,c=[0,m(fm[10],a)];else{var +e=b[1];if(2===b[2][0])var +d=0,c=0;else +var +d=[0,[0,e,63]],c=0}return[0,[0,b,c],d]},b),e=d[2],f=e[2],h=[0,[0,d[1],e[1]],g],i=f?[0,f[1],c]:c;if(iA(b,9)){var +g=h,c=i;continue}var +o=U(i);return[0,U(h),p,o]}},cG4=24,aFK=function(a){return _M(cG4,a)},aFL=function(a){var +b=_M(27,_j(1,a)),c=b[1],d=b[3],e=b[2];return[0,c,e,U(M(function(a,b){return b[2][2]?a:[0,[0,b[1],62],a]},d,c))]},aFM=function(a){return _M(28,_j(1,a))},aFN=function(b){function +c(a){return[19,n(cGR[1],b,a)]}var +d=0;return function(a){return W(d,c,a)}},_N=function +c(a,b){return c.fun(a,b)},cG5=function(a){var +y=ab(a),h=J(a),b=gQ(1,a),k=0;if(typeof +h!=="number"&&2===h[0]){var +g=h[1],r=g[4],s=g[3],i=g[2],t=g[1],c=0;if(typeof +b==="number")switch(b){case +85:case +86:c=2;break;default:c=1}else +if(4===b[0]){if(!q(b[3],sx))c=2}else +c=1;switch(c){case +0:break;case +1:break;default:if(r)rn(a,81);Q(a,[2,[0,t,i,s,r]]);var +u=[1,[0,t,[0,i,s,$([0,y],[0,fq(a)],0)]]],w=0;if(typeof +b==="number"&&!(1>>0)){var +j=85===b?1:0;f4(a,[16,j,i]);if(j)aA(a);var +v=fB(a),f=0,e=[0,v,[2,[0,[0,v,cG7],_H(a),j]]],d=u;k=1}else +w=1;if(w){aA(a);var +f=0,e=n(fm[18],a,83),d=u;k=1}}}if(!k){var +x=0;if(typeof +b!=="number"&&4===b[0]&&!q(b[3],sx)){var +A=[0,k0(a)];us(a,cG6);var +f=0,e=n(fm[18],a,83),d=A;x=1}if(!x)var +o=l(fm[14],a,0,83),p=o[2],f=1,e=[0,o[1],[2,p]],d=[0,p[1]]}var +z=82===J(a)?(Q(a,82),[0,m(fm[10],a)]):0;return[0,d,e,z,f]},cG8=0;h(_N,function(a,b){var +c=J(a);if(typeof +c==="number"){var +d=c-5|0,e=0;if(7>>0){if(i1===d)e=1}else if(5>>0)e=1;if(e){var +f=aFI(a,c),g=vE(function(a){return[0,a[1],[0,a[2],a[3]]]},f);if(5!==J(a))f4(a,66);return[0,U(b),g]}}var +h=W(cG8,cG5,a);if(5!==J(a))Q(a,9);return n(_N,a,[0,h,b])});var +cG9=function(a){var +b=aEM(1,a),d=ab(b);Q(b,4);var +c=n(_N,b,0),e=c[2],f=c[1],g=ab(b);Q(b,5);return[0,f,e,jL([0,d],[0,fq(b)],g,0)]},cG_=0,cG$=function(a){var +d=W(0,function(a){var +e=ab(a);us(a,cHa);var +f=r8(a,n(fm[13],cHb,a)),g=ms(a,p5(a)),c=W(cG_,cG9,a);if(_q(a))var +b=c;else +var +d=jo(a)[2],b=n(d,c,function(a,b){return n(D(a,apZ,11),a,b)});return[0,g,f,b,_s(a,_K(a)),e]},a),b=d[2],e=b[3],f=b[2],g=b[5],h=b[4],i=b[1],j=d[1],c=aFJ(a,0,0,0,0),k=c[1];aFH(a,c[2],[0,f],[1,e]);return[3,[0,f,i,e,h,k,$([0,g],0,0),j]]},cHc=0,_O=function(a){return W(cHc,cG$,a)},kD=function(c,b){if(0===b[0])return b[1];var +a=b[2][1],d=b[1];fo(function(a){return fc(c,a)},a);return d},_P=function(a,b,c){var +f=a?a[1]:41;if(0===c[0])var +d=c[1];else{var +h=c[2][2],i=c[1];fo(function(a){return fc(b,a)},h);var +d=i}if(1-m(fm[23],d))fc(b,[0,d[1],f]);var +e=d[2],j=0;if(9===e[0]){var +g=d[1];if(x7(e[1][2][1])){qF(b,[0,g,76]);j=1}}return n(fm[19],b,d)},_Q=function(a,b){var +c=hh(a[2],b[2]);return[0,hh(a[1],b[1]),c]},aFO=function(a){var +b=U(a[2]);return[0,U(a[1]),b]},aFP=function(a,b){var +c=0===a[0]?a[1]:a[1]-1|0,d=0===b[0]?b[1]:b[1];return d<=c?1:0},Be=function +b(a){return b.fun(a)},ro=function +b(a){return b.fun(a)},aFQ=function +b(a){return b.fun(a)},_R=function +b(a){return b.fun(a)},aFR=function +b(a){return b.fun(a)},_S=function +b(a){return b.fun(a)},aFS=function +b(a){return b.fun(a)},aFT=function +b(a){return b.fun(a)},Fi=function +b(a){return b.fun(a)},_T=function +b(a){return b.fun(a)},_U=function +b(a){return b.fun(a)},_V=function +b(a){return b.fun(a)},aFU=function +b(a){return b.fun(a)},_W=function +b(a){return b.fun(a)},Nb=function +b(a){return b.fun(a)},_X=function +b(a){return b.fun(a)},aFV=function +b(a){return b.fun(a)},ya=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},_Y=function +e(a,b,c,d){return e.fun(a,b,c,d)},_Z=function +b(a){return b.fun(a)},Nc=function +b(a){return b.fun(a)},_0=function +b(a){return b.fun(a)},_1=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},aFW=function +e(a,b,c,d){return e.fun(a,b,c,d)},_2=function +b(a){return b.fun(a)},Nd=function +d(a,b,c){return d.fun(a,b,c)},aFX=function +b(a){return b.fun(a)},Ne=function +d(a,b,c){return d.fun(a,b,c)},_3=function +b(a){return b.fun(a)},aFY=function +b(a){return b.fun(a)},_4=function +c(a,b){return c.fun(a,b)},_5=function +e(a,b,c,d){return e.fun(a,b,c,d)},aFZ=function +b(a){return b.fun(a)},_6=function +d(a,b,c){return d.fun(a,b,c)},aF0=function +b(a){return b.fun(a)},aF1=function +b(a){return b.fun(a)},_7=function +b(a){return b.fun(a)},Nf=function +d(a,b,c){return d.fun(a,b,c)},cHd=function(a){var +c=a[2];switch(c[0]){case +22:var +b=c[1],d=b[1][2][1];if(q(d,aB)){if(!q(d,vo)&&!q(b[2][2][1],IF))return 0}else if(!q(b[2][2][1],CG))return 0;break;case +0:case +9:case +21:case +24:break;default:return 0}return 1},_8=function(a){var +d=fB(a),b=m(_S,a),c=m(aFR,a);if(!c)return b;var +e=c[1];return[0,W([0,d],function(a){var +c=_P(0,a,b);return[3,[0,e,c,m(ro,a),0]]},a)]},cHe=function(a,b){if(typeof +b==="number"&&85===b)return 0;throw B(tf,1)},aF2=function(a){var +b=MO(cHe,a),c=_8(b),d=J(b);if(typeof +d==="number"){if(11===d)throw B(tf,1);if(86===d){var +e=aER(b),i=0;if(e){var +f=e[1];if(typeof +f==="number"&&5===f){var +g=1;i=1}}if(!i)var +g=0;if(g)throw B(tf,1)}}if(!te(b))return c;if(0===c[0]){var +h=c[1][2];if(9===h[0]&&!q(h[1][2][1],q3)&&!lX(b))throw B(tf,1)}return c};h(Be,function(a){var +g=te(a);if(g){var +d=J(a),f=0;if(typeof +d==="number")if(58===d){if(a[18]){var +e=0;f=1}}else if(65===d&&a[19]){var +e=0;f=1}if(!f)var +e=1;var +h=e}else +var +h=g;var +b=J(a),n=0;if(typeof +b==="number"){var +c=0;if(22<=b){if(58===b){if(a[18])return[0,m(aFQ,a)];c=1}else if(98!==b)c=1}else if(4!==b&&21>b)c=1;if(!c)n=1}if(!n&&!h)return _8(a);var +o=0;if(64===b&&iX(a)&&98===gQ(1,a)){var +j=aF2,i=_7;o=1}if(!o)var +j=_7,i=aF2;var +k=_r(a,i);if(k)return k[1];var +l=_r(a,j);return l?l[1]:_8(a)});h(ro,function(a){return kD(a,m(Be,a))});h(aFQ,function(a){return W(0,function(a){if(a[10])f4(a,kL);var +k=ab(a),l=fB(a);Q(a,58);var +n=fB(a);if(A_(a))var +e=0,c=0;else{var +f=iA(a,hq),b=J(a),i=0;if(typeof +b==="number"){var +d=0;if(86===b)d=1;else if(10>b)switch(b){case +0:case +2:case +3:case +4:case +6:break;default:d=1}if(d){var +g=0;i=1}}if(!i)var +g=1;var +j=0;if(!f&&!g){var +h=0;j=1}if(!j)var +h=[0,m(ro,a)];var +e=f,c=h}var +o=c?0:fq(a),p=h4(l,n);return[36,[0,c,$([0,k],[0,o],0),e,p]]},a)});h(_R,function(a){var +c=a[2];switch(c[0]){case +22:var +b=c[1],d=b[1][2][1];if(q(d,aB)){if(!q(d,vo)&&!q(b[2][2][1],IF))return 0}else if(!q(b[2][2][1],CG))return 0;break;case +9:case +21:break;default:return 0}return 1});h(aFR,function(a){var +d=J(a),f=0;if(typeof +d==="number"){var +e=d+aUW|0;if(15>=e>>>0){switch(e){case +0:var +b=cHf;break;case +1:var +b=cHg;break;case +2:var +b=cHh;break;case +3:var +b=cHi;break;case +4:var +b=cHj;break;case +5:var +b=cHk;break;case +6:var +b=cHl;break;case +7:var +b=cHm;break;case +8:var +b=cHn;break;case +9:var +b=cHo;break;case +10:var +b=cHp;break;case +11:var +b=cHq;break;case +12:var +b=cHr;break;case +13:var +b=cHs;break;case +14:var +b=cHt;break;default:var +b=cHu}var +c=b;f=1}}if(!f)var +c=0;if(0!==c)aA(a);return c});h(_S,function(a){var +d=fB(a),b=m(aFT,a);if(85!==J(a))return b;aA(a);var +e=m(ro,E5(0,a));Q(a,86);var +c=W([0,d],ro,a),f=c[2],g=c[1];return[0,[0,g,[7,[0,kD(a,b),e,f,0]]]]});h(aFS,function(a){return kD(a,m(_S,a))});var +_9=function(a,b,c,d,e){var +f=kD(a,b);return[0,[0,e,[20,[0,d,f,kD(a,c),0]]]]},__=function(a,b,c){var +e=b,d=c;for(;;){var +f=J(a);if(typeof +f==="number"&&88===f){aA(a);var +g=W(0,Fi,a),j=g[2],h=h4(d,g[1]),i=_$(0,a,_9(a,e,j,1,h),h),e=i[2],d=i[1];continue}return[0,d,e]}},aF3=function(a,b,c){var +e=b,d=c;for(;;){var +f=J(a);if(typeof +f==="number"&&87===f){aA(a);var +g=W(0,Fi,a),h=__(a,g[2],g[1]),k=h[2],i=h4(d,h[1]),j=_$(0,a,_9(a,e,k,0,i),i),e=j[2],d=j[1];continue}return[0,d,e]}},_$=function(a,b,c,d){var +h=a,f=c,e=d;for(;;){var +i=J(b);if(typeof +i==="number"&&84===i){if(1-h)f4(b,cHv);Q(b,84);var +j=W(0,Fi,b),k=j[2],l=j[1],g=J(b),r=0;if(typeof +g==="number"&&1>=g-87>>>0){f4(b,[20,Z$(g)]);var +p=__(b,k,l),q=aF3(b,p[2],p[1]),n=q[2],m=q[1];r=1}if(!r)var +n=k,m=l;var +o=h4(e,m),h=1,f=_9(b,f,n,2,o),e=o;continue}return[0,e,f]}};h(aFT,function(a){var +b=W(0,Fi,a),c=b[2],d=b[1],e=J(a),h=0;if(typeof +e==="number"&&84===e){var +f=_$(1,a,c,d);h=1}if(!h)var +g=__(a,c,d),f=aF3(a,g[2],g[1]);return f[2]});var +$a=function(a,b,c,d){return[0,d,[4,[0,c,a,b,0]]]};h(Fi,function(c){var +B=0;a:for(;;){var +C=W(0,function(a){var +b=0!==m(_T,a)?1:0;return[0,b,m(_U,E5(0,a))]},c),D=C[2],p=D[2],E=D[1],g=C[1];if(98===J(c)){var +U=0;if(0===p[0]&&11===p[1][2][0]){f4(c,2);U=1}}var +F=function(z){return function(a,b){var +d=a,f=b;for(;;){var +g=J(c);if(typeof +g!=="number"&&4===g[0]){var +h=g[3],s=0;if(q(h,sx)&&q(h,anB))s=1;if(!s&&iX(c)){aA(c);var +l=kD(c,f),t=0;if(d){var +i=d[1],m=i[2],u=d[2],v=i[3],w=m[1],x=i[1];if(aFP(m[2],cHS)){var +e=$a(x,l,w,h4(v,z)),n=u;t=1}}if(!t)var +e=l,n=d;var +j=e[1];if(af(h,anB))var +o=uu(c),k=[0,[0,h4(j,o[1]),[33,[0,e,[0,o],0]]]];else if(27===J(c)){var +y=h4(j,fB(c));aA(c);var +k=[0,[0,y,[33,[0,e,0,0]]]]}else +var +p=uu(c),r=p[1],k=[0,[0,h4(j,r),[2,[0,e,[0,r,p],0]]]];var +d=n,f=k;continue}}return[0,d,f]}}}(g)(B,p),r=F[2],s=F[1],u=J(c),I=0;if(typeof +u==="number"){var +e=u-17|0,t=0;if(1>>0)if(72<=e){var +K=0;switch(e-72|0){case +0:var +a=cHw;break;case +1:var +a=cHx;break;case +2:var +a=cHy;break;case +3:var +a=cHz;break;case +4:var +a=cHA;break;case +5:var +a=cHB;break;case +6:var +a=cHC;break;case +7:var +a=cHD;break;case +8:var +a=cHE;break;case +9:var +a=cHF;break;case +10:var +a=cHG;break;case +11:var +a=cHH;break;case +12:var +a=cHI;break;case +13:var +a=cHJ;break;case +14:var +a=cHK;break;case +15:var +a=cHL;break;case +16:var +a=cHM;break;case +17:var +a=cHN;break;case +18:var +a=cHO;break;case +19:var +a=cHP;break;default:t=1;K=1}if(!K)var +v=a}else +t=1;else +var +v=e?cHQ:c[12]?0:cHR;if(!t){var +b=v;I=1}}if(!I)var +b=0;if(0!==b)aA(c);if(!s&&!b)return r;if(!b){var +n=kD(c,r),z=g,f=s;for(;;){if(!f)return[0,n];var +o=f[1],P=f[2],Q=o[2][1],R=o[1],A=h4(o[3],z),n=$a(R,n,Q,A),z=A,f=P}}var +G=b[1],H=G[1],S=G[2],T=E?14===H?1:0:E;if(T)fc(c,[0,g,42]);var +j=kD(c,r),i=[0,H,S],h=g,d=s;for(;;){var +k=i[2],w=i[1];if(d){var +l=d[1],x=l[2],L=d[2],M=l[3],N=x[1],O=l[1];if(aFP(x[2],k)){var +y=h4(M,h),j=$a(O,j,N,y),i=[0,w,k],h=y,d=L;continue}}var +B=[0,[0,j,[0,w,k],h],d];continue a}}});h(_T,function(a){var +b=J(a);if(typeof +b==="number")if(48<=b){if(iU<=b){if(iT>b)switch(b+amY|0){case +0:return cHT;case +1:return cHU;case +6:return cHV;case +7:return cHW}}else if(65===b&&a[19]){if(a[10])f4(a,7);return cHX}}else if(45<=b)switch(b+ah3|0){case +0:return cHY;case +1:return cHZ;default:return cH0}return 0});h(_U,function(a){var +h=fB(a),i=ab(a),j=m(_T,a);if(j){var +k=j[1];aA(a);var +l=W([0,h],_V,a),n=l[2],d=l[1],t=0;if(6===k){var +o=n[2],f=0;switch(o[0]){case +9:qF(a,[0,d,73]);f=1;break;case +21:if(1===o[1][2][0])fc(a,[0,d,67]);f=1;break}if(f)t=1}return[0,[0,d,[34,[0,k,n,$([0,i],0,0)]]]]}var +e=J(a),g=0;if(typeof +e==="number")if(iT===e)var +b=cH1;else if(hy===e)var +b=cH2;else +g=1;else +g=1;if(g)var +b=0;if(!b)return m(aFU,a);var +r=b[1];aA(a);var +p=W([0,h],_V,a),c=p[2],s=p[1];if(1-m(_R,c))fc(a,[0,c[1],41]);var +q=c[2],u=0;if(9===q[0]&&x7(q[1][2][1])){rn(a,78);u=1}return[0,[0,s,[35,[0,r,c,1,$([0,i],0,0)]]]]});h(_V,function(a){return kD(a,m(_U,a))});h(aFU,function(a){var +d=m(_W,a);if(lX(a))return d;var +e=J(a),f=0;if(typeof +e==="number")if(iT===e)var +c=cH3;else if(hy===e)var +c=cH4;else +f=1;else +f=1;if(f)var +c=0;if(!c)return d;var +h=c[1],b=kD(a,d);if(1-m(_R,b))fc(a,[0,b[1],41]);var +g=b[2],l=0;if(9===g[0]&&x7(g[1][2][1])){rn(a,77);l=1}var +i=fB(a);aA(a);var +j=fq(a),k=h4(b[1],i);return[0,[0,k,[35,[0,h,b,0,$(0,[0,j],0)]]]]});h(_W,function(a){var +i=fB(a),j=1-a[17],b=aEO(0,a),e=J(b),h=0;if(typeof +e==="number"){var +f=e-44|0;if(7>=f>>>0){var +d=0;switch(f){case +0:if(j)var +c=[0,m(_Z,b)];else +d=1;break;case +6:var +c=[0,m(aFV,b)];break;case +7:var +c=[0,m(_X,b)];break;default:d=1}if(!d){var +g=c;h=1}}}if(!h)var +g=v4(b)?[0,m(_2,b)]:m(_3,b);return p(ya,0,0,b,i,g)});h(Nb,function(a){return kD(a,m(_W,a))});h(_X,function(a){switch(a[22]){case +0:var +d=0,c=0;break;case +1:var +d=0,c=1;break;default:var +d=1,c=1}var +b=fB(a),g=ab(a);Q(a,51);var +e=[0,b,[28,[0,$([0,g],[0,fq(a)],0)]]],f=J(a);if(typeof +f==="number"&&11>f)switch(f){case +4:var +h=d?e:(fc(a,[0,b,i$]),[0,b,[9,rh(0,[0,b,cH6])]]);return o(_Y,0,a,b,h);case +6:case +10:var +i=c?e:(fc(a,[0,b,iQ]),[0,b,[9,rh(0,[0,b,cH7])]]);return o(_Y,0,a,b,i)}if(c)i4(cH5,a);else +fc(a,[0,b,iQ]);return e});h(aFV,function(a){return W(0,function(a){var +b=ab(a),c=fB(a);Q(a,50);if(iA(a,10)){var +d=rh(0,[0,c,cH8]),e=fB(a);us(a,cH9);var +f=rh(0,[0,e,cH_]);return[22,[0,d,f,$([0,b],[0,fq(a)],0)]]}var +g=ab(a);Q(a,4);var +h=l(_6,[0,g],0,m(ro,E5(0,a)));Q(a,5);return[10,[0,h,$([0,b],[0,fq(a)],0)]]},a)});h(ya,function(a,b,c,d,e){var +j=a?a[1]:1,h=b?b[1]:0,f=p(_1,[0,j],[0,h],c,d,e),k=aER(c),s=0;if(k){var +l=k[1];if(typeof +l==="number"&&83===l){var +g=1;s=1}}if(!s)var +g=0;function +o(a){var +b=jo(a)[2];function +c(a,b){return n(D(a,jW,62),a,b)}return n(b,kD(a,f),c)}function +q(a,b,c){var +e=m(_0,b),f=e[1],o=e[2],i=h4(d,f),k=[0,c,a,[0,f,o],0],n=0;if(!g&&!h){var +l=[5,k];n=1}if(!n)var +l=[25,[0,k,i,g]];var +q=h||g;return p(ya,[0,j],[0,q],b,d,[0,[0,i,l]])}if(c[13])return f;var +r=J(c);if(typeof +r==="number"){var +i=r-98|0;if(2>>0){if(-94===i)return q(0,c,o(c))}else if(1!==i&&iX(c)){var +t=MO(function(a,b){throw B(tf,1)},c);return MT(t,f,function(a){var +b=o(a);return q(m(Nc,a),a,b)})}}return f});h(_Y,function(a,b,c,d){var +e=a?a[1]:1;return kD(b,p(ya,[0,e],0,b,c,[0,d]))});h(_Z,function(a){return W(0,function(a){var +w=fB(a),h=ab(a);Q(a,44);if(a[11]&&10===J(a)){var +x=fq(a);aA(a);var +i=rh($([0,h],[0,x],0),[0,w,cH$]),b=J(a);if(typeof +b!=="number"&&4===b[0]&&!q(b[3],IF))return[22,[0,i,n(fm[13],0,a),0]];i4(cIa,a);aA(a);return[9,i]}var +j=fB(a),c=J(a),g=0;if(typeof +c==="number")if(44===c)var +d=m(_Z,a);else if(51===c)var +d=m(_X,_l(1,a));else +g=1;else +g=1;if(g)var +d=v4(a)?m(_2,a):m(aFY,a);var +k=o(aFW,cIb,_l(1,a),j,d),e=J(a),s=0;if(typeof +e!=="number"&&3===e[0]){var +f=o(_5,a,j,k,e[1]);s=1}if(!s)var +f=k;var +t=0;if(4!==J(a)){var +u=0;if(!iX(a)||98!==J(a))u=1;if(u){var +l=f;t=1}}if(!t)var +y=jo(a)[2],l=n(y,f,function(a,b){return n(D(a,jW,63),a,b)});var +z=iX(a)?MT(MO(function(a,b){throw B(tf,1)},a),0,Nc):0,p=J(a),v=0;if(typeof +p==="number"&&4===p){var +r=[0,m(_0,a)];v=1}if(!v)var +r=0;return[23,[0,l,z,r,$([0,h],0,0)]]},a)});var +cId=function(a){var +l=ab(a);Q(a,98);var +b=0;for(;;){var +c=J(a);if(typeof +c==="number"){var +f=0;if(99!==c&>!==c)f=1;if(!f){var +h=U(b),m=ab(a);Q(a,99);var +n=4===J(a)?jo(a)[1]:fq(a);return[0,h,jL([0,l],[0,n],m,0)]}}var +d=J(a),g=0;if(typeof +d!=="number"&&4===d[0]&&!q(d[2],rV)){var +j=fB(a),k=ab(a);us(a,cIc);var +e=[1,[0,j,[0,$([0,k],[0,fq(a)],0)]]];g=1}if(!g)var +e=[0,uu(a)];var +i=[0,e,b];if(99!==J(a))Q(a,9);var +b=i}};h(Nc,function(a){jM(a,1);var +b=98===J(a)?[0,W(0,cId,a)]:0;j8(a);return b});var +cIe=function(a){var +b=ab(a);Q(a,12);var +c=m(ro,a);return[0,c,$([0,b],0,0)]};h(_0,function(a){return W(0,function(a){var +j=ab(a);Q(a,4);var +b=0;for(;;){var +c=J(a);if(typeof +c==="number"){var +f=0;if(5!==c&>!==c)f=1;if(!f){var +h=U(b),k=ab(a);Q(a,5);return[0,h,jL([0,j],[0,fq(a)],k,0)]}}var +d=J(a),g=0;if(typeof +d==="number"&&12===d){var +e=[1,W(0,cIe,a)];g=1}if(!g)var +e=[0,m(ro,a)];var +i=[0,e,b];if(5!==J(a))Q(a,9);var +b=i}},a)});var +aF4=function(a,b,c,d,e,f){var +j=a?a[1]:1,g=b?b[1]:0,k=c?c[1]:0,s=_l(0,d),l=m(fm[7],s),n=fB(d);Q(d,7);var +o=fq(d),h=h4(e,n),q=$(0,[0,o],0),i=[0,kD(d,f),[2,l],q],r=g?[26,[0,i,h,k]]:[21,i];return p(ya,[0,j],[0,g],d,e,[0,[0,h,r]])},aF5=function(a,b,c,d,e,f){var +t=a?a[1]:1,m=b?b[1]:0,u=c?c[1]:0,n=J(d),s=0;if(typeof +n==="number"&&14===n){var +h=aE8(d),i=h[1],g=d[30][1],v=h[2][1];if(g){var +l=g[1];d[30][1]=[0,[0,l[1],[0,[0,v,i],l[2]]],g[2]]}else +fc(d,[0,i,68]);var +j=[1,h],o=i;s=1}if(!s)var +r=k0(d),j=[0,r],o=r[1];var +k=h4(e,o),x=0;if(0===f[0]&&28===f[1][2][0]&&1===j[0]){fc(d,[0,k,87]);x=1}var +q=[0,kD(d,f),j,0],w=m?[26,[0,q,k,u]]:[21,q];return p(ya,[0,t],[0,m],d,e,[0,[0,k,w]])};h(_1,function(a,b,c,d,e){var +f=a?a[1]:1,h=b?b[1]:0,g=J(c);if(typeof +g==="number")switch(g){case +6:aA(c);return aF4([0,f],[0,h],0,c,d,e);case +10:aA(c);return aF5([0,f],[0,h],0,c,d,e);case +83:if(1-f)f4(c,64);Q(c,83);var +i=J(c);if(typeof +i==="number")switch(i){case +4:return e;case +6:aA(c);return aF4([0,f],cIi,cIh,c,d,e);case +98:if(iX(c))return e;break}else if(3===i[0]){f4(c,65);return e}return aF5([0,f],cIg,cIf,c,d,e)}else if(3===g[0]){var +j=g[1];if(h)f4(c,65);return p(ya,cIj,0,c,d,[0,o(_5,c,d,kD(c,e),j)])}return e});h(aFW,function(a,b,c,d){var +e=a?a[1]:1;return kD(b,p(_1,[0,e],0,b,c,[0,d]))});h(_2,function(a){return W(0,function(a){var +e=Na(a),c=e[1],t=e[2],f=W(0,function(a){var +u=ab(a);Q(a,15);var +f=Bd(a),d=f[1],v=pU([0,t,[0,u,[0,f[2],0]]]);if(4===J(a))var +h=0,g=0;else{var +p=J(a),s=0;if(typeof +p==="number"&&98===p){var +q=0;s=1}if(!s)var +r=_h(d,_i(c,a)),q=[0,r8(r,n(fm[13],cIk,r))];var +h=ms(a,p5(a)),g=q}var +b=x5(0,a),w=c||b[19],i=m(Bc(w,d),b),x=86===J(b)?i:E$(b,i),j=_J(b),e=j[2],k=j[1];if(e)var +o=aE4(b,e),l=k;else +var +o=e,l=A$(b,k);return[0,g,x,d,o,l,h,v]},a),b=f[2],g=b[3],d=b[2],h=b[1],j=b[7],k=b[6],l=b[5],o=b[4],p=f[1],i=Fg(a,c,g,1,x9(d)),q=i[1];Bb(a,i[2],h,d);return[8,[0,h,d,q,c,g,o,l,k,$([0,j],0,0),p]]},a)});h(Nd,function(a,b,c){switch(b){case +1:rn(a,81);try{var +j=D4(xC(P(cIn,c))),d=j}catch(f){var +g=fk(f);if(g[1]!==j2)throw B(g,0);var +d=X(P(cIm,c))}break;case +2:rn(a,80);try{var +k=D1(c),d=k}catch(f){var +h=fk(f);if(h[1]!==j2)throw B(h,0);var +d=X(P(cIo,c))}break;case +4:try{var +l=D1(c),d=l}catch(f){var +i=fk(f);if(i[1]!==j2)throw B(i,0);var +d=X(P(cIp,c))}break;default:try{var +f=D4(xC(c)),d=f}catch(f){var +e=fk(f);if(e[1]!==j2)throw B(e,0);var +d=X(P(cIl,c))}}Q(a,[0,b,c]);return d});h(aFX,function(a){var +b=Z(a),d=0;if(0!==b&&hr===fl(a,b-1|0)){var +c=f1(a,0,b-1|0);d=1}if(!d)var +c=a;return c});h(Ne,function(a,b,c){var +d=aui(m(aFX,c));Q(a,[1,b,c]);return d});h(_3,function(a){var +d=fB(a),c=ab(a),b=J(a);if(typeof +b==="number")switch(b){case +0:var +g=m(fm[12],a);return[1,[0,g[1],[24,g[2]]],g[3]];case +4:return[0,m(aFZ,a)];case +6:var +s=W(0,aF0,a),t=s[2];return[1,[0,s[1],[0,t[1]]],t[2]];case +21:aA(a);return[0,[0,d,[31,[0,$([0,c],[0,fq(a)],0)]]]];case +29:aA(a);return[0,[0,d,[15,$([0,c],[0,fq(a)],0)]]];case +40:return[0,m(fm[22],a)];case +98:var +u=m(fm[17],a),h=u[2],E=u[1],F=sz<=h[1]?[12,h[2]]:[11,h[2]];return[0,[0,E,F]];case +30:case +31:aA(a);return[0,[0,d,[14,[0,31===b?1:0,$([0,c],[0,fq(a)],0)]]]];case +74:case +105:return[0,m(aF1,a)]}else +switch(b[0]){case +0:var +v=b[2],G=l(Nd,a,b[1],v);return[0,[0,d,[16,[0,G,v,$([0,c],[0,fq(a)],0)]]]];case +1:var +w=b[2],H=l(Ne,a,b[1],w);return[0,[0,d,[17,[0,H,w,$([0,c],[0,fq(a)],0)]]]];case +2:var +f=b[1],i=f[3],e=f[2],j=f[1];if(f[4])rn(a,81);aA(a);var +k=$([0,c],[0,fq(a)],0),x=a[28],y=x[6],z=x[7],p=0;if(y){var +A=y[1];if(s4(A,e))var +o=[19,[0,e,j,Z(A),0,i,k]];else +p=1}else +p=1;if(p){var +D=0;if(z){var +B=z[1];if(s4(B,e)){var +o=[19,[0,e,j,Z(B),1,i,k]];D=1}}if(!D)var +o=[13,[0,e,i,k]]}return[0,[0,j,o]];case +3:var +C=n(_4,a,b[1]);return[0,[0,C[1],[30,C[2]]]];case +4:if(!q(b[3],aiI)&&40===gQ(1,a))return[0,m(fm[22],a)];break}if(te(a)){var +r=n(fm[13],0,a);return[0,[0,r[1],[9,r]]]}i4(0,a);var +I=0;if(typeof +b!=="number"&&7===b[0]){aA(a);I=1}return[0,[0,d,[15,$([0,c],cIq,0)]]]});h(aFY,function(a){return kD(a,m(_3,a))});h(_4,function(a,b){var +p=b[5],i=b[1],D=b[3],E=b[2],F=ab(a);Q(a,[3,b]);var +q=[0,i,[0,[0,D,E],p]];if(p)var +t=0,s=[0,q,0],r=i;else{var +e=[0,q,0],j=0;for(;;){var +f=m(fm[7],a),g=[0,f,j],k=J(a),u=0;if(typeof +k==="number"&&1===k){jM(a,4);var +h=J(a),v=0;if(typeof +h==="number"||!(3===h[0]))v=1;else{var +c=h[1],l=c[5],n=c[1],w=c[3],x=c[2];aA(a);j8(a);var +o=[0,[0,n,[0,[0,w,x],l]],e];if(!l){var +e=o,j=g;continue}var +y=U(g),d=[0,n,U(o),y];u=1}if(v)throw B([0,aL,cIr],1)}if(!u){i4(cIs,a);var +z=[0,f[1],cIt],A=U(g),C=U([0,z,e]),d=[0,f[1],C,A]}var +t=d[3],s=d[2],r=d[1];break}}var +G=fq(a),H=h4(i,r);return[0,H,[0,s,t,$([0,F],[0,G],0)]]});h(_5,function(a,b,c,d){var +f=jo(a)[2],g=n(f,c,function(a,b){return n(D(a,jW,3),a,b)}),e=n(_4,a,d);return[0,h4(b,e[1]),[29,[0,g,e,0]]]});h(aFZ,function(a){var +d=ab(a),c=W(0,function(a){Q(a,4);var +f=fB(a),b=m(ro,a),c=J(a),e=0;if(typeof +c==="number")if(9===c)var +d=[0,l(Nf,a,f,[0,b,0])];else if(86===c)var +d=[1,[0,b,x$(a),0]];else +e=1;else +e=1;if(e)var +d=[0,b];Q(a,5);return d},a),b=c[2],e=c[1],f=fq(a),g=0===b[0]?b[1]:[0,e,[32,b[1]]];return l(_6,[0,d],[0,f],g)});h(_6,function(a,b,c){var +d=c[2],S=c[1],I=a?a[1]:0,J=b?b[1]:0;function +f(a){return lq(a,$([0,I],[0,J],0))}function +K(a){return Z5(a,$([0,I],[0,J],0))}switch(d[0]){case +0:var +L=d[1],T=K(L[2]),e=[0,[0,L[1],T]];break;case +1:var +g=d[1],U=g[10],V=f(g[9]),e=[1,[0,g[1],g[2],g[3],g[4],g[5],g[6],g[7],g[8],V,U]];break;case +3:var +k=d[1],W=f(k[4]),e=[3,[0,k[1],k[2],k[3],W]];break;case +4:var +l=d[1],X=f(l[4]),e=[4,[0,l[1],l[2],l[3],X]];break;case +5:var +m=d[1],Y=f(m[4]),e=[5,[0,m[1],m[2],m[3],Y]];break;case +6:var +i=d[1],Z=f(i[7]),e=[6,[0,i[1],i[2],i[3],i[4],i[5],i[6],Z]];break;case +7:var +n=d[1],_=f(n[4]),e=[7,[0,n[1],n[2],n[3],_]];break;case +8:var +h=d[1],aa=h[10],ab=f(h[9]),e=[8,[0,h[1],h[2],h[3],h[4],h[5],h[6],h[7],h[8],ab,aa]];break;case +9:var +M=d[1],N=M[2],ac=M[1],ad=f(N[2]),e=[9,[0,ac,[0,N[1],ad]]];break;case +10:var +O=d[1],ae=f(O[2]),e=[10,[0,O[1],ae]];break;case +11:var +o=d[1],af=f(o[4]),e=[11,[0,o[1],o[2],o[3],af]];break;case +12:var +p=d[1],ag=f(p[4]),e=[12,[0,p[1],p[2],p[3],ag]];break;case +13:var +w=d[1],ah=f(w[3]),e=[13,[0,w[1],w[2],ah]];break;case +14:var +P=d[1],ai=f(P[2]),e=[14,[0,P[1],ai]];break;case +15:var +e=[15,f(d[1])];break;case +16:var +x=d[1],aj=f(x[3]),e=[16,[0,x[1],x[2],aj]];break;case +17:var +y=d[1],ak=f(y[3]),e=[17,[0,y[1],y[2],ak]];break;case +18:var +q=d[1],al=f(q[4]),e=[18,[0,q[1],q[2],q[3],al]];break;case +19:var +j=d[1],am=f(j[6]),e=[19,[0,j[1],j[2],j[3],j[4],j[5],am]];break;case +20:var +r=d[1],an=f(r[4]),e=[20,[0,r[1],r[2],r[3],an]];break;case +21:var +z=d[1],ao=f(z[3]),e=[21,[0,z[1],z[2],ao]];break;case +22:var +A=d[1],ap=f(A[3]),e=[22,[0,A[1],A[2],ap]];break;case +23:var +s=d[1],aq=f(s[4]),e=[23,[0,s[1],s[2],s[3],aq]];break;case +24:var +Q=d[1],ar=K(Q[2]),e=[24,[0,Q[1],ar]];break;case +25:var +B=d[1],t=B[1],as=B[3],at=B[2],au=f(t[4]),e=[25,[0,[0,t[1],t[2],t[3],au],at,as]];break;case +26:var +C=d[1],D=C[1],av=C[3],aw=C[2],ax=f(D[3]),e=[26,[0,[0,D[1],D[2],ax],aw,av]];break;case +27:var +R=d[1],ay=f(R[2]),e=[27,[0,R[1],ay]];break;case +28:var +e=[28,[0,f(d[1][1])]];break;case +29:var +E=d[1],az=f(E[3]),e=[29,[0,E[1],E[2],az]];break;case +30:var +F=d[1],aA=f(F[3]),e=[30,[0,F[1],F[2],aA]];break;case +31:var +e=[31,[0,f(d[1][1])]];break;case +32:var +G=d[1],aB=f(G[3]),e=[32,[0,G[1],G[2],aB]];break;case +34:var +H=d[1],aC=f(H[3]),e=[34,[0,H[1],H[2],aC]];break;case +35:var +u=d[1],aD=f(u[4]),e=[35,[0,u[1],u[2],u[3],aD]];break;case +36:var +v=d[1],aE=v[4],aF=v[3],aG=f(v[2]),e=[36,[0,v[1],aG,aF,aE]];break;default:var +e=d}return[0,S,e]});h(aF0,function(a){var +x=ab(a);Q(a,6);var +b=[0,0,r_];for(;;){var +d=b[2],e=b[1],c=J(a);if(typeof +c==="number"){var +h=0;if(13<=c){if(gt===c)h=1}else if(7<=c)switch(c-7|0){case +0:h=1;break;case +2:var +t=fB(a);aA(a);var +b=[0,[0,[2,t],e],d];continue;case +5:var +u=ab(a),k=W(0,function(a){aA(a);var +b=m(Be,a);return 0===b[0]?[0,b[1],r_]:[0,b[1],b[2]]},a),l=k[2],g=l[2],n=k[1],v=l[1],w=[1,[0,n,[0,v,$([0,u],0,0)]]],o=7===J(a)?1:0,q=0;if(!o&&7===gQ(1,a)){var +p=[0,g[1],[0,[0,n,20],g[2]]];q=1}if(!q)var +p=g;if(1-o)Q(a,9);var +b=[0,[0,w,e],_Q(p,d)];continue}if(h){var +r=aFO(d),s=U(e),y=ab(a);Q(a,7);return[0,[0,s,jL([0,x],[0,fq(a)],y,0)],r]}}var +f=m(Be,a);if(0===f[0])var +j=r_,i=f[1];else +var +j=f[2],i=f[1];if(7!==J(a))Q(a,9);var +b=[0,[0,[0,i],e],_Q(j,d)]}});h(aF1,function(a){jM(a,5);var +l=fB(a),m=ab(a),c=J(a),k=0;if(typeof +c!=="number"&&5===c[0]){var +i=c[3],j=c[2];aA(a);var +n=fq(a),f=n,b=i,e=j,d=P(cIz,P(j,P(cIy,i)));k=1}if(!k){i4(cIu,a);var +f=0,b=cIv,e=cIw,d=cIx}j8(a);var +g=g4(Z(b));Vx(function(a){var +b=a-100|0;if(21>=b>>>0)switch(b){case +0:case +3:case +5:case +9:case +15:case +17:case +21:return iM(g,a)}return 0},b);var +h=h0(g);if(q(h,b))f4(a,[18,b]);return[0,l,[18,[0,e,h,d,$([0,m],[0,f],0)]]]});var +cIA=function(a){return function(a){if(typeof +a==="number"){var +b=0;if(66<=a){var +c=a+aUW|0;if(49>>0)b=1;else{var +d=c-15|0;if(9>=d>>>0)switch(d){case +0:case +1:case +3:case +9:b=1;break}}}else +if(8<=a){if(60===a)b=1}else if(6<=a)b=1;if(b)return 0}throw B(tf,1)}},cIB=function(a){var +b=J(a);if(typeof +b==="number"&&!b){var +c=n(fm[16],1,a);return[0,[0,c[1]],c[2]]}return[0,[1,m(fm[10],a)],0]};h(_7,function(a){var +c=MO(cIA,a),x=fB(c);if(11===gQ(1,c))var +k=0,d=0;else +var +u=Na(c),k=u[2],d=u[1];var +l=d||c[19],e=_i(l,c),y=e[18],o=W(0,function(a){var +c=ms(a,p5(a));if(te(a)&&0===c){var +d=n(fm[13],cIC,a),b=d[1],g=[0,b,[0,[0,b,[2,[0,d,[0,uq(a)],0]]],0]];return[0,c,[0,b,[0,0,[0,g,0],0,0]],[0,[0,b[1],b[3],b[3]]],0]}var +e=m(Bc(l,y),a);aFG(a,e);var +f=_J(x6(1,a));return[0,c,e,f[1],f[2]]},e),f=o[2],g=f[2],j=g[2],v=0,z=f[4],A=f[3],B=f[1],C=o[1];if(!j[1]){var +w=0,K=j[2];if(j[3]||!K)w=1;if(w){var +b=aES(e);v=1}}if(!v)var +b=e;var +h=g[2],p=h[1];if(p){var +D=g[1];fc(b,[0,p[1][1],91]);var +i=[0,D,[0,0,h[2],h[3],h[4]]]}else +var +i=g;var +E=x9(i),q=lX(b),F=q?11===J(b)?1:0:q;if(F)f4(b,60);Q(b,11);var +r=aET(aES(b),d,0,E),s=W(0,cIB,r),t=s[2],G=t[1],H=s[1];Bb(r,t[2],0,i);var +I=h4(x,H);return[0,[0,I,[1,[0,0,i,G,d,0,z,A,B,$([0,k],0,0),C]]]]});h(Nf,function(a,b,c){return W([0,b],function(a){var +b=c;for(;;){var +d=J(a);if(typeof +d==="number"&&9===d){aA(a);var +b=[0,m(ro,a),b];continue}return[27,[0,U(b),0]]}},a)});var +cID=function(a){var +e=ab(a);aA(a);var +f=$([0,e],0,0),b=m(Nb,a),c=lX(a)?E_(a):MU(a),d=c[2];return[0,n(d,b,function(a,b){return n(D(a,jW,64),a,b)}),f]},$b=function(a){if(!a[28][3])return 0;var +b=0;for(;;){var +c=J(a);if(typeof +c==="number"&&13===c){var +b=[0,W(0,cID,a),b];continue}return U(b)}},v8=function(a,b){var +B=a?a[1]:0,f=ab(b),c=J(b);if(typeof +c==="number")switch(c){case +6:var +k=W(0,function(a){var +b=ab(a);Q(a,6);var +d=E5(0,a),c=m(fm[10],d);Q(a,7);return[0,c,$([0,b],[0,fq(a)],0)]},b),o=k[1];return[0,o,[5,[0,o,k[2]]]];case +14:if(!B){var +p=W(0,function(a){aA(a);return[3,k0(a)]},b),q=p[1],E=p[2];fc(b,[0,q,68]);return[0,q,E]}var +g=aE8(b),e=b[30][1],C=g[2][1],D=g[1];if(e){var +i=e[1],y=e[2],z=i[2],A=[0,[0,n(kZ[4],C,i[1]),z],y];b[30][1]=A}else +X(cEq);return[0,D,[4,g]]}else +switch(c[0]){case +0:var +r=c[2],F=c[1],s=fB(b),G=l(Nd,b,F,r);return[0,s,[1,[0,s,[0,G,r,$([0,f],[0,fq(b)],0)]]]];case +1:var +t=c[2],H=c[1],u=fB(b),I=l(Ne,b,H,t);return[0,u,[2,[0,u,[0,I,t,$([0,f],[0,fq(b)],0)]]]];case +2:var +d=c[1],v=d[4],w=d[3],x=d[2],h=d[1];if(v)rn(b,81);Q(b,[2,[0,h,x,w,v]]);return[0,h,[0,[0,h,[0,x,w,$([0,f],[0,fq(b)],0)]]]]}var +j=k0(b);return[0,j[1],[3,j]]},Nh=function(a,b,c){var +e=Bd(a),h=e[1],k=e[2],f=v8([0,b],a),d=f[1],g=0,i=r9(a,f[2]);return[0,i,W(0,function(a){var +f=x5(1,a),i=W(0,function(a){var +g=m(Bc(0,0),a),l=0,e=86===J(a)?g:E$(a,g);if(c){var +f=e[2],i=0;if(f[1]){fc(a,[0,d,28]);i=1}else{var +j=0;if(f[2]||f[3])j=1;else +i=1;if(j)fc(a,[0,d,27])}}else{var +b=e[2];if(b[1])fc(a,[0,d,71]);else{var +h=b[2],k=0;if(h&&!h[2]&&!b[3])k=1;if(!k)if(b[3])fc(a,[0,d,70]);else +fc(a,[0,d,70])}}return[0,l,e,A$(a,_I(a))]},f),b=i[2],e=b[2],l=b[3],n=b[1],o=i[1],j=Fg(f,g,h,0,x9(e)),p=j[1];Bb(f,j[2],0,e);return[0,0,e,p,g,h,0,l,n,$([0,k],0,0),o]},a)]},aF6=function(a){var +b=m(Be,a);return 0===b[0]?[0,b[1],r_]:[0,b[1],b[2]]},aF7=function(a,b){switch(b[0]){case +0:var +e=b[1],f=e[1],m=e[2];fc(a,[0,f,53]);return[0,f,[13,m]];case +1:var +g=b[1],h=g[1],n=g[2];fc(a,[0,h,53]);return[0,h,[16,n]];case +2:var +i=b[1],j=i[1],o=i[2];fc(a,[0,j,53]);return[0,j,[17,o]];case +3:var +c=b[1],k=c[2][1],d=c[1];if(MP(k))fc(a,[0,d,hZ]);else if(A9(k))qF(a,[0,d,85]);return[0,d,[9,c]];case +4:return X(cIE);default:var +l=b[1][2][1];fc(a,[0,l[1],8]);return l}},aF8=function(d,b,c){function +e(a){var +g=x5(1,a),h=W(0,function(a){var +e=ms(a,p5(a)),c=m(Bc(d,b),a),f=86===J(a)?c:E$(a,c);return[0,e,f,A$(a,_I(a))]},g),e=h[2],f=e[2],j=e[3],k=e[1],l=h[1],i=Fg(g,d,b,0,x9(f)),n=i[1];Bb(g,i[2],0,f);return[0,0,f,n,d,b,0,j,k,$([0,c],0,0),l]}var +f=0;return function(a){return W(f,e,a)}},aF9=function(a){Q(a,86);return aF6(a)},$c=function(a,b,c,d,e,f){var +g=W([0,b],function(a){if(!d&&!e){var +b=J(a);if(typeof +b==="number"){var +i=0;if(86<=b){if(98===b)i=1;else if(87>b){var +j=aF9(a);return[0,[0,c,j[1],0],j[2]]}}else{if(82===b){if(3===c[0])var +g=c[1],k=fB(a),l=function(a){var +b=ab(a);Q(a,82);var +c=fq(a),d=n(fm[19],a,[0,g[1],[9,g]]),e=m(fm[10],a);return[3,[0,0,d,e,$([0,b],[0,c],0)]]},o=W([0,g[1]],l,a),h=[0,o,[0,[0,[0,k,[24,Mn(cIF)]],0],0]];else +var +h=aF9(a);return[0,[0,c,h[1],1],h[2]]}if(10>b)switch(b){case +4:i=1;break;case +1:case +9:return[0,[0,c,aF7(a,c),1],r_]}}if(i){var +q=r9(a,c);return[0,[1,q,m(aF8(d,e,f),a)],r_]}}return[0,[0,c,aF7(a,c),1],r_]}var +p=r9(a,c);return[0,[1,p,m(aF8(d,e,f),a)],r_]},a),h=g[2];return[0,[0,[0,g[1],h[1]]],h[2]]},cIG=function(a){if(12===J(a)){var +F=ab(a),o=W(0,function(a){Q(a,12);return aF6(a)},a),p=o[2],G=p[2],H=p[1],I=o[1];return[0,[1,[0,I,[0,H,$([0,F],0,0)]]],G]}var +e=fB(a),b=gQ(1,a),y=0;if(typeof +b==="number"){var +f=0;if(86<=b){if(98!==b&&87<=b)f=1}else if(82!==b)if(10<=b)f=1;else +switch(b){case +1:case +4:case +9:break;default:f=1}if(!f){var +r=0,i=0;y=1}}if(!y)var +x=Na(a),r=x[2],i=x[1];var +s=Bd(a),t=s[1],K=V(r,s[2]),j=J(a);if(!i&&!t&&typeof +j!=="number"&&4===j[0]){var +u=j[3];if(!q(u,w1)){var +M=ab(a),w=v8(0,a)[2],d=J(a);if(typeof +d==="number"){var +h=0;if(86<=d){if(98!==d&&87<=d)h=1}else if(82!==d)if(10<=d)h=1;else +switch(d){case +1:case +4:case +9:break;default:h=1}if(!h)return $c(a,e,w,0,0,0)}r9(a,w);var +k=W([0,e],function(a){return Nh(a,0,1)},a),l=k[2],z=l[2],A=l[1],B=k[1];return[0,[0,[0,B,[2,A,z,$([0,M],0,0)]]],r_]}if(!q(u,zJ)){var +L=ab(a),v=v8(0,a)[2],c=J(a);if(typeof +c==="number"){var +g=0;if(86<=c){if(98!==c&&87<=c)g=1}else if(82!==c)if(10<=c)g=1;else +switch(c){case +1:case +4:case +9:break;default:g=1}if(!g)return $c(a,e,v,0,0,0)}r9(a,v);var +m=W([0,e],function(a){return Nh(a,0,0)},a),n=m[2],C=n[2],D=n[1],E=m[1];return[0,[0,[0,E,[3,D,C,$([0,L],0,0)]]],r_]}}return $c(a,e,v8(0,a)[2],i,t,K)},cIH=function(a){var +b=W(0,function(a){var +y=ab(a);Q(a,0);var +d=0,c=[0,0,r_];for(;;){var +b=c[2],j=c[1],e=J(a);if(typeof +e==="number"){var +p=0;if(1!==e&>!==e)p=1;if(!p){var +u=d?[0,b[1],[0,[0,d[1],95],b[2]]]:b,v=aFO(u),w=U(j),z=ab(a);Q(a,1);return[0,[0,w,jL([0,y],[0,fq(a)],z,0)],v]}}var +k=cIG(a),l=k[1],q=0,x=k[2];if(1===l[0]&&9===J(a)){var +m=[0,fB(a)];q=1}if(!q)var +m=0;var +f=_Q(x,b),n=J(a),r=0;if(typeof +n==="number"){var +g=n-2|0,h=0;if(hr>>0){if(hy>=g+1>>>0)h=1}else if(7===g){aA(a);h=1}if(h){var +o=f;r=1}}if(!r){var +s=_a(cEx,9),t=aEY([0,s],J(a)),i=[0,fB(a),t];iA(a,8);var +o=[0,[0,i,f[1]],[0,i,f[2]]]}var +d=m,c=[0,[0,l,j],o]}},a),c=b[2];return[0,b[1],c[1],c[2]]},Ni=function(a,b,c,d){var +e=c[2][1],g=c[1];if(af(e,ig)){fc(a,[0,g,[15,e,0,aV1===d?1:0,1]]);return b}var +h=n(Ng[32],e,b);if(!h)return l(Ng[4],e,d,b);var +i=h[1],f=0;if(aoY===d){if(arZ===i)f=1}else if(arZ===d&&aoY===i)f=1;if(!f)fc(a,[0,g,[1,e]]);return l(Ng[4],e,a0R,b)},aF_=function(a,b){return W(0,function(a){var +g=b?ab(a):0;Q(a,52);var +c=0;for(;;){var +d=[0,W(0,function(a){var +b=tg(a);if(98===J(a))var +d=jo(a)[2],c=n(d,b,function(a,b){return n(D(a,CJ,65),a,b)});else +var +c=b;return[0,c,aFA(a)]},a),c],e=J(a);if(typeof +e==="number"&&9===e){Q(a,9);var +c=d;continue}var +f=U(d);return[0,f,$([0,g],0,0)]}},a)},$d=function(a){switch(a[0]){case +0:case +3:var +b=a[1];return[0,[0,b[1],b[2][1]]];default:return 0}},$e=function(a,b){return b?fc(a,[0,b[1][1],hy]):0},$f=function(a,b){return b?fc(a,[0,b[1],13]):0},aF$=function(a,b,c,d,e,f,g,h){var +k=W([0,b],function(a){var +c=_H(a),i=J(a);if(f){var +v=0;if(typeof +i==="number"&&82===i){f4(a,14);aA(a);var +b=0}else +v=1;if(v)var +b=0}else{var +w=0;if(typeof +i==="number"&&82===i){aA(a);var +I=x5(1,a),b=[0,m(fm[7],I)];w=1}if(!w)var +b=1}var +j=J(a),r=0;if(typeof +j==="number"&&9>j)switch(j){case +8:aA(a);var +q=J(a),s=0;if(typeof +q==="number"){var +x=0;if(1===q||gt===q)x=1;else +s=1;if(x)var +u=fq(a)}else +s=1;if(s)var +u=lX(a)?v5(a):0;var +e=[0,d,c,b,u];r=1;break;case +4:case +6:i4(0,a);var +e=[0,d,c,b,0];r=1;break}if(!r){var +k=J(a),t=0;if(typeof +k==="number"){var +y=0;if(1===k||gt===k)y=1;else +t=1;if(y)var +g=[0,0,function(a,b){return a}]}else +t=1;if(t)var +g=lX(a)?E_(a):MU(a);if(typeof +b==="number")if(0===c[0])var +z=function(a,b){return n(D(a,aVt,68),a,b)},p=b,o=c,l=n(g[2],d,z);else +var +A=c[1],B=function(a,b){return n(D(a,Da,69),a,b)},p=b,o=[1,n(g[2],A,B)],l=d;else +var +C=b[1],E=function(a,b){return n(D(a,jW,70),a,b)},p=[0,n(g[2],C,E)],o=c,l=d;var +e=[0,l,o,p,0]}var +F=e[3],G=e[2],H=e[1];return[0,H,G,F,$([0,h],[0,e[4]],0)]},a),i=k[2],l=i[4],o=i[3],p=i[2],j=i[1],q=k[1];return 4===j[0]?[2,[0,q,[0,j[1],o,p,e,g,c,l]]]:[1,[0,q,[0,j,o,p,e,g,c,l]]]},$g=function(a,b,c,d,e,f,g,h,i,j){for(;;){var +t=J(a);if(typeof +t==="number"){var +p=t-1|0,r=0;if(7

    >>0){var +u=p-81|0;if(4>=u>>>0)switch(u){case +3:i4(0,a);aA(a);continue;case +0:case +4:r=1;break}}else if(5>>0)r=1;if(r&&!e&&!f)return aF$(a,b,c,d,g,h,i,j)}var +o=J(a),A=0;if(typeof +o==="number"&&(4===o||98===o))var +v=0;else +A=1;if(A)var +v=A_(a)?1:0;if(v)return aF$(a,b,c,d,g,h,i,j);$f(a,h);$e(a,i);var +k=$d(d),s=0;if(g){if(k){var +w=k[1],B=w[1];if(!q(w[2],sU)){fc(a,[0,B,[15,cIK,g,1,0]]);var +n=x5(1,a),l=1;s=1}}}else if(k){var +y=k[1],z=y[1];if(!q(y[2],ig)){if(e)fc(a,[0,z,10]);if(f)fc(a,[0,z,11]);var +n=x5(2,a),l=0;s=1}}if(!s)var +n=x5(1,a),l=1;var +C=r9(n,d),x=W(0,function(a){var +d=W(0,function(a){var +j=ms(a,p5(a)),d=m(Bc(e,f),a),c=86===J(a)?d:E$(a,d),b=c[2],g=b[1],i=0;if(g){var +k=g[1][1],n=c[1];if(0===l){fc(a,[0,k,92]);var +h=[0,n,[0,0,b[2],b[3],b[4]]];i=1}}if(!i)var +h=c;return[0,j,h,A$(a,_I(a))]},a),b=d[2],c=b[2],h=b[3],i=b[1],j=d[1],g=Fg(a,e,f,0,x9(c)),k=g[1];Bb(a,g[2],0,c);return[0,0,c,k,e,f,0,h,i,0,j]},n),D=[0,l,C,x,g,c,$([0,j],0,0)];return[0,[0,h4(b,x[1]),D]]}},$h=function(a,b){var +c=gQ(a,b);if(typeof +c==="number"){var +d=0;if(86<=c){if(98!==c&&87<=c)d=1}else if(82!==c)if(9<=c)d=1;else +switch(c){case +1:case +4:case +8:break;default:d=1}if(!d)return 1}return 0},cIL=0,aGa=function(a){return $h(cIL,a)},cIM=function(a){var +g=fB(a),h=$b(a),H=J(a),aa=0;if(typeof +H==="number"&&60===H&&!$h(1,a)){var +aF=[0,fB(a)],aG=ab(a);aA(a);var +I=aG,f=aF;aa=1}if(!aa)var +I=0,f=0;var +o=J(a),aH=0;if(typeof +o==="number"&&2>=o+a18>>>0&&v3(1,a)){var +ac=0;if(typeof +o==="number"){var +Z=o+a18|0;if(2>=Z>>>0){switch(Z){case +0:var +w=aTX;break;case +1:var +w=HC;break;default:var +w=HP}var +_=w;ac=1}}if(!ac)var +_=X(cIQ);f4(a,[22,_]);aA(a);aH=1}var +K=42===J(a)?1:0;if(K){var +i=gQ(1,a),ad=0;if(typeof +i==="number"){var +r=0;if(87<=i){if(98!==i&>!==i)r=1}else{var +p=i-9|0;if(76

    >>0){if(77>p)switch(p+9|0){case +1:case +4:case +8:break;default:r=1}}else if(73!==p)r=1}if(!r){var +L=0;ad=1}}if(!ad)var +L=1;var +b=L}else +var +b=K;if(b){var +av=ab(a);aA(a);var +M=av}else +var +M=0;var +N=64===J(a)?1:0;if(N)var +O=1-$h(1,a),c=O?1-E7(1,a):O;else +var +c=N;if(c){var +aw=ab(a);aA(a);var +P=aw}else +var +P=0;var +Q=Bd(a),u=Q[1],ax=Q[2],ay=v3(1,a),az=ay||(6===gQ(1,a)?1:0),t=fB(a),l=J(a),s=0;if(typeof +l==="number")switch(l){case +103:var +ak=ab(a);aA(a);var +e=[0,[0,t,[0,0,$([0,ak],0,0)]]];s=1;break;case +104:var +al=ab(a);aA(a);var +e=[0,[0,t,[0,1,$([0,al],0,0)]]];s=1;break}else if(4===l[0]&&!q(l[3],tQ)&&az){var +am=ab(a);aA(a);var +e=[0,[0,t,[0,2,$([0,am],0,0)]]];s=1}if(!s)var +e=0;var +ae=0;if(e){var +af=0,aj=e[1][1];if(c||u)af=1;if(af){fc(a,[0,aj,hy]);var +d=0;ae=1}}if(!ae)var +d=e;var +ag=0;if(!u&&d){var +Y=Bd(a),R=Y[2],j=Y[1];ag=1}if(!ag)var +R=ax,j=u;var +k=pU([0,I,[0,M,[0,P,[0,R,0]]]]),v=J(a);if(!c&&!j&&typeof +v!=="number"&&4===v[0]){var +S=v[3];if(!q(S,w1)){var +aD=ab(a),U=v8(cIP,a)[2];if(aGa(a))return $g(a,g,h,U,c,j,b,f,d,k);$f(a,f);$e(a,d);r9(a,U);var +aE=V(k,aD),x=W([0,g],function(a){return Nh(a,1,1)},a),y=x[2],z=y[1],an=y[2],ao=x[1],m=$d(z),ai=0;if(b){if(m){var +A=m[1],ap=A[1];if(!q(A[2],sU)){fc(a,[0,ap,[15,cII,b,0,0]]);ai=1}}}else if(m){var +B=m[1],aq=B[1];if(!q(B[2],ig)){fc(a,[0,aq,9]);ai=1}}return[0,[0,ao,[0,2,z,an,b,h,$([0,aE],0,0)]]]}if(!q(S,zJ)){var +aB=ab(a),T=v8(cIO,a)[2];if(aGa(a))return $g(a,g,h,T,c,j,b,f,d,k);$f(a,f);$e(a,d);r9(a,T);var +aC=V(k,aB),C=W([0,g],function(a){return Nh(a,1,0)},a),D=C[2],E=D[1],ar=D[2],as=C[1],n=$d(E),ah=0;if(b){if(n){var +F=n[1],at=F[1];if(!q(F[2],sU)){fc(a,[0,at,[15,cIJ,b,0,0]]);ah=1}}}else if(n){var +G=n[1],au=G[1];if(!q(G[2],ig)){fc(a,[0,au,9]);ah=1}}return[0,[0,as,[0,3,E,ar,b,h,$([0,aC],0,0)]]]}}return $g(a,g,h,v8(cIN,a)[2],c,j,b,f,d,k)},aGb=function(a,b,c,d){var +z=a?a[1]:0,e=up(1,b),A=V(z,$b(e)),B=ab(e),g=J(e),H=0;if(typeof +g!=="number"&&4===g[0]&&!q(g[3],aiI)){f4(e,88);aA(e);H=1}Q(e,40);var +s=_j(1,e),f=J(s),u=0;if(c&&typeof +f==="number"){var +i=0;if(52<=f){if(98!==f&&53<=f)i=1}else if(41!==f&&f)i=1;if(!i){var +h=0;u=1}}if(!u)if(te(e))var +F=n(fm[13],0,s),G=jo(e)[2],h=[0,n(G,F,function(a,b){return n(D(a,CJ,72),a,b)})];else{aEZ(e,cIT);var +h=[0,[0,fB(e),cIU]]}var +p=p5(e);if(p)var +C=p[1],E=jo(e)[2],r=[0,n(E,C,function(a,b){return n(D(a,u9,71),a,b)})];else +var +r=0;var +v=ab(e);if(iA(e,41))var +t=W(0,function(a){var +b=m(Nb,_h(0,a));if(98===J(a))var +d=jo(a)[2],c=n(d,b,function(a,b){return n(D(a,jW,66),a,b)});else +var +c=b;var +e=aFA(a);return[0,c,e,$([0,v],0,0)]},e),j=t[1],w=t[2],x=jo(e)[2],k=[0,[0,j,n(x,w,function(a,b){return l(D(a,a2z,67),a,j,b)})]];else +var +k=0;if(52===J(e)){if(1-iX(e))f4(e,iT);var +o=[0,aE6(e,aF_(e,1))]}else +var +o=0;var +y=W(0,function(b){var +_=ab(b);if(!iA(b,0)){ur(b,0);return cIS}b[30][1]=[0,[0,kZ[1],0],b[30][1]];var +c=0,a=Ng[1],k=0;for(;;){var +z=J(b);if(typeof +z==="number"){var +l=z-2|0;if(hr>>0){if(hy>=l+1>>>0){var +Z=U(k),s=function(c,b){return m(qv(function(a){return 1-n(kZ[3],a[1],c)}),b)},i=b[30][1];if(i){var +j=i[1],t=j[1];if(i[2]){var +u=i[2],K=s(t,j[2]),v=g1(u),L=v[2],M=v[1],N=mo(u),O=[0,[0,M,V(L,K)],N];b[30][1]=O}else{var +P=s(t,j[2]);fo(function(a){return fc(b,[0,a[2],[23,a[1]]])},P);b[30][1]=0}}else +X(cEp);Q(b,1);var +p=J(b),r=0;if(!d){var +I=0;if(typeof +p!=="number"||1!==p&>!==p)I=1;if(I)if(lX(b)){var +q=v5(b);r=1}else{var +q=0;r=1}}if(!r)var +q=fq(b);return[0,Z,$([0,_],[0,q],0)]}}else if(6===l){Q(b,8);continue}}var +g=cIM(b);switch(g[0]){case +0:var +A=g[1],h=A[2],R=A[1];switch(h[1]){case +0:if(h[4])var +f=a,e=c;else{if(c)fc(b,[0,R,18]);var +f=a,e=1}break;case +1:var +B=h[2],S=4===B[0]?Ni(b,a,B[1],aV1):a,f=S,e=c;break;case +2:var +C=h[2],T=4===C[0]?Ni(b,a,C[1],aoY):a,f=T,e=c;break;default:var +D=h[2],W=4===D[0]?Ni(b,a,D[1],arZ):a,f=W,e=c}break;case +1:var +E=g[1][2],F=E[4],G=E[1];switch(G[0]){case +4:X(cIR);break;case +0:case +3:var +H=G[1],o=H[2][1],w=af(o,ig),Y=H[1];if(w)var +x=w;else +var +y=af(o,sU),x=y?F:y;if(x)fc(b,[0,Y,[15,o,F,0,0]]);break}var +f=a,e=c;break;default:var +f=Ni(b,a,g[1][2][1],a0R),e=c}var +c=e,a=f,k=[0,g,k]}},e);return[0,h,y,r,k,o,A,$([0,B],0,0)]},Nj=function(a,b){return W(0,function(a){return[2,aGb([0,b],a,a[7],0)]},a)},cIV=function(a){return[6,aGb(0,a,1,1)]},cIW=0,cIX=function(a){return W(cIW,cIV,a)},aGc=aFF(fm),aGd=function(a){var +b=Fh(a);if(a[5])x8(a,b[1]);else{var +d=b[2],g=0;if(26===d[0]){var +e=d[1],f=b[1],c=0;if(e[4]){fc(a,[0,f,5]);c=1}else if(e[5]){fc(a,[0,f,26]);c=1}if(c)g=1}}return b},Nk=function(a,b){var +c=b[4],d=b[3],e=b[2],f=b[1];if(c)rn(a,81);var +g=ab(a);Q(a,[2,[0,f,e,d,c]]);return[0,f,[0,e,d,$([0,g],[0,fq(a)],0)]]},kg=function(a,b,c){var +h=a?a[1]:cI0,i=b?b[1]:1,f=J(c);if(typeof +f==="number"){var +d=f-2|0;if(hr>>0){if(hy>=d+1>>>0){var +j=function(a,b){return a};return[1,[0,fq(c),j]]}}else if(6===d){aA(c);var +e=J(c);if(typeof +e==="number"){var +g=0;if(1!==e&>!==e)g=1;if(!g)return[0,fq(c)]}return lX(c)?[0,v5(c)]:cIZ}}if(lX(c))return[1,E_(c)];if(i)i4([0,h],c);return cIY},uv=function(a){var +b=J(a);if(typeof +b==="number"){var +c=0;if(1!==b&>!==b)c=1;if(!c){var +d=function(a,b){return a};return[0,fq(a),d]}}return lX(a)?E_(a):MU(a)},$i=function(f,b,c){var +a=kg(0,0,b);if(0===a[0])return[0,a[1],c];var +g=a[1][2],d=U(c);if(d)var +h=d[2],i=d[1],e=U([0,n(g,i,function(a,b){return l(D(a,634872468,73),a,f,b)}),h]);else +var +e=0;return[0,0,e]},aGe=function +b(a){return b.fun(a)},aGf=function +b(a){return b.fun(a)},aGg=function +b(a){return b.fun(a)},aGh=function +b(a){return b.fun(a)},aGi=function +b(a){return b.fun(a)},Fj=function +c(a,b){return c.fun(a,b)},aGj=function +b(a){return b.fun(a)},aGk=function +b(a){return b.fun(a)},Fk=function +d(a,b,c){return d.fun(a,b,c)},aGl=function +b(a){return b.fun(a)},aGm=function +b(a){return b.fun(a)},Fl=function +c(a,b){return c.fun(a,b)},aGn=function +b(a){return b.fun(a)},aGo=function +b(a){return b.fun(a)},Nl=function +c(a,b){return c.fun(a,b)},aGp=function +b(a){return b.fun(a)},Nm=function +c(a,b){return c.fun(a,b)},aGq=function +b(a){return b.fun(a)},aGr=function +b(a){return b.fun(a)},Nn=function +c(a,b){return c.fun(a,b)},aGs=function +b(a){return b.fun(a)},Fm=function +d(a,b,c){return d.fun(a,b,c)},Fn=function +c(a,b){return c.fun(a,b)},aGt=function +c(a,b){return c.fun(a,b)},aGu=function +c(a,b){return c.fun(a,b)},$j=function +c(a,b){return c.fun(a,b)},aGv=function +b(a){return b.fun(a)},Bf=function +b(a){return b.fun(a)},No=function +d(a,b,c){return d.fun(a,b,c)},$k=function +c(a,b){return c.fun(a,b)},aGw=function +c(a,b){return c.fun(a,b)},$l=function +b(a){return b.fun(a)},cI1=function(a){var +c=ab(a);Q(a,59);var +d=8===J(a)?fq(a):0,b=kg(0,0,a),e=0===b[0]?b[1]:b[1][1];return[5,[0,$([0,c],[0,V(d,e)],0)]]},cI2=0,cI3=function(a){var +e=ab(a);Q(a,37);var +l=E4(1,a),b=m(fm[2],l),d=1-a[5],f=d?Fa(b):d;if(f)x8(a,b[1]);var +g=fq(a);Q(a,25);var +h=fq(a);Q(a,4);var +i=m(fm[7],a);Q(a,5);var +j=8===J(a)?fq(a):0,c=kg(0,cI4,a),k=0===c[0]?V(j,c[1]):c[1][1];return[17,[0,b,i,$([0,e],[0,V(g,V(h,k))],0)]]},cI5=0,aGx=function(a,b,c){var +d=c[2][1],e=c[1];if(d&&!d[1][2][2]&&!d[2])return 0;return fc(a,[0,e,b])},$m=function(a,b){if(!a[5]&&Fa(b))return x8(a,b[1]);return 0},cI6=function(b){var +T=ab(b);Q(b,39);var +r=b[19],g=r?iA(b,65):r,U=V(T,ab(b));Q(b,4);var +h=$([0,U],0,0),s=J(b),P=0;if(typeof +s==="number"&&64===s){var +t=1;P=1}if(!P)var +t=0;var +c=E5(1,b),d=J(c),f=0;if(typeof +d==="number")if(24<=d){if(29>d)switch(d+aim|0){case +0:var +M=W(0,aFK,c),n=M[2],ac=n[3],ad=n[1],ae=M[1],e=ac,a=[0,[1,[0,ae,[0,ad,0,$([0,n[2]],0,0)]]]];f=1;break;case +3:var +N=W(0,aFL,c),o=N[2],af=o[3],ag=o[1],ah=N[1],e=af,a=[0,[1,[0,ah,[0,ag,2,$([0,o[2]],0,0)]]]];f=1;break;case +4:if(17!==gQ(1,c)){var +O=W(0,aFM,c),p=O[2],ai=p[3],aj=p[1],ak=O[1],e=ai,a=[0,[1,[0,ak,[0,aj,1,$([0,p[2]],0,0)]]]];f=1}break}}else if(8===d){var +e=0,a=0;f=1}if(!f)var +e=0,a=[0,[0,m(fm[8],c)]];var +i=J(b);if(typeof +i==="number"){if(17===i){if(!a)throw B([0,aL,cI8],1);var +j=a[1];if(0===j[0])var +u=[1,_P(cI7,b,j[1])];else{var +w=j[1];aGx(b,43,w);var +u=[0,w]}if(g)Q(b,63);else +Q(b,17);var +X=m(fm[7],b);Q(b,5);var +am=E4(1,b),v=m(fm[2],am);$m(b,v);return[24,[0,u,X,v,0,h]]}if(63===i){if(!a)throw B([0,aL,cI_],1);var +k=a[1];if(0===k[0]){var +x=_P(cI9,b,k[1]),y=1-g,Y=y?t:y,ao=0;if(Y){var +z=x[2];if(2===z[0]){var +D=z[1][1],_=D[1];if(!q(D[2][1],q3)){fc(b,[0,_,44]);ao=1}}}var +A=[1,x]}else{var +E=k[1];aGx(b,44,E);var +A=[0,E]}Q(b,63);var +Z=m(fm[10],b);Q(b,5);var +al=E4(1,b),C=m(fm[2],al);$m(b,C);return[25,[0,A,Z,C,g,h]]}}fo(function(a){return fc(b,a)},e);if(g)Q(b,63);else +Q(b,8);if(a)var +l=a[1],aa=0===l[0]?[0,[1,kD(b,l[1])]]:[0,[0,l[1]]],F=aa;else +var +F=0;var +G=J(b),R=0;if(typeof +G==="number"&&8===G){var +H=0;R=1}if(!R)var +H=[0,m(fm[7],b)];Q(b,8);var +I=J(b),S=0;if(typeof +I==="number"&&5===I){var +K=0;S=1}if(!S)var +K=[0,m(fm[7],b)];Q(b,5);var +an=E4(1,b),L=m(fm[2],an);$m(b,L);return[23,[0,F,H,K,L,h]]},cI$=0,aGy=function(a){var +b=v4(a)?aGd(a):m(fm[2],a),c=1-a[5],d=c?Fa(b):c;if(d)x8(a,b[1]);return b},cJa=function(a){var +b=ab(a);Q(a,43);var +c=aGy(a);return[0,c,$([0,b],0,0)]},cJb=function(a){var +b=ab(a);Q(a,16);var +c=V(b,ab(a));Q(a,4);var +d=m(fm[7],a);Q(a,5);var +e=aGy(a),f=43===J(a)?[0,W(0,cJa,a)]:0;return[27,[0,d,e,f,$([0,c],0,0)]]},cJc=0,aGz=function(a){return W(cJc,cJb,a)},cJd=function(a){if(1-a[11])f4(a,31);var +k=ab(a),l=fB(a);Q(a,19);var +d=8===J(a)?fq(a):0,i=0;if(8!==J(a)&&!A_(a)){var +b=[0,m(fm[7],a)];i=1}if(!i)var +b=0;var +o=h4(l,fB(a)),c=kg(0,0,a),j=0;if(0===c[0])var +e=c[1];else{var +h=c[1],p=h[1];if(b){var +q=b[1],r=h[2],g=[0,n(r,q,function(a,b){return n(D(a,jW,74),a,b)})],f=d;j=1}else +var +e=p}if(!j)var +g=b,f=V(d,e);return[31,[0,g,$([0,k],[0,f],0),o]]},cJe=0,cJf=function(a){var +j=ab(a);Q(a,20);Q(a,4);var +f=m(fm[7],a);Q(a,5);Q(a,0);var +b=cJg;for(;;){var +d=b[2],h=b[1],c=J(a);if(typeof +c==="number"){var +g=0;if(1!==c&>!==c)g=1;if(!g){var +i=U(d);Q(a,1);var +k=uv(a)[1],l=f[1];return[32,[0,f,i,$([0,j],[0,k],0),l]]}}var +e=MW(0,function(e){return function(a){var +g=ab(a),c=J(a),f=0;if(typeof +c==="number"&&36===c){if(e)f4(a,58);Q(a,36);var +d=fq(a),b=0;f=1}if(!f){Q(a,33);var +d=0,b=[0,m(fm[7],a)]}var +h=e||(0===b?1:0);Q(a,86);var +i=V(d,uv(a)[1]);function +j(a){if(typeof +a==="number"){var +b=a-1|0,c=0;if(32>>0){if(35===b)c=1}else if(30>>0)c=1;if(c)return 1}return 0}var +k=1,l=1===a[9]?a:[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],k,a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19],a[20],a[21],a[22],a[23],a[24],a[25],a[26],a[27],a[28],a[29],a[30],a[31]],o=n(fm[4],j,l);return[0,[0,b,o,$([0,g],[0,i],0)],h]}}(h),a),b=[0,e[2],[0,e[1],d]]}},cJh=0,cJi=function(a){var +f=ab(a),g=fB(a);Q(a,22);if(lX(a))fc(a,[0,g,59]);var +c=m(fm[7],a),b=kg(0,0,a);if(0===b[0])var +e=c,d=b[1];else +var +h=b[1][2],i=0,e=n(h,c,function(a,b){return n(D(a,jW,75),a,b)}),d=i;return[33,[0,e,$([0,f],[0,d],0)]]},cJj=0,cJk=function(a){var +q=ab(a);Q(a,23);var +e=m(fm[15],a);if(34===J(a))var +p=jo(a)[2],b=n(p,e,function(a,b){var +c=b[1];return[0,c,l(D(a,vd,4),a,c,b[2])]});else +var +b=e;var +f=J(a),k=0;if(typeof +f==="number"&&34===f){var +c=[0,W(0,function(a){var +e=ab(a);Q(a,34);var +f=fq(a);if(4===J(a)){Q(a,4);var +g=[0,n(fm[18],a,72)];Q(a,5);var +b=g}else +var +b=0;var +c=m(fm[15],a);if(38===J(a))var +d=c;else +var +h=uv(a)[2],d=n(h,c,function(a,b){var +c=b[1];return[0,c,l(D(a,vd,76),a,c,b[2])]});return[0,b,d,$([0,e],[0,f],0)]},a)];k=1}if(!k)var +c=0;var +g=J(a),o=0;if(typeof +g==="number"&&38===g){Q(a,38);var +h=m(fm[15],a),i=h[1],r=h[2],s=uv(a)[2],d=[0,[0,i,n(s,r,function(a,b){return l(D(a,vd,77),a,i,b)})]];o=1}if(!o)var +d=0;var +j=0===c?1:0,t=j?0===d?1:0:j;if(t)fc(a,[0,b[1],61]);return[34,[0,b,c,d,$([0,q],0,0)]]},cJl=0,cJm=function(b){var +a=aFK(b),e=a[3],f=a[2],c=$i(0,b,a[1]),d=0,g=c[2],h=c[1];fo(function(a){return fc(b,a)},e);return[37,[0,g,d,$([0,f],[0,h],0)]]},cJn=0,cJo=function(b){var +a=aFL(b),e=a[3],f=a[2],c=$i(2,b,a[1]),d=2,g=c[2],h=c[1];fo(function(a){return fc(b,a)},e);return[37,[0,g,d,$([0,f],[0,h],0)]]},cJp=0,cJq=function(b){var +a=aFM(b),e=a[3],f=a[2],c=$i(1,b,a[1]),d=1,g=c[2],h=c[1];fo(function(a){return fc(b,a)},e);return[37,[0,g,d,$([0,f],[0,h],0)]]},cJr=0,cJs=function(a){var +d=ab(a);Q(a,25);var +e=V(d,ab(a));Q(a,4);var +f=m(fm[7],a);Q(a,5);var +h=E4(1,a),b=m(fm[2],h),c=1-a[5],g=c?Fa(b):c;if(g)x8(a,b[1]);return[38,[0,f,b,$([0,e],0,0)]]},cJt=0,cJu=function(a){var +S=ab(a),b=m(fm[7],a),f=J(a),g=b[2];if(9===g[0]&&typeof +f==="number"&&86===f){var +j=g[1],e=j[2][1],V=b[1];Q(a,86);if(n(kZ[3],e,a[3]))fc(a,[0,V,[21,cJw,e]]);var +k=a[31],l=a[30],o=a[29],p=a[28],q=a[27],r=a[26],s=a[25],t=a[24],u=a[23],v=a[22],w=a[21],x=a[20],y=a[19],z=a[18],A=a[17],B=a[16],C=a[15],E=a[14],F=a[13],G=a[12],H=a[11],I=a[10],K=a[9],L=a[8],M=a[7],N=a[6],O=a[5],P=a[4],R=n(kZ[4],e,a[3]),c=[0,a[1],a[2],R,P,O,N,M,L,K,I,H,G,F,E,C,B,A,z,y,x,w,v,u,t,s,r,q,p,o,l,k],W=v4(c)?aGd(c):m(fm[2],c);return[30,[0,j,W,$([0,S],0,0)]]}var +d=kg(cJv,0,a);if(0===d[0])var +i=b,h=d[1];else +var +T=d[1][2],U=0,i=n(T,b,function(a,b){return n(D(a,jW,78),a,b)}),h=U;return[22,[0,i,0,$(0,[0,h],0)]]},cJx=0,cJy=function(a){var +e=m(fm[7],a),c=kg(cJz,0,a);if(0===c[0])var +d=e,f=c[1];else +var +o=c[1][2],p=0,d=n(o,e,function(a,b){return n(D(a,jW,79),a,b)}),f=p;if(a[20]){var +g=d[2];if(13===g[0]){var +b=g[1][2],k=0;if(1e)switch(e-53|0){case +0:return W([0,d],function(a){if(1-iX(a))f4(a,jw);var +b=W(0,m(Fl,0),a),d=[0,b[1],[29,b[2]]];return[21,[0,[0,d],0,0,0,$([0,c],0,0)]]},a);case +8:if(0!==gQ(1,a))return W([0,d],function(a){if(1-iX(a))f4(a,jw);var +b=gQ(1,a);if(typeof +b==="number"){if(48===b){f4(a,21);Q(a,61);return[21,[0,0,0,0,0,$([0,c],0,0)]]}if(hq===b){Q(a,61);var +f=fB(a);Q(a,hq);var +d=m(Bf,a),g=d[1];return[21,[0,0,[0,[1,[0,f,0]]],[0,g],0,$([0,c],[0,d[2]],0)]]}}var +e=W(0,m(Fj,0),a),h=[0,e[1],[35,e[2]]];return[21,[0,[0,h],0,0,0,$([0,c],0,0)]]},a);break;case +9:return W([0,d],function(a){var +b=W(0,function(a){return m(n(Fk,0,0),a)},a),d=[0,b[1],[36,b[2]]];return[21,[0,[0,d],0,0,0,$([0,c],0,0)]]},a)}}else if(36===e)return W([0,d],function(a){var +k=V(c,ab(a)),l=W(0,function(a){return Q(a,36)},a)[1],b=aEQ(1,a);if(v4(b))var +e=0,d=[0,Fh(b)];else if(E8(b))var +e=0,d=[0,Nj(b,f)];else if(48===J(b))var +e=0,d=[0,m(aFN(0),b)];else if(_p(b))var +e=0,d=[0,_O(b)];else{var +h=m(fm[10],b),g=kg(0,0,b);if(0===g[0])var +j=g[1],i=h;else +var +o=g[1][2],p=0,j=p,i=n(o,h,function(a,b){return n(D(a,jW,97),a,b)});var +e=j,d=[1,i]}return[20,[0,l,d,$([0,k],[0,e],0)]]},a);if(E8(a))return W([0,d],function(a){var +b=Nj(a,f);return[21,[0,[0,b],0,0,1,$([0,c],0,0)]]},a);if(v4(a))return W([0,d],function(a){m(MR(a),f);var +b=Fh(a);return[21,[0,[0,b],0,0,1,$([0,c],0,0)]]},a);if(typeof +e==="number"){var +g=e+aim|0;if(4>>0){if(24===g&&a[28][2])return W([0,d],function(a){var +b=n(fm[3],[0,f],a);return[21,[0,[0,b],0,0,1,$([0,c],0,0)]]},a)}else if(1>>0)return W([0,d],function(a){var +b=n(fm[3],[0,f],a);return[21,[0,[0,b],0,0,1,$([0,c],0,0)]]},a)}if(_p(a))return W([0,d],function(a){var +b=_O(a);return[21,[0,[0,b],0,0,1,$([0,c],0,0)]]},a);if(typeof +e==="number"&&hq===e)return W([0,d],function(a){var +g=fB(a);Q(a,hq);var +b=J(a),f=0;if(typeof +b!=="number"&&4===b[0]&&!q(b[3],sx)){aA(a);var +d=[0,k0(a)];f=1}if(!f)var +d=0;var +e=m(Bf,a),h=e[1];return[21,[0,0,[0,[1,[0,g,d]]],[0,h],1,$([0,c],[0,e[2]],0)]]},a);var +j=iA(a,61)?0:1;return iA(a,0)?W([0,d],function(a){var +e=l(No,0,a,0);Q(a,1);var +b=J(a),i=0;if(typeof +b!=="number"&&4===b[0]&&!q(b[3],IC)){var +h=m(Bf,a),g=h[2],f=[0,h[1]];i=1}if(!i){n($k,a,e);var +d=kg(0,0,a),k=0===d[0]?d[1]:d[1][1],g=k,f=0}return[21,[0,0,[0,[0,e]],f,j,$([0,c],[0,g],0)]]},a):(i4(cJ0,a),n(fm[3],[0,f],a))});h($l,function(a){var +v=a?a[1]:0;function +b(a){if(1-iX(a))f4(a,i1);var +N=ab(a);Q(a,60);var +b=aEP(1,up(1,a)),c=V(N,ab(b));Q(b,49);var +f=J(b);if(typeof +f==="number")switch(f){case +36:var +P=V(c,ab(b)),R=W(0,function(a){return Q(a,36)},b)[1],d=aEQ(1,b),h=J(d),k=0;if(typeof +h==="number")switch(h){case +15:var +U=0,j=U,i=[0,[1,W(0,function(a){return n(Nn,0,a)},d)]];k=1;break;case +40:var +j=0,i=[0,[2,W(0,m(Nl,0),d)]];k=1;break}else if(4===h[0]&&!q(h[3],r0)&&d[28][1]){var +j=0,i=[0,[3,W(0,m(Nm,0),d)]];k=1}if(!k){var +C=uu(d),s=kg(0,0,d);if(0===s[0])var +F=s[1],E=C;else +var +S=s[1][2],T=0,F=T,E=n(S,C,function(a,b){return n(D(a,i0,98),a,b)});var +j=F,i=[0,[4,E]]}return[9,[0,[0,R],i,0,0,$([0,P],[0,j],0)]];case +48:if(b[28][2]){var +X=aGc[1],Y=W(0,function(a){return n(X,0,a)},b);return[9,[0,0,[0,[8,Y]],0,0,$([0,c],0,0)]]}break;case +53:if(v){var +Z=W(0,m(Fl,0),b);return[9,[0,0,[0,[7,Z]],0,0,$([0,c],0,0)]]}break;case +61:if(v){var +_=W(0,m(Fj,0),b);return[9,[0,0,[0,[5,_]],0,0,$([0,c],0,0)]]}break;case +62:var +aa=W(0,n(Fk,cJ2,0),b);return[9,[0,0,[0,[6,aa]],0,0,$([0,c],0,0)]];case +106:var +ac=fB(b);Q(b,hq);var +t=J(b),I=0;if(typeof +t!=="number"&&4===t[0]&&!q(t[3],sx)){aA(b);var +G=[0,n(fm[13],0,b)];I=1}if(!I)var +G=0;var +H=m(Bf,b),ad=H[1];return[9,[0,0,0,[0,[1,[0,ac,G]]],[0,ad],$([0,c],[0,H[2]],0)]];case +15:case +24:case +27:case +28:case +40:var +e=J(b);if(typeof +e==="number"){var +u=0;if(24<=e){if(41>e){var +K=0;switch(e+aim|0){case +0:var +g=[0,[0,W(0,function(a){return l(Fm,0,a,0)},b)]];break;case +3:var +g=[0,[0,W(0,function(a){return l(Fm,2,a,0)},b)]];break;case +4:var +g=[0,[0,W(0,function(a){return l(Fm,1,a,0)},b)]];break;case +16:var +g=[0,[2,W(0,m(Nl,0),b)]];break;default:K=1}if(!K){var +A=g;u=1}}}else if(15===e){var +A=[0,[1,W(0,function(a){return n(Nn,0,a)},b)]];u=1}if(u)return[9,[0,0,A,0,0,$([0,c],0,0)]]}throw B([0,aL,cJ1],1)}else if(4===f[0]&&!q(f[3],r0)&&b[28][1]){var +ae=[0,[3,W(0,m(Nm,0),b)]];return[9,[0,0,ae,0,0,$([0,c],0,0)]]}var +o=J(b),L=0;if(typeof +o==="number")if(53===o)f4(b,15);else if(61===o)f4(b,16);else +L=1;else +L=1;Q(b,0);var +w=l(No,0,b,0);Q(b,1);var +p=J(b),M=0;if(typeof +p!=="number"&&4===p[0]&&!q(p[3],IC)){var +z=m(Bf,b),y=z[2],x=[0,z[1]];M=1}if(!M){n($k,b,w);var +r=kg(0,0,b),O=0===r[0]?r[1]:r[1][1],y=O,x=0}return[9,[0,0,0,[0,[0,w]],x,$([0,c],[0,y],0)]]}var +c=0;return function(a){return W(c,b,a)}});var +aGD=function +c(a,b){return c.fun(a,b)},aGE=function +c(a,b){return c.fun(a,b)},Fq=function +c(a,b){return c.fun(a,b)},Nr=function(c,b){return function(a){if(!a)return U(b);var +g=a[1];if(0!==g[0]){var +q=g[1],r=q[1];if(a[2]){var +x=a[2];fc(c,[0,r,69]);return m(Nr(c,b),x)}var +s=q[2],y=s[2];return m(Nr(c,[0,[1,[0,r,[0,n(Fq,c,s[1]),y]]],b]),0)}var +j=g[1],d=j[2],u=a[2],v=j[1];switch(d[0]){case +0:var +k=d[2],e=d[1],w=d[3];switch(e[0]){case +0:var +f=[0,e[1]];break;case +1:var +f=[1,e[1]];break;case +2:var +f=[2,e[1]];break;case +3:var +f=[3,e[1]];break;case +4:var +f=X(cJ3);break;default:var +f=[4,e[1]]}var +l=k[2],t=0;if(3===l[0]){var +i=l[1];if(!i[1]){var +p=[0,i[3]],o=i[2];t=1}}if(!t)var +p=0,o=n(Fq,c,k);var +h=[0,[0,[0,v,[0,f,o,p,w]]],b];break;case +1:fc(c,[0,d[2][1],55]);var +h=b;break;default:fc(c,[0,d[2][1],cJ4]);var +h=b}return m(Nr(c,h),u)}};h(aGD,function(a,b){var +c=b[2],d=c[2],e=c[1],f=b[1],g=Bg(a);return[0,f,[0,[0,m(Nr(a,0),e),g,d]]]});var +aGF=function(a,b){var +c=b[1];return m(fm[23],b)?[0,n(Fq,a,b)]:(fc(a,[0,c,41]),0)},Bh=function(c,b){return function(a){if(!a)return U(b);var +d=a[1];switch(d[0]){case +0:var +e=d[1],g=e[2];if(3===g[0]){var +f=g[1];if(!f[1]){var +q=a[2];return m(Bh(c,[0,[0,[0,e[1],[0,f[2],[0,f[3]]]]],b]),q)}}var +p=a[2],h=aGF(c,e);if(h)var +i=h[1],j=[0,[0,[0,i[1],[0,i,0]]],b];else +var +j=b;return m(Bh(c,j),p);case +1:var +k=d[1],l=k[1];if(a[2]){var +r=a[2];fc(c,[0,l,20]);return m(Bh(c,b),r)}var +n=k[2],s=n[2],o=aGF(c,n[1]),t=o?[0,[1,[0,l,[0,o[1],s]]],b]:b;return m(Bh(c,t),0);default:var +u=a[2];return m(Bh(c,[0,[2,d[1]],b]),u)}}};h(aGE,function(a,b){var +c=b[2],d=c[2],e=c[1],f=b[1],g=Bg(a);return[0,f,[1,[0,m(Bh(a,0),e),g,d]]]});h(Fq,function(a,b){var +c=b[2],d=b[1];switch(c[0]){case +0:return n(aGE,a,[0,d,c[1]]);case +9:var +e=c[1],f=e[2][1],g=e[1],i=0;if(a[5]&&x7(f))fc(a,[0,g,76]);else +i=1;if(i&&1-a[5]){var +j=0;if(a[18]&&af(f,aH))fc(a,[0,g,jY]);else +j=1;if(j){var +h=a[19],k=h?af(f,tF):h;if(k)fc(a,[0,g,6])}}return[0,d,[2,[0,e,Bg(a),0]]];case +24:return n(aGD,a,[0,d,c[1]]);default:return[0,d,[3,[0,d,c]]]}});var +Fr=function(a,b){var +c=J(a);if(typeof +c==="number"){if(6===c)return W(0,function(a){var +q=ab(a);Q(a,6);var +c=0;for(;;){var +d=J(a);if(typeof +d==="number"){var +e=0;if(13<=d){if(gt===d)e=1}else if(7<=d)switch(d-7|0){case +0:e=1;break;case +2:var +l=fB(a);Q(a,9);var +c=[0,[2,l],c];continue;case +5:var +n=ab(a),h=W(0,function(a){Q(a,12);return Fr(a,b)},a),i=h[1],o=h[2],p=[1,[0,i,[0,o,$([0,n],0,0)]]];if(7!==J(a)){fc(a,[0,i,20]);if(9===J(a))aA(a)}var +c=[0,p,c];continue}if(e){var +j=U(c),r=ab(a);Q(a,7);var +s=86===J(a)?[1,x$(a)]:Bg(a);return[1,[0,j,s,jL([0,q],[0,fq(a)],r,0)]]}}var +f=W(0,function(a){var +f=Fr(a,b),c=J(a),e=0;if(typeof +c==="number"&&82===c){Q(a,82);var +d=[0,m(fm[10],a)];e=1}if(!e)var +d=0;return[0,f,d]},a),g=f[2],k=[0,[0,f[1],[0,g[1],g[2]]]];if(7!==J(a))Q(a,9);var +c=[0,k,c]}},a);if(!c){var +o=function(a){var +b=J(a);if(typeof +b==="number"&&82===b){Q(a,82);return[0,m(fm[10],a)]}return 0};return W(0,function(a){var +N=ab(a);Q(a,0);var +j=0,g=0,i=0;for(;;){var +k=J(a);if(typeof +k==="number"){var +A=0;if(1!==k&>!==k)A=1;if(!A){if(g)fc(a,[0,g[1],95]);var +I=U(i),O=ab(a);Q(a,1);var +P=fq(a),R=86===J(a)?[1,x$(a)]:Bg(a);return[0,[0,I,R,jL([0,N],[0,P],O,0)]]}}if(12===J(a))var +C=ab(a),m=W(0,function(a){Q(a,12);return Fr(a,b)},a),D=m[2],E=m[1],e=[0,[1,[0,E,[0,D,$([0,C],0,0)]]]];else{var +p=fB(a),q=n(fm[20],0,a),r=J(a),B=0;if(typeof +r==="number"&&86===r){Q(a,86);var +s=W([0,p],function(a){var +c=Fr(a,b);return[0,c,o(a)]},a),t=s[2],c=q[2],F=t[2],G=t[1],H=s[1];switch(c[0]){case +0:var +d=[0,c[1]];break;case +1:var +d=[1,c[1]];break;case +2:var +d=[2,c[1]];break;case +3:var +d=[3,c[1]];break;case +4:var +d=X(cJ5);break;default:var +d=[4,c[1]]}var +e=[0,[0,[0,H,[0,d,G,F,0]]]]}else +B=1;if(B){var +u=q[2];if(3===u[0]){var +f=u[1],v=f[2][1],h=f[1];if(MP(v))fc(a,[0,h,hZ]);else if(A9(v))qF(a,[0,h,85]);var +w=W([0,p],function(d,b){return function(a){var +c=[0,b,[2,[0,d,Bg(a),0]]];return[0,c,o(a)]}}(f,h),a),x=w[2],e=[0,[0,[0,w[1],[0,[3,f],x[1],x[2],1]]]]}else{i4(cJ6,a);var +e=0}}}if(!e)continue;var +l=e[1],K=l[1][1],L=j?(fc(a,[0,K,69]),0):g;if(0===l[0])var +z=L,y=j;else +var +M=9===J(a)?[0,fB(a)]:0,z=M,y=1;if(1!==J(a))Q(a,9);var +j=y,g=z,i=[0,l,i]}},a)}}var +d=l(fm[14],a,0,b);return[0,d[1],[2,d[2]]]},Ns=function(a){var +d=J(a);if(typeof +d==="number"){var +b=d+aYM|0,c=0;if(6>>0){if(14===b)c=1}else if(4>>0)c=1;if(c)return fq(a)}return lX(a)?v5(a):0},aGG=function(a){return 1===J(a)?0:[0,m(fm[7],a)]},uw=function(a){var +j=fB(a),b=J(a),h=0;if(typeof +b!=="number"&&8===b[0]){var +e=b[1];h=1}if(!h){i4(cJ7,a);var +e=cJ8}var +k=ab(a);aA(a);var +f=J(a),i=0;if(typeof +f==="number"){var +c=f+aYc|0,d=0;if(72>>0){if(76===c)d=1}else if(70>>0)d=1;if(d){var +g=fq(a);i=1}}if(!i)var +g=Ns(a);return[0,j,[0,e,$([0,k],[0,g],0)]]},aGH=function(a){var +c=gQ(1,a);if(typeof +c==="number"){if(10===c){var +b=W(0,function(a){var +b=[0,uw(a)];Q(a,10);return[0,b,uw(a)]},a);for(;;){var +d=J(a);if(typeof +d==="number"&&10===d){var +e=b[1],b=W([0,e],function(b){return function(a){Q(a,10);return[0,[1,b],uw(a)]}}(b),a);continue}return[2,b]}}if(86===c)return[1,W(0,function(a){var +b=uw(a);Q(a,86);return[0,b,uw(a)]},a)]}return[0,uw(a)]},Fs=function(a,b){return af(a[2][1],b[2][1])},aGI=function(a,b){var +g=a[2],e=g[1],h=b[2],c=h[1],f=0,i=g[2],j=h[2];if(0===e[0]){var +k=e[1];if(0===c[0])var +d=Fs(k,c[1]);else +f=1}else{var +l=e[1];if(0===c[0])f=1;else +var +d=aGI(l,c[1])}if(f)var +d=0;return d?Fs(i,j):d},Nt=function(a,b){switch(a[0]){case +0:var +h=a[1];if(0===b[0])return Fs(h,b[1]);break;case +1:var +i=a[1];if(1===b[0]){var +c=i[2],d=b[1][2],f=c[2],g=d[2],e=Fs(c[1],d[1]);return e?Fs(f,g):e}break;default:var +j=a[1];if(2===b[0])return aGI(j,b[1])}return 0},$p=function(a){switch(a[0]){case +0:return a[1][1];case +1:return a[1][1];default:return a[1][1]}},aGJ=function +c(a,b){return c.fun(a,b)},$q=function +c(a,b){return c.fun(a,b)},$r=function +c(a,b){return c.fun(a,b)};h(aGJ,function(a,b){var +c=J(b);if(typeof +c==="number"){if(0===c){jM(b,0);var +e=W(0,function(a){Q(a,0);var +b=J(a),e=0;if(typeof +b==="number"&&12===b){var +f=ab(a);Q(a,12);var +g=m(fm[10],a),c=[3,[0,g,$([0,f],0,0)]];e=1}if(!e)var +d=aGG(a),h=d?0:ab(a),c=[2,[0,d,jL(0,0,h,0)]];Q(a,1);return c},b),h=e[2],i=e[1];j8(b);return[0,i,h]}}else if(9===c[0]){var +j=c[3],k=c[2],l=c[1];Q(b,c);return[0,l,[4,[0,k,j]]]}var +f=n($r,a,b),d=f[2],g=f[1];return sz<=d[1]?[0,g,[1,d[2]]]:[0,g,[0,d[2]]]});var +Nu=function(a){switch(a[0]){case +0:return a[1][2][1];case +1:var +c=a[1][2],e=c[1],f=P(cKa,c[2][2][1]);return P(e[2][1],f);default:var +d=a[1][2],b=d[1],g=d[2],h=0===b[0]?b[1][2][1]:Nu([2,b[1]]);return P(h,P(cKb,g[2][1]))}};h($q,function(a,b){var +Z=ab(b),e=W(0,function(a){Q(a,98);var +d=J(a);if(typeof +d==="number"){if(99===d){aA(a);return cJ$}}else if(8===d[0]){var +n=aGH(a),h=0;if(iX(a)&&98===J(a)&&i$!==gQ(1,a)){var +f=MT(a,0,Nc);h=1}if(!h)var +f=0;var +b=0;for(;;){var +c=J(a);if(typeof +c==="number"){if(0===c){var +i=ab(a);jM(a,0);var +e=W(0,function(a){Q(a,0);Q(a,12);var +b=m(fm[10],a);Q(a,1);return b},a),j=e[2],k=e[1];j8(a);var +b=[0,[1,[0,k,[0,j,$([0,i],[0,Ns(a)],0)]]],b];continue}}else if(8===c[0]){var +b=[0,[0,W(0,function(a){var +h=gQ(1,a),l=0;if(typeof +h==="number"&&86===h){var +i=[1,W(0,function(a){var +b=uw(a);Q(a,86);return[0,b,uw(a)]},a)];l=1}if(!l)var +i=[0,uw(a)];var +j=J(a),m=0;if(typeof +j==="number"&&82===j){Q(a,82);var +p=ab(a),b=J(a),d=0;if(typeof +b==="number")if(0===b){var +n=ab(a);jM(a,0);var +e=W(0,function(a){Q(a,0);var +b=aGG(a);Q(a,1);return b},a),f=e[1],o=e[2];j8(a);var +g=[0,o,jL([0,n],[0,Ns(a)],0,0)];if(!g[1])fc(a,[0,f,52]);var +c=[0,[1,[0,f,g]]]}else +d=1;else if(10===b[0]){var +q=b[3],r=b[2],s=b[1];Q(a,b);var +c=[0,[0,[0,s,[0,r,q,$([0,p],[0,Ns(a)],0)]]]]}else +d=1;if(d){f4(a,40);var +c=[0,[0,[0,fB(a),cJ9]]]}var +k=c;m=1}if(!m)var +k=0;return[0,i,k]},a)],b];continue}var +l=U(b),g=[0,xy,[0,n,f,iA(a,i$),l]];return iA(a,99)?[0,g]:(ur(a,99),[1,g])}}ur(a,99);return cJ_},b);j8(b);var +T=e[2];if(0===T[0])var +V=T[1],_=typeof +V==="number"?0:V[2][3];else +var +_=1;if(_)var +aM=am_,c=aM,r=W(0,function(a){return 0},b);else{jM(b,3);var +Y=e[2][1],l=typeof +Y==="number"?0:[0,Y[2][1]],S=fB(b),d=0;for(;;){var +f=A8(b),ar=0;if(d&&l){var +h=d[1],B=h[2],t=0,aD=l[1],aE=d[2];if(0===B[0]){var +C=B[1],D=C[2];if(D)var +E=D[1][2][1],F=1-Nt(C[1][2][1],E),G=F?Nt(aD,E):F;else +t=1}else +t=1;if(t)var +G=0;if(G){var +H=h[2],as=0;if(0===H[0]){var +g=H[1],I=g[2];if(I){var +aF=I[1],aG=h4(h[1],g[3][1]),L=[0,xy,aF],K=[0,aG,[0,[0,g[1],0,g[3],g[4]]]];as=1}}if(!as)var +L=am_,K=h;j8(b);var +i=[0,U([0,K,aE]),f,L];ar=1}}if(!ar){var +o=J(b),u=0;if(typeof +o==="number")if(98===o){jM(b,2);var +M=J(b),p=gQ(1,b),at=0;if(typeof +M==="number"&&98===M&&typeof +p==="number"){var +au=0;if(i$===p||gt===p)au=1;if(au){var +A=W(0,function(a){Q(a,98);Q(a,i$);var +b=J(a);if(typeof +b==="number"){if(99===b){aA(a);return sz}}else if(8===b[0]){var +c=aGH(a);MS(a,99);return[0,xy,[0,c]]}ur(a,99);return sz},b),N=A[2],O=A[1],aH=typeof +N==="number"?[0,sz,O]:[0,xy,[0,O,N[2]]],x=b[24][1],av=0;if(x){var +y=x[2];if(y){var +z=y[2];av=1}}if(!av)var +z=X(cEw);b[24][1]=z;var +aB=A7(b),aC=E2(b[25][1],aB);b[26][1]=aC;var +i=[0,U(d),f,aH];u=1;at=1}}if(!at){var +P=n($q,l,b),q=P[2],R=P[1],aI=sz<=q[1]?[0,R,[1,q[2]]]:[0,R,[0,q[2]]],d=[0,aI,d];continue}}else if(gt===o){i4(0,b);var +i=[0,U(d),f,am_];u=1}if(!u){var +d=[0,n(aGJ,l,b),d];continue}}var +aJ=i[3],aK=i[1],aL=f?f[1]:S,c=aJ,r=[0,h4(S,aL),aK];break}}var +aa=fq(b),aw=0;if(typeof +c!=="number"){var +aj=c[1],v=0;if(xy===aj){var +ak=c[2],j=ak[2][1],al=e[2],aQ=ak[1];if(0===al[0]){var +am=al[1];if(typeof +am==="number")fc(b,[0,$p(j),cKc]);else{var +k=am[2][1];if(1-Nt(j,k)){var +ax=0;if(a&&Nt(a[1],j)){var +aR=[19,Nu(k)];fc(b,[0,$p(k),aR]);ax=1}if(!ax){var +aS=[13,Nu(k)];fc(b,[0,$p(j),aS])}}}}var +an=aQ;v=1}else if(sz===aj){var +ao=c[2],ap=e[2];if(0===ap[0]){var +aq=ap[1];if(typeof +aq!=="number")fc(b,[0,ao,[13,Nu(aq[2][1])]])}var +an=ao;v=1}if(v){var +s=an;aw=1}}if(!aw)var +s=e[1];var +ac=e[2][1],ad=e[1];if(typeof +ac==="number"){var +ay=0,aN=$([0,Z],[0,aa],0);if(typeof +c!=="number"){var +ag=c[1],w=0;if(xy===ag){var +ah=c[2][1];w=1}else if(sz===ag){var +ah=c[2];w=1}if(w){var +ae=ah;ay=1}}if(!ay)var +ae=s;var +af=[0,sz,[0,ad,ae,r,aN]]}else{var +aO=ac[2],az=0,aP=$([0,Z],[0,aa],0);if(typeof +c!=="number"&&xy===c[1]){var +ai=[0,c[2]];az=1}if(!az)var +ai=0;var +af=[0,xy,[0,[0,ad,aO],ai,r,aP]]}return[0,h4(e[1],s),af]});h($r,function(a,b){jM(b,2);return n($q,a,b)});var +aGK=function(a,b){var +c=k0(b);MV(a,b,c);return c},aGL=function +b(a){return b.fun(a)},$u=function +d(a,b,c){return d.fun(a,b,c)},$v=function +b(a){return b.fun(a)},aGM=function +c(a,b){return c.fun(a,b)},$w=function +c(a,b){return c.fun(a,b)},$x=function +c(a,b){return c.fun(a,b)},Nv=function +c(a,b){return c.fun(a,b)},Fu=function +c(a,b){return c.fun(a,b)},Nw=function +b(a){return b.fun(a)},aGN=function +b(a){return b.fun(a)},aGO=function +b(a){return b.fun(a)},aGP=function +d(a,b,c){return d.fun(a,b,c)},aGQ=function +b(a){return b.fun(a)},aGR=function +b(a){return b.fun(a)},cKh=m($r,0);h(aGL,function(c){var +e=J(c),v=0;if(typeof +e!=="number"&&6===e[0]){var +E=e[2],F=e[1];aA(c);var +t=[0,[0,F,E]];v=1}if(!v)var +t=0;var +f=ab(c),d=U(f),x=5;a:for(;;){if(d){var +l=d[2],m=d[1],o=m[2],p=m[1],j=o[2],b=0,y=Z(j);for(;;){if(y<(b+5|0))var +q=0;else{var +k=af(f1(j,b,x),Im);if(!k){var +b=b+1|0;continue}var +q=k}if(!q){var +d=l;continue a}c[31][1]=p[3];var +g=U([0,[0,p,o],l]);break}}else +var +g=0;if(0===g){var +w=0;if(f){var +h=f[1],r=h[2];if(!r[1]){var +s=r[2],G=0,z=h[1];if(1<=Z(s)&&42===fl(s,0)){c[31][1]=z[3];var +i=[0,h,0];w=1}else +G=1}}if(!w)var +i=0}else +var +i=g;var +a=n(aGM,c,function(a){return 0}),B=fB(c);Q(c,gt);var +A=kZ[1];M(function(a,b){var +e=b[2];switch(e[0]){case +20:return Ft(c,a,rh(0,[0,e[1][1],cKe]));case +21:var +f=e[1],h=f[1];if(h){if(!f[2]){var +i=h[1],d=i[2],g=0,n=i[1];switch(d[0]){case +37:var +o=d[1][1],p=0,r=M(function(a,b){return M($t,a,[0,b[2][1],0])},p,o);return M(function(a,b){return Ft(c,a,b)},a,r);case +2:case +26:var +j=d[1][1];if(j)var +k=j[1];else +g=1;break;case +3:case +19:case +29:case +35:case +36:var +k=d[1][1];break;default:g=1}return g?a:Ft(c,a,rh(0,[0,n,uo(k)]))}}else{var +l=f[2];if(l){var +m=l[1];if(0!==m[0])return a;var +q=m[1];return M(function(a,b){var +d=b[2],e=d[2],f=d[1];return e?Ft(c,a,e[1]):Ft(c,a,f)},a,q)}}return a;default:return a}},A,a);if(a)var +C=g1(U(a))[1],u=h4(g1(a)[1],C);else +var +u=B;var +D=U(c[2][1]);return[0,u,[0,a,t,$([0,i],0,0),D]]}});var +cKk=function(a,b,c,d){var +e=a,i=d;for(;;){var +g=i[3],j=i[2],h=i[1],f=J(e);if(typeof +f==="number"&>===f)return[0,e,h,j,g];if(m(b,f))return[0,e,h,j,g];if(typeof +f!=="number"&&2===f[0]){var +l=m(c,e),n=[0,l,j],o=l[2];if(22===o[0]){var +p=o[1][2];if(p){var +k=af(p[1],"use strict"),q=l[1],r=k?1-e[21]:k;if(r)fc(e,[0,q,84]);var +s=k?up(1,e):e,t=[0,f,h],u=g||k,e=s,i=[0,t,n,u];continue}}return[0,e,h,n,g]}return[0,e,h,j,g]}};h($u,function(a,b,c){var +d=cKk(aEN(1,a),b,c,cKl),f=d[4],g=d[3],h=d[2],e=aEN(0,d[1]),i=U(h);fo(function(a){if(typeof +a!=="number"&&2===a[0]){var +b=a[1],c=b[4],d=b[1];return c?qF(e,[0,d,81]):c}return X(P(cKj,P(aEb(a),cKi)))},i);return[0,e,g,f]});h($v,function(a){var +b=$b(a),d=J(a);if(typeof +d==="number"){var +e=d+aUI|0;if(11>=e>>>0)switch(e){case +0:return n(aGw,b,a);case +1:m(MR(a),b);var +c=gQ(1,a),g=0;if(typeof +c==="number"){var +h=0;if(4===c||10===c)h=1;if(h){var +f=Fo(a);g=1}}if(!g)var +f=$o(a);return f;case +11:if(49===gQ(1,a)){m(MR(a),b);return n($l,0,a)}break}}return n(Fu,[0,b],a)});h(aGM,function(a,b){var +c=l($u,a,b,$v),d=c[2],e=n($w,b,c[1]);return M(function(a,b){return[0,b,a]},e,d)});h($w,function(a,b){var +c=0;for(;;){var +d=J(b);if(typeof +d==="number"&>===d)return U(c);if(m(a,d))return U(c);var +c=[0,m($v,b),c]}});h($x,function(a,b){var +c=l($u,b,a,function(a){return n(Fu,0,a)}),d=c[3],e=c[2],f=n(Nv,a,c[1]);return[0,M(function(a,b){return[0,b,a]},f,e),d]});h(Nv,function(a,b){var +c=0;for(;;){var +d=J(b);if(typeof +d==="number"&>===d)return U(c);if(m(a,d))return U(c);var +c=[0,n(Fu,0,b),c]}});h(Fu,function(a,b){var +d=a?a[1]:0;if(1-E8(b))m(MR(b),d);var +c=J(b);if(typeof +c==="number"){if(27===c)return W(cJp,cJo,b);if(28===c)return W(cJr,cJq,b)}if(v4(b))return Fh(b);if(E8(b))return Nj(b,d);if(typeof +c==="number"){var +e=c+jt|0;if(14>=e>>>0)switch(e){case +0:if(b[28][2])return m(aFN(0),b);break;case +5:return m(aGo,b);case +12:return n($j,0,b);case +13:return m(aGk,b);case +14:return m(aGm,b)}}return _p(b)?_O(b):m(Nw,b)});h(Nw,function(a){var +b=J(a);if(typeof +b==="number"&&iR>b)switch(b){case +0:return m(aGi,a);case +8:return m(aGe,a);case +16:return aGz(a);case +19:return W(cJe,cJd,a);case +20:return W(cJh,cJf,a);case +22:return W(cJj,cJi,a);case +23:return W(cJl,cJk,a);case +24:return W(cJn,cJm,a);case +25:return W(cJt,cJs,a);case +26:return m(aGh,a);case +32:return m(aGf,a);case +35:return m(aGg,a);case +37:return W(cI5,cI3,a);case +39:return W(cI$,cI6,a);case +43:return aGz(a);case +59:return W(cI2,cI1,a);case +113:i4(cKn,a);return[0,fB(a),cKo];case +1:case +5:case +7:case +9:case +10:case +11:case +12:case +17:case +18:case +33:case +34:case +36:case +38:case +41:case +42:case +49:case +83:case +86:i4(cKm,a);aA(a);return m(Nw,a)}if(v4(a)){var +c=Fh(a);x8(a,c[1]);return c}if(typeof +b==="number"&&28===b&&6===gQ(1,a)){var +d=E6(1,a);fc(a,[0,h4(fB(a),d),4]);return Fo(a)}return te(a)?W(cJx,cJu,a):E8(a)?(i4(0,a),aA(a),Fo(a)):Fo(a)});h(aGN,function(a){var +d=fB(a),b=m(ro,a),c=J(a);if(typeof +c==="number"&&9===c)return l(Nf,a,d,[0,b,0]);return b});h(aGO,function(a){var +d=fB(a),b=m(Be,a),c=J(a);if(typeof +c==="number"&&9===c)return[0,l(Nf,a,d,[0,kD(a,b),0])];return b});h(aGP,function(a,b,c){var +f=b?b[1]:0;return W(0,function(a){var +b=1-f,e=aGK([0,c],a),d=b?85===J(a)?1:0:b;if(d){if(1-iX(a))f4(a,hb);Q(a,85)}return[0,e,_H(a),d]},a)});h(aGQ,function(a){var +c=fB(a),d=ab(a);Q(a,0);var +b=n(Nv,function(a){return 1===a?1:0},a),e=fB(a),f=0===b?ab(a):0;Q(a,1);var +g=[0,b,jL([0,d],[0,fq(a)],f,0)];return[0,h4(c,e),g]});h(aGR,function(h){function +b(a){var +i=ab(a);Q(a,0);var +e=n($x,function(a){return 1===a?1:0},a),f=e[1],j=e[2],k=0===f?ab(a):0;Q(a,1);var +b=J(a),d=0;if(!h){var +g=0;if(typeof +b!=="number"||1!==b&>!==b)g=1;if(g)if(lX(a)){var +c=v5(a);d=1}else{var +c=0;d=1}}if(!d)var +c=fq(a);return[0,[0,f,jL([0,i],[0,c],k,0)],j]}var +c=0;return function(a){return MW(c,b,a)}});hj(cKp,fm,[0,aGL,Nw,Fu,Nv,$x,$w,aGN,aGO,aFS,ro,Nb,cIH,aGK,aGP,aGQ,aGR,cKh,Fr,Fq,v8,Nj,cIX,cHd,Nd,x$,Ne]);var +aGS=function(a,b,c){var +g=m(b,a),e=U(a[1][1]),f=[0,$s[1],0],d=U(M(function(a,b){var +d=a[2],c=a[1];return n($s[3],b,c)?[0,c,d]:[0,n($s[4],b,c),[0,b,d]]},f,e)[2]);if(d){var +h=d[2],i=d[1];if(c)throw B([0,aD6,i,h],1)}return[0,g,d]},aGT=function(a,b,c,d,e){var +f=b?b[1]:0,g=c?c[1]:0,h=aEL([0,f],[0,g],d,e);return aGS(h,fm[1],a)},cKq=function(a){var +b=aEO(1,a),c=m(fm[11],b);Q(a,gt);return c},cVH=gP(cVG,function(c){var +a=fR(c,cVF)[41],e=fG(c,0,0,cVE,vV,1)[1];s6(c,a,function(a,b){return 0});return function(a,b){var +d=fp(b,c);m(e,d);return fH(b,d,c)}}),jp=function(a,b){m(a,b);return 0},Bj=function(b){function +c(a){return jp(b,a)}return function(a){return aT(a,c)}},jB=gP(cVK,function(d){var +a=kC(d,cVJ,cVL),f=a[Dq],e=a[Ds],b=a[10],c=a[53],g=a[Ak],h=fG(d,0,0,cVI,vV,1)[1];function +i(a,b,c){jp(b,c);return m(a[1][1+f],a)}function +j(a,b){a[1+e]=m(b,a[1+e]);return 0}function +k(a,b){a[1+e]=b;return 0}fC(d,[0,f,function(a){return a[1+e]},c,k,b,j,g,i]);return function(a,b,c){var +f=fp(b,d);m(h,f);f[1+e]=c;return fH(b,f,d)}}),ux=function(a){return[3,g+a]},$y=function(a,b){var +e=a,c=b;for(;;){var +d=0;if(typeof +e==="number")return typeof +c==="number"?0:-1;switch(e[0]){case +0:var +f=e[1],j=0;if(f){var +m=f[1],r=f[2],s=m[2],t=m[1];if(typeof +c!=="number")switch(c[0]){case +0:var +g=c[1];if(!g)return 1;var +n=g[1],o=aQ(t,n[1]),u=g[2],v=n[2];if(0!==o)return o;var +p=$y(s,v);if(0!==p)return p;var +e=[0,r],c=[0,u];continue;case +1:j=1;break;case +2:d=3;break;case +3:d=2;break;default:d=1}}else if(typeof +c!=="number")switch(c[0]){case +0:return c[1]?-1:0;case +1:j=1;break;case +2:d=3;break;case +3:d=2;break;default:d=1}if(j)return 1;break;case +1:var +h=e[1],k=0;if(h){var +w=h[2],x=h[1];if(typeof +c!=="number")switch(c[0]){case +0:k=1;break;case +1:var +i=c[1];if(!i)return 1;var +y=i[2],q=$y(x,i[1]);if(0!==q)return q;var +e=[1,w],c=[1,y];continue;case +2:d=3;break;case +3:d=2;break;default:d=1}}else if(typeof +c!=="number")switch(c[0]){case +0:k=1;break;case +1:return c[1]?-1:0;case +2:d=3;break;case +3:d=2;break;default:d=1}if(k)return-1;break;case +2:var +z=e[1];if(typeof +c!=="number")switch(c[0]){case +2:return aQ(z,c[1]);case +3:d=2;break;case +4:d=1;break;default:return-1}break;case +3:var +A=e[1];if(typeof +c!=="number")switch(c[0]){case +3:return aQ(A,c[1]);case +4:d=1;break;default:return-1}break;default:var +l=0;if(e[1]){if(typeof +c!=="number"){if(4===c[0])return c[1]?0:1;l=1}}else if(typeof +c!=="number"){if(4===c[0])return c[1]?-1:0;l=1}if(l)return-1}switch(d){case +0:return 1;case +1:return 1;case +2:return 1;default:return 1}}};h_([0,$y]);var +yb=function(a,b){return f1(a,b,Z(a)-b|0)},uy=rb(32,lf),$z=function(a){return rb(32,0)},Fv=function(a,b){return qs(a,b>>>3|0,r2(sZ(a,b>>>3|0)|1<<(b&7)))},Nx=function(a){var +b=$z(0);Fv(b,a);return b},Ny=function(a){var +c=hV(32),b=0;for(;;){qs(c,b,r2(sZ(a,b)^lf));var +d=b+1|0;if(31===b)return c;var +b=d}},$A=function(a,b){var +d=hV(32),c=0;for(;;){var +e=sZ(b,c);qs(d,c,r2(sZ(a,c)|e));var +f=c+1|0;if(31===c)return d;var +c=f}},aGW=function(a,b){try{var +c=0;for(;;){var +f=sZ(b,c);if(0!==(sZ(a,c)&f))throw B(Jr,1);var +g=c+1|0;if(31!==c){var +c=g;continue}var +e=1;return e}}catch(f){var +d=fk(f);if(d===Jr)return 0;throw B(d,0)}},aGX=function(a,b){var +c=0;for(;;){var +e=sZ(b,c);if(0!==e){var +d=0;for(;;){if(0!==(e&1<>>0){if(25>=b+gx>>>0)d=1}else if(23!==b)d=1;var +e=d?a+UV|0:a;return Fv(c,e)},a);return c},Nz=0,aGY=1,cVM=2,cVN=3,cVO=4,cVP=5,cVQ=6,cVR=7,cVS=8,cVT=9,cVU=10,cVV=11,cVW=12,cVX=13,cVY=14,$B=15,NA=16,aGZ=17,aG0=18,aG1=function(a,b){return a|b<<8},$C=function(a,b){return(a-b|0)-1|0},$D=function(a){var +b=a;for(;;){if(typeof +b==="number")switch(b){case +0:return 1;case +1:return 1;default:return 1}switch(b[0]){case +0:return 0;case +1:return af(b[1],g);case +2:return 0;case +3:return xG($D,b[1]);case +4:var +d=b[2],c=$D(b[1]);if(c)return c;var +b=d;continue;case +5:return 1;case +6:var +b=b[1];continue;case +7:return 1;case +8:var +b=b[2];continue;default:return 1}}},afy=function(a,b){var +c=b;for(;;){if(typeof +c==="number")switch(c){case +0:return uy;case +1:return uy;default:return uy}switch(c[0]){case +0:return Nx(c[1]);case +1:var +d=c[1];return af(d,g)?uy:Nx(fl(d,0));case +2:var +e=c[1];return c[2]?Ny(e):e;case +3:var +f=c[1];return a<50?afx(a+1|0,f):gu(afx,[0,f]);case +4:var +h=c[1],i=v9(c[2]);return $A(v9(h),i);case +5:return uy;case +6:var +c=c[1];continue;case +7:return uy;case +8:var +c=c[2];continue;default:return uy}}},afx=function(a,b){var +c=b;for(;;){if(!c)return uy;var +d=c[1];if(typeof +d!=="number")switch(d[0]){case +5:var +e=d[1],f=Fx(c[2]);return $A(v9(e),f);case +7:var +g=d[1],h=Fx(c[2]);return $A(v9(g),h);default:return a<50?afy(a+1|0,d):gu(afy,[0,d])}var +c=c[2]}},v9=function(a){return qt(afy(0,a))},Fx=function(a){return qt(afx(0,a))},$E=function(a,b){var +d=0;if(typeof +b!=="number")switch(b[0]){case +0:var +e=0,c=Nx(b[1]);d=1;break;case +2:var +e=b[2],c=b[1];d=1;break}if(!d)throw B([0,aL,cVZ],1);var +f=a?Fw(c):c,g=e?Ny(f):f;return Ax(g)},aG2=hV(la),Hg=0;for(;;){qs(aG2,Hg,Ec(r2(Hg)));var +fnV=Hg+1|0;if(lf!==Hg){var +Hg=fnV;continue}var +cV0=Ax(aG2),NB=Ef([0,aQ]),aG3=function(e,b){var +h=[0,j0(32,0)],d=[0,0],o=[0,NB[1]],p=[0,0],j=[0,1],q=[0,0];function +c(a,b){if(h[1].length-1<=d[1]){var +c=[0,h[1].length-1];for(;;){if(c[1]<=d[1]){c[1]=c[1]*2|0;continue}var +e=j0(c[1],0);VE(h[1],0,e,0,h[1].length-1);h[1]=e;break}}var +g=aG1(a,b),f=d[1];fD(h[1],f)[1+f]=g;d[1]++;return 0}function +k(a){var +b=d[1];c(Nz,0);return b}function +m(a,b,c){var +d=aG1(b,$C(c,a));fD(h[1],a)[1+a]=d;return 0}function +i(a){try{var +d=n(NB[28],a,o[1]);return d}catch(f){var +b=fk(f);if(b!==gf)throw B(b,0);var +c=p[1];o[1]=l(NB[4],a,c,o[1]);p[1]++;return c}}function +t(a){if(!$D(a))return-1;var +b=q[1];if(64<=b)X(cV1);q[1]++;return b}function +f(a){if(typeof +a==="number")switch(a){case +0:return c(cVP,0);case +1:return c(cVQ,0);default:return c(cVR,0)}switch(a[0]){case +0:var +u=a[1];return e?c(aGY,Ec(u)):c(Nz,u);case +1:var +g=a[1],v=Z(g);if(0===v)return 0;if(1===v)return e?c(aGY,Ec(fl(g,0))):c(Nz,fl(g,0));try{var +x=at$(g,0);f([1,f1(g,0,x)]);c(Nz,0);var +K=f([1,yb(g,x+1|0)]);return K}catch(f){var +w=fk(f);if(w===gf)return e?c(cVN,i(iV(Jy(Ec,pn(g))))):c(cVM,i(g));throw B(w,0)}case +2:var +y=a[1],L=a[2],z=e?Fw(y):y,M=L?Ny(z):z;return c(cVO,i(Ax(M)));case +3:var +b=a[1];for(;;){if(!b)return 0;var +h=b[1];if(typeof +h!=="number")switch(h[0]){case +5:var +o=h[1],I=0;if(typeof +o==="number")I=1;else +switch(o[0]){case +0:case +2:var +F=b[2],_=Fx(F);if(r(v9(o),_)){c(cVX,i($E(e,o)));var +b=F;continue}break;default:I=1}break;case +6:var +p=h[1],J=0;if(typeof +p==="number")J=1;else +switch(p[0]){case +0:case +2:var +G=b[2],$=Fx(G);if(r(v9(p),$)){c(cVY,i($E(e,p)));var +b=G;continue}break;default:J=1}break;case +7:var +q=h[1],ab=0;if(typeof +q!=="number")switch(q[0]){case +0:case +2:var +H=b[2],aa=Fx(H);if(r(v9(q),aa)){c(cVW,i($E(e,q)));var +b=H;continue}ab=1;break}break}var +Y=b[2];f(h);var +b=Y}case +4:var +N=a[2],O=a[1],P=k(0);f(O);var +Q=k(0),R=d[1];f(N);var +S=d[1];m(P,NA,R);return m(Q,$B,S);case +5:var +A=a[1],l=t(A),C=k(0);if(0<=l)c(aGZ,l);f(A);if(0<=l)c(aG0,l);c($B,$C(C,d[1]));return m(C,NA,d[1]);case +6:var +D=a[1],n=t(D),T=d[1];f(D);if(0<=n)c(aG0,n);var +U=k(0);if(0<=n)c(aGZ,n);c($B,$C(T,d[1]));return m(U,NA,d[1]);case +7:var +V=a[1],W=k(0);f(V);return m(W,NA,d[1]);case +8:var +s=a[1],X=a[2];c(cVS,s);f(X);c(cVT,s);j[1]=Jx(j[1],s+1|0);return 0;default:var +E=a[1];c(cVU,E);j[1]=Jx(j[1],E+1|0);return 0}}function +r(a,b){if(!e)return aGW(a,b);var +c=Fw(b);return aGW(Fw(a),c)}f(b);c(cVV,0);var +a=v9(b),w=e?Fw(a):a;if(Jf(a,uy))var +u=-1;else{var +s=rb(la,0);aGX(function(a){return qs(s,a,1)},w);var +u=i(Ax(s))}var +v=j0(p[1],g),x=o[1];function +y(a,b){fD(v,b)[1+b]=a;return 0}n(NB[12],y,x);var +z=q[1],A=j[1],C=e?cV0:cV2;return[0,aub(h[1],0,d[1]),v,C,A,z,u]},aG4=function(a){var +b=h0(a[1]);a[1][2]=0;var +c=Z(b);if(0===c)return 0;if(1===c){var +d=a[2];a[2]=[0,[0,fl(b,0)],d];return 0}a[2]=[0,[1,b],a[2]];return 0},cV3=Ny(Nx(10)),rp=function(b){var +d=Z(b),t=[0,1];function +u(a){var +g=f(a),e=g[1],c=g[2];for(;;){if((c+2|0)<=d&&92===fl(b,c)&&jX===fl(b,c+1|0)){var +h=f(c+2|0),e=[4,e,h[1]],c=h[2];continue}return[0,e,c]}}function +f(a){var +i=[0,g4(16),0],c=a;a:for(;;){if(d>c){var +A=0;if((c+2|0)<=d&&92===fl(b,c)){var +w=fl(b,c+1|0),F=jX===w?1:0,G=F||(41===w?1:0);if(G)A=1}if(!A){var +j=fl(b,c);if(36===j)var +g=[0,1,c+1|0];else{var +q=0;if(91<=j)if(95<=j)q=1;else +switch(j+aVV|0){case +0:var +n=c+1|0,C=0;if(n>>0)if(9<=s)var +k=[0,[9,l+jt|0],h+1|0];else +m=1;else if(s)m=2;else{var +H=t[1];t[1]++;var +x=u(h+1|0),p=x[2],D=0,I=x[1];if((p+1|0)f){var +r=fl(b,f)+Su|0;if(1>=r>>>0){if(r){var +e=[6,e],f=f+1|0;continue}var +e=[5,e],f=f+1|0;continue}if(21===r){var +e=[7,e],f=f+1|0;continue}}var +E=0;if(typeof +e!=="number"&&0===e[0]){iM(i[1],e[1]);E=1}if(!E){aG4(i);i[2]=[0,e,i[2]]}var +c=f;continue a}}}aG4(i);return[0,[3,U(i[2])],c]}}function +v(a){var +f=$z(0),c=a;for(;;){if(d<=c)X(cV7);if(93===fl(b,c)&&a=g){var +e=g;for(;;){Fv(f,r2(e));var +i=e+1|0;if(h!==e){var +e=i;continue}break}}var +c=c+3|0;continue}Fv(f,g);var +c=c+1|0}}var +a=u(0),c=a[1],e=a[2]===d?c:X(cV8);return aG3(0,e)},yc=function(a){return aG3(0,[1,a])},v_=[0,[0]],th=function(a,b,c){var +d=fpL(a,b,c);v_[1]=d;return 0c){var +d=fD(v_[1],c)[1+c],e=c+1|0,f=fD(v_[1],e)[1+e];if(-1===d)throw B(gf,1);return f1(b,d,f-d|0)}return gv(cV_)},Fy=function(a){if(v_[1].length-1<=0)return gv(cV9);var +b=fD(v_[1],1)[2];if(-1===b)throw B(gf,1);return b},$F=function(a,b,c){try{var +d=fpK(a,b,c);v_[1]=d;if(0===d.length-1)throw B(gf,1);var +f=[0,fD(d,0)[1]];return f}catch(f){var +e=fk(f);if(e===gf)return 0;throw B(e,0)}},aG6=function(a,b,c){var +d=$F(a,b,c);if(!d)return 0;var +e=d[1];return cb)return m(cXq,c);var +c=[0,fl(a,b),c],b=b-1|0}},NC=function(a){var +b=m(cXp,a),c=hV(fA(b));Vs(function(a,b){return qs(c,a,b)},b);return iV(c)},$G=function(a){var +d=a4W(fpy(a,a5l,0));fpe(d,a);try{var +q=fo_(d),c=q}catch(f){var +i=fk(f);if(i[1]!==Au)throw B(i,0);var +c=0}if(0>=c){var +j=g4(t0),k=hV(t0),p=t0,l=function(a){try{var +c=atW(d,k,0,p),e=0===c?0:(JE(j,k,0,c),l(0));return e}catch(f){var +b=fk(f);if(b===D_)return 0;throw B(b,0)}};l(0);a4V(d);return h0(j)}var +b=g4(c),n=c<0?1:0,o=n||(Awb[3])throw B([0,aL,a6w],1);b[2]=b[2]+e|0;if(eNF(a)&&!d){var +i=0,e=function(a){return 0};return ih(e,i,c[1])}return Em(function(a){var +q=aY(b,cXx,function(a){var +c=aHh(a);if(af(c,g))var +f=c;else{var +j=0;if(!at_(aF(c,0))&&!at_(aF(c,Z(c)-1|0))){var +f=c;j=1}if(!j){var +e=pn(c),h=ml(e),b=[0,0];for(;;){if(b[1]d)return cXG;if(32!==fl(e,d))return f1(e,0,d+1|0);var +d=d-1|0}}),i=M(function(a,b){var +d=a[2],c=a[1],e=q(b,g)?d?[0,[0,d[1][1],c]]:[0,[0,c,c]]:d;return[0,c+1|0,e]},cXH,e)[2];if(!i)return 0;var +j=i[1],f=j[2],h=j[1],z=f2(cXI,m(qv(function(a){return q(a,g)}),e)),s=a[2][1]+h|0,t=a[2][1]+f|0,u=ra(e,h),k=ra(e,f),v=fl(u,0),w=fl(k,Z(k)-1|0),l=at$(ra(d,h),v),n=ra(d,f),c=Z(n)-1|0;for(;;){if(0>c)throw B(gf,1);if(aF(n,c)===w){var +o=c+1|0,x=0===h?l+a[2][2]|0:l,y=0===f?o+a[2][2]|0:o;return[0,[0,[0,a[1],[0,s,x],[0,t,y]],z]]}var +c=c-1|0}},uz=function(a){return Em(kS,a)};AJ(a5o);m(h$([0,Kh])[33],axg);var +FB=h_([0,Kh]),Bk=FB[1],FC=FB[27],FD=FB[31],aHm=FB[32],cXJ=FB[26],iB=function(a){var +b=auz(foO(10));kS(x(k(cXO),cXN,cXM,a,b,cXL,cXK));return X(a)},aHn=function(a,b){var +c=b;for(;;){var +d=c[1];if(!d){var +f=c[2];if(!f)return 0;var +j=f[2];n(a,0,[0,f[1]]);var +c=[0,0,j];continue}var +e=c[2],g=d[2],h=d[1];if(e){var +i=e[2];n(a,[0,h],[0,e[1]]);var +c=[0,g,i];continue}n(a,[0,h],0);var +c=[0,g,0]}},aHo=function(a,b,c){return m(a,[0,b,c])},k1=function(a,b,c){return m(b,m(a,c))},NG=function(a,l){var +b=Z(l)-1|0;if(3>>0)var +c=1>>0?3:2,E=c;else +var +E=2<=b?1:0;var +d=[0,0,atU],e=M(function(a,b){var +g=Z(l),h=Z(b),i=qu(ua(g,h),E);if(i=0){var +j=G;for(;;){e[1+j]=j0(J,I);var +H=j+1|0;if(n!==j){var +j=H;continue}break}}fD(fD(e,0)[1],0)[1]=0;var +p=ua(g,h),K=1;if(p>=1){var +f=K;for(;;){if(f<=g)fD(fD(e,f)[1+f],0)[1]=f;if(f<=h)fD(fD(e,0)[1],f)[1+f]=f;var +S=f+1|0;if(p!==f){var +f=S;continue}break}}var +L=1;if(g>=1){var +c=L;for(;;){var +r=ua(1,(c-i|0)-1|0),s=qu(h,(c+i|0)+1|0);if(s>=r){var +d=r;for(;;){var +t=fl(l,c-1|0),u=fl(b,d-1|0),v=t===u?0:1,w=d-1|0,x=c-1|0,y=d-1|0,N=fD(fD(e,x)[1+x],w)[1+w]+v|0,z=c-1|0,O=fD(fD(e,c)[1+c],y)[1+y]+1|0,F=0,P=qu(qu(fD(fD(e,z)[1+z],d)[1+d]+1|0,O),N);if(1=d>>>0)switch(d){case +0:return cXT;case +1:return cXU;case +2:return cXV;case +3:return cXW;case +4:return cXX;case +5:return cXY;case +6:return cXZ;case +7:return cX0;default:return cX1}var +c=g+a,e=fl(c,Z(c)-1|0)+aUI|0;if(2>>0)var +b=cXP;else +switch(e){case +0:var +b=cXQ;break;case +1:var +b=cXR;break;default:var +b=cXS}return P(c,b)},$L=uh([0,a$8]),$M=uh([0,a$9]),$N=uh([0,function(a,b){if(!a)return b?-1:0;var +c=a[1];return b?At(c,b[1]):1}]);try{var +a5p=[0,D8("IN_FLOW_TEST")],$O=a5p}catch(f){var +atZ=fk(f);if(atZ!==gf)throw B(atZ,0);var +$O=0}var +foi=0;if($O){var +aHp=$O[1],aSl=0;if(!q(aHp,"1")||!q(aHp,q_))aSl=1;if(aSl)foi=1}var +mt=function(a,b){if(!b)return b;var +c=b[1],d=m(a,c);return d===c?b:[0,d]},jq=function(d,b){var +a=fs(b,cX2,function(a,b){var +e=a[2],f=a[1],c=m(d,b),g=e||(c!==b?1:0);return[0,[0,c,f],g]}),c=a[1];return a[2]?kf(c):b},aHq=function(a,b,c){return f2(a,K(c,b))},aHr=function(a){var +d=vJ(0,fA(a));return kf(fs(a,0,function(a,b){var +f=JK(d,b),c=fD(d[2],f)[1+f];for(;;){if(c){var +h=c[3],e=0===hs(c[1],b)?1:0;if(!e){var +c=h;continue}var +g=e}else +var +g=0;return g?a:(AE(d,b,0),[0,b,a])}}))},Bl=function(e,d,c){var +a=c[2],b=c[1];m(f(d),cX3);m(m(e,d),b);m(f(d),cX4);m(f(d),cX5);var +g=0;M(function(a,b){if(a)m(f(d),cX6);m(m(e,d),b);return 1},g,a);m(f(d),cX7);return m(f(d),cX8)},gl=function(a){return[0,a[1],a[2]]},Bm=function(a){return a?[0,[0,a[1],a[2]]]:0},tj=function(a){return a?[0,a[1],a[2]]:X(cX9)},g9=function(a){return[0,a,0]},kE=function(a,b){return[0,a,[0,b[1],b[2]]]},aHs=function(a,b,c){var +e=c[2],d=n(a,c[1],b);return d?d:qy(e,b,a)},p6=function(a,b){var +c=b[2];m(a,b[1]);return fV(c,a)},iN=function(a,b){var +c=b[1],d=K(b[2],a);return[0,m(a,c),d]},aHt=function(a){var +c=a[2],d=gl(a[1]),b=m(Wr,[0,d,K(c,gl)]);return b?[0,b[1],b[2]]:X(cX_)},v$=function(c,b){var +d=b[2],e=b[1],a=m(Wr,K([0,e,d],function(a){return gl(m(c,a))}));return a?[0,a[1],a[2]]:X(cX$)},$P=function(a){var +b=kf([0,a[1],a[2]]);return b?[0,b[1],b[2]]:X(cYa)},$Q=function(a,b){var +c=xO([0,b[1],b[2]],a);return c?[0,c[1],c[2]]:X(cYb)},p7=function(a){return 1+fA(a[2])|0},iC=function(a,b,c){return fs([0,c[1],c[2]],b,a)},aHu=function(a){return 0===(a%8|0)?a/8|0:(a/8|0)+1|0},aHv=function(a){return[0,a/8|0,a%8|0]},aHw=function(a){var +b=r2(0);return rb(aHu(a),b)},aHx=function(a,b){var +c=aHv(a),d=c[2];return 0!==(sZ(b,c[1])&1<=b)return crc;if(b===c[3][1]&&d===e)return n(k(cq$),b,d);if(b===c[3][1])return l(k(crb),b,d,e);var +f=c[3][1];return o(k(cra),b,d,f,e)},mu=function(a,b){return 0===FG(a,b)?1:0},FH=function +c(a,b){return c.fun(a,b)},cYs=function +b(a){return b.fun(a)};h(FH,function(a,b){var +c=b[2],d=b[1];m(f(a),cYt);m(m(A0,a),d);m(f(a),cYu);m(m(f(a),cYv),c);return m(f(a),cYw)});h(cYs,function(a){return n(z(cYx),FH,a)});var +$W=function(a,b){var +d=b[2],e=a[2],c=pt(a[1],b[1]);return 0===c?e-d|0:c},cYy=function(a,b){var +d=b[2],e=a[2],c=r6(a[1],b[1]),f=c?ao(e,d):c;return f},cYz=[0,g6,0],cYA=function(a,b){var +c=g+b[2],d=Ml(a,b[1]);return n(k(cYB),d,c)},$X=function(a){return[0,function(d,b){var +c=[0,0];function +e(a){var +b=m(d,a);return a===b?a:(c[1]=1,b)}var +f=n(a[15],e,b);return c[1]?f:b}]},$Y=function +b(a){return b.fun(a)},aHG=function +b(a){return b.fun(a)};h($Y,function(a){return m(A0,a)});h(aHG,function(a){return n(z(cYC),$Y,a)});var +gR=h_([0,pt]),aHH=gR[46],cYD=gR[1],cYE=gR[2],cYF=gR[3],cYG=gR[4],cYH=gR[5],cYI=gR[6],cYJ=gR[7],cYK=gR[8],cYL=gR[9],cYM=gR[10],cYN=gR[11],cYO=gR[12],cYP=gR[13],cYQ=gR[14],cYR=gR[15],cYS=gR[16],cYT=gR[17],cYU=gR[18],cYV=gR[19],cYW=gR[20],cYX=gR[21],cYY=gR[22],cYZ=gR[23],cY0=gR[24],cY1=gR[25],cY2=gR[26],cY3=gR[27],cY4=gR[28],cY5=gR[29],cY6=gR[30],cY7=gR[31],cY8=gR[32],cY9=gR[33],cY_=gR[34],cY$=gR[35],cZa=gR[36],cZb=gR[37],cZc=gR[38],cZd=gR[39],cZe=gR[40],cZf=gR[41],cZg=gR[42],cZh=gR[43],cZi=gR[44],cZj=gR[45],cZk=gR[47],aHI=function(a){return n(aHH,A0,a)},cZm=[0,cYD,cYE,cYF,cYG,cYH,cYI,cYJ,cYK,cYL,cYM,cYN,cYO,cYP,cYQ,cYR,cYS,cYT,cYU,cYV,cYW,cYX,cYY,cYZ,cY0,cY1,cY2,cY3,cY4,cY5,cY6,cY7,cY8,cY9,cY_,cY$,cZa,cZb,cZc,cZd,cZe,cZf,cZg,cZh,cZi,cZj,aHH,cZk,aHI,function(a,b){var +c=aHI(a);return n(z(cZl),c,b)}],ht=h$([0,pt]),aHJ=ht[22],cZn=ht[1],cZo=ht[2],cZp=ht[3],cZq=ht[4],cZr=ht[5],cZs=ht[6],cZt=ht[7],cZu=ht[8],cZv=ht[9],cZw=ht[10],cZx=ht[11],cZy=ht[12],cZz=ht[13],cZA=ht[14],cZB=ht[15],cZC=ht[16],cZD=ht[17],cZE=ht[18],cZF=ht[19],cZG=ht[20],cZH=ht[21],cZI=ht[23],cZJ=ht[24],cZK=ht[25],cZL=ht[26],cZM=ht[27],cZN=ht[28],cZO=ht[29],cZP=ht[30],cZQ=ht[31],cZR=ht[32],cZS=ht[33],cZT=ht[34],cZU=ht[35],cZV=ht[36],aHK=function(c,b){m(f(c),cZW);var +a=m(aHJ,b);if(a)m(f(c),cZX);var +d=0;M(function(a,b){if(a)m(f(c),cZY);n(A0,c,b);return 1},d,a);if(a)m(f(c),cZZ);return m(f(c),cZ0)},hl=[0,cZn,cZo,cZp,cZq,cZr,cZs,cZt,cZu,cZv,cZw,cZx,cZy,cZz,cZA,cZB,cZC,cZD,cZE,cZF,cZG,cZH,aHJ,cZI,cZJ,cZK,cZL,cZM,cZN,cZO,cZP,cZQ,cZR,cZS,cZT,cZU,cZV,aHK,function(a){return n(z(cZ1),aHK,a)}],il=[0,$Y,aHG,pt,r6,g6,Ml,cZm,hl,$X([0,hl[1],hl[2],hl[3],hl[4],hl[5],hl[6],hl[7],hl[8],hl[9],hl[10],hl[11],hl[12],hl[13],hl[14],hl[15],hl[16],hl[17],hl[18],hl[19],hl[20],hl[21],hl[22],hl[23],hl[24],hl[25],hl[26],hl[27],hl[28],hl[29],hl[30],hl[31],hl[32],hl[33],hl[34],hl[35],hl[36]])],$Z=function +b(a){return b.fun(a)},aHL=function +b(a){return b.fun(a)};h($Z,function(b){return function(a){return $T(b,a)}});h(aHL,function(a){return n(z(cZ2),$Z,a)});var +gS=h_([0,rq]),aHM=gS[46],cZ3=gS[1],cZ4=gS[2],cZ5=gS[3],cZ6=gS[4],cZ7=gS[5],cZ8=gS[6],cZ9=gS[7],cZ_=gS[8],cZ$=gS[9],c0a=gS[10],c0b=gS[11],c0c=gS[12],c0d=gS[13],c0e=gS[14],c0f=gS[15],c0g=gS[16],c0h=gS[17],c0i=gS[18],c0j=gS[19],c0k=gS[20],c0l=gS[21],c0m=gS[22],c0n=gS[23],c0o=gS[24],c0p=gS[25],c0q=gS[26],c0r=gS[27],c0s=gS[28],c0t=gS[29],c0u=gS[30],c0v=gS[31],c0w=gS[32],c0x=gS[33],c0y=gS[34],c0z=gS[35],c0A=gS[36],c0B=gS[37],c0C=gS[38],c0D=gS[39],c0E=gS[40],c0F=gS[41],c0G=gS[42],c0H=gS[43],c0I=gS[44],c0J=gS[45],c0K=gS[47],aHN=function(a){return n(aHM,$T,a)},c0M=[0,cZ3,cZ4,cZ5,cZ6,cZ7,cZ8,cZ9,cZ_,cZ$,c0a,c0b,c0c,c0d,c0e,c0f,c0g,c0h,c0i,c0j,c0k,c0l,c0m,c0n,c0o,c0p,c0q,c0r,c0s,c0t,c0u,c0v,c0w,c0x,c0y,c0z,c0A,c0B,c0C,c0D,c0E,c0F,c0G,c0H,c0I,c0J,aHM,c0K,aHN,function(a,b){var +c=aHN(a);return n(z(c0L),c,b)}],hu=h$([0,rq]),aHO=hu[22],c0N=hu[1],c0O=hu[2],c0P=hu[3],c0Q=hu[4],c0R=hu[5],c0S=hu[6],c0T=hu[7],c0U=hu[8],c0V=hu[9],c0W=hu[10],c0X=hu[11],c0Y=hu[12],c0Z=hu[13],c00=hu[14],c01=hu[15],c02=hu[16],c03=hu[17],c04=hu[18],c05=hu[19],c06=hu[20],c07=hu[21],c08=hu[23],c09=hu[24],c0_=hu[25],c0$=hu[26],c1a=hu[27],c1b=hu[28],c1c=hu[29],c1d=hu[30],c1e=hu[31],c1f=hu[32],c1g=hu[33],c1h=hu[34],c1i=hu[35],c1j=hu[36],aHP=function(c,b){m(f(c),c1k);var +a=m(aHO,b);if(a)m(f(c),c1l);var +d=0;M(function(a,b){if(a)m(f(c),c1m);$T(c,b);return 1},d,a);if(a)m(f(c),c1n);return m(f(c),c1o)},hm=[0,c0N,c0O,c0P,c0Q,c0R,c0S,c0T,c0U,c0V,c0W,c0X,c0Y,c0Z,c00,c01,c02,c03,c04,c05,c06,c07,aHO,c08,c09,c0_,c0$,c1a,c1b,c1c,c1d,c1e,c1f,c1g,c1h,c1i,c1j,aHP,function(a){return n(z(c1p),aHP,a)}],T=[0,$Z,aHL,rq,tl,g6,gY,c0M,hm,$X([0,hm[1],hm[2],hm[3],hm[4],hm[5],hm[6],hm[7],hm[8],hm[9],hm[10],hm[11],hm[12],hm[13],hm[14],hm[15],hm[16],hm[17],hm[18],hm[19],hm[20],hm[21],hm[22],hm[23],hm[24],hm[25],hm[26],hm[27],hm[28],hm[29],hm[30],hm[31],hm[32],hm[33],hm[34],hm[35],hm[36]])],$0=function +b(a){return b.fun(a)},aHQ=function +b(a){return b.fun(a)};h($0,function(a){return m(FH,a)});h(aHQ,function(a){return n(z(c1q),$0,a)});var +gT=h_([0,$W]),aHR=gT[46],c1r=gT[1],c1s=gT[2],c1t=gT[3],c1u=gT[4],c1v=gT[5],c1w=gT[6],c1x=gT[7],c1y=gT[8],c1z=gT[9],c1A=gT[10],c1B=gT[11],c1C=gT[12],c1D=gT[13],c1E=gT[14],c1F=gT[15],c1G=gT[16],c1H=gT[17],c1I=gT[18],c1J=gT[19],c1K=gT[20],c1L=gT[21],c1M=gT[22],c1N=gT[23],c1O=gT[24],c1P=gT[25],c1Q=gT[26],c1R=gT[27],c1S=gT[28],c1T=gT[29],c1U=gT[30],c1V=gT[31],c1W=gT[32],c1X=gT[33],c1Y=gT[34],c1Z=gT[35],c10=gT[36],c11=gT[37],c12=gT[38],c13=gT[39],c14=gT[40],c15=gT[41],c16=gT[42],c17=gT[43],c18=gT[44],c19=gT[45],c1_=gT[47],aHS=function(a){return n(aHR,FH,a)},c2a=[0,c1r,c1s,c1t,c1u,c1v,c1w,c1x,c1y,c1z,c1A,c1B,c1C,c1D,c1E,c1F,c1G,c1H,c1I,c1J,c1K,c1L,c1M,c1N,c1O,c1P,c1Q,c1R,c1S,c1T,c1U,c1V,c1W,c1X,c1Y,c1Z,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,aHR,c1_,aHS,function(a,b){var +c=aHS(a);return n(z(c1$),c,b)}],hv=h$([0,$W]),aHT=hv[22],c2b=hv[1],c2c=hv[2],c2d=hv[3],c2e=hv[4],c2f=hv[5],c2g=hv[6],c2h=hv[7],c2i=hv[8],c2j=hv[9],c2k=hv[10],c2l=hv[11],c2m=hv[12],c2n=hv[13],c2o=hv[14],c2p=hv[15],c2q=hv[16],c2r=hv[17],c2s=hv[18],c2t=hv[19],c2u=hv[20],c2v=hv[21],c2w=hv[23],c2x=hv[24],c2y=hv[25],c2z=hv[26],c2A=hv[27],c2B=hv[28],c2C=hv[29],c2D=hv[30],c2E=hv[31],c2F=hv[32],c2G=hv[33],c2H=hv[34],c2I=hv[35],c2J=hv[36],aHU=function(c,b){m(f(c),c2K);var +a=m(aHT,b);if(a)m(f(c),c2L);var +d=0;M(function(a,b){if(a)m(f(c),c2M);n(FH,c,b);return 1},d,a);if(a)m(f(c),c2N);return m(f(c),c2O)},hn=[0,c2b,c2c,c2d,c2e,c2f,c2g,c2h,c2i,c2j,c2k,c2l,c2m,c2n,c2o,c2p,c2q,c2r,c2s,c2t,c2u,c2v,aHT,c2w,c2x,c2y,c2z,c2A,c2B,c2C,c2D,c2E,c2F,c2G,c2H,c2I,c2J,aHU,function(a){return n(z(c2P),aHU,a)}],aHV=[0,$0,aHQ,$W,cYy,cYz,cYA,c2a,hn,$X([0,hn[1],hn[2],hn[3],hn[4],hn[5],hn[6],hn[7],hn[8],hn[9],hn[10],hn[11],hn[12],hn[13],hn[14],hn[15],hn[16],hn[17],hn[18],hn[19],hn[20],hn[21],hn[22],hn[23],hn[24],hn[25],hn[26],hn[27],hn[28],hn[29],hn[30],hn[31],hn[32],hn[33],hn[34],hn[35],hn[36]])],NI=uh([0,FG]),aHW=function(a){var +b=aQ(a,aUC);if(0<=b){if(0>=b)return c27;var +c=aQ(a,aik);if(0<=c){if(0>=c)return c2Y;if(!q(a,aVq))return c2X;if(!q(a,aoI))return c2W;if(!q(a,al4))return c2V;if(!q(a,an1))return c2U;if(!q(a,aW3))return c2T;if(!q(a,aTu))return c2S;if(!q(a,am$))return c2R}else{if(!q(a,a0Q))return c26;if(!q(a,a38))return c25;if(!q(a,a17))return c24;if(!q(a,a37))return c23;if(!q(a,aYq))return c22;if(!q(a,aW8))return c21;if(!q(a,aSP))return c20;if(!q(a,aYJ))return c2Z}}else{var +d=aQ(a,a3P);if(0<=d){if(0>=d)return c3d;if(!q(a,aWf))return c3c;if(!q(a,aUU))return c3b;if(!q(a,a0g))return c3a;if(!q(a,aXW))return c2$;if(!q(a,aS$))return c2_;if(!q(a,aSJ))return c29;if(!q(a,aoV))return c28}else{if(!q(a,a1q))return c3l;if(!q(a,a3V))return c3k;if(!q(a,alh))return c3j;if(!q(a,"deprecated-type-bool"))return c3i;if(!q(a,"deprecated-type-dollar-call"))return c3h;if(!q(a,"deprecated-type-dollar-objmap"))return c3g;if(!q(a,"deprecated-type-predicate"))return c3f;if(!q(a,aUT))return c3e}}return 0},aHX=[0,hs],yf=h_(aHX),aHY=h$(aHX),c3m=aHY[1],c3n=aHY[16];n(yf[6],0,c3u);var +NJ=function(a,b,c){var +d=o(yf[31],0,a,b,c[2]);return[0,c[1],d]},aHZ=function(a,b){var +c=n(yf[27],a,b[2]),d=b[1];return aY(c,d,function(a){return a[1]})},c3v=[0,0,yf[1]],aH0=function(a,b){var +d=0,c=b;for(;;){if(!c)return hh(d,[0,a,0]);var +e=c[1],f=c[2];if(0=0){var +e=g;for(;;){n(b,c,d[1+e]);var +h=e+1|0;if(f!==e){var +e=h;continue}break}}return 0},s,I,r,H,q,G,p,F,m,E,l,D,k,C,j,B,e,A,i,z,h,y,g,x,f,w,d,v,b,u]);return function(a,b){return fp(b,c)}});gP(0,function(c){var +a=fR(c,FI),e=a[7],b=a[1],d=a[2],f=a[3],g=a[4],h=a[5],i=a[6],j=a[8],k=a[9],l=a[10],p=a[11],q=a[12],r=a[13],s=a[14],t=a[15],u=a[16];function +v(a,b,c){return c}function +w(a,b,c){return c}function +x(a,b,c,d,e){return 0===e[0]?[0,n(b,d,e[1])]:[1,n(c,d,e[1])]}function +y(a,b,c,d){return[0,n(b,c,d[1])]}function +z(a,b,c,d){return d?[0,n(b,c,d[1])]:0}function +A(a,b,c){return c}function +B(a,b,c,d){if(!d)return 0;var +f=d[2],g=n(b,c,d[1]);return[0,g,o(a[1][1+e],a,b,c,f)]}function +C(a,b,c,d){return[O,function(a){var +e=ai(d),f=ah===e?d[1]:O===e?aq(d):d;return n(b,c,f)}]}function +D(a,b,c){return c}function +E(a,b,c){return c}function +F(a,b,c){return c}function +G(a,b,c){return c}function +H(a,b,c){return c}function +I(a,b,c){return c}function +J(a,b,c){return c}fC(c,[0,u,function(a,b,c,d){return pV(m(b,c),d)},t,J,s,I,r,H,q,G,p,F,l,E,k,D,j,C,e,B,i,A,h,z,g,y,f,x,d,w,b,v]);return function(a,b){return fp(b,c)}});gP(0,function(c){var +a=fR(c,FI),e=a[7],b=a[1],d=a[2],f=a[3],g=a[4],h=a[5],i=a[6],j=a[8],k=a[9],l=a[10],p=a[11],q=a[12],r=a[13],s=a[14],t=a[15],u=a[16];function +v(a,b,c){return c}function +w(a,b,c){return c}function +x(a,b,c,d,e){if(0===e[0]){var +f=e[1],g=n(b,d,f);return f===g?e:[0,g]}var +h=e[1],i=n(c,d,h);return h===i?e:[1,i]}function +y(a,b,c,d){var +e=d[1],f=n(b,c,e);return e===f?d:[0,f]}function +z(a,b,c,d){if(!d)return 0;var +e=d[1],f=n(b,c,e);return e===f?d:[0,f]}function +A(a,b,c){return c}function +C(a,b,c,d){if(!d)return 0;var +f=d[2],g=d[1],h=n(b,c,g),i=o(a[1][1+e],a,b,c,f);if(g===h&&f===i)return d;return[0,h,i]}function +D(a,b,c,d){var +e=ai(d),f=ah===e?d[1]:O===e?aq(d):d,g=n(b,c,f);return f===g?d:[ah,g]}function +E(a,b,c){return c}function +F(a,b,c){return c}function +G(a,b,c){return c}function +H(a,b,c){return c}function +I(a,b,c){return c}function +J(a,b,c){return c}function +K(a,b,c){return c}fC(c,[0,u,function(a,b,c,d){var +f=pV(m(b,c),d),j=d.length-1;if(f.length-1!==j)throw B([0,aL,c3z],1);var +e=0;for(;;){var +g=e===j?1:0;if(g)var +h=g;else{var +i=d[1+e]===f[1+e]?1:0;if(i){var +e=e+1|0;continue}var +h=i}return h?d:f}},t,K,s,J,r,I,q,H,p,G,l,F,k,E,j,D,e,C,i,A,h,z,g,y,f,x,d,w,b,v]);return function(a,b){return fp(b,c)}});var +c3D=[],c3E=0,c3F=0;h(c3D,[0,0,function(c){var +a=fR(c,c3y),e=a[1],g=a[18],f=a[19],b=a[2],d=a[3],h=a[4],i=a[5],j=a[6],k=a[7],o=a[8],q=a[9],r=a[10],s=a[11],t=a[12],u=a[13],v=a[14],w=a[15],x=a[16],y=a[17],z=fG(c,0,uA,0,yg,1)[1];function +A(a,b,c){return m(a[1][1+e],a)}function +B(a,b,c){return m(a[1][1+e],a)}function +C(a,b,c,d,e){return 0===e[0]?n(b,d,e[1]):n(c,d,e[1])}function +D(a,b,c,d){return n(b,c,d[1])}function +E(a,b,c,d){return d?n(b,c,d[1]):m(a[1][1+e],a)}function +F(a,b,c){return m(a[1][1+e],a)}function +G(a,b,c,d,e){if(!e)return d;var +h=e[2],i=n(b,c,e[1]),j=l(a[1][1+g],a,d,i);return p(a[1][1+f],a,b,c,j,h)}function +H(a,b,c,d){var +g=m(a[1][1+e],a);return p(a[1][1+f],a,b,c,g,d)}function +I(a,b,c,d){var +e=ai(d),f=ah===e?d[1]:O===e?aq(d):d;return n(b,c,f)}function +J(a,b,c){return m(a[1][1+e],a)}function +K(a,b,c){return m(a[1][1+e],a)}function +L(a,b,c){return m(a[1][1+e],a)}function +M(a,b,c){return m(a[1][1+e],a)}function +N(a,b,c){return m(a[1][1+e],a)}function +P(a,b,c){return m(a[1][1+e],a)}function +Q(a,b,c){return m(a[1][1+e],a)}fC(c,[0,y,function(f,h,c,d){var +a=m(f[1][1+e],f);return xH(function(a,b){var +d=n(h,c,b);return l(f[1][1+g],f,a,d)},a,d)},x,Q,w,P,v,N,u,M,t,L,s,K,r,J,q,I,o,H,f,G,k,F,j,E,i,D,h,C,d,B,b,A]);return function(a,b){var +d=fp(b,c);m(z,d);return fH(b,d,c)}},c3F,c3E]);var +c3G=[],c3H=0,c3I=0;h(c3G,[0,0,function(c){var +a=fR(c,$1),e=a[1],f=a[8],h=a[18],b=a[2],d=a[3],g=a[4],i=a[5],j=a[6],k=a[7],p=a[9],q=a[10],r=a[11],s=a[12],t=a[13],u=a[14],v=a[15],w=a[16],x=a[17],y=fG(c,0,uA,0,yg,1)[1];function +z(a,b,c){return[0,c,m(a[1][1+e],a)]}function +A(a,b,c){return[0,c,m(a[1][1+e],a)]}function +B(a,b,c,d,e){if(0===e[0]){var +f=n(b,d,e[1]);return[0,[0,f[1]],f[2]]}var +g=n(c,d,e[1]);return[0,[1,g[1]],g[2]]}function +C(a,b,c,d){var +e=n(b,c,d[1]);return[0,[0,e[1]],e[2]]}function +D(a,b,c,d){if(!d)return[0,0,m(a[1][1+e],a)];var +f=n(b,c,d[1]);return[0,[0,f[1]],f[2]]}function +E(a,b,c){return[0,c,m(a[1][1+e],a)]}function +F(a,b,c,d){if(!d)return[0,0,m(a[1][1+e],a)];var +j=d[2],g=n(b,c,d[1]),k=g[2],p=g[1],i=o(a[1][1+f],a,b,c,j),q=i[1];return[0,[0,p,q],l(a[1][1+h],a,k,i[2])]}function +G(a,b,c,d){var +e=ai(d),g=ah===e?d[1]:O===e?aq(d):d,f=n(b,c,g);return[0,[ah,f[1]],f[2]]}function +H(a,b,c){return[0,c,m(a[1][1+e],a)]}function +I(a,b,c){return[0,c,m(a[1][1+e],a)]}function +J(a,b,c){return[0,c,m(a[1][1+e],a)]}function +K(a,b,c){return[0,c,m(a[1][1+e],a)]}function +L(a,b,c){return[0,c,m(a[1][1+e],a)]}function +M(a,b,c){return[0,c,m(a[1][1+e],a)]}function +N(a,b,c){return[0,c,m(a[1][1+e],a)]}fC(c,[0,x,function(f,b,c,d){var +g=[0,m(f[1][1+e],f)],a=pV(function(a){var +d=n(b,c,a),e=d[1];g[1]=l(f[1][1+h],f,g[1],d[2]);return e},d);return[0,a,g[1]]},w,N,v,M,u,L,t,K,s,J,r,I,q,H,p,G,f,F,k,E,j,D,i,C,g,B,d,A,b,z]);return function(a,b){var +d=fp(b,c);m(y,d);return fH(b,d,c)}},c3I,c3H]);gP(0,function(c){return function(a,b){return fp(b,c)}});gP(0,function(c){var +a=fR(c,FI),f=a[7],b=a[1],d=a[2],e=a[3],g=a[4],h=a[5],i=a[6],j=a[8],k=a[9],m=a[10],n=a[11],o=a[12],q=a[13],r=a[14],s=a[15],t=a[16];function +u(a,b,c,d){return 0}function +v(a,b,c,d){return af(c,d)?0:gB(0)}function +w(a,b,c,d,e,f){if(0===e[0]){var +g=e[1];if(0===f[0])return l(b,d,g,f[1])}else{var +h=e[1];if(0!==f[0])return l(c,d,h,f[1])}return gB(0)}function +x(a,b,c,d,e){return l(b,c,d[1],e[1])}function +y(a,b,c,d,e){if(d){if(e)return l(b,c,d[1],e[1])}else if(!e)return 0;return gB(0)}function +z(a,b,c,d){return ao(c,d)?0:gB(0)}function +A(a,b,c,d,e){if(d){if(e){var +g=e[2],h=d[2];l(b,c,d[1],e[1]);return p(a[1][1+f],a,b,c,h,g)}}else if(!e)return 0;return gB(0)}function +B(a,b,c,d){var +e=ai(d),f=ah===e?d[1]:O===e?aq(d):d;return function(a){var +d=ai(a),e=ah===d?a[1]:O===d?aq(a):a;return l(b,c,f,e)}}function +C(a,b,c,d){return ao(c,d)?0:gB(0)}function +D(a,b,c,d){return ao(c,d)?0:gB(0)}function +E(a,b,c,d){return c===d?0:gB(0)}function +F(a,b,c,d){return c==d?0:gB(0)}function +G(a,b,c,d){return c===d?0:gB(0)}function +H(a,b,c,d){return Jf(c,d)?0:gB(0)}function +I(a,b,c,d){return c===d?0:gB(0)}fC(c,[0,t,function(a,b,c,d,e){if(d.length-1!==e.length-1)return gB(0);var +g=d.length-1-1|0,h=0;if(g>=0){var +f=h;for(;;){l(b,c,d[1+f],e[1+f]);var +i=f+1|0;if(g!==f){var +f=i;continue}break}}return 0},s,I,r,H,q,G,o,F,n,E,m,D,k,C,j,B,f,A,i,z,h,y,g,x,e,w,d,v,b,u]);return function(a,b){return fp(b,c)}});gP(0,function(c){var +a=fR(c,FI),f=a[7],b=a[1],d=a[2],e=a[3],g=a[4],h=a[5],i=a[6],j=a[8],k=a[9],m=a[10],n=a[11],o=a[12],q=a[13],r=a[14],s=a[15],t=a[16];function +u(a,b,c,d){return 0}function +v(a,b,c,d){return af(c,d)?c:gB(0)}function +w(a,b,c,d,e,f){if(0===e[0]){var +g=e[1];if(0===f[0])return[0,l(b,d,g,f[1])]}else{var +h=e[1];if(0!==f[0])return[1,l(c,d,h,f[1])]}return gB(0)}function +x(a,b,c,d,e){return[0,l(b,c,d[1],e[1])]}function +y(a,b,c,d,e){if(d){if(e)return[0,l(b,c,d[1],e[1])]}else if(!e)return 0;return gB(0)}function +z(a,b,c,d){return ao(c,d)?c:gB(0)}function +A(a,b,c,d,e){if(d){if(e){var +g=e[2],h=d[2],i=l(b,c,d[1],e[1]);return[0,i,p(a[1][1+f],a,b,c,h,g)]}}else if(!e)return 0;return gB(0)}function +B(a,b,c,d,e){return[O,function(a){var +f=ai(e),h=ah===f?e[1]:O===f?aq(e):e,g=ai(d),i=ah===g?d[1]:O===g?aq(d):d;return l(b,c,i,h)}]}function +C(a,b,c,d){return ao(c,d)?c:gB(0)}function +D(a,b,c,d){return ao(c,d)?c:gB(0)}function +E(a,b,c,d){return c===d?c:gB(0)}function +F(a,b,c,d){return c==d?c:gB(0)}function +G(a,b,c,d){return c===d?c:gB(0)}function +H(a,b,c,d){return Jf(c,d)?c:gB(0)}function +I(a,b,c,d){return c===d?c:gB(0)}fC(c,[0,t,function(a,f,c,d,e){return d.length-1===e.length-1?aud(function(a,b){return l(f,c,b,fD(e,a)[1+a])},d):gB(0)},s,I,r,H,q,G,o,F,n,E,m,D,k,C,j,B,f,A,i,z,h,y,g,x,e,w,d,v,b,u]);return function(a,b){return fp(b,c)}});var +c3J=[],c3K=0,c3L=0;h(c3J,[0,0,function(c){var +a=fR(c,$1),f=a[1],j=a[18],b=a[2],d=a[3],e=a[4],g=a[5],h=a[6],i=a[7],k=a[8],n=a[9],o=a[10],p=a[11],q=a[12],r=a[13],s=a[14],t=a[15],u=a[16],v=a[17],w=fG(c,0,uA,0,yg,1)[1];function +x(a,b,c,d){return m(a[1][1+f],a)}function +y(a,b,c,d){return af(c,d)?m(a[1][1+f],a):gB(0)}function +z(a,b,c,d,e,f){if(0===e[0]){var +g=e[1];if(0===f[0])return l(b,d,g,f[1])}else{var +h=e[1];if(0!==f[0])return l(c,d,h,f[1])}return gB(0)}function +A(a,b,c,d,e){return l(b,c,d[1],e[1])}function +B(a,b,c,d,e){if(d){if(e)return l(b,c,d[1],e[1])}else if(!e)return m(a[1][1+f],a);return gB(0)}function +C(a,b,c,d){return ao(c,d)?m(a[1][1+f],a):gB(0)}function +D(a,b,c,d,e){var +o=fA(e);if(fA(d)!==o)return gB(0);var +i=m(a[1][1+f],a),h=d,g=e;for(;;){if(h){if(g){var +k=g[2],n=h[2],p=l(b,c,h[1],g[1]),i=l(a[1][1+j],a,i,p),h=n,g=k;continue}}else if(!g)return i;return gv(a5Q)}}function +E(a,b,c,d){var +e=ai(d),f=ah===e?d[1]:O===e?aq(d):d;return function(a){var +d=ai(a),e=ah===d?a[1]:O===d?aq(a):a;return l(b,c,f,e)}}function +F(a,b,c,d){return ao(c,d)?m(a[1][1+f],a):gB(0)}function +G(a,b,c,d){return ao(c,d)?m(a[1][1+f],a):gB(0)}function +H(a,b,c,d){return c===d?m(a[1][1+f],a):gB(0)}function +I(a,b,c,d){return c==d?m(a[1][1+f],a):gB(0)}function +J(a,b,c,d){return c===d?m(a[1][1+f],a):gB(0)}function +K(a,b,c,d){return Jf(c,d)?m(a[1][1+f],a):gB(0)}function +L(a,b,c,d){return c===d?m(a[1][1+f],a):gB(0)}fC(c,[0,v,function(a,b,c,d,e){if(d.length-1!==e.length-1)return gB(0);var +h=[0,m(a[1][1+f],a)],i=d.length-1-1|0,k=0;if(i>=0){var +g=k;for(;;){var +n=l(b,c,d[1+g],e[1+g]);h[1]=l(a[1][1+j],a,h[1],n);var +o=g+1|0;if(i!==g){var +g=o;continue}break}}return h[1]},u,L,t,K,s,J,r,I,q,H,p,G,o,F,n,E,k,D,i,C,h,B,g,A,e,z,d,y,b,x]);return function(a,b){var +d=fp(b,c);m(w,d);return fH(b,d,c)}},c3L,c3K]);var +c3M=[],c3N=0,c3O=0;h(c3M,[0,0,function(c){var +a=fR(c,$1),f=a[1],g=a[8],i=a[18],b=a[2],d=a[3],e=a[4],h=a[5],j=a[6],k=a[7],n=a[9],o=a[10],q=a[11],r=a[12],s=a[13],t=a[14],u=a[15],v=a[16],w=a[17],x=fG(c,0,uA,0,yg,1)[1];function +y(a,b,c,d){return[0,0,m(a[1][1+f],a)]}function +z(a,b,c,d){return af(c,d)?[0,c,m(a[1][1+f],a)]:gB(0)}function +A(a,b,c,d,e,f){if(0===e[0]){var +i=e[1];if(0===f[0]){var +g=l(b,d,i,f[1]);return[0,[0,g[1]],g[2]]}}else{var +j=e[1];if(0!==f[0]){var +h=l(c,d,j,f[1]);return[0,[1,h[1]],h[2]]}}return gB(0)}function +B(a,b,c,d,e){var +f=l(b,c,d[1],e[1]);return[0,[0,f[1]],f[2]]}function +C(a,b,c,d,e){if(d){if(e){var +g=l(b,c,d[1],e[1]);return[0,[0,g[1]],g[2]]}}else if(!e)return[0,0,m(a[1][1+f],a)];return gB(0)}function +D(a,b,c,d){return ao(c,d)?[0,c,m(a[1][1+f],a)]:gB(0)}function +E(a,b,c,d,e){if(d){if(e){var +k=e[2],n=d[2],h=l(b,c,d[1],e[1]),o=h[2],q=h[1],j=p(a[1][1+g],a,b,c,n,k),r=j[1];return[0,[0,q,r],l(a[1][1+i],a,o,j[2])]}}else if(!e)return[0,0,m(a[1][1+f],a)];return gB(0)}function +F(a,b,c,d){var +e=ai(d),f=ah===e?d[1]:O===e?aq(d):d;return function(a){var +d=ai(a),g=ah===d?a[1]:O===d?aq(a):a,e=l(b,c,f,g);return[0,[ah,e[1]],e[2]]}}function +G(a,b,c,d){return ao(c,d)?[0,c,m(a[1][1+f],a)]:gB(0)}function +H(a,b,c,d){return ao(c,d)?[0,c,m(a[1][1+f],a)]:gB(0)}function +I(a,b,c,d){return c===d?[0,c,m(a[1][1+f],a)]:gB(0)}function +J(a,b,c,d){return c==d?[0,c,m(a[1][1+f],a)]:gB(0)}function +K(a,b,c,d){return c===d?[0,c,m(a[1][1+f],a)]:gB(0)}function +L(a,b,c,d){return Jf(c,d)?[0,c,m(a[1][1+f],a)]:gB(0)}function +M(a,b,c,d){return c===d?[0,c,m(a[1][1+f],a)]:gB(0)}fC(c,[0,w,function(g,b,c,d,e){var +a=d.length-1;if(a!==e.length-1)return gB(0);var +h=[0,m(g[1][1+f],g)],j=aua(a,function(a){var +f=l(b,c,d[1+a],e[1+a]),j=f[1];h[1]=l(g[1][1+i],g,h[1],f[2]);return j});return[0,j,h[1]]},v,M,u,L,t,K,s,J,r,I,q,H,o,G,n,F,g,E,k,D,j,C,h,B,e,A,d,z,b,y]);return function(a,b){var +d=fp(b,c);m(x,d);return fH(b,d,c)}},c3O,c3N]);gP(0,function(c){return function(a,b){return fp(b,c)}});var +$3=function +c(a,b){return c.fun(a,b)};h($3,function(a,b){switch(a[0]){case +0:var +h=a[1];if(0===b[0])return af(h,b[1]);break;case +1:var +i=a[2],j=a[1];if(1===b[0]){var +e=j===b[1]?1:0,k=b[2];return e?af(i,k):e}break;default:var +l=a[2],n=a[1];if(2===b[0]){var +f=af(n,b[1]),o=b[2];if(!f)return f;var +d=l,c=o;for(;;){if(d){if(c){var +p=c[2],q=c[1],r=d[2],g=m(m($3,d[1]),q);if(!g)return g;var +d=r,c=p;continue}}else if(!c)return 1;return 0}}}return 0});var +FJ=function +c(a,b){return c.fun(a,b)};h(FJ,function(a,b){switch(a[0]){case +0:var +i=a[1];if(0===b[0])return aQ(i,b[1]);break;case +1:var +k=a[2],l=a[1];if(1===b[0]){var +f=ix(l,b[1]),n=b[2];return 0===f?aQ(k,n):f}break;default:var +o=a[2],p=a[1];if(2===b[0]){var +g=aQ(p,b[1]),q=b[2];if(0!==g)return g;var +d=o,c=q;for(;;){if(!d)return c?-1:0;if(!c)return 1;var +r=c[2],s=c[1],t=d[2],h=m(m(FJ,d[1]),s);if(0!==h)return h;var +d=t,c=r}}}function +e(a){switch(a[0]){case +0:return 0;case +1:return 1;default:return 2}}var +j=e(b);return ix(e(a),j)});var +NK=function +c(a,b){return c.fun(a,b)},aH1=function +b(a){return b.fun(a)};h(NK,function(c,b){switch(b[0]){case +0:var +a=b[1];m(f(c),c3P);m(m(f(c),c3Q),a);return m(f(c),c3R);case +1:var +d=b[2],e=b[1];m(f(c),c3S);m(m(f(c),c3T),e);m(f(c),c3U);m(m(f(c),c3V),d);return m(f(c),c3W);default:var +g=b[2],h=b[1];m(f(c),c3X);m(m(f(c),c3Y),h);m(f(c),c3Z);m(f(c),c30);var +i=0;M(function(a,b){if(a)m(f(c),c31);m(m(NK,c),b);return 1},i,g);m(f(c),c32);return m(f(c),c33)}});h(aH1,function(a){return n(z(c34),NK,a)});var +aU=h_([0,FJ]),ic=h$([0,FJ]),jC=function(a){var +b=1===a[0]?a[2]:a[1];return b},c35=[0,0,uh([0,function(a,b){return aQ(a,b)}])[1]];rp(c36);yc(c37);yc(c38);yc(c39);if(Vn)rp(c3_);else +yc(s7);var +r$=[0,0,0,0,0,c35,0,0,g2,0,0,c3$],$5=function(a){return xW(a,$4)},aH2=function(a){return $5(a)?EQ(a,$4):a},aH3=function(c,b){if(!c[9])return 0;function +a(a){if(!xW(b,a))return 0;var +d=EQ(b,a);function +e(a){return xW(d,a)?[0,P(c4a,AJ(EQ(d,a)[1]))]:0}return s9(c[10],e)}return s9(c[7],a)},aH4=function(a,b){var +d=0,c=a[10];for(;;){if(!c)return 0;var +e=c[1],f=c[2],g=function(g){return function(a){var +f=P(g,a),c=Z(b),d=Z(f),e=d<=c?1:0;return e?awc(b,c-d|0,f,avB):e}}(e);if(p0(a[7],g))return[0,[0,d,e]];var +d=d+1|0,c=f}},c4c=rp(c4b);yc(a_C);yc(avn);rp(c4d);yc(c4e);var +NL=function +c(a,b){return c.fun(a,b)},c4g=function +c(a,b){return c.fun(a,b)},$6=function(a,b){return M(avq,a,b)};h(c4g,function(a,b){var +l=0;if(af(b,g))var +i=0;else{var +d=0,c=0,e=l;for(;;){if(Z(b)=e+zh>>>0)f=1}else if(65<=e)f=1;if(f)var +d=1;else{var +k=0;m=1}}else +var +d=i}else +var +d=h}else +var +d=Vn;if(!m)var +k=d;if(k)return $6(P(VA(c),s7),o)}return $6(a,b)});var +aH5=function(a){var +b=0,d=a;for(;;){var +c=avp(d);if(!af(d,c)){var +b=[0,AJ(d),b],d=c;continue}if(Wj(c))return b;if(!b)return[0,c,0];var +e=b[2];return[0,avq(c,b[1]),e]}},aH6=function(a){var +h=aH5(a);return function(a){var +b=[0,h,aH5(a)];for(;;){var +c=b[1];if(c){var +d=b[2];if(d){var +e=d[2],f=c[2];if(af(c[1],d[1])){var +b=[0,f,e];continue}}}var +g=b[2];return M(function(a,b){return[0,avn,a]},g,c)}}},NM=function(a){var +b=aH6(a);return function(a){return f2(c4h,m(b,a))}},qG=function(a,b){switch(a[0]){case +0:var +c=a[1];if(0===b[0])return af(c,b[1]);break;case +1:var +d=a[1];if(1===b[0])return af(d,b[1]);break;default:var +e=a[1];if(2===b[0])return af(e,b[1])}return 0},NN=function +c(a,b){return c.fun(a,b)};h(NN,function(a,b){switch(a[0]){case +0:var +d=a[1];if(0===b[0])return aQ(d,b[1]);break;case +1:var +f=a[1];if(1===b[0])return aQ(f,b[1]);break;default:var +g=a[1];if(2===b[0])return aQ(g,b[1])}function +c(a){switch(a[0]){case +0:return 0;case +1:return 1;default:return 2}}var +e=c(b);return ix(c(a),e)});var +ls=function(a,b){switch(b[0]){case +0:var +c=b[1];m(f(a),c4i);m(m(f(a),c4j),c);return m(f(a),c4k);case +1:var +d=b[1];m(f(a),c4l);m(m(f(a),c4m),d);return m(f(a),c4n);default:var +e=b[1];m(f(a),c4o);m(m(f(a),c4p),e);return m(f(a),c4q)}},fI=function(a){switch(a[0]){case +0:return a[1];case +1:var +b=a[1];return m(k(c4r),b);default:var +c=a[1];return m(k(c4s),c)}},go=function +d(a,b,c){return d.fun(a,b,c)},aH7=function +c(a,b){return c.fun(a,b)};h(go,function(a,b,c){if(typeof +b==="number"){var +v=b;if(46<=v)switch(v){case +46:if(typeof +c==="number"&&46===c)return 1;break;case +47:if(typeof +c==="number"&&47===c)return 1;break;case +48:if(typeof +c==="number"&&48===c)return 1;break;case +49:if(typeof +c==="number"&&49===c)return 1;break;case +50:if(typeof +c==="number"&&50===c)return 1;break;case +51:if(typeof +c==="number"&&51===c)return 1;break;case +52:if(typeof +c==="number"&&52===c)return 1;break;case +53:if(typeof +c==="number"&&53===c)return 1;break;case +54:if(typeof +c==="number"&&54===c)return 1;break;case +55:if(typeof +c==="number"&&55===c)return 1;break;case +56:if(typeof +c==="number"&&56===c)return 1;break;case +57:if(typeof +c==="number"&&57===c)return 1;break;case +58:if(typeof +c==="number"&&58===c)return 1;break;case +59:if(typeof +c==="number"&&59===c)return 1;break;case +60:if(typeof +c==="number"&&60===c)return 1;break;case +61:if(typeof +c==="number"&&61===c)return 1;break;case +62:if(typeof +c==="number"&&62===c)return 1;break;case +63:if(typeof +c==="number"&&63===c)return 1;break;case +64:if(typeof +c==="number"&&64===c)return 1;break;case +65:if(typeof +c==="number"&&65===c)return 1;break;case +66:if(typeof +c==="number"&&66===c)return 1;break;case +67:if(typeof +c==="number"&&67===c)return 1;break;case +68:if(typeof +c==="number"&&68===c)return 1;break;case +69:if(typeof +c==="number"&&69===c)return 1;break;case +70:if(typeof +c==="number"&&70===c)return 1;break;case +71:if(typeof +c==="number"&&71===c)return 1;break;case +72:if(typeof +c==="number"&&72===c)return 1;break;case +73:if(typeof +c==="number"&&73===c)return 1;break;case +74:if(typeof +c==="number"&&74===c)return 1;break;case +75:if(typeof +c==="number"&&75===c)return 1;break;case +76:if(typeof +c==="number"&&76===c)return 1;break;case +77:if(typeof +c==="number"&&77===c)return 1;break;case +78:if(typeof +c==="number"&&78===c)return 1;break;case +79:if(typeof +c==="number"&&79===c)return 1;break;case +80:if(typeof +c==="number"&&80===c)return 1;break;case +81:if(typeof +c==="number"&&81===c)return 1;break;case +82:if(typeof +c==="number"&&82===c)return 1;break;case +83:if(typeof +c==="number"&&83===c)return 1;break;case +84:if(typeof +c==="number"&&84===c)return 1;break;case +85:if(typeof +c==="number"&&85===c)return 1;break;case +86:if(typeof +c==="number"&&86===c)return 1;break;case +87:if(typeof +c==="number"&&87===c)return 1;break;case +88:if(typeof +c==="number"&&88===c)return 1;break;case +89:if(typeof +c==="number"&&89===c)return 1;break;case +90:if(typeof +c==="number"&&90===c)return 1;break;default:if(typeof +c==="number"&&91<=c)return 1}else +switch(v){case +0:if(typeof +c==="number"&&!c)return 1;break;case +1:if(typeof +c==="number"&&1===c)return 1;break;case +2:if(typeof +c==="number"&&2===c)return 1;break;case +3:if(typeof +c==="number"&&3===c)return 1;break;case +4:if(typeof +c==="number"&&4===c)return 1;break;case +5:if(typeof +c==="number"&&5===c)return 1;break;case +6:if(typeof +c==="number"&&6===c)return 1;break;case +7:if(typeof +c==="number"&&7===c)return 1;break;case +8:if(typeof +c==="number"&&8===c)return 1;break;case +9:if(typeof +c==="number"&&9===c)return 1;break;case +10:if(typeof +c==="number"&&10===c)return 1;break;case +11:if(typeof +c==="number"&&11===c)return 1;break;case +12:if(typeof +c==="number"&&12===c)return 1;break;case +13:if(typeof +c==="number"&&13===c)return 1;break;case +14:if(typeof +c==="number"&&14===c)return 1;break;case +15:if(typeof +c==="number"&&15===c)return 1;break;case +16:if(typeof +c==="number"&&16===c)return 1;break;case +17:if(typeof +c==="number"&&17===c)return 1;break;case +18:if(typeof +c==="number"&&18===c)return 1;break;case +19:if(typeof +c==="number"&&19===c)return 1;break;case +20:if(typeof +c==="number"&&20===c)return 1;break;case +21:if(typeof +c==="number"&&21===c)return 1;break;case +22:if(typeof +c==="number"&&22===c)return 1;break;case +23:if(typeof +c==="number"&&23===c)return 1;break;case +24:if(typeof +c==="number"&&24===c)return 1;break;case +25:if(typeof +c==="number"&&25===c)return 1;break;case +26:if(typeof +c==="number"&&26===c)return 1;break;case +27:if(typeof +c==="number"&&27===c)return 1;break;case +28:if(typeof +c==="number"&&28===c)return 1;break;case +29:if(typeof +c==="number"&&29===c)return 1;break;case +30:if(typeof +c==="number"&&30===c)return 1;break;case +31:if(typeof +c==="number"&&31===c)return 1;break;case +32:if(typeof +c==="number"&&32===c)return 1;break;case +33:if(typeof +c==="number"&&33===c)return 1;break;case +34:if(typeof +c==="number"&&34===c)return 1;break;case +35:if(typeof +c==="number"&&35===c)return 1;break;case +36:if(typeof +c==="number"&&36===c)return 1;break;case +37:if(typeof +c==="number"&&37===c)return 1;break;case +38:if(typeof +c==="number"&&38===c)return 1;break;case +39:if(typeof +c==="number"&&39===c)return 1;break;case +40:if(typeof +c==="number"&&40===c)return 1;break;case +41:if(typeof +c==="number"&&41===c)return 1;break;case +42:if(typeof +c==="number"&&42===c)return 1;break;case +43:if(typeof +c==="number"&&43===c)return 1;break;case +44:if(typeof +c==="number"&&44===c)return 1;break;default:if(typeof +c==="number"&&45===c)return 1}}else{var +w=b[0];if(51<=w)switch(w){case +51:if(typeof +c!=="number"&&51===c[0]){var +a2=c[1],a3=b[1];return m(m(m(go,a),a3),a2)}break;case +52:if(typeof +c!=="number"&&52===c[0])return af(b[1],c[1]);break;case +53:if(typeof +c!=="number"&&53===c[0])return af(b[1],c[1]);break;case +54:if(typeof +c!=="number"&&54===c[0]){var +_=af(b[1],c[1]),a4=c[2],a5=b[2];return _?af(a5,a4):_}break;case +55:if(typeof +c!=="number"&&55===c[0])return af(b[1],c[1]);break;case +56:if(typeof +c!=="number"&&56===c[0])return af(b[1],c[1]);break;case +57:if(typeof +c!=="number"&&57===c[0])return af(b[1],c[1]);break;case +58:if(typeof +c!=="number"&&58===c[0]){var +$=af(b[1],c[1]),a6=c[2],a7=b[2];return $?af(a7,a6):$}break;case +59:if(typeof +c!=="number"&&59===c[0])return af(b[1],c[1]);break;case +60:if(typeof +c!=="number"&&60===c[0])return af(b[1],c[1]);break;case +61:if(typeof +c!=="number"&&61===c[0]){var +a8=c[1],a9=b[1];return m(m(m(go,a),a9),a8)}break;case +62:if(typeof +c!=="number"&&62===c[0]){var +a_=c[1],a$=b[1];return m(m(m(go,a),a$),a_)}break;case +63:if(typeof +c!=="number"&&63===c[0]){var +ba=c[1],bb=b[1];return m(m(m(go,a),bb),ba)}break;case +64:if(typeof +c!=="number"&&64===c[0]){var +bc=c[1],bd=b[1];return m(m(m(go,a),bd),bc)}break;case +65:if(typeof +c!=="number"&&65===c[0]){var +be=c[1],bf=b[1];return m(m(m(go,a),bf),be)}break;case +66:if(typeof +c!=="number"&&66===c[0]){var +bg=c[1],bh=b[1];return m(m(m(go,a),bh),bg)}break;case +67:if(typeof +c!=="number"&&67===c[0]){var +bi=c[1],bj=b[1];return m(m(m(go,a),bj),bi)}break;case +68:if(typeof +c!=="number"&&68===c[0]){var +bk=c[1],bl=b[1];return m(m(m(go,a),bl),bk)}break;case +69:if(typeof +c!=="number"&&69===c[0]){var +bm=c[1],bn=b[1];return m(m(m(go,a),bn),bm)}break;case +70:if(typeof +c!=="number"&&70===c[0]){var +bo=c[1],bp=b[1];return m(m(m(go,a),bp),bo)}break;case +71:if(typeof +c!=="number"&&71===c[0]){var +bq=c[1],br=b[1];return m(m(m(go,a),br),bq)}break;case +72:if(typeof +c!=="number"&&72===c[0]){var +bs=c[1],bt=b[1];return m(m(m(go,a),bt),bs)}break;case +73:if(typeof +c!=="number"&&73===c[0]){var +bu=c[1],bv=b[1];return m(m(m(go,a),bv),bu)}break;case +74:if(typeof +c!=="number"&&74===c[0]){var +bw=c[1],bx=b[1];return m(m(m(go,a),bx),bw)}break;case +75:if(typeof +c!=="number"&&75===c[0]){var +by=c[1],bz=b[1];return m(m(m(go,a),bz),by)}break;case +76:if(typeof +c!=="number"&&76===c[0]){var +bA=c[1],bB=b[1];return m(m(m(go,a),bB),bA)}break;case +77:if(typeof +c!=="number"&&77===c[0]){var +bC=c[1],bD=b[1];return m(m(m(go,a),bD),bC)}break;case +78:if(typeof +c!=="number"&&78===c[0]){var +bE=c[1],bF=b[1];return m(m(m(go,a),bF),bE)}break;case +79:if(typeof +c!=="number"&&79===c[0]){var +bG=c[1],bH=b[1];return m(m(m(go,a),bH),bG)}break;case +80:if(typeof +c!=="number"&&80===c[0]){var +bI=c[1],bJ=b[1];return m(m(m(go,a),bJ),bI)}break;case +81:if(typeof +c!=="number"&&81===c[0])return af(b[1],c[1]);break;case +82:if(typeof +c!=="number"&&82===c[0]){var +bK=c[1],bL=b[1];return m(m(m(go,a),bL),bK)}break;case +83:if(typeof +c!=="number"&&83===c[0]){var +bM=c[1],bN=b[1];return m(m(m(go,a),bN),bM)}break;case +84:if(typeof +c!=="number"&&84===c[0]){var +bO=c[1],bP=b[1];return m(m(m(go,a),bP),bO)}break;case +85:if(typeof +c!=="number"&&85===c[0])return af(b[1],c[1]);break;case +86:if(typeof +c!=="number"&&86===c[0])return qG(b[1],c[1]);break;case +87:if(typeof +c!=="number"&&87===c[0]){var +u=c[1],aa=b[1],x=0,bQ=c[2],bR=b[2];if(aa)if(u)var +d=qG(aa[1],u[1]);else +x=1;else if(u)x=1;else +var +d=1;if(x)var +d=0;return d?bR===bQ?1:0:d}break;case +88:if(typeof +c!=="number"&&88===c[0]){var +bS=c[1],bT=b[1];return m(m(m(go,a),bT),bS)}break;case +89:if(typeof +c!=="number"&&89===c[0]){var +bU=c[1],bV=b[1];return m(m(m(go,a),bV),bU)}break;case +90:if(typeof +c!=="number"&&90===c[0]){var +bW=c[2],bX=b[2],ag=qG(b[1],c[1]);return ag?m(m(m(go,a),bX),bW):ag}break;case +91:if(typeof +c!=="number"&&91===c[0]){var +bY=c[2],bZ=c[1],b0=b[2],b1=b[1],ab=m(m(m(go,a),b1),bZ);return ab?b0===bY?1:0:ab}break;case +92:if(typeof +c!=="number"&&92===c[0])return af(b[1],c[1]);break;case +93:if(typeof +c!=="number"&&93===c[0])return qG(b[1],c[1]);break;case +94:if(typeof +c!=="number"&&94===c[0]){var +b2=c[1],b3=b[1];return m(m(m(go,a),b3),b2)}break;case +95:if(typeof +c!=="number"&&95===c[0]){var +b4=c[1],b5=b[1];return m(m(m(go,a),b5),b4)}break;case +96:if(typeof +c!=="number"&&96===c[0]){var +b6=c[1],b7=b[1];return m(m(m(go,a),b7),b6)}break;case +97:if(typeof +c!=="number"&&97===c[0]){var +b8=c[3],b9=c[2],b_=c[1],b$=b[3],ca=b[2],cb=b[1],ac=m(m(m(go,a),cb),b_),ad=ac?m(m(m(go,a),ca),b9):ac;return ad?b$===b8?1:0:ad}break;case +98:if(typeof +c!=="number"&&98===c[0]){var +cc=c[1],cd=b[1];return m(m(m(go,a),cd),cc)}break;case +99:if(typeof +c!=="number"&&99===c[0]){var +ce=c[1],cf=b[1];return m(m(m(go,a),cf),ce)}break;default:if(typeof +c!=="number"&&hZ===c[0]){var +cg=c[1],ch=b[1];return m(m(m(go,a),ch),cg)}}else +switch(w){case +0:if(typeof +c!=="number"&&0===c[0])return b[1]===c[1]?1:0;break;case +1:if(typeof +c!=="number"&&1===c[0])return qG(b[1],c[1]);break;case +2:if(typeof +c!=="number"&&2===c[0])return af(b[1],c[1]);break;case +3:if(typeof +c!=="number"&&3===c[0])return af(b[1],c[1]);break;case +4:if(typeof +c!=="number"&&4===c[0])return b[1]===c[1]?1:0;break;case +5:if(typeof +c!=="number"&&5===c[0])return b[1]===c[1]?1:0;break;case +6:if(typeof +c!=="number"&&6===c[0])return af(b[1],c[1]);break;case +7:if(typeof +c!=="number"&&7===c[0]){var +z=af(b[1],c[1]),ah=c[2],ai=b[2];return z?m(m(m(go,a),ai),ah):z}break;case +8:if(typeof +c!=="number"&&8===c[0])return b[1]===c[1]?1:0;break;case +9:if(typeof +c!=="number"&&9===c[0]){var +e=c[1],A=b[1];if(A){if(e)return af(A[1],e[1])}else if(!e)return 1;return 0}break;case +10:if(typeof +c!=="number"&&10===c[0])return b[1]===c[1]?1:0;break;case +11:if(typeof +c!=="number"&&11===c[0])return b[1]===c[1]?1:0;break;case +12:if(typeof +c!=="number"&&12===c[0]){var +aj=c[1];return m(m(aH7,b[1]),aj)}break;case +13:if(typeof +c!=="number"&&13===c[0]){var +ak=c[1],al=b[1];return m(m(m(go,a),al),ak)}break;case +14:if(typeof +c!=="number"&&14===c[0])return af(b[1],c[1]);break;case +15:if(typeof +c!=="number"&&15===c[0]){var +B=af(b[1],c[1]),am=c[2],an=b[2];return B?af(an,am):B}break;case +16:if(typeof +c!=="number"&&16===c[0])return af(b[1],c[1]);break;case +17:if(typeof +c!=="number"&&17===c[0]){var +f=c[1],C=b[1];if(C){if(f)return af(C[1],f[1])}else if(!f)return 1;return 0}break;case +18:if(typeof +c!=="number"&&18===c[0]){var +D=af(b[1],c[1]),ao=c[2],ap=b[2];return D?m(m(m(go,a),ap),ao):D}break;case +19:if(typeof +c!=="number"&&19===c[0]){var +E=af(b[1],c[1]),aq=c[3],ar=c[2],as=b[3],at=b[2],F=E?m(m(m(go,a),at),ar):E;return F?m(m(m(go,a),as),aq):F}break;case +20:if(typeof +c!=="number"&&20===c[0]){var +G=af(b[1],c[1]),au=c[3],av=c[2],aw=b[3],ax=b[2],H=G?m(m(m(go,a),ax),av):G;return H?m(m(m(go,a),aw),au):H}break;case +21:if(typeof +c!=="number"&&21===c[0])return af(b[1],c[1]);break;case +22:if(typeof +c!=="number"&&22===c[0]){var +ay=c[1],az=b[1];return m(m(m(go,a),az),ay)}break;case +23:if(typeof +c!=="number"&&23===c[0]){var +aA=c[1],aB=b[1];return m(m(m(go,a),aB),aA)}break;case +24:if(typeof +c!=="number"&&24===c[0]){var +aC=c[1],aD=b[1];return m(m(m(go,a),aD),aC)}break;case +25:if(typeof +c!=="number"&&25===c[0])return qG(b[1],c[1]);break;case +26:if(typeof +c!=="number"&&26===c[0]){var +g=c[2],I=b[2],J=af(b[1],c[1]),aE=c[3],aF=b[3];if(J){var +y=0;if(I)if(g)var +h=n(a,I[1],g[1]);else +y=1;else if(g)y=1;else +var +h=1;if(y)var +h=0;var +i=h}else +var +i=J;return i?m(m(m(go,a),aF),aE):i}break;case +27:if(typeof +c!=="number"&&27===c[0])return af(b[1],c[1]);break;case +28:if(typeof +c!=="number"&&28===c[0]){var +K=c[3],L=c[2],M=b[3],N=b[2],aG=c[1],O=m(m($3,b[1]),aG);if(O)var +aH=L[2],aI=L[1],aJ=N[2],aK=N[1],P=m(m(m(go,a),aK),aI),aL=P?n(a,aJ,aH):P,j=aL;else +var +j=O;if(!j)return j;var +aM=K[2],aN=K[1],aO=M[2],aP=M[1],Q=m(m(m(go,a),aP),aN);return Q?n(a,aO,aM):Q}break;case +29:if(typeof +c!=="number"&&29===c[0]){var +aQ=c[1],aR=b[1];return m(m(m(go,a),aR),aQ)}break;case +30:if(typeof +c!=="number"&&30===c[0]){var +aS=c[1],aT=b[1];return m(m(m(go,a),aT),aS)}break;case +31:if(typeof +c!=="number"&&31===c[0])return af(b[1],c[1]);break;case +32:if(typeof +c!=="number"&&32===c[0]){var +k=c[1],R=b[1];if(R){if(k)return af(R[1],k[1])}else if(!k)return 1;return 0}break;case +33:if(typeof +c!=="number"&&33===c[0]){var +l=c[1],S=b[1];if(S){if(l)return af(S[1],l[1])}else if(!l)return 1;return 0}break;case +34:if(typeof +c!=="number"&&34===c[0]){var +o=c[1],T=b[1];if(T){if(o)return af(T[1],o[1])}else if(!o)return 1;return 0}break;case +35:if(typeof +c!=="number"&&35===c[0]){var +p=c[1],U=b[1];if(U){if(p)return af(U[1],p[1])}else if(!p)return 1;return 0}break;case +36:if(typeof +c!=="number"&&36===c[0])return af(b[1],c[1]);break;case +37:if(typeof +c!=="number"&&37===c[0])return qG(b[1],c[1]);break;case +38:if(typeof +c!=="number"&&38===c[0])return af(b[1],c[1]);break;case +39:if(typeof +c!=="number"&&39===c[0])return af(b[1],c[1]);break;case +40:if(typeof +c!=="number"&&40===c[0]){var +q=c[1],V=b[1];if(V){if(q)return af(V[1],q[1])}else if(!q)return 1;return 0}break;case +41:if(typeof +c!=="number"&&41===c[0]){var +r=c[1],W=b[1];if(W){if(r)return qG(W[1],r[1])}else if(!r)return 1;return 0}break;case +42:if(typeof +c!=="number"&&42===c[0])return af(b[1],c[1]);break;case +43:if(typeof +c!=="number"&&43===c[0]){var +X=af(b[1],c[1]),aU=c[2],aV=b[2];return X?af(aV,aU):X}break;case +44:if(typeof +c!=="number"&&44===c[0]){var +aW=c[2],aX=b[2],ae=qG(b[1],c[1]);return ae?m(m(m(go,a),aX),aW):ae}break;case +45:if(typeof +c!=="number"&&45===c[0])return qG(b[1],c[1]);break;case +46:if(typeof +c!=="number"&&46===c[0]){var +s=c[1],Y=b[1];if(Y){if(s)return qG(Y[1],s[1])}else if(!s)return 1;return 0}break;case +47:if(typeof +c!=="number"&&47===c[0]){var +t=c[1],Z=b[1];if(Z){if(t)return qG(Z[1],t[1])}else if(!t)return 1;return 0}break;case +48:if(typeof +c!=="number"&&48===c[0]){var +aY=c[1],aZ=b[1];return m(m(m(go,a),aZ),aY)}break;case +49:if(typeof +c!=="number"&&49===c[0])return qG(b[1],c[1]);break;default:if(typeof +c!=="number"&&50===c[0]){var +a0=c[1],a1=b[1];return m(m(m(go,a),a1),a0)}}}return 0});h(aH7,function(a,b){switch(a){case +0:if(!b)return 1;break;case +1:if(1===b)return 1;break;case +2:if(2===b)return 1;break;case +3:if(3===b)return 1;break;default:if(4<=b)return 1}return 0});var +gp=function +d(a,b,c){return d.fun(a,b,c)},Bp=function +c(a,b){return c.fun(a,b)},$7=function +c(a,b){return c.fun(a,b)},c4t=function +b(a){return b.fun(a)};h(gp,function(d,b,c){if(typeof +c==="number"){var +a=c;if(46<=a)switch(a){case +46:return i(b,c5c);case +47:return i(b,c5d);case +48:return i(b,c5e);case +49:return i(b,c5f);case +50:return i(b,c5g);case +51:return i(b,c5h);case +52:return i(b,c5i);case +53:return i(b,c5j);case +54:return i(b,c5k);case +55:return i(b,c5l);case +56:return i(b,c5m);case +57:return i(b,c5n);case +58:return i(b,c5o);case +59:return i(b,c5p);case +60:return i(b,c5q);case +61:return i(b,c5r);case +62:return i(b,c5s);case +63:return i(b,c5t);case +64:return i(b,c5u);case +65:return i(b,c5v);case +66:return i(b,c5w);case +67:return i(b,c5x);case +68:return i(b,c5y);case +69:return i(b,c5z);case +70:return i(b,c5A);case +71:return i(b,c5B);case +72:return i(b,c5C);case +73:return i(b,c5D);case +74:return i(b,c5E);case +75:return i(b,c5F);case +76:return i(b,c5G);case +77:return i(b,c5H);case +78:return i(b,c5I);case +79:return i(b,c5J);case +80:return i(b,c5K);case +81:return i(b,c5L);case +82:return i(b,c5M);case +83:return i(b,c5N);case +84:return i(b,c5O);case +85:return i(b,c5P);case +86:return i(b,c5Q);case +87:return i(b,c5R);case +88:return i(b,c5S);case +89:return i(b,c5T);case +90:return i(b,c5U);default:return i(b,c5V)}switch(a){case +0:return i(b,c4u);case +1:return i(b,c4v);case +2:return i(b,c4w);case +3:return i(b,c4x);case +4:return i(b,c4y);case +5:return i(b,c4z);case +6:return i(b,c4A);case +7:return i(b,c4B);case +8:return i(b,c4C);case +9:return i(b,c4D);case +10:return i(b,c4E);case +11:return i(b,c4F);case +12:return i(b,c4G);case +13:return i(b,c4H);case +14:return i(b,c4I);case +15:return i(b,c4J);case +16:return i(b,c4K);case +17:return i(b,c4L);case +18:return i(b,c4M);case +19:return i(b,c4N);case +20:return i(b,c4O);case +21:return i(b,c4P);case +22:return i(b,c4Q);case +23:return i(b,c4R);case +24:return i(b,c4S);case +25:return i(b,c4T);case +26:return i(b,c4U);case +27:return i(b,c4V);case +28:return i(b,c4W);case +29:return i(b,c4X);case +30:return i(b,c4Y);case +31:return i(b,c4Z);case +32:return i(b,c40);case +33:return i(b,c41);case +34:return i(b,c42);case +35:return i(b,c43);case +36:return i(b,c44);case +37:return i(b,c45);case +38:return i(b,c46);case +39:return i(b,c47);case +40:return i(b,c48);case +41:return i(b,c49);case +42:return i(b,c4_);case +43:return i(b,c4$);case +44:return i(b,c5a);default:return i(b,c5b)}}var +e=c[0];if(51<=e)switch(e){case +51:var +aJ=c[1];m(f(b),c87);m(n(gp,function(a){return m(d,a)},b),aJ);return m(f(b),c88);case +52:var +aK=c[1];m(f(b),c89);m(m(f(b),c8_),aK);return m(f(b),c8$);case +53:var +aL=c[1];m(f(b),c9a);m(m(f(b),c9b),aL);return m(f(b),c9c);case +54:var +aM=c[2],aN=c[1];m(f(b),c9d);m(m(f(b),c9e),aN);m(f(b),c9f);m(m(f(b),c9g),aM);return m(f(b),c9h);case +55:var +aO=c[1];m(f(b),c9i);m(m(f(b),c9j),aO);return m(f(b),c9k);case +56:var +aP=c[1];m(f(b),c9l);m(m(f(b),c9m),aP);return m(f(b),c9n);case +57:var +aQ=c[1];m(f(b),c9o);m(m(f(b),c9p),aQ);return m(f(b),c9q);case +58:var +aR=c[2],aS=c[1];m(f(b),c9r);m(m(f(b),c9s),aS);m(f(b),c9t);m(m(f(b),c9u),aR);return m(f(b),c9v);case +59:var +aT=c[1];m(f(b),c9w);m(m(f(b),c9x),aT);return m(f(b),c9y);case +60:var +aU=c[1];m(f(b),c9z);m(m(f(b),c9A),aU);return m(f(b),c9B);case +61:var +aV=c[1];m(f(b),c9C);m(n(gp,function(a){return m(d,a)},b),aV);return m(f(b),c9D);case +62:var +aW=c[1];m(f(b),c9E);m(n(gp,function(a){return m(d,a)},b),aW);return m(f(b),c9F);case +63:var +aX=c[1];m(f(b),c9G);m(n(gp,function(a){return m(d,a)},b),aX);return m(f(b),c9H);case +64:var +aY=c[1];m(f(b),c9I);m(n(gp,function(a){return m(d,a)},b),aY);return m(f(b),c9J);case +65:var +aZ=c[1];m(f(b),c9K);m(n(gp,function(a){return m(d,a)},b),aZ);return m(f(b),c9L);case +66:var +a0=c[1];m(f(b),c9M);m(n(gp,function(a){return m(d,a)},b),a0);return m(f(b),c9N);case +67:var +a1=c[1];m(f(b),c9O);m(n(gp,function(a){return m(d,a)},b),a1);return m(f(b),c9P);case +68:var +a2=c[1];m(f(b),c9Q);m(n(gp,function(a){return m(d,a)},b),a2);return m(f(b),c9R);case +69:var +a3=c[1];m(f(b),c9S);m(n(gp,function(a){return m(d,a)},b),a3);return m(f(b),c9T);case +70:var +a4=c[1];m(f(b),c9U);m(n(gp,function(a){return m(d,a)},b),a4);return m(f(b),c9V);case +71:var +a5=c[1];m(f(b),c9W);m(n(gp,function(a){return m(d,a)},b),a5);return m(f(b),c9X);case +72:var +a6=c[1];m(f(b),c9Y);m(n(gp,function(a){return m(d,a)},b),a6);return m(f(b),c9Z);case +73:var +a7=c[1];m(f(b),c90);m(n(gp,function(a){return m(d,a)},b),a7);return m(f(b),c91);case +74:var +a8=c[1];m(f(b),c92);m(n(gp,function(a){return m(d,a)},b),a8);return m(f(b),c93);case +75:var +a9=c[1];m(f(b),c94);m(n(gp,function(a){return m(d,a)},b),a9);return m(f(b),c95);case +76:var +a_=c[1];m(f(b),c96);m(n(gp,function(a){return m(d,a)},b),a_);return m(f(b),c97);case +77:var +a$=c[1];m(f(b),c98);m(n(gp,function(a){return m(d,a)},b),a$);return m(f(b),c99);case +78:var +ba=c[1];m(f(b),c9_);m(n(gp,function(a){return m(d,a)},b),ba);return m(f(b),c9$);case +79:var +bb=c[1];m(f(b),c_a);m(n(gp,function(a){return m(d,a)},b),bb);return m(f(b),c_b);case +80:var +bc=c[1];m(f(b),c_c);m(n(gp,function(a){return m(d,a)},b),bc);return m(f(b),c_d);case +81:var +bd=c[1];m(f(b),c_e);m(m(f(b),c_f),bd);return m(f(b),c_g);case +82:var +be=c[1];m(f(b),c_h);m(n(gp,function(a){return m(d,a)},b),be);return m(f(b),c_i);case +83:var +bf=c[1];m(f(b),c_j);m(n(gp,function(a){return m(d,a)},b),bf);return m(f(b),c_k);case +84:var +bg=c[1];m(f(b),c_l);m(n(gp,function(a){return m(d,a)},b),bg);return m(f(b),c_m);case +85:var +bh=c[1];m(f(b),c_n);m(m(f(b),c_o),bh);return m(f(b),c_p);case +86:var +bi=c[1];m(f(b),c_q);ls(b,bi);return m(f(b),c_r);case +87:var +w=c[1],bj=c[2];m(f(b),c_s);n(f(b),c_u,c_t);if(w){var +bk=w[1];i(b,c_v);ls(b,bk);i(b,c_w)}else +i(b,c_x);m(f(b),c_y);m(f(b),c_z);n(f(b),c_B,c_A);m(m(f(b),c_C),bj);m(f(b),c_D);return m(f(b),c_E);case +88:var +bl=c[1];m(f(b),c_F);m(n(gp,function(a){return m(d,a)},b),bl);return m(f(b),c_G);case +89:var +bm=c[1];m(f(b),c_H);m(n(gp,function(a){return m(d,a)},b),bm);return m(f(b),c_I);case +90:var +bn=c[2],bo=c[1];m(f(b),c_J);ls(b,bo);m(f(b),c_K);m(n(gp,function(a){return m(d,a)},b),bn);return m(f(b),c_L);case +91:var +bp=c[2],bq=c[1];m(f(b),c_M);m(n(gp,function(a){return m(d,a)},b),bq);m(f(b),c_N);m(m(f(b),c_O),bp);return m(f(b),c_P);case +92:var +br=c[1];m(f(b),c_Q);m(m(f(b),c_R),br);return m(f(b),c_S);case +93:var +bs=c[1];m(f(b),c_T);ls(b,bs);return m(f(b),c_U);case +94:var +bt=c[1];m(f(b),c_V);m(n(gp,function(a){return m(d,a)},b),bt);return m(f(b),c_W);case +95:var +bu=c[1];m(f(b),c_X);m(n(gp,function(a){return m(d,a)},b),bu);return m(f(b),c_Y);case +96:var +bv=c[1];m(f(b),c_Z);m(n(gp,function(a){return m(d,a)},b),bv);return m(f(b),c_0);case +97:var +bw=c[3],bx=c[2],by=c[1];m(f(b),c_1);n(f(b),c_3,c_2);m(n(gp,function(a){return m(d,a)},b),by);m(f(b),c_4);m(f(b),c_5);n(f(b),c_7,c_6);m(n(gp,function(a){return m(d,a)},b),bx);m(f(b),c_8);m(f(b),c_9);n(f(b),c_$,c__);m(m(f(b),c$a),bw);m(f(b),c$b);return m(f(b),c$c);case +98:var +bz=c[1];m(f(b),c$d);m(n(gp,function(a){return m(d,a)},b),bz);return m(f(b),c$e);case +99:var +bA=c[1];m(f(b),c$f);m(n(gp,function(a){return m(d,a)},b),bA);return m(f(b),c$g);default:var +bB=c[1];m(f(b),c$h);m(n(gp,function(a){return m(d,a)},b),bB);return m(f(b),c$i)}switch(e){case +0:var +x=c[1];m(f(b),c5W);m(m(f(b),c5X),x);return m(f(b),c5Y);case +1:var +y=c[1];m(f(b),c5Z);ls(b,y);return m(f(b),c50);case +2:var +z=c[1];m(f(b),c51);m(m(f(b),c52),z);return m(f(b),c53);case +3:var +A=c[1];m(f(b),c54);m(m(f(b),c55),A);return m(f(b),c56);case +4:var +B=c[1];m(f(b),c57);m(m(f(b),c58),B);return m(f(b),c59);case +5:var +C=c[1];m(f(b),c5_);n(f(b),c6a,c5$);m(m(f(b),c6b),C);m(f(b),c6c);return m(f(b),c6d);case +6:var +D=c[1];m(f(b),c6e);m(m(f(b),c6f),D);return m(f(b),c6g);case +7:var +E=c[2],F=c[1];m(f(b),c6h);m(m(f(b),c6i),F);m(f(b),c6j);m(n(gp,function(a){return m(d,a)},b),E);return m(f(b),c6k);case +8:var +G=c[1];m(f(b),c6l);n(f(b),c6n,c6m);m(m(f(b),c6o),G);m(f(b),c6p);return m(f(b),c6q);case +9:var +g=c[1];m(f(b),c6r);n(f(b),c6t,c6s);if(g){var +H=g[1];i(b,c6u);m(m(f(b),c6v),H);i(b,c6w)}else +i(b,c6x);m(f(b),c6y);return m(f(b),c6z);case +10:var +I=c[1];m(f(b),c6A);m(m(f(b),c6B),I);return m(f(b),c6C);case +11:var +J=c[1];m(f(b),c6D);m(m(f(b),c6E),J);return m(f(b),c6F);case +12:var +K=c[1];m(f(b),c6G);m(m($7,b),K);return m(f(b),c6H);case +13:var +L=c[1];m(f(b),c6I);m(n(gp,function(a){return m(d,a)},b),L);return m(f(b),c6J);case +14:var +M=c[1];m(f(b),c6K);m(m(f(b),c6L),M);return m(f(b),c6M);case +15:var +N=c[2],O=c[1];m(f(b),c6N);m(m(f(b),c6O),O);m(f(b),c6P);m(m(f(b),c6Q),N);return m(f(b),c6R);case +16:var +P=c[1];m(f(b),c6S);m(m(f(b),c6T),P);return m(f(b),c6U);case +17:var +h=c[1];m(f(b),c6V);if(h){var +Q=h[1];i(b,c6W);m(m(f(b),c6X),Q);i(b,c6Y)}else +i(b,c6Z);return m(f(b),c60);case +18:var +R=c[2],S=c[1];m(f(b),c61);m(m(f(b),c62),S);m(f(b),c63);m(n(gp,function(a){return m(d,a)},b),R);return m(f(b),c64);case +19:var +T=c[3],U=c[2],V=c[1];m(f(b),c65);m(m(f(b),c66),V);m(f(b),c67);m(n(gp,function(a){return m(d,a)},b),U);m(f(b),c68);m(n(gp,function(a){return m(d,a)},b),T);return m(f(b),c69);case +20:var +W=c[3],X=c[2],Y=c[1];m(f(b),c6_);m(m(f(b),c6$),Y);m(f(b),c7a);m(n(gp,function(a){return m(d,a)},b),X);m(f(b),c7b);m(n(gp,function(a){return m(d,a)},b),W);return m(f(b),c7c);case +21:var +Z=c[1];m(f(b),c7d);m(m(f(b),c7e),Z);return m(f(b),c7f);case +22:var +_=c[1];m(f(b),c7g);m(n(gp,function(a){return m(d,a)},b),_);return m(f(b),c7h);case +23:var +$=c[1];m(f(b),c7i);m(n(gp,function(a){return m(d,a)},b),$);return m(f(b),c7j);case +24:var +aa=c[1];m(f(b),c7k);m(n(gp,function(a){return m(d,a)},b),aa);return m(f(b),c7l);case +25:var +ab=c[1];m(f(b),c7m);ls(b,ab);return m(f(b),c7n);case +26:var +j=c[2],ac=c[3],ad=c[1];m(f(b),c7o);m(m(f(b),c7p),ad);m(f(b),c7q);if(j){var +ae=j[1];i(b,c7r);m(m(d,b),ae);i(b,c7s)}else +i(b,c7t);m(f(b),c7u);m(n(gp,function(a){return m(d,a)},b),ac);return m(f(b),c7v);case +27:var +af=c[1];m(f(b),c7w);m(m(f(b),c7x),af);return m(f(b),c7y);case +28:var +k=c[3],l=c[2],ag=c[1];m(f(b),c7z);m(m(NK,b),ag);m(f(b),c7A);var +ah=l[2],ai=l[1];m(f(b),c7B);m(n(gp,function(a){return m(d,a)},b),ai);m(f(b),c7C);m(m(d,b),ah);m(f(b),c7D);m(f(b),c7E);var +aj=k[2],ak=k[1];m(f(b),c7F);m(n(gp,function(a){return m(d,a)},b),ak);m(f(b),c7G);m(m(d,b),aj);m(f(b),c7H);return m(f(b),c7I);case +29:var +al=c[1];m(f(b),c7J);m(n(gp,function(a){return m(d,a)},b),al);return m(f(b),c7K);case +30:var +am=c[1];m(f(b),c7L);m(n(gp,function(a){return m(d,a)},b),am);return m(f(b),c7M);case +31:var +an=c[1];m(f(b),c7N);m(m(f(b),c7O),an);return m(f(b),c7P);case +32:var +o=c[1];m(f(b),c7Q);if(o){var +ao=o[1];i(b,c7R);m(m(f(b),c7S),ao);i(b,c7T)}else +i(b,c7U);return m(f(b),c7V);case +33:var +p=c[1];m(f(b),c7W);if(p){var +ap=p[1];i(b,c7X);m(m(f(b),c7Y),ap);i(b,c7Z)}else +i(b,c70);return m(f(b),c71);case +34:var +q=c[1];m(f(b),c72);if(q){var +aq=q[1];i(b,c73);m(m(f(b),c74),aq);i(b,c75)}else +i(b,c76);return m(f(b),c77);case +35:var +r=c[1];m(f(b),c78);if(r){var +ar=r[1];i(b,c79);m(m(f(b),c7_),ar);i(b,c7$)}else +i(b,c8a);return m(f(b),c8b);case +36:var +as=c[1];m(f(b),c8c);m(m(f(b),c8d),as);return m(f(b),c8e);case +37:var +at=c[1];m(f(b),c8f);ls(b,at);return m(f(b),c8g);case +38:var +au=c[1];m(f(b),c8h);m(m(f(b),c8i),au);return m(f(b),c8j);case +39:var +av=c[1];m(f(b),c8k);m(m(f(b),c8l),av);return m(f(b),c8m);case +40:var +s=c[1];m(f(b),c8n);if(s){var +aw=s[1];i(b,c8o);m(m(f(b),c8p),aw);i(b,c8q)}else +i(b,c8r);return m(f(b),c8s);case +41:var +t=c[1];m(f(b),c8t);if(t){var +ax=t[1];i(b,c8u);ls(b,ax);i(b,c8v)}else +i(b,c8w);return m(f(b),c8x);case +42:var +ay=c[1];m(f(b),c8y);m(m(f(b),c8z),ay);return m(f(b),c8A);case +43:var +az=c[2],aA=c[1];m(f(b),c8B);n(f(b),c8D,c8C);m(m(f(b),c8E),aA);m(f(b),c8F);m(f(b),c8G);n(f(b),c8I,c8H);m(m(f(b),c8J),az);m(f(b),c8K);return m(f(b),c8L);case +44:var +aB=c[2],aC=c[1];m(f(b),c8M);ls(b,aC);m(f(b),c8N);m(n(gp,function(a){return m(d,a)},b),aB);return m(f(b),c8O);case +45:var +aD=c[1];m(f(b),c8P);ls(b,aD);return m(f(b),c8Q);case +46:var +u=c[1];m(f(b),c8R);if(u){var +aE=u[1];i(b,c8S);ls(b,aE);i(b,c8T)}else +i(b,c8U);return m(f(b),c8V);case +47:var +v=c[1];m(f(b),c8W);if(v){var +aF=v[1];i(b,c8X);ls(b,aF);i(b,c8Y)}else +i(b,c8Z);return m(f(b),c80);case +48:var +aG=c[1];m(f(b),c81);m(n(gp,function(a){return m(d,a)},b),aG);return m(f(b),c82);case +49:var +aH=c[1];m(f(b),c83);ls(b,aH);return m(f(b),c84);default:var +aI=c[1];m(f(b),c85);m(n(gp,function(a){return m(d,a)},b),aI);return m(f(b),c86)}});h(Bp,function(a,b){var +c=m(gp,a);return n(z(c$j),c,b)});h($7,function(a,b){switch(b){case +0:return i(a,c$k);case +1:return i(a,c$l);case +2:return i(a,c$m);case +3:return i(a,c$n);default:return i(a,c$o)}});h(c4t,function(a){return n(z(c$p),$7,a)});var +gq=function(a,b){var +c=0;if(typeof +b==="number")switch(b){case +73:return 73;case +91:return 91;case +84:case +85:case +86:return b;case +74:case +75:case +76:case +77:case +78:case +79:case +80:case +81:case +82:case +83:c=2;break;case +15:case +36:case +37:case +38:case +39:case +40:case +41:case +42:case +43:case +44:case +45:case +46:case +47:case +48:case +49:case +50:case +51:case +52:case +53:case +54:case +55:case +56:case +57:case +58:case +59:case +60:case +61:case +62:case +63:case +64:case +65:case +66:case +67:case +68:case +69:case +70:case +71:case +72:c=1;break}else{var +d=b[0];if(66<=d)switch(d){case +66:return[66,gq(a,b[1])];case +67:return[67,gq(a,b[1])];case +68:return[68,gq(a,b[1])];case +69:return[69,gq(a,b[1])];case +70:return[70,gq(a,b[1])];case +71:return[71,gq(a,b[1])];case +72:return[72,gq(a,b[1])];case +73:return[73,gq(a,b[1])];case +74:return[74,gq(a,b[1])];case +75:return[75,gq(a,b[1])];case +76:return[76,gq(a,b[1])];case +77:return[77,gq(a,b[1])];case +78:return[78,gq(a,b[1])];case +79:return[79,gq(a,b[1])];case +80:return[80,gq(a,b[1])];case +82:return[82,gq(a,b[1])];case +83:return[83,gq(a,b[1])];case +84:return[84,gq(a,b[1])];case +88:return[88,gq(a,b[1])];case +89:return[89,gq(a,b[1])];case +90:var +B=b[1];return[90,B,gq(a,b[2])];case +91:var +C=b[2];return[91,gq(a,b[1]),C];case +94:return[94,gq(a,b[1])];case +95:return[95,gq(a,b[1])];case +96:return[96,gq(a,b[1])];case +97:var +D=b[3],E=b[1],F=gq(a,b[2]);return[97,gq(a,E),F,D];case +98:return[98,gq(a,b[1])];case +99:return[99,gq(a,b[1])];case +100:return[hZ,gq(a,b[1])];case +81:c=1;break;case +92:case +93:break;default:c=2}else +switch(d){case +7:var +i=b[1];return[7,i,gq(a,b[2])];case +13:return[13,gq(a,b[1])];case +18:var +j=b[1];return[18,j,gq(a,b[2])];case +19:var +k=b[2],l=b[1],n=gq(a,b[3]);return[19,l,gq(a,k),n];case +20:var +o=b[2],p=b[1],q=gq(a,b[3]);return[20,p,gq(a,o),q];case +22:return[22,gq(a,b[1])];case +23:return[23,gq(a,b[1])];case +24:return[24,gq(a,b[1])];case +26:var +e=b[2],f=b[1];if(!e)return[26,f,0,gq(a,b[3])];var +r=e[1],s=gq(a,b[3]);return[26,f,[0,m(a,r)],s];case +28:var +g=b[3],h=b[2],t=g[1],u=h[2],v=h[1],w=b[1],x=m(a,g[2]),y=[0,gq(a,t),x],z=m(a,u);return[28,w,[0,gq(a,v),z],y];case +29:return[29,gq(a,b[1])];case +30:return[30,gq(a,b[1])];case +44:var +A=b[1];return[44,A,gq(a,b[2])];case +48:return[48,gq(a,b[1])];case +50:return[50,gq(a,b[1])];case +51:return[51,gq(a,b[1])];case +61:return[61,gq(a,b[1])];case +62:return[62,gq(a,b[1])];case +63:return[63,gq(a,b[1])];case +64:return[64,gq(a,b[1])];case +65:return[65,gq(a,b[1])];case +0:case +1:case +2:case +3:case +4:case +8:case +9:case +10:case +11:case +12:case +14:case +15:case +16:case +17:break;default:c=1}}switch(c){case +0:return b;case +1:return b;default:return b}},aH8=function +d(a,b,c){return d.fun(a,b,c)};h(aH8,function(a,b,c){var +o=c[1],p=b[1],i=m(m(m(go,a),p),o),j=i?n(a,b[2],c[2]):i;if(j){var +d=c[3],k=b[3],h=0;if(k)if(d)var +e=n(a,k[1],d[1]);else +h=1;else if(d)h=1;else +var +e=1;if(h)var +e=0;var +f=e}else +var +f=j;if(!f)return f;var +g=c[4],l=b[4];if(l){if(g)return n(a,l[1],g[1])}else if(!g)return 1;return 0});var +$8=function(a){var +b=a?a[1]:0;return function(a){if(0!==a[0]){var +e=a[1];if(!b)return e;var +i=b[1];return m(NM(n(k(c$t),i,s7)),e)}var +c=a[1];if(!b)return c;var +f=b[1],d=n(k(c$q),f,s7);if(s4(d,c)){var +g=m(NM(d),c);return m(k(c$r),g)}var +h=AJ(c);return m(k(c$s),h)}},fd=function(a,b){var +d=a?a[1]:0,c=b[1];if(!c)return c$v;var +e=c[1],f=$V(b),g=m($8([0,d]),e);return n(k(c$u),g,f)},$9=function(a,b,c,d){var +k=a?a[1]:0,l=b?b[1]:0;function +f(a,b){try{var +e=ux(Ff(a,b)),d=e}catch(f){var +c=fk(f);if(c[1]!==aFD)throw B(c,0);if(!l)throw B(c,0);var +d=0}return[0,[0,c$A,d],0]}var +n=c?f(c[1],d[2]):0,o=[0,[0,c$B,ux(d[2][2]+1|0)],0],p=V([0,[0,c$C,ux(d[2][1])],o],n),q=c?f(c[1],d[3]):0,r=[0,[0,c$D,ux(d[3][2])],0],s=[0,[0,c$G,[0,p]],[0,[0,c$F,[0,V([0,[0,c$E,ux(d[3][1])],r],q)]],0]],g=d[1];if(g)switch(g[1][0]){case +0:var +e=c$w;break;case +1:var +e=c$x;break;case +2:var +e=c$y;break;default:var +e=c$z}else +var +e=0;var +h=d[1],t=[0,[0,c$H,e],s];if(h)var +j=h[1],i=[2,m($8([0,k]),j)];else +var +i=0;return[0,[0,[0,c$I,i],t]]},aH9=function(a,b){var +c=b[4],d=b[3],e=b[1],f=m(a,b[2]),g=S(d,a),h=S(c,a);return[0,gq(a,e),f,g,h]},s=function(a,b){return[0,a,b,0,0]},qH=function(a){return[0,a,g6,0,0]},kh=function(a,b){var +c=a?b?2:0:b?1:3,d=[12,c];return function(a){return s(d,a)}},c$J=function(a){return a[2]},h5=function(a){var +b=a[3];return b?b[1]:a[2]},FK=function(a){var +b=Z(a);return 6<=b?af(f1(a,0,6),"React$")?P(c$P,f1(a,6,b-6|0)):a:a},gc=function(a){var +b=a;for(;;){if(typeof +b==="number"){var +t=b;if(46<=t)switch(t){case +46:return day;case +47:return daz;case +48:return daA;case +49:return daB;case +50:return daC;case +51:return daD;case +52:return daE;case +53:return daF;case +54:return daG;case +55:return daH;case +56:return daI;case +57:return daJ;case +58:return daK;case +59:return daL;case +60:return daM;case +61:return daN;case +62:return daO;case +63:return daP;case +64:return daQ;case +65:return daR;case +66:return daS;case +67:return daT;case +68:return daU;case +69:return daV;case +70:return daW;case +71:return daX;case +72:return daY;case +73:return daZ;case +74:return da0;case +75:return da1;case +76:return da2;case +77:return da3;case +78:return da4;case +79:return da5;case +80:return da6;case +81:return da7;case +82:return da8;case +83:return da9;case +84:return da_;case +85:return da$;case +86:return dba;case +87:return dbb;case +88:return dbc;case +89:return dbd;case +90:return dbe;default:return dbf}switch(t){case +0:return c$Q;case +1:return c$R;case +2:return c$S;case +3:return c$T;case +5:return c$V;case +6:return c$W;case +7:return c$X;case +8:return c$Y;case +9:return c$Z;case +10:return c$0;case +11:return c$1;case +12:return c$2;case +13:return c$3;case +14:return c$4;case +15:return c$5;case +16:return c$6;case +17:return c$7;case +18:return c$8;case +19:return c$9;case +20:return c$_;case +21:return c$$;case +22:return daa;case +23:return dab;case +24:return dac;case +25:return dad;case +26:return dae;case +27:return daf;case +28:return dag;case +29:return dah;case +30:return dai;case +31:return daj;case +32:return dak;case +33:return dal;case +34:return k(dam);case +35:return dan;case +36:return dao;case +37:return dap;case +38:return daq;case +39:return dar;case +40:return das;case +41:return dat;case +42:return dau;case +43:return dav;case +44:return daw;case +45:return dax}}else{var +u=b[0];if(51<=u)switch(u){case +51:var +aN=gc(b[1]);return m(k(dci),aN);case +52:var +aO=b[1];return m(k(dcj),aO);case +53:var +aP=b[1];return m(k(dck),aP);case +54:var +aQ=b[1];return m(k(dcl),aQ);case +55:var +aR=b[1];return m(k(dcm),aR);case +56:var +aS=b[1];return m(k(dcn),aS);case +57:var +aT=b[1];return m(k(dco),aT);case +58:var +aU=b[2];return m(k(dcp),aU);case +59:return P(dcr,P(b[1],dcq));case +60:return b[1];case +61:var +f=b[1];if(typeof +f!=="number"&&71===f[0]){var +b=f[1];continue}var +b=f;continue;case +62:var +b=b[1];continue;case +63:var +aV=gc(b[1]);return m(k(dcs),aV);case +64:var +e=b[1];for(;;){if(typeof +e!=="number"&&64===e[0]){var +e=e[1];continue}var +aW=gc(e);return m(k(dct),aW)}case +65:return dcu;case +66:var +aX=gc(b[1]);return m(k(dcv),aX);case +67:var +b=b[1];continue;case +68:var +b=b[1];continue;case +69:var +aY=gc(b[1]);return m(k(dcw),aY);case +70:var +aZ=gc(b[1]);return m(k(dcx),aZ);case +71:var +a0=gc(b[1]);return m(k(dcy),a0);case +72:var +a1=gc(b[1]);return m(k(dcz),a1);case +73:var +a2=gc(b[1]);return m(k(dcA),a2);case +74:var +a3=gc(b[1]);return m(k(dcB),a3);case +75:var +a4=gc(b[1]);return m(k(dcC),a4);case +76:var +a5=gc(b[1]);return m(k(dcD),a5);case +77:var +a6=gc(b[1]);return m(k(dcE),a6);case +78:var +a7=gc(b[1]);return m(k(dcF),a7);case +79:var +a8=gc(b[1]);return m(k(dcG),a8);case +80:var +a9=gc(b[1]);return m(k(dcH),a9);case +81:var +a_=b[1];return m(k(dcI),a_);case +82:var +a$=gc(b[1]);return m(k(dcJ),a$);case +83:var +ba=gc(b[1]);return m(k(dcK),ba);case +84:var +bb=gc(b[1]);return m(k(dcL),bb);case +85:var +bc=b[1];return m(k(dcM),bc);case +86:var +bd=fI(b[1]);return m(k(dcN),bd);case +87:var +G=b[1];if(!G)return dcP;var +be=fI(G[1]);return m(k(dcO),be);case +88:var +bf=gc(b[1]);return m(k(dcQ),bf);case +89:var +bg=gc(b[1]);return m(k(dcR),bg);case +90:var +bh=b[1],bi=gc(b[2]),bj=fI(bh);return n(k(dcS),bj,bi);case +91:var +b=b[1];continue;case +92:var +bk=b[1];return m(k(dcT),bk);case +93:var +bl=fI(b[1]);return m(k(dcU),bl);case +94:var +bm=gc(b[1]);return m(k(dcV),bm);case +95:var +bn=gc(b[1]);return m(k(dcW),bn);case +96:var +bo=gc(b[1]);return m(k(dcX),bo);case +97:var +s=b[3],H=s+aV3|0,bp=b[2],bq=b[1];if(2>>0){var +I=(s%10|0)-1|0;if(2>>0)var +h=dcY;else +switch(I){case +0:var +h=dc0;break;case +1:var +h=dc1;break;default:var +h=dc2}var +i=h}else +switch(H){case +0:var +i=dc3;break;case +1:var +i=dc4;break;default:var +i=dc5}var +br=gc(bq),bs=gc(bp);return o(k(dcZ),bs,br,s,i);case +98:var +bt=gc(b[1]);return m(k(dc6),bt);case +99:var +bu=gc(b[1]);return m(k(dc7),bu);default:var +bv=gc(b[1]);return m(k(dc8),bv)}switch(u){case +1:var +j=b[1];if(0===j[0]&&!q(j[1],g))return dbh;var +J=fI(j);return m(k(dbg),J);case +2:var +K=b[1];return m(k(dbi),K);case +3:var +L=b[1];return m(k(dbj),L);case +4:var +M=Jt(b[1]);return m(k(dbk),M);case +5:return b[1]?dbl:dbm;case +6:var +N=b[1];return m(k(dbn),N);case +7:var +O=b[1],Q=gc(b[2]);return n(k(dbo),O,Q);case +8:return P(dbq,dbp);case +9:var +v=b[1];if(v)var +R=v[1],w=m(k(dbr),R);else +var +w=dbu;return n(k(dbt),dbs,w);case +10:var +S=b[1];return m(k(dbv),S);case +11:var +T=b[1];return m(k(dbw),T);case +12:switch(b[1]){case +0:var +c=c$K;break;case +1:var +c=c$L;break;case +2:var +c=c$M;break;case +3:var +c=c$N;break;default:var +c=c$O}return m(k(dbx),c);case +13:var +U=gc(b[1]);return m(k(dby),U);case +14:var +V=b[1];return m(k(dbz),V);case +15:var +W=b[2];return m(k(dbA),W);case +16:return dbB;case +17:var +x=b[1];if(!x)return dbD;var +X=x[1];return m(k(dbC),X);case +18:var +Y=b[1],Z=gc(b[2]);return n(k(dbE),Y,Z);case +19:var +_=b[2],$=b[1],aa=gc(b[3]),ab=gc(_);return l(k(dbF),ab,$,aa);case +20:var +ac=b[2],ad=b[1],ae=gc(b[3]),af=gc(ac);return l(k(dbG),af,ad,ae);case +21:var +ag=b[1];return m(k(dbH),ag);case +22:var +ah=gc(b[1]);return m(k(dbI),ah);case +23:var +d=b[1];if(typeof +d!=="number")switch(d[0]){case +61:var +p=d[1];if(typeof +p!=="number"&&71===p[0]){var +b=p[1];continue}break;case +71:var +b=d[1];continue}var +ai=gc(d);return m(k(dbJ),ai);case +24:var +aj=gc(b[1]);return m(k(dbK),aj);case +25:var +ak=FK(fI(b[1]));return m(k(dbL),ak);case +26:var +al=FK(b[1]);return m(k(dbM),al);case +27:var +am=FK(b[1]);return m(k(dbN),am);case +28:var +an=jC(b[1]);return m(k(dbO),an);case +29:var +ao=gc(b[1]);return m(k(dbP),ao);case +30:var +ap=gc(b[1]);return m(k(dbQ),ap);case +31:var +aq=b[1];return m(k(dbR),aq);case +32:var +y=b[1];if(!y)return dbT;var +ar=y[1];return m(k(dbS),ar);case +33:var +z=b[1];if(!z)return dbV;var +as=z[1];return m(k(dbU),as);case +34:var +A=b[1];if(!A)return dbX;var +at=A[1];return m(k(dbW),at);case +35:var +B=b[1];if(!B)return dbZ;var +au=B[1];return m(k(dbY),au);case +36:var +av=b[1];return m(k(db0),av);case +37:var +aw=FK(fI(b[1]));return m(k(db1),aw);case +38:var +ax=FK(b[1]);return m(k(db2),ax);case +39:var +ay=b[1];return m(k(db3),ay);case +40:var +C=b[1];if(!C)return db5;var +az=C[1];return m(k(db4),az);case +41:var +D=b[1];if(!D)return db7;var +aA=fI(D[1]);return m(k(db6),aA);case +42:var +aB=b[1];return m(k(db8),aB);case +43:var +aC=b[2],aD=b[1];return n(k(db9),aD,aC);case +44:var +aE=b[1],aF=gc(b[2]),aG=fI(aE);return n(k(db_),aG,aF);case +45:var +r=b[1];if(0===r[0]&&!q(r[1],g))return dca;var +aH=fI(r);return m(k(db$),aH);case +46:var +E=b[1];if(!E)return dcc;var +aI=fI(E[1]);return m(k(dcb),aI);case +47:var +F=b[1];if(!F)return dce;var +aJ=fI(F[1]);return m(k(dcd),aJ);case +48:var +aK=gc(b[1]);return m(k(dcf),aK);case +49:var +aL=fI(b[1]);return m(k(dcg),aL);case +50:var +aM=gc(b[1]);return m(k(dch),aM)}}return c$U}},p8=function(a,b){var +e=a?a[1]:0,c=fd([0,e],b[2]),d=gc(b[1]);return af(c,g)?d:af(d,g)?c:n(k(dc9),c,d)},fv=function(a,b){var +f=a?a[1]:1;if(!f)return b[1];var +c=b[1];for(;;){var +d=0;if(typeof +c!=="number")switch(c[0]){case +26:var +e=c[3];d=1;break;case +91:var +e=c[1];d=1;break}if(!d)return c;var +c=e}},FL=function(a){return 0===a[0]?0:1},aH_=function(a){return 2===a[0]?1:0},yh=function(a){var +b=fv(0,a),c=0;if(typeof +b==="number")switch(b){case +41:return 1;case +40:c=1;break}else +switch(b[0]){case +8:return b[1];case +28:c=1;break}return c?1:0},dc$=function(a){function +d(a){var +b=Z(a);return 0===b?0:aHb(a,0,b-1|0)}var +b=fv(0,a),c=0;if(typeof +b!=="number")switch(b[0]){case +37:var +e=fI(b[1]),f=Z(e);return 2<=f?aHb(e,0,f-1|0):0;case +41:var +g=b[1];if(g){var +h=g[1];c=1}break;case +42:var +i=b[1];c=2;break;case +43:var +i=b[2];c=2;break;case +44:case +45:var +h=b[1];c=1;break}switch(c){case +0:return 0;case +1:return d(fI(h));default:return d(i)}},NO=function(a){var +b=fv(0,a),c=0;if(typeof +b==="number")switch(b){case +17:case +74:case +77:c=1;break}else +switch(b[0]){case +72:var +f=0,d=b[1];if(typeof +d==="number"||!(12===d[0]))f=1;else +c=1;break;case +74:var +e=b[1];if(typeof +e==="number"&&17===e)c=1;break;case +12:case +16:case +82:case +87:c=1;break}return c?1:0},aH$=function(a){var +b=ao(a[2],g6),c=b||aY(a[2][1],0,um);return 1-c},gg=function(a,b){var +c=b[4],d=b[3],e=b[2];return[0,m(a,fv(dda,b)),e,d,c]},qI=function(a,b){var +c=b[2];return[0,m(a,fv(ddb,b)),c,0,0]},aj=function(a,b){return[0,a,b[2],b[3],b[4]]},h6=function(a,b){return[0,a,b[2],0,0]},hX=function(a,b){var +c=h5(b),d=ao(a,c)?0:[0,c];return[0,b[1],a,d,b[4]]},mv=function(a,b){return[0,b[1],b[2],b[3],[0,a]]},wa=function(a,b){return a?mv(a[1],b):b},fJ=function(a,b){return mv(b,s(a,b))};h_([0,hs]);var +iY=function +c(a,b){return c.fun(a,b)},NP=function +b(a){return b.fun(a)},$_=function +d(a,b,c){return d.fun(a,b,c)},aIa=function +b(a){return b.fun(a)},NQ=function +c(a,b){return c.fun(a,b)};h(iY,function(a,b){var +c=b[2],d=a?function(a){return P(ddd,P(a,ddc))}:function(a){return a};switch(c[0]){case +0:return c[1][1]?dde:ddf;case +1:var +s=c[1][3];if(0===s[0])return d(ddg);var +f=s[1];return 24===f[2][0]?d(P(ddj,P(n(iY,0,f),ddi))):d(P(ddh,n(iY,0,f)));case +2:return n(iY,a,c[1][1]);case +3:var +g=c[1],t=g[1],Q=g[3],R=m(NP,g[2]),S=n(iY,0,Q),T=t?EX(t[1]):ddm;return d(P(R,P(ddl,P(T,P(ddk,S)))));case +4:var +h=c[1];return d(l($_,h[2],[0,t1,h[1]],h[3]));case +5:var +i=c[1],u=i[2],V=i[3],W=i[1];if(u)var +X=u[1][2][1]?ddn:ddq,v=X;else +var +v=ddr;var +Y=V[2][1]?ddo:ddp,_=P(v,Y);return P(n(iY,1,W),_);case +6:return dds;case +7:var +j=c[1],w=j[1],$=j[3],aa=j[2],ab=7===w[2][0]?1:0,ac=P(ddt,n(iY,0,$)),ad=P(ddu,P(n(iY,0,aa),ac));return d(P(n(iY,ab,w),ad));case +8:return ddv;case +9:return c[1][2][1];case +10:return P(ddx,P(n(iY,0,c[1][1]),ddw));case +11:return m(aIa,c[1]);case +12:return ddy;case +13:var +x=c[1],y=x[1];return 16a[2])return 1;return 0},aId=function(a){if(typeof +a!=="number"&&t1===a[1]){var +b=a[2],c=0;if(15<=b){if(17>b)c=1}else if(13===b)c=1;if(c)return 1}return 0},aIe=function(a){if(typeof +a!=="number"&&t1===a[1]&&2>=a[2]-8>>>0)return 1;return 0},aIf=function(a,b){var +e=aIb(b);if(aIb(a)!==e)return 0;if(ao(a,def))return 0;if(aIc(a)&&aIc(b))return 0;var +c=0;if(ao(a,deg)&&aId(b))c=1;if(!c){var +d=0;if(ao(b,deh)&&aId(a))d=1;if(!d){if(aIe(a)&&aIe(b))return 0;return 1}}return 0};h($_,function(a,b,c){var +e=a[2];switch(e[0]){case +4:var +f=1-aIf(b,[0,t1,e[1][1]]);break;case +20:var +f=1-aIf(b,[0,aZe,e[1][1]]);break;default:var +f=1}var +g=n(iY,f,a),h=n(iY,1,c);if(t1<=b[1])var +d=x0(b[2]);else +switch(b[2]){case +0:var +d=dec;break;case +1:var +d=ded;break;default:var +d=dee}return P(g,P(dej,P(d,P(dei,h))))});h(aIa,function(a){var +b=a[1][2][1];switch(b[0]){case +0:return P(del,P(b[1][2][1],dek));case +1:var +c=b[1][2],e=c[1][2][1];return P(deo,P(e,P(den,P(c[2][2][1],dem))));default:var +f=b[1],d=function(a){var +b=a[2],c=b[1];if(0===c[0]){var +e=c[1][2][1];return P(e,P(dep,b[2][2][1]))}var +f=c[1],g=P(deq,b[2][2][1]);return P(d(f),g)};return P(des,P(d(f),der))}});h(NQ,function(a,b){switch(b[0]){case +0:var +c=b[1][2][1],d=a?det:deu;return P(d,c);case +1:var +e=b[1][2][1],f=a?dev:dew;return P(f,e);default:var +g=P(n(iY,0,b[1]),dex),h=a?dey:dez;return P(h,g)}});var +fX=function(a){var +b=a[1],c=a[2];switch(c[0]){case +0:return s(23,b);case +1:return m(kh(c[1][4],0),b);case +8:var +d=c[1];return m(kh(d[4],d[5]),b);case +13:if(!q(c[1][1],g))return s(deA,b);break;case +21:var +e=c[1],f=e[1],h=n(NQ,0,e[2]);return s([43,n(iY,1,f),h],b);case +24:return s(17,b);case +29:return s(36,b);case +30:return s(36,b);case +32:return hX(b,fX(c[1][1]))}return s([59,n(iY,0,a)],b)},aIg=function(a){if(!a)return 0;var +b=a[1];if(0!==b[0])return 0;var +c=b[1],d=aIg(a[2]);return[0,fX(c),d]},uB=function(a){return aIg(a[2][1])},Bq=function(a){var +b=a[1];return s([59,m(NP,a)],b)},aaa=function(a){var +b=0,c=fv(deB,a);if(typeof +c==="number")switch(c){case +9:case +10:case +11:case +14:case +87:case +88:return alw;case +22:case +23:case +24:case +25:case +27:case +28:case +75:b=1;break;case +2:case +3:case +4:case +5:case +12:case +34:case +35:case +36:case +37:case +38:case +50:case +61:break;default:b=2}else +switch(c[0]){case +65:b=1;break;case +0:case +1:case +2:case +3:case +4:break;default:b=2}switch(b){case +0:return aX3;case +1:return CQ;default:return 484501964}},FM=function(a){return alw===aaa(a)?1:0},Br=function(a){var +b=aaa(a),c=aX3===b?1:0,d=c||(alw===b?1:0);return d},NR=function(a){return CQ===aaa(a)?1:0},sa=function(a){if(typeof +a!=="number"&&26===a[0]&&a[2])return[26,a[1],0,a[3]];return a},aIh=function(a){var +b=fv(0,a);if(typeof +b!=="number"&&93===b[0])return[87,[0,b[1]],1];return deC},NS=function +b(a){return b.fun(a)},deD=function +b(a){return b.fun(a)};h(NS,function(c){return function(a){var +b=Ax(a);return n(f(c),cYe,b)}});h(deD,function(a){return n(z(deE),NS,a)});var +aIi=function(a,b,c){if(!a[9])return 0;var +d=a[10],i=aH4(a,b);if(i){var +m=i[1][1],j=aHw(fA(d));aHy(j,m);return[0,j]}if(c){var +n=c[1],k=aHw(fA(d));EB(d,function(a,b){var +c=p0(n,function(a){return af(b,P(deF,a))});return c?aHy(k,a):c});return[0,k]}var +f=fA(d),e=aHu(f),g=rb(e,r2(lf)),h=0a[2])b=1}return b?0:1},uC=function(a){switch(a){case +0:return 2;case +1:return 1;default:return 0}},qJ=function(a){var +b=0;switch(a[1]){case +0:switch(a[2]){case +0:return 2;case +1:break;default:b=1}break;case +1:b=2;break;default:switch(a[2]){case +0:b=1;break;case +1:break;default:return 2}}switch(b){case +0:break;case +1:return 0}return 1},aIr=function(a){var +b=0;switch(a[1]){case +0:if(!a[2])b=1;break;case +1:if(1===a[2])b=1;break;default:if(2<=a[2])b=1}return b?1:0},Bs=function(a){switch(a){case +0:return df1;case +1:return df2;default:return df3}},FN=[0,0,0,0],dgc=gP(aIt,function(c){var +a=fR(c,dga),d=a[hy],b=a[10],e=a[55],f=a[oi],g=a[rO],h=a[q4],i=a[lf],j=fG(c,aIu,0,aIs,jB,1)[1];function +k(a,b){if(0===b[0])n(a[1][1+g],a,b[1]);else +m(a[1][1+d],a);return b}function +l(a,b,c){if(c[1])m(a[1][1+d],a);return c}function +o(a,b,c){return c}function +p(a,b,c){return c}fC(c,[0,d,function(a){function +c(a){return 0}return n(a[1][1+b],a,c)},h,p,i,o,e,l,f,k]);return function(a,b){var +d=fp(b,c);n(j,d,1);return fH(b,d,c)}}),aaf=function(a){var +b=2<=Z(a)?1:0;if(b)var +c=95===fl(a,0)?1:0,d=c?95!==fl(a,1)?1:0:c;else +var +d=b;return d},dgd=gP(aIt,function(c){var +a=fR(c,dgb),d=a[53],b=a[21],e=a[38],f=a[oE],g=a[jH],h=a[t7],i=fG(c,aIu,0,aIs,jB,1)[1];function +j(a,b,c){return c}function +k(a,b,c){return c}function +l(a,b,c){return c}function +m(a,b){if(!q(b[2][1],f0))n(a[1][1+d],a,1);return b}fC(c,[0,e,function(a,b,c){n(a[1][1+d],a,1);return c},b,m,h,l,g,k,f,j]);return function(a,b){var +d=fp(b,c);n(i,d,0);return fH(b,d,c)}}),wb=function(a,b){var +c=m(dgd[1],0),d=l(D(c,iL,iQ),c,m(D(c,zm,iU),c),a);return d?d:l(D(c,iL,hq),c,m(D(c,Am,i$),c),b)},mw=function(a,b,c){var +d=c[1],e=m(b,c[2]);return[0,m(a,d),e]},lt=[],dgf=0,dgg=0;h(lt,[0,0,function(ae){var +a=fR(ae,dge),aW=a[1],aX=a[2],aY=a[3],v=a[4],af=a[5],aZ=a[6],a0=a[7],I=a[8],a1=a[9],a2=a[10],a3=a[11],a4=a[12],a5=a[13],a6=a[14],a7=a[15],ag=a[16],k=a[17],a8=a[18],a9=a[19],ai=a[20],aj=a[21],ak=a[22],a_=a[23],al=a[24],a$=a[25],J=a[26],w=a[27],p=a[28],U=a[30],c=a[31],ba=a[32],bb=a[33],bc=a[34],bd=a[35],be=a[36],bf=a[37],bg=a[38],bh=a[39],bi=a[40],bj=a[41],am=a[42],bk=a[43],h=a[44],i=a[46],b=a[47],d=a[48],L=a[49],bl=a[50],bm=a[51],bn=a[52],q=a[53],V=a[54],bo=a[55],j=a[56],bp=a[57],an=a[58],bq=a[59],br=a[60],ao=a[61],bs=a[62],bt=a[63],bu=a[64],W=a[66],z=a[67],ap=a[68],bv=a[69],bw=a[70],bx=a[71],by=a[72],bz=a[73],bA=a[74],bB=a[75],bC=a[76],bD=a[77],bE=a[78],bF=a[79],bG=a[80],bH=a[81],r=a[82],bI=a[83],bJ=a[84],bK=a[86],bL=a[87],bM=a[88],bN=a[89],bO=a[90],t=a[91],bP=a[92],bQ=a[93],bR=a[94],Y=a[95],g=a[96],e=a[97],bS=a[98],bT=a[99],bU=a[hZ],M=a[iK],bV=a[iZ],bW=a[iU],bX=a[iQ],bY=a[i$],bZ=a[hq],b0=a[hb],b1=a[i1],b2=a[jw],b3=a[hr],b4=a[iT],b5=a[hy],b6=a[gt],x=a[iR],b7=a[jx],b8=a[jY],b9=a[kL],b_=a[kv],A=a[k8],b$=a[iJ],ca=a[k$],cb=a[gN],cc=a[hB],cd=a[jX],ce=a[E],cf=a[lj],cg=a[gx],ch=a[gO],aq=a[ju],ci=a[kr],cj=a[l8],Z=a[ks],ck=a[ma],cl=a[jI],cm=a[mc],cn=a[pJ],co=a[lF],ar=a[lK],cp=a[pP],cq=a[q9],as=a[kw],B=a[mf],at=a[md],au=a[mg],cr=a[lL],cs=a[pK],av=a[k7],aw=a[nq],ax=a[qf],ct=a[lC],ay=a[qr],cu=a[mi],cv=a[pQ],cw=a[rH],cx=a[pN],cy=a[l6],cz=a[qp],cA=a[ou],cB=a[q7],cC=a[kO],cD=a[k9],cE=a[kp],cF=a[qe],_=a[lQ],cG=a[lE],az=a[lg],cH=a[k6],cI=a[kc],cJ=a[lc],cK=a[oA],cL=a[rI],cM=a[vp],cN=a[xn],cO=a[t3],cP=a[tL],cQ=a[pR],cR=a[vr],s=a[wY],C=a[sO],cS=a[q0],aA=a[qX],cT=a[t2],N=a[oE],cU=a[l_],cV=a[jH],cW=a[q5],cX=a[oi],cY=a[rO],cZ=a[q4],aB=a[sW],aC=a[qd],c0=a[lN],aD=a[qS],D=a[tW],c1=a[wN],c2=a[wT],c3=a[tT],P=a[tE],c4=a[qb],c5=a[t_],c6=a[tN],c7=a[zr],c8=a[w0],c9=a[Dn],c_=a[w4],c$=a[vj],da=a[Do],db=a[H_],dc=a[Ak],dd=a[t8],de=a[xp],f=a[xc],aE=a[rT],aF=a[rR],df=a[C3],dg=a[tU],dh=a[xl],di=a[CV],dj=a[xe],dk=a[Ab],dl=a[Dv],dm=a[xw],dn=a[tO],dp=a[Df],F=a[wR],aG=a[Dy],$=a[DC],dq=a[zs],dr=a[QM],ds=a[xg],dt=a[Hk],du=a[zD],dv=a[w8],dw=a[Db],Q=a[CS],aH=a[Sd],dx=a[xq],dy=a[wQ],dz=a[vn],dA=a[UY],dB=a[Dz],aI=a[Dr],dC=a[C4],dD=a[DQ],dE=a[O],aJ=a[zk],aK=a[fy],dF=a[C_],dG=a[ah],dH=a[qm],dI=a[ld],aL=a[zu],dJ=a[sv],aM=a[lf],dK=a[la],dL=a[xa],dM=a[vc],aa=a[tH],dN=a[QY],aN=a[zq],aO=a[Di],dO=a[HZ],dP=a[z4],dQ=a[Hp],dR=a[wZ],y=a[vk],aP=a[Al],dS=a[wW],dT=a[t7],dU=a[zI],dV=a[IB],dW=a[vu],aQ=a[Rl],dX=a[zy],aR=a[RH],aS=a[zN],dY=a[alg],dZ=a[vi],d0=a[DK],R=a[Jc],d1=a[zK],d2=a[C0],aT=a[HT],d3=a[CN],d4=a[w2],d5=a[va],ab=a[sT],d6=a[sP],aU=a[aTH],d7=a[w7],ac=a[zn],d8=a[Dq],u=a[Ds],G=a[Dp],T=a[zw],d9=a[w6],H=a[tP],ad=a[CX],d_=a[ve],d$=a[xj],ea=a[y6],eb=a[w5],ec=a[u$],ed=a[CK],aV=a[IY],ee=a[29],ef=a[45],eg=a[65],eh=a[85],ei=a[qT];function +ej(a,b){var +c=b[4],e=b[3],h=b[2],i=b[1],j=S(i,m(a[1][1+f],a)),k=n(a[1][1+d],a,h);return[0,j,k,e,n(a[1][1+g],a,c)]}function +ek(a,b){return n(a[1][1+h],a,b)}function +el(e,b){var +f=b[4],g=b[3],a=b[2],h=n(e[1][1+G],e,b[1]);function +i(a){var +b=n(e[1][1+c],e,g);return[0,h,a,b,n(e[1][1+d],e,f)]}return l(e[1][1+k],e,a,i)}function +em(a,b){var +c=b[3],e=b[2],g=n(a[1][1+f],a,b[1]),h=n(a[1][1+j],a,e);return[0,g,h,n(a[1][1+d],a,c)]}function +en(a,b){var +c=b[3],e=b[2],f=n(a[1][1+z],a,b[1]),g=n(a[1][1+j],a,e);return[0,f,g,n(a[1][1+d],a,c)]}function +eo(a,b){return S(b,m(a[1][1+af],a))}function +ep(a,b){var +c=b[2],f=c[2],g=c[1],h=n(a[1][1+e],a,b[1]);return[0,h,[0,g,n(a[1][1+d],a,f)]]}function +eq(a,b,c){var +d=c[2],g=d[2],h=c[1],i=l(a[1][1+aZ],a,b,d[1]),j=[0,i,S(g,m(a[1][1+f],a))];return[0,n(a[1][1+e],a,h),j]}function +er(a,b){var +c=b[2],e=b[3],f=b[1],g=K(f,n(a[1][1+a0],a,c));return[0,g,c,n(a[1][1+d],a,e)]}function +es(a,b){var +c=b[4],e=b[3],g=b[1],h=n(a[1][1+f],a,b[2]);return[0,g,h,e,n(a[1][1+d],a,c)]}function +et(a,b){var +c=b[3],e=b[1],g=n(a[1][1+f],a,b[2]);return[0,e,g,n(a[1][1+d],a,c)]}function +eu(a,b){var +e=b[2],g=b[3],h=n(a[1][1+f],a,b[1]),i=e?[0,n(a[1][1+c],a,e[1])]:0;return[0,h,i,n(a[1][1+d],a,g)]}function +ev(a,b){var +c=b[3],e=b[2],g=n(a[1][1+f],a,b[1]),h=n(a[1][1+p],a,e);return[0,g,h,n(a[1][1+d],a,c)]}function +ew(a,b){var +c=b[4],f=b[3],g=b[2],h=b[1],i=m(a[1][1+u],a),r=mw(m(a[1][1+e],a),i,h),j=m(a[1][1+d4],a),k=m(a[1][1+e],a),l=S(g,function(a){return mw(k,j,a)}),o=m(a[1][1+u],a),p=m(a[1][1+e],a),q=S(f,function(a){return mw(p,o,a)});return[0,r,l,q,n(a[1][1+d],a,c)]}function +ex(a,b){var +c=b[2],e=n(a[1][1+f],a,b[1]);return[0,e,n(a[1][1+d],a,c)]}function +ey(a,b){return[0,n(a[1][1+d],a,b[1])]}function +ez(a,b){var +c=b[2];return[0,n(a[1][1+e],a,b[1]),c]}function +eA(a,b){var +c=b[3],e=b[2],g=b[1],h=K(g,m(a[1][1+bj],a)),i=K(e,m(a[1][1+f],a));return[0,h,i,n(a[1][1+d],a,c)]}function +eB(a,b){var +c=b[3],g=b[2],h=n(a[1][1+f],a,b[1]),i=m(a[1][1+am],a),j=mw(m(a[1][1+e],a),i,g);return[0,h,j,n(a[1][1+d],a,c)]}function +eC(a,b){var +c=b[3],e=b[2],g=b[1],h=S(g,m(a[1][1+f],a)),i=n(a[1][1+V],a,e);return[0,h,i,n(a[1][1+d],a,c)]}function +eD(a,b){var +c=b[3],h=b[2],i=b[1],j=n(a[1][1+g],a,b[4]),k=n(a[1][1+f],a,i),l=m(a[1][1+bl],a),o=m(a[1][1+e],a),p=K(h,function(a){return mw(o,l,a)});return[0,k,p,n(a[1][1+d],a,c),j]}function +eE(a,b){return[0,n(a[1][1+d],a,b[1])]}function +eF(a,b){var +c=b[2],g=c[2],h=c[1],i=n(a[1][1+e],a,b[1]),j=n(a[1][1+f],a,h);return[0,i,[0,j,n(a[1][1+d],a,g)]]}function +eG(a,b){var +c=b[2],g=c[2],h=c[1],i=n(a[1][1+e],a,b[1]),j=n(a[1][1+f],a,h);return[0,i,[0,j,n(a[1][1+d],a,g)]]}function +eH(a,b){return[0,n(a[1][1+j],a,b),0]}function +eI(a,b){return p2(b,m(a[1][1+bo],a))}function +eJ(a,b){return n(a[1][1+V],a,b)}function +eK(a,b){var +c=b[2],e=b[1],g=K(e,m(a[1][1+f],a));return[0,g,n(a[1][1+d],a,c)]}function +eL(a,b){var +c=b[2],e=b[1],h=n(a[1][1+g],a,b[3]),i=S(e,m(a[1][1+f],a));return[0,i,n(a[1][1+d],a,c),h]}function +eM(a,b){return n(a[1][1+f],a,b)}function +eN(a,b){return n(a[1][1+f],a,b)}function +eO(a,b,c){return l(a[1][1+t],a,b,c)}function +eP(a,b,c){return l(a[1][1+t],a,b,c)}function +eQ(a,b,c){var +e=c[2],f=l(a[1][1+bK],a,b,c[1]);return[0,f,n(a[1][1+d],a,e)]}function +eR(a,b,c){return l(a[1][1+t],a,b,c)}function +eS(a,b,c){var +d=c[2],e=l(a[1][1+bM],a,b,c[1]);return[0,e,n(a[1][1+Q],a,d)]}function +eT(a,b,c){switch(c[0]){case +0:var +d=c[1],g=d[1],h=l(a[1][1+bN],a,b,d[2]);return[0,[0,n(a[1][1+e],a,g),h]];case +1:var +f=c[1],i=f[1],j=l(a[1][1+bL],a,b,f[2]);return[1,[0,n(a[1][1+e],a,i),j]];default:return[2,n(a[1][1+e],a,c[1])]}}function +eU(a,b,c){return l(a[1][1+t],a,b,c)}function +eV(a,b,c){return l(a[1][1+t],a,b,c)}function +eW(a,b,c){var +e=c[2],f=l(a[1][1+bw],a,b,c[1]);return[0,f,n(a[1][1+d],a,e)]}function +eX(a,b,c){return n(a[1][1+aL],a,c)}function +eY(a,b,c){return l(a[1][1+r],a,b,c)}function +eZ(a,b,c){return l(a[1][1+bJ],a,b,c)}function +e0(a,b,c){return l(a[1][1+bH],a,b,c)}function +e1(a,b,c){return l(a[1][1+bv],a,b,c)}function +e2(a,b,c){switch(c[0]){case +0:var +d=c[1],h=d[1],i=l(a[1][1+by],a,b,d[2]);return[0,[0,n(a[1][1+e],a,h),i]];case +1:var +f=c[1],j=f[1],k=l(a[1][1+bA],a,b,f[2]);return[1,[0,n(a[1][1+e],a,j),k]];case +2:var +g=c[1],m=g[1],o=l(a[1][1+bE],a,b,g[2]);return[2,[0,n(a[1][1+e],a,m),o]];case +3:return[3,l(a[1][1+bC],a,b,c[1])];default:return[4,l(a[1][1+bD],a,b,c[1])]}}function +e3(a,b,c){var +d=c[4],e=c[3],f=c[2],g=l(a[1][1+bB],a,b,c[1]),h=l(a[1][1+bz],a,b,f);return[0,g,h,n(a[1][1+Q],a,e),d]}function +e4(a,b,c){if(0===c[0]){var +d=c[1],g=d[1],h=l(a[1][1+bF],a,b,d[2]);return[0,[0,n(a[1][1+e],a,g),h]]}var +f=c[1],i=f[1],j=l(a[1][1+bx],a,b,f[2]);return[1,[0,n(a[1][1+e],a,i),j]]}function +e5(a,b,c){return n(a[1][1+H],a,c)}function +e6(a,b,c){return n(a[1][1+A],a,c)}function +e7(a,b,c){return n(a[1][1+q],a,c)}function +e8(a,b,c){return n(a[1][1+h],a,c)}function +e9(a,b,c){var +d=c[2],k=c[1];switch(d[0]){case +0:var +f=d[1],m=f[3],o=f[2],p=f[1],q=K(p,n(a[1][1+bG],a,b)),s=n(a[1][1+w],a,o),e=[0,[0,q,s,n(a[1][1+i],a,m)]];break;case +1:var +h=d[1],t=h[3],u=h[2],v=h[1],x=K(v,n(a[1][1+bO],a,b)),y=n(a[1][1+w],a,u),e=[1,[0,x,y,n(a[1][1+i],a,t)]];break;case +2:var +j=d[1],z=j[3],A=j[2],B=l(a[1][1+r],a,b,j[1]),e=[2,[0,B,n(a[1][1+w],a,A),z]];break;default:var +e=[3,n(a[1][1+bI],a,d[1])]}return[0,n(a[1][1+g],a,k),e]}function +e_(a,b){return l(a[1][1+t],a,0,b)}function +e$(a,b,c){var +d=b?b[1]:0;return l(a[1][1+t],a,[0,d],c)}function +fa(a,b){return n(a[1][1+ad],a,b)}function +fb(a,b){return n(a[1][1+ad],a,b)}function +fc(a,b){return l(a[1][1+T],a,dgh,b)}function +fd(a,b,c){return l(a[1][1+T],a,[0,b],c)}function +fe(a,b){return l(a[1][1+T],a,0,b)}function +ff(a,b){return n(a[1][1+Y],a,b)}function +fg(e,b){var +f=b[5],g=b[4],h=b[3],a=b[2],i=n(e[1][1+G],e,b[1]);function +j(a){var +b=S(h,m(e[1][1+c],e)),j=S(g,m(e[1][1+c],e));return[0,i,a,b,j,n(e[1][1+d],e,f)]}return l(e[1][1+k],e,a,j)}function +fh(a,b){return n(a[1][1+aL],a,b)}function +fi(a,b){return n(a[1][1+W],a,b)}function +fj(a,b){return n(a[1][1+h],a,b)}function +fk(a,b){var +c=b[1],d=n(a[1][1+H],a,b[2]);return[0,n(a[1][1+g],a,c),d]}function +fl(a,b){var +c=b[1],d=n(a[1][1+A],a,b[2]);return[0,n(a[1][1+g],a,c),d]}function +fm(a,b){var +c=b[1],d=n(a[1][1+q],a,b[2]);return[0,n(a[1][1+g],a,c),d]}function +fn(a,b){switch(b[0]){case +0:return[0,n(a[1][1+b1],a,b[1])];case +1:return[1,n(a[1][1+b3],a,b[1])];case +2:return[2,n(a[1][1+b6],a,b[1])];case +3:return[3,n(a[1][1+b4],a,b[1])];case +4:return[4,n(a[1][1+b2],a,b[1])];default:return[5,n(a[1][1+b5],a,b[1])]}}function +fo(a,b){var +c=b[2],k=b[1];switch(c[0]){case +0:var +l=c[3],m=c[2],o=n(a[1][1+x],a,c[1]),g=[0,o,n(a[1][1+f],a,m),l];break;case +1:var +h=c[2],p=h[2],q=h[1],r=n(a[1][1+x],a,c[1]),s=n(a[1][1+D],a,p),g=[1,r,[0,n(a[1][1+e],a,q),s]];break;case +2:var +i=c[2],t=c[3],u=i[2],v=i[1],w=n(a[1][1+x],a,c[1]),y=n(a[1][1+D],a,u),z=n(a[1][1+d],a,t),g=[2,w,[0,n(a[1][1+e],a,v),y],z];break;default:var +j=c[2],A=c[3],B=j[2],C=j[1],E=n(a[1][1+x],a,c[1]),F=n(a[1][1+D],a,B),G=n(a[1][1+d],a,A),g=[3,E,[0,n(a[1][1+e],a,C),F],G]}return[0,n(a[1][1+e],a,k),g]}function +fq(a,b){return 0===b[0]?[0,n(a[1][1+bZ],a,b[1])]:[1,n(a[1][1+bp],a,b[1])]}function +fr(a,b){var +c=b[1],d=n(a[1][1+i],a,b[2]);return[0,K(c,m(a[1][1+bY],a)),d]}function +fs(a,b){var +c=b[4],e=b[3],g=b[2],h=n(a[1][1+f],a,b[1]),i=S(g,m(a[1][1+ab],a)),j=S(e,m(a[1][1+aV],a));return[0,h,i,j,n(a[1][1+d],a,c)]}function +ft(a,b){var +c=b[2],e=b[1],f=n(a[1][1+d],a,b[3]),g=n(a[1][1+s],a,c);return[0,n(a[1][1+s],a,e),g,f]}function +fu(a,b){return n(a[1][1+f],a,b)}function +fv(a,b){return n(a[1][1+W],a,b)}function +fw(a,b){return n(a[1][1+h],a,b)}function +fx(a,b){switch(b[0]){case +0:return[0,n(a[1][1+ce],a,b[1])];case +1:return[1,n(a[1][1+ch],a,b[1])];default:return[2,n(a[1][1+cf],a,b[1])]}}function +fz(a,b){var +c=b[3],d=b[2],e=n(a[1][1+aq],a,b[1]);return[0,e,n(a[1][1+g],a,d),c]}function +fA(a,b){var +c=b[3],e=b[2],g=n(a[1][1+f],a,b[1]),h=n(a[1][1+cg],a,e);return[0,g,h,n(a[1][1+d],a,c)]}function +fB(a,b){var +c=b[4],e=b[3],g=b[1],h=n(a[1][1+f],a,b[2]),i=n(a[1][1+f],a,e);return[0,g,h,i,n(a[1][1+d],a,c)]}function +fD(a,b){var +c=b[3],e=b[2],f=n(a[1][1+Z],a,b[1]),g=n(a[1][1+j],a,e);return[0,f,g,n(a[1][1+d],a,c)]}function +fE(a,b){var +c=b[2],e=c[2],f=c[1],h=n(a[1][1+g],a,b[1]);return[0,h,[0,f,n(a[1][1+d],a,e)]]}function +fF(a,b){return n(a[1][1+av],a,b)}function +fG(a,b){return 0===b[0]?[0,n(a[1][1+cq],a,b[1])]:[1,n(a[1][1+as],a,b[1])]}function +fH(a,b){var +c=b[2],d=c[2],f=b[1],g=n(a[1][1+cp],a,c[1]),h=[0,g,n(a[1][1+B],a,d)];return[0,n(a[1][1+e],a,f),h]}function +fI(a,b){var +c=b[2],d=c[2],f=b[1],g=n(a[1][1+B],a,c[1]),h=[0,g,n(a[1][1+B],a,d)];return[0,n(a[1][1+e],a,f),h]}function +fJ(a,b){return n(a[1][1+as],a,b)}function +fK(a,b){return n(a[1][1+ar],a,b)}function +fL(a,b){return n(a[1][1+B],a,b)}function +fM(a,b){switch(b[0]){case +0:return[0,n(a[1][1+av],a,b[1])];case +1:return[1,n(a[1][1+cr],a,b[1])];default:return[2,n(a[1][1+cs],a,b[1])]}}function +fN(a,b){var +c=b[2],e=n(a[1][1+f],a,b[1]);return[0,e,n(a[1][1+d],a,c)]}function +fO(a,b){var +c=b[1],d=b[2],e=c?[0,n(a[1][1+f],a,c[1])]:0;return[0,e,n(a[1][1+i],a,d)]}function +fP(a,b){var +c=b[2],f=b[1];switch(c[0]){case +0:var +d=[0,n(a[1][1+ax],a,c[1])];break;case +1:var +d=[1,n(a[1][1+at],a,c[1])];break;case +2:var +d=[2,n(a[1][1+au],a,c[1])];break;case +3:var +d=[3,n(a[1][1+cl],a,c[1])];break;default:var +d=c}return[0,n(a[1][1+e],a,f),d]}function +fQ(a,b){var +c=b[2],d=b[1],f=K(c,m(a[1][1+cu],a));return[0,n(a[1][1+e],a,d),f]}function +fS(a,b){var +c=b[1],d=n(a[1][1+au],a,b[2]);return[0,n(a[1][1+g],a,c),d]}function +fT(a,b){var +c=b[1],d=n(a[1][1+q],a,b[2]);return[0,n(a[1][1+g],a,c),d]}function +fU(a,b){return 0===b[0]?[0,n(a[1][1+cv],a,b[1])]:[1,n(a[1][1+cw],a,b[1])]}function +fV(a,b){return n(a[1][1+ar],a,b)}function +fW(a,b){return n(a[1][1+B],a,b)}function +fX(a,b){return 0===b[0]?[0,n(a[1][1+cz],a,b[1])]:[1,n(a[1][1+cy],a,b[1])]}function +fY(a,b){var +c=b[2],d=c[2],f=b[1],g=n(a[1][1+cA],a,c[1]),h=[0,g,S(d,m(a[1][1+cx],a))];return[0,n(a[1][1+e],a,f),h]}function +fZ(a,b){var +c=b[2],e=n(a[1][1+f],a,b[1]);return[0,e,n(a[1][1+d],a,c)]}function +f0(a,b){if(0===b[0])return[0,n(a[1][1+cB],a,b[1])];var +c=b[1],d=c[1],f=n(a[1][1+cm],a,c[2]);return[1,[0,n(a[1][1+e],a,d),f]]}function +f1(a,b){var +c=b[1],d=[0,n(a[1][1+aw],a,b[2][1])];return[0,n(a[1][1+e],a,c),d]}function +f2(a,b){var +c=b[2],d=c[4],f=c[3],g=c[2],h=b[1],i=n(a[1][1+aw],a,c[1]),j=S(g,m(a[1][1+ab],a)),k=[0,i,j,f,K(d,m(a[1][1+co],a))];return[0,n(a[1][1+e],a,h),k]}function +f3(a,b){var +c=b[4],f=b[3],g=b[2],h=n(a[1][1+e],a,b[1]),i=n(a[1][1+e],a,g),j=n(a[1][1+ay],a,f);return[0,h,i,j,n(a[1][1+d],a,c)]}function +f4(a,b){var +c=b[4],e=b[3],f=b[2],g=n(a[1][1+cn],a,b[1]),h=S(f,m(a[1][1+ct],a)),i=n(a[1][1+ay],a,e);return[0,g,h,i,n(a[1][1+d],a,c)]}function +f5(a,b,c,d){return l(a[1][1+r],a,dgi,d)}function +f6(a,b,c){return l(a[1][1+r],a,dgj,c)}function +f7(a,b,c){var +f=c[3],g=c[2],h=c[1],k=0,q=c[4];if(b){var +d=0;if(h)switch(h[1]){case +0:k=1;break;case +1:d=2;break;default:d=1}else +d=1;var +o=0;switch(d){case +0:break;case +1:if(2<=b)var +j=0,i=0;else +o=1;break;default:o=1}if(o)var +j=1,i=0}else +k=1;if(k)var +j=1,i=1;var +s=g?n(a[1][1+bs],a,f):i?n(a[1][1+G],a,f):l(a[1][1+r],a,dgl,f);if(g)var +t=g[1],u=j?m(a[1][1+G],a):n(a[1][1+r],a,dgk),p=[0,m(u,t)];else +var +p=0;return[0,h,p,s,S(q,m(a[1][1+e],a))]}function +f8(a,b){return n(a[1][1+h],a,b)}function +f9(a,b,c){if(0===c[0]){var +g=c[1];return[0,K(g,n(a[1][1+cK],a,b))]}var +d=c[1],f=d[1],h=o(a[1][1+cJ],a,b,f,d[2]);return[1,[0,n(a[1][1+e],a,f),h]]}function +f_(a,b,c){return n(a[1][1+q],a,c)}function +f$(f,b,c){var +a=c[2],h=c[1],i=a[1],j=c[5],k=c[4],o=c[3],p=l(f[1][1+cI],f,i,a[2]),q=[0,n(f[1][1+g],f,i),p],r=S(k,n(f[1][1+cH],f,h)),s=S(o,function(a){var +b=a[2],c=a[1],d=S(b,m(f[1][1+e],f));return[0,l(f[1][1+cL],f,h,c),d]});return[0,h,q,s,r,n(f[1][1+d],f,j)]}function +ga(a,b){var +c=b[3],e=b[4],f=b[2],g=n(a[1][1+z],a,b[1]),h=h1(c),i=l(a[1][1+cQ],a,h,f),j=S(c,m(a[1][1+cR],a));return[0,g,i,j,n(a[1][1+d],a,e)]}function +gb(a,b){var +c=b[2],f=c[2],g=c[1],h=n(a[1][1+e],a,b[1]),i=n(a[1][1+j],a,g);return[0,h,[0,i,n(a[1][1+d],a,f)]]}function +gc(a,b,c){return n(a[1][1+j],a,c)}function +gd(a,b,c){var +e=c[2],g=n(a[1][1+f],a,c[1]);return[0,g,n(a[1][1+d],a,e)]}function +ge(a,b){var +c=b[2],g=c[2],h=c[1],i=n(a[1][1+e],a,b[1]),j=n(a[1][1+f],a,h);return[0,i,[0,j,n(a[1][1+d],a,g)]]}function +gf(a,b){var +c=b[2],f=c[2],g=c[1],h=n(a[1][1+e],a,b[1]);return[0,h,[0,g,n(a[1][1+d],a,f)]]}function +gg(a,b){return n(a[1][1+_],a,b)}function +gh(c,b){var +f=b[5],g=b[4],h=b[3],a=b[2],i=n(c[1][1+G],c,b[1]);function +j(a){var +b=m(c[1][1+C],c),j=m(c[1][1+e],c),k=K(h,function(a){return mw(j,b,a)}),l=m(c[1][1+M],c),o=mw(m(c[1][1+e],c),l,g);return[0,i,a,k,o,n(c[1][1+d],c,f)]}return l(c[1][1+k],c,a,j)}function +gi(a,b){var +c=b[2],e=c[2],f=c[1],h=n(a[1][1+g],a,b[1]);return[0,h,[0,f,n(a[1][1+d],a,e)]]}function +gj(a,b){return n(a[1][1+ak],a,b)}function +gk(a,b){return n(a[1][1+ak],a,b)}function +gl(a,b){return n(a[1][1+h],a,b)}function +gm(a,b){var +c=b[2],f=c[2],g=c[1],h=n(a[1][1+e],a,b[1]);return[0,h,[0,g,n(a[1][1+d],a,f)]]}function +gn(a,b){return l(a[1][1+r],a,dgm,b)}function +go(a,b){return n(a[1][1+f],a,b)}function +gp(a,b){var +c=m(a[1][1+u],a);return mw(m(a[1][1+e],a),c,b)}function +gq(a,b){return 0===b[0]?[0,n(a[1][1+c3],a,b[1])]:[1,n(a[1][1+d8],a,b[1])]}function +gr(a,b){var +c=b[2],f=c[2],g=c[1],h=n(a[1][1+e],a,b[1]),i=n(a[1][1+p],a,g);return[0,h,[0,i,n(a[1][1+d],a,f)]]}function +gs(a,b){var +c=b[2],f=c[2],g=c[1],h=n(a[1][1+e],a,b[1]),i=n(a[1][1+aC],a,g);return[0,h,[0,i,n(a[1][1+d],a,f)]]}function +gu(a,b){var +c=b[2],d=c[2],f=c[1],g=n(a[1][1+e],a,b[1]),h=n(a[1][1+aC],a,f);return[0,g,[0,h,n(a[1][1+Q],a,d)]]}function +gv(a,b){var +c=b[2],d=c[4],f=c[3],g=c[2],h=c[1],j=b[1],k=K(g,m(a[1][1+c0],a)),l=S(f,m(a[1][1+cY],a)),o=S(h,m(a[1][1+cV],a)),p=[0,o,k,l,n(a[1][1+i],a,d)];return[0,n(a[1][1+e],a,j),p]}function +gw(c,b){var +f=b[10],g=b[9],a=b[8],h=b[7],i=b[6],j=b[5],o=b[4],p=b[3],q=b[2],r=b[1],s=S(r,m(c[1][1+aD],c));function +t(a){var +b=n(c[1][1+cZ],c,q),k=n(c[1][1+cW],c,h),l=n(c[1][1+c2],c,p),r=S(i,m(c[1][1+ap],c)),t=n(c[1][1+e],c,f);return[0,s,b,l,o,j,r,k,a,n(c[1][1+d],c,g),t]}return l(c[1][1+k],c,a,t)}function +gy(a,b){switch(b[0]){case +0:return[0,n(a[1][1+g],a,b[1])];case +1:return[1,n(a[1][1+p],a,b[1])];default:return[2,n(a[1][1+a_],a,b[1])]}}function +gz(a,b){return n(a[1][1+P],a,b)}function +gA(a,b){return n(a[1][1+P],a,b)}function +gB(a,b){return n(a[1][1+P],a,b)}function +gC(a,b){var +c=b[2],d=n(a[1][1+e],a,b[1]);return[0,d,n(a[1][1+al],a,c)]}function +gD(a,b){var +d=b[2],f=d[2],g=d[3],h=f[2],j=f[1],k=d[1],l=n(a[1][1+e],a,b[1]),o=n(a[1][1+s],a,j),p=S(h,m(a[1][1+c],a));return[0,l,[0,k,[0,o,p],n(a[1][1+i],a,g)]]}function +gE(a,b){return 0===b[0]?[0,n(a[1][1+g],a,b[1])]:[1,n(a[1][1+p],a,b[1])]}function +gF(a,b){var +d=b[1],f=n(a[1][1+c],a,b[2]);return[0,n(a[1][1+e],a,d),f]}function +gG(a,b){var +c=b[2][1],e=n(a[1][1+g],a,b[1]);return[0,e,[0,n(a[1][1+d],a,c)]]}function +gH(a,b){var +c=b[2],f=b[1];switch(c[0]){case +0:var +e=[0,n(a[1][1+d],a,c[1])];break;case +1:var +e=[1,n(a[1][1+d],a,c[1])];break;case +2:var +e=[2,n(a[1][1+d],a,c[1])];break;case +3:var +e=[3,n(a[1][1+d],a,c[1])];break;case +4:var +e=[4,n(a[1][1+d],a,c[1])];break;case +5:var +e=[5,n(a[1][1+d],a,c[1])];break;case +6:var +e=[6,n(a[1][1+d],a,c[1])];break;case +7:var +e=[7,n(a[1][1+d],a,c[1])];break;case +8:var +h=c[1],e=[8,h,n(a[1][1+d],a,c[2])];break;case +9:var +e=[9,n(a[1][1+d],a,c[1])];break;case +10:var +e=[10,n(a[1][1+d],a,c[1])];break;case +11:var +e=[11,n(a[1][1+b$],a,c[1])];break;case +12:var +e=[12,n(a[1][1+N],a,c[1])];break;case +13:var +e=[13,n(a[1][1+dL],a,c[1])];break;case +14:var +e=[14,n(a[1][1+M],a,c[1])];break;case +15:var +e=[15,n(a[1][1+cE],a,c[1])];break;case +16:var +e=[16,n(a[1][1+eb],a,c[1])];break;case +17:var +e=[17,n(a[1][1+dH],a,c[1])];break;case +18:var +e=[18,n(a[1][1+cG],a,c[1])];break;case +19:var +e=[19,n(a[1][1+C],a,c[1])];break;case +20:var +e=[20,n(a[1][1+az],a,c[1])];break;case +21:var +e=[21,n(a[1][1+bQ],a,c[1])];break;case +22:var +e=[22,n(a[1][1+a2],a,c[1])];break;case +23:var +e=[23,n(a[1][1+cC],a,c[1])];break;case +24:var +e=[24,n(a[1][1+a4],a,c[1])];break;case +25:var +e=[25,n(a[1][1+ck],a,c[1])];break;case +26:var +e=[26,n(a[1][1+ao],a,c[1])];break;case +27:var +e=[27,n(a[1][1+bu],a,c[1])];break;case +28:var +e=[28,n(a[1][1+ba],a,c[1])];break;case +29:var +e=[29,n(a[1][1+q],a,c[1])];break;case +30:var +e=[30,n(a[1][1+A],a,c[1])];break;case +31:var +e=[31,n(a[1][1+H],a,c[1])];break;case +32:var +e=[32,n(a[1][1+ac],a,c[1])];break;case +33:var +e=[33,n(a[1][1+d],a,c[1])];break;case +34:var +e=[34,n(a[1][1+d],a,c[1])];break;default:var +e=[35,n(a[1][1+d],a,c[1])]}return[0,n(a[1][1+g],a,f),e]}function +gI(a,b){var +c=b[6],e=b[5],f=b[4],h=b[3],i=b[1],j=n(a[1][1+g],a,b[2]);return[0,i,j,h,f,e,n(a[1][1+d],a,c)]}function +gJ(a,b){var +c=b[3],e=b[2],f=b[1];return[0,f,e,c,n(a[1][1+d],a,b[4])]}function +gK(a,b){var +c=b[1];return[0,c,n(a[1][1+d],a,b[2])]}function +gL(a,b){var +c=b[2],e=b[1];return[0,e,c,n(a[1][1+d],a,b[3])]}function +gM(a,b){var +c=b[2],e=b[1];return[0,e,c,n(a[1][1+d],a,b[3])]}function +gP(a,b){var +c=b[2],e=b[1];return[0,e,c,n(a[1][1+d],a,b[3])]}function +gQ(a,b){var +e=b[1],f=b[2],g=e[3],h=e[2],i=n(a[1][1+c],a,e[1]),j=n(a[1][1+c],a,h),k=K(g,m(a[1][1+c],a));return[0,[0,i,j,k],n(a[1][1+d],a,f)]}function +gR(a,b){var +e=b[1],f=b[2],g=e[3],h=e[2],i=n(a[1][1+c],a,e[1]),j=n(a[1][1+c],a,h),k=K(g,m(a[1][1+c],a));return[0,[0,i,j,k],n(a[1][1+d],a,f)]}function +gS(a,b){var +c=b[2],d=n(a[1][1+ai],a,b[1]);return[0,d,S(c,m(a[1][1+L],a))]}function +gT(a,b){var +d=b[5],e=b[4],f=b[3],g=b[2],h=n(a[1][1+c],a,b[1]),i=n(a[1][1+c],a,g),j=n(a[1][1+c],a,f),k=n(a[1][1+c],a,e);return[0,h,i,j,k,S(d,m(a[1][1+L],a))]}function +gU(a,b){var +e=b[2],f=n(a[1][1+c],a,b[1]);return[0,f,n(a[1][1+d],a,e)]}function +gV(a,b){var +c=b[2],e=b[1],f=K(e,m(a[1][1+bd],a));return[0,f,n(a[1][1+d],a,c)]}function +gW(a,b){var +d=b[1],e=n(a[1][1+c],a,b[2]);return[0,S(d,m(a[1][1+h],a)),e]}function +gX(a,b){var +d=b[4],e=b[3],f=b[1],g=n(a[1][1+c],a,b[2]),i=n(a[1][1+h],a,f);return[0,i,g,n(a[1][1+v],a,e),d]}function +gY(a,b){var +d=b[2],f=b[1];switch(d[0]){case +0:var +g=[0,n(a[1][1+c],a,d[1])];return[0,n(a[1][1+e],a,f),g];case +1:var +h=[1,n(a[1][1+bc],a,d[1])];return[0,n(a[1][1+e],a,f),h];default:var +i=[2,n(a[1][1+bb],a,d[1])];return[0,n(a[1][1+e],a,f),i]}}function +gZ(a,b){var +e=b[2],f=n(a[1][1+c],a,b[1]);return[0,f,n(a[1][1+d],a,e)]}function +g0(a,b){var +f=b[4],g=b[3],h=b[1],i=n(a[1][1+c],a,b[2]),j=n(a[1][1+d],a,g);return[0,n(a[1][1+e],a,h),i,j,f]}function +g1(a,b){if(0===b[0])return[0,n(a[1][1+g],a,b[1])];var +c=b[1],d=n(a[1][1+ao],a,b[2]);return[1,n(a[1][1+e],a,c),d]}function +g2(a,b){var +e=b[2],f=n(a[1][1+c],a,b[1]);return[0,f,n(a[1][1+d],a,e)]}function +g3(a,b){var +c=b[2],d=c[2],e=b[1],f=n(a[1][1+ag],a,c[1]),h=[0,f,n(a[1][1+a6],a,d)];return[0,n(a[1][1+g],a,e),h]}function +g4(a,b){return n(a[1][1+h],a,b)}function +g5(a,b){return n(a[1][1+h],a,b)}function +g6(a,b){return 0===b[0]?[0,n(a[1][1+a7],a,b[1])]:[1,n(a[1][1+a5],a,b[1])]}function +g7(a,b){var +c=b[3],e=b[2],f=n(a[1][1+ag],a,b[1]),g=S(e,m(a[1][1+J],a));return[0,f,g,n(a[1][1+d],a,c)]}function +g8(a,b){var +e=b[2],f=n(a[1][1+c],a,b[1]);return[0,f,n(a[1][1+d],a,e)]}function +g9(a,b){var +c=b[2],g=c[1],h=c[2],i=n(a[1][1+e],a,b[1]),j=g?[0,n(a[1][1+f],a,g[1])]:0;return[0,i,[0,j,n(a[1][1+d],a,h)]]}function +g_(a,b){var +c=b[2];return[0,n(a[1][1+az],a,b[1]),c]}function +g$(a,b){var +e=b[3],f=b[2],g=n(a[1][1+c],a,b[1]),h=n(a[1][1+c],a,f);return[0,g,h,n(a[1][1+d],a,e)]}function +ha(a,b){var +c=b[3],e=b[2],f=n(a[1][1+aA],a,b[1]),g=S(e,m(a[1][1+J],a));return[0,f,g,n(a[1][1+d],a,c)]}function +hc(a,b){return n(a[1][1+s],a,b)}function +hd(a,b){var +d=b[2],f=d[5],g=d[4],h=d[3],i=d[2],j=b[1],k=n(a[1][1+a9],a,d[1]),l=n(a[1][1+w],a,i),o=n(a[1][1+v],a,g),p=[0,k,l,h,o,S(f,m(a[1][1+c],a))];return[0,n(a[1][1+e],a,j),p]}function +he(a,b){var +c=b[2],d=c[2],f=c[1],g=n(a[1][1+e],a,b[1]),h=K(f,m(a[1][1+ai],a));return[0,g,[0,h,n(a[1][1+i],a,d)]]}function +hf(a,b,c){return m(c,S(b,m(a[1][1+a8],a)))}function +hg(a,b){var +d=b[2],f=d[2],g=d[1],h=n(a[1][1+e],a,b[1]),j=K(g,m(a[1][1+c],a));return[0,h,[0,j,n(a[1][1+i],a,f)]]}function +hh(a,b){return n(a[1][1+h],a,b)}function +hi(a,b){var +c=b[2],d=c[2],f=b[1],g=n(a[1][1+aA],a,c[1]),h=[0,g,n(a[1][1+cd],a,d)];return[0,n(a[1][1+e],a,f),h]}function +hj(a,b){return 0===b[0]?[0,n(a[1][1+aj],a,b[1])]:[1,n(a[1][1+cS],a,b[1])]}function +hk(a,b){var +c=b[3],f=b[2],g=b[1],h=m(a[1][1+C],a),i=m(a[1][1+e],a),j=K(f,function(a){return mw(i,h,a)}),k=m(a[1][1+M],a),l=mw(m(a[1][1+e],a),k,g);return[0,l,j,n(a[1][1+d],a,c)]}function +hl(a,b){var +c=b[2],f=c[3],g=c[2],h=c[1],i=n(a[1][1+e],a,b[1]),j=m(a[1][1+N],a),k=mw(m(a[1][1+e],a),j,h);return[0,i,[0,k,g,n(a[1][1+d],a,f)]]}function +hm(a,b){var +f=b[2],g=f[2],h=f[1],i=n(a[1][1+e],a,b[1]),j=n(a[1][1+c],a,h);return[0,i,[0,j,n(a[1][1+d],a,g)]]}function +hn(a,b){switch(b[0]){case +0:return[0,n(a[1][1+bX],a,b[1])];case +1:return[1,n(a[1][1+bV],a,b[1])];case +2:return[2,n(a[1][1+b8],a,b[1])];case +3:return[3,n(a[1][1+b9],a,b[1])];case +4:return[4,n(a[1][1+b7],a,b[1])];default:return[5,n(a[1][1+b0],a,b[1])]}}function +ho(a,b){var +c=b[4],d=b[3],e=b[2],f=b[1],g=K(d,m(a[1][1+bU],a));return[0,f,e,g,n(a[1][1+i],a,c)]}function +hp(a,b){var +f=b[2],g=f[6],h=f[5],i=f[4],j=f[3],k=f[2],l=b[1],m=n(a[1][1+s],a,f[1]),o=n(a[1][1+c],a,k),p=[0,m,o,j,i,h,n(a[1][1+d],a,g)];return[0,n(a[1][1+e],a,l),p]}function +hs(d,b){var +a=b[2],f=a[1],h=a[6],i=a[5],j=a[4],o=a[2],p=b[1],q=n(d[1][1+c],d,a[3]),g=[0,[0,f[1],[0,[0,f,0],0]]];function +r(a){var +b=hW(0,0,0,a)[2][1],g=0;if(b&&!b[2]){var +f=b[1];g=1}if(!g)var +f=X(dgn);var +k=n(d[1][1+c],d,o),l=S(j,m(d[1][1+af],d)),r=[0,f,k,q,l,i,S(h,m(d[1][1+L],d))];return[0,n(d[1][1+e],d,p),r]}return l(d[1][1+k],d,g,r)}function +ht(a,b){var +f=b[2],g=f[6],h=f[5],i=f[4],j=f[3],k=f[2],l=f[1],o=b[1],p=S(l,m(a[1][1+s],a)),q=n(a[1][1+c],a,k),r=n(a[1][1+c],a,j),t=n(a[1][1+v],a,h),u=[0,p,q,r,i,t,n(a[1][1+d],a,g)];return[0,n(a[1][1+e],a,o),u]}function +hu(a,b){var +c=b[2],f=c[8],g=c[7],h=c[6],i=c[5],j=c[4],k=c[3],l=c[2],m=b[1],o=n(a[1][1+x],a,c[1]),p=n(a[1][1+bW],a,l),q=n(a[1][1+v],a,g),r=[0,o,p,k,j,i,h,q,n(a[1][1+d],a,f)];return[0,n(a[1][1+e],a,m),r]}function +hv(a,b){var +c=b[2],d=n(a[1][1+e],a,b[1]);return[0,d,n(a[1][1+N],a,c)]}function +hw(a,b){var +c=b[2],d=n(a[1][1+e],a,b[1]);return[0,d,n(a[1][1+N],a,c)]}function +hx(a,b){switch(b[0]){case +0:return[0,n(a[1][1+c],a,b[1])];case +1:return[1,n(a[1][1+bT],a,b[1])];default:return[2,n(a[1][1+bS],a,b[1])]}}function +hz(a,b){return n(a[1][1+s],a,b)}function +hA(c,b){var +f=b[2],a=f[2],g=b[4],h=b[3],j=a[4],o=a[3],p=a[2],q=a[1],r=f[1],s=b[1];function +t(a){var +b=S(q,m(c[1][1+cU],c)),f=K(p,m(c[1][1+aB],c)),k=S(o,m(c[1][1+cX],c)),l=n(c[1][1+cT],c,h),s=n(c[1][1+d],c,g),t=[0,b,f,k,n(c[1][1+i],c,j)];return[0,a,[0,n(c[1][1+e],c,r),t],l,s]}return l(c[1][1+k],c,s,t)}function +hC(a,b){return 0===b[0]?[0,n(a[1][1+c],a,b[1])]:[1,n(a[1][1+al],a,b[1])]}function +hD(a,b){var +c=b[2],f=c[2],g=c[1],h=n(a[1][1+e],a,b[1]),i=n(a[1][1+p],a,g);return[0,h,[0,i,n(a[1][1+d],a,f)]]}function +hE(a,b){var +c=b[2],f=c[2],g=c[1],h=n(a[1][1+e],a,b[1]),i=n(a[1][1+aB],a,g);return[0,h,[0,i,n(a[1][1+d],a,f)]]}function +hF(a,b){var +d=b[2],f=d[3],g=d[1],i=b[1],j=n(a[1][1+c],a,d[2]),k=[0,S(g,m(a[1][1+h],a)),j,f];return[0,n(a[1][1+e],a,i),k]}function +hG(a,b){var +c=b[1],d=n(a[1][1+I],a,b[2]);return[0,n(a[1][1+e],a,c),d]}function +hH(a,b){return 0===b[0]?[0,n(a[1][1+c_],a,b[1])]:[1,n(a[1][1+f],a,b[1])]}function +hI(a,b){var +c=b[5],e=b[4],g=b[3],h=b[2],i=b[1],k=S(i,m(a[1][1+c4],a)),l=S(h,m(a[1][1+z],a)),o=S(g,m(a[1][1+f],a)),p=n(a[1][1+j],a,e);return[0,k,l,o,p,n(a[1][1+d],a,c)]}function +hJ(a,b){var +c=b[1],d=n(a[1][1+I],a,b[2]);return[0,n(a[1][1+e],a,c),d]}function +hK(a,b){return 0===b[0]?[0,n(a[1][1+c8],a,b[1])]:[1,n(a[1][1+c9],a,b[1])]}function +hL(a,b){var +c=b[5],e=b[4],g=b[3],h=b[2],i=n(a[1][1+c6],a,b[1]),k=n(a[1][1+f],a,h),l=n(a[1][1+j],a,g);return[0,i,k,l,e,n(a[1][1+d],a,c)]}function +hM(a,b){var +c=b[1],d=n(a[1][1+I],a,b[2]);return[0,n(a[1][1+e],a,c),d]}function +hN(a,b){return 0===b[0]?[0,n(a[1][1+db],a,b[1])]:[1,n(a[1][1+dc],a,b[1])]}function +hO(a,b){var +c=b[5],e=b[4],g=b[3],h=b[2],i=n(a[1][1+c$],a,b[1]),k=n(a[1][1+f],a,h),l=n(a[1][1+j],a,g);return[0,i,k,l,e,n(a[1][1+d],a,c)]}function +hP(a,b){return 0===b[0]?[0,n(a[1][1+f],a,b[1])]:[1,n(a[1][1+an],a,b[1])]}function +hQ(a,b){var +c=b[3],e=b[2],g=n(a[1][1+f],a,b[1]);return[0,g,e,n(a[1][1+d],a,c)]}function +hR(a,b){var +c=b[2],d=n(a[1][1+e],a,b[1]);return[0,d,S(c,m(a[1][1+h],a))]}function +hS(a,b){var +c=b[2],d=c[2],f=b[1],g=n(a[1][1+h],a,c[1]),i=[0,g,S(d,m(a[1][1+h],a))];return[0,n(a[1][1+e],a,f),i]}function +hT(a,b,c){return n(a[1][1+q],a,c)}function +hU(a,b){if(0!==b[0])return[1,n(a[1][1+dj],a,b[1])];var +c=b[1];return[0,K(c,m(a[1][1+df],a))]}function +hV(a,b,c){var +e=c[3],k=c[5],o=c[4],p=c[2],q=c[1];if(e)var +f=e[1],h=f[1],r=l(a[1][1+aE],a,h,f[2]),i=[0,[0,n(a[1][1+g],a,h),r]];else +var +i=0;var +s=S(p,m(a[1][1+aF],a)),t=S(q,m(a[1][1+j],a));return[0,t,s,i,o,n(a[1][1+d],a,k)]}function +hX(a,b){return 0===b[0]?[0,n(a[1][1+j],a,b[1])]:[1,n(a[1][1+f],a,b[1])]}function +hY(a,b,c){var +f=c[3],g=c[2],h=n(a[1][1+e],a,c[1]),i=n(a[1][1+dh],a,g);return[0,h,i,n(a[1][1+d],a,f)]}function +h0(a,b){return n(a[1][1+s],a,b)}function +h2(a,b){var +c=b[2],d=c[2],f=d[1],g=c[1],h=b[1],i=n(a[1][1+H],a,d[2]),j=[0,n(a[1][1+e],a,f),i],k=[0,n(a[1][1+F],a,g),j];return[0,n(a[1][1+e],a,h),k]}function +h3(a,b){var +c=b[2],d=c[2],f=d[1],g=c[1],h=b[1],i=n(a[1][1+q],a,d[2]),j=[0,n(a[1][1+e],a,f),i],k=[0,n(a[1][1+F],a,g),j];return[0,n(a[1][1+e],a,h),k]}function +h4(a,b){var +c=b[2],d=c[2],f=d[1],g=c[1],h=b[1],i=n(a[1][1+A],a,d[2]),j=[0,n(a[1][1+e],a,f),i],k=[0,n(a[1][1+F],a,g),j];return[0,n(a[1][1+e],a,h),k]}function +h5(a,b){var +c=b[2],d=c[2],f=d[1],g=c[1],h=b[1],i=n(a[1][1+ac],a,d[2]),j=[0,n(a[1][1+e],a,f),i],k=[0,n(a[1][1+F],a,g),j];return[0,n(a[1][1+e],a,h),k]}function +h6(a,b){var +c=b[1],d=[0,n(a[1][1+F],a,b[2][1])];return[0,n(a[1][1+e],a,c),d]}function +h7(a,b){var +c=b[4],d=b[3],e=b[2],f=b[1],g=K(f,m(a[1][1+dt],a));return[0,g,e,d,n(a[1][1+i],a,c)]}function +h8(a,b){var +c=b[3],d=b[2],e=b[1],f=K(e,m(a[1][1+aG],a));return[0,f,d,n(a[1][1+i],a,c)]}function +h9(a,b){var +c=b[1],e=b[4],f=b[3],g=b[2];if(0===c[0])var +h=c[1],d=[0,K(h,m(a[1][1+aG],a))];else +var +j=c[1],d=[1,K(j,m(a[1][1+dl],a))];return[0,d,g,f,n(a[1][1+i],a,e)]}function +h_(a,b){var +c=b[4],d=b[3],e=b[2],f=b[1],g=K(f,m(a[1][1+dn],a));return[0,g,e,d,n(a[1][1+i],a,c)]}function +h$(a,b){var +c=b[4],d=b[3],e=b[2],f=b[1],g=K(f,m(a[1][1+dq],a));return[0,g,e,d,n(a[1][1+i],a,c)]}function +ia(a,b){var +c=b[2],d=b[1];switch(c[0]){case +0:var +f=[0,n(a[1][1+dr],a,c[1])];return[0,n(a[1][1+e],a,d),f];case +1:var +g=[1,n(a[1][1+dp],a,c[1])];return[0,n(a[1][1+e],a,d),g];case +2:var +h=[2,n(a[1][1+dm],a,c[1])];return[0,n(a[1][1+e],a,d),h];case +3:var +i=[3,n(a[1][1+dk],a,c[1])];return[0,n(a[1][1+e],a,d),i];default:var +j=[4,n(a[1][1+du],a,c[1])];return[0,n(a[1][1+e],a,d),j]}}function +ib(a,b){var +c=b[3],e=b[1],f=n(a[1][1+ds],a,b[2]),g=n(a[1][1+d],a,c);return[0,n(a[1][1+h],a,e),f,g]}function +ic(a,b){return[0,n(a[1][1+d],a,b[1])]}function +id(a,b){var +c=b[3],e=b[2],f=n(a[1][1+j],a,b[1]),g=n(a[1][1+z],a,e);return[0,f,g,n(a[1][1+d],a,c)]}function +ie(a,b){var +c=b[3],e=b[4],f=b[2],g=l(a[1][1+r],a,[0,c],b[1]),h=n(a[1][1+p],a,f);return[0,g,h,c,n(a[1][1+d],a,e)]}function +ig(a,b){return n(a[1][1+U],a,b)}function +ih(a,b){var +c=b[2],e=n(a[1][1+p],a,b[1]);return[0,e,n(a[1][1+d],a,c)]}function +ii(a,b,c){var +f=c[1],k=c[4],l=c[3],o=c[2];if(0===f[0])var +i=[0,n(a[1][1+h],a,f[1])];else +var +j=f[1],r=j[1],s=n(a[1][1+q],a,j[2]),i=[1,[0,n(a[1][1+g],a,r),s]];var +p=m(a[1][1+u],a),t=mw(m(a[1][1+e],a),p,o);return[0,i,t,l,n(a[1][1+d],a,k)]}function +ij(a,b){return n(a[1][1+_],a,b)}function +ik(a,b){var +c=b[4],e=b[3],f=b[2],g=n(a[1][1+aD],a,b[1]),h=n(a[1][1+p],a,f),i=S(e,m(a[1][1+ap],a));return[0,g,h,i,n(a[1][1+d],a,c)]}function +il(a,b){switch(b[0]){case +0:var +d=b[1],m=d[1],o=n(a[1][1+aH],a,d[2]);return[0,[0,n(a[1][1+e],a,m),o]];case +1:var +f=b[1],p=f[1],q=n(a[1][1+aI],a,f[2]);return[1,[0,n(a[1][1+e],a,p),q]];case +2:var +g=b[1],r=g[1],s=n(a[1][1+aK],a,g[2]);return[2,[0,n(a[1][1+e],a,r),s]];case +3:var +h=b[1],t=h[1],u=n(a[1][1+aJ],a,h[2]);return[3,[0,n(a[1][1+e],a,t),u]];case +4:return[4,n(a[1][1+c],a,b[1])];case +5:var +i=b[1],v=i[1],w=n(a[1][1+U],a,i[2]);return[5,[0,n(a[1][1+e],a,v),w]];case +6:var +j=b[1],x=j[1],y=n(a[1][1+Y],a,j[2]);return[6,[0,n(a[1][1+e],a,x),y]];case +7:var +k=b[1],z=k[1],A=n(a[1][1+_],a,k[2]);return[7,[0,n(a[1][1+e],a,z),A]];default:var +l=b[1],B=l[1],C=n(a[1][1+$],a,l[2]);return[8,[0,n(a[1][1+e],a,B),C]]}}function +im(a,b,c){var +f=c[4],k=c[5],o=c[3],p=c[2],q=c[1],r=S(q,m(a[1][1+e],a));if(f)var +h=f[1],i=h[1],s=l(a[1][1+aE],a,i,h[2]),j=[0,[0,n(a[1][1+g],a,i),s]];else +var +j=0;var +t=S(o,m(a[1][1+aF],a)),u=S(p,m(a[1][1+dC],a));return[0,r,u,t,j,n(a[1][1+d],a,k)]}function +io(a,b){return n(a[1][1+$],a,b)}function +ip(a,b){var +f=b[2],g=f[4],i=f[3],j=f[2],k=f[1],l=b[1],o=S(k,m(a[1][1+h],a)),p=n(a[1][1+c],a,j),q=[0,o,p,i,n(a[1][1+d],a,g)];return[0,n(a[1][1+e],a,l),q]}function +iq(a,b){var +c=b[2],d=c[3],f=c[2],g=b[1],h=n(a[1][1+aO],a,c[1]),i=[0,h,n(a[1][1+p],a,f),d];return[0,n(a[1][1+e],a,g),i]}function +ir(a,b){var +c=b[2],d=c[3],f=c[2],g=c[1],h=b[1],j=K(g,m(a[1][1+dK],a)),k=S(f,m(a[1][1+dJ],a)),l=[0,j,k,n(a[1][1+i],a,d)];return[0,n(a[1][1+e],a,h),l]}function +is(c,b){var +e=b[4],f=b[3],g=b[2],a=b[1];function +h(a){var +b=n(c[1][1+aM],c,g),h=n(c[1][1+aa],c,f);return[0,a,b,h,n(c[1][1+d],c,e)]}return l(c[1][1+k],c,a,h)}function +it(c,b){var +e=b[5],f=b[4],g=b[3],a=b[2],i=n(c[1][1+h],c,b[1]);function +j(a){var +b=n(c[1][1+aM],c,g),h=n(c[1][1+aa],c,f);return[0,i,a,b,h,n(c[1][1+d],c,e)]}return l(c[1][1+k],c,a,j)}function +iu(a,b){var +c=b[2],d=c[2],f=c[1],g=n(a[1][1+e],a,b[1]),h=n(a[1][1+aj],a,f);return[0,g,[0,h,S(d,m(a[1][1+J],a))]]}function +iv(a,b){var +c=b[2],f=c[2],g=c[1],h=n(a[1][1+e],a,b[1]),i=K(g,m(a[1][1+dX],a));return[0,h,[0,i,n(a[1][1+d],a,f)]]}function +iw(c,b){var +f=b[3],g=b[7],h=b[6],i=b[5],j=b[4],a=b[2],o=n(c[1][1+aS],c,b[1]);function +p(a){var +b=f[1],k=n(c[1][1+M],c,f[2]),l=[0,n(c[1][1+e],c,b),k],p=m(c[1][1+C],c),q=m(c[1][1+e],c),r=S(j,function(a){return mw(q,p,a)}),s=m(c[1][1+C],c),t=m(c[1][1+e],c),u=K(i,function(a){return mw(t,s,a)}),v=S(h,m(c[1][1+aR],c));return[0,o,a,l,r,u,v,n(c[1][1+d],c,g)]}return l(c[1][1+k],c,a,p)}function +ix(a,b){return[0,n(a[1][1+d],a,b[1])]}function +iy(a,b){var +c=b[2],e=b[1],f=S(e,m(a[1][1+Z],a));return[0,f,n(a[1][1+d],a,c)]}function +iz(a,b){var +c=b[4],e=b[3],g=b[2],h=n(a[1][1+z],a,b[1]),i=n(a[1][1+f],a,g),j=n(a[1][1+f],a,e);return[0,h,i,j,n(a[1][1+d],a,c)]}function +iA(a,b){var +c=b[7],e=b[6],f=b[5],g=b[4],h=b[3],i=b[2],j=n(a[1][1+W],a,b[1]),k=n(a[1][1+aP],a,i),l=n(a[1][1+w],a,h),o=K(e,m(a[1][1+R],a)),p=n(a[1][1+v],a,f);return[0,j,k,l,g,p,o,n(a[1][1+d],a,c)]}function +iB(a,b){return typeof +b==="number"?b?1:0:[0,n(a[1][1+f],a,b[1])]}function +iC(a,b){return n(a[1][1+aQ],a,b)}function +iD(a,b){var +c=b[7],e=b[6],f=b[5],g=b[4],h=b[3],i=b[2],j=n(a[1][1+dS],a,b[1]),k=n(a[1][1+aP],a,i),l=n(a[1][1+w],a,h),o=K(e,m(a[1][1+R],a)),p=n(a[1][1+v],a,f);return[0,j,k,l,g,p,o,n(a[1][1+d],a,c)]}function +iE(a,b){return n(a[1][1+aQ],a,b)}function +iF(a,b){var +c=b[6],f=b[5],g=b[4],h=b[3],i=b[1],j=n(a[1][1+dV],a,b[2]),k=m(a[1][1+D],a),o=mw(m(a[1][1+e],a),k,h),l=K(f,m(a[1][1+R],a));return[0,i,j,o,g,l,n(a[1][1+d],a,c)]}function +iG(a,b){return n(a[1][1+x],a,b)}function +iH(a,b){switch(b[0]){case +0:var +c=b[1],f=c[1],h=n(a[1][1+dW],a,c[2]);return[0,[0,n(a[1][1+g],a,f),h]];case +1:var +d=b[1],i=d[1],j=n(a[1][1+dT],a,d[2]);return[1,[0,n(a[1][1+g],a,i),j]];default:var +e=b[1],k=e[1],l=n(a[1][1+dU],a,e[2]);return[2,[0,n(a[1][1+g],a,k),l]]}}function +iI(a,b){var +c=b[2],f=c[2],g=c[1],h=n(a[1][1+e],a,b[1]),i=K(g,m(a[1][1+d0],a));return[0,h,[0,i,n(a[1][1+d],a,f)]]}function +iL(a,b){return l(a[1][1+r],a,dgo,b)}function +iM(a,b){var +c=b[2],g=c[2],h=c[1],i=n(a[1][1+e],a,b[1]),j=n(a[1][1+f],a,h);return[0,i,[0,j,n(a[1][1+d],a,g)]]}function +iN(a,b){var +c=b[2],g=c[3],h=c[2],i=c[1],j=n(a[1][1+e],a,b[1]),k=n(a[1][1+f],a,i),l=S(h,m(a[1][1+J],a));return[0,j,[0,k,l,n(a[1][1+d],a,g)]]}function +iO(c,b){var +a=b[7],e=b[6],f=b[5],g=b[4],h=b[3],i=b[2],j=b[1],o=S(j,m(c[1][1+aS],c)),p=n(c[1][1+d],c,a);function +q(a){var +b=S(g,m(c[1][1+dY],c)),d=n(c[1][1+d2],c,i),h=S(f,m(c[1][1+aR],c));return[0,o,d,a,b,h,K(e,m(c[1][1+R],c)),p]}return l(c[1][1+k],c,h,q)}function +iP(a,b){return n(a[1][1+aT],a,b)}function +iS(a,b){return n(a[1][1+aT],a,b)}function +iV(a,b){var +c=m(a[1][1+u],a);return mw(m(a[1][1+e],a),c,b)}function +iW(a,b){var +c=b[2],f=c[2],g=c[1],h=n(a[1][1+e],a,b[1]),i=n(a[1][1+aN],a,g);return[0,h,[0,i,n(a[1][1+d],a,f)]]}function +iX(a,b){return l(a[1][1+T],a,0,b)}function +iY(a,b){if(0===b[0])return[0,n(a[1][1+h],a,b[1])];var +c=b[1],d=c[1],f=n(a[1][1+q],a,c[2]);return[1,[0,n(a[1][1+e],a,d),f]]}function +i0(a,b){var +c=b[2],d=c[4],f=c[3],g=c[2],h=c[1],i=n(a[1][1+e],a,b[1]),j=n(a[1][1+aO],a,h),k=n(a[1][1+aN],a,g);return[0,i,[0,j,k,n(a[1][1+Q],a,f),d]]}function +i2(a,b){var +c=b[2],d=c[3],f=c[2],g=c[1],h=b[1],j=K(g,m(a[1][1+dO],a)),k=S(f,m(a[1][1+dM],a)),l=[0,j,k,n(a[1][1+i],a,d)];return[0,n(a[1][1+e],a,h),l]}function +i3(a,b){return l(a[1][1+r],a,dgp,b)}function +i4(c,b){var +f=b[7],g=b[6],h=b[5],i=b[4],j=b[3],a=b[2],m=n(c[1][1+dP],c,b[1]);function +o(a){var +b=n(c[1][1+dN],c,j),k=n(c[1][1+aa],c,i),l=n(c[1][1+dR],c,h),o=n(c[1][1+d],c,g);return[0,m,a,b,k,l,o,n(c[1][1+e],c,f)]}return l(c[1][1+k],c,a,o)}function +i5(a,b){return S(b,m(a[1][1+f],a))}function +i6(a,b){var +c=b[2],f=b[3],g=b[1],h=S(g,m(a[1][1+d3],a)),i=c[1],j=n(a[1][1+d5],a,c[2]),k=[0,n(a[1][1+e],a,i),j];return[0,h,k,n(a[1][1+d],a,f)]}function +i7(a,b){return n(a[1][1+u],a,b)}function +i8(a,b){return 0===b[0]?[0,n(a[1][1+c],a,b[1])]:[1,n(a[1][1+cO],a,b[1])]}function +i9(a,b){var +c=b[2],d=c[2],f=c[1],g=n(a[1][1+e],a,b[1]),h=K(f,m(a[1][1+d6],a));return[0,g,[0,h,n(a[1][1+i],a,d)]]}function +i_(a,b,c){var +d=c[3],e=c[2],f=l(a[1][1+aU],a,b,c[1]);return[0,f,n(a[1][1+g],a,e),d]}function +ja(a,b,c){var +e=c[4],g=c[3],h=c[2],i=n(a[1][1+f],a,c[1]),j=S(h,m(a[1][1+ab],a)),k=n(a[1][1+aV],a,g);return[0,i,j,k,n(a[1][1+d],a,e)]}function +jb(a,b){var +c=b[2],e=b[1],f=S(e,m(a[1][1+Z],a));return[0,f,n(a[1][1+d],a,c)]}function +jc(a,b){var +c=b[2],d=n(a[1][1+V],a,b[1]);return[0,d,n(a[1][1+i],a,c)]}function +jd(a,b){var +c=b[4],e=b[3],g=b[1],h=n(a[1][1+f],a,b[2]),i=n(a[1][1+f],a,e);return[0,g,h,i,n(a[1][1+d],a,c)]}function +je(a,b){var +c=b[4],e=b[3],g=b[1],h=n(a[1][1+ad],a,b[2]),i=n(a[1][1+f],a,e);return[0,g,h,i,n(a[1][1+d],a,c)]}function +jf(a,b){var +c=b[3],e=b[2],g=n(a[1][1+f],a,b[1]),h=n(a[1][1+p],a,e);return[0,g,h,n(a[1][1+d],a,c)]}function +jg(a,b){return n(a[1][1+P],a,b)}function +jh(a,b){switch(b[0]){case +0:return[0,n(a[1][1+f],a,b[1])];case +1:return[1,n(a[1][1+an],a,b[1])];default:return[2,n(a[1][1+e],a,b[1])]}}function +ji(a,b){var +c=b[2],d=b[1],e=K(d,m(a[1][1+ec],a));return[0,e,n(a[1][1+i],a,c)]}function +jj(a,b){var +c=b[2],d=c[2],f=c[1],g=n(a[1][1+e],a,b[1]),h=K(f,m(a[1][1+de],a));return[0,g,[0,h,n(a[1][1+i],a,d)]]}function +jk(a,b){var +c=b[2],f=b[1];switch(c[0]){case +0:var +e=[0,n(a[1][1+ed],a,c[1])];break;case +1:var +e=[1,n(a[1][1+ea],a,c[1])];break;case +2:var +e=[2,n(a[1][1+d$],a,c[1])];break;case +3:var +e=[3,n(a[1][1+d_],a,c[1])];break;case +4:var +e=[4,n(a[1][1+d9],a,c[1])];break;case +5:var +e=[5,l(a[1][1+aU],a,f,c[1])];break;case +6:var +e=[6,n(a[1][1+dZ],a,c[1])];break;case +7:var +e=[7,n(a[1][1+dI],a,c[1])];break;case +8:var +e=[8,n(a[1][1+D],a,c[1])];break;case +9:var +e=[9,n(a[1][1+h],a,c[1])];break;case +10:var +e=[10,l(a[1][1+cN],a,f,c[1])];break;case +11:var +e=[11,n(a[1][1+ax],a,c[1])];break;case +12:var +e=[12,n(a[1][1+at],a,c[1])];break;case +13:var +e=[13,n(a[1][1+q],a,c[1])];break;case +14:var +e=[14,n(a[1][1+ac],a,c[1])];break;case +15:var +e=[15,n(a[1][1+d],a,c[1])];break;case +16:var +e=[16,n(a[1][1+A],a,c[1])];break;case +17:var +e=[17,n(a[1][1+H],a,c[1])];break;case +18:var +e=[18,n(a[1][1+bt],a,c[1])];break;case +19:var +e=[19,n(a[1][1+cb],a,c[1])];break;case +20:var +e=[20,n(a[1][1+ci],a,c[1])];break;case +21:var +e=[21,n(a[1][1+aq],a,c[1])];break;case +22:var +e=[22,n(a[1][1+cc],a,c[1])];break;case +23:var +e=[23,n(a[1][1+ca],a,c[1])];break;case +24:var +e=[24,n(a[1][1+b_],a,c[1])];break;case +25:var +e=[25,l(a[1][1+bR],a,f,c[1])];break;case +26:var +e=[26,n(a[1][1+bP],a,c[1])];break;case +27:var +e=[27,n(a[1][1+bq],a,c[1])];break;case +28:var +e=[28,n(a[1][1+bn],a,c[1])];break;case +29:var +e=[29,n(a[1][1+bk],a,c[1])];break;case +30:var +e=[30,n(a[1][1+am],a,c[1])];break;case +31:var +e=[31,n(a[1][1+bi],a,c[1])];break;case +32:var +e=[32,n(a[1][1+a$],a,c[1])];break;case +33:var +e=[33,n(a[1][1+be],a,c[1])];break;case +34:var +e=[34,n(a[1][1+a3],a,c[1])];break;case +35:var +e=[35,n(a[1][1+a1],a,c[1])];break;default:var +e=[36,n(a[1][1+aW],a,c[1])]}return[0,n(a[1][1+g],a,f),e]}function +jl(a){var +c=m(a[1][1+b],a);return function(a){return S(a,c)}}function +jm(a,b){var +c=b[3],d=b[2],e=b[1],f=K(e,m(a[1][1+y],a)),g=K(d,m(a[1][1+y],a));return[0,f,g,K(c,m(a[1][1+y],a))]}function +jn(a){var +b=m(a[1][1+L],a);return function(a){return S(a,b)}}function +jo(a,b){var +c=b[3],d=b[2],e=b[1],f=K(e,m(a[1][1+y],a));return[0,f,K(d,m(a[1][1+y],a)),c]}function +jp(a,b){var +c=b[2];return[0,n(a[1][1+g],a,b[1]),c]}function +jq(a,b){var +c=b[2];return[0,n(a[1][1+e],a,b[1]),c]}function +jr(a,b){var +c=b[2],f=b[1];switch(c[0]){case +0:var +d=[0,n(a[1][1+u],a,c[1])];break;case +1:var +d=[1,n(a[1][1+d7],a,c[1])];break;case +2:var +d=[2,n(a[1][1+d1],a,c[1])];break;case +3:var +d=[3,n(a[1][1+dQ],a,c[1])];break;case +4:var +d=[4,n(a[1][1+dG],a,c[1])];break;case +5:var +d=[5,n(a[1][1+dF],a,c[1])];break;case +6:var +d=[6,n(a[1][1+aK],a,c[1])];break;case +7:var +d=[7,n(a[1][1+aJ],a,c[1])];break;case +8:var +d=[8,n(a[1][1+dE],a,c[1])];break;case +9:var +d=[9,l(a[1][1+dD],a,f,c[1])];break;case +10:var +d=[10,n(a[1][1+aI],a,c[1])];break;case +11:var +d=[11,n(a[1][1+dB],a,c[1])];break;case +12:var +d=[12,l(a[1][1+dA],a,f,c[1])];break;case +13:var +d=[13,n(a[1][1+dz],a,c[1])];break;case +14:var +d=[14,n(a[1][1+dx],a,c[1])];break;case +15:var +d=[15,n(a[1][1+dy],a,c[1])];break;case +16:var +d=[16,n(a[1][1+aH],a,c[1])];break;case +17:var +d=[17,n(a[1][1+dw],a,c[1])];break;case +18:var +d=[18,n(a[1][1+dv],a,c[1])];break;case +19:var +d=[19,n(a[1][1+$],a,c[1])];break;case +20:var +d=[20,l(a[1][1+di],a,f,c[1])];break;case +21:var +d=[21,l(a[1][1+dg],a,f,c[1])];break;case +22:var +d=[22,n(a[1][1+dd],a,c[1])];break;case +23:var +d=[23,n(a[1][1+c5],a,c[1])];break;case +24:var +d=[24,n(a[1][1+da],a,c[1])];break;case +25:var +d=[25,n(a[1][1+c7],a,c[1])];break;case +26:var +d=[26,n(a[1][1+c1],a,c[1])];break;case +27:var +d=[27,n(a[1][1+cP],a,c[1])];break;case +28:var +d=[28,l(a[1][1+cM],a,f,c[1])];break;case +29:var +d=[29,n(a[1][1+cF],a,c[1])];break;case +30:var +d=[30,n(a[1][1+cj],a,c[1])];break;case +31:var +d=[31,n(a[1][1+br],a,c[1])];break;case +32:var +d=[32,n(a[1][1+bm],a,c[1])];break;case +33:var +d=[33,n(a[1][1+bh],a,c[1])];break;case +34:var +d=[34,n(a[1][1+bf],a,c[1])];break;case +35:var +d=[35,n(a[1][1+U],a,c[1])];break;case +36:var +d=[36,n(a[1][1+Y],a,c[1])];break;case +37:var +d=[37,n(a[1][1+I],a,c[1])];break;case +38:var +d=[38,n(a[1][1+aY],a,c[1])];break;default:var +d=[39,n(a[1][1+aX],a,c[1])]}return[0,n(a[1][1+e],a,f),d]}function +js(a,b){var +c=b[2];return[0,n(a[1][1+e],a,b[1]),c]}fC(ae,[0,eg,function(a,b){var +c=b[2],f=c[4],g=c[3],h=c[2],i=c[1],j=n(a[1][1+e],a,b[1]),k=n(a[1][1+bg],a,i),l=S(h,m(a[1][1+cD],a)),o=n(a[1][1+d],a,g);return[0,j,[0,k,l,o,K(f,m(a[1][1+y],a))]]},cD,js,j,jr,y,jq,ef,jp,L,jo,d,jn,b,jm,i,jl,f,jk,aV,jj,ed,ji,ec,jh,ea,jg,d$,jf,d_,je,d9,jd,u,jc,d7,jb,aU,ja,bR,i_,ab,i9,d6,i8,d5,i7,d4,i6,Q,i5,dQ,i4,dP,i3,dN,i2,dO,i0,aO,iY,aN,iX,dM,iW,dR,iV,d1,iS,dZ,iP,aT,iO,dY,iN,R,iM,aS,iL,d2,iI,d0,iH,aQ,iG,dW,iF,dV,iE,dT,iD,dS,iC,aP,iB,dU,iA,dI,iz,dG,iy,dF,ix,aK,iw,aR,iv,dX,iu,aJ,it,dL,is,aM,ir,dK,iq,dJ,ip,dE,io,dD,im,dC,il,aI,ik,dB,ij,dA,ii,dz,ih,dx,ig,aH,ie,dw,id,dv,ic,$,ib,ds,ia,dr,h$,dp,h_,dm,h9,dk,h8,du,h7,aG,h6,dq,h5,dn,h4,dl,h3,dt,h2,F,h0,di,hY,dh,hX,dg,hV,aF,hU,aE,hT,df,hS,dj,hR,dd,hQ,de,hP,da,hO,c$,hN,db,hM,c7,hL,c6,hK,c8,hJ,c5,hI,c4,hH,c_,hG,aB,hF,cX,hE,cU,hD,cT,hC,N,hA,Z,hz,bW,hx,bT,hw,bS,hv,bX,hu,b8,ht,b0,hs,b7,hp,M,ho,bU,hn,bV,hm,b9,hl,cE,hk,aA,hj,cS,hi,cd,hh,J,hg,k,hf,a8,he,ai,hd,a9,hc,C,ha,az,g$,bQ,g_,ap,g9,b$,g8,a4,g7,ag,g6,a7,g5,a6,g4,a5,g3,ck,g2,aa,g1,ao,g0,bu,gZ,bd,gY,bc,gX,bb,gW,ba,gV,eb,gU,dH,gT,cG,gS,a2,gR,cC,gQ,q,gP,A,gM,H,gL,ac,gK,bt,gJ,cb,gI,c,gH,cO,gG,p,gF,w,gE,al,gD,a_,gC,c1,gB,D,gA,ei,gz,cW,gy,P,gw,cZ,gv,c0,gu,cY,gs,cV,gr,c2,gq,c3,gp,d8,go,aD,gn,s,gm,ak,gl,aj,gk,G,gj,h,gi,_,gh,cF,gg,W,gf,aL,ge,cN,gd,cQ,gc,cR,gb,cP,ga,cM,f$,cI,f_,cH,f9,bs,f8,cK,f7,cL,f6,cJ,f5,ax,f4,at,f3,cn,f2,ct,f1,co,f0,cm,fZ,cB,fY,cA,fX,cz,fW,cy,fV,cx,fU,cv,fT,cw,fS,ay,fQ,cu,fP,au,fO,cl,fN,aw,fM,av,fL,cr,fK,cs,fJ,ar,fI,as,fH,cp,fG,cq,fF,B,fE,cj,fD,ci,fB,aq,fA,bP,fz,cg,fx,ce,fw,ch,fv,cf,fu,cc,ft,ca,fs,b_,fr,bY,fq,bZ,fo,x,fn,b1,fm,b3,fl,b6,fk,b4,fj,b2,fi,b5,fh,Y,fg,dy,ff,aC,fe,aZ,fd,d3,fc,dc,fb,c9,fa,T,e$,ad,e_,t,e9,r,e8,bv,e7,bH,e6,bJ,e5,bG,e4,bF,e3,bB,e2,by,e1,bA,e0,bE,eZ,bC,eY,bD,eX,bx,eW,bz,eV,bw,eU,bO,eT,bN,eS,bM,eR,bL,eQ,bK,eP,eh,eO,bI,eN,z,eM,br,eL,bq,eK,bg,eJ,V,eI,bo,eH,an,eG,bp,eF,bn,eE,bm,eD,bl,eC,bk,eB,am,eA,bj,ez,bi,ey,bh,ex,bf,ew,a$,ev,be,eu,a3,et,a1,es,I,er,a0,eq,af,ep,v,eo,aY,en,aX,em,U,el,ee,ek,aW,ej]);return function(a,b){return fp(b,ae)}},dgg,dgf]);var +dgv=gP(dgs,function(c){var +a=kC(c,dgr,dgu),d=a[31],e=a[sG],f=a[96],h=a[97],i=a[Al],b=fG(c,0,dgt,dgq,lt,1),g=b[zy],j=b[1];function +k(a,b){var +c=b[2],h=b[1];switch(c[0]){case +17:var +f=c[1],i=f[4],j=f[3];n(a[1][1+d],a,f[1]);n(a[1][1+d],a,j);n(a[1][1+d],a,i);return b;case +18:a[1+e]=[0,[0,h,c[1]],a[1+e]];return m(m(g,a),b);default:return m(m(g,a),b)}}function +l(a){return U(a[1+e])}function +o(a,b){return b}fC(c,[0,h,function(a,b){return b},f,o,i,l,d,k]);return function(a,b){var +d=fp(b,c);m(j,d);d[1+e]=0;return fH(b,d,c)}}),NV=function(a){var +b=m(dgv[1],0);n(D(b,i0,hb),b,a);return m(D(b,-643954222,i1),b)},dgx=rp(dgw),dgz=rp(dgy),aag=function(a,b){var +q=a[2],f=q[1];if(f){var +r=f[1][2];if(r[2]&&!f[2]&&!q[2]){var +d=r[1][2],e=0,c=0,h=0;for(;;){var +i=h?c+1|0:c;if(Z(d)j[1])f=1}else if(2>b)f=1;if(f)var +k=n(a[1][1+e],a,1),d=[0,a[1+g],k];else +var +d=[0,1,n(a[1][1+i],a,dhE)];var +o=d[2];if(d[1])m(o,l);return c}function +Y(a,b,c){var +d=c[1];if(!a[1+g]&&2>d)return c;return n(m(Q,a),b,c)}function +Z(a,b,c){if(a[1+g])l(a[1][1+e],a,0,c[1]);return n(m(R,a),b,c)}function +_(a,b,c){if(a[1+g])l(a[1][1+e],a,0,c[1]);return n(m(S,a),b,c)}function +$(a,b,c){if(a[1+g])l(a[1][1+e],a,0,c[1]);return n(m(U,a),b,c)}function +aa(a,b){return b}function +ab(a,b,c){var +d=c[1];switch(c[3]){case +0:n(a[1][1+E],a,d);break;case +1:n(a[1][1+o],a,d);break;default:n(a[1][1+p],a,d)}return n(m(P,a),b,c)}function +ac(a,b,c){var +d=c[2];if(b&&!b[1]){switch(d[0]){case +2:n(a[1][1+k],a,d[1][1]);break;case +3:break;default:jp(m(m(N,a),b),c)}return c}return n(m(T,a),b,c)}function +ad(a,b){var +c=a[1+f];a[1+f]=0;var +d=m(m(O,a),b);a[1+f]=c;return d}function +ae(a){return m(a[1][1+B],a)}function +af(a,b){var +d=a[1+f],c=d||a[1+j];return c?m(m(H,a),b):c}function +ag(a,b){var +d=a[1+f],c=d||a[1+j];return c?m(m(L,a),b):c}function +ah(a,b){var +c=a[1+f];return c?m(m(J,a),b):c}function +ai(a,b){var +c=a[1+f];return c?m(m(K,a),b):c}function +aj(a,b,c){var +d=a[1+f];return d?n(m(M,a),b,c):d}function +ak(a,b,c){var +d=a[1+f];return d?n(m(I,a),b,c):d}function +al(a,b,c){var +e=[0,c,[0,b]];function +f(a){return[0,e,a]}return n(a[1][1+d],a,f)}fC(h,[0,k,function(a,b){var +c=[0,b,0];function +e(a){return[0,c,a]}return n(a[1][1+d],a,e)},e,al,i,ak,C,aj,o,ai,p,ah,D,ag,F,af,z,ae,s,ad,q,ac,A,ab,u,aa,c,$,r,_,t,Z,y,Y,w,X,x,W,v,V]);return function(a,b,c,d,e){var +i=fp(b,h);i[1+g]=e;i[1+j]=c;l(G,i,c,d);i[1+f]=1;return fH(b,i,h)}}),aai=function(d){var +b=function +c(a,b){return c.fun(a,b)},a=function +b(a){return b.fun(a)};h(b,function(a,b){m(f(a),dhF);n(f(a),dhH,dhG);var +h=b[1];Bl(function(a){return m(d[1],a)},a,h);m(f(a),dhI);m(f(a),dhJ);n(f(a),dhL,dhK);var +j=b[2];m(m(f(a),dhM),j);m(f(a),dhN);m(f(a),dhO);n(f(a),dhQ,dhP);var +k=b[3];m(m(f(a),dhR),k);m(f(a),dhS);m(f(a),dhT);n(f(a),dhV,dhU);var +c=b[4];if(typeof +c==="number")switch(c){case +0:i(a,dgS);break;case +1:i(a,dgT);break;case +2:i(a,dgU);break;case +3:i(a,dgV);break;case +4:i(a,dgW);break;case +5:i(a,dgX);break;case +6:i(a,dgY);break;case +7:i(a,dgZ);break;case +8:i(a,dg0);break;case +9:i(a,dg1);break;case +10:i(a,dg2);break;case +11:i(a,dg3);break;case +12:i(a,dg4);break;case +13:i(a,dg5);break;case +14:i(a,dg6);break;case +15:i(a,dg7);break;case +16:i(a,dg8);break;default:i(a,dg9)}else if(0===c[0]){var +e=c[1];m(f(a),dg_);n(f(a),dha,dg$);m(m(f(a),dhb),e);m(f(a),dhc);m(f(a),dhd)}else{var +g=c[1];m(f(a),dhe);n(f(a),dhg,dhf);m(m(f(a),dhh),g);m(f(a),dhi);m(f(a),dhj)}m(f(a),dhW);return m(f(a),dhX)});h(a,function(a){return n(z(dhY),b,a)});function +E(a,b){var +i=gl(b[1]),e=gl(a[1]),c=i;for(;;){if(!e)return c?-1:0;if(!c)return 1;var +g=c[2],h=e[2],f=n(d[3],e[1],c[1]);if(0!==f)return f;var +e=h,c=g}}var +e=[0,b,a,E,function(a,b){var +e=b[1],f=m(d[4],a),g=e[2],c=m(f,e[1]);return c?c:p0(g,f)}],j=h_([0,e[3]]),c=function +b(a){return b.fun(a)},v=function +b(a){return b.fun(a)};h(c,function(a){function +b(a){return m(e[1],a)}return n(d[7][48],b,a)});h(v,function(a){return n(z(dhZ),c,a)});var +p=function +c(a,b){return c.fun(a,b)},w=function +b(a){return b.fun(a)};h(p,function(a,b){m(f(a),dh0);n(f(a),dh2,dh1);var +h=b[1];m(m(f(a),dh3),h);m(f(a),dh4);m(f(a),dh5);n(f(a),dh7,dh6);var +g=b[2];if(g){var +j=g[1];i(a,dh8);m(m(f(a),dh9),j);i(a,dh_)}else +i(a,dh$);m(f(a),dia);m(f(a),dib);n(f(a),did,dic);var +k=b[3];m(m(axe(function(a){return m(e[1],a)}),a),k);m(f(a),die);m(f(a),dif);n(f(a),dih,dig);var +l=b[4];m(m(c,a),l);m(f(a),dii);m(f(a),dij);n(f(a),dil,dik);var +o=b[5];m(m(aw_,a),o);m(f(a),dim);m(f(a),din);n(f(a),dip,dio);var +p=b[6];m(m(d[1],a),p);m(f(a),diq);return m(f(a),dir)});h(w,function(a){return n(z(dis),p,a)});var +x=[0,p,w],q=function +c(a,b){return c.fun(a,b)},y=function +b(a){return b.fun(a)};h(q,function(a,b){m(f(a),dit);n(f(a),div,diu);var +c=b[1];m(m(f(a),diw),c);m(f(a),dix);m(f(a),diy);n(f(a),diA,diz);var +d=b[2];m(m(n(bdP,auT,function(a){return m(x[1],a)}),a),d);m(f(a),diB);return m(f(a),diC)});h(y,function(a){return n(z(diD),q,a)});function +F(a){var +b=a[2],c=d[8][1];return l(p3,function(a,b,c){var +e=b[4];function +f(a,b,c){return n(d[8][4],a,c)}return l(d[7][12],f,e,c)},b,c)}function +A(a){var +b=a[2],c=d[7][1];return l(p3,function(a,b,c){return l(d[7][32],0,b[4],c)},b,c)}var +r=[fy,diE,ge(0)];function +G(a){var +b=A(a),c=j[1];function +e(a,b,c){var +e=n(j[27],b,c);if(e){var +f=n(d[8][4],a,e[1]);return o(j[31],0,b,f,c)}var +g=m(d[8][5],a);return o(j[31],0,b,g,c)}return l(d[7][12],e,b,c)}function +C(a,e){var +b=a[2],c=0;return l(p3,function(a,b,c){return c?c:n(d[7][27],e,b[4])},b,c)}function +s(a,b){var +c=C(a,b);if(c)return c[1];throw B([0,r,a,b],1)}function +H(a,b){var +c=s(a,b);return n(e[4],b,c)}function +t(a,b,f){var +c=a[2],g=b?b[1]:0,h=d[8][1];return l(p3,function(a,b,c){var +h=b[4];function +i(a,b,c){if(g&&n(e[4],a,b))return c;return 0===n(e[3],f,b)?n(d[8][4],a,c):c}return l(d[7][12],i,h,c)},c,h)}function +I(a,f){var +b=a[2];return l(p3,function(g,b,c){var +a=b[4];function +h(a,b,c){return n(e[4],a,b)?c:0===n(e[3],f,b)?n(iz,g,c):c}return l(d[7][12],h,a,c)},b,ik)}function +J(a,b,c){try{var +f=t(a,b,s(a,c));return f}catch(f){var +e=fk(f);if(e[1]===r)return d[8][1];throw B(e,0)}}function +L(a,b){var +c=t(a,diF,b);return m(d[8][2],c)}function +k(a,b){try{var +d=n(ui,b,a[2]);return d}catch(f){var +c=fk(f);if(c===gf)return X(P(diI,P(g+b,diH)));throw B(c,0)}}function +N(a,b,c){var +d=c;for(;;){var +e=d[2];if(!e)return 0;var +f=e[1];if(f===b)return 1;var +d=k(a,f)}}function +O(a,d){var +b=0,c=a[2];return U(l(p3,function(a,b,c){return ao(b[6],d)?[0,a,c]:c},c,b))}function +Q(a,f,d){var +b=[0,0,k(a,0)],c=a[2];return l(p3,function(a,b,c){var +e=c[2],g=c[1];if(n(d,f,b[6])&&n(d,b[6],e[6]))return[0,a,b];return[0,g,e]},c,b)[1]}function +R(a,c){var +b=a[2];return n(awS,function(a,b){return n(d[7][3],c,b[4])},b)}function +S(a,b,c,d){var +e=c,f=d;for(;;){var +g=k(a,e),h=l(b,e,g,f),i=g[2];if(!i)return h;var +e=i[1],f=h}}function +u(a){return l(p3,function(a,b,c){var +d=b[2];if(!d)return c;var +e=d[1],f=n(lT,e,c),g=f?f[1]:0;return o(g5,0,e,[0,a,g],c)},a,hc)}function +T(a){var +b=a[2],e=u(b);function +c(a){var +d=n(lT,a,e),f=d?jk(c,d[1]):0;return[0,n(ui,a,b),f]}return c(0)}function +V(a){var +d=a[2],i=u(d);function +e(a,b,c){var +j=n(ui,a,d)[3],f=l(xV,[0,function(a,b,c){return[0,b]}],j,b),g=o(g5,0,a,f,c),h=n(lT,a,i);if(!h)return g;var +k=h[1];return fs(k,g,function(a,b){return e(b,f,a)})}return e(0,at,hc)}function +D(a){var +b=a[1],e=K(a[2],D),h=[0,g2,g2],f=M(function(a,b){var +c=b[1],d=c[2],e=a[1],f=n(aw6,c[3],a[2]);return[0,n(aw6,d,e),f]},h,e),c=b[3],i=f[2],j=f[1];function +g(d){return n(axb,function(a,b){return af(a,d)},c)}var +k=b[5],o=b[4];function +p(a,b,c){var +d=b[3];return g(d)?c:n(mq,d,c)}var +q=m(n(d[7][12],p,o),k),r=m(n(aw9,function(a,b){return g(a)?b:n(mq,a,b)},j),q);return[0,[0,c,r,l(j6,function(a,b,c){return n(mq,a,c)},c,i)],e]}return[0,d,e,j,c,v,x,q,y,F,A,G,r,C,s,H,t,I,J,L,diG,k,N,O,Q,R,S,u,T,V,D]},iD=aai(il),iE=aai(T),iF=aai(aHV),aaj=iF[2],aak=iE[2],kF=[0,iE[1],[0,aak[1],aak[2],aak[3]],iE[3],iE[4],iE[5],iE[6],iE[7],iE[8],iE[12],iE[20],iE[21],iE[22],iE[23],iE[24],iE[9],iE[10],iE[11],iE[14],iE[13],iE[15],iE[16],iE[17],iE[18],iE[19],iE[25],iE[26],iE[28],iE[30],iE[29]],aal=iD[2],wd=[0,iD[1],[0,aal[1],aal[2],aal[3]],iD[3],iD[4],iD[5],iD[6],iD[7],iD[8],iD[12],iD[20],iD[21],iD[22],iD[23],iD[24],iD[9],iD[10],iD[11],iD[14],iD[13],iD[15],iD[16],iD[17],iD[18],iD[19],iD[25],iD[26],iD[28],iD[30],iD[29]],FO=[0,0,0,0],aao=[0,0,0,0],FP=[0,0,0,0],FQ=[0,0,0,0],diJ=[0,iF[1],[0,aaj[1],aaj[2],aaj[3]],iF[3],iF[4],iF[5],iF[6],iF[7],iF[8],iF[12],iF[20],iF[21],iF[22],iF[23],iF[24],iF[9],iF[10],iF[11],iF[14],iF[13],iF[15],iF[16],iF[17],iF[18],iF[19],iF[25],iF[26],iF[28],iF[30],iF[29]],NZ=function(a,b){var +e=[];if(!FO[1])pZ(aan,function(b){var +a=fR(b,aam),d=a[53],e=a[Dq],f=a[2],g=a[50],h=a[tN],c=fG(b,NY,0,NX,jB,0),i=c[1],j=c[94],k=c[O];function +o(a,b,c){n(a[1][1+d],a,1);return c}function +p(a,b){return 1===m(a[1][1+e],a)?b:m(m(k,a),b)}fC(b,[0,h,function(a,b){if(1===m(a[1][1+e],a))return b;var +c=b[2];if(5===c[0]){var +f=c[1][1][2];if(9===f[0]&&!q(f[1][2][1],f8)){n(a[1][1+d],a,1);return b}}return m(m(j,a),b)},g,p,f,o]);return function(d){return function(a){var +c=fp(a,b);l(i,d[2],c,0);return fH(a,c,b)}}},FO);var +f=[0,0,jB[4]],v=FO[1],w=FO[2];h(e,[0,m(FO[1],f),w,v,f]);var +g=[0,[0,0,hc]],y=0;function +j(a,b){var +c=b;for(;;){if(!c)return 0;var +e=c[2],d=n(jK,a,c[1]);if(d)return[0,d[1]];var +c=e}}function +z(a){return a?a[1]:at}var +k=[0,y,function(i,d,c){var +b=U(c),e=[0,0,at],a=M(function(a,b){var +e=b[1],c=e[2][1],f=e[1],d=a[2],g=a[1],j=b[2],h=n(jK,c,d);if(!h)return[0,[0,c,g],o(fN,0,c,[0,j,g9(f)],d)];var +i=h[1],k=i[1];return[0,g,o(fN,0,c,[0,k,kE(f,i[2])],d)]},e,b),f=a[2],g=a[1],h=jk(function(a){var +b=n(r4,a,f),c=b[1];return[0,a,[0,c,$P(b[2])]]},g);return[0,M(function(a,b){var +e=b[2],c=b[1],g=e[2],h=e[1],f=j(c,d),k=f?f[1][2]:m(i,0);return o(fN,0,c,[0,g,k,c,h],a)},at,h),d]},j,z];if(!aao[1]){var +c=j3(aan),I=fR(c,aam)[wR],J=fG(c,NY,0,NX,jB,0)[1];s6(c,I,function(a,b){return b?0:b});var +L=function(a){var +b=fp(0,c);l(J,a[2],b,0);return fH(0,b,c)};j4(c);aao[1]=L}var +r=m(aao[1],[0,0,jB[4]]);function +A(a){var +b=n(D(r,Am,jw),r,a);return[0,b!==a?1:0,b]}var +d=[0,b[1][5]],s=[];function +B(a){var +b=a[2],c=a[1];switch(b[0]){case +0:var +e=b[1];return[0,e[2],[0,c,[0,[0,e[1],d,e[3]]]]];case +1:var +f=b[1];return[0,f[2],[0,c,[1,[0,f[1],d,f[3]]]]];case +2:var +g=b[1];return[0,g[2],[0,c,[2,[0,g[1],d,g[3]]]]];default:return[0,d,a]}}if(!FP[1])pZ(aan,function(b){var +d=fK(b,di3),a=fR(b,aam),f=a[26],g=a[ah],h=a[ld],c=fG(b,NY,0,NX,jB,0),e=c[2],i=c[1];function +j(a,b){var +c=b[2],d=c[4],e=c[1],f=b[1];return[0,f,[0,e,n(a[1][1+g],a,c[2]),0,d]]}fC(b,[0,f,function(a,b){var +c=a[1+d];return 0===b[0]?b:(a[1+e]=[0,b[1][2],a[1+e]],[0,c[1][1][5]])},h,j]);return function(e){var +f=e[1];return function(a){var +c=fp(a,b);l(i,e[2],c,0);c[1+d]=f;return fH(a,c,b)}}},FP);var +t=[0,[0,b],jB[4]],C=FP[1],F=FP[2];h(s,[0,m(FP[1],t),F,C,t]);var +i=[];if(!FQ[1])pZ(diL,function(g){var +r=fK(g,diN),k=fK(g,diO),q=fK(g,diP),p=fK(g,diQ),a=kC(g,diK,diM),j=a[2],J=a[11],L=a[21],t=a[26],N=a[27],w=a[28],f=a[30],A=a[40],O=a[46],e=a[58],P=a[59],Q=a[60],R=a[61],T=a[62],V=a[85],W=a[iK],X=a[iJ],Y=a[k$],B=a[ks],c=a[sO],i=a[q0],C=a[oE],F=a[qd],Z=a[qT],_=a[tW],d=a[wN],$=a[rT],G=a[tU],aa=a[tH],H=a[HZ],ab=a[Al],ac=a[t7],ad=a[zI],ae=a[vi],af=a[DK],ag=a[w6],u=a[tP],ah=a[ve],v=a[alB],y=a[I2],z=a[T2],h=a[IA],s=a[aY_],ai=a[5],aj=a[16],ak=a[29],al=a[47],am=a[48],an=a[53],ao=a[71],ap=a[79],aq=a[97],ar=a[hq],as=a[jw],at=a[E],au=a[lj],av=a[k7],aw=a[qf],ax=a[lE],ay=a[lg],az=a[kc],aA=a[vp],aB=a[t3],aC=a[l_],aD=a[jH],aE=a[q5],aF=a[rO],aG=a[q4],aH=a[lN],aI=a[tE],aJ=a[qb],aK=a[t_],aL=a[tN],aM=a[w0],aN=a[w4],aO=a[t8],aP=a[xe],aQ=a[xg],aR=a[zD],aS=a[Dz],aU=a[DQ],aV=a[zk],aW=a[qm],aX=a[ld],aZ=a[lf],a0=a[zq],a1=a[z4],a2=a[wZ],a3=a[wW],a4=a[zK],a5=a[HT],a6=a[w2],a7=a[va],a8=a[sP],a9=a[IY],b=fG(g,NY,0,NX,jB,0),I=b[16],a_=b[1],a$=b[24],ba=b[31],bb=b[64],bc=b[78],bd=b[99],be=b[iQ],bf=b[hq],bg=b[jI],bh=b[kO];function +bi(a,b,c){return a[1+q]?n(m(bc,a),b,c):c}function +bj(d,b,c){var +a=c[3],f=c[6],g=c[5],h=c[4],i=a[2],j=a[1],k=c[2];n(d[1][1+af],d,c[1]);var +p=aY(h,0,function(a){var +b=a[2],c=b[2];n(d[1][1+C],d,b[1]);return c}),q=pr(g,function(a){var +b=a[2],c=b[2];n(d[1][1+C],d,b[1]);return c}),r=aY(f,0,function(a){var +b=a[2][1];return pr(b,function(a){var +b=a[2],c=b[2];n(d[1][1+L],d,b[1]);return c})});function +s(a){S(p,m(d[1][1+t],d));K(q,m(d[1][1+t],d));K(r,m(d[1][1+t],d));l(d[1][1+W],d,j,i);return 0}o(d[1][1+e],d,0,s,k);return c}function +bk(a,b,c){S(c,m(a[1][1+af],a));return 0}function +bl(d,b,c){var +a=c[6],f=c[5],g=c[4],h=c[3],i=c[2],j=c[1];K(a,m(d[1][1+a5],d));var +k=aY(g,0,function(a){var +b=a[2],c=b[2];n(d[1][1+G],d,b[1]);return c});l(d[1][1+ae],d,b,j);var +p=aY(f,0,function(a){var +b=a[2][1];return pr(b,function(a){var +b=a[2],c=b[2];n(d[1][1+L],d,b[1]);return c})});function +q(a){S(k,m(d[1][1+t],d));K(p,m(d[1][1+t],d));n(d[1][1+a6],d,i);return 0}o(d[1][1+e],d,0,q,h);return c}function +bm(d,b,c){var +a=c[1],e=a?Bv([0,a[1],9]):rs,f=0;function +g(a){n(m(ba,d),b,c);return 0}x(d[1][1+j],d,diR,b,e,g,f);return c}function +bn(c,b){var +a=b[2],d=a[1],g=a[2],h=[0,[0,d[1],[0,[0,d,0],0]]];n(c[1][1+f],c,a[3]);function +i(a){n(c[1][1+f],c,g);return 0}o(c[1][1+e],c,0,i,h);return b}function +bo(d,b,c){var +f=c[3],g=c[2],a=c[1];function +h(a){n(d[1][1+aa],d,g);n(d[1][1+H],d,f);return 0}o(d[1][1+e],d,0,h,a);return c}function +bp(d,b,c){var +a=c[2][2],f=c[3],g=a[3],h=a[2],i=a[1],j=c[1];function +k(a){S(i,m(d[1][1+aE],d));K(h,m(d[1][1+aH],d));S(g,m(d[1][1+aG],d));n(d[1][1+aC],d,f);return 0}o(d[1][1+e],d,0,k,j);return c}function +bq(d,b,c){var +a=Bt(b,c);if(a){n(d[1][1+an],d,[0,b,a[1]]);return c}n(m(bb,d),b,c);var +e=c[2];function +f(a){n(d[1][1+w],d,e);return 0}n(d[1][1+i],d,f);return c}function +br(d,b,c){var +e=c[2];l(d[1][1+V],d,[0,c[3]],c[1]);function +a(a){n(d[1][1+w],d,e);return 0}n(d[1][1+i],d,a);return c}function +bs(a,b,c){return o(a[1][1+d],a,1,b,c)}function +bt(a,b,c){return o(a[1][1+d],a,0,b,c)}function +bu(f,b,c,d){var +i=f[1+k],t=f[1+r];if(i)var +a=m(t[1][1],0),p=l(D(a,iL,kv),a,n(D(a,Rm,kL),a,c),d);else +var +p=i;if(1-p){var +g=d[7],q=d[2],h=d[1],u=d[8],v=d[6],w=d[5],y=d[3],z=q[2][1],C=h?Bv([0,h[1],8]):rs;if(w)var +E=0===g[0]?g[1]:g[1][1],s=[0,E];else +var +s=0;var +F=0,G=function(a){if(b)m(Bj(m(f[1][1+_],f)),h);else{var +i=h1(z);o(f[1][1+A],f,c,i,h)}function +d(a){return fU(f[1][1+B],f,b,c,s,q,g,v,y)}return o(f[1][1+e],f,0,d,u)};x(f[1][1+j],f,diS,c,C,G,F)}return d}function +bv(d,b,c){var +g=d[1+k],q=d[1+r];if(g)var +a=m(q[1][1],0),h=l(D(a,iL,iJ),a,n(D(a,827310611,k8),a,b),c);else +var +h=g;if(1-h){var +f=c[7],j=c[2],s=c[8],t=c[6],u=c[5],v=c[3],w=c[1],x=h1(j[2][1]);o(d[1][1+A],d,b,x,w);if(u)var +y=0===f[0]?f[1]:f[1][1],p=[0,y];else +var +p=0;var +z=function(a){return fU(d[1][1+B],d,0,b,p,j,f,t,v)},C=[0,m(d[1][1+i],d)];o(d[1][1+e],d,C,z,s)}return c}function +bw(d,b,c){var +f=d[1+k],h=d[1+r];if(f)var +a=m(h[1][1],0),g=l(D(a,iL,gN),a,n(D(a,aZh,k$),a,b),c);else +var +g=f;if(1-g){var +j=c[4],p=c[3],q=c[2];n(d[1][1+ab],d,c[1]);var +s=function(a){n(d[1][1+aa],d,p);function +b(a){n(d[1][1+H],d,j);return 0}return n(d[1][1+i],d,b)},t=[0,m(d[1][1+i],d)];o(d[1][1+e],d,t,s,q)}return c}function +bx(d,b,c){var +f=d[1+k],h=d[1+r];if(f)var +a=m(h[1][1],0),g=l(D(a,iL,jX),a,n(D(a,apE,hB),a,b),c);else +var +g=f;if(1-g){var +j=c[5],q=c[4],s=c[3],t=c[2];n(d[1][1+ab],d,c[1]);var +u=function(a){o(d[1][1+ac],d,b,j,s);var +c=d[1+p];if(!c)return c;function +e(a){n(d[1][1+H],d,q);return 0}return n(d[1][1+i],d,e)},v=[0,m(d[1][1+i],d)];o(d[1][1+e],d,v,u,t)}return c}function +by(e,b,c,d){var +h=e[1+r],i=d[2][1];fo(function(a){var +b=a[2][3];return aT(b,function(a){n(e[1][1+G],e,a);return 0})},i);var +g=m(h[2][1],0),l=n(D(g,apZ,E),g,d),s=kf(m(D(g,mY,lj),g));fV(s,function(a){n(e[1][1+f],e,a);return 0});var +a=o(wc[1],0,e[1+k],e[1+q],e[1+p]);jp(m(D(a,apZ,gx),a),d);jp(m(D(a,a4h,gO),a),c);var +t=m(D(a,mY,ju),a),u=0;function +v(a){jp(m(e[1][1+a1],e),l);return jp(m(e[1][1+ad],e),c)}return x(e[1][1+j],e,0,c[1],t,v,u)}function +bz(e,b,c,d){return aT(d,function(a){n(e[1][1+_],e,a);return 0})}function +bA(a,b){return b}function +bB(a){return m(a[1][1+f],a)}function +bC(c,b){var +a=b[2],d=b[4],e=b[3];n(c[1][1+f],c,b[1]);n(c[1][1+$],c,a);var +g=NV(a),h=K(g,function(a){return a[2][1]}),i=a[1];function +j(a){n(c[1][1+f],c,e);return 0}o(c[1][1+P],c,j,i,h);n(c[1][1+f],c,d);return b}function +bD(a,b){return n(a[1][1+u],a,b)}function +bE(e,b,c,d){if(!e[1+p])return m(b,0);fV(d,function(a){var +b=a[2],c=b[5];n(e[1][1+N],e,b[2]);S(c,m(e[1][1+f],e));return 0});var +a=fs(d,rs,function(a,b){return[0,[0,b[2][1],diT],a]}),g=0;function +h(a){fV(d,function(a){n(e[1][1+ah],e,a[2][1]);return 0});return m(b,0)}return x(e[1][1+j],e,0,c,a,h,g)}function +bF(a,b){return m(b,0)}function +bG(e,b,c,d){var +g=b?b[1]:function(a){return m(a,0)},a=aY(d,0,function(a){return a[2][1]});function +h(a){if(!a)return m(c,0);var +d=a[1],b=d[2],i=b[1],k=a[2],l=b[5],o=b[4],p=b[2],q=d[1];m(g,function(a){n(e[1][1+N],e,p);return 0});n(e[1][1+ai],e,o);m(g,function(a){S(l,m(e[1][1+f],e));return 0});var +r=Bv([0,i,diU]),s=0;function +t(a){n(e[1][1+u],e,i);return h(k)}return x(e[1][1+j],e,0,q,r,t,s)}return e[1+p]?h(a):m(c,0)}function +bH(d,b,c){var +f=c[2],g=f[2],e=f[1],a=o(wc[1],0,d[1+k],d[1+q],d[1+p]);jp(n(D(a,vd,kr),a,e),g);var +h=m(D(a,mY,l8),a),i=0;function +l(a){return jp(n(d[1][1+ag],d,e),g)}x(d[1][1+j],d,0,e,h,l,i);return c}function +bI(i,b,c,d,e,f,g,h){var +s=i[1+r],t=h[1][1],u=m(s[3],e),v=u[2];if(u[1]){var +a=o(wc[1],0,i[1+k],i[1+q],i[1+p]);jp(m(D(a,Am,ks),a),e);var +C=m(D(a,mY,ma),a),E=0,G=function(a){return jp(m(i[1][1+F],i),e)};x(i[1][1+j],i,diV,t,C,G,E)}var +n=v[2],H=n[4],I=n[3],J=n[2],K=n[1],L=v[1],M=S(K,function(a){var +b=a[2][1],c=b[1],d=0;function +e(a){return jp(m(i[1][1+w],i),b)}x(i[1][1+j],i,0,c,rs,e,d);return a}),l=o(wc[1],0,i[1+k],i[1+q],i[1+p]),y=fs(J,0,function(c,b){var +a=b[2],g=a[2],h=b[1],d=m(s[4],a[1]),e=d[1],k=d[2];if(0!==e[0]){var +f=e[1],n=f[1],o=0,p=function(a){var +b=U(c),d=m(i[1][1+Z],i);fo(function(a){return jp(d,a)},b);return jp(m(i[1][1+w],i),f)},q=m(D(l,mY,mc),l);x(i[1][1+j],i,0,n,q,p,o)}jp(m(D(l,325375206,jI),l),b);return[0,[0,h,[0,k,g]],c]}),N=S(I,function(a){var +b=a[2],f=b[2],g=a[1],c=m(s[4],b[1]),d=c[1],h=c[2];if(0!==d[0]){var +e=d[1],k=e[1],n=0,o=function(a){var +b=U(y),c=m(i[1][1+Z],i);fo(function(a){return jp(c,a)},b);return jp(m(i[1][1+w],i),e)},p=m(D(l,mY,lF),l);x(i[1][1+j],i,0,k,p,o,n)}jp(m(D(l,11203305,pJ),l),a);return[0,g,[0,h,f]]}),z=[0,L,[0,M,U(y),N,H]],B=0;switch(f[0]){case +0:B=1;break;case +1:var +A=f[1][2][1];break;default:var +A=f[1][1]}if(!B){var +R=0,T=function(a){var +b=i[1+p];return b?(jp(m(i[1][1+F],i),z),jp(m(i[1][1+aF],i),f)):b},V=m(D(l,mY,q9),l);x(i[1][1+j],i,0,A,V,T,R)}jp(m(D(l,zm,lK),l),h);var +O=m(D(l,mY,pP),l),P=0;function +Q(a){jp(m(i[1][1+F],i),z);m(Bj(m(i[1][1+ao],i)),g);return jp(m(i[1][1+aJ],i),h)}return x(i[1][1+j],i,0,t,O,Q,P)}function +bJ(a,b,c){var +e=c[1];if(e)var +g=e[1],d=l(tm[1],0,a[1+k],a[1+q]),f=l(D(d,iL,mf),d,m(D(d,481372996,kw),d),g);else +var +f=rs;var +h=m(m(a$,a),b);return x(a[1][1+j],a,diW,b,f,h,c)}function +bK(a,b,c){var +e=c[1],d=l(tm[1],0,a[1+k],a[1+q]),i=0;if(e){var +f=e[1];if(0===f[0]){var +g=f[1],m=g[2],h=l(D(d,iL,mg),d,n(D(d,ao5,md),d,g[1]),m);i=1}}if(!i)var +h=rs;var +o=n(a[1][1+Q],a,b);return x(a[1][1+j],a,diX,b,h,o,c)}function +bL(a,b,c){return n(m(bf,a),b,c)}function +bM(a,b,c){var +e=c[1],d=l(tm[1],0,a[1+k],a[1+q]);if(0===e[0])var +f=e[1],h=f[2],g=l(D(d,iL,pK),d,n(D(d,ao5,lL),d,f[1]),h);else +var +g=rs;var +i=n(a[1][1+R],a,b);return x(a[1][1+j],a,diY,b,g,i,c)}function +bN(a,b,c){return n(m(be,a),b,c)}function +bO(a,b,c){var +e=c[1],d=l(tm[1],0,a[1+k],a[1+q]);if(0===e[0])var +f=e[1],h=f[2],g=l(D(d,iL,nq),d,n(D(d,ao5,k7),d,f[1]),h);else +var +g=rs;var +i=n(a[1][1+T],a,b);return x(a[1][1+j],a,diZ,b,g,i,c)}function +bP(a,b,c){return n(m(bd,a),b,c)}function +bQ(a,b,c,d){return K(d,m(a[1][1+al],a))}function +bR(a,b,c){var +e=c[2],f=c[1];n(a[1][1+G],a,f);var +d=l(tm[1],0,a[1+k],a[1+q]);function +g(a){n(D(d,Tt,qf),d,a[2][2]);return a}var +h=l(D(d,iL,lC),d,function(a){return K(a,g)},e),i=l(a[1][1+O],a,b,f);x(a[1][1+j],a,di0,b,h,i,e);return c}function +bS(a,b){var +c=b[1],d=b[2];return[0,c,n(m(I,a),c,d)]}function +bT(a,b){var +c=b[1],d=b[2];return[0,c,n(m(I,a),c,d)]}function +bU(a,b,c){var +d=l(tm[1],0,a[1+k],a[1+q]),e=l(D(d,iL,mi),d,n(D(d,vd,qr),d,b),c),f=m(m(I,a),b);return x(a[1][1+j],a,di1,b,e,f,c)}function +bV(a,b){n(a[1][1+c],a,b[2][1]);return b}function +bW(a,b,c){var +d=c[2],e=c[1],i=d?d[1]:c[3],g=0;if(e&&2>e[1])g=1;var +h=0;if(g||!(2<=b))h=1;else +var +f=[0,n(a[1][1+V],a,di2)];if(h)var +f=a[1+p]?[0,m(a[1][1+u],a)]:0;S(f,function(a){return m(a,i)});return c}function +bX(a,b,c){var +d=c[1];if(!a[1+p]&&2>d)return c;return n(m(bg,a),b,c)}function +bY(a,b){return b}function +bZ(a,b){return b}function +b0(a,b){return b}function +b1(a,b,c){return c}function +b2(a,b){return b}function +b3(a,b){return b}function +b4(a,b){return b}function +b5(d,b,c){if(!d[1+p])return c;var +a=c[4],f=a[2],g=a[1],h=c[3],i=c[2];n(d[1][1+u],d,c[1]);var +j=pr(h,function(a){var +b=a[2],c=b[2];n(d[1][1+C],d,b[1]);return c});function +k(a){K(j,m(d[1][1+t],d));l(d[1][1+W],d,g,f);return 0}o(d[1][1+e],d,0,k,i);return c}function +b6(d,b,c){if(!d[1+p])return c;var +g=c[4],h=c[3],a=c[2];n(d[1][1+u],d,c[1]);function +i(a){S(h,m(d[1][1+f],d));S(g,m(d[1][1+f],d));return 0}o(d[1][1+e],d,0,i,a);return c}function +b7(d,b,c){if(!d[1+p])return c;var +g=c[3],a=c[2];n(d[1][1+u],d,c[1]);function +h(a){n(d[1][1+f],d,g);return 0}o(d[1][1+e],d,0,h,a);return c}function +b8(a,b){return m(m(bh,a),b)}function +b9(a,b){var +c=a[1+h];a[1+h]=[0,rh(0,[0,b[1],b[2][1]]),c];return b}function +b_(a,b){a[1+h]=[0,b,a[1+h]];return b}function +b$(g,b,c,d,e,f){var +i=g[1+r],q=b?b[1]:0,j=g[1+v],k=g[1+y],t=g[1+s],u=g[1+h],p=m(g[1][1+Y],g);g[1+h]=0;g[1+y]=[0,p];function +a(a){return m(g[1][1+X],g)}g[1+v]=l(i[6][2],a,j,d);function +w(a){function +b(a){var +b=m(i[6][4],g[1+v]),e=i[5][1][7][1],f=l(j6,function(a,d,c){var +b=d[1];return iC(function(a,b){return o(i[5][1][7][31],0,b,d,a)},c,b)},b,e),j=g[1+h],r=[0,f,g2],d=M(function(a,b){var +c=b[2][1],d=a[2],e=a[1],h=b[1],f=n(i[6][3],c,g[1+v]);return f?[0,o(i[5][1][7][31],0,h,f[1],e),d]:[0,e,n(mq,c,d)]},r,j),s=o(g5,0,p,[0,q,k,b,d[1],d[2],c],a[2]);return[0,a[1],s]}n(g[1][1+J],g,b);g[1+h]=u;g[1+y]=k;g[1+v]=j;g[1+s]=t;return 0}return ti(function(a){return m(e,f)},w)}function +ca(b){var +a=b[1+s];b[1+s]=b[1+s]+1|0;function +c(a){var +c=a[2];return[0,ua(b[1+s],a[1]),c]}n(b[1][1+J],b,c);return a}function +cb(a){var +b=a[1+r];function +c(a,b){return a===b?1:0}var +d=hW(0,0,0,a[1+y]);return qy(b[5][10],d,c)}fC(g,[0,Y,function(a){var +b=a[1+z];a[1+z]=a[1+z]+1|0;return b},az,cb,X,ca,j,b$,c,b_,aw,b9,av,b8,ak,b7,aq,b6,ax,b5,au,b4,aj,b3,at,b2,ap,b1,aQ,b0,as,bZ,a2,bY,aB,bX,aA,bW,aP,bV,ag,bU,aK,bT,ad,bS,am,bR,O,bQ,T,bP,aO,bO,R,bN,aN,bM,Q,bL,aM,bK,a8,bJ,B,bI,aU,bH,e,bG,i,bF,P,bE,ah,bD,aZ,bC,$,bB,ay,bA,A,bz,ac,by,a3,bx,aW,bw,aI,bv,d,bu,aL,bt,a9,bs,aS,br,aV,bq,aD,bp,a0,bo,ar,bn,a4,bm,a7,bl,ae,bk,aX,bj,aR,bi]);return function(i){var +f=i[1],j=f[1];return function(a,b,c,d){var +e=fp(a,g);e[1+p]=d;e[1+q]=c;e[1+k]=b;l(a_,i[2],e,f[2][1]);e[1+v]=f[3][1];e[1+y]=0;e[1+z]=0;e[1+h]=0;e[1+s]=0;e[1+r]=j;return fH(a,e,g)}}},FQ);var +u=[0,[0,[0,e,s,A,B,b,k],g,k],jB[4]],G=FQ[1],H=FQ[2];h(i,[0,m(FQ[1],u),H,G,u]);return[0,a,b,g,function(a,b,c,d){var +f=a?a[1]:0,k=d[1],e=o(i[1],0,f,b,c);if(f)var +g=l(tm[1],0,f,b),j=l(D(g,iL,iT),g,m(D(g,lO,hr),g),d);else +var +h=o(wc[1],0,f,b,c),j=l(D(h,iL,jY),h,m(D(h,lO,jx),h),d);return l(D(e,iL,iR),e,p(D(e,QI,gt),e,0,k,j,m(D(e,lO,hy),e)),d)},i]},aSj=NZ(il,wd),gn=NZ(T,kF);NZ(aHV,diJ);var +aIz=function(c){var +a=0;function +b(a,b){return n(c[7][26],b,a)}return[0,c,a,b,function(a,d){function +b(a,b){return p0(b,function(a){return a?ao(a[1][2],d):0})}return 1-n(c[7][14],b,a)}]},aIA=aIz(il),Bw=aIz(T),di9=[0,0,0,0],aIB=function(a,b,c){var +i=[0,0];function +t(a){var +b=i[1];i[1]=i[1]+1|0;return b}function +e(a){return[0,t(0),a]}function +C(a){return e([2,[0,[0,a]]])}function +E(a){return e(di_)}function +F(a){return e(0)}function +j(a){return a?a[2]?[1,a]:a[1]:di$}var +d=h$([0,hs]);function +f(a){if(typeof +a!=="number")switch(a[0]){case +1:var +g=a[1],h=d[1];return M(function(a,b){var +c=f(b);return n(d[7],a,c)},h,g);case +2:var +b=a[1],c=b[1];if(0!==c[0]){var +e=f(c[1]);b[1]=[1,j(m(d[22],e))];return e}break}return m(d[5],a)}function +G(a,b){if(a[1]===b[1])return a;var +c=f(b[2]),g=f(a[2]),h=n(d[7],g,c);return e(j(m(d[22],h)))}function +H(a){return e([0,a])}function +I(a){return e(j(K(a,function(a){return[0,a]})))}function +J(a,b){var +c=a[2];if(typeof +c!=="number"&&2===c[0]){var +d=c[1];if(0===d[1][0]){d[1]=[1,k(d,b[2])];return 0}}return X(dja)}function +k(c,b){if(typeof +b==="number")return b;switch(b[0]){case +0:return b;case +1:var +f=b[1],g=jq(function(a){return k(c,a)},f);return g===f?b:[1,g];default:var +d=b[1];if(c===d)return djb;var +a=d[1];if(0===a[0])var +e=a;else +var +h=a[1],i=k(c,h),j=h===i?a:[1,i],e=j;if(a!==e)d[1]=e;return b}}function +L(a){var +b=f(a[2]);function +c(a){if(typeof +a==="number")return 0;switch(a[0]){case +0:return[0,a[1]];case +2:if(0===a[1][1][0])return X(djd);break}return X(djc)}return K(m(d[22],b),c)}var +u=[0,C,E,F,t,G,H,I,J,L,function(a){return a[1]}],N=[0];function +q(a){return S(a,uo)}function +O(a){return[0,q(a)]}function +P(a){return[1,q(a)]}var +Q=0,R=1;function +T(a,b){return s2(b,a)}var +v=[0,q,O,P,Q,R,T,function(a){return 1},[fy,dje,ge(0)]],U=[0];function +w(a,b,c,d){var +g=b,f=c,e=d;for(;;){if(g){if(f&&e){var +h=e[2],i=f[2],j=g[2];l(a,g[1],f[1],e[1]);var +g=j,f=i,e=h;continue}}else if(!f&&!e)return 0;throw B([0,aL,djf],1)}}var +r=[],g=V$(di9,[0,c[5][2]]);if(!g[1])pZ(di4,function(x){var +i=fK(x,djh),a=kC(x,di6,di5),Q=a[7],R=a[53],h=a[55],T=a[56],k=a[57],j=a[65],C=a[66],U=a[68],r=a[69],D=a[74],W=a[75],Y=a[80],Z=a[94],I=a[l8],_=a[ks],J=a[jI],f=a[mc],$=a[pJ],u=a[lF],K=a[lN],L=a[qT],w=a[tW],N=a[tU],y=a[xl],O=a[DC],e=a[w8],t=a[Dz],E=a[xa],q=a[w7],aa=a[aWL],F=a[ag$],z=a[a4t],P=a[aoo],G=a[Hw],A=a[RQ],H=a[Sn],d=a[CO],v=a[zG],g=a[Is],ac=a[1],ad=a[2],ae=a[4],af=a[8],ag=a[10],ah=a[11],ai=a[14],aj=a[15],ak=a[29],al=a[38],am=a[40],an=a[48],aq=a[62],ar=a[63],as=a[64],au=a[67],av=a[78],aw=a[ju],ax=a[mg],ay=a[lL],az=a[pK],aA=a[kO],aB=a[kp],aC=a[q4],aD=a[sW],aE=a[CV],aF=a[Ab],aG=a[xw],aH=a[wR],aI=a[zs],aJ=a[tH],aK=a[wZ],aL=a[vu],aM=a[zy],aN=a[sP],aO=a[xd],aP=a[I2],aQ=a[T2],aR=a[aXw],b=fG(x,di8,0,di7,c[5],0),ab=b[jI],aS=b[1],aT=b[21],aU=b[44],aV=b[67],aW=b[lQ],aX=b[lg],aY=b[qX],aZ=b[qd],a0=b[la],a1=b[vc],a2=b[DR],a4=b[sG];function +a5(a,b){var +c=Ee(function(a){switch(a[2][0]){case +3:return 1;case +26:return 1;default:return 0}},b),d=V(c[1],c[2]);m(m(a1,a),d);return b}function +a6(a,b){switch(b[2][0]){case +17:case +23:case +24:case +25:case +30:case +38:break;default:a[1+g]=0}return m(m(a0,a),b)}function +a7(d,b,c){var +e=d[1+i];function +a(a){var +b=c[1],f=c[2],i=d[1+g];d[1+g]=[0,m(e[1][3],[0,b]),i];function +k(a){n(d[1][1+h],d,f);return 0}var +o=n(d[1][1+j],d,k);d[1+g]=0;var +p=[0,m(e[1][2],[0,b]),0],r=m(e[1][6],p);return l(d[1][1+q],d,r,o)}n(d[1][1+t],d,a);return c}function +a8(a,b,c){n(m(a4,a),b,c);m(a[1][1+w],a);return c}function +a9(a,b,c){var +d=c[1];n(a[1][1+e],a,c[2]);if(7<=d)m(a[1][1+w],a);return c}function +a_(a,b,c){n(m(aZ,a),b,c);m(a[1][1+w],a);return c}function +a$(a,b,c){n(m(aT,a),b,c);m(a[1][1+w],a);return c}function +ba(a,b,c){var +d=Bt(b,c);return d?(n(a[1][1+h],a,[0,b,d[1]]),c):n(m(aV,a),b,c)}function +bb(e,b,c,d){var +f=e[1+i];function +a(a){var +g=m(e[1][1+k],e);function +h(a){return n(e[1][1+r],e,g)}function +i(a){m(e[1][1+L],e);function +g(a){return l(m(aU,e),b,c,d)}var +h=n(e[1][1+j],e,g),i=m(f[1][6],[0,f[1][4],[0,f[1][5],0]]);return l(e[1][1+q],e,i,h)}return l(e[1][1+C],e,i,h)}return n(e[1][1+t],e,a)}function +bc(o,b,c,d,e,f,g,h){var +p=o[1+i];function +a(a){var +i=m(o[1][1+k],o);function +s(a){return n(o[1][1+r],o,i)}function +t(a){m(o[1][1+L],o);function +i(a){return ap(m(aY,o),b,c,d,e,f,g,h)}var +k=n(o[1][1+j],o,i),r=m(p[1][6],[0,p[1][4],[0,p[1][5],0]]);return l(o[1][1+q],o,r,k)}return l(o[1][1+C],o,t,s)}return n(o[1][1+t],o,a)}function +bd(a,b,c){var +d=c[3],g=c[2];n(a[1][1+av],a,c[1]);var +h=m(a[1][1+k],a);n(a[1][1+e],a,g);var +i=m(a[1][1+k],a);n(a[1][1+r],a,h);n(a[1][1+e],a,d);n(a[1][1+f],a,i);return c}function +be(a,b,c){var +d=c[3];n(a[1][1+e],a,c[2]);var +g=m(a[1][1+k],a);n(a[1][1+e],a,d);n(a[1][1+f],a,g);return c}function +bf(d,b,c){var +v=d[1+i];function +a(a){var +b=c[3],e=c[2],f=c[1],g=f[1],t=f[2],h=m(d[1][1+k],d);function +x(a){l(d[1][1+aa],d,g,t);return 0}var +y=n(d[1][1+j],d,x),z=m(d[1][1+k],d);if(e){var +i=e[1],A=i[2],B=i[1];n(d[1][1+r],d,h);m(d[1][1+w],d);var +C=function(a){l(d[1][1+aO],d,B,A);return 0},D=n(d[1][1+j],d,C),p=m(d[1][1+k],d),o=[0,D,0]}else +var +p=m(d[1][1+E],d),o=0;l(d[1][1+J],d,z,p);var +F=[0,y,o];function +G(a){return n(d[1][1+u],d,F)}var +s=n(d[1][1+j],d,G);l(d[1][1+q],d,v[1][7],s);if(b){var +H=b[1][2];n(d[1][1+r],d,h);m(d[1][1+w],d);l(d[1][1+aa],d,g,H)}return n(d[1][1+N],d,s)}n(d[1][1+t],d,a);return c}function +bg(d,b,c){var +f=b[2],g=b[1],h=c[2],i=c[1];a3(m(d[1][1+e],d),i);var +a=m(d[1][1+k],d);l(d[1][1+J],d,a,g);function +o(a){n(d[1][1+R],d,h);return 0}var +p=n(d[1][1+j],d,o),q=m(d[1][1+k],d);n(d[1][1+r],d,a);return[0,q,[0,p,f]]}function +bh(e,b,c,d){var +g=e[1+i];function +a(a){var +c=[0,m(e[1][1+E],e),0],b=M(function(a,b){return l(e[1][1+T],e,a,b[2])},c,d),h=b[2];n(e[1][1+f],e,b[1]);var +i=[0,0,h];function +k(a){return n(e[1][1+u],e,i)}var +o=n(e[1][1+j],e,k),p=[0,m(g[1][2],0),0],r=m(g[1][6],p);return l(e[1][1+q],e,r,o)}n(e[1][1+t],e,a);return d}function +bi(a,b){n(a[1][1+O],a,b);return b}function +bj(a,b){n(a[1][1+O],a,b);return b}function +bk(a,b){var +d=b[2],c=d[1],f=d[2];if(c&&!c[2]){var +e=c[1][2][1];return 3===e[2][0]?X(djj):(l(a[1][1+Q],a,f,e),0)}return X(dji)}function +bl(d,b,c){var +o=d[1+i];function +a(a){var +i=d[1+g],p=[0,m(o[1][3],0),i],s=c[3],t=c[1];n(d[1][1+e],d,c[2]);var +b=m(d[1][1+y],d);n(d[1][1+f],d,b);var +v=m(d[1][1+k],d);n(d[1][1+aF],d,t);function +w(a){n(d[1][1+h],d,s);return 0}var +x=n(d[1][1+j],d,w);function +A(a){var +b=m(o[1][6],p);return l(d[1][1+q],d,b,x)}var +B=n(d[1][1+j],d,A);n(d[1][1+z],d,b);n(d[1][1+r],d,v);var +C=[0,0,[0,B,0]];function +D(a){return n(d[1][1+u],d,C)}var +E=n(d[1][1+j],d,D),F=[0,m(o[1][2],0),0],G=m(o[1][6],F);return l(d[1][1+q],d,G,E)}n(d[1][1+t],d,a);return c}function +bm(d,b,c){var +o=d[1+i];function +a(a){var +i=d[1+g],p=[0,m(o[1][3],0),i],s=c[3],t=c[1];n(d[1][1+e],d,c[2]);var +b=m(d[1][1+y],d);n(d[1][1+f],d,b);var +v=m(d[1][1+k],d);n(d[1][1+aH],d,t);function +w(a){n(d[1][1+h],d,s);return 0}var +x=n(d[1][1+j],d,w);function +A(a){var +b=m(o[1][6],p);return l(d[1][1+q],d,b,x)}var +B=n(d[1][1+j],d,A);n(d[1][1+z],d,b);n(d[1][1+r],d,v);var +C=[0,0,[0,B,0]];function +D(a){return n(d[1][1+u],d,C)}var +E=n(d[1][1+j],d,D),F=[0,m(o[1][2],0),0],G=m(o[1][6],F);return l(d[1][1+q],d,G,E)}n(d[1][1+t],d,a);return c}function +bn(d,b,c){var +o=d[1+i];function +a(a){var +p=d[1+g],s=[0,m(o[1][3],0),p],t=c[4],v=c[3],w=c[2],x=c[1];a3(m(d[1][1+aE],d),x);var +b=m(d[1][1+y],d);n(d[1][1+f],d,b);a3(m(d[1][1+e],d),w);var +A=m(d[1][1+k],d);function +B(a){n(d[1][1+h],d,t);return 0}var +C=n(d[1][1+j],d,B);function +D(a){var +b=m(o[1][6],s);return l(d[1][1+q],d,b,C)}var +i=n(d[1][1+j],d,D);if(!i)a3(m(d[1][1+e],d),v);n(d[1][1+z],d,b);n(d[1][1+r],d,A);var +E=[0,0,[0,i,0]];function +F(a){return n(d[1][1+u],d,E)}var +G=n(d[1][1+j],d,F),H=[0,m(o[1][2],0),0],I=m(o[1][6],H);return l(d[1][1+q],d,I,G)}n(d[1][1+t],d,a);return c}function +bo(d,b,c){var +k=d[1+i];function +a(a){var +o=d[1+g],p=[0,m(k[1][3],0),o],r=c[2],s=c[1],b=m(d[1][1+y],d);n(d[1][1+f],d,b);function +t(a){n(d[1][1+h],d,s);return 0}var +v=n(d[1][1+j],d,t);function +w(a){var +b=m(k[1][6],p);return l(d[1][1+q],d,b,v)}var +i=n(d[1][1+j],d,w);if(!i)n(d[1][1+e],d,r);n(d[1][1+z],d,b);var +x=[0,i,0];function +A(a){return n(d[1][1+u],d,x)}var +B=n(d[1][1+j],d,A),C=[0,m(k[1][2],0),0],D=m(k[1][6],C);return l(d[1][1+q],d,D,B)}n(d[1][1+t],d,a);return c}function +bp(d,b,c){var +o=d[1+i];function +a(a){var +i=d[1+g],p=[0,m(o[1][3],0),i],s=c[2],t=c[1],b=m(d[1][1+y],d);n(d[1][1+f],d,b);n(d[1][1+e],d,t);var +v=m(d[1][1+k],d);function +w(a){n(d[1][1+h],d,s);return 0}var +x=n(d[1][1+j],d,w);function +A(a){var +b=m(o[1][6],p);return l(d[1][1+q],d,b,x)}var +B=n(d[1][1+j],d,A);n(d[1][1+z],d,b);n(d[1][1+r],d,v);var +C=[0,0,[0,B,0]];function +D(a){return n(d[1][1+u],d,C)}var +E=n(d[1][1+j],d,D),F=[0,m(o[1][2],0),0],G=m(o[1][6],F);return l(d[1][1+q],d,G,E)}n(d[1][1+t],d,a);return c}function +bq(d,b,c){var +g=c[3],i=c[2];n(d[1][1+e],d,c[1]);var +a=m(d[1][1+k],d);function +o(a){l(d[1][1+aD],d,0!==g?1:0,i);return 0}var +p=n(d[1][1+j],d,o),q=m(d[1][1+k],d);n(d[1][1+r],d,a);function +s(a){a3(function(a){var +b=a[2],c=b[2],e=a[1];return[0,e,[0,n(d[1][1+h],d,b[1]),c]]},g);return 0}var +t=n(d[1][1+j],d,s);n(d[1][1+f],d,q);n(d[1][1+u],d,[0,p,[0,t,0]]);return c}function +br(a,b,c){var +d=a[1+i];n(a[1][1+e],a,c[1]);return n(a[1][1+D],a,d[1][5])}function +bs(a,b,c){var +d=a[1+i],f=c[1];a3(m(a[1][1+e],a),f);return n(a[1][1+D],a,d[1][4])}function +bt(a,b,c){var +d=m(a[1+i][1][3],c[1]);return n(a[1][1+D],a,d)}function +bu(a,b,c){var +d=m(a[1+i][1][2],c[1]);return n(a[1][1+D],a,d)}function +bv(a,b,c){var +d=c[2],f=d[2];if(9===f[0]){var +g=f[1];n(a[1][1+K],a,g);l(a[1][1+Z],a,0,g)}else +n(a[1][1+e],a,d);return c}function +bw(a,b,c){var +f=c[2],d=f[2],g=f[1],h=g[2];if(3===h[0])S(d,m(a[1][1+e],a));else{var +i=h[1][2];if(d){n(a[1][1+e],a,d[1]);l(a[1][1+Q],a,b,g)}else +n(a[1][1+ak],a,i)}return c}function +bx(a,b,c){var +f=c[3],d=c[2];if(c[1]){var +g=d[2];switch(g[0]){case +2:n(a[1][1+K],a,g[1][1]);n(a[1][1+e],a,f);n(a[1][1+F],a,d);break;case +3:n(a[1][1+F],a,d);n(a[1][1+e],a,f);break;default:n(a[1][1+e],a,f)}}else if(3===d[2][0]){n(a[1][1+F],a,d);n(a[1][1+e],a,f)}else{n(a[1][1+e],a,f);n(a[1][1+F],a,d)}return c}function +by(a,b){return m(m(aX,a),b)}function +bz(a,b){l(a[1][1+P],a,b[1],b[2][1]);return m(m(aW,a),b)}function +bA(a,b){l(a[1][1+P],a,b[1],b[2][1]);return m(m(ab,a),b)}function +bB(a,b,c){var +f=a[1+i],e=n(jK,c,a[1+d]);return e?(a[1+G]=o(f[2][1][7][31],0,b,e[1][1][1],a[1+G]),0):(a[1+A]=n(mq,c,a[1+A]),0)}function +bC(a,b,c){var +e=c[2][1],k=a[1+i],f=s([37,[0,e]],c[1]),g=n(jK,e,a[1+d]);if(g){var +h=g[1],j=h[2],l=h[1];l[1]=m(k[3][6],f);j[2]=[0,f,j[2]]}else +a[1+A]=n(mq,e,a[1+A]);return m(m(ab,a),c)}function +bD(d,b,c){var +g=d[1+i],h=d[1+v],a=Ee(function(a){return m(b,a[1])},h),e=a[1],j=a[2];if(0!==e){fo(function(a){return n(d[1][1+$],d,a[2])},e);d[1+v]=j;return 0}if(c){var +f=c[1];if(!m(b,f))throw B([0,g[1][8],f],1)}return 0}function +bE(a,b){var +c=b[1],f=a[1+i],g=b[2];if(!c)return 0;var +d=c[1],e=xG(function(a){return a?ao(d,a[1]):0},g);if(e)throw B([0,f[1][8],d],1);return e}function +bF(c,b){var +d=c[1+v];c[1+v]=0;function +a(a){c[1+v]=hh(d,c[1+v]);return 0}return l(c[1][1+C],c,b,a)}function +bG(a,b){var +c=a[1+i],d=m(a[1][1+k],a),e=m(a[1][1+E],a);n(a[1][1+r],a,e);a[1+v]=[0,[0,b,d],a[1+v]];throw B([0,c[1][8],b],1)}function +bH(a,b){var +c=a[1+i];if(b)throw B([0,c[1][8],b[1]],1);return 0}function +bI(a,b){var +d=a[1+i];try{m(b,0);var +e=0;return e}catch(f){var +c=fk(f);if(c[1]===d[1][8])return[0,c[2]];throw B(c,0)}}function +bJ(a,b,c){var +d=n(a[1][1+j],a,b);m(c,0);return n(a[1][1+N],a,d)}function +bK(g,b,c,d,e,f){var +h=n(g[1][1+W],g,d);function +a(a){return n(g[1][1+Y],g,h)}function +i(a){p(m(a2,g),b,c,d,e,f);return 0}l(g[1][1+C],g,i,a);return f}function +bL(a,b){var +c=b[2];n(a[1][1+U],a,b[1]);a[1+d]=c;return 0}function +bM(c){var +e=c[1+i];return m(hk,function(a,b){var +f=n(r4,a,c[1+d])[2],g=f[1],h=m(e[3][7],f[2]);return n(e[3][8],g,h)})}function +bN(a,b){var +c=a[1+d],e=aah(b),f=n(a[1][1+_],a,e);a[1+d]=l(j6,function(a){return n(fN,0,a)},f,c);return[0,e,c]}function +bO(b){var +c=b[1+i];return m(ia,function(a){var +d=[0,m(b[1][1+I],b),0];return[0,[0,m(c[3][3],0)],d]})}function +bP(a){var +c=a[1+i],b=a[1+d];return n(hk,function(a,b){var +d=b[1],e=b[2][1],f=m(c[3][3],0);d[1]=n(c[3][5],f,e);return 0},b)}function +bQ(a){var +e=a[1+i],b=a[1+d];return n(hk,function(a,b){var +c=b[1];c[1]=n(e[3][5],c[1],b[2][1]);return 0},b)}function +bR(a){var +b=a[1+i],c=a[1+d];return n(ia,function(a){return m(b[3][2],0)},c)}function +bS(a,b){var +c=a[1+i],e=m(r5,b),f=m(r5,a[1+d]);return vF(function(a,b){return n(c[3][8],b,a[1][1])},f,e)}function +bT(b){var +a=b[1+d];return n(ia,function(a){return m(b[1][1+I],b)},a)}function +bU(a,b){var +c=m(r5,b),e=m(r5,a[1+d]);return vF(function(a,b){a[1][1]=b;return 0},e,c)}function +bV(a,b){var +e=a[1+i],c=m(r5,b),f=m(r5,a[1+d]);return vF(function(a,b){var +c=a[1];c[1]=n(e[3][5],c[1],b);return 0},f,c)}function +bW(a,b,c){var +e=a[1+i],f=m(r5,b),g=m(r5,c),h=m(r5,a[1+d]);function +j(a,b,c){var +d=a[1];d[1]=n(e[3][5],b,c);return 0}return o(e[4],j,h,f,g)}function +bX(a,e){var +f=a[1+i],b=a[1+d];return n(hk,function(a,b){var +c=b[1],d=n(r4,a,e);c[1]=n(f[3][5],c[1],d);return 0},b)}function +bY(a){var +b=a[1+d];return n(ia,function(a){return a[1][1]},b)}function +bZ(a){var +b=a[1+i];a[1+H]=a[1+H]+1|0;return m(b[3][1],a[1+H])}function +b0(a){return a[1+A]}fC(x,[0,ag,function(a){var +b=a[1+i];return n(b[2][1][7][28],b[3][9],a[1+G])},ai,b0,I,bZ,k,bY,$,bX,J,bW,f,bV,r,bU,y,bT,z,bS,E,bR,w,bQ,L,bP,_,bO,W,bN,U,bM,Y,bL,ad,bK,C,bJ,j,bI,N,bH,D,bG,t,bF,u,bE,q,bD,Z,bC,P,bB,K,bA,aB,bz,aA,by,aR,bx,af,bw,ah,bv,aQ,bu,aL,bt,au,bs,am,br,aC,bq,ae,bp,aJ,bo,aq,bn,as,bm,ar,bl,O,bk,aI,bj,aG,bi,an,bh,T,bg,al,bf,ax,be,aM,bd,ay,bc,aN,bb,aK,ba,aP,a$,aw,a_,aj,a9,ac,a8,az,a7,h,a6,R,a5]);return function(f){var +h=f[1],j=h[1];return function(a,b,c){var +e=fp(a,x);p(aS,f[2],e,b,c,1);e[1+G]=h[2][1][7][1];e[1+A]=g2;e[1+H]=0;e[1+d]=at;e[1+v]=0;e[1+g]=0;e[1+i]=j;return fH(a,e,x)}}},g);var +y=[0,[0,[0,v,c,u,w],c],c[5][4]],W=g[1],Y=g[2];h(r,[0,m(g[1],y),Y,W,y]);function +z(a,b,c,d){var +f=a?a[1]:0,j=d[1],e=l(r[1],0,f,b);if(c){var +k=c[1];n(D(e,a3B,rH),e,function(a){n(D(e,jW,pQ),e,k);return 0})}if(f)var +g=l(tm[1],0,f,b),i=l(D(g,iL,l6),g,m(D(g,lO,pN),g),d);else +var +h=o(wc[1],0,f,b,1),i=l(D(h,iL,lQ),h,m(D(h,lO,qe),h),d);var +p=n(D(e,a3B,q7),e,function(a){x(D(e,QI,ou),e,0,j,i,m(D(e,lO,qp),e),d);return 0}),q=m(D(e,595181582,kO),e),s=m(D(e,TI,k9),e);return[0,p,[0,m(D(e,mY,kp),e),s,q]]}function +A(a,b,c){var +d=a?a[1]:0;return z([0,d],b,0,c)}return[0,u,N,v,U,w,r,z,A,function(a,b){return A(djg,a,b)[2][2]}]};aIB(il,aIA,aSj);var +wK=aIB(T,Bw,gn),N0=function(a,b){var +c=b[2],d=c[2];return[0,a,[0,P(djp,c[1]),d]]},N1=function(a,b){var +c=b[2],d=c[2];return[0,a,[0,P(djq,c[1]),d]]},aIC=function(a){var +b=0===a?1:0;return b?b:s2(Bw[2],a)},aID=function(a,b){var +c=n(ia,wK[1][9],a);return s8(b,function(a){var +b=n(jK,uo(a),c);return b?aIC(b[1]):1})},djv=gP(djo,function(d){var +k=fK(d,djr),a=kC(d,djm,djl),e=a[58],p=a[lL],q=a[qX],h=a[xq],i=a[zG],j=a[SS],f=a[aXl],g=a[QL],c=a[42],r=a[66],s=a[81],t=a[95],u=a[jI],v=a[lQ],w=a[tW],x=a[w8],y=a[O],z=a[zw],A=a[HS],B=a[alx],C=a[CO],b=fG(d,djn,0,djk,wK[6],1),D=b[1],E=b[18],F=b[29],G=b[i1],H=b[tE],I=b[Di];function +J(a,b,c){var +g=c[1],h=g[2],r=0;if(21===h[0]){var +j=h[1];if(31===j[1][2][0]){var +d=j[2],l=g[1];if(2!==d[0]){switch(d[0]){case +0:var +f=N0(l,d[1]);break;case +1:var +f=N1(l,d[1]);break;default:var +f=X(djs)}var +o=uo(f),p=n(xU,o,a[1+k])?4:2,q=[0,b,p,m(a[1][1+e],a)];n(a[1][1+i],a,q);r=1}}}return n(m(F,a),b,c)}function +K(a,b){if(31===b[2][0]){var +c=b[1],d=[0,c,3,m(a[1][1+e],a)];n(a[1][1+i],a,d)}return m(m(G,a),b)}function +L(a,b){a[1+g]=[0,b,a[1+g]];return 0}function +M(a){return a[1+g]}function +N(a,b,c){var +i=c[3],j=c[2][2],r=c[1];if(3===j[0]){var +k=j[1],o=k[2];if(21===o[0]){var +e=o[1];if(31===e[1][2][0]){var +d=e[2],f=k[1];if(2!==d[0]){if(r){l(a[1][1+p],a,f,e);n(a[1][1+h],a,i)}else{switch(d[0]){case +0:var +g=N0(f,d[1]);break;case +1:var +g=N1(f,d[1]);break;default:var +g=X(djt)}l(a[1][1+q],a,g,i)}return c}}}}return n(m(E,a),b,c)}function +P(a,b,c){if(31===c[1][2][0]){var +d=c[2];if(2!==d[0]){switch(d[0]){case +0:var +e=N0(b,d[1]);break;case +1:var +e=N1(b,d[1]);break;default:var +e=X(dju)}var +g=uo(e);a[1+f]=o(T[7][31],0,b,g,a[1+f]);l(a[1][1+C],a,b,g);return c}}return n(m(H,a),b,c)}function +Q(a,b){return b}function +R(a,b){return b}function +S(a,b){return n(T[7][27],b,a[1+f])}function +U(a,b,c){switch(c[2][0]){case +1:case +8:break;default:n(a[1][1+h],a,c)}l(a[1][1+t],a,0,b);return 0}function +V(a,b){a[1+j]=m(a[1][1+e],a);return m(m(I,a),b)}function +W(a){return a[1+j]}fC(d,[0,y,function(a,b){var +c=n(a[1][1+r],a,b),d=m(wK[3][6],[0,wK[3][4],[0,wK[3][5],0]]);return l(a[1][1+z],a,d,c)},x,W,s,V,q,U,u,S,w,R,v,Q,p,P,B,N,c,M,i,L,h,K,A,J]);return function(a,b,c){var +e=fp(b,d);e[1+k]=c;l(D,e,0,0);e[1+j]=at;e[1+f]=T[7][1];e[1+g]=0;return fH(b,e,d)}}),djH=[0,0,0,0,r$,0,0,0],djI=function(a,b,c){return[0,aHt([0,b,[0,c,0]])]},aIE=function(a,b,c){return[0,[0,[0,a,b[1]],b[2]],c]},aIF=function(a,b,c){var +d=b[2];if(!d)return[0,b,[0,[0,a],c]];var +e=[0,J3(d[1],[0,a])];return[0,[0,b[1],e],c]},aIG=[fy,djQ,ge(0)],djP=gP(djE,function(h){var +k=fK(h,djJ),f=fK(h,djK),a=kC(h,djC,djB),w=a[4],y=a[5],j=a[11],c=a[13],r=a[56],s=a[60],z=a[xn],A=a[t3],t=a[tL],u=a[pR],d=a[t8],v=a[y6],g=a[w5],e=a[CK],B=a[IY],i=a[sG],p=a[xd],C=a[9],D=a[39],F=a[44],G=a[53],H=a[kv],I=a[hB],J=a[E],K=a[k6],L=a[kc],M=a[rR],N=a[tU],O=a[xq],P=a[wQ],Q=a[Dr],R=a[CN],S=a[zn],T=a[Dp],U=a[u$],b=fG(h,djF,0,djD,jB,1),V=b[1],W=b[10],Y=b[13],Z=b[20],_=b[62],$=b[67],aa=b[88],ab=b[90],ac=b[94],ad=b[ma],ae=b[jI],af=b[pR],ag=b[oE],ah=b[lf],ai=b[sP];function +aj(c,b){function +a(a){var +b=a[2];return 3===b[0]?(l(c[1][1+u],c,a[1],b[1]),a):n(c[1][1+d],c,a)}function +e(b){var +c=b[1];return aw(a,c,b,function(a){return[0,a,b[2],b[3]]})}return jq(function(a){var +b=a[2];if(22!==b[0])return n(c[1][1+G],c,a);var +d=b[1],f=a[1];return aw(e,d,a,function(a){return[0,f,[22,a]]})},b)}function +ak(a,b,c){return c}function +al(a,b,c,d,e,f){var +o=1-l(a[1][1+w],a,b,f);if(o){l(a[1][1+y],a,b,f);var +p=c[2];if(9===p[0]){var +s=p[1],z=s[1];if(!q(s[2][1],CI)&&!d){var +h=e[2][1];if(h){var +t=h[1];if(0===t[0]){var +u=t[1],j=u[2],m=0,A=u[1];switch(j[0]){case +13:var +v=j[1][1];m=1;break;case +30:var +k=j[1][1];if(k&&!k[2]){var +v=k[1][2][1][2];m=1}break}if(m&&!h[2]){var +x=1-n(wd[25],a[1+i],z);return x?n(a[1][1+g],a,[0,[0,A,v],b,f,0]):x}}}}}var +r=0}else +var +r=o;return r}function +am(a,b,c){var +f=n(a[1][1+s],a,b),e=c[2];if(5!==e[0])return 0;var +d=e[1];return x(a[1][1+t],a,c[1],d[1],d[2],d[3],f)}function +an(c,b){var +a=b[2];switch(a[0]){case +0:var +e=a[1][1],d=JZ(e,0,function(a,b){if(0===b[0]){var +d=b[1][2],e=d[1];if(3===e[0]){var +g=e[1],f=n(c[1][1+s],c,d[2]);if(!f)return djM;var +h=f[1];return[0,[0,[0,aDZ(g),h],a]]}}return djL});return 0===d[0]?[0,[1,d[1]]]:0;case +2:return[0,[0,aDZ(a[1][1])]];default:return 0}}function +ao(a,b,c){var +d=c[2],e=d[2];if(e)l(a[1][1+z],a,d[1],e[1]);return n(m(ai,a),b,c)}function +ap(a,b,c){var +d=1-n(wd[25],a[1+i],b);return d?n(a[1][1+r],a,c):d}function +aq(a,b,c){var +g=c[3],p=c[2];if(!c[1]){var +h=p[2],G=p[1];switch(h[0]){case +2:var +r=h[1][1],j=r[2][1],s=r[1],F=0;if(!q(j,gK)||!q(j,le))F=1;if(F&&!n(wd[25],a[1+i],s)){n(a[1][1+d],a,g);return n(a[1][1+v],a,[1,j,s])}break;case +3:var +t=h[1][2];if(21===t[0]){var +e=t[1],u=e[1],k=u[2],f=u[1],o=0;switch(k[0]){case +9:var +w=k[1][2][1];if(q(w,gK)){if(!q(w,le)){var +x=e[2];if(0===x[0]&&!q(x[1][2][1],gK)&&!n(wd[25],a[1+i],f)){l(a[1][1+A],a,f,G);n(a[1][1+d],a,g);return 0}}}else if(0===e[2][0]){var +y=f;o=1}break;case +21:var +z=k[1],C=z[1],D=C[2];if(9===D[0]){var +H=C[1];if(!q(D[1][2][1],le)){var +E=z[2];if(0===E[0]&&!q(E[1][2][1],gK)&&0===e[2][0]){var +y=H;o=1}}}break}if(o&&!n(wd[25],a[1+i],y)){n(a[1][1+B],a,f);n(a[1][1+d],a,g);return 0}}break}}n(m(W,a),b,c);return 0}function +ar(a,b,c){l(a[1][1+u],a,b,c);return c}function +as(a,b,c){var +f=c[4],g=c[2],j=c[3];if(f)var +h=f[1],d=[0,[0,h[1],h[2][1]]];else +var +d=0;if(g){switch(g[1][0]){case +5:case +6:case +7:var +i=0;break;default:var +i=1}o(a[1][1+e],a,b,i,d)}if(j)o(a[1][1+e],a,b,1,d);return n(m(_,a),b,c)}function +au(a,b,c){n(a[1][1+r],a,b);return n(m($,a),b,c)}function +av(a,b,c){var +f=c[4],g=c[3],i=c[2],j=c[1];if(g)var +h=g[1],d=[0,[0,h[1],h[2][1]]];else +var +d=0;if(j)o(a[1][1+e],a,b,f,d);if(i)o(a[1][1+e],a,b,f,d);return n(m(ab,a),b,c)}function +ax(a,b,c){o(a[1][1+e],a,b,1,0);return n(m(aa,a),b,c)}function +ay(a,b,c){var +e=c[4],f=c[3],h=c[2],d=c[1],i=[0,h[1],h[2][1]],w=0;if(!f&&!e){var +v=[2,i];w=1}if(!w){var +j=[0,at],k=[0,0],p=[0,at],q=[0,at],r=[0,0],s=function(a){switch(a){case +0:return p;case +1:return q;default:return j}},t=function(a,b,c,d){var +e=n(Kf,b,g9(c));function +f(a,b){return l(xV,[0,djI],a,b)}d[1]=o(fN,[0,f],a,e,d[1]);return 0},u=function(a,b,c){return 0===c[1]?(c[1]=[0,[0,b,a]],0):X(djN)};aT(f,function(a){var +b=a[1],c=b[1],e=b[2][1];return t(djO,e,[0,c,c],s(d))});aT(e,function(a){if(0===a[0]){var +f=a[1];return fo(function(a){var +b=a[3],c=a[2],e=a[1],g=e?e[1]:d,f=c?c[1]:b,h=f[2][1],i=f[1],j=b[2][1],k=b[1];return t(j,h,[0,k,i],s(g))},f)}var +b=a[1][2],c=b[2][1],e=b[1];switch(d){case +0:return 0;case +1:return u(c,e,r);default:return u(c,e,k)}});var +v=[4,b,i,j[1],k[1],p[1],q[1],r[1]]}n(a[1][1+g],a,v);return n(m(ae,a),b,c)}function +az(a,b,c){var +h=c[1],d=h[2],f=0,j=h[1];switch(d[0]){case +13:var +i=d[1][1];f=1;break;case +30:var +e=d[1][1];if(e&&!e[2]){var +i=e[1][2][1][2];f=1}break}if(f)n(a[1][1+g],a,[1,[0,j,i],b]);return n(m(ad,a),b,c)}function +aA(a,b,c){var +d=c[1][2],h=c[2];if(9===d[0]&&!q(d[1][2][1],aiF)&&a[1+f][2]){var +e=aag(h,a[1+f][7]);return 0===e[0]?(n(a[1][1+g],a,[0,[0,b,e[1]],b,0,a[1+f][7]]),c):c}return n(m(ah,a),b,c)}function +aB(a,b,c){var +d=c[3],e=c[1],f=J5(e,d),h=0>>0?0:1;return h?(a(g),a(f),c):n(m(Y,e),b,c)}function +aF(a,b){var +d=b[2],h=0;if(9===d[0]){var +e=d[1],c=e[2][1],f=e[1],g=0;if(!q(c,gK)||!q(c,le))g=1;if(g&&!n(wd[25],a[1+i],f)){n(a[1][1+v],a,[1,c,f]);h=1}}return m(m(ac,a),b)}function +aG(b){var +d=b[1+k],e=aIi(b[1+f][4],b[1+k][1],b[1+f][3]),a=aIl(b[1+f][4],e,d);if(a){var +h=a[1];return fV(h,function(a){return n(b[1][1+g],b,[3,a])})}var +c=aH3(b[1+f][4],b[1+k]);return c?n(b[1][1+g],b,[3,c[1]]):0}function +aH(a,b){function +d(a){return[0,a[1],[0,b,a[2]]]}return n(a[1][1+c],a,d)}function +aI(a,c){function +b(a,b){return aIF(c,a,b)}return n(a[1][1+j],a,b)}function +aJ(a,c){function +b(a,b){return aIF(c,a,b)}return n(a[1][1+j],a,b)}function +aK(a,g,c,d){if(c)var +b=function(a,b){var +c=a[2],e=a[1],f=d?[0,[5,d[1]],e]:e;if(c&&c[1])return[0,[0,f,c],[0,[0,g],b]];return[0,[0,f,0],b]};else if(d)var +e=[5,d[1]],b=function(a,b){return aIE(e,a,b)};else +var +b=function(a,b){return[0,a,b]};return n(a[1][1+j],a,b)}function +aL(a,c){function +b(a,b){return aIE(c,a,b)}return n(a[1][1+j],a,b)}function +aM(a,b){function +d(a){var +c=n(b,a[1],a[2]);return[0,c[1],c[2]]}return n(a[1][1+c],a,d)}function +aN(a,b,c){var +d=0!==c?1:0,e=d?(a[1+p]=n(il[8][4],b,a[1+p]),0):d;return e}fC(h,[0,w,function(a,b,c){var +d=0===c?1:0;return d?n(il[8][3],b,a[1+p]):d},y,aN,j,aM,g,aL,e,aK,r,aJ,B,aI,v,aH,U,aG,d,aF,S,aE,J,aD,R,aC,H,aB,F,aA,L,az,K,ay,N,ax,M,av,O,au,Q,as,T,ar,u,aq,A,ap,C,ao,s,an,z,am,t,al,P,ak,D,aj]);return function(a,b,c,d,e){var +g=fp(b,h);g[1+f]=e;g[1+k]=c;n(V,g,[0,djG,0]);g[1+i]=o(aSj[4],0,e[1],1,d);g[1+p]=il[8][1];return fH(b,g,h)}});V6(djR,[0,aIG,[0]]);(function(a){throw a});var +sb=gA,k2=null,aIH=undefined,N2=function(a){return a!==aIH?1:0};sb.String;sb.RegExp;sb.Object;sb.Date;sb.Math;sb.Error;sb.JSON;var +djS=sb.Array,aII=function(a){var +b=sb.parseInt(a);return sb.isNaN(b)|0?X(djT):b};En(function(a){return a[1]===aIG?[0,jy(a[2].toString())]:0});En(function(a){return a +instanceof +djS?0:[0,jy(a.toString())]});var +aIJ=[0,0],fnU=P(djU,P(fnT,djV)),djW=gk,tn=function(a){return a4U(vH(a))},jO=function(a){return U9(vH(a))},ha=function(a,b){return jO(U(jk(a,b)))},fS=function(a,b){return b?m(a,b[1]):k2},Bi=function(a,b){return 0===b[0]?k2:m(a,b[1])},aGU=function(a){return tn([0,[0,cKu,a[1]],[0,[0,cKt,a[2]],0]])},aGV=function(a){var +b=a[1],c=b?gk(b[1][1]):k2,d=[0,[0,cKv,aGU(a[3])],0];return tn([0,[0,cKx,c],[0,[0,cKw,aGU(a[2])],d]])},i5=function(a){if(!a)return 0;var +b=a[1],c=b[1];return $([0,c],[0,V(b[3],b[2])],0)},FR=function(a,b,c){var +d=b[c];return N2(d)?d|0:a},dj2=function(a,b){var +d=ao(b,aIH)?{}:b,aS=jy(a),bj=FR(A6[5],d,djX),bk=FR(A6[4],d,djY),bl=FR(A6[3],d,djZ),bm=FR(A6[2],d,dj0),bn=[0,[0,FR(A6[1],d,dj1),bm,bl,bk,bj,0,0]],aT=d[aTF],aU=N2(aT),aV=aU?aT|0:aU,aW=d[av],bo=N2(aW)?aW|0:1,aX=d[aWQ],bp=N2(aX)?aX|0:1,W=[0,0],bq=aV?[0,function(a){W[1]=[0,a,W[1]];return 0}]:0,_=aGT(dj3[1],[0,bq],[0,bn],0,aS),aY=_[1],br=_[2];aIJ[1]=0;var +E=aFC(1,aS);if(bo)var +F=aY;else +var +aR=m(cVH[1],0),F=n(D(aR,lO,99),aR,aY);if(bp)var +Y=F;else +var +T=F[2],Y=[0,F[1],[0,T[1],T[2],T[3],0]];function +f(a,b,c,d){var +l=[0,Ff(E,b[3]),0],m=[0,[0,cKA,jO([0,Ff(E,b[2]),l])],0],n=V(m,[0,[0,cKB,aGV(b)],0]);if(c){var +e=c[1],f=e[1];if(f){var +g=e[2];if(g)var +o=[0,[0,cKC,x(g)],0],h=[0,[0,cKD,x(f)],o];else +var +h=[0,[0,cKF,x(f)],0];var +i=h}else +var +k=e[2],p=k?[0,[0,cKG,x(k)],0]:0,i=p;var +j=i}else +var +j=0;return tn(hh(V(n,V(j,[0,[0,cKE,gk(a)],0])),d))}function +$(a){return ha(k,a)}function +A(a){var +b=a[2],c=b[3],d=b[1],e=a[1],g=[0,[0,cRW,gk(ax(b[2]))],0];return f(cRY,e,c,[0,[0,cRX,ha(a8,d)],g])}function +ap(a){var +b=a[2],c=b[5],d=b[4],e=b[2],h=b[1],i=a[1],k=[0,[0,cQv,ha(t,b[3])],0],l=[0,[0,cQw,u(0,d)],k],m=[0,[0,cQx,fS(j,e)],l];return f(cQz,i,c,[0,[0,cQy,g(h)],m])}function +ak(a,b){var +d=b[2],i=d[7],k=d[5],l=d[4],m=d[2],t=d[6],u=d[3],v=d[1],x=b[1];if(l)var +e=l[1][2],z=e[2],A=e[1],h=lq(e[3],i),o=z,n=[0,A];else +var +h=i,o=0,n=0;if(k)var +p=k[1][2],B=p[1],C=lq(p[2],h),r=C,q=ha(al,B);else +var +r=h,q=jO(0);var +D=[0,[0,cO1,q],[0,[0,cO0,ha(y,t)],0]],E=[0,[0,cO2,fS(w,o)],D],F=[0,[0,cO3,fS(c,n)],E],G=[0,[0,cO4,fS(j,u)],F],s=m[2],I=s[2],J=m[1],H=[0,[0,cO5,f(cPb,J,I,[0,[0,cPa,ha(a1,s[1])],0])],G];return f(a,x,r,[0,[0,cO6,fS(g,v)],H])}function +K(a,b){var +c=b[2],d=c[5],e=c[4],i=c[3],k=c[2],l=c[1],m=b[1],n=a?cOS:cOX,o=[0,[0,cOT,fS(h,e)],0],p=[0,[0,cOU,fS(h,i)],o],q=[0,[0,cOV,fS(j,k)],p];return f(n,m,d,[0,[0,cOW,g(l)],q])}function +aj(a){var +b=a[2],c=b[4],d=b[2],e=b[1],i=a[1],k=[0,[0,cOO,h(b[3])],0],l=[0,[0,cOP,fS(j,d)],k];return f(cOR,i,c,[0,[0,cOQ,g(e)],l])}function +ah(a){var +b=a[2],c=b[3],d=b[1],e=a[1],h=[0,[0,cOy,an(b[2])],0];return f(cOA,e,c,[0,[0,cOz,g(d)],h])}function +ae(a){var +b=a[2],c=b[3],h=a[1],i=b[5],k=b[4],l=b[2],m=b[1],n=lq(i5(c[2][3]),i),d=c[2],e=d[1],o=d[2],p=[0,[0,cOi,fS(j,l)],0],q=[0,[0,cOj,P(k)],p],r=[0,[0,cOk,I(e)],q],s=[0,[0,cOl,fS(af,o)],r],t=[0,[0,cOm,I(e)],s];return f(cOo,h,n,[0,[0,cOn,g(m)],t])}function +ad(a){var +b=a[2],c=b[6],d=b[4],e=b[7],h=b[5],i=b[3],k=b[2],l=b[1],m=a[1],n=d?jO([0,t(d[1]),0]):jO(0),o=c?ha(al,c[1][2][1]):jO(0),p=[0,[0,cOd,n],[0,[0,cOc,o],[0,[0,cOb,ha(t,h)],0]]],q=[0,[0,cOe,u(0,i)],p],r=[0,[0,cOf,fS(j,k)],q];return f(cOh,m,e,[0,[0,cOg,g(l)],r])}function +ac(a){var +b=a[2],c=b[2],d=b[1],e=b[4],g=b[3],h=a[1],i=h4(d[1],c[1]),j=[0,[0,cN_,fS(B,g)],0];return f(cOa,h,e,[0,[0,cN$,H(i,[0,d,[1,c],0])],j])}function +ab(a){var +b=a[2],c=b[2],d=b[1],e=b[4],g=b[3],h=a[1],i=h4(d[1],c[1]),j=[0,[0,cN7,gk(ax(g))],0];return f(cN9,h,e,[0,[0,cN8,H(i,[0,d,[1,c],0])],j])}function +o(a){var +b=a[2],c=b[2],d=a[1],e=[0,[0,cN5,$(b[1])],0];return f(cN6,d,i5(c),e)}function +k(a){var +d=a[2],b=a[1];switch(d[0]){case +0:return o([0,b,d[1]]);case +1:var +af=d[1],aT=af[2];return f(cKO,b,aT,[0,[0,cKN,fS(g,af[1])],0]);case +2:return ak(cOY,[0,b,d[1]]);case +3:var +q=d[1],aL=q[3],cx=q[6],cy=q[5],cz=q[4],cA=q[2],cB=q[1],cC=lq(i5(aL[2][3]),cx),cD=[0,[0,cPG,fS(j,cA)],0],cE=[0,[0,cPH,P(cz)],cD],aN=aL[2],aO=aN[2],aP=aN[1];if(aO)var +aQ=aO[1],aR=aQ[2],cG=aR[2],cH=aQ[1],cI=f(cPN,cH,cG,[0,[0,cPM,e(aR[1])],0]),aM=jO(U([0,cI,jk(am,aP)]));else +var +aM=jO(fx(am,aP));var +cF=[0,[0,cPJ,g(cB)],[0,[0,cPI,aM],cE]];return f(cPL,b,cC,[0,[0,cPK,o(cy)],cF]);case +4:var +ag=d[1],aU=ag[2];return f(cKQ,b,aU,[0,[0,cKP,fS(g,ag[1])],0]);case +5:return f(cKR,b,d[1][1],0);case +6:return ad([0,b,d[1]]);case +7:return ae([0,b,d[1]]);case +8:return ah([0,b,d[1]]);case +9:var +r=d[1],al=r[5],ao=r[4],G=r[3],aq=r[2],aV=r[1];if(G){var +ar=G[1];if(0!==ar[0]&&!ar[1][2])return f(cKY,b,al,[0,[0,cKX,fS(i,ao)],0])}if(aq){var +m=aq[1];switch(m[0]){case +0:var +n=ab(m[1]);break;case +1:var +n=ac(m[1]);break;case +2:var +n=ad(m[1]);break;case +3:var +n=ae(m[1]);break;case +4:var +n=h(m[1]);break;case +5:var +n=aj(m[1]);break;case +6:var +n=K(1,m[1]);break;case +7:var +n=ap(m[1]);break;default:var +n=ah(m[1])}var +as=n}else +var +as=k2;var +aW=[0,[0,cKS,fS(i,ao)],0],aX=[0,[0,cKU,as],[0,[0,cKT,ai(G)],aW]],aY=aV?1:0;return f(cKW,b,al,[0,[0,cKV,!!aY],aX]);case +10:return ac([0,b,d[1]]);case +11:var +s=d[1],cl=s[5],cm=s[4],cn=s[2],co=s[1],cp=[0,[0,cOB,ha(t,s[3])],0],cq=[0,[0,cOC,u(0,cm)],cp],cr=[0,[0,cOD,fS(j,cn)],cq];return f(cOF,b,cl,[0,[0,cOE,g(co)],cr]);case +12:var +C=d[1],H=C[1],a1=C[4],a2=C[3],a3=C[2],a4=0===H[0]?g(H[1]):i(H[1]),a5=0,a6=a2?"ES":"CommonJS";return f(cK2,b,a1,[0,[0,cK1,a4],[0,[0,cK0,o(a3)],[0,[0,cKZ,a6],a5]]]);case +13:var +at=d[1],a7=at[2];return f(cK4,b,a7,[0,[0,cK3,l(at[1])],0]);case +14:var +D=d[1],cs=D[4],ct=D[2],cu=D[1],cv=[0,[0,cOK,h(D[3])],0],cw=[0,[0,cOL,fS(j,ct)],cv];return f(cON,b,cs,[0,[0,cOM,g(cu)],cw]);case +15:return K(1,[0,b,d[1]]);case +16:return ab([0,b,d[1]]);case +17:var +I=d[1],a8=I[3],a9=I[1],a_=[0,[0,cK5,c(I[2])],0];return f(cK7,b,a8,[0,[0,cK6,k(a9)],a_]);case +18:return f(cK8,b,d[1][1],0);case +19:var +M=d[1],cJ=M[3],cK=M[1],cL=[0,[0,cQs,an(M[2])],0];return f(cQu,b,cJ,[0,[0,cQt,g(cK)],cL]);case +20:var +au=d[1],O=au[2],a$=au[3],ba=0===O[0]?k(O[1]):c(O[1]);return f(cK$,b,a$,[0,[0,cK_,ba],[0,[0,cK9,gk(J(1))],0]]);case +21:var +v=d[1],av=v[5],aw=v[4],ax=v[3],Q=v[2],bb=v[1];if(Q){var +ay=Q[1];if(0!==ay[0]){var +bf=ay[1][2],bg=[0,[0,cLf,gk(J(aw))],0],bh=[0,[0,cLg,fS(g,bf)],bg];return f(cLi,b,av,[0,[0,cLh,fS(i,ax)],bh])}}var +bc=[0,[0,cLa,gk(J(aw))],0],bd=[0,[0,cLb,fS(i,ax)],bc],be=[0,[0,cLc,ai(Q)],bd];return f(cLe,b,av,[0,[0,cLd,fS(k,bb)],be]);case +22:var +R=d[1],bi=R[3],bj=R[1],bk=[0,[0,cLj,fS(djW,R[2])],0];return f(cLl,b,bi,[0,[0,cLk,c(bj)],bk]);case +23:var +w=d[1],bl=w[5],bm=w[4],bn=w[3],bo=w[2],bp=w[1],bq=function(a){return 0===a[0]?A(a[1]):c(a[1])},br=[0,[0,cLm,k(bm)],0],bs=[0,[0,cLn,fS(c,bn)],br],bt=[0,[0,cLo,fS(c,bo)],bs];return f(cLq,b,bl,[0,[0,cLp,fS(bq,bp)],bt]);case +24:var +x=d[1],S=x[1],bu=x[5],bv=x[4],bw=x[3],bx=x[2],by=0===S[0]?A(S[1]):e(S[1]),bz=[0,[0,cLs,k(bw)],[0,[0,cLr,!!bv],0]];return f(cLv,b,bu,[0,[0,cLu,by],[0,[0,cLt,c(bx)],bz]]);case +25:var +y=d[1],T=y[1],bA=y[5],bB=y[4],bC=y[3],bD=y[2],bE=0===T[0]?A(T[1]):e(T[1]),bF=[0,[0,cLx,k(bC)],[0,[0,cLw,!!bB],0]];return f(cLA,b,bA,[0,[0,cLz,bE],[0,[0,cLy,c(bD)],bF]]);case +26:var +p=d[1],aJ=p[3],aK=p[2],b8=p[9],b9=p[8],b_=p[7],b$=p[6],ca=p[5],cb=p[4],cc=aK[2][4],cd=p[1],ce=0===aJ[0]?aJ[1]:X(cNB),cf=lq(i5(cc),b8),cg=[0,[0,cNr,fS(j,b9)],0],ch=[0,[0,cNt,!!0],[0,[0,cNs,N(b_)],cg]],ci=[0,[0,cNw,!!cb],[0,[0,cNv,!!ca],[0,[0,cNu,fS(B,b$)],ch]]],cj=[0,[0,cNx,o(ce)],ci],ck=[0,[0,cNy,L(aK)],cj];return f(cNA,b,cf,[0,[0,cNz,fS(g,cd)],ck]);case +27:var +E=d[1],az=E[3],bG=E[4],bH=E[2],bI=E[1];if(az)var +aA=az[1][2],aB=k(cEH(aA[1],aA[2]));else +var +aB=k2;var +bJ=[0,[0,cLC,k(bH)],[0,[0,cLB,aB],0]];return f(cLE,b,bG,[0,[0,cLD,c(bI)],bJ]);case +28:var +z=d[1],aC=z[4],aD=z[3],bK=z[5],bL=z[2],bM=z[1];if(aC){var +V=aC[1];if(0===V[0])var +bN=V[1],aE=fx(function(a){var +b=a[3],c=a[2],e=a[1],k=c?h4(b[1],c[1][1]):b[1],l=c?c[1]:b,j=0,m=0;if(e){var +d=0;switch(e[1]){case +0:var +h=lD;d=1;break;case +1:var +h=pM;d=1;break}if(d){var +i=h;j=1}}if(!j)var +i=k2;var +n=[0,[0,cVp,g(l)],[0,[0,cVo,i],m]];return f(cVr,k,0,[0,[0,cVq,g(b)],n])},bN);else +var +aG=V[1],cN=aG[1],aE=[0,f(cVn,cN,0,[0,[0,cVm,g(aG[2])],0]),0];var +W=aE}else +var +W=0;if(aD)var +aS=aD[1][1],cM=[0,[0,cVk,g(aS)],0],aF=[0,f(cVl,aS[1],0,cM),W];else +var +aF=W;switch(bM){case +0:var +Y=cLF;break;case +1:var +Y=cLK;break;default:var +Y=cLL}var +bO=[0,[0,cLH,i(bL)],[0,[0,cLG,gk(Y)],0]];return f(cLJ,b,bK,[0,[0,cLI,jO(aF)],bO]);case +29:return ap([0,b,d[1]]);case +30:var +Z=d[1],bP=Z[3],bQ=Z[1],bR=[0,[0,cLM,k(Z[2])],0];return f(cLO,b,bP,[0,[0,cLN,g(bQ)],bR]);case +31:var +aH=d[1],bS=aH[2];return f(cLQ,b,bS,[0,[0,cLP,fS(c,aH[1])],0]);case +32:var +_=d[1],bT=_[3],bU=_[1],bV=[0,[0,cLR,ha(aZ,_[2])],0];return f(cLT,b,bT,[0,[0,cLS,c(bU)],bV]);case +33:var +aI=d[1],bW=aI[2];return f(cLV,b,bW,[0,[0,cLU,c(aI[1])],0]);case +34:var +F=d[1],bX=F[4],bY=F[2],bZ=F[1],b0=[0,[0,cLW,fS(o,F[3])],0],b1=[0,[0,cLX,fS(a0,bY)],b0];return f(cLZ,b,bX,[0,[0,cLY,o(bZ)],b1]);case +35:return aj([0,b,d[1]]);case +36:return K(0,[0,b,d[1]]);case +37:return A([0,b,d[1]]);case +38:var +$=d[1],b2=$[3],b3=$[1],b4=[0,[0,cL0,k($[2])],0];return f(cL2,b,b2,[0,[0,cL1,c(b3)],b4]);default:var +aa=d[1],b5=aa[3],b6=aa[1],b7=[0,[0,cL3,k(aa[2])],0];return f(cL5,b,b5,[0,[0,cL4,c(b6)],b7])}}function +aF(a){var +b=a[2],c=b[4],d=b[3][2],e=b[1],g=a[1],h=[0,[0,cUL,f(cUX,b[2],0,0)],0],i=[0,[0,cUM,ha(aG,d)],h];return f(cUO,g,c,[0,[0,cUN,f(cUU,e,0,0)],i])}function +aE(a){var +b=a[2],d=b[1],g=b[4],h=b[2],i=a[1],j=[0,[0,cUH,ha(aG,b[3][2])],0],k=[0,[0,cUI,fS(bb,h)],j],c=d[2],e=c[2],l=c[4],m=c[3],n=c[1],o=d[1],p=e?[0,[0,cUP,R(e[1])],0]:0,q=[0,[0,cUR,ha(ba,l)],[0,[0,cUQ,!!m],0]];return f(cUK,i,g,[0,[0,cUJ,f(cUT,o,0,V([0,[0,cUS,aH(n)],q],p))],k])}function +aw(a){var +b=a[2],d=b[3],e=b[1],g=a[1],h=[0,[0,cRI,ha(c,b[2])],0];return f(cRK,g,d,[0,[0,cRJ,ha(a7,e)],h])}function +au(a){var +b=a[2],c=b[1],d=b[2],e=a[1],g=c?cRu:cRy;return f(cRx,e,d,[0,[0,cRw,!!c],[0,[0,cRv,gk(g)],0]])}function +i(a){var +b=a[2];return f(cRt,a[1],b[3],[0,[0,cRs,gk(b[1])],[0,[0,cRr,gk(b[2])],0]])}function +q(a){var +c=a[2],b=c[2],d=c[3],e=a[1];return f(cRq,e,d,[0,[0,cRp,k2],[0,[0,cRo,gk(f1(b,0,Z(b)-1|0))],[0,[0,cRn,gk(b)],0]]])}function +p(a){var +b=a[2];return f(cRm,a[1],b[3],[0,[0,cRl,b[1]],[0,[0,cRk,gk(b[2])],0]])}function +g(a){var +b=a[2];return f(cNQ,a[1],b[2],[0,[0,cNP,gk(b[1])],[0,[0,cNO,k2],[0,[0,cNN,!!0],0]]])}function +v(a){var +b=a[2],c=b[3],d=b[2],e=b[9],h=b[8],i=b[7],k=b[6],l=b[5],m=b[4],n=d[2][4],p=b[1],q=a[1],r=0===c[0]?c[1]:X(cNM),s=lq(i5(n),e),t=[0,[0,cNC,fS(j,h)],0],u=[0,[0,cNE,!!0],[0,[0,cND,N(i)],t]],v=[0,[0,cNH,!!m],[0,[0,cNG,!!l],[0,[0,cNF,fS(B,k)],u]]],w=[0,[0,cNI,o(r)],v],x=[0,[0,cNJ,L(d)],w];return f(cNL,q,s,[0,[0,cNK,fS(g,p)],x])}function +c(a){var +b=a[2],d=a[1];switch(b[0]){case +0:var +M=b[1],ap=M[2],aq=[0,[0,cL6,ha(a6,M[1])],0];return f(cL7,d,i5(ap),aq);case +1:var +m=b[1],z=m[3],O=m[2],ar=m[9],as=m[8],at=m[7],av=m[6],ax=m[4],ay=O[2][4];if(0===z[0])var +Q=0,P=o(z[1]);else +var +Q=1,P=c(z[1]);var +az=lq(i5(ay),ar),aA=[0,[0,cL8,fS(j,as)],0],aB=[0,[0,cL_,!!Q],[0,[0,cL9,N(at)],aA]],aC=[0,[0,cMc,P],[0,[0,cMb,!!ax],[0,[0,cMa,!!0],[0,[0,cL$,fS(B,av)],aB]]]];return f(cMf,d,az,[0,[0,cMe,k2],[0,[0,cMd,L(O)],aC]]);case +2:var +A=b[1],aD=A[3],aG=A[1],aH=[0,[0,cMg,h(A[2][2])],0];return f(cMi,d,aD,[0,[0,cMh,c(aG)],aH]);case +3:var +n=b[1],S=n[1],aI=n[4],aJ=n[3],aK=n[2],aN=S?EX(S[1]):cMn,aO=[0,[0,cMj,c(aJ)],0];return f(cMm,d,aI,[0,[0,cMl,gk(aN)],[0,[0,cMk,e(aK)],aO]]);case +4:var +r=b[1],aP=r[4],aQ=r[2],aR=r[1],aS=[0,[0,cMo,c(r[3])],0],aT=[0,[0,cMp,c(aQ)],aS];return f(cMr,d,aP,[0,[0,cMq,gk(x0(aR))],aT]);case +5:var +C=b[1],aU=C[4],aV=lq(i5(C[3][2][2]),aU);return f(cMs,d,aV,aL(C));case +6:return ak(cOZ,[0,d,b[1]]);case +7:var +s=b[1],aW=s[4],aX=s[2],aY=s[1],aZ=[0,[0,cMt,c(s[3])],0],a0=[0,[0,cMu,c(aX)],aZ];return f(cMw,d,aW,[0,[0,cMv,c(aY)],a0]);case +8:return v([0,d,b[1]]);case +9:return g(b[1]);case +10:var +T=b[1],a1=T[2];return f(cMy,d,a1,[0,[0,cMx,c(T[1])],0]);case +11:return aE([0,d,b[1]]);case +12:return aF([0,d,b[1]]);case +13:return i([0,d,b[1]]);case +14:return au([0,d,b[1]]);case +15:return f(cRH,d,b[1],[0,[0,cRG,k2],[0,[0,cRF,nK],0]]);case +16:return p([0,d,b[1]]);case +17:return q([0,d,b[1]]);case +18:var +t=b[1],am=t[2],an=t[1],by=t[4],bz=t[3];try{var +bD=new +RegExp(gk(an),gk(am)),ao=bD}catch(f){var +ao=k2}return f(cRE,d,by,[0,[0,cRD,ao],[0,[0,cRC,gk(bz)],[0,[0,cRB,tn([0,[0,cRA,gk(an)],[0,[0,cRz,gk(am)],0]])],0]]]);case +19:var +D=b[1];return i([0,d,[0,D[1],D[5],D[6]]]);case +20:var +u=b[1],a2=u[4],a4=u[3],a5=u[2];switch(u[1]){case +0:var +E=cMz;break;case +1:var +E=cME;break;default:var +E=cMF}var +a7=[0,[0,cMA,c(a4)],0];return f(cMD,d,a2,[0,[0,cMC,gk(E)],[0,[0,cMB,c(a5)],a7]]);case +21:var +U=b[1],a8=U[3];return f(cMG,d,a8,aM(U));case +22:var +F=b[1],a9=F[3],a_=F[1],a$=[0,[0,cMH,g(F[2])],0];return f(cMJ,d,a9,[0,[0,cMI,g(a_)],a$]);case +23:var +w=b[1],W=w[4],Y=w[3],ba=w[2],bb=w[1];if(Y)var +Z=Y[1],bc=lq(i5(Z[2][2]),W),$=bc,_=aa(Z);else +var +$=W,_=jO(0);var +bd=[0,[0,cML,fS(R,ba)],[0,[0,cMK,_],0]];return f(cMN,d,$,[0,[0,cMM,c(bb)],bd]);case +24:var +ab=b[1],be=ab[2],bf=[0,[0,cMO,ha(a3,ab[1])],0];return f(cMP,d,i5(be),bf);case +25:var +ac=b[1],G=ac[1],bg=ac[3],bh=G[4],bi=lq(i5(G[3][2][2]),bh);return f(cMR,d,bi,V(aL(G),[0,[0,cMQ,!!bg],0]));case +26:var +ad=b[1],ae=ad[1],bj=ae[3],bk=[0,[0,cMS,!!ad[3]],0];return f(cMT,d,bj,V(aM(ae),bk));case +27:var +af=b[1],bl=af[2];return f(cMV,d,bl,[0,[0,cMU,ha(c,af[1])],0]);case +28:return f(cMW,d,b[1][1],0);case +29:var +H=b[1],bA=H[3],bB=H[1],bC=[0,[0,cRQ,aw(H[2])],0];return f(cRS,d,bA,[0,[0,cRR,c(bB)],bC]);case +30:return aw([0,d,b[1]]);case +31:return f(cMX,d,b[1][1],0);case +32:var +I=b[1],bm=I[3],bn=I[1],bo=[0,[0,cMY,l(I[2])],0];return f(cM0,d,bm,[0,[0,cMZ,c(bn)],bo]);case +33:var +x=b[1],ag=x[2],ah=x[1];if(ag){var +bp=x[3],bq=[0,[0,cM1,h(ag[1])],0];return f(cM3,d,bp,[0,[0,cM2,c(ah)],bq])}var +br=x[3];return f(cM5,d,br,[0,[0,cM4,c(ah)],0]);case +34:var +J=b[1],ai=J[3],aj=J[2],al=J[1];if(7<=al)return f(cM7,d,ai,[0,[0,cM6,c(aj)],0]);switch(al){case +0:var +k=cM8;break;case +1:var +k=cNb;break;case +2:var +k=cNc;break;case +3:var +k=cNd;break;case +4:var +k=cNe;break;case +5:var +k=cNf;break;case +6:var +k=cNg;break;default:var +k=X(cNh)}return f(cNa,d,ai,[0,[0,cM$,gk(k)],[0,[0,cM_,!!1],[0,[0,cM9,c(aj)],0]]]);case +35:var +y=b[1],bs=y[4],bt=y[3],bu=y[2],bv=y[1]?cNi:cNn;return f(cNm,d,bs,[0,[0,cNl,gk(bv)],[0,[0,cNk,c(bu)],[0,[0,cNj,!!bt],0]]]);default:var +K=b[1],bw=K[2],bx=[0,[0,cNo,!!K[3]],0];return f(cNq,d,bw,[0,[0,cNp,fS(c,K[1])],bx])}}function +G(a){var +b=a[2];return f(cNU,a[1],b[2],[0,[0,cNT,gk(b[1])],[0,[0,cNS,k2],[0,[0,cNR,!!0],0]]])}function +H(a,b){var +c=b[1][2],d=c[2],e=c[1],g=[0,[0,cNV,!!b[3]],0];return f(cNY,a,d,[0,[0,cNX,gk(e)],[0,[0,cNW,Bi(l,b[2])],g]])}function +aa(a){return ha(a5,a[2][1])}function +aZ(a){var +b=a[2],d=b[3],e=b[1],g=a[1],h=[0,[0,cNZ,ha(k,b[2])],0];return f(cN1,g,d,[0,[0,cN0,fS(c,e)],h])}function +a0(a){var +b=a[2],c=b[3],d=b[1],g=a[1],h=[0,[0,cN2,o(b[2])],0];return f(cN4,g,c,[0,[0,cN3,fS(e,d)],h])}function +I(a){return jO(fx(function(a){var +b=a[2];return ag(0,b[3],a[1],[0,b[1]],b[2][2])},a))}function +ag(a,b,c,d,e){if(d)var +j=d[1],l=0===j[0]?fS(g,[0,j[1]]):fS(i,[0,j[1]]),k=l;else +var +k=fS(g,0);return f(cOx,c,a,[0,[0,cOw,k],[0,[0,cOv,h(e)],[0,[0,cOu,!!b],0]]])}function +af(a){var +b=a[2],c=b[4],d=b[3],e=b[2],f=b[1],g=a[1];return ag(c,d,g,vE(function(a){return[0,a]},f),e)}function +J(a){return a?cOG:cOH}function +ai(a){if(!a)return jO(0);var +b=a[1];if(0===b[0])return ha(bd,b[1]);var +c=b[1],d=c[2],e=c[1];return d?jO([0,f(cOJ,e,0,[0,[0,cOI,g(d[1])],0]),0]):jO(0)}function +y(a){var +b=a[2],d=b[2],e=a[1];return f(cO8,e,d,[0,[0,cO7,c(b[1])],0])}function +al(a){var +b=a[2],c=b[1],d=a[1],e=[0,[0,cO9,fS(w,b[2])],0];return f(cO$,d,0,[0,[0,cO_,g(c)],e])}function +a1(a){switch(a[0]){case +0:var +H=a[1],h=H[2],j=h[6],b=h[2],O=h[5],P=h[4],Q=h[3],R=h[1],S=H[1];switch(b[0]){case +0:var +n=j,m=0,k=i(b[1]);break;case +1:var +n=j,m=0,k=p(b[1]);break;case +2:var +n=j,m=0,k=q(b[1]);break;case +3:var +n=j,m=0,k=g(b[1]);break;case +4:var +n=j,m=0,k=G(b[1]);break;default:var +K=b[1][2],U=K[1],W=lq(K[2],j),n=W,m=1,k=c(U)}switch(R){case +0:var +x=cPc;break;case +1:var +x=cPk;break;case +2:var +x=cPl;break;default:var +x=cPm}var +T=[0,[0,cPg,gk(x)],[0,[0,cPf,!!P],[0,[0,cPe,!!m],[0,[0,cPd,ha(y,O)],0]]]];return f(cPj,S,n,[0,[0,cPi,k],[0,[0,cPh,v(Q)],T]]);case +1:var +I=a[1],e=I[2],w=e[7],M=e[6],D=e[2],o=e[1],ai=e[5],aj=e[4],ak=e[3],al=I[1];switch(o[0]){case +0:var +u=w,t=0,s=i(o[1]);break;case +1:var +u=w,t=0,s=p(o[1]);break;case +2:var +u=w,t=0,s=q(o[1]);break;case +3:var +u=w,t=0,s=g(o[1]);break;case +4:var +F=X(cPF),u=F[3],t=F[2],s=F[1];break;default:var +N=o[1][2],ar=N[1],as=lq(N[2],w),u=as,t=1,s=c(ar)}if(typeof +D==="number")if(D)var +A=0,E=0;else +var +A=1,E=0;else +var +A=0,E=[0,D[1]];var +am=A?[0,[0,cPw,!!A],0]:0,an=0===M?0:[0,[0,cPE,ha(y,M)],0],ao=V(an,am),ap=[0,[0,cPz,!!t],[0,[0,cPy,!!aj],[0,[0,cPx,fS(r,ai)],0]]],aq=[0,[0,cPA,Bi(l,ak)],ap];return f(cPD,al,u,V([0,[0,cPC,s],[0,[0,cPB,fS(c,E)],aq]],ao));default:var +J=a[1],d=J[2],L=d[6],B=d[2],Y=d[7],Z=d[5],_=d[4],$=d[3],aa=d[1],ab=J[1];if(typeof +B==="number")if(B)var +z=0,C=0;else +var +z=1,C=0;else +var +z=0,C=[0,B[1]];var +ac=z?[0,[0,cPn,!!z],0]:0,ad=0===L?0:[0,[0,cPv,ha(y,L)],0],ae=V(ad,ac),af=[0,[0,cPq,!!0],[0,[0,cPp,!!_],[0,[0,cPo,fS(r,Z)],0]]],ag=[0,[0,cPr,Bi(l,$)],af],ah=[0,[0,cPs,fS(c,C)],ag];return f(cPu,ab,Y,V([0,[0,cPt,G(aa)],ah],ae))}}function +am(a){var +b=a[2],h=b[3],j=b[2],d=b[1],k=a[1],m=b[4],n=0===d[0]?g(d[1]):i(d[1]);if(h)var +o=[0,[0,cPO,c(h[1])],0],l=f(cPQ,k,0,[0,[0,cPP,e(j)],o]);else +var +l=e(j);return f(cPU,k,0,[0,[0,cPT,n],[0,[0,cPS,l],[0,[0,cPR,!!m],0]]])}function +an(a){var +b=a[2],c=a[1];switch(b[0]){case +0:var +d=b[1],n=d[4],o=d[1],r=[0,[0,cPW,!!d[2]],[0,[0,cPV,!!d[3]],0]],s=[0,[0,cP0,ha(function(a){var +b=a[2],c=b[1],d=a[1],e=[0,[0,cPX,au(b[2])],0];return f(cPZ,d,0,[0,[0,cPY,g(c)],e])},o)],r];return f(cP1,c,i5(n),s);case +1:var +e=b[1],t=e[4],u=e[1],v=[0,[0,cP3,!!e[2]],[0,[0,cP2,!!e[3]],0]],w=[0,[0,cP7,ha(function(a){var +b=a[2],c=b[1],d=a[1],e=[0,[0,cP4,p(b[2])],0];return f(cP6,d,0,[0,[0,cP5,g(c)],e])},u)],v];return f(cP8,c,i5(t),w);case +2:var +h=b[1],k=h[1],x=h[4],y=h[3],z=h[2];if(0===k[0])var +A=k[1],m=fx(function(a){var +b=a[1];return f(cP_,b,0,[0,[0,cP9,g(a[2][1])],0])},A);else +var +C=k[1],m=fx(function(a){var +b=a[2],c=b[1],d=a[1],e=[0,[0,cQd,i(b[2])],0];return f(cQf,d,0,[0,[0,cQe,g(c)],e])},C);var +B=[0,[0,cQb,jO(m)],[0,[0,cQa,!!z],[0,[0,cP$,!!y],0]]];return f(cQc,c,i5(x),B);case +3:var +l=b[1],D=l[3],E=l[1],F=[0,[0,cQg,!!l[2]],0],G=[0,[0,cQj,ha(function(a){var +b=a[1];return f(cQi,b,0,[0,[0,cQh,g(a[2][1])],0])},E)],F];return f(cQk,c,i5(D),G);default:var +j=b[1],H=j[4],I=j[1],J=[0,[0,cQm,!!j[2]],[0,[0,cQl,!!j[3]],0]],K=[0,[0,cQq,ha(function(a){var +b=a[2],c=b[1],d=a[1],e=[0,[0,cQn,q(b[2])],0];return f(cQp,d,0,[0,[0,cQo,g(c)],e])},I)],J];return f(cQr,c,i5(H),K)}}function +t(a){var +b=a[2],c=b[1],d=b[3],e=b[2],h=a[1],i=0===c[0]?g(c[1]):O(c[1]);return f(cQC,h,d,[0,[0,cQB,i],[0,[0,cQA,fS(w,e)],0]])}function +e(a){var +b=a[2],d=a[1];switch(b[0]){case +0:var +e=b[1],h=e[3],i=e[1],j=[0,[0,cQD,Bi(l,e[2])],0],k=[0,[0,cQE,ha(a4,i)],j];return f(cQF,d,i5(h),k);case +1:var +g=b[1],m=g[3],n=g[1],o=[0,[0,cQG,Bi(l,g[2])],0],p=[0,[0,cQH,ha(a2,n)],o];return f(cQI,d,i5(m),p);case +2:return H(d,b[1]);default:return c(b[1])}}function +aq(a){var +b=a[2],d=b[2],g=b[1],h=a[1];if(!d)return e(g);var +i=[0,[0,cQJ,c(d[1])],0];return f(cQL,h,0,[0,[0,cQK,e(g)],i])}function +ar(a){var +b=a[2],c=b[2],d=a[1];return f(cQO,d,c,[0,[0,cQN,f0],[0,[0,cQM,l(b[1])],0]])}function +L(a){var +c=a[2],d=c[3],g=c[2],b=c[1];if(d){var +h=d[1],i=h[2],l=i[2],m=h[1],n=f(cQQ,m,l,[0,[0,cQP,e(i[1])],0]),j=U([0,n,jk(aq,g)]),o=b?[0,ar(b[1]),j]:j;return jO(o)}var +k=fx(aq,g),p=b?[0,ar(b[1]),k]:k;return jO(p)}function +as(a,b){var +c=b[2];return f(cQS,a,c,[0,[0,cQR,e(b[1])],0])}function +a2(a){switch(a[0]){case +0:var +b=a[1],d=b[2],g=d[2],h=d[1],j=b[1];if(!g)return e(h);var +k=[0,[0,cQT,c(g[1])],0];return f(cQV,j,0,[0,[0,cQU,e(h)],k]);case +1:var +i=a[1];return as(i[1],i[2]);default:return k2}}function +l(a){var +b=a[1];return f(cUr,b,0,[0,[0,cUq,h(a[2])],0])}function +N(a){switch(a[0]){case +0:return k2;case +1:return l(a[1]);default:var +b=a[1],c=b[2],d=b[1];return f(cUt,d,0,[0,[0,cUs,ay([0,c[1],c[2]])],0])}}function +a3(a){if(0===a[0]){var +s=a[1],b=s[2],A=s[1];switch(b[0]){case +0:var +B=b[3],C=b[1],e=0,o=B,n=0,m=cQW,l=c(b[2]),d=C;break;case +1:var +u=b[2],F=b[1],e=0,o=0,n=1,m=cQ5,l=v([0,u[1],u[2]]),d=F;break;case +2:var +w=b[2],G=b[3],H=b[1],e=G,o=0,n=0,m=cQ6,l=v([0,w[1],w[2]]),d=H;break;default:var +x=b[2],I=b[3],J=b[1],e=I,o=0,n=0,m=cQ7,l=v([0,x[1],x[2]]),d=J}switch(d[0]){case +0:var +k=e,j=0,h=i(d[1]);break;case +1:var +k=e,j=0,h=p(d[1]);break;case +2:var +k=e,j=0,h=q(d[1]);break;case +3:var +k=e,j=0,h=g(d[1]);break;case +4:var +r=X(cQ4),k=r[3],j=r[2],h=r[1];break;default:var +t=d[1][2],D=t[1],E=lq(t[2],e),k=E,j=1,h=c(D)}return f(cQ3,A,k,[0,[0,cQ2,h],[0,[0,cQ1,l],[0,[0,cQ0,gk(m)],[0,[0,cQZ,!!n],[0,[0,cQY,!!o],[0,[0,cQX,!!j],0]]]]]])}var +y=a[1],z=y[2],K=z[2],L=y[1];return f(cQ9,L,K,[0,[0,cQ8,c(z[1])],0])}function +a4(a){if(0!==a[0]){var +t=a[1];return as(t[1],t[2])}var +m=a[1],k=m[2],n=k[3],l=k[2],b=k[1],u=k[4],v=m[1];switch(b[0]){case +0:var +j=0,h=0,d=i(b[1]);break;case +1:var +j=0,h=0,d=p(b[1]);break;case +2:var +j=0,h=0,d=q(b[1]);break;case +3:var +j=0,h=0,d=g(b[1]);break;default:var +s=b[1][2],y=s[2],j=y,h=1,d=c(s[1])}if(n)var +o=n[1],w=h4(l[1],o[1]),x=[0,[0,cQ_,c(o)],0],r=f(cRa,w,0,[0,[0,cQ$,e(l)],x]);else +var +r=e(l);return f(cRh,v,j,[0,[0,cRg,d],[0,[0,cRf,r],[0,[0,cRe,rM],[0,[0,cRd,!!0],[0,[0,cRc,!!u],[0,[0,cRb,!!h],0]]]]]])}function +at(a){var +b=a[2],d=b[2],e=a[1];return f(cRj,e,d,[0,[0,cRi,c(b[1])],0])}function +a5(a){return 0===a[0]?c(a[1]):at(a[1])}function +a6(a){switch(a[0]){case +0:return c(a[1]);case +1:return at(a[1]);default:return k2}}function +a7(a){var +b=a[2],c=b[1],d=b[2],e=a[1];return f(cRP,e,0,[0,[0,cRO,tn([0,[0,cRM,gk(c[1])],[0,[0,cRL,gk(c[2])],0]])],[0,[0,cRN,!!d],0]])}function +ax(a){switch(a){case +0:return cRT;case +1:return cRU;default:return cRV}}function +a8(a){var +b=a[2],d=b[1],g=a[1],h=[0,[0,cRZ,fS(c,b[2])],0];return f(cR1,g,0,[0,[0,cR0,e(d)],h])}function +r(a){var +c=a[2],d=c[2],e=a[1];switch(c[1]){case +0:var +b=cR2;break;case +1:var +b=cR5;break;case +2:var +b=cR6;break;case +3:var +b=cR7;break;case +4:var +b=cR8;break;default:var +b=cR9}return f(cR4,e,d,[0,[0,cR3,gk(b)],0])}function +aD(a,b){var +d=b[3],e=b[2];switch(b[4]){case +0:var +c=cTV;break;case +1:var +c=cTW;break;default:var +c=cTX}return f(cT0,a,d,[0,[0,cTZ,gk(c)],[0,[0,cTY,h(e)],0]])}function +aA(a){var +b=a[2],c=b[1],d=b[3],e=b[2],h=a[1],i=0===c[0]?g(c[1]):O(c[1]);return f(cTD,h,d,[0,[0,cTC,i],[0,[0,cTB,fS(w,e)],0]])}function +u(a,b){var +c=b[2],j=c[4],k=c[3],l=c[2],m=c[1],n=b[1],d=M(function(a,b){var +d=a[4],e=a[3],j=a[2],k=a[1];switch(b[0]){case +0:var +y=b[1],c=y[2],t=c[2],s=c[1],I=c[8],J=c[7],K=c[6],L=c[5],M=c[4],N=c[3],O=y[1];switch(s[0]){case +0:var +l=i(s[1]);break;case +1:var +l=p(s[1]);break;case +2:var +l=q(s[1]);break;case +3:var +l=g(s[1]);break;case +4:var +l=X(cSZ);break;default:var +l=X(cS0)}switch(t[0]){case +0:var +w=cSN,v=h(t[1]);break;case +1:var +F=t[1],w=cSX,v=z([0,F[1],F[2]]);break;default:var +G=t[1],w=cSY,v=z([0,G[1],G[2]])}return[0,[0,f(cSW,O,I,[0,[0,cSV,l],[0,[0,cSU,v],[0,[0,cST,!!K],[0,[0,cSS,!!N],[0,[0,cSR,!!M],[0,[0,cSQ,!!L],[0,[0,cSP,fS(r,J)],[0,[0,cSO,gk(w)],0]]]]]]]]),k],j,e,d];case +1:var +A=b[1],H=A[2],P=H[2],R=A[1];return[0,[0,f(cS2,R,P,[0,[0,cS1,h(H[1])],0]),k],j,e,d];case +2:var +B=b[1],m=B[2],S=m[6],T=m[4],U=m[3],V=m[2],W=m[1],Y=B[1],Z=[0,[0,cS4,!!T],[0,[0,cS3,fS(r,m[5])],0]],_=[0,[0,cS5,h(U)],Z],$=[0,[0,cS6,h(V)],_];return[0,k,[0,f(cS8,Y,S,[0,[0,cS7,fS(g,W)],$]),j],e,d];case +3:var +C=b[1],x=C[2],aa=x[3],ab=C[1],ac=[0,[0,cS9,!!x[2]],0];return[0,k,j,[0,f(cS$,ab,aa,[0,[0,cS_,z(x[1])],ac]),e],d];case +4:var +D=b[1],o=D[2],an=o[6],ao=o[5],ap=o[4],aq=o[3],ar=o[1],as=D[1],at=[0,[0,cTj,!!aq],[0,[0,cTi,!!ap],[0,[0,cTh,!!ao],[0,[0,cTg,h(o[2])],0]]]];return[0,k,j,e,[0,f(cTl,as,an,[0,[0,cTk,g(ar)],at]),d]];default:var +E=b[1],n=E[2],ad=n[6],ae=n[4],af=n[3],ag=n[2],ah=n[1],ai=E[1],aj=0;switch(n[5]){case +0:var +u="PlusOptional";break;case +1:var +u="MinusOptional";break;case +2:var +u=aXm;break;default:var +u=k2}var +ak=[0,[0,cTb,fS(r,ae)],[0,[0,cTa,u],aj]],al=[0,[0,cTc,h(af)],ak],am=[0,[0,cTd,h(ag)],al];return[0,[0,f(cTf,ai,ad,[0,[0,cTe,Q(ah)],am]),k],j,e,d]}},cSF,k),o=d[3],s=d[2],t=d[1],u=[0,[0,cSG,jO(U(d[4]))],0],v=[0,[0,cSH,jO(U(o))],u],w=[0,[0,cSI,jO(U(s))],v],e=[0,[0,cSK,!!m],[0,[0,cSJ,jO(U(t))],w]],x=a?[0,[0,cSL,!!l],e]:e;return f(cSM,n,i5(j),x)}function +z(a){var +b=a[2],d=b[3],c=b[2][2],e=b[4],g=c[3],i=c[2],k=c[1],l=b[1],m=a[1],n=lq(i5(c[4]),e),o=[0,[0,cSr,fS(j,l)],0],p=[0,[0,cSs,fS(a9,g)],o],q=0===d[0]?h(d[1]):ay(d[1]),r=[0,[0,cSu,fS(a_,k)],[0,[0,cSt,q],p]];return f(cSw,m,n,[0,[0,cSv,ha(function(a){return az(0,a)},i)],r])}function +h(a){var +b=a[2],c=a[1];switch(b[0]){case +0:return f(cR_,c,b[1],0);case +1:return f(cR$,c,b[1],0);case +2:return f(cSa,c,b[1],0);case +3:return f(cSb,c,b[1],0);case +4:return f(cSc,c,b[1],0);case +5:return f(cSe,c,b[1],0);case +6:return f(cSf,c,b[1],0);case +7:return f(cSg,c,b[1],0);case +8:return f(cSh,c,b[2],0);case +9:return f(cSd,c,b[1],0);case +10:return f(cUp,c,b[1],0);case +11:var +s=b[1],Y=s[2];return f(cSj,c,Y,[0,[0,cSi,h(s[1])],0]);case +12:return z([0,c,b[1]]);case +13:var +e=b[1],p=e[2],M=e[4],N=e[3],O=e[1],R=lq(i5(p[2][3]),M),q=p[2],S=q[2],T=q[1],U=[0,[0,cOp,fS(j,O)],0],W=[0,[0,cOq,P(N)],U],X=[0,[0,cOr,fS(af,S)],W];return f(cOt,c,R,[0,[0,cOs,I(T)],X]);case +14:return u(1,[0,c,b[1]]);case +15:var +i=b[1],Z=i[3],_=i[2],$=[0,[0,cTm,u(0,i[1])],0];return f(cTo,c,Z,[0,[0,cTn,ha(t,_)],$]);case +16:var +v=b[1],aa=v[2];return f(cTq,c,aa,[0,[0,cTp,h(v[1])],0]);case +17:var +d=b[1],ab=d[5],ac=d[3],ad=d[2],ae=d[1],ag=[0,[0,cTr,h(d[4])],0],ah=[0,[0,cTs,h(ac)],ag],ai=[0,[0,cTt,h(ad)],ah];return f(cTv,c,ab,[0,[0,cTu,h(ae)],ai]);case +18:var +x=b[1],aj=x[2];return f(cTx,c,aj,[0,[0,cTw,Q(x[1])],0]);case +19:return aA([0,c,b[1]]);case +20:var +y=b[1],ak=y[3];return f(cTG,c,ak,aB(y));case +21:var +A=b[1],J=A[1],al=J[3],am=[0,[0,cTH,!!A[2]],0];return f(cTI,c,al,V(aB(J),am));case +22:var +B=b[1],n=B[1],an=B[2];return f(cTK,c,an,[0,[0,cTJ,ha(h,[0,n[1],[0,n[2],n[3]]])],0]);case +23:var +C=b[1],o=C[1],ao=C[2];return f(cTM,c,ao,[0,[0,cTL,ha(h,[0,o[1],[0,o[2],o[3]]])],0]);case +24:var +k=b[1],K=k[2],ap=k[3],aq=k[1],ar=K?[0,[0,cTN,w(K[1])],0]:0;return f(cTP,c,ap,[0,[0,cTO,aC(aq)],ar]);case +25:var +D=b[1],as=D[2];return f(cTU,c,as,[0,[0,cTT,h(D[1])],0]);case +26:return aD(c,b[1]);case +27:var +E=b[1],at=E[2];return f(cT2,c,at,[0,[0,cT1,h(E[1])],0]);case +28:var +F=b[1],au=F[2],av=F[1],aw=0;return f(cT4,c,au,[0,[0,cT3,ha(function(a){var +b=a[2],d=a[1];switch(b[0]){case +0:return h(b[1]);case +1:var +c=b[1],i=c[2],j=c[1],k=[0,[0,cT5,!!c[4]],0],l=[0,[0,cT6,fS(r,c[3])],k],m=[0,[0,cT7,h(i)],l];return f(cT9,d,0,[0,[0,cT8,g(j)],m]);default:var +e=b[1],n=e[1],o=[0,[0,cT_,h(e[2])],0];return f(cUa,d,0,[0,[0,cT$,fS(g,n)],o])}},av)],aw]);case +29:var +l=b[1];return f(cUd,c,l[3],[0,[0,cUc,gk(l[1])],[0,[0,cUb,gk(l[2])],0]]);case +30:var +m=b[1];return f(cUg,c,m[3],[0,[0,cUf,m[1]],[0,[0,cUe,gk(m[2])],0]]);case +31:var +G=b[1];return f(cUj,c,G[3],[0,[0,cUi,k2],[0,[0,cUh,gk(G[2])],0]]);case +32:var +H=b[1],L=H[1],ax=H[2],ay=0,az=L?cUk:cUo;return f(cUn,c,ax,[0,[0,cUm,!!L],[0,[0,cUl,gk(az)],ay]]);case +33:return f(cSk,c,b[1],0);case +34:return f(cSl,c,b[1],0);default:return f(cSm,c,b[1],0)}}function +ay(a){var +b=a[2],c=b[2],d=b[3],e=c[1],i=a[1],j=[0,[0,cSn,!!b[1]],0],k=[0,[0,cSo,fS(h,c[2])],j],l=[0,[0,cSp,g(e)],k];return f(cSq,i,i5(d),l)}function +az(a,b){var +c=b[2],d=c[1],e=b[1],i=[0,[0,cSx,!!c[3]],0],j=[0,[0,cSy,h(c[2])],i];return f(cSA,e,a,[0,[0,cSz,fS(g,d)],j])}function +a9(a){var +b=a[2];return az(b[2],b[1])}function +a_(a){var +b=a[2],c=b[2],d=a[1],e=[0,[0,cSC,h(b[1][2])],[0,[0,cSB,!!0],0]];return f(cSE,d,c,[0,[0,cSD,fS(g,0)],e])}function +O(a){var +c=a[2],b=c[1],d=c[2],e=a[1],h=0===b[0]?g(b[1]):O(b[1]);return f(cTA,e,0,[0,[0,cTz,h],[0,[0,cTy,g(d)],0]])}function +aB(a){var +b=a[1],c=[0,[0,cTE,h(a[2])],0];return[0,[0,cTF,h(b)],c]}function +aC(a){if(0===a[0])return g(a[1]);var +b=a[1],c=b[2],d=c[2],e=b[1],h=aC(c[1]);return f(cTS,e,0,[0,[0,cTR,h],[0,[0,cTQ,g(d)],0]])}function +P(a){return 0===a[0]?k2:aD(a[1],a[2])}function +j(a){var +b=a[2],c=b[2],d=a[1],e=[0,[0,cUu,ha(Q,b[1])],0];return f(cUv,d,i5(c),e)}function +Q(a){var +b=a[2],c=b[1][2],d=b[5],e=b[4],g=b[2],i=c[2],j=c[1],k=a[1],m=b[3]?[0,[0,cUw,!!1],0]:0,n=[0,[0,cUx,fS(h,d)],0],o=[0,[0,cUy,fS(r,e)],n];return f(cUB,k,i,V([0,[0,cUA,gk(j)],[0,[0,cUz,Bi(l,g)],o]],m))}function +w(a){var +b=a[2],c=b[2],d=a[1],e=[0,[0,cUC,ha(h,b[1])],0];return f(cUD,d,i5(c),e)}function +R(a){var +b=a[2],c=b[2],d=a[1],e=[0,[0,cUE,ha(a$,b[1])],0];return f(cUF,d,i5(c),e)}function +a$(a){if(0===a[0])return h(a[1]);var +b=a[1],c=b[1],d=b[2][1];return aA([0,c,[0,[0,rh(0,[0,c,cUG])],0,d]])}function +ba(a){if(0===a[0]){var +d=a[1],g=d[2],b=g[1],i=g[2],j=d[1],k=0===b[0]?s(b[1]):aK(b[1]);return f(cU0,j,0,[0,[0,cUZ,k],[0,[0,cUY,fS(bc,i)],0]])}var +e=a[1],h=e[2],l=h[2],m=e[1];return f(cU2,m,l,[0,[0,cU1,c(h[1])],0])}function +bb(a){var +b=a[1];return f(cUW,b,0,[0,[0,cUV,aH(a[2][1])],0])}function +aI(a){var +d=a[2],e=d[1],b=a[1],g=d[2],h=e?c(e[1]):f(cU5,[0,b[1],[0,b[2][1],b[2][2]+1|0],[0,b[3][1],b[3][2]-1|0]],0,0);return f(cU4,b,i5(g),[0,[0,cU3,h],0])}function +aG(a){var +b=a[2],d=a[1];switch(b[0]){case +0:return aE([0,d,b[1]]);case +1:return aF([0,d,b[1]]);case +2:return aI([0,d,b[1]]);case +3:var +e=b[1],h=e[2];return f(cU7,d,h,[0,[0,cU6,c(e[1])],0]);default:var +g=b[1];return f(cU_,d,0,[0,[0,cU9,gk(g[1])],[0,[0,cU8,gk(g[2])],0]])}}function +s(a){var +b=a[2];return f(cVg,a[1],b[2],[0,[0,cVf,gk(b[1])],0])}function +aK(a){var +b=a[2],c=b[1],d=a[1],e=[0,[0,cVc,s(b[2])],0];return f(cVe,d,0,[0,[0,cVd,s(c)],e])}function +aJ(a){var +c=a[2],b=c[1],d=c[2],e=a[1],g=0===b[0]?s(b[1]):aJ(b[1]);return f(cVb,e,0,[0,[0,cVa,g],[0,[0,cU$,s(d)],0]])}function +aH(a){switch(a[0]){case +0:return s(a[1]);case +1:return aK(a[1]);default:return aJ(a[1])}}function +bc(a){if(0===a[0]){var +b=a[1];return i([0,b[1],b[2]])}var +c=a[1];return aI([0,c[1],c[2]])}function +bd(a){var +b=a[2],c=b[2],d=b[1],e=a[1],h=c?g(c[1]):g(d);return f(cVj,e,0,[0,[0,cVi,g(d)],[0,[0,cVh,h],0]])}function +x(a){return ha(be,a)}function +be(a){var +b=a[2],e=a[1];if(b[1])var +d=b[2],c=cVs;else +var +d=b[2],c=cVu;return f(c,e,0,[0,[0,cVt,gk(d)],0])}function +B(a){var +b=a[2],d=b[1],h=b[2],i=a[1];if(d)var +g=[0,[0,cVv,c(d[1])],0],e=cVw;else +var +g=0,e=cVx;return f(e,i,h,g)}function +aL(a){var +b=a[2],d=a[1],e=[0,[0,cVy,aa(a[3])],0],f=[0,[0,cVz,fS(R,b)],e];return[0,[0,cVA,c(d)],f]}function +aM(a){var +b=a[2],f=a[1];switch(b[0]){case +0:var +e=0,d=g(b[1]);break;case +1:var +e=0,d=G(b[1]);break;default:var +e=1,d=c(b[1])}return[0,[0,cVD,c(f)],[0,[0,cVC,d],[0,[0,cVB,!!e],0]]]}var +C=Y[2],aN=C[2],bf=C[4],bg=C[3],bh=Y[1],bi=$(C[1]),aO=[0,[0,cKI,bi],[0,[0,cKH,x(bf)],0]];if(aN)var +aP=aN[1],aQ=V(aO,[0,[0,cKL,f(cKK,aP[1],0,[0,[0,cKJ,gk(aP[2])],0])],0]);else +var +aQ=aO;var +S=f(cKM,bh,bg,aQ),bs=V(br,aIJ[1]);S["errors"]=ha(function(a){var +b=a[1],c=[0,[0,cKy,gk(Z6(a[2]))],0];return tn([0,[0,cKz,aGV(b)],c])},bs);if(aV){var +bt=W[1];S[aTF]=jO(jk(function(a){var +d=a[2],b=a[1],e=a[3],f=[0,[0,cGs,gk(Z$(d))],0],g=[0,Ff(E,b[3]),0],h=[0,[0,cGt,jO([0,Ff(E,b[2]),g])],f],i=[0,[0,cGw,tn([0,[0,cGv,b[3][1]],[0,[0,cGu,b[3][2]],0]])],0],j=[0,[0,cGA,tn([0,[0,cGz,tn([0,[0,cGy,b[2][1]],[0,[0,cGx,b[2][2]],0]])],i])],h];switch(e){case +0:var +c=cGB;break;case +1:var +c=cGE;break;case +2:var +c=cGF;break;case +3:var +c=cGG;break;case +4:var +c=cGH;break;default:var +c=cGI}return tn([0,[0,cGD,gk(aEb(d))],[0,[0,cGC,gk(c)],j]])},bt))}return S},dj5=rp(dj4),dj7=rp(dj6),aap=10,dj9=rp(dj8),dj_=function(a,b,c,d){var +i=c,f=d;for(;;){var +e=i[2],g=i[1];if(!f)return[0,g,e];var +y=f[1],j=y[2],h=y[1];if(!q(j,Im)){var +k=f[2];if(k){var +v=k[1],o=v[1],F=v[2];if(!q(F,ars)){var +af=k[2],ag=0===e[1]?[0,g,[0,dkh,e[2],e[3],e[4],e[5]]]:[0,[0,[0,h,0],g],e],i=ag,f=af;continue}if(!q(F,"strict-local")){var +ad=k[2],ae=0===e[1]?[0,g,[0,dkg,e[2],e[3],e[4],e[5]]]:[0,[0,[0,h,0],g],e],i=ae,f=ad;continue}var +G=v[2],ab=k[2],w=0===EP(h[1],o[1])?1:0;if(w)var +J=h[3][1]q[1])return 1;var +d=v;continue;case +5:case +23:var +g=b[1][2];break;default:return 1}if(!g)return 0;var +t=g[1][2][1];return p1(t,function(a){return 0===a[0]?1:0})}}return function(a){return c(a)}},aaE=function(a,b,c,d,e,f,g){return[5,b,N8(g),f,c,d,g,e,a]},FX=function(a,b){var +c=b[5];if(b[4])return c?3:1;if(c)return 2;if(a){var +d=a[1];if(3===d[0]&&!q(d[1][2][1],ig))return 6}return 0},dpT=m(AS,dpS),afq=aaz(kF,Bw,ft),dqw=gP(dpK,function(y){var +A=fK(y,dpU),k=fK(y,dpV),f=fK(y,dpW),a=kC(y,dpH,dpJ),Z=a[4],c=a[5],_=a[6],$=a[7],aa=a[8],ab=a[9],ac=a[10],ad=a[11],J=a[12],L=a[13],ae=a[14],ag=a[15],F=a[16],M=a[17],D=a[18],g=a[19],ah=a[20],ai=a[21],aj=a[22],ak=a[23],al=a[24],d=a[25],N=a[26],O=a[27],am=a[28],Q=a[29],an=a[30],ao=a[31],aq=a[37],R=a[45],ar=a[53],C=a[77],u=a[86],as=a[iR],au=a[ma],av=a[mf],aw=a[lQ],ax=a[oA],G=a[oi],r=a[rO],ay=a[qb],az=a[vj],V=a[Dv],t=a[CS],I=a[xj],W=a[sG],aA=a[xd],aB=a[IA],aC=a[Q8],X=a[a1h],i=a[alx],h=a[a29],e=a[aTN],v=a[aoo],j=a[Hw],H=a[RQ],z=a[Sn],w=a[CO],E=a[zG],aD=a[3],aE=a[33],aF=a[34],aG=a[36],aH=a[39],aI=a[46],aJ=a[51],aK=a[54],aM=a[55],aN=a[72],aO=a[75],aP=a[82],aQ=a[89],aR=a[iZ],aS=a[iT],aU=a[jx],aV=a[kL],aW=a[kv],aX=a[gx],aZ=a[lF],a0=a[kw],a1=a[lC],a2=a[qr],a3=a[l_],a4=a[jH],a5=a[qT],a6=a[wN],a7=a[wT],a8=a[tT],a9=a[Dn],a_=a[Do],a$=a[rT],ba=a[tU],bb=a[xl],bc=a[Ab],bd=a[xw],be=a[tO],bf=a[wR],bg=a[xg],bh=a[ld],bi=a[tH],bj=a[zq],bk=a[z4],bl=a[wZ],bm=a[t7],bn=a[zI],bo=a[zy],bp=a[zK],bq=a[sT],br=a[zn],bs=a[Dq],bt=a[Ds],bu=a[zw],bv=a[w6],bw=a[tP],bx=a[w5],by=a[u$],bz=a[CK],bA=a[H5],bB=a[HS],bC=a[arI],bD=a[RO],bE=a[anU],bF=a[akY],b=fG(y,aI_,0,aI9,jB,1),Y=b[pR],bG=b[1],bH=b[25],bI=b[44],bJ=b[49],bK=b[59],bL=b[60],bM=b[64],bN=b[66],bO=b[69],bP=b[78],bQ=b[94],bR=b[99],bS=b[iQ],bT=b[jx],bU=b[k8],bV=b[gN],bW=b[jX],bX=b[jI],bY=b[mf],bZ=b[tT],b0=b[vj],b1=b[xc],b2=b[Dv],b3=b[qm],b4=b[Al],b5=b[zN],b6=b[va];function +b7(d,b,c){var +a=c[2],e=c[1],f=n(m(b3,d),b,c);fV(a,function(a){var +b=a[2][1];return b?l(d[1][1+u],d,b[1][1],[0,[0,[1,e],0],0]):0});return f}function +b8(d,b,c){var +a=c[1],e=p0(a,function(a){if(0!==a[0])return 0;var +b=a[1][2];if(0!==b[0])return 0;var +c=b[1];switch(c[0]){case +0:case +3:var +e=c[1];if(n(d[1+A][3],e[2][1],e[1]))return 1;break}return aaD(d[1+A],b[2])})?b:m(ho([9,m(afq[3],a)]),b);function +f(a){switch(a[0]){case +0:return m(ho([0,a[1][2][1]]),e);case +3:var +b=a[1][2][1];return q(b,xr)?m(ho([0,b]),e):0;case +4:return 0;case +5:var +c=a[1][2][1];o(d[1][1+g],d,0,0,c);return m(ho([1,fX(c)]),e);default:return 0}}return fV(a,function(a){if(0!==a[0]){var +n=a[1][2][1],p=m(ho(0),e);return o(d[1][1+g],d,p,0,n)}var +c=a[1],b=c[2],h=c[1];if(0===b[0]){var +i=b[2],j=f(b[1]);o(d[1][1+g],d,j,0,i);return 0}var +k=b[2][2],l=f(b[1]);fU(d[1][1+F],d,l,0,0,at,0,h,k);return 0})}function +b9(a,b,c){return n(a[1+f],b,dpX)}function +b_(a,b,c,d){var +e=d[2],j=d[3];switch(d[1]){case +0:var +k=xQ(b,[0,[0,[1,e],1],0]),i=k,h=m(ho(8),b),f=1;break;case +1:var +i=b,h=b,f=1;break;default:var +l=xQ(b,[0,[0,[1,e],1],0]),i=l,h=m(ho(8),b),f=c}o(a[1][1+g],a,h,f,e);return o(a[1][1+g],a,i,c,j)}function +b$(a,b,c){return n(a[1+f],b,dpY)}function +ca(h,i,c){var +a=c[3],b=c[2],d=c[1];if(4<=d){if(21<=d&&i){o(h[1][1+g],h,0,i,b);n(h[1][1+t],h,a);return 0}}else if(i){var +e=0,f=0,j=function(a,b){n(h[1][1+t],h,a);n(h[1][1+t],h,b);return 0},k=0,l=function(a,b){o(h[1][1+g],h,0,i,b);n(h[1][1+t],h,a);return 0},m=function(a,b){o(h[1][1+g],h,0,i,a);n(h[1][1+t],h,b);return 0},p=function(a,b,c,d,e,f){o(h[1][1+g],h,0,i,e);n(h[1][1+t],h,f);return 0},q=function(a,b,c,d,e){o(h[1][1+g],h,0,i,d);n(h[1][1+t],h,e);return 0},r=function(a,b,c,d,e,f){o(h[1][1+g],h,0,i,d);n(h[1][1+t],h,f);return 0},s=function(a,b,c,d,e){o(h[1][1+g],h,0,i,b);n(h[1][1+t],h,c);return 0};return afC(afq[4],s,r,q,p,m,l,k,j,f,e,g6,b,a)}n(h[1][1+t],h,b);n(h[1][1+t],h,a);return 0}function +cb(a,b,c){return n(a[1+f],b,dpZ)}function +cc(a,b,c){var +d=c[2],e=c[3];o(a[1][1+g],a,0,1,c[1]);o(a[1][1+g],a,b,0,d);var +f=xQ(b,[0,[0,[1,d],1],0]);return o(a[1][1+g],a,f,0,e)}function +cd(a,b,c){return n(a[1+f],b,dp0)}function +ce(e,f,c,d){var +a=d[1];Wv(a,0,function(a,b,c){switch(c[0]){case +0:var +d=c[1],h=b?0:[0,a],i=0,j=[3,h],k=b?0:m(ho(j),f);o(e[1][1+g],e,k,i,d);return b;case +1:var +l=c[1][2],n=b?0:m(ho([4,a]),f);o(e[1][1+g],e,n,0,l[1]);return 1;default:return b}});var +b=qx(a);if(!b)return b;var +h=m(ho(1),f);return l(e[1][1+u],e,c,h)}function +cf(a,b,c){return n(a[1+f],b,dp1)}function +cg(e,b,c,d){var +a=d[2],f=d[1],w=n(fP[27],[0,4,f],e[1+k][4]),B=0;if(w){var +q=w[1],J=0;if(typeof +q==="number"||1===q[0])J=1;else{o(e[1][1+v],e,[0,4,f],q[1],[1,[0,c,0,d,0]]);var +y=0;B=1}}if(!B)var +y=b;var +h=m(aJh(e[1+A]),d)?0:y,z=n(fP[27],[0,3,f],e[1+k][4]),K=0;if(z){var +s=z[1],L=0;if(typeof +s==="number"||1===s[0])L=1;else{o(e[1][1+v],e,[0,3,f],s[1],[1,[0,c,0,d,h]]);K=1}}l(e[1][1+u],e,f,h);switch(a[0]){case +0:return o(e[1][1+an],e,h,f,a[1]);case +1:var +t=a[1],C=FX(0,t),E=function(a){o(e[1][1+D],e,C,h,t);var +c=n(fP[50],f,e[1+k][4]);if(c){var +b=c[1];if(typeof +b!=="number"&&1!==b[0]){var +d=b[1],g=aaE(e[1+j],h,0,f,at,1,t);return o(e[1][1+i],e,f,d,g)}}return 0};return l(e[1][1+r],e,0,E);case +3:return o(e[1][1+Q],e,0,f,a[1]);case +4:return l(e[1][1+am],e,c,a[1]);case +5:var +G=a[1],H=m(e[1][1+g],e),I=function(a){return n(H,a,0)};return x(e[1][1+N],e,h,c,I,f,G);case +7:return l(e[1][1+ah],e,h,a[1]);case +8:return fU(e[1][1+F],e,h,1,0,at,0,f,a[1]);case +20:return o(e[1][1+ad],e,h,c,a[1]);case +21:return p(e[1][1+ac],e,c,h,f,a[1]);case +23:return o(e[1][1+ab],e,h,f,a[1]);case +24:return l(e[1][1+aa],e,h,a[1]);case +25:return p(e[1][1+$],e,h,c,f,a[1]);case +26:return p(e[1][1+_],e,c,h,f,a[1]);case +34:return l(e[1][1+Z],e,h,a[1]);default:m(m(bQ,e),d);return 0}}function +ch(a,b){o(a[1][1+g],a,0,0,b);return b}function +ci(d,f,c){var +e=c[2],a=s8(e,function(a){var +b=a[2];if(4!==b[0])return 1;var +c=b[1][1];return h1(aHl(lr(a[1]),c))}),b=0;if(a&&!a[2]){var +g=1;b=1}if(!b)var +g=0;return EB(a,function(a,b){var +c=b[2],e=b[1],h=g?f:m(ho([3,[0,a]]),f);l(d[1][1+u],d,e,h);switch(c[0]){case +0:l(d[1][1+ax],d,e,c[1]);return 0;case +1:l(d[1][1+aw],d,e,c[1]);return 0;case +2:return l(d[1][1+J],d,h,c[1]);case +3:return 0;default:return 0}})}function +cj(a,b,c){var +d=c[3],e=m(ho(dp3),dp2),f=m(ho(dp4),e);l(a[1][1+L],a,f,d);return c}function +ck(a,b,c){var +d=c[1];return d?o(a[1][1+g],a,b,0,d[1]):0}function +cl(d,b,c){var +k=c[3],n=c[1][2],f=n[4],a=n[1];switch(a[0]){case +0:var +p=a[1],r=p[2],e=r[1],t=p[1],C=0,D=r[2];if(af(e,a16)||af(e,agy))C=1;else +var +v=af(e,Az(e))?[0,[0,[1,[0,t,[9,[0,t,[0,e,D]]]]],0],0]:[0,[0,[4,e],0],0];if(C)var +v=0;var +i=v;break;case +1:var +i=0;break;default:var +G=a[1],B=function(a){var +e=a[2],b=e[1],k=a[1];if(0===b[0])var +f=b[1],c=f[2],g=c[1],d=f[1],l=q(g,f0)?[0,d,[9,[0,d,[0,g,c[2]]]]]:[0,d,[31,[0,c[2]]]],h=l;else +var +h=B(b[1]);var +i=e[2],j=i[2];return[0,k,[21,[0,h,[0,[0,i[1],[0,j[1],j[2]]]],0]]]},i=[0,[0,[1,B(G)],0],0]}function +w(a){var +c=a[2],b=c[1],d=c[2][2][1];if(0===b[0]){var +e=b[1][2][1];return P(e,P(dp5,d))}var +f=b[1],g=P(dp6,d);return P(w(f),g)}switch(a[0]){case +0:var +h=a[1][2][1];break;case +1:var +x=a[1][2],h=P(x[1][2][1],x[2][2][1]);break;default:var +h=w(a[1])}var +y=m(ho([12,[0,s([17,[0,h]],b),h,f,k,0]]),i),E=m(ho(10),y),z=m(ho(9),y),j=p0(f,function(a){if(0!==a[0])return aaD(d[1+A],a[1][2][1]);var +b=a[1][2][2];return aY(b,0,function(a){if(0===a[0])return aaC(d[1+A],a[1][1]);var +b=a[1][2][1];return b?aaD(d[1+A],b[1]):0})})?z:m(ho([9,m(afq[2],f)]),z);fV(f,function(a){if(0!==a[0]){var +p=a[1][2][1],r=m(ho(0),j);return o(d[1][1+g],d,r,0,p)}var +e=a[1][2],f=e[1],n=e[2];if(0===f[0]){var +h=f[1],i=h[2][1],k=h[1];if(q(i,qi))var +c=[0,k],b=m(ho([0,i]),j);else +var +c=[0,k],b=E}else +var +c=0,b=0;aT(c,function(a){return l(d[1][1+u],d,a,b)});return aT(n,function(a){return 0===a[0]?l(d[1][1+u],d,a[1][1],b):l(d[1][1+J],d,b,a[1][2])})});var +F=m(ho(dp7),j);l(d[1][1+L],d,F,k);return c}function +cm(a,b,c){var +f=c[1],h=c[2];if(2===f)var +e=1,d=0;else if(7<=f)var +e=0,d=m(ho(2),b);else +var +e=0,d=0;return o(a[1][1+g],a,d,e,h)}function +cn(a,b,c){return n(a[1+f],b,dp8)}function +co(a,b,c){l(a[1][1+W],a,c[2],c[1]);return c}function +cp(a,b,c){l(a[1][1+W],a,c[2],c[1]);return c}function +cq(a,b,c){o(a[1][1+g],a,[0,[0,[0,T[7][1],b],0],0],0,c);n(a[1][1+aK],a,b);return 0}function +cr(a,b,c,d,e){var +g=n(fP[50],d,a[1+k][4]),j=0;if(g){var +f=g[1],l=0;if(typeof +f==="number"||1===f[0])l=1;else{o(a[1][1+i],a,d,f[1],[1,[0,b,1,[0,d,[26,e]],c]]);j=1}}var +h=e[1];n(m(Y,a),d,h);return 0}function +cs(a,b,c){return n(a[1+f],b,dp9)}function +ct(a,b,c,d,e){var +g=n(fP[50],d,a[1+k][4]),h=0;if(g){var +f=g[1],j=0;if(typeof +f==="number"||1===f[0])j=1;else{o(a[1][1+i],a,d,f[1],[1,[0,b,1,[0,d,[21,e]],c]]);h=1}}n(m(Y,a),d,e);return 0}function +cu(a,b,c){return n(a[1+f],b,dp_)}function +cv(e,b,c,d){var +f=d[2],a=d[1],h=d[3];o(e[1][1+g],e,0,0,a);aT(f,function(a){n(e[1][1+aA],e,a);return 0});var +i=m(ho(4),[0,[0,[1,a],0],0]),j=f9(h,[0,a[1],dp$]),k=fX([0,c,[23,d]]);return x(e[1][1+O],e,k,i,b,j,f)}function +cw(a,b,c){return n(a[1+f],b,dqa)}function +cx(a,b,c,d,e){var +f=e[1],h=m(a[1][1+g],a);function +i(a){return n(h,a,0)}return x(a[1][1+N],a,b,c,i,d,f)}function +cy(a,b,c){return n(a[1+f],b,dqb)}function +cz(h,j,c,d,e,f){var +k=e[2][1],l=m(ho([10,j]),c),b=fA(k);if(b<0)n(pq(baP),b,0);var +a=b,i=0;for(;;){if(0>a)throw B([0,aL,baQ],1);if(0===a)return EB(k,function(a,b){var +k=m(ho([11,[0,j,d,f,e,a]]),l),c=m(ho([7,i,a,0]),k);return 0===b[0]?o(h[1][1+g],h,c,0,b[1]):o(h[1][1+g],h,c,0,b[1][2][1])});var +a=a-1|0,i=[0,0,i]}}function +cA(h,b,c,d,e,f){var +I=f[3],i=I[2][1],J=f[2],a=f[1],p=a[2],y=0;switch(p[0]){case +1:var +U=p[1],v=U[2][2];if(!v[1]&&!v[2]&&!v[3]&&!U[8])y=1;break;case +8:var +V=p[1],w=V[2][2];if(!w[1]&&!w[2]&&!w[3]&&!V[8])y=1;break}var +W=0;if(y&&!i)var +K=m(ho(7),b);else +W=1;if(W)var +K=0;n(d,K,a);aT(J,function(a){n(h[1][1+aA],h,a);return 0});if(AZ(a))return EB(i,function(a,b){if(0!==b[0])return o(h[1][1+g],h,0,0,b[1][2][1]);var +c=b[1],d=0===a?1:0;return o(h[1][1+g],h,0,d,c)});if(i){var +L=i[1];if(0===L[0]&&!i[2]){var +R=L[1];if(aDY(a))return o(h[1][1+g],h,0,c,R);var +B=a[2],X=0;if(21===B[0]){var +C=B[1],D=C[1][2];if(9===D[0]&&!q(D[1][2][1],lG)){var +E=C[2];if(0===E[0]&&!q(E[1][2][1],Ib)){var +S=1;X=1}}}if(!X)var +S=0;if(S)return o(h[1][1+g],h,b,0,R)}}var +F=a[2],Y=0;if(21===F[0]){var +G=F[1],H=G[1][2];if(9===H[0]&&!q(H[1][2][1],lG)&&0===G[2][0]){var +M=1;Y=1}}if(!Y)var +M=0;if(M)return fV(i,function(a){return 0===a[0]?o(h[1][1+g],h,0,0,a[1]):o(h[1][1+g],h,0,0,a[1][2][1])});var +r=a[2],l=0,Z=a[1];switch(r[0]){case +21:var +N=r[1],j=N[2],P=N[1];l=1;break;case +26:var +Q=r[1][1],j=Q[2],P=Q[1];l=1;break;case +28:var +s=m(ho(5),[0,[0,[1,a],0],0]);break;default:l=2}var +A=0;switch(l){case +1:if(n(T[7][3],Z,h[1+k][3]))A=1;else{var +t=[0,[0,[1,P],0],0];switch(j[0]){case +0:var +u=m(ho([5,j[1][2][1]]),t);break;case +1:var +u=m(ho([6,j[1][2][1],h[1+z]]),t);break;default:var +u=m(ho(3),t)}var +s=u}break;case +2:A=1;break}if(A)var +s=[0,[0,[1,a],0],0];var +_=fX([0,e,[5,f]]);return x(h[1][1+O],h,_,s,b,I,J)}function +cB(a,b,c){return n(a[1+f],b,dqc)}function +cC(d,b,c){var +k=c[4],l=c[2],e=l[2][1],g=l[1],f=c[1],r=c[3];if(k){var +a=k[1];if(0===a[0]){var +t=a[1];fV(t,function(a){var +c=a[3],h=c[2][1],b=c[1],l=a[2],m=a[1],j=aY(l,[0,b,h],function(a){return[0,a[1],a[2][1]]}),k=j[2],n=j[1],p=[15,f,[0,m,h,b,k],e,g,d[1+E]],q=s([54,e,k],b);return o(d[1][1+i],d,n,q,p)})}else{var +p=a[1][2],h=p[2][1],q=p[1];switch(f){case +0:var +j=[55,h];break;case +1:var +j=[56,h];break;default:var +j=[57,h]}var +u=s(j,q);o(d[1][1+i],d,q,u,[15,f,0,e,g,d[1+E]])}}aT(r,function(a){var +b=a[1],c=b[2][1],h=b[1],j=s([58,c,e],h);return o(d[1][1+i],d,h,j,[15,f,[1,c],e,g,d[1+E]])});return n(m(bX,d),b,c)}function +cD(a,b,c){var +d=c[1],e=d[1],f=[14,b,c[2]],g=s([21,d[2][1]],e);o(a[1][1+i],a,e,g,f);return n(m(bP,a),b,c)}function +cE(a,b,c){var +d=c[1],e=d[1][1],f=s([86,[0,d[1][2][1]]],b);o(a[1][1+i],a,e,f,[17,b,c]);a[1+E]=1;var +g=m(m(bN,a),b),h=o(a[1][1+G],a,g,0,c);a[1+E]=0;return h}function +cF(d,b,c){var +a=c[1][1],e=s(21,b);o(d[1][1+i],d,a,e,[13,b,c]);function +f(a){return n(m(bY,d),b,c)}return l(d[1][1+r],d,0,f)}function +cG(a){return n(a[1][1+c],a,0)}function +cH(a,b){var +d=b[2];return[0,l(a[1][1+c],a,1,b[1]),d]}function +cI(a,b,c){var +e=c[2][1],f=e[2][1],d=e[1],g=[12,a[1+j],b,c],h=s([25,[0,f]],d);o(a[1][1+V],a,[0,0,d],h,g);l(a[1][1+X],a,d,f);return m(m(b5,a),c)}function +cJ(d,b,c){var +a=c[1],e=a[1],f=s([27,a[2][1]],e);o(d[1][1+i],d,e,f,[11,b,c]);function +g(a){return n(m(b0,d),b,c)}return l(d[1][1+r],d,0,g)}function +cK(d,b,c){var +a=c[1],e=a[1],f=s([25,[0,a[2][1]]],e);o(d[1][1+i],d,e,f,[10,b,c]);function +g(a){return n(m(b4,d),b,c)}return l(d[1][1+r],d,0,g)}function +cL(d,b,c){var +a=c[3],e=c[2];o(d[1][1+g],d,0,1,c[1]);l(d[1][1+a7],d,0!==a?1:0,e);aT(a,function(a){l(d[1][1+a8],d,a[1],a[2]);return 0});return c}function +cM(a,b,c){var +d=c[2];n(a[1][1+C],a,c[1]);o(a[1][1+g],a,0,1,d);return c}function +cN(a,b,c){var +d=c[2];o(a[1][1+g],a,0,1,c[1]);n(a[1][1+C],a,d);return c}function +cO(d,b,c){var +a=c[4],e=c[3],f=c[2],h=c[1];aT(h,function(a){n(d[1][1+bd],d,a);return 0});aT(f,l(d[1][1+g],d,0,1));aT(e,l(d[1][1+g],d,0,1));n(d[1][1+C],d,a);return c}function +cP(a,b,c){var +f=c[2],d=c[1];if(0===d[0]){var +e=d[1][2][1],k=0;if(e&&!e[2]){var +g=e[1][2][1],i=[7,0,f],j=sc(g),o=j?[0,T[7][1],0,0,0,0,j[1],[0,i]]:i;l(a[1][1+h],a,o,g);k=1}if(!k)throw B([0,to,[0,b],dqd],1)}else +l(a[1][1+h],a,[7,0,f],d[1]);return n(m(bR,a),b,c)}function +cQ(a,b,c){var +f=c[4],g=c[2],d=c[1];if(0===d[0]){var +e=d[1][2][1],o=0;if(e&&!e[2]){var +i=e[1][2][1],j=[7,[0,f],g],k=sc(i),p=k?[0,T[7][1],0,0,0,0,k[1],[0,j]]:j;l(a[1][1+h],a,p,i);o=1}if(!o)throw B([0,to,[0,b],dqe],1)}else +l(a[1][1+h],a,[7,[0,f],g],d[1]);return n(m(bS,a),b,c)}function +cR(d,b,c){var +a=c[1];aT(a,function(a){var +b=f9(EA(d[1+w]),0);return o(d[1][1+g],d,b,0,a)});return c}function +cS(a,b,c){var +d=c[2][2],g=c[1];if(9===d[0]){var +e=d[1],f=e[1],h=s([37,[0,e[2][1]]],f);o(a[1][1+i],a,f,h,[4,b,g])}return n(m(b6,a),b,c)}function +cT(e,b,c,d){var +a=d[3],f=d[2],j=f[2],r=f[1],y=d[1];function +t(a){var +f=a[2];if(21!==f[0])return[0,[0,[6,s(56,r)],0],0];var +g=f[1],c=g[2],d=g[1];if(b)return 0;switch(c[0]){case +0:return m(ho([0,c[1][2][1]]),[0,[0,[1,d],0],0]);case +1:return m(ho([2,c[1][2][1],e[1+z]]),[0,[0,[1,d],0],0]);default:return m(ho([1,fX(c[1])]),[0,[0,[1,d],0],0])}}function +p(a){var +b=a[2],c=a[1];switch(b[0]){case +0:var +f=b[1][1],g=function(a){return[0,[8,c,U(a)]]};return J0(f,0,function(c,b){if(0!==b[0]){var +g=p(b[1][2][1]);return aY(g,dqg,function(a){return[0,[0,[1,a],c]]})}var +a=b[1][2],d=a[1],e=p(a[2]);switch(d[0]){case +0:case +3:if(e){var +f=d[1];return[0,[0,[0,f[2][1],f[1],e[1]],c]]}break}return dqf},g);case +1:var +h=b[1][1],i=function(a){return[0,[7,c,U(a)]]};return J0(h,0,function(c,b){switch(b[0]){case +0:var +a=p(b[1][2][1]);return aY(a,dqh,function(a){return[0,[0,[0,a],c]]});case +1:var +d=p(b[1][2][1]);return aY(d,dqi,function(a){return[0,[0,[1,a],c]]});default:return dqj}},i);case +2:var +d=b[1][1][1];if(n(Bx[3],e[1+k][7],d))return 0;var +j=n(Bx[7],e[1+k][7],d),l=aY(j,0,function(a){return a[2]}),m=Bm(K(l,function(a){return a[1][2]}));return S(m,function(a){return[2,a]});default:return[0,[6,s(dqk,b[1][1])]]}}function +u(a){var +b=p(a);return aY(b,0,function(a){return[0,[0,a,0],0]})}if(y){var +v=y[1];switch(j[0]){case +2:var +A=j[1][1],B=A[1],F=s([37,[0,A[2][1]]],B);o(e[1][1+i],e,B,F,[3,c,f,v,a]);var +G=u(f);return o(e[1][1+g],e,G,0,a);case +3:var +w=j[1],H=w[1],I=13<=v?1:0;o(e[1][1+g],e,0,I,w);var +J=Bq(f);o(e[1][1+i],e,H,J,[3,c,f,v,a]);var +L=t(w);return o(e[1][1+g],e,L,0,a);default:var +E=u(f);return o(e[1][1+g],e,E,0,a)}}if(3!==j[0]){n(e[1][1+aC],e,[0,r,j]);l(e[1][1+h],e,[1,0,a],f);var +M=u(f);return o(e[1][1+g],e,M,0,a)}var +q=j[1],C=q[2];if(21===C[0]){var +D=C[1],x=q[1];n(m(Y,e),x,D);var +O=Bq(f);o(e[1][1+i],e,x,O,[2,x,D,a]);var +P=t(q);return o(e[1][1+g],e,P,0,a)}n(e[1][1+aC],e,[0,r,j]);l(e[1][1+h],e,[1,0,a],f);var +N=t(q);return o(e[1][1+g],e,N,0,a)}function +cU(a,b,c){return n(a[1+f],b,dql)}function +cV(a,b,c){var +d=c[1],e=d[1],f=s([93,[0,d[2][1]]],b);o(a[1][1+i],a,e,f,[9,b,c]);return n(m(bL,a),b,c)}function +cW(a,b,c){var +d=c[1],e=d[1],f=s([71,[37,[0,d[2][1]]]],b);o(a[1][1+i],a,e,f,[8,b,c]);return n(m(bK,a),b,c)}function +cX(a,b,c){var +d=Bt(b,c);if(d){n(a[1][1+C],a,[0,b,d[1]]);return c}var +e=c[1][1],f=[0,[0,[0,T[7][1],0,0,0,0,c[2],0]]],g=m(kh(0,0),b);o(a[1][1+i],a,e,g,f);return n(m(bM,a),b,c)}function +cY(d,b,c){var +e=c[3][2],a=c[2],f=c[5];n(d[1][1+au],d,a);var +g=FX([0,a],e);function +h(a){return o(d[1][1+D],d,g,0,e)}l(d[1][1+r],d,dqm,h);gy(m(d[1][1+I],d),f);return c}function +cZ(a,b,c){return typeof +c==="number"?c?0:0:o(a[1][1+g],a,b,0,c[1])}function +c0(a,b,c){var +e=c[3],f=c[6],g=c[5],h=c[2],i=c[1];gy(m(a[1][1+I],a),f);n(a[1][1+aQ],a,i);n(a[1][1+ar],a,e);var +j=0===e[0]?0:[0,[0,[0,T[7][1],e[1]],0],0];l(a[1][1+d],a,j,h);n(a[1][1+ao],a,g);return c}function +c1(a,b,c){var +e=c[3],f=c[6],g=c[5],h=c[2],i=c[1];gy(m(a[1][1+I],a),f);n(a[1][1+au],a,i);n(a[1][1+ar],a,e);var +j=0===e[0]?0:[0,[0,[0,T[7][1],e[1]],0],0];l(a[1][1+d],a,j,h);n(a[1][1+ao],a,g);return c}function +c2(d,b,c){var +f=c[3],g=c[2],e=c[1],t=c[6],u=c[5],v=c[4];function +a(a){var +r=d[1+z];d[1+z]=[0,b,d[1+z]];var +w=0,x=0;function +y(a){m(Bj(m(d[1][1+bv],d)),e);m(Bj(m(d[1][1+R],d)),f);var +c=aY(e,b,function(a){return a[1]}),h=d[1+j];l(d[1][1+X],d,c,dqn);n(d[1][1+bx],d,g);var +i=m(d[1][1+bw],d);m(Bj(function(a){return ib(i,a)}),v);m(Bj(m(d[1][1+bu],d)),u);var +k=m(d[1][1+I],d);fo(function(a){return jp(k,a)},t);return[0,h,S(f,function(a){return a[1]})]}var +h=o(d[1][1+G],d,y,x,w);d[1+z]=r;var +A=g[2][1];function +B(a,b){var +c=0;switch(b[0]){case +1:var +d=b[1][2][2];if(typeof +d!=="number"){var +e=d[1];if(8===e[2][0]){var +f=e[1];c=1}}break;case +2:var +g=b[1][2][2];if(typeof +g!=="number"){var +h=g[1],i=h[2];if(8===i[0]&&!i[1][2][2][1]){var +f=h[1];c=1}}break}return c?n(gG[4],[0,5,f],a):a}var +C=fs(A,gG[1],B),D=m(m(gG[4],[0,6,b]),C),E=m(m(gG[4],[0,7,b]),D),F=m(m(gG[4],[0,8,b]),E),H=m(m(gG[4],[0,9,b]),F),k=m(m(gG[4],[0,10,b]),H);if(e){var +p=e[1],q=p[1],J=s([25,[0,p[2][1]]],q);o(d[1][1+i],d,q,J,[7,h,c,b,k])}else{var +K=s(dqo,b);o(d[1][1+i],d,b,K,[7,h,c,b,k])}return c}return l(d[1][1+r],d,0,a)}function +c3(e,b,c,d){var +a=0;function +f(a){var +f=d[7],r=d[6],k=d[3],t=d[2],p=t[2],v=p[2],I=d[8],J=d[5],K=d[4],L=p[3],M=p[1];aT(I,function(a){n(e[1][1+R],e,a);return 0});S(M,m(e[1][1+az],e));var +x=n(e[1][1+as],e,v),y=l(e[1][1+ay],e,r,f);EB(v,function(a){var +b=m(ho([7,x,a,y]),c);return n(e[1][1+ag],e,b)});var +N=m(ho([8,x,y]),c);aT(L,n(e[1][1+ae],e,N));n(e[1][1+a_],e,f);var +O=0===f[0]?f[1]:f[1][1];switch(f[0]){case +0:var +h=m(ho(6),c);break;case +1:var +h=[0,[0,[0,e[1+j],f[1]],0],0];break;default:var +h=0}var +q=1===b?m(ho(11),h):h;l(e[1][1+u],e,O,q);var +P=e[1+w];e[1+w]=[0,q,e[1+w]];if(0===k[0]){var +z=k[1],A=z[1];l(e[1][1+aB],e,A,z[2]);var +B=A}else{var +G=k[1],T=G[1];o(e[1][1+g],e,q,0,G);var +B=T}e[1+w]=P;if(J){var +H=0;switch(f[0]){case +0:var +C=f[1];break;case +1:var +F=f[1],E=[0,[0,e[1+j],F,K]],D=F[1];H=1;break;default:var +C=f[1][1]}if(!H)var +E=0,D=C;var +Q=s(dqp,B);o(e[1][1+i],e,D,Q,[16,E])}return aT(r,function(a){var +b=a[2][1];if(b){var +c=b[1];if(qx(aaB(t)))return o(e[1][1+g],e,0,0,c)}return 0})}return o(e[1][1+G],e,f,b,a)}function +c4(a,b){return K(b,m(a[1][1+av],a))}function +c5(a,b){var +c=b[2][1][2];return 2===c[0]?[0,c[1][1][2][1]]:0}function +c6(a,b,c){if(b)return dqq;if(2!==c[0])return 0;var +d=c[1][2][2][2][1];return[0,[0,d[1],d[2][1]]]}function +c7(d,b,c){var +e=FX(0,c);function +a(a){return o(d[1][1+D],d,e,0,c)}l(d[1][1+r],d,0,a);return c}function +c8(c,b){function +a(a){return m(m(bZ,c),b)}return l(c[1][1+r],c,dqr,a)}function +c9(d,b,c){function +a(a){return n(m(bW,d),b,c)}return l(d[1][1+r],d,dqs,a)}function +c_(e,b,c,d){var +f=d[2],g=d[1],n=d[10],p=d[5],q=d[4],t=d[3],u=f[2][1],w=FX(0,d);function +a(a){var +r=0;if(!u&&wb(t,f)){var +l=s(39,c);o(e[1][1+v],e,[0,5,c],l,0);r=1}o(e[1][1+D],e,w,0,d);var +h=m(kh(q,p),n),k=aaE(e[1+j],0,1,c,b,0,d);return g?o(e[1][1+i],e,g[1][1],h,k):o(e[1][1+i],e,c,h,k)}return l(e[1][1+r],e,0,a)}function +c$(a,b,c){o(a[1][1+M],a,at,b,c);return c}function +da(a,b,c){fU(a[1][1+F],a,0,1,0,at,0,b,c);return c}function +db(k,b,c,d,e,f,g,h){var +a=h[2],n=h[1],t=h[10],u=h[5],w=h[4],p=h[3],q=a[2][1],A=0,x=FX(0,h);if(!q&&c&&wb(p,a)){var +z=s(39,g);o(k[1][1+v],k,[0,5,g],z,0);A=1}function +y(a){o(k[1][1+D],k,x,b,h);if(d){var +l=d[1],p=l[1],r=l[2][1],v=k[1+j],y=[0,[0,[2,b,N8(h),g,h,e,f,v]]],z=s([37,[0,r]],p);o(k[1][1+i],k,p,z,y)}function +q(a){var +d=f?g:t,l=m(kh(w,u),d),n=aaE(k[1+j],b,c,g,e,0,h);return o(k[1][1+i],k,a,l,n)}return n?q(n[1][1]):c?q(g):0}return l(k[1][1+r],k,0,y)}function +dc(d,b){var +a=b[2][1],k=b[1],l=a[2],r=2===l[0]?l[1][3]:0,c=a[1],f=sc(a);if(f)var +h=[0,d[1+j],r,0,1,[0,c],f[1],0];else +var +q=a[2],C=2===q[0]?s([34,[0,q[1][1][2][1]]],c):s(56,c),h=[6,C];function +t(a,b,c){o(d[1][1+i],d,a,b,[0,c]);return 1}var +u=[0,h],w=0;function +x(a,b){var +c=a||b;return c}var +y=m(d[1][1+g],d);function +z(a){return n(y,a,0)}var +p=1-ap(uD,t,m(d[1][1+e],d),z,x,w,u,a),A=p?i3(f):p;if(A){var +B=s(56,k);o(d[1][1+v],d,[0,1,k],B,[0,[0,h]])}m(m(bJ,d),b);return 0}function +dd(d,b){var +c=b[2],f=c[3],a=c[2],h=b[1],r=a[2],x=c[4],y=c[1],z=2===r[0]?r[1][3]:0,k=a[1],p=sc(a);if(p){var +t=p[1];aT(f,l(d[1][1+g],d,[0,[0,[0,d[1+j],t],0],0],0));var +A=h1(f),q=[0,d[1+j],z,A,1,[0,k],t,0]}else{aT(f,l(d[1][1+g],d,0,0));var +w=a[2],J=2===w[0]?s([34,[0,w[1][1][2][1]]],k):s(56,k),q=[6,J]}function +B(a,b,c){o(d[1][1+i],d,a,b,[0,c]);return 1}var +C=[0,q],D=0;function +E(a,b){var +c=a||b;return c}var +F=m(d[1][1+g],d);function +G(a){return n(F,a,0)}var +u=1-ap(uD,B,m(d[1][1+e],d),G,E,D,C,a),H=u?i3(p):u;if(H){var +I=s(56,h);o(d[1][1+v],d,[0,1,h],I,[0,[0,q]])}m(m(bI,d),[0,h,[0,y,a,0,x]]);return 0}function +de(c,b){var +a=0,d=7;function +e(a){var +f=b[5],d=b[4],g=b[3][2],i=g[2],k=g[1],o=b[2];aT(o,function(a){n(c[1][1+R],c,a);return 0});fV(k,m(c[1][1+aj],c));aT(i,m(c[1][1+ai],c));n(c[1][1+bp],c,d);var +p=d[1];if(0===d[0])var +e=dqt;else +var +h=d[1],e=[0,[0,[0,c[1+j],[0,h,[0,h,[26,d[2]]]]],0],0];l(c[1][1+u],c,p,e);var +q=c[1+w];c[1+w]=[0,e,c[1+w]];l(c[1][1+aB],c,f[1],f[2]);c[1+w]=q;return 0}return o(c[1][1+G],c,e,d,a)}function +df(d,b,c){var +e=c[1],f=c[7];function +a(a){n(d[1][1+al],d,c);var +g=s([93,[0,e[2][1]]],f);return o(d[1][1+i],d,e[1],g,[6,d[1+j],b,c])}return l(d[1][1+r],d,0,a)}function +dg(a,b,c){l(a[1][1+ak],a,b,c);return c}function +dh(a,b){var +c=b[2],g=0;if(2===c[0]){var +e=c[1][2];if(0!==e[0]&&1>=e[1][2][2][0]){var +f=sc(b),i=f?[0,T[7][1],0,0,0,0,f[1],0]:0,d=i;g=1}}if(!g)var +d=0;l(a[1][1+h],a,d,b);return m(m(bH,a),b)}function +di(a,b){var +c=b[1],d=[0,[0,[0,a[1+j],0,0,0,0,b[2][1],0]]],e=s(39,c);o(a[1][1+i],a,c,e,d);return m(m(bV,a),b)}function +dj(a,b,c){var +d=c[2][1],e=d[1],f=sc(d);if(f)var +g=[0,a[1+j],0,0,0,[0,e],f[1],0];else{var +i=d[2],k=2===i[0]?s([35,[0,i[1][1][2][1]]],e):s(dqu,e);l(a[1][1+u],a,e,b);var +g=[5,k,b,0,0]}l(a[1][1+h],a,g,d);m(m(bU,a),c);return 0}function +dk(d,b,c){var +r=c[2],f=r[2],a=r[1],k=c[1],t=a[2],w=2===t[0]?t[1][3]:0,h=a[1],p=sc(a);if(p){var +x=p[1];aT(f,l(d[1][1+g],d,[0,[0,[0,d[1+j],x],0],0],0));var +A=h1(f),q=[0,d[1+j],w,A,0,[0,h],x,0]}else{aT(f,l(d[1][1+g],d,0,0));var +z=a[2],J=2===z[0]?s([34,[0,z[1][1][2][1]]],h):s(56,h);l(d[1][1+u],d,h,b);var +q=[5,J,b,w,f]}function +B(a,b,c){o(d[1][1+i],d,a,b,[0,c]);return 1}var +C=[0,q],D=0;function +E(a,b){var +c=a||b;return c}var +F=m(d[1][1+g],d);function +G(a){return n(F,a,0)}var +y=1-ap(uD,B,m(d[1][1+e],d),G,E,D,C,a),H=y?i3(p):y;if(H){var +I=s(56,k);o(d[1][1+v],d,[0,1,k],I,[0,[0,q]])}m(m(bT,d),[0,k,[0,a,0]]);return 0}function +dl(a,b){return n(a[1+f],b[1],dqv)}function +dm(a,b,c){var +d=c[2],e=[0,c[1],[0,d[1],d[2],0,d[4]]];return n(m(b2,a),b,e)}function +dn(a,b,c){var +d=[0,c[1],[0,c[2][1],0]];return n(m(b1,a),b,d)}function +dp(a,b,c){var +d=c[1],e=d[1],f=[0,[0,[0,T[7][1],0,0,0,0,c[2],0]]],g=s([37,[0,d[2][1]]],e);o(a[1][1+i],a,e,g,f);return n(m(bO,a),b,c)}function +dq(d,b,c){var +q=c[2],i=q[2],e=q[1];if(i){var +a=i[1],j=a[2],r=a[1],p=0;switch(j[0]){case +0:if(!j[1][1]){var +w=e[2];if(2===w[0]){var +x=[0,[4,hW(0,0,0,n(FU,d[1+k][7],w[1][1][1]))[3],r]];p=1}}break;case +24:var +f=j[1];if(f[1]){var +y=aJf(aJe(f),f),A=typeof +y==="number"?[0,[1,0,a]]:[0,[3,y,r,f]],x=A;p=1}break}var +z=p?x:[0,[1,0,a]],m=z}else +var +m=0;var +s=sc(e);if(s)var +t=s[1],v=[0,[0,[0,T[7][1],t],0],0],u=[0,[0,T[7][1],0,0,0,0,t,m]];else +var +v=0,u=m;aT(u,function(a){return l(d[1][1+h],d,a,e)});l(d[1][1+aE],d,b,e);aT(i,function(a){return o(d[1][1+g],d,v,0,a)});return c}function +dr(e,b){var +a=aDV(b);(function(a,b){var +d=a,c=b;for(;;){if(!c)return n(hk,function(a,b){var +c=b[2],d=b[1];return fV(c,function(a){return m(a,d)})},d);var +j=c[1],g=j[2],h=0,av=j[1];switch(g[0]){case +20:var +E=g[1][2];if(0===E[0]){var +G=E[1],H=G[2];if(26===H[0]){var +I=H[1],J=I[1];if(J){var +K=J[1],t=I,s=K[2][1],r=K[1],q=G[1];h=1}}}break;case +21:var +f=g[1],N=f[1];if(N){var +O=N[1],u=O[2],az=O[1];switch(u[0]){case +26:var +P=u[1],R=P[1];if(R&&!f[2]&&!f[3]&&f[4]){var +S=R[1],t=P,s=S[2][1],r=S[1],q=az;h=1}break;case +37:var +v=u[1][1];if(v){var +T=v[1][2],U=T[1][2];if(2===U[0]){var +w=U[1],x=w[1],aA=x[2][1],aB=x[1];if(0===w[2][0]&&!w[3]){var +V=T[2];if(V){var +y=V[1],W=y[2],aC=y[1];switch(W[0]){case +1:case +8:var +aD=W[1];if(!v[2]&&!f[2]&&!f[3]&&f[4]){var +aa=y,$=aD,_=aC,Z=x,Y=aA,X=aB;h=2}break}}}}}break}}break;case +22:var +ac=g[1][1],ad=ac[2];if(3===ad[0]){var +p=ad[1];if(!p[1]){var +ae=p[2],af=ae[2];if(3===af[0]){var +ag=af[1],ah=ag[2];if(21===ah[0]){var +ai=ah[1],aj=ai[1][2];if(9===aj[0]){var +ak=ai[2],al=aj[1][2][1],aH=ag[1],aI=ac[1];if(0===ak[0]){var +am=ak[1][2][1],aJ=c[2],aK=p[3];if(n(uk,al,d)&&!n(xU,am,dpT)){o(e[1][1+Q],e,1,aI,p);var +d=l(ps,al,function(r,b,c,d){return function(a){if(!a)return 0;var +f=a[1],g=f[2],h=f[1];return[0,[0,l(ps,d,function(a){if(a)return a;var +l=m(e[1][1+bF],e)[1],g=c[2],f=0,p=c[1];switch(g[0]){case +8:var +j=g[1][1];if(j){var +h=j[1][1];f=1}break;case +1:break;default:var +q=Bq(r);o(e[1][1+i],e,b,q,[1,[0,0,0,c,0]]);var +d=[0,0,b];f=2}var +k=0;switch(f){case +0:var +h=p;break;case +1:break;default:k=1}if(!k)var +d=[0,0,h];return n(fP[3],d,l)?[0,d]:0},h),g]]}}(ae,aH,aK,am),d),c=aJ;continue}}}}}}}break;case +26:var +an=g[1],ao=an[1];if(ao){var +ap=ao[1],t=an,s=ap[2][1],r=ap[1],q=av;h=1}break;case +37:var +z=g[1][1];if(z){var +aq=z[1][2],ar=aq[1][2];if(2===ar[0]){var +A=ar[1],B=A[1],aL=B[2][1],aM=B[1];if(0===A[2][0]&&!A[3]){var +as=aq[2];if(as){var +D=as[1],au=D[2],aN=D[1];switch(au[0]){case +1:case +8:var +aO=au[1];if(!z[2]){var +aa=D,$=aO,_=aN,Z=B,Y=aL,X=aM;h=2}break}}}}}break}switch(h){case +2:var +aE=c[2],aF=1===aa[2][0]?1:0;if(n(FV,[0,0,X],e[1+k][4]))var +aG=function(f,b,c,d){return function(a){return fU(e[1][1+F],e,0,1-d,[0,f],a,d,b,c)}}(Z,_,$,aF),ab=l(ps,Y,function(c){return function(a){if(!a)return[0,[0,at,[0,c,0]]];var +b=a[1];return[0,[0,b[1],[0,c,b[2]]]]}}(aG),d);else{n(e[1][1+C],e,j);var +ab=d}var +d=ab,c=aE;continue;case +0:var +aw=c[2];n(e[1][1+C],e,j);var +c=aw;continue;default:var +ax=c[2];if(n(FV,[0,0,r],e[1+k][4]))var +ay=function(c,b){return function(a){return o(e[1][1+M],e,a,c,b)}}(q,t),L=l(ps,s,function(c){return function(a){if(!a)return[0,[0,at,[0,c,0]]];var +b=a[1];return[0,[0,b[1],[0,c,b[2]]]]}}(ay),d);else{n(e[1][1+C],e,j);var +L=d}var +d=L,c=ax;continue}}}(at,a));return a}function +ds(a,b,c){var +d=b?b[1]:0,e=a[1+j];if(1-d)a[1+j]=T[7][1];var +f=m(c,0);a[1+j]=e;return f}function +dt(a,b,c,d){var +e=a[1+H];a[1+H]=c;var +f=m(b,d);a[1+H]=e;return f}function +du(d,b,c){function +a(a,b,c){return o(d[1][1+i],d,a,b,[0,c])}var +f=[0,b],h=m(d[1][1+g],d);function +j(a){return n(h,a,0)}var +k=m(d[1][1+e],d);return n(l(m(m(uD,a),k),j,dpL,0),f,c)}function +dv(a,b,c){var +d=s(56,b);return o(a[1][1+v],a,[0,2,b],d,[0,c])}function +dw(a,b){return n(a[1][1+v],a,[0,0,b])}function +dx(a,b,c,d){var +e=n(FV,b,a[1+k][4]);return e?o(a[1][1+V],a,b,c,d):e}function +dy(e,b,c,d){function +a(a){var +f=a[2];return[0,o(fP[31],0,b,[0,d,e[1+H],e[1+z],c],a[1]),f]}return n(e[1][1+aq],e,a)}function +dz(a,b,c){function +d(a){var +d=a[1];return[0,d,o(T[7][31],0,b,c,a[2])]}return n(a[1][1+aq],a,d)}fC(y,[0,X,function(a,b,c){a[1+j]=o(T[7][31],0,b,c,a[1+j]);return 0},u,dz,V,dy,v,dx,i,dw,e,dv,h,du,G,dt,r,ds,aO,dr,aF,dq,bj,dp,aS,dn,aR,dm,a$,dl,ag,dk,ae,dj,az,di,bz,dh,bq,dg,ak,df,al,de,aj,dd,ai,dc,F,db,ba,da,bb,c$,M,c_,a9,c9,aX,c8,bc,c7,ay,c6,av,c5,as,c4,D,c3,by,c2,br,c1,bs,c0,d,cZ,bt,cY,bl,cX,bn,cW,bm,cV,bC,cU,Q,cT,aG,cS,aP,cR,bf,cQ,bg,cP,be,cO,aD,cN,bi,cM,a6,cL,aM,cK,aW,cJ,c,cI,a4,cH,aI,cG,a3,cF,bk,cE,bh,cD,a5,cC,bA,cB,N,cA,O,cz,aV,cy,$,cx,a0,cw,ab,cv,a1,cu,ac,ct,aU,cs,_,cr,W,cq,aJ,cp,bD,co,aH,cn,Z,cm,ax,cl,J,ck,aw,cj,L,ci,t,ch,g,cg,bE,cf,an,ce,bo,cd,ah,cc,bB,cb,am,ca,a2,b$,ad,b_,aZ,b9,aa,b8,aN,b7]);return function(a,b,c,d,e){function +h(a,b){throw B([0,to,[0,a],[2,b]],1)}var +g=fp(b,y);g[1+f]=h;g[1+k]=d;g[1+A]=c;n(bG,g,[0,fP[1],T[7][1]]);g[1+j]=T[7][1];g[1+H]=e;g[1+z]=0;g[1+w]=0;g[1+E]=0;return fH(b,g,y)}}),aJi=function(f,d,c){var +a=l(kF[23],f,0,c),b=T[8][1];function +e(g,b){if(n(T[7][27],g,d))return b;var +a=f[2],c=1;return l(p3,function(a,b,c){var +i=n(T[7][27],g,b[4]);if(!i)return c;var +m=i[1];if(!c)return c;var +e=1,d=b;for(;;){var +j=d[3];if(n(axb,function(a,b){return ao(m,b)},j))return e;var +h=d[2];if(!h)return 1;var +k=n(kF[11],f,h[1]),l=e?d[1]:e,e=l,d=k}},a,c)?b:n(T[8][4],g,b)}return l(T[8][16],e,a,b)},dqx=hs,aJj=function(a){var +c=a[1];if(!a[2])return[37,c];var +b=g1(U(a[2]));switch(b[0]){case +0:return[41,[0,[0,b[1]]]];case +1:return dqy;default:return[42,b[1]]}},tp=h_([0,dqx]),BB=tp[1],aJk=tp[2],aJl=tp[6],aJm=tp[12],aJn=tp[27],aJo=tp[32],aJp=tp[43],dqz=tp[13],dqA=tp[35],dqB=tp[40],FY=function(a){var +b=a[2],c=a[1][2];if(!b)return jC(c);var +d=BC(b[1]),e=jC(c);return n(k(dqC),e,d)},BC=function(a){if(0!==a[0])return FY(a[1]);var +b=f2(dqD,K(gl(a[1]),FY));return m(k(dqE),b)},aJq=function(a){var +b=a[1][2];if(2===b[0]){var +d=a[2],e=b[2];return d?V(e,aaF(d[1])):e}var +c=a[2];return c?[0,b,aaF(c[1])]:[0,b,0]},aaF=function(a){return 0===a[0]?p2(gl(a[1]),aJq):aJq(a[1])},N9=function(a){if(1===a[0]){var +b=a[1];if(!b[2])return b[1][2]}var +c=aaF(a);return[2,BC(a),c]},afA=function(a,b,c){var +d=c[2],e=b[2];if(!mu(b[1][1],c[1][1]))return 0;if(e){if(d){var +f=d[1],g=e[1];return a<50?afz(a+1|0,g,f):gu(afz,[0,g,f])}}else if(!d)return 1;return 0},afz=function(a,b,c){if(0===b[0]){var +g=b[1];if(0===c[0]){var +h=gl(c[1]),d=avU(gl(g),h,aJr);return d?d[1]:0}}else{var +e=b[1];if(0!==c[0]){var +f=c[1];return a<50?afA(a+1|0,e,f):gu(afA,[0,e,f])}}return 0},aJr=function(a,b){return qt(afA(0,a,b))},dqF=function(a,b){return qt(afz(0,a,b))},aJs=function(a,b){if(0===a[0])return 0;var +c=a[1],d=c[2],e=c[1];return d?[0,[1,[0,e,aJs(d[1],b)]]]:[0,[1,[0,e,[0,b]]]]},ru=0,aJt=function(a,b){return s8(a,function(a){return 1-qy(b,a,aJr)})},N_=function(a,b){return V(aJt(a,b),b)},FZ=function(d,b,c){var +a=b;for(;;){var +e=function(a,b){var +c=b[2],e=a[2];if(!mu(a[1][1],b[1][1]))return e?FZ(d,e[1],[1,b]):(m(d,[O,function(a){var +c=FY(b);return[0,m(k(dqJ),c),0]}]),[1,[1,b]]);if(e){var +f=e[1];return c?FZ(d,f,c[1]):(m(d,[O,function(a){var +b=BC(f);return[0,m(k(dqG),b),0]}]),[0,f])}if(c){var +g=c[1];m(d,[O,function(a){var +b=BC(g);return[0,m(k(dqH),b),0]}]);return[1,g]}m(d,[O,function(a){return dqI}]);return 0};m(d,[O,function(e){return function(a){var +b=BC(c),d=BC(e);return[0,n(k(dqK),d,b),0]}}(a)]);if(0===a[0]){var +f=a[1];if(0!==c[0]){var +a=[1,$P(f)[1]];continue}var +h=c[1],p=p7(f);if(pg)switch(g){case +98:var +dS=a[2];return[98,m(c,a[1]),dS];case +99:return[99,b(a[1])];case +100:return[hZ,b(a[1])];case +101:return[iK,b(a[1])];case +102:return[iZ,b(a[1])];case +103:return[iU,b(a[1])];case +104:var +k=a[1],dT=k[3],dU=k[1],dV=b(k[2]);return[iQ,[0,b(dU),dV,dT]];case +105:var +l=a[1],dW=l[3],dX=l[1],dY=S(l[2],b);return[i$,[0,b(dX),dY,dW]];case +106:return[hq,m(c,a[1])];case +107:var +dZ=a[2],d0=a[1],d1=b(a[3]),d2=b(dZ);return[hb,m(d,d0),d2,d1];case +108:return[i1,b(a[1])];case +109:var +d3=a[1],d4=m(d,a[2]);return[jw,b(d3),d4];case +110:var +d5=a[1],d6=m(d,a[2]);return[hr,b(d5),d6];case +111:var +d7=a[3],d8=a[2];return[iT,b(a[1]),d8,d7];case +112:var +d9=a[2];return[hy,b(a[1]),d9];case +113:var +d_=a[3],d$=a[2],ea=a[1],eb=m(d,a[4]),ec=b(d$);return[gt,b(ea),ec,d_,eb];case +114:return[iR,b(a[1])];case +115:var +ed=a[2],ee=a[1],ef=m(c,a[3]);return[jx,ee,m(c,ed),ef];case +116:var +eg=a[2];return[jY,m(c,a[1]),eg];case +117:var +eh=a[2];return[kL,m(c,a[1]),eh];case +118:return[kv,m(c,a[1])];case +119:return[k8,m(c,a[1])];case +120:var +ei=a[2];return[iJ,m(c,a[1]),ei];case +121:var +ej=a[2];return[k$,m(c,a[1]),ej];case +122:return[gN,m(c,a[1])];case +123:return[hB,m(c,a[1])];case +124:return[jX,m(c,a[1])];case +125:return[E,m(c,a[1])];case +126:return[lj,m(c,a[1])];case +127:return[gx,m(c,a[1])];case +128:var +ek=a[2];return[gO,m(c,a[1]),ek];case +129:return[ju,m(c,a[1])];case +130:return[kr,m(c,a[1])];case +131:var +el=a[2];return[l8,m(c,a[1]),el];case +132:var +em=a[2];return[ks,m(c,a[1]),em];case +133:var +en=a[3],eo=a[2],ep=a[1],eq=m(c,a[4]),er=m(c,en);return[ma,ep,m(c,eo),er,eq];case +134:var +es=a[1];return[jI,es,b(a[2])];case +135:var +et=a[1],eu=b(a[2]);return[mc,m(c,et),eu];case +136:var +ev=a[1],ew=b(a[2]);return[pJ,m(c,ev),ew];case +137:var +ex=a[1],ey=b(a[2]);return[lF,m(c,ex),ey];case +138:return[lK,m(c,a[1])];case +139:var +ez=a[1],eA=b(a[2]);return[pP,m(c,ez),eA];case +140:return[q9,aIq(c,a[1])];case +141:var +eB=a[4],eC=a[2],eD=a[1],eE=b(a[3]),eF=b(eC);return[kw,m(d,eD),eF,eE,eB];case +142:var +eG=a[2],eH=a[1],eI=m(d,a[3]),eJ=b(eG);return[mf,b(eH),eJ,eI];case +143:var +eK=a[3],eL=a[2],eM=a[1],eN=m(d,a[4]),eO=b(eK),eP=b(eL);return[md,b(eM),eP,eO,eN];case +144:var +eQ=a[5],eR=a[4],eS=a[3],eT=a[2],eU=a[1],eV=m(d,a[6]),eW=b(eS),eX=b(eT);return[mg,b(eU),eX,eW,eR,eQ,eV];case +145:var +eY=a[4],eZ=a[3],e0=a[2],e1=a[1],e2=m(d,a[5]),e3=b(eY),e4=b(eZ),e5=b(e0);return[lL,b(e1),e5,e4,e3,e2];default:var +e6=a[2],e7=a[1],e8=aKB(b,a[3]),e9=aKB(b,e6);return[pK,b(e7),e9,e8]}switch(g){case +147:return[k7,b(a[1])];case +148:var +e_=a[3],e$=a[2],fa=a[1],fb=b(a[4]);return[nq,fa,e$,b(e_),fb];case +149:var +fc=a[1],fd=b(a[2]);return[qf,m(c,fc),fd];case +150:var +fe=a[2],ff=a[1],fg=b(a[3]),fh=m(c,fe);return[lC,m(c,ff),fh,fg];case +151:var +fi=a[1],fj=b(a[2]);return[qr,b(fi),fj];case +152:var +fk=a[1],fl=b(a[2]);return[mi,b(fk),fl];case +153:var +fm=a[2];return[pQ,b(a[1]),fm];case +154:var +fn=a[4],fo=a[2],fp=a[1],fq=b(a[3]),fr=b(fo);return[rH,b(fp),fr,fq,fn];case +155:var +fs=a[1],ft=b(a[2]);return[pN,b(fs),ft];case +156:var +fu=a[3],fv=a[2],fw=a[1],fy=vE(b,a[4]),fz=b(fv);return[l6,b(fw),fz,fu,fy];case +157:var +fA=a[1],fB=b(a[2]);return[qp,b(fA),fB];case +158:var +fC=a[3],fD=a[1],fE=b(a[2]);return[ou,b(fD),fE,fC];case +159:var +fF=a[1],fG=b(a[2]);return[q7,b(fF),fG];case +160:var +fH=a[4],fI=a[2],fJ=a[1],fK=b(a[3]),fL=b(fI);return[kO,m(d,fJ),fL,fK,fH];case +161:var +fM=a[3],fN=a[1],fO=b(a[2]);return[k9,m(c,fN),fO,fM];case +162:var +fP=a[2],fQ=a[1],fR=K(a[3],b),fS=b(fP);return[kp,m(d,fQ),fS,fR];case +163:return[qe,m(c,a[1])];case +164:var +fT=a[3],fU=a[2],fV=a[1],fW=m(d,a[4]),fX=b(fU);return[lQ,b(fV),fX,fT,fW];case +165:var +fY=a[2],fZ=a[1],f0=m(d,a[3]),f1=b(fY);return[lE,b(fZ),f1,f0];case +166:var +f2=a[2],f3=a[1],f4=b(a[3]),f5=b(f2);return[lg,m(d,f3),f5,f4];case +167:var +f6=a[1],f7=b(a[2]);return[k6,m(c,f6),f7];case +168:var +f8=a[1],f9=m(c,a[2]);return[kc,m(c,f8),f9];case +169:return[lc,m(c,a[1])];case +170:return[oA,b(a[1])];case +171:return[rI,b(a[1])];case +172:var +f_=a[2],f$=a[1],ga=fx(c,a[3]),gb=S(f_,function(a){var +b=a[2];return[0,m(c,a[1]),b]});return[vp,b(f$),gb,ga];case +173:var +gc=a[2];return[xn,m(c,a[1]),gc];case +174:var +gd=a[4],ge=a[2],gf=a[1],gg=b(a[3]),gh=b(ge);return[t3,m(c,gf),gh,gg,gd];case +175:var +gi=a[1],gj=b(a[2]);return[tL,m(c,gi),gj];case +176:var +gk=a[1];return[pR,iN(function(a){var +d=a[3],e=a[2],f=a[1],g=K(d,function(a){if(0===a[0])return[0,m(c,a[1])];var +b=a[1],d=K(a[2],c);return[1,m(c,b),d]}),h=K(e,c);return[0,b(f),h,g]},gk)];case +177:var +gl=a[3],gm=a[2],gn=a[1],go=K(gl,function(a){if(0===a[0])return[0,m(c,a[1])];var +b=a[1],d=K(a[2],c);return[1,m(c,b),d]}),gp=K(gm,c);return[vr,b(gn),gp,go];case +178:var +n=a[1],gq=n[2],gr=n[1],gs=m(c,n[3]);return[wY,[0,m(c,gr),gq,gs]];case +179:var +gu=a[3],gv=a[2];return[sO,m(c,a[1]),gv,gu];case +180:return[q0,m(c,a[1])];case +181:var +gw=a[2];return[qX,m(c,a[1]),gw];case +182:return[t2,b(a[1])];case +183:return[oE,b(a[1])];case +184:return[l_,m(c,a[1])];case +185:var +gy=a[1];return[jH,gy,m(c,a[2])];case +186:var +gz=a[4],gA=a[2],gB=a[1],gC=b(a[3]),gD=b(gA);return[q5,b(gB),gD,gC,gz];case +187:var +gE=a[2];return[oi,m(c,a[1]),gE];case +188:var +gF=a[2],gG=a[1],gH=m(c,a[3]),gI=b(gF);return[rO,m(c,gG),gI,gH];case +189:var +gJ=a[1],gK=m(c,a[2]);return[q4,m(c,gJ),gK];case +190:var +gL=a[4],gM=a[2],gP=a[1],gQ=m(c,a[3]),gR=m(c,gM);return[sW,b(gP),gR,gQ,gL];case +191:return[qd,m(c,a[1])];case +192:var +h=a[3],gS=a[2],gT=a[1],gU=iN(b,a[4]);if(typeof +h==="number")switch(h){case +0:var +i=0;break;case +1:var +i=1;break;case +2:var +i=2;break;default:var +i=3}else +var +i=0===h[0]?[0,b(h[1])]:[1,b(h[1])];return[lN,m(c,gT),gS,i,gU];case +193:var +gV=a[2];return[qS,m(c,a[1]),gV];default:var +gW=a[3],gX=a[2];return[qT,m(c,a[1]),gX,gW]}}if(49<=g)switch(g){case +49:var +cH=a[2];return[49,m(c,a[1]),cH];case +50:var +cI=a[3],cJ=a[1],cK=b(a[2]);return[50,b(cJ),cK,cI];case +51:var +cL=a[3],cM=a[1],cN=b(a[2]);return[51,b(cM),cN,cL];case +52:return[52,m(c,a[1])];case +53:var +cO=a[1],cP=b(a[2]);return[53,b(cO),cP];case +54:return[54,b(a[1])];case +55:return[55,m(c,a[1])];case +56:return[56,m(c,a[1])];case +57:return[57,m(c,a[1])];case +58:var +D=a[1],cQ=a[2],cR=D[2],cS=D[1],cT=m(d,a[3]),cU=b(cQ);return[58,[0,b(cS),cR],cU,cT];case +59:return[59,b(a[1])];case +60:var +cV=a[3],cW=a[2];return[60,m(c,a[1]),cW,cV];case +61:return[61,m(c,a[1])];case +62:var +cX=a[4],cY=a[3],cZ=a[1],c0=b(a[2]);return[62,m(c,cZ),c0,cY,cX];case +63:var +F=a[2],c1=a[3],c2=F[1],c3=a[1],c4=b(F[2]),c5=[0,b(c2),c4];return[63,m(d,c3),c5,c1];case +64:var +G=a[2],c6=G[1],c7=a[1],c8=b(G[2]),c9=[0,b(c6),c8];return[64,m(d,c7),c9];case +65:var +c_=a[1],c$=b(a[2]);return[65,b(c_),c$];case +66:return[66,m(c,a[1])];case +67:var +H=a[2],da=H[1],db=a[1],dc=b(H[2]),dd=[0,b(da),dc];return[67,m(d,db),dd];case +68:return[68,b(a[1])];case +69:var +de=a[2],df=a[1],dg=K(a[3],c),dh=b(de);return[69,b(df),dh,dg];case +70:var +di=a[2],dj=a[1],dk=K(a[3],c),dl=b(di);return[70,b(dj),dl,dk];case +71:var +dm=a[2];return[71,m(c,a[1]),dm];case +72:var +dn=a[2];return[72,m(c,a[1]),dn];case +73:var +dp=a[2];return[73,m(c,a[1]),dp];case +74:return[74,m(c,a[1])];case +75:var +dq=a[1],dr=K(a[2],b);return[75,b(dq),dr];case +76:var +ds=a[3],dt=a[2];return[76,b(a[1]),dt,ds];case +77:var +du=a[4],dv=a[3],dw=a[1];return[77,dw,m(c,a[2]),dv,du];case +78:var +I=a[1],dx=I[1],dy=b(I[2]);return[78,[0,b(dx),dy]];case +79:var +dz=a[2];return[79,m(c,a[1]),dz];case +80:return[80,m(c,a[1])];case +81:return[81,m(c,a[1])];case +82:return[82,m(c,a[1])];case +83:return[83,m(c,a[1])];case +84:var +dA=a[1];return[84,dA,m(c,a[2])];case +85:var +dB=a[1],dC=b(a[2]);return[85,m(c,dB),dC];case +86:return[86,m(c,a[1])];case +87:var +dD=a[1],dE=b(a[2]);return[87,m(c,dD),dE];case +88:var +dF=a[1],dG=S(a[2],b);return[88,m(c,dF),dG];case +89:return[89,m(c,a[1])];case +90:var +dH=a[1],dI=b(a[2]);return[90,m(c,dH),dI];case +91:return[91,m(c,a[1])];case +92:var +dJ=a[2];return[92,m(c,a[1]),dJ];case +93:var +dK=a[2];return[93,m(c,a[1]),dK];case +94:var +dL=a[3],dM=a[2];return[94,m(c,a[1]),dM,dL];case +95:return[95,m(c,a[1])];case +96:var +dN=a[2],dO=a[1],dP=m(d,a[3]),dQ=b(dN);return[96,b(dO),dQ,dP];default:var +dR=a[2];return[97,m(c,a[1]),dR]}switch(g){case +0:var +p=a[2],e=p[2],q=a[1],O=a[3],P=p[1],Q=q[2],R=q[1],T=K(a[4],j),o=0,U=S(O,d);if(typeof +e==="number")o=1;else +switch(e[0]){case +0:var +J=e[2],f=[0,m(c,e[1]),J];break;case +1:var +L=e[2],f=[1,m(c,e[1]),L];break;case +2:var +M=e[2],f=[2,m(c,e[1]),M];break;case +3:var +f=[3,m(c,e[1])];break;case +4:var +f=[4,m(c,e[1])];break;case +5:var +f=[5,m(c,e[1])];break;case +6:var +N=e[2],f=[6,m(c,e[1]),N];break;default:o=1}if(o)var +f=e;var +V=[0,b(P),f];return[0,[0,b(R),Q],V,U,T];case +1:var +W=a[3],X=a[2],Y=a[1],Z=K(a[4],j),_=b(W),$=b(X);return[1,m(d,Y),$,_,Z];case +2:var +aa=a[4],ab=a[3],ac=a[2],ad=a[1],ae=S(a[5],d),af=b(ab);return[2,ad,b(ac),af,aa,ae];case +3:var +ag=a[2];return[3,b(a[1]),ag];case +4:var +ah=a[2];return[4,b(a[1]),ah];case +5:var +ai=a[2];return[5,b(a[1]),ai];case +6:var +aj=a[2];return[6,b(a[1]),aj];case +7:var +ak=a[2];return[7,b(a[1]),ak];case +8:var +al=a[3],am=a[2];return[8,b(a[1]),am,al];case +9:var +an=a[3],ao=a[2];return[9,b(a[1]),ao,an];case +10:var +ap=a[4],aq=a[3],ar=a[2];return[10,b(a[1]),ar,aq,ap];case +11:var +as=a[5],at=a[4],au=a[2],av=a[1],aw=b(a[3]),ax=b(au);return[11,b(av),ax,aw,at,as];case +12:return[12,b(a[1])];case +13:return[13,b(a[1])];case +14:var +ay=a[2],az=a[1],aA=m(d,a[3]),aB=b(ay);return[14,b(az),aB,aA];case +15:var +aC=a[2],aD=a[1],aE=m(d,a[3]),aF=b(aC);return[15,b(aD),aF,aE];case +16:var +aG=a[2],aH=a[1],aI=m(d,a[3]),aJ=b(aG);return[16,b(aH),aJ,aI];case +17:var +aK=a[2],aL=a[1],aM=m(d,a[3]),aN=b(aK);return[17,b(aL),aN,aM];case +18:var +aO=a[5],aP=a[3],aQ=a[2],aR=a[1],aS=m(d,a[4]),aT=b(aP);return[18,aR,b(aQ),aT,aS,aO];case +19:var +aU=a[2],aV=a[1],aW=m(d,a[3]);return[19,b(aV),aU,aW];case +20:var +aX=a[2],aY=a[1],aZ=m(d,a[3]);return[20,b(aY),aX,aZ];case +21:var +r=a[1],a0=a[3],a1=a[2],a2=r[2],a3=r[1],a4=m(d,a[4]),a5=b(a2);return[21,[0,b(a3),a5],a1,a0,a4];case +22:var +a6=a[4],a7=a[3],a8=a[2];return[22,b(a[1]),a8,a7,a6];case +23:var +a9=a[3],a_=a[2];return[23,b(a[1]),a_,a9];case +24:var +s=a[1],a$=a[2],ba=s[2],bb=s[1],bc=m(d,a[3]),bd=b(ba);return[24,[0,b(bb),bd],a$,bc];case +25:var +be=a[2];return[25,m(c,a[1]),be];case +26:var +bf=a[1],bg=m(d,a[2]);return[26,b(bf),bg];case +27:var +t=a[1],bh=t[1],bi=b(t[2]);return[27,[0,b(bh),bi]];case +28:var +u=a[1],bj=u[1],bk=b(u[2]);return[28,[0,b(bj),bk]];case +29:var +bl=a[7],bm=a[5],bn=a[4],bo=a[3],bp=a[2],bq=a[1],br=m(c,a[6]),bs=S(bn,b),bt=b(bo),bu=b(bp);return[29,m(d,bq),bu,bt,bs,bm,br,bl];case +30:var +v=a[1],bv=a[3],bw=a[2],bx=v[2],by=v[1],bz=m(d,a[4]),bA=b(bx);return[30,[0,b(by),bA],bw,bv,bz];case +31:var +w=a[1],bB=w[2],bC=w[1],bD=m(d,a[2]),bE=b(bB);return[31,[0,b(bC),bE],bD];case +32:var +bF=a[5],bG=a[4],bH=a[2],bI=a[1],bJ=b(a[3]),bK=b(bH);return[32,m(d,bI),bK,bJ,bG,bF];case +33:var +bL=a[3],bM=a[1],bN=b(a[2]);return[33,m(d,bM),bN,bL];case +34:var +bO=a[1],bP=m(d,a[2]);return[34,b(bO),bP];case +35:var +bQ=a[3],bR=a[2],bS=a[1],bT=m(d,a[4]);return[35,b(bS),bR,bQ,bT];case +36:var +bU=a[3],bV=a[2],bW=a[1],bX=m(d,a[4]);return[36,b(bW),bV,bU,bX];case +37:var +bY=a[5],bZ=a[4],b0=a[3],b1=a[2],b2=a[1],b3=m(d,a[6]),b4=b(bZ);return[37,b2,b(b1),b0,b4,bY,b3];case +38:var +b5=a[2],b6=a[1],b7=b(a[3]),b8=b(b5);return[38,b(b6),b8,b7];case +39:var +b9=a[1],b_=b(a[2]);return[39,b(b9),b_];case +40:var +x=a[1],b$=x[2],ca=x[1],cb=m(d,a[2]),cc=b(b$);return[40,[0,b(ca),cc],cb];case +41:var +cd=a[3],ce=a[2],cf=a[1],cg=K(a[4],j),ch=b(cd),ci=b(ce);return[41,m(d,cf),ci,ch,cg];case +42:var +y=a[3],z=a[2],cj=y[2],ck=y[1],cl=z[2],cm=z[1],cn=a[1],co=K(a[4],b),cp=[0,ck,b(cj)],cq=[0,cm,b(cl)];return[42,b(cn),cq,cp,co];case +43:var +A=a[1],cr=a[3],cs=A[2],ct=A[1],cu=m(d,a[2]),cv=b(cs);return[43,[0,b(ct),cv],cu,cr];case +44:var +B=a[1],cw=B[2],cx=B[1],cy=m(d,a[2]),cz=b(cw);return[44,[0,b(cx),cz],cy];case +45:var +C=a[1],cA=C[1],cB=b(C[2]);return[45,[0,b(cA),cB]];case +46:return[46,m(c,a[1])];case +47:var +cC=a[2];return[47,m(c,a[1]),cC];default:var +cD=a[4],cE=a[2],cF=a[1],cG=b(a[3]);return[48,m(c,cF),cE,cG,cD]}}},my=function(a){return fv([0,Br(a)],a)},dCQ=function(a,b,c){switch(c[0]){case +0:var +d=c[4],e=c[3],f=c[2],g=c[1];return aY(e,a,function(a){return n(b,a,function(a){return[0,g,f,[0,a],d]})});case +1:var +h=c[4],i=c[3],j=c[2],k=c[1];return n(b,k,function(a){return[1,a,j,i,h]});case +2:var +l=c[5],m=c[4],o=c[3],p=c[2],q=c[1];return aY(l,a,function(a){return n(b,a,function(a){return[2,q,p,o,m,[0,a]]})});case +14:var +r=c[3],s=c[2],t=c[1];return n(b,r,function(a){return[14,t,s,a]});case +15:var +u=c[3],v=c[2],w=c[1];return n(b,u,function(a){return[15,w,v,a]});case +16:var +x=c[3],y=c[2],z=c[1];return n(b,x,function(a){return[16,z,y,a]});case +17:var +A=c[3],B=c[2],C=c[1];return n(b,A,function(a){return[17,C,B,a]});case +18:var +D=c[5],E=c[4],F=c[3],G=c[2],H=c[1];return n(b,E,function(a){return[18,H,G,F,a,D]});case +19:var +I=c[3],J=c[2],K=c[1];return n(b,I,function(a){return[19,K,J,a]});case +20:var +L=c[3],M=c[2],N=c[1];return n(b,L,function(a){return[20,N,M,a]});case +21:var +O=c[4],P=c[3],Q=c[2],R=c[1];return n(b,O,function(a){return[21,R,Q,P,a]});case +24:var +S=c[3],T=c[2],U=c[1];return n(b,S,function(a){return[24,U,T,a]});case +26:var +V=c[2],W=c[1];return n(b,V,function(a){return[26,W,a]});case +29:var +X=c[7],Y=c[6],Z=c[5],_=c[4],$=c[3],aa=c[2],ab=c[1];return n(b,ab,function(a){return[29,a,aa,$,_,Z,Y,X]});case +30:var +ac=c[4],ad=c[3],ae=c[2],af=c[1];return n(b,ac,function(a){return[30,af,ae,ad,a]});case +31:var +ag=c[2],ah=c[1];return n(b,ag,function(a){return[31,ah,a]});case +32:var +ai=c[5],aj=c[4],ak=c[3],al=c[2],am=c[1];return n(b,am,function(a){return[32,a,al,ak,aj,ai]});case +33:var +an=c[3],ao=c[2],ap=c[1];return n(b,ap,function(a){return[33,a,ao,an]});case +34:var +aq=c[2],ar=c[1];return n(b,aq,function(a){return[34,ar,a]});case +35:var +as=c[4],at=c[3],au=c[2],av=c[1];return n(b,as,function(a){return[35,av,au,at,a]});case +36:var +aw=c[4],ax=c[3],ay=c[2],az=c[1];return n(b,aw,function(a){return[36,az,ay,ax,a]});case +37:var +aA=c[6],aB=c[5],aC=c[4],aD=c[3],aE=c[2],aF=c[1];return n(b,aA,function(a){return[37,aF,aE,aD,aC,aB,a]});case +40:var +aG=c[2],aH=c[1];return n(b,aG,function(a){return[40,aH,a]});case +41:var +aI=c[4],aJ=c[3],aK=c[2],aL=c[1];return n(b,aL,function(a){return[41,a,aK,aJ,aI]});case +43:var +aM=c[3],aN=c[2],aO=c[1];return n(b,aN,function(a){return[43,aO,a,aM]});case +44:var +aP=c[2],aQ=c[1];return n(b,aP,function(a){return[44,aQ,a]});case +58:var +aR=c[3],aS=c[2],aT=c[1];return n(b,aR,function(a){return[58,aT,aS,a]});case +96:var +aU=c[3],aV=c[2],aW=c[1];return n(b,aU,function(a){return[96,aW,aV,a]});case +107:var +aX=c[1];return n(b,aX,function(a){return[hb,a,c[2],c[3]]});case +109:var +aZ=c[2],a0=c[1];return n(b,aZ,function(a){return[jw,a0,a]});case +110:var +a1=c[2],a2=c[1];return n(b,a1,function(a){return[hr,a2,a]});case +113:var +a3=c[4],a4=c[3],a5=c[2],a6=c[1];return n(b,a3,function(a){return[gt,a6,a5,a4,a]});case +141:var +a7=c[4],a8=c[3],a9=c[2],a_=c[1];return n(b,a_,function(a){return[kw,a,a9,a8,a7]});case +142:var +a$=c[3],ba=c[2],bb=c[1];return n(b,a$,function(a){return[mf,bb,ba,a]});case +143:var +bc=c[4],bd=c[3],be=c[2],bf=c[1];return n(b,bc,function(a){return[md,bf,be,bd,a]});case +144:var +bg=c[6],bh=c[5],bi=c[4],bj=c[3],bk=c[2],bl=c[1];return n(b,bg,function(a){return[mg,bl,bk,bj,bi,bh,a]});case +145:var +bm=c[5],bn=c[4],bo=c[3],bp=c[2],bq=c[1];return n(b,bm,function(a){return[lL,bq,bp,bo,bn,a]});case +160:var +br=c[1];return n(b,br,function(a){return[kO,a,c[2],c[3],c[4]]});case +162:var +bs=c[3],bt=c[2],bu=c[1];return n(b,bu,function(a){return[kp,a,bt,bs]});case +164:var +bv=c[4],bw=c[3],bx=c[2],by=c[1];return n(b,bv,function(a){return[lQ,by,bx,bw,a]});default:return a}},dCR=function(a){var +b=0,d=a[0];if(hb<=d)switch(d){case +115:return[0,a[3]];case +132:return[0,a[1]];case +133:return[0,a[2]];case +134:var +e=a[2];break;case +140:return[0,a[1][1]];case +146:var +i=a[3],j=a[2],k=j[2],l=i[2],m=i[1],n=j[1],o=k?l?k[1]:m:n;return[0,o[2]];case +148:var +g=a[3];b=5;break;case +149:return[0,a[1]];case +150:return[0,a[1]];case +176:var +g=a[1][1][1];b=5;break;case +178:var +h=a[1][1];b=6;break;case +179:return[0,a[1]];case +180:return[0,a[1]];case +181:return[0,a[1]];case +192:return[0,a[1]];case +193:return[0,a[1]];case +168:case +185:case +190:b=9;break;case +108:case +111:case +112:case +114:case +147:case +170:case +171:b=2;break;case +151:case +152:case +153:case +154:case +155:case +156:case +157:case +158:case +159:case +172:case +177:case +182:case +183:case +186:b=3;break;case +107:case +109:case +110:case +113:case +141:case +142:case +143:case +144:case +145:case +160:case +162:case +164:case +165:case +166:b=7;break;default:b=1}else if(54<=d)switch(d){case +77:return[0,a[2]];case +104:b=8;break;case +84:b=9;break;case +78:case +105:var +e=a[1][1];break;case +59:case +65:case +68:case +69:case +70:b=3;break;case +58:case +63:case +64:case +67:case +96:b=7;break;case +54:case +75:case +76:case +99:case +100:case +101:case +102:case +103:b=2;break;default:b=1}else +switch(d){case +11:return[0,a[1][2]];case +23:return[0,a[1][2]];case +25:return[0,a[1]];case +42:return[0,a[1][2]];case +47:return[0,a[1]];case +48:return[0,a[1]];case +53:var +f=a[2];b=4;break;case +45:b=8;break;case +27:case +28:var +f=a[1][1];b=4;break;case +38:case +39:b=3;break;case +46:case +49:case +52:b=1;break;case +12:case +13:case +50:case +51:var +f=a[1];b=4;break;case +3:case +4:case +5:case +6:case +7:case +8:case +9:case +10:case +22:b=2;break;default:b=7}var +c=0;switch(b){case +1:var +h=a[1];c=1;break;case +2:var +e=a[1];break;case +3:var +g=a[1];c=2;break;case +8:var +e=a[1][2];break;case +9:var +h=a[2];c=1;break;case +4:return[0,f[2]];case +0:break;case +5:c=2;break;case +6:c=1;break;default:return 0}switch(c){case +0:return[0,e[2]];case +2:return[0,g[2]];default:return[0,h]}},abf=function(a){switch(a[0]){case +72:return 3;case +78:return 5;case +79:return dCS;case +85:return dCV;case +86:return dCW;case +87:return dCX;case +88:return dCY;case +89:return dCZ;case +90:return dC0;case +94:return dC1;case +115:return 4;case +116:return 0;case +118:return dC2;case +119:return dC3;case +120:return dC4;case +121:return dC5;case +122:return dC6;case +123:return dC7;case +124:return dC8;case +125:return dC9;case +126:return dC_;case +127:return dC$;case +129:return dDa;case +133:return[1,[0,a[1]]];case +134:return[1,[1,a[1]]];case +136:return dDb;case +137:return dDc;case +156:if(a[4])return dDd;break;case +181:return dDe;case +190:return dDf;case +83:case +84:return dCU;case +117:case +132:return 1;case +80:case +81:case +82:case +95:case +98:return dCT}return 2},Ow=function(a){switch(a[1]){case +0:return dDg;case +1:switch(a[2]){case +0:return dDh;case +1:return X(dDi);default:return dDj}default:return dDk}},Ox=function(a){if(!a)return[0,j(dDn),0];var +b=a[1];if(!q(b,rS))return[0,j(dDm),0];var +c=[0,R(b),0];return[0,j(dDl),c]},aKD=function(a,b,c,d,e){var +f=[1,[0,[1,g+c],0],m(a,h5(b))],h=aY(d,0,function(a){var +b=[0,R(a),0];return[0,j(dDo),b]}),i=[0,j(e),0],k=V(h,[0,j(dDp),i]);return V([0,j(dDq),[0,f,0]],k)},Ga=function(a){var +b=my(a),c=0;if(typeof +b!=="number")switch(b[0]){case +21:var +d=b[1];c=1;break;case +25:var +e=b[1];if(0===e[0]){var +d=e[1];c=1}break}return c?[0,d]:0},aKE=function(a){return 1===a?[0,aKF,aKG]:[0,aKG,aKF]},dDV=function(f,b){function +c(a){return aa7(f,a)}function +al(a,b){if(af(b,gF)){var +c=j(dDW);return[0,j(dDX),c]}var +d=R(b);return[0,j(a),d]}var +z=b[0];if(98>z){if(49>z)switch(z){case +0:var +aN=b[4],aO=b[3],aP=b[2],am=aP[1],dU=aP[2],dV=b[1][1];if(0===aN){var +dW=f9(aO,A);return[0,am[2],dU,dV,am,dW]}var +dX=f9(aO,A);return[1,am[2],dX,aN];case +1:var +aQ=b[4],aR=b[3],aS=b[1],dY=b[2];return 0===aQ?[2,dY,aR,aS]:[1,aR[2],aS,aQ];case +2:var +dZ=b[3],d0=b[2],d1=b[1],d2=f9(b[5],A),d3=S(d1,fI);return[4,d0[2],d3,0,dZ,d2];case +3:return[5,[0,j(b[2]),0]];case +4:var +d4=b[2],d5=[0,j(dDY),0],d6=[0,R(fI(d4)),d5];return[5,[0,j(dDZ),d6]];case +5:var +aT=al(dD0,b[2]),d7=aT[2],d8=aT[1],d9=[0,j(dD1),0],d_=[0,R(dD2),d9],d$=[0,j(dD3),d_],ea=[0,j(dD4),d$],eb=[0,j(dD5),ea],ec=[0,R(dD6),eb],ed=[0,d8,[0,d7,[0,j(dD7),ec]]];return[5,[0,j(dD8),ed]];case +6:var +aU=al(dD9,b[2]),ee=aU[2],ef=aU[1],eg=[0,j(dD_),0],eh=[0,R(dD$),eg],ei=[0,j(dEa),eh],ej=[0,j(dEb),ei],ek=[0,R(dEc),ej],el=[0,ef,[0,ee,[0,j(dEd),ek]]];return[5,[0,j(dEe),el]];case +7:var +aV=al(dEf,b[2]),em=aV[2],en=aV[1],eo=[0,j(dEg),0],ep=[0,R(dEh),eo],eq=[0,j(dEi),ep],er=[0,en,[0,em,[0,j(dEj),eq]]];return[5,[0,j(dEk),er]];case +8:var +aW=b[3],aX=b[2];if(aW)var +es=aW[1],et=[0,j(dEl),0],eu=[0,R(n(k(dEm),es,aX)),et],ev=[0,j(dEn),eu],aZ=[0,j(dEo),ev];else +var +aZ=0;var +ew=[0,j(dEp),0],ex=[0,R(aX),ew],ey=[0,j(dEq),ex];return[5,V([0,j(dEr),ey],aZ)];case +9:var +an=b[3],ez=b[2],eA=[0,j(dEs),0],eB=[0,R(m(k(dEt),an)),eA],eC=[0,j(dEu),eB],eD=[0,R(ez),eC],eE=[0,j(dEv),eD],eF=[0,R(an),eE],eG=[0,j(dEw),eF],eH=[0,j(dEx),eG],eI=[0,R(an),eH];return[5,[0,j(dEy),eI]];case +10:var +a0=b[4],a1=b[3],eJ=b[2];if(a0)var +eK=a0[1],eL=[0,j(dEz),0],eM=[0,R(eK),eL],a2=[0,j(dEA),eM];else +var +a2=0;var +eN=[0,j(dEB),0],eO=[0,R(eJ),eN],eP=[0,j(dEC),eO],eQ=[0,R(a1),eP],eR=[0,j(dED),eQ],eS=[0,j(dEE),eR],eT=[0,R(a1),eS];return[5,V([0,j(dEF),eT],a2)];case +11:var +N=b[5],a3=b[4],eU=b[3],eV=b[2];if(a3===N)var +eW=1===N?dEG:dEK,a5=eW,a4=m(k(dEH),N);else +var +a5=dEL,a4=n(k(dEM),a3,N);var +eX=aj(my(eV),eU),eY=[0,j(n(k(dEI),a4,a5)),0],eZ=[0,c(eX),eY];return[5,[0,j(dEJ),eZ]];case +12:var +a6=b[1],e0=[0,j(dEN),0],e1=[0,R(dEO),e0],e2=[0,j(dEP),e1],e3=[0,f5(a6),e2],e4=[0,j(dEQ),e3],e5=[0,j(dER),e4],e6=[0,R(dES),e5],e7=[0,j(dET),e6],e8=[0,f5(a6),e7];return[5,[0,j(dEU),e8]];case +13:var +e9=b[1],e_=[0,j(dEV),0],e$=[0,R(dEW),e_],fa=[0,j(dEX),e$],fb=[0,j(dEY),fa],fc=[0,j(dEZ),fb],fd=[0,j(dE0),fc],fe=[0,f5(e9),fd];return[5,[0,j(dE1),fe]];case +14:return[2,b[1],b[2],b[3]];case +15:return[2,b[1],b[2],b[3]];case +16:return[2,b[1],b[2],b[3]];case +17:return[2,b[1],b[2],b[3]];case +18:var +ff=b[5],fg=b[4],fh=b[3],fi=b[2],fj=S(b[1],fI);return[4,fi[2],fj,ff,fh,fg];case +19:var +fk=b[3],fl=b[2],fm=b[1],fn=[0,j(dE2),0],fo=V(Ox(S(fl,fI)),fn);return[6,fm[2],fo,fk];case +20:var +fp=b[3],fq=b[2],fr=b[1],ft=[0,j(dE3),0],fu=V(Ox(S(fq,fI)),ft);return[6,fr[2],fu,fp];case +21:var +a7=b[3],a8=b[1],fw=b[4],fx=a7[2],fy=a7[1],fz=a8[2],fB=a8[1];return[7,S(b[2],fI),fB,fy,fz,fx,fw];case +22:var +fC=b[4],fD=b[3],fE=b[2],fF=b[1],a9=function(a){switch(a){case +0:return dE4;case +1:return dE5;default:return dE6}},fG=a9(fD),fH=a9(fC),a_=s([37,[0,fE]],h5(fF)),fJ=[0,j(P(fG,dE7)),0],fK=[0,j(dE8),fJ],fL=[0,c(a_),fK],fM=[0,j(dE9),fL],fN=[0,j(P(dE$,P(fH,dE_))),fM],fO=[0,c(a_),fN];return[5,[0,j(dFa),fO]];case +23:var +a$=b[3],O=b[2],fP=b[1];if(aH_(O)){if(a$)var +fQ=a$[1],fR=[0,j(dFb),0],fS=[0,R(fQ),fR],ba=[0,j(dFc),fS];else +var +ba=0;var +fT=[0,j(dFd),0],fU=[0,R(O[1]),fT],ap=V([0,j(dFe),fU],ba)}else if(FL(O))var +fV=[0,j(dFf),0],fW=[0,f5(fP),fV],ap=[0,j(dFg),fW];else +var +fX=[0,j(dFh),0],fY=[0,R(fI(O)),fX],ap=[0,j(dFi),fY];return[5,ap];case +24:var +bb=b[1],fZ=b[3],f1=bb[2],f3=[0,P(dFj,fI(b[2]))];return[4,bb[1][2],f3,0,f1,fZ];case +25:var +f4=b[2],f6=[0,j(dFk),0],f7=[0,j(dFl),f6],f8=[0,j(dFm),f7],f_=[0,j(dFn),f8],f$=[0,R(f4),f_];return[5,[0,j(dFo),f$]];case +26:var +bc=b[1],ga=b[2],gb=[0,j(dFp),0],gd=[0,c(bc),gb];return[6,bc[2],gd,ga];case +27:var +bd=b[1],ge=bd[2],gf=bd[1],gg=[0,j(dFq),0],gh=[0,c(ge),gg],gi=[0,j(dFr),gh],gj=[0,c(gf),gi];return[5,[0,j(dFs),gj]];case +28:var +be=b[1],gk=be[2],gm=be[1],gn=[0,j(dFt),0],go=[0,R(dFu),gn],gp=[0,j(dFv),go],gq=[0,R(dFw),gp],gr=[0,j(dFx),gq],gs=[0,j(dFy),gr],gt=[0,j(dFz),gs],gu=[0,c(gk),gt],gv=[0,j(dFA),gu],gw=[0,c(gm),gv];return[5,[0,j(dFB),gw]];case +29:var +Q=b[6],T=b[5],W=b[4],B=b[3],h=b[2],Y=b[1];if(b[7]){var +bf=my(h),dK=0;if(typeof +bf==="number"&&1>=bf-39>>>0){var +bg=1;dK=1}if(!dK)var +bg=ao(h,B);if(bg){var +gx=[0,c(s(dFC,Q)),0],gy=[0,j(dFD),gx],gz=[0,c(aj([60,m(k(dFE),T)],B)),gy],gA=V(gz,aY(W,0,function(a){var +b=[0,j(dFF),0],d=[0,c(a),b];return[0,j(dFG),d]}));return[6,h[2],gA,Y]}var +gB=[0,c(s(dFH,Q)),0],gC=[0,j(dFI),gB],gD=[0,c(aj([60,m(k(dFJ),T)],B)),gC],gE=[0,j(dFK),gD],gG=[0,c(h),gE],gH=V(gG,aY(W,0,function(a){var +b=[0,j(dFL),0],d=[0,c(a),b];return[0,j(dFM),d]}));return[6,h[2],gH,Y]}if(ao(B,h)){var +gI=[0,c(s(dFN,Q)),0],gJ=[0,j(dFO),gI],gK=[0,c(aj([60,m(k(dFP),T)],B)),gJ],gL=[0,j(dFQ),gK],gM=V(gL,aY(W,0,function(a){var +b=[0,j(dFR),0],d=[0,c(a),b];return[0,j(dFS),d]}));return[6,h[2],gM,Y]}var +gN=[0,c(s(dFT,Q)),0],gO=[0,j(dFU),gN],gP=[0,c(aj([60,m(k(dFV),T)],B)),gO],gQ=[0,j(dFW),gP],gR=[0,c(h),gQ],gS=V(gR,aY(W,0,function(a){var +b=[0,j(dFX),0],d=[0,c(a),b];return[0,j(dFY),d]}));return[6,h[2],gS,Y];case +30:var +bh=b[1],bi=bh[1],gT=b[4],gU=b[3],gV=b[2],gW=bh[2],bj=function(a){var +b=a[2],c=a[1];return c===b?1===b?m(k(dFZ),b):m(k(dF0),b):n(k(dF1),c,b)},gX=[0,j(bj(gU)),0],gZ=[0,j(dF2),gX],g0=[0,c(gW),gZ],g1=[0,j(dF3),g0],g2=[0,j(bj(gV)),g1],g3=[0,j(dF4),g2],g4=[0,c(bi),g3];return[6,bi[2],g4,gT];case +31:var +bk=b[1],bl=bk[1],g5=b[2],g6=[0,c(bk[2]),0],g7=[0,j(dF5),g6],g8=[0,j(dF6),g7],g9=[0,c(bl),g8];return[6,bl[2],g9,g5];case +32:var +bm=b[4],g_=b[5],g$=b[3],ha=b[2],hb=b[1],hc=0,hd=1===bm?dF7:dF9,he=[0,j(l(k(dF8),bm,hd,g_)),hc],hf=[0,c(g$),he];return[6,ha[2],hf,hb];case +33:var +bn=b[2],hg=b[3],hh=b[1],hi=[1,[0,[1,hg],0],m(f,h5(bn))],hj=[0,hi,[0,j(dF_),0]],hk=[0,j(dF$),hj];return[6,bn[2],hk,hh];case +34:var +hl=b[2],hm=b[1],hn=[0,j(dGa),0];return[6,hm[2],hn,hl];case +35:var +bo=b[1],ho=b[4],hp=aKD(f,bo,b[2],b[3],dGb);return[6,bo[2],hp,ho];case +36:var +bp=b[1],hq=b[4],hr=aKD(f,bp,b[2],b[3],dGc);return[6,bp[2],hr,hq];case +37:var +bq=b[5],br=b[3],bs=b[2],hs=b[6],ht=b[4],hu=b[1],hv=Ow([0,br,bq]),hw=Ow([0,bq,br]),hx=[0,c(ht),0],hy=[0,j(dGd),hx],hz=[0,j(hw),hy],hA=[0,j(dGe),hz],hB=[0,c(bs),hA],hC=[0,j(dGf),hB],hD=[0,j(hv),hC],hE=[0,j(dGg),hD],hF=[0,R(g+hu),hE],hG=[0,j(dGh),hF];return[6,bs[2],hG,hs];case +38:var +hH=b[3],hI=b[2],hJ=b[1],hK=[0,j(dGi),0],hL=[0,c(hH),hK],hM=[0,j(dGj),hL],hN=[0,c(hI),hM],hO=[0,j(dGk),hN],hP=[0,c(hJ),hO];return[5,[0,j(dGl),hP]];case +39:var +hQ=b[2],hR=[0,j(dGm),0],hS=[0,c(hQ),hR];return[5,[0,j(dGn),hS]];case +40:var +hT=b[2],hU=b[1][1],hV=[0,j(dGo),0];return[6,hU[2],hV,hT];case +41:return[1,b[2][2],b[1],b[4]];case +42:var +bt=b[3],bu=b[2],hW=b[4],hX=bt[2],hY=bt[1],hZ=bu[2][2],h0=s([60,P(dGp,g+(bu[1]+1|0))],hZ),h1=hX[2],h2=s([60,P(dGq,g+(hY+1|0))],h1),h3=[0,j(dGr),0],h4=V(aa8(dGt,K(hW,function(a){var +b=P(dGs,gc(my(a)));return[0,c(s([60,b],a[2])),0]})),h3),h6=[0,j(dGu),0],h7=[0,j(dGv),h6],h8=[0,c(h2),h7],h9=[0,j(dGw),h8],h_=[0,j(dGx),h9],h$=[0,c(h0),h_];return[5,V([0,j(dGy),h$],h4)];case +43:var +bv=b[1],bw=bv[1],ia=b[2],ib=bv[2],ic=b[3]?dGz:dGB,id=[0,c(ib),0],ie=[0,j(dGA),id],ig=[0,c(bw),ie],ih=[0,j(ic),ig];return[6,bw[2],ih,ia];case +44:var +bx=b[1],by=bx[1],ii=b[2],ij=[0,c(bx[2]),0],ik=[0,j(dGC),ij],il=[0,c(by),ik];return[6,by[2],il,ii];case +45:var +im=b[1][2],io=[0,j(dGD),0],ip=[0,c(im),io];return[5,[0,j(dGE),ip]];case +46:var +iq=[0,j(dGF),0],ir=[0,R(dGG),iq];return[5,[0,j(dGH),ir]];case +47:var +aq=b[2];if(0===aq)return[5,[0,j(dGI),0]];var +is=0,it=1===aq?dGJ:dGM,iu=[0,j(n(k(dGK),aq,it)),is];return[5,[0,j(dGL),iu]];default:var +ar=b[4],bz=b[3],bA=b[2]?dGN:dGW;if(0===ar){var +iv=[0,j(dGO),0],iw=[0,c(bz),iv],ix=[0,j(dGP),iw],iy=[0,j(bA),ix];return[5,[0,j(dGQ),iy]]}var +iz=0,iA=1===ar?dGR:dGV,iB=[0,j(n(k(dGS),ar,iA)),iz],iC=[0,j(dGT),iB],iD=[0,c(bz),iC],iE=[0,j(bA),iD];return[5,[0,j(dGU),iE]]}switch(z){case +49:var +bB=b[2],iF=0,iG=1===bB?dGX:dG0,iH=[0,j(n(k(dGY),bB,iG)),iF];return[5,[0,j(dGZ),iH]];case +50:var +bC=b[3],iI=b[2],iJ=aj(my(b[1]),iI),iK=0,iL=1===bC?dG1:dG5,iM=[0,j(n(k(dG2),bC,iL)),iK],iN=[0,j(dG3),iM],iO=[0,c(iJ),iN];return[5,[0,j(dG4),iO]];case +51:var +bD=b[3],iP=b[2],iQ=aj(my(b[1]),iP),iR=0,iS=1===bD?dG6:dG_,iT=[0,j(n(k(dG7),bD,iS)),iR],iU=[0,j(dG8),iT],iV=[0,c(iQ),iU];return[5,[0,j(dG9),iV]];case +52:var +iW=[0,j(dG$),0],iX=[0,R(dHa),iW],iY=[0,j(dHb),iX],iZ=[0,R(dHc),iY];return[5,[0,j(dHd),iZ]];case +53:var +i0=b[2],i1=b[1],i2=[0,j(dHe),0],i3=[0,c(i0),i2],i4=[0,j(dHf),i3],i5=[0,c(i1),i4];return[5,[0,j(dHg),i5]];case +54:var +i6=b[1],i7=[0,j(dHh),0],i8=[0,c(i6),i7];return[5,[0,j(dHi),i8]];case +55:var +i9=[0,j(dHj),0],i_=[0,j(dHk),i9],i$=[0,R(dHl),i_];return[5,[0,j(dHm),i$]];case +56:var +ja=[0,j(dHn),0],jb=[0,j(dHo),ja],jd=[0,R(dHp),jb];return[5,[0,j(dHq),jd]];case +57:var +je=[0,j(dHr),0],jf=[0,j(dHs),je],jg=[0,R(dHt),jf];return[5,[0,j(dHu),jg]];case +58:var +bE=b[2],bF=b[1],bG=bF[1],jh=b[3],ji=bF[2],jj=h5(bE),jk=s(my(bE),jj),jl=0,jm=function(a,b){if(0===a[0]){var +c=a[1],d=[0,j(dHv),0];return[0,[0,R(WI(c)),d],b]}var +e=a[1],f=[0,j(dHw),0];return[0,[0,R(WI(e)),f],b]},jn=aa8(dHx,U(l(F$[16],jm,ji,jl))),jo=[0,j(dHy),0],jp=[0,c(jk),jo],jq=[0,j(dHz),jp],jr=V([0,c(bG),jq],jn);return[6,bG[2],jr,jh];case +59:var +js=b[1],jt=[0,j(dHA),0],ju=[0,c(js),jt],jv=[0,j(dHB),ju],jw=[0,R(dHC),jv];return[5,[0,j(dHD),jw]];case +60:var +jx=b[3],jy=b[2],jz=[0,j(dHE),0],jA=f9(abe(jx),jz),jB=RJ<=jy?dHF:dHI,jC=[0,j(dHG),0],jD=[0,j(jB),jC];return[5,V([0,j(dHH),jD],jA)];case +61:var +jE=[0,j(dHJ),0],jF=[0,j(dHK),jE],jG=[0,j(dHL),jF];return[5,[0,j(dHM),jG]];case +62:var +jH=b[4],jI=b[3],jJ=b[2],jK=[0,j(dHN),0],jL=[0,j(g+jI),jK],jM=[0,j(dHO),jL],jN=[0,c(jJ),jM],jO=[0,j(dHP),jN],jP=[0,R(dHQ),jO],jQ=[0,j(dHR),jP],jR=[0,R(g+jH),jQ];return[5,[0,j(dHS),jR]];case +63:var +bH=b[3],bI=b[2],bJ=bI[1],jS=bH[2],jT=bH[1],jU=b[1],jV=[0,c(bI[2]),0],jW=[0,j(dHT),jV],jX=[0,j(g+jS),jW],jY=[0,j(dHU),jX],jZ=[0,c(bJ),jY],j0=[0,j(dHV),jZ],j1=[0,j(g+jT),j0],j2=[0,j(dHW),j1];return[6,bJ[2],j2,jU];case +64:var +bK=b[2],bL=bK[1],j3=bK[2],j4=b[1],j5=[0,j(dHX),0],j6=[0,c(j3),j5],j7=[0,j(dHY),j6],j8=[0,c(bL),j7];return[6,bL[2],j8,j4];case +65:var +j9=b[2],j_=b[1],j$=[0,j(dHZ),0],ka=[0,c(j9),j$],kb=[0,j(dH0),ka],kc=[0,c(j_),kb];return[5,[0,j(dH1),kc]];case +66:var +kd=[0,j(dH2),0],ke=[0,R(dH3),kd];return[5,[0,j(dH4),ke]];case +67:var +bM=b[2],bN=bM[1],kf=b[1],kg=[0,c(bM[2]),0],kh=[0,j(dH5),kg],ki=[0,c(bN),kh];return[6,bN[2],ki,kf];case +68:var +kj=b[1],kk=[0,j(dH6),0],kl=[0,c(kj),kk];return[5,[0,j(dH7),kl]];case +69:var +Z=b[3],km=b[2];if(Z){if(Z[2])var +kn=K(Z,function(a){return c(s(dH8,a))}),bO=[0,j(dH9),kn];else +var +kr=[0,c(s(dIb,Z[1])),0],bO=[0,j(dIc),kr];var +bP=bO}else +var +bP=[0,j(dId),0];var +ko=V(bP,[0,j(dH_),0]),kp=[0,j(dH$),0],kq=[0,c(km),kp];return[5,V([0,j(dIa),kq],ko)];case +70:var +_=b[3],ks=b[2],kt=b[1];if(_){if(_[2])var +ku=K(_,function(a){return c(s(dIe,a))}),bQ=[0,j(dIf),ku];else +var +kA=[0,c(s(dIk,_[1])),0],bQ=[0,j(dIl),kA];var +bR=bQ}else +var +bR=[0,j(dIm),0];var +kv=V(bR,[0,j(dIg),0]),kw=[0,j(dIh),0],kx=[0,c(ks),kw],ky=[0,j(dIi),kx],kz=[0,f5(kt),ky];return[5,V([0,j(dIj),kz],kv)];case +71:var +kB=b[2],kC=[0,j(dIn),0],kD=[0,j(kB),kC];return[5,[0,j(dIo),kD]];case +72:var +e=b[2];if(typeof +e==="number")switch(e){case +0:var +d=dDr;break;case +1:var +d=dDs;break;case +2:var +d=dDt;break;case +3:var +d=dDu;break;case +4:var +d=dDv;break;case +5:var +d=dDw;break;case +6:var +d=dDx;break;case +7:var +d=dDy;break;case +8:var +d=dDz;break;default:var +d=dDA}else +switch(e[0]){case +0:var +dL=e[1],d=m(k(dDB),dL);break;case +1:var +d=P(dDC,aHi(e[1]));break;case +2:var +dM=e[1],d=m(k(dDD),dM);break;case +3:var +d=P(dDE,aHi(e[1]));break;case +4:var +d=P(dDG,P(e[1],dDF));break;case +5:var +d=P(dDH,gY(0,e[1]));break;case +6:var +d=P(dDI,gY(0,e[1]));break;case +7:var +dN=e[1],d=m(k(dDJ),dN);break;case +8:var +dO=m(By,e[1]),d=m(k(dDK),dO);break;case +9:var +dP=m(By,e[1]),d=m(k(dDL),dP);break;case +10:var +u=e[1];if(typeof +u==="number")var +d=dDM;else +switch(u[0]){case +0:var +dQ=u[3],dR=u[2],dS=u[1],yH=f2(dDN,K(dS,function(a){return gY(0,a)})),yG=f2(dDO,K(dR,function(a){return gY(0,a)})),yF=f2(dDP,K(dQ,function(a){return gY(0,a)})),d=l(k(dDQ),yH,yG,yF);break;case +1:var +d=P(dDR,u[1]);break;case +2:var +d=P(dDS,u[1]);break;default:var +dT=u[1],d=m(k(dDT),dT)}break;default:var +d=P(dDU,e[1])}return[5,[0,j(m(k(dIp),d)),0]];case +73:var +$=b[2];if(typeof +$==="number")switch($){case +0:var +kE=[0,j(dIq),0],kF=[0,R(dIr),kE],kG=[0,j(dIs),kF],kH=[0,R(dIt),kG],kI=[0,j(dIu),kH],kJ=[0,j(dIv),kI],a=[0,j(dIw),kJ];break;case +1:var +kK=[0,j(dIx),0],kL=[0,R(dIy),kK],a=[0,j(dIz),kL];break;case +2:var +a=[0,j(dIA),0];break;case +3:var +a=[0,j(dIB),0];break;case +4:var +a=[0,j(dIC),0];break;case +5:var +kM=[0,j(dID),0],kN=[0,R(dIE),kM],a=[0,j(dIF),kN];break;case +6:var +a=[0,j(dIG),0];break;case +7:var +a=[0,j(dIH),0];break;case +8:var +kO=[0,j(dII),0],kP=[0,R(dIJ),kO],a=[0,j(dIK),kP];break;case +9:var +a=[0,j(dIL),0];break;case +10:var +a=[0,j(dIM),0];break;case +11:var +a=[0,j(dIN),0];break;case +12:var +a=[0,j(dIO),0];break;case +13:var +a=[0,j(dIP),0];break;case +14:var +kQ=[0,j(dIQ),0],a=[0,j(dIR),kQ];break;case +15:var +kR=[0,j(dIS),0],a=[0,j(dIT),kR];break;case +16:var +kS=[0,j(dIU),0],a=[0,j(dIV),kS];break;case +17:var +a=[0,j(dIW),0];break;case +18:var +a=[0,j(dIX),0];break;case +19:var +a=[0,j(dIY),0];break;case +20:var +a=[0,j(dIZ),0];break;case +21:var +a=[0,j(dI0),0];break;case +22:var +kT=[0,j(dI1),0],kU=[0,R(dI2),kT],a=[0,j(dI3),kU];break;case +23:var +a=[0,j(dI4),0];break;case +24:var +a=[0,j(dI5),0];break;case +25:var +kV=[0,j(dI6),0],kW=[0,R(dI7),kV],a=[0,j(dI8),kW];break;case +26:var +a=[0,j(dI9),0];break;default:var +kX=[0,j(dI_),0],kY=[0,j(dI$),kX],a=[0,R(dJa),kY]}else{var +bS=$[1];if($[2])var +kZ=[0,j(dJb),0],k0=[0,R(bS),kZ],bT=[0,j(dJc),k0];else +var +k1=[0,j(dJd),0],k2=[0,R(bS),k1],bT=[0,j(dJe),k2];var +a=bT}return[5,a];case +74:var +k3=[0,j(dJf),0],k4=[0,R(dJg),k3];return[5,[0,j(dJh),k4]];case +75:var +as=b[1],k5=[0,j(dJi),0],k6=[0,f5(as),k5],bU=[0,j(dJj),k6],aa=my(as),dH=0;if(typeof +aa!=="number"&&28===aa[0]){var +bW=aa[3],bX=aa[2],k8=bW[2],k9=bW[1],k_=s(bX[1],bX[2]),k$=s(k9,k8),la=[0,j(dJk),0],lb=[0,c(k_),la],lc=[0,j(dJl),lb],ld=[0,c(k$),lc],le=[0,j(dJm),ld],lf=[0,f5(as),le],bV=V(bU,[0,j(dJn),lf]);dH=1}if(!dH)var +bV=bU;return[5,bV];case +76:var +at=b[1],lg=b[3];if(b[2]){var +lh=[0,j(dJo),0],li=[0,f5(at),lh];return[5,[0,j(dJp),li]]}if(lg){var +lj=[0,j(dJq),0],lk=[0,f5(at),lj];return[5,[0,j(dJr),lk]]}var +ll=[0,j(dJs),0],lm=[0,f5(at),ll];return[5,[0,j(dJt),lm]];case +77:var +au=b[3],ab=b[1],dI=0,ln=b[4];if(1===au[0]){var +bZ=au[1],aL=0;if(q(bZ,jc)){if(!q(bZ,f0)){var +b0=39;aL=1}}else{var +b0=62;aL=1}if(aL){var +ac=b0;dI=1}}if(!dI)var +ac=[37,au];var +lo=s(ac,lr(ln)),t=aa7(function(a){return a},lo),bY=function(a){var +b=[0,j(dJu),0],c=[0,t,[0,j(dJv),b]];return[0,j(dJw),c]},aM=0;if(typeof +ab==="number")switch(ab){case +0:var +lp=[0,t,[0,j(dJx),0]],i=[0,j(dJy),lp];break;case +1:var +lq=[0,t,[0,j(dJz),0]],i=[0,j(dJA),lq];break;case +2:var +dJ=0;if(39===ac||62===ac)dJ=1;else +var +lv=[0,j(dJF),0],lw=[0,t,[0,j(dJG),lv]],i=[0,j(dJH),lw];if(dJ)var +ls=[0,t,[0,j(dJB),0]],lt=[0,j(dJC),ls],lu=[0,R(dJD),lt],i=[0,j(dJE),lu];break;case +6:var +ly=[0,t,[0,j(dJK),0]],i=[0,j(dJL),ly];break;case +7:var +lz=[0,t,[0,j(dJM),0]],i=[0,j(dJN),lz];break;case +3:aM=1;break;default:var +lx=[0,t,[0,j(dJI),0]],i=[0,j(dJJ),lx]}else if(ab[1])var +ad=ab[2],lA=[0,j(dJO),0],lB=[0,R(m(k(dJP),ad)),lA],lC=[0,j(dJQ),lB],lD=[0,R(m(k(dJR),ad)),lC],lE=[0,j(dJS),lD],lF=[0,R(m(k(dJT),ad)),lE],lG=[0,j(dJU),lF],lH=[0,R(m(k(dJV),ad)),lG],lI=[0,j(dJW),lH],i=V(bY(0),lI);else +aM=1;if(aM)var +i=bY(0);return[5,i];case +78:return[5,[0,j(dJX),0]];case +79:switch(b[2]){case +0:var +lJ=[0,j(dJY),0],H=[0,j(dJZ),lJ];break;case +1:var +lK=[0,j(dJ0),0],H=[0,j(dJ1),lK];break;case +2:var +lL=[0,j(dJ2),0],H=[0,j(dJ3),lL];break;case +3:var +lM=[0,j(dJ4),0],lN=[0,j(dJ5),lM],lO=[0,R(dJ6),lN],H=[0,j(dJ7),lO];break;default:var +lP=[0,j(dJ8),0],H=[0,j(dJ9),lP]}return[5,H];case +80:var +lQ=[0,j(dJ_),0],lR=[0,R(dJ$),lQ],lS=[0,j(dKa),lR],lT=[0,R(dKb),lS],lU=[0,j(dKc),lT],lV=[0,R(dKd),lU],lW=[0,j(dKe),lV];return[5,[0,j(dKf),lW]];case +81:var +lX=[0,j(dKg),0],lY=[0,R(dKh),lX],lZ=[0,j(dKi),lY],l0=[0,R(dKj),lZ],l1=[0,j(dKk),l0],l2=[0,R(dKl),l1],l3=[0,j(dKm),l2],l4=[0,j(dKn),l3];return[5,[0,j(dKo),l4]];case +82:var +l5=[0,j(dKp),0],l6=[0,j(dKq),l5],l7=[0,R(dKr),l6],l8=[0,j(dKs),l7];return[5,[0,j(dKt),l8]];case +83:return[5,[0,j(dKu),0]];case +84:var +l9=b[1],l_=[0,j(dKv),0];return[5,[0,R(l9),l_]];case +85:var +l$=b[2],ma=[0,j(dKw),0],mb=[0,c(l$),ma];return[5,[0,j(dKx),mb]];case +86:var +mc=[0,j(dKy),0];return[5,[0,j(dKz),mc]];case +87:var +md=b[2],me=[0,j(dKA),0],mf=[0,j(dKB),me];return[5,[0,c(md),mf]];case +88:var +b1=b[2];if(b1)var +mg=[0,c(b1[1]),0],b2=[0,j(dKC),mg];else +var +b2=[0,j(dKL),0];var +mh=[0,j(dKD),0],mi=[0,R(dKE),mh],mj=[0,j(dKF),mi],mk=[0,R(dKG),mj],ml=[0,j(dKH),mk],mm=[0,R(dKI),ml],mn=[0,b2,[0,[0,j(dKJ),mm],0]];return[5,pU([0,[0,j(dKK),0],mn])];case +89:var +mo=[0,j(dKM),0],mp=[0,R(dKN),mo];return[5,[0,j(dKO),mp]];case +90:var +mq=b[2],mr=[0,j(dKP),0],ms=[0,R(dKQ),mr],mt=[0,j(dKR),ms],mu=[0,c(mq),mt];return[5,[0,j(dKS),mu]];case +91:var +mv=[0,j(dKT),0],mw=[0,R(dKU),mv],mx=[0,j(dKV),mw];return[5,[0,j(dKW),mx]];case +92:var +mz=b[2],mA=[0,j(dKX),0],mB=[0,j(dKY),mA],mC=[0,j(mz),mB];return[5,[0,j(dKZ),mC]];case +93:var +mD=b[2],mE=[0,j(dK0),0],mF=[0,j(mD),mE];return[5,[0,j(dK1),mF]];case +94:var +b3=b[2],mG=b[3],b4=function(a){var +b=[0,j(dK2),0],c=[0,R(dK3),b],d=[0,j(dK4),c],e=[0,R(dK5),d];return[0,j(dK6),e]};if(b3){var +av=b3[1];if(mG)var +mH=b4(0),mI=[0,j(dK7),0],mJ=[0,R(dK8),mI],mK=[0,j(dK9),mJ],mL=[0,R(av),mK],b5=V([0,j(dK_),mL],mH);else +var +mM=[0,j(dK$),0],mN=[0,R(m(k(dLa),av)),mM],mO=[0,j(dLb),mN],mP=[0,R(dLc),mO],mQ=[0,j(dLd),mP],mR=[0,R(av),mQ],b5=[0,j(dLe),mR];var +b6=b5}else +var +mS=b4(0),mT=[0,j(dLf),0],mU=[0,R(dLg),mT],b6=V([0,j(dLh),mU],mS);return[5,b6];case +95:return[5,[0,j(dLi),0]];case +96:var +b7=b[1],mV=b[3],mW=[0,j(dLj),0],mX=[0,c(b7),mW];return[6,b7[2],mX,mV];default:var +mY=b[2],mZ=[0,j(dLk),0],m0=[0,R(dLl),mZ],m1=[0,j(dLm),m0],m2=[0,R(dLn),m1],m3=[0,j(dLo),m2],m4=[0,R(mY),m3];return[5,[0,j(dLp),m4]]}}if(k7>z)switch(z){case +98:var +m5=b[2],m6=[0,j(dLq),0],m7=[0,R(dLr),m6],m8=[0,j(dLs),m7],m9=[0,R(m5),m8],m_=[0,j(dLt),m9],m$=[0,j(dLu),m_],na=[0,R(dLv),m$];return[5,[0,j(dLw),na]];case +99:var +nb=b[1],nc=[0,j(dLx),0],nd=[0,c(nb),nc],ne=[0,j(dLy),nd],nf=[0,R(dLz),ne];return[5,[0,j(dLA),nf]];case +100:var +ng=b[1],nh=[0,j(dLB),0],ni=[0,c(ng),nh],nj=[0,j(dLC),ni],nk=[0,R(dLD),nj];return[5,[0,j(dLE),nk]];case +101:var +nl=b[1],nm=[0,j(dLF),0],nn=[0,j(dLG),nm],no=[0,c(nl),nn];return[5,[0,j(dLH),no]];case +102:var +np=b[1],nq=[0,j(dLI),0],nr=[0,c(np),nq],ns=[0,j(dLJ),nr],nt=[0,j(dLK),ns],nu=[0,R(dLL),nt];return[5,[0,j(dLM),nu]];case +103:var +nv=b[1],nw=[0,j(dLN),0],nx=[0,c(nv),nw],ny=[0,j(dLO),nx],nz=[0,R(dLP),ny];return[5,[0,j(dLQ),nz]];case +104:var +b8=b[1],nA=b8[2],nB=f9(abe(b8[3]),0),nC=[0,j(dLR),0],nD=[0,c(nA),nC];return[5,V([0,j(dLS),nD],nB)];case +105:var +aw=b[1],b9=aw[2],b_=aw[1];if(!b9){var +nM=[0,j(dL0),0],nN=[0,j(dL1),nM],nO=[0,j(dL2),nN],nP=[0,c(b_),nO];return[5,[0,j(dL3),nP]]}var +b$=b9[1],ca=abe(aw[3]);if(ca)var +cb=ca[1];else +var +nG=[0,j(dLV),0],nH=[0,j(dLW),nG],nI=[0,c(b$),nH],nJ=[0,j(dLX),nI],nK=[0,c(b_),nJ],nL=[0,j(dLY),nK],cb=[0,j(dLZ),nL];var +nE=[0,j(dLT),0],nF=[0,c(b$),nE];return[5,V([0,j(dLU),nF],cb)];case +106:return[5,[0,j(dL4),0]];case +107:return[2,b[2],b[3],b[1]];case +108:var +nQ=b[1],nR=[0,j(dL5),0],nS=[0,f5(nQ),nR];return[5,[0,j(dL6),nS]];case +109:var +cc=b[1],nT=b[2],nU=[0,j(dL7),0],nV=[0,c(cc),nU];return[6,cc[2],nV,nT];case +110:var +cd=b[1],nW=b[2],nX=[0,j(dL8),0],nY=[0,c(cd),nX];return[6,cd[2],nY,nW];case +111:var +ce=b[3],nZ=b[2],n0=0,n1=1===ce?dL9:dMc,n2=[0,j(n(k(dL_),ce,n1)),n0],n3=[0,j(dL$),n2],n4=[0,R(P(dMa,nZ)),n3];return[5,[0,j(dMb),n4]];case +112:var +cf=b[1];if(b[2]){var +n5=[0,j(dMd),0],n6=[0,R(dMe),n5],n7=[0,j(dMf),n6],n8=[0,c(cf),n7],n9=[0,j(dMg),n8],n_=[0,R(dMh),n9];return[5,[0,j(dMi),n_]]}var +n$=[0,j(dMj),0],oa=[0,R(dMk),n$],ob=[0,j(dMl),oa],oc=[0,R(dMm),ob],od=[0,j(dMn),oc],oe=[0,c(cf),od];return[5,[0,j(dMo),oe]];case +113:var +ax=b[3],of=b[4],og=b[2],oh=b[1],oi=0===ax?dMp:1===ax?dMr:m(k(dMs),ax),oj=[0,c(og),0],ok=[0,j(dMq),oj],ol=[0,j(oi),ok];return[6,oh[2],ol,of];case +114:return[5,[0,j(dMt),0]];case +115:var +ay=b[2],om=b[3],on=b[1],cg=function(a){return m(f,a)[1]},ch=cg(ay),ci=cg(om),dG=0;if(ch&&ci){var +oo=ci[1],yI=0;if(xW(ch[1],$4)&&xW(oo,dMu)){var +op=[0,j(dMv),0],oq=[0,j(dMw),op],or=[0,c(s(dMx,ay)),oq],cj=[0,j(dMy),or];dG=1}else +yI=1}if(!dG)var +os=[0,j(dMz),0],ot=[0,c(s(dMA,ay)),os],ou=[0,j(dMB),ot],ov=[0,j(dMC),ou],ow=[0,R(on),ov],cj=[0,j(dMD),ow];return[5,cj];case +116:return[5,aKe(Z6(b[2]))];case +117:var +C=b[2];if(typeof +C==="number")switch(C){case +0:var +ox=[0,j(dME),0],oy=[0,j(dMF),ox],oz=[0,R(dMG),oy],v=[0,j(dMH),oz];break;case +1:var +oA=[0,j(dMI),0],oB=[0,j(dMJ),oA],oC=[0,R(dMK),oB],v=[0,j(dML),oC];break;case +2:var +oD=[0,j(dMM),0],oE=[0,j(dMN),oD],oF=[0,R(dMO),oE],v=[0,j(dMP),oF];break;case +3:var +oG=[0,j(dMQ),0],oH=[0,R(dMR),oG],oI=[0,j(dMS),oH],oJ=[0,R(dMT),oI],oK=[0,j(dMU),oJ],oL=[0,R(dMV),oK],v=[0,j(dMW),oL];break;default:var +oM=[0,j(dMX),0],v=[0,R(dMY),oM]}else +switch(C[0]){case +0:var +oN=C[1],oO=[0,j(dMZ),0],oP=[0,R(dM0),oO],oQ=[0,j(dM1),oP],oR=[0,R(dM2),oQ],oS=[0,j(dM3),oR],oT=[0,R(dM4),oS],oU=[0,j(dM5),oT],oV=[0,R(dM6),oU],oW=[0,j(dM7),oV],v=[0,R(m(k(dM8),oN)),oW];break;case +1:var +ck=C[1];if(ck)var +oX=ck[1],cl=[0,j(m(k(dM9),oX)),0];else +var +cl=0;var +oY=[0,j(dM_),0],oZ=[0,R(dM$),oY],o0=[0,j(dNa),oZ],o1=[0,R(dNb),o0],v=V([0,j(dNc),o1],cl);break;default:var +o2=C[1],o3=[0,j(dNd),0],o4=[0,R(dNe),o3],o5=[0,j(dNf),o4],o6=[0,R(o2),o5],o7=[0,j(dNg),o6],o8=[0,R(dNh),o7],v=[0,j(dNi),o8]}return[5,v];case +118:var +o9=[0,j(dNj),0],o_=[0,j(dNk),o9],o$=[0,R(dNl),o_];return[5,[0,j(dNm),o$]];case +119:var +pa=[0,j(dNn),0],pb=[0,R(dNo),pa],pc=[0,j(dNp),pb],pd=[0,R(dNq),pc],pe=[0,j(dNr),pd],pf=[0,R(dNs),pe],pg=[0,j(dNt),pf],ph=[0,R(dNu),pg],pi=[0,j(dNv),ph],pj=[0,R(dNw),pi];return[5,[0,j(dNx),pj]];case +120:var +pk=b[2],pl=[0,j(dNy),0],pm=[0,R(pk),pl],pn=[0,j(dNz),pm],po=[0,j(dNA),pn],pp=[0,R(dNB),po],pq=[0,j(dNC),pp],pr=[0,j(dND),pq],ps=[0,R(dNE),pr];return[5,[0,j(dNF),ps]];case +121:var +pu=b[2],pv=[0,j(dNG),0],pw=[0,R(pu),pv],px=[0,j(dNH),pw],py=[0,j(dNI),px],pz=[0,R(dNJ),py],pA=[0,j(dNK),pz],pB=[0,j(dNL),pA],pC=[0,R(dNM),pB];return[5,[0,j(dNN),pC]];case +122:var +pD=[0,j(dNO),0],pE=[0,R(dNP),pD],pF=[0,j(dNQ),pE],pG=[0,j(dNR),pF],pH=[0,R(dNS),pG];return[5,[0,j(dNT),pH]];case +123:var +pI=[0,j(dNU),0],pJ=[0,R(dNV),pI],pK=[0,j(dNW),pJ],pL=[0,R(dNX),pK],pM=[0,j(dNY),pL],pN=[0,R(dNZ),pM];return[5,[0,j(dN0),pN]];case +124:var +pO=[0,j(dN1),0],pP=[0,R(dN2),pO];return[5,[0,j(dN3),pP]];case +125:var +pQ=[0,j(dN4),0];return[5,[0,j(dN5),pQ]];case +126:var +pR=[0,j(dN6),0];return[5,[0,j(dN7),pR]];case +127:var +pS=[0,j(dN8),0];return[5,[0,j(dN9),pS]];case +128:var +az=b[2],cm=aKx(az);switch(az){case +0:var +w=dCk;break;case +1:var +w=dCl;break;case +2:var +w=dCm;break;case +3:var +w=dCn;break;case +4:var +w=dCo;break;case +5:var +w=dCp;break;default:var +w=dCq}if(aKy(az))var +pT=[0,j(dN_),0],pV=[0,R(w),pT],pW=[0,j(dN$),pV],pX=[0,R(cm),pW],cn=[0,j(dOa),pX];else +var +pY=[0,j(dOb),0],pZ=[0,R(w),pY],p0=[0,j(dOc),pZ],p1=[0,R(cm),p0],cn=[0,j(dOd),p1];return[5,cn];case +129:return[5,[0,j(dOe),0]];case +130:return[5,[0,j(dOf),0]];case +131:var +p3=[0,R(P(dOh,P(b[2],dOg))),0];return[5,[0,j(dOi),p3]];case +132:switch(b[2]){case +0:var +D=[0,j(dOj),0];break;case +1:var +p4=[0,j(dOk),0],p5=[0,R(dOl),p4],p6=[0,j(dOm),p5],p7=[0,R(dOn),p6],D=[0,j(dOo),p7];break;case +2:var +D=[0,j(dOp),0];break;case +3:var +p8=[0,j(dOq),0],p9=[0,R(dOr),p8],p_=[0,j(dOs),p9],D=[0,j(dOt),p_];break;case +4:var +p$=[0,j(dOu),0],D=[0,j(dOv),p$];break;default:var +D=[0,j(dOw),0]}return[5,D];case +133:var +qa=b[4],qb=b[3];switch(b[1]){case +0:var +p=dOx,o=dOy;break;case +1:var +p=dOF,o=dOG;break;case +2:var +p=dOH,o=dOI;break;case +3:var +p=dOJ,o=dOK;break;case +4:var +p=dOL,o=dOM;break;case +5:var +p=dON,o=dOO;break;case +6:var +p=dOP,o=dOQ;break;case +7:var +p=dOR,o=dOS;break;default:var +p=dOT,o=dOU}var +qc=[0,j(dOz),0],qd=[0,c(s(14,qb)),qc],qe=[0,j(dOA),qd],qf=[0,j(dOB),qe],qg=[0,j(p),qf],qh=[0,j(dOC),qg],qi=[0,j(dOD),qh],qj=[0,c(s([60,o],qa)),qi];return[5,[0,j(dOE),qj]];case +134:var +qk=b[2],ql=[0,j(dOV),0],qm=[0,j(dOW),ql],qn=[0,j(dOX),qm],qo=[0,c(qk),qn],qp=[0,j(dOY),qo],qq=[0,R(dOZ),qp];return[5,[0,j(dO0),qq]];case +135:var +qr=b[2],qs=[0,j(dO1),0],qt=[0,c(qr),qs];return[5,[0,j(dO2),qt]];case +136:var +qu=b[2],qv=[0,j(dO3),0],qw=[0,R(dO4),qv],qx=[0,j(dO5),qw],qy=[0,c(qu),qx],qz=[0,j(dO6),qy],qA=[0,R(dO7),qz];return[5,[0,j(dO8),qA]];case +137:var +qB=b[2],qC=[0,j(dO9),0],qD=[0,c(qB),qC];return[5,[0,j(dO_),qD]];case +138:return[5,[0,j(dO$),0]];case +139:var +qE=b[2],qF=[0,j(dPa),0],qG=[0,c(qE),qF];return[5,[0,j(dPb),qG]];case +140:var +aA=b[1];switch(aA[0]){case +0:var +qH=aIp(aA[2]),x=[0,j(m(k(dPc),qH)),0];break;case +1:var +x=[0,j(dPf),0];break;case +2:var +x=[0,j(dPg),0];break;case +3:var +x=[0,j(dPh),0];break;case +4:var +qJ=[0,j(dPi),0],x=[0,j(dPj),qJ];break;case +5:var +qK=[0,j(dPk),0],x=[0,j(dPl),qK];break;default:var +qL=aA[2],qM=[0,j(dPm),0],qN=aD1(qL),x=[0,j(m(k(dPn),qN)),qM]}var +qI=[0,j(dPd),x];return[5,[0,j(dPe),qI]];case +141:var +co=b[4],cp=b[2],qO=b[3],qP=b[1],qQ=IL===co?dPo:w$<=co?dPu:dPv,qR=[0,j(dPp),0],qS=[0,R(m(k(dPq),qQ)),qR],qT=[0,j(dPr),qS],qU=[0,j(dPs),qT],qV=[0,c(qO),qU],qW=[0,j(dPt),qV],qX=[0,c(cp),qW];return[6,cp[2],qX,qP];case +142:var +cq=b[1],qY=b[3],qZ=b[2],q0=[0,j(dPw),0],q1=[0,j(dPx),q0],q2=[0,c(qZ),q1],q3=[0,j(dPy),q2],q4=[0,c(cq),q3],q5=[0,j(dPz),q4];return[6,cq[2],q5,qY];case +143:var +cr=b[2],cs=b[1],q6=b[4],q7=b[3],q8=[0,j(dPA),0],q9=[0,c(cr),q8],q_=[0,j(dPB),q9],q$=[0,j(dPC),q_],ra=[0,c(q7),q$],rb=[0,j(dPD),ra],rc=[0,c(cr),rb],rd=[0,j(dPE),rc],re=[0,c(cs),rd],rf=[0,j(dPF),re];return[6,cs[2],rf,q6];case +144:var +aB=b[4],aC=b[3],ct=b[1],rg=b[6],rh=b[2];if(b[5])var +ri=[0,j(dPG),0],rj=[0,c(aC),ri],cv=[0,j(dPH),rj],cu=dPI;else +var +rx=[0,j(dPQ),0],ry=[0,R(fI(aB)),rx],rz=[0,j(dPR),ry],rA=[0,c(aC),rz],cv=[0,j(dPS),rA],cu=dPT;var +rk=[0,j(dPJ),0],rl=[0,c(rh),rk],rm=[0,j(dPK),rl],rn=[0,R(fI(aB)),rm],ro=[0,j(dPL),rn],rp=[0,R(fI(aB)),ro],rq=[0,j(dPM),rp],rr=[0,j(cu),rq],rs=[0,j(dPN),rr],rt=[0,c(aC),rs],ru=[0,j(dPO),rt],rv=[0,c(ct),ru],rw=V([0,j(dPP),rv],cv);return[6,ct[2],rw,rg];case +145:var +cw=b[4],cx=b[1],rB=b[5],rC=b[3],rD=b[2],rE=[0,j(dPU),0],rF=[0,c(cw),rE],rG=[0,j(dPV),rF],rH=[0,c(rC),rG],rI=[0,j(dPW),rH],rJ=[0,c(rD),rI],rK=[0,j(dPX),rJ],rL=[0,j(dPY),rK],rM=[0,c(cw),rL],rN=[0,j(dPZ),rM],rO=[0,c(cx),rN],rP=[0,j(dP0),rO];return[6,cx[2],rP,rB];default:var +rQ=b[3],rR=b[2],rS=b[1],cy=function(a){var +b=a[2],d=a[1];if(!b)return[0,c(d),0];var +e=[0,c(b[1]),0],f=[0,j(dP1),e],g=[0,c(d),f];return[0,j(dP2),g]},rT=cy(rR),rU=cy(rQ),rV=V(rT,V([0,j(dP3),0],rU)),rW=[0,j(dP4),0],rX=V(rV,[0,j(dP5),rW]),rY=[0,j(dP6),0],rZ=[0,c(rS),rY];return[5,V([0,j(dP7),rZ],rX)]}switch(z){case +147:var +aD=b[1],r0=[0,j(dP8),0],r1=[0,j(dP9),r0],r2=[0,c(aD),r1],r3=[0,j(dP_),r2],r4=[0,c(aD),r3],r5=[0,j(dP$),r4],r6=[0,j(dQa),r5],r7=[0,c(aD),r6];return[5,[0,j(dQb),r7]];case +148:var +cz=b[4],cA=b[1],r8=b[3],r9=b[2];if(cA)var +r_=fI(cA[1]),r$=aY(r9,0,function(a){var +b=[0,j(dQc),0],c=[0,R(a),b];return[0,j(dQd),c]}),sa=[0,j(dQe),0],sb=[0,c(cz),sa],sc=[0,j(dQf),sb],sd=[0,R(r_),sc],cB=V([0,j(dQg),sd],r$);else +var +sf=[0,j(dQi),0],sg=[0,c(cz),sf],cB=[0,j(dQj),sg];var +se=[0,f5(r8),0];return[5,V([0,j(dQh),se],cB)];case +149:var +sh=b[2],si=[0,j(dQk),0],sj=[0,c(sh),si];return[5,[0,j(dQl),sj]];case +150:var +sk=b[3],sl=b[2],sm=[0,j(dQm),0],sn=[0,c(sk),sm],so=[0,j(dQn),sn],sp=[0,c(s(dQo,sl)),so],sq=[0,j(dQp),sp];return[5,[0,j(dQq),sq]];case +151:var +cC=b[2],sr=b[1],cD=Ga(cC);if(cD)var +ss=cD[1],st=[0,j(dQr),0],su=[0,R(ss),st],sv=[0,j(dQs),su],cE=[0,j(dQt),sv];else +var +cE=0;var +sw=[0,j(dQu),0],sx=[0,c(cC),sw],sy=[0,j(dQv),sx],sz=[0,f5(sr),sy];return[5,V([0,j(dQw),sz],cE)];case +152:var +cF=b[2],sA=b[1],cG=Ga(cF);if(cG)var +sB=cG[1],sC=[0,j(dQx),0],sD=[0,R(dQy),sC],sE=[0,j(dQz),sD],sF=[0,j(dQA),sE],sG=[0,R(m(k(dQB),sB)),sF],sH=[0,j(dQC),sG],cH=[0,j(dQD),sH];else +var +cH=0;var +sI=[0,j(dQE),0],sJ=[0,c(cF),sI],sK=[0,j(dQF),sJ],sL=[0,c(sA),sK];return[5,V([0,j(dQG),sL],cH)];case +153:var +ae=b[1];if(b[2]){var +cI=Ga(ae);if(cI)var +sM=cI[1],sN=[0,j(dQH),0],sO=[0,R(m(k(dQI),sM)),sN],sP=[0,j(dQJ),sO],cJ=[0,j(dQK),sP];else +var +cJ=0;var +sQ=[0,j(dQL),0],sR=[0,c(ae),sQ],sS=[0,j(dQM),sR],sT=[0,R(dQN),sS],cK=V([0,j(dQO),sT],cJ)}else{var +cL=Ga(ae);if(cL)var +sU=cL[1],sV=[0,j(dQP),0],sW=[0,R(m(k(dQQ),sU)),sV],sX=[0,j(dQR),sW],cM=[0,j(dQS),sX];else +var +cM=0;var +sY=[0,j(dQT),0],cK=V([0,f5(ae),sY],cM)}return[5,cK];case +154:var +cN=b[4],sZ=b[3],s0=b[2],s1=b[1],s2=[0,j(dQU),0],s3=[0,c(s0),s2],s4=[0,j(dQV),s3],s5=[0,R(cN),s4],s6=[0,j(dQW),s5],s7=[0,c(sZ),s6],s8=[0,j(dQX),s7],s9=[0,R(cN),s8],s_=[0,j(dQY),s9],s$=[0,f5(s1),s_];return[5,[0,j(dQZ),s$]];case +155:var +ta=b[2],tb=b[1],tc=[0,j(dQ0),0],td=[0,c(ta),tc],te=[0,j(dQ1),td],tf=[0,f5(tb),te];return[5,[0,j(dQ2),tf]];case +156:var +cO=b[4],E=b[3],cP=b[2],dD=0,tg=b[1];if(E&&!E[2]){var +tv=E[1],tw=[0,j(dRc),0],tx=[0,c(cP),tw],ty=[0,j(dRd),tx],tz=[0,R(tv),ty],cS=[0,j(dRe),tz];dD=1}if(!dD){var +cQ=fA(E);if(5=fA(aH)&&0=fA(ah)&&0c)switch(c){case +0:var +h=a[3],i=a[2][2];if(a[4])return h?uL(h[1],56):dWs;if(typeof +i==="number")switch(i){case +2:return dWn;case +5:case +8:return dWo;case +10:case +12:return dWq;case +6:case +7:case +14:case +15:return dWp}return dWm;case +1:return uL(a[1],53);case +2:var +j=a[5];return j?uL(j[1],53):dWt;case +3:return 0;case +4:return dWu;case +5:return dWv;case +6:return dWw;case +7:return dWx;case +8:return dWy;case +9:return dWz;case +10:return dWA;case +11:return dWB;case +14:return uL(a[3],53);case +15:return uL(a[3],53);case +16:return uL(a[3],53);case +17:return uL(a[3],53);case +18:return dWD;case +19:return dWE;case +20:return aKI(a[3],13);case +21:return dWF;case +22:return dWG;case +23:return aH_(a[2])?dWH:dWI;case +24:return dWJ;case +25:return dWK;case +26:return dWL;case +29:return dWN;case +30:return dWO;case +31:return dWP;case +32:return dWQ;case +33:return dWR;case +34:return dWS;case +35:return dWT;case +36:return dWU;case +37:return dWV;case +38:return dWW;case +39:return dWX;case +40:return aKI(a[2],13);case +41:return uL(a[1],53);case +42:return dWY;case +43:return a[3]?dWZ:dW0;case +44:return dW1;case +45:return dW2;case +27:case +28:return dWM;default:return dWC}switch(c){case +79:break;case +46:return dW3;case +47:return dW4;case +48:return dW5;case +49:return dW6;case +50:return dW7;case +51:return dW8;case +52:return dW9;case +53:return dW_;case +54:return dW$;case +55:return dXa;case +56:return dXb;case +57:return dXc;case +58:return dXd;case +59:return dXe;case +60:return dXf;case +61:return dXg;case +72:return 0;case +73:return dXi;case +74:return dXj;case +75:return dXk;case +76:var +k=my(a[1]);if(typeof +k!=="number"&&24===k[0])return dXm;return dXl;case +77:var +l=a[1];if(typeof +l==="number")switch(l){case +0:return dXn;case +1:return dXo;case +2:return dXp;case +6:return dXs;case +7:return dXt;case +3:break;default:return dXr}return dXq;case +78:return 0;case +80:return dXu;case +81:return dXv;case +82:return dXw;case +83:return dXx;case +84:return dXy;case +85:return dXz;case +86:return dXA;case +87:return dXB;case +88:return dXC;case +89:return dXD;case +90:return dXE;case +91:return dXF;case +92:return dXG;case +93:return dXH;case +94:return dXI;case +95:return dXJ;case +96:return dXK;case +97:return dXL;default:return dXh}}switch(d){case +0:var +f=abf(a);if(typeof +f!=="number"&&1===f[0]){var +e=f[1];if(typeof +e==="number")switch(e){case +0:var +b=ou;break;case +1:var +b=qp;break;case +2:var +b=jx;break;case +3:var +b=lL;break;case +4:var +b=pQ;break;case +5:var +b=qf;break;case +6:var +b=nq;break;case +7:var +b=43;break;case +8:var +b=k7;break;case +9:var +b=0;break;case +10:var +b=gO;break;case +11:var +b=19;break;case +12:var +b=75;break;case +13:var +b=hy;break;case +14:var +b=pP;break;case +15:var +b=jw;break;case +16:var +b=32;break;case +17:var +b=lQ;break;case +18:var +b=kc;break;default:var +b=lc}else +switch(e[0]){case +0:switch(e[1]){case +4:var +b=l8;break;case +0:case +5:var +b=kr;break;case +1:case +6:var +b=ma;break;case +2:case +7:var +b=ks;break;default:var +b=jI}break;case +1:var +b=mc;break;default:var +b=20}return[0,b]}return 0;case +1:return uL(a[1],53);default:return 0}},dY7=[fy,dY6,ge(0)],Oy=function(a){return dWr(a[2])},jE=h$([0,aJO]),Gb=hZ,dY8=qb,aKJ=QR,dY9=800,dZa=function(a){var +g=0,x=dCQ(0,function(a,b){function +d(a,b){if(0!==a[0])return a;var +d=0,e=a[1];if(typeof +b==="number")if(0===b)var +c=0;else +d=1;else +switch(b[0]){case +2:var +c=aKJ;break;case +3:var +c=0;break;case +4:var +c=0;break;case +5:var +c=qb+b[1]|0;break;case +6:var +c=aqy;break;case +17:var +c=dY9;break;case +19:var +c=aKJ;break;default:d=1}if(d)var +c=dY8;return[0,e+c|0]}var +c=BF(function(a){if(typeof +a!=="number"&&28===a[0])return dY$;return dY_},d,a);return 0===c[0]?c[1]:c[1]},a);switch(a[0]){case +2:var +m=a[5];if(m){var +n=m[1];if(0!==n[0]){var +A=0,o=n[1];if(typeof +o==="number"||!(15===o[0]))A=1;else +g=1}}break;case +18:var +p=a[4];if(0!==p[0]){var +B=0,q=p[1];if(typeof +q==="number"||!(15===q[0]))B=1;else +g=1}break}var +y=g?-200:0,h=0,z=x+y|0;switch(a[0]){case +1:if(a[4])h=1;else +var +f=a[3],e=a[2];break;case +43:var +l=a[1],f=l[2],e=l[1];break;case +107:var +f=a[3],e=a[2];break;default:h=1}var +i=h?0:[0,[0,e,f]];if(i){var +j=i[1],c=j[2],d=j[1],r=0;if(FM(d)&&FM(c))var +b=Gb;else +r=1;if(r){var +s=0;if(FM(d)||FM(c))s=1;else{var +t=0;if(Br(d)&&Br(c))var +b=Gb;else +t=1;if(t){var +u=0;if(Br(d)||Br(c))u=1;else{var +v=0;if(NR(d)&&NR(c))var +b=Gb;else +v=1;if(v){var +w=0;if(NR(d)||NR(c))w=1;else +var +b=Gb;if(w)var +b=1}}if(u)var +b=1}}if(s)var +b=0}var +k=b}else +var +k=Gb;return z+k|0},qN=function(a){var +b=a[2],c=a[1];if(aH$(b)&&!aH$(c))return[0,b,c];return a},abg=function(a,b,c){return[0,dCR(c),c,b,a]},aKK=function(a){if(typeof +a==="number"){if(1===a)return 1}else +switch(a[0]){case +2:return[2,a[2],a[1]];case +3:return[3,a[2],a[1]];case +5:return[5,a[1],a[2],a[4],a[3]];case +6:return[6,a[2],a[1]];case +7:return[7,a[2],a[1]];case +8:return[8,a[2],a[1]];case +13:return[13,a[2],a[1]];case +15:return[15,a[1],a[3],a[2]];case +17:return[17,a[1],a[3],a[2],a[5],a[4]];case +19:return[19,a[1],a[2],a[4],a[3],a[5]]}return a},abh=function(o,b,c,l){var +ac=c?c[1]:0,C=l[3],T=l[2],ad=l[1],aG=l[4],aH=abf(T),F=K(aG,function(a){var +b=gc(my(a)),d=0,e=0;if(2e)switch(e){case +0:return m(d,c[1]);case +1:return m(d,c[1]);case +2:return m(d,c[1]);case +3:return m(d,c[1]);case +4:return m(d,c[1]);case +5:return m(d,c[1]);case +6:return m(d,c[1]);case +7:return m(d,c[1]);case +8:return m(d,c[1]);case +9:return m(d,c[1]);case +10:return m(d,c[1]);case +11:return m(b,c[1]);case +12:var +l=c[2];m(d,c[1]);return m(b,l);case +13:var +n=c[4],o=c[3],p=c[2];m(d,c[1]);m(b,p);m(b,o);return m(OD(b),n);case +14:var +q=c[4],r=c[3],s=c[2];m(d,c[1]);m(b,s);m(b,r);return m(OD(b),q);case +15:var +t=c[2];m(d,c[1]);return m(OD(function(a){if(0===a[0]){var +c=a[3];m(d,a[1]);m(b,c);return 0}var +e=a[3];m(d,a[1]);return m(b,e)}),t);case +16:var +u=c[2];m(d,c[1]);return m(b,u);case +17:var +v=c[2];m(d,c[1]);return m(b,v);case +18:m(d,c[1]);return 0;case +19:m(d,c[1]);return 0;case +20:m(d,c[1]);return 0;case +21:m(d,c[1]);return 0;case +22:var +f=c[4],w=c[3];m(d,c[1]);m(b,w);return f?fo(b,f[1]):0;case +23:m(d,c[1]);return 0;case +24:m(d,c[1]);return 0;case +25:m(d,c[1]);return 0;case +26:return m(d,c[1]);case +27:m(d,c[1]);return 0;case +28:return m(b,c[1]);case +29:var +x=c[2];m(d,c[1]);return m(b,x);case +30:var +y=c[2];m(d,c[1]);return m(b,y);case +31:var +z=c[2];m(d,c[1]);return m(b,z);case +32:var +A=c[2];m(d,c[1]);m(b,A);return 0;case +33:var +B=c[3],C=c[2];m(d,c[1]);m(b,C);return m(b,B);case +34:var +D=c[3],E=c[2];m(d,c[1]);m(b,E);return m(b,D);case +35:var +F=c[3],G=c[2];m(d,c[1]);m(b,G);return m(d,F);case +36:var +H=c[2];m(d,c[1]);return m(b,H);case +37:var +I=c[3],J=c[2];m(d,c[1]);m(b,J);return m(b,I);case +38:var +K=c[2];m(d,c[1]);return m(b,K);case +39:var +L=c[2];m(d,c[1]);return m(b,L);default:var +M=c[2];m(d,c[1]);return m(b,M)}switch(e){case +41:var +N=c[2];m(d,c[1]);return m(b,N);case +42:var +O=c[2];m(d,c[1]);m(b,O);return 0;case +43:var +P=c[2];m(d,c[1]);return m(b,P);case +44:var +Q=c[2];m(d,c[1]);return m(b,Q);case +45:var +R=c[3],S=c[2];m(d,c[1]);m(b,S);return m(b,R);case +46:m(d,c[1]);return 0;case +47:var +g=c[2],T=c[7],U=c[6],V=c[5],W=c[4],X=c[3];m(d,c[1]);if(g)OG(d,b,g[1]);wl(d,b,X);m(b,W);m(b,V);m(b,U);return m(b,T);case +48:var +Y=c[3],Z=c[2];m(d,c[1]);m(b,Z);return fo(b,Y);case +49:var +_=c[3],$=c[2];m(d,c[1]);m(b,$);return m(b,_);case +50:var +aa=c[3],ab=c[2];m(d,c[1]);m(b,ab);return m(b,aa);case +51:var +ac=c[3],ad=c[2];m(d,c[1]);m(b,ad);return m(b,ac);case +52:var +ae=c[2];m(d,c[1]);return m(b,ae);case +53:var +af=c[3],ag=c[2];m(d,c[1]);m(b,ag);return m(b,af);case +54:m(d,c[1]);return 0;case +55:var +ah=c[2];m(d,c[1]);return m(b,ah);case +56:return m(d,c[1]);case +57:return m(d,c[1]);case +58:return m(d,c[1]);case +59:return m(d,c[1]);case +60:return m(d,c[1]);case +61:return m(d,c[1]);case +62:return m(d,c[1]);case +63:return m(d,c[1]);case +64:var +h=c[4],i=c[3],ai=c[2];m(d,c[1]);m(b,ai);if(i)m(b,i[1]);return h?m(b,h[1]):0;case +65:var +aj=c[3],ak=c[2];m(d,c[1]);m(b,ak);return m(b,aj);case +66:return m(d,c[1]);case +67:return m(d,c[1]);case +68:return m(d,c[1]);case +69:var +al=c[2];m(d,c[1]);return m(b,al);case +70:var +am=c[2];m(d,c[1]);return m(b,am);case +71:var +an=c[2];m(d,c[1]);return m(b,an);case +72:var +ao=c[2];m(d,c[1]);return m(b,ao);case +73:return m(d,c[1]);case +74:return m(d,c[1]);case +75:return m(d,c[1]);case +76:var +ap=c[2];m(d,c[1]);return uN(d,b,ap);case +77:var +aq=c[2];m(d,c[1]);return abs(d,b,aq);case +78:var +ar=c[4],as=c[3],at=c[2];m(d,c[1]);m(b,at);m(b,as);OG(d,b,ar);return 0;case +79:var +a=c[4],j=c[2],au=c[3];m(d,c[1]);if(typeof +j!=="number")Gj(b,j[1]);m(pA(function(a){return aK5(d,b,a)}),au);if(typeof +a==="number")return 0;if(0!==a[0])return p6(b,a[1]);var +k=a[2];m(d,a[1]);return m(b,k);case +80:var +av=c[3];m(d,c[1]);return p6(function(a){if(0===a[0])return m(b,a[1]);var +c=a[1],e=a[2];if(c)Gj(b,c[1]);return m(pA(function(a){return aK5(d,b,a)}),e)},av);default:var +aw=c[2];m(d,c[1]);return aLa(d,b,aw)}},aLe=function(d,b,c){var +g=c[0];if(41>g)switch(g){case +0:return[0,m(d,c[1])];case +1:return[1,m(d,c[1])];case +2:return[2,m(d,c[1])];case +3:return[3,m(d,c[1])];case +4:return[4,m(d,c[1])];case +5:return[5,m(d,c[1])];case +6:return[6,m(d,c[1])];case +7:return[7,m(d,c[1])];case +8:return[8,m(d,c[1])];case +9:return[9,m(d,c[1])];case +10:return[10,m(d,c[1])];case +11:return[11,m(b,c[1])];case +12:var +o=c[1],p=m(b,c[2]);return[12,m(d,o),p];case +13:var +q=c[3],r=c[2],s=c[1],bU=OF(b,c[4]),t=m(b,q),u=m(b,r);return[13,m(d,s),u,t,bU];case +14:var +v=c[3],w=c[2],x=c[1],bV=OF(b,c[4]),y=m(b,v),z=m(b,w);return[14,m(d,x),z,y,bV];case +15:var +A=c[2],B=c[1],bW=OF(function(a){if(0===a[0]){var +c=a[5],e=a[4],f=a[2],g=a[1],h=m(b,a[3]);return[0,m(d,g),f,h,e,c]}var +i=a[2],j=a[1],k=m(b,a[3]);return[1,m(d,j),i,k]},A);return[15,m(d,B),bW];case +16:var +C=c[1],D=m(b,c[2]);return[16,m(d,C),D];case +17:var +E=c[1],F=m(b,c[2]);return[17,m(d,E),F];case +18:var +G=c[2];return[18,m(d,c[1]),G];case +19:var +H=c[3],I=c[2];return[19,m(d,c[1]),I,H];case +20:var +J=c[3],K=c[2];return[20,m(d,c[1]),K,J];case +21:var +L=c[2];return[21,m(d,c[1]),L];case +22:var +h=c[4],M=c[3],N=c[2],O=c[1],P=h?[0,fx(b,h[1])]:0,Q=m(b,M);return[22,m(d,O),N,Q,P];case +23:var +R=c[2];return[23,m(d,c[1]),R];case +24:var +S=c[3],T=c[2];return[24,m(d,c[1]),T,S];case +25:var +U=c[2];return[25,m(d,c[1]),U];case +26:return[26,m(d,c[1])];case +27:var +V=c[2];return[27,m(d,c[1]),V];case +28:return[28,m(b,c[1])];case +29:var +W=c[1],X=m(b,c[2]);return[29,m(d,W),X];case +30:var +Y=c[1],Z=m(b,c[2]);return[30,m(d,Y),Z];case +31:var +_=c[1],$=m(b,c[2]);return[31,m(d,_),$];case +32:var +aa=c[3],ab=c[1],ac=m(b,c[2]);return[32,m(d,ab),ac,aa];case +33:var +ad=c[2],ae=c[1],af=m(b,c[3]),ag=m(b,ad);return[33,m(d,ae),ag,af];case +34:var +ah=c[2],ai=c[1],aj=m(b,c[3]),ak=m(b,ah);return[34,m(d,ai),ak,aj];case +35:var +al=c[2],am=c[1],an=m(d,c[3]),ao=m(b,al);return[35,m(d,am),ao,an];case +36:var +ap=c[1],aq=m(b,c[2]);return[36,m(d,ap),aq];case +37:var +ar=c[2],as=c[1],at=m(b,c[3]),au=m(b,ar);return[37,m(d,as),au,at];case +38:var +av=c[1],aw=m(b,c[2]);return[38,m(d,av),aw];case +39:var +ax=c[1],ay=m(b,c[2]);return[39,m(d,ax),ay];default:var +az=c[1],aA=m(b,c[2]);return[40,m(d,az),aA]}switch(g){case +41:var +aB=c[1],aC=m(b,c[2]);return[41,m(d,aB),aC];case +42:var +aD=c[3],aE=c[1],aF=m(b,c[2]);return[42,m(d,aE),aF,aD];case +43:var +aG=c[1],aH=m(b,c[2]);return[43,m(d,aG),aH];case +44:var +aI=c[1],aJ=m(b,c[2]);return[44,m(d,aI),aJ];case +45:var +aK=c[2],aL=c[1],aM=m(b,c[3]),aN=m(b,aK);return[45,m(d,aL),aN,aM];case +46:var +aO=c[2];return[46,m(d,c[1]),aO];case +47:var +i=c[2],aP=c[6],aQ=c[5],aR=c[4],aS=c[3],aT=c[1],aU=m(b,c[7]),aV=m(b,aP),aW=m(b,aQ),aX=m(b,aR),bX=wm(d,b,aS),aY=i?[0,OH(d,b,i[1])]:0;return[47,m(d,aT),aY,bX,aX,aW,aV,aU];case +48:var +aZ=c[2],a0=c[1],bY=fx(b,c[3]),a1=m(b,aZ);return[48,m(d,a0),a1,bY];case +49:var +a2=c[2],a3=c[1],a4=m(b,c[3]),a5=m(b,a2);return[49,m(d,a3),a5,a4];case +50:var +a6=c[2],a7=c[1],a8=m(b,c[3]),a9=m(b,a6);return[50,m(d,a7),a9,a8];case +51:var +a_=c[2],a$=c[1],ba=m(b,c[3]),bb=m(b,a_);return[51,m(d,a$),bb,ba];case +52:var +bc=c[1],bd=m(b,c[2]);return[52,m(d,bc),bd];case +53:var +be=c[2],bf=c[1],bg=m(b,c[3]),bh=m(b,be);return[53,m(d,bf),bh,bg];case +54:var +bi=c[2];return[54,m(d,c[1]),bi];case +55:var +bj=c[1],bk=m(b,c[2]);return[55,m(d,bj),bk];case +56:return[56,m(d,c[1])];case +57:return[57,m(d,c[1])];case +58:return[58,m(d,c[1])];case +59:return[59,m(d,c[1])];case +60:return[60,m(d,c[1])];case +61:return[61,m(d,c[1])];case +62:return[62,m(d,c[1])];case +63:return[63,m(d,c[1])];case +64:var +j=c[4],k=c[3],bl=c[2],bm=c[1],bn=j?[0,m(b,j[1])]:0,bo=k?[0,m(b,k[1])]:0,bp=m(b,bl);return[64,m(d,bm),bp,bo,bn];case +65:var +bq=c[2],br=c[1],bs=m(b,c[3]),bt=m(b,bq);return[65,m(d,br),bt,bs];case +66:return[66,m(d,c[1])];case +67:return[67,m(d,c[1])];case +68:return[68,m(d,c[1])];case +69:var +bu=c[1],bv=m(b,c[2]);return[69,m(d,bu),bv];case +70:var +bw=c[1],bx=m(b,c[2]);return[70,m(d,bw),bx];case +71:var +by=c[1],bz=m(b,c[2]);return[71,m(d,by),bz];case +72:var +bA=c[1],bB=m(b,c[2]);return[72,m(d,bA),bB];case +73:return[73,m(d,c[1])];case +74:return[74,m(d,c[1])];case +75:return[75,m(d,c[1])];case +76:var +bC=c[1],bZ=uO(d,b,c[2]);return[76,m(d,bC),bZ];case +77:var +bD=c[1],b0=abt(d,b,c[2]);return[77,m(d,bD),b0];case +78:var +bE=c[7],bF=c[6],bG=c[5],bH=c[3],bI=c[2],bJ=c[1],b1=OH(d,b,c[4]),bK=m(b,bH),bL=m(b,bI);return[78,m(d,bJ),bL,bK,b1,bG,bF,bE];case +79:var +a=c[4],e=c[2],bM=c[3],bN=c[1];if(typeof +a==="number")var +f=0;else if(0===a[0])var +l=a[1],n=m(b,a[2]),f=[0,m(d,l),n];else +var +f=[1,iN(b,a[1])];var +bO=m(pz(function(a){return aK6(d,b,a)}),bM),bP=typeof +e==="number"?e?1:0:[0,Gk(b,e[1])];return[79,m(d,bN),bP,bO,f];case +80:var +bQ=c[3],bR=c[2],bS=c[1],b2=iN(function(a){if(0===a[0])return[0,m(b,a[1])];var +c=a[1],e=a[2],f=m(pz(function(a){return aK6(d,b,a)}),e),g=c?[0,Gk(b,c[1])]:0;return[1,g,f]},bQ);return[80,m(d,bS),bR,b2];default:var +bT=c[1],b3=aLb(d,b,c[2]);return[81,m(d,bT),b3]}},abH=function +e(a,b,c,d){return e.fun(a,b,c,d)},ejX=function +d(a,b,c){return d.fun(a,b,c)};h(abH,function(b,e,c,d){var +a=d[0];if(41<=a)switch(a){case +41:var +aU=d[2],aV=d[1];m(f(c),enA);m(m(b,c),aV);m(f(c),enB);m(m(e,c),aU);return m(f(c),enC);case +42:var +aW=d[3],aX=d[2],aY=d[1];m(f(c),enD);m(m(b,c),aY);m(f(c),enE);m(m(e,c),aX);m(f(c),enF);m(m(fu[13][1],c),aW);return m(f(c),enG);case +43:var +aZ=d[2],a0=d[1];m(f(c),enH);m(m(b,c),a0);m(f(c),enI);m(m(e,c),aZ);return m(f(c),enJ);case +44:var +a1=d[2],a2=d[1];m(f(c),enK);m(m(b,c),a2);m(f(c),enL);m(m(e,c),a1);return m(f(c),enM);case +45:var +a3=d[3],a4=d[2],a5=d[1];m(f(c),enN);m(m(b,c),a5);m(f(c),enO);m(m(e,c),a4);m(f(c),enP);m(m(e,c),a3);return m(f(c),enQ);case +46:var +a6=d[2],a7=d[1];m(f(c),enR);m(m(b,c),a7);m(f(c),enS);m(m(f(c),enT),a6);return m(f(c),enU);case +47:var +j=d[2],a8=d[7],a9=d[6],a_=d[5],a$=d[4],ba=d[3],bb=d[1];m(f(c),enV);n(f(c),enX,enW);m(m(b,c),bb);m(f(c),enY);m(f(c),enZ);n(f(c),en1,en0);if(j){var +bc=j[1];i(c,en2);var +bd=function(a){return m(e,a)};m(l(BQ,function(a){return m(b,a)},bd,c),bc);i(c,en3)}else +i(c,en4);m(f(c),en5);m(f(c),en6);n(f(c),en8,en7);var +be=function(a){return m(e,a)};m(l(tt,function(a){return m(b,a)},be,c),ba);m(f(c),en9);m(f(c),en_);n(f(c),eoa,en$);m(m(e,c),a$);m(f(c),eob);m(f(c),eoc);n(f(c),eoe,eod);m(m(e,c),a_);m(f(c),eof);m(f(c),eog);n(f(c),eoi,eoh);m(m(e,c),a9);m(f(c),eoj);m(f(c),eok);n(f(c),eom,eol);m(m(e,c),a8);m(f(c),eon);return m(f(c),eoo);case +48:var +bf=d[3],bg=d[2],bh=d[1];m(f(c),eop);n(f(c),eor,eoq);m(m(b,c),bh);m(f(c),eos);m(f(c),eot);n(f(c),eov,eou);m(m(e,c),bg);m(f(c),eow);m(f(c),eox);n(f(c),eoz,eoy);m(f(c),eoA);var +bi=0;M(function(a,b){if(a)m(f(c),eoB);m(m(e,c),b);return 1},bi,bf);m(f(c),eoC);m(f(c),eoD);return m(f(c),eoE);case +49:var +bj=d[3],bk=d[2],bl=d[1];m(f(c),eoF);n(f(c),eoH,eoG);m(m(b,c),bl);m(f(c),eoI);m(f(c),eoJ);n(f(c),eoL,eoK);m(m(e,c),bk);m(f(c),eoM);m(f(c),eoN);n(f(c),eoP,eoO);m(m(e,c),bj);m(f(c),eoQ);return m(f(c),eoR);case +50:var +bm=d[3],bn=d[2],bo=d[1];m(f(c),eoS);n(f(c),eoU,eoT);m(m(b,c),bo);m(f(c),eoV);m(f(c),eoW);n(f(c),eoY,eoX);m(m(e,c),bn);m(f(c),eoZ);m(f(c),eo0);n(f(c),eo2,eo1);m(m(e,c),bm);m(f(c),eo3);return m(f(c),eo4);case +51:var +bp=d[3],bq=d[2],br=d[1];m(f(c),eo5);n(f(c),eo7,eo6);m(m(b,c),br);m(f(c),eo8);m(f(c),eo9);n(f(c),eo$,eo_);m(m(e,c),bq);m(f(c),epa);m(f(c),epb);n(f(c),epd,epc);m(m(e,c),bp);m(f(c),epe);return m(f(c),epf);case +52:var +bs=d[2],bt=d[1];m(f(c),epg);n(f(c),epi,eph);m(m(b,c),bt);m(f(c),epj);m(f(c),epk);n(f(c),epm,epl);m(m(e,c),bs);m(f(c),epn);return m(f(c),epo);case +53:var +bu=d[3],bv=d[2],bw=d[1];m(f(c),epp);n(f(c),epr,epq);m(m(b,c),bw);m(f(c),eps);m(f(c),ept);n(f(c),epv,epu);m(m(e,c),bv);m(f(c),epw);m(f(c),epx);n(f(c),epz,epy);m(m(e,c),bu);m(f(c),epA);return m(f(c),epB);case +54:var +bx=d[2],by=d[1];m(f(c),epC);m(m(b,c),by);m(f(c),epD);m(m(f(c),epE),bx);return m(f(c),epF);case +55:var +bz=d[2],bA=d[1];m(f(c),epG);m(m(b,c),bA);m(f(c),epH);m(m(e,c),bz);return m(f(c),epI);case +56:var +bB=d[1];m(f(c),epJ);m(m(b,c),bB);return m(f(c),epK);case +57:var +bC=d[1];m(f(c),epL);m(m(b,c),bC);return m(f(c),epM);case +58:var +bD=d[1];m(f(c),epN);m(m(b,c),bD);return m(f(c),epO);case +59:var +bE=d[1];m(f(c),epP);m(m(b,c),bE);return m(f(c),epQ);case +60:var +bF=d[1];m(f(c),epR);m(m(b,c),bF);return m(f(c),epS);case +61:var +bG=d[1];m(f(c),epT);m(m(b,c),bG);return m(f(c),epU);case +62:var +bH=d[1];m(f(c),epV);m(m(b,c),bH);return m(f(c),epW);case +63:var +bI=d[1];m(f(c),epX);m(m(b,c),bI);return m(f(c),epY);case +64:var +k=d[4],o=d[3],bJ=d[2],bK=d[1];m(f(c),epZ);n(f(c),ep1,ep0);m(m(b,c),bK);m(f(c),ep2);m(f(c),ep3);n(f(c),ep5,ep4);m(m(e,c),bJ);m(f(c),ep6);m(f(c),ep7);n(f(c),ep9,ep8);if(o){var +bL=o[1];i(c,ep_);m(m(e,c),bL);i(c,ep$)}else +i(c,eqa);m(f(c),eqb);m(f(c),eqc);n(f(c),eqe,eqd);if(k){var +bM=k[1];i(c,eqf);m(m(e,c),bM);i(c,eqg)}else +i(c,eqh);m(f(c),eqi);return m(f(c),eqj);case +65:var +bN=d[3],bO=d[2],bP=d[1];m(f(c),eqk);n(f(c),eqm,eql);m(m(b,c),bP);m(f(c),eqn);m(f(c),eqo);n(f(c),eqq,eqp);m(m(e,c),bO);m(f(c),eqr);m(f(c),eqs);n(f(c),equ,eqt);m(m(e,c),bN);m(f(c),eqv);return m(f(c),eqw);case +66:var +bQ=d[1];m(f(c),eqx);m(m(b,c),bQ);return m(f(c),eqy);case +67:var +bR=d[1];m(f(c),eqz);m(m(b,c),bR);return m(f(c),eqA);case +68:var +bS=d[1];m(f(c),eqB);m(m(b,c),bS);return m(f(c),eqC);case +69:var +bT=d[2],bU=d[1];m(f(c),eqD);m(m(b,c),bU);m(f(c),eqE);m(m(e,c),bT);return m(f(c),eqF);case +70:var +bV=d[2],bW=d[1];m(f(c),eqG);m(m(b,c),bW);m(f(c),eqH);m(m(e,c),bV);return m(f(c),eqI);case +71:var +bX=d[2],bY=d[1];m(f(c),eqJ);m(m(b,c),bY);m(f(c),eqK);m(m(e,c),bX);return m(f(c),eqL);case +72:var +bZ=d[2],b0=d[1];m(f(c),eqM);m(m(b,c),b0);m(f(c),eqN);m(m(e,c),bZ);return m(f(c),eqO);case +73:var +b1=d[1];m(f(c),eqP);m(m(b,c),b1);return m(f(c),eqQ);case +74:var +b2=d[1];m(f(c),eqR);m(m(b,c),b2);return m(f(c),eqS);case +75:var +b3=d[1];m(f(c),eqT);m(m(b,c),b3);return m(f(c),eqU);case +76:var +b4=d[2],b5=d[1];m(f(c),eqV);m(m(b,c),b5);m(f(c),eqW);var +b6=function(a){return m(e,a)};m(l(tu,function(a){return m(b,a)},b6,c),b4);return m(f(c),eqX);case +77:var +b7=d[2],b8=d[1];m(f(c),eqY);m(m(b,c),b8);m(f(c),eqZ);var +b9=function(a){return m(e,a)};m(l(OI,function(a){return m(b,a)},b9,c),b7);return m(f(c),eq0);case +78:var +b_=d[7],b$=d[6],ca=d[5],cb=d[4],cc=d[3],cd=d[2],ce=d[1];m(f(c),eq1);n(f(c),eq3,eq2);m(m(b,c),ce);m(f(c),eq4);m(f(c),eq5);n(f(c),eq7,eq6);m(m(e,c),cd);m(f(c),eq8);m(f(c),eq9);n(f(c),eq$,eq_);m(m(e,c),cc);m(f(c),era);m(f(c),erb);n(f(c),erd,erc);var +cf=function(a){return m(e,a)};m(l(BQ,function(a){return m(b,a)},cf,c),cb);m(f(c),ere);m(f(c),erf);n(f(c),erh,erg);yi(c,ca);m(f(c),eri);m(f(c),erj);n(f(c),erl,erk);m(m(fu[8][4][1],c),b$);m(f(c),erm);m(f(c),ern);n(f(c),erp,ero);m(m(f(c),erq),b_);m(f(c),err);return m(f(c),ers);case +79:var +cg=d[4],ch=d[3],ci=d[2],cj=d[1];m(f(c),ert);n(f(c),erv,eru);m(m(b,c),cj);m(f(c),erw);m(f(c),erx);n(f(c),erz,ery);m(n(abG,function(a){return m(e,a)},c),ci);m(f(c),erA);m(f(c),erB);n(f(c),erD,erC);m(n(l0,function(a){function +c(a){return m(e,a)}return l(OJ,function(a){return m(b,a)},c,a)},c),ch);m(f(c),erE);m(f(c),erF);n(f(c),erH,erG);var +ck=function(a){return m(e,a)};m(l(abv,function(a){return m(b,a)},ck,c),cg);m(f(c),erI);return m(f(c),erJ);case +80:var +cl=d[3],cm=d[2],cn=d[1];m(f(c),erK);n(f(c),erM,erL);m(m(b,c),cn);m(f(c),erN);m(f(c),erO);n(f(c),erQ,erP);m(m(f(c),erR),cm);m(f(c),erS);m(f(c),erT);n(f(c),erV,erU);Bl(function(a){function +c(a){return m(e,a)}return l(abz,function(a){return m(b,a)},c,a)},c,cl);m(f(c),erW);return m(f(c),erX);default:var +co=d[2],cp=d[1];m(f(c),erY);m(m(b,c),cp);m(f(c),erZ);var +cq=function(a){return m(e,a)};m(l(ON,function(a){return m(b,a)},cq,c),co);return m(f(c),er0)}switch(a){case +0:var +p=d[1];m(f(c),ejY);m(m(b,c),p);return m(f(c),ejZ);case +1:var +q=d[1];m(f(c),ej0);m(m(b,c),q);return m(f(c),ej1);case +2:var +r=d[1];m(f(c),ej2);m(m(b,c),r);return m(f(c),ej3);case +3:var +s=d[1];m(f(c),ej4);m(m(b,c),s);return m(f(c),ej5);case +4:var +t=d[1];m(f(c),ej6);m(m(b,c),t);return m(f(c),ej7);case +5:var +u=d[1];m(f(c),ej8);m(m(b,c),u);return m(f(c),ej9);case +6:var +v=d[1];m(f(c),ej_);m(m(b,c),v);return m(f(c),ej$);case +7:var +w=d[1];m(f(c),eka);m(m(b,c),w);return m(f(c),ekb);case +8:var +x=d[1];m(f(c),ekc);m(m(b,c),x);return m(f(c),ekd);case +9:var +y=d[1];m(f(c),eke);m(m(b,c),y);return m(f(c),ekf);case +10:var +z=d[1];m(f(c),ekg);m(m(b,c),z);return m(f(c),ekh);case +11:var +A=d[1];m(f(c),eki);m(m(e,c),A);return m(f(c),ekj);case +12:var +B=d[2],C=d[1];m(f(c),ekk);m(m(b,c),C);m(f(c),ekl);m(m(e,c),B);return m(f(c),ekm);case +13:var +D=d[4],E=d[3],F=d[2],G=d[1];m(f(c),ekn);n(f(c),ekp,eko);m(m(b,c),G);m(f(c),ekq);m(f(c),ekr);n(f(c),ekt,eks);m(m(e,c),F);m(f(c),eku);m(f(c),ekv);n(f(c),ekx,ekw);m(m(e,c),E);m(f(c),eky);m(f(c),ekz);n(f(c),ekB,ekA);OE(function(a){return m(e,a)},c,D);m(f(c),ekC);return m(f(c),ekD);case +14:var +H=d[4],I=d[3],J=d[2],K=d[1];m(f(c),ekE);n(f(c),ekG,ekF);m(m(b,c),K);m(f(c),ekH);m(f(c),ekI);n(f(c),ekK,ekJ);m(m(e,c),J);m(f(c),ekL);m(f(c),ekM);n(f(c),ekO,ekN);m(m(e,c),I);m(f(c),ekP);m(f(c),ekQ);n(f(c),ekS,ekR);OE(function(a){return m(e,a)},c,H);m(f(c),ekT);return m(f(c),ekU);case +15:var +L=d[2],N=d[1];m(f(c),ekV);n(f(c),ekX,ekW);m(m(b,c),N);m(f(c),ekY);m(f(c),ekZ);n(f(c),ek1,ek0);OE(function(a){function +c(a){return m(e,a)}return l(abu,function(a){return m(b,a)},c,a)},c,L);m(f(c),ek2);return m(f(c),ek3);case +16:var +O=d[2],P=d[1];m(f(c),ek4);m(m(b,c),P);m(f(c),ek5);m(m(e,c),O);return m(f(c),ek6);case +17:var +Q=d[2],R=d[1];m(f(c),ek7);m(m(b,c),R);m(f(c),ek8);m(m(e,c),Q);return m(f(c),ek9);case +18:var +S=d[2],T=d[1];m(f(c),ek_);m(m(b,c),T);m(f(c),ek$);m(m(f(c),ela),S);return m(f(c),elb);case +19:var +U=d[3],V=d[2],W=d[1];m(f(c),elc);m(m(b,c),W);m(f(c),eld);m(m(f(c),ele),V);m(f(c),elf);m(m(f(c),elg),U);return m(f(c),elh);case +20:var +g=d[2],X=d[3],Y=d[1];m(f(c),eli);m(m(b,c),Y);m(f(c),elj);if(g){var +Z=g[1];i(c,elk);m(m(f(c),ell),Z);i(c,elm)}else +i(c,eln);m(f(c),elo);m(m(f(c),elp),X);return m(f(c),elq);case +21:var +_=d[2],$=d[1];m(f(c),elr);m(m(b,c),$);m(f(c),els);m(m(f(c),elt),_);return m(f(c),elu);case +22:var +h=d[4],aa=d[3],ab=d[2],ac=d[1];m(f(c),elv);n(f(c),elx,elw);m(m(b,c),ac);m(f(c),ely);m(f(c),elz);n(f(c),elB,elA);m(f(c),elC);var +ad=0;M(function(a,b){if(a)m(f(c),elD);m(m(f(c),elE),b);return 1},ad,ab);m(f(c),elF);m(f(c),elG);m(f(c),elH);n(f(c),elJ,elI);m(m(e,c),aa);m(f(c),elK);m(f(c),elL);n(f(c),elN,elM);if(h){var +ae=h[1];i(c,elO);m(f(c),elP);var +af=0;M(function(a,b){if(a)m(f(c),elQ);m(m(e,c),b);return 1},af,ae);m(f(c),elR);i(c,elS)}else +i(c,elT);m(f(c),elU);return m(f(c),elV);case +23:var +ag=d[2],ah=d[1];m(f(c),elW);n(f(c),elY,elX);m(m(b,c),ah);m(f(c),elZ);m(f(c),el0);n(f(c),el2,el1);m(m(f(c),el3),ag);m(f(c),el4);return m(f(c),el5);case +24:var +ai=d[3],aj=d[2],ak=d[1];m(f(c),el6);m(m(b,c),ak);m(f(c),el7);m(m(f(c),el8),aj);m(f(c),el9);m(m(f(c),el_),ai);return m(f(c),el$);case +25:var +al=d[2],am=d[1];m(f(c),ema);m(m(b,c),am);m(f(c),emb);m(m(f(c),emc),al);return m(f(c),emd);case +26:var +an=d[1];m(f(c),eme);m(m(b,c),an);return m(f(c),emf);case +27:var +ao=d[2],ap=d[1];m(f(c),emg);m(m(b,c),ap);m(f(c),emh);m(m(f(c),emi),ao);return m(f(c),emj);case +28:var +aq=d[1];m(f(c),emk);m(m(e,c),aq);return m(f(c),eml);case +29:var +ar=d[2],as=d[1];m(f(c),emm);m(m(b,c),as);m(f(c),emn);m(m(e,c),ar);return m(f(c),emo);case +30:var +at=d[2],au=d[1];m(f(c),emp);m(m(b,c),au);m(f(c),emq);m(m(e,c),at);return m(f(c),emr);case +31:var +av=d[2],aw=d[1];m(f(c),ems);m(m(b,c),aw);m(f(c),emt);m(m(e,c),av);return m(f(c),emu);case +32:var +ax=d[3],ay=d[2],az=d[1];m(f(c),emv);n(f(c),emx,emw);m(m(b,c),az);m(f(c),emy);m(f(c),emz);n(f(c),emB,emA);m(m(e,c),ay);m(f(c),emC);m(f(c),emD);n(f(c),emF,emE);m(m(f(c),emG),ax);m(f(c),emH);return m(f(c),emI);case +33:var +aA=d[3],aB=d[2],aC=d[1];m(f(c),emJ);n(f(c),emL,emK);m(m(b,c),aC);m(f(c),emM);m(f(c),emN);n(f(c),emP,emO);m(m(e,c),aB);m(f(c),emQ);m(f(c),emR);n(f(c),emT,emS);m(m(e,c),aA);m(f(c),emU);return m(f(c),emV);case +34:var +aD=d[3],aE=d[2],aF=d[1];m(f(c),emW);n(f(c),emY,emX);m(m(b,c),aF);m(f(c),emZ);m(f(c),em0);n(f(c),em2,em1);m(m(e,c),aE);m(f(c),em3);m(f(c),em4);n(f(c),em6,em5);m(m(e,c),aD);m(f(c),em7);return m(f(c),em8);case +35:var +aG=d[3],aH=d[2],aI=d[1];m(f(c),em9);n(f(c),em$,em_);m(m(b,c),aI);m(f(c),ena);m(f(c),enb);n(f(c),end,enc);m(m(e,c),aH);m(f(c),ene);m(f(c),enf);n(f(c),enh,eng);m(m(b,c),aG);m(f(c),eni);return m(f(c),enj);case +36:var +aJ=d[2],aK=d[1];m(f(c),enk);m(m(b,c),aK);m(f(c),enl);m(m(e,c),aJ);return m(f(c),enm);case +37:var +aL=d[3],aM=d[2],aN=d[1];m(f(c),enn);m(m(b,c),aN);m(f(c),eno);m(m(e,c),aM);m(f(c),enp);m(m(e,c),aL);return m(f(c),enq);case +38:var +aO=d[2],aP=d[1];m(f(c),enr);m(m(b,c),aP);m(f(c),ens);m(m(e,c),aO);return m(f(c),ent);case +39:var +aQ=d[2],aR=d[1];m(f(c),enu);m(m(b,c),aR);m(f(c),env);m(m(e,c),aQ);return m(f(c),enw);default:var +aS=d[2],aT=d[1];m(f(c),enx);m(m(b,c),aT);m(f(c),eny);m(m(e,c),aS);return m(f(c),enz)}});h(ejX,function(a,b,c){var +d=m(m(abH,a),b);return n(z(er1),d,c)});var +abI=function(a,b){if(typeof +b==="number")return 0;switch(b[0]){case +0:var +c=b[1];return[0,c,m(a,b[2])];case +1:return[1,b[1]];case +2:return[2,m(a,b[1])];default:return[3,b[1]]}},abJ=function +d(a,b,c){return d.fun(a,b,c)},er2=function +c(a,b){return c.fun(a,b)};h(abJ,function(a,b,c){if(typeof +c==="number")return i(b,er3);switch(c[0]){case +0:var +d=c[2],e=c[1];m(f(b),er4);m(m(fW[10][1],b),e);m(f(b),er5);m(m(a,b),d);return m(f(b),er6);case +1:var +g=c[1];m(f(b),er7);m(m(f(b),er8),g);return m(f(b),er9);case +2:var +h=c[1];m(f(b),er_);m(m(a,b),h);return m(f(b),er$);default:var +j=c[1];m(f(b),esa);m(m(fW[9][1],b),j);return m(f(b),esb)}});h(er2,function(a,b){var +c=m(abJ,a);return n(z(esc),c,b)});var +abK=function +d(a,b,c){return d.fun(a,b,c)},esd=function +c(a,b){return c.fun(a,b)};h(abK,function(d,b,c){if(!c)return i(b,esg);var +a=c[1];m(f(b),ese);m(n(aae,function(a){return m(d,a)},b),a);return m(f(b),esf)});h(esd,function(a,b){var +c=m(abK,a);return n(z(esh),c,b)});var +aLf=function +c(a,b){return c.fun(a,b)},esi=function +c(a,b){return c.fun(a,b)};h(aLf,function(c,b){return n(abK,function(a){return m(c,a)},b)});h(esi,function(a,b){var +c=m(aLf,a);return n(z(esj),c,b)});var +ip=BO([0]),qO=BO([0]),i9=BO([0]),h9=BO([0]),l1=BO([0]),sg=BO([0]),ki=function(a,b){return 0},ak=function(a){return m(sg[4],a[1])},abL=function(a){return m(ip[4],a[2])},uP=function(a){return m(h9[23][2],a[3])},OO=function(a){return m(l1[4],a[4])},aLg=function(a){return m(qO[4],a[5])},yy=function(a){return m(i9[4],a[6])},k4=function(d,b,c){function +a(a){return m(c,[0,a,d[2],d[3],d[4],d[5],d[6]])}return n(sg[6],b,a)},wo=function(a){if(!a)return 1;var +b=a[1][2][1];return 1===b?0:b?1:2},ry=function(a){return a[2][1]},BU=function(a,b,c){return[5,[0,b,c,a,0]]},Gl=function(a,b){var +g=0;switch(a[0]){case +0:var +h=a[2],i=a[1];if(1===b[0])var +f=b[2],e=b[1],d=h,c=i;else +g=1;break;case +1:var +j=a[2],k=a[1];if(0===b[0])var +f=j,e=k,d=b[2],c=b[1];else +g=1;break;default:var +l=a[4],m=a[3],n=a[2],o=a[1];switch(b[0]){case +0:var +f=l,e=m,d=b[2],c=b[1];break;case +1:var +f=b[2],e=b[1],d=n,c=o;break;default:g=1}}return g?b:[2,c,d,e,f]},OP=function(a){switch(a[0]){case +13:return[0,a[1][1]];case +30:var +c=a[1];if(!c[2]){var +b=c[1];if(b&&!b[2])return[0,b[1][2][1][2]];return 0}break}return 0},BV=function(a,b,c){var +d=c[1];if(typeof +d==="number"){c[1]=[3,n(Kf,a,b),0];return 0}if(3!==d[0])return 0;var +e=d[2];c[1]=[3,o(fN,0,a,b,d[1]),e];return 0},esk=function(a,b,c){var +d=c[1];return typeof +d==="number"?(c[1]=[3,at,[0,[0,a,b],0]],0):3===d[0]?(c[1]=[3,d[1],[0,[0,a,b],d[2]]],0):0},Gm=function(a,b,c){c[2]=o(fN,0,a,b,c[2]);return 0},esl=function(a,b,c){c[3]=[0,[0,a,b],c[3]];return 0},wp=function(a){return[3,at,a]},sh=function(a,b){switch(b[0]){case +1:return m(a,b[3]);case +2:return m(a,b[2]);default:return 0}},OQ=function(a,b,c){var +d=n(ps,b,c);switch(a[0]){case +0:a[1]=m(d,a[1]);return 0;case +1:a[1]=m(d,a[1]);return 0;case +2:a[1]=m(d,a[1]);return 0;case +3:a[1]=m(d,a[1]);return 0;default:return 0}},Gn=function(a,b){var +c=a;for(;;)switch(c[0]){case +4:var +c=c[1][3];continue;case +0:case +2:var +e=c[1],f=function(a){return[0,a,c]};return S(n(jK,b,e),f);default:var +g=c[2],d=n(jK,b,c[1]);if(d)return[0,[0,d[1],c]];var +c=g;continue}},uQ=function(a,b,c,d,e){var +f=a;for(;;){switch(f[0]){case +3:var +g=f[2],h=1=ah){if(f){var +K=f[1][2][1];if(K){var +as=K[1],at=as[2];if(30===at[0]&&!K[2]){var +au=at[1],aN=au[2],aO=au[1],aP=as[1];return[0,[24,m(ak(c),aP),aO,aN]]}}}return[6,e,0]}var +ai=aQ(a,apn),l=0;if(0<=ai){if(0>=ai)return f?[6,e,0]:[0,[61,e]];var +aj=aQ(a,Jd);if(0<=aj){if(0>=aj){if(f){var +v=f[1][2][1];if(v&&!v[2])return[0,[71,e,p(fn,h,b,c,d,v[1])]]}return[6,e,0]}if(!q(a,aiy)){if(f){var +u=f[1][2][1];if(u&&!u[2])return[0,[69,e,p(fn,h,b,c,d,u[1])]]}return[6,e,0]}if(!q(a,ID)){if(f){var +t=f[1][2][1];if(t&&!t[2])return[0,[70,e,p(fn,h,b,c,d,t[1])]]}return[6,e,0]}if(!q(a,Hr)){if(f){var +s=f[1][2][1];if(s&&!s[2])return[0,[72,e,p(fn,h,b,c,d,s[1])]]}return[6,e,0]}if(!q(a,SG)){if(f){var +r=f[1][2][1];if(r&&!r[2])return[0,[40,e,p(fn,h,b,c,d,r[1])]]}return[6,e,0]}if(!q(a,pj))l=1}else{if(!q(a,De)){if(f){var +C=f[1][2][1];if(C&&!C[2])return[0,[39,e,p(fn,h,b,c,d,C[1])]]}return[6,e,0]}if(!q(a,as5)){if(f){var +y=f[1][2][1];if(y){var +z=y[2],A=p(fn,h,b,c,d,y[1]);if(!z)return[0,[64,e,A,0,0]];var +B=z[2],al=z[1];if(!B)return[0,[64,e,A,[0,p(fn,h,b,c,d,al)],0]];if(B[2])return[6,e,0];var +aI=B[1],aJ=[0,p(fn,h,b,c,d,al)];return[0,[64,e,A,aJ,[0,p(fn,h,b,c,d,aI)]]]}}return[6,e,0]}if(!q(a,alX))return f?[6,e,0]:[0,[68,e]];if(!q(a,afU)){if(f){var +w=f[1][2][1];if(w){var +x=w[2];if(x&&!x[2]){var +aG=x[1],aH=p(fn,h,b,c,d,w[1]);return[0,[65,e,aH,p(fn,h,b,c,d,aG)]]}}}return[6,e,0]}if(!q(a,aS3))return f?[6,e,0]:[0,[66,e]];if(!q(a,aiB))return f?[6,e,0]:[0,[67,e]]}}else{var +am=aQ(a,qZ);if(0<=am)if(0h[5])return[0,[26,ar]];return[0,[25,ar,aq]]}}}return[6,e,0]}if(!q(a,apm)){if(f){var +G=f[1][2][1];if(G){var +H=G[2];if(H&&!H[2]){var +aK=H[1],aL=p(fn,h,b,c,d,G[1]);return[0,[49,e,aL,p(fn,h,b,c,d,aK)]]}}}return[6,e,0]}if(!q(a,It)){if(f){var +F=f[1][2][1];if(F&&!F[2])return[0,[43,e,p(fn,h,b,c,d,F[1])]]}return[6,e,0]}if(!q(a,q6)){if(f){var +E=f[1][2][1];if(E&&!E[2])return[0,[16,e,p(fn,h,b,c,d,E[1])]]}return[6,e,0]}if(!q(a,Tk)){if(f){var +D=f[1][2][1];if(D&&!D[2])return[0,[55,e,p(fn,h,b,c,d,D[1])]]}return[6,e,0]}}}if(l)return f?[6,e,0]:[0,[0,e]]}else{var +av=aQ(a,Sm),ag=0;if(0<=av)if(0=aw){if(f){var +Q=f[1][2][1];if(Q&&!Q[2])return[0,[38,e,p(fn,h,b,c,d,Q[1])]]}return[6,e,0]}if(!q(a,t6)){if(f){var +P=f[1][2][1];if(P&&!P[2])return[0,[17,e,p(fn,h,b,c,d,P[1])]]}return[6,e,0]}if(!q(a,IU)){if(f){var +N=f[1][2][1];if(N){var +O=N[2];if(O&&!O[2]){var +aT=O[1],aU=p(fn,h,b,c,d,N[1]);return[0,[45,e,aU,p(fn,h,b,c,d,aT)]]}}}return[6,e,0]}if(!q(a,aqv))return[0,[0,e]];if(!q(a,amX)){if(f){var +M=f[1][2][1];if(M&&!M[2])return[0,[29,e,p(fn,h,b,c,d,M[1])]]}return[6,e,0]}if(!q(a,aV$)){if(f){var +L=f[1][2][1];if(L){var +ax=L[1],ay=ax[2];if(32===ay[0]&&!L[2]){var +aR=ay[1][1],aS=ax[1];return[0,[27,m(ak(c),aS),aR]]}}}return[6,e,0]}}else{if(!q(a,DT)){if(f){var +Y=f[1][2][1];if(Y&&!Y[2])return[0,[36,e,p(fn,h,b,c,d,Y[1])]]}return[6,e,0]}if(!q(a,asC)){if(f){var +W=f[1][2][1];if(W){var +X=W[2];if(X&&!X[2]){var +a2=X[1],a3=p(fn,h,b,c,d,W[1]);return[0,[50,e,a3,p(fn,h,b,c,d,a2)]]}}}return[6,e,0]}if(!q(a,ajf)){if(f){var +U=f[1][2][1];if(U){var +V=U[2];if(V&&!V[2]){var +a0=V[1],a1=p(fn,h,b,c,d,U[1]);return[0,[53,e,a1,p(fn,h,b,c,d,a0)]]}}}return[6,e,0]}if(!q(a,ahc)){if(f){var +S=f[1][2][1];if(S){var +T=S[2];if(T&&!T[2]){var +aY=T[1],aZ=p(fn,h,b,c,d,S[1]);return[0,[51,e,aZ,p(fn,h,b,c,d,aY)]]}}}return[6,e,0]}if(!q(a,aqC))return[0,[0,e]];if(!q(a,Hn)){if(f){var +R=f[1][2][1];if(R){var +i=R[2];if(i){var +az=i[1],aA=az[2],aV=az[1],aW=R[1];if(29===aA[0]){if(!i[2]){var +aX=aA[1][1];return[0,[32,e,p(fn,h,b,c,d,aW),aX]]}}else if(!i[2])return[6,m(ak(c),aV),0]}}}return[6,e,0]}}}else +ag=1;else{var +aB=aQ(a,"$Enum");if(0<=aB)if(0a[5])return[1,[4,b]];return[1,[3,b,c]]},jR=function +e(a,b,c,d){return e.fun(a,b,c,d)},aLR=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},ab4=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},ab5=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},ab6=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},sj=function +b(a){return b.fun(a)},aLS=function +b(a){return b.fun(a)},aLT=function +e(a,b,c,d){return e.fun(a,b,c,d)},aLU=function +e(a,b,c,d){return e.fun(a,b,c,d)},ws=function +e(a,b,c,d){return e.fun(a,b,c,d)},Gp=function +e(a,b,c,d){return e.fun(a,b,c,d)},ab7=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},aLV=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)};h(jR,function(e,b,c,d){var +f=d[2],aI=d[1],a=m(ak(c),aI);switch(f[0]){case +0:return p(aLV,e,b,c,a,f[1][1]);case +1:var +r=f[1],aJ=r[5],aK=r[4];return[1,[1,a,aK,aJ,p(sj,e,b,c,g2,r),at]];case +2:var +aL=f[1][2][2];return e[9]?p(fn,e,b,c,g2,aL):[0,[0,a]];case +3:var +S=f[1],aM=S[3];return S[1]?[6,a,[0,[6,a,2]]]:o(jR,e,b,c,aM);case +4:var +s=f[1],T=s[1],aN=s[3],aO=o(jR,e,b,c,s[2]),aP=o(jR,e,b,c,aN);return 11>>0?[1,[9,a]]:[9,a,aO,[0,T,aP]];case +5:var +g=f[1],t=g[1][2];switch(t[0]){case +9:var +U=t[1][2][1];if(q(U,"keyMirror")){if(!q(U,CI)){var +ay=0,aQ=g[3];if(!g[2]){var +v=aQ[2][1];if(v){var +V=v[1];if(0===V[0]&&!v[2]){var +u=OP(V[1][2]);ay=1}}}if(!ay)var +u=0;if(!u)return[0,[0,a]];var +aR=u[1];return[10,a,m(uP(c),aR)]}}else if(!g[2]){var +w=g[3][2][1];if(w){var +W=w[1];if(0===W[0]){var +X=W[1],Y=X[2];if(24===Y[0]&&!w[2]){var +aS=Y[1][1],aT=X[1];if(e[3]){var +y=m(ak(c),aT),j=aLy,i=aS;for(;;){if(!i)return aLC(y,0,j);var +k=i[1],aC=i[2];if(0===k[0]){var +I=k[1],J=I[2],aD=I[1];if(0===J[0]){var +K=J[1];switch(K[0]){case +0:case +3:var +L=K[1],n=L[2][1],aE=L[1],M=m(ak(c),aE),aF=af(n,xr)?j:aLA(n,M,[0,[18,M,n]],j),j=aF,i=aC;continue}}var +N=aD}else +var +N=k[1][1];return[6,y,[0,[1,y,m(ak(c),N)]]]}}}}}}break;case +21:var +Z=t[1],_=Z[1][2];if(9===_[0]&&!q(_[1][2][1],lG)){var +$=Z[2];if(0===$[0]&&!q($[1][2][1],Ib)&&!g[2]){var +z=g[3][2][1];if(z){var +aa=z[1];if(0===aa[0]){var +ab=aa[1],ac=ab[2];if(24===ac[0]&&!z[2]){var +aU=ac[1][1],aV=ab[1];return x(ab7,e,b,c,m(ak(c),aV),1,aU)}}}}}break}return[6,a,[0,[6,a,4]]];case +6:var +A=f[1],ad=A[1];if(!ad)return[1,[0,a,o(Gp,e,b,c,A)]];var +ae=ad[1],ag=ae[2][1],aW=ae[1],B=m(ak(c),aW),C=wp(b);m(aLi(C,c,B,ag,[O,function(a){return k4(c,B,function(a){return o(Gp,e,C,a,A)})}]),ki);return BU(C,B,ag);case +7:return[6,a,[0,[6,a,6]]];case +8:var +h=f[1],ah=h[5],ai=h[4],aj=h[1],aX=h[10],al=m(ak(c),aX);if(!aj)return[1,[1,al,ai,ah,p(sj,e,b,c,g2,h),at]];var +am=aj[1],an=am[2][1],aY=am[1],D=m(ak(c),aY),E=wp(b);abN(E,c,D,al,an,ai,ah,[O,function(a){return k4(c,D,function(a){return p(sj,e,E,a,g2,h)})}],ki);return BU(E,D,an);case +9:var +ao=f[1],aZ=ao[2][1],a0=ao[1];return BU(b,m(ak(c),a0),aZ);case +10:var +ap=OP(f[1][1][2]);if(!ap)return[0,[0,a]];var +a1=ap[1];return[11,a,m(uP(c),a1)];case +11:var +P=f[1][1][2][1],Q=e[4];if(0===P[0]){var +R=P[1],aG=R[1];if(!q(R[2][1],agy)&&Q){var +aH=Q[1];return[7,m(ak(c),aG),aH]}}return[6,a,[0,[6,a,10]]];case +12:return[6,a,[0,[6,a,11]]];case +13:return aLQ(e,a,f[1][1]);case +14:return[1,[10,a,f[1][1]]];case +15:return[1,[11,a]];case +16:var +aq=f[1];return[1,[6,a,aq[1],aq[2]]];case +17:var +ar=f[1];return[1,[8,a,ar[1],ar[2]]];case +18:return[6,a,[0,[6,a,12]]];case +19:var +F=f[1],az=F[4],aA=J5(F[1],F[3]);return[12,a,m(uP(c),aA),az];case +20:return[6,a,[0,[6,a,13]]];case +21:var +as=f[1];return x(aLR,e,b,c,as[1],a,as[2]);case +22:return[6,a,[0,[6,a,15]]];case +23:return[6,a,[0,[6,a,16]]];case +24:return x(ab7,e,b,c,a,0,f[1][1]);case +25:return[6,a,[0,[6,a,18]]];case +26:return[6,a,[0,[6,a,19]]];case +27:var +a2=f[1][1];return aLD(l(jR,e,b,c),a2);case +28:return[6,a,[0,[6,a,21]]];case +29:var +au=f[1],av=au[1][2];if(9===av[0]&&!q(av[1][2][1],aiF)){var +a3=au[2];if(e[10]){var +H=aag(a3,e[11]);if(0!==H[0])return[0,[0,a]];var +aB=H[1];return[10,a,m(uP(c),aB)]}}return[6,a,[0,[6,a,22]]];case +30:var +G=f[1][1];if(G&&!G[2])return aLQ(e,a,G[1][2][1][2]);return[1,[2,a]];case +31:return[6,a,[0,[6,a,24]]];case +32:var +a4=f[1][2][2];return 1===e[9]?[0,[0,a]]:p(fn,e,b,c,g2,a4);case +33:return[0,[0,a]];case +34:var +aw=f[1],ax=aw[1],a5=aw[2];return 7<=ax?[6,a,[0,[6,a,26]]]:[9,a,o(jR,e,b,c,a5),[3,ax]];case +35:return[9,a,o(jR,e,b,c,f[1][2]),0];default:return[6,a,[0,[6,a,28]]]}});h(aLR,function(a,b,c,d,e,f){var +l=[0,[0,e,f],0],k=d;for(;;){var +n=k[2],u=k[1];switch(n[0]){case +9:var +q=n[1],v=q[2][1],w=q[1],h=BU(b,m(ak(c),w),v),g=l;for(;;){if(!g)return h;var +p=g[1],i=p[2],s=g[2],t=p[1];switch(i[0]){case +0:var +j=[1,ry(i[1])];break;case +1:var +j=X(esC);break;default:var +j=[2,o(jR,a,b,c,i[1])]}var +h=[9,t,h,j],g=s}case +21:var +r=n[1],x=r[2],y=r[1],l=[0,[0,m(ak(c),u),x],l],k=y;continue;default:return[6,e,[0,[6,e,14]]]}}});h(ab4,function(a,b,c,d,e,f,g){switch(f[0]){case +2:var +h=f[1],j=h[1],q=h[3],r=h[2],s=j[2][1],t=j[1],k=wr(0,[0,m(ak(c),t)],a,b,c,d,r),n=0;if(!q&&0===g){var +l=k;n=1}if(!n)var +l=[0,[11,k]];return[0,[0,s],l];case +3:return X(esD);default:var +o=f[1][2],i=wr(0,[0,m(ak(c),e)],a,b,c,d,o),p=0===g?i:[0,[11,i]];return[0,0,p]}});h(ab5,function(a,b,c,d,e,f){switch(f[0]){case +0:var +k=f[1][2],g=m(ak(c),e);return[0,[0,0,g,wr(1,[0,g],a,b,c,d,k)]];case +1:var +l=f[1][2],h=m(ak(c),e);return[0,[0,0,h,wr(0,[0,h],a,b,c,d,l)]];case +2:var +i=f[1],j=i[1],n=i[2],o=j[1],p=m(ak(c),e),q=[0,ry(j)];return[0,[0,q,p,wr(0,[0,m(ak(c),o)],a,b,c,d,n)]];default:return 0}});h(ab6,function(a,b,c,d,e,f){var +g=f[7],J=f[6],q=f[3],t=f[2][2],K=t[3],L=t[2],N=t[1],ad=f[5],ae=f[4],O=p(si,a,b,c,d,f[8]),i=O[1],af=O[2],ag=N?[0,p(fn,a,b,c,i,N[1][2][1][2])]:0,r=0,k=L;for(;;){if(k){var +y=k[1],z=y[2],X=k[2],A=ap(ab4,a,b,c,i,y[1],z[1][2],z[2]),r=[0,[0,A[1],A[2]],r],k=X;continue}var +Y=U(r);if(K)var +P=K[1],ah=x(ab5,a,b,c,i,P[1],P[2][1][2]),Q=S(ah,function(a){return[0,a[1],a[2],a[3]]});else +var +Q=0;if(e)var +Z=0===g[0]?g[1]:g[1][1],h=[0,[0,[3,m(ak(c),Z)]],0];else +switch(g[0]){case +0:var +_=g[1],o=m(ak(c),_),v=0;if(ad)v=1;else{var +j=m(dgc[1],0);if(l(D(j,iL,iZ),j,m(D(j,zm,iK),j),q))var +h=ae?[0,[4,o],0]:[0,[0,[3,o]],0];else +v=1}if(v)var +h=[0,[6,o,[0,[0,o,2]]],0];break;case +1:var +h=[0,p(fn,a,b,c,i,g[1][2]),0];break;default:var +B=g[1],$=B[2],aa=B[1],ab=m(ak(c),aa),h=[0,[0,[9,ab]],p(abV,a,b,c,i,$)]}var +R=h[2],ai=h[1];if(R)var +T=R[1],V=[0,[1,[0,T[1],T[2]]]];else{var +aj=function(a){return[0,a[1],a[2]]};if(J&&!J[1][2][1]){var +w=0;if(0===q[0]){var +s=q[1][2][1],W=0;if(s){var +C=s[1],E=C[2];if(31===E[0]){var +F=E[1][1];if(F&&!s[2]){var +H=F[1],G=C[1];w=1;W=1}}}if(!W)var +u=0}else{var +I=q[1],H=I,G=I[1];w=1}if(w)var +ac=m(ak(c),G),u=[0,[0,ac,p(ws,a,b,c,M(function(a,b){var +c=b[2][1][2];return 2===c[0]?n(mq,c[1][1][2][1],a):a},g2,L),H)]]}else +var +u=0;var +V=S(u,aj)}return[0,af,Y,Q,ag,ai,V]}});h(sj,function(a){var +b=m(ab6,a);return function(a){var +c=m(b,a);return function(a){var +b=m(c,a);return function(a){return n(b,a,0)}}}});h(aLS,function(a){var +b=m(ab6,a);return function(a){var +c=m(b,a);return function(a){var +b=m(c,a);return function(a){return n(b,a,1)}}}});h(aLT,function(a,b,c,d){var +f=d[4],o=d[3],q=o[2],r=q[2],K=q[1],L=o[1],s=p(si,a,b,c,g2,d[2]),g=s[1],M=s[2],i=0,e=K,N=m(ak(c),L);for(;;){if(e){var +l=e[1],h=l[2],k=h[1],D=e[2],w=l[1],y=h[3],z=h[2][2],A=k[1][1],B=k[1][2][1],C=m(ak(c),A),i=[0,[0,B,C,ap(ab4,a,b,c,g,w,z,y)[2]],i],e=D;continue}var +E=U(i);if(r)var +t=r[1],O=x(ab5,a,b,c,g,t[1],t[2][1][2]),u=S(O,function(a){return[0,a[3]]});else +var +u=0;if(0===f[0])var +F=f[1],j=m(ak(c),F),v=[0,[42,j,fU(OZ,a,b,c,g,j,0,j,esE),0]];else +var +n=f[2],G=n[4],H=n[2],I=f[1],J=m(ak(c),I),v=[0,[42,J,p(fn,a,b,c,g,H),G]];return[0,N,M,E,u,v]}});h(aLU,function(a,b,c,d){return x(ab0,a,b,c,d[2],d[3],d[4])});h(ws,function(i,h,f,d){function +l(a){var +b=a[2][1];return n(xU,b,d)?[0,b]:0}function +x(a){switch(a[0]){case +0:return[0,a[1][2][1]];case +1:return 0;default:return OP(a[1][2])}}function +w(g,b){function +a(a){if(typeof +g==="number")return aiW<=g?[5,a]:[3,a];if(sJ>g[1])return[4,a,o(jR,i,h,f,g[2])];var +l=g[2],b=l[3],k=l[2],j=l[1];if(typeof +b==="number")var +m=[7,a];else{var +d=b[1];if(H1<=d)if(alR<=d)var +e=aj5<=d?[19,a]:[6,a];else if(Dg<=d)var +q=b[2],e=[9,a,q[1],q[2]];else +var +n=b[2],e=[11,a,n[1],k,n[2],n[3]];else if(w$===d)var +p=b[2],e=[10,a,p[1],k,p[2],p[3]];else if(arY<=d)var +c=b[2],s=a2h<=c?aV4<=c?a4c<=c?[19,a]:[18,a,j]:H1<=c?[15,a,j]:[13,a]:IL<=c?w$<=c?[14,a,j]:[12,a,j]:a2q<=c?[16,a]:[17,a,j],e=s;else +var +r=b[2],e=[8,a,r[1],k,r[2]];var +m=e}return k?m:[2,m]}return S(l(b),a)}function +g(f,b){var +a=b[2];switch(a[0]){case +9:return w(f,a[1]);case +21:var +c=a[1],d=c[1][2];if(9===d[0]){var +g=c[2],h=d[1],e=function(c){function +a(a){if(typeof +f==="number")return aiW<=f?0:0;if(sJ>f[1])return 0;var +i=f[2],b=i[3],m=i[2];function +n(a){return m?a:[2,a]}if(typeof +b==="number")var +j=0;else{var +d=b[1];if(H1<=d)if(alR<=d)var +e=aj5<=d?[0,[25,c,a,b[2]]]:[0,[24,c,a,b[2]]];else if(Dg<=d)var +k=b[2],e=[0,[23,c,a,k[1],k[2]]];else +var +g=b[2],e=[0,[22,c,a,g[1],g[2],g[3]]];else if(w$===d)var +h=b[2],e=[0,[21,c,a,h[1],h[2],h[3]]];else if(arY<=d)var +e=0;else +var +l=b[2],e=[0,[20,c,a,l[1],l[2]]];var +j=e}return S(j,n)}return qA(x(g),a)};return qA(l(h),e)}break}return 0}function +j(a,b,c,d,e){var +k=d[2],aD=0,aR=d[1];if(34===k[0]){var +aC=k[1];if(4===aC[1]){var +aB=e[2],aA=aC[2];aD=1}}if(!aD){var +y=e[2],aE=0;if(34===y[0]){var +az=y[1];if(4===az[1]){var +aB=k,aA=az[2];aE=1}}if(!aE){var +aF=0;if(13===k[0])var +ay=e,ax=k[1][1],aw=aR;else{var +z=e[2];if(13===z[0])var +ay=d,ax=z[1][1],aw=e[1];else +aF=1}if(!aF&&a)return g([0,sJ,[0,c,b,[0,Sk,[0,m(ak(f),aw),ax]]]],ay);var +A=d[2],aG=0,aS=d[1];if(14===A[0])var +av=e,au=A[1][1],at=aS;else{var +B=e[2];if(14===B[0])var +av=d,au=B[1][1],at=e[1];else +aG=1}if(!aG&&a)return g([0,sJ,[0,c,b,[0,Dg,[0,m(ak(f),at),au]]]],av);var +C=d[2],aH=0,aT=d[1];if(16===C[0])var +as=C[1],ar=e,aq=as[2],ap=as[1],ao=aT;else{var +D=e[2];if(16===D[0])var +an=D[1],ar=d,aq=an[2],ap=an[1],ao=e[1];else +aH=1}if(!aH&&a)return g([0,sJ,[0,c,b,[0,w$,[0,m(ak(f),ao),ap,aq]]]],ar);var +E=d[2],aI=0,aU=d[1];if(17===E[0])var +am=E[1],al=e,aj=am[2],ai=am[1],ah=aU;else{var +F=e[2];if(17===F[0])var +ag=F[1],al=d,aj=ag[2],ai=ag[1],ah=e[1];else +aI=1}if(!aI&&a)return g([0,sJ,[0,c,b,[0,H1,[0,m(ak(f),ah),ai,aj]]]],al);var +s=d[2],G=d[1];if(15===s[0])var +af=e,ae=G;else{if(15!==e[2][0]){var +aJ=0;if(30===s[0]){var +ad=s[1];if(!ad[2]){var +ac=e,r=ad[1],ab=G;aJ=1}}var +u=0;if(aJ)u=1;else{var +H=e[2];if(30===H[0]){var +aa=H[1];if(!aa[2]){var +ac=d,r=aa[1],ab=e[1];u=1}}}if(u&&a){if(r&&!r[2]){var +a0=r[1][2][1][2];return g([0,sJ,[0,c,b,[0,Sk,[0,m(ak(f),ab),a0]]]],ac)}return 0}var +I=d[2],aK=0,aV=d[1];if(34===I[0]){var +$=I[1];if(!$[1]){var +Z=e,t=$[2][2],Y=aV;aK=1}}var +v=0;if(aK)v=1;else{var +J=e[2];if(34===J[0]){var +X=J[1];if(!X[1]){var +Z=d,t=X[2][2],Y=e[1];v=1}}}if(v&&a){var +aZ=function(a){var +d=a[2],e=a[1],h=m(ak(f),Y);return g([0,sJ,[0,c,b,[0,w$,[0,h,-e,P(esN,d)]]]],Z)};if(16===t[0])var +w=t[1],_=[0,[0,w[1],w[2]]];else +var +_=0;return qA(_,aZ)}var +j=d[2],K=d[1],aL=0;if(34===j[0]&&5===j[1][1])var +p=e,n=K;else +aL=1;if(aL){var +L=e[2],aM=0;if(34===L[0]&&5===L[1][1])var +p=d,n=e[1];else +aM=1;if(aM){var +aN=0;if(9===j[0]&&!q(j[1][2][1],kq)){var +p=e,n=K;aN=1}if(!aN){var +M=e[2],aO=0;if(9===M[0]){var +aX=e[1];if(!q(M[1][2][1],kq)){var +p=d,n=aX;aO=1}}if(!aO){var +aP=0;if(21===j[0]){var +V=j[1],W=V[1][2];if(9===W[0]){var +U=e,T=V[2],R=W[1];aP=1}}if(!aP){var +N=e[2],aQ=0;if(21===N[0]){var +O=N[1],Q=O[1][2];if(9===Q[0]){var +U=d,T=O[2],R=Q[1];aQ=1}}if(!aQ)return 0}var +aW=function(b){function +a(a){return[26,b,a,o(jR,i,h,f,U)]}return S(x(T),a)};return qA(l(R),aW)}}}}var +aY=a?[0,aj5,m(ak(f),n)]:a1O;return g([0,sJ,[0,c,b,aY]],p)}var +af=d,ae=e[1]}var +a1=a?[0,alR,m(ak(f),ae)]:a1O;return g([0,sJ,[0,c,b,a1]],af)}}function +a2(a){function +d(a){return g([0,sJ,[0,c,b,[0,arY,a]]],aA)}var +e=q(a,pS)?q(a,qR)?q(a,pj)?q(a,oW)?q(a,sS)?q(a,qj)?q(a,rU)?q(a,kq)?0:esF:esG:esH:esI:esJ:esK:esL:esM;return qA(e,d)}return qA(OP(aB),a2)}function +O(a){if(0===a[0])return[1,p(fn,i,h,f,d,a[1])];var +b=a[1][1];return[0,m(ak(f),b)]}return function(a){var +b=a[2],P=a[1],k=m(ak(f),P);switch(b[0]){case +4:var +r=b[1],c=r[3],e=r[2],s=r[1];if(4<=s)return 21<=s?g([0,-490122228,c],e):0;switch(s){case +0:return j(0,1,k,e,c);case +1:return j(0,0,k,e,c);case +2:return j(1,1,k,e,c);default:return j(1,0,k,e,c)}case +5:var +t=b[1],u=t[3][2],D=t[2],E=t[1],x=function(a,b,c){if(!c){if(!a)return 0;var +n=a[2],p=a[1],q=o(jR,i,h,f,E),r=D?[0,K(D[1][2][1],O)]:0,k=function(a){return 0===a[0]?[0,[0,o(jR,i,h,f,a[1])]]:0},m=Ws(K(u[1],k));return S(m,function(a){return[27,q,r,a,[0,p,n]]})}var +j=c[1],t=c[2];function +v(a){return x(a,b+1|0,t)}if(0===j[0]){var +e=j[1][2];if(9===e[0])var +g=l(e[1]),s=g?[0,[0,g[1],b],a]:a,d=[0,s];else +var +d=[0,a]}else +var +d=0;return qA(d,v)},y=E[2];if(21===y[0]){var +z=y[1],A=z[1][2];if(9===A[0]&&!q(A[1][2][1],q6)){var +B=z[2];if(0===B[0]&&!q(B[1][2][1],ams)){var +n=u[1];if(n){var +C=n[1];if(0===C[0]&&!n[2])return g(aiW,C[1])}}}}return x(0,0,u[1]);case +9:return w(-193687044,b[1]);case +20:var +v=b[1],F=v[3],G=v[2];switch(v[1]){case +0:var +I=p(ws,i,h,f,d,G),J=p(ws,i,h,f,d,F);return ED(I,J,function(a,b){return[1,a,b]});case +1:var +L=p(ws,i,h,f,d,G),M=p(ws,i,h,f,d,F);return ED(L,M,function(a,b){return[0,a,b]});default:return 0}case +34:var +H=b[1],Q=H[2];if(2!==H[1])return 0;var +N=function(a){return[2,a]};return S(p(ws,i,h,f,d,Q),N);default:return 0}}});h(Gp,function(e,b,c,d){var +r=d[4],w=d[5],x=d[2][2][1],s=p(si,e,b,c,g2,d[3]),y=s[2],g=n(mq,esO,s[1]);if(r){var +h=r[1],i=h[2],j=i[2],t=i[1],u=h[1],k=m(ak(c),u),q=o(jR,e,b,c,t);if(j)var +v=j[1][2][1],f=[1,k,q,fx(o(fn,e,b,c,g),v)];else +var +f=[0,k,q]}else +var +f=0;var +z=aLN(e,b,c,g,w),a=M(function(d){return function(a){var +i=0;switch(a[0]){case +0:var +s=a[1],j=s[2],t=j[2],u=s[1],F=j[1];switch(t[0]){case +3:var +k=j[4],f=j[3][2],v=t[1],h=v[2][1],n=v[1];if(e[2]&&aaf(h))return d;switch(F){case +0:var +G=f[5],H=f[4],I=m(ak(c),u),J=m(ak(c),n);return aLs(k,h,J,I,H,G,p(aLS,e,b,c,g,f),d);case +1:var +K=f[5],L=f[4],M=m(ak(c),u),N=m(ak(c),n);return aLs(k,h,N,M,L,K,p(sj,e,b,c,g,f),d);case +2:return aLt(k,h,aLO(e,b,c,g,m(ak(c),n),f),d);default:return aLt(k,h,aLP(e,b,c,g,m(ak(c),n),f),d)}case +4:i=2;break;case +5:i=1;break}break;case +1:var +w=a[1],o=w[2],x=o[1],O=w[1];switch(x[0]){case +3:var +y=o[3],z=x[1],q=z[2][1],A=z[1],P=o[5],Q=o[4];if(e[2]&&aaf(q))return d;if(0===y[0])var +B=m(ak(c),O),D=[6,B,[0,[0,B,[0,q]]]],C=m(ak(c),A);else +var +R=y[1][2],S=m(ak(c),A),D=p(fn,e,b,c,g,R),C=S;var +r=l(fN,0,q,[0,C,D,wo(P)]);if(Q)return abQ(r,d);var +E=m(r,d[3]);return[0,d[1],d[2],E];case +4:i=2;break;case +5:i=1;break}break;default:return d}switch(i){case +0:return d;case +1:return d;default:return d}}},esu,x);return[0,y,f,z,a[1],a[2],a[3]]});h(ab7,function(a,b,c,d,e,f){var +g=aLy,k=f;for(;;){if(!k)return aLC(d,e,g);var +G=k[2],q=k[1];if(0!==q[0]){var +_=o(jR,a,b,c,q[1][2][1]),u=aLz(g),I=u?[0,u[1],g[3]]:g[3],g=[0,g[1],at,[0,[0,_],I]],k=G;continue}var +r=q[1],H=r[1],s=r[2],t=0;switch(s[0]){case +0:if(5===s[1][0])t=1;break;case +1:if(5===s[1][0])t=1;break}if(t)return[6,d,[0,[1,d,m(ak(c),H)]]];var +i=r[2],h=0;switch(i[0]){case +0:var +v=i[1];switch(v[0]){case +4:h=2;break;case +5:h=4;break;case +0:case +3:var +w=v[1],x=w[2][1],y=i[2],J=w[1],K=m(ak(c),J),L=y[1],M=m(ak(c),L),z=o(jR,a,b,c,y),j=af(x,xr)?[0,[0,[0,M,z]],g[2],g[3]]:aLA(x,K,z,g);break;default:h=1}break;case +1:var +A=i[1];switch(A[0]){case +4:h=2;break;case +5:h=4;break;case +0:case +3:var +B=A[1],n=i[2][2],N=B[2][1],O=B[1],P=n[5],Q=n[4],R=m(ak(c),H),S=m(ak(c),O),j=abU(l(fN,0,N,[2,S,R,Q,P,p(sj,a,b,c,g2,n)]),g);break;default:h=1}break;case +2:var +C=i[1];switch(C[0]){case +4:h=2;break;case +5:h=3;break;case +0:case +3:var +D=C[1],T=D[2][1],U=D[1],V=i[2][2],j=aLB(T,aLO(a,b,c,g2,m(ak(c),U),V),g);break;default:h=1}break;default:var +E=i[1];switch(E[0]){case +4:h=2;break;case +5:h=3;break;case +0:case +3:var +F=E[1],W=F[2][1],Y=F[1],Z=i[2][2],j=aLB(W,aLP(a,b,c,g2,m(ak(c),Y),Z),g);break;default:h=1}}switch(h){case +1:var +j=g;break;case +3:var +j=g;break;case +4:var +j=X(esQ);break;case +2:var +j=X(esP);break}var +g=j,k=G}});h(aLV,function(a,b,c,d,e){var +g=0,f=e;for(;;){if(f){var +h=f[1],j=f[2];switch(h[0]){case +0:var +g=[0,o(jR,a,b,c,h[1]),g],f=j;continue;case +1:var +k=h[1][1];return[6,d,[0,[2,d,m(ak(c),k)]]];default:return[6,d,[0,[3,d]]]}}var +i=U(g);return i?[1,[15,d,i[1],i[2]]]:[6,d,[0,[4,d]]]}});var +ab8=function(d,b,c){return function(a){if(0===a[0]){var +e=a[1],h=e[2][1],i=e[1],j=BU(d,m(ak(b),i),h);return M(function(a,b){return[9,b[1],a,[1,b[2]]]},j,c)}var +f=a[1],g=f[2],k=g[2],l=g[1],n=f[1],o=m(ak(b),n);return m(ab8(d,b,[0,[0,o,ry(k)],c]),l)}},BX=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},aLW=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},aLX=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)};h(BX,function(a,b,c,d,e,f){var +g=f[2];switch(g[0]){case +0:return x(aLW,a,b,c,d,e,g[1][1]);case +1:return x(aLX,a,b,c,d,e,g[1][1]);case +2:var +h=g[1][1],i=h[2][1],j=h[1];return l(d,m(ak(c),j),i,e);default:return X(esS)}});h(aLW,function(a,b,c,d,e,f){var +g=0,i=f;for(;;){if(!i)return 0;var +l=i[1],E=i[2];if(0===l[0]){var +n=l[1][2],h=n[1],t=n[2];switch(h[0]){case +4:var +z=o(jR,a,b,c,h[1][2][1]),A=[2,e,m(aLg(c),z)],k=m(yy(c),A),j=g;break;case +0:case +3:var +p=h[1],q=p[2][1],u=p[1],v=[1,e,m(ak(c),u),q],k=m(yy(c),v),j=[0,q,g];break;default:var +w=h[1][1],y=[3,m(ak(c),w)],k=m(yy(c),y),j=g}x(BX,a,b,c,d,k,t);var +s=j}else{var +r=l[1],B=r[2][1],C=r[1],D=[4,e,m(ak(c),C),g];x(BX,a,b,c,d,m(yy(c),D),B);var +s=g}var +g=s,i=E}});h(aLX,function(a,b,c,d,e,f){var +h=0,g=f;for(;;){if(!g)return 0;var +i=g[1],s=g[2];switch(i[0]){case +0:var +j=i[1],l=j[2][1],n=j[1],o=[5,e,m(ak(c),n),h];x(BX,a,b,c,d,m(yy(c),o),l);break;case +1:var +k=i[1],p=k[2][1],q=k[1],r=[6,e,m(ak(c),q),h];x(BX,a,b,c,d,m(yy(c),r),p);break}var +h=h+1|0,g=s}});var +O0=function(f,b,c,d){var +a=d[1],g=a[2][1],h=d[3],i=d[2],j=a[1],e=m(ak(c),j);return abM(b,c,e,g,[O,function(a){return k4(c,e,function(a){var +c=p(si,f,b,a,g2,i),d=c[2];return[0,e,g,d,p(fn,f,b,a,c[1],h)]})}])},O1=function(e,b,c,d){var +a=d[1],g=a[2][1],h=d[4],i=d[3],j=d[2],k=a[1],f=m(ak(c),k);return abM(b,c,f,g,[O,function(a){return k4(c,f,function(a){var +c=p(si,e,b,a,g2,j),d=c[1],k=c[2],l=S(h,o(fn,e,b,a,d));return[1,f,g,k,l,S(i,o(fn,e,b,a,d))]})}])},aLY=function(i,b,c,d,e,f,g){var +a=g[2],x=g[1];switch(a[0]){case +1:var +j=a[1],y=j[5],z=j[4],q=m(ak(c),x);return m(aLl(b,c,d,e,q,z,y,[O,function(a){return k4(c,q,function(a){return p(sj,i,b,a,g2,j)})}]),f);case +8:var +h=a[1],r=h[5],s=h[4],t=h[1],A=h[10],k=m(ak(c),A);if(!t)return m(aLl(b,c,d,e,k,s,r,[O,function(a){return k4(c,k,function(a){return p(sj,i,b,a,g2,h)})}]),f);var +u=t[1],v=u[2][1],B=u[1],l=m(ak(c),B),n=wp(b);abN(n,c,l,k,v,s,r,[O,function(a){return k4(c,l,function(a){return p(sj,i,n,a,g2,h)})}],ki);return m(aLk(b,c,d,e,l,v,n),f);case +9:var +w=a[1],C=w[2][1],D=w[1];return m(aLk(b,c,d,e,m(ak(c),D),C,b),f);case +27:var +E=a[1][1];return aLD(function(a){return aLY(i,b,c,d,e,f,a)},E);default:return uQ(b,c,e,[2,d,e,[O,function(a){return k4(c,d,function(a){return o(jR,i,b,a,g)})}]],f)}},Gq=function(b,g,f,d,e){var +h=d[2],a=d[1];return fo(function(a){var +k=a[2],c=k[2],l=k[1],i=l[2];switch(i[0]){case +2:var +q=i[1],r=q[2],s=q[1],j=s[2][1],v=s[1],d=m(ak(f),v);if(2<=h&&0===r[0]&&c)return aLY(b,g,f,d,j,e,c[1]);return m(abO(g,f,h,d,j,[O,function(a){return k4(f,d,function(a){return wr([1,j],[0,d],b,g,a,g2,r)})}]),e);case +3:return X(esT);default:var +n=i[1][2],p=[0,0],t=function(a,b,c){return m(abO(g,f,h,a,b,[O,function(a){return[8,c]}]),e)},u=[0,[O,function(a){var +d=hW(0,0,0,p[1]),e=k4(f,d,function(a){if(2<=h&&0===n[0]&&c)return o(jR,b,g,a,c[1]);return wr(0,0,b,g,a,g2,n)});return m(aLg(f),e)}]];x(BX,b,g,f,t,m(yy(f),u),l);p[1]=[0,m(sg[5],f[1])];return 0}},a)},ab9=function(f,b,c,d){var +a=hW(0,0,0,d[1]),g=a[2][1],h=a[1],e=m(ak(c),h);return aLi(b,c,e,g,[O,function(a){return k4(c,e,function(a){return o(Gp,f,b,a,d)})}])},ab_=function(f,b,c,d){var +g=d[10],h=d[5],i=d[4],a=hW(0,0,0,d[1]),j=a[2][1],k=a[1],l=m(ak(c),g),e=m(ak(c),k),n=[O,function(a){return k4(c,e,function(a){return p(sj,f,b,a,g2,d)})}];return function(a){return abN(b,c,e,l,j,i,h,n,a)}},ab$=function(e,b,c,d){var +a=d[1],g=d[7],h=a[2][1],i=a[1],j=m(ak(c),g),f=m(ak(c),i),k=e[8]?[0,[O,function(a){return k4(c,f,function(a){return o(aLT,e,b,a,d)})}]]:0;return aLj(b,c,f,j,h,k)},aLZ=function(f,b,c,d,e){var +a=e[1],h=a[2][1],i=a[1],j=m(ak(c),d),g=m(ak(c),i),k=f[8]?[0,[O,function(a){return k4(c,g,function(a){return o(aLU,f,b,a,e)})}]]:0;return aLj(b,c,g,j,h,k)},aL0=function(f,b,c,d){var +a=d[1],g=d[3],h=d[2][2],i=a[2][1],j=a[1],e=m(ak(c),j);return abO(b,c,g,e,i,[O,function(a){return k4(c,e,function(a){return p(fn,f,b,a,g2,h)})}])},aL1=function(e,b,c,d){var +i=d[3],a=d[2][2],j=a[2],h=d[1],f=h[2][1],o=a[1],q=h[1],k=m(ak(c),q),g=m(ak(c),o),l=[O,function(a){return k4(c,g,function(a){if(12!==j[0])return X(esU);var +d=j[1],f=d[2][2],k=f[2],u=d[3],v=f[3],w=f[1],l=p(si,e,b,a,g2,d[1]),c=l[1],x=l[2],y=p(abZ,e,b,a,c,w),z=p(abX,e,b,a,c,k),A=p(abY,e,b,a,c,v),o=p(OU,e,b,a,c,u),g=o[2],t=0,B=o[1];if(g&&!(0===g[1][0]))var +h=g;else +t=1;if(t)if(i){var +q=i[1],r=q[2][1],C=q[1];if(r)var +D=r[1],E=m(ak(a),C),s=[0,[0,E,p(ws,e,b,a,M(function(a,b){var +c=b[2][1];return c?n(mq,c[1][2][1],a):a},g2,k),D)]];else +var +s=0;var +h=s}else +var +h=0;return[0,x,z,A,y,B,h]})}];return function(h){return OQ(b,f,function(a){if(!a){var +j=[8,f,g9([0,k,g,l])],e=m(abL(c),j);n(h,f,e);return[0,[0,e]]}var +b=a[1];if(0!==b[0])return a;var +d=b[1];function +i(a){if(8!==a[0])return a;var +b=a[1],c=a[2];n(h,b,d);return[8,b,kE([0,k,g,l],c)]}n(ip[8],d,i);return a})}},aL2=function(e,b,c,d){var +a=d[1],f=a[2][1],i=a[1],g=m(ak(c),i),h=[6,g,f,[O,function(a){return k4(c,g,function(a){var +C=d[4],D=d[1],P=d[6],Q=d[5],R=d[3][2][3],E=p(si,e,b,a,g2,d[2]),S=E[2],g=n(mq,esR,E[1]);if(C){var +q=C[1],r=q[2],s=r[2],H=r[1],I=q[1],t=m(ak(a),I),u=m(ab8(b,a,0),H);if(s)var +J=s[1][2][1],i=[1,t,u,fx(o(fn,e,b,a,g),J)];else +var +i=[0,t,u]}else{var +j=af(D[2][1],lG),F=0,G=D[1];if(j){var +k=G[1];if(k){var +v=um(k[1]);F=1}else +var +l=0}else +var +l=j;if(!F)var +v=l;var +i=v?1:0}var +h=0,f=Q;for(;;){if(!f){var +O=U(h),T=aLN(e,b,a,g,P),c=m(p(aLI,e,b,a,g,R),esv);return[0,S,i,O,T,c[1],c[3],c[2],c[4],c[5],c[6],c[7]]}var +w=f[1],x=w[2],y=x[2],K=f[2],L=x[1],M=w[1],z=m(ak(a),M),A=m(ab8(b,a,0),L);if(y)var +N=y[1][2][1],B=[1,z,A,fx(o(fn,e,b,a,g),N)];else +var +B=[0,z,A];var +h=[0,B,h],f=K}})}]];return function(a){return uQ(b,c,f,h,a)}},O2=function(f,b,c,d){var +a=d[1],g=a[2][1],h=d[4][2][3],i=d[3],j=d[2],k=a[1],e=m(ak(c),k);return abM(b,c,e,g,[O,function(a){return k4(c,e,function(a){var +c=p(si,f,b,a,g2,j),d=c[2];return[2,e,g,d,x(ab1,f,b,a,c[1],i,h)]})}])},O3=function(a,b,c,d){var +e=d[2],f=c[2],g=c[1],h=e[2],i=d[1],j=e[1][2][1],k=m(ak(b),i),l=n(a,g,h);return[0,l,o(fN,0,j,k,f)]},esW=function(a,b){var +c=b[2][1];return a?0:[0,c]},esX=function(a,b){return af(b[2][1],g)?0:a},esY=function(a,b){return b[2][1]==0.?0:a},esZ=function(a,b){return ao(b[2][1],es0)?0:a},es1=function(a,b,c){return O3(esW,a,b,c)},es2=function(a,b,c){return O3(esX,a,b,c)},es3=function(a,b,c){return O3(esY,a,b,c)},es4=function(a,b,c){return O3(esZ,a,b,c)},aL3=function(e){function +b(a,b){var +c=b[1],d=b[2][1][2][1];return o(fN,0,d,m(ak(e),c),a)}return function(a){return M(b,at,a)}},O4=function(a,b,c){var +d=[0,c,at],e=m(b,a);return function(a){return M(e,d,a)}},O5=function(a,b,c,d){var +e=d[2][2],f=d[1],g=f[2][1],j=f[1],h=m(ak(c),j),k=a[7]?[0,[O,function(a){return k4(c,h,function(a){switch(e[0]){case +0:var +d=e[1],q=d[3],r=d[1],f=m(O4(a,es1,0),r);return[0,[0,f[1]],f[2],q];case +1:var +g=e[1],s=g[3],t=g[1],h=m(O4(a,es3,1),t);return[0,[1,h[1]],h[2],s];case +2:var +i=e[1],j=i[3],b=i[1];if(0===b[0]){var +o=b[1];return[0,es5,m(aL3(a),o),j]}var +p=b[1],c=m(O4(a,es2,1),p);return[0,[2,c[1]],c[2],j];case +3:var +k=e[1],u=k[2],v=k[1];return[0,0,m(aL3(a),v),u];default:var +l=e[1],w=l[3],x=l[1],n=m(O4(a,es4,1),x);return[0,[3,n[1]],n[2],w]}})}]]:0,i=[10,h,g,k];return function(a){return uQ(b,c,g,i,a)}},aL4=function(f,b,c,d){var +g=d?[0,d[1][2][1]]:0;return function(a){if(0===a[0]){var +o=a[1];return fo(function(a){var +x=a[2],h=x[2],d=x[1];if(g){var +C=g[1],r=m(uP(b),C);if(h)var +s=h[1],j=d[2][1],e=s[2][1],t=s[1];else +var +w=d[2][1],j=w,e=w,t=d[1];var +u=m(ak(b),t);if(c)var +A=[4,m(OO(b),[0,u,e,r,j])],v=function(a){return BV(e,A,a)};else +var +B=[2,m(OO(b),[1,u,e,r,j])],v=function(a){return Gm(e,B,a)};return sh(v,f)}if(h)var +k=h[1],i=k[2][1],n=d[2][1],l=k[1];else +var +q=d[2][1],i=q,n=q,l=d[1];var +o=[0,m(ak(b),l),n,f,0];if(c)var +y=[0,o],p=function(a){return BV(i,y,a)};else +var +z=[0,o],p=function(a){return Gm(i,z,a)};return sh(p,f)},o)}var +d=a[1],e=d[2],p=d[1];if(!e){var +t=m(ak(b),p),u=hW(0,0,0,g),l=m(uP(b),u),n=c?esk:esl;return sh(function(a){return n(t,l,a)},f)}var +h=e[1],q=hW(0,0,0,g),i=h[2][1],r=h[1],s=m(ak(b),r);if(!c)return X(esp);var +j=[3,s,i,m(uP(b),q)],k=[4,m(OO(b),j)];return sh(function(a){return BV(i,k,a)},f)}},es8=function(a,b,c,d){var +j=d[3],k=d[2][2];if(!d[1]&&3===k[0]){var +r=k[1][2],e=0;if(21===r[0]){var +g=r[1],l=g[1][2],p=0;switch(l[0]){case +9:var +h=l[1][2][1];if(q(h,gK))if(q(h,le))e=1;else{var +x=g[2];if(0===x[0])if(q(x[1][2][1],gK))e=1;else{if(0===Gn(b,h))return aLn(b,o(jR,a,b,c,j));e=1}}else{var +y=g[2];if(0===y[0]){var +z=y[1],f=z[2][1],B=z[1],A=h;p=1}}break;case +21:var +C=l[1],D=C[1][2];if(9===D[0]){var +E=D[1][2][1];if(!q(E,le)){var +F=C[2];if(0===F[0]&&!q(F[1][2][1],gK)){var +G=g[2];if(0===G[0]){var +H=G[1],f=H[2][1],B=H[1],A=E;p=1}}}}break;default:e=1}if(p){if(0===Gn(b,A)){var +M=m(ak(c),B),i=[0,M,o(jR,a,b,c,j)];return sh(function(a){var +d=a[1];if(typeof +d!=="number")switch(d[0]){case +0:var +c=d[1],g=0;switch(c[0]){case +1:var +b=c[1];if(1===b[0])var +j=o(fN,0,f,i,b[5]),e=[1,[1,b[1],b[2],b[3],b[4],j]];else +g=1;break;case +5:var +h=c[1];o(OR,f,i,h[2],h[3]);var +e=c;break;default:g=1}if(g)var +e=c;a[1]=[0,e];return 0;case +1:a[1]=[1,o(fN,0,f,i,d[1])];return 0;case +3:return 0}a[1]=[1,n(Kf,f,i)];return 0},b)}e=1}}else +e=1;if(e){var +s=k[1][2];if(21===s[0]){var +t=s[1],u=t[1][2];if(9===u[0]){var +v=t[2],I=u[1][2][1];if(0===v[0]){var +w=v[1],J=w[2][1],K=w[1],L=m(ak(c),K);return o(OR,J,[0,L,o(jR,a,b,c,j)],I,b)}}}}}return 0},BY=function(f,b,c,d){var +e=b,i=d;for(;;){var +a=i[2],a_=i[1];switch(a[0]){case +0:var +a$=a[1][1],ba=wp(e);return fo(function(a){return BY(f,ba,c,a)},a$);case +2:return m(ab9(f,e,c,a[1]),ki);case +3:return m(ab$(f,e,c,a[1]),ki);case +6:return m(aL2(f,e,c,a[1]),ki);case +7:return m(aLZ(f,e,c,a_,a[1]),ki);case +9:var +u=a[1],V=u[3],W=u[2],bb=u[4],bc=u[1],E=S(bc,function(a){return m(ak(c),a)});if(W){var +g=W[1];if(E)var +aG=E[1],t=function(a,b){return Go(e,aG,a,b)};else +var +aY=1,t=function(a,b){return yz(e,aY,a,b)};switch(g[0]){case +0:var +aH=g[1][2],aI=1,aJ=function(a,b){return yz(e,aI,a,b)};m(aL0(f,e,c,aH),aJ);break;case +1:m(aL1(f,e,c,g[1][2]),t);break;case +2:m(aL2(f,e,c,g[1][2]),t);break;case +3:var +R=g[1];m(aLZ(f,e,c,R[1],R[2]),t);break;case +4:var +aK=g[1],aL=hW(0,0,0,E);OS(e,aL,p(fn,f,e,c,g2,aK));break;case +5:var +aM=g[1][2],aN=0,aO=function(a,b){return yz(e,aN,a,b)};m(O0(f,e,c,aM),aO);break;case +6:var +aP=g[1][2],aQ=0,aR=function(a,b){return yz(e,aQ,a,b)};m(O1(f,e,c,aP),aR);break;case +7:var +aS=g[1][2],aT=0,aU=function(a,b){return yz(e,aT,a,b)};m(O2(f,e,c,aS),aU);break;default:var +aV=g[1][2],aW=1,aX=function(a,b){return yz(e,aW,a,b)};m(O5(f,e,c,aV),aX)}}if(!V)return 0;var +bd=V[1];return m(aL4(e,c,1,bb),bd);case +10:return m(aL1(f,e,c,a[1]),ki);case +11:return m(O2(f,e,c,a[1]),ki);case +12:var +Y=a[1],F=Y[1],be=Y[2];if(0===F[0])var +Z=F[1],bf=Z[1],bg=ry(Z),$=bg,_=m(ak(c),bf);else +var +aa=F[1],bi=aa[2][1],bj=aa[1],$=bi,_=m(ak(c),bj);var +I=[0,0,at,0,1,0];if(0===e[0]){var +aA=e[2];e[2]=l(ps,$,function(a){return a?[0,a[1]]:[0,[0,_,I]]},aA)}var +q=[1,at,e,I],bh=be[2][1];fo(function(a){return BY(f,q,c,a)},bh);if(1!==q[0])return X(esq);var +K=q[1],L=q[3][1];if(typeof +L==="number")return sh(function(c){return n(hk,function(a,b){if(0!==b[0])return 0;var +d=b[1];switch(m(ip[7],d)[0]){case +0:return Gm(a,[1,d],c);case +1:case +6:case +8:var +e=c[1];return typeof +e==="number"?(c[1]=[2,n(Kf,a,d)],0):2===e[0]?(c[1]=[2,o(fN,0,a,d,e[1])],0):0;default:return 0}},K)},q);switch(L[0]){case +2:return X(esr);case +3:return 0;default:return sh(function(d){return n(hk,function(a,b){if(0!==b[0])return 0;var +c=b[1];return 0===m(ip[7],c)[0]?Gm(a,[1,c],d):0},K)},q)}case +13:return aLn(e,p(fn,f,e,c,g2,a[1][1][2]));case +14:return m(O0(f,e,c,a[1]),ki);case +15:return m(O1(f,e,c,a[1]),ki);case +16:return m(aL0(f,e,c,a[1]),ki);case +17:var +i=a[1][1];continue;case +20:var +ab=a[1],C=ab[2],a3=ab[1],k=m(ak(c),a3);if(0!==C[0])return OS(e,k,o(jR,f,e,c,C[1]));var +T=C[1],r=T[2],U=T[1];switch(r[0]){case +2:var +D=r[1],a4=m(ak(c),U);if(!D[1])return OS(e,k,[1,[0,a4,o(Gp,f,e,c,D)]]);var +aZ=function(a,b){return Go(e,k,a,b)};return m(ab9(f,e,c,D),aZ);case +3:var +a5=r[1],a6=function(a,b){return Go(e,k,a,b)};return m(ab$(f,e,c,a5),a6);case +19:var +a7=r[1],a8=function(a,b){return Go(e,k,a,b)};return m(O5(f,e,c,a7),a8);case +26:var +s=r[1],a9=m(ak(c),U),a0=s[5],a1=s[4];if(!s[1])return OS(e,k,[1,[1,a9,a1,a0,p(sj,f,e,c,g2,s),at]]);var +a2=function(a,b){return Go(e,k,a,b)};return m(ab_(f,e,c,s),a2);default:return X(es7)}case +21:var +v=a[1],ac=v[4],ad=v[2],ae=v[1],bk=v[3];if(ae){var +j=ae[1][2];switch(j[0]){case +2:var +h=ab9(f,e,c,j[1]);break;case +3:var +h=ab$(f,e,c,j[1]);break;case +19:var +h=O5(f,e,c,j[1]);break;case +26:var +h=ab_(f,e,c,j[1]);break;case +29:var +h=O2(f,e,c,j[1]);break;case +35:var +h=O0(f,e,c,j[1]);break;case +36:var +h=O1(f,e,c,j[1]);break;case +37:var +aF=j[1],h=function(a){return Gq(f,e,c,aF,a)};break;default:var +h=X(es6)}m(h,function(a,b){return yz(e,ac,a,b)})}if(!ad)return 0;var +bl=ad[1];return m(aL4(e,c,ac,bk),bl);case +22:var +af=a[1][1][2];if(3===af[0])return es8(f,e,c,af[1]);break;case +23:var +ag=a[1],ah=ag[1],bm=ag[4];if(ah){var +ai=ah[1];if(0===ai[0]){var +bn=ai[1][2],aj=wp(e);Gq(f,aj,c,bn,ki);var +al=aj}else +var +al=e;var +am=al}else +var +am=e;var +e=am,i=bm;continue;case +24:var +an=a[1],ao=an[1],bo=an[3];if(0===ao[0]){var +bp=ao[1][2],ap=wp(e);Gq(f,ap,c,bp,ki);var +aq=ap}else +var +aq=e;var +e=aq,i=bo;continue;case +25:var +ar=a[1],as=ar[1],bq=ar[3];if(0===as[0]){var +br=as[1][2],au=wp(e);Gq(f,au,c,br,ki);var +av=au}else +var +av=e;var +e=av,i=bq;continue;case +26:return m(ab_(f,e,c,a[1]),ki);case +27:var +aw=a[1],ax=aw[3];BY(f,e,c,aw[2]);if(!ax)return 0;var +i=ax[1][2][1];continue;case +28:var +w=a[1];if(0===e[0])return 0;var +M=w[4],N=w[3],y=w[2][2][1],z=w[1];if(N){var +O=N[1][1],aB=O[2][1],aC=O[1];aLm(e,c,z,m(ak(c),aC),aB,esV,y)}if(!M)return 0;var +A=M[1];if(0===A[0]){var +aD=A[1];return fo(function(a){var +b=a[3],d=b[2][1],f=a[2],g=a[1],k=b[1],l=g?g[1]:z;if(f)var +h=f[1],j=h[2][1],i=h[1];else +var +j=d,i=k;return aLm(e,c,l,m(ak(c),i),j,d,y)},aD)}var +P=A[1][2],B=P[2][1],aE=P[1],Q=m(ak(c),aE),J=m(uP(c),y);switch(z){case +0:var +x=X(esm);break;case +1:var +x=[4,Q,B,J];break;default:var +x=[3,Q,B,J]}return aLh(e,c,B,x);case +29:return m(O2(f,e,c,a[1]),ki);case +30:var +i=a[1][2];continue;case +32:var +bs=a[1][2],bt=wp(e);return fo(function(a){var +b=a[2][2];return fo(function(a){return BY(f,bt,c,a)},b)},bs);case +34:var +G=a[1],ay=G[3],az=G[2],bu=G[1],H=function(a){return BY(f,e,c,[0,a[1],[0,a[2]]])};H(bu);if(az)H(az[1][2][2]);return ay?H(ay[1]):0;case +35:return m(O0(f,e,c,a[1]),ki);case +36:return m(O1(f,e,c,a[1]),ki);case +37:return Gq(f,e,c,a[1],ki);case +38:var +i=a[1][2];continue;case +39:return 0;case +8:case +19:return m(O5(f,e,c,a[1]),ki)}return 0}},aL5=function +d(a,b,c){return d.fun(a,b,c)},es9=function +c(a,b){return c.fun(a,b)};h(aL5,function(a,b,c){switch(c[0]){case +0:var +d=c[4],e=c[3],g=c[2],h=c[1];m(f(b),es_);n(f(b),eta,es$);m(m(a,b),h);m(f(b),etb);m(f(b),etc);n(f(b),ete,etd);m(m(f(b),etf),g);m(f(b),etg);m(f(b),eth);n(f(b),etj,eti);m(m(h9[1],b),e);m(f(b),etk);m(f(b),etl);n(f(b),etn,etm);m(m(f(b),eto),d);m(f(b),etp);return m(f(b),etq);case +1:var +i=c[4],j=c[3],k=c[2],l=c[1];m(f(b),etr);n(f(b),ett,ets);m(m(a,b),l);m(f(b),etu);m(f(b),etv);n(f(b),etx,etw);m(m(f(b),ety),k);m(f(b),etz);m(f(b),etA);n(f(b),etC,etB);m(m(h9[1],b),j);m(f(b),etD);m(f(b),etE);n(f(b),etG,etF);m(m(f(b),etH),i);m(f(b),etI);return m(f(b),etJ);case +2:var +o=c[4],p=c[3],q=c[2],r=c[1];m(f(b),etK);n(f(b),etM,etL);m(m(a,b),r);m(f(b),etN);m(f(b),etO);n(f(b),etQ,etP);m(m(f(b),etR),q);m(f(b),etS);m(f(b),etT);n(f(b),etV,etU);m(m(h9[1],b),p);m(f(b),etW);m(f(b),etX);n(f(b),etZ,etY);m(m(f(b),et0),o);m(f(b),et1);return m(f(b),et2);case +3:var +s=c[3],t=c[2],u=c[1];m(f(b),et3);n(f(b),et5,et4);m(m(a,b),u);m(f(b),et6);m(f(b),et7);n(f(b),et9,et8);m(m(f(b),et_),t);m(f(b),et$);m(f(b),eua);n(f(b),euc,eub);m(m(h9[1],b),s);m(f(b),eud);return m(f(b),eue);default:var +v=c[3],w=c[2],x=c[1];m(f(b),euf);n(f(b),euh,eug);m(m(a,b),x);m(f(b),eui);m(f(b),euj);n(f(b),eul,euk);m(m(f(b),eum),w);m(f(b),eun);m(f(b),euo);n(f(b),euq,eup);m(m(h9[1],b),v);m(f(b),eur);return m(f(b),eus)}});h(es9,function(a,b){var +c=m(aL5,a);return n(z(eut),c,b)});var +O6=function(a,b){switch(b[0]){case +0:var +c=b[2];return[0,m(a,b[1]),c];case +1:var +d=b[2];return[1,m(a,b[1]),d];default:var +e=b[2];return[2,m(a,b[1]),e]}},BZ=function +d(a,b,c){return d.fun(a,b,c)},euu=function +c(a,b){return c.fun(a,b)};h(BZ,function(a,b,c){switch(c[0]){case +0:var +d=c[2],e=c[1];m(f(b),euv);n(f(b),eux,euw);m(m(a,b),e);m(f(b),euy);m(f(b),euz);n(f(b),euB,euA);m(m(ip[1],b),d);m(f(b),euC);return m(f(b),euD);case +1:var +g=c[2],h=c[1];m(f(b),euE);n(f(b),euG,euF);m(m(a,b),h);m(f(b),euH);m(f(b),euI);n(f(b),euK,euJ);m(m(l1[1],b),g);m(f(b),euL);return m(f(b),euM);default:var +i=c[2],j=c[1];m(f(b),euN);n(f(b),euP,euO);m(m(a,b),j);m(f(b),euQ);m(f(b),euR);n(f(b),euT,euS);m(m(f(b),euU),i);m(f(b),euV);return m(f(b),euW)}});h(euu,function(a,b){var +c=m(BZ,a);return n(z(euX),c,b)});var +aca=function(a,b){if(0===b[0])return[0,O6(a,b[1])];var +c=b[3],d=b[2],e=b[1],g=aca(a,b[4]),f=m(a,d);return[1,m(a,e),f,c,g]},Gr=function +d(a,b,c){return d.fun(a,b,c)},euY=function +c(a,b){return c.fun(a,b)};h(Gr,function(d,b,c){if(0===c[0]){var +a=c[1];m(f(b),euZ);m(n(BZ,function(a){return m(d,a)},b),a);return m(f(b),eu0)}var +e=c[4],g=c[3],h=c[2],i=c[1];m(f(b),eu1);n(f(b),eu3,eu2);m(m(d,b),i);m(f(b),eu4);m(f(b),eu5);n(f(b),eu7,eu6);m(m(d,b),h);m(f(b),eu8);m(f(b),eu9);n(f(b),eu$,eu_);m(m(f(b),eva),g);m(f(b),evb);m(f(b),evc);n(f(b),eve,evd);m(n(Gr,function(a){return m(d,a)},b),e);m(f(b),evf);return m(f(b),evg)});h(euY,function(a,b){var +c=m(Gr,a);return n(z(evh),c,b)});var +uR=function(c,b){switch(b[0]){case +0:var +a=b[1];return[0,aLe(c,function(a){return uR(c,a)},a)];case +1:var +d=b[1];return[1,aLd(c,function(a){return uR(c,a)},d)];case +2:return[2,O6(c,b[1])];case +3:return[3,aca(c,b[1])];case +4:var +e=b[3],f=b[2],g=b[1],q=fx(function(a){return uR(c,a)},e),p=aca(c,f);return[4,m(c,g),p,q];case +5:return[5,m(c,b[1])];case +6:return[6,b[1]];case +7:return[7,m(c,b[1])];case +8:var +h=b[3],i=b[2],j=b[1],s=abI(function(a){return uR(c,a)},h),r=uR(c,i);return[8,m(c,j),r,s];case +9:var +k=b[2];return[9,m(c,b[1]),k];case +10:var +l=b[2];return[10,m(c,b[1]),l];default:var +n=b[3],o=b[2];return[11,m(c,b[1]),o,n]}},tv=function +d(a,b,c){return d.fun(a,b,c)},acb=function +c(a,b){return c.fun(a,b)},acc=function +c(a,b){return c.fun(a,b)},evi=function +c(a,b){return c.fun(a,b)},evj=function +c(a,b){return c.fun(a,b)},evk=function +c(a,b){return c.fun(a,b)};h(tv,function(e,d,c){switch(c[0]){case +0:var +a=c[1];m(f(d),evl);m(n(acc,function(a){return m(e,a)},d),a);return m(f(d),evm);case +1:var +b=c[1];m(f(d),evn);m(n(acb,function(a){return m(e,a)},d),b);return m(f(d),evo);case +2:var +g=c[1];m(f(d),evp);m(n(BZ,function(a){return m(e,a)},d),g);return m(f(d),evq);case +3:var +h=c[1];m(f(d),evr);m(n(Gr,function(a){return m(e,a)},d),h);return m(f(d),evs);case +4:var +i=c[3],j=c[2],k=c[1];m(f(d),evt);n(f(d),evv,evu);m(m(e,d),k);m(f(d),evw);m(f(d),evx);n(f(d),evz,evy);m(n(Gr,function(a){return m(e,a)},d),j);m(f(d),evA);m(f(d),evB);n(f(d),evD,evC);m(f(d),evE);var +l=0;M(function(a,b){if(a)m(f(d),evF);m(n(tv,function(a){return m(e,a)},d),b);return 1},l,i);m(f(d),evG);m(f(d),evH);return m(f(d),evI);case +5:var +o=c[1];m(f(d),evJ);m(m(e,d),o);return m(f(d),evK);case +6:var +p=c[1];m(f(d),evL);m(m(i9[1],d),p);return m(f(d),evM);case +7:var +q=c[1];m(f(d),evN);m(m(e,d),q);return m(f(d),evO);case +8:var +r=c[3],s=c[2],t=c[1];m(f(d),evP);m(m(e,d),t);m(f(d),evQ);m(n(tv,function(a){return m(e,a)},d),s);m(f(d),evR);m(n(abJ,function(a){return n(tv,function(a){return m(e,a)},a)},d),r);return m(f(d),evS);case +9:var +u=c[2],v=c[1];m(f(d),evT);n(f(d),evV,evU);m(m(e,d),v);m(f(d),evW);m(f(d),evX);n(f(d),evZ,evY);m(m(h9[1],d),u);m(f(d),ev0);return m(f(d),ev1);case +10:var +w=c[2],x=c[1];m(f(d),ev2);n(f(d),ev4,ev3);m(m(e,d),x);m(f(d),ev5);m(f(d),ev6);n(f(d),ev8,ev7);m(m(h9[1],d),w);m(f(d),ev9);return m(f(d),ev_);default:var +y=c[3],z=c[2],A=c[1];m(f(d),ev$);n(f(d),ewb,ewa);m(m(e,d),A);m(f(d),ewc);m(f(d),ewd);n(f(d),ewf,ewe);m(m(h9[1],d),z);m(f(d),ewg);m(f(d),ewh);n(f(d),ewj,ewi);m(m(f(d),ewk),y);m(f(d),ewl);return m(f(d),ewm)}});h(evi,function(a,b){var +c=m(tv,a);return n(z(ewn),c,b)});h(acb,function(c,b){function +a(a){return n(tv,function(a){return m(c,a)},a)}return l(abF,function(a){return m(c,a)},a,b)});h(evj,function(a,b){var +c=m(acb,a);return n(z(ewo),c,b)});h(acc,function(c,b){function +a(a){return n(tv,function(a){return m(c,a)},a)}return l(abH,function(a){return m(c,a)},a,b)});h(evk,function(a,b){var +c=m(acc,a);return n(z(ewp),c,b)});var +aL6=function +c(a,b){return c.fun(a,b)},ewq=function +c(a,b){return c.fun(a,b)};h(aL6,function(c,b){function +a(a){return n(tv,function(a){return m(c,a)},a)}return l(abE,function(a){return m(c,a)},a,b)});h(ewq,function(a,b){var +c=m(aL6,a);return n(z(ewr),c,b)});var +acd=function +d(a,b,c){return d.fun(a,b,c)},ews=function +c(a,b){return c.fun(a,b)};h(acd,function(d,b,c){switch(c[0]){case +0:var +a=c[1];m(f(b),ewt);m(n(BZ,function(a){return m(d,a)},b),a);return m(f(b),ewu);case +1:var +e=c[1];m(f(b),ewv);m(m(ip[1],b),e);return m(f(b),eww);case +2:var +g=c[2],h=c[1];m(f(b),ewx);n(f(b),ewz,ewy);m(m(d,b),h);m(f(b),ewA);m(f(b),ewB);n(f(b),ewD,ewC);m(n(tv,function(a){return m(d,a)},b),g);m(f(b),ewE);return m(f(b),ewF);case +3:var +i=c[2],j=c[1];m(f(b),ewG);n(f(b),ewI,ewH);m(m(d,b),j);m(f(b),ewJ);m(f(b),ewK);n(f(b),ewM,ewL);m(m(ip[1],b),i);m(f(b),ewN);return m(f(b),ewO);default:var +k=c[1];m(f(b),ewP);m(m(l1[1],b),k);return m(f(b),ewQ)}});h(ews,function(a,b){var +c=m(acd,a);return n(z(ewR),c,b)});var +O7=function +d(a,b,c){return d.fun(a,b,c)},ewS=function +c(a,b){return c.fun(a,b)};h(O7,function(d,b,c){switch(c[0]){case +0:var +a=c[1];m(f(b),ewT);m(n(BZ,function(a){return m(d,a)},b),a);return m(f(b),ewU);case +1:var +e=c[1];m(f(b),ewV);m(m(ip[1],b),e);return m(f(b),ewW);default:var +g=c[1];m(f(b),ewX);m(m(l1[1],b),g);return m(f(b),ewY)}});h(ewS,function(a,b){var +c=m(O7,a);return n(z(ewZ),c,b)});var +ace=function +d(a,b,c){return d.fun(a,b,c)},ew0=function +c(a,b){return c.fun(a,b)};h(ace,function(e,d,c){var +a=c[4],b=c[3],g=c[2],h=c[1];m(f(d),ew1);n(f(d),ew3,ew2);m(f(d),ew4);var +j=0;xH(function(a,b){if(a)m(f(d),ew5);m(m(f(d),ew6),b);return 1},j,h);m(f(d),ew7);m(f(d),ew8);m(f(d),ew9);n(f(d),ew$,ew_);m(f(d),exa);var +k=0;M(function(a,b){if(a)m(f(d),exb);var +c=b[2],g=b[1];m(f(d),exc);m(m(e,d),g);m(f(d),exd);m(m(h9[1],d),c);m(f(d),exe);return 1},k,g);m(f(d),exf);m(f(d),exg);m(f(d),exh);n(f(d),exj,exi);m(m(f(d),exk),b);m(f(d),exl);m(f(d),exm);n(f(d),exo,exn);if(a){var +l=a[1];i(d,exp);m(m(NS,d),l);i(d,exq)}else +i(d,exr);m(f(d),exs);return m(f(d),ext)});h(ew0,function(a,b){var +c=m(ace,a);return n(z(exu),c,b)});var +acf=function +d(a,b,c){return d.fun(a,b,c)},exv=function +c(a,b){return c.fun(a,b)};h(acf,function(e,d,c){var +a=c[6],b=c[5],g=c[4],h=c[3],j=c[2],k=c[1];m(f(d),exw);n(f(d),exy,exx);m(f(d),exz);var +l=0;xH(function(a,b){if(a)m(f(d),exA);m(m(f(d),exB),b);return 1},l,k);m(f(d),exC);m(f(d),exD);m(f(d),exE);n(f(d),exG,exF);m(f(d),exH);var +o=0;M(function(a,b){if(a)m(f(d),exI);var +c=b[2],g=b[1];m(f(d),exJ);m(m(e,d),g);m(f(d),exK);m(m(h9[1],d),c);m(f(d),exL);return 1},o,j);m(f(d),exM);m(f(d),exN);m(f(d),exO);n(f(d),exQ,exP);m(f(d),exR);var +p=0;xH(function(a,b){if(a)m(f(d),exS);m(m(f(d),exT),b);return 1},p,h);m(f(d),exU);m(f(d),exV);m(f(d),exW);n(f(d),exY,exX);m(f(d),exZ);var +q=0;M(function(a,b){if(a)m(f(d),ex0);var +c=b[2],g=b[1];m(f(d),ex1);m(m(e,d),g);m(f(d),ex2);m(m(h9[1],d),c);m(f(d),ex3);return 1},q,g);m(f(d),ex4);m(f(d),ex5);m(f(d),ex6);n(f(d),ex8,ex7);m(m(f(d),ex9),b);m(f(d),ex_);m(f(d),ex$);n(f(d),eyb,eya);if(a){var +r=a[1];i(d,eyc);m(m(NS,d),r);i(d,eyd)}else +i(d,eye);m(f(d),eyf);return m(f(d),eyg)});h(exv,function(a,b){var +c=m(acf,a);return n(z(eyh),c,b)});var +aL7=function +d(a,b,c){return d.fun(a,b,c)},eyi=function +c(a,b){return c.fun(a,b)};h(aL7,function(e,d,c){if(0!==c[0]){var +k=c[3],l=c[2],o=c[1];m(f(d),eyC);n(f(d),eyE,eyD);m(f(d),eyF);var +p=0;xH(function(a,b){if(a)m(f(d),eyG);m(n(O7,function(a){return m(e,a)},d),b);return 1},p,o);m(f(d),eyH);m(f(d),eyI);m(f(d),eyJ);n(f(d),eyL,eyK);m(f(d),eyM);var +q=0;xH(function(a,b){if(a)m(f(d),eyN);m(n(acd,function(a){return m(e,a)},d),b);return 1},q,l);m(f(d),eyO);m(f(d),eyP);m(f(d),eyQ);n(f(d),eyS,eyR);m(n(acf,function(a){return m(e,a)},d),k);m(f(d),eyT);return m(f(d),eyU)}var +a=c[2],b=c[3],g=c[1];m(f(d),eyj);n(f(d),eyl,eyk);m(f(d),eym);var +h=0;xH(function(a,b){if(a)m(f(d),eyn);m(n(O7,function(a){return m(e,a)},d),b);return 1},h,g);m(f(d),eyo);m(f(d),eyp);m(f(d),eyq);n(f(d),eys,eyr);if(a){var +j=a[1];i(d,eyt);m(n(tv,function(a){return m(e,a)},d),j);i(d,eyu)}else +i(d,eyv);m(f(d),eyw);m(f(d),eyx);n(f(d),eyz,eyy);m(n(ace,function(a){return m(e,a)},d),b);m(f(d),eyA);return m(f(d),eyB)});h(eyi,function(a,b){var +c=m(aL7,a);return n(z(eyV),c,b)});var +aL8=function +d(a,b,c){return d.fun(a,b,c)},eyW=function +c(a,b){return c.fun(a,b)};h(aL8,function(a,d,c){switch(c[0]){case +0:var +b=c[1];m(f(d),eyX);m(m(qO[1],d),b);return m(f(d),eyY);case +1:var +e=c[3],g=c[2],h=c[1];m(f(d),eyZ);n(f(d),ey1,ey0);m(m(a,d),h);m(f(d),ey2);m(f(d),ey3);n(f(d),ey5,ey4);m(m(f(d),ey6),g);m(f(d),ey7);m(f(d),ey8);n(f(d),ey_,ey9);m(m(i9[1],d),e);m(f(d),ey$);return m(f(d),eza);case +2:var +i=c[2],j=c[1];m(f(d),ezb);n(f(d),ezd,ezc);m(m(qO[1],d),j);m(f(d),eze);m(f(d),ezf);n(f(d),ezh,ezg);m(m(i9[1],d),i);m(f(d),ezi);return m(f(d),ezj);case +3:var +k=c[1];m(f(d),ezk);m(m(a,d),k);return m(f(d),ezl);case +4:var +l=c[3],o=c[2],p=c[1];m(f(d),ezm);n(f(d),ezo,ezn);m(m(a,d),p);m(f(d),ezp);m(f(d),ezq);n(f(d),ezs,ezr);m(f(d),ezt);var +q=0;M(function(a,b){if(a)m(f(d),ezu);m(m(f(d),ezv),b);return 1},q,o);m(f(d),ezw);m(f(d),ezx);m(f(d),ezy);n(f(d),ezA,ezz);m(m(i9[1],d),l);m(f(d),ezB);return m(f(d),ezC);case +5:var +r=c[3],s=c[2],t=c[1];m(f(d),ezD);n(f(d),ezF,ezE);m(m(a,d),t);m(f(d),ezG);m(f(d),ezH);n(f(d),ezJ,ezI);m(m(f(d),ezK),s);m(f(d),ezL);m(f(d),ezM);n(f(d),ezO,ezN);m(m(i9[1],d),r);m(f(d),ezP);return m(f(d),ezQ);default:var +u=c[3],v=c[2],w=c[1];m(f(d),ezR);n(f(d),ezT,ezS);m(m(a,d),w);m(f(d),ezU);m(f(d),ezV);n(f(d),ezX,ezW);m(m(f(d),ezY),v);m(f(d),ezZ);m(f(d),ez0);n(f(d),ez2,ez1);m(m(i9[1],d),u);m(f(d),ez3);return m(f(d),ez4)}});h(eyW,function(a,b){var +c=m(aL8,a);return n(z(ez5),c,b)});var +aL9=function(c,b){var +a=vH(m(axc,b)),d=pV(function(a){return a[1]},a);return[0,d,pV(function(a){return m(c,a[2])},a)]},gD=function(a){return m(sg[11],a)},aL_=function(a){var +b=a[1],c=m(h9[11],a[2]);return[0,gD(b),c]},l2=function(c,b){switch(b[0]){case +0:var +d=b[1];return[0,aLe(gD,function(a){return l2(c,a)},d)];case +1:var +e=b[1];return[1,aLd(gD,function(a){return l2(c,a)},e)];case +2:return[3,acg(c,b[1])];case +3:var +f=b[3],g=b[2],w=gD(b[1]),x=acg(c,g);return[4,w,x,fx(function(a){return l2(c,a)},f)];case +4:return[5,gD(b[1])];case +5:return[2,Gs(b[1])];case +6:var +a=b[2],h=gD(b[1]),i=a?[0,aIq(gD,a[1])]:0;c[1]=[0,i,c[1]];return[7,h];case +7:var +j=b[2];return[3,[0,[2,gD(b[1]),j]]];case +8:return[6,m(i9[11],b[1])];case +9:var +k=b[3],l=b[2],n=b[1],y=abI(function(a){return l2(c,a)},k),o=l2(c,l);return[8,gD(n),o,y];case +10:var +p=b[2],q=gD(b[1]);return[9,q,m(h9[11],p)];case +11:var +r=b[2],s=gD(b[1]);return[10,s,m(h9[11],r)];default:var +t=b[3],u=b[2],v=gD(b[1]);return[11,v,m(h9[11],u),t]}},acg=function(a,b){if(0===b[0])return[0,Gs(b[1])];var +c=b[4],d=b[3],e=b[2],f=gD(b[1]),g=gD(e);return[1,f,g,d,acg(a,c)]},Gs=function(a){var +d=a[4],e=a[2],b=gD(a[1]);if(!d)return[2,b,e];var +c=d[1];return 0===c[0]?[0,b,m(ip[11],c[1])]:[1,b,m(l1[11],c[1])]},ez6=function(a){switch(a[0]){case +0:var +b=a[4],c=a[3],d=a[2],e=gD(a[1]);return[0,e,d,m(h9[11],c),b];case +1:var +f=a[4],g=a[3],h=a[2],i=gD(a[1]);return[1,i,h,m(h9[11],g),f];case +2:var +j=a[4],k=a[3],l=a[2],n=gD(a[1]);return[2,n,l,m(h9[11],k),j];case +3:var +o=a[3],p=a[2],q=gD(a[1]);return[4,q,p,m(h9[11],o)];default:var +r=a[3],s=a[2],t=gD(a[1]);return[3,t,s,m(h9[11],r)]}},ez7=function(a){switch(a[0]){case +0:var +b=a[1],c=ai(b),d=ah===c?b[1]:O===c?aq(b):b;return[0,m(qO[11],d)];case +1:var +e=a[3],f=a[1],g=gD(a[2]);return[1,g,e,m(i9[11],f)];case +2:var +h=a[1],i=m(qO[11],a[2]);return[2,i,m(i9[11],h)];case +3:return[3,gD(a[1])];case +4:var +j=a[3],k=a[1],l=gD(a[2]);return[4,l,j,m(i9[11],k)];case +5:var +n=a[3],o=a[1],p=gD(a[2]);return[5,p,n,m(i9[11],o)];default:var +q=a[3],r=a[1],s=gD(a[2]);return[6,s,q,m(i9[11],r)]}},ez8=function(a){switch(a[0]){case +0:return[0,Gs(a[1])];case +1:return[1,m(ip[11],a[1])];default:return[2,m(l1[11],a[1])]}},ach=function(c,b){return uO(gD,function(a){return l2(c,a)},b)},ez9=function(a){return 0===a[0]?m(ip[11],a[1]):X(ez_)},aL$=function(a){return 0},tw=function(a,b,c){var +d=[0,0];l(b,a,function(b){var +c=d[1],e=c||p0(a,function(a){return A1(b,a)});d[1]=e;return 0},c);return d[1]},aci=function(a,b){m(a,b);return 0},gZ=function(a,b){m(a,m(sg[7],b));return n(sg[9],b,aL$)},acj=function(a){return n(h9[9],a,aL$)},Gu=function(a,b,c){var +f=c[3],g=c[2];gZ(b,c[1]);var +d=Gn(f,g);if(d){var +e=d[1][1];aMb(a,e);c[4]=[0,e];return 0}c[4]=0;return 0},aMa=function(a,b,c){var +d=c;for(;;){if(0===d[0])return Gu(a,b,d[1]);var +e=d[4],f=d[2];gZ(b,d[1]);gZ(b,f);var +d=e}},lv=function(g,b,c){switch(c[0]){case +0:var +E=c[1],L=function(a){return lv(g,b,a)};return ejW(function(a){return gZ(b,a)},L,E);case +1:var +a=c[1],e=function(a){return lv(g,b,a)},d=function(a){return gZ(b,a)};switch(a[0]){case +0:var +u=a[2];d(a[1]);return abB(d,e,u);case +1:var +v=a[5],w=a[4];d(a[1]);uN(d,e,w);return m(pA(function(a){var +b=a[2];d(a[1]);return e(b)}),v);case +2:return d(a[1]);case +3:d(a[1]);return 0;case +4:return d(a[1]);case +5:return d(a[1]);case +6:d(a[1]);return 0;case +7:return d(a[1]);case +8:d(a[1]);return 0;case +9:return d(a[1]);case +10:d(a[1]);return 0;case +11:return d(a[1]);case +12:var +x=a[3];d(a[1]);return m(pA(function(a){return BR(d,e,a)}),x);case +13:var +j=a[3],y=a[4];d(a[1]);if(j){var +k=j[1],z=k[2];d(k[1]);e(z)}return m(pA(function(a){return BR(d,e,a)}),y);case +14:var +l=a[3],A=a[4];d(a[1]);if(l){var +o=l[1],B=o[2];d(o[1]);e(B)}return p6(function(a){if(0===a[0])return e(a[1]);var +b=a[1];return m(pA(function(a){return BR(d,e,a)}),b)},A);default:var +C=a[3],D=a[2];d(a[1]);e(D);return m(OD(e),C)}case +2:return aMa(g,b,c[1]);case +3:var +F=c[3],G=c[2];gZ(b,c[1]);aMa(g,b,G);return fo(function(a){return lv(g,b,a)},F);case +4:return gZ(b,c[1]);case +5:return Gu(g,b,c[1]);case +6:var +p=c[1],q=c[2];if(!q)return gZ(b,p);var +f=q[1],h=function(a){return gZ(b,a)};switch(f[0]){case +0:h(f[1]);break;case +1:var +s=f[2];h(f[1]);h(s);break;case +2:var +t=f[2];h(f[1]);h(t);break;case +3:h(f[1]);break;case +4:h(f[1]);break;case +5:h(f[1]);break;default:h(f[1])}return gZ(b,p);case +7:return gZ(b,c[1]);case +8:var +H=c[1],I=function(a){return tw(g,acl,a)};return n(i9[9],H,I);case +9:var +i=c[3],J=c[2];gZ(b,c[1]);lv(g,b,J);var +r=function(a){return lv(g,b,a)};if(typeof +i==="number")return 0;switch(i[0]){case +0:return r(i[2]);case +1:return 0;case +2:return r(i[1]);default:return 0}default:var +K=c[2];gZ(b,c[1]);return acj(K)}},aMb=function(c,b){if(0===b[0]){var +a=b[1],d=function(a){return tw(c,Gt,a)};return n(ip[9],a,d)}var +e=b[1];function +f(a){return aci(ack,a)}return n(l1[9],e,f)},Gt=function(f,d,c){switch(c[0]){case +0:var +g=c[2],s=ai(g),a=ah===s?g[1]:O===s?aq(g):g,e=function(a){return lv(f,d,a)},b=function(a){return gZ(d,a)};switch(a[0]){case +0:var +C=a[4],D=a[3];b(a[1]);wl(b,e,D);return e(C);case +1:var +q=a[5],r=a[4],E=a[3];b(a[1]);wl(b,e,E);if(r)e(r[1]);return q?e(q[1]):0;case +2:var +F=a[4],G=a[3];b(a[1]);wl(b,e,G);return aLa(b,e,F);case +3:var +H=a[3];b(a[1]);return abB(b,e,H);case +4:var +I=a[3];b(a[1]);return aK_(b,e,I);case +5:var +J=a[7],K=a[6],L=a[5];b(a[1]);b(L);uN(b,e,K);return m(pA(function(a){var +c=a[2];b(a[1]);return e(c)}),J);case +6:var +M=a[5],N=a[4],P=a[3];b(a[1]);b(P);uN(b,e,N);return fo(function(a){var +c=a[3],d=a[2];b(a[1]);b(d);return uN(b,e,c)},M);case +7:var +Q=a[4],R=a[3];b(a[1]);b(R);return abs(b,e,Q);case +8:b(a[1]);return 0;case +9:var +S=a[3];b(a[1]);return e(S);case +10:var +T=a[4];b(a[1]);m(pA(b),T);return 0;default:b(a[1]);return 0}case +3:var +V=c[3];gZ(d,c[1]);return Gu(f,d,V);case +4:var +i=c[6],W=c[7],X=c[3];gZ(d,c[1]);gZ(d,X);var +u=ai(i),Y=ah===u?i[1]:O===u?aq(i):i;acm(f,d,Y);return n(hk,function(a,b){var +c=b[2];gZ(d,b[1]);return lv(f,d,c)},W);case +5:var +j=c[3];gZ(d,c[1]);var +v=ai(j),Z=ah===v?j[1]:O===v?aq(j):j,ak=function(a){return lv(f,d,a)};return abB(function(a){return gZ(d,a)},ak,Z);case +6:var +k=c[3];gZ(d,c[1]);var +w=ai(k),_=ah===w?k[1]:O===w?aq(k):k,al=function(a){return lv(f,d,a)};return aK_(function(a){return gZ(d,a)},al,_);case +7:var +l=c[6],$=c[7],aa=c[5];gZ(d,c[1]);gZ(d,aa);var +x=ai(l),ab=ah===x?l[1]:O===x?aq(l):l;acm(f,d,ab);return n(hk,function(a,b){var +c=b[2];gZ(d,b[1]);return lv(f,d,c)},$);case +8:var +ac=c[2];return p6(function(a){var +b=a[3],e=a[2];gZ(d,a[1]);gZ(d,e);var +c=ai(b),g=ah===c?b[1]:O===c?aq(b):b;return acm(f,d,g)},ac);case +9:var +y=c[4],ad=c[3];gZ(d,c[1]);if(!y)return 0;var +o=y[1],z=ai(o),ae=ah===z?o[1]:O===z?aq(o):o;gZ(d,ad);var +aj=function(a){return lv(f,d,a)};return abs(function(a){return gZ(d,a)},aj,ae);case +10:var +A=c[3];gZ(d,c[1]);if(!A)return 0;var +p=A[1],B=ai(p),af=ah===B?p[1]:O===B?aq(p):p,ag=af[2];return n(hk,function(a){return function(a){return gZ(d,a)}},ag);default:var +h=c[3];gZ(d,c[1]);var +t=ai(h),U=ah===t?h[1]:O===t?aq(h):h;return lv(f,d,U)}},ack=function(a){var +b=a[1],c=a[3];gZ(function(a){return 0},b);return acj(c)},acl=function(d,b,c){switch(c[0]){case +0:var +a=c[1],f=function(a){return tw(d,lv,a)},e=ai(a),g=ah===e?a[1]:O===e?aq(a):a;return n(qO[9],g,f);case +2:var +j=c[2],k=c[1],l=function(a){return tw(d,acl,a)};n(i9[9],k,l);var +m=function(a){return tw(d,lv,a)};return n(qO[9],j,m);case +3:return gZ(b,c[1]);default:var +h=c[1];gZ(b,c[2]);var +i=function(a){return tw(d,acl,a)};return n(i9[9],h,i)}},acm=function(d,b,c){function +a(a){return lv(d,b,a)}return uN(function(a){return gZ(b,a)},a,c)},aMc=function(a){var +b=a[2],c=a[1];gZ(function(a){return 0},c);return acj(b)},ez$=Ef([0,VC]),JC=function(a){return a?a[4]:0},s5=function(a,b,c){var +d=a?a[4]:0,e=c?c[4]:0,f=e<=d?d+1|0:e+1|0;return[0,a,b,c,f]},aul=function(a,b,c){var +f=a?a[4]:0,g=c?c[4]:0;if((g+2|0)=g){var +t=g<=f?f+1|0:g+1|0;return[0,a,b,c,t]}if(!c)return gv(a6f);var +i=c[3],k=c[2],e=c[1],p=JC(e);if(p<=JC(i))return s5(s5(a,b,e),k,i);if(!e)return gv(a6e);var +q=e[2],r=e[1],s=s5(e[3],k,i);return s5(s5(a,b,r),q,s)},VI=function(a,b){if(!b)return[0,0,a,0,1];var +c=b[3],d=b[2],e=b[1],f=aQ(a,d);if(0===f)return b;if(0<=f){var +g=VI(a,c);return c===g?b:aul(e,d,g)}var +h=VI(a,e);return e===h?b:aul(h,d,c)},a6g=0,eAc=[fy,eAb,ge(0)],aMd=function(a,b){var +c=aY(a,eAe,function(a){return[0,[0,[0,0,0,a6g,eAa,ez$[1]]],[0,a[1]]]}),d=c[2],e=c[1];return[0,g4(gx),e,eAf,0,d]},aMe=function(a,b){return[0,b[1],b[2],b[3],[0,a,b[4]],b[5]]},aMf=function(a){var +b=mo(a[4]);return[0,a[1],a[2],a[3],b,a[5]]},aMg=function(a,b,c){try{var +e=aMg(a+1|0,Vz(c,b,10)+1|0,c);return e}catch(f){var +d=fk(f);if(d===gf)return[0,a,Z(c)-b|0];throw B(d,0)}},O8=function(k,b,c){f6(c[1],b);function +l(a){var +f=c[4];if(!f)return a;var +b=f[1],g=b[1],l=g?g[1][1]:eAg,h=[0,l,[0,b[2][1],b[2][2]],k],d=h[3],m=c[3],i=d?VI(d[1],a[3]):a[3],e=a[4],j=[0,[0,h],m];if(0===e[0])return[0,a[1],a[2],i,[0,[0,j,e[1]]],a[5]];throw B([0,eAc,eAd],1)}var +m=S(c[2],l),f=c[3],g=f[2],h=f[1],a=aMg(0,0,b),d=a[2],e=a[1],i=h+e|0,j=0>>0){if(3>=d+UV>>>0)c=1}else if(1!==d)c=1}else +if(37<=b){if(9>>0)c=1}else if(1>=b+akn>>>0)c=1;var +e=c?1:0;if(e)return 1}return 0},aco=function(a){var +d=0,b=a;for(;;){if(!b)return gm(U(d));var +c=b[1];if(typeof +c==="number"&&c){var +b=b[2];continue}var +e=b[2];if(!e){var +d=[0,c,d],b=0;continue}var +f=e[1];if(typeof +f==="number"&&f){var +b=[0,c,e[2]];continue}var +i=e[2],j=aMo(acn(847656566,c)),h=0,k=aMo(acn(afO,f));if(!j&&!k){var +g=jS;h=1}if(!h)var +g=j_;var +d=[0,g,[0,c,d]],b=[0,f,i]}},aMp=function(a,b){var +c=a?a[1]:0;return c?Gv([0,aMn([0,eAj],eAq,[0,b,0]),0]):Gv([0,eAs,[0,b,eAr]])};gP(eAp,function(d){var +f=fK(d,eAt),a=fR(d,eAo)[vu],g=fG(d,0,0,eAn,vV,1)[1];s6(d,a,function(a,b,c){a[1+f][1]=1;return c});return function(a,b,c){var +e=fp(b,d);e[1+f]=c;m(g,e);return fH(b,e,d)}});var +aMq=function(a,b){var +f=eAu,c=Z(b)-1|0;for(;;){var +d=f[2],e=f[1];if(0<=c){var +i=fl(b,c),l=34===i?[0,e+1|0,d]:39===i?[0,e,d+1|0]:[0,e,d],f=l,c=c-1|0;continue}var +j=[0,eAv,e],k=[0,eAw,d];if(a)var +h=j,g=k;else +var +h=k,g=j;return h[2]e){iM(b,e);return b}if(la>e){m(El(b,eAB),e);return b}if(Dt<=e){var +f=e-65536|0;m(El(b,eAy),a1w|f>>>10|0);m(El(b,eAz),56320|f&a1E);return b}m(El(b,eAA),e);return b}var +k=0,l=0,g=[0,0,h],f=aws(l,k,function(a,b,c){var +d=a[2],e=a[1],f=[0,[0,b,c]];if(e)var +g=e[1],h=i(f,d,g[1],g[2]);else +var +h=d;return[0,f,h]},g,b),a=f[2],c=f[1];if(c)var +d=c[1],e=i(0,a,d[1],d[2]);else +var +e=a;return h0(e)},aMs=function(a,b,c){var +i=a,h=b,e=c;for(;;){if(0>i)return 0;if(!e){if(!h)return 1;var +e=h,h=0;continue}var +g=e[2],j=e[1],d=j[2],f=j[1];if(typeof +d==="number"){if(0===d)return f?0:1;var +e=g;continue}switch(d[0]){case +0:var +e=[0,[0,f,d[2]],g];continue;case +3:var +k=d[1];if(k[1])return 0;var +l=1-k[2][1],p=d[2],m=l?0===f?1:0:l;if(m)return m;var +e=[0,[0,f,[1,p]],g];continue;case +4:var +e=[0,[0,f,d[1]],g];continue;case +5:var +n=d[1];break;case +6:var +n=d[2];break;case +7:var +e=[0,[0,f,d[1]],g];continue;case +8:var +q=d[2],r=d[1],s=f?q:r,e=[0,[0,f,s],g];continue;default:var +o=d[1],e=hh(xO(o,function(b){return function(a){return[0,b,a]}}(f)),g);continue}var +i=i-Z(n)|0,e=g}},O9=function(a,b){return[0,aMj(a,aMi(b[1])),a]},aMt=function(a,b,c){var +e=b,d=c;for(;;){if(!d)return e;var +f=d[2],e=l(a,e,f,d[1]),d=f}},O_=function(a,b,c,d){var +g=a,f=d;for(;;){var +e=f[2],h=f[1];if(typeof +e==="number")return 0===e?O9(g,b):b;switch(e[0]){case +0:var +r=e[2],s=aMe(e[1],b[1]),k=O_(g,[0,s,b[2]],c,[0,h,r]),t=aMf(k[1]);return[0,t,k[2]];case +1:var +u=e[1],v=K(u,function(a){return[0,h,a]});return aMt(function(a,b,c){return O_(g,a,b,c)},b,v);case +2:var +w=e[1],x=aMs(80-b[2]|0,c,[0,[0,1,e],0])?1:0,f=[0,x,[1,w]];continue;case +3:var +i=e[1];if(i[1]){var +l=e[2],m=i[2],j=g+i[3]|0,y=m[2],z=m[1]?b:O9(j,b),A=K(l,function(a){return[0,h,a]}),B=[0,z,fA(l)-1|0],n=aMt(function(a,b,c){var +d=a[2],e=O_(j,a[1],b,c);return 0w)return eP$;var +c=w-1|0;if(typeof +b==="number")switch(b){case +0:return ePC;case +1:return ePD;case +2:return ePE;default:return ePF}switch(b[0]){case +0:var +Y=b[2];return m(k(ePG),Y);case +1:return aM0(c,b[1]);case +2:var +g=b[1];if(typeof +g==="number")switch(g){case +0:var +e=eOk;break;case +1:var +e=eOl;break;default:var +e=eOm}else +switch(g[0]){case +0:var +e=eOn;break;case +1:var +t=g[1],G=t?t[1]?eN5:eN6:eN7,e=m(k(eOo),G);break;default:switch(g[1]){case +0:var +d=eN8;break;case +1:var +d=eN9;break;case +2:var +d=eN_;break;case +3:var +d=eN$;break;case +4:var +d=eOa;break;case +5:var +d=eOb;break;case +6:var +d=eOc;break;case +7:var +d=eOd;break;case +8:var +d=eOe;break;case +9:var +d=eOf;break;case +10:var +d=eOg;break;case +11:var +d=eOh;break;case +12:var +d=eOi;break;default:var +d=eOj}var +e=m(k(eOp),d)}return m(k(ePH),e);case +3:var +q=b[1];if(typeof +q==="number")var +x=q?eOt:eOu;else{var +i=q[1];if(typeof +i==="number")var +j=eOq;else if(0===i[0])var +j=eOr;else +var +H=i[1],j=m(k(eOs),H);var +x=m(k(eOv),j)}return m(k(ePI),x);case +4:var +y=b[1];if(!y)return ePK;var +Z=y[1];return m(k(ePJ),Z);case +5:var +z=b[1];if(!z)return ePM;var +_=fI(z[1]);return m(k(ePL),_);case +6:var +A=b[1];if(!A)return ePO;var +$=A[1];return m(k(ePN),$);case +7:var +B=b[1];if(!B)return ePQ;var +aa=B[1];return m(k(ePP),aa);case +8:var +ab=b[1];return m(k(ePR),ab);case +9:var +ac=fI(b[1]);return m(k(ePS),ac);case +10:var +ad=b[1];return m(k(ePT),ad);case +11:var +ae=b[1];return m(k(ePU),ae);case +12:return acY(c,b[1]);case +13:var +C=b[1],p=C[5],h=C[4];if(typeof +p==="number")switch(p){case +0:var +J=0,L=sm(function(a){return GA(c,a)},J,h);return m(k(ePp),L);case +1:var +M=0,N=sm(function(a){return GA(c,a)},M,h);return m(k(ePq),N);default:var +O=0,P=sm(function(a){return GA(c,a)},O,h);return m(k(ePr),P)}var +Q=aMZ(c,p[1]),R=0,S=sm(function(a){return GA(c,a)},R,h);return n(k(ePs),S,Q);case +14:var +D=b[1],T=D[3],U=D[1]?ePt:ePv,V=id([0,c],T);return n(k(ePu),U,V);case +15:var +af=b[1],ag=function(a,b){if(0!==b[0]){var +r=b[2],s=b[1],p=aY(s,eO_,function(a){return m(k(eO9),a)}),q=id([0,c],r);return n(k(eO$),p,q)}var +d=b[4],e=b[3],f=b[2],g=b[1];if(i3(g)&&2===e&&!d)return id([0,c],f);var +h=id([0,c],f),i=d?eO5:eO8,j=f9(g,m(k(eO6),a)),l=Gz(e);return o(k(eO7),l,j,i,h)},I=ePV[1],aO=f2(I,uf(af,ag));return m(k(ePW),aO);case +16:var +ah=vO([0,b[2],[0,b[3],b[4]]],10),ai=[0,c],aj=sm(function(a){return id(ai,a)},ePX,ah);return m(k(ePY),aj);case +17:var +ak=[0,b[1],[0,b[2],b[3]]],al=[0,c],am=sm(function(a){return id(al,a)},ePZ,ak);return m(k(eP0),am);case +18:var +r=b[1],E=r[3],an=r[2],ao=r[1],ap=E?aMZ(c,E[1]):eP3,aq=0,ar=sm(function(a){return GA(c,a)},aq,an),as=n(k(eP1),ar,ap),at=0,au=sm(function(a){return aM0(c,a)},at,ao);return n(k(eP2),au,as);case +19:var +s=b[1],av=aM1(c,b[2]);if(typeof +s==="number")switch(s){case +0:var +f=eOH;break;case +1:var +f=eOI;break;case +2:var +f=eOJ;break;case +3:var +f=eOK;break;default:var +f=eOL}else +var +f=acX(s[1]);return n(k(eP4),f,av);case +20:var +F=b[1],u=aMH(F),v=aMI(F);if(!v)return u;var +W=v[1],X=[0,c],aP=f2(ePA,K(W,function(a){return id(X,a)}));return m(m(k(ePB),u),aP);case +21:var +aw=b[1];return m(k(eP5),aw);case +22:var +ax=b[3],ay=b[1],az=id([0,c],b[2]),aA=id([0,c],ay);return l(k(eP6),aA,az,ax);case +23:var +aB=b[3],aC=b[2],aD=b[1],aE=id([0,c],b[4]),aF=id([0,c],aB),aG=id([0,c],aC),aH=id([0,c],aD);return o(k(eP7),aH,aG,aF,aE);case +24:var +aI=b[2],aJ=b[1],aK=[0,c],aL=aY(aI,eP8,function(a){return id(aK,a)}),aM=acX(aJ);return n(k(eP9),aM,aL);default:var +aN=id([0,c],b[1]);return m(k(eP_),aN)}},aM2=[5,eQa],acZ=function(a,b){var +c=aMq(a,b);return[0,[5,c],[0,[5,aMr(c,b)],[0,[5,c],0]]]},uT=function(b){return function(a){return aY(a,1,b)}},GB=function(a){switch(a){case +0:return eQc;case +1:return eQd;default:return 1}},ac0=function(r,b,c,d,e){var +R=b?b[1]:5000,S=c?c[1]:1,u=[0,R];function +j(a){var +b=a[1],d=a[3];if(typeof +b!=="number"&&0===b[0]){var +c=b[1][1];if(c)return[0,c[1][2]]}return d}function +i(a,b){var +d=0,c=b;for(;;){if(0===u[1])var +e=[0,aM2,d];else{if(c){var +f=c[2],d=[0,m(a,c[1]),d],c=f;continue}var +e=d}return U(e)}}var +f=function +c(a,b){return c.fun(a,b)},B=function +c(a,b){return c.fun(a,b)},v=function +c(a,b){return c.fun(a,b)},w=function +d(a,b,c){return d.fun(a,b,c)},x=function +c(a,b){return c.fun(a,b)},g=function +b(a){return b.fun(a)},C=function +c(a,b){return c.fun(a,b)},D=function +e(a,b,c,d){return e.fun(a,b,c,d)},s=function +d(a,b,c){return d.fun(a,b,c)},y=function +c(a,b){return c.fun(a,b)},E=function +c(a,b){return c.fun(a,b)},z=function +c(a,b){return c.fun(a,b)},F=function +c(a,b){return c.fun(a,b)},A=function +c(a,b){return c.fun(a,b)},G=function +d(a,b,c){return d.fun(a,b,c)},H=function +c(a,b){return c.fun(a,b)},I=function +c(a,b){return c.fun(a,b)},q=function +c(a,b){return c.fun(a,b)},J=function +b(a){return b.fun(a)},L=function +c(a,b){return c.fun(a,b)},k=function +c(a,b){return c.fun(a,b)},M=function +c(a,b){return c.fun(a,b)},N=function +c(a,b){return c.fun(a,b)};h(f,function(a,b){var +c=a+1|0;return 0===u[1]?aM2:(u[1]+=-1,n(B,c,b))});h(B,function(c,b){if(typeof +b==="number")switch(b){case +0:return eQj;case +1:return eQk;case +2:return eQl;default:return eQm}switch(b[0]){case +0:return[5,b[2]];case +1:return n(v,c,b[1]);case +2:return n(C,c,b[1]);case +3:return eQn;case +4:return eQo;case +5:return eQp;case +6:return eQq;case +7:return eQr;case +8:return[5,b[1]];case +9:return gm(acZ(r,fI(b[1])));case +10:var +k=b[1]?eQs:eQt;return[5,k];case +11:return[5,b[1]];case +12:var +p=b[1];return l(s,c,gm([0,j_,eQu]),p);case +13:return l(G,c,0,b[1]);case +14:return n(F,c,b[1]);case +15:var +t=b[1];return uS(0,eQB,eQA,eQz,0,0,i(function(a){if(0!==a[0]){var +e=a[1],p=[0,n(f,c,a[2]),0],q=e?gm([0,m(g,[0,e[1]]),[0,eQx,[0,j_,0]]]):1;return gm([0,eQy,[0,q,p]])}var +b=a[1],h=a[4],i=a[3],j=[0,n(f,c,a[2]),0];if(b)var +k=b[1],l=[0,eQv,[0,j_,0]],o=h?eQw:1,d=gm([0,m(g,[0,k]),[0,o,l]]);else +var +d=1;return gm([0,GB(i),[0,d,j]])},t));case +16:return n(H,c,[0,b[2],[0,b[3],b[4]]]);case +17:return n(I,c,[0,b[1],[0,b[2],b[3]]]);case +18:var +d=b[1];return o(D,c,d[1],d[2],d[3]);case +19:var +e=b[1],u=b[2],w=[0,m(uT(m(x,c)),u),0];if(typeof +e==="number")switch(e){case +0:var +a=eQe;break;case +1:var +a=eQf;break;case +2:var +a=eQg;break;case +3:var +a=eQh;break;default:var +a=eQi}else +var +a=[5,fI(j(e[1]))];return gm([0,eQC,[0,jS,[0,a,w]]]);case +20:return n(L,c,b[1]);case +21:return gm([0,eQF,[0,eQE,[0,gm(acZ(r,b[1])),eQD]]]);case +22:var +y=b[2],z=b[1],A=b[3]?eQG:eQI,B=[0,A,[0,n(f,c,y),eQH]];return gm([0,n(f,c,z),B]);case +23:var +E=b[3],J=b[2],K=b[1],M=[0,aMl,[0,eQJ,[0,j_,[0,n(f,c,b[4]),0]]]],N=[0,[4,gm([0,aMl,[0,eQK,[0,j_,[0,n(f,c,E),M]]]])],0],O=[0,jS,[0,eQL,[0,jS,[0,n(q,c,J),0]]]];return Gv([0,gm([0,n(q,c,K),O]),N]);case +24:var +P=b[2],Q=b[1][3],R=0,S=0,T=[0,m(uT(function(a){return gm([0,jS,[0,eQM,[0,jS,[0,n(f,c,a),0]]]])}),P),S];return gm([0,eQN,[0,jS,[0,gm([0,m(g,Q),T]),R]]]);default:var +U=b[1];switch(b[2]){case +0:var +h=eQO;break;case +1:var +h=eQP;break;default:var +h=eQQ}return gm([0,[5,h],[0,jS,[0,n(f,c,U),0]]])}});h(v,function(a,b){var +c=b[3];return l(w,a,m(g,j(b[1])),c)});h(w,function(a,b,c){return gm([0,b,[0,m(uT(m(x,a)),c),0]])});h(x,function(a,b){return uS(0,eQS,eQR,0,0,0,i(m(f,a),b))});h(g,function(a){return[5,fI(a)]});h(C,function(a,b){var +d=0;if(typeof +b==="number")switch(b){case +0:var +c=eQT;break;case +2:var +c=eQW;break;default:d=1}else if(0===b[0])var +c=eQX;else +d=1;if(d)var +c=eQV;var +f=0,g=0;if(1===a&&S){var +e=gm([0,j_,[0,aMp(0,[5,c]),0]]);f=1}if(!f)var +e=1;return gm([0,eQU,[0,e,g]])});h(D,function(a,b,c,d){var +f=b?aco([0,eQZ,[0,uS(0,0,eQY,0,0,0,K(b,m(v,a))),0]]):1,e=i(m(z,a),c),g=d?[0,n(A,a,d[1]),e]:e;return aco([0,eQ3,[0,f,[0,uS(0,eQ2,eQ1,eQ0,0,0,g),0]]])});h(s,function(a,b,c){var +d=c[2],h=c[4],j=c[3],l=c[1],e=i(m(y,a),l);if(d)var +f=d[1],g=V(e,[0,gm([0,eQ5,[0,n(y,a,[0,f[1],f[2],eQ4]),0]]),0]);else +var +g=e;var +o=[0,b,[0,j_,[0,n(E,a,j),0]]],p=[0,uS(0,eQ8,eQ7,eQ6,0,0,g),o];return gm([0,m(uT(m(k,a)),h),p])});h(y,function(a,b){var +c=b[1],e=b[3][1],h=[0,n(f,a,b[2]),0];if(c)var +i=c[1],j=[0,eQ9,[0,j_,0]],k=e?eQ_:1,d=gm([0,m(g,[0,i]),[0,k,j]]);else +var +d=1;return gm([0,d,h])});h(E,function(a,b){if(0===b[0])return n(f,a,b[1]);var +c=b[1];return aco([0,[5,c],[0,eQ$,[0,n(f,a,b[2]),0]]])});function +t(a){if(!(1-th(rp(eQb),a,0)))return m(g,[0,a]);var +b=aMq(r,a);return gm([0,[5,b],[0,[5,aMr(b,a)],[0,[5,b],0]]])}h(z,function(a,b){switch(b[0]){case +0:var +c=b[2],d=b[1];switch(c[0]){case +0:var +k=c[3],m=c[2],o=[0,eRa,[0,j_,[0,n(f,a,c[1]),0]]],p=k?eRb:1,q=[0,t(fI(d)),[0,p,o]];return gm([0,GB(m),q]);case +1:var +r=[0,l(s,a,eRc,c[1]),0];return gm([0,t(fI(d)),r]);case +2:var +u=[0,eRf,[0,aMm,[0,eRe,[0,eRd,[0,j_,[0,n(f,a,c[1]),0]]]]]];return Gv([0,eRg,[0,jS,[0,t(fI(d)),u]]]);default:var +v=c[1],w=[0,eRh,[0,j_,[0,n(f,a,1),0]]],x=[0,aMn(0,eRi,[0,n(f,a,v),0]),w];return Gv([0,eRj,[0,jS,[0,t(fI(d)),x]]])}case +1:return gm([0,l(s,a,eRk,b[1]),0]);case +2:return gm([0,eRl,[0,n(f,a,b[1]),0]]);default:var +g=b[5],h=b[4],y=h[2],z=b[3],A=b[2],B=b[1][1];switch(h[1]){case +0:var +e=eRm;break;case +1:var +e=1;break;default:var +e=eRs}var +C=[0,eRo,[0,e,[0,eRn,[0,j_,[0,n(f,a,z),0]]]]],j=0,D=[0,n(f,a,A),C];if(typeof +g==="number"&&!g){var +i=eRr;j=1}if(!j)var +i=1;return gm([0,GB(y),[0,eRq,[0,[5,B],[0,eRp,[0,i,D]]]]])}});h(F,function(a,b){var +d=b[2],g=b[3];if(b[1])var +c=eRt;else{var +e=0;if(d&&d[1]){var +c=eRw;e=1}if(!e)var +c=eRx}return gm([0,[5,c],[0,eRv,[0,n(f,a,g),eRu]]])});h(A,function(a,b){var +c=b[2],d=b[3],e=b[1],h=[0,eRz,[0,eRy,[0,j_,[0,n(f,a,b[4]),0]]]],i=[0,n(f,a,d),h],j=c?gm([0,m(g,[0,c[1]]),[0,eRA,[0,j_,0]]]):1;return gm([0,GB(e),[0,eRB,[0,j,i]]])});h(G,function(a,b,c){var +o=b?b[1]:eRK,e=c[5],j=c[3],l=0,p=c[4];if(0===e&&!d){var +h=eRJ;l=1}if(!l)var +h=1;var +f=i(m(z,a),p);if(typeof +e==="number")switch(e){case +0:var +g=f;break;case +1:var +g=V(f,eRI);break;default:var +g=f}else +var +g=[0,n(A,a,e[1]),f];var +q=gm([0,h,eRD]),k=uS(0,[0,[0,gm([0,eRE,[0,h,0]]),q]],[0,o],eRC,0,0,g);if(j&&j[1])return gm([0,eRH,[0,eRG,[0,k,eRF]]]);return k});h(H,function(a,b){var +f=0;if(s2(2,b)&&s2(1,b)){var +h=m(qv(function(a){var +b=2!==a?1:0,c=b?1!==a?1:0:b;return c}),b),j=h||eRP,c=j,d=eRL;f=1}if(!f)var +c=b,d=1;var +g=0;if(1=a[4][31])return eSE;var +b=ai(Pm),c=ah===b?Pm[1]:O===b?aq(Pm):Pm;return m(k(eSD),c)},aNq=function(a,b,c){var +d=o(T[7][31],0,b,c,a[1][37]);a[1][37]=d;return 0},aNr=function(a,b){var +c=n(jE[4],b,a[1][8]);a[1][8]=c;return 0},qP=function(a,b){a[1][8]=b;return 0},Pn=function(a,b,c){var +e=o(wf[31],0,b,c,a[1][1][2]),d=a[1][1];a[1][1]=[0,d[1],e,d[3],d[4],d[5]];return 0},aNs=function(a,b,c){var +e=o(F0[31],0,b,c,a[1][1][4]),d=a[1][1];a[1][1]=[0,d[1],d[2],d[3],e,d[5]];return 0},ade=function(a,b,c){var +e=o(g5,0,b,c,a[1][1][1]),d=a[1][1];a[1][1]=[0,e,d[2],d[3],d[4],d[5]];return 0},rA=function(a,b){if(1===a[12])a[1][7]=1;return m(aaV,b)},aNt=function(a,b){a[1][29]=[0,b,a[1][29]];return 0},aNu=function(a,b){a[1][28]=[0,b,a[1][28]];return 0},aNv=function(a,b){a[1][30]=[0,b,a[1][30]];return 0},adf=function(a,b,c){var +d=a[1][36],e=n(NI[32],b,d),f=e?kE(c,e[1]):g9(c),g=l(NI[4],b,f,d);a[1][36]=g;return 0},aNw=function(a,b){a[1][6]=b;return 0},adg=function(a,b){var +c=a[1][1];a[1][1]=[0,c[1],c[2],c[3],c[4],b];return 0},Po=function(a,b){var +c=a[1][1];a[1][1]=[0,b,c[2],c[3],c[4],c[5]];return 0},B$=function(c,b){var +d=p_(c);c[1][38]=1;return ti(b,function(a){c[1][38]=d;return 0})},aNx=function(a,b,c){var +d=n(T[7][27],b,a[1][11]),e=d?n(uF[4],c,d[1]):m(uF[5],c),f=o(T[7][31],0,b,e,a[1][11]);a[1][11]=f;return 0},kI=function(a,b){a[11]=b;return 0},Pp=function(a){var +b=a[1][21];return[0,a[1][18][1],a[1][19][1],a[1][20][1],[0,b[1][1],b[2][1]],a[1][22][1],a[1][23][1],a[1][24][1],a[1][25][1],a[1][1][5],a[1][27][1]]},Pq=function(a,b){var +c=b[4],d=a[1][21],e=b[10],f=b[9],g=b[8],h=b[7],i=b[6],j=b[5],k=c[2],l=c[1],m=b[3],n=b[2],o=d[2],p=d[1];a[1][18][1]=b[1];a[1][19][1]=n;a[1][20][1]=m;p[1]=l;o[1]=k;a[1][22][1]=j;a[1][23][1]=i;a[1][24][1]=h;a[1][25][1]=g;adg(a,f);a[1][27][1]=e;return 0},adh=function(c,b){var +d=Pp(c);c[1][27][1]=0;return ti(b,function(a){return Pq(c,d)})},aNy=function(c,b){var +e=c[12],f=c[1][7];c[1][7]=0;c[12]=1;var +g=Pp(c);c[1][27][1]=0;var +d=[0,0],a=ti(b,function(a){Pq(c,g);c[12]=e;d[1]=c[1][7];c[1][7]=f;return 0});return[0,d[1],a]},yE=function(a,b){var +c=o(g5,0,b,0,a[1][14]);a[1][14]=c;return 0},adi=function(a,b){return n(T[8][3],b,a[1][39])},Pr=function(a,b,c,d){var +e=a[1][15],f=[0,c,d],g=[0,function(a,b){var +d=a[2],c=b[2],e=a[1],f=d||c;return[0,e,f]}],h=o(T[7][31],g,b,f,e);a[1][15]=h;return 0},adj=function(a,b){var +c=gz(a,b);function +d(a,b){return 1-FL(a)}return m(m(Y[15],d),c)},Ps=function(a,b,c){var +d=adj(a,b);return m(m(Y[11],c),d)},aNz=function(a,b,c){var +d=adj(a,b);return m(m(Y[12],c),d)},adk=function(a,b,c){var +d=gz(a,b);return m(m(Y[3],c),d)},Pt=function(a,b,c){var +d=gz(a,b);return m(m(Y[27],c),d)},ka=function(a,b){var +g=a[3];if(2>$S(b))return b;var +o=ai(g),s=ah===o?g[1]:O===o?aq(g):g,f=s[2],p=lr(b);function +m(a){return 0<=aHB(a,p)?1:0}var +l=f.length-1,k=l-0|0;avQ(0,k,l);var +d=0,e=(k|0)-1|0;for(;;){if(8<(e-d|0)){var +h=d+((e-d|0)/2|0)|0;if(m(WE(f,h))){var +e=h;continue}var +d=h+1|0;continue}var +c=d;for(;;){if(e>>0){c=2;b=1}else +b=2;else +j=1;if(j){c=1;b=1}break;case +25:c=3;b=1;break;default:c=1;b=1}}else +b=1;break;case +2:var +y=a[2];if(0===y[0]){var +z=y[2];switch(z[0]){case +0:b=1;break;case +1:var +h=z[2],k=0;if(typeof +h==="number"){if(2!==h)k=1}else if(4===h[0]){var +A=h[1];if(2===A||4===A)b=2;else{c=2;b=1}}else +k=1;if(k){c=1;b=1}break;case +25:c=3;b=1;break;default:c=1;b=1}}else +b=1;break;default:var +B=a[2];if(0===B[0]){var +C=B[2];switch(C[0]){case +0:b=1;break;case +1:var +l=0,i=C[2];if(typeof +i==="number"){if(3!==i)l=1}else if(4===i[0]){c=2;b=1}else +l=1;if(l){c=1;b=1}break;case +25:c=3;b=1;break;default:c=1;b=1}}else +b=1}else +switch(f[0]){case +0:var +D=a[2];if(0===D[0]){var +E=D[2];switch(E[0]){case +0:b=1;break;case +1:var +m=0,F=E[2];if(typeof +F==="number")m=1;else +switch(F[0]){case +0:break;case +4:c=2;b=1;break;default:m=1}if(m){c=1;b=1}break;case +25:c=3;b=1;break;default:c=1;b=1}}else +b=1;break;case +1:var +G=a[2];if(0===G[0]){var +H=G[2];switch(H[0]){case +0:b=1;break;case +1:var +n=0,I=H[2];if(typeof +I==="number")n=1;else +switch(I[0]){case +1:break;case +4:c=2;b=1;break;default:n=1}if(n){c=1;b=1}break;case +25:c=3;b=1;break;default:c=1;b=1}}else +b=1;break;case +2:var +J=a[2];if(0===J[0]){var +K=J[2];switch(K[0]){case +0:b=1;break;case +1:var +o=0,L=K[2];if(typeof +L==="number")o=1;else +switch(L[0]){case +2:break;case +4:c=2;b=1;break;default:o=1}if(o){c=1;b=1}break;case +25:c=3;b=1;break;default:c=1;b=1}}else +b=1;break;case +3:var +M=a[2];if(0===M[0]){var +N=M[2];switch(N[0]){case +0:b=1;break;case +1:var +p=0,O=N[2];if(typeof +O==="number")p=1;else +switch(O[0]){case +3:break;case +4:c=2;b=1;break;default:p=1}if(p){c=1;b=1}break;case +25:c=3;b=1;break;default:c=1;b=1}}else +b=1;break;case +6:switch(f[1][3][0]){case +8:var +P=a[2];if(0===P[0])switch(P[2][0]){case +0:b=1;break;case +1:c=2;b=1;break;case +25:c=3;b=1;break;case +8:case +9:c=4;b=1;break;default:c=1;b=1}else +b=1;break;case +9:var +Q=a[2];if(0===Q[0])switch(Q[2][0]){case +0:b=1;break;case +1:c=2;b=1;break;case +9:c=4;b=1;break;case +25:c=3;b=1;break;default:c=1;b=1}else +b=1;break;default:b=1}break;default:b=3}switch(b){case +1:break;case +3:break;case +0:return 1;default:return 0}break;case +8:var +R=a[2];if(0===R[0])switch(R[2][0]){case +0:break;case +1:c=2;break;case +25:c=3;break;case +8:case +9:c=4;break;default:c=1}break;case +9:var +S=a[2];if(0===S[0])switch(S[2][0]){case +0:break;case +1:c=2;break;case +9:c=4;break;case +25:c=3;break;default:c=1}break}var +d=0;switch(c){case +0:var +r=a[2],T=0;if(0===r[0]&&0===r[2][0])d=3;else +T=1;if(T){if(16===e[0])return 0;d=1}break;case +2:d=1;break;case +3:d=2;break;case +1:break;case +5:d=3;break;default:return 1}var +q=0;switch(d){case +1:var +s=a[2];if(0===s[0]){var +t=s[2];if(1===t[0]){var +v=t[2];if(typeof +v!=="number"&&4===v[0])return 1}}if(25===e[0])return 0;q=1;break;case +2:q=1;break;case +0:break;default:return 0}if(q){var +u=a[2];if(0===u[0]&&25===u[2][0])return 0}return 0},aN5=function(a){if(1===a[0]){var +b=a[2];if(typeof +b!=="number"&&9===b[0])return af(aaX(a[1]),"Date")}return 0},Ch=function(a){var +b=0;switch(a[0]){case +1:var +f=0,e=a[2];if(typeof +e==="number")f=1;else +switch(e[0]){case +6:case +9:b=1;break;default:f=1}break;case +8:case +9:case +25:b=1;break}if(b)return 1;var +c=0;switch(a[0]){case +1:var +g=0,d=a[2];if(typeof +d==="number")g=1;else +switch(d[0]){case +5:case +8:c=1;break;default:g=1}break;case +11:case +12:case +13:case +24:c=1;break}return c?1:0},adH=function(a){var +b=0;switch(a[0]){case +0:if(25===a[2][0])b=1;break;case +4:case +6:case +8:case +10:case +11:case +12:case +15:case +16:case +20:case +45:case +46:case +47:case +48:case +53:case +54:case +55:case +56:b=1;break}return b?1:0},aN6=function(a){var +e=a[1],b=0;switch(e[0]){case +1:var +j=0,h=e[2];if(typeof +h==="number")if(3===h){var +m=a[2];switch(m[0]){case +1:var +z=0,i=m[2];if(typeof +i==="number")if(3===i)b=2;else +z=1;else +switch(i[0]){case +0:case +1:case +2:case +4:case +10:case +12:case +13:case +20:case +21:z=1;break;default:b=1}break;case +25:break;default:b=1}}else +j=1;else +switch(h[0]){case +4:j=1;break;case +0:var +n=a[2];switch(n[0]){case +1:var +A=0,o=n[2];if(typeof +o==="number")A=1;else +switch(o[0]){case +0:case +12:b=2;break;case +1:case +2:case +4:case +10:case +13:case +20:case +21:A=1;break;default:b=1}break;case +25:break;default:b=1}break;case +1:var +p=a[2];switch(p[0]){case +1:var +B=0,q=p[2];if(typeof +q==="number")B=1;else +switch(q[0]){case +1:case +10:b=2;break;case +0:case +2:case +4:case +12:case +13:case +20:case +21:B=1;break;default:b=1}break;case +25:break;default:b=1}break;case +2:var +r=a[2];switch(r[0]){case +1:var +C=0,s=r[2];if(typeof +s==="number")C=1;else +switch(s[0]){case +2:case +13:b=2;break;case +0:case +1:case +4:case +10:case +12:case +20:case +21:C=1;break;default:b=1}break;case +25:break;default:b=1}break;case +10:var +t=a[2];switch(t[0]){case +1:var +D=0,u=t[2];if(typeof +u==="number")D=1;else +switch(u[0]){case +1:case +10:b=2;break;case +0:case +2:case +4:case +12:case +13:case +20:case +21:D=1;break;default:b=1}break;case +25:break;default:b=1}break;case +12:var +v=a[2];switch(v[0]){case +1:var +E=0,w=v[2];if(typeof +w==="number")E=1;else +switch(w[0]){case +0:case +12:b=2;break;case +1:case +2:case +4:case +10:case +13:case +20:case +21:E=1;break;default:b=1}break;case +25:break;default:b=1}break;case +13:var +x=a[2];switch(x[0]){case +1:var +F=0,y=x[2];if(typeof +y==="number")F=1;else +switch(y[0]){case +2:case +13:b=2;break;case +0:case +1:case +4:case +10:case +12:case +20:case +21:F=1;break;default:b=1}break;case +25:break;default:b=1}break}if(j)b=2;break;case +25:b=2;break}var +c=0;switch(b){case +0:var +l=a[2];switch(l[0]){case +1:var +d=0,g=l[2];if(typeof +g==="number")if(3===g)d=2;else +d=1;else +switch(g[0]){case +4:d=1;break;case +0:case +1:case +2:case +10:case +12:case +13:case +20:case +21:d=2;break}switch(d){case +0:break;case +1:c=1;break;default:c=2}break;case +25:c=1;break}break;case +1:break;default:c=1}switch(c){case +0:var +G=0;if(1===e[0]){var +k=0,f=e[2];if(typeof +f==="number"){if(3===f)k=1}else +switch(f[0]){case +0:case +1:case +2:case +10:case +12:case +13:case +20:case +21:k=1;break}if(k)G=1}if(!G)return 1;break;case +1:return 1}return 0},adI=function(a){switch(a[0]){case +2:case +19:return 1;default:return 0}},uY=function(a){switch(a[0]){case +0:case +16:case +17:case +18:case +20:return 1;default:return 0}},aN7=function(a,b){if(1===b[0]){var +c=b[2],s=0;if(typeof +c!=="number")switch(c[0]){case +5:var +e=c[2],o=e[2],p=0,f=M(function(a,b){var +c=b[2];return uY(c)?[0,c,a]:a},p,o),g=e[3];if(g){var +h=g[1][3];if(uY(h))return[0,h,f]}return f;case +6:var +i=c[1][4];if(i){var +j=i_(a,i[1]);if(1===j[0]){var +d=j[2];if(typeof +d!=="number"&&5===d[0]){var +k=d[2],q=k[2],r=0,l=M(function(a,b){var +c=b[2];return uY(c)?[0,c,a]:a},r,q),m=k[3];if(m){var +n=m[1][3];if(uY(n))return[0,n,l]}return l}}return 0}s=1;break}}return 0},aN8=function(a,b){var +c=a,d=b;for(;;){var +f=d[2],e=d[1];if(!f)return[0,e,U(c)];var +h=f[2],g=f[1],i=g[1];if(uY(g[2])){var +j=[0,mo(e),h],c=[0,[0,i,g1(e)],c],d=j;continue}var +c=[0,g,c],d=[0,e,h]}},aN9=function(a){var +c=a[2],b=a[1];if(!c)return[0,b,0];var +d=c[1],e=d[2],f=d[1];if(!uY(d[3]))return[0,b,c];var +g=[0,[0,f,e,g1(b)]];return[0,mo(b),g]},e3O=function(a,b,c){switch(c[0]){case +0:var +p=c[2];if(1===p[0]){var +h=p[2],s=p[1],t=c[1],A=0;if(typeof +h==="number")A=1;else +switch(h[0]){case +5:var +f=h[2],G=h[1],u=aN8(0,[0,b,f[2]]),H=u[2],v=aN9([0,u[1],f[3]]),I=v[2];if(0===v[1])return[0,t,[1,s,[5,G,[0,f[1],H,I,f[4],f[5],f[6]]]]];throw B([0,aL,e3P],1);case +6:var +i=h[1],w=i[4];if(w){var +q=i_(a,w[1]);if(1===q[0]){var +l=q[2];if(typeof +l!=="number"&&5===l[0]){var +g=l[2],J=l[1],K=q[1],x=aN8(0,[0,b,g[2]]),L=x[2],y=aN9([0,x[1],g[3]]),M=y[2];if(0!==y[1])throw B([0,aL,e3Q],1);var +N=uV(a,[1,K,[5,J,[0,g[1],L,M,g[4],g[5],g[6]]]]);return[0,t,[1,s,[6,[0,i[1],i[2],i[3],[0,N],i[5]]]]]}}return c}break;default:A=1}}break;case +2:var +z=c[3],O=c[2],P=c[1];if(0===z[0]){var +d=z[1],n=0,m=[0,b,d[3]],Q=c[4];for(;;){var +o=m[2],e=m[1];if(!o){var +F=U(n);if(0===e)return[2,P,O,[0,[0,d[1],d[2],F,d[4],d[5],d[6],d[7],d[8]]],Q];throw B([0,aL,e3R],1)}var +j=o[1],r=0,E=o[2];if(0===j[0])if(uY(j[1]))var +C=mo(e),k=[0,[0,g1(e)],C];else +r=1;else if(uY(j[1]))var +D=mo(e),k=[0,[1,g1(e)],D];else +r=1;if(r)var +k=[0,j,e];var +n=[0,k[1],n],m=[0,k[2],E]}}break}return c},adJ=function(a){switch(a[0]){case +1:var +b=a[2];if(typeof +b==="number"&&b)switch(b-1|0){case +0:return e3S;case +1:return e3T}break;case +17:return e3U}return 0},aN_=function(a){switch(a[0]){case +1:return 19;case +2:return 2;case +4:var +b=a[4];return 0===b[0]?[2,b[1][2],[0,b[2]]]:[2,iG(b[1]),0];case +6:var +c=a[3];return 0===c[0]?[1,c[1][2],[0,c[2]]]:[1,iG(c[1]),0];case +7:return 1;case +8:var +d=a[4];return 0===d[0]?[0,d[1][2],[0,d[2]]]:[0,iG(d[1]),0];case +9:return 0;case +11:return[4,iG(a[3])];case +12:return[3,iG(a[6])];case +13:return[5,iG(a[4])];case +14:return 18;case +20:return 9;case +22:return 10;case +26:return 16;case +41:var +i=a[1];if(0===i[0]){var +j=i[1];if(typeof +j!=="number"&&6===j[0])return 9}return 11;case +42:return 12;case +43:return 13;case +44:return 11;case +47:return a[5]?6:5;case +48:return 7;case +51:return 8;case +53:return 14;case +54:var +e=a[3],h=0,s=a[2];switch(e[0]){case +1:var +f=e[2],t=0;if(typeof +f==="number"||!(1===f[0]))t=1;else{var +k=f[1];if(typeof +k!=="number"){var +l=k[2];h=1}}break;case +3:var +m=e[3];if(1===m[0]){var +g=m[2],u=0;if(typeof +g==="number"||!(1===g[0]))u=1;else{var +n=g[1];if(typeof +n!=="number"){var +l=n[2];h=1}}}break}return h?[6,s[2],[0,l]]:[6,a[2][2],0];case +55:return 15;case +56:return 15;case +57:var +o=a[3];if(1===o[0]){var +p=o[2];if(typeof +p!=="number"&&7===p[0])return 4}break;case +69:var +r=0,q=a[3];if(typeof +q!=="number"&&0===q[0])r=1;if(!r)return 17;break}return[7,yq(a)]},adK=[fy,e3V,ge(0)],wx=[fy,e3W,ge(0)],aN$=function(a,b,c,d){if(c){var +h=c[1],e=pC(a);if(0===e)var +i=0;else +var +g=function(a,b){var +c=b[3];return e=h-1>>>0)return g;var +j=h6(46,C(b)),k=m(i7[3],a);return[16,j,o(aG[3],0,k,g,0)];case +17:return GV(function(a){return aPy(e,a)},b);case +6:case +7:case +9:case +21:d=1;break}if(!d)return[1,a,0];break;case +25:break;default:return[1,C(b),0]}return b},aPz=function(a){switch(a[0]){case +1:var +c=0,b=a[2];if(typeof +b==="number"){if(1===b)c=1}else +switch(b[0]){case +17:return GV(aPz,a);case +6:case +7:case +9:case +21:c=1;break}if(c)return[1,C(a),0];break;case +25:return[1,C(a),0]}return a},aPA=function(a){switch(a[0]){case +1:var +b=a[1],d=0,c=a[2];if(typeof +c!=="number")switch(c[0]){case +4:return[1,h6(e7U,b),e7T];case +17:return GV(aPA,a);case +5:case +8:d=1;break}if(!d)return[1,b,0];break;case +4:case +25:break;default:return[1,C(a),0]}return a},aPB=function(a){switch(a[0]){case +1:var +b=a[2];if(typeof +b!=="number")switch(b[0]){case +17:return GV(aPB,a);case +5:case +8:return[1,C(a),0]}break;case +4:return[1,C(a),0];case +25:return[1,C(a),0]}return a},Cp=function(a,b){var +i=b[1];if(1===i[0]){var +c=i[2],d=0;if(typeof +c==="number")switch(c){case +1:var +j=b[2];if(typeof +j==="number"&&j)d=2;break;case +2:var +k=b[2];if(typeof +k==="number"&&!k)d=2;break;default:d=1}else +switch(c[0]){case +0:var +l=c[1];if(typeof +l!=="number"){var +e=b[2],p=0;if(typeof +e==="number"||!(1===e[0]))p=1;else if((l[2][1]==e[1]?1:0)!==a)return 1}break;case +1:var +m=c[1];if(typeof +m!=="number"){var +f=b[2],q=0;if(typeof +f==="number"||!(0===f[0]))q=1;else if(ao(m[2],f[1])!==a)return 1}break;case +2:var +n=c[1];if(n){var +g=b[2],r=0;if(typeof +g==="number"||!(2===g[0]))r=1;else if((n[1]===g[1]?1:0)!==a)return 1}break;case +3:var +o=c[1];if(typeof +o!=="number"){var +h=b[2],s=0;if(typeof +h==="number"||!(3===h[0]))s=1;else if(ao(o[2][1],h[1][1])!==a)return 1}break;default:d=1}switch(d){case +1:break;case +0:break;default:return 1}}return 0},aPC=function +c(a,b){return c.fun(a,b)};h(aPC,function(a,b){if(typeof +a==="number")switch(a){case +0:if(typeof +b==="number"&&!b)return 0;break;case +1:if(typeof +b==="number"&&1===b)return 0;break;case +2:if(typeof +b==="number"&&2===b)return 0;break;case +3:if(typeof +b==="number"&&3===b)return 0;break;case +4:if(typeof +b==="number"&&4===b)return 0;break;case +5:if(typeof +b==="number"&&5===b)return 0;break;case +6:if(typeof +b==="number"&&6===b)return 0;break;case +7:if(typeof +b==="number"&&7===b)return 0;break;case +8:if(typeof +b==="number"&&8===b)return 0;break;case +9:if(typeof +b==="number"&&9===b)return 0;break;default:if(typeof +b==="number"&&10<=b)return 0}else if(typeof +b!=="number"){var +d=b[1],e=a[1],f=m(AS,m(EO,e)),g=n(aw7,f,m(AS,m(EO,d)));return n(bd4,function(a){var +b=n(r4,a,d);return ao(n(r4,a,e),b)},g)?0:1}function +c(a){if(typeof +a==="number")switch(a){case +0:return 0;case +1:return 1;case +2:return 2;case +3:return 3;case +4:return 4;case +5:return 5;case +6:return 7;case +7:return 8;case +8:return 9;case +9:return 10;default:return 11}return 6}var +h=c(b);return ix(c(a),h)});var +jr=h$([0,aPC]),aPD=function(h,b){return m(aNz(h,b,function(a,b,c){if(0!==b[0])return c;var +i=Cb(h,b[3]),k=0;if(i){var +j=i[1];if(1===j[0]){var +d=j[2],g=0;if(typeof +d==="number")g=1;else +switch(d[0]){case +10:var +e=[0,[0,d[1]]];break;case +11:var +e=[0,[0,[0,d[1][2]]]];break;case +12:var +e=[0,[1,d[1]]];break;case +13:var +e=[0,[2,d[1]]];break;default:g=1}if(!g){var +f=e;k=1}}}if(!k)var +f=0;if(!f)return c;var +l=f[1];return o(fN,0,fI(a),l,c)}),at)},aeg=function(d,b){var +a=b;for(;;){switch(a[0]){case +1:var +c=a[2];if(typeof +c==="number")switch(c){case +0:return[0,jr[1]];case +1:return[0,m(jr[5],3)];case +2:return[0,m(jr[5],4)];default:return[0,m(jr[5],5)]}switch(c[0]){case +5:return[0,m(jr[5],6)];case +6:var +e=c[1];if(e[4]){var +o=[0,[0,aPD(d,e[2])],e7W];return[0,m(jr[32],o)]}var +p=[0,aPD(d,e[2])];return[0,m(jr[5],p)];case +7:return[0,m(jr[5],9)];case +9:var +f=c[4],q=f[9],g=h1(f[6])?m(jr[5],6):jr[1];if(q)var +r=m(m(jr[4],8),g),s=m(m(jr[4],[0,at]),r),t=m(m(jr[4],9),s),u=m(m(jr[4],5),t),h=m(m(jr[4],6),u);else +var +h=n(jr[4],8,g);return[0,h];case +17:var +a=c[3];continue;case +20:return[0,m(jr[5],10)];case +2:case +13:return[0,m(jr[5],0)];case +0:case +12:return[0,m(jr[5],2)];case +3:case +14:return[0,m(jr[5],7)];case +1:case +10:case +11:case +15:return[0,m(jr[5],1)];default:return 0}case +7:var +a=a[2];continue;case +21:var +i=a[1],j=a[2],k=j[2];if(k){var +w=k[1],x=h5(i)[1];if(ao(i[2][1],x)){var +a=w;continue}}var +l=j[3];if(l){var +a=l[1];continue}break;case +0:case +20:var +v=Cb(d,a);return qA(v,function(a){return aeg(d,a)})}return 0}},aeh=function(a,b){return 1-n(AP,a[1],b[2][3])},aei=[fy,e7X,ge(0)],aPE=function(a,b){var +c=a[4][34]<=b[2]?1:0;if(c)throw B([0,aei,b],1);return c},P4=function(a,b,c,d){var +e=a[1][25],j=n(lT,b,e[1]),f=f9(j,Oc[1]),h=n(Oc[27],c,f);if(h)var +i=h[1],g=[0,i,o(Oc[31],0,c,i+1|0,f)];else +var +g=[0,0,o(Oc[31],0,c,1,f)];var +k=g[1];e[1]=o(g5,0,b,g[2],e[1]);return m(d,k)},aej=function(a){var +b=1-Oh(a);if(!b)return b;var +c=py(a);return iB(m(k(e7Y),c))},aPF=[0,0],aPG=function(h,b){var +c=b[2],e=b[1],a=[O,function(a){if(h){var +b=h[1];if(b){var +d=[0,[32,b[1],b[2]]],f=C(c);return[hb,d,C(e),f]}}var +g=C(c);return[27,qN([0,C(e),g])]}],d=0;switch(e[0]){case +1:var +i=e[2],f=0;if(typeof +i==="number")switch(i){case +0:case +3:f=1;break;default:switch(c[0]){case +1:var +l=0,v=c[2];if(typeof +v==="number")l=1;else +switch(v[0]){case +20:f=2;break;case +21:break;default:l=1}if(l)d=2;break;case +25:break;default:d=2}}else if(20===i[0]){var +A=i[1][1];switch(c[0]){case +1:var +j=c[2],m=0;if(typeof +j==="number")switch(j){case +0:case +3:m=1;break;default:f=2}else +switch(j[0]){case +20:if(mu(A,j[1][1]))return 0;d=1;break;case +21:break;default:m=1}if(m)d=1;break;case +25:break;default:d=1}}else +f=1;switch(f){case +0:break;case +1:break;default:if(h&&h[1]){var +w=ai(a),z=ah===w?a[1]:O===w?aq(a):a;return[0,z]}return 0}break;case +25:d=3;break}var +g=0;switch(d){case +0:switch(c[0]){case +1:var +B=0,u=c[2];if(typeof +u==="number"||!(21===u[0]))B=1;else +g=2;break;case +25:g=3;break}break;case +1:break;case +2:g=1;break;default:g=3}var +n=0;switch(g){case +0:var +k=0;if(1===e[0]){var +o=0,s=e[2];if(typeof +s==="number")o=1;else +switch(s[0]){case +20:k=2;break;case +21:n=1;break;default:o=1}if(o)k=1}else +k=1;var +p=0;switch(k){case +0:break;case +1:if(1===c[0]){var +D=0,q=c[2];if(typeof +q==="number"||!(20===q[0]))D=1;else +p=1}break;default:p=1}if(p){var +r=ai(a),x=ah===r?a[1]:O===r?aq(a):a;return[0,x]}break;case +1:break;case +3:return 0;default:n=1}if(!n)return 0;var +t=ai(a),y=ah===t?a[1]:O===t?aq(a):a;return[0,y]},sp=function(a){switch(a[0]){case +0:case +2:case +5:case +6:case +7:case +17:case +18:case +20:return 0;default:return 1}},P5=function(a){if(1===a[0]){var +b=a[2];if(typeof +b!=="number")switch(b[0]){case +10:case +12:case +13:case +14:return 1}}return 0},aPH=function(a){if(0===a[0]&&!q(a[1],ig))return 0;return 1},aPI=function(a,b,c,d){var +f=pD(a,d);switch(f[0]){case +0:var +g=f[1];break;case +1:return b;default:var +e=f[1],h=ai(e),i=ah===h?e[1]:O===h?aq(e):e,g=i}return m(c,g)},aek=function(c,b){switch(b[0]){case +0:var +d=b[1][2];return aPI(c,b,function(a){return aek(c,a)},d);case +3:var +a=b[3];if(0===a[0]){var +e=b[4],f=a[1][2],g=b[2],h=b[1];return aPI(c,b,function(a){return[3,h,g,aek(c,a),e]},f)}break}return b},e7Z=function(i,bu,bJ,bZ,co,aD,cn){function +b0(a,b,c,d,e,f,g,h){var +l=d?d[1]:0;if(!l)return h;var +j=fv(0,g);if(typeof +j!=="number"&&68===j[0])return h;var +k=yH(a,e,f,g);x(i[8],a,b,c,e70,h,k);return k}var +b1=i[7];function +b2(a,b,c,d){return x(i[8],a,b,c,e71,d[1],d[2])}var +a=[0,b0,yH,b1,b2,i[5]],d=aOo([0,a[1],a[5],a[3],a[4],a[2]]),E=[0,a[1],a[5],a[3],a[4],a[2]],R=aO4(i),bV=GT([0,i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8],i[9],i[10],i[11],i[12],i[13],i[14],i[15]]);function +bI(i,b,c,d,e,f,g,h){function +k(a){var +d=a[1];return[0,d,fU(E[1],i,c,f,[0,b],d,g,h,a[2])]}var +a=n(aU[28],k,e);function +l(a){var +b=a[2];switch(b[0]){case +0:case +3:return b;default:return aNH(i,C(b),b)}}var +j=n(aU[28],l,a);function +p(a,b){var +d=b[1],e=b[2],g=[1,[20,d[2]],f],h=[0,e,hY(i,[0,f],0,j,d[3])];return o(E[3],i,c,g,h)}m(m(aU[11],p),a);var +q=hY(i,[0,f],0,j,d);return x(E[2],i,[0,c],h[2],0,0,q)}function +bW(i,b,c,d,e,f,g,h){var +w=c[2],x=d?d[1]:0,k=b[3],r=k[3],v=0;if(1===r[0]){var +a=r[1],u=a[7],y=a[6],z=a[5],A=a[4],B=a[3],D=a[2],E=a[1],F=k[2],G=k[1];if(2>u){var +H=a[8];if(p_(i)){var +q=function(a){return ad0(i,a)?rA(i,C(a)):a},I=jq(function(a){return 0===a[0]?[0,q(a[1])]:[1,q(a[1])]},B),J=[0,G,F,[1,[0,q(E),D,I,A,z,y,u,H]]],s=1,l=[0,b[1],b[2],J];v=1}}}if(!v)var +s=0,l=b;var +j=m(w,g);if(typeof +j==="number")if(2<=j)var +o=0,n=1;else +var +o=0,n=0;else +var +o=[0,[0,j[1],j[2]]],n=1;function +t(a){return B$(i,function(a){var +b=l[2][3];return bI(i,x,e,b,p(R[3],i,f,[0,n],o,l),f,g,h)})}return s?aNy(i,t)[2]:t(0)}function +bX(e,b,c,d){var +g=l(i[18],e,e5o,c),h=m(PX(e),g);if(1===h[0]){var +a=h[2],o=0;if(typeof +a!=="number"&&17===a[0]){var +f=a[2];if(!f[2]){var +j=f[1][2],k=[0,g,[0,a[1],f,a[3]],[0,b,c,[0,d]]];return B$(e,function(a){var +c=p(R[3],e,b,e5p,0,k);return n(aU[26],j,c)[2]})}o=1}}return m(h7[4],c)}function +bY(h,b,c,d,e,f,g){var +a=aU[1];return bI(h,0,b,g,iC(function(a,b){var +f=yH(h,b,d,e),g=ap(R[2],h,c,b,0,0,d,f);return o(aU[31],0,b[2],g,a)},a,f),c,d,e)}var +bt=[0,i,E,bW,bY,function(j,b,c,d,e,f,g,h,i){if(p_(j)){var +v=0;if(!PW(j,f)&&!PW(j,g)&&!PW(j,h)&&!PW(j,i))v=1;if(!v){pE(j,0,0,0,e5q);return rA(j,d)}}var +a=B$(j,function(a){return fU(R[4],j,b,c,d,e,f,g,h)});if(a){var +y=a[1];pE(j,0,0,0,e5r);var +k=hY(j,[0,A],0,y,h)}else{var +z=K(e,function(a){return a[2]}),C=GL(j,[0,m(ic[32],z)],g),D=GL(j,0,f),p=n(ic[7],D,C);if(m(ic[2],p)){pE(j,0,0,0,e5s);var +q=i}else{var +F=aU[1],G=function(a,b){var +c=m(aaV,d);return o(aU[31],0,a,c,b)},H=l(ic[16],G,p,F),r=fs(e,H,function(a,b){var +c=m(aaV,d);return o(aU[31],0,b[2],c,a)}),I=hY(j,[0,A],0,r,f),w=0,J=hY(j,[0,A],0,r,g);try{x(bV[3],j,b,d,1,I,[0,c,J])}catch(f){var +s=fk(f);if(s!==wx)throw B(s,0);pE(j,0,0,0,e5t);var +t=i;w=1}if(!w){pE(j,0,0,0,e5u);var +L=adl(j,aO5,d[2]),u=gg(sa,d),t=[3,u,aO5,[16,u,o(aG[3],0,h,i,0)],L]}var +q=t}var +k=q}return x(E[2],j,[0,b],d[2],0,0,k)},bX],b3=i[5],b4=[0,iI];function +b5(a){return n(b3,a,b4)}function +b6(a,b,c){return o(i[7],a,iI,A,[0,b,c])}function +b7(a,b,c,d){return l(i[6],a,iI,[0,c,[66,b[1],b[2],b[3],d]])}function +b8(d,b,c){var +e=b[1],f=b[3],g=b[2];return f7(d,e,function(a){return l(i[6],d,iI,[0,c,[66,e,g,f,a]])})}function +b9(d,b,c){var +e=b[1],f=b[5],g=b[4],h=b[3],j=b[2];return f7(d,e,function(a){return l(i[6],d,iI,[0,c,[67,e,j,h,g,f,a]])})}var +c=[0,b5,b7,b8,b9,function(d,b,c){var +e=b[1],f=b[2];return f7(d,e,function(a){return l(i[6],d,iI,[0,c,[62,e,f,a]])})},b6],id=aOs(c),ih=aOv(c),ii=aOw(c),dY=aOx(c),dZ=aOy(c),ij=aOz(c),il=aOA(c),a2=d[2],d0=d[3],ip=d[4],b_=d[1];function +au(h,b,c,d,e,f,g){return function(a){switch(a[0]){case +0:var +r=a[2],q=0,z=a[3],B=a[1];switch(r[0]){case +0:var +j=X(e72);break;case +1:var +k=r[2],y=0;if(typeof +k==="number"||!(6===k[0]))y=1;else +var +j=k[1][1][2];if(y)q=1;break;default:q=1}if(q)var +j=0;return fU(i[24],h,b,B,c,d,g,j,z);case +1:var +s=a[3],t=a[1],D=a[6],E=a[4],u=n(fQ[6],[0,a[5]],d);if(!u){var +H=BI(c);return L(h,[0,b],[20,H,uE(c),t])}var +p=u[1];if(2<=e&&!D){var +F=C(p),G=m(fY[3],F);return aT(s,function(a){return o(i[7],h,b,A,[0,G,a])})}l(i[6],h,b,[0,E,[0,t,p]]);return aT(s,function(a){return o(i[7],h,b,A,[0,p,a])});case +2:return fU(cn[2],h,[0,b],a[1],0,f,g,c,[0,d,a[2]]);case +3:return fU(cn[2],h,[0,b],a[1],0,g,f,c,[0,a[2],d]);default:var +v=a[1],I=a[3],J=a[2],w=m(fQ[4],d);if(w){var +x=w[1],K=J?rw(x):x;return l(i[6],h,b,[0,I,[0,v,K]])}var +M=BI(c);return L(h,[0,b],[19,M,uE(c),v])}}}function +d1(a,b,c){var +d=c[2],e=c[1];return p(i[19],a,b,0,e73,[0,[1,e,[21,d]],[0,[1,e,[20,d]],[0,d[3],0]]])}function +bv(a,b,c,d){var +e=g_(0),f=C(d);return x(i[27],a,b,f,d,[13,c],e)}function +b$(a,b,c,d){var +e=[0,m(fL,c),[0,d]];return o(i[7],a,b,A,e)}function +ca(a,b,c,d,e){return o(i[7],a,c,b,[0,d,[0,e]])}var +cb=i[7],cc=i[5];function +cd(a,b,c,d,e,f,g){return l(i[6],a,b,[0,e,[45,f[1],f[2],0,f[3],[0,f[4],c,g],[0,f[5]],d,0]])}var +b=[0,b$,ca,cb,d1,cc,cd,function(a,b,c,d,e){var +f=d[4],g=d[3],h=d[2],j=d[1],k=[0,c,[8,j,h,g,gM(f[1],0,f[2]),e]];return l(i[6],a,b,k)},bv],ag=aOC([0,b[3],b[6],b[5],b[8],b[4],b[2],b[1],b[7]]),f=function +d(a,b,c){return d.fun(a,b,c)},d2=function +j(a,b,c,d,e,f,g,h,i){return j.fun(a,b,c,d,e,f,g,h,i)},d3=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},d4=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},d5=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},cp=function +b(a){return b.fun(a)},d6=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},Z=function +d(a,b,c){return d.fun(a,b,c)},aa=function +e(a,b,c,d){return e.fun(a,b,c,d)},F=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},a3=function +e(a,b,c,d){return e.fun(a,b,c,d)},a4=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},ab=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},ac=function +c(a,b){return c.fun(a,b)},ba=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},ad=function +k(a,b,c,d,e,f,g,h,i,j){return k.fun(a,b,c,d,e,f,g,h,i,j)},cq=function +e(a,b,c,d){return e.fun(a,b,c,d)},d7=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},cr=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},cs=function +d(a,b,c){return d.fun(a,b,c)},ct=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bb=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},d8=function +i(a,b,c,d,e,f,g,h){return i.fun(a,b,c,d,e,f,g,h)},cu=function +i(a,b,c,d,e,f,g,h){return i.fun(a,b,c,d,e,f,g,h)},ae=function +i(a,b,c,d,e,f,g,h){return i.fun(a,b,c,d,e,f,g,h)},bw=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},a5=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},d9=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},cv=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},cw=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},a6=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},d_=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},d$=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},ea=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},eb=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},cx=function +k(a,b,c,d,e,f,g,h,i,j){return k.fun(a,b,c,d,e,f,g,h,i,j)},a7=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},bx=function +i(a,b,c,d,e,f,g,h){return i.fun(a,b,c,d,e,f,g,h)},aO=function +c(a,b){return c.fun(a,b)},by=function +m(a,b,c,d,e,f,g,h,i,j,k,l){return m.fun(a,b,c,d,e,f,g,h,i,j,k,l)},ec=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},bc=function +j(a,b,c,d,e,f,g,h,i){return j.fun(a,b,c,d,e,f,g,h,i)},ed=function +k(a,b,c,d,e,f,g,h,i,j){return k.fun(a,b,c,d,e,f,g,h,i,j)},ee=function +e(a,b,c,d){return e.fun(a,b,c,d)},a8=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},W=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},ar=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},as=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},bz=function +j(a,b,c,d,e,f,g,h,i){return j.fun(a,b,c,d,e,f,g,h,i)},av=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},bd=function +e(a,b,c,d){return e.fun(a,b,c,d)},be=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},cy=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},u=function +d(a,b,c){return d.fun(a,b,c)},ak=function +d(a,b,c){return d.fun(a,b,c)},bf=function +e(a,b,c,d){return e.fun(a,b,c,d)},bg=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},bA=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},aw=function +e(a,b,c,d){return e.fun(a,b,c,d)},ax=function +d(a,b,c){return d.fun(a,b,c)},v=function +e(a,b,c,d){return e.fun(a,b,c,d)},ay=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},az=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bh=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bi=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},aP=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},aQ=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},aA=function +e(a,b,c,d){return e.fun(a,b,c,d)},aB=function +e(a,b,c,d){return e.fun(a,b,c,d)},aC=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},aE=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bB=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bC=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},t=function +b(a){return b.fun(a)},I=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},bj=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},J=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},aF=function +c(a,b){return c.fun(a,b)},aH=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},aI=function +i(a,b,c,d,e,f,g,h){return i.fun(a,b,c,d,e,f,g,h)},aK=function +i(a,b,c,d,e,f,g,h){return i.fun(a,b,c,d,e,f,g,h)},N=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},aM=function +e(a,b,c,d){return e.fun(a,b,c,d)},ef=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},eg=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bk=function +j(a,b,c,d,e,f,g,h,i){return j.fun(a,b,c,d,e,f,g,h,i)},aN=function +j(a,b,c,d,e,f,g,h,i){return j.fun(a,b,c,d,e,f,g,h,i)},aR=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bl=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},al=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bm=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},Q=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},bD=function +i(a,b,c,d,e,f,g,h){return i.fun(a,b,c,d,e,f,g,h)},aS=function +d(a,b,c){return d.fun(a,b,c)},bn=function +d(a,b,c){return d.fun(a,b,c)},bE=function +d(a,b,c){return d.fun(a,b,c)},bo=function +d(a,b,c){return d.fun(a,b,c)},bK=function +d(a,b,c){return d.fun(a,b,c)},aV=function +d(a,b,c){return d.fun(a,b,c)},bp=function +d(a,b,c){return d.fun(a,b,c)},bL=function +d(a,b,c){return d.fun(a,b,c)},bM=function +d(a,b,c){return d.fun(a,b,c)},_=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},a9=function +i(a,b,c,d,e,f,g,h){return i.fun(a,b,c,d,e,f,g,h)},bN=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},cz=function +k(a,b,c,d,e,f,g,h,i,j){return k.fun(a,b,c,d,e,f,g,h,i,j)},aW=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},aX=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},aZ=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},bF=function +i(a,b,c,d,e,f,g,h){return i.fun(a,b,c,d,e,f,g,h)},y=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},G=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bO=function +e(a,b,c,d){return e.fun(a,b,c,d)},H=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},am=function +e(a,b,c,d){return e.fun(a,b,c,d)},a_=function +b(a){return b.fun(a)},an=function +d(a,b,c){return d.fun(a,b,c)},P=function +d(a,b,c){return d.fun(a,b,c)},k=function +d(a,b,c){return d.fun(a,b,c)},j=function +e(a,b,c,d){return e.fun(a,b,c,d)},r=function +d(a,b,c){return d.fun(a,b,c)},a0=function +e(a,b,c,d){return e.fun(a,b,c,d)},z=function +c(a,b){return c.fun(a,b)},a1=function +c(a,b){return c.fun(a,b)},bP=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},w=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bq=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bQ=function +e(a,b,c,d){return e.fun(a,b,c,d)},$=function +e(a,b,c,d){return e.fun(a,b,c,d)},bG=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},eh=function +i(a,b,c,d,e,f,g,h){return i.fun(a,b,c,d,e,f,g,h)},a$=function +d(a,b,c){return d.fun(a,b,c)},ei=function +d(a,b,c){return d.fun(a,b,c)},ej=function +d(a,b,c){return d.fun(a,b,c)},br=function +e(a,b,c,d){return e.fun(a,b,c,d)},e=function +c(a,b){return c.fun(a,b)},cA=function +e(a,b,c,d){return e.fun(a,b,c,d)};h(f,function(e,b,c){var +d=b[2],f=b[1];if(e3N([0,f,d]))return adt(e,c,0,[0,f,d]);var +pS=0;if(0!==f[0]){var +hp=0;switch(d[0]){case +0:if(0!==d[2][0])hp=1;break;case +18:break;default:hp=1}if(hp){var +dT=m(uJ(e23),d),dU=Pw(e),qG=dU[1],qz=function(a){return a?n(aJL[4],dT,a[1]):m(aJL[5],dT)},hS=l(lu[6],f,qz,qG),hU=hS===dU[1]?1:0;if(hU){if(j$(e)){var +qH=yq(dT),qI=py(f),qJ=aNp(e);l(uz(e24),qJ,qI,qH)}}else +dU[1]=hS;var +ic=hU;pS=1}}if(!pS)var +ic=0;if(ic)return adt(e,c,e74,[0,f,d]);adt(e,c,0,[0,f,d]);aPE(e,c);var +ib=(aPF[1]+1|0)%gO|0;aPF[1]=ib;if(0===ib)a47(0);if(0===d[0])aej(d[2]);if(ady(e,[0,f,d]))return pE(e,[0,c],0,e76,e75);switch(f[0]){case +3:var +ek=ap(d6,e,c,f[3],f[1],f[4],f[2],d);break;case +25:var +ek=o(cq,e,c,f,d);break;default:var +ek=0}if(ek)return 0;var +pT=0;if(0===d[0]){var +ik=d[2];if(25===ik[0]){var +iq=p(d7,e,c,d[1],ik,f);pT=1}}if(!pT)var +iq=0;if(iq)return 0;var +pU=0;if(1===f[0]){var +pM=f[2];if(typeof +pM==="number"&&!pM){var +is=m(cp,d);pU=1}}if(!pU)var +is=0;if(is)return 0;var +a=0;switch(f[0]){case +0:if(0===d[0]){var +it=d[2],ba=d[1],qP=f[1][2];switch(it[0]){case +0:var +qQ=it[1][2],iu=iO(e,qP),aS=iu[2],cB=iu[1],iv=iO(e,qQ),av=iv[2],cC=iv[1];switch(aS[0]){case +0:var +iw=aS[1];break;case +1:var +bH=aS[1];switch(av[0]){case +0:var +iB=av[1];break;case +1:var +cF=av[1],iC=aeh([0,cB,bH],[0,cC,cF]);return iC?(x(bB,ba,e,c,0,[0,cB,bH],[0,cC,cF]),x(bC,e,c,ba,0,[0,cB,bH],[0,cC,cF]),p(bA,e,c,ba,bH[1],cF[2])):iC;default:var +cG=av[1],iD=ai(cG),qT=ah===iD?cG[1]:O===iD?aq(cG):cG,iB=qT}return p(aP,e,c,0,[0,cB,bH],l(ak,e,A,[0,ba,iB]));default:var +cH=aS[1],iE=ai(cH),qU=ah===iE?cH[1]:O===iE?aq(cH):cH,iw=qU}if(1===av[0])return x(aQ,e,c,ba,0,iw,[0,cC,av[1]]);if(2===aS[0])var +cE=aS[1],iA=ai(cE),qS=ah===iA?cE[1]:O===iA?aq(cE):cE,ix=qS;else +var +ix=aS[1];if(2===av[0])var +cD=av[1],iz=ai(cD),qR=ah===iz?cD[1]:O===iz?aq(cD):cD,iy=qR;else +var +iy=av[1];return l(k,e,c,[0,ix,l(ak,e,A,[0,ba,iy])]);case +2:break;default:a=7}}break;case +1:var +u=f[2],h=f[1],r=0;if(typeof +u==="number")switch(u){case +3:r=7;break;case +0:switch(d[0]){case +3:return o(j,e,c,d[1],[0,f,[0,d[8]]]);case +58:var +uC=d[2];return o($,e,c,m(gU[3],d[1]),uC);case +81:return o(j,e,c,A,[0,d[3],d[4]]);case +89:var +k$=d[2],pV=0;if(0===k$[0]&&k$[1])r=3;else +pV=1;if(pV)return 0;break;case +91:return o(j,e,c,d[1],[0,f,d[2]]);case +100:var +uD=d[2];return o(j,e,c,A,[0,m(h7[4],h),uD]);default:r=3}break;case +1:switch(d[0]){case +10:return l(k,e,c,[0,f,[8,d[1],d[2],[0,d[3]],d[4],d[5]]]);case +20:a=8;break;case +40:var +aF=d[2],aE=d[1];r=2;break;case +49:var +uF=d[2];return o(j,e,c,A,[0,m(aJQ[3],d[1]),uF]);case +77:var +uG=d[4],uI=d[2],uK=d[1];adU(e,0,f,d[3]);var +la=fv(0,h),pW=0;if(typeof +la==="number"&&10===la){var +lb=[1,aj(11,h),2];pW=1}if(!pW)var +lb=[1,h,2];Pr(e,uK[2],uI,1);return o(j,e,c,A,[0,lb,uG]);case +82:var +e_=d[3],e$=d[1],uL=d[2];if(e_)return l(k,e,c,[0,e_[1],[82,e$,uL,e_[2],d[4],d[5]]]);var +fa=d[5];if(1===fa[0]){var +c5=fa[2],pX=0;if(typeof +c5==="number"||!(9===c5[0]))pX=1;else{var +bW=c5[4];if(bW[9]){var +lc=d[4],uM=c5[2];x(ct,e,c,e$,lc,fa[1],[0,bW[4],bW[5],bW[6],bW[10]]);return l(k,e,c,[0,lc,[0,e$,uM]])}r=3}if(pX)r=3}else +r=3;break;default:r=3}break;default:switch(d[0]){case +40:var +aF=d[2],aE=d[1];r=2;break;case +58:var +uN=d[2];return o($,e,c,m(fY[3],d[1]),uN);case +77:var +uO=d[4],uP=d[2],uQ=d[1];adU(e,0,f,d[3]);Pr(e,uQ[2],uP,1);return o(j,e,c,A,[0,f,uO]);case +90:var +uR=d[2],uS=d[1];return o(j,e,c,uS,[0,m(gU[3],h),uR]);default:r=3}}else +switch(u[0]){case +0:var +fb=u[1],hq=0;if(typeof +fb==="number")if(fb&&40===d[0]){var +fg=d[2],ff=d[1];r=6}else +hq=1;else{var +ln=fb[2][1];if(75===d[0]){var +fh=[0,ln];for(;;){if(!(0.=fj-1>>>0&&10===d[0]){var +u6=d[5],u7=d[1];yE(e,d[3]);return o(j,e,c,u7,[0,[1,h,e8G],[0,u6]])}break;case +5:var +ab=u[2],c9=ab[2],ls=ab[5],u9=ab[1],u_=u[1],u$=ab[3];if(ls&&79===d[0]){var +bX=d[8],a1=d[7],lB=d[6],lC=d[5],db=ls[1],lD=lB-1|0,vw=d[2];if(0<=lD){var +cj=c9,dS=lD;for(;;){if(cj){var +qx=cj[2],qy=cj[1];if(0!==dS){var +cj=qx,dS=dS-1|0;continue}var +dc=[0,qy]}else +var +dc=0;break}}else +var +dc=0;if(!dc){var +vC=fA(c9);L(e,[0,c],[62,vw[2],h,vC,lB]);return o(j,e,c,A,[0,a1,[0,bX]])}var +lE=dc[1][1];if(!lE)return o(j,e,c,A,[0,a1,[0,bX]]);var +lF=lE[1];if(0===db[0]){var +lG=db[1],vx=lG[3],vy=lG[2],vz=[0,[0,lF],0],vA=lC?vy:vx,lH=n(aJn,vz,vA);return lH?l(k,e,c,[0,a1,[33,lH[1],bX]]):o(j,e,c,A,[0,a1,[0,bX]])}var +lI=db[2],vB=q(db[1][2],lF)?a1:lC?l(ei,e,a1,lI):l(ej,e,a1,lI);return o(j,e,c,A,[0,vB,[0,bX]])}switch(d[0]){case +2:var +fk=d[3],c$=d[2],da=d[1];if(0!==fk[0])return o(j,e,c,da,[0,f,[0,fk[1]]]);var +bh=fk[1],ly=bh[3],vo=ab[4],vp=bh[8],vq=bh[5],vr=bh[4],vs=bh[2];l(k,e,c,[0,bh[1],[0,da,ab[1][1]]]);uZ(e,2,f,vp);aT(vs,function(a){return L(e,[0,c],[48,c$[2],0,h,0])});if(vq)x(ef,e,c,da,c$,ly,ab);else +x(eg,e,c,da,c$,ly,ab);return o(j,e,c,A,[0,x(G,e,[0,c],c$[2],0,0,vo),[0,vr]]);case +4:var +lz=d[3],lA=d[1],vt=d[5],vu=d[4],vv=d[2];return ap(Q,e,c,hd(e,lz,function(a){return l(k,e,c,[0,u_,[17,h,0,[8,lA,lz,0,vu,a]]])}),lA,vv,f,vt);default:if(!u$&&!ab[5]){var +vg=ab[4];switch(d[0]){case +83:var +vh=d[2],vi=EA(c9),vj=PC(0,e,h);return o(j,e,c,A,[0,aY(vi,vj,function(a){return a[2]}),vh]);case +84:var +vk=d[2],vl=d[1],vm=EA(c9),vn=PC(0,e,h);o(j,e,c,A,[0,vk,aY(vm,vn,function(a){return a[2]})]);var +lx=1-p_(e);return lx?o(j,e,c,A,[0,vg,p(H,e,0,vl,0,e8J)]):lx}}switch(d[0]){case +83:case +84:var +lv=d[2],vf=d[1];p(bu[5],e,c,A,h,[3,lv]);return o(j,e,c,A,[0,m(fL,vf),lv]);default:if(1===d[0]){var +c_=d[3],lt=d[1],va=d[2],vb=u9[1],vc=c_[4],vd=c_[3],ve=c_[1];uZ(e,2,f,c_[8]);o(j,e,c,lt,[0,ve,vb]);return x(aR,e,c,lt,h,vd,[6,g0(0),ab,va,[0,vc]])}r=5}}break;case +6:var +D=u[1],af=D[1],lJ=D[4],lK=D[3],dd=D[2];switch(d[0]){case +4:var +lY=d[1],l0=d[4],vP=d[2];if(0===l0[0]){var +l1=l0[2];if(0===l1[0]&&!q(l1[1],ig)){var +vT=d[5];return o(cA,e,c,m(sf,vP),vT)}}var +l2=d[3],vQ=d[5],vR=d[4],vS=d[2];return ap(Q,e,c,hd(e,l2,function(a){return js(ag[7],e,c,lY,D,vR,h,l2,0,a)}),lY,vS,f,vQ);case +6:var +bY=d[1],fn=d[3];if(0===fn[0]){var +l3=fn[2],vU=fn[1];if(0===l3[0]&&!q(l3[1],ig)){var +l5=aOm(af);if(!l5)return l5;var +l6=af[2],vY=l6?[1,[1,l6[1]],bY]:bY;return L(e,[0,c],[20,vU,e8K,vY])}}var +fp=d[3];if(aOm(af)&&!aOn(fp)){var +vV=BI(fp),vW=uE(fp),l4=af[2],vX=l4?[1,[1,l4[1]],bY]:bY;return L(e,[0,c],[20,vV,vW,vX])}return pI(ed,e,c,bY,d[4],D,d[3],h,d[2],d[6],d[7]);case +8:var +l7=d[1],l8=d[4],vZ=d[2];if(0===l8[0]){var +l9=l8[2];if(0===l9[0]&&!q(l9[1],ig)){var +v3=[0,d[5]];return o(j,e,c,A,[0,m(yo(2),vZ),v3])}}var +l_=d[5],l$=d[2],v0=d[4],v1=d[3],v2=S(v1,function(a){return[0,a,f7(e,l$,function(a){return o(j,e,c,l7,[0,a,[0,l_]])})]});return js(ag[7],e,c,l7,D,v0,h,l$,v2,l_);case +15:var +v4=d[2];return o(j,e,c,A,[0,x(G,e,[0,c],d[1][2],0,0,lK),[0,v4]]);case +45:var +ma=d[5],fq=d[4],fr=d[2],fs=d[1],v5=d[8],v6=d[7],v7=d[6],v8=d[3],mb=p(ag[6],e,c,D,fq,fs);if(!mb){var +v$=[45,fs,fr,v8,fq,ma,S(v7,m(jP[4],D[2])),v6,v5];return l(k,e,c,[0,D[3],v$])}var +md=mb[1],CX=0,v9=md[2],v_=md[1];if(1===fr[0]){var +me=fr[2];if(me){yE(e,me[1][1]);CX=1}}return m(au(e,c,fq,v_,v9,h,fs),ma);case +47:if(d[5]){var +mf=d[4],mg=d[3],mh=d[2],dg=d[1],wb=function(d,b){var +j=gg(function(a){return[44,d,a]},h),a=hX(mh[2],j),f=m(fQ[5],b);if(!f)return L(e,[0,c],[19,a,[0,d],dg]);var +g=f[1],i=gM(a,0,d);return l(k,e,c,[0,mg,[6,dg,a,i,1,1,[0,[0,a,o(ee,e,[0,c],a,g)]],0]])},qF=gz(e,dd);m(m(Y[11],wb),qF);return typeof +af[3]==="number"?o(j,e,c,dg,[0,mg,mf]):o(j,e,c,dg,[0,[25,mh,2],mf])}r=1;break;case +53:var +mj=d[2],ft=d[1],wc=lw(af[3]);l(k,e,c,[0,iH(ft,PR(gz(e,dd),ft)),mj]);return aT(wc,function(a){return l(k,e,c,[0,a[2],[23,0,ft,mj]])});case +54:var +fu=d[3],mk=d[2],ml=d[1],mm=rw(fu),mn=af[3];if(1===mm[0]){var +fx=mm[2],CY=0;if(typeof +fx==="number"||!(1===fx[0]))CY=1;else{var +mw=fx[1];if(typeof +mw!=="number"&&adk(e,dd,mw[2]))return 0}}if(typeof +mn!=="number"){var +wd=mn[1][2];return o(j,e,c,ml,[0,jD(function(a){return mk},fu),wd])}var +mp=rw(fu),pZ=0;if(1===mp[0]){var +fw=mp[2],CZ=0;if(typeof +fw==="number"||!(1===fw[0]))CZ=1;else{var +ms=fw[1];if(typeof +ms!=="number"){var +mt=ms[2],mr=l(aO,e,[0,dd,0],fI(mt)),mq=[0,mt];pZ=1}}}if(!pZ)var +mr=0,mq=0;return L(e,[0,c],[18,mq,mk,h,ml,mr]);case +55:var +we=d[2];return o(j,e,c,A,[0,aOE(e,D,d[1]),we]);case +58:var +dh=d[2],fy=d[1];if(0===dh[0]){var +wg=dh[2],wh=dh[1];return l(k,e,c,[0,wg,[0,wh,aa4(hX(fy[2],h),D,fy)]])}var +wj=dh[1];return l(k,e,c,[0,aa4(h,D,fy),wj]);case +69:var +bZ=d[3],a2=d[2],mx=d[1];if(typeof +bZ==="number"){var +wk=d[4];return o(j,e,c,A,[0,aOk(e,D,a2),wk])}switch(bZ[0]){case +0:r=1;break;case +1:var +wl=d[4],wm=bZ[1],my=function(a,b){if(18===b[0])var +d=1,c=b[2];else +var +d=0,c=b;var +f=[1,[11,C(c)],mx],e=[2,wm,[0,f,a2,[7,1,[0,c,0]]],g_(0)];return d?io(0,0,e):e};return o(j,e,c,A,[0,PN(e,D,a2,my,function(a,b){return my(a,b)}),wl]);case +2:var +wn=d[4],wo=bZ[1],mz=function(a,b){if(18===b[0])var +d=1,c=b[2];else +var +d=0,c=b;var +f=C(c),g=[1,[12,C(a),f],mx],e=[2,wo,[0,g,a2,[7,1,[0,a,[0,c,0]]]],g_(0)];return d?io(0,0,e):e};return o(j,e,c,A,[0,PN(e,D,a2,mz,function(a,b){return mz([1,aj([1,a],a2),[10,a]],b)}),wn]);default:var +wp=d[4];return o(j,e,c,A,[0,aOl(e,D,a2,bZ[1]),wp])}break;case +82:return l(k,e,c,[0,x(G,e,[0,c],h[2],0,0,lK),d]);case +92:return o(j,e,c,A,[0,[1,h,[6,[0,[0,af[1],[0,[0,d[2],d[3]]],af[3]],D[2],D[3],D[4],D[5]]]],[0,d[1]]]);default:if(lJ){var +lL=lJ[1];switch(d[0]){case +1:return l(k,e,c,[0,i_(e,lL),d]);case +83:case +84:var +lU=d[2],vO=d[1],fm=i_(e,lL);if(1===fm[0]){var +df=fm[2],ca=0;if(typeof +df==="number")ca=1;else +switch(df[0]){case +5:var +lV=df[2];if(!lV[3]&&!lV[5])ca=2;break;case +17:var +lW=df[3];if(1===lW[0]){var +C0=0,lX=lW[2];if(typeof +lX==="number"||!(5===lX[0]))C0=1;else +ca=2}break;default:ca=1}switch(ca){case +1:break;case +0:break;default:return l(k,e,c,[0,auA(jD,fm,function(a){return h}),d])}}p(bu[5],e,c,A,h,[3,lU]);return o(j,e,c,A,[0,m(fL,vO),lU])}}var +fl=af[3];if(typeof +fl!=="number"&&56===d[0]){var +lT=fl[1],vK=d[2],vL=lT[4],vM=lT[3],vN=gz(e,D[2]);if(m(Y[2],vN)&&rr([0,vL,2]))return l(k,e,c,[0,vM,vK])}var +vD=D[5],vE=D[2];switch(d[0]){case +48:var +vG=d[4],vH=d[3],vI=d[2],vJ=d[1];return P4(e,vG,[0,h,0],function(a){return 0===a?o(j,e,c,A,[0,adS(e,vE,vD,fl,vJ,h,vI),vH]):0});case +56:var +lS=d[2],lR=d[1];r=8;break;default:r=1}}break;case +7:var +t=u[1],cb=0;switch(t[0]){case +0:if(92===d[0])return o(j,e,c,A,[0,[1,h,[7,[0,[0,[0,d[2],d[3]]],t[2],t[3]]]],[0,d[1]]]);cb=1;break;case +1:var +mN=t[4],wZ=t[3],w0=t[2];switch(d[0]){case +8:var +mO=d[4];if(0===mO[0]){var +mP=mO[2];if(0===mP[0]){if(!q(mP[1],I6)){var +w1=d[5],w2=lZ(d);return x(ag[5],e,c,h,mN,w2,w1)}cb=1}}break;case +92:return o(j,e,c,A,[0,[1,h,[7,[1,[0,[0,d[2],d[3]]],w0,wZ,mN]]],[0,d[1]]]);default:cb=1}break;default:if(92===d[0])return o(j,e,c,A,[0,[1,h,[7,[2,t[1],[0,[0,d[2],d[3]]]]]],[0,d[1]]]);cb=1}if(cb)switch(d[0]){case +4:var +mA=d[4],wr=d[2];if(0===mA[0]){var +mB=mA[2];if(0===mB[0]&&!q(mB[1],ig)){var +ws=d[5];return o(cA,e,c,m(sf,wr),ws)}}break;case +6:var +mC=d[3];if(0===mC[0]){var +mD=mC[2];if(0===mD[0]&&!q(mD[1],ig))return 0}break;case +8:var +mE=d[4],wt=d[2];if(0===mE[0]){var +mF=mE[2];if(0===mF[0]&&!q(mF[1],ig)){var +wu=[0,d[5]];return o(j,e,c,A,[0,m(yo(2),wt),wu])}}break;case +28:return 0;case +47:if(!d[5]){var +fz=d[4],fB=d[3],fC=d[2],di=d[1];switch(t[0]){case +0:var +mG=t[3],wv=t[2];if(mG){var +ww=ts(mG[1][1]);return fo(function(a){return l(k,e,c,[0,a,[47,di,fC,fB,fz,Oo]])},ww)}var +mH=wv;break;case +1:var +wx=t[3];return Vs(function(a,b){var +d=b[3],f=b[2];if(1-rr([0,b[4],2]))L(e,[0,c],[35,h,a,f,di]);return l(k,e,c,[0,d,[47,di,fC,fB,fz,Oo]])},wx);default:var +mH=t[1]}return l(k,e,c,[0,mH,[47,di,fC,fB,fz,Oo]])}break;case +51:var +bi=d[3],hs=0,wy=d[4],wz=d[2];switch(t[0]){case +0:var +mI=t[3];if(mI)var +mJ=mI[1],mK=mJ[2],wA=mK[2],wB=mK[1],wC=t[2],wD=t[1],wE=Wy(mJ[1],bi),wF=ua(wA-bi|0,0),fD=[0,wD,wC,[0,[0,wE,[0,ua(wB-bi|0,0),wF]]]];else +hs=1;break;case +1:var +mL=t[4],wG=mL[1],wH=t[3],wI=t[2],wJ=t[1],wK=ua(mL[2]-bi|0,0),wL=[0,ua(wG-bi|0,0),wK],fD=[1,wJ,wI,Wy(wH,bi),wL];break;default:hs=1}if(hs)var +fD=t;return o(j,e,c,A,[0,[1,wz,[7,fD]],wy]);case +69:var +fE=d[3];if(typeof +fE!=="number"&&0===fE[0]){var +mM=d[2],wM=d[4],wN=fE[1],wO=d[1],b0=function(a){var +b=[1,[10,C(a)],wO];return[2,wN,[0,b,mM,[7,1,[0,a,0]]],g_(0)]};switch(t[0]){case +0:var +wP=t[3],wQ=t[2],wR=t[1],wS=S(wP,function(a){var +b=a[2],c=a[1];return[0,K(c,function(a){var +b=a[5],c=a[4],d=a[2],e=a[1];return[0,e,d,b0(a[3]),c,b]}),b]}),fF=[0,wR,b0(wQ),wS];break;case +1:var +wT=t[4],wU=t[3],wV=t[2],wW=t[1],wX=K(wU,function(a){var +b=a[5],c=a[4],d=a[2],e=a[1];return[0,e,d,b0(a[3]),c,b]}),fF=[1,wW,b0(wV),wX,wT];break;default:var +wY=t[2],fF=[2,b0(t[1]),wY]}return o(j,e,c,A,[0,[1,aj(25,mM),[7,fF]],wM])}break}if(0===t[0]){var +wq=t[2];switch(d[0]){case +4:case +6:case +8:case +45:return l(k,e,c,[0,p(_,e,h,0,e8L,[0,wq,0]),d])}}else +switch(d[0]){case +4:case +6:case +8:case +45:return l(k,e,c,[0,p(_,e,h,0,e8M,[0,uH(t),0]),d])}break;case +8:var +ax=u[1];switch(d[0]){case +4:var +mQ=d[3],mR=d[1],w3=d[5],w4=d[4],w5=d[2],mS=[0,h,ie(e,h)];l(k,e,c,[0,ax,[14,mS]]);return ap(Q,e,c,hd(e,mQ,function(a){return l(k,e,c,[0,[0,mS],[17,h,0,[8,mR,mQ,0,w4,a]]])}),mR,w5,f,w3);case +5:return l(k,e,c,[0,ax,[17,h,0,[5,d[1],d[2],d[3],d[4],d[5],1,d[7]]]]);case +7:return l(k,e,c,[0,ax,[17,h,0,[7,d[1],d[2],d[3],d[4],d[5],1,d[7],d[8],d[9]]]]);case +8:var +mT=d[4];if(0===mT[0]){var +mU=mT[2];if(0===mU[0]){if(!q(mU[1],sU)){var +w6=d[5];return o(j,e,c,A,[0,x(G,e,[0,c],h[2],0,0,ax),[0,w6]])}a=1}else +a=1}else +a=1;break;case +9:return l(k,e,c,[0,ax,[17,h,0,[9,d[1],d[2],d[3],d[4],1,d[6]]]]);case +19:var +dj=d[2],w7=d[6],w8=d[5],w9=d[4],w_=d[3],w$=d[1],mV=aj(44,h),mW=dj[2];aT(w_,function(a){return L(e,[0,c],[48,mW,1,C(ax),0])});var +xa=hd(e,dj,function(a){var +b=F5(0,w9,0,0,a);return l(k,e,c,[0,ax,[4,w$,dj,mV,gM(mV,0,e8N),[0,b,w7,0]]])});return l(k,e,c,[0,xa,[50,mv(mW,dj),ax,w8]]);case +42:return x(bG,e,c,d[1],0,ax,d[3]);case +83:case +84:return o(j,e,c,A,[0,f,l(bu[2],e,h,d[2])]);default:r=5}break;case +9:var +v=u[4],ay=u[2],fG=u[1],xb=u[3];switch(d[0]){case +4:var +m4=d[4],m5=d[3],m6=d[2],fM=d[1],xl=d[5];return ap(Q,e,c,hd(e,m5,function(a){var +b=fU(bF,e,c,h,m5,1,f,m4,[0,fM,f,a]);return y5(ag[3],e,c,fM,f,0,1,ay,b,v,m4,m6,a)}),fM,m6,f,xl);case +5:var +m7=d[6],fN=d[3],m8=d[2],m9=d[1],xm=d[7],xn=d[5],xo=d[4],m_=ie(e,fN),xp=[0,[0,fN,m_]],m$=m7?p9(0,0,f):f;y5(by,e,1,c,m$,h,v,m9,m8,xo,xn,m7,[0,fN,m_]);return ap(Q,e,c,xp,m9,m8,m$,xm);case +6:var +na=d[3],nb=d[2],nc=[1,d[1],f,d[7],d[6],d[5],d[4]];return l(k,e,c,[0,f,[45,nb,fU(bF,e,c,h,nb,1,f,na,nc),0,na,nc,0,1,1]]);case +7:var +fO=d[5],nd=d[4],fP=d[3],b1=d[2],dl=d[1];if(!fO)return L(e,[0,c],[24,[0,b1,h],[0,fP],dl]);var +ne=d[9],nf=d[8],ng=d[7],nh=d[6],xq=fO[2];if(!mu(fO[1][1],v[2]))return l(k,e,c,[0,f,[7,dl,b1,fP,nd,xq,nh,ng,nf,ne]]);var +xs=nh?v[12]:v[11],fR=[0,fP],xt=gz(e,xs),ni=n(Y[27],fR,xt);if(!ni)return L(e,[0,c],[24,[0,b1,h],fR,dl]);var +xu=ni[1],xv=gM(b1,0,fR);return m(au(e,c,xv,m(fQ[1],xu),1,h,b1),[1,dl,f,ne,nf,ng,nd]);case +8:var +nj=d[1],nk=d[4];if(0===nk[0]){var +nl=nk[2];if(0===nl[0]&&!q(nl[1],ig)){var +xy=d[5];return o(j,e,c,A,[0,p9(0,h[4],f),[0,xy]])}}var +nm=d[5],nn=d[4],no=d[2],xw=d[3],xx=fU(bF,e,c,h,no,0,f,nn,[0,nj,f,nm]);return y5(ag[3],e,c,nj,f,xw,0,ay,xx,v,nn,no,nm);case +9:return y5(by,e,0,c,f,h,v,d[1],d[2],d[3],d[4],d[5],d[6]);case +14:var +np=d[1];return l(k,e,c,[0,fG,[17,np[1],0,[0,A,[0,np]]]]);case +15:var +xz=d[2];return o(j,e,c,A,[0,x(G,e,[0,c],d[1][2],0,0,ay),[0,xz]]);case +20:var +fS=d[3],xA=fS[3],xB=fS[2],xC=fS[1],xD=d[2],xE=d[1],fT=function(a){return x(d8,e,c,xE,xD,h,a)},xF=fT(f);n(Y[11],xF,xC);var +xG=function(a,b){var +c=aPH(a);return c?n(fT(f),a,b):c};n(Y[11],xG,xB);var +xH=function(a,b){var +c=aPH(a);return c?n(fT(fG),a,b):c};return n(Y[11],xH,xA);case +45:var +nr=d[8],ns=d[7],fW=d[5],dm=d[4],fX=d[2],dn=d[1],nt=fW[1],xI=d[6],xJ=d[3],nu=ap(ag[2],e,c,nt,nr,v,dm,dn);if(!nu)return l(k,e,c,[0,ay,[45,dn,fX,xJ,dm,fW,S(xI,function(a){if(!n(jP[3],v[4],a)&&!n(jP[3],v[5],a)){var +b=n(jP[4],v[4],a);return m(m(jP[4],v[5]),b)}return a}),ns,nr]]);var +nv=nu[1],xK=nv[2],C1=0,xL=aOB(e,c,nt,ns,dn,dm,nv[1]);if(1===fX[0]){var +nw=fX[2];if(nw){yE(e,nw[1][1]);C1=1}}return m(au(e,c,dm,m(fQ[1],xL),xK,h,dn),fW);case +48:var +nx=d[2],bj=d[1],xM=d[3],xN=f7(e,bj,function(a){return l(k,e,c,[0,ay,[17,h,0,[48,bj,nx,a,g0(0)]]])}),ny=[0,[0,bj]],xO=adS(e,v[4],0,0,bj,h,nx),xP=[0,adv(0)],xQ=[0,[0,[1,xO],0],0,g0(0),0,0];return o(j,e,c,ny,[0,f7(e,bj,function(a){return l(k,e,c,[0,xN,[70,ny,bj,e8O,[0,xP,xQ],a]])}),xM]);case +53:var +nz=d[2],f0=d[1];l(k,e,c,[0,iH(f0,PR(gz(e,v[4]),f0)),nz]);var +nA=v[10];return nA?l(k,e,c,[0,nA[1][2],[23,0,f0,nz]]):0;case +54:var +f1=d[1],dp=d[3],nB=d[2],ht=0;switch(dp[0]){case +1:var +f2=dp[2],C2=0;if(typeof +f2==="number"||!(1===f2[0]))C2=1;else{var +nC=f2[1];if(typeof +nC!=="number"){var +dq=nC[2];ht=1}}break;case +3:var +nE=dp[3];if(1===nE[0]){var +f3=nE[2],C3=0;if(typeof +f3==="number"||!(1===f3[0]))C3=1;else{var +nF=f3[1];if(typeof +nF!=="number"){var +dq=nF[2];ht=1}}}break}if(!ht)return L(e,[0,c],[18,0,d[2],h,f1,0]);var +xR=gz(e,v[4]);if(n(Y[27],dq,xR))return 0;var +xS=fI(dq),xT=[18,[0,dq],nB,h,f1,l(aO,e,[0,v[4],0],xS)],nD=v[10];if(!nD)return L(e,[0,c],xT);var +xU=nD[1][2];return o(j,e,c,f1,[0,jD(function(a){return nB},dp),xU]);case +56:var +lS=d[2],lR=d[1];r=8;break;case +82:var +dr=d[5];if(1===dr[0]){var +b2=dr[2];if(typeof +b2!=="number"&&9===b2[0]){var +a3=b2[4],ds=dr[1],nG=d[2],dt=d[1],xV=b2[2],xW=b2[1],xX=d[4],xY=d[3];if(mu(v[2],a3[2])){var +xZ=v[3],x0=a3[3];return ap(cr,e,c,dt,h,gg(function(a){if(typeof +a!=="number"&&70===a[0])return a[1];return a},nG),xZ,x0)}if(aJ_(e[4][27],[0,v[2],v[1]],[0,a3[2],a3[1]])){var +x1=fA(a3[3]);if(fA(v[3])===x1){var +nH=[0,[7,h,h,ds]],nI=function(a,b){return l(cs,e,a,[0,b[4],b[5],b[6],b[10]])},x2=nI(ds,a3);x(w,e,c,nH,0,nI(h,v),x2);var +nJ=function(a,b){return x(d9,e,A,a,b,e8P,g_(0))},x3=nJ(ds,xW);x(w,e,c,nH,0,nJ(h,fG),x3);o(j,e,c,dt,[0,ay,xV]);return ap(cr,e,c,dt,h,ds,v[3],a3[3])}}return l(k,e,c,[0,ay,[17,h,0,[82,dt,nG,V(xY,xb),xX,dr]]])}r=1}else +r=1;break;default:var +fH=v[6],mX=v[5],fJ=v[4],xc=v[2],xd=v[9],xe=v[10];switch(d[0]){case +47:if(d[5]){var +m0=d[3],m1=d[2],fK=d[1],xf=d[4],xg=gz(e,fJ),xh=gz(e,mX),xi=l(Y[32],0,xg,xh),xj=function(a,b){var +d=m(fQ[5],b);if(!d)return L(e,[0,c],[19,h,[0,a],fK]);var +f=d[1];return l(k,e,c,[0,m0,[6,fK,m1,gM(m1,0,a),1,1,f,0]])};m(m(Y[11],xj),xi);return o(j,e,c,fK,[0,m0,xf])}r=1;break;case +55:var +xk=d[2];return o(j,e,c,A,[0,aOF(e,fJ,xe,d[1]),xk]);case +96:var +m2=d[2],m3=d[1],hW=adM(e,e36),hu=0;if(hW){var +h0=hW[1];if(0===h0[0]){var +h1=iO(e,h0[1][2])[2],p0=0;if(2===h1[0]){var +ck=h1[1],h2=ai(ck),h3=ah===h2?ck[1]:O===h2?aq(ck):ck;if(1===h3[0]){var +dV=h3[2],C4=0;if(typeof +dV==="number"||!(17===dV[0]))C4=1;else{var +h4=dV[3];if(4===h4[0]){var +h8=h4[2];if(1===h8[0]){var +dW=h8[2],C5=0;if(typeof +dW==="number"||!(9===dW[0]))C5=1;else{var +dk=[0,dW[4][2]];p0=1}}}}}}if(!p0)var +dk=0}else +hu=1}else +hu=1;if(hu)var +dk=0;return dk?mu(dk[1],xc)?L(e,[0,c],[qX,m3[2],m2]):l(k,e,c,[0,ay,[96,m3,m2]]):0;default:if(xd&&21===d[0]){var +mY=d[2],mZ=d[1];x(ct,e,c,mZ,mY,h,[0,fJ,mX,fH,v[10]]);return l(k,e,c,[0,ay,[17,h,0,[21,mZ,mY]]])}if(fH){if(1===d[0])return l(k,e,c,[0,i_(e,fH[1]),d]);r=1}else +r=1}}break;case +10:var +nK=u[1];if(0===nK[0]&&!(q(nK[1],g)||!(40===d[0]))){var +aF=d[2],aE=d[1];r=2}else +r=4;break;case +12:if(u[1][1]!=0.||!(40===d[0]))r=4;else{var +aF=d[2],aE=d[1];r=2}break;case +13:if(u[1]||!(40===d[0]))r=4;else{var +aF=d[2],aE=d[1];r=2}break;case +17:switch(d[0]){case +17:var +yF=d[3];return l(k,e,c,[0,p(y,e,[0,c],d[1],[0,d[2]],f),yF]);case +44:if(d[4]){var +dy=d[3],gk=d[2];return l(k,e,c,[0,dy[1],[44,d[1],[0,dy[2],dy[3],dy[4]],[0,f,gk[1],gk[2],gk[3]],0]])}break}var +I=u[3],J=u[2],P=u[1],f4=u[4];switch(d[0]){case +19:var +nN=d[6],nO=d[4],nP=d[3],ga=d[2],gb=d[1],x$=d[5];return l(k,e,c,[0,x(a6,e,c,0,[0,h,P,J,I],[0,gb,ga,nP,nN],[O,function(a){return[0,f,[0,P,J,I],[0,gb,ga,[2,nP,nO]]]}]),[19,gb,ga,0,nO,x$,nN]]);case +33:var +b3=d[1],hv=0;if(typeof +b3!=="number")switch(b3[0]){case +2:var +gc=b3[1],C6=0;if(typeof +gc==="number"||!(4===gc[0]))C6=1;else if(!gc[1])hv=1;break;case +4:if(!b3[1])hv=1;break}return hv?l(k,e,c,[0,x(d_,e,c,A,lZ(d),h,[0,P,J,I]),d]):p(W,e,c,d[2],f,b3);case +41:var +ya=d[6],yb=d[4],yc=d[3],yd=d[2],ye=d[1];return o(j,e,c,A,[0,Qu(d0,e,c,ye,yd,yc,[0,yb],f4,P,J,I,f9(d[5],0)),ya]);case +43:var +yf=d[4],yg=d[3],yh=d[2];return p(cv,e,[0,c],yh,yf,[0,gl(J),yg]);case +44:var +dv=d[3],nQ=dv[1];if(1===nQ[0]){var +bk=nQ[2],p1=0;if(typeof +bk==="number"||!(17===bk[0]))p1=1;else{if(!d[4]){var +gd=dv[4],ge=dv[2],nR=bk[4],gf=d[2],gh=gf[3],gi=gf[1],b4=d[1],yi=dv[3],yj=bk[3],yk=bk[2],yl=bk[1],ym=gf[2];if(ao(f4,nR)){var +yn=fA(ge);if(fA(gi)===yn){var +at=I;for(;;){var +hw=0;switch(at[0]){case +0:var +dX=iO(e,at[1][2])[2],hx=0;switch(dX[0]){case +0:var +h9=dX[1];hx=1;break;case +1:var +gj=0;hw=1;break;default:var +cl=dX[1],h_=ai(cl),qO=ah===h_?cl[1]:O===h_?aq(cl):cl,h9=qO;hx=1}if(hx){var +at=h9;continue}break;case +1:var +cm=at[2];if(typeof +cm!=="number")switch(cm[0]){case +16:var +at=cm[2];continue;case +17:var +at=cm[3];continue}break;case +2:var +C7=0,h$=at[2][3];if(typeof +h$==="number"||!(14===h$[0]))C7=1;else{var +gj=1;hw=1}break;case +6:var +at=at[3];continue}if(!hw)var +gj=0;if(!gj)return fU(eh,e,c,b4,gh,gd,Vt(function(a,b){return[0,a,b]},gi,ge),P,J);break}}}if(typeof +Oi(b4)==="number")var +nT=yi,nS=ym;else +var +nT=b4,nS=b4;var +yp=pI(cz,e,c,nT,gd,gh,f4,P,J,I,gi);return l(k,e,c,[0,yp,[0,b4,pI(cz,e,c,nS,gh,gd,nR,yl,yk,yj,ge)]])}a=1}if(p1)a=1}else +a=1;break;case +71:var +aH=d[3],dw=d[2],dx=d[1];switch(aH[0]){case +1:var +nU=aH[7],nV=aH[6],nW=aH[4],nX=aH[3],nY=aH[2],nZ=aH[1],yr=aH[5],yu=[0,h,P,J,I],yv=[0,dx,dw,nV,nU],yw=[0,P,J,I];return l(k,e,c,[0,x(a6,e,c,0,yu,yv,[O,function(a){return aM6(f,yw,dx,dw,nZ,nY,nX,nV,nW)}]),[71,dx,dw,[1,nZ,nY,nX,nW,yr,0,nU,1]]]);case +0:case +2:case +5:a=1;break;default:return l(k,e,c,[0,ap(bt[4],e,c,dx,dw,h,J,I),d])}break;case +79:var +n0=d[4],bl=d[2],n1=d[1],yx=d[8],yy=d[7],yz=d[6],yA=d[5],yB=d[3],yC=[0,bl,ie(e,bl)],n2=o(ys(2,bl),yB,n0,0,yC),yD=[O,function(a){return ac8(f,[0,P,J,I],A,bl,n2)}];return l(k,e,c,[0,x(a6,e,c,e8R,[0,h,P,J,I],[0,n1,bl,n2[2],kG],yD),[79,n1,bl,0,n0,yA,yz,yy,yx]]);default:if(4===I[0]){var +nM=I[2];if(1===nM[0]){var +f8=nM[2],C8=0;if(typeof +f8!=="number"&&9===f8[0]){if(22===d[0]){var +f$=d[1],x9=[0,A,d[2]],x_=wi([1,f$,[9,[9,f$],[9,f$],0,f8[4]]],I[3],I[4]);return l(k,e,c,[0,yt(g_(0),P,J,x_),x9])}C8=1}}if(2===d[0]){var +x7=d[2],x8=d[1];return l(k,e,c,[0,ap(cw,e,c,x8,x7,h,[0,P,J,I],gl(iN(function(a){return[1,a[3]]},J))),d])}}if(2===d[0]){var +f5=d[3],f6=d[2],du=d[1];if(0!==f5[0])return o(j,e,c,du,[0,f,[0,f5[1]]]);var +nL=d[4],az=f5[1],x5=[O,function(a){return ac8(f,[0,P,J,I],du,f6,az)}],x6=x(a6,e,c,e8Q,[0,h,P,J,I],[0,du,f6,az[2],nL],x5);return l(k,e,c,[0,x6,[2,du,f6,[0,[0,az[1],0,az[3],az[4],az[5],az[6],az[7],az[8]]],nL]])}}break;case +18:switch(d[0]){case +6:case +8:case +10:case +11:case +12:return l(k,e,c,[0,p(H,e,[0,c],h,0,e8S),d]);default:var +gm=u[4];if(gm&&99===d[0]){if(d[4]){var +n3=d[2],n4=[1,n3,[19,[0,gm[1],gm[2],u[3]]]],yG=d[7],yH=d[3],yI=d[5]?[1,n3,[19,[1,yG,n4]]]:n4;return o(j,e,c,A,[0,yI,yH])}a=2}else +r=5}break;case +19:var +gn=u[1],dO=0;if(0===gn[0])if(iZ===d[0]){var +i0=d[2],iY=d[1];a=12}else +dO=1;else{var +n5=gn[2];if(16===n5[0]){if(18===d[0]){var +n6=d[2],go=d[1],yP=d[4],yQ=d[3],yR=n5[2],yT=gn[1],yU=p_(e),yV=function(a){return Om(yU,n6,a)},yW=l(aG[9],0,yV,yR),yX=go[4],pN=wa(yX,hX(go[2],h)),n7=n6?aj(fv(0,go),pN):pN;return l(k,e,c,[0,yP,[0,yQ,[1,n7,[19,[1,yT,[16,n7,yW]]]]]])}dO=1}else +dO=1}if(dO)switch(d[0]){case +99:return o(j,e,c,A,[0,[1,d[2],u],d[3]]);case +101:if(d[4]){var +yJ=d[5],yM=d[2],yO=d[1];return o(j,e,c,yO,[0,p(y,e,[0,c],d[3],e8T,f),[1,yM,[19,yJ]]])}a=2;break}break;case +20:var +gp=u[1],hy=0;switch(d[0]){case +87:return l(k,e,c,[0,d[2],[88,d[1],[0,h,gp]]]);case +89:var +b5=d[2],y4=d[1];if(0===b5[0]){if(!b5[1])return pI(cx,e,c,y4,h,gp,b5[2],b5[3],b5[4],d[3],d[4]);a=3}else +hy=1;break;default:hy=1}if(hy&&89===d[0]){var +n8=d[2],yY=d[1],yZ=gp[2];if(0!==n8[0]){var +y0=d[3],y1=n8[1],y2=m(bd9,yZ),y3=S(y2,function(a){return a[1]});fo(function(a){return L(e,0,[ou,a,h,y3])},y1);return p(a7,e,c,yY,0,y0)}a=3}break;case +21:var +n9=u[1],hz=0;switch(d[0]){case +4:var +n_=d[4],gq=d[3],n$=d[1],y6=d[2];if(0===n_[0]){var +y7=d[5];return ap(Q,e,c,hd(e,gq,function(a){return l(k,e,c,[0,d1(e,gq,[0,h,n9]),[8,n$,gq,0,n_,a]])}),n$,y6,f,y7)}a=6;break;case +6:var +oa=d[7],gs=d[2];hz=1;break;case +8:var +gu=d[4],y8=d[2],y9=d[1];if(0===gu[0])return x(ag[4],e,c,h,n9,[0,y9,y8,0,[0,gu[1],gu[2]]],d[5]);a=6;break;case +10:var +ob=d[2];return l(k,e,c,[0,f,[8,[0,[20,ob]],ob,0,d[4],d[5]]]);case +11:var +oa=d[6],gs=d[2];hz=1;break;case +12:var +y_=d[7],oc=C(d[6]);L(e,[0,c],[nq,0,0,oc,h]);return o(j,e,c,A,[0,m(fL,oc),[0,y_]]);case +31:var +y$=C(f)[2];GS(l(j,e,c,A),0,e,y$,d);return L(e,[0,c],[pQ,h,0]);case +55:var +od=d[1],za=d[2];L(e,[0,c],[qr,od,h]);return o(j,e,c,A,[0,m(fL,od),za]);case +56:var +oe=d[1],zb=d[2];L(e,[0,c],[mi,oe,h]);return l(k,e,c,[0,m(fL,oe),zb])}if(hz){L(e,[0,c],[qf,gs[2],h]);return aT(oa,function(a){return o(j,e,c,A,[0,m(fL,gs),a])})}break;default:r=7}var +dP=0;switch(r){case +0:break;case +7:break;case +3:if(95===d[0]){var +uA=d[1],uB=[0,d[4]];return o(j,e,c,uA,[0,m(gU[3],h),uB])}dP=1;break;case +4:if(17===d[0]){var +x4=d[3];return l(k,e,c,[0,p(y,e,[0,c],d[1],[0,d[2]],f),x4])}break;case +1:if(2===d[0]){var +lM=d[2],p3=0,vF=d[1];if(1===f[0]){var +de=f[2],cc=0;if(typeof +de==="number")cc=1;else +switch(de[0]){case +6:var +lO=de[1][4];if(lO){var +lP=lO[1];cc=2}break;case +9:var +lQ=de[4][6];if(lQ){var +lP=lQ[1];cc=2}break;default:cc=1}switch(cc){case +0:break;case +1:break;default:var +lN=i_(e,lP);p3=1}}if(!p3){L(e,[0,c],[18,aPJ,aj([41,aPJ],lM),h,vF,0]);var +lN=m(fL,lM)}return l(k,e,c,[0,x(G,e,[0,c],h[2],0,0,lN),d])}dP=1;break;case +5:dP=1;break;case +8:return l(k,e,c,[0,m(h7[3],lR),lS]);case +6:return o(j,e,c,A,[0,m(k3[2],ff[2]),[0,fg]]);default:return o(j,e,c,A,[0,[1,aj(e8E,aE),e8F],[0,aF]])}if(dP){var +bq=0;if(typeof +u==="number")switch(u){case +0:bq=2;break;case +3:bq=1;break;default:switch(d[0]){case +47:if(d[5])return o(j,e,c,d[1],[0,d[3],d[4]]);a=1;break;case +48:var +uw=d[3];return o(j,e,c,A,[0,PC(0,e,d[1]),uw]);case +91:var +ux=d[2],uy=d[1];return o(j,e,c,uy,[0,m(gU[3],h),ux])}}else +switch(u[0]){case +9:bq=2;break;case +6:if(u[1][4])bq=1;break;default:bq=1}switch(bq){case +0:break;case +2:break;default:if(32===d[0])return L(e,[0,c],[sW,d[2],d[1],h[2],0])}}break;case +2:var +gv=f[2],zc=f[1];if(0===d[0]){var +of=d[2];if(2===of[0]&&aaI(f[3],of[3])){var +og=j$(e);return og?kS(e8U):og}}return l(k,e,c,[0,ap(bw,e,c,gv[1],gv[2],zc,gv[3],f[3])[2],d]);case +4:var +gw=f[2];if(1===gw[0]){var +gx=gw[2],C9=0;if(typeof +gx!=="number"&&9===gx[0]){if(22===d[0]){var +gy=d[1],zh=[0,A,d[2]];return l(k,e,c,[0,wi([1,gy,[9,[9,gy],[9,gy],0,gx[4]]],f[3],f[4]),zh])}C9=1}}var +zd=f[4];switch(d[0]){case +17:var +ze=d[3];return l(k,e,c,[0,p(y,e,[0,c],d[1],[0,d[2]],f),ze]);case +42:var +zf=d[3],zg=d[1];return x(bG,e,c,zg,0,hY(e,0,0,n(aU[6],zd,d[2]),gw),zf);case +43:if(!d[3])return 0;a=1;break}break;case +6:if(17===d[0]){var +zm=d[3];return l(k,e,c,[0,p(y,e,[0,c],d[1],[0,d[2]],f),zm])}var +zi=f[4],zj=f[3],zk=f[2],zl=f[1];switch(d[0]){case +4:case +5:return l(k,e,c,[0,fU(a9,e,[0,c],zk,lZ(d),zl,e8V,zj,zi),d])}break;case +8:var +zn=f[1];switch(d[0]){case +15:var +zo=d[2];return o(j,e,c,A,[0,[9,hX(d[1][2],zn)],[0,zo]]);case +20:a=8;break}break;case +9:switch(d[0]){case +14:var +oh=d[1];return l(k,e,c,[0,f,[17,oh[1],0,[0,A,[0,oh]]]]);case +15:var +zp=d[2];return o(j,e,c,A,[0,m(i7[3],d[1]),[0,zp]]);case +20:a=8;break;case +47:if(d[5])return o(j,e,c,d[1],[0,d[3],d[4]]);a=1;break;case +48:var +zq=d[3];return o(j,e,c,A,[0,ir(e,d[1],0,0,0,0,0,0,f),zq])}break;case +11:var +gA=f[1];switch(d[0]){case +2:var +oi=d[3],b6=d[2],gB=d[1];if(0===oi[0]){var +oj=d[4],F=oi[1],b7=F[3],gC=F[1],p4=0;if(0===gB[0]){var +aA=gB[1],hA=0;if(typeof +aA!=="number")switch(aA[0]){case +15:var +or=[0,[15,aA[1],aA[2],0,aA[4]]];hA=1;break;case +16:var +or=[0,[16,aA[1],aA[2],aA[3],0,aA[5]]];hA=1;break}if(hA){var +b8=or;p4=1}}if(!p4)var +b8=gB;if(!b7){var +zw=F[8],zx=F[7],zy=F[6],zz=F[5],zA=F[4],zB=F[2];return l(k,e,c,[0,gC,[2,b8,b6,[0,[0,m(fY[3],b6),zB,0,zA,zz,zy,zx,zw]],oj]])}var +dz=b7[1],hB=0;if(0===dz[0]){var +gD=b7[2],zr=dz[1];if(!gD)return l(k,e,c,[0,gC,[2,b8,b6,[0,[0,zr,F[2],0,F[4],F[5],F[6],F[7],F[8]]],oj]]);var +ok=gD[1];if(0!==ok[0]&&!gD[2]){var +oo=ok[1];hB=1}}else{var +gE=b7[2],op=dz[1];if(gE){var +oq=gE[1];if(0!==oq[0]&&!gE[2]){var +zv=oq[1];L(e,[0,c],[73,iG(op),21]);return L(e,[0,c],[73,iG(zv),21])}}else{var +oo=op;hB=1}}if(hB)return L(e,[0,c],[73,iG(oo),21]);var +ol=b7[2],om=ol[1];if(0===om[0]&&!ol[2]){var +zs=om[1],on=[0,[1,zs],0],zt=l(an,e,c,dz),zu=[0,zt,F[2],on,F[4],F[5],F[6],F[7],F[8]];return o(j,e,c,A,[0,gC,f7(e,b6,function(a){return x(aR,e,c,b8,b6,on,[7,zu,a])})])}return L(e,[0,c],[gt,s(32,gA[2]),gA,2,b8])}a=4;break;case +4:var +gI=d[5],gH=d[4],dB=d[3],gG=d[2],dA=d[1],gF=gA;a=9;break}break;case +12:var +os=f[1];switch(d[0]){case +2:var +gJ=d[3],ot=d[2],ov=d[1];if(0!==gJ[0])return o(j,e,c,ov,[0,f,[0,gJ[1]]]);var +aI=gJ[1],gK=aI[3];if(gK){var +zC=gK[2],zD=gK[1],zE=aI[2],zF=aI[1];aT(zE,function(a){return L(e,[0,c],[48,ot[2],0,os,0])});var +zG=l(an,e,c,zD);return l(k,e,c,[0,zF,[1,ov,ot,[0,zG,0,zC,aI[4],aI[5],aI[6],aI[7],aI[8]]]])}a=4;break;case +4:var +gI=d[5],gH=d[4],dB=d[3],gG=d[2],dA=d[1],gF=os;a=9;break}break;case +13:var +zH=f[1];switch(d[0]){case +2:var +ow=d[3],dC=d[2],gL=d[1];if(0===ow[0]){var +gN=d[4],E=ow[1],gP=E[3],gQ=E[1],p5=0;if(0===gL[0]){var +ac=gL[1],cd=0;if(typeof +ac==="number")cd=1;else +switch(ac[0]){case +15:var +ox=ac[3];if(ox){var +oy=[0,[15,ac[1],ac[2],ox[2],ac[4]]];cd=2}break;case +16:var +oz=ac[4];if(oz){var +oy=[0,[16,ac[1],ac[2],ac[3],oz[2],ac[5]]];cd=2}break;default:cd=1}switch(cd){case +0:break;case +1:break;default:var +dD=oy;p5=1}}if(!p5)var +dD=gL;if(!gP){var +zJ=E[8],zK=E[7],zL=E[6],zM=E[5],zN=E[4],zO=E[2];return l(k,e,c,[0,gQ,[2,dD,dC,[0,[0,m(fY[3],dC),zO,0,zN,zM,zL,zK,zJ]],gN]])}var +gR=gP[1];if(0===gR[0])return l(k,e,c,[0,gQ,[2,dD,dC,[0,[0,gR[1],E[2],gP[2],E[4],E[5],E[6],E[7],E[8]]],gN]]);var +zI=l(an,e,c,gR);return l(k,e,c,[0,gQ,[2,dD,dC,[0,[0,zI,E[2],E[3],E[4],E[5],E[6],E[7],E[8]]],gN]])}a=4;break;case +4:var +gI=d[5],gH=d[4],dB=d[3],gG=d[2],dA=d[1],gF=zH;a=9;break}break;case +15:var +bm=f[2],hC=0,zP=f[1];switch(d[0]){case +2:var +gS=d[3],zQ=d[1];if(0!==gS[0])return o(j,e,c,zQ,[0,f,[0,gS[1]]]);if(2>gS[1][7])return p(aD[2],e,c,d,zP,bm);a=1;break;case +8:if(d[3]){var +oE=d[5],oD=d[4],oC=d[2],oB=d[1];hC=1}else +a=1;break;case +10:var +oE=d[5],oD=d[4],oC=d[2],oB=d[1];hC=1;break;case +17:var +zR=d[3];return l(k,e,c,[0,p(y,e,[0,c],d[1],[0,d[2]],f),zR]);case +20:var +oF=d[1],zS=d[3],zT=d[2],zU=m(gr[2],bm);return fo(function(a){var +g=0;if(0===oF[0]){var +b=oF[1],i=0;if(typeof +b==="number"||!(6===b[0]))i=1;else{var +h=C(a),f=[20,[0,[6,b[1],h]],zT,zS];g=1}}if(!g)var +f=d;return l(k,e,c,[0,a,f])},zU);case +21:var +oG=d[1],zV=d[2],zW=m(gr[2],bm);return fo(function(a){var +g=0;if(0===oG[0]){var +b=oG[1],i=0;if(typeof +b==="number"||!(7===b[0]))i=1;else{var +h=C(a),f=[21,[0,[7,b[1],b[2],h]],zV];g=1}}if(!g)var +f=d;return l(k,e,c,[0,a,f])},zW);case +33:return p(W,e,c,d[2],f,d[1]);case +34:return x(a8,e,c,f,d[1],d[2],d[3]);case +45:var +zX=d[8],zY=d[7],zZ=d[6],z0=d[5],z1=d[4],z2=d[3],z3=d[2],z4=d[1],gT=m(gr[2],bm);if(0===gT)throw B([0,aL,e8W],1);var +z5=[45,z4,z3,V(mo(gT),z2),z1,z0,zZ,zY,zX];return l(k,e,c,[0,g1(gT),z5]);case +47:var +gV=d[2],gW=d[1],z6=d[5],z7=d[4],z8=d[3],z9=m(gr[2],bm),z_=fZ(e,gV);return o(j,e,c,gW,[0,M(function(a,b){var +d=aNQ(e,0,b),f=d?d[1]:f7(e,gV,function(a){aNR(e,0,b,a);return l(k,e,c,[0,b,[47,gW,gV,z8,a,z6]])});o(j,e,c,gW,[0,f,a]);return f},z_,z9),z7]);case +70:return fU(co[1],c,e,d[1],d[2],d[3],d[4],f,d[5]);case +77:var +ar=d[3],hD=0;switch(ar[0]){case +8:if(ar[3]){var +oK=ar[5],oJ=ar[4],oI=ar[2],oH=ar[1];hD=1}else +a=1;break;case +10:var +oK=ar[5],oJ=ar[4],oI=ar[2],oH=ar[1];hD=1;break;default:a=1}if(hD)return l(k,e,c,[0,f,[77,d[1],d[2],[8,oH,oI,0,oJ,oK],d[4]]]);break;case +82:var +z$=d[5],Aa=d[4],Ab=d[3],Ac=d[2],Ad=d[1],oL=m(gr[3],bm),Ae=oL[1];return l(k,e,c,[0,Ae,[82,Ad,Ac,V(gl(oL[2]),Ab),Aa,z$]]);case +85:return fU(cu,e,c,d[1],d[2],f,d[3],d[4],d[5]);case +94:var +Af=d[4],Ag=d[3],Ah=d[2];return o($,e,c,[3,C(f),Ag,f,Ah],Af)}if(hC)return l(k,e,c,[0,f,[8,oB,oC,0,oD,oE]]);break;case +16:var +U=f[2],bn=f[1];switch(d[0]){case +18:var +oM=d[2],gX=d[1],Ai=d[4],Aj=d[3],Ak=p_(e),Al=function(a){return Om(Ak,oM,a)},Am=l(aG[9],0,Al,U),An=gX[4],pO=wa(An,hX(gX[2],bn)),Ao=oM?aj(fv(0,gX),pO):pO;return l(k,e,c,[0,Ai,[0,Aj,[16,Ao,Am]]]);case +73:if(0===d[2][0])return o(am,e,c,U,d);a=2;break;case +87:var +oN=d[2];if(16===oN[0]&&Ci(e,0,j9,f,oN))return 0;return o(am,e,c,U,d);case +91:var +oO=d[2],gY=d[1],Ap=m(fY[3],bn),Aq=m(i7[3],bn),Ar=function(a){var +b=j9(a,Ap);return b?b:j9(a,Aq)};return m(aG[16],U)?o(j,e,c,gY,[0,m(GO(bn,e,Ar),U),oO]):o(j,e,c,gY,[0,aOd(function(a,b,c,d){return l(k,a,b,[0,c,[91,gY,d]])},e,c,U,bn),oO]);case +92:var +oP=d[1],As=d[3],At=d[2];if(1-m(aG[12],U)){var +Au=function(a){return rB(e,a)};n(aG[11],U,Au)}return kA(m(aG[16],U))?o(j,e,c,A,[0,f,[0,oP]]):o(j,e,c,A,[0,aOd(function(a,b,c,d){return l(k,a,b,[0,c,[92,BD(d),At,As]])},e,c,U,bn),[0,oP]]);case +95:var +dE=d[2],Av=d[4],Aw=d[3],Ax=d[1],oQ=m(aG[6],U),oR=oQ[2],Ay=oR[2],Az=oR[1],AA=oQ[1],gZ=function(b){var +a=0;return[20,dE,hd(e,dE,function(a){return l(k,e,c,[0,b,[95,Ax,dE,Aw,a]])}),a]},AB=K(Ay,gZ),AC=gZ(Az),AD=gZ(AA);return x(w,e,c,A,0,[16,dE,o(aG[3],0,AD,AC,AB)],[0,Av]);case +37:case +38:case +39:if(!m(aG[12],U))return o(am,e,c,U,d);a=2;break}break;case +17:var +bo=f[2],bp=f[1];switch(d[0]){case +17:var +oS=d[1],AE=d[3],AF=oS[2],AG=d[2]?[0,fv(0,oS)]:0;return l(k,e,c,[0,x(G,e,[0,c],AF,AG,0,f),AE]);case +18:var +oT=d[2],g2=d[1],AH=d[4],AI=d[3],AJ=g2[4],pP=wa(AJ,hX(g2[2],bp)),AK=oT?aj(fv(0,g2),pP):pP;return l(k,e,c,[0,AH,[0,AI,[17,AK,Om(p_(e),oT,bo)]]]);case +47:if(d[5])return l(k,e,c,[0,bo,d]);a=1;break;case +73:if(0===d[2][0]){var +oU=aj(14,bp);l(k,e,c,[0,m(i7[4],oU),d]);l(k,e,c,[0,m(fY[4],oU),d]);return l(k,e,c,[0,bo,d])}a=1;break;case +85:if(!d[2]){var +dF=d[1],AL=d[4],AM=d[3],g3=function(b){var +a=0;return[20,dF,hd(e,dF,function(a){return l(k,e,c,[0,b,[85,dF,0,AM,a,g0(0)]])}),a]},AN=m(fY[3],bp),AO=m(i7[3],bp),AQ=[0,g3(tr(bp,bo)),0],AR=g3(AO),AS=g3(AN);return x(w,e,c,A,0,[16,dF,o(aG[3],0,AS,AR,AQ)],[0,AL])}a=1;break;case +86:return fU(bx,e,c,d[1],d[5],d[3],d[2],f,d[4]);case +91:var +oV=bo;a=11;break;case +92:var +oW=d[1],AT=d[3],AU=d[2],AV=oW[1],AW=[0,oW];return o(j,e,c,A,[0,[17,bp,hd(e,AV,function(a){return l(k,e,c,[0,bo,[92,a,AU,AT]])})],AW])}break;case +18:var +g4=f[3],a4=f[2],g6=f[1];switch(d[0]){case +17:var +AX=d[3];return l(k,e,c,[0,p(y,e,[0,c],d[1],[0,d[2]],f),AX]);case +18:var +oX=d[2],g7=d[1],AY=d[4],AZ=d[3],A0=g7[4],pR=wa(A0,hX(g7[2],g6)),A1=oX?aj(fv(0,g7),pR):pR;return l(k,e,c,[0,AY,[0,AZ,[18,A1,Om(p_(e),oX,a4),g4]]]);case +47:if(d[5])return l(k,e,c,[0,a4,d]);a=1;break;case +73:if(0===d[2][0]){l(k,e,c,[0,n(fY[5],g4,g6),d]);return l(k,e,c,[0,a4,d])}a=1;break;case +85:if(!d[2]){var +dG=d[1],A2=d[4],A3=d[3],oY=function(b){var +a=0;return[20,dG,hd(e,dG,function(a){return l(k,e,c,[0,b,[85,dG,0,A3,a,g0(0)]])}),a]},A4=n(fY[5],g4,g6),A5=oY(a4),A6=oY(A4);return x(w,e,c,A,0,[16,dG,o(aG[3],0,A6,A5,0)],[0,A2])}a=1;break;case +86:return fU(bx,e,c,d[1],d[5],d[3],d[2],f,d[4]);case +90:return l(k,e,c,[0,a4,d]);case +91:var +oV=a4;a=11;break;case +92:var +oZ=d[1],A7=d[3],A8=d[2],A9=oZ[1],A_=[0,oZ],A$=f[3],Ba=hd(e,A9,function(a){return l(k,e,c,[0,a4,[92,a,A8,A7]])});return o(j,e,c,A,[0,[18,f[1],Ba,A$],A_])}break;case +19:if(23===d[0])return l(k,e,c,[0,f,d[3]]);break;case +20:if(73===d[0]){var +g8=f[1],Bb=f[3],Bc=f[2];if(0===d[2][0]){var +Bd=g8[2],Be=Bb?[0,fv(0,g8)]:0;return l(k,e,c,[0,x(G,e,[0,c],Bd,Be,g8[4],Bc),d])}a=5}break;case +21:var +o0=f[2],o1=f[1];if(17===d[0]){var +Bj=d[3];return l(k,e,c,[0,p(y,e,[0,c],d[1],[0,d[2]],f),Bj])}var +o2=o0[2];if(o2&&23===d[0]){var +Bf=d[3],Bg=d[2],Bh=o2[1],Bi=h5(o1)[1];if(ao(o1[2][1],Bi))return l(k,e,c,[0,Bh,[23,[0,f],Bg,Bf]])}var +o3=o0[3];if(o3&&23===d[0])return l(k,e,c,[0,o3[1],[23,[0,f],d[2],d[3]]]);break;case +22:var +b9=f[1];switch(d[0]){case +59:var +Bk=d[2],Bl=[0,l(id[1],e,[0,d[1],d[3],d[4]],b9),Bk];return o(i[7],e,c,A,Bl);case +60:var +Bm=d[2],Bn=[0,PP(e,0,[0,d[1],d[3]],b9),Bm];return o(i[7],e,c,A,Bn);case +63:return o(dY[1],e,[0,d[1],d[2]],b9,d[3]);case +64:return o(dZ[1],e,[0,d[1],d[2]],b9,d[3]);case +66:return p(ih[1],e,[0,d[1],d[2],d[3]],f,b9,d[4])}break;case +23:if(0===f[1][0]&&72===d[0]){var +g9=d[2],Bo=d[1];if(0!==g9[0])return p(aD[6],e,c,Bo,g9[1],g9[2]);a=10}break;case +24:var +b_=f[2],o4=f[1];if(typeof +b_==="number")switch(b_){case +0:if(2===d[0]){var +pa=d[3],BB=d[2],BC=d[1];if(0===pa[0]){var +g$=pa[1];if(!g$[2]){var +ha=g$[3];if(ha){var +BE=g$[4],BF=ha[2];return o(j,e,c,BC,[0,p(eb,e,[0,c],BB,l(an,e,c,ha[1]),BF),[0,BE]])}}}}break;case +1:if(2===d[0]){var +pb=d[3],BG=d[2];if(0===pb[0]){var +hc=pb[1];if(!hc[2]){var +pc=hc[3];if(pc){var +BH=hc[4];return l(k,e,c,[0,l(an,e,c,pc[1]),[15,BG,BH]])}}}}break;case +2:if(2===d[0]){var +pd=d[3],pe=d[2],BJ=d[1];if(0===pd[0]){var +he=pd[1];if(!he[2]){var +hf=he[3];if(hf){var +pf=hf[2];if(pf){var +BK=he[4],BL=pf[1],BM=l(an,e,c,hf[1]);l(k,e,c,[0,BM,[16,pe,l(an,e,c,BL)]]);return o(j,e,c,BJ,[0,m(k3[3],pe),[0,BK]])}}}}}break;case +5:if(2===d[0]){var +pg=d[3],ph=d[2],BN=d[1];if(0===pg[0]){var +hg=pg[1];if(!hg[2]){var +BO=hg[4],BP=hg[3];fo(function(a){return 0===a[0]?l(k,e,c,[0,a[1],[74,ph]]):L(e,[0,c],[73,iG(a[1]),21])},BP);return o(j,e,c,BN,[0,m(fY[3],ph),[0,BO]])}}}break;case +7:if(2===d[0]){var +pi=d[3],pj=d[2],BQ=d[1];if(0===pi[0]){var +hh=pi[1];if(!hh[2]){var +pk=hh[3];if(pk){var +BR=hh[4];l(k,e,c,[0,l(an,e,c,pk[1]),[75,pj]]);return o(j,e,c,BQ,[0,m(fY[3],pj),[0,BR]])}}}}break}if(2===d[0]){var +o$=d[3],BA=d[1];if(0!==o$[0])return o(j,e,c,BA,[0,f,[0,o$[1]]])}var +hE=0;if(typeof +b_==="number")switch(b_){case +6:if(2===d[0])throw B([0,dCc,d[2][2]],1);break;case +3:case +4:hE=1;break;case +5:case +7:break;default:if(4===d[0]){var +o7=d[4],Bs=d[2],Bt=d[1];if(0===o7[0]){var +o8=o7[2];if(0===o8[0]&&!q(o8[1],aJ))return ap(Q,e,c,f,Bt,Bs,f,d[5])}}}else +hE=1;var +p6=0;if(hE&&2===d[0]){var +o9=d[3],o_=d[2],Bu=d[1];if(0===o9[0]){var +dH=o9[1],Bv=d[4],Bw=dH[4],Bx=dH[3],By=dH[2];uZ(e,2,f,dH[8]);aT(By,function(a){return L(e,[0,c],[48,o_[2],0,o4,0])});var +Bz=aJ4(function(a){if(typeof +a!=="number")switch(a[0]){case +15:return[15,a[1],a[2],a[3],0];case +16:return[16,a[1],a[2],a[3],a[4],0]}return a},Bu);return x(aR,e,c,Bz,o_,Bx,[5,g0(0),b_,[0,Bw],Bv])}a=2}else +p6=1;if(p6&&4===d[0]){var +o5=d[3],o6=d[1],Bp=d[5],Bq=d[4],Br=d[2];return ap(Q,e,c,hd(e,o5,function(a){return l(k,e,c,[0,[8,o4],[8,o6,o5,0,Bq,a]])}),o6,Br,f,Bp)}break;case +25:var +z=f[2],aK=f[1];switch(d[0]){case +1:var +dI=d[3],pl=d[2],BS=d[1],BT=dI[4],BU=dI[3],BV=dI[1];uZ(e,2,f,dI[8]);var +pm=pF(2,z);o(j,e,c,A,[0,m(f_(pm),pl),BV]);n(a_,function(a){return l(k,e,c,[0,m(f_(pm),pl),[0,BS,a]])},BU);return o(j,e,c,A,[0,f,[0,BT]]);case +2:var +hi=d[3],dJ=d[1],BW=d[2];if(0!==hi[0])return o(j,e,c,dJ,[0,f,[0,hi[1]]]);var +dK=hi[1],BX=dK[4],BY=dK[3],BZ=dK[1];uZ(e,2,f,dK[8]);var +pn=pF(2,z),po=m(f_(pn),aK);o(j,e,c,dJ,[0,BZ,po]);n(a_,function(a){return l(k,e,c,[0,a,[0,dJ,po]])},BY);return o(j,e,c,dJ,[0,m(f_(pn),BW),[0,BX]]);case +4:var +b$=d[5],hj=d[2],pp=d[1],B0=d[4];switch(b$[0]){case +0:var +pq=b$[1],B1=b$[3],B2=pq[4],B3=pq[3],pr=m(f_(pF(2,z)),hj);n(a_,function(a){return l(k,e,c,[0,a,[0,pp,pr]])},B3);uZ(e,0,f,B1);return o(j,e,c,A,[0,pr,[0,B2]]);case +1:return ap(Q,e,c,m(f_(pF(2,z)),hj),pp,hj,f,b$);default:var +B4=b$[1],B5=pF(2,z),B6=BI(B0);return o(j,e,c,A,[0,m(f_(B5),B6),B4])}case +6:var +ps=d[2],B7=d[7],B8=d[6],B9=d[1],pt=pF(2,z);aT(B7,function(a){return o(j,e,c,A,[0,m(f_(pt),ps),a])});return l(k,e,c,[0,B8,[0,B9,m(f_(pt),ps)]]);case +8:var +B_=d[5],B$=d[3],Ca=d[2];aT(B$,function(a){return yE(e,a)});return o(j,e,c,A,[0,m(f_(pF(2,z)),Ca),[0,B_]]);case +14:var +pu=d[1],Cb=pu[1];return o(j,e,c,A,[0,m(f_(z),Cb),[0,pu]]);case +15:var +Cc=d[2],Cd=d[1];return o(j,e,c,A,[0,m(f_(pF(2,z)),Cd),[0,Cc]]);case +16:return 0;case +19:var +pv=d[2],Ce=d[5],Cf=d[4],Cg=d[1],pw=pF(2,z);n(a_,function(a){return l(k,e,c,[0,a,[0,Cg,m(f_(pw),pv)]])},Cf);return o(j,e,c,A,[0,m(f_(pw),pv),Ce]);case +22:var +Cj=d[2],Ck=d[1];return o(j,e,c,A,[0,m(f_(z),Ck),Cj]);case +31:var +Cl=d[4],Cm=d[2],Cq=d[1],Cr=pF(e8X,z);return fV(Cl,function(a){return x(w,e,c,Cq,e8Y,a,m(f_(Cr),Cm))});case +41:return o(j,e,c,A,[0,f,d[6]]);case +42:return x(bG,e,c,d[1],0,f,d[3]);case +45:var +hk=d[5],px=d[2],pz=d[1],Cs=d[4];if(3===hk[0]&&0===n(fQ[6],0,hk[2]))return 0;var +C_=0,Ct=[0,m(f_(pF(2,z)),pz),1];if(1===px[0]){var +pA=px[2];if(pA){yE(e,pA[1][1]);C_=1}}return m(au(e,c,Cs,Ct,0,aK,pz),hk);case +46:return o(j,e,c,d[1],[0,f,d[4]]);case +47:var +pB=d[1];return d[5]?o(j,e,c,pB,[0,[25,d[2],z],d[4]]):o(j,e,c,pB,[0,f,d[4]]);case +48:var +Cu=d[3],Cv=d[1];return o(j,e,c,A,[0,m(f_(z),Cv),Cu]);case +49:var +Cw=d[2],Cx=d[1];return o(j,e,c,A,[0,m(f_(z),Cx),Cw]);case +50:var +Cy=d[3],Cz=d[1];return o(j,e,c,A,[0,m(f_(z),Cz),Cy]);case +51:var +CA=d[4],CB=d[2];return o(j,e,c,A,[0,m(f_(z),CB),CA]);case +53:var +CC=d[2];return l(k,e,c,[0,m(im[3],d[1]),CC]);case +54:return 0;case +55:var +CD=d[2],CE=d[1];return o(j,e,c,A,[0,m(f_(z),CE),CD]);case +56:var +CF=d[2],CG=d[1];return l(k,e,c,[0,m(f_(z),CG),CF]);case +57:var +dL=d[3],pC=d[2],dM=d[1];switch(dL[0]){case +1:var +hl=dL[2],hF=0,CH=dL[1];if(typeof +hl==="number")hF=1;else +switch(hl[0]){case +7:var +pD=d[4],aM=hl[1],hG=0;switch(pD[0]){case +0:var +CI=2===aM[0]?aM[2]:aM[1],dN=CI;break;case +1:var +p7=0;if(2===aM[0]||aM[1])p7=1;else +hG=1;if(p7){var +p8=0,CK=[0,pC,CH];if(2!==aM[0]){var +pH=aM[1];if(pH){var +pJ=[1,[1,pH[1]],dM];p8=1}}if(!p8)var +pJ=dM;L(e,[0,c],[40,CK,pJ]);var +dN=0}break;default:hG=1}if(hG)var +dN=0;var +pG=uH(aM),CJ=dN?bv(e,dM,dN[1],pG):pG;return fU(bD,e,c,dM,0,pC,dL,CJ,pD);case +6:case +9:a=2;break;default:hF=1}if(hF)a=6;break;case +25:a=2;break;default:a=6}break;case +58:var +CL=d[2],CM=d[1];return o($,e,c,m(f_(z),CM),CL);case +59:var +pK=d[1],CN=d[2];tz(e,2,aK,pK);return o(j,e,c,A,[0,p(y,e,0,pK,0,f),CN]);case +60:var +pL=d[1],CO=d[2];tz(e,2,aK,pL);return o(j,e,c,A,[0,p(y,e,0,pL,0,f),CO]);case +63:return o(dY[2],e,aK,[0,d[1],d[2]],d[3]);case +64:return o(dZ[2],e,aK,[0,d[1],d[2]],d[3]);case +65:return tz(e,d[2],aK,d[1]);case +69:var +CP=d[4],CR=d[2];return o(j,e,c,A,[0,m(f_(pF(2,z)),CR),CP]);case +80:var +hm=d[3];return x(al,e,[0,c],d[1],d[2],[0,[0,[2,aK,z],hm[1]],hm[2]],hm[3]);case +82:var +hn=d[2],ho=d[1],CS=d[5],CT=d[4],CU=d[3];fV(CU,function(a){return o(j,e,c,ho,[0,m(f_(z),hn),a])});o(j,e,c,ho,[0,m(f_(z),hn),CT]);return o(j,e,c,ho,[0,m(f_(z),hn),CS]);case +83:return o(j,e,c,A,[0,f,d[2]]);case +84:return o(j,e,c,A,[0,d[2],f]);case +98:var +CV=d[3],CW=d[1];return o(j,e,c,A,[0,CV,m(f_(pF(2,z)),CW)])}break}var +ad=0;switch(a){case +0:if(0===d[0]){var +c4=d[2];if(2===c4[0]){var +e9=c4[2],k7=e9[2],k8=d[1],k9=ap(bw,e,c,e9[1],k7,c4[1],e9[3],c4[3]),k_=k9[2];return k9[1]?l(k,e,c,[0,k_,[18,k7,0,k8,f]]):l(k,e,c,[0,f,[0,k8,k_]])}ad=3}else +ad=3;break;case +7:ad=3;break;case +10:ad=6;break;case +5:ad=2;break;case +1:ad=4;break;case +2:break;case +3:ad=1;break;case +4:ad=5;break;case +6:ad=7;break;case +11:return l(k,e,c,[0,oV,d]);case +8:return 0;case +12:ad=8;break;default:return ap(Q,e,c,hd(e,dB,function(a){return l(k,e,c,[0,[8,gF],[8,dA,dB,0,gH,a]])}),dA,gG,f,gI)}var +aB=0;switch(ad){case +3:if(0===f[0]){var +iF=f[1],qV=iF[2],p$=0,iI=fv(0,iF[1]);if(typeof +iI!=="number"&&28===iI[0]){var +el=m(uJ(function(a){return[1,0,a]}),d);p$=1}if(!p$)var +el=d;var +iJ=iO(e,qV),cI=iJ[2],qW=iJ[1];switch(cI[0]){case +0:var +iL=cI[1];break;case +1:return p(aP,e,c,0,[0,qW,cI[1]],el);default:var +cJ=cI[1],iM=ai(cJ),qY=ah===iM?cJ[1]:O===iM?aq(cJ):cJ,iL=qY}return l(k,e,c,[0,iL,el])}aB=5;break;case +6:aB=5;break;case +2:aB=2;break;case +4:aB=3;break;case +0:break;case +1:aB=1;break;case +5:aB=4;break;case +7:aB=6;break;default:aB=7}var +ae=0;switch(aB){case +5:switch(d[0]){case +0:var +em=d[1],iP=d[2];if(0!==iP[0])return p(cn[1],e,em,f,d[2],c);var +iQ=iO(e,iP[1][2]),cK=iQ[2],qZ=iQ[1];switch(cK[0]){case +0:var +iS=cK[1];break;case +1:return x(aQ,e,c,em,0,f,[0,qZ,cK[1]]);default:var +cL=cK[1],iT=ai(cL),q0=ah===iT?cL[1]:O===iT?aq(cL):cL,iS=q0}return l(k,e,c,[0,f,[0,em,iS]]);case +18:var +un=d[4],uo=d[3];return l(k,e,c,[0,un,[0,uo,p(y,e,[0,c],d[1],[0,d[2]],f)]]);case +72:var +k0=d[2],up=d[1];if(0===k0[0])return p(aD[5],e,c,up,k0[1],f);ae=2;break;case +73:var +k1=d[2],uq=d[1];if(0===k1[0]){var +bg=k1[1];if(0===bg[0])return fU(aD[4],e,c,uq,bg[1],[0,f,bg[2]],bg[5],bg[3],bg[4]);ae=2}else +ae=2;break;case +74:var +ur=d[1];return L(e,[0,c],[3,ur,k5(e8D,e,f)]);case +100:return o(j,e,c,A,[0,f,d[2]]);case +103:var +k2=d[3],us=d[5],ut=d[4],uu=d[2],uv=d[1];if(k2)var +k4=k2[1],k6=p(y,e,[0,c],k4[1],[0,k4[2]],f);else +var +k6=f;return ap(a5,e,c,uv,uu,k6,ut,us);default:ae=2}break;case +2:ae=2;break;case +3:ae=3;break;case +0:break;case +1:ae=1;break;case +4:ae=4;break;case +6:ae=5;break;default:ae=6}var +aN=0;switch(ae){case +2:if(20===f[0])return l(k,e,c,[0,p(y,e,[0,c],f[1],[0,f[3]],f[2]),d]);switch(d[0]){case +52:var +ue=d[2],uf=d[1];if(Oh(f))return x(w,e,c,A,e8C,x(G,e,[0,c],uf[2],0,0,f),ue);aN=2;break;case +61:var +ug=d[2],uh=d[1];if(1!==f[0])return 0;var +e7=f[2],hH=0;if(typeof +e7!=="number"&&17===e7[0]){var +kU=e7[3];if(1===kU[0]){var +c3=kU[2];hH=2}else +hH=1}var +qa=0;switch(hH){case +0:break;case +1:break;default:qa=1}if(!qa)var +c3=f[2];var +hI=0;if(typeof +c3!=="number")switch(c3[0]){case +8:var +kT=c3[1];if(1===kT[0]){var +e6=kT[2],C$=0;if(typeof +e6==="number"||!(9===e6[0]))C$=1;else if(e6[4][9])hI=1}break;case +16:hI=1;break}return hI?L(e,[0,c],[7,uh,ug]):0;case +62:return o(il[1],e,[0,d[1],d[2]],f,d[3]);case +67:return o(ij[1],e,[0,d[1],d[2],d[3],d[4],d[5]],f,d[6]);case +68:return o(ii[2],e,d[2],f,d[3]);case +78:var +ui=d[1],kV=so(e,f),qb=0;if(1===kV[0]){var +kX=kV[2];if(typeof +kX==="number"&&!kX){var +kW=0;qb=1}}if(!qb)var +kW=1;var +uj=C(f),ul=ui[2],qB=e[1][16],qC=[0,uj,kW],qD=[0,function(a,b){var +d=a[2],c=b[2],e=a[1],f=d||c;return[0,e,f]}],qE=o(T[7][31],qD,ul,qC,qB);e[1][16]=qE;return 0;case +87:return l(k,e,c,[0,f,[0,d[1],d[2]]]);case +88:var +e8=d[2],kY=d[1],kZ=e8[2][3],um=e8[1];return j9(kZ,f)?l(k,e,c,[0,kZ,[0,kY,f]]):l(k,e,c,[0,[1,um,[20,e8[2]]],[0,kY,f]]);default:aN=2}break;case +3:aN=2;break;case +0:break;case +1:aN=1;break;case +4:aN=3;break;case +5:aN=4;break;default:aN=5}var +ce=0;switch(aN){case +2:var +aC=0;switch(f[0]){case +1:var +qc=0,e5=f[2];if(typeof +e5==="number")if(1===e5)aC=4;else +qc=1;else +switch(e5[0]){case +6:aC=1;break;case +8:aC=3;break;case +17:aC=2;break;default:qc=1}break;case +22:aC=1;break;case +4:aC=3;break;case +17:case +18:var +ud=f[2];if(95===d[0])return l(k,e,c,[0,ud,d]);break;case +15:case +21:aC=2;break;case +8:case +9:aC=4;break}switch(aC){case +0:break;case +1:if(65===d[0])return 0;break;case +2:if(92===d[0])return o(j,e,c,A,[0,f,[0,d[1]]]);break;case +3:if(41===d[0]&&!d[5])return o(j,e,c,A,[0,f,d[6]]);break;default:if(21===d[0])return 0}break;case +0:break;case +1:ce=1;break;case +3:ce=2;break;case +4:ce=3;break;default:ce=4}var +as=0;switch(ce){case +0:if(95===d[0]){var +kO=d[4],e3=d[3],e4=d[2],kP=d[1],uc=15===f[0]?0:1;if(uc){if(0===e3[0])var +kQ=e3[1],kR=[8,kP,e4,0,gM(aj([41,[0,kQ]],e4),e8B,kQ),kO];else +var +kR=[12,kP,e4,0,1,0,e3[1],kO];return l(k,e,c,[0,f,kR])}}switch(f[0]){case +17:var +t_=f[2],e2=aj(14,f[1]),t$=tr(e2,t_);l(k,e,c,[0,m(i7[4],e2),d]);l(k,e,c,[0,m(fY[4],e2),d]);return l(k,e,c,[0,t$,d]);case +18:var +ub=f[2];l(k,e,c,[0,n(fY[5],f[3],f[1]),d]);return l(k,e,c,[0,ub,d]);default:switch(d[0]){case +37:var +c0=d[3],kw=d[2],Da=0;if(1===f[0]){var +Db=0,kC=f[2];if(typeof +kC==="number"||!(0===kC[0]))Db=1;else{L(e,[0,c],[jI,0,f[1]]);Da=1}}var +kx=yS(e,f);if(1===kx[0]){var +kB=kx[2];if(typeof +kB==="number"&&!kB)return l(k,e,c,[0,f,[33,e8y,c0]])}var +ky=so(e,f);if(1===ky[0]){var +kz=ky[2];if(typeof +kz==="number"&&!kz)return l(k,e,c,[0,kw,[0,A,[0,c0]]])}l(k,e,c,[0,f,[33,e8x,c0]]);return l(k,e,c,[0,kw,[0,A,[0,c0]]]);case +38:var +c1=d[3],kD=d[2],kE=so(e,f);if(1===kE[0]){var +kI=kE[2];if(typeof +kI==="number"&&!kI)return l(k,e,c,[0,f,[33,0,c1]])}var +kF=yS(e,f);if(1===kF[0]){var +kH=kF[2];if(typeof +kH==="number"&&!kH)return l(k,e,c,[0,kD,[0,A,[0,c1]]])}l(k,e,c,[0,f,[33,0,c1]]);return l(k,e,c,[0,kD,[0,A,[0,c1]]]);case +39:var +c2=d[3],kJ=d[2],kK=Cn(e,f),hJ=0;switch(kK[0]){case +1:var +kN=kK[2];if(typeof +kN==="number"&&!kN)hJ=1;break;case +25:hJ=1;break}if(hJ)return l(k,e,c,[0,f,[33,e8A,c2]]);var +kL=Co(e,f);if(1===kL[0]){var +kM=kL[2];if(typeof +kM==="number"&&!kM)return l(k,e,c,[0,kJ,[0,A,[0,c2]]])}l(k,e,c,[0,f,[33,e8z,c2]]);return l(k,e,c,[0,kJ,[0,A,[0,c2]]]);case +71:var +bf=d[3];if(0===bf[0])return l(k,e,c,[0,f,[71,d[1],d[2],[1,bf[1],f,bf[2],bf[3],bf[4],0,bf[5],0]]]);break;case +97:var +t9=d[2];return o(j,e,c,A,[0,o(bt[6],e,A,d[1],f),t9])}var +hK=0;switch(f[0]){case +5:var +kl=f[1],tQ=f[4],tR=f[3],tS=f[2];return x(d$,e,c,kl,x(ea,e,c,lZ(d),kl,tS,tQ),tR,[1,d]);case +6:var +km=f[4],kn=f[3],tT=f[2],tU=f[1],ko=GJ(e,[0,kn,km]);return ko?(l(k,e,c,[0,fU(a9,e,[0,c],tT,lZ(d),tU,0,kn,km),d]),GK(e)):ko;case +21:var +cY=f[2],kp=cY[2],kq=f[1],tV=cY[1];if(kp){var +tW=kp[1],tX=h5(kq)[1];if(ao(kq[2][1],tX))return l(k,e,c,[0,tW,d])}var +kr=cY[3],hL=0;if(kr){var +eY=kr[1],hM=0;if(1===eY[0]){var +eZ=eY[2],Dc=0;if(typeof +eZ==="number"||!(6===eZ[0]))Dc=1;else{var +ks=cY[4];if(ks&&99===d[0])if(d[4])hM=1;else{var +kt=d[7],e0=d[6],ku=d[5],cZ=d[3],be=d[2],kv=d[1],e1=ks[1][3],t6=eZ[1][2];if(ao([0,tV],adO(e))){var +hT=n(wf[27],t6,e[1][40]);if(hT)return l(k,e,c,[0,hT[1],[99,kv,be,cZ,[0,f],ku,e0,kt]]);if(!e0)return l(k,e,c,[0,e1,[99,kv,be,cZ,[0,f],ku,e0,kt]]);var +t7=m(gU[3],be),t8=m(h7[3],be);return l(a$,e,e1,[1,be,[18,t7,t8,p(H,e,0,be,0,e8v),0]])?o(j,e,c,A,[0,p(_,e,C(f),0,e8w,[0,e1,0]),cZ]):o(j,e,c,A,[0,f,cZ])}hM=1}}}if(!hM){if(81===d[0]){var +t3=d[2],t1=d[4],t2=d[3],t4=d[1],t5=t3||[0,f];return l(k,e,c,[0,eY,[81,t4,t5,t2,t1]])}hL=1}}else +hL=1;if(hL)switch(d[0]){case +33:return p(W,e,c,d[2],f,d[1]);case +34:return x(a8,e,c,f,d[1],d[2],d[3]);case +94:var +tY=d[4],tZ=d[3],t0=d[2];return o($,e,c,[3,C(f),tZ,f,t0],tY);default:hK=1}break;default:hK=1}if(hK){if(73===d[0]){var +Z=d[2];switch(Z[0]){case +0:break;case +1:return x(cy,Z[2],e,c,Z[5],Z[4],[0,Z[1],f,Z[3]]);default:return js(bz,Z[2],Z[3],e,c,Z[5],Z[4],Z[1],Z[6],f)}}if(19===f[0])return l(k,e,c,[0,f[2],[53,f[1],d]]);switch(d[0]){case +73:var +kj=d[2],tP=d[1];if(0===kj[0]){var +kk=kj[1];if(1===kk[0])return o(j,e,c,A,[0,f,[0,[0,tP,kk[1]]]])}break;case +86:return fU(bx,e,c,d[1],d[5],d[3],d[2],f,d[4])}if(16===f[0]){var +bS=f[1],R=f[2];if(ll(adI,m(aG[5],R)))return aOe(k,e,c,bS,R,d);switch(d[0]){case +17:var +s5=d[3];return l(k,e,c,[0,p(y,e,[0,c],d[1],[0,d[2]],f),s5]);case +33:var +bT=d[1],cf=0;if(typeof +bT==="number")switch(bT){case +0:case +2:cf=2;break;default:cf=1}else if(2===bT[0]){var +eQ=bT[1];if(typeof +eQ==="number"&&1!==eQ&&3>eQ)cf=2}else +cf=1;switch(cf){case +1:break;case +2:var +s6=d[2];if(m(aG[12],R))return p(W,e,c,s6,f,bT);break}break;case +35:var +j4=d[4],s7=d[1];if(16===j4[0]){var +s_=d[2],s$=function(a){return i3(aPG(s_,a))};if(!Ci(e,1,function(a,b){return aHo(s$,a,b)},f,j4))return o(am,e,c,R,d);var +j5=j$(e);return j5?kS(e8t):j5}var +eR=d[4],s8=d[3],s9=d[2],qd=0;if(yK(eR)||yL(eR))qd=1;if(qd)return l(k,e,c,[0,eR,[35,s7,s9,1-s8,f]]);break;case +36:var +j6=d[3],ta=d[1];if(16===j6[0]){if(!Ci(e,1,function(a,b){return aHo(aN6,a,b)},f,j6))return o(am,e,c,R,d);var +j7=j$(e);return j7?kS(e8u):j7}var +eS=d[3],tb=d[2],qe=0;if(yK(eS)||yL(eS))qe=1;if(qe)return l(k,e,c,[0,eS,[36,ta,1-tb,f]]);break;case +57:var +bU=d[4],tc=d[3],td=d[2],te=d[1];if(0===bU[0]&&bU[2]){var +tf=bU[4],tg=bU[3],th=bU[1],cW=gg(sa,td),j8=m(aG[6],R),j_=j8[2],ti=j_[2],tj=j_[1],tk=j8[1],eT=function(b){var +a=0;return[20,cW,hd(e,cW,function(a){return l(k,e,c,[0,b,[57,te,cW,tc,[0,th,1,tg,a]]])}),a]},tl=K(ti,eT),tm=eT(tj),tn=eT(tk);return o(j,e,c,A,[0,[16,cW,o(aG[3],0,tn,tm,tl)],[0,tf]])}break;case +58:var +ka=d[1],to=d[2],tp=m(aG[5],R),tq=K(tp,function(a){return[7,ka,a]});return o($,e,c,iH(hX(ka[2],bS),tq),to);case +70:return fU(co[1],c,e,d[1],d[2],d[3],d[4],f,d[5]);case +76:var +eU=d[5],eV=d[4],eW=d[2];if(!d[3])return o(j,e,c,A,[0,eW,[0,eU]]);if(0===eV[0]){var +a0=eV[1];if(typeof +a0==="number")var +bV=0===a0?2:1;else +switch(a0[0]){case +0:var +bV=[10,a0[1]];break;case +1:var +kc=a0[1],bV=[12,[0,kc,Ea(kc)]];break;case +2:var +bV=[13,a0[1]];break;default:var +bV=[14,a0[1]]}var +kb=l(aG[14],j9,[1,bS,bV],R);if(typeof +kb==="number")switch(kb){case +0:return o(j,e,c,A,[0,eW,[0,eU]]);case +1:return 0}return o(am,e,c,R,d)}var +tt=eV[1],tu=1,tv=function(a,b){if(typeof +a==="number")var +c=0===a?2:1;else +switch(a[0]){case +0:var +c=[10,a[1]];break;case +1:var +d=a[1],c=[12,[0,d,Ea(d)]];break;case +2:var +c=[13,a[1]];break;default:var +c=[14,a[1]]}var +e=[0,b,l(aG[14],j9,[1,bS,c],R)];return m(aG[13],e)},kd=l(rv[16],tv,tt,tu);if(typeof +kd==="number")switch(kd){case +0:return o(j,e,c,A,[0,eW,[0,eU]]);case +1:return 0}return o(am,e,c,R,d);case +85:if(!d[2]){var +cX=d[1],tw=d[4],tx=d[3],ke=m(aG[6],R),kf=ke[2],ty=kf[2],tA=kf[1],tB=ke[1],eX=function(b){var +a=0;return[20,cX,hd(e,cX,function(a){return l(k,e,c,[0,b,[85,cX,0,tx,a,g0(0)]])}),a]},tC=K(ty,eX),tD=eX(tA),tE=eX(tB);return x(w,e,c,A,0,[16,cX,o(aG[3],0,tE,tD,tC)],[0,tw])}break;case +94:var +tF=d[4],tG=d[3],tH=d[2];return o($,e,c,[3,C(f),tG,f,tH],tF);case +99:var +kg=d[7],tI=d[6],tJ=d[5],tK=d[4],tL=d[3],tM=d[2],tN=function(a){var +b=C(a),c=[0,A,gg(function(a){return[98,a]},b),[10,0,tI,kg,tK]];return[2,a,c,g_(0)]},kh=l(aG[9],0,tN,R),ki=gg(function(a){return[98,a]},bS),tO=tJ?[1,tM,[19,[1,kg,[16,ki,kh]]]]:[16,ki,kh];return o(j,e,c,A,[0,tO,tL])}var +cg=0,s4=f[2];switch(d[0]){case +3:var +eO=kA(d[3]);cg=2;break;case +33:var +cV=d[1],qg=0;if(typeof +cV==="number")qg=1;else +switch(cV[0]){case +2:var +eP=cV[1],Dd=0;if(typeof +eP==="number"||!(4===eP[0]))Dd=1;else if(eP[1])cg=1;break;case +4:if(cV[1])cg=1;break;default:qg=1}break;case +97:case +98:cg=1;break}switch(cg){case +0:var +eO=1;break;case +1:var +eO=0;break}if(eO)return o(am,e,c,s4,d)}switch(d[0]){case +90:return o(j,e,c,d[1],[0,f,d[2]]);case +91:return o(j,e,c,d[1],[0,f,d[2]]);default:if(15===f[0]){var +s0=f[2],s1=f[1],s2=77===d[0]?d[3]:d;adU(e,1,f,s2);var +hN=0;switch(d[0]){case +0:var +eN=aN7(e,d[2]);break;case +2:var +hV=d[3];if(0===hV[0])var +qK=hV[1][3],qL=0,eN=M(function(a,b){var +c=b[1];return uY(c)?[0,c,a]:a},qL,qK);else +hN=1;break;default:hN=1}if(hN)var +eN=0;var +s3=lZ(d);return fU(aD[4],e,c,s3,eN,0,d,s1,s0)}switch(d[0]){case +40:var +sV=d[2];return o(j,e,c,A,[0,[1,aj(e8r,d[1]),e8s],[0,sV]]);case +77:var +ch=0,sX=d[3],sY=d[2],sZ=d[1];switch(f[0]){case +1:var +qh=0,j2=f[2];if(typeof +j2==="number"||!(4===j2[0]))qh=1;else +ch=2;if(qh)ch=1;break;case +25:var +qi=0,j3=f[2];if(typeof +j3==="number"||1===j3[0])qi=1;else +var +eM=0;if(qi)ch=2;break;default:ch=1}switch(ch){case +1:var +eM=0;break;case +2:var +eM=1;break}Pr(e,sZ[2],sY,eM);return l(k,e,c,[0,f,sX]);default:if(14===f[0]&&aJR(d))return 0;switch(d[0]){case +3:var +jX=d[3],jY=d[2],cS=d[1];if(jX){var +sA=d[8],sB=d[7],sC=d[6],sD=d[5],sE=d[4],cT=aOp(e,cS,jX[1],f),sF=m(cT,sB),sG=m(cT,sC),sH=m(cT,sD);return l(k,e,c,[0,f,[3,cS,jY,0,K(sE,function(a){var +b=a[6],c=a[5],d=a[4],e=m(cT,a[3]);return[0,a[1],a[2],e,d,c,b]}),sH,sG,sF,sA]])}var +sI=d[8];return o(j,e,c,cS,[0,js(bt[5],e,c,cS,jY,d[4],f,d[5],d[6],d[7]),[0,sI]]);case +80:var +eI=d[3],aa=eI[3],bP=eI[2],aX=eI[1],aZ=d[2],bQ=d[1],N=C(f);if(3===f[0])var +sT=[0,f[4]],bR=sT,eJ=p(y,e,0,f[1],0,f[3]);else +var +bR=0,eJ=f;var +qj=0;if(1===eJ[0]){var +eL=eJ[2],De=0;if(typeof +eL==="number"||!(7===eL[0]))De=1;else{var +j0=eL[1],qk=0;if(0===aa[0]&&1!==j0[0]){L(e,[0,c],[39,aZ,N]);var +j1=[0,0,m(fL,N),0];qk=1}if(!qk)var +j1=j0;var +X=j1;qj=1}}if(!qj){switch(aa[0]){case +0:var +bd=apu;break;case +4:var +bd=aZJ;break;case +7:var +bd=aWx;break;default:var +bd=e[4][13]?CQ:aZJ}var +cU=fZ(e,N);if(aWx<=bd)var +eK=CQ<=bd?[1,h6(e8m,N),[7,[2,cU,0]]]:p(_,e,h6(e8o,N),0,e8n,[0,cU,0]);else if(apu<=bd){L(e,[0,c],[39,aZ,N]);var +eK=m(fL,N)}else +var +sR=[0,m(yo(9),N),0],sS=[0,cU,[0,m(yo(9),N),sR]],eK=p(_,e,h6(e8q,N),0,e8p,sS);o(j,e,c,A,[0,f,eK]);var +X=[0,0,cU,0]}var +jZ=uH(X);switch(aa[0]){case +0:case +1:var +sJ=aa[3],sK=aa[2],sL=aa[1],sM=C(jZ),sN=fA(aX);return P4(e,sL,[0,sM,sN],function(a){return 0===a?x(al,e,[0,c],bQ,aZ,[0,[0,[1,N,X,bR],aX],bP],aa):1===a?l(k,e,c,[0,f,[80,bQ,aZ,[0,aX,bP,[2,sK,sJ]]]]):0});case +2:case +7:return x(al,e,[0,c],bQ,aZ,[0,[0,[1,N,X,bR],aX],bP],aa);default:var +sO=aa[1],sP=C(jZ),sQ=fA(aX);return P4(e,sO,[0,sP,sQ],function(a){if(0===a)return x(al,e,[0,c],bQ,aZ,[0,[0,[1,N,X,bR],aX],bP],aa);if(1!==a)return 0;var +b=0;switch(X[0]){case +0:if(X[3])var +f=X[2],d=X[1];else +b=1;break;case +1:var +f=X[2],d=X[1];break;default:b=1}var +g=b?X:[0,d,f,0];return x(al,e,[0,c],bQ,aZ,[0,[0,[1,N,g,bR],aX],bP],aa)})}default:switch(f[0]){case +1:var +bc=f[2],cR=f[1];if(typeof +bc!=="number")switch(bc[0]){case +10:return l(k,e,c,[0,[1,cR,[1,[0,0,bc[1]]]],d]);case +12:return l(k,e,c,[0,[1,cR,[0,[0,0,bc[1]]]],d]);case +13:return l(k,e,c,[0,[1,cR,[2,[0,bc[1]]]],d]);case +14:return l(k,e,c,[0,[1,cR,[3,[0,0,bc[1]]]],d])}break;case +7:var +jW=f[1];return l(k,e,c,[0,tr(jW,f[2]),[58,jW,[1,d]]]);case +10:return l(k,e,c,[0,[1,f[1],1],d])}switch(d[0]){case +58:var +jV=d[1],sz=d[2];L(e,[0,c],[45,[0,jV,C(f)]]);return o($,e,c,m(fL,jV),sz);case +79:return o(j,e,c,A,[0,d[7],[0,d[8]]]);default:switch(f[0]){case +1:var +bO=f[2],jR=f[1];if(typeof +bO!=="number"&&17===bO[0]){var +sq=bO[3],sr=bO[2],ss=bO[1],st=lZ(d),jT=F8(d),su=jT?jT[1]:A,ql=0;if(4===d[0]&&2===d[5][0]){var +jU=1;ql=1}if(!ql)var +jU=0;return l(k,e,c,[0,fU(ip,e,c,su,st,jR,0,[0,jU],[0,ss,sr,sq])[1],d])}switch(d[0]){case +83:case +84:var +jS=d[2],sp=d[1];p(bu[5],e,c,A,jR,[3,jS]);return o(j,e,c,A,[0,m(fL,sp),jS])}break;case +4:var +sv=f[4],sw=f[3],sx=f[2],sy=f[1];return l(k,e,c,[0,yN(e,lZ(d),[0,sy,sx,sw,sv]),d])}}}}}}switch(d[0]){case +93:var +cQ=d[3],sh=d[1];return 0===cQ[0]?l(k,e,c,[0,cQ[1],[0,sh,cQ[2]]]):L(e,[0,c],[oA,cQ[1]]);case +99:var +jN=d[4],si=d[7],sj=d[5],sk=d[3],sl=d[2],jO=jN?jN[1]:f,sm=sj?[1,sl,[19,[1,si,jO]]]:jO;return o(j,e,c,A,[0,sm,sk]);case +101:var +jQ=d[3],eG=d[2],eH=d[1];if(d[4])return L(e,[0,c],[hb,eH,jQ,eG]);var +sn=d[5];return l(k,e,c,[0,[2,f,[0,eH,eG,e8l],g_(0)],[iK,eH,eG,jQ,1,sn]]);default:if(1===f[0]){var +jM=f[2];if(typeof +jM!=="number"&&15===jM[0])return l(k,e,c,[0,m(im[3],f[1]),d])}if(71===d[0])return x(bu[1],e,c,d[1],d[2],f,d[3]);if(24===f[0]){var +hO=0,se=f[1];switch(d[0]){case +0:if(25===d[2][0])hO=1;break;case +2:case +19:hO=1;break}var +sg=hO?1:adH(d);if(sg)return l(k,e,c,[0,[8,se],d])}switch(d[0]){case +16:return L(e,[0,c],[iR,d[1]]);case +19:var +r4=d[5],r5=d[2],r6=d[1];L(e,[0,c],[59,C(f)]);return o(j,e,c,r6,[0,m(fL,r5),r4]);case +21:return L(e,[0,c],[i1,C(f)]);case +46:return l(k,e,c,[0,d[3],[47,d[1],d[2],f,d[4],d[5]]]);case +49:var +eD=d[1],r7=d[2];if(Ch(f))var +jC=x(G,e,[0,c],eD[2],0,0,f);else{var +r8=C(f);L(e,[0,c],[mc,eD[2],r8]);var +jC=m(aJP[3],eD)}return o(j,e,c,A,[0,jC,r7]);case +50:var +jE=[17,d[1],0,[0,A,d[3]]],r9=d[2];return Ch(f)?l(k,e,c,[0,f,jE]):l(k,e,c,[0,r9,jE]);case +57:var +bN=d[3],eE=d[2],jG=d[1];switch(bN[0]){case +1:var +jH=bN[2];if(typeof +jH!=="number")switch(jH[0]){case +6:case +9:return ap(ec,e,c,jG,f,bN,eE,d[4])}break;case +25:var +r_=d[4];return fU(bD,e,c,jG,0,eE,bN,m(f_(bN[2]),eE),r_)}break;case +69:var +eF=d[3];if(typeof +eF!=="number"&&0===eF[0]){var +cP=d[2],jJ=d[1],r$=d[4],sb=eF[1],sc=l(bE,e,e8k,cP);return l(k,e,c,[0,[1,cP,[7,[2,[2,sc,[0,jJ,cP,[7,1,[0,f,0]]],g_(0)],0]]],[69,jJ,cP,[0,sb],r$]])}break;case +70:return fU(co[1],c,e,d[1],d[2],d[3],d[4],f,d[5]);case +73:var +jK=d[2],sd=d[1];if(0===jK[0]){var +jL=jK[1];if(2===jL[0])return o(j,e,c,A,[0,f,[0,[0,sd,jL[1]]]])}break;case +85:return fU(cu,e,c,d[1],d[2],f,d[3],d[4],d[5])}if(21===f[0]){var +jB=f[2][3];if(jB){var +r2=jB[1],r3=f[1];return l(k,e,c,[0,r2,m(uJ(function(a){return[1,[21,r3],a]}),d)])}}switch(d[0]){case +24:return js(d2,e,c,d[1],d[2],d[3],f,d[4],d[5],d[6]);case +25:return x(d3,e,c,d[1],d[2],f,d[3]);case +26:var +rW=d[2];return o(j,e,c,A,[0,aOG(e,[0,c],f,d[1],d[3]),rW]);case +27:return L(e,[0,c],[99,C(f)]);case +28:return Ch(f)?0:L(e,[0,c],[hZ,C(f)]);case +29:if(Ch(f))return 0;break;case +30:if(Ch(f))return 0;break;case +31:var +jy=d[4],jz=d[2],rX=d[1],rY=d[3]?p(_,e,jz,0,e8i,jy):p(_,e,jz,0,e8j,jy);return o(j,e,c,rX,[0,f,rY]);case +32:return 0;case +33:return p(W,e,c,d[2],f,d[1]);case +34:return x(a8,e,c,f,d[1],d[2],d[3]);case +35:return ap(d5,e,c,d[1],d[2],d[3],f,d[4]);case +36:return x(d4,e,c,d[1],d[2],f,d[3]);case +76:var +aw=d[3],jA=d[2],rZ=d[5],r0=d[4],r1=d[1],ia=function(a){if(0===a[0]&&Cp(aw,[0,f,a[1]])&&!aw)return 0;if(1===f[0]){var +b=0,c=f[2];if(typeof +c==="number")switch(c){case +1:if(0===a[0]){var +j=a[1];if(typeof +j==="number"&&j)b=1}break;case +2:if(0===a[0]){var +k=a[1];if(typeof +k==="number"&&!k)b=1}break;default:b=2}else +switch(c[0]){case +0:if(0===a[0]){var +d=a[1],o=0;if(typeof +d==="number"||!(1===d[0]))o=1;else{if(Cp(aw,[0,f,[1,d[1]]]))return 0;b=1}}break;case +1:if(0===a[0]){var +e=a[1],p=0;if(typeof +e==="number"||!(0===e[0]))p=1;else{if(Cp(aw,[0,f,[0,e[1]]]))return 0;b=1}}break;case +2:if(0===a[0]){var +g=a[1],q=0;if(typeof +g==="number"||!(2===g[0]))q=1;else{if(Cp(aw,[0,f,[2,g[1]]]))return 0;b=1}}break;case +3:if(0===a[0]){var +h=a[1],r=0;if(typeof +h==="number"||!(3===h[0]))r=1;else{if(Cp(aw,[0,f,[3,h[1]]]))return 0;b=1}}break;default:b=2}var +i=0;switch(b){case +2:break;case +0:if(0===a[0]){if(aw)return 0}else{var +l=a[1];if(aw){var +n=m(rv[22],l);return p2(n,function(a){return Cp(aw,[0,f,a])?0:ia([0,a])})}i=1}break;default:i=1}if(i)return[0,jA,0]}return[0,jA,0]};return o(j,e,c,A,[0,iH(r1,ia(r0)),[0,rZ]])}switch(f[0]){case +1:var +qm=0,eC=f[2],rV=f[1];if(typeof +eC==="number")switch(eC){case +0:case +3:qm=1;break;default:if(29===d[0])return 0}else +switch(eC[0]){case +7:if(30===d[0])return 0;break;case +21:if(29===d[0])return L(e,[0,c],[pQ,rV,1]);break;default:qm=1}break;case +25:if(30===d[0])return 0;break}if(30===d[0])return L(e,[0,c],[iU,C(f)]);var +br=0;switch(f[0]){case +1:var +qn=0,eu=f[2];if(typeof +eu==="number")if(1===eu)br=3;else +qn=1;else +switch(eu[0]){case +6:case +7:case +9:br=2;break;default:qn=1}break;case +25:br=2;break;case +9:br=3;break;case +8:br=1;break}var +hP=0;switch(br){case +2:switch(d[0]){case +11:return l(k,e,c,[0,d[3],[57,d[1],d[2],f,[1,d[5],d[6],d[4]]]]);case +12:return l(k,e,c,[0,d[6],[57,d[1],d[2],f,[0,d[3],d[4],d[5],d[7]]]]);case +13:return l(k,e,c,[0,d[4],[57,d[1],d[3],f,[2,d[2],d[5]]]]);default:hP=1}break;case +3:if(45===d[0]){var +eB=d[3];if(eB)return l(k,e,c,[0,eB[1],[45,d[1],d[2],eB[2],d[4],d[5],d[6],d[7],d[8]]])}break;case +1:break;default:hP=1}var +hQ=0;if(hP)hQ=1;else{var +qo=0;switch(f[0]){case +8:case +9:if(45===d[0]&&!d[3]){var +jv=d[4],jw=d[1];if(0===jv[0]){var +jx=jv[2];if(0===jx[0]&&!q(jx[1],xr)){var +bM=d[5];switch(bM[0]){case +0:return l(k,e,c,[0,bM[2],[15,jw,bM[3]]]);case +1:return l(k,e,c,[0,bM[2],[16,jw,bM[4]]])}}}else +qo=1}break}var +ci=0;if(qo)ci=2;else{switch(f[0]){case +8:var +rR=f[1];if(45===d[0]){var +jt=d[4],rS=d[1];if(0===jt[0]&&adF(jt[2]))return l(k,e,c,[0,p(H,e,[0,c],rS,0,e8g),d])}var +ev=rR;break;case +9:var +rT=f[1];if(45===d[0]&&!d[3]){var +ju=d[4],rU=d[1];if(0===ju[0]&&PK(ju[2]))return l(k,e,c,[0,p(H,e,[0,c],rU,0,e8h),d])}var +ev=rT;break;default:var +ev=f[1]}if(45===d[0]){var +jo=d[2],jp=d[1];if(0===jo[0])if(d[3])ci=1;else{var +cO=d[4],rN=jo[1];if(0===cO[0]){var +jq=d[5],jr=cO[2],rO=d[6],rP=cO[1],rQ=jq[1];L(e,[0,c],[18,[0,jr],rP,rN,rQ,qA(rO,function(a){var +b=fI(jr);return l(aO,e,m(jP[22],a),b)})]);return m(au(e,c,cO,[0,m(Of(0),jp),1],0,ev,jp),jq)}ci=2}}else +ci=2}var +dQ=0;switch(ci){case +1:break;case +2:var +rJ=f[1];if(45===d[0]){var +jm=d[2],ey=d[1];if(0===jm[0]){if(!d[3]){var +ez=d[4],rM=jm[1];if(0!==ez[0]){var +jn=d[5],bL=ez[1];switch(bL[0]){case +0:return L(e,[0,c],[72,iG(bL),5]);case +1:var +eA=bL[2],Df=0;if(typeof +eA!=="number"&&1===eA[0]){if(typeof +eA[1]!=="number")return L(e,[0,c],[72,iG(bL),6]);Df=1}break;case +25:return m(au(e,c,ez,[0,m(f_(pF(2,bL[2])),ey),1],0,rJ,ey),jn)}return L(e,[0,c],[18,0,ey,rM,jn[1],0])}}}else +dQ=1}else +dQ=1;break;default:dQ=1}if(dQ)if(45===d[0]){var +ew=d[2];if(0!==ew[0]&&!d[3]){var +ex=d[4],jj=ew[1],rK=d[6],rL=ew[2],jk=f9([0,d[5][1]],A);aT(rL,function(a){var +d=a[1],i=0,k=a[2];if(0===ex[0]){var +f=ex[2];if(0===f[0]){var +p=f[1],g=qA(rK,function(a){return l(aO,e,m(jP[22],a),p)});i=1}}if(!i)var +g=0;var +h=2!==e[12]?1:0;if(!h)return h;var +q=uE(ex),b=1-n(AP,d,e[1][14]);if(b){var +j=o(g5,0,d,[0,q,k,jk,g],e[1][14]);e[1][14]=j;var +c=0}else +var +c=b;return c});if(!jj)return 0;var +jl=jj[1];return x(w,e,c,jk,e8f,jl[2],jl[1])}}else +hQ=1}if(hQ)switch(f[0]){case +9:case +25:if(29===d[0])return 0;as=1;break;default:if(29===d[0])return L(e,[0,c],[iZ,C(f)]);if(1===f[0]){var +cN=f[2],aW=f[1],hR=0;if(typeof +cN==="number")hR=1;else +switch(cN[0]){case +5:var +rI=cN[1];if(adH(d))return l(k,e,c,[0,rI,[17,aW,0,d]]);as=1;break;case +8:var +et=cN[1];if(adH(d)){var +jg=[0,aW,ie(e,aW)];l(k,e,c,[0,et,[14,jg]]);return l(k,e,c,[0,[0,jg],d])}switch(d[0]){case +2:var +jh=[0,aW,ie(e,aW)];l(k,e,c,[0,et,[14,jh]]);return l(k,e,c,[0,[0,jh],d]);case +82:var +ji=[0,aW,ie(e,aW)];l(k,e,c,[0,et,[14,ji]]);return l(k,e,c,[0,[0,ji],d]);default:as=1}break;default:hR=1}if(hR)as=1}else +as=1}}}break;case +1:as=1;break;case +2:as=2;break;case +3:as=3;break;default:as=4}var +bs=0;switch(as){case +1:switch(d[0]){case +10:var +i2=d[5],bb=d[4],bJ=d[2],i4=d[1],rl=d[3],i5=f7(e,bJ,function(a){return o(j,e,c,i4,[0,a,[0,i2]])}),i6=uE(bb),rm=0===bb[0]?bb[1]:bJ,qp=0,rn=[0,[0,rl,[0,rm,C(f)]]];if(1===f[0]){var +eq=f[2],Dg=0;if(typeof +eq==="number"||!(6===eq[0]))Dg=1;else if(jF(eq[1][1][3])){var +i8=[0,[0,[1,aj([46,i6],bJ),2],i5]];qp=1}}if(!qp)var +i8=[0,[0,[1,aj([47,i6],bJ),e8e],i5]];var +qq=0,ro=[1,i8,rn],rp=0;if(0===bb[0]){var +i9=bb[2];if(0===i9[0]&&!q(i9[1],ig)){var +ep=1;qq=1}}if(!qq){var +qs=0;if(1===f[0]){var +Dh=0,ja=f[2];if(typeof +ja==="number"||!(9===ja[0]))Dh=1;else{var +ep=0;qs=1}}if(!qs)var +ep=1}return l(k,e,c,[0,f,[45,bJ,ro,0,bb,[0,i4,f,i2],[0,jP[1]],ep,rp]]);case +17:var +rq=d[3];return l(k,e,c,[0,p(y,e,[0,c],d[1],[0,d[2]],f),rq]);case +81:var +jb=d[2],rs=d[4],rt=jb?jb[1]:f;return o(j,e,c,A,[0,rt,rs]);case +89:var +bK=d[2],jc=d[1];if(0===bK[0]){var +cM=bK[1];if(cM){var +jd=bK[3],je=cM[3],er=cM[1],qt=0,ru=d[4],rx=d[3],ry=bK[4],rz=bK[2],rA=cM[2],rC=je[2],rD=er[2],rE=er[1];if(1===f[0]){var +es=f[2],Di=0;if(typeof +es==="number"||!(21===es[0]))Di=1;else{var +Dj=0;if(mu(rE,es[1][1])&&n(uk,rC,rD)){var +jf=[0,je,jd];qt=1}else +Dj=1}}if(!qt)var +jf=jd;return pI(cx,e,c,jc,rA,er,rz,jf,ry,rx,ru)}}return p(a7,e,c,jc,d[4],d[3]);case +94:var +rF=d[4],rG=d[3],rH=d[2];return o($,e,c,[3,C(f),rG,f,rH],rF);default:if(3===f[0])return l(k,e,c,[0,p(y,e,0,f[1],0,f[3]),d]);if(92===d[0])return o(j,e,c,A,[0,f,[0,d[1]]]);var +dR=0;if(1===f[0]){var +en=f[2],qu=0;if(typeof +en==="number"||!(19===en[0]))qu=1;else{var +eo=en[1],iX=f[1];if(0===eo[0]){var +i0=d,iY=iX;bs=3}else{if(!eo[1])return l(k,e,c,[0,eo[2],[iZ,iX,d]]);dR=1}}if(qu)dR=1}else +dR=1;if(dR){if(iZ===d[0]){var +rk=d[2];return l(k,e,c,[0,p(H,e,[0,c],d[1],0,e8c),rk])}bs=1}}break;case +0:bs=1;break;case +2:break;case +3:bs=2;break;default:bs=3}var +qv=0;switch(bs){case +1:switch(f[0]){case +8:return l(k,e,c,[0,p(H,e,[0,c],f[1],[0,1],e8a),d]);case +9:return l(k,e,c,[0,p(H,e,[0,c],f[1],[0,1],e8b),d]);default:switch(d[0]){case +23:var +rg=d[3];return l(k,e,c,[0,m(im[3],d[2]),rg]);case +82:if(!d[3]){var +rh=d[4],ri=d[1],rj=C(d[5]),iW=qN([0,C(rh),rj]);return L(e,[0,c],[hb,ri,iW[1],iW[2]])}break}}break;case +0:break;case +2:qv=1;break;default:return l(k,e,c,[0,p(H,e,[0,c],iY,0,e8d),i0])}if(!qv){switch(f[0]){case +1:var +bI=f[2],aV=f[1],qw=0;if(typeof +bI==="number")if(3===bI){if(F3(d))return l(k,e,c,[0,p(H,e,[0,c],aV,0,e77),d])}else +qw=1;else +switch(bI[0]){case +0:var +rc=bI[1];if(F3(d))return l(k,e,c,[0,p(H,e,[0,c],aV,0,e78),d]);if(98===d[0]){var +rd=d[2];return L(e,[0,c],[i$,[0,aV,rd,aKz(rc)]])}break;case +1:var +re=bI[1];if(F3(d))return l(k,e,c,[0,p(H,e,[0,c],aV,0,e79),d]);if(typeof +re!=="number"&&98===d[0])return L(e,[0,c],[72,aV[2],6]);if(98===d[0]){var +rf=d[4];return aT(rf,function(a){var +b=a[2],d=a[1];return L(e,[0,c],[18,0,C(f),b,d,0])})}break;case +2:if(F3(d))return l(k,e,c,[0,p(H,e,[0,c],aV,0,e7_),d]);break;case +3:if(F3(d))return l(k,e,c,[0,p(H,e,[0,c],aV,0,e7$),d]);break;default:qw=1}break;case +11:case +12:case +13:return l(k,e,c,[0,[8,f[1]],d])}switch(d[0]){case +45:var +iV=d[4],q7=d[5],q8=C(f)[2];GS(l(j,e,c,A),0,e,q8,d);var +q9=[0,q7[1]],q_=adJ(f),q$=C(f),ra=BI(iV);return L(e,[0,c],[2,uE(iV),ra,q$,q_,q9]);case +96:return 0;case +98:var +rb=d[2];return L(e,[0,c],[i$,[0,C(f),rb,0]])}}var +q1=F8(d),q2=aN_(d),q3=[0,lZ(d),q2],q4=adJ(f);L(e,[0,c],[0,[0,C(f),q4],q3,q1,0]);var +q5=2===d[0]?[0,[0,C(f),[0,f,0]]]:0,q6=C(f)[2];return GS(l(j,e,c,A),q5,e,q6,d)});h(d2,function(a,b,c,d,e,f,g,h,i){if(!yK(g)&&!yL(g)){if(e)var +n=f,m=g;else +var +n=g,m=f;return o(j,a,b,A,[0,aOH(a,[0,b],d,m,n,i),h])}return l(k,a,b,[0,g,[24,c,d,1-e,f,h,i]])});h(d3,function(a,b,c,d,e,f){if(!yK(f)&&!yL(f)){if(d)var +g=e,i=f;else +var +g=f,i=e;var +h=0;if(1===i[0]){var +p=0,j=i[2];if(typeof +j==="number")if(0===j)h=2;else +p=1;else +switch(j[0]){case +0:if(1===g[0]){var +s=0,m=g[2];if(typeof +m==="number")if(0===m)h=1;else +s=1;else if(0===m[0])h=2;else +s=1}break;case +1:if(1===g[0]){var +t=0,n=g[2];if(typeof +n==="number")if(0===n)h=1;else +t=1;else if(1===n[0])h=2;else +t=1}break;case +3:if(1===g[0]){var +u=0,o=g[2];if(typeof +o==="number")if(0===o)h=1;else +u=1;else if(3===o[0])h=2;else +u=1}break;default:p=1}if(p)h=1}else +h=1;var +q=0;switch(h){case +1:if(1===g[0]){var +r=g[2];if(typeof +r==="number"&&!r)q=1}break;case +0:break;default:q=1}if(q)return 0;if(aN5(i)&&aN5(g))return 0;var +v=C(g);return L(a,[0,b],[27,qN([0,C(i),v])])}return l(k,a,b,[0,f,[25,c,1-d,e]])});h(d4,function(a,b,c,d,e,f){if(!yK(f)&&!yL(f)){if(d)var +h=e,g=f;else +var +h=f,g=e;if(aN6([0,g,h]))return 0;var +i=C(h);return L(a,[0,b],[28,qN([0,C(g),i])])}return l(k,a,b,[0,f,[36,c,1-d,e]])});h(d5,function(a,b,c,d,e,f,g){if(!yK(g)&&!yL(g)){if(e)var +i=f,h=g;else +var +i=g,h=f;var +j=aPG(d,[0,h,i]);return j?L(a,[0,b],j[1]):0}return l(k,a,b,[0,g,[35,c,d,1-e,f]])});h(cp,function(a){var +b=0;switch(a[0]){case +0:var +c=a[2];switch(c[0]){case +0:b=1;break;case +1:var +e=0,d=c[2];if(typeof +d==="number"||!(16===d[0]))e=1;else +b=1;break}break;case +52:return a[3];case +3:case +17:case +18:case +24:case +58:case +70:case +72:case +81:case +85:case +86:case +88:case +89:case +91:case +94:case +95:case +100:case +103:b=1;break}return b?0:1});h(d6,function(h,i,c,d,e,f,g){function +n(a){return[3,d,f,a,e]}function +M(a,b){var +g=[0,d,ie(h,d)],j=m(a,g);l(k,h,i,[0,p(y,h,0,d,0,c),j]);return l(k,h,i,[0,[0,g],[94,d,e,f,b]])}function +z(a,b){return M(a,[1,b])}function +t(a,b,c){var +d=a?a[1]:A,e=[0,d,c];return z(function(a){return m(b,[0,a])},e)}function +B(a,b,c){var +d=a?a[1]:A;return z(b,[0,d,[0,c]])}function +a(a,b){var +j=a?a[1]:g;l(k,h,i,[0,p(y,h,0,d,0,c),[94,d,e,f,[1,j]]]);return 1}function +u(a,b){var +e=a?a[1]:g;switch(c[0]){case +15:var +f=m(gr[3],c[2]),j=f[2],r=j[1],s=f[1],t=K(j[2],n),u=n(r),v=n(s);l(k,h,i,[0,[15,d,l(gr[1],v,u,t)],e]);return 1;case +16:var +p=m(aG[6],c[2]),q=p[2],w=q[1],x=p[1],y=K(q[2],n),z=n(w),A=n(x);l(k,h,i,[0,[16,d,o(aG[3],0,A,z,y)],e]);return 1;default:return 0}}function +N(a,b){switch(b[0]){case +0:var +c=b[1];return[0,[0,[0,a],c[2],c[3],c[4],c[5]],b[2],b[3]];case +1:var +d=b[3];return[1,b[1],b[2],[0,[0,a],d[2],d[3],d[4],d[5]],b[4],b[5],b[6]];default:return[2,b[1]]}}var +I=0;switch(c[0]){case +1:var +x=c[2],J=0,aT=c[1];if(typeof +x==="number"){if(0===x){var +X=m(cp,g);J=1}}else if(8===x[0]){var +Y=x[1];l(k,h,i,[0,[1,aT,[8,[3,C(Y),f,Y,e]]],g]);var +X=1;J=1}if(J)var +v=X;else +I=1;break;case +3:var +aU=c[3],aV=aJs(e,c[4]),v=aY(aV,0,function(a){l(k,h,i,[0,[3,d,f,aU,a],g]);return 1});break;case +19:l(k,h,i,[0,p(y,h,0,d,0,c),[94,d,e,f,[1,g]]]);var +v=1;break;default:I=1}if(I)var +v=0;if(v)return 1;var +s=0;switch(g[0]){case +0:var +r=g[1],b=g[2];switch(b[0]){case +1:if(0===r[0]){var +aW=0,O=r[1];if(typeof +O==="number"||!(10===O[0]))aW=1;else{var +aX=0,P=g[2][2];if(typeof +P==="number"||!(1===P[0]))aX=1;else +s=1}}break;case +7:var +$=b[2],aa=b[1];if(!sp(c))return a(0,0);if(1===c[0]){var +D=c[2],aZ=0;if(typeof +D!=="number"&&6===D[0]){var +Q=D[1][1];if(!jF(Q[3])){var +R=n(c);aOa(h,i,Q[3],r,aa,R);o(j,h,i,r,[0,R,$]);return 1}aZ=1}}return 0;case +15:s=2;break;case +16:if(!Ci(h,0,j9,c,b))return sp(c)?u(0,0):a(0,0);if(j$(h))kS(e8Z);return 1;case +17:var +ab=b[2],ac=b[1];t([0,r],function(a){return[0,r,[17,ac,a]]},ab);return 1;case +18:var +ad=b[2];t([0,r],function(a){return[0,r,[18,b[1],a,b[3]]]},ad);return 1;case +19:s=3;break}break;case +4:var +ae=g[5],af=g[4],ag=g[3],ah=g[2],ai=g[1],E=[4,ai,ah,ag,af,N(n(c),ae)],Z=0;if(sp(c)&&!P5(c)){var +S=u([0,E],0);Z=1}if(!Z)var +S=a([0,E],0);if(1-S)l(k,h,i,[0,p(y,h,0,d,0,c),E]);return 1;case +5:var +aj=g[7],ak=g[6],al=g[5],am=g[4],an=g[3],ao=g[2],ap=g[1],F=[5,ap,ao,an,am,al,ak,N(n(c),aj)],_=0;if(sp(c)&&!P5(c)){var +T=u([0,F],0);_=1}if(!_)var +T=a([0,F],0);if(1-T)l(k,h,i,[0,p(y,h,0,d,0,c),F]);return 1;case +8:var +G=g[4],aq=g[3],ar=g[2],as=g[1];if(0===G[0]){var +H=G[2],at=G[1];if(0===H[0]&&!q(H[1],ig)){var +au=g[5];if(!sp(c))return a(0,0);if(1===c[0]){var +U=c[2];if(typeof +U!=="number"&&9===U[0]){B(0,function(a){return[8,as,ar,aq,gM(at,0,H),a]},au);return 1}}return 0}}break;case +19:var +av=g[6],aw=g[5],ax=g[4],ay=g[3],az=g[2],aA=g[1];if(!sp(c))return a(0,0);if(1===c[0]){var +V=c[2];if(typeof +V!=="number"&&8===V[0]){t(0,function(a){return[19,aA,az,ay,ax,a,av]},aw);return 1}}return 0;case +23:var +aB=g[3],aC=g[2],aD=g[1];z(function(a){return[23,aD,aC,[0,A,[0,a]]]},aB);return 1;case +33:var +w=g[1],L=0;if(typeof +w!=="number")switch(w[0]){case +2:var +a0=0,W=w[1];if(typeof +W==="number"||!(4===W[0]))a0=1;else +L=1;break;case +4:L=1;break}if(L)return 0;var +aE=g[2];B(0,function(a){return[33,w,a]},aE);return 1;case +48:var +aF=g[4],aH=g[3],aI=g[2],aJ=g[1];t(0,function(a){return[48,aJ,aI,a,aF]},aH);return 1;case +57:if(sp(c)&&!P5(c))return u(0,0);return a(0,0);case +58:var +aK=g[2],aL=g[1];M(function(a){return[58,aL,[1,[0,A,[0,a]]]]},aK);return 1;case +71:if(sp(c)&&!P5(c))return u(0,0);return a(0,0);case +80:if(!sp(c))return a(0,0);break;case +90:var +aM=g[2],aN=g[1];t(0,function(a){return[90,aN,a]},aM);return 1;case +91:var +aO=g[2],aP=g[1];t(0,function(a){return[91,aP,a]},aO);return 1;case +92:var +aQ=g[3],aR=g[2],aS=g[1];B(0,function(a){return[92,a,aR,aQ]},aS);return 1;case +70:s=2;break;case +103:s=3;break;case +10:case +24:case +25:case +26:case +27:case +28:case +29:case +30:case +35:case +36:case +69:case +77:case +95:s=1;break}switch(s){case +0:return 0;case +1:l(k,h,i,[0,p(y,h,0,d,0,c),g]);return 1;case +2:return sp(c)?u(0,0):a(0,0);default:return sp(c)?0:a(0,0)}});h(Z,function(a,b,c){function +f(a){return b}switch(c[0]){case +1:var +g=c[2],t=0;if(typeof +g!=="number"&&7===g[0]){var +e=g[1],h=c[1];switch(e[0]){case +0:return[1,h,[7,[0,0,b,0]]];case +1:var +i=e[4],j=e[3],k=e[1];return[1,h,[7,[1,k,b,K(j,function(a){var +b=a[5],c=a[4],d=a[2],e=a[1];return[0,e,d,f(a[3]),c,b]}),i]]];default:t=1}}break;case +21:var +d=c[2],l=d[4],m=d[3],n=d[2],o=c[1],p=d[5],q=avY(l,function(a){return[0,a[1],a[2],b,a[4]]}),r=AK(m,f),s=AK(n,f);return[21,o,[0,d[1],s,r,q,p]]}return X(e80)});h(aa,function(e,b,c,d){var +a=b[5],g=b[4],h=b[3],i=b[2],j=b[1][1],k=m(d,e);function +l(a){return a[2]}fo(function(a){return k1(l,k,a)},i);aT(h,function(a){return n(d,e,a[3])});n(d,e,j);var +o=0;if(a){var +f=a[1];if(0!==f[0]){n(c,e,f[2]);o=1}}return n(c,e,g)});h(F,function(a,b,c,d,e){var +f=uU(a);return f?x(w,a,b,c,0,d,e):f});h(a3,function(a,b,c,d){return d?n(c,b,i_(a,d[1])):0});h(a4,function(i,h,c,d,e,f,g){function +a(a,b){var +g=m(fQ[2],b);function +j(a){switch(g){case +0:return n(e,c,a);case +1:return p(F,i,h,c,f,a);default:return n(d,c,a)}}return m(m(fQ[12],j),b)}return m(m(Y[11],a),g)});h(ab,function(h,b,c,d,e,f,g){var +i=g[5],a=p_(h);return a?fo(function(a){var +g=a[1];switch(a[2]){case +0:return n(e,c,g);case +1:return p(F,h,b,c,f,g);default:return n(d,c,g)}},i):a});h(ac,function(a,b){return 2===iO(a,b)[2][0]?1:0});h(ba,function(h,b,c,d,e,f,g){return fo(function(a){var +g=a[3];switch(a[4]){case +0:return n(f,c,g);case +1:return p(F,h,b,c,d,g);default:return n(e,c,g)}},g)});h(ad,function(a,b,c,d,e,f,g,h,i,j){var +k=j[9],p=j[6],q=j[5],r=j[4];ap(ba,a,b,c,d,e,f,j[3]);if(k&&k[1]){n(e,c,g);n(e,c,h);fo(m(e,c),i);var +l=x(a4,a,b,c,e,f,d);m(l,gz(a,r));m(l,gz(a,q));return o(a3,a,c,e,p)}return 0});h(cq,function(e,g,c,d){function +h(a,b){var +d=uU(e);return d?o(j,e,g,a,[0,c,b]):d}function +k(a,b){var +d=uU(e);return d?o(j,e,g,a,[0,b,c]):d}var +q=0;switch(d[0]){case +0:var +f=d[1],i=d[2],b=0;switch(i[0]){case +0:return n(ac,e,i[1][2]);case +1:var +a=i[2],r=0;if(typeof +a==="number")r=1;else +switch(a[0]){case +5:var +u=a[2];if(uU(e))o(aa,f,u,h,k);return 1;case +6:ap(ab,e,g,f,h,k,c,a[1]);return 1;case +7:var +t=a[1];if(2===t[0])var +p=t[1];else +b=3;break;case +8:var +p=a[1];break;case +9:pI(ad,e,g,f,c,h,k,a[1],a[2],a[3],a[4]);return 1;case +16:b=1;break;case +18:var +v=a[3],w=a[2];k(f,a[1]);h(f,w);h(f,v);return 1;default:r=1}if(r)b=2;break;case +7:var +p=i[2];break;case +19:q=1;b=1;break;case +20:return 1;case +21:b=3;break;case +24:b=4;break;case +5:case +6:case +14:case +15:case +16:case +17:case +18:case +22:case +23:b=1;break;default:b=2}var +s=0;switch(b){case +1:break;case +2:s=1;break;case +0:h(f,p);return 1;case +3:if(uU(e))o(j,e,g,f,[0,l(Z,e,c,i),i]);return 1;default:s=1}if(s)return 1;break;case +40:var +x=d[2],y=d[1];if(uU(e)){var +z=[0,x],B=25===c[0]?c[2]:X(ds9);o(j,e,g,A,[0,m(f_(B),y),z])}return 1;case +101:h(d[1],[1,d[3],[19,d[5]]]);return 1;case +102:return o(cq,e,g,c,d[2]);case +7:case +16:case +20:case +21:case +25:case +27:case +28:case +29:case +30:case +32:case +35:case +36:case +43:case +44:case +54:case +61:case +74:case +75:case +78:case +87:case +88:case +97:case +98:q=1;break}return q?1:0});h(d7,function(f,i,c,d,e){function +b(a,b){var +c=uU(f);return c?o(j,f,i,a,[0,b,d]):c}function +k(a,b){var +c=uU(f);return c?o(j,f,i,a,[0,d,b]):c}var +g=0;switch(e[0]){case +0:return n(ac,f,e[1][2]);case +1:var +a=e[2],h=0;if(typeof +a==="number")h=2;else +switch(a[0]){case +5:o(aa,c,a[2],b,k);return 1;case +6:ap(ab,f,i,c,b,k,d,a[1]);return 1;case +7:var +p=a[1];if(2===p[0]){var +m=p[1];h=1}else +g=2;break;case +8:var +m=a[1];h=1;break;case +9:pI(ad,f,i,c,d,b,k,a[1],a[2],a[3],a[4]);return 1;case +16:var +m=a[2];h=1;break;case +17:g=1;break;case +18:var +r=a[3],s=a[2];k(c,a[1]);b(c,s);b(c,r);return 1;default:h=2}switch(h){case +0:break;case +2:break;default:b(c,m);return 1}break;case +3:b(c,e[3]);return 1;case +19:return 1;case +20:return 1;case +21:g=2;break;case +24:var +q=e[2];if(typeof +q==="number"&&5===q)g=1;break;case +25:break;case +22:case +23:return 0;case +8:case +9:case +10:case +11:case +12:case +13:return 1;default:g=1}switch(g){case +2:if(uU(f))o(j,f,i,c,[0,e,l(Z,f,d,e)]);return 1;case +1:return 0;default:return 1}});h(cr,function(i,h,c,d,e,f,g){return vF(function(a,b){var +f=b[3],m=a[4],g=a[3],j=[1,[19,a[1],a[2],d,e,m],c];switch(m){case +0:return l(k,i,h,[0,f,[0,j,g]]);case +1:return x(w,i,h,j,0,g,f);default:return l(k,i,h,[0,g,[0,j,f]])}},f,g)});h(cs,function(a,b,c){var +d=c[4],f=c[3],g=c[2],h=gz(a,c[1]),i=gz(a,g),e=g_(0);Pn(a,e,l(Y[32],0,h,i));var +j=d?[0,d[1]]:1;return[1,b,[6,[0,[0,0,0,j],e,[9,b],f,0]]]});h(ct,function(a,b,c,d,e,f){var +i=f[4],k=f[3],m=f[2],n=f[1];if(1===d[0]){var +h=d[2];if(typeof +h!=="number"&&6===h[0]){var +g=h[1],p=g[1],q=g[5],r=g[4],s=g[3],t=g[2],u=p[3],v=p[1],w=d[1];return o(j,a,b,c,[0,[1,w,[6,[0,[0,v,0,u],t,s,r,q]]],l(cs,a,e,[0,n,m,k,i])])}}return x(bb,a,b,c,d,e,[0,n,m,k,i])});h(bb,function(g,i,c,d,e,f){var +o=f[4],b=f[3],j=f[2],p=f[1],h=C(d),n=NO(h),q=gz(g,p),r=gz(g,j),s=S(b,function(a){return i_(g,a)});function +a(a){if(0===a[0]){var +b=a[3];if(n)return[0,b,2]}return m(fQ[1],a)}function +t(f,b){var +m=[1,[15,[0,f],h,e],c];if(0===b[0]){var +j=b[3];if(18===j[0]){var +r=b[4],s=gM(gg(function(a){return[63,[44,f,a]]},e),0,f),t=n?2:r,u=0,v=1,w=[0,jP[1]],x=[2,m,[0,j,t]],y=0,z=0;return l(k,g,i,[0,d,[45,e,[1,S(o,function(a){return[0,a[3],j]}),z],y,s,x,w,v,u]])}}var +p=gM(gg(function(a){return[44,f,a]},e),0,f),q=[0,jP[1]];return l(k,g,i,[0,d,[45,e,[0,h],0,p,[2,m,a(b)],q,1,0]])}m(m(Y[11],t),q);function +u(f,b){var +j=[1,[15,[0,f],h,e],c],m=gM(gg(function(a){return[44,f,a]},e),0,f),n=[0,jP[1]];return l(k,g,i,[0,d,[45,e,[0,h],0,m,[2,j,a(b)],n,1,0]])}m(m(Y[11],u),r);return aT(s,function(a){var +j=[1,[15,aPK,h,e],c];if(1===d[0]){var +f=d[2],b=0;if(typeof +f==="number")b=1;else +switch(f[0]){case +6:var +m=f[1][4];if(m){var +n=m[1];b=2}break;case +9:var +o=f[4][6];if(o){var +n=o[1];b=2}break;default:b=1}switch(b){case +1:break;case +0:break;default:return l(k,g,i,[0,i_(g,n),[0,j,a]])}}return L(g,[0,i],[18,aPK,gg(function(a){return[44,e81,a]},e),h,j,0])})});h(d8,function(a,b,c,d,e,f,g,h){var +j=aj([41,[0,g]],d),k=[3,[1,[15,[0,g],d,e],c],m(fQ[1],h)],n=PM(a,g)?[9,C(f)]:f,o=gM(j,0,g);return l(i[6],a,b,[0,n,[45,d,e82,0,o,k,[0,jP[1]],1,0]])});h(cu,function(a,b,c,d,e,f,g,h){if(d)return fU(ae,a,[0,b],0,c,e,f,g,h);var +i=ie(a,c);fU(ae,a,[0,b],1,c,e,f,[0,c,i],h);return l(k,a,b,[0,[0,[0,c,i]],[52,c,[0,g],0]])});h(ae,function(k,b,c,d,e,f,g,h){if(typeof +f==="number")var +a=[33,e83,g];else +switch(f[0]){case +0:var +o=[0,f[1]],t=f[2],m=function(a){return[8,A,d,[0,h],gM(d,0,o),g]};if(t){var +s=0;if(1===e[0]){var +j=e[2],i=0;if(typeof +j==="number")if(1===j){var +p=m(0);i=2}else +i=1;else if(6===j[0]){var +q=j[1];if(9===q[3][0]&&jF(q[1][3])){var +u=[0,A,e,g],v=f7(k,d,function(a){return l(r,k,b,[0,a,[0,A,[0,g]]])}),w=[1,[0,[0,[1,aj(9,g[1]),2],v]],0],x=[0,jP[1]],p=[45,d,w,0,gM(d,0,o),u,x,0,0];i=2}}else +i=1;switch(i){case +0:break;case +1:break;default:var +n=p;s=1}}if(!s)var +n=m(0)}else +var +n=m(0);var +a=n;break;case +1:var +a=[12,A,d,0,c,0,f[1],g];break;case +2:var +a=[48,d,f[1],[0,g],h];break;default:var +a=[51,A,d,f[1],[0,g]]}return l(r,k,b,[0,e,a])});h(bw,function(i,b,c,d,e,f,g){var +m=Pj(i),h=aek(i,e),u=0===rw(h)[0]?0:1,j=n(yn[27],g,m),p=j?j[1]:hd(i,d,function(a){adg(i,o(yn[31],0,g,[0,a],m));var +j=0;switch(h[0]){case +2:return l(k,i,b,[0,h,[iU,c,d,0,f,a]]);case +3:var +e=h[3],n=h[1],p=h[2];switch(e[0]){case +0:j=1;break;case +20:return l(k,i,b,[0,[3,n,p,e[2],h[4]],[iU,c,n,[0,[0,e[1],e[3]]],f,a]])}break;case +20:return l(k,i,b,[0,h[2],[iU,c,d,[0,[0,h[1],h[3]]],f,a]]);case +0:j=1;break}return j?l(k,i,b,[0,h,[iU,c,d,0,f,a]]):ap(a5,i,b,c,d,h,f,a)}),q=1-ad0(i,h);if(q){var +t=0;try{o(D(PV,336714553,xd),PV,i,ik,f)}catch(f){var +a=fk(f);if(a!==PU)throw B(a,0);var +r=1;t=1}if(!t)var +r=0;var +s=1-r}else +var +s=q;if(s)mz(0,i,p);return[0,u,p]});h(a5,function(q,r,h,i,e,f,g){if(typeof +f!=="number")switch(f[0]){case +10:if(f[1])return l(k,q,r,[0,e,[99,h,i,[0,g],f[4],1,f[2],f[3]]]);break;case +14:var +M=f[1];if(typeof +M==="number"&&M)return l(k,q,r,[0,ap(co[2],q,r,h,i,e,f[3],f[4]),[0,A,[0,g]]]);break}function +u(a,b,c,d){var +g=a?a[1]:function(a){return a},j=[0,h,i,f],e=xO(c,function(a){return Cd(q,m(g,a),j)}),n=mo(e),o=g1(e);return l(k,q,r,[0,o,[86,b,n,0,d,g0(0)]])}function +v(a,b,c,d){var +e=h6(14,b),f=m(i7[4],e);return u(a,e,[0,c,[0,f,[0,m(fY[4],e),0]]],d)}function +w(a,b,c,d){var +e=h6(9,b);return u(a,e,[0,c,[0,m(fY[4],e),0]],d)}function +s(a){if(typeof +f==="number"){if(8===f)return 0}else +switch(f[0]){case +8:return kA(f[1]);case +13:if(16!==e[0])return 1;var +b=e[2];if(1-m(aG[12],b)){var +c=function(a){return rB(q,a)};n(aG[11],b,c)}return m(aG[16],b)?0:1}return 1}switch(e[0]){case +3:var +b=e[3],t=e[2],c=e[1];switch(b[0]){case +6:var +af=e[4];return l(k,q,r,[0,Cd(q,[3,c,t,fU(a9,q,[0,r],b[2],i,c,0,b[3],b[4]),af],[0,h,i,f]),[0,h,[0,g]]]);case +16:var +ag=e[4],ah=b[2];if(s(0)){var +ai=[0,h,[0,g]],ak=m(aG[5],ah);return u([0,function(a){return[3,C(a),t,a,ag]}],c,ak,ai)}break;case +17:var +al=e[4],am=b[2];if(s(0)){var +an=[0,h,[0,g]];return v([0,function(a){return[3,C(a),t,a,al]}],c,am,an)}break;case +18:var +aq=e[4],ar=b[2];if(s(0)){var +as=[0,h,[0,g]];return w([0,function(a){return[3,C(a),t,a,aq]}],c,ar,as)}break;case +20:var +at=e[4];return o(j,q,r,h,[0,Cd(q,[3,c,t,p(y,q,[0,r],c,[0,b[3]],b[2]),at],[0,h,i,f]),[0,g]]);case +21:var +I=b[2][2];if(I){var +au=e[4],av=I[1],aw=h5(c)[1];if(ao(c[2][1],aw))return ap(a5,q,r,h,i,[3,c,t,av,au],f,g)}break}break;case +6:return o(j,q,r,A,[0,Cd(q,fU(a9,q,[0,r],e[2],i,e[1],0,e[3],e[4]),[0,h,i,f]),[0,g]]);case +16:var +ax=e[2],ay=e[1];if(s(0))return u(0,ay,m(aG[5],ax),[0,A,[0,g]]);break;case +17:var +az=e[2],aA=e[1];if(s(0))return v(0,aA,az,[0,A,[0,g]]);break;case +18:var +aB=e[2],aC=e[1];if(s(0))return w(0,aC,aB,[0,A,[0,g]]);break;case +20:return o(j,q,r,A,[0,Cd(q,p(y,q,[0,r],e[1],[0,e[3]],e[2]),[0,h,i,f]),[0,g]]);case +21:var +J=e[2][2];if(J){var +L=e[1],aD=J[1],aE=h5(L)[1];if(ao(L[2][1],aE))return ap(a5,q,r,h,i,aD,f,g)}break}if(typeof +f==="number")switch(f){case +0:var +a=[91,A,[0,g]];break;case +1:var +a=[70,h,i,e84,0,[0,g]];break;case +2:var +a=[70,h,i,e85,1,[0,g]];break;case +3:var +a=[70,h,i,e86,2,[0,g]];break;case +4:var +a=[55,i,[0,g]];break;case +5:var +a=[71,h,i,[3,[0,g]]];break;case +6:var +a=[71,h,i,[4,[0,g]]];break;case +7:var +a=[71,h,i,[6,[0,g]]];break;default:var +a=[97,i,[0,g]]}else +switch(f[0]){case +0:var +x=f[1],a=[8,h,i,0,gM(aj([41,[0,x]],i),0,x),g];break;case +1:var +a=[12,h,i,0,1,0,f[1],g];break;case +2:var +a=[95,h,i,f[1],g];break;case +3:var +P=m(fY[3],f[1]),a=[86,i,0,[0,P,0],[0,A,[0,g]],g0(0)];break;case +4:var +Q=f[3],R=f[2],S=f[1],T=0,U=0,V=g0(0),W=[0,g],a=[70,h,i,e87,[0,S,[0,R,aY(Q,0,function(a){return[0,[1,a],0]}),V,U,T]],W];break;case +5:var +z=f[1],X=f[4],Y=f[3],Z=fZ(q,z),a=[80,h,z,[0,Y,X,[0,g0(0),Z,[0,g]]]];break;case +6:var +a=[70,h,i,e88,[1,f[1],[0,f[2]]],[0,g]];break;case +7:var +_=f[2],$=f[1],B=K(_,function(a){return[0,a]}),aa=$?0:1,d=o(ys(aa,i),0,B,0,g),N=0,ab=[0,d[1],d[2],d[3],d[4],0,d[6],d[7],d[8]];if(1===h[0]){var +O=0,E=h[1];if(typeof +E==="number")O=1;else +switch(E[0]){case +10:case +11:case +12:var +D=h;N=1;break;default:O=1}}if(!N)var +D=[1,[9,fA(B)],h];var +a=[2,D,i,[0,ab],kG];break;case +8:var +a=[3,h,i,f[1],f[2],f[3],f[4],f[5],g];break;case +9:var +a=[69,h,i,f[1],[0,g]];break;case +10:var +a=[99,h,i,[0,g],f[4],f[1],f[2],f[3]];break;case +11:var +a=[71,h,i,[5,f[1],[0,g]]];break;case +12:var +a=[70,h,i,e89,[3,f[1]],[0,g]];break;case +13:var +F=f[1],a=[92,g,F[1],F[2]];break;default:var +ac=f[4],G=aOq(q,h,f[2],f[3],f[1],e),H=G[2],ad=G[1],ae=typeof +H==="number"?0:[0,H[1]],a=[70,h,i,e8_,[4,ad,ac,ae],[0,g]]}return l(k,q,r,[0,e,a])});h(d9,function(a,b,c,d,e,f){var +g=[2,d,[0,b,c,e],f],h=GL(a,0,g);if(m(ic[2],h))ap(bw,a,iI,b,c,d,e,f);return g});h(cv,function(a,b,c,d,e){var +f=e[1];if(f){var +g=e[2];if(g){var +h=g[2],i=g[1],j=f[2],k=qJ([0,d,f[1][4]]);p(bJ[1],a,b,c,k,i);return p(cv,a,b,c,d,[0,j,h])}}return 0});h(cw,function(a,b,c,d,e,f,g){var +h=f[2],i=f[3],j=f[1],k=[0,g,0];return pI(a2,a,b,c,d,e,e9a,0,0,[0,j,h,i],U(iC(function(a,b){var +d=a[2],c=a[1];if(!c)return[0,0,d];var +e=c[1];return 0===e[0]?X(e8$):[0,c[2],[0,e[1],d]]},k,h)[2]))[1]});h(a6,function(a,b,c,d,e,f){var +h=d[1],i=e[3],j=e[2],k=e[1],n=d[4],o=d[3],p=d[2],q=e[4];if(i)var +m=i[1],g=Ex(m,function(a,b){if(1===a[0]&&b)return[0,[0,a,b[1]]];return 0},dxY);else +var +g=0;if(g)return ap(cw,a,b,k,j,h,[0,p,o,n],g[1]);var +l=ai(f),r=ah===l?f[1]:O===l?aq(f):f;return fU(bt[3],a,r,q,c,b,k,j,h)});h(d_,function(a,b,c,d,e,f){var +g=f[2],h=f[3],i=f[1],j=[0,0,aU[1]];return pI(a2,a,b,c,d,e,0,0,0,[0,i,g,h],U(iC(function(a,b){var +e=a[2],f=a[1],c=m(yo(7),d);return[0,[0,c,f],o(aU[31],0,b[2],c,e)]},j,g)[1]))[1]});h(d$,function(a,b,c,d,e,f){return l(k,a,b,[0,d,[42,c,e,f]])});h(ea,function(g,b,c,d,e,f){if(!f)return e;var +h=f[1];return f7(g,d,function(a){return l(k,g,b,[0,e,[41,A,c,d,0,[0,h],a]])})});h(eb,function(f,g,c,d,e){var +a=M(function(h,b){if(0===b[0])var +e=Oo,d=b[1];else +var +e=0,d=b[1];return f7(f,c,function(a){return l(r,f,g,[0,h,[46,[0,[2,c]],c,d,a,e]])})},d,e);return x(G,f,g,c[2],0,0,a)});h(cx,function(r,q,c,d,e,f,g,h,i,j){if(f){var +a=f[1];return l(k,r,q,[0,a[1],[89,c,[0,[0,e,d,a[2]],f[2],g,h],i,j]])}var +b=e[4],t=e[2],s=M(function(a,b){var +c=b[2],e=b[1],f=a[2],g=a[1];if(1-n(uk,c,g))L(r,[0,q],[rH,e,n(r4,c,f),d,c]);var +h=o(fN,0,c,e,f);return[0,n(j5,c,g),h]},[0,t,at],g)[1];if(!m(Ke,s)){L(r,[0,q],[l6,c,d,m(EO,s),h]);return p(a7,r,q,c,0,i)}if(!h)return b?(L(r,[0,q],[qp,c,d]),p(a7,r,q,c,0,i)):0;var +u=h[1];return b?0:L(r,[0,q],[pN,u,d])});h(a7,function(a,b,c,d,e){var +f=d?d[1]:m(fY[3],c);return o(j,a,b,A,[0,f,e])});h(bx,function(i,b,c,d,e,f,g,h){function +j(a){return f?n(z,i,[0,f[1],[86,c,f[2],a,h,d]]):l(k,i,b,[0,iH(c,a),h])}if(1===g[0]){var +a=g[2];if(typeof +a==="number"&&!a)return j(e)}var +m=C(g),o=fA(e);return P4(i,d,[0,m,o],function(a){return 0===a?j([0,g,e]):1===a?j(e):0})});h(aO,function(c,b){var +a=Y[35],d=xO(Ww(avY(b,function(a){return adj(c,a)}),a),fI);return function(a){return NG(d,a)}});h(by,function(o,b,c,d,e,f,g,h,i,j,k,l){if(!j)return L(o,[0,c],[24,[0,h,e],[0,i],g]);var +t=j[2];if(!mu(j[1][1],f[2]))return y5(by,o,b,c,d,e,f,g,h,i,t,k,l);var +p=[0,i];function +q(a){return m(au(o,c,gM(h,0,p),a,1,e,h),[0,g,d,l])}var +u=k?f[12]:f[11],v=gz(o,u),r=n(Y[27],p,v);if(r)return q(m(fQ[1],r[1]));var +w=k?f[14]:f[13],x=gz(o,w),s=n(Y[27],p,x);if(!s)return L(o,[0,c],[24,[0,h,e],p,g]);var +a=s[1];if(1-b){var +z=0;if(4===a[0]){var +y=a[2];if(!adi(o,h[2])){L(o,[0,c],[lg,g,C(y),h]);z=1}}}return q(m(fQ[1],a))});h(ec,function(h,b,c,d,e,f,g){var +a=adR(d);switch(g[0]){case +0:return l(k,h,b,[0,e,[8,c,f,g[1],a,g[4]]]);case +1:var +i=g[2];l(k,h,b,[0,e,[6,c,f,a,g[3],1,g[1],0]]);return aT(i,function(a){return o(j,h,b,A,[0,e,a])});default:return l(k,h,b,[0,e,[4,c,g[1],f,a,g[2]]])}});h(bc,function(a,b,c,d,e,f,g,h,i){var +j=p(ag[6],a,b,d,e,g);if(j){var +n=j[1];return m(au(a,b,e,n[1],n[2],f,g),i)}if(0!==e[0]){var +q=e[1];return l(k,a,b,[0,q,[98,C(q),0,h,[0,[0,c,f]]]])}var +o=e[2],r=e[1];if(jF(d[1][3])){var +s=fI(o);return L(a,[0,b],[18,[0,o],r,f,c,l(aO,a,[0,d[2],0],s)])}var +t=[45,g,[0,f],0,e,i,[0,m(jP[5],d[2])],1,0];return l(k,a,b,[0,d[3],t])});h(ed,function(a,b,c,d,e,f,g,h,i,j){return js(bc,a,b,c,e,f,g,h,i,[1,c,[1,g,[6,e]],j,i,1,d])});h(ee,function(a,b,c,d){var +e=ie(a,c);l(r,a,b,[0,d,[90,A,[0,[0,c,e]]]]);return e});h(a8,function(a,b,c,d,e,f){if(typeof +d==="number")switch(d){case +0:var +h=yS(a,c);if(1===h[0]){var +i=h[2];if(typeof +i==="number"&&!i)return 0}return o(j,a,b,A,[0,e,[0,f]]);case +2:var +k=Cn(a,c);if(1===k[0]){var +l=k[2];if(typeof +l==="number"&&!l)return 0}return o(j,a,b,A,[0,e,[0,f]])}else if(2===d[0]){var +g=d[1];if(typeof +g==="number")switch(g){case +0:var +m=so(a,c);if(1===m[0]){var +n=m[2];if(typeof +n==="number"&&!n)return 0}return o(j,a,b,A,[0,e,[0,f]]);case +2:var +p=Co(a,c);if(1===p[0]){var +q=p[2];if(typeof +q==="number"&&!q)return 0}return o(j,a,b,A,[0,e,[0,f]])}else if(2===g[0])return x(a8,a,b,c,g[1],e,f)}var +r=f[1][2];return L(a,[0,b],[72,r,[0,wh(d)]])});h(W,function(a,b,c,d,e){if(typeof +e==="number")switch(e){case +0:return o(j,a,b,A,[0,yS(a,d),[0,c]]);case +1:var +L=0;switch(d[0]){case +1:var +bb=d[1],T=d[2],aa=0;if(typeof +T==="number")if(1===T)var +u=d;else +aa=1;else if(4===T[0]){var +bc=T[1],ca=0;if(4===bc||!bc)ca=1;else +aa=2;if(ca)var +u=m(i7[3],bb)}else +aa=1;var +aT=0;switch(aa){case +0:break;case +1:aT=1;break;default:aT=1}if(aT)var +u=m(gU[3],bb);break;case +17:var +bd=d[1];L=2;break;case +18:var +be=d[2];if(17===be[0]){var +bd=be[1];L=2}else +L=1;break;case +25:var +u=d;break;default:L=1}switch(L){case +1:var +cl=C(d),u=m(gU[3],cl);break;case +2:var +u=m(i7[3],bd);break}return o(j,a,b,A,[0,u,[0,c]]);case +2:return o(j,a,b,A,[0,Cn(a,d),[0,c]]);case +3:return o(j,a,b,A,[0,aPA(d),[0,c]]);case +4:return o(j,a,b,A,[0,aPy(a,d),[0,c]]);case +5:switch(d[0]){case +1:var +bf=d[1],U=d[2],ab=0;if(typeof +U==="number")if(2===U)var +g=d;else +ab=1;else if(4===U[0]){var +bg=U[1],cb=0;if(3===bg||!bg)cb=1;else +ab=2;if(cb)var +g=m(fY[3],bf)}else +ab=1;var +aU=0;switch(ab){case +1:aU=1;break;case +2:aU=1;break}if(aU)var +g=m(gU[3],bf);break;case +17:var +g=m(fY[3],d[1]);break;case +18:var +g=n(fY[5],d[3],d[1]);break;case +25:var +g=d;break;default:var +cm=C(d),g=m(gU[3],cm)}return o(j,a,b,A,[0,g,[0,c]]);default:var +M=0,cs=[0,c];switch(d[0]){case +1:var +aV=0,bV=d[2],cr=d[1];if(typeof +bV==="number")aV=1;else +switch(bV[0]){case +4:var +bW=gg(function(a){if(typeof +a!=="number"&&80===a[0])return a;return[80,a]},cr),aO=[1,h6(27,bW),[7,[2,[1,bW,e7V],0]]];break;case +7:M=2;break;default:aV=1}if(aV)M=1;break;case +25:M=2;break;default:M=1}switch(M){case +1:var +aO=[1,C(d),0];break;case +2:var +aO=d;break}return o(j,a,b,A,[0,aO,cs])}switch(e[0]){case +0:var +ct=e[2],cu=e[1],bY=aj(51,c[1]),bZ=[0,bY,ie(a,bY)];l(k,a,b,[0,d,[33,cu,bZ]]);return l(k,a,b,[0,[0,bZ],[33,ct,c]]);case +1:var +cv=e[2];l(k,a,b,[0,d,[33,e[1],c]]);return l(k,a,b,[0,d,[33,cv,c]]);case +2:var +f=e[1];if(typeof +f==="number")switch(f){case +0:return o(j,a,b,A,[0,so(a,d),[0,c]]);case +1:return o(j,a,b,A,[0,aef(a,d),[0,c]]);case +2:return o(j,a,b,A,[0,Co(a,d),[0,c]]);case +3:return o(j,a,b,A,[0,aPB(d),[0,c]]);case +4:return o(j,a,b,A,[0,aPz(d),[0,c]]);case +5:return o(j,a,b,A,[0,aPx(a,d),[0,c]]);default:var +aW=0,cw=[0,c];switch(d[0]){case +1:var +cc=0,bX=d[2];if(typeof +bX==="number"||!(7===bX[0]))cc=1;else +var +aP=[1,C(d),0];if(cc)aW=1;break;case +25:var +aP=[1,C(d),0];break;default:aW=1}if(aW)var +aP=d;return o(j,a,b,A,[0,aP,cw])}switch(f[0]){case +0:return p(W,a,b,c,d,[1,[2,f[1]],[2,f[2]]]);case +1:return p(W,a,b,c,d,[0,[2,f[1]],[2,f[2]]]);case +2:return p(W,a,b,c,d,f[1]);case +3:return l(k,a,b,[0,f[2],[33,[2,[4,f[1],d]],c]]);case +4:return ap(av,a,b,0,f[1],f[2],d,c);case +5:if(f[2]){var +aX=0;if(1===d[0]){var +aE=d[2],c5=0;if(typeof +aE==="number"||!(2===aE[0]))c5=1;else{var +bv=aE[1],bw=d[1];if(bv){if(bv[1]){var +aQ=[1,bw,0];aX=1}}else{var +aQ=[1,h6(e7C,bw),e7D];aX=1}}}if(!aX)var +aQ=d;return o(j,a,b,A,[0,aQ,[0,c]])}var +aY=0;if(1===d[0]){var +aI=d[2],c6=0;if(typeof +aI==="number"||!(2===aI[0]))c6=1;else{var +by=aI[1],bz=d[1];if(by){if(!by[1]){var +aR=[1,bz,0];aY=1}}else{var +aR=[1,h6(e7I,bz),e7J];aY=1}}}if(!aY)var +aR=d;return o(j,a,b,A,[0,aR,[0,c]]);case +6:var +cd=0,cx=[0,f[3]];if(1===d[0]){var +at=d[2],c7=0;if(typeof +at==="number"||!(1===at[0]))c7=1;else{var +bj=at[1];if(typeof +bj!=="number"){var +cn=d[1];if(ao(bj[2],cx)){var +b0=[1,cn,0];cd=1}}}}if(!cd)var +b0=d;return o(j,a,b,A,[0,b0,[0,c]]);case +7:var +ce=0,cy=f[3];if(1===d[0]){var +ax=d[2],c8=0;if(typeof +ax==="number"||!(0===ax[0]))c8=1;else{var +bo=ax[1];if(typeof +bo!=="number"){var +co=d[1];if(af(bo[2][2],cy[2])){var +b1=[1,co,0];ce=1}}}}if(!ce)var +b1=d;return o(j,a,b,A,[0,b1,[0,c]]);case +8:var +cf=0,cz=f[3];if(1===d[0]){var +aA=d[2],c9=0;if(typeof +aA==="number"||!(3===aA[0]))c9=1;else{var +bt=aA[1];if(typeof +bt!=="number"){var +cp=d[1];if(af(bt[2][2],cz[2])){var +b2=[1,cp,0];cf=1}}}}if(!cf)var +b2=d;return o(j,a,b,A,[0,b2,[0,c]]);case +9:var +cg=0,cA=[0,c];if(1===d[0]){var +aJ=d[2],N=0;if(typeof +aJ==="number")N=1;else +switch(aJ[0]){case +2:N=2;break;case +20:var +bD=aJ[1][3];if(1===bD[0]){var +c_=0,bE=bD[2];if(typeof +bE==="number"||!(2===bE[0]))c_=1;else +N=2}break;default:N=1}switch(N){case +0:break;case +1:break;default:var +b3=[1,C(d),0];cg=1}}if(!cg)var +b3=d;return o(j,a,b,A,[0,b3,cA]);case +10:var +ch=0,cB=[0,c];if(1===d[0]){var +aM=d[2],P=0;if(typeof +aM==="number")P=1;else +switch(aM[0]){case +0:P=2;break;case +20:var +bO=aM[1][3];if(1===bO[0]){var +c$=0,bP=bO[2];if(typeof +bP==="number"||!(0===bP[0]))c$=1;else +P=2}break;default:P=1}switch(P){case +0:break;case +1:break;default:var +b4=[1,C(d),0];ch=1}}if(!ch)var +b4=d;return o(j,a,b,A,[0,b4,cB]);case +11:var +ci=0,cC=[0,c];if(1===d[0]){var +aN=d[2],Q=0;if(typeof +aN==="number")Q=1;else +switch(aN[0]){case +3:Q=2;break;case +20:var +bT=aN[1][3];if(1===bT[0]){var +da=0,bU=bT[2];if(typeof +bU==="number"||!(3===bU[0]))da=1;else +Q=2}break;default:Q=1}switch(Q){case +0:break;case +1:break;default:var +b5=[1,C(d),0];ci=1}}if(!ci)var +b5=d;return o(j,a,b,A,[0,b5,cC]);case +12:var +cj=0,cD=[0,c];if(1===d[0]){var +aK=d[2],R=0;if(typeof +aK==="number")R=1;else +switch(aK[0]){case +1:R=2;break;case +20:var +bI=aK[1][3];if(1===bI[0]){var +db=0,bJ=bI[2];if(typeof +bJ==="number"||!(1===bJ[0]))db=1;else +R=2}break;default:R=1}switch(R){case +0:break;case +1:break;default:var +b6=[1,C(d),0];cj=1}}if(!cj)var +b6=d;return o(j,a,b,A,[0,b6,cD]);case +13:var +ck=0,cE=[0,c];if(1===d[0]){var +bK=d[2];if(typeof +bK==="number"&&3<=bK){var +b7=[1,C(d),0];ck=1}}if(!ck)var +b7=d;return o(j,a,b,A,[0,b7,cE]);case +14:return ap(ar,a,b,f[1],f[2],0,d,c);case +15:return ap(as,a,b,f[1],f[2],0,d,c);default:var +_=f[1],b8=ai(_),x=ah===b8?_[1]:O===b8?aq(_):_,b9=x[3],cF=f[2],cG=x[5],cH=x[4],cI=x[2],cJ=x[1];return l(k,a,b,[0,b9,[79,cJ,s([13,g$(b9)],cI),cH,cG,0,cF,d,c]])}case +3:return l(k,a,b,[0,e[2],[33,[4,e[1],d],c]]);case +4:return ap(av,a,b,1,e[1],e[2],d,c);case +5:if(e[2]){var +aB=function(a){return h6(e7y,a)},ac=0;switch(d[0]){case +1:var +aC=d[2],aD=d[1],aZ=0;if(typeof +aC==="number")aZ=1;else +switch(aC[0]){case +2:var +bu=aC[1];if(bu)if(bu[1])var +y=[1,aB(aD),e7z];else +ac=1;else +var +y=[1,aB(aD),e7A];break;case +4:var +y=[1,aB(aD),e7B];break;default:aZ=1}if(aZ)ac=1;break;case +25:var +y=d;break;default:ac=1}if(ac)var +y=[1,C(d),0];return o(j,a,b,A,[0,y,[0,c]])}var +aF=function(a){return h6(e7E,a)},ad=0;switch(d[0]){case +1:var +aG=d[2],aH=d[1],a0=0;if(typeof +aG==="number")a0=1;else +switch(aG[0]){case +2:var +bx=aG[1];if(bx)if(bx[1])ad=1;else +var +z=[1,aF(aH),e7F];else +var +z=[1,aF(aH),e7G];break;case +4:var +z=[1,aF(aH),e7H];break;default:a0=1}if(a0)ad=1;break;case +25:var +z=d;break;default:ad=1}if(ad)var +z=[1,C(d),0];return o(j,a,b,A,[0,z,[0,c]]);case +6:var +v=[0,e[3]],bh=[1,v],cK=e[2],cL=e[1],bi=function(a){return h6(bh,a)};switch(d[0]){case +1:var +al=d[1],am=d[2],ae=0;if(typeof +am==="number")ae=1;else +switch(am[0]){case +1:var +an=am[1];if(typeof +an==="number")if(an||j1(v,e7x))var +w=[1,bi(al),[1,[0,0,v]]];else +ae=2;else +var +w=ao(an[2],v)?d:[1,s(bh,cL),[1,[0,[0,cK],v]]];break;case +4:var +w=[1,bi(al),[1,[0,0,v]]];break;default:ae=1}var +a1=0;switch(ae){case +1:a1=1;break;case +2:a1=1;break}if(a1)var +w=[1,al,0];break;case +25:var +w=d;break;default:var +w=[1,C(d),0]}return o(j,a,b,A,[0,w,[0,c]]);case +7:var +B=e[3],bk=B[2],bl=[2,bk],cM=e[2],cN=e[1],bm=function(a){return h6(bl,a)},ag=0;switch(d[0]){case +1:var +au=d[2],bn=d[1],a2=0;if(typeof +au==="number")a2=1;else +switch(au[0]){case +0:var +aw=au[1];if(typeof +aw==="number")if(aw||q(B[2],lb))var +D=[1,bm(bn),[0,[0,0,B]]];else +ag=1;else +var +D=af(aw[2][2],bk)?d:[1,s(bl,cN),[0,[0,[0,cM],B]]];break;case +4:var +D=[1,bm(bn),[0,[0,0,B]]];break;default:a2=1}if(a2)ag=1;break;case +25:var +D=d;break;default:ag=1}if(ag)var +D=[1,C(d),0];return o(j,a,b,A,[0,D,[0,c]]);case +8:var +E=e[3],bp=E[2],bq=[3,bp],cO=e[2],cP=e[1],br=function(a){return h6(bq,a)},ak=0;switch(d[0]){case +1:var +ay=d[2],bs=d[1],a3=0;if(typeof +ay==="number")a3=1;else +switch(ay[0]){case +3:var +az=ay[1];if(typeof +az==="number")if(az||q(E[2],aWV))var +F=[1,br(bs),[3,[0,0,E]]];else +ak=1;else +var +F=af(az[2][2],bp)?d:[1,s(bq,cP),[3,[0,[0,cO],E]]];break;case +4:var +F=[1,br(bs),[3,[0,0,E]]];break;default:a3=1}if(a3)ak=1;break;case +25:var +F=d;break;default:ak=1}if(ak)var +F=[1,C(d),0];return o(j,a,b,A,[0,F,[0,c]]);case +9:var +a4=0,cQ=e[1],cR=[0,c];switch(d[0]){case +1:var +bA=d[1],V=d[2],h=0;if(typeof +V==="number")h=2;else +switch(V[0]){case +2:h=3;break;case +4:if(1===V[1]){var +G=[1,h6(k3[1],bA),e7K];h=1}else{a4=1;h=1}break;case +20:var +bB=V[1][3];if(1===bB[0]){var +dc=0,bC=bB[2];if(typeof +bC==="number"||!(2===bC[0]))dc=1;else +h=3}break;default:h=2}var +a5=0;switch(h){case +1:break;case +2:a5=1;break;case +0:a5=1;break;default:var +G=d}if(a5)var +G=[1,bA,0];break;case +25:a4=1;break;default:var +G=[1,C(d),0]}if(a4)var +G=[1,s(5,cQ),e7L];return o(j,a,b,A,[0,G,cR]);case +10:var +a6=0,cS=e[1],cT=[0,c];switch(d[0]){case +1:var +bL=d[1],Y=d[2],i=0;if(typeof +Y==="number")i=2;else +switch(Y[0]){case +0:i=3;break;case +4:if(1===Y[1]){var +H=[1,h6(qM[1],bL),e7O];i=1}else{a6=1;i=1}break;case +20:var +bM=Y[1][3];if(1===bM[0]){var +dd=0,bN=bM[2];if(typeof +bN==="number"||!(0===bN[0]))dd=1;else +i=3}break;default:i=2}var +a7=0;switch(i){case +1:break;case +2:a7=1;break;case +0:a7=1;break;default:var +H=d}if(a7)var +H=[1,bL,0];break;case +25:a6=1;break;default:var +H=[1,C(d),0]}if(a6)var +H=[1,s(2,cS),e7P];return o(j,a,b,A,[0,H,cT]);case +11:var +a8=0,cU=e[1],cV=[0,c];switch(d[0]){case +1:var +bQ=d[1],Z=d[2],r=0;if(typeof +Z==="number")r=2;else +switch(Z[0]){case +3:r=3;break;case +4:if(1===Z[1]){var +I=[1,h6(BE[1],bQ),e7Q];r=1}else{a8=1;r=1}break;case +20:var +bR=Z[1][3];if(1===bR[0]){var +de=0,bS=bR[2];if(typeof +bS==="number"||!(3===bS[0]))de=1;else +r=3}break;default:r=2}var +a9=0;switch(r){case +1:break;case +2:a9=1;break;case +0:a9=1;break;default:var +I=d}if(a9)var +I=[1,bQ,0];break;case +25:a8=1;break;default:var +I=[1,C(d),0]}if(a8)var +I=[1,s(3,cU),e7R];return o(j,a,b,A,[0,I,cV]);case +12:var +a_=0,cW=e[1],cX=[0,c];switch(d[0]){case +1:var +bF=d[1],X=d[2],t=0;if(typeof +X==="number")t=2;else +switch(X[0]){case +1:t=3;break;case +4:if(1===X[1]){var +J=[1,h6(im[1],bF),e7M];t=1}else{a_=1;t=1}break;case +20:var +bG=X[1][3];if(1===bG[0]){var +df=0,bH=bG[2];if(typeof +bH==="number"||!(1===bH[0]))df=1;else +t=3}break;default:t=2}var +a$=0;switch(t){case +1:break;case +2:a$=1;break;case +0:a$=1;break;default:var +J=d}if(a$)var +J=[1,bF,0];break;case +25:a_=1;break;default:var +J=[1,C(d),0]}if(a_)var +J=[1,s(4,cW),e7N];return o(j,a,b,A,[0,J,cX]);case +13:var +S=0,cY=e[1],cZ=[0,c];switch(d[0]){case +1:var +ba=0,aL=d[2];if(typeof +aL==="number")if(3===aL)var +aS=d;else +ba=1;else if(4===aL[0])S=2;else +ba=1;if(ba)S=1;break;case +25:S=2;break;default:S=1}switch(S){case +1:var +aS=[1,C(d),0];break;case +2:var +cq=s(12,cY),aS=m(Od[3],cq);break}return o(j,a,b,A,[0,aS,cZ]);case +14:return ap(ar,a,b,e[1],e[2],1,d,c);case +15:return ap(as,a,b,e[1],e[2],1,d,c);default:var +$=e[1],b_=ai($),K=ah===b_?$[1]:O===b_?aq($):$,b$=K[3],c0=e[2],c1=K[5],c2=K[4],c3=K[2],c4=K[1];return l(k,a,b,[0,b$,[79,c4,s([13,g$(b$)],c3),c2,c1,1,c0,d,c]])}});h(ar,function(a,b,c,d,e,f,g){return js(bz,c,d,a,b,g,f,e,e9b,f)});h(as,function(a,b,c,d,e,f,g){return js(bz,c,d,a,b,g,f,e,e9c,f)});h(bz,function(p,b,c,d,e,f,g,h,i){var +q=h[2],r=h[1];switch(i[0]){case +1:var +a=i[2];if(typeof +a!=="number"&&6===a[0]){var +s=a[1],x=s[1],t=Pt(c,s[2],[0,p]);if(t){var +u=m(fQ[5],t[1]);if(!u)return L(c,[0,d],[19,b,[0,[0,p]],A]);var +y=u[1],z=g?r:q;return l(k,c,d,[0,y,[34,z,f,e]])}if(jF(x[3]))return g?0:o(j,c,d,A,[0,f,[0,e]]);var +v=ao(f,i);return v?o(j,c,d,A,[0,f,[0,e]]):v}break;case +15:var +w=e[1],B=m(gr[2],i[2]);return fo(function(a){return l(k,c,d,[0,a,n(aD[7],w,[2,g,p,w,f,e,[0,r,q]])])},B)}return o(j,c,d,A,[0,f,[0,e]])});h(av,function(a,b,c,d,e,f,g){var +h=d?m(be,d[1]):bd;return o(h,a,b,g,[0,c,e,f])});h(bd,function(a,b,c,d){if(!d[1]){var +f=d[2];switch(f[0]){case +1:var +h=f[2],Q=f[1],Y=0;if(typeof +h==="number")Y=1;else +switch(h[0]){case +7:var +z=d[3];if(1===z[0]){var +B=z[2];if(typeof +B!=="number"&&8===B[0]){var +aj=B[1],ak=z[1],al=uH(h[1]),am=Or(ak,f,aj);return l(k,a,b,[0,p(_,a,Q,0,e9i,[0,al,0]),[33,[2,[3,0,am]],c]])}}break;case +9:var +D=d[3];switch(D[0]){case +1:var +E=D[2],ap=0;if(typeof +E==="number"||!(8===E[0]))ap=1;else{var +F=E[1];if(1===F[0]){var +R=F[2];if(typeof +R!=="number"&&9===R[0])return p(W,a,b,c,Or(D[1],f,F),[2,[4,0,f]])}}break;case +23:var +S=d[3],T=S[1],an=h[4],ao=h[2];if(0!==T[0]){var +U=T[3];if(1===U[0]){var +I=U[2];if(typeof +I!=="number"&&9===I[0])return mu(I[4][2],an[2])?0:l(k,a,b,[0,ao,[17,Q,0,[33,[2,[3,0,S]],c]]])}}break}break;default:Y=1}break;case +9:var +V=d[3];if(23===V[0]){var +J=V[1];if(0!==J[0])return o(j,a,b,A,[0,x(G,a,[0,b],J[1][2],0,0,J[2]),[0,c]])}break}return o(j,a,b,A,[0,f,[0,c]])}var +e=d[2],K=0;switch(e[0]){case +1:var +g=e[2],L=e[1],X=0;if(typeof +g==="number")if(1===g){var +M=d[3];if(23===M[0]){var +i=M[1];if(0!==i[0])return o(j,a,b,A,[0,x(G,a,[0,b],i[1][2],0,0,i[3]),[0,c]])}}else +X=1;else +switch(g[0]){case +4:K=1;break;case +7:var +q=d[3];if(1===q[0]){var +r=q[2];if(typeof +r!=="number"&&8===r[0]){var +aa=r[1],ab=q[1],ac=uH(g[1]),ad=Or(ab,e,aa);return l(k,a,b,[0,p(_,a,L,0,e9d,[0,ac,0]),[33,[3,0,ad],c]])}}break;case +9:var +s=d[3];switch(s[0]){case +1:var +t=s[2];if(typeof +t!=="number"&&8===t[0])return p(W,a,b,c,Or(s[1],e,t[1]),[4,0,e]);break;case +23:var +O=d[3],u=O[1],ae=g[4],af=g[2];if(0!==u[0]){var +P=u[3];if(1===P[0]){var +v=P[2];if(typeof +v!=="number"&&9===v[0]){var +ag=u[2];return mu(v[4][2],ae[2])?o(j,a,b,A,[0,ag,[0,c]]):l(k,a,b,[0,af,[17,L,0,[33,[3,0,O],c]]])}}}break}break;default:X=1}break;case +8:var +w=d[3];if(23===w[0]){var +ah=e[1];if(0!==w[1][0])return l(k,a,b,[0,p(H,a,[0,b],ah,e9f,e9e),[33,[3,0,w],c]])}break;case +9:var +y=d[3];if(23===y[0]){var +ai=e[1];if(0!==y[1][0])return l(k,a,b,[0,p(H,a,[0,b],ai,e9h,e9g),[33,[3,0,y],c]])}break;case +25:K=1;break}if(K){var +m=d[3];if(1===m[0]){var +n=m[2];if(typeof +n!=="number"&&8===n[0]){var +N=n[1],Z=m[1],$=fv(0,C(N));return o(j,a,b,A,[0,x(G,a,[0,b],Z[2],[0,$],0,N),[0,c]])}}}return 0});h(be,function(a,b,c,d,e){var +f=e[2];return x(cy,a,b,c,d,f,[0,e[1],f,e[3]])});h(cy,function(p,g,h,f,e){function +v(a){if(0!==a[0])return 38;var +b=a[1];if(typeof +b==="number")return 0===b?9:10;switch(b[0]){case +0:return[1,b[1]];case +1:return[2,Ea(b[1])];case +2:return[4,b[1]];default:return[3,b[1][2]]}}function +w(a,b,c,d){var +i=Pt(g,b,[0,p]);if(!i){var +q=ao(e,c);return q?o(j,g,h,A,[0,e,[0,f]]):q}var +n=m(fQ[5],i[1]);if(!n)return L(g,[0,h],[19,C(c),[0,[0,p]],A]);var +r=n[1],s=[7,p,v(d)];return l(k,g,h,[0,r,[76,aj(s,f[1]),e,a,d,f]])}return function(a){var +s=a[3],q=a[2],t=a[1],i=0;switch(s[0]){case +1:var +b=s[2],c=0;if(typeof +b==="number")switch(b){case +1:var +d=e9j;break;case +2:var +d=e9k;break;default:c=1}else +switch(b[0]){case +0:var +x=b[1];if(typeof +x==="number")i=1;else{var +y=x[2][1];c=3}break;case +1:var +z=b[1];if(typeof +z==="number")i=1;else{var +B=z[2];c=2}break;case +2:var +C=b[1];if(C){var +D=C[1];c=4}else +i=1;break;case +3:var +E=b[1];if(typeof +E==="number")i=1;else{var +F=E[2];c=5}break;case +10:var +B=b[1];c=2;break;case +12:var +y=b[1][1];c=3;break;case +13:var +D=b[1];c=4;break;case +14:var +F=b[1];c=5;break;default:c=1}switch(c){case +0:break;case +1:i=1;break;case +2:var +d=[0,[0,[0,B]]];break;case +3:var +d=[0,[0,[1,y]]];break;case +4:var +d=[0,[0,[2,D]]];break;default:var +d=[0,[0,[3,F]]]}break;case +16:var +G=m(aG[16],s[2]),d=G?[0,[1,G[1]]]:0;break;default:i=1}if(i)var +d=0;if(!d)return o(j,g,h,A,[0,e,[0,f]]);var +u=d[1];switch(q[0]){case +1:var +r=q[2],I=0,J=q[1];if(typeof +r==="number")I=1;else +switch(r[0]){case +6:return w(t,r[1][2],q,u);case +7:var +H=r[1];if(1===H[0]){var +K=H[4];if(af(p,I6)){var +L=[7,p,v(u)],M=[76,aj(L,f[1]),e,t,u,f];return l(k,g,h,[0,aKc(J,K),M])}}break;case +9:return w(t,r[4][4],q,u);default:I=1}break;case +15:var +N=f[1],O=m(gr[2],q[2]);return fo(function(a){return l(k,g,h,[0,a,n(aD[7],N,[1,t,p,s,e,f])])},O)}return o(j,g,h,A,[0,e,[0,f]])}});h(u,function(e,b,c){function +a(a){return typeof +a==="number"?1:28===a[0]?1-aNT(e):0}if(a(Oi(b)))return c;var +d=Oi(c);return BF(a,function(a,b){if(typeof +b==="number")if(b){if(4<=b&&!a){if(typeof +d!=="number"&&29===d[0])return 1;return a}}else if(!a){var +c=0;if(typeof +d==="number")c=1;else +switch(d[0]){case +15:var +e=d[4];break;case +16:var +e=d[5];break;case +5:case +6:case +7:case +8:case +9:case +11:case +12:case +19:case +26:case +27:case +32:case +33:case +35:case +36:case +37:c=1;break;default:return 1}return c?0:e}return a},c)?b:c});h(ak,function(d,b,c){return m(uJ(function(a){return l(u,d,b,a)}),c)});h(bf,function(e,f,c,d){function +a(a,b){var +c=b[1];return l(P,e,[0,c,[0,f,0]],[0,a,l(ak,e,b[2],d)])}return m(m(lu[13],a),c)});h(bg,function(f,g,c,d,e){function +a(a,b){return l(P,f,[0,g,[0,b,0]],[0,d,l(ak,f,c,a[1])])}return m(m(qL[13],a),e)});h(bA,function(f,g,c,d,e){function +a(d,b){var +h=b[2],i=b[1];function +a(a,b){return l(P,f,[0,i,[0,g,[0,b,0]]],[0,d,l(ak,f,h,l(ak,f,c,a[1]))])}return m(m(qL[13],a),e)}return m(m(lu[13],a),d)});h(aw,function(a,b,c,d){var +e=d[2],f=[0,b,Pz(a)];d[2]=l(qL[4],f,c,e);return 0});h(ax,function(a,b,c){c[1]=l(lu[4],a,[0,b[1],b[2]],c[1]);return 0});h(v,function(h,b,c,d){return m(m(Kb,function(a,b){var +e=iO(h,a),f=e[2],g=e[1];if(1===f[0]){var +i=f[1];if(g!==c)return n(d,[0,g,i],b)}return 0}),b)});h(ay,function(f,g,c,d,e){var +a=d[2],b=d[1],h=c?c[1]:0,i=pC(f);if(1-h)o(aw,f,e,g,a);function +j(a,b){var +c=b[1],d=a[2],h=l(ak,f,b[2],e);return o(aw,f,h,uW(i,[0,c,[0,g,0]]),d)}return o(v,f,a[3],b,j)});h(az,function(g,h,c,d,e,f){var +a=f[2],b=f[1],i=d?d[1]:0,j=pC(g);if(1-i)l(ax,e,[0,h,c],a);function +k(a,b){var +d=b[1],f=a[2],i=l(u,g,c,b[2]);return l(ax,e,[0,uW(j,[0,h,[0,d,0]]),i],f)}return o(v,g,a[4],b,k)});h(bh,function(h,g,c,d,e,f){var +i=e[2],j=e[1],k=d?d[1]:0,n=pC(g);function +a(a,b){var +d=l(ak,g,h,a[1]);return p(ay,g,uW(n,[0,c,[0,b,0]]),[0,k],[0,j,i],d)}return m(m(qL[13],a),f)});h(bi,function(g,h,c,d,e,f){var +i=f[2],j=f[1],k=d?d[1]:0,n=pC(g);function +a(a,b){var +d=b[1],e=l(u,g,b[2],c);return x(az,g,uW(n,[0,d,[0,h,0]]),e,[0,k],a,[0,j,i])}return m(m(lu[13],a),e)});h(aP,function(a,b,c,d,e){var +f=d[2],h=d[1],i=c?c[1]:0,j=yF(a)[1],k=ll(function(a){return n(qL[3],[0,e,[0,[0,a[2],a[3][1]]]],f[2])},j),l=k||n(qL[3],[0,e,0],f[2]),g=1-l;return g?(p(ay,a,b,[0,i],[0,h,f],e),o(bf,a,b,f[1],e)):g});h(aQ,function(a,b,c,d,e,f){var +g=f[2],i=f[1],j=d?d[1]:0,h=1-n(lu[3],e,g[1]);return h?(x(az,a,b,c,[0,j],e,[0,i,g]),p(bg,a,b,c,e,g[2])):h});h(aA,function(a,b,c,d){d[4]=o(g5,0,a,[0,b,c],d[4]);return 0});h(aB,function(a,b,c,d){d[3]=o(g5,0,a,[0,b,c],d[3]);return 0});h(aC,function(g,h,c,d,e,f){var +a=e[2],b=e[1],i=d?d[1]:0,j=pC(g);if(1-i)o(aA,f,h,c,a);function +k(a,b){var +d=b[1],e=a[2],i=l(u,g,b[2],c);return o(aA,f,uW(j,[0,d,[0,h,0]]),i,e)}return o(v,g,a[3],b,k)});h(aE,function(g,h,c,d,e,f){var +a=f[2],b=f[1],i=d?d[1]:0,j=pC(g);if(1-i)o(aB,e,h,c,a);function +k(a,b){var +d=b[1],f=a[2],i=l(u,g,c,b[2]);return o(aB,e,uW(j,[0,h,[0,d,0]]),i,f)}return o(v,g,a[4],b,k)});h(bB,function(h,g,c,d,e,f){var +a=f[2],b=f[1],i=e[2],j=e[1],k=d?d[1]:0,m=pC(g);x(bh,h,g,c,[0,k],[0,j,i],a[2]);x(aC,g,c,h,[0,k],[0,j,i],b);function +n(a,b){var +d=b[1],e=a[1],f=l(u,g,h,b[2]);return x(aC,g,uW(m,[0,c,[0,d,0]]),f,[0,k],[0,j,i],e)}return o(v,g,a[4],b,n)});h(bC,function(g,h,c,d,e,f){var +i=f[2],j=f[1],a=e[2],b=e[1],k=d?d[1]:0,m=pC(g);x(bi,g,h,c,[0,k],a[1],[0,j,i]);x(aE,g,h,c,[0,k],b,[0,j,i]);function +n(a,b){var +d=b[1],e=a[1],f=l(u,g,b[2],c);return x(aE,g,uW(m,[0,d,[0,h,0]]),f,[0,k],e,[0,j,i])}return o(v,g,a[3],b,n)});h(t,function(a){return[1,4,a]});h(I,function(a,b,c,d,e){var +s=e[3],f=e[1],u=d[3],k=d[2],i=d[1],l=u[2],g=s[2],A=0;switch(l[0]){case +0:var +C=l[1],B=0;switch(g[0]){case +0:var +D=g[1];B=1;break;case +1:var +v=C;break;default:var +n=g[1],H=ai(n),N=ah===H?n[1]:O===H?aq(n):n,D=N;B=1}if(B){var +F=D,E=C;A=1}break;case +1:var +h=l[1];switch(g[0]){case +0:var +y=g[1];break;case +1:var +j=g[1],I=aeh([0,i,h],[0,f,j]),J=aeh([0,f,j],[0,i,h]);if(I)p(bA,a,b,c,h[1],j[2]);if(J){var +P=h[2],Q=j[1];p(bA,a,b,m(t,c),Q,P)}if(I){x(bB,c,a,b,e9p,[0,i,h],[0,f,j]);x(bC,a,b,c,0,[0,i,h],[0,f,j])}if(J){x(bB,m(t,c),a,b,0,[0,f,j],[0,i,h]);x(bC,a,b,m(t,c),e9q,[0,f,j],[0,i,h])}k[1]=[0,f];return 0;default:var +o=g[1],K=ai(o),R=ah===K?o[1]:O===K?aq(o):o,y=R}p(aP,a,b,e9n,[0,i,h],[0,c,y]);x(aQ,a,b,m(t,c),e9o,y,[0,i,h]);k[1]=[0,f];return 0;default:var +q=l[1],L=ai(q),z=ah===L?q[1]:O===L?aq(q):q;switch(g[0]){case +0:var +S=g[1];s[2]=u[2];k[1]=[0,f];return x(w,a,b,c,0,z,S);case +1:var +v=z;break;default:var +r=g[1],M=ai(r),T=ah===M?r[1]:O===M?aq(r):r,F=T,E=z;A=1}}if(A){k[1]=[0,f];return x(w,a,b,c,0,E,F)}var +G=g[1];p(aP,a,b,e9l,[0,f,G],[0,m(t,c),v]);x(aQ,a,b,c,e9m,v,[0,f,G]);s[2]=u[2];k[1]=[0,f];return 0});h(bj,function(a,b,c,d,e){var +f=Pv(a,d),h=f[3],r=f[1],g=Pv(a,e),i=g[3],l=h[2],n=i[2],s=g[1];if(2===l[0]){var +j=l[1],o=ai(j),u=ah===o?j[1]:O===o?aq(j):j;if(2===n[0]){var +k=n[1],q=ai(k),v=ah===q?k[1]:O===q?aq(k):k;return x(w,a,b,c,0,u,v)}}return r===s?0:h[1]B[1]){var +f2=p(P6,g,P,0,e6G,[0,yR(P,O),0]);o(fw,g,h,i,[0,f2,yR(V,B)])}var +aE=[0,[0,P,[1,1,f1]],[0,V,B]];continue}}return L(g,[0,h],[hb,[1,3,i],P,V])}default:cB=1}if(cB)a=16;break;case +4:a=1;break;case +5:a=4;break;case +6:a=7;break;case +7:a=6;break;case +15:a=5;break;case +21:break;case +16:case +17:case +18:a=3;break;default:a=16}break;case +20:var +jg=e[1];switch(d[0]){case +1:var +cd=d[2],ff=d[1],cC=0;if(typeof +cd==="number")cC=1;else +switch(cd[0]){case +11:break;case +15:a=10;break;case +16:var +jh=cd[2];x(wC,g,h,i,0,m(fL,ff),jh);return L(g,[0,h],[q7,ff,j]);case +17:a=1;break;case +19:a=8;break;case +20:if(mu(jg[1],d[2][1][1]))return 0;a=13;break;default:cC=1}if(cC)a=13;break;case +4:a=1;break;case +5:a=4;break;case +6:a=7;break;case +7:a=6;break;case +15:a=5;break;case +21:break;case +16:case +17:case +18:a=3;break;default:a=13}break;case +21:var +fg=e[1];switch(d[0]){case +1:var +ce=d[2],cD=0;if(typeof +ce==="number")cD=1;else +switch(ce[0]){case +11:break;case +15:a=10;break;case +16:var +ji=ce[2];return x(wC,g,h,i,0,F7(j,fg),ji);case +17:a=1;break;case +19:a=8;break;case +21:if(mu(fg[1],d[2][1][1]))return 0;a=2;break;default:cD=1}if(cD)a=2;break;case +3:a=9;break;case +4:a=1;break;case +5:a=4;break;case +6:a=7;break;case +7:a=6;break;case +8:a=12;break;case +9:a=11;break;case +15:a=5;break;case +21:break;case +16:case +17:case +18:a=3;break;default:a=2}break;case +12:f=3;break;default:f=4}var +cE=0;switch(f){case +0:break;case +4:a=4;break;case +3:switch(d[0]){case +1:var +cF=0,d4=d[2];if(typeof +d4==="number")cF=1;else +switch(d4[0]){case +0:return 0;case +11:break;default:cF=1}if(cF)a=15;break;case +5:a=4;break;case +6:a=7;break;case +15:a=5;break;case +21:break;case +16:case +17:case +18:a=3;break;default:a=15}break;case +5:switch(d[0]){case +3:a=9;break;case +4:a=1;break;case +5:a=4;break;case +6:a=7;break;case +7:a=6;break;case +8:a=12;break;case +9:a=11;break;case +15:a=5;break;case +17:var +hx=d[2];return o(fw,g,h,i,[0,m(gU[3],j),hx]);case +21:break;case +1:cE=1;break;case +16:case +18:a=3;break;default:a=2}break;case +2:switch(d[0]){case +1:var +bR=d[1],cG=0,eI=d[2];if(typeof +eI==="number")cG=1;else +switch(eI[0]){case +5:var +eJ=[1,[15,aed,j,bR],i],fF=0;if(1===c[0]){var +a3=c[2],aD=0;if(typeof +a3==="number")aD=1;else +switch(a3[0]){case +6:var +eL=a3[1][4];if(eL){var +eM=eL[1];aD=2}break;case +9:var +eN=a3[4][6];if(eN){var +eM=eN[1];aD=2}break;default:aD=1}switch(aD){case +0:break;case +1:break;default:var +eK=i_(g,eM);fF=1}}if(!fF){L(g,[0,h],[18,aed,aj([41,aed],bR),j,eJ,0]);var +eK=m(fL,bR)}return o(fw,g,h,eJ,[0,eK,d]);case +11:break;case +17:a=1;break;case +19:a=8;break;case +15:case +16:a=10;break;default:cG=1}if(cG)a=2;break;case +3:a=9;break;case +4:a=1;break;case +5:a=4;break;case +6:a=7;break;case +7:a=6;break;case +8:a=12;break;case +9:a=11;break;case +15:a=5;break;case +21:break;case +16:case +17:case +18:a=3;break;default:a=2}break;case +1:switch(d[0]){case +1:var +bW=d[2],cH=0;if(typeof +bW==="number")cH=1;else +switch(bW[0]){case +9:if(bW[4][9])return l(gh,g,h,[0,d,[21,i,c]]);a=2;break;case +11:break;case +17:a=1;break;case +19:a=8;break;case +15:case +16:a=10;break;default:cH=1}if(cH)a=2;break;case +3:a=9;break;case +4:a=1;break;case +5:a=4;break;case +6:a=7;break;case +7:a=6;break;case +8:a=12;break;case +9:a=11;break;case +15:a=5;break;case +21:break;case +16:case +17:case +18:a=3;break;default:a=2}break;default:cE=1}if(cE){var +cI=0;if(typeof +e==="number")cI=1;else{var +d3=e[1];if(d3&&!d3[1])cI=1;else +a=8}if(cI){var +bI=d[2],cJ=0;if(typeof +bI==="number")cJ=1;else +switch(bI[0]){case +11:break;case +17:a=1;break;case +19:var +d2=bI[1];if(0===d2[0])a=8;else{if(d2[1])return 0;a=8}break;case +15:case +16:a=10;break;default:cJ=1}if(cJ)a=2}}break;case +3:var +fh=c[3],fi=c[1],jj=c[4];switch(d[0]){case +3:var +fj=d[3],fk=d[1],jl=d[4],jm=[0,h],a9=FZ(function(a){return iq(g,jm,0,0,a)},jj,jl);if(typeof +a9==="number"){var +jn=p(u0,g,0,fk,0,fj);return o(fw,g,h,i,[0,p(u0,g,0,fi,0,fh),jn])}if(0===a9[0]){var +jo=a9[1],jp=p(u0,g,0,fk,0,fj);return o(fw,g,h,i,[0,[3,c[1],c[2],c[3],jo],jp])}var +jq=[3,d[1],d[2],d[3],a9[1]];return o(fw,g,h,i,[0,p(u0,g,0,fi,0,fh),jq]);case +4:a=1;break;case +5:a=4;break;case +6:a=7;break;case +15:a=5;break;case +1:case +21:break;case +16:case +17:case +18:a=3;break;default:a=14}break;case +5:var +fl=c[1],jr=c[4],js=c[3],jt=c[2];return x(aPM,g,h,fl,x(aPL,g,h,C(d),fl,jt,jr),js,[1,[0,i,d]]);case +6:var +fm=c[4],fn=c[3],ju=c[2],jv=c[1];switch(d[0]){case +5:a=4;break;case +6:var +fp=d[4],fq=d[3],jw=d[2],jx=d[1],fr=GJ(g,[0,fn,fm]);if(!fr)return fr;if(GJ(g,[0,fq,fp])){l(gh,g,h,[0,fq,[44,i,[0,fp,jw,jx],[0,fn,fm,ju,jv],1]]);GK(g)}return GK(g);default:a=19}break;case +14:switch(d[0]){case +3:return o(fw,g,h,i,[0,c,d[3]]);case +5:a=4;break;case +6:a=7;break;case +15:a=5;break;case +1:case +21:break;case +16:case +17:case +18:a=3;break;default:a=15}break;case +17:var +fs=c[1];if(17===d[0])return o(fw,g,h,i,[0,tr(fs,c[2]),d]);var +jy=c[2],cf=aj(14,fs),jz=tr(cf,jy),jA=m(i7[4],cf),jB=m(fY[4],cf);o(fw,g,h,i,[0,jA,d]);o(fw,g,h,i,[0,jB,d]);return o(fw,g,h,i,[0,jz,d]);case +18:var +jD=c[1],jE=c[2];switch(d[0]){case +17:case +18:return o(fw,g,h,i,[0,jE,d]);default:var +jG=c[2];o(fw,g,h,i,[0,n(fY[5],c[3],jD),d]);return o(fw,g,h,i,[0,jG,d])}case +20:return o(fw,g,h,i,[0,p(u0,g,[0,h],c[1],[0,c[3]],c[2]),d]);case +21:var +a_=c[2],cg=a_[4],ft=a_[1],ch=c[1],jH=a_[5],jI=a_[3];switch(d[0]){case +5:a=4;break;case +6:a=7;break;case +21:var +aC=d[2],fu=aC[1],ci=d[1],jJ=aC[4];if(mu(ft,fu))return ap(aPN,g,h,i,ch,ci,cg,jJ);var +fy=aC[4],jK=aC[3];if(aJ_(g[4][27],[0,ft,[0,jH]],[0,fu,[0,aC[5]]])){var +jL=fA(fy);if(fA(cg)===jL){var +fz=f9(jI,m(h7[4],ch)),fB=f9(jK,m(h7[4],ci)),jM=C(fB);x(wC,g,h,[1,[13,C(fz),jM],i],0,fz,fB);return ap(aPN,g,h,i,ch,ci,cg,fy)}}a=17;break;default:a=17}break;case +24:var +jN=c[1];switch(d[0]){case +3:a=9;break;case +4:a=1;break;case +5:a=4;break;case +6:a=7;break;case +7:a=6;break;case +8:a=12;break;case +9:a=11;break;case +15:a=5;break;case +25:return o(fw,g,h,i,[0,[8,jN],d]);case +1:case +21:break;case +16:case +17:case +18:a=3;break;default:a=2}break;default:a=4}var +r=0;switch(a){case +4:if(5===d[0]){var +d1=d[1],ht=d[4],hu=d[3],hv=d[2];return x(aPM,g,h,d1,x(aPL,g,h,C(c),d1,hv,ht),hu,[0,i,c])}r=15;break;case +19:r=15;break;case +7:r=16;break;case +17:r=17;break;case +0:r=6;break;case +5:r=10;break;case +3:r=2;break;case +15:r=7;break;case +1:r=3;break;case +14:r=11;break;case +6:break;case +18:r=18;break;case +8:r=4;break;case +16:r=12;break;case +10:r=8;break;case +13:r=1;break;case +9:r=5;break;case +11:r=13;break;case +12:r=14;break;default:r=9}var +t=0;switch(r){case +15:if(6===c[0]){var +dX=c[4],dY=c[3],dZ=c[1],hr=c[5],hs=c[2],d0=GJ(g,[0,dY,dX]);return d0?(o(fw,g,h,i,[0,p(u0,g,[0,h],dZ,[0,hr],ap(aem,g,[0,h],hs,C(d),dZ,dY,dX)),d]),GK(g)):d0}t=15;break;case +16:t=15;break;case +17:t=16;break;case +6:t=6;break;case +10:t=10;break;case +2:t=2;break;case +7:t=7;break;case +3:t=3;break;case +11:t=11;break;case +0:break;case +18:t=17;break;case +4:t=4;break;case +12:t=12;break;case +8:t=8;break;case +1:t=1;break;case +5:t=5;break;case +13:t=13;break;case +14:t=14;break;default:t=9}var +w=0;switch(t){case +15:if(6===d[0]){var +dT=d[4],dU=d[3],dV=d[1],hp=d[5],hq=d[2],dW=GJ(g,[0,dU,dT]);return dW?(l(gh,g,h,[0,ap(aem,g,[0,h],hq,C(c),dV,dU,dT),[18,dV,hp,i,c]]),GK(g)):dW}w=15;break;case +16:w=15;break;case +6:w=6;break;case +10:w=10;break;case +2:w=2;break;case +7:w=7;break;case +3:w=3;break;case +11:w=11;break;case +0:break;case +17:w=16;break;case +4:w=4;break;case +12:w=12;break;case +8:w=8;break;case +1:w=1;break;case +5:w=5;break;case +13:w=13;break;case +14:w=14;break;default:w=9}var +b=0;switch(w){case +15:if(21===c[0]){var +dM=c[2],dN=dM[2],aS=c[1];if(dN){var +hn=dN[1],ho=h5(aS)[1];if(ao(aS[2][1],ho))return o(fw,g,h,i,[0,hn,d])}var +dO=dM[3],ba=0;if(dO){var +dP=dO[1];if(16===dP[0])switch(d[0]){case +1:ba=1;break;case +4:b=3;break;case +7:break;case +15:b=10;break;case +16:if(Ci(g,0,j9,dP,d)){var +dS=j$(g);return dS?kS(e64):dS}b=2;break;case +21:b=6;break;case +17:case +18:b=2;break;default:b=1}else +ba=1}else +ba=1;if(ba)switch(d[0]){case +1:var +bH=d[2],dQ=d[1],cK=0;if(typeof +bH==="number")cK=1;else +switch(bH[0]){case +11:b=6;break;case +17:b=3;break;case +19:var +aV=bH[1];if(0===aV[0])return l(gh,g,h,[0,c,[iK,[1,3,i],dQ,aS,0,aV]]);var +dR=1-l(ael,g,c,aV[2]);return dR?l(gh,g,h,[0,c,[iK,[1,3,i],dQ,aS,0,aV]]):dR;case +15:case +16:b=8;break;default:cK=1}if(cK)b=1;break;case +4:b=3;break;case +7:break;case +15:b=10;break;case +21:b=6;break;case +16:case +17:case +18:b=2;break;default:b=1}}else +b=6;break;case +6:b=6;break;case +10:b=10;break;case +2:b=2;break;case +7:b=7;break;case +3:b=3;break;case +11:b=11;break;case +0:break;case +16:b=15;break;case +4:b=4;break;case +12:b=12;break;case +8:b=8;break;case +1:b=1;break;case +5:b=5;break;case +13:b=13;break;case +14:b=14;break;default:b=9}var +z=0;switch(b){case +6:switch(d[0]){case +1:var +bG=d[2];if(typeof +bG!=="number"&&11===bG[0])return o(fw,g,h,i,[0,c,[1,d[1],[1,[0,0,[0,bG[1][2]]]]]]);break;case +21:var +dL=d[2][2];if(dL){var +hl=dL[1],hm=h5(d[1])[1];if(ao(C(c)[2][1],hm))return o(fw,g,h,i,[0,c,hl])}break}switch(c[0]){case +16:var +aw=c[1],I=c[2];if(ll(adI,m(aG[5],I)))return aOe(gh,g,h,aw,I,[0,i,d]);switch(d[0]){case +15:var +hg=d[2];if(j$(g)&&16===c[0])kS(e62);var +hh=m(gr[2],hg);return fo(function(a){return l(gh,g,h,[0,c,[0,i,a]])},hh);case +16:if(Ci(g,0,j9,c,d)){var +dC=j$(g);return dC?kS(e63):dC}break;case +17:var +bF=d[1],hi=d[2],dD=m(fY[3],bF),dE=m(i7[3],bF),dF=function(a){return j9(a,dD)},dG=function(a){return j9(a,dE)},hj=function(a){var +b=dF(a);return b?b:dG(a)},aQ=tr(bF,hi),dH=l(aG[14],j9,dD,I),aR=l(aG[14],j9,dE,I);if(typeof +dH==="number")switch(dH){case +0:if(typeof +aR==="number")switch(aR){case +0:return o(fw,g,h,i,[0,m(GO(aw,g,hj),I),aQ]);case +1:return o(fw,g,h,i,[0,m(GO(aw,g,dF),I),aQ])}break;case +1:if(typeof +aR==="number")switch(aR){case +0:return o(fw,g,h,i,[0,m(GO(aw,g,dG),I),aQ]);case +1:return o(fw,g,h,i,[0,c,aQ])}break}return ad$(g,h,I,[0,i,d]);case +18:var +dI=d[2],dJ=n(fY[5],d[3],d[1]),hk=function(a){return j9(a,dJ)},dK=l(aG[14],j9,dJ,I);if(typeof +dK==="number")switch(dK){case +0:return o(fw,g,h,i,[0,m(GO(aw,g,hk),I),dI]);case +1:return o(fw,g,h,i,[0,c,dI])}return ad$(g,h,I,[0,i,d])}var +hf=c[2];if(j$(g))switch(d[0]){case +15:kS(e60);break;case +16:kS(e61);break}return ad$(g,h,hf,[0,i,d]);case +19:return l(gh,g,h,[0,c[2],[53,c[1],[0,i,d]]]);default:z=13}break;case +10:z=13;break;case +2:z=7;break;case +7:z=3;break;case +3:z=8;break;case +11:z=9;break;case +0:break;case +15:z=14;break;case +4:z=1;break;case +12:z=10;break;case +8:z=6;break;case +1:z=4;break;case +5:z=2;break;case +13:z=11;break;case +14:z=12;break;default:z=5}var +u=0;switch(z){case +13:if(15===d[0]){var +hd=d[2];if(j$(g)&&16===c[0])kS(e6Z);var +he=m(gr[2],hd);return fo(function(a){return l(gh,g,h,[0,c,[0,i,a]])},he)}if(15===c[0]){var +g6=c[2],g7=function(a,b){return Ce(g,a,b)};if(qy(m(gr[2],g6),d,g7))return 0;switch(d[0]){case +1:var +bE=d[2],fG=0;if(typeof +bE==="number"||!(6===bE[0]))fG=1;else{var +aP=bE[1],dB=aP[2],g8=aP[4],g9=aP[3],g$=aP[1],ha=d[1],hc=gz(g,dB);if(1=b[0]){var +e=b[1][1],g=e[1],h=e[2];if(n(a[1][1+d],a,g)){var +i=o(a[1][1+c],a,g,h,0);return n(a[1][1+f],a,i)}}return m(m(D,a),b)}function +J(a,b){var +e=b[2][1][1];if(!n(a[1][1+d],a,e))return m(m(E,a),b);var +i=n(a[1][1+t],a,b);a[1+g]=[0,i,a[1+g]];var +j=aQf(a[1+h],i),k=o(a[1][1+c],a,e,j,0);return n(a[1][1+f],a,k)}function +K(a,b){var +e=b[1],g=e[1],h=e[2];if(!n(a[1][1+d],a,g))return m(m(C,a),b);var +i=o(a[1][1+c],a,g,h,0);return n(a[1][1+f],a,i)}function +L(a,b){var +e=b[1],g=e[1],h=e[2];if(!n(a[1][1+d],a,g))return m(m(j,a),b);var +i=o(a[1][1+c],a,g,h,1);return n(a[1][1+f],a,i)}function +M(a,b){var +e=b[1],g=e[1],h=e[2];if(!n(a[1][1+d],a,g))return m(m(j,a),b);var +i=o(a[1][1+c],a,g,h,0);return n(a[1][1+f],a,i)}function +N(a,b,c,d,e){throw B([0,aQi,b,d,[0,e,c]],1)}fC(e,[0,d,function(a,b){var +d=lr(b),g=a[1+p],h=d[3][1],i=d[2][1],c=g[2][1],j=i$)switch($){case +0:var +bV=e[1];return m(gC(1),bV);case +1:return m(h7[2],e[1]);case +2:return m(gU[2],e[1]);case +3:return m(fY[2],e[1]);case +4:return m(i7[2],e[1]);case +5:return m(Od[2],e[1]);case +6:return m(qM[2],e[1]);case +7:return m(BE[2],e[1]);case +8:return m(im[2],e[1]);case +9:return m(k3[2],e[1]);case +10:var +bW=e[1];return m(gC(1),bW);case +11:return io(0,0,p(a4,0,b,c,d,e[1]));case +12:var +bX=e[1],ad=p(a4,0,b,c,d,e[2]);return[17,fJ([64,g$(ad)],bX),ad];case +13:var +ae=e[1],bY=e[4],bZ=e[3],b0=e[2],b1=fJ(47,ae),b2=p(a4,[0,D],b,c,d,b0),b3=p(a4,[0,D],b,c,d,bZ),b4=K(bY,o(a4,[0,D],b,c,d)),b5=[0,ka(d[1],ae)];return[16,b1,o(aG[3],b5,b2,b3,b4)];case +14:var +b6=e[4],b7=e[3],b8=e[2],b9=fJ(49,e[1]),b_=p(a4,0,b,c,d,b8),b$=p(a4,0,b,c,d,b7),ca=K(b6,o(a4,0,b,c,d));return[15,b9,l(gr[1],b_,b$,ca)];case +15:var +af=e[1],cb=e[2],cc=fJ(28,af),cd=jk(function(a){if(0!==a[0])return[1,p(a4,0,b,c,d,a[3])];var +e=a[2],f=a[5],g=a[4],h=a[3],i=s([9,e],a[1]);return[0,[0,i,e,p(a4,0,b,c,d,h),g,f],0]},cb),ce=function(a,b,c,d,e,f){return[2,d,[0,b,c,e],f]},cf=jG(d,af);return aOI(d[1],0,cf,ce,cc,cd);case +16:var +cg=e[2],ch=fJ(25,e[1]);return[1,ch,[7,[0,0,p(a4,0,b,c,d,cg),0]]];case +17:var +ci=e[2],cj=fJ(27,e[1]);return[1,cj,[7,[2,p(a4,0,b,c,d,ci),0]]];case +18:var +ag=e[2];return[1,fJ([1,[0,ag]],e[1]),[10,[0,ag]]];case +19:var +ak=e[3],ck=e[2];return[1,fJ([2,ak],e[1]),[12,[0,ck,ak]]];case +20:var +al=e[3],cl=e[2];return[1,fJ([3,al],e[1]),[14,[0,cl,al]]];case +21:var +am=e[2];return[1,fJ([4,am],e[1]),[13,am]];case +22:var +cm=e[4],cn=e[3],co=e[1],cp=s([31,f2(fbM,e[2])],co),cq=p(a4,0,b,c,d,cn),cr=o(a4,0,b,c,d);S(cm,function(a){return fx(cr,a)});return l(gw[1],d[1],cp,cq);case +23:var +an=e[2],ar=e[1],as=n(jK,an,c),bT=0;if(as){var +au=as[1],cs=au[2];if(ao(au[1],ar)){var +av=cs;bT=1}}if(!bT)var +av=n(r4,an,b);return jD(function(a){return hX(ar,a)},av);case +24:var +ct=e[3],cu=e[2];return[1,fJ(2,e[1]),[0,[0,0,[0,cu,ct]]]];case +25:var +cv=e[2];return[1,fJ(4,e[1]),[1,[0,0,[0,cv]]]];case +26:var +cw=e[1];return[1,fJ([0,Pi(d[1])],cw),fbN];case +27:var +cx=e[2];return[1,fJ(5,e[1]),[2,[0,cx]]];case +28:var +f=p(a4,0,b,c,d,e[1]),ac=0;switch(f[0]){case +1:var +E=f[2],eA=0;if(typeof +E==="number"||!(6===E[0]))eA=1;else{var +g=E[1],aw=f[1];ac=1}break;case +2:var +F=f[2],j=F[3];if(typeof +j!=="number"&&4===j[0]){var +cA=f[3],cB=j[3],cC=j[2],cD=j[1],cE=F[1],cF=f[1];return[2,cF,[0,cE,aj(17,F[2]),[4,cD,cC,cB]],cA]}break;case +7:var +G=f[2];if(1===G[0]){var +H=G[2],eB=0;if(typeof +H==="number"||!(6===H[0]))eB=1;else{var +g=H[1],aw=G[1];ac=1}}break}if(!ac)return f;var +cy=aj(17,aw),cz=typeof +g[1][3]==="number"?0:g[1][3],ax=g[1];return[1,cy,[6,[0,[0,ax[1],ax[2],cz],g[2],g[3],g[4],g[5]]]];case +29:var +cG=e[2],cH=fJ(23,e[1]);return[1,cH,[7,[0,0,p(a4,0,b,c,d,cG),0]]];case +30:return m(Oe,C(p(a4,0,b,c,d,e[2])));case +31:return m(Oe,C(p(a4,0,b,c,d,e[2])));case +32:var +ay=e[1],cI=e[3],cJ=e[2],az=s(fbO,ay),cK=p(a4,0,b,c,d,cJ);return[2,cK,[0,[0,[29,az]],az,[0,[0,cI]]],jG(d,ay)];case +33:var +aA=e[1],cL=e[3],cM=e[2],aB=s(fbP,aA),cN=p(a4,0,b,c,d,cM),cO=p(a4,0,b,c,d,cL);return[2,cN,[0,[0,[29,aB]],aB,[1,cO]],jG(d,aA)];case +34:var +I=e[3],aC=e[1],cP=e[2],cQ=s(fbQ,aC),aD=p(a4,0,b,c,d,cP),aE=p(a4,0,b,c,d,I),cR=C(aD),cS=[0,[21,cR,C(aE)]],bU=0,cT=jG(d,aC);if(0===I[0]){var +aF=I[1];if(18===aF[0]){var +aH=[0,[0,aF[2]]];bU=1}}if(!bU)var +aH=[1,aE];return[2,aD,[0,cS,cQ,[2,aH]],cT];case +35:var +cU=e[3],cV=e[2],cW=s(fbR,e[1]),cX=s(9,cU),cY=p(a4,0,b,c,d,cV);return[2,cY,[0,A,cW,[3,cX]],g_(0)];case +36:var +aI=e[1],cZ=e[2],aJ=s(fbS,aI),c0=p(a4,0,b,c,d,cZ);return[2,c0,[0,[0,[29,aJ]],aJ,0],jG(d,aI)];case +37:var +aK=e[1],c1=e[3],c2=e[2],aL=s(fbT,aK),c3=p(a4,0,b,c,d,c2),c4=p(a4,0,b,c,d,c1);return[2,c3,[0,[0,[29,aL]],aL,[6,1,c4]],jG(d,aK)];case +38:var +aM=e[1],c5=e[2],aN=s(73,aM),c6=p(a4,0,b,c,d,c5);return[2,c6,[0,[0,[29,aN]],aN,1],jG(d,aM)];case +39:var +aO=e[1],aP=p(a4,0,b,c,d,e[2]),aQ=s([83,g$(aP)],aO);return[2,aP,[0,[0,[29,aQ]],aQ,2],jG(d,aO)];default:var +aR=e[1],aS=p(a4,0,b,c,d,e[2]),aT=s([84,g$(aS)],aR);return[2,aS,[0,[0,[29,aT]],aT,3],jG(d,aR)]}switch($){case +41:var +c7=e[2],c8=s(50,e[1]);return[19,c8,p(a4,0,b,c,d,c7)];case +42:var +c9=e[3],c_=e[1],aU=p(a4,fbU,b,c,d,e[2]),c$=fJ([98,fv(0,C(aU))],c_);switch(c9){case +0:var +J=0;break;case +1:var +J=1;break;default:var +J=2}return Ot(c$,J,aU);case +43:var +aV=e[1],da=e[2],aW=s(fbV,aV),db=p(a4,0,b,c,d,da);return[2,db,[0,[0,[29,aW]],aW,4],jG(d,aV)];case +44:var +dc=e[1],aX=p(a4,0,b,c,d,e[2]);return[7,fJ([62,g$(aX)],dc),aX];case +45:var +aZ=e[1],dd=e[3],de=e[2],a0=s(fbW,aZ),df=p(a4,0,b,c,d,de),dg=p(a4,0,b,c,d,dd);return[2,df,[0,[0,[29,a0]],a0,[6,0,dg]],jG(d,aZ)];case +46:var +a1=e[2],a2=fJ([86,[0,a1]],e[1]),dh=ty(d[1],[2,a1],a2);return p(gw[11],d[1],dh,a2,0,0);case +47:var +L=e[3],a3=e[2],a5=e[1],di=e[7],dj=e[6],dk=e[5],dl=e[4],dm=s(15,a5),dn=jG(d,a5),a6=function(a,e){var +f=p(a4,0,e,c,d,dl);function +h(a,b){var +j=a[3],k=a[2],l=a[1],m=b[1],f=p(Ql,1,e,c,d,b),g=f[2],h=g[3],n=f[1],i=jC(g[1]),q=o(fN,0,i,h,l);return[0,q,o(fN,0,i,[0,m,h],k),[0,n,j]]}var +i=[0,at,at,0],j=L?[0,L[2],L[3]]:0,b=fs(j,i,h),k=b[2],m=b[1],n=U(b[3]),q=l(xV,0,m,e),g=p(a4,0,e,k,d,dk),r=p(a4,0,q,c,d,dj),s=p(a4,0,e,c,d,di),t=C(g);return[2,f,[0,[0,[22,C(f),t]],dm,[8,a,n,g,r,s]],dn]};return a3?a6([0,[0,a3[1][2]]],b):a6(0,b);case +48:var +a7=e[1],dp=e[3],dq=e[2],a8=s(31,a7),dr=p(a4,0,b,c,d,dq),ds=fx(o(a4,0,b,c,d),dp);return[2,dr,[0,[0,[29,a8]],a8,[7,0,ds]],jG(d,a7)];case +49:var +a9=e[1],dt=e[3],du=e[2],a_=s(66,a9),dv=p(a4,0,b,c,d,du),dw=p(a4,0,b,c,d,dt);return[2,dv,[0,[0,[29,a_]],a_,[9,[0,dw]]],jG(d,a9)];case +50:var +a$=e[1],dx=e[3],dy=e[2],ba=s(67,a$),dz=p(a4,0,b,c,d,dy),dA=p(a4,0,b,c,d,dx);return[2,dz,[0,[0,[29,ba]],ba,[9,[1,dA]]],jG(d,a$)];case +51:var +bb=e[1],dB=e[3],dC=e[2],bc=s(68,bb),dD=p(a4,0,b,c,d,dC),dE=p(a4,0,b,c,d,dB);return[2,dD,[0,[0,[29,bc]],bc,[9,[2,dE]]],jG(d,bb)];case +52:var +bd=e[1],dF=e[2],be=s(69,bd),dG=p(a4,0,b,c,d,dF);return[2,dG,[0,[0,[29,be]],be,fbX],jG(d,bd)];case +53:var +bf=e[1],dH=e[3],dI=e[2],bg=s(70,bf),dJ=p(a4,0,b,c,d,dI),dK=p(a4,0,b,c,d,dH);return[2,dJ,[0,[0,[29,bg]],bg,[9,[3,dK]]],jG(d,bf)];case +54:var +dL=e[1],bh=aHf(e[2]),dM=NC(bh);return[1,fJ([60,m(k(fbY),dM)],dL),[15,bh]];case +55:var +dN=e[1],bi=p(a4,0,b,c,d,e[2]);return[1,s([72,g$(bi)],dN),[8,bi]];case +56:return[11,fJ(29,e[1])];case +57:return[12,fJ(29,e[1])];case +58:return[13,fJ(29,e[1])];case +59:return[24,s(29,e[1]),0];case +60:return[24,s(29,e[1]),1];case +61:return[24,s(29,e[1]),2];case +62:return[24,s(29,e[1]),fbZ];case +63:return[24,s(29,e[1]),fb0];case +64:var +dO=e[4],dP=e[3],dQ=e[2],bj=s(fb1,e[1]),dR=p(a4,0,b,c,d,dQ),bk=function(c,b){return qI(function(a){return[97,a,c,b]},bj)},dS=o(a4,0,b,c,d),dT=bk(6,2),dU=aY(dP,m(h7[4],dT),dS),dV=o(a4,0,b,c,d),bl=bk(fb2,3),dW=ty(d[1],fb3,bl);return[1,bj,[18,dR,dU,aY(dO,p(gw[3],d[1],0,bl,0,dW),dV),0]];case +65:var +bm=e[1],dX=e[3],dY=e[2],bn=s(86,bm),dZ=p(a4,0,b,c,d,dY),d0=p(a4,0,b,c,d,dX);return[2,dZ,[0,[0,[29,bn]],bn,[11,d0]],jG(d,bm)];case +66:var +d1=e[1];return m(gC(2),d1);case +67:return[24,s(29,e[1]),3];case +68:return[24,s(29,e[1]),4];case +69:var +d2=e[2],d3=s(29,e[1]);return[24,d3,[1,p(a4,0,b,c,d,d2)]];case +70:var +bo=e[1],d4=e[2],bp=s(fb4,bo),d5=p(a4,0,b,c,d,d4);return[2,d5,[0,[0,[29,bp]],bp,5],jG(d,bo)];case +71:var +bq=e[1],d6=e[2],br=s(fb5,bq),d7=p(a4,0,b,c,d,d6);return[2,d7,[0,[0,[29,br]],br,6],jG(d,bq)];case +72:var +bs=e[1],d8=e[2],bt=s(fb6,bs),d9=p(a4,0,b,c,d,d8);return[2,d9,[0,[0,[29,bt]],bt,7],jG(d,bs)];case +73:return[24,s(29,e[1]),5];case +74:return[24,s(29,e[1]),6];case +75:return[24,s(29,e[1]),7];case +76:var +d_=e[2],bu=fJ(29,e[1]);return ap(u4,0,b,c,d,bu,d_,p(y0,b,c,d,bu,at));case +77:var +d$=e[2];return x(ae4,b,c,d,fJ(90,e[1]),d$,0);case +78:var +bv=e[6],t=e[1],ea=e[7],eb=e[5],ec=e[4],ed=e[3],h=p(a4,0,b,c,d,e[2]),bw=p(Ql,0,b,c,d,ec),ee=bw[1],bx=p(a4,0,bw[3],c,d,ed),by=C(bx),ef=Pu(d[1],1,t),bQ=0,eg=[1,by,[17,t,g9(ee),[1,by,[16,7,bx]],ef]];if(bv){var +aa=0;switch(bv-1|0){case +0:var +bz=1;aa=1;break;case +1:break;default:var +bz=2;aa=1}if(aa){var +bA=bz;bQ=1}}if(!bQ)var +bA=0;var +ei=jG(d,t),eh=[0,eb,bA],ej=s(18,t);if(ea)var +q=0,i=h;else{var +ab=0;switch(h[0]){case +0:var +bF=iO(d[1],h[1][2])[2],bR=0;if(2===bF[0]){var +v=bF[1],bG=ai(v),bH=ah===bG?v[1]:O===bG?aq(v):v;if(3===bH[0]){var +bI=bH[3];if(19===bI[0]){var +q=[0,h],i=bI[2];bR=1}}}if(!bR)var +q=1,i=h;break;case +3:var +bJ=h[3];if(19===bJ[0])var +q=[0,h],i=bJ[2];else +ab=1;break;default:ab=1}if(ab)var +q=1,i=h}switch(i[0]){case +0:var +bB=iO(d[1],i[1][2])[2],bS=0;if(2===bB[0]){var +u=bB[1],bD=ai(u),bE=ah===bD?u[1]:O===bD?aq(u):u;if(3===bE[0]){var +bC=[0,bE[2]];bS=1}}if(!bS)var +bC=0;var +M=bC;break;case +3:var +M=[0,i[2]];break;default:var +M=0}return[2,i,[0,A,ej,[14,q,M,eg,eh]],ei];case +79:var +r=e[4],N=e[2],w=e[1],ek=e[3],P=fJ(18,w);if(typeof +N==="number")var +Q=N?1:0;else +var +eu=N[1],Q=[0,m(l(G$,b,c,d),eu)];var +el=jN(n(ia,l(ae0,b,c,d),ek)),R=function(a,b){var +e=[0,[0,ka(d[1],w),1]],c=ir(d[1],P,Q,0,0,a,[0,el],e,b);return 0===Q?[7,fJ(fb7,w),c]:c};if(typeof +r==="number")return R(0,[9,P]);if(0===r[0]){var +em=r[2],bK=s(53,r[1]),en=p(a4,0,b,c,d,em),eo=l(gw[26],d[1],bK,en);return R(0,l(gw[1],d[1],bK,eo))}var +ep=r[1],eq=[8,P],bL=$Q(function(a){return R([0,p(a4,0,b,c,d,a)],eq)},ep),T=bL[2],bM=bL[1];if(!T)return bM;var +er=T[2],es=T[1],et=fJ(fb8,w);return[15,et,l(gr[1],bM,es,er)];case +80:var +bN=e[1],ev=e[3],ew=e[2],bO=fJ(18,bN),ex=[1,ew],V=iN(function(a){if(0===a[0])return[1,p(a4,0,b,c,d,a[1])];var +f=a[2],g=a[1],e=S(g,l(G$,b,c,d));return[0,[0,bO,jN(n(ia,l(ae0,b,c,d),f)),ru,e,0]]},ev),W=V[1];if(0===W[0]){var +Y=V[2],ey=W[1];if(Y){var +bP=Y[1];if(0===bP[0])var +Z=X(fb9),B=Z[3],z=Z[2],y=Z[1];else +var +B=[0,ey],z=Y[2],y=bP[1]}else +var +_=X(fb_),B=_[3],z=_[2],y=_[1]}else +var +B=0,z=V[2],y=W[1];return[2,y,[0,A,bO,[4,ex,z,B]],jG(d,bN)];default:var +ez=e[2];return js(ae1,1,b,c,d,fJ(21,e[1]),0,g6,ez,0)}});h(aRf,function(a,b,c,d){switch(d[0]){case +0:var +f=d[1],l=d[2],n=BG([0,fb$],f);return ap(ae3,a,b,c,n,0,ka(c[1],f),l);case +1:var +q=d[5],r=d[4],t=d[1],g=m(kh(d[2],d[3]),t);return ap(u4,0,a,b,c,g,r,p(y0,a,b,c,g,q));case +2:return[1,s(4,d[1]),fca];case +3:var +u=d[2];return[1,s(4,d[1]),[1,[0,0,[0,u]]]];case +4:var +v=d[1];return[1,fJ([0,Pi(c[1])],v),fcb];case +5:return[1,s(2,d[1]),fcc];case +6:var +w=d[3],x=d[2];return[1,s(2,d[1]),[0,[0,0,[0,x,w]]]];case +7:return[1,s(3,d[1]),fcd];case +8:var +y=d[3],z=d[2];return[1,s(3,d[1]),[3,[0,0,[0,z,y]]]];case +9:return[1,s(5,d[1]),fce];case +10:var +A=d[2];return[1,s(5,d[1]),[2,[0,A]]];case +11:return m(i7[2],d[1]);case +12:return o(aRg,a,b,c,[0,d[1],d[2],d[3]]);case +13:return p(aeY,0,a,b,c,[0,d[1],d[2],d[3],d[4]]);case +14:return p(aeZ,0,a,b,c,[0,d[1],d[2],d[3],d[4]]);default:var +h=d[1],B=d[3],C=d[2],i=s(23,h),j=p(a4,0,a,b,c,C),e=K(B,o(a4,0,a,b,c));if(e)var +D=e[2],E=e[1],F=[0,ka(c[1],h)],k=[16,i,o(aG[3],F,j,E,D)];else +var +k=j;return[1,i,[7,[0,0,k,0]]]}});h(aRg,function(a,b,c,d){var +f=d[3],e=s([86,[0,d[2]]],d[1]),g=[0,jN(n(ul,o(Qj,1,a,b,c),f))];return ir(c[1],e,0,fcf,0,0,g,0,[9,e])});h(aeY,function(a,b,c,d,e){var +f=e[3],g=e[2],m=e[4],h=aQ5(g,e[1]);if(f)var +i=f[1],q=i[2],j=s(53,i[1]),r=p(a4,0,b,c,d,q),t=l(gw[26],d[1],j,r),k=l(gw[1],d[1],j,t);else +var +k=[9,h];var +u=[0,jN(n(ul,o(Qj,a,b,c,d),m))];return ir(d[1],h,0,[0,g],0,0,u,0,k)});h(aeZ,function(s,b,c,d,e){var +q=e[2],t=e[4],f=aQ5(q,e[1]),g=iN(function(a){if(0===a[0])return[1,p(a4,0,b,c,d,a[1])];var +e=a[1];return[0,[0,f,jN(n(ul,o(Qj,s,b,c,d),e)),ru,0,0]]},t),h=g[1];if(0===h[0]){var +i=g[2],m=0;if(i){var +r=i[1],u=h[1];if(0===r[0])m=1;else +var +a=[0,u],l=i[2],k=r[1]}else +m=1;if(m)var +j=X(fcg),a=j[3],l=j[2],k=j[1]}else +var +a=0,l=g[2],k=h[1];var +v=q?1:0,w=[0,v],y=[0,[0,f]],z=a?[0,[1,a[1]],0]:0,A=[0,l,z,g0(0),0,0];return x(gw[25],d[1],y,f,w,A,k)});h(G9,function(a,b,c,d){switch(d[0]){case +0:var +e=d[1];return[1,[0,e],p(a4,0,a,b,c,d[2])];case +1:var +f=d[1];return[2,[0,f],p(a4,0,a,b,c,d[2])];default:var +g=d[4],h=d[3],i=d[1],j=p(a4,0,a,b,c,d[2]);return[3,[0,i],j,[0,h],p(a4,0,a,b,c,g)]}});h(Qj,function(a,b,c,d,e,f){switch(f[0]){case +0:var +g=f[1],h=f[2];if(2===h[0]){var +i=f[3],l=h[1];if(a)return CB(d,function(a,b,c,d){if(af(e,d)&&ao(g,b))return[0,[0,g9(c)],[0,g],a,i];return[0,0,[0,g],a,i]},l)}var +k=f[3];return[0,0,[0,g],p(a4,0,b,c,d,f[2]),k];case +1:return o(G9,b,c,d,f[1]);default:var +n=f[5],q=f[2],r=f[1],j=m(kh(f[3],f[4]),q);return[4,[0,r],ap(u4,0,b,c,d,j,n,p(y0,b,c,d,j,at))]}});h(Qk,function(a,b,c,d){switch(d[0]){case +0:var +f=d[3],g=d[1];return[0,0,[0,g],p(a4,0,a,b,c,d[2]),f];case +1:return o(G9,a,b,c,d[1]);default:var +h=d[5],i=d[2],j=d[1],e=m(kh(d[3],d[4]),i);return[4,[0,j],ap(u4,fch,a,b,c,e,h,yr(e))]}});h(ae0,function(a,b,c,d){switch(d[0]){case +0:var +f=d[3],g=d[1];return[0,0,[0,g],p(a4,0,a,b,c,d[2]),f];case +1:return o(G9,a,b,c,d[1]);default:var +h=d[3],i=d[1],e=fJ(29,d[2]);return[4,[0,i],ap(u4,0,a,b,c,e,h,p(y0,a,b,c,e,at))]}});h(G_,function(f,e,c,d){switch(d[0]){case +0:var +r=d[3],t=d[1];return[0,0,t,p(a4,0,f,e,c,d[2]),r];case +1:return o(G9,f,e,c,d[1]);default:var +k=d[1],m=function(a,b){var +d=s(29,a);return ap(u4,fci,f,e,c,d,b,yr(d))},j=k[1],z=k[2],A=j[1],b=g9(m(j[2],j[3])),n=A,a=z;for(;;){if(a){var +i=a[1],x=a[2],y=i[1],b=kE(m(i[2],i[3]),b),n=y,a=x;continue}var +g=b[2],h=b[1];if(g)var +u=g[2],v=g[1],w=C(h),q=[15,w,l(gr[1],h,v,u)];else +var +q=h;return[4,[0,n],q]}}});h(G$,function(a,b,c,d){var +e=d[4],f=d[2],g=d[1],h=p(a4,0,a,b,c,d[3]);return[0,g,h,p(a4,0,a,b,c,e),f]});h(wG,function(a,h,c,d,e,f){if(!f)return m(e,[0,a,0]);var +g=f[1],i=f[3],j=f[2],k=gg(function(a){return[61,a]},d),b=fs([0,j,i],[0,a,0,0],function(a,b){var +e=a[3],f=a[2],d=p(Ql,0,a[1],h,c,b);return[0,d[3],[0,d[1],f],[0,d[2],e]]}),l=b[3],n=b[1],o=tj(U(b[2])),q=m(e,[0,n,U(l)]);return[1,k,[17,g,o,q,Pu(c[1],1,g)]]});h(Ql,function(a,b,c,d,e){var +h=e[5],i=e[4],j=e[3],f=e[2],g=s([25,[0,f]],e[1]),t=i?p(a4,0,b,c,d,i[1]):[1,aj(6,g),fcj],u=h?[0,p(a4,0,b,c,d,h[1])]:0,r=0;if(a&&n(uk,f,b)){var +v=m(EO,b),x=fx(function(a){return[0,a]},v),k=adC([0,f],m(ic[32],x));r=1}if(!r)var +k=[0,f];var +l=[0,g,k,t,j,u,0];function +w(a){return a}var +q=wy(d[1],w,l);return[0,l,[0,[0,f],g,q,j],o(fN,0,f,q,b)]});h(aRh,function(a,b,c,d){return abI(o(a4,0,a,b,c),d)});h(ae1,function(y,j,i,d,e,f,g,h){var +q=h[3],z=h[4],A=h[2],B=h[1],a=gg(function(a){return[73,a]},e),r=fx(o(a4,0,j,i,d),B),b=0===q?r:[0,[8,a],r];if(b)var +c=b[2],s=b[1],D=c?[15,a,l(gr[1],s,c[1],c[2])]:s,t=D;else +var +t=[9,a];var +u=gg(function(a){return[72,a]},e),E=[0,jN(m(aeV(e),at))],F=ir(d[1],u,1,0,0,0,E,0,[10,u]),G=[0,Y[1],Y[1]],v=l(j6,function(a,b,c){var +e=c[2],f=c[1],g=o(G_,j,i,d,b);return 0===b[0]?[0,o(Y[31],0,[0,a],g,f),e]:[0,f,o(Y[31],0,[0,a],g,e)]},A,G),H=v[2],I=v[1],k=jk(o(a4,0,j,i,d),q);if(k){var +n=k[2],p=k[1];if(n)var +J=n[2],K=n[1],L=C(p),M=[15,L,l(gr[1],p,K,J)],w=[0,uV(d[1],M)];else +var +w=[0,uV(d[1],p)];var +x=w}else +var +x=0;var +N=S(z,l(G$,j,i,d));return function(a){var +b=hw(d[1],Y[1]),c=hw(d[1],Y[1]),h=hw(d[1],Y[1]),i=hw(d[1],Y[1]),j=hw(d[1],H);return[1,e,[9,F,t,0,[0,f,g,a,hw(d[1],I),j,x,g2,g2,[0,y],N,i,h,c,b]]]}});h(ae2,function(a,b,c,d,e,f,g){var +h=gg(function(a){return[73,a]},e);if(typeof +f==="number")if(0===f)var +j=[8,h],i=[9,h];else +var +j=[8,h],i=[10,h];else if(0===f[0])var +r=f[1],w=f[2],x=s(fcl,r),t=yv([0,r],aQ6(c,x,p(a4,0,a,b,c,w)),d,0),j=p9(0,0,t),i=t;else +var +y=f[3],z=f[1],A=p(a4,0,a,b,c,f[2]),u=yv([0,z],A,d,[0,fx(o(a4,0,a,b,c),y)]),j=p9(0,0,u),i=u;var +k=hh(jk(o(aRi,a,b,c,d),g),[0,i,0]);if(k)var +m=k[2],n=k[1],v=m?[15,h,l(gr[1],n,m[1],m[2])]:n,q=v;else +var +q=X(fck);return[0,q,j]});var +aRn=function(a,b){switch(b[0]){case +2:var +e=b[1];return CB(a,function(a,b,c,d){return[0,a,[0,d,0]]},e);case +8:var +c=b[3];if(typeof +c!=="number"&&1===c[0]){var +f=c[1],g=b[1],d=aRn(a,b[2]),h=d[2];return[0,aQ8(a,g,d[1],c),[0,f,h]]}break}return X(fcm)},aRo=function(a,b,c){var +d=aRn(a,c),e=d[1],f=fJ([25,[0,f2(fcn,U(d[2]))]],b);return l(gw[24],a[1],f,e)};h(aRi,function(a,b,c,d,e){if(0===e[0]){var +f=e[1],h=e[2],i=s(fco,f);return yv([0,f],aQ6(c,i,aRo(c,f,h)),d,0)}var +g=e[1],j=e[3],k=aRo(c,g,e[2]);return yv([0,g],k,d,[0,fx(o(a4,0,a,b,c),j)])});h(ae3,function(a,b,c,d,e,f,g){var +j=g[2],r=g[6],s=g[5],t=g[4],u=g[3],i=g[1],k=aj(40,d);return x(wG,a,b,c,d,function(a){var +i=a[1],g=[],J=a[2];h(g,[O,function(a){var +v=[0,k,fcp,GI(c[1],k,g),2,0,1];function +w(a){return a}var +p=wy(c[1],w,v),q=ap(ae2,i,b,c,p,d,j,0),x=q[2],y=q[1],z=fx(o(a4,0,i,b,c),u),h=o(fN,0,fcq,p,i),A=gg(function(a){return[72,a]},d),B=n(ia,l(Qk,h,b,c),t),C=[0,jN(m(aeV(d),B))],D=ir(c[1],A,1,0,0,0,C,0,x),E=jN(n(ia,l(Qk,h,b,c),r)),L=hw(c[1],E),F=jN(aQ9(d,j,n(ia,l(Qk,h,b,c),s))),K=hw(c[1],F),G=hw(c[1],Y[1]),H=hw(c[1],Y[1]),I=hw(c[1],Y[1]);return wi([1,d,[9,D,y,z,[0,e,f,J,L,K,0,g2,g2,0,0,hw(c[1],Y[1]),I,H,G]]],0,fcr)}]);var +p=ai(g);return ah===p?g[1]:O===p?aq(g):g},i)});h(y0,function(f,b,c,d,e){var +g=jN(n(ia,function(a){var +d=a[1];return[0,0,[0,d],p(a4,0,f,b,c,a[2]),1]},e)),a=gg(function(a){return[72,a]},d);return ir(c[1],a,1,0,0,0,[0,g],0,[8,a])});h(aRj,function(g,b,c,d){var +a=d[2],q=d[1];function +e(a,b){var +c=[0,[0,a],0],d=n(aJl,c,[2,b]);return[0,n(aJl,c,b),d]}var +h=m(aJo,[0,function(a,b,c){return[0,[0,b,c]]}]),i=m(aJo,[0,function(a,b,c){return[0,[1,b,c]]}]);function +f(a){switch(a[0]){case +0:var +r=a[2],d=f(a[1]),t=d[2],u=d[1],j=f(r),v=j[1],w=n(i,t,j[2]);return[0,n(h,u,v),w];case +1:var +x=a[2],k=f(a[1]),y=k[2],z=k[1],l=f(x),B=l[1],C=n(h,y,l[2]);return[0,n(i,z,B),C];case +2:var +q=f(a[1]);return[0,q[2],q[1]];case +3:return e(a[1],0);case +4:var +D=a[1];return e(D,[3,0,p(a4,0,g,b,c,a[2])]);case +5:return e(a[1],6);case +6:return e(a[1],1);case +7:return e(a[1],2);case +8:return e(a[1],[6,a[2],a[3],a[4]]);case +9:return e(a[1],[5,a[2],a[3]]);case +10:return e(a[1],[7,a[2],a[3],[0,a[4],a[5]]]);case +11:return e(a[1],[8,a[2],a[3],[0,a[4],a[5]]]);case +12:return e(a[1],[9,a[2]]);case +13:return e(a[1],3);case +14:return e(a[1],[10,a[2]]);case +15:return e(a[1],[11,a[2]]);case +16:return e(a[1],4);case +17:return e(a[1],[12,a[2]]);case +18:return e(a[1],[13,a[2]]);case +19:return e(a[1],5);case +20:var +E=a[4],F=a[2],G=a[1];return e(G,[3,[0,F],[1,s(4,a[3]),[1,[0,0,[0,E]]]]]);case +21:var +H=a[5],I=a[4],J=a[2],K=a[1];return e(K,[3,[0,J],[1,s(2,a[3]),[0,[0,0,[0,I,H]]]]]);case +22:var +L=a[5],M=a[4],N=a[2],P=a[1];return e(P,[3,[0,N],[1,s(3,a[3]),[3,[0,0,[0,M,L]]]]]);case +23:var +Q=a[4],R=a[2],S=a[1];return e(S,[3,[0,R],[1,s(5,a[3]),[2,[0,Q]]]]);case +24:var +T=a[2],U=a[1];return e(U,[3,[0,T],m(i7[2],a[3])]);case +25:var +V=a[2],W=a[1];return e(W,[3,[0,V],m(fY[2],a[3])]);case +26:var +X=a[2],Y=a[1];return e(Y,[3,[0,X],p(a4,0,g,b,c,a[3])]);default:var +Z=a[4],_=a[3],$=a[2],aa=a[1],ab=[O,function(a){var +d=p(a4,0,g,b,c,aa),e=o(aRl,c,g,b,$),f=o(aRm,c,g,b,_);return[0,A,iG(d),d,e,f]}],ac=[0,BB,BB];return iC(function(a,b){var +d=a[2],f=a[1],c=e(b[1],[16,ab,b[2]+1|0]),g=c[1],j=n(i,d,c[2]);return[0,n(h,f,g),j]},ac,Z)}}var +r=s(fcs,q);if(a)var +j=f(a[1]),l=j[2],k=j[1];else +var +l=BB,k=BB;return[0,r,k,l]});h(u4,function(a,b,c,d,e,f){var +h=a?a[1]:0,i=f[6],j=f[4],k=f[3],r=f[5],s=f[2],g=f[1];return function(t){return x(wG,b,c,d,e,function(a){var +b=a[1],u=fx(function(a){var +e=a[1];return[0,e,p(a4,0,b,c,d,a[2])]},s);if(k)var +g=k[1],v=g[2],w=g[1],l=[0,[0,w,v,p(a4,0,b,c,d,g[3])]];else +var +l=0;var +x=j?p(a4,0,b,c,d,j[1]):h?rx(e):aJZ(e[2]),y=p(a4,0,b,c,d,r);if(i){var +f=i[1];if(0===f[0])var +m=[0,[0,o(aRj,b,c,d,[0,f[1],f[2]])]];else +var +q=f[1],A=q[1],m=[0,[1,A,p(a4,0,b,c,d,q[2])]];var +n=m}else +var +n=0;var +z=h?fct:0;return[1,e,[5,t,[0,[0,x,z],u,l,y,n,e]]]},g)}});h(ae4,function(a,g,c,d,e,f){var +b=e[4],h=e[1],t=e[5],u=e[3],i=e[2];return x(wG,a,g,c,d,function(a){var +e=a[1];function +v(a,b){var +d=a[1],f=b[1],i=a[2],j=b[2],h=p(a4,0,e,g,c,b[3]);return q(f,qi)?[0,m(wg([0,f],2,0,[0,j],h),d),i]:[0,d,[0,h]]}var +i=fs(u,[0,Y[1],0],v),j=i[2],w=i[1],k=s([94,fv(0,d)],h),l=s([95,fv(0,d)],h);if(j)var +x=j[1],n=[2,x,[0,A,l,8],g_(0)];else +var +n=m(h7[4],l);var +y=b?p(a4,0,e,g,c,b[1][1]):PB(c[1],k),z=[2,y,[0,A,k,[12,w]],g_(0)],B=p(a4,0,e,g,c,t);if(f)var +o=f[1],C=o[2],r=[0,ka(c[1],o[1]),C];else +var +r=0;return[1,d,[18,z,n,B,r]]},i)});h(aRk,function(a,b,c,d){if(0!==d[0])return[1,p(a4,0,b,c,a,d[1])];var +e=s(41,d[1]);return[0,[0,e,ie(a[1],e)]]});h(aRl,function(a,b,c,d){if(!d)return 0;var +e=d[1];return[0,K(e,l(aRk,a,b,c))]});h(aRm,function(e,b,c,d){return K(d,function(a){return 0===a[0]?[0,p(a4,0,b,c,e,a[1])]:[1,p(a4,0,b,c,e,a[1])]})});var +aRp=function(a){return l(a4,0,a,at)},aRq=function(a,d,c){function +b(a){return[0,0,0,0,a]}function +e(a,b){return[0,[0,a,b[1]],b[2],b[3],b[4]]}function +f(a,b){return[0,b[1],[0,a],b[3],b[4]]}function +g(a,b){return[0,b[1],b[2],[0,a],b[4]]}function +h(a){var +c=a[2],b=p1(a[1],d[4]);return b?aY(c,1,d[5]):b}function +i(a){var +b=a[1],c=0;return M(function(a,b){return[0,m(d[1],b),a]},c,b)}function +j(a){return S(a[2],d[2])}function +k(a){return S(a[3],d[3])}return[0,c,b,e,f,g,h,i,j,k,function(a,b){var +c=b[4],e=b[3],f=b[2],g=U(b[1]),h=jk(m(d[9],a),g),i=S(f,m(d[10],a)),j=S(e,m(d[11],a));return l(c,U(h),i,j)}]},aRr=[fy,fcA,ge(0)],CC=j3(fcz),fcB=fR(CC,fcx)[2],aRs=fG(CC,0,0,fcy,uX,1),ae5=aRs[13],fcC=aRs[1];s6(CC,fcB,function(a,b,c,d,e){switch(e[0]){case +1:var +f=e[2];if(typeof +f!=="number"&&17===f[0]){var +h=f[2],i=iC(function(a,b){return n(ic[6],b[2],a)},d,h);o(m(ae5,a),b,c,i,e);return d}break;case +3:var +g=e[2];if(n(ic[3],g,d))throw B([0,aRr,jC(g)],1);return o(m(ae5,a),b,c,d,e)}return o(m(ae5,a),b,c,d,e)});j4(CC);var +aRt=fp(0,CC);m(fcC,aRt);var +aRu=fH(0,aRt,CC),aRv=function(a,f,c){function +b(a){return[0,0,0,a]}function +d(a,b){return[0,[0,a,b[1]],b[2],b[3]]}function +e(a,b){return[0,b[1],[0,a],b[3]]}function +g(g,b,c,d,e){var +i=e[2],y=e[1],z=[0,Y[1],0],j=M(function(a,b){var +j=a[1],r=a[2],c=m(f[3],b),e=c[1];if(q(c[2],qi))return[0,m(wg([0,c[2]],2,0,[0,e],c[3]),j),r];var +h=c[3];if(d){var +k=d[1][2],s=k[2],t=k[1][2],u=function(a,b){return n(ic[4],b[2],a)},v=fs(s,m(ic[5],t),u);try{p(D(aRu,i0,Q8),aRu,g,1,v,h);var +w=[0,[0,e,h]],l=w}catch(f){var +i=fk(f);if(i[1]!==aRr)throw B(i,0);L(g,0,[97,e,i[2]]);var +l=0}var +o=l}else +var +o=[0,[0,e,h]];return[0,j,o]},z,y),k=j[2],E=j[1];if(i){var +a=m(f[4],i[1]),F=[0,0,[0,[0,b[2],1]],1],G=hw(g,Y[1]),l=C(a),w=gg(sa,b);n(aC,g,[0,a,[0,[0,[37,l]],[1,w,[6,F6([0,F],0,0,G,[9,l])]]]]);var +o=a}else +var +o=PB(g,b);if(k){var +r=k[1],t=r[2],u=r[1];n(f[5],g,u);var +h=s(84,u);n(aC,g,[0,t,[0,[0,[12,h]],p(l5,g,h,0,fcD,[0,m(fL,h),0])]]);var +v=x(is,g,A,c,t,8,g_(0))}else +var +v=m(h7[4],c);return[0,x(is,g,A,b,o,[12,E],g_(0)),v]}return[0,c,b,d,e,g,function(a,b){var +c=b[3],d=b[2],e=U(b[1]),g=jk(m(f[1],a),e),h=S(d,m(f[2],a));return n(c,U(g),h)}]},ae7=function(a,b){if(2!==b[0])return 0;var +c=b[1];fO(a,[vr,c[2],c[4],c[3]]);return 1},wH=function(c){return function(a){var +b=a[2];switch(b[0]){case +9:var +d=b[1][2][1];return af(d,kq)?0:[0,[0,[0,d],0]];case +21:return aRx(c,b[1]);case +26:var +e=b[1][1];if(c)return aRx(c,e);break;case +28:return[0,[0,[1,fcN],0]];case +31:return[0,[0,[1,fcO],0]]}return 0}},aRx=function(a,b){var +c=b[2],d=b[1];switch(c[0]){case +0:var +e=c[1][2][1];break;case +1:var +p=c[1][2][1],i=m(wH(a),d);if(!i)return 0;var +j=i[1];return[0,[0,j[1],[0,[2,p],j[2]]]];default:var +k=c[1],f=k[2];switch(f[0]){case +13:var +e=f[1][1];break;case +16:var +e=f[1][2];break;default:var +l=m(wH(a),d);if(!l)return 0;var +n=l[1],q=n[2],r=n[1],o=m(wH(a),k);return o?[0,[0,r,[0,[1,o[1]],q]]]:0}}var +g=m(wH(a),d);if(!g)return 0;var +h=g[1];return[0,[0,h[1],[0,[0,e],h[2]]]]},tC=function(a,b,c,d){var +e=m(wH(a),c);return e?aP3(b,e[1],d):0},ae_=[fy,fcS,ge(0)],ae$=function(a,b){throw B([0,ae_,[0,a,b]],1)},aRC=function(a,b){try{var +d=[0,m(b,0),0];return d}catch(f){var +c=fk(f);if(c[1]===ae_)return[0,m(a,c[2]),fcT];throw B(c,0)}},fcU=function(a){return a[2]},tD=function(a){return aRC(fcU,a)},Ha=[0,0,0,0],fcV=function(a){return[0,a[1],[22,[0,a[2],0,0]]]},aRF=function(a,b,c,f,e){function +M(a,b,c,d,e,f,g){function +h(a){return[0,a,at,at,at,at,at,at,at,0,0]}var +i=0,j=h(gg(function(a){return[72,a]},d));return[0,a,b,c,e,f,g,i,j,h(d)]}function +j(a){return 0===a[6][0]?1:0}function +i(a,b,c){if(a){var +d=c[9],e=m(b,c[8]);return[0,c[1],c[2],c[3],c[4],c[5],c[6],c[7],e,d]}var +f=m(b,c[9]);return[0,c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],f]}function +d(a,b,c){return a?m(b,c[8]):m(b,c[9])}function +N(e,b,c,d){function +f(a){var +f=a[10],g=a[9],h=a[8],i=a[7],j=a[6],k=a[5],l=a[4],m=o(fN,0,e,[0,[0,b],c,d],a[3]);return[0,a[1],a[2],m,l,k,j,i,h,g,f]}return function(b){return function(a){return i(b,f,a)}}}function +O(a,b,c,d,e,f,g,h){var +j=[0,[0,c],d,e,f,g];return i(a,function(a){var +c=a[10],d=a[9],e=a[8],f=a[7],g=o(fN,0,b,j,a[6]);return[0,a[1],a[2],a[3],a[4],a[5],g,f,e,d,c]},h)}function +P(a,b){var +c=a?b[8]:b[9];return c[2]}function +Q(a,b){var +c=a?b[8]:b[9];return c[3]}function +y(a,b,c,d,e){var +g=c?c[1]:function(a){return 0},h=d?d[1]:function(a){return 0},i=e[9],j=e[8],k=[0,[0,a,0,m(f[9],b),g,h],0];return[0,e[1],e[2],e[3],e[4],e[5],e[6],k,j,i]}function +R(a,b){return y(0,m(f[2],a),0,0,b)}function +T(a,b,c,d,e){var +g=c?c[1]:function(a){return 0},h=d?d[1]:function(a){return 0},i=e[9],j=e[8],k=e[7],l=[0,[0,a,0,m(f[9],b),g,h],k];return[0,e[1],e[2],e[3],e[4],e[5],e[6],l,j,i]}function +z(a,b,c,d){var +e=a||j(d);return i(a,function(a){var +d=a[10],f=a[9],g=e?n(j5,b,a[8]):a[8],h=e?n(j5,b,a[7]):a[7],i=a[6],j=e?n(j5,b,a[5]):a[5],k=e?n(j5,b,a[4]):a[4],l=a[3],m=o(fN,0,b,c,a[2]);return[0,a[1],m,l,k,j,i,h,g,f,d]},d)}function +W(a,b,c,d,e,f){return z(a,b,[0,[0,c],d,e],f)}function +Y(a,b,c){return i(a,function(a){return[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],[0,b]]},c)}function +Z(a,b){return d(a,function(a){return kA(a[10])},b)}function +_(a){var +b=a[9][1],c=gg(function(a){return[50,a]},b);return z(1,fc_,[0,0,1,[0,m(im[3],c)]],a)}function +$(f,b,c,d,e){return i(0,function(a){var +e=a[10],g=a[9],h=n(j5,f,a[8]),i=n(j5,f,a[7]),j=a[6],k=n(j5,f,a[5]),l=o(fN,0,f,[0,[0,b],c,d],a[4]);return[0,a[1],a[2],a[3],l,k,j,i,h,g,e]},e)}function +ab(a,b,c,d,e,f,g,h){var +k=f?f[1]:function(a){return 0},l=g?g[1]:function(a){return 0},m=a||j(h),p=[0,[0,c],d,e,k,l];return i(a,function(a){var +c=a[10],d=a[9],e=n(j5,b,a[8]),f=n(j5,b,a[7]),g=a[6],h=a[5],i=o(fN,0,b,g9(p),h),j=n(j5,b,a[4]),k=a[3],l=m?n(j5,b,a[2]):a[2];return[0,a[1],l,k,j,i,g,f,e,d,c]},h)}function +ac(a,b,c,d,e,f,g,h){var +l=f?f[1]:function(a){return 0},m=g?g[1]:function(a){return 0},p=a||j(h),k=[0,[0,c],d,e,l,m];return i(a,function(a){var +e=a[10],f=a[9],g=n(j5,b,a[8]),h=n(j5,b,a[7]),i=a[6],c=n(jK,b,a[5]);if(c)var +j=a[5],d=o(fN,0,b,kE(k,c[1]),j);else +var +r=a[5],d=o(fN,0,b,g9(k),r);var +l=n(j5,b,a[4]),m=a[3],q=p?n(j5,b,a[2]):a[2];return[0,a[1],q,m,l,d,i,h,g,f,e]},h)}function +ad(c,b){function +d(a){return[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],[0,b,a[9]],a[10]]}return function(a){return i(c,d,a)}}function +ae(a,b,c,d,e,f,g,h){var +k=f?f[1]:function(a){return 0},l=g?g[1]:function(a){return 0},m=a||j(h),p=[0,[0,c],d,e,k,l];return i(a,function(a){var +c=a[10],d=a[9],e=a[8],f=o(fN,0,b,p,a[7]),g=a[6],h=n(j5,b,a[5]),i=n(j5,b,a[4]),j=a[3],k=m?n(j5,b,a[2]):a[2];return[0,a[1],k,j,i,h,g,f,e,d,c]},h)}function +af(a,b,c,d,e,f,g,h){var +k=f?f[1]:function(a){return 0},l=g?g[1]:function(a){return 0},m=a||j(h),p=[0,[0,c],d,e,k,l];return i(a,function(a){var +c=a[10],d=a[9],e=o(fN,0,b,p,a[8]),f=a[7],g=a[6],h=n(j5,b,a[5]),i=n(j5,b,a[4]),j=a[3],k=m?n(j5,b,a[2]):a[2];return[0,a[1],k,j,i,h,g,f,e,d,c]},h)}function +ag(a){return 0!==a[7]?1:0}function +ah(b){function +c(a){return n(uk,b,a[2])}return function(b){return function(a){return d(b,c,a)}}}function +t(c,b){var +a=b[5];n(hk,function(a){return k1(c,p6,a)},a);n(hk,c,b[6]);n(hk,c,b[7]);return n(hk,c,b[8])}function +E(b){function +c(a){return b}return function(a){return t(c,a)}}function +ai(a){var +b=a[6];return 0===b[0]?0:[0,b[1][5]]}function +g(a){var +b=F4(a);function +c(a){return f9(a,b)}return function(a){return k1(ai,c,a)}}function +ak(a,b){var +d=a?b[8][1][2]:b[9][1][2],c=m(g(d),b);return a?p9(0,0,c):c}function +u(a){var +b=a[3],c=a[2],d=a[1],e=0===b[0]?b[1]:m(f[7],b[1]);return[0,0,d,e,c]}function +F(a,b){function +c(a){return hw(b,a)}var +d=m(ia,a);function +e(a){return k1(d,jN,a)}return function(a){return k1(e,c,a)}}function +v(a){return F(u,a)}function +G(c,b){return F(function(a){var +d=a[1];return[4,d,o(f[6],c,a[2],b,a[3])]},c)}function +p(h,s,c,d,e){var +t=d[5],i=n(ul,function(a,b){var +c=$Q(function(a){var +b=a[3],d=0,i=a[5],j=a[2],k=a[1];if(b[5])if(1===e[0])var +g=function(a){return[24,a]},c=jD(function(a){return gg(g,a)},s);else +d=1;else if(1===e[0])var +c=rx(b[1]);else +d=1;if(d)var +c=rx(b[1]);return[0,k,o(f[6],h,j,c,b),i]},b);p6(function(a){var +b=a[3],c=a[2],d=a[1];return aT(d,function(a){return m(b,c)})},c);var +d=c[2],i=c[1],g=i[2],j=i[1];if(!d)return[0,j,g];var +k=d[2],n=d[1][2],p=K(k,function(a){return a[2]}),q=l(gr[1],g,n,p);return[0,j,[15,C(g),q]]},t),v=d[6];n(hk,function(a,b){var +c=b[3],d=b[5],e=b[2],g=b[1];return aT(g,function(a){return m(d,o(f[6],h,e,[25,c[1],fc$],c))})},v);var +w=c?o(fN,0,fda,c[1],i):i,x=d[7],j=n(ia,function(a){var +b=a[5],c=a[1];return[0,c,m(f[7],a[3]),b]},x),y=d[8],k=n(ia,function(a){var +b=a[5],c=a[1];return[0,c,m(f[8],a[3]),b]},y),p=m(hk,function(a,b){var +c=b[3],d=b[2],e=b[1];return aT(e,function(a){return m(c,d)})});m(p,j);m(p,k);var +z=l(bd7,function(a,b,c){if(b){var +d=b[1],e=d[2],f=d[1];if(!c)return[0,[1,f,e]];var +g=c[1];return[0,[3,f,e,g[1],g[2]]]}if(!c)return 0;var +h=c[1];return[0,[2,h[1],h[2]]]},j,k),A=n(ia,u,d[2]),B=n(ia,function(a){return[4,a[1],a[2]]},w),D=d[4],E=l(xV,0,z,l(j6,function(a,b,c){return o(fN,0,a,u(b),c)},D,B)),a=U(d[9]);if(a){var +b=a[2],g=a[1];if(b)var +F=l(gr[1],g,b[1],b[2]),q=[0,[15,C(g),F]];else +var +q=[0,g];var +r=q}else +var +r=0;var +G=d[2];return[0,l(j6,function(a,b,c){return 0===b[3][0]?c:n(mq,a,c)},G,g2),A,E,r]}function +w(f,b,c,d){var +e=C(d);return f7(f,e,function(a){return n(aC,f,[0,d,[41,b,e,e,0,c,a]])})}function +al(a,b,c,d){var +f=d?F9(0,c,a,aOg(b,Op(d))[2]):GW(b,0,c,0,a),e=[0,aj(40,c),fde,f,2,0,1];return[0,e,wy(b,function(a){return a},e)]}function +H(c,b){var +E=b[9][1],a=gg(function(a){return[73,a]},E),o=b[8][1],d=b[6];if(0===d[0]){var +p=d[1],F=p[3],G=p[2],q=K(G,function(a){var +e=a[3],b=a[2],d=a[1];return e?F_(0,d,b,e[1]):GW(c,0,mv(d,hX(d,C(b))),0,b)}),e=F?[0,[8,a],q]:q;if(e)var +f=e[2],r=e[1],H=f?[15,a,l(gr[1],r,f[1],f[2])]:r,s=H;else +var +s=[9,a];return[0,s,[10,o]]}var +g=d[1],t=g[5],h=g[1],I=g[2];if(0===h[0]){var +i=h[1],j=i[3],k=i[2],u=i[1];if(0===j)var +J=b[9][1],v=w(c,[0,[6,C(k),J]],j,k);else +var +v=k;var +x=yv([0,u],v,t,j),z=p9(0,[0,u],x),y=x}else +var +M=h[1]?[10,a]:[9,a],z=[8,o],y=M;var +m=hh(jk(function(a){var +b=a[3],d=a[2],e=a[1],f=0===b?w(c,A,b,d):d;return yv([0,e],f,t,b)},I),[0,y,0]);if(m)var +n=m[2],B=m[1],L=n?[15,a,l(gr[1],B,n[1],n[2])]:B,D=L;else +var +D=X(fdf);return[0,D,z]}function +r(c,b){var +aq=b[9][1],ar=b[8][1],z=H(c,b),A=b[6],as=z[2],at=z[1];if(0===A[0])var +B=0;else +var +aw=A[1][3],B=K(aw,function(a){var +e=a[3],b=a[2],d=a[1];return e?F_(0,d,b,e[1]):GW(c,0,mv(d,hX(d,C(b))),0,b)});var +h=b[8],E=b[6],a=p(c,p9(0,0,m(g(b[8][1][2]),b)),0,h,E),F=a[4],I=a[3],J=a[2],L=a[1],M=0,N=[0,jN(l(xV,[0,function(a,b){var +d=aa(c,h[1]);return iB(m(k(fdb),d))}],J,I))],s=ir(c,h[1],1,0,0,F,N,M,as),D=0;if(1===s[0]){var +i=s[2],ax=0;if(typeof +i==="number"||!(6===i[0]))ax=1;else{var +q=[0,L,i[1]];D=1}}if(!D)var +q=X(fdc);var +au=q[2],av=q[1],O=b[7],d=jk(function(a){var +d=a[1],g=a[5],h=a[3],i=F4(b[9][1][2]),e=o(f[6],c,0,i,h);aT(d,function(a){return m(g,e)});return[0,d,e]},O);if(d){var +j=d[1];if(d[2])var +t=d[2],u=j[2],P=t[2],Q=t[1][2],R=j[1],T=K(P,function(a){return a[2]}),U=l(gr[1],u,Q,T),w=[0,[0,R,[15,C(u),U]]];else +var +w=[0,j];var +x=w}else +var +x=0;function +V(a){var +c=a[2],d=a[4],e=a[1];return[0,c,e,n(aU[26],c,b[5]),d]}var +W=K(Op(b[4]),V),Y=b[6],Z=b[9],e=p(c,m(g(b[9][1][2]),b),x,Z,Y),_=e[4],$=e[3],ab=e[2],ac=e[1];function +y(a){return[25,a[1],fdd]}var +ad=b[8][6],ae=m(G(c,y(b[8])),ad),af=b[9][6],ag=m(G(c,y(b[9])),af),ah=b[8][3],ai=m(v(c),ah),aj=b[9][3],ak=m(v(c),aj),r=b[6],al=b[9][10],am=0===r[0]?[0,r[1][1]]:0,an=S(_,function(a){return uV(c,a)}),ao=hw(c,jN($)),ap=hw(c,jN(ab));return[1,aq,[9,[1,ar,[6,au]],at,B,[0,b[2],b[1],W,ap,ao,an,ac,av,am,al,ak,ai,ag,ae]]]}function +am(e,i,c){var +a=c[6],g=0===a[0]?r(e,c):a[1][5];function +h(a,b,c,d){function +h(a){var +f=b?p9(0,0,g):g;return n(aC,e,[0,f,[0,[0,[9,s([32,[0,c]],d),i]],a]])}return aT(m(f[10],a[4]),h)}function +b(c,b){var +d=b[3],a=b[1],e=1;return aT(a,function(a){return h(d,e,c,a)})}d(1,function(a){return t(b,a)},c);function +j(c,b){var +d=b[3],a=b[1],e=0;return aT(a,function(a){return h(d,e,c,a)})}return d(0,function(a){return t(j,a)},c)}function +an(d,b,c){var +a=c[6];if(0===a[0])return 0;var +e=a[1][3],h=r(d,c),i=c[9][1];return fo(function(a){var +f=a[3],c=a[2],e=a[1],g=f?F_(0,e,c,f[1]):GW(d,0,mv(e,hX(e,C(c))),0,c);return n(aC,d,[0,g,[21,[0,[7,b,i,C(g)]],h]])},e)}function +ao(d,b,c){var +e=c[9][1],a=e[2],o=c[6],q=c[9],f=p(d,m(g(a),c),0,q,o),h=f[3],i=f[2],r=c[6],s=c[8],j=p(d,p9(0,0,m(g(a),c)),0,s,r),t=l(xV,0,j[2],j[3]);n(hk,function(a,b){var +c=n(jK,a,h);if(!c)return 0;var +f=c[1],g=[0,a],i=m(fQ[10],f),j=[0,[8,g,m(fQ[10],b),i]],k=gM(e,0,g),l=m(fQ[1],f);return x(e_A,d,j,e,e,k,[0,m(fQ[1],b),l])},i);var +k=H(d,c)[1],u=[0,[6,b,C(k)]],v=jN(t),w=jN(h);return n(aC,d,[0,k,[20,u,e,[0,jN(i),w,v]]])}function +ap(a,b,c){var +m=b?b[1]:1,d=r(a,c),e=c[6],n=0===e[0]?0:[0,e[1][4]],f=c[4],p=c[4],g=aY(n,p,function(a){function +b(a){return a[1]}var +c=aY(f,a[1][2],b);return[0,[0,c,hW(0,0,0,Bm(V(Op(f),[0,a,0])))]]}),v=0;if(g){var +q=g[1][2];if(m){var +s=aU[1];P9(a,iC(function(a,b){return o(aU[31],0,b[2],b,a)},s,q),2,d);v=1}}if(j(c))var +h=p9(fdg,0,d),k=h,i=h;else +var +u=wi(d,0,fdh),k=u,i=wi(d,1,fdi);function +l(a){var +b=c[4];return yu(g_(0),b,a)}var +t=l(k);return[0,l(i),t]}function +aq(a,b){return[0,b[1]]}function +ar(a,b){var +p=b[9][1],c=gg(function(a){return[73,a]},p),i=b[6];if(0===i[0])return X(fdj);var +j=i[1],d=j[5],e=j[1];if(0===e[0]){var +f=e[1],g=f[3],h=f[2],k=f[1];if(0===g)var +q=b[9][1],l=w(a,[0,[6,C(h),q]],g,h);else +var +l=h;var +m=yv([0,k],l,d,g),o=p9(0,[0,k],m),n=m}else +var +r=[8,c],s=e[1]?[10,c]:[9,c],o=r,n=s;return[0,d,p9(0,0,d),n,o]}function +as(g,b){function +a(a){function +e(a,b){var +c=n(f[4],g,b),d=c[3],e=c[2],h=c[1];aT(d,function(a){return adf(g,b[7],a[1][2])});return m(a,[0,h,e,d])}function +c(a,b){var +c=b[3];return 0===c[0]?0:e(c[2],c[1])}d(1,function(a){m(E(function(a){return e(a[4],a[3])}),a);n(hk,c,a[2]);return n(hk,c,a[3])},b);return d(0,function(a){var +d=b[7];fo(function(a){return e(a[4],a[3])},d);m(E(function(a){return e(a[4],a[3])}),a);n(hk,c,a[2]);n(hk,c,a[3]);return n(hk,c,a[4])},b)}return aPU(g,b[3],a)}var +I=[fy,fdk,ge(0)],J=[];function +au(a){var +b=a[6];if(1===b[0]){var +c=b[1][5];if(1===c[0]){var +d=c[2];if(typeof +d==="number"&&!d)return 1}}return 0}if(!Ha[1])pZ(fc9,function(b){var +d=fK(b,fdl),c=fR(b,fc8)[kc],a=fG(b,0,0,fc7,vV,0),f=a[1],e=a[hB];s6(b,c,function(a,b){var +c=a[1+d];if(0===b[0]&&!q(b[1][2][1],f0))throw B(c[1],1);return m(m(e,a),b)});return function(e){var +g=e[1];return function(a){var +c=fp(a,b);n(f,e[2],c);c[1+d]=g;return fH(a,c,b)}}},Ha);var +L=[0,[0,I],vV[4]],av=Ha[1],aw=Ha[2];h(J,[0,m(Ha[1],L),aw,av,L]);return[0,a,b,c,f,e,M,y,R,T,W,Y,Z,_,$,N,O,P,Q,aq,ab,ac,ad,ae,af,ah,ag,al,ak,v,an,ao,am,ar,as,r,ap,[0,au,function(a){try{var +c=m(J[1],0);l(D(c,84982055,anU),c,g6,a);var +d=0;return d}catch(f){var +b=fk(f);if(b===I)return 1;throw B(b,0)}}]]},Hb=[0,0,0,0],aRG=function(a,b,g,d,e,f){function +c(a,b){var +c=b[6],d=b[5],f=b[2],h=n(g[6],a,b[4]);return[0,h,o(e[1],a,f,c,d)]}return[0,e,a,b,g,f,c,function(a,b,c){var +d=c[6],f=c[3],e=c[2],h=c[1],l=c[4],m=gg(function(a){return[94,a]},e),o=gg(function(a){return[95,a]},e),i=p(g[5],a,m,o,f,l),q=i[2],r=i[1],s=C(d);n(aC,a,[0,d,[0,[0,[36,s]],rD(a,C(d),0,fdu)]]);if(h)var +j=h[1],t=j[2],k=[0,ka(a,j[1]),t];else +var +k=0;return yu(g_(0),f,[1,e,[18,r,q,d,k]])}]},fdQ=gP(fdy,function(r){var +q=fK(r,fdA),v=fK(r,fdB),E=fK(r,fdC),w=fK(r,fdD),t=fK(r,fdE),x=fK(r,fdF),y=fK(r,fdG),F=fK(r,fdH),G=fK(r,fdI),a=kC(r,fdv,fdx),d=a[qm],z=a[xd],u=a[Dl],B=a[H5],c=a[1],e=a[4],f=a[52],g=a[55],h=a[57],i=a[97],j=a[98],k=a[qb],H=a[vk],I=a[zn],b=fG(r,0,fdz,fdw,lt,1),J=b[1],K=b[18],L=b[ah],M=b[lf],N=b[CK];function +O(d,b,c){var +e=c[3][2],h=0,k=c[1],g=d[1+F];if(typeof +g==="number")if(1===g)var +f=s(fdJ,b),u=0,y=function(a){var +b=l(wE,d[1+q],fdK,f),c=BD(a),g=o(ys(2,f),0,[0,[0,e],0],0,c),h=[0,b,[2,A,hX(C(e)[2],f),[0,g],kG]];return n(aC,d[1+q],h)},B=[0,f7(d[1+q],f,y),u],G=p(l5,d[1+q],f,0,fdL,B),H=[0,g$(e)],a=qQ(d[1+q],b,H,0,G);else +h=1;else +switch(g[0]){case +0:var +i=s(fdM,b),I=[0,d[1+x],0],J=function(a){return n(gs,d[1+q],[0,e,a])},K=[0,f7(d[1+q],i,J),I],L=p(l5,d[1+q],i,0,fdN,[0,d[1+t],K]),M=[0,g$(e)],a=qQ(d[1+q],b,M,0,L);break;case +1:var +j=s(fdO,b),N=[0,d[1+x],0],O=function(a){return n(gs,d[1+q],[0,e,a])},P=[0,f7(d[1+q],j,O),N],Q=p(l5,d[1+q],j,0,fdP,[0,d[1+t],P]),R=[0,g$(e)],a=qQ(d[1+q],b,R,0,Q);break;default:h=1}if(h)var +a=e;function +m(a){return fX(n(D(Cz,jW,alx),Cz,a))}var +r=[0,[17,aY(k,C(a),m)]];if(1-d[1+v])adf(d[1+q],d[1+E],a);n(aC,d[1+q],[0,a,[0,r,d[1+w]]]);d[1+z]=0;return 0}function +P(a,b,c){var +i=c[3];if(AZ(c[1])){var +d=i[2][1],g=0;if(d){var +e=d[1],h=0;if(0===e[0]){var +f=e[1][2];if(14===f[0]&&!f[1][1])h=1}if(!h)g=1}if(!g)a[1+u]=1}return n(m(K,a),b,c)}function +Q(a,b){var +c=b[2],e=b[1];switch(c[0]){case +31:l(a[1][1+d],a,e,c[1]);break;case +33:a[1+u]=1;break}return m(m(L,a),[0,e,c])}function +R(a,b){var +c=b[4][2],e=b[1];if(b[3])var +d=A;else +var +f=function(a){return fX(n(D(Cz,jW,a29),Cz,a))},d=[0,[19,aY(e,C(c),f)]];n(aC,a[1+q],[0,c,[0,d,a[1+t]]]);a[1+B]=0;return m(m(N,a),b)}function +S(c,b){var +a=b[4],d=a[2],e=a[1];function +f(a){var +f=a[1],b=qy(a[2],e,tl);return b?n(gs,c[1+q],[0,d,f]):b}aT(c[1+G],f);return m(m(M,c),b)}function +T(a,b){n(a[1][1+g],a,b);var +c=1-a[1+v];if(c){var +d=a[1+z],h=d?a[1+u]:d;if(h){var +i=s(7,a[1+y]),j=m(gU[4],i);n(aC,a[1+q],[0,j,[0,A,a[1+w]]])}var +e=a[1+B];if(e){var +k=a[1+t],l=s(9,a[1+y]),o=[0,m(fY[4],l),k];return n(gs,a[1+q],o)}var +f=e}else +var +f=c;return f}function +U(a,b){return b}function +V(a,b){return b}function +W(a,b){return b}fC(r,[0,i,function(a,b){return b},j,W,k,V,H,U,e,T,f,S,c,R,h,Q,I,P,d,O]);return function(a,b,c,d,e,f,g,h,i,j,k){var +l=fp(b,r);l[1+G]=k;l[1+F]=j;l[1+y]=i;l[1+x]=h;l[1+t]=g;l[1+w]=f;l[1+E]=e;l[1+v]=d;l[1+q]=c;m(J,l);l[1+z]=1;l[1+u]=0;l[1+B]=1;return fH(b,l,r)}}),aRH=function(a,b,c,f,e){var +d=f[9];function +g(a){var +c=a[2],b=0,d=[0,m(fY[3],a)],e=0;function +g(a,b,c){return 0}return[0,a,2,0,m(f[2],g),e,d,c,b]}function +h(a,b,c,d){var +e=0,g=0;function +h(a,b,c){return 0}return[0,a,[2,b],0,m(f[2],h),g,d,c,e]}function +i(g,b,c,d,e){var +k=e[8],h=e[6],i=e[4],j=e[2],a=e[1],r=e[3],l=f9(m(f[9],i),d),p=0;if(1===h[0]){var +x=0,w=h[1];if(0===g[12]||m(f[6],e[4]))x=1;else{var +n=rA(g,C(w));p=1}}if(!p)var +n=h[1];var +q=0;if(typeof +j!=="number"&&3===j[0]){var +o=[0,j[1]];q=1}if(!q)var +o=0;var +s=m(f[8],i),t=[0,[0,l,0],m(f[7],i),s,n,o,a],u=k?k[1]:ir(g,a,1,0,0,0,0,0,[8,a]),v=[1,a,[5,u,t]];if(1-b)aT(c,function(a){return aP6(g,l,a)});return yu(g_(0),r,v)}function +j(l,b,c,d){var +a=d[4],e=d[2],g=d[1],n=d[6],o=d[3],h=r3(m(f[7],a)),p=h[2],q=h[1],r=m(f[8],a),i=m(f[9],a),s=JX(i,b);aT(s,function(a){return aP6(l,a[1],a[2])});var +k=0,t=f9(i,c);if(typeof +e!=="number"&&3===e[0]){var +j=[0,e[1]];k=1}if(!k)var +j=0;var +u=n[1],v=x(aJ0(t),p,r,g,[0,q],j,u),w=[1,g,[5,yr(g),v]];return yu(g_(0),o,w)}function +k(a){return a[6][1]}function +o(a){var +c=a[1],b=m(f[7],a[4]);return b?b[1][2]:m(fL,c)}function +q(c,b){var +g=b[6],r=b[5],d=b[2],j=b[1],ab=b[7],ac=b[4];if(r)var +y=r[1],ad=0===y[0]?y[1][1]:y[1][1],t=ad;else +var +t=g6;var +h=s(30,t),K=0;if(typeof +d==="number")switch(d){case +1:var +u=1;break;case +2:var +u=6;break;default:K=1}else +switch(d[0]){case +0:var +u=2;break;case +1:var +u=3;break;default:K=1}if(K)var +u=0;var +ae=Cq(c,u),aa=0,af=n(f[10],c,ac);if(typeof +d!=="number"&&1>=d[0]){var +H=fZ(c,aj(fd3,h));if(0===g[0])var +x=fZ(c,aj(fd4,h));else +var +aJ=aj(89,h),x=m(fY[4],aJ);var +Y=fZ(c,h),L=0;if(typeof +d==="number")L=1;else +switch(d[0]){case +0:var +J=fd6,I=fd7;break;case +1:var +J=fd8,I=fd9;break;default:L=1}if(L)var +Z=X(fd5),J=Z[2],I=Z[1];var +_=p(l5,c,h,0,[0,I],[0,H,[0,Y,[0,x,0]]]),aF=[0,g$(_)],aG=qQ(c,C(g[1])[2],aF,0,_);n(gs,c,[0,g[1],aG]);var +$=p(l5,c,h,0,[0,J],[0,H,[0,Y,[0,x,0]]]),aH=[0,g$($)],aI=qQ(c,C(g[1])[2],aH,0,$);n(gs,c,[0,aI,g[1]]);var +w=x,v=H;aa=1}if(!aa)var +ag=[1,aj(fdS,h),fdR],w=ag,v=[1,aj(fdU,h),fdT];if(r){var +z=r[1];if(0===z[0])var +M=z[1],N=M[2],ah=N[2],ai=N[1],ak=M[1],al=1,E=al,B=function(a){return[0,[0,[0,ak,[0,a,ah]]]]},A=ai;else +var +G=z[1],az=0,aA=function(a){if(a){var +b=a[1][2],c=0;switch(b[0]){case +22:if(!a[2]){var +d=b[1][1];c=1}break;case +31:var +e=b[1][1];if(e&&!a[2]){var +d=e[1];c=1}break}if(c)return[0,[1,d]]}return X(fd2)},E=az,B=aA,A=[0,[0,G[1],[31,[0,[0,G],0,G[1]]]],0]}else +var +aB=1,aD=0,E=aB,aE=0,B=function(a){return aD},A=aE;if(0===g[0])var +e=g[1],O=1;else +var +e=g[1],O=0;var +P=n(a[17],c,A),am=B(P);if(E){var +i=iG(e);if(typeof +d==="number")if(1===d)var +ar=fJ(fdW,i),as=p(l5,c,ar,0,fdX,[0,m(fY[2],i),0]),q=0,o=as,k=[1,0,[0,[18,j,C(e),0]]];else +var +an=m(fY[2],i),q=0,o=an,k=[0,[18,j,C(e),0]];else +switch(d[0]){case +0:var +at=fJ(fdY,i),au=p(l5,c,at,0,fdZ,[0,v,[0,m(fY[2],i),[0,w,0]]]),q=0,o=au,k=[1,0,[0,[18,j,C(e),0]]];break;case +1:var +av=fJ(fd0,i),aw=p(l5,c,av,0,fd1,[0,v,[0,m(fY[2],i),[0,w,0]]]),q=0,o=aw,k=[1,0,[0,[18,j,C(e),0]]];break;case +2:var +V=d[1],W=l(a[12],0,c,V),ax=W[1][2],q=[0,W],o=ax,k=[0,[23,j,fX(V)]];break;default:var +ay=m(fY[2],i),q=0,o=ay,k=[0,[18,j,C(e),1]]}if(r)var +Q=Py(c,t),R=Q[2],ao=Q[1],ap=[93,k,C(e),[0,o,e]],aq=function(a){return R?n(gs,c,[0,m(fY[2],t),a]):R},S=[0,[0,f7(c,aj(fdV,j),aq),ao,ap]];else{n(aC,c,[0,o,[0,k,e]]);var +S=0}var +F=S,T=q}else +var +F=0,T=0;var +U=pI(fdQ[1],0,c,O,ab,e,v,w,t,d,F);n(D(U,a2f,aTN),U,P);aT(F,function(a){return n(aC,c,[0,a[1],a[3]])});Cq(c,ae);return[0,af,am,T]}return[0,e,g,h,q,i,j,k,o,function(a){return[0,a[1],2,a[3],a[4],a[5],a[6],a[7],a[8]]},d]},u5=function(a,b,c,d){var +e=d[2],f=d[1],w=b?b[1]:0,q=c?c[1]:0;if(!w&&0===a[10]){var +g=s([60,e],f),h=adc(a,e),r=0===h[0]?h[1]:yM(a,f,aOi(a,h[1],g)),x=q?a[4][27][9]:q;if(x){var +i=l(sq,a,g,r),y=0;if(i){var +t=i[1];if(22===t[0]&&!i[2]){var +u=t[1][4],j=B9(a),z=0;if(j&&u){var +k=a[4][27],v=u[1],o=aIj(k,j[1]),p=aIj(k,v);if(0=cF)return r(f,e,b,h,1,function(a){var +h=t(0),n=h[2],c=g1(h[1]);if(1===c[0]){var +d=c[2];if(typeof +d!=="number"&&10===d[0]){var +i=d[1],o=c[1],g=Pi(f),m=0;if(0!==g&&Z(fI(i))>g){var +l=[0,g],k=1;m=1}if(!m)var +l=4,k=[0,0,i];return j([1,aj(l,o),[1,k]],0,n)}}return y(f,e,[lK,e],b)});var +cG=aQ(g,as5);if(0<=cG){if(0>=cG){var +aw=s(feA,e);if(h){var +cI=h[1][2][1];if(cI){if(3=cH)return r(f,e,b,h,1,function(a){var +b=t(0),d=b[2],g=g1(b[1]),c=s(few,e),h=u(f,e);return j(x(is,f,w(c),c,g,5,h),0,d)});if(!q(g,Hr))return r(f,e,b,h,1,function(a){var +b=t(0),d=b[2],g=g1(b[1]),c=s(fev,e),h=u(f,e);return j(x(is,f,w(c),c,g,7,h),0,d)});if(!q(g,aTb))return y(f,e,[gO,e,2],b);if(!q(g,aXT))return y(f,e,[gO,e,3],b);if(!q(g,aZx))return y(f,e,[gO,e,4],b);if(!q(g,aXs))return y(f,e,[gO,e,5],b);if(!q(g,SG))return r(f,e,b,h,1,function(a){var +c=t(0),g=c[2],b=g1(c[1]),h=iG(b),d=s([84,g$(b)],h),i=u(f,e);return j(x(is,f,w(d),d,b,3,i),0,g)})}else{if(!q(g,alX))return F(f,e,b,h,A,4);if(!q(g,afU))return r(f,e,b,h,2,function(a){var +b=t(0),c=b[1],g=b[2],h=ra(c,0),i=ra(c,1),d=s(86,e),k=u(f,e);return j(x(is,f,w(d),d,h,[11,i],k),0,g)});if(!q(g,aS3))return r(f,e,b,h,0,function(a){return j(m(gC(2),e),0,0)});if(!q(g,aiB))return F(f,e,b,h,A,3);if(!q(g,Jd))return r(f,e,b,h,1,function(a){var +b=t(0),d=b[2],g=g1(b[1]),c=s(fez,e),h=u(f,e);return j(x(is,f,w(c),c,g,6,h),0,d)});if(!q(g,aiy))return r(f,e,b,h,1,function(a){var +b=t(0)[1];if(b&&!b[2]){var +d=b[1];if(h){var +c=h[1][2][1];if(c&&!c[2])return F(f,e,c[1],0,A,[1,d])}throw B([0,aL,fey],1)}throw B([0,aL,fex],1)})}}else{var +cL=aQ(g,a0a);if(0<=cL){if(0>=cL)return r(f,e,b,h,0,function(a){return j([13,fJ(29,e)],0,0)});if(!q(g,a2J))return y(f,e,[gO,e,6],b);if(!q(g,lG))return r(f,e,b,h,0,function(a){ay(f,e);return j([25,fJ(18,e),1],0,0)});if(!q(g,ah2))return F(f,e,b,h,A,0);if(!q(g,asO))return F(f,e,b,h,A,1);if(!q(g,apn))return F(f,e,b,h,A,2);if(!q(g,De))return r(f,e,b,h,1,function(a){var +c=t(0),g=c[2],b=g1(c[1]),h=iG(b),d=s([83,g$(b)],h),i=u(f,e);return j(x(is,f,w(d),d,b,2,i),0,g)})}else{if(!q(g,apm))return r(f,e,b,h,2,function(a){var +d=t(0),b=d[1];if(b){var +c=b[2];if(c&&!c[2]){var +h=d[2],i=c[1],k=b[1],g=s(66,e),l=u(f,e);return j(x(is,f,w(g),g,k,[9,[0,i]],l),0,h)}}throw B([0,aL,feF],1)});if(!q(g,It))return r(f,e,b,h,1,function(a){var +b=t(0),d=b[2],g=g1(b[1]),c=s(feE,e),h=u(f,e);return j(x(is,f,w(c),c,g,4,h),0,d)});if(!q(g,q6))return r(f,e,b,h,1,function(a){var +b=t(0),c=b[2],d=[7,[0,0,g1(b[1]),0]];return j([1,fJ(25,e),d],0,c)});if(!q(g,Tk))return r(f,e,b,h,1,function(a){var +b=t(0),d=b[2],c=g1(b[1]);return j([1,s([72,g$(c)],e),[8,c]],0,d)});if(!q(g,qZ))return r(f,e,b,h,0,function(a){ay(f,e);return j([25,fJ(29,e),1],0,0)});if(!q(g,a1I))return r(f,e,b,h,0,function(a){return j([11,fJ(29,e)],0,0)});if(!q(g,a2A))return r(f,e,b,h,0,function(a){return j([12,fJ(29,e)],0,0)})}}}else{var +cM=aQ(g,asC);if(0<=cM){if(0>=cM){L(f,0,[lj,e]);return r(f,e,b,h,2,function(a){var +d=t(0),b=d[1];if(b){var +c=b[2];if(c&&!c[2]){var +h=d[2],i=c[1],k=b[1],g=s(67,e),l=u(f,e);return j(x(is,f,w(g),g,k,[9,[1,i]],l),0,h)}}throw B([0,aL,feL],1)})}var +cN=aQ(g,t6);if(0<=cN){if(0>=cN)return r(f,e,b,h,1,function(a){var +b=t(0),c=b[2],d=[7,[2,g1(b[1]),0]];return j([1,fJ(27,e),d],0,c)});if(!q(g,IU))return r(f,e,b,h,2,function(a){var +d=t(0),b=d[1];if(b){var +c=b[2];if(c&&!c[2]){var +h=d[2],i=c[1],k=b[1],g=s(feH,e),l=u(f,e);return j(x(is,f,w(g),g,k,[6,0,i],l),0,h)}}throw B([0,aL,feG],1)});if(!q(g,aqv))return y(f,e,[gO,e,1],b);if(!q(g,amX))return r(f,e,b,h,1,function(a){var +b=t(0),c=b[2],d=[7,[0,0,g1(b[1]),0]];return j([1,fJ(23,e),d],0,c)});if(!q(g,aV$))return r(f,e,b,h,1,function(a){var +g=t(0),h=g[2],c=g1(g[1]);if(1===c[0]){var +d=c[2];if(typeof +d!=="number"&&13===d[0]){var +i=[2,[0,d[1]]];return j([1,aj(5,c[1]),i],0,h)}}return y(f,e,[lK,e],b)});if(!q(g,aYy))return r(f,e,b,h,1,function(a){var +g=t(0),h=g[2],c=g1(g[1]);if(1===c[0]){var +d=c[2];if(typeof +d!=="number"&&12===d[0]){var +i=[0,[0,0,d[1]]];return j([1,aj(2,c[1]),i],0,h)}}return y(f,e,[lK,e],b)});if(!q(g,agK))return r(f,e,b,h,1,function(a){var +b=t(0),c=b[2];return j(m(bb,g1(b[1])),0,c)})}else{if(!q(g,ajf)){L(f,0,[lj,e]);return r(f,e,b,h,2,function(a){var +d=t(0),b=d[1];if(b){var +c=b[2];if(c&&!c[2]){var +h=d[2],i=c[1],k=b[1],g=s(68,e),l=u(f,e);return j(x(is,f,w(g),g,k,[9,[3,i]],l),0,h)}}throw B([0,aL,feK],1)})}if(!q(g,ahc)){L(f,0,[lj,e]);return r(f,e,b,h,2,function(a){var +d=t(0),b=d[1];if(b){var +c=b[2];if(c&&!c[2]){var +h=d[2],i=c[1],k=b[1],g=s(68,e),l=u(f,e);return j(x(is,f,w(g),g,k,[9,[2,i]],l),0,h)}}throw B([0,aL,feJ],1)})}if(!q(g,aqC))return y(f,e,[gO,e,0],b);if(!q(g,Hn))return r(f,e,b,h,2,function(a){var +h=t(0),c=h[1];if(c){var +d=c[2];if(d){var +i=d[1];if(1===i[0]){var +g=i[2],p=0;if(typeof +g==="number"||!(10===g[0]))p=1;else if(!d[2]){var +l=h[2],m=g[1],n=c[1],k=s(feI,e),o=u(f,e);return j(x(is,f,w(k),k,n,[0,m],o),0,l)}}}}return y(f,e,[55,e],b)});if(!q(g,"$ReactDeepReadOnly"))return r(f,e,b,h,1,function(a){var +b=t(0),d=b[2],g=g1(b[1]),c=s(73,e),h=u(f,e);return j(x(is,f,w(c),c,g,[13,[0,e,2]],h),0,d)});if(!q(g,Ta))return r(f,e,b,h,1,function(a){var +b=t(0),d=b[2],g=g1(b[1]),c=s(73,e),h=u(f,e);return j(x(is,f,w(c),c,g,1,h),0,d)})}}else{var +cO=aQ(g,aiN);if(0<=cO){if(0>=cO)return r(f,e,b,h,1,function(a){if(h){var +d=h[1],g=d[2],i=g[1];if(i){var +k=i[1],m=k[2];if(29===m[0]){var +o=m[1],q=k[1],c=o[1],s=g[2],t=d[1],r=fJ([86,[0,c]],e),u=l(z[6],f,[2,c],r),v=[0,[0,t,[0,[0,[0,[0,q,n(ad,q,c)],[29,o]],0],s]]],w=wu(f);return j(p(z[3],f,u,r,w,0),0,v)}}}return y(f,e,[56,e],b)});if(!q(g,ai$))return F(f,e,b,h,A,5);if(!q(g,agH))return F(f,e,b,h,A,7);if(!q(g,agJ))return F(f,e,b,h,A,6);if(!q(g,RI))return r(f,e,b,h,1,function(a){var +c=t(0),b=c[1];if(b&&!b[2]){var +g=c[2],h=b[1],d=s(69,e),i=u(f,e);return j(x(is,f,w(d),d,h,feO,i),0,g)}throw B([0,aL,feN],1)});if(!q(g,Sm))return r(f,e,b,h,1,function(a){var +b=t(0),c=b[2],d=g1(b[1]);return j([19,s(50,e),d],0,c)});if(!q(g,DT))return r(f,e,b,h,1,function(a){var +b=t(0),d=b[2],g=g1(b[1]),c=s(feM,e),h=u(f,e);return j(x(is,f,w(c),c,g,0,h),0,d)})}else{if(!q(g,am8)){L(f,0,[E,e]);var +cP=t(0),aZ=cP[1];if(!aZ)return y(f,e,[49,e,1],b);var +eI=cP[2],eJ=aZ[2],eK=aZ[1],cQ=s(31,e),eL=u(f,e);return j(x(is,f,w(cQ),cQ,eK,[7,0,eJ],eL),0,eI)}if(!q(g,Ut))return r(f,e,b,h,1,function(a){if(h){var +c=h[1],d=c[2],g=d[1];if(g){var +i=g[1],l=i[2];if(29===l[0]){var +o=l[1],p=i[1],q=o[1],s=d[2],t=c[1],u=n(ad,p,q),r=aHf(q),v=NC(r);return j([1,fJ([60,m(k(feV),v)],e),[15,r]],0,[0,[0,t,[0,[0,[0,[0,p,u],[29,o]],0],s]]])}}}return y(f,e,[57,e],b)});if(!q(g,ahU))return F(f,e,b,h,A,feU);if(!q(g,as1))return F(f,e,b,h,A,feT);if(!q(g,IQ))return r(f,e,b,h,2,function(a){var +d=t(0),b=d[1];if(b){var +c=b[2];if(c&&!c[2]){var +h=d[2],i=c[1],k=b[1],g=s(feS,e),l=u(f,e);return j(x(is,f,w(g),g,k,[6,1,i],l),0,h)}}throw B([0,aL,feR],1)});if(!q(g,IM))return r(f,e,b,h,2,function(a){var +d=t(0),b=d[1];if(b){var +c=b[2];if(c&&!c[2]){var +h=d[2],i=c[1],k=b[1],g=s(feQ,e),l=u(f,e);return j(x(is,f,w(g),g,k,[1,i],l),0,h)}}throw B([0,aL,feP],1)});if(!q(g,aq7))return r(f,e,b,h,1,function(a){var +b=t(0),d=b[2],c=g1(b[1]);return j([7,fJ([62,g$(c)],e),c],0,d)})}}}return cE(0);case +20:var +a1=a[1],eS=a1[3],eT=a1[2],eU=a1[1],eV=s(feZ,e),c1=p(i,f,0,c,d,eU),c2=c1[1][2],a2=p(i,f,0,c,d,eT),c3=a2[1][2],eW=C(c3),eX=[0,[21,C(c2),eW]],c4=a2[2],eY=29===c4[0]?[0,[0,c4[1][1]]]:[1,c3];return[0,[0,e,x(is,f,eX,eV,c2,eY,u(f,e))],[20,[0,c1,a2,eS]]];case +21:return p(aD,f,e,c,d,a[1])[2];case +22:var +c5=a[1],a3=c5[1],eZ=c5[2],e0=a3[3],e1=a3[2],c6=p(i,f,[0,V],c,d,a3[1]),e2=c6[1][2],c7=p(i,f,[0,V],c,d,e1),e3=c7[1][2],c8=p(G,f,[0,V],c,d,e0),e4=c8[2],e5=c8[1],e6=[0,ka(f,e)],e7=o(aG[3],e6,e2,e3,e5);return[0,[0,e,[16,fJ(47,e),e7]],[22,[0,[0,c6,c7,e4],eZ]]];case +23:var +c9=a[1],a4=c9[1],e8=c9[2],e9=a4[3],e_=a4[2],c_=p(i,f,0,c,d,a4[1]),e$=c_[1][2],c$=p(i,f,0,c,d,e_),fa=c$[1][2],da=p(G,f,0,c,d,e9),fb=da[2],fc=l(gr[1],e$,fa,da[1]);return[0,[0,e,[15,fJ(49,e),fc]],[23,[0,[0,c_,c$,fb],e8]]];case +24:var +a5=a[1],db=a5[2],dc=a5[1],fd=a5[3],dd=l(az,f,fe0,dc),fe=dd[2],ff=dd[1],fg=s([31,m(ax,dc)],e);if(db){var +de=db[1],df=de[2],dg=de[1],fh=df[2],fi=df[1];L(f,0,[73,dg,27]);var +dh=[0,[0,dg,[0,p(G,f,0,c,d,fi)[2],fh]]]}else +var +dh=0;return[0,[0,e,l(z[1],f,fg,ff)],[24,[0,fe,dh,fd]]];case +25:var +fj=a[1];L(f,0,[jH,3,e]);var +fk=m(gC(fe1),e);return[0,[0,e,fk],[25,n(D(al,-242888093,zG),al,fj)]];case +26:var +di=x(ac,f,0,c,d,e,a[1]);return[0,[0,e,di[1]],[26,di[2]]];case +27:var +dj=a[1];switch(dj[1][2][0]){case +16:var +a6=fe3;break;case +28:var +a6=fe4;break;default:var +a6=0}L(f,0,[jH,[2,a6],e]);var +fl=m(gC(fe2),e);return[0,[0,e,fl],[27,n(D(al,-397673577,Is),al,dj)]];case +28:var +dk=a[1],fm=dk[2],fn=dk[1],fo=fJ(28,e),dl=fs(fn,fe5,function(a,b){var +g=a[2],h=a[1],e=o(bd,f,c,d,b);return[0,[0,e[1],h],[0,e[2],g]]}),fp=dl[1],fq=U(dl[2]),fr=U(fp);return[0,[0,e,aOI(f,0,u(f,e),is,fo,fr)],[28,[0,fq,fm]]];case +29:return[0,[0,e,n(ad,e,a[1][1])],a];case +30:var +dm=a[1];return[0,[0,e,l(be,e,dm[1],dm[2])],a];case +31:var +dn=a[1];return[0,[0,e,l(bg,e,dn[1],dn[2])],a];case +32:return[0,[0,e,n(bf,e,a[1][1])],a];case +33:L(f,0,[jH,0,e]);return[0,[0,e,m(gC(fe6),e)],a];case +34:L(f,0,[jH,1,e]);return[0,[0,e,m(gC(fe7),e)],a];default:L(f,0,[jH,2,e]);return[0,[0,e,m(gC(fe8),e)],a]}}});h(G,function(a,b,c,d,e){var +g=fe9,f=e;for(;;){var +h=g[2],j=g[1];if(f){var +l=f[2],k=p(i,a,b,c,d,f[1]),g=[0,[0,k[1][2],j],[0,k,h]],f=l;continue}var +m=U(h);return[0,U(j),m]}});h(aI,function(a,b,c){var +d=S(c,o(i,a,0,b,T[7][1]));return[0,S(d,function(a){return a[1][2]}),d]});h(bb,function(a){var +h=0;switch(a[0]){case +1:var +d=a[2],q=0;if(typeof +d==="number"||!(6===d[0]))q=1;else{var +b=d[1],i=a[1];h=1}break;case +2:var +e=a[2],c=e[3];if(typeof +c!=="number"&&4===c[0]){var +l=a[3],m=c[3],n=c[2],o=e[1],p=a[1];return[2,p,[0,o,aj(17,e[2]),[4,fe_,n,m]],l]}break;case +7:var +f=a[2];if(1===f[0]){var +g=f[2],r=0;if(typeof +g==="number"||!(6===g[0]))r=1;else{var +b=g[1],i=f[1];h=1}}break}if(!h)return a;var +j=aj(17,i),k=typeof +b[1][3]==="number"?0:b[1][3];return[1,j,[6,[0,[0,0,0,k],b[2],b[3],b[4],b[5]]]]});h(I,function(a,b,c){var +d=a?a[1]:1;return function(a){if(0===a[0]){var +e=a[1],f=e[2],g=e[1],h=P$([0,d],b,f[1],g);return[0,h,[0,[0,[0,g,h],f]]]}var +i=a[1],j=i[2],l=j[2],p=i[1],q=o(I,[0,d],b,c,j[1]),r=l[2],t=l[1],v=q[2],w=q[1],y=r[1],A=m(Q,a),B=s([60,n(k(fe$),c,A)],t),C=[0,[20,s([25,[0,m(Q,a)]],p)]],u=x(z[4],b,C,B,0,[0,y],w);return[0,u,[1,[0,p,[0,v,[0,[0,t,u],r]]]]]}});h(az,function(c,b){return function(a){if(0===a[0]){var +e=a[1],f=e[2],g=e[1],h=P$(ffa,c,f[1],g);return[0,h,[0,[0,[0,g,h],f]]]}var +i=a[1],j=i[2],o=j[2],p=i[1],q=l(az,c,b,j[1]),r=o[2],t=o[1],u=q[2],v=q[1],w=r[1],y=m(ax,a),A=s([60,n(k(ffb),b,y)],t),B=[0,[20,s([25,[0,m(ax,a)]],p)]],d=x(z[4],c,B,A,0,[0,w],v);return[0,d,[1,[0,[0,p,d],[0,u,[0,[0,t,d],r]]]]]}});h(ac,function(a,b,c,d,e,f){var +h=f[4],u=f[3],v=f[1],m=p(i,a,ffc,c,d,f[2]),o=m[1],g=o[2],r=a[4][38],w=o[1],t=r||aNf(a,a[4][39]);if(t)a[1][31]=[0,[0,w,h,b,g],a[1][31]];var +j=fv(0,C(g));switch(h){case +0:var +k=[98,j];break;case +1:var +k=[99,j];break;default:var +k=[hZ,j]}var +x=s(k,e),q=C(g);n(aC,a,[0,g,[0,[0,[36,q]],rD(a,q,0,ffd)]]);switch(h){case +0:var +l=0;break;case +1:var +l=1;break;default:var +l=2}return[0,Ot(x,l,g),[0,v,m,u,h]]});var +aZ=[9,qH(54)],a0=[8,qH(55)],a1=[0,0,Y[1],0,0,0],a2=[1,0,Y[1]];function +aR(a){var +b=a[2],c=a[1];if(0===c&&m(Y[2],b))return 0;return[0,[1,c,b]]}function +aS(a,b){return b[4]?ffe:[0,[0,b[1],b[2],b[3],b[4],[0,a,b[5]]]]}function +an(a,b){var +c=b[5],d=b[4],e=b[3],f=m(a,b[2]);return[0,b[1],f,e,d,c]}function +aV(h,b,c,d,e,f,g){var +j=c?0===e?1:0:c;if(aPX(h)){var +k=[0,ka(h,b),0];Pn(h,k,f);var +a=k}else +var +a=hw(h,f);var +l=S(d,function(a){return uV(h,a)}),m=e?[0,e[1]]:j?0:1,n=[6,F6([0,[0,0,0,m]],0,l,a,g)],i=[1,fJ(18,b),n];return j?[7,fJ(ffi,b),i]:i}h(bc,function(g,j,c,d,e,f){var +Z=[0,a1,0],G=M(function(a,b){var +d=a[1],f=a[2],e=function(a){switch(a[0]){case +0:var +ai=a[1],e=ai[2],x=ai[1],f=e[1],I=e[2];if(0===I[0]){var +q=e[7],J=e[6],K=e[3],M=I[1],N=function(h,b){var +n=p(i,g,0,j,c,M),a=n[1][2];function +o(a){var +d=e[8],g=e[7],i=e[6],j=e[5],k=e[4],l=e[3],m=[0,n];switch(f[0]){case +0:var +c=[0,[0,[0,h,a],f[1][2]]];break;case +1:var +c=[1,[0,[0,h,a],f[1][2]]];break;case +3:var +c=[3,[0,[0,h,a],[0,b,f[1][2][2]]]];break;default:var +c=iB(ffj)}return[0,c,m,l,k,j,i,g,d]}if(af(b,xr)&&!J&&!K&&0===q){var +r=s(53,M[1]),t=l(z[7],g,r,a),w=l(z[1],g,r,t),m=d[4]?ffg:d[5]?ffh:[0,[0,d[1],d[2],d[3],[0,w],d[5]]],x=0===m[0]?m[1]:(L(g,0,[73,h,m[1]]),d);return[0,x,o(t)]}var +k=K?io(0,0,a):a,u=J?aaK([0,b],[0,h],k):wg([0,b],H(g,q),0,[0,h],k),v=o(k);return[0,an(u,d),v]};switch(f[0]){case +1:var +P=f[1],t=P[2][1],m=P[1],av=0;if(q&&!(2<=q[1][2][1])){L(g,0,[61,m]);var +b=[0,d,n(D(al,DM,aXl),al,[0,m,e])[2]]}else +av=1;if(av)var +b=NU(t)?N(m,Vh(t)):(L(g,0,[60,m,RJ,abc(t)]),[0,d,n(D(al,DM,SS),al,[0,m,e])[2]]);break;case +0:case +3:var +O=f[1],b=N(O[1],O[2][1]);break;default:var +Q=f[1][1];L(g,0,[60,Q,RJ,0]);var +b=[0,d,n(D(al,DM,QL),al,[0,Q,e])[2]]}}else if(3===f[0]){var +u=e[2],R=f[1],v=R[2],T=v[1],r=R[1];if(2===u[0]){var +Z=u[1];L(g,0,[ju,Z[1]]);var +_=o(w,g,j,c,Z),aB=_[2],$=aJW(_[1]),aC=[0,[3,[0,[0,r,$],v]],[2,aB],e[3],e[4],e[5],e[6],e[7],e[8]],aD=[0,r],aE=[0,T],b=[0,an(function(a){return aJC(aE,aD,$,a)},d),aC]}else{var +U=u[1];L(g,0,[ju,U[1]]);var +V=o(w,g,j,c,U),ax=V[2],W=aJX(V[1]),ay=[0,[3,[0,[0,r,W],v]],[1,ax],e[3],e[4],e[5],e[6],e[7],e[8]],az=[0,r],aA=[0,T],b=[0,an(function(a){return aJB(aA,az,W,a)},d),ay]}}else{L(g,0,[73,x,3]);var +b=[0,d,n(D(al,DM,343),al,[0,x,e])[2]]}return[0,b[1],[0,[0,x,b[2]]]];case +1:var +aj=a[1],ak=aj[2],aU=ak[2],aV=aj[1],am=p(i,g,0,j,c,ak[1]),aW=am[1][2],G=aR(d),aX=[1,[0,aV,[0,am,aU]]],aw=G?[0,G[1],d[3]]:d[3];return[0,[0,0,Y[1],[0,[0,aW],aw],d[4],d[5]],aX];case +2:var +ao=a[1],k=ao[2],ap=ao[1],ad=k[5],ae=k[1],aK=k[6],aL=k[4],aM=k[3],ag=p(i,g,0,j,c,k[2]),aN=ag[1][2],ah=p(i,g,0,j,c,aM),aO=ah[1][2],aQ=H(g,ad),aT=[0,S(ae,ab),aN,aO,aQ],aP=[0,ae,ag,ah,aL,ad,aK],y=d[1]?fff:[0,[0,[0,aT],d[2],d[3],d[4],d[5]]],aY=0===y[0]?y[1]:(L(g,0,[73,ap,y[1]]),d);return[0,aY,[2,[0,ap,aP]]];case +3:var +aq=a[1],A=aq[2],B=aq[1],aa=A[1],aF=A[3],aG=A[2],aH=aa[1],ac=o(w,g,j,c,[0,B,aa[2]]),aI=[0,[0,aH,ac[2][2]],aG,aF],C=aS(ac[1],d),aZ=0===C[0]?C[1]:(L(g,0,[73,B,C[1]]),d);return[0,aZ,[3,[0,B,aI]]];case +4:var +ar=a[1],h=ar[2],E=ar[1],as=h[1][2][1],a0=h[3],a1=h[2];if(af(as,aJ)){var +at=p(i,g,0,j,c,a1),au=at[1][2],a2=a0?io(0,0,au):au,F=aS(a2,d),a3=0===F[0]?F[1]:(L(g,0,[73,E,F[1]]),d);return[0,a3,[4,[0,E,[0,h[1],at,h[3],h[4],h[5],h[6]]]]]}L(g,0,[73,E,[0,as,0]]);return[0,d,n(D(al,I_,344),al,a)];default:return X(ffk)}}(b);return[0,e[1],[0,e[2],f]]},Z,f),a=G[1],F=a[4],_=G[2],I=F?F[1]:a[5]?a0:aZ,$=a[5],E=aR(a);if(E)var +b=[0,E[1],a[3]];else +var +q=a[3],b=q?[0,q[1],q[2]]:[0,a2,0];var +r=b[1],V=0;if(0!==r[0]&&!b[2]){var +O=r[2],P=r[1],B=jk(function(a){return aV(g,d,e,[0,a],P,O,I)},$);if(B){var +C=B[2],Q=B[1];if(C)var +aj=C[2],ak=C[1],am=fJ(ffm,d),R=[15,am,l(gr[1],Q,ak,aj)];else +var +R=Q;var +T=R}else +var +T=aV(g,d,e,0,P,O,I);var +J=T;V=1}if(!V){var +h=s(18,d),k=b[2],m=b[1],aa=[1,e];if(0===m[0])var +ac=m[1],v=0,u=K(k,function(a){return 0===a[0]?[1,a[1]]:[0,[0,h,a[2],ru,a[1],0]]}),t=ac;else{var +W=0;if(k){var +N=k[1],ad=m[2],ae=m[1];if(0===N[0]){var +ag=k[2],ah=N[1],ai=[0,h,ad,ru,ae,0],v=[0,ai],u=K(ag,function(a){return 0===a[0]?[1,a[1]]:[0,[0,h,a[2],ru,a[1],0]]}),t=ah;W=1}}if(!W)var +y=X(ffl),v=y[3],u=y[2],t=y[1]}var +J=x(is,g,A,h,t,[4,aa,u,v],g_(0))}return[0,J,U(_)]});h(bd,function(a,b,c,d){var +f=d[2],e=d[1];switch(f[0]){case +0:var +j=p(i,a,0,b,c,f[1]),z=j[1][2];return[0,[0,mx(0,0,0,s(ffn,e),z),0],[0,e,[0,j]]];case +1:var +g=f[1],h=g[4],k=g[3],l=g[1],m=p(i,a,0,b,c,g[2]),n=m[1][2],o=h?io(0,0,n):n,q=l[2],r=[0,q[1]],A=[0,e,[1,[0,[0,[0,l[1],o],q],m,k,h]]],B=s([9,r],e);return[0,[0,[0,B,r,o,H(a,k),h],0],A];default:var +t=f[1],u=t[1],v=p(i,a,0,b,c,t[2]),w=v[1][2];if(u)var +x=u[1],y=[0,[0,[0,x[1],w],x[2]]];else +var +y=0;return[0,[1,w],[0,e,[2,[0,y,v]]]]}});h(aK,function(f,b,c){var +d=c[1],g=c[2],a=b[2][3];return aT(a,function(a){var +b=a[2][1][2][1];if(b){var +c=b[1],e=c[2][1],h=c[1][1];if(af(e,d)){var +i=s([92,d],g);return fO(f,[65,i,s([35,[0,e]],h)])}}return 0})});h(aM,function(a,b,c){var +d=c[1],f=b[2],g=f[3],l=c[2],m=f[2],h=p1(m,function(a){var +b=a[2][1];return b?q(b[1][2][1],d):1});if(h){if(g)var +i=g[1][2][1][2][1],k=i?q(i[1][2][1],d):1,j=k;else +var +j=1;var +e=j}else +var +e=h;return e?L(a,0,[68,s([92,d],l)]):e});h(aN,function(f,b,c){var +d=c[2],e=c[1],a=s9(b,function(a){var +b=a[1];if(b){var +c=a[2];if(af(b[1],e))return[0,c]}return 0});return aT(a,function(a){return n(aC,f,[0,d,[0,[0,[35,C(d),e]],a]])})});h(ai,function(a,b,c,d,e,f,g,h){var +j=f[2][1],o=f[1],k=p(i,a,0,b,c,g),n=k[1][2],q=m(k3[2],e);l(aN,a,d,[0,j,n]);return[0,q,[0,e,[0,0,[0,f,[0,k]],h]],[0,[1,[0,o,j],n]]]});h(aA,function(a,b,c,d,e,f,g){if(0===g[0]){var +s=p(i,b,0,c,d,g[1]);return[0,s[1][2],[0,s],0]}var +k=g[1],h=k[1],o=k[2];if(!o[1]){var +t=o[2],u=t[2];if(u){var +q=t[1],v=q[2][1],w=q[1],z=o[3],A=u[1];if(0===a){l(aK,b,e,[0,v,w]);l(aM,b,e,[0,v,w]);var +r=fU(ai,b,c,d,f,h,q,A,z);return[0,r[1],[1,r[2]],r[3]]}var +B=m(k3[2],h),C=n(D(al,-889910624,aXb),al,g);switch(a){case +0:var +j=fem;break;case +1:var +j=fen;break;case +2:var +j=feo;break;default:var +j=fep}L(b,0,[71,h,j]);return[0,B,C,0]}}var +x=k[2];L(b,0,[73,h,24]);var +y=[1,n(D(al,-609241504,aVb),al,[0,h,x])];return[0,m(gC(ffo),h),y,0]});h(P,function(a,g,c,d,e,f){var +r=f[2],k=o(J,g,[0,c],[0,d],f[1]),h=k[2],b=r[2],E=k[3],F=k[1],v=b[4],w=b[3],x=b[2],y=b[1],z=r[1];function +A(a,b,c){return[0,[0,z,[0,c,a,b,v]]]}var +B=m(t[2],A),C=M(function(a,b){var +c=b[2],j=c[3],k=c[1],l=b[1],e=p(i,g,0,h,d,c[2]),f=e[1][2],m=[0,f,[0,l,[0,S(k,function(a){return[0,[0,a[1],f],a[2]]}),e,j]]];return n(t[3],m,a)},B,x),D=s_(w,C,function(a,b){var +e=b[2],f=e[1],c=f[2],l=e[2],m=c[3],o=c[1],q=f[1],r=b[1],j=p(i,g,0,h,d,c[2]),k=j[1][2],s=[0,k,[0,r,[0,[0,q,[0,S(o,function(a){return[0,[0,a[1],k],a[2]]}),j,m]],l]]];return n(t[4],s,a)}),j=s_(y,D,function(a,b){var +c=b[2],e=c[1],j=c[2],k=e[1],l=b[1],f=p(i,g,0,h,d,e[2]);return n(t[5],[0,f[1][2],[0,l,[0,[0,k,f],j]]],a)}),q=hW(0,0,0,n(t[10],g,j)),G=f[3],l=ap(aA,a,g,h,d,q,m(t[7],j),G),s=l[3],u=l[1],H=l[2],I=s?[3,s[1]]:0,K=fJ(29,e);return[0,[0,K,I,F,j,0,[0,u],iG(u),0],[0,E,q,H,0]]});h(ak,function(a,b,c,d,e){if(!e)return[0,fZ(a,d),0];var +f=p(i,a,0,b,c,e[1]);return[0,f[1][2],[0,f]]});h(aO,function(a,b,c,d){if(0===d[0]){var +g=d[1],e=0===a[12]?fZ(a,c):rA(a,c);return[0,[1,e],[0,[0,g,e]]]}var +f=l(j,a,b,d[1]);return[0,[0,f[1]],[1,f[2]]]});h(am,function(a,b,c,d,e){switch(e[0]){case +0:var +t=e[1],i=0===a[12]?fZ(a,d):rA(a,d);return[0,[1,i],[0,[0,t,i]],0];case +1:var +k=l(j,a,b,e[1]);return[0,[0,k[1]],[1,k[2]],0];default:var +f=e[1],o=f[2],g=o[2];if(!g[1]){var +r=g[2],s=r[2];if(s){var +u=f[1],h=fU(ai,a,b,T[7][1],c,o[1],r[1],s[1],g[3]);return[0,[0,h[1]],[2,[0,u,h[2]]],h[3]]}}var +p=n(D(al,715256174,a0l),al,f),q=p[2][1];L(a,0,[73,q,24]);return[0,[0,m(gC(ffp),q)],[2,p],0]}});h(aP,function(a,b,c,d,e,f,g){if(0===g[0]){var +j=g[1];if(e){var +h=m(fY[3],d),i=f?p(l5,a,fJ(ffq,d[2]),0,ffr,[0,h,0]):h;return[0,[1,i],[0,[0,j,i]],0]}}return p(am,a,b,c,d,g)});h(j,function(a,b,c){var +e=c[2],f=c[1],g=n(T[7][27],f,a[13][1][1]),h=e[2],l=0;if(19===h[0]){var +j=h[1][1];if(0===j[0]&&n(aU[3],[0,j[1][2][1]],b)){var +d=p(i,a,0,b,T[7][1],e);l=1}}if(!l)if(g){var +o=g[1][2];iq(a,0,0,0,[O,function(a){var +b=gY(0,f);return[0,m(k(ffs),b),0]}]);var +d=o}else +var +d=p(i,a,0,b,T[7][1],e);return[0,d[1][2],[0,f,d]]});h(w,function(a,b,c,d){var +e=d[1],f=p(i,a,0,b,c,[0,e,[12,d[2]]]),g=f[2];if(12===g[0])return[0,f[1][2],[0,e,g[1]]];throw B([0,aL,fft],1)});h(ad,function(a,b){return[1,fJ([1,[0,b]],a),[10,[0,b]]]});h(be,function(a,b,c){return[1,fJ([2,c],a),[12,[0,b,c]]]});h(bf,function(a,b){return[1,fJ([4,b],a),[13,b]]});h(bg,function(a,b,c){return[1,fJ([3,c],a),[14,[0,b,c]]]});h(ae,function(a,b,c,d,e,f){var +g=f[2],h=f[1],i=c[2];if(g){var +j=g[1],k=j[2],m=k[2],n=j[1],l=p(G,a,0,d,e,k[1]),o=[0,[0,n,[0,l[2],m]]];return[0,F_(0,i,h,l[1]),o]}var +q=mv(i,c),r=b?8:6;return[0,p(z[2],a,[0,r],q,0,h),0]});h(R,function(a,b,c,d,e){var +f=e[2],g=e[1],q=n(T[7][27],g,a[13][1][15]);if(q)return q[1];var +r=f[5],s=f[4],t=f[3],k=f[2],j=f[1],h=j[2][1],i=fJ([25,[0,h]],j[1]),u=H(a,s);if(t&&!d){L(a,0,[jH,4,g]);var +M=m(gC(ffv),g);return[0,n(D(al,a4a,348),al,[0,g,f]),[0,i,[0,h],M,u,0,0],M]}if(0===k[0])var +O=k[1],v=[1,aj(6,i),ffu],w=[0,[0,O,v]],o=v;else +var +F=k[1],G=F[1],I=p(ak,a,b,c,i,[0,F[2]]),J=I[2],K=I[1],S=J?[1,[0,G,J[1]]]:[0,[0,G,K]],w=S,o=K;if(r){var +x=p(ak,a,b,c,i,[0,r[1]]),y=x[1],P=x[2];l(z[9],a,y,o);var +B=P,A=[0,y]}else +var +B=0,A=0;var +N=0;if(d&&n(aU[3],[0,h],b)){var +Q=m(aU[35],b),C=adC([0,h],m(ic[32],Q));N=1}if(!N)var +C=[0,h];var +E=[0,i,C,o,u,A,0],R=wy(a,function(a){return a},E);return[0,[0,g,[0,[0,j[1],j[2]],w,t,s,B]],E,R]});h(J,function(f,b,c,d){var +g=b?b[1]:aU[1],k=c?c[1]:T[7][1];function +l(a,b){var +e=a[3],g=a[2],i=a[4],j=a[1],c=p(R,f,g,k,0,[0,b[1],b[2]]),d=c[2],h=d[2],l=c[3],m=[0,c[1],i],n=hY(f,0,0,e,d[3]),q=o(aU[31],0,h,n,e);return[0,[0,d,j],o(aU[31],0,h,l,g),q,m]}if(!d)return[0,0,g,0];var +h=d[1],i=h[2],j=h[1],m=i[2],a=M(l,[0,0,g,aU[1],0],i[1]),n=a[2],q=a[1],r=[0,[0,j,[0,U(a[4]),m]]],e=U(q),s=e?[0,[0,j,[0,e[1],e[2]]]]:0;return[0,s,n,r]});h(bh,function(a,b,c){return af(b,kq)?m(fY[2],c):u1(ffw,a,0,[0,b],c)});h(aB,function(a,b,c,d){var +e=d[2],g=e[2],f=d[1],q=e[3],h=o(I,[0,1],a,ffx,e[1]),i=h[1],r=h[2];if(g)var +j=g[1],k=j[2],s=k[2],t=j[1],l=p(G,a,0,b,c,k[1]),n=[0,[0,t,[0,l[2],s]]],m=[0,f,i,[0,l[1]]];else +var +n=0,m=[0,f,i,0];return[0,m,[0,f,[0,r,n,q]]]});h(ag,function(g,aH,c,d,e,f){var +b=[0,f,0],a=M(function(a,b){var +r=a[2],f=a[1];switch(b[0]){case +0:var +O=b[1],e=O[2],Q=e[6],B=e[4],E=e[3],s=e[2],u=e[1],h=O[1],aI=e[7],aK=e[5],aL=E?Q:E;if(aL)L(g,0,[72,h,1]);var +C=0,aM=H(g,aI);if(Q)if(3===u[0]){var +aa=u[1],ac=aa[2],ad=ac[1],J=aa[1],N=0;if(0===s[0]){var +ae=s[1],ag=ae[2];if(12===ag[0]){var +aU=ag[1],aV=ae[1],ah=q(ad,ig)?0:1,ai=x(P,ah,g,c,d,h,aU),aj=ai[1],aX=ai[2],ak=o(aW[6],g,0,aH,aj),aF=0,aY=0;if(!B&&1===ah){var +am=m(v[9],[0,J]);aF=1}if(!aF)var +am=o(v[21],B,ad,J,aY);var +aZ=[0,h,[0,[3,[0,[0,J,ak],ac]],[0,[0,[0,aV,ak],[12,aX]]],e[3],e[4],e[5],e[6],e[7],e[8]]],z=aZ,y=o(am,aj,0,0,f)}else +N=1}else +N=1;if(N){L(g,0,[72,h,0]);var +z=n(D(al,DM,aWH),al,[0,h,e]),y=f}}else +C=1;else if(3===u[0]){var +an=u[1],ao=an[2],ap=an[1],a0=ao[1];if(0===s[0])var +aq=p(i,g,0,c,d,s[1]),ar=aq[1][2],as=E?io(0,0,ar):ar,a1=aK?v[14]:m(v[10],B),a2=[0,h,[0,[3,[0,[0,ap,as],ao]],[0,aq],e[3],e[4],e[5],e[6],e[7],e[8]]],z=a2,y=p(a1,a0,ap,aM,[0,as],f);else +C=1}else +C=1;if(C)if(3===u[0]){var +T=u[1],F=T[2],U=F[1],A=T[1];if(2===s[0]){var +Y=s[1],aQ=Y[2],aR=Y[1];L(g,0,[ju,h]);var +Z=x(P,3,g,c,d,h,aQ),G=Z[1],aS=Z[2];if(G[3])var +_=m(gC(ffy),A);else{var +I=m(t[7],G[4]),aG=0;if(I&&!I[2]){var +$=I[1][2];aG=1}if(!aG)var +$=m(gC(ffz),A);var +_=$}var +aT=[0,h,[0,[3,[0,[0,A,_],F]],[2,[0,aR,aS]],e[3],e[4],e[5],e[6],e[7],e[8]]],z=aT,y=fU(v[24],B,U,A,0,G,0,0,f)}else{var +V=s[1],aN=V[2],aO=V[1];L(g,0,[ju,h]);var +W=x(P,2,g,c,d,h,aN),X=W[1],aP=[0,h,[0,[3,[0,[0,A,X[6][1]],F]],[1,[0,aO,W[2]]],e[3],e[4],e[5],e[6],e[7],e[8]]],z=aP,y=fU(v[23],B,U,A,0,X,0,0,f)}}else{var +R=u[1][1];L(g,0,[73,R,23]);var +z=n(D(al,DM,349),al,[0,R,e]),y=f}return[0,y,[0,[0,z],r]];case +1:L(g,0,[72,b[1][1],8]);return[0,f,[0,n(D(al,I_,aYi),al,b),r]];case +2:var +K=b[1],at=K[1];if(n(v[12],K[2][4],f)){L(g,0,[73,at,17]);return[0,f,[0,n(D(al,I_,aY7),al,b),r]]}var +j=K[2],a3=j[5],a4=j[4],a5=j[3],a6=j[1],au=p(i,g,0,c,d,j[2]),a7=au[1][2],av=p(i,g,0,c,d,a5),a8=av[1][2],a9=H(g,a3),a_=[0,S(a6,ab),a7,a8,a9],a$=[0,[2,[0,at,[0,j[1],au,av,j[4],j[5],j[6]]]],r];return[0,l(v[11],a4,a_,f),a$];case +3:var +aw=b[1],M=aw[2],ax=M[2],ba=M[3],bb=aw[1],ay=o(w,g,c,d,M[1]),bc=[0,[3,[0,bb,[0,ay[2],ax,ba]]],r];return[0,l(v[22],ax,ay[1],f),bc];case +4:var +az=b[1],k=az[2],aA=az[1],aB=k[4],aC=k[1][2][1],bd=k[3],be=k[2];if(af(aC,aJ)){var +aD=p(i,g,0,c,d,be),aE=aD[1][2],bf=bd?io(0,0,aE):aE,bg=[0,[4,[0,aA,[0,k[1],aD,k[3],k[4],k[5],k[6]]]],r];return[0,l(v[22],aB,bf,f),bg]}L(g,0,[73,aA,[0,aC,aB]]);return[0,f,[0,n(D(al,I_,aVp),al,b),r]];default:L(g,0,[oi,b[1][1],0]);return[0,f,[0,n(D(al,I_,aqn),al,b),r]]}},b,e),h=a[1];return[0,h,U(a[2])]});h(aD,function(a,b,c,d,e){var +f=e[2],g=e[1],m=s([5,f],b),h=g[1],B=g[3],j=p(i,a,0,c,d,g[2]),k=j[1][2],D=C(k),n=h[2];if(21===n[0])var +z=p(aD,a,h[1],c,d,n[1]),q=z[2],l=z[1];else +var +o=p(i,a,0,c,d,h),q=o,l=o[1][2];var +r=C(l),t=j[2],E=[0,[21,r,D]];if(29===t[0])var +y=[0,t[1][1]],G=f?[2,[0,y]]:[0,y],v=G;else +var +v=f?[2,[1,k]]:[1,k];var +w=x(is,a,E,m,l,v,u(a,b)),F=aj(9,r);return[0,w,[0,[0,b,x(is,a,A,m,w,[3,F],g_(0))],[21,[0,[0,q,j,B],f]]]]});h(aE,function(h,b,c,d,e,f,g){if(!adb(h)){var +C=b[2];L(h,0,[73,C,26]);var +R=m(gC(ffB),C),U=n(D(al,akB,a0L),al,g),V=n(D(al,a0E,aZC),al,f);return[0,R,S(e,m(D(al,u9,357),al)),V,U]}var +k=o(J,h,[0,c],0,e),q=k[2],a=f[2],P=k[3],Q=k[1],E=a[3],F=a[2],G=a[1],H=f[1];function +I(a,b){return[0,H,[0,a,b,E]]}var +K=m(N[2],I),M=fs(G,K,function(a,b){var +c=b[2],d=c[1],m=b[1],e=l(j,h,q,c[2]),f=e[1],o=e[2];if(0===d[0])var +g=d[1],i=[0,[0,[0,g[1],f],g[2]]];else +var +k=d[1],i=[1,[0,k[1],k[2]]];return n(N[3],[0,f,[0,m,[0,i,o,c[3]]]],a)}),u=s_(F,M,function(a,b){var +c=b[2],f=c[1],g=b[1],d=p(i,h,0,q,T[7][1],c[2]),e=d[1][2],j=S(f,function(a){return[0,[0,a[1],e],a[2]]});return n(N[4],[0,e,[0,g,[0,j,d,c[3],c[4]]]],a)}),O=n(N[6],h,u);if(0===g[0])var +r=g[1],v=s(60,r),w=Ot(v,0,rD(h,v,0,ffA)),A=[0,[0,r,w]],z=w,y=r;else +var +t=g[1],B=x(ac,h,1,q,T[7][1],t,g[2]),A=[1,t,B[2]],z=B[1],y=t;return[0,l(bo[7],h,b[2],[0,d,b,Q,u,0,z,y]),P,O,A]});function +ao(a,b,c,d,e,f){if(!f)return[0,[0,d,e,0],0];var +g=f[1],h=g[2],j=h[2],k=g[1],i=p(G,a,0,b,c,h[1]);return[0,[0,d,e,[0,i[1]]],[0,[0,k,[0,i[2],j]]]]}function +a3(a,b,c,d){var +h=d[4],e=h[2],i=e[3],j=d[1],k=j[2],n=j[1],s=d[5],t=e[4],u=e[1],w=h[1],y=d[3],z=d[2],p=fZ(a,c),f=o(J,a,0,0,z),g=f[2],A=f[3],B=f[1],C=k[1],D=ka(a,n),q=r3(K(y,l(aB,a,g,T[7][1]))),E=q[2],F=q[1],G=[0,[0,0,F,ll(function(a){return 3===a[0]?1-a[1][2][2]:0},i)]],H=ap(v[6],D,[0,C],b,c,B,g,G),I=m(v[13],H),L=T[7][1],r=x(ag,a,rx(c),g,L,i,I);return[0,r[1],p,[0,[0,[0,n,p],k],A,E,[0,w,[0,u,0,r[2],t]],s]]}function +a4(a,b,c){var +e=c[1],f=e[2],g=f[1],h=e[1],j=c[5],k=c[4],l=c[3],m=c[2],n=s([93,[0,g]],b),d=ap(aE,a,n,aU[1],[0,[0,h,g]],m,l,k),i=d[1];return[0,i,[0,[0,[0,h,i],f],d[2],d[3],d[4],j]]}function +a5(f,b,c,d,e){var +A=e[6],B=e[5],h=e[4],D=e[3],i=D[2],a=e[1],E=a[1],ae=e[7],ah=i[4],ai=i[3],ak=i[1],al=D[1],am=e[2],an=a[2],j=fZ(f,d),k=o(J,f,0,0,am),F=k[2],H=k[1],aq=k[3],L=o(v[27],j,f,d,H),q=L[2],ar=L[1],g=o(aU[31],0,ffD,q,F),as=ka(f,E);if(h)var +M=h[1],r=M[2],N=M[1],at=r[3],au=r[2],O=o(I,[0,0],f,ffE,r[1]),av=O[2],P=ao(f,g,T[7][1],N,O[1],au),R=[0,[0,N,[0,av,P[2],at]]],s=[0,P[1]];else +var +R=0,s=0;var +S=r3(K(B,function(a){var +b=a[2],d=b[1],c=a[1],i=b[3],j=b[2],k=fJ([25,[0,m(Q,d)]],c),e=o(I,[0,0],f,ffC,d),n=e[2],p=l(z[8],f,k,e[1]),h=ao(f,g,T[7][1],c,p,j);return[0,h[1],[0,c,[0,n,h[2],i]]]})),aw=S[2],ax=S[1];if(A)var +U=A[1],V=U[2],ay=V[2],az=V[1],aA=U[1],W=r3(K(az,function(a){var +d=a[2],b=a[1],e=d[2],h=d[1],i=h[2],j=h[1],c=P$(ffF,f,i[1],j);if(e)var +k=e[1],l=k[2],q=l[2],r=k[1],m=p(G,f,0,g,T[7][1],l[1]),o=[0,[0,r,[0,m[2],q]]],n=[0,b,c,[0,m[1]]];else +var +o=0,n=[0,b,c,0];return[0,n,[0,b,[0,[0,[0,j,c],i],o]]]})),Y=[0,[0,aA,[0,W[2],ay]]],X=W[1];else +var +Y=0,X=0;if(s)var +Z=[0,s[1]];else{var +u=af(a[2][1],lG),ab=0,ad=a[1];if(u){var +w=ad[1];if(w){var +aa=um(w[1]);ab=1}else +var +y=0}else +var +y=u;if(!ab)var +aa=y;var +Z=[1,aa]}var +aB=ap(v[6],as,[0,c],b,d,H,F,[1,[0,Z,ax,X,ar,q]]),aC=m(v[13],aB),aD=T[7][1],_=x(ag,f,rx(C(q)),g,aD,ai,aC),t=_[1],aE=_[2],ac=0;if(!m(v[26],t)&&0===h&&0===B){var +aF=aj(59,d),$=n(v[8],aF,t);ac=1}if(!ac)var +$=t;return[0,$,j,[0,[0,[0,E,j],an],aq,[0,al,[0,ak,0,aE,ah]],R,aw,Y,ae]]}function +a6(a,b){return o(i,a,0,b,T[7][1])}function +a7(a,b){return o(G,a,0,b,T[7][1])}function +a8(a,b,c){return o(ac,a,b,c,T[7][1])}function +a9(e,d){var +f=T[7][1];return function(a,b,c){return ao(e,d,f,a,b,c)}}function +bi(a,b){return n(aO,a,b)}function +bj(a,b){return n(j,a,b)}function +bk(a,b,c){return l(aP,a,b,c)}function +bl(a,b){return l(w,a,b,T[7][1])}function +bm(a,b,c){return p(ae,a,0,b,c,T[7][1])}function +bn(a,b){return l(R,a,b,T[7][1])}return[0,v,a6,a7,aI,I,a8,a9,bi,am,bk,bj,bl,bm,bn,function(a,b){return l(J,a,b,[0,T[7][1]])},a3,a5,a4,H,Q,y,ba]},fn6=aaz(kF,Bw,ft),ffG=function(y,b,c,v){var +t=aRK(aRJ,v),b1=[0,at,at];function +am(a){return[0,Y[1],0,0,0]}var +b2=[1,Y[1]];function +bi(a){var +b=a[1];return m(Y[2],b)?0:[0,[1,b]]}function +G(a,b){var +c=b[4],d=b[3],e=b[2];return[0,m(a,b[1]),e,d,c]}function +W(a,b){var +c=bi(b),d=c?[0,c[1],b[2]]:b[2];return[0,Y[1],[0,[0,a],d],b[3],b[4]]}function +aF(f,b,c,d,e){var +q=bi(b);if(q)var +a=[0,q[1],b[2]];else +var +h=b[2],a=h?[0,h[1],h[2]]:[0,b2,0];var +r=a[1];if(0!==r[0]&&!a[2]){var +H=r[1],t=ir(f,c,0,[0,d],0,0,[0,H],0,f9(b[3],e));if(!b[4])return t;var +I=function(a){return kb(f,c,function(a){return n(gs,f,[0,t,a])})},J=m(rE(f,c[2])[2],c);return aez(function(a){return a},I,J)}var +g=a[2],i=a[1];if(0===i[0])var +v=i[1],l=0,k=K(g,function(a){return 0===a[0]?[1,a[1]]:[0,[0,c,a[1],ru,0,0]]}),j=v;else{var +u=0;if(g){var +s=g[1],D=i[1];if(0===s[0]){var +E=g[2],F=s[1],G=[0,c,D,ru,0,0],l=[0,G],k=K(E,function(a){return 0===a[0]?[1,a[1]]:[0,[0,c,a[1],ru,0,0]]}),j=F;u=1}}if(!u)var +p=X(ffI),l=p[3],k=p[2],j=p[1]}var +w=[0,adv(d)],x=0,y=0,z=g0(0),A=[0,k,aY(l,0,function(a){return[0,[1,a],0]}),z,y,x],o=fZ(f,c);n(aC,f,[0,j,[70,[0,[0,c]],c,ffH,[0,w,A],o]]);if(!b[4])return o;var +B=m(rE(f,c[2])[2],c);function +C(a){return o}return aez(function(a){return a},C,B)}function +dg(a){return a[1][2]}function +_(b){return function(a){switch(a[0]){case +0:var +c=a[1];return[0,[0,[0,c[1],b],c[2]]];case +1:var +d=a[1];return[1,[0,[0,d[1],b],d[2]]];case +3:var +e=a[1];return[3,[0,[0,e[1],b],e[2]]];default:return iB(ffJ)}}}function +an(a){switch(a[0]){case +1:var +c=a[1],b=c[2][1],d=c[1];return NU(b)?[0,Vh(b)]:[1,[60,d,aVW,abc(b)]];case +0:case +3:return[0,a[1][2][1]];default:return[1,[60,a[1][1],aVW,0]]}}function +z(a,b,c){var +f=0,e=0,d=c[1],q=c[2];for(;;){if(!d){var +p=U(e);return[0,U(f),[0,p,q]]}var +i=d[2],g=d[1];if(0===g[0]){var +j=l(t[2],a,b,g[1]),f=[0,[1,j[1][2]],f],e=[0,[0,j],e],d=i;continue}var +k=g[1],m=k[1],o=k[2],h=s(41,m),n=ie(a,h),f=[0,[0,[0,h,n]],f],e=[0,[1,[0,[0,m,[0,[0,h,n]]],o]],e],d=i}}function +I(a,b){if(!b)return ffK;var +c=b[1],e=c[1],d=z(a,aU[1],c[2]);return[0,[0,d[1]],[0,[0,e,d[2]]]]}function +b3(a,b){return b?[0,z(a,aU[1],b[1][2])[1]]:0}var +a=T[8],bj=[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19],a[20],a[21],a[22],a[23],a[24],a[25],a[26],a[27],a[28],a[29],a[30],a[31],a[32],a[33],a[34],a[35],a[36]],aE=[];if(!FN[1])pZ(df9,function(b){var +d=fK(b,df$),a=fR(b,df8),e=a[10],c=a[38],f=a[oE],g=a[jH],h=a[sv],i=a[t7],j=fG(b,df_,0,df7,jB,0)[1];function +k(a,b,c){return c}function +o(a,b,c){return c}function +p(a,b,c){return c}function +q(a,b,c){return c}fC(b,[0,c,function(a,b,c){var +f=m(a[1+d][1][4],b);n(a[1][1+e],a,f);return c},i,q,g,p,f,o,h,k]);return function(e){var +f=e[1],g=f[1];return function(a){var +c=fp(a,b);l(j,e[2],c,f[2][1]);c[1+d]=g;return fH(a,c,b)}}},FN);var +be=[0,[0,[0,bj],bj],jB[4]],bX=FN[1],bY=FN[2];h(aE,[0,m(FN[1],be),bY,bX,be]);function +aq(g){function +b(a){if(0===a[0]){var +f=a[1],c=f[2],d=f[1];if(0!==c[0]){var +e=c[1],h=c[2][2],b=m(aE[1],0),i=l(D(b,iL,359),b,n(D(b,Rm,alJ),b,d),h),j=function(a){var +f=0;switch(e[0]){case +0:var +b=e[1][2][2];break;case +3:case +4:var +b=e[1][2][1];break;default:var +c=s(ffL,d);f=1}if(!f)var +c=s([32,[0,b]],d);return fO(g,[k6,a,c])};return m(m(T[8][14],j),i)}}return 0}return function(a){return fV(a,b)}}function +$(a){var +c=a[2],b=0;switch(c[0]){case +5:var +d=c[1],h=d[1][2];if(21===h[0]){var +i=h[1][2];if(0===i[0]){var +e=i[1][2][1],p=0;if(q(e,z5)&&q(e,DH)){if(!q(e,a2i)){var +j=d[3][2][1];if(j&&j[2])b=1}}else +p=1;if(p&&d[3][2][1])b=1}}break;case +7:var +k=c[1],s=k[2],t=$(k[3]);return avR($(s),t);case +20:var +l=c[1],u=l[2],v=$(l[3]);return avR($(u),v);case +25:var +f=c[1][1],m=f[1][2];if(26===m[0]){var +n=m[1][1][2];if(0===n[0]){var +g=n[1][2][1],r=0;if(q(g,z5)&&q(g,DH)){if(!q(g,a2i)){var +o=f[3][2][1];if(o&&o[2])b=1}}else +r=1;if(r&&f[3][2][1])b=1}}break;case +3:b=1;break}return b?0:[0,a,0]}var +F=aRq(ac5,b,eSl),ak=aRH(v,ac5,b,F,fn5),r=aRF(ac5,b,F,ak,fn4),ai=aRv(aM3,c,eSd),bf=[];if(!Hb[1])pZ(fdo,function(e){var +g=fK(e,fdr),h=fK(e,fds),i=fK(e,fdt),a=fR(e,fdm),d=a[qm],c=a[4],f=a[52],j=a[55],k=a[57],l=a[97],o=a[98],p=a[qb],q=a[vk],b=fG(e,0,fdp,fdn,lt,0),r=b[1],s=b[ah],t=b[lf];function +u(a,b){var +c=b[3][2],d=b[1];function +e(a){return fX(n(D(Cz,jW,a1h),Cz,a))}var +f=[0,[17,aY(d,C(c),e)]];return n(aC,a[1+g],[0,c,[0,f,a[1+h]]])}function +v(a,b){var +c=b[2],e=b[1];if(31===c[0])n(a[1][1+d],a,c[1]);return m(m(s,a),[0,e,c])}function +w(c,b){var +a=b[4],d=a[2],e=a[1];function +f(a){var +f=a[1],b=qy(a[2],e,tl);return b?n(gs,c[1+g],[0,d,f]):b}aT(c[1+i],f);return m(m(t,c),b)}function +x(a,b){n(a[1][1+j],a,b);return 0}function +y(a,b){return b}function +z(a,b){return b}function +A(a,b){return b}fC(e,[0,l,function(a,b){return b},o,A,p,z,q,y,c,x,f,w,k,v,d,u]);return function(j){return function(a,b,c,d){var +f=fp(a,e);f[1+i]=d;f[1+h]=c;f[1+g]=b;n(r,j[2],f);return fH(a,f,e)}}},Hb);var +bg=[0,0,lt[4]],bZ=Hb[1],b0=Hb[2];h(bf,[0,m(Hb[1],bg),b0,bZ,bg]);function +bh(e,b,c,d){var +f=d[2],g=d[1],h=n(v[17],e,f[1]),i=Py(e,g),l=i[1];if(i[2]){L(e,0,[oA,b]);var +a=0}else +var +m=[93,A,C(c),[1,b]],a=[0,[0,fZ(e,aj(fdq,b)),l,m]];var +k=[0,h,f[2]],j=o(bf[1],0,e,c,a);n(D(j,a2f,327),j,h);aT(a,function(a){return n(aC,e,[0,a[1],a[3]])});return[0,g,k]}var +aD=aRG(aM3,c,ai,eSc,[0,bh],fn3);function +bk(h,b,c,d,e,f,g){return kb(h,c,function(a){return n(aC,h,[0,e,[19,d,c,f,g,a,rE(h,b)]])})}function +bl(a,b,c,d,e,f,g,h){var +j=e?e[1]:1,i=[0,On(c),f,g,j,h];return[0,d,c,i,rE(a,b)]}function +bm(j,b,c,d,e,f,g,h,i){var +a=e?e[1]:1,k=bl(j,b,c,d,[0,a],g,h,i);return kk(j,c,function(a){return n(aC,j,[0,f,uI(k,a)])})}function +aH(i,b,c,d,e,f,g,h){var +k=f[2],a=f[1],r=f[3],l=d?d[1]:1,t=a[1],m=tC(1,i,a,b[2]);if(m){var +o=m[1];return[0,o,kk(i,b,function(a){return n(aC,i,[0,o,[2,c,b,[0,aa0(2,k,g,h,[0,l],a)],kG]])})]}var +j=[0,r],p=s([41,[0,j]],e),q=PA(i),u=kk(i,b,function(a){var +d=s([41,[0,j]],t),e=F5(g,h,0,[0,l],a);return n(aC,i,[0,k,[4,c,b,d,gM(p,0,j),[0,e,kG,[0,q]]]])});return[0,aOK(p,q),u]}function +w(f,b,c){var +d=b[1];return function(a){var +b=u1(ffM,f,0,[0,d],c),e=g$(b);if(typeof +e!=="number"&&37===e[0]&&ao([0,d],e[1]))return b;if(0===b[0]){var +g=[37,[0,d]];return jD(function(a){return h6(g,a)},b)}var +h=s([37,[0,d]],c);return kb(f,h,l(wD,f,0,b))}(0)}function +bn(a,b,c){var +d=Pi(a);if(0!==d&&Z(c)>d)return[1,fJ([0,d],b),ffN];return[1,fJ(4,b),[1,[0,0,[0,c]]]]}function +ar(a,b,c){return bn(a,b,c[1])}function +aI(a,b){var +c=b[1];return[1,fJ(5,a),[2,[0,c]]]}function +bo(a){return m(i7[2],a)}function +aJ(a,b){var +c=b[2],d=b[1];return[1,fJ(2,a),[0,[0,0,[0,d,c]]]]}function +aK(a,b){var +c=b[2],d=b[1];return[1,fJ(3,a),[3,[0,0,[0,d,c]]]]}function +aM(a,b){return rD(a,fJ(61,b),0,ffO)}function +bp(a,b,c){var +f=c[4],g=c[2],d=J5(c[1],c[3]),e=Qn(a,f,b,d,u5(a,0,0,[0,b,d])),h=p(l5,a,s(ffP,b),0,ffQ,[0,e,0]);return[0,h,[0,c[1],[0,g,e],c[3],c[4],c[5],c[6]]]}function +aN(d,b,c){var +q=c[1],r=q[2],h=r[1],a=q[1],y=c[5],z=c[4],A=c[3],B=c[2],p=n(T[7][27],b,d[13][1][8]);if(p){var +C=p[1];iq(d,0,0,0,[O,function(a){var +c=gY(0,b);return[0,m(k(ffR),c),0]}]);return C}var +D=Ok([0,h],a),i=l(t[15],d,0,B),j=i[2],e=i[1],E=i[3],u=l(t[4],d,j,A),f=u[1],F=u[2],v=l(t[4],d,j,z),g=v[1],G=v[2];if(e){var +H=e[1][2],I=aU[1],w=iC(function(a,b){return o(aU[31],0,b[2],b,a)},I,H),J=2;aT(f,function(a){return P9(d,w,J,a)});var +L=2;aT(g,function(a){return P9(d,w,L,a)})}function +M(a){var +b=a[2],c=a[4],d=a[1];return[0,b,d,n(aU[26],b,j),c]}var +N=K(Op(e),M),P=[0,ka(d,a),f,g,N,h],Q=[1,D,[16,2,[21,s([27,h],a),P]]],x=yu(g_(0),e,Q),R=0;if(f&&g){n(gs,d,[0,f[1],g[1]]);R=1}return[0,x,[0,[0,[0,a,x],r],E,F,G,y]]}function +bq(a){switch(a){case +0:return 0;case +1:return 1;default:return 2}}function +br(h,b,c,d,e,f,g){var +k=wu(h),o=[0,0],a=kb(h,b,function(a){function +p(a,b,c,d){return l(fi[2],a,[0,iI],[0,d,[61,b,c]])}function +q(a,b,c,d){return m(c,l(e_N,a,b,d))}var +i=l(sq,h,b,d);if(i){var +j=i[1];switch(j[0]){case +22:if(!i[2]){var +r=j[1],s=af(f,gF)?aOt(h,P8,p,q,[0,b,e,[0,g,c],k],r):aOu(h,P8,p,q,[0,b,e,f,c,k],r),u=s[2];o[1]=s[1];return n(gs,h,[0,u,a])}break;case +25:if(!i[2]){tz(h,e,j[1],b);return n(gs,h,[0,aPS(h,b,0,j),a])}break}}var +t=[7,k5(ffS,h,d)];L(h,0,[72,b[2],t]);return n(gs,h,[0,m(fL,b),a])});return[0,o[1],a]}function +bs(a,b,c,d,e,f,g,h){return br(a,b,d,e,bq(c),g,h)}function +bt(g,b,c,d,e,f){var +h=wu(g);function +a(a){var +b=l(sq,g,a,e);if(b){var +c=b[1];switch(c[0]){case +22:if(!b[2])return PP(g,0,[0,a,h],c[1]);break;case +25:if(!b[2]){tz(g,2,c[1],a);return aPS(g,a,0,c)}break}}var +d=[7,k5(ffT,g,e)];L(g,0,[72,a[2],d]);return m(fL,a)}switch(c){case +0:return iB(ffU);case +1:var +i=a(b);return GQ(g,P8,hX(f,b),ffV,i);default:return a(s([86,[0,d]],f))}}function +bu(a,b,c,d,e,f,g){return br(a,b,d,e,bq(c),ffW,g)}function +bv(e,b,c,d){var +i=d?0:1;function +y(a,b,c){var +f=u1([0,i],e,0,b,a);if(d){p(y2(e),c,0,a,0,f);return f}var +g=s([25,b],a),h=kb(e,g,function(a){return n(aC,e,[0,f,[68,g,b,a]])});o(afc(e),c,0,[0,a],h);return h}return function(a){if(0===a[0]){var +z=a[1];if(c)var +j=c[1],k=j[1],B=k[2],C=afb(e,s([86,[0,j[2][1]]],k[1]),B),m=function(a,b,c){var +g=s([37,b],a),f=kk(e,g,function(a){return n(aC,e,[0,C,[8,A,g,0,gM(g,0,b),a]])});return d?(p(y2(e),c,0,a,0,f),f):(o(afc(e),c,0,[0,a],f),f)};else +var +m=y;return[0,K(z,function(a){var +b=a[2],c=b[2],d=b[1],e=d[2],f=d[1],g=[0,e[1]],n=a[1];if(c)var +h=c[1],i=h[2],o=i[1],p=h[1],q=[0,o],k=function(a){return[0,[0,[0,p,a],i]]},j=q;else +var +r=0,k=function(a){return r},j=g;var +l=m(f,g,j);return[0,n,[0,[0,[0,f,l],e],k(l)]]})]}var +l=a[1],q=l[2],r=l[1];if(q){var +t=q[1],u=t[2],v=u[1],w=t[1],x=hW(0,0,0,c)[1][2],D=afb(e,s([37,[0,v]],w),x),E=d?0:1;p(y2(e),[0,v],0,b,E,x);return[1,[0,r,[0,[0,[0,w,D],u]]]]}var +g=hW(0,0,0,c)[1][2];n(aC,e,[0,g,[65,s(ffX,b),2]]);if(d){var +h=yD(e),f=h[1];if(0===f[0]){if(!f[1])h[1]=[1,Y[1],[0,[0,b,g],0]]}else +h[1]=[1,f[1],[0,[0,b,g],f[2]]]}else{var +i=yD(e);i[3]=[0,[0,b,g],i[3]]}return[1,[0,r,0]]}}var +e=function +c(a,b){return c.fun(a,b)},bw=function +b(a){return b.fun(a)},f=function +c(a,b){return c.fun(a,b)},aO=function +e(a,b,c,d){return e.fun(a,b,c,d)},as=function +d(a,b,c){return d.fun(a,b,c)},aP=function +d(a,b,c){return d.fun(a,b,c)},au=function +d(a,b,c){return d.fun(a,b,c)},aQ=function +d(a,b,c){return d.fun(a,b,c)},aR=function +d(a,b,c){return d.fun(a,b,c)},aS=function +d(a,b,c){return d.fun(a,b,c)},aV=function +d(a,b,c){return d.fun(a,b,c)},aW=function +c(a,b){return c.fun(a,b)},bx=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},aX=function +e(a,b,c,d){return e.fun(a,b,c,d)},av=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},aa=function +b(a){return b.fun(a)},by=function +c(a,b){return c.fun(a,b)},aZ=function +c(a,b){return c.fun(a,b)},j=function +d(a,b,c){return d.fun(a,b,c)},bz=function +d(a,b,c){return d.fun(a,b,c)},ab=function +c(a,b){return c.fun(a,b)},bA=function +e(a,b,c,d){return e.fun(a,b,c,d)},J=function +d(a,b,c){return d.fun(a,b,c)},u=function +c(a,b){return c.fun(a,b)},ac=function +d(a,b,c){return d.fun(a,b,c)},bB=function +d(a,b,c){return d.fun(a,b,c)},bC=function +d(a,b,c){return d.fun(a,b,c)},a0=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},bD=function +e(a,b,c,d){return e.fun(a,b,c,d)},bE=function +e(a,b,c,d){return e.fun(a,b,c,d)},aw=function +c(a,b){return c.fun(a,b)},N=function +j(a,b,c,d,e,f,g,h,i){return j.fun(a,b,c,d,e,f,g,h,i)},bF=function +e(a,b,c,d){return e.fun(a,b,c,d)},a1=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},bG=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},bH=function +d(a,b,c){return d.fun(a,b,c)},bI=function +d(a,b,c){return d.fun(a,b,c)},E=function +c(a,b){return c.fun(a,b)},a2=function +d(a,b,c){return d.fun(a,b,c)},a3=function +d(a,b,c){return d.fun(a,b,c)},bJ=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},bK=function +c(a,b){return c.fun(a,b)},H=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},ax=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},a4=function +d(a,b,c){return d.fun(a,b,c)},bL=function +c(a,b){return c.fun(a,b)},bM=function +c(a,b){return c.fun(a,b)},ay=function +b(a){return b.fun(a)},bN=function +b(a){return b.fun(a)},a5=function +b(a){return b.fun(a)},a6=function +c(a,b){return c.fun(a,b)},i=function +d(a,b,c){return d.fun(a,b,c)},bO=function +e(a,b,c,d){return e.fun(a,b,c,d)},a7=function +e(a,b,c,d){return e.fun(a,b,c,d)},ad=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},bP=function +j(a,b,c,d,e,f,g,h,i){return j.fun(a,b,c,d,e,f,g,h,i)},Q=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},a8=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},a9=function +e(a,b,c,d){return e.fun(a,b,c,d)},ae=function +j(a,b,c,d,e,f,g,h,i){return j.fun(a,b,c,d,e,f,g,h,i)},a_=function +i(a,b,c,d,e,f,g,h){return i.fun(a,b,c,d,e,f,g,h)},a$=function +f(a,b,c,d,e){return f.fun(a,b,c,d,e)},R=function +g(a,b,c,d,e,f){return g.fun(a,b,c,d,e,f)},az=function +h(a,b,c,d,e,f,g){return h.fun(a,b,c,d,e,f,g)},ba=function +e(a,b,c,d){return e.fun(a,b,c,d)},bQ=function +b(a){return b.fun(a)},bb=function +d(a,b,c){return d.fun(a,b,c)},bR=function +b(a){return b.fun(a)},bS=function +b(a){return b.fun(a)},aA=function +d(a,b,c){return d.fun(a,b,c)},bc=function +e(a,b,c,d){return e.fun(a,b,c,d)};h(e,function(a,b){var +d=b[1],c=n(T[7][27],d,a[13][1][3]);if(!c)return n(bw,a,b);var +e=c[1];iq(a,0,0,0,[O,function(a){var +b=gY(0,d);return[0,m(k(ffY),b),0]}]);return e});h(bw,function(d){function +bj(e,b){var +c=b[2],a=b[3],d=b[1];return[0,K(d,function(a){var +b=a[2],f=a[1],d=p(av,e,c,0,b[1],b[2]);return[0,f,[0,d[1],d[2]]]}),c,a]}function +bk(a,b){var +c=b[1];if(!c)return X(ff0);var +e=c[1],h=b[10],i=e[1],f=m(kh(b[4],b[5]),h),g=p(a$,d,Qa(d,f,i),f,a,b);return[0,g[1],e,[0,a,[26,g[2]]]]}return function(a){var +c=a[2],b=a[1];switch(c[0]){case +0:var +bl=c[1],ds=bl[2];return[0,b,[0,[0,n(f,d,bl[1]),ds]]];case +1:var +bm=c[1];return[0,b,[1,[0,bm[1],bm[2]]]];case +2:var +bn=c[1],bo=bn[1];if(!bo)return X(ff1);var +bp=bo[1],y=bp[1],bq=[0,bp[2][1]],br=BG(bq,y),bw=x(Q,d,b,y,Qa(d,br,y),br,bn),bx=bw[1],dt=bw[2],du=C(bx);aP7(d,[0,[4,[0,s([37,bq],y)],du]],bx,y);return[0,b,[2,dt]];case +3:var +z=c[1];if(!adb(d)){L(d,0,[73,b,26]);return[0,b,[3,n(D(al,apE,a0d),al,z)]]}var +dn=z[7],dp=z[5],V=m(aE[1],0),dq=l(D(V,iL,361),V,m(D(V,a4h,360),V),dp),dr=function(a){return fO(d,[kc,dn,a])};m(m(T[8][14],dr),dq);var +by=z[1],ak=by[2][1],bz=by[1];if(q(ak,Az(ak)))L(d,0,[lc,bz]);var +bA=s([93,[0,ak]],b),bB=o(a9,d,aU[1],bA,z),dv=bB[2],dw=bB[1],dx=Qa(d,bA,bz),bC=n(aD[6],d,dw);return[0,b,[3,l(dv,bC[1],bC[2],dx)]];case +4:var +bD=c[1];return[0,b,[4,[0,bD[1],bD[2]]]];case +5:return a;case +6:var +bE=c[1],bF=bE[1],dy=bF[2][1],dz=bF[1],bG=l(aQ,d,b,bE),bH=bG[1],dA=bG[2],dB=C(bH);aex(d,[0,[4,[0,s([37,[0,dy]],b)],dB]],bH,dz);return[0,b,[6,dA]];case +7:var +bI=c[1],bJ=bI[1],am=bJ[2][1],bK=bJ[1];if(q(am,Az(am)))L(d,0,[lc,bK]);var +bL=l(aR,d,b,bI),bM=bL[1],dC=bL[2],dD=C(bM);aex(d,[0,[4,[0,s([37,[0,am]],b)],dD]],bM,bK);return[0,b,[7,dC]];case +8:return[0,b,[8,l(aA,d,b,c[1])]];case +9:var +k=c[1],bN=k[4],an=k[1],dE=k[3],dF=k[2],ao=function(a,b){var +c=b[1],e=[0,b[2][1]];if(!an)return wI(d,a,e,0,c,1);var +f=an[1],g=G0(ff2,0,d,e,c);return p(y2(d),ff3,0,f,0,g)},dG=vE(function(a){switch(a[0]){case +0:var +b=a[1],c=b[2],f=c[1],g=b[1],T=f[2][1],U=f[1],V=n(e,d,[0,g,[16,c]]);wI(d,0,[0,T],0,U,1);var +h=V[2];return 16===h[0]?[0,[0,g,h[1]]]:iB(ff4);case +1:var +i=a[1],j=i[2],k=i[1],W=n(e,d,[0,k,[10,j]]);ao(ff5,j[1]);var +m=W[2];return 10===m[0]?[1,[0,k,m[1]]]:iB(ff6);case +2:var +o=a[1],q=o[2],r=o[1],X=n(e,d,[0,r,[6,q]]);ao(0,q[1]);var +s=X[2];return 6===s[0]?[2,[0,r,s[1]]]:iB(ff7);case +3:var +u=a[1],v=u[2],w=u[1],Y=n(e,d,[0,w,[7,v]]);ao(0,v[1]);var +x=Y[2];return 7===x[0]?[3,[0,w,x[1]]]:iB(ff8);case +4:var +y=a[1],Z=y[2],_=y[1],$=hW(0,0,0,an),z=l(t[2],d,aU[1],[0,_,Z]),aa=z[1][2];p(y2(d),ff9,0,$,1,aa);return[4,z];case +5:var +A=a[1],B=A[2],C=B[1],D=A[1],ab=C[2][1],ac=C[1],ad=n(e,d,[0,D,[35,B]]);wI(d,0,[0,ab],0,ac,0);var +E=ad[2];return 35===E[0]?[5,[0,D,E[1]]]:iB(ff_);case +6:var +F=a[1],G=F[2],H=G[1],I=F[1],ae=H[2][1],af=H[1],ag=n(e,d,[0,I,[36,G]]);wI(d,0,[0,ae],0,af,0);var +J=ag[2];return 36===J[0]?[6,[0,I,J[1]]]:iB(ff$);case +7:var +K=a[1],L=K[2],M=L[1],N=K[1],ah=M[2][1],ai=M[1],aj=n(e,d,[0,N,[29,L]]);wI(d,0,[0,ah],0,ai,0);var +O=aj[2];return 29===O[0]?[7,[0,N,O[1]]]:iB(fga);default:var +P=a[1],Q=P[2],R=Q[1],S=P[1],ak=R[2][1],al=R[1],am=l(aA,d,S,Q);if(B8(d))wI(d,0,[0,ak],0,al,0);return[8,[0,S,am]]}},dF);if(bN)var +bO=bN[1],bP=bO[2],bR=bO[1],ap=[0,[0,[0,bR,u5(d,0,0,[0,bR,bP[1]])],bP]];else +var +ap=0;var +dH=vE(bv(d,b,ap,1),dE);return[0,b,[9,[0,k[1],dG,dH,ap,k[5]]]];case +10:var +E=c[1],bT=l(bQ,d,b,E);if(bT){var +bU=bT[1],bV=bU[1];if(26===bV[0]){var +dO=bU[2];return[0,b,[10,m(dO,bk(b,bV[1])[3])]]}}var +bW=E[1],dI=E[4],dJ=E[3],dK=bW[2],dL=bW[1],bX=l(t[11],d,aU[1],E[2]),dM=bX[2],dN=bX[1];return[0,b,[10,[0,[0,[0,dL,dN],dK],dM,S(dJ,m(D(al,DU,365),al)),dI]]];case +11:return[0,b,[11,l(au,d,b,c[1])[2]]];case +12:return[0,b,[12,l(aS,d,b,c[1])[2]]];case +13:var +bY=c[1],bZ=bY[1],dP=bY[2],dQ=bZ[1],b0=l(t[2],d,aU[1],bZ[2]),b1=b0[1][2],bi=yD(d),dm=0===bi[1][0]?(bi[1]=[0,[0,b]],1):0;if(dm){var +di=d[11],dj=11,dk=function(a){return u2(d,A,b1,dj,a)};aT(di[5],dk)}var +b2=d[2];n(gs,d,[0,b1,[25,s([86,[0,b2[1]]],[0,[0,b2],g6[2],g6[3]]),dta]]);return[0,b,[13,[0,[0,dQ,b0],dP]]];case +14:return[0,b,[14,l(as,d,b,c[1])[2]]];case +15:return[0,b,[15,aN(d,b,c[1])[2]]];case +16:var +W=c[1],b3=W[1],dR=W[4],dS=W[3],dT=b3[2],dU=b3[1],b4=l(t[11],d,aU[1],W[2]);return[0,b,[16,[0,[0,[0,dU,b4[1]],dT],b4[2],dS,dR]]];case +17:var +aq=c[1],dV=aq[3],dW=aq[2],dX=n(e,d,aq[1]);return[0,b,[17,[0,dX,l(i,d,0,dW),dV]]];case +18:return a;case +19:return[0,b,[19,l(aA,d,b,c[1])]];case +20:var +ar=c[1],at=ar[2],dY=ar[3],dZ=ar[1];if(0===at[0]){var +b5=at[1],F=b5[2],g=b5[1],aj=0;switch(F[0]){case +2:var +b9=F[1],b_=b9[1];if(b_){var +aa=b_[1];aj=1}else{var +ca=BG([1,fge],g),ax=fZ(d,ca),cb=x(Q,d,g,g,ax,ca,b9),d1=cb[2];n(gs,d,[0,cb[1],ax]);var +_=[0,g,[2,d1]],Z=ax,Y=g}break;case +26:var +G=F[1],cc=G[1];if(cc){var +aa=cc[1];aj=1}else{var +d2=G[10],cd=m(kh(G[4],G[5]),d2),ay=fZ(d,cd),ce=p(a$,d,ay,cd,g,G),d3=ce[2];n(gs,d,[0,ce[1],ay]);var +_=[0,g,[26,d3]],Z=ay,Y=g}break;case +3:case +19:var +aa=F[1][1];aj=1;break;default:var +aw=X(fgb),_=aw[3],Z=aw[2],Y=aw[1]}if(aj)var +d0=n(e,d,[0,g,F]),b$=aa[1],_=d0,Z=G0(fgd,0,d,[0,aa[2][1]],b$),Y=b$;var +b8=[0,_],b7=Z,b6=Y}else +var +cf=l(j,0,d,at[1]),cg=cf[1],b8=[1,cf],b7=cg[2],b6=cg[1];p(y2(d),fgc,0,b6,0,b7);return[0,b,[20,[0,dZ,b8,dY]]];case +21:var +r=c[1],ab=r[4],ch=r[3],ci=r[1],d4=r[2];if(ci){var +cj=ci[1],H=cj[2],R=0,d5=n(e,d,[0,cj[1],H]);switch(H[0]){case +37:var +d9=H[1][1],d_=0;aDU(function(a,b,c){return wI(d,0,[0,c[2][1]],0,c[1],ab)},d_,d9);break;case +2:case +26:var +co=H[1][1];if(co){var +aB=co[1];R=2}else +R=1;break;case +3:case +19:case +29:case +35:case +36:var +aB=H[1][1];R=2;break;default:R=1}switch(R){case +1:X(fgf);break;case +2:wI(d,0,[0,aB[2][1]],0,aB[1],ab);break}var +ck=[0,d5]}else +var +ck=0;if(ch)var +cl=ch[1],cm=cl[2],cn=cl[1],d6=cm[1],d7=ab?1:0,az=[0,[0,[0,cn,u5(d,0,[0,d7],[0,cn,d6])],cm]];else +var +az=0;var +d8=vE(bv(d,b,az,ab),d4);return[0,b,[21,[0,ck,d8,az,r[4],r[5]]]];case +22:var +aF=c[1],d$=aF[3],ea=aF[2],cp=l(j,0,d,aF[1]),eb=function(a){var +c=a[1][2],e=aPV(d);d[1][17]=[0,[0,b,c,e],d[1][17]];return 0};fV($(cp),eb);return[0,b,[22,[0,cp,ea,d$]]];case +23:var +I=c[1],cq=I[2],cr=I[1],ec=I[5],ed=I[4],ee=I[3];if(cr){var +aG=cr[1];if(0===aG[0])var +cs=aG[1],ef=cs[1],ct=[0,[0,[0,ef,bj(d,cs[2])]]];else +var +ct=[0,[1,l(j,0,d,aG[1])]];var +cu=ct}else +var +cu=0;var +eg=cq?[0,l(i,d,0,cq[1])]:0,eh=n(e,d,ed);return[0,b,[23,[0,cu,eg,S(ee,n(j,0,d)),eh,ec]]];case +24:var +J=c[1],ac=J[1],ei=J[5],ej=J[4],ek=J[3],el=J[2],em=s(fgg,b),aH=function(a){return l(i,d,0,el)},be=0;if(0===ac[0]){var +cv=ac[1],aI=cv[2],aJ=aI[1];if(aJ){var +cw=aJ[1],cx=cw[2];if(!cx[2]&&!aJ[2]){var +cy=aI[2],eo=aI[3],ep=cx[1],eq=cw[1],er=cv[1],es=aH(0),ad=es,aK=[0,[0,er,[0,[0,[0,eq,[0,p(av,d,cy,[0,im[2]],ep,0)[1],0]],0],cy,eo]]];be=1}}}else{var +cz=ac[1],cA=cz[2];if(2===cA[0]){var +aM=cA[1],aP=aM[2],cB=aM[1],cC=cB[2],cD=cC[1],ae=cz[1],et=aM[3],eu=cB[1],ev=aH(0),M=m(im[2],ae),ew=C(M);Cs(d,[0,[4,[0,s([37,[0,cD]],ae)],ew]],cD,M,ae);var +ex=0===aP[0]?[0,[0,aP[1],M]]:n(D(Cx,Du,aSM),Cx,aP),ad=ev,aK=[1,[0,[0,ae,M],[2,[0,[0,[0,eu,M],cC],ex,et]]]];be=1}}if(!be){var +en=aH(0);fO(d,[72,b,3]);var +ad=en,aK=n(D(al,-776433853,aZB),al,ac)}n(aC,d,[0,ad[1][2],[29,em]]);return[0,b,[24,[0,aK,ad,n(e,d,ek),ej,ei]]];case +25:var +N=c[1],cE=N[4],h=N[1],bf=0,ey=N[5],ez=N[3],eA=N[2];if(0===h[0]){var +aV=h[1][2][1];if(aV){var +cF=aV[1][2][1][2];if(2===cF[0]&&!aV[2]){var +aW=[37,[0,cF[1][1][2][1]]];bf=1}}}else{var +cR=h[1][2];if(2===cR[0]){var +aW=[37,[0,cR[1][1][2][1]]];bf=1}}if(!bf)var +aW=fgh;var +eB=s(aW,b),aX=function(a){var +b=l(i,d,0,eA),c=b[1][2],e=o(aO,d,c,eB,cE);return[0,qQ(d,iG(c),0,0,e),b]},bg=0;if(0===h[0]){var +cG=h[1],aY=cG[2],aZ=aY[1];if(aZ){var +cH=aZ[1],cI=cH[2];if(!cI[2]&&!aZ[2]){var +cJ=aY[2],eD=aY[3],eE=cI[1],eF=cH[1],eG=cG[1],cK=aX(0),eH=cK[2],eI=cK[1],eJ=0,eK=0,a1=eH,a0=[0,[0,eG,[0,[0,[0,eF,[0,p(av,d,cJ,[0,function(a){return eI}],eE,eJ)[1],0]],eK],cJ,eD]]];bg=1}}}else{var +cL=h[1],cM=cL[2];if(2===cM[0]){var +a2=cM[1],a3=a2[2],cN=a2[1],cO=cN[2],cP=cO[1],a4=cL[1],eL=a2[3],eM=cN[1],cQ=aX(0),O=cQ[1],eN=cQ[2],eO=C(O);Cs(d,[0,[4,[0,s([37,[0,cP]],a4)],eO]],cP,O,a4);var +eP=0===a3[0]?[0,[0,a3[1],O]]:[1,n(D(al,Da,a08),al,a3[1])],a1=eN,a0=[1,[0,[0,a4,O],[2,[0,[0,[0,eM,O],cO],eP,eL]]]];bg=1}}if(!bg){var +eC=aX(0)[2];fO(d,[72,b,4]);var +a1=eC,a0=n(D(al,-721647627,368),al,h)}return[0,b,[25,[0,a0,a1,n(e,d,ez),cE,ey]]];case +26:return bk(b,c[1])[3];case +27:var +af=c[1],eQ=af[4],eR=af[3],eS=af[2],eT=l(i,d,0,af[1]),eU=n(e,d,eS);return[0,b,[27,[0,eT,eU,S(eR,function(a){var +b=a[2],c=b[2],f=a[1];return[0,f,[0,n(e,d,b[1]),c]]}),eQ]]];case +28:var +P=c[1],cS=P[4],cT=P[3],cU=P[2],u=P[1],cV=cU[2],v=cV[1],cW=cU[1],eV=P[5],eW=2<=u?1:0,ag=u5(d,0,[0,eW],[0,cW,v]),eX=[0,[0,cW,ag],cV];if(cS){var +a5=cS[1];if(0===a5[0])var +eY=a5[1],cX=[0,[0,K(eY,function(a){var +b=a[3],c=a[2],e=a[1],f=b[2],g=b[1],k=f[1],h=f9(c,b)[2][1],l=s([54,v,h],b[1]),i=bs(d,l,f9(e,u),v,ag,g,k,h),j=i[2],m=i[1],n=[0,[0,g,j],f];return[0,e,S(c,function(a){var +b=a[2];return[0,[0,a[1],j],[0,b[1],b[2]]]}),n,m]})]];else{var +c4=a5[1],c5=c4[2],c6=c5[2],a7=c6[1],a8=c5[1],eZ=c4[1];switch(u){case +0:var +a_=[55,a7];break;case +1:var +a_=[56,a7];break;default:var +a_=[57,a7]}var +cX=[0,[1,[0,eZ,[0,[0,a8,bt(d,s(a_,a8),u,v,ag,a8)],c6]]]]}var +cY=cX}else +var +cY=0;if(cT)var +cZ=cT[1][1],c0=cZ[2],c1=c0[1],a6=cZ[1],c2=bu(d,s([58,c1,v],a6),u,v,ag,a6,c1),c3=[0,[0,[0,[0,a6,c2[2]],c0],c2[1]]];else +var +c3=0;return[0,b,[28,[0,u,eX,c3,cY,eV]]];case +29:return[0,b,[29,l(au,d,b,c[1])[2]]];case +30:var +ba=c[1],e0=ba[3],e1=ba[1];return[0,b,[30,[0,e1,n(e,d,ba[2]),e0]]];case +31:var +bb=c[1],c7=bb[1],e2=bb[3],e3=bb[2];if(c7)var +c8=l(j,0,d,c7[1]),c_=[0,c8],c9=c8[1][2];else +var +c_=0,c9=m(fY[2],b);return[0,b,[31,[0,c_,e3,[0,e2,c9]]]];case +32:var +ah=c[1],w=ah[1],e4=ah[4],e5=ah[3],e6=ah[2],c$=l(j,0,d,w),bc=fZ(d,s(fgi,b)),da=fs(e6,fgm,function(a,b){var +c=b[2],e=c[1],g=b[1],x=a[2],u=c[3],v=c[2],y=a[1];if(e){var +j=e[1],k=w[2],t=0;if(21===k[0]){var +h=k[1],r=h[1],D=r[2],E=w[1];if(h1(m(wH(1),r))){var +o=[0,E,[21,[0,[0,g,D],h[2],h[3]]]];t=1}}if(!t)var +o=w;var +z=s(fgj,j[1]),p=l(i,d,[0,z,s(fgk,w[1])],[0,g,[4,[0,2,o,j,0]]])[2];if(4!==p[0])throw B([0,aL,fgl],1);var +q=[0,p[1][3]]}else +var +q=0;var +A=n(f,d,v),C=x||i3(e);return[0,[0,[0,g,[0,q,A,u]],y],C]}),e7=da[2],db=U(da[1]),e8=m(bS,db),dc=c$[1][2];if(e7)var +dd=0;else +var +de=m(wH(1),w),dl=de?aJj(de[1]):e$p,bh=aet(0,d,b,s(dl,b)),e9=0===bh[0]?[0,bh[1]]:0,dd=e9;n(aC,d,[0,dc,[89,C(dc),e8,bc,dd]]);mz(0,d,bc);return[0,b,[32,[0,c$,db,e5,[0,e4,bc]]]];case +33:var +df=c[1],e_=df[2];return[0,b,[33,[0,l(j,0,d,df[1]),e_]]];case +34:var +ai=c[1],dg=ai[1],dh=dg[2],e$=ai[4],fa=ai[3],fb=ai[2],fc=dg[1],fd=n(f,d,dh[1]),fe=S(fb,function(a){var +g=a[2],p=g[3],q=g[2],b=q[2],r=q[1],u=g[1],L=a[1];if(u){var +v=u[1],h=v[1],w=v[2];if(2===w[0]){var +i=w[1],c=i[2],x=i[1],C=i[3],E=x[2],F=x[1],j=s(ffZ,h);if(0===c[0])var +G=c[1],y=aNm(d)?m(h7[3],j):m(f_(0),j),k=[0,[0,G,y]],e=y;else{var +z=c[1],A=z[2],I=A[1];if(1f){if(2<=f){var +B=p(a0,e,c,b,h,g),D=m(B,h),E=D[1][2],F=m(B,g),G=F[1][2],Y=fv(0,C(G)),Z=fv(0,C(E));n(aC,e,[0,E,[35,s([19,x0(f),Z,Y],b),c,0,G]]);return[0,m(k3[2],b),[0,f,D,F,a]]}var +H=p(a0,e,c,b,h,g),I=m(H,h),J=I[1][2],K=m(H,g),L=K[1][2],_=fv(0,C(L)),$=fv(0,C(J));n(aC,e,[0,J,[36,s([19,x0(f),$,_],b),0,L]]);return[0,m(k3[2],b),[0,f,I,K,a]]}if(20<=f){if(21<=f){var +M=l(j,0,e,h),k=l(j,0,e,g),o=k[1],N=o[2];n(aC,e,[0,N,[30,s(fhn,o[1])]]);return[0,m(k3[2],b),[0,f,M,k,a]]}var +O=h[1],P=g[1],q=l(j,0,e,h),Q=q[1][2],r=l(j,0,e,g),R=r[1][2],S=s(fho,O),T=s(fhp,P);n(aC,e,[0,Q,[27,S]]);n(aC,e,[0,R,[28,T]]);return[0,m(k3[2],b),[0,f,q,r,a]]}if(8<=f){var +t=l(j,0,e,h),u=t[1][2],v=l(j,0,e,g),w=v[1][2],U=fv(0,C(w)),i=s([19,fhq,fv(0,C(u)),U],b),V=[0,f,t,v,a];return[0,kb(e,i,function(a){var +b=fX(g),c=[0,[3,i,fX(h),b]];return n(aC,e,[0,u,[24,c,i,0,w,a,m(ym[1],f)]])}),V]}var +x=l(j,0,e,h),y=x[1][2],z=l(j,0,e,g),A=z[1][2],W=fv(0,C(A)),X=fv(0,C(y));n(aC,e,[0,y,[25,s([19,x0(f),X,W],b),0,A]]);return[0,m(k3[2],b),[0,f,x,z,a]]});h(bE,function(e,b,c,d){var +g=d[4],f=d[3],a=d[2];switch(d[1]){case +0:l(bb,e,a,f);var +h=l(i,e,0,a),k=h[1][2],o=tD(function(a){return l(j,c,e,f)}),p=o[1],F=p[1][2],q=o[2]?m(gU[2],b):F,G=g$(q),r=s([20,fhr,g$(k),G],b),H=[0,0,h,p,g];return[0,kk(e,r,function(a){return n(aC,e,[0,k,[38,r,q,a]])}),H];case +1:var +t=l(i,e,0,a),u=t[1][2],v=tD(function(a){return l(j,c,e,f)}),w=v[1],I=w[1][2],x=v[2]?m(gU[2],b):I,J=g$(x),y=s([20,fhs,g$(u),J],b),K=[0,1,t,w,g];return[0,kk(e,y,function(a){return n(aC,e,[0,u,[37,y,x,a]])}),K];default:var +z=l(j,0,e,a),A=z[1][2],B=tD(function(a){return l(j,0,e,f)}),C=B[1],L=C[1][2],D=B[2]?m(gU[2],b):L,M=g$(D),E=s([20,fht,g$(A),M],b),N=[0,2,z,C,g];return[0,kk(e,E,function(a){return n(aC,e,[0,A,[39,E,D,a]])}),N]}});h(aw,function(a,b){var +c=b[2],d=b[1];switch(c[0]){case +2:var +e=c[1],f=e[2],g=e[1],h=g[2],i=g[1],q=e[3],k=w(a,h,i);if(0===f[0])var +r=f[1],m=[0,[0,r,[25,qH(aaU(2)),2]]];else +var +m=[1,n(D(al,Da,aqb),al,f[1])];return[0,[0,d,k],[2,[0,[0,[0,i,k],h],m,q]]];case +3:var +o=c[1];if(21===o[2][0]){var +p=l(j,0,a,o);return[0,[0,d,p[1][2]],[3,p]]}break}fO(a,[hq,d]);return l(D(al,293013072,389),al,0,b)});h(N,function(k,b,c,d,e,f,g,h,i){var +B=b?b[1]:0;function +r(a,b){if(1===B&&!h){var +c=s(76,e);return[77,c,a,b,m(h7[2],e)]}return b}function +t(a){if(B&&!h){var +c=l(J,0,k,a);return[0,c[1],c[3]]}var +b=l(j,0,k,a);return[0,b[1][2],b]}var +a=i[1],C=a[2],D=a[1];if(28===C[0]){var +Z=i[2],aA=C[1];if(0===Z[0]){var +_=Z[1],$=_[2],aa=$[1],A=_[1],aB=i[3],ac=s([40,[0,aa]],e),ad=[0,aa],ae=s([41,[0,ad]],A),af=n(ab,k,D),p=fZ(k,ae),aD=n(c,ac,s(fv(0,f),A));n(aC,k,[0,af,[6,aD,ac,gM(ae,0,ad),h,1,d,[0,p]]]);return[0,[0,e,p],n(g,[0,[0,[0,D,af],[28,aA]],[0,[0,[0,A,p],$]],aB],p)]}}var +o=i[2];switch(o[0]){case +0:var +E=o[1],F=E[2],u=F[1],v=E[1],aj=i[3],ak=aPW(k),ag=0;if(31===a[2][0]&&6===ak){var +G=0;ag=1}if(!ag)var +G=1;var +al=fX(a),H=t(a),I=H[2],am=H[1],M=s([40,[0,u]],e),N=[0,u],O=s([41,[0,N]],v),x=fZ(k,O),ao=n(c,M,s(fv(0,f),v));n(aC,k,[0,am,r(al,[6,ao,M,gM(O,0,N),h,G,d,[0,x]])]);var +K=I[2],ah=0;if(9===K[0]){var +L=K[1],an=L[1][1];if(!q(L[2][1],le)&&!q(u,gK)&&!aev(k,an)){var +w=d;ah=1}}if(!ah)var +w=x;return[0,[0,e,w],n(g,[0,I,[0,[0,[0,v,w],F]],aj],x)];case +1:var +P=o[1],y=P[2][1],Q=P[1],ap=i[3],aq=fX(a),R=t(a),S=R[2],ar=R[1],as=aPW(k),ai=0;if(31===S[2][0]&&6===as){var +T=0;ai=1}if(!ai)var +T=1;var +U=s([40,[0,y]],e),at=GX(k),z=fZ(k,s([42,y],Q));n(aC,k,[0,ar,r(aq,[7,n(c,U,s(fv(0,f),Q)),U,y,h,at,0,T,d,[0,z]])]);return[0,[0,e,z],n(g,[0,S,o,ap],z)];default:var +V=o[1],au=i[3],av=V[1],W=s(fhu,e),aw=fX(a),X=t(a),ax=X[2],ay=X[1],Y=l(j,0,k,V),az=Y[1][2];n(aC,k,[0,ay,r(aw,[11,n(c,W,s(fv(0,f),av)),W,az,h,d,0])]);return[0,[0,e,d],n(g,[0,ax,[2,Y],au],d)]}});h(bF,function(a,b,c,d){var +f=l(j,0,a,d),e=f[1][2],g=c[2],q=0;if(3===g[0]){var +i=g[1],k=i[2];if(21===k[0]){var +r=k[1],s=i[1],t=c[1],u=Bq(c),v=function(a,b){return[0,[30,a,b,fX(d)]]},m=js(N,a,0,v,e,t,u,function(a,b){return[21,a]},1,r),n=m[1],p=n[2],h=[0,[0,n[1],p],[3,[0,[0,s,p],m[2]]]];q=1}}if(!q)var +h=o(y[6],a,e,d,c);return[0,e,h,f]});h(a1,function(h,b,c,d,e,f,g){return kb(h,b,function(a){return n(aC,h,[0,e,[24,[0,[3,b,c,d]],b,0,f,a,g]])})});h(bG,function(f,b,c,d,e){var +g=s([60,EX(d)],b),q=fX(e);function +h(a){var +b=c[2],i=c[1];switch(b[0]){case +2:var +d=b[1][1],e=d[2][1],g=d[1];return Cs(f,[0,[4,[0,s([37,[0,e]],g)],q]],e,a,g);case +3:var +h=b[1][2];if(21===h[0]){var +j=h[1],k=Bq(c),l=function(a,b){return[0,[31,a,b]]};js(N,f,0,l,a,i,k,function(a,b){return[21,a]},1,j);return 0}break}return 0}if(12>d){var +F=n(aw,f,c),G=F[1][2],H=l(j,0,f,e),Q=H[1][2],R=m(ym[2],d);h(ap(a1,f,g,Bq(c),q,G,Q,R));return[0,G,F,H]}var +a=n(aw,f,c),r=a[1][2],k=c[2],t=c[1],p=0;switch(k[0]){case +2:var +D=[0,[0,t,[9,k[1][1]]]];break;case +3:var +E=k[1][2];if(21===E[0])var +D=[0,[0,t,[21,E[1]]]];else +p=1;break;default:p=1}var +u=p?0:D;if(!u){var +P=tD(function(a){return l(j,0,f,e)})[1];return[0,m(fL,g),a,P]}var +o=u[1];if(12<=d)switch(d+apU|0){case +0:var +v=tD(function(a){return l(j,0,f,e)}),w=v[1],I=w[1][2],J=v[2]?m(gU[2],b):I;h(kk(f,g,function(a){return n(aC,f,[0,r,[39,g,J,a]])}));return[0,r,a,w];case +1:var +x=l(i,f,0,o)[1][2],y=tD(function(a){return l(j,0,f,e)}),z=y[1],K=z[1][2],L=y[2]?m(gU[2],b):K;h(kk(f,g,function(a){return n(aC,f,[0,x,[37,g,L,a]])}));return[0,x,a,z];default:l(bb,f,o,e);var +A=l(i,f,0,o)[1][2],B=tD(function(a){return l(j,0,f,e)}),C=B[1],M=C[1][2],O=B[2]?m(gU[2],b):M;h(kk(f,g,function(a){return n(aC,f,[0,A,[38,g,O,a]])}));return[0,A,a,C]}return iB(fhv)});h(bH,function(a,b,c){var +d=c[3],e=c[2],f=c[1];return e?p(bG,a,b,f,e[1],d):o(bF,a,b,f,d)});h(bI,function(a,b,c){var +e=m(fY[2],b),d=c[2],g=c[1];switch(d[0]){case +9:var +i=d[1],n=i[2][1],o=i[1];Cs(a,[0,[14,fX(c)]],n,e,o);return l(j,0,a,c);case +21:var +p=d[1],q=fX(c),r=function(a,b){return[0,[13,a,b]]};return js(N,a,0,r,e,g,q,function(a,b){return[21,a]},0,p);case +26:var +f=d[1],k=f[3],s=f[2],t=f[1],u=fX(c),v=function(a,b){return[0,[13,a,b]]},w=function(a,b){return[26,[0,a,[0,s,b],k]]},x=k?1:2;return js(N,a,[0,x],v,e,g,u,w,0,t);default:var +h=l(j,0,a,c);fO(a,[pP,b,C(h[1][2])]);return h}});h(E,function(c,b){var +d=b[1],h=b[2],a=n(T[7][27],d,c[13][1][4]);if(a)return a[1];var +e=fs(h,fhw,function(a,b){var +d=a[1],f=a[2],e=n(bL,c,b),g=e[1],h=[0,e[2],f];return[0,aY(g,d,function(a){return[0,a,d]}),h]}),f=e[1],g=U(e[2]);return[0,U(f),[0,d,g]]});h(a2,function(a,b,c){var +f=c[3],g=c[2],h=c[1],d=h[1],j=c[4],k=f[1],l=g?[0,b,d,k]:[0,d,d,d],e=p(bJ,a,h,f,g,l),i=e[1],m=e[4],n=e[3],o=e[2];mz(0,a,i);return[0,i,[0,o,m,n,j]]});h(a3,function(a,b,c){var +e=c[3],f=c[1],j=c[4],k=c[2],l=e[1];if(GE(a))var +d=s(fhx,b),g=x(ad,0,a,d,[0,[20,d]],u1(fhz,a,0,fhy,b),[0,d,fhA]);else +var +g=rD(a,s(fhC,b),0,fhD);var +h=n(E,a,e),o=h[2],p=h[1],i=ap(ax,a,fhB,g,m(i7[2],b),0,p,[0,b,f,l]);mz(0,a,i);return[0,i,[0,f,k,o,j]]});h(bJ,function(f,b,c,d,e){var +a=e[1],x=b[2],i=x[4],k=x[1],au=x[3],av=x[2],aw=b[1],az=S(av,function(a){fO(f,[73,a[1],12]);return n(D(al,-765371871,a4q),al,a)}),N=f[4][24],O=f[4][25],J=B_(f);switch(k[0]){case +0:var +U=k[1],K=U[2],g=K[1],h=U[1],M=0;if(q(g,a16)){if(!q(g,agy)&&O){var +Y=O[1];M=1}}else if(N){var +Y=N[1];M=1}if(M)var +Z=s(35,a),_=rD(f,Z,0,[0,Y]),$=ap(H,f,Z,m(v[12],0),E,g,i,c),u=$[4],t=$[2],o=[0,[0,[0,h,_],K]],r=_;else{var +aA=K[2],aD=J?s([17,[0,g]],a):s([87,[0,[0,g]],0],a);if(af(g,Az(g)))var +L=w(f,[0,g,0],h);else{var +am=s([37,[0,g]],h),P=f[11],C=aes(P[10],h);if(0===C[0]){var +p=C[1],Q=p[3],F=p[1],ai=0,an=p[5],ao=p[4],aq=p[2];if(Q&&Q[1]&&ao&&F)ai=1;var +ak=0;if(ai||!F)ak=1;else +var +at=F[1],R=[0,[0,aP1(0,f,P,h,am,aq,an,0),at]];if(ak)var +R=[1,h];var +G=R}else +var +G=[1,C[1]];if(0===G[0])var +T=G[1],I=T[1],ar=0===I[0]?I[1]:I[1][1],as=T[2],X=[0,[0,qQ(f,h,0,0,ar),as]];else +var +X=0;aT(X,function(a){var +b=a[2],c=a[1];return n(aC,f,[0,c,[32,b,s([37,[0,g]],h)]])});var +aG=J?[1,[0,0,[0,g]]]:[10,[0,g]],L=[1,s([37,[0,g]],h),aG]}var +y=ap(H,f,aD,m(v[12],0),E,g,i,c),aE=y[4],aF=y[2],u=aE,t=aF,o=[0,[0,[0,h,L],[0,g,aA]]],r=ap(ax,f,g,L,y[1],i,y[3],e)}break;case +1:var +aH=k[1],aI=m(Og(6),a),aJ=n(D(al,ahp,aUN),al,k),aa=m(bN,aH),aK=s([17,[0,aa]],a),ab=ap(H,f,aK,m(v[12],0),E,aa,i,c),u=ab[4],t=ab[2],o=aJ,r=aI;break;default:var +z=k[1];if(J)var +aL=m(Og(6),a),aM=n(D(al,ahp,a4j),al,k),ac=m(ay,z),aN=s([17,[0,ac]],a),ad=ap(H,f,aN,m(v[12],0),E,ac,i,c),u=ad[4],t=ad[2],o=aM,r=aL;else +var +A=m(ay,z),aO=s([87,[0,[0,A]],0],a),ae=l(j,0,f,m(a5,z)),ag=ae[1],aP=ae[2],aQ=ag[2],aR=ag[1],aS=[37,[0,A]],aU=jD(function(a){return aj(aS,a)},aQ),B=ap(H,f,aO,m(v[12],0),E,A,i,c),aV=B[4],aW=B[2],aX=ap(ax,f,A,aU,B[1],i,B[3],e),ah=n(a6,aR,aP),aY=ah?ah[1]:n(D(al,-603173203,a2O),al,z),u=aV,t=aW,o=[2,aY],r=aX}if(d)var +V=d[1],aB=V[1],W=[0,[0,aB,[0,n(bK,o,V[2][1])]]];else +var +W=0;return[0,r,[0,aw,[0,o,az,au,t]],u,W]});function +d(a,b){return[0,[0,b[1],a[1][2]],b[2]]}function +bT(a,b){var +h=a[2],e=h[1],i=b[2],c=i[1],g=0,j=h[2],k=i[2],l=b[1];if(0===e[0]){var +m=e[1];if(0===c[0])var +f=[0,d(m,c[1])];else +g=1}else{var +o=e[1];if(0===c[0])g=1;else +var +f=[1,bT(o,c[1])]}if(g)var +f=n(D(al,117907793,396),al,c);return[0,l,[0,f,d(j,k)]]}h(bK,function(a,b){switch(a[0]){case +0:var +k=a[1];if(0===b[0])return[0,d(k,b[1])];break;case +1:var +l=a[1];if(1===b[0]){var +f=b[1],c=l[2],e=f[2],g=c[2],h=e[2],i=f[1],j=d(c[1],e[1]);return[1,[0,i,[0,j,d(g,h)]]]}break;default:var +m=a[1];if(2===b[0])return[2,bT(m,b[1])]}return n(D(al,ahp,aWO),al,b)});h(H,function(h,b,c,d,e,f,g){var +j=0===B_(h)?1:0,q=j?77:[16,e],k=aj(q,b),r=[9,k],t=[0,am(0),0],l=M(function(a,b){var +g=a[2],i=a[1];if(0!==b[0]){var +H=b[1],I=H[2],O=I[2],P=H[1],J=n(c,h,I[1]);return[0,W(J[1][2],i),[0,[1,[0,P,[0,J,O]]],g]]}var +k=b[1],l=k[2],o=l[1],j=k[1];if(0!==o[0])return[0,i,g];var +p=l[2],q=o[1],r=q[2],t=r[1],u=q[1],K=r[2];if(p){var +e=p[1];if(0===e[0])var +v=e[1],w=v[2],x=v[1],y=ar(h,x,w),f=[0,[0,[0,[0,x,y],w]]],d=y;else{var +z=e[1],A=z[2],B=A[1];if(B)var +C=B[1],L=A[2],M=z[1],E=n(c,h,[0,C[1],C[2]]),F=E[1][2],f=[0,[1,[0,[0,M,F],[0,[0,E],L]]]],d=F;else +var +N=m(gU[2],j),f=[0,n(D(Cx,341153758,a2U),Cx,e)],d=N}}else +var +f=0,d=[1,s(5,j),fhE];return[0,G(wg([0,t],1,0,[0,u],d),i),[0,[0,[0,j,[0,[0,[0,[0,u,d],[0,t,K]]],f]]],g]]},t,f),a=l[1],u=U(l[2]),o=n(d,h,g),i=o[1],v=o[2],w=i?j?a:G(wg(fhG,1,0,0,kb(h,b,function(a){var +c=fZ(h,aj(fhF,b));return p(P7,h,A,b,i,[1,g0(0),c,a])})),a):a;return[0,aF(h,w,k,0,r),u,i,v]});h(ax,function(h,b,c,d,e,f,g){var +j=g[3],a=g[1],G=g[2],u=rE(h,a),v=B_(h);if(!v){var +i=s([87,[0,[0,b]],0],a),F=K(f,function(a){if(0===a[0])return a[1][3];var +b=a[1];fO(h,[73,j,21]);return m(fL,C(b))}),q=[0,i,ie(h,i)],L=V([0,[0,c],[0,[0,d],0]],K(F,function(a){return[0,a]}));if(GE(h)){var +r=s([41,[0,aRL]],a),M=[0,[26,r,C(c),j]],N=u1(fhK,h,0,fhJ,a),O=0,P=0,Q=0,R=[0,F5(0,V([0,[0,c],[0,[0,d],0]],K(F,function(a){return[0,a]})),Q,P,q),u,O];n(aC,h,[0,N,[4,M,i,r,gM(r,0,aRL),R]])}else{var +t=s(fhL,a),S=[0,[26,t,C(c),j]];n(aC,h,[0,[24,t,3],[2,S,i,[0,o(ys(2,t),0,L,0,q)],u]])}return[0,q]}var +w=v[1],k=w[2],l=w[1],p=s([14,l],a),H=e?d:m(i7[2],G),x=V([0,[0,c],[0,[0,H],0]],K(f,function(a){return 0===a[0]?[0,a[1][3]]:[1,a[1]]})),y=[0,[25,p,C(c)]],z=k[2];if(21===z[0]){var +A=z[1],B=A[2],D=A[1];if(0===B[0]){var +E=B[1],I=E[2][1],J=E[1];return aH(h,p,y,fhI,J,[0,k,o(a4,h,l,D[1],D),I],0,x)[2]}}return bm(h,a,p,y,fhH,o(a4,h,l,a,k),0,x,0)});h(a4,function(d,b,c){return function(a){var +e=a[2];if(9!==e[0])return l(j,0,d,a)[1][2];var +f=e[1][2][1];return u1(fhM,d,[0,[15,b,f]],[0,f],c)}});h(bL,function(a,b){var +d=b[2],c=b[1];switch(d[0]){case +0:var +e=l(a2,a,c,d[1]),w=e[2],x=e[1];return[0,[0,[0,mx(0,0,0,s(33,c),x),0]],[0,c,[0,w]]];case +1:var +f=l(a3,a,c,d[1]),y=f[2],z=f[1];return[0,[0,[0,mx(0,0,0,s(33,c),z),0]],[0,c,[1,y]]];case +2:var +g=d[1],h=g[1],A=g[2];if(h)var +i=l(j,0,a,h[1]),k=i[1],B=k[2],o=[0,i],m=[0,[0,mx(0,0,0,s(33,k[1]),B),0]];else +var +o=0,m=0;return[0,m,[0,c,[2,[0,o,A]]]];case +3:var +p=d[1],C=p[2],q=l(j,0,a,p[1]);return[0,[0,[1,q[1][2]]],[0,c,[3,[0,q,C]]]];default:var +r=d[1],t=r[1],D=r[2],u=n(bM,c,t);if(u)var +E=u[1],v=[0,[0,mx(0,0,0,s(33,c),E),0]];else +var +v=0;return[0,v,[0,c,[4,[0,t,D]]]]}});h(bM,function(a,b){var +c=aHl(lr(a),b);if(!c)return 0;var +d=c[1],e=[1,[0,0,[0,d[2]]]];return[0,[1,s(34,d[1]),e]]});h(ay,function(a){var +c=a[2],d=c[2][2][1],b=c[1];if(0===b[0]){var +e=b[1][2][1];return P(e,P(fhN,d))}var +f=b[1],g=P(fhO,d);return P(m(ay,f),g)});h(bN,function(a){var +b=a[2];return P(b[1][2][1],b[2][2][1])});h(a5,function(a){var +e=a[2],b=e[1],k=a[1];if(0===b[0])var +f=b[1],c=f[2],g=c[1],d=f[1],l=q(g,f0)?[0,d,[9,[0,d,[0,g,c[2]]]]]:[0,d,[31,[0,c[2]]]],h=l;else +var +h=m(a5,b[1]);var +i=e[2],j=i[2];return[0,k,[21,[0,h,[0,[0,i[1],[0,j[1],j[2]]]],0]]]});h(a6,function(o,b){if(21===b[0]){var +d=b[1],e=d[2],f=d[1],a=f[2],g=f[1],h=g[1],p=g[2];if(0===e[0]){var +i=e[1],j=i[2],q=j[2],r=j[1],s=i[1];switch(a[0]){case +9:var +k=a[1],l=k[2],m=k[1],c=[0,[0,[0,[0,m[1],m[2]],[0,l[1],l[2]]]]];break;case +31:var +c=[0,[0,[0,[0,h,p],[0,fhP,a[1][1]]]]];break;default:var +t=n(a6,h,a),c=S(t,function(a){return[1,a]})}var +u=[0,s,[0,r,q]];return S(c,function(a){return[0,o,[0,a,u]]})}}return 0});h(i,function(a,b,c){return l(j,[0,b],a,c)});h(bO,function(a,b,c,d){return[4,c,b,d,GX(a),0]});h(a7,function(a,b,c,d){var +e=d[1],h=d[2],f=g0(0),g=[0,h];return h1(a)?[5,c,b,f,gM(e,0,g)]:[3,c,b,[0,f],gM(e,0,g)]});h(ad,function(a,b,c,d,e,f){var +g=o(a7,a,c,d,[0,f[1],f[2]]);return kk(b,c,function(a){return n(aC,b,[0,e,uI(g,a)])})});h(bP,function(p,b,c,d,e,f,g,h,i){var +r=s([60,m(k(fhQ),g)],b),bn=uB(i),bo=s([41,[0,[0,g]]],d),v=[0,[16,r,s([32,[0,g]],c),bo,bn,1]];function +V(a,b){return kb(p,a,function(a){return n(aC,p,[0,b,[53,gg(function(a){var +b=gc(a);return[60,m(k(fhR),b)]},r),[0,v,a]]])})}function +W(a,b){return kb(p,a,function(a){return n(aC,p,[0,b,[56,r,[0,v,a]]])})}var +a=0;if(q(g,aZY))if(q(g,a0C))if(q(g,agu)){if(q(g,"entries"))if(q(g,Ib)){var +bj=0;if(q(g,aYO)&&q(g,a3w)){if(q(g,me))a=1;else if(!h){var +ab=i[2],y=ab[1];if(y){var +ac=y[1],by=i[1];if(0===ac[0]&&!y[2]){var +bz=ab[2],bA=ac[1],ad=s(25,b),ae=l(j,0,p,bA);return[0,[1,ad,[7,[0,0,W(ad,ae[1][2]),0]]],0,[0,by,[0,[0,[0,ae],0],bz]]]}}}}else +bj=1;if(bj)if(h)a=1;else{var +ag=i[2],A=ag[1];if(A){var +ah=A[1],bB=i[1];if(0===ah[0]&&!A[2]){var +bC=ag[2],bD=ah[1],ai=s(25,b),aj=l(j,0,p,bD);return[0,[1,ai,[7,[0,0,V(ai,aj[1][2]),0]]],0,[0,bB,[0,[0,[0,aj],0],bC]]]}}}}else{var +T=0;if(h){var +ak=h[1][2][1];if(ak&&!ak[2])T=1;else +a=1}else +T=1;if(T){var +al=i[2],B=al[1];if(B){var +am=B[1],bE=i[1];if(0===am[0]){var +an=am[1],ao=an[2];if(24===ao[0]){if(!B[2]){var +ap=ao[1],ar=an[1],bF=al[2],as=S(h,function(a){var +b=a[1];return[0,b,z(p,aU[1],a[2])]}),at=ap[1],bG=ap[2];m(aq(p),at);var +au=o(aX,p,s(fhU,ar),1,at),av=[0,[0,ar,au[1]],[24,[0,au[2],bG]]],bH=av[1][2],bI=s([33,[0,g]],b),bJ=[0,bE,[0,[0,[0,av],0],bF]],bK=S(as,function(a){return[0,a[1],a[2][2]]}),bL=[0,[0,bH],0],bM=function(a){return a[1]},bN=function(a){return a[2]};return[0,aH(p,bI,v,0,d,[0,e,f,g],S(as,function(a){return k1(bN,bM,a)}),bL)[2],bK,bJ]}a=1}else +a=1}else +a=1}else +a=1}}else if(!h){var +aw=i[2],C=aw[1];if(C){var +ax=C[1],bO=i[1];if(0===ax[0]&&!C[2]){var +bP=aw[2],bQ=ax[1],D=s(25,b),ay=l(j,0,p,bQ),az=ay[1][2],aA=V(D,az),aB=W(D,az),E=s(fhV,b),bR=[16,E,o(aG[3],0,aA,aB,0)],bS=[0,mx(fhX,0,0,E,aB),0],bT=[7,[1,0,bR,[0,mx(fhY,0,0,E,aA),bS],fhW]];return[0,[1,D,[7,[0,0,[1,s(28,b),bT],0]]],0,[0,bO,[0,[0,[0,ay],0],bP]]]}}}}else{var +U=0;if(h){var +F=h[1][2][1];if(F&&0===F[1][0]&&!F[2])U=1;else +a=1}else +U=1;if(U){var +aD=i[2],G=aD[1];if(G){var +aE=G[1],bU=i[1];if(0===aE[0]){var +H=G[2];if(H){var +aF=H[1],bV=aE[1];if(0===aF[0]){var +J=aF[1],aI=J[2];if(13===aI[0]){var +K=H[2];if(K){var +aJ=K[1],bW=aI[1][1],bX=J[1];if(0===aJ[0]){if(!K[2]){var +bY=aD[2],bZ=aJ[1];if(h){var +aK=h[1],aL=aK[2],L=aL[1],bk=0;if(L){var +aM=L[1],b0=aK[1];if(0===aM[0]&&!L[2]){var +b6=aL[2],aT=l(t[2],p,aU[1],aM[1]),M=[0,[0,b0,[0,[0,[0,aT],0],b6]]],w=aT[1][2];bk=1}}if(!bk)var +aN=iB(fhZ),M=aN[2],w=aN[1]}else +var +M=0,w=fZ(p,r);var +b1=r[2],b2=Os([0,b1],l(wE,p,fh0,r),[0,w,0]),aO=l(j,0,p,bV),aP=aO[1][2],b3=l(j,0,p,J),aQ=l(j,0,p,bZ),aR=[0,bW],b4=aQ[1][2],aS=s([41,[0,aR]],bX);n(aC,p,[0,b4,[0,v,b2]]);var +b5=[0,fZ(p,aS)];n(aC,p,[0,aP,[6,v,r,gM(aS,0,aR),1,1,w,b5]]);return[0,aP,M,[0,bU,[0,[0,[0,aO],[0,[0,b3],[0,[0,aQ],0]]],bY]]]}a=1}else +a=1}else +a=1}else +a=1}else +a=1}else +a=1}else +a=1}else +a=1}}else if(h)a=1;else{var +aV=i[2],N=aV[1];if(N){var +aY=N[1],b7=i[1];if(0===aY[0]){var +O=N[2];if(O){var +aZ=O[1],b8=aY[1];if(0===aZ[0]){var +a0=aZ[1],a1=a0[2];if(24===a1[0]&&!O[2]){var +a2=a1[1],a3=a2[1],a4=a0[1],b9=aV[2],b_=a2[2];m(aq(p),a3);var +a5=l(j,0,p,b8),a6=a5[1][2],a7=n(aW,p,a3),b$=a7[2],ca=a7[1],cb=l(wE,p,fh1,r),cc=function(c,b){var +e=m(fQ[5],b);if(!e)return fO(p,[72,d,2]);var +g=e[1],a=gg(function(a){var +b=gc(a),d=fI(c);return[60,n(k(fh2),d,b)]},r),f=fZ(p,a);n(aC,p,[0,g,[0,v,Os([0,a[2]],cb,[0,f,0])]]);return n(aC,p,[0,a6,[6,v,a,gM(a,0,c),1,1,f,0]])};m(m(Y[11],cc),ca);return[0,a6,0,[0,b7,[0,[0,[0,a5],[0,[0,[0,[0,a4,m(gC(2),a4)],[24,[0,b$,b_]]]],0]],b9]]]}}}}}}else if(h)a=1;else{var +P=i[2],Q=P[1];if(Q){var +a8=Q[1],a9=i[1];if(0===a8[0]){var +R=Q[2],x=a8[1];if(!R){var +co=P[2],bh=l(j,0,p,x),cp=bh[1][2],bi=s(53,x[1]),cq=[0,a9,[0,[0,[0,bh],0],co]],cr=0;return[0,ir(p,r,0,0,0,0,0,0,kb(p,bi,function(a){return n(aC,p,[0,cp,[49,bi,a]])})),cr,cq]}var +a_=R[1];if(0===a_[0]){var +a$=a_[1],ba=a$[2];if(24===ba[0]&&!R[2]){var +bb=ba[1],bc=bb[1],bd=a$[1],cd=P[2],ce=bb[2];m(aq(p),bc);var +be=l(j,0,p,x),cf=be[1][2],bf=s(53,x[1]),cg=kb(p,bf,function(a){return n(aC,p,[0,cf,[49,bf,a]])}),bg=n(aW,p,bc),ch=bg[2],ci=bg[1],cj=l(wE,p,fh3,r),ck=Y[1],cl=function(e,b,c){var +g=m(fQ[8],b),a=m(fQ[5],b);if(a){var +h=a[1],f=gg(function(a){var +b=gc(a),c=fI(e);return[60,n(k(fh4),c,b)]},r),i=[0,0,g,kb(p,f,function(a){return n(aC,p,[0,h,[0,v,Os([0,f[2]],cj,[0,a,0])]])}),1];return o(Y[31],0,e,i,c)}fO(p,[72,d,2]);return c},cm=l(Y[12],cl,ci,ck),cn=[0,a9,[0,[0,[0,be],[0,[0,[0,[0,bd,m(gC(2),bd)],[24,[0,ch,ce]]]],0]],cd]];return[0,ir(p,r,0,0,0,0,[0,cm],0,cg),0,cn]}}}}}if(a){var +bl=0;if(q(g,aZY)&&q(g,a0C)&&q(g,agu)&&q(g,Ib)&&q(g,aYO)&&q(g,a3w))bl=1;if(!bl&&h){var +$=h[1],bv=$[1],bw=z(p,aU[1],$[2])[2],bm=0,bx=n(u,p,i)[2];if(!af(g,Ib)&&!af(g,agu)){var +aa=0;bm=1}if(!bm)var +aa=1;fO(p,[48,b,0,qH(fhS),aa]);return[0,m(gC(fhT),b),[0,[0,bv,bw]],bx]}}var +X=I(p,h),bp=X[2],bq=X[1],Z=n(u,p,i),br=Z[2],bs=Z[1],_=s([33,[0,g]],b),bt=uB(i),bu=s([41,[0,[0,g]]],d);return[0,aH(p,_,[0,[16,_,s([32,[0,g]],c),bu,bt,1]],0,d,[0,e,f,g],bq,bs)[2],bp,br]});h(Q,function(a,b,c,d,e,f){var +v=n(T[7][27],b,a[13][1][13]);if(v){var +I=v[1];iq(a,0,0,0,[O,function(a){var +b=gY(0,e[2]);return[0,m(k(fh5),b),0]}]);return I}var +j=hX(b,e),J=m(r[37][2],f),p=x(a8,a,c,b,e,aeu(a,b),f),h=p[3],L=p[4],N=p[1],P=n(r[17],0,h),Q=m(m(r[29],a),P),R=n(r[18],0,h),U=m(m(r[29],a),R);l(r[31],a,j,h);l(r[30],a,j,h);l(r[32],a,j,h);var +V=J||1-m(r[37][1],h);if(V)n(r[34],a,h);var +w=f[2][2][1],q=pr(w,function(a){switch(a[0]){case +1:var +b=a[1][2],d=b[1];if(3===d[0]&&!b[4]){var +e=d[1],g=b[2];return[0,[0,N0(e[1],e),g]]}break;case +2:var +c=a[1][2];if(!c[4]){var +f=c[1],h=c[2];return[0,[0,N1(f[1],f),h]]}break}return 0}),y=f9(s9(w,function(a){if(0===a[0]){var +b=a[1][2];if(!b[1]){var +c=b[3][2][3];if(0===c[0])return[0,c[1][2]]}}return 0}),djw),i=K(q,function(a){return a[1]}),z=M(function(a,b){return[0,[0,b,0],a]},rs,i),A=M(function(a,b){return n(mq,uo(b),a)},g2,i),g=n(djv[1],0,A);x(D(g,QI,kc),g,0,g6,z,function(b){n(D(g,-95113309,k6),g,function(a){fo(function(a){var +b=a[2];return typeof +b==="number"?0:l(D(g,-269851548,lE),g,a[1],b[1])},q);l(D(g,vd,lg),g,g6,b);return 0});return b},y);var +Y=aID(m(D(g,-139099098,lc),g),i),B=xO(Y,function(a){var +b=uo(a);return[0,[0,a[1],0],b]}),C=m(D(g,TI,oA),g),E=m(T[7][18],C),F=Wx(E,function(a){var +b=a[1];if(!aIC(a[2]))return 0;var +c=n(D(g,424084271,rI),g,b);return S(c,function(a){return[0,[0,b,1],a]})});function +G(a){var +b=a[2],c=a[1],d=Bm(K(aID(a[3],i),uo));return S(d,function(a){return[0,[0,c,b],a]})}var +H=Wx(m(D(g,-1056943352,vp),g),G);function +s(a,b){return hh(b,a)}function +t(a,b,c){if(s4(djx,c)){var +d=b[2],e=o(fN,[0,s],aG$(c,djy),[0,a,0],d);return[0,b[1],e]}if(!s4(djz,c))return b;var +f=b[2],g=b[1];return[0,o(fN,[0,s],aG$(c,djA),[0,a,0],g),f]}function +u(a,b){return M(function(a,b){return t(b[1],a,b[2])},b,a)}var +X=u(F,u(B,[0,at,at])),W=[0,Q,U,M(function(a,b){var +c=b[2],d=b[1];return iC(function(a,b){return t(d,a,b)},a,c)},X,H)];a[1][13]=[0,W,a[1][13]];return[0,N,m(L,d)]});function +bU(a,b,c,d,e){var +w=o(t[8],a,b,c,d),g=w[1],f=g[1],C=w[2],x=0===d[0]?d[1]:d[1][1];if(typeof +e==="number")if(e)var +E=1,F=[0,f],q=function(a){return E},m=F;else +var +G=0,H=[0,f],q=function(a){return G},m=H;else{var +i=e[1],j=i[2],k=i[1],h=0;switch(j[0]){case +13:var +O=j[1];if(0===g[0])h=1;else +n(gs,a,[0,ar(a,k,O),f]);break;case +14:var +P=j[1];if(0===g[0])h=1;else +n(gs,a,[0,aI(k,P),f]);break;case +16:var +Q=j[1];if(0===g[0])h=1;else +n(gs,a,[0,aJ(k,Q),f]);break;case +17:var +R=j[1];if(0===g[0])h=1;else +n(gs,a,[0,aK(k,R),f]);break;case +18:if(0===g[0])h=1;else +n(gs,a,[0,aM(a,k),f]);break;case +1:case +8:var +l=j[1];if(0===g[0])h=1;else{var +z=l[10],K=a[13],L=i[1];if(1===i[2][0])var +A=0,u=1,r=F4(c[2]);else +var +M=wb(l[3],l[2])?fZ(a,s(39,z)):rx(c),A=[0,L],u=0,r=M;var +B=js(ae,a,xS(1-u,r),1,0,0,at,b,c,l),N=B[1];if(0===a[12])ac_(K,z,B);n(gs,a,[0,p(v[4][5],a,u,A,r,N),f])}break;default:if(0===g[0])h=1;else{fO(a,[76,hX(x,c),0,0]);n(gs,a,[0,[25,c,fh7],f])}}var +y=[0,0],I=function(a){var +b=n(D(al,jW,aqy),al,i);return[0,f9(y[1],b)]},J=function(a){y[1]=[0,hW(0,0,0,a[3])];return 0},q=I,m=[1,o(ak[3],c,i,x,g),J]}var +S=0;if(typeof +e==="number"&&1===g[0]){fO(a,[76,c,0,0]);n(gs,a,[0,[25,c,fh6],f]);S=1}return[0,m,f,C,q]}h(a8,function(q,b,c,d,e,f){var +E=n(T[7][27],c,q[13][1][14]);if(E){var +as=E[1];iq(q,0,0,0,[O,function(a){var +b=gY(0,d[2]);return[0,m(k(fia),b),0]}]);return as}var +N=f[5],v=f[4],P=f[2],Q=P[2],R=f[1],au=f[7],av=f[6],aw=f[3],ax=Q[2],ay=Q[1],az=P[1],aA=K(av,m(D(al,Hl,aU_),al)),y=l(t[15],q,0,aw),V=y[2],W=y[1],aB=y[3],Y=o(r[27],e,q,d,W),Z=Y[2],aD=Y[1],u=o(aU[31],0,fib,Z,V),aE=S(R,function(a){return a[2][1]}),aF=ka(q,b);if(v)var +F=v[1],i=F[2],G=F[1],ak=i[3],am=i[2],an=i[1],H=function(a){var +c=a[2],b=a[1];switch(c[0]){case +2:var +d=c[1],o=d[1],Q=d[3],R=d[2],p=GD(q);if(p){var +r=l(t[11],q,aU[1],R),e=r[1],S=r[2];return[0,e,function(a){var +c=l(j,0,q,o),d=c[1][2],f=C(e);n(aC,q,[0,d,[87,[0,[5,fX(o),f]],e]]);return[0,[0,b,e],[2,[0,c,S,Q]]]}]}L(q,0,[qS,b,p]);var +u=m(gC(fh9),b);return[0,u,function(a){return[0,[0,b,u],[2,n(D(al,aSQ,QR),al,d)]]}];case +9:var +v=c[1],y=v[2],z=v[1],h=w(q,y,z);return[0,h,function(a){return[0,[0,b,h],[9,[0,[0,z,h],y]]]}];case +21:var +i=c[1],A=i[2],T=i[1];if(0===A[0]){var +B=A[1],E=B[2],F=E[1],G=B[1],U=i[3],I=H(T),V=I[2],W=I[1],J=fX([0,b,c]),k=x(ad,0,q,J,[0,[20,J]],W,[0,s([41,[0,[0,F]]],G),F]);return[0,k,function(a){return[0,[0,b,k],[21,[0,m(V,0),[0,[0,[0,G,k],E]],U]]]}]}break;case +32:var +f=c[1],K=f[1],X=f[3],Y=f[2],M=GD(q);if(1===M){L(q,0,[qS,b,M]);var +N=m(gC(fh_),b);return[0,N,function(a){return[0,[0,b,N],[32,n(D(al,aUt,aT4),al,f)]]}]}var +O=l(t[11],q,aU[1],Y),g=O[1],Z=O[2];return[0,g,function(a){var +c=l(j,0,q,K),d=c[1][2],e=C(g);n(aC,q,[0,d,[87,[0,[5,fX(K),e]],g]]);return[0,[0,b,g],[32,[0,c,Z,X]]]}]}fO(q,[54,fX([0,b,c])]);function +P(a){return l(j,0,q,[0,b,c])}return[0,m(gC(fh8),b),P]},I=H(an),ao=I[2],J=p(t[7],q,u,G,I[1],am),aq=J[2],ar=J[1],z=[0,[0,ar],function(a){return[0,[0,G,[0,m(ao,0),aq,ak]]]}];else +var +z=[0,fh$,function(a){return 0}];var +aG=z[2],aH=z[1];if(N)var +_=N[1],$=_[2],aI=$[2],aJ=$[1],aK=_[1],aa=r3(K(aJ,function(a){var +d=a[2],b=a[1],e=d[2],f=d[1],g=f[2],h=f[1],c=P$(fic,q,g[1],h);if(e)var +i=e[1],j=i[2],o=j[2],p=i[1],k=l(t[3],q,u,j[1]),n=[0,[0,p,[0,k[2],o]]],m=[0,b,c,[0,k[1]]];else +var +n=0,m=[0,b,c,0];return[0,m,[0,b,[0,[0,[0,h,c],g],n]]]})),ac=[0,[0,aK,[0,aa[2],aI]]],ab=aa[1];else +var +ac=0,ab=0;var +af=ap(r[6],aF,aE,c,d,W,V,[1,[0,aH,0,ab,aD,Z]]);if(0===v)var +aL=aj(59,d),ag=n(r[8],aL,af);else +var +ag=af;var +aM=m(r[13],ag);function +B(a,b,c,d,e,f){if(e)return a;var +g=d?a[1]:a[2],j=n(jK,c,g);if(j){var +k=j[1],i=0;if(1===f){if(4<=k)i=1}else if(4<=f&&1===k)i=1;var +l=i?o(fN,0,c,2,g):(fO(q,[sO,b,c,d]),g),h=l}else +var +h=o(fN,0,c,f,g);return d?[0,h,a[2]]:[0,a[1],h]}var +aN=[0,aM,0,b1],ah=M(function(a){var +p=a[3],v=a[2],w=a[1];function +C(z,b,c,d,e,f,g,h,i,j,k){var +I=K(i,m(D(al,Hl,a0N),al));if(2<=f)fO(q,[ju,z]);var +L=2===f?1:0,J=m(kh(e[4],e[5]),z),M=L||(3===f?1:0),A=0===f?1:0,C=l(x(ae,q,0,1-A,A,M,at),u,J,e),E=[0,0],F=[0,0],N=C[2],O=C[1];function +s(a){var +b=a[2];E[1]=[0,hW(0,0,0,a[1])];F[1]=[0,hW(0,0,0,b)];return 0}var +G=[0,0];function +t(a){G[1]=[0,a];return 0}function +P(a){var +g=n(D(al,Am,a4n),al,e[2]),i=f9(E[1],g),o=n(D(al,zm,aZo),al,e[3]),p=f9(F[1],o),q=m(gU[2],c),b=f9(G[1],q),r=[0,d,l(N,i,p,b)];return[0,[0,[0,z,b],[0,f,m(k,b),r,h,I,j]]]}switch(f){case +0:var +Q=m(r[7],[0,c]),R=[0,s],S=[0,t],a=0,y=function(a){return l(Q,a,R,S)};break;case +1:if(g)var +U=o(r[16],h,b,c,[0,d]),H=function(a){return l(U,a,s,t)};else +var +V=o(r[20],h,b,c,[0,d]),W=[0,s],X=[0,t],H=function(a){return l(V,a,W,X)};var +a=fid,y=H;break;case +2:var +Y=o(r[23],h,b,c,[0,d]),Z=[0,s],_=[0,t],a=fie,y=function(a){return l(Y,a,Z,_)};break;default:var +$=o(r[24],h,b,c,[0,d]),aa=[0,s],ab=[0,t],a=fif,y=function(a){return l($,a,aa,ab)}}var +T=a?B(p,c,b,h,g,a[1]):p;return[0,m(y(O),w),[0,P,v],T]}return function(d){var +A=0;switch(d[0]){case +0:var +E=d[1],a=E[2],i=a[2],F=a[1],e=E[1];switch(i[0]){case +3:var +H=a[3],I=i[1],J=I[2],L=I[1],aa=a[6],ab=a[5],ac=a[4],ad=H[2],ae=H[1],af=J[1];return C(e,af,L,ae,ad,F,0,ac,ab,aa,function(a){return[3,[0,[0,L,a],J]]});case +4:var +M=a[3],N=i[1],O=N[2],P=N[1],ag=a[6],ah=a[5],ai=a[4],aj=M[2],ak=M[1],am=O[1];return C(e,am,P,ak,aj,F,1,ai,ah,ag,function(a){return[4,[0,P,O]]});case +5:var +Q=e;A=1;break;default:var +G=e}break;case +1:var +R=d[1],b=R[2],S=b[1],f=R[1];switch(S[0]){case +3:var +T=b[5],j=b[4],U=S[1],V=U[2],k=V[1],l=U[1],an=b[7],ao=b[6],ap=b[3],aq=b[2],ar=s([41,[0,[0,k]]],f),as=n(t[19],q,T),at=K(ao,m(D(al,Hl,a1i),al)),g=bU(q,u,ar,ap,aq),W=g[2],au=g[4],av=g[3],aw=g[1],ax=function(a){return[1,[0,[0,f,W],[0,[3,[0,[0,l,W],V]],m(au,0),av,j,T,at,an]]]},ay=B(p,l,k,j,0,0);return[0,x(r[10],j,k,l,as,aw,w),[0,ax,v],ay];case +4:return X(fig);case +5:var +Q=f;A=1;break;default:var +G=f}break;default:var +Y=d[1],c=Y[2],Z=c[5],o=c[4],y=c[1],z=y[2][1],_=y[1],$=Y[1],az=c[7],aA=c[6],aB=c[3],aC=c[2],aD=s([42,z],$),aE=n(t[19],q,Z),aF=K(aA,m(D(al,Hl,an$),al)),h=bU(q,u,aD,aB,aC),aG=h[4],aH=h[3],aI=h[2],aJ=h[1],aK=function(a){return[2,[0,[0,$,aI],[0,y,m(aG,0),aH,o,Z,aF,az]]]},aL=B(p,_,z,o,1,0);return[0,x(r[15],z,_,aE,aJ,o,w),[0,aK,v],aL]}return A?(fO(q,[73,Q,7]),[0,w,[0,function(a){return n(D(al,a2H,407),al,d)},v],p]):(fO(q,[73,G,6]),[0,w,[0,function(a){return n(D(al,a2H,a36),al,d)},v],p])}},aN,ay),g=ah[1],a=q[11],aO=ah[2],aP=a[3],aQ=a[12],aR=a[11],aS=a[10],aT=a[9],aV=a[8],aW=a[7],aX=a[6],aY=a[5],aZ=a[4],a0=n(r[19],q,g),a1=o(T[7][31],0,c,a0,aP);kI(q,[0,a[1],a[2],a1,aZ,aY,aX,aW,aV,aT,aS,aR,aQ]);var +a2=U(aO),h=aPU(q,c,function(a){return n(r[33],q,g)}),a3=h[4],a4=h[3],a5=h[2];u2(q,A,h[1],7,c);u2(q,A,a5,8,c);u2(q,A,a4,9,c);u2(q,A,a3,10,c);var +ai=l(r[36],q,0,g),a6=ai[2],a7=ai[1];return[0,a6,a7,g,function(b){var +a=aG(0),c=[0,az,[0,K(a2,function(a){return m(a,0)}),ax]];return[0,S(R,function(a){return[0,[0,a[1],b],a[2]]}),c,aB,a,ac,aA,au]}]});function +ag(a,b,c,d){if(0!==d[0]){var +h=l(t[11],a,b,d[1]);return[0,h[1],[1,h[2]]]}var +e=d[1];if(0===a[12]){var +f=rF(a,1,c);return[0,f,[0,[0,e,f]]]}var +g=rA(a,c);return[0,g,[0,[0,e,g]]]}function +bV(a,b,c,d){var +e=c[1],f=e[2],i=c[3],j=c[2],k=e[1],g=ag(a,b,m(d,f[1]),j),h=g[1];return[0,h,[0,[0,[0,k,h],f],g[2],i]]}h(a9,function(e,b,c,d){var +a=d[4],o=d[3],q=d[1],K=d[5],L=d[2],k=n(T[7][27],d[7],e[13][1][16]);if(k)return k[1];var +h=l(t[15],e,[0,b],L),f=h[2],g=o[2],M=h[3],N=h[1],C=g[3],D=g[2],E=g[1],F=o[1];function +G(a,b){return[0,F,[0,a,b,C]]}var +H=m(ai[2],G),I=fs(E,H,function(a,b){var +g=b[2],l=g[2],c=l[2],d=l[1],t=g[4],u=g[3],v=g[1],w=b[1],x=0===m(y[5],[0,d,c])[0]?0:1;switch(c[0]){case +0:var +j=c[1],z=j[3],A=j[2],B=j[1],o=ag(e,f,s(56,d),A),i=[1,o[2],B,z],h=o[1];break;case +1:var +k=c[1],C=k[3],D=k[2],E=k[1],p=ag(e,f,s(56,d),D),i=[2,p[2],E,C],h=p[1];break;case +2:var +F=c[1],q=bV(e,f,F,function(a){return s([34,[0,a]],d)}),i=[0,q[2]],h=q[1];break;default:var +r=X(fih),i=r[2],h=r[1]}return n(ai[3],[0,h,w,d,i,u,x,t,v],a)}),J=s_(D,I,function(a,b){var +l=b[2][1],g=l[2],c=l[1],h=b[1],i=0===m(y[5],[0,c,g])[0]?0:1;switch(g[0]){case +0:var +j=g[1],r=j[3],t=j[2],u=j[1],o=ag(e,f,s(56,c),t),d=[0,[0,o[1],h,c,[1,o[2],u,r],i]];break;case +1:var +k=g[1],v=k[3],w=k[2],x=k[1];fO(e,[qd,c]);var +p=ag(e,f,s(56,c),w),d=[0,[0,p[1],h,c,[2,p[2],x,v],i]];break;case +2:var +z=g[1],q=bV(e,f,z,function(a){return s([34,[0,a]],c)}),d=[0,[0,q[1],h,c,[0,q[2]],i]];break;default:var +d=[1,[qd,c]]}return 0===d[0]?n(ai[4],d[1],a):(fO(e,d[1]),a)});if(0===a[0])var +i=a[1],r=s(60,i),u=Ot(r,0,rD(e,r,0,fii)),x=[0,[0,i,u]],w=u,v=i;else +var +j=a[1],B=p(t[6],e,1,f,j,a[2]),x=[1,j,B[2]],w=B[1],v=j;var +z=q[2],A=q[1],O=z[1];return[0,[0,[0,[0,A,O]],c,N,J,K,w,v],function(a,b,c){return[0,[0,[0,A,c],z],M,a,x,b,d[6],d[7]]}]});function +bd(a,b,c,d){if(0!==d[0]){var +h=l(t[11],a,b,d[1]);return[0,h[1],[1,h[2]]]}var +e=d[1];if(0===a[12]){var +f=rF(a,1,c);return[0,f,[0,[0,e,f]]]}var +g=rA(a,c);return[0,g,[0,[0,e,g]]]}function +bW(a,b,c,d){var +e=c[1],f=e[2],i=c[3],j=c[2],k=e[1],g=bd(a,b,m(d,f[1]),j),h=g[1];return[0,h,[0,[0,[0,k,h],f],g[2],i]]}h(ae,function(j,b,c,d,e,f,g,h,i){var +ak=i[8],p=i[7],k=i[6],am=i[5],z=i[3],v=i[2],a4=i[4],a5=i[1],ae=n(T[7][27],i[10],j[13][1][6]);if(ae)return ae[1];var +a6=h[2],w=0===p[0]?p[1]:p[1][1];if(d)var +a=2;else{var +I=0;if(a4)if(am)if(k)I=1;else +var +a=[1,w];else if(k)I=1;else +var +a=1;else if(am)if(k)I=1;else +var +a=[0,w];else if(k){var +B=aJd(k,z);if(0===B){var +aN=0===z[0]?z[1][1]:z[1][1];fO(j,[73,aN,16])}var +aB=0;if(typeof +B==="number"||!(0===B[0]))aB=1;else{var +af=j[11][10],aO=B[1],aJ=af[5],ag=function(a){var +b=m(axd,a);return m(dqB,pr(b,function(a){var +e=a[1],b=a[2][1][2],c=Bm(pr(b,function(a){if(5!==a[0])return 0;var +b=m(af[8],a[1])[2];return[0,m(yW(j),b)]})),d=S(c,function(a){var +b=a[2],c=a[1];return fs(b,c,function(a,b){return[1,a,b]})});return S(d,function(a){return[0,[0,[0,e],0],a]})}))},ah=n(T[7][27],aO,aJ);if(ah)var +K=ah[1],aK=K[2],aL=K[1],aM=ag(K[3]),Q=[0,[0,aL,ag(aK),aM]];else +var +Q=0;if(Q)var +R=Q[1],aP=R[3],aQ=R[2],aR=R[1],a=[3,[0,[0,gg(function(a){return[76,a]},aR),aQ,aP]]];else +var +a=0}if(aB)var +a=0}else +var +a=0;if(I)var +a=iB(fij)}l(t[22],j,fin,ak);var +U=l(t[15],j,[0,g],ak),q=U[2],an=U[1],E=v[2],a7=U[3],aU=E[4],aV=E[3],aW=E[2],aX=E[1],aZ=v[1];function +a0(a,b,c){return[0,[0,aZ,[0,c,a,b,aU]]]}var +a1=m(F[2],a0),a2=fs(aW,a1,function(a,b){var +i=b[2],k=i[1],c=k[2],d=k[1],t=i[2],u=b[1],v=0===m(y[5],[0,d,c])[0]?0:1;switch(c[0]){case +0:var +g=c[1],w=g[3],x=g[2],z=g[1],l=bd(j,q,s(56,d),x),f=[1,l[2],z,w],e=l[1];break;case +1:var +h=c[1],A=h[3],B=h[2],C=h[1],o=bd(j,q,s(56,d),B),f=[2,o[2],C,A],e=o[1];break;case +2:var +D=c[1],p=bW(j,q,D,function(a){return s([34,[0,a]],d)}),f=[0,p[2]],e=p[1];break;default:var +r=X(fik),f=r[2],e=r[1]}return n(F[3],[0,e,u,d,f,t,v],a)}),a3=s_(aV,a2,function(a,b){var +f=b[2][1],e=f[2],c=f[1],h=b[1],i=0===m(y[5],[0,c,e])[0]?0:1;if(2===e[0])var +k=e[1],g=bW(j,q,k,function(a){return s([35,[0,a]],c)}),d=[0,[0,g[1],h,c,g[2],i]];else +var +d=[1,[72,c,7]];return 0===d[0]?n(F[4],d[1],a):(fO(j,d[1]),a)}),aj=s_(aX,a3,function(a,b){var +c=b[2][1],e=c[1],f=b[1],d=l(t[2],j,q,c[2]);return n(F[5],[0,d[1][2],f,[0,e,d]],a)}),bo=0,a8=v[2][1],a9=v[1];if(b&&!a8){var +aS=b[1];if(wb(i[3],i[2])){var +ai=s(fil,a9);fO(j,[76,ai,0,0]);n(gs,j,[0,[25,ai,fim],aS]);bo=1}}var +M=i[3],N=i[7],aD=0,a_=[0,z];switch(N[0]){case +0:if(0===M[0]){var +O=lr(M[1][1]),ad=O[2],J=ad[2],aG=ad[1],aH=0a)b=1}else if(57===a)b=1;if(b)return[37,[0,h]]}return a},v=jD(function(a){return gg(G,a)},F),r=0;if(i){var +w=i[1];if(0===w[0])var +x=C(w[1]);else +r=1}else +r=1;if(r)var +x=t?fX(t[1]):C(v);var +g=[2,[0,[0,[0,q,p(b,[0,[4,[0,u],x]],q,h,i,v)],[0,h,O]],P,N]];break;default:var +Q=a[1];fO(e,[73,f,11]);var +g=[3,n(D(al,jW,a4t),al,Q)]}return[0,[0,f,aRB(e,[0,f,a])],g]});h(ae8,function(f,h,c){function +b(d,b){switch(b[0]){case +0:var +i=b[1],j=i[2],e=i[1],A=j[2],B=j[1],r=c[3],t=c[2],u=[1,s(2,e),[0,[0,0,[0,d,g+d]]]],v=s([60,m(k(fcP),d)],e),a=S(t,function(a){return[0,e,[21,[0,a,[2,[0,e,[16,[0,d,g+d,0]]]],0]]]}),w=i3(qA(a,function(a){return tC(1,f,a,e)})),l=aRz(f,[0,w,a,S(r,function(a){return aNC(u,v,a)})],A),C=l[2];return[0,[0,e,[0,o(y1,f,h,l[1],B),C]]];case +1:var +n=b[1],p=n[2],q=p[1],D=p[2],E=n[1],x=c[3],y=s(75,q[1]),z=S(x,function(a){return[2,y,a,[3,d]]});return[1,[0,E,[0,o(y1,f,h,[0,1,c[2],z],q),D]]];default:return[2,b[1]]}}return function(a){return uf(a,b)}});h(ae9,function(a,b,c,d,e){var +f=0,m=0,j=e;for(;;){if(!j)return U(m);var +n=j[1],ag=j[2];if(0===n[0]){var +G=n[1],i=G[2],H=i[3],I=i[2],g=i[1],J=0!==H?1:0,_=i[4],$=G[1],aa=aRB(a,I);switch(g[0]){case +0:var +u=g[1],v=u[2],w=v[1],x=u[1],h=[0,aRA(J,c,a,d,x,w,0),[0,w,f],[0,[0,x,v]]];break;case +3:var +y=g[1],z=y[2],A=z[2],k=z[1],B=y[1],h=[0,aRA(J,c,a,d,B,k,A),[0,k,f],[3,[0,[0,B,aa],[0,k,A]]]];break;case +4:var +C=g[1],E=C[2],F=E[1],Y=E[2],Z=C[1],O=d[3],P=d[2],q=l(f$[12],0,a,F),r=q[1],t=r[1],Q=r[2],R=s(fcQ,t),T=S(P,function(c,b){return function(a){return[0,c,[21,[0,a,[2,b],0]]]}}(t,F)),h=[0,[0,1,T,S(O,function(c,b){return function(a){return aNC(c,b,a)}}(Q,R))],f,[4,[0,Z,[0,q,Y]]]];break;default:fO(a,[73,g[1][1],10]);var +h=[0,d,f,l(D(al,848892806,arI),al,0,g)]}var +ab=h[3],ac=h[2],K=aRz(a,h[1],H),ad=K[2],p=[0,ac,[0,[0,$,[0,ab,o(y1,a,b,K[1],I),ad,_]]]]}else +var +L=n[1],M=L[2],N=M[1],ae=M[2],af=L[1],V=d[3],W=s(74,N[1]),X=S(V,function(c,b){return function(a){return[2,c,a,[2,b]]}}(W,f)),p=[0,f,[1,[0,af,[0,o(y1,a,b,[0,1,d[2],X],N),ae]]]];var +f=p[1],m=[0,p[2],m],j=ag}});var +fcR=function(a){var +b=a[2];return 3===b[0]?[0,g6]:b[1][2]};hj(fiN,qa,[0,aRy,y1,ae8,ae9,fcR,function(f,b,c){var +a=aRy([0,c],0,0,b);return l(y1,f,function(a,b,c,d,e){Cs(f,a,c,e,b);return aew(e,f,b)},a)}]);var +fcW=function(a){var +c=a[5],d=a[4],b=a[1];if(0!==d[0]){var +i=0===c?b:io(0,0,b);return[0,0,i]}var +e=d[1],g=0,h=e[1][2][1];if(!e[3]&&0===c){var +f=b;g=1}if(!g)var +f=io(0,0,b);return[0,[0,h],f]},fcX=function(a){return[0,[0,a[4][1][2][1]],a[2],a[1]]},fcY=function(a){return a[1]},fcZ=function(a){return a[6]},fc0=function(a){return a[5]},fc1=function(a,b,c){var +d=c[6],e=c[5],f=c[4],g=c[3],h=c[2];return[0,hY(a,0,0,b,c[1]),h,g,f,e,d]},fc2=function(a,b,c){var +d=c[5],e=c[4],f=c[3],g=c[2];return[0,hY(a,0,0,b,c[1]),g,f,e,d]},fc3=function(a,b,c){var +d=c[3],e=c[2];return[0,hY(a,0,0,b,c[1]),e,d]},aRD=function(g,b,c,d,e,f){aT(e,function(a){return n(aC,g,[0,m(aeo(g,s([37,[0,d]],c)),a),[0,b,f]])});return f},aRE=function(a,b,c){var +d=C(c);return n(aC,a,[0,c,[0,[0,[4,[0,C(b)],d]],b]])},afa=function(e,b,c,d){var +h=b?b[1]:0;function +f(a){var +b=l(f$[12],0,e,a),f=b[1],g=f[2],i=b[2],j=f[1];if(d){aRE(e,c,g);return[0,[0,j,c],i]}if(h)aRE(e,c,g);return b}return function(a){return S(a,f)}},fc4=function(f,b){var +d=b[6],g=b[5],a=b[4],e=b[3],h=b[2],c=b[1];switch(a[0]){case +0:var +i=a[1],j=i[1],k=rF(f,0,s([37,[0,j[2][1]]],j[1][1]));return[0,h,[0,[0,[0,e,k],[2,i]],m(afa(f,fc5,k,d),g)]];case +1:var +l=a[3],n=a[2],q=a[1],r=m(afa(f,0,c,d),g),t=o(qa[1],0,0,d,c),u=function(a,b,c,d,e){return aRD(f,a,b,c,d,e)};return[0,h,[0,[0,[0,e,c],[0,[0,p(qa[4],f,u,e,t,n),q,l]]],r]];default:var +v=a[3],w=a[2],x=a[1],y=m(afa(f,0,c,d),g),z=o(qa[1],0,0,d,c),A=function(a,b,c,d,e){return aRD(f,a,b,c,d,e)};return[0,h,[0,[0,[0,e,c],[1,[0,o(qa[3],f,A,z,w),x,v]]],y]]}},fc6=function(a,b){var +c=b[4],d=c[1],e=b[3],f=b[2];return[0,f,[0,[0,[0,e,rF(a,0,s([37,[0,d[2][1]]],d[1][1]))],[2,c]],0]]};hj(fiO,aRM,[0,fcW,fcX,fcY,fcZ,fc0,fc1,fc2,fc3,fc4,fc6,function(a,b){return[0,b[2],[0,b[3],0]]}]);var +fcE=function(a,b){return GE(a)?(u1(fcG,a,0,fcF,b),0):0},fcH=function(a){var +c=a[8],e=a[5],f=a[4],b=a[1];if(0===f[0]){var +j=0;if(!f[1][3]&&0===e){var +g=b;j=1}if(!j)var +g=io(0,0,b);var +d=g}else +var +d=0===e?b:io(0,0,b);if(0===c[0]){var +h=c[1];return[0,h[1],h[2][1],d]}var +i=c[1];return[0,i[1],i[2][1],d]},fcI=function(a){var +b=a[4],c=a[1],d=0===b[0]?b[1][3]:0;return d?io(0,0,c):c},Qm=function(g,b,c,d,e,f){aT(e,function(a){return n(aC,g,[0,m(aeo(g,s([37,[0,d]],c)),a),[0,b,f]])});return f},aRw=function(a,b,c){var +d=C(c);return n(aC,a,[0,c,[0,[0,[4,[0,C(b)],d]],b]])},ae6=function(e,b,c,d){var +h=b?b[1]:0;function +f(a){var +b=l(f$[12],0,e,a),f=b[1],g=f[2],i=b[2],j=f[1];if(d){aRw(e,c,g);return[0,[0,j,c],i]}if(h)aRw(e,c,g);return b}return function(a){return S(a,f)}},fcJ=function(f,b){var +g=b[8],h=b[7],d=b[6],i=b[5],a=b[4],e=b[3],j=b[2],c=b[1];function +k(a){if(0!==g[0])return[1,g[1]];var +b=g[1];return[0,[0,[0,b[1],a],b[2]]]}switch(a[0]){case +0:var +n=a[1],q=n[1],l=rF(f,0,s([37,[0,q[2][1]]],q[1][1])),r=m(ae6(f,fcK,l,d),i);return[0,j,[0,k(l),[0,[0,e,l],[2,n]],r,h]];case +1:var +t=a[3],u=a[2],v=a[1],w=m(ae6(f,0,c,d),i),x=o(qa[1],0,0,d,c),y=function(a,b,c,d,e){return Qm(f,a,b,c,d,e)},z=[0,[0,e,c],[0,[0,p(qa[4],f,y,e,x,u),v,t]]];return[0,j,[0,k(c),z,w,h]];default:var +A=a[3],B=a[2],C=a[1],D=m(ae6(f,0,c,d),i),E=o(qa[1],0,0,d,c),F=function(a,b,c,d,e){return Qm(f,a,b,c,d,e)},G=[0,[0,e,c],[1,[0,o(qa[3],f,F,E,B),C,A]]];return[0,j,[0,k(c),G,D,h]]}};hj(fiP,aRN,[0,fcJ,function(f,b){var +g=b[5],a=b[4],d=b[3],e=b[2],c=b[1];switch(a[0]){case +0:return[0,e,[0,[0,[0,d,c],[2,a[1]]],0]];case +1:var +h=a[3],i=a[2],j=a[1],k=o(qa[1],0,0,g,c),l=function(a,b,c,d,e){return Qm(f,a,b,c,d,e)};return[0,e,[0,[0,[0,d,c],[0,[0,p(qa[4],f,l,d,k,i),j,h]]],0]];default:var +m=a[3],n=a[2],q=a[1],r=o(qa[1],0,0,g,c),s=function(a,b,c,d,e){return Qm(f,a,b,c,d,e)};return[0,e,[0,[0,[0,d,c],[1,[0,o(qa[3],f,s,r,n),q,m]]],0]]}},fcH,fcI,fcE]);var +Hh=aRK(aRJ,f$),Hc=function(a,b){var +e=a[11][2],c=aU[1];function +d(a,b,c){var +d=n(T[7][26],a,e);return o(aU[31],0,d[1],d[3],c)}return l(T[7][12],d,b,c)},afe=function(a,b,c){if(0===c[12]){var +d=m(a,0);m(b,d);return d}var +i=pB(c);qP(c,jE[1]);var +e=aNy(c,a),f=e[2],g=1-e[1];if(g)var +j=pB(c),h=m(jE[2],j);else +var +h=g;qP(c,i);if(h)m(b,f);return f},u6=function(d,b,c){var +e=d[13];function +a(a){return B7(e,a)}return afe(function(a){return l(f$[12],b,d,c)},a,d)[1][2]},aff=function(a,b,c,d){var +f=c?c[1]:0,j=a[13],k=Hc(a,b),g=l(Hh[11],a,k,d),e=g[1],i=0,m=g[2];if(f){var +n=f[1];if(aNg(a,1)){var +o=g_(0),h=x(is,a,A,C(e),e,[13,n],o);i=1}}if(!i)var +h=e;if(0===a[12])aM_(j,m);return h},Hd=function(a,b,c){var +d=c[2],e=c[1];switch(d[0]){case +9:return l(f$[45],a,d[1][2],e);case +13:return l(f$[38],a,e,d[1]);case +14:return n(f$[39],e,d[1]);case +15:return m(f$[40],e);case +16:return n(f$[41],e,d[1]);case +17:return n(f$[42],e,d[1]);case +18:return n(f$[43],a,e);case +19:return l(f$[44],a,e,d[1])[1];case +21:var +f=d[1],g=f[2],p=f[1];if(0===g[0]){var +h=g[1],i=h[2][1],q=h[1],r=Hd(a,b,p),j=tC(0,a,c,e);if(j)var +k=j[1];else +var +o=fX(c),t=[0,s([41,[0,[0,i]]],q),i],k=x(f$[46],0,a,o,[0,[20,o]],r,t);return k}break;case +2:case +32:return aff(a,T[7][1],0,d[1][2])}return u6(a,b,c)},aRO=function(a,b,c){if(typeof +c==="number")return[0,0,s(57,b),0];switch(c[0]){case +0:var +d=c[1],h=c[2],i=[1,s(2,b),[0,[0,0,[0,d,g+d]]]];return[0,[1,i],s([60,m(k(fiQ),d)],b),h];case +1:var +e=c[3],f=c[1];return[0,[0,f,e],s([41,[0,[0,f]]],c[2]),e];case +2:var +j=c[2],l=u6(a,0,c[1]);return[0,[1,l],s(fiR,b),j];case +3:var +n=c[1];return[0,[2,n],s(74,b),0];default:var +o=c[1];return[0,[3,o],s(75,b),0]}},afg=function(c,b){var +d=c[13];function +a(a){return B7(d,a)}return afe(function(a){return l(f$[12],0,c,b)},a,c)},fiS=function(c,b){var +d=c[13];function +a(a){var +b=d[1],c=b[16],e=b[15],f=b[14],g=b[13],h=b[12],i=b[11],j=b[10],k=b[9],l=b[8],m=b[7],n=b[6],p=b[5],q=o(T[7][31],0,a[2][1],a,d[1][4]);d[1]=[0,b[1],b[2],b[3],q,p,n,m,l,k,j,i,h,g,f,e,c];return 0}return afe(function(a){return n(f$[15],c,b)},a,c)},aRP=function(e,b,c){var +a=1-qx(c);return[0,a,function(a){return aeA(e,a,K(c,function(a){function +c(a){switch(a[0]){case +0:return aff(e,a[1],0,a[2]);case +1:return u6(e,0,a[1]);case +2:var +i=a[1],f=i[2],d=i[1];if(f){var +j=f[1],g=e[11],v=f[2];yU(e,0,d);yU(e,0,j);var +w=hW(0,0,0,B6(g,d)),x=hW(0,0,0,B6(g,j)),y=K(v,function(a){yU(e,0,a);return hW(0,0,0,B6(g,a))}),z=o(aG[3],0,w,x,y);return[16,s(fiT,b),z]}var +B=e[11];yU(e,0,d);return hW(0,0,0,B6(B,d));case +3:var +k=a[2],l=a[1],C=e[11];yU(e,l,k);return hW(0,0,0,tx(C,l,k));case +4:var +q=a[1];return[1,s([37,[0,q]],b),[10,[0,q]]];case +5:var +r=a[1];return rD(e,s([60,r],b),0,[0,r]);case +6:return m(fL,a[1]);case +7:var +t=a[1],D=a[2],h=s(56,t),E=K(D,function(a){if(0!==a[0])return[1,c(a[1])];var +b=c(a[1]);return[0,mx(0,0,0,s(26,t),b),0]});return f7(e,h,function(a){var +b=fZ(e,aj(fiU,h));return p(P7,e,A,h,E,[1,g0(0),b,a])});default:var +F=a[2],G=a[1],H=function(a,b){if(0===b[0]){var +d=b[2],e=b[1],f=wg([0,e],1,0,[0,d],c(b[3]));return n(f$[10][2],f,a)}var +g=c(b[1]);return n(f$[10][3],g,a)},I=fs(F,m(f$[10][1],0),H),u=s(56,G);return p(f$[10][4],e,I,u,0,[9,u])}}var +d=m(f$[11],e);function +f(a){var +b=e[7],d=a[1],f=n(T[7][27],d,b[1]);if(f)return f[1];var +g=a[2][1],c=K(g,function(a){if(0===a[0]){var +b=afg(e,a[1])[1];return[0,b[1],[0,b[2]]]}var +c=afg(e,a[1][2][1])[1];return[0,c[1],[1,c[2]]]});b[1]=o(T[7][31],0,d,c,b[1]);return c}return aac(c,d,f,function(f,b,c,d){var +a=e[8],k=d[1],g=[0,f,b,K(c,function(a){return a[1][1]}),k],h=Ep(a,g);if(h)return h[1];var +l=pB(e);qP(e,jE[1]);var +i=[O,function(a){var +g=ap(f$[14],e,f,afg,fiS,b,c,d),h=g[3],i=g[1];return[0,i,[0,K(h,function(a){return 0===a[0]?a[1][3]:m(fL,C(a[1]))}),0]]}],n=vD(function(a){return a[1]},i),o=vD(function(a){return a[2]},i);qP(e,l);var +j=[0,n,o];AE(a,g,j);return j},a)}))}]},aRQ=function(a,b,c,d,e,f,g,h){var +q=h[10],r=h[7],t=h[3],u=h[2],v=a[13],k=Hc(a,f),o=0;if(c&&wb(t,u)){var +i=fZ(a,s(39,e[2]));o=1}if(!o)var +i=rx(e);var +w=xS(c,i),l=js(f$[21],a,w,0,0,0,d,k,e,h),j=l[1],D=0;if(typeof +b!=="number"&&0===b[0]){var +x=b[2],y=j[6],z=m(f$[3][7],j[4]),B=y[1],C=p(Hh[9],a,k,z,e,r)[1][1];n(aC,a,[0,C,[0,[0,[17,fX(x)]],B]]);D=1}ac_(v,q,l);return[0,p(f$[4][5],a,1-c,[0,g],i,j),A]},aRR=function(a){var +b=a;for(;;){if(0!==b[0]){var +b=b[2][2];continue}var +c=b[1];if(typeof +c!=="number"&&0===c[0])return 1;return 0}},fiW=function(e,f,c,d){function +h(a){return[0,[4,[0,f],C(a)]]}if(0!==d[0]){var +aB=d[2],aD=aB[1],k=d[1],aQ=0,bt=aB[2];if(typeof +k!=="number"&&1===k[0]){var +M=aP3(e,[0,[1,fja],[0,[0,k[1]],0]],k[2]);aQ=1}if(!aQ)var +M=0;if(M){var +aE=M[1];return[0,aE,h(aE)]}var +bu=Cr(e,aD,tx(e[11],2,aD)),bv=aRR(bt),N=aRO(e,c,k),aF=N[2],bw=N[3],bx=N[1],aG=bv?0:1,aH=hd(e,aF,function(a){return n(aC,e,[0,bu,[85,aF,aG,bx,a,g0(0)]])});if(bw)var +aI=aRO(e,c,0),aJ=aI[2],by=aI[1],aK=hd(e,aJ,function(a){return n(aC,e,[0,aH,[85,aJ,aG,by,a,g0(0)]])});else +var +aK=aH;return[0,aK,A]}var +a=d[1];if(typeof +a==="number"){var +O=s(fiX,c),P=aNm(e)?m(h7[3],O):[25,O,fiY];return[0,P,h(P)]}switch(a[0]){case +0:var +l=a[5],aL=0,aR=a[6],aS=a[4],aU=a[3],aV=a[2],aW=a[1];if(l){var +aX=l[1];if(aS){var +Q=[0,[0,aX,1]];aL=1}}if(!aL)var +Q=0;var +w=aff(e,aW,[0,Q],aR);aT(l,function(a){return aP5(e,w,a)});var +aM=0;if(aV&&!aU){var +x=io(0,0,w);aM=1}if(!aM)var +x=w;var +aY=i3(l)?h(x):A;return[0,x,aY];case +1:var +R=a[2],aZ=u6(e,0,R);return[0,aZ,[0,[4,[0,f],fX(R)]]];case +2:var +j=a[2];if(typeof +j!=="number"&&1===j[0]){var +B=a[6],Y=a[5],i=a[4],t=a[3],Z=i[1],bb=i[10],bc=i[5],bd=i[4],be=B?t:bb,D=m(kh(bd,bc),be),_=fZ(e,f),u=B?o(f$[20],e,Y,D,i):ap(f$[19],e,1,_,Y,D,t,i),$=u[2],E=u[1];n(gs,e,[0,E,_]);var +F=e[13];if(Z)ac9(F,Z[1][1],u);else +ac9(F,t,u);var +bf=B?[1,$]:[8,$];B7(F,[0,[0,t,E],bf]);return[0,E,[0,[4,[0,f],D]]]}var +q=a[6],b=a[4],S=a[3],a0=a[5],a1=e[13],U=Hc(e,a[7]),V=b[10],a2=b[7],a3=b[5],a4=b[4],a5=b[3],a6=b[2],a7=q?S:V,r=m(kh(a4,a3),a7),aN=0;if(!q&&wb(a5,a6)){var +y=fZ(e,s(39,r[2]));aN=1}if(!aN)var +y=rx(r);var +a8=xS(1-q,y),W=js(f$[21],e,a8,0,0,0,a0,U,r,b),z=W[1],bz=0;if(typeof +j!=="number"&&0===j[0]){var +a9=j[2],a_=z[6][1],a$=m(f$[3][7],z[4]),ba=p(Hh[9],e,U,a$,f,a2)[1][1];n(aC,e,[0,ba,[0,[0,[17,fX(a9)]],a_]]);bz=1}ac_(a1,V,W);return[0,p(f$[4][5],e,q,[0,S],y,z),[0,[4,[0,f],r]]];case +3:var +aa=a[1];if(typeof +aa!=="number"&&0===aa[0]){var +bh=a[3],bi=a[2],ac=function(a,b,c,d){var +f=m(kh(0,0),b);return aRQ(e,0,a,at,f,T[7][1],c,d)[1]},ad=function(a,b){var +d=b[1];function +g(a){var +b=a[2],c=a[1];switch(b[0]){case +0:var +h=b[1][1];if(!h)return[1,f,[7,[0,0,n(f$[47],e,c)[2],fi0]]];var +d=s(23,c),j=K(h,function(a){switch(a[0]){case +0:var +b=a[1],d=g(b);return[0,mx(0,0,0,s(26,b[1]),d),0];case +1:return[1,Hd(e,0,a[1][2][1])];default:var +f=a[1],h=m(gU[2],c);return[0,mx(0,0,0,s(26,f),h),0]}});return f7(e,d,function(a){var +b=fZ(e,aj(fiZ,d));return p(P7,e,A,d,j,[1,g0(0),b,a])});case +24:return ad(c,b[1]);case +1:case +8:var +i=b[1],k=i[10],l=8===b[0]?1:0;return ac(l,k,c,i);case +2:case +9:case +13:case +14:case +15:case +16:case +17:case +18:case +19:case +21:case +32:return Hd(e,0,[0,c,b]);default:return X(fi1)}}var +c=s(17,a),h=[9,c];function +i(a,b){if(0===b[0]){var +d=b[1],c=d[2],m=d[1];switch(c[0]){case +0:var +f=c[1];switch(f[0]){case +0:case +3:var +h=f[1],o=h[2][1],p=h[1],q=wg([0,o],1,0,[0,p],g(c[2]));return n(f$[10][2],q,a)}break;case +1:var +i=c[1];switch(i[0]){case +0:case +3:var +j=i[1],k=c[2],r=j[2][1],s=j[1],t=aaK([0,r],[0,s],ac(0,m,k[1],k[2]));return n(f$[10][2],t,a)}break}}else{var +l=b[1][2][1];if(9===l[2][0]){var +u=Hd(e,0,l);return n(f$[10][3],u,a)}}return X(fi2)}var +j=fs(d,m(f$[10][1],0),i);return p(f$[10][4],e,j,c,0,h)};return[0,ad(bi,bh),A]}var +ab=[0,a[2],[24,a[3]]],bg=u6(e,0,ab);return[0,bg,[0,[4,[0,f],fX(ab)]]];case +4:var +ae=a[2],G=a[1],bj=e[11],H=s($$,c);if(0f)i=1;break;case +3:i=6<=f?4:1;break;case +7:if(6<=f)return[0,[77,7,c,[0,b],h]];break;case +8:if(6<=f)return[0,[k9,c,s([37,[0,b]],h),1]];i=1;break;case +9:i=6<=f?5:1;break;case +11:if(6<=f){if(m(u7[5],a))return[0,[77,5,c,[0,b],h]];i=2}else +i=2;break;case +13:if(6<=f)return[0,[77,6,c,[0,b],h]];i=1;break;case +16:if(6<=f)return[0,[k9,c,s([37,[0,b]],h),3]];i=1;break;case +17:if(6<=f)return[0,[77,5,c,[0,b],h]];i=2;break;case +6:i=4;break;case +10:i=5;break;case +5:i=3;break;case +0:case +4:if(f){if(6>f)return[0,[77,0,c,[0,b],h]]}else if(j1(c,h))return[0,[77,1,c,[0,b],h]];break}else if(0===e[0]){var +o=e[1];if(6<=f)return[0,[77,[0,o,b],c,[0,b],h]];i=1}else{var +k=0;if(4<=f)switch(f-4|0){case +0:break;case +1:k=1;break;default:return[0,[k9,c,s([37,[0,b]],h),2]]}else +k=1;if(k)return[0,[77,0,c,[0,b],h]]}var +j=0;switch(i){case +4:if(6<=f)return[0,[77,4,c,[0,b],h]];j=1;break;case +5:if(6<=f)return[0,[k9,c,s([37,[0,b]],h),0]];j=1;break;case +2:if(6>f){var +n=0;if(!m(u7[5],a)&&17!==e)n=1;if(!n&&!N4(g))return[0,[77,0,c,[0,b],h]];if(f&&!N4(g))return[0,[77,0,c,[0,b],h]]}break;case +3:j=1;break;case +1:if(!N4(g))return[0,[77,0,c,[0,b],h]];break}if(j){var +l=0;if(typeof +e==="number")switch(e){case +3:case +9:break;default:l=1}else +l=1;if(l&&6>f&&j1(c,h))return[0,[77,0,c,[0,b],h]]}return 0},d3c=function(a,b,c,d,e){var +r=m(n(aw9,function(a,b){var +c=BA(a);return o(fN,0,a,[0,[0,c],c,0,0,[0,h8[1]],0],b)},d),at);function +t(a,b){if(0!==a[0])return b;var +c=a[1],d=BA(c);return o(fN,0,c,[0,[0,d],d,0,0,[0,h8[1]],0],b)}var +u=m(n(NT[16],t,c),r),h=i6([5,s(d27,e)]),v=m(l(fN,0,d28,[0,[0,h],h,0,0,[0,h8[1]],0]),u);if(b)var +i=function(a){return a};else +var +y=BA(d29),z=[0,n(h8[6],d2_,y)],A=BA(d2$),i=l(fN,0,d3b,[0,[0,BA(d3a)],A,0,0,z,0]);var +w=m(i,v),x=fs(d26,w,function(a,b){var +c=i6([11,b]);return o(fN,0,b,[0,[0,c],c,0,0,[0,h8[1]],0],a)}),B=[0,h8[1]],C=yj(wj,gn[1][5]),k=o(fN,0,wj,[0,[0,yj(wj,gn[1][5])],C,0,0,B,14],x),p=m(u7[3],a);if(p)var +j=p[1][2][2],D=9===j[0]?[0,j[1][2][1]]:0,f=D;else +var +f=d3d;if(!f)return[0,aKQ(k),0];var +g=f[1],q=BA(g);return[0,aKQ(o(fN,0,g,[0,[0,q],q,0,0,[0,h8[1]],0],k)),[0,g]]},d3e=function(a,b){if(a){var +c=a[1];if(b)return[0,[2,c,b[1]]];var +d=c}else{if(!b)return 0;var +d=b[1]}return[0,d]},aKW=[],d3f=[0,hc,i8[1],0];if(!Gf[1])pZ(d2H,function(y){var +r=fK(y,d3v),w=fK(y,d3w),aM=fK(y,d3x),aN=fK(y,d3y),X=fK(y,d3z),z=fK(y,d3A),br=fK(y,d3B),bs=fK(y,d3C),aO=fK(y,d3D),ay=fK(y,d3E),a=kC(y,d2D,d2I),ag=a[3],bt=a[4],aP=a[5],aQ=a[6],aj=a[7],bu=a[10],ak=a[12],al=a[22],bv=a[23],bw=a[24],bx=a[26],by=a[33],az=a[40],bz=a[43],aA=a[57],aR=a[60],bA=a[61],aS=a[67],aU=a[68],e=a[70],am=a[71],aV=a[74],U=a[75],bB=a[78],aW=a[82],j=a[83],L=a[84],t=a[86],aX=a[90],an=a[91],aZ=a[92],a0=a[93],a1=a[94],ar=a[95],aB=a[96],N=a[98],u=a[99],bC=a[hZ],aC=a[iK],bD=a[i1],bE=a[jw],Y=a[hr],bF=a[iT],f=a[hy],bG=a[gt],F=a[iR],bH=a[gO],aD=a[ju],bI=a[kr],a2=a[lF],Z=a[lK],G=a[kw],bJ=a[ou],bK=a[lE],aE=a[k6],a4=a[kc],_=a[lc],a5=a[rI],A=a[vp],bL=a[t3],as=a[pR],a6=a[vr],H=a[wY],bM=a[sO],a7=a[q0],aF=a[qX],aG=a[t2],a8=a[oE],au=a[l_],a9=a[jH],bN=a[q4],a_=a[qd],$=a[qS],a$=a[qT],ba=a[tW],aa=a[wN],bO=a[wT],bP=a[tE],bb=a[xc],bc=a[Hk],P=a[zD],bQ=a[w8],bd=a[Db],bR=a[vn],be=a[Dr],bS=a[sv],aH=a[lf],bT=a[la],bf=a[xa],V=a[vc],W=a[tH],bU=a[QY],bV=a[zq],ab=a[Di],bg=a[HZ],av=a[z4],ac=a[w2],bW=a[va],bh=a[zw],ad=a[ve],g=a[y6],bX=a[w5],h=a[u$],Q=a[alB],bi=a[T2],bj=a[IA],bk=a[aY_],bY=a[aWL],C=a[HS],k=a[att],aI=a[Q8],aJ=a[arI],v=a[RO],aw=a[ag$],bl=a[CO],bZ=a[SS],I=a[ajS],J=a[aZf],c=a[aUN],b0=a[aWO],b1=a[aqy],bm=a[QR],bn=a[a4n],aK=a[a36],ae=a[an$],b2=a[asz],b3=a[aZP],b4=a[a1t],b5=a[aow],aL=a[aSq],bo=a[a1b],bp=a[a11],b6=a[a06],d=a[425],R=a[426],bq=a[aVG],ax=a[a2R],b7=a[aie],b8=a[aT_],i=a[anb],cc=a[1],cd=a[2],ce=a[9],cf=a[11],cg=a[15],ch=a[16],ci=a[17],cj=a[18],ck=a[19],cl=a[29],cm=a[35],cn=a[36],co=a[41],cp=a[49],cq=a[51],cr=a[52],cs=a[53],ct=a[64],cu=a[65],cv=a[79],cw=a[80],cx=a[81],cy=a[85],cz=a[iQ],cA=a[hb],cB=a[kL],cC=a[E],cD=a[jI],cE=a[mc],cF=a[k7],cG=a[qr],cH=a[l6],cI=a[kp],cJ=a[oA],cK=a[lN],cL=a[tT],cM=a[qb],cN=a[t_],cO=a[t8],cP=a[rT],cQ=a[C3],cR=a[xl],cS=a[xe],cT=a[tO],cU=a[qm],cV=a[ld],cW=a[vk],cX=a[Rl],cY=a[zN],cZ=a[vi],c0=a[DK],c1=a[sP],c2=a[w7],c3=a[Ds],c4=a[w6],c5=a[CX],c6=a[Is],c7=a[QL],c8=a[aVb],c9=a[a0l],c_=a[aqn],c$=a[a0L],da=a[aZC],db=a[alJ],dc=a[a0d],dd=a[aSM],de=a[a08],df=a[afK],dg=a[aY6],dh=a[ahY],di=a[afP],dj=a[a3m],dk=a[aU4],dl=a[aZM],dm=a[aqb],dn=a[a4q],dp=a[392],dq=a[a2O],dr=a[aT4],ds=a[a0N],dt=a[aZo],du=a[a1i],dv=a[aV6],dw=a[aVc],b=fG(y,aKP,0,aKO,gn[5],0),b9=b[28],b_=b[39],b$=b[40],ca=b[49],cb=b[iJ],af=b[jI],dx=b[1],dy=b[4],dz=b[18],dA=b[21],dB=b[27],dC=b[44],dD=b[47],dE=b[67],dF=b[97],dG=b[kp],dH=b[lg],dI=b[kc],dJ=b[lc],dK=b[qX],dL=b[oE],dM=b[qd],dN=b[tW],dO=b[w4],dP=b[Ak],dQ=b[xl],dR=b[la],dS=b[wW],dT=b[vi],dU=b[w2],dV=b[sT],dW=b[zn],dX=b[ve],dY=b[DR],dZ=b[sG];function +d0(a,b){var +d=b[2][1],e=b[1],c=o(wc[1],0,0,a[1+ay],1),f=l(D(c,iL,DC),c,m(D(c,lO,Dy),c),b);return o(a[1][1+aS],a,e,f,d)}function +d1(a,b,c){var +q=c[2],j=c[1];if(0===j[0])var +r=j[1],k=r[2][1],g=r[1];else +var +u=j[1],k=u[2][1],g=u[1];var +t=q[2][1],v=q[1],p=s([86,[0,k]],g),w=a[1+i][2],x=m(n(ft[8][48],g,[0,p]),w),y=m(l(ft[8][31],0,[0,11,b],[0,p]),x),z=a[1+i][1],A=[0,[0,g],0,lY(p),[0,k]],B=o(gn[1][7][31],0,g,A,z),f=a[1+i];a[1+i]=[0,B,y,f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12],f[13],f[14],f[15],f[16],f[17],f[18],f[19]];var +h=o(wc[1],0,0,a[1+ay],1),C=l(D(h,iL,QM),h,m(D(h,Tt,zs),h),t),d=a[1+i],E=a[1+i][9];a[1+i]=[0,d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],NT[1],d[10],d[11],d[12],d[13],d[14],d[15],d[16],d[17],d[18],d[19]];o(a[1][1+aS],a,v,C,t);var +e=a[1+i];a[1+i]=[0,e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],E,e[10],e[11],e[12],e[13],e[14],e[15],e[16],e[17],e[18],e[19]];return c}function +d2(a,b){var +c=n(a[1][1+v],a,b),d=c[6],e=c[4],f=c[2],g=c[1],h=a[1+i][14]?f:g[1];return N6(e,[0,d],[0,b],h)}function +d3(e,b,c,d){var +a=0;function +f(a){function +b(a){n(e[1][1+aU],e,d);return 0}return n(e[1][1+j],e,b)}return x(e[1][1+aj],e,0,b,c,f,a)}function +d4(a,b,c){n(a[1][1+bb],a,b);return n(m(dI,a),b,c)}function +d5(a,b,c){var +d=m(afr[2],c[1][2][4]);n(a[1][1+bq],a,d);n(a[1][1+bb],a,b);return n(m(dG,a),b,c)}function +d6(a,b){var +c=a[1+r],g=b[2][1],h=m(c[1][4],a[1+w]),e=a[1+i][16],j=m(c[1][3],a[1+w]),f=g[1],n=0,k=f[1];if(!q(f[2][1],qi)&&h&&e&&!j){l(a[1][1+d],a,k,e[1]);n=1}return m(m(dD,a),b)}function +d7(a,b){var +g=a[1+r],j=m(g[1][4],a[1+w]),c=a[1+i][16],e=m(g[1][3],a[1+w]),f=0;if(j){if(c){if(!e)return l(a[1][1+d],a,b,c[1]);f=1}else if(e){n(a[1][1+h],a,e[1][2]);return 0}}else +f=1;if(f&&c&&e)return l(a[1][1+d],a,b,c[1]);return 0}function +d8(a,b){var +c=a[1+i],e=a[1+i][14];a[1+i]=[0,c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],1,c[15],c[16],c[17],c[18],c[19]];m(b,0);var +d=a[1+i];a[1+i]=[0,d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],e,d[15],d[16],d[17],d[18],d[19]];return 0}function +d9(a,b){var +c=a[1+r];n(a[1][1+bg],a,b);switch(b[2][0]){case +5:case +21:case +25:case +26:n(a[1][1+u],a,c[2]);var +d=n(a[1][1+G],a,b);n(a[1][1+f],a,0);return d;default:return m(m(dF,a),b)}}function +d_(a,b){var +d=b[1],e=n(ft[4][4],a[1+X],d);if(e){var +g=fX(b),c=a[1+i],h=c[19],j=c[18],k=c[17],l=c[16],m=c[15],p=c[14],q=c[13],r=c[12],s=c[11],t=c[10],u=c[9],v=c[8],w=c[7],x=c[6],y=c[5],z=c[4],A=c[3],B=o(ft[8][31],0,[0,4,d],[0,g],a[1+i][2]);a[1+i]=[0,c[1],B,A,z,y,x,w,v,u,t,s,r,q,p,m,l,k,j,h];var +f=0}else +var +f=e;return f}function +d$(a,b){var +d=BL(b,a[1+i][6]);return n(a[1][1+c],a,d)}function +ea(a,b){switch(b[0]){case +0:return b[1];case +1:var +j=b[2],k=BL(b[1],a[1+i][6]),d=n(a[1][1+c],a,k),l=d[2],m=d[1],o=BL(j,a[1+i][6]),e=n(a[1][1+c],a,o),p=[0,l,e[2]];return[0,n(gn[1][8][7],m,e[1]),p];case +2:var +q=b[2],r=BL(b[1],a[1+i][6]),f=n(a[1][1+c],a,r),s=f[2],t=f[1],u=BL(q,a[1+i][6]),g=n(a[1][1+c],a,u),v=[1,s,g[2]];return[0,n(gn[1][8][7],t,g[1]),v];default:var +w=BL(b[1],a[1+i][6]),h=n(a[1][1+c],a,w);return[0,h[1],[2,h[2]]]}}function +eb(d,b,c){var +a=c[2],e=c[1],q=c[3],s=a[1];n(d[1][1+u],d,d[1+r][2]);if(2<=e){n(d[1][1+h],d,a);var +v=[0,m(gn[1][8][5],s),d3F];l(d[1][1+ax],d,a,v)}else +n(d[1][1+g],d,a);var +w=m(d[1][1+C],d),x=m(d[1][1+k],d);if(1!==e)n(d[1][1+A],d,0);function +y(a){n(d[1][1+h],d,q);return 0}var +i=n(d[1][1+j],d,y),p=0;if(i){var +o=i[1];if(typeof +o==="number"&&o){var +z=m(d[1][1+k],d);n(d[1][1+t],d,x);n(d[1][1+Y],d,0);n(d[1][1+H],d,z);p=1}}if(!p){n(d[1][1+f],d,0);n(d[1][1+H],d,w)}return c}function +ec(a,b){var +c=b[2],d=b[1];n(a[1][1+bg],a,b);switch(c[0]){case +3:l(a[1][1+b3],a,d,c[1]);return b;case +4:l(a[1][1+b2],a,d,c[1]);return b;case +5:l(a[1][1+b1],a,d,c[1]);return b;case +9:n(a[1][1+bS],a,c[1]);return b;case +20:n(a[1][1+bO],a,c[1]);return b;case +34:l(a[1][1+bv],a,d,c[1]);return b;case +21:case +26:var +e=m(jQ[4],[0,d,c]);if(e)var +g=e[1],i=[0,m(gn[1][8][5],d),0],f=l(a[1][1+am],a,g,i);else +var +f=i8[1];n(a[1][1+aB],a,b);o(a[1][1+a_],a,d,c,f);return b;default:return n(a[1][1+h],a,b)}}function +ed(e,b,c,d){var +r=26===c[0]?c[1][3]:0;switch(c[0]){case +21:var +j=c[1],a=j[2],f=j[1];break;case +26:var +q=c[1][1],a=q[2],f=q[1];break;default:throw B([0,ft[11],[0,b],d3G],1)}n(e[1][1+G],e,f);var +i=0;switch(a[0]){case +0:var +g=a[1][2][1];break;case +2:var +h=a[1][2];switch(h[0]){case +13:var +g=h[1][1];break;case +16:var +g=h[1][2];break;default:i=1}break;default:i=1}var +s=i?0:[0,g],k=m(jQ[4],f);if(!k){n(e[1][1+bN],e,a);return 0}var +p=k[1];if(r){var +t=[0,m(gn[1][8][5],b),d3H];l(e[1][1+R],e,p,t)}n(e[1][1+bN],e,a);var +u=aY(s,d,function(a){var +c=[0,m(gn[1][8][5],b),[16,a,b]];return o(e[1][1+ad],e,p,c,d)});return n(e[1][1+I],e,u)}function +ee(a,b){var +c=b[2],d=b[1];n(a[1][1+aB],a,[0,d,c]);switch(c[0]){case +5:l(a[1][1+bm],a,d,c[1]);break;case +21:l(a[1][1+cK],a,d,c[1]);break;case +25:var +e=c[1][1],f=e[3],g=e[2],i=i8[1];n(a[1][1+G],a,e[1]);n(a[1][1+I],a,i);S(g,m(a[1][1+b0],a));n(a[1][1+bp],a,f);l(a[1][1+W],a,0,d);break;case +26:o(a[1][1+a_],a,d,c,i8[1]);break;default:n(a[1][1+h],a,[0,d,c])}return[0,d,c]}function +ef(a,b){var +c=b[2],e=0;switch(c[0]){case +21:var +d=c[1][1];break;case +26:var +d=c[1][1][1];break;default:e=1}if(!e)n(a[1][1+aZ],a,d);return n(a[1][1+aB],a,b)}function +eg(a,b){var +f=b[2],e=b[1];switch(f[0]){case +21:case +26:var +g=n(a[1][1+av],a,[0,e,f]);if(g){var +h=o(gn[1][7][31],0,e,[0,0,d3I,g[1],0],a[1+i][1]),c=a[1+i];a[1+i]=[0,h,c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19]];return 0}var +j=n(gn[1][7][7],e,a[1+i][1]),d=a[1+i];a[1+i]=[0,j,d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15],d[16],d[17],d[18],d[19]];return 0;default:return 0}}function +eh(a,b,c){var +d=a[1+r],e=c[2];if(2===c[1]){n(a[1][1+u],a,d[2]);n(a[1][1+g],a,e);n(a[1][1+A],a,0);var +h=n(a[1][1+F],a,0);n(a[1][1+f],a,0);return n(a[1][1+a6],a,h)}l(a[1][1+bw],a,b,c);return 0}function +ei(a,b,c){var +d=c[1],e=c[3][2][1];if(e){var +g=e[1];if(0===g[0]&&!e[2]){var +k=g[1];if(aDY(d)){var +o=m(jQ[4],k);if(o)var +r=o[1],s=[0,m(gn[1][8][5],b),4],p=l(a[1][1+am],a,r,s);else +var +p=i8[1];n(a[1][1+h],a,d);n(a[1][1+G],a,k);return n(a[1][1+I],a,p)}}}var +f=c[3],i=c[2];if(AZ(d)){l(a[1][1+bm],a,b,c);return 0}var +j=f[2][1],q=ll(function(a){return 0===a[0]?0:1},j)?0:fx(function(a){return m(jQ[5],a)},j);n(a[1][1+h],a,d);S(i,m(a[1][1+b0],a));n(a[1][1+bp],a,f);l(a[1][1+W],a,0,b);return x(a[1][1+b6],a,q,[0,b,c],d,i,f)}function +ej(a,b,c){var +d=c[3],e=c[2],g=c[1],h=m(a[1][1+bk],a);function +f(a){var +b=m(h,a);return function(a){return n(b,a,1)}}if(4<=g)return 21<=g?o(a[1][1+bR],a,b,e,d):(l(a[1][1+dv],a,b,c),0);switch(g){case +0:return o(f(0),1,b,e,d);case +1:return o(f(0),0,b,e,d);case +2:return o(f(1),1,b,e,d);default:return o(f(1),0,b,e,d)}}function +ek(a,b,c,d){n(a[1][1+G],a,c);n(a[1][1+h],a,d);var +f=m(jQ[4],c);if(!f)return 0;var +g=f[1],j=d[1],k=s(m(jQ[12],g),j),p=o(ft[8][31],0,[0,3,j],[0,k],a[1+i][2]),e=a[1+i];a[1+i]=[0,e[1],p,e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15],e[16],e[17],e[18],e[19]];var +q=[0,m(gn[1][8][5],b),[3,d]];return l(a[1][1+R],a,g,q)}function +el(i,j,c,d,e,f,g){function +a(a,b){n(i[1][1+h],i,a);n(i[1][1+h],i,b);return 0}var +b=0===d?1:0;function +k(a,b){n(i[1][1+h],i,a);n(i[1][1+h],i,b);var +d=x(i[1][1+$],i,c,j,e,b,a);return n(i[1][1+I],i,d)}function +l(a,b){n(i[1][1+h],i,a);var +d=x(i[1][1+$],i,c,j,e,a,b);n(i[1][1+h],i,b);return n(i[1][1+I],i,d)}var +o=m(i[1][1+bu],i),p=m(i[1][1+bK],i),q=m(i[1][1+bP],i),r=m(i[1][1+bx],i);return afC(afr[4],r,q,p,o,l,k,b,a,j,c,e,f,g)}function +em(g,b,c,d,e,f){var +j=f[1],t=e[2],G=g[1+r],H=26===t[0]?[0,e[1],[21,t[1][1]]]:e,F=0;if(c){var +u=H[2];if(21===u[0]){var +y=u[1],k=y[2],q=0,I=y[1];switch(k[0]){case +0:var +z=k[1],h=z[2][1],A=z[1];q=1;break;case +1:break;default:var +D=k[1],E=D[2];if(13===E[0]){var +h=E[1][1],A=D[1];q=1}}if(q){var +B=m(jQ[4],I);if(B){var +p=B[1],J=s([41,[0,[0,h]]],A);if(0===p[2][2]){var +K=n(g[1][1+v],g,p[2][1])[4];aT(K,function(a){return n(G[1][7],g[1+w],[0,h,j,a])})}var +L=o(ft[8][31],0,[0,3,j],[0,J],g[1+i][2]),a=g[1+i];g[1+i]=[0,a[1],L,a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19]];var +M=b?[13,h,j]:[2,[13,h,j]],N=[0,m(gn[1][8][5],d),M],C=l(g[1][1+am],g,p,N)}else +var +C=i8[1];var +x=C;F=1}}}if(!F)var +x=i8[1];return x}function +en(j,b,c,d,e,f,g,h){var +u=g[2],l=g[1],K=j[1+r];if(d)return h;var +A=f[2],L=26===A[0]?[0,f[1],[21,A[1][1]]]:f,B=L[2];if(21===B[0]){var +C=B[1],x=C[2],z=0,M=C[1];switch(x[0]){case +0:var +D=x[1],k=D[2][1],E=D[1];z=1;break;case +1:break;default:var +I=x[1],J=I[2];if(13===J[0]){var +k=J[1][1],E=I[1];z=1}}if(z){var +t=0;switch(u[0]){case +9:if(!q(u[1][2][1],kq)&&m(j[1][1+bc],j)){var +p=[0,[14,k,l]];t=1}break;case +15:var +p=[0,[14,k,l]];t=1;break;case +34:if(5===u[1][1]){var +p=[0,[14,k,l]];t=1}break}if(!t)var +p=0;var +F=m(jQ[4],M);if(F&&p){var +G=p[1],y=F[1],N=s([41,[0,[0,k]]],E);if(0===y[2][2]){var +O=n(j[1][1+v],j,y[2][1])[4];aT(O,function(a){return n(K[1][7],j[1+w],[0,k,l,a])})}var +P=o(ft[8][31],0,[0,3,l],[0,N],j[1+i][2]),a=j[1+i];j[1+i]=[0,a[1],P,a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19]];var +H=c?G:[2,G],Q=b?[2,H]:H,R=[0,m(gn[1][8][5],e),Q];return o(j[1][1+ad],j,y,R,h)}return h}}return h}function +eo(a,b,c,d,e,f,g){var +k=x(a[1][1+$],a,1,b,d,e,g),l=m(jQ[4],e),u=0;if(l){var +p=l[1],h=p[2];if(b){var +i=h[1],j=0;if(q(i,jc)&&q(i,f0))if(h[2])j=2;else{var +t=n(a[1][1+v],a,i)[4];if(t)n(a[1+br],t[1],f);j=1}var +w=0;switch(j){case +0:if(h[2])w=1;break;case +1:break;default:w=1}var +y=[0,m(gn[1][8][5],d),f],r=o(a[1][1+ad],a,p,y,k);u=1}}if(!u)var +r=k;n(a[1][1+G],a,e);n(a[1][1+I],a,r);var +s=1-c;return s?n(a[1][1+A],a,0):s}function +ep(a,b,c,d,e,f){var +r=d[1];if(q(e,pS))if(q(e,qR))if(q(e,pj))if(q(e,oW))if(q(e,sS))if(q(e,qj))if(q(e,rU))if(q(e,kq)){n(a[1+z],0,[98,r,e]);var +h=0,g=0}else +var +h=1,g=d3J;else +var +h=0,g=[0,[8,b]];else +var +h=0,g=[0,[7,b]];else +var +h=0,g=d3K;else +var +h=0,g=[0,[5,b]];else +var +h=0,g=d3L;else +var +h=0,g=[0,[4,b]];else +var +h=0,g=[0,[6,b]];var +i=m(jQ[4],c);if(g&&i){var +j=g[1],s=i[1];n(a[1][1+G],a,c);var +p=0;if(f&&!h){var +k=j;p=1}if(!p)var +k=[2,j];var +t=[0,m(gn[1][8][5],b),k];l(a[1][1+R],a,s,t);var +o=f?h:f;return o?n(a[1][1+A],a,0):o}n(a[1][1+G],a,c);return 0}function +eq(a,b,c,d,e,f,g){n(a[1][1+h],a,g);var +i=x(a[1][1+$],a,0,c,e,f,g);if(d&&!m(a[1][1+bc],a)){n(a[1][1+G],a,f);return n(a[1][1+I],a,i)}var +j=m(jQ[4],f);if(j)var +l=j[1],p=c?d3M:d3N,q=[0,m(gn[1][8][5],e),p],k=o(a[1][1+ad],a,l,q,i);else +var +k=i;n(a[1][1+G],a,f);var +r=fU(a[1][1+a$],a,b,b,c,e,f,g,k);n(a[1][1+I],a,r);return b?n(a[1][1+A],a,0):b}function +er(a){var +c=n(a[1][1+aI],a,d3O);if(!c)return 0;var +b=c[1][1][1][2];if(12===b[0]&&!q(b[1],kq))return 1;return 0}function +es(a,b,c,d,e,f){var +h=x(a[1][1+$],a,1,c,d,e,f),i=m(jQ[4],e);if(i)var +k=i[1],l=c?1:d3P,p=[0,m(gn[1][8][5],d),l],j=o(a[1][1+ad],a,k,p,h);else +var +j=h;var +g=c!==b?1:0,q=fU(a[1][1+a$],a,g,b,c,d,e,f,j);n(a[1][1+G],a,e);n(a[1][1+I],a,q);return g?n(a[1][1+A],a,0):g}function +et(c,b){var +a=c[1+r],s=b[3],d=b[2],v=d[1],e=b[1];n(c[1][1+u],c,a[2]);if(2<=e){n(c[1][1+h],c,d);var +y=[0,m(gn[1][8][5],v),d3Q];l(c[1][1+ax],c,d,y);var +z=n(c[1][1+F],c,0),B=m(c[1][1+C],c);n(c[1][1+A],c,0);n(c[1][1+u],c,a[2]);var +D=function(a){n(c[1][1+g],c,s);return 0},E=n(c[1][1+j],c,D),G=n(c[1][1+F],c,0);n(c[1][1+f],c,0);n(c[1][1+f],c,0);n(c[1][1+u],c,a[2]);var +I=[0,m(gn[1][8][5],v),0];l(c[1][1+ax],c,d,I);var +J=n(c[1][1+F],c,0);n(c[1][1+f],c,0);n(c[1][1+u],c,a[2]);o(c[1][1+a7],c,1,z,J);var +K=n(c[1][1+F],c,0);n(c[1][1+f],c,0);var +q=E,p=B,w=G,i=K}else{n(c[1][1+g],c,d);var +N=n(c[1][1+F],c,0),O=m(c[1][1+C],c);if(!e)n(c[1][1+A],c,0);n(c[1][1+u],c,a[2]);var +P=function(a){n(c[1][1+g],c,s);return 0},Q=n(c[1][1+j],c,P),R=n(c[1][1+F],c,0);n(c[1][1+f],c,0);var +S=e?n(c[1][1+F],c,0):N;n(c[1][1+f],c,0);var +q=Q,p=O,w=R,i=S}var +L=1===e?1:0;if(q){var +x=q[1];if(typeof +x==="number"&&x){var +M=m(c[1][1+k],c);n(c[1][1+t],c,p);n(c[1][1+u],c,i);n(c[1][1+Y],c,0);return n(c[1][1+H],c,M)}}n(c[1][1+H],c,p);return o(c[1][1+a7],c,L,i,w)}function +eu(a,b,c){var +d=m(jQ[4],b);return d?l(a[1][1+R],a,d[1],c):0}function +ev(a,b,c,d){var +e=o(a[1][1+a9],a,b,c,d);return n(a[1][1+a6],a,e)}function +ew(a,b,c,d){var +e=d[3],g=c[3];if(b){var +h=0;if(g){var +j=g[1];if(e)var +f=[0,[2,j,e[1]]];else{var +l=j;h=1}}else if(e){var +l=e[1];h=1}else +var +f=0;if(h)var +f=[0,[2,l,[0,hc,i8[1]]]]}else{var +i=0;if(g){var +n=g[1];if(e)var +f=[0,[3,n,e[1]]];else{var +o=n;i=1}}else if(e){var +o=e[1];i=1}else +var +f=0;if(i)var +f=[0,[3,o,[0,hc,i8[1]]]]}var +p=m(a[1][1+aE],a),k=aY(f,[0,hc,i8[1]],p);return[0,k[1],k[2],f]}function +ex(a,b,c){l(a[1][1+b5],a,b,c);var +d=c[2],e=d[2];if(2!==e[0])return 0;var +f=e[1][1][2][1],g=d[1],h=[0,m(gn[1][8][5],b),0],i=n(jQ[6],f,g);return l(a[1][1+R],a,i,h)}function +ey(a,b){var +c=b[1],f=b[2];n(a[1][1+aH],a,b);var +d=f[1],e=1-Bz(n(a[1][1+v],a,d)[1][1]);if(!e)return e;var +g=[0,m(gn[1][8][5],c),0],h=n(jQ[6],d,c);return l(a[1][1+R],a,h,g)}function +ez(a,b,c,d){var +e=b[1],f=n(i8[6],b[2],[0,e,c]),g=[0,function(a,b,c){var +d=c[2],f=b[2],g=b[1],h=d[2],i=d[1],j=f[2],k=f[1];if(j1(g,c[1]))throw B([0,ft[11],[0,e],d3R],1);return[0,[0,g,[0,n(gn[1][8][7],k,i),[0,j,h]]]]}];return l(i8[32],g,d,f)}function +eA(a,b,c){return n(i8[6],b[2],[0,b[1],c])}function +eB(a,b,c){var +d=a[1+i],e=d[19],f=d[18],g=o(gn[1][7][31],0,b,c,a[1+i][17]);a[1+i]=[0,d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15],d[16],g,f,e];return 0}function +eC(a,b,c){var +d=l(a[1][1+am],a,b,c);return n(a[1][1+I],a,d)}function +eD(d,b){var +g=d[1+r],c=g1(d[1+i][7]),h=c[3],j=c[2],k=[0,c[1],i8[1],hc];function +p(e,b,c){var +a=c[3],f=c[2],g=c[1],q=b[2],h=b[1],r=e[1];if(0===e[2]){var +j=n(d[1][1+v],d,r),t=j[4],B=0;if(t){var +k=j[6],C=t[1],D=j[1];if(typeof +k==="number"&&7>k)switch(k){case +0:case +2:case +4:break;default:if(Bz(D[1])){var +K=q[1],L=function(a){return n(d[1+z],0,[77,2,a,[0,r],C])};m(m(gn[1][8][14],L),K);var +u=1;B=1}}}if(!B)var +u=0;var +w=u}else +var +w=0;if(w)return[0,g,f,a];function +E(a){var +h=aax(a),e=n(d[1][1+_],d,0),b=d[1+i],p=b[19],r=b[18],s=b[17],t=b[16],u=b[15],v=b[14],w=b[13],x=b[12],y=b[11],z=b[10],A=b[9],B=b[8],C=b[7],D=o(g5,0,e,[0,q],d[1+i][6]);d[1+i]=[0,b[1],b[2],b[3],b[4],b[5],D,C,B,A,z,y,x,w,v,u,t,s,r,p];var +j=n(lT,h,g);if(j){var +k=j[1][2],E=aay(k,a),l=n(d[1][1+_],d,0),c=d[1+i],F=c[19],G=c[18],H=c[17],I=c[16],J=c[15],K=c[14],L=c[13],M=c[12],N=c[11],O=c[10],P=c[9],Q=c[8],R=c[7],S=o(g5,0,l,[1,k,e],d[1+i][6]);d[1+i]=[0,c[1],c[2],c[3],c[4],c[5],S,R,Q,P,O,N,M,L,K,J,I,H,G,F];var +m=E,f=l}else +var +m=a,f=e;return[0,[0,h,e,f],aav(f,m)]}var +F=[0,[O,function(a){var +c=s(m(jQ[12],[0,h,e]),h),f=l(ft[8][48],h,[0,c],d[1+i][2]),b=d[1+i];d[1+i]=[0,b[1],f,b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19]];return i6([3,h])}]],x=o(d[1][1+ba],d,e,F,E);if(!x)return[0,g,f,a];var +y=x[1],p=y[1],A=p[1],G=y[2],H=p[3],I=o(g5,0,A,[0,e,p[2]],a),J=aY(G,f,function(a){return o(i8[31],0,e,a,f)});return[0,o(g5,0,A,[0,e,H],g),J,I]}var +e=l(i8[12],p,b,k),f=e[2],a=d[1+i],q=e[3],t=e[1],u=a[19],w=a[18],x=a[17],y=a[16],A=a[15],B=a[14],C=a[13],D=a[12],E=a[11],F=a[10],G=a[9],H=a[8],I=mo(d[1+i][7]),J=n(g[3],h,[0,[0,q,f]]),K=[0,[0,t,l(i8[32],0,f,j),J],I];d[1+i]=[0,a[1],a[2],a[3],a[4],a[5],a[6],K,H,G,F,E,D,C,B,A,y,x,w,u];return 0}function +eE(e,b){function +c(a){var +b=a;for(;;){switch(b[0]){case +1:var +d=b[1];switch(d[0]){case +0:break;case +1:var +b=d[1];continue;case +2:var +e=d[1],f=c([1,d[2]]);return[3,c([1,e]),f];default:var +g=d[1],h=c([1,d[2]]);return[2,c([1,g]),h]}break;case +2:var +i=b[1],j=c(b[2]);return[2,c(i),j];case +3:var +k=b[1],l=c(b[2]);return[3,c(k),l]}return b}}function +d(a){switch(a[0]){case +0:return[0,a[1],a[2]];case +1:var +b=a[1];if(0!==b[0])throw B([0,ft[11],0,d3S],1);var +j=b[2],k=b[1];return[0,n(bdM,function(a){var +d=a[2],f=a[1],c=n(e[1][1+_],e,0),b=e[1+i],g=b[19],h=b[18],j=b[17],k=b[16],l=b[15],m=b[14],p=b[13],q=b[12],r=b[11],s=b[10],t=b[9],u=b[8],v=b[7],w=o(g5,0,c,[3,d],e[1+i][6]);e[1+i]=[0,b[1],b[2],b[3],b[4],b[5],w,v,u,t,s,r,q,p,m,l,k,j,h,g];return[0,f,c]},k),j];case +2:var +m=a[2],c=d(a[1]),p=c[2],q=c[1],f=d(m),r=f[2],s=f[1],t=l(bdN,[0,function(a,b,c){var +f=b[1],h=c[2],j=b[2];if(!ao(f,c[1]))return 0;var +g=n(e[1][1+_],e,0),d=e[1+i],k=d[19],l=d[18],m=d[17],p=d[16],q=d[15],r=d[14],s=d[13],t=d[12],u=d[11],v=d[10],w=d[9],x=d[8],y=d[7],z=o(g5,0,g,[1,j,h],e[1+i][6]);e[1+i]=[0,d[1],d[2],d[3],d[4],d[5],z,y,x,w,v,u,t,s,r,q,p,m,l,k];return[0,[0,f,g]]}],q,s);return[0,t,l(i8[32],0,p,r)];default:var +u=a[2],g=d(a[1]),v=g[2],w=g[1],h=d(u),x=h[2],y=h[1],z=l(bdL,function(a,b,c){if(b&&c){var +f=c[1],g=b[1],h=g[1],k=f[2],l=g[2];if(!ao(h,f[1]))return 0;var +j=n(e[1][1+_],e,0),d=e[1+i],m=d[19],p=d[18],q=d[17],r=d[16],s=d[15],t=d[14],u=d[13],v=d[12],w=d[11],x=d[10],y=d[9],z=d[8],A=d[7],B=o(g5,0,j,[2,l,k],e[1+i][6]);e[1+i]=[0,d[1],d[2],d[3],d[4],d[5],B,A,z,y,x,w,v,u,t,s,r,q,p,m];return[0,[0,h,j]]}return 0},w,y);return[0,z,l(i8[32],0,v,x)]}}return d(c(b))}function +eF(a,b){var +e=a[1+r],g=b[3],h=g1(a[1+i][7])[3],c=n(e[3],h,g),j=m(a[1][1+aE],a),d=aY(c,[0,hc,i8[1]],j),k=[0,d[1],d[2],c];n(a[1][1+f],a,0);return n(a[1][1+u],a,k)}function +eG(a,b){var +c=g1(a[1+i][7]),d=n(a[1][1+a5],a,c);n(a[1][1+f],a,0);return n(a[1][1+u],a,d)}function +eH(a,b){var +c=a[1+r];if(!b)return c[2];if(!b[2])return b[1];var +d=c[2];return M(n(a[1][1+a9],a,1),d,b)}function +eI(a,b){var +c=b[3],f=a[1+r];if(!c)return f[2];var +d=[1,c[1]],e=n(a[1][1+aE],a,d);return[0,e[1],e[2],[0,d]]}function +eJ(a,b){return g1(a[1+i][7])}function +eK(c,b){var +d=g1(c[1+i][7])[1],a=c[1+i],e=a[19],f=a[18],g=a[17],h=a[16],j=a[15],k=a[14],l=a[13],n=a[12],p=a[11],q=a[10],r=a[9],s=a[8],t=mo(c[1+i][7]);c[1+i]=[0,a[1],a[2],a[3],a[4],a[5],a[6],t,s,r,q,p,n,l,k,j,h,g,f,e];return m(m(Kb,function(a,b){var +d=b[2],e=b[1];function +f(a){return aay(d,a)}return o(c[1][1+aa],c,e,0,f)}),d)}function +eL(a,b){var +c=a[1+i],d=c[19],e=c[18],f=c[17],g=c[16],h=c[15],j=c[14],k=c[13],l=c[12],m=c[11],n=c[10],o=c[9],p=c[8],q=mo(a[1+i][7]);a[1+i]=[0,c[1],c[2],c[3],c[4],c[5],c[6],q,p,o,n,m,l,k,j,h,g,f,e,d];return 0}function +eM(c,b){var +d=g1(c[1+i][7])[1],a=c[1+i],e=a[19],f=a[18],g=a[17],h=a[16],j=a[15],k=a[14],l=a[13],n=a[12],p=a[11],q=a[10],r=a[9],s=a[8],t=mo(c[1+i][7]);c[1+i]=[0,a[1],a[2],a[3],a[4],a[5],a[6],t,s,r,q,p,n,l,k,j,h,g,f,e];return m(m(Kb,function(a,b){var +d=b[2],e=b[1];function +f(a){return i6(aaw(d,a[2]))}return o(c[1][1+aa],c,e,0,f)}),d)}function +eN(a,b){var +c=a[1+i],d=b[2],e=b[1];a[1+i]=[0,c[1],c[2],c[3],c[4],c[5],c[6],[0,b,a[1+i][7]],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19]];return n(Kb,function(e,b){var +c=b[1],f=b[2];function +g(a){return aax(a)===e?aav(f,a):a}var +h=S(n(i8[27],c,d),Ju);return o(a[1][1+aa],a,c,h,g)},e)}function +eO(c,b){var +a=aDV(b),d=fs(a,0,function(a,b){if(h1(a)){var +f=b[2],g=b[1];switch(f[0]){case +18:break;case +37:var +h=f[1],i=function(a){var +b=a[2][2];return b?n(c[1+z],0,[95,b[1][1]]):0};fV(h[1],i);break;default:n(c[1+z],0,[95,g])}return a}try{n(c[1][1+e],c,b);var +j=0;return j}catch(f){var +d=fk(f);if(d[1]===Ge)return[0,d[2]];throw B(d,0)}});n(c[1][1+ac],c,d);return b}function +eP(a,b){switch(b[2][0]){case +17:case +23:case +24:case +25:case +30:case +38:break;default:var +c=a[1+i];a[1+i]=[0,c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],0,c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19]]}return m(m(dR,a),b)}function +eQ(f,b,c){function +a(a){var +g=c[1],b=f[1+i],h=c[2],k=b[19],m=b[18],o=b[17],p=b[16],q=b[15],r=b[14],s=b[13],t=b[12],u=f[1+i][11],v=[0,BM([0,g]),u];f[1+i]=[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],v,t,s,r,q,p,o,m,k];function +w(a){n(f[1][1+e],f,h);return 0}var +x=n(f[1][1+j],f,w),d=f[1+i];f[1+i]=[0,d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],0,d[12],d[13],d[14],d[15],d[16],d[17],d[18],d[19]];var +y=[0,Gd([0,g]),0];function +z(a){return uM(y,a)}return l(f[1][1+J],f,z,x)}n(f[1][1+Q],f,a);return c}function +eR(a,b){var +d=b[2][1],e=d[1],f=fX(d),g=o(ft[8][31],0,[0,3,e],[0,f],a[1+i][2]),c=a[1+i];a[1+i]=[0,c[1],g,c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19]];n(a[1][1+h],a,d);return b}function +eS(a,b,c){l(a[1][1+d],a,b,abi);n(m(dZ,a),b,c);l(a[1][1+W],a,1,b);return c}function +eT(a,b,c){var +d=c[2],e=c[1];n(a[1][1+h],a,d);if(6===e)l(a[1][1+bZ],a,b,d);else if(7<=e)l(a[1][1+W],a,0,b);return c}function +eU(a,b,c){var +p=a[1+r],j=s(9,b),h=i6([18,j]),e=c[2];switch(e[0]){case +9:var +k=e[1],f=k[2][1],q=k[1];if(!n(a[1][1+P],a,f)){var +g=n(a[1][1+v],a,f),m=g[1],o=ap(p[4],a[1+w],f,q,g[4],g[6],6,m[1]);if(o){var +d=a[1+i],t=o[1],u=d[19],y=d[18],A=d[17],B=d[16],C=d[15],D=d[14],E=d[13],F=d[12],G=d[11],H=d[10],I=d[9],J=d[8],K=d[7],L=d[6],M=d[5],N=d[4],O=d[3],Q=l(ft[8][48],c[1],0,a[1+i][2]);a[1+i]=[0,d[1],Q,O,N,M,L,K,J,I,H,G,F,E,D,C,B,A,y,u];return n(a[1+z],0,t)}m[1]=h;return 0}break;case +21:return x(a[1][1+aL],a,1,e[1],b,h,j)}return 0}function +eV(a,b,c){n(m(dM,a),b,c);l(a[1][1+W],a,0,b);return c}function +eW(c,b){var +a=b[2][1];fV(a,function(a){var +d=0===a[0]?a[1]:a[1][2][1],e=d[1],f=1-n(ft[4][4],c[1+X],e);if(f){var +h=c[1+i][2],j=[0,fX(d)],k=o(ft[8][31],0,[0,3,e],j,h),b=c[1+i];c[1+i]=[0,b[1],k,b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19]];var +g=0}else +var +g=f;return g});return m(m(dy,c),b)}function +eX(a,b,c){var +q=a[1+r];n(m(dA,a),b,c);var +f=c[3],s=c[2];if(AZ(c[1])){var +e=0;if(s)e=1;else{var +d=f[2][1],o=0;if(d){var +i=d[1];if(0===i[0]){var +j=i[1],k=j[2],p=0;if(14===k[0]&&!k[1][1]){var +v=d[2];fx(m(a[1][1+bX],a),v);n(a[1][1+N],a,BN);p=1}if(!p){var +t=d[2];n(a[1][1+u],a,q[2]);n(a[1][1+g],a,j);fx(m(a[1][1+bX],a),t);n(a[1][1+Y],a,0)}o=1}else +e=1}else{n(a[1][1+N],a,BN);o=1}}if(e){var +h=f[2][1],w=0;if(!h||0===h[1][0])w=1}}else +l(a[1][1+W],a,0,b);return c}function +eY(a,b,c){var +d=c[1],f=d[2][1],g=d[1],h=Bt(b,c);if(h){var +i=h[1];l(a[1+aO],1,[0,f],g);n(a[1][1+e],a,[0,b,i]);return c}l(a[1+aO],0,[0,f],g);return n(m(dE,a),b,c)}function +eZ(a,b){var +c=b[2];if(0===c[0])return m(m(dO,a),b);var +e=c[2],d=e[1],f=e[2];n(a[1][1+bJ],a,c[1]);var +g=Bv([0,[0,d,d3T],3]),h=n(a[1][1+a4],a,d);ap(a[1][1+ag],a,0,3,d,g,h,f);return b}function +e0(d){return m(hk,function(a,b){if(4!==b[0])return 0;var +e=b[1],f=o(ft[8][31],0,[0,3,e[2]],[0,e],d[1+i][2]),c=d[1+i];d[1+i]=[0,c[1],f,c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19]];return 0})}function +e1(a,b,c){var +d=m(afr[3],c[1]);n(a[1][1+bq],a,d);return n(m(dN,a),b,c)}function +e2(d,b,c){if(c[4])return n(m(b_,d),b,c);function +a(a){var +e=m(d[1][1+k],d);function +f(a){return n(d[1][1+t],d,e)}function +g(a){n(m(b_,d),b,c);return 0}return l(d[1][1+L],d,g,f)}n(d[1][1+al],d,a);return c}function +e3(d,b,c){if(c[4])return n(m(b$,d),b,c);function +a(a){var +e=m(d[1][1+k],d);function +f(a){return n(d[1][1+t],d,e)}function +g(a){n(m(b$,d),b,c);return 0}return l(d[1][1+L],d,g,f)}n(d[1][1+al],d,a);return c}function +e4(d,b,c){var +a=c[3],e=a[2],f=c[5],g=a[1];n(d[1][1+bJ],d,c[2]);var +h=h1(e[2][2][1])?m(d[1][1+c0],d):m(d[1][1+a4],d);n(h,g,e);fV(f,function(a){n(d[1][1+dl],d,a);return 0});return c}function +e5(a,b,c){return l(a[1][1+dw],a,b,c)}function +e6(a,b){var +d=b[2],e=d[2],c=b[1],h=d[1],f=av0(h,function(a){return a[1][2][4]}),g=[0,[0,[0,c,d3V],3],[0,[0,[0,c,d3U],3],rs]],i=[0,c,[0,f[2],e]],j=[0,c,[0,f[1],e]],k=m(b9,a);ap(a[1][1+ag],a,0,1,c,g,k,i);var +l=m(b9,a);ap(a[1][1+ag],a,0,2,c,g,l,j);return b}function +e7(a,b,c){if(c){var +f=c[1],h=f[2][1],g=f[1];p(a[1][1+ae],a,2,0,g,h);m(m(af,a),f);var +k=s([25,[0,h]],g),j=g}else{var +u=s(d3Y,b),e=a[1+i],B=e[19],C=e[18],D=e[17],E=e[16],F=e[15],G=e[14],H=e[13],I=e[12],J=e[11],K=e[10],L=e[9],M=e[8],N=e[7],O=e[6],P=e[5],Q=e[4],R=e[3],S=l(ft[8][48],b,[0,u],a[1+i][2]);a[1+i]=[0,e[1],S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D,C,B];var +k=u,j=b}var +o=n(a[1][1+bd],a,[0,0,j]);if(o){var +q=[0,s([37,[1,d3W]],b)],r=[0,s([37,[1,d3X]],b)],v=a[1+i][2],w=m(l(ft[8][31],0,[0,6,b],[0,k]),v),x=m(l(ft[8][31],0,[0,7,b],q),w),y=m(l(ft[8][31],0,[0,9,b],r),x),z=m(l(ft[8][31],0,[0,8,b],q),y),A=m(l(ft[8][31],0,[0,10,b],r),z),d=a[1+i];a[1+i]=[0,d[1],A,d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15],d[16],d[17],d[18],d[19]];var +t=0}else +var +t=o;return t}function +e8(a,b,c){var +g=a[1+r],j=m(g[5][1],a[1+w]);function +k(a){return n(j,0,a)}var +l=m(g[1][1],a[1+w]),d=c[4],h=c[2][2][1],i=c[1],e=aY(i,b,function(a){return a[1]});if(d){var +f=d[1][1];fV(h,function(a){if(0===a[0]){var +c=a[1][2];if(!c[1]){var +d=c[3],g=d[1],h=d[2],b=p(d21[1],0,l,k,e,f);x(D(b,QI,xc),b,0,g,[0,[0,[0,f,d23],3],[0,[0,[0,e,d22],3],rs]],n(D(b,Rm,xp),b,g),h);return m(D(b,-635922103,rT),b)}}return 0})}var +o=[0,c[1],[0,b,c[2][2]],c[3],c[4],c[5],c[6],c[7]];n(m(dB,a),b,o);return c}function +e9(a,b){var +d=b[2][2][2][1],e=d[2][1],f=d[1],g=[0,f,e,n(a[1][1+v],a,e)[1][1][1],[0,0]],c=a[1+i];a[1+i]=[0,c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],[0,g],c[14],c[15],c[16],c[17],c[18],c[19]];return m(m(dU,a),b)}function +e_(o,b,c,d,e,f,g,h){var +u=o[1+r];function +p(a){var +p=m(o[1][1+k],o);function +q(a){return n(o[1][1+t],o,p)}function +r(a){var +q=o[1+i][12],r=o[1+i][13],t=S(g,function(a){return aas(e)}),k=o[1+i];o[1+i]=[0,k[1],k[2],k[3],k[4],k[5],k[6],k[7],k[8],k[9],k[10],k[11],t,k[13],k[14],k[15],k[16],k[17],k[18],k[19]];function +y(a){var +k=h[1][1],p=Bv([0,[0,k,[0,wj,0]],14]);if(b)var +q=p;else{var +t=e[2][1];if(t){var +r=t[1][1],j=o[1+i],D=j[19],E=j[18],F=j[17],G=j[16],H=j[15],I=j[14],J=j[13],K=j[12],L=j[11],M=j[10],N=j[9],O=j[8],P=j[7],Q=j[6],R=j[5],S=j[4],T=j[3],U=o[1+i][2],V=[0,s(39,r)],W=l(ft[8][48],r,V,U);o[1+i]=[0,j[1],W,T,S,R,Q,P,O,N,M,L,K,J,I,H,G,F,E,D];var +y=[0,[0,[0,r,[0,d32,0]],2],p]}else +var +y=[0,[0,[0,c,[0,d33,0]],3],p];var +q=y}var +z=aY(d,q,function(a){return[0,[0,[0,a,[0,abi,0]],15],q]}),A=0;function +C(a){l(u[1][8],o[1+w],k,d3Z);ap(m(dK,o),b,c,d,e,f,g,h);var +j=N6(0,0,0,n(o[1][1+v],o,wj)[1][1])[2],i=fs(j,d31,function(a,b){var +d=a[1],e=a[2];switch(b[0]){case +0:return[0,[0,b[1][2],d],e];case +4:return[0,d,1];default:throw B([0,ft[11],[0,c],d30],1)}});return l(u[1][8],o[1+w],k,[0,i[1],i[2]])}return x(o[1][1+aj],o,0,c,z,C,A)}var +z=n(o[1][1+j],o,y),p=o[1+i];o[1+i]=[0,p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8],p[9],p[10],p[11],q,r,p[14],p[15],p[16],p[17],p[18],p[19]];var +A=[0,abn,[0,BN,0]];function +C(a){return uM(A,a)}return l(o[1][1+J],o,C,z)}return l(o[1][1+L],o,r,q)}function +a(a){return n(o[1][1+Q],o,p)}return n(o[1][1+al],o,a)}function +e$(b,e,c,d){var +g=b[1+r];function +f(a){var +f=m(b[1][1+k],b);function +h(a){return n(b[1][1+t],b,f)}function +i(a){function +f(a){var +f=c[1],h=Bv([0,[0,f,[0,wj,0]],14]),i=0;function +j(a){l(g[1][8],b[1+w],f,d34);l(m(dC,b),e,c,d);var +i=N6(0,0,0,n(b[1][1+v],b,wj)[1][1])[2],h=fs(i,d36,function(a,b){var +c=a[1],d=a[2];switch(b[0]){case +0:return[0,[0,b[1][2],c],d];case +4:return[0,c,1];default:throw B([0,ft[11],[0,e],d35],1)}});return l(g[1][8],b[1+w],f,[0,h[1],h[2]])}return x(b[1][1+aj],b,0,e,h,j,i)}var +h=n(b[1][1+j],b,f),i=[0,abn,[0,BN,0]];function +k(a){return uM(i,a)}return l(b[1][1+J],b,k,h)}return l(b[1][1+L],b,i,h)}function +a(a){return n(b[1][1+Q],b,f)}return n(b[1][1+al],b,a)}function +fa(a,b,c){var +f=c[2],e=c[1];if(2===f[0])var +h=[0,f[1][1][2][1]],k=b?s([35,h],e):s([34,h],e),g=k;else +var +g=s(56,e);var +j=o(ft[8][31],0,[0,1,e],[0,g],a[1+i][2]),d=a[1+i];a[1+i]=[0,d[1],j,d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15],d[16],d[17],d[18],d[19]];return 0}function +fb(a,b){var +c=b[2][1];l(a[1][1+ak],a,1,c);m(m(ca,a),c);return b}function +fc(a,b){l(a[1][1+ak],a,0,b);m(m(ca,a),b);return b}function +fd(a,b){var +c=b[2][1];l(a[1][1+ak],a,1,c);m(m(cb,a),c);return b}function +fe(a,b){l(a[1][1+ak],a,0,b);return m(m(cb,a),b)}function +ff(a,b,c,d){l(m(dS,a),b,c,d);if(d)var +g=d[1][1];else{var +t=s(d38,b),u=l(ft[8][48],b,[0,t],a[1+i][2]),f=a[1+i];a[1+i]=[0,f[1],u,f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12],f[13],f[14],f[15],f[16],f[17],f[18],f[19]];var +g=b}var +h=n(a[1][1+bd],a,[0,0,g]),j=h?1-c:h;if(j){var +p=a[1+i][2],q=[0,s([37,[1,d37]],b)],r=o(ft[8][31],0,[0,5,b],q,p),e=a[1+i];a[1+i]=[0,e[1],r,e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15],e[16],e[17],e[18],e[19]];var +k=0}else +var +k=j;return k}function +fg(d,b,c){function +a(a){var +q=c[3],r=c[2],s=c[1],g=s[1],A=s[2],u=m(d[1][1+k],d);function +B(a){l(d[1][1+bn],d,g,A);return 0}var +h=n(d[1][1+j],d,B),e=m(d[1][1+k],d);n(d[1][1+H],d,u);var +C=0,D=[0,BN,0];function +E(a){return uM(D,a)}l(d[1][1+J],d,E,C);if(r)var +v=r[1],F=v[2],G=v[1],I=function(a){l(d[1][1+dq],d,G,F);return 0},b=n(d[1][1+j],d,I);else +var +P=function(a){return n(d[1][1+N],d,1)},b=n(d[1][1+j],d,P);var +i=m(d[1][1+k],d),o=0;if(h){var +w=h[1];if(typeof +w==="number"){var +p=0;if(w){if(b){var +x=b[1];if(typeof +x==="number")if(x)p=1;else{var +f=b;o=1}}}else if(b)p=1;if(p){var +f=h;o=1}}}if(!o)var +f=0;if(q){var +y=q[1][2],K=function(a){if(b)n(d[1][1+t],d,e);else +l(d[1][1+aG],d,e,i);function +c(a){l(d[1][1+bn],d,g,y);return 0}n(d[1][1+j],d,c);return 0};n(d[1][1+Q],d,K);var +L=m(d[1][1+k],d);l(d[1][1+aG],d,u,e);n(d[1][1+H],d,i);l(d[1][1+J],d,d2O,f);var +M=function(a){l(d[1][1+bn],d,g,y);return 0},O=n(d[1][1+j],d,M);n(d[1][1+t],d,L);var +z=O}else{if(b)n(d[1][1+t],d,e);else +l(d[1][1+aG],d,e,i);var +z=0}n(d[1][1+ac],d,z);return n(d[1][1+ac],d,f)}n(d[1][1+Q],d,a);return c}function +fh(e,b,c,d){var +p=e[1+r],q=d[2],s=d[1],w=c[3],x=q[1],G=d[3],I=c[4],J=c[2],K=q[2];n(e[1][1+t],e,c[1]);n(e[1][1+u],e,p[2]);if(x){var +l=x[1],y=b[2];if(21===y[0]){var +E=n(e[1][1+av],e,y[1][1]);if(E){var +R=o(gn[1][7][31],0,s,[0,0,0,E[1],0],e[1+i][1]),a=e[1+i];e[1+i]=[0,R,a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19]]}else{var +S=n(gn[1][7][7],s,e[1+i][1]),g=e[1+i];e[1+i]=[0,S,g[2],g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15],g[16],g[17],g[18],g[19]]}}n(e[1][1+h],e,l);ap(e[1][1+bk],e,1,1,0,l[1],b,l);var +L=m(e[1][1+C],e),B=L,A=n(e[1][1+F],e,0),z=I}else +var +T=m(e[1][1+k],e),B=T,A=p[2],z=1;if(w)n(e[1][1+H],e,w[1]);m(m(hk,function(a,b){var +c=b[1],f=b[2][1];if(n(e[1][1+P],e,a))return 0;if(typeof +c==="number"&&7>c)switch(c){case +0:case +2:case +4:break;default:var +d=n(e[1][1+v],e,a),g=d[1];n(e[1][1+V],e,d[5]);g[1]=i6([2,a,f]);return 0}return 0}),G);function +M(a){n(e[1][1+aU],e,K);return 0}var +D=n(e[1][1+j],e,M),N=D?0:[0,m(e[1][1+k],e)];n(e[1][1+f],e,0);n(e[1][1+t],e,B);var +O=n(e[1][1+a5],e,A);n(e[1][1+u],e,O);var +Q=m(e[1][1+k],e);n(e[1][1+f],e,0);return[0,Q,[0,D,J],N,z]}function +fi(f,b,c,d,e){var +v=m(f[1][1+k],f);function +a(a){var +w=[0,v,0,0,0],h=M(function(a,b){var +c=b[1];return o(f[1][1+bY],f,d,a,[0,c[1],c[2],b[2]])},w,e),k=h[4],p=h[3],q=h[2];n(f[1][1+t],f,h[1]);if(1-k){var +r=n(f[1][1+av],f,d);if(r){var +g=f[1+i],x=g[19],y=g[18],z=g[17],A=g[16],B=g[15],C=g[14],D=g[13],E=g[12],F=g[11],G=g[10],I=g[9],K=g[8],L=g[7],N=g[6],O=g[5],P=g[4],Q=g[3],R=g[2];f[1+i]=[0,o(gn[1][7][31],0,b,[0,0,0,r[1],0],f[1+i][1]),R,Q,P,O,N,L,K,I,G,F,E,D,C,B,A,z,y,x]}}if(p){var +s=p[1];if(k)n(f[1][1+t],f,s);else{n(f[1][1+aR],f,c);n(f[1][1+H],f,s)}}else if(k){var +X=m(f[1][1+bl],f);n(f[1][1+t],f,X)}else +n(f[1][1+aR],f,c);if(k)var +S=g1(q),T=mo(q),U=function(a){return n(f[1][1+au],f,[0,S,T])},u=n(f[1][1+j],f,U);else +var +u=0;var +V=[0,Gd(0),0];function +W(a){return uM(V,a)}return l(f[1][1+J],f,W,u)}n(f[1][1+Q],f,a);return e}function +fj(d,b,c){var +g=m(d[1][1+k],d),f=c[1],i=c[4],a=c[2];n(d[1][1+h],d,f);var +e=l(tm[1],0,0,d[1+ay]),j=K(a,function(a){var +b=a[2][2],c=aah(m(D(e,mY,xg),e));n(D(e,Tt,Hk),e,b);return[0,a,c]});function +p(a){var +b=m(d[1][1+k],d);n(d[1][1+t],d,g);n(d[1][1+h],d,c[1]);return n(d[1][1+t],d,b)}function +q(a){var +c=o(d[1][1+bA],d,b,i,f),g=m(D(e,mY,zD),e);x(d[1][1+aj],d,d39,b,g,c,j);return 0}l(d[1][1+L],d,q,p);return c}function +fl(a,b){var +c=s(d3_,b),d=n(a[1][1+v],a,wj)[1];d[1]=lY(c);return 0}function +fm(d,b,c){var +a=c[3],e=c[1];n(d[1][1+h],d,c[2]);function +f(a){n(d[1][1+c1],d,e);return 0}l(d[1][1+aW],d,f,a);return c}function +fn(d,b,c){var +a=d[1+r],e=c[3],h=c[2],i=c[1];function +j(a){n(d[1][1+c3],d,i);return 0}n(d[1][1+u],d,a[2]);n(d[1][1+g],d,h);l(d[1][1+aW],d,j,e);n(d[1][1+f],d,0);return c}function +fq(d,b,c){function +a(a){m(b,0);function +f(a){n(d[1][1+e],d,c);return 0}n(d[1][1+j],d,f);return 0}function +f(a){var +f=m(d[1][1+k],d);m(b,0);function +g(a){n(d[1][1+e],d,c);return 0}return[0,n(d[1][1+j],d,g),f,[0,f]]}function +g(a){return[0,0,[0,a,0]]}var +h=d[1+i][11],l=[0,BM(0),h];return ap(d[1][1+aw],d,0,a,f,g,1,l)}function +fr(a,b){n(a[1][1+bh],a,b);return b}function +fu(a,b){n(a[1][1+bh],a,b);return b}function +fv(a,b){var +e=b[2],c=e[1],f=b[1],g=e[2];if(c&&!c[2]){var +d=c[1][2][1],h=d[1];if(3===d[2][0])throw B([0,ft[11],[0,h],d4a],1);l(a[1][1+cg],a,g,d);return 0}throw B([0,ft[11],[0,f],d3$],1)}function +fw(d,b,c){var +p=c[4],q=c[3],f=c[2],r=c[1],a=d[1+i][11],o=[0,BM(0),a];function +s(a){a3(m(d[1][1+bW],d),r);a3(m(d[1][1+h],d),f);function +b(a){n(d[1][1+e],d,p);return 0}var +c=n(d[1][1+j],d,b);return l(d[1][1+ab],d,c,o)?0:(a3(m(d[1][1+h],d),q),0)}function +t(a){a3(m(d[1][1+bW],d),r);var +c=m(d[1][1+k],d);a3(m(d[1][1+g],d),f);var +i=m(d[1][1+C],d);function +s(a){n(d[1][1+e],d,p);return 0}var +t=n(d[1][1+j],d,s),b=l(d[1][1+ab],d,t,o);if(!b)a3(m(d[1][1+h],d),q);return[0,b,c,[0,i]]}function +u(a){return[0,0,[0,a,0]]}ap(d[1][1+aw],d,f,s,t,u,0,o);return c}function +fy(d,b,c){var +f=c[2],p=c[1],a=d[1+i][11],o=[0,BM(0),a];function +q(a){function +c(a){n(d[1][1+e],d,p);return 0}var +b=n(d[1][1+j],d,c);l(d[1][1+ab],d,b,o);return b?0:(n(d[1][1+h],d,f),0)}function +r(a){function +c(a){n(d[1][1+e],d,p);return 0}var +h=n(d[1][1+j],d,c),b=l(d[1][1+ab],d,h,o),i=m(d[1][1+k],d);if(!b)n(d[1][1+g],d,f);return[0,b,i,0]}function +s(a){return[0,a,0]}ap(d[1][1+aw],d,[0,f],q,r,s,0,o);return c}function +fz(d,b,c){var +l=c[2],f=c[1];function +a(a){n(d[1][1+h],d,f);function +b(a){n(d[1][1+e],d,l);return 0}n(d[1][1+j],d,b);return 0}function +o(a){var +b=m(d[1][1+k],d);n(d[1][1+g],d,f);var +c=m(d[1][1+C],d);function +h(a){n(d[1][1+e],d,l);return 0}return[0,n(d[1][1+j],d,h),b,[0,c]]}function +p(a){return[0,0,[0,a,0]]}var +q=d[1+i][11],r=[0,BM(0),q];ap(d[1][1+aw],d,[0,f],a,o,p,1,r);return c}function +fB(h,b,c,d,e,f,g){var +p=h[1+r];function +a(a){var +q=l(h[1][1+bB],h,c,g);n(h[1][1+bU],h,q);n(h[1][1+u],h,p[2]);var +i=m(d,0),k=i[3],o=i[1],r=i[2],s=f?l(h[1][1+ab],h,o,g):o;n(h[1][1+bF],h,0);if(k)n(h[1][1+H],h,k[1]);if(b)l(h[1][1+bD],h,r,b[1]);var +t=m(e,s);function +v(a){return n(h[1][1+au],h,t)}var +w=n(h[1][1+j],h,v),x=[0,Gd(0),0];function +y(a){return uM(x,a)}return l(h[1][1+J],h,y,w)}return n(h[1][1+Q],h,a)}function +fD(a,b,c){var +d=a[1+r],h=Gd(0),j=a[1+i][10],e=1-uM(fx(function(a){return a[1]},j),h);if(!e)return e;n(a[1][1+u],a,d[2]);n(a[1][1+g],a,c);n(a[1][1+A],a,0);n(a[1][1+Y],a,0);var +l=m(a[1][1+k],a);n(a[1][1+t],a,b);n(a[1][1+u],a,d[2]);n(a[1][1+g],a,c);n(a[1][1+f],a,0);return n(a[1][1+t],a,l)}function +fE(d,b,c){function +a(a){function +e(a){return uM(c,a)}return l(d[1][1+J],d,e,b)}return n(d[1][1+j],d,a)}function +fF(c,b){return fo(function(a){var +f=a[2],b=n(c[1][1+v],c,a[1]),d=b[5],e=b[1],j=b[6],k=b[2];if(f){d[1]=n(h8[7],f,d[1]);return 0}n(c[1][1+V],c,d);var +g=3!==j?1:0,h=g?1-Bz(e[1]):g;if(h){var +l=function(a,b){return yl(a,i6(b))},o=e[1];e[1]=fs(N7(m(c[1][1+an],c),o),k,l);var +i=0}else +var +i=h;return i},b)}function +fI(e,b,c){function +a(a){var +d=m(e[1][1+k],e),f=n(e[1][1+j],e,b);function +g(a){function +b(a){return uM(c,a)}return l(e[1][1+J],e,b,f)}n(e[1][1+j],e,g);var +h=m(e[1][1+k],e);return o(bd_,0,d,h,function(a,f,c,d){var +b=d?d[1]:n(e[1][1+aJ],e,f),i=b[2],j=b[1],g=c?c[1]:n(e[1][1+aJ],e,f),k=g[2],o=g[1];function +p(a,b,c){var +d=n(h8[27],a,k);return d?b[1]===d[1][1]?c:[0,[0,f,a],c]:[0,[0,f,a],c]}var +h=l(h8[12],p,i,a);return j[1]===o[1]?[0,h,0]:[0,[0,m(jQ[7],f),h],0]})[1]}return n(e[1][1+bt],e,a)}function +fJ(a,b){var +c=a[1+i],d=m(a[1][1+k],a),e=m(b,0);a[1+i]=c;n(a[1][1+t],a,d);return e}function +fL(d,b,c){var +a=c[3],e=c[2],f=b[2],m=c[1],o=b[1];if(b[3]){if(!a)return n(d[1][1+t],d,e)}else if(a)return n(d[1][1+t],d,f);var +g=d[1+i][8];return OC(function(a,b){var +c=b[1],n=b[5],q=b[4],r=b[2],g=l(d[1][1+Z],d,a,o),h=g[1],s=g[2],i=l(d[1][1+Z],d,a,m),t=i[2],u=i[1],j=l(d[1][1+Z],d,a,f),v=j[2],w=j[1],k=l(d[1][1+Z],d,a,e),x=k[2],y=k[1];function +z(a,b,c){if(b&&c){var +e=c[1],f=b[1],d=aKU(a,s),g=aKU(a,t)[1];return d[1]===g?aIW(d)?0:[0,d]:[0,yl(f,e)]}return 0}n[1]=l(h8[8],z,v,x);return h[1]===u[1]?(c[1]=h,0):(c[1]=p(d[1][1+as],d,r,q,w,y),0)},g)}function +fM(d,b,c){var +o=c[3],p=c[2],q=c[1];n(d[1][1+u],d,d[1+r][2]);n(d[1][1+g],d,q);var +s=n(d[1][1+F],d,0),a=m(d[1][1+C],d);function +v(a){n(d[1][1+h],d,p);return 0}var +e=n(d[1][1+j],d,v),w=m(d[1][1+C],d),x=m(d[1][1+k],d);n(d[1][1+f],d,0);n(d[1][1+t],d,a);n(d[1][1+u],d,s);n(d[1][1+A],d,0);function +y(a){n(d[1][1+h],d,o);return 0}var +i=n(d[1][1+j],d,y),z=m(d[1][1+C],d),B=m(d[1][1+k],d);n(d[1][1+f],d,0);n(d[1][1+t],d,a);l(d[1][1+a8],d,[0,w,x,e],[0,z,B,i]);n(d[1][1+au],d,[0,e,[0,i,0]]);return c}function +fO(d,b,c){var +h=c[3],p=c[2],q=c[1];n(d[1][1+u],d,d[1+r][2]);n(d[1][1+g],d,q);var +s=n(d[1][1+F],d,0),a=m(d[1][1+C],d);function +v(a){l(d[1][1+cV],d,0!==h?1:0,p);return 0}var +i=n(d[1][1+j],d,v),w=m(d[1][1+C],d),x=m(d[1][1+k],d);n(d[1][1+f],d,0);n(d[1][1+t],d,a);n(d[1][1+u],d,s);n(d[1][1+A],d,0);function +y(a){a3(function(a){var +b=a[2],c=b[2],f=a[1];return[0,f,[0,n(d[1][1+e],d,b[1]),c]]},h);return 0}var +o=n(d[1][1+j],d,y),z=m(d[1][1+C],d),B=m(d[1][1+k],d);n(d[1][1+f],d,0);n(d[1][1+t],d,a);l(d[1][1+a8],d,[0,w,x,i],[0,z,B,o]);n(d[1][1+au],d,[0,i,[0,o,0]]);return c}function +fP(a,b,c){n(a[1][1+h],a,c[1]);return n(a[1][1+N],a,BN)}function +fQ(a,b,c,d,e){var +j=c[4],k=c[2],p=c[1];n(a[1][1+u],a,a[1+r][2]);n(a[1][1+g],a,e);var +m=n(a[1][1+aA],a,k);n(a[1][1+A],a,0);var +o=n(a[1][1+aA],a,k);n(a[1][1+f],a,0);var +h=a[1+i],q=h[19],s=h[18],t=h[17],v=h[16],w=h[15],x=h[14],y=h[13],z=h[12],B=h[11],C=h[10],D=h[9],E=h[8],F=h[7],G=h[6],H=h[5],I=a[1+i][4];function +J(a){if(!a)return[0,[0,j[1],[0,[0,b,d,m,o],0]]];var +c=a[1],e=c[2];return[0,[0,ED(c[1],j[1],T[8][7]),[0,[0,b,d,m,o],e]]]}var +K=l(gn[1][7][4],p,J,I);a[1+i]=[0,h[1],h[2],h[3],K,H,G,F,E,D,C,B,z,y,x,w,v,t,s,q];return 0}function +fR(h,b,c,d,e){var +k=h[1+r];function +l(a,b){var +c=b[2],d=b[1];return[0,n(h[1][1+aA],h,a),d,c]}function +j(a){return m(m(ul,l),c)}n(h[1][1+u],h,k[2]);n(h[1][1+g],h,e);var +p=j(0);n(h[1][1+A],h,0);var +q=j(0);n(h[1][1+f],h,0);var +a=h[1+i],s=a[19],t=a[18],v=a[17],w=a[16],x=a[15],y=a[14],z=a[13],B=a[12],C=a[11],D=a[10],E=a[9],F=a[8],G=a[7],H=a[6],I=a[5],J=a[4],K=o(gn[1][7][31],0,b,[0,d,p,q],h[1+i][3]);h[1+i]=[0,a[1],a[2],K,J,I,H,G,F,E,D,C,B,z,y,x,w,v,t,s];return 0}function +fS(a,b,c){var +d=c[1],g=a[1+i][12],j=a[1+i][13],f=0;if(g){if(d){var +k=d[1],l=g[1],o=s(60,k[1]);p(a[1][1+a1],a,b,l,o,k);f=1}}else if(j&&d){var +e=d[1],q=j[1],r=fX(e);p(a[1][1+a0],a,[0,e],q,r,e);f=1}if(!f)a3(m(a[1][1+h],a),d);return n(a[1][1+N],a,abn)}function +fT(c,b){function +a(a){var +d=s(30,b[1]);return p(c[1][1+a1],c,b[1],a,d,b)}aT(c[1+i][12],a);function +d(a){var +d=fX(b);return p(c[1][1+a0],c,0,a,d,b)}aT(c[1+i][13],d);return m(m(dz,c),b)}function +fW(a,b,c){var +d=BM(c[1]);return n(a[1][1+N],a,d)}function +fY(a,b,c){var +d=Gd(c[1]);return n(a[1][1+N],a,d)}function +fZ(a,b,c){var +d=c[2],e=d[2],j=d[1];switch(e[0]){case +9:var +g=e[1];n(a[1][1+aH],a,g);l(a[1][1+aD],a,0,g);break;case +21:var +k=e[1];n(a[1][1+h],a,d);n(a[1][1+bI],a,d);var +f=i6([19,s(71,j)]),i=n(jQ[9],0,k);if(i){var +m=i[1],p=function(a){return f};o(a[1][1+aa],a,m,[0,f],p)}break;default:n(a[1][1+h],a,d)}return c}function +f1(d,b,c){var +e=c[1],f=c[2];l(d[1][1+aD],d,[0,c[3]],e);function +a(a){function +b(a){n(d[1][1+co],d,f);return 0}return l(d[1][1+aQ],d,e,b)}n(d[1][1+bT],d,a);return c}function +f2(d,p,c){var +g=d[1+r],x=c[2],y=x[2],e=x[1],A=e[2];if(3!==A[0]){var +B=A[1][2];if(y){var +q=y[1],C=q[2],I=0;if(0===C[0]&&!C[1][1]){var +D=e[2];if(2===D[0]){var +E=D[1],F=E[1],j=F[2][1],f=F[1];if(0===E[2][0]){var +J=m(g[6],[0,p]),u=s([37,[0,j]],f),K=[0,u],L=function(a){return i6([14,u,a[3]])},M=lY(u),N=aY(n(ft[4][7],d[1+X],f),M,L),k=n(d[1][1+v],d,j),t=k[1],O=k[5],G=ap(g[4],d[1+w],j,f,k[4],k[6],J,t[1]);if(G){n(d[1+z],0,G[1]);var +Q=l(ft[8][48],f,0,d[1+i][2]),a=d[1+i];d[1+i]=[0,a[1],Q,a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19]]}else{n(d[1][1+ar],d,e);n(d[1][1+V],d,O);if(aIV(t[1]))var +R=d[1+i][2],S=function(a){return a?a:d4b},H=l(ft[8][51],f,S,R);else{if(1-n(d[1][1+P],d,j))t[1]=N;var +H=l(ft[8][48],f,K,d[1+i][2])}var +b=d[1+i];d[1+i]=[0,b[1],H,b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19]]}I=1}}}if(!I){n(d[1][1+h],d,q);o(d[1][1+aK],d,[0,p],q,e)}}else{n(d[1][1+ar],d,e);var +T=0;l(AY,function(a,b){var +e=b[2][1],f=b[1],j=n(d[1][1+v],d,e),k=j[6],h=j[1],u=j[4],o=m(g[6],[0,p]),q=ap(g[4],d[1+w],e,f,u,k,o,h[1]),r=N4(h[1]),x=r?1-n(d[1][1+P],d,e):r;if(x)h[1]=aau(f);var +t=s([37,[0,e]],f);if(q)return fU(d[1][1+bj],d,f,e,t,k,o,q[1],h);if(0===B[0])return 0;var +c=d[1+i],y=c[19],z=c[18],A=c[17],C=c[16],D=c[15],E=c[14],F=c[13],G=c[12],H=c[11],I=c[10],J=c[9],K=c[8],L=c[7],M=c[6],N=c[5],O=c[4],Q=c[3],R=l(ft[8][48],f,[0,t],d[1+i][2]);d[1+i]=[0,c[1],R,Q,O,N,M,L,K,J,I,H,G,F,E,D,C,A,z,y];return 0},T,e);var +U=function(a){n(d[1][1+az],d,B);return 0};l(d[1][1+aP],d,e,U)}}return c}function +f3(d,b,c){var +a=c[1];if(2!==c[2]){var +e=0;aDU(function(a,b,c){return n(d[1+bs],[0,c[2][1]],c[1])},e,a)}return n(m(dX,d),b,c)}function +f4(d,b,c){var +p=c[3],e=c[2],v=c[1],D=e[2],ah=0,X=d[1+r],Z=e[1];if(3===D[0]){var +R=D[1][2];if(21===R[0]){var +S=R[1][2];if(2===S[0]){var +T=S[1],ae=T[1],af=fX(T),ag=o(ft[8][31],0,[0,3,ae],[0,af],d[1+i][2]),a=d[1+i];d[1+i]=[0,a[1],ag,a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19]];ah=1}}}if(v){var +q=v[1];if(12<=q){var +w=e[2],E=e[1],B=0;switch(w[0]){case +2:var +N=[0,[0,E,[9,w[1][1]]]];break;case +3:var +O=w[1][2];if(21===O[0])var +N=[0,[0,E,[21,O[1]]]];else +B=1;break;default:B=1}var +F=B?0:N;n(d[1][1+u],d,X[2]);if(F){var +y=F[1];if(12===q){n(d[1][1+h],d,y);var +_=[0,m(gn[1][8][5],Z),d4c];l(d[1][1+ax],d,y,_)}else if(13<=q)n(d[1][1+g],d,y)}var +$=m(d[1][1+C],d),U=0,aa=m(d[1][1+k],d);if(12!==q&&14>q)U=1;if(!U)n(d[1][1+A],d,0);var +ab=function(a){n(d[1][1+h],d,p);return 0},G=n(d[1][1+j],d,ab),V=0;if(G){var +I=G[1];if(typeof +I==="number"&&I){n(d[1][1+t],d,aa);n(d[1][1+Y],d,0);V=1}}if(!V){n(d[1][1+f],d,0);n(d[1][1+H],d,$)}var +J=e[2],K=e[1],W=0;switch(J[0]){case +2:n(d[1][1+b4],d,e);break;case +3:var +L=J[1][2];if(21===L[0]){var +ac=L[1],M=s(71,K),ad=lY(M);x(d[1][1+aL],d,0,ac,K,ad,M)}else +W=1;break;default:W=1}}else{var +z=e[2];switch(z[0]){case +2:n(d[1][1+aH],d,z[1][1]);n(d[1][1+h],d,p);n(d[1][1+b4],d,e);break;case +3:var +P=z[1];n(d[1][1+bI],d,P);o(d[1][1+bo],d,v,P,p);break}}}else{var +Q=e[2];if(3===Q[0])o(d[1][1+bo],d,v,Q[1],p);else{n(d[1][1+h],d,p);o(d[1][1+aK],d,0,p,e)}}return c}function +f5(a,b){var +c=b[2];switch(c[0]){case +0:return l(a[1][1+bf],a,0,c[1][2][1]);case +1:return l(a[1][1+bf],a,1,c[1][2][1]);default:return n(a[1][1+bV],a,0)}}function +f6(a,b,c,d,e,f){n(a[1][1+bE],a,c);var +h=n(jQ[9],0,c),j=c[2],p=0;if(2===j[0])switch(j[1][2][0]){case +13:case +16:break;default:p=1}if(!p&&h){var +q=h[1],r=function(a){return e};o(a[1][1+aa],a,q,[0,e],r);var +k=1-b;if(k){var +s=l(ft[8][48],d,[0,f],a[1+i][2]),g=a[1+i];a[1+i]=[0,g[1],s,g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15],g[16],g[17],g[18],g[19]];var +m=0}else +var +m=k;return m}return 0}function +f7(e,b,c,d){var +t=c[2];if(21!==t[0])return d2J;var +p=t[1],k=c[1];n(m(dL,e),k,p);n(e[1][1+h],e,d);var +u=s(71,k),N=lY(u);x(e[1][1+aL],e,0,p,k,N,u);if(1===d[2][0]){var +M=d[1],U=s(d4f,M),V=l(ft[8][48],M,[0,U],e[1+i][2]),j=e[1+i];e[1+i]=[0,j[1],V,j[3],j[4],j[5],j[6],j[7],j[8],j[9],j[10],j[11],j[12],j[13],j[14],j[15],j[16],j[17],j[18],j[19]]}function +w(a){return N3(n(e[1][1+v],e,d4d)[1][1])}if(!b){var +y=p[1],r=y[2],A=y[1];switch(r[0]){case +9:var +B=r[1][2][1];if(q(B,gK)){if(!q(B,le)){var +C=p[2];if(0===C[0]&&!q(C[1][2][1],gK)&&w(0)){if(!m(e[1][1+be],e))return n(e[1+z],0,[83,k]);var +a=e[1+i];e[1+i]=[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],[1,k]];return 0}}}else{var +D=p[2];if(0===D[0]){var +E=D[1],O=E[2][1],P=E[1];if(N3(n(e[1][1+v],e,d4e)[1][1])){if(!m(e[1][1+be],e))return n(e[1+z],0,[83,A]);var +F=e[1+i][19];if(0!==F[0])return 0;var +f=e[1+i],Q=[0,o(fN,0,O,[0,P,k],F[1])];e[1+i]=[0,f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12],f[13],f[14],f[15],f[16],f[17],f[18],Q];return 0}}}break;case +21:var +G=r[1],H=G[1][2];if(9===H[0]&&!q(H[1][2][1],le)){var +I=G[2];if(0===I[0]&&!q(I[1][2][1],gK)){var +J=p[2];if(0===J[0]){var +K=J[1],R=K[2][1],S=K[1];if(w(0)){if(!m(e[1][1+be],e))return n(e[1+z],0,[83,A]);var +L=e[1+i][19];if(0!==L[0])return 0;var +g=e[1+i],T=[0,o(fN,0,R,[0,S,k],L[1])];e[1+i]=[0,g[1],g[2],g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15],g[16],g[17],g[18],T];return 0}}}}break}}return 0}function +f8(a,e,c){var +b=a[1+i][8];return OC(function(a,b){var +d=b[5],f=d[1];function +g(a,b){return 1-l(jQ[11],e,c,a)}d[1]=n(h8[15],g,f);return 0},b)}function +f9(a,b){function +c(a){if(0===a[0]){var +b=a[1],d=b[2],e=b[1];return[0,e,[9,[0,e,[0,d[1],d[2]]]]]}var +f=a[1],g=f[2],h=g[2],i=h[2],j=f[1],k=[0,[0,h[1],[0,i[1],i[2]]]];return[0,j,[21,[0,c(g[1]),k,0]]]}var +d=c([1,b]);n(a[1][1+h],a,d);return b}function +f_(a,b){return m(m(dH,a),b)}function +f$(a,b){l(a[1][1+d],a,b[1],b[2][1]);return m(m(dJ,a),b)}function +ga(a,b){var +c=b;for(;;){if(0===c[0]){n(a[1][1+by],a,c[1]);return b}var +c=c[1][2][1]}}function +gb(a,b){l(a[1][1+d],a,b[1],b[2][1]);return m(m(af,a),b)}function +gc(a,b,c){l(a[1][1+d],a,b,d4g);return c}function +gd(a,b,c){l(a[1][1+d],a,b,d4h);return c}function +ge(a,b){n(a[1][1+bi],a,b);return m(m(dW,a),b)}function +gf(a,b){n(a[1][1+bi],a,b);return m(m(dV,a),b)}function +gg(c,b){var +f=b[1],a=n(c[1][1+v],c,b[2][1]),d=a[4],g=a[1];return aT(d,function(a){var +d=n(gn[1][7][27],a,c[1+i][18]);if(!d)return 0;var +e=d[1],h=s([37,[0,e]],a),j=l(ft[8][48],a,0,c[1+i][2]),b=c[1+i];c[1+i]=[0,b[1],j,b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19]];g[1]=aIX(h);return n(c[1+z],0,[wY,[0,a,e,f]])})}function +gh(d,b,c){var +a=d[1+i],e=d[1+i][18];d[1+i]=[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],gn[1][7][1],a[19]];function +f(a){var +b=d[1+i];d[1+i]=[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],e,b[19]];return 0}ti(function(a){n(m(dP,d),b,c);return 0},f);return c}function +gi(d,b,c){var +e=n(gn[1][7][6],b[1],b[2][1]),a=d[1+i],f=d[1+i][18];d[1+i]=[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],e,a[19]];return ti(c,function(a){var +b=d[1+i];d[1+i]=[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],f,b[19]];return 0})}function +gj(d,b,c){var +f=gn[1][7][1],e=l(we,at,0,b),g=l(j6,function(a,b,c){return o(gn[1][7][31],0,b[1],a,c)},e,f),a=d[1+i],h=d[1+i][18];d[1+i]=[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],g,a[19]];return ti(c,function(a){var +b=d[1+i];d[1+i]=[0,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],h,b[19]];return 0})}function +gk(a,b,c){var +e=n(a[1][1+v],a,c),f=e[6],g=e[4],h=e[2],j=e[1],k=a[1+i][14]?h:j[1],l=o(gn[1][7][31],0,b,[0,g,[0,f],k,[0,c]],a[1+i][1]),d=a[1+i];a[1+i]=[0,l,d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15],d[16],d[17],d[18],d[19]];return 0}function +gl(a,b,c,d,e,f,g,h){n(a[1+z],0,g);var +k=2===f?N3(h[1])?[1,d]:[0,d]:0,o=0,m=l(ft[8][48],b,k,a[1+i][2]);if(typeof +e==="number"&&!e&&!f&&!n(a[1][1+P],a,c)){h[1]=aIX(d);o=1}var +j=a[1+i];a[1+i]=[0,j[1],m,j[3],j[4],j[5],j[6],j[7],j[8],j[9],j[10],j[11],j[12],j[13],j[14],j[15],j[16],j[17],j[18],j[19]];return 0}function +gm(a,b,c,d,e){var +u=a[1+r],x=c?c[1]:lY,j=s([37,[0,e]],d),h=n(a[1][1+v],a,e),o=h[6],k=h[4],g=h[1],y=h[5];if(6<=b&&Bz(g[1])){if(k)return n(a[1+z],0,[77,2,d,[0,e],k[1]]);throw B([0,ft[11],[0,d],d4i],1)}var +p=ap(u[4],a[1+w],e,d,k,o,b,g[1]);if(p)return fU(a[1][1+bj],a,d,e,j,o,b,p[1],g);n(a[1][1+V],a,y);var +q=g[1],t=1-aIV(q),A=t?1-n(a[1][1+P],a,e):t;if(A)g[1]=m(x,j);var +C=N3(q)?[1,j]:[0,j],D=l(ft[8][48],d,C,a[1+i][2]),f=a[1+i];a[1+i]=[0,f[1],D,f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12],f[13],f[14],f[15],f[16],f[17],f[18],f[19]];return 0}function +go(a,b,c){var +d=c[2],e=d[2],f=d[1];a3(m(a[1][1+h],a),e);l(a[1][1+cD],a,b,f);return c}function +gp(f,b,c,d,e){var +g=f[1+i][2],h=[0,s(56,c)],j=o(ft[8][31],0,[0,2,c],h,g),a=f[1+i];f[1+i]=[0,a[1],j,a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19]];l(f[1][1+aD],f,b,d);function +k(a){n(f[1][1+az],f,e);return 0}return l(f[1][1+aQ],f,d,k)}function +gq(a,b,c){var +d=c[2][1],e=c[1],f=m(a[1+r][6],b);p(a[1][1+ae],a,f,0,e,d);return m(m(af,a),c)}function +gr(a,b,c){var +e=c[1];if(m(xZ,c)){var +f=a[1+i][2],g=[0,s(56,e)],h=o(ft[8][31],0,[0,2,e],g,f),d=a[1+i];a[1+i]=[0,d[1],h,d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],d[15],d[16],d[17],d[18],d[19]]}return n(m(dQ,a),b,c)}function +gs(c,b){var +d=b[2],e=b[1],f=c[1+i][2],g=[0,s(56,e)],h=o(ft[8][31],0,[0,2,e],g,f),a=c[1+i];c[1+i]=[0,a[1],h,a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19]];switch(d[0]){case +0:var +j=d[1][1];return fV(j,function(a){var +b=0===a[0]?a[1][2][2]:a[1][2][1];return n(c[1][1+ar],c,b)});case +1:var +k=d[1][1];return fV(k,function(a){return 2===a[0]?0:n(c[1][1+ar],c,a[1][2][1])});case +2:return 0;default:return 0}}function +gu(e,b,c,d){var +f=d[2],g=d[1],v=e[1+r];switch(f[0]){case +0:var +j=f[1],q=j[2],t=j[1],u=e[1+i][2],w=[0,s(56,g)],x=o(ft[8][31],0,[0,2,g],w,u),a=e[1+i];e[1+i]=[0,a[1],x,a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19]];fV(t,function(a){if(0!==a[0]){l(e[1][1+cB],e,b,a[1]);return 0}var +i=a[1],d=i[2],f=d[2],j=d[1],w=d[3];switch(j[0]){case +0:case +3:var +k=j[1],q=k[1],x=k[2][1];aT(w,function(a){n(e[1][1+h],e,a);return 0});var +g=[0,q,[21,[0,c,[0,[0,q,[0,x,0]]],0]]],r=f[2];if(2!==r[0]){o(e[1][1+aK],e,b,g,f);return 0}var +s=r[1],t=s[1],y=s[2],z=t[2][1],A=t[1];n(e[1][1+aZ],e,g);var +u=n(e[1][1+av],e,g);if(u){var +B=u[1];n(e[1][1+az],e,y);var +C=[0,function(a){var +c=lY(a),b=B[2];return 17===b[0]?aav(b[1],c):c}],D=m(v[6],b);return p(e[1][1+ae],e,D,C,A,z)}l(e[1][1+a2],e,b,f);return 0;default:l(e[1][1+cC],e,b,i);return 0}});var +y=function(a){n(e[1][1+az],e,q);return 0};l(e[1][1+aP],e,d,y);break;case +2:var +k=f[1];p(e[1][1+bH],e,b,g,k[1],k[2]);break;default:l(e[1][1+a2],e,b,d)}return d}function +gv(a,b){p(a[1][1+ae],a,5,0,b[1],b[2][1]);return m(m(af,a),b)}function +gw(a,b){p(a[1][1+ae],a,4,0,b[1],b[2][1]);return m(m(af,a),b)}function +gx(c,b){var +g=b[2][1],d=b[1],k=n(c[1][1+v],c,g),e=k[6],o=k[4];if(o){var +h=o[1],a=0;if(typeof +e==="number")switch(e){case +4:case +5:case +6:case +10:a=2;break;case +2:case +7:case +12:case +14:case +15:a=1;break;default:var +f=[0,[77,0,d,[0,g],h]]}else if(0===e[0])a=2;else +a=1;var +j=0;switch(a){case +2:if(tl(d,h))if(typeof +e==="number")j=1;else +var +f=0;else +var +f=[0,[77,0,d,[0,g],h]];break;case +1:j=1;break}if(j)var +f=0;var +p=f}else +var +p=0;aT(p,function(a){n(c[1+z],0,a);var +e=l(ft[8][48],d,0,c[1+i][2]),b=c[1+i];c[1+i]=[0,b[1],e,b[3],b[4],b[5],b[6],b[7],b[8],b[9],b[10],b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19]];return 0});return m(m(af,c),b)}function +gy(a,b){var +d=b[2];if(18===d[0]){var +e=d[1][1][2][1][1],f=b[1];if(!a[1+i][15]){n(a[1+z],0,[52,f]);var +g=l(ft[8][48],e,0,a[1+i][2]),c=a[1+i];a[1+i]=[0,c[1],g,c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19]];return b}}return m(m(dT,a),b)}function +gz(a,b){var +d=b[1],e=a[1+i][2],f=[0,s([25,[0,b[2][1]]],d)],g=l(ft[8][48],d,f,e),c=a[1+i];a[1+i]=[0,c[1],g,c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19]];return b}function +gA(a,b){var +c=a[1+i],e=a[1+i][15];a[1+i]=[0,c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],1,c[16],c[17],c[18],c[19]];var +f=n(a[1][1+bz],a,b),d=a[1+i];a[1+i]=[0,d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],d[9],d[10],d[11],d[12],d[13],d[14],e,d[16],d[17],d[18],d[19]];return f}function +gB(d,b,c){var +h=d[1+i][10],e=Ee(function(a){return m(b,a[1])},h),f=e[1],j=e[2];if(0!==f){fo(function(a){return n(d[1][1+bM],d,a[2])},f);var +a=d[1+i];d[1+i]=[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],j,a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19]];return 0}if(c){var +g=c[1];if(!m(b,g))throw B([0,Ge,g],1)}return 0}function +gC(a,b){var +c=b[1],d=b[2];if(!c)return 0;var +e=c[1],f=fs(d,[0,e],function(a,b){if(a){var +c=a[1];if(b){if(ao(c,b[1]))return[0,c];var +d=0;if(typeof +c==="number")if(0===c){var +h=b[1];if(typeof +h==="number"&&h)d=1}else{var +i=b[1];if(typeof +i==="number"&&!i)d=1}else if(0===c[0]){var +e=b[1],k=0;if(typeof +e==="number"||0===e[0])k=1;else{var +j=e[1],f=c[1];d=2}}else{var +g=b[1],l=0;if(typeof +g==="number"||1===g[0])l=1;else{var +j=g[1],f=c[1];d=2}}switch(d){case +1:return d4j;case +2:if(ao(f,j))return[0,[1,f]];break}}}return 0});return n(a[1][1+ac],a,f)}function +gD(c,b){var +a=c[1+i],d=c[1+i][10],e=c[1+i][7];c[1+i]=[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],0,a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18],a[19]];function +f(a){var +f=hh(d,c[1+i][10]),b=c[1+i];c[1+i]=[0,b[1],b[2],b[3],b[4],b[5],b[6],e,b[8],b[9],f,b[11],b[12],b[13],b[14],b[15],b[16],b[17],b[18],b[19]];return 0}return l(c[1][1+L],c,b,f)}function +gE(a,b){var +d=m(a[1][1+k],a),e=m(a[1][1+bl],a);n(a[1][1+t],a,e);var +c=a[1+i];a[1+i]=[0,c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],[0,[0,b,d],a[1+i][10]],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19]];throw B([0,Ge,b],1)}function +gF(a,b){if(b)throw B([0,Ge,b[1]],1);return 0}function +gG(a,b){try{m(b,0);var +d=0;return d}catch(f){var +c=fk(f);if(c[1]===Ge)return[0,c[2]];throw B(c,0)}}function +gH(a,b,c){var +d=n(a[1][1+j],a,b);m(c,0);return n(a[1][1+ac],a,d)}function +gI(a){var +b=m(a[1][1+ag],a);return function(a){return n(b,a,0)}}function +gJ(h,b,c,d,e,f,g){var +i=l(h[1][1+bC],h,c,e);function +a(a){return n(h[1][1+bG],h,i)}function +j(a){p(m(dY,h),b,d,e,f,g);return 0}l(h[1][1+L],h,j,a);return g}function +gL(a,b){var +c=a[1+i];a[1+i]=[0,c[1],c[2],c[3],c[4],c[5],c[6],c[7],b,c[9],c[10],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19]];return 0}function +gM(a,b,c){var +e=a[1+i][8],k=aah(c),m=l(a[1][1+bL],a,b,k),f=e[1],g=e[2],h=f[1],j=l(j6,function(a,b){return n(axa,a,function(a){return a?kE(b,a[1]):g9(b)})},m,h),d=a[1+i];a[1+i]=[0,d[1],d[2],d[3],d[4],d[5],d[6],d[7],[0,[0,j,f[2]],g],d[9],d[10],d[11],d[12],d[13],d[14],d[15],d[16],d[17],d[18],d[19]];return e}function +gN(d,C,c){var +a=n(ul,function(a,b){var +c=b[2][1],m=b[1];if(typeof +m!=="number"){if(0===m[0]){var +z=s([25,[0,a]],c),ai=l(ft[8][48],c,[0,z],d[1+i][2]),j=d[1+i];d[1+i]=[0,j[1],ai,j[3],j[4],j[5],j[6],j[7],j[8],j[9],j[10],j[11],j[12],j[13],j[14],j[15],j[16],j[17],j[18],j[19]];var +aj=[0,h8[1]],ak=lY(z);return[0,[0,lY(z)],ak,0,[0,c],aj,m]}var +al=n(d[1][1+aC],d,c)[2],am=function(a,b){var +c=b[1];return l(ft[8][48],c[2],[0,c],a)},an=fs(al,d[1+i][2],am),k=d[1+i];d[1+i]=[0,k[1],an,k[3],k[4],k[5],k[6],k[7],k[8],k[9],k[10],k[11],k[12],k[13],k[14],k[15],k[16],k[17],k[18],k[19]];var +A=i6([20,c]);return[0,[0,A],A,0,[0,c],[0,h8[1]],m]}switch(m){case +2:var +w=s(39,c),R=l(ft[8][48],c,[0,w],d[1+i][2]),e=d[1+i];d[1+i]=[0,e[1],R,e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15],e[16],e[17],e[18],e[19]];var +S=[0,h8[1]],T=lY(w);return[0,[0,lY(w)],T,0,[0,c],S,m];case +13:var +aa=s([37,[0,a]],c),ab=[0,h8[1]],ac=lY(aa);return[0,[0,yj(a,c)],ac,0,[0,c],ab,m];case +14:var +ad=[0,h8[1]],ae=yj(a,c);return[0,[0,yj(a,c)],ae,0,0,ad,m];case +15:var +y=s(d4o,c),af=l(ft[8][48],c,[0,y],d[1+i][2]),h=d[1+i];d[1+i]=[0,h[1],af,h[3],h[4],h[5],h[6],h[7],h[8],h[9],h[10],h[11],h[12],h[13],h[14],h[15],h[16],h[17],h[18],h[19]];var +ag=[0,h8[1]],ah=lY(y);return[0,[0,lY(y)],ah,0,[0,c],ag,m];case +7:case +9:var +L=n(d[1][1+aC],d,c),X=L[2],Y=L[1],Z=function(a,b){var +c=b[1];return l(ft[8][48],c[2],[0,c],a)},_=fs(X,d[1+i][2],Z),g=d[1+i];d[1+i]=[0,g[1],_,g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15],g[16],g[17],g[18],g[19]];var +$=[0,h8[1]];return[0,[0,yj(a,c)],Y,0,[0,c],$,m];case +4:case +5:case +6:case +10:var +x=s([37,[0,a]],c),U=l(ft[8][48],c,[0,x],d[1+i][2]),f=d[1+i];d[1+i]=[0,f[1],U,f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12],f[13],f[14],f[15],f[16],f[17],f[18],f[19]];var +V=[0,h8[1]],W=lY(x);return[0,[0,lY(x)],W,0,[0,c],V,m];default:if(q(a,jc))if(q(a,f0)){var +M=0;if(typeof +m==="number")switch(m){case +1:case +3:case +7:case +8:case +11:case +16:case +17:var +D=yj(a,c);M=1;break}if(!M)var +D=aau(c);var +E=n(d[1][1+aC],d,c),F=E[2],N=E[1],G=aJi(d[1+aN],d[1+aM],c),O=K(F,function(a){return a[1][2]}),P=function(a){return qy(O,a,tl)};if(n(gn[1][8][17],P,G))var +H=s8(F,function(a){return n(gn[1][8][3],a[1][2],G)}),Q=qx(H)?0:[0,aIZ(H)],I=Q;else +var +I=0;var +u=I,t=N,r=D}else{var +p=s([37,[1,d4k]],c);switch(C){case +0:var +o=i6([4,p]);break;case +1:var +o=i6([7,p]);break;case +2:var +o=i6([8,p]);break;default:var +o=i6([6,p])}var +u=0,t=o,r=o}else{var +J=s([37,[1,d4l]],c);switch(C){case +0:throw B([0,ft[11],[0,c],d4m],1);case +1:var +v=i6([9,J]);break;case +2:var +v=i6([10,J]);break;default:throw B([0,ft[11],[0,c],d4n],1)}var +u=0,t=v,r=v}return[0,[0,r],t,u,[0,c],[0,h8[1]],m]}},c);return m(m(bd8,function(a,b){return 1-n(d[1][1+P],d,a)}),a)}function +gP(a,b){function +d(a){return a[2]}var +c=aY(n(ft[4][7],a[1+X],b),0,d),e=qx(c)?aau(b):aIZ(c);return[0,e,c]}function +gQ(a,b){function +c(a){var +b=a;for(;;){if(typeof +b==="number")switch(b){case +2:case +3:return 1}else +switch(b[0]){case +0:var +f=b[2],d=c(b[1]);if(!d)return d;var +b=f;continue;case +1:var +g=b[2],e=c(b[1]);if(e)return e;var +b=g;continue;case +2:return 1-c(b[1])}return 0}}return c(n(a[1][1+aX],a,b)[2])}function +gR(a,b){var +e=a[1+i][8],f=kE([0,at,[0,at]],e),c=a[1+i];a[1+i]=[0,c[1],c[2],c[3],c[4],c[5],c[6],c[7],f,c[9],c[10],c[11],c[12],c[13],c[14],c[15],c[16],c[17],c[18],c[19]];var +g=m(b,0),d=a[1+i];a[1+i]=[0,d[1],d[2],d[3],d[4],d[5],d[6],d[7],e,d[9],d[10],d[11],d[12],d[13],d[14],d[15],d[16],d[17],d[18],d[19]];return g}function +gS(a,b){var +c=b[1],d=b[6];if(typeof +d==="number"&&14===d)return 0;var +e=l(a[1][1+aV],a,1,b[4]);if(e)var +f=e;else{var +h=c[1],g=0o[1])g=1}var +h=0;switch(g){case +1:break;case +2:h=1;break;default:h=1}if(h&&2<=q)b=1;break;case +2:case +3:case +4:case +14:case +18:b=1;break}return b?0:1},aK4=function(k,b,c,d){return function(a){if(2===c)return 0;if(typeof +a!=="number")switch(a[0]){case +0:var +u=a[1];if(0!==u[0])return 0;var +e=u[1],f=0;if(typeof +e==="number")f=1;else +switch(e[0]){case +2:var +h=e[2];if(typeof +h!=="number"&&0!==h[0])return[0,[0,h[1]],0];break;case +3:var +i=e[1];if(typeof +i!=="number"){if(0!==i[0]){var +x=i[1],y=function(a,b){var +c=a[2],d=a[1];return 0===b[0]?[0,[0,[0,b[1]],d],c]:[0,d,[0,b[1],c]]},p=fs(gl(x),d4K,y),q=p[2],g=p[1];if(0===fA(q))return g;try{var +s=hW(0,0,0,n(FU,b,d))[1],v=0;if(typeof +s!=="number"&&!s[1]){var +t=g;v=1}if(!v)var +t=[0,[1,n(kF[18],k,d)[1][1],q],g];return t}catch(f){var +r=fk(f);if(r[1]===kF[9])return g;throw B(r,0)}}f=2}break;case +0:case +6:f=1;break}switch(f){case +1:break;case +0:try{var +m=hW(0,0,0,n(FU,b,d))[1],w=0;if(typeof +m!=="number"&&!m[1]){var +o=0;w=1}if(!w)var +o=[0,[0,n(kF[18],k,d)[1][1]],0];return o}catch(f){var +l=fk(f);if(l[1]===kF[9])return 0;throw B(l,0)}}return 0;case +5:var +j=a[2];if(typeof +j!=="number"&&0!==j[0])return[0,[0,j[1]],0];break;case +16:if(!a[1])return[0,[0,d],0];break;case +2:case +3:case +4:return 0}return 0}},CD=function(a,b){var +h=Z(b),c=a,d=0;for(;;){if(d>=h)return c;var +g=fl(b,d);if(10===g)var +f=1,e=[0,c[1]+1|0,0];else if(13===g){var +i=0;if((d+1|0)=kW(c[3],B[2])){var +i=z;continue}if(0b)return m(g[1],0);break}return i(9,0,0)}h(ay,function(h,b,c,d,e){function +a(a){function +b(i){function +a(c){function +d(a){return[18,[0,i,c,a]]}if(e)var +a=e[1],j=a[3],k=a[2],o=a[1],p=m(u,a[4]),q=function(b){function +a(a){return m(g[1],[0,[0,p,o,b,a]])}var +c=l(f,h,0,j);return n(g[4][2],c,a)},r=l(f,h,0,k),b=n(g[4][2],r,q);else +var +b=m(g[1],0);return n(g[4][3],b,d)}var +b=p(Z,h,0,0,c,d);return n(g[4][2],b,a)}var +i=bg(a);return n(g[4][2],i,b)}var +i=l(f,h,0,b);return n(g[4][2],i,a)});h(a4,function(a,b){if(1===b[0]){var +c=b[2],j=0;if(typeof +c!=="number"&&9===c[0]){var +h=c[4],i=c[1];if(79===fv(flt,b[1]))return l(av,a,i,h[4]);j=1}}function +d(a){return[20,[16,a]]}var +e=l(f,a,0,b);return n(g[4][3],e,d)});h(az,function(a,b){if(1===b[0]){var +c=b[2],h=0;if(typeof +c!=="number"&&9===c[0]){if(!c[4][9]){var +d=b[1],e=function(a){return[19,[0,a],0]},f=N(a,d);return n(g[4][3],f,e)}h=1}}return i(5,[0,py(b)],[0,b])});h(_,function(a,b){var +e=[0,a,0],c=iC(function(a,b){var +c=a[1],d=a[2],e=[0,n(aC,c,b),d];return[0,afn(c,b),e]},e,b),f=c[2],h=c[1];function +i(a){var +b=a?[0,a]:0;return[0,h,b]}var +j=m(d,U(f));return n(g[4][3],j,i)});h(a5,function(a,b,c){switch(b[0]){case +1:var +d=b[2];if(typeof +d!=="number")switch(d[0]){case +5:var +e=d[2],h=d[1],j=function(a){var +b=a[2],c=a[1];function +d(a){return[12,a]}var +f=o(an,c,h,e,b);return n(g[4][3],f,d)},k=n(_,a,c);return n(g[4][2],k,j);case +18:return l(f,a,0,b)}break;case +4:return n(az,a,b[2])}return i(6,0,[0,b])});h(a6,function(a,b){var +c=l(f,a,0,b);return n(g[3],c,eNe)});function +aF(a,b,c,d,e){function +h(f){function +i(a){return[1,[0,b,c,a]]}if(a[2][5])var +e=a[2],j=[0,a[1],[0,e[1],e[2],e[3],e[4],0,e[6],e[7],e[8],e[9],e[10]],a[3],a[4],a[5],a[6],a[7],a[8],a[9]],k=function(a){var +b=a[2];function +c(a,b){if(a&&b){var +d=a[1],f=b[1],e=c(a[2],b[2]);if(qx(e)&&ao([0,d],f[4]))return 0;return[0,d,e]}return a}if(f&&b)return[0,c(f[1],b[1])];return f},l=n(_,j,d),h=n(g[4][3],l,k);else +var +h=m(g[1],f);return n(g[4][3],h,i)}var +i=m(f,a),j=aS(function(a){return n(i,0,a)},e);return n(g[4][2],j,h)}function +bh(f,b,c,d,e){function +j(a){return aF(f,a,2,d,e)}switch(c){case +1:var +a=i(7,flu,0);break;case +2:var +h=function(a){var +c=a;for(;;){if(typeof +c!=="number")switch(c[0]){case +25:var +e=q(f,b,c[1]);return m(g[1],e);case +27:var +h=q(f,b,[0,c[1]]);return m(g[1],h);case +91:var +c=c[1];continue}var +d=0;return i(7,[0,P(fkS,n(Bp,function(a,b){return 0},c))],d)}},a=h(fv(fkT,b));break;case +7:var +a=i(4,flv,0);break;case +0:case +6:case +8:var +a=L(f,b);break;default:var +a=aW(f,b)}return n(g[4][2],a,j)}function +bv(e,b,c,d){var +j=0;switch(d[0]){case +1:var +a=d[2],f=d[1],C=0;if(typeof +a==="number")C=1;else +switch(a[0]){case +8:var +h=a[1];switch(h[0]){case +1:var +k=h[2],I=0;if(typeof +k==="number"||!(9===k[0]))I=1;else{var +o=k[4],m=h[1];j=1}break;case +6:return l($,e,h[3],b)}break;case +16:var +w=a[1],q=a[2],v=0;if(1===q[0]){var +s=q[2],D=0;if(typeof +s==="number"||!(9===s[0]))D=1;else{var +o=s[4],m=q[1];j=1}if(D)v=1}else +v=1;if(v){var +x=a[2];if(21===x[0]&&b){var +y=b[1];if(y){var +z=x[2],G=y[1],H=adO(jV(e));if(ao([0,z[1]],H)){var +A=y3(jV(e),G);if(A){var +r=A[1];if(r&&!r[2])return p(a7,e,f,z,b,r[1])}return bh(e,f,w,c,b)}}}return bh(e,f,w,c,b)}break;case +18:var +B=a[4];if(B)return aF(e,X(e,B[2],f),4,c,b);break;default:C=1}break;case +4:var +t=d[2];if(1===t[0]){var +u=t[2],J=0;if(typeof +u==="number"||!(9===u[0]))J=1;else{var +o=u[4],m=t[1];j=1}}break}if(!j)return i(8,[0,P(flw,py(d))],0);function +E(a){var +d=o[9]?1:0;return aF(e,a,d,c,b)}var +F=N(e,m);return n(g[4][2],F,E)}function +bi(d,b,c){var +h=0;switch(c[0]){case +1:var +a=c[2],p=0,q=c[1];if(typeof +a==="number")p=1;else +switch(a[0]){case +8:var +r=a[1];if(0===b){var +s=function(a){return[20,[16,a]]},t=l(f,d,0,r);return n(g[4][3],t,s)}break;case +16:var +k=a[2];h=1;break;case +17:var +o=a[3];if(1===o[0]){var +e=o[2],G=0;if(typeof +e==="number"||!(16===e[0]))G=1;else if(7===e[1]){var +u=e[2];if(!b)return l(f,d,0,u);var +w=b[1],x=m(f,d),y=function(a){return n(x,0,a)},z=m(f,d),A=function(a){return n(z,0,a)},B=jV(d);return ap(v[3],B,A,y,W,q,c,w)}}return bv(d,b,a[2],a[3]);default:p=1}break;case +4:var +k=c[2];h=1;break;case +16:var +C=c[2],D=function(a){return a?yB(1,0,[0,a[1],a[2]]):flx},E=m(aG[5],C),F=j(function(a){return bi(d,b,a)},E);return n(g[4][3],F,D);case +25:return l(f,d,0,c)}return h?l(f,d,0,k):i(8,[0,py(c)],0)}h($,function(d,b,c){var +a=y3(jV(d),b);if(!a)return i(8,flA,[0,b]);var +e=a[1];if(!e)return m(g[1],flz);function +f(a){return a?yB(1,0,[0,a[1],a[2]]):fly}var +h=j(function(a){return bi(d,c,a)},e);return n(g[4][3],h,f)});h(a7,function(a,b,c,d,e){if(1===e[0]){var +h=e[2],r=0;if(typeof +h!=="number"&&18===h[0]){var +i=h[4];if(i){var +p=[1,[0,X(a,i[2],e[1]),4,0]];return m(g[1],p)}r=1}}var +j=q(a,b,[0,c[5]]);function +k(a){var +b=F(j,a);return m(g[1],b)}var +l=m(f,a),o=aS(function(a){return n(l,0,a)},d);return n(g[4][2],o,k)});h(a8,function(a,b,c){var +d=F(q(a,b,[0,c[5]]),0);return m(g[1],d)});h(a9,function(f){return function(a){if(typeof +a==="number")switch(a){case +0:var +h=t([0,[0,[0,flC,jT,pH],0]],[0,[0,flB,[14,[0,0,0,jT]]]],0,0,[0,jT]);return m(g[1],h);case +1:var +i=t([0,[0,[0,flD,jT,pH],0]],0,0,0,[0,jT]);return m(g[1],i);case +2:var +j=t([0,[0,[0,flF,jT,pH],[0,[0,flE,jT,pH],0]]],0,0,0,[0,jT]);return m(g[1],j);case +5:var +p=t([0,[0,[0,flT,[14,[0,0,0,jT]],pH],0]],0,0,0,flS);return m(g[1],p);case +6:var +q=t(0,0,0,0,[0,ab(0)]);return m(g[1],q);case +7:var +r=t([0,[0,[0,flW,flV,pH],0]],0,0,0,flU);return m(g[1],r)}else if(0===a[0])return n(aA,f,a);var +d=[0,[0,flG,0,2,0],0],b=[0,g6,flH],k=[0,[0,flL,c(flK,[0,b,0]),pH],[0,[0,flJ,b,pH],[0,[0,flI,jT,afo],0]]],e=c(flM,[0,b,0]),l=t([0,k],0,[0,d],0,[0,e]),o=Gx(0,[0,l,[0,t([0,[0,[0,flR,t([0,[0,[0,flO,b,pH],[0,[0,flN,jT,pH],0]]],0,[0,d],0,[0,e]),pH],[0,[0,flQ,b,pH],[0,[0,flP,jT,afo],0]]]],0,[0,d],0,[0,e]),0]]);return m(g[1],o)}});h(aA,function(d){return function(a){if(typeof +a==="number")switch(a){case +0:var +e=b(flX);return m(g[1],e);case +1:var +h=b(flY);return m(g[1],h);case +2:var +i=b(flZ);return m(g[1],i);case +3:var +j=b(fl0);return m(g[1],j);case +4:var +k=b(fl1);return m(g[1],k);case +5:var +o=b(fl2);return m(g[1],o);case +6:var +p=b(fl3);return m(g[1],p);default:var +q=b(fl4);return m(g[1],q)}if(0!==a[0]){var +t=a[1],u=function(a){return c(fl7,[0,a,0])},v=l(f,d,0,t);return n(g[4][3],v,u)}if(a[1]){var +r=b(fl5);return m(g[1],r)}var +s=b(fl6);return m(g[1],s)}});h(a_,function(a,b){return Qq(a)?n(a9,a,b):n(aA,a,b)});h(a$,function(b){return function(a){return i(10,0,[0,b])}});h(aB,function(a,b){if(1===b[0]){var +c=b[2];if(typeof +c!=="number"&&4===c[0])return m(g[1],0)}function +d(a){return m(g[1],[0,a])}var +e=l(f,a,0,b);return n(g[4][2],e,d)});h(ba,function(a,b){if(!b)return m(g[1],0);var +c=b[1];function +d(a){return m(g[1],[0,a])}var +e=l(f,a,0,c);return n(g[4][2],e,d)});h(aC,function(a,b){var +c=b[5],d=b[3],e=b[2],f=m(u,b[4]);function +h(b){function +d(a){return[0,jC(e),b,f,a]}var +h=n(ba,a,c);return n(g[4][3],h,d)}var +i=n(aB,a,d);return n(g[4][2],i,h)});h(aD,function(a,b){if(18===b[0])var +d=1,c=b[2];else +var +d=0,c=b;function +e(a){return[0,a,d]}var +h=l(f,a,0,c);return n(g[4][3],h,e)});h(u,function(a){switch(a){case +0:return 1;case +1:return 2;default:return 0}});h(Q,function(a){if(typeof +a!=="number"&&13===a[0])return a[1][4];return[0,[2,a],0]});function +bj(a,b){var +c=b[4],d=b[2],e=0,h=0,i=0;function +j(a,b,c){return[0,[0,a,b],c]}var +k=l(Y[12],j,d,i);function +o(i){function +j(a){return m(g[1],[13,[0,0,e,h,i,a]])}if(c)var +b=c[1],k=b[4],o=b[3],p=b[2],q=b[1],r=function(b){function +c(a){var +c=[0,[0,m(u,k),q,b,a]];return m(g[1],c)}var +d=l(f,a,0,o);return n(g[4][2],d,c)},s=l(f,a,0,p),d=n(g[4][2],s,r);else +var +d=m(g[1],0);return n(g[4][2],d,j)}var +p=m(y,a),q=J(function(a){return l(p,0,0,a)},k);return n(g[4][2],q,o)}h(bb,function(h,b,c,d,e){function +k(e){function +a(a){var +k=0,l=M(function(a,b){return hh(m(Q,b),a)},k,a),d=V(l,m(Q,b)),f=e?V(d,m(Q,e[1])):d;function +h(a){var +b=a?0:1;return[13,[0,0,0,0,f,b]]}var +j=0===c[0]?i(12,fl8,0):m(g[1],c[1]);return n(g[4][3],j,h)}var +k=j(function(a){return 0===a[0]?bj(h,a[1]):l(f,h,0,a[1])},d);return n(g[4][2],k,a)}if(e)var +o=e[1],p=function(a){return m(g[1],[0,a])},q=bj(h,o),a=n(g[4][2],q,p);else +var +a=m(g[1],0);return n(g[4][2],a,k)});h(bc,function(e,b,c,d){function +a(c){var +h=[1,0,b];function +a(a){var +b=[15,V(c,[0,h,a])];return m(g[1],b)}var +i=j(function(a){if(0===a[0]){var +b=a[1],c=b[5],d=b[4],h=b[3],i=b[2],j=function(a){return[0,i,a,m(u,d),c]},k=l(f,e,0,h);return n(g[4][3],k,j)}var +o=a[1];function +p(a){return[1,0,a]}var +q=l(f,e,0,o);return n(g[4][3],q,p)},d);return n(g[4][2],i,a)}var +h=j(function(a){switch(a[0]){case +0:var +b=a[1],d=b[5],h=b[4],i=b[3],k=b[2],o=function(a){return[0,[0,k,a,m(u,h),d],0]},p=l(f,e,0,i);return n(g[4][3],p,o);case +1:var +c=a[2],q=a[1];if(1===c[0]){var +t=c[3];return j(function(a){var +b=a[5],c=a[4],d=a[3],h=a[2];function +i(a){return[0,h,a,m(u,c),b]}var +j=l(f,e,0,d);return n(g[4][3],j,i)},t)}var +r=function(a){return[0,[1,0,a],0]},s=l(at,e,q,c);return n(g[4][3],s,r);default:var +v=a[2],w=a[1],x=function(a){return[0,[1,0,a],0]},y=[2,n(am,w,v)],z=m(g[1],y);return n(g[4][3],z,x)}},c),i=n(g[3],h,qz);return n(g[4][2],i,a)});h(bd,function(a,b,c){function +d(a){var +c=[13,[0,0,0,0,V(m(Q,b),a),0]];return m(g[1],c)}var +e=m(Y[18],c),f=J(l(y,a,0,0),e);return n(g[4][2],f,d)});h(be,function(h,b,c,d,e){var +p=0;function +q(a){var +j=a[2],k=a[1],o=d[1];switch(d[2]){case +0:var +c=2;break;case +1:var +c=0;break;default:var +c=1}var +p=[0,c,m(u,o)];function +q(a){return m(g[1],[13,[0,0,0,0,[0,[3,k,b,j,p,a],0],2]])}if(typeof +e==="number")var +i=e?m(g[1],1):m(g[1],0);else +var +r=e[1],s=function(a){return m(g[1],[0,a])},t=l(f,h,0,r),i=n(g[4][2],t,s);return n(g[4][2],i,q)}if(1===c[0]){var +a=c[2],v=0;if(typeof +a==="number"||!(17===a[0]))v=1;else{var +k=a[2];if(!k[2]){var +o=k[1],r=a[3],s=function(b){var +a=afn(h,o);function +c(a){return m(g[1],[0,b,a])}var +d=l(f,a,0,r);return n(g[4][2],d,c)},t=n(aC,h,o),j=n(g[4][2],t,s);p=1}}}if(!p)var +j=i(4,0,[0,c]);return n(g[4][2],j,q)});h(aE,function(a,b,c){var +d=0;if(typeof +c!=="number")switch(c[0]){case +8:var +h=c[1];if(h){var +k=h[1];d=1}break;case +14:var +r=c[2];if(r){var +k=r[1];d=1}break}if(d)var +q=C(b),u=a[9],v=a[8],w=a[7],x=a[6],y=a[5],z=a[4],B=a[3],D=[0,[0,q,k,m(h7[4],q),1,0,0],B],e=[0,a[1],a[2],D,z,y,x,w,v,u];else +var +e=a;function +s(d){if(typeof +c==="number")switch(c){case +0:return m(g[1],[20,[9,d]]);case +1:return m(g[1],[20,[2,d]]);case +2:return m(g[1],[20,[3,d]]);case +3:return m(g[1],[20,[4,d]]);case +4:return m(g[1],[20,[1,d]]);case +5:return m(g[1],[20,[17,d]]);case +6:return m(g[1],[20,[18,d]]);case +7:return m(g[1],[20,[19,d]]);default:return m(g[1],[20,[20,d]])}switch(c[0]){case +0:return m(g[1],[22,d,[9,c[1]],0]);case +1:var +t=c[1],u=function(a){return[22,d,a,0]},v=l(f,e,0,t);return n(g[4][3],v,u);case +2:var +h=c[1],w=function(a){return[22,d,a,1]},x=0===h[0]?m(g[1],[9,h[1]]):l(f,e,0,h[1]);return n(g[4][3],x,w);case +3:return m(g[1],d);case +4:return p(bb,e,d,c[1],c[2],c[3]);case +5:return o(bc,e,d,c[3],c[4]);case +6:var +q=c[1];if(typeof +q==="number")switch(q){case +0:var +y=c[2],z=function(a){return[20,[7,d,a]]},B=l(f,e,0,y);return n(g[4][3],B,z);case +1:var +C=c[2],D=function(a){return[20,[6,d,a]]},E=l(f,e,0,C);return n(g[4][3],E,D)}return i(12,[0,adq(c)],0);case +7:var +F=c[2],G=function(a){return[20,[15,d,a]]},H=m(f,e),I=j(function(a){return n(H,0,a)},F);return n(g[4][3],I,G);case +8:var +r=c[2],J=c[5],K=c[4],L=c[3],N=function(b){function +a(c){function +a(a){return[23,d,b,c,a]}var +h=l(f,e,0,J);return n(g[4][3],h,a)}var +c=l(f,M(afn,e,r),0,K);return n(g[4][2],c,a)},O=l(f,[0,e[1],e[2],e[3],r,e[5],e[6],e[7],e[8],e[9]],0,L);return n(g[4][2],O,N);case +9:var +a=c[1];if(typeof +a==="number")return m(g[1],[20,[12,d]]);switch(a[0]){case +0:var +P=a[1],Q=function(a){return[20,[14,d,a]]},R=l(f,e,0,P);return n(g[4][3],R,Q);case +1:var +S=a[1],T=function(a){return[20,[10,d,a]]},U=l(f,e,0,S);return n(g[4][3],U,T);case +2:var +V=a[1],W=function(a){return[20,[11,d,a]]},X=l(f,e,0,V);return n(g[4][3],X,W);default:var +Y=a[1],Z=function(a){return[20,[13,d,a]]},_=l(f,e,0,Y);return n(g[4][3],_,Z)}case +10:switch(c[3]){case +0:var +k=0;break;case +1:var +k=1;break;default:var +k=2}return m(g[1],[25,d,k]);case +11:var +$=c[1],aa=function(a){return[20,[21,d,a]]},ab=l(f,e,0,$);return n(g[4][3],ab,aa);case +12:return l(bd,e,d,c[1]);case +13:return m(g[1],d);default:var +ac=c[4],ad=c[3],ae=c[2],af=c[1],s=aOq(jV(e),A,ae,ad,af,b);return p(be,e,d,s[1],ac,s[2])}}var +t=l(f,e,0,b);return n(g[4][2],t,s)});var +aH=function +b(a){return b.fun(a)};h(aH,function(a){var +b=m(H,a);return function(a){return n(b,a,aH)}});function +w(a){return[0,a[1],a[2],a[3],a[4],a[5],a[6],afl[1],ik,sd[1]]}function +r(a,b){var +c=a?a[1]:0;return c?n(aH,w(b),0):n(f,b,0)}function +aI(a){return m(_,w(a))}function +bk(a){return m(Z,w(a))}function +bl(a){return m(aE,w(a))}function +bw(d,b,c){var +a=fv(0,b);if(typeof +a!=="number"&&25===a[0]){var +f=a[1],h=h5(b),j=function(a){return m(r(0,d),a)},l=function(a){return[0,a]},o=aU(j,d,c,[0,fI(f)],h);return n(g[4][3],o,l)}var +e=gc(a);return i(7,[0,m(k(fl$),e)],[0,c])}function +bm(a,b,c,d,e){switch(c){case +0:var +A=function(b){var +c=aR4(b,a);function +f(a){return[1,[1,0,b,e,[0,a]]]}var +h=m(r(fl9,c),d);return n(g[4][3],h,f)},B=L(a,b);return n(g[4][2],B,A);case +1:return bw(a,b,d);case +2:if(21!==d[0])return i(7,fl_,[0,d]);var +h=d[2],s=d[1],F=function(a){return[1,a]},w=h[5],x=aR3(a),y=h5(s)[1],j=q(a,s,[0,w]);if(j1([0,x],y))var +t=m(g[1],[1,0,j,e,0]);else{var +k=h[2],u=0;if(k)var +l=k[1];else{var +p=h[3];if(p)var +l=p[1];else{var +f=0;u=1}}if(!u)var +f=[0,l];var +z=function(a){return[1,0,j,e,a]};if(f)var +v=f[1],o=n(bq,m(r(0,a),v),bbr);else +var +o=m(bp,0);var +t=n(g[4][3],o,z)}return n(g[4][3],t,F);case +3:var +D=function(b){var +c=aR4(b,a);function +f(a){return[1,[1,1,b,e,[0,a]]]}var +h=m(r(0,c),d);return n(g[4][3],h,f)},E=aW(a,b);return n(g[4][2],E,D);case +4:var +G=[1,C(d),[8,d]],H=function(a){return[0,a]},I=m(r(0,a),G);return n(g[4][3],I,H);case +5:return i(fma,0,0);case +6:return i(7,fmb,[0,d]);case +7:return i(7,fmc,[0,d]);default:return i(7,fmd,[0,d])}}var +I=function +c(a,b){return c.fun(a,b)},bn=function +d(a,b,c){return d.fun(a,b,c)},aJ=function +d(a,b,c){return d.fun(a,b,c)};function +aK(a,b,c,d,e,f){function +i(c){var +h=f[9],i=f[4],k=f[10],l=f[6],j=fv(fme,b);if(typeof +j==="number"&&79===j){var +p=function(a){return[0,a]},q=n(m(av,w(a)),d,i);return n(g[4][3],q,p)}if(!h){var +v=function(a){return[1,[2,a,c]]},x=N(a,b);return n(g[4][3],x,v)}if(h[1]){var +r=function(a){return[0,a]},s=o(m(ay,w(a)),e,i,l,k);return n(g[4][3],s,r)}function +t(a){return[1,[3,a,c]]}var +u=N(a,b);return n(g[4][3],u,t)}if(c)var +j=c[1],k=function(a){return a[2]},l=m(aI(a),j),h=n(g[4][3],l,k);else +var +h=m(g[1],0);return n(g[4][2],h,i)}function +aM(e,b,c,d){function +f(a){var +b=e[2][10],f=[1,[5,X(e,c,d),a,b]];return m(g[1],f)}if(b)var +h=b[1],i=function(a){return a[2]},j=m(aI(e),h),a=n(g[4][3],j,i);else +var +a=m(g[1],0);return n(g[4][2],a,f)}function +bx(a,b,c,d){var +q=0;switch(d[0]){case +1:var +e=d[2],s=d[1],y=0;if(typeof +e==="number")y=1;else +switch(e[0]){case +8:var +k=e[1];switch(k[0]){case +1:var +f=k[2],E=0;if(typeof +f==="number"||!(9===f[0]))E=1;else{var +w=f[4],v=f[2],u=f[1],t=k[1];q=1}break;case +6:return n(I,a,k[3])}break;case +16:var +l=e[1];if(4===l){var +o=e[2];if(1===o[0]){var +h=o[2];if(typeof +h!=="number"&&9===h[0])return aK(a,o[1],[0,c],h[1],h[2],h[4])}}else if(7===l)return i(4,fmf,[0,d]);var +B=e[2],C=function(a){return bm(a[1],s,l,B,a[2])},D=m(aI(a),c);return n(g[4][2],D,C);case +18:var +x=e[4];if(x)return aM(a,[0,c],x[2],s);break;default:y=1}break;case +4:var +p=d[2];if(1===p[0]){var +j=p[2],F=0;if(typeof +j==="number"||!(9===j[0]))F=1;else{var +w=j[4],v=j[2],u=j[1],t=p[1];q=1}}break}if(q)return aK(a,t,[0,c],u,v,w);function +z(a){return[0,a]}var +A=m(r(0,a),b);return n(g[4][3],A,z)}function +by(a,b,c){var +k=0;switch(c[0]){case +1:var +d=c[2],e=c[1],o=0;if(typeof +d==="number")o=1;else +switch(d[0]){case +6:var +R=d[1],E=0,v=fv(0,e);if(typeof +v==="number"){if(13===v)E=1}else +switch(v[0]){case +53:case +85:case +86:E=1;break}var +S=E?1:0;if(S){var +T=function(a){return[1,[6,a[1],a[2],a[3]]]},U=l(aJ,a,e,R);return n(g[4][3],U,T)}break;case +8:var +w=d[1];if(1===w[0]){var +f=w[2],aa=0;if(typeof +f==="number"||!(9===f[0]))aa=1;else{var +t=f[4],s=f[2],q=f[1],p=w[1];k=1}}break;case +16:var +x=d[1],u=0;switch(x){case +4:var +y=d[2];if(1===y[0]){var +h=y[2],ab=0;if(typeof +h==="number"||!(9===h[0]))ab=1;else{var +t=h[4],s=h[2],q=h[1],p=y[1];k=1;u=1}}break;case +5:var +z=d[2];if(1===z[0]){var +ac=0,G=z[2];if(typeof +G==="number"||!(20===G[0]))ac=1;else{var +H=z[1];o=2;u=1}}break;case +6:var +A=d[2];if(1===A[0]){var +i=A[2],ad=0;if(typeof +i==="number"||!(9===i[0]))ad=1;else{var +t=i[4],s=i[2],q=i[1],p=A[1];k=1;u=1}}break}if(!u){var +F=d[2],V=4===x?e:C(F);return bm(a,V,x,F,0)}break;case +17:return bx(a,b,d[2],d[3]);case +18:var +I=d[4];if(I)return aM(a,0,I[2],e);if(a[2][10]){var +J=C(b),B=fv(0,J);if(typeof +B!=="number"&&37===B[0]){var +K=B[1];if(0===K[0])return aM(a,0,K[1],J)}var +W=function(a){return[0,a]},X=m(r(0,a),b);return n(g[4][3],X,W)}break;case +21:var +H=e;o=2;break;default:o=1}switch(o){case +0:break;case +1:break;default:var +N=function(a){return m(g[1],[1,[4,a]])},O=L(a,H);return n(g[4][2],O,N)}break;case +4:var +D=c[2];if(1===D[0]){var +j=D[2],ae=0;if(typeof +j==="number"||!(9===j[0]))ae=1;else{var +t=j[4],s=j[2],q=j[1],p=D[1];k=1}}break;case +22:var +M=c[1],Y=M[2],Z=M[1],_=function(a){return[1,a]},$=l(bn,a,Z,Y);return n(g[4][3],$,_)}if(k)return aK(a,p,0,q,s,t);function +P(a){return[0,a]}var +Q=m(r(0,a),b);return n(g[4][3],Q,P)}h(I,function(a,b){var +d=y3(jV(a),b);if(d){var +c=d[1];if(c&&!c[2])return by(a,b,c[1])}function +e(a){return[0,a]}var +f=m(r(0,a),b);return n(g[4][3],f,e)});h(bn,function(d,b,c){var +i=c[2],e=c[1];function +a(u){function +c(v){function +w(a){return[6,u,v,a]}if(i){var +f=i[1],h=y3(jV(d),f),j=0;if(h){var +a=h[1];if(a){var +b=a[1];if(1===b[0]){var +c=b[2],x=0;if(typeof +c==="number"||!(6===c[0]))x=1;else if(!a[2]){var +p=c[1],q=b[1],s=function(a){return a[3]},t=l(aJ,d,q,p),e=n(g[4][3],t,s);j=1}}}}if(!j)var +k=function(a){return[0,a]},o=m(r(0,d),f),e=n(g[4][3],o,k)}else +var +e=m(g[1],0);return n(g[4][3],e,w)}function +a(a){var +b=a[2][4],c=a[1];function +e(a){return 0===a[0]?[0,c,a[1]]:a[1]}var +f=n(I,d,b);return n(g[4][3],f,e)}var +b=rz(jV(d),e),f=j(a,m(Y[18],b));return n(g[4][2],f,c)}var +f=aX(d,b);return n(g[4][2],f,a)});h(aJ,function(f,b,c){function +a(d){function +e(a){return[0,d,a[1],a[2]]}var +j=c[2];function +h(a,b){if(!b)return m(g[1],a);var +j=b[1],k=j[2];if(0!==k[0])return i(15,fmi,0);var +e=j[1],q=b[2],r=k[3];function +s(a){return h(a,q)}var +d=a[2],c=a[1];function +l(a){if(0!==a[0])return[0,[0,a[1],c],d];var +b=a[1];if(typeof +b!=="number"&&13===b[0]&&ao(e,fmh))return[0,c,d];return ao(e,fmg)?[0,c,[0,b]]:[0,[0,[0,e,b],c],d]}var +o=n(I,f,r),p=n(g[4][3],o,l);return n(g[4][2],p,s)}var +a=gz(jV(f),j),b=h(fmj,m(Y[18],a));return n(g[4][3],b,e)}var +d=aX(f,b);return n(g[4][2],d,a)});function +aN(a,b,c,d,e,f,g,h){var +j=aR(g,n(a,aR2(c,d,f,e),h)),i=j[1],m=0,o=j[2];if(0===i[0]){var +p=i[1];if(c[6]){var +k=[0,l(b,c[4],fmk,p)];m=1}}if(!m)var +k=i;return[0,k,o]}function +bz(a,b,c,d,e,f){return aN(I,eN4,a,b,c,d,e,f)}function +bo(a){var +c=0;if(typeof +a!=="number")switch(a[0]){case +19:var +d=a[1];if(typeof +d!=="number"&&!a[2]){var +e=d[1][2];c=1}break;case +20:var +f=a[1];if(16===f[0]){var +b=f[1],h=0;if(typeof +b==="number"||!(1===b[0]))h=1;else{var +g=b[1];if(!g[3]){var +e=g[1][2];c=1}}}break}return c?[0,e]:0}function +bA(c,e){var +j=e[3],k=e[2],a=e[4][1],b=0,i=M(function(a,b){switch(b[0]){case +0:var +c=b[3],d=0;return c?aR1(d,c[1],a):a;case +4:var +e=b[6],f=b[5];return afk(2,e,afk(1,f,afk(0,b[3],a)));default:return a}},b,a),d=0,h=M(function(a,b){var +f=b[1],h=b[3],i=b[2],e=l(e$0[1],0,k,f);try{n(D(e,lO,I2),e,j);var +g=0,d=g}catch(f){var +c=fk(f);if(c[1]!==aQg)throw B(c,0);var +d=[0,c[2]]}return d?[0,[0,i,f,h,d[1]],a]:a},d,i),f=[0,aP[1],T[7][1]];return M(function(a,b){var +h=b[4],f=a[2],q=b[3],r=b[2],s=b[1],t=a[1],k=h[2],l=aR2([0,0,c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10]],e,h[1],T[7][1]);function +m(a){if(0===a[0])return bo(a[1]);var +b=a[1],c=0;switch(b[0]){case +1:if(b[1]){var +d=b[4];if(d)return bo(d[1]);c=1}else +var +e=b[2][2];break;case +0:case +6:c=1;break;default:var +e=b[1][2]}return c?0:[0,e]}var +p=n(I,l,k),d=aR(t,n(g[4][3],p,m)),i=d[1];if(0!==i[0])return[0,d[2],f];var +j=i[1];if(!j)return[0,d[2],f];var +u=d[2];return[0,u,o(T[7][31],0,j[1],[0,r,s,q],f)]},f,h)[2]}function +bB(aV){function +u(d,b,c){var +e=[0,c];function +a(a){return q(d,0,1,e,0,a)}var +f=jV(d);return o(v[5],f,a,b,c)}function +q(a,b,c,d,e,f){var +h=a,k=b,t=e,i=f;for(;;){switch(i[0]){case +0:var +J=i[1][2],y=iO(jV(h),J)[1];if(ao(k,[0,[0,y]]))return m(g[1],fmr);var +ay=function(a){if(a)return m(g[1],fms);if(n(j7,y,h[8])){var +b=function(a){return fmt},e=z([0,y]);return n(g[4][3],e,b)}var +f=h[9],i=n(iz,y,h[8]),j=[0,h[1],h[2],h[3],h[4],h[5],h[6],h[7],i,f];return aj(j,function(b){return function(e){return function(a){return q(b,e,c,d,t,a)}}},J)},az=E([0,y]);return n(g[4][2],az,ay);case +1:var +p=i[2],s=i[1];if(typeof +p==="number"){if(3===p)return u(h,s,fmu)}else +switch(p[0]){case +5:var +k=0,i=p[1];continue;case +6:var +K=p[1],aA=function(a){return[13,a]},an=function(b){function +a(a){var +c=b[5],d=V(b[4],a);return[0,b[1],b[2],b[3],d,c]}function +c(a){return[0,[2,a],0]}var +e=q(h,0,1,d,t,K[3]),f=n(g[4][3],e,c);return n(g[4][3],f,a)},aq=o(m(as,w(h)),[0,c],[0,d],s,K),ar=n(g[4][2],aq,an);return n(g[4][3],ar,aA);case +7:var +D=0===p[1][0]?fml:fmm,O=2,P=[0,D],Q=0,R=function(a){return q(h,Q,c,P,O,a)},S=jV(h);return o(v[4],S,R,s,D);case +8:var +k=0,i=p[1];continue;case +9:var +A=p[4],L=p[2],aB=p[3],aC=p[1],at=A[9],G=fv(fmq,s);if(typeof +G==="number"&&79===G)return l(m(ax,w(h)),s,L,A);if(!at&&1===t){var +k=0,i=aC;continue}var +T=A[5],X=A[4],Y=function(b){function +a(c){function +a(d){function +a(a){return[13,[0,0,0,0,V(a,V(d,V(c,b))),1]]}var +e=j(function(a){function +b(a){return[2,a]}var +c=q(h,0,1,0,2,a);return n(g[4][3],c,b)},aB);return n(g[4][3],e,a)}function +e(a){return[0,[2,a],0]}var +f=q(h,0,1,d,2,L),i=n(g[4][3],f,e);return n(g[4][2],i,a)}var +c=o(bk(h),fmn,[0,d],T,0);return n(g[4][2],c,a)},Z=o(bk(h),[0,c],[0,d],X,0);return n(g[4][2],Z,Y);case +16:var +k=0,i=p[2];continue;case +17:var +aD=p[3],aE=h[3],aF=V(U(gl(p[2])),aE),h=[0,h[1],h[2],aF,h[4],h[5],h[6],h[7],h[8],h[9]],k=0,i=aD;continue;case +20:return m(g[1],aR9);case +21:var +B=p[1],_=B[3],$=B[2],F=F7(s,B),aa=[1,s,[21,B]],ab=function(a){function +b(b){var +d=m(axc,$),e=1,f=[0,[2,a],fx(function(a){return[0,[0,a[1]],[0,b,0,0],c,1,[0,a[2],0]]},d)];return[13,[0,[0,h5(s)],0,0,f,e]]}var +d=m(r(0,h),F);return n(g[4][3],d,b)},ac=[0,aa,[0,F,[0,_,0]]],af=function(a){return C(h,a)},ah=function(a){return q(h,0,1,fmp,0,a)},ai=jV(h),am=ap(v[6],ai,ah,af,W,s,fmo,ac);return n(g[4][2],am,ab);case +0:case +12:return u(h,s,fmv);case +1:case +10:return u(h,s,fmw);case +2:case +13:return u(h,s,fmx)}break;case +2:var +x=i[3],aG=i[2],aH=i[1];if(ao(k,[0,[1,x]]))return m(g[1],fmy);var +aI=function(a){if(a)return m(g[1],fmz);if(n(sd[3],x,h[9])){var +b=function(a){return fmA},e=z([1,x]);return n(g[4][3],e,b)}var +f=n(sd[4],x,h[9]),i=[0,h[1],h[2],h[3],h[4],h[5],h[6],h[7],h[8],f],j=[0,aH,aG,x];function +k(a,b){return r(fmC,a)}return ag(i,function(b){return function(e){return function(a){return q(b,e,c,d,t,a)}}},k,bl,fmB,j)},aJ=E([1,x]);return n(g[4][2],aJ,aI);case +3:var +k=0,i=i[3];continue;case +4:var +M=i[2];if(!t&&!aV){var +k=0,t=1,i=M;continue}var +k=0,i=M;continue;case +5:var +k=0,i=i[2];continue;case +6:var +aK=i[4],aL=i[3],aM=i[1],aN=function(a){return C(h,a)},aO=function(a){return q(h,0,c,d,t,a)},aP=jV(h);return ap(v[3],aP,aO,aN,W,aM,aL,aK);case +7:var +k=0,i=i[2];continue;case +8:return u(h,i[1],fmD);case +9:return u(h,i[1],fmE);case +15:var +aQ=i[2];return ad(function(a){return q(h,k,c,d,t,a)},aQ);case +16:var +aR=i[2];return ae(0,function(a){return q(h,k,c,d,t,a)},aR);case +17:var +aS=i[2];return ak(h,k,function(b){return function(e){return function(a){return q(b,e,c,d,t,a)}}},aS);case +18:var +aT=i[2];return al(h,k,function(b){return function(e){return function(a){return q(b,e,c,d,t,a)}}},aT);case +20:var +k=0,i=i[2];continue;case +21:var +N=i[2],aU=i[1],au=aR3(h),av=ao([0,au],h5(aU)[1]),H=N[2];if(H){var +aw=H[1];if(av){var +k=0,i=aw;continue}}var +I=N[3];if(!I)return m(g[1],aR9);var +k=0,i=I[1];continue}return m(r(0,h),i)}}function +C(a,b){return q(a,0,0,1,0,b)}return function(a,b,c,d,e,f){return aN(C,aMW,a,b,c,d,e,f)}}function +e(a,b,c){function +d(d){switch(c[0]){case +0:var +i=c[1][2],f=iO(jV(d),i)[1];if(ao(b,[0,[0,f]]))return m(g[1],fmF);var +j=function(a){if(a)return m(g[1],fmG);if(n(j7,f,d[8])){var +b=function(a){return fmH},c=z([0,f]);return n(g[4][3],c,b)}var +h=d[9],i=n(iz,f,d[8]);return aj([0,d[1],d[2],d[3],d[4],d[5],d[6],d[7],i,h],e,f)},k=E([0,f]);return n(g[4][2],k,j);case +1:var +a=c[2];if(typeof +a==="number"){if(1===a)return m(g[1],2)}else +switch(a[0]){case +2:return m(g[1],fmI);case +10:return m(g[1],[9,a[1]]);case +12:return m(g[1],[8,a[1][2]]);case +13:return m(g[1],[10,a[1]])}break;case +2:var +h=c[3],l=c[2],o=c[1];if(ao(b,[0,[1,h]]))return m(g[1],fmJ);var +p=function(a){if(a)return m(g[1],fmK);if(n(sd[3],h,d[9])){var +b=function(a){return fmL},c=z([1,h]);return n(g[4][3],c,b)}var +f=n(sd[4],h,d[9]),i=[0,d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],f],j=[0,o,l,h];return ag(i,e,function(a,b){return r(fmN,a)},bl,fmM,j)},q=E([1,h]);return n(g[4][2],q,p);case +6:var +s=c[4],t=c[3],u=c[1],w=function(a){return e(d,0,a)},x=function(a){return e(d,0,a)},y=jV(d);return ap(v[3],y,x,w,W,u,t,s);case +15:var +A=c[2];return ad(function(a){return e(d,b,a)},A);case +16:var +B=c[2];return ae(0,function(a){return e(d,b,a)},B);case +17:return ak(d,b,e,c[2]);case +18:return al(d,b,e,c[2]);case +19:return aV(d,e,c[1],c[2]);case +20:return e(d,b,c[2])}return m(g[1],aR8)}var +f=aT(a,c);return n(g[4][2],f,d)}function +bC(a,b){return e(a,0,b)}return[0,aP,bz,bA,bB,function(a,b,c,d,e,f){return aN(bC,aMW,a,b,c,d,e,f)}]},fmO=function(a,b,c,d,e,f){var +g=f[2],i=f[1],j=g[3],o=f[3],p=g[2],q=g[1];if(!b)return n(e,i,j);var +k=ap(e_I,a,iI,q,p,i,j,o)[2],l=y3(a,k);if(l){var +h=l[1];if(h&&!h[2])return m(c,h[1])}return m(d,k)},fmP=function(g,b,c,d,e,f){if(!b)return m(d,0);var +h=y3(g,f7(g,e,function(a){return n(aC,g,[0,f,[53,e,[0,A,a]]])}));if(h){var +a=h[1];if(a&&!a[2]){var +i=a[1];return m(c,jD(function(a){return aj(fmQ,a)},i))}}return m(d,0)},fmR=function(a,b,c,d,e,f,g){return m(b,fU(e_C,a,0,A,e,e,0,f,g))},fmS=function(a,b,c,d){return m(b,l(wE,a,[0,d],c))},fmT=function(a,b,c,d){return m(b,rD(a,c,0,[0,d]))},y4=fkG([0,fmO,fmP,fmR,fmS,fmT,function(a,b,c,d,e,f,g){return m(b,F9(0,e,l(wE,a,[0,f],e),g))}]),aR_=function(a){var +b=a[8];if(!b)return b;var +c=P(fmW,P(fmV,fmU));return m(uz(fmX),c)},fm2=[0,T[7][1],T[7][1],T[7][1],0,0],fm4=gP(fm0,function(c){var +a=fR(c,fmY),d=a[10],b=a[38],e=a[oE],f=a[jH],g=a[wW],h=fG(c,aSa,0,aR$,jB,1)[1];function +i(a,b,c){return c}function +j(a,b,c){return c}function +k(a,b){return b}fC(c,[0,b,function(a,b,c){function +e(a){return[0,b,a]}n(a[1][1+d],a,e);return c},g,k,f,j,e,i]);return function(a,b){var +d=fp(b,c);n(h,d,0);return fH(b,d,c)}}),fm_=gP(fm1,function(f){var +x=fK(f,fm5),y=fK(f,fm6),k=fK(f,fm7),z=fK(f,fm8),a=fR(f,fmZ),p=a[98],r=a[mi],i=a[pQ],t=a[kO],d=a[k9],A=a[tP],u=a[CX],g=a[ve],h=a[xj],v=a[y6],e=a[w5],B=a[u$],j=a[CK],H=a[6],I=a[7],J=a[17],K=a[k$],L=a[kw],M=a[k6],N=a[tL],O=a[vj],P=a[t8],Q=a[xc],R=a[w7],b=fG(f,aSa,0,aR$,jB,1),C=b[10],c=b[94],E=b[lj],F=b[pR],G=b[vi],w=b[sP],U=b[1],V=b[88],W=b[90],X=b[jI],Y=b[l6];function +Z(a,b,c){var +d=c[2],e=0;if(0===d[0]){var +f=d[1][2];if(26===f[0]){var +g=f[1];e=1}}else{var +i=d[1][2];switch(i[0]){case +1:case +8:var +g=i[1];e=1;break}}if(e)n(a[1][1+h],a,g);return n(m(V,a),b,c)}function +_(d,b,c){var +g=c[3],i=c[2],a=c[1],x=0;if(a){var +j=a[1],p=j[2];if(37===p[0]){var +w=j[1];if(2>p[1][2]){l(d[1][1+u],d,w,0);x=1}}}var +z=0;if(a){var +e=a[1][2],f=0;switch(e[0]){case +26:n(d[1][1+h],d,e[1]);f=1;break;case +37:var +t=e[1][1];fo(function(a){var +b=a[2][2];if(b){var +c=b[1][2];switch(c[0]){case +1:case +8:return n(d[1][1+h],d,c[1])}}return 0},t);f=1;break}if(f)z=1}var +A=0;if(i){var +r=i[1];if(0===r[0]){var +s=r[1];fo(function(a){var +c=a[2],e=c[2],f=c[1],i=f[2][1],j=f[1],m=a[1],w=0;if(e){if(!q(e[1][2][1],gF)){o(d[1][1+v],d,m,[0,i],0!==g?1:0);w=1}}else if(af(i,gF)&&0!==g){o(d[1][1+v],d,m,0,1);w=1}var +p=n(kF[19],d[1+y],j);if(!p)return 0;var +r=p[1][1][1],s=n(T[7][27],r,d[1+k][2]),A=0;if(s){var +b=s[1],x=b[2],z=b[1];if(2>b[3]){l(d[1][1+u],d,j,[0,[0,z,[0,x]]]);A=1}}var +t=n(T[7][27],r,d[1+k][3]);return t?n(d[1][1+h],d,t[1]):0},s);A=1}}return n(m(W,d),b,c)}function +$(a,b,c){var +f=c[1][2][1],j=0;if(0===f[0]){var +e=f[1][1];if(n(a[1][1+i],a,e)){var +h=n(a[1][1+d],a,e);if(h)l(a[1][1+g],a,e,h[1]);j=1}}return n(m(Y,a),b,c)}function +aa(a,b){if(0===b[0]){var +c=b[1][1],e=n(a[1][1+d],a,c);return e?(l(a[1][1+g],a,c,e[1]),b):m(m(E,a),b)}var +f=b[1][2][1];if(0===f[0]&&n(a[1][1+i],a,f[1][1]))return b;return m(m(E,a),b)}function +ab(a,b){if(0===b[0]){var +c=b[1][1],e=n(a[1][1+d],a,c);return e?(l(a[1][1+g],a,c,e[1]),b):m(m(G,a),b)}var +f=b[1][2][1];if(0===f[0]&&n(a[1][1+i],a,f[1][1]))return b;return m(m(G,a),b)}function +ac(d,b,c){var +a=c[4],g=0;if(a){var +e=a[1];if(0===e[0]){var +f=e[1];fo(function(a){var +b=a[3],c=b[1];return q(b[2][1],gF)?0:n(d[1][1+B],d,c)},f);g=1}}return n(m(X,d),b,c)}function +ad(a,b,c){var +f=c[2][2];if(0===f[0]){var +g=c[3][2];if(9===g[0]){var +h=f[1],k=g[1][1],i=n(a[1][1+p],a,h),e=n(a[1][1+d],a,k);if(i){if(e){l(a[1][1+j],a,i[1],e[1]);return c}}else if(e&&n(a[1][1+r],a,h))return c;return n(m(C,a),b,c)}}return n(m(C,a),b,c)}function +ae(a,b,c){var +e=c[2],f=e[1],g=f[2];if(0===g[0]){var +h=e[2];if(h){var +i=h[1][2];if(9===i[0]){var +k=g[1],o=n(a[1][1+d],a,i[1][1]);if(!o)return n(m(w,a),b,c);var +s=o[1],q=n(a[1][1+p],a,k);if(q)l(a[1][1+j],a,q[1],s);return n(a[1][1+r],a,k)?(l(a[1][1+H],a,b,f),c):n(m(w,a),b,c)}}}return n(m(w,a),b,c)}function +ag(a,b){var +c=b[1];return p1(c,function(a){if(0===a[0]&&4!==a[1][2][1][0])return 1;return 0})}function +ah(a,b){var +c=b[1];return s9(c,function(a){if(0===a[0]){var +b=a[1][2][1];switch(b[0]){case +0:case +3:var +c=b[1],d=c[1];if(!q(c[2][1],gF))return[0,d];break}}return 0})}function +ai(a,b,c){var +g=c[1][2];if(9!==g[0])return n(m(F,a),b,c);var +f=c[2],h=n(a[1][1+d],a,g[1][1]);if(h){var +e=0,k=h[1];switch(f[0]){case +0:e=q(f[1][2][1],gF)?2:1;break;case +1:break;default:var +i=f[1][2];if(13===i[0])if(q(i[1][1],gF))e=2;else +e=1}switch(e){case +0:break;case +1:l(a[1][1+j],a,b,k);return c;default:return c}}return n(m(F,a),b,c)}function +aj(a,b){var +e=b[2];if(9!==e[0])return m(m(c,a),b);var +f=e[1][1],h=n(a[1][1+d],a,f);return h?(l(a[1][1+g],a,f,h[1]),b):m(m(c,a),b)}function +ak(a,b){if(b[2][2][1])return 0;var +c=m(fm4[1],0),d=b[3],e=l(D(c,iL,a2R),c,m(D(c,zm,aVG),c),d);return fo(m(a[1][1+A],a),e)}function +al(a,b){return 0!==n(a[1][1+d],a,b)?1:0}function +am(a,b){return n(T[7][27],b,a[1+z])}function +an(a,b,c,d){return n(a[1][1+e],a,[94,b,c,d])}function +ao(a,b){return n(a[1][1+e],a,[89,b])}function +ap(a,b,c){var +d=[88,b,S(c,function(a){return s([37,a[2]],a[1])})];return n(a[1][1+e],a,d)}function +aq(a,b,c){var +d=[87,b,n(a[1][1+t],a,c)];return n(a[1][1+e],a,d)}function +ar(a,b){return n(a[1][1+e],a,[86,b])}function +as(a,b,c){var +d=[85,b,n(a[1][1+t],a,c)];return n(a[1][1+e],a,d)}function +at(a,b){return s(fm9,b[1])}fC(f,[0,e,function(a,b){return fO(a[1+x],b)},t,at,j,as,B,ar,g,aq,u,ap,A,ao,v,an,d,am,i,al,h,ak,O,aj,K,ai,p,ah,r,ag,I,ae,R,ad,M,ac,J,ab,N,aa,L,$,P,_,Q,Z]);return function(a,b,c,d,e){var +h=T[7][1],i=e[1];function +j(a,e,c){var +b=n(kF[18],d,a),f=l(kF[21],d,0,b);function +g(a,b){return o(T[7][31],0,a,e,b)}return l(T[8][16],g,f,c)}var +m=l(T[7][12],j,i,h),g=fp(b,f);g[1+z]=m;g[1+k]=e;g[1+y]=d;g[1+x]=c;n(U,g,0);return fH(b,g,f)}}),aSb=hZ,fne=function(a,b){return aaW(b)},CE=j3(fnc),CF=fR(CE,fna),aSc=CF[3],fnj=CF[2],fnk=CF[5],fnl=CF[8],fnm=CF[9],fnn=CF[13],Hf=fG(CE,0,0,fnb,uX,1),fno=Hf[1],fnp=Hf[2],fnq=Hf[6],fnr=Hf[7],fns=Hf[10],fnt=function(a,b,c,d,e){var +h=Pj(b),f=n(yn[27],e,h);if(!f)return d;var +i=f[1],g=Pj(d);return n(yn[3],e,g)?d:(adg(d,o(yn[31],0,e,i,g)),o(m(fnq,a),b,c,d,e))},fnu=function(a,b,c,d,e){var +g=d[1][1][4];if(n(F0[3],e,g))return d;var +h=rz(b,e),i=o(F0[31],0,e,h,g),f=d[1][1];d[1][1]=[0,f[1],f[2],f[3],i,f[5]];return o(m(fnr,a),b,c,d,e)},fnv=function(a,b,c,d,e){var +g=d[1][1][3];if(n(AP,e,g))return d;var +h=o(g5,0,e,i_(b,e),g),f=d[1][1];d[1][1]=[0,f[1],f[2],h,f[4],f[5]];return o(m(fnp,a),b,c,d,e)},fnw=function(a,b,c,d,e){var +g=d[1][1][2];if(n(wf[3],e,g))return d;var +h=gz(b,e),i=o(wf[31],0,e,h,g),f=d[1][1];d[1][1]=[0,f[1],i,f[3],f[4],f[5]];return o(m(fns,a),b,c,d,e)};fC(CE,[0,aSc,function(g,b,c,d,e,f){var +a=Pk(d);if(n(AP,f,a))return d;var +j=iO(b,f),k=j[2],i=j[1];if(f!==i){Po(d,o(g5,0,f,[0,[0,i]],a));return x(g[1][1+aSc],g,b,c,d,e,i)}if(2===k[0])var +h=k[1],l=[O,function(a){var +e=ai(h),f=ah===e?h[1]:O===e?aq(h):h;p(g[1][1+fnj],g,b,c,d,f);return f}];else +var +l=X(fnx);Po(d,o(g5,0,f,AQ([2,l]),a));return d},fnk,fnw,fnn,fnv,fnl,fnu,fnm,fnt]);j4(CE);var +aSd=fp(0,CE);m(fno,aSd);var +aSe=fH(0,aSd,CE),Qs=function(c,b){var +e=aGT(fnz[1],[0,0],[0,fny],[0,c],b),h=e[2],d=e[1];if(0!==h){var +j=yw[1];return[1,M(function(a,b){var +d=abh(lr,0,0,abg(0,c,[jY,b[1],b[2]]));return n(yw[4],d,a)},j,h)]}var +a=o(djP[1],0,c,d,djH);m(D(a,-1051105533,xn),a);var +f=l(D(a,iL,tL),a,m(D(a,lO,t3),a),d),g=f[1],i=f[2];if(!g[2])m(qv(function(a){return 1===a[0]?0:1}),i);return[0,[0,d,g]]},aSf=function(a,b){return vH(fx(a,b))},Qt=function(a){if(typeof +a==="number")return k2;switch(a[0]){case +0:var +b=a[1];return a4U(aSf(function(a){var +b=a[1];return[0,b,Qt(a[2])]},b));case +1:return U9(aSf(Qt,a[1]));case +2:return gk(a[1]);case +3:return D1(a[1]);default:return!!a[1]}},aSg=[0,0],afp=function(a,b,c,d,e,f){var +bj=aSg[1];if(bj){var +bk=bj[1],cd=bk[2];if(!af(bk[1],a))throw B([0,aL,fnB],1);var +aI=cd}else +var +aI=X(fnC);var +cf=aNc(0),F=m(AS,fnA),ay=c["babel_loose_array_spread"]|0,az=c["experimental.const_params"]|0,aA=c[aWI]|0,aB=c["exact_by_default"]|0,aW=jy(c["react.runtime"]),cg=1,G=1,H=0,I=0,J=0,N=1,Q=0,R=0,V=0,W=10000,Z=0,_=0,$=0,aa=hZ,ab=0,ac=0,ad=0,ae=0,ag=1,ak=0,al=0,am=0,an=0,ar=1,as=2,au=0,av=1,aw=0,aF=0,aH=0,aS=0,aV=0,aO=0,ax=0,ce=q(aW,ath)?q(aW,aor)?X(P(fnD,aW)):1:0,aD=c["use_mixed_in_catch_variables"]|0,aZ=d[3];if(aZ)var +a0=aZ[1],bu=a0[1],v=[0,[0,bu,n(D(NW,jW,xj),NW,a0[2])]];else +var +v=0;var +a1=d[4];if(a1)var +bv=a1[1]?0:1,w=bv;else +var +w=ce;var +a2=[0,cg,ax,v,aO,aV,aS,aH,aF,aw,Bo,av,au,ay,as,ar,an,am,al,az,aA,ak,ag,aB,ae,ad,ac,r$,ab,aa,$,_,Z,w,W,V,R,Q,N,J,a,I,H,G,F,aD],a3=d[1];if(a3){switch(a3[1]){case +0:var +aJ=[0,1,ax,v,aO,aV,aS,aH,aF,aw,Bo,av,au,ay,as,ar,an,am,al,az,aA,ak,ag,aB,ae,ad,ac,r$,ab,aa,$,_,Z,w,W,V,R,Q,N,J,a,I,H,G,F,aD];break;case +1:var +aJ=[0,1,ax,v,aO,1,aS,aH,aF,aw,Bo,av,au,ay,as,ar,an,am,al,az,aA,ak,ag,aB,ae,ad,ac,r$,ab,aa,$,_,Z,w,W,V,R,Q,N,J,a,I,H,G,F,aD];break;case +2:var +aJ=[0,1,ax,v,aO,aV,1,aH,aF,aw,Bo,av,au,ay,as,ar,an,am,al,az,aA,ak,ag,aB,ae,ad,ac,r$,ab,aa,$,_,Z,w,W,V,R,Q,N,J,a,I,H,G,F,aD];break;default:var +aJ=a2}var +aE=aJ}else +var +aE=a2;var +aK=d[2]?[0,aE[1],ax,v,0,aE[5],aE[6],aH,aF,aw,Bo,av,au,ay,as,ar,an,am,al,az,aA,ak,ag,aB,ae,ad,ac,r$,ab,aa,$,_,Z,w,W,V,R,Q,N,J,a,I,H,G,F,aD]:aE,a5=d[5],bw=aIi(r$,b[1],a5),bx=kA(a5),j=[0,aK[1],ax,v,aK[4],aK[5],aK[6],bw,bx,aw,Bo,av,au,ay,as,ar,an,am,al,az,aA,ak,ag,aB,ae,ad,ac,r$,ab,aa,$,_,Z,w,W,V,R,Q,N,J,a,I,H,G,F,aD],bm=[0,at],ch=[O,function(a){return aHC(b)}];function +ci(a){return n(r4,a,bm[1])}if(aI){var +y=aI[3],bh=aI[2],aN=aI[1],bi=[0,ac4(0)],b$=function(a){return bi[1]},ca=function(a){return[1,[2,a]]},cb=[O,function(a){return aHC(aN)}],cc=[0,0,j[2],j[3],j[4],j[5],j[6],j[7],j[8],j[9],j[10],j[11],j[12],j[13],j[14],j[15],j[16],j[17],j[18],j[19],j[20],j[21],j[22],j[23],j[24],j[25],j[26],j[27],j[28],j[29],j[30],j[31],j[32],j[33],j[34],j[35],j[36],j[37],j[38],j[39],j[40],j[41],j[42],j[43],j[44],j[45]],E=aNd(aNc(0),cc,aN,cb,ca,b$),a8=y[7],a9=y[2],bJ=y[6],bK=y[5],bL=y[4],bM=y[3],bN=y[1];m(gw[29],E);var +bO=[0,aN],bP=[O,function(a){return[0,aN,m(sg[20],bh)]}],t=function(a){return $U(bP,[0,bO,a])},a_=function(j,b){return[O,function(a){var +c=aLc(t,function(a){return uR(t,a)},b);switch(c[0]){case +10:var +e=c[1];break;case +11:var +e=c[1];break;default:var +e=c[1]}switch(c[0]){case +10:var +f=c[2];break;case +11:var +f=c[2];break;default:var +f=c[2]}switch(c[0]){case +5:var +g=c[5],d=m(kh(c[3],c[4]),g);break;case +6:var +d=s(29,c[1]);break;case +7:var +d=s([93,[0,c[2]]],c[3]);break;case +8:var +d=s([37,[0,c[2]]],c[1]);break;case +9:var +d=s([37,[0,c[2]]],c[1]);break;case +0:case +1:var +d=Ok([0,c[2]],c[1]);break;case +10:case +11:var +d=s([21,c[2]],c[1]);break;default:var +d=BG([0,c[2]],c[1])}var +i=[O,function(a){var +y=ai(j),al=ah===y?j[1]:O===y?aq(j):j,b=al[1];switch(c[0]){case +0:var +P=c[4],Q=c[3],R=c[2];return x(wG,at,at,b,d,function(a){var +c=p(a4,0,a[1],at,b,P),e=d[2];function +f(a){return[26,R,[0,e],a]}return[1,d,[16,0,jD(function(a){return gg(f,a)},c)]]},Q);case +1:var +v=c[2],T=c[5],U=c[4],V=c[3],W=ka(b[1],c[1]);return x(wG,at,at,b,d,function(a){var +c=a[1],e=a[2],f=aj([27,v],d),g=S(U,o(a4,0,c,at,b));return[1,d,[16,2,[21,f,[0,W,S(T,o(a4,0,c,at,b)),g,e,v]]]]},V);case +2:var +X=c[4],Z=c[3],_=c[2],$=ka(b[1],c[1]);return x(wG,at,at,b,d,function(a){return p9(0,0,js(ae1,0,a[1],at,b,d,[0,_],$,X,a[2]))},Z);case +3:var +aa=c[3],ab=c[2];return ap(ae3,at,at,b,d,[0,ab],ka(b[1],c[1]),aa);case +4:var +e=c[3],ae=c[2],af=ka(b[1],c[1]),r=e[2],D=e[10],E=e[9],F=e[8],G=e[7],H=e[6],I=e[5],J=e[4],K=e[3],L=e[1],t=aj(40,d);return x(wG,at,at,b,d,function(a){var +p=a[1],e=[],ad=a[2];h(e,[O,function(a){var +y=[0,t,fcu,GI(b[1],t,e),2,0,1];function +z(a){return a}var +q=wy(b[1],z,y),s=ap(ae2,p,at,b,q,d,r,K),A=s[2],B=s[1],L=fx(o(a4,0,p,at,b),J),c=o(fN,0,fcv,q,p),M=gg(function(a){return[72,a]},d),N=n(ia,l(G_,c,at,b),I),O=jN(m(aeV(d),N)),f=jk(o(a4,0,c,at,b),F);if(f){var +g=f[2],h=f[1];if(g)var +P=g[2],Q=g[1],R=C(h),u=[0,[15,R,l(gr[1],h,Q,P)]];else +var +u=[0,h];var +v=u}else +var +v=0;var +T=ir(b[1],M,1,0,0,v,[0,O],0,A),U=jN(n(ia,l(G_,c,at,b),H)),ah=hw(b[1],U),V=jN(aQ9(d,r,n(ia,l(G_,c,at,b),G))),ag=hw(b[1],V),i=jk(o(a4,0,c,at,b),E);if(i){var +j=i[2],k=i[1];if(j)var +W=j[2],X=j[1],Z=C(k),_=[15,Z,l(gr[1],k,X,W)],w=[0,uV(b[1],_)];else +var +w=[0,uV(b[1],k)];var +x=w}else +var +x=0;var +$=S(D,l(G$,c,at,b)),aa=hw(b[1],Y[1]),ab=hw(b[1],Y[1]),ac=hw(b[1],Y[1]);return wi([1,d,[9,T,B,L,[0,[0,ae],af,ad,ah,ag,x,g2,g2,0,$,hw(b[1],Y[1]),ac,ab,aa]]],0,fcw)}]);var +c=ai(e);return ah===c?e[1]:O===c?aq(e):e},L);case +5:var +ac=c[6];return ap(u4,0,at,at,b,d,ac,p(y0,at,at,b,d,c[7]));case +6:var +ad=[0,[0,c[1],c[3],c[4]],c[5]],u=iN(function(a){var +d=a[3],c=s(29,a[2]);return ap(u4,0,at,at,b,c,d,p(y0,at,at,b,c,at))},ad),k=u[2],q=u[1];if(!k)return q;var +M=k[2],N=k[1],am=aj(49,C(q));return[15,am,l(gr[1],q,N,M)];case +7:return x(ae4,at,at,b,d,c[4],[0,[0,c[1],c[2]]]);case +9:return p(a4,0,at,at,b,c[3]);case +10:var +f=c[3],w=c[1],ag=c[5],ak=c[4],g=function(a,b){return[1,s([22,a],w),b]};if(typeof +f==="number")var +i=g(12,3);else +switch(f[0]){case +0:var +i=g(5,[2,f[1]]);break;case +1:var +z=f[1]?0:1,i=g(2,[0,z]);break;case +2:var +A=f[1]?0:1,i=g(4,[1,A]);break;default:var +B=f[1]?0:1,i=g(3,[3,B])}return[1,d,[21,[0,ka(b[1],w),ak,i,ag]]];default:return m(fL,d)}}];return[0,e,f,l(gw[10],E,d,i)]}]},r=[];h(r,[O,function(a){var +c=l(j6,function(a,b,c){var +d=b[2],f=b[1];return o(fN,0,a,[O,function(a){var +e=s(13,m(m(sg[14],bh),f));function +q(g){return[O,function(a){switch(g[0]){case +0:var +b=[0,O6(t,g[1])];break;case +1:var +b=[1,g[1]];break;default:var +b=[2,g[1]]}var +l=ai(r),q=ah===l?r[1]:O===l?aq(r):r,f=q[1];switch(b[0]){case +0:var +m=b[1];return CB(f,function(a,b,c,d){return[0,[0,c],0,1,o(gw[9],f[1],e,d,a)]},m);case +1:var +c=n(ip[14],f[4],b[1]),i=ai(c),h=ah===i?c[1]:O===i?aq(c):c,p=h[1];return[0,[0,p],0,1,o(gw[9],f[1],e,h[2],h[3])];default:var +d=n(l1[14],f[5],b[1]),j=ai(d),k=ah===j?d[1]:O===j?aq(d):d;return[0,[0,k[1]],0,1,k[3]]}}]}function +$(f){return[O,function(a){var +d=uR(t,f),e=ai(r),g=ah===e?r[1]:O===e?aq(r):r,c=g[1];if(1===d[0]){var +b=d[1];switch(b[0]){case +13:return p(aeY,1,at,at,c,[0,b[1],b[2],b[3],b[4]]);case +14:return p(aeZ,1,at,at,c,[0,b[1],b[2],b[3],b[4]])}}return n(aRp(at),c,d)}]}function +aa(c){return[O,function(a){switch(c[0]){case +0:var +b=[0,O6(t,c[1])];break;case +1:var +b=[1,c[1]];break;case +2:var +u=c[1],y=uR(t,c[2]),b=[2,t(u),y];break;case +3:var +v=c[2],b=[3,t(c[1]),v];break;default:var +b=[4,c[1]]}var +s=ai(r),x=ah===s?r[1]:O===s?aq(r):r,d=x[1];switch(b[0]){case +0:var +h=b[1];break;case +1:var +e=n(ip[14],d[4],b[1]),i=ai(e),j=ah===i?e[1]:O===i?aq(e):e;return[0,[0,j[1]],0,0,j[3]];case +2:var +k=b[2],w=b[1];if(2!==k[0])return[0,[0,w],0,0,p(a4,0,at,at,d,b[2])];var +h=k[1];break;case +3:var +f=n(ip[14],d[4],b[2]),l=ai(f),m=ah===l?f[1]:O===l?aq(f):f;return[0,[0,m[1]],0,0,m[3]];default:var +g=n(l1[14],d[5],b[1]),o=ai(g),q=ah===o?g[1]:O===o?aq(g):g;return[0,[0,q[1]],0,0,q[3]]}return CB(d,function(a,b,c,d){return[0,[0,c],0,0,a]},h)}]}var +b=[O,function(a){if(0===d[0])var +h=d[3],ag=d[2],aj=d[1],s=h[4],u=h[3],v=h[2],w=h[1],an=fx(function(a){var +b=a[2];return[0,t(a[1]),b]},v),ab=pV(q,aj),ac=S(ag,$),b=[0,WD(w,ab,at,function(a,b,c){return o(fN,0,b,c,a)}),ac,an,u,s];else +var +f=d[3],al=d[2],am=d[1],x=f[6],y=f[5],z=f[4],A=f[3],B=f[2],C=f[1],ap=fx(function(a){var +b=a[2];return[0,t(a[1]),b]},z),ao=fx(function(a){var +b=a[2];return[0,t(a[1]),b]},B),ad=pV(q,am),ae=pV(aa,al),af=WD(C,ad,at,function(a,b,c){return o(fN,0,b,c,a)}),b=[1,af,WD(A,ae,at,function(a,b,c){return o(fN,0,b,c,a)}),ao,ap,y,x];var +p=ai(r),ak=ah===p?r[1]:O===p?aq(r):r,c=ak[1];if(0!==b[0]){var +N=b[6],P=b[5],Q=b[4],R=b[3],T=b[2],U=b[1],V=jN(n(ia,function(a){var +b=ai(a);return ah===b?a[1]:O===b?aq(a):a},T)),W=jN(n(ia,function(a){var +b=ai(a);return ah===b?a[1]:O===b?aq(a):a},U)),X=fx(function(a){return aeX(c,a)},Q),Z=fx(function(a){return aeX(c,a)},R),F=[22,[0,e,[0,Ca(c[1],Y[1]),0,0],P,N]],_=m(o(gw[12],c[1],e,1,V),F);return aRd(c,e,[0,X,Z],m(o(gw[12],c[1],e,0,W),_))}var +j=b[2],G=b[5],H=b[4],I=b[3],J=b[1];if(j)var +g=j[1],k=ai(g),K=ah===k?g[1]:O===k?aq(g):g,i=K;else +var +i=PB(c[1],e);var +L=jN(n(ia,function(a){var +b=ai(a);return ah===b?a[1]:O===b?aq(a):a},J)),M=fx(function(a){return aeX(c,a)},I),l=c[1],D=[0,e,[0,Ca(l,Y[1]),[0,i],0],H,G],E=o(gw[13],l,e,D,i);return aRd(c,e,[0,0,M],m(o(gw[12],c[1],e,0,L),E))}];return l(gw[10],E,e,b)}],c)},a8,at);function +b(f){return[O,function(a){var +c=uR(t,f),b=ai(r),d=ah===b?r[1]:O===b?aq(r):r,e=d[1];return n(aRp(at),e,c)}]}var +d=n(qO[18],b,bL);function +e(c){return[O,function(a){switch(c[0]){case +0:var +b=[0,c[1]];break;case +1:var +I=c[3],J=c[2],b=[1,t(c[1]),J,I];break;case +2:var +b=[2,c[1],c[2]];break;case +3:var +b=[3,t(c[1])];break;case +4:var +K=c[3],L=c[2],b=[4,t(c[1]),L,K];break;case +5:var +M=c[3],N=c[2],b=[5,t(c[1]),N,M];break;default:var +P=c[3],Q=c[2],b=[6,t(c[1]),Q,P]}var +H=ai(r),ak=ah===H?r[1]:O===H?aq(r):r,d=ak[1];switch(b[0]){case +0:var +e=n(qO[14],d[7],b[1]),v=ai(e);return ah===v?e[1]:O===v?aq(e):e;case +1:var +R=b[2],S=b[1],f=n(i9[14],d[6],b[3]),w=ai(f),T=ah===w?f[1]:O===w?aq(f):f,y=[0,R],U=s([41,[0,y]],S);return x(gw[5],d[1],A,U,0,y,T);case +2:var +V=b[2],h=n(qO[14],d[7],b[1]),z=ai(h),B=ah===z?h[1]:O===z?aq(h):h,i=n(i9[14],d[6],V),C=ai(i),W=ah===C?i[1]:O===C?aq(i):i,X=s(fbE,iG(B));return p(gw[6],d[1],A,X,B,W);case +3:var +Y=b[1];return m(gC(fbF),Y);case +4:var +Z=b[2],_=b[1],j=n(i9[14],d[6],b[3]),D=ai(j),$=ah===D?j[1]:O===D?aq(j):j,aa=s(74,_);return o(gw[27],d[1],aa,Z,$);case +5:var +u=b[2],E=b[1],l=n(i9[14],d[6],b[3]),F=ai(l),ab=ah===F?l[1]:O===F?aq(l):l,ac=s([60,m(k(fbG),u)],E),ad=[1,s(2,E),[0,[0,0,[0,u,g+u]]]];return p(gw[6],d[1],A,ac,ad,ab);default:var +ae=b[2],af=b[1],q=n(i9[14],d[6],b[3]),G=ai(q),ag=ah===G?q[1]:O===G?aq(q):q,aj=s(75,af);return p(gw[28],d[1],A,aj,ae,ag)}}]}var +f=n(i9[18],e,bK);function +h(c){return[O,function(a){switch(c[0]){case +0:var +e=c[4],f=c[3],g=c[2],b=[0,t(c[1]),g,f,e];break;case +1:var +h=c[4],i=c[3],j=c[2],b=[1,t(c[1]),j,i,h];break;case +2:var +k=c[4],m=c[3],p=c[2],b=[2,t(c[1]),p,m,k];break;case +3:var +q=c[3],u=c[2],b=[3,t(c[1]),u,q];break;default:var +v=c[3],w=c[2],b=[4,t(c[1]),w,v]}var +x=b[1],y=b[2];switch(b[0]){case +0:case +4:var +d=s([37,[0,b[2]]],b[1]);break;default:var +d=Ok([0,b[2]],b[1])}var +z=[O,function(a){var +h=ai(r),p=ah===h?r[1]:O===h?aq(r):r,c=p[1];switch(b[0]){case +0:return aeW(c,d,b[1],b[3],2,b[4],b[2]);case +1:return aeW(c,d,b[1],b[3],0,b[4],b[2]);case +2:return aeW(c,d,b[1],b[3],1,b[4],b[2]);case +3:var +m=b[1],f=n(h9[14],c[2],b[3]),e=f[2],i=f[1],g=ai(e),j=ah===g?e[1]:O===g?aq(e):e,k=G8(i,m,j),l=o(gw[16],c[1],d,0,k);return o(gw[17],c[1],d,fbD,l);default:return aQ$(c,d,b[1],b[3])}}];return[0,x,y,l(gw[10],E,d,z)]}]}var +i=n(l1[18],h,bM);function +j(a){return a_(r,a)}var +q=n(ip[18],j,a9),u=m(Oe,qH(13));function +v(b){var +a=n(jK,b,c);if(a)var +e=a[1],d=vD(function(a){return[0,a]},e);else +var +d=[O,function(a){return[1,[2,b]]}];return[0,b,d]}return[0,[0,E,n(h9[18],v,bN),u,q,i,f,d],c]}]);var +bQ=Y[1],bR=m(n(j6,function(a,b,c){var +d=ai(r),e=[2,a],f=ah===d?r[1]:O===d?aq(r):r,g=n(r4,a,f[2]);return o(Y[31],0,e,g,c)},a8),bQ),a$=m(n(j6,function(a,b,c){var +d=[0,a],e=a_(r,n(ip[14],a9,b)),f=vD(function(a){return a[3]},e);return o(Y[31],0,d,f,c)},bJ),bR);bi[1]=ac3(function(a){return a},a$);var +bn=function(b){return ac3(function(a){p(D(aSe,i0,aT_),aSe,E,2,b,a);return a},a$)}}else +var +bn=function(a){return ac4(0)};var +i=aNd(cf,j,b,ch,ci,bn),br=f[1],bs=M(function(a,b){switch(b[0]){case +3:return o(fN,[0,hh],b[1],0,a);case +4:var +f=b[2],e=f[2],d=f[1];break;default:var +c=b[1],e=c[2],d=c[1]}return o(fN,[0,hh],e,[0,d,0],a)},at,br);bm[1]=n(ul,function(a,b){var +c=[2,a],d=GC(i);return ac2(d,c,function(a){return[1,c]})},bs);var +cj=e[2][4],aP=n(D(NW,lO,anb),NW,e),bl=fs(fnE,c3v,function(a,b){if(!(c[b]|0))return a;var +d=aHW(b);if(!d)return a;var +e=d[1];return fs(e,a,function(a,b){return NJ(b,fnF,a)})}),bq=0;if(!j[5]&&!j[6]){var +bo=bl;bq=1}if(!bq)var +bo=l(c3n,function(a,b){return NJ(a,fni,b)},c3m,bl);var +ck=fjX(bo,i,b,cj,aP),a6=i[1][30];if(1-qx(a6)){var +b7=pU(K(a6,function(a){var +b=a[1],h=a[3],j=a[2];function +e(a){if(0===a[0])return[0,function(a){return a},a];var +b=a[1];if(typeof +b!=="number"&&0===b[0]){var +d=a[2];return[0,uJ(function(a){return[1,b,a]}),d]}var +c=e(a[2]);return[0,c[1],[1,b,c[2]]]}var +f=e(j),c=f[1],d=[0,f[2],h];if(0!==b[0])return[0,[0,b,m(c,d)],0];var +g=iO(i,b[1][2])[2];if(1!==g[0])return[0,[0,b,m(c,l(aPR,i,A,d))],0];var +k=m(lu[20],g[1][1]);return K(k,function(a){var +b=a[1];return[0,b,m(c,l(aPR,i,a[2][2],d))]})}));fV(b7,m(aC,i));var +b8=pB(i),b9=function(a){return aNr(i,a)};n(jE[14],b9,b8)}function +b_(a){var +b=a[4],h=a[2],e=a[1],I=a[3];mz(0,i,b);var +c=l(sq,i,s(fnh,e),b),d=fs(c,0,function(a,b){var +j=0;switch(b[0]){case +1:var +g=b[2],n=b[1],f=0;if(typeof +g==="number")switch(g){case +0:case +3:f=2;break}else +switch(g[0]){case +2:var +q=g[1];if(!q||q[1])f=1;break;case +7:var +c=[0,[0,n,ajv]];j=1;f=1;break;case +13:if(g[1])f=1;break;default:f=2}switch(f){case +1:break;case +2:break;default:var +c=[0,[0,n,IK]];j=1}break;case +3:var +E=b[1];if(!I)L(i,0,[lN,e,h,2,g9(E)]);var +c=0;j=1;break;case +21:var +r=b[2],s=r[4];if(s){var +k=b[1],F=s[1][3],G=[0,r[1]];if(ao(adO(i),G)){var +H=l(sq,i,k,F);fV(H,function(a){var +c=a;for(;;){if(1===c[0]){var +b=c[2];if(typeof +b!=="number")switch(b[0]){case +17:var +g=b[3],j=b[1],n=gl(b[2]),p=aU[1],c=hY(i,0,0,fs(n,p,function(d){return function(a,b){var +c=m(Og(10),d);return o(aU[31],0,b[2],c,a)}}(j)),g);continue;case +18:var +d=b[3];if(b[4])return 0;var +q=l(sq,i,C(d),d);return fV(q,function(a){if(1===a[0]){var +b=a[2];if(typeof +b!=="number"&&19===b[0])return 0}var +c=g9(k);return L(i,0,[lN,e,h,[0,C(a)],c])})}}var +f=g9(k);return L(i,0,[lN,e,h,[1,C(c)],f])}});var +c=0;j=1}}break}if(!j)var +d=C(b),A=[0,m(fL,d),0],B=[0,m(fL,d),A],D=p(l5,i,d,0,fng,[0,m(fL,d),B]),c=l(fi[30],i,b,D)?[0,[0,d,ajv]]:(L(i,0,[lN,e,h,3,g9(d)]),0);if(!a){if(!c)return 0;var +y=c[1],M=y[2];return[0,[0,g9(y[1]),M]]}var +t=a[1],u=t[2],v=t[1];if(!c)return[0,[0,v,u]];var +w=c[1],z=0,J=w[2],K=w[1];if(IK<=u&&IK<=J){var +x=IK;z=1}if(!z)var +x=ajv;return[0,[0,kE(K,v),x]]});return aT(d,function(a){var +b=a[1],c=IK<=a[2]?0:1;return L(i,0,[lN,e,h,c,b])})}fV(i[1][31],b_);var +a7=i[1][11];if(m(T[7][2],a7))var +be=T[7][1];else +var +z=function(j,b,c,d){var +f=b,e=d;for(;;){var +t=0;switch(e[0]){case +0:var +v=e[1];if(n(j7,v[2],j))return f;var +L=v[2],M=Cb(i,e),N=n(iz,L,j);return aY(M,f,function(a){return z(N,f,c,a)});case +3:var +s=e[3];break;case +16:var +O=m(aG[5],e[2]);return fs(O,f,function(a,b){return z(j,a,c,b)});case +17:var +E=e[1],P=z(j,f,c,e[2]),Q=z(j,P,c,m(i7[3],E)),f=Q,e=m(fY[3],E);continue;case +18:var +R=e[1],S=z(j,f,c,e[2]),f=S,e=m(fY[3],R);continue;case +20:var +e=e[2];continue;case +21:var +F=e[2],G=F[2];if(G)var +s=G[1];else{var +H=F[3];if(H)var +s=H[1];else +t=1}break;case +25:return f;default:t=1}if(!t){var +e=s;continue}var +w=C(e),x=w[4],g=x?[0,x[1]]:[0,h5(w)],h=f9(n(T[7][27],c,f),Pg),y=Cn(i,e),J=0;if(1===y[0]){var +D=y[2];if(typeof +D==="number"&&!D){var +a=h;J=1}}if(!J)var +a=[0,g,h[2],h[3],h[4],h[5],h[6],h[7],h[8],h[9],h[10]];var +I=Co(i,so(i,e)),K=0;if(1===I[0]){var +r=I[2],l=0;if(typeof +r==="number")l=2;else +switch(r[0]){case +0:var +k=[0,a[1],a[2],a[3],g,a[5],a[6],a[7],a[8],a[9],a[10]];break;case +1:var +k=[0,a[1],a[2],g,a[4],a[5],a[6],a[7],a[8],a[9],a[10]];break;case +2:var +k=[0,a[1],g,a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10]];break;case +3:var +k=[0,a[1],a[2],a[3],a[4],g,a[6],a[7],a[8],a[9],a[10]];break;case +4:var +k=[0,a[1],a[2],a[3],a[4],a[5],g,a[7],a[8],a[9],a[10]];break;case +20:var +A=r[1][3];if(1===A[0]){var +u=0,B=A[2];if(typeof +B==="number")u=1;else +switch(B[0]){case +0:var +p=[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],g,a[10]];break;case +1:var +p=[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],g,a[9],a[10]];break;case +2:var +p=[0,a[1],a[2],a[3],a[4],a[5],a[6],g,a[8],a[9],a[10]];break;case +3:var +p=[0,a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],g];break;default:u=1}if(u)l=1;else +var +k=p}else +l=1;break;default:l=2}switch(l){case +1:break;case +2:break;default:var +q=k;K=1}}if(!K)var +q=a;return ao(q,Pg)?f:o(T[7][31],0,c,q,f)}},b0=T[7][1],b1=function(d,b,c){function +a(a,b){return z(ik,b,d,a)}return l(uF[16],a,b,c)},be=l(T[7][12],b1,a7,b0);var +bY=aNo(i);function +bZ(e,b){var +a=f9(n(T[7][27],e,bY),Pg),d=b[1];if(!d)return 0;var +f=d[1];function +c(a,b){return fO(i,[ma,a,e,f,b])}if(i3(a[2])){var +g=0,h=function(a){return c(g,a)};aT(b[2],h)}if(i3(a[4])){var +j=2,k=function(a){return c(j,a)};aT(b[4],k)}if(i3(a[5])){var +l=3,m=function(a){return c(l,a)};aT(b[5],m)}if(i3(a[3])){var +o=1,p=function(a){return c(o,a)};aT(b[3],p)}if(i3(a[6])){var +q=4,r=function(a){return c(q,a)};aT(b[6],r)}if(i3(a[7])){var +s=5,t=function(a){return c(s,a)};aT(b[7],t)}if(i3(a[9])){var +u=7,v=function(a){return c(u,a)};aT(b[9],v)}if(i3(a[10])){var +w=8,x=function(a){return c(w,a)};aT(b[10],x)}if(i3(a[8])){var +y=6,z=function(a){return c(y,a)};aT(b[8],z)}return 0}n(T[7][11],bZ,be);function +aM(d){return function(a){var +g=0;switch(a[0]){case +0:var +e=a[1][2];if(n(j7,e,d))return 0;var +j=GN(i,e);if(!j){var +c=pD(i,e);switch(c[0]){case +0:var +h=[0,[0,A,c[1]],0];break;case +1:var +p=c[1][2],q=function(a){return a[1]},h=K(m(qL[25],p),q);break;default:var +b=c[1],l=ai(b),r=ah===l?b[1]:O===l?aq(b):b,h=[0,[0,A,r],0]}return 0===m(qv(dti),h)?1:0}if(j[2])return 0;var +s=j[1];return m(aM(n(iz,e,d)),s);case +1:var +f=a[2],k=0;if(typeof +f==="number"){if(2!==f)k=1}else if(4===f[0]){var +o=f[1];if(3!==o&&o)g=1}else +k=1;if(k)g=1;break;case +15:var +t=m(gr[2],a[2]);return xG(aM(d),t);case +16:var +u=m(aG[5],a[2]);return ll(aM(d),u);case +17:case +18:case +25:break;default:g=1}return g?0:1}}function +bf(a){var +g=gz(i,a);return m(hk,function(a,b){var +d=n(Y[27],[0,a],g),f=0;if(d){var +e=d[1];if(0===e[0]){var +h=e[3],c=1-m(aM(ik),h);f=1}}if(!f)var +c=1;return c?fo(function(a){return fO(i,[79,a[1],a[2]])},b):c})}var +bz=i[1][13];fo(function(a){var +b=a[3],c=b[2],d=b[1],e=a[2];m(bf(a[1]),d);return m(bf(e),c)},bz);var +bA=m(awV,i[1][14]),bB=0,bC=M(function(a,b){var +c=b[2];return c?[0,[0,c[1],c[2],c[3],c[4]],a]:a},bB,bA);fV(bC,function(a){var +b=a[2];return fO(i,[18,a[1],b[1],b[2],a[3],a[4]])});function +b2(a){return fO(i,[pJ,a[1],a[2]])}var +bD=0,bE=i[1][15];function +bF(a,b,c){var +d=b[1];return b[2]?c:[0,[0,a,d],c]}fV(l(T[7][12],bF,bE,bD),b2);function +b3(a){return fO(i,[lF,a[1],a[2]])}var +bG=0,bH=i[1][16];function +bI(a,b,c){var +d=b[1];return b[2]?c:[0,[0,a,d],c]}fV(l(T[7][12],bI,bH,bG),b3);var +cl=0;if(j[41]){var +bW=K(j[42],rp),bX=FA(i[2][1]);if(1-p0(bW,function(a){return th(a,bX,0)})){var +bU=B8(i),bV=o(gn[4],0,bU,1,aP),ba=function(a,b,c){var +d=a[5],e=a[4],f=o(T[7][31],0,b,c,a[3]);return[0,a[1],a[2],f,e,d]},bS=aP[2][1],aR=M(function(a,b){var +d=b[2],g=b[1];switch(d[0]){case +26:var +k=d[1],m=k[1];if(m)return ba(a,m[1][1],k);break;case +28:var +e=d[1];if(2<=e[1]){var +i=e[4],h=0;if(i){var +j=i[1];if(0===j[0])var +t=j[1],f=ll(function(a){var +b=a[1],c=0===b?1:0,d=c||ao(b,fm3);return d},t);else +h=1}else +h=1;if(h)var +f=1}else +var +f=0;if(f)var +y=a[4]?a:[0,a[1],a[2],a[3],[0,g],a[5]],c=y;else +var +c=a;if(2<=e[1]){var +n=e[4];if(n){var +p=n[1];if(0!==p[0]){var +r=p[1],u=c[5],v=c[4],w=c[3],x=c[2];return[0,o(T[7][31],0,r[2][1],r,c[1]),x,w,v,u]}}}return c;case +37:var +s=d[1],z=s[2],A=s[1];return M(function(a,b){var +m=b[2],d=m[2],n=m[1],p=l(AY,function(a,b){var +c=a[5],d=a[4],e=a[3],f=o(T[7][31],0,b[1],[0,g,b[2][1],z],a[2]);return[0,a[1],f,e,d,c]},a,n),r=n[2],u=0;if(2===r[0]&&d){var +t=d[1][2],w=r[1][1][1];switch(t[0]){case +1:case +8:var +c=ba(p,w,t[1]);u=1;break}}if(!u)var +c=p;if(d){var +h=d[1];for(;;){var +e=h[2],v=0;switch(e[0]){case +5:var +i=e[1],j=i[1][2];if(9===j[0]&&!q(j[1][2][1],CI)){var +f=i[3][2][1];if(f){var +k=f[1];if(0===k[0]&&13===k[1][2][0]&&!f[2]){var +s=1;v=1}}}break;case +21:var +h=e[1][1];continue}if(!v)var +s=0;if(s)return c[5]?c:[0,c[1],c[2],c[3],c[4],[0,g]];break}}return c},a,A)}return a},fm2,bS),bb=aR[4],cm=0;if(bb){var +bc=aR[5];if(bc){var +bT=bc[1];fO(i,[90,bT,s(fm$,bb[1])]);cm=1}}var +bd=o(fm_[1],0,i,bV,aR);n(D(bd,lO,aie),bd,aP);cl=1}}function +bg(h,b,c,d){var +g=c,a=d;for(;;)switch(a[0]){case +0:var +i=iO(h,a[1][2]),e=i[2],j=i[1];if(n(j7,j,g))return b;var +k=n(iz,j,g);switch(e[0]){case +0:var +l=e[1];break;case +1:var +p=m(lu[25],e[1][1]);return M(function(a,b){return bg(h,a,k,b)},b,p);default:var +f=e[1],o=ai(f),q=ah===o?f[1]:O===o?aq(f):f,l=q}var +g=k,a=l;continue;case +20:var +a=a[2];continue;default:return U([0,a,b])}}function +b5(a){var +g=a[2],h=i[11],l=a[3],m=a[1];yU(i,3,g);var +e=hW(0,0,0,tx(h,3,g)),d=bg(i,0,ik,e);if(d&&!d[2]){var +f=rw(d[1]),k=0;if(1===f[0]){var +c=f[2],b=0;if(typeof +c==="number")b=1;else +switch(c[0]){case +2:if(c[1])b=2;break;case +0:case +1:if(typeof +c[1]!=="number")b=2;break;default:b=1}switch(b){case +0:break;case +1:break;default:var +j=1;k=1}}if(!k)var +j=0;if(j){var +n=GZ(0,i,h,l);return[0,[0,C(e),m,e,n]]}}return 0}var +b6=pr(i[1][29],b5);fV(b6,function(a){var +b=a[4],c=a[3],d=a[2],e=a[1],f=C(c),g=[0,[33,e,C(b),d,f]];return n(aC,i,[0,[14,e,d,c],[0,g,rw(b)]])});var +by=i[1][28];fo(function(a){var +b=a[2],e=GZ(0,i,i[11],a[1]);if(0===e[0])var +f=e[1],g=PJ(fnf,fne,i,f[1],f[2]);else +var +g=e;var +c=g;for(;;){if(3===c[0]){var +c=c[3];continue}switch(b[0]){case +0:var +h=b[4],l=b[3],m=b[2],d=[1,s([2,h],b[1]),[0,[0,[0,m],[0,l,h]]]];break;case +1:var +j=b[2],d=[1,s([4,j],b[1]),[2,[0,j]]];break;default:var +k=b[3],p=b[2],d=[1,s([1,[0,k]],b[1]),[1,[0,[0,p],[0,k]]]]}var +o=C(c);return n(aC,i,[0,d,[0,[0,[32,C(d),o]],c]])}},by);function +b4(a){var +b=a[3],c=a[2],d=a[1],e=ad1([0,function(a){return[25,a,2]}],i,c);return n(aC,i,[0,e,[96,s(fnd,d),b]])}fV(i[1][17],b4);var +bp=pB(i);function +aQ(a){if(0===a[0])return[0,0,a];var +b=a[1];if(typeof +b==="number"&&4<=b){var +c=aQ(a[2]);return[0,1-c[1],c[2]]}var +d=aQ(a[2]),e=d[2];return d[1]?[0,1,[1,aKK(b),e]]:[0,0,[1,b,e]]}function +u(a,b){var +c=a[2],d=a[1],e=aQ(b),f=e[2];return e[1]?[0,[0,c,d],f]:[0,[0,d,c],f]}function +aX(a){var +b=a;for(;;){if(0===b[0])return b;var +c=b[1];if(typeof +c==="number"&&4<=c){var +b=b[2];continue}return[1,c,aX(b[2])]}}function +bt(c){function +b(a){return 1-n(jE[3],[0,c[1],a,c[3],c[4]],bp)}var +a=c[2];switch(a[0]){case +1:var +d=a[2],R=a[4],e=u([0,d,a[3]],a[1]),f=e[1],g=f[1],h=ao(d,g),S=e[2],T=f[2];return h?h:b([1,S,g,T,R]);case +14:var +i=a[1],j=u([0,i,a[2]],a[3]),k=j[1],l=k[1],m=ao(i,l),U=j[2],V=k[2];return m?m:b([14,l,V,U]);case +15:var +o=a[1],p=u([0,o,a[2]],a[3]),q=p[1],r=q[1],s=ao(o,r),W=p[2],X=q[2];return s?s:b([15,r,X,W]);case +16:var +t=a[1],v=u([0,t,a[2]],a[3]),w=v[1],x=w[1],y=ao(t,x),Y=v[2],Z=w[2];return y?y:b([16,x,Z,Y]);case +17:var +z=a[1],A=u([0,z,a[2]],a[3]),B=A[1],C=B[1],D=ao(z,C),_=A[2],$=B[2];return D?D:b([17,C,$,_]);case +18:var +E=a[4],aa=a[5],ab=a[3],ac=a[2],ad=a[1],F=aX(E),G=ao(E,F);return G?G:b([18,ad,ac,ab,F,aa]);case +107:var +H=a[2],I=u([0,H,a[3]],a[1]),J=I[1],K=J[1],L=ao(H,K),ae=I[2],af=J[2];return L?L:b([hb,ae,K,af]);case +160:var +M=a[2],ag=a[4],N=u([0,M,a[3]],a[1]),O=N[1],P=O[1],Q=ao(M,P),ah=N[2],ai=O[2];return Q?Q:b([kO,ah,P,ai,ag]);default:return 1}}qP(i,n(jE[19],bt,bp));return[0,i,ck]},aSh=function(a,b,c){var +o=[0,[0,a,b]],i=[1,a],k=Qs(i,b);if(0===k[0])var +p=k[1],H=p[2],I=p[1],d=afp(yd,i,c,aaq(aap,r$,i,b)[2],I,H)[1],E=d[1][9],J=pB(d),G=d[1][10],F=d[4][2],C=[0,jE[1],jE[1],E],D=function(a,b){var +c=b[3],d=b[2],e=b[1],f=abf(a[2]),l=a[1];if(typeof +f!=="number"&&1===f[0]&&l){var +m=l[1],g=f[1],i=$U([O,function(a){var +c=m[1],e=c?c[1]:X(cYk),b=n(cXJ,e,Bk),d=ai(b);return ah===d?b[1]:O===d?aq(b):b}],m),r=function(a){function +b(a){return n(FE,aD3(i),a)}return xP(n(FC,a,G),b)},k=xP(i[1],r);if(!k)return[0,e,n(jE[4],a,d),c];var +h=k[1];switch(aHZ(g,h)){case +0:if(F)return n(yf[3],g,h[2])?[0,n(jE[4],a,e),d,c]:[0,e,d,c];var +q=n(yf[27],g,h[2]),j=aY(q,0,function(a){return a[2]});if(j)var +o=j[1],p=aKM(function(a){var +b=n(il[8][6],o,a[3]);return[0,a[1],a[2],b]},o,c);else +var +p=c;return[0,e,d,p];case +1:return[0,e,n(jE[4],a,d),c];default:return[0,n(jE[4],a,e),d,c]}}return[0,n(jE[4],a,e),d,c]},h=l(jE[16],D,J,C),q=h[3],L=h[2],r=aKN(yd,0,lr,q,h[1],q),s=r[3],N=r[1],u=aKN(yd,0,lr,s,L,s)[1],t=N;else +var +u=yw[1],t=k[1];var +f=[0,yd],v=0,Q=0;function +e(N){return function(a){var +i=a[1],L=a[2];function +k(a){var +s=aKt(a)[2];if(s){var +d=s[1],r=d[1];if(r){var +i=r[1];if(0===i[0])var +c=i[1],y=aKo(c)?f1(c,6,Z(c)-6|0):c,e=[0,y];else +var +e=[0,i[1]]}else +var +e=0;if(e){var +l=aKp(o,e[1]);if(l){var +t=l[1];try{var +u=(d[3][1]-d[2][1]|0)+1|0,w=d[2][1]-1|0,g=function(f,h,c,d,e){if(0!==h&&Z(e)>=d){try{var +m=Vz(e,d,10),a=m}catch(f){var +b=fk(f);if(b!==gf)throw B(b,0);var +a=Z(e)}if(0>f)throw B([0,vB,dBv],1);if(0===f)var +j=[0,f1(e,d,a-d|0),c],k=h-1|0,i=function(a,b){return g(f,k,j,a,b)};else +var +l=f-1|0,i=function(a,b){return g(l,h,c,a,b)};return i(a+1|0,e)}return U(c)},h=g(w,u,0,0,t),x=h?[0,[0,h[1],h[2]]]:0,b=x}catch(f){var +m=fk(f);if(m[1]!==vB)throw B(m,0);var +b=0}}else +var +b=0}else +var +b=0;var +E=b?[0,b[1][1]]:0,k=E}else +var +k=0;var +F=k?[2,k[1]]:0,n=aKt(a),p=n[2],G=[0,dBL,F],z=n[1],A=0===a[0]?dBF:dBK;if(p)var +j=p[1],C=aKq(o,v,j),D=aba(f,j),q=[0,[0,dBH,$9([0,f],dBG,C,j)],D];else +var +q=aba(f,g6);return[0,[0,G,[0,[0,dBJ,[2,z]],[0,[0,dBI,[2,A]],q]]]]}var +d=i[3],q=i[2],e=i[1];if(typeof +e==="number")switch(e){case +0:var +b=dBR;break;case +1:var +b=dBY;break;case +2:var +b=dBZ;break;case +3:var +b=dB0;break;case +4:var +b=dB1;break;default:var +b=dB2}else +var +b=0===e[0]?dB3:dB4;switch(N){case +0:var +h=c3o;break;case +1:var +h=c3p;break;default:var +h=c3q}var +F=m(il[8][22],L),G=0,H=[0,[0,dBW,[2,b]],[0,[0,dBV,[2,h]],[0,[0,dBU,[1,K(F,function(a){return[0,[0,[0,dBT,$9([0,f],dBS,aKq(o,v,a),a)],0]]})]],G]]],I=q?[0,[0,dBX,[1,K(q,k)]],0]:0,r=aKk(1,1,0,0,d[3],0,0,d),w=r[2],l=aKm(1,il[7][1],hc,r[3]),n=l[3],s=aKn(0,l[4]),t=[0,j(dBk),0],u=qz(vP(U(s),t)),x=M(function(a,b){if(0===b[0])return P(a,aKf(b[1]));var +c=b[1],d=P(dBn,P(g+b[2],dBm));return P(a,P(aKf(c),d))},dBl,u);if(m(awR,n))var +c=0;else +var +C=m(awV,n),c=[0,[0,[0,[0,g6,dBq],0]],K(C,function(a){var +b=a[2];return[0,[0,[0,b,[0,P(dBp,P(g+a[1],dBo)),0]],0]]})];function +y(a){return[0,a,0]}var +z=aY(d[3],0,y),A=[0,[0,w,x],0],D=0,E=[0,[0,dBO,[1,K(z,function(a){return[2,BJ(a)]})]],D],p=[0,[0,dBP,[1,K(A,k)]],E],J=0===c?p:[0,[0,dBQ,[1,K(c,function(a){return aKu(k,a)})]],p];return[0,V(H,V(J,I))]}}var +w=0;function +x(a,b){var +c=[0,a,il[8][1]];return[0,m(e(2),c),b]}var +y=m(n(yw[16],x,t),w);function +z(a,b){var +c=[0,a,il[8][1]];return[0,m(e(1),c),b]}var +A=m(n(yw[16],z,u),y);return Qt([1,U(M(function(a,b){var +c=[0,b[1],b[2]];return[0,m(e(2),c),a]},A,Q))])},fnG=function(a){var +Q=fx(jy,VG(fo4(a))),f=jk(function(a){var +b=Qs([0,a],$G(a)),c=0===b[0]?b[1]:gv(a5A);return c[1]},Q),d=[0,at,at],i=m(i9[3],0),j=m(qO[3],0),k=m(l1[3],0),l=m(h9[23][1],0),o=m(ip[3],0),b=[0,m(sg[3],0),o,l,k,j,i],N=[0,g2,0,0,0,hZ,1,1,1,2,0,0,1,0];fo(function(a){var +c=a[2][1];return fo(function(a){return BY(N,d,b,a)},c)},f);if(0!==d[0])throw B(gf,1);var +g=d[1],h=d[2],p=b[6],q=b[5],r=b[4],s=b[3],t=b[2],u=b[1];n(hk,function(a,b){return aMb(0,b)},g);n(hk,function(a,b){var +e=b[2],f=b[1];gZ(function(a){return 0},f);var +d=e[1],c=0,g=e[2],h=e[3];n(hk,function(a,b){switch(b[0]){case +0:var +d=b[1];return Gu(c,function(a){return 0},d);case +1:var +e=b[1],f=function(a){return tw(c,Gt,a)};return n(ip[9],e,f);default:var +g=b[1],h=function(a){return aci(ack,a)};return n(l1[9],g,h)}},g);fo(aMc,h);if(typeof +d==="number")return 0;switch(d[0]){case +0:var +i=d[1];return lv(c,function(a){return 0},i);case +1:var +j=d[1];gZ(function(a){return 0},f);return n(hk,function(a,b){var +d=b[2],e=b[1];gZ(function(a){return 0},e);return lv(c,function(a){return 0},d)},j);case +2:var +k=d[1];gZ(function(a){return 0},f);return n(hk,function(a,b){function +d(a){return tw(c,Gt,a)}return n(ip[9],b,d)},k);default:var +l=d[2],m=d[1];n(hk,function(a,b){switch(b[0]){case +0:var +d=b[1];return Gu(c,function(a){return 0},d);case +1:var +e=b[1],f=function(a){return tw(c,Gt,a)};return n(ip[9],e,f);case +2:var +g=b[2],h=b[1];gZ(function(a){return 0},h);return lv(c,function(a){return 0},g);case +3:var +i=b[3],j=b[1];gZ(function(a){return 0},j);var +k=function(a){return tw(c,Gt,a)};return n(ip[9],i,k);default:var +l=b[1],m=function(a){return aci(ack,a)};return n(l1[9],l,m)}},m);return fo(aMc,l)}},h);var +v=n(sg[10],0,u),w=m(h9[23][3],s),x=n(ip[10],0,t),y=n(l1[10],0,r),z=n(qO[10],0,q),c=[0,0],A=n(i9[10],0,p);function +C(a){return a}var +D=n(sg[12],C,v)[1];function +E(a){return a}var +F=n(h9[12],E,w)[1];function +G(a){switch(a[0]){case +0:var +b=a[2],m=ai(b),C=ah===m?b[1]:O===m?aq(b):b;return aLc(gD,function(a){return l2(c,a)},C);case +3:var +G=a[3],H=a[2],I=gD(a[1]);return[9,I,H,[2,Gs(G)]];case +4:var +e=a[6],J=a[7],K=a[5],L=a[4],M=a[3],N=a[2],P=gD(a[1]),Q=gD(M),p=ai(e),R=ah===p?e[1]:O===p?aq(e):e,S=ach(c,R);return[9,P,N,[1,[1,Q,L,K,S,n(ia,function(a){var +b=a[2],d=gD(a[1]);return[0,d,l2(c,b)]},J)]]];case +5:var +f=a[3],T=a[2],U=gD(a[1]),q=ai(f),V=ah===q?f[1]:O===q?aq(f):f;return[3,U,T,abC(gD,function(a){return l2(c,a)},V)];case +6:var +g=a[3],W=a[2],X=gD(a[1]),r=ai(g),Y=ah===r?g[1]:O===r?aq(g):g;return[4,X,W,aK$(gD,function(a){return l2(c,a)},Y)];case +7:var +h=a[6],Z=a[7],_=a[5],$=a[4],aa=a[3],ab=a[2],ac=gD(a[1]),ad=gD(_),s=ai(h),ae=ah===s?h[1]:O===s?aq(h):h,af=ach(c,ae);return[5,ac,ab,aa,$,ad,af,n(ia,function(a){var +b=a[2],d=gD(a[1]);return[0,d,l2(c,b)]},Z)];case +8:var +ag=a[2],aj=a[1],t=$Q(function(a){var +b=a[3],e=a[2],f=gD(a[1]),g=gD(e),d=ai(b),h=ah===d?b[1]:O===d?aq(b):b;return[0,f,g,ach(c,h)]},ag),k=t[1];return[6,k[1],aj,k[2],k[3],t[2]];case +9:var +u=a[4],v=a[2],ak=a[3],w=gD(a[1]);if(!u)return[8,w,v];var +i=u[1],x=ai(i),al=ah===x?i[1]:O===x?aq(i):i,am=gD(ak);return[7,w,v,am,abt(gD,function(a){return l2(c,a)},al)];case +10:var +y=a[3],z=a[2],A=gD(a[1]);if(!y)return[11,A,z];var +j=y[1],B=ai(j),l=ah===B?j[1]:O===B?aq(j):j,an=l[3],ao=l[1];return[10,A,z,ao,n(ia,gD,l[2]),an];default:var +d=a[3],D=a[2],E=gD(a[1]),o=ai(d),F=ah===o?d[1]:O===o?aq(d):d;return[9,E,D,l2(c,F)]}}var +H=n(ip[12],G,x)[1],I=n(l1[12],ez6,y)[1];function +J(a){return l2(c,a)}var +K=n(qO[12],J,z)[1],L=n(i9[12],ez7,A)[1],M=n(ia,ez9,g),e=[0,F,H,I,K,L,M,n(ul,function(a,b){var +j=b[2],o=b[1],d=j[1],e=j[5],f=j[4],r=j[3],p=aL9(ez8,j[2]),g=p[2],h=p[1],i=fx(aL_,r);if(typeof +d==="number")var +k=[0,g,0,[0,h,i,f,e]];else +switch(d[0]){case +0:var +k=[0,g,[0,l2(c,d[1])],[0,h,i,f,e]];break;case +1:var +s=d[1],t=gD(o),k=[0,g,[0,[1,[13,t,1,0,n(ia,function(a){var +b=a[2],d=gD(a[1]);return[0,d,l2(c,b),1]},s)]]],[0,h,i,f,e]];break;case +2:var +u=d[1],l=gD(o),k=[0,g,[0,[1,[12,l,a,n(ia,function(a){return[0,l,[2,[0,l,m(ip[11],a)]],2]},u)]]],[0,h,i,f,e]];break;default:var +v=d[2],w=d[1],q=aL9(function(a){switch(a[0]){case +0:return[0,Gs(a[1])];case +1:return[1,m(ip[11],a[1])];case +2:var +b=a[2],d=gD(a[1]);return[2,d,l2(c,b)];case +3:var +e=a[3],f=gD(a[1]);return[3,f,m(ip[11],e)];default:return[4,m(l1[11],a[1])]}},w),x=q[2],y=q[1],k=[1,g,x,[0,h,i,y,fx(aL_,v),f,e]]}return[0,gD(o),k]},h)],P=f?[0,e,[0,hW(0,0,0,f[1][1][1]),D,e]]:[0,e,0];aSg[1]=[0,[0,yd,P[2]]];return 0},fnH=function(a){var +b=jy(a),c=$G(b);return function(a){return aSh(b,c,a)}},fnI=function(a,b,c){return aSh(jy(a),jy(b),c)},fnP=function(a,b,c){var +f=[1,jy(a)],h=jy(b),j=Qs(f,h);if(0!==j[0])return X(fnQ);var +k=j[1],l=k[2],z=k[1],o=afp(yd,f,c,aaq(aap,r$,f,h)[2],z,l),p=o[2],q=o[1],e=[0,0,u8[2],u8[3],u8[4],u8[5],u8[6],u8[7],u8[8],u8[9],u8[10]],i=[0,q[2],q,p,l],d=m(faf[1],0);n(D(d,lO,HS),d,p);var +t=m(D(d,874190050,att),d);aR_(e);var +u=n(y4[3],e,i),g=[0,y4[1][1]],s=K(t,function(a){var +f=a[2],h=a[1],b=x(y4[2],e,i,u,f[1],g[1],f[2]),c=b[1],d=0===c[0]?[0,b[2],[0,h,[0,c[1]]]]:[0,b[2],[0,h,[1,c[1]]]],j=d[2];g[1]=d[1];return j}),y=pr(s,function(a){var +b=a[2],f=a[1];if(0!==b[0])return 0;var +c=ac0(0,0,[0,1],1,b[1]),e=0;function +d(a,b){var +c=b;for(;;){if(typeof +c==="number")return 0===c?aMj(1,a):a;switch(c[0]){case +0:return a;case +3:var +e=c[2];break;case +4:var +c=c[1];continue;case +5:return O8(0,c[1],a);case +6:return aMh(c[1],c[2],a);case +7:var +c=c[1];continue;case +8:var +c=c[2];continue;default:var +e=c[1]}return M(d,a,e)}}return[0,[0,f,aMk(d(aMd(e,0),c))]]}),v=K(y,function(a){var +b=a[2];return[0,lr(a[1]),b]}),w=Jw(function(a,b){return pt(a[1],b[1])},v),r=0;return Qt([1,fx(function(a){var +b=a[1],c=a[2],d=aba(r,b);return[0,[0,[0,fnO,[2,c]],[0,fnN,[0,[0,fnM,$9([0,r],0,0,b)],d]]]]},w)])},fnR=function(a,b,c,d,e){var +Z=jy(b),_=aII(c),$=aII(d),k=[1,jy(a)],S=Qs(k,Z);if(0===S[0]){var +T=S[1],U=T[2],an=T[1],V=afp(yd,k,e,aaq(aap,r$,k,Z)[2],an,U),W=V[2],g=V[1],ao=g[2],L=l(fae[1],0,g,[0,[0,k],[0,_,$],[0,_,$+1|0]]),ap=50,aq=0,ar=0;try{n(D(L,lO,IA),L,W);var +aj=0,t=aj}catch(f){var +h=fk(f);if(h[1]!==aQi)throw B(h,0);var +ah=h[4],ai=h[3],t=[0,[0,lr(h[2]),ai,ah]]}if(t){var +u=t[1],v=u[3],j=u[1],M=[0,ao,g,W,U],al=u[2],N=function(a){var +b=[0,a,0,0,1,ar,1,0,aq,[0,ap],al];aR_(b);var +d=n(y4[3],b,M),c=x(y4[2],b,M,d,v[1],y4[1][1],v[2]),e=c[1];return[0,e,m(y4[1][2],c[2])]},O=N(0),w=O[1],P=O[2]?adh(g,function(a){var +b=pB(g),c=N(1)[1],d=pB(g);qP(g,b);return n(jE[12],b,d)?[0,c]:0}):0;if(0===w[0]){var +y=w[1],z=0;if(P){var +Q=P[1];if(0===Q[0]){var +R=Q[1];Gy[1]=0;var +ab=0;try{l(D(aMR,a2e,Dp),aMR,aSb,R)}catch(f){var +C=fk(f);if(C!==aMO)throw B(C,0);var +q=[1,aSb];ab=1}if(!ab)var +q=[0,Gy[1]];var +am=0===q[0]?[0,q[1]]:0,f=am?[1,j,[0,y,[0,R]]]:[1,j,[0,y,0]]}else +z=1}else +z=1;if(z)var +f=[1,j,[0,y,0]]}else +var +ak=aR5(w[1]),f=[0,j,v[2],ak]}else +var +f=0;if(typeof +f==="number")var +p=[0,g6,fnJ];else if(0===f[0])var +p=[0,f[1],fnK];else{var +Y=f[2],K=[0,1],F=Y[2],G=Y[1],as=f[1],r=ac0(0,0,K,1,G),at=1,ag=0,ae=0;if(F){var +i=F[1],E=m(aMG[1],0);if(0===o(D(E,-905243053,ve),E,0,G,i))var +s=r;else{var +ac=0;if(1===i[0]){var +I=i[1];if(1===I[0]){var +J=I[4];if(J){var +H=[0,J[1]];ac=1}}}if(!ac)var +H=i;var +s=gm([0,r,[0,eAi,[0,eR_,[0,jS,[0,ac0(ag,ae,K,at,H),0]]]]])}}else +var +s=r;var +ad=eR$[1],A=O_(0,[0,aMd(0,0),0],0,[0,0,s])[1],af=ad?A:aMi(A),p=[0,as,[0,aMk(af)]]}}else +var +p=X(fnL);var +aa=p[2];return 0===aa[0]?gk(aa[1]):X(fnS)};if(typeof +exports!=="undefined")var +ss=exports;else{var +aSi={};sb["flow"]=aSi;var +ss=aSi}ss["configSchema"]='\n[\n {\n "key": "babel_loose_array_spread",\n "kind": "option",\n "type": "bool",\n "default": false,\n "desc": "Only allow array spread with arrays, not arbitrary iterables."\n },\n {\n "key": "enums",\n "kind": "option",\n "type": "bool",\n "default": true,\n "desc": "Enable support for Flow Enums."\n },\n {\n "key": "exact_by_default",\n "kind": "option",\n "type": "bool",\n "default": true,\n "desc": "Treat object types as exact by default."\n },\n {\n "key": "experimental.const_params",\n "kind": "option",\n "type": "bool",\n "default": false,\n "desc": "Treat all function parameters as const bindings, banning reassignment."\n },\n {\n "key": "react.runtime",\n "kind": "option",\n "type": "enum",\n "choices": ["classic", "automatic"],\n "default": "automatic",\n "desc": "Selecting \'automatic\' enables auto-importing of React functions required for JSX."\n },\n {\n "key": "use_mixed_in_catch_variables",\n "kind": "option",\n "type": "bool",\n "default": false,\n "desc": "Changes the default type of \'catch\' variables from \'any\' to \'mixed\'."\n },\n {\n "key": "deprecated-type",\n "kind": "lint",\n "type": "bool",\n "default": false,\n "desc": "Error on the deprecated type annotations."\n },\n {\n "key": "sketchy-null",\n "kind": "lint",\n "type": "bool",\n "default": false,\n "desc": "Error on conditional checks that can be either \'null\'/\'undefined\' or falsy."\n },\n {\n "key": "sketchy-number",\n "kind": "lint",\n "type": "bool",\n "default": false,\n "desc": "Error when a number appears in the left hand side of an \'&&\' expression."\n },\n {\n "key": "unclear-type",\n "kind": "lint",\n "type": "bool",\n "default": false,\n "desc": "Error on the unsafe \'any\', \'Object\', and \'Function\' type annotations."\n },\n {\n "key": "unnecessary-invariant",\n "kind": "lint",\n "type": "bool",\n "default": false,\n "desc": "Error when a usage of \'invariant\' is unnecessary."\n },\n {\n "key": "unnecessary-optional-chain",\n "kind": "lint",\n "type": "bool",\n "default": false,\n "desc": "Error when an optional chain \'?.\' is unnecessary."\n },\n {\n "key": "unsafe-getters-setters",\n "kind": "lint",\n "type": "bool",\n "default": false,\n "desc": "Error on usage of object getters and setters."\n },\n {\n "key": "unused-promise",\n "kind": "lint",\n "type": "bool",\n "default": false,\n "desc": "Error when a promise is unused."\n }\n]\n';ss["registerFile"]=xD(function(a,b){return a4K(jy(a),jy(b))});ss["initBuiltins"]=xD(fnG);ss["check"]=xD(fnH);ss["checkContent"]=xD(fnI);ss["dumpTypes"]=xD(fnP);ss["jsOfOcamlVersion"]=gk(fnU);ss["flowVersion"]="0.225.1";ss[an6]=xD(dj2);ss["typeAtPos"]=xD(fnR);Vl(0);return}}}}}(globalThis)); diff --git a/flow/master/flowlib/APACHE_LICENSE b/flow/master/flowlib/APACHE_LICENSE new file mode 100644 index 00000000000..2df8c87fda4 --- /dev/null +++ b/flow/master/flowlib/APACHE_LICENSE @@ -0,0 +1,55 @@ +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and + +You must cause any modified files to carry prominent notices stating that You changed the files; and + +You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + +If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/flow/master/flowlib/bom.js b/flow/master/flowlib/bom.js new file mode 100644 index 00000000000..483e79c91e1 --- /dev/null +++ b/flow/master/flowlib/bom.js @@ -0,0 +1,2418 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +/* BOM */ + +declare class Screen { + +availHeight: number; + +availWidth: number; + +availLeft: number; + +availTop: number; + +top: number; + +left: number; + +colorDepth: number; + +pixelDepth: number; + +width: number; + +height: number; + +orientation?: { + lock(): Promise; + unlock(): void; + angle: number; + onchange: () => mixed; + type: 'portrait-primary' | 'portrait-secondary' | 'landscape-primary' | 'landscape-secondary'; + ... + }; + // deprecated + mozLockOrientation?: (orientation: string | Array) => boolean; + mozUnlockOrientation?: () => void; + mozOrientation?: string; + onmozorientationchange?: (...args: any[]) => mixed; +} + +declare var screen: Screen; + +declare interface Crypto { + // Not using $TypedArray as that would include Float32Array and Float64Array which are not accepted + getRandomValues: < + T: Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | BigInt64Array | BigUint64Array + >(typedArray: T) => T; + randomUUID: () => string; +} +declare var crypto: Crypto; + +declare var window: any; + +type GamepadButton = { + pressed: boolean, + value: number, + ... +} +type GamepadHapticActuator = { + type: 'vibration', + pulse(value: number, duration: number): Promise, + ... +} +type GamepadPose = { + angularAcceleration: null | Float32Array, + angularVelocity: null | Float32Array, + hasOrientation: boolean, + hasPosition: boolean, + linearAcceleration: null | Float32Array, + linearVelocity: null | Float32Array, + orientation: null | Float32Array, + position: null | Float32Array, + ... +} +type Gamepad = { + axes: number[], + buttons: GamepadButton[], + connected: boolean, + displayId?: number, + hapticActuators?: GamepadHapticActuator[], + hand?: '' | 'left' | 'right', + id: string, + index: number, + mapping: string, + pose?: null | GamepadPose, + timestamp: number, + ... +} + +// deprecated +type BatteryManager = { + +charging: boolean, + +chargingTime: number, + +dischargingTime: number, + +level: number, + onchargingchange: ?((event: any) => mixed), + onchargingtimechange: ?((event: any) => mixed), + ondischargingtimechange: ?((event: any) => mixed), + onlevelchange: ?((event: any) => mixed), + ... +} + +// https://wicg.github.io/web-share +type ShareData = { + title?: string, + text?: string, + url?: string, + ... +} + +type PermissionName = + | "geolocation" + | "notifications" + | "push" + | "midi" + | "camera" + | "microphone" + | "speaker" + | "usb" + | "device-info" + | "background-sync" + | "bluetooth" + | "persistent-storage" + | "ambient-light-sensor" + | "accelerometer" + | "gyroscope" + | "magnetometer" + | "clipboard-read" + | "clipboard-write"; + +type PermissionState = + | "granted" + | "denied" + | "prompt"; + +type PermissionDescriptor = {| + name: PermissionName; +|} + +type DevicePermissionDescriptor = {| + deviceId?: string; + name: "camera" | "microphone" | "speaker"; +|} + +type MidiPermissionDescriptor = {| + name: "midi"; + sysex?: boolean; +|} + +type PushPermissionDescriptor = {| + name: "push"; + userVisibleOnly?: boolean; +|} + +type ClipboardPermissionDescriptor = {| + name: "clipboard-read" | "clipboard-write"; + allowWithoutGesture: boolean; +|} + +type USBPermissionDescriptor = {| + name: "usb"; + filters: Array; + exclusionFilters: Array; +|} + +declare class PermissionStatus extends EventTarget { + onchange: ?((event: any) => mixed); + +state: PermissionState; +} + +declare class Permissions { + query( + permissionDesc: + | DevicePermissionDescriptor + | MidiPermissionDescriptor + | PushPermissionDescriptor + | ClipboardPermissionDescriptor + | USBPermissionDescriptor + | PermissionDescriptor + ): Promise; +} + +type MIDIPortType = 'input' | 'output'; +type MIDIPortDeviceState = 'connected' | 'disconnected'; +type MIDIPortConnectionState = 'open' | 'closed' | 'pending'; + +type MIDIOptions = {| + sysex: boolean; + software: boolean; +|} + +type MIDIMessageEvent$Init = Event$Init & { + data: Uint8Array; + ... +} + +declare class MIDIMessageEvent extends Event { + constructor(type: string, eventInitDict: MIDIMessageEvent$Init): void; + +data: Uint8Array; +} + +type MIDIConnectionEvent$Init = Event$Init & { + port: MIDIPort; + ... +} + +declare class MIDIConnectionEvent extends Event { + constructor(type: string, eventInitDict: MIDIConnectionEvent$Init): void; + +port: MIDIPort; +} + +declare class MIDIPort extends EventTarget { + +id: string; + +manufacturer?: string; + +name?: string; + +type: MIDIPortType; + +version?: string; + +state: MIDIPortDeviceState; + +connection: MIDIPortConnectionState; + onstatechange: ?((ev: MIDIConnectionEvent) => mixed); + open(): Promise; + close(): Promise; +} + +declare class MIDIInput extends MIDIPort { + onmidimessage: ?((ev: MIDIMessageEvent) => mixed); +} + +declare class MIDIOutput extends MIDIPort { + send(data: Iterable, timestamp?: number): void; + clear(): void; +} + +declare class MIDIInputMap extends $ReadOnlyMap {} + +declare class MIDIOutputMap extends $ReadOnlyMap {} + +declare class MIDIAccess extends EventTarget { + +inputs: MIDIInputMap; + +outputs: MIDIOutputMap; + +sysexEnabled: boolean; + onstatechange: ?((ev: MIDIConnectionEvent) => mixed); +} + +declare class NavigatorID { + appName: 'Netscape'; + appCodeName: 'Mozilla'; + product: 'Gecko'; + appVersion: string; + platform: string; + userAgent: string; +} + +declare class NavigatorLanguage { + +language: string; + +languages: $ReadOnlyArray; +} + +declare class NavigatorContentUtils { + registerContentHandler(mimeType: string, uri: string, title: string): void; + registerProtocolHandler(protocol: string, uri: string, title: string): void; +} + +declare class NavigatorCookies { + +cookieEnabled: boolean; +} + +declare class NavigatorPlugins { + +plugins: PluginArray; + +mimeTypes: MimeTypeArray; + javaEnabled(): boolean; +} + +declare class NavigatorOnLine { + +onLine: boolean; +} + +declare class NavigatorConcurrentHardware { + +hardwareConcurrency: number; +} + +declare class Navigator mixins + NavigatorID, + NavigatorLanguage, + NavigatorOnLine, + NavigatorContentUtils, + NavigatorCookies, + NavigatorPlugins, + NavigatorConcurrentHardware { + productSub: '20030107' | '20100101'; + vendor: '' | 'Google Inc.' | 'Apple Computer, Inc'; + vendorSub: ''; + + activeVRDisplays?: VRDisplay[]; + appCodeName: 'Mozilla'; + buildID: string; + doNotTrack: string | null; + geolocation: Geolocation; + mediaDevices?: MediaDevices; + usb?: USB; + maxTouchPoints: number; + permissions: Permissions; + serviceWorker?: ServiceWorkerContainer; + getGamepads?: () => Array; + webkitGetGamepads?: Function; + mozGetGamepads?: Function; + mozGamepads?: any; + gamepads?: any; + webkitGamepads?: any; + getVRDisplays?: () => Promise; + registerContentHandler(mimeType: string, uri: string, title: string): void; + registerProtocolHandler(protocol: string, uri: string, title: string): void; + requestMIDIAccess?: (options?: MIDIOptions) => Promise; + requestMediaKeySystemAccess?: (keySystem: string, supportedConfigurations: any[]) => Promise; + sendBeacon?: (url: string, data?: BodyInit) => boolean; + vibrate?: (pattern: number | number[]) => boolean; + mozVibrate?: (pattern: number | number[]) => boolean; + webkitVibrate?: (pattern: number | number[]) => boolean; + canShare?: (shareData?: ShareData) => boolean; + share?: (shareData: ShareData) => Promise; + clipboard: Clipboard; + credentials?: CredMgmtCredentialsContainer; + + // deprecated + getBattery?: () => Promise; + mozGetBattery?: () => Promise; + + // deprecated + getUserMedia?: Function; + webkitGetUserMedia?: Function; + mozGetUserMedia?: Function; + msGetUserMedia?: Function; + + // Gecko + taintEnabled?: () => false; + oscpu: string; +} + +declare class Clipboard extends EventTarget { + read(): Promise; + readText(): Promise; + write(data: $ReadOnlyArray): Promise; + writeText(data: string): Promise; +} + +declare var navigator: Navigator; + +declare class MimeType { + type: string; + description: string; + suffixes: string; + enabledPlugin: Plugin; +} + +declare class MimeTypeArray { + length: number; + item(index: number): MimeType; + namedItem(name: string): MimeType; + [key: number | string]: MimeType; +} + +declare class Plugin { + description: string; + filename: string; + name: string; + version?: string; // Gecko only + length: number; + item(index: number): MimeType; + namedItem(name: string): MimeType; + [key: number | string]: MimeType; +} + +declare class PluginArray { + length: number; + item(index: number): Plugin; + namedItem(name: string): Plugin; + refresh(): void; + [key: number | string]: Plugin; +} + +// https://www.w3.org/TR/hr-time-2/#dom-domhighrestimestamp +// https://developer.mozilla.org/en-US/docs/Web/API/DOMHighResTimeStamp +declare type DOMHighResTimeStamp = number; + +// https://www.w3.org/TR/navigation-timing-2/ +declare class PerformanceTiming { + connectEnd: number; + connectStart: number; + domainLookupEnd: number; + domainLookupStart: number; + domComplete: number; + domContentLoadedEventEnd: number; + domContentLoadedEventStart: number; + domInteractive: number; + domLoading: number; + fetchStart: number; + loadEventEnd: number; + loadEventStart: number; + navigationStart: number; + redirectEnd: number; + redirectStart: number; + requestStart: number; + responseEnd: number; + responseStart: number; + secureConnectionStart: number; + unloadEventEnd: number; + unloadEventStart: number; +} + +declare class PerformanceNavigation { + TYPE_NAVIGATE: 0; + TYPE_RELOAD: 1; + TYPE_BACK_FORWARD: 2; + TYPE_RESERVED: 255; + + type: 0 | 1 | 2 | 255; + redirectCount: number; +} + +type PerformanceEntryFilterOptions = { + name: string, + entryType: string, + initiatorType: string, + ... +} + +// https://www.w3.org/TR/performance-timeline-2/ +declare class PerformanceEntry { + name: string; + entryType: string; + startTime: DOMHighResTimeStamp; + duration: DOMHighResTimeStamp; + toJSON(): string; +} + +// https://w3c.github.io/server-timing/#the-performanceservertiming-interface +declare class PerformanceServerTiming { + description: string; + duration: DOMHighResTimeStamp; + name: string; + toJSON(): string; +} + +// https://www.w3.org/TR/resource-timing-2/#sec-performanceresourcetiming +// https://w3c.github.io/server-timing/#extension-to-the-performanceresourcetiming-interface +declare class PerformanceResourceTiming extends PerformanceEntry { + initiatorType: string; + nextHopProtocol: string; + workerStart: number; + redirectStart: number; + redirectEnd: number; + fetchStart: number; + domainLookupStart: number; + domainLookupEnd: number; + connectStart: number; + connectEnd: number; + secureConnectionStart: number; + requestStart: number; + responseStart: number; + responseEnd: number; + transferSize: string; + encodedBodySize: number; + decodedBodySize: number; + serverTiming: Array; +} + +// https://www.w3.org/TR/navigation-timing-2/ +declare class PerformanceNavigationTiming extends PerformanceResourceTiming { + unloadEventStart: number; + unloadEventEnd: number; + domInteractive: number; + domContentLoadedEventStart: number; + domContentLoadedEventEnd: number; + domComplete: number; + loadEventStart: number; + loadEventEnd: number; + type: 'navigate' | 'reload' | 'back_forward' | 'prerender'; + redirectCount: number; +} + +// https://www.w3.org/TR/user-timing/#extensions-performance-interface +declare type PerformanceMarkOptions = {| + detail?: mixed, + startTime?: number, +|}; + +declare type PerformanceMeasureOptions = {| + detail?: mixed, + start?: number | string, + end?: number | string, + duration?: number, +|}; + + +type EventCountsForEachCallbackType = + | (() => void) + | ((value: number) => void) + | ((value: number, key: string) => void) + | ((value: number, key: string, map: Map) => void); + +// https://www.w3.org/TR/event-timing/#eventcounts +declare interface EventCounts { + size: number; + + entries(): Iterator<[string, number]>; + forEach(callback: EventCountsForEachCallbackType): void; + get(key: string): ?number; + has(key: string): boolean; + keys(): Iterator; + values(): Iterator; +} + +declare class Performance { + eventCounts: EventCounts; + + // deprecated + navigation: PerformanceNavigation; + timing: PerformanceTiming; + + onresourcetimingbufferfull: (ev: any) => mixed; + clearMarks(name?: string): void; + clearMeasures(name?: string): void; + clearResourceTimings(): void; + getEntries(options?: PerformanceEntryFilterOptions): Array; + getEntriesByName(name: string, type?: string): Array; + getEntriesByType(type: string): Array; + mark(name: string, options?: PerformanceMarkOptions): void; + measure(name: string, startMarkOrOptions?: string | PerformanceMeasureOptions, endMark?: string): void; + now(): DOMHighResTimeStamp; + setResourceTimingBufferSize(maxSize: number): void; + toJSON(): string; +} + +declare var performance: Performance; + +type PerformanceEntryList = PerformanceEntry[]; + +declare interface PerformanceObserverEntryList { + getEntries(): PerformanceEntryList; + getEntriesByType(type: string): PerformanceEntryList; + getEntriesByName(name: string, type: ?string): PerformanceEntryList; +} + +type PerformanceObserverInit = { + entryTypes?: string[]; + type?: string; + buffered?: boolean; + ... +} + +declare class PerformanceObserver { + constructor(callback: (entries: PerformanceObserverEntryList, observer: PerformanceObserver) => mixed): void; + + observe(options: ?PerformanceObserverInit): void; + disconnect(): void; + takeRecords(): PerformanceEntryList; + + static supportedEntryTypes: string[]; +} + +declare class History { + length: number; + scrollRestoration: 'auto' | 'manual'; + state: any; + back(): void; + forward(): void; + go(delta?: number): void; + pushState(statedata: any, title: string, url?: string): void; + replaceState(statedata: any, title: string, url?: string): void; +} + +declare var history: History; + +declare class Location { + ancestorOrigins: string[]; + hash: string; + host: string; + hostname: string; + href: string; + origin: string; + pathname: string; + port: string; + protocol: string; + search: string; + assign(url: string): void; + reload(flag?: boolean): void; + replace(url: string): void; + toString(): string; +} + +declare var location: Location; + +/////////////////////////////////////////////////////////////////////////////// + +declare class DOMParser { + parseFromString(source: string | TrustedHTML, mimeType: string): Document; +} + +type FormDataEntryValue = string | File + +declare class FormData { + constructor(form?: HTMLFormElement): void; + + has(name: string): boolean; + get(name: string): ?FormDataEntryValue; + getAll(name: string): Array; + + set(name: string, value: string): void; + set(name: string, value: Blob, filename?: string): void; + set(name: string, value: File, filename?: string): void; + + append(name: string, value: string): void; + append(name: string, value: Blob, filename?: string): void; + append(name: string, value: File, filename?: string): void; + + delete(name: string): void; + + keys(): Iterator; + values(): Iterator; + entries(): Iterator<[string, FormDataEntryValue]>; +} + +declare class MutationRecord { + type: 'attributes' | 'characterData' | 'childList'; + target: Node; + addedNodes: NodeList; + removedNodes: NodeList; + previousSibling: ?Node; + nextSibling: ?Node; + attributeName: ?string; + attributeNamespace: ?string; + oldValue: ?string; +} + +type MutationObserverInitRequired = + | { childList: true, ... } + | { attributes: true, ... } + | { characterData: true, ... } + +declare type MutationObserverInit = MutationObserverInitRequired & { + subtree?: boolean, + attributeOldValue?: boolean, + characterDataOldValue?: boolean, + attributeFilter?: Array, + ... +} + +declare class MutationObserver { + constructor(callback: (arr: Array, observer: MutationObserver) => mixed): void; + observe(target: Node, options: MutationObserverInit): void; + takeRecords(): Array; + disconnect(): void; +} + +declare class DOMRectReadOnly { + static fromRect(rectangle?: { + x: number, + y: number, + width: number, + height: number, + ... + }): DOMRectReadOnly; + constructor(x: number, y: number, width: number, height: number): void; + +bottom: number; + +height: number; + +left: number; + +right: number; + +top: number; + +width: number; + +x: number; + +y: number; +} + +declare class DOMRect extends DOMRectReadOnly { + static fromRect(rectangle?: { + x: number, + y: number, + width: number, + height: number, + ... + }): DOMRect; + bottom: number; + height: number; + left: number; + right: number; + top: number; + width: number; + x: number; + y: number; +} + +declare class DOMRectList { + @@iterator(): Iterator; + length: number; + item(index: number): DOMRect; + [index: number]: DOMRect; +} + +declare type IntersectionObserverEntry = { + boundingClientRect: DOMRectReadOnly, + intersectionRatio: number, + intersectionRect: DOMRectReadOnly, + isIntersecting: boolean, + rootBounds: DOMRectReadOnly, + target: Element, + time: DOMHighResTimeStamp, + ... +}; + +declare type IntersectionObserverCallback = ( + entries: Array, + observer: IntersectionObserver, +) => mixed; + +declare type IntersectionObserverOptions = { + root?: Node | null, + rootMargin?: string, + threshold?: number | Array, + ... +}; + +declare class IntersectionObserver { + constructor( + callback: IntersectionObserverCallback, + options?: IntersectionObserverOptions + ): void, + root: Element | null; + rootMargin: string; + scrollMargin: string; + thresholds: number[]; + observe(target: Element): void, + unobserve(target: Element): void, + takeRecords(): Array, + disconnect(): void, +} + +declare interface ResizeObserverSize { + +inlineSize: number; + +blockSize: number; +} + +declare interface ResizeObserverEntry { + /** + * The Element whose size has changed. + */ + +target: Element; + /** + * Element's content rect when ResizeObserverCallback is invoked. + * + * Legacy, may be deprecated in the future. + */ + +contentRect: DOMRectReadOnly; + /** + * An array containing the Element's border box size when + * ResizeObserverCallback is invoked. + */ + +borderBoxSize: $ReadOnlyArray; + /** + * An array containing the Element's content rect size when + * ResizeObserverCallback is invoked. + */ + +contentBoxSize: $ReadOnlyArray; + /** + * An array containing the Element's content rect size in integral device + * pixels when ResizeObserverCallback is invoked. + * + * Not implemented in Firefox or Safari as of July 2021 + */ + +devicePixelContentBoxSize?: $ReadOnlyArray | void; +} + +/** + * ResizeObserver can observe different kinds of CSS sizes: + * - border-box : size of box border area as defined in CSS2. + * - content-box : size of content area as defined in CSS2. + * - device-pixel-content-box : size of content area as defined in CSS2, in device + * pixels, before applying any CSS transforms on the element or its ancestors. + * This size must contain integer values. + */ +type ResizeObserverBoxOptions = "border-box" | "content-box" | "device-pixel-content-box"; + +declare type ResizeObserverOptions = { + box?: ResizeObserverBoxOptions; + ... +}; + +/** + * The ResizeObserver interface is used to observe changes to Element's size. + */ +declare class ResizeObserver { + constructor(callback: (entries: ResizeObserverEntry[], observer: ResizeObserver) => mixed): void; + /** + * Adds target to the list of observed elements. + */ + observe(target: Element, options?: ResizeObserverOptions): void; + /** + * Removes target from the list of observed elements. + */ + unobserve(target: Element): void; + disconnect(): void; +} + +declare var NodeFilter: { + acceptNode(n: Node): number, + SHOW_ENTITY_REFERENCE: number, + SHOW_NOTATION: number, + SHOW_ENTITY: number, + SHOW_DOCUMENT: number, + SHOW_PROCESSING_INSTRUCTION: number, + FILTER_REJECT: number, + SHOW_CDATA_SECTION: number, + FILTER_ACCEPT: number, + SHOW_ALL: number, + SHOW_DOCUMENT_TYPE: number, + SHOW_TEXT: number, + SHOW_ELEMENT: number, + SHOW_COMMENT: number, + FILTER_SKIP: number, + SHOW_ATTRIBUTE: number, + SHOW_DOCUMENT_FRAGMENT: number, + ... +}; + +declare class CloseEvent extends Event { + code: number; + reason: string; + wasClean: boolean; +} + +declare class WebSocket extends EventTarget { + static CONNECTING: 0; + static OPEN: 1; + static CLOSING: 2; + static CLOSED: 3; + constructor(url: string, protocols?: string | Array): void; + protocol: string; + readyState: number; + bufferedAmount: number; + extensions: string; + onopen: (ev: any) => mixed; + onmessage: (ev: MessageEvent) => mixed; + onclose: (ev: CloseEvent) => mixed; + onerror: (ev: any) => mixed; + binaryType: 'blob' | 'arraybuffer'; + url: string; + close(code?: number, reason?: string): void; + send(data: string): void; + send(data: Blob): void; + send(data: ArrayBuffer): void; + send(data: $ArrayBufferView): void; + CONNECTING: 0; + OPEN: 1; + CLOSING: 2; + CLOSED: 3; +} + +type WorkerOptions = { + type?: WorkerType, + credentials?: CredentialsType, + name?: string, + ... +} + +declare class Worker extends EventTarget { + constructor(stringUrl: string | TrustedScriptURL, workerOptions?: WorkerOptions): void; + onerror: null | (ev: any) => mixed; + onmessage: null | (ev: MessageEvent) => mixed; + onmessageerror: null | (ev: MessageEvent) => mixed; + postMessage(message: any, ports?: any): void; + terminate(): void; +} + +declare class SharedWorker extends EventTarget { + constructor(stringUrl: string | TrustedScriptURL, name?: string): void; + constructor(stringUrl: string | TrustedScriptURL, workerOptions?: WorkerOptions): void; + port: MessagePort; + onerror: (ev: any) => mixed; +} + +declare function importScripts(...urls: Array): void; + +declare class WorkerGlobalScope extends EventTarget { + self: this; + location: WorkerLocation; + navigator: WorkerNavigator; + close(): void; + importScripts(...urls: Array): void; + onerror: (ev: any) => mixed; + onlanguagechange: (ev: any) => mixed; + onoffline: (ev: any) => mixed; + ononline: (ev: any) => mixed; + onrejectionhandled: (ev: PromiseRejectionEvent) => mixed; + onunhandledrejection: (ev: PromiseRejectionEvent) => mixed; +} + +declare class DedicatedWorkerGlobalScope extends WorkerGlobalScope { + onmessage: (ev: MessageEvent) => mixed; + onmessageerror: (ev: MessageEvent) => mixed; + postMessage(message: any, transfer?: Iterable): void; +} + +declare class SharedWorkerGlobalScope extends WorkerGlobalScope { + name: string; + onconnect: (ev: MessageEvent) => mixed; +} + +declare class WorkerLocation { + origin: string; + protocol: string; + host: string; + hostname: string; + port: string; + pathname: string; + search: string; + hash: string; +} + +declare class WorkerNavigator mixins + NavigatorID, + NavigatorLanguage, + NavigatorOnLine, + NavigatorConcurrentHardware { + permissions: Permissions; + } + + +// deprecated +declare class XDomainRequest { + timeout: number; + onerror: () => mixed; + onload: () => mixed; + onprogress: () => mixed; + ontimeout: () => mixed; + +responseText: string; + +contentType: string; + open(method: "GET" | "POST", url: string): void; + abort(): void; + send(data?: string): void; + + statics: { create(): XDomainRequest, ... } +} + +declare class XMLHttpRequest extends EventTarget { + static LOADING: number; + static DONE: number; + static UNSENT: number; + static OPENED: number; + static HEADERS_RECEIVED: number; + responseBody: any; + status: number; + readyState: number; + responseText: string; + responseXML: any; + responseURL: string; + ontimeout: ProgressEventHandler; + statusText: string; + onreadystatechange: (ev: any) => mixed; + timeout: number; + onload: ProgressEventHandler; + response: any; + withCredentials: boolean; + onprogress: ProgressEventHandler; + onabort: ProgressEventHandler; + responseType: string; + onloadend: ProgressEventHandler; + upload: XMLHttpRequestEventTarget; + onerror: ProgressEventHandler; + onloadstart: ProgressEventHandler; + msCaching: string; + open(method: string, url: string, async?: boolean, user?: string, password?: string): void; + send(data?: any): void; + abort(): void; + getAllResponseHeaders(): string; + setRequestHeader(header: string, value: string): void; + getResponseHeader(header: string): string; + msCachingEnabled(): boolean; + overrideMimeType(mime: string): void; + LOADING: number; + DONE: number; + UNSENT: number; + OPENED: number; + HEADERS_RECEIVED: number; + + statics: { create(): XMLHttpRequest, ... } +} + +declare class XMLHttpRequestEventTarget extends EventTarget { + onprogress: ProgressEventHandler; + onerror: ProgressEventHandler; + onload: ProgressEventHandler; + ontimeout: ProgressEventHandler; + onabort: ProgressEventHandler; + onloadstart: ProgressEventHandler; + onloadend: ProgressEventHandler; +} + +declare class XMLSerializer { + serializeToString(target: Node): string; +} + +declare class Geolocation { + getCurrentPosition( + success: (position: Position) => mixed, + error?: (error: PositionError) => mixed, + options?: PositionOptions + ): void; + watchPosition( + success: (position: Position) => mixed, + error?: (error: PositionError) => mixed, + options?: PositionOptions + ): number; + clearWatch(id: number): void; +} + +declare class Position { + coords: Coordinates; + timestamp: number; +} + +declare class Coordinates { + latitude: number; + longitude: number; + altitude?: number; + accuracy: number; + altitudeAccuracy?: number; + heading?: number; + speed?: number; +} + +declare class PositionError { + code: number; + message: string; + PERMISSION_DENIED: 1; + POSITION_UNAVAILABLE: 2; + TIMEOUT: 3; +} + +type PositionOptions = { + enableHighAccuracy?: boolean, + timeout?: number, + maximumAge?: number, + ... +} + +type AudioContextState = 'suspended' | 'running' | 'closed'; + +// deprecated +type AudioProcessingEvent$Init = Event$Init & { + playbackTime: number; + inputBuffer: AudioBuffer; + outputBuffer: AudioBuffer; + ... +} + +// deprecated +declare class AudioProcessingEvent extends Event { + constructor(type: string, eventInitDict: AudioProcessingEvent$Init): void; + + +playbackTime: number; + +inputBuffer: AudioBuffer; + +outputBuffer: AudioBuffer; +} + +type OfflineAudioCompletionEvent$Init = Event$Init & { + renderedBuffer: AudioBuffer; + ... +} + +declare class OfflineAudioCompletionEvent extends Event { + constructor(type: string, eventInitDict: OfflineAudioCompletionEvent$Init): void; + + +renderedBuffer: AudioBuffer; +} + +declare class BaseAudioContext extends EventTarget { + currentTime: number; + destination: AudioDestinationNode; + listener: AudioListener; + sampleRate: number; + state: AudioContextState; + onstatechange: (ev: any) => mixed; + createBuffer(numOfChannels: number, length: number, sampleRate: number): AudioBuffer; + createBufferSource(myMediaElement?: HTMLMediaElement): AudioBufferSourceNode; + createMediaElementSource(myMediaElement: HTMLMediaElement): MediaElementAudioSourceNode; + createMediaStreamSource(stream: MediaStream): MediaStreamAudioSourceNode; + createMediaStreamDestination(): MediaStreamAudioDestinationNode; + + // deprecated + createScriptProcessor(bufferSize: number, numberOfInputChannels: number, numberOfOutputChannels: number): ScriptProcessorNode; + + createAnalyser(): AnalyserNode; + createBiquadFilter(): BiquadFilterNode; + createChannelMerger(numberOfInputs?: number): ChannelMergerNode; + createChannelSplitter(numberOfInputs?: number): ChannelSplitterNode; + createConstantSource(): ConstantSourceNode; + createConvolver(): ConvolverNode; + createDelay(maxDelayTime?: number): DelayNode; + createDynamicsCompressor(): DynamicsCompressorNode; + createGain(): GainNode; + createIIRFilter (feedforward: Float32Array, feedback: Float32Array): IIRFilterNode; + createOscillator(): OscillatorNode; + createPanner(): PannerNode; + createStereoPanner(): StereoPannerNode; + createPeriodicWave(real: Float32Array, img: Float32Array, options?: { disableNormalization: boolean, ... }): PeriodicWave; + createStereoPanner(): StereoPannerNode; + createWaveShaper(): WaveShaperNode; + decodeAudioData(arrayBuffer: ArrayBuffer, decodeSuccessCallback: (decodedData: AudioBuffer) => mixed, decodeErrorCallback: (err: DOMError) => mixed): void; + decodeAudioData(arrayBuffer: ArrayBuffer): Promise; +} + +declare class AudioTimestamp { + contextTime: number; + performanceTime: number; +} + +declare class AudioContext extends BaseAudioContext { + constructor(options?: {| latencyHint?: 'balanced' | 'interactive' | 'playback' | number, sampleRate?: number |}): AudioContext; + baseLatency: number; + outputLatency: number; + getOutputTimestamp(): AudioTimestamp; + resume(): Promise; + suspend(): Promise; + close(): Promise; + createMediaElementSource(myMediaElement: HTMLMediaElement): MediaElementAudioSourceNode; + createMediaStreamSource(myMediaStream: MediaStream): MediaStreamAudioSourceNode; + createMediaStreamTrackSource(myMediaStreamTrack: MediaStreamTrack): MediaStreamTrackAudioSourceNode; + createMediaStreamDestination(): MediaStreamAudioDestinationNode; +} + +declare class OfflineAudioContext extends BaseAudioContext { + startRendering(): Promise; + suspend(suspendTime: number): Promise; + length: number; + oncomplete: (ev: OfflineAudioCompletionEvent) => mixed; +} + +declare class AudioNode extends EventTarget { + context: AudioContext; + numberOfInputs: number; + numberOfOutputs: number; + channelCount: number; + channelCountMode: 'max' | 'clamped-max' | 'explicit'; + channelInterpretation: 'speakers' | 'discrete'; + connect(audioNode: AudioNode, output?: number, input?: number): AudioNode; + connect(destination: AudioParam, output?: number): void; + disconnect(destination?: AudioNode, output?: number, input?: number): void; +} + +declare class AudioParam extends AudioNode { + value: number; + defaultValue: number; + setValueAtTime(value: number, startTime: number): this; + linearRampToValueAtTime(value: number, endTime: number): this; + exponentialRampToValueAtTime(value: number, endTime: number): this; + setTargetAtTime(target: number, startTime: number, timeConstant: number): this; + setValueCurveAtTime(values: Float32Array, startTime: number, duration: number): this; + cancelScheduledValues(startTime: number): this; +} + +declare class AudioDestinationNode extends AudioNode { + maxChannelCount: number; +} + +declare class AudioListener extends AudioNode { + positionX: AudioParam; + positionY: AudioParam; + positionZ: AudioParam; + forwardX: AudioParam; + forwardY: AudioParam; + forwardZ: AudioParam; + upX: AudioParam; + upY: AudioParam; + upZ: AudioParam; + setPosition(x: number, y: number, c: number): void; + setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void; +} + +declare class AudioBuffer { + sampleRate: number; + length: number; + duration: number; + numberOfChannels: number; + getChannelData(channel: number): Float32Array; + copyFromChannel(destination: Float32Array, channelNumber: number, startInChannel?: number): void; + copyToChannel(source: Float32Array, channelNumber: number, startInChannel?: number): void; +} + +declare class AudioBufferSourceNode extends AudioNode { + buffer: AudioBuffer; + detune: AudioParam; + loop: boolean; + loopStart: number; + loopEnd: number; + playbackRate: AudioParam; + onended: (ev: any) => mixed; + start(when?: number, offset?: number, duration?: number): void; + stop(when?: number): void; +} + +declare class CanvasCaptureMediaStream extends MediaStream { + canvas: HTMLCanvasElement; + requestFrame(): void; +} + +type DoubleRange = { + max?: number; + min?: number; + ... +} + +type LongRange = { + max?: number; + min?: number; + ... +} + +type ConstrainBooleanParameters = { + exact?: boolean; + ideal?: boolean; + ... +} + +type ConstrainDOMStringParameters = { + exact?: string | string[]; + ideal?: string | string[]; + ... +} + +type ConstrainDoubleRange = { + ...DoubleRange; + exact?: number; + ideal?: number; + ... +} + +type ConstrainLongRange = { + ...LongRange; + exact?: number; + ideal?: number; + ... +} + +type MediaTrackSupportedConstraints = {| + width: boolean; + height: boolean; + aspectRatio: boolean; + frameRate: boolean; + facingMode: boolean; + resizeMode: boolean; + volume: boolean; + sampleRate: boolean; + sampleSize: boolean; + echoCancellation: boolean; + autoGainControl: boolean; + noiseSuppression: boolean; + latency: boolean; + channelCount: boolean; + deviceId: boolean; + groupId: boolean; +|} + +type MediaTrackConstraintSet = { + width?: number | ConstrainLongRange; + height?: number | ConstrainLongRange; + aspectRatio?: number | ConstrainDoubleRange; + frameRate?: number | ConstrainDoubleRange; + facingMode?: string | string[] | ConstrainDOMStringParameters; + resizeMode?: string | string[] | ConstrainDOMStringParameters; + volume?: number | ConstrainDoubleRange; + sampleRate?: number | ConstrainLongRange; + sampleSize?: number | ConstrainLongRange; + echoCancellation?: boolean | ConstrainBooleanParameters; + autoGainControl?: boolean | ConstrainBooleanParameters; + noiseSuppression?: boolean | ConstrainBooleanParameters; + latency?: number | ConstrainDoubleRange; + channelCount?: number | ConstrainLongRange; + deviceId?: string | string[] | ConstrainDOMStringParameters; + groupId?: string | string[] | ConstrainDOMStringParameters; + ... +} + +type MediaTrackConstraints = { + ...MediaTrackConstraintSet; + advanced?: Array; + ... +} + +type DisplayMediaStreamConstraints = { + video?: boolean | MediaTrackConstraints; + audio?: boolean | MediaTrackConstraints; + ... +} + +type MediaStreamConstraints = { + audio?: boolean | MediaTrackConstraints; + video?: boolean | MediaTrackConstraints; + peerIdentity?: string; + ... +} + +type MediaTrackSettings = { + aspectRatio?: number; + deviceId?: string; + displaySurface?: 'application' | 'browser' | 'monitor' | 'window'; + echoCancellation?: boolean; + facingMode?: string; + frameRate?: number; + groupId?: string; + height?: number; + logicalSurface?: boolean; + sampleRate?: number; + sampleSize?: number; + volume?: number; + width?: number; + ... +} + +type MediaTrackCapabilities = { + aspectRatio?: number | DoubleRange; + deviceId?: string; + echoCancellation?: boolean[]; + facingMode?: string; + frameRate?: number | DoubleRange; + groupId?: string; + height?: number | LongRange; + sampleRate?: number | LongRange; + sampleSize?: number | LongRange; + volume?: number | DoubleRange; + width?: number | LongRange; + ... +} + +declare class MediaDevices extends EventTarget { + ondevicechange: (ev: any) => mixed; + enumerateDevices: () => Promise>; + getSupportedConstraints: () => MediaTrackSupportedConstraints; + getDisplayMedia: (constraints?: DisplayMediaStreamConstraints) => Promise; + getUserMedia: (constraints: MediaStreamConstraints) => Promise; +} + +declare class MediaDeviceInfo { + +deviceId: string; + +groupId: string; + +kind: 'videoinput' | 'audioinput' | 'audiooutput'; + +label: string; +} + +type MediaRecorderOptions = { + mimeType?: string, + audioBitsPerSecond?: number, + videoBitsPerSecond?: number, + bitsPerSecond?: number, + audioBitrateMode?: 'cbr' | 'vbr', + ... +} + +declare class MediaRecorder extends EventTarget { + constructor(stream: MediaStream, options?: MediaRecorderOptions): void; + +stream: MediaStream; + +mimeType: string; + +state: 'inactive' | 'recording' | 'paused'; + + onstart: (ev: any) => mixed; + onstop: (ev: any) => mixed; + ondataavailable: (ev: any) => mixed; + onpause: (ev: any) => mixed; + onresume: (ev: any) => mixed; + onerror: (ev: any) => mixed; + + +videoBitsPerSecond: number; + +audioBitsPerSecond: number; + +audioBitrateMode: 'cbr' | 'vbr'; + + start(timeslice?: number): void; + stop(): void; + pause(): void; + resume(): void; + requestData(): void; + + static isTypeSupported(type: string): boolean; +} + +declare class MediaStream extends EventTarget { + active: boolean; + ended: boolean; + id: string; + onactive: (ev: any) => mixed; + oninactive: (ev: any) => mixed; + onended: (ev: any) => mixed; + onaddtrack: (ev: MediaStreamTrackEvent) => mixed; + onremovetrack: (ev: MediaStreamTrackEvent) => mixed; + addTrack(track: MediaStreamTrack): void; + clone(): MediaStream; + getAudioTracks(): MediaStreamTrack[]; + getTrackById(trackid?: string): ?MediaStreamTrack; + getTracks(): MediaStreamTrack[]; + getVideoTracks(): MediaStreamTrack[]; + removeTrack(track: MediaStreamTrack): void; +} + +declare class MediaStreamTrack extends EventTarget { + enabled: boolean; + id: string; + kind: string; + label: string; + muted: boolean; + readonly: boolean; + readyState: 'live' | 'ended'; + remote: boolean; + contentHint?: string; + onstarted: (ev: any) => mixed; + onmute: (ev: any) => mixed; + onunmute: (ev: any) => mixed; + onoverconstrained: (ev: any) => mixed; + onended: (ev: any) => mixed; + getConstraints(): MediaTrackConstraints; + applyConstraints(constraints?: MediaTrackConstraints): Promise; + getSettings(): MediaTrackSettings; + getCapabilities(): MediaTrackCapabilities; + clone(): MediaStreamTrack; + stop(): void; +} + +declare class MediaStreamTrackEvent extends Event { + track: MediaStreamTrack; +} + +declare class MediaElementAudioSourceNode extends AudioNode {} +declare class MediaStreamAudioSourceNode extends AudioNode {} +declare class MediaStreamTrackAudioSourceNode extends AudioNode {} + +declare class MediaStreamAudioDestinationNode extends AudioNode { + stream: MediaStream; +} + +// deprecated +declare class ScriptProcessorNode extends AudioNode { + bufferSize: number; + onaudioprocess: (ev: AudioProcessingEvent) => mixed; +} + +declare class AnalyserNode extends AudioNode { + fftSize: number; + frequencyBinCount: number; + minDecibels: number; + maxDecibels: number; + smoothingTimeConstant: number; + getFloatFrequencyData(array: Float32Array): Float32Array; + getByteFrequencyData(array: Uint8Array): Uint8Array; + getFloatTimeDomainData(array: Float32Array): Float32Array; + getByteTimeDomainData(array: Uint8Array): Uint8Array; +} + +declare class BiquadFilterNode extends AudioNode { + frequency: AudioParam; + detune: AudioParam; + Q: AudioParam; + gain: AudioParam; + type: 'lowpass'|'highpass'|'bandpass'|'lowshelf'|'highshelf'|'peaking'|'notch'|'allpass'; + getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void; +} + +declare class ChannelMergerNode extends AudioNode {} +declare class ChannelSplitterNode extends AudioNode {} + +type ConstantSourceOptions = { offset?: number, ... } +declare class ConstantSourceNode extends AudioNode { + constructor(context: BaseAudioContext, options?: ConstantSourceOptions): void; + offset: AudioParam; + onended: (ev: any) => mixed; + start(when?: number): void; + stop(when?: number): void; +} + +declare class ConvolverNode extends AudioNode { + buffer: AudioBuffer; + normalize: boolean; +} + +declare class DelayNode extends AudioNode { + delayTime: number; +} + +declare class DynamicsCompressorNode extends AudioNode { + threshold: AudioParam; + knee: AudioParam; + ratio: AudioParam; + reduction: AudioParam; + attack: AudioParam; + release: AudioParam; +} + +declare class GainNode extends AudioNode { + gain: AudioParam; +} + +declare class IIRFilterNode extends AudioNode { + getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void; +} + +declare class OscillatorNode extends AudioNode { + frequency: AudioParam; + detune: AudioParam; + type: 'sine' | 'square' | 'sawtooth' | 'triangle' | 'custom'; + start(when?: number): void; + stop(when?: number): void; + setPeriodicWave(periodicWave: PeriodicWave): void; + onended: (ev: any) => mixed; +} + +declare class StereoPannerNode extends AudioNode { + pan: AudioParam; +} + +declare class PannerNode extends AudioNode { + panningModel: 'equalpower'|'HRTF'; + distanceModel: 'linear'|'inverse'|'exponential'; + refDistance: number; + maxDistance: number; + rolloffFactor: number; + coneInnerAngle: number; + coneOuterAngle: number; + coneOuterGain: number; + setPosition(x: number, y: number, z: number): void; + setOrientation(x: number, y: number, z: number): void; +} + +declare class PeriodicWave extends AudioNode {} +declare class WaveShaperNode extends AudioNode { + curve: Float32Array; + oversample: 'none'|'2x'|'4x'; +} + + +// this part of spec is not finished yet, apparently +// https://stackoverflow.com/questions/35296664/can-fetch-get-object-as-headers +type HeadersInit = Headers | Array<[string, string]> | { [key: string]: string, ... }; + + +// TODO Heades and URLSearchParams are almost the same thing. +// Could it somehow be abstracted away? +declare class Headers { + @@iterator(): Iterator<[string, string]>; + constructor(init?: HeadersInit): void; + append(name: string, value: string): void; + delete(name: string): void; + entries(): Iterator<[string, string]>; + forEach(callback: (this : This, value: string, name: string, headers: Headers) => mixed, thisArg: This): void; + get(name: string): null | string; + has(name: string): boolean; + keys(): Iterator; + set(name: string, value: string): void; + values(): Iterator; +} + +declare class URLSearchParams { + @@iterator(): Iterator<[string, string]>; + + size: number; + + constructor(init?: string | URLSearchParams | Array<[string, string]> | { [string]: string, ... } ): void; + append(name: string, value: string): void; + delete(name: string, value?: string): void; + entries(): Iterator<[string, string]>; + forEach(callback: (this : This, value: string, name: string, params: URLSearchParams) => mixed, thisArg: This): void; + get(name: string): null | string; + getAll(name: string): Array; + has(name: string, value?: string): boolean; + keys(): Iterator; + set(name: string, value: string): void; + sort(): void; + values(): Iterator; + toString(): string; +} + +type CacheType = 'default' | 'no-store' | 'reload' | 'no-cache' | 'force-cache' | 'only-if-cached'; +type CredentialsType = 'omit' | 'same-origin' | 'include'; +type ModeType = 'cors' | 'no-cors' | 'same-origin' | 'navigate'; +type RedirectType = 'follow' | 'error' | 'manual'; +type ReferrerPolicyType = + '' | 'no-referrer' | 'no-referrer-when-downgrade' | 'same-origin' | + 'origin' | 'strict-origin' | 'origin-when-cross-origin' | + 'strict-origin-when-cross-origin' | 'unsafe-url'; + +type ResponseType = 'basic' | 'cors' | 'default' | 'error' | 'opaque' | 'opaqueredirect' ; + +type BodyInit = string | URLSearchParams | FormData | Blob | ArrayBuffer | $ArrayBufferView | ReadableStream; + +type RequestInfo = Request | URL | string; + +type RequestOptions = { + body?: ?BodyInit, + cache?: CacheType, + credentials?: CredentialsType, + headers?: HeadersInit, + integrity?: string, + keepalive?: boolean, + method?: string, + mode?: ModeType, + redirect?: RedirectType, + referrer?: string, + referrerPolicy?: ReferrerPolicyType, + signal?: ?AbortSignal, + window?: any, + ... +} + +type ResponseOptions = { + status?: number, + statusText?: string, + headers?: HeadersInit, + ... +} + +declare class Response { + constructor(input?: ?BodyInit, init?: ResponseOptions): void; + clone(): Response; + static error(): Response; + static redirect(url: string, status?: number): Response; + + redirected: boolean; + type: ResponseType; + url: string; + ok: boolean; + status: number; + statusText: string; + headers: Headers; + trailer: Promise; + + // Body methods and attributes + bodyUsed: boolean; + body: ?ReadableStream, + + arrayBuffer(): Promise; + blob(): Promise; + formData(): Promise; + json(): Promise; + text(): Promise; +} + +declare class Request { + constructor(input: RequestInfo, init?: RequestOptions): void; + clone(): Request; + + url: string; + + cache: CacheType; + credentials: CredentialsType; + headers: Headers; + integrity: string; + method: string; + mode: ModeType; + redirect: RedirectType; + referrer: string; + referrerPolicy: ReferrerPolicyType; + +signal: AbortSignal; + + // Body methods and attributes + bodyUsed: boolean; + + arrayBuffer(): Promise; + blob(): Promise; + formData(): Promise; + json(): Promise; + text(): Promise; +} + +declare class AbortController { + constructor(): void; + +signal: AbortSignal; + abort(reason?: any): void; +} + +declare class AbortSignal extends EventTarget { + +aborted: boolean; + +reason: any; + abort(reason?: any): AbortSignal; + onabort: (event: Event) => mixed; + throwIfAborted(): void; + timeout(time: number): AbortSignal; +} + +declare function fetch(input: RequestInfo, init?: RequestOptions): Promise; + + +type TextEncoder$availableEncodings = 'utf-8' | 'utf8' | 'unicode-1-1-utf-8' | 'utf-16be' | 'utf-16' | 'utf-16le'; + +declare class TextEncoder { + constructor(encoding?: TextEncoder$availableEncodings): void; + encode(buffer: string, options?: { stream: boolean, ... }): Uint8Array; + encoding: TextEncoder$availableEncodings; +} + +type TextDecoder$availableEncodings = + | '866' + | 'ansi_x3.4-1968' + | 'arabic' + | 'ascii' + | 'asmo-708' + | 'big5-hkscs' + | 'big5' + | 'chinese' + | 'cn-big5' + | 'cp1250' + | 'cp1251' + | 'cp1252' + | 'cp1253' + | 'cp1254' + | 'cp1255' + | 'cp1256' + | 'cp1257' + | 'cp1258' + | 'cp819' + | 'cp866' + | 'csbig5' + | 'cseuckr' + | 'cseucpkdfmtjapanese' + | 'csgb2312' + | 'csibm866' + | 'csiso2022jp' + | 'csiso2022kr' + | 'csiso58gb231280' + | 'csiso88596e' + | 'csiso88596i' + | 'csiso88598e' + | 'csiso88598i' + | 'csisolatin1' + | 'csisolatin2' + | 'csisolatin3' + | 'csisolatin4' + | 'csisolatin5' + | 'csisolatin6' + | 'csisolatin9' + | 'csisolatinarabic' + | 'csisolatincyrillic' + | 'csisolatingreek' + | 'csisolatinhebrew' + | 'cskoi8r' + | 'csksc56011987' + | 'csmacintosh' + | 'csshiftjis' + | 'cyrillic' + | 'dos-874' + | 'ecma-114' + | 'ecma-118' + | 'elot_928' + | 'euc-jp' + | 'euc-kr' + | 'gb_2312-80' + | 'gb_2312' + | 'gb18030' + | 'gb2312' + | 'gbk' + | 'greek' + | 'greek8' + | 'hebrew' + | 'hz-gb-2312' + | 'ibm819' + | 'ibm866' + | 'iso_8859-1:1987' + | 'iso_8859-1' + | 'iso_8859-2:1987' + | 'iso_8859-2' + | 'iso_8859-3:1988' + | 'iso_8859-3' + | 'iso_8859-4:1988' + | 'iso_8859-4' + | 'iso_8859-5:1988' + | 'iso_8859-5' + | 'iso_8859-6:1987' + | 'iso_8859-6' + | 'iso_8859-7:1987' + | 'iso_8859-7' + | 'iso_8859-8:1988' + | 'iso_8859-8' + | 'iso_8859-9:1989' + | 'iso_8859-9' + | 'iso-2022-cn-ext' + | 'iso-2022-cn' + | 'iso-2022-jp' + | 'iso-2022-kr' + | 'iso-8859-1' + | 'iso-8859-10' + | 'iso-8859-11' + | 'iso-8859-13' + | 'iso-8859-14' + | 'iso-8859-15' + | 'iso-8859-16' + | 'iso-8859-2' + | 'iso-8859-3' + | 'iso-8859-4' + | 'iso-8859-5' + | 'iso-8859-6-e' + | 'iso-8859-6-i' + | 'iso-8859-6' + | 'iso-8859-7' + | 'iso-8859-8-e' + | 'iso-8859-8-i' + | 'iso-8859-8' + | 'iso-8859-9' + | 'iso-ir-100' + | 'iso-ir-101' + | 'iso-ir-109' + | 'iso-ir-110' + | 'iso-ir-126' + | 'iso-ir-127' + | 'iso-ir-138' + | 'iso-ir-144' + | 'iso-ir-148' + | 'iso-ir-149' + | 'iso-ir-157' + | 'iso-ir-58' + | 'iso8859-1' + | 'iso8859-10' + | 'iso8859-11' + | 'iso8859-13' + | 'iso8859-14' + | 'iso8859-15' + | 'iso8859-2' + | 'iso8859-3' + | 'iso8859-4' + | 'iso8859-6' + | 'iso8859-7' + | 'iso8859-8' + | 'iso8859-9' + | 'iso88591' + | 'iso885910' + | 'iso885911' + | 'iso885913' + | 'iso885914' + | 'iso885915' + | 'iso88592' + | 'iso88593' + | 'iso88594' + | 'iso88595' + | 'iso88596' + | 'iso88597' + | 'iso88598' + | 'iso88599' + | 'koi' + | 'koi8_r' + | 'koi8-r' + | 'koi8-u' + | 'koi8' + | 'korean' + | 'ks_c_5601-1987' + | 'ks_c_5601-1989' + | 'ksc_5601' + | 'ksc5601' + | 'l1' + | 'l2' + | 'l3' + | 'l4' + | 'l5' + | 'l6' + | 'l9' + | 'latin1' + | 'latin2' + | 'latin3' + | 'latin4' + | 'latin5' + | 'latin6' + | 'latin9' + | 'logical' + | 'mac' + | 'macintosh' + | 'ms_kanji' + | 'shift_jis' + | 'shift-jis' + | 'sjis' + | 'sun_eu_greek' + | 'tis-620' + | 'unicode-1-1-utf-8' + | 'us-ascii' + | 'utf-16' + | 'utf-16be' + | 'utf-16le' + | 'utf-8' + | 'utf8' + | 'visual' + | 'windows-1250' + | 'windows-1251' + | 'windows-1252' + | 'windows-1253' + | 'windows-1254' + | 'windows-1255' + | 'windows-1256' + | 'windows-1257' + | 'windows-1258' + | 'windows-31j' + | 'windows-874' + | 'windows-949' + | 'x-cp1250' + | 'x-cp1251' + | 'x-cp1252' + | 'x-cp1253' + | 'x-cp1254' + | 'x-cp1255' + | 'x-cp1256' + | 'x-cp1257' + | 'x-cp1258' + | 'x-euc-jp' + | 'x-gbk' + | 'x-mac-cyrillic' + | 'x-mac-roman' + | 'x-mac-ukrainian' + | 'x-sjis' + | 'x-user-defined' + | 'x-x-big5'; + + +declare class TextDecoder { + constructor(encoding?: TextDecoder$availableEncodings, options?: { fatal: boolean, ... }): void; + encoding: TextDecoder$availableEncodings; + fatal: boolean; + ignoreBOM: boolean; + decode(buffer?: ArrayBuffer | $ArrayBufferView, options?: { stream: boolean, ... }): string; +} + +declare class MessagePort extends EventTarget { + postMessage(message: any, transfer?: Iterable): void; + start(): void; + close(): void; + + onmessage: null | (ev: MessageEvent) => mixed; + onmessageerror: null | (ev: MessageEvent) => mixed; +} + +declare class MessageChannel { + port1: MessagePort; + port2: MessagePort; +} + +declare class VRDisplay extends EventTarget { + capabilities: VRDisplayCapabilities; + depthFar: number; + depthNear: number; + displayId: number; + displayName: string; + isPresenting: boolean; + stageParameters: null | VRStageParameters; + + cancelAnimationFrame(number): void; + exitPresent(): Promise; + getEyeParameters(VREye): VREyeParameters; + getFrameData(VRFrameData): boolean; + getLayers(): VRLayerInit[]; + requestAnimationFrame(cb: (number) => mixed): number; + requestPresent(VRLayerInit[]): Promise; + submitFrame(): void; +} + +type VRSource = HTMLCanvasElement; + +type VRLayerInit = { + leftBounds?: number[], + rightBounds?: number[], + source?: null | VRSource, + ... +}; + +type VRDisplayCapabilities = { + canPresent: boolean, + hasExternalDisplay: boolean, + hasPosition: boolean, + maxLayers: number, + ... +}; + +type VREye = 'left' | 'right'; + +type VRPose = { + angularAcceleration?: Float32Array, + angularVelocity?: Float32Array, + linearAcceleration?: Float32Array, + linearVelocity?: Float32Array, + orientation?: Float32Array, + position?: Float32Array, + ... +}; + +declare class VRFrameData { + leftProjectionMatrix: Float32Array; + leftViewMatrix: Float32Array; + pose: VRPose; + rightProjectionMatrix: Float32Array; + rightViewMatrix: Float32Array; + timestamp: number; +} + +type VREyeParameters = { + offset: Float32Array, + renderWidth: number, + renderHeight: number, + ... +}; + +type VRStageParameters = { + sittingToStandingTransform: Float32Array, + sizeX: number, + sizeZ: number, + ... +}; + +type VRDisplayEventReason = 'mounted' | 'navigation' | 'requested' | 'unmounted'; + +type VRDisplayEventInit = { + display: VRDisplay, + reason: VRDisplayEventReason, + ... +}; + +declare class VRDisplayEvent extends Event { + constructor(type: string, eventInitDict: VRDisplayEventInit): void; + display: VRDisplay; + reason?: VRDisplayEventReason; +} + +declare class MediaQueryListEvent { + matches: boolean; + media: string; +} + +declare type MediaQueryListListener = MediaQueryListEvent => void; + +declare class MediaQueryList extends EventTarget { + matches: boolean; + media: string; + addListener: MediaQueryListListener => void; + removeListener: MediaQueryListListener => void; + onchange: MediaQueryListListener; +} + +declare var matchMedia: string => MediaQueryList; + +// https://w3c.github.io/webappsec-credential-management/#idl-index +declare type CredMgmtCredentialRequestOptions = { + mediation: 'silent' | 'optional' | 'required', + signal: AbortSignal, + ... +} + +declare type CredMgmtCredentialCreationOptions = { signal: AbortSignal, ... } + +declare interface CredMgmtCredential { + id: string; + type: string; +} + +declare interface CredMgmtPasswordCredential extends CredMgmtCredential { + password: string; +} + +declare interface CredMgmtCredentialsContainer { + get(option?: CredMgmtCredentialRequestOptions): Promise; + store(credential: CredMgmtCredential): Promise; + create( + creationOption?: CredMgmtCredentialCreationOptions, + ): Promise; + preventSilentAccess(): Promise; +} + +type SpeechSynthesisErrorCode = + | "canceled" + | "interrupted" + | "audio-busy" + | "audio-hardware" + | "network" + | "synthesis-unavailable" + | "synthesis-failed" + | "language-unavailable" + | "voice-unavailable" + | "text-too-long" + | "invalid-argument" + | "not-allowed"; + +declare class SpeechSynthesis extends EventTarget { + +pending: boolean; + +speaking: boolean; + +paused: boolean; + + onvoiceschanged: ?((ev: Event) => mixed); + + speak(utterance: SpeechSynthesisUtterance): void; + cancel(): void; + pause(): void; + resume(): void; + getVoices(): Array; +} + +declare var speechSynthesis: SpeechSynthesis; + +declare class SpeechSynthesisUtterance extends EventTarget { + constructor(text?: string): void; + + text: string; + lang: string; + voice: SpeechSynthesisVoice | null; + volume: number; + rate: number; + pitch: number; + + onstart: ?((ev: SpeechSynthesisEvent) => mixed); + onend: ?((ev: SpeechSynthesisEvent) => mixed); + onerror: ?((ev: SpeechSynthesisErrorEvent) => mixed); + onpause: ?((ev: SpeechSynthesisEvent) => mixed); + onresume: ?((ev: SpeechSynthesisEvent) => mixed); + onmark: ?((ev: SpeechSynthesisEvent) => mixed); + onboundary: ?((ev: SpeechSynthesisEvent) => mixed); +} + +type SpeechSynthesisEvent$Init = Event$Init & { + utterance: SpeechSynthesisUtterance; + charIndex?: number; + charLength?: number; + elapsedTime?: number; + name?: string; + ... +} + +declare class SpeechSynthesisEvent extends Event { + constructor(type: string, eventInitDict?: SpeechSynthesisEvent$Init): void; + + +utterance: SpeechSynthesisUtterance; + charIndex: number; + charLength: number; + elapsedTime: number; + name: string; +} + +type SpeechSynthesisErrorEvent$Init = SpeechSynthesisEvent$Init & { + error: SpeechSynthesisErrorCode; + ... +} + +declare class SpeechSynthesisErrorEvent extends SpeechSynthesisEvent { + constructor(type: string, eventInitDict?: SpeechSynthesisErrorEvent$Init): void; + +error: SpeechSynthesisErrorCode; +} + +declare class SpeechSynthesisVoice { + +voiceURI: string; + +name: string; + +lang: string; + +localService: boolean; + +default: boolean; +} + +type SpeechRecognitionErrorCode = + | "no-speech" + | "aborted" + | "audio-capture" + | "not-allowed" + | "service-not-allowed" + | "bad-grammar" + | "language-not-supported"; + +declare class SpeechGrammar { + constructor(): void; + + src: string; + weight?: number; +} + +declare class SpeechGrammarList { + +length: number; + + item(index: number): SpeechGrammar; + addFromURI(src: string, weight?: number): void; + addFromString(string: string, weight?: number): void; +} + +declare class SpeechRecognitionAlternative { + +transcript: string; + +confidence: number; +} + +declare class SpeechRecognitionResult { + +isFinal: boolean; + +length: number; + + item(index: number): SpeechRecognitionAlternative; +} + +declare class SpeechRecognitionResultList { + +length: number; + + item(index: number): SpeechRecognitionResult; +} + +type SpeechRecognitionEvent$Init = Event$Init & { + emma: any; + interpretation: any; + resultIndex: number; + results: SpeechRecognitionResultList; + ... +} + +declare class SpeechRecognitionEvent extends Event { + constructor(type: string, eventInitDict?: SpeechRecognitionEvent$Init): void; + + +emma: any; + +interpretation: any; + +resultIndex: number; + +results: SpeechRecognitionResultList; +} + +type SpeechRecognitionErrorEvent$Init = SpeechRecognitionEvent$Init & { + error: SpeechRecognitionErrorCode; + ... +} + +declare class SpeechRecognitionErrorEvent extends SpeechRecognitionEvent { + constructor(type: string, eventInitDict?: SpeechRecognitionErrorEvent$Init): void; + +error: SpeechRecognitionErrorCode; + +message: string; +} + +declare class SpeechRecognition extends EventTarget { + constructor(): void; + + +grammars: SpeechGrammar[]; + +lang: string; + +continuous: boolean; + +interimResults: boolean; + +maxAlternatives: number; + +serviceURI: string; + + onaudiostart: ?((ev: Event) => mixed); + onaudioend: ?((ev: Event) => mixed); + onend: ?((ev: Event) => mixed); + onerror: ?((ev: Event) => mixed); + onnomatch: ?((ev: Event) => mixed); + onsoundstart: ?((ev: Event) => mixed); + onsoundend: ?((ev: Event) => mixed); + onspeechstart: ?((ev: Event) => mixed); + onspeechend: ?((ev: Event) => mixed); + onstart: ?((ev: Event) => mixed); + + abort(): void; + start(): void; + stop(): void; +} + +/* Trusted Types + * https://w3c.github.io/trusted-types/dist/spec/#trusted-types + */ +declare class TrustedHTML { + toString(): string; + toJSON(): string; +} + +declare class TrustedScript { + toString(): string; + toJSON(): string; +} + +declare class TrustedScriptURL { + toString(): string; + toJSON(): string; +} + +declare class TrustedTypePolicy { + +name: string; + createHTML(input: string, ...args: Array): TrustedHTML; + createScript(input: string, ...args: Array): TrustedScript; + createScriptURL(input: string, ...args: Array): TrustedScriptURL; +} + +declare type TrustedTypePolicyOptions = {| + createHTML?: (string, ...args: Array) => string; + createScript?: (string, ...args: Array) => string; + createScriptURL?: (string, ...args: Array) => string; +|} + +// window.trustedTypes?: TrustedTypePolicyFactory +declare class TrustedTypePolicyFactory { + +emptyHTML: TrustedHTML; + +emptyScript: TrustedScript; + +defaultPolicy: ?TrustedTypePolicy; + +isHTML: (value: mixed) => value is TrustedHTML; + +isScript: (value: mixed) => value is TrustedScript; + +isScriptURL: (value: mixed) => value is TrustedScriptURL; + createPolicy(policyName: string, policyOptions?: TrustedTypePolicyOptions): TrustedTypePolicy; + getAttributeType(tagName: string, attribute?: string, elementNS?: string, attrNS?: string): null | string; + getPropertyType(tagName: string, property: string, elementNS?: string): null | string; +} + +// https://wicg.github.io/webusb/ +// https://developer.mozilla.org/en-US/docs/Web/API/USBDevice +declare class USBDevice { + configuration: USBConfiguration; + configurations: Array; + deviceClass: number; + deviceProtocol: number; + deviceSubclass: number; + deviceVersionMajor: number; + deviceVersionMinor: number; + deviceVersionSubminor: number; + manufacturerName: ?string; + opened: boolean; + productId: number; + productName: ?string; + serialNumber: ?string; + usbVersionMajor: number; + usbVersionMinor: number; + usbVersionSubminor: number; + vendorId: number; + claimInterface(interfaceNumber: number): Promise; + clearHalt(direction: 'in' | 'out', endpointNumber: number): Promise; + close(): Promise; + controlTransferIn(setup: SetUpOptions, length: number): Promise; + controlTransferOut(setup: SetUpOptions, data: ArrayBuffer): Promise; + forget(): Promise; + isochronousTransferIn(endpointNumber: number, packetLengths: Array): Promise; + isochronousTransferOut(endpointNumber: number, data: ArrayBuffer, packetLengths: Array): Promise; + open(): Promise; + releaseInterface(interfaceNumber: number): Promise; + reset(): Promise; + selectAlternateInterface(interfaceNumber: number, alternateSetting: number): Promise; + selectConfiguration(configurationValue: number): Promise; + transferIn(endpointNumber: number, length: number): Promise; + transferOut(endpointNumber: number, data: ArrayBuffer): Promise; +} + +declare class USB extends EventTarget { + getDevices(): Promise>; + requestDevice(options: USBDeviceRequestOptions): Promise; +} + +declare type USBDeviceFilter = {| + vendorId?: number; + productId?: number; + classCode?: number; + subclassCode?: number; + protocolCode?: number; + serialNumber?: string; +|}; + +declare type USBDeviceRequestOptions = {| + filters: Array; + exclusionFilters?: Array; +|} + +declare class USBConfiguration { + constructor(): void; + configurationName: ?string; + configurationValue: number; + interfaces: $ReadOnlyArray; + +} + +declare class USBInterface { + constructor(): void; + interfaceNumber: number; + alternate: USBAlternateInterface; + alternates: Array; + claimed: boolean; +} + +declare class USBAlternateInterface { + constructor(): void; + alternateSetting: number; + interfaceClass: number; + interfaceSubclass: number; + interfaceProtocol: number; + interfaceName: ?string; + endpoints : Array; +} + +declare class USBEndpoint { + constructor(): void; + endpointNumber: number; + direction: 'in' | 'out'; + type:'bulk' | 'interrupt' | 'isochronous'; + packetSize: number; +} + +declare class USBOutTransferResult { + constructor(): void; + bytesWritten: number; + status: 'ok' | 'stall'; +} + +declare class USBInTransferResult { + constructor(): void; + data: DataView; + status: 'ok' |'stall' | 'babble'; +} + +declare class USBIsochronousInTransferResult { + constructor(): void; + data: DataView; + packets: Array; +} + +declare class USBIsochronousInTransferPacket { + constructor(): void; + data: DataView; + status: 'ok' |'stall' | 'babble'; +} + +declare class USBIsochronousOutTransferResult { + constructor(): void; + packets: Array +} + +declare class USBIsochronousOutTransferPacket { + constructor(): void; + bytesWritten: number; + status: 'ok' | 'stall'; +} + +type SetUpOptions = { + requestType: string; + recipient: string; + request: number; + value: number; + index: number; + ... +} diff --git a/flow/master/flowlib/core.js b/flow/master/flowlib/core.js new file mode 100644 index 00000000000..a9f229fe891 --- /dev/null +++ b/flow/master/flowlib/core.js @@ -0,0 +1,2811 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * Copyright (c) Microsoft Corporation. All rights reserved. + * Modifications Copyright (c) Meta Platforms, Inc. and affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use + * this file except in compliance with the License. You may obtain a copy of the + * License at http://www.apache.org/licenses/LICENSE-2.0 + * THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + * WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + * MERCHANTABLITY OR NON-INFRINGEMENT. + * See the Apache Version 2.0 License for specific language governing permissions + * and limitations under the License. + * + * @flow + */ +// @lint-ignore-every LICENSELINT + +declare var NaN: number; +declare var Infinity: number; +declare var undefined: void; + +/** + * Converts a string to an integer. + * @param string A string to convert into a number. + * @param radix A value between 2 and 36 that specifies the base of the number in numString. + * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal. + * All other strings are considered decimal. + */ +declare function parseInt(string: mixed, radix?: number): number; +/** + * Converts a string to a floating-point number. + * @param string A string that contains a floating-point number. + */ +declare function parseFloat(string: mixed): number; + +/** + * Returns a boolean value that indicates whether a value is the reserved value NaN (not a number). + * @param number A numeric value. + */ +declare function isNaN(number: mixed): boolean; +/** + * Determines whether a supplied number is finite. + * @param number Any numeric value. + */ +declare function isFinite(number: mixed): boolean; +/** + * Gets the unencoded version of an encoded Uniform Resource Identifier (URI). + * @param encodedURI A value representing an encoded URI. + */ +declare function decodeURI(encodedURI: string): string; +/** + * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI). + * @param encodedURIComponent A value representing an encoded URI component. + */ +declare function decodeURIComponent(encodedURIComponent: string): string; +/** + * Encodes a text string as a valid Uniform Resource Identifier (URI) + * @param uri A value representing an encoded URI. + */ +declare function encodeURI(uri: string): string; +/** + * Encodes a text string as a valid component of a Uniform Resource Identifier (URI). + * @param uriComponent A value representing an encoded URI component. + */ +declare function encodeURIComponent(uriComponent: string): string; + +type PropertyDescriptor = { + enumerable?: boolean, + configurable?: boolean, + writable?: boolean, + value?: T, + get?: () => T, + set?: (value: T) => void, + ... +}; + +type PropertyDescriptorMap = { [s: string]: PropertyDescriptor, ... } + +type $NotNullOrVoid = +| number +| string +| boolean +| interface {} +| $ReadOnlyArray +| symbol +| bigint + +declare class Object { + static (o: ?void): { [key: any]: any, ... }; + static (o: boolean): Boolean; + static (o: number): Number; + static (o: string): String; + static (o: T): T; + /** + * Copy the values of all of the enumerable own properties from one or more source objects to a + * target object. Returns the target object. + * @param target The target object to copy to. + * @param sources The source object from which to copy properties. + */ + static assign: Object$Assign; + /** + * Creates an object that has the specified prototype, and that optionally contains specified properties. + * @param o Object to use as a prototype. May be null + * @param properties JavaScript object that contains one or more property descriptors. + */ + static create(o: any, properties?: PropertyDescriptorMap): any; // compiler magic + /** + * Adds one or more properties to an object, and/or modifies attributes of existing properties. + * @param o Object on which to add or modify the properties. This can be a native JavaScript object or a DOM object. + * @param properties JavaScript object that contains one or more descriptor objects. Each descriptor object describes a data property or an accessor property. + */ + static defineProperties(o: any, properties: PropertyDescriptorMap): any; + /** + * Adds a property to an object, or modifies attributes of an existing property. + * @param o Object on which to add or modify the property. This can be a native JavaScript object (that is, a user-defined object or a built in object) or a DOM object. + * @param p The property name. + * @param attributes Descriptor for the property. It can be for a data property or an accessor property. + */ + static defineProperty(o: any, p: any, attributes: PropertyDescriptor): any; + /** + * Returns an array of key/values of the enumerable properties of an object + * @param object Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object. + */ + static entries(object: interface {}): Array<[string, mixed]>; + /** + * Prevents the modification of existing property attributes and values, and prevents the addition of new properties. + * @param o Object on which to lock the attributes. + */ + static freeze(o: T): T; + /** + * Returns an object created by key-value entries for properties and methods + * @param entries An iterable object that contains key-value entries for properties and methods. + */ + static fromEntries(entries: Iterable<[K, V] | { + '0': K, + '1': V, + ... + }>): { [K]: V, ... }; + + /** + * Gets the own property descriptor of the specified object. + * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype. + * @param o Object that contains the property. + * @param p Name of the property. + */ + static getOwnPropertyDescriptor(o: $NotNullOrVoid, p: any): PropertyDescriptor | void; + /** + * Gets the own property descriptors of the specified object. + * An own property descriptor is one that is defined directly on the object and is not inherited from the object's prototype. + * @param o Object that contains the properties. + */ + static getOwnPropertyDescriptors(o: {...}): PropertyDescriptorMap; + // This is documentation only. Object.getOwnPropertyNames is implemented in OCaml code + // https://github.com/facebook/flow/blob/8ac01bc604a6827e6ee9a71b197bb974f8080049/src/typing/statement.ml#L6308 + /** + * Returns the names of the own properties of an object. The own properties of an object are those that are defined directly + * on that object, and are not inherited from the object's prototype. The properties of an object include both fields (objects) and functions. + * @param o Object that contains the own properties. + */ + static getOwnPropertyNames(o: $NotNullOrVoid): Array; + /** + * Returns an array of all symbol properties found directly on object o. + * @param o Object to retrieve the symbols from. + */ + static getOwnPropertySymbols(o: $NotNullOrVoid): Array; + /** + * Returns the prototype of an object. + * @param o The object that references the prototype. + */ + static getPrototypeOf: Object$GetPrototypeOf; + /** + * Returns true if the specified object has the indicated property as its own property. + * If the property is inherited, or does not exist, the method returns false. + * @param obj The JavaScript object instance to test. + * @param prop The String name or Symbol of the property to test. + */ + static hasOwn(obj: $NotNullOrVoid, prop: mixed): boolean; + /** + * Returns true if the values are the same value, false otherwise. + * @param a The first value. + * @param b The second value. + */ + static is(a: T, b: T): boolean; + /** + * Returns a value that indicates whether new properties can be added to an object. + * @param o Object to test. + */ + static isExtensible(o: $NotNullOrVoid): boolean; + /** + * Returns true if existing property attributes and values cannot be modified in an object, and new properties cannot be added to the object. + * @param o Object to test. + */ + static isFrozen(o: $NotNullOrVoid): boolean; + static isSealed(o: $NotNullOrVoid): boolean; + // This is documentation only. Object.keys is implemented in OCaml code. + // https://github.com/facebook/flow/blob/8ac01bc604a6827e6ee9a71b197bb974f8080049/src/typing/statement.ml#L6308 + /** + * Returns the names of the enumerable string properties and methods of an object. + * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object. + */ + static keys(o: interface {}): Array; + /** + * Prevents the addition of new properties to an object. + * @param o Object to make non-extensible. + */ + static preventExtensions(o: T): T; + /** + * Prevents the modification of attributes of existing properties, and prevents the addition of new properties. + * @param o Object on which to lock the attributes. + */ + static seal(o: T): T; + /** + * Sets the prototype of a specified object o to object proto or null. Returns the object o. + * @param o The object to change its prototype. + * @param proto The value of the new prototype or null. + */ + static setPrototypeOf(o: T, proto: ?{...}): T; + /** + * Returns an array of values of the enumerable properties of an object + * @param object Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object. + */ + static values(object: interface {}): Array; + /** + * Determines whether an object has a property with the specified name. + * @param prop A property name. + */ + hasOwnProperty(prop: mixed): boolean; + /** + * Determines whether an object exists in another object's prototype chain. + * @param o Another object whose prototype chain is to be checked. + */ + isPrototypeOf(o: mixed): boolean; + /** + * Determines whether a specified property is enumerable. + * @param prop A property name. + */ + propertyIsEnumerable(prop: mixed): boolean; + /** Returns a date converted to a string using the current locale. */ + toLocaleString(): string; + /** Returns a string representation of an object. */ + toString(): string; + /** Returns the primitive value of the specified object. */ + valueOf(): mixed; +} + +// Well known Symbols. +declare opaque type $SymbolHasInstance: symbol; +declare opaque type $SymboIsConcatSpreadable: symbol; +declare opaque type $SymbolIterator: symbol; +declare opaque type $SymbolMatch: symbol; +declare opaque type $SymbolMatchAll: symbol; +declare opaque type $SymbolReplace: symbol; +declare opaque type $SymbolSearch: symbol; +declare opaque type $SymbolSpecies: symbol; +declare opaque type $SymbolSplit: symbol; +declare opaque type $SymbolToPrimitive: symbol; +declare opaque type $SymbolToStringTag: symbol; +declare opaque type $SymbolUnscopables: symbol; + +declare class Symbol { + /** + * Returns a new unique Symbol value. + * @param value Description of the new Symbol object. + */ + static (value?: mixed): symbol; + /** + * A method that returns the default async iterator for an object. Called by the semantics of + * the for-await-of statement. + */ + static +asyncIterator: '@@asyncIterator'; // polyfill '@@asyncIterator' + /** + * Returns a Symbol object from the global symbol registry matching the given key if found. + * Otherwise, returns a new symbol with this key. + * @param key key to search for. + */ + static for(key: string): symbol; + /** + * Expose the [[Description]] internal slot of a symbol directly. + */ + +description: string | void; + /** + * A method that determines if a constructor object recognizes an object as one of the + * constructor's instances. Called by the semantics of the instanceof operator. + */ + static +hasInstance: $SymbolHasInstance; + /** + * A Boolean value that if true indicates that an object should flatten to its array elements + * by Array.prototype.concat. + */ + static +isConcatSpreadable: $SymboIsConcatSpreadable; + /** + * A method that returns the default iterator for an object. Called by the semantics of the + * for-of statement. + */ + static +iterator: '@@iterator'; // polyfill '@@iterator' + /** + * Returns a key from the global symbol registry matching the given Symbol if found. + * Otherwise, returns a undefined. + * @param sym Symbol to find the key for. + */ + static keyFor(sym: symbol): ?string; + static +length: 0; + /** + * A regular expression method that matches the regular expression against a string. Called + * by the String.prototype.match method. + */ + static +match: $SymbolMatch; + /** + * A regular expression method that matches the regular expression against a string. Called + * by the String.prototype.matchAll method. + */ + static +matchAll: $SymbolMatchAll; + /** + * A regular expression method that replaces matched substrings of a string. Called by the + * String.prototype.replace method. + */ + static +replace: $SymbolReplace; + /** + * A regular expression method that returns the index within a string that matches the + * regular expression. Called by the String.prototype.search method. + */ + static +search: $SymbolSearch; + /** + * A function valued property that is the constructor function that is used to create + * derived objects. + */ + static +species: $SymbolSpecies; + /** + * A regular expression method that splits a string at the indices that match the regular + * expression. Called by the String.prototype.split method. + */ + static +split: $SymbolSplit; + /** + * A method that converts an object to a corresponding primitive value. + * Called by the ToPrimitive abstract operation. + */ + static +toPrimitive: $SymbolToPrimitive; + /** + * A String value that is used in the creation of the default string description of an object. + * Called by the built-in method Object.prototype.toString. + */ + static +toStringTag: $SymbolToStringTag; + /** + * An Object whose own property names are property names that are excluded from the 'with' + * environment bindings of the associated objects. + */ + static +unscopables: $SymbolUnscopables; + toString(): string; + valueOf(): ?symbol; +} + +// TODO: instance, static +declare class Function { + proto apply: Function$Prototype$Apply; // (thisArg: any, argArray?: any) => any + proto bind: Function$Prototype$Bind; // (thisArg: any, ...argArray: Array) => any; + proto call: Function$Prototype$Call; // (thisArg: any, ...argArray: Array) => any + /** Returns a string representation of a function. */ + toString(): string; + arguments: any; + caller: any | null; + +length: number; + /** + * Returns the name of the function. + */ + +name: string; +} + +declare class Boolean { + constructor(value?: mixed): void; + static (value:mixed):boolean; + /** Returns the primitive value of the specified object. */ + valueOf(): boolean; + toString(): string; +} + +/** An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers. */ +declare class Number { + /** + * The value of Number.EPSILON is the difference between 1 and the smallest value greater than 1 + * that is representable as a Number value, which is approximately: + * 2.2204460492503130808472633361816 x 10^-16. + */ + static EPSILON: number; + /** + * The value of the largest integer n such that n and n + 1 are both exactly representable as + * a Number value. + * The value of Number.MAX_SAFE_INTEGER is 9007199254740991 2^53 - 1. + */ + static MAX_SAFE_INTEGER: number; + /** The largest number that can be represented in JavaScript. Equal to approximately 1.79E+308. */ + static MAX_VALUE: number; + /** + * The value of the smallest integer n such that n and n - 1 are both exactly representable as + * a Number value. + * The value of Number.MIN_SAFE_INTEGER is -9007199254740991 (-(2^53 - 1)). + */ + static MIN_SAFE_INTEGER: number; + /** The closest number to zero that can be represented in JavaScript. Equal to approximately 5.00E-324. */ + static MIN_VALUE: number; + /** + * A value that is not a number. + * In equality comparisons, NaN does not equal any value, including itself. To test whether a value is equivalent to NaN, use the isNaN function. + */ + static NaN: number; + /** + * A value that is less than the largest negative number that can be represented in JavaScript. + * JavaScript displays NEGATIVE_INFINITY values as -infinity. + */ + static NEGATIVE_INFINITY: number; + /** + * A value greater than the largest number that can be represented in JavaScript. + * JavaScript displays POSITIVE_INFINITY values as infinity. + */ + static POSITIVE_INFINITY: number; + static (value:mixed):number; + /** + * Returns true if passed value is finite. + * Unlike the global isFinite, Number.isFinite doesn't forcibly convert the parameter to a + * number. Only finite values of the type number, result in true. + * @param value A numeric value. + */ + static isFinite(value: mixed): boolean; + /** + * Returns true if the value passed is an integer, false otherwise. + * @param value A numeric value. + */ + static isInteger(value: mixed): boolean; + /** + * Returns a Boolean value that indicates whether a value is the reserved value NaN (not a + * number). Unlike the global isNaN(), Number.isNaN() doesn't forcefully convert the parameter + * to a number. Only values of the type number, that are also NaN, result in true. + * @param value A numeric value. + */ + static isNaN(value: mixed): boolean; + /** + * Returns true if the value passed is a safe integer. + * @param value A numeric value. + */ + static isSafeInteger(value: mixed): boolean; + /** + * Converts a string to a floating-point number. + * @param value A string that contains a floating-point number. + */ + static parseFloat(value: string): number; + /** + * Converts A string to an integer. + * @param value A string to convert into a number. + * @param radix A value between 2 and 36 that specifies the base of the number in numString. + * If this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal. + * All other strings are considered decimal. + */ + static parseInt(value: string, radix?: number): number; + constructor(value?: mixed): void; + /** + * Returns a string containing a number represented in exponential notation. + * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive. + */ + toExponential(fractionDigits?: number): string; + /** + * Returns a string representing a number in fixed-point notation. + * @param fractionDigits Number of digits after the decimal point. Must be in the range 0 - 20, inclusive. + */ + toFixed(fractionDigits?: number): string; + /** + * Converts a number to a string by using the current or specified locale. + * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleString(locales?: string | Array, options?: Intl$NumberFormatOptions): string; + /** + * Returns a string containing a number represented either in exponential or fixed-point notation with a specified number of digits. + * @param precision Number of significant digits. Must be in the range 1 - 21, inclusive. + */ + toPrecision(precision?: number): string; + /** + * Returns a string representation of an object. + * @param radix Specifies a radix for converting numeric values to strings. This value is only used for numbers. + */ + toString(radix?: number): string; + /** Returns the primitive value of the specified object. */ + valueOf(): number; +} + +/** An intrinsic object that provides basic mathematics functionality and constants. */ +declare var Math: { + /** The mathematical constant e. This is Euler's number, the base of natural logarithms. */ + E: number, + /** The natural logarithm of 10. */ + LN10: number, + /** The natural logarithm of 2. */ + LN2: number, + /** The base-10 logarithm of e. */ + LOG10E: number, + /** The base-2 logarithm of e. */ + LOG2E: number, + /** Pi. This is the ratio of the circumference of a circle to its diameter. */ + PI: number, + /** The square root of 0.5, or, equivalently, one divided by the square root of 2. */ + SQRT1_2: number, + /** The square root of 2. */ + SQRT2: number, + /** + * Returns the absolute value of a number (the value without regard to whether it is positive or negative). + * For example, the absolute value of -5 is the same as the absolute value of 5. + * @param x A numeric expression for which the absolute value is needed. + */ + abs(x: number): number, + /** + * Returns the arc cosine (or inverse cosine) of a number. + * @param x A numeric expression. + */ + acos(x: number): number, + /** + * Returns the inverse hyperbolic cosine of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + acosh(x: number): number, + /** + * Returns the arcsine of a number. + * @param x A numeric expression. + */ + asin(x: number): number, + /** + * Returns the inverse hyperbolic sine of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + asinh(x: number): number, + /** + * Returns the arctangent of a number. + * @param x A numeric expression for which the arctangent is needed. + */ + atan(x: number): number, + /** + * Returns the angle (in radians) from the X axis to a point. + * @param y A numeric expression representing the cartesian y-coordinate. + * @param x A numeric expression representing the cartesian x-coordinate. + */ + atan2(y: number, x: number): number, + /** + * Returns the inverse hyperbolic tangent of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + atanh(x: number): number, + /** + * Returns an implementation-dependent approximation to the cube root of number. + * @param x A numeric expression. + */ + cbrt(x: number): number, + /** + * Returns the smallest integer greater than or equal to its numeric argument. + * @param x A numeric expression. + */ + ceil(x: number): number, + /** + * Returns the number of leading zero bits in the 32-bit binary representation of a number. + * @param x A numeric expression. + */ + clz32(x: number): number, + /** + * Returns the cosine of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + cos(x: number): number, + /** + * Returns the hyperbolic cosine of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + cosh(x: number): number, + /** + * Returns e (the base of natural logarithms) raised to a power. + * @param x A numeric expression representing the power of e. + */ + exp(x: number): number, + /** + * Returns the result of (e^x - 1), which is an implementation-dependent approximation to + * subtracting 1 from the exponential function of x (e raised to the power of x, where e + * is the base of the natural logarithms). + * @param x A numeric expression. + */ + expm1(x: number): number, + /** + * Returns the greatest integer less than or equal to its numeric argument. + * @param x A numeric expression. + */ + floor(x: number): number, + /** + * Returns the nearest single precision float representation of a number. + * @param x A numeric expression. + */ + fround(x: number): number, + /** + * Returns the square root of the sum of squares of its arguments. + * @param values Values to compute the square root for. + * If no arguments are passed, the result is +0. + * If there is only one argument, the result is the absolute value. + * If any argument is +Infinity or -Infinity, the result is +Infinity. + * If any argument is NaN, the result is NaN. + * If all arguments are either +0 or -0, the result is +0. + */ + hypot(...values: Array): number, + /** + * Returns the result of 32-bit multiplication of two numbers. + * @param x First number + * @param y Second number + */ + imul(x: number, y: number): number, + /** + * Returns the natural logarithm (base e) of a number. + * @param x A numeric expression. + */ + log(x: number): number, + /** + * Returns the base 10 logarithm of a number. + * @param x A numeric expression. + */ + log10(x: number): number, + /** + * Returns the natural logarithm of 1 + x. + * @param x A numeric expression. + */ + log1p(x: number): number, + /** + * Returns the base 2 logarithm of a number. + * @param x A numeric expression. + */ + log2(x: number): number, + /** + * Returns the larger of a set of supplied numeric expressions. + * @param values Numeric expressions to be evaluated. + */ + max(...values: Array): number, + /** + * Returns the smaller of a set of supplied numeric expressions. + * @param values Numeric expressions to be evaluated. + */ + min(...values: Array): number, + /** + * Returns the value of a base expression taken to a specified power. + * @param x The base value of the expression. + * @param y The exponent value of the expression. + */ + pow(x: number, y: number): number, + /** Returns a pseudorandom number between 0 and 1. */ + random(): number, + /** + * Returns a supplied numeric expression rounded to the nearest integer. + * @param x The value to be rounded to the nearest integer. + */ + round(x: number): number, + /** + * Returns the sign of the x, indicating whether x is positive, negative or zero. + * @param x The numeric expression to test + */ + sign(x: number): number, + /** + * Returns the sine of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + sin(x: number): number, + /** + * Returns the hyperbolic sine of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + sinh(x: number): number, + /** + * Returns the square root of a number. + * @param x A numeric expression. + */ + sqrt(x: number): number, + /** + * Returns the tangent of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + tan(x: number): number, + /** + * Returns the hyperbolic tangent of a number. + * @param x A numeric expression that contains an angle measured in radians. + */ + tanh(x: number): number, + /** + * Returns the integral part of the a numeric expression, x, removing any fractional digits. + * If x is already an integer, the result is x. + * @param x A numeric expression. + */ + trunc(x: number): number, + ... +}; + +/** + * A class of Array methods and properties that don't mutate the array. + */ +declare class $ReadOnlyArray<+T> { + @@iterator(): Iterator; + /** + * Returns a string representation of an array. The elements are converted to string using their toLocalString methods. + */ + toLocaleString(): string; + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired item. A negative index will count back from the last item. + */ + at(index: number): T | void; + // concat creates a new array + /** + * Combines two or more arrays. + * @param items Additional items to add to the end of array1. + */ + concat | S>(...items: Array): Array; + /** + * Returns an iterable of key, value pairs for every entry in the array + */ + entries(): Iterator<[number, T]>; + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callbackfn A function that accepts up to three arguments. The every method calls + * the predicate function for each element in the array until the predicate returns a value + * which is coercible to the Boolean value false, or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the predicate function. + * If thisArg is omitted, undefined is used as the this value. + */ + every(callbackfn: (this : This, value: T, index: number, array: $ReadOnlyArray) => mixed, thisArg: This): boolean; + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array. + */ + filter(callbackfn: typeof Boolean): Array<$NonMaybeType>; + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A predicate function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value. + * @returns An array whose type is specified by the predicate function passed as callbackfn. + * + * NOTE: type-guards are not enabled by default. + * As such, this overload will not be used by default in source files. Support for type guards can be enabled + * everywhere with the use of the `type_guards=true` flag. + */ + filter(callbackfn: (this: This, value: T, index: number, array: $ReadOnlyArray) => value is S, thisArg: This): Array; + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value. + */ + filter(callbackfn: (this : This, value: T, index: number, array: $ReadOnlyArray) => mixed, thisArg : This): Array; + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param callbackfn find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ + find(callbackfn: (this : This, value: T, index: number, array: $ReadOnlyArray) => mixed, thisArg: This): T | void; + /** + * Returns the index of the first element in the array where predicate is true, and -1 + * otherwise. + * @param callbackfn find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, + * findIndex immediately returns that element index. Otherwise, findIndex returns -1. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ + findIndex(callbackfn: (this : This, value: T, index: number, array: $ReadOnlyArray) => mixed, thisArg: This): number; + /** + * Returns the value of the last element in the array where predicate is true, and undefined + * otherwise. + * @param callbackfn find calls predicate once for each element of the array, in reverse + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ + findLast(callbackfn: (this : This, value: T, index: number, array: $ReadOnlyArray) => mixed, thisArg: This): T | void; + /** + * Returns the index of the last element in the array where predicate is true, and -1 + * otherwise. + * @param callbackfn find calls predicate once for each element of the array, in reverse + * order, until it finds one where predicate returns true. If such an element is found, + * findLastIndex immediately returns that element index. Otherwise, findLastIndex returns -1. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ + findLastIndex(callbackfn: (this : This, value: T, index: number, array: $ReadOnlyArray) => mixed, thisArg: This): number; + /** + * Performs the specified action for each element in an array. + * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value. + */ + forEach(callbackfn: (this : This, value: T, index: number, array: $ReadOnlyArray) => mixed, thisArg: This): void; + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: mixed, fromIndex?: number): boolean; + /** + * Returns the index of the first occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0. + */ + indexOf(searchElement: mixed, fromIndex?: number): number; + /** + * Adds all the elements of an array separated by the specified separator string. + * @param separator A string used to separate one element of an array from the next in the resulting String. If omitted, the array elements are separated with a comma. + */ + join(separator?: string): string; + /** + * Returns an iterable of keys in the array + */ + keys(): Iterator; + /** + * Returns the index of the last occurrence of a specified value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at the last index in the array. + */ + lastIndexOf(searchElement: mixed, fromIndex?: number): number; + /** + * Calls a defined callback function on each element of an array, and returns an array that contains the results. + * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value. + */ + map(callbackfn: (this : This, value: T, index: number, array: $ReadOnlyArray) => U, thisArg: This): Array; + /** + * Calls a defined callback function on each element of an array. Then, flattens the result into + * a new array. + * This is identical to a map followed by flat with depth 1. + * + * @param callbackfn A function that accepts up to three arguments. The flatMap method calls the + * callback function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callback function. If + * thisArg is omitted, undefined is used as the this value. + */ + flatMap(callbackfn: (this : This, value: T, index: number, array: $ReadOnlyArray) => $ReadOnlyArray | U, thisArg: This): Array; + /** + * Returns a new array with all sub-array elements concatenated into it recursively up to the + * specified depth. + * + * @param depth The maximum recursion depth + */ + flat(depth: 0): Array; + /** + * Returns a new array with all sub-array elements concatenated into it recursively up to the + * specified depth. + * + * @param depth The maximum recursion depth + */ + flat(depth: void | 1): Array ? E : T>; + /** + * Returns a new array with all sub-array elements concatenated into it recursively up to the + * specified depth. + * + * @param depth The maximum recursion depth + */ + flat(depth: number): Array; + /** + * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array. + */ + reduce( + callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: $ReadOnlyArray) => T, + ): T; + /** + * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value. + */ + reduce( + callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: $ReadOnlyArray) => U, + initialValue: U + ): U; + /** + * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array. + */ + reduceRight( + callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: $ReadOnlyArray) => T, + ): T; + /** + * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value. + */ + reduceRight( + callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: $ReadOnlyArray) => U, + initialValue: U + ): U; + /** + * Returns a section of an array. + * @param start The beginning of the specified portion of the array. + * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'. + */ + slice(start?: number, end?: number): Array; + /** + * Determines whether the specified callback function returns true for any element of an array. + * @param callbackfn A function that accepts up to three arguments. The some method calls + * the predicate function for each element in the array until the predicate returns a value + * which is coercible to the Boolean value true, or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the predicate function. + * If thisArg is omitted, undefined is used as the this value. + */ + some(callbackfn: (this : This, value: T, index: number, array: $ReadOnlyArray) => mixed, thisArg: This): boolean; + /** + * Returns a new array with the elements in reversed order. + * It is the copying counterpart of the reverse() method. + */ + toReversed(): Array; + /** + * Returns a new array with the elements sorted in ascending order. + * It is the copying counterpart of the sort() method. + * @param compareFn Specifies a function that defines the sort order. + * If omitted, the array elements are converted to strings, then sorted according + * to each character's Unicode code point value. + */ + toSorted(compareFn?: (a: T, b: T) => number): Array; + /** + * Returns a new array with some elements removed and/or replaced at a given index. + * It is the copying counterpart of the splice() method. + * @param start Zero-based index at which to start changing the array, converted to an integer. + * @param deleteCount An integer indicating the number of elements in the array to remove from start. + * @param items The elements to add to the array, beginning from start. + */ + toSpliced | S>(start: number, deleteCount?: number, ...items: Array): Array; + /** + * Returns an iterable of values in the array + */ + values(): Iterator; + /** + * Returns a new array with the element at the given index replaced with the given value. + * It is the copying version of using the bracket notation to change the value of a given index. + * @param index Zero-based index at which to change the array, converted to an integer. + * @param value Any value to be assigned to the given index. + */ + with(index: number, value: T): Array; + + +[key: number]: T; + /** + * Gets the length of the array. This is a number one higher than the highest element defined in an array. + */ + +length: number; +} + +declare class Array extends $ReadOnlyArray { + /** + * Returns a new JavaScript array with its length property set to that number. + * (Note: this implies an array of arrayLength empty slots, not slots with actual undefined + * values. See [sparse arrays](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Indexed_collections#sparse_arrays)). + */ + constructor(arrayLength?: number): void; + /** + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ + copyWithin(target: number, start: number, end?: number): T[]; + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callbackfn A function that accepts up to three arguments. The every method calls + * the predicate function for each element in the array until the predicate returns a value + * which is coercible to the Boolean value false, or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the predicate function. + * If thisArg is omitted, undefined is used as the this value. + */ + every(callbackfn: (this : This, value: T, index: number, array: Array) => mixed, thisArg: This): boolean; + /** + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param begin index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ + fill(value: T, begin?: number, end?: number): Array; + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array. + */ + filter(callbackfn: typeof Boolean): Array<$NonMaybeType>; + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A predicate function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value. + * @returns An array whose type is specified by the predicate function passed as callbackfn. + * + * NOTE: type-guards are not enabled by default. + * As such, this overload will not be used by default in source files. Support for type guards can be enabled + * everywhere with the use of the `type_guards=true` flag. + */ + filter(callbackfn: (this: This, value: T, index: number, array: $ReadOnlyArray) => value is S, thisArg: This): Array; + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callbackfn A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value. + */ + filter(callbackfn: (this : This, value: T, index: number, array: Array) => mixed, thisArg: This): Array; + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param callbackfn find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ + find(callbackfn: (this : This, value: T, index: number, array: Array) => mixed, thisArg: This): T | void; + /** + * Returns the index of the first element in the array where predicate is true, and -1 + * otherwise. + * @param callbackfn find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, + * findIndex immediately returns that element index. Otherwise, findIndex returns -1. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ + findIndex(callbackfn: (this : This, value: T, index: number, array: Array) => mixed, thisArg: This): number; + /** + * Performs the specified action for each element in an array. + * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value. + */ + forEach(callbackfn: (this : This, value: T, index: number, array: Array) => mixed, thisArg: This): void; + /** + * Calls a defined callback function on each element of an array, and returns an array that contains the results. + * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value. + */ + map(callbackfn: (this : This, value: T, index: number, array: Array) => U, thisArg: This): Array; + /** + * Calls a defined callback function on each element of an array. Then, flattens the result into + * a new array. + * This is identical to a map followed by flat with depth 1. + * + * @param callbackfn A function that accepts up to three arguments. The flatMap method calls the + * callback function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callback function. If + * thisArg is omitted, undefined is used as the this value. + */ + flatMap(callbackfn: (this : This, value: T, index: number, array: Array) => $ReadOnlyArray | U, thisArg: This): Array; + /** + * Removes the last element from an array and returns it. + */ + pop(): T; + /** + * Appends new elements to an array, and returns the new length of the array. + * @param items New elements of the Array. + */ + push(...items: Array): number; + /** + * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array. + */ + reduce( + callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: Array) => T, + ): T; + /** + * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value. + */ + reduce( + callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: Array) => U, + initialValue: U + ): U; + /** + * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array. + */ + reduceRight( + callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: Array) => T, + ): T; + /** + * Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function. + * @param callbackfn A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value. + */ + reduceRight( + callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: Array) => U, + initialValue: U + ): U; + /** + * Reverses the elements in an Array. + */ + reverse(): Array; + /** + * Removes the first element from an array and returns it. + */ + shift(): T; + some(callbackfn: (this : This, value: T, index: number, array: Array) => mixed, thisArg: This): boolean; + sort(compareFn?: (a: T, b: T) => number): Array; + splice(start: number, deleteCount?: number, ...items: Array): Array; + unshift(...items: Array): number; + + + [key: number]: T; + /** + * Gets or sets the length of the array. This is a number one higher than the highest element defined in an array. + */ + length: number; + static (...values:Array): Array; + static isArray(obj: mixed): boolean; + /** + * Creates an array from an iterable object. + * @param iter An iterable object to convert to an array. + * @param mapFn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ + static from(iter: Iterable, mapFn: (this : This, elem: A, index: number) => B, thisArg: This): Array; + /** + * Creates an array from an iterable object. + * @param iter An iterable object to convert to an array. + */ + static from(iter: Iterable): Array; + /** + * Creates an array from an iterable object. + * @param iter An iterable object to convert to an array. + * @param mapFn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ + static from(iter: Iterator, mapFn: (this : This, elem: A, index: number) => B, thisArg: This): Array; + /** + * Creates an array from an iterable object. + * @param iter An array-like object to convert to an array. + */ + static from(iter: Iterator): Array; + /** + * Creates an array from an array-like object. + * @param arrayLike An array-like object to convert to an array. + * @param mapFn A mapping function to call on every element of the array. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ + static from(arrayLike: interface { length: number }, mapFn: (this : This, elem: void, index: number) => A, thisArg: This): Array; + /** + * Creates an array from an array-like object. + * @param arrayLike An array-like object to convert to an array. + */ + static from(arrayLike: interface { length: number }): Array; + /** + * Creates an array from a string, by splitting it into its individual Unicode code points. + * @param str A string to convert into an Array. + * @param mapFn A mapping function to call on every element of the string. + * @param thisArg Value of 'this' used to invoke the mapfn. + */ + static from(str: string, mapFn: (this: This, elem: string, index: number) => A, thisArg: This): Array; + /** + * Creates an array from a string, by splitting it into its individual Unicode code points. + * @param str A string to convert into an Array. + */ + static from(str: string): Array; + /** + * Returns a new array from a set of elements. + * @param values A set of elements to include in the new array object. + */ + static of(...values: Array): Array; +} + +type $ArrayLike = interface { + +[indexer: number]: T; + @@iterator(): Iterator; + length: number; +} + +type RegExp$flags = $CharSet<"gimsuy">; +type RegExp$matchResult = Array & { + index: number, + input: string, + groups: ?{ [name: string]: string, ... }, + ... +}; + +interface TaggedTemplateLiteralArray extends $ReadOnlyArray { + +raw: $ReadOnlyArray; +} + +/** + * Allows manipulation and formatting of text strings and determination and location of substrings within strings. + */ +declare class String { + @@iterator(): Iterator; + /** + * Returns an `` HTML anchor element and sets the name attribute to the text value + * @param name + */ + anchor(name: string): string; + /** + * Returns a new String consisting of the single UTF-16 code unit located at + * the specified offset. This method allows for positive and negative integers. + * Negative integers count back from the last string character. + * @param index The index (position) of the string character to be returned. + * Supports relative indexing from the end of the string when passed a negative index; + * i.e. if a negative number is used, the character returned will be found by + * counting back from the end of the string. + * @return A String consisting of the single UTF-16 code unit located at the specified position. + * Returns undefined if the given index can not be found. + */ + at(index: number): string | void; + /** + * Returns the character at the specified index. + * @param pos The zero-based index of the desired character. + */ + charAt(pos: number): string; + /** + * Returns the Unicode value of the character at the specified location. + * @param index The zero-based index of the desired character. If there is no character at the specified index, NaN is returned. + */ + charCodeAt(index: number): number; + /** + * Returns a nonnegative integer Number less than 1114112 (0x110000) that is the code point + * value of the UTF-16 encoded code point starting at the string element at position index in + * the String resulting from converting this object to a String. + * If there is no element at that position, the result is undefined. + * If a valid UTF-16 surrogate pair does not begin at index, the result is the code unit at index. + */ + codePointAt(index: number): number; + /** + * Returns a string that contains the concatenation of two or more strings. + * @param strings The strings to append to the end of the string. + */ + concat(...strings: Array): string; + constructor(value?: mixed): void; + /** + * Returns true if the sequence of elements of searchString converted to a String is the + * same as the corresponding elements of this object (converted to a String) starting at + * position - length(this). Otherwise returns false. + */ + endsWith(searchString: string, position?: number): boolean; + /** + * Returns true if searchString appears as a substring of the result of converting this + * object to a String, at one or more positions that are + * greater than or equal to position; otherwise, returns false. + * @param searchString search string + * @param position If position is undefined, 0 is assumed, so as to search all of the String. + */ + includes(searchString: string, position?: number): boolean; + /** + * Returns the position of the first occurrence of a substring. + * @param searchString The substring to search for in the string + * @param position The index at which to begin searching the String object. If omitted, search starts at the beginning of the string. + */ + indexOf(searchString: string, position?: number): number; + /** + * Returns the last occurrence of a substring in the string. + * @param searchString The substring to search for. + * @param position The index at which to begin searching. If omitted, the search begins at the end of the string. + */ + lastIndexOf(searchString: string, position?: number): number; + /** Returns an `` HTML element and sets the href attribute value */ + link(href: string): string; + /** + * Determines whether two strings are equivalent in the current or specified locale. + * @param that String to compare to target string + * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. This parameter must conform to BCP 47 standards; see the Intl.Collator object for details. + * @param options An object that contains one or more properties that specify comparison options. see the Intl.Collator object for details. + */ + localeCompare(that: string, locales?: string | Array, options?: Intl$CollatorOptions): number; + /** + * Matches a string with a regular expression, and returns an array containing the results of that search. + * @param regexp A variable name or string literal containing the regular expression pattern and flags. + */ + match(regexp: string | RegExp): RegExp$matchResult | null; + /** + * Matches a string with a regular expression, and returns an iterable of matches + * containing the results of that search. + * @param regexp A variable name or string literal containing the regular expression pattern and flags. + */ + matchAll(regexp: string | RegExp): Iterator; + /** + * Returns the String value result of normalizing the string into the normalization form + * named by form as specified in Unicode Standard Annex #15, Unicode Normalization Forms. + * @param format Applicable values: "NFC", "NFD", "NFKC", or "NFKD", If not specified default + * is "NFC" + */ + normalize(format?: string): string; + /** + * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length. + * The padding is applied from the end (right) of the current string. + * + * @param targetLength The length of the resulting string once the current string has been padded. + * If this parameter is smaller than the current string's length, the current string will be returned as it is. + * + * @param padString The string to pad the current string with. + * If this string is too long, it will be truncated and the left-most part will be applied. + * The default value for this parameter is " " (U+0020). + */ + padEnd(targetLength: number, padString?: string): string; + /** + * Pads the current string with a given string (possibly repeated) so that the resulting string reaches a given length. + * The padding is applied from the start (left) of the current string. + * + * @param targetLength The length of the resulting string once the current string has been padded. + * If this parameter is smaller than the current string's length, the current string will be returned as it is. + * + * @param padString The string to pad the current string with. + * If this string is too long, it will be truncated and the left-most part will be applied. + * The default value for this parameter is " " (U+0020). + */ + padStart(targetLength: number, padString?: string): string; + /** + * Returns a String value that is made from count copies appended together. If count is 0, + * the empty string is returned. + * @param count number of copies to append + */ + repeat(count: number): string; + /** + * Replaces text in a string, using a regular expression or search string. + * @param searchValue A string to search for. + * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string or a function that returns the replacement text. + */ + replace(searchValue: string | RegExp, replaceValue: string | (substring: string, ...args: Array) => string): string; + /** + * Replace all instances of a substring in a string, using a regular expression or search string. + * @param searchValue A string or regular expression to search for. + * @param replaceValue A string containing the text to replace for every successful match of searchValue in this string or a function that returns the replacement text. + */ + replaceAll(searchValue: string | RegExp, replaceValue: string | (substring: string, ...args: Array) => string): string; + /** + * Finds the first substring match in a regular expression search. + * @param regexp The regular expression pattern and applicable flags. + */ + search(regexp: string | RegExp): number; + /** + * Returns a section of a string. + * @param start The index to the beginning of the specified portion of stringObj. + * @param end The index to the end of the specified portion of stringObj. The substring includes the characters up to, but not including, the character indicated by end. + * If this value is not specified, the substring continues to the end of stringObj. + */ + slice(start?: number, end?: number): string; + /** + * Split a string into substrings using the specified separator and return them as an array. + * @param separator A string that identifies character or characters to use in separating the string. If omitted, a single-element array containing the entire string is returned. + * @param limit A value used to limit the number of elements returned in the array. + */ + split(separator?: string | RegExp, limit?: number): Array; + /** + * Returns true if the sequence of elements of searchString converted to a String is the + * same as the corresponding elements of this object (converted to a String) starting at + * position. Otherwise returns false. + */ + startsWith(searchString: string, position?: number): boolean; + /** + * Gets a substring beginning at the specified location and having the specified length. + * @param from The starting position of the desired substring. The index of the first character in the string is zero. + * @param length The number of characters to include in the returned substring. + */ + substr(from: number, length?: number): string; + /** + * Returns the substring at the specified location within a String object. + * @param start The zero-based index number indicating the beginning of the substring. + * @param end Zero-based index number indicating the end of the substring. The substring includes the characters up to, but not including, the character indicated by end. + * If end is omitted, the characters from start through the end of the original string are returned. + */ + substring(start: number, end?: number): string; + /** Converts all alphabetic characters to lowercase, taking into account the host environment's current locale. */ + toLocaleLowerCase(locale?: string | Array): string; + /** Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale. */ + toLocaleUpperCase(locale?: string | Array): string; + /** Converts all the alphabetic characters in a string to lowercase. */ + toLowerCase(): string; + /** Converts all the alphabetic characters in a string to uppercase. */ + toUpperCase(): string; + /** Removes the leading and trailing white space and line terminator characters from a string. */ + trim(): string; + /** Removes the trailing white space and line terminator characters from a string. */ + trimEnd(): string; + /** Removes the leading white space and line terminator characters from a string. */ + trimLeft(): string; + /** Removes the trailing white space and line terminator characters from a string. */ + trimRight(): string; + /** Removes the leading white space and line terminator characters from a string. */ + trimStart(): string; + /** Returns the primitive value of the specified object. */ + valueOf(): string; + /** Returns a string representation of a string. */ + toString(): string; + /** Returns the length of a String object. */ + length: number; + [key: number]: string; + static (value:mixed):string; + static fromCharCode(...codes: Array): string; + /** + * Return the String value whose elements are, in order, the elements in the List elements. + * If length is 0, the empty string is returned. + */ + static fromCodePoint(...codes: Array): string; + + /** + * String.raw is intended for use as a tag function of a Tagged Template String. When called + * as such the first argument will be a well formed template call site object and the rest + * parameter will contain the substitution values. + * @param callSite A well-formed template string call site representation. + * @param substitutions A set of substitution values. + */ + static raw(callSite: interface {+raw: $ReadOnlyArray}, ...substitutions: $ReadOnlyArray): string; +} + +declare class RegExp { + static (pattern: string | RegExp, flags?: RegExp$flags): RegExp; + compile(): RegExp; + constructor(pattern: string | RegExp, flags?: RegExp$flags): void; + /** + * Executes a search on a string using a regular expression pattern, and returns an array containing the results of that search. + * @param string The String object or string literal on which to perform the search. + */ + exec(string: string): RegExp$matchResult | null; + /** + * Returns a string indicating the flags of the regular expression in question. This field is read-only. + * The characters in this string are sequenced and concatenated in the following order: + * + * - "g" for global + * - "i" for ignoreCase + * - "m" for multiline + * - "u" for unicode + * - "y" for sticky + * + * If no flags are set, the value is the empty string. + */ + flags: string; + /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */ + global: boolean; + /** Returns a Boolean value indicating the state of the ignoreCase flag (i) used with a regular expression. Default is false. Read-only. */ + ignoreCase: boolean; + lastIndex: number; + /** Returns a Boolean value indicating the state of the multiline flag (m) used with a regular expression. Default is false. Read-only. */ + multiline: boolean; + /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */ + source: string; + /** + * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular + * expression. Default is false. Read-only. + */ + sticky: boolean; + /** + * Returns a Boolean value indicating the state of the Unicode flag (u) used with a regular + * expression. Default is false. Read-only. + */ + unicode: boolean; + /** + * Returns a Boolean value indicating the state of the dotAll flag (s) used with a regular expression. + * Default is false. Read-only. + */ + dotAll: boolean; + /** + * Returns a Boolean value that indicates whether or not a pattern exists in a searched string. + * @param string String on which to perform the search. + */ + test(string: string): boolean; + toString(): string; + +[key: $SymbolMatch | $SymbolMatchAll]: (str: string) => Iterator +} + +/** Enables basic storage and retrieval of dates and times. */ +declare class Date { + constructor(): void; + constructor(value: number | Date | string): void; + constructor(year: number, month: number, day?: number, hour?: number, minute?: number, second?: number, millisecond?: number): void; + /** Gets the day-of-the-month, using local time. */ + getDate(): number; + /** Gets the day of the week, using local time. */ + getDay(): number; + /** Gets the year, using local time. */ + getFullYear(): number; + /** Gets the hours in a date, using local time. */ + getHours(): number; + /** Gets the milliseconds of a Date, using local time. */ + getMilliseconds(): number; + /** Gets the minutes of a Date object, using local time. */ + getMinutes(): number; + /** Gets the month, using local time. */ + getMonth(): number; + /** Gets the seconds of a Date object, using local time. */ + getSeconds(): number; + /** Gets the time value in milliseconds. */ + getTime(): number; + /** Gets the difference in minutes between the time on the local computer and Universal Coordinated Time (UTC). */ + getTimezoneOffset(): number; + /** Gets the day-of-the-month, using Universal Coordinated Time (UTC). */ + getUTCDate(): number; + /** Gets the day of the week using Universal Coordinated Time (UTC). */ + getUTCDay(): number; + /** Gets the year using Universal Coordinated Time (UTC). */ + getUTCFullYear(): number; + /** Gets the hours value in a Date object using Universal Coordinated Time (UTC). */ + getUTCHours(): number; + /** Gets the milliseconds of a Date object using Universal Coordinated Time (UTC). */ + getUTCMilliseconds(): number; + /** Gets the minutes of a Date object using Universal Coordinated Time (UTC). */ + getUTCMinutes(): number; + /** Gets the month of a Date object using Universal Coordinated Time (UTC). */ + getUTCMonth(): number; + /** Gets the seconds of a Date object using Universal Coordinated Time (UTC). */ + getUTCSeconds(): number; + /** + * Sets the numeric day-of-the-month value of the Date object using local time. + * @param date A numeric value equal to the day of the month. + */ + setDate(date: number): number; + /** + * Sets the year of the Date object using local time. + * @param year A numeric value for the year. + * @param month A zero-based numeric value for the month (0 for January, 11 for December). Must be specified if numDate is specified. + * @param date A numeric value equal for the day of the month. + */ + setFullYear(year: number, month?: number, date?: number): number; + /** + * Sets the hour value in the Date object using local time. + * @param hours A numeric value equal to the hours value. + * @param min A numeric value equal to the minutes value. + * @param sec A numeric value equal to the seconds value. + * @param ms A numeric value equal to the milliseconds value. + */ + setHours(hours: number, min?: number, sec?: number, ms?: number): number; + /** + * Sets the milliseconds value in the Date object using local time. + * @param ms A numeric value equal to the millisecond value. + */ + setMilliseconds(ms: number): number; + /** + * Sets the minutes value in the Date object using local time. + * @param min A numeric value equal to the minutes value. + * @param sec A numeric value equal to the seconds value. + * @param ms A numeric value equal to the milliseconds value. + */ + setMinutes(min: number, sec?: number, ms?: number): number; + /** + * Sets the month value in the Date object using local time. + * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. + * @param date A numeric value representing the day of the month. If this value is not supplied, the value from a call to the getDate method is used. + */ + setMonth(month: number, date?: number): number; + /** + * Sets the seconds value in the Date object using local time. + * @param sec A numeric value equal to the seconds value. + * @param ms A numeric value equal to the milliseconds value. + */ + setSeconds(sec: number, ms?: number): number; + /** + * Sets the date and time value in the Date object. + * @param time A numeric value representing the number of elapsed milliseconds since midnight, January 1, 1970 GMT. + */ + setTime(time: number): number; + /** + * Sets the numeric day of the month in the Date object using Universal Coordinated Time (UTC). + * @param date A numeric value equal to the day of the month. + */ + setUTCDate(date: number): number; + /** + * Sets the year value in the Date object using Universal Coordinated Time (UTC). + * @param year A numeric value equal to the year. + * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. Must be supplied if numDate is supplied. + * @param date A numeric value equal to the day of the month. + */ + setUTCFullYear(year: number, month?: number, date?: number): number; + /** + * Sets the hours value in the Date object using Universal Coordinated Time (UTC). + * @param hours A numeric value equal to the hours value. + * @param min A numeric value equal to the minutes value. + * @param sec A numeric value equal to the seconds value. + * @param ms A numeric value equal to the milliseconds value. + */ + setUTCHours(hours: number, min?: number, sec?: number, ms?: number): number; + /** + * Sets the milliseconds value in the Date object using Universal Coordinated Time (UTC). + * @param ms A numeric value equal to the millisecond value. + */ + setUTCMilliseconds(ms: number): number; + /** + * Sets the minutes value in the Date object using Universal Coordinated Time (UTC). + * @param min A numeric value equal to the minutes value. + * @param sec A numeric value equal to the seconds value. + * @param ms A numeric value equal to the milliseconds value. + */ + setUTCMinutes(min: number, sec?: number, ms?: number): number; + /** + * Sets the month value in the Date object using Universal Coordinated Time (UTC). + * @param month A numeric value equal to the month. The value for January is 0, and other month values follow consecutively. + * @param date A numeric value representing the day of the month. If it is not supplied, the value from a call to the getUTCDate method is used. + */ + setUTCMonth(month: number, date?: number): number; + /** + * Sets the seconds value in the Date object using Universal Coordinated Time (UTC). + * @param sec A numeric value equal to the seconds value. + * @param ms A numeric value equal to the milliseconds value. + */ + setUTCSeconds(sec: number, ms?: number): number; + /** Returns a date as a string value. */ + toDateString(): string; + /** Returns a date as a string value in ISO format. */ + toISOString(): string; + /** Used by the JSON.stringify method to enable the transformation of an object's data for JavaScript Object Notation (JSON) serialization. */ + toJSON(key?: mixed): string; + /** + * Converts a date to a string by using the current or specified locale. + * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleDateString(locales?: string | Array, options?: Intl$DateTimeFormatOptions): string; + /** + * Converts a date and time to a string by using the current or specified locale. + * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleString(locales?: string | Array, options?: Intl$DateTimeFormatOptions): string; + /** + * Converts a time to a string by using the current or specified locale. + * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleTimeString(locales?: string | Array, options?: Intl$DateTimeFormatOptions): string; + /** Returns a time as a string value. */ + toTimeString(): string; + /** Returns a date converted to a string using Universal Coordinated Time (UTC). */ + toUTCString(): string; + /** Returns the stored time value in milliseconds since midnight, January 1, 1970 UTC. */ + valueOf(): number; + + static ():string; + static now(): number; + /** + * Parses a string containing a date, and returns the number of milliseconds between that date and midnight, January 1, 1970. + * @param s A date string + */ + static parse(s: string): number; + /** + * Returns the number of milliseconds between midnight, January 1, 1970 Universal Coordinated Time (UTC) (or GMT) and the specified date. + * @param year The full year designation is required for cross-century date accuracy. If year is between 0 and 99 is used, then year is assumed to be 1900 + year. + * @param month The month as a number between 0 and 11 (January to December). + * @param date The date as a number between 1 and 31. + * @param hours Must be supplied if minutes is supplied. A number from 0 to 23 (midnight to 11pm) that specifies the hour. + * @param minutes Must be supplied if seconds is supplied. A number from 0 to 59 that specifies the minutes. + * @param seconds Must be supplied if milliseconds is supplied. A number from 0 to 59 that specifies the seconds. + * @param ms A number from 0 to 999 that specifies the milliseconds. + */ + static UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number; + // multiple indexers not yet supported + [key: $SymbolToPrimitive]: (hint: 'string' | 'default' | 'number') => string | number; +} + +declare class CallSite { + getThis(): any; + getTypeName(): string; + getFunction(): ?((...any) => any); + getFunctionName(): string; + getMethodName(): string; + getFileName(): ?string; + getLineNumber(): ?number; + getColumnNumber(): ?number; + getEvalOrigin(): ?CallSite; + getScriptNameOrSourceURL(): ?string; + isToplevel(): boolean; + isEval(): boolean; + isNative(): boolean; + isConstructor(): boolean; + toString(): string; +} + +declare class Error { + static (message?:string):Error; + constructor (message?: mixed, options?: {cause: mixed, ...}): void; + name: string; + message: string; + stack: string; + toString(): string; + + // note: microsoft only + description?: string; + number?: number; + + // note: mozilla only + fileName?: string; + lineNumber?: number; + columnNumber?: number; + + // note: v8 only (node/chrome) + static captureStackTrace(target: interface { [any] : any }, constructor?: any): void; + + static stackTraceLimit: number; + static prepareStackTrace: (err: Error, stack: CallSite[]) => mixed; +} + +declare class EvalError extends Error { + static (message?:string):Error; +} + +declare class RangeError extends Error { + static (message?:string):Error; +} + +declare class ReferenceError extends Error { + static (message?:string):Error; +} + +declare class SyntaxError extends Error { + static (message?:string):Error; +} + +declare class TypeError extends Error { + static (message?:string):Error; +} + +declare class URIError extends Error { + static (message?:string):Error; +} + +declare class AggregateError extends Error { + static (errors: Iterable, message?: string): Error; + constructor (errors: Iterable, message?: mixed): void; + errors: Iterable; +} + +/** + * An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format. + */ +declare var JSON: {| + /** + * Converts a JavaScript Object Notation (JSON) string into an object. + * @param text A valid JSON string. + * @param reviver A function that transforms the results. This function is called for each member of the object. + * If a member contains nested objects, the nested objects are transformed before the parent object is. + */ + +parse: (text: string, reviver?: (key: any, value: any) => any) => any, + /** + * Converts a JavaScript value to a JavaScript Object Notation (JSON) string. + * @param value A JavaScript value, usually an object or array, to be converted. + * @param replacer A function that transforms the results or an array of strings and numbers that acts as a approved list for selecting the object properties that will be stringified. + * @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read. + */ + +stringify: (( + value: null | string | number | boolean | interface {} | $ReadOnlyArray, + replacer?: ?((key: string, value: any) => any) | Array, + space?: string | number + ) => string) & + ( + value: mixed, + replacer?: ?((key: string, value: any) => any) | Array, + space?: string | number + ) => string | void, +|}; + +/* Iterable/Iterator/Generator */ + +type IteratorResult<+Yield,+Return> = + | { + done: true, + +value?: Return, + ... +} + | { + done: false, + +value: Yield, + ... +}; + +interface $Iterator<+Yield,+Return,-Next> { + @@iterator(): $Iterator; + next(value?: Next): IteratorResult; +} +type Iterator<+T> = $Iterator; + +interface $Iterable<+Yield,+Return,-Next> { + @@iterator(): $Iterator; +} +type Iterable<+T> = $Iterable; + +interface Generator<+Yield,+Return,-Next> { + @@iterator(): $Iterator; + next(value?: Next): IteratorResult; + return(value: R): IteratorResult; + throw(error?: any): IteratorResult; +} + +declare function $iterate(p: Iterable): T; + +/* Async Iterable/Iterator/Generator */ + +interface $AsyncIterator<+Yield,+Return,-Next> { + @@asyncIterator(): $AsyncIterator; + next(value?: Next): Promise>; +} +type AsyncIterator<+T> = $AsyncIterator; + +interface $AsyncIterable<+Yield,+Return,-Next> { + @@asyncIterator(): $AsyncIterator; +} +type AsyncIterable<+T> = $AsyncIterable; + +interface AsyncGenerator<+Yield,+Return,-Next> { + @@asyncIterator(): $AsyncIterator; + next(value?: Next): Promise>; + return(value: R): Promise>; + throw(error?: any): Promise>; +} + +declare function $asyncIterator(p: AsyncIterable): T; + +/* Maps and Sets */ + +declare class $ReadOnlyMap { + @@iterator(): Iterator<[K, V]>; + /** + * Returns an iterable of key, value pairs for every entry in the map. + */ + entries(): Iterator<[K, V]>; + forEach(callbackfn: (this : This, value: V, index: K, map: $ReadOnlyMap) => mixed, thisArg: This): void; + get(key: K): V | void; + has(key: K): boolean; + /** + * Returns an iterable of keys in the map + */ + keys(): Iterator; + size: number; + /** + * Returns an iterable of values in the map + */ + values(): Iterator; +} + +declare class Map extends $ReadOnlyMap { + @@iterator(): Iterator<[K, V]>; + constructor(iterable?: ?Iterable<[K, V]>): void; + clear(): void; + delete(key: K): boolean; + /** + * Returns an iterable of key, value pairs for every entry in the map. + */ + entries(): Iterator<[K, V]>; + forEach(callbackfn: (this : This, value: V, index: K, map: Map) => mixed, thisArg: This): void; + get(key: K): V | void; + has(key: K): boolean; + /** + * Returns an iterable of keys in the map + */ + keys(): Iterator; + set(key: K, value: V): Map; + size: number; + /** + * Returns an iterable of values in the map + */ + values(): Iterator; + // Multiple Indexers not yet supported + +[key: $SymbolToStringTag]: any; + static +[key: $SymbolSpecies]: any; +} + +/** + * A WeakRef object lets you hold a weak reference to another object, + * without preventing that object from getting garbage-collected. + * + * @see {@link https://caniuse.com/?search=weakref} See browser support + */ +declare class WeakRef> { + constructor(targetObject: T): void; + /** + * @return the WeakRef object's target object, + * or undefined if the target object has been reclaimed. + */ + deref(): T | void; +} + +declare class $ReadOnlyWeakMap, +V> { + get(key: K): V | void; + has(key: K): boolean; +} + +declare class WeakMap, V> extends $ReadOnlyWeakMap { + constructor(iterable?: ?Iterable<[K, V]>): void; + delete(key: K): boolean; + get(key: K): V | void; + has(key: K): boolean; + set(key: K, value: V): WeakMap; +} + +declare class $ReadOnlySet<+T> { + @@iterator(): Iterator; + /** + * Returns an iterable of [v,v] pairs for every value `v` in the set. + */ + entries(): Iterator<[T, T]>; + forEach(callbackfn: (this: This, value: T, index: T, set: $ReadOnlySet) => mixed, thisArg: This): void; + has(value: T): boolean; + /** + * Despite its name, returns an iterable of the values in the set, + */ + keys(): Iterator; + size: number; + /** + * Returns an iterable of values in the set. + */ + values(): Iterator; +} + +declare class Set extends $ReadOnlySet { + @@iterator(): Iterator; + constructor(iterable?: ?Iterable): void; + add(value: T): Set; + clear(): void; + delete(value: T): boolean; + /** + * Returns an iterable of [v,v] pairs for every value `v` in the set. + */ + entries(): Iterator<[T, T]>; + forEach(callbackfn: (this: This, value: T, index: T, set: Set) => mixed, thisArg: This): void; + has(value: T): boolean; + /** + * Despite its name, returns an iterable of the values in the set, + */ + keys(): Iterator; + size: number; + /** + * Returns an iterable of values in the set. + */ + values(): Iterator; + +[key: $SymbolToStringTag]: (...any) => any; + static +[key: $SymbolSpecies]: (...any) => any; // This would the Set constructor, can't think of a way to correctly type this +} + +declare class $ReadOnlyWeakSet> { + has(value: T): boolean; +} + +declare class WeakSet> extends $ReadOnlyWeakSet { + constructor(iterable?: ?Iterable): void; + add(value: T): WeakSet; + delete(value: T): boolean; + has(value: T): boolean; +} + +/* Promises + cf. https://github.com/borisyankov/DefinitelyTyped/blob/master/es6-promises/es6-promises.d.ts +*/ +/** + * Represents the completion of an asynchronous operation + */ +declare class Promise<+R = mixed> { + constructor(callback: ( + resolve: (result: Promise | R) => void, + reject: (error: any) => void + ) => mixed): void; + + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onFulfill The callback to execute when the Promise is resolved. + * @param onReject The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then(onFulfill: null | void, onReject: null | void): Promise; + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onFulfill The callback to execute when the Promise is resolved. + * @param onReject The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then( + onFulfill: null | void, + onReject: (error: any) => Promise | U + ): Promise; + /** + * Attaches callbacks for the resolution and/or rejection of the Promise. + * @param onFulfill The callback to execute when the Promise is resolved. + * @param onReject The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of which ever callback is executed. + */ + then( + onFulfill: (value: R) => Promise | U, + onReject: null | void | ((error: any) => Promise | U) + ): Promise; + + /** + * Attaches a callback for only the rejection of the Promise. + * @param onReject The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch(onReject: null | void): Promise; + /** + * Attaches a callback for only the rejection of the Promise. + * @param onReject The callback to execute when the Promise is rejected. + * @returns A Promise for the completion of the callback. + */ + catch( + onReject: (error: any) => Promise | U + ): Promise; + + /** + * Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The + * resolved value cannot be modified from the callback. + * @param onFinally The callback to execute when the Promise is settled (fulfilled or rejected). + * @returns A Promise for the completion of the callback. + */ + finally(onFinally: () => mixed): Promise; + + /** + * Creates a new resolved promise for the provided value. + * @param object A promise. + * @returns A promise whose internal state matches the provided promise. + */ + static resolve(object: Promise | T): Promise; + /** + * Creates a new rejected promise for the provided reason. + * @param error The reason the promise was rejected. + * @returns A new rejected Promise. + */ + static reject(error: any): Promise; + /** + * Creates a Promise that is resolved with an array of results when all of the provided Promises + * resolve, or rejected when any Promise is rejected. + * @param promises An iterable of Promises. + * @returns A new Promise. + */ + static all>(promises: T): Promise<$TupleMap>; + /** + * Creates a Promise that is resolved with an array of results when all + * of the provided Promises resolve or reject. + * @param promises An array of Promises. + * @returns A new Promise. + */ + static allSettled>(promises: T): Promise<$TupleMap(p: Promise | T) => $SettledPromiseResult>>; + /** + * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved + * or rejected. + * @param promises An iterable of Promises. + * @returns A new Promise. + */ + static race | T>(promises: Iterable): Promise; + /** + * Creates a Promise that fulfills as soon as any of the promises in the iterable fulfills, + * with the value of the fulfilled promise. If no promises in the iterable fulfill then the + * returned promise is rejected with an AggregateError. + * @param promises An iterable of Promises. + * @returns A new Promise. + */ + static any | T>(promises: Iterable): Promise; +} + +type $SettledPromiseResult<+T> = {| + +status: 'fulfilled', + +value: T, +|} | {| + +status: 'rejected', + +reason: any, +|}; + +// we use this signature when typing await expressions +declare function $await(p: Promise | T): T; + +/* Binary data */ + +declare class ArrayBuffer { + static isView(arg: mixed): boolean; + constructor(byteLength: number): void; + byteLength: number; + slice(begin: number, end?: number): this; + static +[key: $SymbolSpecies]: Class; +} + +// This is a helper type to simplify the specification, it isn't an interface +// and there are no objects implementing it. +// https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView +type $ArrayBufferView = $TypedArray | DataView; + +type $TypedArrayNumber = $TypedArrayInternal; + +type $TypedArray = $TypedArrayNumber | BigInt64Array | BigUint64Array; + +// The TypedArray intrinsic object is a constructor function, but does not have +// a global name or appear as a property of the global object. +// http://www.ecma-international.org/ecma-262/6.0/#sec-%typedarray%-intrinsic-object +declare class $TypedArrayInternal { + /** + * The size in bytes of each element in the array. + */ + static BYTES_PER_ELEMENT: number; + static from(iterable: Iterable, mapFn?: (this : This, element: T) => T, thisArg: This): this; + static of(...values: T[]): this; + + constructor(length: number): void; + constructor(typedArray: $TypedArray): void; + constructor(iterable: Iterable): void; + constructor(buffer: ArrayBuffer, byteOffset?: number, length?: number): void; + + [index: number]: T; + + @@iterator(): Iterator; + + /** + * The ArrayBuffer instance referenced by the array. + */ + buffer: ArrayBuffer; + /** + * The length in bytes of the array. + */ + byteLength: number; + /** + * The offset in bytes of the array. + */ + byteOffset: number; + /** + * The length of the array. + */ + length: number; + + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired item. A negative index will count back from the last item. + */ + at(index: number): T | void; + /** + * Returns the this object after copying a section of the array identified by start and end + * to the same array starting at position target + * @param target If target is negative, it is treated as length+target where length is the + * length of the array. + * @param start If start is negative, it is treated as length+start. If end is negative, it + * is treated as length+end. + * @param end If not specified, length of the this object is used as its default value. + */ + copyWithin(target: number, start: number, end?: number): void; + /** + * Returns an array of key, value pairs for every entry in the array + */ + entries(): Iterator<[number, T]>; + /** + * Determines whether all the members of an array satisfy the specified test. + * @param callback A function that accepts up to three arguments. The every method calls + * the predicate function for each element in the array until the predicate returns a value + * which is coercible to the Boolean value false, or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the predicate function. + * If thisArg is omitted, undefined is used as the this value. + */ + every(callback: (this : This, value: T, index: number, array: this) => mixed, thisArg: This): boolean; + /** + * Returns the this object after filling the section identified by start and end with value + * @param value value to fill array section with + * @param start index to start filling the array at. If start is negative, it is treated as + * length+start where length is the length of the array. + * @param end index to stop filling the array at. If end is negative, it is treated as + * length+end. + */ + fill(value: T, start?: number, end?: number): this; + /** + * Returns the elements of an array that meet the condition specified in a callback function. + * @param callback A function that accepts up to three arguments. The filter method calls + * the predicate function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the predicate function. + * If thisArg is omitted, undefined is used as the this value. + */ + filter(callback: (this : This, value: T, index: number, array: this) => mixed, thisArg: This): this; + /** + * Returns the value of the first element in the array where predicate is true, and undefined + * otherwise. + * @param callback find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, find + * immediately returns that element value. Otherwise, find returns undefined. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ + find (callback: (this : This, value: T, index: number, array: this) => mixed, thisArg: This): T | void; + /** + * Returns the index of the first element in the array where predicate is true, and -1 + * otherwise. + * @param callback find calls predicate once for each element of the array, in ascending + * order, until it finds one where predicate returns true. If such an element is found, + * findIndex immediately returns that element index. Otherwise, findIndex returns -1. + * @param thisArg If provided, it will be used as the this value for each invocation of + * predicate. If it is not provided, undefined is used instead. + */ + findIndex(callback: (this : This, value: T, index: number, array: this) => mixed, thisArg: This): number; + /** + * Performs the specified action for each element in an array. + * @param callback A function that accepts up to three arguments. forEach calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ + forEach(callback: (this : This, value: T, index: number, array: this) => mixed, thisArg: This): void; + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: T, fromIndex?: number): boolean; + /** + * Returns the index of the first occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ + indexOf(searchElement: T, fromIndex?: number): number; // -1 if not present + /** + * Adds all the elements of an array separated by the specified separator string. + * @param separator A string used to separate one element of an array from the next in the + * resulting String. If omitted, the array elements are separated with a comma. + */ + join(separator?: string): string; + /** + * Returns an list of keys in the array + */ + keys(): Iterator; + /** + * Returns the index of the last occurrence of a value in an array. + * @param searchElement The value to locate in the array. + * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the + * search starts at index 0. + */ + lastIndexOf(searchElement: T, fromIndex?: number): number; // -1 if not present + /** + * Calls a defined callback function on each element of an array, and returns an array that + * contains the results. + * @param callback A function that accepts up to three arguments. The map method calls the + * callbackfn function one time for each element in the array. + * @param thisArg An object to which the this keyword can refer in the callbackfn function. + * If thisArg is omitted, undefined is used as the this value. + */ + map(callback: (this : This, currentValue: T, index: number, array: this) => number, thisArg : This): this; + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callback A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ + reduce( + callback: (previousValue: T, currentValue: T, index: number, array: this) => T, + initialValue: void + ): T; + /** + * Calls the specified callback function for all the elements in an array. The return value of + * the callback function is the accumulated result, and is provided as an argument in the next + * call to the callback function. + * @param callback A function that accepts up to four arguments. The reduce method calls the + * callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an argument + * instead of an array value. + */ + reduce( + callback: (previousValue: U, currentValue: T, index: number, array: this) => U, + initialValue: U + ): U; + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callback A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an + * argument instead of an array value. + */ + reduceRight( + callback: (previousValue: T, currentValue: T, index: number, array: this) => number, + initialValue: void + ): number; + /** + * Calls the specified callback function for all the elements in an array, in descending order. + * The return value of the callback function is the accumulated result, and is provided as an + * argument in the next call to the callback function. + * @param callback A function that accepts up to four arguments. The reduceRight method calls + * the callbackfn function one time for each element in the array. + * @param initialValue If initialValue is specified, it is used as the initial value to start + * the accumulation. The first call to the callbackfn function provides this value as an + * argument instead of an array value. + */ + reduceRight( + callback: (previousValue: U, currentValue: T, index: number, array: this) => U, + initialValue: U + ): U; + /** + * Reverses the elements in an Array. + */ + reverse(): this; + /** + * Sets a value or an array of values. + * @param array A typed or untyped array of values to set. + * @param offset The index in the current array at which the values are to be written. + */ + set(array: Array | $TypedArray, offset?: number): void; + /** + * Returns a section of an array. + * @param start The beginning of the specified portion of the array. + * @param end The end of the specified portion of the array. This is exclusive of the element at the index 'end'. + */ + slice(begin?: number, end?: number): this; + /** + * Determines whether the specified callback function returns true for any element of an array. + * @param callback A function that accepts up to three arguments. The some method calls + * the predicate function for each element in the array until the predicate returns a value + * which is coercible to the Boolean value true, or until the end of the array. + * @param thisArg An object to which the this keyword can refer in the predicate function. + * If thisArg is omitted, undefined is used as the this value. + */ + some(callback: (this : This, value: T, index: number, array: this) => mixed, thisArg: This): boolean; + /** + * Sorts an array. + * @param compareFn Function used to determine the order of the elements. It is expected to return + * a negative value if first argument is less than second argument, zero if they're equal and a positive + * value otherwise. If omitted, the elements are sorted in ascending, ASCII character order. + * ```ts + * [11,2,22,1].sort((a, b) => a - b) + * ``` + */ + sort(compare?: (a: T, b: T) => number): this; + /** + * Gets a new Int8Array view of the ArrayBuffer store for this array, referencing the elements + * at begin, inclusive, up to end, exclusive. + * @param begin The index of the beginning of the array. + * @param end The index of the end of the array. + */ + subarray(begin?: number, end?: number): this; + /** + * Returns an list of values in the array + */ + values(): Iterator; +} + +/** + * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested + * number of bytes could not be allocated an exception is raised. + */ +declare class Int8Array extends $TypedArrayInternal {} +/** + * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. + */ +declare class Uint8Array extends $TypedArrayInternal {} +/** + * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0. + * If the requested number of bytes could not be allocated an exception is raised. + */ +declare class Uint8ClampedArray extends $TypedArrayInternal {} +/** + * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. + */ +declare class Int16Array extends $TypedArrayInternal {} +/** + * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. + */ +declare class Uint16Array extends $TypedArrayInternal {} +/** + * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. + */ +declare class Int32Array extends $TypedArrayInternal {} +/** + * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. + */ +declare class Uint32Array extends $TypedArrayInternal {} +/** + * A typed array of 32-bit float values. The contents are initialized to 0. If the requested number + * of bytes could not be allocated an exception is raised. + */ +declare class Float32Array extends $TypedArrayInternal {} +/** + * A typed array of 64-bit float values. The contents are initialized to 0. If the requested + * number of bytes could not be allocated an exception is raised. + */ +declare class Float64Array extends $TypedArrayInternal {} + +/** + * A typed array of 64-bit signed integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. + */ +declare class BigInt64Array extends $TypedArrayInternal {} + +/** + * A typed array of 64-bit unsigned integer values. The contents are initialized to 0. If the + * requested number of bytes could not be allocated an exception is raised. + */ +declare class BigUint64Array extends $TypedArrayInternal {} + +declare class DataView { + constructor(buffer: ArrayBuffer, byteOffset?: number, length?: number): void; + buffer: ArrayBuffer; + byteLength: number; + byteOffset: number; + /** + * Gets the Int8 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ + getInt8(byteOffset: number): number; + /** + * Gets the Uint8 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ + getUint8(byteOffset: number): number; + /** + * Gets the Int16 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ + getInt16(byteOffset: number, littleEndian?: boolean): number; + /** + * Gets the Uint16 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ + getUint16(byteOffset: number, littleEndian?: boolean): number; + /** + * Gets the Int32 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ + getInt32(byteOffset: number, littleEndian?: boolean): number; + /** + * Gets the Uint32 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ + getUint32(byteOffset: number, littleEndian?: boolean): number; + /** + * Gets the Float32 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ + getFloat32(byteOffset: number, littleEndian?: boolean): number; + /** + * Gets the Float64 value at the specified byte offset from the start of the view. There is + * no alignment constraint; multi-byte values may be fetched from any offset. + * @param byteOffset The place in the buffer at which the value should be retrieved. + */ + getFloat64(byteOffset: number, littleEndian?: boolean): number; + /** + * Stores an Int8 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + */ + setInt8(byteOffset: number, value: number): void; + /** + * Stores an Uint8 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + */ + setUint8(byteOffset: number, value: number): void; + /** + * Stores an Int16 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ + setInt16(byteOffset: number, value: number, littleEndian?: boolean): void; + /** + * Stores an Uint16 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ + setUint16(byteOffset: number, value: number, littleEndian?: boolean): void; + /** + * Stores an Int32 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ + setInt32(byteOffset: number, value: number, littleEndian?: boolean): void; + /** + * Stores an Uint32 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ + setUint32(byteOffset: number, value: number, littleEndian?: boolean): void; + /** + * Stores an Float32 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ + setFloat32(byteOffset: number, value: number, littleEndian?: boolean): void; + /** + * Stores an Float64 value at the specified byte offset from the start of the view. + * @param byteOffset The place in the buffer at which the value should be set. + * @param value The value to set. + * @param littleEndian If false or undefined, a big-endian value should be written, + * otherwise a little-endian value should be written. + */ + setFloat64(byteOffset: number, value: number, littleEndian?: boolean): void; +} + +declare function btoa(rawString: string): string; +declare function atob(encodedString: string): string; + +declare function escape(str: string): string; +declare function unescape(str: string): string; + +declare opaque type TimeoutID; +declare opaque type IntervalID; +declare function clearInterval(intervalId: ?IntervalID): void; +declare function clearTimeout(timeoutId: ?TimeoutID): void; +declare function setTimeout>( + callback: (...args: TArguments) => mixed, + ms?: number, + ...args: TArguments +): TimeoutID; +declare function setInterval>( + callback: (...args: TArguments) => mixed, + ms?: number, + ...args: TArguments +): IntervalID; +declare function queueMicrotask>( + callback: (...args: TArguments) => mixed, +): void; + +/* Reflect API */ + +declare var Reflect: { + apply(target: (...any) => any, thisArg?: any, argumentsList?: Array): any, + construct(target: (...any) => any, argumentsList?: Array, newTarget?: any): any, + defineProperty(o: any, p: any, attributes: any): boolean, + deleteProperty(o: any, p: any): boolean, + get(o: any, p: any, receiver?: any): any, + getOwnPropertyDescriptor(o: any, p: any): any, + getPrototypeOf: Object$GetPrototypeOf, + setPrototypeOf: Object$SetPrototypeOf, + has(o: any, p: any): boolean, + isExtensible(o: any): boolean, + ownKeys(o: any): Array, + preventExtensions(o: any): boolean, + set(o: any, p: any, value: any, receiver?: any): boolean, + ... +} + +/* Proxy */ + +type Proxy$traps = { + getPrototypeOf?: (target: T) => {[any] : any, ...} | null, + setPrototypeOf?: (target: T, prototype: {[any] : any, ...} | null) => boolean, + isExtensible?: (target: T) => boolean, + preventExtensions?: (target: T) => boolean, + getOwnPropertyDescriptor?: (target: T, property: string) => void | PropertyDescriptor, + defineProperty?: (target: T, property: string, descriptor: PropertyDescriptor) => boolean, + has?: (target: T, key: string) => boolean, + get?: (target: T, property: string, receiver: Proxy) => any, + set?: (target: T, property: string, value: any, receiver: Proxy) => boolean, + deleteProperty?: (target: T, property: string) => boolean, + ownKeys?: (target: T) => Array, + apply?: (target: T, context: any, args: Array) => any, + construct?: (target: T, args: Array, newTarget: (...any) => any) => {[any] : any, ...}, + ... +}; + +type Proxy$revocable = T & { revoke(): void, ... }; + +declare class Proxy { + constructor(target: T, handler: Proxy$traps): T; + + static revocable(target: T, handler: Proxy$traps): Proxy$revocable; +} + +/* CommonJS */ + +declare var global: any; + +declare var module: { + exports: any, + require(id: string): any, + id: string, + filename: string, + loaded: boolean, + parent: any, + children: Array, + path: string, + paths: Array, + isPreloading: boolean, + ... +}; +declare var require: { + (id: string): any, + resolve: (id: string, options?: { paths?: Array, ... }) => string, + cache: any, + main: typeof module, + ... +}; +declare var exports: {-[key: string]: mixed}; + +/* Opaque type for module reference magic strings */ +declare opaque type $Flow$ModuleRef<+T>; + +/* Commonly available, shared between node and dom */ +declare var console: { + assert(condition: mixed, ...data: Array): void, + clear(): void, + count(label?: string): void, + countReset(label?: string): void, + debug(...data: Array): void, + dir(...data: Array): void, + dirxml(...data: Array): void, + error(...data: Array): void, + _exception(...data: Array): void, + group(...data: Array): void, + groupCollapsed(...data: Array): void, + groupEnd(): void, + info(...data: Array): void, + log(...data: Array): void, + profile(name?: string): void, + profileEnd(name?: string): void, + table(tabularData: { [key: string]: any, ... } | Array<{ [key: string]: any, ... }> | Array>): void, + time(label?: string): void, + timeEnd(label: string): void, + timeStamp(label?: string): void, + timeLog(label?: string, ...data?: Array): void, + trace(...data: Array): void, + warn(...data: Array): void, + ... +}; + +type $EnumProto = {| + cast(this: TEnumObject, input: ?TRepresentation): void | TEnum, + getName(this: TEnumObject, input: TEnum): string, + isValid(this: TEnumObject, input: ?TRepresentation): boolean, + members(this: TEnumObject): Iterator, + __proto__: null, +|} + +declare class SharedArrayBuffer { + constructor(byteLength: number): void; + + /** + * Read-only. The length of the ArrayBuffer (in bytes). + */ + +byteLength: number; + /** + * Returns a section of an SharedArrayBuffer. + */ + slice(begin?: number, end?: number): this; + + +[key: $SymbolToStringTag]: 'SharedArrayBuffer'; +} + +type $SharedIntegerTypedArray = + | Int8Array + | Uint8Array + | Int16Array + | Uint16Array + | Int32Array + | Uint32Array + +declare var Atomics: { + /** + * Adds a value to the value at the given position in the array, returning the original value. + * Until this atomic operation completes, any other read or write operation against the array + * will block. + */ + add(typedArray: $SharedIntegerTypedArray, index: number, value: number): number, + /** + * Stores the bitwise AND of a value with the value at the given position in the array, + * returning the original value. Until this atomic operation completes, any other read or + * write operation against the array will block. + */ + and(typedArray: $SharedIntegerTypedArray, index: number, value: number): number, + /** + * Replaces the value at the given position in the array if the original value equals the given + * expected value, returning the original value. Until this atomic operation completes, any + * other read or write operation against the array will block. + */ + compareExchange(typedArray: $SharedIntegerTypedArray, index: number, expectedValue: number, replacementValue: number): number, + /** + * Replaces the value at the given position in the array, returning the original value. Until + * this atomic operation completes, any other read or write operation against the array will + * block. + */ + exchange(typedArray: $SharedIntegerTypedArray, index: number, value: number): number, + /** + * Returns the value at the given position in the array. Until this atomic operation completes, + * any other read or write operation against the array will block. + */ + load(typedArray: $SharedIntegerTypedArray, index: number): number, + /** + * Stores the bitwise OR of a value with the value at the given position in the array, + * returning the original value. Until this atomic operation completes, any other read or write + * operation against the array will block. + */ + or(typedArray: $SharedIntegerTypedArray, index: number, value: number): number, + /** + * Stores a value at the given position in the array, returning the new value. Until this + * atomic operation completes, any other read or write operation against the array will block. + */ + store(typedArray: $SharedIntegerTypedArray, index: number, value: number): number, + /** + * Subtracts a value from the value at the given position in the array, returning the original + * value. Until this atomic operation completes, any other read or write operation against the + * array will block. + */ + sub(typedArray: $SharedIntegerTypedArray, index: number, value: number): number, + /** + * Stores the bitwise XOR of a value with the value at the given position in the array, + * returning the original value. Until this atomic operation completes, any other read or write + * operation against the array will block. + */ + xor(typedArray: $SharedIntegerTypedArray, index: number, value: number): number, + + /** + * Returns a value indicating whether high-performance algorithms can use atomic operations + * (`true`) or must use locks (`false`) for the given number of bytes-per-element of a typed + * array. + */ + isLockFree(size: number): boolean, + /** + * If the value at the given position in the array is equal to the provided value, the current + * agent is put to sleep causing execution to suspend until the timeout expires (returning + * `"timed-out"`) or until the agent is awoken (returning `"ok"`); otherwise, returns + * `"not-equal"`. + */ + wait(typedArray: Int32Array, index: number, value: number, timeout?: number): 'ok' | 'not-equal' | 'timed-out', + /** + * Wakes up sleeping agents that are waiting on the given index of the array, returning the + * number of agents that were awoken. + * @param typedArray A shared Int32Array. + * @param index The position in the typedArray to wake up on. + * @param count The number of sleeping agents to notify. Defaults to +Infinity. + */ + notify(typedArray: Int32Array, index: number, count: number): number, + + +[key: $SymbolToStringTag]: 'Atomics', + ... +}; + +type Import$Meta = { + [string]: mixed, + url?: string, + ... +}; + +declare class BigInt { + static (value: boolean | string | number | bigint | interface {} | $ReadOnlyArray): bigint; + /** + * Clamps a BigInt value to the given number of bits, and returns that value as a signed integer. + * @param bits The amount of bits available for the returned BigInt. Should be an integer between 0 and 2^53 - 1, inclusive. + * @param bigint The BigInt value to clamp to fit into the supplied bits. + */ + static asIntN(bits: number, bigint: bigint): bigint; + /** + * Clamps a BigInt value to the given number of bits, and returns that value as an unsigned integer. + * @param bits The amount of bits available for the returned BigInt. Should be an integer between 0 and 2^53 - 1, inclusive. + * @param bigint The BigInt value to clamp to fit into the supplied bits. + */ + static asUintN(bits: number, bigint: bigint): bigint; + /** + * Converts a number to a string by using the current or specified locale. + * @param locales A locale string or array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleString(locales?: string | Array, options?: Intl$NumberFormatOptions): string; + /** + * Returns a string representation of a BigInt. The trailing "n" is not part of the string. + * @param radix An integer in the range 2 through 36 specifying the base to use for representing the BigInt value. Defaults to 10. + */ + toString(radix?: number): string; + /** Returns the wrapped primitive value of a BigInt object. */ + valueOf(): bigint; +} + +/** Obtain the return type of a function type */ +type ReturnType) => mixed> = + T extends (...args: $ReadOnlyArray) => infer Return ? Return : any; + +/** Obtain the parameters of a function type in a tuple */ +type Parameters) => mixed> = + T extends (...args: infer Args) => mixed ? Args : empty; + +/** Exclude from T those types that are assignable to U */ +type Exclude = T extends U ? empty : T; + +/** Extract from T those types that are assignable to U */ +type Extract = T extends U ? T : empty; + +/** + * Extracts the type of the 'this' parameter of a function type, + * or 'mixed' if the function type has no 'this' parameter. + */ +type ThisParameterType = T extends (this: infer U, ...args: empty) => mixed ? U : mixed; + +/** + * Removes the 'this' parameter from a function type. + */ +type OmitThisParameter = mixed extends ThisParameterType ? T : T extends (...args: infer A) => infer R ? (...args: A) => R : T; + +/** + * Extract specific fields from an object, e.g. Pick + */ +type Pick> = {[key in Keys]: O[key]}; + +/** + * Omit specific fields from an object, e.g. Omit + */ +type Omit> = Pick, Keys>>; + +/** + * Construct an object type using string literals as keys with the given type, + * e.g. Record<'foo' | 'bar', number> = {foo: number, bar: number} + */ +type Record = { + [_key in K]: T; +}; diff --git a/flow/master/flowlib/cssom.js b/flow/master/flowlib/cssom.js new file mode 100644 index 00000000000..585ca0aad97 --- /dev/null +++ b/flow/master/flowlib/cssom.js @@ -0,0 +1,574 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +declare class StyleSheet { + disabled: boolean; + +href: string; + +media: MediaList; + +ownerNode: Node; + +parentStyleSheet: ?StyleSheet; + +title: string; + +type: string; +} + +declare class StyleSheetList { + @@iterator(): Iterator; + length: number; + [index: number]: StyleSheet; +} + +declare class MediaList { + @@iterator(): Iterator; + mediaText: string; + length: number; + item(index: number): ?string; + deleteMedium(oldMedium: string): void; + appendMedium(newMedium: string): void; + [index: number]: string; +} + +declare class CSSStyleSheet extends StyleSheet { + +cssRules: CSSRuleList; + +ownerRule: ?CSSRule; + deleteRule(index: number): void; + insertRule(rule: string, index: number): number; + replace(text: string): Promise; + replaceSync(text: string): void; +} + +declare class CSSGroupingRule extends CSSRule { + +cssRules: CSSRuleList; + deleteRule(index: number): void; + insertRule(rule: string, index: number): number; +} + +declare class CSSConditionRule extends CSSGroupingRule { + conditionText: string; +} + +declare class CSSMediaRule extends CSSConditionRule { + +media: MediaList; +} + +declare class CSSStyleRule extends CSSRule { + selectorText: string; + +style: CSSStyleDeclaration; +} + +declare class CSSRule { + cssText: string; + +parentRule: ?CSSRule; + +parentStyleSheet: ?CSSStyleSheet; + +type: number; + static STYLE_RULE: number; + static MEDIA_RULE: number; + static FONT_FACE_RULE: number; + static PAGE_RULE: number; + static IMPORT_RULE: number; + static CHARSET_RULE: number; + static UNKNOWN_RULE: number; + static KEYFRAMES_RULE: number; + static KEYFRAME_RULE: number; + static NAMESPACE_RULE: number; + static COUNTER_STYLE_RULE: number; + static SUPPORTS_RULE: number; + static DOCUMENT_RULE: number; + static FONT_FEATURE_VALUES_RULE: number; + static VIEWPORT_RULE: number; + static REGION_STYLE_RULE: number; +} + +declare class CSSKeyframeRule extends CSSRule { + keyText: string; + +style: CSSStyleDeclaration; +} + +declare class CSSKeyframesRule extends CSSRule { + name: string; + +cssRules: CSSRuleList; + appendRule(rule: string): void; + deleteRule(select: string): void; + findRule(select: string): CSSKeyframeRule | null; +} + +declare class CSSRuleList { + @@iterator(): Iterator; + length: number; + item(index: number): ?CSSRule; + [index: number]: CSSRule; +} + +declare class CSSStyleDeclaration { + @@iterator(): Iterator; + /* DOM CSS Properties */ + alignContent: string; + alignItems: string; + alignSelf: string; + all: string; + animation: string; + animationDelay: string; + animationDirection: string; + animationDuration: string; + animationFillMode: string; + animationIterationCount: string; + animationName: string; + animationPlayState: string; + animationTimingFunction: string; + backdropFilter: string; + webkitBackdropFilter: string; + backfaceVisibility: string; + background: string; + backgroundAttachment: string; + backgroundBlendMode: string; + backgroundClip: string; + backgroundColor: string; + backgroundImage: string; + backgroundOrigin: string; + backgroundPosition: string; + backgroundPositionX: string; + backgroundPositionY: string; + backgroundRepeat: string; + backgroundSize: string; + blockSize: string; + border: string; + borderBlockEnd: string; + borderBlockEndColor: string; + borderBlockEndStyle: string; + borderBlockEndWidth: string; + borderBlockStart: string; + borderBlockStartColor: string; + borderBlockStartStyle: string; + borderBlockStartWidth: string; + borderBottom: string; + borderBottomColor: string; + borderBottomLeftRadius: string; + borderBottomRightRadius: string; + borderBottomStyle: string; + borderBottomWidth: string; + borderCollapse: string; + borderColor: string; + borderImage: string; + borderImageOutset: string; + borderImageRepeat: string; + borderImageSlice: string; + borderImageSource: string; + borderImageWidth: string; + borderInlineEnd: string; + borderInlineEndColor: string; + borderInlineEndStyle: string; + borderInlineEndWidth: string; + borderInlineStart: string; + borderInlineStartColor: string; + borderInlineStartStyle: string; + borderInlineStartWidth: string; + borderLeft: string; + borderLeftColor: string; + borderLeftStyle: string; + borderLeftWidth: string; + borderRadius: string; + borderRight: string; + borderRightColor: string; + borderRightStyle: string; + borderRightWidth: string; + borderSpacing: string; + borderStyle: string; + borderTop: string; + borderTopColor: string; + borderTopLeftRadius: string; + borderTopRightRadius: string; + borderTopStyle: string; + borderTopWidth: string; + borderWidth: string; + bottom: string; + boxDecorationBreak: string; + boxShadow: string; + boxSizing: string; + breakAfter: string; + breakBefore: string; + breakInside: string; + captionSide: string; + clear: string; + clip: string; + clipPath: string; + color: string; + columns: string; + columnCount: string; + columnFill: string; + columnGap: string; + columnRule: string; + columnRuleColor: string; + columnRuleStyle: string; + columnRuleWidth: string; + columnSpan: string; + columnWidth: string; + contain: string; + content: string; + counterIncrement: string; + counterReset: string; + cursor: string; + direction: string; + display: string; + emptyCells: string; + filter: string; + flex: string; + flexBasis: string; + flexDirection: string; + flexFlow: string; + flexGrow: string; + flexShrink: string; + flexWrap: string; + float: string; + font: string; + fontFamily: string; + fontFeatureSettings: string; + fontKerning: string; + fontLanguageOverride: string; + fontSize: string; + fontSizeAdjust: string; + fontStretch: string; + fontStyle: string; + fontSynthesis: string; + fontVariant: string; + fontVariantAlternates: string; + fontVariantCaps: string; + fontVariantEastAsian: string; + fontVariantLigatures: string; + fontVariantNumeric: string; + fontVariantPosition: string; + fontWeight: string; + grad: string; + grid: string; + gridArea: string; + gridAutoColumns: string; + gridAutoFlow: string; + gridAutoPosition: string; + gridAutoRows: string; + gridColumn: string; + gridColumnStart: string; + gridColumnEnd: string; + gridRow: string; + gridRowStart: string; + gridRowEnd: string; + gridTemplate: string; + gridTemplateAreas: string; + gridTemplateRows: string; + gridTemplateColumns: string; + height: string; + hyphens: string; + imageRendering: string; + imageResolution: string; + imageOrientation: string; + imeMode: string; + inherit: string; + initial: string; + inlineSize: string; + isolation: string; + justifyContent: string; + left: string; + letterSpacing: string; + lineBreak: string; + lineHeight: string; + listStyle: string; + listStyleImage: string; + listStylePosition: string; + listStyleType: string; + margin: string; + marginBlockEnd: string; + marginBlockStart: string; + marginBottom: string; + marginInlineEnd: string; + marginInlineStart: string; + marginLeft: string; + marginRight: string; + marginTop: string; + marks: string; + mask: string; + maskType: string; + maxBlockSize: string; + maxHeight: string; + maxInlineSize: string; + maxWidth: string; + minBlockSize: string; + minHeight: string; + minInlineSize: string; + minWidth: string; + mixBlendMode: string; + mozTransform: string; + mozTransformOrigin: string; + mozTransitionDelay: string; + mozTransitionDuration: string; + mozTransitionProperty: string; + mozTransitionTimingFunction: string; + objectFit: string; + objectPosition: string; + offsetBlockEnd: string; + offsetBlockStart: string; + offsetInlineEnd: string; + offsetInlineStart: string; + opacity: string; + order: string; + orphans: string; + outline: string; + outlineColor: string; + outlineOffset: string; + outlineStyle: string; + outlineWidth: string; + overflow: string; + overflowWrap: string; + overflowX: string; + overflowY: string; + padding: string; + paddingBlockEnd: string; + paddingBlockStart: string; + paddingBottom: string; + paddingInlineEnd: string; + paddingInlineStart: string; + paddingLeft: string; + paddingRight: string; + paddingTop: string; + pageBreakAfter: string; + pageBreakBefore: string; + pageBreakInside: string; + perspective: string; + perspectiveOrigin: string; + pointerEvents: string; + position: string; + quotes: string; + rad: string; + resize: string; + right: string; + rubyAlign: string; + rubyMerge: string; + rubyPosition: string; + scrollBehavior: string; + scrollSnapCoordinate: string; + scrollSnapDestination: string; + scrollSnapPointsX: string; + scrollSnapPointsY: string; + scrollSnapType: string; + shapeImageThreshold: string; + shapeMargin: string; + shapeOutside: string; + tableLayout: string; + tabSize: string; + textAlign: string; + textAlignLast: string; + textCombineUpright: string; + textDecoration: string; + textDecorationColor: string; + textDecorationLine: string; + textDecorationStyle: string; + textIndent: string; + textOrientation: string; + textOverflow: string; + textRendering: string; + textShadow: string; + textTransform: string; + textUnderlinePosition: string; + top: string; + touchAction: string; + transform: string; + transformOrigin: string; + transformStyle: string; + transition: string; + transitionDelay: string; + transitionDuration: string; + transitionProperty: string; + transitionTimingFunction: string; + turn: string; + unicodeBidi: string; + unicodeRange: string; + userSelect: string; + verticalAlign: string; + visibility: string; + webkitOverflowScrolling: string; + webkitTransform: string; + webkitTransformOrigin: string; + webkitTransitionDelay: string; + webkitTransitionDuration: string; + webkitTransitionProperty: string; + webkitTransitionTimingFunction: string; + whiteSpace: string; + widows: string; + width: string; + willChange: string; + wordBreak: string; + wordSpacing: string; + wordWrap: string; + writingMode: string; + zIndex: string; + + cssFloat: string; + cssText: string; + getPropertyPriority(property: string): string; + getPropertyValue(property:string): string; + item(index: number): string; + [index: number]: string; + length: number; + parentRule: CSSRule; + removeProperty(property: string): string; + setProperty(property: string, value: ?string, priority: ?string): void; + setPropertyPriority(property: string, priority: string): void; +} + +declare class TransitionEvent extends Event { + elapsedTime: number; // readonly + pseudoElement: string; // readonly + propertyName: string; // readonly +} + +type AnimationPlayState = 'idle' | 'running' | 'paused' | 'finished' +type AnimationReplaceState = 'active' | 'removed' | 'persisted' +type FillMode = 'none' | 'forwards' | 'backwards' | 'both' | 'auto' +type PlaybackDirection = 'normal' | 'reverse' | 'alternate' | 'alternate-reverse' +type IterationCompositeOperation = 'replace' | 'accumulate' +type CompositeOperation = 'replace' | 'add' | 'accumulate' +type CompositeOperationOrAuto = CompositeOperation | 'auto' + +declare class AnimationTimeline { + +currentTime: number | null; +} + +type DocumentTimelineOptions = { + originTime?: DOMHighResTimeStamp; + ... +} + +declare class DocumentTimeline extends AnimationTimeline { + constructor(options?: DocumentTimelineOptions): void; +} + +type EffectTiming = { + delay: number; + endDelay: number; + fill: FillMode; + iterationStart: number; + iterations: number; + duration: number | string; + direction: PlaybackDirection; + easing: string; + ... +} + +type OptionalEffectTiming = $Rest + +type ComputedEffectTiming = EffectTiming & { + endTime: number; + activeDuration: number; + localTime: number | null; + progress: number | null; + currentIteration: number | null; + ... +} + +declare class AnimationEffect { + getTiming(): EffectTiming; + getComputedTiming(): ComputedEffectTiming; + updateTiming(timing?: OptionalEffectTiming): void; +} + +type Keyframe = { + composite?: CompositeOperationOrAuto; + easing?: string; + offset?: number | null; + [property: string]: string | number | null | void; + ... +} + +type ComputedKeyframe = { + composite: CompositeOperationOrAuto; + computedOffset: number; + easing: string; + offset: number | null; + [property: string]: string | number | null | void; + ... +} + +type PropertyIndexedKeyframes = { + composite?: CompositeOperationOrAuto | CompositeOperationOrAuto[]; + easing?: string | string[]; + offset?: number | (number | null)[]; + [property: string]: string | string[] | number | null | (number | null)[] | void; + ... +} + +type KeyframeEffectOptions = $Rest & { + iterationComposite?: IterationCompositeOperation; + composite?: CompositeOperation; + ... +} + +declare class KeyframeEffect extends AnimationEffect { + constructor( + target: Element | null, + keyframes: Keyframe[] | PropertyIndexedKeyframes | null, + options?: number | KeyframeEffectOptions, + ): void; + constructor(source: KeyframeEffect): void; + + target: Element | null; + iterationComposite: IterationCompositeOperation; + composite: CompositeOperation; + getKeyframes(): ComputedKeyframe[]; + setKeyframes(keyframes: Keyframe[] | PropertyIndexedKeyframes | null): void; +} + +declare class Animation extends EventTarget { + constructor(effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): void; + + id: string; + effect: AnimationEffect | null; + timeline: AnimationTimeline | null; + startTime: number | null; + currentTime: number | null; + playbackRate: number; + +playState: AnimationPlayState; + +replaceState: AnimationReplaceState; + +pending: boolean; + +ready: Promise; + +finished: Promise; + onfinish: ?((ev: AnimationPlaybackEvent) => mixed); + oncancel: ?((ev: AnimationPlaybackEvent) => mixed); + onremove: ?((ev: AnimationPlaybackEvent) => mixed); + cancel(): void; + finish(): void; + play(): void; + pause(): void; + updatePlaybackRate(playbackRate: number): void; + reverse(): void; + persist(): void; + commitStyles(): void; +} + +type KeyframeAnimationOptions = KeyframeEffectOptions & { + id?: string; + ... +} + +type GetAnimationsOptions = { + subtree?: boolean; + ... +} + +interface Animatable { + animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation; + getAnimations(options?: GetAnimationsOptions): Animation[]; +} + +type AnimationPlaybackEvent$Init = Event$Init & { + currentTime?: number | null; + timelineTime?: number | null; + ... +} + +declare class AnimationPlaybackEvent extends Event { + constructor(type: string, animationEventInitDict?: AnimationPlaybackEvent$Init): void; + +currentTime: number | null; + +timelineTime: number | null; +} diff --git a/flow/master/flowlib/dom.js b/flow/master/flowlib/dom.js new file mode 100644 index 00000000000..86cb387ba6b --- /dev/null +++ b/flow/master/flowlib/dom.js @@ -0,0 +1,4582 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * Copyright (c) Microsoft Corporation. All rights reserved. + * Modifications Copyright (c) Meta Platforms, Inc. and affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use + * this file except in compliance with the License. You may obtain a copy of the + * License at http://www.apache.org/licenses/LICENSE-2.0 + * THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + * WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + * MERCHANTABLITY OR NON-INFRINGEMENT. + * See the Apache Version 2.0 License for specific language governing permissions + * and limitations under the License. + * + * Portions copyright (c) World Wide Web Consortium, (Massachusetts Institute + * of Technology, European Research Consortium for Informatics and Mathematics, + * Keio University, Beihang). All Rights Reserved. This work is distributed + * under the W3C Software and Document License [1] in the hope that it will + * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * [1] http://www.w3.org/Consortium/Legal/copyright-software + * + * @flow + */ +// @lint-ignore-every LICENSELINT + +/* Files */ + +declare class Blob { + constructor(blobParts?: Array, options?: { + type?: string, + endings?: string, + ... + }): void; + isClosed: boolean; + size: number; + type: string; + close(): void; + slice(start?: number, end?: number, contentType?: string): Blob; + arrayBuffer(): Promise; + text(): Promise, + stream(): ReadableStream, +} + +declare class FileReader extends EventTarget { + +EMPTY: 0; + +LOADING: 1; + +DONE: 2; + +error: null | DOMError; + +readyState: 0 | 1 | 2; + +result: null | string | ArrayBuffer; + abort(): void; + onabort: null | (ev: ProgressEvent) => any; + onerror: null | (ev: ProgressEvent) => any; + onload: null | (ev: ProgressEvent) => any; + onloadend: null | (ev: ProgressEvent) => any; + onloadstart: null | (ev: ProgressEvent) => any; + onprogress: null | (ev: ProgressEvent) => any; + readAsArrayBuffer(blob: Blob): void; + readAsBinaryString(blob: Blob): void; + readAsDataURL(blob: Blob): void; + readAsText(blob: Blob, encoding?: string): void; +} + +declare type FilePropertyBag = { + type?: string, + lastModified?: number, + ... +}; +declare class File extends Blob { + constructor( + fileBits: $ReadOnlyArray, + filename: string, + options?: FilePropertyBag, + ): void; + lastModified: number; + name: string; +} + +declare class FileList { + @@iterator(): Iterator; + length: number; + item(index: number): File; + [index: number]: File; +} + +/* DataTransfer */ + +declare class DataTransfer { + clearData(format?: string): void; + getData(format: string): string; + setData(format: string, data: string): void; + setDragImage(image: Element, x: number, y: number): void; + dropEffect: string; + effectAllowed: string; + files: FileList; // readonly + items: DataTransferItemList; // readonly + types: Array; // readonly +} + +declare class DataTransferItemList { + @@iterator(): Iterator; + length: number; // readonly + [index: number]: DataTransferItem; + add(data: string, type: string): ?DataTransferItem; + add(data: File): ?DataTransferItem; + remove(index: number): void; + clear(): void; +}; + +declare class DataTransferItem { + kind: string; // readonly + type: string; // readonly + getAsString(_callback: ?(data: string) => mixed): void; + getAsFile(): ?File; + /* + * This is not supported by all browsers, please have a fallback plan for it. + * For more information, please checkout + * https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem/webkitGetAsEntry + */ + webkitGetAsEntry(): void | () => any; +}; + +/* DOM */ + +declare type DOMStringMap = { [key:string]: string, ... } + +declare class DOMStringList { + @@iterator(): Iterator; + +[key:number]: string; + +length: number; + item(number): string | null; + contains(string): boolean; +} + +declare class DOMError { + name: string; +} + +declare type ElementDefinitionOptions = { extends?: string, ... } + +declare interface CustomElementRegistry { + define(name: string, ctor: Class, options?: ElementDefinitionOptions): void; + get(name: string): any; + whenDefined(name: string): Promise; +} + +declare interface ShadowRoot extends DocumentFragment { + +delegatesFocus: boolean; + +host: Element; + // flowlint unsafe-getters-setters:off + get innerHTML(): string; + set innerHTML(value: string | TrustedHTML): void; + // flowlint unsafe-getters-setters:error + +mode: ShadowRootMode; + + // From DocumentOrShadowRoot Mixin. + +styleSheets: StyleSheetList; + adoptedStyleSheets: Array; +} + +declare type ShadowRootMode = 'open'|'closed'; + +declare type ShadowRootInit = { + delegatesFocus?: boolean, + mode: ShadowRootMode, + ... +} + +declare type ScrollToOptions = { + top?: number; + left?: number; + behavior?: 'auto' | 'smooth'; + ... +} + +type EventHandler = (event: Event) => mixed +type EventListener = { handleEvent: EventHandler, ... } | EventHandler +type MouseEventHandler = (event: MouseEvent) => mixed +type MouseEventListener = { handleEvent: MouseEventHandler, ... } | MouseEventHandler +type FocusEventHandler = (event: FocusEvent) => mixed +type FocusEventListener = { handleEvent: FocusEventHandler, ... } | FocusEventHandler +type KeyboardEventHandler = (event: KeyboardEvent) => mixed +type KeyboardEventListener = { handleEvent: KeyboardEventHandler, ... } | KeyboardEventHandler +type InputEventHandler = (event: InputEvent) => mixed +type InputEventListener = { handleEvent: InputEventHandler, ... } | InputEventHandler +type TouchEventHandler = (event: TouchEvent) => mixed +type TouchEventListener = { handleEvent: TouchEventHandler, ... } | TouchEventHandler +type WheelEventHandler = (event: WheelEvent) => mixed +type WheelEventListener = { handleEvent: WheelEventHandler, ... } | WheelEventHandler +type AbortProgressEventHandler = (event: ProgressEvent) => mixed +type AbortProgressEventListener = { handleEvent: AbortProgressEventHandler, ... } | AbortProgressEventHandler +type ProgressEventHandler = (event: ProgressEvent) => mixed +type ProgressEventListener = { handleEvent: ProgressEventHandler, ... } | ProgressEventHandler +type DragEventHandler = (event: DragEvent) => mixed +type DragEventListener = { handleEvent: DragEventHandler, ... } | DragEventHandler +type PointerEventHandler = (event: PointerEvent) => mixed +type PointerEventListener = { handleEvent: PointerEventHandler, ... } | PointerEventHandler +type AnimationEventHandler = (event: AnimationEvent) => mixed +type AnimationEventListener = { handleEvent: AnimationEventHandler, ... } | AnimationEventHandler +type ClipboardEventHandler = (event: ClipboardEvent) => mixed +type ClipboardEventListener = { handleEvent: ClipboardEventHandler, ... } | ClipboardEventHandler +type TransitionEventHandler = (event: TransitionEvent) => mixed +type TransitionEventListener = { handleEvent: TransitionEventHandler, ... } | TransitionEventHandler +type MessageEventHandler = (event: MessageEvent) => mixed +type MessageEventListener = { handleEvent: MessageEventHandler, ... } | MessageEventHandler +type BeforeUnloadEventHandler = (event: BeforeUnloadEvent) => mixed +type BeforeUnloadEventListener = { handleEvent: BeforeUnloadEventHandler, ... } | BeforeUnloadEventHandler +type StorageEventHandler = (event: StorageEvent) => mixed +type StorageEventListener = { handleEvent: StorageEventHandler, ... } | StorageEventHandler +type SecurityPolicyViolationEventHandler = (event: SecurityPolicyViolationEvent) => mixed +type SecurityPolicyViolationEventListener = { handleEvent: SecurityPolicyViolationEventHandler, ... } | SecurityPolicyViolationEventHandler +type USBConnectionEventHandler = (event: USBConnectionEvent) => mixed +type USBConnectionEventListener = { handleEvent: USBConnectionEventHandler, ... } | USBConnectionEventHandler + +type MediaKeySessionType = 'temporary' | 'persistent-license'; +type MediaKeyStatus = 'usable' | 'expired' | 'released' | 'output-restricted' | 'output-downscaled' | 'status-pending' | 'internal-error'; +type MouseEventTypes = 'contextmenu' | 'mousedown' | 'mouseenter' | 'mouseleave' | 'mousemove' | 'mouseout' | 'mouseover' | 'mouseup' | 'click' | 'dblclick'; +type FocusEventTypes = 'blur' | 'focus' | 'focusin' | 'focusout'; +type KeyboardEventTypes = 'keydown' | 'keyup' | 'keypress'; +type InputEventTypes = 'input' | 'beforeinput' +type TouchEventTypes = 'touchstart' | 'touchmove' | 'touchend' | 'touchcancel'; +type WheelEventTypes = 'wheel'; +type AbortProgressEventTypes = 'abort'; +type ProgressEventTypes = 'abort' | 'error' | 'load' | 'loadend' | 'loadstart' | 'progress' | 'timeout'; +type DragEventTypes = 'drag' | 'dragend' | 'dragenter' | 'dragexit' | 'dragleave' | 'dragover' | 'dragstart' | 'drop'; +type PointerEventTypes = 'pointerover' | 'pointerenter' | 'pointerdown' | 'pointermove' | 'pointerup' | 'pointercancel' | 'pointerout' | 'pointerleave' | 'gotpointercapture' | 'lostpointercapture'; +type AnimationEventTypes = 'animationstart' | 'animationend' | 'animationiteration'; +type ClipboardEventTypes = 'clipboardchange' | 'cut' | 'copy' | 'paste'; +type TransitionEventTypes = 'transitionrun' | 'transitionstart' | 'transitionend' | 'transitioncancel'; +type MessageEventTypes = string; +type BeforeUnloadEventTypes = 'beforeunload'; +type StorageEventTypes = 'storage'; +type SecurityPolicyViolationEventTypes = 'securitypolicyviolation'; +type USBConnectionEventTypes = 'connect' | 'disconnect'; + +type EventListenerOptionsOrUseCapture = boolean | { + capture?: boolean, + once?: boolean, + passive?: boolean, + signal?: AbortSignal, + ... +}; + +declare class EventTarget { + addEventListener(type: MouseEventTypes, listener: MouseEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: FocusEventTypes, listener: FocusEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: KeyboardEventTypes, listener: KeyboardEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: InputEventTypes, listener: InputEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: TouchEventTypes, listener: TouchEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: WheelEventTypes, listener: WheelEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: AbortProgressEventTypes, listener: AbortProgressEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: ProgressEventTypes, listener: ProgressEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: DragEventTypes, listener: DragEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: PointerEventTypes, listener: PointerEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: AnimationEventTypes, listener: AnimationEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: ClipboardEventTypes, listener: ClipboardEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: TransitionEventTypes, listener: TransitionEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: MessageEventTypes, listener: MessageEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: BeforeUnloadEventTypes, listener: BeforeUnloadEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: StorageEventTypes, listener: StorageEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: SecurityPolicyViolationEventTypes, listener: SecurityPolicyViolationEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: USBConnectionEventTypes, listener: USBConnectionEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + addEventListener(type: string, listener: EventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + + removeEventListener(type: MouseEventTypes, listener: MouseEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: FocusEventTypes, listener: FocusEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: KeyboardEventTypes, listener: KeyboardEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: InputEventTypes, listener: InputEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: TouchEventTypes, listener: TouchEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: WheelEventTypes, listener: WheelEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: AbortProgressEventTypes, listener: AbortProgressEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: ProgressEventTypes, listener: ProgressEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: DragEventTypes, listener: DragEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: PointerEventTypes, listener: PointerEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: AnimationEventTypes, listener: AnimationEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: ClipboardEventTypes, listener: ClipboardEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: TransitionEventTypes, listener: TransitionEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: MessageEventTypes, listener: MessageEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: BeforeUnloadEventTypes, listener: BeforeUnloadEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: StorageEventTypes, listener: StorageEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: SecurityPolicyViolationEventTypes, listener: SecurityPolicyViolationEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: USBConnectionEventTypes, listener: USBConnectionEventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + removeEventListener(type: string, listener: EventListener, optionsOrUseCapture?: EventListenerOptionsOrUseCapture): void; + + attachEvent?: (type: MouseEventTypes, listener: MouseEventListener) => void; + attachEvent?: (type: FocusEventTypes, listener: FocusEventListener) => void; + attachEvent?: (type: KeyboardEventTypes, listener: KeyboardEventListener) => void; + attachEvent?: (type: InputEventTypes, listener: InputEventListener) => void; + attachEvent?: (type: TouchEventTypes, listener: TouchEventListener) => void; + attachEvent?: (type: WheelEventTypes, listener: WheelEventListener) => void; + attachEvent?: (type: AbortProgressEventTypes, listener: AbortProgressEventListener) => void; + attachEvent?: (type: ProgressEventTypes, listener: ProgressEventListener) => void; + attachEvent?: (type: DragEventTypes, listener: DragEventListener) => void; + attachEvent?: (type: PointerEventTypes, listener: PointerEventListener) => void; + attachEvent?: (type: AnimationEventTypes, listener: AnimationEventListener) => void; + attachEvent?: (type: ClipboardEventTypes, listener: ClipboardEventListener) => void; + attachEvent?: (type: TransitionEventTypes, listener: TransitionEventListener) => void; + attachEvent?: (type: MessageEventTypes, listener: MessageEventListener) => void; + attachEvent?: (type: BeforeUnloadEventTypes, listener: BeforeUnloadEventListener) => void; + attachEvent?: (type: StorageEventTypes, listener: StorageEventListener) => void; + attachEvent?: (type: USBConnectionEventTypes, listener: USBConnectionEventListener) => void; + attachEvent?: (type: string, listener: EventListener) => void; + + detachEvent?: (type: MouseEventTypes, listener: MouseEventListener) => void; + detachEvent?: (type: FocusEventTypes, listener: FocusEventListener) => void; + detachEvent?: (type: KeyboardEventTypes, listener: KeyboardEventListener) => void; + detachEvent?: (type: InputEventTypes, listener: InputEventListener) => void; + detachEvent?: (type: TouchEventTypes, listener: TouchEventListener) => void; + detachEvent?: (type: WheelEventTypes, listener: WheelEventListener) => void; + detachEvent?: (type: AbortProgressEventTypes, listener: AbortProgressEventListener) => void; + detachEvent?: (type: ProgressEventTypes, listener: ProgressEventListener) => void; + detachEvent?: (type: DragEventTypes, listener: DragEventListener) => void; + detachEvent?: (type: PointerEventTypes, listener: PointerEventListener) => void; + detachEvent?: (type: AnimationEventTypes, listener: AnimationEventListener) => void; + detachEvent?: (type: ClipboardEventTypes, listener: ClipboardEventListener) => void; + detachEvent?: (type: TransitionEventTypes, listener: TransitionEventListener) => void; + detachEvent?: (type: MessageEventTypes, listener: MessageEventListener) => void; + detachEvent?: (type: BeforeUnloadEventTypes, listener: BeforeUnloadEventListener) => void; + detachEvent?: (type: StorageEventTypes, listener: StorageEventListener) => void; + detachEvent?: (type: USBConnectionEventTypes, listener: USBConnectionEventListener) => void; + detachEvent?: (type: string, listener: EventListener) => void; + + dispatchEvent(evt: Event): boolean; + + // Deprecated + + cancelBubble: boolean; + initEvent(eventTypeArg: string, canBubbleArg: boolean, cancelableArg: boolean): void; +} + +// https://dom.spec.whatwg.org/#dictdef-eventinit +type Event$Init = { + bubbles?: boolean, + cancelable?: boolean, + composed?: boolean, + /** Non-standard. See `composed` instead. */ + scoped?: boolean, + ... +} + +// https://dom.spec.whatwg.org/#interface-event +declare class Event { + constructor(type: string, eventInitDict?: Event$Init): void; + /** + * Returns the type of event, e.g. "click", "hashchange", or "submit". + */ + +type: string; + /** + * Returns the object to which event is dispatched (its target). + */ + +target: EventTarget; // TODO: nullable + /** @deprecated */ + +srcElement: Element; // TODO: nullable + /** + * Returns the object whose event listener's callback is currently being invoked. + */ + +currentTarget: EventTarget; // TODO: nullable + /** + * Returns the invocation target objects of event's path (objects on which + * listeners will be invoked), except for any nodes in shadow trees of which + * the shadow root's mode is "closed" that are not reachable from event's + * currentTarget. + */ + composedPath(): Array; + + +NONE: number; + +AT_TARGET: number; + +BUBBLING_PHASE: number; + +CAPTURING_PHASE: number; + /** + * Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, + * and BUBBLING_PHASE. + */ + +eventPhase: number; + + /** + * When dispatched in a tree, invoking this method prevents event from reaching + * any objects other than the current object. + */ + stopPropagation(): void; + /** + * Invoking this method prevents event from reaching any registered event + * listeners after the current one finishes running and, when dispatched in a + * tree, also prevents event from reaching any other objects. + */ + stopImmediatePropagation(): void; + + /** + * Returns true or false depending on how event was initialized. True if + * event goes through its target's ancestors in reverse tree order, and + * false otherwise. + */ + +bubbles: boolean; + /** + * Returns true or false depending on how event was initialized. Its + * return value does not always carry meaning, but true can indicate + * that part of the operation during which event was dispatched, can + * be canceled by invoking the preventDefault() method. + */ + +cancelable: boolean; + // returnValue: boolean; // legacy, and some subclasses still define it as a string! + /** + * If invoked when the cancelable attribute value is true, and while + * executing a listener for the event with passive set to false, signals to + * the operation that caused event to be dispatched that it needs to be + * canceled. + */ + preventDefault(): void; + /** + * Returns true if preventDefault() was invoked successfully to indicate + * cancelation, and false otherwise. + */ + +defaultPrevented: boolean; + /** + * Returns true or false depending on how event was initialized. True if + * event invokes listeners past a ShadowRoot node that is the root of its + * target, and false otherwise. + */ + +composed: boolean; + + /** + * Returns true if event was dispatched by the user agent, and false otherwise. + */ + +isTrusted: boolean; + /** + * Returns the event's timestamp as the number of milliseconds measured relative + * to the time origin. + */ + +timeStamp: number; + + /** Non-standard. See Event.prototype.composedPath */ + +deepPath?: () => EventTarget[]; + /** Non-standard. See Event.prototype.composed */ + +scoped: boolean; + + /** + * @deprecated + */ + initEvent( + type: string, + bubbles: boolean, + cancelable: boolean + ): void; +} + +type CustomEvent$Init = { ...Event$Init, detail?: any, ... } + +declare class CustomEvent extends Event { + constructor(type: string, eventInitDict?: CustomEvent$Init): void; + detail: any; + + // deprecated + initCustomEvent( + type: string, + bubbles: boolean, + cancelable: boolean, + detail: any + ): CustomEvent; +} + +type UIEvent$Init = { ...Event$Init, detail?: number, view?: any, ... } + +declare class UIEvent extends Event { + constructor(typeArg: string, uiEventInit?: UIEvent$Init): void; + detail: number; + view: any; +} + +declare class CompositionEvent extends UIEvent { + data: string | null; + locale: string, +} + +type MouseEvent$MouseEventInit = { + screenX?: number, + screenY?: number, + clientX?: number, + clientY?: number, + ctrlKey?: boolean, + shiftKey?: boolean, + altKey?: boolean, + metaKey?: boolean, + button?: number, + buttons?: number, + region?: string | null, + relatedTarget?: EventTarget | null, + ... +}; + +declare class MouseEvent extends UIEvent { + constructor( + typeArg: string, + mouseEventInit?: MouseEvent$MouseEventInit, + ): void; + altKey: boolean; + button: number; + buttons: number; + clientX: number; + clientY: number; + ctrlKey: boolean; + metaKey: boolean; + movementX: number; + movementY: number; + offsetX: number; + offsetY: number; + pageX: number; + pageY: number; + region: string | null; + relatedTarget: EventTarget | null; + screenX: number; + screenY: number; + shiftKey: boolean; + x: number; + y: number; + getModifierState(keyArg: string): boolean; +} + +declare class FocusEvent extends UIEvent { + relatedTarget: ?EventTarget; +} + +type WheelEvent$Init = { + ...MouseEvent$MouseEventInit, + deltaX?: number, + deltaY?: number, + deltaZ?: number; + deltaMode?: 0x00 | 0x01 | 0x02, + ... +} + +declare class WheelEvent extends MouseEvent { + static +DOM_DELTA_PIXEL: 0x00; + static +DOM_DELTA_LINE: 0x01; + static +DOM_DELTA_PAGE: 0x02; + + constructor(type: string, eventInitDict?: WheelEvent$Init): void; + +deltaX: number; + +deltaY: number; + +deltaZ: number; + +deltaMode: 0x00 | 0x01 | 0x02; +} + +declare class DragEvent extends MouseEvent { + dataTransfer: ?DataTransfer; // readonly +} + +type PointerEvent$PointerEventInit = MouseEvent$MouseEventInit & { + pointerId?: number, + width?: number, + height?: number, + pressure?: number, + tangentialPressure?: number, + tiltX?: number, + tiltY?: number, + twist?: number, + pointerType?: string, + isPrimary?: boolean, + ... +}; + +declare class PointerEvent extends MouseEvent { + constructor( + typeArg: string, + pointerEventInit?: PointerEvent$PointerEventInit, + ): void; + pointerId: number; + width: number; + height: number; + pressure: number; + tangentialPressure: number; + tiltX: number; + tiltY: number; + twist: number; + pointerType: string; + isPrimary: boolean; +} + +declare class ProgressEvent extends Event { + lengthComputable: boolean; + loaded: number; + total: number; + + // Deprecated + initProgressEvent( + typeArg: string, + canBubbleArg: boolean, + cancelableArg: boolean, + lengthComputableArg: boolean, + loadedArg: number, + totalArg: number + ): void; +} + +declare class PromiseRejectionEvent extends Event { + promise: Promise; + reason: any; +} + +type PageTransitionEventInit = { + ...Event$Init, + persisted: boolean, + ... +} + +// https://html.spec.whatwg.org/multipage/browsing-the-web.html#the-pagetransitionevent-interface +declare class PageTransitionEvent extends Event { + constructor(type: string, init?: PageTransitionEventInit): void; + +persisted: boolean; +} + +// used for websockets and postMessage, for example. See: +// https://www.w3.org/TR/2011/WD-websockets-20110419/ +// and +// https://www.w3.org/TR/2008/WD-html5-20080610/comms.html +// and +// https://html.spec.whatwg.org/multipage/comms.html#the-messageevent-interfaces +declare class MessageEvent extends Event { + data: mixed; + origin: string; + lastEventId: string; + source: WindowProxy; +} + +// https://www.w3.org/TR/eventsource/ +declare class EventSource extends EventTarget { + constructor(url: string, configuration?: { withCredentials: boolean, ... }): void; + +CLOSED: 2; + +CONNECTING: 0; + +OPEN: 1; + +readyState: 0 | 1 | 2; + +url: string; + +withCredentials: boolean; + onerror: () => void; + onmessage: MessageEventListener; + onopen: () => void; + close: () => void; +} + +// https://w3c.github.io/uievents/#idl-keyboardeventinit +type KeyboardEvent$Init = { + ...UIEvent$Init, + /** + * Initializes the `key` attribute of the KeyboardEvent object to the unicode + * character string representing the meaning of a key after taking into + * account all keyboard modifiers (such as shift-state). This value is the + * final effective value of the key. If the key is not a printable character, + * then it should be one of the key values defined in [UIEvents-Key](https://www.w3.org/TR/uievents-key/). + * + * NOTE: not `null`, this results in `evt.key === 'null'`! + */ + key?: string | void, + /** + * Initializes the `code` attribute of the KeyboardEvent object to the unicode + * character string representing the key that was pressed, ignoring any + * keyboard modifications such as keyboard layout. This value should be one + * of the code values defined in [UIEvents-Code](https://www.w3.org/TR/uievents-code/). + * + * NOTE: not `null`, this results in `evt.code === 'null'`! + */ + code?: string | void, + /** + * Initializes the `location` attribute of the KeyboardEvent object to one of + * the following location numerical constants: + * + * DOM_KEY_LOCATION_STANDARD (numerical value 0) + * DOM_KEY_LOCATION_LEFT (numerical value 1) + * DOM_KEY_LOCATION_RIGHT (numerical value 2) + * DOM_KEY_LOCATION_NUMPAD (numerical value 3) + */ + location?: number, + /** + * Initializes the `ctrlKey` attribute of the KeyboardEvent object to true if + * the Control key modifier is to be considered active, false otherwise. + */ + ctrlKey?: boolean, + /** + * Initializes the `shiftKey` attribute of the KeyboardEvent object to true if + * the Shift key modifier is to be considered active, false otherwise. + */ + shiftKey?: boolean, + /** + * Initializes the `altKey` attribute of the KeyboardEvent object to true if + * the Alt (alternative) (or Option) key modifier is to be considered active, + * false otherwise. + */ + altKey?: boolean, + /** + * Initializes the `metaKey` attribute of the KeyboardEvent object to true if + * the Meta key modifier is to be considered active, false otherwise. + */ + metaKey?: boolean, + /** + * Initializes the `repeat` attribute of the KeyboardEvent object. This + * attribute should be set to true if the the current KeyboardEvent is + * considered part of a repeating sequence of similar events caused by the + * long depression of any single key, false otherwise. + */ + repeat?: boolean, + /** + * Initializes the `isComposing` attribute of the KeyboardEvent object. This + * attribute should be set to true if the event being constructed occurs as + * part of a composition sequence, false otherwise. + */ + isComposing?: boolean, + /** + * Initializes the `charCode` attribute of the KeyboardEvent to the Unicode + * code point for the event’s character. + */ + charCode?: number, + /** + * Initializes the `keyCode` attribute of the KeyboardEvent to the system- + * and implementation-dependent numerical code signifying the unmodified + * identifier associated with the key pressed. + */ + keyCode?: number, + /** Initializes the `which` attribute */ + which?: number, + ... +} + +// https://w3c.github.io/uievents/#idl-keyboardevent +declare class KeyboardEvent extends UIEvent { + constructor(typeArg: string, init?: KeyboardEvent$Init): void; + + /** `true` if the Alt (alternative) (or "Option") key modifier was active. */ + +altKey: boolean; + /** + * Holds a string that identifies the physical key being pressed. The value + * is not affected by the current keyboard layout or modifier state, so a + * particular key will always return the same value. + */ + +code: string; + /** `true` if the Control (control) key modifier was active. */ + +ctrlKey: boolean; + /** + * `true` if the key event occurs as part of a composition session, i.e., + * after a `compositionstart` event and before the corresponding + * `compositionend` event. + */ + +isComposing: boolean; + /** + * Holds a [key attribute value](https://www.w3.org/TR/uievents-key/#key-attribute-value) + * corresponding to the key pressed. */ + +key: string; + /** An indication of the logical location of the key on the device. */ + +location: number; + /** `true` if the meta (Meta) key (or "Command") modifier was active. */ + +metaKey: boolean; + /** `true` if the key has been pressed in a sustained manner. */ + +repeat: boolean; + /** `true` if the shift (Shift) key modifier was active. */ + +shiftKey: boolean; + + /** + * Queries the state of a modifier using a key value. + * + * Returns `true` if it is a modifier key and the modifier is activated, + * `false` otherwise. + */ + getModifierState(keyArg?: string): boolean; + + /** + * Holds a character value, for keypress events which generate character + * input. The value is the Unicode reference number (code point) of that + * character (e.g. event.charCode = event.key.charCodeAt(0) for printable + * characters). For keydown or keyup events, the value of charCode is 0. + * + * @deprecated You should use KeyboardEvent.key instead, if available. + */ + +charCode: number; + /** + * Holds a system- and implementation-dependent numerical code signifying + * the unmodified identifier associated with the key pressed. Unlike the + * `key` attribute, the set of possible values are not normatively defined. + * Typically, these value of the keyCode SHOULD represent the decimal + * codepoint in ASCII or Windows 1252, but MAY be drawn from a different + * appropriate character set. Implementations that are unable to identify + * a key use the key value 0. + * + * @deprecated You should use KeyboardEvent.key instead, if available. + */ + +keyCode: number; + /** + * Holds a system- and implementation-dependent numerical code signifying + * the unmodified identifier associated with the key pressed. In most cases, + * the value is identical to keyCode. + * + * @deprecated You should use KeyboardEvent.key instead, if available. + */ + +which: number; +} + +type InputEvent$Init = { + ...UIEvent$Init, + inputType?: string, + data?: string, + dataTransfer?: DataTransfer, + isComposing?: boolean, + ranges?: Array, // TODO: StaticRange + ... +} + +declare class InputEvent extends UIEvent { + constructor(typeArg: string, inputEventInit: InputEvent$Init): void; + +data: string | null; + +dataTransfer: DataTransfer | null; + +inputType: string; + +isComposing: boolean; + getTargetRanges(): Array; // TODO: StaticRange +} + +declare class AnimationEvent extends Event { + animationName: string; + elapsedTime: number; + pseudoElement: string; + + // deprecated + + initAnimationEvent: ( + type: 'animationstart' | 'animationend' | 'animationiteration', + canBubble: boolean, + cancelable: boolean, + animationName: string, + elapsedTime: number + ) => void; +} + +// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface +declare class ErrorEvent extends Event { + constructor( + type: string, + eventInitDict?: { + ...Event$Init, + message?: string, + filename?: string, + lineno?: number, + colno?: number, + error?: any, + ... + }, + ): void; + +message: string; + +filename: string; + +lineno: number; + +colno: number; + +error: any; +} + +// https://html.spec.whatwg.org/multipage/web-messaging.html#broadcasting-to-other-browsing-contexts +declare class BroadcastChannel extends EventTarget { + name: string; + onmessage: ?(event: MessageEvent) => void; + onmessageerror: ?(event: MessageEvent) => void; + + constructor(name: string): void; + postMessage(msg: mixed): void; + close(): void; +} + +// https://www.w3.org/TR/touch-events/#idl-def-Touch +declare class Touch { + clientX: number, + clientY: number, + identifier: number, + pageX: number, + pageY: number, + screenX: number, + screenY: number, + target: EventTarget, +} + +// https://www.w3.org/TR/touch-events/#idl-def-TouchList +// TouchList#item(index) will return null if n > #length. Should #item's +// return type just been Touch? +declare class TouchList { + @@iterator(): Iterator; + length: number, + item(index: number): null | Touch, + [index: number]: Touch, +} + +// https://www.w3.org/TR/touch-events/#touchevent-interface +declare class TouchEvent extends UIEvent { + altKey: boolean, + changedTouches: TouchList, + ctrlKey: boolean, + metaKey: boolean, + shiftKey: boolean, + targetTouches: TouchList, + touches: TouchList, +} + +// https://www.w3.org/TR/webstorage/#the-storageevent-interface +declare class StorageEvent extends Event { + key: ?string, + oldValue: ?string, + newValue: ?string, + url: string, + storageArea: ?Storage, +} + +// https://www.w3.org/TR/clipboard-apis/#typedefdef-clipboarditemdata +// Raw string | Blob are allowed per https://webidl.spec.whatwg.org/#es-promise +type ClipboardItemData = string | Blob | Promise; + +type PresentationStyle = "attachment" | "inline" | "unspecified"; + +type ClipboardItemOptions = { + presentationStyle?: PresentationStyle; + ... +} + +declare class ClipboardItem { + +types: $ReadOnlyArray; + getType(type: string): Promise; + constructor(items: {[type: string]: ClipboardItemData}, options?: ClipboardItemOptions): void; +} + +// https://w3c.github.io/clipboard-apis/ as of 15 May 2018 +type ClipboardEvent$Init = { + ...Event$Init, + clipboardData: DataTransfer | null, + ... +}; + +declare class ClipboardEvent extends Event { + constructor(type: ClipboardEventTypes, eventInit?: ClipboardEvent$Init): void; + +clipboardData: ?DataTransfer; // readonly +} + +// https://www.w3.org/TR/2017/WD-css-transitions-1-20171130/#interface-transitionevent +type TransitionEvent$Init = { + ...Event$Init, + propertyName: string, + elapsedTime: number, + pseudoElement: string, + ... +}; + +declare class TransitionEvent extends Event { + constructor(type: TransitionEventTypes, eventInit?: TransitionEvent$Init): void; + + +propertyName: string; // readonly + +elapsedTime: number; // readonly + +pseudoElement: string; // readonly +} + +// https://www.w3.org/TR/html50/browsers.html#beforeunloadevent +declare class BeforeUnloadEvent extends Event { + returnValue: string, +} + +declare class SecurityPolicyViolationEvent extends Event { + +documentURI: string; + +referrer: string; + +blockedURI: string; + +effectiveDirective: string; + +violatedDirective: string; + +originalPolicy: string; + +sourceFile: string; + +sample: string; + +disposition: "enforce" | "report"; + +statusCode: number; + +lineNumber: number; + +columnNumber: number; +}; + +// https://developer.mozilla.org/en-US/docs/Web/API/USBConnectionEvent +declare class USBConnectionEvent extends Event { + device: USBDevice, +} + +// TODO: *Event + +declare class Node extends EventTarget { + baseURI: ?string; + childNodes: NodeList; + firstChild: ?Node; + +isConnected: boolean; + lastChild: ?Node; + nextSibling: ?Node; + nodeName: string; + nodeType: number; + nodeValue: string; + ownerDocument: Document; + parentElement: ?Element; + parentNode: ?Node; + previousSibling: ?Node; + rootNode: Node; + textContent: string; + appendChild(newChild: T): T; + cloneNode(deep?: boolean): this; + compareDocumentPosition(other: Node): number; + contains(other: ?Node): boolean; + getRootNode(options?: { composed: boolean, ... }): Node; + hasChildNodes(): boolean; + insertBefore(newChild: T, refChild?: ?Node): T; + isDefaultNamespace(namespaceURI: string): boolean; + isEqualNode(arg: Node): boolean; + isSameNode(other: Node): boolean; + lookupNamespaceURI(prefix: string): string; + lookupPrefix(namespaceURI: string): string; + normalize(): void; + removeChild(oldChild: T): T; + replaceChild(newChild: Node, oldChild: T): T; + static ATTRIBUTE_NODE: number; + static CDATA_SECTION_NODE: number; + static COMMENT_NODE: number; + static DOCUMENT_FRAGMENT_NODE: number; + static DOCUMENT_NODE: number; + static DOCUMENT_POSITION_CONTAINED_BY: number; + static DOCUMENT_POSITION_CONTAINS: number; + static DOCUMENT_POSITION_DISCONNECTED: number; + static DOCUMENT_POSITION_FOLLOWING: number; + static DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number; + static DOCUMENT_POSITION_PRECEDING: number; + static DOCUMENT_TYPE_NODE: number; + static ELEMENT_NODE: number; + static ENTITY_NODE: number; + static ENTITY_REFERENCE_NODE: number; + static NOTATION_NODE: number; + static PROCESSING_INSTRUCTION_NODE: number; + static TEXT_NODE: number; + + // Non-standard + innerText?: string; + outerText?: string; +} + +declare class NodeList { + @@iterator(): Iterator; + length: number; + item(index: number): T; + [index: number]: T; + + forEach(callbackfn: (this : This, value: T, index: number, list: NodeList) => any, thisArg: This): void; + entries(): Iterator<[number, T]>; + keys(): Iterator; + values(): Iterator; +} + +declare class NamedNodeMap { + @@iterator(): Iterator; + length: number; + removeNamedItemNS(namespaceURI: string, localName: string): Attr; + item(index: number): Attr; + [index: number | string]: Attr; + removeNamedItem(name: string): Attr; + getNamedItem(name: string): Attr; + setNamedItem(arg: Attr): Attr; + getNamedItemNS(namespaceURI: string, localName: string): Attr; + setNamedItemNS(arg: Attr): Attr; +} + +declare class Attr extends Node { + isId: boolean; + specified: boolean; + ownerElement: Element | null; + value: string; + name: string; + namespaceURI: string | null; + prefix: string | null; + localName: string; +} + +declare class HTMLCollection<+Elem: HTMLElement> { + @@iterator(): Iterator; + length: number; + item(nameOrIndex?: any, optionalIndex?: any): Elem | null; + namedItem(name: string): Elem | null; + [index: number | string]: Elem; +} + +// from https://www.w3.org/TR/custom-elements/#extensions-to-document-interface-to-register +// See also https://github.com/w3c/webcomponents/ +type ElementRegistrationOptions = { + +prototype?: { + // from https://www.w3.org/TR/custom-elements/#types-of-callbacks + // See also https://github.com/w3c/webcomponents/ + +createdCallback?: () => mixed, + +attachedCallback?: () => mixed, + +detachedCallback?: () => mixed, + +attributeChangedCallback?: + // attribute is set + (( + attributeLocalName: string, + oldAttributeValue: null, + newAttributeValue: string, + attributeNamespace: string + ) => mixed) & + // attribute is changed + (( + attributeLocalName: string, + oldAttributeValue: string, + newAttributeValue: string, + attributeNamespace: string + ) => mixed) & + // attribute is removed + (( + attributeLocalName: string, + oldAttributeValue: string, + newAttributeValue: null, + attributeNamespace: string + ) => mixed), + ... + }, + +extends?: string, + ... +} + +type ElementCreationOptions = { is: string, ...} + +declare class Document extends Node { + +timeline: DocumentTimeline; + getAnimations(): Array; + +URL: string; + adoptNode(source: T): T; + anchors: HTMLCollection; + applets: HTMLCollection; + body: HTMLBodyElement | null; + +characterSet: string; + /** + * Legacy alias of `characterSet` + * @deprecated + */ + +charset: string; + close(): void; + +contentType: string; + cookie: string; + createAttribute(name: string): Attr; + createAttributeNS(namespaceURI: string | null, qualifiedName: string): Attr; + createCDATASection(data: string): Text; + createComment(data: string): Comment; + createDocumentFragment(): DocumentFragment; + createElement(tagName: 'a', options?: ElementCreationOptions): HTMLAnchorElement; + createElement(tagName: 'area', options?: ElementCreationOptions): HTMLAreaElement; + createElement(tagName: 'audio', options?: ElementCreationOptions): HTMLAudioElement; + createElement(tagName: 'blockquote', options?: ElementCreationOptions): HTMLQuoteElement; + createElement(tagName: 'body', options?: ElementCreationOptions): HTMLBodyElement; + createElement(tagName: 'br', options?: ElementCreationOptions): HTMLBRElement; + createElement(tagName: 'button', options?: ElementCreationOptions): HTMLButtonElement; + createElement(tagName: 'canvas', options?: ElementCreationOptions): HTMLCanvasElement; + createElement(tagName: 'col', options?: ElementCreationOptions): HTMLTableColElement; + createElement(tagName: 'colgroup', options?: ElementCreationOptions): HTMLTableColElement; + createElement(tagName: 'data', options?: ElementCreationOptions): HTMLDataElement; + createElement(tagName: 'datalist', options?: ElementCreationOptions): HTMLDataListElement; + createElement(tagName: 'del', options?: ElementCreationOptions): HTMLModElement; + createElement(tagName: 'details', options?: ElementCreationOptions): HTMLDetailsElement; + createElement(tagName: 'dialog', options?: ElementCreationOptions): HTMLDialogElement; + createElement(tagName: 'div', options?: ElementCreationOptions): HTMLDivElement; + createElement(tagName: 'dl', options?: ElementCreationOptions): HTMLDListElement; + createElement(tagName: 'embed', options?: ElementCreationOptions): HTMLEmbedElement; + createElement(tagName: 'fieldset', options?: ElementCreationOptions): HTMLFieldSetElement; + createElement(tagName: 'form', options?: ElementCreationOptions): HTMLFormElement; + createElement(tagName: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6', options?: ElementCreationOptions): HTMLHeadingElement; + createElement(tagName: 'head', options?: ElementCreationOptions): HTMLHeadElement; + createElement(tagName: 'hr', options?: ElementCreationOptions): HTMLHRElement; + createElement(tagName: 'html', options?: ElementCreationOptions): HTMLHtmlElement; + createElement(tagName: 'iframe', options?: ElementCreationOptions): HTMLIFrameElement; + createElement(tagName: 'img', options?: ElementCreationOptions): HTMLImageElement; + createElement(tagName: 'input', options?: ElementCreationOptions): HTMLInputElement; + createElement(tagName: 'ins', options?: ElementCreationOptions): HTMLModElement; + createElement(tagName: 'label', options?: ElementCreationOptions): HTMLLabelElement; + createElement(tagName: 'legend', options?: ElementCreationOptions): HTMLLegendElement; + createElement(tagName: 'li', options?: ElementCreationOptions): HTMLLIElement; + createElement(tagName: 'link', options?: ElementCreationOptions): HTMLLinkElement; + createElement(tagName: 'map', options?: ElementCreationOptions): HTMLMapElement; + createElement(tagName: 'meta', options?: ElementCreationOptions): HTMLMetaElement; + createElement(tagName: 'meter', options?: ElementCreationOptions): HTMLMeterElement; + createElement(tagName: 'object', options?: ElementCreationOptions): HTMLObjectElement; + createElement(tagName: 'ol', options?: ElementCreationOptions): HTMLOListElement; + createElement(tagName: 'optgroup', options?: ElementCreationOptions): HTMLOptGroupElement; + createElement(tagName: 'option', options?: ElementCreationOptions): HTMLOptionElement; + createElement(tagName: 'p', options?: ElementCreationOptions): HTMLParagraphElement; + createElement(tagName: 'param', options?: ElementCreationOptions): HTMLParamElement; + createElement(tagName: 'picture', options?: ElementCreationOptions): HTMLPictureElement; + createElement(tagName: 'pre', options?: ElementCreationOptions): HTMLPreElement; + createElement(tagName: 'progress', options?: ElementCreationOptions): HTMLProgressElement; + createElement(tagName: 'q', options?: ElementCreationOptions): HTMLQuoteElement; + createElement(tagName: 'script', options?: ElementCreationOptions): HTMLScriptElement; + createElement(tagName: 'select', options?: ElementCreationOptions): HTMLSelectElement; + createElement(tagName: 'source', options?: ElementCreationOptions): HTMLSourceElement; + createElement(tagName: 'span', options?: ElementCreationOptions): HTMLSpanElement; + createElement(tagName: 'style', options?: ElementCreationOptions): HTMLStyleElement; + createElement(tagName: 'textarea', options?: ElementCreationOptions): HTMLTextAreaElement; + createElement(tagName: 'time', options?: ElementCreationOptions): HTMLTimeElement; + createElement(tagName: 'title', options?: ElementCreationOptions): HTMLTitleElement; + createElement(tagName: 'track', options?: ElementCreationOptions): HTMLTrackElement; + createElement(tagName: 'video', options?: ElementCreationOptions): HTMLVideoElement; + createElement(tagName: 'table', options?: ElementCreationOptions): HTMLTableElement; + createElement(tagName: 'caption', options?: ElementCreationOptions): HTMLTableCaptionElement; + createElement(tagName: 'thead' | 'tfoot' | 'tbody', options?: ElementCreationOptions): HTMLTableSectionElement; + createElement(tagName: 'tr', options?: ElementCreationOptions): HTMLTableRowElement; + createElement(tagName: 'td' | 'th', options?: ElementCreationOptions): HTMLTableCellElement; + createElement(tagName: 'template', options?: ElementCreationOptions): HTMLTemplateElement; + createElement(tagName: 'ul', options?: ElementCreationOptions): HTMLUListElement; + createElement(tagName: string, options?: ElementCreationOptions): HTMLElement; + createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element; + createTextNode(data: string): Text; + currentScript: HTMLScriptElement | null; + dir: 'rtl' | 'ltr'; + +doctype: DocumentType | null; + +documentElement: HTMLElement | null; + documentMode: number; + +documentURI: string; + domain: string | null; + embeds: HTMLCollection; + exitFullscreen(): Promise, + queryCommandSupported(cmdID: string): boolean; + execCommand(cmdID: string, showUI?: boolean, value?: any): boolean; + forms: HTMLCollection; + fullscreenElement: Element | null; + fullscreenEnabled: boolean; + getElementsByClassName(classNames: string): HTMLCollection; + getElementsByName(elementName: string): HTMLCollection; + getElementsByTagName(name: 'a'): HTMLCollection; + getElementsByTagName(name: 'area'): HTMLCollection; + getElementsByTagName(name: 'audio'): HTMLCollection; + getElementsByTagName(name: 'blockquote'): HTMLCollection; + getElementsByTagName(name: 'body'): HTMLCollection; + getElementsByTagName(name: 'br'): HTMLCollection; + getElementsByTagName(name: 'button'): HTMLCollection; + getElementsByTagName(name: 'canvas'): HTMLCollection; + getElementsByTagName(name: 'col'): HTMLCollection; + getElementsByTagName(name: 'colgroup'): HTMLCollection; + getElementsByTagName(name: 'data'): HTMLCollection; + getElementsByTagName(name: 'datalist'): HTMLCollection; + getElementsByTagName(name: 'del'): HTMLCollection; + getElementsByTagName(name: 'details'): HTMLCollection; + getElementsByTagName(name: 'dialog'): HTMLCollection; + getElementsByTagName(name: 'div'): HTMLCollection; + getElementsByTagName(name: 'dl'): HTMLCollection; + getElementsByTagName(name: 'embed'): HTMLCollection; + getElementsByTagName(name: 'fieldset'): HTMLCollection; + getElementsByTagName(name: 'form'): HTMLCollection; + getElementsByTagName(name: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'): HTMLCollection; + getElementsByTagName(name: 'head'): HTMLCollection; + getElementsByTagName(name: 'hr'): HTMLCollection; + getElementsByTagName(name: 'html'): HTMLCollection; + getElementsByTagName(name: 'iframe'): HTMLCollection; + getElementsByTagName(name: 'img'): HTMLCollection; + getElementsByTagName(name: 'input'): HTMLCollection; + getElementsByTagName(name: 'ins'): HTMLCollection; + getElementsByTagName(name: 'label'): HTMLCollection; + getElementsByTagName(name: 'legend'): HTMLCollection; + getElementsByTagName(name: 'li'): HTMLCollection; + getElementsByTagName(name: 'link'): HTMLCollection; + getElementsByTagName(name: 'map'): HTMLCollection; + getElementsByTagName(name: 'meta'): HTMLCollection; + getElementsByTagName(name: 'meter'): HTMLCollection; + getElementsByTagName(name: 'object'): HTMLCollection; + getElementsByTagName(name: 'ol'): HTMLCollection; + getElementsByTagName(name: 'option'): HTMLCollection; + getElementsByTagName(name: 'optgroup'): HTMLCollection; + getElementsByTagName(name: 'p'): HTMLCollection; + getElementsByTagName(name: 'param'): HTMLCollection; + getElementsByTagName(name: 'picture'): HTMLCollection; + getElementsByTagName(name: 'pre'): HTMLCollection; + getElementsByTagName(name: 'progress'): HTMLCollection; + getElementsByTagName(name: 'q'): HTMLCollection; + getElementsByTagName(name: 'script'): HTMLCollection; + getElementsByTagName(name: 'select'): HTMLCollection; + getElementsByTagName(name: 'source'): HTMLCollection; + getElementsByTagName(name: 'span'): HTMLCollection; + getElementsByTagName(name: 'style'): HTMLCollection; + getElementsByTagName(name: 'textarea'): HTMLCollection; + getElementsByTagName(name: 'time'): HTMLCollection; + getElementsByTagName(name: 'title'): HTMLCollection; + getElementsByTagName(name: 'track'): HTMLCollection; + getElementsByTagName(name: 'video'): HTMLCollection; + getElementsByTagName(name: 'table'): HTMLCollection; + getElementsByTagName(name: 'caption'): HTMLCollection; + getElementsByTagName(name: 'thead' | 'tfoot' | 'tbody'): HTMLCollection; + getElementsByTagName(name: 'tr'): HTMLCollection; + getElementsByTagName(name: 'td' | 'th'): HTMLCollection; + getElementsByTagName(name: 'template'): HTMLCollection; + getElementsByTagName(name: 'ul'): HTMLCollection; + getElementsByTagName(name: string): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'a'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'area'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'audio'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'blockquote'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'body'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'br'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'button'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'canvas'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'col'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'colgroup'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'data'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'datalist'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'del'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'details'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'dialog'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'div'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'dl'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'embed'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'fieldset'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'form'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'head'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'hr'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'html'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'iframe'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'img'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'input'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'ins'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'label'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'legend'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'li'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'link'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'map'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'meta'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'meter'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'object'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'ol'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'option'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'optgroup'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'p'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'param'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'picture'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'pre'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'progress'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'q'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'script'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'select'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'source'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'span'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'style'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'textarea'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'time'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'title'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'track'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'video'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'table'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'caption'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'thead' | 'tfoot' | 'tbody'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'tr'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'td' | 'th'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'template'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'ul'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: string): HTMLCollection; + head: HTMLHeadElement | null; + images: HTMLCollection; + +implementation: DOMImplementation; + importNode(importedNode: T, deep: boolean): T; + /** + * Legacy alias of `characterSet` + * @deprecated + */ + +inputEncoding: string; + lastModified: string; + links: HTMLCollection; + media: string; + open(url?: string, name?: string, features?: string, replace?: boolean): any; + readyState: string; + referrer: string; + scripts: HTMLCollection; + scrollingElement: HTMLElement | null; + title: string; + visibilityState: 'visible' | 'hidden' | 'prerender' | 'unloaded'; + write(...content: Array): void; + writeln(...content: Array): void; + xmlEncoding: string; + xmlStandalone: boolean; + xmlVersion: string; + + registerElement(type: string, options?: ElementRegistrationOptions): any; + getSelection(): Selection | null; + + // 6.4.6 Focus management APIs + activeElement: HTMLElement | null; + hasFocus(): boolean; + + // extension + location: Location; + createEvent(eventInterface: 'CustomEvent'): CustomEvent; + createEvent(eventInterface: string): Event; + createRange(): Range; + elementFromPoint(x: number, y: number): HTMLElement | null; + elementsFromPoint(x: number, y: number): Array; + defaultView: any; + +compatMode: 'BackCompat' | 'CSS1Compat'; + hidden: boolean; + + // Pointer Lock specification + exitPointerLock(): void; + pointerLockElement: Element | null; + + // from ParentNode interface + childElementCount: number; + children: HTMLCollection; + firstElementChild: ?Element; + lastElementChild: ?Element; + append(...nodes: Array): void; + prepend(...nodes: Array): void; + + querySelector(selector: 'a'): HTMLAnchorElement | null; + querySelector(selector: 'area'): HTMLAreaElement | null; + querySelector(selector: 'audio'): HTMLAudioElement | null; + querySelector(selector: 'blockquote'): HTMLQuoteElement | null; + querySelector(selector: 'body'): HTMLBodyElement | null; + querySelector(selector: 'br'): HTMLBRElement | null; + querySelector(selector: 'button'): HTMLButtonElement | null; + querySelector(selector: 'canvas'): HTMLCanvasElement | null; + querySelector(selector: 'col'): HTMLTableColElement | null; + querySelector(selector: 'colgroup'): HTMLTableColElement | null; + querySelector(selector: 'data'): HTMLDataElement | null; + querySelector(selector: 'datalist'): HTMLDataListElement | null; + querySelector(selector: 'del'): HTMLModElement | null; + querySelector(selector: 'details'): HTMLDetailsElement | null; + querySelector(selector: 'dialog'): HTMLDialogElement | null; + querySelector(selector: 'div'): HTMLDivElement | null; + querySelector(selector: 'dl'): HTMLDListElement | null; + querySelector(selector: 'embed'): HTMLEmbedElement | null; + querySelector(selector: 'fieldset'): HTMLFieldSetElement | null; + querySelector(selector: 'form'): HTMLFormElement | null; + querySelector(selector: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'): HTMLHeadingElement; + querySelector(selector: 'head'): HTMLHeadElement | null; + querySelector(selector: 'hr'): HTMLHRElement | null; + querySelector(selector: 'html'): HTMLHtmlElement | null; + querySelector(selector: 'iframe'): HTMLIFrameElement | null; + querySelector(selector: 'img'): HTMLImageElement | null; + querySelector(selector: 'ins'): HTMLModElement | null; + querySelector(selector: 'input'): HTMLInputElement | null; + querySelector(selector: 'label'): HTMLLabelElement | null; + querySelector(selector: 'legend'): HTMLLegendElement | null; + querySelector(selector: 'li'): HTMLLIElement | null; + querySelector(selector: 'link'): HTMLLinkElement | null; + querySelector(selector: 'map'): HTMLMapElement | null; + querySelector(selector: 'meta'): HTMLMetaElement | null; + querySelector(selector: 'meter'): HTMLMeterElement | null; + querySelector(selector: 'object'): HTMLObjectElement | null; + querySelector(selector: 'ol'): HTMLOListElement | null; + querySelector(selector: 'option'): HTMLOptionElement | null; + querySelector(selector: 'optgroup'): HTMLOptGroupElement | null; + querySelector(selector: 'p'): HTMLParagraphElement | null; + querySelector(selector: 'param'): HTMLParamElement | null; + querySelector(selector: 'picture'): HTMLPictureElement | null; + querySelector(selector: 'pre'): HTMLPreElement | null; + querySelector(selector: 'progress'): HTMLProgressElement | null; + querySelector(selector: 'q'): HTMLQuoteElement | null; + querySelector(selector: 'script'): HTMLScriptElement | null; + querySelector(selector: 'select'): HTMLSelectElement | null; + querySelector(selector: 'source'): HTMLSourceElement | null; + querySelector(selector: 'span'): HTMLSpanElement | null; + querySelector(selector: 'style'): HTMLStyleElement | null; + querySelector(selector: 'textarea'): HTMLTextAreaElement | null; + querySelector(selector: 'time'): HTMLTimeElement | null; + querySelector(selector: 'title'): HTMLTitleElement | null; + querySelector(selector: 'track'): HTMLTrackElement | null; + querySelector(selector: 'video'): HTMLVideoElement | null; + querySelector(selector: 'table'): HTMLTableElement | null; + querySelector(selector: 'caption'): HTMLTableCaptionElement | null; + querySelector(selector: 'thead' | 'tfoot' | 'tbody'): HTMLTableSectionElement | null; + querySelector(selector: 'tr'): HTMLTableRowElement | null; + querySelector(selector: 'td' | 'th'): HTMLTableCellElement | null; + querySelector(selector: 'template'): HTMLTemplateElement | null; + querySelector(selector: 'ul'): HTMLUListElement | null; + querySelector(selector: string): HTMLElement | null; + + querySelectorAll(selector: 'a'): NodeList; + querySelectorAll(selector: 'area'): NodeList; + querySelectorAll(selector: 'audio'): NodeList; + querySelectorAll(selector: 'blockquote'): NodeList; + querySelectorAll(selector: 'body'): NodeList; + querySelectorAll(selector: 'br'): NodeList; + querySelectorAll(selector: 'button'): NodeList; + querySelectorAll(selector: 'canvas'): NodeList; + querySelectorAll(selector: 'col'): NodeList; + querySelectorAll(selector: 'colgroup'): NodeList; + querySelectorAll(selector: 'data'): NodeList; + querySelectorAll(selector: 'datalist'): NodeList; + querySelectorAll(selector: 'del'): NodeList; + querySelectorAll(selector: 'details'): NodeList; + querySelectorAll(selector: 'dialog'): NodeList; + querySelectorAll(selector: 'div'): NodeList; + querySelectorAll(selector: 'dl'): NodeList; + querySelectorAll(selector: 'embed'): NodeList; + querySelectorAll(selector: 'fieldset'): NodeList; + querySelectorAll(selector: 'form'): NodeList; + querySelectorAll(selector: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'): NodeList; + querySelectorAll(selector: 'head'): NodeList; + querySelectorAll(selector: 'hr'): NodeList; + querySelectorAll(selector: 'html'): NodeList; + querySelectorAll(selector: 'iframe'): NodeList; + querySelectorAll(selector: 'img'): NodeList; + querySelectorAll(selector: 'input'): NodeList; + querySelectorAll(selector: 'ins'): NodeList; + querySelectorAll(selector: 'label'): NodeList; + querySelectorAll(selector: 'legend'): NodeList; + querySelectorAll(selector: 'li'): NodeList; + querySelectorAll(selector: 'link'): NodeList; + querySelectorAll(selector: 'map'): NodeList; + querySelectorAll(selector: 'meta'): NodeList; + querySelectorAll(selector: 'meter'): NodeList; + querySelectorAll(selector: 'object'): NodeList; + querySelectorAll(selector: 'ol'): NodeList; + querySelectorAll(selector: 'option'): NodeList; + querySelectorAll(selector: 'optgroup'): NodeList; + querySelectorAll(selector: 'p'): NodeList; + querySelectorAll(selector: 'param'): NodeList; + querySelectorAll(selector: 'picture'): NodeList; + querySelectorAll(selector: 'pre'): NodeList; + querySelectorAll(selector: 'progress'): NodeList; + querySelectorAll(selector: 'q'): NodeList; + querySelectorAll(selector: 'script'): NodeList; + querySelectorAll(selector: 'select'): NodeList; + querySelectorAll(selector: 'source'): NodeList; + querySelectorAll(selector: 'span'): NodeList; + querySelectorAll(selector: 'style'): NodeList; + querySelectorAll(selector: 'textarea'): NodeList; + querySelectorAll(selector: 'time'): NodeList; + querySelectorAll(selector: 'title'): NodeList; + querySelectorAll(selector: 'track'): NodeList; + querySelectorAll(selector: 'video'): NodeList; + querySelectorAll(selector: 'table'): NodeList; + querySelectorAll(selector: 'caption'): NodeList; + querySelectorAll(selector: 'thead' | 'tfoot' | 'tbody'): NodeList; + querySelectorAll(selector: 'tr'): NodeList; + querySelectorAll(selector: 'td' | 'th'): NodeList; + querySelectorAll(selector: 'template'): NodeList; + querySelectorAll(selector: 'ul'): NodeList; + querySelectorAll(selector: string): NodeList; + + // Interface DocumentTraversal + // http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/traversal.html#Traversal-Document + + // Not all combinations of RootNodeT and whatToShow are logically possible. + // The bitmasks NodeFilter.SHOW_CDATA_SECTION, + // NodeFilter.SHOW_ENTITY_REFERENCE, NodeFilter.SHOW_ENTITY, and + // NodeFilter.SHOW_NOTATION are deprecated and do not correspond to types + // that Flow knows about. + + // NodeFilter.SHOW_ATTRIBUTE is also deprecated, but corresponds to the + // type Attr. While there is no reason to prefer it to Node.attributes, + // it does have meaning and can be typed: When (whatToShow & + // NodeFilter.SHOW_ATTRIBUTE === 1), RootNodeT must be Attr, and when + // RootNodeT is Attr, bitmasks other than NodeFilter.SHOW_ATTRIBUTE are + // meaningless. + createNodeIterator(root: RootNodeT, whatToShow: 2, filter?: NodeFilterInterface): NodeIterator; + createTreeWalker(root: RootNodeT, whatToShow: 2, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + + // NodeFilter.SHOW_PROCESSING_INSTRUCTION is not implemented because Flow + // does not currently define a ProcessingInstruction class. + + // When (whatToShow & NodeFilter.SHOW_DOCUMENT === 1 || whatToShow & + // NodeFilter.SHOW_DOCUMENT_TYPE === 1), RootNodeT must be Document. + createNodeIterator(root: RootNodeT, whatToShow: 256, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 257, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 260, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 261, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 384, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 385, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 388, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 389, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 512, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 513, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 516, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 517, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 640, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 641, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 644, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 645, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 768, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 769, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 772, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 773, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 896, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 897, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 900, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 901, filter?: NodeFilterInterface): NodeIterator; + createTreeWalker(root: RootNodeT, whatToShow: 256, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 257, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 260, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 261, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 384, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 385, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 388, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 389, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 512, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 513, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 516, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 517, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 640, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 641, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 644, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 645, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 768, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 769, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 772, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 773, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 896, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 897, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 900, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 901, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + + // When (whatToShow & NodeFilter.SHOW_DOCUMENT_FRAGMENT === 1), RootNodeT + // must be a DocumentFragment. + createNodeIterator(root: RootNodeT, whatToShow: 1024, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1025, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1028, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1029, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1152, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1153, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1156, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 1157, filter?: NodeFilterInterface): NodeIterator; + createTreeWalker(root: RootNodeT, whatToShow: 1024, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1025, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1028, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1029, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1152, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1153, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1156, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 1157, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + + // In the general case, RootNodeT may be any Node and whatToShow may be + // NodeFilter.SHOW_ALL or any combination of NodeFilter.SHOW_ELEMENT, + // NodeFilter.SHOW_TEXT and/or NodeFilter.SHOW_COMMENT + createNodeIterator(root: RootNodeT, whatToShow: 1, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 4, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 5, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 128, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 129, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 132, filter?: NodeFilterInterface): NodeIterator; + createNodeIterator(root: RootNodeT, whatToShow: 133, filter?: NodeFilterInterface): NodeIterator; + createTreeWalker(root: RootNodeT, whatToShow: 1, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 4, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 5, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 128, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 129, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 132, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + createTreeWalker(root: RootNodeT, whatToShow: 133, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + + // Catch all for when we don't know the value of `whatToShow` + // And for when whatToShow is not provided, it is assumed to be SHOW_ALL + createNodeIterator(root: RootNodeT, whatToShow?: number, filter?: NodeFilterInterface): NodeIterator; + createTreeWalker(root: RootNodeT, whatToShow?: number, filter?: NodeFilterInterface, entityReferenceExpansion?: boolean): TreeWalker; + + // From NonElementParentNode Mixin. + getElementById(elementId: string): HTMLElement | null; + + // From DocumentOrShadowRoot Mixin. + +styleSheets: StyleSheetList; + adoptedStyleSheets: Array; +} + +declare class DocumentFragment extends Node { + // from ParentNode interface + childElementCount: number; + children: HTMLCollection; + firstElementChild: ?Element; + lastElementChild: ?Element; + append(...nodes: Array): void; + prepend(...nodes: Array): void; + + querySelector(selector: string): HTMLElement | null; + querySelectorAll(selector: string): NodeList; + + // From NonElementParentNode Mixin. + getElementById(elementId: string): HTMLElement | null; +} + +declare class Selection { + anchorNode: Node | null; + anchorOffset: number; + focusNode: Node | null; + focusOffset: number; + isCollapsed: boolean; + rangeCount: number; + type: string; + addRange(range: Range): void; + getRangeAt(index: number): Range; + removeRange(range: Range): void; + removeAllRanges(): void; + collapse(parentNode: Node | null, offset?: number): void; + collapseToStart(): void; + collapseToEnd(): void; + containsNode(aNode: Node, aPartlyContained?: boolean): boolean; + deleteFromDocument(): void; + extend(parentNode: Node, offset?: number): void; + empty(): void; + selectAllChildren(parentNode: Node): void; + setPosition(aNode: Node | null, offset?: number): void; + setBaseAndExtent(anchorNode: Node, anchorOffset: number, focusNode: Node, focusOffset: number): void; + toString(): string; +} + +declare class Range { // extension + startOffset: number; + collapsed: boolean; + endOffset: number; + startContainer: Node; + endContainer: Node; + commonAncestorContainer: Node; + setStart(refNode: Node, offset: number): void; + setEndBefore(refNode: Node): void; + setStartBefore(refNode: Node): void; + selectNode(refNode: Node): void; + detach(): void; + getBoundingClientRect(): ClientRect; + toString(): string; + compareBoundaryPoints(how: number, sourceRange: Range): number; + insertNode(newNode: Node): void; + collapse(toStart: boolean): void; + selectNodeContents(refNode: Node): void; + cloneContents(): DocumentFragment; + setEnd(refNode: Node, offset: number): void; + cloneRange(): Range; + getClientRects(): ClientRectList; + surroundContents(newParent: Node): void; + deleteContents(): void; + setStartAfter(refNode: Node): void; + extractContents(): DocumentFragment; + setEndAfter(refNode: Node): void; + createContextualFragment(fragment: string | TrustedHTML): DocumentFragment; + intersectsNode(refNode: Node): boolean; + isPointInRange(refNode: Node, offset: number): boolean; + static END_TO_END: number; + static START_TO_START: number; + static START_TO_END: number; + static END_TO_START: number; +} + +declare var document: Document; + +// TODO: HTMLDocument +type FocusOptions = { preventScroll?: boolean, ... } + +declare class DOMTokenList { + @@iterator(): Iterator; + length: number; + item(index: number): string; + contains(token: string): boolean; + add(...token: Array): void; + remove(...token: Array): void; + toggle(token: string, force?: boolean): boolean; + replace(oldToken: string, newToken: string): boolean; + + forEach(callbackfn: (value: string, index: number, list: DOMTokenList) => any, thisArg?: any): void; + entries(): Iterator<[number, string]>; + keys(): Iterator; + values(): Iterator; + [index: number]: string; +} + + +declare class Element extends Node implements Animatable { + animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation; + getAnimations(options?: GetAnimationsOptions): Animation[]; + assignedSlot: ?HTMLSlotElement; + attachShadow(shadowRootInitDict: ShadowRootInit): ShadowRoot; + attributes: NamedNodeMap; + classList: DOMTokenList; + className: string; + clientHeight: number; + clientLeft: number; + clientTop: number; + clientWidth: number; + id: string; + // flowlint unsafe-getters-setters:off + get innerHTML(): string; + set innerHTML(value: string | TrustedHTML): void; + // flowlint unsafe-getters-setters:error + localName: string; + namespaceURI: ?string; + nextElementSibling: ?Element; + // flowlint unsafe-getters-setters:off + get outerHTML(): string; + set outerHTML(value: string | TrustedHTML): void; + // flowlint unsafe-getters-setters:error + prefix: string | null; + previousElementSibling: ?Element; + scrollHeight: number; + scrollLeft: number; + scrollTop: number; + scrollWidth: number; + +tagName: string; + + // TODO: a lot more ARIA properties + ariaHidden: void | 'true' | 'false'; + + closest(selectors: string): ?Element; + dispatchEvent(event: Event): boolean; + + getAttribute(name?: string): ?string; + getAttributeNames(): Array; + getAttributeNS(namespaceURI: string | null, localName: string): string | null; + getAttributeNode(name: string): Attr | null; + getAttributeNodeNS(namespaceURI: string | null, localName: string): Attr | null; + getBoundingClientRect(): ClientRect; + getClientRects(): ClientRect[]; + getElementsByClassName(names: string): HTMLCollection; + getElementsByTagName(name: 'a'): HTMLCollection; + getElementsByTagName(name: 'audio'): HTMLCollection; + getElementsByTagName(name: 'br'): HTMLCollection; + getElementsByTagName(name: 'button'): HTMLCollection; + getElementsByTagName(name: 'canvas'): HTMLCollection; + getElementsByTagName(name: 'col'): HTMLCollection; + getElementsByTagName(name: 'colgroup'): HTMLCollection; + getElementsByTagName(name: 'data'): HTMLCollection; + getElementsByTagName(name: 'datalist'): HTMLCollection; + getElementsByTagName(name: 'del'): HTMLCollection; + getElementsByTagName(name: 'details'): HTMLCollection; + getElementsByTagName(name: 'dialog'): HTMLCollection; + getElementsByTagName(name: 'div'): HTMLCollection; + getElementsByTagName(name: 'dl'): HTMLCollection; + getElementsByTagName(name: 'fieldset'): HTMLCollection; + getElementsByTagName(name: 'form'): HTMLCollection; + getElementsByTagName(name: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'): HTMLCollection; + getElementsByTagName(name: 'head'): HTMLCollection; + getElementsByTagName(name: 'hr'): HTMLCollection; + getElementsByTagName(name: 'iframe'): HTMLCollection; + getElementsByTagName(name: 'img'): HTMLCollection; + getElementsByTagName(name: 'input'): HTMLCollection; + getElementsByTagName(name: 'ins'): HTMLCollection; + getElementsByTagName(name: 'label'): HTMLCollection; + getElementsByTagName(name: 'legend'): HTMLCollection; + getElementsByTagName(name: 'li'): HTMLCollection; + getElementsByTagName(name: 'link'): HTMLCollection; + getElementsByTagName(name: 'meta'): HTMLCollection; + getElementsByTagName(name: 'meter'): HTMLCollection; + getElementsByTagName(name: 'object'): HTMLCollection; + getElementsByTagName(name: 'ol'): HTMLCollection; + getElementsByTagName(name: 'option'): HTMLCollection; + getElementsByTagName(name: 'optgroup'): HTMLCollection; + getElementsByTagName(name: 'p'): HTMLCollection; + getElementsByTagName(name: 'param'): HTMLCollection; + getElementsByTagName(name: 'picture'): HTMLCollection; + getElementsByTagName(name: 'pre'): HTMLCollection; + getElementsByTagName(name: 'progress'): HTMLCollection; + getElementsByTagName(name: 'script'): HTMLCollection; + getElementsByTagName(name: 'select'): HTMLCollection; + getElementsByTagName(name: 'source'): HTMLCollection; + getElementsByTagName(name: 'span'): HTMLCollection; + getElementsByTagName(name: 'style'): HTMLCollection; + getElementsByTagName(name: 'textarea'): HTMLCollection; + getElementsByTagName(name: 'video'): HTMLCollection; + getElementsByTagName(name: 'table'): HTMLCollection; + getElementsByTagName(name: 'title'): HTMLCollection; + getElementsByTagName(name: 'caption'): HTMLCollection; + getElementsByTagName(name: 'thead' | 'tfoot' | 'tbody'): HTMLCollection; + getElementsByTagName(name: 'tr'): HTMLCollection; + getElementsByTagName(name: 'td' | 'th'): HTMLCollection; + getElementsByTagName(name: 'template'): HTMLCollection; + getElementsByTagName(name: 'ul'): HTMLCollection; + getElementsByTagName(name: string): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'a'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'audio'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'br'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'button'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'canvas'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'col'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'colgroup'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'data'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'datalist'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'del'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'details'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'dialog'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'div'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'dl'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'fieldset'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'form'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'head'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'hr'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'iframe'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'img'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'input'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'ins'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'label'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'legend'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'li'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'link'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'meta'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'meter'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'object'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'ol'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'option'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'optgroup'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'p'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'param'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'picture'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'pre'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'progress'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'script'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'select'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'source'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'span'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'style'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'textarea'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'video'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'table'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'title'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'caption'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'thead' | 'tfoot' | 'tbody'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'tr'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'td' | 'th'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'template'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: 'ul'): HTMLCollection; + getElementsByTagNameNS(namespaceURI: string | null, localName: string): HTMLCollection; + hasAttribute(name: string): boolean; + hasAttributeNS(namespaceURI: string | null, localName: string): boolean; + hasAttributes(): boolean; + hasPointerCapture(pointerId: number): boolean; + insertAdjacentElement(position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend', element: Element): void; + insertAdjacentHTML(position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend', html: string | TrustedHTML): void; + insertAdjacentText(position: 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend', text: string): void; + matches(selector: string): boolean; + releasePointerCapture(pointerId: number): void; + removeAttribute(name?: string): void; + removeAttributeNode(attributeNode: Attr): Attr; + removeAttributeNS(namespaceURI: string | null, localName: string): void; + requestFullscreen(options?: { navigationUI: 'auto' | 'show' | 'hide', ... }): Promise; + requestPointerLock(): void; + scrollIntoView(arg?: (boolean | { + behavior?: ('auto' | 'instant' | 'smooth'), + block?: ('start' | 'center' | 'end' | 'nearest'), + inline?: ('start' | 'center' | 'end' | 'nearest'), + ... + })): void; + scroll(x: number, y: number): void; + scroll(options: ScrollToOptions): void; + scrollTo(x: number, y: number): void; + scrollTo(options: ScrollToOptions): void; + scrollBy(x: number, y: number): void; + scrollBy(options: ScrollToOptions): void; + setAttribute(name?: string, value?: string): void; + toggleAttribute(name?: string, force?: boolean): void; + setAttributeNS(namespaceURI: string | null, qualifiedName: string, value: string): void; + setAttributeNode(newAttr: Attr): Attr | null; + setAttributeNodeNS(newAttr: Attr): Attr | null; + setPointerCapture(pointerId: number): void; + shadowRoot?: ShadowRoot; + slot?: string; + + // from ParentNode interface + childElementCount: number; + children: HTMLCollection; + firstElementChild: ?Element; + lastElementChild: ?Element; + append(...nodes: Array): void; + prepend(...nodes: Array): void; + + querySelector(selector: 'a'): HTMLAnchorElement | null; + querySelector(selector: 'area'): HTMLAreaElement | null; + querySelector(selector: 'audio'): HTMLAudioElement | null; + querySelector(selector: 'blockquote'): HTMLQuoteElement | null; + querySelector(selector: 'body'): HTMLBodyElement | null; + querySelector(selector: 'br'): HTMLBRElement | null; + querySelector(selector: 'button'): HTMLButtonElement | null; + querySelector(selector: 'canvas'): HTMLCanvasElement | null; + querySelector(selector: 'col'): HTMLTableColElement | null; + querySelector(selector: 'colgroup'): HTMLTableColElement | null; + querySelector(selector: 'data'): HTMLDataElement | null; + querySelector(selector: 'datalist'): HTMLDataListElement | null; + querySelector(selector: 'del'): HTMLModElement | null; + querySelector(selector: 'details'): HTMLDetailsElement | null; + querySelector(selector: 'dialog'): HTMLDialogElement | null; + querySelector(selector: 'div'): HTMLDivElement | null; + querySelector(selector: 'dl'): HTMLDListElement | null; + querySelector(selector: 'embed'): HTMLEmbedElement | null; + querySelector(selector: 'fieldset'): HTMLFieldSetElement | null; + querySelector(selector: 'form'): HTMLFormElement | null; + querySelector(selector: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'): HTMLHeadingElement; + querySelector(selector: 'head'): HTMLHeadElement | null; + querySelector(selector: 'hr'): HTMLHRElement | null; + querySelector(selector: 'html'): HTMLHtmlElement | null; + querySelector(selector: 'iframe'): HTMLIFrameElement | null; + querySelector(selector: 'img'): HTMLImageElement | null; + querySelector(selector: 'ins'): HTMLModElement | null; + querySelector(selector: 'input'): HTMLInputElement | null; + querySelector(selector: 'label'): HTMLLabelElement | null; + querySelector(selector: 'legend'): HTMLLegendElement | null; + querySelector(selector: 'li'): HTMLLIElement | null; + querySelector(selector: 'link'): HTMLLinkElement | null; + querySelector(selector: 'map'): HTMLMapElement | null; + querySelector(selector: 'meta'): HTMLMetaElement | null; + querySelector(selector: 'meter'): HTMLMeterElement | null; + querySelector(selector: 'object'): HTMLObjectElement | null; + querySelector(selector: 'ol'): HTMLOListElement | null; + querySelector(selector: 'option'): HTMLOptionElement | null; + querySelector(selector: 'optgroup'): HTMLOptGroupElement | null; + querySelector(selector: 'p'): HTMLParagraphElement | null; + querySelector(selector: 'param'): HTMLParamElement | null; + querySelector(selector: 'picture'): HTMLPictureElement | null; + querySelector(selector: 'pre'): HTMLPreElement | null; + querySelector(selector: 'progress'): HTMLProgressElement | null; + querySelector(selector: 'q'): HTMLQuoteElement | null; + querySelector(selector: 'script'): HTMLScriptElement | null; + querySelector(selector: 'select'): HTMLSelectElement | null; + querySelector(selector: 'source'): HTMLSourceElement | null; + querySelector(selector: 'span'): HTMLSpanElement | null; + querySelector(selector: 'style'): HTMLStyleElement | null; + querySelector(selector: 'textarea'): HTMLTextAreaElement | null; + querySelector(selector: 'time'): HTMLTimeElement | null; + querySelector(selector: 'title'): HTMLTitleElement | null; + querySelector(selector: 'track'): HTMLTrackElement | null; + querySelector(selector: 'video'): HTMLVideoElement | null; + querySelector(selector: 'table'): HTMLTableElement | null; + querySelector(selector: 'caption'): HTMLTableCaptionElement | null; + querySelector(selector: 'thead' | 'tfoot' | 'tbody'): HTMLTableSectionElement | null; + querySelector(selector: 'tr'): HTMLTableRowElement | null; + querySelector(selector: 'td' | 'th'): HTMLTableCellElement | null; + querySelector(selector: 'template'): HTMLTemplateElement | null; + querySelector(selector: 'ul'): HTMLUListElement | null; + querySelector(selector: string): HTMLElement | null; + + querySelectorAll(selector: 'a'): NodeList; + querySelectorAll(selector: 'area'): NodeList; + querySelectorAll(selector: 'audio'): NodeList; + querySelectorAll(selector: 'blockquote'): NodeList; + querySelectorAll(selector: 'body'): NodeList; + querySelectorAll(selector: 'br'): NodeList; + querySelectorAll(selector: 'button'): NodeList; + querySelectorAll(selector: 'canvas'): NodeList; + querySelectorAll(selector: 'col'): NodeList; + querySelectorAll(selector: 'colgroup'): NodeList; + querySelectorAll(selector: 'data'): NodeList; + querySelectorAll(selector: 'datalist'): NodeList; + querySelectorAll(selector: 'del'): NodeList; + querySelectorAll(selector: 'details'): NodeList; + querySelectorAll(selector: 'dialog'): NodeList; + querySelectorAll(selector: 'div'): NodeList; + querySelectorAll(selector: 'dl'): NodeList; + querySelectorAll(selector: 'embed'): NodeList; + querySelectorAll(selector: 'fieldset'): NodeList; + querySelectorAll(selector: 'form'): NodeList; + querySelectorAll(selector: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'): NodeList; + querySelectorAll(selector: 'head'): NodeList; + querySelectorAll(selector: 'hr'): NodeList; + querySelectorAll(selector: 'html'): NodeList; + querySelectorAll(selector: 'iframe'): NodeList; + querySelectorAll(selector: 'img'): NodeList; + querySelectorAll(selector: 'input'): NodeList; + querySelectorAll(selector: 'ins'): NodeList; + querySelectorAll(selector: 'label'): NodeList; + querySelectorAll(selector: 'legend'): NodeList; + querySelectorAll(selector: 'li'): NodeList; + querySelectorAll(selector: 'link'): NodeList; + querySelectorAll(selector: 'map'): NodeList; + querySelectorAll(selector: 'meta'): NodeList; + querySelectorAll(selector: 'meter'): NodeList; + querySelectorAll(selector: 'object'): NodeList; + querySelectorAll(selector: 'ol'): NodeList; + querySelectorAll(selector: 'option'): NodeList; + querySelectorAll(selector: 'optgroup'): NodeList; + querySelectorAll(selector: 'p'): NodeList; + querySelectorAll(selector: 'param'): NodeList; + querySelectorAll(selector: 'picture'): NodeList; + querySelectorAll(selector: 'pre'): NodeList; + querySelectorAll(selector: 'progress'): NodeList; + querySelectorAll(selector: 'q'): NodeList; + querySelectorAll(selector: 'script'): NodeList; + querySelectorAll(selector: 'select'): NodeList; + querySelectorAll(selector: 'source'): NodeList; + querySelectorAll(selector: 'span'): NodeList; + querySelectorAll(selector: 'style'): NodeList; + querySelectorAll(selector: 'textarea'): NodeList; + querySelectorAll(selector: 'time'): NodeList; + querySelectorAll(selector: 'title'): NodeList; + querySelectorAll(selector: 'track'): NodeList; + querySelectorAll(selector: 'video'): NodeList; + querySelectorAll(selector: 'table'): NodeList; + querySelectorAll(selector: 'caption'): NodeList; + querySelectorAll(selector: 'thead' | 'tfoot' | 'tbody'): NodeList; + querySelectorAll(selector: 'tr'): NodeList; + querySelectorAll(selector: 'td' | 'th'): NodeList; + querySelectorAll(selector: 'template'): NodeList; + querySelectorAll(selector: 'ul'): NodeList; + querySelectorAll(selector: string): NodeList; + + // from ChildNode interface + after(...nodes: Array): void; + before(...nodes: Array): void; + replaceWith(...nodes: Array): void; + remove(): void; +} + +declare class HTMLElement extends Element { + blur(): void; + click(): void; + focus(options?: FocusOptions): void; + getBoundingClientRect(): ClientRect; + forceSpellcheck(): void; + accessKey: string; + accessKeyLabel: string; + className: string; + contentEditable: string; + contextMenu: ?HTMLMenuElement; + dataset: DOMStringMap; + dir: 'ltr' | 'rtl' | 'auto'; + draggable: boolean; + dropzone: any; + hidden: boolean; + id: string; + inert: boolean; + // flowlint unsafe-getters-setters:off + get innerHTML(): string; + set innerHTML(value: string | TrustedHTML): void; + // flowlint unsafe-getters-setters:error + isContentEditable: boolean; + itemProp: any; + itemScope: boolean; + itemType: any; + itemValue: Object; + lang: string; + offsetHeight: number; + offsetLeft: number; + offsetParent: ?Element; + offsetTop: number; + offsetWidth: number; + onabort: ?Function; + onblur: ?Function; + oncancel: ?Function; + oncanplay: ?Function; + oncanplaythrough: ?Function; + onchange: ?Function; + onclick: ?Function; + oncontextmenu: ?Function; + oncuechange: ?Function; + ondblclick: ?Function; + ondurationchange: ?Function; + onemptied: ?Function; + onended: ?Function; + onerror: ?Function; + onfocus: ?Function; + onfullscreenchange: ?Function; + onfullscreenerror: ?Function; + ongotpointercapture: ?Function, + oninput: ?Function; + oninvalid: ?Function; + onkeydown: ?Function; + onkeypress: ?Function; + onkeyup: ?Function; + onload: ?Function; + onloadeddata: ?Function; + onloadedmetadata: ?Function; + onloadstart: ?Function; + onlostpointercapture: ?Function, + onmousedown: ?Function; + onmouseenter: ?Function; + onmouseleave: ?Function; + onmousemove: ?Function; + onmouseout: ?Function; + onmouseover: ?Function; + onmouseup: ?Function; + onmousewheel: ?Function; + onpause: ?Function; + onplay: ?Function; + onplaying: ?Function; + onpointercancel: ?Function, + onpointerdown: ?Function, + onpointerenter: ?Function, + onpointerleave: ?Function, + onpointermove: ?Function, + onpointerout: ?Function, + onpointerover: ?Function, + onpointerup: ?Function, + onprogress: ?Function; + onratechange: ?Function; + onreadystatechange: ?Function; + onreset: ?Function; + onresize: ?Function; + onscroll: ?Function; + onseeked: ?Function; + onseeking: ?Function; + onselect: ?Function; + onshow: ?Function; + onstalled: ?Function; + onsubmit: ?Function; + onsuspend: ?Function; + ontimeupdate: ?Function; + ontoggle: ?Function; + onvolumechange: ?Function; + onwaiting: ?Function; + properties: any; + spellcheck: boolean; + style: CSSStyleDeclaration; + tabIndex: number; + title: string; + translate: boolean; +} + +declare class HTMLSlotElement extends HTMLElement { + name: string; + assignedNodes(options?: { flatten: boolean, ... }): Node[]; +} + +declare class HTMLTableElement extends HTMLElement { + tagName: 'TABLE'; + caption: HTMLTableCaptionElement | null; + tHead: HTMLTableSectionElement | null; + tFoot: HTMLTableSectionElement | null; + +tBodies: HTMLCollection; + +rows: HTMLCollection; + createTHead(): HTMLTableSectionElement; + deleteTHead(): void; + createTFoot(): HTMLTableSectionElement; + deleteTFoot(): void; + createCaption(): HTMLTableCaptionElement; + deleteCaption(): void; + insertRow(index?: number): HTMLTableRowElement; + deleteRow(index: number): void; +} + +declare class HTMLTableCaptionElement extends HTMLElement { + tagName: 'CAPTION'; +} + +declare class HTMLTableColElement extends HTMLElement { + tagName: 'COL' | 'COLGROUP'; + span: number; +} + +declare class HTMLTableSectionElement extends HTMLElement { + tagName: 'THEAD' | 'TFOOT' | 'TBODY'; + +rows: HTMLCollection; + insertRow(index?: number): HTMLTableRowElement; + deleteRow(index: number): void; +} + +declare class HTMLTableCellElement extends HTMLElement { + tagName: 'TD' | 'TH'; + colSpan: number; + rowSpan: number; + +cellIndex: number; +} + +declare class HTMLTableRowElement extends HTMLElement { + tagName: 'TR'; + align: 'left' | 'right' | 'center'; + +rowIndex: number; + +sectionRowIndex: number; + +cells: HTMLCollection; + deleteCell(index: number): void; + insertCell(index?: number): HTMLTableCellElement; +} + +declare class HTMLMenuElement extends HTMLElement { + getCompact(): boolean; + setCompact(compact: boolean): void; +} + +declare class HTMLBaseElement extends HTMLElement { + href: string; + target: string; +} + +declare class HTMLTemplateElement extends HTMLElement { + content: DocumentFragment; +} + +declare class CanvasGradient { + addColorStop(offset: number, color: string): void; +} + +declare class CanvasPattern { + setTransform(matrix: SVGMatrix): void; +} + +declare class ImageBitmap { + close(): void; + width: number; + height: number; +} + +type CanvasFillRule = string; + +type CanvasImageSource = HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | CanvasRenderingContext2D | ImageBitmap; + +declare class HitRegionOptions { + path?: Path2D, + fillRule?: CanvasFillRule, + id?: string, + parentID?: string; + cursor?: string; + control?: Element; + label: ?string; + role: ?string; +}; + +declare class CanvasDrawingStyles { + lineWidth: number; + lineCap: string; + lineJoin: string; + miterLimit: number; + + // dashed lines + setLineDash(segments: Array): void; + getLineDash(): Array; + lineDashOffset: number; + + // text + font: string; + textAlign: string; + textBaseline: string; + direction: string; +}; + +declare class SVGMatrix { + getComponent(index: number): number; + mMultiply(secondMatrix: SVGMatrix): SVGMatrix; + inverse(): SVGMatrix; + mTranslate(x: number, y: number): SVGMatrix; + mScale(scaleFactor: number): SVGMatrix; + mRotate(angle: number): SVGMatrix; +}; + +declare class TextMetrics { + // x-direction + width: number; + actualBoundingBoxLeft: number; + actualBoundingBoxRight: number; + + // y-direction + fontBoundingBoxAscent: number; + fontBoundingBoxDescent: number; + actualBoundingBoxAscent: number; + actualBoundingBoxDescent: number; + emHeightAscent: number; + emHeightDescent: number; + hangingBaseline: number; + alphabeticBaseline: number; + ideographicBaseline: number; +}; + +declare class Path2D { + constructor(path?: Path2D | string): void; + + addPath(path: Path2D, transformation?: ?SVGMatrix): void; + addPathByStrokingPath(path: Path2D, styles: CanvasDrawingStyles, transformation?: ?SVGMatrix): void; + addText(text: string, styles: CanvasDrawingStyles, transformation: ?SVGMatrix, x: number, y: number, maxWidth?: number): void; + addPathByStrokingText(text: string, styles: CanvasDrawingStyles, transformation: ?SVGMatrix, x: number, y: number, maxWidth?: number): void; + addText(text: string, styles: CanvasDrawingStyles, transformation: ?SVGMatrix, path: Path2D, maxWidth?: number): void; + addPathByStrokingText(text: string, styles: CanvasDrawingStyles, transformation: ?SVGMatrix, path: Path2D, maxWidth?: number): void; + + // CanvasPathMethods + // shared path API methods + arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void; + arcTo(x1: number, y1: number, x2: number, y2: number, radius: number, _: void, _: void): void; + arcTo(x1: number, y1: number, x2: number, y2: number, radiusX: number, radiusY: number, rotation: number): void; + bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void; + closePath(): void; + ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void; + lineTo(x: number, y: number): void; + moveTo(x: number, y: number): void; + quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void; + rect(x: number, y: number, w: number, h: number): void; +}; + +declare class ImageData { + width: number; + height: number; + data: Uint8ClampedArray; + + // constructor methods are used in Worker where CanvasRenderingContext2D + // is unavailable. + // https://html.spec.whatwg.org/multipage/scripting.html#dom-imagedata + constructor(data: Uint8ClampedArray, width: number, height: number): void; + constructor(width: number, height: number): void; +}; + +interface DOMPointInit { + w?: number; + x?: number; + y?: number; + z?: number; +} + +declare class CanvasRenderingContext2D { + canvas: HTMLCanvasElement; + + // canvas dimensions + width: number; + height: number; + + // for contexts that aren't directly fixed to a specific canvas + commit(): void; + + // state + save(): void; + restore(): void; + + // transformations + currentTransform: SVGMatrix; + scale(x: number, y: number): void; + rotate(angle: number): void; + translate(x: number, y: number): void; + transform(a: number, b: number, c: number, d: number, e: number, f: number): void; + setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void; + resetTransform(): void; + + // compositing + globalAlpha: number; + globalCompositeOperation: string; + + // image smoothing + imageSmoothingEnabled: boolean; + imageSmoothingQuality: 'low' | 'medium' | 'high'; + + // filters + filter: string; + + // colours and styles + strokeStyle: string | CanvasGradient | CanvasPattern; + fillStyle: string | CanvasGradient | CanvasPattern; + createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient; + createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient; + createPattern(image: CanvasImageSource, repetition: ?string): CanvasPattern; + + // shadows + shadowOffsetX: number; + shadowOffsetY: number; + shadowBlur: number; + shadowColor: string; + + // rects + clearRect(x: number, y: number, w: number, h: number): void; + fillRect(x: number, y: number, w: number, h: number): void; + roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | $ReadOnlyArray): void; + strokeRect(x: number, y: number, w: number, h: number): void; + + // path API + beginPath(): void; + fill(fillRule?: CanvasFillRule): void; + fill(path: Path2D, fillRule?: CanvasFillRule): void; + stroke(): void; + stroke(path: Path2D): void; + drawFocusIfNeeded(element: Element): void; + drawFocusIfNeeded(path: Path2D, element: Element): void; + scrollPathIntoView(): void; + scrollPathIntoView(path: Path2D): void; + clip(fillRule?: CanvasFillRule): void; + clip(path: Path2D, fillRule?: CanvasFillRule): void; + resetClip(): void; + isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean; + isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean; + isPointInStroke(x: number, y: number): boolean; + isPointInStroke(path: Path2D, x: number, y: number): boolean; + + // text (see also the CanvasDrawingStyles interface) + fillText(text: string, x: number, y: number, maxWidth?: number): void; + strokeText(text: string, x: number, y: number, maxWidth?: number): void; + measureText(text: string): TextMetrics; + + // drawing images + drawImage(image: CanvasImageSource, dx: number, dy: number): void; + drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void; + drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void; + + // hit regions + addHitRegion(options?: HitRegionOptions): void; + removeHitRegion(id: string): void; + clearHitRegions(): void; + + // pixel manipulation + createImageData(sw: number, sh: number): ImageData; + createImageData(imagedata: ImageData): ImageData; + getImageData(sx: number, sy: number, sw: number, sh: number): ImageData; + putImageData(imagedata: ImageData, dx: number, dy: number): void; + putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void; + + // CanvasDrawingStyles + // line caps/joins + lineWidth: number; + lineCap: string; + lineJoin: string; + miterLimit: number; + + // dashed lines + setLineDash(segments: Array): void; + getLineDash(): Array; + lineDashOffset: number; + + // text + font: string; + textAlign: string; + textBaseline: string; + direction: string; + + // CanvasPathMethods + // shared path API methods + closePath(): void; + moveTo(x: number, y: number): void; + lineTo(x: number, y: number): void; + quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void; + bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void; + arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void; + arcTo(x1: number, y1: number, x2: number, y2: number, radiusX: number, radiusY: number, rotation: number): void; + rect(x: number, y: number, w: number, h: number): void; + arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void; + ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void; +} + + +// WebGL idl: https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl + +type WebGLContextAttributes = { + alpha: boolean, + depth: boolean, + stencil: boolean, + antialias: boolean, + premultipliedAlpha: boolean, + preserveDrawingBuffer: boolean, + preferLowPowerToHighPerformance: boolean, + failIfMajorPerformanceCaveat: boolean, + ... +}; + +interface WebGLObject { +}; + +interface WebGLBuffer extends WebGLObject { +}; + +interface WebGLFramebuffer extends WebGLObject { +}; + +interface WebGLProgram extends WebGLObject { +}; + +interface WebGLRenderbuffer extends WebGLObject { +}; + +interface WebGLShader extends WebGLObject { +}; + +interface WebGLTexture extends WebGLObject { +}; + +interface WebGLUniformLocation { +}; + +interface WebGLActiveInfo { + size: number; + type: number; + name: string; +}; + +interface WebGLShaderPrecisionFormat { + rangeMin: number; + rangeMax: number; + precision: number; +}; + +type BufferDataSource = ArrayBuffer | $ArrayBufferView; + +type TexImageSource = + ImageBitmap | + ImageData | + HTMLImageElement | + HTMLCanvasElement | + HTMLVideoElement; + +type VertexAttribFVSource = + Float32Array | + Array; + +/* flow */ +declare class WebGLRenderingContext { + static DEPTH_BUFFER_BIT : 0x00000100; + DEPTH_BUFFER_BIT : 0x00000100; + static STENCIL_BUFFER_BIT : 0x00000400; + STENCIL_BUFFER_BIT : 0x00000400; + static COLOR_BUFFER_BIT : 0x00004000; + COLOR_BUFFER_BIT : 0x00004000; + static POINTS : 0x0000; + POINTS : 0x0000; + static LINES : 0x0001; + LINES : 0x0001; + static LINE_LOOP : 0x0002; + LINE_LOOP : 0x0002; + static LINE_STRIP : 0x0003; + LINE_STRIP : 0x0003; + static TRIANGLES : 0x0004; + TRIANGLES : 0x0004; + static TRIANGLE_STRIP : 0x0005; + TRIANGLE_STRIP : 0x0005; + static TRIANGLE_FAN : 0x0006; + TRIANGLE_FAN : 0x0006; + static ZERO : 0; + ZERO : 0; + static ONE : 1; + ONE : 1; + static SRC_COLOR : 0x0300; + SRC_COLOR : 0x0300; + static ONE_MINUS_SRC_COLOR : 0x0301; + ONE_MINUS_SRC_COLOR : 0x0301; + static SRC_ALPHA : 0x0302; + SRC_ALPHA : 0x0302; + static ONE_MINUS_SRC_ALPHA : 0x0303; + ONE_MINUS_SRC_ALPHA : 0x0303; + static DST_ALPHA : 0x0304; + DST_ALPHA : 0x0304; + static ONE_MINUS_DST_ALPHA : 0x0305; + ONE_MINUS_DST_ALPHA : 0x0305; + static DST_COLOR : 0x0306; + DST_COLOR : 0x0306; + static ONE_MINUS_DST_COLOR : 0x0307; + ONE_MINUS_DST_COLOR : 0x0307; + static SRC_ALPHA_SATURATE : 0x0308; + SRC_ALPHA_SATURATE : 0x0308; + static FUNC_ADD : 0x8006; + FUNC_ADD : 0x8006; + static BLEND_EQUATION : 0x8009; + BLEND_EQUATION : 0x8009; + static BLEND_EQUATION_RGB : 0x8009; + BLEND_EQUATION_RGB : 0x8009; + static BLEND_EQUATION_ALPHA : 0x883D; + BLEND_EQUATION_ALPHA : 0x883D; + static FUNC_SUBTRACT : 0x800A; + FUNC_SUBTRACT : 0x800A; + static FUNC_REVERSE_SUBTRACT : 0x800B; + FUNC_REVERSE_SUBTRACT : 0x800B; + static BLEND_DST_RGB : 0x80C8; + BLEND_DST_RGB : 0x80C8; + static BLEND_SRC_RGB : 0x80C9; + BLEND_SRC_RGB : 0x80C9; + static BLEND_DST_ALPHA : 0x80CA; + BLEND_DST_ALPHA : 0x80CA; + static BLEND_SRC_ALPHA : 0x80CB; + BLEND_SRC_ALPHA : 0x80CB; + static CONSTANT_COLOR : 0x8001; + CONSTANT_COLOR : 0x8001; + static ONE_MINUS_CONSTANT_COLOR : 0x8002; + ONE_MINUS_CONSTANT_COLOR : 0x8002; + static CONSTANT_ALPHA : 0x8003; + CONSTANT_ALPHA : 0x8003; + static ONE_MINUS_CONSTANT_ALPHA : 0x8004; + ONE_MINUS_CONSTANT_ALPHA : 0x8004; + static BLEND_COLOR : 0x8005; + BLEND_COLOR : 0x8005; + static ARRAY_BUFFER : 0x8892; + ARRAY_BUFFER : 0x8892; + static ELEMENT_ARRAY_BUFFER : 0x8893; + ELEMENT_ARRAY_BUFFER : 0x8893; + static ARRAY_BUFFER_BINDING : 0x8894; + ARRAY_BUFFER_BINDING : 0x8894; + static ELEMENT_ARRAY_BUFFER_BINDING : 0x8895; + ELEMENT_ARRAY_BUFFER_BINDING : 0x8895; + static STREAM_DRAW : 0x88E0; + STREAM_DRAW : 0x88E0; + static STATIC_DRAW : 0x88E4; + STATIC_DRAW : 0x88E4; + static DYNAMIC_DRAW : 0x88E8; + DYNAMIC_DRAW : 0x88E8; + static BUFFER_SIZE : 0x8764; + BUFFER_SIZE : 0x8764; + static BUFFER_USAGE : 0x8765; + BUFFER_USAGE : 0x8765; + static CURRENT_VERTEX_ATTRIB : 0x8626; + CURRENT_VERTEX_ATTRIB : 0x8626; + static FRONT : 0x0404; + FRONT : 0x0404; + static BACK : 0x0405; + BACK : 0x0405; + static FRONT_AND_BACK : 0x0408; + FRONT_AND_BACK : 0x0408; + static CULL_FACE : 0x0B44; + CULL_FACE : 0x0B44; + static BLEND : 0x0BE2; + BLEND : 0x0BE2; + static DITHER : 0x0BD0; + DITHER : 0x0BD0; + static STENCIL_TEST : 0x0B90; + STENCIL_TEST : 0x0B90; + static DEPTH_TEST : 0x0B71; + DEPTH_TEST : 0x0B71; + static SCISSOR_TEST : 0x0C11; + SCISSOR_TEST : 0x0C11; + static POLYGON_OFFSET_FILL : 0x8037; + POLYGON_OFFSET_FILL : 0x8037; + static SAMPLE_ALPHA_TO_COVERAGE : 0x809E; + SAMPLE_ALPHA_TO_COVERAGE : 0x809E; + static SAMPLE_COVERAGE : 0x80A0; + SAMPLE_COVERAGE : 0x80A0; + static NO_ERROR : 0; + NO_ERROR : 0; + static INVALID_ENUM : 0x0500; + INVALID_ENUM : 0x0500; + static INVALID_VALUE : 0x0501; + INVALID_VALUE : 0x0501; + static INVALID_OPERATION : 0x0502; + INVALID_OPERATION : 0x0502; + static OUT_OF_MEMORY : 0x0505; + OUT_OF_MEMORY : 0x0505; + static CW : 0x0900; + CW : 0x0900; + static CCW : 0x0901; + CCW : 0x0901; + static LINE_WIDTH : 0x0B21; + LINE_WIDTH : 0x0B21; + static ALIASED_POINT_SIZE_RANGE : 0x846D; + ALIASED_POINT_SIZE_RANGE : 0x846D; + static ALIASED_LINE_WIDTH_RANGE : 0x846E; + ALIASED_LINE_WIDTH_RANGE : 0x846E; + static CULL_FACE_MODE : 0x0B45; + CULL_FACE_MODE : 0x0B45; + static FRONT_FACE : 0x0B46; + FRONT_FACE : 0x0B46; + static DEPTH_RANGE : 0x0B70; + DEPTH_RANGE : 0x0B70; + static DEPTH_WRITEMASK : 0x0B72; + DEPTH_WRITEMASK : 0x0B72; + static DEPTH_CLEAR_VALUE : 0x0B73; + DEPTH_CLEAR_VALUE : 0x0B73; + static DEPTH_FUNC : 0x0B74; + DEPTH_FUNC : 0x0B74; + static STENCIL_CLEAR_VALUE : 0x0B91; + STENCIL_CLEAR_VALUE : 0x0B91; + static STENCIL_FUNC : 0x0B92; + STENCIL_FUNC : 0x0B92; + static STENCIL_FAIL : 0x0B94; + STENCIL_FAIL : 0x0B94; + static STENCIL_PASS_DEPTH_FAIL : 0x0B95; + STENCIL_PASS_DEPTH_FAIL : 0x0B95; + static STENCIL_PASS_DEPTH_PASS : 0x0B96; + STENCIL_PASS_DEPTH_PASS : 0x0B96; + static STENCIL_REF : 0x0B97; + STENCIL_REF : 0x0B97; + static STENCIL_VALUE_MASK : 0x0B93; + STENCIL_VALUE_MASK : 0x0B93; + static STENCIL_WRITEMASK : 0x0B98; + STENCIL_WRITEMASK : 0x0B98; + static STENCIL_BACK_FUNC : 0x8800; + STENCIL_BACK_FUNC : 0x8800; + static STENCIL_BACK_FAIL : 0x8801; + STENCIL_BACK_FAIL : 0x8801; + static STENCIL_BACK_PASS_DEPTH_FAIL : 0x8802; + STENCIL_BACK_PASS_DEPTH_FAIL : 0x8802; + static STENCIL_BACK_PASS_DEPTH_PASS : 0x8803; + STENCIL_BACK_PASS_DEPTH_PASS : 0x8803; + static STENCIL_BACK_REF : 0x8CA3; + STENCIL_BACK_REF : 0x8CA3; + static STENCIL_BACK_VALUE_MASK : 0x8CA4; + STENCIL_BACK_VALUE_MASK : 0x8CA4; + static STENCIL_BACK_WRITEMASK : 0x8CA5; + STENCIL_BACK_WRITEMASK : 0x8CA5; + static VIEWPORT : 0x0BA2; + VIEWPORT : 0x0BA2; + static SCISSOR_BOX : 0x0C10; + SCISSOR_BOX : 0x0C10; + static COLOR_CLEAR_VALUE : 0x0C22; + COLOR_CLEAR_VALUE : 0x0C22; + static COLOR_WRITEMASK : 0x0C23; + COLOR_WRITEMASK : 0x0C23; + static UNPACK_ALIGNMENT : 0x0CF5; + UNPACK_ALIGNMENT : 0x0CF5; + static PACK_ALIGNMENT : 0x0D05; + PACK_ALIGNMENT : 0x0D05; + static MAX_TEXTURE_SIZE : 0x0D33; + MAX_TEXTURE_SIZE : 0x0D33; + static MAX_VIEWPORT_DIMS : 0x0D3A; + MAX_VIEWPORT_DIMS : 0x0D3A; + static SUBPIXEL_BITS : 0x0D50; + SUBPIXEL_BITS : 0x0D50; + static RED_BITS : 0x0D52; + RED_BITS : 0x0D52; + static GREEN_BITS : 0x0D53; + GREEN_BITS : 0x0D53; + static BLUE_BITS : 0x0D54; + BLUE_BITS : 0x0D54; + static ALPHA_BITS : 0x0D55; + ALPHA_BITS : 0x0D55; + static DEPTH_BITS : 0x0D56; + DEPTH_BITS : 0x0D56; + static STENCIL_BITS : 0x0D57; + STENCIL_BITS : 0x0D57; + static POLYGON_OFFSET_UNITS : 0x2A00; + POLYGON_OFFSET_UNITS : 0x2A00; + static POLYGON_OFFSET_FACTOR : 0x8038; + POLYGON_OFFSET_FACTOR : 0x8038; + static TEXTURE_BINDING_2D : 0x8069; + TEXTURE_BINDING_2D : 0x8069; + static SAMPLE_BUFFERS : 0x80A8; + SAMPLE_BUFFERS : 0x80A8; + static SAMPLES : 0x80A9; + SAMPLES : 0x80A9; + static SAMPLE_COVERAGE_VALUE : 0x80AA; + SAMPLE_COVERAGE_VALUE : 0x80AA; + static SAMPLE_COVERAGE_INVERT : 0x80AB; + SAMPLE_COVERAGE_INVERT : 0x80AB; + static COMPRESSED_TEXTURE_FORMATS : 0x86A3; + COMPRESSED_TEXTURE_FORMATS : 0x86A3; + static DONT_CARE : 0x1100; + DONT_CARE : 0x1100; + static FASTEST : 0x1101; + FASTEST : 0x1101; + static NICEST : 0x1102; + NICEST : 0x1102; + static GENERATE_MIPMAP_HINT : 0x8192; + GENERATE_MIPMAP_HINT : 0x8192; + static BYTE : 0x1400; + BYTE : 0x1400; + static UNSIGNED_BYTE : 0x1401; + UNSIGNED_BYTE : 0x1401; + static SHORT : 0x1402; + SHORT : 0x1402; + static UNSIGNED_SHORT : 0x1403; + UNSIGNED_SHORT : 0x1403; + static INT : 0x1404; + INT : 0x1404; + static UNSIGNED_INT : 0x1405; + UNSIGNED_INT : 0x1405; + static FLOAT : 0x1406; + FLOAT : 0x1406; + static DEPTH_COMPONENT : 0x1902; + DEPTH_COMPONENT : 0x1902; + static ALPHA : 0x1906; + ALPHA : 0x1906; + static RGB : 0x1907; + RGB : 0x1907; + static RGBA : 0x1908; + RGBA : 0x1908; + static LUMINANCE : 0x1909; + LUMINANCE : 0x1909; + static LUMINANCE_ALPHA : 0x190A; + LUMINANCE_ALPHA : 0x190A; + static UNSIGNED_SHORT_4_4_4_4 : 0x8033; + UNSIGNED_SHORT_4_4_4_4 : 0x8033; + static UNSIGNED_SHORT_5_5_5_1 : 0x8034; + UNSIGNED_SHORT_5_5_5_1 : 0x8034; + static UNSIGNED_SHORT_5_6_5 : 0x8363; + UNSIGNED_SHORT_5_6_5 : 0x8363; + static FRAGMENT_SHADER : 0x8B30; + FRAGMENT_SHADER : 0x8B30; + static VERTEX_SHADER : 0x8B31; + VERTEX_SHADER : 0x8B31; + static MAX_VERTEX_ATTRIBS : 0x8869; + MAX_VERTEX_ATTRIBS : 0x8869; + static MAX_VERTEX_UNIFORM_VECTORS : 0x8DFB; + MAX_VERTEX_UNIFORM_VECTORS : 0x8DFB; + static MAX_VARYING_VECTORS : 0x8DFC; + MAX_VARYING_VECTORS : 0x8DFC; + static MAX_COMBINED_TEXTURE_IMAGE_UNITS : 0x8B4D; + MAX_COMBINED_TEXTURE_IMAGE_UNITS : 0x8B4D; + static MAX_VERTEX_TEXTURE_IMAGE_UNITS : 0x8B4C; + MAX_VERTEX_TEXTURE_IMAGE_UNITS : 0x8B4C; + static MAX_TEXTURE_IMAGE_UNITS : 0x8872; + MAX_TEXTURE_IMAGE_UNITS : 0x8872; + static MAX_FRAGMENT_UNIFORM_VECTORS : 0x8DFD; + MAX_FRAGMENT_UNIFORM_VECTORS : 0x8DFD; + static SHADER_TYPE : 0x8B4F; + SHADER_TYPE : 0x8B4F; + static DELETE_STATUS : 0x8B80; + DELETE_STATUS : 0x8B80; + static LINK_STATUS : 0x8B82; + LINK_STATUS : 0x8B82; + static VALIDATE_STATUS : 0x8B83; + VALIDATE_STATUS : 0x8B83; + static ATTACHED_SHADERS : 0x8B85; + ATTACHED_SHADERS : 0x8B85; + static ACTIVE_UNIFORMS : 0x8B86; + ACTIVE_UNIFORMS : 0x8B86; + static ACTIVE_ATTRIBUTES : 0x8B89; + ACTIVE_ATTRIBUTES : 0x8B89; + static SHADING_LANGUAGE_VERSION : 0x8B8C; + SHADING_LANGUAGE_VERSION : 0x8B8C; + static CURRENT_PROGRAM : 0x8B8D; + CURRENT_PROGRAM : 0x8B8D; + static NEVER : 0x0200; + NEVER : 0x0200; + static LESS : 0x0201; + LESS : 0x0201; + static EQUAL : 0x0202; + EQUAL : 0x0202; + static LEQUAL : 0x0203; + LEQUAL : 0x0203; + static GREATER : 0x0204; + GREATER : 0x0204; + static NOTEQUAL : 0x0205; + NOTEQUAL : 0x0205; + static GEQUAL : 0x0206; + GEQUAL : 0x0206; + static ALWAYS : 0x0207; + ALWAYS : 0x0207; + static KEEP : 0x1E00; + KEEP : 0x1E00; + static REPLACE : 0x1E01; + REPLACE : 0x1E01; + static INCR : 0x1E02; + INCR : 0x1E02; + static DECR : 0x1E03; + DECR : 0x1E03; + static INVERT : 0x150A; + INVERT : 0x150A; + static INCR_WRAP : 0x8507; + INCR_WRAP : 0x8507; + static DECR_WRAP : 0x8508; + DECR_WRAP : 0x8508; + static VENDOR : 0x1F00; + VENDOR : 0x1F00; + static RENDERER : 0x1F01; + RENDERER : 0x1F01; + static VERSION : 0x1F02; + VERSION : 0x1F02; + static NEAREST : 0x2600; + NEAREST : 0x2600; + static LINEAR : 0x2601; + LINEAR : 0x2601; + static NEAREST_MIPMAP_NEAREST : 0x2700; + NEAREST_MIPMAP_NEAREST : 0x2700; + static LINEAR_MIPMAP_NEAREST : 0x2701; + LINEAR_MIPMAP_NEAREST : 0x2701; + static NEAREST_MIPMAP_LINEAR : 0x2702; + NEAREST_MIPMAP_LINEAR : 0x2702; + static LINEAR_MIPMAP_LINEAR : 0x2703; + LINEAR_MIPMAP_LINEAR : 0x2703; + static TEXTURE_MAG_FILTER : 0x2800; + TEXTURE_MAG_FILTER : 0x2800; + static TEXTURE_MIN_FILTER : 0x2801; + TEXTURE_MIN_FILTER : 0x2801; + static TEXTURE_WRAP_S : 0x2802; + TEXTURE_WRAP_S : 0x2802; + static TEXTURE_WRAP_T : 0x2803; + TEXTURE_WRAP_T : 0x2803; + static TEXTURE_2D : 0x0DE1; + TEXTURE_2D : 0x0DE1; + static TEXTURE : 0x1702; + TEXTURE : 0x1702; + static TEXTURE_CUBE_MAP : 0x8513; + TEXTURE_CUBE_MAP : 0x8513; + static TEXTURE_BINDING_CUBE_MAP : 0x8514; + TEXTURE_BINDING_CUBE_MAP : 0x8514; + static TEXTURE_CUBE_MAP_POSITIVE_X : 0x8515; + TEXTURE_CUBE_MAP_POSITIVE_X : 0x8515; + static TEXTURE_CUBE_MAP_NEGATIVE_X : 0x8516; + TEXTURE_CUBE_MAP_NEGATIVE_X : 0x8516; + static TEXTURE_CUBE_MAP_POSITIVE_Y : 0x8517; + TEXTURE_CUBE_MAP_POSITIVE_Y : 0x8517; + static TEXTURE_CUBE_MAP_NEGATIVE_Y : 0x8518; + TEXTURE_CUBE_MAP_NEGATIVE_Y : 0x8518; + static TEXTURE_CUBE_MAP_POSITIVE_Z : 0x8519; + TEXTURE_CUBE_MAP_POSITIVE_Z : 0x8519; + static TEXTURE_CUBE_MAP_NEGATIVE_Z : 0x851A; + TEXTURE_CUBE_MAP_NEGATIVE_Z : 0x851A; + static MAX_CUBE_MAP_TEXTURE_SIZE : 0x851C; + MAX_CUBE_MAP_TEXTURE_SIZE : 0x851C; + static TEXTURE0 : 0x84C0; + TEXTURE0 : 0x84C0; + static TEXTURE1 : 0x84C1; + TEXTURE1 : 0x84C1; + static TEXTURE2 : 0x84C2; + TEXTURE2 : 0x84C2; + static TEXTURE3 : 0x84C3; + TEXTURE3 : 0x84C3; + static TEXTURE4 : 0x84C4; + TEXTURE4 : 0x84C4; + static TEXTURE5 : 0x84C5; + TEXTURE5 : 0x84C5; + static TEXTURE6 : 0x84C6; + TEXTURE6 : 0x84C6; + static TEXTURE7 : 0x84C7; + TEXTURE7 : 0x84C7; + static TEXTURE8 : 0x84C8; + TEXTURE8 : 0x84C8; + static TEXTURE9 : 0x84C9; + TEXTURE9 : 0x84C9; + static TEXTURE10 : 0x84CA; + TEXTURE10 : 0x84CA; + static TEXTURE11 : 0x84CB; + TEXTURE11 : 0x84CB; + static TEXTURE12 : 0x84CC; + TEXTURE12 : 0x84CC; + static TEXTURE13 : 0x84CD; + TEXTURE13 : 0x84CD; + static TEXTURE14 : 0x84CE; + TEXTURE14 : 0x84CE; + static TEXTURE15 : 0x84CF; + TEXTURE15 : 0x84CF; + static TEXTURE16 : 0x84D0; + TEXTURE16 : 0x84D0; + static TEXTURE17 : 0x84D1; + TEXTURE17 : 0x84D1; + static TEXTURE18 : 0x84D2; + TEXTURE18 : 0x84D2; + static TEXTURE19 : 0x84D3; + TEXTURE19 : 0x84D3; + static TEXTURE20 : 0x84D4; + TEXTURE20 : 0x84D4; + static TEXTURE21 : 0x84D5; + TEXTURE21 : 0x84D5; + static TEXTURE22 : 0x84D6; + TEXTURE22 : 0x84D6; + static TEXTURE23 : 0x84D7; + TEXTURE23 : 0x84D7; + static TEXTURE24 : 0x84D8; + TEXTURE24 : 0x84D8; + static TEXTURE25 : 0x84D9; + TEXTURE25 : 0x84D9; + static TEXTURE26 : 0x84DA; + TEXTURE26 : 0x84DA; + static TEXTURE27 : 0x84DB; + TEXTURE27 : 0x84DB; + static TEXTURE28 : 0x84DC; + TEXTURE28 : 0x84DC; + static TEXTURE29 : 0x84DD; + TEXTURE29 : 0x84DD; + static TEXTURE30 : 0x84DE; + TEXTURE30 : 0x84DE; + static TEXTURE31 : 0x84DF; + TEXTURE31 : 0x84DF; + static ACTIVE_TEXTURE : 0x84E0; + ACTIVE_TEXTURE : 0x84E0; + static REPEAT : 0x2901; + REPEAT : 0x2901; + static CLAMP_TO_EDGE : 0x812F; + CLAMP_TO_EDGE : 0x812F; + static MIRRORED_REPEAT : 0x8370; + MIRRORED_REPEAT : 0x8370; + static FLOAT_VEC2 : 0x8B50; + FLOAT_VEC2 : 0x8B50; + static FLOAT_VEC3 : 0x8B51; + FLOAT_VEC3 : 0x8B51; + static FLOAT_VEC4 : 0x8B52; + FLOAT_VEC4 : 0x8B52; + static INT_VEC2 : 0x8B53; + INT_VEC2 : 0x8B53; + static INT_VEC3 : 0x8B54; + INT_VEC3 : 0x8B54; + static INT_VEC4 : 0x8B55; + INT_VEC4 : 0x8B55; + static BOOL : 0x8B56; + BOOL : 0x8B56; + static BOOL_VEC2 : 0x8B57; + BOOL_VEC2 : 0x8B57; + static BOOL_VEC3 : 0x8B58; + BOOL_VEC3 : 0x8B58; + static BOOL_VEC4 : 0x8B59; + BOOL_VEC4 : 0x8B59; + static FLOAT_MAT2 : 0x8B5A; + FLOAT_MAT2 : 0x8B5A; + static FLOAT_MAT3 : 0x8B5B; + FLOAT_MAT3 : 0x8B5B; + static FLOAT_MAT4 : 0x8B5C; + FLOAT_MAT4 : 0x8B5C; + static SAMPLER_2D : 0x8B5E; + SAMPLER_2D : 0x8B5E; + static SAMPLER_CUBE : 0x8B60; + SAMPLER_CUBE : 0x8B60; + static VERTEX_ATTRIB_ARRAY_ENABLED : 0x8622; + VERTEX_ATTRIB_ARRAY_ENABLED : 0x8622; + static VERTEX_ATTRIB_ARRAY_SIZE : 0x8623; + VERTEX_ATTRIB_ARRAY_SIZE : 0x8623; + static VERTEX_ATTRIB_ARRAY_STRIDE : 0x8624; + VERTEX_ATTRIB_ARRAY_STRIDE : 0x8624; + static VERTEX_ATTRIB_ARRAY_TYPE : 0x8625; + VERTEX_ATTRIB_ARRAY_TYPE : 0x8625; + static VERTEX_ATTRIB_ARRAY_NORMALIZED : 0x886A; + VERTEX_ATTRIB_ARRAY_NORMALIZED : 0x886A; + static VERTEX_ATTRIB_ARRAY_POINTER : 0x8645; + VERTEX_ATTRIB_ARRAY_POINTER : 0x8645; + static VERTEX_ATTRIB_ARRAY_BUFFER_BINDING : 0x889F; + VERTEX_ATTRIB_ARRAY_BUFFER_BINDING : 0x889F; + static IMPLEMENTATION_COLOR_READ_TYPE : 0x8B9A; + IMPLEMENTATION_COLOR_READ_TYPE : 0x8B9A; + static IMPLEMENTATION_COLOR_READ_FORMAT : 0x8B9B; + IMPLEMENTATION_COLOR_READ_FORMAT : 0x8B9B; + static COMPILE_STATUS : 0x8B81; + COMPILE_STATUS : 0x8B81; + static LOW_FLOAT : 0x8DF0; + LOW_FLOAT : 0x8DF0; + static MEDIUM_FLOAT : 0x8DF1; + MEDIUM_FLOAT : 0x8DF1; + static HIGH_FLOAT : 0x8DF2; + HIGH_FLOAT : 0x8DF2; + static LOW_INT : 0x8DF3; + LOW_INT : 0x8DF3; + static MEDIUM_INT : 0x8DF4; + MEDIUM_INT : 0x8DF4; + static HIGH_INT : 0x8DF5; + HIGH_INT : 0x8DF5; + static FRAMEBUFFER : 0x8D40; + FRAMEBUFFER : 0x8D40; + static RENDERBUFFER : 0x8D41; + RENDERBUFFER : 0x8D41; + static RGBA4 : 0x8056; + RGBA4 : 0x8056; + static RGB5_A1 : 0x8057; + RGB5_A1 : 0x8057; + static RGB565 : 0x8D62; + RGB565 : 0x8D62; + static DEPTH_COMPONENT16 : 0x81A5; + DEPTH_COMPONENT16 : 0x81A5; + static STENCIL_INDEX : 0x1901; + STENCIL_INDEX : 0x1901; + static STENCIL_INDEX8 : 0x8D48; + STENCIL_INDEX8 : 0x8D48; + static DEPTH_STENCIL : 0x84F9; + DEPTH_STENCIL : 0x84F9; + static RENDERBUFFER_WIDTH : 0x8D42; + RENDERBUFFER_WIDTH : 0x8D42; + static RENDERBUFFER_HEIGHT : 0x8D43; + RENDERBUFFER_HEIGHT : 0x8D43; + static RENDERBUFFER_INTERNAL_FORMAT : 0x8D44; + RENDERBUFFER_INTERNAL_FORMAT : 0x8D44; + static RENDERBUFFER_RED_SIZE : 0x8D50; + RENDERBUFFER_RED_SIZE : 0x8D50; + static RENDERBUFFER_GREEN_SIZE : 0x8D51; + RENDERBUFFER_GREEN_SIZE : 0x8D51; + static RENDERBUFFER_BLUE_SIZE : 0x8D52; + RENDERBUFFER_BLUE_SIZE : 0x8D52; + static RENDERBUFFER_ALPHA_SIZE : 0x8D53; + RENDERBUFFER_ALPHA_SIZE : 0x8D53; + static RENDERBUFFER_DEPTH_SIZE : 0x8D54; + RENDERBUFFER_DEPTH_SIZE : 0x8D54; + static RENDERBUFFER_STENCIL_SIZE : 0x8D55; + RENDERBUFFER_STENCIL_SIZE : 0x8D55; + static FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE : 0x8CD0; + FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE : 0x8CD0; + static FRAMEBUFFER_ATTACHMENT_OBJECT_NAME : 0x8CD1; + FRAMEBUFFER_ATTACHMENT_OBJECT_NAME : 0x8CD1; + static FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL : 0x8CD2; + FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL : 0x8CD2; + static FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE : 0x8CD3; + FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE : 0x8CD3; + static COLOR_ATTACHMENT0 : 0x8CE0; + COLOR_ATTACHMENT0 : 0x8CE0; + static DEPTH_ATTACHMENT : 0x8D00; + DEPTH_ATTACHMENT : 0x8D00; + static STENCIL_ATTACHMENT : 0x8D20; + STENCIL_ATTACHMENT : 0x8D20; + static DEPTH_STENCIL_ATTACHMENT : 0x821A; + DEPTH_STENCIL_ATTACHMENT : 0x821A; + static NONE : 0; + NONE : 0; + static FRAMEBUFFER_COMPLETE : 0x8CD5; + FRAMEBUFFER_COMPLETE : 0x8CD5; + static FRAMEBUFFER_INCOMPLETE_ATTACHMENT : 0x8CD6; + FRAMEBUFFER_INCOMPLETE_ATTACHMENT : 0x8CD6; + static FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : 0x8CD7; + FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT : 0x8CD7; + static FRAMEBUFFER_INCOMPLETE_DIMENSIONS : 0x8CD9; + FRAMEBUFFER_INCOMPLETE_DIMENSIONS : 0x8CD9; + static FRAMEBUFFER_UNSUPPORTED : 0x8CDD; + FRAMEBUFFER_UNSUPPORTED : 0x8CDD; + static FRAMEBUFFER_BINDING : 0x8CA6; + FRAMEBUFFER_BINDING : 0x8CA6; + static RENDERBUFFER_BINDING : 0x8CA7; + RENDERBUFFER_BINDING : 0x8CA7; + static MAX_RENDERBUFFER_SIZE : 0x84E8; + MAX_RENDERBUFFER_SIZE : 0x84E8; + static INVALID_FRAMEBUFFER_OPERATION : 0x0506; + INVALID_FRAMEBUFFER_OPERATION : 0x0506; + static UNPACK_FLIP_Y_WEBGL : 0x9240; + UNPACK_FLIP_Y_WEBGL : 0x9240; + static UNPACK_PREMULTIPLY_ALPHA_WEBGL : 0x9241; + UNPACK_PREMULTIPLY_ALPHA_WEBGL : 0x9241; + static CONTEXT_LOST_WEBGL : 0x9242; + CONTEXT_LOST_WEBGL : 0x9242; + static UNPACK_COLORSPACE_CONVERSION_WEBGL : 0x9243; + UNPACK_COLORSPACE_CONVERSION_WEBGL : 0x9243; + static BROWSER_DEFAULT_WEBGL : 0x9244; + BROWSER_DEFAULT_WEBGL : 0x9244; + + canvas: HTMLCanvasElement; + drawingBufferWidth: number; + drawingBufferHeight: number; + + getContextAttributes(): ?WebGLContextAttributes; + isContextLost(): boolean; + + getSupportedExtensions(): ?Array; + getExtension(name: string): any; + + activeTexture(texture: number): void; + attachShader(program: WebGLProgram, shader: WebGLShader): void; + bindAttribLocation(program: WebGLProgram, index: number, name: string): void; + bindBuffer(target: number, buffer: ?WebGLBuffer): void; + bindFramebuffer(target: number, framebuffer: ?WebGLFramebuffer): void; + bindRenderbuffer(target: number, renderbuffer: ?WebGLRenderbuffer): void; + bindTexture(target: number, texture: ?WebGLTexture): void; + blendColor(red: number, green: number, blue: number, alpha: number): void; + blendEquation(mode: number): void; + blendEquationSeparate(modeRGB: number, modeAlpha: number): void; + blendFunc(sfactor: number, dfactor: number): void; + blendFuncSeparate(srcRGB: number, dstRGB: number, srcAlpha: number, dstAlpha: number): void; + + bufferData(target: number, size: number, usage: number): void; + bufferData(target: number, data: ?ArrayBuffer, usage: number): void; + bufferData(target: number, data: $ArrayBufferView, usage: number): void; + bufferSubData(target: number, offset: number, data: BufferDataSource): void; + + checkFramebufferStatus(target: number): number; + clear(mask: number): void; + clearColor(red: number, green: number, blue: number, alpha: number): void; + clearDepth(depth: number): void; + clearStencil(s: number): void; + colorMask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void; + compileShader(shader: WebGLShader): void; + + compressedTexImage2D(target: number, level: number, internalformat: number, + width: number, height: number, border: number, + data: $ArrayBufferView): void; + + compressedTexSubImage2D(target: number, level: number, + xoffset: number, yoffset: number, + width: number, height: number, format: number, + data: $ArrayBufferView): void; + + copyTexImage2D(target: number, level: number, internalformat: number, + x: number, y: number, width: number, height: number, + border: number): void; + copyTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number, + x: number, y: number, width: number, height: number): void; + + createBuffer(): ?WebGLBuffer; + createFramebuffer(): ?WebGLFramebuffer; + createProgram(): ?WebGLProgram; + createRenderbuffer(): ?WebGLRenderbuffer; + createShader(type: number): ?WebGLShader; + createTexture(): ?WebGLTexture; + + cullFace(mode: number): void; + + deleteBuffer(buffer: ?WebGLBuffer): void; + deleteFramebuffer(framebuffer: ?WebGLFramebuffer): void; + deleteProgram(program: ?WebGLProgram): void; + deleteRenderbuffer(renderbuffer: ?WebGLRenderbuffer): void; + deleteShader(shader: ?WebGLShader): void; + deleteTexture(texture: ?WebGLTexture): void; + + depthFunc(func: number): void; + depthMask(flag: boolean): void; + depthRange(zNear: number, zFar: number): void; + detachShader(program: WebGLProgram, shader: WebGLShader): void; + disable(cap: number): void; + disableVertexAttribArray(index: number): void; + drawArrays(mode: number, first: number, count: number): void; + drawElements(mode: number, count: number, type: number, offset: number): void; + + enable(cap: number): void; + enableVertexAttribArray(index: number): void; + finish(): void; + flush(): void; + framebufferRenderbuffer(target: number, attachment: number, + renderbuffertarget: number, + renderbuffer: ?WebGLRenderbuffer): void; + framebufferTexture2D(target: number, attachment: number, textarget: number, + texture: ?WebGLTexture, level: number): void; + frontFace(mode: number): void; + + generateMipmap(target: number): void; + + getActiveAttrib(program: WebGLProgram, index: number): ?WebGLActiveInfo; + getActiveUniform(program: WebGLProgram, index: number): ?WebGLActiveInfo; + getAttachedShaders(program: WebGLProgram): ?Array; + + getAttribLocation(program: WebGLProgram, name: string): number; + + getBufferParameter(target: number, pname: number): any; + getParameter(pname: number): any; + + getError(): number; + + getFramebufferAttachmentParameter(target: number, attachment: number, + pname: number): any; + getProgramParameter(program: WebGLProgram, pname: number): any; + getProgramInfoLog(program: WebGLProgram): ?string; + getRenderbufferParameter(target: number, pname: number): any; + getShaderParameter(shader: WebGLShader, pname: number): any; + getShaderPrecisionFormat(shadertype: number, precisiontype: number): ?WebGLShaderPrecisionFormat; + getShaderInfoLog(shader: WebGLShader): ?string; + + getShaderSource(shader: WebGLShader): ?string; + + getTexParameter(target: number, pname: number): any; + + getUniform(program: WebGLProgram, location: WebGLUniformLocation): any; + + getUniformLocation(program: WebGLProgram, name: string): ?WebGLUniformLocation; + + getVertexAttrib(index: number, pname: number): any; + + getVertexAttribOffset(index: number, pname: number): number; + + hint(target: number, mode: number): void; + isBuffer(buffer: ?WebGLBuffer): boolean; + isEnabled(cap: number): boolean; + isFramebuffer(framebuffer: ?WebGLFramebuffer): boolean; + isProgram(program: ?WebGLProgram): boolean; + isRenderbuffer(renderbuffer: ?WebGLRenderbuffer): boolean; + isShader(shader: ?WebGLShader): boolean; + isTexture(texture: ?WebGLTexture): boolean; + lineWidth(width: number): void; + linkProgram(program: WebGLProgram): void; + pixelStorei(pname: number, param: number): void; + polygonOffset(factor: number, units: number): void; + + readPixels(x: number, y: number, width: number, height: number, + format: number, type: number, pixels: ?$ArrayBufferView): void; + + renderbufferStorage(target: number, internalformat: number, + width: number, height: number): void; + sampleCoverage(value: number, invert: boolean): void; + scissor(x: number, y: number, width: number, height: number): void; + + shaderSource(shader: WebGLShader, source: string): void; + + stencilFunc(func: number, ref: number, mask: number): void; + stencilFuncSeparate(face: number, func: number, ref: number, mask: number): void; + stencilMask(mask: number): void; + stencilMaskSeparate(face: number, mask: number): void; + stencilOp(fail: number, zfail: number, zpass: number): void; + stencilOpSeparate(face: number, fail: number, zfail: number, zpass: number): void; + + texImage2D(target: number, level: number, internalformat: number, + width: number, height: number, border: number, format: number, + type: number, pixels: ?$ArrayBufferView): void; + texImage2D(target: number, level: number, internalformat: number, + format: number, type: number, source: TexImageSource): void; + + texParameterf(target: number, pname: number, param: number): void; + texParameteri(target: number, pname: number, param: number): void; + + texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, + width: number, height: number, + format: number, type: number, pixels: ?$ArrayBufferView): void; + texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, + format: number, type: number, source: TexImageSource): void; + + uniform1f(location: ?WebGLUniformLocation, x: number): void; + uniform1fv(location: ?WebGLUniformLocation, v: Float32Array): void; + uniform1fv(location: ?WebGLUniformLocation, v: Array): void; + uniform1fv(location: ?WebGLUniformLocation, v: [number]): void; + uniform1i(location: ?WebGLUniformLocation, x: number): void; + uniform1iv(location: ?WebGLUniformLocation, v: Int32Array): void; + uniform1iv(location: ?WebGLUniformLocation, v: Array): void; + uniform1iv(location: ?WebGLUniformLocation, v: [number]): void; + uniform2f(location: ?WebGLUniformLocation, x: number, y: number): void; + uniform2fv(location: ?WebGLUniformLocation, v: Float32Array): void; + uniform2fv(location: ?WebGLUniformLocation, v: Array): void; + uniform2fv(location: ?WebGLUniformLocation, v: [number, number]): void; + uniform2i(location: ?WebGLUniformLocation, x: number, y: number): void; + uniform2iv(location: ?WebGLUniformLocation, v: Int32Array): void; + uniform2iv(location: ?WebGLUniformLocation, v: Array): void; + uniform2iv(location: ?WebGLUniformLocation, v: [number, number]): void; + uniform3f(location: ?WebGLUniformLocation, x: number, y: number, z: number): void; + uniform3fv(location: ?WebGLUniformLocation, v: Float32Array): void; + uniform3fv(location: ?WebGLUniformLocation, v: Array): void; + uniform3fv(location: ?WebGLUniformLocation, v: [number, number, number]): void; + uniform3i(location: ?WebGLUniformLocation, x: number, y: number, z: number): void; + uniform3iv(location: ?WebGLUniformLocation, v: Int32Array): void; + uniform3iv(location: ?WebGLUniformLocation, v: Array): void; + uniform3iv(location: ?WebGLUniformLocation, v: [number, number, number]): void; + uniform4f(location: ?WebGLUniformLocation, x: number, y: number, z: number, w: number): void; + uniform4fv(location: ?WebGLUniformLocation, v: Float32Array): void; + uniform4fv(location: ?WebGLUniformLocation, v: Array): void; + uniform4fv(location: ?WebGLUniformLocation, v: [number, number, number, number]): void; + uniform4i(location: ?WebGLUniformLocation, x: number, y: number, z: number, w: number): void; + uniform4iv(location: ?WebGLUniformLocation, v: Int32Array): void; + uniform4iv(location: ?WebGLUniformLocation, v: Array): void; + uniform4iv(location: ?WebGLUniformLocation, v: [number, number, number, number]): void; + + uniformMatrix2fv(location: ?WebGLUniformLocation, transpose: boolean, + value: Float32Array): void; + uniformMatrix2fv(location: ?WebGLUniformLocation, transpose: boolean, + value: Array): void; + uniformMatrix3fv(location: ?WebGLUniformLocation, transpose: boolean, + value: Float32Array): void; + uniformMatrix3fv(location: ?WebGLUniformLocation, transpose: boolean, + value: Array): void; + uniformMatrix4fv(location: ?WebGLUniformLocation, transpose: boolean, + value: Float32Array): void; + uniformMatrix4fv(location: ?WebGLUniformLocation, transpose: boolean, + value: Array): void; + + useProgram(program: ?WebGLProgram): void; + validateProgram(program: WebGLProgram): void; + + vertexAttrib1f(index: number, x: number): void; + vertexAttrib1fv(index: number, values: VertexAttribFVSource): void; + vertexAttrib2f(index: number, x: number, y: number): void; + vertexAttrib2fv(index: number, values: VertexAttribFVSource): void; + vertexAttrib3f(index: number, x: number, y: number, z: number): void; + vertexAttrib3fv(index: number, values: VertexAttribFVSource): void; + vertexAttrib4f(index: number, x: number, y: number, z: number, w: number): void; + vertexAttrib4fv(index: number, values: VertexAttribFVSource): void; + vertexAttribPointer(index: number, size: number, type: number, + normalized: boolean, stride: number, offset: number): void; + + viewport(x: number, y: number, width: number, height: number): void; +}; + +declare class WebGLContextEvent extends Event { + statusMessage: string; +}; + +// http://www.w3.org/TR/html5/scripting-1.html#renderingcontext +type RenderingContext = CanvasRenderingContext2D | WebGLRenderingContext; + +// https://www.w3.org/TR/html5/scripting-1.html#htmlcanvaselement +declare class HTMLCanvasElement extends HTMLElement { + tagName: 'CANVAS'; + width: number; + height: number; + getContext(contextId: "2d", ...args: any): CanvasRenderingContext2D; + getContext(contextId: "webgl", contextAttributes?: Partial): ?WebGLRenderingContext; + // IE currently only supports "experimental-webgl" + getContext(contextId: "experimental-webgl", contextAttributes?: Partial): ?WebGLRenderingContext; + getContext(contextId: string, ...args: any): ?RenderingContext; // fallback + toDataURL(type?: string, ...args: any): string; + toBlob(callback: (v: File) => void, type?: string, ...args: any): void; + captureStream(frameRate?: number): CanvasCaptureMediaStream; +} + +// https://html.spec.whatwg.org/multipage/forms.html#the-details-element +declare class HTMLDetailsElement extends HTMLElement { + tagName: 'DETAILS'; + open: boolean; +} + +declare class HTMLFormElement extends HTMLElement { + tagName: 'FORM'; + @@iterator(): Iterator; + [index: number | string]: HTMLElement | null; + acceptCharset: string; + action: string; + elements: HTMLCollection; + encoding: string; + enctype: string; + length: number; + method: string; + name: string; + rel: string; + target: string; + + checkValidity(): boolean; + reportValidity(): boolean; + reset(): void; + submit(): void; +} + +// https://www.w3.org/TR/html5/forms.html#the-fieldset-element +declare class HTMLFieldSetElement extends HTMLElement { + tagName: 'FIELDSET'; + disabled: boolean; + elements: HTMLCollection; // readonly + form: HTMLFormElement | null; // readonly + name: string; + type: string; // readonly + + checkValidity(): boolean; + setCustomValidity(error: string): void; +} + +declare class HTMLLegendElement extends HTMLElement { + tagName: 'LEGEND'; + form: HTMLFormElement | null; // readonly +} + +declare class HTMLIFrameElement extends HTMLElement { + tagName: 'IFRAME'; + allowFullScreen: boolean; + contentDocument: Document; + contentWindow: any; + frameBorder: string; + height: string; + marginHeight: string; + marginWidth: string; + name: string; + scrolling: string; + sandbox: DOMTokenList; + src: string; + // flowlint unsafe-getters-setters:off + get srcdoc(): string; + set srcdoc(value: string | TrustedHTML): void; + // flowlint unsafe-getters-setters:error + width: string; +} + +declare class HTMLImageElement extends HTMLElement { + tagName: 'IMG'; + alt: string; + complete: boolean; // readonly + crossOrigin: ?string; + currentSrc: string; // readonly + height: number; + decode(): Promise; + isMap: boolean; + naturalHeight: number; // readonly + naturalWidth: number; // readonly + sizes: string; + src: string; + srcset: string; + useMap: string; + width: number; +} + +declare class Image extends HTMLImageElement { + constructor(width?: number, height?: number): void; +} + +declare class MediaError { + MEDIA_ERR_ABORTED: number; + MEDIA_ERR_NETWORK: number; + MEDIA_ERR_DECODE: number; + MEDIA_ERR_SRC_NOT_SUPPORTED: number; + code: number; + message: ?string; +} + +declare class TimeRanges { + length: number; + start(index: number): number; + end(index: number): number; +} +declare class Audio extends HTMLAudioElement { + constructor(URLString?: string): void; +} + +declare class AudioTrack { + id: string; + kind: string; + label: string; + language: string; + enabled: boolean; +} + +declare class AudioTrackList extends EventTarget { + length: number; + [index: number]: AudioTrack; + + getTrackById(id: string): ?AudioTrack; + + onchange: (ev: any) => any; + onaddtrack: (ev: any) => any; + onremovetrack: (ev: any) => any; +} + +declare class VideoTrack { + id: string; + kind: string; + label: string; + language: string; + selected: boolean; +} + +declare class VideoTrackList extends EventTarget { + length: number; + [index: number]: VideoTrack; + getTrackById(id: string): ?VideoTrack; + selectedIndex: number; + + onchange: (ev: any) => any; + onaddtrack: (ev: any) => any; + onremovetrack: (ev: any) => any; +} + +declare class TextTrackCue extends EventTarget { + constructor(startTime: number, endTime: number, text: string): void; + + track: TextTrack; + id: string; + startTime: number; + endTime: number; + pauseOnExit: boolean; + vertical: string; + snapToLines: boolean; + lines: number; + position: number; + size: number; + align: string; + text: string; + + getCueAsHTML(): Node; + onenter: (ev: any) => any; + onexit: (ev: any) => any; +} + +declare class TextTrackCueList { + @@iterator(): Iterator; + length: number; + [index: number]: TextTrackCue; + getCueById(id: string): ?TextTrackCue; +} + +declare class TextTrack extends EventTarget { + kind: string; + label: string; + language: string; + + mode: string; + + cues: TextTrackCueList; + activeCues: TextTrackCueList; + + addCue(cue: TextTrackCue): void; + removeCue(cue: TextTrackCue): void; + + oncuechange: (ev: any) => any; +} + +declare class TextTrackList extends EventTarget { + length: number; + [index: number]: TextTrack; + + onaddtrack: (ev: any) => any; + onremovetrack: (ev: any) => any; +} + +declare class MediaKeyStatusMap { + @@iterator(): Iterator<[BufferDataSource, MediaKeyStatus]>; + size: number; + entries(): Iterator<[BufferDataSource, MediaKeyStatus]>; + forEach(callbackfn: (value: MediaKeyStatus, key: BufferDataSource, map: MediaKeyStatusMap) => any, thisArg?: any): void; + get(key: BufferDataSource): MediaKeyStatus; + has(key: BufferDataSource): boolean; + keys(): Iterator; + values(): Iterator; +} + +declare class MediaKeySession extends EventTarget { + sessionId: string; + expiration: number; + closed: Promise; + keyStatuses: MediaKeyStatusMap; + + generateRequest(initDataType: string, initData: BufferDataSource): Promise; + load(sessionId: string): Promise; + update(response: BufferDataSource): Promise; + close(): Promise; + remove(): Promise; + + onkeystatuschange: (ev: any) => any; + onmessage: (ev: any) => any; +} + +declare class MediaKeys { + createSession(mediaKeySessionType: MediaKeySessionType): MediaKeySession; + setServerCertificate(serverCertificate: BufferDataSource): Promise; +} + +declare class HTMLMediaElement extends HTMLElement { + // error state + error: ?MediaError; + + // network state + src: string; + srcObject: ?any; + currentSrc: string; + crossOrigin: ?string; + NETWORK_EMPTY: number; + NETWORK_IDLE: number; + NETWORK_LOADING: number; + NETWORK_NO_SOURCE: number; + networkState: number; + preload: string; + buffered: TimeRanges; + load(): void; + canPlayType(type: string): string; + + // ready state + HAVE_NOTHING: number; + HAVE_METADATA: number; + HAVE_CURRENT_DATA: number; + HAVE_FUTURE_DATA: number; + HAVE_ENOUGH_DATA: number; + readyState: number; + seeking: boolean; + + // playback state + currentTime: number; + duration: number; + startDate: Date; + paused: boolean; + defaultPlaybackRate: number; + playbackRate: number; + played: TimeRanges; + seekable: TimeRanges; + ended: boolean; + autoplay: boolean; + loop: boolean; + play(): Promise; + pause(): void; + fastSeek(): void; + captureStream(): MediaStream; + + // media controller + mediaGroup: string; + controller: ?any; + + // controls + controls: boolean; + volume: number; + muted: boolean; + defaultMuted: boolean; + controlsList?: DOMTokenList; + + // tracks + audioTracks: AudioTrackList; + videoTracks: VideoTrackList; + textTracks: TextTrackList; + addTextTrack(kind: string, label?: string, language?: string): TextTrack; + + // media keys + mediaKeys?: ?MediaKeys; + setMediakeys?: (mediakeys: ?MediaKeys) => Promise; +} + +declare class HTMLAudioElement extends HTMLMediaElement { + tagName: 'AUDIO'; +} + +declare class HTMLVideoElement extends HTMLMediaElement { + tagName: 'VIDEO'; + width: number; + height: number; + videoWidth: number; + videoHeight: number; + poster: string; +} + +declare class HTMLSourceElement extends HTMLElement { + tagName: 'SOURCE'; + src: string; + type: string; + + //when used with the picture element + srcset: string; + sizes: string; + media: string; +} + +declare class ValidityState { + badInput: boolean; + customError: boolean; + patternMismatch: boolean; + rangeOverflow: boolean; + rangeUnderflow: boolean; + stepMismatch: boolean; + tooLong: boolean; + tooShort: boolean; + typeMismatch: boolean; + valueMissing: boolean; + valid: boolean; +} + +// https://w3c.github.io/html/sec-forms.html#dom-selectionapielements-setselectionrange +type SelectionDirection = 'backward' | 'forward' | 'none'; +type SelectionMode = 'select' | 'start' | 'end' | 'preserve'; +declare class HTMLInputElement extends HTMLElement { + tagName: 'INPUT'; + accept: string; + align: string; + alt: string; + autocomplete: string; + autofocus: boolean; + border: string; + checked: boolean; + complete: boolean; + defaultChecked: boolean; + defaultValue: string; + dirname: string; + disabled: boolean; + dynsrc: string; + files: FileList; + form: HTMLFormElement | null; + formAction: string; + formEncType: string; + formMethod: string; + formNoValidate: boolean; + formTarget: string; + height: string; + hspace: number; + indeterminate: boolean; + labels: NodeList; + list: HTMLElement | null; + loop: number; + lowsrc: string; + max: string; + maxLength: number; + min: string; + multiple: boolean; + name: string; + pattern: string; + placeholder: string; + readOnly: boolean; + required: boolean; + selectionDirection: SelectionDirection; + selectionEnd: number; + selectionStart: number; + size: number; + src: string; + start: string; + status: boolean; + step: string; + tabIndex: number; + type: string; + useMap: string; + validationMessage: string; + validity: ValidityState; + value: string; + valueAsDate: Date; + valueAsNumber: number; + vrml: string; + vspace: number; + width: string; + willValidate: boolean; + + blur(): void; + checkValidity(): boolean; + reportValidity(): boolean; + setCustomValidity(error: string): void; + click(): void; + createTextRange(): TextRange; + focus(): void; + select(): void; + setRangeText(replacement: string, start?: void, end?: void, selectMode?: void): void; + setRangeText(replacement: string, start: number, end: number, selectMode?: SelectionMode): void; + setSelectionRange(start: number, end: number, direction?: SelectionDirection): void; + showPicker(): void; + stepDown(stepDecrement?: number): void; + stepUp(stepIncrement?: number): void; +} + +declare class HTMLButtonElement extends HTMLElement { + tagName: 'BUTTON'; + autofocus: boolean; + disabled: boolean; + form: HTMLFormElement | null; + labels: NodeList | null; + name: string; + type: string; + validationMessage: string; + validity: ValidityState; + value: string; + willValidate: boolean; + + checkValidity(): boolean; + reportValidity(): boolean; + setCustomValidity(error: string): void; +} + +// https://w3c.github.io/html/sec-forms.html#the-textarea-element +declare class HTMLTextAreaElement extends HTMLElement { + tagName: 'TEXTAREA'; + autofocus: boolean; + cols: number; + dirName: string; + disabled: boolean; + form: HTMLFormElement | null; + maxLength: number; + name: string; + placeholder: string; + readOnly: boolean; + required: boolean; + rows: number; + wrap: string; + + type: string; + defaultValue: string; + value: string; + textLength: number; + + willValidate: boolean; + validity: ValidityState; + validationMessage: string; + checkValidity(): boolean; + setCustomValidity(error: string): void; + + labels: NodeList; + + select(): void; + selectionStart: number; + selectionEnd: number; + selectionDirection: SelectionDirection; + setSelectionRange(start: number, end: number, direction?: SelectionDirection): void; +} + +declare class HTMLSelectElement extends HTMLElement { + tagName: 'SELECT'; + autocomplete: string; + autofocus: boolean; + disabled: boolean; + form: HTMLFormElement | null; + labels: NodeList; + length: number; + multiple: boolean; + name: string; + options: HTMLOptionsCollection; + required: boolean; + selectedIndex: number; + selectedOptions: HTMLCollection; + size: number; + type: string; + validationMessage: string; + validity: ValidityState; + value: string; + willValidate: boolean; + + add(element: HTMLElement, before?: HTMLElement): void; + checkValidity(): boolean; + item(index: number): HTMLOptionElement | null; + namedItem(name: string): HTMLOptionElement | null; + remove(index?: number): void; + setCustomValidity(error: string): void; +} + +declare class HTMLOptionsCollection extends HTMLCollection { + selectedIndex: number; + add(element: HTMLOptionElement | HTMLOptGroupElement, before?: HTMLElement | number): void; + remove(index: number): void; +} + +declare class HTMLOptionElement extends HTMLElement { + tagName: 'OPTION'; + defaultSelected: boolean; + disabled: boolean; + form: HTMLFormElement | null; + index: number; + label: string; + selected: boolean; + text: string; + value: string; +} + +declare class HTMLOptGroupElement extends HTMLElement { + tagName: 'OPTGROUP'; + disabled: boolean; + label: string; +} + +declare class HTMLAnchorElement extends HTMLElement { + tagName: 'A'; + charset: string; + coords: string; + download: string; + hash: string; + host: string; + hostname: string; + href: string; + hreflang: string; + media: string; + name: string; + origin: string; + password: string; + pathname: string; + port: string; + protocol: string; + rel: string; + rev: string; + search: string; + shape: string; + target: string; + text: string; + type: string; + username: string; +} + +// https://w3c.github.io/html/sec-forms.html#the-label-element +declare class HTMLLabelElement extends HTMLElement { + tagName: 'LABEL'; + form: HTMLFormElement | null; + htmlFor: string; + control: HTMLElement | null; +} + +declare class HTMLLinkElement extends HTMLElement { + tagName: 'LINK'; + crossOrigin: ?('anonymous' | 'use-credentials'); + href: string; + hreflang: string; + media: string; + rel: string; + sizes: DOMTokenList; + type: string; + as: string; +} + +declare class HTMLScriptElement extends HTMLElement { + tagName: 'SCRIPT'; + async: boolean; + charset: string; + crossOrigin?: string; + defer: boolean; + // flowlint unsafe-getters-setters:off + get src(): string; + set src(value: string | TrustedScriptURL): void; + get text(): string; + set text(value: string | TrustedScript): void; + // flowlint unsafe-getters-setters:error + type: string; +} + +declare class HTMLStyleElement extends HTMLElement { + tagName: 'STYLE'; + disabled: boolean; + media: string; + scoped: boolean; + sheet: ?CSSStyleSheet; + type: string; +} + +declare class HTMLParagraphElement extends HTMLElement { + tagName: 'P'; + align: 'left' | 'center' | 'right' | 'justify'; // deprecated in HTML 4.01 +} + +declare class HTMLHtmlElement extends HTMLElement { + tagName: 'HTML'; +} + +declare class HTMLBodyElement extends HTMLElement { + tagName: 'BODY'; +} + +declare class HTMLHeadElement extends HTMLElement { + tagName: 'HEAD'; +} + +declare class HTMLDivElement extends HTMLElement { + tagName: 'DIV'; +} + +declare class HTMLSpanElement extends HTMLElement { + tagName: 'SPAN'; +} + +declare class HTMLAppletElement extends HTMLElement {} + +declare class HTMLHeadingElement extends HTMLElement { + tagName: 'H1' | 'H2' | 'H3' | 'H4' | 'H5' | 'H6'; +} + +declare class HTMLHRElement extends HTMLElement { + tagName: 'HR'; +} + +declare class HTMLBRElement extends HTMLElement { + tagName: 'BR'; +} + +declare class HTMLDListElement extends HTMLElement { + tagName: 'DL'; +} + +declare class HTMLAreaElement extends HTMLElement { + tagName: 'AREA'; + alt: string; + coords: string; + shape: string; + target: string; + download: string; + ping: string; + rel: string; + relList: DOMTokenList; + referrerPolicy: string; +} + +declare class HTMLDataElement extends HTMLElement { + tagName: 'DATA'; + value: string; +} + +declare class HTMLDataListElement extends HTMLElement { + tagName: 'DATALIST'; + options: HTMLCollection; +} + +declare class HTMLDialogElement extends HTMLElement { + tagName: 'DIALOG'; + open: boolean; + returnValue: string; + show(): void; + showModal(): void; + close(returnValue: ?string): void; +} + +declare class HTMLEmbedElement extends HTMLElement { + tagName: 'EMBED'; + src: string; + type: string; + width: string; + height: string; + getSVGDocument(): ?Document; +} + +declare class HTMLMapElement extends HTMLElement { + tagName: 'MAP'; + areas: HTMLCollection; + images: HTMLCollection; + name: string; +} + +declare class HTMLMeterElement extends HTMLElement { + tagName: 'METER'; + high: number; + low: number; + max: number; + min: number; + optimum: number; + value: number; + labels: NodeList; +} + +declare class HTMLModElement extends HTMLElement { + tagName: 'DEL' | 'INS'; + cite: string; + dateTime: string; +} + +declare class HTMLObjectElement extends HTMLElement { + tagName: 'OBJECT'; + contentDocument: ?Document; + contentWindow: ?WindowProxy; + data: string; + form: ?HTMLFormElement; + height: string; + name: string; + type: string; + typeMustMatch: boolean; + useMap: string; + validationMessage: string; + validity: ValidityState; + width: string; + willValidate: boolean; + checkValidity(): boolean; + getSVGDocument(): ?Document; + reportValidity(): boolean; + setCustomValidity(error: string): void; +} + +declare class HTMLOutputElement extends HTMLElement { + defaultValue: string; + form: ?HTMLFormElement; + htmlFor: DOMTokenList; + labels: NodeList; + name: string; + type: string; + validationMessage: string; + validity: ValidityState; + value: string; + willValidate: boolean; + checkValidity(): boolean; + reportValidity(): boolean; + setCustomValidity(error: string): void; +} + +declare class HTMLParamElement extends HTMLElement { + tagName: 'PARAM'; + name: string; + value: string; +} + +declare class HTMLProgressElement extends HTMLElement { + tagName: 'PROGRESS'; + labels: NodeList; + max: number; + position: number; + value: number; +} + +declare class HTMLPictureElement extends HTMLElement { + tagName: 'PICTURE'; +} + +declare class HTMLTimeElement extends HTMLElement { + tagName: 'TIME'; + dateTime: string; +} + +declare class HTMLTitleElement extends HTMLElement { + tagName: 'TITLE'; + text: string; +} + +declare class HTMLTrackElement extends HTMLElement { + tagName: 'TRACK'; + static NONE: 0; + static LOADING: 1; + static LOADED: 2; + static ERROR: 3; + + default: boolean; + kind: string; + label: string; + readyState: 0 | 1 | 2 | 3; + src: string; + srclang: string; + track: TextTrack; +} + +declare class HTMLQuoteElement extends HTMLElement { + tagName: 'BLOCKQUOTE' | 'Q'; + cite: string; +} + +declare class HTMLOListElement extends HTMLElement { + tagName: 'OL'; + reversed: boolean; + start: number; + type: string; +} + +declare class HTMLUListElement extends HTMLElement { + tagName: 'UL'; +} + +declare class HTMLLIElement extends HTMLElement { + tagName: 'LI'; + value: number; +} + +declare class HTMLPreElement extends HTMLElement { + tagName: 'PRE'; +} + +declare class HTMLMetaElement extends HTMLElement { + tagName: 'META'; + content: string; + httpEquiv: string; + name: string; +} + +declare class HTMLUnknownElement extends HTMLElement {} + +declare class TextRange { + boundingLeft: number; + htmlText: string; + offsetLeft: number; + boundingWidth: number; + boundingHeight: number; + boundingTop: number; + text: string; + offsetTop: number; + moveToPoint(x: number, y: number): void; + queryCommandValue(cmdID: string): any; + getBookmark(): string; + move(unit: string, count?: number): number; + queryCommandIndeterm(cmdID: string): boolean; + scrollIntoView(fStart?: boolean): void; + findText(string: string, count?: number, flags?: number): boolean; + execCommand(cmdID: string, showUI?: boolean, value?: any): boolean; + getBoundingClientRect(): ClientRect | DOMRect; + moveToBookmark(bookmark: string): boolean; + isEqual(range: TextRange): boolean; + duplicate(): TextRange; + collapse(start?: boolean): void; + queryCommandText(cmdID: string): string; + select(): void; + pasteHTML(html: string): void; + inRange(range: TextRange): boolean; + moveEnd(unit: string, count?: number): number; + getClientRects(): ClientRectList | DOMRectList; + moveStart(unit: string, count?: number): number; + parentElement(): Element; + queryCommandState(cmdID: string): boolean; + compareEndPoints(how: string, sourceRange: TextRange): number; + execCommandShowHelp(cmdID: string): boolean; + moveToElementText(element: Element): void; + expand(Unit: string): boolean; + queryCommandSupported(cmdID: string): boolean; + setEndPoint(how: string, SourceRange: TextRange): void; + queryCommandEnabled(cmdID: string): boolean; +} + +declare class ClientRect { // extension + left: number; + x: number; + width: number; + right: number; + top: number; + y: number; + bottom: number; + height: number; +} + +declare class ClientRectList { // extension + @@iterator(): Iterator; + length: number; + item(index: number): ClientRect; + [index: number]: ClientRect; +} + +// TODO: HTML*Element + +declare class DOMImplementation { + createDocumentType(qualifiedName: string, publicId: string, systemId: string): DocumentType; + createDocument(namespaceURI: string | null, qualifiedName: string, doctype?: DocumentType | null): Document; + hasFeature(feature: string, version?: string): boolean; + + // non-standard + createHTMLDocument(title?: string): Document; +} + +declare class DocumentType extends Node { + name: string; + notations: NamedNodeMap; + systemId: string; + internalSubset: string; + entities: NamedNodeMap; + publicId: string; + + // from ChildNode interface + after(...nodes: Array): void; + before(...nodes: Array): void; + replaceWith(...nodes: Array): void; + remove(): void; +} + +declare class CharacterData extends Node { + length: number; + data: string; + deleteData(offset: number, count: number): void; + replaceData(offset: number, count: number, arg: string): void; + appendData(arg: string): void; + insertData(offset: number, arg: string): void; + substringData(offset: number, count: number): string; + + // from ChildNode interface + after(...nodes: Array): void; + before(...nodes: Array): void; + replaceWith(...nodes: Array): void; + remove(): void; +} + +declare class Text extends CharacterData { + assignedSlot?: HTMLSlotElement; + wholeText: string; + splitText(offset: number): Text; + replaceWholeText(content: string): Text; +} + +declare class Comment extends CharacterData { + text: string; +} + +declare class URL { + static canParse(url: string, base?: string): boolean; + static createObjectURL(blob: Blob): string; + static createObjectURL(mediaSource: MediaSource): string; + static revokeObjectURL(url: string): void; + constructor(url: string, base?: string | URL): void; + hash: string; + host: string; + hostname: string; + href: string; + +origin: string; + password: string; + pathname: string; + port: string; + protocol: string; + search: string; + +searchParams: URLSearchParams; + username: string; + toString(): string; + toJSON(): string; +} + +declare interface MediaSourceHandle { +} + +declare class MediaSource extends EventTarget { + sourceBuffers: SourceBufferList; + activeSourceBuffers: SourceBufferList; + // https://w3c.github.io/media-source/#dom-readystate + readyState: "closed" | "open" | "ended"; + duration: number; + handle: MediaSourceHandle; + addSourceBuffer(type: string): SourceBuffer; + removeSourceBuffer(sourceBuffer: SourceBuffer): void; + endOfStream(error?: string): void; + static isTypeSupported(type: string): boolean; +} + +declare class SourceBuffer extends EventTarget { + mode: "segments" | "sequence"; + updating: boolean; + buffered: TimeRanges; + timestampOffset: number; + audioTracks: AudioTrackList; + videoTracks: VideoTrackList; + textTracks: TextTrackList; + appendWindowStart: number; + appendWindowEnd: number; + + appendBuffer(data: ArrayBuffer | $ArrayBufferView): void; + // TODO: Add ReadableStream + // appendStream(stream: ReadableStream, maxSize?: number): void; + abort(): void; + remove(start: number, end: number): void; + + trackDefaults: TrackDefaultList; +} + +declare class SourceBufferList extends EventTarget { + @@iterator(): Iterator; + [index: number]: SourceBuffer; + length: number; +} + +declare class Storage { + length: number; + getItem(key: string): ?string; + setItem(key: string, data: string): void; + clear(): void; + removeItem(key: string): void; + key(index: number): ?string; + [name: string]: ?string; +} + +declare class TrackDefaultList { + [index: number]: TrackDefault; + length: number; +} + +declare class TrackDefault { + type: "audio" | "video" | "text"; + byteStreamTrackID: string; + language: string; + label: string; + kinds: Array; +} + +// TODO: The use of `typeof` makes this function signature effectively +// (node: Node) => number, but it should be (node: Node) => 1|2|3 +type NodeFilterCallback = (node: Node) => +typeof NodeFilter.FILTER_ACCEPT | +typeof NodeFilter.FILTER_REJECT | +typeof NodeFilter.FILTER_SKIP; + +type NodeFilterInterface = NodeFilterCallback | { acceptNode: NodeFilterCallback, ... } + +// TODO: window.NodeFilter exists at runtime and behaves as a constructor +// as far as `instanceof` is concerned, but it is not callable. +declare class NodeFilter { + static SHOW_ALL: -1; + static SHOW_ELEMENT: 1; + static SHOW_ATTRIBUTE: 2; // deprecated + static SHOW_TEXT: 4; + static SHOW_CDATA_SECTION: 8; // deprecated + static SHOW_ENTITY_REFERENCE: 16; // deprecated + static SHOW_ENTITY: 32; // deprecated + static SHOW_PROCESSING_INSTRUCTION: 64; + static SHOW_COMMENT: 128; + static SHOW_DOCUMENT: 256; + static SHOW_DOCUMENT_TYPE: 512; + static SHOW_DOCUMENT_FRAGMENT: 1024; + static SHOW_NOTATION: 2048; // deprecated + static FILTER_ACCEPT: 1; + static FILTER_REJECT: 2; + static FILTER_SKIP: 3; + acceptNode: NodeFilterCallback; +} + +// TODO: window.NodeIterator exists at runtime and behaves as a constructor +// as far as `instanceof` is concerned, but it is not callable. +declare class NodeIterator { + root: RootNodeT; + whatToShow: number; + filter: NodeFilter; + expandEntityReferences: boolean; + referenceNode: RootNodeT | WhatToShowT; + pointerBeforeReferenceNode: boolean; + detach(): void; + previousNode(): WhatToShowT | null; + nextNode(): WhatToShowT | null; +} + +// TODO: window.TreeWalker exists at runtime and behaves as a constructor +// as far as `instanceof` is concerned, but it is not callable. +declare class TreeWalker { + root: RootNodeT; + whatToShow: number; + filter: NodeFilter; + expandEntityReferences: boolean; + currentNode: RootNodeT | WhatToShowT; + parentNode(): WhatToShowT | null; + firstChild(): WhatToShowT | null; + lastChild(): WhatToShowT | null; + previousSibling(): WhatToShowT | null; + nextSibling(): WhatToShowT | null; + previousNode(): WhatToShowT | null; + nextNode(): WhatToShowT | null; +} + +/* window */ + +declare type WindowProxy = any; +declare function alert(message?: any): void; +declare function prompt(message?: any, value?: any): string; +declare function close(): void; +declare function confirm(message?: string): boolean; +declare function getComputedStyle(elt: Element, pseudoElt?: string): CSSStyleDeclaration; +declare opaque type AnimationFrameID; +declare function requestAnimationFrame(callback: (timestamp: number) => void): AnimationFrameID; +declare function cancelAnimationFrame(requestId: AnimationFrameID): void; +declare opaque type IdleCallbackID; +declare function requestIdleCallback( + cb: (deadline: { + didTimeout: boolean, + timeRemaining: () => number, + ... + }) => void, + opts?: { timeout: number, ... }, +): IdleCallbackID; +declare function cancelIdleCallback(id: IdleCallbackID): void; +declare var localStorage: Storage; +declare var devicePixelRatio: number; +declare function focus(): void; +declare function onfocus(ev: Event): any; +declare function onmessage(ev: MessageEvent): any; +declare function open(url?: string, target?: string, features?: string, replace?: boolean): any; +declare var parent: WindowProxy; +declare function print(): void; +declare var self: any; +declare var sessionStorage: Storage; +declare var top: WindowProxy; +declare function getSelection(): Selection | null; +declare var customElements: CustomElementRegistry; +declare function scroll(x: number, y: number): void; +declare function scroll(options: ScrollToOptions): void; +declare function scrollTo(x: number, y: number): void; +declare function scrollTo(options: ScrollToOptions): void; +declare function scrollBy(x: number, y: number): void; +declare function scrollBy(options: ScrollToOptions): void; + +/* Notification */ +type NotificationPermission = 'default' | 'denied' | 'granted'; +type NotificationDirection = 'auto' | 'ltr' | 'rtl'; +type VibratePattern = number | Array; +type NotificationAction = { + action: string, + title: string, + icon?: string, + ... +}; +type NotificationOptions = { + dir?: NotificationDirection, + lang?: string, + body?: string, + tag?: string, + image?: string, + icon?: string, + badge?: string, + sound?: string, + vibrate?: VibratePattern, + timestamp?: number, + renotify?: boolean, + silent?: boolean, + requireInteraction?: boolean, + data?: ?any, + actions?: Array, + ... +}; + +declare class Notification extends EventTarget { + constructor(title: string, options?: NotificationOptions): void; + static +permission: NotificationPermission; + static requestPermission( + callback?: (perm: NotificationPermission) => mixed + ): Promise; + static +maxActions: number; + onclick: ?(evt: Event) => mixed; + onclose: ?(evt: Event) => mixed; + onerror: ?(evt: Event) => mixed; + onshow: ?(evt: Event) => mixed; + +title: string; + +dir: NotificationDirection; + +lang: string; + +body: string; + +tag: string; + +image?: string; + +icon?: string; + +badge?: string; + +vibrate?: Array; + +timestamp: number; + +renotify: boolean; + +silent: boolean; + +requireInteraction: boolean; + +data: any; + +actions: Array; + + close(): void; +} diff --git a/flow/master/flowlib/indexeddb.js b/flow/master/flowlib/indexeddb.js new file mode 100644 index 00000000000..1fa03901b1e --- /dev/null +++ b/flow/master/flowlib/indexeddb.js @@ -0,0 +1,149 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +// Implemented by window & worker +declare interface IDBEnvironment { + indexedDB: IDBFactory; +} + +type IDBDirection = 'next' | 'nextunique' | 'prev' | 'prevunique'; +type IDBTransactionDurability = 'default' | 'relaxed' | 'strict'; + +// Implemented by window.indexedDB & worker.indexedDB +declare interface IDBFactory { + open(name: string, version?: number): IDBOpenDBRequest; + deleteDatabase(name: string): IDBOpenDBRequest; + /** + * No support in Firefox, hence the method is marked as optional. + * See https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/databases#browser_compatibility + */ + databases?: () => Promise>; + cmp(a: any, b: any): -1|0|1; +} + +declare interface IDBDatabaseInfo { + name: string; + version: number; +} + +declare interface IDBRequest extends EventTarget { + result: IDBObjectStore; + error: Error; + source: ?(IDBIndex | IDBObjectStore | IDBCursor); + transaction: IDBTransaction; + readyState: 'pending'|'done'; + onerror: (err: any) => mixed; + onsuccess: (e: any) => mixed; +} + +declare interface IDBOpenDBRequest extends IDBRequest { + onblocked: (e: any) => mixed; + onupgradeneeded: (e: any) => mixed; +} + +declare interface IDBTransactionOptions { + durability?: IDBTransactionDurability; +} + +declare interface IDBDatabase extends EventTarget { + close(): void; + createObjectStore(name: string, options?: { + keyPath?: ?(string|string[]), + autoIncrement?: boolean, + ... + }): IDBObjectStore; + deleteObjectStore(name: string): void; + transaction( + storeNames: string | string[] | DOMStringList, + mode?: 'readonly' | 'readwrite' | 'versionchange', + options?: IDBTransactionOptions + ): IDBTransaction; + name: string; + version: number; + objectStoreNames: DOMStringList; + onabort: (e: any) => mixed; + onclose: (e: any) => mixed; + onerror: (e: any) => mixed; + onversionchange: (e: any) => mixed; +} + +declare interface IDBTransaction extends EventTarget { + abort(): void; + db: IDBDatabase; + +durability: IDBTransactionDurability; + error: Error; + mode: 'readonly'|'readwrite'|'versionchange'; + name: string; + objectStore(name: string): IDBObjectStore; + onabort: (e: any) => mixed; + oncomplete: (e: any) => mixed; + onerror: (e: any) => mixed; +} + +declare interface IDBObjectStore { + add(value: any, key?: any): IDBRequest; + autoIncrement: boolean; + clear(): IDBRequest; + createIndex(indexName: string, keyPath: string|string[], optionalParameter?: { + unique?: boolean, + multiEntry?: boolean, + ... + }): IDBIndex; + count(keyRange?: any|IDBKeyRange): IDBRequest; + delete(key: any): IDBRequest; + deleteIndex(indexName: string): void; + get(key: any): IDBRequest; + index(indexName: string): IDBIndex; + indexNames: string[]; + name: string; + keyPath: any; + openCursor(range?: any|IDBKeyRange, direction?: IDBDirection): IDBRequest; + openKeyCursor(range?: any|IDBKeyRange, direction?: IDBDirection): IDBRequest; + put(value: any, key?: any): IDBRequest; + transaction : IDBTransaction; +} + +declare interface IDBIndex extends EventTarget { + count(key?: any|IDBKeyRange): IDBRequest; + get(key: any|IDBKeyRange): IDBRequest; + getKey(key: any|IDBKeyRange): IDBRequest; + openCursor(range?: any|IDBKeyRange, direction?: IDBDirection): IDBRequest; + openKeyCursor(range?: any|IDBKeyRange, direction?: IDBDirection): IDBRequest; + name: string; + objectStore: IDBObjectStore; + keyPath: any; + multiEntry: boolean; + unique: boolean; +} + +declare interface IDBKeyRange { + bound(lower: any, upper: any, lowerOpen?: boolean, upperOpen?: boolean): IDBKeyRange; + only(value: any): IDBKeyRange; + lowerBound(bound: any, open?: boolean): IDBKeyRange; + upperBound(bound: any, open?: boolean): IDBKeyRange; + lower: any; + upper: any; + lowerOpen: boolean; + upperOpen: boolean; +} + +declare interface IDBCursor { + advance(count: number): void; + continue(key?: any): void; + delete(): IDBRequest; + update(newValue: any): IDBRequest; + source: IDBObjectStore|IDBIndex; + direction: IDBDirection; + key: any; + primaryKey: any; +} + +declare interface IDBCursorWithValue extends IDBCursor { + value: any; +} diff --git a/flow/master/flowlib/intl.js b/flow/master/flowlib/intl.js new file mode 100644 index 00000000000..f73b5025d25 --- /dev/null +++ b/flow/master/flowlib/intl.js @@ -0,0 +1,231 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +declare var Intl: { + Collator: Class, + DateTimeFormat: Class, + Locale: Class, + NumberFormat: Class, + PluralRules: ?Class, + getCanonicalLocales?: (locales?: Intl$Locales) => Intl$Locale[], + ... +} + +type Intl$Locale = string +type Intl$Locales = Intl$Locale | Intl$Locale[] + +declare class Intl$Collator { + constructor ( + locales?: Intl$Locales, + options?: Intl$CollatorOptions + ): Intl$Collator; + + static ( + locales?: Intl$Locales, + options?: Intl$CollatorOptions + ): Intl$Collator; + + compare (string, string): number; + + resolvedOptions (): { + locale: Intl$Locale, + usage: 'sort' | 'search', + sensitivity: 'base' | 'accent' | 'case' | 'variant', + ignorePunctuation: boolean, + collation: string, + numeric: boolean, + caseFirst?: 'upper' | 'lower' | 'false', + ... + }; + + static supportedLocalesOf (locales?: Intl$Locales): Intl$Locale[]; +} + +declare type Intl$CollatorOptions = { + localeMatcher?: 'lookup' | 'best fit', + usage?: 'sort' | 'search', + sensitivity?: 'base' | 'accent' | 'case' | 'variant', + ignorePunctuation?: boolean, + numeric?: boolean, + caseFirst?: 'upper' | 'lower' | 'false', + ... +} + +type FormatToPartsType = | 'day' | 'dayPeriod' | 'era' | 'hour' | 'literal' + | 'minute' | 'month' | 'second' | 'timeZoneName' | 'weekday' | 'year'; + +declare class Intl$DateTimeFormat { + constructor ( + locales?: Intl$Locales, + options?: Intl$DateTimeFormatOptions + ): Intl$DateTimeFormat; + + static ( + locales?: Intl$Locales, + options?: Intl$DateTimeFormatOptions + ): Intl$DateTimeFormat; + + format (value?: Date | number): string; + + formatToParts (value?: Date | number): Array<{ + type: FormatToPartsType, + value: string, + ... + }>; + + resolvedOptions (): { + locale: Intl$Locale, + calendar: string, + numberingSystem: string, + timeZone?: string, + hour12: boolean, + weekday?: 'narrow' | 'short' | 'long', + era?: 'narrow' | 'short' | 'long', + year?: 'numeric' | '2-digit', + month?: 'numeric' | '2-digit' | 'narrow' | 'short' | 'long', + day?: 'numeric' | '2-digit', + hour?: 'numeric' | '2-digit', + minute?: 'numeric' | '2-digit', + second?: 'numeric' | '2-digit', + timeZoneName?: 'short' | 'long', + ... + }; + + static supportedLocalesOf (locales?: Intl$Locales): Intl$Locale[]; +} + +declare type Intl$DateTimeFormatOptions = { + localeMatcher?: 'lookup' | 'best fit', + timeZone?: string, + hour12?: boolean, + formatMatcher?: 'basic' | 'best fit', + weekday?: 'narrow' | 'short' | 'long', + era?: 'narrow' | 'short' | 'long', + year?: 'numeric' | '2-digit', + month?: 'numeric' | '2-digit' | 'narrow' | 'short' | 'long', + day?: 'numeric' | '2-digit', + hour?: 'numeric' | '2-digit', + minute?: 'numeric' | '2-digit', + second?: 'numeric' | '2-digit', + timeZoneName?: 'short' | 'long', + ... +} + +declare class Intl$LocaleClass { + baseName: string, + calendar?: string, + caseFirst?: 'upper' | 'lower' | 'false', + collation?: string, + hourCycle?: 'h11' | 'h12' | 'h23' | 'h24', + language: string, + numberingSystem?: string, + numeric?: boolean, + region?: string, + script?: string, + + constructor( + tag: string, + options?: Intl$LocaleOptions, + ): Intl$LocaleClass; + + maximize(): Intl$LocaleClass; + + minimize(): Intl$LocaleClass; +} + +declare type Intl$LocaleOptions = { + calendar?: string, + caseFirst?: 'upper' | 'lower' | 'false', + collation?: string, + hourCycle?: 'h11' | 'h12' | 'h23' | 'h24', + numeric?: boolean, + numberingSystem?: string, + ... +}; + +declare class Intl$NumberFormat { + constructor ( + locales?: Intl$Locales, + options?: Intl$NumberFormatOptions + ): Intl$NumberFormat; + + static ( + locales?: Intl$Locales, + options?: Intl$NumberFormatOptions + ): Intl$NumberFormat; + + format (number): string; + + resolvedOptions (): { + locale: Intl$Locale, + numberingSystem: string, + style: 'decimal' | 'currency' | 'percent', + currency?: string, + currencyDisplay?: 'symbol' | 'code' | 'name', + useGrouping: boolean, + minimumIntegerDigits?: number, + minimumFractionDigits?: number, + maximumFractionDigits?: number, + minimumSignificantDigits?: number, + maximumSignificantDigits?: number, + ... + }; + + static supportedLocalesOf (locales?: Intl$Locales): Intl$Locale[]; +} + +declare type Intl$NumberFormatOptions = { + localeMatcher?: 'lookup' | 'best fit', + style?: 'decimal' | 'currency' | 'percent', + currency?: string, + currencyDisplay?: 'symbol' | 'code' | 'name', + useGrouping?: boolean, + minimumIntegerDigits?: number, + minimumFractionDigits?: number, + maximumFractionDigits?: number, + minimumSignificantDigits?: number, + maximumSignificantDigits?: number, + ... +} + +declare class Intl$PluralRules { + constructor ( + locales?: Intl$Locales, + options?: Intl$PluralRulesOptions + ): Intl$PluralRules; + + select (number): Intl$PluralRule; + + resolvedOptions (): { + locale: Intl$Locale, + type: 'cardinal' | 'ordinal', + minimumIntegerDigits?: number, + minimumFractionDigits?: number, + maximumFractionDigits?: number, + minimumSignificantDigits?: number, + maximumSignificantDigits?: number, + pluralCategories: Intl$PluralRule[], + ... + }; + + static supportedLocalesOf (locales?: Intl$Locales): Intl$Locale[]; +} + +type Intl$PluralRule = 'zero' | 'one' | 'two' | 'few' | 'many' | 'other' + +declare type Intl$PluralRulesOptions = { + localeMatcher?: 'lookup' | 'best fit', + type?: 'cardinal' | 'ordinal', + minimumIntegerDigits?: number, + minimumFractionDigits?: number, + maximumFractionDigits?: number, + minimumSignificantDigits?: number, + maximumSignificantDigits?: number, + ... +} diff --git a/flow/master/flowlib/node.js b/flow/master/flowlib/node.js new file mode 100644 index 00000000000..95ad7f4c8b5 --- /dev/null +++ b/flow/master/flowlib/node.js @@ -0,0 +1,3374 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * Portions copyright Node.js contributors. All rights reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @lint-ignore-every LICENSELINT + * @flow + */ + +interface ErrnoError extends Error { + address?: string; + code?: string; + dest?: string; + errno?: string | number; + info?: Object; + path?: string; + port?: number; + syscall?: string; +} + +type buffer$NonBufferEncoding = + 'hex' | 'HEX' | + 'utf8' | 'UTF8' | 'utf-8' | 'UTF-8' | + 'ascii' | 'ASCII' | + 'binary' | 'BINARY' | + 'base64' | 'BASE64' | + 'ucs2' | 'UCS2' | 'ucs-2' | 'UCS-2' | + 'utf16le' | 'UTF16LE' | 'utf-16le' | 'UTF-16LE' | 'latin1'; +type buffer$Encoding = buffer$NonBufferEncoding | 'buffer' +type buffer$ToJSONRet = { + type: string, + data: Array, + ... +} + +declare class Buffer extends Uint8Array { + constructor( + value: Array | number | string | Buffer | ArrayBuffer, + encoding?: buffer$Encoding + ): void; + [i: number]: number; + length: number; + + compare(otherBuffer: Buffer): number; + copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + entries(): Iterator<[number, number]>; + equals(otherBuffer: Buffer): boolean; + fill(value: string | Buffer | number, offset?: number, end?: number, encoding?: string): this; + fill(value: string, encoding?: string): this; + includes( + value: string | Buffer | number, + offsetOrEncoding?: number | buffer$Encoding, + encoding?: buffer$Encoding + ): boolean; + indexOf( + value: string | Buffer | number, + offsetOrEncoding?: number | buffer$Encoding, + encoding?: buffer$Encoding + ): number; + inspect(): string; + keys(): Iterator, + lastIndexOf( + value: string | Buffer | number, + offsetOrEncoding?: number | buffer$Encoding, + encoding?: buffer$Encoding + ): number; + readDoubleBE(offset?: number, noAssert?: boolean): number; + readDoubleLE(offset?: number, noAssert?: boolean): number; + readFloatBE(offset?: number, noAssert?: boolean): number; + readFloatLE(offset?: number, noAssert?: boolean): number; + readInt16BE(offset?: number, noAssert?: boolean): number; + readInt16LE(offset?: number, noAssert?: boolean): number; + readInt32BE(offset?: number, noAssert?: boolean): number; + readInt32LE(offset?: number, noAssert?: boolean): number; + readInt8(offset?: number, noAssert?: boolean): number; + readIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + readUInt16BE(offset?: number, noAssert?: boolean): number; + readUInt16LE(offset?: number, noAssert?: boolean): number; + readUInt32BE(offset?: number, noAssert?: boolean): number; + readUInt32LE(offset?: number, noAssert?: boolean): number; + readUInt8(offset?: number, noAssert?: boolean): number; + readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number; + readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number; + slice(start?: number, end?: number): this; + swap16(): Buffer; + swap32(): Buffer; + swap64(): Buffer; + toJSON(): buffer$ToJSONRet; + toString(encoding?: buffer$Encoding, start?: number, end?: number): string; + values(): Iterator; + write(string: string, offset?: number, length?: number, encoding?: buffer$Encoding): number; + writeDoubleBE(value: number, offset?: number, noAssert?: boolean): number; + writeDoubleLE(value: number, offset?: number, noAssert?: boolean): number; + writeFloatBE(value: number, offset?: number, noAssert?: boolean): number; + writeFloatLE(value: number, offset?: number, noAssert?: boolean): number; + writeInt16BE(value: number, offset?: number, noAssert?: boolean): number; + writeInt16LE(value: number, offset?: number, noAssert?: boolean): number; + writeInt32BE(value: number, offset?: number, noAssert?: boolean): number; + writeInt32LE(value: number, offset?: number, noAssert?: boolean): number; + writeInt8(value: number, offset?: number, noAssert?: boolean): number; + writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUInt16BE(value: number, offset?: number, noAssert?: boolean): number; + writeUInt16LE(value: number, offset?: number, noAssert?: boolean): number; + writeUInt32BE(value: number, offset?: number, noAssert?: boolean): number; + writeUInt32LE(value: number, offset?: number, noAssert?: boolean): number; + writeUInt8(value: number, offset?: number, noAssert?: boolean): number; + writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number; + + static alloc(size: number, fill?: string | number, encoding?: buffer$Encoding): Buffer; + static allocUnsafe(size: number): Buffer; + static allocUnsafeSlow(size: number): Buffer; + static byteLength(string: string | Buffer | $TypedArray | DataView | ArrayBuffer, encoding?: buffer$Encoding): number; + static compare(buf1: Buffer, buf2: Buffer): number; + static concat(list: Array, totalLength?: number): Buffer; + + static from(value: Buffer): Buffer; + static from(value: string, encoding?: buffer$Encoding): Buffer; + static from(value: ArrayBuffer | SharedArrayBuffer, byteOffset?: number, length?: number): Buffer; + static from(value: Iterable): this; + static isBuffer(obj: any): boolean; + static isEncoding(encoding: string): boolean; +} + +declare type Node$Buffer = typeof Buffer; + +declare module "buffer" { + declare var kMaxLength: number; + declare var INSPECT_MAX_BYTES: number; + declare function transcode(source: Node$Buffer, fromEnc: buffer$Encoding, toEnc: buffer$Encoding): Node$Buffer; + declare var Buffer: Node$Buffer; +} + +type child_process$execOpts = { + cwd?: string, + env?: Object, + encoding?: string, + shell?: string, + timeout?: number, + maxBuffer?: number, + killSignal?: string | number, + uid?: number, + gid?: number, + windowsHide?: boolean, + ... +}; + +declare class child_process$Error extends Error { + code: number | string | null, + errno?: string, + syscall?: string, + path?: string, + spawnargs?: Array, + killed?: boolean, + signal?: string | null, + cmd: string, +} + +type child_process$execCallback = (error: ?child_process$Error, stdout: string | Buffer, stderr: string | Buffer) => void; + +type child_process$execSyncOpts = { + cwd?: string, + input?: string | Buffer | $TypedArray | DataView, + stdio?: string | Array, + env?: Object, + shell?: string, + uid?: number, + gid?: number, + timeout?: number, + killSignal?: string | number, + maxBuffer?: number, + encoding?: string, + windowsHide?: boolean, + ... +}; + +type child_process$execFileOpts = { + cwd?: string, + env?: Object, + encoding?: string, + timeout?: number, + maxBuffer?: number, + killSignal?: string | number, + uid?: number, + gid?: number, + windowsHide?: boolean, + windowsVerbatimArguments?: boolean, + shell?: boolean | string, + ... +}; + +type child_process$execFileCallback = (error: ?child_process$Error, stdout: string | Buffer, stderr: string | Buffer) => void; + +type child_process$execFileSyncOpts = { + cwd?: string, + input?: string | Buffer | $TypedArray | DataView, + stdio?: string | Array, + env?: Object, + uid?: number, + gid?: number, + timeout?: number, + killSignal?: string | number, + maxBuffer?: number, + encoding?: string, + windowsHide?: boolean, + shell?: boolean | string, + ... +}; + +type child_process$forkOpts = { + cwd?: string, + env?: Object, + execPath?: string, + execArgv?: Array, + silent?: boolean, + stdio?: Array | string, + windowsVerbatimArguments?: boolean, + uid?: number, + gid?: number, + ... +}; + +type child_process$Handle = any; // TODO + +type child_process$spawnOpts = { + cwd?: string, + env?: Object, + argv0?: string, + stdio?: string | Array, + detached?: boolean, + uid?: number, + gid?: number, + shell?: boolean | string, + windowsVerbatimArguments?: boolean, + windowsHide?: boolean, + ... +}; + +type child_process$spawnRet = { + pid: number, + output: Array, + stdout: Buffer | string, + stderr: Buffer | string, + status: number, + signal: string, + error: Error, + ... +}; + +type child_process$spawnSyncOpts = { + cwd?: string, + input?: string | Buffer, + stdio?: string | Array, + env?: Object, + uid?: number, + gid?: number, + timeout?: number, + killSignal?: string, + maxBuffer?: number, + encoding?: string, + shell?: boolean | string, + ... +}; + +type child_process$spawnSyncRet = child_process$spawnRet; + +declare class child_process$ChildProcess extends events$EventEmitter { + channel: Object; + connected: boolean; + killed: boolean; + pid: number; + exitCode: number | null; + stderr: stream$Readable; + stdin: stream$Writable; + stdio: Array; + stdout: stream$Readable; + + disconnect(): void; + kill(signal?: string): void; + send( + message: Object, + sendHandleOrCallback?: child_process$Handle, + optionsOrCallback?: Object | Function, + callback?: Function + ): boolean; + unref(): void; + ref(): void; +} + +declare module "child_process" { + declare var ChildProcess: typeof child_process$ChildProcess; + + declare function exec( + command: string, + optionsOrCallback?: child_process$execOpts | child_process$execCallback, + callback?: child_process$execCallback + ): child_process$ChildProcess; + + declare function execSync( + command: string, + options: { encoding: buffer$NonBufferEncoding, ... } & child_process$execSyncOpts + ): string; + + declare function execSync( + command: string, + options?: child_process$execSyncOpts + ): Buffer; + + declare function execFile( + file: string, + argsOrOptionsOrCallback?: + Array | child_process$execFileOpts | child_process$execFileCallback, + optionsOrCallback?: child_process$execFileOpts | child_process$execFileCallback, + callback?: child_process$execFileCallback + ): child_process$ChildProcess; + + declare function execFileSync( + command: string, + argsOrOptions?: Array | child_process$execFileSyncOpts, + options?: child_process$execFileSyncOpts + ): Buffer | string; + + declare function fork( + modulePath: string, + argsOrOptions?: Array | child_process$forkOpts, + options?: child_process$forkOpts + ): child_process$ChildProcess; + + declare function spawn( + command: string, + argsOrOptions?: Array | child_process$spawnOpts, + options?: child_process$spawnOpts + ): child_process$ChildProcess; + + declare function spawnSync( + command: string, + argsOrOptions?: Array | child_process$spawnSyncOpts, + options?: child_process$spawnSyncOpts + ): child_process$spawnSyncRet; +} + +declare module "cluster" { + declare type ClusterSettings = { + execArgv: Array, + exec: string, + args: Array, + cwd: string, + serialization: 'json' | 'advanced', + silent: boolean, + stdio: Array, + uid: number, + gid: number, + inspectPort: number | () => number, + windowsHide: boolean, + ... + } + + declare type ClusterSettingsOpt = { + execArgv?: Array, + exec?: string, + args?: Array, + cwd?: string, + serialization?: 'json' | 'advanced', + silent?: boolean, + stdio?: Array, + uid?: number, + gid?: number, + inspectPort?: number | () => number, + windowsHide?: boolean, + ... + } + + declare class Worker extends events$EventEmitter { + id: number; + process: child_process$ChildProcess; + suicide: boolean; + + disconnect(): void; + isConnected(): boolean; + isDead(): boolean; + kill(signal?: string): void; + send( + message: Object, + sendHandleOrCallback?: child_process$Handle | Function, + callback?: Function, + ): boolean; + } + + declare class Cluster extends events$EventEmitter { + isMaster: boolean; + isWorker: boolean; + settings: ClusterSettings; + worker: Worker; + workers: { [id: number]: Worker }; + + disconnect(callback?: () => void): void; + fork(env?: Object): Worker; + setupMaster(settings?: ClusterSettingsOpt): void; + } + + declare module.exports: Cluster; +} + +type crypto$createCredentialsDetails = any; // TODO + +declare class crypto$Cipher extends stream$Duplex { + final(output_encoding: 'latin1' | 'binary' | 'base64' | 'hex'): string; + final(output_encoding: void): Buffer; + getAuthTag(): Buffer; + setAAD(buffer: Buffer): crypto$Cipher; + setAuthTag(buffer: Buffer): void; + setAutoPadding(auto_padding?: boolean): crypto$Cipher; + update( + data: string, + input_encoding: 'utf8' | 'ascii' | 'latin1' | 'binary', + output_encoding: 'latin1' | 'binary' | 'base64' | 'hex' + ): string; + update( + data: string, + input_encoding: 'utf8' | 'ascii' | 'latin1' | 'binary', + output_encoding: void + ): Buffer; + update( + data: Buffer, + input_encoding: void | 'utf8' | 'ascii' | 'latin1' | 'binary', + output_encoding: 'latin1' | 'binary' | 'base64' | 'hex' + ): string; + update( + data: Buffer, + input_encoding: void, + output_encoding: void + ): Buffer; +} + +type crypto$Credentials = {...} + +type crypto$DiffieHellman = { + computeSecret( + other_public_key: string, + input_encoding?: string, + output_encoding?: string + ): any, + generateKeys(encoding?: string): any, + getGenerator(encoding?: string): any, + getPrime(encoding?: string): any, + getPrivateKey(encoding?: string): any, + getPublicKey(encoding?: string): any, + setPrivateKey(private_key: any, encoding?: string): void, + setPublicKey(public_key: any, encoding?: string): void, + ... +} + +type crypto$ECDH$Encoding = 'latin1' | 'hex' | 'base64'; +type crypto$ECDH$Format = 'compressed' | 'uncompressed'; + +declare class crypto$ECDH { + computeSecret( + other_public_key: Buffer | $TypedArray | DataView + ): Buffer, + computeSecret( + other_public_key: string, + input_encoding: crypto$ECDH$Encoding + ): Buffer, + computeSecret( + other_public_key: Buffer | $TypedArray | DataView, + output_encoding: crypto$ECDH$Encoding + ): string, + computeSecret( + other_public_key: string, + input_encoding: crypto$ECDH$Encoding, + output_encoding: crypto$ECDH$Encoding + ): string, + generateKeys(format?: crypto$ECDH$Format): Buffer, + generateKeys(encoding: crypto$ECDH$Encoding, format?: crypto$ECDH$Format): string, + getPrivateKey(): Buffer, + getPrivateKey(encoding: crypto$ECDH$Encoding): string, + getPublicKey(format?: crypto$ECDH$Format): Buffer, + getPublicKey(encoding: crypto$ECDH$Encoding, format?: crypto$ECDH$Format): string, + setPrivateKey(private_key: Buffer | $TypedArray | DataView): void, + setPrivateKey(private_key: string, encoding: crypto$ECDH$Encoding): void +} + +declare class crypto$Decipher extends stream$Duplex { + final(output_encoding: 'latin1' | 'binary' | 'ascii' | 'utf8'): string; + final(output_encoding: void): Buffer; + getAuthTag(): Buffer; + setAAD(buffer: Buffer): void; + setAuthTag(buffer: Buffer): void; + setAutoPadding(auto_padding?: boolean): crypto$Cipher; + update( + data: string, + input_encoding: 'latin1' | 'binary' | 'base64' | 'hex', + output_encoding: 'latin1' | 'binary' | 'ascii' | 'utf8', + ): string; + update( + data: string, + input_encoding: 'latin1' | 'binary' | 'base64' | 'hex', + output_encoding: void + ): Buffer; + update( + data: Buffer, + input_encoding: void, + output_encoding: 'latin1' | 'binary' | 'ascii' | 'utf8', + ): string; + update( + data: Buffer, + input_encoding: void, + output_encoding: void + ): Buffer; +} + +declare class crypto$Hash extends stream$Duplex { + digest(encoding: 'hex' | 'latin1' | 'binary' | 'base64'): string; + digest(encoding: 'buffer'): Buffer; + digest(encoding: void): Buffer; + update(data: string | Buffer, input_encoding?: 'utf8' | 'ascii' | 'latin1' | + 'binary'): crypto$Hash; +} + +declare class crypto$Hmac extends stream$Duplex { + digest(encoding: 'hex' | 'latin1' | 'binary' | 'base64'): string; + digest(encoding: 'buffer'): Buffer; + digest(encoding: void): Buffer; + update(data: string | Buffer, input_encoding?: 'utf8' | 'ascii' | 'latin1' | + 'binary'): crypto$Hmac; +} + +type crypto$Sign$private_key = string | { + key: string, + passphrase: string, + ... +} +declare class crypto$Sign extends stream$Writable { + static(algorithm: string, options?: writableStreamOptions): crypto$Sign, + constructor(algorithm: string, options?: writableStreamOptions): void; + sign( + private_key: crypto$Sign$private_key, + output_format: 'latin1' | 'binary' | 'hex' | 'base64' + ): string; + sign( + private_key: crypto$Sign$private_key, + output_format: void + ): Buffer; + update(data: string | Buffer, input_encoding?: 'utf8' | 'ascii' | 'latin1' | + 'binary'): crypto$Sign; +} + +declare class crypto$Verify extends stream$Writable { + static(algorithm: string, options?: writableStreamOptions): crypto$Verify, + constructor(algorithm: string, options?: writableStreamOptions): void; + update(data: string | Buffer, input_encoding?: 'utf8' | 'ascii' | 'latin1' | + 'binary' ): crypto$Verify; + verify( + object: string, + signature: string | Buffer | $TypedArray | DataView, + signature_format: 'latin1' | 'binary' | 'hex' | 'base64' + ): boolean; + verify(object: string, signature: Buffer, signature_format: void): boolean; +} + + +type crypto$key = string | { + key: string, + passphrase?: string, + // TODO: enum type in crypto.constants + padding?: string, + ... +}; + +declare module "crypto" { + declare var DEFAULT_ENCODING: string; + + declare class Sign extends crypto$Sign {} + declare class Verify extends crypto$Verify {} + + declare function createCipher(algorithm: string, password: string | Buffer): crypto$Cipher; + declare function createCipheriv( + algorithm: string, + key: string | Buffer, + iv: string | Buffer + ): crypto$Cipher; + declare function createCredentials( + details?: crypto$createCredentialsDetails + ): crypto$Credentials + declare function createDecipher(algorithm: string, password: string | Buffer): crypto$Decipher; + declare function createDecipheriv( + algorithm: string, + key: string | Buffer, + iv: string | Buffer + ): crypto$Decipher; + declare function createDiffieHellman(prime_length: number): crypto$DiffieHellman; + declare function createDiffieHellman(prime: number, encoding?: string): crypto$DiffieHellman; + declare function createECDH(curveName: string): crypto$ECDH; + declare function createHash(algorithm: string): crypto$Hash; + declare function createHmac(algorithm: string, key: string | Buffer): crypto$Hmac; + declare function createSign(algorithm: string): crypto$Sign; + declare function createVerify(algorithm: string): crypto$Verify; + declare function getCiphers(): Array; + declare function getCurves(): Array; + declare function getDiffieHellman(group_name: string): crypto$DiffieHellman; + declare function getHashes(): Array; + declare function pbkdf2( + password: string | Buffer, + salt: string | Buffer, + iterations: number, + keylen: number, + digest: string, + callback: (err: ?Error, derivedKey: Buffer) => void + ): void; + declare function pbkdf2( + password: string | Buffer, + salt: string | Buffer, + iterations: number, + keylen: number, + callback: (err: ?Error, derivedKey: Buffer) => void + ): void; + declare function pbkdf2Sync( + password: string | Buffer, + salt: string | Buffer, + iterations: number, + keylen: number, + digest?: string + ): Buffer; + declare function scrypt( + password: string | Buffer, + salt: string | Buffer, + keylen: number, + options: {|N?: number, r?: number, p?: number, maxmem?: number|} + | {|cost?: number, blockSize?: number, parallelization?: number, maxmem?: number|}, + callback: (err: ?Error, derivedKey: Buffer) => void + ): void; + declare function scrypt( + password: string | Buffer, + salt: string | Buffer, + keylen: number, + callback: (err: ?Error, derivedKey: Buffer) => void + ): void; + declare function scryptSync( + password: string | Buffer, + salt: string | Buffer, + keylen: number, + options?: {|N?: number, r?: number, p?: number, maxmem?: number|} + | {|cost?: number, blockSize?: number, parallelization?: number, maxmem?: number|}, + ): Buffer; + declare function privateDecrypt( + private_key: crypto$key, + buffer: Buffer + ): Buffer; + declare function privateEncrypt( + private_key: crypto$key, + buffer: Buffer + ): Buffer; + declare function publicDecrypt( + key: crypto$key, + buffer: Buffer + ): Buffer; + declare function publicEncrypt( + key: crypto$key, + buffer: Buffer + ): Buffer; + // `UNUSED` argument strictly enforces arity to enable overloading this + // function with 1-arg and 2-arg variants. + declare function pseudoRandomBytes(size: number, UNUSED: void): Buffer; + declare function pseudoRandomBytes( + size: number, + callback: (err: ?Error, buffer: Buffer) => void + ): void; + // `UNUSED` argument strictly enforces arity to enable overloading this + // function with 1-arg and 2-arg variants. + declare function randomBytes(size: number, UNUSED: void): Buffer; + declare function randomBytes( + size: number, + callback: (err: ?Error, buffer: Buffer) => void + ): void; + declare function randomFillSync(buffer: Buffer | $TypedArray | DataView): void + declare function randomFillSync(buffer: Buffer | $TypedArray | DataView, offset: number): void + declare function randomFillSync( + buffer: Buffer | $TypedArray | DataView, + offset: number, + size: number + ): void + declare function randomFill( + buffer: Buffer | $TypedArray | DataView, + callback: (err: ?Error, buffer: Buffer) => void + ): void + declare function randomFill( + buffer: Buffer | $TypedArray | DataView, + offset: number, + callback: (err: ?Error, buffer: Buffer) => void + ): void + declare function randomFill( + buffer: Buffer | $TypedArray | DataView, + offset: number, + size: number, + callback: (err: ?Error, buffer: Buffer) => void + ): void + declare function randomUUID( + options?: $ReadOnly<{|disableEntropyCache?: boolean|}>, + ): string; + declare function timingSafeEqual( + a: Buffer | $TypedArray | DataView, + b: Buffer | $TypedArray | DataView + ): boolean; +} + +type net$Socket$address = { + address: string, + family: string, + port: number, + ... +}; +type dgram$Socket$rinfo = { + address: string, + family: 'IPv4' | 'IPv6', + port: number, + size: number, + ... +}; + +declare class dgram$Socket extends events$EventEmitter { + addMembership(multicastAddress: string, multicastInterface?: string): void; + address(): net$Socket$address; + bind(port?: number, address?: string, callback?: () => void): void; + close(callback?: () => void): void; + dropMembership(multicastAddress: string, multicastInterface?: string): void; + ref(): void; + send( + msg: Buffer, + port: number, + address: string, + callback?: (err: ?Error, bytes: any) => mixed, + ): void; + send( + msg: Buffer, + offset: number, + length: number, + port: number, + address: string, + callback?: (err: ?Error, bytes: any) => mixed, + ): void; + setBroadcast(flag: boolean): void; + setMulticastLoopback(flag: boolean): void; + setMulticastTTL(ttl: number): void; + setTTL(ttl: number): void; + unref(): void; +}; + +declare module "dgram" { + declare function createSocket( + options: string | { type: string, ... }, + callback?: () => void + ): dgram$Socket; +} + +declare module "dns" { + declare var ADDRGETNETWORKPARAMS: string; + declare var BADFAMILY: string; + declare var BADFLAGS: string; + declare var BADHINTS: string; + declare var BADQUERY: string; + declare var BADNAME: string; + declare var BADRESP: string; + declare var BADSTR: string; + declare var CANCELLED: string; + declare var CONNREFUSED: string; + declare var DESTRUCTION: string; + declare var EOF: string; + declare var FILE: string; + declare var FORMER: string; + declare var LOADIPHLPAPI: string; + declare var NODATA: string; + declare var NOMEM: string; + declare var NONAME: string; + declare var NOTFOUND: string; + declare var NOTIMP: string; + declare var NOTINITIALIZED: string; + declare var REFUSED: string; + declare var SERVFAIL: string; + declare var TIMEOUT: string; + declare var ADDRCONFIG: number; + declare var V4MAPPED: number; + + declare type LookupOptions = { + family?: number, + hints?: number, + verbatim?: boolean, + all?: boolean, + ... + }; + + declare function lookup( + domain: string, + options: number | LookupOptions, + callback: (err: ?Error, address: string, family: number) => void + ): void; + declare function lookup( + domain: string, + callback: (err: ?Error, address: string, family: number) => void + ): void; + + declare function resolve( + domain: string, + rrtype?: string, + callback?: (err: ?Error, addresses: Array) => void + ): void; + + declare function resolve4( + domain: string, + callback: (err: ?Error, addresses: Array) => void + ): void; + + declare function resolve6( + domain: string, + callback: (err: ?Error, addresses: Array) => void + ): void; + + declare function resolveCname( + domain: string, + callback: (err: ?Error, addresses: Array) => void + ): void; + + declare function resolveMx( + domain: string, + callback: (err: ?Error, addresses: Array) => void + ): void; + + declare function resolveNs( + domain: string, + callback: (err: ?Error, addresses: Array) => void + ): void; + + declare function resolveSrv( + domain: string, + callback: (err: ?Error, addresses: Array) => void + ): void; + + declare function resolveTxt( + domain: string, + callback: (err: ?Error, addresses: Array) => void + ): void; + + declare function reverse( + ip: string, + callback: (err: ?Error, domains: Array) => void + ): void; + declare function timingSafeEqual( + a: Buffer | $TypedArray | DataView, + b: Buffer | $TypedArray | DataView + ): boolean; +} + +declare class events$EventEmitter { + // deprecated + static listenerCount(emitter: events$EventEmitter, event: string): number; + static defaultMaxListeners: number; + + addListener(event: string, listener: Function): this; + emit(event: string, ...args:Array): boolean; + eventNames(): Array; + listeners(event: string): Array; + listenerCount(event: string): number; + on(event: string, listener: Function): this; + once(event: string, listener: Function): this; + prependListener(event: string, listener: Function): this; + prependOnceListener(event: string, listener: Function): this; + removeAllListeners(event?: string): this; + removeListener(event: string, listener: Function): this; + off(event: string, listener: Function): this; + setMaxListeners(n: number): this; + getMaxListeners(): number; + rawListeners(event: string): Array; +} + + +declare module "events" { + // TODO: See the comment above the events$EventEmitter declaration + declare class EventEmitter extends events$EventEmitter { + static EventEmitter: typeof EventEmitter; + } + + declare module.exports: typeof EventEmitter; +} + +declare class domain$Domain extends events$EventEmitter { + members: Array; + + add(emitter: events$EventEmitter): void; + bind(callback: Function): Function; + dispose(): void; + enter(): void; + exit(): void; + intercept(callback: Function): Function; + remove(emitter: events$EventEmitter): void; + run(fn: Function): void; +} + +declare module "domain" { + declare function create(): domain$Domain; +} + +declare module "fs" { + declare class Stats { + dev: number; + ino: number; + mode: number; + nlink: number; + uid: number; + gid: number; + rdev: number; + size: number; + blksize: number; + blocks: number; + atimeMs: number; + mtimeMs: number; + ctimeMs: number; + birthtimeMs: number; + atime: Date; + mtime: Date; + ctime: Date; + birthtime: Date; + + isFile(): boolean; + isDirectory(): boolean; + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isSymbolicLink(): boolean; + isFIFO(): boolean; + isSocket(): boolean; + } + + declare type PathLike = string | Buffer | URL; + + declare class FSWatcher extends events$EventEmitter { + close(): void; + } + + declare class ReadStream extends stream$Readable { + close(): void; + } + + declare class WriteStream extends stream$Writable { + close(): void; + bytesWritten: number; + } + + declare class Dirent { + name: string | Buffer; + + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isDirectory(): boolean; + isFIFO(): boolean; + isFile(): boolean; + isSocket(): boolean; + isSymbolicLink(): boolean; + } + + declare function rename(oldPath: string, newPath: string, callback?: (err: ?ErrnoError) => void): void; + declare function renameSync(oldPath: string, newPath: string): void; + declare function ftruncate(fd: number, len: number, callback?: (err: ?ErrnoError) => void): void; + declare function ftruncateSync(fd: number, len: number): void; + declare function truncate(path: string, len: number, callback?: (err: ?ErrnoError) => void): void; + declare function truncateSync(path: string, len: number): void; + declare function chown(path: string, uid: number, gid: number, callback?: (err: ?ErrnoError) => void): void; + declare function chownSync(path: string, uid: number, gid: number): void; + declare function fchown(fd: number, uid: number, gid: number, callback?: (err: ?ErrnoError) => void): void; + declare function fchownSync(fd: number, uid: number, gid: number): void; + declare function lchown(path: string, uid: number, gid: number, callback?: (err: ?ErrnoError) => void): void; + declare function lchownSync(path: string, uid: number, gid: number): void; + declare function chmod(path: string, mode: number | string, callback?: (err: ?ErrnoError) => void): void; + declare function chmodSync(path: string, mode: number | string): void; + declare function fchmod(fd: number, mode: number | string, callback?: (err: ?ErrnoError) => void): void; + declare function fchmodSync(fd: number, mode: number | string): void; + declare function lchmod(path: string, mode: number | string, callback?: (err: ?ErrnoError) => void): void; + declare function lchmodSync(path: string, mode: number | string): void; + declare function stat(path: string, callback?: (err: ?ErrnoError, stats: Stats) => any): void; + declare function statSync(path: string): Stats; + declare function fstat(fd: number, callback?: (err: ?ErrnoError, stats: Stats) => any): void; + declare function fstatSync(fd: number): Stats; + declare function lstat(path: string, callback?: (err: ?ErrnoError, stats: Stats) => any): void; + declare function lstatSync(path: string): Stats; + declare function link(srcpath: string, dstpath: string, callback?: (err: ?ErrnoError) => void): void; + declare function linkSync(srcpath: string, dstpath: string): void; + declare function symlink(srcpath: string, dtspath: string, type?: string, callback?: (err: ?ErrnoError) => void): void; + declare function symlinkSync(srcpath: string, dstpath: string, type?: string): void; + declare function readlink(path: string, callback: (err: ?ErrnoError, linkString: string) => void): void; + declare function readlinkSync(path: string): string; + declare function realpath(path: string, cache?: Object, callback?: (err: ?ErrnoError, resolvedPath: string) => void): void; + declare function realpathSync(path: string, cache?: Object): string; + declare function unlink(path: string, callback?: (err: ?ErrnoError) => void): void; + declare function unlinkSync(path: string): void; + + declare type RmDirOptions = {| + /** + * If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + * `EPERM` error is encountered, Node.js will retry the operation with a linear + * backoff wait of `retryDelay` ms longer on each try. This option represents the + * number of retries. This option is ignored if the `recursive` option is not + * `true`. + * @default 0 + */ + maxRetries?: number | void, + /** + * @deprecated since v14.14.0 In future versions of Node.js and will trigger a warning + * `fs.rmdir(path, { recursive: true })` will throw if `path` does not exist or is a file. + * Use `fs.rm(path, { recursive: true, force: true })` instead. + * + * If `true`, perform a recursive directory removal. In + * recursive mode soperations are retried on failure. + * @default false + */ + recursive?: boolean | void, + /** + * The amount of time in milliseconds to wait between retries. + * This option is ignored if the `recursive` option is not `true`. + * @default 100 + */ + retryDelay?: number | void, + |}; + + declare function rmdir(path: PathLike, callback?: (err: ?ErrnoError) => void): void; + declare function rmdir(path: PathLike, options: RmDirOptions, callback?: (err: ?ErrnoError) => void): void; + declare function rmdirSync(path: PathLike, options?: RmDirOptions): void; + + declare type RmOptions = {| + /** + * When `true`, exceptions will be ignored if `path` does not exist. + * @default false + */ + force?: boolean | void, + /** + * If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + * `EPERM` error is encountered, Node.js will retry the operation with a linear + * backoff wait of `retryDelay` ms longer on each try. This option represents the + * number of retries. This option is ignored if the `recursive` option is not + * `true`. + * @default 0 + */ + maxRetries?: number | void, + /** + * If `true`, perform a recursive directory removal. In + * recursive mode, operations are retried on failure. + * @default false + */ + recursive?: boolean | void, + /** + * The amount of time in milliseconds to wait between retries. + * This option is ignored if the `recursive` option is not `true`. + * @default 100 + */ + retryDelay?: number | void, + |}; + + /** + * Asynchronously removes files and directories (modeled on the standard POSIX `rm`utility). No arguments other than a possible exception are given to the + * completion callback. + * @since v14.14.0 + */ + declare function rm(path: PathLike, callback?: (err: ?ErrnoError) => void): void; + declare function rm(path: PathLike, options: RmOptions, callback?: (err: ?ErrnoError) => void): void; + + /** + * Synchronously removes files and directories (modeled on the standard POSIX `rm`utility). Returns `undefined`. + * @since v14.14.0 + */ + declare function rmSync(path: PathLike, options?: RmOptions): void; + + declare function mkdir(path: string, mode?: number | { + recursive?: boolean, + mode?: number, + ... + }, callback?: (err: ?ErrnoError) => void): void; + declare function mkdirSync(path: string, mode?: number | { + recursive?: boolean, + mode?: number, + ... + }): void; + declare function mkdtemp(prefix: string, callback: (err: ?ErrnoError, folderPath: string) => void): void; + declare function mkdtempSync(prefix: string): string; + declare function readdir( + path: string, + options: string | { encoding?: string, withFileTypes?: false, ... }, + callback: (err: ?ErrnoError, files: Array) => void + ): void; + declare function readdir( + path: string, + options: { encoding?: string, withFileTypes: true, ... }, + callback: (err: ?ErrnoError, files: Array) => void + ): void; + declare function readdir( + path: string, + callback: (err: ?ErrnoError, files: Array) => void + ): void; + declare function readdirSync( + path: string, + options?: string | { encoding?: string, withFileTypes?: false, ... } + ): Array; + declare function readdirSync( + path: string, + options?: string | { encoding?: string, withFileTypes: true, ... } + ): Array; + declare function close(fd: number, callback: (err: ?ErrnoError) => void): void; + declare function closeSync(fd: number): void; + declare function open( + path: string | Buffer | URL, + flags: string | number, + mode: number, + callback: (err: ?ErrnoError, fd: number) => void + ): void; + declare function open( + path: string | Buffer | URL, + flags: string | number, + callback: (err: ?ErrnoError, fd: number) => void + ): void; + declare function openSync(path: string | Buffer, flags: string | number, mode?: number): number; + declare function utimes(path: string, atime: number, mtime: number, callback?: (err: ?ErrnoError) => void): void; + declare function utimesSync(path: string, atime: number, mtime: number): void; + declare function futimes(fd: number, atime: number, mtime: number, callback?: (err: ?ErrnoError) => void): void; + declare function futimesSync(fd: number, atime: number, mtime: number): void; + declare function fsync(fd: number, callback?: (err: ?ErrnoError) => void): void; + declare function fsyncSync(fd: number): void; + declare function write( + fd: number, + buffer: Buffer, + offset: number, + length: number, + position: number, + callback: (err: ?ErrnoError, write: number, buf: Buffer) => void + ): void; + declare function write( + fd: number, + buffer: Buffer, + offset: number, + length: number, + callback: (err: ?ErrnoError, write: number, buf: Buffer) => void + ): void; + declare function write( + fd: number, + buffer: Buffer, + offset: number, + callback: (err: ?ErrnoError, write: number, buf: Buffer) => void + ): void; + declare function write( + fd: number, + buffer: Buffer, + callback: (err: ?ErrnoError, write: number, buf: Buffer) => void + ): void; + declare function write( + fd: number, + data: string, + position: number, + encoding: string, + callback: (err: ?ErrnoError, write: number, str: string) => void + ): void; + declare function write( + fd: number, + data: string, + position: number, + callback: (err: ?ErrnoError, write: number, str: string) => void + ): void; + declare function write( + fd: number, + data: string, + callback: (err: ?ErrnoError, write: number, str: string) => void + ): void; + declare function writeSync( + fd: number, + buffer: Buffer, + offset: number, + length: number, + position: number, + ): number; + declare function writeSync( + fd: number, + buffer: Buffer, + offset: number, + length: number, + ): number; + declare function writeSync( + fd: number, + buffer: Buffer, + offset?: number, + ): number; + declare function writeSync( + fd: number, + str: string, + position: number, + encoding: string, + ): number; + declare function writeSync( + fd: number, + str: string, + position?: number, + ): number; + declare function read( + fd: number, + buffer: Buffer, + offset: number, + length: number, + position: ?number, + callback: (err: ?ErrnoError, bytesRead: number, buffer: Buffer) => void + ): void; + declare function readSync( + fd: number, + buffer: Buffer, + offset: number, + length: number, + position: number + ): number; + declare function readFile( + path: string | Buffer | URL | number, + callback: (err: ?ErrnoError, data: Buffer) => void + ): void; + declare function readFile( + path: string | Buffer | URL | number, + encoding: string, + callback: (err: ?ErrnoError, data: string) => void + ): void; + declare function readFile( + path: string | Buffer | URL | number, + options: { + encoding: string, + flag?: string, + ... + }, + callback: (err: ?ErrnoError, data: string) => void + ): void; + declare function readFile( + path: string | Buffer | URL | number, + options: { encoding?: null | void, flag?: string, ... }, + callback: (err: ?ErrnoError, data: Buffer) => void + ): void; + declare function readFileSync( + path: string | Buffer | URL | number + ): Buffer; + declare function readFileSync( + path: string | Buffer | URL | number, + encoding: string + ): string; + declare function readFileSync(path: string | Buffer | URL | number, options: { + encoding: string, + flag?: string, + ... + }): string; + declare function readFileSync(path: string | Buffer | URL | number, options: { + encoding?: void, + flag?: string, + ... + }): Buffer; + declare function writeFile( + filename: string | Buffer | number, + data: Buffer | string, + options: string | { + encoding?: ?string, + mode?: number, + flag?: string, + ... + }, + callback: (err: ?ErrnoError) => void + ): void; + declare function writeFile( + filename: string | Buffer | number, + data: Buffer | string, + callback?: (err: ?ErrnoError) => void + ): void; + declare function writeFileSync( + filename: string, + data: Buffer | string, + options?: string | { + encoding?: ?string, + mode?: number, + flag?: string, + ... + } + ): void; + declare function appendFile( + filename: string | Buffer | number, + data: string | Buffer, + options: string | { + encoding?: ?string, + mode?: number, + flag?: string, + ... + }, + callback: (err: ?ErrnoError) => void + ): void; + declare function appendFile( + filename: string | Buffer | number, + data: string | Buffer, + callback: (err: ?ErrnoError) => void + ): void; + declare function appendFileSync( + filename: string | Buffer | number, + data: string | Buffer, + options?: string | { + encoding?: ?string, + mode?: number, + flag?: string, + ... + } + ): void; + declare function watchFile(filename: string, options?: Object, listener?: (curr: Stats, prev: Stats) => void): void; + declare function unwatchFile(filename: string, listener?: (curr: Stats, prev: Stats) => void): void; + declare function watch(filename: string, options?: Object, listener?: (event: string, filename: string) => void): FSWatcher; + declare function exists(path: string, callback?: (exists: boolean) => void): void; + declare function existsSync(path: string): boolean; + declare function access(path: string, mode?: number, callback?: (err: ?ErrnoError) => void): void; + declare function accessSync(path: string, mode?: number): void; + declare function createReadStream(path: string, options?: Object): ReadStream; + declare function createWriteStream(path: string, options?: Object): WriteStream; + declare function fdatasync(fd: number, callback: (err: ?ErrnoError) => void): void; + declare function fdatasyncSync(fd: number): void; + declare function copyFile(src: string, dest: string, callback: (err: ErrnoError) => void): void; + declare function copyFile(src: string, dest: string, flags?: number, callback: (err: ErrnoError) => void): void; + declare function copyFileSync(src: string, dest: string, flags?: number): void; + + declare var F_OK: number; + declare var R_OK: number; + declare var W_OK: number; + declare var X_OK: number; + // new var from node 6.x + // https://nodejs.org/dist/latest-v6.x/docs/api/fs.html#fs_fs_constants_1 + declare var constants: { + F_OK: number, // 0 + R_OK: number, // 4 + W_OK: number, // 2 + X_OK: number, // 1 + COPYFILE_EXCL: number, // 1 + COPYFILE_FICLONE: number, // 2 + COPYFILE_FICLONE_FORCE: number, // 4 + O_RDONLY: number, // 0 + O_WRONLY: number, // 1 + O_RDWR: number, // 2 + S_IFMT: number, // 61440 + S_IFREG: number, // 32768 + S_IFDIR: number, // 16384 + S_IFCHR: number, // 8192 + S_IFBLK: number, // 24576 + S_IFIFO: number, // 4096 + S_IFLNK: number, // 40960 + S_IFSOCK: number, // 49152 + O_CREAT: number, // 64 + O_EXCL: number, // 128 + O_NOCTTY: number, // 256 + O_TRUNC: number, // 512 + O_APPEND: number, // 1024 + O_DIRECTORY: number, // 65536 + O_NOATIME: number, // 262144 + O_NOFOLLOW: number, // 131072 + O_SYNC: number, // 1052672 + O_DSYNC: number, // 4096 + O_SYMLINK: number, // 2097152 + O_DIRECT: number, // 16384 + O_NONBLOCK: number, // 2048 + S_IRWXU: number, // 448 + S_IRUSR: number, // 256 + S_IWUSR: number, // 128 + S_IXUSR: number, // 64 + S_IRWXG: number, // 56 + S_IRGRP: number, // 32 + S_IWGRP: number, // 16 + S_IXGRP: number, // 8 + S_IRWXO: number, // 7 + S_IROTH: number, // 4 + S_IWOTH: number, // 2 + S_IXOTH: number, // 1 + ... + }; + + declare type BufferEncoding = + | 'buffer' + | { encoding: 'buffer', ... }; + declare type EncodingOptions = { encoding?: string, ... }; + declare type EncodingFlag = EncodingOptions & { flag?: string, ... }; + declare type WriteOptions = EncodingFlag & { mode?: number, ... }; + declare type RemoveOptions = { force?: boolean, maxRetries?: number, recursive?: boolean, retryDelay?: number, ... }; + declare class FileHandle { + appendFile(data: string | Buffer, options: WriteOptions | string): Promise; + chmod(mode: number): Promise; + chown(uid: number, guid: number): Promise; + close(): Promise; + datasync(): Promise; + fd: number; + read( + buffer: T, + offset: number, + length: number, + position: number + ): Promise<{ + bytesRead: number, + buffer: T, + ... + }>; + readFile(options: EncodingFlag): Promise; + readFile(options: string): Promise; + stat(): Promise; + sync(): Promise; + truncate(len?: number): Promise; + utimes(atime: number | string | Date, mtime: number | string | Date): Promise; + write(buffer: Buffer | Uint8Array, offset: number, length: number, position: number): Promise; + writeFile(data: string | Buffer | Uint8Array, options: WriteOptions | string): Promise; + } + + declare type FSPromisePath = string | Buffer | URL; + declare type FSPromise = { + access(path: FSPromisePath, mode?: number): Promise, + appendFile(path: FSPromisePath | FileHandle, data: string | Buffer, options?: WriteOptions | string): Promise, + chmod(path: FSPromisePath, mode: number): Promise, + chown(path: FSPromisePath, uid: number, gid: number): Promise, + copyFile(src: FSPromisePath, dest: FSPromisePath, flags?: number): Promise, + fchmod(filehandle: FileHandle, mode: number): Promise, + fchown(filehandle: FileHandle, uid: number, guid: number): Promise, + fdatasync(filehandle: FileHandle): Promise, + fstat(filehandle: FileHandle): Promise, + fsync(filehandle: FileHandle): Promise, + ftruncate(filehandle: FileHandle, len?: number): Promise, + futimes(filehandle: FileHandle, atime: number | string | Date, mtime: number | string | Date): Promise, + lchmod(path: FSPromisePath, mode: number): Promise, + lchown(path: FSPromisePath, uid: number, guid: number): Promise, + link(existingPath: FSPromisePath, newPath: FSPromisePath): Promise, + lstat(path: FSPromisePath): Promise, + mkdir(path: FSPromisePath, mode?: number | { + recursive?: boolean, + mode?: number, + ... + }): Promise, + mkdtemp(prefix: string, options?: EncodingOptions): Promise, + open(path: FSPromisePath, flags?: string | number, mode?: number): Promise, + read( + filehandle: FileHandle, + buffer: T, + offset: number, + length: number, + position?: number + ): Promise<{ + bytesRead: number, + buffer: T, + ... + }>, + readdir: + & ((path: FSPromisePath, options: string | { encoding?: string, withFileTypes?: false, ... }) => Promise>) + & ((path: FSPromisePath, options: { encoding?: string, withFileTypes: true, ... }) => Promise>) + & ((path: FSPromisePath) => Promise>), + readFile: + & ((path: FSPromisePath | FileHandle, options: string) => Promise) + & ((path: FSPromisePath | FileHandle, options?: EncodingFlag) => Promise), + readlink: + & ((path: FSPromisePath, options: BufferEncoding) => Promise) + & ((path: FSPromisePath, options?: string | EncodingOptions) => Promise), + realpath: + & ((path: FSPromisePath, options: BufferEncoding) => Promise) + & ((path: FSPromisePath, options?: string | EncodingOptions) => Promise), + rename(oldPath: FSPromisePath, newPath: FSPromisePath): Promise, + rm(path: FSPromisePath, options?: RemoveOptions): Promise, + rmdir(path: FSPromisePath): Promise, + stat(path: FSPromisePath): Promise, + symlink(target: FSPromisePath, path: FSPromisePath, type?: 'dir' | 'file' | 'junction'): Promise, + truncate(path: FSPromisePath, len?: number): Promise, + unlink(path: FSPromisePath): Promise, + utimes(path: FSPromisePath, atime: number | string | Date, mtime: number | string | Date): Promise, + write( + filehandle: FileHandle, + buffer: T, + offset: number, + length: number, + position?: number + ): Promise<{ + bytesRead: number, + buffer: T, + ... + }>, + writeFile( + FSPromisePath | FileHandle, + data: string | Buffer | Uint8Array, + options?: string | WriteOptions + ): Promise, + ... + } + + declare var promises: FSPromise; +} + +type http$agentOptions = { + keepAlive?: boolean, + keepAliveMsecs?: number, + maxSockets?: number, + maxFreeSockets?: number, + ... +} + +declare class http$Agent<+SocketT = net$Socket> { + constructor(options: http$agentOptions): void; + destroy(): void; + freeSockets: { [name: string]: $ReadOnlyArray, ... }; + getName(options: { + host: string, + port: number, + localAddress: string, + ... + }): string; + maxFreeSockets: number; + maxSockets: number; + requests: { [name: string]: $ReadOnlyArray>, ... }; + sockets: { [name: string]: $ReadOnlyArray, ... }; +} + +declare class http$IncomingMessage extends stream$Readable { + headers: Object; + rawHeaders: Array; + httpVersion: string; + method: string; + trailers: Object; + setTimeout(msecs: number, callback: Function): void; + socket: SocketT; + statusCode: number; + statusMessage: string; + url: string; + aborted: boolean; + complete: boolean; + rawTrailers: Array; +} + +declare class http$ClientRequest<+SocketT = net$Socket> extends stream$Writable { + abort(): void; + aborted: boolean; + +connection: SocketT | null; + flushHeaders(): void; + getHeader(name: string): string; + removeHeader(name: string): void; + setHeader(name: string, value: string | Array): void; + setNoDelay(noDelay?: boolean): void; + setSocketKeepAlive(enable?: boolean, initialDelay?: number): void; + setTimeout(msecs: number, callback?: Function): void; + +socket: SocketT | null; +} + +declare class http$ServerResponse extends stream$Writable { + addTrailers(headers: { [key: string] : string, ... }): void; + connection: net$Socket; + finished: boolean; + flushHeaders(): void; + getHeader(name: string): string; + getHeaderNames(): Array; + getHeaders(): { [key: string] : string | Array, ...}; + hasHeader(name: string): boolean; + headersSent: boolean; + removeHeader(name: string): void; + sendDate: boolean; + setHeader(name: string, value: string | Array): void; + setTimeout(msecs: number, callback?: Function): http$ServerResponse; + socket: net$Socket; + statusCode: number; + statusMessage: string; + writeContinue(): void; + writeHead(status: number, statusMessage?: string, headers?: { [key: string] : string, ... }): void; + writeHead(status: number, headers?: { [key: string] : string, ... }): void; + writeProcessing(): void; +} + +declare class http$Server extends net$Server { + listen(port?: number, hostname?: string, backlog?: number, callback?: Function): this; + // The following signatures are added to allow omitting intermediate arguments + listen(port?: number, backlog?: number, callback?: Function): this; + listen(port?: number, hostname?: string, callback?: Function): this; + listen(port?: number, callback?: Function): this; + listen(path: string, callback?: Function): this; + listen(handle: { + port?: number, + host?: string, + path?: string, + backlog?: number, + exclusive?: boolean, + readableAll?: boolean, + writableAll?: boolean, + ipv6Only?: boolean, + ... + }, callback?: Function): this; + listening: boolean; + close(callback?: (error: ?Error) => mixed): this; + closeAllConnections(): void; + closeIdleConnections(): void; + maxHeadersCount: number; + keepAliveTimeout: number; + headersTimeout: number; + setTimeout(msecs: number, callback: Function): this; + timeout: number; +} + +declare class https$Server extends tls$Server { + listen(port?: number, hostname?: string, backlog?: number, callback?: Function): this; + // The following signatures are added to allow omitting intermediate arguments + listen(port?: number, backlog?: number, callback?: Function): this; + listen(port?: number, hostname?: string, callback?: Function): this; + listen(port?: number, callback?: Function): this; + listen(path: string, callback?: Function): this; + listen(handle: { + port?: number, + host?: string, + path?: string, + backlog?: number, + exclusive?: boolean, + readableAll?: boolean, + writableAll?: boolean, + ipv6Only?: boolean, + ... + }, callback?: Function): this; + close(callback?: (error: ?Error) => mixed): this; + keepAliveTimeout: number; + headersTimeout: number; + setTimeout(msecs: number, callback: Function): this; + timeout: number; +} + +type requestOptions = {| + auth?: string, + defaultPort?: number, + family?: number, + headers?: { [key: string] : mixed, ... }, + host?: string, + hostname?: string, + localAddress?: string, + method?: string, + path?: string, + port?: number, + protocol?: string, + setHost?: boolean, + socketPath?: string, + timeout?: number, +|} + +type http$requestOptions = { + ...requestOptions, + agent?: boolean | http$Agent, + createConnection?: (options: net$connectOptions, callback?: Function) => net$Socket, + ... +}; + +declare module "http" { + declare class Server extends http$Server {} + declare class Agent extends http$Agent { + createConnection(options: net$connectOptions, callback?: Function): net$Socket; + } + declare class ClientRequest extends http$ClientRequest {} + declare class IncomingMessage extends http$IncomingMessage {} + declare class ServerResponse extends http$ServerResponse {} + + declare function createServer( + requestListener?: (request: IncomingMessage, response: ServerResponse) => void + ): Server; + declare function request( + options: http$requestOptions, + callback?: (response: IncomingMessage) => void + ): ClientRequest; + declare function request( + url: string, + options?: http$requestOptions, + callback?: (response: IncomingMessage) => void + ): ClientRequest; + declare function get( + options: http$requestOptions, + callback?: (response: IncomingMessage) => void + ): ClientRequest; + declare function get( + url: string, + options?: http$requestOptions, + callback?: (response: IncomingMessage) => void + ): ClientRequest; + + declare var METHODS: Array; + declare var STATUS_CODES: { [key: number]: string, ... }; + declare var globalAgent: Agent; +} + +type https$requestOptions = { + ...requestOptions, + agent?: boolean | http$Agent, + createConnection?: (options: tls$connectOptions, callback?: Function) => tls$TLSSocket, + ... +}; + +declare module "https" { + declare class Server extends https$Server {} + declare class Agent extends http$Agent { + createConnection(port: ?number, host: ?string, options: tls$connectOptions): tls$TLSSocket; + createConnection(port: ?number, options: tls$connectOptions): tls$TLSSocket; + createConnection(options: tls$connectOptions): tls$TLSSocket; + } + + declare class ClientRequest extends http$ClientRequest {} + declare class IncomingMessage extends http$IncomingMessage {} + declare class ServerResponse extends http$ServerResponse {} + + declare function createServer( + options: Object, + requestListener?: (request: IncomingMessage, response: ServerResponse) => void + ): Server; + declare function request( + options: https$requestOptions, + callback?: (response: IncomingMessage) => void + ): ClientRequest; + declare function request( + url: string, + options?: https$requestOptions, + callback?: (response: IncomingMessage) => void + ): ClientRequest; + declare function get( + options: https$requestOptions, + callback?: (response: IncomingMessage) => void + ): ClientRequest; + declare function get( + url: string, + options?: https$requestOptions, + callback?: (response: IncomingMessage) => void + ): ClientRequest; + + declare var globalAgent: Agent; +} + +type module$Module = { + builtinModules: Array, + createRequire(filename: string | URL): typeof require, + syncBuiltinESMExports(): void, + Module: module$Module, + ... +}; + +declare module "module" { + declare module.exports: module$Module; +} + +declare class net$Socket extends stream$Duplex { + constructor(options?: Object): void; + address(): net$Socket$address; + bufferSize: number; + bytesRead: number; + bytesWritten: number; + connect(path: string, connectListener?: () => mixed): net$Socket; + connect(port: number, host?: string, connectListener?: () => mixed): net$Socket; + connect(port: number, connectListener?: () => mixed): net$Socket; + connect(options: Object, connectListener?: () => mixed): net$Socket; + destroyed: boolean; + end( + chunkOrEncodingOrCallback?: Buffer | Uint8Array | string | (data: any) => void, + encodingOrCallback?: string | (data: any) => void, + callback?: (data: any) => void + ): this; + localAddress: string; + localPort: number; + pause(): this; + ref(): this; + remoteAddress: string | void; + remoteFamily: string; + remotePort: number; + resume(): this; + setEncoding(encoding?: string): this; + setKeepAlive(enable?: boolean, initialDelay?: number): this; + setNoDelay(noDelay?: boolean): this; + setTimeout(timeout: number, callback?: Function): this; + unref(): this; + write( + chunk: Buffer | Uint8Array | string, + encodingOrCallback?: string | (data: any) => void, + callback?: (data: any) => void + ): boolean; +} + +declare class net$Server extends events$EventEmitter { + listen(port?: number, hostname?: string, backlog?: number, callback?: Function): net$Server; + listen(path: string, callback?: Function): net$Server; + listen(handle: Object, callback?: Function): net$Server; + listening: boolean; + close(callback?: Function): net$Server; + address(): net$Socket$address; + connections: number; + maxConnections: number; + getConnections(callback: Function): void; + ref(): net$Server; + unref(): net$Server; +} + + +type net$connectOptions = { + port?: number, + host?: string, + localAddress?: string, + localPort?: number, + family?: number, + lookup?: ( + domain: string, + options?: ?number | ?Object, + callback?: (err: ?Error, address: string, family: number) => void + ) => mixed, + path?: string, + ... +}; + +declare module "net" { + + declare class Server extends net$Server {} + declare class Socket extends net$Socket {} + + declare function isIP(input: string): number; + declare function isIPv4(input: string): boolean; + declare function isIPv6(input: string): boolean; + + + declare type connectionListener = (socket: Socket) => any; + declare function createServer( + options?: { + allowHalfOpen?: boolean, + pauseOnConnect?: boolean, + ... + } | connectionListener, + connectionListener?: connectionListener, + ): Server; + + declare type connectListener = () => any; + declare function connect( + pathOrPortOrOptions: string | number | net$connectOptions, + hostOrConnectListener?: string | connectListener, + connectListener?: connectListener, + ): Socket; + + declare function createConnection( + pathOrPortOrOptions: string | number | net$connectOptions, + hostOrConnectListener?: string | connectListener, + connectListener?: connectListener, + ): Socket; +} + +type os$CPU = { + model: string, + speed: number, + times: { + idle: number, + irq: number, + nice: number, + sys: number, + user: number, + ... + }, + ... +}; + +type os$NetIFAddr = { + address: string, + family: string, + internal: boolean, + mac: string, + netmask: string, + ... +}; + +type os$UserInfo$buffer = { + uid: number, + gid: number, + username: Buffer, + homedir: Buffer, + shell: ?Buffer, + ... +}; + +type os$UserInfo$string = { + uid: number, + gid: number, + username: string, + homedir: string, + shell: ?string, + ... +}; + +declare module "os" { + declare function arch(): "x64"|"arm"|"ia32"; + declare function cpus(): Array; + declare function endianness(): "BE"|"LE"; + declare function freemem(): number; + declare function homedir(): string; + declare function hostname(): string; + declare function loadavg(): [number, number, number]; + declare function networkInterfaces(): { [ifName: string]: Array, ... }; + declare function platform(): string; + declare function release(): string; + declare function tmpdir(): string; + declare function totalmem(): number; + declare function type(): string; + declare function uptime(): number; + declare function userInfo(options: { encoding: 'buffer', ... }): os$UserInfo$buffer; + declare function userInfo(options?: { encoding: 'utf8', ... }): os$UserInfo$string; + declare var EOL: string; +} + +declare module "path" { + declare function normalize(path: string): string; + declare function join(...parts: Array): string; + declare function resolve(...parts: Array): string; + declare function isAbsolute(path: string): boolean; + declare function relative(from: string, to: string): string; + declare function dirname(path: string): string; + declare function basename(path: string, ext?: string): string; + declare function extname(path: string): string; + declare var sep: string; + declare var delimiter: string; + declare function parse(pathString: string): { + root: string, + dir: string, + base: string, + ext: string, + name: string, + ... + }; + declare function format(pathObject: { + root?: string, + dir?: string, + base?: string, + ext?: string, + name?: string, + ... + }): string; + declare var posix: any; + declare var win32: any; +} + +declare module "punycode" { + declare function decode(string: string): string; + declare function encode(string: string): string; + declare function toASCII(domain: string): string; + declare function toUnicode(domain: string): string; + declare var ucs2: { + decode: (str: string) => Array, + encode: (codePoints: Array) => string, + ... + }; + declare var version : string; +} + +declare module "querystring" { + declare function stringify( + obj: Object, + separator?: string, + equal?: string, + options?: { encodeURIComponent?: (str: string) => string, ... } + ): string; + declare function parse( + str: string, + separator: ?string, + equal: ?string, + options?: { + decodeURIComponent?: (str: string) => string, + maxKeys?: number, + ... + } + ): any; + declare function escape(str: string): string; + declare function unescape(str: string, decodeSpaces?: boolean): string; +} + +type readline$InterfaceCompleter = + | (line: string) => [Array, string] + | (line: string, (err: ?Error, data: [Array, string]) => void) => void; + +declare class readline$Interface extends events$EventEmitter { + close(): void; + pause(): void; + prompt(preserveCursor?: boolean): void; + question(query: string, callback: (answer: string) => void): void; + resume(): void; + setPrompt(prompt: string): void; + write(val: string | void | null, key?: { + name: string, + ctrl?: boolean, + shift?: boolean, + meta?: boolean, + ... + }): void; + @@asyncIterator(): AsyncIterator; +} + +declare module "readline" { + declare var Interface : typeof readline$Interface; + declare function clearLine(stream: stream$Stream, dir: -1 | 1 | 0): void; + declare function clearScreenDown(stream: stream$Stream): void; + declare function createInterface(opts: { + input: stream$Readable, + output?: ?stream$Stream, + completer?: readline$InterfaceCompleter, + terminal?: boolean, + historySize?: number, + prompt?: string, + crlfDelay?: number, + removeHistoryDuplicates?: boolean, + escapeCodeTimeout?: number, + ... + }): readline$Interface; + declare function cursorTo(stream: stream$Stream, x?: number, y?: number): void; + declare function moveCursor(stream: stream$Stream, dx: number, dy: number): void; + declare function emitKeypressEvents(stream: stream$Stream, readlineInterface?: readline$Interface): void; +} + +declare class stream$Stream extends events$EventEmitter {} + +type readableStreamOptions = { + highWaterMark?: number, + encoding?: string, + objectMode?: boolean, + read?: (size: number) => void, + destroy?: (error: ?Error, callback: (error?: Error) => void) => void, + autoDestroy?: boolean, + ... +}; +declare class stream$Readable extends stream$Stream { + static from(iterable: Iterable | AsyncIterable, options?: readableStreamOptions): stream$Readable; + + constructor(options?: readableStreamOptions): void; + destroy(error?: Error): this; + isPaused(): boolean; + pause(): this; + pipe(dest: T, options?: { end? : boolean, ... }): T; + read(size?: number): ?(string | Buffer); + readable: boolean; + readableHighWaterMark: number; + readableLength: number; + resume(): this; + setEncoding(encoding: string): this; + unpipe(dest?: stream$Writable): this; + unshift(chunk: Buffer | Uint8Array | string): void; + wrap(oldReadable: stream$Stream): this; + _read(size: number): void; + _destroy(error: ?Error, callback: (error?: Error) => void): void; + push(chunk: ?(Buffer | Uint8Array | string), encoding? : string): boolean; + @@asyncIterator(): AsyncIterator; +} + +type writableStreamOptions = { + highWaterMark?: number, + decodeStrings?: boolean, + defaultEncoding?: string, + objectMode?: boolean, + emitClose?: boolean, + write?: (chunk: Buffer | string, encoding: string, callback: (error?: Error) => void) => void, + writev?: (chunks: Array<{ + chunk: Buffer | string, + encoding: string, + ... + }>, callback: (error?: Error) => void) => void, + destroy?: (error: ?Error, callback: (error?: Error) => void) => void, + final?: (callback: (error?: Error) => void) => void, + autoDestroy?: boolean, + ... +}; +declare class stream$Writable extends stream$Stream { + constructor(options?: writableStreamOptions): void; + cork(): void; + destroy(error?: Error): this; + end(callback?: () => void): this; + end(chunk?: string | Buffer | Uint8Array, callback?: () => void): this; + end(chunk?: string | Buffer | Uint8Array, encoding?: string, callback?: () => void): this; + setDefaultEncoding(encoding: string): this; + uncork(): void; + writable: boolean; + writableHighWaterMark: number; + writableLength: number; + write(chunk: string | Buffer | Uint8Array, callback?: (error?: Error) => void): boolean; + write(chunk: string | Buffer | Uint8Array, encoding?: string, callback?: (error?: Error) => void): boolean; + _write(chunk: Buffer | string, encoding: string, callback: (error?: Error) => void): void; + _writev(chunks: Array<{ + chunk: Buffer | string, + encoding: string, + ... + }>, callback: (error?: Error) => void): void; + _destroy(error: ?Error, callback: (error?: Error) => void): void; + _final(callback: (error?: Error) => void): void; +} + +//According to the NodeJS docs: +//"Since JavaScript doesn't have multiple prototypal inheritance, this class +//prototypally inherits from Readable, and then parasitically from Writable." +//Source: void) => void, + transform?: ( + chunk: Buffer | string, + encoding: string, + callback: (error: ?Error, data: ?(Buffer | string)) => void, + ) => void, + ... +}; +declare class stream$Transform extends stream$Duplex { + constructor(options?: transformStreamOptions): void; + _flush(callback: (error: ?Error, data: ?(Buffer | string)) => void): void; + _transform( + chunk: Buffer | string, + encoding: string, + callback: (error: ?Error, data: ?(Buffer | string)) => void + ): void; +} +declare class stream$PassThrough extends stream$Transform {} + +declare module "stream" { + declare var Stream : typeof stream$Stream + declare var Readable : typeof stream$Readable + declare var Writable : typeof stream$Writable + declare var Duplex : typeof stream$Duplex + declare var Transform : typeof stream$Transform + declare var PassThrough : typeof stream$PassThrough + declare function finished( + stream: stream$Stream, + callback: (error?: Error) => void, + ): () => void; + declare function finished( + stream: stream$Stream, + options: ?{ + error?: boolean, + readable?: boolean, + writable?: boolean, + ... + }, + callback: (error?: Error) => void, + ): () => void; + declare function pipeline( + s1: stream$Readable, + last: T, + cb: (error?: Error) => void, + ): T; + declare function pipeline( + s1: stream$Readable, + s2: stream$Duplex, + last: T, + cb: (error?: Error) => void, + ): T; + declare function pipeline( + s1: stream$Readable, + s2: stream$Duplex, + s3: stream$Duplex, + last: T, + cb: (error?: Error) => void, + ): T; + declare function pipeline( + s1: stream$Readable, + s2: stream$Duplex, + s3: stream$Duplex, + s4: stream$Duplex, + last: T, + cb: (error?: Error) => void, + ): T; + declare function pipeline( + s1: stream$Readable, + s2: stream$Duplex, + s3: stream$Duplex, + s4: stream$Duplex, + s5: stream$Duplex, + last: T, + cb: (error?: Error) => void, + ): T; + declare function pipeline( + s1: stream$Readable, + s2: stream$Duplex, + s3: stream$Duplex, + s4: stream$Duplex, + s5: stream$Duplex, + s6: stream$Duplex, + last: T, + cb: (error?: Error) => void, + ): T; + declare function pipeline( + streams: Array, + cb: (error?: Error) => void, + ): stream$Stream; + + declare interface StreamPipelineOptions { + +signal?: AbortSignal, + +end?: boolean + } + + declare type StreamPromise = { + pipeline( + s1: stream$Readable, + last: stream$Writable, + options?: StreamPipelineOptions, + ): Promise, + pipeline( + s1: stream$Readable, + s2: stream$Duplex, + last: stream$Writable, + options?: StreamPipelineOptions, + ): Promise, + pipeline( + s1: stream$Readable, + s2: stream$Duplex, + s3: stream$Duplex, + last: stream$Writable, + options?: StreamPipelineOptions, + ): Promise, + pipeline( + s1: stream$Readable, + s2: stream$Duplex, + s3: stream$Duplex, + s4: stream$Duplex, + last: stream$Writable, + options?: StreamPipelineOptions, + ): Promise, + pipeline( + s1: stream$Readable, + s2: stream$Duplex, + s3: stream$Duplex, + s4: stream$Duplex, + s5: stream$Duplex, + last: stream$Writable, + options?: StreamPipelineOptions, + ): Promise, + pipeline( + s1: stream$Readable, + s2: stream$Duplex, + s3: stream$Duplex, + s4: stream$Duplex, + s5: stream$Duplex, + s6: stream$Duplex, + last: stream$Writable, + options?: StreamPipelineOptions, + ): Promise, + pipeline( + streams: $ReadOnlyArray, + options?: StreamPipelineOptions, + ): Promise; + ... + } + + declare var promises: StreamPromise; +} + +declare class tty$ReadStream extends net$Socket { + constructor(fd: number, options?: Object): void; + isRaw : boolean; + setRawMode(mode : boolean) : void; + isTTY : true +} +declare class tty$WriteStream extends net$Socket { + constructor(fd: number) : void; + /** + * Clears the current line of this `WriteStream` in a direction identified by `dir`. + * + * TODO: takes a callback and returns `boolean` in v12+ + */ + clearLine(dir: -1 | 0 | 1): void; + columns : number; + /** + * Moves this WriteStream's cursor to the specified position + * + * TODO: takes a callback and returns `boolean` in v12+ + */ + cursorTo( + x: number, + y?: number + ): void; + isTTY : true; + /** + * Moves this WriteStream's cursor relative to its current position + * + * TODO: takes a callback and returns `boolean` in v12+ + */ + moveCursor(dx: number, dy: number): void; + rows : number; +} + +declare module "tty" { + declare function isatty(fd : number) : boolean; + declare function setRawMode(mode : boolean) : void; + declare var ReadStream : typeof tty$ReadStream + declare var WriteStream : typeof tty$WriteStream +} + +declare class string_decoder$StringDecoder { + constructor(encoding?: 'utf8' | 'ucs2' | 'utf16le' | 'base64'): void; + end(): string; + write(buffer: Buffer): string; +} + +declare module "string_decoder" { + declare var StringDecoder : typeof string_decoder$StringDecoder; +} + +type tls$connectOptions = { + port?: number, + host?: string, + socket?: net$Socket, + rejectUnauthorized?: boolean, + path?: string, + lookup?: ( + domain: string, + options?: ?number | ?Object, + callback?: (err: ?Error, address: string, family: number) => void + ) => mixed, + requestOCSP?: boolean, + ... +}; + +type tls$Certificate$Subject = { + C?: string, + ST?: string, + L?: string, + O?: string, + OU?: string, + CN?: string, + ... +}; + +type tls$Certificate = { + raw: Buffer, + subject: tls$Certificate$Subject, + issuer: tls$Certificate$Subject, + valid_from: string, + valid_to: string, + serialNumber: string, + fingerprint: string, + fingerprint256: string, + ext_key_usage?: Array, + subjectaltname?: string, + infoAccess?: { [string]: Array, ... }, + issuerCertificate?: tls$Certificate, + ... +}; + +declare class tls$TLSSocket extends net$Socket { + constructor(socket: net$Socket, options?: Object): void; + authorized: boolean; + authorizationError: string | null; + encrypted: true; + getCipher(): { + name: string, + version: string, + ... + } | null; + getEphemeralKeyInfo(): { + type: 'DH', + size: number, + ... + } | { + type: 'EDHC', + name: string, + size: number, + ... + } | null; + getPeerCertificate(detailed?: boolean): tls$Certificate | null; + getSession(): ?Buffer; + getTLSTicket(): Buffer | void; + renegotiate(options: Object, callback: Function): boolean | void; + setMaxSendFragment(size: number): boolean; +} + +declare class tls$Server extends net$Server { + listen(port?: number, hostname?: string, backlog?: number, callback?: Function): tls$Server; + listen(path: string, callback?: Function): tls$Server; + listen(handle: Object, callback?: Function): tls$Server; + close(callback?: Function): tls$Server; + addContext(hostname: string, context: Object): void; + getTicketKeys(): Buffer; + setTicketKeys(keys: Buffer): void; +} + +declare module "tls" { + declare var CLIENT_RENEG_LIMIT: number; + declare var CLIENT_RENEG_WINDOW: number; + declare var SLAB_BUFFER_SIZE: number; + declare var DEFAULT_CIPHERS: string; + declare var DEFAULT_ECDH_CURVE: string; + declare function getCiphers(): Array; + declare function convertNPNProtocols(NPNProtocols: Array, out: Object): void; + declare function checkServerIdentity(servername: string, cert: string): Error | void; + declare function parseCertString(s: string): Object; + declare function createSecureContext(details: Object): Object; + declare var SecureContext: Object; + declare var TLSSocket: typeof tls$TLSSocket; + declare var Server: typeof tls$Server; + declare function createServer(options: Object, secureConnectionListener?: Function): tls$Server; + declare function connect(options: tls$connectOptions, callback?: Function): tls$TLSSocket; + declare function connect(port: number, host?: string, options?: tls$connectOptions, callback?: Function): tls$TLSSocket; + declare function createSecurePair(context?: Object, isServer?: boolean, requestCert?: boolean, rejectUnauthorized?: boolean, options?: Object): Object; +} + +type url$urlObject = { + +href?: string, + +protocol?: string | null, + +slashes?: boolean | null, + +auth?: string | null, + +hostname?: string | null, + +port?: string | number | null, + +host?: string | null, + +pathname?: string | null, + +search?: string | null, + +query?: Object | null, + +hash?: string | null, + ... +}; + +declare module "url" { + declare type Url = {| + protocol: string | null, + slashes: boolean | null, + auth: string | null, + host: string | null, + port: string | null, + hostname: string | null, + hash: string | null, + search: string | null, + query: string | null | { [string]: string, ... }, + pathname: string | null, + path: string | null, + href: string, + |} + + declare type UrlWithStringQuery = {| + ...Url, + query: string | null + |} + + declare type UrlWithParsedQuery = {| + ...Url, + query: { [string]: string, ... } + |} + + declare function parse(urlStr: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery; + declare function parse(urlStr: string, parseQueryString?: false | void, slashesDenoteHost?: boolean): UrlWithStringQuery; + declare function parse(urlStr: string, parseQueryString?: boolean, slashesDenoteHost?: boolean): Url; + declare function format(urlObj: url$urlObject): string; + declare function resolve(from: string, to: string): string; + declare function domainToASCII(domain: string): string; + declare function domainToUnicode(domain: string): string; + declare function pathToFileURL(path: string): url$urlObject; + declare function fileURLToPath(path: url$urlObject | string): string; + declare class URLSearchParams { + @@iterator(): Iterator<[string, string]>; + + size: number; + + constructor(init?: string | URLSearchParams | Array<[string, string]> | { [string]: string, ... } ): void; + append(name: string, value: string): void; + delete(name: string, value?: void): void; + entries(): Iterator<[string, string]>; + forEach(callback: (this : This, value: string, name: string, searchParams: URLSearchParams) => mixed, thisArg?: This): void; + get(name: string): string | null; + getAll(name: string): string[]; + has(name: string, value?: string): boolean; + keys(): Iterator; + set(name: string, value: string): void; + sort(): void; + values(): Iterator; + toString(): string; + } + declare class URL { + static canParse(url: string, base?: string): boolean; + static createObjectURL(blob: Blob): string; + static createObjectURL(mediaSource: MediaSource): string; + static revokeObjectURL(url: string): void; + constructor(input: string, base?: string | URL): void; + hash: string; + host: string; + hostname: string; + href: string; + +origin: string; + password: string; + pathname: string; + port: string; + protocol: string; + search: string; + +searchParams: URLSearchParams; + username: string; + toString(): string; + toJSON(): string; + } +} + +type util$InspectOptions = { + showHidden?: boolean, + depth?: ?number, + colors?: boolean, + customInspect?: boolean, + ... +}; + +declare type util$ParseArgsOption = +| {| + type: 'boolean', + multiple?: false, + short?: string, + default?: boolean, + |} +| {| + type: 'boolean', + multiple: true, + short?: string, + default?: Array, + |} +| {| + type: 'string', + multiple?: false, + short?: string, + default?: string, + |} +| {| + type: 'string', + multiple: true, + short?: string, + default?: Array, + |}; + +type util$ParseArgsOptionToValue = + TOption['type'] extends 'boolean' ? + TOption['multiple'] extends true ? + Array : + boolean : + TOption['type'] extends 'string' ? + TOption['multiple'] extends true ? + Array : + string : + empty; + +type util$ParseArgsOptionsToValues = { + [key in keyof TOptions]: util$ParseArgsOptionToValue<{|multiple: false, ...TOptions[key]|}>, +}; + +type util$ParseArgsToken = + | {| + kind: 'option', + index: number, + name: string, + rawName: string, + value?: string, + inlineValue?: boolean, + |} + | {| + kind: 'positional', + index: number, + value: string, + |} + | {| + kind: 'option-terminator', + index: number, + |}; + +declare module "util" { + declare function debuglog(section: string): (data: any, ...args: any) => void; + declare function format(format: string, ...placeholders: any): string; + declare function log(string: string): void; + declare function inspect(object: any, options?: util$InspectOptions): string; + declare function isArray(object: any): boolean; + declare function isRegExp(object: any): boolean; + declare function isDate(object: any): boolean; + declare function isError(object: any): boolean; + declare function inherits(constructor: Function, superConstructor: Function): void; + declare function deprecate(f: Function, string: string): Function; + declare function promisify(f: Function): Function; + declare function callbackify(f: Function): Function; + + declare function parseArgs< + TOptions: {[string]: util$ParseArgsOption} = {||}, + >(config: {| + args?: Array, + options?: TOptions, + strict?: boolean, + allowPositionals?: boolean, + tokens?: false, + |}): {| + values: util$ParseArgsOptionsToValues, + positionals: Array, + |}; + + declare function parseArgs< + TOptions: {[string]: util$ParseArgsOption} = {||}, + >(config: {| + args?: Array, + options?: TOptions, + strict?: boolean, + allowPositionals?: boolean, + tokens: true, + |}): {| + values: util$ParseArgsOptionsToValues, + positionals: Array, + tokens: Array, + |}; + + declare class TextDecoder { + constructor(encoding?: string, options: { + fatal?: boolean, + ignoreBOM?: boolean, + ... + }): void; + decode(input?: ArrayBuffer | DataView | $TypedArray, options?: { stream?: boolean, ... }): string; + encoding: string; + fatal: boolean; + ignoreBOM: boolean; + } + + declare class TextEncoder { + constructor(): void; + encode(input?: string): Uint8Array; + encoding: string; + } + + declare var types: { + isAnyArrayBuffer: (value: mixed) => boolean; + isArgumentsObject:(value: mixed) => boolean; + isArrayBuffer:(value: mixed) => boolean; + isAsyncFunction:(value: mixed) => boolean; + isBigInt64Array:(value: mixed) => boolean; + isBigUint64Array:(value: mixed) => boolean; + isBooleanObject:(value: mixed) => boolean; + isBoxedPrimitive:(value: mixed) => boolean; + isDataView:(value: mixed) => boolean; + isDate:(value: mixed) => boolean; + isExternal:(value: mixed) => boolean; + isFloat32Array:(value: mixed) => boolean; + isFloat64Array:(value: mixed) => boolean; + isGeneratorFunction:(value: mixed) => boolean; + isGeneratorObject:(value: mixed) => boolean; + isInt8Array:(value: mixed) => boolean; + isInt16Array:(value: mixed) => boolean; + isInt32Array:(value: mixed) => boolean; + isMap:(value: mixed) => boolean; + isMapIterator:(value: mixed) => boolean; + isModuleNamespaceObject:(value: mixed) => boolean; + isNativeError:(value: mixed) => boolean; + isNumberObject:(value: mixed) => boolean; + isPromise:(value: mixed) => boolean; + isProxy:(value: mixed) => boolean; + isRegExp:(value: mixed) => boolean; + isSet:(value: mixed) => boolean; + isSetIterator:(value: mixed) => boolean; + isSharedArrayBuffer:(value: mixed) => boolean; + isStringObject:(value: mixed) => boolean; + isSymbolObject:(value: mixed) => boolean; + isTypedArray:(value: mixed) => boolean; + isUint8Array:(value: mixed) => boolean; + isUint8ClampedArray:(value: mixed) => boolean; + isUint16Array:(value: mixed) => boolean; + isUint32Array:(value: mixed) => boolean; + isWeakMap:(value: mixed) => boolean; + isWeakSet:(value: mixed) => boolean; + isWebAssemblyCompiledModule:(value: mixed) => boolean; + ... + } +} + +type vm$ScriptOptions = { + cachedData?: Buffer, + columnOffset?: number, + displayErrors?: boolean, + filename?: string, + lineOffset?: number, + produceCachedData?: boolean, + timeout?: number, + ... +}; + +type vm$CreateContextOptions = { + name?: string; + origin?: string; + codeGeneration?: { + strings?: boolean; + wasm?: boolean; + ... + }; + ... +} + +type vm$CompileFunctionOptions = { + filename?: string; + lineOffset?: number; + columnOffset?: number; + cachedData?: Buffer; + produceCachedData?: boolean; + parsingContext?: { [key: string]: any, ... }; + contextExtensions?: Array<{ [key: string]: any, ... }>; + ... +} + +declare class vm$Script { + constructor(code: string, options?: vm$ScriptOptions | string): void; + cachedData: ?Buffer; + cachedDataRejected: ?boolean; + cachedDataProduced: ?boolean; + runInContext(contextifiedSandbox: vm$Context, options?: vm$ScriptOptions): any; + runInNewContext(sandbox?: { [key: string]: any, ... }, options?: vm$ScriptOptions): any; + runInThisContext(options?: vm$ScriptOptions): any; + createCachedData(): Buffer; +} + +declare class vm$Context {} + +declare module "vm" { + declare var Script: typeof vm$Script; + declare function createContext(sandbox?: interface { [key: string]: any }, options?: vm$CreateContextOptions): vm$Context; + declare function isContext(sandbox: { [key: string]: any, ... }): boolean; + declare function runInContext(code: string, contextifiedSandbox: vm$Context, options?: vm$ScriptOptions | string): any; + declare function runInDebugContext(code: string): any; + declare function runInNewContext(code: string, sandbox?: { [key: string]: any, ... }, options?: vm$ScriptOptions | string): any; + declare function runInThisContext(code: string, options?: vm$ScriptOptions | string): any; + declare function compileFunction(code: string, params: string[], options: vm$CompileFunctionOptions): Function; +} + +type zlib$options = { + flush?: number, + chunkSize?: number, + windowBits?: number, + level?: number, + memLevel?: number, + strategy?: number, + dictionary?: Buffer, + ... +}; + +type zlib$brotliOptions = { + flush?: number, + finishFlush?: number, + chunkSize?: number, + params?: { + [number]: boolean | number, + ... + }, + maxOutputLength?: number, + ... +} + +type zlib$syncFn = ( + buffer: Buffer | $TypedArray | DataView | ArrayBuffer | string, + options?: zlib$options +) => Buffer; + +type zlib$asyncFn = ( + buffer: Buffer | $TypedArray | DataView | ArrayBuffer | string, + options?: zlib$options, + callback?: (error: ?Error, result: Buffer) => void +) => void; + +type zlib$brotliSyncFn = ( + buffer: Buffer | $TypedArray | DataView | ArrayBuffer | string, + options?: zlib$brotliOptions +) => Buffer; + +type zlib$brotliAsyncFn = ( + buffer: Buffer | $TypedArray | DataView | ArrayBuffer | string, + options?: zlib$brotliOptions, + callback?: (error: ?Error, result: Buffer) => void +) => void; + +// Accessing the constants directly from the module is currently still +// possible but should be considered deprecated. +// ref: https://github.com/nodejs/node/blob/master/doc/api/zlib.md +declare module "zlib" { + declare var Z_NO_FLUSH: number; + declare var Z_PARTIAL_FLUSH: number; + declare var Z_SYNC_FLUSH: number; + declare var Z_FULL_FLUSH: number; + declare var Z_FINISH: number; + declare var Z_BLOCK: number; + declare var Z_TREES: number; + declare var Z_OK: number; + declare var Z_STREAM_END: number; + declare var Z_NEED_DICT: number; + declare var Z_ERRNO: number; + declare var Z_STREAM_ERROR: number; + declare var Z_DATA_ERROR: number; + declare var Z_MEM_ERROR: number; + declare var Z_BUF_ERROR: number; + declare var Z_VERSION_ERROR: number; + declare var Z_NO_COMPRESSION: number; + declare var Z_BEST_SPEED: number; + declare var Z_BEST_COMPRESSION: number; + declare var Z_DEFAULT_COMPRESSION: number; + declare var Z_FILTERED: number; + declare var Z_HUFFMAN_ONLY: number; + declare var Z_RLE: number; + declare var Z_FIXED: number; + declare var Z_DEFAULT_STRATEGY: number; + declare var Z_BINARY: number; + declare var Z_TEXT: number; + declare var Z_ASCII: number; + declare var Z_UNKNOWN: number; + declare var Z_DEFLATED: number; + declare var Z_NULL: number; + declare var Z_DEFAULT_CHUNK: number; + declare var Z_DEFAULT_LEVEL: number; + declare var Z_DEFAULT_MEMLEVEL: number; + declare var Z_DEFAULT_WINDOWBITS: number; + declare var Z_MAX_CHUNK: number; + declare var Z_MAX_LEVEL: number; + declare var Z_MAX_MEMLEVEL: number; + declare var Z_MAX_WINDOWBITS: number; + declare var Z_MIN_CHUNK: number; + declare var Z_MIN_LEVEL: number; + declare var Z_MIN_MEMLEVEL: number; + declare var Z_MIN_WINDOWBITS: number; + declare var constants: { + Z_NO_FLUSH: number, + Z_PARTIAL_FLUSH: number, + Z_SYNC_FLUSH: number, + Z_FULL_FLUSH: number, + Z_FINISH: number, + Z_BLOCK: number, + Z_TREES: number, + Z_OK: number, + Z_STREAM_END: number, + Z_NEED_DICT: number, + Z_ERRNO: number, + Z_STREAM_ERROR: number, + Z_DATA_ERROR: number, + Z_MEM_ERROR: number, + Z_BUF_ERROR: number, + Z_VERSION_ERROR: number, + Z_NO_COMPRESSION: number, + Z_BEST_SPEED: number, + Z_BEST_COMPRESSION: number, + Z_DEFAULT_COMPRESSION: number, + Z_FILTERED: number, + Z_HUFFMAN_ONLY: number, + Z_RLE: number, + Z_FIXED: number, + Z_DEFAULT_STRATEGY: number, + Z_BINARY: number, + Z_TEXT: number, + Z_ASCII: number, + Z_UNKNOWN: number, + Z_DEFLATED: number, + Z_NULL: number, + Z_DEFAULT_CHUNK: number, + Z_DEFAULT_LEVEL: number, + Z_DEFAULT_MEMLEVEL: number, + Z_DEFAULT_WINDOWBITS: number, + Z_MAX_CHUNK: number, + Z_MAX_LEVEL: number, + Z_MAX_MEMLEVEL: number, + Z_MAX_WINDOWBITS: number, + Z_MIN_CHUNK: number, + Z_MIN_LEVEL: number, + Z_MIN_MEMLEVEL: number, + Z_MIN_WINDOWBITS: number, + + BROTLI_DECODE: number, + BROTLI_ENCODE: number, + BROTLI_OPERATION_PROCESS: number, + BROTLI_OPERATION_FLUSH: number, + BROTLI_OPERATION_FINISH: number, + BROTLI_OPERATION_EMIT_METADATA: number, + BROTLI_PARAM_MODE: number, + BROTLI_MODE_GENERIC: number, + BROTLI_MODE_TEXT: number, + BROTLI_MODE_FONT: number, + BROTLI_DEFAULT_MODE: number, + BROTLI_PARAM_QUALITY: number, + BROTLI_MIN_QUALITY: number, + BROTLI_MAX_QUALITY: number, + BROTLI_DEFAULT_QUALITY: number, + BROTLI_PARAM_LGWIN: number, + BROTLI_MIN_WINDOW_BITS: number, + BROTLI_MAX_WINDOW_BITS: number, + BROTLI_LARGE_MAX_WINDOW_BITS: number, + BROTLI_DEFAULT_WINDOW: number, + BROTLI_PARAM_LGBLOCK: number, + BROTLI_MIN_INPUT_BLOCK_BITS: number, + BROTLI_MAX_INPUT_BLOCK_BITS: number, + BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: number, + BROTLI_PARAM_SIZE_HINT: number, + BROTLI_PARAM_LARGE_WINDOW: number, + BROTLI_PARAM_NPOSTFIX: number, + BROTLI_PARAM_NDIRECT: number, + BROTLI_DECODER_RESULT_ERROR: number, + BROTLI_DECODER_RESULT_SUCCESS: number, + BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: number, + BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: number, + BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: number, + BROTLI_DECODER_PARAM_LARGE_WINDOW: number, + BROTLI_DECODER_NO_ERROR: number, + BROTLI_DECODER_SUCCESS: number, + BROTLI_DECODER_NEEDS_MORE_INPUT: number, + BROTLI_DECODER_NEEDS_MORE_OUTPUT: number, + BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: number, + BROTLI_DECODER_ERROR_FORMAT_RESERVED: number, + BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: number, + BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: number, + BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: number, + BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: number, + BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: number, + BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: number, + BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: number, + BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: number, + BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: number, + BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: number, + BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: number, + BROTLI_DECODER_ERROR_FORMAT_PADDING_1: number, + BROTLI_DECODER_ERROR_FORMAT_PADDING_2: number, + BROTLI_DECODER_ERROR_FORMAT_DISTANCE: number, + BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: number, + BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: number, + BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: number, + BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: number, + BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: number, + BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: number, + BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: number, + BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: number, + BROTLI_DECODER_ERROR_UNREACHABL: number, + ... + }; + declare var codes: { + Z_OK: number, + Z_STREAM_END: number, + Z_NEED_DICT: number, + Z_ERRNO: number, + Z_STREAM_ERROR: number, + Z_DATA_ERROR: number, + Z_MEM_ERROR: number, + Z_BUF_ERROR: number, + Z_VERSION_ERROR: number, + ... + }; + declare class Zlib extends stream$Duplex { + // TODO + } + declare class BrotliCompress extends Zlib {} + declare class BrotliDecompress extends Zlib {} + declare class Deflate extends Zlib {} + declare class Inflate extends Zlib {} + declare class Gzip extends Zlib {} + declare class Gunzip extends Zlib {} + declare class DeflateRaw extends Zlib {} + declare class InflateRaw extends Zlib {} + declare class Unzip extends Zlib {} + declare function createBrotliCompress(options?: zlib$brotliOptions): BrotliCompress; + declare function createBrotliDecompress(options?: zlib$brotliOptions): BrotliDecompress; + declare function createDeflate(options?: zlib$options): Deflate; + declare function createInflate(options?: zlib$options): Inflate; + declare function createDeflateRaw(options?: zlib$options): DeflateRaw; + declare function createInflateRaw(options?: zlib$options): InflateRaw; + declare function createGzip(options?: zlib$options): Gzip; + declare function createGunzip(options?: zlib$options): Gunzip; + declare function createUnzip(options?: zlib$options): Unzip; + declare var brotliCompress: zlib$brotliAsyncFn; + declare var brotliCompressSync: zlib$brotliSyncFn; + declare var brotliDeompress: zlib$brotliAsyncFn; + declare var brotliDecompressSync: zlib$brotliSyncFn; + declare var deflate: zlib$asyncFn; + declare var deflateSync: zlib$syncFn; + declare var gzip: zlib$asyncFn; + declare var gzipSync: zlib$syncFn; + declare var deflateRaw: zlib$asyncFn; + declare var deflateRawSync: zlib$syncFn; + declare var unzip: zlib$asyncFn; + declare var unzipSync: zlib$syncFn; + declare var inflate: zlib$asyncFn; + declare var inflateSync: zlib$syncFn; + declare var gunzip: zlib$asyncFn; + declare var gunzipSync: zlib$syncFn; + declare var inflateRaw: zlib$asyncFn; + declare var inflateRawSync: zlib$syncFn; +} + +declare module "assert" { + declare class AssertionError extends Error {} + declare type AssertStrict = { + (value: any, message?: string): void; + ok(value: any, message?: string): void; + fail(message?: string | Error): void; + // deprecated since v10.15 + fail(actual: any, expected: any, message: string, operator: string): void; + equal(actual: any, expected: any, message?: string): void; + notEqual(actual: any, expected: any, message?: string): void; + deepEqual(actual: any, expected: any, message?: string): void; + notDeepEqual(actual: any, expected: any, message?: string): void; + throws( + block: Function, + error?: Function | RegExp | (err: any) => boolean, + message?: string + ): void; + doesNotThrow(block: Function, message?: string): void; + ifError(value: any): void; + AssertionError: typeof AssertionError; + strict: AssertStrict; + ... + } + declare module.exports: { + (value: any, message?: string): void, + ok(value: any, message?: string): void, + fail(message?: string | Error): void, + // deprecated since v10.15 + fail(actual: any, expected: any, message: string, operator: string): void, + equal(actual: any, expected: any, message?: string): void, + notEqual(actual: any, expected: any, message?: string): void, + deepEqual(actual: any, expected: any, message?: string): void, + notDeepEqual(actual: any, expected: any, message?: string): void, + strictEqual(actual: any, expected: any, message?: string): void, + notStrictEqual(actual: any, expected: any, message?: string): void, + deepStrictEqual(actual: any, expected: any, message?: string): void, + notDeepStrictEqual(actual: any, expected: any, message?: string): void, + throws( + block: Function, + error?: Function | RegExp | (err: any) => boolean, + message?: string + ): void, + doesNotThrow(block: Function, message?: string): void, + ifError(value: any): void, + AssertionError: typeof AssertionError, + strict: AssertStrict; + ... + } +} + +type HeapCodeStatistics = { + code_and_metadata_size: number, + bytecode_and_metadata_size: number, + external_script_source_size: number, + ... +}; + +type HeapStatistics = { + total_heap_size: number, + total_heap_size_executable: number, + total_physical_size: number, + total_available_size: number, + used_heap_size: number, + heap_size_limit: number, + malloced_memory: number, + peak_malloced_memory: number, + does_zap_garbage: 0 | 1, + number_of_native_contexts: number, + number_of_detached_contexts: number, + ... +}; + +type HeapSpaceStatistics = { + space_name: string, + space_size: number, + space_used_size: number, + space_available_size: number, + physical_space_size: number, + ... +}; + +// Adapted from DefinitelyTyped for Node v14: +// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/dea4d99dc302a0b0a25270e46e72c1fe9b741a17/types/node/v14/v8.d.ts +declare module 'v8' { + /** + * Returns an integer representing a "version tag" derived from the V8 version, command line flags and detected CPU features. + * This is useful for determining whether a vm.Script cachedData buffer is compatible with this instance of V8. + */ + declare function cachedDataVersionTag(): number; + + /** + * Generates a snapshot of the current V8 heap and returns a Readable + * Stream that may be used to read the JSON serialized representation. + * This conversation was marked as resolved by joyeecheung + * This JSON stream format is intended to be used with tools such as + * Chrome DevTools. The JSON schema is undocumented and specific to the + * V8 engine, and may change from one version of V8 to the next. + */ + declare function getHeapSnapshot(): stream$Readable; + + /** + * + * @param fileName The file path where the V8 heap snapshot is to be + * saved. If not specified, a file name with the pattern + * `'Heap-${yyyymmdd}-${hhmmss}-${pid}-${thread_id}.heapsnapshot'` will be + * generated, where `{pid}` will be the PID of the Node.js process, + * `{thread_id}` will be `0` when `writeHeapSnapshot()` is called from + * the main Node.js thread or the id of a worker thread. + */ + declare function writeHeapSnapshot(fileName?: string): string; + + declare function getHeapCodeStatistics(): HeapCodeStatistics; + + declare function getHeapStatistics(): HeapStatistics; + declare function getHeapSpaceStatistics(): Array; + declare function setFlagsFromString(flags: string): void; + + declare class Serializer { + constructor(): void; + + /** + * Writes out a header, which includes the serialization format version. + */ + writeHeader(): void; + + /** + * Serializes a JavaScript value and adds the serialized representation to the internal buffer. + * This throws an error if value cannot be serialized. + */ + writeValue(val: any): boolean; + + /** + * Returns the stored internal buffer. + * This serializer should not be used once the buffer is released. + * Calling this method results in undefined behavior if a previous write has failed. + */ + releaseBuffer(): Buffer; + + /** + * Marks an ArrayBuffer as having its contents transferred out of band.\ + * Pass the corresponding ArrayBuffer in the deserializing context to deserializer.transferArrayBuffer(). + */ + transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; + + /** + * Write a raw 32-bit unsigned integer. + */ + writeUint32(value: number): void; + + /** + * Write a raw 64-bit unsigned integer, split into high and low 32-bit parts. + */ + writeUint64(hi: number, lo: number): void; + + /** + * Write a JS number value. + */ + writeDouble(value: number): void; + + /** + * Write raw bytes into the serializer’s internal buffer. + * The deserializer will require a way to compute the length of the buffer. + */ + writeRawBytes(buffer: Buffer | $TypedArray | DataView): void; + } + + /** + * A subclass of `Serializer` that serializes `TypedArray` (in particular `Buffer`) and `DataView` objects as host objects, + * and only stores the part of their underlying `ArrayBuffers` that they are referring to. + */ + declare class DefaultSerializer extends Serializer {} + + declare class Deserializer { + constructor(data: Buffer | $TypedArray | DataView): void; + + /** + * Reads and validates a header (including the format version). + * May, for example, reject an invalid or unsupported wire format. + * In that case, an Error is thrown. + */ + readHeader(): boolean; + + /** + * Deserializes a JavaScript value from the buffer and returns it. + */ + readValue(): any; + + /** + * Marks an ArrayBuffer as having its contents transferred out of band. + * Pass the corresponding `ArrayBuffer` in the serializing context to serializer.transferArrayBuffer() + * (or return the id from serializer._getSharedArrayBufferId() in the case of SharedArrayBuffers). + */ + transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; + + /** + * Reads the underlying wire format version. + * Likely mostly to be useful to legacy code reading old wire format versions. + * May not be called before .readHeader(). + */ + getWireFormatVersion(): number; + + /** + * Read a raw 32-bit unsigned integer and return it. + */ + readUint32(): number; + + /** + * Read a raw 64-bit unsigned integer and return it as an array [hi, lo] with two 32-bit unsigned integer entries. + */ + readUint64(): [number, number]; + + /** + * Read a JS number value. + */ + readDouble(): number; + + /** + * Read raw bytes from the deserializer’s internal buffer. + * The length parameter must correspond to the length of the buffer that was passed to serializer.writeRawBytes(). + */ + readRawBytes(length: number): Buffer; + } + + /** + * A subclass of `Serializer` that serializes `TypedArray` (in particular `Buffer`) and `DataView` objects as host objects, + * and only stores the part of their underlying `ArrayBuffers` that they are referring to. + */ + declare class DefaultDeserializer extends Deserializer {} + + /** + * Uses a `DefaultSerializer` to serialize value into a buffer. + */ + declare function serialize(value: any): Buffer; + + /** + * Uses a `DefaultDeserializer` with default options to read a JS value from a buffer. + */ + declare function deserialize(data: Buffer | $TypedArray | DataView): any; +} + + +type repl$DefineCommandOptions = + | (...args: Array) => void + | { + action: (...args: Array) => void, + help?: string, + ... +}; + +declare class $SymbolReplModeMagic mixins Symbol {} +declare class $SymbolReplModeSloppy mixins Symbol {} +declare class $SymbolReplModeStrict mixins Symbol {} + +declare module 'repl' { + declare var REPL_MODE_MAGIC: $SymbolReplModeMagic; + declare var REPL_MODE_SLOPPY: $SymbolReplModeSloppy; + declare var REPL_MODE_STRICT: $SymbolReplModeStrict; + + declare class REPLServer extends readline$Interface { + context: vm$Context; + defineCommand(command: string, options: repl$DefineCommandOptions): void; + displayPrompt(preserveCursor?: boolean): void; + } + + declare function start(prompt: string): REPLServer; + declare function start(options: { + prompt?: string, + input?: stream$Readable, + output?: stream$Writable, + terminal?: boolean, + eval?: Function, + useColors?: boolean, + useGlobal?: boolean, + ignoreUndefined?: boolean, + writer?: (object: any, options?: util$InspectOptions) => string, + completer?: readline$InterfaceCompleter, + replMode?: $SymbolReplModeMagic | $SymbolReplModeSloppy | $SymbolReplModeStrict, + breakEvalOnSigint?: boolean, + ... + }): REPLServer; + + declare class Recoverable extends SyntaxError { + constructor(err: Error): void; + } +} + +declare module 'inspector' { + declare function open( + port?: number, + host?: string, + wait?: boolean + ): void; + + declare function close(): void; + declare function url() : string | void; + declare var console: Object; + declare function waitForDebugger(): void; + + declare class Session extends events$EventEmitter { + constructor(): void; + connect(): void; + connectToMainThread(): void; + disconnect(): void; + post( + method: string, + params?: Object, + callback?: Function + ): void; + } +} + +/* globals: https://nodejs.org/api/globals.html */ + +type process$CPUUsage = { + user: number, + system: number, + ... +} + +declare class Process extends events$EventEmitter { + abort() : void; + allowedNodeEnvironmentFlags: Set; + arch : string; + argv : Array; + chdir(directory : string) : void; + config : Object; + connected : boolean; + cpuUsage(previousValue?: process$CPUUsage) : process$CPUUsage; + cwd() : string; + disconnect? : () => void; + domain? : domain$Domain; + env : { [key: string] : string | void, ... }; + emitWarning(warning: string | Error): void; + emitWarning(warning: string, typeOrCtor: string | (...empty) => mixed): void; + emitWarning(warning: string, type: string, codeOrCtor: string | (...empty) => mixed): void; + emitWarning( + warning: string, + type: string, + code: string, + ctor?: (...empty) => mixed + ): void; + execArgv : Array; + execPath : string; + exit(code? : number) : empty; + exitCode? : number; + getegid? : () => number; + geteuid? : () => number; + getgid? : () => number; + getgroups? : () => Array; + getuid? : () => number; + hrtime: { + (time?: [ number, number ]) : [ number, number ], + bigint: () => bigint, + ... + }; + initgroups? : (user : number | string, extra_group : number | string) => void; + kill(pid : number, signal? : string | number) : void; + mainModule : Object; + memoryUsage() : { + arrayBuffers: number, + rss : number, + heapTotal : number, + heapUsed : number, + external : number, + ... + }; + nextTick: (cb: (...T) => mixed, ...T) => void; + pid : number; + platform : string; + release : { + name : string, + lts? : string, + sourceUrl : string, + headersUrl : string, + libUrl : string, + ... + }; + send? : (message : any, + sendHandleOrCallback? : net$Socket | net$Server | Function, + callback? : Function) => void; + setegid? : (id : number | string) => void; + seteuid? : (id : number | string) => void; + setgid? : (id : number | string) => void; + setgroups? : (groups : Array) => void; + setuid? : (id : number | string) => void; + stderr : stream$Writable | tty$WriteStream; + stdin : stream$Readable | tty$ReadStream; + stdout : stream$Writable | tty$WriteStream; + title : string; + umask(mask? : number) : number; + uptime() : number; + version : string; + versions : { + [key: string] : ?string, + node : string, + v8 : string, + ... + }; +} +declare var process: Process; + +declare var __filename: string; +declare var __dirname: string; + +declare function setImmediate(callback: ((...args: Array) => mixed), ...args: Array): Object; +declare function clearImmediate(immediateObject: any): Object; diff --git a/flow/master/flowlib/react-dom.js b/flow/master/flowlib/react-dom.js new file mode 100644 index 00000000000..95f4b3411af --- /dev/null +++ b/flow/master/flowlib/react-dom.js @@ -0,0 +1,694 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @nolint + * @format + * @flow + */ + +// The react-dom, react-dom/server and react-dom/test-utils modules were moved to flow-typed. + +declare class SyntheticEvent<+T: EventTarget = EventTarget, +E: Event = Event> { + bubbles: boolean; + cancelable: boolean; + +currentTarget: T; + defaultPrevented: boolean; + eventPhase: number; + isDefaultPrevented(): boolean; + isPropagationStopped(): boolean; + isTrusted: boolean; + nativeEvent: E; + preventDefault(): void; + stopPropagation(): void; + // This should not be `T`. Use `currentTarget` instead. See: + // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11508#issuecomment-256045682 + +target: EventTarget; + timeStamp: number; + type: string; + persist(): void; +} + +declare class SyntheticAnimationEvent<+T: EventTarget = EventTarget> + extends SyntheticEvent +{ + animationName: string; + elapsedTime: number; + pseudoElement: string; +} + +declare class SyntheticClipboardEvent<+T: EventTarget = EventTarget> + extends SyntheticEvent +{ + clipboardData: any; +} + +declare class SyntheticCompositionEvent<+T: EventTarget = EventTarget> + extends SyntheticEvent +{ + data: any; +} + +declare class SyntheticInputEvent<+T: EventTarget = EventTarget> + extends SyntheticEvent +{ + +target: HTMLInputElement; + data: any; +} + +declare class SyntheticUIEvent<+T: EventTarget = EventTarget, +E: Event = Event> + extends SyntheticEvent +{ + detail: number; + view: any; +} + +declare class SyntheticFocusEvent<+T: EventTarget = EventTarget> + extends SyntheticUIEvent +{ + relatedTarget: EventTarget; +} + +declare class SyntheticKeyboardEvent<+T: EventTarget = EventTarget> + extends SyntheticUIEvent +{ + altKey: boolean; + charCode: number; + ctrlKey: boolean; + getModifierState(keyArg?: string): boolean; + key: string; + keyCode: number; + locale: string; + location: number; + metaKey: boolean; + repeat: boolean; + shiftKey: boolean; + which: number; +} + +declare class SyntheticMouseEvent< + +T: EventTarget = EventTarget, + +E: Event = MouseEvent + > + extends SyntheticUIEvent +{ + altKey: boolean; + button: number; + buttons: number; + clientX: number; + clientY: number; + ctrlKey: boolean; + getModifierState(keyArg: string): boolean; + metaKey: boolean; + pageX: number; + pageY: number; + relatedTarget: EventTarget; + screenX: number; + screenY: number; + shiftKey: boolean; +} + +declare class SyntheticDragEvent<+T: EventTarget = EventTarget> + extends SyntheticMouseEvent +{ + dataTransfer: any; +} + +declare class SyntheticWheelEvent<+T: EventTarget = EventTarget> + extends SyntheticMouseEvent +{ + deltaMode: number; + deltaX: number; + deltaY: number; + deltaZ: number; +} + +declare class SyntheticPointerEvent<+T: EventTarget = EventTarget> + extends SyntheticMouseEvent +{ + pointerId: number; + width: number; + height: number; + pressure: number; + tangentialPressure: number; + tiltX: number; + tiltY: number; + twist: number; + pointerType: string; + isPrimary: boolean; +} + +declare class SyntheticTouchEvent<+T: EventTarget = EventTarget> + extends SyntheticUIEvent +{ + altKey: boolean; + changedTouches: any; + ctrlKey: boolean; + getModifierState: any; + metaKey: boolean; + shiftKey: boolean; + targetTouches: any; + touches: any; +} + +declare class SyntheticTransitionEvent<+T: EventTarget = EventTarget> + extends SyntheticEvent +{ + propertyName: string; + elapsedTime: number; + pseudoElement: string; +} + +// prettier-ignore +declare type $JSXIntrinsics = { + // Catch-all for custom elements. + [string]: ReactDOM$HTMLElementJSXIntrinsic, + // HTML + a: { + instance: HTMLAnchorElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + abbr: ReactDOM$HTMLElementJSXIntrinsic, + address: ReactDOM$HTMLElementJSXIntrinsic, + area: ReactDOM$HTMLElementJSXIntrinsic, + article: ReactDOM$HTMLElementJSXIntrinsic, + aside: ReactDOM$HTMLElementJSXIntrinsic, + audio: { + instance: HTMLAudioElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + b: ReactDOM$HTMLElementJSXIntrinsic, + base: ReactDOM$HTMLElementJSXIntrinsic, + bdi: ReactDOM$HTMLElementJSXIntrinsic, + bdo: ReactDOM$HTMLElementJSXIntrinsic, + big: ReactDOM$HTMLElementJSXIntrinsic, + blockquote: ReactDOM$HTMLElementJSXIntrinsic, + body: ReactDOM$HTMLElementJSXIntrinsic, + br: { + instance: HTMLBRElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + button: { + instance: HTMLButtonElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + canvas: { + instance: HTMLCanvasElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + caption: { + instance: HTMLTableCaptionElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + cite: ReactDOM$HTMLElementJSXIntrinsic, + code: ReactDOM$HTMLElementJSXIntrinsic, + col: ReactDOM$HTMLElementJSXIntrinsic, + colgroup: ReactDOM$HTMLElementJSXIntrinsic, + data: ReactDOM$HTMLElementJSXIntrinsic, + datalist: ReactDOM$HTMLElementJSXIntrinsic, + dd: ReactDOM$HTMLElementJSXIntrinsic, + del: ReactDOM$HTMLElementJSXIntrinsic, + details: { + instance: HTMLDetailsElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + dfn: ReactDOM$HTMLElementJSXIntrinsic, + dialog: ReactDOM$HTMLElementJSXIntrinsic, + div: { + instance: HTMLDivElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + dl: { + instance: HTMLDListElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + dt: ReactDOM$HTMLElementJSXIntrinsic, + em: ReactDOM$HTMLElementJSXIntrinsic, + embed: ReactDOM$HTMLElementJSXIntrinsic, + fieldset: { + instance: HTMLFieldSetElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + figcaption: ReactDOM$HTMLElementJSXIntrinsic, + figure: ReactDOM$HTMLElementJSXIntrinsic, + footer: ReactDOM$HTMLElementJSXIntrinsic, + form: { + instance: HTMLFormElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + h1: { + instance: HTMLHeadingElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + h2: { + instance: HTMLHeadingElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + h3: { + instance: HTMLHeadingElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + h4: { + instance: HTMLHeadingElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + h5: { + instance: HTMLHeadingElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + h6: { + instance: HTMLHeadingElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + head: ReactDOM$HTMLElementJSXIntrinsic, + header: ReactDOM$HTMLElementJSXIntrinsic, + hgroup: ReactDOM$HTMLElementJSXIntrinsic, + hr: { + instance: HTMLHRElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + html: ReactDOM$HTMLElementJSXIntrinsic, + i: ReactDOM$HTMLElementJSXIntrinsic, + iframe: { + instance: HTMLIFrameElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + img: { + instance: HTMLImageElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + ins: ReactDOM$HTMLElementJSXIntrinsic, + kbd: ReactDOM$HTMLElementJSXIntrinsic, + keygen: ReactDOM$HTMLElementJSXIntrinsic, + label: { + instance: HTMLLabelElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + legend: { + instance: HTMLLegendElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + li: { + instance: HTMLLIElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + link: { + instance: HTMLLinkElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + main: ReactDOM$HTMLElementJSXIntrinsic, + map: ReactDOM$HTMLElementJSXIntrinsic, + mark: ReactDOM$HTMLElementJSXIntrinsic, + menu: ReactDOM$HTMLElementJSXIntrinsic, + menuitem: ReactDOM$HTMLElementJSXIntrinsic, + meta: { + instance: HTMLMetaElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + meter: ReactDOM$HTMLElementJSXIntrinsic, + nav: ReactDOM$HTMLElementJSXIntrinsic, + noscript: ReactDOM$HTMLElementJSXIntrinsic, + object: ReactDOM$HTMLElementJSXIntrinsic, + ol: { + instance: HTMLOListElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + optgroup: { + instance: HTMLOptGroupElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + option: { + instance: HTMLOptionElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + output: ReactDOM$HTMLElementJSXIntrinsic, + p: { + instance: HTMLParagraphElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + param: ReactDOM$HTMLElementJSXIntrinsic, + picture: ReactDOM$HTMLElementJSXIntrinsic, + pre: { + instance: HTMLPreElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + progress: ReactDOM$HTMLElementJSXIntrinsic, + q: ReactDOM$HTMLElementJSXIntrinsic, + rp: ReactDOM$HTMLElementJSXIntrinsic, + rt: ReactDOM$HTMLElementJSXIntrinsic, + ruby: ReactDOM$HTMLElementJSXIntrinsic, + s: ReactDOM$HTMLElementJSXIntrinsic, + samp: ReactDOM$HTMLElementJSXIntrinsic, + script: { + instance: HTMLScriptElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + section: ReactDOM$HTMLElementJSXIntrinsic, + small: ReactDOM$HTMLElementJSXIntrinsic, + source: { + instance: HTMLSourceElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + span: { + instance: HTMLSpanElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + strong: ReactDOM$HTMLElementJSXIntrinsic, + style: { + instance: HTMLStyleElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + sub: ReactDOM$HTMLElementJSXIntrinsic, + summary: ReactDOM$HTMLElementJSXIntrinsic, + sup: ReactDOM$HTMLElementJSXIntrinsic, + table: { + instance: HTMLTableElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + tbody: { + instance: HTMLTableSectionElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + td: { + instance: HTMLTableCellElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + tfoot: { + instance: HTMLTableSectionElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + th: { + instance: HTMLTableCellElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + thead: { + instance: HTMLTableSectionElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + time: ReactDOM$HTMLElementJSXIntrinsic, + title: ReactDOM$HTMLElementJSXIntrinsic, + tr: { + instance: HTMLTableRowElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + track: ReactDOM$HTMLElementJSXIntrinsic, + u: ReactDOM$HTMLElementJSXIntrinsic, + ul: { + instance: HTMLUListElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + 'var': ReactDOM$HTMLElementJSXIntrinsic, + video: { + instance: HTMLVideoElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + wbr: ReactDOM$HTMLElementJSXIntrinsic, + // SVG + svg: ReactDOM$SVGElementJSXIntrinsic, + animate: ReactDOM$SVGElementJSXIntrinsic, + circle: ReactDOM$SVGElementJSXIntrinsic, + defs: ReactDOM$SVGElementJSXIntrinsic, + ellipse: ReactDOM$SVGElementJSXIntrinsic, + g: ReactDOM$SVGElementJSXIntrinsic, + image: ReactDOM$SVGElementJSXIntrinsic, + line: ReactDOM$SVGElementJSXIntrinsic, + linearGradient: ReactDOM$SVGElementJSXIntrinsic, + mask: ReactDOM$SVGElementJSXIntrinsic, + path: ReactDOM$SVGElementJSXIntrinsic, + pattern: ReactDOM$SVGElementJSXIntrinsic, + polygon: ReactDOM$SVGElementJSXIntrinsic, + polyline: ReactDOM$SVGElementJSXIntrinsic, + radialGradient: ReactDOM$SVGElementJSXIntrinsic, + rect: ReactDOM$SVGElementJSXIntrinsic, + stop: ReactDOM$SVGElementJSXIntrinsic, + symbol: ReactDOM$SVGElementJSXIntrinsic, + text: ReactDOM$SVGElementJSXIntrinsic, + tspan: ReactDOM$SVGElementJSXIntrinsic, + use: ReactDOM$SVGElementJSXIntrinsic, + // Elements React adds extra props for. + input: { + instance: HTMLInputElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + textarea: { + instance: HTMLTextAreaElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + select: { + instance: HTMLSelectElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... + }, + ... +}; + +type ReactDOM$HTMLElementJSXIntrinsic = { + instance: HTMLElement, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... +}; + +type ReactDOM$SVGElementJSXIntrinsic = { + instance: Element, + props: { + +[key: string]: any, + +children?: React$Node, + ... + }, + ... +}; diff --git a/flow/master/flowlib/react.js b/flow/master/flowlib/react.js new file mode 100644 index 00000000000..5afde4fc7cd --- /dev/null +++ b/flow/master/flowlib/react.js @@ -0,0 +1,685 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +/** + * A UI node that can be rendered by React. React can render most primitives in + * addition to elements and arrays of nodes. + */ + +declare type React$Node = + | void + | null + | boolean + | number + | string + | React$Element + | React$Portal + | Iterable; + + +/** + * Base class of ES6 React classes, modeled as a polymorphic class whose main + * type parameters are Props and State. + */ +declare class React$Component { + // fields + + props: Props; + state: State; + + // action methods + + setState( + partialState: ?$ReadOnly> | ((State, Props) => ?$ReadOnly>), + callback?: () => mixed, + ): void; + + forceUpdate(callback?: () => void): void; + + // lifecycle methods + + constructor(props?: Props, context?: any): void; + render(): React$Node; + componentWillMount(): mixed; + UNSAFE_componentWillMount(): mixed; + componentDidMount(): mixed; + componentWillReceiveProps( + nextProps: Props, + nextContext: any, + ): mixed; + UNSAFE_componentWillReceiveProps( + nextProps: Props, + nextContext: any, + ): mixed; + shouldComponentUpdate( + nextProps: Props, + nextState: State, + nextContext: any, + ): boolean; + componentWillUpdate( + nextProps: Props, + nextState: State, + nextContext: any, + ): mixed; + UNSAFE_componentWillUpdate( + nextProps: Props, + nextState: State, + nextContext: any, + ): mixed; + componentDidUpdate( + prevProps: Props, + prevState: State, + prevContext: any, + ): mixed; + componentWillUnmount(): mixed; + componentDidCatch( + error: Error, + info: { componentStack: string, ... } + ): mixed; + + // long tail of other stuff not modeled very well + + refs: any; + context: any; + getChildContext(): any; + static displayName?: ?string; + static childContextTypes: any; + static contextTypes: any; + static propTypes: any; + + // We don't add a type for `defaultProps` so that its type may be entirely + // inferred when we diff the type for `defaultProps` with `Props`. Otherwise + // the user would need to define a type (which would be redundant) to override + // the type we provide here in the base class. + // + // static defaultProps: $Shape; +} + +declare class React$PureComponent + extends React$Component { +} + +declare type React$AbstractComponentStatics = { + displayName?: ?string, + // This is only on function components, but trying to access name when + // displayName is undefined is a common pattern. + name?: ?string, + propTypes?: {[string] : any, ...}, + ... +}; + +/** + * The type of a component in React. A React component may be a: + * + * - Stateless functional components. Functions that take in props as an + * argument and return a React node. + * - ES6 class component. Components with state defined using the ES6 class syntax + */ +declare type React$ComponentType<-Config> = React$AbstractComponent; + +/** + * The type of an element in React. A React element may be a: + * + * - String. These elements are intrinsics that depend on the React renderer + * implementation. + * - React component. See `ComponentType` for more information about its + * different variants. + */ +declare type React$ElementType = + | string + | React$AbstractComponent; + +/** + * Type of a React element. React elements are commonly created using JSX + * literals, which desugar to React.createElement calls (see below). + * + * The internal structure of React.Element is intentionally omitted to + * discourage React.Element inspection. + * + * See https://react.dev/reference/react/Children#alternatives for alternatives. + */ +declare opaque type React$Element<+ElementType: React$ElementType, +P = React$ElementProps>: {...}; + +declare type React$MixedElement = React$Element; + +/** + * The type of the key that React uses to determine where items in a new list + * have moved. + */ +declare type React$Key = string | number; + +declare opaque type React$RefObject: {| current: T |} + +/** + * DEPRECATED: The type of the ref prop available on all React components, + * including legacy number | string refs. + */ +declare type React$Ref = + | { -current: React$ElementRef | null, ... } + | ((React$ElementRef | null) => mixed) + | number | string; + +/** + * The type of the `ref` prop on forwardRef components and the ref argument + * for useImperativeHandle. + */ +declare type React$RefSetter<-T> = + | { -current: T | null, ... } + | ((T | null) => mixed); + + +/** + * The type of a React Context. React Contexts are created by calling + * createContext() with a default value. + */ +declare type React$Context = { + Provider: React$ComponentType<{ + +value: T, + +children?: React$Node, + ... + }>, + Consumer: React$ComponentType<{ +children: (value: T) => ?React$Node, ... }>, + // Optional, user-specified value for custom display label in React DevTools. + displayName?: string, + ... +} + +/** + * A React portal node. The implementation of the portal node is hidden to React + * users so we use an opaque type. + */ +declare opaque type React$Portal; + +declare type React$FragmentType = $Exports<'react'>['Fragment']; + +/* Utility type to extract the render type of a component */ +type React$ComponentRenders> = + T extends React$AbstractComponent ? R : empty; + +declare module react { + declare export var DOM: any; + declare export var version: string; + + /** @deprecated */ + declare export function checkPropTypes( + propTypes : any, + values: V, + location: string, + componentName: string, + getStack: ?(() => ?string) + ) : void; + + /** @deprecated */ + declare export var createClass: React$CreateClass; + /** + * `createContext` lets you create a context that components can provide or read. + * + * @see https://react.dev/reference/react/createContext + */ + declare export function createContext( + defaultValue: T, + calculateChangedBits: ?(a: T, b: T) => number, + ): React$Context; + /** + * `createElement` lets you create a React element. + * It serves as an alternative to writing JSX. + * + * @see https://react.dev/reference/react/createElement + */ + declare export var createElement: React$CreateElement; + /** + * Using cloneElement is uncommon and can lead to fragile code. + * [See common alternatives](https://react.dev/reference/react/cloneElement#alternatives) + * + * @see https://react.dev/reference/react/cloneElement + */ + declare export var cloneElement: React$CloneElement; + /** + * This API will be removed in a future major version of React. + * [See the alternatives](https://react.dev/reference/react/createFactory#alternatives). + * + * @deprecated + */ + declare export function createFactory( + type: ElementType, + ): React$ElementFactory; + /** + * `createRef` creates a ref object which can contain arbitrary value. + * + * `createRef` is mostly used for class components. + * Function components typically rely on `useRef` instead. + * + * @see https://react.dev/reference/react/createRef + */ + declare export function createRef( + ): {|current: null | T|}; + /** + * `isValidElement` checks whether a value is a React element. + * + * It is very uncommon to need isValidElement. + * It’s mostly useful if you’re calling another API that only accepts + * elements (like cloneElement does) and you want to avoid an error + * when your argument is not a React element. + * + * Unless you have some very specific reason to add an isValidElement check, + * you probably don’t need it. + * + * @see https://react.dev/reference/react/isValidElement + */ + declare export function isValidElement(element: any): boolean; + + /** + * `Component` lets you define a React component as a JavaScript class. + * + * We recommend defining components as functions instead of classes. + * [See how to migrate](https://react.dev/reference/react/PureComponent#alternatives). + * + * @see https://react.dev/reference/react/Component + */ + declare export var Component: typeof React$Component; + + /** + * `PureComponent` is similar to `Component`, but it skip re-renders with same props. + * + * We recommend defining components as functions instead of classes. + * [See how to migrate](https://react.dev/reference/react/PureComponent#alternatives). + * + * @see https://react.dev/reference/react/PureComponent + */ + declare export var PureComponent: typeof React$PureComponent; + declare export type ComponentType<-P> = React$ComponentType

    ; + declare export type AbstractComponent< + -Config, + +Instance = mixed, + +Renders: React$Node = React$Node, + > = React$AbstractComponent; + declare export type PropsOf = E extends React$Element ? React$ElementConfig : (E extends string ? $JSXIntrinsics[E]['props'] : empty); + declare export type PropOf = PropsOf[K] + declare export type RefOf = E extends React$Element ? React$ElementRef : (E extends string ? $JSXIntrinsics[E]['instance'] : empty); + declare export type MixedElement = React$MixedElement; + declare export type ElementType = React$ElementType; + + /** + * Type of a React element. React elements are commonly created using JSX + * literals, which desugar to React.createElement calls (see below). + */ + declare export type Element<+C, +P = React$ElementProps> = React$Element; + /** + * ``, often used via `<>...` syntax, + * lets you group elements without a wrapper node. + * + * @see https://react.dev/reference/react/Fragment + */ + declare export component Fragment( + children?: Renders, + ) renders Renders; + + declare export type Key = React$Key; + declare export type Ref = React$Ref; + declare export type RefSetter<-T> = React$RefSetter; + declare export type Node = React$Node; + declare export type Context = React$Context; + declare export type Portal = React$Portal; + declare export var ConcurrentMode: ({ +children?: React$Node, ... }) => React$Node; // 16.7+ + /** + * `` lets you find common bugs in your components early + * during development. + * + * @see https://react.dev/reference/react/StrictMode + */ + declare export var StrictMode: ({ +children?: React$Node, ... }) => React$Node; + + /** + * `` lets you display a fallback until its children have finished + * loading. + * + * @see https://react.dev/reference/react/Suspense + */ + declare export var Suspense: React$ComponentType<{ + +children?: React$Node, + +fallback?: React$Node, + ... + }>; // 16.6+ + + declare export type ElementProps = React$ElementProps; + declare export type ElementConfig = React$ElementConfig; + declare export type ElementRef = React$ElementRef; + declare export type Config = React$Config; + + declare interface Thenable { + then( + onFulfill: (value: T) => any, + onReject: (error: mixed) => mixed, + ): mixed; + } + + declare type Usable = Thenable | React$Context; + + declare export type ChildrenArray<+T> = $ReadOnlyArray> | T; + /** + * `Children`lets you manipulate and transform the JSX received as the + * children prop. + * + * Using `Children` is uncommon and can lead to fragile code. + * [See common alternatives](https://react.dev/reference/react/Children#alternatives). + * + * @see https://react.dev/reference/react/Children + */ + declare export var Children: { + map( + children: ChildrenArray, + fn: (this : This, child: $NonMaybeType, index: number) => U, + thisArg: This, + ): Array<$NonMaybeType>, + forEach( + children: ChildrenArray, + fn: (this : This, child: T, index: number) => mixed, + thisArg: This, + ): void, + count(children: ChildrenArray): number, + only(children: ChildrenArray): $NonMaybeType, + toArray(children: ChildrenArray): Array<$NonMaybeType>, + ... + }; + + /** + * `forwardRef` lets your component expose a DOM node to parent component + * with a ref. + * + * @see https://react.dev/reference/react/forwardRef + */ + declare export function forwardRef( + render: ( + props: Config, + ref: React$RefSetter, + ) => Renders, + ): React$AbstractComponent; + + /** + * `memo` lets you skip re-rendering a component when its props are unchanged. + * + * @see https://react.dev/reference/react/memo + */ + declare export function memo( + component: React$AbstractComponent, + equal?: (Config, Config) => boolean, + ): React$AbstractComponent; + + /** + * `lazy` lets you defer loading component’s code until it is rendered for + * the first time. + * + * @see https://react.dev/reference/react/lazy + */ + declare export function lazy( + component: () => Promise<{ default: React$AbstractComponent, ... }>, + ): React$AbstractComponent; + + declare type MaybeCleanUpFn = void | (() => void); + declare export type ReactSetStateFunction = ((S => S) | S) => void; + + /** + * `use` is a React Hook that lets you read the value of a resource like a + * `Promise` or `context`. + * + * @see https://react.dev/reference/react/use + */ + declare export function use(usable: Usable): T; + + /** + * `useContext` is a React Hook that lets you read and subscribe to context + * from your component. + * + * @see https://react.dev/reference/react/useContext + */ + declare export function useContext(context: React$Context): T; + + /** + * `useState` is a React Hook that lets you add a + * [state variable](https://react.dev/learn/state-a-components-memory) + * to your component. + * + * @see https://react.dev/reference/react/useState + */ + declare export function useState( + initialState: (() => S) | S, + ): [S, ReactSetStateFunction]; + + declare type Dispatch = (A) => void; + + /** + * `useReducer` is a React Hook that lets you add a + * [reducer](https://react.dev/learn/extracting-state-logic-into-a-reducer) + * to your component. + * + * @see https://react.dev/reference/react/useReducer + */ + declare export function useReducer( + reducer: (S, A) => S, + initialState: S, + ): [S, Dispatch]; + + declare export function useReducer( + reducer: (S, A) => S, + initialState: S, + init: void, + ): [S, Dispatch]; + + declare export function useReducer( + reducer: (S, A) => S, + initialArg: I, + init: (I) => S, + ): [S, Dispatch]; + + declare export type RefObject = React$RefObject; + /** + * `useRef` is a React Hook that lets you reference a value that's + * not needed for rendering. + * + * @see https://react.dev/reference/react/useRef + */ + declare export function useRef(initialValue: T): RefObject; + + /** + * `useDebugValue` is a React Hook that lets you add a label to a custom Hook + * in React DevTools. + * + * @see https://react.dev/reference/react/useDebugValue + */ + declare export function useDebugValue(value: any): void; + + /** + * `useEffect` is a React Hook that lets you + * [synchronize a component with an external system](https://react.dev/learn/synchronizing-with-effects). + * + * @see https://react.dev/reference/react/useEffect + */ + declare export function useEffect( + create: () => MaybeCleanUpFn, + inputs?: ?$ReadOnlyArray, + ): void; + + /** + * `useLayoutEffect` is a version of useEffect that fires before the browser + * repaints the screen. + * + * `useLayoutEffect` can hurt performance. Prefer `useEffect` when possible. + * + * @see https://react.dev/reference/react/useLayoutEffect + */ + declare export function useLayoutEffect( + create: () => MaybeCleanUpFn, + inputs?: ?$ReadOnlyArray, + ): void; + + /** + * `useCallback` is a React Hook that lets you cache a function definition + * between re-renders. + * + * @see https://react.dev/reference/react/useCallback + */ + declare export function useCallback) => mixed>( + callback: T, + inputs: ?$ReadOnlyArray, + ): T; + + /** + * useMemo is a React Hook that lets you cache the result of a calculation + * between re-renders. + * + * @see https://react.dev/reference/react/useMemo + */ + declare export function useMemo( + create: () => T, + inputs: ?$ReadOnlyArray, + ): T; + + /** + * `useImperativeHandle` is a React Hook that lets you customize the handle + * exposed as a ref. + * + * @see https://react.dev/reference/react/useImperativeHandle + */ + declare export function useImperativeHandle( + ref: React$RefSetter | null | void, + create: () => T, + inputs: ?$ReadOnlyArray, + ): void; + + /** + * `useDeferredValue` is a React Hook that lets you defer updating + * a part of the UI. + * + * @see https://react.dev/reference/react/useDeferredValue + */ + declare export function useDeferredValue(value: T): T; + + /** + * `useTransition` is a React Hook that lets you update the state + * without blocking the UI. + * + * @see https://react.dev/reference/react/useTransition + */ + declare export function useTransition(): [boolean, (() => void) => void]; + + /** + * `startTransition` lets you update the state without blocking the UI. + * + * @see https://react.dev/reference/react/startTransition + */ + declare export function startTransition(() => void): void; + + /** + * `useId` is a React Hook for generating unique IDs that + * can be passed to accessibility attributes. + * + * @see https://react.dev/reference/react/useId + */ + declare export function useId(): string; + + /** + * `useInsertionEffect` allows inserting elements into the DOM + * before any layout effects fire. + * + * `useInsertionEffect` is for CSS-in-JS library authors. Unless you are + * working on a CSS-in-JS library and need a place to inject the styles, + * you probably want `useEffect` or `useLayoutEffect` instead. + * + * @see https://react.dev/reference/react/useInsertionEffect + */ + declare export function useInsertionEffect( + create: () => MaybeCleanUpFn, + inputs?: ?$ReadOnlyArray, + ): void; + + /** + * `useSyncExternalStore` is a React Hook that lets you subscribe + * to an external store. + * + * @see https://react.dev/reference/react/useSyncExternalStore + */ + declare export function useSyncExternalStore( + subscribe: (onStoreChange: () => void) => () => void, + getSnapshot: () => Snapshot, + getServerSnapshot?: () => Snapshot, + ): Snapshot; + + declare export type Interaction = { + name: string, + timestamp: number, + ... + }; + + declare type ProfilerOnRenderFnType = ( + id: string, + phase: "mount" | "update", + actualDuration: number, + baseDuration: number, + startTime: number, + commitTime: number, + interactions: Set, + ) => void; + + /** + * `` lets you measure rendering performance of a + * React tree programmatically. + * + * @see https://react.dev/reference/react/Profiler + */ + declare export var Profiler: React$AbstractComponent<{| + +children?: React$Node, + +id: string, + +onRender: ProfilerOnRenderFnType, + |}, void, React$Node>; + + declare type TimeoutConfig = {| + timeoutMs: number, + |}; + + declare const React: { + +DOM: typeof DOM, + +version: typeof version, + +checkPropTypes: typeof checkPropTypes, + +memo: typeof memo, + +lazy: typeof lazy, + +createClass: typeof createClass, + +createContext: typeof createContext, + +createElement: typeof createElement, + +cloneElement: typeof cloneElement, + +createFactory: typeof createFactory, + +createRef: typeof createRef, + +forwardRef: typeof forwardRef, + +isValidElement: typeof isValidElement, + +Component: typeof Component, + +PureComponent: typeof PureComponent, + +Fragment: typeof Fragment, + +Children: typeof Children, + +ConcurrentMode: typeof ConcurrentMode, + +StrictMode: typeof StrictMode, + +Profiler: typeof Profiler, + +Suspense: typeof Suspense, + +useContext: typeof useContext, + +useState: typeof useState, + +useReducer: typeof useReducer, + +useRef: typeof useRef, + +useEffect: typeof useEffect, + +useLayoutEffect: typeof useLayoutEffect, + +useCallback: typeof useCallback, + +useMemo: typeof useMemo, + +useImperativeHandle: typeof useImperativeHandle, + +useTransition: typeof useTransition, + +useDeferredValue: typeof useDeferredValue, + +startTransition: typeof startTransition, + +useId: typeof useId, + +useInsertionEffect: typeof useInsertionEffect, + +useSyncExternalStore: typeof useSyncExternalStore, + ... + }; + declare export default typeof React; +} diff --git a/flow/master/flowlib/serviceworkers.js b/flow/master/flowlib/serviceworkers.js new file mode 100644 index 00000000000..645b1c6db7d --- /dev/null +++ b/flow/master/flowlib/serviceworkers.js @@ -0,0 +1,237 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +type FrameType = 'auxiliary' | 'top-level' | 'nested' | 'none'; +type VisibilityState = 'hidden' | 'visible' | 'prerender' | 'unloaded'; + +declare class WindowClient extends Client { + visibilityState: VisibilityState, + focused: boolean, + focus(): Promise, + navigate(url: string): Promise, +} + +declare class Client { + id: string, + reserved: boolean, + url: string, + frameType: FrameType, + postMessage(message: any, transfer?: Iterator | Array): void, +} + +declare class ExtendableEvent extends Event { + waitUntil(f: Promise): void, +} + +type NotificationEvent$Init = { + ...Event$Init, + notification: Notification, + action?: string, + ... +} + +declare class NotificationEvent extends ExtendableEvent { + constructor(type: string, eventInitDict?: NotificationEvent$Init):void; + +notification: Notification, + +action: string, +} + +type ForeignFetchOptions = { + scopes: Iterator, + origins: Iterator, + ... +}; + +declare class InstallEvent extends ExtendableEvent { + registerForeignFetch(options: ForeignFetchOptions): void, +} + +declare class FetchEvent extends ExtendableEvent { + request: Request, + clientId: string, + isReload: boolean, + respondWith(response: Response | Promise): void, + preloadResponse: Promise, +} + +type ClientType = 'window' | 'worker' | 'sharedworker' | 'all'; +type ClientQueryOptions = { + includeUncontrolled?: boolean, + includeReserved?: boolean, + type?: ClientType, + ... +}; + +declare class Clients { + get(id: string): Promise, + matchAll(options?: ClientQueryOptions): Promise>, + openWindow(url: string): Promise, + claim(): Promise, +} + +type ServiceWorkerState = 'installing' + | 'installed' + | 'activating' + | 'activated' + | 'redundant'; + +declare class ServiceWorker extends EventTarget { + scriptURL: string, + state: ServiceWorkerState, + + postMessage(message: any, transfer?: Iterator): void, + + onstatechange?: EventHandler, +} + +declare class NavigationPreloadState { + enabled: boolean, + headerValue: string, +} + +declare class NavigationPreloadManager { + enable: Promise, + disable: Promise, + setHeaderValue(value: string): Promise, + getState: Promise, +} + +type PushSubscriptionOptions = { + userVisibleOnly?: boolean, + applicationServerKey?: string | ArrayBuffer | $ArrayBufferView, + ... +} + +declare class PushSubscriptionJSON { + endpoint: string, + expirationTime: number | null, + keys: { [string]: string, ... }; +} + +declare class PushSubscription { + +endpoint: string, + +expirationTime: number | null, + +options: PushSubscriptionOptions, + getKey(name: string): ArrayBuffer | null, + toJSON(): PushSubscriptionJSON, + unsubscribe(): Promise, +} + +declare class PushManager { + +supportedContentEncodings: Array, + subscribe(options?: PushSubscriptionOptions): Promise, + getSubscription(): Promise, + permissionState(options?: PushSubscriptionOptions): Promise<'granted' | 'denied' | 'prompt'>, +} + +type ServiceWorkerUpdateViaCache = 'imports' | 'all' | 'none'; + +declare class ServiceWorkerRegistration extends EventTarget { + +installing: ?ServiceWorker, + +waiting: ?ServiceWorker, + +active: ?ServiceWorker, + +navigationPreload: NavigationPreloadManager, + +scope: string, + +updateViaCache: ServiceWorkerUpdateViaCache, + +pushManager: PushManager, + + update(): Promise, + unregister(): Promise, + + onupdatefound?: EventHandler, +} + +type WorkerType = 'classic' | 'module'; + +type RegistrationOptions = { + scope?: string, + type?: WorkerType, + updateViaCache?: ServiceWorkerUpdateViaCache, + ... +}; + +declare class ServiceWorkerContainer extends EventTarget { + +controller: ?ServiceWorker, + +ready: Promise, + + getRegistration(clientURL?: string): Promise, + getRegistrations(): Promise>, + register( + scriptURL: string | TrustedScriptURL, + options?: RegistrationOptions + ): Promise, + startMessages(): void, + + oncontrollerchange?: EventHandler, + onmessage?: EventHandler, + onmessageerror?: EventHandler, +} + +/** + * This feature has been removed from the Web standards. + */ +declare class ServiceWorkerMessageEvent extends Event { + data: any, + lastEventId: string, + origin: string, + ports: Array, + source: ?(ServiceWorker | MessagePort), +} + +declare class ExtendableMessageEvent extends ExtendableEvent { + data: any, + lastEventId: string, + origin: string, + ports: Array, + source: ?(ServiceWorker | MessagePort), +} + +type CacheQueryOptions = { + ignoreSearch?: boolean, + ignoreMethod?: boolean, + ignoreVary?: boolean, + cacheName?: string, + ... +} + +declare class Cache { + match(request: RequestInfo, options?: CacheQueryOptions): Promise, + matchAll( + request: RequestInfo, + options?: CacheQueryOptions + ): Promise>, + add(request: RequestInfo): Promise, + addAll(requests: Array): Promise, + put(request: RequestInfo, response: Response): Promise, + delete(request: RequestInfo, options?: CacheQueryOptions): Promise, + keys( + request?: RequestInfo, + options?: CacheQueryOptions + ): Promise>, +} + +declare class CacheStorage { + match(request: RequestInfo, options?: CacheQueryOptions): Promise, + has(cacheName: string): Promise, + open(cacheName: string): Promise, + delete(cacheName: string): Promise, + keys(): Promise>, +} + +// Service worker global scope +// https://www.w3.org/TR/service-workers/#service-worker-global-scope +declare var clients: Clients; +declare var caches: CacheStorage; +declare var registration: ServiceWorkerRegistration; +declare function skipWaiting(): Promise; +declare var onactivate: ?EventHandler; +declare var oninstall: ?EventHandler; +declare var onfetch: ?EventHandler; +declare var onforeignfetch: ?EventHandler; +declare var onmessage: ?EventHandler; diff --git a/flow/master/flowlib/streams.js b/flow/master/flowlib/streams.js new file mode 100644 index 00000000000..efad9580fb8 --- /dev/null +++ b/flow/master/flowlib/streams.js @@ -0,0 +1,141 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +type TextEncodeOptions = { options?: boolean, ... }; + +declare class TextEncoder { + encode(buffer: string, options?: TextEncodeOptions): Uint8Array, +} + +declare class ReadableStreamController { + constructor( + stream: ReadableStream, + underlyingSource: UnderlyingSource, + size: number, + highWaterMark: number, + ): void, + + desiredSize: number, + + close(): void, + enqueue(chunk: any): void, + error(error: Error): void, +} + +declare class ReadableStreamBYOBRequest { + constructor(controller: ReadableStreamController, view: $TypedArray): void, + + view: $TypedArray, + + respond(bytesWritten: number): ?any, + respondWithNewView(view: $TypedArray): ?any, +} + +declare class ReadableByteStreamController extends ReadableStreamController { + constructor( + stream: ReadableStream, + underlyingSource: UnderlyingSource, + highWaterMark: number, + ): void, + + byobRequest: ReadableStreamBYOBRequest, +} + +declare class ReadableStreamReader { + constructor(stream: ReadableStream): void, + + closed: boolean, + + cancel(reason: string): void, + read(): Promise<{ + value: ?any, + done: boolean, + ... + }>, + releaseLock(): void, +} + +declare interface UnderlyingSource { + autoAllocateChunkSize?: number, + type?: string, + + start?: (controller: ReadableStreamController) => ?Promise, + pull?: (controller: ReadableStreamController) => ?Promise, + cancel?: (reason: string) => ?Promise, +} + +declare class TransformStream { + readable: ReadableStream, + writable: WritableStream, +}; + +type PipeToOptions = { + preventClose?: boolean, + preventAbort?: boolean, + preventCancel?: boolean, + ... +}; + +type QueuingStrategy = { + highWaterMark: number, + size(chunk: ?any): number, + ... +}; + +declare class ReadableStream { + constructor( + underlyingSource: ?UnderlyingSource, + queuingStrategy: ?QueuingStrategy, + ): void, + + locked: boolean, + + cancel(reason: string): void, + getReader(): ReadableStreamReader, + pipeThrough(transform: TransformStream, options: ?any): void, + pipeTo(dest: WritableStream, options: ?PipeToOptions): Promise, + tee(): [ReadableStream, ReadableStream], +}; + +declare interface WritableStreamController { + error(error: Error): void, +} + +declare interface UnderlyingSink { + autoAllocateChunkSize?: number, + type?: string, + + abort?: (reason: string) => ?Promise, + close?: (controller: WritableStreamController) => ?Promise, + start?: (controller: WritableStreamController) => ?Promise, + write?: (chunk: any, controller: WritableStreamController) => ?Promise, +} + +declare interface WritableStreamWriter { + closed: Promise, + desiredSize?: number, + ready: Promise, + + abort(reason: string): ?Promise, + close(): Promise, + releaseLock(): void, + write(chunk: any): Promise, +} + +declare class WritableStream { + constructor( + underlyingSink: ?UnderlyingSink, + queuingStrategy: QueuingStrategy, + ): void, + + locked: boolean, + + abort(reason: string): void, + getWriter(): WritableStreamWriter, +} diff --git a/flow/master/flowlib/webassembly.js b/flow/master/flowlib/webassembly.js new file mode 100644 index 00000000000..e742aecf695 --- /dev/null +++ b/flow/master/flowlib/webassembly.js @@ -0,0 +1,104 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + */ + +// https://github.com/WebAssembly/design/blob/master/JS.md +// https://developer.mozilla.org/en-US/docs/WebAssembly +// https://github.com/WebAssembly/design/blob/master/Web.md + +type BufferSource = $TypedArray | ArrayBuffer; +type ImportExportKind = 'function' | 'table' | 'memory' | 'global'; +type ImportObject = Object; +type ResultObject = { + module: WebAssembly$Module, + instance: WebAssembly$Instance, + ... +}; + +// https://github.com/WebAssembly/design/blob/master/JS.md#exported-function-exotic-objects +declare class ExportedFunctionExoticObject extends Function { + (): mixed; +} + +declare class WebAssembly$Module { + constructor(bufferSource: BufferSource): void; + + static exports(moduleObject: WebAssembly$Module): Array<{ + name: string, + kind: ImportExportKind, + ... + }>; + static imports(moduleObject: WebAssembly$Module): Array<{ + name: string, + name: string, + kind: ImportExportKind, + ... + }>; + static customSections(moduleObject: WebAssembly$Module, sectionName: string): Array; +} + +declare class WebAssembly$Instance { + constructor(moduleObject: WebAssembly$Module, importObject?: ImportObject): void; + + +exports: { [exportedFunction: string]: ExportedFunctionExoticObject, ... }; +} + +type MemoryDescriptor = { + initial: number, + maximum?: number, + ... +}; + +declare class WebAssembly$Memory { + constructor(memoryDescriptor: MemoryDescriptor): void; + + +buffer: ArrayBuffer; + + grow(delta: number): number; +} + +type TableDescriptor = { + element: 'anyfunc', + initial: number, + maximum?: number, + ... +}; + +declare class WebAssembly$Table { + constructor(tableDescriptor: TableDescriptor): void; + + +length: number; + + grow(delta: number): number; + get(index: number): ExportedFunctionExoticObject; + set(index: number, value: ExportedFunctionExoticObject): void; +} + +declare class WebAssembly$CompileError extends Error {} +declare class WebAssembly$LinkError extends Error {} +declare class WebAssembly$RuntimeError extends Error {} + +declare function WebAssembly$instantiate(bufferSource: BufferSource, importObject?: ImportObject): Promise; +declare function WebAssembly$instantiate(moduleObject: WebAssembly$Module, importObject?: ImportObject): Promise; + +declare var WebAssembly: { + Module: typeof WebAssembly$Module, + Instance: typeof WebAssembly$Instance, + Memory: typeof WebAssembly$Memory, + Table: typeof WebAssembly$Table, + CompileError: typeof WebAssembly$CompileError, + LinkError: typeof WebAssembly$LinkError, + RuntimeError: typeof WebAssembly$RuntimeError, + validate(bufferSource: BufferSource): boolean, + compile(bufferSource: BufferSource): Promise, + instantiate: typeof WebAssembly$instantiate, + // web embedding API + compileStreaming(source: Response | Promise): Promise, + instantiateStreaming(source: Response | Promise, importObject?: ImportObject): Promise, + ... +} diff --git a/img/favicon.ico b/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c01d54bcd39a5f853428f3cd5aa0f383d963c484 GIT binary patch literal 3626 zcmb`Je@s(X6vrR`EK3%b%orErlDW({vnABqA zcfaS{d+xbU5JKp0*;0YOg+;Fl!eT)XRuapIwFLL`=imZCSon$`se`_<%@MB=M~KG+ z=EW^FL`w|Bo>*ktlaS^(fut!95`iG5u=SZ8nfDHO#GaTlH1-XG^;vsjUb^gWTVz0+ z^=WR1wv9-2oeR=_;fL0H7rNWqAzGtO(D;`~cX(RcN0w2v24Y8)6t`cS^_ghs`_ho? z{0ka~1Dgo8TfAP$r*ua?>$_V+kZ!-(TvEJ7O2f;Y#tezt$&R4 zLI}=-y@Z!grf*h3>}DUL{km4R>ya_I5Ag#{h_&?+HpKS!;$x3LC#CqUQ8&nM?X))Q zXAy2?`YL4FbC5CgJu(M&Q|>1st8XXLZ|5MgwgjP$m_2Vt0(J z&Gu7bOlkbGzGm2sh?X`){7w69Y$1#@P@7DF{ZE=4%T0NDS)iH`tiPSKpDNW)zmtn( zw;4$f>k)4$LBc>eBAaTZeCM2(iD+sHlj!qd z2GjRJ>f_Qes(+mnzdA^NH?^NB(^o-%Gmg$c8MNMq&`vm@9Ut;*&$xSD)PKH{wBCEC z4P9%NQ;n2s59ffMn8*5)5AAg4-93gBXBDX`A7S& zH-|%S3Wd%T79fk-e&l`{!?lve8_epXhE{d3Hn$Cg!t=-4D(t$cK~7f&4s?t7wr3ZP z*!SRQ-+tr|e1|hbc__J`k3S!rMy<0PHy&R`v#aJv?`Y?2{avK5sQz%=Us()jcNuZV z*$>auD4cEw>;t`+m>h?f?%VFJZj8D|Y1e_SjxG%J4{-AkFtT2+ZZS5UScS~%;dp!V>)7zi`w(xwSd*FS;Lml=f6hn#jq)2is4nkp+aTrV?)F6N z>DY#SU0IZ;*?Hu%tSj4edd~kYNHMFvS&5}#3-M;mBCOCZL3&;2obdG?qZ>rD|zC|Lu|sny76pn2xl|6sk~Hs{X9{8iBW zwiwgQt+@hi`FYMEhX2*|qm{J=@+LcURiY z={D;^SRlr2EDBSHF5m~Zp^5lHa5I2d$;1hYVl+;`@xjeRT_Pa?pKj~)!@>tIxqIIJ zzu)iw{9kUjzwWW}vir*r1S$8{x&m;#EB`Jpf!~ThZwhd@&u}*wK_zOW1q~oIq7nwE zHz_oM01(9H9XU{iAjLbRP=nFn+sa3jBq8K&h)hz2XauRM&Zt5p4h%F5nk3nQ{eEl| zLnYCH)mwa&Pj!NrRNJC~U`t&n(h`qwB3AtUxP@h-I2WdA+|JoVF3g$jj2U1Hc=7*+j)YE;`8xSe z-4wQ9G3KX>T>ux0eFS9KJR0nh1FI%$5#+X**HshBT-?*`*wiW9efo_l&-#*V?@Omn zHwvq>Ike=Xo?em7HI5C;3{*bU-TNx@USrRbKlZv4U+jDF%Ez7Z_R-+f(7EgTf}=N- zDemk|?rd{K#j=i-m*j~L)^*3)v3F*tORf{9*4WsuE5rvq=TF9cYkSVI+5T%Y6XRbd z`s|;!-rgE5y?Clpi+xKTT=qUS_{h87`e!HZT$3|N-w%G48$WpFmsQhS9{;VZ|MhJ2 z_=xdG`QFP%zuI_jXII~@*FN0;d6o6MBkkMcgx|Eg#ok_ebx&$6_mp^#Y`l{4A3eOf z_{dvrXEuxv6rE_5PmFxBiwt7fszZm?94i_k*B$3)>;LX}zH4QyW7Zt{Y0EcjpJ`G@ zHvW(iFRka_zObTcvOB7F7-I*vwOy#jp57Xtu}*L3@_I{WrLW1Chlc~@=Pz&b4PKFB zdwcu!p=&1(C$eu6&lLx$Xy5*yv)L$9e&d0*qC1ekmhYUr>Z{M@e`{WMooje=;|u=) DG(+Lz literal 0 HcmV?d00001 diff --git a/img/featurette-bigger.gif b/img/featurette-bigger.gif new file mode 100644 index 0000000000000000000000000000000000000000..3bd73e4d6528d6e2abf02ef40536f2fda94a8eac GIT binary patch literal 67115 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 YKmPZBbp7-H|3K$|062gHHx~i`J2c;T+W-In literal 0 HcmV?d00001 diff --git a/img/featurette-confidently.gif b/img/featurette-confidently.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cb7c027e33124cd7f515769ba1c83872a2e888d GIT binary patch literal 33996 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 literal 0 HcmV?d00001 diff --git a/img/featurette-faster.gif b/img/featurette-faster.gif new file mode 100644 index 0000000000000000000000000000000000000000..a914737948428b885f8ce20a7902057645a3a21b GIT binary patch literal 37867 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�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

    r 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⩔|1l_B=~(ft{uLCu{uUJWBZ9(~ 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 z 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 literal 0 HcmV?d00001 diff --git a/img/icon-github.svg b/img/icon-github.svg new file mode 100644 index 00000000000..5efa987791d --- /dev/null +++ b/img/icon-github.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/icon-stackoverflow.svg b/img/icon-stackoverflow.svg new file mode 100644 index 00000000000..ee6c4050ea9 --- /dev/null +++ b/img/icon-stackoverflow.svg @@ -0,0 +1,6 @@ + + + + diff --git a/img/icon-twitter.svg b/img/icon-twitter.svg new file mode 100644 index 00000000000..c3c4ecf7c73 --- /dev/null +++ b/img/icon-twitter.svg @@ -0,0 +1,3 @@ + diff --git a/img/logo.svg b/img/logo.svg new file mode 100644 index 00000000000..e877cb44b33 --- /dev/null +++ b/img/logo.svg @@ -0,0 +1,15 @@ + diff --git a/img/oss_logo.png b/img/oss_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..81923fc56250f9ccb038dd1c605e772846100290 GIT binary patch literal 4728 zcmV-;5{K=HP)35VHbPD=^(Y6;?`BW{RiQ%nD4e zz)Gtoa`RM1E>wqJfut3LUcr@Dz*lGxjUfO8N&QjAcMeakuZSN4m=8090pR6%j$@-c zn6v=I0PX=i1Bhp%eg+2zhrPl(HUV@8lL){Nz=ibF1AyUd)L*%7a&R~^0_YAVAqoDa z;k7r?2F9+d930Mo0J?*TPlA6_BH0UoWH#!juFD)88b|=l&W{!9zQ8kp(D3^c5rOj$ zI5_M8pAKl}FR*sZJ3j$%rFrEQK%`Rb zyMswUrh+MLJR9|=t{WX3PKW?V-5=77t->4D9{$84uO8*qHuwkP*{Hv8-RavsuBRH-ebdz zyCil0;HtMpgrN&7J}!m;0{ZV5>$s4nA)*H)2jdSx08J7ui#-NMBPk7hHmGcnG<2+` z*!XO&>F=f?VVdScgZsjc04&w(liamu*kveiD%*}j0Kd!hnIiy40K3Ac0s+bl!vBnQ z`0h#C)})R2WdEyh0}3l9qH}O?J^%|9dS^>)-W&m`zX9Ga=`G1doaPuADyC%y7CiHsx``N-51R0FRW%zhr*43Iu;l@5*&v zSW6i`iH^&0NPYuZ|0el1SPu_u- zci;i|O5~%$J%Ee|r49+KW}|)tpra}4qQ*ct6p9Ae6$zT^J9;$eFH4kHl;+Bk1Rf3M z-<@G5Z_#f$GxdVT$GCtr?+x1St)b0|+J-yKqY4_)Q3ycB!)(;|>&EVTbNJpIQ^SCH z1Mn^HAjmry=beq}m3J`BI|#{EeARUHPj8OYo7c0MXQTdNHtL5&I𝔗HFrw#yn8{ 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 + + + + +Flow: A Static Type Checker for JavaScript | Flow + + + + + + + + + + + + + + +

    +

    Flow is
    a static type
    checker for
    JavaScript.

    Get StartedInstall Flow
    Current version: v0.225.1

    Code Faster.

    Tired of having to run your code to find bugs? Flow identifies problems as you code. Stop wasting your time guessing and checking.

    Code Smarter.

    It's hard to build smart tools for dynamic languages like JavaScript. Flow understands your code and makes its knowledge available, enabling other smart tools to be built on top of Flow.

    Code Confidently.

    Making major changes to large codebases can be scary. Flow helps you refactor safely, so you can focus on the changes you want to make, and stop worrying about what you might break.

    Code Bigger.

    Working in a codebase with lots of developers can make it difficult to keep your master branch working. Flow can help prevent bad rebases. Flow can help protect your carefully designed library from misuse and misinterpretation. And Flow can help you understand the code you wrote six months ago.

    Ready to get going?

    Realtime Feedback

    Flow gives you fast feedback while you code by incrementally rechecking your code as you make changes.

    Easy Integration

    Flow integrates well with many tools, making it easy to insert into your existing workflow and toolchain.

    + + + + \ No newline at end of file diff --git a/opensearch.xml b/opensearch.xml new file mode 100644 index 00000000000..95fe67e5532 --- /dev/null +++ b/opensearch.xml @@ -0,0 +1,11 @@ + + + Flow + Search Flow + UTF-8 + https://flow.org/img/favicon.png + + + https://flow.org/ + \ No newline at end of file diff --git a/search/index.html b/search/index.html new file mode 100644 index 00000000000..1f7ae68eb4e --- /dev/null +++ b/search/index.html @@ -0,0 +1,26 @@ + + + + + +Search the documentation | Flow + + + + + + + + + + + + + + +
    +

    Search the documentation

    + + + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000000..77511305f49 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://flow.org/blog/weekly0.5https://flow.org/blog/2015/02/18/Import-Types/weekly0.5https://flow.org/blog/2015/02/18/Typecasts/weekly0.5https://flow.org/blog/2015/02/20/Flow-Comments/weekly0.5https://flow.org/blog/2015/03/12/Bounded-Polymorphism/weekly0.5https://flow.org/blog/2015/07/03/Disjoint-Unions/weekly0.5https://flow.org/blog/2015/07/29/Version-0.14.0/weekly0.5https://flow.org/blog/2015/09/10/Version-0.15.0/weekly0.5https://flow.org/blog/2015/09/22/Version-0.16.0/weekly0.5https://flow.org/blog/2015/10/07/Version-0.17.0/weekly0.5https://flow.org/blog/2015/11/09/Generators/weekly0.5https://flow.org/blog/2015/12/01/Version-0.19.0/weekly0.5https://flow.org/blog/2016/02/02/Version-0.21.0/weekly0.5https://flow.org/blog/2016/07/01/New-Unions-Intersections/weekly0.5https://flow.org/blog/2016/08/01/Windows-Support/weekly0.5https://flow.org/blog/2016/10/04/Property-Variance/weekly0.5https://flow.org/blog/2016/10/13/Flow-Typed/weekly0.5https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/weekly0.5https://flow.org/blog/2017/07/27/Opaque-Types/weekly0.5https://flow.org/blog/2017/08/04/Linting-in-Flow/weekly0.5https://flow.org/blog/2017/08/16/Even-Better-Support-for-React-in-Flow/weekly0.5https://flow.org/blog/2017/08/25/Private-Object-Properties-Using-Flows-Opaque-Type-Aliases/weekly0.5https://flow.org/blog/2017/09/03/Flow-Support-in-Recompose/weekly0.5https://flow.org/blog/2018/02/20/Better-Flow-Error-Messages-for-the-Javascript-Ecosystem/weekly0.5https://flow.org/blog/2018/03/16/New-Flow-Errors-on-Unknown-Property-Access-in-Conditionals/weekly0.5https://flow.org/blog/2018/10/18/Exact-Objects-By-Default/weekly0.5https://flow.org/blog/2018/10/29/Asking-for-Required-Annotations/weekly0.5https://flow.org/blog/2018/12/13/React-Abstract-Component/weekly0.5https://flow.org/blog/2019/08/20/Changes-to-Object-Spreads/weekly0.5https://flow.org/blog/2019/1/28/What-the-flow-team-has-been-up-to/weekly0.5https://flow.org/blog/2019/10/25/Live-Flow-Errors-in-your-IDE/weekly0.5https://flow.org/blog/2019/10/30/Spreads-Common-Errors-and-Fixes/weekly0.5https://flow.org/blog/2019/2/8/A-More-Responsive-Flow/weekly0.5https://flow.org/blog/2019/4/9/Upgrading-Flow-Codebases/weekly0.5https://flow.org/blog/2020/01/29/How-to-Upgrade-to-exact-by-default-object-type-syntax/weekly0.5https://flow.org/blog/2020/02/19/Improvements-to-Flow-in-2019/weekly0.5https://flow.org/blog/2020/03/09/What-were-building-in-2020/weekly0.5https://flow.org/blog/2020/03/16/Making-Flow-error-suppressions-more-specific/weekly0.5https://flow.org/blog/2020/05/18/Types-First-A-Scalable-New-Architecture-for-Flow/weekly0.5https://flow.org/blog/2020/11/16/Flows-Improved-Handling-of-Generic-Types/weekly0.5https://flow.org/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/weekly0.5https://flow.org/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/weekly0.5https://flow.org/blog/2021/06/02/Sound-Typing-for-this-in-Flow/weekly0.5https://flow.org/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/weekly0.5https://flow.org/blog/2021/09/13/Introducing-Flow-Enums/weekly0.5https://flow.org/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/weekly0.5https://flow.org/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/weekly0.5https://flow.org/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/weekly0.5https://flow.org/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/weekly0.5https://flow.org/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/weekly0.5https://flow.org/blog/2023/01/17/Local-Type-Inference/weekly0.5https://flow.org/blog/2023/02/16/Exact-object-types-by-default-by-default/weekly0.5https://flow.org/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/weekly0.5https://flow.org/blog/2023/04/10/Unused-Promise/weekly0.5https://flow.org/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/weekly0.5https://flow.org/blog/archive/weekly0.5https://flow.org/blog/page/2/weekly0.5https://flow.org/search/weekly0.5https://flow.org/try/weekly0.5https://flow.org/en/docs/weekly0.5https://flow.org/en/docs/cli/weekly0.5https://flow.org/en/docs/cli/annotate-exports/weekly0.5https://flow.org/en/docs/cli/coverage/weekly0.5https://flow.org/en/docs/config/weekly0.5https://flow.org/en/docs/config/declarations/weekly0.5https://flow.org/en/docs/config/ignore/weekly0.5https://flow.org/en/docs/config/include/weekly0.5https://flow.org/en/docs/config/libs/weekly0.5https://flow.org/en/docs/config/lints/weekly0.5https://flow.org/en/docs/config/options/weekly0.5https://flow.org/en/docs/config/untyped/weekly0.5https://flow.org/en/docs/config/version/weekly0.5https://flow.org/en/docs/declarations/weekly0.5https://flow.org/en/docs/editors/weekly0.5https://flow.org/en/docs/editors/emacs/weekly0.5https://flow.org/en/docs/editors/sublime-text/weekly0.5https://flow.org/en/docs/editors/vim/weekly0.5https://flow.org/en/docs/editors/vscode/weekly0.5https://flow.org/en/docs/editors/webstorm/weekly0.5https://flow.org/en/docs/enums/weekly0.5https://flow.org/en/docs/enums/defining-enums/weekly0.5https://flow.org/en/docs/enums/enabling-enums/weekly0.5https://flow.org/en/docs/enums/migrating-legacy-patterns/weekly0.5https://flow.org/en/docs/enums/using-enums/weekly0.5https://flow.org/en/docs/errors/weekly0.5https://flow.org/en/docs/faq/weekly0.5https://flow.org/en/docs/getting-started/weekly0.5https://flow.org/en/docs/install/weekly0.5https://flow.org/en/docs/lang/annotation-requirement/weekly0.5https://flow.org/en/docs/lang/depth-subtyping/weekly0.5https://flow.org/en/docs/lang/lazy-modes/weekly0.5https://flow.org/en/docs/lang/nominal-structural/weekly0.5https://flow.org/en/docs/lang/refinements/weekly0.5https://flow.org/en/docs/lang/subtypes/weekly0.5https://flow.org/en/docs/lang/type-hierarchy/weekly0.5https://flow.org/en/docs/lang/types-and-expressions/weekly0.5https://flow.org/en/docs/lang/types-first/weekly0.5https://flow.org/en/docs/lang/variables/weekly0.5https://flow.org/en/docs/lang/variance/weekly0.5https://flow.org/en/docs/lang/width-subtyping/weekly0.5https://flow.org/en/docs/libdefs/weekly0.5https://flow.org/en/docs/libdefs/creation/weekly0.5https://flow.org/en/docs/linting/weekly0.5https://flow.org/en/docs/linting/flowlint-comments/weekly0.5https://flow.org/en/docs/linting/rule-reference/weekly0.5https://flow.org/en/docs/react/weekly0.5https://flow.org/en/docs/react/components/weekly0.5https://flow.org/en/docs/react/events/weekly0.5https://flow.org/en/docs/react/hoc/weekly0.5https://flow.org/en/docs/react/multiplatform/weekly0.5https://flow.org/en/docs/react/refs/weekly0.5https://flow.org/en/docs/react/types/weekly0.5https://flow.org/en/docs/strict/weekly0.5https://flow.org/en/docs/tools/weekly0.5https://flow.org/en/docs/tools/babel/weekly0.5https://flow.org/en/docs/tools/eslint/weekly0.5https://flow.org/en/docs/tools/flow-remove-types/weekly0.5https://flow.org/en/docs/types/weekly0.5https://flow.org/en/docs/types/aliases/weekly0.5https://flow.org/en/docs/types/any/weekly0.5https://flow.org/en/docs/types/arrays/weekly0.5https://flow.org/en/docs/types/casting/weekly0.5https://flow.org/en/docs/types/classes/weekly0.5https://flow.org/en/docs/types/comments/weekly0.5https://flow.org/en/docs/types/conditional/weekly0.5https://flow.org/en/docs/types/empty/weekly0.5https://flow.org/en/docs/types/functions/weekly0.5https://flow.org/en/docs/types/generators/weekly0.5https://flow.org/en/docs/types/generics/weekly0.5https://flow.org/en/docs/types/indexed-access/weekly0.5https://flow.org/en/docs/types/interfaces/weekly0.5https://flow.org/en/docs/types/intersections/weekly0.5https://flow.org/en/docs/types/literals/weekly0.5https://flow.org/en/docs/types/mapped-types/weekly0.5https://flow.org/en/docs/types/maybe/weekly0.5https://flow.org/en/docs/types/mixed/weekly0.5https://flow.org/en/docs/types/modules/weekly0.5https://flow.org/en/docs/types/objects/weekly0.5https://flow.org/en/docs/types/opaque-types/weekly0.5https://flow.org/en/docs/types/primitives/weekly0.5https://flow.org/en/docs/types/tuples/weekly0.5https://flow.org/en/docs/types/type-guards/weekly0.5https://flow.org/en/docs/types/typeof/weekly0.5https://flow.org/en/docs/types/unions/weekly0.5https://flow.org/en/docs/types/utilities/weekly0.5https://flow.org/en/docs/usage/weekly0.5https://flow.org/weekly0.5 \ No newline at end of file diff --git a/try/index.html b/try/index.html new file mode 100644 index 00000000000..08e7b074386 --- /dev/null +++ b/try/index.html @@ -0,0 +1,26 @@ + + + + + +Try Flow: the Flow Playground | Flow + + + + + + + + + + + + + + + + + + + \ No newline at end of file